From 88aa365b9734017edc77d7f6325b0172014847d0 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Wed, 31 Jul 2024 21:53:10 -0400 Subject: [PATCH 001/311] 2/3rds m412, fix previous headers --- config/GMPE01_00/rels/m409Dll/symbols.txt | 14 +- config/GMPE01_00/rels/m412Dll/symbols.txt | 5 +- configure.py | 4 +- include/REL/m409Dll.h | 270 ++--- include/REL/m412Dll.h | 108 ++ include/REL/m440Dll.h | 237 ++-- include/REL/m446Dll.h | 308 ++--- src/REL/m412Dll/main.c | 1305 +++++++++++++++++++++ src/libhu/setvf.c | 7 + src/libhu/subvf.c | 7 + 10 files changed, 1767 insertions(+), 498 deletions(-) create mode 100644 include/REL/m412Dll.h create mode 100644 src/REL/m412Dll/main.c create mode 100644 src/libhu/setvf.c create mode 100644 src/libhu/subvf.c diff --git a/config/GMPE01_00/rels/m409Dll/symbols.txt b/config/GMPE01_00/rels/m409Dll/symbols.txt index f1bcf978..871d7d04 100644 --- a/config/GMPE01_00/rels/m409Dll/symbols.txt +++ b/config/GMPE01_00/rels/m409Dll/symbols.txt @@ -273,13 +273,13 @@ lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data: lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 scope:local data:double lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x30 data:4byte -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x10 data:byte -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x10 scope:local data:byte +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0x10 diff --git a/config/GMPE01_00/rels/m412Dll/symbols.txt b/config/GMPE01_00/rels/m412Dll/symbols.txt index 6731c9cb..be43ffa3 100644 --- a/config/GMPE01_00/rels/m412Dll/symbols.txt +++ b/config/GMPE01_00/rels/m412Dll/symbols.txt @@ -167,7 +167,8 @@ lbl_1_data_348 = .data:0x00000348; // type:object size:0x18 lbl_1_data_360 = .data:0x00000360; // type:object size:0x9 data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x10 data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0xC data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x114 lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x114 lbl_1_bss_250 = .bss:0x00000250; // type:object size:0xC data:float @@ -184,7 +185,7 @@ lbl_1_bss_77C = .bss:0x0000077C; // type:object size:0x4 data:float lbl_1_bss_780 = .bss:0x00000780; // type:object size:0x10 data:4byte lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x4 data:4byte lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x4 data:4byte -lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x2 data:2byte +lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x4 data:2byte lbl_1_bss_79C = .bss:0x0000079C; // type:object size:0x2 data:2byte lbl_1_bss_79E = .bss:0x0000079E; // type:object size:0x2 data:2byte lbl_1_bss_7A0 = .bss:0x000007A0; // type:object size:0x2 data:2byte diff --git a/configure.py b/configure.py index 1694e975..89ae9792 100644 --- a/configure.py +++ b/configure.py @@ -762,8 +762,8 @@ config.libs = [ "cflags": cflags_libhu, "host": False, "objects": [ - Object(NonMatching, "libhu/setvf.c"), - Object(NonMatching, "libhu/subvf.c"), + Object(Matching, "libhu/setvf.c"), + Object(Matching, "libhu/subvf.c"), ], }, { diff --git a/include/REL/m409Dll.h b/include/REL/m409Dll.h index d79dee5c..d1f5cce2 100644 --- a/include/REL/m409Dll.h +++ b/include/REL/m409Dll.h @@ -248,168 +248,118 @@ typedef struct _unkStruct12 { } unkStruct12; // bss -// player.c -extern omObjData* lbl_1_bss_3A0[4]; -extern omObjData* lbl_1_bss_39C; -extern s32 lbl_1_bss_38C[4]; -extern unkStruct10 lbl_1_bss_10C[8]; -extern s16 lbl_1_bss_108; -extern s16 lbl_1_bss_106; -extern s16 lbl_1_bss_104; extern unkStruct9 lbl_1_bss_F0; -// main.c -extern Process* lbl_1_bss_E8; -extern s16 lbl_1_bss_E4; -extern omObjData* lbl_1_bss_E0; -extern omObjData* lbl_1_bss_DC; -extern Vec lbl_1_bss_D0; -extern unkStruct4 lbl_1_bss_40[4]; -extern s32 lbl_1_bss_3C; -extern unkStruct3 lbl_1_bss_24; -extern s8 lbl_1_bss_21; -extern u8 lbl_1_bss_20; -extern f32 lbl_1_bss_1C; -extern f32 lbl_1_bss_18; -extern s16 lbl_1_bss_16; -extern s8 lbl_1_bss_14; -extern f32 lbl_1_bss_10; -extern f32 lbl_1_bss_C; -extern s8 lbl_1_bss_A; -extern s16 lbl_1_bss_8; -extern s8 lbl_1_bss_6; -extern s16 lbl_1_bss_4; -extern s16 lbl_1_bss_2; -extern s8 lbl_1_bss_0; - -// data -// main.c -extern Vec lbl_1_data_0; -extern Vec lbl_1_data_C; -extern unkStruct2 lbl_1_data_18; -extern Vec lbl_1_data_28; -extern Vec lbl_1_data_34; -extern Vec lbl_1_data_40; -extern unkStruct lbl_1_data_4C[4]; -extern u32 lbl_1_data_BC; -extern s32 lbl_1_data_C0; -// player.c -extern u32 lbl_1_data_138; // unk -extern s32 lbl_1_data_13C[7]; -extern GXColor lbl_1_data_158[8]; -extern HsfVector2f lbl_1_data_178[4]; -extern GXColor lbl_1_data_198[8]; -extern u32 lbl_1_data_1EC; // prototypes -extern void ModuleProlog(void); -extern void fn_1_434(omObjData* object); -extern void fn_1_4DC(omObjData* object); -extern s8 fn_1_524(void); -extern s8 fn_1_B80(void); -extern void fn_1_DDC(omObjData* object); -extern void fn_1_F70(omObjData* object); -extern s8 fn_1_10E8(omObjData* object); -extern s8 fn_1_1B74(omObjData* object); -extern void fn_1_2098(omObjData* object); -extern void fn_1_23EC(s16); -extern void fn_1_2414(u16, u16); -extern u16 fn_1_2454(u16); -extern void fn_1_2484(omObjData* object); -extern void fn_1_2DCC(omObjData* object); -extern void fn_1_3840(void); -extern void fn_1_3988(unkStruct4*, s16, s16); -extern s32 fn_1_3AD8(s32, f32, f32, f32, f32, f32, f32); -extern void fn_1_40A4(Mtx, Mtx); -extern f32 fn_1_4120(f32, f32, f32, f32); -extern void fn_1_417C(void); -extern void fn_1_44F0(s16, f32, f32, f32, s8, s16); -extern void fn_1_4FFC(s16, f32, f32, f32, s16); -extern void fn_1_5408(ModelData*, unkStruct6*, Mtx); -extern void fn_1_55E0(ModelData*, unkStruct6*, Mtx); -extern void fn_1_57DC(ModelData*, unkStruct6*, Mtx); -extern unkStruct5* fn_1_58E0(s16, Vec*, Vec*, f32, GXColor*); -extern s16 fn_1_5A18(AnimData*, s16, f32, s16, s16); -extern void fn_1_5F5C(s16); -extern void fn_1_5FBC(s16, m409Func6); -extern void fn_1_5FF4(s16, u8); -extern void fn_1_602C(ModelData*, Mtx); -extern void fn_1_6608(HsfVector2f*, s16, s16, f32, f32); -extern void fn_1_66D4(HsfVector2f*, HsfVector2f*, s16, f32, f32); -extern void fn_1_6778(Vec*, Vec*, Vec*, s16); +void ObjectSetup(void); +void fn_1_434(omObjData* object); +void fn_1_4DC(omObjData* object); +s8 fn_1_524(void); +s8 fn_1_B80(void); +void fn_1_DDC(omObjData* object); +void fn_1_F70(omObjData* object); +s8 fn_1_10E8(omObjData* object); +s8 fn_1_1B74(omObjData* object); +void fn_1_2098(omObjData* object); +void fn_1_23EC(s16); +void fn_1_2414(u16, u16); +u16 fn_1_2454(u16); +void fn_1_2484(omObjData* object); +void fn_1_2DCC(omObjData* object); +void fn_1_3840(void); +void fn_1_3988(unkStruct4*, s16, s16); +s32 fn_1_3AD8(s32, f32, f32, f32, f32, f32, f32); +void fn_1_40A4(Mtx, Mtx); +f32 fn_1_4120(f32, f32, f32, f32); +void fn_1_417C(void); +void fn_1_44F0(s16, f32, f32, f32, s8, s16); +void fn_1_4FFC(s16, f32, f32, f32, s16); +void fn_1_5408(ModelData*, unkStruct6*, Mtx); +void fn_1_55E0(ModelData*, unkStruct6*, Mtx); +void fn_1_57DC(ModelData*, unkStruct6*, Mtx); +unkStruct5* fn_1_58E0(s16, Vec*, Vec*, f32, GXColor*); +s16 fn_1_5A18(AnimData*, s16, f32, s16, s16); +void fn_1_5F5C(s16); +void fn_1_5FBC(s16, m409Func6); +void fn_1_5FF4(s16, u8); +void fn_1_602C(ModelData*, Mtx); +void fn_1_6608(HsfVector2f*, s16, s16, f32, f32); +void fn_1_66D4(HsfVector2f*, HsfVector2f*, s16, f32, f32); +void fn_1_6778(Vec*, Vec*, Vec*, s16); // player.c -extern void fn_1_67E0(Process*); -extern void fn_1_6900(void); -extern void fn_1_6928(omObjData*); -extern void fn_1_7344(omObjData*); -extern void fn_1_7FE8(omObjData*); -extern void fn_1_8838(unkStruct8*); -extern s8 fn_1_8D08(u8); -extern void fn_1_8D6C(unkStruct8*); -extern void fn_1_91C0(omObjData*); -extern void fn_1_962C(omObjData*); -extern s32 fn_1_A584(unkStruct10*); -extern s8 fn_1_A9C0(Vec*, f32*); -extern s32 fn_1_ABB4(void); -extern void fn_1_AC08(s32*, s32); -extern f32 fn_1_AD40(f32, f32, f32); -extern f32 fn_1_AE94(f32, f32, f32, f32); -extern void fn_1_AF0C(f32*, f32*, f32*, f32*, f32); -extern f32 fn_1_B028(f32, f32, f32, f32); -extern void fn_1_B0A0(f32*, f32*, f32*, f32*, f32); -extern f32 fn_1_B378(Vec*); -extern f32 fn_1_B6A4(Vec*, Vec*, Vec*); -extern f32 fn_1_B9E0(Vec*, Vec*, Vec*, Vec*, Vec*); -extern f32 fn_1_BF38(s16); +void fn_1_67E0(Process*); +void fn_1_6900(void); +void fn_1_6928(omObjData*); +void fn_1_7344(omObjData*); +void fn_1_7FE8(omObjData*); +void fn_1_8838(unkStruct8*); +s8 fn_1_8D08(u8); +void fn_1_8D6C(unkStruct8*); +void fn_1_91C0(omObjData*); +void fn_1_962C(omObjData*); +s32 fn_1_A584(unkStruct10*); +s8 fn_1_A9C0(Vec*, f32*); +s32 fn_1_ABB4(void); +void fn_1_AC08(s32*, s32); +f32 fn_1_AD40(f32, f32, f32); +f32 fn_1_AE94(f32, f32, f32, f32); +void fn_1_AF0C(f32*, f32*, f32*, f32*, f32); +f32 fn_1_B028(f32, f32, f32, f32); +void fn_1_B0A0(f32*, f32*, f32*, f32*, f32); +f32 fn_1_B378(Vec*); +f32 fn_1_B6A4(Vec*, Vec*, Vec*); +f32 fn_1_B9E0(Vec*, Vec*, Vec*, Vec*, Vec*); +f32 fn_1_BF38(s16); // cursor.c -extern void fn_1_BF88(s16, s16); -extern void fn_1_C0C0(void); -extern void fn_1_C164(unkStruct8*); -extern void fn_1_CB98(ModelData* model, Mtx matrix); -extern unkStruct8* fn_1_CCB0(s16 idx); -extern unkStruct8Sub* fn_1_CCCC(s16, s16); -extern void fn_1_CCF8(unkStruct11**, s16, f32, f32); -extern void fn_1_CE7C(Vec**, s16, Vec*); -extern void fn_1_CF1C(GXColor**, s16, GXColor*); -extern void fn_1_CFC4(Vec**, s16, Vec*); -extern void fn_1_D050(HsfVector2f**, s16, HsfVector2f*); -extern void fn_1_D0E8(unkStruct8Sub*); -extern void fn_1_D430(unkStruct8*); -extern s16 fn_1_DA48(u8, u8); -extern void fn_1_DDB8(s16); -extern void fn_1_DEF4(s16, s16, u8); -extern s16 fn_1_DF20(u32, s16, s16); -extern void fn_1_E228(s16); -extern s32 fn_1_E2A8(s16, u8, u32, s16, s16); -extern s32 fn_1_E7C8(s16, u8, u32); -extern void fn_1_E818(s16, f32, f32, f32); -extern void fn_1_E85C(s16, s16, f32, f32, f32); -extern void fn_1_E8CC(s16, f32, f32, f32); -extern void fn_1_E940(s16, f32, f32, f32); -extern void fn_1_E99C(s16, s16, f32, f32, f32); -extern void fn_1_E940(s16, f32, f32, f32); -extern void fn_1_EA24(s16, f32, f32, f32); -extern void fn_1_EAB0(s16, f32, f32, f32); -extern void fn_1_EAF4(s16, s16, f32, f32, f32); -extern void fn_1_EB64(s16, f32, f32, f32); -extern void fn_1_EBD8(s16, f32, f32, f32); -extern void fn_1_EC1C(s16, s16, f32, f32, f32); -extern void fn_1_EC8C(s16, f32, f32, f32); -extern void fn_1_ED00(s16, s32); -extern void fn_1_ED44(s16, s16, s32); -extern void fn_1_EDB4(s16, s32); -extern void fn_1_EE24(s16, u32); -extern void fn_1_EE68(s16, s16, u32); -extern void fn_1_EED8(s16, u32); -extern s32 fn_1_EF48(s16, s32); -extern s32 fn_1_EFA4(s16, s16, s32); -extern void fn_1_F024(s16, s16, u8, u8, u8, u8); -extern void fn_1_F098(s16, u8, u8, u8, u8); -extern void fn_1_F110(s16, s16, u8); -extern void fn_1_F17C(s16, s16, u8, u8); -extern void fn_1_F1F4(s16, u8); -extern void fn_1_F28C(s16, s16, f32); -extern void fn_1_F2F8(s16, s16, u8, f32); -extern void fn_1_F370(s16, f32); -extern void fn_1_F408(s16, s16, u8); -extern void fn_1_F478(s16, s16, u8, u8); -extern void fn_1_F4F0(s16, u8); \ No newline at end of file +void fn_1_BF88(s16, s16); +void fn_1_C0C0(void); +void fn_1_C164(unkStruct8*); +void fn_1_CB98(ModelData* model, Mtx matrix); +unkStruct8* fn_1_CCB0(s16 idx); +unkStruct8Sub* fn_1_CCCC(s16, s16); +void fn_1_CCF8(unkStruct11**, s16, f32, f32); +void fn_1_CE7C(Vec**, s16, Vec*); +void fn_1_CF1C(GXColor**, s16, GXColor*); +void fn_1_CFC4(Vec**, s16, Vec*); +void fn_1_D050(HsfVector2f**, s16, HsfVector2f*); +void fn_1_D0E8(unkStruct8Sub*); +void fn_1_D430(unkStruct8*); +s16 fn_1_DA48(u8, u8); +void fn_1_DDB8(s16); +void fn_1_DEF4(s16, s16, u8); +s16 fn_1_DF20(u32, s16, s16); +void fn_1_E228(s16); +s32 fn_1_E2A8(s16, u8, u32, s16, s16); +s32 fn_1_E7C8(s16, u8, u32); +void fn_1_E818(s16, f32, f32, f32); +void fn_1_E85C(s16, s16, f32, f32, f32); +void fn_1_E8CC(s16, f32, f32, f32); +void fn_1_E940(s16, f32, f32, f32); +void fn_1_E99C(s16, s16, f32, f32, f32); +void fn_1_E940(s16, f32, f32, f32); +void fn_1_EA24(s16, f32, f32, f32); +void fn_1_EAB0(s16, f32, f32, f32); +void fn_1_EAF4(s16, s16, f32, f32, f32); +void fn_1_EB64(s16, f32, f32, f32); +void fn_1_EBD8(s16, f32, f32, f32); +void fn_1_EC1C(s16, s16, f32, f32, f32); +void fn_1_EC8C(s16, f32, f32, f32); +void fn_1_ED00(s16, s32); +void fn_1_ED44(s16, s16, s32); +void fn_1_EDB4(s16, s32); +void fn_1_EE24(s16, u32); +void fn_1_EE68(s16, s16, u32); +void fn_1_EED8(s16, u32); +s32 fn_1_EF48(s16, s32); +s32 fn_1_EFA4(s16, s16, s32); +void fn_1_F024(s16, s16, u8, u8, u8, u8); +void fn_1_F098(s16, u8, u8, u8, u8); +void fn_1_F110(s16, s16, u8); +void fn_1_F17C(s16, s16, u8, u8); +void fn_1_F1F4(s16, u8); +void fn_1_F28C(s16, s16, f32); +void fn_1_F2F8(s16, s16, u8, f32); +void fn_1_F370(s16, f32); +void fn_1_F408(s16, s16, u8); +void fn_1_F478(s16, s16, u8, u8); +void fn_1_F4F0(s16, u8); \ No newline at end of file diff --git a/include/REL/m412Dll.h b/include/REL/m412Dll.h new file mode 100644 index 00000000..3499be88 --- /dev/null +++ b/include/REL/m412Dll.h @@ -0,0 +1,108 @@ +#include "dolphin.h" + +#include "game/object.h" +#include "game/hsfman.h" + +// types +typedef struct _unkStruct { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; + s16 unk8; + s16 unkA; + s16 unkC; + Vec unk10; + HsfVector2f unk1C; + Vec unk24; + f32 unk30; + f32 unk34; +} unkStruct; + +typedef struct _unkStruct2 { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; + s16 unk8; + s16 unkA; + s16 unkC[5]; + s16 unk16[5]; + s16 unk20; + s32 unk24; + s32 unk28; + Vec unk2C; + Vec unk38; +} unkStruct2; // sizeof 0x44 + +typedef struct _unkStruct3 { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; + s16 unk8; + s16 unkA; + s16 unkC[6]; + s16 unk18[6]; + s32 unk24; + s32 unk28; + s32 unk2C; + s32 unk30; + char unk34[0x8]; + s32 unk3C; + Vec unk40; + char unk4C[0x8]; + Vec unk54; + Vec unk60; + f32 unk6C; + char unk70[0xC]; + Vec unk7C; + s8 unk88; + s8 unk89; + s8 unk8A; + s8 unk8B; + u16 unk8C; + u16 unk8E; + char unk90[0x14]; + s32 unkA4; +} unkStruct3; // sizeof 0xA8 + +typedef struct _unkStruct4 { + s32 unk0; + s32 unk4; + s32 unk8; + Vec unkC; +} unkStruct4; + +// prototypes +void ObjectSetup(void); +void fn_1_6EC(f32, f32, f32, s32); +void fn_1_73C(void); +void fn_1_7BC(void); +void fn_1_894(omObjData* object); +void fn_1_898(omObjData* object); +void fn_1_8BC(void); +f32 fn_1_1D08(f32); +void fn_1_1D88(void); +void fn_1_1DBC(void); +void fn_1_2014(void); +void fn_1_2064(void); +s32 fn_1_2708(void); +f32 fn_1_27C4(s32, f32, f32); +void fn_1_2A1C(void); +void fn_1_3950(void); +s8 fn_1_4BE4(s32, s32); +void fn_1_4C9C(Vec*, f32, f32); +s8 fn_1_4E58(s32, s32); +u8 fn_1_525C(s32, s32); +u16 fn_1_531C(s32); +u16 fn_1_5388(s32); +s32 fn_1_53F4(unkStruct3*, f32, f32, f32); +s32 fn_1_561C(unkStruct3*, s32*); +//... +void fn_1_7C60(void); // * +void fn_1_A01C(ModelData* model, ParticleData* particle, Mtx matrix); // * +void fn_1_A618(ModelData* model, ParticleData* particle, Mtx matrix); // * +void fn_1_AA88(ModelData* model, ParticleData* particle, Mtx matrix); // * +void fn_1_B160(void); // * +void fn_1_B1C0(void); // * \ No newline at end of file diff --git a/include/REL/m440Dll.h b/include/REL/m440Dll.h index 1a64053e..181ce25b 100644 --- a/include/REL/m440Dll.h +++ b/include/REL/m440Dll.h @@ -239,158 +239,111 @@ typedef struct _unkObjStruct { ////// BSS ////// -// object.c extern omObjData* lbl_1_bss_C0[4]; -extern s16 lbl_1_bss_B8[4]; -extern Vec lbl_1_bss_88[4]; -extern f32 lbl_1_bss_84; -extern Vec lbl_1_bss_78; -extern s16 lbl_1_bss_74; -extern u8 lbl_1_bss_72; -extern s16 lbl_1_bss_70; -// main.c -extern omObjData* lbl_1_bss_6C; -extern omObjData* lbl_1_bss_68; -extern unkStruct6* lbl_1_bss_64; -extern s16 lbl_1_bss_60; -extern Mtx lbl_1_bss_30; -extern s16 lbl_1_bss_2C; -extern void* lbl_1_bss_28; -extern u32 lbl_1_bss_24; -extern s16 lbl_1_bss_10[10]; -extern s16 lbl_1_bss_E; -extern u8 lbl_1_bss_C; -extern u8 lbl_1_bss_B; -extern u8 lbl_1_bss_A; -extern s16 lbl_1_bss_8; -extern s16 lbl_1_bss_6; -extern s16 lbl_1_bss_4; -extern s8 lbl_1_bss_2; -extern s8 lbl_1_bss_1; -extern s8 lbl_1_bss_0; ////// DATA ////// // main.c extern f32 lbl_1_data_0[5]; extern s16 lbl_1_data_14[6]; -extern Vec lbl_1_data_20; -extern Vec lbl_1_data_2C; -extern Vec lbl_1_data_38; -extern unkStruct7 lbl_1_data_44; -extern Vec lbl_1_data_54; -extern Vec lbl_1_data_60; -extern Vec lbl_1_data_6C; -extern unkStruct lbl_1_data_78[3]; -extern s16 lbl_1_data_E4[2]; -extern s16 lbl_1_data_E8[2]; -extern s16 lbl_1_data_EC[2]; -extern s16 lbl_1_data_F0[2]; -extern s32 lbl_1_data_F4[4]; -extern s16 lbl_1_data_104[2]; -extern s16 lbl_1_data_108[2]; // object.c extern s16 lbl_1_data_1D8; -extern s16 lbl_1_data_1DA; -extern u32 lbl_1_data_1DC[8][2]; -extern f32 lbl_1_data_21C[4]; -extern f32 lbl_1_data_250; ////// FUNCTIONS ////// // main.c -extern void ObjectSetup(void); -extern void fn_1_3C4(omObjData* object); -extern void fn_1_434(omObjData* object); -extern s32 fn_1_4A4(void); -extern s32 fn_1_6C8(void); -extern void fn_1_8F0(omObjData* object); -extern void fn_1_AE0(omObjData* object); -extern u8 fn_1_E14(omObjData* object); -extern u8 fn_1_1138(omObjData* object); -extern void fn_1_16D8(void); -extern void fn_1_1708(void); -extern void fn_1_1768(void); -extern s16 fn_1_17CC(void); -extern s16 fn_1_17F4(void); -extern void fn_1_181C(void); -extern u8 fn_1_1890(void); -extern void fn_1_18E0(void); -extern u8 fn_1_1954(void); -extern void fn_1_19B0(void); -extern void fn_1_1CAC(void); -extern void fn_1_2240(ModelData* data, unkStruct5*, Mtx); -extern u16 fn_1_23E4(u16); -extern void fn_1_2428(u16, u16); -extern void fn_1_2470(omObjData* object); -extern void fn_1_2A74(omObjData* object); -extern void fn_1_2AB4(omObjData* object); -extern void fn_1_2B04(omObjData* object); -extern void fn_1_2CA8(omObjData* object); -extern void fn_1_2D28(omObjData* object); -extern void fn_1_33D4(omObjData* object); -extern void fn_1_3DD8(omObjData* object); -extern void fn_1_4558(omObjData* object); -extern void fn_1_45BC(omObjData* object); -extern void fn_1_4660(omObjData* object); -extern void fn_1_46E0(omObjData* object); -extern void fn_1_4A20(omObjData* object); -extern void fn_1_4B44(omObjData* object); -extern void fn_1_4E00(s16, f32); -extern s16 fn_1_4E2C(void); -extern s16 fn_1_4E54(s16); -extern u16 fn_1_4EA8(u16); -extern void fn_1_4EEC(u16, u16); -extern void fn_1_4F34(unkStruct6*); -extern void fn_1_5010(unkStruct6*, Vec*, f32); -extern void fn_1_57B4(unkStruct6*); -extern void fn_1_5C2C(s16, HsfObject*, unkStruct6*, u16); -extern void fn_1_6554(unkStruct6*, HsfObject*); -extern void fn_1_6B58(unkStruct6*, HsfObject*); -extern void fn_1_71FC(unkStruct6*, Vec*, s16, Vec); -extern void fn_1_7934(unkStruct6*, unkStruct8*, Vec*); -extern void fn_1_7D60(unkStruct15*, unkStruct13*, s16); -extern void fn_1_806C(ModelData*, Mtx); -extern void fn_1_8470(unkStruct12*, unkStruct13*); -extern void fn_1_8AC4(Mtx); -extern void fn_1_8D1C(void); -extern void fn_1_91A4(Vec*, Vec*, Vec*, f32[5]); -extern f32 fn_1_927C(f32, f32, f32); -extern void fn_1_9344(Mtx, Mtx); -extern f32 fn_1_93C0(f32, f32, f32); -extern f32 fn_1_93D0(f32, f32, f32, f32); -extern unkStruct4* fn_1_942C(s16, Vec*, Vec*, f32, GXColor*); -extern s16 fn_1_956C(AnimData*, s16, f32, s16, s16); -extern void fn_1_9AB0(s16); -extern unkStruct5* fn_1_9B10(s16); -extern unkStruct4* fn_1_9B3C(s16, s16); -extern void fn_1_9B94(s16, m440Func5); -extern void fn_1_9BCC(s16, u8); -extern void fn_1_9C04(ModelData*, Mtx); -extern void fn_1_A1B8(HsfVector2f*, s16, s16, f32, f32); -extern void fn_1_A284(HsfVector2f*, HsfVector2f*, s16, f32, f32); -extern void fn_1_A328(Vec*, Vec*, Vec*, s16); +void ObjectSetup(void); +void fn_1_3C4(omObjData* object); +void fn_1_434(omObjData* object); +s32 fn_1_4A4(void); +s32 fn_1_6C8(void); +void fn_1_8F0(omObjData* object); +void fn_1_AE0(omObjData* object); +u8 fn_1_E14(omObjData* object); +u8 fn_1_1138(omObjData* object); +void fn_1_16D8(void); +void fn_1_1708(void); +void fn_1_1768(void); +s16 fn_1_17CC(void); +s16 fn_1_17F4(void); +void fn_1_181C(void); +u8 fn_1_1890(void); +void fn_1_18E0(void); +u8 fn_1_1954(void); +void fn_1_19B0(void); +void fn_1_1CAC(void); +void fn_1_2240(ModelData* data, unkStruct5*, Mtx); +u16 fn_1_23E4(u16); +void fn_1_2428(u16, u16); +void fn_1_2470(omObjData* object); +void fn_1_2A74(omObjData* object); +void fn_1_2AB4(omObjData* object); +void fn_1_2B04(omObjData* object); +void fn_1_2CA8(omObjData* object); +void fn_1_2D28(omObjData* object); +void fn_1_33D4(omObjData* object); +void fn_1_3DD8(omObjData* object); +void fn_1_4558(omObjData* object); +void fn_1_45BC(omObjData* object); +void fn_1_4660(omObjData* object); +void fn_1_46E0(omObjData* object); +void fn_1_4A20(omObjData* object); +void fn_1_4B44(omObjData* object); +void fn_1_4E00(s16, f32); +s16 fn_1_4E2C(void); +s16 fn_1_4E54(s16); +u16 fn_1_4EA8(u16); +void fn_1_4EEC(u16, u16); +void fn_1_4F34(unkStruct6*); +void fn_1_5010(unkStruct6*, Vec*, f32); +void fn_1_57B4(unkStruct6*); +void fn_1_5C2C(s16, HsfObject*, unkStruct6*, u16); +void fn_1_6554(unkStruct6*, HsfObject*); +void fn_1_6B58(unkStruct6*, HsfObject*); +void fn_1_71FC(unkStruct6*, Vec*, s16, Vec); +void fn_1_7934(unkStruct6*, unkStruct8*, Vec*); +void fn_1_7D60(unkStruct15*, unkStruct13*, s16); +void fn_1_806C(ModelData*, Mtx); +void fn_1_8470(unkStruct12*, unkStruct13*); +void fn_1_8AC4(Mtx); +void fn_1_8D1C(void); +void fn_1_91A4(Vec*, Vec*, Vec*, f32[5]); +f32 fn_1_927C(f32, f32, f32); +void fn_1_9344(Mtx, Mtx); +f32 fn_1_93C0(f32, f32, f32); +f32 fn_1_93D0(f32, f32, f32, f32); +unkStruct4* fn_1_942C(s16, Vec*, Vec*, f32, GXColor*); +s16 fn_1_956C(AnimData*, s16, f32, s16, s16); +void fn_1_9AB0(s16); +unkStruct5* fn_1_9B10(s16); +unkStruct4* fn_1_9B3C(s16, s16); +void fn_1_9B94(s16, m440Func5); +void fn_1_9BCC(s16, u8); +void fn_1_9C04(ModelData*, Mtx); +void fn_1_A1B8(HsfVector2f*, s16, s16, f32, f32); +void fn_1_A284(HsfVector2f*, HsfVector2f*, s16, f32, f32); +void fn_1_A328(Vec*, Vec*, Vec*, s16); void fn_1_A390(ModelData*, Mtx); -extern void fn_1_AA94(void); +void fn_1_AA94(void); // object.c -extern void fn_1_AE08(Process*); -extern void fn_1_AEE4(omObjData*); -extern void fn_1_B17C(omObjData*); -extern void fn_1_B180(omObjData*); -extern void fn_1_B3A4(omObjData*); -extern void fn_1_B884(omObjData*, unkObjStruct*); -extern void fn_1_C1D4(omObjData*, unkObjStruct*); -extern void fn_1_C944(omObjData*, unkObjStruct*); -extern s16 fn_1_CFAC(unkObjStruct*, u8); -extern void fn_1_D24C(unkObjStruct*, f32, f32); -extern void fn_1_D34C(omObjData*, unkObjStruct*); -extern void fn_1_D7F8(omObjData*, unkObjStruct*); -extern void fn_1_E034(omObjData*, unkObjStruct*); -extern u8 fn_1_E8AC(omObjData*, unkObjStruct*); -extern s32 fn_1_ED88(omObjData*, s16, u32); -extern void fn_1_EE78(void); -extern void fn_1_EF50(void); -extern s16 fn_1_F0FC(void); -extern void fn_1_F168(void); -extern void fn_1_F228(void); -extern u16 fn_1_F4C0(unkObjStruct*, u16); -extern void fn_1_F4D4(unkObjStruct*, u16, u16); -extern s32 fn_1_F4FC(s32); +void fn_1_AE08(Process*); +void fn_1_AEE4(omObjData*); +void fn_1_B17C(omObjData*); +void fn_1_B180(omObjData*); +void fn_1_B3A4(omObjData*); +void fn_1_B884(omObjData*, unkObjStruct*); +void fn_1_C1D4(omObjData*, unkObjStruct*); +void fn_1_C944(omObjData*, unkObjStruct*); +s16 fn_1_CFAC(unkObjStruct*, u8); +void fn_1_D24C(unkObjStruct*, f32, f32); +void fn_1_D34C(omObjData*, unkObjStruct*); +void fn_1_D7F8(omObjData*, unkObjStruct*); +void fn_1_E034(omObjData*, unkObjStruct*); +u8 fn_1_E8AC(omObjData*, unkObjStruct*); +s32 fn_1_ED88(omObjData*, s16, u32); +void fn_1_EE78(void); +void fn_1_EF50(void); +s16 fn_1_F0FC(void); +void fn_1_F168(void); +void fn_1_F228(void); +u16 fn_1_F4C0(unkObjStruct*, u16); +void fn_1_F4D4(unkObjStruct*, u16, u16); +s32 fn_1_F4FC(s32); diff --git a/include/REL/m446Dll.h b/include/REL/m446Dll.h index ed3e8df3..fc1e35ba 100644 --- a/include/REL/m446Dll.h +++ b/include/REL/m446Dll.h @@ -170,197 +170,135 @@ typedef void (*m446Func1)(unkStruct*); typedef void (*m446Func4)(unkStruct4*); typedef void (*m446Func8)(unkStruct8*); -////// BSS ////// -// stage.c -extern unkStruct3* lbl_1_bss_A0; -// cursor.c -extern unkStruct3* lbl_1_bss_98; -// camera.c -extern Vec lbl_1_bss_8C; -extern Vec lbl_1_bss_80; -extern f32 lbl_1_bss_7C; -extern Vec lbl_1_bss_70; -extern Vec lbl_1_bss_64; -extern f32 lbl_1_bss_60; -extern Vec lbl_1_bss_54; -extern Vec lbl_1_bss_48; -extern f32 lbl_1_bss_44; -extern f32 lbl_1_bss_40; -extern f32 lbl_1_bss_3C; -extern s32 lbl_1_bss_38; -// player.c -extern unkStruct3* lbl_1_bss_30; -// table.c -extern unkStruct3* lbl_1_bss_28; -// deck.c -extern u32 lbl_1_bss_20; -// card.c -extern unkStruct3* lbl_1_bss_18; -// main.c -extern s32 lbl_1_bss_14; -extern s32 lbl_1_bss_10; -extern Process* lbl_1_bss_C; -extern omObjData* lbl_1_bss_8; -extern s32 lbl_1_bss_4; -extern unkStruct* lbl_1_bss_0; - -////// DATA ////// -// main.c -extern Vec lbl_1_data_0; -extern Vec lbl_1_data_C; -extern f32 lbl_1_data_18; -extern Vec lbl_1_data_1C; -extern Vec lbl_1_data_28; -extern f32 lbl_1_data_34; -extern Vec lbl_1_data_38[2]; -extern Vec lbl_1_data_50[2]; -extern f32 lbl_1_data_68[2]; -extern s32 lbl_1_data_70[2][2]; -extern m446Func1 lbl_1_data_A0[5]; -// card.c -extern m446Func4 lbl_1_data_150[3]; -// player.c -extern s32 lbl_1_data_228[9]; -extern s32 lbl_1_data_24C[9][4]; -extern m446Func8 lbl_1_data_2DC[5]; -// camera.c -extern Vec lbl_1_data_370; -// cursor.c -extern s32 lbl_1_data_3C8[9]; -// stage.c -extern unkStruct10 lbl_1_data_460[3]; -extern Vec lbl_1_data_424[5]; -extern Vec lbl_1_data_4B4[3]; - ////// PROTOTYPES ////// // main.c -extern void ObjectSetup(void); -extern void fn_1_13C(omObjData*); -extern unkStruct* m446FlowCreate(void); -extern void fn_1_3FC(unkStruct*); -extern void fn_1_4B4(unkStruct*); -extern void fn_1_53C(unkStruct*); -extern void fn_1_958(unkStruct*); -extern void fn_1_B78(unkStruct*); -extern void fn_1_C0C(unkStruct*); -extern void fn_1_CA0(unkStruct*); -extern s32 fn_1_17FC(unkStruct*); -extern void fn_1_183C(unkStruct*); -extern void fn_1_1874(unkStruct*); -extern void fn_1_18B0(unkStruct*); -extern void fn_1_19D4(void); +void ObjectSetup(void); +void fn_1_13C(omObjData*); +unkStruct* m446FlowCreate(void); +void fn_1_3FC(unkStruct*); +void fn_1_4B4(unkStruct*); +void fn_1_53C(unkStruct*); +void fn_1_958(unkStruct*); +void fn_1_B78(unkStruct*); +void fn_1_C0C(unkStruct*); +void fn_1_CA0(unkStruct*); +s32 fn_1_17FC(unkStruct*); +void fn_1_183C(unkStruct*); +void fn_1_1874(unkStruct*); +void fn_1_18B0(unkStruct*); +void fn_1_19D4(void); // card.c -extern unkStruct2* fn_1_1C64(s32); -extern void fn_1_1CF8(unkStruct2*); -extern s32 fn_1_1D30(unkStruct2*, void*); -extern s32 fn_1_1D6C(unkStruct2*, unkStruct4**); -extern s32 fn_1_1DA8(unkStruct2*, void**); -extern BOOL fn_1_1DDC(unkStruct2*); -extern s32 fn_1_1DEC(unkStruct2*); -extern unkStruct3* fn_1_1DF4(void*); -extern void fn_1_1E5C(unkStruct3*); -extern void fn_1_1E84(unkStruct3**); -extern void fn_1_1EC8(unkStruct3*, unkStruct3*); -extern void fn_1_1F04(unkStruct3*); -extern void fn_1_1F38(u8*, u8*, s32); -extern void fn_1_1F84(u8*, s8, s32); -extern void fn_1_1FC0(u8*, s32); -extern s32 fn_1_1FFC(s8*, s8*, s32); -extern s32 fn_1_2064(void); -extern void fn_1_207C(void); -extern void fn_1_20D4(void); -extern unkStruct4* m446CardCreate(s32); -extern void fn_1_2688(unkStruct4*); -extern void fn_1_272C(unkStruct4*); -extern void fn_1_2794(unkStruct4*); -extern void fn_1_27FC(unkStruct4*, Vec*, s32); -extern void fn_1_2890(unkStruct4*, Vec*, s32, s32); -extern void fn_1_2928(unkStruct4*, Vec*, s32); -extern void fn_1_29B4(unkStruct4*, f32, s32); -extern void fn_1_2A1C(unkStruct4*); -extern void fn_1_2A58(unkStruct4*); -extern void fn_1_2A94(unkStruct4*); -extern void fn_1_2AA8(unkStruct4*); -extern void fn_1_2D94(unkStruct4*); -extern void fn_1_2DA8(unkStruct4*); -extern void fn_1_2EC0(unkStruct4*, s32); -extern void fn_1_2F64(unkStruct4*); +unkStruct2* fn_1_1C64(s32); +void fn_1_1CF8(unkStruct2*); +s32 fn_1_1D30(unkStruct2*, void*); +s32 fn_1_1D6C(unkStruct2*, unkStruct4**); +s32 fn_1_1DA8(unkStruct2*, void**); +BOOL fn_1_1DDC(unkStruct2*); +s32 fn_1_1DEC(unkStruct2*); +unkStruct3* fn_1_1DF4(void*); +void fn_1_1E5C(unkStruct3*); +void fn_1_1E84(unkStruct3**); +void fn_1_1EC8(unkStruct3*, unkStruct3*); +void fn_1_1F04(unkStruct3*); +void fn_1_1F38(u8*, u8*, s32); +void fn_1_1F84(u8*, s8, s32); +void fn_1_1FC0(u8*, s32); +s32 fn_1_1FFC(s8*, s8*, s32); +s32 fn_1_2064(void); +void fn_1_207C(void); +void fn_1_20D4(void); +unkStruct4* m446CardCreate(s32); +void fn_1_2688(unkStruct4*); +void fn_1_272C(unkStruct4*); +void fn_1_2794(unkStruct4*); +void fn_1_27FC(unkStruct4*, Vec*, s32); +void fn_1_2890(unkStruct4*, Vec*, s32, s32); +void fn_1_2928(unkStruct4*, Vec*, s32); +void fn_1_29B4(unkStruct4*, f32, s32); +void fn_1_2A1C(unkStruct4*); +void fn_1_2A58(unkStruct4*); +void fn_1_2A94(unkStruct4*); +void fn_1_2AA8(unkStruct4*); +void fn_1_2D94(unkStruct4*); +void fn_1_2DA8(unkStruct4*); +void fn_1_2EC0(unkStruct4*, s32); +void fn_1_2F64(unkStruct4*); // deck.c -extern unkStruct5* fn_1_3064(void); -extern void fn_1_3180(unkStruct2**); -extern void fn_1_31D8(unkStruct2**, unkStruct4**, s32*, s32); -extern void fn_1_34A0(unkStruct5*, unkStruct4**, s32, s32); -extern s32 m446DeckPushCard(unkStruct5*, unkStruct4*, s32); -extern s32 m446DeckPopCard(unkStruct2**, unkStruct4**); -extern void fn_1_38B0(unkStruct2**); -extern s32 fn_1_38F0(void); +unkStruct5* fn_1_3064(void); +void fn_1_3180(unkStruct2**); +void fn_1_31D8(unkStruct2**, unkStruct4**, s32*, s32); +void fn_1_34A0(unkStruct5*, unkStruct4**, s32, s32); +s32 m446DeckPushCard(unkStruct5*, unkStruct4*, s32); +s32 m446DeckPopCard(unkStruct2**, unkStruct4**); +void fn_1_38B0(unkStruct2**); +s32 fn_1_38F0(void); // table.c -extern s32 fn_1_3924(void); -extern void fn_1_393C(void); -extern void fn_1_3994(void); -extern unkStruct6* fn_1_39D0(void); -extern void fn_1_3B4C(unkStruct6*); -extern s32 fn_1_3BF0(unkStruct6*, unkStruct4*, s32); -extern s32 fn_1_3EB4(unkStruct6*, unkStruct4*, s32); -extern s32 fn_1_3FD0(unkStruct6*, s32, unkStruct4**); -extern void fn_1_4000(unkStruct6*, s32); -extern s32 fn_1_4088(unkStruct6*, u8, u8, s32, unkStruct4**, s32); -extern void fn_1_46AC(unkStruct6*); -extern void fn_1_46D0(unkStruct6*); -extern s32 fn_1_4720(unkStruct6*, s32); -extern void fn_1_4798(unkStruct6*); +s32 fn_1_3924(void); +void fn_1_393C(void); +void fn_1_3994(void); +unkStruct6* fn_1_39D0(void); +void fn_1_3B4C(unkStruct6*); +s32 fn_1_3BF0(unkStruct6*, unkStruct4*, s32); +s32 fn_1_3EB4(unkStruct6*, unkStruct4*, s32); +s32 fn_1_3FD0(unkStruct6*, s32, unkStruct4**); +void fn_1_4000(unkStruct6*, s32); +s32 fn_1_4088(unkStruct6*, u8, u8, s32, unkStruct4**, s32); +void fn_1_46AC(unkStruct6*); +void fn_1_46D0(unkStruct6*); +s32 fn_1_4720(unkStruct6*, s32); +void fn_1_4798(unkStruct6*); // player.c -extern s32 fn_1_480C(void); -extern void fn_1_4824(void); -extern void fn_1_487C(void); -extern unkStruct8* m446PlayerCreate(s32, unkStruct6*); -extern void fn_1_509C(unkStruct8*); -extern s32 m446PlayerAppendCard(unkStruct8*, unkStruct4*, s32); -extern s32 m446PlayerRemoveCard(unkStruct8*, unkStruct4*, s32); -extern s32 fn_1_5648(unkStruct8*, s32, unkStruct4**); -extern s32 fn_1_5678(unkStruct8*, unkStruct4**, s32); -extern void fn_1_5B34(unkStruct8*); -extern void fn_1_5B48(unkStruct8*); -extern void fn_1_5C10(unkStruct8*); -extern void fn_1_5C24(unkStruct8*); -extern void fn_1_5CEC(unkStruct8*); -extern void fn_1_5D00(unkStruct8*); -extern void fn_1_5E54(unkStruct8*, s32); -extern void fn_1_6074(unkStruct8*); -extern void fn_1_6264(unkStruct8*, Vec*, s32); -extern void fn_1_62F0(unkStruct8*, Vec*, s32); -extern void fn_1_637C(unkStruct8*, s32); -extern void fn_1_64BC(unkStruct8*, s32, s32); -extern void fn_1_6578(unkStruct8*); -extern void fn_1_6620(unkStruct8*); +s32 fn_1_480C(void); +void fn_1_4824(void); +void fn_1_487C(void); +unkStruct8* m446PlayerCreate(s32, unkStruct6*); +void fn_1_509C(unkStruct8*); +s32 m446PlayerAppendCard(unkStruct8*, unkStruct4*, s32); +s32 m446PlayerRemoveCard(unkStruct8*, unkStruct4*, s32); +s32 fn_1_5648(unkStruct8*, s32, unkStruct4**); +s32 fn_1_5678(unkStruct8*, unkStruct4**, s32); +void fn_1_5B34(unkStruct8*); +void fn_1_5B48(unkStruct8*); +void fn_1_5C10(unkStruct8*); +void fn_1_5C24(unkStruct8*); +void fn_1_5CEC(unkStruct8*); +void fn_1_5D00(unkStruct8*); +void fn_1_5E54(unkStruct8*, s32); +void fn_1_6074(unkStruct8*); +void fn_1_6264(unkStruct8*, Vec*, s32); +void fn_1_62F0(unkStruct8*, Vec*, s32); +void fn_1_637C(unkStruct8*, s32); +void fn_1_64BC(unkStruct8*, s32, s32); +void fn_1_6578(unkStruct8*); +void fn_1_6620(unkStruct8*); // camera.c -extern s32 fn_1_6778(void); -extern void fn_1_68D8(void); -extern void fn_1_68DC(void); -extern void fn_1_6EA0(Vec*); -extern void fn_1_6EC4(Vec*); -extern void fn_1_6EE8(f32); -extern void fn_1_6EF8(Vec*, Vec*, f32*, s32); -extern s32 fn_1_708C(void); -extern void fn_1_709C(void); +s32 fn_1_6778(void); +void fn_1_68D8(void); +void fn_1_68DC(void); +void fn_1_6EA0(Vec*); +void fn_1_6EC4(Vec*); +void fn_1_6EE8(f32); +void fn_1_6EF8(Vec*, Vec*, f32*, s32); +s32 fn_1_708C(void); +void fn_1_709C(void); // cursor.c -extern s32 fn_1_72E0(void); -extern void fn_1_72F8(void); -extern void fn_1_7350(void); -extern unkStruct7* m446CursorCreate(s32); -extern void fn_1_76E8(unkStruct7*); -extern void fn_1_77C8(unkStruct7*, u8); -extern void fn_1_7884(unkStruct7*); -extern void fn_1_7908(unkStruct7*, Vec*, s32); -extern void fn_1_799C(unkStruct7*); -extern void fn_1_7A38(unkStruct7*); -extern void fn_1_7AB4(unkStruct7*); +s32 fn_1_72E0(void); +void fn_1_72F8(void); +void fn_1_7350(void); +unkStruct7* m446CursorCreate(s32); +void fn_1_76E8(unkStruct7*); +void fn_1_77C8(unkStruct7*, u8); +void fn_1_7884(unkStruct7*); +void fn_1_7908(unkStruct7*, Vec*, s32); +void fn_1_799C(unkStruct7*); +void fn_1_7A38(unkStruct7*); +void fn_1_7AB4(unkStruct7*); // stage.c -extern s32 fn_1_7BF0(void); -extern void fn_1_7C08(void); -extern void fn_1_7C60(void); -extern unkStruct9* m446StageCreate(void); -extern void fn_1_83F0(unkStruct9*); -extern void fn_1_84AC(unkStruct9*); -extern void fn_1_852C(unkStruct9*); -extern void fn_1_860C(unkStruct9*); +s32 fn_1_7BF0(void); +void fn_1_7C08(void); +void fn_1_7C60(void); +unkStruct9* m446StageCreate(void); +void fn_1_83F0(unkStruct9*); +void fn_1_84AC(unkStruct9*); +void fn_1_852C(unkStruct9*); +void fn_1_860C(unkStruct9*); diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c new file mode 100644 index 00000000..c7481aee --- /dev/null +++ b/src/REL/m412Dll/main.c @@ -0,0 +1,1305 @@ +#include "REL/m412Dll.h" + +#include "math.h" +#include "ext_math.h" +#include "rel_sqrt_consts.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/frand.h" +#include "game/hsfmotion.h" +#include "game/mapspace.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/wipe.h" + +// bss +s16 lbl_1_bss_7A0; +s16 lbl_1_bss_79E; +s16 lbl_1_bss_79C; +s16 lbl_1_bss_798[2]; +s32 lbl_1_bss_794; +s32 lbl_1_bss_790; +f32 lbl_1_bss_77C; +f32 lbl_1_bss_778; +f32 lbl_1_bss_774; +unkStruct3 lbl_1_bss_4D4[4]; +unkStruct2 lbl_1_bss_33C[6]; +unkStruct2 lbl_1_bss_2F8; +unkStruct* lbl_1_bss_278[0x20]; +Process* lbl_1_bss_274; +Vec lbl_1_bss_268; +Vec lbl_1_bss_25C; +Vec lbl_1_bss_250; +Vec lbl_1_bss_13C[0x17]; +Vec lbl_1_bss_28[0x17]; +s32 lbl_1_bss_24; +Vec lbl_1_bss_18; +Vec lbl_1_bss_C; +Vec lbl_1_bss_0; + +// data +s32 lbl_1_data_0[8] = { + 0, 1, 2, 3, 4, 5, 6, 7 +}; +s32 lbl_1_data_20[8] = { + 0x5E0001, 0x190001, 0x6C0001, 0x890001, + 0x840001, 0x100001, 0x0C0001, 0x800001 +}; +s32 lbl_1_data_40[8] = { + 0x5F0000, 0x1A0000, 0x6D0000, 0x8A0000, + 0x850000, 0x110000, 0x0D0000, 0x810000 +}; +s32 lbl_1_data_60[6] = { + 0x5F0000, 0x5F0002, 0x5F0003, + 0x5F001A, 0x5F001B, 0x5F004B +}; +Vec lbl_1_data_78[7] = { + { 474.0f, 30.0f, -497.0f }, + { 330.0f, 30.0f, 562.0f }, + { -694.0f, 30.0f, 43.0f }, + { -375.0f, 30.0f, -483.0f }, + { 715.0f, 30.0f, 62.0f }, + { -334.0f, 30.0f, 570.0f }, + { 100.0f, 30.0f, -630.0f } +}; +char* lbl_1_data_298[0x17] = { + "sb_hahen-sb_hahen01", + "sb_hahen-sb_hahen02", + "sb_hahen-sb_hahen03", + "sb_hahen-sb_hahen04", + "sb_hahen-sb_hahen05", + "sb_hahen-sb_hahen06", + "sb_hahen-sb_hahen07", + "sb_hahen-sb_hahen08", + "sb_hahen-sb_hahen09", + "sb_hahen-sb_hahen10", + "sb_hahen-sb_hahen11", + "sb_hahen-sb_hahen12", + "sb_hahen-sb_hahen13", + "sb_hahen-sb_hahen14", + "sb_hahen-sb_hahen15", + "sb_hahen-sb_hahen16", + "sb_hahen-sb_hahen17", + "sb_hahen-sb_hahen18", + "sb_hahen-sb_hahen19", + "sb_hahen-sb_hahen20", + "sb_hahen-sb_hahen21", + "sb_hahen-sb_hahen22", + "sb_hahen-sb_hahen23" +}; + +void ObjectSetup(void) { + f32 temp_f30; + f32 temp_f29; + f32 temp_f31; + + lbl_1_bss_274 = omInitObjMan(0x32, 0x2000); + omGameSysInit(lbl_1_bss_274); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 40.0f, 20.0f, 25000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0U, 0U, 0x280U, 0x1E0U); + lbl_1_bss_268.x = 1100.0f; + lbl_1_bss_268.y = 1600.0f; + lbl_1_bss_268.z = 760.0f; + lbl_1_bss_250.x = 0.0f; + lbl_1_bss_250.y = 1.0f; + lbl_1_bss_250.z = 0.0f; + lbl_1_bss_25C.x = 60.0f; + lbl_1_bss_25C.y = 0.0f; + lbl_1_bss_25C.z = 0.0f; + temp_f30 = lbl_1_bss_268.x; + temp_f29 = lbl_1_bss_268.y; + temp_f31 = lbl_1_bss_268.z; + lbl_1_bss_774 = sqrtf((temp_f31 * temp_f31) + ((temp_f30 * temp_f30) + (temp_f29 * temp_f29))); + lbl_1_bss_778 = fn_1_1D08((180.0 * (atan2(temp_f30, temp_f31) / M_PI))); + lbl_1_bss_77C = fn_1_1D08((180.0 * (atan2(temp_f29, temp_f31) / M_PI))); + lbl_1_bss_77C = 50.0f; + Hu3DLighInit(); + lbl_1_bss_7A0 = Hu3DGLightCreate(10000.0f, 0.0f, 10000.0f, -1.0f, 0.0f, -1.0f, 0xFFU, 0xFFU, 0xFFU); + Hu3DGLightPosAimSet(lbl_1_bss_7A0, 0.0f, 4330.13f, 2500.0f, 0.0f, 0.0f, 0.0f); + Hu3DGLightInfinitytSet(lbl_1_bss_7A0); + lbl_1_bss_18.x = -500.0f; + lbl_1_bss_18.y = 4000.0f; + lbl_1_bss_18.z = 0.0f; + lbl_1_bss_C.x = lbl_1_bss_C.z = 0.0f; + lbl_1_bss_C.y = 1.0f; + lbl_1_bss_0.x = 0.0f; + lbl_1_bss_0.y = 0.0f; + lbl_1_bss_0.z = 0.0f; + Hu3DShadowCreate(30.0f, 20.0f, 10000.0f); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowPosSet(&lbl_1_bss_18, &lbl_1_bss_C, &lbl_1_bss_0); + Hu3DBGColorSet(0U, 0U, 0U); + fn_1_8BC(); + HuPrcChildCreate(fn_1_B1C0, 0x1000U, 0x2000U, 0, HuPrcCurrentGet()); + WipeCreate(1, 0, 0x3C); +} + +void fn_1_6EC(f32 arg8, f32 arg9, f32 argA, s32 arg0) { + Vec sp8; + + sp8.x = arg8; + sp8.y = arg9; + sp8.z = argA; + HuAudFXEmiterPlay(arg0, &sp8); +} + +void fn_1_73C(void) { + Vec sp8; + CameraData* camera; + + camera = &Hu3DCamera[0]; + + sp8.x = 0.0f; + sp8.y = 0.0f; + sp8.z = -1.0f; + + while (1) { + HuAudFXListnerUpdate(&camera->pos, &sp8); + if (lbl_1_bss_794 >= 3) break; + HuPrcVSleep(); + } + HuPrcKill(HuPrcCurrentGet()); + while (1) { + HuPrcVSleep(); + } +} + +void fn_1_7BC(void) { + Vec sp14; + Vec sp8; + s32 temp_r30; + s32 var_r31; + + temp_r30 = (s32)HuPrcCurrentGet()->user_data; + sp14.x = 1465.0f; + sp14.y = 770.0f; + sp14.z = -2400.0f; + sp8.x = sp14.x - 474.0f; + sp8.y = sp14.y - 30.0f; + sp8.z = sp14.z - -497.0f; + + for (var_r31 = 0; var_r31 < 0x168; var_r31++) { + HuAudFXEmiterUpDate(temp_r30, &sp14); + PSVECAdd(&sp8, &sp14, &sp14); + HuPrcVSleep(); + } + HuPrcKill(HuPrcCurrentGet()); + while (1) { + HuPrcVSleep(); + } +} + +void fn_1_894(omObjData* object) { + return; +} + +void fn_1_898(omObjData* object) { + object->model[0] = lbl_1_bss_79C; + object->func = &fn_1_894; +} + +void fn_1_8BC(void) { + Vec sp20; + Vec sp14; + s32 sp10; + volatile u32 spC; + volatile u32 sp8; + unkStruct2* temp_r31; + unkStruct3* temp_r30; + s16 var_r29; + void* var_r27; + s32 var_r28; + s32 var_r26; + unkStruct2* temp_r25; + HsfTransform* temp_r24; + Process* var_r23; + s32 temp_r22; + AnimData* var_r21; + s16 var_r20; + s16 var_r19; + s32 var_r18; + HsfObject* var_r17; + + nMap = 0; + HuAudSndGrpSet(0x25); + sp20.x = 1100.0f; + sp20.y = 1600.0f; + sp20.z = 760.0f; + sp14.x = 0.0f; + sp14.y = 0.0f; + sp14.z = -1.0f; + HuAudFXListnerSetEX(&sp20, &sp14, 10000.0f, 0.5666667f, 0.0f, 300.0f, 300.0f); + var_r27 = HuDataSelHeapReadNum(0x2B0000, 0x10000000, HEAP_DATA); + var_r29 = Hu3DModelCreate(var_r27); + Hu3DModelLayerSet(var_r29, 1); + Hu3DModelShadowMapSet(var_r29); + Hu3DModelAttrSet(var_r29, 0x40000001); + var_r27 = HuDataSelHeapReadNum(0x2B0001, 0x10000000, HEAP_DATA); + lbl_1_bss_79C = Hu3DModelCreate(var_r27); + Hu3DModelAttrSet(lbl_1_bss_79C, 1); + MapObject[nMap++] = omAddObjEx(lbl_1_bss_274, 0x100, 1, 0, -1, fn_1_898); + var_r27 = HuDataSelHeapReadNum(0x2B0002, 0x10000000, HEAP_DATA); + var_r29 = Hu3DModelCreate(var_r27); + Hu3DModelLayerSet(var_r29, 0); + Hu3DModelAttrSet(var_r29, 0x40000001); + + for (var_r28 = 0; var_r28 < 0x20; var_r28++) { + lbl_1_bss_278[var_r28] = NULL; + } + var_r27 = HuDataSelHeapReadNum(0x2B001F, 0x10000000, HEAP_DATA); + lbl_1_bss_79E = var_r29 = Hu3DModelCameraCreate(Hu3DMotionCreate(var_r27), 1); + Hu3DCameraMotionStart(var_r29, 1); + + for (var_r28 = 0; var_r28 < 2; var_r28++) { + var_r27 = HuDataSelHeapReadNum(0x2B001D, 0x10000000, HEAP_DATA); + lbl_1_bss_798[var_r28] = var_r29 = Hu3DModelCreate(var_r27); + Hu3DModelLayerSet(var_r29, 2); + Hu3DModelAttrSet(var_r29, 0x40000002); + Hu3DModelAttrSet(var_r29, 1); + } + + for (var_r28 = 0; var_r28 < 6; var_r28++) { + temp_r31 = &lbl_1_bss_33C[var_r28]; + temp_r31->unk24 = var_r28; + temp_r31->unk28 = var_r28; + temp_r31->unk20 = 0; + if (var_r28 == 0) { + var_r27 = HuDataSelHeapReadNum(0x2B0006, 0x10000000, HEAP_DATA); + var_r20 = var_r29 = Hu3DModelCreate(var_r27); + } else { + var_r29 = Hu3DModelLink(var_r20); + } + temp_r31->unk0 = var_r29; + temp_r31->unk2C.x = lbl_1_data_78[var_r28].x; + temp_r31->unk2C.y = lbl_1_data_78[var_r28].y; + temp_r31->unk2C.z = lbl_1_data_78[var_r28].z; + Hu3DModelPosSet(var_r29, temp_r31->unk2C.x, temp_r31->unk2C.y, temp_r31->unk2C.z); + temp_r31->unk38.x = temp_r31->unk38.z = 0.0f; + temp_r31->unk38.y = fn_1_1D08(180.0 + atan2d(temp_r31->unk2C.x, temp_r31->unk2C.z)); + Hu3DModelRotSet(var_r29, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); + Hu3DModelLayerSet(var_r29, 1); + Hu3DModelShadowSet(var_r29); + + for (var_r26 = 0; var_r26 < 3; var_r26++) { + var_r27 = HuDataSelHeapReadNum(var_r26 + 0x2B0007, 0x10000000, HEAP_DATA); + temp_r31->unkC[var_r26] = Hu3DJointMotion(var_r29, var_r27); + } + var_r27 = HuDataSelHeapReadNum(var_r28 + 0x2B000A, 0x10000000, HEAP_DATA); + temp_r31->unkC[var_r26] = Hu3DJointMotion(var_r29, var_r27); + Hu3DMotionSet(var_r29, temp_r31->unkC[3]); + temp_r31->unk2 = var_r29 = Hu3DModelLink(var_r20); + Hu3DModelPosSet(var_r29, temp_r31->unk2C.x, temp_r31->unk2C.y - 10.0f, temp_r31->unk2C.z); + Hu3DModelRotSet(var_r29, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); + Hu3DModelScaleSet(var_r29, 1.0f, -1.0f, 1.0f); + Hu3DModelLayerSet(var_r29, 0); + Hu3DModelShadowReset(var_r29); + Hu3DMotionSet(var_r29, temp_r31->unkC[3]); + Hu3DModelAttrSet(var_r29, 0x800000); + var_r27 = HuDataSelHeapReadNum(var_r28 + 0x2B0010, 0x10000000, HEAP_DATA); + temp_r31->unk4 = var_r29 = Hu3DModelCreate(var_r27); + Hu3DModelLayerSet(var_r29, 1); + if (var_r28 >= 3) { + Hu3DModelAttrSet(temp_r31->unk0, 0x40000002); + Hu3DModelAttrSet(temp_r31->unk2, 0x40000002); + Hu3DModelAttrSet(temp_r31->unk4, 0x40000002); + } + if (var_r28 == 0) { + var_r27 = HuDataSelHeapReadNum(0x2B0003, 0x10000000, HEAP_DATA); + var_r19 = var_r29 = Hu3DModelCreate(var_r27); + } else { + var_r29 = Hu3DModelLink(var_r19); + } + temp_r31->unk6 = var_r29; + Hu3DModelLayerSet(var_r29, 1); + Hu3DModelAttrSet(var_r29, 1); + Hu3DModelShadowSet(var_r29); + Hu3DModelShadowDispOff(var_r29); + temp_r31->unk8 = Hu3DModelLink(var_r19); + Hu3DModelLayerSet(var_r29, 0); + Hu3DModelAttrSet(temp_r31->unk8, 1); + var_r23 = HuPrcChildCreate(fn_1_2A1C, 0x2000, 0x3000, 0, HuPrcCurrentGet()); + var_r23->user_data = temp_r31; + } + + for (var_r28 = 0, var_r18 = 0; var_r28 < 50; var_r28++) { + temp_r31 = &lbl_1_bss_33C[frandmod(3) + var_r18]; + temp_r25 = &lbl_1_bss_33C[frandmod(3) + var_r18]; + temp_r22 = temp_r31->unk28; + temp_r31->unk28 = temp_r25->unk28; + temp_r25->unk28 = temp_r22; + } + temp_r31 = &lbl_1_bss_33C[3]; + temp_r25 = &lbl_1_bss_33C[5]; + temp_r22 = temp_r31->unk28; + temp_r31->unk28 = temp_r25->unk28; + temp_r25->unk28 = temp_r22; + if (frandmod(2) != 0) { + temp_r31 = &lbl_1_bss_33C[4]; + temp_r25 = &lbl_1_bss_33C[5]; + temp_r22 = temp_r31->unk28; + temp_r31->unk28 = temp_r25->unk28; + temp_r25->unk28 = temp_r22; + } + temp_r31 = &lbl_1_bss_2F8; + var_r27 = HuDataSelHeapReadNum(0x2B0016, 0x10000000, HEAP_DATA); + var_r20 = var_r29 = Hu3DModelCreate(var_r27); + temp_r31->unk0 = var_r29; + temp_r31->unk2C.x = lbl_1_data_78[6].x; + temp_r31->unk2C.y = lbl_1_data_78[6].y; + temp_r31->unk2C.z = lbl_1_data_78[6].z; + Hu3DModelPosSet(var_r29, temp_r31->unk2C.x, temp_r31->unk2C.y, temp_r31->unk2C.z); + temp_r31->unk38.x = temp_r31->unk38.z = 0.0f; + temp_r31->unk38.y = fn_1_1D08(180.0 + atan2d(temp_r31->unk2C.x, temp_r31->unk2C.z)); + Hu3DModelRotSet(var_r29, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); + Hu3DModelLayerSet(var_r29, 1); + Hu3DModelShadowSet(var_r29); + + for (var_r26 = 0; var_r26 < 5; var_r26++) { + var_r27 = HuDataSelHeapReadNum(var_r26 + 0x2B0017, 0x10000000, HEAP_DATA); + temp_r31->unkC[var_r26] = Hu3DJointMotion(var_r29, var_r27); + } + var_r27 = HuDataSelHeapReadNum(0x2B0016, 0x10000000, HEAP_DATA); + temp_r31->unk2 = var_r29 = Hu3DModelCreate(var_r27); + + for (var_r26 = 0; var_r26 < 5; var_r26++) { + var_r27 = HuDataSelHeapReadNum(var_r26 + 0x2B0017, 0x10000000, HEAP_DATA); + temp_r31->unk16[var_r26] = Hu3DJointMotion(var_r29, var_r27); + } + Hu3DModelPosSet(var_r29, temp_r31->unk2C.x, temp_r31->unk2C.y - 10.0f, temp_r31->unk2C.z); + Hu3DModelRotSet(var_r29, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); + Hu3DModelScaleSet(var_r29, 1.0f, -1.0f, 1.0f); + Hu3DModelLayerSet(var_r29, 0); + Hu3DModelShadowReset(var_r29); + Hu3DModelAttrSet(var_r29, 0x800000); + var_r27 = HuDataSelHeapReadNum(0x2B0004, 0x10000000, HEAP_DATA); + temp_r31->unk6 = var_r29 = Hu3DModelCreate(var_r27); + Hu3DModelLayerSet(var_r29, 1); + Hu3DModelAttrSet(var_r29, 1); + Hu3DModelShadowSet(var_r29); + Hu3DModelShadowDispOff(var_r29); + temp_r31->unk8 = Hu3DModelLink(temp_r31->unk6); + Hu3DModelLayerSet(temp_r31->unk8, 0); + Hu3DModelAttrSet(temp_r31->unk8, 1); + var_r27 = HuDataSelHeapReadNum(0x2B0005, 0x10000000, HEAP_DATA); + temp_r31->unkA = var_r29 = Hu3DModelCreate(var_r27); + Hu3DModelShadowSet(var_r29); + Hu3DModelShadowDispOff(var_r29); + Hu3DModelLayerSet(var_r29, 1); + Hu3DModelAttrSet(var_r29, 1); + + for (var_r28 = 0; var_r28 < 0x17; var_r28++) { + var_r17 = Hu3DModelObjPtrGet(var_r29, lbl_1_data_298[var_r28]); + if (!var_r17) { + OSReport("objname %s\n", lbl_1_data_298[var_r28]); + OSPanic("m412.c", 0x258, "ObjPtr"); + } + temp_r24 = &var_r17->data.base; + lbl_1_bss_13C[var_r28].x = temp_r24->pos.x; + lbl_1_bss_13C[var_r28].y = temp_r24->pos.y; + lbl_1_bss_13C[var_r28].z = temp_r24->pos.z; + lbl_1_bss_28[var_r28].x = temp_r24->scale.x; + lbl_1_bss_28[var_r28].y = temp_r24->scale.y; + lbl_1_bss_28[var_r28].z = temp_r24->scale.z; + } + var_r23 = HuPrcChildCreate(fn_1_3950, 0x2000, 0x3000, 0, HuPrcCurrentGet()); + var_r23->user_data = temp_r31; + + for (var_r28 = 0; var_r28 < 4; var_r28++) { + lbl_1_bss_4D4[var_r28].unk3C = var_r28; + } + + for (var_r28 = 0; var_r28 < 50; var_r28++) { + spC = frandmod(4); + sp8 = frandmod(4); + sp10 = lbl_1_bss_4D4[sp8].unk3C; + lbl_1_bss_4D4[sp8].unk3C = lbl_1_bss_4D4[spC].unk3C; + lbl_1_bss_4D4[spC].unk3C = sp10; + } + + for (var_r28 = 0; var_r28 < 4; var_r28++) { + temp_r30 = &lbl_1_bss_4D4[var_r28]; + temp_r30->unk24 = var_r28; + temp_r30->unk28 = var_r28; + temp_r30->unk2C = GWPlayerCfg[var_r28].pad_idx; + temp_r30->unk0 = CharModelCreate(lbl_1_data_0[GWPlayerCfg[var_r28].character], 4); + Hu3DModelLayerSet(temp_r30->unk0, 1); + var_r27 = HuDataSelHeapReadNum(lbl_1_data_20[GWPlayerCfg[var_r28].character], 0x10000000, HEAP_DATA); + temp_r30->unk2 = Hu3DModelCreate(var_r27); + Hu3DModelScaleSet(temp_r30->unk2, 1.0f, -1.0f, 1.0f); + Hu3DModelAttrSet(temp_r30->unk2, 0x800000); + Hu3DModelLayerSet(temp_r30->unk2, 0); + CharModelLayerSetAll(3); + temp_r30->unk54.x = temp_r30->unk54.z = temp_r30->unk54.y = 0.0f; + temp_r30->unk54.y = fn_1_1D08(45.0f + (90.0f * temp_r30->unk3C) + lbl_1_bss_778); + temp_r30->unk40.x = (400.0 * sind(temp_r30->unk54.y)); + temp_r30->unk40.z = (400.0 * cosd(temp_r30->unk54.y)); + temp_r30->unk54.y = fn_1_1D08(180.0f + temp_r30->unk54.y); + temp_r30->unk6C = temp_r30->unk54.y; + temp_r30->unk40.y = 0.0f; + temp_r30->unk60.x = 50.0f; + temp_r30->unk60.z = temp_r30->unk60.y = 0.0f; + HuSetVecF(&temp_r30->unk7C, 0.0, 0.0, 0.0); + Hu3DModelPosSet(temp_r30->unk0, temp_r30->unk40.x, temp_r30->unk40.y, temp_r30->unk40.z); + Hu3DModelRotSet(temp_r30->unk0, temp_r30->unk54.x, temp_r30->unk54.y, temp_r30->unk54.z); + Hu3DModelPosSet(temp_r30->unk2, temp_r30->unk40.x, temp_r30->unk40.y, temp_r30->unk40.z); + Hu3DModelRotSet(temp_r30->unk2, temp_r30->unk54.x, temp_r30->unk54.y, temp_r30->unk54.z); + Hu3DModelShadowSet(temp_r30->unk0); + + for (var_r26 = 0; var_r26 < 6; var_r26++) { + temp_r30->unkC[var_r26] = CharModelMotionCreate(lbl_1_data_0[GWPlayerCfg[var_r28].character], lbl_1_data_60[var_r26]); + var_r27 = HuDataSelHeapReadNum((u16)lbl_1_data_60[var_r26] | lbl_1_data_40[GWPlayerCfg[var_r28].character], 0x10000000, HEAP_DATA); + temp_r30->unk18[var_r26] = Hu3DJointMotion(temp_r30->unk2, var_r27); + } + CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[var_r28].character], temp_r30->unkC[0]); + Hu3DModelAttrSet(temp_r30->unk0, 0x40000001); + Hu3DMotionSet(temp_r30->unk2, temp_r30->unk18[0]); + Hu3DModelAttrSet(temp_r30->unk2, 0x40000001); + CharModelMotionDataClose(lbl_1_data_0[GWPlayerCfg[var_r28].character]); + var_r27 = HuDataSelHeapReadNum(0x2B001C, 0x10000000, HEAP_DATA); + temp_r30->unk6 = var_r29 = Hu3DModelCreate(var_r27); + Hu3DModelLayerSet(var_r29, 1); + Hu3DModelAttrSet(var_r29, 0x40000001); + Hu3DModelAttrSet(var_r29, 1); + Hu3DModelShadowSet(var_r29); + Hu3DModelShadowDispOff(var_r29); + temp_r30->unk8 = var_r29 = Hu3DModelLink(var_r29); + Hu3DModelLayerSet(var_r29, 0); + Hu3DModelAttrSet(var_r29, 0x40000001); + Hu3DModelAttrSet(var_r29, 0x800001); + var_r27 = HuDataSelHeapReadNum(0x2B001D, 0x10000000, HEAP_DATA); + temp_r30->unkA = var_r29 = Hu3DModelCreate(var_r27); + Hu3DModelLayerSet(var_r29, 3); + Hu3DModelAttrSet(var_r29, 0x40000002); + Hu3DModelAttrSet(var_r29, 1); + var_r23 = HuPrcChildCreate(fn_1_7C60, 0x2000, 0x4000, 0, HuPrcCurrentGet()); + var_r23->user_data = temp_r30; + } + var_r21 = HuSprAnimRead(HuDataReadNum(0x2B001E, 0x10000000)); + var_r29 = Hu3DParticleCreate(var_r21, 0x100); + Hu3DModelPosSet(var_r29, 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(var_r29, 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(var_r29, 4); + Hu3DParticleColSet(var_r29, 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(var_r29, 0.0f); + Hu3DParticleHookSet(var_r29, fn_1_A01C); + var_r21 = HuSprAnimRead(HuDataReadNum(0x120003, 0x10000000)); + var_r29 = Hu3DParticleCreate(var_r21, 0x40); + Hu3DModelPosSet(var_r29, 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(var_r29, 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(var_r29, 4); + Hu3DParticleColSet(var_r29, 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(var_r29, 0.0f); + Hu3DParticleHookSet(var_r29, fn_1_A618); + var_r21 = HuSprAnimRead(HuDataReadNum(0x120003, 0x10000000)); + var_r29 = Hu3DParticleCreate(var_r21, 3); + Hu3DModelPosSet(var_r29, 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(var_r29, 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(var_r29, 4); + Hu3DParticleColSet(var_r29, 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(var_r29, 0.0f); + Hu3DParticleHookSet(var_r29, fn_1_AA88); + HuDataDirClose(0x120000); + HuPrcChildCreate(fn_1_B160, 0x1000, 0x1000, 0, HuPrcCurrentGet()); +} + +f32 fn_1_1D08(f32 arg0) { + while (arg0 >= 360.0f || arg0 < 0.0f) { + if (arg0 >= 360.0f) { + arg0 -= 360.0f; + } + if (arg0 < 0.0f) { + arg0 += 360.0f; + } + } + return arg0; +} + +void fn_1_1D88(void) { + void* var_r31; + + var_r31 = HuPrcCurrentGet()->user_data; + HuMemDirectFree(var_r31); +} + +void fn_1_1DBC(void) { + Vec sp8; + HsfObject* var_r27; + HsfTransform* temp_r31; + unkStruct4* temp_r30; + Vec* temp_r29; + s32 var_r28; + f32 var_f31; + f32 var_f30; + + temp_r30 = HuPrcCurrentGet()->user_data; + HuPrcDestructorSet(fn_1_1D88); + var_r27 = Hu3DModelObjPtrGet(temp_r30->unk0, lbl_1_data_298[temp_r30->unk4]); + if (!var_r27) { + OSReport("objname %s\n", lbl_1_data_298[temp_r30->unk4]); + OSPanic("m412.c", 0x32E, "ObjPtr"); + } + temp_r31 = &var_r27->data.base; + temp_r29 = &lbl_1_bss_13C[temp_r30->unk4]; + temp_r31->pos.x = temp_r29->x; + temp_r31->pos.y = temp_r29->y; + temp_r31->pos.z = temp_r29->z; + HuSetVecF(&sp8, 0.15f * temp_r31->pos.x, 0.15f * temp_r31->pos.y, 0.15f * temp_r31->pos.z); + temp_r29 = &lbl_1_bss_28[temp_r30->unk4]; + temp_r31->scale.x = temp_r29->x; + temp_r31->scale.y = temp_r29->y; + temp_r31->scale.z = temp_r29->z; + for (var_r28 = 0, var_f31 = -2.0f, var_f30 = 1.0f; var_r28 < 0x1E; var_r28++) { + sp8.y -= var_f31; + var_f31 += 0.5f; + temp_r31->pos.x += sp8.x; + temp_r31->pos.y += sp8.y; + temp_r31->pos.z += sp8.z; + temp_r31->scale.x *= 0.95f; + temp_r31->scale.y *= 0.95f; + temp_r31->scale.z *= 0.95f; + if (temp_r30->unk4 == 0) { + var_f30 -= 0.033333335f; + Hu3DModelTPLvlSet(temp_r30->unk0, var_f30); + } + HuPrcVSleep(); + } + temp_r30->unk8 = 0; + HuPrcVSleep(); + HuPrcKill(HuPrcCurrentGet()); + while (1) { + HuPrcVSleep(); + } +} + +void fn_1_2014(void) { + unkStruct2* temp_r31; // could also be unkStruct3 `\_("/)_/` + + temp_r31 = (unkStruct2*)HuPrcCurrentGet()->user_data; + lbl_1_bss_278[temp_r31->unk6] = NULL; + HuMemDirectFree(temp_r31); +} + +void fn_1_2064(void) { + Vec sp28; + Vec sp1C; + Vec sp10; + f32 spC; + f32 sp8; + Process* temp_r26; + s32 var_r30; + unkStruct* temp_r28; + unkStruct3* temp_r29; + unkStruct* temp_r31; + unkStruct4* var_r27; + + temp_r31 = (unkStruct*)HuPrcCurrentGet()->user_data; + temp_r31->unk8 = 0; + temp_r31->unkA = 0; + HuPrcDestructorSet(fn_1_2014); + + do { + if ((temp_r31->unk8 != 0) || (lbl_1_bss_794 >= 4)) break; + temp_r31->unk10.x += (temp_r31->unk24.y * sind(temp_r31->unk24.x)); + temp_r31->unk10.z += (temp_r31->unk24.y * cosd(temp_r31->unk24.x)); + temp_r31->unk10.y += temp_r31->unk24.z; + temp_r31->unk24.z -= 0.9f; + if (temp_r31->unk30 != 100.0f) { + HuSetVecF(&sp28, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z); + for (var_r30 = 0; var_r30 < 0x20; var_r30++) { + temp_r28 = lbl_1_bss_278[var_r30]; + if ((var_r30 != temp_r31->unk6) && temp_r28 && (temp_r28->unk6 != -1)) { + HuSetVecF(&sp1C, temp_r28->unk10.x, temp_r28->unk10.y, temp_r28->unk10.z); + HuSubVecF(&sp10, &sp28, &sp1C); + if (sqrtf((sp10.z * sp10.z) + ((sp10.x * sp10.x) + (sp10.y * sp10.y))) < (temp_r31->unk30 + temp_r28->unk30)) { + if (temp_r28->unk30 != 100.0f) { + temp_r28->unk8 = 1; + } + temp_r31->unk8 = 1; + } + } + } + } + HuSetVecF(&sp28, temp_r31->unk10.x, 0.0, temp_r31->unk10.z); + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + temp_r29 = &lbl_1_bss_4D4[var_r30]; + HuSetVecF(&sp1C, temp_r29->unk40.x, 0.0, temp_r29->unk40.z); + HuSubVecF(&sp10, &sp28, &sp1C); + if ((sqrtf((sp10.z * sp10.z) + ((sp10.x * sp10.x) + (sp10.y * sp10.y))) < (temp_r31->unk30 + temp_r29->unk60.x)) + && ((150.0f + temp_r29->unk40.y + temp_r31->unk30) > temp_r31->unk10.y)) { + + if (temp_r29->unk30 != 3) { + if (temp_r31->unkC == 0) { + omVibrate(temp_r29->unk24, 0xC, 4, 2); + } else { + omVibrate(temp_r29->unk24, 0xC, 0xC, 0); + } + } + HuAudFXPlay(0x585); + temp_r29->unk30 = 3; + temp_r31->unk8 = 1; + } + } + if (temp_r31->unk10.y < temp_r31->unk30) { + temp_r31->unk10.y = temp_r31->unk30; + temp_r31->unk8 = 1; + } + Hu3DModelPosSet(temp_r31->unk0, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z); + Hu3DModelPosSet(temp_r31->unk2, temp_r31->unk10.x, -temp_r31->unk10.y, temp_r31->unk10.z); + if (temp_r31->unk8 != 0) break; + HuPrcVSleep(); + } while (1); + if (temp_r31->unkC == 1) { + HuAudFXPlay(0x58D); + } else { + HuAudFXPlay(0x58C); + } + Hu3DModelAttrSet(temp_r31->unk0, 1); + Hu3DModelAttrSet(temp_r31->unk2, 1); + Hu3DModelShadowDispOff(temp_r31->unk0); + temp_r31->unkA = 1; + if (temp_r31->unkC == 1) { + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (lbl_1_bss_4D4[var_r30].unk30 != 3) { + omVibrate(lbl_1_bss_4D4[var_r30].unk24, 0xC, 6, 6); + } + } + Hu3DModelPosSet(temp_r31->unk4, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z); + Hu3DModelAttrReset(temp_r31->unk4, 1); + Hu3DModelShadowDispOn(temp_r31->unk4); + + for (var_r30 = 0; var_r30 < 0x17; var_r30++) { + temp_r26 = HuPrcChildCreate(fn_1_1DBC, 0x2000, 0x1000, 0, HuPrcCurrentGet()); + var_r27 = HuMemDirectMalloc(HEAP_DATA, 0x18); + temp_r26->user_data = var_r27; + var_r27->unk0 = temp_r31->unk4; + var_r27->unk4 = var_r30; + var_r27->unk8 = 1; + var_r27->unkC.x = temp_r31->unk10.x; + var_r27->unkC.y = temp_r31->unk10.y; + var_r27->unkC.z = temp_r31->unk10.z; + } + while (var_r27->unk8 != 0) { + HuPrcVSleep(); + } + } + HuPrcVSleep(); + HuPrcKill(HuPrcCurrentGet()); + while (1) { + HuPrcVSleep(); + } +} + +s32 fn_1_2708(void) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + if (!lbl_1_bss_278[var_r31]) break; + } + if (var_r31 >= 0x20) { + var_r31 = -1; + } + lbl_1_bss_278[var_r31] = HuMemDirectMalloc(HEAP_DATA, 0x34); + lbl_1_bss_278[var_r31]->unk6 = -1; + lbl_1_bss_278[var_r31]->unkA = 0; + return var_r31; +} + +f32 fn_1_27C4(s32 arg0, f32 arg8, f32 arg9) { + f32 temp_f31; + f32 var_f25; + f32 var_f26; + f32 var_f27; + f32 var_f28; + f32 var_f29; + + temp_f31 = arg8 - fn_1_1D08(arg9); + if ((temp_f31 < 0.0f) || (ABS_INV(temp_f31) > 180.0f)) { + if (ABS_INV(temp_f31) > 180.0f) { + var_f29 = (360.0f - ABS_INV(temp_f31)) / arg0; + if (temp_f31 > 0.0f) { + var_f29 = -var_f29; + } + } else { + var_f29 = temp_f31 / arg0; + } + } else { + var_f29 = temp_f31 / arg0; + } + return var_f29; +} + +s32 lbl_1_data_310[6][2] = { + { 0x09249222, 0x22210842 }, + { 0x04924888, 0x88842108 }, + { 0x12492222, 0x22108420 }, + { 0x04444444, 0x44444400 }, + { 0x11111111, 0x11100000 }, + { 0x04444444, 0x40000000 } +}; + +s32 lbl_1_data_340[1][2] = { + { 0x00040008, 0x02000000 } +}; + +s32 lbl_1_data_348[6] = { + 0x0, 0x0, 0x0, 0x8, 0x12, 0x1C +}; + +void fn_1_2A1C(void) { + Vec sp68; + Vec sp5C; + Vec sp50; + Vec sp44; + f32 sp40; + f32 temp_f18; + f32 var_f24; + f32 var_f23; + f32 var_f19; + f32 var_f22; + s32 var_r22; + s32 var_r23; + s32 var_r25; + s32 var_r24; + s32 var_r26; + s32 var_r29; + unkStruct* temp_r30; + unkStruct3* temp_r27; + unkStruct2* temp_r31; + s32 var_r21; + Process* var_r20; + + temp_r31 = HuPrcCurrentGet()->user_data; + switch (temp_r31->unk24) { + case 0: + var_r25 = 0x142; + var_r24 = 0x154; + break; + case 1: + var_r25 = 0x14A; + var_r24 = 0x15E; + break; + case 2: + var_r25 = 0x148; + var_r24 = 0x162; + break; + default: + var_r25 = 0x4E; + var_r24 = 0x5D; + break; + } + +loop_10: + var_r29 = lbl_1_bss_790 / 60; + if (var_r29 >= 0x3C) { + var_r29 = 0x3C; + } + if (var_r29 == lbl_1_data_348[temp_r31->unk28]) { + Hu3DModelAttrReset(temp_r31->unk0, 0x40000002); + Hu3DModelAttrReset(temp_r31->unk2, 0x40000002); + Hu3DModelAttrReset(temp_r31->unk4, 0x40000002); + } + if (var_r25 == Hu3DMotionTimeGet(temp_r31->unk0)) { + temp_r31->unk20 = 1; + } + if (var_r24 == Hu3DMotionTimeGet(temp_r31->unk0)) { + HuAudFXPlay(0x581); + } + if (lbl_1_bss_794 >= 4) { + while (1) { + HuPrcVSleep(); + } + } + var_r22 = 1; + if (var_r29 >= 0x20) { + var_r22 = 0; + } + if (((1 << (var_r29 % 32)) & lbl_1_data_310[temp_r31->unk28][var_r22]) != 0) { + var_r21 = fn_1_2708(); + } else { + HuPrcVSleep(); + goto loop_10; + } + var_r26 = frandmod(4); + if (lbl_1_bss_4D4[var_r26].unk30 == 3) { + for (var_r23 = 3; var_r23 != 0; var_r23--) { + var_r26++; + if (var_r26 >= 4) { + var_r26 = 0; + } + if (lbl_1_bss_4D4[var_r26].unk30 != 3) break; + } + } + temp_r27 = &lbl_1_bss_4D4[var_r26]; + Hu3DMotionSet(temp_r31->unk0, temp_r31->unkC[1]); + Hu3DMotionSet(temp_r31->unk2, temp_r31->unkC[1]); + Hu3DModelAttrReset(temp_r31->unk0, 0x40000001); + Hu3DModelAttrReset(temp_r31->unk2, 0x40000001); + var_r29 = Hu3DMotionMaxTimeGet(temp_r31->unk0); + var_f24 = fn_1_1D08(atan2d(temp_r27->unk40.x - temp_r31->unk2C.x, temp_r27->unk40.z - temp_r31->unk2C.z)); + temp_f18 = (temp_r27->unk40.x + (50.0 * sind(var_f24))); + sp44.y = (temp_r27->unk40.z + (50.0 * cosd(var_f24))); + sp44.x = 360.0f * frandf(); + var_f23 = 50.0f * frandf(); + temp_f18 += (var_f23 * sind(sp44.x)); + sp44.y += (var_f23 * cosd(sp44.x)); + sp44.z = fn_1_27C4(var_r29, var_f24, temp_r31->unk38.y); + HuAudFXPlay(0x583); + + for (;var_r29 != 0; var_r29--) { + temp_r31->unk38.y += sp44.z; + Hu3DModelRotSet(temp_r31->unk0, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); + Hu3DModelRotSet(temp_r31->unk2, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); + HuPrcVSleep(); + } + HuPrcSleep(0x1E); + Hu3DModelAttrReset(temp_r31->unk6, 1); + Hu3DModelAttrReset(temp_r31->unk8, 1); + Hu3DModelShadowDispOn(temp_r31->unk6); + Hu3DModelPosSet(temp_r31->unk6, 0.0f, 0.0f, 0.0f); + Hu3DModelPosSet(temp_r31->unk8, 0.0f, 0.0f, 0.0f); + Hu3DModelHookSet(temp_r31->unk0, "itemhook", temp_r31->unk6); + Hu3DModelHookSet(temp_r31->unk2, "itemhook", temp_r31->unk8); + Hu3DMotionShiftSet(temp_r31->unk0, temp_r31->unkC[2], 0.0f, 5.0f, 0); + Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unkC[2], 0.0f, 5.0f, 0); + HuPrcSleep(10); + while (Hu3DMotionTimeGet(temp_r31->unk0) < 18.0f) { + HuPrcVSleep(); + } + Hu3DModelHookReset(temp_r31->unk0); + Hu3DModelHookReset(temp_r31->unk2); + HuAudFXPlay(0x582); + temp_r30 = lbl_1_bss_278[var_r21]; + temp_r30->unk6 = var_r21; + temp_r30->unkA = 0; + var_r20 = HuPrcChildCreate(fn_1_2064, 0x1000, 0x3000, 0, HuPrcCurrentGet()); + var_r20->user_data = temp_r30; + temp_r30->unkC = 0; + temp_r30->unk0 = temp_r31->unk6; + temp_r30->unk2 = temp_r31->unk8; + temp_r30->unk30 = 25.0f; + temp_r30->unk10.x = -89.937f; + temp_r30->unk10.y = 125.861f; + temp_r30->unk10.z = 43.181f; + temp_r30->unk1C.x = temp_f18; + temp_r30->unk1C.y = sp44.y; + var_f24 = fn_1_1D08(atan2d(temp_r30->unk10.x, temp_r30->unk10.z)); + var_f24 += temp_r31->unk38.y; + var_f23 = sqrtf((temp_r30->unk10.x * temp_r30->unk10.x) + (temp_r30->unk10.z * temp_r30->unk10.z)); + temp_r30->unk10.x = (temp_r31->unk2C.x + (var_f23 * sind(var_f24))); + temp_r30->unk10.y = 125.861f + temp_r31->unk2C.y; + temp_r30->unk10.z = (temp_r31->unk2C.z + (var_f23 * cosd(var_f24))); + Hu3DModelPosSet(temp_r31->unk6, temp_r30->unk10.x, temp_r30->unk10.y, temp_r30->unk10.z); + Hu3DModelPosSet(temp_r31->unk8, temp_r30->unk10.x, -temp_r30->unk10.y, temp_r30->unk10.z); + HuSetVecF(&sp68, temp_r31->unk2C.x, 0.0, temp_r31->unk2C.z); + HuSetVecF(&sp5C, temp_f18, 0.0, sp44.y); + HuSubVecF(&sp50, &sp68, &sp5C); + var_f23 = sqrtf((sp50.x * sp50.x) + (sp50.z * sp50.z)); + sp40 = 1.0f; + while (1) { + for (var_r29 = 0, var_f19 = temp_r30->unk10.y, var_f22 = sp40; var_f22 > 0.0f; var_r29++) { + var_f19 += var_f22; + var_f22 -= 0.9f; + } + if (var_f19 >= (var_f23 / 2.0f)) break; + sp40++; + } + + for (;var_f19 > 0.0f; var_r29++) { + var_f19 += var_f22; + var_f22 -= 0.9f; + } + temp_r30->unk24.z = sp40; + temp_r30->unk24.x = fn_1_1D08(atan2d(temp_f18 - temp_r30->unk10.x, sp44.y - temp_r30->unk10.z)); + temp_r30->unk24.y = var_f23 / var_r29; + + while (Hu3DMotionEndCheck(temp_r31->unk0) == 0) { + HuPrcVSleep(); + } + goto loop_10; +} + +void fn_1_3950(void) { + Vec sp8C; + Vec sp80; + Vec sp74; + f32 sp70; + f32 sp6C; + f32 sp68; + f32 sp64; + f32 sp60; + f32 sp5C; + volatile f32 sp58; + f32 sp54; + f32 temp_f27; + f32 var_f29; + f32 temp_f31; + f32 temp_f30; + f32 var_f18; + f32 var_f19; + f32 var_f20; + f32 var_f21; + f32 var_f22; + f32 var_f23; + f32 var_f24; + s32 var_r28; + s32 var_r24; + s32 var_r25; + s32 var_r29; + s32 var_r26; + unkStruct* temp_r30; + unkStruct3* temp_r27; + unkStruct2* temp_r31; + s32 var_r23; + Process* var_r22; + + temp_r31 = HuPrcCurrentGet()->user_data; +loop_1: + var_r29 = lbl_1_bss_790 / 60; + if (var_r29 >= 0x3C) { + var_r29 = 0x3C; + } + if (lbl_1_bss_794 >= 4) { + while (1) { + HuPrcVSleep(); + } + } + var_r24 = 1; + if (var_r29 >= 0x20) { + var_r24 = 0; + } + if (((1 << (var_r29 % 32)) & lbl_1_data_340[temp_r31->unk28][var_r24]) != 0) { + var_r23 = fn_1_2708(); + } else { + HuPrcVSleep(); + goto loop_1; + } + Hu3DModelAttrReset(temp_r31->unk0, 0x40000002); + Hu3DModelClusterAttrReset(temp_r31->unk0, 0, -0x3FFFFFFE); + Hu3DModelAttrReset(temp_r31->unk2, 0x40000002); + Hu3DModelClusterAttrReset(temp_r31->unk2, 0, -0x3FFFFFFE); + Hu3DModelAttrReset(temp_r31->unk6, 1); + Hu3DModelAttrReset(temp_r31->unk8, 1); + Hu3DModelShadowDispOn(temp_r31->unk6); + var_f18 = 850.0f; + temp_f31 = -217.722f; + temp_f30 = 0.0f; + var_f29 = fn_1_1D08(atan2d(temp_f31, temp_f30)); + var_f29 += temp_r31->unk38.y; + var_f24 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + temp_f31 = (temp_r31->unk2C.x + (var_f24 * sind(var_f29))); + temp_f30 = (temp_r31->unk2C.z + (var_f24 * cosd(var_f29))); + sp64 = 5.0f; + while (1) { + var_f18 -= sp64; + sp64 += 0.9f; + if (sp64 > 20.0f) { + sp64 = 20.0f; + } + if (var_f18 < (304.52f + temp_r31->unk2C.y)) { + var_f18 = 304.52f + temp_r31->unk2C.y; + } + Hu3DModelPosSet(temp_r31->unk6, temp_f31, var_f18, temp_f30); + Hu3DModelPosSet(temp_r31->unk8, temp_f31, -var_f18, temp_f30); + if (var_f18 == (304.52f + temp_r31->unk2C.y)) break; + HuPrcVSleep(); + } + Hu3DModelPosSet(temp_r31->unk6, 0.0f, 0.0f, 0.0f); + Hu3DModelPosSet(temp_r31->unk8, 0.0f, 0.0f, 0.0f); + Hu3DModelHookSet(temp_r31->unk0, "itemhook", temp_r31->unk6); + Hu3DModelHookSet(temp_r31->unk2, "itemhook", temp_r31->unk8); + Hu3DMotionShiftSet(temp_r31->unk0, temp_r31->unkC[2], 0.0f, 5.0f, 0); + Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk16[2], 0.0f, 5.0f, 0); + HuPrcSleep(10); + + while (Hu3DMotionEndCheck(temp_r31->unk0) == 0) { + HuPrcVSleep(); + } + HuPrcSleep(0xA); + var_r26 = frandmod(4); + if (lbl_1_bss_4D4[var_r26].unk30 == 3) { + for (var_r25 = 3; var_r25 != 0; var_r25--) { + var_r26 += 1; + if (var_r26 >= 4) { + var_r26 = 0; + } + if (lbl_1_bss_4D4[var_r26].unk30 != 3) break; + } + } + temp_r27 = &lbl_1_bss_4D4[var_r26]; + Hu3DMotionSet(temp_r31->unk0, temp_r31->unkC[3]); + Hu3DModelAttrReset(temp_r31->unk0, 0x40000001); + Hu3DMotionSet(temp_r31->unk2, temp_r31->unk16[3]); + Hu3DModelAttrReset(temp_r31->unk2, 0x40000001); + var_r29 = Hu3DMotionMaxTimeGet(temp_r31->unk0); + var_f29 = fn_1_1D08(atan2d(temp_r27->unk40.x - temp_r31->unk2C.x, temp_r27->unk40.z - temp_r31->unk2C.z)); + sp6C = (temp_r27->unk40.x + (50.0 * sind(var_f29))); + sp68 = (temp_r27->unk40.z + (50.0 * cosd(var_f29))); + sp60 = 360.0f * frandf(); + var_f24 = 50.0f * frandf(); + sp6C += (var_f24 * sind(sp60)); + sp68 += (var_f24 * cosd(sp60)); + sp70 = fn_1_27C4(var_r29, var_f29, temp_r31->unk38.y); + HuAudFXPlay(0x587); + + for (;var_r29 != 0; var_r29--) { + temp_r31->unk38.y += sp70; + Hu3DModelRotSet(temp_r31->unk0, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); + Hu3DModelRotSet(temp_r31->unk2, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); + HuPrcVSleep(); + } + HuPrcSleep(30); + Hu3DMotionShiftSet(temp_r31->unk0, temp_r31->unkC[4], 0.0f, 5.0f, 0); + Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk16[4], 0.0f, 5.0f, 0); + HuPrcSleep(10); + + while (Hu3DMotionTimeGet(temp_r31->unk0) < 24.0f) { + HuPrcVSleep(); + } + Hu3DModelHookReset(temp_r31->unk0); + Hu3DModelHookReset(temp_r31->unk2); + HuAudFXPlay(0x586); + temp_r30 = lbl_1_bss_278[var_r23]; + temp_r30->unk6 = var_r23; + temp_r30->unkA = 0; + var_r22 = HuPrcChildCreate(fn_1_2064, 0x1000, 0x3000, 0, HuPrcCurrentGet()); + var_r22->user_data = temp_r30; + temp_r30->unkC = 1; + temp_r30->unk0 = temp_r31->unk6; + temp_r30->unk2 = temp_r31->unk8; + temp_r30->unk4 = temp_r31->unkA; + temp_r30->unk30 = 100.0f; + temp_r30->unk10.x = -217.722f; + temp_r30->unk10.y = 404.52f; + temp_r30->unk10.z = 0.0f; + var_f29 = fn_1_1D08(atan2d(temp_r30->unk10.x, temp_r30->unk10.z)); + var_f29 += temp_r31->unk38.y; + var_f24 = sqrtf((temp_r30->unk10.x * temp_r30->unk10.x) + (temp_r30->unk10.z * temp_r30->unk10.z)); + temp_r30->unk10.x = (temp_r31->unk2C.x + (var_f24 * sind(var_f29))); + temp_r30->unk10.y = (404.52f + temp_r31->unk2C.y) - 100.0f; + temp_r30->unk10.z = (temp_r31->unk2C.z + (var_f24 * cosd(var_f29))); + Hu3DModelPosSet(temp_r31->unk6, temp_r30->unk10.x, temp_r30->unk10.y, temp_r30->unk10.z); + Hu3DModelPosSet(temp_r31->unk8, temp_r30->unk10.x, -temp_r30->unk10.y, temp_r30->unk10.z); + HuSetVecF(&sp8C, temp_r31->unk2C.x, 0.0, temp_r31->unk2C.z); + HuSetVecF(&sp80, sp6C, 0.0, sp68); + HuSubVecF(&sp74, &sp8C, &sp80); + var_f24 = sqrtf((sp74.x * sp74.x) + (sp74.z * sp74.z)); + sp54 = 1.0f; + + while (1) { + for (var_r29 = 0, sp5C = temp_r30->unk10.y, sp58 = sp54; sp58 > 0.0f; var_r29++) { + sp5C += sp58; + sp58 -= 0.9f; + } + if (sp5C >= 600.0f) break; + sp54++; + } + for (;sp5C > 0.0f; var_r29++) { + sp5C += sp58; + sp58 -= 0.9f; + } + temp_r30->unk24.z = sp54; + temp_r30->unk24.x = fn_1_1D08(atan2d((sp6C - temp_r30->unk10.x), (sp68 - temp_r30->unk10.z))); + temp_r30->unk24.y = var_f24 / var_r29; + while (Hu3DMotionEndCheck(temp_r31->unk0) == 0) { + HuPrcVSleep(); + } + goto loop_1; +} + +s8 fn_1_4BE4(s32 arg0, s32 arg1) { + s8 var_r30; + s8 var_r29; + s8 var_r28; + unkStruct3* temp_r31; + + temp_r31 = &lbl_1_bss_4D4[arg0]; + if (GWPlayerCfg[arg0].iscom == 0) { + if (arg1 != 0) { + var_r29 = var_r30 = HuPadStkY[temp_r31->unk2C]; + } else { + var_r29 = var_r30 = HuPadStkX[temp_r31->unk2C]; + } + + (void)var_r30; // used to make the else branch go here instead of returning + } else { + if (arg1 != 0) { + var_r28 = var_r30 = temp_r31->unk89; + } else { + var_r28 = var_r30 = temp_r31->unk88; + } + } + return var_r30; +} + +void fn_1_4C9C(Vec* arg0, f32 arg8, f32 arg9) { + f32 temp_f29; + + temp_f29 = sqrtf((arg0->x * arg0->x) + (arg0->z * arg0->z)); + temp_f29 *= arg9; + arg0->x = (temp_f29 * sind(arg8)); + arg0->z = (temp_f29 * cosd(arg8)); +} + +static inline f32 unkInline(void) { + return 1.0f; // huh? +} + +s8 fn_1_4E58(s32 arg0, s32 arg1) { + Vec spC; + f32 sp8; + f32 temp_f28; + f32 temp_f27; + s8 var_r30; + s8 temp_r29; + s8 temp_r28; + s8 var_r27; + s8 var_r26; + unkStruct3* temp_r31; + + temp_r31 = &lbl_1_bss_4D4[arg0]; + if (GWPlayerCfg[arg0].iscom == 0) { + temp_r29 = HuPadStkX[temp_r31->unk2C]; + temp_r28 = HuPadStkY[temp_r31->unk2C]; + temp_f28 = fn_1_1D08(atan2d(temp_r29, temp_r28)); + temp_f28 -= lbl_1_bss_778; + HuSetVecF(&spC, (f32)temp_r29, 0.0, (f32)temp_r28); + temp_f27 = sqrtf((spC.x * spC.x) + (spC.z * spC.z)); + temp_f27 *= unkInline(); + spC.x = (temp_f27 * sind(temp_f28)); + spC.z = (temp_f27 * cosd(temp_f28)); + if (arg1 != 0) { + var_r27 = var_r30 = spC.z; + } else { + var_r27 = var_r30 = spC.x; + } + + (void)var_r30; // used to make the else branch go here instead of returning + } else if (arg1 != 0) { + var_r26 = var_r30 = temp_r31->unk89; + } else { + var_r26 = var_r30 = temp_r31->unk88; + } + return var_r30; +} + +u8 fn_1_525C(s32 arg0, s32 arg1) { + s8 var_r30; + s8 var_r29; + s8 var_r28; + unkStruct3* temp_r31; + + temp_r31 = &lbl_1_bss_4D4[arg0]; + if (GWPlayerCfg[arg0].iscom == 0) { + if (arg1 != 0) { + var_r29 = var_r30 = HuPadTrigR[temp_r31->unk2C]; + } else { + var_r29 = var_r30 = HuPadTrigL[temp_r31->unk2C]; + } + + (void)var_r30; // used to make the else branch go here instead of returning + } else if (arg1 != 0) { + var_r28 = var_r30 = temp_r31->unk8A; + } else { + var_r28 = var_r30 = temp_r31->unk8B; + } + return var_r30; +} + +u16 fn_1_531C(s32 arg0) { + u16 var_r30; + unkStruct3* temp_r31; + + temp_r31 = &lbl_1_bss_4D4[arg0]; + if (GWPlayerCfg[arg0].iscom == 0) { + var_r30 = HuPadBtnDown[temp_r31->unk2C]; + } else { + var_r30 = temp_r31->unk8E; + } + return var_r30; +} + +u16 fn_1_5388(s32 arg0) { + u16 var_r30; + unkStruct3* temp_r31; + + temp_r31 = &lbl_1_bss_4D4[arg0]; + if (GWPlayerCfg[arg0].iscom == 0) { + var_r30 = HuPadBtn[temp_r31->unk2C]; + } else { + var_r30 = temp_r31->unk8C; + } + return var_r30; +} + +s32 fn_1_53F4(unkStruct3* arg0, f32 arg8, f32 arg9, f32 argA) { + Vec sp30; + Vec sp24; + Vec sp18; + f32 var_f27; + f32 var_f28; + s32 var_r28; + s32 var_r30; + unkStruct3* temp_r31; + + var_r28 = -1; + var_r30 = 0; + var_f28 = 10000.0f; + + for (;var_r30 < 4; var_r30++) { + if (var_r30 != arg0->unk24) { + temp_r31 = &lbl_1_bss_4D4[var_r30]; + HuSetVecF(&sp30, arg8, arg9, argA); + HuSetVecF(&sp24, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); + HuSubVecF(&sp18, &sp30, &sp24); + var_f27 = sqrtf((sp18.z * sp18.z) + ((sp18.x * sp18.x) + (sp18.y * sp18.y))); + if ((var_f27 < (arg0->unk60.x + temp_r31->unk60.x)) && (var_f27 < var_f28)) { + var_f28 = var_f27; + var_r28 = var_r30; + arg0->unkA4 = 0; + } + } + } + return var_r28; +} + +s32 fn_1_561C(unkStruct3* arg0, s32* arg1) { + Vec sp24; + Vec sp18; + Vec spC; + f32 var_f27; + f32 var_f28; + s32 var_r27; + s32 var_r28; + s32 var_r29; + unkStruct3* temp_r30; + + var_r27 = -1; + var_r29 = 0; + var_f28 = 10000.0f; + var_r28 = 0; + + for (;var_r29 < 4; var_r29++) { + if (var_r29 != arg0->unk24) { + temp_r30 = &lbl_1_bss_4D4[var_r29]; + HuSetVecF(&sp24, arg0->unk40.x, arg0->unk40.y, arg0->unk40.z); + HuSetVecF(&sp18, temp_r30->unk40.x, temp_r30->unk40.y, temp_r30->unk40.z); + HuSubVecF(&spC, &sp24, &sp18); + var_f27 = sqrtf((spC.z * spC.z) + ((spC.x * spC.x) + (spC.y * spC.y))); + if (var_f27 < (arg0->unk60.x + temp_r30->unk60.x)) { + var_r28 += 1; + if (var_f27 < var_f28) { + var_f28 = var_f27; + var_r27 = var_r29; + arg0->unkA4 = 0; + } + } + } + } + *arg1 = var_r28; + return var_r27; +} \ No newline at end of file diff --git a/src/libhu/setvf.c b/src/libhu/setvf.c new file mode 100644 index 00000000..d8381bf7 --- /dev/null +++ b/src/libhu/setvf.c @@ -0,0 +1,7 @@ +#include "dolphin.h" + +void HuSetVecF(Vec* arg0, f32 arg8, f32 arg9, f32 argA) { + arg0->x = arg8; + arg0->y = arg9; + arg0->z = argA; +} \ No newline at end of file diff --git a/src/libhu/subvf.c b/src/libhu/subvf.c new file mode 100644 index 00000000..fc245a99 --- /dev/null +++ b/src/libhu/subvf.c @@ -0,0 +1,7 @@ +#include "dolphin.h" + +void HuSubVecF(Vec* out, Vec* in, Vec* sub) { + out->x = in->x - sub->x; + out->y = in->y - sub->y; + out->z = in->z - sub->z; +} \ No newline at end of file From 60a9cf9edfabc344048e76ffde2027c041b92784 Mon Sep 17 00:00:00 2001 From: Rainchus Date: Thu, 1 Aug 2024 16:00:30 -0500 Subject: [PATCH 002/311] wip extra w07 board rel --- .gitignore | 5 ++++- config/GMPE01_00/build.sha1 | 1 + config/GMPE01_00/config.yml | 5 +++++ config/GMPE01_00/rels/w07Dll/splits.txt | 3 +++ config/GMPE01_00/rels/w07Dll/symbols.txt | 2 ++ configure | 1 - configure.py | 12 ++++++++++++ include/game/board/main.h | 1 + include/game/gamework_data.h | 4 ++-- include/ovl_table.h | 3 ++- src/REL/mstory4Dll/main.c | 3 ++- src/game/board/main.c | 4 ++++ 12 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 config/GMPE01_00/rels/w07Dll/splits.txt create mode 100644 config/GMPE01_00/rels/w07Dll/symbols.txt delete mode 100644 configure diff --git a/.gitignore b/.gitignore index 81558d47..dd592e4b 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,7 @@ orig/*/* !orig/*/.gitkeep /*.txt ctx.c -tools/output/* \ No newline at end of file +tools/output/* +rels_to_mod.py +orig/root +*.iso \ No newline at end of file diff --git a/config/GMPE01_00/build.sha1 b/config/GMPE01_00/build.sha1 index 0c205375..cd58622f 100644 --- a/config/GMPE01_00/build.sha1 +++ b/config/GMPE01_00/build.sha1 @@ -91,6 +91,7 @@ f9e8d9c4581d44488adaffa3d46d9bc835d4f9bd build/GMPE01_00/w03Dll/w03Dll.rel 821126eeb7054150744b925cc4cb06c751ddcefd build/GMPE01_00/w04Dll/w04Dll.rel d29f7ccadcba23c8446d05101c4efa5caba26dfd build/GMPE01_00/w05Dll/w05Dll.rel d11a7a6d44189ba8d1e3a7168ea640ea9f2152fe build/GMPE01_00/w06Dll/w06Dll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPE01_00/w07Dll/w07Dll.rel 54bb23228b04c5aaa6aa7c8ca1f846baec5a1f2c build/GMPE01_00/w10Dll/w10Dll.rel 98cc41456afa9e1ccbb8e03718b8d3cb64e4e86f build/GMPE01_00/w20Dll/w20Dll.rel b888f2c6703e680699ff8c59ad9200b9d78d30a1 build/GMPE01_00/w21Dll/w21Dll.rel diff --git a/config/GMPE01_00/config.yml b/config/GMPE01_00/config.yml index 8e687a60..bd07ac13 100644 --- a/config/GMPE01_00/config.yml +++ b/config/GMPE01_00/config.yml @@ -471,6 +471,11 @@ modules: symbols: config/GMPE01_00/rels/w06Dll/symbols.txt splits: config/GMPE01_00/rels/w06Dll/splits.txt links: [] +- object: orig/GMPE01_00/files/dll/w07Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPE01_00/rels/w07Dll/symbols.txt + splits: config/GMPE01_00/rels/w07Dll/splits.txt + links: [] - object: orig/GMPE01_00/files/dll/w10Dll.rel hash: 54bb23228b04c5aaa6aa7c8ca1f846baec5a1f2c symbols: config/GMPE01_00/rels/w10Dll/symbols.txt diff --git a/config/GMPE01_00/rels/w07Dll/splits.txt b/config/GMPE01_00/rels/w07Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPE01_00/rels/w07Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPE01_00/rels/w07Dll/symbols.txt b/config/GMPE01_00/rels/w07Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPE01_00/rels/w07Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/configure b/configure deleted file mode 100644 index 965a9b7f..00000000 --- a/configure +++ /dev/null @@ -1 +0,0 @@ -python3 configure.py "$@" \ No newline at end of file diff --git a/configure.py b/configure.py index 08d6561b..9386391b 100644 --- a/configure.py +++ b/configure.py @@ -1541,6 +1541,18 @@ config.libs = [ Object(Matching, "REL/w06Dll/bowser.c"), }, ), + Rel( + "w07Dll", # Custom Board + objects={ + Object(Matching, "REL/board_executor.c"), + # Object(Matching, "REL/w07Dll/main.c"), + # Object(Matching, "REL/w06Dll/mg_item.c"), + # Object(Matching, "REL/w06Dll/mg_coin.c"), + # Object(Matching, "REL/w06Dll/fire.c"), + # Object(Matching, "REL/w06Dll/bridge.c"), + # Object(Matching, "REL/w06Dll/bowser.c"), + }, + ), Rel( "w10Dll", # Tutorial board objects={ diff --git a/include/game/board/main.h b/include/game/board/main.h index 2b4d84cc..6a6870fd 100644 --- a/include/game/board/main.h +++ b/include/game/board/main.h @@ -15,6 +15,7 @@ #define BOARD_ID_TUTORIAL 6 //TUTORIAL_BOARD #define BOARD_ID_EXTRA1 7 //MEGA_BOARD_MAYHEM #define BOARD_ID_EXTRA2 8 //MINI_BOARD_MAD_DASH +#define BOARD_ID_CUSTOM 9 //Custom Test Board #define BOARD_FABS(value) ((value < 0) ? -(value) : (value)) diff --git a/include/game/gamework_data.h b/include/game/gamework_data.h index 5376c63e..26dcc030 100644 --- a/include/game/gamework_data.h +++ b/include/game/gamework_data.h @@ -34,8 +34,8 @@ typedef struct system_state { /* 0x06 */ u8 star_flag; /* 0x07 */ u8 star_total; /* 0x08 */ struct { - u8 star_pos : 3; - u8 board : 5; + u16 star_pos : 3; + u16 board : 10; //double board count }; /* 0x09 */ s8 last5_effect; /* 0x0A */ s8 player_curr; diff --git a/include/ovl_table.h b/include/ovl_table.h index 4f66a2d2..148e2295 100644 --- a/include/ovl_table.h +++ b/include/ovl_table.h @@ -96,4 +96,5 @@ OVL_DEFINE(OVL_W06, "dll/w06dll.rel") OVL_DEFINE(OVL_W10, "dll/w10dll.rel") OVL_DEFINE(OVL_W20, "dll/w20dll.rel") OVL_DEFINE(OVL_W21, "dll/w21dll.rel") -OVL_DEFINE(OVL_ZTAR, "dll/ztardll.rel") \ No newline at end of file +OVL_DEFINE(OVL_ZTAR, "dll/ztardll.rel") +OVL_DEFINE(OVL_W07, "dll/w07Dll.rel") \ No newline at end of file diff --git a/src/REL/mstory4Dll/main.c b/src/REL/mstory4Dll/main.c index 1fa909da..fd94bb3a 100644 --- a/src/REL/mstory4Dll/main.c +++ b/src/REL/mstory4Dll/main.c @@ -161,7 +161,8 @@ void fn_1_EC(void) OVL_W04, OVL_W05, OVL_W06, - OVL_W10 + OVL_W10, + OVL_W07 }; WipeColorSet(255, 255, 255); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); diff --git a/src/game/board/main.c b/src/game/board/main.c index 9aaa66a1..af788a8c 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -157,6 +157,10 @@ void BoardObjectSetup(BoardFunc create, BoardFunc destroy) case OVL_W21: GWSystem.board = BOARD_ID_EXTRA2; break; + + case OVL_W07: + GWSystem.board = BOARD_ID_CUSTOM; + break; } } From 7f1c5ba39a6deb2670098e4cb8410c8ced064259 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Thu, 1 Aug 2024 18:41:43 -0500 Subject: [PATCH 003/311] Decompile free play code --- config/GMPE01_00/rels/mgmodedll/symbols.txt | 12 +- configure.py | 2 +- include/REL/mgmodedll.h | 9 +- include/game/gamework.h | 4 +- src/REL/mgmodedll/free_play.c | 1249 +++++++++++++++++++ src/REL/mgmodedll/minigame.c | 2 +- src/game/gamework.c | 4 +- 7 files changed, 1269 insertions(+), 13 deletions(-) create mode 100644 src/REL/mgmodedll/free_play.c diff --git a/config/GMPE01_00/rels/mgmodedll/symbols.txt b/config/GMPE01_00/rels/mgmodedll/symbols.txt index 57287710..13ac0da0 100644 --- a/config/GMPE01_00/rels/mgmodedll/symbols.txt +++ b/config/GMPE01_00/rels/mgmodedll/symbols.txt @@ -475,13 +475,13 @@ lbl_1_data_90 = .data:0x00000090; // type:object size:0xA data:string lbl_1_data_9A = .data:0x0000009A; // type:object size:0x6 lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x2 data:2byte lbl_1_data_A2 = .data:0x000000A2; // type:object size:0xE -lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 data:float lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x10 -lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x6 -lbl_1_data_D6 = .data:0x000000D6; // type:object size:0xA -lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x20 +messInsertBase$836 = .data:0x000000D0; // type:object size:0x6 scope:local +customMinNum$837 = .data:0x000000D6; // type:object size:0x8 scope:local +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x20 data:float lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 -lbl_1_data_110 = .data:0x00000110; // type:object size:0x10 +lbl_1_data_110 = .data:0x00000110; // type:object size:0xC lbl_1_data_120 = .data:0x00000120; // type:object size:0x28 lbl_1_data_148 = .data:0x00000148; // type:object size:0x2 data:2byte lbl_1_data_14A = .data:0x0000014A; // type:object size:0x8 @@ -548,7 +548,7 @@ lbl_1_bss_318 = .bss:0x00000318; // type:object size:0x28 data:2byte lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x8 lbl_1_bss_348 = .bss:0x00000348; // type:object size:0x2 data:2byte lbl_1_bss_34A = .bss:0x0000034A; // type:object size:0x8 data:2byte -lbl_1_bss_352 = .bss:0x00000352; // type:object size:0x1E +lbl_1_bss_352 = .bss:0x00000352; // type:object size:0x1C lbl_1_bss_370 = .bss:0x00000370; // type:object size:0xC lbl_1_bss_37C = .bss:0x0000037C; // type:object size:0xC lbl_1_bss_388 = .bss:0x00000388; // type:object size:0x2 data:2byte diff --git a/configure.py b/configure.py index 08d6561b..dfdee55b 100644 --- a/configure.py +++ b/configure.py @@ -1332,7 +1332,7 @@ config.libs = [ objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/mgmodedll/mgmode.c"), - Object(NonMatching, "REL/mgmodedll/free_play.c"), + Object(Matching, "REL/mgmodedll/free_play.c"), Object(NonMatching, "REL/mgmodedll/record.c"), Object(NonMatching, "REL/mgmodedll/battle.c"), Object(NonMatching, "REL/mgmodedll/tictactoe.c"), diff --git a/include/REL/mgmodedll.h b/include/REL/mgmodedll.h index 31959a41..8c0f4a18 100644 --- a/include/REL/mgmodedll.h +++ b/include/REL/mgmodedll.h @@ -57,9 +57,15 @@ typedef struct struct_bss8 { extern s16 lbl_1_bss_2C80[13]; extern s16 lbl_1_bss_2C66[13]; extern s16 lbl_1_bss_2C2C[29]; +extern s16 lbl_1_bss_264C[10][70]; +extern s16 lbl_1_bss_2638[10]; extern s16 lbl_1_bss_20C0[10][70]; extern s16 lbl_1_bss_20AC[10]; +extern s16 lbl_1_bss_2A6; +extern s16 lbl_1_bss_2A4; + extern StructBss8 lbl_1_bss_8; +extern s16 lbl_1_bss_4; extern s16 lbl_1_data_A2[]; extern DataListModel lbl_1_data_490[]; @@ -80,12 +86,13 @@ s32 fn_1_2530C(s32 arg0, s32 arg1, s32 arg2); void fn_1_25838(s16 arg0, u32 arg1, s32 arg2, s32 arg3); s32 fn_1_2592C(u32 arg0, s32 arg1, s32 arg2); s32 fn_1_25CA8(u32 arg0); -void fn_1_25E74(s16 arg0); +void fn_1_25E74(s32 arg0); void fn_1_267E8(DataListModel *model_list); void fn_1_26A78(DataListSprite *sprite_list); void fn_1_26C28(void); +s32 fn_1_2783C(s16 evtno); void fn_1_279FC(s32 coinSkipF); #endif \ No newline at end of file diff --git a/include/game/gamework.h b/include/game/gamework.h index fe972f43..1f43963b 100644 --- a/include/game/gamework.h +++ b/include/game/gamework.h @@ -25,8 +25,8 @@ void GWBoardWinCountSet(s32 character, s32 board, s32 value); s32 GWMGAvailGet(s32 id); s32 GWMGAvailSet(s32 id); s32 GWMGCustomGet(s32 id); -s32 GWMGCustomSet(s32 id); -s32 GWMGCustomReset(s32 id); +void GWMGCustomSet(s32 id); +void GWMGCustomReset(s32 id); s16 GWCoinsGet(s32 player); void GWCoinsSet(s32 player, s16 value); void GWCoinsAdd(s32 player, s16 amount); diff --git a/src/REL/mgmodedll/free_play.c b/src/REL/mgmodedll/free_play.c new file mode 100644 index 00000000..7e4e5266 --- /dev/null +++ b/src/REL/mgmodedll/free_play.c @@ -0,0 +1,1249 @@ +#include "REL/mgmodedll.h" +#include "game/gamework.h" + +#include "game/gamework_data.h" +#include "game/esprite.h" +#include "game/audio.h" +#include "game/wipe.h" +#include "game/saveload.h" + +#include "ext_math.h" + +s16 lbl_1_bss_352[2][7]; +s16 lbl_1_bss_34A[4]; +s16 lbl_1_bss_348; +s16 lbl_1_bss_340[4]; +s16 lbl_1_bss_318[10][2]; +s16 lbl_1_bss_316; +s16 lbl_1_bss_30E[4]; +s16 lbl_1_bss_30C; +Vec lbl_1_bss_2F4[2]; +s16 lbl_1_bss_2F0; +s16 lbl_1_bss_2EE; +s16 lbl_1_bss_2EC; +float lbl_1_bss_2E8; +s16 lbl_1_bss_2E6; +s16 lbl_1_bss_2E4; +s16 lbl_1_bss_2E2; +static s16 pad_05_000002E0_bss; + +s16 lbl_1_data_A0 = -1; + +s16 lbl_1_data_A2[7] = { + 0, + 1, + 2, + 4, + 3, + 6, + 9 +}; + +float lbl_1_data_B0[4] = { + 370, 412, 488, 530 +}; + +s32 lbl_1_data_C0[4] = { + 0x00620037, + 0x0062003D, + 0x0062003A, + 0x00620040 +}; + +void fn_1_9E44(void); +void fn_1_9F64(s16 arg0, s16 arg1, s16 arg2); +void fn_1_A364(s16 arg0, float arg1, float arg2, s16 arg3); + +void fn_1_A624(void); +void fn_1_A6A8(void); +void fn_1_ACAC(s16 arg0, s16 arg1); +void fn_1_ADA0(s32 arg0); + +void fn_1_AE20(s16 arg0, s16 arg1, s16 arg2, s16 arg3); + +s16 fn_1_B5A8(s16 *arg0, s16 *arg1); +void fn_1_B770(void); +void fn_1_B9B8(void); +s32 fn_1_BB24(void); +void fn_1_BFA0(s16 arg0); +s32 fn_1_C0C8(s32 arg0); + +s32 fn_1_6D28(void) +{ + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s32 temp_r26; + s32 temp_r25; + s32 temp_r24; + s16 temp_r23; + s16 spC[6]; + s16 spA; + s16 sp8; + float temp_f31; + temp_r25 = 1; + fn_1_279FC(0); + fn_1_A6A8(); + fn_1_9E44(); + spA = sp8 = 0; + mgInstExitEnableF = 1; + mgTypeCurr = 0; + _SetFlag(11); + fn_1_B770(); + if(lbl_1_bss_2A6 != 2) { + temp_r28 = lbl_1_bss_2C2C[1]; + } else { + temp_r28 = lbl_1_bss_2C2C[2]; + } + if(lbl_1_bss_4 == 1 || lbl_1_bss_4 == 2) { + mgTypeCurr = fn_1_B5A8(&spA, &sp8); + espAttrReset(lbl_1_bss_2C2C[3], HUSPR_ATTR_DISPOFF); + espTPLvlSet(lbl_1_bss_2C2C[3], 1.0f); + espAttrReset(temp_r28, HUSPR_ATTR_DISPOFF); + espPosSet(temp_r28, 288, 70); + espAttrReset(lbl_1_bss_2C2C[13], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[13], 450, 216); + if(lbl_1_bss_2A6 == 0) { + espAttrReset(lbl_1_bss_2C2C[4], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[4], 450, 404); + if(lbl_1_bss_4 == 1) { + fn_1_BFA0(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8]); + espAttrReset(lbl_1_bss_2C2C[14], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[14], 450, 348); + for(temp_r30=0; temp_r30<4; temp_r30++) { + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 1, HUSPR_ATTR_DISPOFF); + HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], (temp_r30*50)+375, 348); + } + } else { + espAttrReset(lbl_1_bss_2C2C[15], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[15], 450, 348); + espAttrReset(lbl_1_bss_2C2C[16], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[16], 450, 348); + for(temp_r30=0; temp_r30<4; temp_r30++) { + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 1, HUSPR_ATTR_DISPOFF); + HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], lbl_1_data_B0[temp_r30], 348); + } + } + } else if(lbl_1_bss_2A6 == 1) { + espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[20], 450, 414); + } else if(lbl_1_bss_2A6 == 2) { + espAttrReset(lbl_1_bss_2C2C[21], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[21], 450, 400); + } + for(temp_r30=0; temp_r30= ((lbl_1_bss_316-temp_r30)-1)*10 && temp_r31 <= (((lbl_1_bss_316-temp_r30)-1)*10)+10) { + temp_f31 = (temp_r31-(((lbl_1_bss_316-temp_r30)-1)*10))/10.0; + if(0.0 == temp_f31) { + temp_r26++; + fn_1_9F64(temp_r26 & 0x1, lbl_1_bss_318[temp_r30][0], 0); + } + espAttrReset(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], 180, 800+(-530*sind(temp_f31*90.0f))); + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], (temp_r30*10)+10); + fn_1_A364(temp_r26 & 0x1, 180, 800+(-530*sind(temp_f31*90.0f)), (temp_r30*10)+8); + } + } + HuPrcVSleep(); + } + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][0], 10, 450, 216); + } + espAttrReset(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[19], 204, (sp8*38)+154); + espPriSet(lbl_1_bss_2C2C[19], 7); + espTPLvlSet(lbl_1_bss_2C2C[19], 0.7); + espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[17], 204, 126); + espPriSet(lbl_1_bss_2C2C[17], 8); + espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[18], 204, 410); + espPriSet(lbl_1_bss_2C2C[18], 8); + espBankSet(lbl_1_bss_2C2C[18], 1); + fn_1_A364(0, 180, 270, 7); + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + fn_1_A364(1, 180, 270, 100); + fn_1_ACAC(lbl_1_bss_20AC[lbl_1_bss_318[mgTypeCurr][0]], lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]); + fn_1_ADA0(1); + HuPrcSleep(10); + while(WipeStatGet()) { + HuPrcVSleep(); + } + while(1) { + HuPrcVSleep(); + if(spA != 0) { + espAttrReset(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); + } else { + espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); + } + if(spA+7 < lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]) { + espAttrReset(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); + } else { + espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); + } + temp_r27 = temp_r29 = 0; + if(HuPadDStkRep[0] & PAD_BUTTON_UP) { + temp_r29 = -1; + } else if(HuPadDStkRep[0] & PAD_BUTTON_DOWN) { + temp_r29 = 1; + } else if((HuPadDStkRep[0] & PAD_BUTTON_LEFT) || (HuPadBtnRep[0] & PAD_BUTTON_TRIGGER_L)) { + temp_r27 = -1; + } else if((HuPadDStkRep[0] & PAD_BUTTON_RIGHT) || (HuPadBtnRep[0] & PAD_BUTTON_TRIGGER_R)) { + temp_r27 = 1; + } + if(temp_r29 != 0) { + if(sp8+temp_r29 < 0 && spA != 0) { + spA--; + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8], 5, 450, 216); + for(temp_r31=0; temp_r31<=4; temp_r31++) { + espPosSet(lbl_1_bss_2C2C[17], 204, 126-(8.0*sind(temp_r31*45.0))); + if(temp_r31 == 2){ + HuAudFXPlay(772); + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + } + HuPrcVSleep(); + } + } else if(sp8+temp_r29 >= 7 && spA+7 < lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]) { + spA++; + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8], 5, 450, 216); + for(temp_r31=0; temp_r31<=4; temp_r31++) { + espPosSet(lbl_1_bss_2C2C[18], 204, 410+(8.0*sind(temp_r31*45.0))); + if(temp_r31 == 2){ + HuAudFXPlay(772); + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + } + HuPrcVSleep(); + } + } else if(sp8+temp_r29 >= 0 && (spA+sp8+temp_r29) < lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]) { + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8+temp_r29], 5, 450, 216); + for(temp_r31=0; temp_r31<=4; temp_r31++) { + espPosSet(lbl_1_bss_2C2C[19], 204, ((sp8*38)+154)+(temp_r29*(38.0*sind(22.5*temp_r31)))); + HuPrcVSleep(); + if(temp_r31 == 2){ + HuAudFXPlay(772); + } + + } + sp8 += temp_r29; + } + if(lbl_1_bss_2A4 == 0) { + fn_1_BFA0(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8]); + } + } + if(temp_r27 && lbl_1_bss_316 > 1) { + HuAudFXPlay(2172); + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + temp_r30 = mgTypeCurr; + if(mgTypeCurr+temp_r27 < 0) { + mgTypeCurr = lbl_1_bss_316-1; + } else { + if(mgTypeCurr+temp_r27 >= lbl_1_bss_316) { + mgTypeCurr = 0; + } else { + mgTypeCurr += temp_r27; + } + } + espAttrSet(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); + espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); + espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); + fn_1_ADA0(0); + for(temp_r31=0; temp_r31= 10) { + temp_r24 = 7; + } else { + temp_r24 = 20; + } + fn_1_A364(0, (300.0*sind(temp_r31*9.0))+180.0, 270, temp_r24); + HuPrcVSleep(); + } + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], 0); + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[mgTypeCurr][1]], 10); + fn_1_A364(0, 180.0, 270, 7); + espAttrReset(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[19], 204, 154); + fn_1_ACAC(lbl_1_bss_20AC[lbl_1_bss_318[mgTypeCurr][0]], lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]); + if(lbl_1_bss_318[mgTypeCurr][0] != 9) { + fn_1_ADA0(1); + } + sp8 = spA = 0; + if(lbl_1_bss_2A4 == 0) { + fn_1_BFA0(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8]); + } + } + if((HuPadBtnDown[0] & PAD_BUTTON_A) && lbl_1_bss_2A6 == 2) { + temp_r31 = lbl_1_bss_318[mgTypeCurr][0]; + if(!GWMGAvailGet(lbl_1_bss_264C[temp_r31][spA+sp8]+401)) { + HuAudFXPlay(4); + continue; + } else { + if(lbl_1_bss_318[mgTypeCurr][0] != 9) { + HuAudFXPlay(2); + temp_r31 = lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8]+401; + if(!GWMGCustomGet(temp_r31)) { + GWMGCustomSet(temp_r31); + } else { + GWMGCustomReset(temp_r31); + } + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8], 0, 450, 216); + fn_1_B9B8(); + } else { + if(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8] >= 0) { + HuAudFXPlay(2); + temp_r31 = lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8]+401; + GWMGCustomReset(temp_r31); + fn_1_B9B8(); + if(lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]] <= spA+sp8) { + if(--sp8 < 0) { + sp8 = 0; + spA--; + } + espPosSet(lbl_1_bss_2C2C[19], 204, (sp8*38)+154); + } + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8], 0, 450, 216); + } + } + } + } + if(HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + if(lbl_1_bss_2A6 == 2 && !fn_1_BB24()) { + continue; + } + temp_r25 = 0; + break; + } + if(!(HuPadBtnDown[0] & PAD_BUTTON_A)) { + continue; + } + if(lbl_1_bss_2A6) { + continue; + } + temp_r31 = lbl_1_bss_318[mgTypeCurr][0]; + if(!GWMGAvailGet(lbl_1_bss_264C[temp_r31][spA+sp8]+401)) { + HuAudFXPlay(4); + continue; + } + HuAudFXPlay(773); + GWSystem.mg_next = lbl_1_bss_264C[temp_r31][spA+sp8]; + if(lbl_1_bss_2A4 == 0) { + GWPlayerCfg[0].group = 0; + GWPlayerCfg[1].group = 1; + GWPlayerCfg[2].group = 2; + GWPlayerCfg[3].group = 3; + if((temp_r31 == 1 || temp_r31 == 2) && !fn_1_C0C8(0)) { + continue; + } + fn_1_2783C(1); + } else if(lbl_1_bss_2A4 == 1) { + fn_1_2783C(2); + } + while(1) { + HuPrcVSleep(); + } + } + espAttrSet(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); + espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); + espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); + if(lbl_1_bss_2A6 == 2) { + for(temp_r31=0; temp_r31<7; temp_r31++) { + HuSprAttrSet(lbl_1_bss_2E2, temp_r31, HUSPR_ATTR_DISPOFF); + } + } + + fn_1_ADA0(0); + fn_1_AE20(-1, 5, 450, 216); + + for(temp_r31=0; temp_r31<=20; temp_r31++) { + if(temp_r31 <= 20) { + temp_f31 = temp_r31/20.0; + espAttrReset(temp_r28, HUSPR_ATTR_DISPOFF); + espPosSet(temp_r28, 288, -100.0+(170*cosd(temp_f31*90.0f))); + } + if(temp_r31 <= 10) { + temp_f31 = temp_r31/10.0; + espAttrReset(lbl_1_bss_2C2C[13], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[13], (-350*cosd(temp_f31*90.0f))+800, 216); + if(lbl_1_bss_2A6 == 0) { + espPosSet(lbl_1_bss_2C2C[4], (-350*cosd(temp_f31*90.0f))+800, 404); + if(lbl_1_bss_2A4 != 1) { + espPosSet(lbl_1_bss_2C2C[14], (-350*cosd(temp_f31*90.0f))+800, 348); + for(temp_r30=0; temp_r30<4; temp_r30++) { + + HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], (temp_r30*50)+(((-350*cosd(temp_f31*90.0f))+800)-75), 348); + } + } else { + espPosSet(lbl_1_bss_2C2C[15], (-350*cosd(temp_f31*90.0f))+800, 348); + espPosSet(lbl_1_bss_2C2C[16], (-350*cosd(temp_f31*90.0f))+800, 348); + for(temp_r30=0; temp_r30<4; temp_r30++) { + HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], (800*(1-cosd(temp_f31*90.0f)))+lbl_1_data_B0[temp_r30], 348); + } + } + } else { + if(lbl_1_bss_2A6 == 1) { + espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[20], (-350*cosd(temp_f31*90.0f))+800, 414); + } else if(lbl_1_bss_2A6 == 2) { + espAttrReset(lbl_1_bss_2C2C[21], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[21], (-350*cosd(temp_f31*90.0f))+800, 400); + } + } + } + temp_f31 = temp_r31/20.0; + for(temp_r30=0; temp_r30spacing_x = 0; + HuWinBGTPLvlSet(window, 0); + HuWinMesSpeedSet(window, 0); + HuWinDispOff(window); + (void)i; + } + } +} + +void fn_1_9F64(s16 arg0, s16 arg1, s16 arg2) +{ + s16 i; + s16 no; + s16 window; + if(lbl_1_bss_2A6 == 2 && lbl_1_bss_30C == arg0) { + for(i=0; i<4; i++) { + HuSprAttrSet(lbl_1_bss_2E2, i+14, HUSPR_ATTR_DISPOFF); + } + } + if(arg1 == 9) { + for(i=0; i<7; i++) { + HuSprAttrSet(lbl_1_bss_2E2, i+(arg0*7), HUSPR_ATTR_DISPOFF); + window = lbl_1_bss_352[arg0][i]; + if(i+arg2 >= lbl_1_bss_2638[9]) { + HuWinDispOff(window); + } else { + no = lbl_1_bss_264C[9][i+arg2]; + if(no < 0) { + lbl_1_bss_30C = arg0; + no = -no-1; + lbl_1_bss_30E[no] = i; + HuSprAttrReset(lbl_1_bss_2E2, no+14, HUSPR_ATTR_DISPOFF); + HuSprPosSet(lbl_1_bss_2E2, no+14, 24+lbl_1_bss_2F4[arg0].x, (lbl_1_bss_2F4[arg0].y+(i*38))-116); + HuWinDispOff(window); + } else { + HuWinMesSet(window, mgInfoTbl[no].name_mess); + HuWinDispOn(window); + } + } + } + } else { + for(i=0; i<7; i++) { + window = lbl_1_bss_352[arg0][i]; + if(i+arg2 >= lbl_1_bss_2638[arg1]) { + HuWinDispOff(window); + if(lbl_1_bss_2A6 == 2) { + HuSprAttrSet(lbl_1_bss_2E2, i+(arg0*7), HUSPR_ATTR_DISPOFF); + } + } else { + no = lbl_1_bss_264C[arg1][i+arg2]; + if(GWMGAvailGet(no+401)) { + HuWinMesSet(window, mgInfoTbl[no].name_mess); + } else { + HuWinMesSet(window, 0x230000); + } + HuWinDispOn(window); + if(lbl_1_bss_2A6 == 2) { + if(GWMGCustomGet(no+401)) { + HuSprAttrReset(lbl_1_bss_2E2, i+(arg0*7), HUSPR_ATTR_DISPOFF); + } else { + HuSprAttrSet(lbl_1_bss_2E2, i+(arg0*7), HUSPR_ATTR_DISPOFF); + } + } + } + } + } +} + +void fn_1_A364(s16 arg0, float arg1, float arg2, s16 arg3) +{ + s16 i; + lbl_1_bss_2F4[arg0].x = arg1; + lbl_1_bss_2F4[arg0].y = arg2; + for(i=0; i<7; i++) { + s16 window = lbl_1_bss_352[arg0][i]; + HuWinPosSet(window, arg1-105, (arg2-136)+(i*38)); + HuWinPriSet(window, arg3); + if(lbl_1_bss_2A6 == 2) { + HuSprPosSet(lbl_1_bss_2E2, i+(arg0*7), arg1+24, arg2+(i*38)-116); + HuSprPriSet(lbl_1_bss_2E2, i+(arg0*7), arg3); + } + } + if(lbl_1_bss_2A6 == 2 && lbl_1_bss_30C == arg0) { + for(i=0; i<4; i++) { + HuSprPosSet(lbl_1_bss_2E2, i+14, arg1+24, arg2+(lbl_1_bss_30E[i]*38)-116); + HuSprPriSet(lbl_1_bss_2E2, i+14, arg3+1); + } + } + +} + +void fn_1_A624(void) +{ + s16 j; + s16 i; + + for(i=0; i<2; i++) { + for(j=0; j<7; j++) { + HuWinKill(lbl_1_bss_352[i][j]); + } + } +} + +void fn_1_A6A8(void) +{ + s16 spA[2]; + s16 i; + AnimData *anim; + s16 sprite; + s16 group; + s16 player; + s16 bank; + s16 iscom; + if(lbl_1_bss_2A4 == 1) { + spA[0] = 0; + spA[1] = 2; + for(i=0; i<4; i++) { + if(GWPlayerCfg[i].group >= 2) { + lbl_1_bss_340[i] = 0; + } else { + lbl_1_bss_340[spA[GWPlayerCfg[i].group]] = i; + spA[GWPlayerCfg[i].group]++; + } + } + } else { + for(i=0; i<4; i++) { + lbl_1_bss_340[i] = i; + } + } + for(i=0; i<4; i++) { + if(lbl_1_bss_34A[i]) { + HuSprGrpKill(lbl_1_bss_34A[i]); + } + player = lbl_1_bss_340[i]; + group = HuSprGrpCreate(2); + lbl_1_bss_34A[i] = group; + anim = HuSprAnimRead(HuDataReadNum(0x620010+GWPlayerCfg[player].character, MEMORY_DEFAULT_NUM)); + sprite = HuSprCreate(anim, 200, 0); + HuSprGrpMemberSet(group, 0, sprite); + if(iscom = GWPlayerCfg[player].iscom) { + anim = HuSprAnimRead(HuDataReadNum(0x620027, MEMORY_DEFAULT_NUM)); + bank = GWPlayerCfg[player].diff; + } else { + anim = HuSprAnimRead(HuDataReadNum(0x620026, MEMORY_DEFAULT_NUM)); + bank = lbl_1_bss_340[i]; + } + sprite = HuSprCreate(anim, 200, bank); + HuSprGrpMemberSet(group, 1, sprite); + HuSprPosSet(group, 1, 0, 20); + HuSprAttrSet(lbl_1_bss_34A[i], 0, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(lbl_1_bss_34A[i], 1, HUSPR_ATTR_DISPOFF); + } + if(lbl_1_bss_2E6) { + HuSprGrpKill(lbl_1_bss_2E6); + } + group = HuSprGrpCreate(5); + lbl_1_bss_2E6 = group; + anim = HuSprAnimRead(HuDataReadNum(0x62002D, MEMORY_DEFAULT_NUM)); + for(i=0; i<5; i++) { + sprite = HuSprCreate(anim, 5, 0); + HuSprGrpMemberSet(group, i, sprite); + HuSprPosSet(group, i, (i*16)-32, 0); + } + HuSprBankSet(group, 2, 10); + HuSprGrpPosSet(group, 284, 410); + fn_1_ADA0(0); + if(lbl_1_bss_2A6 == 2 && lbl_1_bss_2E2 == 0) { + anim = HuSprAnimRead(HuDataReadNum(0x62002B, MEMORY_DEFAULT_NUM)); + lbl_1_bss_2E2 = HuSprGrpCreate(18); + for(i=0; i<14; i++) { + sprite = HuSprCreate(anim, 8, 0); + HuSprGrpMemberSet(lbl_1_bss_2E2, i, sprite); + HuSprColorSet(lbl_1_bss_2E2, i, 255, 0, 0); + HuSprAttrSet(lbl_1_bss_2E2, i, HUSPR_ATTR_ADDCOL|HUSPR_ATTR_DISPOFF); + HuSprTPLvlSet(lbl_1_bss_2E2, i, 0.8f); + } + for(i=0; i<4; i++) { + anim = HuSprAnimRead(HuDataReadNum(lbl_1_data_C0[i], MEMORY_DEFAULT_NUM)); + sprite = HuSprCreate(anim, 8, 0); + HuSprGrpMemberSet(lbl_1_bss_2E2, i+14, sprite); + HuSprAttrSet(lbl_1_bss_2E2, i+14, HUSPR_ATTR_DISPOFF); + } + HuSprGrpPosSet(lbl_1_bss_2E2, 0, 0); + } + lbl_1_data_A0 = -1; + (void)sprite; + +} + +void fn_1_ACAC(s16 arg0, s16 arg1) +{ + s16 digit; + digit = arg0/10; + HuSprBankSet(lbl_1_bss_2E6, 0, digit); + arg0 -= digit*10; + HuSprBankSet(lbl_1_bss_2E6, 1, arg0); + digit = arg1/10; + HuSprBankSet(lbl_1_bss_2E6, 3, digit); + arg1 -= digit*10; + HuSprBankSet(lbl_1_bss_2E6, 4, arg1); +} + +void fn_1_ADA0(s32 arg0) +{ + s16 i; + for(i=0; i<5; i++) { + if(arg0) { + HuSprAttrReset(lbl_1_bss_2E6, i, HUSPR_ATTR_DISPOFF); + } else { + HuSprAttrSet(lbl_1_bss_2E6, i, HUSPR_ATTR_DISPOFF); + } + } +} + +void fn_1_AED0(void); + +void fn_1_AE20(s16 arg0, s16 arg1, s16 arg2, s16 arg3) +{ + lbl_1_bss_2F0 = arg0; + lbl_1_bss_2E8 = arg1; + lbl_1_bss_2EE = arg2; + lbl_1_bss_2EC = arg3; + HuPrcChildCreate(fn_1_AED0, 100, 12288, 0, HuPrcCurrentGet()); +} + +void fn_1_AED0(void) +{ + s16 temp_r31; + s16 temp_r30; + AnimData *temp_r29; + s16 temp_r28; + s16 temp_r27; + s32 temp_r26; + temp_r27 = lbl_1_data_A0; + if(lbl_1_bss_2F0 < 0) { + for(temp_r30=1; temp_r30<=lbl_1_bss_2E8; temp_r30++) { + HuSprGrpTPLvlSet(temp_r27, 1.0-(temp_r30/lbl_1_bss_2E8)); + HuPrcVSleep(); + } + if(temp_r27 != -1) { + HuSprGrpKill(temp_r27); + } + lbl_1_data_A0 = -1; + HuPrcEnd(); + while(1) { + HuPrcVSleep(); + } + } + lbl_1_data_A0 = HuSprGrpCreate(4); + temp_r26 = mgInfoTbl[lbl_1_bss_2F0].mg_pic[0]; + if(GWMGAvailGet(lbl_1_bss_2F0+401)) { + temp_r29 = HuSprAnimRead(HuDataReadNumHeapShortForce(temp_r26, MEMORY_DEFAULT_NUM, HEAP_DATA)); + } else { + temp_r29 = HuSprAnimReadFile(0x62002C); + } + temp_r28 = HuSprCreate(temp_r29, 200, 0); + HuSprGrpMemberSet(lbl_1_data_A0, 0, temp_r28); + HuSprGrpPosSet(lbl_1_data_A0, lbl_1_bss_2EE, lbl_1_bss_2EC); + HuSprGrpScaleSet(lbl_1_data_A0, 0.6f, 0.6f); + temp_r31 = 0; + if(mgInfoTbl[lbl_1_bss_2F0].flag & 0x1) { + temp_r29 = HuSprAnimReadFile(0x620024); + temp_r28 = HuSprCreate(temp_r29, 190, 0); + HuSprGrpMemberSet(lbl_1_data_A0, temp_r31+1, temp_r28); + HuSprPosSet(lbl_1_data_A0, temp_r31+1, (355.0/3.0)-((temp_r31*50)*(100.0/60.0)), (355.0f/3.0f)); + HuSprScaleSet(lbl_1_data_A0, temp_r31+1, 100.0f/60.0f, 100.0f/60.0f); + temp_r31++; + } + if(mgInfoTbl[lbl_1_bss_2F0].flag & 0x2) { + temp_r29 = HuSprAnimReadFile(0x620023); + temp_r28 = HuSprCreate(temp_r29, 190, 0); + HuSprGrpMemberSet(lbl_1_data_A0, temp_r31+1, temp_r28); + HuSprPosSet(lbl_1_data_A0, temp_r31+1, (355.0/3.0)-((temp_r31*50)*(100.0/60.0)), (355.0f/3.0f)); + HuSprScaleSet(lbl_1_data_A0, temp_r31+1, 100.0f/60.0f, 100.0f/60.0f); + temp_r31++; + } + if(GWMGCustomGet(lbl_1_bss_2F0+401)) { + temp_r29 = HuSprAnimReadFile(0x620022); + temp_r28 = HuSprCreate(temp_r29, 190, 0); + HuSprGrpMemberSet(lbl_1_data_A0, temp_r31+1, temp_r28); + HuSprPosSet(lbl_1_data_A0, temp_r31+1, (355.0/3.0)-((temp_r31*50)*(100.0/60.0)), (355.0f/3.0f)); + HuSprScaleSet(lbl_1_data_A0, temp_r31+1, 100.0f/60.0f, 100.0f/60.0f); + temp_r31++; + } + for(temp_r30=1; temp_r30<=lbl_1_bss_2E8; temp_r30++) { + if(temp_r27 != -1) { + HuSprGrpTPLvlSet(temp_r27, 1.0-(temp_r30/lbl_1_bss_2E8)); + } + HuSprGrpTPLvlSet(lbl_1_data_A0, temp_r30/lbl_1_bss_2E8); + HuPrcVSleep(); + } + if(temp_r27 != -1) { + HuSprGrpKill(temp_r27); + } + lbl_1_bss_348 = lbl_1_bss_2F0; + HuPrcEnd(); + while(1) { + HuPrcVSleep(); + } +} + +s16 fn_1_B5A8(s16 *arg0, s16 *arg1) +{ + s16 mgNo = GWSystem.mg_next; + s16 mgType = mgInfoTbl[mgNo].type; + s16 ret; + s16 i; + for(i=ret=0; i= 7 && i+7 >= lbl_1_bss_2638[mgType]) { + i = lbl_1_bss_2638[mgType]-7; + } + *arg0 = i; + if(lbl_1_bss_2638[mgType] < 7) { + *arg0 = 0; + } + *arg1 = *arg1-*arg0; + return ret; +} + +void fn_1_B770(void) +{ + if(lbl_1_bss_2A6 == 2) { + lbl_1_bss_316 = 5; + lbl_1_bss_318[0][0] = 0; + lbl_1_bss_318[0][1] = 5; + lbl_1_bss_318[1][0] = 1; + lbl_1_bss_318[1][1] = 6; + lbl_1_bss_318[2][0] = 2; + lbl_1_bss_318[2][1] = 7; + lbl_1_bss_318[3][0] = 4; + lbl_1_bss_318[3][1] = 8; + lbl_1_bss_318[4][0] = 9; + lbl_1_bss_318[4][1] = 11; + fn_1_B9B8(); + } else if(lbl_1_bss_2A4 == 0 || lbl_1_bss_2A6 == 1) { + lbl_1_bss_316 = 7; + lbl_1_bss_318[0][0] = 0; + lbl_1_bss_318[0][1] = 5; + lbl_1_bss_318[1][0] = 1; + lbl_1_bss_318[1][1] = 6; + lbl_1_bss_318[2][0] = 2; + lbl_1_bss_318[2][1] = 7; + lbl_1_bss_318[3][0] = 4; + lbl_1_bss_318[3][1] = 8; + lbl_1_bss_318[4][0] = 3; + lbl_1_bss_318[4][1] = 9; + lbl_1_bss_318[5][0] = 6; + lbl_1_bss_318[5][1] = 10; + lbl_1_bss_318[6][0] = 8; + lbl_1_bss_318[6][1] = 12; + } else if(lbl_1_bss_2A4 == 1) { + lbl_1_bss_316 = 1; + lbl_1_bss_318[0][0] = 2; + lbl_1_bss_318[0][1] = 7; + } +} + +void fn_1_B9B8(void) +{ + s16 customNum; + s16 i; + for(i=customNum=0; i<4; i++) { + s16 j; + lbl_1_bss_264C[9][customNum++] = -i-1; + for(j=0; j= 4 && customNum[1] >= 3 && customNum[2] >= 3 && customNum[3] >= 2) { + HuWinMesMaxSizeGet(1, winSize, 0x280030); + window = HuWinExCreateStyled(-10000, -10000, winSize[0], winSize[1], -1, 1); + windowP = &winData[window]; + windowP->active_pad = 1; + HuWinMesPalSet(window, 7, 0, 0, 0); + HuWinPriSet(window, 3); + HuWinExAnimIn(window); + HuWinMesSet(window, 0x280030); + HuWinMesWait(window); + HuWinExAnimOut(window); + HuWinExCleanup(window); + return 1; + } else { + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 0); + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 1); + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 2); + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 3); + HuWinMesMaxSizeGet(3, winSize, 0x28002B, 0x28002C, 0x28002D); + window = HuWinExCreateStyled(-10000, -10000, winSize[0], winSize[1], -1, 1); + windowP = &winData[window]; + windowP->active_pad = 1; + HuWinMesPalSet(window, 7, 0, 0, 0); + HuWinPriSet(window, 3); + HuWinExAnimIn(window); + for(j=0; j<4; j++) { + strcpy(&messInsert[j][0], messInsertBase); + } + for(j=0; j<4; j++) { + if(customNum[j] >= customMinNum[j]) { + messInsert[j][1] = 5; + } else { + messInsert[j][2] = (customMinNum[j]+'0'-customNum[j]); + } + HuWinInsertMesSet(window, MAKE_MESSID_PTR(&messInsert[j][0]), (s16)j); + } + HuWinMesSet(window, 0x28002C); + HuWinMesWait(window); + HuWinMesSet(window, 0x28002B); + HuWinMesWait(window); + HuWinMesSet(window, 0x28002D); + HuWinMesWait(window); + choice = HuWinChoiceGet(window, 0); + HuWinExAnimOut(window); + HuWinExCleanup(window); + if(choice == 0) { + return 0; + } else { + return 1; + } + } +} + +void fn_1_BFA0(s16 arg0) +{ + s16 i; + for(i=0; i<4; i++) { + HuSprGrpTPLvlSet(lbl_1_bss_34A[i], 1.0f); + } + if(mgInfoTbl[arg0].ovl == OVL_M450) { + HuSprGrpTPLvlSet(lbl_1_bss_34A[1], 0.0f); + } + if(mgInfoTbl[arg0].type == 6 || mgInfoTbl[arg0].type == 8) { + HuSprGrpTPLvlSet(lbl_1_bss_34A[2], 0.0f); + HuSprGrpTPLvlSet(lbl_1_bss_34A[3], 0.0f); + return; + } +} + +float lbl_1_data_E0[2][4] = { + -132, -12, 60, 132, + -132, -60, 60, 132 +}; + +u8 lbl_1_data_100[16] = { + 0, 1, 2, 3, + 1, 0, 2, 3, + 2, 0, 1, 3, + 3, 0, 1, 2 +}; + +u8 lbl_1_data_110[12] = { + 0, 1, 2, 3, + 0, 2, 1, 3, + 0, 3, 1, 2, +}; + +s32 fn_1_C0C8(s32 arg0) +{ + s16 temp_r31; + s16 temp_r30; + float *temp_r29; + s16 temp_r28; + AnimData *temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + s16 temp_r23; + WindowData *temp_r22; + AnimData *temp_r21; + + float temp_f31; + float temp_f30; + float temp_f29; + if(mgTypeCurr == 1) { + temp_r29 = &lbl_1_data_E0[0][0]; + temp_f29 = 216; + } else { + temp_r29 = &lbl_1_data_E0[1][0]; + temp_f29 = 288; + } + temp_r28 = HuSprGrpCreate(16); + for(temp_r31=0; temp_r31<4; temp_r31++) { + temp_r27 = HuSprAnimReadFile(lbl_1_bss_8.unk24[temp_r31].unk68+0x620067); + temp_r26 = HuSprCreate(temp_r27, 4, 0); + HuSprGrpMemberSet(temp_r28, 4*temp_r31, temp_r26); + HuSprPosSet(temp_r28, 4*temp_r31, temp_r29[temp_r31], 0); + if(mgTypeCurr == 1) { + if(temp_r31 == 0) { + temp_r27 = HuSprAnimReadFile(0x620075); + } else { + temp_r27 = HuSprAnimReadFile(0x620076); + } + } else { + if(temp_r31 < 2) { + temp_r27 = HuSprAnimReadFile(0x620075); + } else { + temp_r27 = HuSprAnimReadFile(0x620076); + } + } + temp_r26 = HuSprCreate(temp_r27, 3, 0); + HuSprGrpMemberSet(temp_r28, (4*temp_r31)+1, temp_r26); + HuSprPosSet(temp_r28, (4*temp_r31)+1, temp_r29[temp_r31], 0); + if(GWPlayerCfg[temp_r31].iscom) { + temp_r27 = HuSprAnimReadFile(0x620074); + } else { + temp_r27 = HuSprAnimReadFile(0x620070+GWPlayerCfg[temp_r31].pad_idx); + } + temp_r26 = HuSprCreate(temp_r27, 2, 1); + HuSprGrpMemberSet(temp_r28, (4*temp_r31)+2, temp_r26); + HuSprPosSet(temp_r28, (4*temp_r31)+2, temp_r29[temp_r31], 0); + temp_r27 = HuSprAnimReadFile(0x62007B); + temp_r26 = HuSprCreate(temp_r27, 2, GWPlayerCfg[temp_r31].diff); + HuSprGrpMemberSet(temp_r28, (4*temp_r31)+3, temp_r26); + HuSprPosSet(temp_r28, (4*temp_r31)+3, temp_r29[temp_r31], 38); + if(!GWPlayerCfg[temp_r31].iscom) { + HuSprAttrSet(temp_r28, (4*temp_r31)+3, HUSPR_ATTR_DISPOFF); + } + } + temp_r25 = HuSprGrpCreate(8); + temp_r27 = HuSprAnimRead(HuDataReadNum(0x620065, MEMORY_DEFAULT_NUM)); + temp_r21 = HuSprAnimRead(HuDataReadNum(0x620066, MEMORY_DEFAULT_NUM)); + for(temp_r31=0; temp_r31<4; temp_r31++) { + temp_r26 = HuSprCreate(temp_r27, 3, temp_r31); + HuSprGrpMemberSet(temp_r25, (temp_r31*2), temp_r26); + HuSprPosSet(temp_r25, (temp_r31*2), ((temp_r31%2)*380)-190, ((temp_r31/2)*156)-68); + temp_r26 = HuSprCreate(temp_r21, 4, temp_r31); + HuSprGrpMemberSet(temp_r25, (temp_r31*2)+1, temp_r26); + HuSprTPLvlSet(temp_r25, (temp_r31*2)+1, 0.5f); + HuSprPosSet(temp_r25, (temp_r31*2)+1, ((temp_r31%2)*380)-190, ((temp_r31/2)*156)-60); + } + espTPLvlSet(lbl_1_bss_2C2C[22], 0.9f); + espAttrReset(lbl_1_bss_2C2C[22], HUSPR_ATTR_DISPOFF); + espAttrReset(lbl_1_bss_2C2C[24], HUSPR_ATTR_DISPOFF); + espAttrReset(lbl_1_bss_2C2C[23], HUSPR_ATTR_DISPOFF); + espAttrReset(lbl_1_bss_2C2C[25], HUSPR_ATTR_DISPOFF); + espAttrReset(lbl_1_bss_2C2C[26], HUSPR_ATTR_DISPOFF); + espBankSet(lbl_1_bss_2C2C[25], 1); + espPosSet(lbl_1_bss_2C2C[22], 288, 240); + for(temp_r31=0; temp_r31<=30; temp_r31++) { + if(temp_r31 <= 20) { + temp_f30 = temp_r31/20.0; + temp_f31 = -300+(560*sind(temp_f30*90.0f)); + espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); + espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31-50); + espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31+20); + espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31+20); + espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31+20); + HuSprGrpPosSet(temp_r28, 288, temp_f31+20); + HuSprGrpPosSet(temp_r25, 288, temp_f31); + } else { + temp_f30 = (temp_r31-20)/10.0; + temp_f31 = 240+(20*cosd(temp_f30*90.0f)); + espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); + espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31-50); + espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31+20); + espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31+20); + espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31+20); + HuSprGrpPosSet(temp_r28, 288, temp_f31+20); + HuSprGrpPosSet(temp_r25, 288, temp_f31); + } + HuPrcVSleep(); + } + temp_r24 = fn_1_25CA8(0x1A0020); + temp_r22 = &winData[temp_r24]; + HuWinPriSet(temp_r24, 5); + HuWinPosSet(temp_r24, (576.0f-temp_r22->w)/2.0f, 310.0f); + temp_r30 = 0; + temp_r23 = 0; + while(1) { + s16 spC; + HuPrcVSleep(); + if(HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + goto loop_end; + } + spC = 0; + if(HuPadDStkRep[0] & PAD_BUTTON_LEFT) { + HuAudFXPlay(772); + for(temp_r31=0; temp_r31<=5; temp_r31++) { + temp_f30 = temp_r31/5.0; + espPosSet(lbl_1_bss_2C2C[26], 108-(10*sind(temp_f30*90.0f)), 20+temp_f31); + HuPrcVSleep(); + } + temp_r30--; + if(mgTypeCurr == 1) { + if(temp_r30 < 0) { + temp_r30 = 3; + } + if(temp_r30 >= 4) { + temp_r30 = 0; + } + for(temp_r31=0; temp_r31<4; temp_r31++) { + HuSprPosSet(temp_r28, lbl_1_data_100[(temp_r30*4)+temp_r31]*4, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30*4)+temp_r31]*4)+2, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30*4)+temp_r31]*4)+3, temp_r29[temp_r31], 38); + } + } else { + if(temp_r30 < 0) { + temp_r30 = 2; + } + if(temp_r30 >= 3) { + temp_r30 = 0; + } + for(temp_r31=0; temp_r31<4; temp_r31++) { + HuSprPosSet(temp_r28, lbl_1_data_110[(temp_r30*4)+temp_r31]*4, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30*4)+temp_r31]*4)+2, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30*4)+temp_r31]*4)+3, temp_r29[temp_r31], 38); + } + } + for(temp_r31=0; temp_r31<=5; temp_r31++) { + temp_f30 = temp_r31/5.0; + espPosSet(lbl_1_bss_2C2C[26], 108-(10*cosd(temp_f30*90.0f)), 20+temp_f31); + HuPrcVSleep(); + } + } else if(HuPadDStkRep[0] & PAD_BUTTON_RIGHT) { + HuAudFXPlay(772); + for(temp_r31=0; temp_r31<=5; temp_r31++) { + temp_f30 = temp_r31/5.0; + espPosSet(lbl_1_bss_2C2C[25], 468+(10*sind(temp_f30*90.0f)), 20+temp_f31); + HuPrcVSleep(); + } + temp_r30++; + if(mgTypeCurr == 1) { + if(temp_r30 < 0) { + temp_r30 = 3; + } + if(temp_r30 >= 4) { + temp_r30 = 0; + } + for(temp_r31=0; temp_r31<4; temp_r31++) { + HuSprPosSet(temp_r28, lbl_1_data_100[(temp_r30*4)+temp_r31]*4, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30*4)+temp_r31]*4)+2, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30*4)+temp_r31]*4)+3, temp_r29[temp_r31], 38); + } + } else { + if(temp_r30 < 0) { + temp_r30 = 2; + } + if(temp_r30 >= 3) { + temp_r30 = 0; + } + for(temp_r31=0; temp_r31<4; temp_r31++) { + HuSprPosSet(temp_r28, lbl_1_data_110[(temp_r30*4)+temp_r31]*4, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30*4)+temp_r31]*4)+2, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30*4)+temp_r31]*4)+3, temp_r29[temp_r31], 38); + } + } + for(temp_r31=0; temp_r31<=5; temp_r31++) { + temp_f30 = temp_r31/5.0; + espPosSet(lbl_1_bss_2C2C[25], 468+(10*cosd(temp_f30*90.0f)), 20+temp_f31); + HuPrcVSleep(); + } + } + if(HuPadBtnDown[0] & (PAD_BUTTON_A|PAD_BUTTON_START)) { + break; + } + } + HuAudFXPlay(773); + if(mgTypeCurr == 1) { + GWPlayerCfg[lbl_1_data_100[temp_r30*4]].group = 0; + for(temp_r31=1; temp_r31<4; temp_r31++) { + GWPlayerCfg[lbl_1_data_100[(temp_r30*4)+temp_r31]].group = 1; + } + } else { + for(temp_r31=0; temp_r31<2; temp_r31++) { + GWPlayerCfg[lbl_1_data_110[(temp_r30*4)+temp_r31]].group = 0; + } + for(temp_r31=2; temp_r31<4; temp_r31++) { + GWPlayerCfg[lbl_1_data_110[(temp_r30*4)+temp_r31]].group = 1; + } + } + if(arg0 != 0) { + temp_r23 = 1; + } else { + return 1; + } + loop_end: + fn_1_25E74(temp_r24); + for(temp_r31=0; temp_r31<=30; temp_r31++) { + if(temp_r31 <= 10) { + temp_f30 = temp_r31/10.0; + temp_f31 = 240+(20*sind(temp_f30*90.0f)); + espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); + espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31-50); + espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31+20); + espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31+20); + espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31+20); + HuSprGrpPosSet(temp_r28, 288, temp_f31+20); + HuSprGrpPosSet(temp_r25, 288, temp_f31); + } else { + temp_f30 = (temp_r31-10)/20.0; + temp_f31 = -300+(560*cosd(temp_f30*90.0f)); + espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); + espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31-50); + espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31+20); + espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31+20); + espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31+20); + HuSprGrpPosSet(temp_r28, 288, temp_f31+20); + HuSprGrpPosSet(temp_r25, 288, temp_f31); + } + HuPrcVSleep(); + } + HuSprGrpKill(temp_r28); + HuSprGrpKill(temp_r25); + return temp_r23; +} \ No newline at end of file diff --git a/src/REL/mgmodedll/minigame.c b/src/REL/mgmodedll/minigame.c index b11c24a8..fee4e1a9 100644 --- a/src/REL/mgmodedll/minigame.c +++ b/src/REL/mgmodedll/minigame.c @@ -201,7 +201,7 @@ void fn_1_27418(void) } } -void fn_1_2783C(s16 evtno) +s32 fn_1_2783C(s16 evtno) { s16 i; omOvlHisData *his; diff --git a/src/game/gamework.c b/src/game/gamework.c index 60ef959b..c7384f01 100644 --- a/src/game/gamework.c +++ b/src/game/gamework.c @@ -275,7 +275,7 @@ s32 GWMGCustomGet(s32 id) } } -s32 GWMGCustomSet(s32 id) +void GWMGCustomSet(s32 id) { s32 word; s32 bit; @@ -285,7 +285,7 @@ s32 GWMGCustomSet(s32 id) GWGameStat.mg_custom[word] |= (1 << bit); } -s32 GWMGCustomReset(s32 id) +void GWMGCustomReset(s32 id) { s32 word; s32 bit; From 25910aa5bad9169bae91047e6befb08d36c3a36e Mon Sep 17 00:00:00 2001 From: CreateSource Date: Fri, 2 Aug 2024 11:44:41 -0400 Subject: [PATCH 004/311] match most of m412 --- config/GMPE01_00/rels/m412Dll/symbols.txt | 236 +++--- include/REL/m412Dll.h | 22 +- src/REL/m412Dll/main.c | 933 +++++++++++++++++++++- 3 files changed, 1057 insertions(+), 134 deletions(-) diff --git a/config/GMPE01_00/rels/m412Dll/symbols.txt b/config/GMPE01_00/rels/m412Dll/symbols.txt index be43ffa3..f6b625d3 100644 --- a/config/GMPE01_00/rels/m412Dll/symbols.txt +++ b/config/GMPE01_00/rels/m412Dll/symbols.txt @@ -38,133 +38,133 @@ fn_1_B160 = .text:0x0000B160; // type:function size:0x60 fn_1_B1C0 = .text:0x0000B1C0; // type:function size:0x4A0 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 lbl_1_data_20 = .data:0x00000020; // type:object size:0x20 lbl_1_data_40 = .data:0x00000040; // type:object size:0x20 lbl_1_data_60 = .data:0x00000060; // type:object size:0x18 lbl_1_data_78 = .data:0x00000078; // type:object size:0x54 data:float -lbl_1_data_CC = .data:0x000000CC; // type:object size:0x14 data:string -lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x14 data:string -lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x14 data:string -lbl_1_data_108 = .data:0x00000108; // type:object size:0x14 data:string -lbl_1_data_11C = .data:0x0000011C; // type:object size:0x14 data:string -lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 data:string -lbl_1_data_144 = .data:0x00000144; // type:object size:0x14 data:string -lbl_1_data_158 = .data:0x00000158; // type:object size:0x14 data:string -lbl_1_data_16C = .data:0x0000016C; // type:object size:0x14 data:string -lbl_1_data_180 = .data:0x00000180; // type:object size:0x14 data:string -lbl_1_data_194 = .data:0x00000194; // type:object size:0x14 data:string -lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x14 data:string -lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x14 data:string -lbl_1_data_1D0 = .data:0x000001D0; // type:object size:0x14 data:string -lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x14 data:string -lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x14 data:string -lbl_1_data_20C = .data:0x0000020C; // type:object size:0x14 data:string -lbl_1_data_220 = .data:0x00000220; // type:object size:0x14 data:string -lbl_1_data_234 = .data:0x00000234; // type:object size:0x14 data:string -lbl_1_data_248 = .data:0x00000248; // type:object size:0x14 data:string -lbl_1_data_25C = .data:0x0000025C; // type:object size:0x14 data:string -lbl_1_data_270 = .data:0x00000270; // type:object size:0x14 data:string -lbl_1_data_284 = .data:0x00000284; // type:object size:0x14 data:string +lbl_1_data_CC = .data:0x000000CC; // type:object size:0x14 scope:local data:string +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x14 scope:local data:string +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x14 scope:local data:string +lbl_1_data_108 = .data:0x00000108; // type:object size:0x14 scope:local data:string +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x14 scope:local data:string +lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 scope:local data:string +lbl_1_data_144 = .data:0x00000144; // type:object size:0x14 scope:local data:string +lbl_1_data_158 = .data:0x00000158; // type:object size:0x14 scope:local data:string +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x14 scope:local data:string +lbl_1_data_180 = .data:0x00000180; // type:object size:0x14 scope:local data:string +lbl_1_data_194 = .data:0x00000194; // type:object size:0x14 scope:local data:string +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x14 scope:local data:string +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x14 scope:local data:string +lbl_1_data_1D0 = .data:0x000001D0; // type:object size:0x14 scope:local data:string +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x14 scope:local data:string +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x14 scope:local data:string +lbl_1_data_20C = .data:0x0000020C; // type:object size:0x14 scope:local data:string +lbl_1_data_220 = .data:0x00000220; // type:object size:0x14 scope:local data:string +lbl_1_data_234 = .data:0x00000234; // type:object size:0x14 scope:local data:string +lbl_1_data_248 = .data:0x00000248; // type:object size:0x14 scope:local data:string +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x14 scope:local data:string +lbl_1_data_270 = .data:0x00000270; // type:object size:0x14 scope:local data:string +lbl_1_data_284 = .data:0x00000284; // type:object size:0x14 scope:local data:string lbl_1_data_298 = .data:0x00000298; // type:object size:0x5C -lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0xC data:string -lbl_1_data_300 = .data:0x00000300; // type:object size:0x7 data:string -lbl_1_data_307 = .data:0x00000307; // type:object size:0x9 +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0xC scope:local data:string +lbl_1_data_300 = .data:0x00000300; // type:object size:0x7 scope:local data:string +lbl_1_data_307 = .data:0x00000307; // type:object size:0x6 scope:local data:string lbl_1_data_310 = .data:0x00000310; // type:object size:0x30 lbl_1_data_340 = .data:0x00000340; // type:object size:0x8 lbl_1_data_348 = .data:0x00000348; // type:object size:0x18 -lbl_1_data_360 = .data:0x00000360; // type:object size:0x9 data:string +lbl_1_data_360 = .data:0x00000360; // type:object size:0x9 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float lbl_1_bss_18 = .bss:0x00000018; // type:object size:0xC data:float diff --git a/include/REL/m412Dll.h b/include/REL/m412Dll.h index 3499be88..aea02d47 100644 --- a/include/REL/m412Dll.h +++ b/include/REL/m412Dll.h @@ -48,10 +48,11 @@ typedef struct _unkStruct3 { s32 unk28; s32 unk2C; s32 unk30; - char unk34[0x8]; + char unk34[0x4]; + s32 unk38; s32 unk3C; Vec unk40; - char unk4C[0x8]; + HsfVector2f unk4C; Vec unk54; Vec unk60; f32 unk6C; @@ -63,7 +64,10 @@ typedef struct _unkStruct3 { s8 unk8B; u16 unk8C; u16 unk8E; - char unk90[0x14]; + HsfVector2f unk90; + f32 unk98; + s32 unk9C; + s32 unkA0; s32 unkA4; } unkStruct3; // sizeof 0xA8 @@ -76,7 +80,7 @@ typedef struct _unkStruct4 { // prototypes void ObjectSetup(void); -void fn_1_6EC(f32, f32, f32, s32); +void* fn_1_6EC(f32, f32, f32, s32); void fn_1_73C(void); void fn_1_7BC(void); void fn_1_894(omObjData* object); @@ -99,10 +103,14 @@ u16 fn_1_531C(s32); u16 fn_1_5388(s32); s32 fn_1_53F4(unkStruct3*, f32, f32, f32); s32 fn_1_561C(unkStruct3*, s32*); +void fn_1_5838(unkStruct3*); +f32 fn_1_6594(f32, f32, f32); +f32 fn_1_6698(f32, f32, unkStruct3*); +void fn_1_6814(unkStruct3*); +void fn_1_7C60(void); +void fn_1_A01C(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_A618(ModelData* model, ParticleData* particle, Mtx matrix); //... -void fn_1_7C60(void); // * -void fn_1_A01C(ModelData* model, ParticleData* particle, Mtx matrix); // * -void fn_1_A618(ModelData* model, ParticleData* particle, Mtx matrix); // * void fn_1_AA88(ModelData* model, ParticleData* particle, Mtx matrix); // * void fn_1_B160(void); // * void fn_1_B1C0(void); // * \ No newline at end of file diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c index c7481aee..fdd34597 100644 --- a/src/REL/m412Dll/main.c +++ b/src/REL/m412Dll/main.c @@ -8,6 +8,7 @@ #include "game/frand.h" #include "game/hsfmotion.h" #include "game/mapspace.h" +#include "game/minigame_seq.h" #include "game/objsub.h" #include "game/pad.h" #include "game/sprite.h" @@ -20,6 +21,7 @@ s16 lbl_1_bss_79C; s16 lbl_1_bss_798[2]; s32 lbl_1_bss_794; s32 lbl_1_bss_790; +s32 lbl_1_bss_780[4]; f32 lbl_1_bss_77C; f32 lbl_1_bss_778; f32 lbl_1_bss_774; @@ -137,13 +139,13 @@ void ObjectSetup(void) { WipeCreate(1, 0, 0x3C); } -void fn_1_6EC(f32 arg8, f32 arg9, f32 argA, s32 arg0) { +void* fn_1_6EC(f32 arg8, f32 arg9, f32 argA, s32 arg0) { Vec sp8; sp8.x = arg8; sp8.y = arg9; sp8.z = argA; - HuAudFXEmiterPlay(arg0, &sp8); + return (void*)HuAudFXEmiterPlay(arg0, &sp8); } void fn_1_73C(void) { @@ -1247,17 +1249,14 @@ s32 fn_1_53F4(unkStruct3* arg0, f32 arg8, f32 arg9, f32 argA) { unkStruct3* temp_r31; var_r28 = -1; - var_r30 = 0; - var_f28 = 10000.0f; - for (;var_r30 < 4; var_r30++) { + for (var_r30 = 0, var_f28 = 10000.0f; var_r30 < 4; var_r30++) { if (var_r30 != arg0->unk24) { temp_r31 = &lbl_1_bss_4D4[var_r30]; HuSetVecF(&sp30, arg8, arg9, argA); HuSetVecF(&sp24, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); HuSubVecF(&sp18, &sp30, &sp24); - var_f27 = sqrtf((sp18.z * sp18.z) + ((sp18.x * sp18.x) + (sp18.y * sp18.y))); - if ((var_f27 < (arg0->unk60.x + temp_r31->unk60.x)) && (var_f27 < var_f28)) { + if (((var_f27 = sqrtf((sp18.z * sp18.z) + ((sp18.x * sp18.x) + (sp18.y * sp18.y)))) < (arg0->unk60.x + temp_r31->unk60.x)) && (var_f27 < var_f28)) { var_f28 = var_f27; var_r28 = var_r30; arg0->unkA4 = 0; @@ -1289,8 +1288,7 @@ s32 fn_1_561C(unkStruct3* arg0, s32* arg1) { HuSetVecF(&sp24, arg0->unk40.x, arg0->unk40.y, arg0->unk40.z); HuSetVecF(&sp18, temp_r30->unk40.x, temp_r30->unk40.y, temp_r30->unk40.z); HuSubVecF(&spC, &sp24, &sp18); - var_f27 = sqrtf((spC.z * spC.z) + ((spC.x * spC.x) + (spC.y * spC.y))); - if (var_f27 < (arg0->unk60.x + temp_r30->unk60.x)) { + if ((var_f27 = sqrtf((spC.z * spC.z) + ((spC.x * spC.x) + (spC.y * spC.y)))) < (arg0->unk60.x + temp_r30->unk60.x)) { var_r28 += 1; if (var_f27 < var_f28) { var_f28 = var_f27; @@ -1302,4 +1300,921 @@ s32 fn_1_561C(unkStruct3* arg0, s32* arg1) { } *arg1 = var_r28; return var_r27; +} + +void fn_1_5838(unkStruct3* arg0) { + Vec spA8; + Vec sp9C; + Vec sp90; + Vec sp84; + Vec sp78; + Vec sp6C; + s32 sp68; + f32 sp64; + f32 sp60; + f32 sp5C; + f32 sp58; + f32 sp54; + f32 sp50; + f32 sp4C; + f32 var_f20; + f32 var_f25; + f32 var_f27; + f32 var_f26; + s32 var_r25; + s32 var_r29; + unkStruct3* temp_r27; + unkStruct3* var_r30; + s32 var_r24; + + var_r24 = fn_1_561C(arg0, &sp68); + if (var_r24 != -1) { + var_f20 = fn_1_1D08(atan2d((arg0->unk40.x - arg0->unk4C.x), (arg0->unk40.z - arg0->unk4C.y))); + sp58 = var_f27 = arg0->unk4C.x; + sp54 = var_f26 = arg0->unk4C.y; + sp4C = 1.0f; + var_r25 = (1.0f + (10.0f / sp4C)); + + while (var_r25 != 0) { + var_f27 += sp4C * sind(var_f20); + var_f26 += sp4C * cosd(var_f20); + HuSetVecF(&spA8, var_f27, arg0->unk40.y, var_f26); + + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r29 == arg0->unk24) continue; + var_r30 = &lbl_1_bss_4D4[var_r29]; + HuSetVecF(&sp9C, var_r30->unk40.x, var_r30->unk40.y, var_r30->unk40.z); + HuSubVecF(&sp90, &spA8, &sp9C); + if (sqrtf((sp90.z * sp90.z) + ((sp90.x * sp90.x) + (sp90.y * sp90.y))) < (arg0->unk60.x + var_r30->unk60.x)) + break; + } + if (var_r29 < 4) break; + AddX = 0.0f; + AddZ = 0.0f; + MapWall(arg0->unk60.x, var_f27, arg0->unk40.y + arg0->unk60.x, var_f26); + if ((AddX + AddZ) != 0.0f) goto end; + sp58 = var_f27; + sp54 = var_f26; + var_r25--; + } + var_f20 = fn_1_1D08(atan2d((arg0->unk40.x - arg0->unk4C.x), (arg0->unk40.z - arg0->unk4C.y))); + var_f25 = fn_1_1D08(atan2d((var_r30->unk40.x - arg0->unk4C.x), (var_r30->unk40.z - arg0->unk4C.y))); + sp60 = var_f20 - var_f25; + if (sp60 > 0.0f) { + sp5C = -0.5f; + } else { + sp5C = 0.5f; + } + if (ABS_INV(var_f20 - var_f25) > 180.0f) { + sp5C = -sp5C; + } + var_f25 = fn_1_1D08(atan2d((arg0->unk4C.x - var_r30->unk40.x), (arg0->unk4C.y - var_r30->unk40.z))); + sp50 = 0.8f * arg0->unk60.y; + var_r24 = var_r30->unk24; + sp64 = 1.0f + (arg0->unk60.x + var_r30->unk60.x); + while (1) { + var_f27 = (var_r30->unk40.x + (sp64 * sind(var_f25))); + var_f26 = (var_r30->unk40.z + (sp64 * cosd(var_f25))); + HuSetVecF(&spA8, var_f27, 0.0, var_f26); + + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if ((var_r29 == arg0->unk24) || (var_r29 == var_r24)) continue; + temp_r27 = &lbl_1_bss_4D4[var_r29]; + HuSetVecF(&sp9C, temp_r27->unk40.x, 0.0, temp_r27->unk40.z); + HuSubVecF(&sp90, &spA8, &sp9C); + if (sqrtf((sp90.x * sp90.x) + (sp90.z * sp90.z)) < (arg0->unk60.x + temp_r27->unk60.x)) break; + } + if (var_r29 < 4) break; + AddX = 0.0f; + AddZ = 0.0f; + MapWall(arg0->unk60.x, var_f27, arg0->unk40.y + arg0->unk60.x, var_f26); + if ((AddX + AddZ) != 0.0f) break; + sp58 = var_f27; + sp54 = var_f26; + HuSetVecF(&spA8, arg0->unk4C.x, 0.0, arg0->unk4C.y); + HuSetVecF(&sp9C, var_f27, 0.0, var_f26); + HuSubVecF(&sp90, &spA8, &sp9C); + if (sqrtf((sp90.x * sp90.x) + (sp90.z * sp90.z)) > sp50) break; + var_f25 += sp5C; + } +end: + arg0->unk40.x = sp58; + arg0->unk40.z = sp54; + } +} + +f32 fn_1_6594(f32 arg8, f32 arg9, f32 argA) { + f32 var_f30; + f32 var_f31; + + var_f31 = fmod((arg9 - arg8), 360.0); + if (0.0f > var_f31) { + var_f31 += 360.0f; + } + if (180.0f < var_f31) { + var_f31 -= 360.0f; + } + var_f30 = fmod((arg8 + (var_f31 * argA)), 360.0); + if (0.0f > var_f30) { + var_f30 += 360.0f; + } + return var_f30; +} + +f32 fn_1_6698(f32 arg8, f32 arg9, unkStruct3* arg0) { + Vec sp2C; + Vec sp20; + Vec sp14; + + HuSetVecF(&sp2C, arg8, 0.0, arg9); + HuSetVecF(&sp20, arg0->unk40.x, 0.0, arg0->unk40.z); + HuSubVecF(&sp14, &sp2C, &sp20); + return sqrtf((sp14.x * sp14.x) + (sp14.z * sp14.z)); +} + +// fn_1_6814: https://decomp.me/scratch/WQPjD +void fn_1_6814(unkStruct3* arg0) { + Vec sp104; + Vec spF8; + Vec spEC; + Vec spE0; + Vec spD4; + Vec spC8; + f32 spBC; + f32 spB0; + f32 spA4; + volatile f32 spA0; + f32 sp9C; + f32 sp98; + f32 var_f27; // probably debug code + f32 var_f18; + f32 temp_f31; + f32 temp_f30; + f32 var_f29; + s32 var_r22; + s32 var_r21; + s32 var_r20; + unkStruct* temp_r27; + s32 var_r28; + unkStruct3* temp_r29; + unkStruct* var_r30; + + arg0->unk88 = arg0->unk89 = 0; + arg0->unk8B = arg0->unk8A = 0; + arg0->unk8C = arg0->unk8E = 0; + + switch (GWPlayerCfg[arg0->unk24].diff) { + case 0: + var_r22 = 0x3C; + break; + case 1: + var_r22 = 0x50; + break; + case 2: + var_r22 = 0x5A; + break; + default: + var_r22 = 0x5F; + break; + } + switch (GWPlayerCfg[arg0->unk24].diff) { + case 0: + spA0 = 200.0f; + break; + case 1: + spA0 = 250.0f; + break; + case 2: + spA0 = 300.0f; + break; + default: + spA0 = 350.0f; + break; + } + + for (var_r28 = 0, sp98 = 10000.0f; var_r28 < 0x20; var_r28++) { + temp_r27 = lbl_1_bss_278[var_r28]; + if (temp_r27 && (temp_r27->unk6 != -1)) { + HuSetVecF(&sp104, arg0->unk40.x, 0.0, arg0->unk40.z); + HuSetVecF(&spF8, temp_r27->unk10.x, 0.0, temp_r27->unk10.z); + HuSubVecF(&spEC, &sp104, &spF8); + var_f29 = sqrtf((spEC.z * spEC.z) + ((spEC.x * spEC.x) + (spEC.y * spEC.y))); + if ((var_f29 < (spA0 + (arg0->unk60.x + temp_r27->unk30))) && (sp98 > var_f29)) { + var_r30 = temp_r27; + sp98 = var_f29; + } + } + } + if (sp98 < 10000.0f) { + arg0->unk9C = 0; + var_r21 = 1; + if (arg0->unkA0 != var_r30->unk6) { + if (frandmod(0x64) < 0) { + (void)var_r21; // probably debug code + } else { + (void)var_r21; + } + } + if (var_r21 != 0) { + sp9C = 200.0f + (var_r30->unk30 + arg0->unk60.x) + (100.0f * frandf()); + sp104.x = temp_f31 = (var_r30->unk10.x + (sp9C * sind(var_r30->unk24.x + 90.0f))); + sp104.z = temp_f30 = (var_r30->unk10.z + (sp9C * cosd(var_r30->unk24.x + 90.0f))); + var_f29 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + spF8.x = temp_f31 = (var_r30->unk10.x + (sp9C * sind(var_r30->unk24.x - 90.0f))); + spF8.z = temp_f30 = (var_r30->unk10.z + (sp9C * cosd(var_r30->unk24.x - 90.0f))); + spA0 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (sqrtf((arg0->unk40.x * arg0->unk40.x) + (arg0->unk40.z * arg0->unk40.z)) < 400.0f) { + spEC.x = var_f29; + var_f29 = spA0; + spA0 = spEC.x; + } + if (var_f29 > spA0) { + spEC.x = spF8.x; + spEC.z = spF8.z; + } else { + spEC.x = sp104.x; + spEC.z = sp104.z; + } + if (arg0->unkA0 != var_r30->unk6) { + arg0->unkA0 = var_r30->unk6; + arg0->unk90.x = spEC.x; + arg0->unk90.y = spEC.z; + } + + var_f18 = atan2d((arg0->unk90.x - arg0->unk40.x), (arg0->unk90.y - arg0->unk40.z)); + + if (fn_1_53F4(arg0, arg0->unk40.x + arg0->unk7C.x, arg0->unk40.y, arg0->unk40.z + arg0->unk7C.z) != -1) { + var_f18 += 90.0f; + } + arg0->unk88 = 50.0 * sind(var_f18); + arg0->unk89 = -50.0f * cosd(var_f18); + } + } else { + if (arg0->unk9C == 0) { + arg0->unk9C = 1; + arg0->unk98 = (250.0f + (90.0f * frandf())); + arg0->unkA4 = 30; + } + if ((sqrtf((arg0->unk40.x * arg0->unk40.x) + (arg0->unk40.z * arg0->unk40.z)) > arg0->unk98) && (arg0->unkA4 != 0)) { + arg0->unkA4--; + var_f18 = (180.0 + (atan2d(arg0->unk40.x, arg0->unk40.z))); + if (fn_1_53F4(arg0, arg0->unk40.x + arg0->unk7C.x, arg0->unk40.y, arg0->unk40.z + arg0->unk7C.z) != -1) { + arg0->unkA4 = 0; + var_f18 += 90.0f; + } + arg0->unk88 = 25.0 * sind(var_f18); + arg0->unk89 = -25.0 * cosd(var_f18); + return; + } + var_r28 = 0; + sp98 = 10000.0f; + var_r20 = -1; + + for (;var_r28 < 4; var_r28++) { + if (var_r28 != arg0->unk24) { + temp_r29 = &lbl_1_bss_4D4[var_r28]; + HuSetVecF(&sp104, arg0->unk40.x, 0.0, arg0->unk40.z); + HuSetVecF(&spF8, temp_r29->unk40.x, 0.0, temp_r29->unk40.z); + HuSubVecF(&spEC, &sp104, &spF8); + var_f29 = sqrtf((spEC.z * spEC.z) + ((spEC.x * spEC.x) + (spEC.y * spEC.y))); + if (var_f29 < sp98) { + var_r20 = var_r28; + sp98 = var_f29; + } + } + } + if (var_r20 != -1) { + temp_r29 = &lbl_1_bss_4D4[var_r20]; + HuSetVecF(&sp104, arg0->unk40.x, 0.0, arg0->unk40.z); + HuSetVecF(&spF8, temp_r29->unk40.x, 0.0, temp_r29->unk40.z); + HuSubVecF(&spEC, &sp104, &spF8); + var_f29 = sqrtf((spEC.x * spEC.x) + (spEC.z * spEC.z)); + if ((var_f29 < 200.0f) && (var_f29 > 150.0f)) { + var_f18 = atan2d((arg0->unk40.x - temp_r29->unk40.x), (arg0->unk40.z - temp_r29->unk40.z)); + (void)var_f29; + arg0->unk88 = 30.0f * sind(var_f18); + arg0->unk89 = -30.0f * cosd(var_f18); + } + } + } + + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; +} + +// fn_1_7C60: https://decomp.me/scratch/eMCi6 +void fn_1_7C60(void) { + Vec sp1A0; + Vec sp188; + Vec sp17C; + Vec sp170; + Vec sp164; + Vec sp158; + Vec sp14C; + Vec sp140; + f32 sp13C; + f32 sp138; + f32 sp134; + f32 sp130; + f32 sp12C; + f32 sp128; + f32 sp124; + s32 sp120; + f32 sp11C; + f32 sp118; + f32 sp114; + f32 sp110; + f32 sp10C; + f32 sp108; + f32 sp104; + f32 sp100; + f32 spFC; + f32 spF8; + f32 spF4; + f32 spF0; + s32 spEC; + f32 spE8; + f32 spE4; + s32 spE0; + f32 spDC; + f32 spD8; + f32 spD4; + f32 spD0; + f32 spCC; + f32 spC8; + f32 spC4; + f32 spC0; + f32 spBC; + f32 spB8; + f32 temp_f20; + f32 var_f21; + f32 var_f31; + s32 var_r27; + unkStruct3* temp_r30; + unkStruct3* temp_r31; + + temp_r31 = HuPrcCurrentGet()->user_data; + temp_r31->unk30 = 0; + temp_r31->unk9C = 0; + temp_r31->unkA0 = -1; + + while (lbl_1_bss_794 == 0) { + HuPrcVSleep(); + } + + lbl_1_bss_794 = 2; + while (lbl_1_bss_794 == 2) { + HuPrcVSleep(); + } +loop_6: + temp_r31->unk4C.x = temp_r31->unk40.x; + temp_r31->unk4C.y = temp_r31->unk40.z; + if (GWPlayerCfg[temp_r31->unk24].iscom == 1) { + fn_1_6814(temp_r31); + } + switch (temp_r31->unk30) { + default: + HuSetVecF(&temp_r31->unk24, fn_1_4E58(temp_r31->unk24, 0) * 0.25f, 0.0, -fn_1_4E58(temp_r31->unk24, 1) * 0.25f); + temp_r31->unk60.z = sqrtf((sp1A0.z * sp1A0.z) + ((sp1A0.x * sp1A0.x) + (sp1A0.y * sp1A0.y))); + if (temp_r31->unk60.z >= 0.5f) { + if (temp_r31->unk60.z >= 10.0f) { + sp1A0.x /= temp_r31->unk60.z; + sp1A0.z /= temp_r31->unk60.z; + temp_r31->unk60.z = 10.0f; + sp1A0.x = 10.0f * sp1A0.x; + sp1A0.z = 10.0f * sp1A0.z; + } + temp_r31->unk54.y = fn_1_6594(temp_r31->unk54.y, atan2d(sp1A0.x, sp1A0.z), 0.4f); + if (temp_r31->unk60.z >= 8.0f) { + if (temp_r31->unk30 != 2) { + temp_r31->unk30 = 2; + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[2], 0.0f, 8.0f, 0x40000001U); + Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[2], 0.0f, 8.0f, 0x40000001U); + } + } else if (temp_r31->unk30 != 1) { + temp_r31->unk30 = 1; + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[1], 0.0f, 8.0f, 0x40000001U); + Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[1], 0.0f, 8.0f, 0x40000001U); + } + temp_r31->unk7C.x += 0.1f * sp1A0.x; + temp_r31->unk7C.z += 0.1f * sp1A0.z; + } else if (temp_r31->unk30 != 0) { + temp_r31->unk30 = 0; + CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[0]); + Hu3DModelAttrSet(temp_r31->unk0, 0x40000001); + Hu3DMotionSet(temp_r31->unk2, temp_r31->unk18[0]); + Hu3DMotionSpeedSet(temp_r31->unk2, 2.0f); + Hu3DModelAttrSet(temp_r31->unk2, 0x40000001); + } + var_f21 = sqrtf((temp_r31->unk7C.x * temp_r31->unk7C.x) + (temp_r31->unk7C.z * temp_r31->unk7C.z)); + if (temp_r31->unk60.z > 0.5f) { + if (var_f21 > 0.25f) { + var_f21 -= 0.25f; + } + } else { + var_f21 -= 0.25f; + } + if (var_f21 < 0.0f) { + HuSetVecF(&temp_r31->unk7C, 0.0, 0.0, 0.0); + var_f21 = 0.0f; + } else { + if (var_f21 > 10.0f) { + var_f21 = 10.0f; + } + sp13C = fn_1_1D08(atan2d(temp_r31->unk7C.x, temp_r31->unk7C.z)); + HuSetVecF(&temp_r31->unk7C, (var_f21 * sind(sp13C)), 0.0, (var_f21 * cosd(sp13C))); + } + temp_r31->unk60.y = var_f21; + temp_r31->unk40.x += temp_r31->unk7C.x; + temp_r31->unk40.z += temp_r31->unk7C.z; + temp_r31->unk38 = fn_1_53F4(temp_r31, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); + if (temp_r31->unk38 != -1) { + temp_r30 = &lbl_1_bss_4D4[temp_r31->unk38]; + if (temp_r30->unk30 != 3) { + var_f31 = atan2d((temp_r30->unk40.x - temp_r31->unk40.x), (temp_r30->unk40.z - temp_r31->unk40.z)); + temp_f20 = atan2d(temp_r31->unk7C.x, temp_r31->unk7C.z); + var_f31 = ABS_INV(var_f31 - temp_f20); + if (var_f31 > 180.0f) { + var_f31 = 360.0f - var_f31; + } + sp138 = var_f31 / 90.0f; + var_f31 = atan2d((temp_r31->unk40.x - temp_r30->unk40.x), (temp_r31->unk40.z - temp_r30->unk40.z)); + temp_f20 = atan2d(temp_r31->unk7C.x, temp_r31->unk7C.z); + temp_f20 = fn_1_1D08(180.0f + temp_f20); + temp_f20 = fn_1_1D08(var_f31 - (temp_f20 - var_f31)); + var_f31 = fn_1_1D08(atan2d((temp_r30->unk40.x - temp_r31->unk40.x), (temp_r30->unk40.z - temp_r31->unk40.z))); + HuSetVecF(&sp1A0, temp_r31->unk7C.x, 0.0, temp_r31->unk7C.z); + spBC = sqrtf((sp1A0.x * sp1A0.x) + (sp1A0.z * sp1A0.z)); + spBC *= (1.0f - sp138); + sp1A0.x = spBC * sind(var_f31); + sp1A0.z = spBC * cosd(var_f31); + HuSetVecF(&temp_r30->unk7C, sp1A0.x, 0.0, sp1A0.z); + HuSetVecF(&sp1A0, temp_r31->unk7C.x, 0.0, temp_r31->unk7C.z); + spB8 = sqrtf((sp1A0.x * sp1A0.x) + (sp1A0.z * sp1A0.z)); + spB8 *= sp138; + sp1A0.x = spB8 * sind(temp_f20); + sp1A0.z = spB8 * cosd(temp_f20); + HuSetVecF(&temp_r31->unk7C, sp1A0.x, 0.0, sp1A0.z); + } + fn_1_5838(temp_r31); + } + while (1) { + AddX = 0.0f; + AddZ = 0.0f; + MapWall(temp_r31->unk60.x, temp_r31->unk40.x, temp_r31->unk40.y + temp_r31->unk60.x, temp_r31->unk40.z); + temp_r31->unk40.x += AddX; + temp_r31->unk40.z += AddZ; + if ((temp_r31->unk38 = fn_1_53F4(temp_r31, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z)) == -1) break; + temp_r31->unk40.x = temp_r31->unk4C.x; + temp_r31->unk40.z = temp_r31->unk4C.y; + } + Hu3DModelPosSet(temp_r31->unk0, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); + Hu3DModelRotSet(temp_r31->unk0, temp_r31->unk54.x, temp_r31->unk54.y, temp_r31->unk54.z); + Hu3DModelPosSet(temp_r31->unk2, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); + Hu3DModelRotSet(temp_r31->unk2, temp_r31->unk54.x, temp_r31->unk54.y, temp_r31->unk54.z); + HuPrcVSleep(); + goto loop_6; + case 3: + HuAudFXPlay(0x584); + Hu3DModelAttrSet(temp_r31->unk0, 0x40000002); + Hu3DModelAttrSet(temp_r31->unk2, 0x40000002); + Hu3DModelPosSet(temp_r31->unkA, temp_r31->unk40.x + (100.0 * sind(lbl_1_bss_778)), 200.0f + temp_r31->unk40.y, temp_r31->unk40.z + (100.0 * cosd(lbl_1_bss_778))); + Hu3DModelAttrReset(temp_r31->unkA, 1); + Hu3DModelAttrReset(temp_r31->unkA, 0x40000002); + HuPrcSleep(10); + Hu3DModelAttrSet(temp_r31->unk0, 0x40000002); + Hu3DModelAttrSet(temp_r31->unk2, 0x40000002); + HuPrcSleep(10); + Hu3DModelPosSet(temp_r31->unk6, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); + Hu3DModelPosSet(temp_r31->unk8, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); + Hu3DModelAttrReset(temp_r31->unk6, 1); + Hu3DModelAttrReset(temp_r31->unk8, 1); + Hu3DModelShadowDispOn(temp_r31->unk6); + + for (sp134 = 0.0f, sp130 = 1.0f; sp134 < 1; sp134 += 0.05f, sp130 -= 0.1f) { + Hu3DModelScaleSet(temp_r31->unk6, 1.0f, sp134, 1.0f); + Hu3DModelScaleSet(temp_r31->unk8, 1.0f, -sp134, 1.0f); + if (sp130 > 0.0f) { + Hu3DModelAmbSet(temp_r31->unk0, sp130, sp130, 1.0f); + } + HuPrcVSleep(); + } + Hu3DModelScaleSet(temp_r31->unk6, 1.0f, 1.0f, 1.0f); + Hu3DModelScaleSet(temp_r31->unk8, 1.0f, -1.0f, 1.0f); + while (1) { + HuPrcVSleep(); + } + case 4: + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[0], 0.0f, 5.0f, 0x40000001U); + Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[0], 0.0f, 5.0f, 0x40000001); + var_r27 = 30; + sp12C = fn_1_27C4(var_r27, lbl_1_bss_778, temp_r31->unk54.y); + + for (;var_r27 != 0; var_r27--) { + temp_r31->unk54.y += sp12C; + Hu3DModelRotSet(temp_r31->unk0, temp_r31->unk54.x, temp_r31->unk54.y, temp_r31->unk54.z); + Hu3DModelRotSet(temp_r31->unk2, temp_r31->unk54.x, temp_r31->unk54.y, temp_r31->unk54.z); + HuPrcVSleep(); + } + + while (lbl_1_bss_794 < 5) { + HuPrcVSleep(); + } + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[5], 0.0f, 5.0f, 0U); + Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[5], 0.0f, 5.0f, 0); + + while (1) { + HuPrcVSleep(); + } + } +} + +void fn_1_A01C(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { + HsfanimStruct01* var_r31; + f32 var_f29; + f32 var_f28; + f32 var_f30; + f32 var_f31; + s16 var_r25; + s16 var_r24; + s16 var_r26; + s16 var_r28; + s32 var_r27; + unkStruct* temp_r30; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + var_r31->unk14.x = var_r31->unk2C = 0.0f; + } + } + var_r31 = particle->unk_48; + + for (var_r26 = 0; var_r26 < 0x20; var_r26++) { + temp_r30 = lbl_1_bss_278[var_r26]; + if (temp_r30 && (temp_r30->unkA != 0)) { + for (var_r25 = 0, var_f30 = 0.0f; var_r25 < 4; var_r25++, var_f30 += 45.0f) { + for (var_r24 = 0, var_f31 = 0.0f; var_r24 < 8; var_r24++, var_f31 += 45.0f) { + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + if (var_r31->unk14.x == 0.0f) break; + } + if (var_r28 == particle->unk_30) break; + if (temp_r30->unkC == 1) { + var_f29 = 2.0f + (2.0f * frandf()); + var_f28 = 10.0f; + } else { + var_f29 = 1.0f + frandf(); + var_f28 = 3.0f; + } + var_r31->unk34.x = temp_r30->unk10.x + (var_f29 * (sind(var_f30) * cosd(var_f31))); + var_r31->unk34.y = temp_r30->unk10.y + (var_f29 * sind(var_f31)); + var_r31->unk34.z = (temp_r30->unk10.z + (var_f29 * (cosd(var_f30) * cosd(var_f31)))); + var_r31->unk08.x = (var_f28 * (sind(var_f30) * cosd(var_f31))); + var_r31->unk08.y = (var_f28 * sind(var_f31)); + var_r31->unk08.z = (var_f28 * (cosd(var_f30) * cosd(var_f31))); + var_r31->unk14.x = 30.0f; + if (temp_r30->unkC == 1) { + var_r31->unk2C = 20.0f + (2.0f * frandf()); + var_r31->unk14.y = 0.0f; + } else { + var_r31->unk2C = 15.0f; + var_r31->unk14.y = 0.0f; + } + var_r31->unk40.a = 0xFF; + var_r31->unk14.z = 20.0f; + } + } + temp_r30->unkA++; + } + } + var_r31 = particle->unk_48; + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + if (var_r31->unk14.x != 0.0f) { + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + var_r31->unk08.x *= 0.95f; + var_r31->unk08.z *= 0.95f; + var_r31->unk08.y -= 0.2f; + var_r31->unk2C += var_r31->unk14.y; + var_r27 = var_r31->unk40.a; + var_r27 -= var_r31->unk14.z; + if (var_r31->unk14.z > 3.0f) { + var_r31->unk14.z -= 1.0f; + } + if (var_r27 < 0) { + var_r27 = 0; + var_r31->unk14.x = 0.0f; + } + var_r31->unk40.a = var_r27; + if (var_r31->unk14.x == 0.0f) { + var_r31->unk2C = 0.0f; + } + } + } +} + +void fn_1_A618(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { + HsfanimStruct01* var_r31; + f32 var_f31; + f32 var_f30; + f32 var_f29; + f32 var_f28; + s16 var_r26; + s16 var_r25; + s16 var_r29; + s32 var_r27; + unkStruct* temp_r28; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + var_r31->unk14.x = var_r31->unk2C = 0.0f; + } + } + var_r31 = particle->unk_48; + + for (var_r26 = 0; var_r26 < 0x20; var_r26++) { + temp_r28 = lbl_1_bss_278[var_r26]; + if (temp_r28 && (temp_r28->unkA != 0)) { + + for (var_r25 = 0, var_f28 = 0.0f; var_r25 < 9; var_r25++, var_f28 += 45.0f) { + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (var_r31->unk14.x == 0.0f) break; + } + if (var_r29 == particle->unk_30) break; + var_f31 = var_f28; + if (var_r25 < 8) { + var_f30 = 1.0f + frandf(); + var_f29 = 2.0f; + } else { + var_f30 = var_f29 = 0.0f; + } + var_r31->unk34.x = temp_r28->unk10.x + (var_f30 * sind(var_f31)); + var_r31->unk34.y = temp_r28->unk10.y + (10.0f * frandf()); + var_r31->unk34.z = temp_r28->unk10.z + (var_f30 * cosd(var_f31)); + var_r31->unk08.x = var_f29 * sind(var_f31); + var_r31->unk08.y = -1.0f + frandf(); + var_r31->unk08.z = var_f29 * cosd(var_f31); + var_r31->unk14.x = 30.0f; + var_r31->unk2C = 15.0f; + var_r31->unk14.y = 1.5f; + var_r31->unk40.a = 0xC8; + var_r31->unk14.z = 17.0f; + } + temp_r28->unkA = 0; + } + } + var_r31 = particle->unk_48; + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (0.0f != var_r31->unk14.x) { + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + var_r31->unk08.x *= 0.95f; + var_r31->unk08.z *= 0.95f; + var_r31->unk08.y -= 0.2f; + var_r31->unk2C += var_r31->unk14.y; + var_r27 = var_r31->unk40.a; + var_r27 -= var_r31->unk14.z; + if (var_r31->unk14.z > 3.0f) { + var_r31->unk14.z -= 1.0f; + } + if (var_r27 < 0) { + var_r27 = 0; + var_r31->unk14.x = 0.0f; + } + var_r31->unk40.a = var_r27; + if (0.0f == var_r31->unk14.x) { + var_r31->unk2C = 0.0f; + } + } + } +} + +void fn_1_AA88(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { + HsfanimStruct01* var_r31; + f32 var_f31; + s16 var_r27; + s16 var_r28; + unkStruct2* temp_r29; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + var_r31->unk14.x = var_r31->unk2C = 0.0f; + } + } + var_r31 = particle->unk_48; + + for (var_r27 = 0; var_r27 < 6; var_r27++) { + temp_r29 = &lbl_1_bss_33C[var_r27]; + if (temp_r29->unk20 == 0) continue; + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + if (var_r31->unk14.x == 0.0f) break; + } + if (var_r28 == particle->unk_30) break; + var_r31->unk34.x = temp_r29->unk2C.x + (-100.0 * cosd(temp_r29->unk38.y)); + var_r31->unk34.y = 98.0f + temp_r29->unk2C.y; + var_r31->unk34.z = temp_r29->unk2C.z + (100.0 * sind(temp_r29->unk38.y)); + var_r31->unk14.x = 30.0f; + var_r31->unk2C = 80.0f; + var_r31->unk14.y = 5.0f; + var_r31->unk40.a = 0xC8; + var_r31->unk14.z = 17.0f; + temp_r29->unk20 = 0; + } + var_r31 = particle->unk_48; + + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + if (0.0f != var_r31->unk14.x) { + var_r31->unk2C += var_r31->unk14.y; + if (var_r31->unk14.y > 2.0f) { + var_r31->unk14.y -= 0.2f; + } + var_f31 = var_r31->unk40.a; + var_f31 -= var_r31->unk14.z; + if (var_r31->unk14.z > 3.0f) { + var_r31->unk14.z -= 1.0f; + } + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + var_r31->unk14.x = 0.0f; + } + var_r31->unk40.a = var_f31; + if (var_r31->unk14.x == 0.0f) { + var_r31->unk2C = 0.0f; + } + } + } +} + +void fn_1_ADC8(void) { + Vec sp14; + Vec sp8; + f32 var_f31; + void* temp_r28; + Process* var_r29; + s32 var_r31; + unkStruct3* temp_r30; + + fn_1_6EC(1465.0f, 770.0f, -2400.0f, 0x588); + HuAudFXPlay(0x58B); + + var_r31 = 0; + var_f31 = Hu3DMotionMaxTimeGet(lbl_1_bss_79E); + for (; var_f31; var_r31++, var_f31--) { + if (var_r31 == 0x33) { + Hu3DModelAttrReset(lbl_1_bss_798[0], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_798[0], 1); + Hu3DModelPosSet(lbl_1_bss_798[0], 1465.0f, 770.0f, -2400.0f); + } + if (var_r31 == 0x47) { + Hu3DModelAttrReset(lbl_1_bss_798[1], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_798[1], 1); + Hu3DModelPosSet(lbl_1_bss_798[1], 1531.0f, 773.0f, -2380.0f); + } + if (var_r31 == 0x82) { + temp_r28 = fn_1_6EC(1465.0f, 770.0f, -2400.0f, 0x580); + var_r29 = HuPrcChildCreate(fn_1_7BC, 0x2000, 0x1000, 0, HuPrcCurrentGet()); + var_r29->user_data = temp_r28; + } + if (var_f31 == 90.0f) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + temp_r30 = &lbl_1_bss_4D4[var_r31]; + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[var_r31].character], temp_r30->unkC[3], 0.0f, 5.0f, 0U); + Hu3DMotionShiftSet(temp_r30->unk2, temp_r30->unk18[3], 0.0f, 5.0f, 0U); + } + } + HuPrcVSleep(); + } + HuPrcSleep(30); + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + temp_r30 = &lbl_1_bss_4D4[var_r31]; + HuAudPlayerVoicePlay(temp_r30->unk24, 0x128); + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[var_r31].character], temp_r30->unkC[4], 0.0f, 5.0f, 0U); + Hu3DMotionShiftSet(temp_r30->unk2, temp_r30->unk18[4], 0.0f, 5.0f, 0U); + } +} + +void fn_1_B13C(void) { + HuPrcSleep(0x1E); +} + +void fn_1_B160(void) { + while (1) { + while (1) { + if (omSysExitReq != 1) break; + WipeCreate(2, 0, 0x3C); + HuAudFadeOut(0x3E8); + HuPrcSleep(0x3C); + MGSeqKillAll(); + omOvlReturnEx(1, 1); + while (1) { + HuPrcVSleep(); + } + } + HuPrcVSleep(); + } +} + +void fn_1_B1C0(void) { + s16 temp_r27; + s16 temp_r30; + s16 var_r29; + s32 var_r26; + s32 var_r28; + s32 var_r31; + + lbl_1_bss_794 = 0; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_780[var_r31] = -1; + } + HuAudFXPlay(0x57F); + fn_1_6EC(1465.0f, 770.0f, -2400.0f, 0x589); + HuPrcSleep(1); + Hu3DModelAttrSet(lbl_1_bss_2F8.unk0, 0x40000002); + Hu3DModelClusterAttrSet(lbl_1_bss_2F8.unk0, 0, -0x3FFFFFFE); + Hu3DModelAttrSet(lbl_1_bss_2F8.unk2, 0x40000002); + Hu3DModelClusterAttrSet(lbl_1_bss_2F8.unk2, 0, -0x3FFFFFFE); + HuPrcSleep(1.0f + wipeData.duration); + fn_1_ADC8(); + HuPrcSleep(30); + lbl_1_bss_794 = 1; + while (lbl_1_bss_794 == 1) { + HuPrcVSleep(); + } + var_r26 = HuAudSeqPlay(0x43); + temp_r30 = MGSeqCreate(3, 0); + + while (MGSeqStatGet(temp_r30) != 0) { + HuPrcVSleep(); + } + var_r29 = 0xE4B; + temp_r27 = MGSeqCreate(1, var_r29 / 60, -1, -1); + lbl_1_bss_794 = 3; + + while (1) { + for (var_r31 = 0, var_r28 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_4D4[var_r31].unk30 != 3) { + var_r28++; + } + } + if ((var_r28 <= 1) || (var_r29 < 0x3B)) break; + MGSeqParamSet(temp_r27, 1, var_r29-- / 60); + lbl_1_bss_790++; + HuPrcVSleep(); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_4D4[var_r31].unk30 != 3) { + lbl_1_bss_780[var_r31] = GWPlayerCfg[var_r31].character; + if (_CheckFlag(0x1000C) == 0) { + GWPlayer[var_r31].coin_win = 10; + } + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_4D4[var_r31].unk30 = 4; + } + lbl_1_bss_794 = 4; + HuAudSeqFadeOut(var_r26, 0x64); + MGSeqParamSet(temp_r27, 2, -1); + temp_r30 = MGSeqCreate(3, 1); + + while (MGSeqStatGet(temp_r30) != 0) { + HuPrcVSleep(); + } + HuPrcSleep(30); + lbl_1_bss_794 = 5; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_780[var_r31] != -1) break; + } + if (var_r31 < 4) { + HuAudSStreamPlay(1); + temp_r30 = MGSeqCreate(5, 3, lbl_1_bss_780[0], lbl_1_bss_780[1], lbl_1_bss_780[2], lbl_1_bss_780[3]); + } else { + HuAudSStreamPlay(4); + temp_r30 = MGSeqCreate(3, 2); + } + HuPrcSleep(0xD2); + WipeCreate(2, 0, 0x3C); + HuPrcSleep(0x3C); + HuAudFadeOut(1); + MGSeqKillAll(); + omOvlReturnEx(1, 1); + while (1) { + HuPrcVSleep(); + } } \ No newline at end of file From e79fa6a486d78dc842fb4e5cf3fc541c8c01afcd Mon Sep 17 00:00:00 2001 From: Rainchus Date: Fri, 2 Aug 2024 16:25:46 -0500 Subject: [PATCH 005/311] comment out code causing game to not boot --- src/REL/w07Dll/big_boo.c | 1176 +++++++++++++++++++++++++++++++++++ src/REL/w07Dll/boo_event.c | 1198 ++++++++++++++++++++++++++++++++++++ src/REL/w07Dll/bridge.c | 314 ++++++++++ src/REL/w07Dll/main.c | 446 ++++++++++++++ src/REL/w07Dll/mg_coin.c | 663 ++++++++++++++++++++ src/REL/w07Dll/mg_item.c | 656 ++++++++++++++++++++ src/game/board/main.c | 8 +- 7 files changed, 4457 insertions(+), 4 deletions(-) create mode 100644 src/REL/w07Dll/big_boo.c create mode 100644 src/REL/w07Dll/boo_event.c create mode 100644 src/REL/w07Dll/bridge.c create mode 100644 src/REL/w07Dll/main.c create mode 100644 src/REL/w07Dll/mg_coin.c create mode 100644 src/REL/w07Dll/mg_item.c diff --git a/src/REL/w07Dll/big_boo.c b/src/REL/w07Dll/big_boo.c new file mode 100644 index 00000000..ff859078 --- /dev/null +++ b/src/REL/w07Dll/big_boo.c @@ -0,0 +1,1176 @@ +#include "REL/w04Dll.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/msm.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "game/board/audio.h" +#include "game/board/com.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/space.h" +#include "game/board/ui.h" +#include "game/board/view.h" +#include "game/board/window.h" + +#include "dolphin.h" +#include "ext_math.h" + +// Remove this and include frand.h header once we decide what to do with frandmod. +#define frand8() (((s32)frand() & 0xFF)) + +static void fn_1_62B0(void); +static void fn_1_68D8(void); +static void fn_1_6CF8(void); +static void fn_1_7300(void); +static void fn_1_757C(void); +static void fn_1_75D8(void); +static void fn_1_7888(void); +static void fn_1_8A60(void); +static void fn_1_98A0(void); +static void fn_1_9B34(void); +static void fn_1_9BDC(void); +static void fn_1_9C18(void); +static void fn_1_9EA8(void); +static s16 fn_1_9F50(void); +static void fn_1_A074(s16 arg0); + +static s16 lbl_1_bss_282; +static s16 lbl_1_bss_280; +static s16 lbl_1_bss_27E; +static s16 lbl_1_bss_27C; +static Process *lbl_1_bss_278; +static s16 lbl_1_bss_274; +static s16 lbl_1_bss_272; +static s16 lbl_1_bss_270; +static Vec lbl_1_bss_240[4]; +static Vec lbl_1_bss_210[4]; +static s16 lbl_1_bss_13C[105]; +static s16 lbl_1_bss_13A; +static s16 lbl_1_bss_134[3]; +static s16 lbl_1_bss_114[4][4]; +static Vec lbl_1_bss_108; +static Process *lbl_1_bss_104; +static AnimData *lbl_1_bss_100; + +static char *lbl_1_data_3CC[] = { + "picture", "picture2", "clock", "hari", "papa" +}; + +static s32 lbl_1_data_3E0[] = { + DATA_MAKE_NUM(DATADIR_W04, 25), + DATA_MAKE_NUM(DATADIR_W04, 26), + DATA_MAKE_NUM(DATADIR_W04, 27), + DATA_MAKE_NUM(DATADIR_W04, 28), + -1 +}; + +static s32 lbl_1_data_3F4[8] = { + DATADIR_MARIOMOT, + DATADIR_LUIGIMOT, + DATADIR_PEACHMOT, + DATADIR_YOSHIMOT, + DATADIR_WARIOMOT, + DATADIR_DONKEYMOT, + DATADIR_DAISYMOT, + DATADIR_WALUIGIMOT +}; + +static s32 lbl_1_data_414[] = { + 26, 28, 93, 12 +}; + +static s16 lbl_1_data_424[][2] = { + { 0, 0 }, { 6, 1 }, { 7, 3 }, { 12, 2 }, + { 15, 3 }, { 18, 4 }, { 20, 6 }, { 23, 5 }, + { 26, 6 }, { 28, 7 }, { 29, 8 }, { -1, 9 } +}; + +void fn_1_6024(void) { + lbl_1_bss_27C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 19), NULL, 0); + BoardModelHookSet(lbl_1_bss_14[4], lbl_1_data_3CC[0], lbl_1_bss_27C); + lbl_1_bss_280 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 20), NULL, 0); + BoardModelHookSet(lbl_1_bss_14[4], lbl_1_data_3CC[2], lbl_1_bss_280); + lbl_1_bss_27E = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 21), NULL, 0); + BoardModelHookSet(lbl_1_bss_280, lbl_1_data_3CC[3], lbl_1_bss_27E); + BoardModelAttrSet(lbl_1_bss_27E, 0x40000002); + BoardModelAttrSet(lbl_1_bss_27C, 0x40000002); + BoardModelMotionTimeSet(lbl_1_bss_27C, 20.0f); + BoardModelAttrSet(lbl_1_bss_280, 0x40000003); + BoardModelMotionSpeedSet(lbl_1_bss_27C, 0.5f); + if (lbl_1_bss_0->unk01 != 0) { + BoardModelMotionTimeSet(lbl_1_bss_280, 0.0f); + BoardModelMotionSpeedSet(lbl_1_bss_280, 0.5f); + BoardModelAttrReset(lbl_1_bss_280, 0x40000002); + BoardModelMotionTimeSet(lbl_1_bss_27E, 120.0f * lbl_1_bss_0->unk01); + BoardModelMotionTimeSet(lbl_1_bss_27C, 25.0f + 30.0f * lbl_1_bss_0->unk01); + } +} + +static void fn_1_62B0(void) { + Vec sp14; + Vec sp8; + s32 var_r31; + + lbl_1_bss_0->unk01++; + if (lbl_1_bss_0->unk01 == 3) { + lbl_1_bss_272 = GWPlayer[lbl_1_bss_282].space_curr; + var_r31 = BoardSpaceLinkFlagSearch(0, lbl_1_bss_272, 0x02000000); + BoardPlayerMoveToAsync(lbl_1_bss_282, var_r31); + while (GWPlayer[lbl_1_bss_282].moving) { + HuPrcVSleep(); + } + lbl_1_bss_274 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 24), lbl_1_data_3E0, 0); + BoardModelMotionStart(lbl_1_bss_274, 4, 0); + BoardModelAttrSet(lbl_1_bss_274, 0x40000002); + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[4]), lbl_1_data_3CC[4], &sp14); + BoardModelPosSetV(lbl_1_bss_274, &sp14); + sp8.x = sp8.y = sp8.z = 3.0f; + BoardModelScaleSetV(lbl_1_bss_274, &sp8); + BoardModelVisibilitySet(lbl_1_bss_274, 0); + } + BoardPlayerMotBlendSet(lbl_1_bss_282, 180, 0xF); + while (!BoardPlayerMotBlendCheck(lbl_1_bss_282)) { + HuPrcVSleep(); + } + fn_1_9C18(); + switch (lbl_1_bss_0->unk01) { + case 1: + HuAudFXPlay(0x4E); + omVibrate(lbl_1_bss_282, 0x7FFF, 6, 6); + BoardModelMotionTimeSet(lbl_1_bss_27C, 30.0f); + BoardModelAttrReset(lbl_1_bss_27C, 0x40000002); + HuPrcSleep(40); + BoardModelAttrSet(lbl_1_bss_27C, 0x40000002); + HuPadRumbleStop(GWPlayer[lbl_1_bss_282].port); + BoardWinCreate(0, MAKE_MESSID(32, 26), -1); + BoardWinWait(); + BoardWinKill(); + break; + case 2: + HuAudFXPlay(0x4E); + omVibrate(lbl_1_bss_282, 0x7FFF, 6, 6); + BoardModelMotionTimeSet(lbl_1_bss_27C, 60.0f); + BoardModelAttrReset(lbl_1_bss_27C, 0x40000002); + HuPrcSleep(40); + BoardModelAttrSet(lbl_1_bss_27C, 0x40000002); + HuPadRumbleStop(GWPlayer[lbl_1_bss_282].port); + BoardWinCreate(0, MAKE_MESSID(32, 27), -1); + BoardWinWait(); + BoardWinKill(); + break; + case 3: + BoardWinCreate(0, MAKE_MESSID(32, 28), -1); + BoardWinWait(); + BoardWinKill(); + HuAudFXPlay(0x4E); + sp14.x = 5.0f; + sp14.y = 0.0f; + sp14.z = 0.0f; + sp8.x = 0.0f; + sp8.y = 300.0f; + sp8.z = -200.0f; + BoardCameraMotionStartEx(lbl_1_bss_14[4], &sp14, &sp8, 1400.0f, -1.0f, 30); + BoardCameraMotionWait(); + HuPrcSleep(9); + HuAudFXPlay(0x464); + BoardModelMotionTimeSet(lbl_1_bss_27C, 90.0f); + BoardModelAttrReset(lbl_1_bss_27C, 0x40000002); + HuPrcSleep(10); + omVibrate(lbl_1_bss_282, 12, 4, 2); + BoardModelVisibilitySet(lbl_1_bss_274, 1); + BoardModelAttrReset(lbl_1_bss_274, 0x40000002); + HuPrcSleep(39); + BoardModelPosGet(lbl_1_bss_274, &sp14); + BoardModelScaleGet(lbl_1_bss_274, &sp8); + while (!BoardModelMotionEndCheck(lbl_1_bss_274)) { + sp14.z += 15.0f; + BoardModelPosSetV(lbl_1_bss_274, &sp14); + HuPrcVSleep(); + } + BoardModelMotionStart(lbl_1_bss_274, 1, 0x40000001); + break; + } + if (lbl_1_bss_0->unk01 == 3) { + fn_1_68D8(); + BoardCameraViewSet(1); + BoardPlayerMoveToAsync(lbl_1_bss_282, lbl_1_bss_272); + while (GWPlayer[lbl_1_bss_282].moving) { + HuPrcVSleep(); + } + BoardPlayerIdleSet(lbl_1_bss_282); + BoardCameraMotionWait(); + } else { + HuPrcSleep(29); + } + HuPrcEnd(); +} + +static void fn_1_68D8(void) { + float var_f31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 i; + + BoardWinCreate(2, MAKE_MESSID(32, 3), 9); + BoardWinWait(); + BoardWinKill(); + if (BoardPlayerCoinsGet(lbl_1_bss_282) < 15) { + BoardWinCreate(2, MAKE_MESSID(32, 4), 9); + BoardWinWait(); + BoardWinKill(); + BoardAudSeqFadeOut(1, 1000); + while (msmMusGetStatus(1) != 0) { + HuPrcVSleep(); + } + BoardAudSeqPause(0, 0, 1000); + fn_1_98A0(); + return; + } + do { + var_r30 = 0; + for (i = 0; i < 4; i++) { + if (i != lbl_1_bss_282) { + var_r30 += GWStarsGet(i); + } + } + var_r28 = 0; + for (i = 0; i < 4; i++) { + if (i != lbl_1_bss_282) { + var_r28 += BoardPlayerCoinsGet(i); + } + } + BoardWinCreateChoice(4, MAKE_MESSID(32, 5), 9, 0); + if (BoardPlayerCoinsGet(lbl_1_bss_282) < 150 || var_r30 == 0) { + BoardWinChoiceDisable(1); + } + if (var_r28 == 0) { + BoardWinChoiceDisable(0); + } + if (GWPlayer[lbl_1_bss_282].com) { + if (var_r30 != 0 && BoardPlayerCoinsGet(lbl_1_bss_282) >= 150) { + BoardComKeySetDown(); + } else { + BoardComKeySetUp(); + } + } + BoardWinWait(); + BoardWinKill(); + var_r27 = BoardWinChoiceGet(); + var_r29 = 6; + switch (var_r27) { + case 1: + var_r29 /= 4; + for (i = 0; i < 135; i++) { + BoardPlayerCoinsAdd(lbl_1_bss_282, -1); + HuAudFXPlay(0xE); + HuPrcSleep(var_r29); + } + /* fallthrough */ + case 0: + for (i = 0; i < 15; i++) { + BoardPlayerCoinsAdd(lbl_1_bss_282, -1); + HuAudFXPlay(0xE); + HuPrcSleep(var_r29); + } + HuAudFXPlay(0xF); + HuAudFXPlay(0x4E); + BoardWinCreate(2, MAKE_MESSID(32, 7), 9); + BoardWinWait(); + BoardWinKill(); + var_f31 = 255.0f; + for (i = 0; i < 60; i++) { + var_f31 -= 4.25f; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + BoardModelAlphaSet(lbl_1_bss_274, var_f31); + HuPrcVSleep(); + } + BoardModelAlphaSet(lbl_1_bss_274, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + WipeColorSet(0, 0, 0); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + BoardModelAlphaSet(lbl_1_bss_274, 0xFF); + if (var_r27 == 0) { + fn_1_7888(); + } else { + fn_1_8A60(); + } + break; + case -1: + case 2: + BoardWinCreate(2, MAKE_MESSID(32, 6), 9); + BoardWinWait(); + BoardWinKill(); + BoardAudSeqFadeOut(1, 1000); + while (msmMusGetStatus(1) != 0) { + HuPrcVSleep(); + } + BoardAudSeqPause(0, 0, 1000); + break; + case 3: + BoardViewMapExec(lbl_1_bss_282); + break; + } + } while (var_r27 == 3); + fn_1_98A0(); +} + +static void fn_1_6CF8(void) { + Vec sp10; + s16 sp8[4]; + s16 var_r29; + s16 var_r28; + s32 temp_r27; + s32 var_r30; + s32 i; + + var_r29 = 0; + for (i = 0; i < 4; i++) { + if (i != lbl_1_bss_282) { + BoardPlayerPosGet(i, &lbl_1_bss_240[i]); + BoardPlayerRotGet(i, &lbl_1_bss_210[i]); + sp8[var_r29++] = i; + } + } + BoardModelHideSetAll(1); + BoardSpaceHide(1); + for (i = 0; i < 4; i++) { + BoardStatusShowSet(i, 0); + } + BoardLightResetExec(); + lbl_1_bss_270 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 22), NULL, 0); + BoardModelAttrSet(lbl_1_bss_270, 0x40000001); + sp10.y = 0.0f; + for (i = -1; i < 2; i++) { + sp10.z = 220.0f + -20.0f * abs(i); + sp10.x = 150.0f * i; + BoardPlayerPosSetV(sp8[i + 1], &sp10); + BoardPlayerRotYSet(sp8[i + 1], 180.0f); + BoardModelVisibilitySet(BoardPlayerModelGet(sp8[i + 1]), 1); + temp_r27 = lbl_1_data_3F4[GWPlayer[sp8[i + 1]].character]; + for (var_r30 = 0; var_r30 < 4; var_r30++) { + lbl_1_bss_114[sp8[i + 1]][var_r30] = BoardPlayerMotionCreate(sp8[i + 1], temp_r27 | lbl_1_data_414[var_r30]); + } + BoardPlayerMotionStart(sp8[i + 1], lbl_1_bss_114[sp8[i + 1]][0], 0x40000001); + } + BoardModelPosGet(lbl_1_bss_274, &lbl_1_bss_108); + BoardModelVisibilitySet(lbl_1_bss_274, 1); + sp10.x = sp10.z = 0.0f; + sp10.y = 800.0f; + BoardModelPosSetV(lbl_1_bss_274, &sp10); + sp10.x = sp10.y = sp10.z = 4.0f; + BoardModelScaleSetV(lbl_1_bss_274, &sp10); + BoardModelMotionStart(lbl_1_bss_274, 0, 0); + BoardCameraMoveSet(0); + BoardCameraTargetModelSet(lbl_1_bss_270); + BoardCameraOffsetSet(0.0f, 200.0f, 0.0f); + BoardCameraXRotZoomSet(1600.0f, -5.0f); + lbl_1_bss_104 = HuPrcChildCreate(fn_1_75D8, 0x2003, 0x1000, 0, boardMainProc); + HuPrcDestructorSet2(lbl_1_bss_104, fn_1_757C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + HuPrcSleep(0x78); + for (i = 0; i < 3; i++) { + BoardPlayerModelAttrReset(sp8[i], 0x40000001); + BoardPlayerMotionShiftSet(sp8[i], lbl_1_bss_114[sp8[i]][1], 0.0f, 5.0f, 0); + } + BoardModelPosGet(lbl_1_bss_274, &sp10); + var_r28 = 10; + for (i = 0; i < 60; i++) { + if (--var_r28 == 0) { + HuAudFXPlay(0x4E); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + HuAudPlayerVoicePlay(sp8[var_r30], 0x12F); + } + } + sp10.y -= 10.0f; + BoardModelPosSetV(lbl_1_bss_274, &sp10); + HuPrcVSleep(); + } + for (i = 0; i < 3; i++) { + BoardPlayerMotionShiftSet(sp8[i], 1, 0.0f, 5.0f, 0x40000001); + } +} + +static void fn_1_7300(void) { + Vec sp14; + Vec sp8; + s32 i; + s32 j; + + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + BoardModelKill(lbl_1_bss_270); + for (i = 0; i < 4; i++) { + if (i != lbl_1_bss_282) { + BoardPlayerPosSetV(i, &lbl_1_bss_240[i]); + BoardPlayerRotSetV(i, &lbl_1_bss_210[i]); + for (j = 0; j < 4; j++) { + BoardPlayerMotionKill(i, lbl_1_bss_114[i][j]); + } + BoardPlayerMotionStart(i, 1, 0x40000001); + } + } + HuPrcKill(lbl_1_bss_104); + HuPrcVSleep(); + BoardModelHideSetAll(0); + BoardSpaceHide(0); + for (i = 0; i < 4; i++) { + BoardStatusShowSet(i, 1); + } + BoardLightSetExec(); + BoardCameraMoveSet(0); + sp14.x = 5.0f; + sp14.y = 0.0f; + sp14.z = 0.0f; + sp8.x = 0.0f; + sp8.y = 220.0f; + sp8.z = -200.0f; + BoardCameraMotionStartEx(lbl_1_bss_14[4], &sp14, &sp8, 1400.0f, -1.0f, 0); + BoardCameraMoveSet(1); + BoardModelMotionStart(lbl_1_bss_274, 1, 0x40000001); + sp8.x = sp8.y = sp8.z = 3.0f; + BoardModelScaleSetV(lbl_1_bss_274, &sp8); + BoardModelPosSetV(lbl_1_bss_274, &lbl_1_bss_108); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } +} + +static void fn_1_757C(void) { + s16 temp_r31; + s16 temp_r30; + + temp_r31 = ((s32) HuPrcCurrentGet()->user_data) >> 16; + temp_r30 = (u16) HuPrcCurrentGet()->user_data; + Hu3DGLightKill(temp_r31); + Hu3DGLightKill(temp_r30); +} + +static void fn_1_75D8(void) { + Vec sp1C; + Vec sp10; + GXColor spC; + float sp8; + float var_f31; + s16 temp_r3; + s16 temp_r3_2; + + temp_r3 = Hu3DGLightCreate(0.0f, 1000.0f, 0.0f, 0.0f, 0.9f, -0.1f, 0xFF, 0x64, 0xC8); + Hu3DGLightInfinitytSet(temp_r3); + Hu3DGLightStaticSet(temp_r3, 1); + spC.r = 0xCD; + spC.g = 0x32; + spC.b = 0x96; + sp1C.x = sp1C.y = sp1C.z = 0.0f; + sp10.x = 0.0f; + sp10.y = -1.0f; + sp10.z = 0.0f; + temp_r3_2 = Hu3DGLightCreateV(&sp1C, &sp10, &spC); + Hu3DGLightInfinitytSet(temp_r3_2); + Hu3DGLightStaticSet(temp_r3_2, 1); + HuPrcCurrentGet()->user_data = (void*) (((temp_r3 << 16) & 0xFFFF0000) | (temp_r3_2 & 0xFFFF)); + var_f31 = 0.0f; + sp8 = var_f31; + while (TRUE) { + sp10.x = cosd(var_f31 - 180.0f); + sp10.y = sind(var_f31); + sp10.z = cosd(var_f31) * sind(var_f31); + var_f31 += 3.0f + 6.0f * frand8() * 0.003921569f; + if (var_f31 >= 360.0f) { + var_f31 -= 360.0f; + } + Hu3DGLightPosSetV(temp_r3_2, &sp1C, &sp10); + HuPrcVSleep(); + } +} + +static void fn_1_7888(void) { + Vec sp8F8[105]; + Vec sp40C[105]; + float sp268[105]; + float spC4[105]; + u8 sp58[105]; + Vec sp4C; + float sp40[3] = { 270.0f, 0.0f, 90.0f }; + float sp28[2]; + float var_f31; + char sp30[16]; + s16 sp20[4]; + s16 sp18[4]; + s16 sp10[4]; + s16 sp8[4]; + u16 var_r26; + u16 var_r24; + s16 var_r28; + s16 var_r27; + s16 var_r22; + s16 var_r21; + s16 var_r20; + s16 var_r23; + s32 var_r25; + s32 i; + s32 j; + s32 k; + + fn_1_6CF8(); + HuWinMesMaxSizeGet(1, sp28, MAKE_MESSID(32, 8)); + var_r21 = HuWinCreate(-10000.0f, 32.0f, sp28[0], sp28[1], 1); + HuWinMesSet(var_r21, MAKE_MESSID(32, 8)); + HuWinMesSpeedSet(var_r21, 0); + BoardModelMotionStart(lbl_1_bss_274, 3, 0x40000001); + for (i = 0; i < 4; i++) { + sp20[i] = 0; + sp18[i] = 0; + } + BoardModelPosGet(lbl_1_bss_274, &sp4C); + var_r20 = 48; + for (i = 0; i < 120; i++) { + if (--var_r20 == 0) { + var_r20 = 48; + for (j = 0; j < 4; j++) { + if (j != lbl_1_bss_282) { + HuAudPlayerVoicePlay(j, 0x130); + } + } + } + for (j = 0; j < 4; j++) { + if (j == lbl_1_bss_282) { + continue; + } + if (GWPlayer[j].com) { + switch (GWPlayer[j].diff) { + case 0: + var_r28 = 12; + break; + case 1: + var_r28 = 22; + break; + case 2: + var_r28 = 50; + break; + case 3: + var_r28 = 1000; + break; + } + if (frandmod(100) < var_r28) { + var_r26 = 0x100; + } else { + var_r26 = 0; + } + } else { + var_r24 = GWPlayer[j].port; + var_r26 = HuPadBtnDown[var_r24]; + } + if (var_r26 & 0x100) { + sp20[j]++; + } + if (sp18[j] != 0) { + if (BoardPlayerMotionEndCheck(j)) { + sp18[j] = 0; + BoardPlayerMotionStart(j, 1, 0x40000001); + } + } else if (var_r26 & 0x100) { + sp18[j] = 1; + BoardPlayerMotionStart(j, lbl_1_bss_114[j][2], 0); + } + } + HuPrcVSleep(); + } + for (i = 0; i < 4; i++) { + if (i == lbl_1_bss_282) { + continue; + } + BoardPlayerMotionStart(i, lbl_1_bss_114[i][3], 0); + OSReport("%d:%dhit ", i, sp20[i]); + omVibrate(i, 12, 4, 2); + } + OSReport("\n"); + HuWinKill(var_r21); + var_r27 = 0; + var_r23 = GWSystem.turn; + if (var_r23 <= 5) { + var_r25 = 15; + } else if (var_r23 <= 15) { + var_r25 = 25; + } else if (var_r23 <= 25) { + var_r25 = 27; + } else if (var_r23 <= 35) { + var_r25 = 30; + } else if (var_r23 <= 45) { + var_r25 = 32; + } else { + var_r25 = 35; + } + for (i = 0; i < 4; i++) { + if (i == lbl_1_bss_282) { + continue; + } + j = 0; + while (TRUE) { + if (lbl_1_data_424[j][0] == -1) { + sp8[i] = lbl_1_data_424[j][1]; + break; + } else if (sp20[i] <= lbl_1_data_424[j][0]) { + sp8[i] = lbl_1_data_424[j][1]; + break; + } + j++; + } + sp10[i] = var_r25 - sp8[i]; + if (BoardPlayerCoinsGet(i) < sp10[i]) { + sp10[i] = BoardPlayerCoinsGet(i); + } + var_r27 += sp10[i]; + BoardPlayerCoinsAdd(i, -sp10[i]); + OSReport("%d:%dlost ", i, sp10[i]); + } + OSReport("\n"); + for (i = 0; i < var_r27; i++) { + lbl_1_bss_13C[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), 0, 1); + BoardModelVisibilitySet(lbl_1_bss_13C[i], 0); + sp58[i] = 0; + } + for (i = 0; i < 10; i++) { + sp4C.z += 21.0f - i; + BoardModelPosSetV(lbl_1_bss_274, &sp4C); + HuPrcVSleep(); + } + for (i = 0; i < 4; i++) { + if (i == lbl_1_bss_282) { + continue; + } + omVibrate(i, 12, 4, 2); + HuAudPlayerVoicePlay(i, 0x131); + } + HuAudFXPlay(0x4E); + var_r28 = 0; + var_r24 = var_r27; + while (TRUE) { + if (var_r28 == 0) { + var_r22 = 0; + for (i = 0; i < 4; i++) { + if (i == lbl_1_bss_282) { + continue; + } + for (j = 0; j < 3; j++) { + if (sp10[i] == 0) { + continue; + } + sp10[i]--; + var_r24--; + for (k = 0; k < var_r27; k++) { + if (sp58[k] == 0) { + break; + } + } + if (k == var_r27) { + OSReport("\x82\xB1\x82\xA2\x82\xF1\x82\xAA\x8F\x6F\x82\xB9\x82\xC8\x82\xA2 total %d\n", var_r27); + while (TRUE) { + HuPrcVSleep(); + } + } + HuAudFXPlay(0x12); + sp58[k] = 1; + BoardPlayerPosGet(i, &sp8F8[k]); + sp8F8[k].y += 180.0f; + BoardModelVisibilitySet(lbl_1_bss_13C[k], 1); + BoardModelPosSetV(lbl_1_bss_13C[k], &sp8F8[k]); + sp40C[k].x = 10.0 * sind(sp40[var_r22] - 20.0f + 40.0f * j); + sp40C[k].z = 10.0 * cosd(sp40[var_r22] - 20.0f + 40.0f * j); + sp40C[k].y = 6.0f + 6.0f * frand8() * 0.003921569f; + sp268[k] = 0.0f; + spC4[k] = 360.0f * frand8() * 0.003921569f; + } + var_r22++; + } + var_r28 = 8; + } else { + var_r28--; + } + var_r26 = 0; + for (i = 0; i < var_r27; i++) { + if (sp58[i] == 0) { + continue; + } + var_r26++; + sp8F8[i].x += sp40C[i].x; + sp8F8[i].z += sp40C[i].z; + sp8F8[i].y += sp40C[i].y - sp268[i] * sp268[i] * 0.25f * 0.075f; + BoardModelPosSetV(lbl_1_bss_13C[i], &sp8F8[i]); + BoardModelRotYSet(lbl_1_bss_13C[i], spC4[i]); + sp268[i] += 1.0f; + spC4[i] += 12.0f; + if (spC4[i] >= 360.0f) { + spC4[i] -= 360.0f; + } + if (sp8F8[i].y < -450.0f) { + sp58[i] = 0; + BoardModelVisibilitySet(lbl_1_bss_13C[i], 0); + } + } + if (var_r26 == 0 && var_r24 == 0) { + break; + } + HuPrcVSleep(); + } + fn_1_7300(); + sprintf(sp30, "%d", var_r27); + BoardWinCreate(2, MAKE_MESSID(32, 9), 9); + BoardWinInsertMesSet(MAKE_MESSID_PTR(sp30), 0); + BoardWinWait(); + BoardWinKill(); + BoardPlayerMotBlendSet(lbl_1_bss_282, 0, 0xF); + while (!BoardPlayerMotBlendCheck(lbl_1_bss_282)) { + HuPrcVSleep(); + } + BoardPlayerIdleSet(lbl_1_bss_282); + BoardPlayerPosGet(lbl_1_bss_282, &sp4C); + for (i = 0; i < var_r27; i++) { + BoardModelVisibilitySet(lbl_1_bss_13C[i], 1); + sp8F8[i].x = sp4C.x - 25.0f + 50.0f * frand8() * 0.003921569f; + sp8F8[i].y = sp4C.y + 1200.0f + 130.0f * i + 60.0f * frand8() * 0.003921569f; + sp8F8[i].z = sp4C.z - 25.0f + 50.0f * frand8() * 0.003921569f; + BoardModelPosSetV(lbl_1_bss_13C[i], &sp8F8[i]); + } + var_f31 = -4.0f; + var_r28 = 0; + while (TRUE) { + for (i = 0; i < var_r27; i++) { + if (i < var_r28) { + continue; + } + sp8F8[i].y += var_f31; + spC4[i] += 45.0f; + BoardModelPosSetV(lbl_1_bss_13C[i], &sp8F8[i]); + BoardModelRotYSet(lbl_1_bss_13C[i], spC4[i]); + if (sp8F8[i].y <= sp4C.y + 180.0f) { + CharModelCoinEffectCreate(1, &sp8F8[i]); + BoardModelVisibilitySet(lbl_1_bss_13C[i], 0); + var_r28++; + BoardPlayerCoinsAdd(lbl_1_bss_282, 1); + HuAudFXPlay(7); + omVibrate(lbl_1_bss_282, 12, 6, 6); + } + } + var_f31 *= 1.05f; + if (var_f31 < -40.0f) { + var_f31 = -40.0f; + } + if (var_r28 == var_r27) { + BoardPlayerMotionShiftSet(lbl_1_bss_282, 7, 0.0f, 10.0f, 0); + break; + } + HuPrcVSleep(); + } + while (!BoardPlayerMotionEndCheck(lbl_1_bss_282)) { + HuPrcVSleep(); + } + HuPrcSleep(30); + for (i = 0; i < var_r27; i++) { + BoardModelKill(lbl_1_bss_13C[i]); + } + BoardPlayerMotBlendSet(lbl_1_bss_282, 0xB4, 0xF); + while (!BoardPlayerMotBlendCheck(lbl_1_bss_282)) { + HuPrcVSleep(); + } + BoardPlayerIdleSet(lbl_1_bss_282); + BoardWinCreate(2, MAKE_MESSID(32, 10), 9); + BoardWinWait(); + BoardWinKill(); + BoardAudSeqFadeOut(1, 1000); + while (msmMusGetStatus(1) != 0) { + HuPrcVSleep(); + } + BoardAudSeqPause(0, 0, 1000); +} + +static void fn_1_8A60(void) { + Vec sp7C[3]; + Vec sp58[3]; + Vec sp4C; + Vec sp40; + float sp34[3]; + float sp28[3]; + float sp1C[3] = { 315.0f, 0.0f, 45.0f }; + char sp10[12]; + float var_f31; + float var_f30; + s16 sp8[4]; + s16 var_r30; + s32 temp_r27; + s32 var_r28; + s32 var_r29; + s32 i; + + fn_1_6CF8(); + lbl_1_bss_13A = 0; + BoardModelMotionStart(lbl_1_bss_274, 3, 0x40000001); + BoardModelPosGet(lbl_1_bss_274, &sp4C); + for (i = 0; i < 120; i++) { + HuPrcVSleep(); + } + for (i = 0; i < 4; i++) { + if (i == lbl_1_bss_282) { + continue; + } + BoardPlayerMotionStart(i, lbl_1_bss_114[i][3], 0); + omVibrate(i, 12, 4, 2); + } + var_r29 = 0; + for (i = 0; i < 4; i++) { + if (i == lbl_1_bss_282) { + continue; + } + if (GWStarsGet(i) > 0) { + sp8[i] = 1; + var_r29++; + } else { + sp8[i] = 0; + } + BoardPlayerStarsAdd(i, -sp8[i]); + } + OSReport("Total Star %d\n", var_r29); + for (i = 0; i < var_r29; i++) { + lbl_1_bss_13C[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 8), NULL, 0); + BoardModelAttrSet(lbl_1_bss_13C[i], 0x40000002); + BoardModelVisibilitySet(lbl_1_bss_13C[i], 0); + } + for (i = 0; i < 10; i++) { + sp4C.z += 21.0f - i; + BoardModelPosSetV(lbl_1_bss_274, &sp4C); + HuPrcVSleep(); + } + for (i = 0; i < 4; i++) { + if (i == lbl_1_bss_282) { + continue; + } + omVibrate(i, 12, 4, 2); + HuAudPlayerVoicePlay(i, 0x131); + } + HuAudFXPlay(0x4E); + var_r30 = 0; + for (i = 0; i < 4; i++) { + if (i == lbl_1_bss_282 || sp8[i] == 0) { + continue; + } + BoardPlayerPosGet(i, &sp7C[var_r30]); + sp7C[var_r30].y += 180.0f; + sp34[var_r30] = 0.0f; + sp58[var_r30].x = 10.0 * sind(sp1C[var_r30]); + sp58[var_r30].z = 10.0 * cosd(sp1C[var_r30]); + sp58[var_r30].y = 6.0f + 6.0f * frand8() * 0.003921569f; + sp34[var_r30] = 360.0f * frand8() * 0.003921569f; + sp28[var_r30] = 0.0f; + BoardModelVisibilitySet(lbl_1_bss_13C[var_r30], 1); + lbl_1_bss_134[var_r30] = fn_1_9F50(); + var_r30++; + } + while (TRUE) { + var_r30 = 0; + for (i = 0; i < var_r29; i++) { + sp7C[i].x += sp58[i].x; + sp7C[i].z += sp58[i].z; + sp7C[i].y += sp58[i].y - sp28[i] * sp28[i] * 0.25f * 0.075f; + BoardModelPosSetV(lbl_1_bss_13C[i], &sp7C[i]); + BoardModelRotYSet(lbl_1_bss_13C[i], sp34[i]); + sp28[i] += 1.0f; + sp34[i] += 12.0f; + if (sp34[i] >= 360.0f) { + sp34[i] -= 360.0f; + } + if (sp7C[i].y < -500.0f) { + BoardModelVisibilitySet(lbl_1_bss_13C[i], 0); + var_r30++; + } + Hu3DParManPosSet(lbl_1_bss_134[i], sp7C[i].x, sp7C[i].y + -70.0f, sp7C[i].z); + } + if (var_r30 == var_r29) { + break; + } + HuPrcVSleep(); + } + fn_1_7300(); + sprintf(sp10, "%d", var_r29); + BoardWinCreate(2, MAKE_MESSID(32, 11), 9); + BoardWinInsertMesSet(MAKE_MESSID_PTR(sp10), 0); + BoardWinWait(); + BoardWinKill(); + BoardAudSeqFadeOut(1, 1000); + BoardPlayerMotBlendSet(lbl_1_bss_282, 0, 0xF); + while (!BoardPlayerMotBlendCheck(lbl_1_bss_282)) { + HuPrcVSleep(); + } + BoardPlayerIdleSet(lbl_1_bss_282); + BoardPlayerPosGet(lbl_1_bss_282, &sp4C); + for (i = 0; i < var_r29; i++) { + BoardModelVisibilitySet(lbl_1_bss_13C[i], 1); + sp7C[i] = sp4C; + sp7C[i].y += 600.0f; + BoardModelPosSetV(lbl_1_bss_13C[i], &sp7C[i]); + sp34[i] = 0.0f; + BoardModelRotYSet(lbl_1_bss_13C[i], sp34[i]); + } + for (i = 0; i < var_r29; i++) { + var_f31 = -4.0f; + HuAudFXPlay(0x338); + HuAudFXPlay(0x353); + while (TRUE) { + sp7C[i].y += var_f31; + BoardModelPosSetV(lbl_1_bss_13C[i], &sp7C[i]); + Hu3DParManPosSet(lbl_1_bss_134[i], sp7C[i].x, sp7C[i].y + -70.0f, sp7C[i].z); + if (sp7C[i].y <= sp4C.y + 270.0f) { + sp7C[i].y = sp4C.y + 270.0f; + BoardModelPosSetV(lbl_1_bss_13C[i], &sp7C[i]); + Hu3DParManPosSet(lbl_1_bss_134[i], sp7C[i].x, sp7C[i].y + -70.0f, sp7C[i].z); + BoardModelAttrReset(lbl_1_bss_13C[i], 0x40000002); + while (BoardModelMotionTimeGet(lbl_1_bss_13C[i]) < BoardModelMotionMaxTimeGet(lbl_1_bss_13C[i]) - 10.0f) { + HuPrcVSleep(); + } + var_f31 = -5.0f; + var_f30 = 1.0f; + HuAudFXPlay(0x339); + for (var_r28 = 0; var_r28 < 30; var_r28++) { + var_f30 -= 0.033333335f; + sp40.x = sp40.y = sp40.z = var_f30; + BoardModelScaleSetV(lbl_1_bss_13C[i], &sp40); + sp7C[i].y += var_f31; + BoardModelPosSetV(lbl_1_bss_13C[i], &sp7C[i]); + sp34[i] += 25.0f; + BoardModelRotYSet(lbl_1_bss_13C[i], sp34[i]); + Hu3DParManPosSet(lbl_1_bss_134[i], sp7C[i].x, sp7C[i].y + -70.0f, sp7C[i].z); + HuPrcVSleep(); + } + omVibrate(lbl_1_bss_282, 12, 0xC, 0); + BoardPlayerStarsAdd(lbl_1_bss_282, 1); + BoardModelVisibilitySet(lbl_1_bss_13C[i], 0); + fn_1_A074(lbl_1_bss_134[i]); + break; + } + var_f31 *= 1.05f; + if (var_f31 < -20.0f) { + var_f31 = -20.0f; + } + HuPrcVSleep(); + } + } + temp_r27 = HuAudSStreamPlay(6); + BoardPlayerMotionShiftSet(lbl_1_bss_282, 7, 0.0f, 10.0f, 0); + while (!BoardPlayerMotionEndCheck(lbl_1_bss_282)) { + HuPrcVSleep(); + } + HuPrcSleep(30); + while (HuAudSStreamStatGet(temp_r27) != 0) { + HuPrcVSleep(); + } + BoardAudSeqPause(0, 0, 1000); + for (i = 0; i < var_r29; i++) { + BoardModelKill(lbl_1_bss_13C[i]); + } + BoardPlayerMotBlendSet(lbl_1_bss_282, 0xB4, 0xF); + while (!BoardPlayerMotBlendCheck(lbl_1_bss_282)) { + HuPrcVSleep(); + } + BoardPlayerIdleSet(lbl_1_bss_282); + BoardWinCreate(2, MAKE_MESSID(32, 10), 9); + BoardWinWait(); + BoardWinKill(); +} + +static void fn_1_98A0(void) { + Vec sp14; + Vec sp8; + float var_f30; + float var_f31; + s32 i; + + BoardModelPosGet(lbl_1_bss_274, &sp14); + var_f30 = BoardModelRotYGet(lbl_1_bss_274); + BoardModelMotionShiftSet(lbl_1_bss_274, 2, 0.0f, 25.0f, 0x40000001); + for (i = 0; i < 25; i++) { + var_f30 += 7.2f; + BoardModelRotYSet(lbl_1_bss_274, var_f30); + HuPrcVSleep(); + } + BoardModelRotYSet(lbl_1_bss_274, 180.0f); + BoardModelMotionTimeSet(lbl_1_bss_27C, 0.0f); + BoardModelAttrReset(lbl_1_bss_27C, 0x40000002); + HuAudFXPlay(0x464); + HuAudFXPlay(0x4E); + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[4]), lbl_1_data_3CC[4], &sp8); + var_f31 = 255.0f; + while (TRUE) { + sp14.z -= 10.0f; + if (sp14.z <= sp8.z + 200.0f) { + var_f31 -= 20.0f; + if (var_f31 <= 0.0f) { + break; + } + BoardModelAlphaSet(lbl_1_bss_274, var_f31); + } + BoardModelPosSetV(lbl_1_bss_274, &sp14); + if (BoardModelMotionTimeGet(lbl_1_bss_27C) >= 20.0f) { + BoardModelAttrSet(lbl_1_bss_27C, 0x40000002); + } + HuPrcVSleep(); + } + BoardModelAlphaSet(lbl_1_bss_274, 0); + BoardModelMotionTimeSet(lbl_1_bss_27C, 20.0f); + BoardModelAttrSet(lbl_1_bss_27C, 0x40000002); + fn_1_9B34(); +} + +static void fn_1_9B34(void) { + BoardModelKill(lbl_1_bss_274); + lbl_1_bss_0->unk01 = 0; + BoardModelMotionTimeSet(lbl_1_bss_280, 0.0f); + BoardModelAttrSet(lbl_1_bss_280, 0x40000002); + BoardModelMotionTimeSet(lbl_1_bss_27E, 0.0f); + BoardModelAttrSet(lbl_1_bss_280, 0x40000002); +} + +static void fn_1_9BDC(void) { + HuPrcSleep(240); + BoardMusStart(1, 0x1F, 0x7F, 0); + HuPrcEnd(); +} + +static void fn_1_9C18(void) { + Vec sp14; + Vec sp8; + s32 temp_r31; + + sp14.x = -150.0f; + sp14.y = 0.0f; + sp14.z = 120.0f; + sp8.x = -45.0f; + sp8.y = 0.0f; + sp8.z = 0.0f; + BoardCameraMotionStartEx(lbl_1_bss_14[4], &sp8, &sp14, 2300.0f, -1.0f, 30); + BoardCameraMotionWait(); + if (lbl_1_bss_0->unk01 == 1) { + BoardModelMotionTimeSet(lbl_1_bss_280, 0.0f); + BoardModelMotionSpeedSet(lbl_1_bss_280, 0.5f); + BoardModelAttrReset(lbl_1_bss_280, 0x40000002); + } + HuAudFXPlay(0x461); + temp_r31 = HuAudFXPlay(0x462); + BoardModelAttrReset(lbl_1_bss_27E, 0x40000002); + HuPrcSleep(110); + BoardModelAttrSet(lbl_1_bss_27E, 0x40000002); + HuAudFXStop(temp_r31); + switch (lbl_1_bss_0->unk01) { + case 1: + case 2: + HuAudFXPlay(0x46A); + break; + case 3: + HuAudFXPlay(0x46B); + BoardAudSeqPause(0, 1, 1000); + HuPrcChildCreate(fn_1_9BDC, 0x2003, 0x1000, 0, boardMainProc); + break; + } + HuPrcSleep(9); + sp14.x = -150.0f; + sp14.y = 250.0f; + sp14.z = 120.0f; + sp8.x = -5.0f; + sp8.y = 0.0f; + sp8.z = 0.0f; + BoardCameraMotionStartEx(lbl_1_bss_14[4], &sp8, &sp14, 1800.0f, -1.0f, 30); + BoardCameraMotionWait(); + HuPrcSleep(30); +} + +static void fn_1_9EA8(void) { + lbl_1_bss_278 = NULL; +} + +void fn_1_9EBC(void) { + lbl_1_bss_282 = GWSystem.player_curr; + lbl_1_bss_278 = HuPrcCreate(fn_1_62B0, 0x2004, 0x2000, 0); + HuPrcDestructorSet2(lbl_1_bss_278, fn_1_9EA8); + while (lbl_1_bss_278) { + HuPrcVSleep(); + } + BoardEventFlagReset(); +} + +static HsfanimStruct00 lbl_1_data_49C = { + 0x001E, + { 0x00, 0x00 }, // padding? + 3.3f, + 70.0f, + 7.0f, + { 0.0f, -0.05f, 0.0f }, + 2.0f, + 1.0f, + 20.0f, + 0.98f, + 0x0002, + { + { 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0x40, 0xFF }, + { 0x00, 0x00, 0x00, 0x00 }, + { 0x00, 0x00, 0x00, 0x00 } + }, + { + { 0xFF, 0x80, 0x80, 0x00 }, + { 0xFF, 0x40, 0x20, 0x00 }, + { 0x00, 0x00, 0x00, 0x00 }, + { 0x00, 0x00, 0x00, 0x00 } + } +}; + +static s16 fn_1_9F50(void) { + void *var_r29; + s16 temp_r3; + s16 temp_r3_2; + + if (lbl_1_bss_100 == NULL) { + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 1), MEMORY_DEFAULT_NUM, HEAP_DATA); + lbl_1_bss_100 = HuSprAnimRead(var_r29); + HuSprAnimLock(lbl_1_bss_100); + } + temp_r3 = Hu3DParManCreate(lbl_1_bss_100, 0x64, &lbl_1_data_49C); + Hu3DParManAttrSet(temp_r3, 0x64); + Hu3DParManRotSet(temp_r3, 90.0f, 0.0f, 0.0f); + temp_r3_2 = Hu3DParManModelIDGet(temp_r3); + Hu3DParticleBlendModeSet(temp_r3_2, 1); + Hu3DModelLayerSet(temp_r3_2, 2); + lbl_1_bss_13A++; + return temp_r3; +} + +static void fn_1_A074(s16 arg0) { + if (arg0 == -1) { + return; + } + Hu3DParManKill(arg0); + if (--lbl_1_bss_13A == 0) { + HuSprAnimKill(lbl_1_bss_100); + lbl_1_bss_100 = NULL; + } +} diff --git a/src/REL/w07Dll/boo_event.c b/src/REL/w07Dll/boo_event.c new file mode 100644 index 00000000..3a89e85b --- /dev/null +++ b/src/REL/w07Dll/boo_event.c @@ -0,0 +1,1198 @@ +#include "REL/w04Dll.h" +#include "game/audio.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/memory.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/board/audio.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/space.h" +#include "game/board/ui.h" +#include "game/board/window.h" +#include "game/frand.h" + +#include "dolphin.h" +#include "ext_math.h" + +typedef struct { + /* 0x00 */ char unk00[0x50]; + /* 0x50 */ u32 unk50; // pointer? + /* 0x54 */ s32 unk54; +} UnkParticleDataStruct; // Size unknown + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06; + /* 0x08 */ s16 unk08; + /* 0x0A */ s16 unk0A; + /* 0x0C */ s16 unk0C; + /* 0x0E */ s16 unk0E; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ Vec unk20; + /* 0x2C */ Process *unk2C; +} BssE4Data; // Size 0x30 + +static void fn_1_20EC(void); +static void fn_1_28BC(void); +static void fn_1_2B8C(void); +static void fn_1_2C10(void); +static void fn_1_2E60(s16 arg0); +static void fn_1_2EE8(s32 arg0); +static s32 fn_1_2F54(u32 arg0); +static BssE4Data *fn_1_2FBC(s16 arg0); +static void fn_1_2FDC(void); +static void fn_1_30A4(void); +static void fn_1_38D8(void); +static s32 fn_1_3C9C(void); +static void fn_1_45A8(void); +static void fn_1_4630(void); +static s32 fn_1_4680(s16 arg0); +static void fn_1_4848(void); +static void fn_1_5018(void); +static void fn_1_52A0(s16 arg0, Vec *arg1); +static void fn_1_55A0(void); +static void fn_1_5648(void); +static void fn_1_5828(void); +static s16 fn_1_58A4(Vec *arg0); +static void fn_1_5980(s16 arg0); +static void fn_1_59C4(omObjData *arg0); +static void fn_1_5A2C(ModelData *model, ParticleData *particle, Mtx matrix); + +static s16 lbl_1_bss_FA; +static s16 lbl_1_bss_F4[3]; +static Process *lbl_1_bss_E4[4]; +static Process *lbl_1_bss_D4[4]; +static omObjData *lbl_1_bss_C4[4]; +static s16 lbl_1_bss_C2; +static s16 lbl_1_bss_BA[4]; +static s16 lbl_1_bss_B2[4]; +static s16 lbl_1_bss_B0; +static Vec lbl_1_bss_80[4]; +static s16 lbl_1_bss_7C; +static s32 lbl_1_bss_78; +static s32 lbl_1_bss_74; +static s16 lbl_1_bss_70; +static s32 lbl_1_bss_6C; +static s16 lbl_1_bss_6A; +static s16 lbl_1_bss_52[4][3]; +static s16 lbl_1_bss_50; +static AnimData *lbl_1_bss_4C; +static Process *lbl_1_bss_48; + +static s32 lbl_1_data_2D0[8] = { + DATADIR_MARIOMOT, + DATADIR_LUIGIMOT, + DATADIR_PEACHMOT, + DATADIR_YOSHIMOT, + DATADIR_WARIOMOT, + DATADIR_DONKEYMOT, + DATADIR_DAISYMOT, + DATADIR_WALUIGIMOT +}; + +static s32 lbl_1_data_2F0 = 28; + +static s32 lbl_1_data_2F4[8] = { + DATA_MAKE_NUM(DATADIR_W04, 35), + DATA_MAKE_NUM(DATADIR_W04, 36), + DATA_MAKE_NUM(DATADIR_W04, 37), + DATA_MAKE_NUM(DATADIR_W04, 38), + DATA_MAKE_NUM(DATADIR_W04, 39), + DATA_MAKE_NUM(DATADIR_W04, 40), + DATA_MAKE_NUM(DATADIR_W04, 41), + DATA_MAKE_NUM(DATADIR_W04, 42) +}; + +static s32 lbl_1_data_314[8] = { + DATA_MAKE_NUM(DATADIR_W04, 43), + DATA_MAKE_NUM(DATADIR_W04, 44), + DATA_MAKE_NUM(DATADIR_W04, 45), + DATA_MAKE_NUM(DATADIR_W04, 46), + DATA_MAKE_NUM(DATADIR_W04, 47), + DATA_MAKE_NUM(DATADIR_W04, 48), + DATA_MAKE_NUM(DATADIR_W04, 49), + DATA_MAKE_NUM(DATADIR_W04, 50) +}; + +static char *lbl_1_data_348[] = { + "kan1", "kan2", "kan3", "kan4" +}; + +static float lbl_1_data_358[] = { + -150.00001f, -170.00001f, -30.0f, -220.0f +}; + +static void fn_1_20EC(void) { + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + s32 temp_r30; + s32 temp_r28; + BoardSpace *var_r27; + BoardMapObject *var_r26; + s32 i; + s32 j; + + temp_r30 = GWSystem.player_curr; + lbl_1_bss_70 = 0; + lbl_1_bss_7C = 0; + temp_r28 = lbl_1_data_2D0[GWPlayer[temp_r30].character]; + lbl_1_bss_52[temp_r30][0] = BoardPlayerMotionCreate(temp_r30, temp_r28 | lbl_1_data_2F0); + lbl_1_bss_52[temp_r30][1] = BoardPlayerMotionCreate(temp_r30, lbl_1_data_2F4[GWPlayer[temp_r30].character]); + for (i = 0; i < 4; i++) { + if (i != temp_r30) { + lbl_1_bss_52[i][0] = BoardPlayerMotionCreate(i, temp_r28 | lbl_1_data_2F0); + lbl_1_bss_52[i][1] = BoardPlayerMotionCreate(i, lbl_1_data_2F4[GWPlayer[i].character]); + lbl_1_bss_52[i][2] = BoardPlayerMotionCreate(i, lbl_1_data_314[GWPlayer[i].character]); + } + } + for (i = 0; i < 3; i++) { + lbl_1_bss_F4[i] = BoardModelCreate(0x70000, NULL, 1); + BoardModelLayerSet(lbl_1_bss_F4[i], 2); + BoardModelVisibilitySet(lbl_1_bss_F4[i], 0); + } + var_r26 = &lbl_1_data_0[8]; + lbl_1_bss_FA = lbl_1_bss_14[8]; + BoardModelPosSetV(lbl_1_bss_FA, &var_r26->pos); + BoardModelRotSetV(lbl_1_bss_FA, &var_r26->rot); + BoardModelVisibilitySet(lbl_1_bss_FA, 1); + BoardModelAlphaSet(lbl_1_bss_FA, 0); + var_f31 = 0.0f; + for (i = 0; i < 4; i++) { + lbl_1_bss_B2[i] = 0; + lbl_1_bss_D4[i] = NULL; + } + fn_1_5648(); + fn_1_2C10(); + BoardRollDispSet(0); + BoardPlayerMotBlendSet(temp_r30, 180, 15); + BoardCameraViewSet(2); + while (!BoardPlayerMotBlendCheck(temp_r30)) { + HuPrcVSleep(); + } + BoardCameraMotionWait(); + BoardPlayerMotionShiftSet(temp_r30, lbl_1_bss_52[temp_r30][0], 0.0f, 5.0f, 0); + HuAudPlayerVoicePlay(temp_r30, 0x128); + BoardModelPosGet(lbl_1_bss_14[3], &sp20); + BoardModelPosSetV(lbl_1_bss_FA, &sp20); + BoardModelVisibilitySet(lbl_1_bss_FA, 1); + for (i = 0; i < 60; i++) { + var_f31 += 4.25f; + BoardModelAlphaSet(lbl_1_bss_FA, var_f31); + HuPrcVSleep(); + } + BoardModelAlphaSet(lbl_1_bss_FA, 0xFF); + HuAudFXPlay(0x4C); + BoardPlayerIdleSet(temp_r30); + HuPrcSleep(8); + BoardWinCreate(2, MAKE_MESSID(32, 1), 3); + BoardWinWait(); + BoardWinKill(); + var_r27 = BoardSpaceGet(0, GWPlayer[temp_r30].space_curr); + lbl_1_bss_74 = lbl_1_bss_78 = var_r27->link[0]; + BoardSpacePosGet(0, lbl_1_bss_78, &sp14); + BoardModelPosGet(lbl_1_bss_FA, &sp20); + while (fn_1_1130(lbl_1_bss_FA, atan2d(sp14.x - sp20.x, sp14.z - sp20.z), 2.0f) == 0) { + HuPrcVSleep(); + } + PSVECSubtract(&sp14, &sp20, &sp8); + PSVECScale(&sp8, &sp8, 0.022222223f); + for (i = 0; i < 45; i++) { + PSVECAdd(&sp20, &sp8, &sp20); + BoardModelPosSetV(lbl_1_bss_FA, &sp20); + HuPrcVSleep(); + } + BoardAudSeqPause(0, 1, 1000); + BoardModelPosSetV(lbl_1_bss_FA, &sp14); + BoardPlayerPosGet(temp_r30, &sp14); + while (fn_1_1130(lbl_1_bss_FA, atan2d(sp14.x - sp20.x, sp14.z - sp20.z), 3.0f) == 0) { + HuPrcVSleep(); + } + fn_1_2EE8(1); + while (fn_1_2F54(0) == 0) { + HuPrcVSleep(); + } + fn_1_2FBC(0)->unk00 = 2; + while (fn_1_1130(lbl_1_bss_FA, 90.0f, 3.0f) == 0) { + HuPrcVSleep(); + } + while (fn_1_2F54(0) == 0) { + HuPrcVSleep(); + } + fn_1_28BC(); + fn_1_2B8C(); + BoardAudSeqPause(0, 0, 1000); + BoardRollDispSet(1); + BoardCameraViewSet(1); + BoardCameraMotionWait(); + BoardPlayerMotionKill(temp_r30, lbl_1_bss_52[temp_r30][0]); + BoardPlayerMotionKill(temp_r30, lbl_1_bss_52[temp_r30][1]); + for (i = 0; i < 4; i++) { + if (i != temp_r30) { + for (j = 0; j < 3; j++) { + BoardPlayerMotionKill(i, lbl_1_bss_52[i][j]); + } + } + } + for (i = 0; i < 3; i++) { + BoardModelKill(lbl_1_bss_F4[i]); + } + fn_1_5828(); + BoardModelVisibilitySet(lbl_1_bss_FA, 0); + HuPrcEnd(); +} + +static void fn_1_28BC(void) { + Vec sp20; + Vec sp14; + Vec sp8; + float temp_f30; + float var_f31; + BoardSpace *var_r30; + s16 var_r29; + s32 var_r31; + s32 i; + Process *var_r27; + float *var_r26; + + var_r27 = HuPrcChildCreate(fn_1_45A8, 0x2001, 0x800, 0, boardMainProc); + HuPrcDestructorSet2(var_r27, fn_1_4630); + var_r26 = (float*) &var_r27->user_data; + lbl_1_bss_C2 = fn_1_4680(lbl_1_bss_78); + var_r29 = 0; + while (var_r29 == 0) { + var_r31 = fn_1_3C9C(); + if (var_r31 != -1) { + var_r30 = BoardSpaceGet(0, var_r31); + if (var_r30->flag & 1) { + lbl_1_bss_50 = var_r31; + } + if (var_r30->flag & 8) { + fn_1_52A0(lbl_1_bss_50, lbl_1_bss_80); + var_r29 = 1; + var_f31 = 255.0f; + HuPrcKill(var_r27); + } + BoardSpacePosGet(0, var_r31, &sp20); + BoardModelPosGet(lbl_1_bss_FA, &sp14); + temp_f30 = atan2d(sp20.x - sp14.x, sp20.z - sp14.z); + BoardModelRotYSet(lbl_1_bss_FA, temp_f30); + PSVECSubtract(&sp20, &sp14, &sp8); + PSVECScale(&sp8, &sp8, 0.022222223f); + *var_r26 = temp_f30 - 180.0f; + fn_1_2EE8(3); + for (i = 0; i < 45; i++) { + PSVECAdd(&sp8, &sp14, &sp14); + BoardModelPosSetV(lbl_1_bss_FA, &sp14); + fn_1_5018(); + if (var_r29 != 0) { + var_f31 -= 5.6666665f; + BoardModelAlphaSet(lbl_1_bss_FA, var_f31); + } + HuPrcVSleep(); + } + BoardModelPosSetV(lbl_1_bss_FA, &sp20); + lbl_1_bss_74 = lbl_1_bss_78; + lbl_1_bss_78 = var_r31; + if (var_r29 != 0) { + BoardModelVisibilitySet(lbl_1_bss_FA, 0); + } + } + HuPrcVSleep(); + } +} + +static void fn_1_2B8C(void) { + s32 i; + + while (fn_1_2F54(4) == 0 || lbl_1_bss_7C != 0) { + fn_1_2EE8(3); + HuPrcVSleep(); + } + HuAudFXStop(lbl_1_bss_6C); + for (i = 0; i < 4; i++) { + fn_1_2E60(i); + } +} + +static void fn_1_2C10(void) { + Vec sp8; + BssE4Data *temp_r31; + s32 i; + + for (i = 0; i < 4; i++) { + temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(BssE4Data), MEMORY_DEFAULT_NUM); + temp_r31->unk04 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 3), NULL, 0); + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[3]), lbl_1_data_348[i], &sp8); + BoardModelLayerSet(temp_r31->unk04, 2); + BoardModelPosSetV(temp_r31->unk04, &sp8); + temp_r31->unk10 = lbl_1_data_358[i]; + BoardModelRotYSet(temp_r31->unk04, temp_r31->unk10); + temp_r31->unk18 = 0.0f; + BoardModelAlphaSet(temp_r31->unk04, temp_r31->unk18); + BoardModelVisibilitySet(temp_r31->unk04, 0); + temp_r31->unk14 = 0.003921569f * frand8() * 360.0f; + temp_r31->unk08 = -1; + temp_r31->unk00 = 0; + temp_r31->unk06 = i; + temp_r31->unk1C = 0.0f; + temp_r31->unk02 = 1; + temp_r31->unk0C = 0; + if (i == 0) { + temp_r31->unk0A = lbl_1_bss_FA; + } else { + temp_r31->unk0A = ((BssE4Data*) lbl_1_bss_E4[i - 1]->user_data)->unk04; + } + lbl_1_bss_E4[i] = HuPrcChildCreate(fn_1_30A4, 0x2003, 0x1000, 0, boardMainProc); + lbl_1_bss_E4[i]->user_data = temp_r31; + temp_r31->unk2C = HuPrcChildCreate(fn_1_2FDC, 0x2002, 0x1000, 0, boardMainProc); + temp_r31->unk2C->user_data = temp_r31; + } +} + +static void fn_1_2E60(s16 arg0) { + BssE4Data *temp_r3; + + temp_r3 = fn_1_2FBC(arg0); + BoardModelKill(temp_r3->unk04); + HuPrcKill(temp_r3->unk2C); + HuPrcKill(lbl_1_bss_E4[arg0]); + HuMemDirectFree(lbl_1_bss_E4[arg0]->user_data); +} + +static void fn_1_2EE8(s32 arg0) { + s32 i; + + for (i = 0; i < 4; i++) { + if (fn_1_2FBC(i)->unk02 != 0) { + fn_1_2FBC(i)->unk00 = arg0; + } + } +} + +static s32 fn_1_2F54(u32 arg0) { + s32 i; + + for (i = 0; i < 4; i++) { + if (arg0 != fn_1_2FBC(i)->unk00) { + break; + } + } + if (i != 4) { + return 0; + } else { + return 1; + } +} + +static BssE4Data *fn_1_2FBC(s16 arg0) { + return lbl_1_bss_E4[arg0]->user_data; +} + +static void fn_1_2FDC(void) { + Vec sp8; + BssE4Data *temp_r31; + + temp_r31 = HuPrcCurrentGet()->user_data; + while (TRUE) { + BoardModelPosGet(temp_r31->unk04, &sp8); + sp8.y = temp_r31->unk1C + 4.0 * sind(temp_r31->unk14); + BoardModelPosSetV(temp_r31->unk04, &sp8); + if (temp_r31->unk08 != -1) { + sp8.y += 50.0f; + BoardPlayerPosSetV(temp_r31->unk08, &sp8); + } + temp_r31->unk14 += 2.0f; + HuPrcVSleep(); + } +} + +static void fn_1_30A4(void) { + Vec sp20; + Vec sp14; + float temp_f31; + BssE4Data *temp_r31; + BoardSpace *var_r28; + Process *var_r27; + s16 var_r29; + s16 temp_r22; + s32 i; + + var_r29 = 0; + temp_r31 = HuPrcCurrentGet()->user_data; + while (TRUE) { + switch (temp_r31->unk00) { + case 0: + case 4: + break; + case 1: + BoardModelPosGet(temp_r31->unk04, &sp20); + BoardMusStart(1, 0x20, 0x7F, 0); + lbl_1_bss_6A = 1; + HuAudFXPlay(0x45F); + temp_r22 = fn_1_58A4(&sp20); + HuPrcSleep(45); + if (temp_r31->unk06 == 0) { + BoardPlayerPosGet(GWSystem.player_curr, &temp_r31->unk20); + temp_r31->unk20.y += 65.0f; + } else { + temp_r31->unk20 = fn_1_2FBC(temp_r31->unk06 - 1)->unk20; + temp_r31->unk20.z -= 300.0f; + } + BoardModelPosGet(lbl_1_bss_14[3], &sp20); + temp_r31->unk1C = sp20.y; + BoardModelVisibilitySet(temp_r31->unk04, 1); + if (temp_r31->unk06 == 0) { + lbl_1_bss_6C = HuAudFXPlay(0x460); + } + for (i = 0; i < 60; i++) { + temp_r31->unk18 += 4.25f; + BoardModelAlphaSet(temp_r31->unk04, temp_r31->unk18); + temp_r31->unk1C += 1.0833334f; + HuPrcVSleep(); + } + fn_1_5980(temp_r22); + BoardModelPosGet(temp_r31->unk04, &sp20); + temp_f31 = atan2d(temp_r31->unk20.x - sp20.x, temp_r31->unk20.z - sp20.z); + while (fn_1_1130(temp_r31->unk04, temp_f31, 5.0f) == 0) { + HuPrcVSleep(); + } + PSVECSubtract(&temp_r31->unk20, &sp20, &sp14); + PSVECScale(&sp14, &sp14, 0.016666668f); + for (i = 0; i < 60; i++) { + PSVECAdd(&sp14, &sp20, &sp20); + BoardModelPosSetV(temp_r31->unk04, &sp20); + HuPrcVSleep(); + } + BoardModelPosSetV(temp_r31->unk04, &temp_r31->unk20); + while (fn_1_1130(temp_r31->unk04, 0.0f, 5.0f) == 0) { + HuPrcVSleep(); + } + if (temp_r31->unk06 == 0) { + i = GWSystem.player_curr; + temp_f31 = BoardPlayerRotYGet(i); + omVibrate(i, 12, 6, 6); + while (TRUE) { + if (temp_f31 > 0.0f) { + temp_f31 -= 2.0f; + if (temp_f31 < 0.0f) { + temp_f31 = 0.0f; + } + } + BoardPlayerRotYSet(i, temp_f31); + BoardPlayerPosGet(i, &sp14); + BoardModelPosGet(temp_r31->unk04, &sp20); + sp14.y += 2.2f; + if (sp14.y > sp20.y + 50.0f) { + sp14.y = sp20.y + 50.0f; + break; + } + BoardPlayerPosSetV(i, &sp14); + HuPrcVSleep(); + } + BoardPlayerPosSetV(i, &sp14); + BoardPlayerRotYSet(i, 0.0f); + BoardPlayerMotionShiftSet(i, lbl_1_bss_52[GWSystem.player_curr][1], 0.0f, 10.0f, 0x40000001); + temp_r31->unk08 = i; + } + if (temp_r31->unk06 == 0) { + BoardModelPosGet(lbl_1_bss_FA, &temp_r31->unk20); + } else { + BoardModelPosGet(fn_1_2FBC(temp_r31->unk06 - 1)->unk04, &temp_r31->unk20); + } + temp_r31->unk00 = 0; + break; + case 2: + while (fn_1_1130(temp_r31->unk04, 90.0f, 3.0f) == 0) { + BoardPlayerRotYSet(temp_r31->unk08, BoardModelRotYGet(temp_r31->unk04)); + HuPrcVSleep(); + } + BoardPlayerRotYSet(temp_r31->unk08, BoardModelRotYGet(temp_r31->unk04)); + temp_r31->unk00 = 0; + break; + case 3: + BoardModelPosGet(temp_r31->unk04, &sp20); + temp_f31 = atan2d(temp_r31->unk20.x - sp20.x, temp_r31->unk20.z - sp20.z); + BoardModelRotYSet(temp_r31->unk04, temp_f31); + if (temp_r31->unk08 != -1) { + BoardPlayerRotYSet(temp_r31->unk08, temp_f31); + } + PSVECSubtract(&temp_r31->unk20, &sp20, &sp14); + PSVECScale(&sp14, &sp14, 0.022222223f); + if (temp_r31->unk0C > 0) { + var_r28 = BoardSpaceGet(0, temp_r31->unk0C); + if (var_r28->flag & 1) { + var_r29 = 1; + if (temp_r31->unk08 != -1) { + var_r27 = HuPrcChildCreate(fn_1_38D8, 0x2002, 0x1000, 0, boardMainProc); + var_r27->user_data = temp_r31; + lbl_1_bss_7C++; + } + } + } + for (i = 0; i < 45; i++) { + PSVECAdd(&sp20, &sp14, &sp20); + BoardModelPosSetV(temp_r31->unk04, &sp20); + if (temp_r31->unk08 != -1) { + BoardPlayerPosSetV(temp_r31->unk08, &sp20); + } + if (var_r29 != 0) { + if (temp_r31->unk06 == 2 && lbl_1_bss_6A != 0) { + BoardAudSeqFadeOut(1, 1000); + lbl_1_bss_6A = 0; + } + temp_r31->unk18 -= 5.6666665f; + BoardModelAlphaSet(temp_r31->unk04, temp_r31->unk18); + } + HuPrcVSleep(); + } + temp_r31->unk0E = temp_r31->unk0C; + if (temp_r31->unk06 == 0) { + temp_r31->unk0C = lbl_1_bss_74; + } else { + temp_r31->unk0C = fn_1_2FBC(temp_r31->unk06 - 1)->unk0E; + } + BoardModelPosSetV(temp_r31->unk04, &temp_r31->unk20); + if (temp_r31->unk08 != -1) { + BoardPlayerPosSetV(temp_r31->unk08, &temp_r31->unk20); + } + if (temp_r31->unk06 == 0) { + BoardModelPosGet(lbl_1_bss_FA, &temp_r31->unk20); + } else { + BoardModelPosGet(fn_1_2FBC(temp_r31->unk06 - 1)->unk04, &temp_r31->unk20); + } + if (var_r29 != 0) { + BoardModelVisibilitySet(temp_r31->unk04, 0); + temp_r31->unk02 = 0; + temp_r31->unk00 = 4; + } else { + temp_r31->unk00 = 0; + } + break; + } + HuPrcVSleep(); + } +} + +static void fn_1_38D8(void) { + Vec sp24; + Vec sp18; + Vec spC; + float var_f28; + float temp_f26; + float var_f29; + BssE4Data *temp_r30; + s16 temp_r31; + + OSReport("Getoff\n"); + temp_r30 = HuPrcCurrentGet()->user_data; + temp_r31 = temp_r30->unk08; + temp_r30->unk08 = -1; + BoardPlayerMotionShiftSet(temp_r31, 4, 0.0f, 5.0f, 0); + sp18 = lbl_1_bss_80[temp_r31]; + GWPlayer[temp_r31].space_curr = lbl_1_bss_B0; + BoardPlayerPosGet(temp_r31, &sp24); + var_f28 = atan2d(sp18.x - sp24.x, sp18.z - sp24.z); + BoardPlayerRotYSet(temp_r31, var_f28); + PSVECSubtract(&sp18, &sp24, &spC); + PSVECScale(&spC, &spC, 0.025f); + temp_f26 = 12.0f; + var_f29 = 0.0f; + while (TRUE) { + spC.y = temp_f26 - var_f29 * var_f29 * 0.25f * 0.075f; + var_f29 += 1.0f; + PSVECAdd(&spC, &sp24, &sp24); + if (sp24.y <= sp18.y) { + sp24.y = sp18.y; + break; + } + var_f28 = VECDistanceXZ(&sp18, &sp24); + if (var_f28 <= 1.0f) { + spC.x = spC.z = 0.0f; + } + BoardPlayerPosSetV(temp_r31, &sp24); + HuPrcVSleep(); + } + BoardPlayerPosSetV(temp_r31, &sp18); + BoardPlayerIdleSet(temp_r31); + HuPrcSleep(8); + BoardPlayerMotBlendSet(temp_r31, 0, 0xF); + while (!BoardPlayerMotBlendCheck(temp_r31)) { + HuPrcVSleep(); + } + lbl_1_bss_7C--; + HuPrcEnd(); +} + +static s32 fn_1_3C9C(void) { + Vec sp50; + Vec sp44; + Vec sp38; + float sp28[4]; + s16 sp20[4]; + s16 sp18[4]; + s16 sp10[4]; + float sp8[2]; + BoardSpace *temp_r30; + BoardSpace *var_r28; + float var_f29; + float var_f30; + float var_f31; + s8 var_r26; + s8 var_r25; + s32 var_r24; + s16 var_r23; + s16 var_r22; + s16 temp_r20; + s16 var_r19; + s16 var_r21; + s16 var_r27; + s16 var_r29; + s16 var_r18; + s32 temp_r17; + s32 i; + + temp_r30 = BoardSpaceGet(0, lbl_1_bss_78); + if (temp_r30->flag & 8) { + return -1; + } + if (temp_r30->flag & 0x400) { + var_r29 = 0; + i = BoardSpaceLinkTargetListGet(0, lbl_1_bss_78, sp10); + for (i--; i >= 0; i--) { + var_r28 = BoardSpaceGet(0, sp10[i]); + if (var_r28->flag & 4) { + sp20[var_r29] = sp10[i]; + sp18[var_r29] = 1; + var_r29++; + } + } + for (i = 0; i < temp_r30->link_cnt; i++) { + var_r28 = BoardSpaceGet(0, temp_r30->link[i]); + if (var_r28->flag & 4) { + sp20[var_r29] = temp_r30->link[i]; + sp18[var_r29] = 0; + var_r29++; + } + } + var_r27 = 0; + BoardModelPosGet(lbl_1_bss_FA, &sp50); + for (i = 0; i < var_r29; i++) { + BoardSpacePosGet(0, sp20[i], &sp44); + sp50.y = sp44.y; + PSVECSubtract(&sp44, &sp50, &sp38); + var_f31 = atan2d(sp38.x, sp38.z); + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + sp28[i] = var_f31; + PSVECNormalize(&sp38, &sp44); + PSVECScale(&sp44, &sp44, 110.0f); + sp44.y += 200.0f; + PSVECAdd(&sp50, &sp44, &sp44); + BoardModelPosSetV(lbl_1_bss_F4[i], &sp44); + BoardModelRotYSet(lbl_1_bss_F4[i], var_f31); + BoardModelVisibilitySet(lbl_1_bss_F4[i], 1); + } + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(19, 27)); + var_r22 = HuWinCreate(-10000.0f, 368.0f, sp8[0], sp8[1], 0); + HuWinMesSet(var_r22, MAKE_MESSID(19, 27)); + HuWinBGTPLvlSet(var_r22, 0.0f); + HuWinMesSpeedSet(var_r22, 0); + var_f31 = 0.0f; + temp_r17 = GWSystem.player_curr; + temp_r20 = GWPlayer[temp_r17].port; + var_f29 = BoardModelRotYGet(lbl_1_bss_FA) - 180.0f; + if (var_f29 < 0.0f) { + var_f29 += 360.0f; + } + var_r21 = frandmod(30) + 30; + var_r18 = 0; + while (TRUE) { + var_r23 = var_r27; + if (GWPlayer[temp_r17].com) { + var_r26 = var_r25 = 0; + var_r19 = 0; + if (var_r21 != 0) { + var_r21--; + } else { + var_r21 = frandmod(10) + 15; + if (frandBool() || var_r18 == 3) { + var_r19 = 0x100; + } else { + OSReport("com sel chg: %d \n", var_r29); + var_r18++; + var_r23 = frandmod(var_r29); + } + } + } else { + var_r26 = HuPadStkX[temp_r20]; + var_r25 = HuPadStkY[temp_r20]; + var_r19 = HuPadBtnDown[temp_r20]; + } + if (abs(var_r26) < 10) { + var_r26 = 0; + } + if (abs(var_r25) < 10) { + var_r25 = 0; + } + if (var_r26 != 0 || var_r25 != 0) { + var_f30 = atan2d(-var_r26, var_r25) - 180.0; + var_f30 += var_f29; + if (var_f30 >= 360.0f) { + var_f30 -= 360.0f; + } + if (var_f30 < 0.0f) { + var_f30 += 360.0f; + } + for (i = 0; i < var_r29; i++) { + if (fabs(sp28[i] - var_f30) < 30.0) { + var_r23 = i; + break; + } + } + } + if (var_r23 != var_r27) { + HuAudFXPlay(0); + var_f31 = 0.0f; + var_r27 = var_r23; + } + if (var_r19 & 0x100) { + break; + } + for (i = 0; i < var_r29; i++) { + if (var_r27 == i) { + sp38.x = sp38.y = sp38.z = 1.8f + sind(var_f31); + var_f31 += 8.0f; + if (var_f31 > 180.0f) { + var_f31 -= 180.0f; + } + } else { + sp38.x = sp38.y = sp38.z = 1.8f; + } + BoardModelScaleSetV(lbl_1_bss_F4[i], &sp38); + } + HuPrcVSleep(); + } + HuAudFXPlay(2); + for (i = 0; i < var_r29; i++) { + BoardModelVisibilitySet(lbl_1_bss_F4[i], 0); + } + HuWinKill(var_r22); + var_r24 = sp20[var_r27]; + lbl_1_bss_70 = sp18[var_r27]; + lbl_1_bss_C2 = fn_1_4680(var_r24); + } else if (lbl_1_bss_70 != 0) { + i = BoardSpaceLinkTargetListGet(0, lbl_1_bss_78, sp10); + for (i--; i >= 0; i--) { + var_r28 = BoardSpaceGet(0, sp10[i]); + if (var_r28->flag & 0x200) { + break; + } + } + var_r24 = sp10[i]; + } else { + for (i = 0; i < temp_r30->link_cnt; i++) { + var_r28 = BoardSpaceGet(0, temp_r30->link[i]); + if (var_r28->flag & 0x200) { + break; + } + } + var_r24 = temp_r30->link[i]; + } + return var_r24; +} + +static void fn_1_45A8(void) { + float *temp_r30; + s32 var_r31; + + var_r31 = 15; + temp_r30 = (float*) &HuPrcCurrentGet()->user_data; + while (TRUE) { + if (var_r31 == 0) { + BoardCameraMoveSet(0); + BoardCameraTargetPlayerSet(GWSystem.player_curr); + BoardCameraZoomSet(700.0f); + BoardStatusShowSetAll(0); + break; + } + var_r31--; + HuPrcVSleep(); + } + while (TRUE) { + BoardCameraRotSet(-15.0f, *temp_r30); + HuPrcVSleep(); + } +} + +static void fn_1_4630(void) { + BoardCameraMoveSet(0); + BoardCameraTargetPlayerSet(GWSystem.player_curr); + BoardCameraViewSet(2); + BoardStatusShowSetAll(1); + BoardCameraMoveSet(1); +} + +static s32 fn_1_4680(s16 arg0) { + BoardSpace *var_r30; + BoardSpace *var_r29; + s16 sp8[4]; + s16 var_r26; + s32 var_r27; + s32 i; + + var_r27 = 0; + var_r26 = 0; + var_r30 = BoardSpaceGet(0, arg0); + lbl_1_bss_C2 = 0; + while (TRUE) { + for (i = 0; i < 4; i++) { + if (i != GWSystem.player_curr && arg0 == GWPlayer[i].space_curr) { + lbl_1_bss_BA[var_r27++] = i; + } + } + if (var_r27 == 3 || var_r26 == 1) { + break; + } + if (lbl_1_bss_70 != 0) { + i = BoardSpaceLinkTargetListGet(0, arg0, sp8); + for (i--; i >= 0; i--) { + var_r29 = BoardSpaceGet(0, sp8[i]); + if (var_r29->flag & 0x200) { + break; + } + } + arg0 = sp8[i]; + } else { + for (i = 0; i < var_r30->link_cnt; i++) { + var_r29 = BoardSpaceGet(0, var_r30->link[i]); + if (var_r29->flag & 0x200) { + break; + } + } + arg0 = var_r30->link[i]; + } + var_r30 = BoardSpaceGet(0, arg0); + if (var_r30->flag & 0x401) { + var_r26 = 1; + } + } + return var_r27; +} + +static void fn_1_4848(void) { + Vec sp20; + Vec sp14; + float temp_f28; + BssE4Data *var_r29; + s32 temp_r30; + s32 i; + + temp_r30 = (s32) HuPrcCurrentGet()->user_data; + BoardPlayerPosGet(temp_r30, &sp20); + BoardPlayerMotBlendSet(temp_r30, BoardModelRotYGet(lbl_1_bss_FA) - 180.0f, 0xA); + while (!BoardPlayerMotBlendCheck(temp_r30)) { + BoardModelPosGet(lbl_1_bss_FA, &sp14); + temp_f28 = VECDistanceXZ(&sp20, &sp14); + if (temp_f28 <= 200.0f) { + HuAudPlayerVoicePlay(temp_r30, 0x128); + goto block_A; + } + HuPrcVSleep(); + } + BoardPlayerMotionShiftSet(temp_r30, lbl_1_bss_52[temp_r30][0], 0.0f, 5.0f, 0); + HuAudPlayerVoicePlay(temp_r30, 0x128); + for (i = 0; i < 65; i++) { + BoardModelPosGet(lbl_1_bss_FA, &sp14); + temp_f28 = VECDistanceXZ(&sp20, &sp14); + if (temp_f28 <= 200.0f) { + goto block_A; + } + HuPrcVSleep(); + } + BoardPlayerMotionShiftSet(temp_r30, 1, 0.0f, 5.0f, 0); + BoardModelPosGet(lbl_1_bss_FA, &sp14); + temp_f28 = VECDistanceXZ(&sp20, &sp14); + if (temp_f28 > 200.0f) { + HuPrcVSleep(); + } +block_A: + lbl_1_bss_B2[temp_r30] = 2; + BoardPlayerMotionStart(temp_r30, lbl_1_bss_52[temp_r30][2], 0x40000001); + temp_f28 = 20.0f; + omVibrate(temp_r30, 12, 4, 2); + while (TRUE) { + sp20.y += temp_f28; + BoardPlayerPosSetV(temp_r30, &sp20); + if (sp20.y >= 600.0f) { + break; + } + HuPrcVSleep(); + } + BoardPlayerMotionStart(temp_r30, lbl_1_bss_52[temp_r30][1], 0x40000001); + for (i = 0; i < 4; i++) { + var_r29 = fn_1_2FBC(i); + if (var_r29->unk08 == -1) { + break; + } + } + var_r29->unk08 = temp_r30; + BoardPlayerRotYSet(temp_r30, BoardModelRotYGet(var_r29->unk04)); + for (i = 0; i < 4; i++) { + HuPrcSetStat(lbl_1_bss_E4[i], 1); + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_D4[i] && i != temp_r30) { + HuPrcSetStat(lbl_1_bss_D4[i], 1); + } + } + HuPrcSetStat(lbl_1_bss_48, 1); + BoardWinCreate(0, MAKE_MESSID(32, 2), -1); + BoardWinInsertMesSet(GWPlayer[temp_r30].character, 0); + BoardWinWait(); + BoardWinKill(); + for (i = 0; i < 4; i++) { + HuPrcResetStat(lbl_1_bss_E4[i], 1); + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_D4[i] && i != temp_r30) { + HuPrcResetStat(lbl_1_bss_D4[i], 1); + } + } + HuPrcResetStat(lbl_1_bss_48, 1); + lbl_1_bss_D4[temp_r30] = NULL; + HuPrcEnd(); +} + +static void fn_1_5018(void) { + Vec sp18; + Vec spC; + float var_f29; + Process *temp_r3; + s32 i; + + BoardModelPosGet(lbl_1_bss_FA, &spC); + for (i = 0; i < lbl_1_bss_C2; i++) { + BoardPlayerPosGet(lbl_1_bss_BA[i], &sp18); + var_f29 = VECDistanceXZ(&sp18, &spC); + if (var_f29 < 900.0f && lbl_1_bss_B2[lbl_1_bss_BA[i]] == 0) { + temp_r3 = HuPrcChildCreate(fn_1_4848, 0x2003, 0x2000, 0, boardMainProc); + lbl_1_bss_D4[lbl_1_bss_BA[i]] = temp_r3; + temp_r3->user_data = (u8*) lbl_1_bss_BA[i]; + lbl_1_bss_B2[lbl_1_bss_BA[i]] = 1; + } + } +} + +static void fn_1_52A0(s16 arg0, Vec *arg1) { + Vec sp40[4]; + Vec sp10[4]; + BssE4Data *var_r30; + BoardSpace *var_r29; + BoardSpace *var_r28; + s16 sp8[4]; + s32 var_r27; + s32 i; + + OSReport("Landing Pos Get\n"); + lbl_1_bss_B0 = -1; + var_r29 = BoardSpaceGet(0, arg0); + for (i = 0; i < var_r29->link_cnt; i++) { + var_r28 = BoardSpaceGet(0, var_r29->link[i]); + if (var_r28->flag & 2) { + lbl_1_bss_B0 = var_r29->link[i]; + break; + } + } + if (lbl_1_bss_B0 == -1) { + i = BoardSpaceLinkTargetListGet(0, arg0, sp8); + for (i--; i >= 0; i--) { + var_r28 = BoardSpaceGet(0, sp8[i]); + if (var_r28->flag & 2) { + lbl_1_bss_B0 = sp8[i]; + break; + } + } + } + if (lbl_1_bss_B0 == -1) { + OSReport("\x92\x85\x92\x6E\x92\x6E\x93_\x82\xAA\x96\xB3\x82\xA2\n"); + while (TRUE) { + HuPrcVSleep(); + } + } + var_r27 = 0; + for (i = 0; i < 4; i++) { + BoardPlayerPosGet(i, &sp40[i]); + BoardPlayerRotGet(i, &sp10[i]); + sp8[i] = GWPlayer[i].space_curr; + if (lbl_1_bss_B0 == sp8[i]) { + var_r27 += 1; + } + } + for (i = 0; i < 4; i++) { + var_r30 = fn_1_2FBC(i); + if (var_r30->unk08 != -1 && var_r30->unk08 != GWSystem.player_curr) { + BoardSpaceCornerPosGet(lbl_1_bss_B0, var_r27++, &arg1[var_r30->unk08]); + } + } + for (i = 0; i < 4; i++) { + BoardPlayerPosSetV(i, &sp40[i]); + BoardPlayerRotSetV(i, &sp10[i]); + GWPlayer[i].space_curr = sp8[i]; + } + BoardSpacePosGet(0, lbl_1_bss_B0, &arg1[GWSystem.player_curr]); +} + +static void fn_1_55A0(void) { + lbl_1_bss_48 = NULL; +} + +void fn_1_55B4(void) { + s32 sp8; + + sp8 = GWSystem.player_curr; + lbl_1_bss_48 = HuPrcChildCreate(fn_1_20EC, 0x2004, 0x2000, 0, boardMainProc); + HuPrcDestructorSet2(lbl_1_bss_48, fn_1_55A0); + while (lbl_1_bss_48) { + HuPrcVSleep(); + } +} + +static void fn_1_5648(void) { + ParticleData *var_r30; + s32 i; + + lbl_1_bss_4C = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_W04, 6)); + for (i = 0; i < 4; i++) { + lbl_1_bss_C4[i] = omAddObjEx(boardObjMan, 0x101, 1, 0, -1, fn_1_59C4); + lbl_1_bss_C4[i]->model[0] = Hu3DParticleCreate(lbl_1_bss_4C, 100); + Hu3DParticleColSet(lbl_1_bss_C4[i]->model[0], 0x40, 0xD2, 0xFF); + Hu3DParticleScaleSet(lbl_1_bss_C4[i]->model[0], 5.0f); + Hu3DParticleHookSet(lbl_1_bss_C4[i]->model[0], fn_1_5A2C); + Hu3DParticleBlendModeSet(lbl_1_bss_C4[i]->model[0], 1); + Hu3DModelAttrSet(lbl_1_bss_C4[i]->model[0], 1); + var_r30 = Hu3DData[lbl_1_bss_C4[i]->model[0]].unk_120; + var_r30->unk_1C = lbl_1_bss_C4[i]; + } +} + +static void fn_1_5828(void) { + s32 i; + + for (i = 0; i < 4; i++) { + Hu3DModelKill(lbl_1_bss_C4[i]->model[0]); + omDelObjEx(boardObjMan, lbl_1_bss_C4[i]); + } +} + +static s16 fn_1_58A4(Vec *arg0) { + s16 i; + + for (i = 0; i < 4; i++) { + if (lbl_1_bss_C4[i]->work[0] == 0) { + lbl_1_bss_C4[i]->work[0] = 1; + lbl_1_bss_C4[i]->trans.x = arg0->x; + lbl_1_bss_C4[i]->trans.y = arg0->y; + lbl_1_bss_C4[i]->trans.z = arg0->z; + return i; + } + } + return -1; +} + +static void fn_1_5980(s16 arg0) { + lbl_1_bss_C4[arg0]->work[1] = 1; + lbl_1_bss_C4[arg0]->work[2] = 0; +} + +static void fn_1_59C4(omObjData *arg0) { + if (arg0->work[0] != 0) { + Hu3DModelAttrReset(arg0->model[0], 1); + } + if (arg0->work[2] != 0) { + arg0->work[0] = 0; + Hu3DModelAttrSet(arg0->model[0], 1); + } +} + +static void fn_1_5A2C(ModelData *model, ParticleData *particle, Mtx matrix) { + s32 var_r26; + s32 i; + s32 j; + HsfanimStruct01 *var_r31; + UnkParticleDataStruct *temp_r27; + + temp_r27 = particle->unk_1C; + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + var_r31->unk08.z = 0.0f; + var_r31->unk2C = 0.0f; + } + } + if (temp_r27->unk50 == 0) { + for (i = 0; i < 3; i++) { + var_r31 = particle->unk_48; + for (j = 0; j < particle->unk_30; j++, var_r31++) { + if (var_r31->unk08.z == 0.0f) { + break; + } + } + if (j != particle->unk_30) { + var_r31->unk08.x = 0.003921569f * frand8() * 360.0f; + var_r31->unk08.y = 1.0f + 0.003921569f * frand8() * 1.5f; + var_r31->unk08.z = 240.0f; + var_r31->unk40.r = 0x40; + var_r31->unk40.g = 0xD2; + var_r31->unk40.b = 0xFF; + var_r31->unk20 = 2.0f + 0.003921569f * frand8() * 8.0f; + var_r31->unk24 = 2.0f + 0.003921569f * frand8() * 6.0f; + var_r31->unk28 = 1.0f + 0.003921569f * frand8() * 3.0f; + var_r31->unk34.x = -100.0f + 0.003921569f * frand8() * 200.0f; + var_r31->unk34.y = 0.003921569f * frand8() * 10.0f; + var_r31->unk34.z = -100.0f + 0.003921569f * frand8() * 200.0f; + var_r31->unk2C = 7.0f + 0.003921569f * frand8() * 3.0f; + } + } + } + var_r31 = particle->unk_48; + var_r26 = 0; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + if (var_r31->unk08.z != 0.0f) { + var_r31->unk34.x += var_r31->unk28 * sind(var_r31->unk08.x); + var_r31->unk34.y += var_r31->unk08.y; + var_r31->unk34.z += var_r31->unk28 * cosd(var_r31->unk08.x); + var_r31->unk08.x += var_r31->unk24 * sind(var_r31->unk08.x); + if (var_r31->unk08.x >= 360.0f) { + var_r31->unk08.x -= 360.0f; + } + var_r31->unk40.a = var_r31->unk08.z; + var_r31->unk08.z -= var_r31->unk20; + if (var_r31->unk08.z <= 0.0f) { + var_r31->unk08.z = 0.0f; + } + } else { + var_r26++; + } + } + if (var_r26 == particle->unk_30) { + temp_r27->unk54 = 1; + } +} diff --git a/src/REL/w07Dll/bridge.c b/src/REL/w07Dll/bridge.c new file mode 100644 index 00000000..8198e5e7 --- /dev/null +++ b/src/REL/w07Dll/bridge.c @@ -0,0 +1,314 @@ +#include "REL/w04Dll.h" +#include "game/audio.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "game/memory.h" +#include "game/objsub.h" +#include "game/process.h" +#include "game/window.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/space.h" +#include "game/board/window.h" + +#include "dolphin.h" +#include "ext_math.h" + +static void fn_1_17B4(s16 arg0, s16 arg1); +static void fn_1_191C(void); +static void fn_1_1B98(s16 arg0); +static void fn_1_1C2C(void); +static void fn_1_1E60(void); +static void fn_1_2008(void); +static void fn_1_2044(void); + +static Process *lbl_1_bss_3C[3]; +static Process *lbl_1_bss_38; + +static s32 lbl_1_data_298[] = { + DATA_MAKE_NUM(DATADIR_W04, 32), + -1 +}; + +void fn_1_12FC(void) { + Vec sp14; + Vec sp8; + s16 *temp_r3; + s32 var_r29; + s32 i; + + sp8.x = sp8.y = sp8.z = 1.5f; + for (i = 0; i < 3; i++) { + lbl_1_bss_3C[i] = HuPrcChildCreate(fn_1_1E60, 0x2003, 0x1000, 0, boardMainProc); + HuPrcDestructorSet2(lbl_1_bss_3C[i], fn_1_2008); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 5 * sizeof(s16), MEMORY_DEFAULT_NUM); + lbl_1_bss_3C[i]->user_data = temp_r3; + temp_r3[0] = i; + temp_r3[1] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 31), lbl_1_data_298, 1); + BoardModelScaleSetV(temp_r3[1], &sp8); + temp_r3[2] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 33), NULL, 1); + BoardModelAttrSet(temp_r3[2], 0x40000001); + BoardModelHookSet(temp_r3[1], "itemhook_R", temp_r3[2]); + BoardModelMotionStart(temp_r3[1], 1, 0x40000001); + var_r29 = (0x8000 >> i); + var_r29 |= 0x1000; + temp_r3[3] = BoardSpaceFlagSearch(0, var_r29); + var_r29 = (0x8000 >> i); + var_r29 |= 0x800; + temp_r3[4] = BoardSpaceFlagSearch(0, var_r29); + BoardSpacePosGet(0, temp_r3[3], &sp14); + BoardModelPosSetV(temp_r3[1], &sp14); + } + sp8.x = sp8.y = sp8.z = 2.0f; + BoardModelScaleSetV(lbl_1_bss_14[11], &sp8); + fn_1_1C2C(); + if (lbl_1_bss_0->unk00 & 1) { + BoardModelMotionStartEndSet(lbl_1_bss_14[5], 0, 180); + BoardModelMotionTimeSet(lbl_1_bss_14[5], 108.0f); + fn_1_17B4(0, 1); + BoardModelAttrSet(lbl_1_bss_14[5], 0x40000002); + return; + } + BoardModelAttrReset(lbl_1_bss_14[5], 0x40000002); + BoardModelMotionStartEndSet(lbl_1_bss_14[5], 0, 60); + BoardModelMotionTimeSet(lbl_1_bss_14[5], 0.0f); + fn_1_17B4(1, 1); +} + +void fn_1_15C8(void) { + s32 i; + + for (i = 0; i < 3; i++) { + HuPrcKill(lbl_1_bss_3C[i]); + } +} + +static s32 lbl_1_data_2AC[8] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 28), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 28), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 28), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 28), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 28), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 28), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 28), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 28) +}; + +void fn_1_1618(void) { + s32 temp_r31; + s16 temp_r30; + + temp_r31 = GWSystem.player_curr; + temp_r30 = BoardPlayerMotionCreate(temp_r31, lbl_1_data_2AC[GWPlayer[temp_r31].character]); + BoardRollDispSet(0); + BoardPlayerMotBlendSet(temp_r31, 180, 15); + BoardCameraViewSet(2); + while (!BoardPlayerMotBlendCheck(temp_r31)) { + HuPrcVSleep(); + } + BoardCameraMotionWait(); + lbl_1_bss_0->unk00 ^= 1; + fn_1_191C(); + fn_1_1C2C(); + HuAudPlayerVoicePlay(temp_r31, 0x128); + BoardPlayerMotionStart(temp_r31, temp_r30, 0); + while (!BoardPlayerMotionEndCheck(temp_r31)) { + HuPrcVSleep(); + } + HuPrcSleep(30); + if (!(lbl_1_bss_0->unk00 & 1)) { + BoardWinCreate(2, MAKE_MESSID(32, 24), 11); + BoardWinWait(); + BoardWinKill(); + } + BoardPlayerMotionShiftSet(temp_r31, 1, 0.0f, 10.0f, 0x40000001); + BoardCameraViewSet(1); + BoardCameraMotionWait(); + BoardRollDispSet(1); + BoardPlayerMotionKill(temp_r31, temp_r30); + HuPrcKill(NULL); + while (TRUE) { + HuPrcVSleep(); + } +} + +static void fn_1_17B4(s16 arg0, s16 arg1) { + float var_f30; + float var_f31; + s32 i; + + if (arg0 != 0) { + var_f31 = 0.0f; + var_f30 = 255.0f / arg1; + } else { + var_f31 = 255.0f; + var_f30 = -255.0f / arg1; + } + for (i = 0; i < arg1; i++) { + BoardModelAlphaSet(lbl_1_bss_14[11], var_f31); + var_f31 += var_f30; + HuPrcVSleep(); + } + if (arg0 != 0) { + BoardModelAlphaSet(lbl_1_bss_14[11], 0xFF); + } else { + BoardModelAlphaSet(lbl_1_bss_14[11], 0); + } +} + +static void fn_1_191C(void) { + float var_f31; + float temp_f29; + float var_f30; + float temp_f28; + s32 var_r31; + s32 var_r30; + + HuAudFXPlay(0x4B); + if (lbl_1_bss_0->unk00 & 1) { + BoardWinCreate(2, MAKE_MESSID(32, 23), 11); + BoardWinWait(); + BoardWinKill(); + omVibrate(GWSystem.player_curr, 12, 6, 6); + HuAudFXPlay(0x45E); + BoardModelMotionStartEndSet(lbl_1_bss_14[5], 0, 180); + BoardModelMotionTimeSet(lbl_1_bss_14[5], 59.0f); + var_f31 = 255.0f; + temp_f29 = -5.1f; + for (var_r31 = 0; var_r31 < 50; var_r31++) { + BoardModelAlphaSet(lbl_1_bss_14[11], var_f31); + var_f31 += temp_f29; + HuPrcVSleep(); + } + BoardModelAlphaSet(lbl_1_bss_14[11], 0); + BoardModelAttrSet(lbl_1_bss_14[5], 0x40000002); + } else { + omVibrate(GWSystem.player_curr, 12, 6, 6); + HuAudFXPlay(0x45D); + BoardModelAttrReset(lbl_1_bss_14[5], 0x40000002); + BoardModelMotionStartEndSet(lbl_1_bss_14[5], 0, 180); + BoardModelMotionTimeSet(lbl_1_bss_14[5], 110.0f); + var_f30 = 0.0f; + temp_f28 = 3.642857f; + for (var_r30 = 0; var_r30 < 70; var_r30++) { + BoardModelAlphaSet(lbl_1_bss_14[11], var_f30); + var_f30 += temp_f28; + HuPrcVSleep(); + } + BoardModelAlphaSet(lbl_1_bss_14[11], 0xFF); + BoardModelMotionStartEndSet(lbl_1_bss_14[5], 0, 60); + } +} + +static void fn_1_1B98(s16 arg0) { + BoardSpace *temp_r3; + s32 i; + + for (i = 0; i < BoardSpaceCountGet(0); i++) { + temp_r3 = BoardSpaceGet(0, i + 1); + if (temp_r3->flag & 0x20) { + if (arg0 != 0) { + temp_r3->flag |= 0x04000000; + } else { + temp_r3->flag &= ~0x04000000; + } + } + } +} + +static void fn_1_1C2C(void) { + s16 *var_r28; + s32 i; + + if (lbl_1_bss_0->unk00 == 0) { + BoardModelMotionStartEndSet(lbl_1_bss_14[3], 0, 80); + BoardModelMotionTimeSet(lbl_1_bss_14[3], 0.0f); + BoardModelVisibilitySet(lbl_1_bss_14[0], 1); + BoardModelVisibilitySet(lbl_1_bss_14[1], 1); + BoardModelVisibilitySet(lbl_1_bss_14[2], 1); + fn_1_1B98(0); + for (i = 0; i < 3; i++) { + var_r28 = lbl_1_bss_3C[i]->user_data; + BoardModelMotionStartEndSet(var_r28[2], 0, 20); + } + } else { + BoardModelMotionStartEndSet(lbl_1_bss_14[3], 100, 100); + BoardModelMotionTimeSet(lbl_1_bss_14[3], 100.0f); + BoardModelVisibilitySet(lbl_1_bss_14[0], 0); + BoardModelVisibilitySet(lbl_1_bss_14[1], 0); + BoardModelVisibilitySet(lbl_1_bss_14[2], 0); + fn_1_1B98(1); + for (i = 0; i < 3; i++) { + var_r28 = lbl_1_bss_3C[i]->user_data; + BoardModelMotionStartEndSet(var_r28[2], 25, 25); + } + } +} + +static void fn_1_1E60(void) { + Vec sp20; + Vec sp14; + Vec sp8; + float temp_f31; + s16 *temp_r31; + s16 var_r29; + s16 var_r28; + s16 i; + + temp_r31 = HuPrcCurrentGet()->user_data; + var_r29 = temp_r31[3]; + var_r28 = temp_r31[4]; + while (TRUE) { + BoardSpacePosGet(0, var_r29, &sp14); + BoardSpacePosGet(0, var_r28, &sp8); + PSVECSubtract(&sp8, &sp14, &sp20); + PSVECScale(&sp20, &sp20, 0.008333334f); + temp_f31 = atan2d(sp8.x - sp14.x, sp8.z - sp14.z); + BoardModelPosGet(temp_r31[1], &sp14); + while (fn_1_1130(temp_r31[1], temp_f31, 2.5f) == 0) { + if (lbl_1_bss_0->unk00 == 0) { + BoardModelAlphaSet(temp_r31[1], 0xFF); + } else { + BoardModelAlphaSet(temp_r31[1], 0); + } + HuPrcVSleep(); + } + for (i = 0; i < 120; i++) { + if (lbl_1_bss_0->unk00 == 0) { + BoardModelAlphaSet(temp_r31[1], 0xFF); + } else { + BoardModelAlphaSet(temp_r31[1], 0); + } + PSVECAdd(&sp14, &sp20, &sp14); + BoardModelPosSetV(temp_r31[1], &sp14); + HuPrcVSleep(); + } + i = var_r29; + var_r29 = var_r28; + var_r28 = i; + } +} + +static void fn_1_2008(void) { + s16 *temp_r31; + + temp_r31 = HuPrcCurrentGet()->user_data; + BoardModelKill(temp_r31[1]); + HuMemDirectFree(temp_r31); +} + +static void fn_1_2044(void) { + lbl_1_bss_38 = NULL; +} + +void fn_1_2058(void) { + s32 sp8; + + sp8 = GWSystem.player_curr; + lbl_1_bss_38 = HuPrcChildCreate(fn_1_1618, 0x2003, 0x2000, 0, boardMainProc); + HuPrcDestructorSet2(lbl_1_bss_38, fn_1_2044); + while (lbl_1_bss_38) { + HuPrcVSleep(); + } +} diff --git a/src/REL/w07Dll/main.c b/src/REL/w07Dll/main.c new file mode 100644 index 00000000..ec194dc7 --- /dev/null +++ b/src/REL/w07Dll/main.c @@ -0,0 +1,446 @@ +#include "REL/w04Dll.h" +#include "REL/board_executor.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "game/object.h" +#include "game/process.h" +#include "game/window.h" +#include "game/board/boo_house.h" +#include "game/board/com.h" +#include "game/board/lottery.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/shop.h" +#include "game/board/space.h" +#include "game/board/star.h" +#include "game/board/window.h" + +#include "dolphin.h" +#include "math.h" + +static void fn_1_750(void); +static void fn_1_794(void); +static s32 fn_1_798(void); +static s32 fn_1_7FC(void); +static void fn_1_930(void); +static void fn_1_954(void); +static void fn_1_958(void); +static void fn_1_CF8(void); +static void fn_1_D30(void); +static void fn_1_DB0(void); +static s32 fn_1_103C(void); + +s16 lbl_1_bss_14[MAPOBJ_MAX]; + +BoardMapObject lbl_1_data_0[MAPOBJ_MAX] = { + { { 750.0f, 0.0f, 1500.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 5) }, + { { -1500.0f, 0.0f, 150.0f }, { 0.0f, 89.999985f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 5) }, + { { 1200.0f, 0.0f, -1650.0f }, { 0.0f, -89.999985f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 5) }, + { { -1950.0f, 0.0f, -2100.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 4) }, + { { 2100.0f, 0.0f, -2100.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 18) }, + { { -150.0f, 0.0f, -150.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 23) }, + { { 3000.0f, 0.0f, -600.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 12) }, + { { -1500.0f, 0.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 15) }, + { { -1950.0f, 0.0f, -2000.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 34) }, + { { -1350.0f, 50.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 34) }, + { { 2750.0f, 0.0f, -600.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 34) }, + { { -150.0f, 0.0f, -100.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 29) }, + { { 2850.0f, 0.0f, -1500.0f }, { 0.0f, -89.999985f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 17) }, + { { -3150.0f, 0.0f, 300.0f }, { 0.0f, 89.999985f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 17) }, + { { 2850.0f, 0.0f, 0.000003f }, { 0.0f, -89.999985f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 17) }, + { { 900.0f, 0.0f, 2250.0f }, { 0.0f, 180.00001f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W04, 17) } +}; + +static s32 *lbl_1_bss_10; +static s16 lbl_1_bss_8[4]; +static Process *lbl_1_bss_4; +UnkW04BoardData *lbl_1_bss_0; + +static s16 lbl_1_data_280 = -1; +static s16 lbl_1_data_282 = -1; +static s16 lbl_1_data_284 = -1; +static s16 lbl_1_data_286 = -1; + +static s32 lbl_1_data_288[] = { + DATA_MAKE_NUM(DATADIR_W04, 8), + -1 +}; + +static s32 lbl_1_data_290[] = { + DATA_MAKE_NUM(DATADIR_BGUEST, 24), + -1 +}; + +void BoardCreate(void) { + BoardMapObject *temp_r30; + s32 sp8; + s32 i; + + omDBGMenuButton = 1; + sp8 = GWBoardGet(); + lbl_1_bss_0 = (UnkW04BoardData*) GWSystem.board_data; + BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W04, 0)); + lbl_1_data_280 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 1), NULL, 0); + fn_8006DDE8(lbl_1_data_280, -1.0f); + BoardModelPosSet(lbl_1_data_280, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(lbl_1_data_280, 0, 0x40000001); + BoardModelMotionSpeedSet(lbl_1_data_280, 1.0f); + lbl_1_data_282 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 2), NULL, 0); + fn_8006DDE8(lbl_1_data_282, -1.0f); + BoardModelPosSet(lbl_1_data_282, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(lbl_1_data_282, 0, 0x40000001); + lbl_1_data_284 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 7), lbl_1_data_288, 0); + BoardModelPosSet(lbl_1_data_284, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(lbl_1_data_284, 1, 0x40000001); + lbl_1_data_286 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 18), lbl_1_data_290, 0); + BoardModelMotionStart(lbl_1_data_286, 1, 0x40000001); + BoardLightHookSet(fn_1_750, fn_1_794); + for (i = 0; i < 16; i++) { + temp_r30 = &lbl_1_data_0[i]; + if (temp_r30->data_num != -1) { + if (i == 8 || i == 9 || i == 10 || i == 11) { + lbl_1_bss_10 = lbl_1_data_290; + } else { + lbl_1_bss_10 = NULL; + } + lbl_1_bss_14[i] = BoardModelCreate(temp_r30->data_num, lbl_1_bss_10, 0); + BoardModelPosSetV(lbl_1_bss_14[i], &temp_r30->pos); + BoardModelRotSetV(lbl_1_bss_14[i], &temp_r30->rot); + BoardModelScaleSetV(lbl_1_bss_14[i], &temp_r30->scale); + BoardModelVisibilitySet(lbl_1_bss_14[i], 1); + if (lbl_1_bss_10 != NULL) { + BoardModelMotionStart(lbl_1_bss_14[i], 1, 0x40000001); + } + } + } + BoardModelAlphaSet(lbl_1_bss_14[8], 0); + BoardModelVisibilitySet(lbl_1_bss_14[8], 0); + BoardModelMotionStartEndSet(lbl_1_bss_14[5], 0, 60); + BoardModelAttrSet(lbl_1_bss_14[5], 0x40000001); + BoardModelAttrSet(lbl_1_bss_14[4], 0x40000001); + fn_1_930(); + fn_1_12FC(); + fn_1_6024(); + BoardModelAttrSet(lbl_1_bss_14[0], 0x40000001); + BoardModelAttrSet(lbl_1_bss_14[1], 0x40000001); + BoardModelAttrSet(lbl_1_bss_14[2], 0x40000001); + BoardModelAttrSet(lbl_1_bss_14[3], 0x40000001); + BoardSpaceWalkEventFuncSet(fn_1_7FC); + BoardSpaceWalkMiniEventFuncSet(fn_1_103C); + BoardSpaceLandEventFuncSet(fn_1_798); + BoardStarHostSet(lbl_1_data_284); + BoardBooHouseHostSet(lbl_1_data_286); + BoardShopHostSet(lbl_1_data_286); + BoardLotteryHostSet(lbl_1_data_286); + BoardJunctionMaskSet(0x100); + BoardJunctionMaskSet(0x40); +} + +void BoardDestroy(void) { + s32 i; + + fn_1_15C8(); + for (i = 0; i < MAPOBJ_MAX; i++) { + if (lbl_1_bss_14[i] != 0) { + BoardModelKill(lbl_1_bss_14[i]); + lbl_1_bss_14[i] = 0; + } + } + if (lbl_1_data_286 != -1) { + BoardModelKill(lbl_1_data_286); + lbl_1_data_286 = -1; + } + if (lbl_1_data_284 != -1) { + BoardModelKill(lbl_1_data_284); + lbl_1_data_284 = -1; + } + if (lbl_1_data_280 != -1) { + BoardModelKill(lbl_1_data_280); + lbl_1_data_280 = -1; + } + if (lbl_1_data_282 != -1) { + BoardModelKill(lbl_1_data_282); + lbl_1_data_282 = -1; + } + BoardSpaceDestroy(); +} + +static void fn_1_750(void) { + s16 var_r31; + + var_r31 = BoardModelIDGet(lbl_1_data_280); + Hu3DModelLightInfoSet(var_r31, 1); +} + +static void fn_1_794(void) { +} + +static s32 fn_1_798(void) { + s32 var_r31; + s32 var_r30; + s32 sp8; + + var_r31 = GWSystem.player_curr; + var_r30 = GWPlayer[var_r31].space_curr; + sp8 = BoardSpaceFlagGet(0, var_r30); + fn_1_9EBC(); +} + +static s32 fn_1_7FC(void) { + s32 temp_r31; + BoardSpace *temp_r3; + + temp_r31 = GWSystem.player_curr; + if (BoardPlayerSizeGet(temp_r31) == 2) { + return 0; + } + if (GWPlayer[temp_r31].bowser_suit) { + return 0; + } + temp_r3 = BoardSpaceGet(0, GWPlayer[temp_r31].space_curr); + if (temp_r3->flag & 0x80) { + fn_1_2058(); + return 1; + } + if (temp_r3->flag & 0x100) { + if (lbl_1_bss_0->unk00 & 1) { + fn_1_55B4(); + } else { + BoardRollDispSet(0); + BoardPlayerIdleSet(temp_r31); + BoardWinCreate(0, MAKE_MESSID(32, 25), -1); + BoardWinWait(); + BoardWinKill(); + BoardRollDispSet(1); + } + return 1; + } + return 0; +} + +static void fn_1_930(void) { + fn_1_A0F8(); + fn_1_C7A0(); +} + +static void fn_1_954(void) { +} + +static void fn_1_958(void) { + Vec sp8; + u32 temp_r3; + s32 temp_r27; + s32 temp_r31; + s32 var_r26; + s32 var_r30; + s32 var_r29; + + temp_r31 = GWSystem.player_curr; + if (BoardPlayerItemCount(temp_r31) == 3) { + BoardWinCreate(2, MAKE_MESSID(32, 12), 3); + BoardWinWait(); + BoardWinKill(); + HuPrcEnd(); + } + lbl_1_bss_8[0] = 0; + var_r30 = 1; + while (var_r30 < 3) { + lbl_1_bss_8[var_r30] = frandmod(14); + if (lbl_1_bss_8[var_r30] != 10 && lbl_1_bss_8[var_r30] != 13) { + for (var_r29 = 0; var_r29 < var_r30; var_r29++) { + if (lbl_1_bss_8[var_r30] == lbl_1_bss_8[var_r29]) { + lbl_1_bss_8[var_r30] = -1; + } + } + if (lbl_1_bss_8[var_r30] != -1) { + var_r30++; + } + } + } + fn_1_BB00(lbl_1_bss_8); + BoardWinCreateChoice(2, MAKE_MESSID(32, 13), 3, 0); + if (GWPlayer[temp_r31].com) { + if (BoardComPreferItemCheck(temp_r31, lbl_1_bss_8[0], lbl_1_bss_8[1], lbl_1_bss_8[2]) != -1) { + BoardComKeySetLeft(); + } else { + BoardComKeySetRight(); + } + } + BoardWinWait(); + BoardWinKill(); + temp_r3 = BoardWinChoiceGet(); + if (temp_r3 == 1 || temp_r3 == -1) { + BoardWinCreate(2, MAKE_MESSID(32, 14), 3); + BoardWinWait(); + BoardWinKill(); + BoardMGExit(); + fn_1_C2BC(); + while (BoardMGDoneFlagGet() != 1) { + HuPrcVSleep(); + } + BoardMGDoneFlagSet(0); + fn_1_BA7C(); + HuPrcEnd(); + } + temp_r27 = GWPlayer[temp_r31].space_curr; + var_r26 = BoardSpaceLinkFlagSearch(0, temp_r27, 0x02000000); + BoardPlayerMoveBetween(temp_r31, temp_r27, var_r26); + while (GWPlayer[temp_r31].moving) { + HuPrcVSleep(); + } + BoardPlayerMotionStart(temp_r31, 1, 0x40000001); + BoardPlayerPosGet(temp_r31, &sp8); + sp8.y += 5.0f; + BoardPlayerPosSetV(temp_r31, &sp8); + BoardCameraViewSet(2); + BoardPlayerMotBlendSet(temp_r31, 180, 15); + while (!BoardPlayerMotBlendCheck(temp_r31)) { + HuPrcVSleep(); + } + BoardCameraMotionWait(); + fn_1_A1F0(); + while (BoardEventFlagGet() != 0) { + HuPrcVSleep(); + } + while (GWPlayer[temp_r31].moving) { + HuPrcVSleep(); + } + BoardPlayerMotionStart(temp_r31, 1, 0x40000001); + HuPrcEnd(); +} + +static void fn_1_CF8(void) { + BoardWinKill(); + CharModelDataClose(-1); + lbl_1_bss_4 = NULL; +} + +static void fn_1_D30(void) { + lbl_1_bss_4 = HuPrcChildCreate(fn_1_958, 0x2003, 0x2000, 0, boardMainProc); + HuPrcDestructorSet2(lbl_1_bss_4, fn_1_CF8); + while (lbl_1_bss_4) { + HuPrcVSleep(); + } +} + +static void fn_1_DB0(void) { + Vec sp20; + Vec sp14; + Vec sp8; + s32 temp_r31; + s32 temp_r3; + s32 temp_r29; + s32 temp_r3_2; + + temp_r31 = GWSystem.player_curr; + BoardWinCreateChoice(2, MAKE_MESSID(32, 17), 3, 0); + if (GWPlayer[temp_r31].com) { + if (frand() & 1) { + BoardComKeySetLeft(); + } else { + BoardComKeySetRight(); + } + } + BoardWinWait(); + BoardWinKill(); + temp_r3 = BoardWinChoiceGet(); + if (temp_r3 == 1 || temp_r3 == -1) { + BoardWinCreate(2, MAKE_MESSID(32, 18), 3); + BoardWinWait(); + BoardWinKill(); + BoardMGExit(); + while (BoardMGDoneFlagGet() != 1) { + HuPrcVSleep(); + } + BoardMGDoneFlagSet(0); + return; + } + sp20.x = -45.0f; + sp20.y = sp20.z = 0.0f; + sp14.y = 50.0f; + sp14.x = sp14.z = 0.0f; + BoardCameraMotionStartEx(lbl_1_bss_14[7], &sp20, &sp14, 1200.0f, 25.0f, 21); + temp_r29 = GWPlayer[temp_r31].space_curr; + temp_r3_2 = BoardSpaceLinkFlagSearch(0, temp_r29, 0x02000000); + BoardSpacePosGet(0, temp_r3_2, &sp8); + BoardPlayerMoveBetween(temp_r31, temp_r29, temp_r3_2); + while (GWPlayer[temp_r31].moving) { + HuPrcVSleep(); + } + BoardPlayerMotionStart(temp_r31, 1, 0x40000001); + fn_1_C7D4(); + while (GWPlayer[temp_r31].moving) { + HuPrcVSleep(); + } + while (BoardEventFlagGet() != 0) { + HuPrcVSleep(); + } + while (GWPlayer[temp_r31].moving) { + HuPrcVSleep(); + } + BoardPlayerMotionStart(temp_r31, 1, 0x40000001); +} + +static s32 fn_1_103C(void) { + s16 var_r30; + u32 temp_r31; + + var_r30 = GWPlayer[GWSystem.player_curr].space_curr; + temp_r31 = BoardSpaceFlagGet(0, var_r30) & 0x600000; + BoardRollDispSet(0); + if (temp_r31 & 0x200000) { + lbl_1_bss_4 = HuPrcChildCreate(fn_1_958, 0x2003, 0x2000, 0, boardMainProc); + HuPrcDestructorSet2(lbl_1_bss_4, fn_1_CF8); + while (lbl_1_bss_4) { + HuPrcVSleep(); + } + } else if (temp_r31 & 0x400000) { + fn_1_DB0(); + } + BoardRollDispSet(1); +} + +s32 fn_1_1130(s16 arg0, float arg1, float arg2) { + float var_f29; + float var_f31; + s32 var_r31; + + var_r31 = 0; + var_f31 = BoardModelRotYGet(arg0); + arg1 = fmod(arg1, 360.0); + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (arg1 < 0.0f) { + arg1 += 360.0f; + } + if (var_f31 != arg1) { + var_f29 = arg1 - var_f31; + if (var_f29 < 0.0f) { + var_f29 += 360.0f; + } + if (var_f29 < 180.0f) { + if (var_f29 > arg2) { + var_f31 += arg2; + } else { + var_f31 = arg1; + } + } else if (360.0f - var_f29 > arg2) { + var_f31 -= arg2; + } else { + var_f31 = arg1; + } + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 >= 360.0f) { + var_f31 -= 360.0f; + } + BoardModelRotYSet(arg0, var_f31); + } else { + var_r31 = 1; + } + return var_r31; +} diff --git a/src/REL/w07Dll/mg_coin.c b/src/REL/w07Dll/mg_coin.c new file mode 100644 index 00000000..4be845b4 --- /dev/null +++ b/src/REL/w07Dll/mg_coin.c @@ -0,0 +1,663 @@ +#include "REL/w04Dll.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/msm.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/window.h" +#include "game/board/audio.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/window.h" + +static void fn_1_CF8C(omObjData *arg0); +static void fn_1_D0AC(void); +static void fn_1_D0DC(void); +static void fn_1_D174(omObjData *arg0); +static void fn_1_D230(omObjData *arg0); +static void fn_1_D2A4(omObjData *arg0); +static void fn_1_D554(omObjData *arg0); +static void fn_1_D6A8(omObjData *arg0); +static void fn_1_D70C(omObjData *arg0); +static void fn_1_D770(void); +static void fn_1_E004(void); +static void fn_1_E144(omObjData *arg0); +static void fn_1_E18C(omObjData *arg0); +static void fn_1_E374(omObjData *arg0); +static void fn_1_E4C0(omObjData *arg0); +static void fn_1_E6AC(omObjData *arg0); +static s16 fn_1_E880(omObjData *arg0); + +static u16 lbl_1_bss_326; +static s16 lbl_1_bss_324; +static omObjData *lbl_1_bss_320; +static omObjData *lbl_1_bss_31C; +static omObjData *lbl_1_bss_318; +static s16 lbl_1_bss_314; +static Vec lbl_1_bss_308; +static Vec lbl_1_bss_2FC; +static s16 lbl_1_bss_2FA; +static s16 lbl_1_bss_2F8; +static s16 lbl_1_bss_2D0[20]; +static u16 lbl_1_bss_2C2[7]; +static u16 lbl_1_bss_2B4[7]; +static s32 lbl_1_bss_2B0; + +static s32 lbl_1_data_588 = -1; + +static char *lbl_1_data_5BC[] = { + "pia1", "pia2", "pia3", "pia4", + "pia5", "pia6", "pia7", "pia8", + "pia9" +}; + +static u16 lbl_1_data_5E0[] = { + 0x0100, 0x0200, 0x0040, 0x0020, + 0x0800, 0x0400, 0x0010 +}; + +static s32 lbl_1_data_5F0[] = { + 0x0000046D, + 0x0000046E, + 0x0000046F, + 0x00000470, + 0x00000471, + 0x00000472, + 0x00000473, + 0x00000474 +}; + +void fn_1_C7A0(void) { + BoardModelAttrSet(lbl_1_bss_14[7], 0x40000002); +} + +void fn_1_C7D4(void) { + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float temp_f30; + float var_f31; + float var_f29; + s16 temp_r30; + s32 i; + + BoardModelLayerSet(lbl_1_bss_14[9], 1); + lbl_1_bss_324 = GWSystem.player_curr; + lbl_1_data_588 = -1; + lbl_1_bss_2FA = 0; + for (i = 0; i < 7; i++) { + lbl_1_bss_2B4[i] = 0; + } + for (i = 0; i < 7; i++) { + do { + temp_r30 = frandmod(7); + } while (lbl_1_bss_2B4[temp_r30] != 0); + lbl_1_bss_2B4[temp_r30] = i + 1; + lbl_1_bss_2C2[temp_r30] = lbl_1_data_5E0[i]; + } + for (i = 0; i < 7; i++) { + OSReport("%d: %d %04X\n", i, lbl_1_bss_2B4[i], lbl_1_bss_2C2[i]); + } + lbl_1_bss_2F8 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 16), NULL, 0); + BoardModelVisibilitySet(lbl_1_bss_2F8, 0); + BoardModelAttrSet(lbl_1_bss_2F8, 0x40000002); + for (i = 0; i < 20; i++) { + lbl_1_bss_2D0[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 1); + BoardModelVisibilitySet(lbl_1_bss_2D0[i], 0); + } + BoardPlayerMotBlendSet(lbl_1_bss_324, 0xB4, 0xF); + while (!BoardPlayerMotBlendCheck(lbl_1_bss_324)) { + HuPrcVSleep(); + } + BoardWinCreate(2, MAKE_MESSID(32, 19), 3); + BoardWinWait(); + BoardWinKill(); + BoardPlayerPosGet(lbl_1_bss_324, &lbl_1_bss_308); + BoardModelPosGet(lbl_1_bss_14[9], &lbl_1_bss_2FC); + BoardPlayerPosGet(lbl_1_bss_324, &sp38); + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[7]), lbl_1_data_5BC[0], &sp2C); + sp20 = sp2C; + sp20.z = sp38.z; + sp20.y = sp38.y; + BoardPlayerPosLerpStart(lbl_1_bss_324, &sp38, &sp20, 0x3C); + while (fn_1_1130(lbl_1_bss_14[9], 270.0f, 30.0f) == 0) { + HuPrcVSleep(); + } + BoardModelPosGet(lbl_1_bss_14[9], &sp8); + sp14 = sp8; + sp14.x = sp2C.x; + PSVECSubtract(&sp14, &sp8, &sp38); + PSVECScale(&sp38, &sp38, 0.022727273f); + for (i = 0; i < 44; i++) { + BoardModelPosGet(lbl_1_bss_14[9], &sp8); + PSVECAdd(&sp8, &sp38, &sp8); + BoardModelPosSetV(lbl_1_bss_14[9], &sp8); + HuPrcVSleep(); + } + BoardModelPosSetV(lbl_1_bss_14[9], &sp14); + while (fn_1_1130(lbl_1_bss_14[9], 0.0f, 30.0f) == 0) { + HuPrcVSleep(); + } + while (GWPlayer[lbl_1_bss_324].moving) { + HuPrcVSleep(); + } + BoardPlayerMotBlendSet(lbl_1_bss_324, 0xB4, 0xF); + while (!BoardPlayerMotBlendCheck(lbl_1_bss_324)) { + HuPrcVSleep(); + } + BoardPlayerMotionShiftSet(lbl_1_bss_324, 4, 0.0f, 5.0f, 0); + var_f31 = 0.0f; + temp_f30 = 8.0f; + PSVECSubtract(&sp2C, &sp20, &sp38); + PSVECScale(&sp38, &sp38, 0.05f); + while (TRUE) { + BoardPlayerPosGet(lbl_1_bss_324, &sp20); + sp38.y = temp_f30 - var_f31 * var_f31 * 0.25f * 0.075f; + var_f31 += 1.0f; + PSVECAdd(&sp38, &sp20, &sp20); + sp14 = sp2C; + sp14.y = sp20.y; + PSVECSubtract(&sp14, &sp20, &sp14); + var_f29 = PSVECMag(&sp14); + if (var_f29 <= 1.0f) { + sp38.x = sp38.z = 0.0f; + sp20.x = sp2C.x; + sp20.z = sp2C.z; + } + if (sp20.y <= sp2C.y && sp38.y < 0.0f) { + sp20.y = sp2C.y; + break; + } + BoardPlayerPosSetV(lbl_1_bss_324, &sp20); + HuPrcVSleep(); + } + BoardPlayerPosSetV(lbl_1_bss_324, &sp20); + BoardPlayerMotBlendSet(lbl_1_bss_324, 0x5A, 0xF); + while (!BoardPlayerMotBlendCheck(lbl_1_bss_324)) { + HuPrcVSleep(); + } + HuPrcSleep(60); + lbl_1_bss_320 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_CF8C); + lbl_1_bss_318 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_D174); + lbl_1_bss_31C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, NULL); + lbl_1_bss_318->scale.x = 255.0f; + lbl_1_bss_314 = 0; + lbl_1_bss_326 = 0; +} + +static void fn_1_CF8C(omObjData *arg0) { + s32 spC; + + if (lbl_1_data_588 != -1) { + spC = HuAudSeqMidiCtrlGet(lbl_1_data_588, 0, 1); + if (msmMusGetStatus(lbl_1_data_588) == 0) { + HuAudSeqFadeOut(lbl_1_data_588, 100); + lbl_1_bss_2FA = 1; + } + if (lbl_1_bss_2FA == 1 && msmMusGetStatus(lbl_1_data_588) == 0) { + lbl_1_data_588 = -1; + BoardAudSeqPause(0, 0, 1000); + OSReport("BGM1 Restore\n"); + } + } + if (lbl_1_bss_326 != 0 && BoardMGDoneFlagGet() == 1) { + fn_1_D0DC(); + omDelObjEx(boardObjMan, arg0); + } +} + +static void fn_1_D0AC(void) { + lbl_1_bss_326 = 1; + BoardMGExit(); +} + +static void fn_1_D0DC(void) { + s32 i; + + omDelObjEx(boardObjMan, lbl_1_bss_31C); + BoardModelKill(lbl_1_bss_2F8); + for (i = 0; i < 20; i++) { + BoardModelKill(lbl_1_bss_2D0[i]); + } + BoardModelLayerSet(lbl_1_bss_14[9], 0); + BoardMGDoneFlagSet(0); +} + +static void fn_1_D174(omObjData *arg0) { + UnkMsmStruct_03 sp8; + + if (arg0->work[0] == 0) { + arg0->work[0] = MGSeqCreate(3, 0); + BoardAudSeqPause(0, 1, 1000); + return; + } + if (MGSeqStatGet(arg0->work[0]) == 0) { + sp8.unk00 = 1; + sp8.unk06 = 0; + sp8.unk05 = 0x7F; + sp8.unk04 = 1; + lbl_1_data_588 = msmMusPlay(0x1D, &sp8); + arg0->func = fn_1_D230; + } +} + +static void fn_1_D230(omObjData *arg0) { + s32 temp_r3; + + temp_r3 = HuAudSeqMidiCtrlGet(lbl_1_data_588, 0, 1); + if (temp_r3 >= 10 && temp_r3 <= 19) { + arg0->work[1]++; + arg0->func = fn_1_D2A4; + } +} + +static void fn_1_D2A4(omObjData *arg0) { + Vec sp18; + Vec spC; + float sp8; + ModelData *temp_r30; + s32 temp_r3; + + temp_r30 = &Hu3DData[BoardModelIDGet(lbl_1_bss_2F8)]; + sp8 = BoardModelRotYGet(lbl_1_bss_14[9]); + BoardModelPosGet(lbl_1_bss_14[9], &spC); + if (arg0->scale.x != 0.0f) { + arg0->scale.x -= 8.5f; + if (arg0->scale.x < 0.0f) { + arg0->scale.x = 0.0f; + } + BoardModelAlphaSet(lbl_1_bss_14[9], arg0->scale.x); + return; + } + temp_r3 = HuAudSeqMidiCtrlGet(lbl_1_data_588, 0, 1); + if (temp_r3 >= 20 && temp_r3 <= 29) { + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[7]), lbl_1_data_5BC[arg0->work[1]], &sp18); + spC.x = sp18.x; + BoardModelPosSetV(lbl_1_bss_14[9], &spC); + arg0->func = fn_1_D554; + if (arg0->work[1] < 8) { + BoardModelHookReset(lbl_1_bss_14[7]); + BoardModelVisibilitySet(lbl_1_bss_2F8, 1); + BoardModelMotionTimeSet(lbl_1_bss_2F8, lbl_1_bss_2B4[arg0->work[1] - 1]); + BoardModelHookSet(lbl_1_bss_14[7], lbl_1_data_5BC[arg0->work[1]], lbl_1_bss_2F8); + Hu3DMotionExec(BoardModelIDGet(lbl_1_bss_2F8), temp_r30->unk_08, temp_r30->unk_64, 0); + } + lbl_1_bss_31C->work[0] = 60; + lbl_1_bss_31C->unk10 = frandmod(40) + 10; + lbl_1_bss_31C->work[1] = arg0->work[1]; + lbl_1_bss_31C->func = fn_1_E18C; + } +} + +static void fn_1_D554(omObjData *arg0) { + float sp8; + + sp8 = BoardModelRotYGet(lbl_1_bss_14[9]); + arg0->scale.x += 8.5f; + if (arg0->scale.x > 255.0f) { + arg0->scale.x = 255.0f; + } + BoardModelAlphaSet(lbl_1_bss_14[9], arg0->scale.x); + if (arg0->scale.x == 255.0f) { + arg0->work[0] = 0; + lbl_1_bss_31C->work[1] = arg0->work[1]; + arg0->scale.x = 255.0f; + BoardModelAlphaSet(lbl_1_bss_14[9], arg0->scale.x); + if (arg0->work[1] == 8) { + arg0->func = fn_1_D70C; + lbl_1_bss_31C->work[2] = 1; + lbl_1_bss_31C->func = fn_1_E374; + } else { + arg0->func = fn_1_D6A8; + } + } +} + +static void fn_1_D6A8(omObjData *arg0) { + if (arg0->work[0] != 0) { + BoardModelHookReset(lbl_1_bss_14[7]); + BoardModelVisibilitySet(lbl_1_bss_2F8, 0); + arg0->func = fn_1_D230; + } +} + +static void fn_1_D70C(omObjData *arg0) { + Process *var_r30; + + if (arg0->work[0] == 1) { + var_r30 = HuPrcCreate(fn_1_D770, 0x2004, 0x1800, 0); + var_r30->user_data = arg0; + arg0->func = NULL; + } +} + +s16 lbl_1_data_62C[] = { + 1, 3, 5, 7, 10, 14, 18, 20 +}; + +static void fn_1_D770(void) { + Vec sp114[20]; + Vec sp24[20]; + Vec sp18; + Vec spC; + float temp_f29; + float var_f30; + float var_f31; + char sp8[4]; + Process *temp_r3; + omObjData *var_r28; + s32 var_r29; + s32 i; + + lbl_1_bss_314 = lbl_1_data_62C[lbl_1_bss_314 - 1]; + sprintf(sp8, "%d", lbl_1_bss_314); + BoardWinCreate(2, MAKE_MESSID(32, 20), 3); + BoardWinInsertMesSet(MAKE_MESSID_PTR(sp8), 0); + BoardWinWait(); + BoardWinKill(); + BoardPlayerMotBlendSet(lbl_1_bss_324, 0, 0xF); + while (!BoardPlayerMotBlendCheck(lbl_1_bss_324)) { + HuPrcVSleep(); + } + BoardPlayerPosGet(lbl_1_bss_324, &sp18); + for (i = 0; i < lbl_1_bss_314; i++) { + BoardModelVisibilitySet(lbl_1_bss_2D0[i], 1); + sp114[i] = sp18; + sp114[i].y += 800.0f + i * 120; + sp114[i].x += -25.0f + 50.0f * frand8() * 0.003921569f; + sp114[i].z += -25.0f + 50.0f * frand8() * 0.003921569f; + sp24[i].x = sp24[i].z = 0.0f; + sp24[i].y = 360.0f * frand8() * 0.003921569f; + BoardModelPosSetV(lbl_1_bss_2D0[i], &sp114[i]); + BoardModelRotSetV(lbl_1_bss_2D0[i], &sp24[i]); + } + var_f31 = -1.0f; + var_r29 = 0; + while (TRUE) { + for (i = 0; i < lbl_1_bss_314; i++) { + if (i < var_r29) { + continue; + } + sp114[i].y += var_f31; + BoardModelPosSetV(lbl_1_bss_2D0[i], &sp114[i]); + sp24[i].y += 45.0f; + if (sp24[i].y >= 360.0f) { + sp24[i].y -= 360.0f; + } + BoardModelRotSetV(lbl_1_bss_2D0[i], &sp24[i]); + if (sp114[i].y <= sp18.y + 80.0f) { + spC = sp114[i]; + CharModelCoinEffectCreate(1, &spC); + BoardModelVisibilitySet(lbl_1_bss_2D0[i], 0); + var_r29 += 1; + BoardPlayerCoinsAdd(lbl_1_bss_324, 1); + HuAudFXPlay(7); + omVibrate(lbl_1_bss_324, 12, 6, 6); + } + } + var_f31 *= 1.05f; + if (var_f31 < -20.0f) { + var_f31 = -20.0f; + } + if (var_r29 == lbl_1_bss_314) { + BoardPlayerMotionShiftSet(lbl_1_bss_324, 7, 0.0f, 10.0f, 0); + break; + } + HuPrcVSleep(); + } + while (!BoardPlayerMotionEndCheck(lbl_1_bss_324)) { + HuPrcVSleep(); + } + BoardWinCreate(2, MAKE_MESSID(32, 21), 3); + BoardWinWait(); + BoardWinKill(); + temp_r3 = HuPrcCreate(fn_1_E004, 0x2004, 0x1000, 0); + temp_r3->user_data = NULL; + BoardPlayerMotionShiftSet(lbl_1_bss_324, 4, 0.0f, 5.0f, 0); + var_f30 = 0.0f; + temp_f29 = 8.0f; + lbl_1_bss_308.z = sp18.z + 100.0f; + lbl_1_bss_308.x = sp18.x + 50.0f; + PSVECSubtract(&lbl_1_bss_308, &sp18, &spC); + PSVECScale(&spC, &spC, 0.04f); + while (TRUE) { + BoardPlayerPosGet(lbl_1_bss_324, &sp18); + spC.y = temp_f29 - var_f30 * var_f30 * 0.25f * 0.075f; + var_f30 += 1.0f; + PSVECAdd(&spC, &sp18, &sp18); + sp114[0] = lbl_1_bss_308; + sp114[0].y = sp18.y; + PSVECSubtract(&sp114[0], &sp18, &sp114[0]); + var_f31 = PSVECMag(&sp114[0]); + if (var_f31 <= 1.0f) { + spC.x = spC.z = 0.0f; + sp18.x = lbl_1_bss_308.x; + sp18.z = lbl_1_bss_308.z; + } + if (sp18.y <= lbl_1_bss_308.y && spC.y < 0.0f) { + sp18.y = lbl_1_bss_308.y; + break; + } + BoardPlayerPosSetV(lbl_1_bss_324, &sp18); + HuPrcVSleep(); + } + BoardPlayerPosSetV(lbl_1_bss_324, &sp18); + omVibrate(lbl_1_bss_324, 12, 6, 6); + while (!temp_r3->user_data) { + HuPrcVSleep(); + } + HuPrcKill(temp_r3); + var_r28 = HuPrcCurrentGet()->user_data; + var_r28->func = fn_1_E144; + HuPrcEnd(); +} + +static void fn_1_E004(void) { + Vec sp14; + Vec sp8; + s32 i; + + while (fn_1_1130(lbl_1_bss_14[9], 90.0f, 30.0f) == 0) { + HuPrcVSleep(); + } + BoardModelPosGet(lbl_1_bss_14[9], &sp14); + PSVECSubtract(&lbl_1_bss_2FC, &sp14, &sp8); + PSVECScale(&sp8, &sp8, 0.1f); + for (i = 0; i < 10; i++) { + BoardModelPosGet(lbl_1_bss_14[9], &sp14); + PSVECAdd(&sp14, &sp8, &sp14); + BoardModelPosSetV(lbl_1_bss_14[9], &sp14); + HuPrcVSleep(); + } + BoardModelPosSetV(lbl_1_bss_14[9], &lbl_1_bss_2FC); + while (fn_1_1130(lbl_1_bss_14[9], 0.0f, 30.0f) == 0) { + HuPrcVSleep(); + } + HuPrcCurrentGet()->user_data = (void*) 1; + while (TRUE) { + HuPrcVSleep(); + } +} + +static void fn_1_E144(omObjData *arg0) { + lbl_1_bss_326 = 1; + BoardMGExit(); + omDelObjEx(boardObjMan, arg0); +} + +static void fn_1_E18C(omObjData *arg0) { + s32 var_r29; + s16 var_r28; + s16 var_r30; + + var_r29 = HuAudSeqMidiCtrlGet(lbl_1_data_588, 0, 1); + if (var_r29 >= 20 && var_r29 <= 29) { + var_r28 = GWPlayer[lbl_1_bss_324].port; + var_r30 = 0; + if (GWPlayer[lbl_1_bss_324].com) { + if (--arg0->unk10 == 0) { + var_r30 = fn_1_E880(arg0); + } + } else { + var_r30 = HuPadBtnDown[var_r28]; + } + if (var_r30 & 0xF70) { + if ((var_r30 & lbl_1_bss_2C2[arg0->work[1] - 1]) && !(var_r30 & ~lbl_1_bss_2C2[arg0->work[1] - 1])) { + arg0->work[2] = 1; + } else { + arg0->work[2] = 0; + } + BoardModelVisibilitySet(lbl_1_bss_2F8, 0); + arg0->func = fn_1_E374; + } + } else { + BoardModelVisibilitySet(lbl_1_bss_2F8, 0); + arg0->work[2] = 0; + arg0->func = fn_1_E374; + lbl_1_bss_318->work[0] = 1; + fn_1_E374(arg0); + } +} + +static void fn_1_E374(omObjData *arg0) { + Vec sp20; + Vec sp14; + Vec sp8; + s32 temp_r3; + + temp_r3 = HuAudSeqMidiCtrlGet(lbl_1_data_588, 0, 1); + if (temp_r3 >= 30 && temp_r3 <= 39) { + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[7]), lbl_1_data_5BC[arg0->work[1]], &sp14); + BoardPlayerPosGet(lbl_1_bss_324, &sp20); + PSVECSubtract(&sp14, &sp20, &sp8); + PSVECScale(&sp8, &sp8, 0.04f); + arg0->trans.x = sp8.x; + arg0->trans.z = sp8.z; + arg0->trans.y = 5.0f; + arg0->rot.x = 0.0f; + arg0->scale.x = sp14.x; + arg0->scale.y = sp14.y; + arg0->scale.z = sp14.z; + BoardPlayerMotionShiftSet(lbl_1_bss_324, 4, 0.0f, 5.0f, 0); + arg0->func = fn_1_E4C0; + } +} + +static void fn_1_E4C0(omObjData *arg0) { + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + + BoardPlayerPosGet(lbl_1_bss_324, &sp2C); + sp14.x = arg0->scale.x; + sp14.y = arg0->scale.y; + sp14.z = arg0->scale.z; + sp20.x = arg0->trans.x; + sp20.z = arg0->trans.z; + sp20.y = arg0->trans.y - arg0->rot.x * arg0->rot.x * 0.25f * 0.075f; + arg0->rot.x += 1.0f; + PSVECAdd(&sp2C, &sp20, &sp2C); + sp8 = sp2C; + sp8.y = sp14.y; + PSVECSubtract(&sp14, &sp8, &sp8); + var_f31 = PSVECMag(&sp8); + if (var_f31 <= 1.0f) { + arg0->trans.x = arg0->trans.z = 0.0f; + sp2C.x = sp14.x; + sp2C.z = sp14.z; + } + if (sp2C.y <= sp14.y && sp20.y < 0.0f) { + sp2C.y = sp14.y; + BoardPlayerIdleSet(lbl_1_bss_324); + arg0->work[3] = 0; + if (arg0->work[2] != 0) { + arg0->func = fn_1_E6AC; + } else { + lbl_1_bss_318->work[0] = 1; + HuAudFXPlay(0x475); + arg0->func = NULL; + } + } + BoardPlayerPosSetV(lbl_1_bss_324, &sp2C); +} + +static void fn_1_E6AC(omObjData *arg0) { + Vec sp8; + float var_f31; + + if (arg0->work[3] == 0) { + lbl_1_bss_2B0 = -1; + var_f31 = 4.0f + 20.0f * (arg0->work[1] - 1); + BoardModelMotionTimeSet(lbl_1_bss_14[7], var_f31); + BoardModelAttrReset(lbl_1_bss_14[7], 0x40000002); + lbl_1_bss_314++; + arg0->work[3] = 1; + arg0->work[0] = 0x10; + lbl_1_bss_2B0 = HuAudFXPlay(lbl_1_data_5F0[arg0->work[1] - 1]); + } + if (--arg0->work[0] != 0) { + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[7]), lbl_1_data_5BC[arg0->work[1]], &sp8); + BoardPlayerPosSetV(lbl_1_bss_324, &sp8); + return; + } + if (lbl_1_bss_2B0 >= 0) { + HuAudFXStop(lbl_1_bss_2B0); + } + lbl_1_bss_318->work[0] = 1; + BoardModelAttrSet(lbl_1_bss_14[7], 0x40000002); + arg0->func = NULL; +} + +static s16 fn_1_E880(omObjData *arg0) { + s16 temp_r28; + s16 var_r30; + s32 temp_r29; + + temp_r28 = GWPlayer[lbl_1_bss_324].diff; + var_r30 = 0; + temp_r29 = frandmod(100); + switch (temp_r28) { + case 0: + if (temp_r29 < 35) { + var_r30 = lbl_1_bss_2C2[arg0->work[1] - 1]; + } else if (temp_r29 < 90) { + var_r30 = -1; + } else { + arg0->unk10 = 100; + } + break; + case 1: + if (temp_r29 < 55) { + var_r30 = lbl_1_bss_2C2[arg0->work[1] - 1]; + } else if (temp_r29 < 90) { + var_r30 = -1; + } else { + arg0->unk10 = 100; + } + break; + case 2: + if (temp_r29 < 85) { + var_r30 = lbl_1_bss_2C2[arg0->work[1] - 1]; + } else { + var_r30 = -1; + } + break; + case 3: + var_r30 = lbl_1_bss_2C2[arg0->work[1] - 1]; + break; + } + return var_r30; +} diff --git a/src/REL/w07Dll/mg_item.c b/src/REL/w07Dll/mg_item.c new file mode 100644 index 00000000..342d8f5c --- /dev/null +++ b/src/REL/w07Dll/mg_item.c @@ -0,0 +1,656 @@ +#include "REL/w04Dll.h" +#include "game/audio.h" +#include "game/data.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/board/audio.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/window.h" + +#include "dolphin.h" +#include "ext_math.h" + +static void fn_1_A71C(void); +static void fn_1_A7E8(void); +static void fn_1_C388(ModelData *model, ParticleData *particle, Mtx matrix); + +static s16 lbl_1_bss_2AC; +static s16 lbl_1_bss_2A6[3]; +static s16 lbl_1_bss_29E[4]; +static s16 lbl_1_bss_298[3]; +static float lbl_1_bss_294; +static s32 lbl_1_bss_290_pad; +static s32 lbl_1_bss_28C; +static AnimData *lbl_1_bss_288; + +static char *lbl_1_data_51C[] = { + "item1", "item2", "item3", + "switch1", "switch2", "switch3" +}; + +static s32 lbl_1_data_534[] = { + 0x00000466, + 0x00000467, + 0x00000468 +}; + +static s32 lbl_1_data_540[] = { + DATA_MAKE_NUM(DATADIR_BOARD, 109), + DATA_MAKE_NUM(DATADIR_BOARD, 110), + DATA_MAKE_NUM(DATADIR_BOARD, 111), + DATA_MAKE_NUM(DATADIR_BOARD, 112), + DATA_MAKE_NUM(DATADIR_BOARD, 113), + DATA_MAKE_NUM(DATADIR_BOARD, 114), + DATA_MAKE_NUM(DATADIR_BOARD, 115), + DATA_MAKE_NUM(DATADIR_BOARD, 116), + DATA_MAKE_NUM(DATADIR_BOARD, 118), + DATA_MAKE_NUM(DATADIR_BOARD, 119), + DATA_MAKE_NUM(DATADIR_BOARD, 120), + DATA_MAKE_NUM(DATADIR_BOARD, 121), + DATA_MAKE_NUM(DATADIR_BOARD, 122), + DATA_MAKE_NUM(DATADIR_BOARD, 123), + DATA_MAKE_NUM(DATADIR_W02, 24), + DATA_MAKE_NUM(DATADIR_W02, 25), + DATA_MAKE_NUM(DATADIR_W02, 26), + -1 +}; + +void fn_1_A0F8(void) { + Vec sp8; + s32 i; + + BoardModelAttrSet(lbl_1_bss_14[6], 0x40000002); + for (i = 0; i < 3; i++) { + lbl_1_bss_29E[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 13), NULL, 1); + BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[i + 3], lbl_1_bss_29E[i]); + BoardModelAttrSet(lbl_1_bss_29E[i], 0x40000002); + } + BoardModelPosGet(lbl_1_bss_14[6], &sp8); + lbl_1_bss_294 = sp8.y; +} + +void fn_1_A1F0(void) { + Vec sp38[3]; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + s16 temp_r29; + s32 var_r30; + s32 i; + + lbl_1_bss_2AC = GWSystem.player_curr; + temp_r29 = BoardModelMotionCreate(lbl_1_bss_14[10], DATA_MAKE_NUM(DATADIR_BGUEST, 25)); + HuPrcSleep(60); + var_f31 = 0.0f; + for (i = 0; i < 30; i++) { + var_f31 += 3.0f; + BoardModelRotYSet(lbl_1_bss_14[10], var_f31); + HuPrcVSleep(); + } + BoardModelMotionStart(lbl_1_bss_14[10], temp_r29, 0); + for (i = 0; i < 3; i++) { + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[6]), lbl_1_data_51C[i], &sp38[i]); + } + while (TRUE) { + var_r30 = 0; + for (i = 0; i < 3; i++) { + BoardModelPosGet(lbl_1_bss_298[i], &sp2C); + sp2C.y += 2.0f; + if (sp2C.y >= sp38[i].y) { + sp2C.y = sp38[i].y; + var_r30++; + } + BoardModelPosSetV(lbl_1_bss_298[i], &sp2C); + } + if (var_r30 == 3) { + break; + } + HuPrcVSleep(); + } + for (i = 0; i < 3; i++) { + BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[i], lbl_1_bss_298[i]); + } + while (BoardModelMotionTimeGet(lbl_1_bss_14[10]) < BoardModelMotionMaxTimeGet(lbl_1_bss_14[10])) { + HuPrcVSleep(); + } + BoardModelMotionShiftSet(lbl_1_bss_14[10], 1, 0.0f, 5.0f, 0x40000001); + BoardAudSeqPause(0, 1, 1000); + BoardModelMotionTimeSet(lbl_1_bss_14[6], 0.0f); + BoardModelAttrReset(lbl_1_bss_14[6], 0x40000002); + HuPrcSleep(20); + HuAudFXPlay(0x469); + HuPrcSleep(50); + BoardMusStart(1, 0x1E, 0x7F, 0); + HuAudFXPlay(0x46C); + while (BoardModelMotionTimeGet(lbl_1_bss_14[6]) < 202.0f) { + HuPrcVSleep(); + } + BoardModelMotionTimeSet(lbl_1_bss_14[6], 202.0f); + BoardModelAttrSet(lbl_1_bss_14[6], 0x40000002); + BoardModelMotionKill(lbl_1_bss_14[10], temp_r29); + sp14.x = -35.0f; + sp14.y = sp14.z = 0.0f; + sp8.x = 0.0f; + sp8.y = 0.0f; + sp8.z = -150.0f; + BoardCameraMotionStartEx(lbl_1_bss_14[6], &sp14, &sp8, 1500.0f, 25.0f, 21); + BoardPlayerPosGet(lbl_1_bss_2AC, &sp2C); + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[6]), lbl_1_data_51C[4], &sp20); + sp20.z = sp2C.z - 50.0f; + sp20.y = sp2C.y; + BoardPlayerPosLerpStart(lbl_1_bss_2AC, &sp2C, &sp20, 0x3C); + while (GWPlayer[lbl_1_bss_2AC].moving) { + HuPrcVSleep(); + } + BoardPlayerMotBlendSet(lbl_1_bss_2AC, 0xB4, 0xF); + while (!BoardPlayerMotBlendCheck(lbl_1_bss_2AC)) { + HuPrcVSleep(); + } + BoardCameraMotionWait(); + fn_1_A7E8(); + BoardMGExit(); + while (TRUE) { + if (BoardMGDoneFlagGet() == 1) { + BoardMGDoneFlagSet(0); + fn_1_BA7C(); + break; + } + HuPrcVSleep(); + } + HuPrcEnd(); +} + +static void fn_1_A71C(void) { + Vec sp8; + float var_f31; + s16 temp_r31; + + var_f31 = 0.0f; + temp_r31 = (s16) HuPrcCurrentGet()->user_data; + while (TRUE) { + BoardModelPosGet(temp_r31, &sp8); + sp8.y += 0.25 * sind(var_f31); + var_f31 += 5.0f; + if (var_f31 >= 360.0f) { + var_f31 -= 360.0f; + } + BoardModelPosSetV(temp_r31, &sp8); + HuPrcVSleep(); + } +} + +static void fn_1_A7E8(void) { + Vec sp54[3]; + Vec sp48; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + float sp10[2]; + float var_f29; + float var_f30; + float var_f31; + Process *var_r20; + s16 var_r30; + s16 var_r28; + s16 var_r27; + s16 var_r26; + s16 var_r25; + s16 var_r24; + u16 temp_r29; + u16 var_r23; + s16 var_r22; + s16 var_r21; + s16 var_r19; + u16 temp_r18; + u16 var_r17; + ParticleData *spC; + s32 sp8; + s32 i; + + var_r28 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W04, 14), NULL, 0); + BoardModelAttrSet(var_r28, 0x40000001); + BoardModelVisibilitySet(var_r28, 0); + var_r30 = 1; + for (i = 0; i < 3; i++) { + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[6]), lbl_1_data_51C[i + 3], &sp54[i]); + sp54[i].y += 50.0f; + } + var_r25 = MGSeqCreate(3, 0); + while (MGSeqStatGet(var_r25) != 0) { + HuPrcVSleep(); + } + var_r24 = 5; + var_r21 = 60; + var_r25 = MGSeqCreate(1, var_r24, 0x120, 0x40); + HuWinMesMaxSizeGet(1, sp10, MAKE_MESSID(32, 22)); + var_r27 = HuWinCreate(-10000.0f, 368.0f, sp10[0], sp10[1], 0); + HuWinMesSet(var_r27, MAKE_MESSID(32, 22)); + HuWinBGTPLvlSet(var_r27, 0.0f); + HuWinMesSpeedSet(var_r27, 0); + BoardModelVisibilitySet(var_r28, 1); + BoardModelPosSetV(var_r28, &sp54[var_r30]); + var_r22 = 30; + var_r19 = 0; + temp_r18 = GWPlayer[lbl_1_bss_2AC].port; + while (TRUE) { + var_r21--; + if (var_r21 == 0) { + var_r21 = 60; + if (--var_r24 < 0) { + break; + } + MGSeqParamSet(var_r25, 1, var_r24); + } + if (GWPlayer[lbl_1_bss_2AC].com) { + if (var_r22 != 0) { + var_r22--; + } else { + var_r22 = frandmod(30) + 15; + if (frandBool() || var_r19 == 3) { + var_r17 = 0x100; + } else { + if (frandBool()) { + var_r23 = 1; + } else { + var_r23 = 2; + } + var_r19++; + } + } + } else { + var_r17 = HuPadBtnDown[temp_r18]; + var_r23 = HuPadDStkRep[temp_r18]; + } + if (var_r17 & 0x100) { + break; + } + if ((var_r23 & 1) && var_r30 != 0) { + HuAudFXPlay(0); + var_r30--; + } + if ((var_r23 & 2) && var_r30 != 2) { + HuAudFXPlay(0); + var_r30++; + } + BoardModelPosSetV(var_r28, &sp54[var_r30]); + HuPrcVSleep(); + } + HuAudFXPlay(2); + MGSeqParamSet(var_r25, 2, -1); + HuWinKill(var_r27); + for (i = 0; i < 360; i += 12) { + sp48.x = sp48.y = sp48.z = 1.0 + 0.8f * sind(i % 180); + BoardModelScaleSetV(var_r28, &sp48); + HuPrcVSleep(); + } + BoardModelVisibilitySet(var_r28, 0); + BoardPlayerPosGet(lbl_1_bss_2AC, &sp18); + BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 4, 0.0f, 5.0f, 0); + var_f30 = 0.0f; + var_f29 = 12.0f; + sp3C = sp54[var_r30]; + BoardPlayerPosGet(lbl_1_bss_2AC, &sp30); + PSVECSubtract(&sp3C, &sp30, &sp3C); + PSVECScale(&sp3C, &sp3C, 0.05f); + while (TRUE) { + BoardPlayerPosGet(lbl_1_bss_2AC, &sp30); + sp3C.y = var_f29 - var_f30 * var_f30 * 0.25f * 0.075f; + var_f30 += 1.0f; + PSVECAdd(&sp3C, &sp30, &sp30); + if (sp30.y <= sp54[var_r30].y - 40.0f && sp3C.y < 0.0f) { + sp30.y = sp54[var_r30].y - 40.0f; + break; + } + BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30); + sp48 = sp54[var_r30]; + sp48.y = sp30.y = 0.0f; + PSVECSubtract(&sp48, &sp30, &sp30); + var_f31 = PSVECMag(&sp30); + if (var_f31 <= 1.0f) { + sp3C.x = sp3C.z = 0.0f; + } + HuPrcVSleep(); + } + BoardAudSeqFadeOut(1, 100); + HuAudFXPlay(lbl_1_data_534[var_r30]); + BoardModelMotionTimeSet(lbl_1_bss_29E[var_r30], 0.0f); + BoardModelAttrReset(lbl_1_bss_29E[var_r30], 0x40000002); + BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30); + BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 1, 0.0f, 5.0f, 0x40000001); + while (BoardModelMotionTimeGet(lbl_1_bss_29E[var_r30]) < BoardModelMotionMaxTimeGet(lbl_1_bss_29E[var_r30])) { + if (BoardModelMotionTimeGet(lbl_1_bss_29E[var_r30]) >= 13.0f) { + BoardPlayerPosGet(lbl_1_bss_2AC, &sp30); + sp30.y += 1.0f; + BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30); + } + HuPrcVSleep(); + } + temp_r29 = frandmod(3); + BoardModelHookReset(lbl_1_bss_14[6]); + for (i = 0; i < 3; i++) { + BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[i + 3], lbl_1_bss_29E[i]); + if (i != temp_r29) { + BoardModelVisibilitySet(lbl_1_bss_298[i], 0); + } + } + BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[1], lbl_1_bss_298[temp_r29]); + BoardModelAttrReset(lbl_1_bss_14[6], 0x40000002); + HuPrcSleep(30); + HuAudFXPlay(0x310); + while (BoardModelMotionTimeGet(lbl_1_bss_14[6]) < BoardModelMotionMaxTimeGet(lbl_1_bss_14[6])) { + HuPrcVSleep(); + } + BoardModelHookReset(lbl_1_bss_14[6]); + for (i = 0; i < 3; i++) { + BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[i + 3], lbl_1_bss_29E[i]); + } + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[6]), lbl_1_data_51C[1], &sp24); + BoardModelPosSetV(lbl_1_bss_298[temp_r29], &sp24); + var_r20 = HuPrcChildCreate(fn_1_A71C, 0x2002, 0x800, 0, boardMainProc); + var_r20->user_data = (void*) lbl_1_bss_298[temp_r29]; + var_r26 = Hu3DParticleCreate(lbl_1_bss_288, 100); + spC = Hu3DData[var_r26].unk_120; + spC->unk_02 = lbl_1_bss_298[temp_r29]; + Hu3DParticleHookSet(var_r26, fn_1_C388); + Hu3DParticleColSet(var_r26, 0xFF, 0xFF, 0); + Hu3DModelPosSet(var_r26, 0.0f, 0.0f, 0.0f); + Hu3DParticleBlendModeSet(var_r26, 1); + Hu3DModelLayerSet(var_r26, 2); + lbl_1_bss_28C = HuAudFXPlay(0x35F); + BoardPlayerMotBlendSet(lbl_1_bss_2AC, 0, 0xF); + while (!BoardPlayerMotBlendCheck(lbl_1_bss_2AC)) { + HuPrcVSleep(); + } + BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 4, 0.0f, 5.0f, 0); + var_f30 = 0.0f; + var_f29 = 12.0f; + BoardPlayerPosGet(lbl_1_bss_2AC, &sp30); + PSVECSubtract(&sp18, &sp30, &sp3C); + PSVECScale(&sp3C, &sp3C, 0.05f); + while (TRUE) { + BoardPlayerPosGet(lbl_1_bss_2AC, &sp30); + sp3C.y = var_f29 - var_f30 * var_f30 * 0.25f * 0.075f; + var_f30 += 1.0f; + PSVECAdd(&sp3C, &sp30, &sp30); + if (sp30.y < sp18.y) { + sp30.y = sp18.y; + break; + } + BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30); + sp48 = sp18; + sp48.y = sp30.y = 0.0f; + PSVECSubtract(&sp48, &sp30, &sp30); + var_f31 = PSVECMag(&sp30); + if (var_f31 <= 1.0f) { + sp3C.x = sp3C.z = 0.0f; + } + HuPrcVSleep(); + } + omVibrate(lbl_1_bss_2AC, 12, 6, 6); + BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30); + BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 1, 0.0f, 5.0f, 0x40000001); + BoardModelPosGet(lbl_1_bss_298[temp_r29], &sp24); + sp3C = sp24; + sp3C.z += 100.0f; + PSVECSubtract(&sp3C, &sp24, &sp3C); + PSVECScale(&sp3C, &sp3C, 0.033333335f); + for (i = 0; i < 30; i++) { + BoardModelPosGet(lbl_1_bss_298[temp_r29], &sp24); + PSVECAdd(&sp24, &sp3C, &sp24); + BoardModelPosSetV(lbl_1_bss_298[temp_r29], &sp24); + HuPrcVSleep(); + } + BoardPlayerPosGet(lbl_1_bss_2AC, &sp30); + sp24.y = sp30.y; + BoardPlayerPosLerpStart(lbl_1_bss_2AC, &sp30, &sp24, 0x3C); + while (GWPlayer[lbl_1_bss_2AC].moving) { + HuPrcVSleep(); + } + BoardPlayerMotBlendSet(lbl_1_bss_2AC, 0, 0xF); + while (!BoardPlayerMotBlendCheck(lbl_1_bss_2AC)) { + HuPrcVSleep(); + } + var_f31 = 90.0f; + for (i = 0; i < 15; i++) { + var_f31 -= 3.0f; + BoardModelRotYSet(lbl_1_bss_14[10], var_f31); + HuPrcVSleep(); + } + BoardWinCreate(2, MAKE_MESSID(32, 15), 3); + BoardWinInsertMesSet(MAKE_MESSID(8, lbl_1_bss_2A6[temp_r29]), 0); + BoardWinWait(); + BoardWinKill(); + HuAudFXPlay(0x30D); + HuPrcKill(var_r20); + BoardPlayerPosGet(lbl_1_bss_2AC, &sp30); + BoardModelPosGet(lbl_1_bss_298[temp_r29], &sp24); + var_f29 = 1.0f; + var_f31 = (sp30.y - sp24.y) / 30.0f; + var_f30 = -0.04f; + var_r27 = 0; + HuAudFXFadeOut(lbl_1_bss_28C, 0x1F3); + while (var_r27 == 0) { + sp24.y += var_f31; + var_f29 += var_f30; + if (var_f29 < 0.0f) { + var_f29 = 0.0f; + var_r27 = 1; + } + sp48.x = sp48.y = sp48.z = var_f29; + BoardModelPosSetV(lbl_1_bss_298[temp_r29], &sp24); + BoardModelScaleSetV(lbl_1_bss_298[temp_r29], &sp48); + HuPrcVSleep(); + } + HuAudFXStop(lbl_1_bss_28C); + BoardModelVisibilitySet(lbl_1_bss_298[temp_r29], 0); + BoardPlayerItemAdd(lbl_1_bss_2AC, lbl_1_bss_2A6[temp_r29]); + omVibrate(lbl_1_bss_2AC, 12, 6, 6); + sp8 = HuAudSStreamPlay(2); + BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 7, 0.0f, 5.0f, 0); + while (!BoardPlayerMotionEndCheck(lbl_1_bss_2AC)) { + HuPrcVSleep(); + } + var_f31 = 45.0f; + for (i = 0; i < 15; i++) { + var_f31 -= 3.0f; + BoardModelRotYSet(lbl_1_bss_14[10], var_f31); + HuPrcVSleep(); + } + BoardModelRotYSet(lbl_1_bss_14[10], 0.0f); + HuPrcSleep(30); + while (HuAudSStreamStatGet(sp8) != 0) { + HuPrcVSleep(); + } + BoardAudSeqPause(0, 0, 1000); + BoardWinCreate(2, MAKE_MESSID(32, 16), 3); + BoardWinWait(); + BoardWinKill(); + BoardModelMotionTimeSet(lbl_1_bss_14[6], 0.0f); + BoardModelAttrSet(lbl_1_bss_14[6], 0x40000002); + Hu3DModelKill(var_r26); + BoardModelKill(var_r28); +} + +void fn_1_BA7C(void) { + s32 i; + + for (i = 0; i < 3; i++) { + BoardModelKill(lbl_1_bss_298[i]); + } + if (lbl_1_bss_288) { + HuSprAnimKill(lbl_1_bss_288); + lbl_1_bss_288 = NULL; + } +} + +void fn_1_BB00(s16 *arg0) { + Vec sp54[3]; + Vec sp30[3]; + Vec sp24; + Vec sp18; + float spC[3]; + float temp_f28; + float var_f27; + float var_f29; + s32 var_r30; + s32 i; + + for (i = 0; i < 3; i++) { + lbl_1_bss_2A6[i] = arg0[i]; + lbl_1_bss_298[i] = BoardModelCreate(lbl_1_data_540[lbl_1_bss_2A6[i]], NULL, 0); + BoardModelVisibilitySet(lbl_1_bss_298[i], 0); + if (lbl_1_bss_2A6[i] == 11) { + BoardModelAttrSet(lbl_1_bss_298[i], 0x40000001); + } + if (lbl_1_bss_2A6[i] == 5) { + Hu3DData[BoardModelIDGet(lbl_1_bss_298[i])].unk_F0[1][3] = -50.0f; + } + if (lbl_1_bss_2A6[i] == 4) { + BoardModelMotionSpeedSet(lbl_1_bss_298[i], 0.0f); + } + } + if (lbl_1_bss_288 == NULL) { + lbl_1_bss_288 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0)); + HuSprAnimLock(lbl_1_bss_288); + } + BoardModelMotionTimeSet(lbl_1_bss_14[6], 0.0f); + BoardModelAttrSet(lbl_1_bss_14[6], 0x40000002); + sp18.x = sp18.y = sp18.z = 0.0f; + for (i = 0; i < 3; i++) { + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[6]), lbl_1_data_51C[i], &sp54[i]); + sp54[i].y += -50.0f; + BoardModelVisibilitySet(lbl_1_bss_298[i], 1); + BoardModelPosSetV(lbl_1_bss_298[i], &sp54[i]); + BoardModelPosGet(lbl_1_bss_14[10], &sp24); + BoardModelPosSetV(lbl_1_bss_298[i], &sp24); + BoardModelScaleSetV(lbl_1_bss_298[i], &sp18); + PSVECSubtract(&sp54[i], &sp24, &sp30[i]); + PSVECNormalize(&sp30[i], &sp30[i]); + spC[i] = 0.0f; + } + sp30[0].y = 16.0f; + sp30[1].y = 13.0f; + sp30[2].y = 10.0f; + HuAudFXPlay(0x362); + var_f29 = 0.0f; + while (TRUE) { + var_r30 = 0; + var_f29 += 0.05f; + if (var_f29 > 1.0f) { + var_f29 = 1.0f; + } + sp18.x = sp18.y = sp18.z = var_f29; + for (i = 0; i < 3; i++) { + BoardModelPosGet(lbl_1_bss_298[i], &sp24); + temp_f28 = sp30[i].y - spC[i] * spC[i] * 0.25f * 0.075f; + sp24.x += 6.55f * sp30[i].x; + sp24.z += 6.55f * sp30[i].z; + sp24.y += temp_f28; + var_f27 = VECDistanceXZ(&sp54[i], &sp24); + if (var_f27 < 3.0f) { + sp30[i].x = sp30[i].z = 0.0f; + sp24.x = sp54[i].x; + sp24.z = sp54[i].z; + } + if (sp24.y <= sp54[i].y && temp_f28 < 0.0f) { + sp24.y = sp54[i].y; + var_r30++; + } + BoardModelPosSetV(lbl_1_bss_298[i], &sp24); + BoardModelScaleSetV(lbl_1_bss_298[i], &sp18); + spC[i] += 1.0f; + } + if (var_r30 == 3) { + break; + } + HuPrcVSleep(); + } + for (i = 0; i < 3; i++) { + BoardModelPosSetV(lbl_1_bss_298[i], &sp54[i]); + } +} + +void fn_1_C2BC(void) { + Vec sp8; + float var_f31; + s32 i; + s32 j; + + var_f31 = 1.0f; + for (i = 0; i < 20; i++) { + var_f31 -= 0.05f; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + sp8.x = sp8.y = sp8.z = var_f31; + for (j = 0; j < 3; j++) { + BoardModelScaleSetV(lbl_1_bss_298[j], &sp8); + } + HuPrcVSleep(); + } +} + +static void fn_1_C388(ModelData *model, ParticleData *particle, Mtx matrix) { + Vec sp8; + HsfanimStruct01 *var_r31; + float var_f31; + float temp_f30; + float temp_f29; + s32 var_r28; + s32 i; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + particle->unk_00 = 0; + } + BoardModelScaleGet(particle->unk_02, &sp8); + var_f31 = sp8.x; + BoardModelPosGet(particle->unk_02, &sp8); + for (i = 0; i < 22; i++) { + var_r31 = particle->unk_48; + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + if (var_r31->unk2C == 0.0f) { + break; + } + } + if (var_r28 != particle->unk_30) { + temp_f30 = 0.003921569f * frand8() * 360.0f; + temp_f29 = var_f31 * (20.0f + 0.003921569f * frand8() * 60.0f); + var_r31->unk34.x = sp8.x + temp_f29 * sind(temp_f30); + var_r31->unk34.z = sp8.z + temp_f29 * cosd(temp_f30); + var_r31->unk34.y = sp8.y + var_f31 * (-30.0f + 0.003921569f * frand8() * 40.0f); + var_r31->unk08.x = 0.5f + 0.003921569f * frand8() * 3.0f; + var_r31->unk08.y = 0.3f + 0.003921569f * frand8() * 2.0f; + var_r31->unk40.a = 0xB4; + var_r31->unk2C = var_f31 * 15.0f; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + if (var_r31->unk2C != 0.0f) { + var_r31->unk34.y -= var_r31->unk08.x; + var_r31->unk2C -= var_r31->unk08.y; + if (var_r31->unk2C <= 0.0f) { + var_r31->unk2C = 0.0f; + } + } + } +} diff --git a/src/game/board/main.c b/src/game/board/main.c index af788a8c..21fa6dcb 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -157,10 +157,10 @@ void BoardObjectSetup(BoardFunc create, BoardFunc destroy) case OVL_W21: GWSystem.board = BOARD_ID_EXTRA2; break; - - case OVL_W07: - GWSystem.board = BOARD_ID_CUSTOM; - break; + //TODO: this shifts something and causes the game to not work...figure out why + // case OVL_W07: + // GWSystem.board = BOARD_ID_CUSTOM; + // break; } } From c43393160d2fd71d6c29d45d5be6914a78ea98da Mon Sep 17 00:00:00 2001 From: Rainchus Date: Fri, 2 Aug 2024 17:16:08 -0500 Subject: [PATCH 006/311] add new script to create a modded dolphin directory, run mod by running the modified main.dol in mod_root/mod/sys/main.dol --- .gitignore | 3 +- dolphin_rels_to_mod.py | 74 ++++++++++++++++++++++++++++++++++++++++++ src/game/board/main.c | 6 ++-- 3 files changed, 79 insertions(+), 4 deletions(-) create mode 100644 dolphin_rels_to_mod.py diff --git a/.gitignore b/.gitignore index dd592e4b..2ac13758 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,5 @@ ctx.c tools/output/* rels_to_mod.py orig/root -*.iso \ No newline at end of file +*.iso +mod_root/ \ No newline at end of file diff --git a/dolphin_rels_to_mod.py b/dolphin_rels_to_mod.py new file mode 100644 index 00000000..6c7d592f --- /dev/null +++ b/dolphin_rels_to_mod.py @@ -0,0 +1,74 @@ +import os +import shutil +import sys + +""" +Usage: extract an mp4 iso to mod_root/orig/ +Build the dtk project, then run this script which you can then run your mod changes by running +mod_root/mod/sys/main.dol in dolphin +""" + +def copy_build_files_to_mod(src_dir, dest_dir): + #copy dol + build_dol = "build/GMPE01_00/main.dol" + mod_dol_dir = "mod_root/mod/sys/main.dol" + shutil.copy(build_dol, mod_dol_dir) + print(f"Copied {build_dol} to {mod_dol_dir}") + + #copy rels + rel_files_found = False + for root, dirs, files in os.walk(src_dir): + for file in files: + if file.endswith('.rel'): + rel_files_found = True + source_path = os.path.join(root, file) + destination_path = os.path.join(dest_dir, file) + + # Create destination directory if it doesn't exist + os.makedirs(os.path.dirname(destination_path), exist_ok=True) + + # Copy .rel file to root/dll/ + shutil.copy(source_path, destination_path) + + print(f"{file} found and copied to {destination_path}") + + if not rel_files_found: + print("No .rel files found.") + +def copy_mod_orig_to_mod(mod_orig, mod_dir): + # Ensure the mod directory exists + os.makedirs(mod_dir, exist_ok=True) + + # Iterate through all items in the source directory + for item in os.listdir(mod_orig): + s = os.path.join(mod_orig, item) + d = os.path.join(mod_dir, item) + # If the item is a directory, copy it to the destination + if os.path.isdir(s): + shutil.copytree(s, d, dirs_exist_ok=True) + print(f"Copied directory {s} to {d}") + +def main(): + src_directory = "build/GMPE01_00" + rels_destination_directory = "mod_root/mod/files/dll" + mod_dest = "mod_root/" + mod_orig = "mod_root/orig/" + mod_dir = "mod_root/mod/" + + if not os.path.isdir(mod_dest): + raise FileNotFoundError(f"The directory {mod_dest} does not exist. Manually create a mod_root/ directory at the root of the project.") + if not os.path.isdir(mod_orig): + raise FileNotFoundError(f"The directory {mod_orig} does not exist. Extract the entire iso to mod_root/orig/") + + if '--clean' in sys.argv: + print("--clean option detected. Copying directories from mod_root/orig/ to mod_root/mod/.") + copy_mod_orig_to_mod(mod_orig, mod_dir) + elif not os.path.isdir(mod_dir): + os.makedirs(mod_dir) + print(f"{mod_dir} created.") + copy_mod_orig_to_mod(mod_orig, mod_dir) + + copy_build_files_to_mod(src_directory, rels_destination_directory) + +if __name__ == "__main__": + main() diff --git a/src/game/board/main.c b/src/game/board/main.c index 21fa6dcb..b718daeb 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -158,9 +158,9 @@ void BoardObjectSetup(BoardFunc create, BoardFunc destroy) GWSystem.board = BOARD_ID_EXTRA2; break; //TODO: this shifts something and causes the game to not work...figure out why - // case OVL_W07: - // GWSystem.board = BOARD_ID_CUSTOM; - // break; + case OVL_W07: + GWSystem.board = BOARD_ID_CUSTOM; + break; } } From 75c841640c4c1948050b5600fdb05387019c8b6d Mon Sep 17 00:00:00 2001 From: Rainchus Date: Fri, 2 Aug 2024 17:16:44 -0500 Subject: [PATCH 007/311] remove comment as problem is fixed --- src/game/board/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/game/board/main.c b/src/game/board/main.c index b718daeb..b88ad9bf 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -157,7 +157,7 @@ void BoardObjectSetup(BoardFunc create, BoardFunc destroy) case OVL_W21: GWSystem.board = BOARD_ID_EXTRA2; break; - //TODO: this shifts something and causes the game to not work...figure out why + case OVL_W07: GWSystem.board = BOARD_ID_CUSTOM; break; From 0b964b2f988442f996ef996f53ab5b011f0aa517 Mon Sep 17 00:00:00 2001 From: Rainchus Date: Fri, 2 Aug 2024 18:24:40 -0500 Subject: [PATCH 008/311] extend all known arrays/data for custom boards (game doesn't boot) --- include/datadir_table.h | 3 +- src/game/board/audio.c | 14 ++++-- src/game/board/battle.c | 3 +- src/game/board/boo.c | 1 + src/game/board/boo_house.c | 70 +++++++++++++++++++---------- src/game/board/com.c | 4 +- src/game/board/item.c | 26 ++++++++++- src/game/board/lottery.c | 11 ++++- src/game/board/mg_setup.c | 32 +++++++++++--- src/game/board/pause.c | 13 +++--- src/game/board/star.c | 22 ++++++++-- src/game/board/start.c | 19 ++++++-- src/game/board/view.c | 90 ++++++++++++++++++++++++++++++-------- 13 files changed, 237 insertions(+), 71 deletions(-) diff --git a/include/datadir_table.h b/include/datadir_table.h index 408931fb..0cdc79ad 100644 --- a/include/datadir_table.h +++ b/include/datadir_table.h @@ -137,4 +137,5 @@ DATADIR_DEFINE(YOSHI, "data/yoshi.bin") DATADIR_DEFINE(YOSHIMDL0, "data/yoshimdl0.bin") DATADIR_DEFINE(YOSHIMDL1, "data/yoshimdl1.bin") DATADIR_DEFINE(YOSHIMOT, "data/yoshimot.bin") -DATADIR_DEFINE(ZTAR, "data/ztar.bin") \ No newline at end of file +DATADIR_DEFINE(ZTAR, "data/ztar.bin") +DATADIR_DEFINE(W07, "data/w07.bin") \ No newline at end of file diff --git a/src/game/board/audio.c b/src/game/board/audio.c index 3be2dcbb..18e8340d 100755 --- a/src/game/board/audio.c +++ b/src/game/board/audio.c @@ -8,10 +8,18 @@ static s16 boardSeq[2][2]; static s32 boardFX = -1; +//mod: add new music id for extra board static s16 boardMusTbl[] = { - 0x000D, 0x0011, 0x0015, - 0x001C, 0x0021, 0x0025, - 0x0028, 0x0029, 0x002A +/* [BOARD_ID_MAIN1] */ 0x000D, +/* [BOARD_ID_MAIN2] */ 0x0011, +/* [BOARD_ID_MAIN3] */ 0x0015, +/* [BOARD_ID_MAIN4] */ 0x001C, +/* [BOARD_ID_MAIN5] */ 0x0021, +/* [BOARD_ID_MAIN6] */ 0x0025, +/* [BOARD_ID_TUTORIAL] */ 0x0028, +/* [BOARD_ID_EXTRA1] */ 0x0029, +/* [BOARD_ID_EXTRA2] */ 0x002A, +/* [BOARD_ID_CUSTOM] */ 0x002A, }; void BoardMusStartBoard(void) { diff --git a/src/game/board/battle.c b/src/game/board/battle.c index 650a0132..3d369c2c 100755 --- a/src/game/board/battle.c +++ b/src/game/board/battle.c @@ -159,7 +159,8 @@ static void ExecBattle(void) { DATADIR_W06, DATADIR_W10, DATADIR_W20, - DATADIR_W21 + DATADIR_W21, + DATADIR_W07 }; var_r29 = mgInfoTbl; diff --git a/src/game/board/boo.c b/src/game/board/boo.c index f8323694..129c6513 100755 --- a/src/game/board/boo.c +++ b/src/game/board/boo.c @@ -182,6 +182,7 @@ static s32 booSfxTbl[4][8] = { } }; +//mod: extend for custom board static s32 hostMess[] = { MAKE_MESSID(7, 14), MAKE_MESSID(7, 20), diff --git a/src/game/board/boo_house.c b/src/game/board/boo_house.c index b3197298..f9adf3af 100644 --- a/src/game/board/boo_house.c +++ b/src/game/board/boo_house.c @@ -21,35 +21,57 @@ static s16 houseMdl[6]; // data -static s32 hostMesTbl[6][6] = { - { 0x7000C, 0x7000D, 0x7000E, 0x7000F, 0x70010, 0x70011 }, - { 0x70012, 0x70013, 0x70014, 0x70015, 0x70016, 0x70017 }, - { 0x70018, 0x70019, 0x7001A, 0x7001B, 0x7001C, 0x7001D }, - { 0x7001E, 0x7001F, 0x70020, 0x70021, 0x70022, 0x70023 }, - { 0x70024, 0x70025, 0x70026, 0x70027, 0x70028, 0x70029 }, - { 0x7002A, 0x7002B, 0x7002C, 0x7002D, 0x7002E, 0x7002F }, +//mod: add entry for custom board +static s32 hostMesTbl[10][9] = { +/* [BOARD_ID_MAIN1] */ { 0x7000C, 0x7000D, 0x7000E, 0x7000F, 0x70010, 0x70011 }, +/* [BOARD_ID_MAIN2] */ { 0x70012, 0x70013, 0x70014, 0x70015, 0x70016, 0x70017 }, +/* [BOARD_ID_MAIN3] */ { 0x70018, 0x70019, 0x7001A, 0x7001B, 0x7001C, 0x7001D }, +/* [BOARD_ID_MAIN4] */ { 0x7001E, 0x7001F, 0x70020, 0x70021, 0x70022, 0x70023 }, +/* [BOARD_ID_MAIN5] */ { 0x70024, 0x70025, 0x70026, 0x70027, 0x70028, 0x70029 }, +/* [BOARD_ID_MAIN6] */ { 0x7002A, 0x7002B, 0x7002C, 0x7002D, 0x7002E, 0x7002F }, + + //dummy data +/* [BOARD_ID_TUTORIAL] */ { 0x7002A, 0x7002B, 0x7002C, 0x7002D, 0x7002E, 0x7002F }, +/* [BOARD_ID_EXTRA2] */ { 0x7002A, 0x7002B, 0x7002C, 0x7002D, 0x7002E, 0x7002F }, + + //custom board data +/* [BOARD_ID_CUSTOM] */ { 0x7002A, 0x7002B, 0x7002C, 0x7002D, 0x7002E, 0x7002F }, }; -static BoardModelParam houseMdlTbl[6] = { - { 0x90000, { 0, 1, 0, 0, 0 }, 0xFFFF }, - { 0x90001, { 1, 1, 0, 0, 0 }, 0xFFFF }, - { 0x90003, { 1, 1, 0, 0, 0 }, 0xFFFF }, - { 0x90004, { 1, 1, 0, 0, 0 }, 0xFFFF }, - { 0x90004, { 1, 1, 0, 0, 0 }, 0xFFFF }, - { 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF }, + +//mod: add entry for custom board +static BoardModelParam houseMdlTbl[10] = { +/* [BOARD_ID_MAIN1] */ { 0x90000, { 0, 1, 0, 0, 0 }, 0xFFFF }, +/* [BOARD_ID_MAIN2] */ { 0x90001, { 1, 1, 0, 0, 0 }, 0xFFFF }, +/* [BOARD_ID_MAIN3] */ { 0x90003, { 1, 1, 0, 0, 0 }, 0xFFFF }, +/* [BOARD_ID_MAIN4] */ { 0x90004, { 1, 1, 0, 0, 0 }, 0xFFFF }, +/* [BOARD_ID_MAIN5] */ { 0x90004, { 1, 1, 0, 0, 0 }, 0xFFFF }, +/* [BOARD_ID_MAIN6] */ { 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF }, + + //dummy data +/* [BOARD_ID_TUTORIAL] */ { 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF }, +/* [BOARD_ID_EXTRA1] */ { 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF }, +/* [BOARD_ID_EXTRA2] */ { 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF }, + + //custom board data +/* [BOARD_ID_CUSTOM] */ { 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF }, }; + static s32 booMotTbl[3] = { 0x20013, 0x20016, 0xFFFFFFFF }; -static s32 houseMotTbl[9][3] = { - { 0x20001, 0x20003, 0x20004 }, - { 0x20009, 0x2000B, 0x2000C }, - { 0x2000E, 0x20010, 0x20011 }, - { 0x20018, 0x2001A, 0x2001B }, - { 0x2001D, 0x2001F, 0x20020 }, - { 0x20022, 0x20024, 0x20025 }, - { 0x20018, 0x2001A, 0x2001B }, - { 0x20001, 0x20003, 0x20004 }, - { 0x20001, 0x20003, 0x20004 } + +//mod: add entry for custom board +static s32 houseMotTbl[10][3] = { +/* [BOARD_ID_MAIN1] */ { 0x20001, 0x20003, 0x20004 }, +/* [BOARD_ID_MAIN2] */ { 0x20009, 0x2000B, 0x2000C }, +/* [BOARD_ID_MAIN3] */ { 0x2000E, 0x20010, 0x20011 }, +/* [BOARD_ID_MAIN4] */ { 0x20018, 0x2001A, 0x2001B }, +/* [BOARD_ID_MAIN5] */ { 0x2001D, 0x2001F, 0x20020 }, +/* [BOARD_ID_MAIN6] */ { 0x20022, 0x20024, 0x20025 }, +/* [BOARD_ID_TUTORIAL] */ { 0x20018, 0x2001A, 0x2001B }, +/* [BOARD_ID_EXTRA1] */ { 0x20001, 0x20003, 0x20004 }, +/* [BOARD_ID_EXTRA2] */ { 0x20001, 0x20003, 0x20004 }, +/* [BOARD_ID_CUSTOM] */ { 0x20001, 0x20003, 0x20004 } }; // sbss diff --git a/src/game/board/com.c b/src/game/board/com.c index 00a66a66..cb419e8a 100755 --- a/src/game/board/com.c +++ b/src/game/board/com.c @@ -736,9 +736,9 @@ s32 BoardComJunctionInputGet(s32 item, Vec *input, s32 num_dirs, float *dirs) { choose_path = 0; } if (choose_path != 0) { - if (board >= 0 && board <= 5) { + if (board >= BOARD_ID_MAIN1 && board <= BOARD_ID_MAIN6) { space_next = BoardComPathBestGet(space); - } else if (board == 7) { + } else if (board == BOARD_ID_EXTRA1) { space_next = BoardComPathBestGetFlag(space, 0x10000000, 10); } if (space_next == -1) { diff --git a/src/game/board/item.c b/src/game/board/item.c index 76563ee2..ddc8fe0e 100755 --- a/src/game/board/item.c +++ b/src/game/board/item.c @@ -169,7 +169,12 @@ static s32 itemMdlTbl[] = { }; static s32 forceMoveSfxTbl[] = { - 0x38, 0x45, 0x42, 0x4D, 0x48, 0x3F + 0x38, + 0x45, + 0x42, + 0x4D, + 0x48, + 0x3F }; static s32 callMotTbl[] = { @@ -194,22 +199,39 @@ static char *callHookTbl[] = { "c007m01-itemhook-r" }; +//mod: add data for custom board static s32 callAttackMotTbl[] = { DATA_MAKE_NUM(DATADIR_W01, 31), DATA_MAKE_NUM(DATADIR_W02, 5), DATA_MAKE_NUM(DATADIR_W03, 29), DATA_MAKE_NUM(DATADIR_W04, 9), DATA_MAKE_NUM(DATADIR_W05, 7), + DATA_MAKE_NUM(DATADIR_W06, 19), + + //dummy data for extra boards + DATA_MAKE_NUM(DATADIR_W06, 19), + DATA_MAKE_NUM(DATADIR_W06, 19), + DATA_MAKE_NUM(DATADIR_W06, 19), + + //Mod TODO: update this to w07 DATA_MAKE_NUM(DATADIR_W06, 19) }; +//mod: add data for custom board static s32 callAttackMotTbl2[] = { DATA_MAKE_NUM(DATADIR_W01, 32), DATA_MAKE_NUM(DATADIR_W02, 6), DATA_MAKE_NUM(DATADIR_W03, 30), DATA_MAKE_NUM(DATADIR_W04, 10), DATA_MAKE_NUM(DATADIR_W05, 8), - DATA_MAKE_NUM(DATADIR_W06, 20) + DATA_MAKE_NUM(DATADIR_W06, 20), + + DATA_MAKE_NUM(DATADIR_W06, 20), + DATA_MAKE_NUM(DATADIR_W06, 20), + DATA_MAKE_NUM(DATADIR_W06, 20), + + //Mod TODO: update this to w07 + DATA_MAKE_NUM(DATADIR_W06, 20), }; static s32 suitMotTbl[][2] = { diff --git a/src/game/board/lottery.c b/src/game/board/lottery.c index 9e307af2..a3ac8827 100755 --- a/src/game/board/lottery.c +++ b/src/game/board/lottery.c @@ -247,6 +247,7 @@ void BoardLotteryInit(void) { } } +//mod: extend for custom board static void CreateModel(void) { s32 i; s32 sp10[4] = { @@ -259,7 +260,8 @@ static void CreateModel(void) { DATA_MAKE_NUM(DATADIR_BKUJIYA, 3), DATA_MAKE_NUM(DATADIR_BKUJIYA, 4) }; - s32 sp20[9][4] = { + //Mod TODO: fix custom data for board + s32 sp20[10][4] = { { DATA_MAKE_NUM(DATADIR_BGUEST, 1), DATA_MAKE_NUM(DATADIR_BGUEST, 2), @@ -308,6 +310,13 @@ static void CreateModel(void) { DATA_MAKE_NUM(DATADIR_BGUEST, 44), DATA_MAKE_NUM(DATADIR_BGUEST, 45) }, + { + DATA_MAKE_NUM(DATADIR_BGUEST, 42), + DATA_MAKE_NUM(DATADIR_BGUEST, 43), + DATA_MAKE_NUM(DATADIR_BGUEST, 44), + DATA_MAKE_NUM(DATADIR_BGUEST, 45) + }, + //Mod TODO: added for custom board { DATA_MAKE_NUM(DATADIR_BGUEST, 42), DATA_MAKE_NUM(DATADIR_BGUEST, 43), diff --git a/src/game/board/mg_setup.c b/src/game/board/mg_setup.c index 82e6b55b..6885c829 100644 --- a/src/game/board/mg_setup.c +++ b/src/game/board/mg_setup.c @@ -76,9 +76,19 @@ static Vec statusLayout2Vs2[4] = { { 406.0f, 260.0f, 0.0f }, { 406.0f, 348.0f, 0.0f }, }; -static s32 luckyMessTbl[9] = { - 0x00140000, 0x00140005, 0x0014000A, 0x0014000F, - 0x00140014, 0x00140019, 0x00140000, 0x00140000, + +//mod: extend for custom board +static s32 luckyMessTbl[10] = { + 0x00140000, + 0x00140005, + 0x0014000A, + 0x0014000F, + 0x00140014, + 0x00140019, + 0x00140000, + 0x00140000, + 0x00140000, + //added for custom board 0x00140000 }; @@ -144,10 +154,18 @@ static inline s32 setupObjGet(void) { } static void ExecMGSetup(void) { - s32 sp60[9] = { - 0x750000, 0x760000, 0x770000, - 0x780000, 0x790000, 0x7A0000, - 0x7B0000, 0x7C0000, 0x7D0000 + s32 sp60[10] = { + 0x750000, + 0x760000, + 0x770000, + 0x780000, + 0x790000, + 0x7A0000, + 0x7B0000, + 0x7C0000, + 0x7D0000, + //added for custom board + 0x7D0000 }; Vec sp54; u16 var_r24; diff --git a/src/game/board/pause.c b/src/game/board/pause.c index 7c426ae9..c88fad1e 100755 --- a/src/game/board/pause.c +++ b/src/game/board/pause.c @@ -113,6 +113,7 @@ static float padConfigPosTbl[4][2] = { { 458.0f, 160.0f } }; +//mod: extend for custom board static s32 boardLogoTbl[] = { DATA_MAKE_NUM(DATADIR_BOARD, 87), DATA_MAKE_NUM(DATADIR_BOARD, 88), @@ -122,6 +123,8 @@ static s32 boardLogoTbl[] = { DATA_MAKE_NUM(DATADIR_BOARD, 92), DATA_MAKE_NUM(DATADIR_BOARD, 87), DATA_MAKE_NUM(DATADIR_BOARD, 93), + DATA_MAKE_NUM(DATADIR_BOARD, 94), + //added for custom board DATA_MAKE_NUM(DATADIR_BOARD, 94) }; @@ -288,7 +291,7 @@ void CreatePauseScreen(void) { HuSprZRotSet(pauseSprGrp, 2, -30.0f); HuSprPosSet(pauseSprGrp, 2, 87.0f, 245.0f); HuSprAttrSet(pauseSprGrp, 2, 8); - if (GWBoardGet() == 7 || GWBoardGet() == 8) { + if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { HuSprAttrSet(pauseSprGrp, 2, 4); } if (GWPartyGet() == 1) { @@ -332,7 +335,7 @@ void CreatePauseScreen(void) { hostOldLayer = BoardModelLayerGet(hostMdl); BoardModelLayerSet(hostMdl, 6); sp24.x = 68.0f; - if (GWBoardGet() == 3) { + if (GWBoardGet() == BOARD_ID_MAIN4) { sp24.y = 464.0f; } else { sp24.y = 434.0f; @@ -466,7 +469,7 @@ static void DeletePauseScreen(void) { BoardModelVisibilitySet(hostMdl, 1); BoardModelMtxSet(hostMdl, &sp8); BoardStarHostSet(hostMdl); - if (GWBoardGet() == 7 || GWBoardGet() == 8) { + if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { BoardModelVisibilitySet(hostMdl, 0); } } @@ -1278,7 +1281,7 @@ static void CreatePauseControlWin(void) { HuWinMesSpeedSet(settingsControlWin, 0); HuWinMesSet(settingsControlWin, var_r31); HuWinDispOff(settingsControlWin); - if (GWBoardGet() == 7 || GWBoardGet() == 8) { + if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { var_r31 = MAKE_MESSID(16, 73); } else { var_r31 = MAKE_MESSID(16, 52); @@ -1325,7 +1328,7 @@ static s32 WaitPauseInput(void) { u32 temp_r30; mainScreenF = 1; - if (GWBoardGet() == 7 || GWBoardGet() == 8) { + if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { var_r28 = 1; } else { var_r28 = 0; diff --git a/src/game/board/star.c b/src/game/board/star.c index cbccef34..7a3aa591 100755 --- a/src/game/board/star.c +++ b/src/game/board/star.c @@ -72,7 +72,8 @@ static Process *starProc; static s16 starParman = -1; static s16 hostMdl = -1; -const s32 lbl_8011E040[9] = { +//mod: extend for custom board +const s32 lbl_8011E040[10] = { MAKE_MESSID(12, 0), MAKE_MESSID(12, 9), MAKE_MESSID(12, 18), @@ -81,10 +82,13 @@ const s32 lbl_8011E040[9] = { MAKE_MESSID(12, 45), MAKE_MESSID(12, 0), MAKE_MESSID(12, 0), + MAKE_MESSID(12, 0), + //Mod TODO: fix for custom board data MAKE_MESSID(12, 0) }; -const s32 lbl_8011E064[9][2] = { +//mod: extend for custom board +const s32 lbl_8011E064[10][2] = { { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) }, { MAKE_MESSID(21, 35), MAKE_MESSID(21, 41) }, { MAKE_MESSID(21, 36), MAKE_MESSID(21, 42) }, @@ -93,6 +97,9 @@ const s32 lbl_8011E064[9][2] = { { MAKE_MESSID(21, 39), MAKE_MESSID(21, 45) }, { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) }, { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) }, + { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) }, + + //Mod TODO: fix for custom board data { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) } }; @@ -107,12 +114,21 @@ s32 boardStarSndTbl[] = { 0x000002E0 }; -static s32 hostMotTbl[9][2] = { +//mod: extend for custom board +static s32 hostMotTbl[10][2] = { { DATA_MAKE_NUM(DATADIR_W01, 33), DATA_MAKE_NUM(DATADIR_BOARD, 157) }, { DATA_MAKE_NUM(DATADIR_W02, 7), DATA_MAKE_NUM(DATADIR_BOARD, 158) }, { DATA_MAKE_NUM(DATADIR_W03, 31), DATA_MAKE_NUM(DATADIR_BOARD, 159) }, { DATA_MAKE_NUM(DATADIR_W04, 11), DATA_MAKE_NUM(DATADIR_BOARD, 160) }, { DATA_MAKE_NUM(DATADIR_W05, 9), DATA_MAKE_NUM(DATADIR_BOARD, 161) }, + { DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) }, + + //dummy data + { DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) }, + { DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) }, + { DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) }, + + //Mod TODO: fix for custom board data { DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) } }; diff --git a/src/game/board/start.c b/src/game/board/start.c index b07ae07a..bdb794c9 100755 --- a/src/game/board/start.c +++ b/src/game/board/start.c @@ -89,7 +89,7 @@ static s32 hitFX[4] = { -1, -1, -1, -1 }; -static s32 startMesTbl[9][5] = { +static s32 startMesTbl[10][5] = { { 0x00150001, 0x00150007, 0x0015000D, 0x00150016, 0x0015001C }, { 0x00150002, 0x00150008, 0x0015000E, 0x00150017, 0x0015001D }, { 0x00150003, 0x00150009, 0x0015000F, 0x00150018, 0x0015001E }, @@ -98,13 +98,24 @@ static s32 startMesTbl[9][5] = { { 0x00150006, 0x0015000C, 0x00150012, 0x0015001B, 0x00150021 }, { 0x00150001, 0x00150007, 0x0015000D, 0x00150016, 0x0015001C }, { 0x00150033, 0x00150034, 0x00150035, 0x00150036, 0x00150037 }, + { 0x0015003B, 0x0015003C, 0x0015003D, 0x0015003E, 0x0015003F }, + //Mod TODO: fix for custom board data { 0x0015003B, 0x0015003C, 0x0015003D, 0x0015003E, 0x0015003F } }; +//mod: extend for custom board static s32 logoSprTbl[] = { - 0x00070057, 0x00070058, 0x00070059, - 0x0007005A, 0x0007005B, 0x0007005C, - 0x00070057, 0x0007005D, 0x0007005E + 0x00070057, + 0x00070058, + 0x00070059, + 0x0007005A, + 0x0007005B, + 0x0007005C, + 0x00070057, + 0x0007005D, + 0x0007005E, + //Mod TODO: custom board data + 0x0007005E }; void BoardStartExec(void) { diff --git a/src/game/board/view.c b/src/game/board/view.c index a22e11d9..fa6575dd 100755 --- a/src/game/board/view.c +++ b/src/game/board/view.c @@ -58,40 +58,94 @@ static float overhead2DPos[][2] = { { 288.0f, 72.0f } }; +//mod: extend for custom board static float mapViewMinZ[] = { - -2000.0f, -1500.0f, -2200.0f, - -1800.0f, -2100.0f, -3000.0f, - -3000.0f, -1800.0f, -1800.0f + -2000.0f, + -1500.0f, + -2200.0f, + -1800.0f, + -2100.0f, + -3000.0f, + -3000.0f, + -1800.0f, + -1800.0f, + //Mod TODO: fix data for custom board + -1800.0f }; +//mod: extend for custom board static float mapViewMaxZ[] = { - 2300.0f, 2500.0f, 2600.0f, - 2000.0f, 2300.0f, 2500.0f, - 2500.0f, 2000.0f, 2000.0f + 2300.0f, + 2500.0f, + 2600.0f, + 2000.0f, + 2300.0f, + 2500.0f, + 2500.0f, + 2000.0f, + 2000.0f, + //Mod TODO: fix for custom board data + 2000.0f }; +//mod: extend for custom board static float mapViewMinX[] = { - -3000.0f, -3000.0f, -3000.0f, - -3000.0f, -3000.0f, -3000.0f, - -3000.0f, -2000.0f, -2000.0f + -3000.0f, + -3000.0f, + -3000.0f, + -3000.0f, + -3000.0f, + -3000.0f, + -3000.0f, + -2000.0f, + -2000.0f, + //Mod TODO: fix for custom board data + -2000.0f }; +//mod: extend for custom board static float mapViewMaxX[] = { - 3000.0f, 3000.0f, 3000.0f, - 3000.0f, 3000.0f, 3000.0f, - 3000.0f, 1600.0f, 2000.0f + 3000.0f, + 3000.0f, + 3000.0f, + 3000.0f, + 3000.0f, + 3000.0f, + 3000.0f, + 1600.0f, + 2000.0f, + //Mod TODO: fix for custom board data + 2000.0f, }; +//mod: extend for custom board static float overheadCamZoom[] = { - 14370.0f, 14500.0f, 15000.0f, - 15000.0f, 13000.0f, 15000.0f, - 100.0f, 10000.0f, 10000.0f + 14370.0f, + 14500.0f, + 15000.0f, + 15000.0f, + 13000.0f, + 15000.0f, + 100.0f, + 10000.0f, + 10000.0f, + //Mod TODO: fix for custom board data + 10000.0f }; +//mod: extend for custom board static float overheadCamPosZ[] = { - 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, - 0.0f, -160.0f, 0.0f + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + -160.0f, + 0.0f, + //Mod TODO: fix for custom board data + 0.0f }; void BoardViewOverheadExec(s32 arg0) { From eacafb838bde8a16d72df54bd3078ceb92bc5d5c Mon Sep 17 00:00:00 2001 From: Rainchus Date: Fri, 2 Aug 2024 18:33:51 -0500 Subject: [PATCH 009/311] add a few arrays that were missed and more //mod: comments for extended arrays --- src/game/board/battle.c | 1 + src/game/board/boo.c | 10 +++++++++- src/game/board/boo_house.c | 8 ++++---- src/game/board/item.c | 2 +- src/game/board/lottery.c | 2 +- src/game/board/main.c | 4 +++- src/game/board/shop.c | 9 ++++++++- src/game/board/star.c | 2 +- src/game/board/start.c | 1 + 9 files changed, 29 insertions(+), 10 deletions(-) diff --git a/src/game/board/battle.c b/src/game/board/battle.c index 3d369c2c..884ef9c4 100755 --- a/src/game/board/battle.c +++ b/src/game/board/battle.c @@ -150,6 +150,7 @@ static void ExecBattle(void) { s32 var_r23; MgInfo *var_r29; s32 var_r27 = 0; + //mod: extend for custom board s32 sp8[] = { DATADIR_W01, DATADIR_W02, diff --git a/src/game/board/boo.c b/src/game/board/boo.c index 129c6513..ff5feee2 100755 --- a/src/game/board/boo.c +++ b/src/game/board/boo.c @@ -189,7 +189,15 @@ static s32 hostMess[] = { MAKE_MESSID(7, 26), MAKE_MESSID(7, 32), MAKE_MESSID(7, 38), - MAKE_MESSID(7, 44) + MAKE_MESSID(7, 44), + + //dummy data for tutorial and extra board + MAKE_MESSID(7, 44), + MAKE_MESSID(7, 44), + MAKE_MESSID(7, 44), + + //custom board data + MAKE_MESSID(7, 44), }; static s32 ballMdlTbl[] = { diff --git a/src/game/board/boo_house.c b/src/game/board/boo_house.c index f9adf3af..76456ed9 100644 --- a/src/game/board/boo_house.c +++ b/src/game/board/boo_house.c @@ -21,7 +21,7 @@ static s16 houseMdl[6]; // data -//mod: add entry for custom board +//mod: extend for custom board static s32 hostMesTbl[10][9] = { /* [BOARD_ID_MAIN1] */ { 0x7000C, 0x7000D, 0x7000E, 0x7000F, 0x70010, 0x70011 }, /* [BOARD_ID_MAIN2] */ { 0x70012, 0x70013, 0x70014, 0x70015, 0x70016, 0x70017 }, @@ -30,7 +30,7 @@ static s32 hostMesTbl[10][9] = { /* [BOARD_ID_MAIN5] */ { 0x70024, 0x70025, 0x70026, 0x70027, 0x70028, 0x70029 }, /* [BOARD_ID_MAIN6] */ { 0x7002A, 0x7002B, 0x7002C, 0x7002D, 0x7002E, 0x7002F }, - //dummy data + //dummy data for tutorial and extra board /* [BOARD_ID_TUTORIAL] */ { 0x7002A, 0x7002B, 0x7002C, 0x7002D, 0x7002E, 0x7002F }, /* [BOARD_ID_EXTRA2] */ { 0x7002A, 0x7002B, 0x7002C, 0x7002D, 0x7002E, 0x7002F }, @@ -38,7 +38,7 @@ static s32 hostMesTbl[10][9] = { /* [BOARD_ID_CUSTOM] */ { 0x7002A, 0x7002B, 0x7002C, 0x7002D, 0x7002E, 0x7002F }, }; -//mod: add entry for custom board +//mod: extend for custom board static BoardModelParam houseMdlTbl[10] = { /* [BOARD_ID_MAIN1] */ { 0x90000, { 0, 1, 0, 0, 0 }, 0xFFFF }, /* [BOARD_ID_MAIN2] */ { 0x90001, { 1, 1, 0, 0, 0 }, 0xFFFF }, @@ -47,7 +47,7 @@ static BoardModelParam houseMdlTbl[10] = { /* [BOARD_ID_MAIN5] */ { 0x90004, { 1, 1, 0, 0, 0 }, 0xFFFF }, /* [BOARD_ID_MAIN6] */ { 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF }, - //dummy data + //dummy data for tutorial and extra board /* [BOARD_ID_TUTORIAL] */ { 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF }, /* [BOARD_ID_EXTRA1] */ { 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF }, /* [BOARD_ID_EXTRA2] */ { 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF }, diff --git a/src/game/board/item.c b/src/game/board/item.c index ddc8fe0e..ae5b0639 100755 --- a/src/game/board/item.c +++ b/src/game/board/item.c @@ -208,7 +208,7 @@ static s32 callAttackMotTbl[] = { DATA_MAKE_NUM(DATADIR_W05, 7), DATA_MAKE_NUM(DATADIR_W06, 19), - //dummy data for extra boards + //dummy data for tutorial and extra board DATA_MAKE_NUM(DATADIR_W06, 19), DATA_MAKE_NUM(DATADIR_W06, 19), DATA_MAKE_NUM(DATADIR_W06, 19), diff --git a/src/game/board/lottery.c b/src/game/board/lottery.c index a3ac8827..cabf498b 100755 --- a/src/game/board/lottery.c +++ b/src/game/board/lottery.c @@ -260,7 +260,7 @@ static void CreateModel(void) { DATA_MAKE_NUM(DATADIR_BKUJIYA, 3), DATA_MAKE_NUM(DATADIR_BKUJIYA, 4) }; - //Mod TODO: fix custom data for board + //mod: extend for custom board s32 sp20[10][4] = { { DATA_MAKE_NUM(DATADIR_BGUEST, 1), diff --git a/src/game/board/main.c b/src/game/board/main.c index b88ad9bf..1e3071c6 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -682,6 +682,7 @@ static void CreateBoard(void) static void DestroyBoard(void) { + //mod: extend for custom board s32 dir_table[] = { DATADIR_W01, DATADIR_W02, @@ -691,7 +692,8 @@ static void DestroyBoard(void) DATADIR_W06, DATADIR_W10, DATADIR_W20, - DATADIR_W21 + DATADIR_W21, + DATADIR_W07 }; BoardTauntKill(); BoardAudSeqFadeOutAll(); diff --git a/src/game/board/shop.c b/src/game/board/shop.c index 52a018e5..814e5b1a 100755 --- a/src/game/board/shop.c +++ b/src/game/board/shop.c @@ -114,6 +114,7 @@ static s8 defaultItemTbl[5] = { 0x05, 0x07, 0x02, 0x03, 0x00 }; +//mod: extend for custom board static s32 hostMessTbl[] = { 0x000F0004, 0x000F0007, @@ -123,6 +124,8 @@ static s32 hostMessTbl[] = { 0x000F0013, 0x000F0004, 0x000F0024, + 0x000F0024, + //Mod TODO: fix for custom board data 0x000F0024 }; @@ -133,7 +136,8 @@ static s8 itemPriceTbl[] = { 30, 30, 0, 0 }; -static s32 shopMotTbl[9][3] = { +//mod: extend for custom data +static s32 shopMotTbl[10][3] = { { 0x00020001, 0x00020003, 0x00020004 }, { 0x00020009, 0x0002000B, 0x0002000C }, { 0x0002000E, 0x00020010, 0x00020011 }, @@ -142,6 +146,9 @@ static s32 shopMotTbl[9][3] = { { 0x00020022, 0x00020024, 0x00020025 }, { 0x00020009, 0x0002000B, 0x0002000C }, { 0x0002002A, 0x0002002C, 0x0002002D }, + { 0x0002002A, 0x0002002C, 0x0002002D }, + + //Mod TODO: fix for custom data { 0x0002002A, 0x0002002C, 0x0002002D } }; diff --git a/src/game/board/star.c b/src/game/board/star.c index 7a3aa591..4c8aa409 100755 --- a/src/game/board/star.c +++ b/src/game/board/star.c @@ -123,7 +123,7 @@ static s32 hostMotTbl[10][2] = { { DATA_MAKE_NUM(DATADIR_W05, 9), DATA_MAKE_NUM(DATADIR_BOARD, 161) }, { DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) }, - //dummy data + //dummy data for tutorial and extra board { DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) }, { DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) }, { DATA_MAKE_NUM(DATADIR_W06, 21), DATA_MAKE_NUM(DATADIR_BOARD, 162) }, diff --git a/src/game/board/start.c b/src/game/board/start.c index bdb794c9..ea25e32d 100755 --- a/src/game/board/start.c +++ b/src/game/board/start.c @@ -89,6 +89,7 @@ static s32 hitFX[4] = { -1, -1, -1, -1 }; +//mod: extend for custom data static s32 startMesTbl[10][5] = { { 0x00150001, 0x00150007, 0x0015000D, 0x00150016, 0x0015001C }, { 0x00150002, 0x00150008, 0x0015000E, 0x00150017, 0x0015001D }, From b5b908f3c5d648a8c7bb0fd778fdb2d479afe660 Mon Sep 17 00:00:00 2001 From: kabiskac Date: Fri, 2 Aug 2024 00:59:49 +0200 Subject: [PATCH 010/311] Added fn_1_D588 to m444dll.h --- include/REL/m444dll.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/REL/m444dll.h b/include/REL/m444dll.h index b0165d19..ba2894c5 100644 --- a/include/REL/m444dll.h +++ b/include/REL/m444dll.h @@ -41,6 +41,7 @@ void fn_1_C214(void); void fn_1_D1E0(s16 model); void fn_1_D558(DataListModel *model_list); +void fn_1_D588(DataListModel *model_list); void fn_1_D818(DataListSprite *sprite_list); void fn_1_D950(void); void fn_1_D9C8(void); @@ -70,4 +71,4 @@ extern float lbl_1_bss_288[2]; extern DataListModel lbl_1_data_470[]; -#endif \ No newline at end of file +#endif From 8589c3e6c98ce14c38598f75b6755c1a33bf848f Mon Sep 17 00:00:00 2001 From: kabiskac Date: Fri, 2 Aug 2024 01:00:02 +0200 Subject: [PATCH 011/311] Added types in m439Dll/symbols.txt --- config/GMPE01_00/rels/m439Dll/symbols.txt | 146 +++++++++++----------- 1 file changed, 73 insertions(+), 73 deletions(-) diff --git a/config/GMPE01_00/rels/m439Dll/symbols.txt b/config/GMPE01_00/rels/m439Dll/symbols.txt index 246ef044..f3f1ec36 100644 --- a/config/GMPE01_00/rels/m439Dll/symbols.txt +++ b/config/GMPE01_00/rels/m439Dll/symbols.txt @@ -173,89 +173,89 @@ lbl_1_data_EA8 = .data:0x00000EA8; // type:object size:0x9C lbl_1_data_F44 = .data:0x00000F44; // type:object size:0x9C lbl_1_data_FE0 = .data:0x00000FE0; // type:object size:0x34 lbl_1_data_1014 = .data:0x00001014; // type:object size:0x60 -lbl_1_data_1074 = .data:0x00001074; // type:object size:0x18 -lbl_1_data_108C = .data:0x0000108C; // type:object size:0x30 -lbl_1_data_10BC = .data:0x000010BC; // type:object size:0x204 -lbl_1_data_12C0 = .data:0x000012C0; // type:object size:0x204 -lbl_1_data_14C4 = .data:0x000014C4; // type:object size:0x204 +lbl_1_data_1074 = .data:0x00001074; // type:object size:0x18 data:2byte +lbl_1_data_108C = .data:0x0000108C; // type:object size:0x30 data:float +lbl_1_data_10BC = .data:0x000010BC; // type:object size:0x204 data:float +lbl_1_data_12C0 = .data:0x000012C0; // type:object size:0x204 data:float +lbl_1_data_14C4 = .data:0x000014C4; // type:object size:0x204 data:float lbl_1_data_16C8 = .data:0x000016C8; // type:object size:0xC -lbl_1_data_16D4 = .data:0x000016D4; // type:object size:0x4 -lbl_1_data_16D8 = .data:0x000016D8; // type:object size:0x1D4 -lbl_1_data_18AC = .data:0x000018AC; // type:object size:0x1D4 -lbl_1_data_1A80 = .data:0x00001A80; // type:object size:0x1D4 -lbl_1_data_1C54 = .data:0x00001C54; // type:object size:0x120 -lbl_1_data_1D74 = .data:0x00001D74; // type:object size:0x120 -lbl_1_data_1E94 = .data:0x00001E94; // type:object size:0x120 -lbl_1_data_1FB4 = .data:0x00001FB4; // type:object size:0xF0 -lbl_1_data_20A4 = .data:0x000020A4; // type:object size:0xF0 -lbl_1_data_2194 = .data:0x00002194; // type:object size:0xF0 +lbl_1_data_16D4 = .data:0x000016D4; // type:object size:0x4 data:4byte +lbl_1_data_16D8 = .data:0x000016D8; // type:object size:0x1D4 data:float +lbl_1_data_18AC = .data:0x000018AC; // type:object size:0x1D4 data:float +lbl_1_data_1A80 = .data:0x00001A80; // type:object size:0x1D4 data:float +lbl_1_data_1C54 = .data:0x00001C54; // type:object size:0x120 data:float +lbl_1_data_1D74 = .data:0x00001D74; // type:object size:0x120 data:float +lbl_1_data_1E94 = .data:0x00001E94; // type:object size:0x120 data:float +lbl_1_data_1FB4 = .data:0x00001FB4; // type:object size:0xF0 data:float +lbl_1_data_20A4 = .data:0x000020A4; // type:object size:0xF0 data:float +lbl_1_data_2194 = .data:0x00002194; // type:object size:0xF0 data:float lbl_1_data_2284 = .data:0x00002284; // type:object size:0x24 -lbl_1_data_22A8 = .data:0x000022A8; // type:object size:0xC -lbl_1_data_22B4 = .data:0x000022B4; // type:object size:0x174 -lbl_1_data_2428 = .data:0x00002428; // type:object size:0x174 -lbl_1_data_259C = .data:0x0000259C; // type:object size:0x174 -lbl_1_data_2710 = .data:0x00002710; // type:object size:0x144 -lbl_1_data_2854 = .data:0x00002854; // type:object size:0x144 -lbl_1_data_2998 = .data:0x00002998; // type:object size:0x144 -lbl_1_data_2ADC = .data:0x00002ADC; // type:object size:0x1A4 -lbl_1_data_2C80 = .data:0x00002C80; // type:object size:0x1A4 -lbl_1_data_2E24 = .data:0x00002E24; // type:object size:0x1A4 +lbl_1_data_22A8 = .data:0x000022A8; // type:object size:0xC data:4byte +lbl_1_data_22B4 = .data:0x000022B4; // type:object size:0x174 data:float +lbl_1_data_2428 = .data:0x00002428; // type:object size:0x174 data:float +lbl_1_data_259C = .data:0x0000259C; // type:object size:0x174 data:float +lbl_1_data_2710 = .data:0x00002710; // type:object size:0x144 data:float +lbl_1_data_2854 = .data:0x00002854; // type:object size:0x144 data:float +lbl_1_data_2998 = .data:0x00002998; // type:object size:0x144 data:float +lbl_1_data_2ADC = .data:0x00002ADC; // type:object size:0x1A4 data:float +lbl_1_data_2C80 = .data:0x00002C80; // type:object size:0x1A4 data:float +lbl_1_data_2E24 = .data:0x00002E24; // type:object size:0x1A4 data:float lbl_1_data_2FC8 = .data:0x00002FC8; // type:object size:0x24 -lbl_1_data_2FEC = .data:0x00002FEC; // type:object size:0xC -lbl_1_data_2FF8 = .data:0x00002FF8; // type:object size:0x294 -lbl_1_data_328C = .data:0x0000328C; // type:object size:0x294 -lbl_1_data_3520 = .data:0x00003520; // type:object size:0x294 +lbl_1_data_2FEC = .data:0x00002FEC; // type:object size:0xC data:4byte +lbl_1_data_2FF8 = .data:0x00002FF8; // type:object size:0x294 data:float +lbl_1_data_328C = .data:0x0000328C; // type:object size:0x294 data:float +lbl_1_data_3520 = .data:0x00003520; // type:object size:0x294 data:float lbl_1_data_37B4 = .data:0x000037B4; // type:object size:0xC -lbl_1_data_37C0 = .data:0x000037C0; // type:object size:0x4 -lbl_1_data_37C4 = .data:0x000037C4; // type:object size:0x198 -lbl_1_data_395C = .data:0x0000395C; // type:object size:0x198 -lbl_1_data_3AF4 = .data:0x00003AF4; // type:object size:0x198 -lbl_1_data_3C8C = .data:0x00003C8C; // type:object size:0x198 -lbl_1_data_3E24 = .data:0x00003E24; // type:object size:0x198 -lbl_1_data_3FBC = .data:0x00003FBC; // type:object size:0x198 +lbl_1_data_37C0 = .data:0x000037C0; // type:object size:0x4 data:4byte +lbl_1_data_37C4 = .data:0x000037C4; // type:object size:0x198 data:float +lbl_1_data_395C = .data:0x0000395C; // type:object size:0x198 data:float +lbl_1_data_3AF4 = .data:0x00003AF4; // type:object size:0x198 data:float +lbl_1_data_3C8C = .data:0x00003C8C; // type:object size:0x198 data:float +lbl_1_data_3E24 = .data:0x00003E24; // type:object size:0x198 data:float +lbl_1_data_3FBC = .data:0x00003FBC; // type:object size:0x198 data:float lbl_1_data_4154 = .data:0x00004154; // type:object size:0x18 -lbl_1_data_416C = .data:0x0000416C; // type:object size:0x8 -lbl_1_data_4174 = .data:0x00004174; // type:object size:0x210 -lbl_1_data_4384 = .data:0x00004384; // type:object size:0x210 -lbl_1_data_4594 = .data:0x00004594; // type:object size:0x210 -lbl_1_data_47A4 = .data:0x000047A4; // type:object size:0x210 -lbl_1_data_49B4 = .data:0x000049B4; // type:object size:0x210 -lbl_1_data_4BC4 = .data:0x00004BC4; // type:object size:0x210 +lbl_1_data_416C = .data:0x0000416C; // type:object size:0x8 data:4byte +lbl_1_data_4174 = .data:0x00004174; // type:object size:0x210 data:float +lbl_1_data_4384 = .data:0x00004384; // type:object size:0x210 data:float +lbl_1_data_4594 = .data:0x00004594; // type:object size:0x210 data:float +lbl_1_data_47A4 = .data:0x000047A4; // type:object size:0x210 data:float +lbl_1_data_49B4 = .data:0x000049B4; // type:object size:0x210 data:float +lbl_1_data_4BC4 = .data:0x00004BC4; // type:object size:0x210 data:float lbl_1_data_4DD4 = .data:0x00004DD4; // type:object size:0x18 -lbl_1_data_4DEC = .data:0x00004DEC; // type:object size:0x8 -lbl_1_data_4DF4 = .data:0x00004DF4; // type:object size:0x1D4 -lbl_1_data_4FC8 = .data:0x00004FC8; // type:object size:0x1D4 -lbl_1_data_519C = .data:0x0000519C; // type:object size:0x1D4 -lbl_1_data_5370 = .data:0x00005370; // type:object size:0x1D4 -lbl_1_data_5544 = .data:0x00005544; // type:object size:0x1D4 -lbl_1_data_5718 = .data:0x00005718; // type:object size:0x1D4 +lbl_1_data_4DEC = .data:0x00004DEC; // type:object size:0x8 data:4byte +lbl_1_data_4DF4 = .data:0x00004DF4; // type:object size:0x1D4 data:float +lbl_1_data_4FC8 = .data:0x00004FC8; // type:object size:0x1D4 data:float +lbl_1_data_519C = .data:0x0000519C; // type:object size:0x1D4 data:float +lbl_1_data_5370 = .data:0x00005370; // type:object size:0x1D4 data:float +lbl_1_data_5544 = .data:0x00005544; // type:object size:0x1D4 data:float +lbl_1_data_5718 = .data:0x00005718; // type:object size:0x1D4 data:float lbl_1_data_58EC = .data:0x000058EC; // type:object size:0x18 -lbl_1_data_5904 = .data:0x00005904; // type:object size:0x8 -lbl_1_data_590C = .data:0x0000590C; // type:object size:0x18C -lbl_1_data_5A98 = .data:0x00005A98; // type:object size:0x18C -lbl_1_data_5C24 = .data:0x00005C24; // type:object size:0x18C -lbl_1_data_5DB0 = .data:0x00005DB0; // type:object size:0x168 -lbl_1_data_5F18 = .data:0x00005F18; // type:object size:0x168 -lbl_1_data_6080 = .data:0x00006080; // type:object size:0x168 +lbl_1_data_5904 = .data:0x00005904; // type:object size:0x8 data:4byte +lbl_1_data_590C = .data:0x0000590C; // type:object size:0x18C data:float +lbl_1_data_5A98 = .data:0x00005A98; // type:object size:0x18C data:float +lbl_1_data_5C24 = .data:0x00005C24; // type:object size:0x18C data:float +lbl_1_data_5DB0 = .data:0x00005DB0; // type:object size:0x168 data:float +lbl_1_data_5F18 = .data:0x00005F18; // type:object size:0x168 data:float +lbl_1_data_6080 = .data:0x00006080; // type:object size:0x168 data:float lbl_1_data_61E8 = .data:0x000061E8; // type:object size:0x18 -lbl_1_data_6200 = .data:0x00006200; // type:object size:0x8 -lbl_1_data_6208 = .data:0x00006208; // type:object size:0x174 -lbl_1_data_637C = .data:0x0000637C; // type:object size:0x174 -lbl_1_data_64F0 = .data:0x000064F0; // type:object size:0x174 -lbl_1_data_6664 = .data:0x00006664; // type:object size:0x15C -lbl_1_data_67C0 = .data:0x000067C0; // type:object size:0x15C -lbl_1_data_691C = .data:0x0000691C; // type:object size:0x15C +lbl_1_data_6200 = .data:0x00006200; // type:object size:0x8 data:4byte +lbl_1_data_6208 = .data:0x00006208; // type:object size:0x174 data:float +lbl_1_data_637C = .data:0x0000637C; // type:object size:0x174 data:float +lbl_1_data_64F0 = .data:0x000064F0; // type:object size:0x174 data:float +lbl_1_data_6664 = .data:0x00006664; // type:object size:0x15C data:float +lbl_1_data_67C0 = .data:0x000067C0; // type:object size:0x15C data:float +lbl_1_data_691C = .data:0x0000691C; // type:object size:0x15C data:float lbl_1_data_6A78 = .data:0x00006A78; // type:object size:0x18 -lbl_1_data_6A90 = .data:0x00006A90; // type:object size:0x8 -lbl_1_data_6A98 = .data:0x00006A98; // type:object size:0x18C -lbl_1_data_6C24 = .data:0x00006C24; // type:object size:0x18C -lbl_1_data_6DB0 = .data:0x00006DB0; // type:object size:0x18C -lbl_1_data_6F3C = .data:0x00006F3C; // type:object size:0x174 -lbl_1_data_70B0 = .data:0x000070B0; // type:object size:0x174 -lbl_1_data_7224 = .data:0x00007224; // type:object size:0x174 +lbl_1_data_6A90 = .data:0x00006A90; // type:object size:0x8 data:4byte +lbl_1_data_6A98 = .data:0x00006A98; // type:object size:0x18C data:float +lbl_1_data_6C24 = .data:0x00006C24; // type:object size:0x18C data:float +lbl_1_data_6DB0 = .data:0x00006DB0; // type:object size:0x18C data:float +lbl_1_data_6F3C = .data:0x00006F3C; // type:object size:0x174 data:float +lbl_1_data_70B0 = .data:0x000070B0; // type:object size:0x174 data:float +lbl_1_data_7224 = .data:0x00007224; // type:object size:0x174 data:float lbl_1_data_7398 = .data:0x00007398; // type:object size:0x18 -lbl_1_data_73B0 = .data:0x000073B0; // type:object size:0x8 -lbl_1_data_73B8 = .data:0x000073B8; // type:object size:0x14 +lbl_1_data_73B0 = .data:0x000073B0; // type:object size:0x8 data:4byte +lbl_1_data_73B8 = .data:0x000073B8; // type:object size:0x14 data:4byte lbl_1_data_73CC = .data:0x000073CC; // type:object size:0x28 lbl_1_data_73F4 = .data:0x000073F4; // type:object size:0x28 lbl_1_data_741C = .data:0x0000741C; // type:object size:0x70 data:float From 579e3dd2e2ecbb12944b881abc92235204584234 Mon Sep 17 00:00:00 2001 From: kabiskac Date: Fri, 2 Aug 2024 01:43:10 +0200 Subject: [PATCH 012/311] present cleanups --- src/REL/present/camera.c | 57 +-- src/REL/present/common.c | 154 +++---- src/REL/present/init.c | 81 ++-- src/REL/present/main.c | 267 ++++++----- src/REL/present/present.c | 904 ++++++++++++++++++++------------------ 5 files changed, 733 insertions(+), 730 deletions(-) diff --git a/src/REL/present/camera.c b/src/REL/present/camera.c index 95c6a85a..f6b2e29f 100644 --- a/src/REL/present/camera.c +++ b/src/REL/present/camera.c @@ -9,11 +9,8 @@ void fn_1_C20(omObjData *object); omObjData *fn_1_6B4(void) { - omObjData *var_r30; - UnkPresentCameraStruct *var_r31; - - var_r30 = omAddObjEx(lbl_1_bss_4, 1001, 0, 0, 3, fn_1_BF8); - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 156, MEMORY_DEFAULT_NUM); + omObjData *var_r30 = omAddObjEx(lbl_1_bss_4, 1001, 0, 0, 3, fn_1_BF8); + UnkPresentCameraStruct *var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 156, MEMORY_DEFAULT_NUM); var_r30->data = var_r31; var_r31->pos.x = 0.0f; @@ -48,9 +45,8 @@ void fn_1_8F0(omObjData *object) void fn_1_920(omObjData *object, float arg8, float arg9, float argA, s32 arg1) { - UnkPresentCameraStruct *var_r31; + UnkPresentCameraStruct *var_r31 = object->data; - var_r31 = object->data; var_r31->unk_58.x = arg8; var_r31->unk_58.y = arg9; var_r31->unk_58.z = argA; @@ -62,9 +58,8 @@ void fn_1_920(omObjData *object, float arg8, float arg9, float argA, s32 arg1) void fn_1_9A4(omObjData *object, float arg8, float arg9, float argA, s32 arg1) { - UnkPresentCameraStruct *var_r31; + UnkPresentCameraStruct *var_r31 = object->data; - var_r31 = object->data; var_r31->unk_64.x = arg8; var_r31->unk_64.y = arg9; var_r31->unk_64.z = argA; @@ -76,9 +71,8 @@ void fn_1_9A4(omObjData *object, float arg8, float arg9, float argA, s32 arg1) void fn_1_A28(omObjData *object, s32 arg1, float arg8, float arg9, float argA) { - UnkPresentCameraStruct *var_r31; + UnkPresentCameraStruct *var_r31 = object->data; - var_r31 = object->data; var_r31->unk_64.y = argA; var_r31->unk_7C = arg8; var_r31->unk_80 = arg9; @@ -92,29 +86,24 @@ void fn_1_A28(omObjData *object, s32 arg1, float arg8, float arg9, float argA) float fn_1_AAC(omObjData *object) { - UnkPresentCameraStruct *var_r31; - float var_f31; + UnkPresentCameraStruct *var_r31 = object->data; - var_r31 = object->data; - var_f31 = var_r31->unk_24; + float var_f31 = var_r31->unk_24; return var_f31; } float fn_1_ADC(omObjData *object) { - UnkPresentCameraStruct *var_r31; - float var_f31; + UnkPresentCameraStruct *var_r31 = object->data; - var_r31 = object->data; - var_f31 = var_r31->unk_28; + float var_f31 = var_r31->unk_28; return var_f31; } void fn_1_B0C(omObjData *object, float *arg1, float *arg2, float *arg3) { - UnkPresentCameraStruct *var_r31; + UnkPresentCameraStruct *var_r31 = object->data; - var_r31 = object->data; *arg1 = var_r31->pos.x; *arg2 = var_r31->pos.y; *arg3 = var_r31->pos.z; @@ -122,9 +111,8 @@ void fn_1_B0C(omObjData *object, float *arg1, float *arg2, float *arg3) void fn_1_B3C(omObjData *object, float *arg1, float *arg2, float *arg3) { - UnkPresentCameraStruct *var_r31; + UnkPresentCameraStruct *var_r31 = object->data; - var_r31 = object->data; *arg1 = var_r31->target.x; *arg2 = var_r31->target.y; *arg3 = var_r31->target.z; @@ -132,13 +120,11 @@ void fn_1_B3C(omObjData *object, float *arg1, float *arg2, float *arg3) s32 fn_1_B6C(omObjData *object) { - UnkPresentCameraStruct *var_r31; - s32 var_r30; - s32 var_r29; + UnkPresentCameraStruct *var_r31 = object->data; + + s32 var_r30 = 1; + s32 var_r29 = 1; - var_r31 = object->data; - var_r30 = 1; - var_r29 = 1; if (!(var_r31->unk_8C < 1.0f) && !(var_r31->unk_94 < 1.0f)) { var_r29 = 0; } @@ -155,14 +141,14 @@ void fn_1_BF8(omObjData *object) void fn_1_C20(omObjData *object) { - UnkPresentCameraStruct *var_r31; float var_f31; float var_f30; float var_f29; float var_f28; float var_f27; - var_r31 = object->data; + UnkPresentCameraStruct *var_r31 = object->data; + if (var_r31->unk_84 < 1.0f) { var_f28 = sind(90.0f * var_r31->unk_84); var_r31->pos.x = var_r31->unk_2C.x + var_f28 * (var_r31->unk_58.x - var_r31->unk_2C.x); @@ -211,10 +197,9 @@ void fn_1_C20(omObjData *object) void fn_1_1198(omObjData *object) { - UnkPresentCameraStruct *var_r31; - if (HuPadBtn[0] & PAD_BUTTON_B) { - var_r31 = object->data; + UnkPresentCameraStruct *var_r31 = object->data; + var_r31->target.x = var_r31->target.x + (0.5f * HuPadStkX[0]); var_r31->target.y = var_r31->target.y + (0.5f * HuPadStkY[0]); var_r31->pos.z = var_r31->pos.z + (0.5f * HuPadTrigL[0]); @@ -226,9 +211,7 @@ void fn_1_1198(omObjData *object) void fn_1_1398(omObjData *object) { - UnkPresentCameraStruct *var_r31; - - var_r31 = object->data; + UnkPresentCameraStruct *var_r31 = object->data; print8(32, 64, 1.5f, "AT : x=%.2f y=%.2f z=%.2f", var_r31->target.x, var_r31->target.y, var_r31->target.z); print8(32, 80, 1.5f, "EYE : x=%.2f y=%.2f z=%.2f", var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); print8(32, 96, 1.5f, "R : %.2f DEG: %.2f", var_r31->unk_24, var_r31->unk_28); diff --git a/src/REL/present/common.c b/src/REL/present/common.c index c06f944d..02e984fa 100644 --- a/src/REL/present/common.c +++ b/src/REL/present/common.c @@ -6,8 +6,8 @@ #include "REL/present.h" -void fn_1_4620(omObjData *arg0); -void fn_1_4880(omObjData *arg0); +void fn_1_4620(omObjData *object); +void fn_1_4880(omObjData *object); omObjFunc lbl_1_data_1A0[] = { NULL, fn_1_4620, fn_1_4880 }; @@ -18,14 +18,12 @@ float fn_1_4CEC(float arg8, float arg9, float argA); omObjData *fn_1_42F4(void) { - omObjData *var_r31; - s32 var_lr; s32 var_r29; - UnkPresentStruct5 *var_r30; - var_r31 = omAddObjEx(lbl_1_bss_4, 1002, 1, 3, 2, NULL); - var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, 88, MEMORY_DEFAULT_NUM); + omObjData *var_r31 = omAddObjEx(lbl_1_bss_4, 1002, 1, 3, 2, NULL); + UnkPresentStruct5 *var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, 88, MEMORY_DEFAULT_NUM); var_r31->data = var_r30; + var_r30->x = 0.0f; var_r30->z = 0.0f; var_r30->y = 0.0f; @@ -56,10 +54,7 @@ omObjData *fn_1_42F4(void) void fn_1_4534(omObjData *object) { s32 var_r31; - void *var_r29; - void *var_r30; - - var_r29 = object->data; + void *var_r29 = object->data; for (var_r31 = 0; var_r31 < 1; var_r31++) { Hu3DModelKill(object->model[var_r31]); @@ -73,9 +68,8 @@ void fn_1_4534(omObjData *object) void fn_1_45C0(omObjData *object, s32 arg1) { - UnkPresentStruct5 *var_r31; + UnkPresentStruct5 *var_r31 = object->data; - var_r31 = object->data; var_r31->unk_00 = arg1; object->func = lbl_1_data_1A0[arg1]; object->unk10 = 0; @@ -84,56 +78,52 @@ void fn_1_45C0(omObjData *object, s32 arg1) s32 fn_1_4604(omObjData *object) { - s32 *var_r31; + UnkPresentStruct5 *var_r31 = object->data; - var_r31 = object->data; - return *var_r31; + return var_r31->unk_00; } void fn_1_4620(omObjData *object) { float var_f31; - omObjData *var_r30; - void *var_r29; - UnkPresentStruct5 *var_r31; + UnkPresentStruct5 *var_r31 = object->data; - var_r31 = object->data; switch (object->unk10) { - case 0: - Hu3DModelAttrReset(object->model[0], 1); - var_r31->x = -300.0f; - var_r31->z = -180.0f; - var_r31->unk_48 = 0.0f; - var_r31->unk_4C = 0.025f; - object->unk10 = 1; - case 1: - var_f31 = sind(90.0f * var_r31->unk_48); - var_f31 *= var_f31; - var_r31->unk_14 = -300.0f + (300.0f * var_f31); - var_r31->unk_2C = var_r31->unk_14 - var_r31->x; - if ((var_r31->unk_48 = var_r31->unk_48 + var_r31->unk_4C) < 1.0f) { + case 0: + Hu3DModelAttrReset(object->model[0], 1); + var_r31->x = -300.0f; + var_r31->z = -180.0f; + var_r31->unk_48 = 0.0f; + var_r31->unk_4C = 0.025f; + object->unk10 = 1; + case 1: + var_f31 = sind(90.0f * var_r31->unk_48); + var_f31 *= var_f31; + var_r31->unk_14 = -300.0f + (300.0f * var_f31); + var_r31->unk_2C = var_r31->unk_14 - var_r31->x; + if ((var_r31->unk_48 = var_r31->unk_48 + var_r31->unk_4C) < 1.0f) { + break; + } + var_r31->x = 0.0f; + var_r31->unk_48 = 0.0f; + var_r31->unk_4C = 0.05f; + object->unk10 = 2; + case 2: + var_r31->unk_2C = 0.0f; + var_r31->unk_34 = 0.01f; + if ((var_r31->unk_48 = var_r31->unk_48 + var_r31->unk_4C) < 1.0f) { + break; + } + var_r31->unk_24 = 0.0f; + var_r31->unk_2C = 0.0f; + var_r31->unk_30 = 0.0f; + var_r31->unk_34 = 0.0f; + object->unk10 = 3; + case 3: + fn_1_45C0(object, 0); break; - } - var_r31->x = 0.0f; - var_r31->unk_48 = 0.0f; - var_r31->unk_4C = 0.05f; - object->unk10 = 2; - case 2: - var_r31->unk_2C = 0.0f; - var_r31->unk_34 = 0.01f; - if ((var_r31->unk_48 = var_r31->unk_48 + var_r31->unk_4C) < 1.0f) { + default: break; - } - var_r31->unk_24 = 0.0f; - var_r31->unk_2C = 0.0f; - var_r31->unk_30 = 0.0f; - var_r31->unk_34 = 0.0f; - object->unk10 = 3; - case 3: - fn_1_45C0(object, 0); - break; - default: - break; } fn_1_4A04(object); } @@ -141,31 +131,29 @@ void fn_1_4620(omObjData *object) void fn_1_4880(omObjData *object) { float var_f31; - UnkPresentStruct5 *var_r30; - void *var_r29; - var_r30 = object->data; + UnkPresentStruct5 *var_r30 = object->data; switch (object->unk10) { - case 0: - var_r30->unk_48 = 0.0f; - var_r30->unk_4C = 0.025f; - Hu3DModelAttrReset(object->model[0], 1); - object->unk10 = 1; - case 1: - var_f31 = sind(90.0f * var_r30->unk_48); - var_f31 *= var_f31; - var_r30->unk_14 = -(300.0f * var_f31); - var_r30->unk_2C = var_r30->unk_14 - var_r30->x; - if ((var_r30->unk_48 = var_r30->unk_48 + var_r30->unk_4C) < 1.0f) { + case 0: + var_r30->unk_48 = 0.0f; + var_r30->unk_4C = 0.025f; + Hu3DModelAttrReset(object->model[0], 1); + object->unk10 = 1; + case 1: + var_f31 = sind(90.0f * var_r30->unk_48); + var_f31 *= var_f31; + var_r30->unk_14 = -(300.0f * var_f31); + var_r30->unk_2C = var_r30->unk_14 - var_r30->x; + if ((var_r30->unk_48 = var_r30->unk_48 + var_r30->unk_4C) < 1.0f) { + break; + } + object->unk10 = 2; + case 2: + Hu3DModelAttrSet(object->model[0], 1); + fn_1_45C0(object, 0); + break; + default: break; - } - object->unk10 = 2; - case 2: - Hu3DModelAttrSet(object->model[0], 1); - fn_1_45C0(object, 0); - break; - default: - break; } fn_1_4A04(object); (void)object; @@ -173,14 +161,10 @@ void fn_1_4880(omObjData *object) void fn_1_4A04(omObjData *object) { - float var_f29; - float var_f30; - s16 var_r29; - UnkPresentStruct5 *var_r31; + UnkPresentStruct5 *var_r31 = object->data; + s16 var_r29 = 0; + float var_f30 = var_r31->unk_2C * var_r31->unk_2C + var_r31->unk_34 * var_r31->unk_34; - var_r31 = object->data; - var_r29 = 0; - var_f30 = var_r31->unk_2C * var_r31->unk_2C + var_r31->unk_34 * var_r31->unk_34; var_r31->unk_38 = sqrtf(var_f30); if (0.001f <= var_r31->unk_38) { if (12.0f <= var_r31->unk_38) { @@ -194,7 +178,8 @@ void fn_1_4A04(omObjData *object) if (8.0f <= var_r31->unk_38) { var_r29 = 2; - } else { + } + else { var_r29 = 1; } } @@ -210,9 +195,8 @@ void fn_1_4A04(omObjData *object) float fn_1_4CEC(float arg8, float arg9, float argA) { float var_f30; - float var_f31; - var_f31 = fmod(arg9 - arg8, 360.0f); + float var_f31 = fmod(arg9 - arg8, 360.0f); if (0.0f > var_f31) { var_f31 += 360.0f; } diff --git a/src/REL/present/init.c b/src/REL/present/init.c index b006e64d..5b8a3164 100644 --- a/src/REL/present/init.c +++ b/src/REL/present/init.c @@ -33,15 +33,15 @@ void ObjectSetup(void) void fn_1_144(s16 arg0, s32 arg1, s32 arg2) { Process *var_r30; - UnkPresentStruct6 *var_r31; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkPresentStruct6), MEMORY_DEFAULT_NUM); + UnkPresentStruct6 *var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkPresentStruct6), MEMORY_DEFAULT_NUM); var_r31->unk_00 = arg0; var_r31->unk_08 = 1.0f / arg2; if (arg1) { var_r31->unk_08 = var_r31->unk_08; var_r31->unk_04 = 0.0f; - } else { + } + else { var_r31->unk_08 = -var_r31->unk_08; var_r31->unk_04 = 1.0f; } @@ -53,18 +53,19 @@ void fn_1_144(s16 arg0, s32 arg1, s32 arg2) void fn_1_254(void) { - UnkPresentStruct6 *var_r31; + UnkPresentStruct6 *var_r31 = HuPrcCurrentGet()->user_data; - var_r31 = HuPrcCurrentGet()->user_data; while (TRUE) { var_r31->unk_04 = var_r31->unk_04 + var_r31->unk_08; if (var_r31->unk_04 > 1.0f) { var_r31->unk_04 = 1.0f; break; - } else if (var_r31->unk_04 < 0.0f) { + } + else if (var_r31->unk_04 < 0.0f) { var_r31->unk_04 = 0.0f; break; - } else { + } + else { espTPLvlSet(var_r31->unk_00, var_r31->unk_04); HuPrcVSleep(); } @@ -80,8 +81,8 @@ void fn_1_254(void) void fn_1_334(s16 arg0, s32 arg1, float arg8, s32 arg2) { Process *var_r30; - UnkPresentStruct6Weird *var_r31; // TODO correct type? why are only 12 bytes allocated? - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 12, MEMORY_DEFAULT_NUM); + // TODO correct type? why are only 12 bytes allocated? + UnkPresentStruct6Weird *var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 12, MEMORY_DEFAULT_NUM); var_r31->unk_00 = arg0; var_r31->unk_0C = 1.0f / arg2; var_r31->unk_04 = arg8; @@ -89,7 +90,8 @@ void fn_1_334(s16 arg0, s32 arg1, float arg8, s32 arg2) if (arg1) { var_r31->unk_0C = var_r31->unk_0C; var_r31->unk_08 = 0.0f; - } else { + } + else { var_r31->unk_0C = -var_r31->unk_0C; var_r31->unk_08 = 1.0f; } @@ -101,18 +103,19 @@ void fn_1_334(s16 arg0, s32 arg1, float arg8, s32 arg2) void fn_1_45C(void) { - UnkPresentStruct6Weird *var_r31; // TODO correct type? how is 0C possible? + UnkPresentStruct6Weird *var_r31 = HuPrcCurrentGet()->user_data; - var_r31 = HuPrcCurrentGet()->user_data; while (TRUE) { var_r31->unk_08 = var_r31->unk_08 + var_r31->unk_0C; if (var_r31->unk_08 > 1.0f) { var_r31->unk_08 = 1.0f; break; - } else if (var_r31->unk_08 < 0.0f) { + } + else if (var_r31->unk_08 < 0.0f) { var_r31->unk_08 = 0.0f; break; - } else { + } + else { Hu3DModelTPLvlSet(var_r31->unk_00, var_r31->unk_08 * var_r31->unk_04); HuPrcVSleep(); } @@ -127,50 +130,44 @@ void fn_1_45C(void) u32 fn_1_550(u16 arg0) { - u32 var_r31; - - var_r31 = HuPadBtnDown[0] & arg0; + u32 var_r31 = HuPadBtnDown[0] & arg0; return var_r31 != 0; } u32 fn_1_584(u16 arg0) { - u32 var_r31; - - var_r31 = HuPadDStkRep[0] & arg0; + u32 var_r31 = HuPadDStkRep[0] & arg0; return var_r31 != 0; } u32 fn_1_5B8(u16 arg0) { - u32 var_r31; - - var_r31 = HuPadDStk[0] & arg0; + u32 var_r31 = HuPadDStk[0] & arg0; return var_r31 != 0; } void fn_1_5EC(omObjData *object) { switch (object->unk10) { - case 0: - object->unk10 = 1; - case 1: - if (!omSysExitReq) { + case 0: + object->unk10 = 1; + case 1: + if (!omSysExitReq) { + break; + } + object->unk10 = 2; + case 2: + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudFadeOut(1000); + object->unk10 = 3; + break; + case 3: + if (!WipeStatGet()) { + fn_1_3B18(lbl_1_bss_18); + omOvlReturnEx(1, 1); + } + break; + default: break; - } - object->unk10 = 2; - case 2: - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - HuAudFadeOut(1000); - object->unk10 = 3; - break; - case 3: - if (!WipeStatGet()) { - fn_1_3B18(lbl_1_bss_18); - omOvlReturnEx(1, 1); - } - break; - default: - break; } } diff --git a/src/REL/present/main.c b/src/REL/present/main.c index 6542a7b7..0e4cbfa7 100644 --- a/src/REL/present/main.c +++ b/src/REL/present/main.c @@ -20,12 +20,10 @@ void fn_1_41BC(UnkWindowDataStruct *arg0, s32 arg1); omObjData *fn_1_39A8(void) { - omObjData *object; - UnkPresentStruct *var_r30; - - object = omAddObjEx(lbl_1_bss_4, 1000, 0, 0, 4, NULL); - var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkPresentStruct), MEMORY_DEFAULT_NUM); + omObjData *object = omAddObjEx(lbl_1_bss_4, 1000, 0, 0, 4, NULL); + UnkPresentStruct *var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkPresentStruct), MEMORY_DEFAULT_NUM); object->data = var_r30; + var_r30->unk_04 = 0; lbl_1_bss_8 = fn_1_6B4(); lbl_1_bss_10 = fn_1_1458(); @@ -38,7 +36,8 @@ omObjData *fn_1_39A8(void) OSReport("*** PRESENTROOM ( PRESENT GET MODE ) ***\n"); object->func = fn_1_3DB8; object->unk10 = 0; - } else { + } + else { OSReport("*** PRESENTROOM ( PRESENT VIEW MODE ) ***\n"); object->func = fn_1_3B8C; object->unk10 = 0; @@ -49,9 +48,8 @@ omObjData *fn_1_39A8(void) void fn_1_3B18(omObjData *object) { - UnkWindowDataStruct **var_r31; + UnkWindowDataStruct **var_r31 = object->data; - var_r31 = object->data; fn_1_8F0(lbl_1_bss_8); fn_1_1784(lbl_1_bss_10); fn_1_4534(lbl_1_bss_20); @@ -61,121 +59,119 @@ void fn_1_3B18(omObjData *object) void fn_1_3B8C(omObjData *object) { - UnkPresentStruct *var_r30; - - var_r30 = object->data; + UnkPresentStruct *var_r30 = object->data; switch (object->unk10) { - case 0: - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - object->unk10 = 1; - case 1: - if (WipeStatGet()) { + case 0: + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + object->unk10 = 1; + case 1: + if (WipeStatGet()) { + return; + } + object->unk10 = 2; + case 2: + fn_1_180C(lbl_1_bss_10, 1); + object->unk10 = 3; + case 3: + if (fn_1_1850(lbl_1_bss_10)) { + return; + } + object->unk10 = 4; + case 4: + fn_1_45C0(lbl_1_bss_20, 1); + object->unk10 = 5; + case 5: + if (fn_1_4604(lbl_1_bss_20)) { + return; + } + object->unk10 = 6; + case 6: + HuAudFXPlay(66); + fn_1_4080(var_r30->unk_00); + fn_1_40B0(var_r30->unk_00, 0x320002); + object->unk10 = 7; + case 7: + if (var_r30->unk_00->unk_20) { + return; + } + fn_1_41BC(var_r30->unk_00, 1); + object->unk10 = 8; + case 8: + if (var_r30->unk_00->unk_20) { + return; + } + fn_1_4098(var_r30->unk_00); + if (!var_r30->unk_00->choice) { + var_r30->unk_04 = 0; + object->unk10 = 11; + return; + } + else { + object->unk10 = 9; + return; + } + case 9: + fn_1_45C0(lbl_1_bss_20, 2); + object->unk10 = 10; return; - } - object->unk10 = 2; - case 2: - fn_1_180C(lbl_1_bss_10, 1); - object->unk10 = 3; - case 3: - if (fn_1_1850(lbl_1_bss_10)) { + case 10: + if (fn_1_4604(lbl_1_bss_20)) { + return; + } + object->unk10 = 2; return; - } - object->unk10 = 4; - case 4: - fn_1_45C0(lbl_1_bss_20, 1); - object->unk10 = 5; - case 5: - if (fn_1_4604(lbl_1_bss_20)) { - return; - } - object->unk10 = 6; - case 6: - HuAudFXPlay(66); - fn_1_4080(var_r30->unk_00); - fn_1_40B0(var_r30->unk_00, 0x320002); - object->unk10 = 7; - case 7: - if (var_r30->unk_00->unk_20) { - return; - } - fn_1_41BC(var_r30->unk_00, 1); - object->unk10 = 8; - case 8: - if (var_r30->unk_00->unk_20) { - return; - } - fn_1_4098(var_r30->unk_00); - if (!var_r30->unk_00->choice) { + case 11: + object->unk10 = 12; var_r30->unk_04 = 0; - object->unk10 = 11; - return; - } else { - object->unk10 = 9; - return; - } - case 9: - fn_1_45C0(lbl_1_bss_20, 2); - object->unk10 = 10; - return; - case 10: - if (fn_1_4604(lbl_1_bss_20)) { - return; - } - object->unk10 = 2; - return; - case 11: - object->unk10 = 12; - var_r30->unk_04 = 0; - case 12: - if (var_r30->unk_00->unk_20) { - return; - } - if (var_r30->unk_04++ >= 60) { - omSysExitReq = 1; - object->func = NULL; - object->unk10 = 0; - } - default: - break; + case 12: + if (var_r30->unk_00->unk_20) { + return; + } + if (var_r30->unk_04++ >= 60) { + omSysExitReq = 1; + object->func = NULL; + object->unk10 = 0; + } + default: + break; } } void fn_1_3DB8(omObjData *arg0) { - void *sp8; + void *sp8 = arg0->data; - sp8 = arg0->data; switch (arg0->unk10) { - case 0: - fn_1_186C(lbl_1_bss_10, omovlevtno - 1); - arg0->unk10 = 1; - case 1: - fn_1_180C(lbl_1_bss_10, 3); - arg0->unk10 = 2; - case 2: - if (!fn_1_1850(lbl_1_bss_10)) { - arg0->unk10 = 3; - } else { + case 0: + fn_1_186C(lbl_1_bss_10, omovlevtno - 1); + arg0->unk10 = 1; + case 1: + fn_1_180C(lbl_1_bss_10, 3); + arg0->unk10 = 2; + case 2: + if (!fn_1_1850(lbl_1_bss_10)) { + arg0->unk10 = 3; + } + else { + break; + } + case 3: + arg0->unk10 = 4; + case 4: + omSysExitReq = 1; + arg0->func = NULL; + arg0->unk10 = 0; + break; + default: break; - } - case 3: - arg0->unk10 = 4; - case 4: - omSysExitReq = 1; - arg0->func = NULL; - arg0->unk10 = 0; - break; - default: - break; } } UnkWindowDataStruct *fn_1_3EA4(s32 arg0) { - UnkWindowDataStruct *var_r31; + UnkWindowDataStruct *var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkWindowDataStruct), MEMORY_DEFAULT_NUM); - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkWindowDataStruct), MEMORY_DEFAULT_NUM); var_r31->unk18 = 0; var_r31->unk10 = 0; var_r31->unk14 = 0; @@ -184,18 +180,18 @@ UnkWindowDataStruct *fn_1_3EA4(s32 arg0) var_r31->process->user_data = var_r31; var_r31->unk08 = arg0; switch (arg0) { - case 0: - var_r31->window = HuWinExCreateStyled(-10000.0f, 360.0f, 480, 80, -1, 1); - HuWinBGTPLvlSet(var_r31->window, 0.8f); - HuWinMesSpeedSet(var_r31->window, 0); - HuWinMesPalSet(var_r31->window, 7, 0, 0, 0); - break; - case 1: - var_r31->window = HuWinExCreateStyled(-10000.0f, 326.0f, 500, 40, -1, 0); - HuWinAttrSet(var_r31->window, 2048); - HuWinBGTPLvlSet(var_r31->window, 0.0f); - HuWinMesSpeedSet(var_r31->window, 0); - break; + case 0: + var_r31->window = HuWinExCreateStyled(-10000.0f, 360.0f, 480, 80, -1, 1); + HuWinBGTPLvlSet(var_r31->window, 0.8f); + HuWinMesSpeedSet(var_r31->window, 0); + HuWinMesPalSet(var_r31->window, 7, 0, 0, 0); + break; + case 1: + var_r31->window = HuWinExCreateStyled(-10000.0f, 326.0f, 500, 40, -1, 0); + HuWinAttrSet(var_r31->window, 2048); + HuWinBGTPLvlSet(var_r31->window, 0.0f); + HuWinMesSpeedSet(var_r31->window, 0); + break; } HuWinDrawNoSet(var_r31->window, 63); fn_1_4190(var_r31); @@ -272,28 +268,27 @@ void fn_1_41BC(UnkWindowDataStruct *windowData, s32 arg1) void fn_1_41E0(void) { - UnkWindowDataStruct *windowData; - - windowData = HuPrcCurrentGet()->user_data; + UnkWindowDataStruct *windowData = HuPrcCurrentGet()->user_data; + while (TRUE) { switch (windowData->unk_20) { - case 1: - windowData->unk0C = 1; - HuWinExAnimIn(windowData->window); - break; - case 2: - HuWinExAnimOut(windowData->window); - windowData->unk0C = 0; - break; - case 3: - winData[windowData->window].active_pad = 1; - HuWinMesWait(windowData->window); - windowData->unk10 = 0; - break; - case 4: - windowData->choice = HuWinChoiceGet(windowData->window, windowData->choice); - windowData->unk14 = 0; - break; + case 1: + windowData->unk0C = 1; + HuWinExAnimIn(windowData->window); + break; + case 2: + HuWinExAnimOut(windowData->window); + windowData->unk0C = 0; + break; + case 3: + winData[windowData->window].active_pad = 1; + HuWinMesWait(windowData->window); + windowData->unk10 = 0; + break; + case 4: + windowData->choice = HuWinChoiceGet(windowData->window, windowData->choice); + windowData->unk14 = 0; + break; } if (windowData->unk18 != 0) { HuWinMesSet(windowData->window, windowData->unk18); diff --git a/src/REL/present/present.c b/src/REL/present/present.c index 51e47269..1aa725eb 100644 --- a/src/REL/present/present.c +++ b/src/REL/present/present.c @@ -41,68 +41,125 @@ static const s32 lbl_1_rodata_A0[] = { 0x006E006C, 0x006E006B, 0x006E0000, 0x006 0x006E0082, 0x006E0083, 0x006E0084, 0x006E0085, 0x006E0086 }; static const UnkPresentNestedOuterStruct lbl_1_rodata_2B8[] = { - { 0x00000006, { { 0x00000002, 0x00000008, 0x00320006, 0x00320042 }, { 0x00000003, 0x00000009, 0x00320007, 0x00320043 }, - { 0x00000004, 0x0000000A, 0x00320008, 0x00320044 }, { 0x00000005, 0x0000000B, 0x00320009, 0x00320045 }, - { 0x00000006, 0x0000000C, 0x0032000A, 0x00320046 }, { 0x00000007, 0x0000000D, 0x0032000B, 0x00320047 }, - }, - }, - { 0x00000006, { { 0x0000000E, 0x00000014, 0x0032000C, 0x00320048 }, { 0x0000000F, 0x00000015, 0x0032000D, 0x00320049 }, - { 0x00000010, 0x00000016, 0x0032000E, 0x0032004A }, { 0x00000011, 0x00000017, 0x0032000F, 0x0032004B }, - { 0x00000012, 0x00000018, 0x00320010, 0x0032004C }, { 0x00000013, 0x00000019, 0x00320011, 0x0032004D }, - }, - }, - { 0x00000006, { { 0x0000001A, 0x00000020, 0x00320012, 0x0032004E }, { 0x0000001B, 0x00000021, 0x00320013, 0x0032004F }, - { 0x0000001C, 0x00000022, 0x00320014, 0x00320050 }, { 0x0000001D, 0x00000023, 0x00320015, 0x00320051 }, - { 0x0000001E, 0x00000024, 0x00320016, 0x00320052 }, { 0x0000001F, 0x00000025, 0x00320017, 0x00320053 }, - }, - }, - { 0x00000006, { { 0x00000026, 0x0000002C, 0x00320018, 0x00320054 }, { 0x00000027, 0x0000002D, 0x00320019, 0x00320055 }, - { 0x00000028, 0x0000002E, 0x0032001A, 0x00320056 }, { 0x00000029, 0x0000002F, 0x0032001B, 0x00320057 }, - { 0x0000002A, 0x00000030, 0x0032001C, 0x00320058 }, { 0x0000002B, 0x00000031, 0x0032001D, 0x00320059 }, - }, - }, - { 0x00000006, { { 0x00000032, 0x00000038, 0x0032001E, 0x0032005A }, { 0x00000033, 0x00000039, 0x0032001F, 0x0032005B }, - { 0x00000034, 0x0000003A, 0x00320020, 0x0032005C }, { 0x00000035, 0x0000003B, 0x00320021, 0x0032005D }, - { 0x00000036, 0x0000003C, 0x00320022, 0x0032005E }, { 0x00000037, 0x0000003D, 0x00320023, 0x0032005F }, - }, - }, - { 0x00000001, { { 0x00000001, 0xFFFFFFFF, 0x00320041, 0x00320041 } } }, - { 0x00000006, { { 0x0000003E, 0x00000044, 0x00320024, 0x00320060 }, { 0x0000003F, 0x00000045, 0x00320025, 0x00320061 }, - { 0x00000040, 0x00000046, 0x00320026, 0x00320062 }, { 0x00000041, 0x00000047, 0x00320027, 0x00320063 }, - { 0x00000042, 0x00000048, 0x00320028, 0x00320064 }, { 0x00000043, 0x00000049, 0x00320029, 0x00320065 }, - }, - }, - { 0x00000006, { { 0x0000004A, 0x00000050, 0x0032002A, 0x00320066 }, { 0x0000004B, 0x00000051, 0x0032002B, 0x00320067 }, - { 0x0000004C, 0x00000052, 0x0032002C, 0x00320068 }, { 0x0000004D, 0x00000053, 0x0032002D, 0x00320069 }, - { 0x0000004E, 0x00000054, 0x0032002E, 0x0032006A }, { 0x0000004F, 0x00000055, 0x0032002F, 0x0032006B }, - }, - }, - { 0x00000006, { { 0x00000056, 0x0000005C, 0x00320030, 0x0032006C }, { 0x00000057, 0x0000005D, 0x00320031, 0x0032006D }, - { 0x00000058, 0x0000005E, 0x00320032, 0x0032006E }, { 0x00000059, 0x0000005F, 0x00320033, 0x0032006F }, - { 0x0000005A, 0x00000060, 0x00320034, 0x00320070 }, { 0x0000005B, 0x00000061, 0x00320035, 0x00320071 }, - }, - }, - { 0x0000000B, { { 0x00000062, 0xFFFFFFFF, 0x00320036, 0x00320072 }, { 0x00000063, 0xFFFFFFFF, 0x00320037, 0x00320073 }, - { 0x00000064, 0xFFFFFFFF, 0x00320038, 0x00320074 }, { 0x00000065, 0xFFFFFFFF, 0x00320039, 0x00320075 }, - { 0x00000066, 0xFFFFFFFF, 0x0032003A, 0x00320076 }, { 0x00000067, 0xFFFFFFFF, 0x0032003B, 0x00320077 }, - { 0x00000068, 0xFFFFFFFF, 0x0032003C, 0x00320078 }, { 0x00000069, 0xFFFFFFFF, 0x0032003D, 0x00320079 }, - { 0x0000006A, 0xFFFFFFFF, 0x0032003E, 0x0032007A }, { 0x0000006B, 0xFFFFFFFF, 0x0032003F, 0x0032007B }, - { 0x0000006C, 0xFFFFFFFF, 0x00320040, 0x0032007C } - }, - }, + { + 0x00000006, + { + { 0x00000002, 0x00000008, 0x00320006, 0x00320042 }, + { 0x00000003, 0x00000009, 0x00320007, 0x00320043 }, + { 0x00000004, 0x0000000A, 0x00320008, 0x00320044 }, + { 0x00000005, 0x0000000B, 0x00320009, 0x00320045 }, + { 0x00000006, 0x0000000C, 0x0032000A, 0x00320046 }, + { 0x00000007, 0x0000000D, 0x0032000B, 0x00320047 }, + }, + }, + { + 0x00000006, + { + { 0x0000000E, 0x00000014, 0x0032000C, 0x00320048 }, + { 0x0000000F, 0x00000015, 0x0032000D, 0x00320049 }, + { 0x00000010, 0x00000016, 0x0032000E, 0x0032004A }, + { 0x00000011, 0x00000017, 0x0032000F, 0x0032004B }, + { 0x00000012, 0x00000018, 0x00320010, 0x0032004C }, + { 0x00000013, 0x00000019, 0x00320011, 0x0032004D }, + }, + }, + { + 0x00000006, + { + { 0x0000001A, 0x00000020, 0x00320012, 0x0032004E }, + { 0x0000001B, 0x00000021, 0x00320013, 0x0032004F }, + { 0x0000001C, 0x00000022, 0x00320014, 0x00320050 }, + { 0x0000001D, 0x00000023, 0x00320015, 0x00320051 }, + { 0x0000001E, 0x00000024, 0x00320016, 0x00320052 }, + { 0x0000001F, 0x00000025, 0x00320017, 0x00320053 }, + }, + }, + { + 0x00000006, + { + { 0x00000026, 0x0000002C, 0x00320018, 0x00320054 }, + { 0x00000027, 0x0000002D, 0x00320019, 0x00320055 }, + { 0x00000028, 0x0000002E, 0x0032001A, 0x00320056 }, + { 0x00000029, 0x0000002F, 0x0032001B, 0x00320057 }, + { 0x0000002A, 0x00000030, 0x0032001C, 0x00320058 }, + { 0x0000002B, 0x00000031, 0x0032001D, 0x00320059 }, + }, + }, + { + 0x00000006, + { + { 0x00000032, 0x00000038, 0x0032001E, 0x0032005A }, + { 0x00000033, 0x00000039, 0x0032001F, 0x0032005B }, + { 0x00000034, 0x0000003A, 0x00320020, 0x0032005C }, + { 0x00000035, 0x0000003B, 0x00320021, 0x0032005D }, + { 0x00000036, 0x0000003C, 0x00320022, 0x0032005E }, + { 0x00000037, 0x0000003D, 0x00320023, 0x0032005F }, + }, + }, + { + 0x00000001, + { { 0x00000001, 0xFFFFFFFF, 0x00320041, 0x00320041 } }, + }, + { + 0x00000006, + { + { 0x0000003E, 0x00000044, 0x00320024, 0x00320060 }, + { 0x0000003F, 0x00000045, 0x00320025, 0x00320061 }, + { 0x00000040, 0x00000046, 0x00320026, 0x00320062 }, + { 0x00000041, 0x00000047, 0x00320027, 0x00320063 }, + { 0x00000042, 0x00000048, 0x00320028, 0x00320064 }, + { 0x00000043, 0x00000049, 0x00320029, 0x00320065 }, + }, + }, + { + 0x00000006, + { + { 0x0000004A, 0x00000050, 0x0032002A, 0x00320066 }, + { 0x0000004B, 0x00000051, 0x0032002B, 0x00320067 }, + { 0x0000004C, 0x00000052, 0x0032002C, 0x00320068 }, + { 0x0000004D, 0x00000053, 0x0032002D, 0x00320069 }, + { 0x0000004E, 0x00000054, 0x0032002E, 0x0032006A }, + { 0x0000004F, 0x00000055, 0x0032002F, 0x0032006B }, + }, + }, + { + 0x00000006, + { + { 0x00000056, 0x0000005C, 0x00320030, 0x0032006C }, + { 0x00000057, 0x0000005D, 0x00320031, 0x0032006D }, + { 0x00000058, 0x0000005E, 0x00320032, 0x0032006E }, + { 0x00000059, 0x0000005F, 0x00320033, 0x0032006F }, + { 0x0000005A, 0x00000060, 0x00320034, 0x00320070 }, + { 0x0000005B, 0x00000061, 0x00320035, 0x00320071 }, + }, + }, + { + 0x0000000B, + { + { 0x00000062, 0xFFFFFFFF, 0x00320036, 0x00320072 }, + { 0x00000063, 0xFFFFFFFF, 0x00320037, 0x00320073 }, + { 0x00000064, 0xFFFFFFFF, 0x00320038, 0x00320074 }, + { 0x00000065, 0xFFFFFFFF, 0x00320039, 0x00320075 }, + { 0x00000066, 0xFFFFFFFF, 0x0032003A, 0x00320076 }, + { 0x00000067, 0xFFFFFFFF, 0x0032003B, 0x00320077 }, + { 0x00000068, 0xFFFFFFFF, 0x0032003C, 0x00320078 }, + { 0x00000069, 0xFFFFFFFF, 0x0032003D, 0x00320079 }, + { 0x0000006A, 0xFFFFFFFF, 0x0032003E, 0x0032007A }, + { 0x0000006B, 0xFFFFFFFF, 0x0032003F, 0x0032007B }, + { 0x0000006C, 0xFFFFFFFF, 0x00320040, 0x0032007C }, + }, + }, }; omObjData *fn_1_1458(void) { - UnkPresentStruct2 *var_r31; s32 var_r30; - omObjData *var_r29; s32 var_r28; s16 var_r27; LightData *var_r26; - var_r29 = omAddObjEx(lbl_1_bss_4, 1003, 0, 0, 1, NULL); - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 868, MEMORY_DEFAULT_NUM); + omObjData *var_r29 = omAddObjEx(lbl_1_bss_4, 1003, 0, 0, 1, NULL); + UnkPresentStruct2 *var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 868, MEMORY_DEFAULT_NUM); var_r29->data = var_r31; var_r31->unk_234 = 0; var_r31->unk_238 = 0; @@ -157,11 +214,9 @@ omObjData *fn_1_1458(void) void fn_1_1784(omObjData *object) { - UnkPresentStruct2 *var_r31; s32 var_r30; - void *var_r29; - var_r31 = object->data; + UnkPresentStruct2 *var_r31 = object->data; fn_1_4040(var_r31->unk_228); fn_1_4040(var_r31->unk_22C); @@ -174,9 +229,8 @@ void fn_1_1784(omObjData *object) void fn_1_180C(omObjData *object, s32 arg1) { - UnkPresentStruct2 *var_r31; + UnkPresentStruct2 *var_r31 = object->data; - var_r31 = object->data; var_r31->unk_0C = arg1; object->func = lbl_1_data_6C[arg1]; object->unk10 = 0; @@ -185,9 +239,7 @@ void fn_1_180C(omObjData *object, s32 arg1) s32 fn_1_1850(omObjData *object) { - UnkPresentStruct2 *var_r31; - - var_r31 = object->data; + UnkPresentStruct2 *var_r31 = object->data; return var_r31->unk_0C; } @@ -196,9 +248,8 @@ static const s32 lbl_1_rodata_9F8[] = { 0, 1, 2, 3, 4, 0, 5, 6, 7, 0 }; void fn_1_186C(omObjData *object, s32 arg1) { - UnkPresentStruct2 *var_r31; + UnkPresentStruct2 *var_r31 = object->data; - var_r31 = object->data; if (arg1 < 48) { var_r31->unk_234 = lbl_1_rodata_9D8[arg1 / 6]; var_r31->unk_238 = arg1 % 6; @@ -216,120 +267,140 @@ void fn_1_186C(omObjData *object, s32 arg1) void fn_1_1928(omObjData *object) { Vec sp8; - UnkPresentStruct2 *var_r31; s32 var_r29; - UnkPresentStruct2 *var_r28; - var_r31 = object->data; + UnkPresentStruct2 *var_r31 = object->data; + switch (object->unk10) { - case 0: - var_r31->unk_00 = 0; - var_r31->unk_08 = 0; - object->unk10 = 1; - case 1: - if (var_r31->unk_08) { - fn_1_920(lbl_1_bss_8, 0.0f, 220.0f, 250.0f, 30); - fn_1_9A4(lbl_1_bss_8, 0.0f, 420.0f, -600.0f, 30); - } else { - fn_1_920(lbl_1_bss_8, 0.0f, 220.0f, 250.0f, 30); - fn_1_9A4(lbl_1_bss_8, 0.0f, 0.0f, -600.0f, 30); - } - object->unk10 = 2; - case 2: - if (!fn_1_B6C(lbl_1_bss_8) && !var_r31->unk_228->unk_20 && !fn_1_28F0(object)) { - fn_1_4080(var_r31->unk_228); - fn_1_4080(var_r31->unk_22C); + case 0: + var_r31->unk_00 = 0; + var_r31->unk_08 = 0; + object->unk10 = 1; + case 1: if (var_r31->unk_08) { - var_r29 = 0x320080; - } else if (var_r31->unk_234 == 5) { - var_r29 = 0x320085; - } else { - var_r29 = 0x32007e; + fn_1_920(lbl_1_bss_8, 0.0f, 220.0f, 250.0f, 30); + fn_1_9A4(lbl_1_bss_8, 0.0f, 420.0f, -600.0f, 30); } - fn_1_40B0(var_r31->unk_22C, var_r29); - switch (var_r31->unk_234) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 6: - case 7: - case 8: + else { + fn_1_920(lbl_1_bss_8, 0.0f, 220.0f, 250.0f, 30); + fn_1_9A4(lbl_1_bss_8, 0.0f, 0.0f, -600.0f, 30); + } + object->unk10 = 2; + case 2: + if (!fn_1_B6C(lbl_1_bss_8) && !var_r31->unk_228->unk_20 && !fn_1_28F0(object)) { + fn_1_4080(var_r31->unk_228); + fn_1_4080(var_r31->unk_22C); if (var_r31->unk_08) { - if (fn_1_2B84(object, var_r31->unk_234, 5)) { - var_r29 = 0x320005; - } else { - var_r29 = 0x320082; - } - } else if (fn_1_2BCC(object, var_r31->unk_234) > 0) { - var_r29 = 0x320001; - } else { - var_r29 = 0x320081; + var_r29 = 0x320080; } - fn_1_40B0(var_r31->unk_228, var_r29); - fn_1_4104(var_r31->unk_228, lbl_1_rodata_9F8[var_r31->unk_234], 0); - break; - case 5: - if (fn_1_2B84(object, 5, 0)) { - var_r29 = 0x320041; - } else { - var_r29 = 0x320084; + else if (var_r31->unk_234 == 5) { + var_r29 = 0x320085; } - fn_1_40B0(var_r31->unk_228, var_r29); - break; - case 9: - if (fn_1_2BCC(object, 9) > 0) { - var_r29 = 0x320083; - } else { - var_r29 = 0x320081; + else { + var_r29 = 0x32007e; } - fn_1_40B0(var_r31->unk_228, var_r29); - break; - default: - break; + fn_1_40B0(var_r31->unk_22C, var_r29); + switch (var_r31->unk_234) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 6: + case 7: + case 8: + if (var_r31->unk_08) { + if (fn_1_2B84(object, var_r31->unk_234, 5)) { + var_r29 = 0x320005; + } + else { + var_r29 = 0x320082; + } + } + else if (fn_1_2BCC(object, var_r31->unk_234) > 0) { + var_r29 = 0x320001; + } + else { + var_r29 = 0x320081; + } + fn_1_40B0(var_r31->unk_228, var_r29); + fn_1_4104(var_r31->unk_228, lbl_1_rodata_9F8[var_r31->unk_234], 0); + break; + case 5: + if (fn_1_2B84(object, 5, 0)) { + var_r29 = 0x320041; + } + else { + var_r29 = 0x320084; + } + fn_1_40B0(var_r31->unk_228, var_r29); + break; + case 9: + if (fn_1_2BCC(object, 9) > 0) { + var_r29 = 0x320083; + } + else { + var_r29 = 0x320081; + } + fn_1_40B0(var_r31->unk_228, var_r29); + break; + default: + break; + } + if (var_r31->unk_08) { + sp8.x = 0.0f; + sp8.y = 600.0f; + sp8.z = -500.0f; + } + else { + sp8.x = 0.0f; + sp8.y = 210.0f; + sp8.z = -500.0f; + } + Hu3D3Dto2D(&sp8, 1, &sp8); + sp8.y -= 15.0f; + sp8.x -= 20.0f; + espPosSet(var_r31->sprite, sp8.x, sp8.y); + if (!var_r31->unk_00) { + fn_1_144(var_r31->sprite, 1, 5); + var_r31->unk_00 = 1; + } + object->unk10 = 3; } - if (var_r31->unk_08) { - sp8.x = 0.0f; - sp8.y = 600.0f; - sp8.z = -500.0f; - } else { - sp8.x = 0.0f; - sp8.y = 210.0f; - sp8.z = -500.0f; - } - Hu3D3Dto2D(&sp8, 1, &sp8); - sp8.y -= 15.0f; - sp8.x -= 20.0f; - espPosSet(var_r31->sprite, sp8.x, sp8.y); - if (!var_r31->unk_00) { - fn_1_144(var_r31->sprite, 1, 5); - var_r31->unk_00 = 1; - } - object->unk10 = 3; - } - break; - case 3: - if (!var_r31->unk_228->unk_20) { - if (fn_1_550(512) && !var_r31->unk_08) { - fn_1_144(var_r31->sprite, 0, 5); - var_r31->unk_00 = 0; - fn_1_4098(var_r31->unk_228); - fn_1_4098(var_r31->unk_22C); - HuAudFXPlay(3); - object->unk10 = 4; - } else if (fn_1_550(256) && !var_r31->unk_08) { - if (var_r31->unk_234 != 5) { + break; + case 3: + if (!var_r31->unk_228->unk_20) { + if (fn_1_550(512) && !var_r31->unk_08) { fn_1_144(var_r31->sprite, 0, 5); var_r31->unk_00 = 0; fn_1_4098(var_r31->unk_228); fn_1_4098(var_r31->unk_22C); - HuAudFXPlay(2); - fn_1_180C(object, 2); + HuAudFXPlay(3); + object->unk10 = 4; } - } else if (fn_1_584(8) && !var_r31->unk_08) { - if ((var_r31->unk_234 != 5) && (var_r31->unk_234 != 9)) { - var_r31->unk_08 = 1; + else if (fn_1_550(256) && !var_r31->unk_08) { + if (var_r31->unk_234 != 5) { + fn_1_144(var_r31->sprite, 0, 5); + var_r31->unk_00 = 0; + fn_1_4098(var_r31->unk_228); + fn_1_4098(var_r31->unk_22C); + HuAudFXPlay(2); + fn_1_180C(object, 2); + } + } + else if (fn_1_584(8) && !var_r31->unk_08) { + if ((var_r31->unk_234 != 5) && (var_r31->unk_234 != 9)) { + var_r31->unk_08 = 1; + fn_1_144(var_r31->sprite, 0, 5); + var_r31->unk_00 = 0; + fn_1_4098(var_r31->unk_228); + fn_1_4098(var_r31->unk_22C); + HuAudFXPlay(0); + object->unk10 = 1; + } + } + else if (fn_1_584(4) && var_r31->unk_08) { + var_r31->unk_08 = 0; fn_1_144(var_r31->sprite, 0, 5); var_r31->unk_00 = 0; fn_1_4098(var_r31->unk_228); @@ -337,55 +408,50 @@ void fn_1_1928(omObjData *object) HuAudFXPlay(0); object->unk10 = 1; } - } else if (fn_1_584(4) && var_r31->unk_08) { - var_r31->unk_08 = 0; - fn_1_144(var_r31->sprite, 0, 5); - var_r31->unk_00 = 0; - fn_1_4098(var_r31->unk_228); - fn_1_4098(var_r31->unk_22C); - HuAudFXPlay(0); - object->unk10 = 1; - } else if (fn_1_584(1)) { - fn_1_1FA8(object, 1); - HuAudFXPlay(0); - object->unk10 = 2; - } else if (fn_1_584(2)) { - fn_1_1FA8(object, 2); - HuAudFXPlay(0); - object->unk10 = 2; + else if (fn_1_584(1)) { + fn_1_1FA8(object, 1); + HuAudFXPlay(0); + object->unk10 = 2; + } + else if (fn_1_584(2)) { + fn_1_1FA8(object, 2); + HuAudFXPlay(0); + object->unk10 = 2; + } } - } - break; - case 4: - fn_1_180C(object, 0); - break; + break; + case 4: + fn_1_180C(object, 0); + break; } fn_1_2774(object); } void fn_1_1FA8(omObjData *object, s32 arg1) { - UnkPresentStruct2 *var_r31; + float var_f31; + float var_f30; + float var_f29; + s32 var_r30; s32 var_r29; s32 var_r28; - float var_f30; - float var_f31; - float var_f29; - var_r31 = object->data; + UnkPresentStruct2 *var_r31 = object->data; for (var_r30 = 0, var_f31 = 0.0f;; var_r30++) { var_f31 += 36.0f; if (arg1 == 1) { var_r29 = -1; - } else { + } + else { var_r29 = 1; } var_r31->unk_234 = var_r31->unk_234 + var_r29; if (var_r31->unk_234 < 0) { var_r31->unk_234 = 9; - } else if (var_r31->unk_234 >= 10) { + } + else if (var_r31->unk_234 >= 10) { var_r31->unk_234 = 0; } if (!((var_r31->unk_08) && ((var_r31->unk_234 == 5) || (var_r31->unk_234 == 9)))) { @@ -394,13 +460,15 @@ void fn_1_1FA8(omObjData *object, s32 arg1) } if (arg1 == 1) { var_f30 = -var_f31; - } else { + } + else { var_f30 = var_f31; } var_f29 = var_r31->unk_23C + var_f30; if (!var_r30) { var_r28 = 30; - } else { + } + else { var_r28 = 45; } fn_1_2708(object, var_f29, var_r28); @@ -408,124 +476,132 @@ void fn_1_1FA8(omObjData *object, s32 arg1) void fn_1_20E8(omObjData *object) { - Vec sp8; - UnkPresentStruct2 *var_r31; - s32 var_r29; - s32 var_r28; - s32 var_r27; - s32 var_r25; float var_f31; float var_f30; - var_r31 = object->data; - var_r29 = var_r31->unk_238; - var_r27 = var_r31->unk_234; + UnkPresentStruct2 *var_r31 = object->data; + s32 var_r29 = var_r31->unk_238; + s32 var_r27 = var_r31->unk_234; switch (object->unk10) { - case 0: - fn_1_920(lbl_1_bss_8, 0.0f, 220.0f, -120.0f, 30); - fn_1_9A4(lbl_1_bss_8, 0.0f, 0.0f, -600.0f, 30); - var_r31->unk_04 = fn_1_2BCC(object, var_r27) > 0; - var_r31->unk_00 = 0; - var_r31->unk_238 = 0; - if (var_r31->unk_04) { - var_r25 = fn_1_3394(var_r31->unk_234); - for (var_r28 = 0; var_r28 < var_r25; var_r28++) { - if (fn_1_2B84(object, var_r27, var_r28)) { - var_r31->unk_238 = var_r28; - break; + case 0: + fn_1_920(lbl_1_bss_8, 0.0f, 220.0f, -120.0f, 30); + fn_1_9A4(lbl_1_bss_8, 0.0f, 0.0f, -600.0f, 30); + var_r31->unk_04 = fn_1_2BCC(object, var_r27) > 0; + var_r31->unk_00 = 0; + var_r31->unk_238 = 0; + if (var_r31->unk_04) { + s32 var_r25 = fn_1_3394(var_r31->unk_234); + s32 var_r28; + for (var_r28 = 0; var_r28 < var_r25; var_r28++) { + if (fn_1_2B84(object, var_r27, var_r28)) { + var_r31->unk_238 = var_r28; + break; + } } } - } - object->unk10 = 1; - case 1: - if (fn_1_B6C(lbl_1_bss_8)) { - break; - } - fn_1_4080(var_r31->unk_228); - fn_1_4080(var_r31->unk_22C); - fn_1_40B0(var_r31->unk_22C, 0x32007F); - - if (var_r31->unk_04) { - fn_1_40B0(var_r31->unk_228, lbl_1_rodata_2B8[var_r27].unk_04[var_r29].unk_0C); - } else { - fn_1_40B0(var_r31->unk_228, 0x320003); - } - var_r31->unk_258 = 0.0f; - var_r31->unk_25C = 5.0f / 30.0f; - if (var_r31->unk_04) { - fn_1_268C(var_r31->unk_10[lbl_1_rodata_2B8[var_r27].unk_04[var_r29].unk_00], &sp8.x, &sp8.y, &sp8.z); - Hu3D3Dto2D(&sp8, 1, &sp8); - sp8.y -= 15.0f; - sp8.x -= 20.0f; - if (!var_r31->unk_00) { - fn_1_144(var_r31->sprite, 1, 5); - var_r31->unk_00 = 1; - var_r31->unk_260 = sp8.x; - var_r31->unk_264 = sp8.y; - } else { - var_r31->unk_260 = var_r31->unk_268; - var_r31->unk_264 = var_r31->unk_26C; - } - var_r31->unk_268 = sp8.x; - var_r31->unk_26C = sp8.y; - object->unk10 = 2; - } else { - object->unk10 = 3; - break; - } - case 2: - var_f31 = var_r31->unk_260 + (var_r31->unk_258 * (var_r31->unk_268 - var_r31->unk_260)); - var_f30 = var_r31->unk_264 + (var_r31->unk_258 * (var_r31->unk_26C - var_r31->unk_264)); - espPosSet(var_r31->sprite, var_f31, var_f30); - if ((var_r31->unk_258 = var_r31->unk_258 + var_r31->unk_25C) < 1.0f) { - break; - } - espPosSet(var_r31->sprite, var_r31->unk_268, var_r31->unk_26C); - object->unk10 = 3; - case 3: - if (fn_1_550(512)) { - fn_1_4098(var_r31->unk_228); - fn_1_4098(var_r31->unk_22C); - HuAudFXPlay(3); - object->unk10 = 4; - } else if (var_r31->unk_04) { - if (fn_1_584(1) && fn_1_5B8(8)) { - var_r29 = fn_1_2C5C(object, 5); - } else if (fn_1_584(1) && fn_1_5B8(4)) { - var_r29 = fn_1_2C5C(object, 9); - } else if (fn_1_584(2) && fn_1_5B8(8)) { - var_r29 = fn_1_2C5C(object, 6); - } else if (fn_1_584(2) && fn_1_5B8(4)) { - var_r29 = fn_1_2C5C(object, 10); - } else if (fn_1_584(1)) { - var_r29 = fn_1_2C5C(object, 1); - } else if (fn_1_584(2)) { - var_r29 = fn_1_2C5C(object, 2); - } else if (fn_1_584(8)) { - var_r29 = fn_1_2C5C(object, 4); - } else if (fn_1_584(4)) { - var_r29 = fn_1_2C5C(object, 8); - } - } else { - break; - } - if (var_r29 == -1) { - var_r29 = var_r31->unk_238; - } - if (var_r29 != var_r31->unk_238) { - var_r31->unk_238 = var_r29; object->unk10 = 1; - HuAudFXPlay(0); - } - break; - case 4: - if (var_r31->unk_00) { - fn_1_144(var_r31->sprite, 0, 5); - } - fn_1_180C(object, 1); - break; - default: - break; + case 1: + if (fn_1_B6C(lbl_1_bss_8)) { + break; + } + fn_1_4080(var_r31->unk_228); + fn_1_4080(var_r31->unk_22C); + fn_1_40B0(var_r31->unk_22C, 0x32007F); + + if (var_r31->unk_04) { + fn_1_40B0(var_r31->unk_228, lbl_1_rodata_2B8[var_r27].unk_04[var_r29].unk_0C); + } + else { + fn_1_40B0(var_r31->unk_228, 0x320003); + } + var_r31->unk_258 = 0.0f; + var_r31->unk_25C = 5.0f / 30.0f; + if (var_r31->unk_04) { + Vec sp8; + fn_1_268C(var_r31->unk_10[lbl_1_rodata_2B8[var_r27].unk_04[var_r29].unk_00], &sp8.x, &sp8.y, &sp8.z); + Hu3D3Dto2D(&sp8, 1, &sp8); + sp8.y -= 15.0f; + sp8.x -= 20.0f; + if (!var_r31->unk_00) { + fn_1_144(var_r31->sprite, 1, 5); + var_r31->unk_00 = 1; + var_r31->unk_260 = sp8.x; + var_r31->unk_264 = sp8.y; + } + else { + var_r31->unk_260 = var_r31->unk_268; + var_r31->unk_264 = var_r31->unk_26C; + } + var_r31->unk_268 = sp8.x; + var_r31->unk_26C = sp8.y; + object->unk10 = 2; + } + else { + object->unk10 = 3; + break; + } + case 2: + var_f31 = var_r31->unk_260 + (var_r31->unk_258 * (var_r31->unk_268 - var_r31->unk_260)); + var_f30 = var_r31->unk_264 + (var_r31->unk_258 * (var_r31->unk_26C - var_r31->unk_264)); + espPosSet(var_r31->sprite, var_f31, var_f30); + if ((var_r31->unk_258 = var_r31->unk_258 + var_r31->unk_25C) < 1.0f) { + break; + } + espPosSet(var_r31->sprite, var_r31->unk_268, var_r31->unk_26C); + object->unk10 = 3; + case 3: + if (fn_1_550(512)) { + fn_1_4098(var_r31->unk_228); + fn_1_4098(var_r31->unk_22C); + HuAudFXPlay(3); + object->unk10 = 4; + } + else if (var_r31->unk_04) { + if (fn_1_584(1) && fn_1_5B8(8)) { + var_r29 = fn_1_2C5C(object, 5); + } + else if (fn_1_584(1) && fn_1_5B8(4)) { + var_r29 = fn_1_2C5C(object, 9); + } + else if (fn_1_584(2) && fn_1_5B8(8)) { + var_r29 = fn_1_2C5C(object, 6); + } + else if (fn_1_584(2) && fn_1_5B8(4)) { + var_r29 = fn_1_2C5C(object, 10); + } + else if (fn_1_584(1)) { + var_r29 = fn_1_2C5C(object, 1); + } + else if (fn_1_584(2)) { + var_r29 = fn_1_2C5C(object, 2); + } + else if (fn_1_584(8)) { + var_r29 = fn_1_2C5C(object, 4); + } + else if (fn_1_584(4)) { + var_r29 = fn_1_2C5C(object, 8); + } + } + else { + break; + } + if (var_r29 == -1) { + var_r29 = var_r31->unk_238; + } + if (var_r29 != var_r31->unk_238) { + var_r31->unk_238 = var_r29; + object->unk10 = 1; + HuAudFXPlay(0); + } + break; + case 4: + if (var_r31->unk_00) { + fn_1_144(var_r31->sprite, 0, 5); + } + fn_1_180C(object, 1); + break; + default: + break; } } @@ -541,9 +617,8 @@ void fn_1_268C(omObjData *object, float *arg1, float *arg2, float *arg3) void fn_1_2708(omObjData *arg0, float arg8, s32 arg1) { - UnkPresentStruct2 *var_r31; + UnkPresentStruct2 *var_r31 = arg0->data; - var_r31 = arg0->data; var_r31->unk_244 = arg8; var_r31->unk_240 = var_r31->unk_23C; var_r31->unk_248 = 0.0f; @@ -552,14 +627,11 @@ void fn_1_2708(omObjData *arg0, float arg8, s32 arg1) void fn_1_2774(omObjData *object) { - UnkPresentStruct2 *var_r31; - float var_f31; s32 var_r30; - - var_r31 = object->data; + UnkPresentStruct2 *var_r31 = object->data; if (var_r31->unk_248 < 1.0f) { - var_f31 = sin(90.0f * var_r31->unk_248 * M_PI / 180.0f); + float var_f31 = sin(90.0f * var_r31->unk_248 * M_PI / 180.0f); var_f31 *= var_f31; var_r31->unk_23C = var_r31->unk_240 + (var_f31 * (var_r31->unk_244 - var_r31->unk_240)); @@ -580,9 +652,7 @@ void fn_1_2774(omObjData *object) s32 fn_1_28F0(omObjData *object) { - UnkPresentStruct2 *var_r31; - - var_r31 = object->data; + UnkPresentStruct2 *var_r31 = object->data; return var_r31->unk_248 < 1.0f; } @@ -590,15 +660,14 @@ s32 lbl_1_data_84[] = { 0, 1, 2, 3, 4, 6, 7, 8 }; void fn_1_2924(omObjData *object) { - UnkPresentStruct2 *var_r31; + UnkPresentStruct2 *var_r31 = object->data; s32 var_r30; - s32 var_r27; s32 var_r29; - var_r31 = object->data; Hu3DModelAttrReset(var_r31->unk_10[0]->model[0], 1); for (var_r29 = 0; var_r29 < 8; var_r29++) { + s32 var_r27; if (fn_1_2BCC(object, lbl_1_data_84[var_r29]) > 0) { Hu3DModelAttrReset(var_r31->unk_10[var_r29 + 109]->model[0], 1); } @@ -636,9 +705,7 @@ static const s32 lbl_1_rodata_A74[] = { 0, 6, 12, 18, 24, 59, 30, 36, 42, 48 }; s32 fn_1_2B84(omObjData *arg0, s32 arg1, s32 arg2) { - UnkPresentStruct2 *var_r31; - - var_r31 = arg0->data; + UnkPresentStruct2 *var_r31 = arg0->data; return var_r31->unk_270[arg2 + lbl_1_rodata_A74[arg1]] != 0; } @@ -646,10 +713,7 @@ s32 fn_1_2BCC(omObjData *object, s32 arg1) { s32 var_r31; s32 var_r30; - UnkPresentStruct2 *var_r29; - s32 var_r28; - - var_r28 = fn_1_3394(arg1); + s32 var_r28 = fn_1_3394(arg1); for (var_r30 = 0, var_r31 = 0; var_r31 < var_r28; var_r31++) { if (fn_1_2B84(object, arg1, var_r31)) { @@ -664,27 +728,18 @@ s32 fn_1_2C5C(omObjData *object, s32 arg1) { UnkPresentStruct7 spA4[10]; Vec sp38; - Vec sp2C; - UnkPresentStruct7 sp24; + float var_f31; float var_f30; - float var_f29; - UnkPresentStruct2 *var_r31; + + UnkPresentStruct2 *var_r31 = object->data; s32 var_r30; s32 var_r28; s32 var_r26; s32 var_r23; - s32 var_r22; - omObjData *var_r21; - omObjData *var_r19; - s32 var_r18; - s32 var_r17; + s32 var_r22 = fn_1_3394(var_r31->unk_234); + s32 var_r18 = fn_1_2BCC(object, var_r31->unk_234); - var_r31 = object->data; - - var_r22 = fn_1_3394(var_r31->unk_234); - - var_r18 = fn_1_2BCC(object, var_r31->unk_234); if (var_r18 == 1) { return var_r31->unk_238; } @@ -693,6 +748,8 @@ s32 fn_1_2C5C(omObjData *object, s32 arg1) Hu3D3Dto2D(&sp38, 1, &sp38); for (var_r28 = 0, var_r26 = 0; !var_r28 && (var_r26 < 1); var_r26++) { for (var_r28 = 0, var_r30 = 0; var_r30 < var_r22; var_r30++) { + Vec sp2C; + float var_f29; if (var_r30 == var_r31->unk_238) { continue; } @@ -722,48 +779,39 @@ s32 fn_1_2C5C(omObjData *object, s32 arg1) continue; } switch (arg1) { - case 0: - break; - case 1: - L_00003218: - arg1 = 2; - break; - case 2: - L_00003220: - arg1 = 1; - break; - case 3: - break; - case 4: - L_00003228: - arg1 = 8; - break; - case 7: - break; - case 8: - L_00003230: - arg1 = 4; - break; - case 5: - L_00003238: - arg1 = 10; - break; - case 9: - L_00003240: - arg1 = 6; - break; - case 6: - L_00003248: - arg1 = 9; - break; - case 10: - L_00003250: - arg1 = 5; - break; - default: - break; + case 0: + break; + case 1: + arg1 = 2; + break; + case 2: + arg1 = 1; + break; + case 3: + break; + case 4: + arg1 = 8; + break; + case 7: + break; + case 8: + arg1 = 4; + break; + case 5: + arg1 = 10; + break; + case 9: + arg1 = 6; + break; + case 6: + arg1 = 9; + break; + case 10: + arg1 = 5; + break; + default: + break; } - // L_00003254: } if (!var_r28) { return var_r31->unk_238; @@ -771,7 +819,7 @@ s32 fn_1_2C5C(omObjData *object, s32 arg1) do { for (var_r23 = 0, var_r30 = 0; var_r30 < (var_r28 - 1); var_r30++) { if (spA4[var_r30].unk_04 > spA4[var_r30 + 1].unk_04) { - sp24 = spA4[var_r30 + 1]; + UnkPresentStruct7 sp24 = spA4[var_r30 + 1]; spA4[var_r30 + 1] = spA4[var_r30]; spA4[var_r30] = sp24; var_r23 = 1; @@ -795,61 +843,57 @@ static const s32 lbl_1_rodata_B68[] = { 118, 119, 120, 121, 122, 0, 123, 124, 12 void fn_1_33AC(omObjData *object) { - f32 var_f29; - f32 var_f30; f32 var_f31; - UnkPresentStruct2 *var_r31; - UnkPresentStruct2 *var_r30; - UnkPresentStruct2 *var_r28; - s32 var_r27; + f32 var_f29; + + UnkPresentStruct2 *var_r31 = object->data; - var_r31 = object->data; switch (object->unk10) { - case 0: - var_f29 = 36.0f * var_r31->unk_234; - fn_1_2708(object, var_f29, 1); - fn_1_2774(object); - Hu3DModelAttrSet(var_r31->unk_10[var_r31->unk_238 + lbl_1_rodata_B18[var_r31->unk_234]]->model[0], 1); - Hu3DModelAttrSet(var_r31->unk_10[lbl_1_rodata_B68[var_r31->unk_234]]->model[0], 1); - Hu3DModelAttrSet(var_r31->unk_10[lbl_1_rodata_B40[var_r31->unk_234]]->model[0], 1); - var_r31->unk_24C = 0.0f; - var_r31->unk_254 = 1.0f / 360.0f; - object->unk10 = 1; - case 1: - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 120); - object->unk10 = 2; - case 2: - var_f31 = sind(90.0f * var_r31->unk_24C); - var_f31 *= var_f31; - fn_1_920(lbl_1_bss_8, 0.0f, 820.0f - (600.0f * var_f31), -120.0f, 1); - fn_1_9A4(lbl_1_bss_8, 0.0f, 680.0f - (680.0f * var_f31), -600.0f, 1); - omSetTra(var_r31->unk_10[var_r31->unk_238 + lbl_1_rodata_AF0[var_r31->unk_234]], 0.0f, 840.0f - (840.0f * var_f31), 0.0f); - if ((var_r31->unk_24C = var_r31->unk_24C + var_r31->unk_254) < 1.0f) { - return; - } - if (fn_1_393C(var_r31->unk_234, var_r31->unk_238)) { - fn_1_334(var_r31->unk_10[var_r31->unk_238 + lbl_1_rodata_B18[var_r31->unk_234]]->model[0], 1, 0.4f, 30); - } - object->unk10 = 3; - case 3: - fn_1_4080(var_r31->unk_228); - fn_1_4104(var_r31->unk_228, lbl_1_rodata_2B8[var_r31->unk_234].unk_04[var_r31->unk_238].unk08, 0); - fn_1_40B0(var_r31->unk_228, 0x320004); - fn_1_419C(var_r31->unk_228); - object->unk10 = 4; - case 4: - if (var_r31->unk_228->unk_20) { + case 0: + var_f29 = 36.0f * var_r31->unk_234; + fn_1_2708(object, var_f29, 1); + fn_1_2774(object); + Hu3DModelAttrSet(var_r31->unk_10[var_r31->unk_238 + lbl_1_rodata_B18[var_r31->unk_234]]->model[0], 1); + Hu3DModelAttrSet(var_r31->unk_10[lbl_1_rodata_B68[var_r31->unk_234]]->model[0], 1); + Hu3DModelAttrSet(var_r31->unk_10[lbl_1_rodata_B40[var_r31->unk_234]]->model[0], 1); + var_r31->unk_24C = 0.0f; + var_r31->unk_254 = 1.0f / 360.0f; + object->unk10 = 1; + case 1: + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 120); + object->unk10 = 2; + case 2: + var_f31 = sind(90.0f * var_r31->unk_24C); + var_f31 *= var_f31; + fn_1_920(lbl_1_bss_8, 0.0f, 820.0f - (600.0f * var_f31), -120.0f, 1); + fn_1_9A4(lbl_1_bss_8, 0.0f, 680.0f - (680.0f * var_f31), -600.0f, 1); + omSetTra(var_r31->unk_10[var_r31->unk_238 + lbl_1_rodata_AF0[var_r31->unk_234]], 0.0f, 840.0f - (840.0f * var_f31), 0.0f); + if ((var_r31->unk_24C = var_r31->unk_24C + var_r31->unk_254) < 1.0f) { + return; + } + if (fn_1_393C(var_r31->unk_234, var_r31->unk_238)) { + fn_1_334(var_r31->unk_10[var_r31->unk_238 + lbl_1_rodata_B18[var_r31->unk_234]]->model[0], 1, 0.4f, 30); + } + object->unk10 = 3; + case 3: + fn_1_4080(var_r31->unk_228); + fn_1_4104(var_r31->unk_228, lbl_1_rodata_2B8[var_r31->unk_234].unk_04[var_r31->unk_238].unk08, 0); + fn_1_40B0(var_r31->unk_228, 0x320004); + fn_1_419C(var_r31->unk_228); + object->unk10 = 4; + case 4: + if (var_r31->unk_228->unk_20) { + break; + } + object->unk10 = 5; + case 5: + fn_1_4098(var_r31->unk_228); + object->unk10 = 6; + case 6: + if (!var_r31->unk_228->unk_20) { + fn_1_180C(object, 0); + } break; - } - object->unk10 = 5; - case 5: - fn_1_4098(var_r31->unk_228); - object->unk10 = 6; - case 6: - if (!var_r31->unk_228->unk_20) { - fn_1_180C(object, 0); - } - break; } } From 004925d41c1249be49b0aec0b2b4fbaa62d53162 Mon Sep 17 00:00:00 2001 From: kabiskac Date: Fri, 2 Aug 2024 01:56:43 +0200 Subject: [PATCH 013/311] Made struct defs more local in present dll --- include/REL/present.h | 127 +------------------------------------- src/REL/option/state.c | 10 +-- src/REL/present/camera.c | 28 +++++++++ src/REL/present/common.c | 22 +++++++ src/REL/present/init.c | 13 ++++ src/REL/present/main.c | 13 +++- src/REL/present/present.c | 50 +++++++++++++++ 7 files changed, 131 insertions(+), 132 deletions(-) diff --git a/include/REL/present.h b/include/REL/present.h index 12706b86..a47db699 100644 --- a/include/REL/present.h +++ b/include/REL/present.h @@ -2,7 +2,6 @@ #define PRESENT_H #include "game/object.h" -// #include "REL/option.h" // this causes problems because of the extern bsses typedef struct UnkWindowDataStruct { /* 0x00 */ Process *process; @@ -15,131 +14,7 @@ typedef struct UnkWindowDataStruct { /* 0x18 */ u32 unk18; /* 0x1C */ s32 choice; /* 0x20 */ s32 unk_20; -} UnkWindowDataStruct; // this already exists in option.h - -typedef struct UnkPresentStruct { - /* 0x00 */ UnkWindowDataStruct *unk_00; - /* 0x04 */ s32 unk_04; -} UnkPresentStruct; - -typedef struct UnkPresentStruct2 { - /* 0x00 */ s32 unk_00; - /* 0x04 */ s32 unk_04; - /* 0x08 */ s32 unk_08; - /* 0x0C */ s32 unk_0C; - /* 0x10 */ omObjData *unk_10[134]; - /* 0x228 */ UnkWindowDataStruct *unk_228; - /* 0x22C */ UnkWindowDataStruct *unk_22C; - /* 0x230 */ s16 sprite; - /* 0x234 */ s32 unk_234; - /* 0x238 */ s32 unk_238; - /* 0x23C */ float unk_23C; - /* 0x240 */ float unk_240; - /* 0x244 */ float unk_244; - /* 0x248 */ float unk_248; - /* 0x24C */ float unk_24C; - /* 0x250 */ float unk_250; - /* 0x254 */ float unk_254; - /* 0x258 */ float unk_258; - /* 0x25C */ float unk_25C; - /* 0x260 */ float unk_260; - /* 0x264 */ float unk_264; - /* 0x268 */ float unk_268; - /* 0x26C */ float unk_26C; - /* 0x270 */ s32 unk_270[60]; -} UnkPresentStruct2; - -typedef struct UnkPresentStruct3 { - /* 0x00 */ Vec unk_00; - /* 0x0C */ Vec unk_0C; - /* 0x18 */ GXColor unk_18; -} UnkPresentStruct3; - -typedef struct UnkPresentStruct4 { - /* 0x00 */ Vec unk_00; - /* 0x0C */ Vec unk_0C; - /* 0x18 */ Vec unk_18; -} UnkPresentStruct4; - -typedef struct UnkPresentStruct5 { - /* 0x00 */ s32 unk_00; - /* 0x04 */ s16 unk_04; - /* 0x08 */ float x; - /* 0x0C */ float y; - /* 0x10 */ float z; - /* 0x14 */ float unk_14; - /* 0x18 */ s32 unk18[2]; - /* 0x20 */ float unk_20; - /* 0x24 */ float unk_24; - /* 0x28 */ float unk_28; - /* 0x2C */ float unk_2C; - /* 0x30 */ float unk_30; - /* 0x34 */ float unk_34; - /* 0x38 */ float unk_38; - /* 0x3C */ s32 unk3C[3]; - /* 0x48 */ float unk_48; - /* 0x4C */ float unk_4C; - /* 0x50 */ s32 unk_50; - /* 0x54 */ s32 unk_54; -} UnkPresentStruct5; - -typedef struct UnkPresentStruct6 { - /* 0x00 */ s16 unk_00; - /* 0x04 */ float unk_04; - /* 0x08 */ float unk_08; -} UnkPresentStruct6; // looks like a struct in option/scene.c - -typedef struct UnkPresentStruct6Weird { - /* 0x00 */ s16 unk_00; - /* 0x04 */ float unk_04; - /* 0x08 */ float unk_08; - /* 0x0C */ float unk_0C; -} UnkPresentStruct6Weird; // looks like a struct in option/scene.c - -typedef struct UnkPresentCameraStruct { - /* 0x00 */ Vec pos; - /* 0x0C */ Vec target; - /* 0x18 */ Vec up; - /* 0x24 */ float unk_24; - /* 0x28 */ float unk_28; - /* 0x2C */ Vec unk_2C; - /* 0x38 */ Vec unk_38; - /* 0x44 */ float unk44; - /* 0x48 */ float unk48; - /* 0x4C */ float unk4C; - /* 0x50 */ float unk_50; - /* 0x54 */ float unk_54; - /* 0x58 */ Vec unk_58; - /* 0x64 */ Vec unk_64; - /* 0x70 */ float unk70; - /* 0x74 */ float unk74; - /* 0x78 */ float unk78; - /* 0x7C */ float unk_7C; - /* 0x80 */ float unk_80; - /* 0x84 */ float unk_84; - /* 0x88 */ float unk_88; - /* 0x8C */ float unk_8C; - /* 0x90 */ float unk_90; - /* 0x94 */ float unk_94; - /* 0x98 */ float unk_98; -} UnkPresentCameraStruct; - -typedef struct UnkPresentNestedInnerStruct { - /* 0x00 */ s32 unk_00; - /* 0x04 */ s32 unk_04; - /* 0x08 */ s32 unk08; - /* 0x0C */ s32 unk_0C; -} UnkPresentNestedInnerStruct; - -typedef struct UnkPresentNestedOuterStruct { - /* 0x00 */ s32 unk00; - /* 0x04 */ UnkPresentNestedInnerStruct unk_04[11]; -} UnkPresentNestedOuterStruct; - -typedef struct UnkPresentStruct7 { - /* 0x00 */ s32 unk_00; - /* 0x04 */ float unk_04; -} UnkPresentStruct7; +} UnkWindowDataStruct; /* size 0x24 */ // this already exists in option.h extern omObjData *lbl_1_bss_10; extern omObjData *lbl_1_bss_8; diff --git a/src/REL/option/state.c b/src/REL/option/state.c index a2fc6f37..1ed1cb12 100755 --- a/src/REL/option/state.c +++ b/src/REL/option/state.c @@ -10,13 +10,13 @@ typedef struct { /* 0x00 */ OptionWindow *window; /* 0x04 */ s32 quitTimer; /* 0x08 */ s16 light; -} StateWork; // Size 0xC +} StateWork; /* size = 0x0C */ typedef struct { - Vec src; - Vec dest; - GXColor color; -} UnkLightDataStruct; // Size 0x1C TODO same as m446Dll::unkStruct10 and present::UnkPresentStruct3 + /* 0x00 */ Vec src; + /* 0x0C */ Vec dest; + /* 0x18 */ GXColor color; +} UnkLightDataStruct; /* size = 0x1C */ // TODO same as m446Dll::unkStruct10 and present::UnkPresentStruct3 static void ExecState(omObjData *object); diff --git a/src/REL/present/camera.c b/src/REL/present/camera.c index f6b2e29f..4da4721b 100644 --- a/src/REL/present/camera.c +++ b/src/REL/present/camera.c @@ -5,6 +5,34 @@ #include "REL/present.h" +typedef struct UnkPresentCameraStruct { + /* 0x00 */ Vec pos; + /* 0x0C */ Vec target; + /* 0x18 */ Vec up; + /* 0x24 */ float unk_24; + /* 0x28 */ float unk_28; + /* 0x2C */ Vec unk_2C; + /* 0x38 */ Vec unk_38; + /* 0x44 */ float unk44; + /* 0x48 */ float unk48; + /* 0x4C */ float unk4C; + /* 0x50 */ float unk_50; + /* 0x54 */ float unk_54; + /* 0x58 */ Vec unk_58; + /* 0x64 */ Vec unk_64; + /* 0x70 */ float unk70; + /* 0x74 */ float unk74; + /* 0x78 */ float unk78; + /* 0x7C */ float unk_7C; + /* 0x80 */ float unk_80; + /* 0x84 */ float unk_84; + /* 0x88 */ float unk_88; + /* 0x8C */ float unk_8C; + /* 0x90 */ float unk_90; + /* 0x94 */ float unk_94; + /* 0x98 */ float unk_98; +} UnkPresentCameraStruct; /* size = 0x9C */ + void fn_1_C20(omObjData *object); omObjData *fn_1_6B4(void) diff --git a/src/REL/present/common.c b/src/REL/present/common.c index 02e984fa..4ffe63e6 100644 --- a/src/REL/present/common.c +++ b/src/REL/present/common.c @@ -6,6 +6,28 @@ #include "REL/present.h" +typedef struct UnkPresentStruct5 { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s16 unk_04; + /* 0x08 */ float x; + /* 0x0C */ float y; + /* 0x10 */ float z; + /* 0x14 */ float unk_14; + /* 0x18 */ s32 unk18[2]; + /* 0x20 */ float unk_20; + /* 0x24 */ float unk_24; + /* 0x28 */ float unk_28; + /* 0x2C */ float unk_2C; + /* 0x30 */ float unk_30; + /* 0x34 */ float unk_34; + /* 0x38 */ float unk_38; + /* 0x3C */ s32 unk3C[3]; + /* 0x48 */ float unk_48; + /* 0x4C */ float unk_4C; + /* 0x50 */ s32 unk_50; + /* 0x54 */ s32 unk_54; +} UnkPresentStruct5; /* size = 0x58 */ + void fn_1_4620(omObjData *object); void fn_1_4880(omObjData *object); diff --git a/src/REL/present/init.c b/src/REL/present/init.c index 5b8a3164..c572694e 100644 --- a/src/REL/present/init.c +++ b/src/REL/present/init.c @@ -8,6 +8,19 @@ #include "REL/present.h" +typedef struct UnkPresentStruct6 { + /* 0x00 */ s16 unk_00; + /* 0x04 */ float unk_04; + /* 0x08 */ float unk_08; +} UnkPresentStruct6; /* size 0x0C */ // looks like a struct in option/scene.c + +typedef struct UnkPresentStruct6Weird { + /* 0x00 */ s16 unk_00; + /* 0x04 */ float unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ float unk_0C; +} UnkPresentStruct6Weird; /* size = 0x10 */ // looks like a struct in option/scene.c + omObjData *lbl_1_bss_18; omObjData *lbl_1_bss_14; omObjData *lbl_1_bss_10; diff --git a/src/REL/present/main.c b/src/REL/present/main.c index 0e4cbfa7..2876b242 100644 --- a/src/REL/present/main.c +++ b/src/REL/present/main.c @@ -7,6 +7,17 @@ #include "REL/present.h" +typedef struct UnkPresentStruct { + /* 0x00 */ UnkWindowDataStruct *unk_00; + /* 0x04 */ s32 unk_04; +} UnkPresentStruct; /* size = 0x08 */ + +typedef struct UnkPresentStruct4 { + /* 0x00 */ Vec unk_00; + /* 0x0C */ Vec unk_0C; + /* 0x18 */ Vec unk_18; +} UnkPresentStruct4; /* size = 0x1C */ + omObjData *lbl_1_bss_20; UnkPresentStruct4 lbl_1_data_F0 = { { 0.0f, 3000.0f, 1.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } }; @@ -269,7 +280,7 @@ void fn_1_41BC(UnkWindowDataStruct *windowData, s32 arg1) void fn_1_41E0(void) { UnkWindowDataStruct *windowData = HuPrcCurrentGet()->user_data; - + while (TRUE) { switch (windowData->unk_20) { case 1: diff --git a/src/REL/present/present.c b/src/REL/present/present.c index 1aa725eb..7daf7f57 100644 --- a/src/REL/present/present.c +++ b/src/REL/present/present.c @@ -8,6 +8,56 @@ #include "REL/present.h" +typedef struct UnkPresentStruct2 { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ omObjData *unk_10[134]; + /* 0x228 */ UnkWindowDataStruct *unk_228; + /* 0x22C */ UnkWindowDataStruct *unk_22C; + /* 0x230 */ s16 sprite; + /* 0x234 */ s32 unk_234; + /* 0x238 */ s32 unk_238; + /* 0x23C */ float unk_23C; + /* 0x240 */ float unk_240; + /* 0x244 */ float unk_244; + /* 0x248 */ float unk_248; + /* 0x24C */ float unk_24C; + /* 0x250 */ float unk_250; + /* 0x254 */ float unk_254; + /* 0x258 */ float unk_258; + /* 0x25C */ float unk_25C; + /* 0x260 */ float unk_260; + /* 0x264 */ float unk_264; + /* 0x268 */ float unk_268; + /* 0x26C */ float unk_26C; + /* 0x270 */ s32 unk_270[60]; +} UnkPresentStruct2; /* size = 0x3F0 */ + +typedef struct UnkPresentStruct3 { + /* 0x00 */ Vec unk_00; + /* 0x0C */ Vec unk_0C; + /* 0x18 */ GXColor unk_18; +} UnkPresentStruct3; /* size = 0x1C */ // same as option::state::UnkLightDataStruct + +typedef struct UnkPresentNestedInnerStruct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk_0C; +} UnkPresentNestedInnerStruct; /* size = 0x10 */ + +typedef struct UnkPresentNestedOuterStruct { + /* 0x00 */ s32 unk00; + /* 0x04 */ UnkPresentNestedInnerStruct unk_04[11]; +} UnkPresentNestedOuterStruct; /* size = 0x08 */ + +typedef struct UnkPresentStruct7 { + /* 0x00 */ s32 unk_00; + /* 0x04 */ float unk_04; +} UnkPresentStruct7; /* size = 0x08 */ + void fn_1_180C(omObjData *object, s32 arg1); void fn_1_1928(omObjData *arg0); void fn_1_1FA8(omObjData *object, s32 arg1); From a7bde60c976236b586cbdadedbb8f1be8bb2b680 Mon Sep 17 00:00:00 2001 From: kabiskac Date: Fri, 2 Aug 2024 02:33:40 +0200 Subject: [PATCH 014/311] Made local functions static in present dll Added missing includes in present.h --- config/GMPE01_00/rels/present/symbols.txt | 72 +++++++++++------------ include/REL/present.h | 12 ++++ src/REL/present/camera.c | 18 +++--- src/REL/present/common.c | 16 ++--- src/REL/present/init.c | 18 +++--- src/REL/present/main.c | 25 ++++---- src/REL/present/present.c | 57 +++++++++--------- 7 files changed, 114 insertions(+), 104 deletions(-) diff --git a/config/GMPE01_00/rels/present/symbols.txt b/config/GMPE01_00/rels/present/symbols.txt index 415738fe..08892e5b 100644 --- a/config/GMPE01_00/rels/present/symbols.txt +++ b/config/GMPE01_00/rels/present/symbols.txt @@ -2,70 +2,70 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global ObjectSetup = .text:0x000000A0; // type:function size:0xA4 fn_1_144 = .text:0x00000144; // type:function size:0x110 -fn_1_254 = .text:0x00000254; // type:function size:0xE0 +fn_1_254 = .text:0x00000254; // type:function size:0xE0 scope:local fn_1_334 = .text:0x00000334; // type:function size:0x128 -fn_1_45C = .text:0x0000045C; // type:function size:0xF4 +fn_1_45C = .text:0x0000045C; // type:function size:0xF4 scope:local fn_1_550 = .text:0x00000550; // type:function size:0x34 fn_1_584 = .text:0x00000584; // type:function size:0x34 fn_1_5B8 = .text:0x000005B8; // type:function size:0x34 -fn_1_5EC = .text:0x000005EC; // type:function size:0xC8 +fn_1_5EC = .text:0x000005EC; // type:function size:0xC8 scope:local fn_1_6B4 = .text:0x000006B4; // type:function size:0x23C fn_1_8F0 = .text:0x000008F0; // type:function size:0x30 fn_1_920 = .text:0x00000920; // type:function size:0x84 fn_1_9A4 = .text:0x000009A4; // type:function size:0x84 -fn_1_A28 = .text:0x00000A28; // type:function size:0x84 -fn_1_AAC = .text:0x00000AAC; // type:function size:0x30 -fn_1_ADC = .text:0x00000ADC; // type:function size:0x30 -fn_1_B0C = .text:0x00000B0C; // type:function size:0x30 -fn_1_B3C = .text:0x00000B3C; // type:function size:0x30 +fn_1_A28 = .text:0x00000A28; // type:function size:0x84 scope:local +fn_1_AAC = .text:0x00000AAC; // type:function size:0x30 scope:local +fn_1_ADC = .text:0x00000ADC; // type:function size:0x30 scope:local +fn_1_B0C = .text:0x00000B0C; // type:function size:0x30 scope:local +fn_1_B3C = .text:0x00000B3C; // type:function size:0x30 scope:local fn_1_B6C = .text:0x00000B6C; // type:function size:0x8C fn_1_BF8 = .text:0x00000BF8; // type:function size:0x28 -fn_1_C20 = .text:0x00000C20; // type:function size:0x578 -fn_1_1198 = .text:0x00001198; // type:function size:0x200 -fn_1_1398 = .text:0x00001398; // type:function size:0xC0 +fn_1_C20 = .text:0x00000C20; // type:function size:0x578 scope:local +fn_1_1198 = .text:0x00001198; // type:function size:0x200 scope:local +fn_1_1398 = .text:0x00001398; // type:function size:0xC0 scope:local fn_1_1458 = .text:0x00001458; // type:function size:0x32C fn_1_1784 = .text:0x00001784; // type:function size:0x88 fn_1_180C = .text:0x0000180C; // type:function size:0x44 fn_1_1850 = .text:0x00001850; // type:function size:0x1C fn_1_186C = .text:0x0000186C; // type:function size:0xBC -fn_1_1928 = .text:0x00001928; // type:function size:0x680 -fn_1_1FA8 = .text:0x00001FA8; // type:function size:0x140 -fn_1_20E8 = .text:0x000020E8; // type:function size:0x5A4 -fn_1_268C = .text:0x0000268C; // type:function size:0x7C -fn_1_2708 = .text:0x00002708; // type:function size:0x6C -fn_1_2774 = .text:0x00002774; // type:function size:0x17C -fn_1_28F0 = .text:0x000028F0; // type:function size:0x34 -fn_1_2924 = .text:0x00002924; // type:function size:0x260 -fn_1_2B84 = .text:0x00002B84; // type:function size:0x48 -fn_1_2BCC = .text:0x00002BCC; // type:function size:0x90 -fn_1_2C5C = .text:0x00002C5C; // type:function size:0x738 -fn_1_3394 = .text:0x00003394; // type:function size:0x18 -fn_1_33AC = .text:0x000033AC; // type:function size:0x590 -fn_1_393C = .text:0x0000393C; // type:function size:0x6C +fn_1_1928 = .text:0x00001928; // type:function size:0x680 scope:local +fn_1_1FA8 = .text:0x00001FA8; // type:function size:0x140 scope:local +fn_1_20E8 = .text:0x000020E8; // type:function size:0x5A4 scope:local +fn_1_268C = .text:0x0000268C; // type:function size:0x7C scope:local +fn_1_2708 = .text:0x00002708; // type:function size:0x6C scope:local +fn_1_2774 = .text:0x00002774; // type:function size:0x17C scope:local +fn_1_28F0 = .text:0x000028F0; // type:function size:0x34 scope:local +fn_1_2924 = .text:0x00002924; // type:function size:0x260 scope:local +fn_1_2B84 = .text:0x00002B84; // type:function size:0x48 scope:local +fn_1_2BCC = .text:0x00002BCC; // type:function size:0x90 scope:local +fn_1_2C5C = .text:0x00002C5C; // type:function size:0x738 scope:local +fn_1_3394 = .text:0x00003394; // type:function size:0x18 scope:local +fn_1_33AC = .text:0x000033AC; // type:function size:0x590 scope:local +fn_1_393C = .text:0x0000393C; // type:function size:0x6C scope:local fn_1_39A8 = .text:0x000039A8; // type:function size:0x170 fn_1_3B18 = .text:0x00003B18; // type:function size:0x74 -fn_1_3B8C = .text:0x00003B8C; // type:function size:0x22C -fn_1_3DB8 = .text:0x00003DB8; // type:function size:0xEC +fn_1_3B8C = .text:0x00003B8C; // type:function size:0x22C scope:local +fn_1_3DB8 = .text:0x00003DB8; // type:function size:0xEC scope:local fn_1_3EA4 = .text:0x00003EA4; // type:function size:0x19C fn_1_4040 = .text:0x00004040; // type:function size:0x40 fn_1_4080 = .text:0x00004080; // type:function size:0x18 fn_1_4098 = .text:0x00004098; // type:function size:0x18 fn_1_40B0 = .text:0x000040B0; // type:function size:0x54 fn_1_4104 = .text:0x00004104; // type:function size:0x40 -fn_1_4144 = .text:0x00004144; // type:function size:0x40 -fn_1_4184 = .text:0x00004184; // type:function size:0xC -fn_1_4190 = .text:0x00004190; // type:function size:0xC +fn_1_4144 = .text:0x00004144; // type:function size:0x40 scope:local +fn_1_4184 = .text:0x00004184; // type:function size:0xC scope:local +fn_1_4190 = .text:0x00004190; // type:function size:0xC scope:local fn_1_419C = .text:0x0000419C; // type:function size:0x20 -fn_1_41BC = .text:0x000041BC; // type:function size:0x24 -fn_1_41E0 = .text:0x000041E0; // type:function size:0x114 +fn_1_41BC = .text:0x000041BC; // type:function size:0x24 scope:local +fn_1_41E0 = .text:0x000041E0; // type:function size:0x114 scope:local fn_1_42F4 = .text:0x000042F4; // type:function size:0x240 fn_1_4534 = .text:0x00004534; // type:function size:0x8C fn_1_45C0 = .text:0x000045C0; // type:function size:0x44 fn_1_4604 = .text:0x00004604; // type:function size:0x1C -fn_1_4620 = .text:0x00004620; // type:function size:0x260 -fn_1_4880 = .text:0x00004880; // type:function size:0x184 -fn_1_4A04 = .text:0x00004A04; // type:function size:0x2E8 -fn_1_4CEC = .text:0x00004CEC; // type:function size:0x104 +fn_1_4620 = .text:0x00004620; // type:function size:0x260 scope:local +fn_1_4880 = .text:0x00004880; // type:function size:0x184 scope:local +fn_1_4A04 = .text:0x00004A04; // type:function size:0x2E8 scope:local +fn_1_4CEC = .text:0x00004CEC; // type:function size:0x104 scope:local _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte __fakeHalf = .rodata:0x00000000; // type:object size:0x4 data:float diff --git a/include/REL/present.h b/include/REL/present.h index a47db699..1560a75d 100644 --- a/include/REL/present.h +++ b/include/REL/present.h @@ -22,19 +22,31 @@ extern Process *lbl_1_bss_4; void fn_1_144(s16 arg0, s32 arg1, s32 arg2); void fn_1_334(s16 arg0, s32 arg1, float arg8, s32 arg2); +s32 fn_1_550(u16 arg0); +s32 fn_1_584(u16 arg0); +s32 fn_1_5B8(u16 arg0); omObjData *fn_1_6B4(); +void fn_1_8F0(omObjData *object); void fn_1_920(omObjData *object, float arg8, float arg9, float argA, s32 arg1); void fn_1_9A4(omObjData *object, float arg8, float arg9, float argA, s32 arg1); +s32 fn_1_B6C(omObjData *object); void fn_1_BF8(omObjData *object); omObjData *fn_1_1458(void); +void fn_1_1784(omObjData *object); void fn_1_180C(omObjData *object, s32 arg1); s32 fn_1_1850(omObjData *object); +void fn_1_186C(omObjData *object, s32 arg1); +void fn_1_3B18(omObjData *object); omObjData *fn_1_39A8(void); UnkWindowDataStruct *fn_1_3EA4(s32 arg0); +void fn_1_4040(UnkWindowDataStruct *arg0); void fn_1_4080(UnkWindowDataStruct *windowData); void fn_1_4098(UnkWindowDataStruct *windowData); void fn_1_40B0(UnkWindowDataStruct *windowData, u32 mess); +void fn_1_4104(UnkWindowDataStruct *windowData, u32 mess, s16 index); +void fn_1_419C(UnkWindowDataStruct *windowData); omObjData *fn_1_42F4(void); +void fn_1_4534(omObjData *object); void fn_1_45C0(omObjData *arg0, s32 arg1); s32 fn_1_4604(omObjData *object); diff --git a/src/REL/present/camera.c b/src/REL/present/camera.c index 4da4721b..0e15f36e 100644 --- a/src/REL/present/camera.c +++ b/src/REL/present/camera.c @@ -33,7 +33,7 @@ typedef struct UnkPresentCameraStruct { /* 0x98 */ float unk_98; } UnkPresentCameraStruct; /* size = 0x9C */ -void fn_1_C20(omObjData *object); +static void fn_1_C20(omObjData *object); omObjData *fn_1_6B4(void) { @@ -97,7 +97,7 @@ void fn_1_9A4(omObjData *object, float arg8, float arg9, float argA, s32 arg1) var_r31->unk_90 = 1.0f / arg1; } -void fn_1_A28(omObjData *object, s32 arg1, float arg8, float arg9, float argA) +static void fn_1_A28(omObjData *object, s32 arg1, float arg8, float arg9, float argA) { UnkPresentCameraStruct *var_r31 = object->data; @@ -112,7 +112,7 @@ void fn_1_A28(omObjData *object, s32 arg1, float arg8, float arg9, float argA) var_r31->unk_98 = 1.0f / arg1; } -float fn_1_AAC(omObjData *object) +static float fn_1_AAC(omObjData *object) { UnkPresentCameraStruct *var_r31 = object->data; @@ -120,7 +120,7 @@ float fn_1_AAC(omObjData *object) return var_f31; } -float fn_1_ADC(omObjData *object) +static float fn_1_ADC(omObjData *object) { UnkPresentCameraStruct *var_r31 = object->data; @@ -128,7 +128,7 @@ float fn_1_ADC(omObjData *object) return var_f31; } -void fn_1_B0C(omObjData *object, float *arg1, float *arg2, float *arg3) +static void fn_1_B0C(omObjData *object, float *arg1, float *arg2, float *arg3) { UnkPresentCameraStruct *var_r31 = object->data; @@ -137,7 +137,7 @@ void fn_1_B0C(omObjData *object, float *arg1, float *arg2, float *arg3) *arg3 = var_r31->pos.z; } -void fn_1_B3C(omObjData *object, float *arg1, float *arg2, float *arg3) +static void fn_1_B3C(omObjData *object, float *arg1, float *arg2, float *arg3) { UnkPresentCameraStruct *var_r31 = object->data; @@ -167,7 +167,7 @@ void fn_1_BF8(omObjData *object) fn_1_C20(object); } -void fn_1_C20(omObjData *object) +static void fn_1_C20(omObjData *object) { float var_f31; float var_f30; @@ -223,7 +223,7 @@ void fn_1_C20(omObjData *object) var_r31->target.y, var_r31->target.z); } -void fn_1_1198(omObjData *object) +static void fn_1_1198(omObjData *object) { if (HuPadBtn[0] & PAD_BUTTON_B) { UnkPresentCameraStruct *var_r31 = object->data; @@ -237,7 +237,7 @@ void fn_1_1198(omObjData *object) } } -void fn_1_1398(omObjData *object) +static void fn_1_1398(omObjData *object) { UnkPresentCameraStruct *var_r31 = object->data; print8(32, 64, 1.5f, "AT : x=%.2f y=%.2f z=%.2f", var_r31->target.x, var_r31->target.y, var_r31->target.z); diff --git a/src/REL/present/common.c b/src/REL/present/common.c index 4ffe63e6..a6a42ba1 100644 --- a/src/REL/present/common.c +++ b/src/REL/present/common.c @@ -28,15 +28,15 @@ typedef struct UnkPresentStruct5 { /* 0x54 */ s32 unk_54; } UnkPresentStruct5; /* size = 0x58 */ -void fn_1_4620(omObjData *object); -void fn_1_4880(omObjData *object); +static void fn_1_4620(omObjData *object); +static void fn_1_4880(omObjData *object); +static void fn_1_4A04(omObjData *object); +static float fn_1_4CEC(float arg8, float arg9, float argA); omObjFunc lbl_1_data_1A0[] = { NULL, fn_1_4620, fn_1_4880 }; static const s32 lbl_1_rodata_BD8[] = { 0x006E0089, 0x006E008A, 0x006E008B }; -void fn_1_4A04(omObjData *object); -float fn_1_4CEC(float arg8, float arg9, float argA); omObjData *fn_1_42F4(void) { @@ -105,7 +105,7 @@ s32 fn_1_4604(omObjData *object) return var_r31->unk_00; } -void fn_1_4620(omObjData *object) +static void fn_1_4620(omObjData *object) { float var_f31; UnkPresentStruct5 *var_r31 = object->data; @@ -150,7 +150,7 @@ void fn_1_4620(omObjData *object) fn_1_4A04(object); } -void fn_1_4880(omObjData *object) +static void fn_1_4880(omObjData *object) { float var_f31; @@ -181,7 +181,7 @@ void fn_1_4880(omObjData *object) (void)object; } -void fn_1_4A04(omObjData *object) +static void fn_1_4A04(omObjData *object) { UnkPresentStruct5 *var_r31 = object->data; s16 var_r29 = 0; @@ -214,7 +214,7 @@ void fn_1_4A04(omObjData *object) omSetRot(object, var_r31->unk_20, var_r31->unk_24, var_r31->unk_28); } -float fn_1_4CEC(float arg8, float arg9, float argA) +static float fn_1_4CEC(float arg8, float arg9, float argA) { float var_f30; diff --git a/src/REL/present/init.c b/src/REL/present/init.c index c572694e..17d98aa0 100644 --- a/src/REL/present/init.c +++ b/src/REL/present/init.c @@ -29,9 +29,9 @@ omObjData *lbl_1_bss_8; Process *lbl_1_bss_4; omObjData *lbl_1_bss_0; -void fn_1_254(void); -void fn_1_45C(void); -void fn_1_5EC(omObjData *object); +static void fn_1_254(void); +static void fn_1_45C(void); +static void fn_1_5EC(omObjData *object); void ObjectSetup(void) { @@ -64,7 +64,7 @@ void fn_1_144(s16 arg0, s32 arg1, s32 arg2) var_r30->user_data = var_r31; } -void fn_1_254(void) +static void fn_1_254(void) { UnkPresentStruct6 *var_r31 = HuPrcCurrentGet()->user_data; @@ -114,7 +114,7 @@ void fn_1_334(s16 arg0, s32 arg1, float arg8, s32 arg2) var_r30->user_data = var_r31; } -void fn_1_45C(void) +static void fn_1_45C(void) { UnkPresentStruct6Weird *var_r31 = HuPrcCurrentGet()->user_data; @@ -141,25 +141,25 @@ void fn_1_45C(void) HuPrcEnd(); } -u32 fn_1_550(u16 arg0) +s32 fn_1_550(u16 arg0) { u32 var_r31 = HuPadBtnDown[0] & arg0; return var_r31 != 0; } -u32 fn_1_584(u16 arg0) +s32 fn_1_584(u16 arg0) { u32 var_r31 = HuPadDStkRep[0] & arg0; return var_r31 != 0; } -u32 fn_1_5B8(u16 arg0) +s32 fn_1_5B8(u16 arg0) { u32 var_r31 = HuPadDStk[0] & arg0; return var_r31 != 0; } -void fn_1_5EC(omObjData *object) +static void fn_1_5EC(omObjData *object) { switch (object->unk10) { case 0: diff --git a/src/REL/present/main.c b/src/REL/present/main.c index 2876b242..ae26fdd9 100644 --- a/src/REL/present/main.c +++ b/src/REL/present/main.c @@ -22,12 +22,11 @@ omObjData *lbl_1_bss_20; UnkPresentStruct4 lbl_1_data_F0 = { { 0.0f, 3000.0f, 1.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } }; -void fn_1_3B8C(omObjData *object); -void fn_1_3DB8(omObjData *object); -void fn_1_4040(UnkWindowDataStruct *arg0); -void fn_1_4190(UnkWindowDataStruct *arg0); -void fn_1_41E0(void); -void fn_1_41BC(UnkWindowDataStruct *arg0, s32 arg1); +static void fn_1_3B8C(omObjData *object); +static void fn_1_3DB8(omObjData *object); +static void fn_1_4190(UnkWindowDataStruct *arg0); +static void fn_1_41BC(UnkWindowDataStruct *arg0, s32 arg1); +static void fn_1_41E0(void); omObjData *fn_1_39A8(void) { @@ -68,7 +67,7 @@ void fn_1_3B18(omObjData *object) HuMemDirectFree(var_r31); } -void fn_1_3B8C(omObjData *object) +static void fn_1_3B8C(omObjData *object) { UnkPresentStruct *var_r30 = object->data; @@ -149,7 +148,7 @@ void fn_1_3B8C(omObjData *object) } } -void fn_1_3DB8(omObjData *arg0) +static void fn_1_3DB8(omObjData *arg0) { void *sp8 = arg0->data; @@ -245,17 +244,17 @@ void fn_1_4104(UnkWindowDataStruct *windowData, u32 mess, s16 index) HuWinInsertMesSet(windowData->window, mess, index); } -void fn_1_4144(UnkWindowDataStruct *windowData, float x, float y) +static void fn_1_4144(UnkWindowDataStruct *windowData, float x, float y) { HuWinPosSet(windowData->window, x, y); } -void fn_1_4184(UnkWindowDataStruct *windowData) +static void fn_1_4184(UnkWindowDataStruct *windowData) { windowData->unk0C = 1; } -void fn_1_4190(UnkWindowDataStruct *windowData) +static void fn_1_4190(UnkWindowDataStruct *windowData) { windowData->unk0C = 0; } @@ -268,7 +267,7 @@ void fn_1_419C(UnkWindowDataStruct *windowData) windowData->unk10 = 1; } -void fn_1_41BC(UnkWindowDataStruct *windowData, s32 arg1) +static void fn_1_41BC(UnkWindowDataStruct *windowData, s32 arg1) { if (!windowData->unk_20) { windowData->unk_20 = 4; @@ -277,7 +276,7 @@ void fn_1_41BC(UnkWindowDataStruct *windowData, s32 arg1) windowData->choice = arg1; } -void fn_1_41E0(void) +static void fn_1_41E0(void) { UnkWindowDataStruct *windowData = HuPrcCurrentGet()->user_data; diff --git a/src/REL/present/present.c b/src/REL/present/present.c index 7daf7f57..79d8ba9c 100644 --- a/src/REL/present/present.c +++ b/src/REL/present/present.c @@ -58,21 +58,20 @@ typedef struct UnkPresentStruct7 { /* 0x04 */ float unk_04; } UnkPresentStruct7; /* size = 0x08 */ -void fn_1_180C(omObjData *object, s32 arg1); -void fn_1_1928(omObjData *arg0); -void fn_1_1FA8(omObjData *object, s32 arg1); -void fn_1_20E8(omObjData *arg0); -void fn_1_268C(omObjData *object, float *arg1, float *arg2, float *arg3); -void fn_1_2708(omObjData *arg0, float arg8, s32 arg1); -void fn_1_2774(omObjData *arg0); -s32 fn_1_28F0(omObjData *object); -void fn_1_2924(omObjData *object); -s32 fn_1_2B84(omObjData *arg0, s32 arg1, s32 arg2); -s32 fn_1_2BCC(omObjData *object, s32 arg1); -s32 fn_1_2C5C(omObjData *object, s32 arg1); -s32 fn_1_3394(s32 arg0); -void fn_1_33AC(omObjData *arg0); -s32 fn_1_393C(s32 arg0, s32 arg1); +static void fn_1_1928(omObjData *arg0); +static void fn_1_1FA8(omObjData *object, s32 arg1); +static void fn_1_20E8(omObjData *arg0); +static void fn_1_268C(omObjData *object, float *arg1, float *arg2, float *arg3); +static void fn_1_2708(omObjData *arg0, float arg8, s32 arg1); +static void fn_1_2774 (omObjData *arg0); +static s32 fn_1_28F0 (omObjData *object); +static void fn_1_2924(omObjData *object); +static s32 fn_1_2B84(omObjData *arg0, s32 arg1, s32 arg2); +static s32 fn_1_2BCC(omObjData *object, s32 arg1); +static s32 fn_1_2C5C(omObjData *object, s32 arg1); +static s32 fn_1_3394(s32 arg0); +static void fn_1_33AC(omObjData *arg0); +static s32 fn_1_393C(s32 arg0, s32 arg1); UnkPresentStruct3 lbl_1_data_50 = { { 0.0f, 400.0f, 0.0f }, { 0.0f, -400.0f, -500.0f }, { 255, 255, 255, 255 } }; omObjFunc lbl_1_data_6C[] = { NULL, fn_1_1928, fn_1_20E8, fn_1_33AC }; @@ -314,7 +313,7 @@ void fn_1_186C(omObjData *object, s32 arg1) var_r31->unk_238 = 0; } -void fn_1_1928(omObjData *object) +static void fn_1_1928(omObjData *object) { Vec sp8; s32 var_r29; @@ -477,7 +476,7 @@ void fn_1_1928(omObjData *object) fn_1_2774(object); } -void fn_1_1FA8(omObjData *object, s32 arg1) +static void fn_1_1FA8(omObjData *object, s32 arg1) { float var_f31; float var_f30; @@ -524,7 +523,7 @@ void fn_1_1FA8(omObjData *object, s32 arg1) fn_1_2708(object, var_f29, var_r28); } -void fn_1_20E8(omObjData *object) +static void fn_1_20E8(omObjData *object) { float var_f31; float var_f30; @@ -655,7 +654,7 @@ void fn_1_20E8(omObjData *object) } } -void fn_1_268C(omObjData *object, float *arg1, float *arg2, float *arg3) +static void fn_1_268C(omObjData *object, float *arg1, float *arg2, float *arg3) { Mtx sp8; @@ -665,7 +664,7 @@ void fn_1_268C(omObjData *object, float *arg1, float *arg2, float *arg3) *arg3 = sp8[2][3]; } -void fn_1_2708(omObjData *arg0, float arg8, s32 arg1) +static void fn_1_2708(omObjData *arg0, float arg8, s32 arg1) { UnkPresentStruct2 *var_r31 = arg0->data; @@ -675,7 +674,7 @@ void fn_1_2708(omObjData *arg0, float arg8, s32 arg1) var_r31->unk_250 = 1.0f / arg1; } -void fn_1_2774(omObjData *object) +static void fn_1_2774 (omObjData *object) { s32 var_r30; UnkPresentStruct2 *var_r31 = object->data; @@ -700,7 +699,7 @@ void fn_1_2774(omObjData *object) } } -s32 fn_1_28F0(omObjData *object) +static s32 fn_1_28F0 (omObjData *object) { UnkPresentStruct2 *var_r31 = object->data; return var_r31->unk_248 < 1.0f; @@ -708,7 +707,7 @@ s32 fn_1_28F0(omObjData *object) s32 lbl_1_data_84[] = { 0, 1, 2, 3, 4, 6, 7, 8 }; -void fn_1_2924(omObjData *object) +static void fn_1_2924(omObjData *object) { UnkPresentStruct2 *var_r31 = object->data; s32 var_r30; @@ -753,13 +752,13 @@ void fn_1_2924(omObjData *object) static const s32 lbl_1_rodata_A74[] = { 0, 6, 12, 18, 24, 59, 30, 36, 42, 48 }; -s32 fn_1_2B84(omObjData *arg0, s32 arg1, s32 arg2) +static s32 fn_1_2B84(omObjData *arg0, s32 arg1, s32 arg2) { UnkPresentStruct2 *var_r31 = arg0->data; return var_r31->unk_270[arg2 + lbl_1_rodata_A74[arg1]] != 0; } -s32 fn_1_2BCC(omObjData *object, s32 arg1) +static s32 fn_1_2BCC(omObjData *object, s32 arg1) { s32 var_r31; s32 var_r30; @@ -774,7 +773,7 @@ s32 fn_1_2BCC(omObjData *object, s32 arg1) return var_r30; } -s32 fn_1_2C5C(omObjData *object, s32 arg1) +static s32 fn_1_2C5C(omObjData *object, s32 arg1) { UnkPresentStruct7 spA4[10]; Vec sp38; @@ -881,7 +880,7 @@ s32 fn_1_2C5C(omObjData *object, s32 arg1) static const s32 lbl_1_rodata_AC8[] = { 6, 6, 6, 6, 6, 1, 6, 6, 6, 11 }; -s32 fn_1_3394(s32 arg0) +static s32 fn_1_3394(s32 arg0) { return lbl_1_rodata_AC8[arg0]; } @@ -891,7 +890,7 @@ static const s32 lbl_1_rodata_B18[] = { 8, 20, 32, 44, 56, 0, 68, 80, 92, 0 }; static const s32 lbl_1_rodata_B40[] = { 126, 127, 128, 129, 130, 0, 131, 132, 133, 0 }; static const s32 lbl_1_rodata_B68[] = { 118, 119, 120, 121, 122, 0, 123, 124, 125, 0 }; -void fn_1_33AC(omObjData *object) +static void fn_1_33AC(omObjData *object) { f32 var_f31; f32 var_f29; @@ -949,7 +948,7 @@ void fn_1_33AC(omObjData *object) static const s32 lbl_1_rodata_BA4[][2] = { { 7, 1 } }; -s32 fn_1_393C(s32 arg0, s32 arg1) +static s32 fn_1_393C(s32 arg0, s32 arg1) { s32 var_r31; From 3a7cde9f33d1e497c67e3cf0143470078ddd0b12 Mon Sep 17 00:00:00 2001 From: kabiskac Date: Sun, 4 Aug 2024 18:40:58 +0200 Subject: [PATCH 015/311] Named most things in presentDll --- config/GMPE01_00/rels/present/symbols.txt | 175 ++-- include/REL/present.h | 89 +- src/REL/present/camera.c | 291 +++--- src/REL/present/common.c | 260 +++-- src/REL/present/init.c | 214 ++-- src/REL/present/main.c | 257 ++--- src/REL/present/present.c | 1142 ++++++++++++--------- 7 files changed, 1301 insertions(+), 1127 deletions(-) diff --git a/config/GMPE01_00/rels/present/symbols.txt b/config/GMPE01_00/rels/present/symbols.txt index 08892e5b..a5b07fdb 100644 --- a/config/GMPE01_00/rels/present/symbols.txt +++ b/config/GMPE01_00/rels/present/symbols.txt @@ -1,75 +1,75 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global ObjectSetup = .text:0x000000A0; // type:function size:0xA4 -fn_1_144 = .text:0x00000144; // type:function size:0x110 -fn_1_254 = .text:0x00000254; // type:function size:0xE0 scope:local -fn_1_334 = .text:0x00000334; // type:function size:0x128 -fn_1_45C = .text:0x0000045C; // type:function size:0xF4 scope:local -fn_1_550 = .text:0x00000550; // type:function size:0x34 -fn_1_584 = .text:0x00000584; // type:function size:0x34 -fn_1_5B8 = .text:0x000005B8; // type:function size:0x34 -fn_1_5EC = .text:0x000005EC; // type:function size:0xC8 scope:local -fn_1_6B4 = .text:0x000006B4; // type:function size:0x23C -fn_1_8F0 = .text:0x000008F0; // type:function size:0x30 -fn_1_920 = .text:0x00000920; // type:function size:0x84 -fn_1_9A4 = .text:0x000009A4; // type:function size:0x84 -fn_1_A28 = .text:0x00000A28; // type:function size:0x84 scope:local -fn_1_AAC = .text:0x00000AAC; // type:function size:0x30 scope:local -fn_1_ADC = .text:0x00000ADC; // type:function size:0x30 scope:local -fn_1_B0C = .text:0x00000B0C; // type:function size:0x30 scope:local -fn_1_B3C = .text:0x00000B3C; // type:function size:0x30 scope:local -fn_1_B6C = .text:0x00000B6C; // type:function size:0x8C -fn_1_BF8 = .text:0x00000BF8; // type:function size:0x28 -fn_1_C20 = .text:0x00000C20; // type:function size:0x578 scope:local -fn_1_1198 = .text:0x00001198; // type:function size:0x200 scope:local -fn_1_1398 = .text:0x00001398; // type:function size:0xC0 scope:local -fn_1_1458 = .text:0x00001458; // type:function size:0x32C -fn_1_1784 = .text:0x00001784; // type:function size:0x88 -fn_1_180C = .text:0x0000180C; // type:function size:0x44 -fn_1_1850 = .text:0x00001850; // type:function size:0x1C -fn_1_186C = .text:0x0000186C; // type:function size:0xBC -fn_1_1928 = .text:0x00001928; // type:function size:0x680 scope:local -fn_1_1FA8 = .text:0x00001FA8; // type:function size:0x140 scope:local -fn_1_20E8 = .text:0x000020E8; // type:function size:0x5A4 scope:local -fn_1_268C = .text:0x0000268C; // type:function size:0x7C scope:local -fn_1_2708 = .text:0x00002708; // type:function size:0x6C scope:local -fn_1_2774 = .text:0x00002774; // type:function size:0x17C scope:local -fn_1_28F0 = .text:0x000028F0; // type:function size:0x34 scope:local -fn_1_2924 = .text:0x00002924; // type:function size:0x260 scope:local -fn_1_2B84 = .text:0x00002B84; // type:function size:0x48 scope:local -fn_1_2BCC = .text:0x00002BCC; // type:function size:0x90 scope:local -fn_1_2C5C = .text:0x00002C5C; // type:function size:0x738 scope:local -fn_1_3394 = .text:0x00003394; // type:function size:0x18 scope:local -fn_1_33AC = .text:0x000033AC; // type:function size:0x590 scope:local +PresentFadeSprite = .text:0x00000144; // type:function size:0x110 +FadeSprite = .text:0x00000254; // type:function size:0xE0 scope:local +FadeSpriteWithMultiplier = .text:0x00000334; // type:function size:0x128 +FadeModel = .text:0x0000045C; // type:function size:0xF4 scope:local +PresentPadCheck = .text:0x00000550; // type:function size:0x34 +PresentPadDStkRepCheck = .text:0x00000584; // type:function size:0x34 +PresentPadDStkCheck = .text:0x000005B8; // type:function size:0x34 +SceneMain = .text:0x000005EC; // type:function size:0xC8 scope:local +PresentCameraCreate = .text:0x000006B4; // type:function size:0x23C +PresentCameraKill = .text:0x000008F0; // type:function size:0x30 +PresentCameraTargetSet = .text:0x00000920; // type:function size:0x84 +PresentCameraFocusSet = .text:0x000009A4; // type:function size:0x84 +PresentCameraViewSet = .text:0x00000A28; // type:function size:0x84 +PresentCameraZoomGet = .text:0x00000AAC; // type:function size:0x30 +PresentCameraRotGet = .text:0x00000ADC; // type:function size:0x30 +PresentCameraPosGet = .text:0x00000B0C; // type:function size:0x30 +PresentCameraTargetGet = .text:0x00000B3C; // type:function size:0x30 +PresentCameraDoneCheck = .text:0x00000B6C; // type:function size:0x8C +ExecCameraObj = .text:0x00000BF8; // type:function size:0x28 scope:local +ExecCamera = .text:0x00000C20; // type:function size:0x578 scope:local +CameraExecDebug = .text:0x00001198; // type:function size:0x200 scope:local +CameraPrintDebug = .text:0x00001398; // type:function size:0xC0 scope:local +PresentCreate = .text:0x00001458; // type:function size:0x32C +PresentKill = .text:0x00001784; // type:function size:0x88 +PresentExecModeSet = .text:0x0000180C; // type:function size:0x44 +PresentExecModeGet = .text:0x00001850; // type:function size:0x1C +PresentSelectedIDSet = .text:0x0000186C; // type:function size:0xBC +ExecSelectRoom = .text:0x00001928; // type:function size:0x680 scope:local +ChangeRoom = .text:0x00001FA8; // type:function size:0x140 scope:local +ExecSelectPresent = .text:0x000020E8; // type:function size:0x5A4 scope:local +GetCursorPos = .text:0x0000268C; // type:function size:0x7C scope:local +SetCameraRot = .text:0x00002708; // type:function size:0x6C scope:local +RotateCamera = .text:0x00002774; // type:function size:0x17C scope:local +CameraRotationDoneCheck = .text:0x000028F0; // type:function size:0x34 scope:local +ShowHidePresents = .text:0x00002924; // type:function size:0x260 scope:local +PresentUnlocked = .text:0x00002B84; // type:function size:0x48 scope:local +UnlockedPresents = .text:0x00002BCC; // type:function size:0x90 scope:local +MoveCursor = .text:0x00002C5C; // type:function size:0x738 scope:local +TotalPresentsInRoom = .text:0x00003394; // type:function size:0x18 scope:local +ExecPresentGet = .text:0x000033AC; // type:function size:0x590 scope:local fn_1_393C = .text:0x0000393C; // type:function size:0x6C scope:local -fn_1_39A8 = .text:0x000039A8; // type:function size:0x170 -fn_1_3B18 = .text:0x00003B18; // type:function size:0x74 -fn_1_3B8C = .text:0x00003B8C; // type:function size:0x22C scope:local -fn_1_3DB8 = .text:0x00003DB8; // type:function size:0xEC scope:local -fn_1_3EA4 = .text:0x00003EA4; // type:function size:0x19C -fn_1_4040 = .text:0x00004040; // type:function size:0x40 -fn_1_4080 = .text:0x00004080; // type:function size:0x18 -fn_1_4098 = .text:0x00004098; // type:function size:0x18 -fn_1_40B0 = .text:0x000040B0; // type:function size:0x54 -fn_1_4104 = .text:0x00004104; // type:function size:0x40 -fn_1_4144 = .text:0x00004144; // type:function size:0x40 scope:local -fn_1_4184 = .text:0x00004184; // type:function size:0xC scope:local -fn_1_4190 = .text:0x00004190; // type:function size:0xC scope:local -fn_1_419C = .text:0x0000419C; // type:function size:0x20 -fn_1_41BC = .text:0x000041BC; // type:function size:0x24 scope:local -fn_1_41E0 = .text:0x000041E0; // type:function size:0x114 scope:local -fn_1_42F4 = .text:0x000042F4; // type:function size:0x240 -fn_1_4534 = .text:0x00004534; // type:function size:0x8C -fn_1_45C0 = .text:0x000045C0; // type:function size:0x44 -fn_1_4604 = .text:0x00004604; // type:function size:0x1C -fn_1_4620 = .text:0x00004620; // type:function size:0x260 scope:local -fn_1_4880 = .text:0x00004880; // type:function size:0x184 scope:local -fn_1_4A04 = .text:0x00004A04; // type:function size:0x2E8 scope:local -fn_1_4CEC = .text:0x00004CEC; // type:function size:0x104 scope:local +PresentStateCreate = .text:0x000039A8; // type:function size:0x170 +PresentStateKill = .text:0x00003B18; // type:function size:0x74 +ExecPresentView = .text:0x00003B8C; // type:function size:0x22C scope:local +ExecPresentGet = .text:0x00003DB8; // type:function size:0xEC scope:local +PresentWinCreate = .text:0x00003EA4; // type:function size:0x19C +PresentWinKill = .text:0x00004040; // type:function size:0x40 +PresentWinAnimIn = .text:0x00004080; // type:function size:0x18 +PresentWinAnimOut = .text:0x00004098; // type:function size:0x18 +PresentWinMesSet = .text:0x000040B0; // type:function size:0x54 +PresentWinInsertMesSet = .text:0x00004104; // type:function size:0x40 +PresentWinPosSet = .text:0x00004144; // type:function size:0x40 +PresentWinDispOn = .text:0x00004184; // type:function size:0xC +PresentWinDispOff = .text:0x00004190; // type:function size:0xC +PresentWinMesWait = .text:0x0000419C; // type:function size:0x20 +PresentWinChoiceSet = .text:0x000041BC; // type:function size:0x24 +ExecWindow = .text:0x000041E0; // type:function size:0x114 scope:local +PresentGuideCreate = .text:0x000042F4; // type:function size:0x240 +PresentGuideKill = .text:0x00004534; // type:function size:0x8C +PresentGuideExecModeSet = .text:0x000045C0; // type:function size:0x44 +PresentGuideExecModeGet = .text:0x00004604; // type:function size:0x1C +ExecGuideEnter = .text:0x00004620; // type:function size:0x260 scope:local +ExecGuideLeave = .text:0x00004880; // type:function size:0x184 scope:local +UpdateGuide = .text:0x00004A04; // type:function size:0x2E8 scope:local +LerpAngle = .text:0x00004CEC; // type:function size:0x104 scope:local _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -__fakeHalf = .rodata:0x00000000; // type:object size:0x4 data:float -__fakeThree = .rodata:0x00000004; // type:object size:0x4 data:float +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:float @@ -95,14 +95,14 @@ lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:f lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x218 scope:local -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x708 scope:local +presentMdlTbl = .rodata:0x000000A0; // type:object size:0x218 scope:local +roomTbl = .rodata:0x000002B8; // type:object size:0x708 scope:local lbl_1_rodata_9C0 = .rodata:0x000009C0; // type:object size:0x4 scope:local data:float lbl_1_rodata_9C4 = .rodata:0x000009C4; // type:object size:0x4 scope:local data:float lbl_1_rodata_9C8 = .rodata:0x000009C8; // type:object size:0x4 scope:local data:float lbl_1_rodata_9D0 = .rodata:0x000009D0; // type:object size:0x8 scope:local data:float -lbl_1_rodata_9D8 = .rodata:0x000009D8; // type:object size:0x20 scope:local -lbl_1_rodata_9F8 = .rodata:0x000009F8; // type:object size:0x28 scope:local +roomIdxTbl = .rodata:0x000009D8; // type:object size:0x20 scope:local +roomMessTbl = .rodata:0x000009F8; // type:object size:0x28 scope:local lbl_1_rodata_A20 = .rodata:0x00000A20; // type:object size:0x4 scope:local data:float lbl_1_rodata_A24 = .rodata:0x00000A24; // type:object size:0x4 scope:local data:float lbl_1_rodata_A28 = .rodata:0x00000A28; // type:object size:0x4 scope:local data:float @@ -119,7 +119,7 @@ lbl_1_rodata_A58 = .rodata:0x00000A58; // type:object size:0x4 scope:local data: lbl_1_rodata_A60 = .rodata:0x00000A60; // type:object size:0x8 scope:local data:double lbl_1_rodata_A68 = .rodata:0x00000A68; // type:object size:0x8 scope:local data:double lbl_1_rodata_A70 = .rodata:0x00000A70; // type:object size:0x4 scope:local data:float -lbl_1_rodata_A74 = .rodata:0x00000A74; // type:object size:0x28 scope:local +roomPresentOffsetTbl = .rodata:0x00000A74; // type:object size:0x28 scope:local lbl_1_rodata_A9C = .rodata:0x00000A9C; // type:object size:0x4 scope:local data:float lbl_1_rodata_AA0 = .rodata:0x00000AA0; // type:object size:0x4 scope:local data:float lbl_1_rodata_AA4 = .rodata:0x00000AA4; // type:object size:0x4 scope:local data:float @@ -128,11 +128,11 @@ lbl_1_rodata_AAC = .rodata:0x00000AAC; // type:object size:0x4 scope:local data: lbl_1_rodata_AB0 = .rodata:0x00000AB0; // type:object size:0x4 scope:local data:float lbl_1_rodata_AB8 = .rodata:0x00000AB8; // type:object size:0x8 scope:local data:double lbl_1_rodata_AC0 = .rodata:0x00000AC0; // type:object size:0x8 scope:local data:double -lbl_1_rodata_AC8 = .rodata:0x00000AC8; // type:object size:0x28 scope:local -lbl_1_rodata_AF0 = .rodata:0x00000AF0; // type:object size:0x28 scope:local +totalPresentCntTbl = .rodata:0x00000AC8; // type:object size:0x28 scope:local +presentItemIdxTbl = .rodata:0x00000AF0; // type:object size:0x28 scope:local lbl_1_rodata_B18 = .rodata:0x00000B18; // type:object size:0x28 scope:local -lbl_1_rodata_B40 = .rodata:0x00000B40; // type:object size:0x28 scope:local -lbl_1_rodata_B68 = .rodata:0x00000B68; // type:object size:0x28 scope:local +constellationIdxTbl = .rodata:0x00000B40; // type:object size:0x28 scope:local +roofIdxTbl = .rodata:0x00000B68; // type:object size:0x28 scope:local lbl_1_rodata_B90 = .rodata:0x00000B90; // type:object size:0x4 scope:local data:float lbl_1_rodata_B94 = .rodata:0x00000B94; // type:object size:0x4 scope:local data:float lbl_1_rodata_B98 = .rodata:0x00000B98; // type:object size:0x4 scope:local data:float @@ -148,7 +148,7 @@ lbl_1_rodata_BC4 = .rodata:0x00000BC4; // type:object size:0x4 scope:local data: lbl_1_rodata_BC8 = .rodata:0x00000BC8; // type:object size:0x4 scope:local data:float lbl_1_rodata_BCC = .rodata:0x00000BCC; // type:object size:0x4 scope:local data:float lbl_1_rodata_BD0 = .rodata:0x00000BD0; // type:object size:0x4 scope:local data:float -lbl_1_rodata_BD8 = .rodata:0x00000BD8; // type:object size:0xC scope:local +guideMotTbl = .rodata:0x00000BD8; // type:object size:0xC scope:local lbl_1_rodata_BE4 = .rodata:0x00000BE4; // type:object size:0x4 scope:local data:float lbl_1_rodata_BE8 = .rodata:0x00000BE8; // type:object size:0x4 scope:local data:float lbl_1_rodata_BEC = .rodata:0x00000BEC; // type:object size:0x4 scope:local data:float @@ -172,21 +172,22 @@ lbl_1_rodata_C4C = .rodata:0x00000C4C; // type:object size:0x4 scope:local data: lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B scope:local data:string lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1B scope:local data:string lbl_1_data_36 = .data:0x00000036; // type:object size:0x1A scope:local data:string -lbl_1_data_50 = .data:0x00000050; // type:object size:0x1C data:4byte -lbl_1_data_6C = .data:0x0000006C; // type:object size:0x10 data:4byte +lightTbl = .data:0x00000050; // type:object size:0x1C scope:local data:4byte +execModeTbl = .data:0x0000006C; // type:object size:0x10 scope:local data:4byte lbl_1_data_7C = .data:0x0000007C; // type:object size:0x8 scope:local data:string -lbl_1_data_84 = .data:0x00000084; // type:object size:0x20 +roomIdxTbl2 = .data:0x00000084; // type:object size:0x20 jumptable_1_data_A4 = .data:0x000000A4; // type:object size:0x2C scope:local jumptable_1_data_D0 = .data:0x000000D0; // type:object size:0x1C scope:local -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x24 data:float +shadowPosTbl = .data:0x000000F0; // type:object size:0x24 scope:local data:float lbl_1_data_114 = .data:0x00000114; // type:object size:0x2A scope:local data:string lbl_1_data_13E = .data:0x0000013E; // type:object size:0x2E scope:local data:string jumptable_1_data_16C = .data:0x0000016C; // type:object size:0x34 scope:local -lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0xC data:4byte -lbl_1_bss_14 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +execModeTbl = .data:0x000001A0; // type:object size:0xC scope:local data:4byte +scene = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte +presentObjMan = .bss:0x00000004; // type:object size:0x4 data:4byte +presentCamera = .bss:0x00000008; // type:object size:0x4 data:4byte lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +present = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +presentState = .bss:0x00000018; // type:object size:0x4 data:4byte +presentGuide = .bss:0x00000020; // type:object size:0x4 data:4byte diff --git a/include/REL/present.h b/include/REL/present.h index 1560a75d..8b7eb6d6 100644 --- a/include/REL/present.h +++ b/include/REL/present.h @@ -3,51 +3,58 @@ #include "game/object.h" -typedef struct UnkWindowDataStruct { +typedef struct PresentWindow { /* 0x00 */ Process *process; /* 0x04 */ s16 window; - /* 0x06 */ char unk06[2]; - /* 0x08 */ s32 unk08; - /* 0x0C */ s32 unk0C; - /* 0x10 */ s32 unk10; - /* 0x14 */ s32 unk14; - /* 0x18 */ u32 unk18; + /* 0x08 */ s32 id; + /* 0x0C */ BOOL visible; + /* 0x10 */ s32 messWaitSignal; + /* 0x14 */ s32 choiceSignal; + /* 0x18 */ u32 messToBeSet; /* 0x1C */ s32 choice; - /* 0x20 */ s32 unk_20; -} UnkWindowDataStruct; /* size 0x24 */ // this already exists in option.h + /* 0x20 */ s32 state; +} PresentWindow; /* size 0x24 */ // this already exists in option.h -extern omObjData *lbl_1_bss_10; -extern omObjData *lbl_1_bss_8; -extern Process *lbl_1_bss_4; +#define PRESENT_GUIDE_MODE_NONE 0 +#define PRESENT_GUIDE_MODE_ENTER 1 +#define PRESENT_GUIDE_MODE_LEAVE 2 -void fn_1_144(s16 arg0, s32 arg1, s32 arg2); -void fn_1_334(s16 arg0, s32 arg1, float arg8, s32 arg2); -s32 fn_1_550(u16 arg0); -s32 fn_1_584(u16 arg0); -s32 fn_1_5B8(u16 arg0); -omObjData *fn_1_6B4(); -void fn_1_8F0(omObjData *object); -void fn_1_920(omObjData *object, float arg8, float arg9, float argA, s32 arg1); -void fn_1_9A4(omObjData *object, float arg8, float arg9, float argA, s32 arg1); -s32 fn_1_B6C(omObjData *object); -void fn_1_BF8(omObjData *object); -omObjData *fn_1_1458(void); -void fn_1_1784(omObjData *object); -void fn_1_180C(omObjData *object, s32 arg1); -s32 fn_1_1850(omObjData *object); -void fn_1_186C(omObjData *object, s32 arg1); -void fn_1_3B18(omObjData *object); -omObjData *fn_1_39A8(void); -UnkWindowDataStruct *fn_1_3EA4(s32 arg0); -void fn_1_4040(UnkWindowDataStruct *arg0); -void fn_1_4080(UnkWindowDataStruct *windowData); -void fn_1_4098(UnkWindowDataStruct *windowData); -void fn_1_40B0(UnkWindowDataStruct *windowData, u32 mess); -void fn_1_4104(UnkWindowDataStruct *windowData, u32 mess, s16 index); -void fn_1_419C(UnkWindowDataStruct *windowData); -omObjData *fn_1_42F4(void); -void fn_1_4534(omObjData *object); -void fn_1_45C0(omObjData *arg0, s32 arg1); -s32 fn_1_4604(omObjData *object); +#define PRESENT_MODE_NONE 0 +#define PRESENT_MODE_SELECT_ROOM 1 +#define PRESENT_MODE_SELECT_PRESENT 2 +#define PRESENT_MODE_GET 3 + +extern omObjData *present; +extern omObjData *presentCamera; +extern Process *presentObjMan; + +void PresentFadeSprite(s16 sprite, BOOL inF, s32 duration); +void FadeSpriteWithMultiplier(s16 model, BOOL inF, float tpMultiplier, s32 duration); +BOOL PresentPadCheck(u16 btn); +BOOL PresentPadDStkRepCheck(u16 dir); +BOOL PresentPadDStkCheck(u16 dir); +omObjData *PresentCameraCreate(); +void PresentCameraKill(omObjData *object); +void PresentCameraTargetSet(omObjData *object, float x, float y, float z, s32 duration); +void PresentCameraFocusSet(omObjData *object, float x, float y, float z, s32 duration); +s32 PresentCameraDoneCheck(omObjData *object); +omObjData *PresentCreate(void); +void PresentKill(omObjData *object); +void PresentExecModeSet(omObjData *object, s32 execMode); +s32 PresentExecModeGet(omObjData *object); +void PresentSelectedIDSet(omObjData *object, s32 id); +void PresentStateKill(omObjData *object); +omObjData *PresentStateCreate(void); +PresentWindow *PresentWinCreate(s32 id); +void PresentWinKill(PresentWindow *work); +void PresentWinAnimIn(PresentWindow *work); +void PresentWinAnimOut(PresentWindow *work); +void PresentWinMesSet(PresentWindow *work, u32 mess); +void PresentWinInsertMesSet(PresentWindow *work, u32 mess, s16 index); +void PresentWinMesWait(PresentWindow *work); +omObjData *PresentGuideCreate(void); +void PresentGuideKill(omObjData *object); +void PresentGuideExecModeSet(omObjData *object, s32 execMode); +s32 PresentGuideExecModeGet(omObjData *object); #endif diff --git a/src/REL/present/camera.c b/src/REL/present/camera.c index 0e15f36e..3a15ac79 100644 --- a/src/REL/present/camera.c +++ b/src/REL/present/camera.c @@ -5,242 +5,235 @@ #include "REL/present.h" -typedef struct UnkPresentCameraStruct { +typedef struct CameraWork { /* 0x00 */ Vec pos; /* 0x0C */ Vec target; /* 0x18 */ Vec up; - /* 0x24 */ float unk_24; - /* 0x28 */ float unk_28; - /* 0x2C */ Vec unk_2C; - /* 0x38 */ Vec unk_38; - /* 0x44 */ float unk44; - /* 0x48 */ float unk48; - /* 0x4C */ float unk4C; - /* 0x50 */ float unk_50; - /* 0x54 */ float unk_54; - /* 0x58 */ Vec unk_58; - /* 0x64 */ Vec unk_64; - /* 0x70 */ float unk70; - /* 0x74 */ float unk74; - /* 0x78 */ float unk78; - /* 0x7C */ float unk_7C; - /* 0x80 */ float unk_80; - /* 0x84 */ float unk_84; - /* 0x88 */ float unk_88; - /* 0x8C */ float unk_8C; - /* 0x90 */ float unk_90; - /* 0x94 */ float unk_94; - /* 0x98 */ float unk_98; -} UnkPresentCameraStruct; /* size = 0x9C */ + /* 0x24 */ float zoom; + /* 0x28 */ float rot; + /* 0x2C */ Vec posPrev; + /* 0x38 */ Vec targetPrev; + /* 0x44 */ char unk44[0xC]; + /* 0x50 */ float zoomPrev; + /* 0x54 */ float rotPrev; + /* 0x58 */ Vec posTarget; + /* 0x64 */ Vec posFocus; + /* 0x70 */ char unk70[0xC]; + /* 0x7C */ float zoomTarget; + /* 0x80 */ float rotTarget; + /* 0x84 */ float timeEye; + /* 0x88 */ float eyeSpeed; + /* 0x8C */ float timeTarget; + /* 0x90 */ float targetSpeed; + /* 0x94 */ float timeRot; + /* 0x98 */ float rotSpeed; +} CameraWork; /* size = 0x9C */ // same as in option/camera.c -static void fn_1_C20(omObjData *object); +static void ExecCameraObj(omObjData *object); +static void ExecCamera(omObjData *object); -omObjData *fn_1_6B4(void) +omObjData *PresentCameraCreate(void) { - omObjData *var_r30 = omAddObjEx(lbl_1_bss_4, 1001, 0, 0, 3, fn_1_BF8); - UnkPresentCameraStruct *var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 156, MEMORY_DEFAULT_NUM); - var_r30->data = var_r31; + omObjData *object = omAddObjEx(presentObjMan, 1001, 0, 0, 3, ExecCameraObj); + CameraWork *work = HuMemDirectMallocNum(HEAP_SYSTEM, 156, MEMORY_DEFAULT_NUM); + object->data = work; - var_r31->pos.x = 0.0f; - var_r31->pos.y = 0.0f; - var_r31->pos.z = 0.0f; + work->pos.x = 0.0f; + work->pos.y = 0.0f; + work->pos.z = 0.0f; - var_r31->target.x = 0.0f; - var_r31->target.y = 0.0f; - var_r31->target.z = 0.0f; + work->target.x = 0.0f; + work->target.y = 0.0f; + work->target.z = 0.0f; - var_r31->up.x = 0.0f; - var_r31->up.y = 1.0f; - var_r31->up.z = 0.0f; + work->up.x = 0.0f; + work->up.y = 1.0f; + work->up.z = 0.0f; - var_r31->unk_24 = 0.0f; - var_r31->unk_28 = 0.0f; - var_r31->unk_8C = 1.0f; - var_r31->unk_84 = 1.0f; - var_r31->unk_94 = 1.0f; + work->zoom = 0.0f; + work->rot = 0.0f; + work->timeTarget = 1.0f; + work->timeEye = 1.0f; + work->timeRot = 1.0f; Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); Hu3DCameraPerspectiveSet(1, 42.0f, 10.0f, 8000.0f, 1.2f); - fn_1_9A4(var_r30, 0.0f, 0.0f, -600.0f, 1); - fn_1_920(var_r30, 0.0f, 220.0f, 250.0f, 1); + PresentCameraFocusSet(object, 0.0f, 0.0f, -600.0f, 1); + PresentCameraTargetSet(object, 0.0f, 220.0f, 250.0f, 1); - return var_r30; + return object; } -void fn_1_8F0(omObjData *object) +void PresentCameraKill(omObjData *object) { HuMemDirectFree(object->data); } -void fn_1_920(omObjData *object, float arg8, float arg9, float argA, s32 arg1) +void PresentCameraTargetSet(omObjData *object, float x, float y, float z, s32 duration) { - UnkPresentCameraStruct *var_r31 = object->data; + CameraWork *work = object->data; - var_r31->unk_58.x = arg8; - var_r31->unk_58.y = arg9; - var_r31->unk_58.z = argA; + work->posTarget.x = x; + work->posTarget.y = y; + work->posTarget.z = z; - var_r31->unk_2C = var_r31->pos; - var_r31->unk_84 = 0.0f; - var_r31->unk_88 = 1.0f / arg1; + work->posPrev = work->pos; + work->timeEye = 0.0f; + work->eyeSpeed = 1.0f / duration; } -void fn_1_9A4(omObjData *object, float arg8, float arg9, float argA, s32 arg1) +void PresentCameraFocusSet(omObjData *object, float x, float y, float z, s32 duration) { - UnkPresentCameraStruct *var_r31 = object->data; + CameraWork *work = object->data; - var_r31->unk_64.x = arg8; - var_r31->unk_64.y = arg9; - var_r31->unk_64.z = argA; + work->posFocus.x = x; + work->posFocus.y = y; + work->posFocus.z = z; - var_r31->unk_38 = var_r31->target; - var_r31->unk_8C = 0.0f; - var_r31->unk_90 = 1.0f / arg1; + work->targetPrev = work->target; + work->timeTarget = 0.0f; + work->targetSpeed = 1.0f / duration; } -static void fn_1_A28(omObjData *object, s32 arg1, float arg8, float arg9, float argA) +void PresentCameraViewSet(omObjData *object, float zoom, float rot, float y, s32 duration) { - UnkPresentCameraStruct *var_r31 = object->data; + CameraWork *work = object->data; - var_r31->unk_64.y = argA; - var_r31->unk_7C = arg8; - var_r31->unk_80 = arg9; + work->posFocus.y = y; + work->zoomTarget = zoom; + work->rotTarget = rot; - var_r31->unk_38.y = var_r31->target.y; - var_r31->unk_50 = var_r31->unk_24; - var_r31->unk_54 = var_r31->unk_28; - var_r31->unk_94 = 0.0f; - var_r31->unk_98 = 1.0f / arg1; + work->targetPrev.y = work->target.y; + work->zoomPrev = work->zoom; + work->rotPrev = work->rot; + work->timeRot = 0.0f; + work->rotSpeed = 1.0f / duration; } -static float fn_1_AAC(omObjData *object) +float PresentCameraZoomGet(omObjData *object) { - UnkPresentCameraStruct *var_r31 = object->data; + CameraWork *work = object->data; - float var_f31 = var_r31->unk_24; + float var_f31 = work->zoom; return var_f31; } -static float fn_1_ADC(omObjData *object) +float PresentCameraRotGet(omObjData *object) { - UnkPresentCameraStruct *var_r31 = object->data; + CameraWork *work = object->data; - float var_f31 = var_r31->unk_28; + float var_f31 = work->rot; return var_f31; } -static void fn_1_B0C(omObjData *object, float *arg1, float *arg2, float *arg3) +void PresentCameraPosGet(omObjData *object, float *x, float *y, float *z) { - UnkPresentCameraStruct *var_r31 = object->data; + CameraWork *work = object->data; - *arg1 = var_r31->pos.x; - *arg2 = var_r31->pos.y; - *arg3 = var_r31->pos.z; + *x = work->pos.x; + *y = work->pos.y; + *z = work->pos.z; } -static void fn_1_B3C(omObjData *object, float *arg1, float *arg2, float *arg3) +void PresentCameraTargetGet(omObjData *object, float *x, float *y, float *z) { - UnkPresentCameraStruct *var_r31 = object->data; + CameraWork *work = object->data; - *arg1 = var_r31->target.x; - *arg2 = var_r31->target.y; - *arg3 = var_r31->target.z; + *x = work->target.x; + *y = work->target.y; + *z = work->target.z; } -s32 fn_1_B6C(omObjData *object) +s32 PresentCameraDoneCheck(omObjData *object) { - UnkPresentCameraStruct *var_r31 = object->data; + CameraWork *work = object->data; s32 var_r30 = 1; s32 var_r29 = 1; - if (!(var_r31->unk_8C < 1.0f) && !(var_r31->unk_94 < 1.0f)) { + if (!(work->timeTarget < 1.0f) && !(work->timeRot < 1.0f)) { var_r29 = 0; } - if (!var_r29 && !(var_r31->unk_84 < 1.0f)) { + if (!var_r29 && !(work->timeEye < 1.0f)) { var_r30 = 0; } return var_r30; } -void fn_1_BF8(omObjData *object) +static void ExecCameraObj(omObjData *object) { - fn_1_C20(object); + ExecCamera(object); } -static void fn_1_C20(omObjData *object) +static void ExecCamera(omObjData *object) { - float var_f31; - float var_f30; - float var_f29; - float var_f28; - float var_f27; + CameraWork *work = object->data; + float weight; + float dx; + float dz; - UnkPresentCameraStruct *var_r31 = object->data; + if (work->timeEye < 1.0f) { + weight = sind(90.0f * work->timeEye); + work->pos.x = work->posPrev.x + weight * (work->posTarget.x - work->posPrev.x); + work->pos.y = work->posPrev.y + weight * (work->posTarget.y - work->posPrev.y); + work->pos.z = work->posPrev.z + weight * (work->posTarget.z - work->posPrev.z); - if (var_r31->unk_84 < 1.0f) { - var_f28 = sind(90.0f * var_r31->unk_84); - var_r31->pos.x = var_r31->unk_2C.x + var_f28 * (var_r31->unk_58.x - var_r31->unk_2C.x); - var_r31->pos.y = var_r31->unk_2C.y + var_f28 * (var_r31->unk_58.y - var_r31->unk_2C.y); - var_r31->pos.z = var_r31->unk_2C.z + var_f28 * (var_r31->unk_58.z - var_r31->unk_2C.z); - - if ((var_r31->unk_84 += var_r31->unk_88) >= 1.0f) { - var_r31->pos = var_r31->unk_58; + if ((work->timeEye += work->eyeSpeed) >= 1.0f) { + work->pos = work->posTarget; } } - if (var_r31->unk_8C < 1.0f) { - var_f28 = sind(90.0f * var_r31->unk_8C); - var_r31->target.x = var_r31->unk_38.x + var_f28 * (var_r31->unk_64.x - var_r31->unk_38.x); - var_r31->target.y = var_r31->unk_38.y + var_f28 * (var_r31->unk_64.y - var_r31->unk_38.y); - var_r31->target.z = var_r31->unk_38.z + var_f28 * (var_r31->unk_64.z - var_r31->unk_38.z); + if (work->timeTarget < 1.0f) { + weight = sind(90.0f * work->timeTarget); + work->target.x = work->targetPrev.x + weight * (work->posFocus.x - work->targetPrev.x); + work->target.y = work->targetPrev.y + weight * (work->posFocus.y - work->targetPrev.y); + work->target.z = work->targetPrev.z + weight * (work->posFocus.z - work->targetPrev.z); - if ((var_r31->unk_8C += var_r31->unk_90) >= 1.0f) { - var_r31->target = var_r31->unk_64; + if ((work->timeTarget += work->targetSpeed) >= 1.0f) { + work->target = work->posFocus; } } - if (var_r31->unk_94 < 1.0f) { - var_f28 = sind(90.0f * var_r31->unk_94); - var_r31->target.y = var_r31->unk_38.y + (var_f28 * (var_r31->unk_64.y - var_r31->unk_38.y)); - var_r31->unk_24 = var_r31->unk_50 + (var_f28 * (var_r31->unk_7C - var_r31->unk_50)); - var_r31->unk_28 = var_r31->unk_54 + (var_f28 * (var_r31->unk_80 - var_r31->unk_54)); + if (work->timeRot < 1.0f) { + weight = sind(90.0f * work->timeRot); + work->target.y = work->targetPrev.y + (weight * (work->posFocus.y - work->targetPrev.y)); + work->zoom = work->zoomPrev + (weight * (work->zoomTarget - work->zoomPrev)); + work->rot = work->rotPrev + (weight * (work->rotTarget - work->rotPrev)); - if ((var_r31->unk_94 += var_r31->unk_98) >= 1.0f) { - var_r31->target.y = var_r31->unk_64.y; - var_r31->unk_24 = var_r31->unk_7C; - var_r31->unk_28 = var_r31->unk_80; + if ((work->timeRot += work->rotSpeed) >= 1.0f) { + work->target.y = work->posFocus.y; + work->zoom = work->zoomTarget; + work->rot = work->rotTarget; } - var_r31->target.x = var_r31->unk_24 * -sind(var_r31->unk_28); - var_r31->target.z = var_r31->unk_24 * cosd(var_r31->unk_28); + work->target.x = work->zoom * -sind(work->rot); + work->target.z = work->zoom * cosd(work->rot); } - var_f31 = var_r31->target.x - var_r31->pos.x; - var_f30 = var_r31->target.z - var_r31->pos.z; + dx = work->target.x - work->pos.x; + dz = work->target.z - work->pos.z; - var_r31->unk_24 = sqrtf(var_f31 * var_f31 + var_f30 * var_f30); - var_r31->unk_28 = fmod(-atan2d(var_f31, var_f30), 360.0); - if (var_r31->unk_28 < 0.0f) { - var_r31->unk_28 += 360.0f; + work->zoom = sqrtf(dx * dx + dz * dz); + work->rot = fmod(-atan2d(dx, dz), 360.0); + if (work->rot < 0.0f) { + work->rot += 360.0f; } - Hu3DCameraPosSet(1, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z, var_r31->up.x, var_r31->up.y, var_r31->up.z, var_r31->target.x, - var_r31->target.y, var_r31->target.z); + Hu3DCameraPosSet(1, work->pos.x, work->pos.y, work->pos.z, work->up.x, work->up.y, work->up.z, work->target.x, work->target.y, work->target.z); } -static void fn_1_1198(omObjData *object) +static void CameraExecDebug(omObjData *object) { if (HuPadBtn[0] & PAD_BUTTON_B) { - UnkPresentCameraStruct *var_r31 = object->data; + CameraWork *work = object->data; - var_r31->target.x = var_r31->target.x + (0.5f * HuPadStkX[0]); - var_r31->target.y = var_r31->target.y + (0.5f * HuPadStkY[0]); - var_r31->pos.z = var_r31->pos.z + (0.5f * HuPadTrigL[0]); - var_r31->pos.z = var_r31->pos.z - (0.5f * HuPadTrigR[0]); - var_r31->pos.x = var_r31->pos.x + (0.5f * HuPadSubStkY[0]); - var_r31->pos.y = var_r31->pos.y + (0.5f * HuPadSubStkX[0]); + work->target.x += (0.5f * HuPadStkX[0]); + work->target.y += (0.5f * HuPadStkY[0]); + work->pos.z += (0.5f * HuPadTrigL[0]); + work->pos.z -= (0.5f * HuPadTrigR[0]); + work->pos.x += (0.5f * HuPadSubStkY[0]); + work->pos.y += (0.5f * HuPadSubStkX[0]); } } -static void fn_1_1398(omObjData *object) +static void CameraPrintDebug(omObjData *object) { - UnkPresentCameraStruct *var_r31 = object->data; - print8(32, 64, 1.5f, "AT : x=%.2f y=%.2f z=%.2f", var_r31->target.x, var_r31->target.y, var_r31->target.z); - print8(32, 80, 1.5f, "EYE : x=%.2f y=%.2f z=%.2f", var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); - print8(32, 96, 1.5f, "R : %.2f DEG: %.2f", var_r31->unk_24, var_r31->unk_28); + CameraWork *work = object->data; + print8(32, 64, 1.5f, "AT : x=%.2f y=%.2f z=%.2f", work->target.x, work->target.y, work->target.z); + print8(32, 80, 1.5f, "EYE : x=%.2f y=%.2f z=%.2f", work->pos.x, work->pos.y, work->pos.z); + print8(32, 96, 1.5f, "R : %.2f DEG: %.2f", work->zoom, work->rot); } diff --git a/src/REL/present/common.c b/src/REL/present/common.c index a6a42ba1..32922f12 100644 --- a/src/REL/present/common.c +++ b/src/REL/present/common.c @@ -6,228 +6,224 @@ #include "REL/present.h" -typedef struct UnkPresentStruct5 { - /* 0x00 */ s32 unk_00; - /* 0x04 */ s16 unk_04; - /* 0x08 */ float x; - /* 0x0C */ float y; - /* 0x10 */ float z; - /* 0x14 */ float unk_14; - /* 0x18 */ s32 unk18[2]; - /* 0x20 */ float unk_20; - /* 0x24 */ float unk_24; - /* 0x28 */ float unk_28; - /* 0x2C */ float unk_2C; - /* 0x30 */ float unk_30; - /* 0x34 */ float unk_34; - /* 0x38 */ float unk_38; - /* 0x3C */ s32 unk3C[3]; - /* 0x48 */ float unk_48; - /* 0x4C */ float unk_4C; +typedef struct GuideWork { + /* 0x00 */ s32 execMode; + /* 0x04 */ s16 motion; + /* 0x08 */ Vec pos; + /* 0x14 */ Vec newPos; + /* 0x20 */ Vec rot; + /* 0x2C */ Vec posDelta; + /* 0x38 */ float distRemain; + /* 0x3C */ char unk3C[0xC]; + /* 0x48 */ float time; + /* 0x4C */ float speed; /* 0x50 */ s32 unk_50; /* 0x54 */ s32 unk_54; -} UnkPresentStruct5; /* size = 0x58 */ +} GuideWork; /* size = 0x58 */ -static void fn_1_4620(omObjData *object); -static void fn_1_4880(omObjData *object); -static void fn_1_4A04(omObjData *object); -static float fn_1_4CEC(float arg8, float arg9, float argA); +static void ExecGuideEnter(omObjData *object); +static void ExecGuideLeave(omObjData *object); +static void UpdateGuide(omObjData *object); +static float LerpAngle(float start, float end, float time); -omObjFunc lbl_1_data_1A0[] = { NULL, fn_1_4620, fn_1_4880 }; +static omObjFunc execModeTbl[] = { NULL, ExecGuideEnter, ExecGuideLeave }; -static const s32 lbl_1_rodata_BD8[] = { 0x006E0089, 0x006E008A, 0x006E008B }; +static const s32 guideMotTbl[] = { + DATA_MAKE_NUM(DATADIR_PRESENT, 137), + DATA_MAKE_NUM(DATADIR_PRESENT, 138), + DATA_MAKE_NUM(DATADIR_PRESENT, 139), +}; - -omObjData *fn_1_42F4(void) +omObjData *PresentGuideCreate(void) { s32 var_r29; - omObjData *var_r31 = omAddObjEx(lbl_1_bss_4, 1002, 1, 3, 2, NULL); - UnkPresentStruct5 *var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, 88, MEMORY_DEFAULT_NUM); - var_r31->data = var_r30; + omObjData *object = omAddObjEx(presentObjMan, 1002, 1, 3, 2, NULL); + GuideWork *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(GuideWork), MEMORY_DEFAULT_NUM); + object->data = work; - var_r30->x = 0.0f; - var_r30->z = 0.0f; - var_r30->y = 0.0f; - var_r30->unk_20 = 0.0f; - var_r30->unk_24 = 0.0f; - var_r30->unk_28 = 0.0f; - var_r30->unk_2C = 0.0f; - var_r30->unk_34 = 0.0f; - var_r30->unk_30 = 0.0f; - var_r31->model[0] = Hu3DModelCreate(HuDataReadNum(0x6E0088, MEMORY_DEFAULT_NUM)); - Hu3DModelLayerSet(var_r31->model[0], 1); + work->pos.x = 0.0f; + work->pos.z = 0.0f; + work->pos.y = 0.0f; + work->rot.x = 0.0f; + work->rot.y = 0.0f; + work->rot.z = 0.0f; + + work->posDelta.x = 0.0f; + work->posDelta.z = 0.0f; + work->posDelta.y = 0.0f; + object->model[0] = Hu3DModelCreate(HuDataReadNum(DATA_MAKE_NUM(DATADIR_PRESENT, 136), MEMORY_DEFAULT_NUM)); + Hu3DModelLayerSet(object->model[0], 1); for (var_r29 = 0; var_r29 < 3; var_r29++) { - var_r31->motion[var_r29] = Hu3DJointMotion(var_r31->model[0], HuDataSelHeapReadNum(lbl_1_rodata_BD8[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA)); + object->motion[var_r29] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(guideMotTbl[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA)); } - Hu3DMotionShiftSet(var_r31->model[0], var_r31->motion[var_r30->unk_04 = 0], 0.0f, 8.0f, 0x40000001); - var_r30->unk_50 = CharModelEffectNpcInit(var_r31->model[0], var_r31->motion[2], 1, 10); - var_r30->unk_54 = CharModelEffectNpcInit(var_r31->model[0], var_r31->motion[1], 0, 10); + Hu3DMotionShiftSet(object->model[0], object->motion[work->motion = 0], 0.0f, 8.0f, 0x40000001); + work->unk_50 = CharModelEffectNpcInit(object->model[0], object->motion[2], 1, 10); + work->unk_54 = CharModelEffectNpcInit(object->model[0], object->motion[1], 0, 10); CharModelLayerSetAll(1); - Hu3DModelShadowSet(var_r31->model[0]); - fn_1_45C0(var_r31, 0); - fn_1_4A04(var_r31); - Hu3DModelAttrSet(var_r31->model[0], 1); + Hu3DModelShadowSet(object->model[0]); + PresentGuideExecModeSet(object, PRESENT_GUIDE_MODE_NONE); + UpdateGuide(object); + Hu3DModelAttrSet(object->model[0], 1); - return var_r31; + return object; } -void fn_1_4534(omObjData *object) +void PresentGuideKill(omObjData *object) { - s32 var_r31; - void *var_r29 = object->data; + void *work = object->data; - for (var_r31 = 0; var_r31 < 1; var_r31++) { - Hu3DModelKill(object->model[var_r31]); + s32 i; + for (i = 0; i < 1; i++) { + Hu3DModelKill(object->model[i]); } - for (var_r31 = 0; var_r31 < 3; var_r31++) { - Hu3DMotionKill(object->motion[var_r31]); + for (i = 0; i < 3; i++) { + Hu3DMotionKill(object->motion[i]); } - HuMemDirectFree(var_r29); + HuMemDirectFree(work); } -void fn_1_45C0(omObjData *object, s32 arg1) +void PresentGuideExecModeSet(omObjData *object, s32 execMode) { - UnkPresentStruct5 *var_r31 = object->data; + GuideWork *work = object->data; - var_r31->unk_00 = arg1; - object->func = lbl_1_data_1A0[arg1]; + work->execMode = execMode; + object->func = execModeTbl[execMode]; object->unk10 = 0; object->unk10 = 0; } -s32 fn_1_4604(omObjData *object) +s32 PresentGuideExecModeGet(omObjData *object) { - UnkPresentStruct5 *var_r31 = object->data; + GuideWork *work = object->data; - return var_r31->unk_00; + return work->execMode; } -static void fn_1_4620(omObjData *object) +static void ExecGuideEnter(omObjData *object) { float var_f31; - UnkPresentStruct5 *var_r31 = object->data; + GuideWork *work = object->data; switch (object->unk10) { case 0: Hu3DModelAttrReset(object->model[0], 1); - var_r31->x = -300.0f; - var_r31->z = -180.0f; - var_r31->unk_48 = 0.0f; - var_r31->unk_4C = 0.025f; + work->pos.x = -300.0f; + work->pos.z = -180.0f; + work->time = 0.0f; + work->speed = 0.025f; object->unk10 = 1; case 1: - var_f31 = sind(90.0f * var_r31->unk_48); + var_f31 = sind(90.0f * work->time); var_f31 *= var_f31; - var_r31->unk_14 = -300.0f + (300.0f * var_f31); - var_r31->unk_2C = var_r31->unk_14 - var_r31->x; - if ((var_r31->unk_48 = var_r31->unk_48 + var_r31->unk_4C) < 1.0f) { + work->newPos.x = -300.0f + (300.0f * var_f31); + work->posDelta.x = work->newPos.x - work->pos.x; + if ((work->time += work->speed) < 1.0f) { break; } - var_r31->x = 0.0f; - var_r31->unk_48 = 0.0f; - var_r31->unk_4C = 0.05f; + work->pos.x = 0.0f; + work->time = 0.0f; + work->speed = 0.05f; object->unk10 = 2; case 2: - var_r31->unk_2C = 0.0f; - var_r31->unk_34 = 0.01f; - if ((var_r31->unk_48 = var_r31->unk_48 + var_r31->unk_4C) < 1.0f) { + work->posDelta.x = 0.0f; + work->posDelta.z = 0.01f; + if ((work->time += work->speed) < 1.0f) { break; } - var_r31->unk_24 = 0.0f; - var_r31->unk_2C = 0.0f; - var_r31->unk_30 = 0.0f; - var_r31->unk_34 = 0.0f; + work->rot.y = 0.0f; + work->posDelta.x = 0.0f; + work->posDelta.y = 0.0f; + work->posDelta.z = 0.0f; object->unk10 = 3; case 3: - fn_1_45C0(object, 0); + PresentGuideExecModeSet(object, PRESENT_GUIDE_MODE_NONE); break; default: break; } - fn_1_4A04(object); + UpdateGuide(object); } -static void fn_1_4880(omObjData *object) +static void ExecGuideLeave(omObjData *object) { - float var_f31; + float weight; - UnkPresentStruct5 *var_r30 = object->data; + GuideWork *work = object->data; switch (object->unk10) { case 0: - var_r30->unk_48 = 0.0f; - var_r30->unk_4C = 0.025f; + work->time = 0.0f; + work->speed = 0.025f; Hu3DModelAttrReset(object->model[0], 1); object->unk10 = 1; case 1: - var_f31 = sind(90.0f * var_r30->unk_48); - var_f31 *= var_f31; - var_r30->unk_14 = -(300.0f * var_f31); - var_r30->unk_2C = var_r30->unk_14 - var_r30->x; - if ((var_r30->unk_48 = var_r30->unk_48 + var_r30->unk_4C) < 1.0f) { + weight = sind(90.0f * work->time); + weight *= weight; + work->newPos.x = -(300.0f * weight); + work->posDelta.x = work->newPos.x - work->pos.x; + if ((work->time += work->speed) < 1.0f) { break; } object->unk10 = 2; case 2: Hu3DModelAttrSet(object->model[0], 1); - fn_1_45C0(object, 0); + PresentGuideExecModeSet(object, PRESENT_GUIDE_MODE_NONE); break; default: break; } - fn_1_4A04(object); + UpdateGuide(object); (void)object; } -static void fn_1_4A04(omObjData *object) +static void UpdateGuide(omObjData *object) { - UnkPresentStruct5 *var_r31 = object->data; - s16 var_r29 = 0; - float var_f30 = var_r31->unk_2C * var_r31->unk_2C + var_r31->unk_34 * var_r31->unk_34; + GuideWork *work = object->data; + s16 motion = 0; - var_r31->unk_38 = sqrtf(var_f30); - if (0.001f <= var_r31->unk_38) { - if (12.0f <= var_r31->unk_38) { - var_r31->unk_2C = var_r31->unk_2C / var_r31->unk_38; - var_r31->unk_34 = var_r31->unk_34 / var_r31->unk_38; - var_r31->unk_38 = 12.0f; - var_r31->unk_2C = 12.0f * var_r31->unk_2C; - var_r31->unk_34 = 12.0f * var_r31->unk_34; + work->distRemain = sqrtf(work->posDelta.x * work->posDelta.x + work->posDelta.z * work->posDelta.z); + if (0.001f <= work->distRemain) { + if (12.0f <= work->distRemain) { + work->posDelta.x /= work->distRemain; + work->posDelta.z /= work->distRemain; + work->distRemain = 12.0f; + work->posDelta.x = 12.0f * work->posDelta.x; + work->posDelta.z = 12.0f * work->posDelta.z; } - var_r31->unk_24 = fn_1_4CEC(var_r31->unk_24, atan2d(var_r31->unk_2C, var_r31->unk_34), 0.4f); + work->rot.y = LerpAngle(work->rot.y, atan2d(work->posDelta.x, work->posDelta.z), 0.4f); - if (8.0f <= var_r31->unk_38) { - var_r29 = 2; + if (8.0f <= work->distRemain) { + motion = 2; } else { - var_r29 = 1; + motion = 1; } } - var_r31->x = var_r31->x + var_r31->unk_2C; - var_r31->z = var_r31->z + var_r31->unk_34; - if (var_r31->unk_04 != var_r29) { - Hu3DMotionShiftSet(object->model[0], object->motion[var_r31->unk_04 = var_r29], 0.0f, 8.0f, 0x40000001); // or 0x41000000 + work->pos.x += work->posDelta.x; + work->pos.z += work->posDelta.z; + if (work->motion != motion) { + Hu3DMotionShiftSet(object->model[0], object->motion[work->motion = motion], 0.0f, 8.0f, 0x40000001); } - omSetTra(object, var_r31->x, var_r31->y, var_r31->z); - omSetRot(object, var_r31->unk_20, var_r31->unk_24, var_r31->unk_28); + omSetTra(object, work->pos.x, work->pos.y, work->pos.z); + omSetRot(object, work->rot.x, work->rot.y, work->rot.z); } -static float fn_1_4CEC(float arg8, float arg9, float argA) +static float LerpAngle(float start, float end, float time) { - float var_f30; + float angle; - float var_f31 = fmod(arg9 - arg8, 360.0f); - if (0.0f > var_f31) { - var_f31 += 360.0f; + float delta = fmod(end - start, 360.0f); + if (0.0f > delta) { + delta += 360.0f; } - if (180.0f < var_f31) { - var_f31 -= 360.0f; + if (180.0f < delta) { + delta -= 360.0f; } - var_f30 = fmod(arg8 + (var_f31 * argA), 360.0f); - if (0.0f > var_f30) { - var_f30 += 360.0f; + angle = fmod(start + (delta * time), 360.0f); + if (0.0f > angle) { + angle += 360.0f; } - return var_f30; + return angle; } diff --git a/src/REL/present/init.c b/src/REL/present/init.c index 17d98aa0..bdc5f551 100644 --- a/src/REL/present/init.c +++ b/src/REL/present/init.c @@ -8,158 +8,158 @@ #include "REL/present.h" -typedef struct UnkPresentStruct6 { - /* 0x00 */ s16 unk_00; - /* 0x04 */ float unk_04; - /* 0x08 */ float unk_08; -} UnkPresentStruct6; /* size 0x0C */ // looks like a struct in option/scene.c +typedef struct FaderWork { + /* 0x00 */ s16 id; + /* 0x04 */ float tplvl; + /* 0x08 */ float speed; +} FaderWork; /* size 0x0C */ // same as in option/scene.c -typedef struct UnkPresentStruct6Weird { - /* 0x00 */ s16 unk_00; - /* 0x04 */ float unk_04; - /* 0x08 */ float unk_08; - /* 0x0C */ float unk_0C; -} UnkPresentStruct6Weird; /* size = 0x10 */ // looks like a struct in option/scene.c +typedef struct FaderWork2 { + /* 0x00 */ s16 id; + /* 0x04 */ float tpMultiplier; + /* 0x08 */ float tplvl; + /* 0x0C */ float speed; +} FaderWork2; /* size = 0x10 */ -omObjData *lbl_1_bss_18; +omObjData *presentState; omObjData *lbl_1_bss_14; -omObjData *lbl_1_bss_10; +omObjData *present; omObjData *lbl_1_bss_C; -omObjData *lbl_1_bss_8; -Process *lbl_1_bss_4; -omObjData *lbl_1_bss_0; +omObjData *presentCamera; +Process *presentObjMan; +static omObjData *scene; -static void fn_1_254(void); -static void fn_1_45C(void); -static void fn_1_5EC(omObjData *object); +static void FadeSprite(void); +static void FadeModel(void); +static void SceneMain(omObjData *object); void ObjectSetup(void) { - lbl_1_bss_4 = omInitObjMan(150, 8192); - omGameSysInit(lbl_1_bss_4); + presentObjMan = omInitObjMan(150, 8192); + omGameSysInit(presentObjMan); HuWinInit(1); - lbl_1_bss_0 = omAddObjEx(lbl_1_bss_4, 1000, 0, 0, 0, fn_1_5EC); - lbl_1_bss_0->unk10 = 0; - lbl_1_bss_18 = fn_1_39A8(); + scene = omAddObjEx(presentObjMan, 1000, 0, 0, 0, SceneMain); + scene->unk10 = 0; + presentState = PresentStateCreate(); } -void fn_1_144(s16 arg0, s32 arg1, s32 arg2) +void PresentFadeSprite(s16 sprite, BOOL inF, s32 duration) { - Process *var_r30; + Process *process; - UnkPresentStruct6 *var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkPresentStruct6), MEMORY_DEFAULT_NUM); - var_r31->unk_00 = arg0; - var_r31->unk_08 = 1.0f / arg2; - if (arg1) { - var_r31->unk_08 = var_r31->unk_08; - var_r31->unk_04 = 0.0f; + FaderWork *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(FaderWork), MEMORY_DEFAULT_NUM); + work->id = sprite; + work->speed = 1.0f / duration; + if (inF) { + work->speed = work->speed; + work->tplvl = 0.0f; } else { - var_r31->unk_08 = -var_r31->unk_08; - var_r31->unk_04 = 1.0f; + work->speed = -work->speed; + work->tplvl = 1.0f; } - espDispOn(var_r31->unk_00); - espTPLvlSet(var_r31->unk_00, var_r31->unk_04); - var_r30 = HuPrcChildCreate(fn_1_254, 100, 5376, 0, HuPrcCurrentGet()); - var_r30->user_data = var_r31; + espDispOn(work->id); + espTPLvlSet(work->id, work->tplvl); + process = HuPrcChildCreate(FadeSprite, 100, 5376, 0, HuPrcCurrentGet()); + process->user_data = work; } -static void fn_1_254(void) +static void FadeSprite(void) { - UnkPresentStruct6 *var_r31 = HuPrcCurrentGet()->user_data; + FaderWork *work = HuPrcCurrentGet()->user_data; while (TRUE) { - var_r31->unk_04 = var_r31->unk_04 + var_r31->unk_08; - if (var_r31->unk_04 > 1.0f) { - var_r31->unk_04 = 1.0f; + work->tplvl = work->tplvl + work->speed; + if (work->tplvl > 1.0f) { + work->tplvl = 1.0f; break; } - else if (var_r31->unk_04 < 0.0f) { - var_r31->unk_04 = 0.0f; + else if (work->tplvl < 0.0f) { + work->tplvl = 0.0f; break; } else { - espTPLvlSet(var_r31->unk_00, var_r31->unk_04); + espTPLvlSet(work->id, work->tplvl); HuPrcVSleep(); } } - espTPLvlSet(var_r31->unk_00, var_r31->unk_04); - if (var_r31->unk_08 < 0.0f) { - espDispOff(var_r31->unk_00); + espTPLvlSet(work->id, work->tplvl); + if (work->speed < 0.0f) { + espDispOff(work->id); + } + HuMemDirectFree(work); + HuPrcEnd(); +} + +void FadeSpriteWithMultiplier(s16 model, BOOL inF, float tpMultiplier, s32 duration) +{ + Process *process; + // bug: wrong struct in sizeof + FaderWork2 *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(FaderWork), MEMORY_DEFAULT_NUM); + work->id = model; + work->speed = 1.0f / duration; + work->tpMultiplier = tpMultiplier; + + if (inF) { + work->speed = work->speed; + work->tplvl = 0.0f; + } + else { + work->speed = -work->speed; + work->tplvl = 1.0f; + } + Hu3DModelTPLvlSet(work->id, work->tplvl * work->tpMultiplier); + Hu3DModelAttrReset(work->id, 1); + process = HuPrcChildCreate(FadeModel, 100, 5376, 0, HuPrcCurrentGet()); + process->user_data = work; +} + +static void FadeModel(void) +{ + FaderWork2 *var_r31 = HuPrcCurrentGet()->user_data; + + while (TRUE) { + var_r31->tplvl += var_r31->speed; + if (var_r31->tplvl > 1.0f) { + var_r31->tplvl = 1.0f; + break; + } + else if (var_r31->tplvl < 0.0f) { + var_r31->tplvl = 0.0f; + break; + } + else { + Hu3DModelTPLvlSet(var_r31->id, var_r31->tplvl * var_r31->tpMultiplier); + HuPrcVSleep(); + } + } + Hu3DModelTPLvlSet(var_r31->id, var_r31->tplvl * var_r31->tpMultiplier); + if (var_r31->speed < 0.0f) { + Hu3DModelAttrSet(var_r31->id, 1); } HuMemDirectFree(var_r31); HuPrcEnd(); } -void fn_1_334(s16 arg0, s32 arg1, float arg8, s32 arg2) +BOOL PresentPadCheck(u16 btn) { - Process *var_r30; - // TODO correct type? why are only 12 bytes allocated? - UnkPresentStruct6Weird *var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 12, MEMORY_DEFAULT_NUM); - var_r31->unk_00 = arg0; - var_r31->unk_0C = 1.0f / arg2; - var_r31->unk_04 = arg8; - - if (arg1) { - var_r31->unk_0C = var_r31->unk_0C; - var_r31->unk_08 = 0.0f; - } - else { - var_r31->unk_0C = -var_r31->unk_0C; - var_r31->unk_08 = 1.0f; - } - Hu3DModelTPLvlSet(var_r31->unk_00, var_r31->unk_08 * var_r31->unk_04); - Hu3DModelAttrReset(var_r31->unk_00, 1); - var_r30 = HuPrcChildCreate(fn_1_45C, 100, 5376, 0, HuPrcCurrentGet()); - var_r30->user_data = var_r31; -} - -static void fn_1_45C(void) -{ - UnkPresentStruct6Weird *var_r31 = HuPrcCurrentGet()->user_data; - - while (TRUE) { - var_r31->unk_08 = var_r31->unk_08 + var_r31->unk_0C; - if (var_r31->unk_08 > 1.0f) { - var_r31->unk_08 = 1.0f; - break; - } - else if (var_r31->unk_08 < 0.0f) { - var_r31->unk_08 = 0.0f; - break; - } - else { - Hu3DModelTPLvlSet(var_r31->unk_00, var_r31->unk_08 * var_r31->unk_04); - HuPrcVSleep(); - } - } - Hu3DModelTPLvlSet(var_r31->unk_00, var_r31->unk_08 * var_r31->unk_04); - if (var_r31->unk_0C < 0.0f) { - Hu3DModelAttrSet(var_r31->unk_00, 1); - } - HuMemDirectFree(var_r31); - HuPrcEnd(); -} - -s32 fn_1_550(u16 arg0) -{ - u32 var_r31 = HuPadBtnDown[0] & arg0; + u32 var_r31 = HuPadBtnDown[0] & btn; return var_r31 != 0; } -s32 fn_1_584(u16 arg0) +BOOL PresentPadDStkRepCheck(u16 dir) { - u32 var_r31 = HuPadDStkRep[0] & arg0; + u32 var_r31 = HuPadDStkRep[0] & dir; return var_r31 != 0; } -s32 fn_1_5B8(u16 arg0) +BOOL PresentPadDStkCheck(u16 dir) { - u32 var_r31 = HuPadDStk[0] & arg0; + u32 var_r31 = HuPadDStk[0] & dir; return var_r31 != 0; } -static void fn_1_5EC(omObjData *object) +static void SceneMain(omObjData *object) { switch (object->unk10) { case 0: @@ -176,7 +176,7 @@ static void fn_1_5EC(omObjData *object) break; case 3: if (!WipeStatGet()) { - fn_1_3B18(lbl_1_bss_18); + PresentStateKill(presentState); omOvlReturnEx(1, 1); } break; diff --git a/src/REL/present/main.c b/src/REL/present/main.c index ae26fdd9..0d39435e 100644 --- a/src/REL/present/main.c +++ b/src/REL/present/main.c @@ -7,69 +7,74 @@ #include "REL/present.h" -typedef struct UnkPresentStruct { - /* 0x00 */ UnkWindowDataStruct *unk_00; - /* 0x04 */ s32 unk_04; -} UnkPresentStruct; /* size = 0x08 */ +typedef struct StateWork { + /* 0x00 */ PresentWindow *window; + /* 0x04 */ s32 quitTimer; +} StateWork; /* size = 0x08 */ -typedef struct UnkPresentStruct4 { - /* 0x00 */ Vec unk_00; - /* 0x0C */ Vec unk_0C; - /* 0x18 */ Vec unk_18; -} UnkPresentStruct4; /* size = 0x1C */ +typedef struct UnkShadowDataStruct { + /* 0x00 */ Vec pos; + /* 0x0C */ Vec up; + /* 0x18 */ Vec target; +} UnkShadowDataStruct; /* size = 0x24 */ -omObjData *lbl_1_bss_20; +omObjData *presentGuide; -UnkPresentStruct4 lbl_1_data_F0 = { { 0.0f, 3000.0f, 1.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } }; +static UnkShadowDataStruct shadowPosTbl = { + { 0.0f, 3000.0f, 1.0f }, + { 0.0f, 1.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, +}; -static void fn_1_3B8C(omObjData *object); -static void fn_1_3DB8(omObjData *object); -static void fn_1_4190(UnkWindowDataStruct *arg0); -static void fn_1_41BC(UnkWindowDataStruct *arg0, s32 arg1); -static void fn_1_41E0(void); +static void ExecPresentView(omObjData *object); +static void ExecPresentGet(omObjData *object); +void PresentWinDispOff(PresentWindow *work); +void PresentWinChoiceSet(PresentWindow *work, s32 choice); +static void ExecWindow(void); -omObjData *fn_1_39A8(void) +omObjData *PresentStateCreate(void) { - omObjData *object = omAddObjEx(lbl_1_bss_4, 1000, 0, 0, 4, NULL); - UnkPresentStruct *var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkPresentStruct), MEMORY_DEFAULT_NUM); - object->data = var_r30; + omObjData *object = omAddObjEx(presentObjMan, 1000, 0, 0, 4, NULL); + StateWork *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(StateWork), MEMORY_DEFAULT_NUM); + object->data = work; - var_r30->unk_04 = 0; - lbl_1_bss_8 = fn_1_6B4(); - lbl_1_bss_10 = fn_1_1458(); - lbl_1_bss_20 = fn_1_42F4(); - var_r30->unk_00 = fn_1_3EA4(0); + work->quitTimer = 0; + presentCamera = PresentCameraCreate(); + present = PresentCreate(); + presentGuide = PresentGuideCreate(); + work->window = PresentWinCreate(0); Hu3DShadowCreate(30.0f, 20.0f, 5000.0f); Hu3DShadowTPLvlSet(0.45f); - Hu3DShadowPosSet(&lbl_1_data_F0.unk_00, &lbl_1_data_F0.unk_0C, &lbl_1_data_F0.unk_18); + Hu3DShadowPosSet(&shadowPosTbl.pos, &shadowPosTbl.up, &shadowPosTbl.target); + if (omovlevtno > 0) { OSReport("*** PRESENTROOM ( PRESENT GET MODE ) ***\n"); - object->func = fn_1_3DB8; + object->func = ExecPresentGet; object->unk10 = 0; } else { OSReport("*** PRESENTROOM ( PRESENT VIEW MODE ) ***\n"); - object->func = fn_1_3B8C; + object->func = ExecPresentView; object->unk10 = 0; } return object; } -void fn_1_3B18(omObjData *object) +void PresentStateKill(omObjData *object) { - UnkWindowDataStruct **var_r31 = object->data; + PresentWindow **var_r31 = object->data; - fn_1_8F0(lbl_1_bss_8); - fn_1_1784(lbl_1_bss_10); - fn_1_4534(lbl_1_bss_20); - fn_1_4040(*var_r31); + PresentCameraKill(presentCamera); + PresentKill(present); + PresentGuideKill(presentGuide); + PresentWinKill(*var_r31); HuMemDirectFree(var_r31); } -static void fn_1_3B8C(omObjData *object) +static void ExecPresentView(omObjData *object) { - UnkPresentStruct *var_r30 = object->data; + StateWork *work = object->data; switch (object->unk10) { case 0: @@ -81,39 +86,39 @@ static void fn_1_3B8C(omObjData *object) } object->unk10 = 2; case 2: - fn_1_180C(lbl_1_bss_10, 1); + PresentExecModeSet(present, 1); object->unk10 = 3; case 3: - if (fn_1_1850(lbl_1_bss_10)) { + if (PresentExecModeGet(present)) { return; } object->unk10 = 4; case 4: - fn_1_45C0(lbl_1_bss_20, 1); + PresentGuideExecModeSet(presentGuide, PRESENT_GUIDE_MODE_ENTER); object->unk10 = 5; case 5: - if (fn_1_4604(lbl_1_bss_20)) { + if (PresentGuideExecModeGet(presentGuide)) { return; } object->unk10 = 6; case 6: HuAudFXPlay(66); - fn_1_4080(var_r30->unk_00); - fn_1_40B0(var_r30->unk_00, 0x320002); + PresentWinAnimIn(work->window); + PresentWinMesSet(work->window, 0x320002); object->unk10 = 7; case 7: - if (var_r30->unk_00->unk_20) { + if (work->window->state) { return; } - fn_1_41BC(var_r30->unk_00, 1); + PresentWinChoiceSet(work->window, 1); object->unk10 = 8; case 8: - if (var_r30->unk_00->unk_20) { + if (work->window->state) { return; } - fn_1_4098(var_r30->unk_00); - if (!var_r30->unk_00->choice) { - var_r30->unk_04 = 0; + PresentWinAnimOut(work->window); + if (!work->window->choice) { + work->quitTimer = 0; object->unk10 = 11; return; } @@ -122,23 +127,23 @@ static void fn_1_3B8C(omObjData *object) return; } case 9: - fn_1_45C0(lbl_1_bss_20, 2); + PresentGuideExecModeSet(presentGuide, PRESENT_GUIDE_MODE_LEAVE); object->unk10 = 10; return; case 10: - if (fn_1_4604(lbl_1_bss_20)) { + if (PresentGuideExecModeGet(presentGuide)) { return; } object->unk10 = 2; return; case 11: object->unk10 = 12; - var_r30->unk_04 = 0; + work->quitTimer = 0; case 12: - if (var_r30->unk_00->unk_20) { + if (work->window->state) { return; } - if (var_r30->unk_04++ >= 60) { + if (work->quitTimer++ >= 60) { omSysExitReq = 1; object->func = NULL; object->unk10 = 0; @@ -148,48 +153,48 @@ static void fn_1_3B8C(omObjData *object) } } -static void fn_1_3DB8(omObjData *arg0) +static void ExecPresentGet(omObjData *object) { - void *sp8 = arg0->data; + void *sp8 = object->data; - switch (arg0->unk10) { + switch (object->unk10) { case 0: - fn_1_186C(lbl_1_bss_10, omovlevtno - 1); - arg0->unk10 = 1; + PresentSelectedIDSet(present, omovlevtno - 1); + object->unk10 = 1; case 1: - fn_1_180C(lbl_1_bss_10, 3); - arg0->unk10 = 2; + PresentExecModeSet(present, PRESENT_MODE_GET); + object->unk10 = 2; case 2: - if (!fn_1_1850(lbl_1_bss_10)) { - arg0->unk10 = 3; + if (PresentExecModeGet(present) == PRESENT_MODE_NONE) { + object->unk10 = 3; } else { break; } case 3: - arg0->unk10 = 4; + object->unk10 = 4; case 4: omSysExitReq = 1; - arg0->func = NULL; - arg0->unk10 = 0; + object->func = NULL; + object->unk10 = 0; break; default: break; } } -UnkWindowDataStruct *fn_1_3EA4(s32 arg0) +PresentWindow *PresentWinCreate(s32 id) { - UnkWindowDataStruct *var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkWindowDataStruct), MEMORY_DEFAULT_NUM); + PresentWindow *var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(PresentWindow), MEMORY_DEFAULT_NUM); - var_r31->unk18 = 0; - var_r31->unk10 = 0; - var_r31->unk14 = 0; - var_r31->unk_20 = 0; - var_r31->process = HuPrcChildCreate(fn_1_41E0, 1000, 8192, 0, lbl_1_bss_4); + var_r31->messToBeSet = 0; + var_r31->messWaitSignal = 0; + var_r31->choiceSignal = 0; + var_r31->state = 0; + var_r31->process = HuPrcChildCreate(ExecWindow, 1000, 8192, 0, presentObjMan); var_r31->process->user_data = var_r31; - var_r31->unk08 = arg0; - switch (arg0) { + var_r31->id = id; + switch (id) { case 0: var_r31->window = HuWinExCreateStyled(-10000.0f, 360.0f, 480, 80, -1, 1); HuWinBGTPLvlSet(var_r31->window, 0.8f); @@ -204,112 +209,112 @@ UnkWindowDataStruct *fn_1_3EA4(s32 arg0) break; } HuWinDrawNoSet(var_r31->window, 63); - fn_1_4190(var_r31); + PresentWinDispOff(var_r31); HuSprExecLayerSet(63, 2); return var_r31; } -void fn_1_4040(UnkWindowDataStruct *windowData) +void PresentWinKill(PresentWindow *work) { - HuWinExCleanup(windowData->window); - HuPrcKill(windowData->process); - HuMemDirectFree(windowData); + HuWinExCleanup(work->window); + HuPrcKill(work->process); + HuMemDirectFree(work); } -void fn_1_4080(UnkWindowDataStruct *windowData) +void PresentWinAnimIn(PresentWindow *work) { - if (!windowData->unk0C) { - windowData->unk_20 = 1; + if (!work->visible) { + work->state = 1; } } -void fn_1_4098(UnkWindowDataStruct *windowData) +void PresentWinAnimOut(PresentWindow *work) { - if (windowData->unk0C) { - windowData->unk_20 = 2; + if (work->visible) { + work->state = 2; } } -void fn_1_40B0(UnkWindowDataStruct *windowData, u32 mess) +void PresentWinMesSet(PresentWindow *work, u32 mess) { - if (!windowData->unk_20) { - HuWinMesSet(windowData->window, mess); + if (!work->state) { + HuWinMesSet(work->window, mess); return; } - windowData->unk18 = mess; + work->messToBeSet = mess; } -void fn_1_4104(UnkWindowDataStruct *windowData, u32 mess, s16 index) +void PresentWinInsertMesSet(PresentWindow *work, u32 mess, s16 index) { - HuWinInsertMesSet(windowData->window, mess, index); + HuWinInsertMesSet(work->window, mess, index); } -static void fn_1_4144(UnkWindowDataStruct *windowData, float x, float y) +void PresentWinPosSet(PresentWindow *work, float x, float y) { - HuWinPosSet(windowData->window, x, y); + HuWinPosSet(work->window, x, y); } -static void fn_1_4184(UnkWindowDataStruct *windowData) +void PresentWinDispOn(PresentWindow *work) { - windowData->unk0C = 1; + work->visible = TRUE; } -static void fn_1_4190(UnkWindowDataStruct *windowData) +void PresentWinDispOff(PresentWindow *work) { - windowData->unk0C = 0; + work->visible = FALSE; } -void fn_1_419C(UnkWindowDataStruct *windowData) +void PresentWinMesWait(PresentWindow *work) { - if (!windowData->unk_20) { - windowData->unk_20 = 3; + if (!work->state) { + work->state = 3; } - windowData->unk10 = 1; + work->messWaitSignal = 1; } -static void fn_1_41BC(UnkWindowDataStruct *windowData, s32 arg1) +void PresentWinChoiceSet(PresentWindow *work, s32 choice) { - if (!windowData->unk_20) { - windowData->unk_20 = 4; + if (!work->state) { + work->state = 4; } - windowData->unk14 = 1; - windowData->choice = arg1; + work->choiceSignal = 1; + work->choice = choice; } -static void fn_1_41E0(void) +static void ExecWindow(void) { - UnkWindowDataStruct *windowData = HuPrcCurrentGet()->user_data; + PresentWindow *work = HuPrcCurrentGet()->user_data; while (TRUE) { - switch (windowData->unk_20) { + switch (work->state) { case 1: - windowData->unk0C = 1; - HuWinExAnimIn(windowData->window); + work->visible = 1; + HuWinExAnimIn(work->window); break; case 2: - HuWinExAnimOut(windowData->window); - windowData->unk0C = 0; + HuWinExAnimOut(work->window); + work->visible = 0; break; case 3: - winData[windowData->window].active_pad = 1; - HuWinMesWait(windowData->window); - windowData->unk10 = 0; + winData[work->window].active_pad = 1; + HuWinMesWait(work->window); + work->messWaitSignal = 0; break; case 4: - windowData->choice = HuWinChoiceGet(windowData->window, windowData->choice); - windowData->unk14 = 0; + work->choice = HuWinChoiceGet(work->window, work->choice); + work->choiceSignal = 0; break; } - if (windowData->unk18 != 0) { - HuWinMesSet(windowData->window, windowData->unk18); - windowData->unk18 = 0; + if (work->messToBeSet != 0) { + HuWinMesSet(work->window, work->messToBeSet); + work->messToBeSet = 0; } - windowData->unk_20 = 0; - if (windowData->unk10 != 0) { - windowData->unk_20 = 3; + work->state = 0; + if (work->messWaitSignal != 0) { + work->state = 3; } - if (windowData->unk14 != 0) { - windowData->unk_20 = 4; + if (work->choiceSignal != 0) { + work->state = 4; } HuPrcVSleep(); } diff --git a/src/REL/present/present.c b/src/REL/present/present.c index 79d8ba9c..55adf107 100644 --- a/src/REL/present/present.c +++ b/src/REL/present/present.c @@ -8,88 +8,240 @@ #include "REL/present.h" -typedef struct UnkPresentStruct2 { - /* 0x00 */ s32 unk_00; - /* 0x04 */ s32 unk_04; - /* 0x08 */ s32 unk_08; - /* 0x0C */ s32 unk_0C; - /* 0x10 */ omObjData *unk_10[134]; - /* 0x228 */ UnkWindowDataStruct *unk_228; - /* 0x22C */ UnkWindowDataStruct *unk_22C; - /* 0x230 */ s16 sprite; - /* 0x234 */ s32 unk_234; - /* 0x238 */ s32 unk_238; - /* 0x23C */ float unk_23C; - /* 0x240 */ float unk_240; - /* 0x244 */ float unk_244; - /* 0x248 */ float unk_248; - /* 0x24C */ float unk_24C; - /* 0x250 */ float unk_250; - /* 0x254 */ float unk_254; - /* 0x258 */ float unk_258; - /* 0x25C */ float unk_25C; - /* 0x260 */ float unk_260; - /* 0x264 */ float unk_264; - /* 0x268 */ float unk_268; - /* 0x26C */ float unk_26C; - /* 0x270 */ s32 unk_270[60]; -} UnkPresentStruct2; /* size = 0x3F0 */ +#define NUM_CHARACTERS 8 -typedef struct UnkPresentStruct3 { - /* 0x00 */ Vec unk_00; - /* 0x0C */ Vec unk_0C; - /* 0x18 */ GXColor unk_18; -} UnkPresentStruct3; /* size = 0x1C */ // same as option::state::UnkLightDataStruct +#define PRESENT_MDL_MAX 134 +#define PRESENT_MAX 60 -typedef struct UnkPresentNestedInnerStruct { - /* 0x00 */ s32 unk_00; - /* 0x04 */ s32 unk_04; - /* 0x08 */ s32 unk08; - /* 0x0C */ s32 unk_0C; -} UnkPresentNestedInnerStruct; /* size = 0x10 */ +#define PRESENT_COUNT_CHAR_ROOM 6 +#define PRESENT_COUNT_MG_ROOM 11 -typedef struct UnkPresentNestedOuterStruct { - /* 0x00 */ s32 unk00; - /* 0x04 */ UnkPresentNestedInnerStruct unk_04[11]; -} UnkPresentNestedOuterStruct; /* size = 0x08 */ +#define PRESENT_CONSTELLATION 5 -typedef struct UnkPresentStruct7 { - /* 0x00 */ s32 unk_00; - /* 0x04 */ float unk_04; -} UnkPresentStruct7; /* size = 0x08 */ +#define ROOM_MARIO 0 +#define ROOM_LUIGI 1 +#define ROOM_PEACH 2 +#define ROOM_YOSHI 3 +#define ROOM_WARIO 4 +#define ROOM_TROPHY 5 +#define ROOM_DK 6 +#define ROOM_DAISY 7 +#define ROOM_WALUIGI 8 +#define ROOM_MG 9 +#define ROOM_MAX 9 -static void fn_1_1928(omObjData *arg0); -static void fn_1_1FA8(omObjData *object, s32 arg1); -static void fn_1_20E8(omObjData *arg0); -static void fn_1_268C(omObjData *object, float *arg1, float *arg2, float *arg3); -static void fn_1_2708(omObjData *arg0, float arg8, s32 arg1); -static void fn_1_2774 (omObjData *arg0); -static s32 fn_1_28F0 (omObjData *object); -static void fn_1_2924(omObjData *object); -static s32 fn_1_2B84(omObjData *arg0, s32 arg1, s32 arg2); -static s32 fn_1_2BCC(omObjData *object, s32 arg1); -static s32 fn_1_2C5C(omObjData *object, s32 arg1); -static s32 fn_1_3394(s32 arg0); -static void fn_1_33AC(omObjData *arg0); +#define ROOM_CHANGE_LEFT 1 +#define ROOM_CHANGE_RIGHT 2 + +typedef struct PresentWork { + /* 0x00 */ BOOL cursorVisibleF; + /* 0x04 */ BOOL roomNotEmptyF; + /* 0x08 */ BOOL constellationSelF; + /* 0x0C */ s32 execMode; + /* 0x10 */ omObjData *object[PRESENT_MDL_MAX]; + /* 0x228 */ PresentWindow *presentDescWindow; + /* 0x22C */ PresentWindow *btnLegendWindow; + /* 0x230 */ s16 cursor; + /* 0x234 */ s32 room; + /* 0x238 */ s32 idxInRoom; + /* 0x23C */ float rot; + /* 0x240 */ float rotPrev; + /* 0x244 */ float rotTarget; + /* 0x248 */ float timeRot; + /* 0x24C */ float presentFallingTime; + /* 0x250 */ float rotSpeed; + /* 0x254 */ float presentFallingSpeed; + /* 0x258 */ float cursorTime; + /* 0x25C */ float cursorSpeed; + /* 0x260 */ Vec2f cursorPos; + /* 0x268 */ Vec2f newCursorPos; + /* 0x270 */ BOOL presentUnlockedF[PRESENT_MAX]; + /* 0x360 */ char unk360[4]; +} PresentWork; /* size = 0x364 */ + +typedef struct UnkLightDataStruct { + /* 0x00 */ Vec src; + /* 0x0C */ Vec dest; + /* 0x18 */ GXColor color; +} UnkLightDataStruct; /* size = 0x1C */ // same as option::state::UnkLightDataStruct + +typedef struct PresentData { + /* 0x00 */ s32 cursorPosIdx; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 nameMess; + /* 0x0C */ s32 descMess; +} PresentData; /* size = 0x10 */ + +typedef struct RoomData { + /* 0x00 */ s32 presentCount; + /* 0x04 */ PresentData presentData[11]; +} RoomData; /* size = 0xB4 */ + +typedef struct PresentDistanceStruct { + /* 0x00 */ s32 present; + /* 0x04 */ float distance; +} PresentDistanceStruct; /* size = 0x08 */ + +static void ExecSelectRoom(omObjData *object); +static void ChangeRoom(omObjData *object, s32 direction); +static void ExecSelectPresent(omObjData *object); +static void GetCursorPos(omObjData *object, float *x, float *y, float *z); +static void SetCameraRot(omObjData *object, float rot, s32 duration); +static void RotateCamera(omObjData *object); +static BOOL CameraRotationDoneCheck(omObjData *object); +static void ShowHidePresents(omObjData *object); +static BOOL PresentUnlocked(omObjData *object, s32 room, s32 present); +static s32 UnlockedPresents(omObjData *object, s32 room); +static s32 MoveCursor(omObjData *object, s32 arg1); +static s32 TotalPresentsInRoom(s32 room); +static void ExecPresentGet(omObjData *object); static s32 fn_1_393C(s32 arg0, s32 arg1); -UnkPresentStruct3 lbl_1_data_50 = { { 0.0f, 400.0f, 0.0f }, { 0.0f, -400.0f, -500.0f }, { 255, 255, 255, 255 } }; -omObjFunc lbl_1_data_6C[] = { NULL, fn_1_1928, fn_1_20E8, fn_1_33AC }; +static UnkLightDataStruct lightTbl = { + { 0.0f, 400.0f, 0.0f }, + { 0.0f, -400.0f, -500.0f }, + { 255, 255, 255, 255 }, +}; +static omObjFunc execModeTbl[] = { NULL, ExecSelectRoom, ExecSelectPresent, ExecPresentGet }; -static const s32 lbl_1_rodata_A0[] = { 0x006E006C, 0x006E006B, 0x006E0000, 0x006E0001, 0x006E0002, 0x006E0003, 0x006E0004, 0x006E0005, 0x006E0006, - 0x006E0007, 0x006E0008, 0x006E0009, 0x006E000A, 0x006E000B, 0x006E000C, 0x006E000D, 0x006E000E, 0x006E000F, 0x006E0010, 0x006E0011, 0x006E0012, - 0x006E0013, 0x006E0014, 0x006E0015, 0x006E0016, 0x006E0017, 0x006E0018, 0x006E0019, 0x006E001A, 0x006E001B, 0x006E001C, 0x006E001D, 0x006E001E, - 0x006E001F, 0x006E0020, 0x006E0021, 0x006E0022, 0x006E0023, 0x006E0024, 0x006E0025, 0x006E0026, 0x006E0027, 0x006E0028, 0x006E0029, 0x006E002A, - 0x006E002B, 0x006E002C, 0x006E002D, 0x006E002E, 0x006E002F, 0x006E0030, 0x006E0031, 0x006E0032, 0x006E0033, 0x006E0034, 0x006E0035, 0x006E0036, - 0x006E0037, 0x006E0038, 0x006E0039, 0x006E003A, 0x006E003B, 0x006E003C, 0x006E003D, 0x006E003E, 0x006E003F, 0x006E0040, 0x006E0041, 0x006E0042, - 0x006E0043, 0x006E0044, 0x006E0045, 0x006E0046, 0x006E0047, 0x006E0048, 0x006E0049, 0x006E004A, 0x006E004B, 0x006E004C, 0x006E004D, 0x006E004E, - 0x006E004F, 0x006E0050, 0x006E0051, 0x006E0052, 0x006E0053, 0x006E0054, 0x006E0055, 0x006E0056, 0x006E0057, 0x006E0058, 0x006E0059, 0x006E005A, - 0x006E005B, 0x006E005C, 0x006E005D, 0x006E005E, 0x006E005F, 0x006E0060, 0x006E0061, 0x006E0062, 0x006E0063, 0x006E0064, 0x006E0065, 0x006E0066, - 0x006E0067, 0x006E0068, 0x006E0069, 0x006E006A, 0x006E006D, 0x006E006F, 0x006E0071, 0x006E0073, 0x006E0075, 0x006E0077, 0x006E0079, 0x006E007B, - 0x006E007D, 0x006E006E, 0x006E0070, 0x006E0072, 0x006E0074, 0x006E0076, 0x006E0078, 0x006E007A, 0x006E007C, 0x006E007F, 0x006E0080, 0x006E0081, - 0x006E0082, 0x006E0083, 0x006E0084, 0x006E0085, 0x006E0086 }; +static const s32 presentMdlTbl[PRESENT_MDL_MAX] = { + DATA_MAKE_NUM(DATADIR_PRESENT, 108), + DATA_MAKE_NUM(DATADIR_PRESENT, 107), + DATA_MAKE_NUM(DATADIR_PRESENT, 0), + DATA_MAKE_NUM(DATADIR_PRESENT, 1), + DATA_MAKE_NUM(DATADIR_PRESENT, 2), + DATA_MAKE_NUM(DATADIR_PRESENT, 3), + DATA_MAKE_NUM(DATADIR_PRESENT, 4), + DATA_MAKE_NUM(DATADIR_PRESENT, 5), + DATA_MAKE_NUM(DATADIR_PRESENT, 6), + DATA_MAKE_NUM(DATADIR_PRESENT, 7), + DATA_MAKE_NUM(DATADIR_PRESENT, 8), + DATA_MAKE_NUM(DATADIR_PRESENT, 9), + DATA_MAKE_NUM(DATADIR_PRESENT, 10), + DATA_MAKE_NUM(DATADIR_PRESENT, 11), + DATA_MAKE_NUM(DATADIR_PRESENT, 12), + DATA_MAKE_NUM(DATADIR_PRESENT, 13), + DATA_MAKE_NUM(DATADIR_PRESENT, 14), + DATA_MAKE_NUM(DATADIR_PRESENT, 15), + DATA_MAKE_NUM(DATADIR_PRESENT, 16), + DATA_MAKE_NUM(DATADIR_PRESENT, 17), + DATA_MAKE_NUM(DATADIR_PRESENT, 18), + DATA_MAKE_NUM(DATADIR_PRESENT, 19), + DATA_MAKE_NUM(DATADIR_PRESENT, 20), + DATA_MAKE_NUM(DATADIR_PRESENT, 21), + DATA_MAKE_NUM(DATADIR_PRESENT, 22), + DATA_MAKE_NUM(DATADIR_PRESENT, 23), + DATA_MAKE_NUM(DATADIR_PRESENT, 24), + DATA_MAKE_NUM(DATADIR_PRESENT, 25), + DATA_MAKE_NUM(DATADIR_PRESENT, 26), + DATA_MAKE_NUM(DATADIR_PRESENT, 27), + DATA_MAKE_NUM(DATADIR_PRESENT, 28), + DATA_MAKE_NUM(DATADIR_PRESENT, 29), + DATA_MAKE_NUM(DATADIR_PRESENT, 30), + DATA_MAKE_NUM(DATADIR_PRESENT, 31), + DATA_MAKE_NUM(DATADIR_PRESENT, 32), + DATA_MAKE_NUM(DATADIR_PRESENT, 33), + DATA_MAKE_NUM(DATADIR_PRESENT, 34), + DATA_MAKE_NUM(DATADIR_PRESENT, 35), + DATA_MAKE_NUM(DATADIR_PRESENT, 36), + DATA_MAKE_NUM(DATADIR_PRESENT, 37), + DATA_MAKE_NUM(DATADIR_PRESENT, 38), + DATA_MAKE_NUM(DATADIR_PRESENT, 39), + DATA_MAKE_NUM(DATADIR_PRESENT, 40), + DATA_MAKE_NUM(DATADIR_PRESENT, 41), + DATA_MAKE_NUM(DATADIR_PRESENT, 42), + DATA_MAKE_NUM(DATADIR_PRESENT, 43), + DATA_MAKE_NUM(DATADIR_PRESENT, 44), + DATA_MAKE_NUM(DATADIR_PRESENT, 45), + DATA_MAKE_NUM(DATADIR_PRESENT, 46), + DATA_MAKE_NUM(DATADIR_PRESENT, 47), + DATA_MAKE_NUM(DATADIR_PRESENT, 48), + DATA_MAKE_NUM(DATADIR_PRESENT, 49), + DATA_MAKE_NUM(DATADIR_PRESENT, 50), + DATA_MAKE_NUM(DATADIR_PRESENT, 51), + DATA_MAKE_NUM(DATADIR_PRESENT, 52), + DATA_MAKE_NUM(DATADIR_PRESENT, 53), + DATA_MAKE_NUM(DATADIR_PRESENT, 54), + DATA_MAKE_NUM(DATADIR_PRESENT, 55), + DATA_MAKE_NUM(DATADIR_PRESENT, 56), + DATA_MAKE_NUM(DATADIR_PRESENT, 57), + DATA_MAKE_NUM(DATADIR_PRESENT, 58), + DATA_MAKE_NUM(DATADIR_PRESENT, 59), + DATA_MAKE_NUM(DATADIR_PRESENT, 60), + DATA_MAKE_NUM(DATADIR_PRESENT, 61), + DATA_MAKE_NUM(DATADIR_PRESENT, 62), + DATA_MAKE_NUM(DATADIR_PRESENT, 63), + DATA_MAKE_NUM(DATADIR_PRESENT, 64), + DATA_MAKE_NUM(DATADIR_PRESENT, 65), + DATA_MAKE_NUM(DATADIR_PRESENT, 66), + DATA_MAKE_NUM(DATADIR_PRESENT, 67), + DATA_MAKE_NUM(DATADIR_PRESENT, 68), + DATA_MAKE_NUM(DATADIR_PRESENT, 69), + DATA_MAKE_NUM(DATADIR_PRESENT, 70), + DATA_MAKE_NUM(DATADIR_PRESENT, 71), + DATA_MAKE_NUM(DATADIR_PRESENT, 72), + DATA_MAKE_NUM(DATADIR_PRESENT, 73), + DATA_MAKE_NUM(DATADIR_PRESENT, 74), + DATA_MAKE_NUM(DATADIR_PRESENT, 75), + DATA_MAKE_NUM(DATADIR_PRESENT, 76), + DATA_MAKE_NUM(DATADIR_PRESENT, 77), + DATA_MAKE_NUM(DATADIR_PRESENT, 78), + DATA_MAKE_NUM(DATADIR_PRESENT, 79), + DATA_MAKE_NUM(DATADIR_PRESENT, 80), + DATA_MAKE_NUM(DATADIR_PRESENT, 81), + DATA_MAKE_NUM(DATADIR_PRESENT, 82), + DATA_MAKE_NUM(DATADIR_PRESENT, 83), + DATA_MAKE_NUM(DATADIR_PRESENT, 84), + DATA_MAKE_NUM(DATADIR_PRESENT, 85), + DATA_MAKE_NUM(DATADIR_PRESENT, 86), + DATA_MAKE_NUM(DATADIR_PRESENT, 87), + DATA_MAKE_NUM(DATADIR_PRESENT, 88), + DATA_MAKE_NUM(DATADIR_PRESENT, 89), + DATA_MAKE_NUM(DATADIR_PRESENT, 90), + DATA_MAKE_NUM(DATADIR_PRESENT, 91), + DATA_MAKE_NUM(DATADIR_PRESENT, 92), + DATA_MAKE_NUM(DATADIR_PRESENT, 93), + DATA_MAKE_NUM(DATADIR_PRESENT, 94), + DATA_MAKE_NUM(DATADIR_PRESENT, 95), + DATA_MAKE_NUM(DATADIR_PRESENT, 96), + DATA_MAKE_NUM(DATADIR_PRESENT, 97), + DATA_MAKE_NUM(DATADIR_PRESENT, 98), + DATA_MAKE_NUM(DATADIR_PRESENT, 99), + DATA_MAKE_NUM(DATADIR_PRESENT, 100), + DATA_MAKE_NUM(DATADIR_PRESENT, 101), + DATA_MAKE_NUM(DATADIR_PRESENT, 102), + DATA_MAKE_NUM(DATADIR_PRESENT, 103), + DATA_MAKE_NUM(DATADIR_PRESENT, 104), + DATA_MAKE_NUM(DATADIR_PRESENT, 105), + DATA_MAKE_NUM(DATADIR_PRESENT, 106), + DATA_MAKE_NUM(DATADIR_PRESENT, 109), + DATA_MAKE_NUM(DATADIR_PRESENT, 111), + DATA_MAKE_NUM(DATADIR_PRESENT, 113), + DATA_MAKE_NUM(DATADIR_PRESENT, 115), + DATA_MAKE_NUM(DATADIR_PRESENT, 117), + DATA_MAKE_NUM(DATADIR_PRESENT, 119), + DATA_MAKE_NUM(DATADIR_PRESENT, 121), + DATA_MAKE_NUM(DATADIR_PRESENT, 123), + DATA_MAKE_NUM(DATADIR_PRESENT, 125), + DATA_MAKE_NUM(DATADIR_PRESENT, 110), + DATA_MAKE_NUM(DATADIR_PRESENT, 112), + DATA_MAKE_NUM(DATADIR_PRESENT, 114), + DATA_MAKE_NUM(DATADIR_PRESENT, 116), + DATA_MAKE_NUM(DATADIR_PRESENT, 118), + DATA_MAKE_NUM(DATADIR_PRESENT, 120), + DATA_MAKE_NUM(DATADIR_PRESENT, 122), + DATA_MAKE_NUM(DATADIR_PRESENT, 124), + DATA_MAKE_NUM(DATADIR_PRESENT, 127), + DATA_MAKE_NUM(DATADIR_PRESENT, 128), + DATA_MAKE_NUM(DATADIR_PRESENT, 129), + DATA_MAKE_NUM(DATADIR_PRESENT, 130), + DATA_MAKE_NUM(DATADIR_PRESENT, 131), + DATA_MAKE_NUM(DATADIR_PRESENT, 132), + DATA_MAKE_NUM(DATADIR_PRESENT, 133), + DATA_MAKE_NUM(DATADIR_PRESENT, 134), +}; -static const UnkPresentNestedOuterStruct lbl_1_rodata_2B8[] = { +static const RoomData roomTbl[10] = { { 0x00000006, { @@ -200,389 +352,400 @@ static const UnkPresentNestedOuterStruct lbl_1_rodata_2B8[] = { }, }; -omObjData *fn_1_1458(void) +omObjData *PresentCreate(void) { - s32 var_r30; - s32 var_r28; - s16 var_r27; - LightData *var_r26; + s32 i; + s32 j; + s16 light; + LightData *lightData; - omObjData *var_r29 = omAddObjEx(lbl_1_bss_4, 1003, 0, 0, 1, NULL); - UnkPresentStruct2 *var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 868, MEMORY_DEFAULT_NUM); - var_r29->data = var_r31; - var_r31->unk_234 = 0; - var_r31->unk_238 = 0; - var_r31->unk_23C = 0.0f; - var_r31->unk_248 = 1.0f; - var_r31->unk_250 = 0.0f; + omObjData *object = omAddObjEx(presentObjMan, 1003, 0, 0, 1, NULL); + PresentWork *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(PresentWork), MEMORY_DEFAULT_NUM); + object->data = work; + work->room = 0; + work->idxInRoom = 0; + work->rot = 0.0f; + work->timeRot = 1.0f; + work->rotSpeed = 0.0f; - for (var_r30 = 0; var_r30 < 60; var_r30++) { - var_r31->unk_270[var_r30] = GWGameStat.present[var_r30]; + for (i = 0; i < PRESENT_MAX; i++) { + work->presentUnlockedF[i] = GWGameStat.present[i]; } - for (var_r30 = 0; var_r30 < 59; var_r30++) { - if (!var_r31->unk_270[var_r30]) { + for (i = 0; i < PRESENT_MAX - 1; i++) { + if (!work->presentUnlockedF[i]) { break; } } - if (var_r30 == 59) { - var_r31->unk_270[59] = 1; + if (i == PRESENT_MAX - 1) { + work->presentUnlockedF[PRESENT_MAX - 1] = TRUE; } Hu3DLighInit(); - var_r27 = Hu3DGLightCreateV(&lbl_1_data_50.unk_00, &lbl_1_data_50.unk_0C, &lbl_1_data_50.unk_18); - Hu3DGLightInfinitytSet(var_r27); - Hu3DGLightStaticSet(var_r27, 1); - var_r26 = &Hu3DGlobalLight[var_r27]; - var_r26->unk_00 = var_r26->unk_00 | 0x8000; + light = Hu3DGLightCreateV(&lightTbl.src, &lightTbl.dest, &lightTbl.color); + Hu3DGLightInfinitytSet(light); + Hu3DGLightStaticSet(light, 1); + lightData = &Hu3DGlobalLight[light]; + lightData->unk_00 |= 0x8000; - for (var_r30 = 0; var_r30 < 134; var_r30++) { - var_r31->unk_10[var_r30] = omAddObjEx(lbl_1_bss_4, 1003, 1, 0, 1, NULL); - var_r31->unk_10[var_r30]->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_rodata_A0[var_r30], MEMORY_DEFAULT_NUM, HEAP_DATA)); - Hu3DModelLayerSet(var_r31->unk_10[var_r30]->model[0], 0); - Hu3DModelAttrSet(var_r31->unk_10[var_r30]->model[0], 1); + for (i = 0; i < PRESENT_MDL_MAX; i++) { + work->object[i] = omAddObjEx(presentObjMan, 1003, 1, 0, 1, NULL); + work->object[i]->model[0] = Hu3DModelCreateFile(presentMdlTbl[i]); + Hu3DModelLayerSet(work->object[i]->model[0], 0); + Hu3DModelAttrSet(work->object[i]->model[0], 1); } - for (var_r28 = 0; var_r28 < 8; var_r28++) { - for (var_r30 = 0; var_r30 < 6; var_r30++) { - Hu3DModelLayerSet(var_r31->unk_10[var_r30 + 2 + var_r28 * 6 * 2]->model[0], 1); + for (j = 0; j < 8; j++) { + for (i = 0; i < 6; i++) { + Hu3DModelLayerSet(work->object[i + 2 + j * 6 * 2]->model[0], 1); } } - Hu3DModelShadowMapSet(var_r31->unk_10[0]->model[0]); - fn_1_2924(var_r29); - var_r31->sprite = espEntry(7209095, 0, 0); - espDispOff(var_r31->sprite); - var_r31->unk_228 = fn_1_3EA4(0); - var_r31->unk_22C = fn_1_3EA4(1); - fn_1_2708(var_r29, var_r31->unk_234 * 36.0f, 1); - fn_1_2774(var_r29); - fn_1_180C(var_r29, 0); + Hu3DModelShadowMapSet(work->object[0]->model[0]); + ShowHidePresents(object); + work->cursor = espEntry(DATA_MAKE_NUM(DATADIR_PRESENT, 135), 0, 0); + espDispOff(work->cursor); + work->presentDescWindow = PresentWinCreate(0); + work->btnLegendWindow = PresentWinCreate(1); + SetCameraRot(object, work->room * 36.0f, 1); + RotateCamera(object); + PresentExecModeSet(object, PRESENT_MODE_NONE); - (void)var_r27; - return var_r29; + (void)light; + return object; } -void fn_1_1784(omObjData *object) +void PresentKill(omObjData *object) { - s32 var_r30; + s32 i; - UnkPresentStruct2 *var_r31 = object->data; - fn_1_4040(var_r31->unk_228); - fn_1_4040(var_r31->unk_22C); + PresentWork *work = object->data; + PresentWinKill(work->presentDescWindow); + PresentWinKill(work->btnLegendWindow); - for (var_r30 = 0; var_r30 < 134; var_r30++) { - Hu3DModelKill(var_r31->unk_10[var_r30]->model[0]); + for (i = 0; i < PRESENT_MDL_MAX; i++) { + Hu3DModelKill(work->object[i]->model[0]); } - espKill(var_r31->sprite); - HuMemDirectFree(var_r31); + espKill(work->cursor); + HuMemDirectFree(work); } -void fn_1_180C(omObjData *object, s32 arg1) +void PresentExecModeSet(omObjData *object, s32 execMode) { - UnkPresentStruct2 *var_r31 = object->data; + PresentWork *work = object->data; - var_r31->unk_0C = arg1; - object->func = lbl_1_data_6C[arg1]; + work->execMode = execMode; + object->func = execModeTbl[execMode]; object->unk10 = 0; object->unk10 = 0; } -s32 fn_1_1850(omObjData *object) +s32 PresentExecModeGet(omObjData *object) { - UnkPresentStruct2 *var_r31 = object->data; - return var_r31->unk_0C; + PresentWork *work = object->data; + return work->execMode; } -static const s32 lbl_1_rodata_9D8[] = { 0, 1, 2, 3, 4, 6, 7, 8 }; -static const s32 lbl_1_rodata_9F8[] = { 0, 1, 2, 3, 4, 0, 5, 6, 7, 0 }; +static const s32 roomIdxTbl[NUM_CHARACTERS] = { + ROOM_MARIO, + ROOM_LUIGI, + ROOM_PEACH, + ROOM_YOSHI, + ROOM_WARIO, + ROOM_DK, + ROOM_DAISY, + ROOM_WALUIGI, +}; -void fn_1_186C(omObjData *object, s32 arg1) +void PresentSelectedIDSet(omObjData *object, s32 id) { - UnkPresentStruct2 *var_r31 = object->data; + PresentWork *work = object->data; - if (arg1 < 48) { - var_r31->unk_234 = lbl_1_rodata_9D8[arg1 / 6]; - var_r31->unk_238 = arg1 % 6; + if (id < 48) { + work->room = roomIdxTbl[id / PRESENT_COUNT_CHAR_ROOM]; + work->idxInRoom = id % PRESENT_COUNT_CHAR_ROOM; return; } - if (arg1 < 59) { - var_r31->unk_234 = 9; - var_r31->unk_238 = (arg1 - 48) % 11; + if (id < 59) { + work->room = ROOM_MG; + work->idxInRoom = (id - 48) % PRESENT_COUNT_MG_ROOM; return; } - var_r31->unk_234 = 5; - var_r31->unk_238 = 0; + work->room = ROOM_TROPHY; + work->idxInRoom = 0; } -static void fn_1_1928(omObjData *object) -{ - Vec sp8; - s32 var_r29; +static const s32 roomMessTbl[] = { 0, 1, 2, 3, 4, 0, 5, 6, 7, 0 }; - UnkPresentStruct2 *var_r31 = object->data; +static void ExecSelectRoom(omObjData *object) +{ + Vec cursorPos; + s32 mess; + + PresentWork *work = object->data; switch (object->unk10) { case 0: - var_r31->unk_00 = 0; - var_r31->unk_08 = 0; + work->cursorVisibleF = FALSE; + work->constellationSelF = FALSE; object->unk10 = 1; case 1: - if (var_r31->unk_08) { - fn_1_920(lbl_1_bss_8, 0.0f, 220.0f, 250.0f, 30); - fn_1_9A4(lbl_1_bss_8, 0.0f, 420.0f, -600.0f, 30); + if (work->constellationSelF) { + PresentCameraTargetSet(presentCamera, 0.0f, 220.0f, 250.0f, 30); + PresentCameraFocusSet(presentCamera, 0.0f, 420.0f, -600.0f, 30); } else { - fn_1_920(lbl_1_bss_8, 0.0f, 220.0f, 250.0f, 30); - fn_1_9A4(lbl_1_bss_8, 0.0f, 0.0f, -600.0f, 30); + PresentCameraTargetSet(presentCamera, 0.0f, 220.0f, 250.0f, 30); + PresentCameraFocusSet(presentCamera, 0.0f, 0.0f, -600.0f, 30); } object->unk10 = 2; case 2: - if (!fn_1_B6C(lbl_1_bss_8) && !var_r31->unk_228->unk_20 && !fn_1_28F0(object)) { - fn_1_4080(var_r31->unk_228); - fn_1_4080(var_r31->unk_22C); - if (var_r31->unk_08) { - var_r29 = 0x320080; + if (!PresentCameraDoneCheck(presentCamera) && !work->presentDescWindow->state && !CameraRotationDoneCheck(object)) { + PresentWinAnimIn(work->presentDescWindow); + PresentWinAnimIn(work->btnLegendWindow); + if (work->constellationSelF) { + mess = 0x320080; } - else if (var_r31->unk_234 == 5) { - var_r29 = 0x320085; + else if (work->room == ROOM_TROPHY) { + mess = 0x320085; } else { - var_r29 = 0x32007e; + mess = 0x32007e; } - fn_1_40B0(var_r31->unk_22C, var_r29); - switch (var_r31->unk_234) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 6: - case 7: - case 8: - if (var_r31->unk_08) { - if (fn_1_2B84(object, var_r31->unk_234, 5)) { - var_r29 = 0x320005; + PresentWinMesSet(work->btnLegendWindow, mess); + switch (work->room) { + case ROOM_MARIO: + case ROOM_LUIGI: + case ROOM_PEACH: + case ROOM_YOSHI: + case ROOM_WARIO: + case ROOM_DK: + case ROOM_DAISY: + case ROOM_WALUIGI: + if (work->constellationSelF) { + if (PresentUnlocked(object, work->room, ROOM_TROPHY)) { + mess = 0x320005; } else { - var_r29 = 0x320082; + mess = 0x320082; } } - else if (fn_1_2BCC(object, var_r31->unk_234) > 0) { - var_r29 = 0x320001; + else if (UnlockedPresents(object, work->room) > 0) { + mess = 0x320001; } else { - var_r29 = 0x320081; + mess = 0x320081; } - fn_1_40B0(var_r31->unk_228, var_r29); - fn_1_4104(var_r31->unk_228, lbl_1_rodata_9F8[var_r31->unk_234], 0); + PresentWinMesSet(work->presentDescWindow, mess); + PresentWinInsertMesSet(work->presentDescWindow, roomMessTbl[work->room], 0); break; - case 5: - if (fn_1_2B84(object, 5, 0)) { - var_r29 = 0x320041; + case ROOM_TROPHY: + if (PresentUnlocked(object, ROOM_TROPHY, 0)) { + mess = 0x320041; } else { - var_r29 = 0x320084; + mess = 0x320084; } - fn_1_40B0(var_r31->unk_228, var_r29); + PresentWinMesSet(work->presentDescWindow, mess); break; - case 9: - if (fn_1_2BCC(object, 9) > 0) { - var_r29 = 0x320083; + case ROOM_MG: + if (UnlockedPresents(object, ROOM_MG) > 0) { + mess = 0x320083; } else { - var_r29 = 0x320081; + mess = 0x320081; } - fn_1_40B0(var_r31->unk_228, var_r29); + PresentWinMesSet(work->presentDescWindow, mess); break; default: break; } - if (var_r31->unk_08) { - sp8.x = 0.0f; - sp8.y = 600.0f; - sp8.z = -500.0f; + if (work->constellationSelF) { + cursorPos.x = 0.0f; + cursorPos.y = 600.0f; + cursorPos.z = -500.0f; } else { - sp8.x = 0.0f; - sp8.y = 210.0f; - sp8.z = -500.0f; + cursorPos.x = 0.0f; + cursorPos.y = 210.0f; + cursorPos.z = -500.0f; } - Hu3D3Dto2D(&sp8, 1, &sp8); - sp8.y -= 15.0f; - sp8.x -= 20.0f; - espPosSet(var_r31->sprite, sp8.x, sp8.y); - if (!var_r31->unk_00) { - fn_1_144(var_r31->sprite, 1, 5); - var_r31->unk_00 = 1; + Hu3D3Dto2D(&cursorPos, 1, &cursorPos); + cursorPos.y -= 15.0f; + cursorPos.x -= 20.0f; + espPosSet(work->cursor, cursorPos.x, cursorPos.y); + if (!work->cursorVisibleF) { + PresentFadeSprite(work->cursor, TRUE, 5); + work->cursorVisibleF = TRUE; } object->unk10 = 3; } break; case 3: - if (!var_r31->unk_228->unk_20) { - if (fn_1_550(512) && !var_r31->unk_08) { - fn_1_144(var_r31->sprite, 0, 5); - var_r31->unk_00 = 0; - fn_1_4098(var_r31->unk_228); - fn_1_4098(var_r31->unk_22C); + if (!work->presentDescWindow->state) { + if (PresentPadCheck(PAD_BUTTON_B) && !work->constellationSelF) { + PresentFadeSprite(work->cursor, FALSE, 5); + work->cursorVisibleF = FALSE; + PresentWinAnimOut(work->presentDescWindow); + PresentWinAnimOut(work->btnLegendWindow); HuAudFXPlay(3); object->unk10 = 4; } - else if (fn_1_550(256) && !var_r31->unk_08) { - if (var_r31->unk_234 != 5) { - fn_1_144(var_r31->sprite, 0, 5); - var_r31->unk_00 = 0; - fn_1_4098(var_r31->unk_228); - fn_1_4098(var_r31->unk_22C); + else if (PresentPadCheck(PAD_BUTTON_A) && !work->constellationSelF) { + if (work->room != ROOM_TROPHY) { + PresentFadeSprite(work->cursor, FALSE, 5); + work->cursorVisibleF = FALSE; + PresentWinAnimOut(work->presentDescWindow); + PresentWinAnimOut(work->btnLegendWindow); HuAudFXPlay(2); - fn_1_180C(object, 2); + PresentExecModeSet(object, PRESENT_MODE_SELECT_PRESENT); } } - else if (fn_1_584(8) && !var_r31->unk_08) { - if ((var_r31->unk_234 != 5) && (var_r31->unk_234 != 9)) { - var_r31->unk_08 = 1; - fn_1_144(var_r31->sprite, 0, 5); - var_r31->unk_00 = 0; - fn_1_4098(var_r31->unk_228); - fn_1_4098(var_r31->unk_22C); + else if (PresentPadDStkRepCheck(PAD_BUTTON_UP) && !work->constellationSelF) { + if (work->room != ROOM_TROPHY && work->room != ROOM_MG) { + work->constellationSelF = TRUE; + PresentFadeSprite(work->cursor, FALSE, 5); + work->cursorVisibleF = FALSE; + PresentWinAnimOut(work->presentDescWindow); + PresentWinAnimOut(work->btnLegendWindow); HuAudFXPlay(0); object->unk10 = 1; } } - else if (fn_1_584(4) && var_r31->unk_08) { - var_r31->unk_08 = 0; - fn_1_144(var_r31->sprite, 0, 5); - var_r31->unk_00 = 0; - fn_1_4098(var_r31->unk_228); - fn_1_4098(var_r31->unk_22C); + else if (PresentPadDStkRepCheck(PAD_BUTTON_DOWN) && work->constellationSelF) { + work->constellationSelF = FALSE; + PresentFadeSprite(work->cursor, FALSE, 5); + work->cursorVisibleF = FALSE; + PresentWinAnimOut(work->presentDescWindow); + PresentWinAnimOut(work->btnLegendWindow); HuAudFXPlay(0); object->unk10 = 1; } - else if (fn_1_584(1)) { - fn_1_1FA8(object, 1); + else if (PresentPadDStkRepCheck(PAD_BUTTON_LEFT)) { + ChangeRoom(object, ROOM_CHANGE_LEFT); HuAudFXPlay(0); object->unk10 = 2; } - else if (fn_1_584(2)) { - fn_1_1FA8(object, 2); + else if (PresentPadDStkRepCheck(PAD_BUTTON_RIGHT)) { + ChangeRoom(object, ROOM_CHANGE_RIGHT); HuAudFXPlay(0); object->unk10 = 2; } } break; case 4: - fn_1_180C(object, 0); + PresentExecModeSet(object, PRESENT_MODE_NONE); break; } - fn_1_2774(object); + RotateCamera(object); } -static void fn_1_1FA8(omObjData *object, s32 arg1) +static void ChangeRoom(omObjData *object, s32 direction) { - float var_f31; - float var_f30; - float var_f29; + float rotAbs; + float rot; + float rotTarget; - s32 var_r30; - s32 var_r29; - s32 var_r28; + s32 special; + s32 change; + s32 duration; - UnkPresentStruct2 *var_r31 = object->data; + PresentWork *work = object->data; - for (var_r30 = 0, var_f31 = 0.0f;; var_r30++) { - var_f31 += 36.0f; - if (arg1 == 1) { - var_r29 = -1; + for (special = 0, rotAbs = 0.0f;; special++) { + rotAbs += 36.0f; + if (direction == ROOM_CHANGE_LEFT) { + change = -1; } else { - var_r29 = 1; + change = 1; } - var_r31->unk_234 = var_r31->unk_234 + var_r29; - if (var_r31->unk_234 < 0) { - var_r31->unk_234 = 9; + work->room += change; + if (work->room < ROOM_MARIO) { + work->room = ROOM_MAX; } - else if (var_r31->unk_234 >= 10) { - var_r31->unk_234 = 0; + else if (work->room >= ROOM_MAX + 1) { + work->room = ROOM_MARIO; } - if (!((var_r31->unk_08) && ((var_r31->unk_234 == 5) || (var_r31->unk_234 == 9)))) { + if (!work->constellationSelF || (work->room != ROOM_TROPHY && work->room != ROOM_MG)) { break; } } - if (arg1 == 1) { - var_f30 = -var_f31; + if (direction == ROOM_CHANGE_LEFT) { + rot = -rotAbs; } else { - var_f30 = var_f31; + rot = rotAbs; } - var_f29 = var_r31->unk_23C + var_f30; - if (!var_r30) { - var_r28 = 30; + rotTarget = work->rot + rot; + if (special == 0) { + duration = 30; } else { - var_r28 = 45; + duration = 45; } - fn_1_2708(object, var_f29, var_r28); + SetCameraRot(object, rotTarget, duration); } -static void fn_1_20E8(omObjData *object) +static void ExecSelectPresent(omObjData *object) { - float var_f31; - float var_f30; + float cursorX; + float cursorY; - UnkPresentStruct2 *var_r31 = object->data; - s32 var_r29 = var_r31->unk_238; - s32 var_r27 = var_r31->unk_234; + PresentWork *work = object->data; + s32 idxInRoom = work->idxInRoom; + s32 room = work->room; switch (object->unk10) { case 0: - fn_1_920(lbl_1_bss_8, 0.0f, 220.0f, -120.0f, 30); - fn_1_9A4(lbl_1_bss_8, 0.0f, 0.0f, -600.0f, 30); - var_r31->unk_04 = fn_1_2BCC(object, var_r27) > 0; - var_r31->unk_00 = 0; - var_r31->unk_238 = 0; - if (var_r31->unk_04) { - s32 var_r25 = fn_1_3394(var_r31->unk_234); - s32 var_r28; - for (var_r28 = 0; var_r28 < var_r25; var_r28++) { - if (fn_1_2B84(object, var_r27, var_r28)) { - var_r31->unk_238 = var_r28; + PresentCameraTargetSet(presentCamera, 0.0f, 220.0f, -120.0f, 30); + PresentCameraFocusSet(presentCamera, 0.0f, 0.0f, -600.0f, 30); + work->roomNotEmptyF = UnlockedPresents(object, room) > 0; + work->cursorVisibleF = FALSE; + work->idxInRoom = 0; + if (work->roomNotEmptyF) { + s32 totalPresents = TotalPresentsInRoom(work->room); + s32 i; + // set the initial present to the highest unlocked one + for (i = 0; i < totalPresents; i++) { + if (PresentUnlocked(object, room, i)) { + work->idxInRoom = i; break; } } } object->unk10 = 1; case 1: - if (fn_1_B6C(lbl_1_bss_8)) { + if (PresentCameraDoneCheck(presentCamera)) { break; } - fn_1_4080(var_r31->unk_228); - fn_1_4080(var_r31->unk_22C); - fn_1_40B0(var_r31->unk_22C, 0x32007F); + PresentWinAnimIn(work->presentDescWindow); + PresentWinAnimIn(work->btnLegendWindow); + PresentWinMesSet(work->btnLegendWindow, 0x32007F); - if (var_r31->unk_04) { - fn_1_40B0(var_r31->unk_228, lbl_1_rodata_2B8[var_r27].unk_04[var_r29].unk_0C); + if (work->roomNotEmptyF) { + PresentWinMesSet(work->presentDescWindow, roomTbl[room].presentData[idxInRoom].descMess); } else { - fn_1_40B0(var_r31->unk_228, 0x320003); + PresentWinMesSet(work->presentDescWindow, 0x320003); } - var_r31->unk_258 = 0.0f; - var_r31->unk_25C = 5.0f / 30.0f; - if (var_r31->unk_04) { - Vec sp8; - fn_1_268C(var_r31->unk_10[lbl_1_rodata_2B8[var_r27].unk_04[var_r29].unk_00], &sp8.x, &sp8.y, &sp8.z); - Hu3D3Dto2D(&sp8, 1, &sp8); - sp8.y -= 15.0f; - sp8.x -= 20.0f; - if (!var_r31->unk_00) { - fn_1_144(var_r31->sprite, 1, 5); - var_r31->unk_00 = 1; - var_r31->unk_260 = sp8.x; - var_r31->unk_264 = sp8.y; + work->cursorTime = 0.0f; + work->cursorSpeed = 1.0f / 6.0f; + if (work->roomNotEmptyF) { + Vec cursorPos; + GetCursorPos(work->object[roomTbl[room].presentData[idxInRoom].cursorPosIdx], &cursorPos.x, &cursorPos.y, &cursorPos.z); + Hu3D3Dto2D(&cursorPos, 1, &cursorPos); + cursorPos.y -= 15.0f; + cursorPos.x -= 20.0f; + if (!work->cursorVisibleF) { + PresentFadeSprite(work->cursor, TRUE, 5); + work->cursorVisibleF = TRUE; + work->cursorPos.x = cursorPos.x; + work->cursorPos.y = cursorPos.y; } else { - var_r31->unk_260 = var_r31->unk_268; - var_r31->unk_264 = var_r31->unk_26C; + work->cursorPos.x = work->newCursorPos.x; + work->cursorPos.y = work->newCursorPos.y; } - var_r31->unk_268 = sp8.x; - var_r31->unk_26C = sp8.y; + work->newCursorPos.x = cursorPos.x; + work->newCursorPos.y = cursorPos.y; object->unk10 = 2; } else { @@ -590,241 +753,250 @@ static void fn_1_20E8(omObjData *object) break; } case 2: - var_f31 = var_r31->unk_260 + (var_r31->unk_258 * (var_r31->unk_268 - var_r31->unk_260)); - var_f30 = var_r31->unk_264 + (var_r31->unk_258 * (var_r31->unk_26C - var_r31->unk_264)); - espPosSet(var_r31->sprite, var_f31, var_f30); - if ((var_r31->unk_258 = var_r31->unk_258 + var_r31->unk_25C) < 1.0f) { + cursorX = work->cursorPos.x + (work->cursorTime * (work->newCursorPos.x - work->cursorPos.x)); + cursorY = work->cursorPos.y + (work->cursorTime * (work->newCursorPos.y - work->cursorPos.y)); + espPosSet(work->cursor, cursorX, cursorY); + if ((work->cursorTime += work->cursorSpeed) < 1.0f) { break; } - espPosSet(var_r31->sprite, var_r31->unk_268, var_r31->unk_26C); + espPosSet(work->cursor, work->newCursorPos.x, work->newCursorPos.y); object->unk10 = 3; case 3: - if (fn_1_550(512)) { - fn_1_4098(var_r31->unk_228); - fn_1_4098(var_r31->unk_22C); + if (PresentPadCheck(PAD_BUTTON_B)) { + PresentWinAnimOut(work->presentDescWindow); + PresentWinAnimOut(work->btnLegendWindow); HuAudFXPlay(3); object->unk10 = 4; } - else if (var_r31->unk_04) { - if (fn_1_584(1) && fn_1_5B8(8)) { - var_r29 = fn_1_2C5C(object, 5); + else if (work->roomNotEmptyF) { + if (PresentPadDStkRepCheck(PAD_BUTTON_LEFT) && PresentPadDStkCheck(PAD_BUTTON_UP)) { + idxInRoom = MoveCursor(object, 5); } - else if (fn_1_584(1) && fn_1_5B8(4)) { - var_r29 = fn_1_2C5C(object, 9); + else if (PresentPadDStkRepCheck(PAD_BUTTON_LEFT) && PresentPadDStkCheck(PAD_BUTTON_DOWN)) { + idxInRoom = MoveCursor(object, 9); } - else if (fn_1_584(2) && fn_1_5B8(8)) { - var_r29 = fn_1_2C5C(object, 6); + else if (PresentPadDStkRepCheck(PAD_BUTTON_RIGHT) && PresentPadDStkCheck(PAD_BUTTON_UP)) { + idxInRoom = MoveCursor(object, 6); } - else if (fn_1_584(2) && fn_1_5B8(4)) { - var_r29 = fn_1_2C5C(object, 10); + else if (PresentPadDStkRepCheck(PAD_BUTTON_RIGHT) && PresentPadDStkCheck(PAD_BUTTON_DOWN)) { + idxInRoom = MoveCursor(object, 10); } - else if (fn_1_584(1)) { - var_r29 = fn_1_2C5C(object, 1); + else if (PresentPadDStkRepCheck(PAD_BUTTON_LEFT)) { + idxInRoom = MoveCursor(object, 1); } - else if (fn_1_584(2)) { - var_r29 = fn_1_2C5C(object, 2); + else if (PresentPadDStkRepCheck(PAD_BUTTON_RIGHT)) { + idxInRoom = MoveCursor(object, 2); } - else if (fn_1_584(8)) { - var_r29 = fn_1_2C5C(object, 4); + else if (PresentPadDStkRepCheck(PAD_BUTTON_UP)) { + idxInRoom = MoveCursor(object, 4); } - else if (fn_1_584(4)) { - var_r29 = fn_1_2C5C(object, 8); + else if (PresentPadDStkRepCheck(PAD_BUTTON_DOWN)) { + idxInRoom = MoveCursor(object, 8); } } else { break; } - if (var_r29 == -1) { - var_r29 = var_r31->unk_238; + if (idxInRoom == -1) { + idxInRoom = work->idxInRoom; } - if (var_r29 != var_r31->unk_238) { - var_r31->unk_238 = var_r29; + if (idxInRoom != work->idxInRoom) { + work->idxInRoom = idxInRoom; object->unk10 = 1; HuAudFXPlay(0); } break; case 4: - if (var_r31->unk_00) { - fn_1_144(var_r31->sprite, 0, 5); + if (work->cursorVisibleF) { + PresentFadeSprite(work->cursor, FALSE, 5); } - fn_1_180C(object, 1); + PresentExecModeSet(object, PRESENT_MODE_SELECT_ROOM); break; default: break; } } -static void fn_1_268C(omObjData *object, float *arg1, float *arg2, float *arg3) +static void GetCursorPos(omObjData *object, float *x, float *y, float *z) { Mtx sp8; Hu3DModelObjMtxGet(object->model[0], "cursor", sp8); - *arg1 = sp8[0][3]; - *arg2 = sp8[1][3]; - *arg3 = sp8[2][3]; + *x = sp8[0][3]; + *y = sp8[1][3]; + *z = sp8[2][3]; } -static void fn_1_2708(omObjData *arg0, float arg8, s32 arg1) +static void SetCameraRot(omObjData *object, float rot, s32 duration) { - UnkPresentStruct2 *var_r31 = arg0->data; + PresentWork *work = object->data; - var_r31->unk_244 = arg8; - var_r31->unk_240 = var_r31->unk_23C; - var_r31->unk_248 = 0.0f; - var_r31->unk_250 = 1.0f / arg1; + work->rotTarget = rot; + work->rotPrev = work->rot; + work->timeRot = 0.0f; + work->rotSpeed = 1.0f / duration; } -static void fn_1_2774 (omObjData *object) +static void RotateCamera(omObjData *object) { - s32 var_r30; - UnkPresentStruct2 *var_r31 = object->data; + s32 i; + PresentWork *work = object->data; - if (var_r31->unk_248 < 1.0f) { - float var_f31 = sin(90.0f * var_r31->unk_248 * M_PI / 180.0f); - var_f31 *= var_f31; - var_r31->unk_23C = var_r31->unk_240 + (var_f31 * (var_r31->unk_244 - var_r31->unk_240)); + if (work->timeRot < 1.0f) { + float weight = sind(90.0f * work->timeRot); + weight *= weight; + work->rot = work->rotPrev + (weight * (work->rotTarget - work->rotPrev)); - if ((var_r31->unk_248 = var_r31->unk_248 + var_r31->unk_250) >= 1.0f) { - var_r31->unk_23C = var_r31->unk_244; + if ((work->timeRot += work->rotSpeed) >= 1.0f) { + work->rot = work->rotTarget; } } - var_r31->unk_23C = fmod(var_r31->unk_23C, 360.0); + work->rot = fmod(work->rot, 360.0); - if (var_r31->unk_23C < 0.0f) { - var_r31->unk_23C += 360.0f; + if (work->rot < 0.0f) { + work->rot += 360.0f; } - for (var_r30 = 0; var_r30 < 134; var_r30++) { - omSetRot(var_r31->unk_10[var_r30], 0.0f, var_r31->unk_23C, 0.0f); + for (i = 0; i < PRESENT_MDL_MAX; i++) { + omSetRot(work->object[i], 0.0f, work->rot, 0.0f); } } -static s32 fn_1_28F0 (omObjData *object) +static BOOL CameraRotationDoneCheck(omObjData *object) { - UnkPresentStruct2 *var_r31 = object->data; - return var_r31->unk_248 < 1.0f; + PresentWork *work = object->data; + return work->timeRot < 1.0f; } -s32 lbl_1_data_84[] = { 0, 1, 2, 3, 4, 6, 7, 8 }; +s32 roomIdxTbl2[NUM_CHARACTERS] = { + ROOM_MARIO, + ROOM_LUIGI, + ROOM_PEACH, + ROOM_YOSHI, + ROOM_WARIO, + ROOM_DK, + ROOM_DAISY, + ROOM_WALUIGI, +}; -static void fn_1_2924(omObjData *object) +static void ShowHidePresents(omObjData *object) { - UnkPresentStruct2 *var_r31 = object->data; - s32 var_r30; - s32 var_r29; + PresentWork *work = object->data; + s32 character; + s32 i; - Hu3DModelAttrReset(var_r31->unk_10[0]->model[0], 1); + Hu3DModelAttrReset(work->object[0]->model[0], 1); - for (var_r29 = 0; var_r29 < 8; var_r29++) { - s32 var_r27; - if (fn_1_2BCC(object, lbl_1_data_84[var_r29]) > 0) { - Hu3DModelAttrReset(var_r31->unk_10[var_r29 + 109]->model[0], 1); + for (character = 0; character < NUM_CHARACTERS; character++) { + s32 j; + if (UnlockedPresents(object, roomIdxTbl2[character]) > 0) { + Hu3DModelAttrReset(work->object[character + 109]->model[0], 1); } - for (var_r27 = 0, var_r30 = 0; var_r30 < 6; var_r30++) { - if (fn_1_2B84(object, lbl_1_data_84[var_r29], var_r30)) { - Hu3DModelAttrReset(var_r31->unk_10[var_r29 * 6 * 2 + 2 + var_r30]->model[0], 1); - Hu3DModelAttrReset(var_r31->unk_10[var_r29 * 6 * 2 + 8 + var_r30]->model[0], 1); - var_r27++; + for (j = 0, i = 0; i < PRESENT_COUNT_CHAR_ROOM; i++) { + if (PresentUnlocked(object, roomIdxTbl2[character], i)) { + Hu3DModelAttrReset(work->object[character * PRESENT_COUNT_CHAR_ROOM * 2 + 2 + i]->model[0], 1); + Hu3DModelAttrReset(work->object[character * PRESENT_COUNT_CHAR_ROOM * 2 + 8 + i]->model[0], 1); + j++; } } - if (var_r27 >= 6) { - Hu3DModelAttrReset(var_r31->unk_10[var_r29 + 118]->model[0], 1); + if (j >= 6) { + Hu3DModelAttrReset(work->object[character + 118]->model[0], 1); } } - if (fn_1_2BCC(object, 9) > 0) { - Hu3DModelAttrReset(var_r31->unk_10[117]->model[0], 1); + if (UnlockedPresents(object, ROOM_MG) > 0) { + Hu3DModelAttrReset(work->object[117]->model[0], 1); } - for (var_r30 = 0; var_r30 < 11; var_r30++) { - if (fn_1_2B84(object, 9, var_r30)) { - Hu3DModelAttrReset(var_r31->unk_10[var_r30 + 98]->model[0], 1); + for (i = 0; i < PRESENT_COUNT_MG_ROOM; i++) { + if (PresentUnlocked(object, ROOM_MG, i)) { + Hu3DModelAttrReset(work->object[i + 98]->model[0], 1); } } - if (fn_1_2B84(object, 5, 0)) { - Hu3DModelAttrReset(var_r31->unk_10[1]->model[0], 1); + if (PresentUnlocked(object, ROOM_TROPHY, 0)) { + Hu3DModelAttrReset(work->object[1]->model[0], 1); } - for (var_r30 = 0; var_r30 < 8; var_r30++) { - if (fn_1_2B84(object, lbl_1_data_84[var_r30], 5)) { - Hu3DModelAttrReset(var_r31->unk_10[var_r30 + 126]->model[0], 1); + for (i = 0; i < NUM_CHARACTERS; i++) { + if (PresentUnlocked(object, roomIdxTbl2[i], PRESENT_CONSTELLATION)) { + Hu3DModelAttrReset(work->object[i + 126]->model[0], 1); } } } -static const s32 lbl_1_rodata_A74[] = { 0, 6, 12, 18, 24, 59, 30, 36, 42, 48 }; +static const s32 roomPresentOffsetTbl[] = { 0, 6, 12, 18, 24, 59, 30, 36, 42, 48 }; -static s32 fn_1_2B84(omObjData *arg0, s32 arg1, s32 arg2) +static BOOL PresentUnlocked(omObjData *object, s32 room, s32 present) { - UnkPresentStruct2 *var_r31 = arg0->data; - return var_r31->unk_270[arg2 + lbl_1_rodata_A74[arg1]] != 0; + PresentWork *work = object->data; + return work->presentUnlockedF[roomPresentOffsetTbl[room] + present] != 0; } -static s32 fn_1_2BCC(omObjData *object, s32 arg1) +static s32 UnlockedPresents(omObjData *object, s32 room) { - s32 var_r31; - s32 var_r30; - s32 var_r28 = fn_1_3394(arg1); + s32 i; + s32 unlockedPresents; + s32 presentCount = TotalPresentsInRoom(room); - for (var_r30 = 0, var_r31 = 0; var_r31 < var_r28; var_r31++) { - if (fn_1_2B84(object, arg1, var_r31)) { - var_r30++; + for (unlockedPresents = 0, i = 0; i < presentCount; i++) { + if (PresentUnlocked(object, room, i)) { + unlockedPresents++; } } - return var_r30; + return unlockedPresents; } -static s32 fn_1_2C5C(omObjData *object, s32 arg1) +/* Returns the index of the newly selected present inside the room */ +static s32 MoveCursor(omObjData *object, s32 arg1) { - UnkPresentStruct7 spA4[10]; - Vec sp38; + PresentDistanceStruct availablePresents[10]; + Vec cursorPos; - float var_f31; - float var_f30; + float angle; - UnkPresentStruct2 *var_r31 = object->data; - s32 var_r30; - s32 var_r28; - s32 var_r26; + PresentWork *work = object->data; + s32 present; + s32 i; + s32 j; s32 var_r23; - s32 var_r22 = fn_1_3394(var_r31->unk_234); - s32 var_r18 = fn_1_2BCC(object, var_r31->unk_234); + s32 totalPresents = TotalPresentsInRoom(work->room); + s32 unlockedPresents = UnlockedPresents(object, work->room); - if (var_r18 == 1) { - return var_r31->unk_238; + if (unlockedPresents == 1) { + return work->idxInRoom; } - fn_1_268C(var_r31->unk_10[lbl_1_rodata_2B8[var_r31->unk_234].unk_04[var_r31->unk_238].unk_00], &sp38.x, &sp38.y, &sp38.z); - Hu3D3Dto2D(&sp38, 1, &sp38); - for (var_r28 = 0, var_r26 = 0; !var_r28 && (var_r26 < 1); var_r26++) { - for (var_r28 = 0, var_r30 = 0; var_r30 < var_r22; var_r30++) { - Vec sp2C; - float var_f29; - if (var_r30 == var_r31->unk_238) { + GetCursorPos(work->object[roomTbl[work->room].presentData[work->idxInRoom].cursorPosIdx], &cursorPos.x, &cursorPos.y, &cursorPos.z); + Hu3D3Dto2D(&cursorPos, 1, &cursorPos); + for (i = 0, j = 0; i == 0 && j < 1; j++) { + for (i = 0, present = 0; present < totalPresents; present++) { + Vec cursorPosNew; + float dx, dy; + if (present == work->idxInRoom) { continue; } - if (!fn_1_2B84(object, var_r31->unk_234, var_r30)) { + if (!PresentUnlocked(object, work->room, present)) { continue; } - fn_1_268C(var_r31->unk_10[lbl_1_rodata_2B8[var_r31->unk_234].unk_04[var_r30].unk_00], &sp2C.x, &sp2C.y, &sp2C.z); - Hu3D3Dto2D(&sp2C, 1, &sp2C); - var_f30 = sp38.x - sp2C.x; - var_f29 = sp38.y - sp2C.y; - var_f31 = fmod(atan2d(var_f30, var_f29), 360.0); - if (var_f31 < 0.0f) { - var_f31 += 360.0f; + GetCursorPos(work->object[roomTbl[work->room].presentData[present].cursorPosIdx], &cursorPosNew.x, &cursorPosNew.y, &cursorPosNew.z); + Hu3D3Dto2D(&cursorPosNew, 1, &cursorPosNew); + dx = cursorPos.x - cursorPosNew.x; + dy = cursorPos.y - cursorPosNew.y; + angle = fmod(atan2d(dx, dy), 360.0); + if (angle < 0.0f) { + angle += 360.0f; } - if ((arg1 == 1 && var_f31 >= 45.0f && var_f31 < 135.0f) || (arg1 == 2 && var_f31 >= 225.0f && var_f31 < 315.0f) - || (arg1 == 8 && var_f31 >= 135.0f && var_f31 < 225.0f) - || (arg1 == 4 && (var_f31 >= 0.0f && var_f31 < 45.0f || var_f31 >= 315.0f && var_f31 < 360.0f)) - || (arg1 == 5 && var_f31 >= 0.0f && var_f31 < 90.0f) || (arg1 == 9 && var_f31 >= 90.0f && var_f31 < 180.0f) - || (arg1 == 6 && var_f31 >= 270.0f && var_f31 < 360.0f) || (arg1 == 10 && var_f31 >= 180.0f && var_f31 < 270.0f)) { - spA4[var_r28].unk_00 = var_r30; - spA4[var_r28].unk_04 = sqrtf(var_f30 * var_f30 + var_f29 * var_f29); - var_r28++; + if ((arg1 == 1 && angle >= 45.0f && angle < 135.0f) || (arg1 == 2 && angle >= 225.0f && angle < 315.0f) + || (arg1 == 8 && angle >= 135.0f && angle < 225.0f) + || (arg1 == 4 && (angle >= 0.0f && angle < 45.0f || angle >= 315.0f && angle < 360.0f)) + || (arg1 == 5 && angle >= 0.0f && angle < 90.0f) || (arg1 == 9 && angle >= 90.0f && angle < 180.0f) + || (arg1 == 6 && angle >= 270.0f && angle < 360.0f) || (arg1 == 10 && angle >= 180.0f && angle < 270.0f)) { + availablePresents[i].present = present; + availablePresents[i].distance = sqrtf(dx * dx + dy * dy); + i++; } } - if (var_r28) { + if (i != 0) { continue; } switch (arg1) { @@ -862,85 +1034,85 @@ static s32 fn_1_2C5C(omObjData *object, s32 arg1) break; } } - if (!var_r28) { - return var_r31->unk_238; + if (i == 0) { + return work->idxInRoom; } do { - for (var_r23 = 0, var_r30 = 0; var_r30 < (var_r28 - 1); var_r30++) { - if (spA4[var_r30].unk_04 > spA4[var_r30 + 1].unk_04) { - UnkPresentStruct7 sp24 = spA4[var_r30 + 1]; - spA4[var_r30 + 1] = spA4[var_r30]; - spA4[var_r30] = sp24; + for (var_r23 = 0, present = 0; present < (i - 1); present++) { + if (availablePresents[present].distance > availablePresents[present + 1].distance) { + PresentDistanceStruct next = availablePresents[present + 1]; + availablePresents[present + 1] = availablePresents[present]; + availablePresents[present] = next; var_r23 = 1; } } } while (var_r23); - return spA4[(var_r26 <= 1) ? 0 : var_r28 - 1].unk_00; + return availablePresents[(j <= 1) ? 0 : i - 1].present; } -static const s32 lbl_1_rodata_AC8[] = { 6, 6, 6, 6, 6, 1, 6, 6, 6, 11 }; +static const s32 totalPresentCntTbl[10] = { 6, 6, 6, 6, 6, 1, 6, 6, 6, 11 }; -static s32 fn_1_3394(s32 arg0) +static s32 TotalPresentsInRoom(s32 room) { - return lbl_1_rodata_AC8[arg0]; + return totalPresentCntTbl[room]; } -static const s32 lbl_1_rodata_AF0[] = { 2, 14, 26, 38, 50, 0, 62, 74, 86, 0 }; -static const s32 lbl_1_rodata_B18[] = { 8, 20, 32, 44, 56, 0, 68, 80, 92, 0 }; -static const s32 lbl_1_rodata_B40[] = { 126, 127, 128, 129, 130, 0, 131, 132, 133, 0 }; -static const s32 lbl_1_rodata_B68[] = { 118, 119, 120, 121, 122, 0, 123, 124, 125, 0 }; +static const s32 presentItemIdxTbl[10] = { 2, 14, 26, 38, 50, 0, 62, 74, 86, 0 }; +static const s32 lbl_1_rodata_B18[10] = { 8, 20, 32, 44, 56, 0, 68, 80, 92, 0 }; +static const s32 constellationIdxTbl[10] = { 126, 127, 128, 129, 130, 0, 131, 132, 133, 0 }; +static const s32 roofIdxTbl[10] = { 118, 119, 120, 121, 122, 0, 123, 124, 125, 0 }; -static void fn_1_33AC(omObjData *object) +static void ExecPresentGet(omObjData *object) { - f32 var_f31; - f32 var_f29; + f32 weight; + f32 rot; - UnkPresentStruct2 *var_r31 = object->data; + PresentWork *work = object->data; switch (object->unk10) { case 0: - var_f29 = 36.0f * var_r31->unk_234; - fn_1_2708(object, var_f29, 1); - fn_1_2774(object); - Hu3DModelAttrSet(var_r31->unk_10[var_r31->unk_238 + lbl_1_rodata_B18[var_r31->unk_234]]->model[0], 1); - Hu3DModelAttrSet(var_r31->unk_10[lbl_1_rodata_B68[var_r31->unk_234]]->model[0], 1); - Hu3DModelAttrSet(var_r31->unk_10[lbl_1_rodata_B40[var_r31->unk_234]]->model[0], 1); - var_r31->unk_24C = 0.0f; - var_r31->unk_254 = 1.0f / 360.0f; + rot = 36.0f * work->room; + SetCameraRot(object, rot, 1); + RotateCamera(object); + Hu3DModelAttrSet(work->object[work->idxInRoom + lbl_1_rodata_B18[work->room]]->model[0], 1); + Hu3DModelAttrSet(work->object[roofIdxTbl[work->room]]->model[0], 1); + Hu3DModelAttrSet(work->object[constellationIdxTbl[work->room]]->model[0], 1); + work->presentFallingTime = 0.0f; + work->presentFallingSpeed = 1.0f / 360.0f; object->unk10 = 1; case 1: WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 120); object->unk10 = 2; case 2: - var_f31 = sind(90.0f * var_r31->unk_24C); - var_f31 *= var_f31; - fn_1_920(lbl_1_bss_8, 0.0f, 820.0f - (600.0f * var_f31), -120.0f, 1); - fn_1_9A4(lbl_1_bss_8, 0.0f, 680.0f - (680.0f * var_f31), -600.0f, 1); - omSetTra(var_r31->unk_10[var_r31->unk_238 + lbl_1_rodata_AF0[var_r31->unk_234]], 0.0f, 840.0f - (840.0f * var_f31), 0.0f); - if ((var_r31->unk_24C = var_r31->unk_24C + var_r31->unk_254) < 1.0f) { + weight = sind(90.0f * work->presentFallingTime); + weight *= weight; + PresentCameraTargetSet(presentCamera, 0.0f, 820.0f - (600.0f * weight), -120.0f, 1); + PresentCameraFocusSet(presentCamera, 0.0f, 680.0f - (680.0f * weight), -600.0f, 1); + omSetTra(work->object[work->idxInRoom + presentItemIdxTbl[work->room]], 0.0f, 840.0f - (840.0f * weight), 0.0f); + if ((work->presentFallingTime += work->presentFallingSpeed) < 1.0f) { return; } - if (fn_1_393C(var_r31->unk_234, var_r31->unk_238)) { - fn_1_334(var_r31->unk_10[var_r31->unk_238 + lbl_1_rodata_B18[var_r31->unk_234]]->model[0], 1, 0.4f, 30); + if (fn_1_393C(work->room, work->idxInRoom)) { + FadeSpriteWithMultiplier(work->object[work->idxInRoom + lbl_1_rodata_B18[work->room]]->model[0], 1, 0.4f, 30); } object->unk10 = 3; case 3: - fn_1_4080(var_r31->unk_228); - fn_1_4104(var_r31->unk_228, lbl_1_rodata_2B8[var_r31->unk_234].unk_04[var_r31->unk_238].unk08, 0); - fn_1_40B0(var_r31->unk_228, 0x320004); - fn_1_419C(var_r31->unk_228); + PresentWinAnimIn(work->presentDescWindow); + PresentWinInsertMesSet(work->presentDescWindow, roomTbl[work->room].presentData[work->idxInRoom].nameMess, 0); + PresentWinMesSet(work->presentDescWindow, 0x320004); + PresentWinMesWait(work->presentDescWindow); object->unk10 = 4; case 4: - if (var_r31->unk_228->unk_20) { + if (work->presentDescWindow->state) { break; } object->unk10 = 5; case 5: - fn_1_4098(var_r31->unk_228); + PresentWinAnimOut(work->presentDescWindow); object->unk10 = 6; case 6: - if (!var_r31->unk_228->unk_20) { - fn_1_180C(object, 0); + if (!work->presentDescWindow->state) { + PresentExecModeSet(object, PRESENT_MODE_NONE); } break; } From f2de6f74661ac6ccd0e83733f94e332e0bc2d1e7 Mon Sep 17 00:00:00 2001 From: kabiskac Date: Sun, 4 Aug 2024 18:41:54 +0200 Subject: [PATCH 016/311] Fix optionDll inconsistencies --- include/REL/option.h | 2 +- src/REL/option/camera.c | 37 +++++++++++-------------------------- src/REL/option/guide.c | 17 +++++++---------- src/REL/option/state.c | 16 ++++++++++------ 4 files changed, 29 insertions(+), 43 deletions(-) diff --git a/include/REL/option.h b/include/REL/option.h index 3052b323..a4004a17 100755 --- a/include/REL/option.h +++ b/include/REL/option.h @@ -9,7 +9,7 @@ typedef struct { /* 0x00 */ Process *process; /* 0x04 */ s16 window; /* 0x08 */ s32 id; - /* 0x0C */ s32 visible; + /* 0x0C */ BOOL visible; /* 0x10 */ BOOL messWaitSignal; /* 0x14 */ BOOL choiceSignal; /* 0x18 */ u32 messToBeSet; diff --git a/src/REL/option/camera.c b/src/REL/option/camera.c index 99e2aa68..bd93317b 100755 --- a/src/REL/option/camera.c +++ b/src/REL/option/camera.c @@ -17,8 +17,8 @@ typedef struct { /* 0x2C */ Vec posPrev; /* 0x38 */ Vec targetPrev; /* 0x44 */ char unk44[0xC]; - /* 0x50 */ float prevZoom; - /* 0x54 */ float prevRot; + /* 0x50 */ float zoomPrev; + /* 0x54 */ float rotPrev; /* 0x58 */ Vec posTarget; /* 0x64 */ Vec posFocus; /* 0x70 */ char unk70[0xC]; @@ -34,8 +34,6 @@ typedef struct { static void ExecCameraObj(omObjData *object); static void ExecCamera(omObjData *object); -static void fn_1_12E4(omObjData *object); -static void PrintDebugInfo(omObjData *object); omObjData *optionCamera; @@ -45,11 +43,8 @@ static s32 pad_04_00000018_data = -1; omObjData *OptionCameraCreate(void) { - omObjData *object; - CameraWork *work; - - object = omAddObjEx(optionObjMan, 1001, 0, 0, 3, ExecCameraObj); - work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(CameraWork), MEMORY_DEFAULT_NUM); + omObjData *object = omAddObjEx(optionObjMan, 1001, 0, 0, 3, ExecCameraObj); + CameraWork *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(CameraWork), MEMORY_DEFAULT_NUM); object->data = work; work->pos.x = 0.0f; work->pos.y = 0.0f; @@ -110,33 +105,26 @@ void OptionCameraViewSet(omObjData *object, float zoom, float rot, float y, s32 work->zoomTarget = zoom; work->rotTarget = rot; work->targetPrev.y = work->target.y; - work->prevZoom = work->zoom; - work->prevRot = work->rot; + work->zoomPrev = work->zoom; + work->rotPrev = work->rot; work->timeRot = 0.0f; work->rotSpeed = 1.0f / duration; } -// GetZoom float OptionCameraZoomGet(omObjData *object) { CameraWork *work = object->data; - float zoom; - - zoom = work->zoom; + float zoom = work->zoom; return zoom; } -// GetRot float OptionCameraRotGet(omObjData *object) { CameraWork *work = object->data; - float rot; - - rot = work->rot; + float rot = work->rot; return rot; } -// Getpos void OptionCameraPosGet(omObjData *object, float *x, float *y, float *z) { CameraWork *temp_r31 = object->data; @@ -146,7 +134,6 @@ void OptionCameraPosGet(omObjData *object, float *x, float *y, float *z) *z = temp_r31->pos.z; } -// Gettarget void OptionCameraTargetGet(omObjData *object, float *x, float *y, float *z) { CameraWork *work = object->data; @@ -156,7 +143,6 @@ void OptionCameraTargetGet(omObjData *object, float *x, float *y, float *z) *z = work->target.z; } -// CameraDone s32 OptionCameraDoneCheck(omObjData *object) { CameraWork *work = object->data; @@ -205,8 +191,8 @@ static void ExecCamera(omObjData *object) if (work->timeRot < 1.0f) { weight = sind(90.0f * work->timeRot); work->target.y = work->targetPrev.y + weight * (work->posFocus.y - work->targetPrev.y); - work->zoom = work->prevZoom + weight * (work->zoomTarget - work->prevZoom); - work->rot = work->prevRot + weight * (work->rotTarget - work->prevRot); + work->zoom = work->zoomPrev + weight * (work->zoomTarget - work->zoomPrev); + work->rot = work->rotPrev + weight * (work->rotTarget - work->rotPrev); if ((work->timeRot += work->rotSpeed) >= 1.0f) { work->target.y = work->posFocus.y; work->zoom = work->zoomTarget; @@ -223,8 +209,7 @@ static void ExecCamera(omObjData *object) work->rot += 360.0f; } - Hu3DCameraPosSet(1, work->pos.x, work->pos.y, work->pos.z, work->up.x, work->up.y, work->up.z, work->target.x, - work->target.y, work->target.z); + Hu3DCameraPosSet(1, work->pos.x, work->pos.y, work->pos.z, work->up.x, work->up.y, work->up.z, work->target.x, work->target.y, work->target.z); } static void CameraExecDebug(omObjData *object) diff --git a/src/REL/option/guide.c b/src/REL/option/guide.c index 2487f72c..89865969 100755 --- a/src/REL/option/guide.c +++ b/src/REL/option/guide.c @@ -22,8 +22,8 @@ typedef struct { /* 0x48 */ char unk48[0xC]; /* 0x54 */ float time; /* 0x58 */ float speed; - /* 0x5C */ s32 unk5C; - /* 0x60 */ s32 unk60; + /* 0x5C */ s32 unk_5C; + /* 0x60 */ s32 unk_60; } GuideWork; // Size 0x64 #define MODE_DISABLED 0 @@ -70,8 +70,8 @@ omObjData *OptionGuideCreate(void) for (i = 0; i < 3; i++) { object->motion[i] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(guideMotTbl[i], MEMORY_DEFAULT_NUM, HEAP_DATA)); } - work->unk5C = CharModelEffectNpcInit(object->model[0], object->motion[2], 1, 0xC); - work->unk60 = CharModelEffectNpcInit(object->model[0], object->motion[1], 0, 0xC); + work->unk_5C = CharModelEffectNpcInit(object->model[0], object->motion[2], 1, 0xC); + work->unk_60 = CharModelEffectNpcInit(object->model[0], object->motion[1], 0, 0xC); CharModelLayerSetAll(1); Hu3DModelShadowSet(object->model[0]); Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 8.0f, 0x40000001); @@ -186,9 +186,7 @@ static void ExecGuide(omObjData *object) static void UpdateGuide(omObjData *object) { GuideWork *work = object->data; - s16 motion; - - motion = 0; + s16 motion = 0; work->distRemain = sqrtf(work->posDelta.x * work->posDelta.x + work->posDelta.z * work->posDelta.z); if (0.001f <= work->distRemain) { if (14.0f <= work->distRemain) { @@ -219,9 +217,8 @@ static void UpdateGuide(omObjData *object) static float LerpAngle(float start, float end, float time) { float angle; - float delta; - - delta = fmod(end - start, 360.0); + + float delta = fmod(end - start, 360.0); if (0.0f > delta) { delta += 360.0f; } diff --git a/src/REL/option/state.c b/src/REL/option/state.c index 1ed1cb12..294e9c35 100755 --- a/src/REL/option/state.c +++ b/src/REL/option/state.c @@ -18,6 +18,12 @@ typedef struct { /* 0x18 */ GXColor color; } UnkLightDataStruct; /* size = 0x1C */ // TODO same as m446Dll::unkStruct10 and present::UnkPresentStruct3 +typedef struct UnkShadowDataStruct { + /* 0x00 */ Vec pos; + /* 0x0C */ Vec up; + /* 0x18 */ Vec target; +} UnkShadowDataStruct; /* size = 0x24 */ + static void ExecState(omObjData *object); omObjData *optionState; @@ -28,7 +34,7 @@ static UnkLightDataStruct lightTbl = { { 0xFF, 0xFF, 0xFF, 0xFF }, }; -static Vec shadowPosTbl[3] = { +static UnkShadowDataStruct shadowPosTbl = { { 0.0f, 3000.0f, 1.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, @@ -36,12 +42,10 @@ static Vec shadowPosTbl[3] = { omObjData *OptionStateCreate(void) { - omObjData *object; - StateWork *work; LightData *lightData; - object = omAddObjEx(optionObjMan, 1000, 0, 0, 4, ExecState); - work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(StateWork), MEMORY_DEFAULT_NUM); + omObjData *object = omAddObjEx(optionObjMan, 1000, 0, 0, 4, ExecState); + StateWork *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(StateWork), MEMORY_DEFAULT_NUM); object->data = work; optionCamera = OptionCameraCreate(); optionRoom = OptionRoomCreate(); @@ -52,7 +56,7 @@ omObjData *OptionStateCreate(void) lightData = &Hu3DGlobalLight[work->light]; Hu3DShadowCreate(30.0f, 20.0f, 5000.0f); Hu3DShadowTPLvlSet(0.45f); - Hu3DShadowPosSet(&shadowPosTbl[0], &shadowPosTbl[1], &shadowPosTbl[2]); + Hu3DShadowPosSet(&shadowPosTbl.pos, &shadowPosTbl.up, &shadowPosTbl.target); return object; } From 7a1043966eaeff2787c7b70abce1ce5015e36f14 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Wed, 7 Aug 2024 01:14:29 -0700 Subject: [PATCH 017/311] Matched REL/m447dll --- config/GMPE01_00/rels/m447dll/symbols.txt | 324 +++--- configure.py | 12 +- include/REL/m447dll.h | 158 +++ src/REL/m447dll/block.c | 458 +++++++++ src/REL/m447dll/camera.c | 151 +++ src/REL/m447dll/main.c | 713 +++++++++++++ src/REL/m447dll/player.c | 1107 +++++++++++++++++++++ src/REL/m447dll/player_col.c | 199 ++++ src/REL/m447dll/stage.c | 471 +++++++++ 9 files changed, 3425 insertions(+), 168 deletions(-) create mode 100755 include/REL/m447dll.h create mode 100755 src/REL/m447dll/block.c create mode 100755 src/REL/m447dll/camera.c create mode 100755 src/REL/m447dll/main.c create mode 100755 src/REL/m447dll/player.c create mode 100755 src/REL/m447dll/player_col.c create mode 100755 src/REL/m447dll/stage.c diff --git a/config/GMPE01_00/rels/m447dll/symbols.txt b/config/GMPE01_00/rels/m447dll/symbols.txt index 189f63b5..b32598b2 100644 --- a/config/GMPE01_00/rels/m447dll/symbols.txt +++ b/config/GMPE01_00/rels/m447dll/symbols.txt @@ -114,182 +114,182 @@ fn_1_A240 = .text:0x0000A240; // type:function size:0x34 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x64 -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC data:4byte -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x18 -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x18 data:4byte -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x18 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x58 -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x3C -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x1 data:byte -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x3C data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 scope:local data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x144 -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x24 -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x60 -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x14 -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x20 -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x60 -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float -lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float -lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:float -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float -lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 data:double -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 data:double -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x8 data:double -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 data:double -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x24 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x60 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x14 data:byte +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x20 scope:local +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x60 scope:local +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x50 -lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x50 -lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 data:float -lbl_1_rodata_69C = .rodata:0x0000069C; // type:object size:0x4 data:float -lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x4 data:float -lbl_1_rodata_6A4 = .rodata:0x000006A4; // type:object size:0x4 data:float -lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float -lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 data:float -lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x4 data:float -lbl_1_rodata_6B4 = .rodata:0x000006B4; // type:object size:0x4 data:float -lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 data:double -lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x4 data:float -lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x8 data:double -lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x4 data:float -lbl_1_rodata_6D4 = .rodata:0x000006D4; // type:object size:0x4 data:float -lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float -lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float -lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 data:float -lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 data:float -lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 data:float -lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 data:float -lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0x8 data:double -lbl_1_rodata_6F8 = .rodata:0x000006F8; // type:object size:0x4 data:float -lbl_1_rodata_700 = .rodata:0x00000700; // type:object size:0x8 data:double -lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x4 data:float -lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x8 data:double -lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 data:float -lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x8 data:double -lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float -lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float -lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float -lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x1 data:byte -lbl_1_rodata_738 = .rodata:0x00000738; // type:object size:0x4 data:float -lbl_1_rodata_73C = .rodata:0x0000073C; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x1C +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x50 data:float +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 scope:local data:float +lbl_1_rodata_69C = .rodata:0x0000069C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6A4 = .rodata:0x000006A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6B4 = .rodata:0x000006B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6D4 = .rodata:0x000006D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_6F8 = .rodata:0x000006F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_700 = .rodata:0x00000700; // type:object size:0x8 scope:local data:double +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x4 scope:local data:float +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x8 scope:local data:double +lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 scope:local data:float +lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x8 scope:local data:double +lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 scope:local data:float +lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 scope:local data:float +lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_738 = .rodata:0x00000738; // type:object size:0x4 scope:local data:float +lbl_1_rodata_73C = .rodata:0x0000073C; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x19 scope:local data:string lbl_1_data_1C = .data:0x0000001C; // type:object size:0x14 jumptable_1_data_30 = .data:0x00000030; // type:object size:0x28 scope:local jumptable_1_data_58 = .data:0x00000058; // type:object size:0x28 scope:local jumptable_1_data_80 = .data:0x00000080; // type:object size:0x20 scope:local lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA8 lbl_1_data_148 = .data:0x00000148; // type:object size:0x14 -lbl_1_data_160 = .data:0x00000160; // type:object size:0x1E data:string -lbl_1_data_17E = .data:0x0000017E; // type:object size:0x1E data:string -lbl_1_data_19C = .data:0x0000019C; // type:object size:0x14 -lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x1C +lbl_1_data_160 = .data:0x00000160; // type:object size:0x1E scope:local data:string +lbl_1_data_17E = .data:0x0000017E; // type:object size:0x1E scope:local data:string +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x10 scope:local data:string +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x1B scope:local data:string lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x2C jumptable_1_data_1F8 = .data:0x000001F8; // type:object size:0x24 scope:local -lbl_1_data_21C = .data:0x0000021C; // type:object size:0x40 -lbl_1_data_25C = .data:0x0000025C; // type:object size:0x18 -lbl_1_data_278 = .data:0x00000278; // type:object size:0x1A data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x40 data:float +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x18 data:float +lbl_1_data_278 = .data:0x00000278; // type:object size:0x1A scope:local data:string lbl_1_data_294 = .data:0x00000294; // type:object size:0x18 -lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x37 data:string +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x37 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:float lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:float lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float diff --git a/configure.py b/configure.py index 157ff442..1ac25a5a 100644 --- a/configure.py +++ b/configure.py @@ -1203,12 +1203,12 @@ config.libs = [ "m447dll", # Archaeologuess objects={ Object(Matching, "REL/executor.c"), - Object(NonMatching, "REL/m447dll/main.c"), - Object(NonMatching, "REL/m447dll/stage.c"), - Object(NonMatching, "REL/m447dll/camera.c"), - Object(NonMatching, "REL/m447dll/player.c"), - Object(NonMatching, "REL/m447dll/player_col.c"), - Object(NonMatching, "REL/m447dll/block.c"), + Object(Matching, "REL/m447dll/main.c"), + Object(Matching, "REL/m447dll/stage.c"), + Object(Matching, "REL/m447dll/camera.c"), + Object(Matching, "REL/m447dll/player.c"), + Object(Matching, "REL/m447dll/player_col.c"), + Object(Matching, "REL/m447dll/block.c"), }, ), Rel( diff --git a/include/REL/m447dll.h b/include/REL/m447dll.h new file mode 100755 index 00000000..ad069429 --- /dev/null +++ b/include/REL/m447dll.h @@ -0,0 +1,158 @@ +#ifndef M447DLL_H +#define M447DLL_H + +#include "game/animdata.h" +#include "game/process.h" + +typedef struct { + /* 0x00 */ Process* unk00; + /* 0x04 */ Process* unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ s32 unk28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s16 unk30; + /* 0x32 */ s16 unk32; + /* 0x34 */ s16 unk34[25]; + /* 0x66 */ char unk66[0xA]; + /* 0x70 */ s32 unk70; +} UnkM447Struct_00; // Size 0x74 + +typedef struct { + /* 0x00 */ s16 unk00[22]; + /* 0x2C */ s16 unk2C[6]; + /* 0x38 */ s32 unk38; + /* 0x3C */ s32 unk3C; + /* 0x40 */ s32 unk40; + /* 0x44 */ s32 unk44; + /* 0x48 */ float unk48; + /* 0x4C */ float unk4C; + /* 0x50 */ AnimData* unk50; + /* 0x54 */ s32 unk54[5]; + /* 0x68 */ s32 unk68[5]; + /* 0x7C */ Process* unk7C; +} UnkM447Struct_06; // Size 0x80 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ Vec unk10; + /* 0x1C */ Vec unk1C; + /* 0x28 */ Vec unk28; + /* 0x34 */ float unk34; + /* 0x38 */ float unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ float unk40; + /* 0x44 */ float unk44; + /* 0x48 */ float unk48; + /* 0x4C */ float unk4C; + /* 0x50 */ float unk50; + /* 0x54 */ float unk54; + /* 0x58 */ s16 unk58[23]; + /* 0x86 */ char unk86[2]; + /* 0x88 */ float unk88; + /* 0x8C */ float unk8C; + /* 0x90 */ float unk90; + /* 0x94 */ float unk94; + /* 0x98 */ float unk98; + /* 0x9C */ float unk9C; + /* 0xA0 */ AnimData* unkA0; + /* 0xA4 */ Process* unkA4; + /* 0xA8 */ Vec unkA8; + /* 0xB4 */ float unkB4; + /* 0xB8 */ float unkB8; + /* 0xBC */ float unkBC; + /* 0xC0 */ float unkC0; + /* 0xC4 */ float unkC4; + /* 0xC8 */ float unkC8; +} UnkM447Struct_01; // Size 0xCC + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ char unk02[2]; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ u8 unk18; + /* 0x19 */ u8 unk19; + /* 0x1A */ u8 unk1A; + /* 0x1B */ u8 unk1B; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s16 unk20; + /* 0x22 */ char unk22[2]; + /* 0x24 */ s32 unk24; + /* 0x28 */ Vec unk28; + /* 0x34 */ float unk34; + /* 0x38 */ float unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ float unk40; + /* 0x44 */ float unk44; + /* 0x48 */ float unk48; + /* 0x4C */ float unk4C; + /* 0x50 */ float unk50; + /* 0x54 */ char unk54[0xC]; + /* 0x60 */ s32 unk60; + /* 0x64 */ s32 unk64; + /* 0x68 */ s16 unk68; + /* 0x6A */ s16 unk6A[9]; + /* 0x7C */ s16 unk7C[2]; + /* 0x80 */ char unk80[0x24]; + /* 0xA4 */ s32 unkA4; + /* 0xA8 */ UnkM447Struct_01* unkA8; + /* 0xAC */ Process* unkAC; + /* 0xB0 */ Process* unkB0; + /* 0xB4 */ Process* unkB4; +} UnkM447Struct_04; // Size 0xB8 + +UnkM447Struct_06* fn_1_1D90(void); +void fn_1_1E70(UnkM447Struct_06* arg0); +void fn_1_1EB0(UnkM447Struct_06* arg0, s32 arg1); +BOOL fn_1_1EC0(UnkM447Struct_06* arg0); +void fn_1_1ED4(s32 arg0, Vec* arg1); +void fn_1_1F00(UnkM447Struct_06* arg0, s32 arg1); +s32 fn_1_1F9C(UnkM447Struct_06* arg0); +void fn_1_1FEC(UnkM447Struct_06* arg0, s32 arg1); + +s32 fn_1_3130(void); +void fn_1_32E0(void); +void fn_1_330C(const Vec* arg0, s32 arg1); +void fn_1_33C8(const Vec* arg0, s32 arg1); +void fn_1_3484(float arg0, s32 arg1); +void fn_1_351C(Vec* arg0); +void fn_1_3540(Vec* arg0); + +void fn_1_3F84(void); +UnkM447Struct_04* fn_1_3FC4(s32 arg0); +void fn_1_43CC(UnkM447Struct_04* arg0, s32 arg1); +void fn_1_7A6C(UnkM447Struct_04* arg0); +void fn_1_7AA4(UnkM447Struct_04* arg0, s32 arg1, s32 arg2); + +void fn_1_7B54(Vec* arg0, Vec* arg1, s32 arg2, float arg3); +s32 fn_1_80BC(float* arg0, float* arg1, float* arg2); +s32 fn_1_879C(float* arg0, float* arg1, s32 arg2, s32 arg3); + +UnkM447Struct_01* fn_1_8DF8(void); +void fn_1_8FF4(UnkM447Struct_01* arg0, s32 arg1); +void fn_1_9004(UnkM447Struct_01* arg0, s32 arg1, s32 arg2); +void fn_1_90FC(s32 arg0); +void fn_1_A230(s32 arg0); +s32 fn_1_A240(void); + +extern UnkM447Struct_06* lbl_1_bss_10; +extern UnkM447Struct_00* lbl_1_bss_8; +extern Process* lbl_1_bss_4; +extern UnkM447Struct_04* lbl_1_bss_98[2]; +extern const float lbl_1_rodata_648[20]; +extern UnkM447Struct_01* lbl_1_bss_A4[5]; + +#endif diff --git a/src/REL/m447dll/block.c b/src/REL/m447dll/block.c new file mode 100755 index 00000000..15ce223d --- /dev/null +++ b/src/REL/m447dll/block.c @@ -0,0 +1,458 @@ +#include "REL/m447dll.h" +#include "game/audio.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/sprite.h" + +#include "ext_math.h" + +void fn_1_8F7C(void* arg0); +void fn_1_910C(void); +void fn_1_9158(UnkM447Struct_01* arg0); +void fn_1_9320(UnkM447Struct_01* arg0); +void fn_1_9374(UnkM447Struct_01* arg0); +void fn_1_9538(UnkM447Struct_01* arg0); +void fn_1_953C(UnkM447Struct_01* arg0); +void fn_1_9758(UnkM447Struct_01* arg0); +void fn_1_991C(UnkM447Struct_01* arg0); +void fn_1_9BCC(UnkM447Struct_01* arg0); +void fn_1_9CEC(UnkM447Struct_01* arg0); +void fn_1_9EEC(UnkM447Struct_01* arg0); +void fn_1_9F40(ModelData* model, ParticleData* particle, Mtx matrix); + +u32 lbl_1_bss_B8; // Maybe part of another file with fn_1_A230 and fn_1_A240. +UnkM447Struct_01* lbl_1_bss_A4[5]; +s32 lbl_1_bss_A0; + +const s32 lbl_1_rodata_5F8[] = { + DATA_MAKE_NUM(DATADIR_M447, 12), + DATA_MAKE_NUM(DATADIR_M447, 13), + DATA_MAKE_NUM(DATADIR_M447, 10), + DATA_MAKE_NUM(DATADIR_M447, 11), + DATA_MAKE_NUM(DATADIR_M447, 4), + DATA_MAKE_NUM(DATADIR_M447, 5), + DATA_MAKE_NUM(DATADIR_M447, 16), + DATA_MAKE_NUM(DATADIR_M447, 17), + DATA_MAKE_NUM(DATADIR_M447, 8), + DATA_MAKE_NUM(DATADIR_M447, 9), + DATA_MAKE_NUM(DATADIR_M447, 6), + DATA_MAKE_NUM(DATADIR_M447, 7), + DATA_MAKE_NUM(DATADIR_M447, 18), + DATA_MAKE_NUM(DATADIR_M447, 19), + DATA_MAKE_NUM(DATADIR_M447, 20), + DATA_MAKE_NUM(DATADIR_M447, 21), + DATA_MAKE_NUM(DATADIR_M447, 22), + DATA_MAKE_NUM(DATADIR_M447, 23), + DATA_MAKE_NUM(DATADIR_M447, 14), + DATA_MAKE_NUM(DATADIR_M447, 15) +}; + +const float lbl_1_rodata_648[20] = { + 30.0f, 30.0f, 80.0f, 30.0f, + 80.0f, 80.0f, 60.0f, 60.0f, + 80.0f, 80.0f, 30.0f, 30.0f, + 45.0f, 45.0f, 50.0f, 50.0f, + 30.0f, 30.0f, 75.0f, 50.0f +}; + +UnkM447Struct_01* fn_1_8DF8(void) { + UnkM447Struct_01* temp_r3; + + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r3), MEMORY_DEFAULT_NUM); + if (!temp_r3) { + OSReport("M447BlockCreate ERROR...\n"); + return NULL; + } + temp_r3->unk04 = 0; + temp_r3->unk00 = 0; + temp_r3->unk08 = 0; + temp_r3->unk0C = 0; + temp_r3->unk10.x = 0.0f; + temp_r3->unk10.y = 0.0f; + temp_r3->unk10.z = 0.0f; + temp_r3->unk40 = 0.0f; + temp_r3->unk44 = 0.0f; + temp_r3->unk48 = 0.0f; + temp_r3->unk4C = 0.0f; + temp_r3->unk50 = 0.0f; + temp_r3->unk54 = 0.0f; + temp_r3->unk1C.x = 0.0f; + temp_r3->unk1C.y = 0.0f; + temp_r3->unk1C.z = 0.0f; + temp_r3->unk8C = 1.0f; + fn_1_9158(temp_r3); + temp_r3->unkA4 = HuPrcChildCreate(fn_1_910C, 105, 0x3000, 0, lbl_1_bss_4); + temp_r3->unkA4->user_data = temp_r3; + return temp_r3; +} + +void fn_1_8F7C(void* arg0) { + fn_1_8F7C(arg0); + HuMemDirectFree(arg0); +} + +void fn_1_8FF4(UnkM447Struct_01* arg0, s32 arg1) { + arg0->unk04 = arg1; + arg0->unk0C = 0; +} + +void fn_1_9004(UnkM447Struct_01* arg0, s32 arg1, s32 arg2) { + if (lbl_1_bss_A0 != 0) { + arg0->unk00 = arg1 * 2 + (arg2 != 0 ? 0 : 1); + } else { + arg0->unk00 = arg1 * 2 + (arg2 != 0 ? 1 : 0); + } + arg0->unk08 = arg2; + arg0->unk8C = 1.0f; + arg0->unk4C = 1.0f; + arg0->unk50 = 1.0f; + arg0->unk54 = 1.0f; + Hu3DModelAttrSet(arg0->unk58[arg0->unk00], 1); + Hu3DModelAttrSet(arg0->unk58[21], 1); +} + +void fn_1_90FC(s32 arg0) { + lbl_1_bss_A0 = arg0; +} + +void (*lbl_1_data_294[])(UnkM447Struct_01*) = { + fn_1_9538, + fn_1_953C, + fn_1_9758, + fn_1_991C, + fn_1_9BCC, + fn_1_9CEC +}; + +void fn_1_910C(void) { + UnkM447Struct_01* temp_r31; + + temp_r31 = HuPrcCurrentGet()->user_data; + while (TRUE) { + lbl_1_data_294[temp_r31->unk04](temp_r31); + fn_1_9374(temp_r31); + HuPrcVSleep(); + } +} + +void fn_1_9158(UnkM447Struct_01* arg0) { + s32 i; + + for (i = 0; i <= 19; i++) { + arg0->unk58[i] = Hu3DModelCreateFile(lbl_1_rodata_5F8[i]); + Hu3DModelAttrSet(arg0->unk58[i], 2); + Hu3DModelLayerSet(arg0->unk58[i], 7); + } + arg0->unk58[20] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M447, 30)); + Hu3DModelLayerSet(arg0->unk58[20], 7); + arg0->unk58[21] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M447, 25)); + Hu3DModelLayerSet(arg0->unk58[21], 7); + arg0->unkA0 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M447, 57)); + arg0->unk58[22] = Hu3DParticleCreate(arg0->unkA0, 64); + Hu3DParticleHookSet(arg0->unk58[22], fn_1_9F40); + Hu3DParticleBlendModeSet(arg0->unk58[22], 1); + Hu3DModelLayerSet(arg0->unk58[22], 6); + Hu3DModelAttrSet(arg0->unk58[22], 1); + for (i = 0; i <= 19; i++) { + Hu3DModelAttrSet(arg0->unk58[i], 1); + } + Hu3DModelAttrReset(arg0->unk58[arg0->unk00], 1); + Hu3DModelAttrSet(arg0->unk58[20], 1); + Hu3DModelAttrSet(arg0->unk58[21], 1); + for (i = 0; i <= 19; i++) { + Hu3DModelShadowSet(arg0->unk58[i]); + } +} + +void fn_1_9320(UnkM447Struct_01* arg0) { + s32 i; + + for (i = 0; i < 23; i++) { + Hu3DModelKill(arg0->unk58[i]); + } +} + +void fn_1_9374(UnkM447Struct_01* arg0) { + ModelData* temp_r30; + Mtx sp8; + + temp_r30 = &Hu3DData[arg0->unk58[arg0->unk00]]; + PSMTXIdentity(temp_r30->unk_F0); + PSMTXRotRad(sp8, 'x', MTXDegToRad(arg0->unk1C.x)); + PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); + PSMTXRotRad(sp8, 'y', MTXDegToRad(arg0->unk1C.y)); + PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); + PSMTXRotRad(sp8, 'z', MTXDegToRad(arg0->unk1C.z)); + PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); + Hu3DModelPosSet(arg0->unk58[arg0->unk00], arg0->unk10.x, arg0->unk10.y, arg0->unk10.z); + Hu3DModelPosSet(arg0->unk58[20], arg0->unk10.x, arg0->unk10.y - 100.0f, arg0->unk10.z); + Hu3DModelPosSet(arg0->unk58[21], arg0->unk10.x, arg0->unk10.y, arg0->unk10.z + 120.0f * arg0->unk54); + Hu3DModelRotSet(arg0->unk58[arg0->unk00], arg0->unk40, arg0->unk44, arg0->unk48); + Hu3DModelScaleSet(arg0->unk58[arg0->unk00], arg0->unk4C, arg0->unk50, arg0->unk54); + Hu3DModelScaleSet(arg0->unk58[21], arg0->unk4C, arg0->unk50, arg0->unk54); + Hu3DModelTPLvlSet(arg0->unk58[arg0->unk00], arg0->unk8C); +} + +void fn_1_9538(UnkM447Struct_01* arg0) { +} + +void fn_1_953C(UnkM447Struct_01* arg0) { + float temp_f31; + + switch (arg0->unk0C) { + case 0: + arg0->unk90 = 0.0f; + arg0->unk98 = 0.016666668f; + arg0->unk10.y = -100.0f; + arg0->unk44 = 0.0f; + arg0->unk4C = 0.0f; + arg0->unk50 = 0.0f; + arg0->unk54 = 0.0f; + arg0->unk88 = -50.0f; + Hu3DModelAttrReset(arg0->unk58[arg0->unk00], 1); + arg0->unk0C = 1; + /* fallthrough */ + case 1: + arg0->unk44 += arg0->unk88; + temp_f31 = sind(90.0f * arg0->unk90); + arg0->unk10.y = -100.0f + 500.0f * temp_f31; + arg0->unk4C = arg0->unk90; + arg0->unk50 = arg0->unk90; + arg0->unk54 = arg0->unk90; + arg0->unk8C = temp_f31; + arg0->unk90 += arg0->unk98; + if (arg0->unk90 < 1.0f) { + break; + } + arg0->unk10.y = 400.0f; + arg0->unk4C = 1.0f; + arg0->unk50 = 1.0f; + arg0->unk54 = 1.0f; + arg0->unk8C = 1.0f; + arg0->unk0C = 2; + /* fallthrough */ + case 2: + fn_1_8FF4(arg0, 2); + break; + } +} + +void fn_1_9758(UnkM447Struct_01* arg0) { + float temp_f31; + + switch (arg0->unk0C) { + case 0: + arg0->unk90 = 0.1f * (fn_1_A240() % 10); + arg0->unk98 = 0.011111111f; + arg0->unk0C = 1; + /* fallthrough */ + case 1: + if (arg0->unk88 < -8.0f) { + arg0->unk88 += 0.05f; + } + temp_f31 = sind(180.0f * arg0->unk90); + temp_f31 *= temp_f31; + arg0->unk10.y = 400.0f + temp_f31 * 25.0f; + arg0->unk44 += arg0->unk88; + arg0->unk90 += arg0->unk98; + if (arg0->unk90 < 1.0f) { + break; + } + arg0->unk90 = 0.0f; + break; + case 2: + fn_1_8FF4(arg0, 0); + break; + } +} + +void fn_1_991C(UnkM447Struct_01* arg0) { + float temp_f31; + + switch (arg0->unk0C) { + case 0: + arg0->unk90 = 0.0f; + arg0->unk98 = 0.5f; + arg0->unk94 = 0.0f; + arg0->unk9C = 0.05f; + arg0->unk8C = 1.0f; + arg0->unk10.y = 400.0f; + arg0->unk28 = arg0->unk1C; + arg0->unk34 = 0.0f; + arg0->unk38 = arg0->unk1C.y; + arg0->unk3C = 0.0f; + arg0->unk0C = 1; + /* fallthrough */ + case 1: + temp_f31 = arg0->unk94; + arg0->unk1C.x = arg0->unk28.x + temp_f31 * (arg0->unk34 - arg0->unk28.x); + arg0->unk1C.y = arg0->unk28.y + temp_f31 * (arg0->unk38 - arg0->unk28.y); + arg0->unk1C.z = arg0->unk28.z + temp_f31 * (arg0->unk3C - arg0->unk28.z); + if (arg0->unk94 < 1.0f) { + arg0->unk94 += arg0->unk9C; + if (arg0->unk94 > 1.0f) { + arg0->unk94 = 1.0f; + } + } + temp_f31 = arg0->unk90; + arg0->unk10.y = 400.0 + 50.0f * temp_f31 * sind(90) - 4.9f * temp_f31 * temp_f31; + arg0->unk90 += arg0->unk98; + if (arg0->unk10.y >= lbl_1_rodata_648[arg0->unk00]) { + break; + } + arg0->unk10.y = lbl_1_rodata_648[arg0->unk00]; + HuAudFXPlay(0x785); + fn_1_1FEC(lbl_1_bss_10, 30); + arg0->unk0C = 2; + /* fallthrough */ + case 2: + Hu3DModelAttrReset(arg0->unk58[20], 1); + Hu3DMotionTimeSet(arg0->unk58[20], 0.0f); + fn_1_8FF4(arg0, 4); + break; + } +} + +void fn_1_9BCC(UnkM447Struct_01* arg0) { + switch (arg0->unk0C) { + case 0: + arg0->unk90 = 0.0f; + arg0->unk98 = 0.016666668f; + arg0->unk0C = 1; + /* fallthrough */ + case 1: + arg0->unk8C = 1.0 - sind(90.0f * arg0->unk90); + arg0->unk90 += arg0->unk98; + if (arg0->unk90 < 1.0f) { + break; + } + arg0->unk0C = 2; + /* fallthrough */ + case 2: + Hu3DModelAttrSet(arg0->unk58[arg0->unk00], 1); + fn_1_8FF4(arg0, 0); + break; + } +} + +void fn_1_9CEC(UnkM447Struct_01* arg0) { + float temp_f31; + + switch (arg0->unk0C) { + case 0: + arg0->unk90 = 0.0f; + arg0->unk98 = 0.008333334f; + Hu3DModelAttrReset(arg0->unk58[21], 1); + Hu3DMotionTimeSet(arg0->unk58[21], 0.0f); + Hu3DModelAttrSet(arg0->unk58[21], 0x40000001); + arg0->unkA8 = arg0->unk10; + arg0->unkB4 = 0.0f; + arg0->unkB8 = 200.0f; + arg0->unkBC = -700.0f - arg0->unk10.z / 2; + arg0->unkC0 = 0.0f; + arg0->unkC4 = 400.0f; + arg0->unkC8 = -700.0f; + fn_1_9EEC(arg0); + HuAudFXPlay(0x781); + arg0->unk0C = 1; + /* fallthrough */ + case 1: + temp_f31 = arg0->unk90; + arg0->unk4C = 1.0f - temp_f31; + arg0->unk50 = 1.0f - temp_f31; + arg0->unk54 = 1.0f - temp_f31; + fn_1_7B54(&arg0->unk10, &arg0->unkA8, 3, temp_f31); + arg0->unk90 += arg0->unk98; + if (arg0->unk90 < 1.0f) { + break; + } + arg0->unk0C = 2; + /* fallthrough */ + case 2: + fn_1_1EB0(lbl_1_bss_10, 2); + fn_1_8FF4(arg0, 0); + break; + } +} + +void fn_1_9EEC(UnkM447Struct_01* arg0) { + ModelData* temp_r30; + ParticleData* temp_r31; + + temp_r30 = &Hu3DData[arg0->unk58[22]]; + temp_r31 = temp_r30->unk_120; + temp_r30->attr &= ~1; + temp_r31->unk_00 = 0; + temp_r31->unk_02 = 1; + temp_r31->unk_1C = arg0; +} + +void fn_1_9F40(ModelData* model, ParticleData* particle, Mtx matrix) { + GXColor sp8 = { 0xFF, 0xFF, 0xFF, 0xFF }; + UnkM447Struct_01* temp_r29; + HsfanimStruct01* var_r31; + s32 var_r27; + s32 i; + + if (particle->unk_02 == 0) { + return; + } + temp_r29 = particle->unk_1C; + if (particle->unk_00 == 0) { + particle->unk_00 = 1; + for (i = 0, var_r31 = particle->unk_48; i < particle->unk_30; i++, var_r31++) { + var_r31->unk00_s16 = i * 5; + var_r31->unk02 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.r = sp8.r; + var_r31->unk40.g = sp8.g; + var_r31->unk40.b = sp8.b; + var_r31->unk40.a = sp8.a; + } + } + for (i = 0, var_r27 = 0, var_r31 = particle->unk_48; i < particle->unk_30; i++, var_r31++) { + if (var_r31->unk00_s16 > 0 && --var_r31->unk00_s16 > 0) { + continue; + } + if (var_r31->unk02 == 0 && temp_r29->unk04 == 5 && temp_r29->unk10.z > -700.0f) { + var_r31->unk34.x = temp_r29->unk10.x; + var_r31->unk34.y = temp_r29->unk10.y; + var_r31->unk34.z = temp_r29->unk10.z; + var_r31->unk2C = 20.0f; + var_r31->unk02 = 1; + } else if (var_r31->unk02 == 1) { + var_r31->unk34.y -= 1.0f; + var_r31->unk34.z += 3.0f; + var_r31->unk2C = 20.0f + fn_1_A240() % 60; + if (var_r31->unk40.a > 10) { + var_r31->unk40.a -= 4; + } else { + var_r31->unk40.a = 0; + var_r31->unk02 = 2; + } + } else { + var_r27++; + } + } + if (var_r27 == particle->unk_30) { + OSReport("*****************************************************\n"); + OSReport("*****************************************************\n"); + OSReport("*****************************************************\n"); + OSReport("*****************************************************\n"); + OSReport("*****************************************************\n"); + OSReport("*****************************************************\n"); + OSReport("*****************************************************\n"); + OSReport("*****************************************************\n"); + particle->unk_02 = 0; + } +} + +void fn_1_A230(s32 arg0) { + lbl_1_bss_B8 = arg0; +} + +s32 fn_1_A240(void) { + return ((lbl_1_bss_B8 = lbl_1_bss_B8 * 0x41C64E6D + 0x3039) >> 16) % (1 << 15); +} diff --git a/src/REL/m447dll/camera.c b/src/REL/m447dll/camera.c new file mode 100755 index 00000000..25e58b5b --- /dev/null +++ b/src/REL/m447dll/camera.c @@ -0,0 +1,151 @@ +#include "REL/m447dll.h" +#include "game/hsfman.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/process.h" + +#include "ext_math.h" + +typedef struct { + /* 0x00 */ Vec unk00; + /* 0x0C */ Vec unk0C; + /* 0x18 */ float unk18; +} UnkM447Struct_05; // Size 0x1C + +void fn_1_3564(void); +void fn_1_3C7C(void); +void fn_1_3EA8(void); + +Process* lbl_1_bss_90; +UnkM447Struct_05 lbl_1_bss_74; +UnkM447Struct_05 lbl_1_bss_58; +UnkM447Struct_05 lbl_1_bss_3C; +s32 lbl_1_bss_38; +s32 lbl_1_bss_34; +s32 lbl_1_bss_30; +float lbl_1_bss_2C; +float lbl_1_bss_28; +float lbl_1_bss_24; +float lbl_1_bss_20; +float lbl_1_bss_1C; +float lbl_1_bss_18; + +s32 fn_1_3130(void) { + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 55.0f, 10.0f, 8000.0f, 1.2f); + lbl_1_bss_74.unk00.x = 0.0f; + lbl_1_bss_74.unk00.y = 400.0f; + lbl_1_bss_74.unk00.z = 0.0f; + lbl_1_bss_74.unk0C.x = 0.0f; + lbl_1_bss_74.unk0C.y = 0.0f; + lbl_1_bss_74.unk0C.z = 0.0f; + lbl_1_bss_74.unk18 = 200.0f; + lbl_1_bss_38 = 0; + lbl_1_bss_34 = 0; + lbl_1_bss_30 = 0; + lbl_1_bss_90 = HuPrcChildCreate(fn_1_3564, 100, 0x2000, 0, lbl_1_bss_4); + return 1; +} + +void fn_1_32E0(void) { + HuPrcKill(lbl_1_bss_90); +} + +void fn_1_330C(const Vec* arg0, s32 arg1) { + lbl_1_bss_3C.unk00 = *arg0; + lbl_1_bss_58.unk00 = lbl_1_bss_74.unk00; + lbl_1_bss_2C = 0.0f; + lbl_1_bss_20 = 1.0f / arg1; + lbl_1_bss_38 = 1; +} + +void fn_1_33C8(const Vec* arg0, s32 arg1) { + lbl_1_bss_3C.unk0C = *arg0; + lbl_1_bss_58.unk0C = lbl_1_bss_74.unk0C; + lbl_1_bss_28 = 0.0f; + lbl_1_bss_1C = 1.0f / arg1; + lbl_1_bss_34 = 1; +} + +void fn_1_3484(float arg0, s32 arg1) { + lbl_1_bss_3C.unk18 = arg0; + lbl_1_bss_58.unk18 = lbl_1_bss_74.unk18; + lbl_1_bss_24 = 0.0f; + lbl_1_bss_18 = 1.0f / arg1; + lbl_1_bss_30 = 1; +} + +void fn_1_351C(Vec* arg0) { + *arg0 = lbl_1_bss_74.unk00; +} + +void fn_1_3540(Vec* arg0) { + lbl_1_bss_74.unk00 = *arg0; +} + +void fn_1_3564(void) { + Vec sp28; + Vec sp1C; + Vec sp10; + float temp_f31; + + while (TRUE) { + if (lbl_1_bss_38 != 0) { + temp_f31 = sind(90.0f * lbl_1_bss_2C); + temp_f31 *= temp_f31; + lbl_1_bss_74.unk00.x = lbl_1_bss_58.unk00.x + temp_f31 * (lbl_1_bss_3C.unk00.x - lbl_1_bss_58.unk00.x); + lbl_1_bss_74.unk00.y = lbl_1_bss_58.unk00.y + temp_f31 * (lbl_1_bss_3C.unk00.y - lbl_1_bss_58.unk00.y); + lbl_1_bss_74.unk00.z = lbl_1_bss_58.unk00.z + temp_f31 * (lbl_1_bss_3C.unk00.z - lbl_1_bss_58.unk00.z); + if ((lbl_1_bss_2C += lbl_1_bss_20) >= 1.0f) { + lbl_1_bss_74.unk00 = lbl_1_bss_3C.unk00; + lbl_1_bss_38 = 0; + } + } + if (lbl_1_bss_34 != 0) { + temp_f31 = sind(90.0f * lbl_1_bss_28); + temp_f31 *= temp_f31; + lbl_1_bss_74.unk0C.x = lbl_1_bss_58.unk0C.x + temp_f31 * (lbl_1_bss_3C.unk0C.x - lbl_1_bss_58.unk0C.x); + lbl_1_bss_74.unk0C.y = lbl_1_bss_58.unk0C.y + temp_f31 * (lbl_1_bss_3C.unk0C.y - lbl_1_bss_58.unk0C.y); + lbl_1_bss_74.unk0C.z = lbl_1_bss_58.unk0C.z + temp_f31 * (lbl_1_bss_3C.unk0C.z - lbl_1_bss_58.unk0C.z); + if ((lbl_1_bss_28 += lbl_1_bss_1C) >= 1.0f) { + lbl_1_bss_74.unk0C = lbl_1_bss_3C.unk0C; + lbl_1_bss_34 = 0; + } + } + if (lbl_1_bss_30 != 0) { + temp_f31 = sind(90.0f * lbl_1_bss_24); + temp_f31 *= temp_f31; + lbl_1_bss_74.unk18 = lbl_1_bss_58.unk18 + temp_f31 * (lbl_1_bss_3C.unk18 - lbl_1_bss_58.unk18); + if ((lbl_1_bss_24 += lbl_1_bss_18) >= 1.0f) { + lbl_1_bss_74.unk18 = lbl_1_bss_3C.unk18; + lbl_1_bss_30 = 0; + } + } + sp28.x = lbl_1_bss_74.unk00.x + sind(lbl_1_bss_74.unk0C.y) * cosd(lbl_1_bss_74.unk0C.x) * lbl_1_bss_74.unk18; + sp28.y = lbl_1_bss_74.unk00.y + -sind(lbl_1_bss_74.unk0C.x) * lbl_1_bss_74.unk18; + sp28.z = lbl_1_bss_74.unk00.z + cosd(lbl_1_bss_74.unk0C.y) * cosd(lbl_1_bss_74.unk0C.x) * lbl_1_bss_74.unk18; + sp10.x = sind(lbl_1_bss_74.unk0C.y) * sind(lbl_1_bss_74.unk0C.x); + sp10.y = cosd(lbl_1_bss_74.unk0C.x); + sp10.z = cosd(lbl_1_bss_74.unk0C.y) * sind(lbl_1_bss_74.unk0C.x); + sp1C = lbl_1_bss_74.unk00; + Hu3DCameraPosSet(1, sp28.x, sp28.y, sp28.z, sp10.x, sp10.y, sp10.z, sp1C.x, sp1C.y, sp1C.z); + HuPrcVSleep(); + } +} + +void fn_1_3C7C(void) { + if (HuPadBtn[0] & 4) { + lbl_1_bss_74.unk00.x += 0.02f * HuPadStkX[0]; + lbl_1_bss_74.unk00.y += 0.02f * HuPadStkY[0]; + lbl_1_bss_74.unk0C.y -= 0.02f * HuPadSubStkX[0]; + lbl_1_bss_74.unk0C.x += 0.02f * HuPadSubStkY[0]; + lbl_1_bss_74.unk18 += 0.02f * HuPadTrigL[0]; + lbl_1_bss_74.unk18 -= 0.02f * HuPadTrigR[0]; + } +} + +void fn_1_3EA8(void) { + print8(32, 132, 1.5f, "LOOKAT : x=%.2f y=%.2f z=%.2f", lbl_1_bss_74.unk00.x, lbl_1_bss_74.unk00.y, lbl_1_bss_74.unk00.z); + print8(32, 148, 1.5f, "ANGLE : x=%.2f y=%.2f z=%.2f", lbl_1_bss_74.unk0C.x, lbl_1_bss_74.unk0C.y, lbl_1_bss_74.unk0C.z); + print8(32, 164, 1.5f, "ZOOM : x=%.2f", lbl_1_bss_74.unk18); +} diff --git a/src/REL/m447dll/main.c b/src/REL/m447dll/main.c new file mode 100755 index 00000000..a8389fa0 --- /dev/null +++ b/src/REL/m447dll/main.c @@ -0,0 +1,713 @@ +#include "REL/m447dll.h" +#include "REL/executor.h" +#include "game/esprite.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "rel_sqrt_consts.h" + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ char unk02[2]; + /* 0x04 */ float unk04; + /* 0x08 */ float unk08; +} UnkM447Struct_03; // Size 0xC + +void fn_1_12C(void); +UnkM447Struct_00* fn_1_1B8(void); +void fn_1_43C(UnkM447Struct_00* arg0); +BOOL fn_1_490(UnkM447Struct_00* arg0); +void fn_1_4A0(UnkM447Struct_00* arg0, s32 arg1); +void fn_1_4B0(void); +void fn_1_544(UnkM447Struct_00* arg0); +void fn_1_7A8(UnkM447Struct_00* arg0); +void fn_1_B5C(UnkM447Struct_00* arg0); +void fn_1_F34(UnkM447Struct_00* arg0); +void fn_1_1068(UnkM447Struct_00* arg0); +void fn_1_1394(UnkM447Struct_00* arg0, s16 arg1, s32 arg2); +s32 fn_1_141C(UnkM447Struct_00* arg0, s16 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_1484(void); +void fn_1_1754(UnkM447Struct_00* arg0); +void fn_1_1830(UnkM447Struct_00* arg0); +void fn_1_1884(UnkM447Struct_00* arg0); +void fn_1_1AFC(UnkM447Struct_00* arg0, s32 arg1, s32 arg2); +void fn_1_1BF8(void); +void fn_1_1CE0(UnkM447Struct_00* arg0); +void fn_1_1D34(UnkM447Struct_00* arg0); + +UnkM447Struct_06* lbl_1_bss_10; +char lbl_1_bss_C_pad[4]; +UnkM447Struct_00* lbl_1_bss_8; +Process* lbl_1_bss_4; +Process* lbl_1_bss_0; + +const s32 lbl_1_rodata_10[] = { + DATA_MAKE_NUM(DATADIR_M447, 53), + DATA_MAKE_NUM(DATADIR_M447, 53), + DATA_MAKE_NUM(DATADIR_M447, 54), + DATA_MAKE_NUM(DATADIR_M447, 54), + DATA_MAKE_NUM(DATADIR_M447, 55), + DATA_MAKE_NUM(DATADIR_M447, 55), + DATA_MAKE_NUM(DATADIR_M447, 55), + DATA_MAKE_NUM(DATADIR_M447, 56), + DATA_MAKE_NUM(DATADIR_M447, 56), + DATA_MAKE_NUM(DATADIR_M447, 56), + DATA_MAKE_NUM(DATADIR_M447, 55), + DATA_MAKE_NUM(DATADIR_M447, 55), + DATA_MAKE_NUM(DATADIR_M447, 55), + DATA_MAKE_NUM(DATADIR_M447, 56), + DATA_MAKE_NUM(DATADIR_M447, 56), + DATA_MAKE_NUM(DATADIR_M447, 56), + DATA_MAKE_NUM(DATADIR_M447, 44), + DATA_MAKE_NUM(DATADIR_M447, 45), + DATA_MAKE_NUM(DATADIR_M447, 46), + DATA_MAKE_NUM(DATADIR_M447, 47), + DATA_MAKE_NUM(DATADIR_M447, 48), + DATA_MAKE_NUM(DATADIR_M447, 49), + DATA_MAKE_NUM(DATADIR_M447, 50), + DATA_MAKE_NUM(DATADIR_M447, 51), + DATA_MAKE_NUM(DATADIR_M447, 52) +}; + +void ObjectSetup(void) { + lbl_1_bss_4 = omInitObjMan(10, 0x2000); + omGameSysInit(lbl_1_bss_4); + HuWinInit(1); + lbl_1_bss_0 = HuPrcChildCreate(fn_1_12C, 1000, 0x2000, 0, lbl_1_bss_4); + lbl_1_bss_8 = fn_1_1B8(); +} + +void fn_1_12C(void) { + while (omSysExitReq == 0) { + HuPrcVSleep(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + HuAudFadeOut(100); + fn_1_43C(lbl_1_bss_8); + HuPrcVSleep(); + omOvlReturnEx(1, 1); + HuPrcEnd(); +} + +UnkM447Struct_00* fn_1_1B8(void) { + Vec sp2C; + Vec sp20 = { 0.0f, 3000.0f, 1.0f }; + Vec sp14 = { 0.0f, 1.0f, 0.0f }; + Vec sp8 = { 0.0f, 0.0f, 0.0f }; + UnkM447Struct_00* temp_r3; + s32 i; + + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r3), MEMORY_DEFAULT_NUM); + if (!temp_r3) { + OSReport("M447FlowCreate ERROR...\n"); + return NULL; + } + Hu3DShadowCreate(30.0f, 20.0f, 5000.0f); + Hu3DShadowTPLvlSet(0.45f); + Hu3DShadowPosSet(&sp20, &sp14, &sp8); + fn_1_A230(frand()); + temp_r3->unk08 = 0; + fn_1_3130(); + lbl_1_bss_10 = fn_1_1D90(); + sp2C.x = 0.0f; + sp2C.y = -1000.0f; + sp2C.z = 0.0f; + for (i = 0; i < 5; i++) { + lbl_1_bss_A4[i] = fn_1_8DF8(); + lbl_1_bss_A4[i]->unk10 = sp2C; + } + fn_1_3F84(); + for (i = 0; i < 2; i++) { + lbl_1_bss_98[i] = fn_1_3FC4(i); + } + fn_1_1D34(temp_r3); + fn_1_1754(temp_r3); + temp_r3->unk14 = 0; + temp_r3->unk1C = 0; + temp_r3->unk24 = 0; + temp_r3->unk28 = 0; + temp_r3->unk2C = 0; + temp_r3->unk10 = 0; + temp_r3->unk70 = -1; + temp_r3->unk30 = -1; + temp_r3->unk32 = -1; + temp_r3->unk00 = HuPrcChildCreate(fn_1_4B0, 100, 0x4000, 0, lbl_1_bss_4); + temp_r3->unk00->user_data = temp_r3; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + return temp_r3; +} + +void fn_1_43C(UnkM447Struct_00* arg0) { + fn_1_1830(arg0); + fn_1_1E70(lbl_1_bss_10); + fn_1_32E0(); + HuPrcKill(arg0->unk00); + HuMemDirectFree(arg0); +} + +BOOL fn_1_490(UnkM447Struct_00* arg0) { + return arg0->unk08 == 0; +} + +void fn_1_4A0(UnkM447Struct_00* arg0, s32 arg1) { + arg0->unk14 = arg1; + arg0->unk1C = 0; +} + +void (*lbl_1_data_1C[])(UnkM447Struct_00*) = { + fn_1_544, + fn_1_7A8, + fn_1_B5C, + fn_1_F34, + fn_1_1068 +}; + +void fn_1_4B0(void) { + UnkM447Struct_00* temp_r31; + + temp_r31 = HuPrcCurrentGet()->user_data; + while (omSysExitReq == 0 || !fn_1_490(temp_r31)) { + lbl_1_data_1C[temp_r31->unk14](temp_r31); + HuPrcVSleep(); + } + omSysExitReq = 1; + temp_r31->unk08 = 1; + HuPrcEnd(); +} + +const Vec lbl_1_rodata_B0[2] = { + { 0.0f, 300.0f, 0.0f }, + { -0.12f, 176.0f, 0.0f } +}; + +void fn_1_544(UnkM447Struct_00* arg0) { + s32 i; + + switch (arg0->unk1C) { + case 0: + arg0->unk20 = 0; + arg0->unk1C = 1; + break; + case 1: + WipeStatGet(); + arg0->unk1C = 2; + break; + case 2: + if (arg0->unk20++ >= 60) { + arg0->unk1C = 3; + } + break; + case 3: + fn_1_1EB0(lbl_1_bss_10, 1); + arg0->unk20 = 0; + arg0->unk1C = 4; + break; + case 4: + if (!fn_1_1EC0(lbl_1_bss_10)) { + arg0->unk1C = 5; + } + break; + case 5: + if (lbl_1_bss_98[1]->unk18 == 8) { + arg0->unk70 = HuAudSeqPlay(0x3D); + } + fn_1_3484(860.0f, 60); + fn_1_330C(&lbl_1_rodata_B0[1], 60); + arg0->unk20 = 0; + arg0->unk1C = 6; + break; + case 6: + if (arg0->unk20++ >= 60) { + if (lbl_1_bss_98[1]->unk18 == 8) { + arg0->unk1C = 7; + } else { + arg0->unk1C = 9; + } + } + break; + case 7: + arg0->unk04 = HuPrcChildCreate(fn_1_1484, 100, 0x2000, 0, lbl_1_bss_4); + arg0->unk04->user_data = arg0; + arg0->unk0C = 1; + arg0->unk1C = 8; + break; + case 8: + if (arg0->unk0C != 0) { + break; + } + arg0->unk04 = NULL; + arg0->unk1C = 9; + /* fallthrough */ + case 9: + if (arg0->unk70 != -1) { + HuAudSeqFadeOut(arg0->unk70, 1000); + } + fn_1_3484(1150.0f, 60); + fn_1_330C(&lbl_1_rodata_B0[0], 60); + for (i = 0; i < 2; i++) { + fn_1_43CC(lbl_1_bss_98[i], 6); + } + fn_1_4A0(arg0, 1); + break; + } +} + +void fn_1_7A8(UnkM447Struct_00* arg0) { + Vec sp14; + Vec sp8; + s32 temp_r29; + s32 temp_r28; + s32 i; + + switch (arg0->unk1C) { + case 0: + arg0->unk1C = 1; + /* fallthrough */ + case 1: + fn_1_1EB0(lbl_1_bss_10, 3); + arg0->unk20 = 0; + arg0->unk1C = 2; + /* fallthrough */ + case 2: + if (arg0->unk20++ < 110) { + break; + } + arg0->unk1C = 3; + /* fallthrough */ + case 3: + fn_1_90FC(fn_1_A240() % 10 > 5); + temp_r29 = arg0->unk2C * 2 + fn_1_A240() % 2; + temp_r28 = fn_1_A240() % 5; + for (i = 0; i < 5; i++) { + fn_1_9004(lbl_1_bss_A4[i], temp_r29, temp_r28 == i); + fn_1_1ED4(i, &sp8); + lbl_1_bss_A4[i]->unk10 = sp8; + sp14.x = fn_1_A240() % 360; + sp14.y = 0.0f; + sp14.z = fn_1_A240() % 360; + lbl_1_bss_A4[i]->unk1C = sp14; + fn_1_8FF4(lbl_1_bss_A4[i], 1); + } + arg0->unk20 = 0; + arg0->unk1C = 4; + /* fallthrough */ + case 4: + if (arg0->unk20++ < 60) { + break; + } + for (i = 0; i < 5; i++) { + fn_1_8FF4(lbl_1_bss_A4[i], 2); + } + /* fallthrough */ + arg0->unk1C = 5; + case 5: + fn_1_1EB0(lbl_1_bss_10, 4); + arg0->unk20 = 0; + arg0->unk1C = 6; + /* fallthrough */ + case 6: + if (!fn_1_1EC0(lbl_1_bss_10)) { + if (arg0->unk10 != 0) { + arg0->unk1C = 9; + } else { + arg0->unk1C = 7; + } + } + break; + case 7: + arg0->unk70 = HuAudSeqPlay(0x3E); + arg0->unk30 = MGSeqStartCreate(); + arg0->unk1C = 8; + /* fallthrough */ + case 8: + if (MGSeqStatGet(arg0->unk30) != 0) { + break; + } + arg0->unk10 = 1; + arg0->unk1C = 9; + /* fallthrough */ + case 9: + fn_1_4A0(arg0, 2); + break; + } +} + +void fn_1_B5C(UnkM447Struct_00* arg0) { + s32 temp_r26; + s32 var_r27; + s32 i; + + switch (arg0->unk1C) { + case 0: + fn_1_1884(arg0); + arg0->unk24 = 900; + arg0->unk32 = MGSeqCreate(1, arg0->unk24 / 60, -1, -1); + for (i = 0; i < 2; i++) { + fn_1_43CC(lbl_1_bss_98[i], 1); + lbl_1_bss_98[i]->unk04 = 1; + } + arg0->unk1C = 1; + /* fallthrough */ + case 1: + temp_r26 = fn_1_1F9C(lbl_1_bss_10); + if (arg0->unk24 > 0 && temp_r26 > 0 && --arg0->unk24 % 60 == 0) { + MGSeqParamSet(arg0->unk32, 1, arg0->unk24 / 60); + } + if (arg0->unk24 > 0 && temp_r26 > 0) { + break; + } + arg0->unk1C = 2; + /* fallthrough */ + case 2: + for (i = 0; i < 2; i++) { + lbl_1_bss_98[i]->unk04 = 0; + fn_1_7A6C(lbl_1_bss_98[i]); + } + arg0->unk1C = 3; + break; + case 3: + if (arg0->unk32 != -1) { + MGSeqParamSet(arg0->unk32, 2, -1); + arg0->unk32 = -1; + } + for (i = 0; i < 2; i++) { + if (lbl_1_bss_98[i]->unk24 != 1 && lbl_1_bss_98[i]->unk24 != 0) { + return; + } + } + for (i = 0; i < 5; i++) { + if (lbl_1_bss_A4[i]->unk04 != 0 && lbl_1_bss_A4[i]->unk04 != 2) { + return; + } + } + arg0->unk1C = 4; + /* fallthrough */ + case 4: + for (i = 0; i < 2; i++) { + if (lbl_1_bss_98[i]->unk14 != 0) { + fn_1_1AFC(arg0, i, lbl_1_bss_98[i]->unk1B - 1); + } + } + arg0->unk2C++; + for (i = 0, var_r27 = 0; i < 2; i++) { + if (lbl_1_bss_98[i]->unk1B > var_r27) { + var_r27 = lbl_1_bss_98[i]->unk1B; + } + } + if (var_r27 >= 3 || arg0->unk2C >= 5) { + fn_1_4A0(lbl_1_bss_8, 4); + } else { + fn_1_4A0(lbl_1_bss_8, 3); + } + break; + } +} + +void fn_1_F34(UnkM447Struct_00* arg0) { + s32 i; + + switch (arg0->unk1C) { + case 0: + for (i = 0; i < 2; i++) { + fn_1_43CC(lbl_1_bss_98[i], 6); + } + arg0->unk1C = 1; + /* fallthrough */ + case 1: + for (i = 0; i < 5; i++) { + if (lbl_1_bss_A4[i]->unk04 != 0) { + fn_1_8FF4(lbl_1_bss_A4[i], 4); + } + } + arg0->unk20 = 0; + arg0->unk1C = 2; + /* fallthrough */ + case 2: + if (arg0->unk20++ < 160) { + break; + } + arg0->unk1C = 3; + /* fallthrough */ + case 3: + fn_1_4A0(lbl_1_bss_8, 1); + break; + } +} + +const Vec lbl_1_rodata_D8 = { 0.0f, 150.0f, 0.0f }; +const Vec lbl_1_rodata_E4 = { 6.0f, 0.0f, 0.0f }; + +void fn_1_1068(UnkM447Struct_00* arg0) { + s32 temp_r29; + s32 temp_r28; + s32 i; + + switch (arg0->unk1C) { + case 0: + for (i = 0; i < 5; i++) { + if (lbl_1_bss_A4[i]->unk04 != 0) { + fn_1_8FF4(lbl_1_bss_A4[i], 4); + } + } + arg0->unk1C = 1; + /* fallthrough */ + case 1: + // Bug: HuAudSeqFadeOut takes two arguments. + HuAudSeqFadeOut(arg0->unk70); + arg0->unk30 = MGSeqCreate(3, 1); + arg0->unk1C = 2; + /* fallthrough */ + case 2: + if (MGSeqStatGet(arg0->unk30) != 0) { + break; + } + arg0->unk1C = 3; + /* fallthrough */ + case 3: + for (i = 0; i < 2; i++) { + fn_1_43CC(lbl_1_bss_98[i], 7); + } + fn_1_330C(&lbl_1_rodata_D8, 180); + fn_1_3484(300.0f, 180); + fn_1_33C8(&lbl_1_rodata_E4, 180); + arg0->unk20 = 0; + arg0->unk1C = 4; + /* fallthrough */ + case 4: + if (arg0->unk20++ < 180) { + break; + } + arg0->unk1C = 5; + /* fallthrough */ + case 5: + temp_r29 = lbl_1_bss_98[0]->unk1B; + temp_r28 = lbl_1_bss_98[1]->unk1B; + if (lbl_1_bss_98[1]->unk18 != 8 && temp_r29 == temp_r28) { + fn_1_43CC(lbl_1_bss_98[0], 10); + fn_1_43CC(lbl_1_bss_98[1], 10); + HuAudSStreamPlay(4); + } else if (temp_r29 > temp_r28) { + fn_1_43CC(lbl_1_bss_98[0], 9); + fn_1_43CC(lbl_1_bss_98[1], 10); + GWPlayerCoinWinAdd(0, 10); + HuAudSStreamPlay(1); + } else { + fn_1_43CC(lbl_1_bss_98[0], 10); + fn_1_43CC(lbl_1_bss_98[1], 9); + GWPlayerCoinWinAdd(1, 10); + if (lbl_1_bss_98[1]->unk18 == 8) { + HuAudSStreamPlay(3); + } else { + HuAudSStreamPlay(1); + } + } + arg0->unk20 = 0; + arg0->unk1C = 6; + /* fallthrough */ + case 6: + if (arg0->unk20++ < 210) { + break; + } + arg0->unk1C = 7; + /* fallthrough */ + case 7: + omSysExitReq = 1; + arg0->unk08 = 1; + break; + } +} + +void fn_1_1394(UnkM447Struct_00* arg0, s16 arg1, s32 arg2) { + HuWinComKeyReset(); + if (arg0->unk18 == 2) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, arg2); + } + winData[arg1].active_pad = 1; + HuWinMesWait(arg1); +} + +s32 fn_1_141C(UnkM447Struct_00* arg0, s16 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg0->unk18 == 2) { + HuPrcSleep(arg4); + return arg3; + } + return HuWinChoiceGet(arg1, arg2); +} + +const s32 lbl_1_rodata_F4[] = { + MAKE_MESSID(42, 3), + MAKE_MESSID(42, 4), + MAKE_MESSID(42, 5), + MAKE_MESSID(42, 6), + MAKE_MESSID(42, 7), + 0 +}; + +void fn_1_1484(void) { + UnkM447Struct_00* temp_r30; + s16 temp_r3; + s16 var_r29; + s32 var_r28; + u32 temp_r26; + + temp_r30 = HuPrcCurrentGet()->user_data; + temp_r3 = HuWinExCreateStyled(-10000.0f, 40.0f, 280, 120, -1, 1); + HuWinExAnimIn(temp_r3); + HuWinBGTPLvlSet(temp_r3, 0.8f); + HuWinMesSpeedSet(temp_r3, 1); + HuWinMesColSet(temp_r3, 0); + HuWinMesSet(temp_r3, MAKE_MESSID(42, 1)); + fn_1_1394(temp_r30, temp_r3, 60); + if (temp_r30->unk18 < 2) { + HuWinMesColSet(temp_r3, 0); + HuWinMesSet(temp_r3, MAKE_MESSID(42, 2)); + var_r29 = fn_1_141C(temp_r30, temp_r3, 0, 1, 60); + } else { + var_r29 = 1; + } + if (var_r29 == 0) { + var_r28 = 0; + while ((temp_r26 = lbl_1_rodata_F4[var_r28++]) != 0) { + HuWinMesColSet(temp_r3, 0); + HuWinMesSet(temp_r3, temp_r26); + fn_1_1394(temp_r30, temp_r3, 60); + } + HuWinMesColSet(temp_r3, 0); + HuWinMesSet(temp_r3, MAKE_MESSID(42, 8)); + fn_1_1394(temp_r30, temp_r3, 60); + } else { + HuWinMesColSet(temp_r3, 0); + HuWinMesSet(temp_r3, MAKE_MESSID(42, 9)); + fn_1_1394(temp_r30, temp_r3, 60); + } + HuWinExAnimOut(temp_r3); + HuWinExCleanup(temp_r3); + temp_r30->unk0C = 0; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_1754(UnkM447Struct_00* arg0) { + s32 i; + + for (i = 0; i < 25; i++) { + arg0->unk34[i] = espEntry(lbl_1_rodata_10[i], 0, 0); + espDispOff(arg0->unk34[i]); + espPriSet(arg0->unk34[i], 100); + } + espPriSet(arg0->unk34[7], 99); + espPriSet(arg0->unk34[8], 99); + espPriSet(arg0->unk34[9], 99); + espPriSet(arg0->unk34[13], 99); + espPriSet(arg0->unk34[14], 99); + espPriSet(arg0->unk34[15], 99); +} + +void fn_1_1830(UnkM447Struct_00* arg0) { + s32 i; + + for (i = 0; i < 25; i++) { + espKill(arg0->unk34[i]); + } +} + +void fn_1_1884(UnkM447Struct_00* arg0) { + s16 temp_r28; + s32 sp8; + s32 i; + s32 j; + + espDispOn(arg0->unk34[0]); + espPosSet(arg0->unk34[0], 96.0f, 64.0f); + espDispOn(arg0->unk34[2]); + espPosSet(arg0->unk34[2], 96.0f, 63.0f); + espTPLvlSet(arg0->unk34[2], 0.5f); + espColorSet(arg0->unk34[2], 0, 0, 0); + espDispOn(arg0->unk34[1]); + espPosSet(arg0->unk34[1], 480.0f, 64.0f); + espDispOn(arg0->unk34[3]); + espPosSet(arg0->unk34[3], 480.0f, 63.0f); + espTPLvlSet(arg0->unk34[3], 0.5f); + espColorSet(arg0->unk34[3], 0, 0, 0); + for (i = 0; i < 2; i++) { + temp_r28 = lbl_1_bss_98[i]->unk18 + 16; + espDispOn(arg0->unk34[temp_r28]); + espPosSet(arg0->unk34[temp_r28], i * 384 + 46, 63.0f); + } + for (j = 0; j < 2; j++) { + sp8 = lbl_1_bss_98[j]->unk1B; + for (i = 0; i < 3; i++) { + temp_r28 = i + 4 + j * 6; + espDispOn(arg0->unk34[temp_r28]); + espPosSet(arg0->unk34[temp_r28], j * 384 + 80 + i * 32, 63.0f); + } + } +} + +void fn_1_1AFC(UnkM447Struct_00* arg0, s32 arg1, s32 arg2) { + UnkM447Struct_03* temp_r3; + Process* var_r30; + + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r3), MEMORY_DEFAULT_NUM); + temp_r3->unk00 = arg0->unk34[arg2 + 7 + arg1 * 6]; + espPosSet(temp_r3->unk00, arg1 * 384 + 80 + arg2 * 32, 63.0f); + temp_r3->unk04 = 0.0f; + temp_r3->unk08 = 0.05f; + var_r30 = HuPrcChildCreate(fn_1_1BF8, 100, 0x1000, 0, lbl_1_bss_4); + var_r30->user_data = temp_r3; +} + +void fn_1_1BF8(void) { + float temp_f31; + UnkM447Struct_03* temp_r31; + + temp_r31 = HuPrcCurrentGet()->user_data; + espDispOn(temp_r31->unk00); + while (TRUE) { + if ((temp_r31->unk04 += temp_r31->unk08) > 1.0f) { + temp_r31->unk04 = 1.0f; + break; + } + temp_f31 = 1.0f + 1.5f * (1.0f - temp_r31->unk04); + espScaleSet(temp_r31->unk00, temp_f31, temp_f31); + HuPrcVSleep(); + } + espScaleSet(temp_r31->unk00, 1.0f, 1.0f); + HuAudFXPlay(9); + HuMemDirectFree(temp_r31); + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_1CE0(UnkM447Struct_00* arg0) { + s32 i; + + for (i = 0; i <= 25; i++) { + espDispOff(arg0->unk34[i]); + } +} + +void fn_1_1D34(UnkM447Struct_00* arg0) { + s32 i; + + arg0->unk18 = 0; + for (i = 0; i < 2; i++) { + if (lbl_1_bss_98[i]->unk08 != 0) { + arg0->unk18++; + } + } +} diff --git a/src/REL/m447dll/player.c b/src/REL/m447dll/player.c new file mode 100755 index 00000000..6a311bff --- /dev/null +++ b/src/REL/m447dll/player.c @@ -0,0 +1,1107 @@ +#include "REL/m447dll.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" + +#include "ext_math.h" + +void fn_1_4300(UnkM447Struct_04* arg0); +float fn_1_43DC(UnkM447Struct_04* arg0); +void fn_1_43F8(void); +void fn_1_4444(UnkM447Struct_04* arg0); +void fn_1_44B0(UnkM447Struct_04* arg0); +void fn_1_4590(UnkM447Struct_04* arg0); +void fn_1_4638(UnkM447Struct_04* arg0); +void fn_1_4680(UnkM447Struct_04* arg0); +void fn_1_470C(UnkM447Struct_04* arg0); +void fn_1_4760(UnkM447Struct_04* arg0); +void fn_1_4764(UnkM447Struct_04* arg0); +void fn_1_4C84(UnkM447Struct_04* arg0); +float fn_1_4F7C(float arg0, float arg1, float arg2); +void fn_1_5080(UnkM447Struct_04* arg0); +void fn_1_5298(UnkM447Struct_04* arg0); +void fn_1_5520(UnkM447Struct_04* arg0); +void fn_1_5760(UnkM447Struct_04* arg0); +void fn_1_59D8(UnkM447Struct_04* arg0); +void fn_1_5AF0(UnkM447Struct_04* arg0); +void fn_1_5BD0(UnkM447Struct_04* arg0); +void fn_1_5C78(UnkM447Struct_04* arg0); +void fn_1_671C(UnkM447Struct_04* arg0); +void fn_1_70BC(UnkM447Struct_04* arg0); +void fn_1_717C(UnkM447Struct_04* arg0, s32 arg1, s32 arg2); +void fn_1_71FC(UnkM447Struct_04* arg0, s32 arg1, float arg2, float arg3, s32 arg4); +void fn_1_72A8(UnkM447Struct_04* arg0); +void fn_1_7688(UnkM447Struct_04* arg0); +void fn_1_78A8(UnkM447Struct_04* arg0); +s32 fn_1_7984(UnkM447Struct_04* arg0); +void fn_1_7A34(UnkM447Struct_04* arg0); + +UnkM447Struct_04* lbl_1_bss_98[2]; + +const s32 lbl_1_rodata_2A0[][9] = { + { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 113), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 31), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 28), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 72), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) + }, + { + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 2), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 3), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 113), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 31), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 28), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 72), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 23), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 24) + }, + { + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 2), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 3), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 113), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 31), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 28), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 72), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 23), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 24) + }, + { + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 2), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 3), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 113), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 31), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 28), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 72), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 23), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 24) + }, + { + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 2), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 113), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 31), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 28), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 72), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 23), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 24) + }, + { + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 2), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 3), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 113), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 31), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 28), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 72), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 23), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 24) + }, + { + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 2), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 3), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 113), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 31), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 28), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 72), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 23), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 24) + }, + { + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 2), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 3), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 113), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 31), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 28), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 72), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 23), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 24) + }, + { + DATA_MAKE_NUM(DATADIR_M447, 32), + DATA_MAKE_NUM(DATADIR_M447, 33), + DATA_MAKE_NUM(DATADIR_M447, 34), + DATA_MAKE_NUM(DATADIR_M447, 41), + DATA_MAKE_NUM(DATADIR_M447, 39), + DATA_MAKE_NUM(DATADIR_M447, 38), + DATA_MAKE_NUM(DATADIR_M447, 37), + DATA_MAKE_NUM(DATADIR_M447, 36), + DATA_MAKE_NUM(DATADIR_M447, 40) + } +}; + +const float lbl_1_rodata_3E4[] = { + 150.0f, 170.0f, 188.0f, + 169.0f, 164.0f, 140.0f, + 180.0f, 145.0f, 150.0f +}; + +const float lbl_1_rodata_408[][6] = { + { -150.0f, 0.0f, 350.0f, 0.0f, 90.0f, 0.0f }, + { 150.0f, 0.0f, 350.0f, 0.0f, -90.0f, 0.0f }, + { -150.0f, 0.0f, -200.0f, 0.0f, 90.0f, 0.0f }, + { 150.0f, 0.0f, -200.0f, 0.0f, -90.0f, 0.0f } +}; + +const u8 lbl_1_rodata_468[][5] = { + { 5, 6, 7, 8, 9 }, + { 4, 5, 6, 7, 8 }, + { 3, 4, 5, 6, 7 }, + { 2, 3, 4, 5, 6 } +}; + +void fn_1_3F84(void) { + s32 i; + + for (i = 0; i < 2; i++) { + lbl_1_bss_98[i] = NULL; + } +} + +UnkM447Struct_04* fn_1_3FC4(s32 arg0) { + UnkM447Struct_04* temp_r3; + s16 var_r28; + s16 var_r27; + s32 i; + + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r3), MEMORY_DEFAULT_NUM); + if (!temp_r3) { + OSReport("M447PlayerCreate ERROR...\n"); + return NULL; + } + temp_r3->unk00 = arg0; + temp_r3->unk19 = GWPlayerCfg[arg0].diff; + temp_r3->unk08 = GWPlayerCfg[arg0].iscom; + if (temp_r3->unk08 != 0) { + var_r28 = 4; + } else { + var_r28 = GWPlayerCfg[arg0].pad_idx; + } + temp_r3->unk1A = var_r28; + temp_r3->unk1C = (GWPlayerCfg[arg0].character == 10); + if (temp_r3->unk1C != 0) { + var_r27 = 8; + } else { + var_r27 = GWPlayerCfg[arg0].character; + } + temp_r3->unk18 = var_r27; + temp_r3->unk24 = 0; + temp_r3->unk20 = 0; + temp_r3->unk1B = 0; + temp_r3->unk28.x = lbl_1_rodata_408[arg0][0]; + temp_r3->unk28.y = lbl_1_rodata_408[arg0][1]; + temp_r3->unk28.z = lbl_1_rodata_408[arg0][2]; + temp_r3->unk34 = lbl_1_rodata_408[arg0][3]; + temp_r3->unk38 = lbl_1_rodata_408[arg0][4]; + temp_r3->unk3C = lbl_1_rodata_408[arg0][5]; + temp_r3->unk44 = 0.0f; + temp_r3->unk48 = 0.0f; + temp_r3->unk4C = 0.0f; + temp_r3->unk50 = 50.0f; + temp_r3->unk04 = 0; + temp_r3->unkB0 = NULL; + temp_r3->unkB4 = NULL; + fn_1_4444(temp_r3); + Hu3DModelLayerSet(temp_r3->unk68, 6); + fn_1_44B0(temp_r3); + fn_1_4590(temp_r3); + fn_1_717C(temp_r3, 0, 0x40000001); + if (temp_r3->unk1C == 0) { + CharModelMotionDataClose(temp_r3->unk18); + } + if (temp_r3->unk1C != 0) { + temp_r3->unkB0 = (Process*) CharModelEffectNpcInit(temp_r3->unk68, temp_r3->unk6A[2], 1, 10); + temp_r3->unkB4 = (Process*) CharModelEffectNpcInit(temp_r3->unk68, temp_r3->unk6A[1], 0, 10); + } + CharModelLayerSetAll(2); + temp_r3->unkAC = HuPrcChildCreate(fn_1_43F8, 102, 0x3000, 0, lbl_1_bss_4); + temp_r3->unkAC->user_data = temp_r3; + for (i = 0; i < 2; i++) { + if (!lbl_1_bss_98[i]) { + lbl_1_bss_98[i] = temp_r3; + break; + } + } + return temp_r3; +} + +void fn_1_4300(UnkM447Struct_04* arg0) { + s32 i; + + if (arg0->unkB0) { + HuPrcKill(arg0->unkB0); + } + if (arg0->unkB4) { + HuPrcKill(arg0->unkB4); + } + fn_1_470C(arg0); + fn_1_4680(arg0); + fn_1_4638(arg0); + HuPrcKill(arg0->unkAC); + for (i = 0; i < 2; i++) { + if (lbl_1_bss_98[i] == arg0) { + lbl_1_bss_98[i] = NULL; + break; + } + } + HuMemDirectFree(arg0); +} + +void fn_1_43CC(UnkM447Struct_04* arg0, s32 arg1) { + arg0->unk24 = arg1; + arg0->unk20 = 0; +} + +float fn_1_43DC(UnkM447Struct_04* arg0) { + return lbl_1_rodata_3E4[arg0->unk18]; +} + +void (*lbl_1_data_1CC[])(UnkM447Struct_04*) = { + fn_1_4760, + fn_1_4764, + fn_1_5080, + fn_1_5298, + fn_1_5520, + fn_1_5760, + fn_1_5C78, + fn_1_671C, + fn_1_59D8, + fn_1_5AF0, + fn_1_5BD0 +}; + +void fn_1_43F8(void) { + UnkM447Struct_04* temp_r31; + + temp_r31 = HuPrcCurrentGet()->user_data; + while (TRUE) { + lbl_1_data_1CC[temp_r31->unk24](temp_r31); + fn_1_70BC(temp_r31); + HuPrcVSleep(); + } +} + +void fn_1_4444(UnkM447Struct_04* arg0) { + if (arg0->unk1C != 0) { + arg0->unk68 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M447, 31)); + } else { + arg0->unk68 = CharModelCreate(arg0->unk18, 2); + } + Hu3DModelShadowSet(arg0->unk68); +} + +void fn_1_44B0(UnkM447Struct_04* arg0) { + s32 i; + + if (arg0->unk1C != 0) { + for (i = 0; i < 9; i++) { + arg0->unk6A[i] = Hu3DJointMotionFile(arg0->unk68, lbl_1_rodata_2A0[arg0->unk18][i]); + } + } else { + for (i = 0; i < 9; i++) { + arg0->unk6A[i] = CharModelMotionCreate(arg0->unk18, lbl_1_rodata_2A0[arg0->unk18][i]); + } + } +} + +void fn_1_4590(UnkM447Struct_04* arg0) { + arg0->unk7C[0] = espEntry(DATA_MAKE_NUM(DATADIR_M447, 42), 0, 0); + espPriSet(arg0->unk7C[0], arg0->unk00 * 10); + arg0->unk7C[1] = espEntry(DATA_MAKE_NUM(DATADIR_M447, 43), 0, 0); + espPriSet(arg0->unk7C[1], arg0->unk00 * 10 + 1); + espDispOff(arg0->unk7C[0]); + espDispOff(arg0->unk7C[1]); + espTPLvlSet(arg0->unk7C[1], 0.8f); +} + +void fn_1_4638(UnkM447Struct_04* arg0) { + if (arg0->unk1C != 0) { + Hu3DModelKill(arg0->unk68); + } else { + CharModelKill(arg0->unk18); + } +} + +void fn_1_4680(UnkM447Struct_04* arg0) { + s32 i; + + if (arg0->unk1C != 0) { + for (i = 0; i < 9; i++) { + Hu3DMotionKill(arg0->unk6A[i]); + } + } else { + for (i = 0; i < 9; i++) { + CharModelMotionKill(arg0->unk18, arg0->unk6A[i]); + } + } +} + +void fn_1_470C(UnkM447Struct_04* arg0) { + s32 i; + + for (i = 0; i < 2; i++) { + espKill(arg0->unk7C[i]); + } +} + +void fn_1_4760(UnkM447Struct_04* arg0) { +} + +void fn_1_4764(UnkM447Struct_04* arg0) { + Vec sp8; + float temp_f31; + s32 var_r29; + s32 var_r28; + s32 i; + + switch (arg0->unk20) { + case 0: + arg0->unk0C = 0; + arg0->unk10 = 0; + arg0->unk28.y = 0.0f; + arg0->unk20 = 1; + arg0->unk14 = 0; + /* fallthrough */ + case 1: + if (arg0->unk04 != 0) { + if (arg0->unk08 != 0) { + if (arg0->unk0C == 0 && arg0->unk10 == 0) { + arg0->unk44 = 0.0f; + arg0->unk48 = 0.0f; + arg0->unk4C = 0.0f; + if (fn_1_A240() % lbl_1_rodata_468[arg0->unk19][lbl_1_bss_8->unk2C] == 0) { + var_r29 = 5; + for (i = 0; i < 5; i++) { + if (lbl_1_bss_10->unk54[i] == 0 && lbl_1_bss_A4[i]->unk08 != 0) { + var_r29 = i; + break; + } + } + } else { + for (i = 0; i < 10; i++) { + var_r29 = fn_1_A240() % 5; + if (lbl_1_bss_10->unk54[var_r29] == 0) { + break; + } + } + if (i == 10) { + var_r29 = 5; + } + } + if (var_r29 < 5) { + fn_1_1ED4(var_r29, &sp8); + temp_f31 = 10.0f - 0.1f * (fn_1_A240() % 10); + arg0->unk44 = (sp8.x - arg0->unk28.x) / temp_f31; + arg0->unk4C = (sp8.z - arg0->unk28.z) / temp_f31; + arg0->unk48 = 0.0f; + arg0->unk64 = fn_1_A240() % 20 + 10; + arg0->unk0C = 1; + } + } + } else { + arg0->unk44 = (float) HuPadStkX[arg0->unk1A] / 4; + arg0->unk4C = -(float) HuPadStkY[arg0->unk1A] / 4; + } + var_r28 = 0; + var_r29 = fn_1_7984(arg0); + if (var_r29 != 5) { + if (lbl_1_bss_10->unk68[var_r29] == 0) { + fn_1_7A34(arg0); + if (arg0->unk08 != 0) { + arg0->unk10 = 1; + arg0->unk44 = 0.0f; + arg0->unk48 = 0.0f; + arg0->unk4C = 0.0f; + if (arg0->unk64-- <= 0) { + var_r28 = 1; + } + } else if (HuPadBtnDown[arg0->unk1A] & 0x100) { + var_r28 = 1; + } + if (var_r28 != 0) { + arg0->unk44 = 0.0f; + arg0->unk4C = 0.0f; + lbl_1_bss_10->unk68[var_r29] = 1; + fn_1_43CC(arg0, 2); + arg0->unk10 = 0; + } + } + } else { + if (arg0->unk10 != 0) { + arg0->unk10 = 0; + arg0->unk0C = 0; + } + fn_1_7A6C(arg0); + } + } else { + arg0->unk44 = 0.0f; + arg0->unk48 = 0.0f; + arg0->unk4C = 0.0f; + } + fn_1_4C84(arg0); + break; + } +} + +void fn_1_4C84(UnkM447Struct_04* arg0) { + s16 var_r30; + + var_r30 = 0; + arg0->unk40 = sqrtf(arg0->unk44 * arg0->unk44 + arg0->unk4C * arg0->unk4C); + if (0.5f <= arg0->unk40) { + if (10.0f <= arg0->unk40) { + arg0->unk44 /= arg0->unk40; + arg0->unk4C /= arg0->unk40; + arg0->unk40 = 10.0f; + arg0->unk44 = arg0->unk44 * 10.0f; + arg0->unk4C = arg0->unk4C * 10.0f; + } + arg0->unk38 = fn_1_4F7C(arg0->unk38, atan2d(arg0->unk44, arg0->unk4C), 0.4f); + if (8.0f <= arg0->unk40) { + var_r30 = 2; + } else { + var_r30 = 1; + } + } + arg0->unk28.x += arg0->unk44; + arg0->unk28.z += arg0->unk4C; + switch (arg0->unk24) { + case 1: + fn_1_72A8(arg0); + fn_1_78A8(arg0); + fn_1_7688(arg0); + break; + case 6: + case 7: + fn_1_78A8(arg0); + fn_1_7688(arg0); + break; + } + if (var_r30 >= 0 && arg0->unkA4 != var_r30) { + fn_1_71FC(arg0, var_r30, 0.0f, 8.0f, 0x40000001); + } +} + +float fn_1_4F7C(float arg0, float arg1, float arg2) { + float var_f31; + float var_f30; + + var_f31 = fmod(arg1 - arg0, 360.0); + if (0.0f > var_f31) { + var_f31 += 360.0f; + } + if (180.0f < var_f31) { + var_f31 -= 360.0f; + } + var_f30 = fmod(arg0 + var_f31 * arg2, 360.0); + if (0.0f > var_f30) { + var_f30 += 360.0f; + } + return var_f30; +} + +void fn_1_5080(UnkM447Struct_04* arg0) { + Vec sp14; + Vec sp8; + s32 var_r30; + + switch (arg0->unk20) { + case 0: + fn_1_7A6C(arg0); + var_r30 = fn_1_7984(arg0); + fn_1_1ED4(var_r30, &sp14); + PSVECSubtract(&sp14, &arg0->unk28, &sp8); + arg0->unk38 = fn_1_4F7C(arg0->unk38, atan2d(sp8.x, sp8.z), 1.0f); + fn_1_71FC(arg0, 3, 0.0f, 8.0f, 0); + arg0->unk20 = 1; + /* fallthrough */ + case 1: + if (!Hu3DMotionEndCheck(arg0->unk68)) { + break; + } + arg0->unk20 = 2; + /* fallthrough */ + case 2: + fn_1_43CC(arg0, 3); + break; + } +} + +void fn_1_5298(UnkM447Struct_04* arg0) { + Vec sp8; + s32 temp_r29; + UnkM447Struct_01* temp_r28; + s32 i; + + switch (arg0->unk20) { + case 0: + temp_r29 = fn_1_7984(arg0); + fn_1_717C(arg0, 0, 0x40000001); + fn_1_1ED4(temp_r29, &sp8); + arg0->unk28.x = sp8.x; + arg0->unk28.z = sp8.z; + arg0->unk28.y = 30.0f; + fn_1_1F00(lbl_1_bss_10, temp_r29); + HuAudFXPlay(0x784); + arg0->unk60 = 0; + arg0->unk20 = 1; + /* fallthrough */ + case 1: + arg0->unk28.y -= 1.0f; + if (arg0->unk60++ >= 30) { + arg0->unk28.y = 2.0f; + arg0->unk20 = 2; + temp_r29 = fn_1_7984(arg0); + arg0->unkA8 = lbl_1_bss_A4[temp_r29]; + if (arg0->unkA8->unk08 != 0) { + fn_1_8FF4(arg0->unkA8, 5); + for (i = 0; i < 5; i++) { + temp_r28 = lbl_1_bss_A4[i]; + if (temp_r28 != arg0->unkA8 && lbl_1_bss_10->unk68[i] == 0) { + fn_1_1F00(lbl_1_bss_10, i); + if (temp_r28->unk04 == 2) { + fn_1_8FF4(temp_r28, 4); + } + } + } + for (i = 0; i < 2; i++) { + if (lbl_1_bss_98[i] != arg0) { + lbl_1_bss_98[i]->unk04 = 0; + } + } + arg0->unk1B++; + arg0->unk14 = 1; + fn_1_43CC(arg0, 5); + } else { + fn_1_8FF4(arg0->unkA8, 3); + fn_1_43CC(arg0, 4); + } + } + break; + case 2: + fn_1_43CC(arg0, 1); + break; + } +} + +const s32 lbl_1_rodata_4EC[] = { + 0x0000012A, + 0x0000016A, + 0x000001AA, + 0x000001EA, + 0x0000022A, + 0x0000026A, + 0x000002AA, + 0x000002EA +}; + +void fn_1_5520(UnkM447Struct_04* arg0) { + Vec sp8; + float var_f31; + float var_f30; + + switch (arg0->unk20) { + case 0: + fn_1_71FC(arg0, 5, 0.0f, 8.0f, 0); + arg0->unk60 = 0; + arg0->unk20 = 1; + /* fallthrough */ + case 1: + var_f30 = lbl_1_rodata_3E4[arg0->unk18]; + var_f31 = var_f30; // inline? + sp8 = arg0->unkA8->unk10; + if (var_f31 + lbl_1_rodata_648[arg0->unkA8->unk00] + 120.0f < sp8.y) { + break; + } + arg0->unk20 = 2; + /* fallthrough */ + case 2: + fn_1_717C(arg0, 4, 0); + arg0->unk60 = 0; + arg0->unk20 = 3; + fn_1_7AA4(arg0, 1, 60); + if (arg0->unk18 == 8) { + HuAudFXPlay(0x42); + } else { + HuAudFXPlay(lbl_1_rodata_4EC[arg0->unk18]); + } + /* fallthrough */ + case 3: + if (arg0->unk60++ < 40) { + break; + } + arg0->unk60 = 0; + arg0->unk20 = 4; + /* fallthrough */ + case 4: + Hu3DModelAttrSet(arg0->unk68, 0x40000002); + arg0->unk60 = 0; + arg0->unk20 = 5; + /* fallthrough */ + case 5: + if (arg0->unk60++ < 20) { + break; + } + arg0->unk20 = 6; + /* fallthrough */ + case 6: + Hu3DModelAttrReset(arg0->unk68, 0x40000002); + Hu3DModelAttrReset(arg0->unk68, 0x40000001); + arg0->unk60 = 0; + arg0->unk20 = 7; + /* fallthrough */ + case 7: + if (arg0->unk60++ < 40) { + break; + } + arg0->unk20 = 8; + case 8: + /* fallthrough */ + fn_1_43CC(arg0, 1); + break; + } +} + +void fn_1_5760(UnkM447Struct_04* arg0) { + Vec sp14; + Vec sp8; + s32 var_r30; + + switch (arg0->unk20) { + case 0: + Hu3DModelAttrReset(arg0->unk68, 0x40000001); + fn_1_71FC(arg0, 5, 0.0f, 8.0f, 0); + arg0->unk60 = 0; + arg0->unk20 = 1; + /* fallthrough */ + case 1: + var_r30 = fn_1_7984(arg0); + sp14 = lbl_1_bss_A4[var_r30]->unk10; + PSVECSubtract(&sp14, &arg0->unk28, &sp8); + arg0->unk38 = fn_1_4F7C(arg0->unk38, atan2d(sp8.x, sp8.z), 0.1f); + if (arg0->unk60++ < 30) { + break; + } + arg0->unk20 = 2; + case 2: + fn_1_71FC(arg0, 0, 0.0f, 8.0f, 0x40000001); + fn_1_43CC(arg0, 8); + break; + } +} + +const s32 lbl_1_rodata_510[] = { + 0x00000122, + 0x00000162, + 0x000001A2, + 0x000001E2, + 0x00000222, + 0x00000262, + 0x000002A2, + 0x000002E2, + 0x00000124, + 0x00000164, + 0x000001A4, + 0x000001E4, + 0x00000224, + 0x00000264, + 0x000002A4, + 0x000002E4, + 0x00000121, + 0x00000161, + 0x000001A1, + 0x000001E1, + 0x00000221, + 0x00000261, + 0x000002A1, + 0x000002E1 +}; + +void fn_1_59D8(UnkM447Struct_04* arg0) { + switch (arg0->unk20) { + case 0: + if (arg0->unk18 == 8) { + HuAudFXPlay(0x40); + } else { + HuAudFXPlay(lbl_1_rodata_510[arg0->unk18]); + } + fn_1_71FC(arg0, 6, 0.0f, 8.0f, 0); + arg0->unk20 = 1; + /* fallthrough */ + case 1: + if (!Hu3DMotionEndCheck(arg0->unk68)) { + break; + } + arg0->unk20 = 2; + /* fallthrough */ + case 2: + fn_1_71FC(arg0, 0, 0.0f, 8.0f, 0x40000001); + fn_1_43CC(arg0, 0); + fn_1_7AA4(arg0, 0, 60); + break; + } +} + +void fn_1_5AF0(UnkM447Struct_04* arg0) { + s32 var_r30; + + switch (arg0->unk20) { + case 0: + if (arg0->unk1C != 0) { + HuAudFXPlay(0x40); + } + if (arg0->unk1C != 0) { + var_r30 = 0x40000001; + } else { + var_r30 = 0; + } + fn_1_71FC(arg0, 7, 0.0f, 8.0f, var_r30); + arg0->unk20 = 1; + /* fallthrough */ + case 1: + if (!Hu3DMotionEndCheck(arg0->unk68)) { + break; + } + arg0->unk20 = 2; + /* fallthrough */ + case 2: + fn_1_43CC(arg0, 0); + break; + } +} + +void fn_1_5BD0(UnkM447Struct_04* arg0) { + switch (arg0->unk20) { + case 0: + fn_1_71FC(arg0, 8, 0.0f, 8.0f, 0); + arg0->unk20 = 1; + /* fallthrough */ + case 1: + if (!Hu3DMotionEndCheck(arg0->unk68)) { + break; + } + arg0->unk20 = 2; + /* fallthrough */ + case 2: + fn_1_43CC(arg0, 0); + break; + } +} + +void fn_1_5C78(UnkM447Struct_04* arg0) { + float temp_f22; + float temp_f21; + float temp_f25; + + switch (arg0->unk20) { + case 0: + fn_1_7A6C(arg0); + temp_f22 = arg0->unk28.x - lbl_1_rodata_408[arg0->unk00][0]; + temp_f21 = arg0->unk28.z - lbl_1_rodata_408[arg0->unk00][2] - 25.0f; + if (ABS(temp_f22) < 5.0f && ABS(temp_f21) < 5.0f && 180.0f == arg0->unk38) { + arg0->unk20 = 3; + } else { + arg0->unk20 = 1; + } + /* fallthrough */ + case 1: + temp_f25 = 8.0f; + arg0->unk44 = (lbl_1_rodata_408[arg0->unk00][0] - arg0->unk28.x) / temp_f25; + arg0->unk4C = (lbl_1_rodata_408[arg0->unk00][2] - arg0->unk28.z) / temp_f25; + arg0->unk48 = 0.0f; + if (!(arg0->unk44 > -0.1f && arg0->unk44 < 0.1f && arg0->unk4C > -0.1f && arg0->unk4C < 0.1f)) { + fn_1_4C84(arg0); + break; + } + arg0->unk20 = 2; + /* fallthrough */ + case 2: + temp_f25 = 8.0f; + arg0->unk44 = (lbl_1_rodata_408[arg0->unk00][0] - arg0->unk28.x) / temp_f25; + arg0->unk4C = (lbl_1_rodata_408[arg0->unk00][2] - 25.0f - arg0->unk28.z) / temp_f25; + arg0->unk48 = 0.0f; + if (!(arg0->unk44 > -0.1f && arg0->unk44 < 0.1f && arg0->unk4C > -0.1f && arg0->unk4C < 0.1f)) { + fn_1_4C84(arg0); + break; + } + arg0->unk20 = 3; + /* fallthrough */ + case 3: + fn_1_43CC(arg0, 1); + break; + } +} + +void fn_1_671C(UnkM447Struct_04* arg0) { + float var_f25; + + switch (arg0->unk20) { + case 0: + fn_1_7A6C(arg0); + arg0->unk20 = 1; + /* fallthrough */ + case 1: + var_f25 = 8.0f; + arg0->unk44 = (lbl_1_rodata_408[arg0->unk00][12] - arg0->unk28.x) / var_f25; + arg0->unk4C = (lbl_1_rodata_408[arg0->unk00][14] - 25.0f - arg0->unk28.z) / var_f25; + arg0->unk48 = 0.0f; + fn_1_4C84(arg0); + if (!(arg0->unk44 > -0.1f && arg0->unk44 < 0.1f && arg0->unk4C > -0.1f && arg0->unk4C < 0.1f)) { + break; + } + arg0->unk20 = 2; + /* fallthrough */ + case 2: + var_f25 = 8.0f; + arg0->unk44 = (lbl_1_rodata_408[arg0->unk00][12] - arg0->unk28.x) / var_f25; + arg0->unk4C = (lbl_1_rodata_408[arg0->unk00][14] - arg0->unk28.z) / var_f25; + arg0->unk48 = 0.0f; + fn_1_4C84(arg0); + if (!(arg0->unk44 > -0.1f && arg0->unk44 < 0.1f && arg0->unk4C > -0.1f && arg0->unk4C < 0.1f)) { + break; + } + arg0->unk20 = 3; + /* fallthrough */ + case 3: + fn_1_43CC(arg0, 1); + break; + } +} + +void fn_1_70BC(UnkM447Struct_04* arg0) { + Vec sp14; + Vec sp8; + + Hu3DModelPosSet(arg0->unk68, arg0->unk28.x, arg0->unk28.y, arg0->unk28.z); + Hu3DModelRotSet(arg0->unk68, arg0->unk34, arg0->unk38, arg0->unk3C); + sp14 = arg0->unk28; + sp14.y += 300.0f; + Hu3D3Dto2D(&sp14, 1, &sp8); + espPosSet(arg0->unk7C[1], sp8.x, sp8.y + 3.0f); + espPosSet(arg0->unk7C[0], sp8.x, sp8.y); +} + +void fn_1_717C(UnkM447Struct_04* arg0, s32 arg1, s32 arg2) { + if (arg0->unk1C != 0) { + Hu3DMotionSet(arg0->unk68, arg0->unk6A[arg1]); + } else { + CharModelMotionSet(arg0->unk18, arg0->unk6A[arg1]); + } + Hu3DModelAttrSet(arg0->unk68, arg2); + arg0->unkA4 = arg1; +} + +void fn_1_71FC(UnkM447Struct_04* arg0, s32 arg1, float arg2, float arg3, s32 arg4) { + if (arg0->unk1C != 0) { + Hu3DMotionShiftSet(arg0->unk68, arg0->unk6A[arg1], arg2, arg3, arg4); + } else { + CharModelMotionShiftSet(arg0->unk18, arg0->unk6A[arg1], arg2, arg3, arg4); + } + arg0->unkA4 = arg1; +} + +float lbl_1_data_21C[][4] = { + { -700.0f, -700.0f, -700.0f, 700.0f }, + { 700.0f, -700.0f, 700.0f, 700.0f }, + { -800.0f, 450.0f, 800.0f, 450.0f }, + { -700.0f, -700.0f, 700.0f, -700.0f } +}; + +// Vec[]? +float lbl_1_data_25C[][3] = { + { -700.0f, -700.0f, 200.0f }, + { 700.0f, -700.0f, 200.0f } +}; + +void fn_1_72A8(UnkM447Struct_04* arg0) { + float sp28[3]; // Vec? + float sp18[4]; + float spC[3]; // Vec? + float temp_f31; + float temp_f30; + float var_f28; + s32 i; + + sp28[0] = arg0->unk28.x; + sp28[1] = arg0->unk28.z; + sp28[2] = 95.0f; + for (i = 0; i < 4; i++) { + if (fn_1_80BC(sp28, lbl_1_data_21C[i], sp18) == 0) { + continue; + } + if (i / 2 == 0) { + if (lbl_1_data_21C[i][0] < 0.0f) { + arg0->unk28.x = sp28[2] + lbl_1_data_21C[i][0]; + } else { + arg0->unk28.x = lbl_1_data_21C[i][0] - sp28[2]; + } + } else { + if (lbl_1_data_21C[i][1] < 0.0f) { + arg0->unk28.z = sp28[2] + lbl_1_data_21C[i][1]; + } else { + arg0->unk28.z = lbl_1_data_21C[i][1] - sp28[2]; + } + } + arg0->unk0C = 0; + } + spC[0] = arg0->unk28.x; + spC[1] = arg0->unk28.z; + spC[2] = arg0->unk50; + for (i = 0; i < 2; i++) { + if (fn_1_879C(spC, lbl_1_data_25C[i], 1, 0) != 0) { + arg0->unk28.x = spC[0]; + arg0->unk28.z = spC[1]; + arg0->unk0C = 0; + } + } + if (arg0->unk28.z > 0.0f) { + temp_f31 = arg0->unk28.x; + temp_f30 = arg0->unk28.z - -120.0f; + var_f28 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30); + if (700.0f - arg0->unk50 < var_f28) { + temp_f31 /= var_f28; + temp_f30 /= var_f28; + arg0->unk28.x = temp_f31 * (700.0f - arg0->unk50); + arg0->unk28.z = -120.0f + temp_f30 * (700.0f - arg0->unk50); + } + } +} + +void fn_1_7688(UnkM447Struct_04* arg0) { + float sp14[3]; // Vec? + float sp8[3]; // Vec? + UnkM447Struct_04* temp_r30; + s32 var_r26; + s32 i; + + for (i = 0; i < 2; i++) { + temp_r30 = lbl_1_bss_98[i]; + if (!temp_r30 || temp_r30 == arg0) { + continue; + } + sp14[0] = arg0->unk28.x; + sp14[1] = arg0->unk28.z; + sp14[2] = arg0->unk50; + sp8[0] = temp_r30->unk28.x; + sp8[1] = temp_r30->unk28.z; + sp8[2] = temp_r30->unk50; + var_r26 = (temp_r30->unk24 == 1) ? 1 : 0; + if (fn_1_879C(sp14, sp8, 1, var_r26) == 0) { + continue; + } + switch (arg0->unk24) { + case 1: + arg0->unk28.x = sp14[0]; + arg0->unk28.z = sp14[1]; + temp_r30->unk28.x = sp8[0]; + temp_r30->unk28.z = sp8[1]; + arg0->unk0C = 0; + break; + case 6: + case 7: + arg0->unk28.x = sp14[0]; + arg0->unk28.z = sp14[1]; + if (ABS(arg0->unk28.z - temp_r30->unk28.z) < 2.0f) { + arg0->unk28.z += 55.0f * (0.0f > arg0->unk28.z ? -1 : 1); + } + arg0->unk0C = 0; + break; + } + switch (arg0->unk24) { + case 1: + fn_1_72A8(arg0); + fn_1_72A8(temp_r30); + break; + } + } +} + +void fn_1_78A8(UnkM447Struct_04* arg0) { + float sp20[3]; // Vec? + float sp14[3]; // Vec? + Vec sp8; + s32 i; + + sp20[0] = arg0->unk28.x; + sp20[1] = arg0->unk28.z; + sp20[2] = arg0->unk50; + for (i = 0; i < 5; i++) { + if (lbl_1_bss_10->unk54[i] != 0) { + continue; + } + fn_1_1ED4(i, &sp8); + sp14[0] = sp8.x; + sp14[1] = sp8.z; + sp14[2] = 35.0f; + if (fn_1_879C(sp20, sp14, 1, 0) != 0) { + arg0->unk28.x = sp20[0]; + arg0->unk28.z = sp20[1]; + arg0->unk0C = 0; + } + } +} + +s32 fn_1_7984(UnkM447Struct_04* arg0) { + float sp20[3]; // Vec? + float sp14[3]; // Vec? + Vec sp8; + s32 i; + + sp20[0] = arg0->unk28.x; + sp20[1] = arg0->unk28.z; + sp20[2] = arg0->unk50; + for (i = 0; i < 5; i++) { + fn_1_1ED4(i, &sp8); + sp14[0] = sp8.x; + sp14[1] = sp8.z; + sp14[2] = 40.0f; + if (fn_1_879C(sp20, sp14, 0, 0) != 0) { + return i; + } + } + return 5; +} + +void fn_1_7A34(UnkM447Struct_04* arg0) { + espDispOn(arg0->unk7C[1]); + espDispOn(arg0->unk7C[0]); +} + +void fn_1_7A6C(UnkM447Struct_04* arg0) { + espDispOff(arg0->unk7C[1]); + espDispOff(arg0->unk7C[0]); +} + +void fn_1_7AA4(UnkM447Struct_04* arg0, s32 arg1, s32 arg2) { + if (arg0->unk1C == 0) { + switch (arg1) { + case 0: + omVibrate(arg0->unk00, arg2, 6, 6); + return; + case 1: + omVibrate(arg0->unk00, arg2, 4, 2); + return; + case 2: + omVibrate(arg0->unk00, arg2, 12, 0); + break; + } + } +} diff --git a/src/REL/m447dll/player_col.c b/src/REL/m447dll/player_col.c new file mode 100755 index 00000000..0bd2216a --- /dev/null +++ b/src/REL/m447dll/player_col.c @@ -0,0 +1,199 @@ +#include "REL/m447dll.h" + +#include "ext_math.h" + +float fn_1_7D94(float* arg0, float* arg1); +void fn_1_7F64(float* arg0, float arg1, float* arg2, float* arg3); +s32 fn_1_89BC(float* arg0, float* arg1); + +void fn_1_7B54(Vec* arg0, Vec* arg1, s32 arg2, float arg3) { + float temp_f29; + float var_f30; + float var_f31; + s32 temp_r29; + s32 var_r30; + s32 i; + + temp_r29 = arg2 - 1; + arg0->x = 0.0f; + arg0->y = 0.0f; + arg0->z = 0.0f; + arg3 = (arg2 + 1) * arg3 - 1.0f; + for (i = -2; i <= temp_r29 + 2; i++) { + var_r30 = i; + if (i < 0) { + var_r30 = 0; + } + if (i > temp_r29) { + var_r30 = temp_r29; + } + var_f31 = arg3 - i; + if (var_f31 < 0.0f) { + var_f31 = -var_f31; + } + if (var_f31 < 1.0f) { + var_f30 = (3.0f * var_f31 * var_f31 * var_f31 - 6.0f * var_f31 * var_f31 + 4.0f) / 6.0f; + } else if (var_f31 < 2.0f) { + temp_f29 = var_f31 - 2.0f; + var_f30 = -temp_f29 * temp_f29 * temp_f29 / 6.0f; + } else { + var_f30 = 0.0f; + } + arg0->x += var_f30 * arg1[var_r30].x; + arg0->y += var_f30 * arg1[var_r30].y; + arg0->z += var_f30 * arg1[var_r30].z; + } +} + +float fn_1_7D94(float* arg0, float* arg1) { + float var_f30; + float var_f31; + float temp_f29; + float var_f28; + s32 var_r31; + + var_f30 = arg1[0] - arg0[0]; + var_f31 = arg1[1] - arg0[1]; + if (var_f30 >= 0.0f) { + if (var_f31 >= 0.0f) { + var_r31 = 0; + } else { + var_r31 = 3; + temp_f29 = var_f30; + var_f30 = -var_f31; + var_f31 = temp_f29; + } + } else { + if (var_f31 >= 0.0f) { + var_r31 = 1; + temp_f29 = var_f30; + var_f30 = var_f31; + var_f31 = -temp_f29; + } else { + var_r31 = 2; + var_f30 = -var_f30; + var_f31 = -var_f31; + } + } + if (var_f31 > var_f30) { + var_f28 = M_PI / 2 - atan2d(var_f30, var_f31); + } else { + var_f28 = atan2d(var_f31, var_f30); + } + return var_f28 + (M_PI / 2) * var_r31; +} + +void fn_1_7F64(float* arg0, float arg1, float* arg2, float* arg3) { + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + + // 57.29578 = 180 / M_PI (1 rad in degrees) + temp_f31 = cosd(-(57.29578f * arg1)); + temp_f30 = sind(-(57.29578f * arg1)); + temp_f29 = arg2[0] - arg0[0]; + temp_f28 = arg2[1] - arg0[1]; + arg3[0] = temp_f29 * temp_f31 + temp_f28 * temp_f30 + arg0[0]; + arg3[1] = -temp_f29 * temp_f30 + temp_f28 * temp_f31 + arg0[1]; +} + +s32 fn_1_80BC(float* arg0, float* arg1, float* arg2) { + float sp40[2]; + float sp38[2]; + float sp30[2]; + float sp2C; + float var_f26; + + sp40[0] = 0.0f; + sp40[1] = 0.0f; + sp38[0] = arg0[0] - arg1[0]; + sp38[1] = arg0[1] - arg1[1]; + sp2C = fn_1_7D94(arg1, &arg1[2]); + fn_1_7F64(sp40, -sp2C, sp38, sp30); + if (ABS(sp30[1]) > arg0[2]) { + return 0; + } + var_f26 = sqrtf(arg0[2] * arg0[2] - sp30[1] * sp30[1]); + sp38[0] = arg0[0] + var_f26; + sp38[1] = arg0[1] - sp30[1]; + fn_1_7F64(arg0, sp2C, sp38, arg2); + if (var_f26 == 0.0f) { + return 1; + } + sp38[0] = arg0[0] - var_f26; + sp38[1] = arg0[1] - sp30[1]; + fn_1_7F64(arg0, sp2C, sp38, &arg2[2]); + return 2; +} + +s32 fn_1_879C(float* arg0, float* arg1, s32 arg2, s32 arg3) { + float spC[2]; + float var_f28; + + spC[0] = arg0[0] - arg1[0]; + spC[1] = arg0[1] - arg1[1]; + var_f28 = sqrtf(spC[0] * spC[0] + spC[1] * spC[1]); + if (var_f28 < arg0[2] + arg1[2]) { + if (var_f28 == 0.0f) { + spC[0] = 0.0f; + spC[1] = -1.0f; + } else { + spC[0] /= var_f28; + spC[1] /= var_f28; + if (arg3 != 0) { + arg1[0] -= spC[0]; + arg1[1] -= spC[1]; + } + } + if (arg2 != 0) { + arg0[0] = arg1[0] + spC[0] * (arg0[2] + arg1[2]); + arg0[1] = arg1[1] + spC[1] * (arg0[2] + arg1[2]); + } + return 1; + } + return 0; +} + +s32 fn_1_89BC(float* arg0, float* arg1) { + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f26; + float temp_f27; + float temp_f24; + + temp_f26 = arg0[2] * arg0[2] - 2.0f * arg0[0] * arg0[2] + arg0[0] * arg0[0] + arg0[3] * arg0[3] - 2.0f * arg0[1] * arg0[3] + arg0[1] * arg0[1]; + temp_f27 = 2.0f * (arg0[0] * arg0[2] - arg0[2] * arg1[0] + arg0[0] * arg0[0] + arg0[1] * arg0[3] - arg0[3] * arg1[1] + arg0[1] * arg0[1]); + temp_f24 = arg0[0] * arg0[0] - 2.0f * arg0[0] * arg1[0] + arg1[0] * arg1[0] + arg0[1] * arg0[1] - 2.0f * arg0[1] * arg1[1] + arg1[1] * arg1[1] - arg1[2] * arg1[2]; + if (temp_f26 == 0.0f) { + if (temp_f27 != 0.0f) { + return 1; + } else { + return 0; + } + } + temp_f30 = temp_f27 * temp_f27 - 4.0f * temp_f26 * temp_f24; + if (temp_f30 < 0.0f) { + return 0; + } + temp_f30 = sqrtf(temp_f30); + temp_f29 = (-temp_f27 + temp_f30) / (2.0f * temp_f26); + temp_f28 = (-temp_f27 - temp_f30) / (2.0f * temp_f26); + if (temp_f29 < temp_f28) { + if (temp_f29 >= 0.0f && temp_f29 > 1.0f) { + return 1; + } + if (temp_f28 >= 0.0f && temp_f28 < 1.0f) { + return 1; + } + } else { + if (temp_f28 >= 0.0f && temp_f28 < 1.0f) { + return 1; + } + if (temp_f29 >= 0.0f && temp_f29 < 1.0f) { + return 1; + } + } + return 0; +} diff --git a/src/REL/m447dll/stage.c b/src/REL/m447dll/stage.c new file mode 100755 index 00000000..ea976882 --- /dev/null +++ b/src/REL/m447dll/stage.c @@ -0,0 +1,471 @@ +#include "REL/m447dll.h" +#include "game/audio.h" +#include "game/data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/process.h" +#include "game/sprite.h" + +#include "ext_math.h" + +typedef struct { + /* 0x00 */ Vec unk00; + /* 0x0C */ Vec unk0C; + /* 0x18 */ GXColor unk18; +} UnkM447Struct_07; // Size 0x1C + +void fn_1_1FF4(void); +void fn_1_2164(UnkM447Struct_06* arg0); +void fn_1_231C(UnkM447Struct_06* arg0); +void fn_1_236C(UnkM447Struct_06* arg0); +void fn_1_2490(UnkM447Struct_06* arg0); +void fn_1_2494(UnkM447Struct_06* arg0); +void fn_1_25E4(UnkM447Struct_06* arg0); +void fn_1_2700(UnkM447Struct_06* arg0); +void fn_1_2A3C(UnkM447Struct_06* arg0); +void fn_1_2D08(UnkM447Struct_06* arg0); +void fn_1_2DAC(ModelData* model, ParticleData* particle, Mtx matrix); + +const s32 lbl_1_rodata_138[] = { + DATA_MAKE_NUM(DATADIR_M447, 0), + DATA_MAKE_NUM(DATADIR_M447, 2), + DATA_MAKE_NUM(DATADIR_M447, 3), + DATA_MAKE_NUM(DATADIR_M447, 1), + DATA_MAKE_NUM(DATADIR_M447, 1), + DATA_MAKE_NUM(DATADIR_M447, 1), + DATA_MAKE_NUM(DATADIR_M447, 1), + DATA_MAKE_NUM(DATADIR_M447, 1), + DATA_MAKE_NUM(DATADIR_M447, 24), + DATA_MAKE_NUM(DATADIR_M447, 24), + DATA_MAKE_NUM(DATADIR_M447, 24), + DATA_MAKE_NUM(DATADIR_M447, 24), + DATA_MAKE_NUM(DATADIR_M447, 24), + DATA_MAKE_NUM(DATADIR_M447, 25), + DATA_MAKE_NUM(DATADIR_M447, 26), + DATA_MAKE_NUM(DATADIR_M447, 28), + DATA_MAKE_NUM(DATADIR_M447, 29), + DATA_MAKE_NUM(DATADIR_M447, 29), + DATA_MAKE_NUM(DATADIR_M447, 29), + DATA_MAKE_NUM(DATADIR_M447, 29), + DATA_MAKE_NUM(DATADIR_M447, 29), + 0 +}; + +const Vec lbl_1_rodata_190[] = { + { 0.0f, 0.1f, 0.0f }, + { 400.0f, 0.1f, 0.0f }, + { -400.0f, 0.1f, 0.0f }, + { 200.0f, 0.1f, -400.0f }, + { -200.0f, 0.1f, -400.0f } +}; + +UnkM447Struct_07 lbl_1_data_A0[] = { + { { 0.0f, 2500.0f, 0.0f }, { 0.0f, -0.5f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { 0.0f, -100.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { 400.0f, -100.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { -400.0f, -100.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { 200.0f, -100.0f, -400.0f }, { 0.0f, 1.0f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { -200.0f, -100.0f, -400.0f }, { 0.0f, 1.0f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } } +}; + +UnkM447Struct_06* fn_1_1D90(void) { + UnkM447Struct_06* temp_r3; + s32 i; + + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r3), MEMORY_DEFAULT_NUM); + if (!temp_r3) { + return NULL; + } + temp_r3->unk38 = 0; + temp_r3->unk50 = NULL; + temp_r3->unk44 = 0; + for (i = 0; i < 5; i++) { + temp_r3->unk54[i] = 0; + temp_r3->unk68[i] = 0; + } + fn_1_2164(temp_r3); + fn_1_236C(temp_r3); + temp_r3->unk7C = HuPrcChildCreate(fn_1_1FF4, 0x65, 0x3000, 0, lbl_1_bss_4); + temp_r3->unk7C->user_data = temp_r3; + return temp_r3; +} + +void fn_1_1E70(UnkM447Struct_06* arg0) { + fn_1_231C(arg0); + HuPrcKill(arg0->unk7C); + HuMemDirectFree(arg0); +} + +void fn_1_1EB0(UnkM447Struct_06* arg0, s32 arg1) { + arg0->unk38 = arg1; + arg0->unk3C = 0; +} + +BOOL fn_1_1EC0(UnkM447Struct_06* arg0) { + return arg0->unk38 != 0; +} + +void fn_1_1ED4(s32 arg0, Vec* arg1) { + *arg1 = lbl_1_rodata_190[arg0]; +} + +void fn_1_1F00(UnkM447Struct_06* arg0, s32 arg1) { + s16 temp_r31; + + temp_r31 = arg0->unk00[arg1 + 3]; + Hu3DModelAttrReset(temp_r31, 0x40000002); + Hu3DMotionTimeSet(temp_r31, 0.0f); + Hu3DMotionStartEndSet(temp_r31, 0.0f, 40.0f); + arg0->unk54[arg1] = 1; +} + +s32 fn_1_1F9C(UnkM447Struct_06* arg0) { + s32 var_r30; + s32 i; + + var_r30 = 0; + for (i = 0; i < 5; i++) { + if (arg0->unk54[i] == 0) { + var_r30++; + } + } + return var_r30; +} + +void fn_1_1FEC(UnkM447Struct_06* arg0, s32 arg1) { + arg0->unk44 = arg1; +} + +void (*lbl_1_data_148[])(UnkM447Struct_06*) = { + fn_1_2490, + fn_1_2494, + fn_1_25E4, + fn_1_2700, + fn_1_2A3C, + NULL // padding? +}; + +void fn_1_1FF4(void) { + Vec sp8; + UnkM447Struct_06* temp_r31; + s16 temp_r29; + s32 i; + + temp_r31 = HuPrcCurrentGet()->user_data; + while (TRUE) { + if (lbl_1_data_148[temp_r31->unk38]) { + lbl_1_data_148[temp_r31->unk38](temp_r31); + } + for (i = 0; i < 5; i++) { + temp_r29 = temp_r31->unk00[i + 3]; + if (Hu3DMotionEndCheck(temp_r29)) { + Hu3DMotionStartEndSet(temp_r29, 20.0f, 40.0f); + Hu3DModelAttrSet(temp_r29, 0x40000001); + } + } + if (temp_r31->unk44 > 0) { + fn_1_351C(&sp8); + if (--temp_r31->unk44 == 0) { + sp8.y = 300.0f; + } else { + sp8.y = fn_1_A240() % 20 - 10 + 300.0f; + } + fn_1_3540(&sp8); + } + HuPrcVSleep(); + } +} + +void fn_1_2164(UnkM447Struct_06* arg0) { + s32 i; + + for (i = 0; i <= 20; i++) { + arg0->unk00[i] = Hu3DModelCreateFile(lbl_1_rodata_138[i]); + Hu3DModelLayerSet(arg0->unk00[i], 0); + } + arg0->unk50 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M447, 57)); + arg0->unk00[21] = Hu3DParticleCreate(arg0->unk50, 64); + Hu3DParticleHookSet(arg0->unk00[21], fn_1_2DAC); + Hu3DParticleBlendModeSet(arg0->unk00[21], 1); + Hu3DModelLayerSet(arg0->unk00[21], 0); + Hu3DModelAttrSet(arg0->unk00[21], 1); + Hu3DModelShadowMapSet(arg0->unk00[2]); + for (i = 0; i < 5; i++) { + Hu3DModelPosSet(arg0->unk00[i + 3], lbl_1_rodata_190[i].x, lbl_1_rodata_190[i].y, lbl_1_rodata_190[i].z); + Hu3DModelAttrSet(arg0->unk00[i + 3], 0x40000002); + Hu3DModelShadowMapSet(arg0->unk00[i + 3]); + } + for (i = 8; i <= 15; i++) { + Hu3DModelAttrSet(arg0->unk00[i], 1); + } + for (i = 16; i <= 20; i++) { + Hu3DModelAttrSet(arg0->unk00[i], 1); + } +} + +void fn_1_231C(UnkM447Struct_06* arg0) { + s32 i; + + for (i = 0; i < 22; i++) { + Hu3DModelKill(arg0->unk00[i]); + } +} + +void fn_1_236C(UnkM447Struct_06* arg0) { + s32 i; + + Hu3DLighInit(); + for (i = 0; i < 6; i++) { + arg0->unk2C[i] = Hu3DGLightCreateV(&lbl_1_data_A0[i].unk00, &lbl_1_data_A0[i].unk0C, &lbl_1_data_A0[i].unk18); + switch (i) { + case 0: + Hu3DGLightInfinitytSet(arg0->unk2C[i]); + Hu3DGLightStaticSet(arg0->unk2C[i], 1); + break; + case 1: + case 2: + case 3: + case 4: + case 5: + Hu3DGLightStaticSet(arg0->unk2C[i], 1); + Hu3DGLightSpotSet(arg0->unk2C[i], 20.0f, 2); + Hu3DGLightColorSet(arg0->unk2C[i], 0, 0, 0, 0); + break; + } + } +} + +void fn_1_2490(UnkM447Struct_06* arg0) { +} + +void fn_1_2494(UnkM447Struct_06* arg0) { + s32 i; + + switch (arg0->unk3C) { + case 0: + arg0->unk3C = 1; + break; + case 1: + Hu3DModelPosSet(arg0->unk00[14], 0.0f, 0.0f, 0.0f); + Hu3DMotionTimeSet(arg0->unk00[14], 0.0f); + Hu3DModelAttrReset(arg0->unk00[14], 1); + Hu3DModelAttrSet(arg0->unk00[14], 0x40000001); + arg0->unk40 = 0; + arg0->unk3C = 2; + HuAudFXPlay(0x77E); + for (i = 0; i < 2; i++) { + fn_1_7AA4(lbl_1_bss_98[i], 0, 0x3C); + } + break; + case 2: + if (arg0->unk40++ >= 60) { + arg0->unk3C = 3; + } + break; + case 3: + Hu3DModelAttrSet(arg0->unk00[14], 1); + arg0->unk38 = 0; + arg0->unk3C = 0; + break; + } +} + +void fn_1_25E4(UnkM447Struct_06* arg0) { + switch (arg0->unk3C) { + case 0: + arg0->unk3C = 1; + break; + case 1: + fn_1_2D08(arg0); + Hu3DModelPosSet(arg0->unk00[15], 0.0f, 0.0f, 0.0f); + Hu3DMotionTimeSet(arg0->unk00[15], 0.0f); + Hu3DModelAttrReset(arg0->unk00[15], 1); + Hu3DModelAttrSet(arg0->unk00[15], 0x40000001); + arg0->unk40 = 0; + arg0->unk3C = 2; + HuAudFXPlay(0x782); + break; + case 2: + if (arg0->unk40++ >= 60) { + arg0->unk3C = 3; + } + break; + case 3: + Hu3DModelAttrSet(arg0->unk00[15], 1); + arg0->unk38 = 0; + arg0->unk3C = 0; + break; + } +} + +void fn_1_2700(UnkM447Struct_06* arg0) { + float temp_f31; + s16 temp_r29; + s32 i; + + switch (arg0->unk3C) { + case 0: + arg0->unk48 = 0.0f; + arg0->unk4C = 0.011111111f; + arg0->unk3C = 1; + HuAudFXPlay(0x77F); + break; + case 1: + temp_f31 = -90.0f * arg0->unk48; + for (i = 0; i < 5; i++) { + Hu3DModelPosSet(arg0->unk00[i + 3], lbl_1_rodata_190[i].x, temp_f31, lbl_1_rodata_190[i].z); + } + arg0->unk48 += arg0->unk4C; + if (arg0->unk48 < 1.0f) { + break; + } + for (i = 0; i < 5; i++) { + Hu3DMotionTimeSet(arg0->unk00[i + 3], 0.0f); + Hu3DModelAttrSet(arg0->unk00[i + 3], 0x40000002); + arg0->unk54[i] = 0; + arg0->unk68[i] = 0; + } + arg0->unk3C = 2; + break; + case 2: + for (i = 0; i < 5; i++) { + temp_r29 = arg0->unk00[i + 8]; + Hu3DModelPosSet(temp_r29, lbl_1_rodata_190[i].x, lbl_1_rodata_190[i].y, lbl_1_rodata_190[i].z); + Hu3DMotionTimeSet(temp_r29, 0.0f); + Hu3DModelAttrReset(temp_r29, 1); + Hu3DGLightColorSet(arg0->unk2C[i + 1], lbl_1_data_A0[i + 1].unk18.r, lbl_1_data_A0[i + 1].unk18.g, lbl_1_data_A0[i + 1].unk18.b, lbl_1_data_A0[i + 1].unk18.a); + } + arg0->unk40 = 0; + arg0->unk3C = 3; + HuAudFXPlay(0x780); + break; + case 3: + if (arg0->unk40++ >= 60) { + for (i = 0; i < 5; i++) { + Hu3DModelAttrSet(arg0->unk00[i + 8], 1); + Hu3DGLightColorSet(arg0->unk2C[i + 1], 0, 0, 0, 0); + } + arg0->unk3C = 4; + } + break; + case 4: + arg0->unk38 = 0; + arg0->unk3C = 0; + break; + } +} + +void fn_1_2A3C(UnkM447Struct_06* arg0) { + float temp_f31; + s16 temp_r29; + s32 i; + + switch (arg0->unk3C) { + case 0: + arg0->unk48 = 0.0f; + arg0->unk4C = 0.033333335f; + arg0->unk3C = 1; + HuAudFXPlay(0x77F); + break; + case 1: + temp_f31 = 90.0f * arg0->unk48 + -90.0f + 0.1f; + for (i = 0; i < 5; i++) { + Hu3DModelPosSet(arg0->unk00[i + 3], lbl_1_rodata_190[i].x, temp_f31, lbl_1_rodata_190[i].z); + } + arg0->unk48 += arg0->unk4C; + if (arg0->unk48 < 1.0f) { + break; + } + for (i = 0; i < 5; i++) { + Hu3DModelPosSet(arg0->unk00[i + 3], lbl_1_rodata_190[i].x, lbl_1_rodata_190[i].y, lbl_1_rodata_190[i].z); + } + HuAudFXPlay(0x783); + arg0->unk3C = 2; + break; + case 2: + for (i = 0; i < 5; i++) { + temp_r29 = arg0->unk00[i + 16]; + Hu3DModelPosSet(temp_r29, lbl_1_rodata_190[i].x, lbl_1_rodata_190[i].y, lbl_1_rodata_190[i].z); + Hu3DMotionTimeSet(temp_r29, 0.0f); + Hu3DModelAttrReset(temp_r29, 0x40000001); + Hu3DModelAttrReset(temp_r29, 1); + } + arg0->unk40 = 0; + arg0->unk3C = 3; + break; + case 3: + if (arg0->unk40++ >= 20) { + for (i = 0; i < 5; i++) { + Hu3DModelAttrSet(arg0->unk00[i + 16], 1); + } + arg0->unk3C = 4; + break; + } + break; + case 4: + arg0->unk38 = 0; + arg0->unk3C = 0; + break; + } +} + +void fn_1_2D08(UnkM447Struct_06* arg0) { + ModelData* temp_r30; + ParticleData* temp_r31; + + temp_r30 = &Hu3DData[arg0->unk00[21]]; + temp_r31 = temp_r30->unk_120; + temp_r30->attr &= ~1; + temp_r31->unk_00 = 0; + temp_r31->unk_02 = 1; + temp_r31->unk_04.x = 0.0f; + temp_r31->unk_04.y = 350.0f; + temp_r31->unk_04.z = -700.0f; + HuAudFXPlay(0x780); +} + +void fn_1_2DAC(ModelData* model, ParticleData* particle, Mtx matrix) { + GXColor sp8 = { 0xFF, 0xFF, 0xFF, 0xFF }; + HsfanimStruct01* var_r31; + s32 i; + + if (particle->unk_02 == 0) { + return; + } + if (particle->unk_00 == 0) { + particle->unk_00 = 1; + particle->unk_04.z = 0.0f; + particle->unk_10.z = 0.016666668f; + for (i = 0, var_r31 = particle->unk_48; i < particle->unk_30; i++, var_r31++) { + var_r31->unk00 = 0; + var_r31->unk2C = 20.0f; + var_r31->unk40.r = sp8.r; + var_r31->unk40.g = sp8.g; + var_r31->unk40.b = sp8.b; + var_r31->unk40.a = sp8.a; + var_r31->unk34.x = particle->unk_04.x; + var_r31->unk34.y = particle->unk_04.y; + var_r31->unk34.z = particle->unk_04.z; + var_r31->unk08.x = -8.0f + 0.1f * (fn_1_A240() % 160); + var_r31->unk08.y = -8.0f + 0.1f * (fn_1_A240() % 160); + var_r31->unk08.z = 0.0f; + } + } + for (i = 0, var_r31 = particle->unk_48; i < particle->unk_30; i++, var_r31++) { + if (var_r31->unk00_s16 < 0) { + continue; + } + var_r31->unk34.x += var_r31->unk08.x; + var_r31->unk34.y += var_r31->unk08.y; + var_r31->unk34.z = -700.0 + 500.0 * sind(90.0f * particle->unk_04.z); + var_r31->unk40.a = 255.0f * (1.0f - particle->unk_04.z); + var_r31->unk2C = 20.0f + fn_1_A240() % 30; + } + particle->unk_04.z += particle->unk_10.z; + if (particle->unk_04.z >= 1.0f) { + model->attr |= 1; + particle->unk_02 = 0; + } +} From 31db16481b4d2a60de70952a5a0f5b26499fb158 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Wed, 7 Aug 2024 08:23:26 -0500 Subject: [PATCH 018/311] Finish m412dll --- configure.py | 2 +- src/REL/m412Dll/main.c | 146 +++++++++++++++++++++++++++++++---------- 2 files changed, 112 insertions(+), 36 deletions(-) diff --git a/configure.py b/configure.py index 157ff442..6065f221 100644 --- a/configure.py +++ b/configure.py @@ -919,7 +919,7 @@ config.libs = [ "m412Dll", # Mr. Blizzard's Brigade objects={ Object(Matching, "REL/executor.c"), - Object(NonMatching, "REL/m412Dll/main.c"), + Object(Matching, "REL/m412Dll/main.c"), }, ), Rel( diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c index fdd34597..7d49eb7f 100644 --- a/src/REL/m412Dll/main.c +++ b/src/REL/m412Dll/main.c @@ -1189,6 +1189,67 @@ s8 fn_1_4E58(s32 arg0, s32 arg1) { return var_r30; } +static inline void DummyInline2(Vec *arg0, float arg1, float arg2) +{ + arg1 *= unkInline(); + arg0->x = (arg1 * sind(arg2)); + arg0->z = (arg1 * cosd(arg2)); +} + +static inline s8 fn_1_4E58_0(s32 arg0) { + Vec spC; + float temp; + f32 sp8; + f32 temp_f28; + f32 temp_f27; + s8 var_r30; + s8 temp_r29; + s8 temp_r28; + + unkStruct3* temp_r31; + + temp_r31 = &lbl_1_bss_4D4[arg0]; + if (GWPlayerCfg[arg0].iscom == 0) { + temp_r29 = HuPadStkX[temp_r31->unk2C]; + temp_r28 = HuPadStkY[temp_r31->unk2C]; + temp_f28 = fn_1_1D08(atan2d(temp_r29, temp_r28)); + temp_f28 -= lbl_1_bss_778; + HuSetVecF(&spC, (f32)temp_r29, 0.0, (f32)temp_r28); + DummyInline2(&spC, sqrtf((spC.x * spC.x) + (spC.z * spC.z)), temp_f28); + var_r30 = spC.x; + } else { + var_r30 = temp_r31->unk88; + } + return var_r30; +} + +static inline s8 fn_1_4E58_1(s32 arg0) { + Vec spC; + float temp; + f32 sp8; + f32 temp_f28; + f32 temp_f27; + s8 var_r30; + s8 temp_r29; + s8 temp_r28; + + unkStruct3* temp_r31; + + temp_r31 = &lbl_1_bss_4D4[arg0]; + if (GWPlayerCfg[arg0].iscom == 0) { + temp_r29 = HuPadStkX[temp_r31->unk2C]; + temp_r28 = HuPadStkY[temp_r31->unk2C]; + temp_f28 = fn_1_1D08(atan2d(temp_r29, temp_r28)); + temp_f28 -= lbl_1_bss_778; + HuSetVecF(&spC, (f32)temp_r29, 0.0, (f32)temp_r28); + DummyInline2(&spC, sqrtf((spC.x * spC.x) + (spC.z * spC.z)), temp_f28); + var_r30 = spC.z; + } else { + var_r30 = temp_r31->unk89; + } + return var_r30; +} + u8 fn_1_525C(s32 arg0, s32 arg1) { s8 var_r30; s8 var_r29; @@ -1242,11 +1303,11 @@ s32 fn_1_53F4(unkStruct3* arg0, f32 arg8, f32 arg9, f32 argA) { Vec sp30; Vec sp24; Vec sp18; + unkStruct3* temp_r31; + s32 var_r30; + s32 var_r28; f32 var_f27; f32 var_f28; - s32 var_r28; - s32 var_r30; - unkStruct3* temp_r31; var_r28 = -1; @@ -1260,6 +1321,8 @@ s32 fn_1_53F4(unkStruct3* arg0, f32 arg8, f32 arg9, f32 argA) { var_f28 = var_f27; var_r28 = var_r30; arg0->unkA4 = 0; + (void)temp_r31; + (void)temp_r31; } } } @@ -1404,8 +1467,8 @@ end: } f32 fn_1_6594(f32 arg8, f32 arg9, f32 argA) { - f32 var_f30; f32 var_f31; + f32 var_f30; var_f31 = fmod((arg9 - arg8), 360.0); if (0.0f > var_f31) { @@ -1432,6 +1495,25 @@ f32 fn_1_6698(f32 arg8, f32 arg9, unkStruct3* arg0) { return sqrtf((sp14.x * sp14.x) + (sp14.z * sp14.z)); } +static inline void PadInline(void) +{ + float var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; + (void)var_f27; +} + // fn_1_6814: https://decomp.me/scratch/WQPjD void fn_1_6814(unkStruct3* arg0) { Vec sp104; @@ -1511,6 +1593,7 @@ void fn_1_6814(unkStruct3* arg0) { if (arg0->unkA0 != var_r30->unk6) { if (frandmod(0x64) < 0) { (void)var_r21; // probably debug code + PadInline(); } else { (void)var_r21; } @@ -1598,23 +1681,27 @@ void fn_1_6814(unkStruct3* arg0) { } } - (void)var_f27; - (void)var_f27; - (void)var_f27; - (void)var_f27; - (void)var_f27; - (void)var_f27; - (void)var_f27; - (void)var_f27; - (void)var_f27; - (void)var_f27; - (void)var_f27; - (void)var_f27; - (void)var_f27; - (void)var_f27; + +} + +static inline DummyInline(Vec *arg0, Vec *arg1, Vec *arg2, float arg3, float arg4, float arg5) +{ + float spB8; + float spBC; + HuSetVecF(arg0, arg1->x, 0.0, arg1->z); + spBC = sqrtf((arg0->x * arg0->x) + (arg0->z * arg0->z)); + spBC *= (1.0f - arg3); + arg0->x = spBC * sind(arg4); + arg0->z = spBC * cosd(arg4); + HuSetVecF(arg2, arg0->x, 0.0, arg0->z); + HuSetVecF(arg0, arg1->x, 0.0, arg1->z); + spB8 = sqrtf((arg0->x * arg0->x) + (arg0->z * arg0->z)); + spB8 *= arg3; + arg0->x = spB8 * sind(arg5); + arg0->z = spB8 * cosd(arg5); + HuSetVecF(arg1, arg0->x, 0.0, arg0->z); } -// fn_1_7C60: https://decomp.me/scratch/eMCi6 void fn_1_7C60(void) { Vec sp1A0; Vec sp188; @@ -1686,7 +1773,7 @@ loop_6: } switch (temp_r31->unk30) { default: - HuSetVecF(&temp_r31->unk24, fn_1_4E58(temp_r31->unk24, 0) * 0.25f, 0.0, -fn_1_4E58(temp_r31->unk24, 1) * 0.25f); + HuSetVecF(&sp1A0, fn_1_4E58_0(temp_r31->unk24) / 4.0f, 0.0, -fn_1_4E58_1(temp_r31->unk24) / 4.0f); temp_r31->unk60.z = sqrtf((sp1A0.z * sp1A0.z) + ((sp1A0.x * sp1A0.x) + (sp1A0.y * sp1A0.y))); if (temp_r31->unk60.z >= 0.5f) { if (temp_r31->unk60.z >= 10.0f) { @@ -1739,8 +1826,7 @@ loop_6: temp_r31->unk60.y = var_f21; temp_r31->unk40.x += temp_r31->unk7C.x; temp_r31->unk40.z += temp_r31->unk7C.z; - temp_r31->unk38 = fn_1_53F4(temp_r31, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); - if (temp_r31->unk38 != -1) { + if ((temp_r31->unk38 = fn_1_53F4(temp_r31, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z)) != -1) { temp_r30 = &lbl_1_bss_4D4[temp_r31->unk38]; if (temp_r30->unk30 != 3) { var_f31 = atan2d((temp_r30->unk40.x - temp_r31->unk40.x), (temp_r30->unk40.z - temp_r31->unk40.z)); @@ -1755,18 +1841,7 @@ loop_6: temp_f20 = fn_1_1D08(180.0f + temp_f20); temp_f20 = fn_1_1D08(var_f31 - (temp_f20 - var_f31)); var_f31 = fn_1_1D08(atan2d((temp_r30->unk40.x - temp_r31->unk40.x), (temp_r30->unk40.z - temp_r31->unk40.z))); - HuSetVecF(&sp1A0, temp_r31->unk7C.x, 0.0, temp_r31->unk7C.z); - spBC = sqrtf((sp1A0.x * sp1A0.x) + (sp1A0.z * sp1A0.z)); - spBC *= (1.0f - sp138); - sp1A0.x = spBC * sind(var_f31); - sp1A0.z = spBC * cosd(var_f31); - HuSetVecF(&temp_r30->unk7C, sp1A0.x, 0.0, sp1A0.z); - HuSetVecF(&sp1A0, temp_r31->unk7C.x, 0.0, temp_r31->unk7C.z); - spB8 = sqrtf((sp1A0.x * sp1A0.x) + (sp1A0.z * sp1A0.z)); - spB8 *= sp138; - sp1A0.x = spB8 * sind(temp_f20); - sp1A0.z = spB8 * cosd(temp_f20); - HuSetVecF(&temp_r31->unk7C, sp1A0.x, 0.0, sp1A0.z); + DummyInline(&sp1A0, &temp_r31->unk7C, &temp_r30->unk7C, sp138, var_f31, temp_f20); } fn_1_5838(temp_r31); } @@ -1828,7 +1903,8 @@ loop_6: Hu3DModelRotSet(temp_r31->unk2, temp_r31->unk54.x, temp_r31->unk54.y, temp_r31->unk54.z); HuPrcVSleep(); } - + (void)var_r27; + (void)var_r27; while (lbl_1_bss_794 < 5) { HuPrcVSleep(); } From 2e0af132d19c3fa48603372c8a3235e2f40141d3 Mon Sep 17 00:00:00 2001 From: kabiskac Date: Wed, 7 Aug 2024 19:51:05 +0200 Subject: [PATCH 019/311] Fixed fakeHalf in some symbols.txts --- config/GMPE01_00/rels/m404Dll/symbols.txt | 4 ++-- config/GMPE01_00/rels/m410Dll/symbols.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/GMPE01_00/rels/m404Dll/symbols.txt b/config/GMPE01_00/rels/m404Dll/symbols.txt index 97dbc88d..06571197 100644 --- a/config/GMPE01_00/rels/m404Dll/symbols.txt +++ b/config/GMPE01_00/rels/m404Dll/symbols.txt @@ -46,8 +46,8 @@ fn_1_648C = .text:0x0000648C; // type:function size:0x250 fn_1_66DC = .text:0x000066DC; // type:function size:0x5AC _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -__fakeHalf = .rodata:0x00000000; // type:object size:0x4 data:float -__fakeThree = .rodata:0x00000004; // type:object size:0x4 data:float +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float diff --git a/config/GMPE01_00/rels/m410Dll/symbols.txt b/config/GMPE01_00/rels/m410Dll/symbols.txt index 0ddbcbb6..9403fd83 100644 --- a/config/GMPE01_00/rels/m410Dll/symbols.txt +++ b/config/GMPE01_00/rels/m410Dll/symbols.txt @@ -86,8 +86,8 @@ fn_1_A9A4 = .text:0x0000A9A4; // type:function size:0x79C fn_1_B140 = .text:0x0000B140; // type:function size:0x644 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -__fakeHalf = .rodata:0x00000000; // type:object size:0x4 data:float -__fakeThree = .rodata:0x00000004; // type:object size:0x4 data:float +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float From cf44961290e1931754dfab455afceb7bf9e4965d Mon Sep 17 00:00:00 2001 From: kabiskac Date: Thu, 8 Aug 2024 18:34:53 +0200 Subject: [PATCH 020/311] Decompiled most of ztardll --- config/GMPE01_00/rels/ztardll/symbols.txt | 258 +- configure.py | 2 +- include/REL/ztardll.h | 30 + include/game/gamework.h | 4 +- src/REL/ztardll/font.c | 128 + src/REL/ztardll/main.c | 1506 ++++++++++ src/REL/ztardll/select.c | 3196 +++++++++++++++++++++ src/game/gamework.c | 4 +- 8 files changed, 4996 insertions(+), 132 deletions(-) create mode 100644 include/REL/ztardll.h create mode 100644 src/REL/ztardll/font.c create mode 100644 src/REL/ztardll/main.c create mode 100644 src/REL/ztardll/select.c diff --git a/config/GMPE01_00/rels/ztardll/symbols.txt b/config/GMPE01_00/rels/ztardll/symbols.txt index 6e398a8c..05abe49e 100644 --- a/config/GMPE01_00/rels/ztardll/symbols.txt +++ b/config/GMPE01_00/rels/ztardll/symbols.txt @@ -87,137 +87,139 @@ fn_1_11F68 = .text:0x00011F68; // type:function size:0x340 fn_1_122A8 = .text:0x000122A8; // type:function size:0xC4 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x38 data:4byte -lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 data:string +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x38 scope:local data:4byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 scope:local data:string lbl_1_data_22 = .data:0x00000022; // type:object size:0x8 lbl_1_data_2C = .data:0x0000002C; // type:object size:0x18 -lbl_1_data_44 = .data:0x00000044; // type:object size:0x6 +lbl_1_data_44 = .data:0x00000044; // type:object size:0x6 data:byte lbl_1_data_4A = .data:0x0000004A; // type:object size:0xC lbl_1_data_56 = .data:0x00000056; // type:object size:0xE data:2byte -lbl_1_data_64 = .data:0x00000064; // type:object size:0x20 -lbl_1_data_84 = .data:0x00000084; // type:object size:0x10 -lbl_1_data_94 = .data:0x00000094; // type:object size:0xC -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA data:string -lbl_1_data_AA = .data:0x000000AA; // type:object size:0x4 data:string +lbl_1_data_64 = .data:0x00000064; // type:object size:0x20 data:float +lbl_1_data_84 = .data:0x00000084; // type:object size:0x10 data:byte +lbl_1_data_94 = .data:0x00000094; // type:object size:0xC data:byte +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA scope:local data:string +lbl_1_data_AA = .data:0x000000AA; // type:object size:0x4 scope:local data:string lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x318 lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x20 lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x20 -lbl_1_data_408 = .data:0x00000408; // type:object size:0x3C data:string -lbl_1_data_444 = .data:0x00000444; // type:object size:0x19 data:string -lbl_1_data_45D = .data:0x0000045D; // type:object size:0x1A data:string -lbl_1_data_477 = .data:0x00000477; // type:object size:0x3D +lbl_1_data_408 = .data:0x00000408; // type:object size:0x3C scope:local data:string +lbl_1_data_444 = .data:0x00000444; // type:object size:0x19 scope:local data:string +lbl_1_data_45D = .data:0x0000045D; // type:object size:0x1A scope:local data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x3D scope:local data:string lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x20 data:4byte lbl_1_data_4D4 = .data:0x000004D4; // type:object size:0x40 data:4byte lbl_1_data_514 = .data:0x00000514; // type:object size:0x70 @@ -228,25 +230,27 @@ lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 lbl_1_data_64C = .data:0x0000064C; // type:object size:0x20 lbl_1_data_66C = .data:0x0000066C; // type:object size:0x4 data:4byte lbl_1_data_670 = .data:0x00000670; // type:object size:0x4 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x28 data:2byte lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x8 data:2byte -lbl_1_bss_3E = .bss:0x0000003E; // type:object size:0x2 data:2byte +lbl_1_bss_3E = .bss:0x0000003E; // type:object size:0x4 data:2byte lbl_1_bss_42 = .bss:0x00000042; // type:object size:0x2 data:2byte lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x2 data:2byte lbl_1_bss_46 = .bss:0x00000046; // type:object size:0x2 data:2byte lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x2 data:2byte lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x2 data:2byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x2 data:2byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:2byte lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x2 data:2byte lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x2 data:2byte lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x2 data:2byte lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x2 data:2byte lbl_1_bss_5E = .bss:0x0000005E; // type:object size:0x2 data:2byte -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x8 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index e1bbff31..3b55f9a3 100644 --- a/configure.py +++ b/configure.py @@ -1570,7 +1570,7 @@ config.libs = [ objects={ Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/ztardll/main.c"), - Object(NonMatching, "REL/ztardll/font.c"), + Object(Matching, "REL/ztardll/font.c"), Object(NonMatching, "REL/ztardll/select.c"), }, ), diff --git a/include/REL/ztardll.h b/include/REL/ztardll.h new file mode 100644 index 00000000..e8c81299 --- /dev/null +++ b/include/REL/ztardll.h @@ -0,0 +1,30 @@ +#ifndef ZTARDLL_H +#define ZTARDLL_H + +#include "game/object.h" + +#include "dolphin/types.h" + +typedef struct ZtarDllUnkStruct { + char unk00[0x30]; + s16 unk_30; + s16 unk_32; + char unk34[6]; + s16 unk_3A[16]; + s16 unk_5A[16]; +} ZtarDllUnkStruct; /* size = 0x7A */ + +s32 fn_1_7754(ZtarDllUnkStruct *arg0, u8 *arg1); +void fn_1_7C00(void); +void fn_1_7D6C(Process *arg0); +s32 fn_1_97D0(s32 arg0, s32 arg1); +void fn_1_11020(void); +void fn_1_111E0(void); +void fn_1_11264(s32 arg0, s32 arg1, s32 arg2); +void fn_1_11338(u32 arg0, s32 arg1); +s32 fn_1_11390(s32 arg0); +void fn_1_114EC(u32 arg0, s32 arg1); +void fn_1_11708(u32 arg0); +void fn_1_1190C(void); + +#endif diff --git a/include/game/gamework.h b/include/game/gamework.h index 1f43963b..081dd16b 100644 --- a/include/game/gamework.h +++ b/include/game/gamework.h @@ -23,7 +23,7 @@ s32 GWBoardWinCountInc(s32 character, s32 board); s32 GWBoardWinCountGet(s32 character, s32 board); void GWBoardWinCountSet(s32 character, s32 board, s32 value); s32 GWMGAvailGet(s32 id); -s32 GWMGAvailSet(s32 id); +void GWMGAvailSet(s32 id); s32 GWMGCustomGet(s32 id); void GWMGCustomSet(s32 id); void GWMGCustomReset(s32 id); @@ -37,4 +37,4 @@ void GWTotalStarsSet(s16 value); void GWTotalStarsAdd(s16 amount); u16 GWTotalStarsGet(void); -#endif \ No newline at end of file +#endif diff --git a/src/REL/ztardll/font.c b/src/REL/ztardll/font.c new file mode 100644 index 00000000..4731b9f9 --- /dev/null +++ b/src/REL/ztardll/font.c @@ -0,0 +1,128 @@ +#include "game/sprite.h" + +#include "REL/ztardll.h" + +s32 lbl_1_data_B0[0xC6] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0x150000, 0x150001, 0x150002, 0x150003, 0x150004, 0x150005, 0x150006, 0x150007, 0x150008, 0x150009, 0x150000, 0x150000, + 0x150000, 0x15000A, 0x150000, 0x150000, 0x150000, 0x15000F, 0x150010, 0x150011, 0x150012, 0x150013, 0x150014, 0x150015, 0x150016, 0x150017, + 0x150018, 0x150019, 0x15001A, 0x15001B, 0x15001C, 0x15001D, 0x15001E, 0x15001F, 0x150020, 0x150021, 0x150022, 0x150023, 0x150024, 0x150025, + 0x150026, 0x150027, 0x150028, 0x15001D, 0x15000D, 0x15001D, 0x15001D, 0x15001D, 0x15001D, 0x150029, 0x15002A, 0x15002B, 0x15002C, 0x15002D, + 0x15002E, 0x15002F, 0x150030, 0x150031, 0x150032, 0x150033, 0x150034, 0x150035, 0x150036, 0x150037, 0x150038, 0x150039, 0x15003A, 0x15003B, + 0x15003C, 0x15003D, 0x15003E, 0x15003F, 0x150040, 0x150041, 0x150042, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, + 0x150000, 0x150000, 0x15000A, 0x15000E, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, + 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, + 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, + 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, + 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x15000B, 0x15000C, 0x150000, 0x150000 }; + +s32 fn_1_7754(ZtarDllUnkStruct *arg0, u8 *arg1) +{ + u8 *var_r31; + s16 var_r30; + s16 *var_r29; + s16 var_r28; + s32 *var_r27; + s16 var_r26; + s16 var_r25; + s32 var_r24; + s16 *var_r22; + AnimData **var_r21; + s16 var_r20; + s16 var_r19; + + var_r27 = lbl_1_data_B0; + for (var_r25 = 0; var_r25 < 0x10; var_r25++) { + if (arg0->unk_3A[var_r25] == -1) { + break; + } + } + if (var_r25 == 0x10) { + return -1; + } + var_r21 = HuMemDirectMalloc(HEAP_SYSTEM, 0x190); + var_r22 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); + var_r29 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); + for (var_r31 = arg1, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) { + if (var_r31[0] == 0x20 || var_r31[0] == 0x10) { + var_r30 += 0xE; + } + else if (var_r31[0] < 0x30) { + } + else if (var_r31[0] == 0x80) { + } + else if (var_r31[0] == 0x81) { + } + else { + if (var_r31[1] == 0x80) { + if ((var_r31[0] >= 0x96) && (var_r31[0] <= 0xA4)) { + var_r24 = var_r27[var_r31[0] + 0x6A]; + } + else if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { + var_r24 = var_r27[var_r31[0] + 0x65]; + } + else if ((var_r31[0] >= 0xD6) && (var_r31[0] <= 0xE4)) { + var_r24 = var_r27[var_r31[0] + 0x43]; + } + else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { + var_r24 = var_r27[var_r31[0] + 0x3E]; + } + } + else if (var_r31[1] == 0x81) { + if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { + var_r24 = var_r27[var_r31[0] + 0x6A]; + } + else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { + var_r24 = var_r27[var_r31[0] + 0x43]; + } + } + else { + var_r24 = var_r27[var_r31[0]]; + } + var_r21[var_r28] = HuSprAnimReadFile(var_r24); + var_r22[var_r28] = var_r30; + if ((var_r31[0] >= 0x61) && (var_r31[0] <= 0x7A)) { + var_r29[var_r28] = 2; + var_r30 += 0x12; + } + else if ((var_r31[0] == 0xC2) || (var_r31[0] == 0xC3)) { + var_r29[var_r28] = 0; + var_r30 += 0x12; + } + else if (var_r31[0] == 0x5C) { + var_r29[var_r28] = 0; + var_r30 += 8; + } + else if ((var_r31[0] >= 0x87) && (var_r31[0] <= 0x8F)) { + var_r29[var_r28] = 4; + var_r30 += 0x18; + } + else if ((var_r31[0] >= 0xC7) && (var_r31[0] <= 0xCF)) { + var_r29[var_r28] = 4; + var_r30 += 0x18; + } + else if ((var_r31[0] == 0x3D) || (var_r31[0] == 0x84)) { + var_r29[var_r28] = 0; + var_r30 += 0x14; + } + else { + var_r29[var_r28] = 0; + var_r30 += 0x1C; + } + var_r28++; + } + } + var_r20 = HuSprGrpCreate(var_r28); + arg0->unk_3A[var_r25] = var_r20; + arg0->unk_30 = var_r30; + var_r30 = (var_r30 / 2) - 0xE; + for (var_r26 = 0; var_r26 < var_r28; var_r26++) { + var_r19 = HuSprCreate(var_r21[var_r26], 0, 0); + HuSprGrpMemberSet(var_r20, var_r26, var_r19); + HuSprPosSet(var_r20, var_r26, var_r22[var_r26] - var_r30, var_r29[var_r26]); + } + arg0->unk_32 = var_r28; + HuMemDirectFree(var_r21); + HuMemDirectFree(var_r22); + HuMemDirectFree(var_r29); + return var_r25; +} diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c new file mode 100644 index 00000000..6cc5c2c0 --- /dev/null +++ b/src/REL/ztardll/main.c @@ -0,0 +1,1506 @@ +#include "ext_math.h" +#include "game/chrman.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "rel_sqrt_consts.h" + +#include "REL/ztardll.h" + +void fn_1_1774(void); +void fn_1_1CF0(void); +void fn_1_1DA0(void); +void fn_1_2350(void); +void fn_1_33B0(void); +void fn_1_40E4(void); +void fn_1_424(void); +void fn_1_4374(void); +void fn_1_4948(void); +void fn_1_51BC(s16 arg0); +s32 fn_1_524C(s32 arg0); +void fn_1_66F8(void); +void fn_1_7414(ModelData *model, Mtx matrix); + +omObjData *lbl_1_bss_6C; +Process *lbl_1_bss_68; +s32 lbl_1_bss_64; +s32 lbl_1_bss_60; +s16 lbl_1_bss_5E; +s16 lbl_1_bss_5A; +s16 lbl_1_bss_58; +s32 lbl_1_bss_54; +s16 lbl_1_bss_52; +s16 lbl_1_bss_50; +s16 lbl_1_bss_4C[2]; +s16 lbl_1_bss_4A; +s16 lbl_1_bss_48; +s16 lbl_1_bss_46; +s16 lbl_1_bss_44; +s16 lbl_1_bss_42; +s16 lbl_1_bss_3E[2]; +s16 lbl_1_bss_36[4]; +s16 lbl_1_bss_E[4][5]; +s16 lbl_1_bss_C; +Process *lbl_1_bss_8; +s16 lbl_1_bss_4; +s32 lbl_1_bss_0; + +void ObjectSetup(void) +{ + s32 var_r31; + s32 var_r30; + + OSReport("******* ZP ObjectSetup *********\n"); + lbl_1_bss_68 = omInitObjMan(0x32, 0x2000); + lbl_1_bss_60 = 0; + lbl_1_bss_58 = omovlevtno; + _ClearFlag(0x10000); + _ClearFlag(0x10008); + GWSystem.mg_type = -1; + GWSystem.player_curr = 0; + lbl_1_bss_5E = -1; + mgBoardHostEnableF = 1; + var_r30 = omMgIndexGet(0x29); + lbl_1_bss_54 = GWMGAvailGet(var_r30 + 0x191); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 15000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + CRot.x = 0.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + Center.x = 0.0f; + Center.y = 90.0f; + Center.z = 30.0f; + CZoom = 1220.0f; + var_r31 = Hu3DGLightCreate(0.0f, 100.0f, 1000.0f, 0.0f, -0.5f, -1.0f, 0xFF, 0xFF, 0xFF); + Hu3DGLightInfinitytSet(var_r31); + HuPrcChildCreate(fn_1_424, 0x64, 0x3000, 0, lbl_1_bss_68); + HuPrcChildCreate(fn_1_66F8, 0xC8, 0x1000, 0, lbl_1_bss_68); + lbl_1_bss_6C = omAddObjEx(lbl_1_bss_68, 0x7FDA, 0, 0, -1, omOutView); + Hu3DBGColorSet(0, 0, 0); + HuWinInit(1); + if (lbl_1_bss_58 == 1) { + HuAudVoiceInit(-1); + } + if (lbl_1_bss_58 != 0) { + HuAudSndGrpSetSet(4); + HuAudSeqPlay(0x2E); + } + GWSystem.mg_type = -1; + mgPracticeEnableF = 1; +} + +s16 lbl_1_data_22[4] = { 0x3A, 0xC8, 0x166, 0xC8 }; + +void fn_1_424(void) +{ + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + s16 var_r31; + s16 var_r30; + s16 var_r29; + s16 var_r28; + s16 var_r27; + s16 var_r26; + + var_r26 = 0; + var_r27 = 0; + fn_1_7D6C(lbl_1_bss_68); + HuPrcVSleep(); + HuDataDirClose(0x640000); + lbl_1_bss_5A = 0; + if (mgQuitExtraF != 0) { + mgQuitExtraF = 0; + var_r26 = 1; + lbl_1_bss_58 = 0; + } + else { + if (lbl_1_bss_58 == 1) { + lbl_1_bss_5A = 0; + goto block_92; + } + if (lbl_1_bss_58 == 2) { + lbl_1_bss_5A = 1; + goto block_93; + } + GWPlayerCfg[0].group = GWPlayerCfg[1].group = 0; + GWPlayerCfg[2].group = GWPlayerCfg[3].group = 1; + } +block_7: + fn_1_1774(); + if (lbl_1_bss_54 == 0) { + HuSprTPLvlSet(lbl_1_bss_4C[1], 0, 0.5f); + HuSprTPLvlSet(lbl_1_bss_4C[1], 2, 0.5f); + } + if (var_r26 == 0) { + WipeCreate(1, 0, 0x1E); + HuPrcSleep(0xA); + sp2C.x = 510.0f; + sp2C.y = 80.0f; + sp2C.z = 1500.0f; + Hu3D2Dto3D(&sp2C, 1, &sp8); + sp2C.x = 200.0f; + sp2C.y = 400.0f; + sp2C.z = 100.0f; + Hu3D2Dto3D(&sp2C, 1, &sp20); + PSVECSubtract(&sp8, &sp20, &sp14); + for (var_r31 = 0; var_r31 <= 0x1E; var_r31++) { + if (var_r31 <= 0x14) { + var_f31 = var_r31 / 20.0; + HuSprGrpPosSet(lbl_1_bss_52, 288.0f, 80.0 - (180.0 * (1.0 - sind((90.0f * var_f31))))); + HuSprGrpPosSet(lbl_1_bss_50, 288.0f, 80.0 - (180.0 * (1.0 - sind((90.0f * var_f31))))); + HuSprGrpPosSet(lbl_1_bss_4C[0], 138.0 - (300.0 * (1.0 - sind((90.0f * var_f31)))), 240.0f); + HuSprGrpPosSet(lbl_1_bss_4C[1], 438.0 + (300.0 * (1.0 - sind((90.0f * var_f31)))), 240.0f); + } + var_f31 = var_r31 / 30.0; + PSVECScale(&sp14, &sp2C, var_f31); + PSVECAdd(&sp2C, &sp20, &sp2C); + Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f); + Hu3DModelPosSetV(lbl_1_bss_42, &sp2C); + HuPrcVSleep(); + } + } + else { + sp2C.x = 510.0f; + sp2C.y = 80.0f; + sp2C.z = 1500.0f; + Hu3D2Dto3D(&sp2C, 1, &sp20); + Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f); + Hu3DModelPosSetV(lbl_1_bss_42, &sp20); + var_f31 = var_r31 / 20.0; + HuSprGrpPosSet(lbl_1_bss_52, 288.0f, 80.0f); + HuSprGrpPosSet(lbl_1_bss_50, 288.0f, 80.0f); + HuSprGrpPosSet(lbl_1_bss_4C[0], 138.0f, 240.0f); + HuSprGrpPosSet(lbl_1_bss_4C[1], 438.0f, 240.0f); + WipeCreate(1, 0, 0x14); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + } +loop_19: + fn_1_11020(); + fn_1_11264(0x330024, 0, 0); + if (lbl_1_bss_5A == 0) { + fn_1_11264(0x330025, 0, 1); + } + else { + fn_1_11264(0x33002A, 0, 1); + } + fn_1_11708(0x33008D); + for (var_r31 = 0; var_r31 <= 0x0A; var_r31++) { + var_f31 = var_r31 / 10.0; + + HuSprTPLvlSet(lbl_1_bss_4A, 0, var_f31); + HuSprGrpPosSet(lbl_1_bss_4A, lbl_1_data_22[lbl_1_bss_5A * 2], lbl_1_data_22[(lbl_1_bss_5A * 2) + 1]); + HuPrcVSleep(); + } + while (TRUE) { + HuPrcVSleep(); + if ((HuPadStkX[0] / 10) != 0) { + var_r29 = lbl_1_bss_5A; + if (HuPadStkX[0] < 0 && lbl_1_bss_5A > 0) { + lbl_1_bss_5A--; + } + if (HuPadStkX[0] > 0 && lbl_1_bss_5A < 1) { + lbl_1_bss_5A++; + } + if (lbl_1_bss_5A != var_r29) { + HuAudFXPlay(0); + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + var_f31 = sind((90.0 * (var_r31 / 10.0))); + var_f30 = lbl_1_data_22[var_r29 * 2] + (var_f31 * (lbl_1_data_22[lbl_1_bss_5A * 2] - lbl_1_data_22[var_r29 * 2])); + HuSprGrpPosSet(lbl_1_bss_4A, var_f30, lbl_1_data_22[(lbl_1_bss_5A * 2) + 1]); + HuPrcVSleep(); + } + if (lbl_1_bss_5A == 0) { + fn_1_11264(0x330025, 0, 1); + } + else { + fn_1_11264(0x33002A, 0, 1); + } + } + } + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + fn_1_111E0(); + fn_1_1190C(); + lbl_1_bss_60 = 1; + while (TRUE) { + HuPrcVSleep(); + } + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + if (lbl_1_bss_5A != 1 || lbl_1_bss_54 != 0) { + break; + } + HuAudFXPlay(4); + } + } + HuAudFXPlay(2); + fn_1_111E0(); + fn_1_1190C(); + lbl_1_bss_5E = -1; + var_r29 = lbl_1_bss_5A ^ 1; + for (var_r31 = 0; var_r31 <= 0x14; var_r31++) { + if (var_r31 <= 0xA) { + var_f31 = var_r31 / 10.0; + HuSprTPLvlSet(lbl_1_bss_4A, 0, 1.0 - var_f31); + } + var_f31 = 1.0 - (var_r31 / 20.0); + + HuSprGrpScaleSet(lbl_1_bss_4C[var_r29], var_f31, var_f31); + if (lbl_1_bss_5A == 0) { + var_f31 = -var_f31; + } + HuSprGrpPosSet(lbl_1_bss_4C[lbl_1_bss_5A], 288.0f + (150.0f * var_f31), 240.0f); + HuPrcVSleep(); + } + for (var_r27 = 0;;) { + if (lbl_1_bss_5A == 0) { + var_r30 = fn_1_97D0(2, var_r27); + } + else { + var_r30 = fn_1_97D0(3, var_r27); + if (var_r30 != 0) { + mgTypeCurr = 2; + var_r30 = fn_1_524C(1); + if (var_r30 == 0) { + var_r27 = 1; + continue; + } + } + } + if (var_r30 == 0) { + for (var_r31 = 0; var_r31 <= 0x14; var_r31++) { + var_f31 = var_r31 / 20.0; + HuSprGrpScaleSet(lbl_1_bss_4C[var_r29], var_f31, var_f31); + if (lbl_1_bss_5A != 0) { + var_f31 = -var_f31; + } + HuSprGrpPosSet(lbl_1_bss_4C[lbl_1_bss_5A], 288.0f - (150.0f * var_f31), 240.0f); + var_f31 = var_r31 / 20.0; + if (lbl_1_bss_5A == 0) { + var_r28 = -1; + } + else { + var_r28 = 1; + } + HuSprGrpPosSet(lbl_1_bss_46, 288.0 + (var_r28 * (400.0 * (1.0 - cosd((90.0f * var_f31))))), 340.0f); + HuPrcVSleep(); + } + goto loop_19; + } + var_r27 = 1; + fn_1_1DA0(); + for (var_r31 = 0; var_r31 <= 0x14; var_r31++) { + var_f31 = var_r31 / 20.0; + if (lbl_1_bss_5A == 0) { + var_r28 = -1; + } + else { + var_r28 = 1; + } + HuSprGrpPosSet(lbl_1_bss_46, 288.0 + (var_r28 * (400.0 * (1.0 - sind((90.0f * var_f31))))), 340.0f); + HuPrcVSleep(); + } + if (lbl_1_bss_5A == 0) { + fn_1_40E4(); + } + if (lbl_1_bss_4 == 0) { + lbl_1_bss_4 = 1; + HuPrcChildCreate(fn_1_7C00, 0x64, 0x2000, 0, lbl_1_bss_68); + } + fn_1_11020(); + fn_1_11264(0x33002C, 0, 0); + var_r30 = fn_1_11390(0); + if (var_r30 != -1) { + if (var_r30 != 1) { + break; + } + } + fn_1_111E0(); + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + var_f31 = cosd((90.0 * (var_r31 / 10.0))); + HuSprGrpScaleSet(lbl_1_bss_46, 1.0f, var_f31); + HuPrcVSleep(); + } + HuSprGrpKill(lbl_1_bss_46); + } + fn_1_111E0(); + fn_1_1190C(); + WipeCreate(2, 0, 0x14); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + mgBattleStarMax = 0; + HuSprGrpKill(lbl_1_bss_48); + HuSprGrpKill(lbl_1_bss_52); + HuSprGrpKill(lbl_1_bss_50); + HuSprGrpKill(lbl_1_bss_4C[0]); + HuSprGrpKill(lbl_1_bss_4C[1]); + HuSprGrpKill(lbl_1_bss_4A); + HuSprGrpKill(lbl_1_bss_46); + Hu3DModelKill(lbl_1_bss_42); + HuPrcKill(lbl_1_bss_8); + while (lbl_1_bss_4 != 0) { + HuPrcVSleep(); + } + if (lbl_1_bss_5A == 0) { + block_92: + fn_1_2350(); + } + else { + block_93: + fn_1_4374(); + } + var_r26 = 1; + goto block_7; +} + +void fn_1_1774(void) +{ + ZtarDllUnkStruct sp8; + s16 var_r31; + s16 var_r30; + u8 *var_r29; + s16 var_r28; + AnimData *var_r27; + u8 *var_r26; + AnimData *var_r25; + AnimData *var_r24; + AnimData *var_r23; + + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 3)); + lbl_1_bss_48 = HuSprGrpCreate(1); + var_r31 = HuSprCreate(var_r27, 0xC8, 0); + HuSprGrpMemberSet(lbl_1_bss_48, 0, var_r31); + HuSprGrpDrawNoSet(lbl_1_bss_48, 0x7F); + HuSprGrpPosSet(lbl_1_bss_48, 288.0f, 240.0f); + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + sp8.unk_5A[var_r30] = sp8.unk_3A[var_r30] = -1; + } + var_r29 = MessData_MesPtrGet(messDataPtr, 0x170021); + for (var_r26 = var_r29; *var_r29 != 0; var_r29++) { + if (*var_r29 == 0xA) { + *var_r29 = 0x10; + } + } + lbl_1_bss_52 = sp8.unk_3A[fn_1_7754(&sp8, var_r26)]; + HuSprGrpPosSet(lbl_1_bss_52, 288.0f, -300.0f); + HuSprGrpDrawNoSet(lbl_1_bss_52, 0x7F); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 4)); + lbl_1_bss_50 = HuSprGrpCreate(1); + var_r31 = HuSprCreate(var_r27, 0x64, 0); + HuSprGrpMemberSet(lbl_1_bss_50, 0, var_r31); + HuSprGrpPosSet(lbl_1_bss_50, 288.0f, -300.0f); + HuSprGrpDrawNoSet(lbl_1_bss_50, 0x7F); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 5)); + var_r25 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 14)); + var_r24 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 64)); + var_r23 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 15)); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r28 = HuSprGrpCreate(4); + lbl_1_bss_4C[var_r30] = var_r28; + var_r31 = HuSprCreate(var_r27, 0x64, var_r30); + HuSprGrpMemberSet(var_r28, 0, var_r31); + var_r31 = HuSprCreate(var_r25, 0x6E, 0); + HuSprGrpMemberSet(var_r28, 1, var_r31); + var_r31 = HuSprCreate(var_r24, 0x78, 0); + HuSprGrpMemberSet(var_r28, 2, var_r31); + HuSprScaleSet(var_r28, 2, 0.5f, 0.5f); + var_r31 = HuSprCreate(var_r23, 0x82, 0); + HuSprGrpMemberSet(var_r28, 3, var_r31); + HuSprGrpPosSet(var_r28, 288.0f, -300.0f); + HuSprGrpDrawNoSet(var_r28, 0x7F); + } + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 6)); + lbl_1_bss_4A = HuSprGrpCreate(1); + var_r31 = HuSprCreate(var_r27, 0x32, 0); + HuSprGrpMemberSet(lbl_1_bss_4A, 0, var_r31); + HuSprGrpPosSet(lbl_1_bss_4A, 288.0f, -300.0f); + lbl_1_bss_42 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_ZTAR, 0)); + lbl_1_bss_3E[0] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 1)); + lbl_1_bss_3E[1] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 2)); + Hu3DMotionSet(lbl_1_bss_42, lbl_1_bss_3E[0]); + Hu3DModelAttrSet(lbl_1_bss_42, 0x40000001); + Hu3DModelPosSet(lbl_1_bss_42, 0.0f, 1000.0f, 0.0f); + lbl_1_bss_8 = HuPrcChildCreate(fn_1_1CF0, 0x64, 0x2000, 0, lbl_1_bss_68); +} + +void fn_1_1CF0(void) +{ + float var_f31 = 0.0f; + ModelData *var_r31 = &Hu3DData[lbl_1_bss_42]; + + while (TRUE) { + var_r31->pos.y += sind(var_f31); + var_f31 += 3.0f; + if (var_f31 > 360.0f) { + var_f31 -= 360.0f; + } + HuPrcVSleep(); + } +} + +void fn_1_1DA0(void) +{ + s16 spC[4]; + s16 sp8[2]; + s16 var_r31; + AnimData *var_r30; + s16 var_r29; + s16 var_r28; + s16 var_r27; + + sp8[0] = 0; + sp8[1] = 2; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; + } + if (lbl_1_bss_5A == 0) { + var_r28 = HuSprGrpCreate(5); + lbl_1_bss_46 = var_r28; + var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 17)); + var_r29 = HuSprCreate(var_r30, 0x78, 0); + HuSprGrpMemberSet(var_r28, 0, var_r29); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30 = HuSprAnimReadFile(GWPlayerCfg[spC[var_r31]].character + DATA_MAKE_NUM(DATADIR_ZTAR, 18)); + var_r29 = HuSprCreate(var_r30, 0x6E, 0); + HuSprGrpMemberSet(var_r28, (var_r31 * 2) + 1, var_r29); + HuSprPosSet(var_r28, (var_r31 * 2) + 1, (var_r31 * 0x30) - 0x18, -4.0f); + if (GWPlayerCfg[spC[var_r31]].iscom == 0) { + var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 32)); + var_r29 = HuSprCreate(var_r30, 0x64, spC[var_r31]); + } + else { + var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 33)); + var_r29 = HuSprCreate(var_r30, 0x64, GWPlayerCfg[spC[var_r31]].diff); + } + HuSprGrpMemberSet(var_r28, (var_r31 * 2) + 2, var_r29); + HuSprPosSet(var_r28, (var_r31 * 2) + 2, (var_r31 * 0x30) - 0x18, 20.0f); + } + } + else { + var_r28 = HuSprGrpCreate(0xA); + lbl_1_bss_46 = var_r28; + var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 16)); + var_r29 = HuSprCreate(var_r30, 0x78, 0); + HuSprGrpMemberSet(var_r28, 0, var_r29); + var_r27 = -0x4B; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprAnimReadFile(GWPlayerCfg[spC[var_r31]].character + DATA_MAKE_NUM(DATADIR_ZTAR, 18)); + var_r29 = HuSprCreate(var_r30, 0x6E, 0); + HuSprGrpMemberSet(var_r28, (var_r31 * 2) + 1, var_r29); + HuSprPosSet(var_r28, (var_r31 * 2) + 1, var_r27, 0.0f); + if (GWPlayerCfg[spC[var_r31]].iscom == 0) { + var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 32)); + var_r29 = HuSprCreate(var_r30, 0x64, spC[var_r31]); + } + else { + var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 33)); + var_r29 = HuSprCreate(var_r30, 0x64, GWPlayerCfg[spC[var_r31]].diff); + } + HuSprGrpMemberSet(var_r28, (var_r31 * 2) + 2, var_r29); + HuSprPosSet(var_r28, (var_r31 * 2) + 2, var_r27, 22.0f); + var_r27 += 0x2A; + if (var_r31 == 1) { + var_r27 += 0x18; + } + } + var_r30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 10)); + var_r29 = HuSprCreate(var_r30, 0x5A, 0); + HuSprGrpMemberSet(var_r28, 9, var_r29); + } + HuSprGrpPosSet(var_r28, 0.0f, -100.0f); +} + +void fn_1_2350(void) +{ + s16 spC[4]; + s16 sp8[2]; + float var_f31; + s16 var_r31; + + sp8[0] = 0; + sp8[1] = 2; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; + } + if (lbl_1_bss_58 != 0) { + if (GWPlayerCoinWinGet(spC[0]) > 0) { + mgBattleStarMax++; + } + } + fn_1_33B0(); + Hu3DModelPosSet(lbl_1_bss_36[2], 500.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_36[3], 500.0f, 0.0f, 0.0f); + HuSprScaleSet(lbl_1_bss_50, 2, 0.0f, 0.0f); + if (lbl_1_bss_58 != 0) { + if (GWPlayerCoinWinGet(spC[0]) == 0) { + mgBattleStarMax++; + } + HuSprBankSet(lbl_1_bss_50, 1, mgBattleStarMax); + HuSprScaleSet(lbl_1_bss_50, 1, 1.0f, 1.0f); + WipeCreate(1, 0, 0x14); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + HuPrcSleep(0x1E); + if (GWPlayerCoinWinGet(spC[0]) > 0) { + HuSprAttrReset(lbl_1_bss_44, 6, 4); + HuSprPosSet(lbl_1_bss_44, 6, ((mgBattleStarMax - 1) << 5) + 0x46, 340.0f); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + var_f31 = var_r31 / 60.0; + HuSprTPLvlSet(lbl_1_bss_44, 6, var_f31); + var_f31 = 1.0 + (5.0 * cosd((90.0f * var_f31))); + HuSprScaleSet(lbl_1_bss_44, 6, var_f31, var_f31); + if (var_r31 == 0x14) { + HuAudFXPlay(0x9A); + if (mgBattleStarMax < 6) { + Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][2], 0.0f, 10.0f, 0); + Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][2], 0.0f, 10.0f, 0); + } + else { + Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][3], 0.0f, 10.0f, 0); + Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][3], 0.0f, 10.0f, 0); + } + } + HuPrcVSleep(); + } + HuAudFXPlay(8); + if (mgBattleStarMax >= 6) { + HuPrcSleep(0x3C); + var_r31 = omMgIndexGet(0x29); + lbl_1_bss_54 = 1; + fn_1_11020(); + fn_1_11338(GWPlayerCfg[spC[0]].character, 0); + fn_1_11338(GWPlayerCfg[spC[1]].character, 1); + fn_1_11264(0x3300A0, 0, 0); + if (GWMGAvailGet(var_r31 + 0x191) == 0) { + GWMGAvailSet(var_r31 + 0x191); + GWGameStat.present[0x37] = 1; + fn_1_11264(0x330029, 0, 0); + } + fn_1_111E0(); + WipeCreate(2, 0, 0x1E); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + } + else { + Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][0], 0.0f, 10.0f, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][0], 0.0f, 10.0f, 0x40000001); + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + var_f31 = 1.0 - (var_r31 / 10.0); + HuSprScaleSet(lbl_1_bss_50, 1, var_f31, var_f31); + HuPrcVSleep(); + } + HuPrcSleep(0x3C); + goto block_39; + } + } + else { + Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][4], 0.0f, 10.0f, 0); + Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][4], 0.0f, 10.0f, 0); + HuPrcSleep(0xB4); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, 0x1E); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + } + } + else { + WipeCreate(1, 0, 0x14); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + HuPrcSleep(0x1E); + block_39: + Hu3DMotionSet(lbl_1_bss_36[2], lbl_1_bss_E[2][1]); + Hu3DMotionSet(lbl_1_bss_36[3], lbl_1_bss_E[3][1]); + Hu3DModelRotSet(lbl_1_bss_36[2], 0.0f, -90.0f, 0.0f); + Hu3DModelRotSet(lbl_1_bss_36[3], 0.0f, -90.0f, 0.0f); + HuSprBankSet(lbl_1_bss_50, 1, mgBattleStarMax + 1); + for (var_r31 = 0; var_r31 <= 0x1E; var_r31++) { + var_f31 = 1.0 - sind((90.0 * (var_r31 / 30.0))); + Hu3DModelPosSet(lbl_1_bss_36[2], 125.0f + (400.0f * var_f31), 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_36[3], 275.0f + (400.0f * var_f31), 0.0f, 0.0f); + if (var_r31 == 0x19) { + Hu3DMotionShiftSet(lbl_1_bss_36[2], lbl_1_bss_E[2][0], 0.0f, 10.0f, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_36[3], lbl_1_bss_E[3][0], 0.0f, 10.0f, 0x40000001); + } + if ((GWPlayerCfg[2].character < 8) && ((var_r31 % 5) == 0)) { + HuAudFXPlay(GWPlayerCfg[2].character + 0xD5); + } + if ((GWPlayerCfg[3].character < 8) && (((var_r31 + 3) % 5) == 0)) { + HuAudFXPlay(GWPlayerCfg[3].character + 0xD5); + } + if (var_r31 > 0x14) { + var_f31 = 1.0 - ((var_r31 - 0x14) / 10.0); + Hu3DModelRotSet(lbl_1_bss_36[2], 0.0f, 90.0f * -var_f31, 0.0f); + Hu3DModelRotSet(lbl_1_bss_36[3], 0.0f, 90.0f * -var_f31, 0.0f); + } + if (var_r31 <= 0x14) { + var_f31 = 1.2 * sind((90.0 * (var_r31 / 20.0))); + HuSprScaleSet(lbl_1_bss_50, 1, var_f31, var_f31); + } + else if (var_r31 > 0x14) { + var_f31 = 1.0 + (0.2 * cosd((90.0 * ((var_r31 - 0x14) / 10.0)))); + HuSprScaleSet(lbl_1_bss_50, 1, var_f31, var_f31); + } + HuPrcVSleep(); + } + HuAudFXPlay(0x355); + for (var_r31 = 0; var_r31 <= 0x14; var_r31++) { + var_f31 = 1.0 + (5.0 * cosd((90.0 * (var_r31 / 20.0)))); + HuSprScaleSet(lbl_1_bss_50, 2, var_f31, var_f31); + HuSprTPLvlSet(lbl_1_bss_50, 2, var_r31 / 20.0); + HuPrcVSleep(); + } + fn_1_114EC(0x33004F, 1); + while (TRUE) { + if ((*HuPadBtnDown & 0x100) != 0) { + HuAudFXPlay(2); + if (mgBattleStarMax >= 5) { + GWSystem.mg_type = 0; + } + fn_1_51BC(1); + } + if ((*HuPadBtnDown & 0x200) != 0) { + break; + } + HuPrcVSleep(); + } + HuAudFXPlay(3); + fn_1_1190C(); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, 0x14); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + } + HuSprGrpKill(lbl_1_bss_48); + HuSprGrpKill(lbl_1_bss_50); + HuSprGrpKill(lbl_1_bss_44); + Hu3DModelKill(lbl_1_bss_42); + HuPrcKill(lbl_1_bss_8); + Hu3DModelKill(lbl_1_bss_C); + CharModelKill(-1); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[spC[var_r31]].character >= 8) { + Hu3DModelKill(lbl_1_bss_36[var_r31]); + Hu3DMotionKill(lbl_1_bss_E[var_r31][0]); + Hu3DMotionKill(lbl_1_bss_E[var_r31][1]); + } + } + lbl_1_bss_58 = 0; + lbl_1_bss_5A = 0; +} + +s32 lbl_1_data_2C[6] = { + DATA_MAKE_NUM(DATADIR_ZTAR, 59), + DATA_MAKE_NUM(DATADIR_ZTAR, 34), + DATA_MAKE_NUM(DATADIR_ZTAR, 39), + DATA_MAKE_NUM(DATADIR_ZTAR, 44), + DATA_MAKE_NUM(DATADIR_ZTAR, 49), + DATA_MAKE_NUM(DATADIR_ZTAR, 54), +}; + +u8 lbl_1_data_44[6] = { 0, 1, 1, 2, 2, 3 }; + +void fn_1_33B0(void) +{ + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + s16 spC[4]; + s16 sp8[2]; + s16 var_r31; + s16 var_r30; + AnimData *var_r29; + s16 var_r28; + s16 var_r27; + s16 var_r26; + s16 var_r25; + s16 var_r24; + AnimData *var_r23; + + sp8[0] = 0; + sp8[1] = 2; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; + } + var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 3)); + lbl_1_bss_48 = HuSprGrpCreate(1); + var_r30 = HuSprCreate(var_r29, 0xC8, 0); + HuSprGrpMemberSet(lbl_1_bss_48, 0, var_r30); + HuSprGrpDrawNoSet(lbl_1_bss_48, 0x7F); + HuSprGrpPosSet(lbl_1_bss_48, 288.0f, 240.0f); + lbl_1_bss_50 = HuSprGrpCreate(3); + var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 12)); + var_r30 = HuSprCreate(var_r29, 0x78, 0); + HuSprGrpMemberSet(lbl_1_bss_50, 0, var_r30); + HuSprPosSet(lbl_1_bss_50, 0, 288.0f, 80.0f); + var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 11)); + if ((mgBattleStarMax + 1) >= 7) { + var_r30 = HuSprCreate(var_r29, 0x64, 6); + } + else { + var_r30 = HuSprCreate(var_r29, 0x64, mgBattleStarMax + 1); + } + HuSprGrpMemberSet(lbl_1_bss_50, 1, var_r30); + HuSprPosSet(lbl_1_bss_50, 1, 342.0f, 80.0f); + HuSprScaleSet(lbl_1_bss_50, 1, 0.0f, 0.0f); + HuSprGrpDrawNoSet(lbl_1_bss_50, 0x7F); + var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 9)); + var_r30 = HuSprCreate(var_r29, 0x64, 0); + HuSprGrpMemberSet(lbl_1_bss_50, 2, var_r30); + HuSprPosSet(lbl_1_bss_50, 2, 288.0f, 240.0f); + HuSprDrawNoSet(lbl_1_bss_50, 2, 0); + HuSprGrpPosSet(lbl_1_bss_50, 0.0f, 0.0f); + var_r27 = HuSprGrpCreate(7); + lbl_1_bss_44 = var_r27; + var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 8)); + var_r23 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 7)); + var_r24 = mgBattleStarMax; + if (GWPlayerCoinWinGet(spC[0]) > 0) { + var_r24--; + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + if (var_r31 >= var_r24) { + var_r30 = HuSprCreate(var_r23, 0x64, 0); + } + else { + var_r30 = HuSprCreate(var_r29, 0x64, 0); + } + HuSprGrpMemberSet(var_r27, var_r31, var_r30); + HuSprPosSet(var_r27, var_r31, (var_r31 << 5) + 0x46, 340.0f); + } + var_r30 = HuSprCreate(var_r29, 0x5A, 0); + HuSprGrpMemberSet(var_r27, 6, var_r30); + HuSprAttrSet(var_r27, 6, 4); + HuSprGrpPosSet(var_r27, 0.0f, 0.0f); + sp38.x = 510.0f; + sp38.y = 80.0f; + sp38.z = 1500.0f; + Hu3D2Dto3D(&sp38, 1, &sp2C); + lbl_1_bss_42 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_ZTAR, 0)); + lbl_1_bss_3E[0] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 1)); + lbl_1_bss_3E[1] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 2)); + Hu3DModelAttrSet(lbl_1_bss_42, 0x40000001); + Hu3DModelPosSetV(lbl_1_bss_42, &sp2C); + Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f); + Hu3DMotionSet(lbl_1_bss_42, lbl_1_bss_3E[0]); + lbl_1_bss_8 = HuPrcChildCreate(fn_1_1CF0, 0x64, 0x2000, 0, lbl_1_bss_68); + GWPlayerCfg[spC[2]].character = mgIndexList[mgBattleStarMax * 2]; + GWPlayerCfg[spC[3]].character = mgIndexList[mgBattleStarMax * 2 + 1]; + GWPlayerCfg[spC[0]].group = GWPlayerCfg[spC[1]].group = 0; + GWPlayerCfg[spC[2]].group = GWPlayerCfg[spC[3]].group = 1; + GWPlayerCfg[spC[2]].iscom = GWPlayerCfg[spC[3]].iscom = 1; + GWPlayerCfg[spC[2]].diff = GWPlayerCfg[spC[3]].diff = lbl_1_data_44[mgBattleStarMax]; + var_r26 = -0x113; + if (lbl_1_bss_58 != 0) { + CharKill(-1); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[spC[var_r31]].character < 8) { + CharARAMOpen(GWPlayerCfg[spC[var_r31]].character); + } + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r28 = GWPlayerCfg[spC[var_r31]].character; + if (var_r28 != 0xFF) { + if (var_r28 < 8) { + lbl_1_bss_36[var_r31] = CharModelCreate(var_r28, 2); + lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r28, 0x5F0000); + lbl_1_bss_E[var_r31][1] = CharModelMotionCreate(var_r28, 0x5F0003); + if (var_r31 < 2) { + lbl_1_bss_E[var_r31][2] = CharModelMotionCreate(var_r28, 0x5F0048); + lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r28, 0x5F0017); + lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r28, 0x5F0018); + } + CharModelVoiceEnableSet(GWPlayerCfg[spC[var_r31]].character, lbl_1_bss_E[var_r31][1], 0); + Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); + } + else { + var_r25 = var_r28 - 8; + lbl_1_bss_36[var_r31] = Hu3DModelCreateFile(lbl_1_data_2C[var_r25]); + lbl_1_bss_E[var_r31][0] = Hu3DJointMotionFile(lbl_1_bss_36[var_r31], lbl_1_data_2C[var_r25] + 1); + lbl_1_bss_E[var_r31][1] = Hu3DJointMotionFile(lbl_1_bss_36[var_r31], lbl_1_data_2C[var_r25] + 2); + Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); + } + Hu3DMotionSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][0]); + Hu3DModelAttrSet(lbl_1_bss_36[var_r31], 0x40000001); + Hu3DModelPosSet(lbl_1_bss_36[var_r31], var_r26, 0.0f, 0.0f); + Hu3DModelShadowSet(lbl_1_bss_36[var_r31]); + var_r26 += 0x96; + if (var_r31 == 1) { + var_r26 += 0x64; + } + } + } + CharModelDataClose(-1); + Hu3DShadowCreate(20.0f, 500.0f, 8000.0f); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowSizeSet(0xC0); + sp20.x = sp20.y = sp20.z = 0.0f; + sp38.x = sp38.z = 100.0f; + sp38.y = 2000.0f; + sp14.x = sp14.y = 0.0f; + sp14.z = 1.0f; + Hu3DShadowPosSet(&sp38, &sp14, &sp20); + lbl_1_bss_C = Hu3DHookFuncCreate(fn_1_7414); + Hu3DModelLayerSet(lbl_1_bss_C, 1); +} + +void fn_1_40E4(void) +{ + s16 sp14[4]; + s16 spC[4]; + s16 sp8[2]; + s16 var_r31; + s16 var_r30; + s16 var_r29; + s16 var_r28; + + sp8[0] = 0; + sp8[1] = 2; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; + } + var_r30 = 0; + for (var_r31 = var_r30; var_r31 < 8; var_r31++) { + if ((var_r31 != GWPlayerCfg[spC[0]].character) && (var_r31 != GWPlayerCfg[spC[1]].character)) { + sp14[var_r30++] = var_r31; + } + } + for (var_r31 = 0; var_r31 < 0x1E; var_r31++) { + var_r30 = frandmod(6); + var_r29 = frandmod(6); + var_r28 = sp14[var_r30]; + sp14[var_r30] = sp14[var_r29]; + sp14[var_r29] = var_r28; + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + mgIndexList[var_r31] = sp14[var_r31]; + } + mgIndexList[6] = 0xC; + mgIndexList[7] = 9; + mgIndexList[8] = 0xB; + mgIndexList[9] = 0xA; + mgIndexList[0xA] = 8; + mgIndexList[0xB] = 0xD; + mgIndexList[0xC] = mgIndexList[0xD] = 0xFF; + GWPlayerCfg[spC[2]].character = mgIndexList[0]; + GWPlayerCfg[spC[3]].character = mgIndexList[1]; +} + +s16 lbl_1_data_4A[6] = { 0x3A, 0x36, 0x40, 0x4B, 0x46, 0x3E }; +s16 lbl_1_data_56[7] = { 0x3B, 0x38, 0x42, 0x4D, 0x48, 0x3F, 0 }; + +void fn_1_4374(void) +{ + s16 spC[4]; + s16 sp8[2]; + float var_f31; + s16 var_r31; + s16 var_r30; + + sp8[0] = 0; + sp8[1] = 2; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; + } + fn_1_4948(); + WipeCreate(1, 0, 0x14); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + HuPrcSleep(0x1E); + if (lbl_1_bss_58 != 0) { + var_r30 = 0; + for (var_r31 = var_r30; var_r31 < 4; var_r31++) { + if (GWPlayerCoinWinGet(spC[var_r31]) > 0) { + if (var_r30 == 0) { + HuAudFXPlay(0x9A); + } + if (GWPlayerCfg[spC[var_r31]].character >= 8) { + HuAudFXPlay(lbl_1_data_4A[GWPlayerCfg[spC[var_r31]].character - 8]); + } + Hu3DMotionShiftSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][3], 0.0f, 10.0f, 0); + var_r30++; + } + else { + if (GWPlayerCfg[spC[var_r31]].character >= 8) { + HuAudFXPlay(lbl_1_data_56[GWPlayerCfg[spC[var_r31]].character - 8]); + } + Hu3DMotionShiftSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][4], 0.0f, 10.0f, 0); + } + } + HuSprAttrReset(lbl_1_bss_50, 1, 4); + HuPrcSleep(0x78); + } + else { + HuAudFXPlay(0x355); + HuSprAttrReset(lbl_1_bss_50, 1, 4); + for (var_r31 = 0; var_r31 <= 0x14; var_r31++) { + var_f31 = 1.0 + (5.0 * cosd((90.0 * (var_r31 / 20.0)))); + + HuSprScaleSet(lbl_1_bss_50, 1, var_f31, var_f31); + HuSprTPLvlSet(lbl_1_bss_50, 1, var_r31 / 20.0); + HuPrcVSleep(); + } + } + fn_1_114EC(0x33004F, 1); + while (TRUE) { + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2); + fn_1_51BC(2); + } + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + break; + } + HuPrcVSleep(); + } + HuAudFXPlay(3); + fn_1_1190C(); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, 0x14); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + HuSprGrpKill(lbl_1_bss_48); + HuSprGrpKill(lbl_1_bss_50); + Hu3DModelKill(lbl_1_bss_42); + HuPrcKill(lbl_1_bss_8); + Hu3DModelKill(lbl_1_bss_C); + CharModelKill(-1); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[spC[var_r31]].character >= 8) { + Hu3DModelKill(lbl_1_bss_36[var_r31]); + Hu3DMotionKill(lbl_1_bss_E[var_r31][0]); + Hu3DMotionKill(lbl_1_bss_E[var_r31][1]); + } + } + lbl_1_bss_58 = 0; + lbl_1_bss_5A = 0; +} + +void fn_1_4948(void) +{ + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + s16 spC[4]; + s16 sp8[2]; + s16 var_r31; + s16 var_r30; + s16 var_r29; + s16 var_r28; + AnimData *var_r27; + s16 var_r26; + s16 var_r25; + + sp8[0] = 0; + sp8[1] = 2; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; + } + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 3)); + lbl_1_bss_48 = HuSprGrpCreate(1); + var_r29 = HuSprCreate(var_r27, 0xC8, 0); + HuSprGrpMemberSet(lbl_1_bss_48, 0, var_r29); + HuSprGrpDrawNoSet(lbl_1_bss_48, 0x7F); + HuSprGrpPosSet(lbl_1_bss_48, 288.0f, 240.0f); + lbl_1_bss_50 = HuSprGrpCreate(2); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 13)); + var_r29 = HuSprCreate(var_r27, 0x78, 0); + HuSprGrpMemberSet(lbl_1_bss_50, 0, var_r29); + HuSprPosSet(lbl_1_bss_50, 0, 288.0f, 80.0f); + HuSprGrpPosSet(lbl_1_bss_50, 0.0f, 0.0f); + HuSprGrpDrawNoSet(lbl_1_bss_50, 0x7F); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 9)); + var_r29 = HuSprCreate(var_r27, 0x64, 0); + HuSprGrpMemberSet(lbl_1_bss_50, 1, var_r29); + HuSprPosSet(lbl_1_bss_50, 1, 288.0f, 240.0f); + HuSprAttrSet(lbl_1_bss_50, 1, 4); + HuSprDrawNoSet(lbl_1_bss_50, 1, 0); + sp38.x = 510.0f; + sp38.y = 80.0f; + sp38.z = 1500.0f; + Hu3D2Dto3D(&sp38, 1, &sp2C); + lbl_1_bss_42 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_ZTAR, 0)); + lbl_1_bss_3E[0] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 1)); + lbl_1_bss_3E[1] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 2)); + Hu3DModelAttrSet(lbl_1_bss_42, 0x40000001); + Hu3DModelPosSetV(lbl_1_bss_42, &sp2C); + Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f); + Hu3DMotionSet(lbl_1_bss_42, lbl_1_bss_3E[0]); + lbl_1_bss_8 = HuPrcChildCreate(fn_1_1CF0, 0x64, 0x2000, 0, lbl_1_bss_68); + var_r28 = -0x113; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = GWPlayerCfg[spC[var_r31]].character; + if (var_r30 < 8) { + lbl_1_bss_36[var_r31] = CharModelCreate(var_r30, 2); + lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r30, 0x5F0000); + lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r30, 0x5F0017); + lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r30, 0x5F0018); + Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); + } + else { + var_r26 = var_r30 - 8; + var_r25 = Hu3DModelCreateFile(lbl_1_data_2C[var_r26]); + lbl_1_bss_36[var_r31] = var_r25; + lbl_1_bss_E[var_r31][0] = Hu3DJointMotionFile(var_r25, lbl_1_data_2C[var_r26] + 1); + lbl_1_bss_E[var_r31][3] = Hu3DJointMotionFile(var_r25, lbl_1_data_2C[var_r26] + 3); + lbl_1_bss_E[var_r31][4] = Hu3DJointMotionFile(var_r25, lbl_1_data_2C[var_r26] + 4); + Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); + } + Hu3DMotionSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][0]); + Hu3DModelAttrSet(lbl_1_bss_36[var_r31], 0x40000001); + Hu3DModelPosSet(lbl_1_bss_36[var_r31], var_r28, 0.0f, 0.0f); + Hu3DModelShadowSet(lbl_1_bss_36[var_r31]); + var_r28 += 0x96; + if (var_r31 == 1) { + var_r28 += 0x64; + } + } + CharModelDataClose(-1); + Hu3DShadowCreate(20.0f, 500.0f, 8000.0f); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowSizeSet(0xC0); + sp20.x = sp20.y = sp20.z = 0.0f; + sp38.x = sp38.z = 100.0f; + sp38.y = 2000.0f; + sp14.x = sp14.y = 0.0f; + sp14.z = 1.0f; + Hu3DShadowPosSet(&sp38, &sp14, &sp20); + lbl_1_bss_C = Hu3DHookFuncCreate(fn_1_7414); + Hu3DModelLayerSet(lbl_1_bss_C, 1); +} + +void fn_1_51BC(s16 arg0) +{ + omOvlHisData *var_r31; + + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(2, 0, 0x3C); + HuAudSeqAllFadeOut(0x3E8); + + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + var_r31 = omOvlHisGet(0); + omOvlHisChg(0, OVL_ZTAR, arg0, var_r31->stat); + omOvlCallEx(OVL_M433, 1, 0, 0); + while (TRUE) { + HuPrcVSleep(); + } +} + +float lbl_1_data_64[8] = { + -132.0f, + -12.0f, + 60.0f, + 132.0f, + -132.0f, + -60.0f, + 60.0f, + 132.0f, +}; + +u8 lbl_1_data_84[16] = { 0, 1, 2, 3, 1, 0, 2, 3, 2, 0, 1, 3, 3, 0, 1, 2 }; +u8 lbl_1_data_94[12] = { 0, 1, 2, 3, 0, 2, 1, 3, 0, 3, 1, 2 }; + +s32 fn_1_524C(s32 arg0) +{ + s16 spC; + float var_f31; + float var_f30; + float var_f29; + s16 var_r31; + s16 var_r30; + float *var_r29; + s16 var_r28; + s16 var_r27; + AnimData *var_r26; + s16 var_r25; + s16 var_r24; + s16 var_r23; + WindowData *var_r22; + + if (mgTypeCurr == 1) { + var_r29 = lbl_1_data_64; + var_f29 = 216.0f; + } + else { + var_r29 = &lbl_1_data_64[4]; + var_f29 = 288.0f; + } + var_r28 = HuSprGrpCreate(0x10); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r26 = HuSprAnimReadFile(GWPlayerCfg[var_r31].character + DATA_MAKE_NUM(DATADIR_ZTAR, 69)); + var_r25 = HuSprCreate(var_r26, 4, 0); + HuSprGrpMemberSet(var_r28, var_r31 * 4, var_r25); + HuSprPosSet(var_r28, var_r31 * 4, var_r29[var_r31], 0.0f); + if (mgTypeCurr == 1) { + if (var_r31 == 0) { + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 89)); + } + else { + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 90)); + } + } + else if (var_r31 < 2) { + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 89)); + } + else { + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 90)); + } + var_r25 = HuSprCreate(var_r26, 3, 0); + HuSprGrpMemberSet(var_r28, (var_r31 * 4) + 1, var_r25); + HuSprPosSet(var_r28, (var_r31 * 4) + 1, var_r29[var_r31], 0.0f); + if (GWPlayerCfg[var_r31].iscom != 0) { + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 87)); + } + else { + var_r26 = HuSprAnimReadFile(GWPlayerCfg[var_r31].pad_idx + DATA_MAKE_NUM(DATADIR_ZTAR, 83)); + } + var_r25 = HuSprCreate(var_r26, 2, 1); + HuSprGrpMemberSet(var_r28, (var_r31 * 4) + 2, var_r25); + HuSprPosSet(var_r28, (var_r31 * 4) + 2, var_r29[var_r31], 0.0f); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 88)); + var_r25 = HuSprCreate(var_r26, 2, GWPlayerCfg[var_r31].diff); + HuSprGrpMemberSet(var_r28, (var_r31 * 4) + 3, var_r25); + HuSprPosSet(var_r28, (var_r31 * 4) + 3, var_r29[var_r31], 38.0f); + if (GWPlayerCfg[var_r31].iscom == 0) { + HuSprAttrSet(var_r28, (var_r31 * 4) + 3, 4); + } + } + var_r27 = HuSprGrpCreate(5); + var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 67), MEMORY_DEFAULT_NUM)); + var_r25 = HuSprCreate(var_r26, 0x32, 0); + HuSprGrpMemberSet(var_r27, 0, var_r25); + HuSprTPLvlSet(var_r27, 0, 0.9f); + HuSprPosSet(var_r27, 0, 0.0f, 0.0f); + HuSprScaleSet(var_r27, 0, 1.1f, 1.0f); + var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 65), MEMORY_DEFAULT_NUM)); + var_r25 = HuSprCreate(var_r26, 0x28, 0); + HuSprGrpMemberSet(var_r27, 1, var_r25); + HuSprPosSet(var_r27, 1, 0.0f, -90.0f); + var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 66), MEMORY_DEFAULT_NUM)); + var_r25 = HuSprCreate(var_r26, 0x28, 0); + HuSprGrpMemberSet(var_r27, 2, var_r25); + HuSprPosSet(var_r27, 2, 0.0f, 0.0f); + var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 68), MEMORY_DEFAULT_NUM)); + var_r25 = HuSprCreate(var_r26, 0x28, 1); + HuSprGrpMemberSet(var_r27, 3, var_r25); + HuSprPosSet(var_r27, 3, 180.0f, 0.0f); + var_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_ZTAR, 68), MEMORY_DEFAULT_NUM)); + var_r25 = HuSprCreate(var_r26, 0x28, 0); + HuSprGrpMemberSet(var_r27, 4, var_r25); + HuSprPosSet(var_r27, 4, -180.0f, 0.0f); + HuSprGrpPosSet(var_r27, 288.0f, 240.0f); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + if (var_r31 <= 0x32) { + var_f31 = var_r31 / 50.0; + var_f30 = -300.0 + (560.0 * sind((90.0f * var_f31))); + HuSprGrpPosSet(var_r27, 288.0f, var_f30); + HuSprGrpPosSet(var_r28, 288.0f, var_f30); + } + else { + var_f31 = (var_r31 - 0x32) / 10.0; + var_f30 = 240.0 + (20.0 * cosd((90.0f * var_f31))); + var_f30 = var_f30; + HuSprGrpPosSet(var_r27, 288.0f, var_f30); + HuSprGrpPosSet(var_r28, 288.0f, var_f30); + } + HuPrcVSleep(); + } + var_r24 = HuWinCreate(0.0f, 0.0f, 0x1E0, 0x28, 0); + HuWinMesSpeedSet(var_r24, 0); + HuWinBGTPLvlSet(var_r24, 0.0f); + HuWinMesSet(var_r24, 0x1A0020); + var_r22 = &winData[var_r24]; + HuWinPriSet(var_r24, 5); + HuWinPosSet(var_r24, (576.0f - var_r22->w) / 2, 300.0f); + HuWinAttrSet(var_r24, 0x800); + var_r30 = 0; + var_r23 = 0; + while (TRUE) { + HuPrcVSleep(); + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + goto block_89; + } + spC = 0; + if (HuPadDStkRep[0] & PAD_BUTTON_LEFT) { + HuAudFXPlay(0x304); + for (var_r31 = 0; var_r31 <= 5; var_r31++) { + var_f31 = var_r31 / 5.0; + HuSprPosSet(var_r27, 4, -180.0 - (10.0 * sind((90.0f * var_f31))), 0.0f); + HuPrcVSleep(); + } + var_r30--; + if (mgTypeCurr == 1) { + if (var_r30 < 0) { + var_r30 = 3; + } + if (var_r30 >= 4) { + var_r30 = 0; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprPosSet(var_r28, lbl_1_data_84[var_r30 * 4 + var_r31] * 4, var_r29[var_r31], 0.0f); + HuSprPosSet(var_r28, lbl_1_data_84[var_r30 * 4 + var_r31] * 4 + 2, var_r29[var_r31], 0.0f); + HuSprPosSet(var_r28, lbl_1_data_84[var_r30 * 4 + var_r31] * 4 + 3, var_r29[var_r31], 38.0f); + } + } + else { + if (var_r30 < 0) { + var_r30 = 2; + } + if (var_r30 >= 3) { + var_r30 = 0; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprPosSet(var_r28, lbl_1_data_94[var_r30 * 4 + var_r31] * 4, var_r29[var_r31], 0.0f); + HuSprPosSet(var_r28, lbl_1_data_94[var_r30 * 4 + var_r31] * 4 + 2, var_r29[var_r31], 0.0f); + HuSprPosSet(var_r28, lbl_1_data_94[var_r30 * 4 + var_r31] * 4 + 3, var_r29[var_r31], 38.0f); + } + } + for (var_r31 = 0; var_r31 <= 5; var_r31++) { + var_f31 = var_r31 / 5.0; + HuSprPosSet(var_r27, 4, -180.0 - (10.0 * cosd((90.0f * var_f31))), 0.0f); + HuPrcVSleep(); + } + } + else { + if (HuPadDStkRep[0] & PAD_BUTTON_RIGHT) { + HuAudFXPlay(0x304); + for (var_r31 = 0; var_r31 <= 5; var_r31++) { + var_f31 = var_r31 / 5.0; + HuSprPosSet(var_r27, 3, 180.0 - (10.0 * sind((90.0f * var_f31))), 0.0f); + HuPrcVSleep(); + } + var_r30++; + if (mgTypeCurr == 1) { + if (var_r30 < 0) { + var_r30 = 3; + } + if (var_r30 >= 4) { + var_r30 = 0; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprPosSet(var_r28, lbl_1_data_84[var_r30 * 4 + var_r31] * 4, var_r29[var_r31], 0.0f); + HuSprPosSet(var_r28, (lbl_1_data_84[var_r30 * 4 + var_r31] * 4) + 2, var_r29[var_r31], 0.0f); + HuSprPosSet(var_r28, (lbl_1_data_84[var_r30 * 4 + var_r31] * 4) + 3, var_r29[var_r31], 38.0f); + } + } + else { + if (var_r30 < 0) { + var_r30 = 2; + } + if (var_r30 >= 3) { + var_r30 = 0; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprPosSet(var_r28, lbl_1_data_94[var_r30 * 4 + var_r31] * 4, var_r29[var_r31], 0.0f); + HuSprPosSet(var_r28, (lbl_1_data_94[var_r30 * 4 + var_r31] * 4) + 2, var_r29[var_r31], 0.0f); + HuSprPosSet(var_r28, (lbl_1_data_94[var_r30 * 4 + var_r31] * 4) + 3, var_r29[var_r31], 38.0f); + } + } + for (var_r31 = 0; var_r31 <= 5; var_r31++) { + var_f31 = var_r31 / 5.0; + HuSprPosSet(var_r27, 3, 180.0 + (10.0 * cosd((90.0f * var_f31))), 0.0f); + HuPrcVSleep(); + } + } + } + if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) { + HuAudFXPlay(0x305); + if (mgTypeCurr == 1) { + GWPlayerCfg[lbl_1_data_84[var_r30 * 4]].group = 0; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + GWPlayerCfg[lbl_1_data_84[var_r30 * 4 + var_r31]].group = 1; + } + } + else { + for (var_r31 = 0; var_r31 < 2; var_r31++) { + GWPlayerCfg[lbl_1_data_94[var_r30 * 4 + var_r31]].group = 0; + } + for (var_r31 = 2; var_r31 < 4; var_r31++) { + GWPlayerCfg[lbl_1_data_94[var_r30 * 4 + var_r31]].group = 1; + } + } + if (arg0 != 0) { + var_r23 = 1; + } + else { + return 1; + } + block_89: + HuWinKill(var_r24); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + if (var_r31 <= 0xA) { + var_f31 = var_r31 / 10.0; + var_f30 = 240.0 + (20.0 * sind((90.0f * var_f31))); + HuSprGrpPosSet(var_r27, 288.0f, var_f30); + HuSprGrpPosSet(var_r28, 288.0f, var_f30); + } + else { + var_f31 = (var_r31 - 0xA) / 50.0; + var_f30 = -300.0 + (560.0 * cosd(90.0f * var_f31)); + HuSprGrpPosSet(var_r27, 288.0f, var_f30); + HuSprGrpPosSet(var_r28, 288.0f, var_f30); + } + HuPrcVSleep(); + } + HuSprGrpKill(var_r28); + HuSprGrpKill(var_r27); + return var_r23; + } + } +} + +void fn_1_66F8(void) +{ + s16 var_r31; + + while (TRUE) { + if (lbl_1_bss_60 != 0 || omSysExitReq) { + break; + } + HuPrcVSleep(); + } + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(2, 0, 60); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + HuDataDirClose(0x160000); + while (lbl_1_bss_4 != 0) { + HuPrcVSleep(); + } + CharModelDataClose(-1); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GWPlayerCfg[var_r31].character = -1; + } + mgPracticeEnableF = 0; + omOvlReturnEx(1, 1); + HuPrcEnd(); +} + +void fn_1_6804(void) +{ + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + s8 var_r31; + + CRot.y += 0.1f * HuPadStkX[0]; + CRot.x += 0.1f * HuPadStkY[0]; + CZoom += HuPadTrigL[0] / 2; + CZoom -= HuPadTrigR[0] / 2; + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + OSReport("%f,%f,%f\n", CRot.x, CRot.y, CRot.z); + OSReport("%f,%f,%f\n", Center.x, Center.y, Center.z); + OSReport("%f\n", CZoom); + } + if (CZoom < 100.0f) { + CZoom = 100.0f; + } + sp2C.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x))); + sp2C.y = Center.y + (CZoom * -sind(CRot.x)); + sp2C.z = Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x))); + sp20.x = Center.x - sp2C.x; + sp20.y = Center.y - sp2C.y; + sp20.z = Center.z - sp2C.z; + sp14.x = sind(CRot.y) * sind(CRot.x); + sp14.y = cosd(CRot.x); + sp14.z = cosd(CRot.y) * sind(CRot.x); + var_f31 = CRot.z; + sp8.x = sp14.x * ((sp20.x * sp20.x) + ((1.0f - (sp20.x * sp20.x)) * cosd(var_f31))) + + sp14.y * (((sp20.x * sp20.y) * (1.0 - cosd(var_f31))) - sp20.z * sind(var_f31)) + + sp14.z * (((sp20.x * sp20.z) * (1.0 - cosd(var_f31))) + sp20.y * sind(var_f31)); + + sp8.y = sp14.y * ((sp20.y * sp20.y) + ((1.0f - (sp20.y * sp20.y)) * cosd(var_f31))) + + sp14.x * (((sp20.x * sp20.y) * (1.0 - cosd(var_f31))) + sp20.z * sind(var_f31)) + + sp14.z * (((sp20.y * sp20.z) * (1.0 - cosd(var_f31))) - sp20.x * sind(var_f31)); + + sp8.z = sp14.z * ((sp20.z * sp20.z) + ((1.0f - (sp20.z * sp20.z)) * cosd(var_f31))) + + (sp14.x * (((sp20.x * sp20.z) * (1.0 - cosd(var_f31))) - sp20.y * sind(var_f31)) + + sp14.y * (((sp20.y * sp20.z) * (1.0 - cosd(var_f31))) + sp20.x * sind(var_f31))); + PSVECCrossProduct(&sp14, &sp20, &sp20); + PSVECNormalize(&sp20, &sp20); + var_r31 = HuPadSubStkX[0] & 0xF8; + if (var_r31 != 0) { + Center.x += 0.05f * (sp20.x * var_r31); + Center.y += 0.05f * (sp20.y * var_r31); + Center.z += 0.05f * (sp20.z * var_r31); + } + PSVECNormalize(&sp8, &sp20); + var_r31 = -(HuPadSubStkY[0] & 0xF8); + if (var_r31 != 0) { + Center.x += 0.05f * (sp20.x * var_r31); + Center.y += 0.05f * (sp20.y * var_r31); + Center.z += 0.05f * (sp20.z * var_r31); + } +} + +void fn_1_7414(ModelData *model, Mtx matrix) +{ + Mtx sp8C; + Mtx sp5C; + Mtx sp2C; + GXTexObj spC; + s32 sp8; + + sp8 = 0; + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXInitTexObj(&spC, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 1, GX_CLAMP, GX_CLAMP, 0); + GXInitTexObjLOD(&spC, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1); + GXLoadTexObj(&spC, GX_TEXMAP0); + PSMTXInverse(Hu3DCameraMtx, sp5C); + PSMTXConcat(sp5C, matrix, sp8C); + PSMTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp2C); + PSMTXConcat(sp2C, sp8C, sp8C); + GXLoadTexMtxImm(sp8C, 0x39, GX_MTX3x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x39, 0, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV); + GXSetNumTexGens(1); + GXSetNumTevStages(1); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0, 1, GX_SRC_REG, GX_SRC_VTX, 1, GX_DF_CLAMP, GX_AF_NONE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + GXSetZMode(1, GX_LEQUAL, 0); + GXLoadPosMtxImm(matrix, 0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-500.0f, 0.0f, -500.0f); + GXPosition3f32(500.0f, 0.0f, -500.0f); + GXPosition3f32(500.0f, 0.0f, 500.0f); + GXPosition3f32(-500.0f, 0.0f, 500.0f); +} diff --git a/src/REL/ztardll/select.c b/src/REL/ztardll/select.c new file mode 100644 index 00000000..5f0bd977 --- /dev/null +++ b/src/REL/ztardll/select.c @@ -0,0 +1,3196 @@ +#include "ext_math.h" +#include "game/chrman.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "REL/ztardll.h" + +typedef void (*ZtarUnkFunc)(omObjData *, ...); + +typedef struct ZtarDllUnkStruct2 { + /* 0x00 */ omObjData *unk_00; + /* 0x04 */ ZtarUnkFunc unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ char pad_18[0x10]; /* maybe part of unk_14[5]? */ + /* 0x28 */ s32 unk_28; + /* 0x2C */ s32 unk_2C; + /* 0x30 */ s32 unk_30; + /* 0x34 */ s32 unk_34; + /* 0x38 */ char pad_38[0x10]; /* maybe part of unk_34[5]? */ + /* 0x48 */ s32 unk_48; + /* 0x4C */ s32 unk_4C; + /* 0x50 */ s32 unk_50; + /* 0x54 */ s32 unk_54; + /* 0x58 */ s32 unk_58; + /* 0x5C */ s32 unk_5C; +} ZtarDllUnkStruct2; /* size = 0x60 */ + +void fn_1_106E8(s32 arg0); +void fn_1_10764(s32 arg0); +void fn_1_108C8(s32); +void fn_1_10A80(void); +void fn_1_10B24(void); +s32 fn_1_10C18(s32 arg0); +s32 fn_1_10C98(s32 arg0); +float fn_1_10D60(float arg8, float arg9, float argA, float argB); +float fn_1_10E38(float arg8, float arg9, float argA, float argB); +void fn_1_10FBC(s32 arg0); +void fn_1_11960(void); +void fn_1_11C64(void); +void fn_1_11F68(void); +void fn_1_122A8(s32 arg0); +void fn_1_A02C(void); +void fn_1_A248(void); +void fn_1_A574(void); +void fn_1_A610(void); +void fn_1_A8E8(void); +void fn_1_ABC4(void); +void fn_1_AE94(void); +void fn_1_AEE4(omObjData *object, ZtarDllUnkStruct2 *arg1); +void fn_1_B468(omObjData *object, ZtarDllUnkStruct2 *arg1); +void fn_1_BA40(void); +void fn_1_BD7C(s32 arg0); +void fn_1_BFF0(s32 arg0); +void fn_1_C06C(s32 arg0, s32 arg1); +void fn_1_C4B8(s32 arg0); +void fn_1_C8EC(s32 arg0); +void fn_1_CAF0(void); +void fn_1_D280(omObjData *arg0, ZtarDllUnkStruct2 *arg1); +void fn_1_DD8C(struct ZtarDllUnkStruct2 *arg0); +void fn_1_E4AC(struct ZtarDllUnkStruct2 *arg0); +void fn_1_E548(omObjData *arg0, ZtarDllUnkStruct2 *arg1); +s32 fn_1_F214(struct ZtarDllUnkStruct2 *arg0); +void fn_1_FB38(void); +void fn_1_FD90(s32 arg0); + +extern s16 lbl_1_bss_4; + +s32 lbl_1_data_3C8[8] = { + 0x5F0000, + 0x1A0000, + 0x6D0000, + 0x8A0000, + 0x850000, + 0x110000, + 0xD0000, + 0x810000, +}; +s32 lbl_1_data_3E8[8] = { + 0x5E0000, + 0x190000, + 0x6C0000, + 0x890000, + 0x840000, + 0x100000, + 0xC0000, + 0x800000, +}; + +Process *lbl_1_bss_70; +s32 lbl_1_bss_74; +s32 lbl_1_bss_78[5]; +ZtarDllUnkStruct2 lbl_1_bss_8C[4]; +ZtarDllUnkStruct2 lbl_1_bss_20C; +s32 lbl_1_bss_26C[0x1B]; + +void fn_1_7C00(void) +{ + s16 var_r31; + s32 var_r30; + + CharKill(-1); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[var_r31].character < 8) { + var_r30 = HuDataDirReadAsync(lbl_1_data_3C8[GWPlayerCfg[var_r31].character]); + if (var_r30 != -1) { + while (HuDataGetAsyncStat(var_r30) == 0) { + HuPrcVSleep(); + } + } + CharARAMOpen(GWPlayerCfg[var_r31].character); + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[var_r31].character < 8) { + var_r30 = HuDataDirReadAsync(lbl_1_data_3E8[GWPlayerCfg[var_r31].character]); + if (var_r30 != -1) { + while (HuDataGetAsyncStat(var_r30) == 0) { + HuPrcVSleep(); + } + } + } + } + lbl_1_bss_4 = 0; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_7D6C(Process *arg0) +{ + s32 var_r31; + + lbl_1_bss_70 = arg0; + fn_1_A02C(); + fn_1_BA40(); + fn_1_FB38(); + HuPrcChildCreate(fn_1_10A80, 0x3E8, 0x2000, 0, lbl_1_bss_70); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuPrcChildCreate(fn_1_10B24, 0x3E8, 0x2000, 0, lbl_1_bss_70); + } +} + +s32 fn_1_7E0C(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r29 = -1; + fn_1_A610(); + fn_1_11020(); + fn_1_11264(0x1A0005, -1, -1); + fn_1_10FBC(1); + fn_1_11708(0x330091); + lbl_1_bss_20C.unk_04 = (ZtarUnkFunc)fn_1_AEE4; + var_r29 = -1; + while (TRUE) { + fn_1_10FBC(1); + var_r30 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_14 == 0) { + var_r30++; + } + } + if (var_r29 != var_r30) { + var_r29 = var_r30; + fn_1_11264(var_r30 + 0x1A001B, -1, 1); + } + if (lbl_1_bss_20C.unk_28 == 0) { + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2); + var_r28 = 1; + break; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r28 = 0; + break; + } + } + } + fn_1_AE94(); + lbl_1_bss_20C.unk_04 = NULL; + fn_1_1190C(); + if (var_r28 == 1) { + var_r27 = 0; + var_r26 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + var_r27++; + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r26 < var_r27) { + if (HuPadStatGet(var_r31) != -1) { + lbl_1_bss_8C[var_r31].unk_50 = 0; + var_r26++; + } + else { + lbl_1_bss_8C[var_r31].unk_50 = 1; + } + } + else { + lbl_1_bss_8C[var_r31].unk_50 = 1; + } + } + } + fn_1_111E0(); + fn_1_ABC4(); + return var_r28; +} + +s32 fn_1_8030(s32 arg0, s32 arg1) +{ + s32 sp10; + s32 spC; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r27; + + sp10 = 0; + spC = 0; + var_r30 = 0; + if (arg1 == 1) { + var_r30 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + lbl_1_bss_8C[var_r31].unk_50 = 1; + } + } + else { + var_r30 = 4; + } + fn_1_CAF0(); + if (arg0 == 0) { + fn_1_C4B8(0); + } + fn_1_11020(); + fn_1_10FBC(1); + if (arg1 == 1) { + fn_1_11264(0x1E005E, -1, -1); + } + else { + fn_1_11264(0x1A0009, -1, -1); + } + fn_1_11708(0x330092); + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + lbl_1_bss_8C[var_r31].unk_04 = (ZtarUnkFunc)fn_1_D280; + } + } + while (TRUE) { + fn_1_10FBC(1); + if ((lbl_1_bss_8C->unk_08 == 0) && (HuPadBtnDown[0] & PAD_BUTTON_B) != 0) { + HuAudFXPlay(3); + if (lbl_1_bss_20C.unk_10 == 1) { + lbl_1_bss_20C.unk_10 = 0; + continue; + } + var_r27 = 0; + break; + } + else { + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if ((lbl_1_bss_8C[var_r31].unk_50 == 0) && (lbl_1_bss_8C[var_r31].unk_08 != 1)) { + break; + } + } + if (var_r31 == var_r30) { + var_r27 = 2; + break; + } + } + } + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + lbl_1_bss_8C[var_r31].unk_04 = NULL; + } + fn_1_1190C(); + fn_1_111E0(); + if (var_r27 == 0) { + fn_1_C8EC(0); + return 0; + } + var_r29 = 0; + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_50 != 0) { + lbl_1_bss_8C[var_r31].unk_5C = 0; + var_r29++; + } + } + if ((var_r29 == 0) || ((arg1 == 2) && (var_r29 == 2))) { + fn_1_C8EC(0); + return 2; + } + if (arg1 == 2) { + lbl_1_bss_8C[1].unk_4C = 0; + } + return 1; +} + +void fn_1_830C(s32 arg0) +{ + fn_1_8030(arg0, 4); +} + +s32 fn_1_8338(s32 arg0, s32 arg1) +{ + s32 spC; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + var_r30 = -1; + var_r27 = -1; + var_r26 = -1; + var_r24 = -1; + spC = 0; + if (arg0 != 0) { + if (arg1 == 2) { + fn_1_C06C(0, 2); + } + else { + fn_1_C06C(0, 1); + } + } + fn_1_11020(); + while (TRUE) { + fn_1_10FBC(1); + var_r25 = 0; + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + if ((lbl_1_bss_8C[var_r31].unk_50 != 0) && (lbl_1_bss_8C[var_r31].unk_08 == 0)) { + var_r25++; + } + } + if (var_r26 == -1) { + fn_1_11338(var_r25 + 0x1A0023, 1); + fn_1_11264(0x1A0028, -1, var_r26); + } + else { + fn_1_11338(var_r25 + 0x1A0023, 1); + fn_1_11264(0x1A0028, -1, var_r26); + } + var_r26 = 1; + fn_1_11708(0x330092); + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + if ((lbl_1_bss_8C[var_r31].unk_50 != 0) && (lbl_1_bss_8C[var_r31].unk_08 == 0)) { + var_r30 = var_r31; + lbl_1_bss_8C[var_r31].unk_0C = var_r27; + fn_1_DD8C(&lbl_1_bss_8C[var_r31]); + lbl_1_bss_8C[var_r31].unk_04 = (ZtarUnkFunc)fn_1_E548; + break; + } + } + while (TRUE) { + fn_1_10FBC(1); + if (((HuPadBtnDown[lbl_1_bss_8C->unk_58] & 0x200) != 0) && (lbl_1_bss_8C[var_r30].unk_08 == 0) && (lbl_1_bss_20C.unk_30 == 0)) { + HuAudFXPlay(3); + if (var_r27 == -1) { + var_r29 = 0; + } + else { + var_r29 = 1; + } + break; + } + else if (lbl_1_bss_8C[var_r30].unk_08 == 1) { + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_08 == 0) { + lbl_1_bss_8C[var_r31].unk_5C = 0; + } + } + lbl_1_bss_8C[var_r30].unk_04 = NULL; + fn_1_11264(0x1A0022, -1, 1); + fn_1_10FBC(1); + fn_1_11708(0x330093); + var_r29 = fn_1_F214(&lbl_1_bss_8C[var_r30]); + if (var_r29 == 1) { + HuAudFXPlay(2); + lbl_1_bss_8C[var_r30].unk_10 = 1; + var_r29 = 4; + var_r27 = var_r30; + } + else { + HuAudFXPlay(3); + lbl_1_bss_8C[var_r30].unk_10 = 0; + var_r29 = 4; + lbl_1_bss_8C[var_r30].unk_08 = 0; + fn_1_E4AC(&lbl_1_bss_8C[var_r30]); + fn_1_DD8C(&lbl_1_bss_8C[var_r30]); + } + break; + } + } + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + lbl_1_bss_8C[var_r31].unk_04 = NULL; + } + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_08 == 0) { + break; + } + } + if (var_r31 == arg1) { + var_r29 = 3; + break; + } + else { + if (var_r29 == 1) { + fn_1_DD8C(&lbl_1_bss_8C[var_r30]); + fn_1_E4AC(&lbl_1_bss_8C[var_r30]); + fn_1_DD8C(&lbl_1_bss_8C[lbl_1_bss_8C[var_r30].unk_0C]); + var_r27 = lbl_1_bss_8C[lbl_1_bss_8C[var_r30].unk_0C].unk_0C; + lbl_1_bss_8C[lbl_1_bss_8C[var_r30].unk_0C].unk_08 = 0; + } + else if (var_r29 != 4) { + if (var_r29 == 0) { + fn_1_E4AC(&lbl_1_bss_8C[var_r30]); + } + break; + } + var_r24 = -1; + } + } + + fn_1_1190C(); + fn_1_111E0(); + if (var_r29 != 0) { + fn_1_C8EC(0); + } + return var_r29; +} + +void fn_1_8850(s32 arg0) +{ + fn_1_8338(arg0, 4); +} + +void fn_1_887C(void) +{ + fn_1_8030(0, 1); +} + +s32 fn_1_88A4(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r26 = -1; + fn_1_A8E8(); + fn_1_11020(); + fn_1_11264(0x1A0005, -1, -1); + fn_1_10FBC(1); + fn_1_11708(0x330091); + lbl_1_bss_20C.unk_04 = (ZtarUnkFunc)fn_1_B468; + while (TRUE) { + fn_1_10FBC(1); + var_r30 = 0; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_14 == 0) { + var_r30++; + } + } + if (var_r26 != var_r30) { + var_r26 = var_r30; + fn_1_11264(var_r30 + 0x330093, -1, 1); + } + if (lbl_1_bss_20C.unk_28 != 0) { + continue; + } + if ((*HuPadBtnDown & PAD_BUTTON_A) != 0) { + HuAudFXPlay(2); + var_r28 = 1; + break; + } + else if ((*HuPadBtnDown & PAD_BUTTON_B) != 0) { + HuAudFXPlay(3); + var_r28 = 0; + break; + } + } + fn_1_AE94(); + lbl_1_bss_20C.unk_04 = NULL; + fn_1_1190C(); + if (var_r28 == 1) { + var_r29 = 0; + var_r27 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + var_r29++; + } + } + if (var_r29 >= 2) { + var_r29 = 2; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r27 < var_r29) { + if (HuPadStatGet(var_r31) != -1) { + lbl_1_bss_8C[var_r31].unk_50 = 0; + lbl_1_bss_8C[var_r31].unk_4C = 0; + var_r27++; + } + else { + lbl_1_bss_8C[var_r31].unk_50 = 1; + lbl_1_bss_8C[var_r31].unk_4C = 1; + } + } + else { + lbl_1_bss_8C[var_r31].unk_50 = 1; + lbl_1_bss_8C[var_r31].unk_4C = 1; + } + } + } + fn_1_111E0(); + fn_1_ABC4(); + return var_r28; +} + +void fn_1_8B18(s32 arg0) +{ + fn_1_8030(arg0, 2); +} + +void fn_1_8B44(s32 arg0) +{ + fn_1_8338(arg0, 2); +} + +void fn_1_8B70(void) +{ + fn_1_7E0C(0); +} + +s32 fn_1_8B94(s32 arg0) +{ + s32 sp10; + s32 spC; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + sp10 = 0; + spC = 0; + var_r30 = 4; + var_r28 = 4; + if (var_r28 == 1) { + var_r30 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + lbl_1_bss_8C[var_r31].unk_50 = 1; + } + } + else { + var_r30 = 4; + } + fn_1_CAF0(); + if (arg0 == 0) { + fn_1_C4B8(3); + } + fn_1_11020(); + fn_1_10FBC(1); + fn_1_11264(0x1A0009, -1, -1); + fn_1_11708(0x330092); + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + lbl_1_bss_8C[var_r31].unk_04 = (ZtarUnkFunc)fn_1_D280; + } + } + while (TRUE) { + fn_1_10FBC(1); + if ((lbl_1_bss_8C->unk_08 == 0) && ((*HuPadBtnDown & 0x200) != 0)) { + HuAudFXPlay(3); + if (lbl_1_bss_20C.unk_10 == 1) { + lbl_1_bss_20C.unk_10 = 0; + continue; + } + var_r27 = 0; + break; + } + else { + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if ((lbl_1_bss_8C[var_r31].unk_50 == 0) && (lbl_1_bss_8C[var_r31].unk_08 != 1)) { + break; + } + } + if (var_r31 == var_r30) { + var_r27 = 2; + break; + } + } + } + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + lbl_1_bss_8C[var_r31].unk_04 = NULL; + } + fn_1_1190C(); + fn_1_111E0(); + if (var_r27 == 0) { + fn_1_C8EC(0); + return 0; + } + var_r29 = 0; + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_50 != 0) { + lbl_1_bss_8C[var_r31].unk_5C = 1; + var_r29++; + } + } + if ((var_r29 == 0) || ((var_r28 == 2) && (var_r29 == 2))) { + fn_1_C8EC(3); + return 2; + } + if (var_r28 == 2) { + lbl_1_bss_8C[1].unk_4C = 0; + } + return 1; +} + +s32 fn_1_8E50(s32 arg0) +{ + s32 spC; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + var_r30 = -1; + var_r27 = -1; + var_r26 = -1; + var_r28 = 4; + var_r24 = -1; + spC = 0; + if (arg0 != 0) { + fn_1_C06C(3, 3); + } + fn_1_11020(); + while (TRUE) { + fn_1_10FBC(1); + var_r25 = 0; + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + if ((lbl_1_bss_8C[var_r31].unk_50 != 0) && (lbl_1_bss_8C[var_r31].unk_08 == 0)) { + var_r25++; + } + } + if (var_r26 == -1) { + fn_1_11338(var_r25 + 0x1A0023, 1); + fn_1_11264(0x1A0028, -1, var_r26); + } + else { + fn_1_11338(var_r25 + 0x1A0023, 1); + fn_1_11264(0x1A0028, -1, var_r26); + } + var_r26 = 1; + fn_1_11708(0x330092); + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + if ((lbl_1_bss_8C[var_r31].unk_50 != 0) && (lbl_1_bss_8C[var_r31].unk_08 == 0)) { + var_r30 = var_r31; + lbl_1_bss_8C[var_r31].unk_0C = var_r27; + fn_1_DD8C(&lbl_1_bss_8C[var_r31]); + lbl_1_bss_8C[var_r31].unk_04 = (ZtarUnkFunc)fn_1_E548; + break; + } + } + while (TRUE) { + fn_1_10FBC(1); + if ((HuPadBtnDown[lbl_1_bss_8C->unk_58] & PAD_BUTTON_B) && (lbl_1_bss_8C[var_r30].unk_08 == 0) && (lbl_1_bss_20C.unk_30 == 0)) { + HuAudFXPlay(3); + if (var_r27 == -1) { + var_r29 = 0; + } + else { + var_r29 = 1; + } + break; + } + else if (lbl_1_bss_8C[var_r30].unk_08 == 1) { + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_08 == 0) { + lbl_1_bss_8C[var_r31].unk_5C = 1; + } + } + lbl_1_bss_8C[var_r30].unk_04 = NULL; + fn_1_11264(0x1A0022, -1, 1); + fn_1_10FBC(1); + fn_1_11708(0x330093); + var_r29 = fn_1_F214(&lbl_1_bss_8C[var_r30]); + if (var_r29 == 1) { + HuAudFXPlay(2); + lbl_1_bss_8C[var_r30].unk_10 = 1; + var_r29 = 4; + var_r27 = var_r30; + } + else { + HuAudFXPlay(3); + lbl_1_bss_8C[var_r30].unk_10 = 0; + var_r29 = 4; + lbl_1_bss_8C[var_r30].unk_08 = 0; + fn_1_E4AC(&lbl_1_bss_8C[var_r30]); + fn_1_DD8C(&lbl_1_bss_8C[var_r30]); + } + break; + } + } + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + lbl_1_bss_8C[var_r31].unk_04 = NULL; + } + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_08 == 0) { + break; + } + } + if (var_r31 == var_r28) { + var_r29 = 3; + break; + } + else { + if (var_r29 == 1) { + fn_1_DD8C(&lbl_1_bss_8C[var_r30]); + fn_1_E4AC(&lbl_1_bss_8C[var_r30]); + fn_1_DD8C(&lbl_1_bss_8C[lbl_1_bss_8C[var_r30].unk_0C]); + var_r27 = lbl_1_bss_8C[lbl_1_bss_8C[var_r30].unk_0C].unk_0C; + lbl_1_bss_8C[lbl_1_bss_8C[var_r30].unk_0C].unk_08 = 0; + } + else if (var_r29 == 4) { + } + else if (var_r29 == 0) { + fn_1_E4AC(&lbl_1_bss_8C[var_r30]); + break; + } + else { + break; + } + var_r24 = -1; + } + } + fn_1_1190C(); + fn_1_111E0(); + if (var_r29 != 0) { + fn_1_C8EC(3); + } + return var_r29; +} + +void fn_1_9350(s32 arg0) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GWPlayer[var_r31].team = GWPlayerCfg[var_r31].group = lbl_1_bss_8C[var_r31].unk_4C; + GWPlayer[var_r31].com = GWPlayerCfg[var_r31].iscom = lbl_1_bss_8C[var_r31].unk_50; + GWPlayer[var_r31].diff = GWPlayerCfg[var_r31].diff = lbl_1_bss_8C[var_r31].unk_54; + if (lbl_1_bss_74 != 0) { + if (lbl_1_bss_8C[var_r31].unk_5C <= 5) { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_8C[var_r31].unk_5C - 1; + } + else if (lbl_1_bss_8C[var_r31].unk_5C <= 0xB) { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_8C[var_r31].unk_5C - 3; + } + else { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = fn_1_10C98(lbl_1_bss_8C[var_r31].unk_5C - 4); + } + } + else if (arg0 == 1) { + if (var_r31 != 0) { + lbl_1_bss_8C[var_r31].unk_5C = lbl_1_bss_8C[var_r31 - 1].unk_5C + 1; + if (lbl_1_bss_8C[var_r31].unk_5C >= 8) { + lbl_1_bss_8C[var_r31].unk_5C = 0; + } + } + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_8C[var_r31].unk_5C; + } + else { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_8C[var_r31].unk_5C; + } + GWPlayer[var_r31].port = GWPlayerCfg[var_r31].pad_idx = lbl_1_bss_8C[var_r31].unk_58; + } + OSReport("\n\n#################### SET PLAYERDATA ####################\n"); + OSReport("ID) GRP:COM:DIF:CHR:PAD\n"); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + OSReport("%2d) %3d:%3d:%3d:%3d:%3d\n", var_r31, GWPlayerCfg[var_r31].group, GWPlayerCfg[var_r31].iscom, GWPlayerCfg[var_r31].diff, + GWPlayerCfg[var_r31].character, GWPlayerCfg[var_r31].pad_idx); + } + OSReport("########################################################\n"); +} + +s32 lbl_1_data_4B4[4][2] = { + { -0x69, 0 }, + { -0x23, 0 }, + { 0x23, 0 }, + { 0x69, 0 }, +}; +s32 lbl_1_data_4D4[8][2] = { + { -0x7B, -0x34 }, + { -0x29, -0x34 }, + { 0x29, -0x34 }, + { 0x7B, -0x34 }, + { -0x7B, 0x34 }, + { -0x29, 0x34 }, + { 0x29, 0x34 }, + { 0x7B, 0x34 }, +}; +s32 lbl_1_data_514[0xE][2] = { + { -0x7B, -0x66 }, + { -0x29, -0x66 }, + { 0x29, -0x66 }, + { 0x7B, -0x66 }, + { -0x7B, 0 }, + { -0x29, 0 }, + { 0x29, 0 }, + { 0x7B, 0 }, + { -0xCD, 0x66 }, + { -0x7B, 0x66 }, + { -0x29, 0x66 }, + { 0x29, 0x66 }, + { 0x7B, 0x66 }, + { 0xCD, 0x66 }, +}; +s32 lbl_1_data_584[0x12][2] = { + { 0, 0 }, + { -0x7B, -0x66 }, + { -0x29, -0x66 }, + { 0x29, -0x66 }, + { 0x7B, -0x66 }, + { 0, 0 }, + { 0, 0 }, + { -0x7B, 0 }, + { -0x29, 0 }, + { 0x29, 0 }, + { 0x7B, 0 }, + { 0, 0 }, + { -0xCD, 0x66 }, + { -0x7B, 0x66 }, + { -0x29, 0x66 }, + { 0x29, 0x66 }, + { 0x7B, 0x66 }, + { 0xCD, 0x66 }, +}; +s32 lbl_1_data_614[4][2] = { + { -0x45, -8 }, + { -0x17, -8 }, + { 0x17, -8 }, + { 0x45, -8 }, +}; +s32 lbl_1_data_634[2] = { 0, 0xFFFFFFF8 }; +s32 lbl_1_data_63C[2][2] = { + { -0x17, -8 }, + { 0x17, -8 }, +}; +s32 lbl_1_data_64C[4][2] = { + { -0x59, -8 }, + { -0x2B, -8 }, + { 0x2B, -8 }, + { 0x59, -8 }, +}; +s32 lbl_1_data_66C = -1; +s32 lbl_1_data_670 = -1; + +s32 fn_1_97D0(s32 arg0, s32 arg1) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + s32 var_r18; + + var_r30 = 0; + var_r27 = 0; + var_r26 = 0; + var_r29 = arg0; + if (arg0 == 3) { + lbl_1_bss_74 = 1; + } + else { + lbl_1_bss_74 = 0; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_8C[var_r31].unk_48 = var_r31; + lbl_1_bss_8C[var_r31].unk_4C = 0; + lbl_1_bss_8C[var_r31].unk_50 = 0; + lbl_1_bss_8C[var_r31].unk_54 = 0; + if (lbl_1_bss_74 != 0) { + lbl_1_bss_8C[var_r31].unk_5C = var_r31 + 1; + } + else { + lbl_1_bss_8C[var_r31].unk_5C = var_r31; + } + lbl_1_bss_8C[var_r31].unk_58 = var_r31; + } + if (arg1 == 1) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_8C[var_r31].unk_48 = var_r31; + lbl_1_bss_8C[var_r31].unk_4C = GWPlayerCfg[var_r31].group; + lbl_1_bss_8C[var_r31].unk_50 = GWPlayerCfg[var_r31].iscom; + lbl_1_bss_8C[var_r31].unk_54 = GWPlayerCfg[var_r31].diff; + lbl_1_bss_8C[var_r31].unk_5C = GWPlayerCfg[var_r31].character; + lbl_1_bss_8C[var_r31].unk_58 = GWPlayerCfg[var_r31].pad_idx; + lbl_1_bss_8C[var_r31].unk_08 = lbl_1_bss_8C[var_r31].unk_0C = lbl_1_bss_8C[var_r31].unk_10 = lbl_1_bss_8C[var_r31].unk_14 = 0; + lbl_1_bss_8C[var_r31].unk_28 = lbl_1_bss_8C[var_r31].unk_2C = lbl_1_bss_8C[var_r31].unk_30 = lbl_1_bss_8C[var_r31].unk_34 = 0; + switch (arg0) { + case 0: + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + lbl_1_bss_8C[var_r31].unk_08 = 1; + } + else { + var_r27 = 1; + } + break; + case 2: + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + lbl_1_bss_8C[var_r31].unk_08 = 1; + var_r26++; + } + else { + var_r27 = 1; + } + break; + case 3: + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + lbl_1_bss_8C[var_r31].unk_08 = 1; + var_r26++; + } + else { + var_r27 = 1; + } + if (lbl_1_bss_8C[var_r31].unk_5C <= 3) { + lbl_1_bss_8C[var_r31].unk_5C++; + } + else if (lbl_1_bss_8C[var_r31].unk_5C <= 7) { + lbl_1_bss_8C[var_r31].unk_5C += 3; + } + else { + lbl_1_bss_8C[var_r31].unk_5C = fn_1_10C18(lbl_1_bss_8C[var_r31].unk_5C) + 4; + } + break; + } + } + switch (arg0) { + case 0: + if (var_r27 == 1) { + var_r29 = 0x66; + var_r30 = 1; + } + else { + var_r29 = 0x65; + var_r30 = 0; + } + break; + case 1: + var_r29 = 0xC8; + break; + case 2: + if ((var_r27 == 1) && (var_r26 == 1)) { + var_r29 = 0x12E; + var_r30 = 1; + } + else { + var_r29 = 0x12D; + var_r30 = 0; + } + break; + case 3: + if (var_r27 == 1) { + var_r29 = 0x192; + var_r30 = 1; + } + else { + var_r29 = 0x191; + var_r30 = 0; + } + break; + } + } + while (TRUE) { + fn_1_10FBC(1); + if (var_r28 == 0x3E7) { + break; + } + switch (var_r29) { + case 0x0: + var_r29 = 0x64; + break; + case 0x1: + var_r29 = 0xC8; + break; + case 0x2: + var_r29 = 0x12C; + break; + case 0x3: + var_r29 = 0x190; + break; + case 0x64: + var_r28 = fn_1_7E0C(var_r30); + if (var_r28 != 0) { + var_r29 = 0x65; + var_r30 = 0; + } + else { + var_r29 = 0x385; + var_r30 = 1; + } + break; + case 0x65: + var_r23 = fn_1_8030(var_r30, 4); + var_r28 = var_r23; + if (var_r28 == 1) { + var_r29 = 0x66; + var_r30 = 0; + } + else if (var_r28 == 2) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x64; + var_r30 = 1; + } + break; + case 0x66: + var_r22 = fn_1_8338(var_r30, 4); + var_r28 = var_r22; + var_r28 = var_r28; + if (var_r28 != 0) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x65; + var_r30 = 1; + } + break; + case 0xC8: + var_r21 = fn_1_8030(0, 1); + var_r28 = var_r21; + if (var_r28 != 0) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x385; + var_r30 = 1; + } + break; + case 0x12C: + var_r28 = fn_1_88A4(); + if (var_r28 != 0) { + var_r29 = 0x12D; + var_r30 = 0; + } + else { + var_r29 = 0x385; + var_r30 = 1; + } + break; + case 0x12D: + var_r20 = fn_1_8030(var_r30, 2); + var_r28 = var_r20; + if (var_r28 == 1) { + var_r29 = 0x12E; + var_r30 = 0; + } + else if (var_r28 == 2) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x12C; + var_r30 = 1; + } + break; + case 0x12E: + var_r19 = fn_1_8338(var_r30, 2); + var_r28 = var_r19; + if (var_r28 != 0) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x12D; + var_r30 = 1; + } + break; + case 0x190: + var_r18 = fn_1_7E0C(0); + var_r28 = var_r18; + if (var_r28 != 0) { + var_r29 = 0x191; + var_r30 = 0; + } + else { + var_r29 = 0x385; + var_r30 = 1; + } + break; + case 0x191: + var_r28 = fn_1_8B94(var_r30); + if (var_r28 == 1) { + var_r29 = 0x192; + var_r30 = 0; + } + else if (var_r28 == 2) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x190; + var_r30 = 1; + } + break; + case 0x192: + var_r28 = fn_1_8E50(var_r30); + if (var_r28 != 0) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x191; + var_r30 = 1; + } + break; + case 0x384: + fn_1_9350(arg0); + var_r24 = 1; + var_r28 = 0x3E7; + break; + case 0x385: + var_r24 = 0; + var_r28 = 0x3E7; + break; + } + } + return var_r24; +} + +void fn_1_9FDC(s32 arg0) +{ + fn_1_10764(arg0); +} + +void fn_1_A004(s32 arg0) +{ + fn_1_108C8(arg0); +} + +void fn_1_A02C(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + + var_r30 = HuSprGrpCreate(0xB); + lbl_1_bss_26C[0] = var_r30; + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x46)), 0xBB8, 0); + HuSprGrpMemberSet(var_r30, 0, var_r29); + HuSprPosSet(var_r30, 0, 0.0f, 0.0f); + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x47)); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r29 = HuSprCreate(var_r28, 0x3E8, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 1, var_r29); + HuSprBankSet(var_r30, var_r31 + 1, var_r31); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x48)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = HuSprCreate(var_r28, 0x76C, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 3, var_r29); + HuSprPosSet(var_r30, var_r31 + 3, lbl_1_data_4B4[var_r31 % 4][0], lbl_1_data_4B4[0][1]); + HuSprBankSet(var_r30, var_r31 + 3, 0); + } + fn_1_A248(); + fn_1_A574(); +} + +void fn_1_A248(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_26C[0]; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 3, 4); + HuSprPosSet(var_r30, var_r31 + 3, lbl_1_data_4B4[var_r31 % 4][0], lbl_1_data_4B4[0][1]); + HuSprBankSet(var_r30, var_r31 + 3, 0); + } + HuSprGrpPosSet(var_r30, 288.0f, -390.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_8C[var_r31].unk_14 = lbl_1_bss_8C[var_r31].unk_50 = 0; + } +} + +void fn_1_A3DC(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_26C[0]; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 3, 4); + HuSprPosSet(var_r30, var_r31 + 3, lbl_1_data_4B4[var_r31 % 4 + 1][0], lbl_1_data_4B4[0][1]); + HuSprBankSet(var_r30, var_r31 + 3, 0); + } + HuSprGrpPosSet(var_r30, 288.0f, -390.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_8C[var_r31].unk_14 = lbl_1_bss_8C[var_r31].unk_50 = 0; + } +} + +void fn_1_A574(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_26C[0]; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprGrpPosSet(var_r30, 288.0f, 110.0f); + HuSprGrpScaleSet(var_r30, 1.0f, 1.0f); +} + +void fn_1_A610(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_26C[0]; + var_r29 = lbl_1_bss_26C[0]; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r29, var_r31, 4); + } + HuSprAttrReset(var_r29, 0, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r29, var_r31 + 3, 4); + HuSprPosSet(var_r29, var_r31 + 3, lbl_1_data_4B4[var_r31 % 4][0], lbl_1_data_4B4[0][1]); + HuSprBankSet(var_r29, var_r31 + 3, 0); + } + HuSprGrpPosSet(var_r29, 288.0f, -390.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_8C[var_r31].unk_14 = lbl_1_bss_8C[var_r31].unk_50 = 0; + } + for (var_r30 = 0; var_r30 <= 0x3C; var_r30++) { + fn_1_10FBC(1); + if (var_r30 <= 0x32) { + var_f31 = fn_1_10E38(-500.0f, 10.0f, var_r30, 50.0f); + } + else { + var_f31 = fn_1_10D60(10.0f, 0.0f, var_r30 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f + var_f31); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f); + fn_1_10FBC(0xA); +} + +void fn_1_A8E8(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_26C[0]; + var_r29 = lbl_1_bss_26C[0]; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r29, var_r31, 4); + } + HuSprAttrReset(var_r29, 0, 4); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrReset(var_r29, var_r31 + 3, 4); + HuSprPosSet(var_r29, var_r31 + 3, lbl_1_data_4B4[var_r31 % 4 + 1][0], lbl_1_data_4B4[0][1]); + HuSprBankSet(var_r29, var_r31 + 3, 0); + } + HuSprGrpPosSet(var_r29, 288.0f, -390.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_8C[var_r31].unk_14 = lbl_1_bss_8C[var_r31].unk_50 = 0; + } + for (var_r30 = 0; var_r30 <= 0x3C; var_r30++) { + fn_1_10FBC(1); + if (var_r30 <= 0x32) { + var_f31 = fn_1_10E38(-500.0f, 10.0f, var_r30, 50.0f); + } + else { + var_f31 = fn_1_10D60(10.0f, 0.0f, var_r30 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f + var_f31); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f); + fn_1_10FBC(0xA); +} +void fn_1_ABC4(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_26C[0]; + fn_1_10FBC(0xA); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_10FBC(1); + if (var_r31 <= 0xA) { + var_f31 = fn_1_10E38(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_10D60(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f + var_f31); + } + HuSprGrpPosSet(var_r28, 288.0f, -390.0f); + var_r29 = lbl_1_bss_26C[0]; + for (var_r30 = 0; var_r30 < 0xB; var_r30++) { + HuSprAttrSet(var_r29, var_r30, 4); + } + HuSprGrpPosSet(var_r29, 288.0f, 110.0f); + HuSprGrpScaleSet(var_r29, 1.0f, 1.0f); +} + +void fn_1_ADA4(s32 arg0) +{ + s32 var_r31 = lbl_1_bss_26C[0]; + HuSprAttrReset(var_r31, 1, 4); + HuSprAttrReset(var_r31, 2, 4); + HuSprPosSet(var_r31, 1, -155.0f, 0.0f); + HuSprPosSet(var_r31, 2, 155.0f, 0.0f); + if (arg0 == 2) { + HuSprPosSet(var_r31, 1, -80.0f, 0.0f); + HuSprPosSet(var_r31, 2, 80.0f, 0.0f); + } +} + +void fn_1_AE94(void) +{ + s32 var_r31 = lbl_1_bss_26C[0]; + HuSprAttrSet(var_r31, 1, 4); + HuSprAttrSet(var_r31, 2, 4); +} + +void fn_1_AEE4(omObjData *object, ZtarDllUnkStruct2 *arg1) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + var_r27 = lbl_1_bss_26C[0]; + var_r29 = var_r28 = var_r26 = var_r24 = 0; + lbl_1_bss_20C.unk_28 = 0; + var_r29 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + var_r29++; + } + } + var_r28 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + if (HuPadStatGet(var_r31) != -1) { + var_r28++; + } + } + if (var_r28 >= 2) { + var_r25 = lbl_1_bss_26C[0]; + HuSprAttrReset(var_r25, 1, 4); + HuSprAttrReset(var_r25, 2, 4); + HuSprPosSet(var_r25, 1, -155.0f, 0.0f); + HuSprPosSet(var_r25, 2, 155.0f, 0.0f); + if (HuPadStkX[0] >= 5) { + var_r29++; + var_r26 = 1; + } + else if (HuPadStkX[0] <= -5) { + var_r29--; + var_r26 = -1; + } + } + else { + var_r23 = lbl_1_bss_26C[0]; + HuSprAttrSet(var_r23, 1, 4); + HuSprAttrSet(var_r23, 2, 4); + } + if (var_r29 < 1) { + var_r29 = var_r28; + } + else if (var_r29 > var_r28) { + if (var_r26 == 0) { + var_r29 = var_r28; + var_r24 = 1; + } + else { + var_r29 = 1; + } + } + if ((var_r26 != 0) || (var_r24 != 0)) { + lbl_1_bss_20C.unk_28 = 1; + HuAudFXPlay(0); + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + if (var_r31 <= 5) { + var_f31 = fn_1_10E38(0.0f, 10.0f, var_r31, 5.0f); + var_f30 = fn_1_10E38(1.0f, 0.0f, var_r31, 5.0f); + } + else { + var_f31 = fn_1_10E38(10.0f, 0.0f, var_r31 - 5, 5.0f); + var_f30 = fn_1_10E38(0.0f, 1.0f, var_r31 - 5, 5.0f); + } + if (var_r26 == 1) { + HuSprPosSet(var_r27, 2, 3.0f + (155.0f + var_f31), 0.0f); + } + else if (var_r26 == -1) { + HuSprPosSet(var_r27, 1, (-155.0f - var_f31) - 3.0f, 0.0f); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if ((var_r30 < var_r29) && (lbl_1_bss_8C[var_r30].unk_50 == 1)) { + lbl_1_bss_8C[var_r30].unk_14 = 0; + HuSprScaleSet(var_r27, var_r30 + 3, var_f30, 1.0f); + if (var_r31 == 5) { + HuSprBankSet(var_r27, var_r30 + 3, 0); + } + } + else if ((var_r30 >= var_r29) && (lbl_1_bss_8C[var_r30].unk_50 == 0)) { + lbl_1_bss_8C[var_r30].unk_14 = 1; + HuSprScaleSet(var_r27, var_r30 + 3, var_f30, 1.0f); + if (var_r31 == 5) { + HuSprBankSet(var_r27, var_r30 + 3, 1); + } + } + } + fn_1_10FBC(1); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r30 < var_r29) { + lbl_1_bss_8C[var_r30].unk_50 = 0; + } + else { + lbl_1_bss_8C[var_r30].unk_50 = 1; + } + } + } + lbl_1_bss_20C.unk_28 = 0; +} + +void fn_1_B468(omObjData *object, ZtarDllUnkStruct2 *arg1) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + var_r27 = lbl_1_bss_26C[0]; + var_r29 = var_r28 = var_r26 = var_r24 = 0; + lbl_1_bss_20C.unk_28 = 0; + var_r29 = 1; + for (var_r31 = 1; var_r31 < 2; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_50 == 0) { + var_r29++; + } + } + var_r28 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + if (HuPadStatGet(var_r31) != -1) { + var_r28++; + } + } + if (var_r28 > 2) { + var_r28 = 2; + } + if (var_r28 >= 2) { + var_r25 = lbl_1_bss_26C[0]; + HuSprAttrReset(var_r25, 1, 4); + HuSprAttrReset(var_r25, 2, 4); + HuSprPosSet(var_r25, 1, -155.0f, 0.0f); + HuSprPosSet(var_r25, 2, 155.0f, 0.0f); + HuSprPosSet(var_r25, 1, -80.0f, 0.0f); + HuSprPosSet(var_r25, 2, 80.0f, 0.0f); + if (HuPadStkX[0] >= 5) { + var_r29++; + var_r26 = 1; + } + else if (HuPadStkX[0] <= -5) { + var_r29--; + var_r26 = -1; + } + } + else { + var_r23 = lbl_1_bss_26C[0]; + HuSprAttrSet(var_r23, 1, 4); + HuSprAttrSet(var_r23, 2, 4); + } + if (var_r29 < 1) { + var_r29 = var_r28; + } + else if (var_r29 > var_r28) { + if (var_r26 == 0) { + var_r29 = var_r28; + var_r24 = 1; + } + else { + var_r29 = 1; + } + } + if ((var_r26 != 0) || (var_r24 != 0)) { + lbl_1_bss_20C.unk_28 = 1; + HuAudFXPlay(0); + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + if (var_r31 <= 5) { + var_f31 = fn_1_10E38(0.0f, 10.0f, var_r31, 5.0f); + var_f30 = fn_1_10E38(1.0f, 0.0f, var_r31, 5.0f); + } + else { + var_f31 = fn_1_10E38(10.0f, 0.0f, var_r31 - 5, 5.0f); + var_f30 = fn_1_10E38(0.0f, 1.0f, var_r31 - 5, 5.0f); + } + if (var_r26 == 1) { + HuSprPosSet(var_r27, 2, 3.0f + (77.0f + var_f31), 0.0f); + } + else if (var_r26 == -1) { + HuSprPosSet(var_r27, 1, (-77.0f - var_f31) - 3.0f, 0.0f); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if ((var_r30 < var_r29) && (lbl_1_bss_8C[var_r30].unk_50 == 1)) { + lbl_1_bss_8C[var_r30].unk_14 = 0; + HuSprScaleSet(var_r27, var_r30 + 3, var_f30, 1.0f); + if (var_r31 == 5) { + HuSprBankSet(var_r27, var_r30 + 3, 0); + } + } + else if ((var_r30 >= var_r29) && (lbl_1_bss_8C[var_r30].unk_50 == 0)) { + lbl_1_bss_8C[var_r30].unk_14 = 1; + HuSprScaleSet(var_r27, var_r30 + 3, var_f30, 1.0f); + if (var_r31 == 5) { + HuSprBankSet(var_r27, var_r30 + 3, 1); + } + } + } + fn_1_10FBC(1); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r30 < var_r29) { + lbl_1_bss_8C[var_r30].unk_50 = 0; + } + else { + lbl_1_bss_8C[var_r30].unk_50 = 1; + } + } + } + lbl_1_bss_20C.unk_28 = 0; +} + +void fn_1_BA40(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + AnimData *var_r27; + + var_r29 = HuSprGrpCreate(0x36); + lbl_1_bss_26C[1] = var_r29; + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x4A)), 0xBB8, 0); + HuSprGrpMemberSet(var_r29, 0, var_r30); + HuSprPosSet(var_r29, 0, 0.0f, 0.0f); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x4B)), 0xBB8, 0); + HuSprGrpMemberSet(var_r29, 1, var_r30); + HuSprPosSet(var_r29, 1, 0.0f, 0.0f); + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x5A)); + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + var_r30 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MPEX, 0x4C)), 0x76C, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 2, var_r30); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MPEX, 0x5B)), 0x384, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x1E, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MPEX, 0x60)), 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x22, var_r30); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x5F)); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x64)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x384, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x26, var_r30); + var_r30 = HuSprCreate(var_r27, 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x2A, var_r30); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x65)); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x66)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x384, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x2E, var_r30); + var_r30 = HuSprCreate(var_r27, 0x320, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x32, var_r30); + } + fn_1_BD7C(0); + fn_1_BFF0(0); +} + +void fn_1_BD7C(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 < 0x36; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (arg0 != 3) { + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_4D4[var_r31][0], lbl_1_data_4D4[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + else { + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 2.0f, 0.0f); + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_514[var_r31][0], lbl_1_data_514[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + HuSprGrpPosSet(var_r30, 288.0f, -331.0f); +} + +void fn_1_BFF0(s32 arg0) +{ + s32 var_r31; + s32 var_r30 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 < 0x36; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprGrpPosSet(var_r30, 288.0f, -331.0f); +} +void fn_1_C06C(s32 arg0, s32 arg1) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_26C[1]; + var_r30 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 < 0x36; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (arg0 != 3) { + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_4D4[var_r31][0], lbl_1_data_4D4[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + else { + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 2.0f, 0.0f); + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_514[var_r31][0], lbl_1_data_514[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + HuSprGrpPosSet(var_r30, 288.0f, -331.0f); + if (arg1 == 1) { + fn_1_11960(); + } + if (arg1 == 2) { + fn_1_11C64(); + } + if (arg1 == 3) { + fn_1_11F68(); + } + for (var_r29 = 0; var_r29 <= 0x3C; var_r29++) { + fn_1_10FBC(1); + if (var_r29 <= 0x32) { + var_f31 = fn_1_10E38(-500.0f, 10.0f, var_r29, 50.0f); + } + else { + var_f31 = fn_1_10D60(10.0f, 0.0f, var_r29 - 0x32, 10.0f); + } + if (lbl_1_bss_74 != 0) { + HuSprGrpPosSet(var_r28, 288.0f, 20.0f + (169.0f + var_f31)); + } + else { + HuSprGrpPosSet(var_r28, 288.0f, 169.0f + var_f31); + } + } + if (lbl_1_bss_74 != 0) { + HuSprGrpPosSet(var_r28, 288.0f, 189.0f); + return; + } + HuSprGrpPosSet(var_r28, 288.0f, 169.0f); +} + +void fn_1_C4B8(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_26C[1]; + var_r30 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 < 0x36; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (arg0 != 3) { + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_4D4[var_r31][0], lbl_1_data_4D4[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + else { + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 2.0f, 0.0f); + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_514[var_r31][0], lbl_1_data_514[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + HuSprGrpPosSet(var_r30, 288.0f, -331.0f); + for (var_r29 = 0; var_r29 <= 0x3C; var_r29++) { + fn_1_10FBC(1); + if (var_r29 <= 0x32) { + var_f31 = fn_1_10E38(-500.0f, 10.0f, var_r29, 50.0f); + } + else { + var_f31 = fn_1_10D60(10.0f, 0.0f, var_r29 - 0x32, 10.0f); + } + if (lbl_1_bss_74 != 0) { + HuSprGrpPosSet(var_r28, 288.0f, 20.0f + (169.0f + var_f31)); + } + else { + HuSprGrpPosSet(var_r28, 288.0f, 169.0f + var_f31); + } + } + if (lbl_1_bss_74 != 0) { + HuSprGrpPosSet(var_r28, 288.0f, 189.0f); + return; + } + HuSprGrpPosSet(var_r28, 288.0f, 169.0f); +} + +void fn_1_C8EC(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r29 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_10FBC(1); + if (var_r31 <= 0xA) { + var_f31 = fn_1_10E38(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_10D60(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + if (lbl_1_bss_74 != 0) { + HuSprGrpPosSet(var_r29, 288.0f, 20.0f + (169.0f + var_f31)); + } + else { + HuSprGrpPosSet(var_r29, 288.0f, 169.0f + var_f31); + } + } + HuSprGrpPosSet(var_r29, 288.0f, -331.0f); + var_r28 = lbl_1_bss_26C[1]; + for (var_r30 = 0; var_r30 < 0x36; var_r30++) { + HuSprAttrSet(var_r28, var_r30, 4); + } + HuSprGrpPosSet(var_r28, 288.0f, -331.0f); +} + +void fn_1_CAF0(void) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 0x1E, 0); + HuSprBankSet(var_r30, var_r31 + 0x22, 0); + HuSprBankSet(var_r30, var_r31 + 0x26, 0); + HuSprBankSet(var_r30, var_r31 + 0x2A, 0); + HuSprBankSet(var_r30, var_r31 + 0x2E, 0); + HuSprBankSet(var_r30, var_r31 + 0x32, 0); + } + if (lbl_1_bss_74 != 0) { + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + else { + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + fn_1_10FBC(1); + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (lbl_1_bss_74 != 0) { + var_f31 = fn_1_10E38(lbl_1_data_584[lbl_1_bss_8C[var_r29].unk_5C][0], lbl_1_data_584[var_r29 + 1][0], var_r31, 10.0f); + var_f30 = fn_1_10E38(lbl_1_data_584[lbl_1_bss_8C[var_r29].unk_5C][1], lbl_1_data_584[1][1], var_r31, 10.0f); + } + else { + var_f31 = fn_1_10E38(lbl_1_data_4D4[lbl_1_bss_8C[var_r29].unk_5C % 4][0], lbl_1_data_4D4[var_r29][0], var_r31, 10.0f); + var_f30 = fn_1_10E38(lbl_1_data_4D4[(lbl_1_bss_8C[var_r29].unk_5C / 4) * 4][1], lbl_1_data_4D4[0][1], var_r31, 10.0f); + } + HuSprPosSet(var_r30, var_r29 + 0x1E, var_f31, var_f30); + HuSprPosSet(var_r30, var_r29 + 0x22, var_f31, var_f30); + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_74 != 0) { + HuSprPosSet(var_r30, var_r31 + 0x1E, *lbl_1_data_584[var_r31 + 1], lbl_1_data_584[var_r31 + 1][1]); + HuSprPosSet(var_r30, var_r31 + 0x22, *lbl_1_data_584[var_r31 + 1], lbl_1_data_584[var_r31 + 1][1]); + lbl_1_bss_8C[var_r31].unk_5C = var_r31 + 1; + lbl_1_bss_8C[var_r31].unk_48 = var_r31; + lbl_1_bss_8C[var_r31].unk_08 = 0; + } + else { + HuSprPosSet(var_r30, var_r31 + 0x1E, lbl_1_data_4D4[var_r31][0], lbl_1_data_4D4[var_r31][1]); + HuSprPosSet(var_r30, var_r31 + 0x22, lbl_1_data_4D4[var_r31][0], lbl_1_data_4D4[var_r31][1]); + lbl_1_bss_8C[var_r31].unk_48 = var_r31; + lbl_1_bss_8C[var_r31].unk_5C = var_r31; + lbl_1_bss_8C[var_r31].unk_08 = 0; + } + } +} + +void fn_1_D280(omObjData *arg0, ZtarDllUnkStruct2 *arg1) +{ + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + + var_r24 = lbl_1_bss_26C[1]; + var_r27 = 0; + var_r26 = 0; + HuSprAttrReset(var_r24, arg1->unk_48 + 0x1E, 4); + HuSprAttrReset(var_r24, arg1->unk_48 + 0x22, 4); + if (lbl_1_bss_74 != 0) { + var_r30 = arg1->unk_5C % 6; + var_r23 = var_r30; + var_r29 = arg1->unk_5C / 6; + var_r22 = var_r29; + } + else { + var_r30 = arg1->unk_5C % 4; + var_r23 = var_r30; + var_r29 = arg1->unk_5C / 4; + var_r22 = var_r29; + } + if (arg1->unk_08 == 0) { + if (HuPadBtnDown[arg1->unk_48] & PAD_BUTTON_A) { + arg1->unk_08 = 1; + if (lbl_1_bss_74 != 0) { + var_r21 = 0; + if (arg1->unk_5C <= 5) { + var_r21 = arg1->unk_5C - 1; + } + else if (arg1->unk_5C <= 0xB) { + var_r21 = arg1->unk_5C - 3; + } + else { + var_r21 = arg1->unk_5C - 4; + } + fn_1_122A8(var_r21); + HuSprBankSet(var_r24, var_r21 + 2, 1); + } + else { + fn_1_122A8(arg1->unk_5C); + HuSprBankSet(var_r24, arg1->unk_5C + 2, 1); + } + HuSprBankSet(var_r24, arg1->unk_48 + 0x1E, 1); + HuSprBankSet(var_r24, arg1->unk_48 + 0x22, 1); + } + else if (lbl_1_bss_74 != 0) { + if (HuPadStkX[arg1->unk_48] >= 5) { + var_r30++; + var_r27 = 1; + if (var_r30 > 5) { + var_r30 = 5; + } + } + else if (HuPadStkX[arg1->unk_48] <= -5) { + var_r30--; + var_r27 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (HuPadStkY[arg1->unk_48] <= -5) { + var_r29++; + var_r26 = 1; + if (var_r29 > 2) { + var_r29 = 2; + } + } + else if (HuPadStkY[arg1->unk_48] >= 5) { + var_r29--; + var_r26 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + else { + if (HuPadStkX[arg1->unk_48] >= 5) { + var_r30++; + var_r27 = 1; + if (var_r30 > 3) { + var_r30 = 3; + } + } + else if (HuPadStkX[arg1->unk_48] <= -5) { + var_r30--; + var_r27 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (HuPadStkY[arg1->unk_48] <= -5) { + var_r29++; + var_r26 = 1; + if (var_r29 > 1) { + var_r29 = 1; + } + } + else if (HuPadStkY[arg1->unk_48] >= 5) { + var_r29--; + var_r26 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + } + else if ((HuPadBtnDown[arg1->unk_48] & PAD_BUTTON_B) != 0) { + arg1->unk_08 = 0; + lbl_1_bss_20C.unk_10 = 1; + HuAudFXPlay(3); + if (lbl_1_bss_74 != 0) { + var_r20 = 0; + if (arg1->unk_5C <= 5) { + var_r20 = arg1->unk_5C - 1; + } + else if (arg1->unk_5C <= 0xB) { + var_r20 = arg1->unk_5C - 3; + } + else { + var_r20 = arg1->unk_5C - 4; + } + HuSprBankSet(var_r24, var_r20 + 2, 0); + } + else { + HuSprBankSet(var_r24, arg1->unk_5C + 2, 0); + } + HuSprBankSet(var_r24, arg1->unk_48 + 0x1E, 0); + HuSprBankSet(var_r24, arg1->unk_48 + 0x22, 0); + } + if (lbl_1_bss_74 != 0) { + var_r25 = var_r30 + (var_r29 * 6); + } + else { + var_r25 = var_r30 + (var_r29 * 4); + } + if (arg1->unk_5C != var_r25) { + if (lbl_1_bss_74 != 0) { + loop_54: + var_r25 = var_r30 + (var_r29 * 6); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if (((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_50 == 0) && (var_r25 == lbl_1_bss_8C[var_r28].unk_5C)) || (var_r25 == 0) + || (var_r25 == 5) || (var_r25 == 6) || (var_r25 == 0xB)) { + if ((var_r27 == 0) || (var_r26 == 0)) { + if (((var_r30 + var_r27) > 5) || ((var_r30 + var_r27) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r27; + } + if (((var_r29 + var_r26) > 2) || ((var_r29 + var_r26) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r26; + } + } + else if (((var_r30 + var_r27) <= 5) && ((var_r30 + var_r27) >= 0)) { + var_r30 += var_r27; + } + else if (((var_r29 + var_r26) <= 2) && ((var_r29 + var_r26) >= 0)) { + var_r29 += var_r26; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + } + } + else { + } + } + if (var_r28 != 4) { + goto loop_54; + } + } + else { + do { + var_r25 = var_r30 + (var_r29 * 4); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if ((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_50 == 0) && (var_r25 == lbl_1_bss_8C[var_r28].unk_5C)) { + if ((var_r27 == 0) || (var_r26 == 0)) { + if (((var_r30 + var_r27) > 3) || ((var_r30 + var_r27) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r27; + } + if (((var_r29 + var_r26) > 1) || ((var_r29 + var_r26) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r26; + break; + } + } + else if (((var_r30 + var_r27) <= 3) && ((var_r30 + var_r27) >= 0)) { + var_r30 += var_r27; + break; + } + else if (((var_r29 + var_r26) <= 1) && ((var_r29 + var_r26) >= 0)) { + var_r29 += var_r26; + break; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + break; + } + } + else { + break; + } + } + } while (var_r28 != 4); + } + if (lbl_1_bss_74 != 0) { + var_r25 = var_r30 + (var_r29 * 6); + } + else { + var_r25 = var_r30 + (var_r29 * 4); + } + if (arg1->unk_5C != var_r25) { + HuAudFXPlay(0); + var_r19 = arg1->unk_5C; + arg1->unk_5C = var_r25; + if (lbl_1_bss_74 != 0) { + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_10FBC(1); + var_f31 = fn_1_10E38(lbl_1_data_584[var_r19][0], lbl_1_data_584[var_r25][0], var_r28, 10.0f); + var_f30 = fn_1_10E38(lbl_1_data_584[var_r19][1], lbl_1_data_584[var_r25][1], var_r28, 10.0f); + HuSprPosSet(var_r24, arg1->unk_48 + 0x1E, var_f31, var_f30); + HuSprPosSet(var_r24, arg1->unk_48 + 0x22, var_f31, var_f30); + } + return; + } + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_10FBC(1); + var_f31 = fn_1_10E38(*lbl_1_data_4D4[var_r23], *lbl_1_data_4D4[var_r30], var_r28, 10.0f); + var_f30 = fn_1_10E38(lbl_1_data_4D4[var_r22 * 4][1], lbl_1_data_4D4[var_r29 * 4][1], var_r28, 10.0f); + HuSprPosSet(var_r24, arg1->unk_48 + 0x1E, var_f31, var_f30); + HuSprPosSet(var_r24, arg1->unk_48 + 0x22, var_f31, var_f30); + } + } + } +} + +void fn_1_DD8C(ZtarDllUnkStruct2 *arg0) +{ + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r30 = lbl_1_bss_26C[1]; + do { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if ((var_r29 != arg0->unk_48) && (lbl_1_bss_8C[var_r29].unk_08 == 1) && (arg0->unk_5C == lbl_1_bss_8C[var_r29].unk_5C)) { + arg0->unk_5C += 1; + break; + } + } + } while (var_r29 != 4); + arg0->unk_54 = 0; + if (lbl_1_bss_74 != 0) { + var_r28 = 0; + if (arg0->unk_5C <= 5) { + var_r28 = arg0->unk_5C - 1; + } + else if (arg0->unk_5C <= 0xB) { + var_r28 = arg0->unk_5C - 3; + } + else { + var_r28 = arg0->unk_5C - 4; + } + HuSprBankSet(var_r30, var_r28 + 2, 0); + } + else { + HuSprBankSet(var_r30, arg0->unk_5C + 2, 0); + } + HuSprBankSet(var_r30, arg0->unk_48 + 0x26, 0); + HuSprBankSet(var_r30, arg0->unk_48 + 0x2A, 0); + HuSprBankSet(var_r30, arg0->unk_48 + 0x2E, arg0->unk_54); + HuSprBankSet(var_r30, arg0->unk_48 + 0x32, arg0->unk_54); + if (lbl_1_bss_74 != 0) { + HuSprPosSet(var_r30, arg0->unk_48 + 0x26, *lbl_1_data_584[arg0->unk_5C], lbl_1_data_584[arg0->unk_5C][1]); + HuSprPosSet(var_r30, arg0->unk_48 + 0x2A, *lbl_1_data_584[arg0->unk_5C], lbl_1_data_584[arg0->unk_5C][1]); + HuSprPosSet(var_r30, arg0->unk_48 + 0x2E, *lbl_1_data_584[arg0->unk_5C], lbl_1_data_584[arg0->unk_5C][1] + 0x23); + HuSprPosSet(var_r30, arg0->unk_48 + 0x32, *lbl_1_data_584[arg0->unk_5C], lbl_1_data_584[arg0->unk_5C][1] + 0x23); + } + else { + HuSprPosSet(var_r30, arg0->unk_48 + 0x26, *lbl_1_data_4D4[arg0->unk_5C % 4], lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1]); + HuSprPosSet(var_r30, arg0->unk_48 + 0x2A, *lbl_1_data_4D4[arg0->unk_5C % 4], lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1]); + HuSprPosSet(var_r30, arg0->unk_48 + 0x2E, *lbl_1_data_4D4[arg0->unk_5C % 4], lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 0x23); + HuSprPosSet(var_r30, arg0->unk_48 + 0x32, *lbl_1_data_4D4[arg0->unk_5C % 4], lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 0x23); + } + arg0->unk_10 = 0; + HuSprAttrReset(var_r30, arg0->unk_48 + 0x26, 4); + HuSprAttrReset(var_r30, arg0->unk_48 + 0x2A, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x2E, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x32, 4); +} + +void fn_1_E4AC(ZtarDllUnkStruct2 *arg0) +{ + s32 var_r30 = lbl_1_bss_26C[1]; + HuSprAttrSet(var_r30, arg0->unk_48 + 0x26, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x2A, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x2E, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x32, 4); +} + +void fn_1_E548(omObjData *arg0, ZtarDllUnkStruct2 *arg1) +{ + s32 sp8; + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + u32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + + var_r27 = lbl_1_bss_26C[1]; + var_r26 = 0; + var_r25 = 0; + sp8 = arg1->unk_54; + lbl_1_bss_20C.unk_30 = 0; + if (lbl_1_bss_74 != 0) { + var_r30 = arg1->unk_5C % 6; + var_r23 = var_r30; + var_r29 = arg1->unk_5C / 6; + var_r22 = var_r29; + } + else { + var_r30 = arg1->unk_5C % 4; + var_r23 = var_r30; + var_r29 = arg1->unk_5C / 4; + var_r22 = var_r29; + } + if (arg1->unk_08 == 0) { + if (HuPadBtnDown[lbl_1_bss_8C->unk_58] & PAD_BUTTON_A) { + arg1->unk_08 = 1; + HuSprBankSet(var_r27, arg1->unk_48 + 0x26, 1); + HuSprBankSet(var_r27, arg1->unk_48 + 0x2A, 1); + if (lbl_1_bss_74 != 0) { + var_r21 = 0; + if (arg1->unk_5C <= 5) { + var_r21 = arg1->unk_5C - 1; + } + else if (arg1->unk_5C <= 0xB) { + var_r21 = arg1->unk_5C - 3; + } + else { + var_r21 = arg1->unk_5C - 4; + } + HuSprBankSet(var_r27, var_r21 + 2, 1); + fn_1_122A8(var_r21); + } + else { + HuSprBankSet(var_r27, arg1->unk_5C + 2, 1); + fn_1_122A8(arg1->unk_5C); + } + arg1->unk_54 = 0; + HuSprBankSet(var_r27, arg1->unk_48 + 0x2E, arg1->unk_54); + if (lbl_1_bss_74 != 0) { + HuSprPosSet(var_r27, arg1->unk_48 + 0x2E, lbl_1_data_584[arg1->unk_5C][0], lbl_1_data_584[arg1->unk_5C][1] + 0x23); + } + else { + HuSprPosSet(var_r27, arg1->unk_48 + 0x2E, lbl_1_data_4D4[arg1->unk_5C % 4][0], lbl_1_data_4D4[(arg1->unk_5C / 4) * 4][1] + 0x23); + } + HuSprAttrReset(var_r27, arg1->unk_48 + 0x2E, 4); + } + else if (lbl_1_bss_74 != 0) { + if (HuPadStkX[0] >= 5) { + var_r30++; + var_r26 = 1; + if (var_r30 > 5) { + var_r30 = 5; + } + } + else if (HuPadStkX[0] <= -5) { + var_r30--; + var_r26 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (*HuPadStkY <= -5) { + var_r29++; + var_r25 = 1; + if (var_r29 > 2) { + var_r29 = 2; + } + } + else if (*HuPadStkY >= 5) { + var_r29--; + var_r25 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + else { + if (HuPadStkX[0] >= 5) { + var_r30++; + var_r26 = 1; + if (var_r30 > 3) { + var_r30 = 3; + } + } + else if (HuPadStkX[0] <= -5) { + var_r30--; + var_r26 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (*HuPadStkY <= -5) { + var_r29++; + var_r25 = 1; + if (var_r29 > 1) { + var_r29 = 1; + } + } + else if (*HuPadStkY >= 5) { + var_r29--; + var_r25 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + } + else if (HuPadBtnDown[lbl_1_bss_8C->unk_58] & PAD_BUTTON_B) { + arg1->unk_08 = arg1->unk_10 = 0; + if (lbl_1_bss_74 != 0) { + var_r20 = 0; + if (arg1->unk_5C <= 5) { + var_r20 = arg1->unk_5C - 1; + } + else if (arg1->unk_5C <= 0xB) { + var_r20 = arg1->unk_5C - 3; + } + else { + var_r20 = arg1->unk_5C - 4; + } + HuSprBankSet(var_r27, var_r20 + 2, 0); + } + else { + HuSprBankSet(var_r27, arg1->unk_5C + 2, 0); + } + HuSprBankSet(var_r27, arg1->unk_48 + 0x26, 0); + HuSprBankSet(var_r27, arg1->unk_48 + 0x2A, 0); + HuSprAttrSet(var_r27, arg1->unk_48 + 0x2E, 4); + HuAudFXPlay(3); + } + if (lbl_1_bss_74 != 0) { + var_r24 = var_r30 + (var_r29 * 6); + } + else { + var_r24 = var_r30 + (var_r29 * 4); + } + if (arg1->unk_5C != var_r24) { + if (lbl_1_bss_74 != 0) { + do { + fn_1_10FBC(1); + var_r24 = var_r30 + (var_r29 * 6); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if (((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_08 == 1) && (var_r24 == lbl_1_bss_8C[var_r28].unk_5C)) + || (var_r24 == 0) || (var_r24 == 5) || (var_r24 == 6) || (var_r24 == 0xB)) { + if ((var_r26 == 0) || (var_r25 == 0)) { + if (((var_r30 + var_r26) > 5) || ((var_r30 + var_r26) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r26; + } + if (((var_r29 + var_r25) > 2) || ((var_r29 + var_r25) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r25; + } + } + else if (((var_r30 + var_r26) <= 5) && ((var_r30 + var_r26) >= 0)) { + var_r30 += var_r26; + } + else if (((var_r29 + var_r25) <= 2) && ((var_r29 + var_r25) >= 0)) { + var_r29 += var_r25; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + } + break; + } + } + } while (var_r28 != 4); + } + else { + do { + var_r24 = var_r30 + (var_r29 * 4); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if ((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_08 == 1) && (var_r24 == lbl_1_bss_8C[var_r28].unk_5C)) { + if ((var_r26 == 0) || (var_r25 == 0)) { + if (((var_r30 + var_r26) > 3) || ((var_r30 + var_r26) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r26; + } + if (((var_r29 + var_r25) > 1) || ((var_r29 + var_r25) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r25; + } + } + else if (((var_r30 + var_r26) <= 3) && ((var_r30 + var_r26) >= 0)) { + var_r30 += var_r26; + } + else if (((var_r29 + var_r25) <= 1) && ((var_r29 + var_r25) >= 0)) { + var_r29 += var_r25; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + } + break; + } + } + } while (var_r28 != 4); + } + if (lbl_1_bss_74 != 0) { + var_r24 = var_r30 + (var_r29 * 6); + } + else { + var_r24 = var_r30 + (var_r29 * 4); + } + if (arg1->unk_5C != var_r24) { + var_r19 = arg1->unk_5C; + arg1->unk_5C = var_r24; + HuAudFXPlay(0); + if (lbl_1_bss_74 != 0) { + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_10FBC(1); + var_f31 = fn_1_10E38(lbl_1_data_584[var_r19][0], lbl_1_data_584[var_r24][0], var_r28, 10.0f); + var_f30 = fn_1_10E38(lbl_1_data_584[var_r19][1], lbl_1_data_584[var_r24][1], var_r28, 10.0f); + HuSprPosSet(var_r27, arg1->unk_48 + 0x26, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_48 + 0x2A, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_48 + 0x2E, var_f31, 35.0f + var_f30); + } + } + else { + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_10FBC(1); + var_f31 = fn_1_10E38(lbl_1_data_4D4[var_r23][0], lbl_1_data_4D4[var_r30][0], var_r28, 10.0f); + var_f30 = fn_1_10E38(lbl_1_data_4D4[var_r22 * 4][1], lbl_1_data_4D4[var_r29 * 4][1], var_r28, 10.0f); + HuSprPosSet(var_r27, arg1->unk_48 + 0x26, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_48 + 0x2A, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_48 + 0x2E, var_f31, 35.0f + var_f30); + } + } + } + } + lbl_1_bss_20C.unk_30 = 0; +} + +s32 fn_1_F214(ZtarDllUnkStruct2 *arg0) +{ + float var_f31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r28 = 0; + var_r29 = lbl_1_bss_26C[1]; +loop_1: + fn_1_10FBC(1); + var_r28 = 0; + var_r26 = arg0->unk_54; + if (HuPadStkX[lbl_1_bss_8C->unk_58] >= 5) { + block_3: + if (((GWGameStat.story_continue >> 4) & 1) == 1) { + arg0->unk_54++; + var_r28 = 1; + if (arg0->unk_54 > 3) { + arg0->unk_54 = 0; + } + } + else { + arg0->unk_54++; + var_r28 = 1; + if (arg0->unk_54 > 2) { + arg0->unk_54 = 0; + } + } + block_19: + if (arg0->unk_54 != var_r26) { + HuAudFXPlay(0); + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_10FBC(1); + if (lbl_1_bss_74 != 0) { + var_f31 = fn_1_10E38(lbl_1_data_584[arg0->unk_5C][0], lbl_1_data_584[arg0->unk_5C][0] + (var_r28 * 0xA), var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_584[arg0->unk_5C][1] + 0x23); + } + else { + var_f31 = fn_1_10E38(lbl_1_data_4D4[arg0->unk_5C % 4][0], lbl_1_data_4D4[arg0->unk_5C % 4][0] + (var_r28 * 0xA), var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 0x23); + } + } + HuSprBankSet(var_r29, arg0->unk_48 + 0x2E, arg0->unk_54); + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_10FBC(1); + if (lbl_1_bss_74 != 0) { + var_f31 = fn_1_10E38(lbl_1_data_584[arg0->unk_5C][0] + (var_r28 * 0xA), lbl_1_data_584[arg0->unk_5C][0], var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_584[arg0->unk_5C][1] + 0x23); + } + else { + var_f31 = fn_1_10E38(lbl_1_data_4D4[arg0->unk_5C % 4][0] + (var_r28 * 0xA), lbl_1_data_4D4[arg0->unk_5C % 4][0], var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 0x23); + } + } + } + goto loop_1; + } + if (HuPadBtn[lbl_1_bss_8C->unk_58] & PAD_BUTTON_RIGHT) { + goto block_3; + } + if (HuPadStkX[lbl_1_bss_8C->unk_58] <= -5) { + block_10: + if (((GWGameStat.story_continue >> 4) & 1) == 1) { + arg0->unk_54--; + var_r28 = -1; + if (arg0->unk_54 < 0) { + arg0->unk_54 = 3; + } + } + else { + arg0->unk_54--; + var_r28 = -1; + if (arg0->unk_54 < 0) { + arg0->unk_54 = 2; + } + } + goto block_19; + } + if (HuPadBtn[lbl_1_bss_8C->unk_58] & PAD_BUTTON_LEFT) { + goto block_10; + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + var_r27 = 1; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + var_r27 = 0; + HuAudFXPlay(3); + } + else { + goto block_19; + } + if (var_r27 == 1) { + if (lbl_1_bss_74 != 0) { + HuSprPosSet(var_r29, arg0->unk_48 + 0x32, lbl_1_data_584[arg0->unk_5C][0], lbl_1_data_584[arg0->unk_5C][1] + 0x23); + } + else { + HuSprPosSet(var_r29, arg0->unk_48 + 0x32, lbl_1_data_4D4[arg0->unk_5C % 4][0], lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 0x23); + } + HuSprBankSet(var_r29, arg0->unk_48 + 0x32, arg0->unk_54); + HuSprAttrReset(var_r29, arg0->unk_48 + 0x32, 4); + HuSprAttrSet(var_r29, arg0->unk_48 + 0x2E, 4); + } + return var_r27; +} + +void fn_1_FB38(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + AnimData *var_r27; + + var_r29 = HuSprGrpCreate(0x1B); + lbl_1_bss_26C[2] = var_r29; + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x67)), 0x64, 0); + HuSprGrpMemberSet(var_r29, 0, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x68)), 0x64, 0); + HuSprGrpMemberSet(var_r29, 1, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x69)), 0x64, 0); + HuSprGrpMemberSet(var_r29, 2, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x6A)), 0x64, 0); + HuSprGrpMemberSet(var_r29, 3, var_r31); + for (var_r30 = 0; var_r30 < 0xE; var_r30++) { + var_r31 = HuSprCreate(HuSprAnimReadFile(var_r30 + DATA_MAKE_NUM(DATADIR_MPEX, 0x6B)), 0x5A, 0); + HuSprGrpMemberSet(var_r29, var_r30 + 4, var_r31); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x79)); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x7A)); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r31 = HuSprCreate(var_r28, 0x50, 0); + HuSprGrpMemberSet(var_r29, var_r30 + 0x12, var_r31); + var_r31 = HuSprCreate(var_r27, 0x50, 0); + HuSprGrpMemberSet(var_r29, var_r30 + 0x16, var_r31); + } + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x7B)), 0x46, 0); + HuSprGrpMemberSet(var_r29, 0x1A, var_r31); + fn_1_FD90(0); + fn_1_106E8(0); +} + +void fn_1_FD90(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s16 var_r28; + s16 var_r27; + s16 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + + var_r30 = lbl_1_bss_26C[2]; + for (var_r31 = 0; var_r31 < 0x1B; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + switch (arg0) { + case 0: + HuSprAttrReset(var_r30, 2, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r28 = GWPlayerCfg[var_r31].character; + var_r25 = GWPlayerCfg[var_r31].diff; + HuSprAttrReset(var_r30, var_r28 + 4, 4); + HuSprPosSet(var_r30, var_r28 + 4, lbl_1_data_614[var_r31][0], lbl_1_data_614[var_r31][1]); + if (GWPlayerCfg[var_r31].iscom != 0) { + HuSprAttrReset(var_r30, var_r31 + 0x16, 4); + HuSprBankSet(var_r30, var_r31 + 0x16, var_r25); + HuSprPosSet(var_r30, var_r31 + 0x16, lbl_1_data_614[var_r31][0], lbl_1_data_614[var_r31][1] + 0x14); + } + else { + HuSprAttrReset(var_r30, var_r31 + 0x12, 4); + HuSprBankSet(var_r30, var_r31 + 0x12, var_r31); + HuSprPosSet(var_r30, var_r31 + 0x12, lbl_1_data_614[var_r31][0], lbl_1_data_614[var_r31][1] + 0x14); + } + } + break; + case 1: + HuSprAttrReset(var_r30, 0, 4); + var_r27 = GWPlayerCfg->character; + var_r24 = GWPlayerCfg->diff; + HuSprAttrReset(var_r30, var_r27 + 4, 4); + HuSprPosSet(var_r30, var_r27 + 4, 0.0f, lbl_1_data_634[1]); + if (GWPlayerCfg->iscom != 0) { + HuSprAttrReset(var_r30, 0x16, 4); + HuSprBankSet(var_r30, 0x16, var_r24); + HuSprPosSet(var_r30, var_r31 + 0x16, 0.0f, lbl_1_data_634[1] + 0x14); + } + else { + HuSprAttrReset(var_r30, 0x12, 4); + HuSprBankSet(var_r30, 0x12, 0); + HuSprPosSet(var_r30, 0x12, 0.0f, lbl_1_data_634[1] + 0x14); + } + break; + case 2: + HuSprAttrReset(var_r30, 1, 4); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r26 = GWPlayerCfg[var_r31].character; + var_r23 = GWPlayerCfg[var_r31].diff; + HuSprAttrReset(var_r30, var_r26 + 4, 4); + HuSprPosSet(var_r30, var_r26 + 4, lbl_1_data_63C[var_r31][0], lbl_1_data_63C[var_r31][1]); + if (GWPlayerCfg[var_r31].iscom != 0) { + HuSprAttrReset(var_r30, var_r31 + 0x16, 4); + HuSprBankSet(var_r30, var_r31 + 0x16, var_r23); + HuSprPosSet(var_r30, var_r31 + 0x16, lbl_1_data_63C[var_r31][0], lbl_1_data_63C[var_r31][1] + 0x19); + } + else { + HuSprAttrReset(var_r30, var_r31 + 0x12, 4); + HuSprBankSet(var_r30, var_r31 + 0x12, var_r31); + HuSprPosSet(var_r30, var_r31 + 0x12, lbl_1_data_63C[var_r31][0], lbl_1_data_63C[var_r31][1] + 0x19); + } + } + break; + case 3: + HuSprAttrReset(var_r30, 1, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = GWPlayerCfg[var_r31].character; + var_r22 = GWPlayerCfg[var_r31].diff; + var_r29 = fn_1_10C18(var_r29); + HuSprAttrReset(var_r30, var_r29 + 4, 4); + HuSprPosSet(var_r30, var_r29 + 4, lbl_1_data_64C[var_r31][0], lbl_1_data_64C[var_r31][1]); + if (GWPlayerCfg[var_r31].iscom != 0) { + HuSprAttrReset(var_r30, var_r31 + 0x16, 4); + HuSprBankSet(var_r30, var_r31 + 0x16, var_r22); + HuSprPosSet(var_r30, var_r31 + 0x16, lbl_1_data_64C[var_r31][0], lbl_1_data_64C[var_r31][1] + 0x19); + } + else { + HuSprAttrReset(var_r30, var_r31 + 0x12, 4); + HuSprBankSet(var_r30, var_r31 + 0x12, var_r31); + HuSprPosSet(var_r30, var_r31 + 0x12, lbl_1_data_64C[var_r31][0], lbl_1_data_64C[var_r31][1] + 0x19); + } + } + HuSprAttrReset(var_r30, 0x1A, 4); + break; + } + HuSprGrpPosSet(var_r30, 112.0f, -428.0f); +} + +void fn_1_106E8(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_26C[2]; + for (var_r31 = 0; var_r31 < 0x1B; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprGrpPosSet(var_r30, 112.0f, -428.0f); +} + +void fn_1_10764(s32 arg0) +{ + float var_f31; + s32 var_r30; + s32 var_r31; + + var_r30 = lbl_1_bss_26C[2]; + fn_1_FD90(arg0); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_10FBC(1); + if (var_r31 <= 0x32) { + var_f31 = fn_1_10E38(-500.0f, 10.0f, var_r31, 50.0f); + } + else { + var_f31 = fn_1_10D60(10.0f, 0.0f, var_r31 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r30, 112.0f, 72.0f + var_f31); + } + HuSprGrpPosSet(var_r30, 112.0f, 72.0f); +} + +void fn_1_108C8(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r29 = lbl_1_bss_26C[2]; + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_10FBC(1); + if (var_r31 <= 0xA) { + var_f31 = fn_1_10E38(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_10D60(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(var_r29, 112.0f, 72.0f + var_f31); + } + HuSprGrpPosSet(var_r29, 112.0f, -428.0f); + var_r28 = lbl_1_bss_26C[2]; + for (var_r30 = 0; var_r30 < 0x1B; var_r30++) { + HuSprAttrSet(var_r28, var_r30, 4); + } + HuSprGrpPosSet(var_r28, 112.0f, -428.0f); +} + +void fn_1_10A80(void) +{ + omObjData *var_r31; + + var_r31 = NULL; + var_r31 = omAddObjEx(lbl_1_bss_70, 0x1000, 8, 8, -1, NULL); + lbl_1_bss_20C.unk_00 = var_r31; + lbl_1_bss_20C.unk_04 = NULL; + while (TRUE) { + HuPrcVSleep(); + if (lbl_1_bss_20C.unk_04 != NULL) { + lbl_1_bss_20C.unk_04(lbl_1_bss_20C.unk_00, &lbl_1_bss_20C); + } + } +} + +void fn_1_10B24(void) +{ + s32 var_r31; + omObjData *var_r30; + + var_r31 = lbl_1_bss_78[0]; + lbl_1_bss_78[0] = var_r31 + 1; + var_r30 = NULL; + var_r30 = omAddObjEx(lbl_1_bss_70, 0x1000, 8, 8, -1, NULL); + lbl_1_bss_8C[var_r31].unk_00 = var_r30; + lbl_1_bss_8C[var_r31].unk_04 = NULL; + + while (TRUE) { + HuPrcVSleep(); + if (lbl_1_bss_8C[var_r31].unk_04 != NULL) { + lbl_1_bss_8C[var_r31].unk_04(lbl_1_bss_8C[var_r31].unk_00, &lbl_1_bss_8C[var_r31]); + } + } +} + +s32 fn_1_10C18(s32 arg0) +{ + s32 var_r31; + + switch (arg0) { + case 9: + var_r31 = 8; + break; + case 10: + var_r31 = 9; + break; + case 11: + var_r31 = 0xA; + break; + case 12: + var_r31 = 0xB; + break; + case 13: + var_r31 = 0xC; + break; + case 8: + var_r31 = 0xD; + break; + default: + var_r31 = -1; + break; + } + return var_r31; +} + +s32 fn_1_10C98(s32 arg0) +{ + s32 var_r31; + + switch (arg0) { + case 8: + var_r31 = 9; + break; + case 9: + var_r31 = 0xA; + break; + case 10: + var_r31 = 0xB; + break; + case 11: + var_r31 = 0xC; + break; + case 12: + var_r31 = 0xD; + break; + case 13: + var_r31 = 8; + break; + default: + var_r31 = -1; + break; + } + return var_r31; +} + +float fn_1_10D18(float arg8, float arg9, float argA, float argB) +{ + if (argB <= argA) { + return arg9; + } + return arg8 + ((argA / argB) * (arg9 - arg8)); +} + +float fn_1_10D40(float arg8, float arg9, float argA) +{ + return (arg9 + (arg8 * (argA - 1.0f))) / argA; +} + +float fn_1_10D60(float arg8, float arg9, float argA, float argB) +{ + if (argA >= argB) { + return arg9; + } + return arg8 + ((arg9 - arg8) * (1.0 - cosd(((90.0f / argB) * argA)))); +} + +float fn_1_10E38(float arg8, float arg9, float argA, float argB) +{ + if (argA >= argB) { + return arg9; + } + return arg8 + ((arg9 - arg8) * sind(((90.0f / argB) * argA))); +} + +float fn_1_10F00(float arg8, float arg9, float argA, float argB) +{ + if (argA >= argB) { + return arg8; + } + return arg8 + ((arg9 - arg8) * sind(((360.0f / argB) * argA))); +} + +void fn_1_10FBC(s32 arg0) +{ + if (arg0 <= 1) { + HuPrcVSleep(); + return; + } + HuPrcSleep(arg0); +} + +void fn_1_10FFC(void) +{ + HuWinInit(1); +} + +void fn_1_11020(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + if (lbl_1_data_66C == -1) { + var_r31 = 0x1C9; + var_r30 = 0x44; + var_r29 = 1.0f + ((576.0f - var_r31) / 2.0f); + var_r28 = 445.0f - var_r30; + lbl_1_data_66C = HuWinExCreateStyled(var_r29, var_r28, var_r31, var_r30, -1, 1); + winData[lbl_1_data_66C].active_pad = 1; + HuWinMesPalSet(lbl_1_data_66C, 7, 0, 0, 0); + HuWinExAnimIn(lbl_1_data_66C); + } +} + +void fn_1_111E0(void) +{ + if (lbl_1_data_66C != -1) { + HuWinMesSet(lbl_1_data_66C, 0x250004); + HuWinExAnimOut(lbl_1_data_66C); + HuWinExCleanup(lbl_1_data_66C); + lbl_1_data_66C = -1; + } +} + +void fn_1_11264(s32 arg0, s32 arg1, s32 arg2) +{ + if (lbl_1_data_66C != -1) { + if (arg2 == 1) { + HuWinMesSpeedSet(lbl_1_data_66C, 0); + } + else { + HuWinMesSpeedSet(lbl_1_data_66C, 1); + } + HuWinMesSet(lbl_1_data_66C, arg0); + if (arg1 <= 0) { + HuWinMesWait(lbl_1_data_66C); + return; + } + if (arg1 <= 1) { + HuPrcVSleep(); + return; + } + HuPrcSleep(arg1); + } +} + +void fn_1_11338(u32 arg0, s32 arg1) +{ + if (lbl_1_data_66C != -1) { + HuWinInsertMesSet(lbl_1_data_66C, arg0, arg1); + } +} + +s32 fn_1_11390(s32 arg0) +{ + float spC[2]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + HuWinMesMaxSizeGet(1, spC, 0x1E0035); + var_r30 = spC[0]; + var_r29 = spC[1]; + var_r27 = 0x22C - var_r30; + var_r26 = 0x1BD - var_r29; + var_r31 = HuWinExCreateStyled(var_r27, var_r26, var_r30, var_r29, -1, 1); + winData[var_r31].active_pad = 1; + HuWinMesPalSet(var_r31, 7, 0, 0, 0); + HuWinExAnimIn(var_r31); + HuWinMesSpeedSet(var_r31, 0); + HuWinMesSet(var_r31, 0x1E0035); + var_r28 = HuWinChoiceGet(var_r31, arg0); + HuWinMesSet(var_r31, 0x250004); + HuWinExAnimOut(var_r31); + HuWinExCleanup(var_r31); + + return var_r28; +} + +void fn_1_114EC(u32 arg0, s32 arg1) +{ + float spC[2]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + HuWinMesMaxSizeGet(1, spC, arg0); + var_r29 = spC[0]; + var_r31 = spC[1]; + var_r28 = (0x240 - var_r29) / 2.0f; + if (arg1 == 1) { + var_r30 = 0x1BD - var_r31; + } + else { + var_r30 = 0x181 - var_r31; + } + if (lbl_1_data_670 != -1) { + fn_1_1190C(); + lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r30, var_r29, var_r31, -1, 1); + } + else { + lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r30, var_r29, var_r31, -1, 1); + } + HuWinBGTPLvlSet(lbl_1_data_670, 0.0f); + HuWinDispOn(lbl_1_data_670); + HuWinMesSet(lbl_1_data_670, arg0); + HuWinMesSpeedSet(lbl_1_data_670, 0); +} + +void fn_1_11708(u32 arg0) +{ + float sp8[2]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + HuWinMesMaxSizeGet(1, sp8, arg0); + var_r30 = sp8[0]; + var_r31 = sp8[1]; + var_r28 = (0x240 - var_r30) / 2.0f; + var_r29 = 0x181 - var_r31; + if (lbl_1_data_670 != -1) { + fn_1_1190C(); + lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r29, var_r30, var_r31, -1, 1); + } + else { + lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r29, var_r30, var_r31, -1, 1); + } + HuWinBGTPLvlSet(lbl_1_data_670, 0.0f); + HuWinDispOn(lbl_1_data_670); + HuWinMesSet(lbl_1_data_670, arg0); + HuWinMesSpeedSet(lbl_1_data_670, 0); +} + +void fn_1_1190C(void) +{ + if (lbl_1_data_670 != -1) { + HuWinExCleanup(lbl_1_data_670); + lbl_1_data_670 = -1; + } +} + +void fn_1_11960(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_08 == 1) { + HuSprBankSet(var_r30, lbl_1_bss_8C[var_r31].unk_5C + 2, 1); + HuSprBankSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, 1); + HuSprBankSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, 1); + HuSprAttrReset(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, 4); + HuSprAttrReset(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, 4); + HuSprPosSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, *lbl_1_data_4D4[lbl_1_bss_8C[var_r31].unk_5C % 4], + lbl_1_data_4D4[(lbl_1_bss_8C[var_r31].unk_5C / 4) * 4][1]); + HuSprPosSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, *lbl_1_data_4D4[lbl_1_bss_8C[var_r31].unk_5C % 4], + lbl_1_data_4D4[(lbl_1_bss_8C[var_r31].unk_5C / 4) * 4][1]); + } + else { + lbl_1_bss_8C[var_r31].unk_5C = 0; + } + } +} + +void fn_1_11C64(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_08 == 1) { + HuSprBankSet(var_r30, lbl_1_bss_8C[var_r31].unk_5C + 2, 1); + HuSprBankSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, 1); + HuSprBankSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, 1); + HuSprAttrReset(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, 4); + HuSprAttrReset(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, 4); + HuSprPosSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, *lbl_1_data_4D4[lbl_1_bss_8C[var_r31].unk_5C % 4], + lbl_1_data_4D4[(lbl_1_bss_8C[var_r31].unk_5C / 4) * 4][1]); + HuSprPosSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, *lbl_1_data_4D4[lbl_1_bss_8C[var_r31].unk_5C % 4], + lbl_1_data_4D4[(lbl_1_bss_8C[var_r31].unk_5C / 4) * 4][1]); + } + else { + lbl_1_bss_8C[var_r31].unk_5C = 0; + } + } +} + +void fn_1_11F68(void) +{ + s32 var_r29; + s32 var_r30; + s32 var_r31; + + var_r30 = lbl_1_bss_26C[1]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_8C[var_r31].unk_08 == 1) { + if (lbl_1_bss_8C[var_r31].unk_5C <= 5) { + var_r29 = lbl_1_bss_8C[var_r31].unk_5C - 1; + } + else if (lbl_1_bss_8C[var_r31].unk_5C <= 0xB) { + var_r29 = lbl_1_bss_8C[var_r31].unk_5C - 3; + } + else { + var_r29 = lbl_1_bss_8C[var_r31].unk_5C - 4; + } + HuSprBankSet(var_r30, var_r29 + 2, 1); + HuSprBankSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, 1); + HuSprBankSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, 1); + HuSprAttrReset(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, 4); + HuSprAttrReset(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, 4); + HuSprPosSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x1E, *lbl_1_data_584[lbl_1_bss_8C[var_r31].unk_5C], + lbl_1_data_584[lbl_1_bss_8C[var_r31].unk_5C][1]); + HuSprPosSet(var_r30, lbl_1_bss_8C[var_r31].unk_48 + 0x22, *lbl_1_data_584[lbl_1_bss_8C[var_r31].unk_5C], + lbl_1_data_584[lbl_1_bss_8C[var_r31].unk_5C][1]); + } + else { + lbl_1_bss_8C[var_r31].unk_5C = 1; + } + } +} + +void fn_1_122A8(s32 arg0) +{ + s32 sp8[14] = { + 0x0000006D, + 0x0000006E, + 0x0000006F, + 0x00000070, + 0x00000071, + 0x00000072, + 0x00000073, + 0x00000074, + 0x00000039, + 0x00000040, + 0x0000004B, + 0x00000046, + 0x0000003E, + 0x0000003A, + }; + + if ((arg0 < 0) || (arg0 > 0xD)) { + return; + } + HuAudFXPlay(sp8[arg0]); +} diff --git a/src/game/gamework.c b/src/game/gamework.c index c7384f01..822bd129 100644 --- a/src/game/gamework.c +++ b/src/game/gamework.c @@ -251,7 +251,7 @@ s32 GWMGAvailGet(s32 id) } } -s32 GWMGAvailSet(s32 id) +void GWMGAvailSet(s32 id) { s32 word; s32 bit; @@ -364,4 +364,4 @@ void GWTotalStarsAdd(s16 amount) u16 GWTotalStarsGet(void) { return GWGameStat.total_stars; -} \ No newline at end of file +} From 87533ab13638601691af548ed72387ba9e06b76f Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Thu, 8 Aug 2024 12:17:19 -0500 Subject: [PATCH 021/311] Finish ztardll --- configure.py | 4 +- src/REL/ztardll/main.c | 2 + src/REL/ztardll/select.c | 291 +++++++++++++++++++-------------------- 3 files changed, 144 insertions(+), 153 deletions(-) diff --git a/configure.py b/configure.py index 3b55f9a3..7a3274bc 100644 --- a/configure.py +++ b/configure.py @@ -1569,9 +1569,9 @@ config.libs = [ "ztardll", objects={ Object(Matching, "REL/executor.c"), - Object(NonMatching, "REL/ztardll/main.c"), + Object(Matching, "REL/ztardll/main.c"), Object(Matching, "REL/ztardll/font.c"), - Object(NonMatching, "REL/ztardll/select.c"), + Object(Matching, "REL/ztardll/select.c"), }, ), ] diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c index 6cc5c2c0..0bd3da51 100644 --- a/src/REL/ztardll/main.c +++ b/src/REL/ztardll/main.c @@ -33,6 +33,8 @@ Process *lbl_1_bss_68; s32 lbl_1_bss_64; s32 lbl_1_bss_60; s16 lbl_1_bss_5E; +s16 lbl_1_bss_5C; + s16 lbl_1_bss_5A; s16 lbl_1_bss_58; s32 lbl_1_bss_54; diff --git a/src/REL/ztardll/select.c b/src/REL/ztardll/select.c index 5f0bd977..c12887fe 100644 --- a/src/REL/ztardll/select.c +++ b/src/REL/ztardll/select.c @@ -97,12 +97,12 @@ s32 lbl_1_data_3E8[8] = { 0x800000, }; -Process *lbl_1_bss_70; -s32 lbl_1_bss_74; -s32 lbl_1_bss_78[5]; -ZtarDllUnkStruct2 lbl_1_bss_8C[4]; -ZtarDllUnkStruct2 lbl_1_bss_20C; s32 lbl_1_bss_26C[0x1B]; +ZtarDllUnkStruct2 lbl_1_bss_20C; +ZtarDllUnkStruct2 lbl_1_bss_8C[4]; +s32 lbl_1_bss_78[5]; +s32 lbl_1_bss_74; +Process *lbl_1_bss_70; void fn_1_7C00(void) { @@ -266,7 +266,7 @@ s32 fn_1_8030(s32 arg0, s32 arg1) } while (TRUE) { fn_1_10FBC(1); - if ((lbl_1_bss_8C->unk_08 == 0) && (HuPadBtnDown[0] & PAD_BUTTON_B) != 0) { + if ((lbl_1_bss_8C[0].unk_08 == 0) && (HuPadBtnDown[0] & PAD_BUTTON_B) != 0) { HuAudFXPlay(3); if (lbl_1_bss_20C.unk_10 == 1) { lbl_1_bss_20C.unk_10 = 0; @@ -372,7 +372,7 @@ s32 fn_1_8338(s32 arg0, s32 arg1) } while (TRUE) { fn_1_10FBC(1); - if (((HuPadBtnDown[lbl_1_bss_8C->unk_58] & 0x200) != 0) && (lbl_1_bss_8C[var_r30].unk_08 == 0) && (lbl_1_bss_20C.unk_30 == 0)) { + if (((HuPadBtnDown[lbl_1_bss_8C[0].unk_58] & 0x200) != 0) && (lbl_1_bss_8C[var_r30].unk_08 == 0) && (lbl_1_bss_20C.unk_30 == 0)) { HuAudFXPlay(3); if (var_r27 == -1) { var_r29 = 0; @@ -590,7 +590,7 @@ s32 fn_1_8B94(s32 arg0) } while (TRUE) { fn_1_10FBC(1); - if ((lbl_1_bss_8C->unk_08 == 0) && ((*HuPadBtnDown & 0x200) != 0)) { + if ((lbl_1_bss_8C[0].unk_08 == 0) && ((*HuPadBtnDown & 0x200) != 0)) { HuAudFXPlay(3); if (lbl_1_bss_20C.unk_10 == 1) { lbl_1_bss_20C.unk_10 = 0; @@ -688,7 +688,7 @@ s32 fn_1_8E50(s32 arg0) } while (TRUE) { fn_1_10FBC(1); - if ((HuPadBtnDown[lbl_1_bss_8C->unk_58] & PAD_BUTTON_B) && (lbl_1_bss_8C[var_r30].unk_08 == 0) && (lbl_1_bss_20C.unk_30 == 0)) { + if ((HuPadBtnDown[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_B) && (lbl_1_bss_8C[var_r30].unk_08 == 0) && (lbl_1_bss_20C.unk_30 == 0)) { HuAudFXPlay(3); if (var_r27 == -1) { var_r29 = 0; @@ -2051,46 +2051,49 @@ void fn_1_D280(omObjData *arg0, ZtarDllUnkStruct2 *arg1) } if (arg1->unk_5C != var_r25) { if (lbl_1_bss_74 != 0) { - loop_54: - var_r25 = var_r30 + (var_r29 * 6); - for (var_r28 = 0; var_r28 < 4; var_r28++) { - if (((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_50 == 0) && (var_r25 == lbl_1_bss_8C[var_r28].unk_5C)) || (var_r25 == 0) - || (var_r25 == 5) || (var_r25 == 6) || (var_r25 == 0xB)) { - if ((var_r27 == 0) || (var_r26 == 0)) { - if (((var_r30 + var_r27) > 5) || ((var_r30 + var_r27) < 0)) { - var_r30 = var_r23; - } - else { - var_r30 += var_r27; - } - if (((var_r29 + var_r26) > 2) || ((var_r29 + var_r26) < 0)) { - var_r29 = var_r22; - } - else { - var_r29 += var_r26; - } - } - else if (((var_r30 + var_r27) <= 5) && ((var_r30 + var_r27) >= 0)) { - var_r30 += var_r27; - } - else if (((var_r29 + var_r26) <= 2) && ((var_r29 + var_r26) >= 0)) { - var_r29 += var_r26; - } - else { - var_r30 = var_r23; - var_r29 = var_r22; - } - } - else { - } - } - if (var_r28 != 4) { - goto loop_54; - } + while(1) { + var_r25 = var_r30 + (var_r29 * 6); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if (((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_50 == 0) && (var_r25 == lbl_1_bss_8C[var_r28].unk_5C)) || (var_r25 == 0) + || (var_r25 == 5) || (var_r25 == 6) || (var_r25 == 0xB)) { + if ((var_r27 == 0) || (var_r26 == 0)) { + if (((var_r30 + var_r27) > 5) || ((var_r30 + var_r27) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r27; + } + if (((var_r29 + var_r26) > 2) || ((var_r29 + var_r26) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r26; + } + } + else if (((var_r30 + var_r27) <= 5) && ((var_r30 + var_r27) >= 0)) { + var_r30 += var_r27; + } + else if (((var_r29 + var_r26) <= 2) && ((var_r29 + var_r26) >= 0)) { + var_r29 += var_r26; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + } + break; + } + else { + + } + } + if(var_r28 == 4) { + break; + } + } } else { - do { - var_r25 = var_r30 + (var_r29 * 4); + while(1) { + var_r25 = var_r30 + (var_r29 * 4); for (var_r28 = 0; var_r28 < 4; var_r28++) { if ((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_50 == 0) && (var_r25 == lbl_1_bss_8C[var_r28].unk_5C)) { if ((var_r27 == 0) || (var_r26 == 0)) { @@ -2102,11 +2105,10 @@ void fn_1_D280(omObjData *arg0, ZtarDllUnkStruct2 *arg1) } if (((var_r29 + var_r26) > 1) || ((var_r29 + var_r26) < 0)) { var_r29 = var_r22; - } - else { + } else { var_r29 += var_r26; - break; } + break; } else if (((var_r30 + var_r27) <= 3) && ((var_r30 + var_r27) >= 0)) { var_r30 += var_r27; @@ -2123,10 +2125,13 @@ void fn_1_D280(omObjData *arg0, ZtarDllUnkStruct2 *arg1) } } else { - break; + continue; } } - } while (var_r28 != 4); + if(var_r28 == 4) { + break; + } + } } if (lbl_1_bss_74 != 0) { var_r25 = var_r30 + (var_r29 * 6); @@ -2259,7 +2264,7 @@ void fn_1_E548(omObjData *arg0, ZtarDllUnkStruct2 *arg1) var_r22 = var_r29; } if (arg1->unk_08 == 0) { - if (HuPadBtnDown[lbl_1_bss_8C->unk_58] & PAD_BUTTON_A) { + if (HuPadBtnDown[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_A) { arg1->unk_08 = 1; HuSprBankSet(var_r27, arg1->unk_48 + 0x26, 1); HuSprBankSet(var_r27, arg1->unk_48 + 0x2A, 1); @@ -2352,7 +2357,7 @@ void fn_1_E548(omObjData *arg0, ZtarDllUnkStruct2 *arg1) } } } - else if (HuPadBtnDown[lbl_1_bss_8C->unk_58] & PAD_BUTTON_B) { + else if (HuPadBtnDown[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_B) { arg1->unk_08 = arg1->unk_10 = 0; if (lbl_1_bss_74 != 0) { var_r20 = 0; @@ -2383,8 +2388,8 @@ void fn_1_E548(omObjData *arg0, ZtarDllUnkStruct2 *arg1) } if (arg1->unk_5C != var_r24) { if (lbl_1_bss_74 != 0) { - do { - fn_1_10FBC(1); + while(1) { + fn_1_10FBC(1); var_r24 = var_r30 + (var_r29 * 6); for (var_r28 = 0; var_r28 < 4; var_r28++) { if (((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_08 == 1) && (var_r24 == lbl_1_bss_8C[var_r28].unk_5C)) @@ -2416,7 +2421,10 @@ void fn_1_E548(omObjData *arg0, ZtarDllUnkStruct2 *arg1) break; } } - } while (var_r28 != 4); + if(var_r28 == 4) { + break; + } + } } else { do { @@ -2498,100 +2506,81 @@ s32 fn_1_F214(ZtarDllUnkStruct2 *arg0) var_r28 = 0; var_r29 = lbl_1_bss_26C[1]; -loop_1: - fn_1_10FBC(1); - var_r28 = 0; - var_r26 = arg0->unk_54; - if (HuPadStkX[lbl_1_bss_8C->unk_58] >= 5) { - block_3: - if (((GWGameStat.story_continue >> 4) & 1) == 1) { - arg0->unk_54++; - var_r28 = 1; - if (arg0->unk_54 > 3) { - arg0->unk_54 = 0; - } - } - else { - arg0->unk_54++; - var_r28 = 1; - if (arg0->unk_54 > 2) { - arg0->unk_54 = 0; - } - } - block_19: - if (arg0->unk_54 != var_r26) { - HuAudFXPlay(0); - for (var_r30 = 0; var_r30 <= 5; var_r30++) { - fn_1_10FBC(1); - if (lbl_1_bss_74 != 0) { - var_f31 = fn_1_10E38(lbl_1_data_584[arg0->unk_5C][0], lbl_1_data_584[arg0->unk_5C][0] + (var_r28 * 0xA), var_r30, 5.0f); - HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_584[arg0->unk_5C][1] + 0x23); - } - else { - var_f31 = fn_1_10E38(lbl_1_data_4D4[arg0->unk_5C % 4][0], lbl_1_data_4D4[arg0->unk_5C % 4][0] + (var_r28 * 0xA), var_r30, 5.0f); - HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 0x23); - } - } - HuSprBankSet(var_r29, arg0->unk_48 + 0x2E, arg0->unk_54); - for (var_r30 = 0; var_r30 <= 5; var_r30++) { - fn_1_10FBC(1); - if (lbl_1_bss_74 != 0) { - var_f31 = fn_1_10E38(lbl_1_data_584[arg0->unk_5C][0] + (var_r28 * 0xA), lbl_1_data_584[arg0->unk_5C][0], var_r30, 5.0f); - HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_584[arg0->unk_5C][1] + 0x23); - } - else { - var_f31 = fn_1_10E38(lbl_1_data_4D4[arg0->unk_5C % 4][0] + (var_r28 * 0xA), lbl_1_data_4D4[arg0->unk_5C % 4][0], var_r30, 5.0f); - HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 0x23); - } - } - } - goto loop_1; - } - if (HuPadBtn[lbl_1_bss_8C->unk_58] & PAD_BUTTON_RIGHT) { - goto block_3; - } - if (HuPadStkX[lbl_1_bss_8C->unk_58] <= -5) { - block_10: - if (((GWGameStat.story_continue >> 4) & 1) == 1) { - arg0->unk_54--; - var_r28 = -1; - if (arg0->unk_54 < 0) { - arg0->unk_54 = 3; - } - } - else { - arg0->unk_54--; - var_r28 = -1; - if (arg0->unk_54 < 0) { - arg0->unk_54 = 2; - } - } - goto block_19; - } - if (HuPadBtn[lbl_1_bss_8C->unk_58] & PAD_BUTTON_LEFT) { - goto block_10; - } - if (HuPadBtnDown[0] & PAD_BUTTON_A) { - var_r27 = 1; - } - else if (HuPadBtnDown[0] & PAD_BUTTON_B) { - var_r27 = 0; - HuAudFXPlay(3); - } - else { - goto block_19; - } - if (var_r27 == 1) { - if (lbl_1_bss_74 != 0) { - HuSprPosSet(var_r29, arg0->unk_48 + 0x32, lbl_1_data_584[arg0->unk_5C][0], lbl_1_data_584[arg0->unk_5C][1] + 0x23); - } - else { - HuSprPosSet(var_r29, arg0->unk_48 + 0x32, lbl_1_data_4D4[arg0->unk_5C % 4][0], lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 0x23); - } - HuSprBankSet(var_r29, arg0->unk_48 + 0x32, arg0->unk_54); - HuSprAttrReset(var_r29, arg0->unk_48 + 0x32, 4); - HuSprAttrSet(var_r29, arg0->unk_48 + 0x2E, 4); - } + while(1) { + fn_1_10FBC(1); + var_r28 = 0; + var_r26 = arg0->unk_54; + if(HuPadStkX[lbl_1_bss_8C[0].unk_58] >= 5 || (HuPadBtn[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_RIGHT)) { + if(GWGameStat.field10E_bit4 == 1) { + arg0->unk_54++; + var_r28 = 1; + if(arg0->unk_54 > 3) { + arg0->unk_54 = 0; + } + } else { + arg0->unk_54++; + var_r28 = 1; + if(arg0->unk_54 > 2) { + arg0->unk_54 = 0; + } + } + } else if(HuPadStkX[lbl_1_bss_8C[0].unk_58] <= -5 || (HuPadBtn[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_LEFT)) { + if(GWGameStat.field10E_bit4 == 1) { + arg0->unk_54--; + var_r28 = -1; + if(arg0->unk_54 < 0) { + arg0->unk_54 = 3; + } + } else { + arg0->unk_54--; + var_r28 = -1; + if(arg0->unk_54 < 0) { + arg0->unk_54 = 2; + } + } + } else if(HuPadBtnDown[0] & PAD_BUTTON_A) { + var_r27 = 1; + break; + } else if(HuPadBtnDown[0] & PAD_BUTTON_B) { + var_r27 = 0; + HuAudFXPlay(3); + break; + } + if(arg0->unk_54 != var_r26) { + HuAudFXPlay(0); + for(var_r30=0; var_r30<=5; var_r30++) { + fn_1_10FBC(1); + if(lbl_1_bss_74) { + var_f31 = fn_1_10E38(lbl_1_data_584[arg0->unk_5C][0], lbl_1_data_584[arg0->unk_5C][0]+(var_r28*10), var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48+46, var_f31, lbl_1_data_584[arg0->unk_5C][1]+35); + } else { + var_f31 = fn_1_10E38(lbl_1_data_4D4[arg0->unk_5C%4][0], lbl_1_data_4D4[arg0->unk_5C%4][0]+(var_r28*10), var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48+46, var_f31, lbl_1_data_4D4[(arg0->unk_5C/4)*4][1]+35); + } + } + HuSprBankSet(var_r29, arg0->unk_48+46, arg0->unk_54); + for(var_r30=0; var_r30<=5; var_r30++) { + fn_1_10FBC(1); + if(lbl_1_bss_74) { + var_f31 = fn_1_10E38(lbl_1_data_584[arg0->unk_5C][0]+(var_r28*10), lbl_1_data_584[arg0->unk_5C][0], var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48+46, var_f31, lbl_1_data_584[arg0->unk_5C][1]+35); + } else { + var_f31 = fn_1_10E38(lbl_1_data_4D4[arg0->unk_5C%4][0]+(var_r28*10), lbl_1_data_4D4[arg0->unk_5C%4][0], var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48+46, var_f31, lbl_1_data_4D4[(arg0->unk_5C/4)*4][1]+35); + } + } + } + } + if(var_r27 == 1) { + if(lbl_1_bss_74) { + HuSprPosSet(var_r29, arg0->unk_48+50, lbl_1_data_584[arg0->unk_5C][0], lbl_1_data_584[arg0->unk_5C][1]+35); + } else { + HuSprPosSet(var_r29, arg0->unk_48+50, lbl_1_data_4D4[arg0->unk_5C%4][0], lbl_1_data_4D4[(arg0->unk_5C/4)*4][1]+35); + } + HuSprBankSet(var_r29, arg0->unk_48+50, arg0->unk_54); + HuSprAttrReset(var_r29, arg0->unk_48+50, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r29, arg0->unk_48+46, HUSPR_ATTR_DISPOFF); + } return var_r27; } From a0ebc7588d4eeb7809373b90b4c4a26790ef93a1 Mon Sep 17 00:00:00 2001 From: kabiskac Date: Fri, 9 Aug 2024 01:37:36 +0200 Subject: [PATCH 022/311] Applied DATA_MAKE_NUM and MAKE_MESSID macros --- {src/REL/m407dll => include/REL}/m407dll.h | 0 src/REL/E3setupDLL/main.c | 52 +- src/REL/E3setupDLL/mgselect.c | 40 +- src/REL/instDll/main.c | 16 +- src/REL/m401Dll/main.c | 5920 ++++++++++---------- src/REL/m401Dll/main_ex.c | 1927 +++---- src/REL/m404Dll/main.c | 662 ++- src/REL/m406Dll/map.c | 8 +- src/REL/m406Dll/player.c | 20 +- src/REL/m407dll/effect.c | 15 +- src/REL/m407dll/map.c | 98 +- src/REL/m407dll/player.c | 407 +- src/REL/m407dll/score.c | 111 +- src/REL/m407dll/whomp.c | 420 +- src/REL/m407dll/whomp_score.c | 110 +- src/REL/m408Dll/camera.c | 1425 +++-- src/REL/m408Dll/main.c | 2706 +++++---- src/REL/m408Dll/object.c | 2720 +++++---- src/REL/m408Dll/stage.c | 2362 ++++---- src/REL/m409Dll/cursor.c | 32 +- src/REL/m409Dll/main.c | 506 +- src/REL/m409Dll/player.c | 36 +- src/REL/m410Dll/player.c | 460 +- src/REL/m412Dll/main.c | 721 +-- src/REL/m413Dll/main.c | 4081 +++++++------- src/REL/m416Dll/main.c | 3175 ++++++----- src/REL/m416Dll/map.c | 497 +- src/REL/m417Dll/player.c | 90 +- src/REL/m417Dll/water.c | 46 +- src/REL/m426Dll/main.c | 298 +- src/REL/m429Dll/main.c | 4350 +++++++------- src/REL/m431Dll/main.c | 3680 ++++++------ src/REL/m431Dll/object.c | 16 +- src/REL/m434Dll/main.c | 838 ++- src/REL/m434Dll/map.c | 964 ++-- src/REL/m438Dll/main.c | 2 +- src/REL/m439Dll/main.c | 3255 ++++++----- src/REL/m440Dll/main.c | 968 ++-- src/REL/m440Dll/object.c | 18 +- src/REL/m441Dll/main.c | 3070 +++++----- src/REL/m442Dll/main.c | 24 +- src/REL/m442Dll/score.c | 10 +- src/REL/m444dll/main.c | 2703 ++++----- src/REL/m444dll/pinball.c | 6 +- src/REL/m446Dll/card.c | 10 +- src/REL/m446Dll/cursor.c | 72 +- src/REL/m446Dll/deck.c | 4 +- src/REL/m446Dll/main.c | 14 +- src/REL/m446Dll/player.c | 381 +- src/REL/m446Dll/stage.c | 4 +- src/REL/m446Dll/table.c | 130 +- src/REL/m451Dll/m451.c | 2534 ++++----- src/REL/mgmodedll/datalist.c | 86 +- src/REL/mgmodedll/free_play.c | 2293 ++++---- src/REL/mgmodedll/mgmode.c | 4 +- src/REL/mgmodedll/minigame.c | 394 +- src/REL/modeltestDll/main.c | 491 +- src/REL/modeltestDll/modeltest00.c | 6 +- src/REL/modeltestDll/modeltest01.c | 162 +- src/REL/modeseldll/datalist.c | 72 +- src/REL/modeseldll/filesel.c | 3804 ++++++------- src/REL/modeseldll/modesel.c | 464 +- src/REL/mstory4Dll/main.c | 98 +- src/REL/option/guide.c | 4 +- src/REL/present/common.c | 2 +- src/REL/present/main.c | 2 +- src/REL/present/present.c | 29 +- src/REL/resultDll/battle.c | 1187 ++-- src/REL/resultDll/main.c | 2248 ++++---- src/REL/selmenuDll/main.c | 1798 +++--- src/REL/staffDll/main.c | 4 +- src/REL/w02Dll/gamble.c | 38 +- src/REL/w02Dll/gendice.c | 790 ++- src/REL/w02Dll/main.c | 12 +- src/REL/w02Dll/mg_coin.c | 1074 ++-- src/REL/w02Dll/mg_item.c | 1546 ++--- src/REL/w02Dll/roulette.c | 28 +- src/REL/w02Dll/shuffleboard.c | 40 +- src/REL/w03Dll/condor.c | 462 +- src/REL/w03Dll/main.c | 12 +- src/REL/w03Dll/mg_coin.c | 286 +- src/REL/w03Dll/mg_item.c | 490 +- src/REL/w03Dll/river.c | 12 +- src/REL/w03Dll/smoke.c | 2 +- src/REL/w03Dll/statue.c | 6 +- src/REL/w04Dll/boo_event.c | 2 +- src/REL/w05Dll/dolphin.c | 195 +- src/REL/w05Dll/hotel.c | 16 +- src/REL/w05Dll/main.c | 161 +- src/REL/w05Dll/mg_coin.c | 167 +- src/REL/w05Dll/mg_item.c | 237 +- src/REL/w05Dll/monkey.c | 8 +- src/REL/w06Dll/bowser.c | 14 +- src/REL/w10Dll/main.c | 4 +- src/REL/w20Dll/main.c | 20 +- src/REL/ztardll/font.c | 61 +- src/REL/ztardll/main.c | 46 +- src/REL/ztardll/select.c | 90 +- src/game/board/block.c | 226 +- src/game/board/boo_house.c | 384 +- src/game/board/bowser.c | 22 +- src/game/board/char_wheel.c | 36 +- src/game/board/fortune.c | 24 +- src/game/board/last5.c | 18 +- src/game/board/mg_setup.c | 32 +- src/game/board/mushroom.c | 10 +- src/game/board/player.c | 2092 +++---- src/game/board/roll.c | 36 +- src/game/board/shop.c | 46 +- src/game/board/start.c | 42 +- src/game/board/ui.c | 180 +- src/game/board/view.c | 28 +- src/game/chrman.c | 678 +-- src/game/minigame_seq.c | 4 +- src/game/objsub.c | 489 +- src/game/wipe.c | 2 +- 116 files changed, 38174 insertions(+), 37156 deletions(-) rename {src/REL/m407dll => include/REL}/m407dll.h (100%) diff --git a/src/REL/m407dll/m407dll.h b/include/REL/m407dll.h similarity index 100% rename from src/REL/m407dll/m407dll.h rename to include/REL/m407dll.h diff --git a/src/REL/E3setupDLL/main.c b/src/REL/E3setupDLL/main.c index 8794d41c..a080e2de 100644 --- a/src/REL/E3setupDLL/main.c +++ b/src/REL/E3setupDLL/main.c @@ -453,10 +453,10 @@ static s16 lbl_2_data_31E[] = { }; static u32 playerCntMessTbl[] = { - 0x00220002, - 0x00220003, - 0x00220004, - 0x00220001 + MAKE_MESSID(0x22, 0x02), + MAKE_MESSID(0x22, 0x03), + MAKE_MESSID(0x22, 0x04), + MAKE_MESSID(0x22, 0x01) }; static void UpdatePlayerCnt(omObjData *object) @@ -602,16 +602,16 @@ static void InitPlayerCnt(omObjData *object) HuSprAttrSet(group, index, HUSPR_ATTR_DISPOFF); HuSprAttrSet(index2, index, HUSPR_ATTR_DISPOFF); } - HuWinMesMaxSizeGet(1, sizeMax, 0x220000); + HuWinMesMaxSizeGet(1, sizeMax, MAKE_MESSID(0x22, 0x00)); index2 = HuWinCreate(-10000, 26, sizeMax[0], sizeMax[1], 0); work->winHeader = index2; HuWinMesColSet(index2, 4); HuWinBGTPLvlSet(index2, 0); HuWinMesSpeedSet(index2, 0); - HuWinMesSet(index2, 0x220000); + HuWinMesSet(index2, MAKE_MESSID(0x22, 0x00)); work->playerCntOld = work->playerCnt = configE3.playerCnt; mess = playerCntMessTbl[work->playerCnt]; - HuWinMesMaxSizeGet(4, sizeMax, 0x220001, 0x220002, 0x220003, 0x220004); + HuWinMesMaxSizeGet(4, sizeMax, MAKE_MESSID(0x22, 0x01), MAKE_MESSID(0x22, 0x02), MAKE_MESSID(0x22, 0x03), MAKE_MESSID(0x22, 0x04)); index2 = HuWinCreate(-10000, 58, sizeMax[0], sizeMax[1], 0); work->winPlayer = index2; work->winSize = *(Vec2f *)(sizeMax); //FIXME: Remove Cast @@ -1143,8 +1143,8 @@ typedef struct e3_rumble_cfg_work { } E3RumbleCfgWork; static u32 rumbleMess[] = { - 0x220008, - 0x220007 + MAKE_MESSID(0x22, 0x08), + MAKE_MESSID(0x22, 0x07) }; static void UpdateRumbleCfg(omObjData *object) @@ -1283,16 +1283,16 @@ static void InitRumbleCfg(omObjData *object) HuSprAttrSet(group, index, HUSPR_ATTR_DISPOFF); HuSprAttrSet(index2, index, HUSPR_ATTR_DISPOFF); } - HuWinMesMaxSizeGet(1, sizeMax, 0x220006); + HuWinMesMaxSizeGet(1, sizeMax, MAKE_MESSID(0x22, 0x06)); index2 = HuWinCreate(-10000, 267, sizeMax[0], sizeMax[1], 0); work->winHeader = index2; HuWinMesColSet(index2, 4); HuWinBGTPLvlSet(index2, 0); HuWinMesSpeedSet(index2, 0); - HuWinMesSet(index2, 0x220006); + HuWinMesSet(index2, MAKE_MESSID(0x22, 0x06)); work->rumbleValOld = work->rumbleVal = configE3.rumble; mess = rumbleMess[work->rumbleVal]; - HuWinMesMaxSizeGet(2, sizeMax, 0x220007, 0x220008); + HuWinMesMaxSizeGet(2, sizeMax, MAKE_MESSID(0x22, 0x07), MAKE_MESSID(0x22, 0x08)); index2 = HuWinCreate(-10000, 299, sizeMax[0], sizeMax[1], 0); work->winValue = index2; work->winSize = *(Vec2f *)(sizeMax); //FIXME: Remove Cast @@ -1366,12 +1366,12 @@ static void UpdateModeSel(omObjData *object) object->work[2] = 2; work->boardOld = -1; HuWinMesColSet(work->winMode, 4); - HuWinMesMaxSizeGet(1, winSize, 0x22000F); + HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(0x22, 0x0F)); HuWinCenterPosSet(work->winMode, (work->winSizeMode.x-winSize[0])/-2.0f, (work->winSizeMode.y-winSize[1])/-2.0f); - HuWinMesSet(work->winMode, 0x22000F); - HuWinMesMaxSizeGet(1, winSize, 0x220010); + HuWinMesSet(work->winMode, MAKE_MESSID(0x22, 0x0F)); + HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(0x22, 0x10)); HuWinCenterPosSet(work->winBoard, (work->winSizeBoard.x-winSize[0])/-2.0f, (work->winSizeBoard.y-winSize[1])/-2.0f); - HuWinMesSet(work->winBoard, 0x220010); + HuWinMesSet(work->winBoard, MAKE_MESSID(0x22, 0x10)); } } else if(btnDown & PAD_BUTTON_B) { HuAudFXPlay(3); @@ -1405,12 +1405,12 @@ static void UpdateModeSel(omObjData *object) work->modeOld = -1; object->work[2] = 1; HuWinMesColSet(work->winMode, 4); - HuWinMesMaxSizeGet(1, winSize, 0x220009); + HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(0x22, 0x09)); HuWinCenterPosSet(work->winMode, (work->winSizeMode.x-winSize[0])/-2.0f, (work->winSizeMode.y-winSize[1])/-2.0f); - HuWinMesSet(work->winMode, 0x220009); - HuWinMesMaxSizeGet(1, winSize, 0x22000A); + HuWinMesSet(work->winMode, MAKE_MESSID(0x22, 0x09)); + HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(0x22, 0x0A)); HuWinCenterPosSet(work->winBoard, (work->winSizeBoard.x-winSize[0])/-2.0f, (work->winSizeBoard.y-winSize[1])/-2.0f); - HuWinMesSet(work->winBoard, 0x22000A); + HuWinMesSet(work->winBoard, MAKE_MESSID(0x22, 0x0A)); } else if(btnDown & PAD_BUTTON_LEFT) { HuAudFXPlay(0); work->board--; @@ -1504,23 +1504,23 @@ static void InitModeSel(omObjData *object) index++; HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF); HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); - HuWinMesMaxSizeGet(2, &work->winSizeMode.x, 0x220009, 0x22000F); + HuWinMesMaxSizeGet(2, &work->winSizeMode.x, MAKE_MESSID(0x22, 0x09), MAKE_MESSID(0x22, 0x0F)); index2 = HuWinCreate(-10000, 350, work->winSizeMode.x, work->winSizeMode.y, 0); work->winMode = index2; HuWinMesColSet(index2, 4); HuWinBGTPLvlSet(index2, 0); HuWinMesSpeedSet(index2, 0); - HuWinMesMaxSizeGet(1, size, 0x220009); + HuWinMesMaxSizeGet(1, size, MAKE_MESSID(0x22, 0x09)); HuWinCenterPosSet(index2, (work->winSizeMode.x-size[0])/-2.0f, (work->winSizeMode.y-size[1])/-2.0f); - HuWinMesSet(index2, 0x220009); - HuWinMesMaxSizeGet(2, &work->winSizeBoard.x, 0x22000A, 0x220010); + HuWinMesSet(index2, MAKE_MESSID(0x22, 0x09)); + HuWinMesMaxSizeGet(2, &work->winSizeBoard.x, MAKE_MESSID(0x22, 0x0A), MAKE_MESSID(0x22, 0x10)); index2 = HuWinCreate(-10000, 390, work->winSizeBoard.x, work->winSizeBoard.y, 0); work->winBoard = index2; HuWinBGTPLvlSet(index2, 0); HuWinMesSpeedSet(index2, 0); - HuWinMesMaxSizeGet(1, size, 0x22000A); + HuWinMesMaxSizeGet(1, size, MAKE_MESSID(0x22, 0x0A)); HuWinCenterPosSet(index2, (work->winSizeBoard.x-size[0])/-2.0f, (work->winSizeBoard.y-size[1])/-2.0f); - HuWinMesSet(index2, 0x22000A); + HuWinMesSet(index2, MAKE_MESSID(0x22, 0x0A)); object->work[0] = 0; object->work[1] = 0; object->work[2] = 0; diff --git a/src/REL/E3setupDLL/mgselect.c b/src/REL/E3setupDLL/mgselect.c index ba636a75..ece67721 100644 --- a/src/REL/E3setupDLL/mgselect.c +++ b/src/REL/E3setupDLL/mgselect.c @@ -94,19 +94,19 @@ static s16 mgOvlTbl[] = { static s16 mgIdTbl[] = { 403, 404, 407, 410, 412, 415, 418, 419, 425, 426, 431, 436, 438, 0 }; static s32 mgNameTbl[] = { - 0x00170003, - 0x00170004, - 0x00170007, - 0x0017000A, - 0x0017000C, - 0x0017000F, - 0x00170012, - 0x00170013, - 0x00170019, - 0x0017001A, - 0x0017001F, - 0x00170024, - 0x00170026, + MAKE_MESSID(0x17, 0x03), + MAKE_MESSID(0x17, 0x04), + MAKE_MESSID(0x17, 0x07), + MAKE_MESSID(0x17, 0x0A), + MAKE_MESSID(0x17, 0x0C), + MAKE_MESSID(0x17, 0x0F), + MAKE_MESSID(0x17, 0x12), + MAKE_MESSID(0x17, 0x13), + MAKE_MESSID(0x17, 0x19), + MAKE_MESSID(0x17, 0x1A), + MAKE_MESSID(0x17, 0x1F), + MAKE_MESSID(0x17, 0x24), + MAKE_MESSID(0x17, 0x26), }; char lbl_2_data_A8[] = "\013TEST MINIGAME NAME01\n test"; @@ -332,12 +332,12 @@ static void CreateMGSelect(omObjData *object) temp_r30 = HuSprGrpCreate(3); temp_r31->unk_1C = temp_r30; HuSprGrpPosSet(temp_r30, 174.0f, 271.0f); - temp_r25 = HuSprAnimRead(HuDataReadNum(0x21, MEMORY_DEFAULT_NUM)); + temp_r25 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x21), MEMORY_DEFAULT_NUM)); temp_r31->unk_00[index2] = temp_r25; temp_r29 = HuSprCreate(temp_r25, 0x7540, 0); HuSprGrpMemberSet(temp_r30, index2, temp_r29); index2++; - temp_r25 = HuSprAnimRead(HuDataReadNum(0x27, MEMORY_DEFAULT_NUM)); + temp_r25 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x27), MEMORY_DEFAULT_NUM)); temp_r31->unk_00[index2] = temp_r25; temp_r29 = HuSprCreate(temp_r25, 0x64, 0); HuSprGrpMemberSet(temp_r30, index2, temp_r29); @@ -346,9 +346,9 @@ static void CreateMGSelect(omObjData *object) temp_r31->unk_42 = 0; HuSprPosSet(temp_r30, index2, 0.0f, cursorYOfsTbl[temp_r31->unk_42]); index2++; - temp_r25 = HuSprAnimRead(HuDataReadNum(0x35, MEMORY_DEFAULT_NUM)); + temp_r25 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x35), MEMORY_DEFAULT_NUM)); temp_r31->unk_00[index2++] = temp_r25; - temp_r23 = HuSprAnimRead(HuDataReadNum(0x36, MEMORY_DEFAULT_NUM)); + temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x36), MEMORY_DEFAULT_NUM)); temp_r31->unk_00[index2++] = temp_r23; temp_r30 = HuSprGrpCreate(2); temp_r31->unk_1E = temp_r30; @@ -449,7 +449,7 @@ static void CreateMGPic(omObjData *object) HuSprAttrSet(temp_r3, var_r30, 4); } index2 = var_r30; - temp_r3_2 = HuSprAnimRead(HuDataReadNum(0x22, MEMORY_DEFAULT_NUM)); + temp_r3_2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x22), MEMORY_DEFAULT_NUM)); temp_r28->unk_00[index2] = temp_r3_2; group = HuSprCreate(temp_r3_2, 0x7540, 0); HuSprGrpMemberSet(temp_r3, index2, group); @@ -478,7 +478,7 @@ static void CreateMGInterface(omObjData *object) group = HuSprGrpCreate(1); unkStruct->group = group; HuSprGrpPosSet(group, 288.0f, 64.0f); - temp_r3_2 = HuSprAnimRead(HuDataReadNum(0x24, MEMORY_DEFAULT_NUM)); + temp_r3_2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x24), MEMORY_DEFAULT_NUM)); unkStruct->unk_00[index2] = temp_r3_2; index = HuSprCreate(temp_r3_2, 0x2710, 0); HuSprGrpMemberSet(group, 0, index); @@ -486,7 +486,7 @@ static void CreateMGInterface(omObjData *object) group = HuSprGrpCreate(1); unkStruct->group2 = group; HuSprGrpPosSet(group, 444.0f, 384.0f); - temp_r3_2 = HuSprAnimRead(HuDataReadNum(0x23, MEMORY_DEFAULT_NUM)); + temp_r3_2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_E3SETUP, 0x23), MEMORY_DEFAULT_NUM)); unkStruct->unk_00[index2] = temp_r3_2; index = HuSprCreate(temp_r3_2, 0x271A, 0); HuSprGrpMemberSet(group, 0, index); diff --git a/src/REL/instDll/main.c b/src/REL/instDll/main.c index 8c212fd2..07ee15ac 100644 --- a/src/REL/instDll/main.c +++ b/src/REL/instDll/main.c @@ -840,7 +840,7 @@ static void fn_1_2FA0(void) HuSprGrpPosSet(temp_r24, 1000, 186); HuSprPriSet(temp_r24, 0, 1000); sp10[0] = HuWinCreate(1000, 186, 456, 42, 0); - HuWinMesSet(sp10[0], 0x240000+lbl_1_bss_10); + HuWinMesSet(sp10[0], MAKE_MESSID(0x24, lbl_1_bss_10)); HuWinBGTPLvlSet(sp10[0], 0.0f); temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 17)); temp_r23 = HuSprGrpCreate(1); @@ -849,11 +849,11 @@ static void fn_1_2FA0(void) HuSprGrpPosSet(temp_r23, 1000, 242); HuSprPriSet(temp_r23, 0, 1000); sp10[1] = HuWinCreate(1000, 242, 456, 42, 0); - HuWinMesSet(sp10[1], lbl_1_bss_10+0x240001); + HuWinMesSet(sp10[1], lbl_1_bss_10+MAKE_MESSID(0x24, 0x01)); HuWinBGTPLvlSet(sp10[1], 0.0f); temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18)); sp10[2] = HuWinCreate(1000, 292, 456, 42, 0); - HuWinMesSet(sp10[2], lbl_1_bss_10+0x240002); + HuWinMesSet(sp10[2], lbl_1_bss_10+MAKE_MESSID(0x24, 0x02)); HuWinBGTPLvlSet(sp10[2], 0.0f); HuWinMesSpeedSet(sp10[2], 0); temp_r31 = HuWinAnimSet(sp10[2], temp_r28, 0, 201, 18); @@ -861,7 +861,7 @@ static void fn_1_2FA0(void) temp_r27 = HuWinCreate(1000, 292, 456, 42, 0); HuWinBGTPLvlSet(temp_r27, 0.0f); HuWinMesSpeedSet(temp_r27, 0); - HuWinMesSet(temp_r27, lbl_1_bss_10+0x240002); + HuWinMesSet(temp_r27, lbl_1_bss_10+MAKE_MESSID(0x24, 0x02)); temp_r31 = HuWinAnimSet(temp_r27, temp_r28, 0, 201, 18); HuWinPriSet(temp_r27, 10); HuWinSprPriSet(temp_r27, temp_r31, 11); @@ -908,16 +908,16 @@ static void fn_1_2FA0(void) while(lbl_1_data_0 != 3) { if(temp_r21 != lbl_1_bss_6) { temp_f31 = 16.0f+(lbl_1_data_124[6]-217.0f); - HuWinMesSet(temp_r27, 0x240002+lbl_1_bss_10+temp_r21); + HuWinMesSet(temp_r27, MAKE_MESSID(0x24, 0x02)+lbl_1_bss_10+temp_r21); temp_r21 = lbl_1_bss_6; if(lbl_1_bss_6 == 1) { if(mgInfoTbl[lbl_1_bss_14].inst_mess[2]) { - HuWinMesSet(sp10[2], 0x240002+lbl_1_bss_10+lbl_1_bss_6); + HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02)+lbl_1_bss_10+lbl_1_bss_6); } else { - HuWinMesSet(sp10[2], 0x240006+lbl_1_bss_10); + HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x06)+lbl_1_bss_10); } } else { - HuWinMesSet(sp10[2], 0x240002+lbl_1_bss_10+lbl_1_bss_6); + HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02)+lbl_1_bss_10+lbl_1_bss_6); } for(temp_r31=0; temp_r31<=10; temp_r31++) { HuWinPosSet(temp_r27, 30.0*sind(temp_r31*9.0f)+temp_f31, 200.0*(1.0-cosd(temp_r31*9.0f))+274.0); diff --git a/src/REL/m401Dll/main.c b/src/REL/m401Dll/main.c index 40820a67..2e4c13d9 100644 --- a/src/REL/m401Dll/main.c +++ b/src/REL/m401Dll/main.c @@ -1,54 +1,39 @@ -#include "game/object.h" -#include "game/memory.h" +#include "game/chrman.h" +#include "game/esprite.h" +#include "game/frand.h" +#include "game/gamework_data.h" #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "game/objsub.h" +#include "game/memory.h" #include "game/minigame_seq.h" -#include "game/gamework_data.h" -#include "game/wipe.h" -#include "game/esprite.h" -#include "game/sprite.h" -#include "game/frand.h" -#include "game/chrman.h" +#include "game/object.h" +#include "game/objsub.h" #include "game/pad.h" #include "game/printfunc.h" +#include "game/sprite.h" +#include "game/wipe.h" #include "REL/m401Dll.h" -#include "math.h" #include "ext_math.h" +#include "math.h" #include "rel_sqrt_consts.h" float lbl_2_data_0 = -7.1875f; -s16 lbl_2_data_4[] = { - 0, 1, 2, 3, - 4, 5, 6, 7 -}; +s16 lbl_2_data_4[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; -Vec lbl_2_data_14 = { - 1500, 2500, 1500 -}; +Vec lbl_2_data_14 = { 1500, 2500, 1500 }; -Vec lbl_2_data_20 = { - 0, -1, 0 -}; +Vec lbl_2_data_20 = { 0, -1, 0 }; -GXColor lbl_2_data_2C = { - 255, 255, 255, 255 -}; +GXColor lbl_2_data_2C = { 255, 255, 255, 255 }; -Vec lbl_2_data_30 = { - 0, 2500, 0 -}; +Vec lbl_2_data_30 = { 0, 2500, 0 }; -Vec lbl_2_data_3C = { - 0, 1, -1 -}; +Vec lbl_2_data_3C = { 0, 1, -1 }; -Vec lbl_2_data_48 = { - 0, 0, 0 -}; +Vec lbl_2_data_48 = { 0, 0, 0 }; s32 lbl_2_bss_11C; omObjData **lbl_2_bss_118; @@ -122,386 +107,374 @@ void fn_2_DBCC(s16 arg0); void ObjectSetup(void) { - s32 i; - omObjData *object; - CameraData *camera; - LightData *light; - OSReport("**** M401ObjectSetup ****\n"); - HuMemHeapDump(HuMemHeapPtrGet(HEAP_SYSTEM), -1); - HuMemHeapDump(HuMemHeapPtrGet(HEAP_DATA), -1); - HuMemHeapDump(HuMemHeapPtrGet(HEAP_DVD), -1); - lbl_2_bss_1C = omInitObjMan(60, 8192); - omGameSysInit(lbl_2_bss_1C); - lbl_2_bss_A8 = Hu3DGLightCreateV(&lbl_2_data_14, &lbl_2_data_20, &lbl_2_data_2C); - Hu3DGLightInfinitytSet(lbl_2_bss_A8); - light = &Hu3DGlobalLight[lbl_2_bss_A8]; - light->unk_00 |= 0x8000; - Hu3DCameraCreate(1); - camera = &Hu3DCamera[0]; - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - lbl_2_bss_114 = omAddObjEx(lbl_2_bss_1C, 1000, 3, 0, -1, fn_2_BD90); - lbl_2_bss_114->work[0] = 0; - lbl_2_bss_110 = omAddObjEx(lbl_2_bss_1C, 10, 0, 0, -1, fn_2_70C); - omMakeGroupEx(lbl_2_bss_1C, 0, 4); - lbl_2_bss_118 = omGetGroupMemberListEx(lbl_2_bss_1C, 0); - omMakeGroupEx(lbl_2_bss_1C, 1, 28); - for(i=0; i<4; i++) { - object = omAddObjEx(lbl_2_bss_1C, 1200, 4, 10, 0, fn_2_3B24); - object->work[0] = i; - } - lbl_2_bss_12C = 60; - lbl_2_bss_128 = 50; - lbl_2_bss_124 = 25000; - Hu3DShadowCreate(30, 20, 5000); - Hu3DShadowTPLvlSet(0.35f); - lbl_2_data_30.y = lbl_2_bss_60.y + 1500.0f; - lbl_2_data_30.z = lbl_2_bss_60.z + 500.0f; - lbl_2_data_48.y = lbl_2_bss_60.y; - lbl_2_data_48.z = lbl_2_bss_60.z + 500.0f; - Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); - lbl_2_bss_10C = omAddObjEx(lbl_2_bss_1C, 500, 12, 3, -1, fn_2_2FA4); - lbl_2_bss_108 = omAddObjEx(lbl_2_bss_1C, 1100, 1, 1, -1, fn_2_7CB4); - lbl_2_bss_100[0] = omAddObjEx(lbl_2_bss_1C, 1110, 1, 1, -1, fn_2_8E74); - lbl_2_bss_100[1] = omAddObjEx(lbl_2_bss_1C, 1110, 1, 1, -1, fn_2_8E74); - lbl_2_bss_FC = omAddObjEx(lbl_2_bss_1C, 1120, 1, 2, -1, fn_2_95E4); - lbl_2_bss_C8 = omAddObjEx(lbl_2_bss_1C, 100, 0, 0, -1, fn_2_D088); - lbl_2_bss_E0 = omAddObjEx(lbl_2_bss_1C, 1500, 0, 0, -1, fn_2_C1C); - fn_2_DBCC(90); - lbl_2_bss_F8 = omAddObjEx(lbl_2_bss_1C, 500, 9, 0, -1, fn_2_C6DC); - fn_2_9D00(lbl_2_bss_1C); - fn_2_1041C(); - fn_2_1079C(); - lbl_2_bss_F4 = fn_2_14640(lbl_2_bss_1C); - lbl_2_bss_50 = 0; - lbl_2_bss_54 = camera->pos; - Hu3DReflectNoSet(0); - lbl_2_bss_120 = 0; - lbl_2_bss_BE = 0; - lbl_2_bss_BA = 0; - Hu3DFogSet(3000, 10000, 10, 60, 160); - Hu3DBGColorSet(10, 60, 160); - lbl_2_bss_88 = 3000; - lbl_2_bss_84 = 142000; - lbl_2_bss_11C = HuAudFXPlay(1290); + s32 i; + omObjData *object; + CameraData *camera; + LightData *light; + OSReport("**** M401ObjectSetup ****\n"); + HuMemHeapDump(HuMemHeapPtrGet(HEAP_SYSTEM), -1); + HuMemHeapDump(HuMemHeapPtrGet(HEAP_DATA), -1); + HuMemHeapDump(HuMemHeapPtrGet(HEAP_DVD), -1); + lbl_2_bss_1C = omInitObjMan(60, 8192); + omGameSysInit(lbl_2_bss_1C); + lbl_2_bss_A8 = Hu3DGLightCreateV(&lbl_2_data_14, &lbl_2_data_20, &lbl_2_data_2C); + Hu3DGLightInfinitytSet(lbl_2_bss_A8); + light = &Hu3DGlobalLight[lbl_2_bss_A8]; + light->unk_00 |= 0x8000; + Hu3DCameraCreate(1); + camera = &Hu3DCamera[0]; + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + lbl_2_bss_114 = omAddObjEx(lbl_2_bss_1C, 1000, 3, 0, -1, fn_2_BD90); + lbl_2_bss_114->work[0] = 0; + lbl_2_bss_110 = omAddObjEx(lbl_2_bss_1C, 10, 0, 0, -1, fn_2_70C); + omMakeGroupEx(lbl_2_bss_1C, 0, 4); + lbl_2_bss_118 = omGetGroupMemberListEx(lbl_2_bss_1C, 0); + omMakeGroupEx(lbl_2_bss_1C, 1, 28); + for (i = 0; i < 4; i++) { + object = omAddObjEx(lbl_2_bss_1C, 1200, 4, 10, 0, fn_2_3B24); + object->work[0] = i; + } + lbl_2_bss_12C = 60; + lbl_2_bss_128 = 50; + lbl_2_bss_124 = 25000; + Hu3DShadowCreate(30, 20, 5000); + Hu3DShadowTPLvlSet(0.35f); + lbl_2_data_30.y = lbl_2_bss_60.y + 1500.0f; + lbl_2_data_30.z = lbl_2_bss_60.z + 500.0f; + lbl_2_data_48.y = lbl_2_bss_60.y; + lbl_2_data_48.z = lbl_2_bss_60.z + 500.0f; + Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); + lbl_2_bss_10C = omAddObjEx(lbl_2_bss_1C, 500, 12, 3, -1, fn_2_2FA4); + lbl_2_bss_108 = omAddObjEx(lbl_2_bss_1C, 1100, 1, 1, -1, fn_2_7CB4); + lbl_2_bss_100[0] = omAddObjEx(lbl_2_bss_1C, 1110, 1, 1, -1, fn_2_8E74); + lbl_2_bss_100[1] = omAddObjEx(lbl_2_bss_1C, 1110, 1, 1, -1, fn_2_8E74); + lbl_2_bss_FC = omAddObjEx(lbl_2_bss_1C, 1120, 1, 2, -1, fn_2_95E4); + lbl_2_bss_C8 = omAddObjEx(lbl_2_bss_1C, 100, 0, 0, -1, fn_2_D088); + lbl_2_bss_E0 = omAddObjEx(lbl_2_bss_1C, 1500, 0, 0, -1, fn_2_C1C); + fn_2_DBCC(90); + lbl_2_bss_F8 = omAddObjEx(lbl_2_bss_1C, 500, 9, 0, -1, fn_2_C6DC); + fn_2_9D00(lbl_2_bss_1C); + fn_2_1041C(); + fn_2_1079C(); + lbl_2_bss_F4 = fn_2_14640(lbl_2_bss_1C); + lbl_2_bss_50 = 0; + lbl_2_bss_54 = camera->pos; + Hu3DReflectNoSet(0); + lbl_2_bss_120 = 0; + lbl_2_bss_BE = 0; + lbl_2_bss_BA = 0; + Hu3DFogSet(3000, 10000, 10, 60, 160); + Hu3DBGColorSet(10, 60, 160); + lbl_2_bss_88 = 3000; + lbl_2_bss_84 = 142000; + lbl_2_bss_11C = HuAudFXPlay(1290); } void fn_2_70C(omObjData *object) { - s32 temp_r31; - M401WorkPlayer *temp_r30; - s16 temp_r29; - switch(lbl_2_bss_120) { - case 0: - break; - - case 1: - if(lbl_2_bss_BE == 1) { - lbl_2_bss_120 = 2; - lbl_2_bss_C0 = MGSeqFinishCreate(); - HuAudSeqFadeOut(lbl_2_bss_A4, 100); - } - break; - - case 2: - if(lbl_2_bss_114 == NULL) { - lbl_2_bss_114 = omAddObjEx(HuPrcCurrentGet(), 1000, 0, 0, -1, fn_2_C130); - lbl_2_bss_114->work[0] = 0; - temp_r29 = 0; - lbl_2_bss_BA = 0; - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r30 = lbl_2_bss_118[temp_r31]->data; - lbl_2_bss_118[temp_r31]->func = fn_2_48A0; - temp_r30->unk0 = 5; - temp_r30->unk68 = 0; - if(temp_r30->unk72 > temp_r29) { - temp_r29 = temp_r30->unk72; - } - lbl_2_bss_B2[temp_r31] = -1; - lbl_2_bss_AA[temp_r31] = -1; - } - if(temp_r29 > 0) { - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r30 = lbl_2_bss_118[temp_r31]->data; - if(temp_r30->unk72 == temp_r29) { - lbl_2_bss_AA[lbl_2_bss_BA] = GWPlayerCfg[temp_r31].character; - lbl_2_bss_B2[lbl_2_bss_BA++] = temp_r31; - temp_r30->unk68 = 1; - } - } - } - OSReport("winnercnt:%d\n", lbl_2_bss_BA); - } - break; - } - if(omSysExitReq) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - HuAudSeqFadeOut(lbl_2_bss_A4, 100); - HuAudFXStop(lbl_2_bss_11C); - object->func = fn_2_A10; - } + s32 temp_r31; + M401WorkPlayer *temp_r30; + s16 temp_r29; + switch (lbl_2_bss_120) { + case 0: + break; + + case 1: + if (lbl_2_bss_BE == 1) { + lbl_2_bss_120 = 2; + lbl_2_bss_C0 = MGSeqFinishCreate(); + HuAudSeqFadeOut(lbl_2_bss_A4, 100); + } + break; + + case 2: + if (lbl_2_bss_114 == NULL) { + lbl_2_bss_114 = omAddObjEx(HuPrcCurrentGet(), 1000, 0, 0, -1, fn_2_C130); + lbl_2_bss_114->work[0] = 0; + temp_r29 = 0; + lbl_2_bss_BA = 0; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r30 = lbl_2_bss_118[temp_r31]->data; + lbl_2_bss_118[temp_r31]->func = fn_2_48A0; + temp_r30->unk0 = 5; + temp_r30->unk68 = 0; + if (temp_r30->unk72 > temp_r29) { + temp_r29 = temp_r30->unk72; + } + lbl_2_bss_B2[temp_r31] = -1; + lbl_2_bss_AA[temp_r31] = -1; + } + if (temp_r29 > 0) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r30 = lbl_2_bss_118[temp_r31]->data; + if (temp_r30->unk72 == temp_r29) { + lbl_2_bss_AA[lbl_2_bss_BA] = GWPlayerCfg[temp_r31].character; + lbl_2_bss_B2[lbl_2_bss_BA++] = temp_r31; + temp_r30->unk68 = 1; + } + } + } + OSReport("winnercnt:%d\n", lbl_2_bss_BA); + } + break; + } + if (omSysExitReq) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudSeqFadeOut(lbl_2_bss_A4, 100); + HuAudFXStop(lbl_2_bss_11C); + object->func = fn_2_A10; + } } void fn_2_A10(omObjData *object) { - s32 i; - if(!WipeStatGet()) { - fn_2_10710(); - for(i=0; i<4; i++) { - CharModelKill(lbl_2_data_4[GWPlayerCfg[i].character]); - } - HuAudFXListnerKill(); - omOvlReturnEx(1, 1); - } + s32 i; + if (!WipeStatGet()) { + fn_2_10710(); + for (i = 0; i < 4; i++) { + CharModelKill(lbl_2_data_4[GWPlayerCfg[i].character]); + } + HuAudFXListnerKill(); + omOvlReturnEx(1, 1); + } } void fn_2_A98(void) { - Hu3DFogSet(3000, 10000, 10, 60, 160); - Hu3DBGColorSet(10, 60, 160); + Hu3DFogSet(3000, 10000, 10, 60, 160); + Hu3DBGColorSet(10, 60, 160); } typedef struct m401_work_2d { - s16 unk0[4]; - s16 unk8[4][3]; - u8 unk20[0x30]; - s16 unk50[4][3]; - s16 unk68[4][3]; - s16 unk80[4]; - s16 unk88[4]; - float unk90[4]; - float unkA0[4]; - float unkB0[4]; - float unkC0[4]; - float unkD0[4]; - float unkE0[4]; - float unkF0[4]; - float unk100[4]; - float unk110[4]; - float unk120[4]; - s16 unk130[4]; - s16 unk138[4]; - s16 unk140[4]; + s16 unk0[4]; + s16 unk8[4][3]; + u8 unk20[0x30]; + s16 unk50[4][3]; + s16 unk68[4][3]; + s16 unk80[4]; + s16 unk88[4]; + float unk90[4]; + float unkA0[4]; + float unkB0[4]; + float unkC0[4]; + float unkD0[4]; + float unkE0[4]; + float unkF0[4]; + float unk100[4]; + float unk110[4]; + float unk120[4]; + s16 unk130[4]; + s16 unk138[4]; + s16 unk140[4]; } M401Work2D; void fn_2_AEC(s16 arg0) { - M401Work2D *temp_r31; - s32 i; - s32 j; - temp_r31 = lbl_2_bss_E0->data; - if(arg0) { - for(i=0; i<4; i++) { - espDispOn(temp_r31->unk0[i]); - espDispOn(temp_r31->unk80[i]); - espDispOn(temp_r31->unk88[i]); - for(j=0; j<2; j++) { - espDispOn(temp_r31->unk8[i][j]); - } - } - } else { - for(i=0; i<4; i++) { - espDispOff(temp_r31->unk0[i]); - espDispOff(temp_r31->unk80[i]); - espDispOff(temp_r31->unk88[i]); - for(j=0; j<2; j++) { - espDispOff(temp_r31->unk8[i][j]); - } - } - } + M401Work2D *temp_r31; + s32 i; + s32 j; + temp_r31 = lbl_2_bss_E0->data; + if (arg0) { + for (i = 0; i < 4; i++) { + espDispOn(temp_r31->unk0[i]); + espDispOn(temp_r31->unk80[i]); + espDispOn(temp_r31->unk88[i]); + for (j = 0; j < 2; j++) { + espDispOn(temp_r31->unk8[i][j]); + } + } + } + else { + for (i = 0; i < 4; i++) { + espDispOff(temp_r31->unk0[i]); + espDispOff(temp_r31->unk80[i]); + espDispOff(temp_r31->unk88[i]); + for (j = 0; j < 2; j++) { + espDispOff(temp_r31->unk8[i][j]); + } + } + } } s32 lbl_2_data_80[] = { - 0x610000, - 0x610001, - 0x610002, - 0x610003, - 0x610004, - 0x610005, - 0x610006, - 0x610007 + DATA_MAKE_NUM(DATADIR_MGCONST, 0x00), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x01), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x02), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x03), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x04), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x05), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x06), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x07), }; -#define PLAYER_POS_X(index, left, width) ((((index)&1)*width)+left) -#define PLAYER_POS_Y(index, top, height) ((((index)>1)*height)+top) +#define PLAYER_POS_X(index, left, width) ((((index)&1) * width) + left) +#define PLAYER_POS_Y(index, top, height) ((((index) > 1) * height) + top) void fn_2_C1C(omObjData *object) { - M401Work2D *temp_r31; - s32 i; - s32 j; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M401Work2D), MEMORY_DEFAULT_NUM); - temp_r31 = object->data; - for(i=0; i<4; i++) { - temp_r31->unk0[i] = espEntry(lbl_2_data_80[GWPlayerCfg[i].character], 2, 0); - espDispOff(temp_r31->unk0[i]); - espDrawNoSet(temp_r31->unk0[i], 0); - espPosSet(temp_r31->unk0[i], PLAYER_POS_X(i, 37, 438), PLAYER_POS_Y(i, 59, 358)); - temp_r31->unk80[i] = espEntry(0x20002F, 3, 0); - espDispOff(temp_r31->unk80[i]); - espDrawNoSet(temp_r31->unk80[i], 0); - espPosSet(temp_r31->unk80[i], PLAYER_POS_X(i, 73, 438), PLAYER_POS_Y(i, 61, 358)); - temp_r31->unk88[i] = espEntry(0x200030, 4, 0); - espDispOff(temp_r31->unk88[i]); - espDrawNoSet(temp_r31->unk88[i], 0); - espPosSet(temp_r31->unk88[i], PLAYER_POS_X(i, 73, 438), PLAYER_POS_Y(i, 61, 358)); - espColorSet(temp_r31->unk88[i], 0, 0, 0); - espTPLvlSet(temp_r31->unk88[i], 0.5f); - for(j=0; j<2; j++) { - temp_r31->unk8[i][j] = espEntry(0x20002E, 1, 0); - espDispOff(temp_r31->unk8[i][j]); - espDrawNoSet(temp_r31->unk8[i][j], 0); - espPosSet(temp_r31->unk8[i][j], PLAYER_POS_X(i, 69+(j*20), 438), PLAYER_POS_Y(i, 63, 358)); - espAttrSet(temp_r31->unk8[i][j], HUSPR_ATTR_NOANIM); - } - for(j=0; j<3; j++) { - temp_r31->unk50[i][j] = espEntry(0x20002D, 0, 0); - espDispOff(temp_r31->unk50[i][j]); - espDrawNoSet(temp_r31->unk50[i][j], 0); - espAttrSet(temp_r31->unk50[i][j], HUSPR_ATTR_NOANIM); - temp_r31->unk68[i][j] = espEntry(0x20002D, 0, 0); - espDispOff(temp_r31->unk68[i][j]); - espDrawNoSet(temp_r31->unk68[i][j], 0); - espAttrSet(temp_r31->unk68[i][j], HUSPR_ATTR_NOANIM); - } - espBankSet(temp_r31->unk50[i][0], 10); - espBankSet(temp_r31->unk68[i][0], 11); - temp_r31->unk90[i] = 1.0f; - temp_r31->unkA0[i] = 1.0f; - temp_r31->unk130[i] = 0; - temp_r31->unk138[i] = 0; - } - object->func = fn_2_11D0; + M401Work2D *temp_r31; + s32 i; + s32 j; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M401Work2D), MEMORY_DEFAULT_NUM); + temp_r31 = object->data; + for (i = 0; i < 4; i++) { + temp_r31->unk0[i] = espEntry(lbl_2_data_80[GWPlayerCfg[i].character], 2, 0); + espDispOff(temp_r31->unk0[i]); + espDrawNoSet(temp_r31->unk0[i], 0); + espPosSet(temp_r31->unk0[i], PLAYER_POS_X(i, 37, 438), PLAYER_POS_Y(i, 59, 358)); + temp_r31->unk80[i] = espEntry(DATA_MAKE_NUM(DATADIR_M401, 0x2F), 3, 0); + espDispOff(temp_r31->unk80[i]); + espDrawNoSet(temp_r31->unk80[i], 0); + espPosSet(temp_r31->unk80[i], PLAYER_POS_X(i, 73, 438), PLAYER_POS_Y(i, 61, 358)); + temp_r31->unk88[i] = espEntry(DATA_MAKE_NUM(DATADIR_M401, 0x30), 4, 0); + espDispOff(temp_r31->unk88[i]); + espDrawNoSet(temp_r31->unk88[i], 0); + espPosSet(temp_r31->unk88[i], PLAYER_POS_X(i, 73, 438), PLAYER_POS_Y(i, 61, 358)); + espColorSet(temp_r31->unk88[i], 0, 0, 0); + espTPLvlSet(temp_r31->unk88[i], 0.5f); + for (j = 0; j < 2; j++) { + temp_r31->unk8[i][j] = espEntry(DATA_MAKE_NUM(DATADIR_M401, 0x2E), 1, 0); + espDispOff(temp_r31->unk8[i][j]); + espDrawNoSet(temp_r31->unk8[i][j], 0); + espPosSet(temp_r31->unk8[i][j], PLAYER_POS_X(i, 69 + (j * 20), 438), PLAYER_POS_Y(i, 63, 358)); + espAttrSet(temp_r31->unk8[i][j], HUSPR_ATTR_NOANIM); + } + for (j = 0; j < 3; j++) { + temp_r31->unk50[i][j] = espEntry(DATA_MAKE_NUM(DATADIR_M401, 0x2D), 0, 0); + espDispOff(temp_r31->unk50[i][j]); + espDrawNoSet(temp_r31->unk50[i][j], 0); + espAttrSet(temp_r31->unk50[i][j], HUSPR_ATTR_NOANIM); + temp_r31->unk68[i][j] = espEntry(DATA_MAKE_NUM(DATADIR_M401, 0x2D), 0, 0); + espDispOff(temp_r31->unk68[i][j]); + espDrawNoSet(temp_r31->unk68[i][j], 0); + espAttrSet(temp_r31->unk68[i][j], HUSPR_ATTR_NOANIM); + } + espBankSet(temp_r31->unk50[i][0], 10); + espBankSet(temp_r31->unk68[i][0], 11); + temp_r31->unk90[i] = 1.0f; + temp_r31->unkA0[i] = 1.0f; + temp_r31->unk130[i] = 0; + temp_r31->unk138[i] = 0; + } + object->func = fn_2_11D0; } void fn_2_15C4(s16 arg0); void fn_2_11D0(omObjData *object) { - M401Work2D *temp_r31; - s32 i; - s32 j; - omObjData *temp_r28; - Vec sp18; - Vec spC; - M401WorkPlayer *sp8; - temp_r31 = object->data; - for(i=0; i<4; i++) { - sp8 = lbl_2_bss_118[i]->data; - if(temp_r31->unk130[i]) { - temp_r28 = lbl_2_bss_118[i]; - sp18.x = temp_r28->trans.x; - sp18.y = temp_r28->trans.y; - sp18.z = temp_r28->trans.z; - fn_2_10240(&sp18, &spC); - for(j=0; j<3; j++) { - espPosSet(temp_r31->unk50[i][j], (-20.0f+spC.x+temp_r31->unkF0[i])+(j*16), 20.0f+spC.y+temp_r31->unk100[i]); - espTPLvlSet(temp_r31->unk50[i][j], temp_r31->unk90[i]); - } - temp_r31->unkC0[i] -= 0.5f; - temp_r31->unk100[i] -= 1.0f; - if(temp_r31->unk130[i] < 15) { - temp_r31->unk90[i] -= 1.0f/15.0f; - } - if(--temp_r31->unk130[i] == 0) { - espDispOff(temp_r31->unk50[i][0]); - espDispOff(temp_r31->unk50[i][1]); - } - } - if(temp_r31->unk138[i]) { - temp_r28 = lbl_2_bss_118[i]; - sp18.x = temp_r28->trans.x; - sp18.y = temp_r28->trans.y; - sp18.z = temp_r28->trans.z; - fn_2_10240(&sp18, &spC); - for(j=0; j<2; j++) { - espPosSet(temp_r31->unk68[i][j], (-20.0f+spC.x+temp_r31->unk110[i])+(j*16), -20.0f+spC.y+temp_r31->unk120[i]); - espTPLvlSet(temp_r31->unk68[i][j], temp_r31->unkA0[i]); - } - temp_r31->unkE0[i] += 0.5f; - temp_r31->unk120[i] += 1.0f; - if(temp_r31->unk138[i] < 15) { - temp_r31->unkA0[i] -= 1.0f/15.0f; - } - if(--temp_r31->unk138[i] == 0) { - espDispOff(temp_r31->unk68[i][0]); - espDispOff(temp_r31->unk68[i][1]); - } - } - fn_2_15C4(i); - } + M401Work2D *temp_r31; + s32 i; + s32 j; + omObjData *temp_r28; + Vec sp18; + Vec spC; + M401WorkPlayer *sp8; + temp_r31 = object->data; + for (i = 0; i < 4; i++) { + sp8 = lbl_2_bss_118[i]->data; + if (temp_r31->unk130[i]) { + temp_r28 = lbl_2_bss_118[i]; + sp18.x = temp_r28->trans.x; + sp18.y = temp_r28->trans.y; + sp18.z = temp_r28->trans.z; + fn_2_10240(&sp18, &spC); + for (j = 0; j < 3; j++) { + espPosSet(temp_r31->unk50[i][j], (-20.0f + spC.x + temp_r31->unkF0[i]) + (j * 16), 20.0f + spC.y + temp_r31->unk100[i]); + espTPLvlSet(temp_r31->unk50[i][j], temp_r31->unk90[i]); + } + temp_r31->unkC0[i] -= 0.5f; + temp_r31->unk100[i] -= 1.0f; + if (temp_r31->unk130[i] < 15) { + temp_r31->unk90[i] -= 1.0f / 15.0f; + } + if (--temp_r31->unk130[i] == 0) { + espDispOff(temp_r31->unk50[i][0]); + espDispOff(temp_r31->unk50[i][1]); + } + } + if (temp_r31->unk138[i]) { + temp_r28 = lbl_2_bss_118[i]; + sp18.x = temp_r28->trans.x; + sp18.y = temp_r28->trans.y; + sp18.z = temp_r28->trans.z; + fn_2_10240(&sp18, &spC); + for (j = 0; j < 2; j++) { + espPosSet(temp_r31->unk68[i][j], (-20.0f + spC.x + temp_r31->unk110[i]) + (j * 16), -20.0f + spC.y + temp_r31->unk120[i]); + espTPLvlSet(temp_r31->unk68[i][j], temp_r31->unkA0[i]); + } + temp_r31->unkE0[i] += 0.5f; + temp_r31->unk120[i] += 1.0f; + if (temp_r31->unk138[i] < 15) { + temp_r31->unkA0[i] -= 1.0f / 15.0f; + } + if (--temp_r31->unk138[i] == 0) { + espDispOff(temp_r31->unk68[i][0]); + espDispOff(temp_r31->unk68[i][1]); + } + } + fn_2_15C4(i); + } } void fn_2_15C4(s16 arg0) { - M401Work2D *temp_r31; - s32 temp_r30; - M401WorkPlayer *temp_r29; - temp_r31 = lbl_2_bss_E0->data; - temp_r29 = lbl_2_bss_118[arg0]->data; - temp_r30 = temp_r29->unk72; - espBankSet(temp_r31->unk8[arg0][0], temp_r30/10); - espBankSet(temp_r31->unk8[arg0][1], temp_r30%10); + M401Work2D *temp_r31; + s32 temp_r30; + M401WorkPlayer *temp_r29; + temp_r31 = lbl_2_bss_E0->data; + temp_r29 = lbl_2_bss_118[arg0]->data; + temp_r30 = temp_r29->unk72; + espBankSet(temp_r31->unk8[arg0][0], temp_r30 / 10); + espBankSet(temp_r31->unk8[arg0][1], temp_r30 % 10); } void fn_2_169C(s16 arg0) { - M401Work2D *temp_r31; - s32 i; - M401WorkPlayer *temp_r28; - temp_r31 = lbl_2_bss_E0->data; - temp_r28 = lbl_2_bss_118[arg0]->data; - for(i=0; i<2; i++ ){ - espDispOn(temp_r31->unk50[arg0][i]); - } - temp_r31->unk90[arg0] = 1; - temp_r31->unkC0[arg0] = PLAYER_POS_Y(arg0, 52, 398); - temp_r31->unkB0[arg0] = PLAYER_POS_X(arg0, 41, 442); - temp_r31->unk100[arg0] = 0; - temp_r31->unkF0[arg0] = 0; - espBankSet(temp_r31->unk50[arg0][1], temp_r28->unk74); - temp_r31->unk130[arg0] = 45; + M401Work2D *temp_r31; + s32 i; + M401WorkPlayer *temp_r28; + temp_r31 = lbl_2_bss_E0->data; + temp_r28 = lbl_2_bss_118[arg0]->data; + for (i = 0; i < 2; i++) { + espDispOn(temp_r31->unk50[arg0][i]); + } + temp_r31->unk90[arg0] = 1; + temp_r31->unkC0[arg0] = PLAYER_POS_Y(arg0, 52, 398); + temp_r31->unkB0[arg0] = PLAYER_POS_X(arg0, 41, 442); + temp_r31->unk100[arg0] = 0; + temp_r31->unkF0[arg0] = 0; + espBankSet(temp_r31->unk50[arg0][1], temp_r28->unk74); + temp_r31->unk130[arg0] = 45; } void fn_2_1858(s16 arg0, s16 arg1) { - M401Work2D *temp_r31; - M401WorkPlayer *temp_r29; - s32 i; - temp_r31 = lbl_2_bss_E0->data; - temp_r29 = lbl_2_bss_118[arg0]->data; - for(i=0; i<2; i++ ){ - espDispOn(temp_r31->unk68[arg0][i]); - } - temp_r31->unkA0[arg0] = 1; - temp_r31->unkE0[arg0] = PLAYER_POS_Y(arg0, 20, 398); - temp_r31->unkD0[arg0] = PLAYER_POS_X(arg0, 41, 442); - temp_r31->unk120[arg0] = 0; - temp_r31->unk110[arg0] = 0; - espBankSet(temp_r31->unk68[arg0][1], arg1); - temp_r31->unk138[arg0] = 45; - temp_r31->unk140[arg0] = arg1; - temp_r29->unk72 -= arg1; - if(temp_r29->unk72 < 0) { - temp_r29->unk72 = 0; - } + M401Work2D *temp_r31; + M401WorkPlayer *temp_r29; + s32 i; + temp_r31 = lbl_2_bss_E0->data; + temp_r29 = lbl_2_bss_118[arg0]->data; + for (i = 0; i < 2; i++) { + espDispOn(temp_r31->unk68[arg0][i]); + } + temp_r31->unkA0[arg0] = 1; + temp_r31->unkE0[arg0] = PLAYER_POS_Y(arg0, 20, 398); + temp_r31->unkD0[arg0] = PLAYER_POS_X(arg0, 41, 442); + temp_r31->unk120[arg0] = 0; + temp_r31->unk110[arg0] = 0; + espBankSet(temp_r31->unk68[arg0][1], arg1); + temp_r31->unk138[arg0] = 45; + temp_r31->unk140[arg0] = arg1; + temp_r29->unk72 -= arg1; + if (temp_r29->unk72 < 0) { + temp_r29->unk72 = 0; + } } -float lbl_2_data_A0[] = { - -500, - -8500, - -17500, - -26500, - -99000 -}; +float lbl_2_data_A0[] = { -500, -8500, -17500, -26500, -99000 }; -float lbl_2_data_B4[] = { - -9100, - -18100, - -27100, - -36100, - -45100, - -100000 -}; +float lbl_2_data_B4[] = { -9100, -18100, -27100, -36100, -45100, -100000 }; void fn_2_1A38(omObjData *object); void fn_2_1B80(omObjData *object); @@ -514,36 +487,19 @@ void fn_2_2DCC(omObjData *object); void fn_2_2E20(omObjData *object); void fn_2_2ED0(omObjData *object); -omObjFunc lbl_2_data_CC[][2] = { - fn_2_1A38, - fn_2_2CBC, - fn_2_1B80, - fn_2_2D64, - fn_2_1CF0, - fn_2_2DCC, - fn_2_1DE8, - fn_2_2E20, - fn_2_20B0, - fn_2_2ED0 -}; +omObjFunc lbl_2_data_CC[][2] = { fn_2_1A38, fn_2_2CBC, fn_2_1B80, fn_2_2D64, fn_2_1CF0, fn_2_2DCC, fn_2_1DE8, fn_2_2E20, fn_2_20B0, fn_2_2ED0 }; -char *lbl_2_data_124[] = { - "kaitei01", - "kaitei02", - "kaitei03", - "kaitei04", - "kaitei05" -}; +char *lbl_2_data_124[] = { "kaitei01", "kaitei02", "kaitei03", "kaitei04", "kaitei05" }; s32 lbl_2_data_138[] = { - 0x5C0002, - 0x5C0002, - 0x5C0002, - 0x5C0002, - 0x5C0002, - 0x5C0002, - 0x5C0002, - 0x5C0002, + DATA_MAKE_NUM(DATADIR_MARIO, 0x02), + DATA_MAKE_NUM(DATADIR_MARIO, 0x02), + DATA_MAKE_NUM(DATADIR_MARIO, 0x02), + DATA_MAKE_NUM(DATADIR_MARIO, 0x02), + DATA_MAKE_NUM(DATADIR_MARIO, 0x02), + DATA_MAKE_NUM(DATADIR_MARIO, 0x02), + DATA_MAKE_NUM(DATADIR_MARIO, 0x02), + DATA_MAKE_NUM(DATADIR_MARIO, 0x02), }; omObjData *fn_2_FC40(s16 arg0, Vec *arg1, Vec *arg2, Vec *arg3); @@ -551,604 +507,617 @@ void fn_2_E6BC(omObjData *object, float arg2, float arg3, float arg4, float arg5 void fn_2_1A38(omObjData *object) { - Vec sp20; - Vec sp14; - Vec sp8; - HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[0]); - omObjData *temp_r30; - temp_r31->type = 2; - sp20.x = -2500; - sp20.y = 150; - sp20.z = -6800; - sp14.x = 50; - sp14.y = 50; - sp14.z = 50; - sp8.x = 1500; - sp8.y = 150; - sp8.z = -4800; - temp_r30 = fn_2_FC40(18, &sp20, &sp14, &sp8); - fn_2_E6BC((omObjData *)temp_r30->work[0], 5, 1.5, 0.2, 0.8, 3); + Vec sp20; + Vec sp14; + Vec sp8; + HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[0]); + omObjData *temp_r30; + temp_r31->type = 2; + sp20.x = -2500; + sp20.y = 150; + sp20.z = -6800; + sp14.x = 50; + sp14.y = 50; + sp14.z = 50; + sp8.x = 1500; + sp8.y = 150; + sp8.z = -4800; + temp_r30 = fn_2_FC40(18, &sp20, &sp14, &sp8); + fn_2_E6BC((omObjData *)temp_r30->work[0], 5, 1.5, 0.2, 0.8, 3); } void fn_2_1B80(omObjData *object) { - Vec sp14; - Vec sp8; - omObjData *temp_r31; - HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[1]); - temp_r30->type = 2; - sp14.x = -1000; - sp14.y = 0; - sp14.z = -9100; - sp8.x = 150; - sp8.y = 100; - sp8.z = 100; - temp_r31 = fn_2_FC40(14, &sp14, &sp8, &sp14); - omSetRot(temp_r31, 3, 0, 0); - omSetSca(temp_r31, 0, 0, 50); - fn_2_E6BC((omObjData *)temp_r31->work[0], 4.5, 2.5, 0.08, 0.9, 1); + Vec sp14; + Vec sp8; + omObjData *temp_r31; + HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[1]); + temp_r30->type = 2; + sp14.x = -1000; + sp14.y = 0; + sp14.z = -9100; + sp8.x = 150; + sp8.y = 100; + sp8.z = 100; + temp_r31 = fn_2_FC40(14, &sp14, &sp8, &sp14); + omSetRot(temp_r31, 3, 0, 0); + omSetSca(temp_r31, 0, 0, 50); + fn_2_E6BC((omObjData *)temp_r31->work[0], 4.5, 2.5, 0.08, 0.9, 1); } void fn_2_1CF0(omObjData *object) { - Vec sp20; - Vec sp14; - Vec sp8; - HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[2]); - temp_r31->type = 2; - sp20.x = 500; - sp20.y = 0; - sp20.z = -24300; - sp14.x = 200; - sp14.y = 100; - sp14.z = 100; - sp8.x = 1000; - sp8.y = 0; - sp8.z = -16300; - fn_2_FC40(40, &sp20, &sp14, &sp8); + Vec sp20; + Vec sp14; + Vec sp8; + HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[2]); + temp_r31->type = 2; + sp20.x = 500; + sp20.y = 0; + sp20.z = -24300; + sp14.x = 200; + sp14.y = 100; + sp14.z = 100; + sp8.x = 1000; + sp8.y = 0; + sp8.z = -16300; + fn_2_FC40(40, &sp20, &sp14, &sp8); } void fn_2_91AC(omObjData *object, Vec *pos); void fn_2_1DE8(omObjData *object) { - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - omObjData *temp_r31; - HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[3]); - temp_r30->type = 2; - sp2C.x = 0; - sp2C.y = -150.0f+((1.0f/255.0f)*(300.0f*frandu8())); - sp2C.z = -23000; - fn_2_91AC(lbl_2_bss_100[0], &sp2C); - sp2C.x = 0; - sp2C.y = -150.0f+((1.0f/255.0f)*(300.0f*frandu8())); - sp2C.z = -25000; - fn_2_91AC(lbl_2_bss_100[1], &sp2C); - sp2C.x = 5500; - sp2C.y = 0; - sp2C.z = -29800; - sp20.x = 100; - sp20.y = 100; - sp20.z = 100; - sp14.x = -1500; - sp14.y = 0; - sp14.z = -24900; - temp_r31 = fn_2_FC40(20, &sp2C, &sp20, &sp14); - fn_2_E6BC((omObjData *)temp_r31->work[0], 6, 1.5f, 0.2f, 0.8f, 3.5f); - sp8.x = -650; - sp8.y = -360; - sp8.z = -26300; - lbl_2_bss_D0 = fn_2_10A88(&sp8, 3); - lbl_2_bss_90[0] = HuAudFXEmiterPlay(1291, &sp8); + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + omObjData *temp_r31; + HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[3]); + temp_r30->type = 2; + sp2C.x = 0; + sp2C.y = -150.0f + ((1.0f / 255.0f) * (300.0f * frandu8())); + sp2C.z = -23000; + fn_2_91AC(lbl_2_bss_100[0], &sp2C); + sp2C.x = 0; + sp2C.y = -150.0f + ((1.0f / 255.0f) * (300.0f * frandu8())); + sp2C.z = -25000; + fn_2_91AC(lbl_2_bss_100[1], &sp2C); + sp2C.x = 5500; + sp2C.y = 0; + sp2C.z = -29800; + sp20.x = 100; + sp20.y = 100; + sp20.z = 100; + sp14.x = -1500; + sp14.y = 0; + sp14.z = -24900; + temp_r31 = fn_2_FC40(20, &sp2C, &sp20, &sp14); + fn_2_E6BC((omObjData *)temp_r31->work[0], 6, 1.5f, 0.2f, 0.8f, 3.5f); + sp8.x = -650; + sp8.y = -360; + sp8.z = -26300; + lbl_2_bss_D0 = fn_2_10A88(&sp8, 3); + lbl_2_bss_90[0] = HuAudFXEmiterPlay(1291, &sp8); } void fn_2_20B0(omObjData *object) { - Vec sp8; - HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[4]); - temp_r30->type = 2; - Hu3DModelAttrReset(object->model[7], 1); - sp8.x = 0; - sp8.y = -370; - sp8.z = -43000; - lbl_2_bss_8 = fn_2_10A88(&sp8, 3); - lbl_2_bss_90[1] = HuAudFXEmiterPlay(1291, &sp8); - sp8.x = 380; - sp8.y = -440; - sp8.z = -32000; - lbl_2_bss_CC = fn_2_10A88(&sp8, 3); - lbl_2_bss_90[2] = HuAudFXEmiterPlay(1291, &sp8); - Hu3DModelAttrReset(object->model[2], 1); - Hu3DModelAttrSet(object->model[2], 0xC0000001); + Vec sp8; + HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[4]); + temp_r30->type = 2; + Hu3DModelAttrReset(object->model[7], 1); + sp8.x = 0; + sp8.y = -370; + sp8.z = -43000; + lbl_2_bss_8 = fn_2_10A88(&sp8, 3); + lbl_2_bss_90[1] = HuAudFXEmiterPlay(1291, &sp8); + sp8.x = 380; + sp8.y = -440; + sp8.z = -32000; + lbl_2_bss_CC = fn_2_10A88(&sp8, 3); + lbl_2_bss_90[2] = HuAudFXEmiterPlay(1291, &sp8); + Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], 0xC0000001); } void fn_2_21F8(omObjData *object) { - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - s32 temp_r30; - HsfObject *temp_r29 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[0]); - s32 temp_r28; - temp_r29->type = 2; - Hu3DModelAttrReset(object->model[0], 1); - Hu3DModelAttrReset(object->model[1], 1); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DModelAttrSet(object->model[1], 0x40000001); - Hu3DModelAttrReset(object->model[3], 1); - lbl_2_bss_44.x = 0; - lbl_2_bss_44.y = 100; - lbl_2_bss_44.z = 0; - lbl_2_bss_38.x = 0; - lbl_2_bss_38.y = 1000; - lbl_2_bss_38.z = -1500; - lbl_2_bss_2C.x = 0; - lbl_2_bss_2C.y = 1; - lbl_2_bss_2C.z = 0; - Hu3DCameraPosSetV(1, &lbl_2_bss_44, &lbl_2_bss_2C, &lbl_2_bss_38); - Hu3DCameraPerspectiveSet(1, lbl_2_bss_12C, lbl_2_bss_128, lbl_2_bss_124, 1.2f); - lbl_2_bss_54 = lbl_2_bss_44; - fn_2_D088(NULL); - sp20 = lbl_2_bss_44; - VECSubtract(&lbl_2_bss_38, &lbl_2_bss_44, &sp2C); - VECNormalize(&sp2C, &sp2C); - HuAudFXListnerSetEX(&sp20, &sp2C, lbl_2_bss_88, lbl_2_bss_84, 300, 300, 300); - sp14.x = 300; - sp14.y = -450; - sp14.z = -3100; - lbl_2_bss_D8 = fn_2_10A88(&sp14, 3); - lbl_2_bss_90[0] = HuAudFXEmiterPlay(1291, &sp14); - sp14.x = -300; - sp14.y = -340; - sp14.z = -4720; - lbl_2_bss_D4 = fn_2_10A88(&sp14, 3); - lbl_2_bss_90[1] = HuAudFXEmiterPlay(1291, &sp14); - Hu3DModelAttrReset(object->model[2], 1); - Hu3DModelAttrSet(object->model[2], 0xC0000001); - temp_r28 = 4; - for(temp_r30=0; temp_r30model[0], lbl_2_data_124[0]); + s32 temp_r28; + temp_r29->type = 2; + Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[1], 0x40000001); + Hu3DModelAttrReset(object->model[3], 1); + lbl_2_bss_44.x = 0; + lbl_2_bss_44.y = 100; + lbl_2_bss_44.z = 0; + lbl_2_bss_38.x = 0; + lbl_2_bss_38.y = 1000; + lbl_2_bss_38.z = -1500; + lbl_2_bss_2C.x = 0; + lbl_2_bss_2C.y = 1; + lbl_2_bss_2C.z = 0; + Hu3DCameraPosSetV(1, &lbl_2_bss_44, &lbl_2_bss_2C, &lbl_2_bss_38); + Hu3DCameraPerspectiveSet(1, lbl_2_bss_12C, lbl_2_bss_128, lbl_2_bss_124, 1.2f); + lbl_2_bss_54 = lbl_2_bss_44; + fn_2_D088(NULL); + sp20 = lbl_2_bss_44; + VECSubtract(&lbl_2_bss_38, &lbl_2_bss_44, &sp2C); + VECNormalize(&sp2C, &sp2C); + HuAudFXListnerSetEX(&sp20, &sp2C, lbl_2_bss_88, lbl_2_bss_84, 300, 300, 300); + sp14.x = 300; + sp14.y = -450; + sp14.z = -3100; + lbl_2_bss_D8 = fn_2_10A88(&sp14, 3); + lbl_2_bss_90[0] = HuAudFXEmiterPlay(1291, &sp14); + sp14.x = -300; + sp14.y = -340; + sp14.z = -4720; + lbl_2_bss_D4 = fn_2_10A88(&sp14, 3); + lbl_2_bss_90[1] = HuAudFXEmiterPlay(1291, &sp14); + Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], 0xC0000001); + temp_r28 = 4; + for (temp_r30 = 0; temp_r30 < temp_r28; temp_r30++) { + sp8.x = -340.0f + ((1.0f / 255.0f) * (680.0f * frandu8())); + sp8.y = -250.0f + ((1.0f / 255.0f) * (500.0f * frandu8())); + sp8.z = ((-1550.0f - (temp_r30 * 260)) - 40.0f) + ((1.0f / 255.0f) * (80.0f * frandu8())); + fn_2_10A88(&sp8, 0); + } } typedef struct work_2FA4 { - s32 unk0; - float unk4; - Vec unk8; - Vec unk14[2]; - s16 unk2C; + s32 unk0; + float unk4; + Vec unk8; + Vec unk14[2]; + s16 unk2C; } Work2FA4; void fn_2_26E0(omObjData *object) { - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - Work2FA4 *temp_r30; - s32 temp_r29; - Hu3DModelAttrReset(object->model[4], 1); - Hu3DModelClusterAttrSet(object->model[4], 0, 0xC0000001); - Hu3DModelAttrReset(object->model[8], 1); - Hu3DModelAttrSet(object->model[8], 0x40000001); - Hu3DModelAttrSet(object->model[4], 0x40000001); - Hu3DModelShadowMapSet(object->model[4]); - Hu3DModelAttrReset(object->model[5], 1); - Hu3DModelPosSet(object->model[4], 0, 0, 0); - Hu3DModelAmbSet(object->model[4], 1, 1, 1); - Hu3DModelPosSet(object->model[5], 0, 0, 0); - Hu3DModelPosSet(object->model[6], 0, 0, 0); - temp_r30 = lbl_2_bss_10C->data; - if(lbl_2_bss_BA) { - temp_r30->unk14[0].x = 210; - temp_r30->unk14[0].y = 1018; - temp_r30->unk14[0].z = 0; - temp_r30->unk14[1].x = -160; - temp_r30->unk14[1].y = 1020; - temp_r30->unk14[1].z = -50; - for(temp_r29=0; temp_r29<2; temp_r29++) { - Hu3DModelPosSet(object->model[temp_r29+9], temp_r30->unk14[temp_r29].x, temp_r30->unk14[temp_r29].y, temp_r30->unk14[temp_r29].z); - Hu3DModelAttrReset(object->model[temp_r29+9], 1); - } - Hu3DMotionSet(object->model[10], object->motion[0]); - Hu3DMotionSet(object->model[9], object->motion[2]); - } else { - temp_r30->unk14[0].x = 210; - temp_r30->unk14[0].y = 1018; - temp_r30->unk14[0].z = 0; - temp_r30->unk14[1].x = -160; - temp_r30->unk14[1].y = 1020; - temp_r30->unk14[1].z = -50; - for(temp_r29=0; temp_r29<2; temp_r29++) { - Hu3DModelPosSet(object->model[temp_r29+9], temp_r30->unk14[temp_r29].x, temp_r30->unk14[temp_r29].y, temp_r30->unk14[temp_r29].z); - Hu3DModelAttrReset(object->model[temp_r29+9], 1); - } - Hu3DMotionSet(object->model[10], object->motion[1]); - Hu3DMotionSet(object->model[9], object->motion[2]); - } - Hu3DModelAttrSet(object->model[9], 0x40000001); - Hu3DModelAttrSet(object->model[10], 0x40000001); - Hu3DModelRotSet(object->model[9], 0, 90, 0); - Hu3DModelPosSet(object->model[11], 210, 1018, 0); - Hu3DModelRotSet(object->model[11], 0, 90, 0); - Hu3DModelAttrReset(object->model[11], 1); - Hu3DModelAttrSet(object->model[11], 0x40000001); - sp2C.x = 0; - sp2C.y = 1300; - sp2C.z = 1300; - sp20.x = 0; - sp20.y = 920; - sp20.z = -100; - sp14.x = 0; - sp14.y = 1; - sp14.z = 0; - Hu3DCameraPosSetV(1, &sp2C, &sp14, &sp20); - lbl_2_bss_12C = 45; - Hu3DShadowData.unk_08.x = lbl_2_bss_12C; - MTXLightPerspective(Hu3DShadowData.unk_68, lbl_2_bss_12C, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - Hu3DCameraPerspectiveSet(1, lbl_2_bss_12C, lbl_2_bss_128, lbl_2_bss_124, 1.2f); - VECSubtract(&sp20, &sp2C, &sp8); - VECNormalize(&sp8, &sp8); - HuAudFXListnerUpdate(&sp2C, &sp8); + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + Work2FA4 *temp_r30; + s32 temp_r29; + Hu3DModelAttrReset(object->model[4], 1); + Hu3DModelClusterAttrSet(object->model[4], 0, 0xC0000001); + Hu3DModelAttrReset(object->model[8], 1); + Hu3DModelAttrSet(object->model[8], 0x40000001); + Hu3DModelAttrSet(object->model[4], 0x40000001); + Hu3DModelShadowMapSet(object->model[4]); + Hu3DModelAttrReset(object->model[5], 1); + Hu3DModelPosSet(object->model[4], 0, 0, 0); + Hu3DModelAmbSet(object->model[4], 1, 1, 1); + Hu3DModelPosSet(object->model[5], 0, 0, 0); + Hu3DModelPosSet(object->model[6], 0, 0, 0); + temp_r30 = lbl_2_bss_10C->data; + if (lbl_2_bss_BA) { + temp_r30->unk14[0].x = 210; + temp_r30->unk14[0].y = 1018; + temp_r30->unk14[0].z = 0; + temp_r30->unk14[1].x = -160; + temp_r30->unk14[1].y = 1020; + temp_r30->unk14[1].z = -50; + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + Hu3DModelPosSet(object->model[temp_r29 + 9], temp_r30->unk14[temp_r29].x, temp_r30->unk14[temp_r29].y, temp_r30->unk14[temp_r29].z); + Hu3DModelAttrReset(object->model[temp_r29 + 9], 1); + } + Hu3DMotionSet(object->model[10], object->motion[0]); + Hu3DMotionSet(object->model[9], object->motion[2]); + } + else { + temp_r30->unk14[0].x = 210; + temp_r30->unk14[0].y = 1018; + temp_r30->unk14[0].z = 0; + temp_r30->unk14[1].x = -160; + temp_r30->unk14[1].y = 1020; + temp_r30->unk14[1].z = -50; + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + Hu3DModelPosSet(object->model[temp_r29 + 9], temp_r30->unk14[temp_r29].x, temp_r30->unk14[temp_r29].y, temp_r30->unk14[temp_r29].z); + Hu3DModelAttrReset(object->model[temp_r29 + 9], 1); + } + Hu3DMotionSet(object->model[10], object->motion[1]); + Hu3DMotionSet(object->model[9], object->motion[2]); + } + Hu3DModelAttrSet(object->model[9], 0x40000001); + Hu3DModelAttrSet(object->model[10], 0x40000001); + Hu3DModelRotSet(object->model[9], 0, 90, 0); + Hu3DModelPosSet(object->model[11], 210, 1018, 0); + Hu3DModelRotSet(object->model[11], 0, 90, 0); + Hu3DModelAttrReset(object->model[11], 1); + Hu3DModelAttrSet(object->model[11], 0x40000001); + sp2C.x = 0; + sp2C.y = 1300; + sp2C.z = 1300; + sp20.x = 0; + sp20.y = 920; + sp20.z = -100; + sp14.x = 0; + sp14.y = 1; + sp14.z = 0; + Hu3DCameraPosSetV(1, &sp2C, &sp14, &sp20); + lbl_2_bss_12C = 45; + Hu3DShadowData.unk_08.x = lbl_2_bss_12C; + MTXLightPerspective(Hu3DShadowData.unk_68, lbl_2_bss_12C, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + Hu3DCameraPerspectiveSet(1, lbl_2_bss_12C, lbl_2_bss_128, lbl_2_bss_124, 1.2f); + VECSubtract(&sp20, &sp2C, &sp8); + VECNormalize(&sp8, &sp8); + HuAudFXListnerUpdate(&sp2C, &sp8); } void fn_2_2CBC(omObjData *object) { - HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[0]); - temp_r30->type = -1; - Hu3DModelAttrSet(object->model[3], 1); - lbl_2_bss_D8->work[0] = 1; - Hu3DModelAttrSet(object->model[2], 1); - HuAudFXStop(lbl_2_bss_90[0]); - HuAudFXStop(lbl_2_bss_90[1]); + HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[0]); + temp_r30->type = -1; + Hu3DModelAttrSet(object->model[3], 1); + lbl_2_bss_D8->work[0] = 1; + Hu3DModelAttrSet(object->model[2], 1); + HuAudFXStop(lbl_2_bss_90[0]); + HuAudFXStop(lbl_2_bss_90[1]); } void fn_2_2D64(omObjData *object) { - HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[1]); - temp_r31->type = -1; - lbl_2_bss_D4->work[0] = 1; + HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[1]); + temp_r31->type = -1; + lbl_2_bss_D4->work[0] = 1; } void fn_2_2DCC(omObjData *object) { - HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[2]); - temp_r31->type = -1; + HsfObject *temp_r31 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[2]); + temp_r31->type = -1; } void fn_2_2E20(omObjData *object) { - HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[3]); - temp_r30->type = -1; - Hu3DModelAttrSet(lbl_2_bss_100[0]->model[0], 1); - Hu3DModelAttrSet(lbl_2_bss_100[1]->model[0], 1); - lbl_2_bss_D0->work[0] = 1; - HuAudFXStop(lbl_2_bss_90[0]); + HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[3]); + temp_r30->type = -1; + Hu3DModelAttrSet(lbl_2_bss_100[0]->model[0], 1); + Hu3DModelAttrSet(lbl_2_bss_100[1]->model[0], 1); + lbl_2_bss_D0->work[0] = 1; + HuAudFXStop(lbl_2_bss_90[0]); } void fn_2_2ED0(omObjData *object) { - HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[4]); - temp_r30->type = -1; - Hu3DModelAttrSet(object->model[7], 1); - Hu3DModelAttrSet(object->model[0], 1); - lbl_2_bss_8->work[0] = 1; - lbl_2_bss_CC->work[0] = 1; - Hu3DModelAttrSet(object->model[2], 1); - HuAudFXStop(lbl_2_bss_90[1]); - HuAudFXStop(lbl_2_bss_90[2]); + HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[4]); + temp_r30->type = -1; + Hu3DModelAttrSet(object->model[7], 1); + Hu3DModelAttrSet(object->model[0], 1); + lbl_2_bss_8->work[0] = 1; + lbl_2_bss_CC->work[0] = 1; + Hu3DModelAttrSet(object->model[2], 1); + HuAudFXStop(lbl_2_bss_90[1]); + HuAudFXStop(lbl_2_bss_90[2]); } -void fn_2_2F9C(omObjData *object) -{ - -} +void fn_2_2F9C(omObjData *object) { } -void fn_2_2FA0(omObjData *object) -{ - -} +void fn_2_2FA0(omObjData *object) { } void fn_2_33B4(omObjData *object); void fn_2_2FA4(omObjData *object) { - Work2FA4 *temp_r30; - s32 temp_r29; - HsfObject *temp_r28; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work2FA4), MEMORY_DEFAULT_NUM); - temp_r30 = object->data; - fn_2_D088(NULL); - temp_r30->unk0 = 0; - temp_r30->unk8.x = 0; - temp_r30->unk8.y = 0; - temp_r30->unk8.z = 0; - temp_r30->unk2C = 0; - object->model[0] = Hu3DModelCreateFile(0x200000); - Hu3DModelAttrSet(object->model[0], 1); - object->model[1] = Hu3DModelCreateFile(0x200001); - Hu3DModelAttrSet(object->model[1], 1); - object->model[2] = Hu3DModelCreateFile(0x200007); - Hu3DModelAttrSet(object->model[2], 1); - Hu3DModelAttrSet(object->model[2], 0x40000001); - object->model[3] = Hu3DModelCreateFile(0x20001F); - Hu3DModelAttrSet(object->model[3], 1); - object->model[4] = Hu3DModelCreateFile(0x200020); - Hu3DModelAttrSet(object->model[4], 1); - object->model[11] = Hu3DModelCreateFile(0x20002C); - Hu3DModelAttrSet(object->model[11], 1); - object->model[7] = Hu3DModelCreateFile(0x200003); - Hu3DModelAttrSet(object->model[7], 1); - object->model[8] = Hu3DModelCreateFile(0x200023); - Hu3DModelAttrSet(object->model[8], 1); - object->model[9] = Hu3DModelCreateFile(0x200028); - Hu3DModelAttrSet(object->model[9], 1); - object->model[10] = Hu3DModelCreateFile(0x200028); - Hu3DModelAttrSet(object->model[10], 1); - Hu3DModelShadowSet(object->model[10]); - object->model[5] = Hu3DModelCreateFile(0x200021); - Hu3DModelAttrSet(object->model[5], 1); - object->model[6] = Hu3DModelCreateFile(0x200022); - Hu3DModelAttrSet(object->model[6], 1); - object->motion[0] = Hu3DJointMotionFile(object->model[10], 0x200029); - object->motion[1] = Hu3DJointMotionFile(object->model[10], 0x20002A); - object->motion[2] = Hu3DJointMotionFile(object->model[9], 0x20002B); - Hu3DModelPosSet(object->model[1], 0, 0, -1500); - Hu3DModelShadowMapSet(object->model[0]); - for(temp_r29=0; temp_r29<5; temp_r29++) { - temp_r28 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[temp_r29]); - temp_r28->type = -1; - } - fn_2_21F8(object); - object->func = fn_2_33B4; + Work2FA4 *temp_r30; + s32 temp_r29; + HsfObject *temp_r28; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work2FA4), MEMORY_DEFAULT_NUM); + temp_r30 = object->data; + fn_2_D088(NULL); + temp_r30->unk0 = 0; + temp_r30->unk8.x = 0; + temp_r30->unk8.y = 0; + temp_r30->unk8.z = 0; + temp_r30->unk2C = 0; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x00)); + Hu3DModelAttrSet(object->model[0], 1); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x01)); + Hu3DModelAttrSet(object->model[1], 1); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x07)); + Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], 0x40000001); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x1F)); + Hu3DModelAttrSet(object->model[3], 1); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x20)); + Hu3DModelAttrSet(object->model[4], 1); + object->model[11] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x2C)); + Hu3DModelAttrSet(object->model[11], 1); + object->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x03)); + Hu3DModelAttrSet(object->model[7], 1); + object->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x23)); + Hu3DModelAttrSet(object->model[8], 1); + object->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x28)); + Hu3DModelAttrSet(object->model[9], 1); + object->model[10] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x28)); + Hu3DModelAttrSet(object->model[10], 1); + Hu3DModelShadowSet(object->model[10]); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x21)); + Hu3DModelAttrSet(object->model[5], 1); + object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x22)); + Hu3DModelAttrSet(object->model[6], 1); + object->motion[0] = Hu3DJointMotionFile(object->model[10], DATA_MAKE_NUM(DATADIR_M401, 0x29)); + object->motion[1] = Hu3DJointMotionFile(object->model[10], DATA_MAKE_NUM(DATADIR_M401, 0x2A)); + object->motion[2] = Hu3DJointMotionFile(object->model[9], DATA_MAKE_NUM(DATADIR_M401, 0x2B)); + Hu3DModelPosSet(object->model[1], 0, 0, -1500); + Hu3DModelShadowMapSet(object->model[0]); + for (temp_r29 = 0; temp_r29 < 5; temp_r29++) { + temp_r28 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[temp_r29]); + temp_r28->type = -1; + } + fn_2_21F8(object); + object->func = fn_2_33B4; } void fn_2_33B4(omObjData *object) { - Hu3DModelPosSet(object->model[3], 110, 5.0*sind(lbl_2_bss_10), -1500); - lbl_2_bss_10 += 2.0f; - if(lbl_2_bss_10 >= 360.0f) { - lbl_2_bss_10 -= 360.0f; - } + Hu3DModelPosSet(object->model[3], 110, 5.0 * sind(lbl_2_bss_10), -1500); + lbl_2_bss_10 += 2.0f; + if (lbl_2_bss_10 >= 360.0f) { + lbl_2_bss_10 -= 360.0f; + } } void fn_2_9E28(float arg1, float arg2); void fn_2_34B8(omObjData *object) { - Vec sp8; - Work2FA4 *temp_r31; - s32 temp_r30; - s32 temp_r28; - temp_r31 = object->data; - if(lbl_2_bss_60.z < -5000.0f && temp_r31->unk0 == 0) { - temp_r31->unk0 = 1; - fn_2_9E28(-15500, -20000); - } - if(lbl_2_bss_6C.z <= lbl_2_data_A0[lbl_2_bss_C]) { - lbl_2_bss_C++; - lbl_2_data_CC[lbl_2_bss_C][0](object); - } - if(lbl_2_bss_6C.z <= lbl_2_data_B4[lbl_2_bss_E]) { - lbl_2_data_CC[lbl_2_bss_E][1](object); - lbl_2_bss_E++; - } - if(lbl_2_bss_6C.z <= -40000.0f) { - lbl_2_bss_BE = 1; - } - if(temp_r31->unk2C) { - temp_r31->unk2C--; - } else { - temp_r31->unk2C = 274; - if(lbl_2_bss_60.z > -31260.0f) { - temp_r28 = 4; - for(temp_r30=0; temp_r30data; + if (lbl_2_bss_60.z < -5000.0f && temp_r31->unk0 == 0) { + temp_r31->unk0 = 1; + fn_2_9E28(-15500, -20000); + } + if (lbl_2_bss_6C.z <= lbl_2_data_A0[lbl_2_bss_C]) { + lbl_2_bss_C++; + lbl_2_data_CC[lbl_2_bss_C][0](object); + } + if (lbl_2_bss_6C.z <= lbl_2_data_B4[lbl_2_bss_E]) { + lbl_2_data_CC[lbl_2_bss_E][1](object); + lbl_2_bss_E++; + } + if (lbl_2_bss_6C.z <= -40000.0f) { + lbl_2_bss_BE = 1; + } + if (temp_r31->unk2C) { + temp_r31->unk2C--; + } + else { + temp_r31->unk2C = 274; + if (lbl_2_bss_60.z > -31260.0f) { + temp_r28 = 4; + for (temp_r30 = 0; temp_r30 < temp_r28; temp_r30++) { + sp8.x = -340.0f + ((1.0f / 255.0f) * (680.0f * frandu8())); + sp8.y = -250.0f + ((1.0f / 255.0f) * (500.0f * frandu8())); + sp8.z = ((-4000.0f - (temp_r30 * 240)) - 40.0f) + ((1.0f / 255.0f) * (80.0f * frandu8())); + fn_2_10A88(&sp8, 0); + } + } + } } void fn_2_3838(omObjData *object) { - Work2FA4 *temp_r31; - s32 temp_r29; - float temp_f31; - temp_r31 = object->data; - temp_r31->unk4 = 5.0*sind(temp_r31->unk8.x); - temp_r31->unk8.y += temp_r31->unk8.z; - Hu3DModelPosSet(object->model[4], temp_r31->unk8.y, temp_r31->unk4, 0); - Hu3DModelPosSet(object->model[5], temp_r31->unk8.y, 0, 0); - Hu3DModelScaleSet(object->model[5], 1.0f-(0.09f*(temp_r31->unk4/5.0f)), 1.0f, 1.0f-(0.09f*(temp_r31->unk4/5.0f))); - for(temp_r29=0; temp_r29<2; temp_r29++) { - temp_f31 = temp_r31->unk14[temp_r29].y+(5.0*sind(temp_r31->unk8.x)); - temp_r31->unk14[temp_r29].x += temp_r31->unk8.z; - Hu3DModelPosSet(object->model[temp_r29+9], temp_r31->unk14[temp_r29].x, temp_f31, temp_r31->unk14[temp_r29].z); - } - Hu3DModelPosSet(object->model[11], temp_r31->unk14[0].x, temp_f31, temp_r31->unk14[0].z); - temp_r31->unk8.z *= 1.04f; - if(temp_r31->unk8.z > 12.0f) { - temp_r31->unk8.z = 12.0f; - } - temp_r31->unk8.x += 2.0f; - if(temp_r31->unk8.x >= 360.0f) { - temp_r31->unk8.x -= 360.0f; - } - lbl_2_data_30.x = temp_r31->unk8.y; - lbl_2_data_48.x = temp_r31->unk8.y; - Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); + Work2FA4 *temp_r31; + s32 temp_r29; + float temp_f31; + temp_r31 = object->data; + temp_r31->unk4 = 5.0 * sind(temp_r31->unk8.x); + temp_r31->unk8.y += temp_r31->unk8.z; + Hu3DModelPosSet(object->model[4], temp_r31->unk8.y, temp_r31->unk4, 0); + Hu3DModelPosSet(object->model[5], temp_r31->unk8.y, 0, 0); + Hu3DModelScaleSet(object->model[5], 1.0f - (0.09f * (temp_r31->unk4 / 5.0f)), 1.0f, 1.0f - (0.09f * (temp_r31->unk4 / 5.0f))); + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + temp_f31 = temp_r31->unk14[temp_r29].y + (5.0 * sind(temp_r31->unk8.x)); + temp_r31->unk14[temp_r29].x += temp_r31->unk8.z; + Hu3DModelPosSet(object->model[temp_r29 + 9], temp_r31->unk14[temp_r29].x, temp_f31, temp_r31->unk14[temp_r29].z); + } + Hu3DModelPosSet(object->model[11], temp_r31->unk14[0].x, temp_f31, temp_r31->unk14[0].z); + temp_r31->unk8.z *= 1.04f; + if (temp_r31->unk8.z > 12.0f) { + temp_r31->unk8.z = 12.0f; + } + temp_r31->unk8.x += 2.0f; + if (temp_r31->unk8.x >= 360.0f) { + temp_r31->unk8.x -= 360.0f; + } + lbl_2_data_30.x = temp_r31->unk8.y; + lbl_2_data_48.x = temp_r31->unk8.y; + Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); } void fn_2_3F28(omObjData *object); s32 lbl_2_data_158[][10] = { - 0x005F002A, - 0x00200031, - 0x005F0000, - 0x005F002B, - 0x005F0005, - 0x005F0017, - 0x00200039, - 0x00200041, - 0x005F0022, - 0x00200049, - 0x001A002A, - 0x00200032, - 0x001A0000, - 0x001A002B, - 0x001A0005, - 0x001A0017, - 0x0020003A, - 0x00200042, - 0x001A0022, - 0x0020004A, - 0x006D002A, - 0x00200033, - 0x006D0000, - 0x006D002B, - 0x006D0005, - 0x006D0017, - 0x0020003B, - 0x00200043, - 0x006D0022, - 0x0020004B, - 0x008A002A, - 0x00200034, - 0x008A0000, - 0x008A002B, - 0x008A0005, - 0x008A0017, - 0x0020003C, - 0x00200044, - 0x008A0022, - 0x0020004C, - 0x0085002A, - 0x00200035, - 0x00850000, - 0x0085002B, - 0x00850005, - 0x00850017, - 0x0020003D, - 0x00200045, - 0x00850022, - 0x0020004D, - 0x0011002A, - 0x00200036, - 0x00110000, - 0x0011002B, - 0x00110005, - 0x00110017, - 0x0020003E, - 0x00200046, - 0x00110022, - 0x0020004E, - 0x000D002A, - 0x00200037, - 0x000D0000, - 0x000D002B, - 0x000D0005, - 0x000D0017, - 0x0020003F, - 0x00200047, - 0x000D0022, - 0x0020004F, - 0x0081002A, - 0x00200038, - 0x00810000, - 0x0081002B, - 0x00810005, - 0x00810017, - 0x00200040, - 0x00200048, - 0x00810022, - 0x00200050, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x2A), + DATA_MAKE_NUM(DATADIR_M401, 0x31), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_M401, 0x39), + DATA_MAKE_NUM(DATADIR_M401, 0x41), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x22), + DATA_MAKE_NUM(DATADIR_M401, 0x49), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x2A), + DATA_MAKE_NUM(DATADIR_M401, 0x32), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x05), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_M401, 0x3A), + DATA_MAKE_NUM(DATADIR_M401, 0x42), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x22), + DATA_MAKE_NUM(DATADIR_M401, 0x4A), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x2A), + DATA_MAKE_NUM(DATADIR_M401, 0x33), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x05), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x17), + DATA_MAKE_NUM(DATADIR_M401, 0x3B), + DATA_MAKE_NUM(DATADIR_M401, 0x43), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x22), + DATA_MAKE_NUM(DATADIR_M401, 0x4B), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x2A), + DATA_MAKE_NUM(DATADIR_M401, 0x34), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x05), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_M401, 0x3C), + DATA_MAKE_NUM(DATADIR_M401, 0x44), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x22), + DATA_MAKE_NUM(DATADIR_M401, 0x4C), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x2A), + DATA_MAKE_NUM(DATADIR_M401, 0x35), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x05), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_M401, 0x3D), + DATA_MAKE_NUM(DATADIR_M401, 0x45), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x22), + DATA_MAKE_NUM(DATADIR_M401, 0x4D), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x2A), + DATA_MAKE_NUM(DATADIR_M401, 0x36), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x05), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_M401, 0x3E), + DATA_MAKE_NUM(DATADIR_M401, 0x46), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x22), + DATA_MAKE_NUM(DATADIR_M401, 0x4E), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x2A), + DATA_MAKE_NUM(DATADIR_M401, 0x37), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x05), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_M401, 0x3F), + DATA_MAKE_NUM(DATADIR_M401, 0x47), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x22), + DATA_MAKE_NUM(DATADIR_M401, 0x4F), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x2A), + DATA_MAKE_NUM(DATADIR_M401, 0x38), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x05), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_M401, 0x40), + DATA_MAKE_NUM(DATADIR_M401, 0x48), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x22), + DATA_MAKE_NUM(DATADIR_M401, 0x50), }; Vec lbl_2_data_298[] = { - -150, 1250, -1400, - -50, 1250, -1400, - 50, 1250, -1400, - 150, 1250, -1400, + -150, + 1250, + -1400, + -50, + 1250, + -1400, + 50, + 1250, + -1400, + 150, + 1250, + -1400, }; Vec lbl_2_data_2C8[] = { - -300, 0, -1500, - -100, 0, -1500, - 100, 0, -1500, - 300, 0, -1500, + -300, + 0, + -1500, + -100, + 0, + -1500, + 100, + 0, + -1500, + 300, + 0, + -1500, }; void fn_2_3F28(omObjData *object); void fn_2_3B24(omObjData *object) { - M401WorkPlayer *temp_r31; - s32 temp_r29; - s32 temp_r28; - s32 temp_r27; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M401WorkPlayer), MEMORY_DEFAULT_NUM); - temp_r31 = object->data; - temp_r29 = object->work[0]; - temp_r31->unk4 = temp_r29; - temp_r31->unk8 = GWPlayerCfg[temp_r29].pad_idx; - temp_r27 = GWPlayerCfg[temp_r29].character; - temp_r31->unk86 = lbl_2_data_4[temp_r27]; - object->model[0] = CharModelCreate(temp_r31->unk86, 4); - if(temp_r29 == 0) { - object->model[2] = Hu3DModelCreateFile(0x200025); - object->model[3] = Hu3DModelCreateFile(0x200027); - } else { - object->model[2] = Hu3DModelLink(lbl_2_bss_118[0]->model[2]); - object->model[3] = Hu3DModelCreateFile(0x200027); - } - Hu3DModelAttrSet(object->model[3], 0x40000002); - Hu3DModelClusterAttrSet(object->model[3], 0, 0xC0000002); - Hu3DModelLayerSet(object->model[3], 7); - for(temp_r28=0; temp_r28<10; temp_r28++) { - object->motion[temp_r28] = CharModelMotionCreate(lbl_2_data_4[temp_r27], lbl_2_data_158[temp_r27][temp_r28]); - } - CharModelMotionSet(temp_r31->unk86, object->motion[2]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DModelAttrSet(object->model[2], 1); - Hu3DModelAttrSet(object->model[2], 0x40000001); - Hu3DModelLayerSet(object->model[2], 2); - Hu3DModelAmbSet(object->model[0], 1, 1, 1); - Hu3DModelShadowSet(object->model[0]); - CharModelVoiceEnableSet(lbl_2_data_4[temp_r27], object->motion[4], 0); - temp_r31->unkC = lbl_2_data_2C8[temp_r29]; - temp_r31->unk58.z = 0; - omSetTra(object, lbl_2_data_298[temp_r29].x, lbl_2_data_298[temp_r29].y, lbl_2_data_298[temp_r29].z); - temp_r31->unk0 = 0; - temp_r31->unk6E = 70; - temp_r31->unk24.x = lbl_2_data_2C8[temp_r29].x; - temp_r31->unk24.y = lbl_2_data_2C8[temp_r29].y; - temp_r31->unk24.z = 800+lbl_2_data_2C8[temp_r29].z; - temp_r31->unk6A = 0; - temp_r31->unk72 = 0; - temp_r31->unk74 = 0; - temp_r31->unk78 = 0; - temp_r31->unk7A = 0; - temp_r31->unk7C = 0; - temp_r31->unk76 = 0; - temp_r31->unk88 = 0; - temp_r31->unk84 = 0; - temp_r31->unk8C = 0; - temp_r31->unk8E = 0; - temp_r31->unk94.x = temp_r31->unk94.y = temp_r31->unk94.z = 0; - temp_r31->unk90 = 0; - temp_r31->unkA0 = temp_r31->unkA1 = 0; - CharModelMotionDataClose(temp_r31->unk86); - object->func = fn_2_3F28; + M401WorkPlayer *temp_r31; + s32 temp_r29; + s32 temp_r28; + s32 temp_r27; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M401WorkPlayer), MEMORY_DEFAULT_NUM); + temp_r31 = object->data; + temp_r29 = object->work[0]; + temp_r31->unk4 = temp_r29; + temp_r31->unk8 = GWPlayerCfg[temp_r29].pad_idx; + temp_r27 = GWPlayerCfg[temp_r29].character; + temp_r31->unk86 = lbl_2_data_4[temp_r27]; + object->model[0] = CharModelCreate(temp_r31->unk86, 4); + if (temp_r29 == 0) { + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x25)); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x27)); + } + else { + object->model[2] = Hu3DModelLink(lbl_2_bss_118[0]->model[2]); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x27)); + } + Hu3DModelAttrSet(object->model[3], 0x40000002); + Hu3DModelClusterAttrSet(object->model[3], 0, 0xC0000002); + Hu3DModelLayerSet(object->model[3], 7); + for (temp_r28 = 0; temp_r28 < 10; temp_r28++) { + object->motion[temp_r28] = CharModelMotionCreate(lbl_2_data_4[temp_r27], lbl_2_data_158[temp_r27][temp_r28]); + } + CharModelMotionSet(temp_r31->unk86, object->motion[2]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], 0x40000001); + Hu3DModelLayerSet(object->model[2], 2); + Hu3DModelAmbSet(object->model[0], 1, 1, 1); + Hu3DModelShadowSet(object->model[0]); + CharModelVoiceEnableSet(lbl_2_data_4[temp_r27], object->motion[4], 0); + temp_r31->unkC = lbl_2_data_2C8[temp_r29]; + temp_r31->unk58.z = 0; + omSetTra(object, lbl_2_data_298[temp_r29].x, lbl_2_data_298[temp_r29].y, lbl_2_data_298[temp_r29].z); + temp_r31->unk0 = 0; + temp_r31->unk6E = 70; + temp_r31->unk24.x = lbl_2_data_2C8[temp_r29].x; + temp_r31->unk24.y = lbl_2_data_2C8[temp_r29].y; + temp_r31->unk24.z = 800 + lbl_2_data_2C8[temp_r29].z; + temp_r31->unk6A = 0; + temp_r31->unk72 = 0; + temp_r31->unk74 = 0; + temp_r31->unk78 = 0; + temp_r31->unk7A = 0; + temp_r31->unk7C = 0; + temp_r31->unk76 = 0; + temp_r31->unk88 = 0; + temp_r31->unk84 = 0; + temp_r31->unk8C = 0; + temp_r31->unk8E = 0; + temp_r31->unk94.x = temp_r31->unk94.y = temp_r31->unk94.z = 0; + temp_r31->unk90 = 0; + temp_r31->unkA0 = temp_r31->unkA1 = 0; + CharModelMotionDataClose(temp_r31->unk86); + object->func = fn_2_3F28; } void fn_2_6B44(omObjData *object); @@ -1156,395 +1125,403 @@ void fn_2_D3E8(omObjData *object); void fn_2_3F28(omObjData *object) { - Vec sp28; - Vec sp1C; - Vec sp10; - M401WorkPlayer *temp_r31; - CameraData *temp_r29; - omObjData *temp_r28; - UnkWork10A88 *temp_r27; - float temp_f27; - temp_r31 = object->data; - switch(temp_r31->unk0) { - case 0: - if(--temp_r31->unk6E == 0) { - temp_r31->unk0 = 1; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[4], 0, 20, 0); - temp_r31->unk58.x = 16; - temp_r31->unk58.y = 0; - } - break; - - case 1: - if(object->trans.y < 1100) { - temp_r31->unk0 = 2; - temp_f27 = VECMagPoint(object->trans.x-temp_r31->unk24.x, object->trans.y-temp_r31->unk24.y, object->trans.z-temp_r31->unk24.z); - temp_r31->unk58.z = temp_f27; - temp_r31->unk58.y = 0; - temp_r31->unk6E = 110; - temp_r28 = fn_2_10A88(&lbl_2_data_298[temp_r31->unk4], 2); - temp_r31->unk50 = temp_r28; - temp_r27 = temp_r28->data; - temp_r27->unkC = object; - fn_2_6B44(object); - temp_r28 = fn_2_10A88(&lbl_2_data_298[temp_r31->unk4], 4); - temp_r27 = temp_r28->data; - temp_r27->unkC = object; - temp_r31->unk4C = temp_r28; - temp_r28 = fn_2_10A88(&lbl_2_data_298[temp_r31->unk4], 5); - temp_r27 = temp_r28->data; - temp_r27->unkC = object; - temp_r31->unk48 = temp_r28; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 80, 0x40000001); - temp_r31->unk30.x = object->trans.x; - temp_r31->unk30.y = object->trans.y; - temp_r31->unk30.z = object->trans.z; - Hu3DModelAttrReset(object->model[3], 1); - Hu3DModelAttrReset(object->model[3], 0x40000002); - Hu3DModelClusterAttrReset(object->model[3], 0, 0xC0000002); - Hu3DModelPosSet(object->model[3], object->trans.x, 100, 100+object->trans.z); - Hu3DMotionTimeSet(object->model[3], 0); - if(temp_r31->unk4 == 0) { - HuAudFXPlay(1281); - } - omVibrate(temp_r31->unk4, 12, 4, 2); - } else { - object->trans.y += temp_r31->unk58.x-(0.07f*temp_r31->unk58.y*temp_r31->unk58.y); - object->trans.z += 2.0f; - temp_r31->unk58.y += 1.0f; - } - break; - - case 2: - temp_r29 = &Hu3DCamera[0]; - sp1C = temp_r31->unk24; - sp10 = temp_r31->unk30; - VECSubtract(&sp1C, &sp10, &sp28); - VECNormalize(&sp28, &sp28); - object->trans.x = temp_r31->unk30.x+(temp_r31->unk58.z*(sp28.x*sind(temp_r31->unk58.y))); - object->trans.y = temp_r31->unk30.y+(temp_r31->unk58.z*(sp28.y*sind(temp_r31->unk58.y))); - object->trans.z = temp_r31->unk30.z+(temp_r31->unk58.z*(sp28.z*sind(temp_r31->unk58.y))); - temp_r31->unk58.y += 9.0f/11.0f; - omSetRot(object, atan2d(sp28.y, sp28.z)+90.0, 0, 0); - temp_f27 = VECMagPoint(object->trans.x-sp1C.x, object->trans.y-sp1C.y, object->trans.z-sp1C.z); - if(--temp_r31->unk6E == 60 && temp_r31->unk4 == 0 && lbl_2_bss_4 == NULL) { - temp_r29 = &Hu3DCamera[0]; - lbl_2_bss_4 = omAddObjEx(HuPrcCurrentGet(), 1400, 0, 0, -1, fn_2_D3E8); - lbl_2_bss_4->trans.x = temp_r29->pos.x; - lbl_2_bss_4->trans.y = temp_r29->pos.y; - lbl_2_bss_4->trans.z = temp_r29->pos.z; - lbl_2_bss_4->rot.x = temp_r29->target.x; - lbl_2_bss_4->rot.y = temp_r29->target.y; - lbl_2_bss_4->rot.z = temp_r29->target.z; - lbl_2_bss_4->scale.x = 0; - } - if(temp_r31->unk6E == 0) { - temp_r31->unk0 = 3; - temp_r31->unk4C->work[0] = 1; - temp_r31->unk48->work[0] = 1; - } - fn_2_6B44(object); - break; - - case 3: - sp1C.x = lbl_2_bss_108->trans.x; - sp1C.y = lbl_2_data_298[temp_r31->unk4].y; - sp1C.z = lbl_2_bss_108->trans.z; - sp10.x = object->trans.x; - sp10.y = object->trans.y; - sp10.z = object->trans.z; - VECSubtract(&sp1C, &sp10, &sp28); - VECNormalize(&sp28, &sp28); - object->rot.x *= 0.95f; - if(object->rot.x < 1.0f) { - object->rot.x = 0.0f; - } - omSetRot(object, object->rot.x, atan2d(sp28.x, sp28.z), 0); - fn_2_6B44(object); - break; - } + Vec sp28; + Vec sp1C; + Vec sp10; + M401WorkPlayer *temp_r31; + CameraData *temp_r29; + omObjData *temp_r28; + UnkWork10A88 *temp_r27; + float temp_f27; + temp_r31 = object->data; + switch (temp_r31->unk0) { + case 0: + if (--temp_r31->unk6E == 0) { + temp_r31->unk0 = 1; + CharModelMotionShiftSet(temp_r31->unk86, object->motion[4], 0, 20, 0); + temp_r31->unk58.x = 16; + temp_r31->unk58.y = 0; + } + break; + + case 1: + if (object->trans.y < 1100) { + temp_r31->unk0 = 2; + temp_f27 = VECMagPoint(object->trans.x - temp_r31->unk24.x, object->trans.y - temp_r31->unk24.y, object->trans.z - temp_r31->unk24.z); + temp_r31->unk58.z = temp_f27; + temp_r31->unk58.y = 0; + temp_r31->unk6E = 110; + temp_r28 = fn_2_10A88(&lbl_2_data_298[temp_r31->unk4], 2); + temp_r31->unk50 = temp_r28; + temp_r27 = temp_r28->data; + temp_r27->unkC = object; + fn_2_6B44(object); + temp_r28 = fn_2_10A88(&lbl_2_data_298[temp_r31->unk4], 4); + temp_r27 = temp_r28->data; + temp_r27->unkC = object; + temp_r31->unk4C = temp_r28; + temp_r28 = fn_2_10A88(&lbl_2_data_298[temp_r31->unk4], 5); + temp_r27 = temp_r28->data; + temp_r27->unkC = object; + temp_r31->unk48 = temp_r28; + CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 80, 0x40000001); + temp_r31->unk30.x = object->trans.x; + temp_r31->unk30.y = object->trans.y; + temp_r31->unk30.z = object->trans.z; + Hu3DModelAttrReset(object->model[3], 1); + Hu3DModelAttrReset(object->model[3], 0x40000002); + Hu3DModelClusterAttrReset(object->model[3], 0, 0xC0000002); + Hu3DModelPosSet(object->model[3], object->trans.x, 100, 100 + object->trans.z); + Hu3DMotionTimeSet(object->model[3], 0); + if (temp_r31->unk4 == 0) { + HuAudFXPlay(1281); + } + omVibrate(temp_r31->unk4, 12, 4, 2); + } + else { + object->trans.y += temp_r31->unk58.x - (0.07f * temp_r31->unk58.y * temp_r31->unk58.y); + object->trans.z += 2.0f; + temp_r31->unk58.y += 1.0f; + } + break; + + case 2: + temp_r29 = &Hu3DCamera[0]; + sp1C = temp_r31->unk24; + sp10 = temp_r31->unk30; + VECSubtract(&sp1C, &sp10, &sp28); + VECNormalize(&sp28, &sp28); + object->trans.x = temp_r31->unk30.x + (temp_r31->unk58.z * (sp28.x * sind(temp_r31->unk58.y))); + object->trans.y = temp_r31->unk30.y + (temp_r31->unk58.z * (sp28.y * sind(temp_r31->unk58.y))); + object->trans.z = temp_r31->unk30.z + (temp_r31->unk58.z * (sp28.z * sind(temp_r31->unk58.y))); + temp_r31->unk58.y += 9.0f / 11.0f; + omSetRot(object, atan2d(sp28.y, sp28.z) + 90.0, 0, 0); + temp_f27 = VECMagPoint(object->trans.x - sp1C.x, object->trans.y - sp1C.y, object->trans.z - sp1C.z); + if (--temp_r31->unk6E == 60 && temp_r31->unk4 == 0 && lbl_2_bss_4 == NULL) { + temp_r29 = &Hu3DCamera[0]; + lbl_2_bss_4 = omAddObjEx(HuPrcCurrentGet(), 1400, 0, 0, -1, fn_2_D3E8); + lbl_2_bss_4->trans.x = temp_r29->pos.x; + lbl_2_bss_4->trans.y = temp_r29->pos.y; + lbl_2_bss_4->trans.z = temp_r29->pos.z; + lbl_2_bss_4->rot.x = temp_r29->target.x; + lbl_2_bss_4->rot.y = temp_r29->target.y; + lbl_2_bss_4->rot.z = temp_r29->target.z; + lbl_2_bss_4->scale.x = 0; + } + if (temp_r31->unk6E == 0) { + temp_r31->unk0 = 3; + temp_r31->unk4C->work[0] = 1; + temp_r31->unk48->work[0] = 1; + } + fn_2_6B44(object); + break; + + case 3: + sp1C.x = lbl_2_bss_108->trans.x; + sp1C.y = lbl_2_data_298[temp_r31->unk4].y; + sp1C.z = lbl_2_bss_108->trans.z; + sp10.x = object->trans.x; + sp10.y = object->trans.y; + sp10.z = object->trans.z; + VECSubtract(&sp1C, &sp10, &sp28); + VECNormalize(&sp28, &sp28); + object->rot.x *= 0.95f; + if (object->rot.x < 1.0f) { + object->rot.x = 0.0f; + } + omSetRot(object, object->rot.x, atan2d(sp28.x, sp28.z), 0); + fn_2_6B44(object); + break; + } } void fn_2_6B44(omObjData *object); void fn_2_48A0(omObjData *object) { - M401WorkPlayer *temp_r31; - Work2FA4 *temp_r29; - float temp_f29; - Vec sp4C; - Vec sp40; - s32 sp30[] = { -10, -50, -80, -130 }; - Vec sp24; - Vec sp18; - Vec spC; - temp_r31 = object->data; - temp_r29 = lbl_2_bss_10C->data; - if(temp_r31->unk4 == 0) { - lbl_2_bss_1A--; - } - switch(temp_r31->unk0) { - case 5: - if(temp_r31->unk6A == 1) { - CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); - temp_r31->unk6A = 0; - } - omSetRot(object, 0, 180, 0); - object->trans.z -= 5.0f; - fn_2_6B44(object); - break; - - case 6: - object->trans.y += temp_r31->unk58.x; - if(object->trans.y >= 910.0f) { - if(temp_r31->unk6C == 0) { - temp_r31->unk6C = 1; - Hu3DModelAttrReset(object->model[2], 1); - Hu3DModelAttrSet(object->model[2], 0x40000001); - Hu3DModelPosSet(object->model[2], object->trans.x, 950, 30+object->trans.z); - Hu3DModelScaleSet(object->model[2], 1, 1, 1); - Hu3DMotionTimeSet(object->model[2], 0); - sp4C.x = object->trans.x; - sp4C.y = 950; - sp4C.z = 30+object->trans.z; - fn_2_10A88(&sp4C, 7); - HuAudFXEmiterPlay(1289, &sp4C); - } - temp_r31->unk58.x *= 0.7f; - if(temp_r31->unk58.x <= 0.5f) { - temp_r31->unk0 = 7; - temp_r31->unk58.x = -0.5f; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[0], 0, 30, 0x40000001); - temp_r31->unk80 = 0; - temp_r31->unk6C = 0; - } - } - - break; - - case 7: - object->trans.y += temp_r31->unk58.x; - if(object->trans.y <= 890) { - object->trans.y = 890; - if(lbl_2_bss_BA) { - if(temp_r31->unk68) { - temp_r31->unk0 = 16; - } else { - temp_r31->unk0 = 9; - } - } else { - temp_r31->unk0 = 8; - temp_r29->unk8.z = 0.5f; - temp_r31->unk6E = 0; - HuAudSStreamPlay(4); - lbl_2_bss_C0 = MGSeqDrawCreate(); - lbl_2_bss_1A = 210; - } - } - temp_r31->unk58.x *= 1.17f; - object->trans.y -= 0.35f*sind(temp_r31->unk80); - temp_r31->unk80 += 3.0f; - if(temp_r31->unk80 >= 360.0f) { - temp_r31->unk80 -= 360.0f; - } - break; - - case 8: - object->trans.y -= 0.35f*sind(temp_r31->unk80); - temp_r31->unk80 += 3.0f; - if(temp_r31->unk80 >= 360.0f) { - temp_r31->unk80 -= 360.0f; - } - if(temp_r31->unk6E == 13) { - Hu3DModelAttrReset(lbl_2_bss_10C->model[6], 1); - Hu3DMotionTimeSet(lbl_2_bss_10C->model[6], 0); - } else if(temp_r31->unk6E == 50) { - Hu3DMotionOverlaySet(object->model[0], object->motion[8]); - Hu3DMotionOverlayTimeSet(object->model[0], 31.0f); - Hu3DData[object->model[0]].unk_78 = 1; - } - if(temp_r31->unk6E >= 70) { - if(object->rot.y < 90.0f) { - object->rot.y += 2.25f; - } else { - object->rot.y = 90.0f; - } - } - temp_r31->unk6E++; - if(temp_r29->unk8.y >= 1500.0f) { - temp_r29->unk8.z = 0; - if(temp_r31->unk4 == 0) { - temp_r31->unk0 = 14; - } - } - break; - - case 16: - if(!temp_r31->unk6C) { - temp_r31->unk6C = 1; - HuAudPlayerVoicePlay(temp_r31->unk4, 292); - Hu3DMotionOverlaySet(object->model[0], object->motion[9]); - if(temp_r31->unk4 == lbl_2_bss_B2[0]) { - HuAudSStreamPlay(1); - lbl_2_bss_C0 = MGSeqWinCreate(lbl_2_bss_AA[0], lbl_2_bss_AA[1], lbl_2_bss_AA[2], lbl_2_bss_AA[3]); - lbl_2_bss_1A = 210; - temp_r31->unk6E = 160; - temp_r31->unk0 = 13; - } - } - temp_r31->unk58.x *= 1.17f; - object->trans.y -= 0.35f*sind(temp_r31->unk80); - temp_r31->unk80 += 3.0f; - if(temp_r31->unk80 >= 360.0f) { - temp_r31->unk80 -= 360.0f; - } - if(73.0f <= Hu3DMotionOverlayTimeGet(object->model[0])) { - Hu3DMotionOverlayTimeSet(object->model[0], 35.0f); - } - break; - - case 10: - object->trans.y += temp_r31->unk58.x; - if(object->trans.y >= 910.0f) { - if(temp_r31->unk6C == 0) { - temp_r31->unk6C = 1; - omVibrate(temp_r31->unk4, 12, 4, 2); - Hu3DModelAttrReset(object->model[2], 1); - Hu3DModelAttrReset(object->model[2], 0x40000002); - Hu3DModelAttrSet(object->model[2], 0x40000001); - Hu3DModelPosSet(object->model[2], object->trans.x, 950, 30+object->trans.z); - Hu3DModelScaleSet(object->model[2], 1, 1, 1); - Hu3DMotionTimeSet(object->model[2], 0); - Hu3DModelAttrReset(object->model[3], 0x40000002); - Hu3DModelAttrReset(object->model[3], 1); - Hu3DModelClusterAttrReset(object->model[3], 0, 0xC0000002); - Hu3DModelPosSet(object->model[3], object->trans.x, 0, 30+object->trans.z); - Hu3DMotionTimeSet(object->model[3], 0); - sp4C.x = object->trans.x; - sp4C.y = 950; - sp4C.z = 30+object->trans.z; - fn_2_10A88(&sp4C, 7); - HuAudFXEmiterPlay(1289, &sp4C); - } - temp_r31->unk0 = 11; - temp_r31->unk24.x = sp30[temp_r31->unk4]; - temp_r31->unk24.y = 1030; - temp_r31->unk24.z = 40; - sp4C.x = object->trans.x; - sp4C.y = object->trans.y; - sp4C.z = object->trans.z; - VECSubtract(&temp_r31->unk24, &sp4C, &sp40); - VECNormalize(&sp40, &sp40); - temp_f29 = VECDistanceXZ(&temp_r31->unk24, &object->trans); - temp_r31->unk30.x = (sp40.x*temp_f29)/60.0f; - temp_r31->unk30.z = (sp40.z*temp_f29)/60.0f; - temp_r31->unk30.y = 18.75f; - temp_r31->unk58.y = 0; - } - break; - - case 11: - temp_f29 = temp_r31->unk30.y-(0.020833334f*temp_r31->unk58.y*temp_r31->unk58.y); - object->trans.x += temp_r31->unk30.x; - object->trans.z += temp_r31->unk30.z; - object->trans.y += temp_f29; - temp_r31->unk58.y += 1.0f; - if(object->trans.y <= 1030.0f && temp_f29 < 0) { - temp_r31->unk0 = 12; - object->trans.y = 1030+temp_r29->unk4; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[2], 0, 15, 0x40000001); - temp_r31->unk58.x = 0; - } - break; - - case 12: - object->trans.y = 1030+temp_r29->unk4; - sp24.x = (sind(temp_r31->unk58.x), 0.0); - sp24.y = -100*sind(temp_r31->unk58.x)+1300; - sp24.z = -500*sind(temp_r31->unk58.x)+1300; - sp18.x = (sind(temp_r31->unk58.x), 0.0); - sp18.y = 330*sind(temp_r31->unk58.x)+920; - sp18.z = (sind(temp_r31->unk58.x), 0.0) + -100.0; - spC.x = 0; - spC.y = 1; - spC.z = 0; - Hu3DCameraPosSetV(1, &sp24, &spC, &sp18); - temp_r31->unk58.x += 3.0f; - if(temp_r31->unk58.x > 90.0f) { - temp_r31->unk0 = 13; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[5], 0, 20, 0); - HuAudSStreamPlay(1); - lbl_2_bss_C0 = MGSeqWinCreate(lbl_2_bss_AA[0], -1, -1, -1); - lbl_2_bss_1A = 210; - } - temp_r31->unk6E = 160; - break; - - case 13: - if(lbl_2_bss_BA == 1) { - object->trans.y = 1030+temp_r29->unk4; - } else { - temp_r31->unk58.x *= 1.17f; - object->trans.y -= 0.35f*sind(temp_r31->unk80); - temp_r31->unk80 += 3.0f; - if(temp_r31->unk80 >= 360.0f) { - temp_r31->unk80 -= 360.0f; - } - if(73.0f <= Hu3DMotionOverlayTimeGet(object->model[0])) { - Hu3DMotionOverlayTimeSet(object->model[0], 35.0f); - } - } - if(--temp_r31->unk6E == 0) { - temp_r31->unk0 = 14; - } - - break; - - case 14: - if(temp_r31->unk68) { - if(lbl_2_bss_BA == 1) { - object->trans.y = 1030+temp_r29->unk4; - } else { - temp_r31->unk58.x *= 1.17f; - object->trans.y -= 0.35f*sind(temp_r31->unk80); - temp_r31->unk80 += 3.0f; - if(temp_r31->unk80 >= 360.0f) { - temp_r31->unk80 -= 360.0f; - } - if(73.0f <= Hu3DMotionOverlayTimeGet(object->model[0])) { - Hu3DMotionOverlayTimeSet(object->model[0], 35.0f); - } - } - } - if(lbl_2_bss_1A <= 0) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - HuAudSeqFadeOut(lbl_2_bss_A4, 100); - HuAudFXStop(lbl_2_bss_11C); - temp_r31->unk0 = 15; - } - break; - - case 15: - if(temp_r31->unk68) { - if(lbl_2_bss_BA == 1) { - object->trans.y = 1030+temp_r29->unk4; - } else { - temp_r31->unk58.x *= 1.17f; - object->trans.y -= 0.35f*sind(temp_r31->unk80); - temp_r31->unk80 += 3.0f; - if(temp_r31->unk80 >= 360.0f) { - temp_r31->unk80 -= 360.0f; - } - if(73.0f <= Hu3DMotionOverlayTimeGet(object->model[0])) { - Hu3DMotionOverlayTimeSet(object->model[0], 35.0f); - } - } - } - if(!WipeStatGet()) { - lbl_2_bss_110->func = fn_2_A10; - } - break; - } + M401WorkPlayer *temp_r31; + Work2FA4 *temp_r29; + float temp_f29; + Vec sp4C; + Vec sp40; + s32 sp30[] = { -10, -50, -80, -130 }; + Vec sp24; + Vec sp18; + Vec spC; + temp_r31 = object->data; + temp_r29 = lbl_2_bss_10C->data; + if (temp_r31->unk4 == 0) { + lbl_2_bss_1A--; + } + switch (temp_r31->unk0) { + case 5: + if (temp_r31->unk6A == 1) { + CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); + temp_r31->unk6A = 0; + } + omSetRot(object, 0, 180, 0); + object->trans.z -= 5.0f; + fn_2_6B44(object); + break; + + case 6: + object->trans.y += temp_r31->unk58.x; + if (object->trans.y >= 910.0f) { + if (temp_r31->unk6C == 0) { + temp_r31->unk6C = 1; + Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], 0x40000001); + Hu3DModelPosSet(object->model[2], object->trans.x, 950, 30 + object->trans.z); + Hu3DModelScaleSet(object->model[2], 1, 1, 1); + Hu3DMotionTimeSet(object->model[2], 0); + sp4C.x = object->trans.x; + sp4C.y = 950; + sp4C.z = 30 + object->trans.z; + fn_2_10A88(&sp4C, 7); + HuAudFXEmiterPlay(1289, &sp4C); + } + temp_r31->unk58.x *= 0.7f; + if (temp_r31->unk58.x <= 0.5f) { + temp_r31->unk0 = 7; + temp_r31->unk58.x = -0.5f; + CharModelMotionShiftSet(temp_r31->unk86, object->motion[0], 0, 30, 0x40000001); + temp_r31->unk80 = 0; + temp_r31->unk6C = 0; + } + } + + break; + + case 7: + object->trans.y += temp_r31->unk58.x; + if (object->trans.y <= 890) { + object->trans.y = 890; + if (lbl_2_bss_BA) { + if (temp_r31->unk68) { + temp_r31->unk0 = 16; + } + else { + temp_r31->unk0 = 9; + } + } + else { + temp_r31->unk0 = 8; + temp_r29->unk8.z = 0.5f; + temp_r31->unk6E = 0; + HuAudSStreamPlay(4); + lbl_2_bss_C0 = MGSeqDrawCreate(); + lbl_2_bss_1A = 210; + } + } + temp_r31->unk58.x *= 1.17f; + object->trans.y -= 0.35f * sind(temp_r31->unk80); + temp_r31->unk80 += 3.0f; + if (temp_r31->unk80 >= 360.0f) { + temp_r31->unk80 -= 360.0f; + } + break; + + case 8: + object->trans.y -= 0.35f * sind(temp_r31->unk80); + temp_r31->unk80 += 3.0f; + if (temp_r31->unk80 >= 360.0f) { + temp_r31->unk80 -= 360.0f; + } + if (temp_r31->unk6E == 13) { + Hu3DModelAttrReset(lbl_2_bss_10C->model[6], 1); + Hu3DMotionTimeSet(lbl_2_bss_10C->model[6], 0); + } + else if (temp_r31->unk6E == 50) { + Hu3DMotionOverlaySet(object->model[0], object->motion[8]); + Hu3DMotionOverlayTimeSet(object->model[0], 31.0f); + Hu3DData[object->model[0]].unk_78 = 1; + } + if (temp_r31->unk6E >= 70) { + if (object->rot.y < 90.0f) { + object->rot.y += 2.25f; + } + else { + object->rot.y = 90.0f; + } + } + temp_r31->unk6E++; + if (temp_r29->unk8.y >= 1500.0f) { + temp_r29->unk8.z = 0; + if (temp_r31->unk4 == 0) { + temp_r31->unk0 = 14; + } + } + break; + + case 16: + if (!temp_r31->unk6C) { + temp_r31->unk6C = 1; + HuAudPlayerVoicePlay(temp_r31->unk4, 292); + Hu3DMotionOverlaySet(object->model[0], object->motion[9]); + if (temp_r31->unk4 == lbl_2_bss_B2[0]) { + HuAudSStreamPlay(1); + lbl_2_bss_C0 = MGSeqWinCreate(lbl_2_bss_AA[0], lbl_2_bss_AA[1], lbl_2_bss_AA[2], lbl_2_bss_AA[3]); + lbl_2_bss_1A = 210; + temp_r31->unk6E = 160; + temp_r31->unk0 = 13; + } + } + temp_r31->unk58.x *= 1.17f; + object->trans.y -= 0.35f * sind(temp_r31->unk80); + temp_r31->unk80 += 3.0f; + if (temp_r31->unk80 >= 360.0f) { + temp_r31->unk80 -= 360.0f; + } + if (73.0f <= Hu3DMotionOverlayTimeGet(object->model[0])) { + Hu3DMotionOverlayTimeSet(object->model[0], 35.0f); + } + break; + + case 10: + object->trans.y += temp_r31->unk58.x; + if (object->trans.y >= 910.0f) { + if (temp_r31->unk6C == 0) { + temp_r31->unk6C = 1; + omVibrate(temp_r31->unk4, 12, 4, 2); + Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelAttrReset(object->model[2], 0x40000002); + Hu3DModelAttrSet(object->model[2], 0x40000001); + Hu3DModelPosSet(object->model[2], object->trans.x, 950, 30 + object->trans.z); + Hu3DModelScaleSet(object->model[2], 1, 1, 1); + Hu3DMotionTimeSet(object->model[2], 0); + Hu3DModelAttrReset(object->model[3], 0x40000002); + Hu3DModelAttrReset(object->model[3], 1); + Hu3DModelClusterAttrReset(object->model[3], 0, 0xC0000002); + Hu3DModelPosSet(object->model[3], object->trans.x, 0, 30 + object->trans.z); + Hu3DMotionTimeSet(object->model[3], 0); + sp4C.x = object->trans.x; + sp4C.y = 950; + sp4C.z = 30 + object->trans.z; + fn_2_10A88(&sp4C, 7); + HuAudFXEmiterPlay(1289, &sp4C); + } + temp_r31->unk0 = 11; + temp_r31->unk24.x = sp30[temp_r31->unk4]; + temp_r31->unk24.y = 1030; + temp_r31->unk24.z = 40; + sp4C.x = object->trans.x; + sp4C.y = object->trans.y; + sp4C.z = object->trans.z; + VECSubtract(&temp_r31->unk24, &sp4C, &sp40); + VECNormalize(&sp40, &sp40); + temp_f29 = VECDistanceXZ(&temp_r31->unk24, &object->trans); + temp_r31->unk30.x = (sp40.x * temp_f29) / 60.0f; + temp_r31->unk30.z = (sp40.z * temp_f29) / 60.0f; + temp_r31->unk30.y = 18.75f; + temp_r31->unk58.y = 0; + } + break; + + case 11: + temp_f29 = temp_r31->unk30.y - (0.020833334f * temp_r31->unk58.y * temp_r31->unk58.y); + object->trans.x += temp_r31->unk30.x; + object->trans.z += temp_r31->unk30.z; + object->trans.y += temp_f29; + temp_r31->unk58.y += 1.0f; + if (object->trans.y <= 1030.0f && temp_f29 < 0) { + temp_r31->unk0 = 12; + object->trans.y = 1030 + temp_r29->unk4; + CharModelMotionShiftSet(temp_r31->unk86, object->motion[2], 0, 15, 0x40000001); + temp_r31->unk58.x = 0; + } + break; + + case 12: + object->trans.y = 1030 + temp_r29->unk4; + sp24.x = (sind(temp_r31->unk58.x), 0.0); + sp24.y = -100 * sind(temp_r31->unk58.x) + 1300; + sp24.z = -500 * sind(temp_r31->unk58.x) + 1300; + sp18.x = (sind(temp_r31->unk58.x), 0.0); + sp18.y = 330 * sind(temp_r31->unk58.x) + 920; + sp18.z = (sind(temp_r31->unk58.x), 0.0) + -100.0; + spC.x = 0; + spC.y = 1; + spC.z = 0; + Hu3DCameraPosSetV(1, &sp24, &spC, &sp18); + temp_r31->unk58.x += 3.0f; + if (temp_r31->unk58.x > 90.0f) { + temp_r31->unk0 = 13; + CharModelMotionShiftSet(temp_r31->unk86, object->motion[5], 0, 20, 0); + HuAudSStreamPlay(1); + lbl_2_bss_C0 = MGSeqWinCreate(lbl_2_bss_AA[0], -1, -1, -1); + lbl_2_bss_1A = 210; + } + temp_r31->unk6E = 160; + break; + + case 13: + if (lbl_2_bss_BA == 1) { + object->trans.y = 1030 + temp_r29->unk4; + } + else { + temp_r31->unk58.x *= 1.17f; + object->trans.y -= 0.35f * sind(temp_r31->unk80); + temp_r31->unk80 += 3.0f; + if (temp_r31->unk80 >= 360.0f) { + temp_r31->unk80 -= 360.0f; + } + if (73.0f <= Hu3DMotionOverlayTimeGet(object->model[0])) { + Hu3DMotionOverlayTimeSet(object->model[0], 35.0f); + } + } + if (--temp_r31->unk6E == 0) { + temp_r31->unk0 = 14; + } + + break; + + case 14: + if (temp_r31->unk68) { + if (lbl_2_bss_BA == 1) { + object->trans.y = 1030 + temp_r29->unk4; + } + else { + temp_r31->unk58.x *= 1.17f; + object->trans.y -= 0.35f * sind(temp_r31->unk80); + temp_r31->unk80 += 3.0f; + if (temp_r31->unk80 >= 360.0f) { + temp_r31->unk80 -= 360.0f; + } + if (73.0f <= Hu3DMotionOverlayTimeGet(object->model[0])) { + Hu3DMotionOverlayTimeSet(object->model[0], 35.0f); + } + } + } + if (lbl_2_bss_1A <= 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudSeqFadeOut(lbl_2_bss_A4, 100); + HuAudFXStop(lbl_2_bss_11C); + temp_r31->unk0 = 15; + } + break; + + case 15: + if (temp_r31->unk68) { + if (lbl_2_bss_BA == 1) { + object->trans.y = 1030 + temp_r29->unk4; + } + else { + temp_r31->unk58.x *= 1.17f; + object->trans.y -= 0.35f * sind(temp_r31->unk80); + temp_r31->unk80 += 3.0f; + if (temp_r31->unk80 >= 360.0f) { + temp_r31->unk80 -= 360.0f; + } + if (73.0f <= Hu3DMotionOverlayTimeGet(object->model[0])) { + Hu3DMotionOverlayTimeSet(object->model[0], 35.0f); + } + } + } + if (!WipeStatGet()) { + lbl_2_bss_110->func = fn_2_A10; + } + break; + } } void fn_2_65FC(omObjData *object); @@ -1555,1278 +1532,1322 @@ void fn_2_6C94(omObjData *object, s8 *x, s8 *y, u16 *btn); void fn_2_5CC0(omObjData *object) { - M401WorkPlayer *temp_r31; - float temp_f29; - Vec sp20; - Vec sp14; - s32 sp10; - u16 spA; - s8 sp9; - s8 sp8; - temp_f29 = 0; - temp_r31 = object->data; - sp9 = sp8 = spA = 0; - if(temp_r31->unk78 == 0) { - if(GWPlayerCfg[temp_r31->unk4].iscom) { - fn_2_6C94(object, &sp9, &sp8, &spA); - } else { - sp9 = HuPadStkX[temp_r31->unk8]; - sp8 = HuPadStkY[temp_r31->unk8]; - spA = HuPadBtnDown[temp_r31->unk8]; - } - if(sp9 != 0 || sp8 != 0) { - temp_r31->unk58.z = sqrtf((sp9*sp9)+(sp8*sp8))/9.0f; - } - temp_r31->unk64 = atan2d(sp9, sp8); - if(spA & PAD_BUTTON_A) { - temp_r31->unk88 += 1.51f*lbl_2_data_0; - if(temp_r31->unk88 < 1.51f*lbl_2_data_0) { - temp_r31->unk88 = 1.51f*lbl_2_data_0; - } - } - if(temp_r31->unk88 >= 0.0f){ - temp_f29 = 0; - } else { - temp_f29 = fabs(temp_r31->unk88/(1.51f*lbl_2_data_0)); - } - if(temp_r31->unk84) { - if(--temp_r31->unk84 == 0) { - CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); - temp_r31->unk6A = 0; - } - } - } else { - temp_r31->unk84 = 0; - if(--temp_r31->unk7A == 0) { - sp10 = GWPlayerCfg[temp_r31->unk4].character; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); - temp_r31->unk78 = 0; - temp_r31->unk6A = 0; - } - if(temp_r31->unk7A & 0x1) { - Hu3DModelAttrSet(object->model[0], 1); - } else { - Hu3DModelAttrReset(object->model[0], 1); - } - } - if(temp_f29 != 0) { - if(++temp_r31->unk8C > 15) { - temp_r31->unk8C = 15; - } - temp_r31->unk8E = 0; - } else { - if(++temp_r31->unk8E > 5) { - temp_r31->unk8E = 5; - temp_r31->unk8C = 0; - } - } - if(temp_r31->unk78 == 0 && temp_r31->unk84 == 0) { - if(temp_r31->unk58.z > 0 || temp_r31->unk8C >= 5) { - if(temp_r31->unk6A == 0) { - temp_r31->unk6A = 1; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[3], 0, 8, 0x40000001); - } - } else { - if(temp_r31->unk6A == 1) { - CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); - temp_r31->unk6A = 0; - } - } - } - CharModelMotionSpeedSet(temp_r31->unk86, 1.0f+temp_f29); - fn_2_65FC(object); - if(temp_r31->unk58.z > 0.1f) { - temp_r31->unk58.z *= 0.9f; - } else { - temp_r31->unk58.z = 0.0f; - } - temp_r31->unk88 -= 0.15f*lbl_2_data_0; - if(temp_r31->unk88 > -lbl_2_data_0) { - temp_r31->unk88 = -lbl_2_data_0; - } - sp20.x = object->trans.x; - sp20.y = object->trans.y; - sp20.z = object->trans.z; - omSetTra(object, temp_r31->unkC.x, temp_r31->unkC.y, lbl_2_bss_60.z+temp_r31->unkC.z); - sp14.x = object->trans.x; - sp14.y = object->trans.y; - sp14.z = object->trans.z; - if(sp8 != 0) { - object->rot.x -= 0.05f*sp8; - } else { - object->rot.x *= 0.8f; - if(object->rot.x < 0.01f) { - object->rot.x = 0; - } - } - if(sp9 != 0) { - object->rot.z -= 0.05f*sp9; - } else { - object->rot.z *= 0.8f; - if(object->rot.z < 0.01f) { - object->rot.z = 0; - } - } - if(object->rot.x < -30.0f) { - object->rot.x = -30.0f; - } - if(object->rot.x > 30.0f) { - object->rot.x = 30.0f; - } - if(object->rot.z < -30.0f) { - object->rot.z = -30.0f; - } - if(object->rot.z > 30.0f) { - object->rot.z = 30.0f; - } - object->rot.y = 180; - fn_2_6AF4(object); - fn_2_A940(object); - temp_r31->unk70 = 0; + M401WorkPlayer *temp_r31; + float temp_f29; + Vec sp20; + Vec sp14; + s32 sp10; + u16 spA; + s8 sp9; + s8 sp8; + temp_f29 = 0; + temp_r31 = object->data; + sp9 = sp8 = spA = 0; + if (temp_r31->unk78 == 0) { + if (GWPlayerCfg[temp_r31->unk4].iscom) { + fn_2_6C94(object, &sp9, &sp8, &spA); + } + else { + sp9 = HuPadStkX[temp_r31->unk8]; + sp8 = HuPadStkY[temp_r31->unk8]; + spA = HuPadBtnDown[temp_r31->unk8]; + } + if (sp9 != 0 || sp8 != 0) { + temp_r31->unk58.z = sqrtf((sp9 * sp9) + (sp8 * sp8)) / 9.0f; + } + temp_r31->unk64 = atan2d(sp9, sp8); + if (spA & PAD_BUTTON_A) { + temp_r31->unk88 += 1.51f * lbl_2_data_0; + if (temp_r31->unk88 < 1.51f * lbl_2_data_0) { + temp_r31->unk88 = 1.51f * lbl_2_data_0; + } + } + if (temp_r31->unk88 >= 0.0f) { + temp_f29 = 0; + } + else { + temp_f29 = fabs(temp_r31->unk88 / (1.51f * lbl_2_data_0)); + } + if (temp_r31->unk84) { + if (--temp_r31->unk84 == 0) { + CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); + temp_r31->unk6A = 0; + } + } + } + else { + temp_r31->unk84 = 0; + if (--temp_r31->unk7A == 0) { + sp10 = GWPlayerCfg[temp_r31->unk4].character; + CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); + temp_r31->unk78 = 0; + temp_r31->unk6A = 0; + } + if (temp_r31->unk7A & 0x1) { + Hu3DModelAttrSet(object->model[0], 1); + } + else { + Hu3DModelAttrReset(object->model[0], 1); + } + } + if (temp_f29 != 0) { + if (++temp_r31->unk8C > 15) { + temp_r31->unk8C = 15; + } + temp_r31->unk8E = 0; + } + else { + if (++temp_r31->unk8E > 5) { + temp_r31->unk8E = 5; + temp_r31->unk8C = 0; + } + } + if (temp_r31->unk78 == 0 && temp_r31->unk84 == 0) { + if (temp_r31->unk58.z > 0 || temp_r31->unk8C >= 5) { + if (temp_r31->unk6A == 0) { + temp_r31->unk6A = 1; + CharModelMotionShiftSet(temp_r31->unk86, object->motion[3], 0, 8, 0x40000001); + } + } + else { + if (temp_r31->unk6A == 1) { + CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); + temp_r31->unk6A = 0; + } + } + } + CharModelMotionSpeedSet(temp_r31->unk86, 1.0f + temp_f29); + fn_2_65FC(object); + if (temp_r31->unk58.z > 0.1f) { + temp_r31->unk58.z *= 0.9f; + } + else { + temp_r31->unk58.z = 0.0f; + } + temp_r31->unk88 -= 0.15f * lbl_2_data_0; + if (temp_r31->unk88 > -lbl_2_data_0) { + temp_r31->unk88 = -lbl_2_data_0; + } + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z; + omSetTra(object, temp_r31->unkC.x, temp_r31->unkC.y, lbl_2_bss_60.z + temp_r31->unkC.z); + sp14.x = object->trans.x; + sp14.y = object->trans.y; + sp14.z = object->trans.z; + if (sp8 != 0) { + object->rot.x -= 0.05f * sp8; + } + else { + object->rot.x *= 0.8f; + if (object->rot.x < 0.01f) { + object->rot.x = 0; + } + } + if (sp9 != 0) { + object->rot.z -= 0.05f * sp9; + } + else { + object->rot.z *= 0.8f; + if (object->rot.z < 0.01f) { + object->rot.z = 0; + } + } + if (object->rot.x < -30.0f) { + object->rot.x = -30.0f; + } + if (object->rot.x > 30.0f) { + object->rot.x = 30.0f; + } + if (object->rot.z < -30.0f) { + object->rot.z = -30.0f; + } + if (object->rot.z > 30.0f) { + object->rot.z = 30.0f; + } + object->rot.y = 180; + fn_2_6AF4(object); + fn_2_A940(object); + temp_r31->unk70 = 0; } void fn_2_65FC(omObjData *object) { - M401WorkPlayer *temp_r31; - M401WorkPlayer *temp_r30; - s32 temp_r29; - omObjData *temp_r28; - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f26; - float temp_f24; - - Vec sp24; - Vec sp18; - Vec spC; - temp_r30 = object->data; - temp_f26 = temp_r30->unk58.z; - sp24.x = sind(temp_r30->unk64); - sp24.y = cosd(temp_r30->unk64); - sp24.z = temp_r30->unk88+lbl_2_data_0; - VECNormalize(&sp24, &sp18); - sp24.x *= temp_f26; - sp24.y *= temp_f26; - sp24.z -= lbl_2_data_0; - temp_f31 = temp_r30->unkC.x+sp24.x; - temp_f30 = temp_r30->unkC.y+sp24.y; - temp_f29 = temp_r30->unkC.z+sp24.z; - if(temp_f31 < -400) { - temp_f31 = -400; - } - if(temp_f31 > 400) { - temp_f31 = 400; - } - if(temp_f30 < -300) { - temp_f30 = -300; - } - if(temp_f30 > 300) { - temp_f30 = 300; - } - if(temp_f29 < 400) { - temp_f29 = 400; - } - if(temp_f29 > 800) { - temp_f29 = 800; - } - for(temp_r29=0; temp_r29<4; temp_r29++) { - if(lbl_2_bss_118[temp_r29] != object) { - temp_r28 = lbl_2_bss_118[temp_r29]; - temp_r31 = temp_r28->data; - temp_f24 = VECMagPoint(temp_f31-temp_r31->unkC.x, temp_f30-temp_r31->unkC.y, temp_f29-temp_r31->unkC.z); - if(temp_f24 < 127.0f) { - spC.x = temp_f31-temp_r31->unkC.x; - spC.y = temp_f30-temp_r31->unkC.y; - spC.z = temp_f29-temp_r31->unkC.z; - VECNormalize(&spC, &spC); - temp_f31 = temp_r31->unkC.x+127.0f*spC.x; - temp_f30 = temp_r31->unkC.y+127.0f*spC.y; - temp_f29 = temp_r31->unkC.z+127.0f*spC.z; - } - } - } - if(temp_f31 < -400) { - temp_f31 = -400; - } - if(temp_f31 > 400) { - temp_f31 = 400; - } - if(temp_f30 < -300) { - temp_f30 = -300; - } - if(temp_f30 > 300) { - temp_f30 = 300; - } - if(temp_f29 < 400) { - temp_f29 = 400; - } - if(temp_f29 > 800) { - temp_f29 = 800; - } - temp_r30->unkC.x = temp_f31; - temp_r30->unkC.y = temp_f30; - temp_r30->unkC.z = temp_f29; + M401WorkPlayer *temp_r31; + M401WorkPlayer *temp_r30; + s32 temp_r29; + omObjData *temp_r28; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f26; + float temp_f24; + + Vec sp24; + Vec sp18; + Vec spC; + temp_r30 = object->data; + temp_f26 = temp_r30->unk58.z; + sp24.x = sind(temp_r30->unk64); + sp24.y = cosd(temp_r30->unk64); + sp24.z = temp_r30->unk88 + lbl_2_data_0; + VECNormalize(&sp24, &sp18); + sp24.x *= temp_f26; + sp24.y *= temp_f26; + sp24.z -= lbl_2_data_0; + temp_f31 = temp_r30->unkC.x + sp24.x; + temp_f30 = temp_r30->unkC.y + sp24.y; + temp_f29 = temp_r30->unkC.z + sp24.z; + if (temp_f31 < -400) { + temp_f31 = -400; + } + if (temp_f31 > 400) { + temp_f31 = 400; + } + if (temp_f30 < -300) { + temp_f30 = -300; + } + if (temp_f30 > 300) { + temp_f30 = 300; + } + if (temp_f29 < 400) { + temp_f29 = 400; + } + if (temp_f29 > 800) { + temp_f29 = 800; + } + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + if (lbl_2_bss_118[temp_r29] != object) { + temp_r28 = lbl_2_bss_118[temp_r29]; + temp_r31 = temp_r28->data; + temp_f24 = VECMagPoint(temp_f31 - temp_r31->unkC.x, temp_f30 - temp_r31->unkC.y, temp_f29 - temp_r31->unkC.z); + if (temp_f24 < 127.0f) { + spC.x = temp_f31 - temp_r31->unkC.x; + spC.y = temp_f30 - temp_r31->unkC.y; + spC.z = temp_f29 - temp_r31->unkC.z; + VECNormalize(&spC, &spC); + temp_f31 = temp_r31->unkC.x + 127.0f * spC.x; + temp_f30 = temp_r31->unkC.y + 127.0f * spC.y; + temp_f29 = temp_r31->unkC.z + 127.0f * spC.z; + } + } + } + if (temp_f31 < -400) { + temp_f31 = -400; + } + if (temp_f31 > 400) { + temp_f31 = 400; + } + if (temp_f30 < -300) { + temp_f30 = -300; + } + if (temp_f30 > 300) { + temp_f30 = 300; + } + if (temp_f29 < 400) { + temp_f29 = 400; + } + if (temp_f29 > 800) { + temp_f29 = 800; + } + temp_r30->unkC.x = temp_f31; + temp_r30->unkC.y = temp_f30; + temp_r30->unkC.z = temp_f29; } void fn_2_6AF4(omObjData *object) { - M401WorkPlayer *temp_r31 = object->data; - temp_r31->unk18.x = temp_r31->unkC.x+lbl_2_bss_60.x; - temp_r31->unk18.y = object->trans.y; - temp_r31->unk18.z = 80+object->trans.z; + M401WorkPlayer *temp_r31 = object->data; + temp_r31->unk18.x = temp_r31->unkC.x + lbl_2_bss_60.x; + temp_r31->unk18.y = object->trans.y; + temp_r31->unk18.z = 80 + object->trans.z; } void fn_2_6B44(omObjData *object) { - M401WorkPlayer *temp_r30; - float temp_f31; - float temp_f30; - float temp_f29; - temp_r30 = object->data; - temp_f31 = 80.0*sind(object->rot.y+180.0f); - temp_f29 = 80.0*-cosd(object->rot.y); - temp_f30 = 80.0*sind(object->rot.x); - temp_r30->unk18.x = object->trans.x+temp_f31; - temp_r30->unk18.y = object->trans.y+temp_f30; - temp_r30->unk18.z = object->trans.z+temp_f29; + M401WorkPlayer *temp_r30; + float temp_f31; + float temp_f30; + float temp_f29; + temp_r30 = object->data; + temp_f31 = 80.0 * sind(object->rot.y + 180.0f); + temp_f29 = 80.0 * -cosd(object->rot.y); + temp_f30 = 80.0 * sind(object->rot.x); + temp_r30->unk18.x = object->trans.x + temp_f31; + temp_r30->unk18.y = object->trans.y + temp_f30; + temp_r30->unk18.z = object->trans.z + temp_f29; } omObjData *fn_2_792C(omObjData *object); void fn_2_6C94(omObjData *object, s8 *x, s8 *y, u16 *btn) { - M401WorkPlayer *temp_r31; - s32 temp_r30; - omObjData *temp_r28; - s32 temp_r27; - u16 temp_r26 = 0; - float temp_f31; - float temp_f30; - float temp_f29; - s16 sp50[][8] = { - 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 0, 0, 0, 2, - 0, 0, 0, 2, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, - }; - Vec sp44; - Vec sp38; - Vec sp2C; - Vec sp20; - s16 sp18[] = { - 50, 125, 200, 245 - }; - s16 sp10[] = { - 75, 150, 200, 250 - }; - s16 sp8[] = { - 9, 6, 4, 2 - }; - temp_r31 = object->data; - *x = *y = 0; - *btn = 0; - if(temp_r31->unk7C == 0) { - temp_r31->unk7E = sp50[GWPlayerCfg[temp_r31->unk4].diff][frand() & 0x7]; - temp_r31->unk7C = (frand()%60)+30; - temp_r31->unk92 = 0; - if(frandu8() < sp18[GWPlayerCfg[temp_r31->unk4].diff]) { - temp_r31->unk92 |= 1; - } - if(frandu8() < sp10[GWPlayerCfg[temp_r31->unk4].diff]) { - temp_r31->unk92 |= 2; - } - } else { - temp_r31->unk7C--; - } - temp_r26 = temp_r31->unk92; - sp44.x = sp44.y = sp44.z = 0; - switch(temp_r31->unk7E) { - case 0: - temp_r28 = fn_2_792C(object); - if(temp_r28) { - sp44.x = temp_r28->trans.x-object->trans.x; - sp44.y = temp_r28->trans.y-object->trans.y; - sp44.z = temp_r28->trans.z-object->trans.z; - } - break; - - case 2: - break; - } - if(temp_r26 & 0x1) { - sp38.x = object->trans.x; - sp38.y = object->trans.y; - sp38.z = object->trans.z; - for(temp_r27=0; temp_r27<4; temp_r27++) { - if(lbl_2_bss_118[temp_r27] != object) { - sp20.x = lbl_2_bss_118[temp_r27]->trans.x; - sp20.y = lbl_2_bss_118[temp_r27]->trans.y; - sp20.z = lbl_2_bss_118[temp_r27]->trans.z; - VECSubtract(&sp38, &sp20, &sp2C); - temp_f31 = VECMag(&sp2C)-110.0f; - if(temp_f31 < 110.0f) { - temp_f31 -= 60.0f; - if(temp_f31 < 0.01f) { - temp_f31 = 0.01; - } - VECScale(&sp2C, &sp2C, 1.0f/temp_f31); - VECAdd(&sp44, &sp2C, &sp44); - } - } - } - } - if(temp_r26 & 0x2) { - for(temp_r30=0; temp_r30<4; temp_r30++) { - if(lbl_2_bss_E4[temp_r30]->func != NULL) { - sp20.x = lbl_2_bss_E4[temp_r30]->trans.x; - sp20.y = lbl_2_bss_E4[temp_r30]->trans.y; - sp20.z = lbl_2_bss_E4[temp_r30]->trans.z; - VECSubtract(&sp38, &sp20, &sp2C); - temp_f31 = VECMag(&sp2C)-110.0f; - if(temp_f31 < 110.0f) { - temp_f31 -= 60.0f; - if(temp_f31 < 0.01f) { - temp_f31 = 0.01; - } - VECScale(&sp2C, &sp2C, 1.0f/temp_f31); - VECAdd(&sp44, &sp2C, &sp44); - } - } - } - for(temp_r30=0; temp_r30<2; temp_r30++) { - if(lbl_2_bss_100[temp_r30]->func != NULL) { - sp20.x = lbl_2_bss_100[temp_r30]->trans.x; - sp20.y = lbl_2_bss_100[temp_r30]->trans.y; - sp20.z = lbl_2_bss_100[temp_r30]->trans.z; - VECSubtract(&sp38, &sp20, &sp2C); - temp_f31 = VECMag(&sp2C)-110.0f; - if(temp_f31 < 110.0f) { - temp_f31 -= 60.0f; - if(temp_f31 < 0.01f) { - temp_f31 = 0.01; - } - VECScale(&sp2C, &sp2C, 1.0f/temp_f31); - VECAdd(&sp44, &sp2C, &sp44); - } - } - } - sp20.x = lbl_2_bss_FC->trans.x; - sp20.y = lbl_2_bss_FC->trans.y; - sp20.z = lbl_2_bss_FC->trans.z; - VECSubtract(&sp38, &sp20, &sp2C); - sp2C.x = 0; - temp_f31 = VECMag(&sp2C)-220.0f; - if(temp_f31 < 220.0f) { - temp_f31 -= 160.0f; - if(temp_f31 < 0.01f) { - temp_f31 = 0.01; - } - VECScale(&sp2C, &sp2C, 1.0f/temp_f31); - VECAdd(&sp44, &sp2C, &sp44); - } - } - - if(sp44.z < 0.0f) { - if(temp_r31->unk90 == 0) { - *btn |= 0x100; - temp_r31->unk90 = (frand()%sp8[GWPlayerCfg[temp_r31->unk4].diff])+3; - } else { - temp_r31->unk90--; - } - } - sp44.z = 0; - temp_f30 = VECMag(&sp44); - temp_f30 *= 0.2f; - temp_f29 = atan2d(sp44.y, sp44.x); - if(temp_f30 > 72.0f) { - temp_f30 = 72.0f; - } - if(temp_f30 < 10.0f) { - temp_f30 = 0.0f; - } - *x = temp_f30*cosd(temp_f29); - *y = temp_f30*sind(temp_f29); + M401WorkPlayer *temp_r31; + s32 temp_r30; + omObjData *temp_r28; + s32 temp_r27; + u16 temp_r26 = 0; + float temp_f31; + float temp_f30; + float temp_f29; + s16 sp50[][8] = { + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + }; + Vec sp44; + Vec sp38; + Vec sp2C; + Vec sp20; + s16 sp18[] = { 50, 125, 200, 245 }; + s16 sp10[] = { 75, 150, 200, 250 }; + s16 sp8[] = { 9, 6, 4, 2 }; + temp_r31 = object->data; + *x = *y = 0; + *btn = 0; + if (temp_r31->unk7C == 0) { + temp_r31->unk7E = sp50[GWPlayerCfg[temp_r31->unk4].diff][frand() & 0x7]; + temp_r31->unk7C = (frand() % 60) + 30; + temp_r31->unk92 = 0; + if (frandu8() < sp18[GWPlayerCfg[temp_r31->unk4].diff]) { + temp_r31->unk92 |= 1; + } + if (frandu8() < sp10[GWPlayerCfg[temp_r31->unk4].diff]) { + temp_r31->unk92 |= 2; + } + } + else { + temp_r31->unk7C--; + } + temp_r26 = temp_r31->unk92; + sp44.x = sp44.y = sp44.z = 0; + switch (temp_r31->unk7E) { + case 0: + temp_r28 = fn_2_792C(object); + if (temp_r28) { + sp44.x = temp_r28->trans.x - object->trans.x; + sp44.y = temp_r28->trans.y - object->trans.y; + sp44.z = temp_r28->trans.z - object->trans.z; + } + break; + + case 2: + break; + } + if (temp_r26 & 0x1) { + sp38.x = object->trans.x; + sp38.y = object->trans.y; + sp38.z = object->trans.z; + for (temp_r27 = 0; temp_r27 < 4; temp_r27++) { + if (lbl_2_bss_118[temp_r27] != object) { + sp20.x = lbl_2_bss_118[temp_r27]->trans.x; + sp20.y = lbl_2_bss_118[temp_r27]->trans.y; + sp20.z = lbl_2_bss_118[temp_r27]->trans.z; + VECSubtract(&sp38, &sp20, &sp2C); + temp_f31 = VECMag(&sp2C) - 110.0f; + if (temp_f31 < 110.0f) { + temp_f31 -= 60.0f; + if (temp_f31 < 0.01f) { + temp_f31 = 0.01; + } + VECScale(&sp2C, &sp2C, 1.0f / temp_f31); + VECAdd(&sp44, &sp2C, &sp44); + } + } + } + } + if (temp_r26 & 0x2) { + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + if (lbl_2_bss_E4[temp_r30]->func != NULL) { + sp20.x = lbl_2_bss_E4[temp_r30]->trans.x; + sp20.y = lbl_2_bss_E4[temp_r30]->trans.y; + sp20.z = lbl_2_bss_E4[temp_r30]->trans.z; + VECSubtract(&sp38, &sp20, &sp2C); + temp_f31 = VECMag(&sp2C) - 110.0f; + if (temp_f31 < 110.0f) { + temp_f31 -= 60.0f; + if (temp_f31 < 0.01f) { + temp_f31 = 0.01; + } + VECScale(&sp2C, &sp2C, 1.0f / temp_f31); + VECAdd(&sp44, &sp2C, &sp44); + } + } + } + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + if (lbl_2_bss_100[temp_r30]->func != NULL) { + sp20.x = lbl_2_bss_100[temp_r30]->trans.x; + sp20.y = lbl_2_bss_100[temp_r30]->trans.y; + sp20.z = lbl_2_bss_100[temp_r30]->trans.z; + VECSubtract(&sp38, &sp20, &sp2C); + temp_f31 = VECMag(&sp2C) - 110.0f; + if (temp_f31 < 110.0f) { + temp_f31 -= 60.0f; + if (temp_f31 < 0.01f) { + temp_f31 = 0.01; + } + VECScale(&sp2C, &sp2C, 1.0f / temp_f31); + VECAdd(&sp44, &sp2C, &sp44); + } + } + } + sp20.x = lbl_2_bss_FC->trans.x; + sp20.y = lbl_2_bss_FC->trans.y; + sp20.z = lbl_2_bss_FC->trans.z; + VECSubtract(&sp38, &sp20, &sp2C); + sp2C.x = 0; + temp_f31 = VECMag(&sp2C) - 220.0f; + if (temp_f31 < 220.0f) { + temp_f31 -= 160.0f; + if (temp_f31 < 0.01f) { + temp_f31 = 0.01; + } + VECScale(&sp2C, &sp2C, 1.0f / temp_f31); + VECAdd(&sp44, &sp2C, &sp44); + } + } + + if (sp44.z < 0.0f) { + if (temp_r31->unk90 == 0) { + *btn |= 0x100; + temp_r31->unk90 = (frand() % sp8[GWPlayerCfg[temp_r31->unk4].diff]) + 3; + } + else { + temp_r31->unk90--; + } + } + sp44.z = 0; + temp_f30 = VECMag(&sp44); + temp_f30 *= 0.2f; + temp_f29 = atan2d(sp44.y, sp44.x); + if (temp_f30 > 72.0f) { + temp_f30 = 72.0f; + } + if (temp_f30 < 10.0f) { + temp_f30 = 0.0f; + } + *x = temp_f30 * cosd(temp_f29); + *y = temp_f30 * sind(temp_f29); } s32 fn_2_AC2C(Vec *pos, float dist, omObjData **newobj); s32 fn_2_7640(omObjData *object, omObjData **newobj) { - Vec spC; - spC.x = object->trans.x; - spC.y = object->trans.y; - spC.z = object->trans.z-100.0f; - return fn_2_AC2C(&spC, 270.0f, newobj); + Vec spC; + spC.x = object->trans.x; + spC.y = object->trans.y; + spC.z = object->trans.z - 100.0f; + return fn_2_AC2C(&spC, 270.0f, newobj); } void fn_2_76AC(omObjData *object, s32 arg1) { - M401WorkPlayer *temp_r31; - if(arg1) { - temp_r31 = object->data; - temp_r31->unk7E = 1; - temp_r31->unk7C = 5; - switch(arg1) { - case 1: - temp_r31->unk80 = 180.0+atan2d(temp_r31->unk54->trans.x-object->trans.x, temp_r31->unk54->trans.y-object->trans.y); - break; - - case 2: - if(temp_r31->unkC.y > temp_r31->unk54->trans.y) { - temp_r31->unk80 = 80.0f+((1.0f/255.0f)*(20.0f*frandu8())); - } else { - temp_r31->unk80 = 260.0f+((1.0f/255.0f)*(20.0f*frandu8())); - } - break; - - case 3: - if(temp_r31->unkC.y > temp_r31->unk54->trans.y) { - temp_r31->unk80 = 80.0f+((1.0f/255.0f)*(20.0f*frandu8())); - } else { - temp_r31->unk80 = 260.0f+((1.0f/255.0f)*(20.0f*frandu8())); - } - break; - } - } + M401WorkPlayer *temp_r31; + if (arg1) { + temp_r31 = object->data; + temp_r31->unk7E = 1; + temp_r31->unk7C = 5; + switch (arg1) { + case 1: + temp_r31->unk80 = 180.0 + atan2d(temp_r31->unk54->trans.x - object->trans.x, temp_r31->unk54->trans.y - object->trans.y); + break; + + case 2: + if (temp_r31->unkC.y > temp_r31->unk54->trans.y) { + temp_r31->unk80 = 80.0f + ((1.0f / 255.0f) * (20.0f * frandu8())); + } + else { + temp_r31->unk80 = 260.0f + ((1.0f / 255.0f) * (20.0f * frandu8())); + } + break; + + case 3: + if (temp_r31->unkC.y > temp_r31->unk54->trans.y) { + temp_r31->unk80 = 80.0f + ((1.0f / 255.0f) * (20.0f * frandu8())); + } + else { + temp_r31->unk80 = 260.0f + ((1.0f / 255.0f) * (20.0f * frandu8())); + } + break; + } + } } omObjData *fn_2_792C(omObjData *object) { - omObjData **temp_r31; - s32 temp_r30; - omObjData *temp_r28; - float temp_f31, temp_f30, temp_f29; - float temp_f27, temp_f26; - temp_r31 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); - temp_f26 = 100000; - temp_r28 = NULL; - for(temp_r30=0; temp_r30<28; temp_r30++) { - if(temp_r31[temp_r30] == NULL || temp_r31[temp_r30]->trans.z-lbl_2_bss_60.z > 850.0f || temp_r31[temp_r30]->trans.z-lbl_2_bss_60.z < -2500.0f) { - continue; - } - temp_f30 = temp_r31[temp_r30]->trans.x-object->trans.x; - temp_f29 = temp_r31[temp_r30]->trans.y-object->trans.y; - temp_f31 = temp_r31[temp_r30]->trans.z-object->trans.z; - temp_f31 *= 0.15f; - temp_f27 = VECMagPoint(temp_f30, temp_f29, temp_f31); - if(temp_f27 < temp_f26 && temp_f27 < 2000.0f) { - temp_f26 = temp_f27; - temp_r28 = temp_r31[temp_r30]; - } - } - return temp_r28; + omObjData **temp_r31; + s32 temp_r30; + omObjData *temp_r28; + float temp_f31, temp_f30, temp_f29; + float temp_f27, temp_f26; + temp_r31 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); + temp_f26 = 100000; + temp_r28 = NULL; + for (temp_r30 = 0; temp_r30 < 28; temp_r30++) { + if (temp_r31[temp_r30] == NULL || temp_r31[temp_r30]->trans.z - lbl_2_bss_60.z > 850.0f + || temp_r31[temp_r30]->trans.z - lbl_2_bss_60.z < -2500.0f) { + continue; + } + temp_f30 = temp_r31[temp_r30]->trans.x - object->trans.x; + temp_f29 = temp_r31[temp_r30]->trans.y - object->trans.y; + temp_f31 = temp_r31[temp_r30]->trans.z - object->trans.z; + temp_f31 *= 0.15f; + temp_f27 = VECMagPoint(temp_f30, temp_f29, temp_f31); + if (temp_f27 < temp_f26 && temp_f27 < 2000.0f) { + temp_f26 = temp_f27; + temp_r28 = temp_r31[temp_r30]; + } + } + return temp_r28; } void fn_2_A914(s32 player); void fn_2_7C3C(omObjData *object) { - M401WorkPlayer *temp_r31 = object->data; - temp_r31->unk78 = 1; - temp_r31->unk7A = 120; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[7], 0, 10, 0); - fn_2_A914(temp_r31->unk4); + M401WorkPlayer *temp_r31 = object->data; + temp_r31->unk78 = 1; + temp_r31->unk7A = 120; + CharModelMotionShiftSet(temp_r31->unk86, object->motion[7], 0, 10, 0); + fn_2_A914(temp_r31->unk4); } typedef struct work_7CB4 { - s16 unk0; - Vec unk4; - Vec unk10; - s16 unk1C; - s16 unk1E; - s16 unk20; - s16 unk22; - s16 unk24; - float unk28; - s16 unk2C; - s16 unk2E; - float unk30; + s16 unk0; + Vec unk4; + Vec unk10; + s16 unk1C; + s16 unk1E; + s16 unk20; + s16 unk22; + s16 unk24; + float unk28; + s16 unk2C; + s16 unk2E; + float unk30; } Work7CB4; void fn_2_7E6C(omObjData *object); void fn_2_7CB4(omObjData *object) { - Work7CB4 *temp_r31; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work7CB4), MEMORY_DEFAULT_NUM); - temp_r31 = object->data; - temp_r31->unk10.x = 0; - temp_r31->unk10.y = 200; - temp_r31->unk10.z = 0; - temp_r31->unk1E = 0; - temp_r31->unk22 = 100; - temp_r31->unk4.x = 0; - temp_r31->unk4.y = 200; - temp_r31->unk24 = 0; - temp_r31->unk28 = 0; - object->model[0] = Hu3DModelCreateFile(0x20000B); - Hu3DModelClusterAttrSet(object->model[0], 0, 0xC0000001); - Hu3DModelAttrSet(object->model[0], 0x1); - Hu3DModelAmbSet(object->model[0], 0.6f, 0.6f, 0.6f); - Hu3DModelShadowSet(object->model[0]); - temp_r31->unk0 = 0; - temp_r31->unk22 = 180; - omSetTra(object, 0, 200, 200); - omSetRot(object, 0, 180, 0); - object->func = fn_2_7E6C; + Work7CB4 *temp_r31; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work7CB4), MEMORY_DEFAULT_NUM); + temp_r31 = object->data; + temp_r31->unk10.x = 0; + temp_r31->unk10.y = 200; + temp_r31->unk10.z = 0; + temp_r31->unk1E = 0; + temp_r31->unk22 = 100; + temp_r31->unk4.x = 0; + temp_r31->unk4.y = 200; + temp_r31->unk24 = 0; + temp_r31->unk28 = 0; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x0B)); + Hu3DModelClusterAttrSet(object->model[0], 0, 0xC0000001); + Hu3DModelAttrSet(object->model[0], 0x1); + Hu3DModelAmbSet(object->model[0], 0.6f, 0.6f, 0.6f); + Hu3DModelShadowSet(object->model[0]); + temp_r31->unk0 = 0; + temp_r31->unk22 = 180; + omSetTra(object, 0, 200, 200); + omSetRot(object, 0, 180, 0); + object->func = fn_2_7E6C; } void fn_2_7E6C(omObjData *object) { - Work7CB4 *temp_r31; - temp_r31 = object->data; - switch(temp_r31->unk0) { - case 0: - if(--temp_r31->unk22 == 0) { - temp_r31->unk0 = 1; - } - break; - - case 1: - object->trans.z += -11.333333f; - break; - } + Work7CB4 *temp_r31; + temp_r31 = object->data; + switch (temp_r31->unk0) { + case 0: + if (--temp_r31->unk22 == 0) { + temp_r31->unk0 = 1; + } + break; + + case 1: + object->trans.z += -11.333333f; + break; + } } -s32 gap_04_00000328_data = 0x20000C; -s32 lbl_2_data_32C[] = { - 4, 6 -}; -Vec lbl_2_data_334[][10] = { - { - { 1400, -600, -21500 }, - { -100, 100, -22000 }, - { -1000, -200, -23000 }, - { -2000, -200, -23500 }, - { -2200, -200, -23500 }, - { -2300, -200, -23500 }, - }, - { - { -1000, 500, -29500 }, - { -300, 300, -31500 }, - { 300, -150, -32500 }, - { -200, 250, -34000 }, - { -300, 300, -35000 }, - { -600, 300, -36000 }, - { 1000, -180, -40000 }, - { 1000, -180, -40000 }, - } - +s32 gap_04_00000328_data = DATA_MAKE_NUM(DATADIR_M401, 0x0C); +s32 lbl_2_data_32C[] = { 4, 6 }; +Vec lbl_2_data_334[][10] = { { + { 1400, -600, -21500 }, + { -100, 100, -22000 }, + { -1000, -200, -23000 }, + { -2000, -200, -23500 }, + { -2200, -200, -23500 }, + { -2300, -200, -23500 }, + }, + { + { -1000, 500, -29500 }, + { -300, 300, -31500 }, + { 300, -150, -32500 }, + { -200, 250, -34000 }, + { -300, 300, -35000 }, + { -600, 300, -36000 }, + { 1000, -180, -40000 }, + { 1000, -180, -40000 }, + } + }; void fn_2_7EDC(s32 arg0, s32 arg1, float arg2, Vec *arg3) { - Vec *temp_r31; - Vec *temp_r30; - Vec *temp_r29; - Vec *temp_r28; - float temp_f31 = arg2*arg2; - if(arg1 == 0) { - temp_r31 = &lbl_2_data_334[arg0][arg1]; - temp_r30 = &lbl_2_data_334[arg0][arg1+1]; - temp_r29 = &lbl_2_data_334[arg0][arg1+2]; - temp_r28 = &lbl_2_data_334[arg0][arg1+3]; - arg3->x = (0.5f * ((2.0f * temp_r31->x) + ((temp_f31 * (temp_r29->x + (temp_r31->x - (2.0f * temp_r30->x)))) + (arg2 * (((-3.0f * temp_r31->x) + (4.0f * temp_r30->x)) - temp_r29->x))))); - arg3->y = (0.5f * ((2.0f * temp_r31->y) + ((temp_f31 * (temp_r29->y + (temp_r31->y - (2.0f * temp_r30->y)))) + (arg2 * (((-3.0f * temp_r31->y) + (4.0f * temp_r30->y)) - temp_r29->y))))); - arg3->z = (0.5f * ((2.0f * temp_r31->z) + ((temp_f31 * (temp_r29->z + (temp_r31->z - (2.0f * temp_r30->z)))) + (arg2 * (((-3.0f * temp_r31->z) + (4.0f * temp_r30->z)) - temp_r29->z))))); - } else { - temp_r31 = &lbl_2_data_334[arg0][arg1-1]; - temp_r30 = &lbl_2_data_334[arg0][arg1]; - temp_r29 = &lbl_2_data_334[arg0][arg1+1]; - temp_r28 = &lbl_2_data_334[arg0][arg1+2]; - arg3->x = (0.5f * ((2.0f * temp_r30->x) + ((arg2 * (-temp_r31->x + temp_r29->x)) + ((arg2 * (temp_f31 * (temp_r28->x + ((-temp_r31->x + (3.0f * temp_r30->x)) - (3.0f * temp_r29->x))))) + (temp_f31 * (((4.0f * temp_r29->x) + ((2.0f * temp_r31->x) - (5.0f * temp_r30->x))) - temp_r28->x)))))); - arg3->y = (0.5f * ((2.0f * temp_r30->y) + ((arg2 * (-temp_r31->y + temp_r29->y)) + ((arg2 * (temp_f31 * (temp_r28->y + ((-temp_r31->y + (3.0f * temp_r30->y)) - (3.0f * temp_r29->y))))) + (temp_f31 * (((4.0f * temp_r29->y) + ((2.0f * temp_r31->y) - (5.0f * temp_r30->y))) - temp_r28->y)))))); - arg3->z = (0.5f * ((2.0f * temp_r30->z) + ((arg2 * (-temp_r31->z + temp_r29->z)) + ((arg2 * (temp_f31 * (temp_r28->z + ((-temp_r31->z + (3.0f * temp_r30->z)) - (3.0f * temp_r29->z))))) + (temp_f31 * (((4.0f * temp_r29->z) + ((2.0f * temp_r31->z) - (5.0f * temp_r30->z))) - temp_r28->z)))))); - } + Vec *temp_r31; + Vec *temp_r30; + Vec *temp_r29; + Vec *temp_r28; + float temp_f31 = arg2 * arg2; + if (arg1 == 0) { + temp_r31 = &lbl_2_data_334[arg0][arg1]; + temp_r30 = &lbl_2_data_334[arg0][arg1 + 1]; + temp_r29 = &lbl_2_data_334[arg0][arg1 + 2]; + temp_r28 = &lbl_2_data_334[arg0][arg1 + 3]; + arg3->x = (0.5f + * ((2.0f * temp_r31->x) + + ((temp_f31 * (temp_r29->x + (temp_r31->x - (2.0f * temp_r30->x)))) + + (arg2 * (((-3.0f * temp_r31->x) + (4.0f * temp_r30->x)) - temp_r29->x))))); + arg3->y = (0.5f + * ((2.0f * temp_r31->y) + + ((temp_f31 * (temp_r29->y + (temp_r31->y - (2.0f * temp_r30->y)))) + + (arg2 * (((-3.0f * temp_r31->y) + (4.0f * temp_r30->y)) - temp_r29->y))))); + arg3->z = (0.5f + * ((2.0f * temp_r31->z) + + ((temp_f31 * (temp_r29->z + (temp_r31->z - (2.0f * temp_r30->z)))) + + (arg2 * (((-3.0f * temp_r31->z) + (4.0f * temp_r30->z)) - temp_r29->z))))); + } + else { + temp_r31 = &lbl_2_data_334[arg0][arg1 - 1]; + temp_r30 = &lbl_2_data_334[arg0][arg1]; + temp_r29 = &lbl_2_data_334[arg0][arg1 + 1]; + temp_r28 = &lbl_2_data_334[arg0][arg1 + 2]; + arg3->x = (0.5f + * ((2.0f * temp_r30->x) + + ((arg2 * (-temp_r31->x + temp_r29->x)) + + ((arg2 * (temp_f31 * (temp_r28->x + ((-temp_r31->x + (3.0f * temp_r30->x)) - (3.0f * temp_r29->x))))) + + (temp_f31 * (((4.0f * temp_r29->x) + ((2.0f * temp_r31->x) - (5.0f * temp_r30->x))) - temp_r28->x)))))); + arg3->y = (0.5f + * ((2.0f * temp_r30->y) + + ((arg2 * (-temp_r31->y + temp_r29->y)) + + ((arg2 * (temp_f31 * (temp_r28->y + ((-temp_r31->y + (3.0f * temp_r30->y)) - (3.0f * temp_r29->y))))) + + (temp_f31 * (((4.0f * temp_r29->y) + ((2.0f * temp_r31->y) - (5.0f * temp_r30->y))) - temp_r28->y)))))); + arg3->z = (0.5f + * ((2.0f * temp_r30->z) + + ((arg2 * (-temp_r31->z + temp_r29->z)) + + ((arg2 * (temp_f31 * (temp_r28->z + ((-temp_r31->z + (3.0f * temp_r30->z)) - (3.0f * temp_r29->z))))) + + (temp_f31 * (((4.0f * temp_r29->z) + ((2.0f * temp_r31->z) - (5.0f * temp_r30->z))) - temp_r28->z)))))); + } } s32 fn_2_8450(omObjData *object) { - Work7CB4 *temp_r31; - Vec *temp_r29; - Vec *temp_r28; - float temp_f29; - Vec sp18; - Vec spC; - temp_r31 = object->data; - while(1) { - if(temp_r31->unk2E == lbl_2_data_32C[temp_r31->unk2C]) { - return 1; - } - temp_r28 = &lbl_2_data_334[temp_r31->unk2C][temp_r31->unk2E+1]; - temp_r29 = &lbl_2_data_334[temp_r31->unk2C][temp_r31->unk2E]; - sp18.x = temp_r28->x - temp_r29->x; - sp18.y = temp_r28->y - temp_r29->y; - sp18.z = temp_r28->z - temp_r29->z; - temp_f29 = VECMagPoint(sp18.x, sp18.y, sp18.z); - if(temp_r31->unk30 > temp_f29) { - temp_r31->unk30 -= temp_f29; - temp_r31->unk2E++; - continue; - } - break; - } - fn_2_7EDC(temp_r31->unk2C, temp_r31->unk2E, temp_r31->unk30/temp_f29, &spC); - sp18.x = spC.x-object->trans.x; - sp18.y = spC.y-object->trans.y; - sp18.z = spC.z-object->trans.z; - VECNormalize(&sp18, &sp18); - object->trans.x = spC.x; - object->trans.y = spC.y; - object->trans.z = spC.z; - object->rot.y = atan2d(sp18.x, sp18.z); - object->rot.x = -90.0f*sp18.y; - return 0; + Work7CB4 *temp_r31; + Vec *temp_r29; + Vec *temp_r28; + float temp_f29; + Vec sp18; + Vec spC; + temp_r31 = object->data; + while (1) { + if (temp_r31->unk2E == lbl_2_data_32C[temp_r31->unk2C]) { + return 1; + } + temp_r28 = &lbl_2_data_334[temp_r31->unk2C][temp_r31->unk2E + 1]; + temp_r29 = &lbl_2_data_334[temp_r31->unk2C][temp_r31->unk2E]; + sp18.x = temp_r28->x - temp_r29->x; + sp18.y = temp_r28->y - temp_r29->y; + sp18.z = temp_r28->z - temp_r29->z; + temp_f29 = VECMagPoint(sp18.x, sp18.y, sp18.z); + if (temp_r31->unk30 > temp_f29) { + temp_r31->unk30 -= temp_f29; + temp_r31->unk2E++; + continue; + } + break; + } + fn_2_7EDC(temp_r31->unk2C, temp_r31->unk2E, temp_r31->unk30 / temp_f29, &spC); + sp18.x = spC.x - object->trans.x; + sp18.y = spC.y - object->trans.y; + sp18.z = spC.z - object->trans.z; + VECNormalize(&sp18, &sp18); + object->trans.x = spC.x; + object->trans.y = spC.y; + object->trans.z = spC.z; + object->rot.y = atan2d(sp18.x, sp18.z); + object->rot.x = -90.0f * sp18.y; + return 0; } s32 fn_2_873C(omObjData *object) { - Work7CB4 *temp_r30; - Vec sp8; - temp_r30 = object->data; - if(object->trans.x > -400.0f - && object->trans.x < 400.0f - && object->trans.z-lbl_2_bss_60.z < 300.0f - && object->trans.y > -300.0f - && object->trans.y < 300.0f) { - if(temp_r30->unk1E == 0) { - if(temp_r30->unk20 != 0) { - temp_r30->unk20--; - sp8.x = object->trans.x; - sp8.y = object->trans.y; - sp8.z = object->trans.z-lbl_2_bss_60.z; - fn_2_10A88(&sp8, 1); - return 1; - } - - } else { - temp_r30->unk1E--; - } - } - return 0; + Work7CB4 *temp_r30; + Vec sp8; + temp_r30 = object->data; + if (object->trans.x > -400.0f && object->trans.x < 400.0f && object->trans.z - lbl_2_bss_60.z < 300.0f && object->trans.y > -300.0f + && object->trans.y < 300.0f) { + if (temp_r30->unk1E == 0) { + if (temp_r30->unk20 != 0) { + temp_r30->unk20--; + sp8.x = object->trans.x; + sp8.y = object->trans.y; + sp8.z = object->trans.z - lbl_2_bss_60.z; + fn_2_10A88(&sp8, 1); + return 1; + } + } + else { + temp_r30->unk1E--; + } + } + return 0; } void fn_2_8968(omObjData *object); void fn_2_8868(omObjData *object) { - Work7CB4 *temp_r31; - temp_r31 = object->data; - if(lbl_2_bss_60.z < -20800.0f) { - Hu3DModelAttrReset(object->model[0], 1); - temp_r31->unk2C = 0; - temp_r31->unk2E = 0; - temp_r31->unk30 = 0; - temp_r31->unk1E = ((frand()%10)+13)*0.43478262f; - temp_r31->unk20 = 2; - fn_2_8450(object); - object->func = fn_2_8968; - } + Work7CB4 *temp_r31; + temp_r31 = object->data; + if (lbl_2_bss_60.z < -20800.0f) { + Hu3DModelAttrReset(object->model[0], 1); + temp_r31->unk2C = 0; + temp_r31->unk2E = 0; + temp_r31->unk30 = 0; + temp_r31->unk1E = ((frand() % 10) + 13) * 0.43478262f; + temp_r31->unk20 = 2; + fn_2_8450(object); + object->func = fn_2_8968; + } } void fn_2_8B58(omObjData *object); void fn_2_8968(omObjData *object) { - Work7CB4 *temp_r29; - temp_r29 = object->data; - temp_r29->unk30 += 25.875; - if(fn_2_873C(object)) { - temp_r29->unk1E = ((frand()%15)+22)*0.43478262f; - } - if(fn_2_8450(object)) { - Hu3DModelAttrSet(object->model[0], 1); - object->func = fn_2_8B58; - } + Work7CB4 *temp_r29; + temp_r29 = object->data; + temp_r29->unk30 += 25.875; + if (fn_2_873C(object)) { + temp_r29->unk1E = ((frand() % 15) + 22) * 0.43478262f; + } + if (fn_2_8450(object)) { + Hu3DModelAttrSet(object->model[0], 1); + object->func = fn_2_8B58; + } } void fn_2_8C58(omObjData *object); void fn_2_8B58(omObjData *object) { - Work7CB4 *temp_r31; - temp_r31 = object->data; - if(lbl_2_bss_60.z < -30500.0f) { - Hu3DModelAttrReset(object->model[0], 1); - temp_r31->unk2C = 1; - temp_r31->unk2E = 0; - temp_r31->unk30 = 0; - temp_r31->unk1E = ((frand()%60)+50)*0.43478262f; - temp_r31->unk20 = 3; - fn_2_8450(object); - object->func = fn_2_8C58; - } + Work7CB4 *temp_r31; + temp_r31 = object->data; + if (lbl_2_bss_60.z < -30500.0f) { + Hu3DModelAttrReset(object->model[0], 1); + temp_r31->unk2C = 1; + temp_r31->unk2E = 0; + temp_r31->unk30 = 0; + temp_r31->unk1E = ((frand() % 60) + 50) * 0.43478262f; + temp_r31->unk20 = 3; + fn_2_8450(object); + object->func = fn_2_8C58; + } } -s32 lbl_2_data_424[] = { - 50, 95 -}; +s32 lbl_2_data_424[] = { 50, 95 }; void fn_2_8C58(omObjData *object) { - Work7CB4 *temp_r29; - temp_r29 = object->data; - temp_r29->unk30 += 25.875; - if(fn_2_873C(object)) { - temp_r29->unk1E = ((frand()%15)+lbl_2_data_424[lbl_2_bss_14++])*0.43478262f; - } - if(fn_2_8450(object)) { - Hu3DModelAttrSet(object->model[0], 1); - object->func = NULL; - } + Work7CB4 *temp_r29; + temp_r29 = object->data; + temp_r29->unk30 += 25.875; + if (fn_2_873C(object)) { + temp_r29->unk1E = ((frand() % 15) + lbl_2_data_424[lbl_2_bss_14++]) * 0.43478262f; + } + if (fn_2_8450(object)) { + Hu3DModelAttrSet(object->model[0], 1); + object->func = NULL; + } } typedef struct work_8E74 { - Vec unk0; - Vec unkC; - Vec unk18; - Vec unk24; - float unk30; - Vec unk34; + Vec unk0; + Vec unkC; + Vec unk18; + Vec unk24; + float unk30; + Vec unk34; } Work8E74; void fn_2_9298(omObjData *object); void fn_2_8E74(omObjData *object) { - Work8E74 *temp_r31; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work8E74), MEMORY_DEFAULT_NUM); - temp_r31 = object->data; - temp_r31->unk24.x = 6; - temp_r31->unk24.z = 90; - temp_r31->unk24.y = 100; - object->model[0] = Hu3DModelCreateFile(0x20000D); - object->motion[0] = Hu3DJointMotionFile(object->model[0], 0x200010); - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DModelAttrSet(object->model[0], 1); - omSetTra(object, -1000, 0, -23000); - omSetRot(object, 0, 90, 0); - temp_r31->unkC.x = 1000.0f-object->trans.x; - temp_r31->unkC.y = temp_r31->unk24.y-object->trans.y; - temp_r31->unkC.z = 0; - temp_r31->unk34.x = 1000; - temp_r31->unk34.y = 30; - temp_r31->unk34.z = 360.0f+((1.0f/255.0f)*frandu8()); - temp_r31->unk30 = VECMagPoint(temp_r31->unkC.x, temp_r31->unkC.y, temp_r31->unkC.z); - VECNormalize(&temp_r31->unkC, &temp_r31->unk0); - Hu3DModelShadowSet(object->model[0]); - object->work[3] = 2; - object->func = fn_2_9298; + Work8E74 *temp_r31; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work8E74), MEMORY_DEFAULT_NUM); + temp_r31 = object->data; + temp_r31->unk24.x = 6; + temp_r31->unk24.z = 90; + temp_r31->unk24.y = 100; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x0D)); + object->motion[0] = Hu3DJointMotionFile(object->model[0], DATA_MAKE_NUM(DATADIR_M401, 0x10)); + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], 1); + omSetTra(object, -1000, 0, -23000); + omSetRot(object, 0, 90, 0); + temp_r31->unkC.x = 1000.0f - object->trans.x; + temp_r31->unkC.y = temp_r31->unk24.y - object->trans.y; + temp_r31->unkC.z = 0; + temp_r31->unk34.x = 1000; + temp_r31->unk34.y = 30; + temp_r31->unk34.z = 360.0f + ((1.0f / 255.0f) * frandu8()); + temp_r31->unk30 = VECMagPoint(temp_r31->unkC.x, temp_r31->unkC.y, temp_r31->unkC.z); + VECNormalize(&temp_r31->unkC, &temp_r31->unk0); + Hu3DModelShadowSet(object->model[0]); + object->work[3] = 2; + object->func = fn_2_9298; } void fn_2_91AC(omObjData *object, Vec *pos) { - Work8E74 *temp_r30; - temp_r30 = object->data; - temp_r30->unk18 = *pos; - temp_r30->unk34.z = (1.0f/255.0f)*(360.0f*frandu8()); - Hu3DModelAttrReset(object->model[0], 1); - omSetTra(object, pos->x, pos->y, pos->z); - object->work[2] = HuAudFXEmiterPlay(1284, &pos); - object->func = fn_2_9298; + Work8E74 *temp_r30; + temp_r30 = object->data; + temp_r30->unk18 = *pos; + temp_r30->unk34.z = (1.0f / 255.0f) * (360.0f * frandu8()); + Hu3DModelAttrReset(object->model[0], 1); + omSetTra(object, pos->x, pos->y, pos->z); + object->work[2] = HuAudFXEmiterPlay(1284, &pos); + object->func = fn_2_9298; } void fn_2_9298(omObjData *object) { - Work8E74 *temp_r31; - float temp_f29; - Vec spC; - temp_r31 = object->data; - object->trans.x = temp_r31->unk18.x+1000.0f*sind(temp_r31->unk34.z); - temp_f29 = (temp_r31->unk34.y/temp_r31->unk34.x)*sqrtf((temp_r31->unk34.x*temp_r31->unk34.x)-(object->trans.x*object->trans.x)); - if(temp_r31->unk34.z >= 90.0f && temp_r31->unk34.z <= 270.0f) { - temp_f29 = -temp_f29; - } - object->trans.z = temp_r31->unk18.z+temp_f29; - temp_r31->unk34.z += 0.6f+(0.6f*fabs(cosd(temp_r31->unk34.z))); - if(temp_r31->unk34.z >= 360.0f) { - temp_r31->unk34.z -= 360.0f; - } - omSetRot(object, 0, 90.0f+temp_r31->unk34.z , 0); - spC.x = object->trans.x; - spC.y = object->trans.y; - spC.z = object->trans.z; - HuAudFXEmiterUpDate(object->work[2], &spC); - if(object->trans.z > lbl_2_bss_6C.z-220.0f) { - Hu3DModelAttrSet(object->model[0], 1); - HuAudFXStop(object->work[2]); - object->func = NULL; - } + Work8E74 *temp_r31; + float temp_f29; + Vec spC; + temp_r31 = object->data; + object->trans.x = temp_r31->unk18.x + 1000.0f * sind(temp_r31->unk34.z); + temp_f29 = (temp_r31->unk34.y / temp_r31->unk34.x) * sqrtf((temp_r31->unk34.x * temp_r31->unk34.x) - (object->trans.x * object->trans.x)); + if (temp_r31->unk34.z >= 90.0f && temp_r31->unk34.z <= 270.0f) { + temp_f29 = -temp_f29; + } + object->trans.z = temp_r31->unk18.z + temp_f29; + temp_r31->unk34.z += 0.6f + (0.6f * fabs(cosd(temp_r31->unk34.z))); + if (temp_r31->unk34.z >= 360.0f) { + temp_r31->unk34.z -= 360.0f; + } + omSetRot(object, 0, 90.0f + temp_r31->unk34.z, 0); + spC.x = object->trans.x; + spC.y = object->trans.y; + spC.z = object->trans.z; + HuAudFXEmiterUpDate(object->work[2], &spC); + if (object->trans.z > lbl_2_bss_6C.z - 220.0f) { + Hu3DModelAttrSet(object->model[0], 1); + HuAudFXStop(object->work[2]); + object->func = NULL; + } } void fn_2_979C(omObjData *object); void fn_2_95E4(omObjData *object) { - object->model[0] = Hu3DModelCreateFile(0x200018); - object->motion[0] = Hu3DJointMotionFile(object->model[0], 0x200019); - object->motion[1] = Hu3DJointMotionFile(object->model[0], 0x20001A); - omSetTra(object, 3000, 0, -37000); - omSetRot(object, 0, 270, 0); - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x1); - Hu3DModelAttrSet(object->model[0], 0x40000001); - object->work[3] = 3; - Hu3DModelShadowSet(object->model[0]); - object->func = fn_2_979C; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x18)); + object->motion[0] = Hu3DJointMotionFile(object->model[0], DATA_MAKE_NUM(DATADIR_M401, 0x19)); + object->motion[1] = Hu3DJointMotionFile(object->model[0], DATA_MAKE_NUM(DATADIR_M401, 0x1A)); + omSetTra(object, 3000, 0, -37000); + omSetRot(object, 0, 270, 0); + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x1); + Hu3DModelAttrSet(object->model[0], 0x40000001); + object->work[3] = 3; + Hu3DModelShadowSet(object->model[0]); + object->func = fn_2_979C; } void fn_2_9734(s32 flag) { - if(flag) { - Hu3DModelAttrReset(lbl_2_bss_FC->model[0], 1); - } else { - Hu3DModelAttrSet(lbl_2_bss_FC->model[0], 1); - } + if (flag) { + Hu3DModelAttrReset(lbl_2_bss_FC->model[0], 1); + } + else { + Hu3DModelAttrSet(lbl_2_bss_FC->model[0], 1); + } } void fn_2_988C(omObjData *object); void fn_2_979C(omObjData *object) { - if(lbl_2_bss_60.z < -19000.0f) { - fn_2_9734(1); - omSetTra(object, -2500, -800, -21000); - omSetRot(object, 0, 125, 0); - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - object->func = fn_2_988C; - } + if (lbl_2_bss_60.z < -19000.0f) { + fn_2_9734(1); + omSetTra(object, -2500, -800, -21000); + omSetRot(object, 0, 125, 0); + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + object->func = fn_2_988C; + } } void fn_2_99A4(omObjData *object); void fn_2_988C(omObjData *object) { - object->trans.x += 2.3f*(26.0*sind(object->rot.y)); - object->trans.z += 2.3f*(26.0*cosd(object->rot.y)); - if(object->trans.x > 6000.0f) { - fn_2_9734(0); - object->func = fn_2_99A4; - } + object->trans.x += 2.3f * (26.0 * sind(object->rot.y)); + object->trans.z += 2.3f * (26.0 * cosd(object->rot.y)); + if (object->trans.x > 6000.0f) { + fn_2_9734(0); + object->func = fn_2_99A4; + } } void fn_2_9B90(omObjData *object); void fn_2_99A4(omObjData *object) { - float temp_f31; - if(lbl_2_bss_60.z <= -36200.0f+((1.0f/255.0f)*(200.0f*frandu8()))) { - temp_f31 = -250.0f+((1.0f/255.0f)*(500.0f*frandu8())); - fn_2_9734(1); - omSetTra(object, 3000, temp_f31, -37000); - omSetRot(object, 0, 270, 0); - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - object->func = fn_2_9B90; - lbl_2_bss_78.x = object->trans.x; - lbl_2_bss_78.y = object->trans.y; - lbl_2_bss_78.z = object->trans.z; - lbl_2_bss_8C = HuAudFXEmiterPlay(1286, &lbl_2_bss_78); - } + float temp_f31; + if (lbl_2_bss_60.z <= -36200.0f + ((1.0f / 255.0f) * (200.0f * frandu8()))) { + temp_f31 = -250.0f + ((1.0f / 255.0f) * (500.0f * frandu8())); + fn_2_9734(1); + omSetTra(object, 3000, temp_f31, -37000); + omSetRot(object, 0, 270, 0); + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + object->func = fn_2_9B90; + lbl_2_bss_78.x = object->trans.x; + lbl_2_bss_78.y = object->trans.y; + lbl_2_bss_78.z = object->trans.z; + lbl_2_bss_8C = HuAudFXEmiterPlay(1286, &lbl_2_bss_78); + } } void fn_2_9B90(omObjData *object) { - object->trans.x += 2.3f*(17.0*sind(object->rot.y)); - object->trans.z += 2.3f*(17.0*cosd(object->rot.y)); - lbl_2_bss_78.x = object->trans.x; - lbl_2_bss_78.y = object->trans.y; - lbl_2_bss_78.z = object->trans.z; - HuAudFXEmiterUpDate(lbl_2_bss_8C, &lbl_2_bss_78); - if(object->trans.x <= -3000.0f) { - fn_2_9734(0); - object->func = NULL; - HuAudFXStop(lbl_2_bss_8C); - } + object->trans.x += 2.3f * (17.0 * sind(object->rot.y)); + object->trans.z += 2.3f * (17.0 * cosd(object->rot.y)); + lbl_2_bss_78.x = object->trans.x; + lbl_2_bss_78.y = object->trans.y; + lbl_2_bss_78.z = object->trans.z; + HuAudFXEmiterUpDate(lbl_2_bss_8C, &lbl_2_bss_78); + if (object->trans.x <= -3000.0f) { + fn_2_9734(0); + object->func = NULL; + HuAudFXStop(lbl_2_bss_8C); + } } typedef struct work_a318 { - Vec unk0; - s16 unkC; + Vec unk0; + s16 unkC; } WorkA318; -s32 lbl_2_data_42C[] = { - 0x20001C, - 0x20001D -}; +s32 lbl_2_data_42C[] = { DATA_MAKE_NUM(DATADIR_M401, 0x1C), DATA_MAKE_NUM(DATADIR_M401, 0x1D) }; void fn_2_9D00(Process *objman) { - omObjData *temp_r31; - s32 temp_r30; - s32 temp_r29; - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r31 = omAddObjEx(objman, 1130, 1, 2, -1, NULL); - lbl_2_bss_E4[temp_r29] = temp_r31; - temp_r31->model[0] = Hu3DModelCreateFile(0x20001B); - for(temp_r30=0; temp_r30<2; temp_r30++) { - temp_r31->motion[temp_r30] = Hu3DJointMotionFile(temp_r31->model[0], lbl_2_data_42C[temp_r30]); - } - Hu3DModelAttrSet(temp_r31->model[0], 1); - temp_r31->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkA318), MEMORY_DEFAULT_NUM); - Hu3DModelShadowSet(temp_r31->model[0]); - temp_r31->work[3] = 1; - } + omObjData *temp_r31; + s32 temp_r30; + s32 temp_r29; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r31 = omAddObjEx(objman, 1130, 1, 2, -1, NULL); + lbl_2_bss_E4[temp_r29] = temp_r31; + temp_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x1B)); + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + temp_r31->motion[temp_r30] = Hu3DJointMotionFile(temp_r31->model[0], lbl_2_data_42C[temp_r30]); + } + Hu3DModelAttrSet(temp_r31->model[0], 1); + temp_r31->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkA318), MEMORY_DEFAULT_NUM); + Hu3DModelShadowSet(temp_r31->model[0]); + temp_r31->work[3] = 1; + } } void fn_2_A318(omObjData *object); - void fn_2_9E28(float arg1, float arg2) { - s32 temp_r31; - WorkA318 *temp_r30; - float temp_f31; - float temp_f30; - float temp_f29; - temp_f30 = (arg2-arg1)/4; - temp_f31 = arg1; - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r30 = lbl_2_bss_E4[temp_r31]->data; - Hu3DModelAttrReset(lbl_2_bss_E4[temp_r31]->model[0], 1); - temp_f29 = -400.0f+((1.0f/255.0f)*(800.0f*frandu8())); - temp_r30->unk0.x = -250.0f+((1.0f/255.0f)*(500.0f*frandu8())); - omSetTra(lbl_2_bss_E4[temp_r31], temp_f29, temp_r30->unk0.x+lbl_2_bss_60.y, temp_f31); - Hu3DMotionSet(lbl_2_bss_E4[temp_r31]->model[0], lbl_2_bss_E4[temp_r31]->motion[0]); - Hu3DModelAttrSet(lbl_2_bss_E4[temp_r31]->model[0], 0x40000001); - temp_f31 += temp_f30; - temp_r30->unkC = (frand()%30)+30; - temp_r30->unk0.z = 0; - lbl_2_bss_E4[temp_r31]->func = fn_2_A318; - } + s32 temp_r31; + WorkA318 *temp_r30; + float temp_f31; + float temp_f30; + float temp_f29; + temp_f30 = (arg2 - arg1) / 4; + temp_f31 = arg1; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r30 = lbl_2_bss_E4[temp_r31]->data; + Hu3DModelAttrReset(lbl_2_bss_E4[temp_r31]->model[0], 1); + temp_f29 = -400.0f + ((1.0f / 255.0f) * (800.0f * frandu8())); + temp_r30->unk0.x = -250.0f + ((1.0f / 255.0f) * (500.0f * frandu8())); + omSetTra(lbl_2_bss_E4[temp_r31], temp_f29, temp_r30->unk0.x + lbl_2_bss_60.y, temp_f31); + Hu3DMotionSet(lbl_2_bss_E4[temp_r31]->model[0], lbl_2_bss_E4[temp_r31]->motion[0]); + Hu3DModelAttrSet(lbl_2_bss_E4[temp_r31]->model[0], 0x40000001); + temp_f31 += temp_f30; + temp_r30->unkC = (frand() % 30) + 30; + temp_r30->unk0.z = 0; + lbl_2_bss_E4[temp_r31]->func = fn_2_A318; + } } omObjData *fn_2_A0B0(omObjData *object) { - omObjData *temp_r31; - s32 temp_r30; - omObjData *temp_r29; - M401WorkPlayer *spC; - - float temp_f27; - float temp_f26; - temp_f26 = 999999; - for(temp_r30=0; temp_r30<4; temp_r30++) { - float temp_f31; - float temp_f30; - float temp_f29; - temp_r31 = lbl_2_bss_118[temp_r30]; - spC = temp_r31->data; - temp_f31 = temp_r31->trans.x - object->trans.x; - temp_f30 = temp_r31->trans.y - object->trans.y; - temp_f29 = 0.4f*(temp_r31->trans.z - object->trans.z); - temp_f27 = VECMagPoint(temp_f31, temp_f30, temp_f29); - if(temp_f27 < temp_f26) { - temp_r29 = lbl_2_bss_118[temp_r30]; - temp_f26 = temp_f27; - } - } - return temp_r29; + omObjData *temp_r31; + s32 temp_r30; + omObjData *temp_r29; + M401WorkPlayer *spC; + + float temp_f27; + float temp_f26; + temp_f26 = 999999; + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + float temp_f31; + float temp_f30; + float temp_f29; + temp_r31 = lbl_2_bss_118[temp_r30]; + spC = temp_r31->data; + temp_f31 = temp_r31->trans.x - object->trans.x; + temp_f30 = temp_r31->trans.y - object->trans.y; + temp_f29 = 0.4f * (temp_r31->trans.z - object->trans.z); + temp_f27 = VECMagPoint(temp_f31, temp_f30, temp_f29); + if (temp_f27 < temp_f26) { + temp_r29 = lbl_2_bss_118[temp_r30]; + temp_f26 = temp_f27; + } + } + return temp_r29; } void fn_2_A318(omObjData *object) { - WorkA318 *temp_r30; - omObjData *temp_r28; - M401WorkPlayer *sp10; - temp_r30 = object->data; - if(0.0f == temp_r30->unk0.z) { - if(temp_r30->unkC == 0) { - temp_r28 = fn_2_A0B0(object); - sp10 = temp_r28->data; - temp_r30->unk0.y = atan2d(temp_r28->trans.y - object->trans.y, temp_r28->trans.x - object->trans.x); - temp_r30->unk0.z = 8.0f+((1.0f/255.0f)*((9.0f*frandu8()))); - Hu3DMotionSet(object->model[0], object->motion[1]); - Hu3DModelAttrReset(object->model[0], 0x40000001); - lbl_2_bss_78.x = object->trans.x; - lbl_2_bss_78.y = object->trans.y; - lbl_2_bss_78.z = object->trans.z; - HuAudFXEmiterPlay(1282, &lbl_2_bss_78); - } else { - temp_r30->unkC--; - temp_r30->unk0.x -= 2.5f; - } - } else { - temp_r30->unk0.x = temp_r30->unk0.x+(temp_r30->unk0.z*sind(temp_r30->unk0.y)); - object->trans.x += temp_r30->unk0.z*cosd(temp_r30->unk0.y); - temp_r30->unk0.z *= 0.94f; - if(temp_r30->unk0.z < 0.1f) { - temp_r30->unk0.z = 0; - temp_r30->unkC = (frand()%30)+25; - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - } - } - if(temp_r30->unk0.x < -300.0f) { - temp_r30->unk0.x = -300.0f; - } - if(temp_r30->unk0.x > 300.0f) { - temp_r30->unk0.x = 300.0f; - } - if(object->trans.x < -400.0f) { - object->trans.x = -400.0f; - } - if(object->trans.x > 400.0f) { - object->trans.x = 400.0f; - } - omSetTra(object, object->trans.x, temp_r30->unk0.x+lbl_2_bss_60.y, object->trans.z); - if(object->trans.z > lbl_2_bss_6C.z-160.0f) { - Hu3DModelAttrSet(object->model[0], 1); - object->func = NULL; - } + WorkA318 *temp_r30; + omObjData *temp_r28; + M401WorkPlayer *sp10; + temp_r30 = object->data; + if (0.0f == temp_r30->unk0.z) { + if (temp_r30->unkC == 0) { + temp_r28 = fn_2_A0B0(object); + sp10 = temp_r28->data; + temp_r30->unk0.y = atan2d(temp_r28->trans.y - object->trans.y, temp_r28->trans.x - object->trans.x); + temp_r30->unk0.z = 8.0f + ((1.0f / 255.0f) * ((9.0f * frandu8()))); + Hu3DMotionSet(object->model[0], object->motion[1]); + Hu3DModelAttrReset(object->model[0], 0x40000001); + lbl_2_bss_78.x = object->trans.x; + lbl_2_bss_78.y = object->trans.y; + lbl_2_bss_78.z = object->trans.z; + HuAudFXEmiterPlay(1282, &lbl_2_bss_78); + } + else { + temp_r30->unkC--; + temp_r30->unk0.x -= 2.5f; + } + } + else { + temp_r30->unk0.x = temp_r30->unk0.x + (temp_r30->unk0.z * sind(temp_r30->unk0.y)); + object->trans.x += temp_r30->unk0.z * cosd(temp_r30->unk0.y); + temp_r30->unk0.z *= 0.94f; + if (temp_r30->unk0.z < 0.1f) { + temp_r30->unk0.z = 0; + temp_r30->unkC = (frand() % 30) + 25; + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + } + } + if (temp_r30->unk0.x < -300.0f) { + temp_r30->unk0.x = -300.0f; + } + if (temp_r30->unk0.x > 300.0f) { + temp_r30->unk0.x = 300.0f; + } + if (object->trans.x < -400.0f) { + object->trans.x = -400.0f; + } + if (object->trans.x > 400.0f) { + object->trans.x = 400.0f; + } + omSetTra(object, object->trans.x, temp_r30->unk0.x + lbl_2_bss_60.y, object->trans.z); + if (object->trans.z > lbl_2_bss_6C.z - 160.0f) { + Hu3DModelAttrSet(object->model[0], 1); + object->func = NULL; + } } void fn_2_A8A4(omObjData *object, float x, float y, float z) { - omSetTra(object, lbl_2_bss_60.x+x, lbl_2_bss_60.y+y, lbl_2_bss_60.z+z); + omSetTra(object, lbl_2_bss_60.x + x, lbl_2_bss_60.y + y, lbl_2_bss_60.z + z); } -s32 lbl_2_data_434[] = { - 0x12D, - 0x16D, - 0x1AD, - 0x1ED, - 0x22D, - 0x26D, - 0x2AD, - 0x2ED -}; +s32 lbl_2_data_434[] = { 0x12D, 0x16D, 0x1AD, 0x1ED, 0x22D, 0x26D, 0x2AD, 0x2ED }; void fn_2_A914(s32 player) { - HuAudPlayerVoicePlay(player, 301); + HuAudPlayerVoicePlay(player, 301); } void fn_2_A940(omObjData *object) { - Vec spC; - omObjData *sp8; - M401WorkPlayer *temp_r28; - s32 temp_r23; - temp_r28 = object->data; - if(temp_r28->unk78 != 0) { - return; - } - spC.x = object->trans.x; - spC.y = object->trans.y; - spC.z = object->trans.z; - if((temp_r23 = fn_2_AC2C(&spC, 90, &sp8)) != 0) { - if(temp_r23 == 1) { - omVibrate(temp_r28->unk4, 12, 4, 2); - } else if(temp_r23 == 3) { - omVibrate(temp_r28->unk4, 12, 4, 2); - } else { - omVibrate(temp_r28->unk4, 12, 12, 0); - } - fn_2_7C3C(object); - fn_2_1858(temp_r28->unk4, sp8->work[3]); - } - + Vec spC; + omObjData *sp8; + M401WorkPlayer *temp_r28; + s32 temp_r23; + temp_r28 = object->data; + if (temp_r28->unk78 != 0) { + return; + } + spC.x = object->trans.x; + spC.y = object->trans.y; + spC.z = object->trans.z; + if ((temp_r23 = fn_2_AC2C(&spC, 90, &sp8)) != 0) { + if (temp_r23 == 1) { + omVibrate(temp_r28->unk4, 12, 4, 2); + } + else if (temp_r23 == 3) { + omVibrate(temp_r28->unk4, 12, 4, 2); + } + else { + omVibrate(temp_r28->unk4, 12, 12, 0); + } + fn_2_7C3C(object); + fn_2_1858(temp_r28->unk4, sp8->work[3]); + } } s32 fn_2_AC2C(Vec *pos, float dist, omObjData **newobj) { - omObjData *temp_r30; - s32 temp_r29; - float temp_f20; - float temp_f19; - float temp_f18; - WorkA318 *sp70; - float sp6C; - - *newobj = NULL; - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r30 = lbl_2_bss_E4[temp_r29]; - if(temp_r30->func != NULL) { - sp70 = temp_r30->data; - temp_f20 = VECMagPoint(pos->x-temp_r30->trans.x, pos->y-temp_r30->trans.y, pos->z-temp_r30->trans.z); - if(temp_f20 < sqrtf(1024.0f+(dist*dist))) { - *newobj = temp_r30; - return 1; - } - } - } - temp_r30 = lbl_2_bss_FC; - temp_f20 = VECDistanceZY(pos, &temp_r30->trans); - if(temp_f20 < sqrtf(6400.0f+(dist*dist)) - && temp_r30->trans.x < pos->x-(dist/2.0f) - && 1500.0f+temp_r30->trans.x > pos->x+(dist/2.0f)) { - *newobj = temp_r30; - return 2; - } - for(temp_r29=0; temp_r29<2; temp_r29++) { - if(lbl_2_bss_100[temp_r29]->func != NULL) { - temp_f19 = lbl_2_bss_100[temp_r29]->trans.x+(70.0*sind(lbl_2_bss_100[temp_r29]->rot.y)); - temp_f18 = lbl_2_bss_100[temp_r29]->trans.z+(70.0*cosd(lbl_2_bss_100[temp_r29]->rot.y)); - sp6C = lbl_2_bss_100[temp_r29]->trans.y-10.0f; - temp_f20 = VECMagPoint(pos->x-temp_f19, pos->y-sp6C, pos->z-temp_f18); - if(temp_f20 < sqrtf(4900.0f+(dist*dist))) { - *newobj = lbl_2_bss_100[temp_r29]; - return 3; - } - temp_f19 = lbl_2_bss_100[temp_r29]->trans.x; - temp_f18 = lbl_2_bss_100[temp_r29]->trans.z; - sp6C = lbl_2_bss_100[temp_r29]->trans.y-10.0f; - temp_f20 = VECMagPoint(pos->x-temp_f19, pos->y-sp6C, pos->z-temp_f18); - if(temp_f20 < sqrtf(4900.0f+(dist*dist))) { - *newobj = lbl_2_bss_100[temp_r29]; - return 3; - } - temp_f19 = lbl_2_bss_100[temp_r29]->trans.x+(70.0*sind(lbl_2_bss_100[temp_r29]->rot.y+180.0f)); - temp_f18 = lbl_2_bss_100[temp_r29]->trans.z+(70.0*cosd(lbl_2_bss_100[temp_r29]->rot.y+180.0f)); - sp6C = lbl_2_bss_100[temp_r29]->trans.y-10.0f; - temp_f20 = VECMagPoint(pos->x-temp_f19, pos->y-sp6C, pos->z-temp_f18); - if(temp_f20 < sqrtf(4410.0f+(dist*dist))) { - *newobj = lbl_2_bss_100[temp_r29]; - return 3; - } - } - } - return 0; + omObjData *temp_r30; + s32 temp_r29; + float temp_f20; + float temp_f19; + float temp_f18; + WorkA318 *sp70; + float sp6C; + + *newobj = NULL; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r30 = lbl_2_bss_E4[temp_r29]; + if (temp_r30->func != NULL) { + sp70 = temp_r30->data; + temp_f20 = VECMagPoint(pos->x - temp_r30->trans.x, pos->y - temp_r30->trans.y, pos->z - temp_r30->trans.z); + if (temp_f20 < sqrtf(1024.0f + (dist * dist))) { + *newobj = temp_r30; + return 1; + } + } + } + temp_r30 = lbl_2_bss_FC; + temp_f20 = VECDistanceZY(pos, &temp_r30->trans); + if (temp_f20 < sqrtf(6400.0f + (dist * dist)) && temp_r30->trans.x < pos->x - (dist / 2.0f) + && 1500.0f + temp_r30->trans.x > pos->x + (dist / 2.0f)) { + *newobj = temp_r30; + return 2; + } + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + if (lbl_2_bss_100[temp_r29]->func != NULL) { + temp_f19 = lbl_2_bss_100[temp_r29]->trans.x + (70.0 * sind(lbl_2_bss_100[temp_r29]->rot.y)); + temp_f18 = lbl_2_bss_100[temp_r29]->trans.z + (70.0 * cosd(lbl_2_bss_100[temp_r29]->rot.y)); + sp6C = lbl_2_bss_100[temp_r29]->trans.y - 10.0f; + temp_f20 = VECMagPoint(pos->x - temp_f19, pos->y - sp6C, pos->z - temp_f18); + if (temp_f20 < sqrtf(4900.0f + (dist * dist))) { + *newobj = lbl_2_bss_100[temp_r29]; + return 3; + } + temp_f19 = lbl_2_bss_100[temp_r29]->trans.x; + temp_f18 = lbl_2_bss_100[temp_r29]->trans.z; + sp6C = lbl_2_bss_100[temp_r29]->trans.y - 10.0f; + temp_f20 = VECMagPoint(pos->x - temp_f19, pos->y - sp6C, pos->z - temp_f18); + if (temp_f20 < sqrtf(4900.0f + (dist * dist))) { + *newobj = lbl_2_bss_100[temp_r29]; + return 3; + } + temp_f19 = lbl_2_bss_100[temp_r29]->trans.x + (70.0 * sind(lbl_2_bss_100[temp_r29]->rot.y + 180.0f)); + temp_f18 = lbl_2_bss_100[temp_r29]->trans.z + (70.0 * cosd(lbl_2_bss_100[temp_r29]->rot.y + 180.0f)); + sp6C = lbl_2_bss_100[temp_r29]->trans.y - 10.0f; + temp_f20 = VECMagPoint(pos->x - temp_f19, pos->y - sp6C, pos->z - temp_f18); + if (temp_f20 < sqrtf(4410.0f + (dist * dist))) { + *newobj = lbl_2_bss_100[temp_r29]; + return 3; + } + } + } + return 0; } void fn_2_D8CC(omObjData *object); void fn_2_BD90(omObjData *object) { - s32 temp_r27; - M401WorkPlayer *temp_r26; - switch(object->work[0]) { - case 0: - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);; - object->work[0] = 1; - break; - - case 1: - if(!WipeStatGet()) { - object->work[0] = 2; - object->work[1] = 180; - } - break; - - case 2: - if(object->work[1] == 0) { - lbl_2_bss_C0 = MGSeqStartCreate(); - object->work[0] = 3; - lbl_2_bss_A4 = HuAudSeqPlay(68); - } else { - object->work[1]--; - } - break; - - case 3: - if(!MGSeqStatGet(lbl_2_bss_C0)) { - fn_2_AEC(1); - lbl_2_bss_120 = 1; - fn_2_1A38(lbl_2_bss_10C); - - lbl_2_bss_10C->func = fn_2_34B8; - for(temp_r27=0; temp_r27<4; temp_r27++) { - temp_r26 = lbl_2_bss_118[temp_r27]->data; - temp_r26->unk58.z = 0; - temp_r26->unkC.z = 800; - lbl_2_bss_118[temp_r27]->func = fn_2_5CC0; - object->trans.x = object->trans.y = object->trans.z = 0; - } - lbl_2_bss_108->func = fn_2_8868; - omDelObjEx(HuPrcCurrentGet(), object); - lbl_2_bss_114 = NULL; - lbl_2_bss_4->func = fn_2_D8CC; - } - - break; - } + s32 temp_r27; + M401WorkPlayer *temp_r26; + switch (object->work[0]) { + case 0: + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + ; + object->work[0] = 1; + break; + + case 1: + if (!WipeStatGet()) { + object->work[0] = 2; + object->work[1] = 180; + } + break; + + case 2: + if (object->work[1] == 0) { + lbl_2_bss_C0 = MGSeqStartCreate(); + object->work[0] = 3; + lbl_2_bss_A4 = HuAudSeqPlay(68); + } + else { + object->work[1]--; + } + break; + + case 3: + if (!MGSeqStatGet(lbl_2_bss_C0)) { + fn_2_AEC(1); + lbl_2_bss_120 = 1; + fn_2_1A38(lbl_2_bss_10C); + + lbl_2_bss_10C->func = fn_2_34B8; + for (temp_r27 = 0; temp_r27 < 4; temp_r27++) { + temp_r26 = lbl_2_bss_118[temp_r27]->data; + temp_r26->unk58.z = 0; + temp_r26->unkC.z = 800; + lbl_2_bss_118[temp_r27]->func = fn_2_5CC0; + object->trans.x = object->trans.y = object->trans.z = 0; + } + lbl_2_bss_108->func = fn_2_8868; + omDelObjEx(HuPrcCurrentGet(), object); + lbl_2_bss_114 = NULL; + lbl_2_bss_4->func = fn_2_D8CC; + } + + break; + } } void fn_2_C130(omObjData *object) { - M401WorkPlayer *temp_r31; - s32 temp_r30; - LightData *temp_r28; - Vec sp14; - Vec sp8; - switch(object->work[0]) { - case 0: - if(!MGSeqStatGet(lbl_2_bss_C0)) { - object->work[0] = 1; - HuAudFXStop(lbl_2_bss_11C); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - WipeColorSet(255, 255, 255); - } - break; - - case 1: - if(WipeStatGet()) { - return; - } - Hu3DFogClear(); - temp_r28 = &Hu3DGlobalLight[0]; - temp_r28->color.r = 255; - temp_r28->color.g = 255; - temp_r28->color.b = 255; - sp14.x = 0; - sp14.y = 2500; - sp14.z = 1000; - sp8.x = 0; - sp8.y = 1030; - sp8.z = 0; - Hu3DGLightPosAimSetV(lbl_2_bss_A8, &sp14, &sp8); - lbl_2_data_30.x = 0; - lbl_2_data_30.y = 2500; - lbl_2_data_30.z = 1000; - lbl_2_data_48.x = 0; - lbl_2_data_48.y = 1030; - lbl_2_data_48.z = 0; - Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); - HuAudAUXVolSet(-1, -1); - fn_2_2ED0(lbl_2_bss_10C); - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r31 = lbl_2_bss_118[temp_r30]->data; - temp_r31->unk50->work[0] = 1; - temp_r31->unk6C = 0; - CharModelMotionSet(((M401WorkPlayer *)(lbl_2_bss_118[temp_r30]->data))->unk86, lbl_2_bss_118[temp_r30]->motion[4]); - Hu3DModelAttrReset(lbl_2_bss_118[temp_r30]->model[0], 0x40000001); - lbl_2_bss_118[temp_r30]->func = fn_2_48A0; - Hu3DModelAmbSet(lbl_2_bss_118[temp_r30]->model[0], 0.7f, 0.7f, 0.7f); - omSetTra(lbl_2_bss_118[temp_r30], -225.0f+(temp_r30*150), 740, 400); - omSetRot(lbl_2_bss_118[temp_r30], 0, 0, 0); - if(temp_r31->unk68) { - if(lbl_2_bss_BA == 1) { - temp_r31->unk0 = 10; - temp_r31->unk58.x = 13; - } else { - temp_r31->unk58.x = 10; - temp_r31->unk0 = 6; - } - OSReport("GetCoin:%d\n", temp_r30); - GWPlayerCoinWinSet(temp_r30, 10); - } else { - temp_r31->unk58.x = 10; - temp_r31->unk0 = 6; - } - } - fn_2_26E0(lbl_2_bss_10C); - object->work[0] = 2; - lbl_2_bss_F4->work[0] = 1; - fn_2_141B0(); - lbl_2_bss_10C->func = fn_2_3838; - lbl_2_bss_11C = HuAudFXPlay(1280); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - omDelObjEx(HuPrcCurrentGet(), lbl_2_bss_C8); - break; - - case 2: - WipeStatGet() == 0; - break; - } + M401WorkPlayer *temp_r31; + s32 temp_r30; + LightData *temp_r28; + Vec sp14; + Vec sp8; + switch (object->work[0]) { + case 0: + if (!MGSeqStatGet(lbl_2_bss_C0)) { + object->work[0] = 1; + HuAudFXStop(lbl_2_bss_11C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + WipeColorSet(255, 255, 255); + } + break; + + case 1: + if (WipeStatGet()) { + return; + } + Hu3DFogClear(); + temp_r28 = &Hu3DGlobalLight[0]; + temp_r28->color.r = 255; + temp_r28->color.g = 255; + temp_r28->color.b = 255; + sp14.x = 0; + sp14.y = 2500; + sp14.z = 1000; + sp8.x = 0; + sp8.y = 1030; + sp8.z = 0; + Hu3DGLightPosAimSetV(lbl_2_bss_A8, &sp14, &sp8); + lbl_2_data_30.x = 0; + lbl_2_data_30.y = 2500; + lbl_2_data_30.z = 1000; + lbl_2_data_48.x = 0; + lbl_2_data_48.y = 1030; + lbl_2_data_48.z = 0; + Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); + HuAudAUXVolSet(-1, -1); + fn_2_2ED0(lbl_2_bss_10C); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r31 = lbl_2_bss_118[temp_r30]->data; + temp_r31->unk50->work[0] = 1; + temp_r31->unk6C = 0; + CharModelMotionSet(((M401WorkPlayer *)(lbl_2_bss_118[temp_r30]->data))->unk86, lbl_2_bss_118[temp_r30]->motion[4]); + Hu3DModelAttrReset(lbl_2_bss_118[temp_r30]->model[0], 0x40000001); + lbl_2_bss_118[temp_r30]->func = fn_2_48A0; + Hu3DModelAmbSet(lbl_2_bss_118[temp_r30]->model[0], 0.7f, 0.7f, 0.7f); + omSetTra(lbl_2_bss_118[temp_r30], -225.0f + (temp_r30 * 150), 740, 400); + omSetRot(lbl_2_bss_118[temp_r30], 0, 0, 0); + if (temp_r31->unk68) { + if (lbl_2_bss_BA == 1) { + temp_r31->unk0 = 10; + temp_r31->unk58.x = 13; + } + else { + temp_r31->unk58.x = 10; + temp_r31->unk0 = 6; + } + OSReport("GetCoin:%d\n", temp_r30); + GWPlayerCoinWinSet(temp_r30, 10); + } + else { + temp_r31->unk58.x = 10; + temp_r31->unk0 = 6; + } + } + fn_2_26E0(lbl_2_bss_10C); + object->work[0] = 2; + lbl_2_bss_F4->work[0] = 1; + fn_2_141B0(); + lbl_2_bss_10C->func = fn_2_3838; + lbl_2_bss_11C = HuAudFXPlay(1280); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + omDelObjEx(HuPrcCurrentGet(), lbl_2_bss_C8); + break; + + case 2: + WipeStatGet() == 0; + break; + } } typedef struct work_c840 { - Vec unk0[9]; - float unk6C[9]; + Vec unk0[9]; + float unk6C[9]; } WorkC840; void fn_2_C840(s16 arg0); @@ -2835,665 +2856,676 @@ void fn_2_CAB0(omObjData *object); void fn_2_C6DC(omObjData *object) { - s32 temp_r30; - float temp_f31; - WorkC840 *sp8; - sp8 = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkC840), MEMORY_DEFAULT_NUM); - for(temp_r30=0; temp_r30<9; temp_r30++) { - if(temp_r30 == 0) { - object->model[temp_r30] = Hu3DModelCreateFile(0x200002); - } else { - object->model[temp_r30] = Hu3DModelCreateFile(0x200002); - } - Hu3DModelLayerSet(object->model[temp_r30], 1); - fn_2_C840(temp_r30); - temp_f31 = (1.0f/255.0f)*(Hu3DMotionMaxTimeGet(object->model[temp_r30])*frandu8()); - Hu3DMotionTimeSet(object->model[temp_r30], temp_f31); - } - omSetStatBit(object, 0x100); - object->func = fn_2_CAB0; + s32 temp_r30; + float temp_f31; + WorkC840 *sp8; + sp8 = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkC840), MEMORY_DEFAULT_NUM); + for (temp_r30 = 0; temp_r30 < 9; temp_r30++) { + if (temp_r30 == 0) { + object->model[temp_r30] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x02)); + } + else { + object->model[temp_r30] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x02)); + } + Hu3DModelLayerSet(object->model[temp_r30], 1); + fn_2_C840(temp_r30); + temp_f31 = (1.0f / 255.0f) * (Hu3DMotionMaxTimeGet(object->model[temp_r30]) * frandu8()); + Hu3DMotionTimeSet(object->model[temp_r30], temp_f31); + } + omSetStatBit(object, 0x100); + object->func = fn_2_CAB0; } void fn_2_C840(s16 arg0) { - WorkC840 *temp_r31; - float temp_f31, temp_f30; - temp_r31 = lbl_2_bss_F8->data; - temp_f30 = (1.0f/255.0f)*(360.0f*frandu8()); - temp_f31 = (1.0f/255.0f)*(200.0f*frandu8()); - temp_r31->unk0[arg0].x = temp_f31*cosd(temp_f30); - temp_r31->unk0[arg0].z = temp_f31*sind(temp_f30); - temp_r31->unk0[arg0].y = 1000; - temp_r31->unk6C[arg0] = 1.0f; - temp_f31 *= 0.25f; - Hu3DModelRotSet(lbl_2_bss_F8->model[arg0], temp_f31*sind(temp_f30), 0, temp_f31*cosd(temp_f30)); - Hu3DMotionTimeSet(lbl_2_bss_F8->model[arg0], 0); + WorkC840 *temp_r31; + float temp_f31, temp_f30; + temp_r31 = lbl_2_bss_F8->data; + temp_f30 = (1.0f / 255.0f) * (360.0f * frandu8()); + temp_f31 = (1.0f / 255.0f) * (200.0f * frandu8()); + temp_r31->unk0[arg0].x = temp_f31 * cosd(temp_f30); + temp_r31->unk0[arg0].z = temp_f31 * sind(temp_f30); + temp_r31->unk0[arg0].y = 1000; + temp_r31->unk6C[arg0] = 1.0f; + temp_f31 *= 0.25f; + Hu3DModelRotSet(lbl_2_bss_F8->model[arg0], temp_f31 * sind(temp_f30), 0, temp_f31 * cosd(temp_f30)); + Hu3DMotionTimeSet(lbl_2_bss_F8->model[arg0], 0); } void fn_2_CAB0(omObjData *object) { - s32 temp_r31; - WorkC840 *temp_r29; - u8 temp_r28; - float temp_f29; - temp_r29 = object->data; - for(temp_r31=0; temp_r31<9; temp_r31++) { - Hu3DModelPosSet(object->model[temp_r31], temp_r29->unk0[temp_r31].x, temp_r29->unk0[temp_r31].y, lbl_2_bss_38.z+temp_r29->unk0[temp_r31].z-500); - Hu3DModelTPLvlSet(object->model[temp_r31], temp_r29->unk6C[temp_r31]); - temp_f29 = Hu3DMotionTimeGet(object->model[temp_r31])/Hu3DMotionMaxTimeGet(object->model[temp_r31]); - temp_r29->unk6C[temp_r31] = 1.0f-temp_f29; - if(Hu3DMotionTimeGet(object->model[temp_r31]) >= Hu3DMotionMaxTimeGet(object->model[temp_r31])) { - fn_2_C840(temp_r31); - } - } - if(lbl_2_bss_60.z <= -26800.0f && lbl_2_bss_60.z >= -27400.0f) { - temp_r28 = 255.0f-(223.0f*(-(lbl_2_bss_60.z+26800.0f) / 600.0f)); - if(temp_r28 < 32) { - temp_r28 = 32; - } - } else if(lbl_2_bss_60.z <= -27700.0f && lbl_2_bss_60.z >= -28300.0f) { - temp_r28 = 32.0f+(223.0f*(-(lbl_2_bss_60.z+27700.0f) / 600.0f)); - } else if(lbl_2_bss_60.z < -27400.0f && lbl_2_bss_60.z > -28300.0f) { - temp_r28 = 32; - } else { - temp_r28 = 255; - } - Hu3DGLightColorSet(lbl_2_bss_A8, temp_r28, temp_r28, temp_r28, 255); - if(lbl_2_bss_60.z < -26600.0f && lbl_2_bss_60.z > -27500.0f) { - for(temp_r31=0; temp_r31<9; temp_r31++) { - Hu3DModelAttrSet(object->model[temp_r31], 1); - } - } else { - for(temp_r31=0; temp_r31<9; temp_r31++) { - Hu3DModelAttrReset(object->model[temp_r31], 1); - } - } + s32 temp_r31; + WorkC840 *temp_r29; + u8 temp_r28; + float temp_f29; + temp_r29 = object->data; + for (temp_r31 = 0; temp_r31 < 9; temp_r31++) { + Hu3DModelPosSet( + object->model[temp_r31], temp_r29->unk0[temp_r31].x, temp_r29->unk0[temp_r31].y, lbl_2_bss_38.z + temp_r29->unk0[temp_r31].z - 500); + Hu3DModelTPLvlSet(object->model[temp_r31], temp_r29->unk6C[temp_r31]); + temp_f29 = Hu3DMotionTimeGet(object->model[temp_r31]) / Hu3DMotionMaxTimeGet(object->model[temp_r31]); + temp_r29->unk6C[temp_r31] = 1.0f - temp_f29; + if (Hu3DMotionTimeGet(object->model[temp_r31]) >= Hu3DMotionMaxTimeGet(object->model[temp_r31])) { + fn_2_C840(temp_r31); + } + } + if (lbl_2_bss_60.z <= -26800.0f && lbl_2_bss_60.z >= -27400.0f) { + temp_r28 = 255.0f - (223.0f * (-(lbl_2_bss_60.z + 26800.0f) / 600.0f)); + if (temp_r28 < 32) { + temp_r28 = 32; + } + } + else if (lbl_2_bss_60.z <= -27700.0f && lbl_2_bss_60.z >= -28300.0f) { + temp_r28 = 32.0f + (223.0f * (-(lbl_2_bss_60.z + 27700.0f) / 600.0f)); + } + else if (lbl_2_bss_60.z < -27400.0f && lbl_2_bss_60.z > -28300.0f) { + temp_r28 = 32; + } + else { + temp_r28 = 255; + } + Hu3DGLightColorSet(lbl_2_bss_A8, temp_r28, temp_r28, temp_r28, 255); + if (lbl_2_bss_60.z < -26600.0f && lbl_2_bss_60.z > -27500.0f) { + for (temp_r31 = 0; temp_r31 < 9; temp_r31++) { + Hu3DModelAttrSet(object->model[temp_r31], 1); + } + } + else { + for (temp_r31 = 0; temp_r31 < 9; temp_r31++) { + Hu3DModelAttrReset(object->model[temp_r31], 1); + } + } } void fn_2_D088(omObjData *object) { - CameraData *temp_r31 = &Hu3DCamera[0]; - Vec sp8; - - lbl_2_bss_6C = temp_r31->pos; - lbl_2_bss_60 = temp_r31->target; - VECSubtract(&lbl_2_bss_6C, &lbl_2_bss_54, &sp8); - lbl_2_bss_50 = VECMag(&sp8); - lbl_2_bss_54 = lbl_2_bss_6C; - - fn_2_A98(); + CameraData *temp_r31 = &Hu3DCamera[0]; + Vec sp8; + + lbl_2_bss_6C = temp_r31->pos; + lbl_2_bss_60 = temp_r31->target; + VECSubtract(&lbl_2_bss_6C, &lbl_2_bss_54, &sp8); + lbl_2_bss_50 = VECMag(&sp8); + lbl_2_bss_54 = lbl_2_bss_6C; + + fn_2_A98(); } void fn_2_D180(float arg0) { - Vec sp14; - Vec sp8; - lbl_2_bss_44.x = 0; - lbl_2_bss_44.y = 0; - lbl_2_bss_44.z = arg0; - lbl_2_bss_38.x = 0; - lbl_2_bss_38.y = 0; - lbl_2_bss_38.z = -1500+arg0; - lbl_2_bss_2C.x = 0; - lbl_2_bss_2C.y = 1; - lbl_2_bss_2C.z = 0; - Hu3DCameraPosSetV(1, &lbl_2_bss_44, &lbl_2_bss_2C, &lbl_2_bss_38); - Hu3DModelPosSet(lbl_2_bss_10C->model[1], 0, 0, -1500+arg0); - lbl_2_data_30.y = 3500+lbl_2_bss_38.y; - lbl_2_data_30.z = 1500+lbl_2_bss_38.z; - lbl_2_data_48.y = lbl_2_bss_38.y-200; - lbl_2_data_48.z = 500+lbl_2_bss_38.z; - Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); - sp14 = lbl_2_bss_44; - VECSubtract(&lbl_2_bss_38, &sp14, &sp8); - VECNormalize(&sp8, &sp8); - HuAudFXListnerUpdate(&sp14, &sp8); + Vec sp14; + Vec sp8; + lbl_2_bss_44.x = 0; + lbl_2_bss_44.y = 0; + lbl_2_bss_44.z = arg0; + lbl_2_bss_38.x = 0; + lbl_2_bss_38.y = 0; + lbl_2_bss_38.z = -1500 + arg0; + lbl_2_bss_2C.x = 0; + lbl_2_bss_2C.y = 1; + lbl_2_bss_2C.z = 0; + Hu3DCameraPosSetV(1, &lbl_2_bss_44, &lbl_2_bss_2C, &lbl_2_bss_38); + Hu3DModelPosSet(lbl_2_bss_10C->model[1], 0, 0, -1500 + arg0); + lbl_2_data_30.y = 3500 + lbl_2_bss_38.y; + lbl_2_data_30.z = 1500 + lbl_2_bss_38.z; + lbl_2_data_48.y = lbl_2_bss_38.y - 200; + lbl_2_data_48.z = 500 + lbl_2_bss_38.z; + Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); + sp14 = lbl_2_bss_44; + VECSubtract(&lbl_2_bss_38, &sp14, &sp8); + VECNormalize(&sp8, &sp8); + HuAudFXListnerUpdate(&sp14, &sp8); } void fn_2_D3E8(omObjData *object) { - Vec sp14; - Vec sp8; - float temp_f31 = 1.5f*object->scale.x; - lbl_2_bss_44.x = object->trans.x+(-object->trans.x*sind(temp_f31)); - lbl_2_bss_44.y = object->trans.y+(-object->trans.y*sind(temp_f31)); - lbl_2_bss_44.z = object->trans.z+(-object->trans.z*sind(temp_f31)); - lbl_2_bss_38.x = object->rot.x+(-object->rot.x*sind(temp_f31)); - lbl_2_bss_38.y = object->rot.y+(-object->rot.y*sind(temp_f31)); - lbl_2_bss_38.z = object->rot.z+((-1500.0f-object->rot.z)*sind(temp_f31)); - lbl_2_bss_2C.x = 0; - lbl_2_bss_2C.y = 1; - lbl_2_bss_2C.z = 0; - object->scale.x += 1.0f; - if(object->scale.x > 60.0f) { - lbl_2_bss_44.x = 0; - lbl_2_bss_44.y = 0; - lbl_2_bss_44.z = 0; - lbl_2_bss_38.x = 0; - lbl_2_bss_38.y = 0; - lbl_2_bss_38.z = -1500; - } - Hu3DCameraPosSetV(1, &lbl_2_bss_44, &lbl_2_bss_2C, &lbl_2_bss_38); - lbl_2_bss_54 = lbl_2_bss_44; - lbl_2_data_30.y = 3500+lbl_2_bss_38.y; - lbl_2_data_30.z = 1500+lbl_2_bss_38.z; - lbl_2_data_48.y = lbl_2_bss_38.y-200; - lbl_2_data_48.z = 500+lbl_2_bss_38.z; - Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); - sp14 = lbl_2_bss_44; - VECSubtract(&lbl_2_bss_38, &lbl_2_bss_44, &sp8); - VECNormalize(&sp8, &sp8); - HuAudFXListnerUpdate(&sp14, &sp8); - if(object->scale.x > 60.0f) { - lbl_2_bss_128 = 100; - Hu3DCameraPerspectiveSet(1, lbl_2_bss_12C, lbl_2_bss_128, lbl_2_bss_124, 1.2f); - object->scale.x = 0; - object->func = NULL; - } + Vec sp14; + Vec sp8; + float temp_f31 = 1.5f * object->scale.x; + lbl_2_bss_44.x = object->trans.x + (-object->trans.x * sind(temp_f31)); + lbl_2_bss_44.y = object->trans.y + (-object->trans.y * sind(temp_f31)); + lbl_2_bss_44.z = object->trans.z + (-object->trans.z * sind(temp_f31)); + lbl_2_bss_38.x = object->rot.x + (-object->rot.x * sind(temp_f31)); + lbl_2_bss_38.y = object->rot.y + (-object->rot.y * sind(temp_f31)); + lbl_2_bss_38.z = object->rot.z + ((-1500.0f - object->rot.z) * sind(temp_f31)); + lbl_2_bss_2C.x = 0; + lbl_2_bss_2C.y = 1; + lbl_2_bss_2C.z = 0; + object->scale.x += 1.0f; + if (object->scale.x > 60.0f) { + lbl_2_bss_44.x = 0; + lbl_2_bss_44.y = 0; + lbl_2_bss_44.z = 0; + lbl_2_bss_38.x = 0; + lbl_2_bss_38.y = 0; + lbl_2_bss_38.z = -1500; + } + Hu3DCameraPosSetV(1, &lbl_2_bss_44, &lbl_2_bss_2C, &lbl_2_bss_38); + lbl_2_bss_54 = lbl_2_bss_44; + lbl_2_data_30.y = 3500 + lbl_2_bss_38.y; + lbl_2_data_30.z = 1500 + lbl_2_bss_38.z; + lbl_2_data_48.y = lbl_2_bss_38.y - 200; + lbl_2_data_48.z = 500 + lbl_2_bss_38.z; + Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); + sp14 = lbl_2_bss_44; + VECSubtract(&lbl_2_bss_38, &lbl_2_bss_44, &sp8); + VECNormalize(&sp8, &sp8); + HuAudFXListnerUpdate(&sp14, &sp8); + if (object->scale.x > 60.0f) { + lbl_2_bss_128 = 100; + Hu3DCameraPerspectiveSet(1, lbl_2_bss_12C, lbl_2_bss_128, lbl_2_bss_124, 1.2f); + object->scale.x = 0; + object->func = NULL; + } } void fn_2_D8CC(omObjData *object) { - if(lbl_2_bss_BE != 0) { - return; - } - lbl_2_data_0 *= 1.05f; - if(lbl_2_data_0 < -14.375f) { - lbl_2_data_0 = -14.375f; - } - object->scale.x += lbl_2_data_0; - fn_2_D180(object->scale.x); + if (lbl_2_bss_BE != 0) { + return; + } + lbl_2_data_0 *= 1.05f; + if (lbl_2_data_0 < -14.375f) { + lbl_2_data_0 = -14.375f; + } + object->scale.x += lbl_2_data_0; + fn_2_D180(object->scale.x); } -s32 lbl_2_data_460[] = { - 0x200004, - 0x200005, - 0x200006 -}; +s32 lbl_2_data_460[] = { DATA_MAKE_NUM(DATADIR_M401, 0x04), DATA_MAKE_NUM(DATADIR_M401, 0x05), DATA_MAKE_NUM(DATADIR_M401, 0x06) }; typedef struct work_e6e8 { - s16 unk0; - Vec unk4; - float unk10; - float unk14; - float unk18; - float unk1C; - float unk20; - float unk24; - float unk28; - float unk2C; - s8 *unk30; - Vec *unk34; - Vec *unk38; - Vec *unk3C; - Vec *unk40; - Vec *unk44; - Vec *unk48; - Vec *unk4C; - s16 *unk50; - s16 *unk54; - float *unk58; - float *unk5C; - float *unk60; - float *unk64; - float *unk68; + s16 unk0; + Vec unk4; + float unk10; + float unk14; + float unk18; + float unk1C; + float unk20; + float unk24; + float unk28; + float unk2C; + s8 *unk30; + Vec *unk34; + Vec *unk38; + Vec *unk3C; + Vec *unk40; + Vec *unk44; + Vec *unk48; + Vec *unk4C; + s16 *unk50; + s16 *unk54; + float *unk58; + float *unk5C; + float *unk60; + float *unk64; + float *unk68; } WorkE6E8; void fn_2_DBCC(s16 arg0) { - omObjData *temp_r31; - s32 temp_r30; - s8 *temp_r28; - float temp_f31; - temp_r31 = lbl_2_bss_C4 = omAddObjEx(lbl_2_bss_1C, 1145, arg0, 0, -1, NULL); - omSetStatBit(temp_r31, 0x100); - temp_r31->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(s8), MEMORY_DEFAULT_NUM); - temp_r28 = temp_r31->data; - temp_r31->work[0] = arg0; - for(temp_r30=0; temp_r30model[temp_r30] = Hu3DModelCreateFile(lbl_2_data_460[temp_r30]); - } else { - temp_r31->model[temp_r30] = Hu3DModelLink(temp_r31->model[temp_r30%3]); - } - temp_f31 = 0.5f+((1.0f/255.0f)*(0.5f*frandu8())); - Hu3DModelScaleSet(temp_r31->model[temp_r30], temp_f31, temp_f31, temp_f31); - Hu3DModelAttrSet(temp_r31->model[temp_r30], 1); - Hu3DModelAttrSet(temp_r31->model[temp_r30], 0x40000001); - Hu3DMotionTimeSet(temp_r31->model[temp_r30], (1.0f/255.0f)*(Hu3DMotionMaxTimeGet(temp_r31->model[temp_r30])*frandu8())); - temp_r28[temp_r30] = 0; - } + omObjData *temp_r31; + s32 temp_r30; + s8 *temp_r28; + float temp_f31; + temp_r31 = lbl_2_bss_C4 = omAddObjEx(lbl_2_bss_1C, 1145, arg0, 0, -1, NULL); + omSetStatBit(temp_r31, 0x100); + temp_r31->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(s8), MEMORY_DEFAULT_NUM); + temp_r28 = temp_r31->data; + temp_r31->work[0] = arg0; + for (temp_r30 = 0; temp_r30 < arg0; temp_r30++) { + if (temp_r30 < 3) { + temp_r31->model[temp_r30] = Hu3DModelCreateFile(lbl_2_data_460[temp_r30]); + } + else { + temp_r31->model[temp_r30] = Hu3DModelLink(temp_r31->model[temp_r30 % 3]); + } + temp_f31 = 0.5f + ((1.0f / 255.0f) * (0.5f * frandu8())); + Hu3DModelScaleSet(temp_r31->model[temp_r30], temp_f31, temp_f31, temp_f31); + Hu3DModelAttrSet(temp_r31->model[temp_r30], 1); + Hu3DModelAttrSet(temp_r31->model[temp_r30], 0x40000001); + Hu3DMotionTimeSet(temp_r31->model[temp_r30], (1.0f / 255.0f) * (Hu3DMotionMaxTimeGet(temp_r31->model[temp_r30]) * frandu8())); + temp_r28[temp_r30] = 0; + } } void fn_2_DE1C(WorkE6E8 *arg0) { - HuMemDirectFree(arg0->unk34); - HuMemDirectFree(arg0->unk38); - HuMemDirectFree(arg0->unk40); - HuMemDirectFree(arg0->unk44); - HuMemDirectFree(arg0->unk48); - HuMemDirectFree(arg0->unk4C); - HuMemDirectFree(arg0->unk3C); - HuMemDirectFree(arg0->unk50); - HuMemDirectFree(arg0->unk54); - HuMemDirectFree(arg0->unk58); - HuMemDirectFree(arg0->unk5C); - HuMemDirectFree(arg0->unk60); - HuMemDirectFree(arg0->unk64); - HuMemDirectFree(arg0->unk68); - HuMemDirectFree(arg0->unk30); + HuMemDirectFree(arg0->unk34); + HuMemDirectFree(arg0->unk38); + HuMemDirectFree(arg0->unk40); + HuMemDirectFree(arg0->unk44); + HuMemDirectFree(arg0->unk48); + HuMemDirectFree(arg0->unk4C); + HuMemDirectFree(arg0->unk3C); + HuMemDirectFree(arg0->unk50); + HuMemDirectFree(arg0->unk54); + HuMemDirectFree(arg0->unk58); + HuMemDirectFree(arg0->unk5C); + HuMemDirectFree(arg0->unk60); + HuMemDirectFree(arg0->unk64); + HuMemDirectFree(arg0->unk68); + HuMemDirectFree(arg0->unk30); } omObjData *fn_2_DEBC(s16 arg0) { - WorkE6E8 *temp_r31; - s32 temp_r29; - omObjData *temp_r28; - s32 temp_r27; - s8 *temp_r26; - if(arg0 <= 0) { - return NULL; - } - temp_r28 = omAddObjEx(lbl_2_bss_1C, 1145, arg0, 0, -1, NULL); - omSetStatBit(temp_r28, 0x100); - temp_r28->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkE6E8), MEMORY_DEFAULT_NUM); - temp_r31 = temp_r28->data; - temp_r31->unk34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(Vec), MEMORY_DEFAULT_NUM); - temp_r31->unk38 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(Vec), MEMORY_DEFAULT_NUM); - temp_r31->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(Vec), MEMORY_DEFAULT_NUM); - temp_r31->unk44 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(Vec), MEMORY_DEFAULT_NUM); - temp_r31->unk48 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(Vec), MEMORY_DEFAULT_NUM); - temp_r31->unk4C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(Vec), MEMORY_DEFAULT_NUM); - temp_r31->unk3C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(Vec), MEMORY_DEFAULT_NUM); - temp_r31->unk50 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(s16), MEMORY_DEFAULT_NUM); - temp_r31->unk54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(s16), MEMORY_DEFAULT_NUM); - temp_r31->unk58 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(float), MEMORY_DEFAULT_NUM); - temp_r31->unk5C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(float), MEMORY_DEFAULT_NUM); - temp_r31->unk60 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(float), MEMORY_DEFAULT_NUM); - temp_r31->unk64 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(float), MEMORY_DEFAULT_NUM); - temp_r31->unk68 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(float), MEMORY_DEFAULT_NUM); - temp_r31->unk30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0*sizeof(s8), MEMORY_DEFAULT_NUM); - for(temp_r27=0; temp_r27data; - for(temp_r29=0; temp_r29work[0]; temp_r29++) { - if(temp_r26[temp_r29] == 0) { - temp_r26[temp_r29] = 1; - temp_r28->model[temp_r27] = lbl_2_bss_C4->model[temp_r29]; - temp_r31->unk54[temp_r27] = temp_r29%3; - temp_r31->unk30[temp_r27] = temp_r29; - break; - } - } - if(temp_r29 == lbl_2_bss_C4->work[0]) { - arg0 -= (s32)arg0-temp_r27; - break; - } - } - if(arg0 == 0) { - fn_2_DE1C(temp_r31); - omDelObjEx(HuPrcCurrentGet(), temp_r28); - temp_r28 = NULL; - } else { - temp_r31->unk0 = arg0; - temp_r31->unk10 = 0; - } - return temp_r28; + WorkE6E8 *temp_r31; + s32 temp_r29; + omObjData *temp_r28; + s32 temp_r27; + s8 *temp_r26; + if (arg0 <= 0) { + return NULL; + } + temp_r28 = omAddObjEx(lbl_2_bss_1C, 1145, arg0, 0, -1, NULL); + omSetStatBit(temp_r28, 0x100); + temp_r28->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkE6E8), MEMORY_DEFAULT_NUM); + temp_r31 = temp_r28->data; + temp_r31->unk34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), MEMORY_DEFAULT_NUM); + temp_r31->unk38 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), MEMORY_DEFAULT_NUM); + temp_r31->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), MEMORY_DEFAULT_NUM); + temp_r31->unk44 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), MEMORY_DEFAULT_NUM); + temp_r31->unk48 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), MEMORY_DEFAULT_NUM); + temp_r31->unk4C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), MEMORY_DEFAULT_NUM); + temp_r31->unk3C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), MEMORY_DEFAULT_NUM); + temp_r31->unk50 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(s16), MEMORY_DEFAULT_NUM); + temp_r31->unk54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(s16), MEMORY_DEFAULT_NUM); + temp_r31->unk58 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(float), MEMORY_DEFAULT_NUM); + temp_r31->unk5C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(float), MEMORY_DEFAULT_NUM); + temp_r31->unk60 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(float), MEMORY_DEFAULT_NUM); + temp_r31->unk64 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(float), MEMORY_DEFAULT_NUM); + temp_r31->unk68 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(float), MEMORY_DEFAULT_NUM); + temp_r31->unk30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(s8), MEMORY_DEFAULT_NUM); + for (temp_r27 = 0; temp_r27 < arg0; temp_r27++) { + temp_r26 = lbl_2_bss_C4->data; + for (temp_r29 = 0; temp_r29 < lbl_2_bss_C4->work[0]; temp_r29++) { + if (temp_r26[temp_r29] == 0) { + temp_r26[temp_r29] = 1; + temp_r28->model[temp_r27] = lbl_2_bss_C4->model[temp_r29]; + temp_r31->unk54[temp_r27] = temp_r29 % 3; + temp_r31->unk30[temp_r27] = temp_r29; + break; + } + } + if (temp_r29 == lbl_2_bss_C4->work[0]) { + arg0 -= (s32)arg0 - temp_r27; + break; + } + } + if (arg0 == 0) { + fn_2_DE1C(temp_r31); + omDelObjEx(HuPrcCurrentGet(), temp_r28); + temp_r28 = NULL; + } + else { + temp_r31->unk0 = arg0; + temp_r31->unk10 = 0; + } + return temp_r28; } void fn_2_E24C(omObjData *object) { - WorkE6E8 *temp_r31; - s32 temp_r30; - s8 *temp_r28; - temp_r31 = object->data; - temp_r28 = lbl_2_bss_C4->data; - for(temp_r30=0; temp_r30unk0; temp_r30++) { - temp_r28[temp_r31->unk30[temp_r30]] = 0; - Hu3DModelAttrSet(object->model[temp_r30], 1); - } - fn_2_DE1C(temp_r31); - omDelObjEx(HuPrcCurrentGet(), object); + WorkE6E8 *temp_r31; + s32 temp_r30; + s8 *temp_r28; + temp_r31 = object->data; + temp_r28 = lbl_2_bss_C4->data; + for (temp_r30 = 0; temp_r30 < temp_r31->unk0; temp_r30++) { + temp_r28[temp_r31->unk30[temp_r30]] = 0; + Hu3DModelAttrSet(object->model[temp_r30], 1); + } + fn_2_DE1C(temp_r31); + omDelObjEx(HuPrcCurrentGet(), object); } void fn_2_E6E8(omObjData *object); void fn_2_E364(omObjData *object, s16 arg1) { - s32 temp_r31; - WorkE6E8 *temp_r29 = object->data; - if(arg1 == 1) { - for(temp_r31=0; temp_r31unk0; temp_r31++) { - Hu3DModelAttrReset(object->model[temp_r31], 1); - } - object->func = fn_2_E6E8; - } else { - for(temp_r31=0; temp_r31unk0; temp_r31++) { - Hu3DModelAttrSet(object->model[temp_r31], 1); - } - object->func = NULL; - } + s32 temp_r31; + WorkE6E8 *temp_r29 = object->data; + if (arg1 == 1) { + for (temp_r31 = 0; temp_r31 < temp_r29->unk0; temp_r31++) { + Hu3DModelAttrReset(object->model[temp_r31], 1); + } + object->func = fn_2_E6E8; + } + else { + for (temp_r31 = 0; temp_r31 < temp_r29->unk0; temp_r31++) { + Hu3DModelAttrSet(object->model[temp_r31], 1); + } + object->func = NULL; + } } void fn_2_E420(omObjData *object, Vec *arg1, Vec *arg2) { - WorkE6E8 *temp_r31 = object->data; - s32 temp_r30; - for(temp_r30=0; temp_r30unk0; temp_r30++) { - temp_r31->unk34[temp_r30].x = (arg1->x - arg2->x)+((1.0f/255.0f)*(2.0f*arg2->x*frandu8())); - temp_r31->unk34[temp_r30].y = (arg1->y - arg2->y)+((1.0f/255.0f)*(2.0f*arg2->y*frandu8())); - temp_r31->unk34[temp_r30].z = (arg1->z - arg2->z)+((1.0f/255.0f)*(2.0f*arg2->z*frandu8())); - VECNormalize(&temp_r31->unk34[temp_r30], &temp_r31->unk38[temp_r30]); - temp_r31->unk5C[temp_r30] = temp_r31->unk64[temp_r30] = temp_r31->unk60[temp_r30] = temp_r31->unk68[temp_r30] = 0; - temp_r31->unk58[temp_r30] = 0.1f; - Hu3DModelPosSet(object->model[temp_r30], temp_r31->unk34[temp_r30].x, temp_r31->unk34[temp_r30].y, temp_r31->unk34[temp_r30].z); - - } + WorkE6E8 *temp_r31 = object->data; + s32 temp_r30; + for (temp_r30 = 0; temp_r30 < temp_r31->unk0; temp_r30++) { + temp_r31->unk34[temp_r30].x = (arg1->x - arg2->x) + ((1.0f / 255.0f) * (2.0f * arg2->x * frandu8())); + temp_r31->unk34[temp_r30].y = (arg1->y - arg2->y) + ((1.0f / 255.0f) * (2.0f * arg2->y * frandu8())); + temp_r31->unk34[temp_r30].z = (arg1->z - arg2->z) + ((1.0f / 255.0f) * (2.0f * arg2->z * frandu8())); + VECNormalize(&temp_r31->unk34[temp_r30], &temp_r31->unk38[temp_r30]); + temp_r31->unk5C[temp_r30] = temp_r31->unk64[temp_r30] = temp_r31->unk60[temp_r30] = temp_r31->unk68[temp_r30] = 0; + temp_r31->unk58[temp_r30] = 0.1f; + Hu3DModelPosSet(object->model[temp_r30], temp_r31->unk34[temp_r30].x, temp_r31->unk34[temp_r30].y, temp_r31->unk34[temp_r30].z); + } } void fn_2_E66C(omObjData *object, Vec *pos) { - WorkE6E8 *temp_r31 = object->data; - temp_r31->unk4 = *pos; + WorkE6E8 *temp_r31 = object->data; + temp_r31->unk4 = *pos; } void fn_2_E69C(omObjData *object, float arg2, float arg3) { - WorkE6E8 *temp_r31 = object->data; - temp_r31->unk14 = arg2; - temp_r31->unk18 = arg3; + WorkE6E8 *temp_r31 = object->data; + temp_r31->unk14 = arg2; + temp_r31->unk18 = arg3; } void fn_2_E6BC(omObjData *object, float arg2, float arg3, float arg4, float arg5, float arg6) { - WorkE6E8 *temp_r31 = object->data; - temp_r31->unk1C = arg2; - temp_r31->unk20 = arg3; - temp_r31->unk24 = arg4; - temp_r31->unk28 = arg5; - temp_r31->unk2C = arg6; + WorkE6E8 *temp_r31 = object->data; + temp_r31->unk1C = arg2; + temp_r31->unk20 = arg3; + temp_r31->unk24 = arg4; + temp_r31->unk28 = arg5; + temp_r31->unk2C = arg6; } void fn_2_E6E8(omObjData *object) { - WorkE6E8 *temp_r31 = object->data; - s32 temp_r30; - s32 temp_r29; - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - Mtx sp158, sp128, spF8, spC8, sp98, sp68; - Vec sp5C, sp50, sp44, sp38, sp2C, sp20, sp14, sp8; - for(temp_r30=0; temp_r30unk0; temp_r30++) { - temp_r31->unk3C[temp_r30].x = 0; - temp_r31->unk3C[temp_r30].y = 0; - temp_r31->unk3C[temp_r30].z = 0; - temp_r31->unk40[temp_r30].x = 0; - temp_r31->unk40[temp_r30].y = 0; - temp_r31->unk40[temp_r30].z = 0; - temp_r31->unk44[temp_r30].x = 0; - temp_r31->unk44[temp_r30].y = 0; - temp_r31->unk44[temp_r30].z = 0; - temp_r31->unk48[temp_r30].x = 0; - temp_r31->unk48[temp_r30].y = 0; - temp_r31->unk48[temp_r30].z = 0; - temp_r31->unk4C[temp_r30].x = 0; - temp_r31->unk4C[temp_r30].y = 0; - temp_r31->unk4C[temp_r30].z = 0; - temp_r31->unk50[temp_r30] = 0; - } - for(temp_r30=0; temp_r30unk0; temp_r30++) { - for(temp_r29=temp_r30+1; temp_r29unk0; temp_r29++) { - VECSubtract(&temp_r31->unk34[temp_r30], &temp_r31->unk34[temp_r29], &sp5C); - temp_f28 = VECMag(&sp5C); - if(temp_f28 < temp_r31->unk14) { - VECScale(&sp5C, &sp50, 1.0f/(temp_f28*temp_f28)); - VECAdd(&temp_r31->unk3C[temp_r30], &sp50, &temp_r31->unk3C[temp_r30]); - VECSubtract(&temp_r31->unk3C[temp_r29], &sp50, &temp_r31->unk3C[temp_r29]); - if(temp_r31->unk54[temp_r30] == temp_r31->unk54[temp_r29]){ - VECScale(&temp_r31->unk38[temp_r29], &sp50, 1.0f/temp_f28); - VECAdd(&temp_r31->unk40[temp_r30], &sp50, &temp_r31->unk40[temp_r30]); - VECScale(&temp_r31->unk38[temp_r30], &sp50, 1.0f/temp_f28); - VECAdd(&temp_r31->unk40[temp_r29], &sp50, &temp_r31->unk40[temp_r29]); - VECAdd(&temp_r31->unk44[temp_r30], &temp_r31->unk34[temp_r29], &temp_r31->unk44[temp_r30]); - VECAdd(&temp_r31->unk44[temp_r29], &temp_r31->unk34[temp_r30], &temp_r31->unk44[temp_r29]); - } - temp_r31->unk50[temp_r30]++; - temp_r31->unk50[temp_r29]++; - } - - } - for(temp_r29=0; temp_r29<4; temp_r29++) { - sp44.x = lbl_2_bss_118[temp_r29]->trans.x; - sp44.y = lbl_2_bss_118[temp_r29]->trans.y; - sp44.z = lbl_2_bss_118[temp_r29]->trans.z; - VECSubtract(&temp_r31->unk34[temp_r30], &sp44, &sp38); - if(!(VECDotProduct(&sp38, &temp_r31->unk38[temp_r30]) > 0)) { - temp_f30 = VECMag(&sp38)-200; - if(temp_f30 < temp_r31->unk14) { - temp_f30 -= 100; - if(temp_f30 < 0.01f) { - temp_f30 = 0.01f; - } - VECScale(&sp38, &sp38, 1.0f/temp_f30); - VECAdd(&temp_r31->unk4C[temp_r30], &sp38, &temp_r31->unk4C[temp_r30]); - } - } - } - if(temp_r31->unk50[temp_r30] != 0) { - VECScale(&temp_r31->unk44[temp_r30], &temp_r31->unk44[temp_r30], 1.0f/temp_r31->unk50[temp_r30]); - VECSubtract(&temp_r31->unk44[temp_r30], &temp_r31->unk34[temp_r30], &sp2C); - temp_f29 = VECMag(&sp2C); - if(temp_f29 > 0.0f){ - VECScale(&sp2C, &temp_r31->unk44[temp_r30], 1.0f/temp_f29); - } else { - temp_r31->unk44[temp_r30].x = 0; - temp_r31->unk44[temp_r30].y = 0; - temp_r31->unk44[temp_r30].z = 0; - } - VECScale(&temp_r31->unk40[temp_r30], &temp_r31->unk40[temp_r30], 1.0f/temp_r31->unk50[temp_r30]); - temp_f29 = VECMag(&temp_r31->unk40[temp_r30]); - if(temp_f29 > 0) { - VECScale(&temp_r31->unk40[temp_r30], &temp_r31->unk40[temp_r30], 1.0f/temp_f29); - VECSubtract(&temp_r31->unk40[temp_r30], &temp_r31->unk38[temp_r30], &sp2C); - VECScale(&sp2C, &temp_r31->unk40[temp_r30], 1.0f/temp_f29); - } - } - VECSubtract(&temp_r31->unk4, &temp_r31->unk34[temp_r30], &temp_r31->unk48[temp_r30]); - VECNormalize(&temp_r31->unk48[temp_r30], &temp_r31->unk48[temp_r30]); - } - for(temp_r30=0; temp_r30unk0; temp_r30++) { - sp20.x = 0; - sp20.y = 0; - sp20.z = 0; - VECScale(&temp_r31->unk3C[temp_r30], &sp8, temp_r31->unk1C); - VECAdd(&sp8, &sp20, &sp20); - VECScale(&temp_r31->unk4C[temp_r30], &sp8, temp_r31->unk20); - VECAdd(&sp8, &sp20, &sp20); - VECScale(&temp_r31->unk40[temp_r30], &sp8, temp_r31->unk24); - VECAdd(&sp8, &sp20, &sp20); - VECScale(&temp_r31->unk44[temp_r30], &sp8, temp_r31->unk28); - VECAdd(&sp8, &sp20, &sp20); - VECScale(&temp_r31->unk48[temp_r30], &sp8, temp_r31->unk2C); - VECAdd(&sp8, &sp20, &sp20); - temp_f27 = VECMag(&sp20); - if(temp_f27 > 1.0f) { - VECScale(&sp20, &sp20, 1.0f/temp_f27); - } - if(sp20.y > 0.01f) { - temp_r31->unk60[temp_r30] += 0.02f; - if(temp_r31->unk60[temp_r30] > 0.8f) { - temp_r31->unk60[temp_r30] = 0.8f; - } - } else { - if(sp20.y < -0.01f) { - temp_r31->unk60[temp_r30] -= 0.02f; - if(temp_r31->unk60[temp_r30] < -0.8f) { - temp_r31->unk60[temp_r30] = -0.8f; - } - } else { - temp_r31->unk60[temp_r30] *= 0.98f; - } - } - temp_r31->unk58[temp_r30] -= 0.002*temp_r31->unk60[temp_r30]; - temp_r31->unk58[temp_r30] = temp_r31->unk18+(0.99f*(temp_r31->unk58[temp_r30]-temp_r31->unk18)); - if(temp_r31->unk58[temp_r30] < 0.4f*temp_r31->unk18) { - temp_r31->unk58[temp_r30] = 0.4f*temp_r31->unk18; - } - if(temp_r31->unk58[temp_r30] > 5.0f*temp_r31->unk18) { - temp_r31->unk58[temp_r30] = 5.0f*temp_r31->unk18; - } - sp14 = sp20; - sp14.y = 0; - sp8 = temp_r31->unk38[temp_r30]; - if(VECMag(&sp14) > 0) { - VECNormalize(&sp14, &sp14); - } - temp_f31 = VECDotProduct(&sp14, &sp8); - if(temp_f31 > 0.7f) { - temp_f31 -= 0.7f; - temp_r31->unk58[temp_r30] += 0.005f*temp_f31; - } - VECCrossProduct(&sp14, &sp8, &sp14); - temp_f31 = 0.07f*((1.0f-temp_f31)/2); - if(sp14.y > 0.05f) { - temp_r31->unk68[temp_r30] = 0.05f*(temp_f31+(19.0f*temp_r31->unk68[temp_r30])); - } else if(sp14.y < -0.05f) { - temp_r31->unk68[temp_r30] = 0.05f*((19.0f*temp_r31->unk68[temp_r30])-temp_f31); - } else { - temp_r31->unk68[temp_r30] *= 0.98f; - } - temp_r31->unk5C[temp_r30] += temp_r31->unk68[temp_r30]; - temp_r31->unk64[temp_r30] = 20.0f*-temp_r31->unk68[temp_r30]; - MTXTrans(sp158, temp_r31->unk34[temp_r30].x, temp_r31->unk34[temp_r30].y, temp_r31->unk34[temp_r30].z); - MTXRotDeg(sp128, 'x', (temp_r31->unk60[temp_r30]/M_PI)*180.0); - MTXRotDeg(spF8, 'y', (temp_r31->unk5C[temp_r30]/M_PI)*180.0); - MTXRotDeg(spC8, 'z', (temp_r31->unk64[temp_r30]/M_PI)*180.0); - MTXConcat(sp128, spF8, sp98); - MTXConcat(spC8, sp98, sp68); - MTXConcat(sp68, sp158, sp98); - temp_r31->unk38[temp_r30].x = MTXRowCol(sp98, 2, 0); - temp_r31->unk38[temp_r30].y = MTXRowCol(sp98, 2, 1); - temp_r31->unk38[temp_r30].z = MTXRowCol(sp98, 2, 2); - temp_r31->unk34[temp_r30].x += 100.0f*(temp_r31->unk38[temp_r30].x*temp_r31->unk58[temp_r30]); - temp_r31->unk34[temp_r30].y += 100.0f*(temp_r31->unk38[temp_r30].y*temp_r31->unk58[temp_r30]); - temp_r31->unk34[temp_r30].z += 100.0f*(temp_r31->unk38[temp_r30].z*temp_r31->unk58[temp_r30]); - if(temp_r31->unk34[temp_r30].y < -350.0f) { - temp_r31->unk34[temp_r30].y = -350.0f; - } - Hu3DModelPosSet(object->model[temp_r30], temp_r31->unk34[temp_r30].x, temp_r31->unk34[temp_r30].y, temp_r31->unk34[temp_r30].z); - Hu3DModelRotSet(object->model[temp_r30], (-temp_r31->unk60[temp_r30]/M_PI)*180.0, (-temp_r31->unk5C[temp_r30]/M_PI)*180.0, 0); - } + WorkE6E8 *temp_r31 = object->data; + s32 temp_r30; + s32 temp_r29; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f27; + Mtx sp158, sp128, spF8, spC8, sp98, sp68; + Vec sp5C, sp50, sp44, sp38, sp2C, sp20, sp14, sp8; + for (temp_r30 = 0; temp_r30 < temp_r31->unk0; temp_r30++) { + temp_r31->unk3C[temp_r30].x = 0; + temp_r31->unk3C[temp_r30].y = 0; + temp_r31->unk3C[temp_r30].z = 0; + temp_r31->unk40[temp_r30].x = 0; + temp_r31->unk40[temp_r30].y = 0; + temp_r31->unk40[temp_r30].z = 0; + temp_r31->unk44[temp_r30].x = 0; + temp_r31->unk44[temp_r30].y = 0; + temp_r31->unk44[temp_r30].z = 0; + temp_r31->unk48[temp_r30].x = 0; + temp_r31->unk48[temp_r30].y = 0; + temp_r31->unk48[temp_r30].z = 0; + temp_r31->unk4C[temp_r30].x = 0; + temp_r31->unk4C[temp_r30].y = 0; + temp_r31->unk4C[temp_r30].z = 0; + temp_r31->unk50[temp_r30] = 0; + } + for (temp_r30 = 0; temp_r30 < temp_r31->unk0; temp_r30++) { + for (temp_r29 = temp_r30 + 1; temp_r29 < temp_r31->unk0; temp_r29++) { + VECSubtract(&temp_r31->unk34[temp_r30], &temp_r31->unk34[temp_r29], &sp5C); + temp_f28 = VECMag(&sp5C); + if (temp_f28 < temp_r31->unk14) { + VECScale(&sp5C, &sp50, 1.0f / (temp_f28 * temp_f28)); + VECAdd(&temp_r31->unk3C[temp_r30], &sp50, &temp_r31->unk3C[temp_r30]); + VECSubtract(&temp_r31->unk3C[temp_r29], &sp50, &temp_r31->unk3C[temp_r29]); + if (temp_r31->unk54[temp_r30] == temp_r31->unk54[temp_r29]) { + VECScale(&temp_r31->unk38[temp_r29], &sp50, 1.0f / temp_f28); + VECAdd(&temp_r31->unk40[temp_r30], &sp50, &temp_r31->unk40[temp_r30]); + VECScale(&temp_r31->unk38[temp_r30], &sp50, 1.0f / temp_f28); + VECAdd(&temp_r31->unk40[temp_r29], &sp50, &temp_r31->unk40[temp_r29]); + VECAdd(&temp_r31->unk44[temp_r30], &temp_r31->unk34[temp_r29], &temp_r31->unk44[temp_r30]); + VECAdd(&temp_r31->unk44[temp_r29], &temp_r31->unk34[temp_r30], &temp_r31->unk44[temp_r29]); + } + temp_r31->unk50[temp_r30]++; + temp_r31->unk50[temp_r29]++; + } + } + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + sp44.x = lbl_2_bss_118[temp_r29]->trans.x; + sp44.y = lbl_2_bss_118[temp_r29]->trans.y; + sp44.z = lbl_2_bss_118[temp_r29]->trans.z; + VECSubtract(&temp_r31->unk34[temp_r30], &sp44, &sp38); + if (!(VECDotProduct(&sp38, &temp_r31->unk38[temp_r30]) > 0)) { + temp_f30 = VECMag(&sp38) - 200; + if (temp_f30 < temp_r31->unk14) { + temp_f30 -= 100; + if (temp_f30 < 0.01f) { + temp_f30 = 0.01f; + } + VECScale(&sp38, &sp38, 1.0f / temp_f30); + VECAdd(&temp_r31->unk4C[temp_r30], &sp38, &temp_r31->unk4C[temp_r30]); + } + } + } + if (temp_r31->unk50[temp_r30] != 0) { + VECScale(&temp_r31->unk44[temp_r30], &temp_r31->unk44[temp_r30], 1.0f / temp_r31->unk50[temp_r30]); + VECSubtract(&temp_r31->unk44[temp_r30], &temp_r31->unk34[temp_r30], &sp2C); + temp_f29 = VECMag(&sp2C); + if (temp_f29 > 0.0f) { + VECScale(&sp2C, &temp_r31->unk44[temp_r30], 1.0f / temp_f29); + } + else { + temp_r31->unk44[temp_r30].x = 0; + temp_r31->unk44[temp_r30].y = 0; + temp_r31->unk44[temp_r30].z = 0; + } + VECScale(&temp_r31->unk40[temp_r30], &temp_r31->unk40[temp_r30], 1.0f / temp_r31->unk50[temp_r30]); + temp_f29 = VECMag(&temp_r31->unk40[temp_r30]); + if (temp_f29 > 0) { + VECScale(&temp_r31->unk40[temp_r30], &temp_r31->unk40[temp_r30], 1.0f / temp_f29); + VECSubtract(&temp_r31->unk40[temp_r30], &temp_r31->unk38[temp_r30], &sp2C); + VECScale(&sp2C, &temp_r31->unk40[temp_r30], 1.0f / temp_f29); + } + } + VECSubtract(&temp_r31->unk4, &temp_r31->unk34[temp_r30], &temp_r31->unk48[temp_r30]); + VECNormalize(&temp_r31->unk48[temp_r30], &temp_r31->unk48[temp_r30]); + } + for (temp_r30 = 0; temp_r30 < temp_r31->unk0; temp_r30++) { + sp20.x = 0; + sp20.y = 0; + sp20.z = 0; + VECScale(&temp_r31->unk3C[temp_r30], &sp8, temp_r31->unk1C); + VECAdd(&sp8, &sp20, &sp20); + VECScale(&temp_r31->unk4C[temp_r30], &sp8, temp_r31->unk20); + VECAdd(&sp8, &sp20, &sp20); + VECScale(&temp_r31->unk40[temp_r30], &sp8, temp_r31->unk24); + VECAdd(&sp8, &sp20, &sp20); + VECScale(&temp_r31->unk44[temp_r30], &sp8, temp_r31->unk28); + VECAdd(&sp8, &sp20, &sp20); + VECScale(&temp_r31->unk48[temp_r30], &sp8, temp_r31->unk2C); + VECAdd(&sp8, &sp20, &sp20); + temp_f27 = VECMag(&sp20); + if (temp_f27 > 1.0f) { + VECScale(&sp20, &sp20, 1.0f / temp_f27); + } + if (sp20.y > 0.01f) { + temp_r31->unk60[temp_r30] += 0.02f; + if (temp_r31->unk60[temp_r30] > 0.8f) { + temp_r31->unk60[temp_r30] = 0.8f; + } + } + else { + if (sp20.y < -0.01f) { + temp_r31->unk60[temp_r30] -= 0.02f; + if (temp_r31->unk60[temp_r30] < -0.8f) { + temp_r31->unk60[temp_r30] = -0.8f; + } + } + else { + temp_r31->unk60[temp_r30] *= 0.98f; + } + } + temp_r31->unk58[temp_r30] -= 0.002 * temp_r31->unk60[temp_r30]; + temp_r31->unk58[temp_r30] = temp_r31->unk18 + (0.99f * (temp_r31->unk58[temp_r30] - temp_r31->unk18)); + if (temp_r31->unk58[temp_r30] < 0.4f * temp_r31->unk18) { + temp_r31->unk58[temp_r30] = 0.4f * temp_r31->unk18; + } + if (temp_r31->unk58[temp_r30] > 5.0f * temp_r31->unk18) { + temp_r31->unk58[temp_r30] = 5.0f * temp_r31->unk18; + } + sp14 = sp20; + sp14.y = 0; + sp8 = temp_r31->unk38[temp_r30]; + if (VECMag(&sp14) > 0) { + VECNormalize(&sp14, &sp14); + } + temp_f31 = VECDotProduct(&sp14, &sp8); + if (temp_f31 > 0.7f) { + temp_f31 -= 0.7f; + temp_r31->unk58[temp_r30] += 0.005f * temp_f31; + } + VECCrossProduct(&sp14, &sp8, &sp14); + temp_f31 = 0.07f * ((1.0f - temp_f31) / 2); + if (sp14.y > 0.05f) { + temp_r31->unk68[temp_r30] = 0.05f * (temp_f31 + (19.0f * temp_r31->unk68[temp_r30])); + } + else if (sp14.y < -0.05f) { + temp_r31->unk68[temp_r30] = 0.05f * ((19.0f * temp_r31->unk68[temp_r30]) - temp_f31); + } + else { + temp_r31->unk68[temp_r30] *= 0.98f; + } + temp_r31->unk5C[temp_r30] += temp_r31->unk68[temp_r30]; + temp_r31->unk64[temp_r30] = 20.0f * -temp_r31->unk68[temp_r30]; + MTXTrans(sp158, temp_r31->unk34[temp_r30].x, temp_r31->unk34[temp_r30].y, temp_r31->unk34[temp_r30].z); + MTXRotDeg(sp128, 'x', (temp_r31->unk60[temp_r30] / M_PI) * 180.0); + MTXRotDeg(spF8, 'y', (temp_r31->unk5C[temp_r30] / M_PI) * 180.0); + MTXRotDeg(spC8, 'z', (temp_r31->unk64[temp_r30] / M_PI) * 180.0); + MTXConcat(sp128, spF8, sp98); + MTXConcat(spC8, sp98, sp68); + MTXConcat(sp68, sp158, sp98); + temp_r31->unk38[temp_r30].x = MTXRowCol(sp98, 2, 0); + temp_r31->unk38[temp_r30].y = MTXRowCol(sp98, 2, 1); + temp_r31->unk38[temp_r30].z = MTXRowCol(sp98, 2, 2); + temp_r31->unk34[temp_r30].x += 100.0f * (temp_r31->unk38[temp_r30].x * temp_r31->unk58[temp_r30]); + temp_r31->unk34[temp_r30].y += 100.0f * (temp_r31->unk38[temp_r30].y * temp_r31->unk58[temp_r30]); + temp_r31->unk34[temp_r30].z += 100.0f * (temp_r31->unk38[temp_r30].z * temp_r31->unk58[temp_r30]); + if (temp_r31->unk34[temp_r30].y < -350.0f) { + temp_r31->unk34[temp_r30].y = -350.0f; + } + Hu3DModelPosSet(object->model[temp_r30], temp_r31->unk34[temp_r30].x, temp_r31->unk34[temp_r30].y, temp_r31->unk34[temp_r30].z); + Hu3DModelRotSet(object->model[temp_r30], (-temp_r31->unk60[temp_r30] / M_PI) * 180.0, (-temp_r31->unk5C[temp_r30] / M_PI) * 180.0, 0); + } } void fn_2_F778() { - CameraData *temp_r31; - s32 temp_r30; - float sp8[7]; - temp_r31 = lbl_2_bss_DC->data; - sp8[0] = temp_r31->pos.x; - sp8[1] = temp_r31->pos.y; - sp8[2] = temp_r31->pos.z; - sp8[3] = temp_r31->up.x; - sp8[4] = temp_r31->up.y; - sp8[5] = temp_r31->up.z; - sp8[6] = temp_r31->target.x; - fontcolor = FONT_COLOR_WHITE; - for(temp_r30=0; temp_r30<7; temp_r30++) { - if(temp_r30 == lbl_2_bss_18) { - print8(24.0+(1.5*((temp_r30*8)*7)), 384, 1.5f, "____"); - } - print8(24.0+(1.5*((temp_r30*8)*7)), 400, 1.5f, "%.2f", sp8[temp_r30]); - } - if(HuPadBtnRep[0] & PAD_BUTTON_LEFT) { - if(--lbl_2_bss_18 < 0) { - lbl_2_bss_18 = 6; - } - } - if(HuPadBtnRep[0] & PAD_BUTTON_RIGHT) { - if(++lbl_2_bss_18 > 6) { - lbl_2_bss_18 = 0; - } - } - if(HuPadBtnRep[0] & PAD_BUTTON_UP) { - if(HuPadBtn[0] & PAD_TRIGGER_R) { - sp8[lbl_2_bss_18] += 1.0f; - } else if(HuPadBtn[0] & PAD_TRIGGER_L) { - sp8[lbl_2_bss_18] += 0.1f; - } else { - sp8[lbl_2_bss_18] += 0.01f; - } - if(sp8[lbl_2_bss_18] > 999.99f) { - sp8[lbl_2_bss_18] = 999.99f; - } - } - if(HuPadBtnRep[0] & PAD_BUTTON_DOWN) { - if(HuPadBtn[0] & PAD_TRIGGER_R) { - sp8[lbl_2_bss_18] -= 1.0f; - } else if(HuPadBtn[0] & PAD_TRIGGER_L) { - sp8[lbl_2_bss_18] -= 0.1f; - } else { - sp8[lbl_2_bss_18] -= 0.01f; - } - if(sp8[lbl_2_bss_18] < 0) { - sp8[lbl_2_bss_18] = 0; - } - } - temp_r31->pos.x = sp8[0]; - temp_r31->pos.y = sp8[1]; - temp_r31->pos.z = sp8[2]; - temp_r31->up.x = sp8[3]; - temp_r31->up.y = sp8[4]; - temp_r31->up.z = sp8[5]; - temp_r31->target.x = sp8[6]; + CameraData *temp_r31; + s32 temp_r30; + float sp8[7]; + temp_r31 = lbl_2_bss_DC->data; + sp8[0] = temp_r31->pos.x; + sp8[1] = temp_r31->pos.y; + sp8[2] = temp_r31->pos.z; + sp8[3] = temp_r31->up.x; + sp8[4] = temp_r31->up.y; + sp8[5] = temp_r31->up.z; + sp8[6] = temp_r31->target.x; + fontcolor = FONT_COLOR_WHITE; + for (temp_r30 = 0; temp_r30 < 7; temp_r30++) { + if (temp_r30 == lbl_2_bss_18) { + print8(24.0 + (1.5 * ((temp_r30 * 8) * 7)), 384, 1.5f, "____"); + } + print8(24.0 + (1.5 * ((temp_r30 * 8) * 7)), 400, 1.5f, "%.2f", sp8[temp_r30]); + } + if (HuPadBtnRep[0] & PAD_BUTTON_LEFT) { + if (--lbl_2_bss_18 < 0) { + lbl_2_bss_18 = 6; + } + } + if (HuPadBtnRep[0] & PAD_BUTTON_RIGHT) { + if (++lbl_2_bss_18 > 6) { + lbl_2_bss_18 = 0; + } + } + if (HuPadBtnRep[0] & PAD_BUTTON_UP) { + if (HuPadBtn[0] & PAD_TRIGGER_R) { + sp8[lbl_2_bss_18] += 1.0f; + } + else if (HuPadBtn[0] & PAD_TRIGGER_L) { + sp8[lbl_2_bss_18] += 0.1f; + } + else { + sp8[lbl_2_bss_18] += 0.01f; + } + if (sp8[lbl_2_bss_18] > 999.99f) { + sp8[lbl_2_bss_18] = 999.99f; + } + } + if (HuPadBtnRep[0] & PAD_BUTTON_DOWN) { + if (HuPadBtn[0] & PAD_TRIGGER_R) { + sp8[lbl_2_bss_18] -= 1.0f; + } + else if (HuPadBtn[0] & PAD_TRIGGER_L) { + sp8[lbl_2_bss_18] -= 0.1f; + } + else { + sp8[lbl_2_bss_18] -= 0.01f; + } + if (sp8[lbl_2_bss_18] < 0) { + sp8[lbl_2_bss_18] = 0; + } + } + temp_r31->pos.x = sp8[0]; + temp_r31->pos.y = sp8[1]; + temp_r31->pos.z = sp8[2]; + temp_r31->up.x = sp8[3]; + temp_r31->up.y = sp8[4]; + temp_r31->up.z = sp8[5]; + temp_r31->target.x = sp8[6]; } void fn_2_FF98(omObjData *object); omObjData *fn_2_FC40(s16 arg0, Vec *arg1, Vec *arg2, Vec *arg3) { - omObjData *temp_r30; - omObjData *temp_r22; - temp_r22 = omAddObjEx(HuPrcCurrentGet(), 1140, 0, 0, -1, fn_2_FF98); - temp_r30 = fn_2_DEBC(arg0); - temp_r22->work[0] = (u32)temp_r30; - fn_2_E420(temp_r30, arg1, arg2); - fn_2_E66C(temp_r30, arg3); - fn_2_E69C(temp_r30, 90.0f, 0.045999996f); - fn_2_E6BC(temp_r30, 5.0f, 1.5f, 0.08f, 0.8f, 0.8f); - fn_2_E364(temp_r30, 1); - return temp_r22; + omObjData *temp_r30; + omObjData *temp_r22; + temp_r22 = omAddObjEx(HuPrcCurrentGet(), 1140, 0, 0, -1, fn_2_FF98); + temp_r30 = fn_2_DEBC(arg0); + temp_r22->work[0] = (u32)temp_r30; + fn_2_E420(temp_r30, arg1, arg2); + fn_2_E66C(temp_r30, arg3); + fn_2_E69C(temp_r30, 90.0f, 0.045999996f); + fn_2_E6BC(temp_r30, 5.0f, 1.5f, 0.08f, 0.8f, 0.8f); + fn_2_E364(temp_r30, 1); + return temp_r22; } void fn_2_FF98(omObjData *object) { - WorkE6E8 *temp_r29; - omObjData *temp_r28; - s32 temp_r25; - s32 temp_r24; - temp_r24 = 0; - temp_r28 = (omObjData *)(object->work[0]); - temp_r29 = temp_r28->data; - temp_r29->unk4.x += object->scale.x*sind(object->trans.x); - temp_r29->unk4.y += object->scale.y*sind(object->trans.x); - temp_r29->unk4.z += object->scale.z*sind(object->trans.x); - object->trans.x += object->rot.x; - if(object->trans.x >= 360.0f) { - object->trans.x -= 360.0f; - } - if(object->trans.x < 0.0f) { - object->trans.x += 360.0f; - } - for(temp_r25=0; temp_r25unk0; temp_r25++) { - if(temp_r29->unk34[temp_r25].z >= lbl_2_bss_6C.z) { - temp_r24++; - } - } - if(temp_r24 == temp_r29->unk0) { - fn_2_E24C(temp_r28); - omDelObjEx(HuPrcCurrentGet(), object); - } - + WorkE6E8 *temp_r29; + omObjData *temp_r28; + s32 temp_r25; + s32 temp_r24; + temp_r24 = 0; + temp_r28 = (omObjData *)(object->work[0]); + temp_r29 = temp_r28->data; + temp_r29->unk4.x += object->scale.x * sind(object->trans.x); + temp_r29->unk4.y += object->scale.y * sind(object->trans.x); + temp_r29->unk4.z += object->scale.z * sind(object->trans.x); + object->trans.x += object->rot.x; + if (object->trans.x >= 360.0f) { + object->trans.x -= 360.0f; + } + if (object->trans.x < 0.0f) { + object->trans.x += 360.0f; + } + for (temp_r25 = 0; temp_r25 < temp_r29->unk0; temp_r25++) { + if (temp_r29->unk34[temp_r25].z >= lbl_2_bss_6C.z) { + temp_r24++; + } + } + if (temp_r24 == temp_r29->unk0) { + fn_2_E24C(temp_r28); + omDelObjEx(HuPrcCurrentGet(), object); + } } diff --git a/src/REL/m401Dll/main_ex.c b/src/REL/m401Dll/main_ex.c index 10e2bf6c..90dc47da 100644 --- a/src/REL/m401Dll/main_ex.c +++ b/src/REL/m401Dll/main_ex.c @@ -1,19 +1,19 @@ -#include "game/hsfman.h" -#include "game/sprite.h" -#include "game/object.h" -#include "game/hsfanim.h" -#include "game/hsfmotion.h" #include "game/audio.h" -#include "game/objsub.h" #include "game/frand.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/sprite.h" #include "ext_math.h" #include "REL/m401Dll.h" struct Bss13EData { - s16 unk0; - s16 unk2[3]; + s16 unk0; + s16 unk2[3]; }; AnimData *lbl_2_bss_250; @@ -33,116 +33,115 @@ float lbl_2_bss_128; float lbl_2_bss_124; s16 lbl_2_bss_120; - void fn_2_10240(Vec *arg0, Vec *arg1) { - CameraData *camera; - Mtx lookat; - Mtx44 proj; - float coord[4]; - arg0->y = -arg0->y; - camera = &Hu3DCamera[0]; - MTXLookAt(lookat, &camera->pos, &camera->up, &camera->target); - MTXMultVec(lookat, arg0, arg0); - MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far); - coord[0] = (arg0->x*proj[0][0])+(arg0->y*proj[0][1])+(arg0->z*proj[0][2])+proj[0][3]; - coord[1] = (arg0->x*proj[1][0])+(arg0->y*proj[1][1])+(arg0->z*proj[1][2])+proj[1][3]; - coord[2] = (arg0->x*proj[2][0])+(arg0->y*proj[2][1])+(arg0->z*proj[2][2])+proj[2][3]; - coord[3] = (arg0->x*proj[3][0])+(arg0->y*proj[3][1])+(arg0->z*proj[3][2])+proj[3][3]; - arg1->x = ((coord[0]/coord[3])*320.0f)+320.0f; - arg1->y = ((coord[1]/coord[3])*240.0f)+240.0f; - arg1->z = coord[2]/coord[3]; + CameraData *camera; + Mtx lookat; + Mtx44 proj; + float coord[4]; + arg0->y = -arg0->y; + camera = &Hu3DCamera[0]; + MTXLookAt(lookat, &camera->pos, &camera->up, &camera->target); + MTXMultVec(lookat, arg0, arg0); + MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far); + coord[0] = (arg0->x * proj[0][0]) + (arg0->y * proj[0][1]) + (arg0->z * proj[0][2]) + proj[0][3]; + coord[1] = (arg0->x * proj[1][0]) + (arg0->y * proj[1][1]) + (arg0->z * proj[1][2]) + proj[1][3]; + coord[2] = (arg0->x * proj[2][0]) + (arg0->y * proj[2][1]) + (arg0->z * proj[2][2]) + proj[2][3]; + coord[3] = (arg0->x * proj[3][0]) + (arg0->y * proj[3][1]) + (arg0->z * proj[3][2]) + proj[3][3]; + arg1->x = ((coord[0] / coord[3]) * 320.0f) + 320.0f; + arg1->y = ((coord[1] / coord[3]) * 240.0f) + 240.0f; + arg1->z = coord[2] / coord[3]; } void fn_2_1041C(void) { - s32 i; - lbl_2_bss_250 = HuSprAnimReadFile(0x200011); - lbl_2_bss_24C = HuSprAnimReadFile(0x200012); - lbl_2_bss_248 = HuSprAnimReadFile(0x200013); - lbl_2_bss_240 = HuSprAnimReadFile(0x200014); - lbl_2_bss_23C = HuSprAnimReadFile(0x200015); - lbl_2_bss_238 = HuSprAnimReadFile(0x200016); - HuSprAnimLock(lbl_2_bss_250); - HuSprAnimLock(lbl_2_bss_24C); - HuSprAnimLock(lbl_2_bss_248); - HuSprAnimLock(lbl_2_bss_240); - HuSprAnimLock(lbl_2_bss_23C); - HuSprAnimLock(lbl_2_bss_238); - lbl_2_bss_244 = HuSprAnimReadFile(0x200026); - HuSprAnimLock(lbl_2_bss_244); - lbl_2_bss_220[0][0] = lbl_2_bss_250; - lbl_2_bss_220[0][1] = lbl_2_bss_24C; - lbl_2_bss_220[0][2] = lbl_2_bss_248; - lbl_2_bss_220[1][0] = lbl_2_bss_240; - lbl_2_bss_220[1][1] = lbl_2_bss_23C; - lbl_2_bss_220[1][2] = lbl_2_bss_238; - for(i=0; i<4; i++) { - lbl_2_bss_136[i] = Hu3DModelCreateFile(0x200017); - Hu3DModelAttrSet(lbl_2_bss_136[i], 1); - Hu3DModelAttrSet(lbl_2_bss_136[i], 0x40000001); - Hu3DModelScaleSet(lbl_2_bss_136[i], 1.5f, 1.5f, 1.0f); - Hu3DModelLayerSet(lbl_2_bss_136[i], 2); - } + s32 i; + lbl_2_bss_250 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M401, 0x11)); + lbl_2_bss_24C = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M401, 0x12)); + lbl_2_bss_248 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M401, 0x13)); + lbl_2_bss_240 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M401, 0x14)); + lbl_2_bss_23C = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M401, 0x15)); + lbl_2_bss_238 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M401, 0x16)); + HuSprAnimLock(lbl_2_bss_250); + HuSprAnimLock(lbl_2_bss_24C); + HuSprAnimLock(lbl_2_bss_248); + HuSprAnimLock(lbl_2_bss_240); + HuSprAnimLock(lbl_2_bss_23C); + HuSprAnimLock(lbl_2_bss_238); + lbl_2_bss_244 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M401, 0x26)); + HuSprAnimLock(lbl_2_bss_244); + lbl_2_bss_220[0][0] = lbl_2_bss_250; + lbl_2_bss_220[0][1] = lbl_2_bss_24C; + lbl_2_bss_220[0][2] = lbl_2_bss_248; + lbl_2_bss_220[1][0] = lbl_2_bss_240; + lbl_2_bss_220[1][1] = lbl_2_bss_23C; + lbl_2_bss_220[1][2] = lbl_2_bss_238; + for (i = 0; i < 4; i++) { + lbl_2_bss_136[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x17)); + Hu3DModelAttrSet(lbl_2_bss_136[i], 1); + Hu3DModelAttrSet(lbl_2_bss_136[i], 0x40000001); + Hu3DModelScaleSet(lbl_2_bss_136[i], 1.5f, 1.5f, 1.0f); + Hu3DModelLayerSet(lbl_2_bss_136[i], 2); + } } void fn_2_10710(void) { - HuSprAnimKill(lbl_2_bss_250); - HuSprAnimKill(lbl_2_bss_24C); - HuSprAnimKill(lbl_2_bss_248); - HuSprAnimKill(lbl_2_bss_240); - HuSprAnimKill(lbl_2_bss_23C); - HuSprAnimKill(lbl_2_bss_238); - HuSprAnimKill(lbl_2_bss_244); + HuSprAnimKill(lbl_2_bss_250); + HuSprAnimKill(lbl_2_bss_24C); + HuSprAnimKill(lbl_2_bss_248); + HuSprAnimKill(lbl_2_bss_240); + HuSprAnimKill(lbl_2_bss_23C); + HuSprAnimKill(lbl_2_bss_238); + HuSprAnimKill(lbl_2_bss_244); } void fn_2_1079C(void) { - s32 i; - for(i=0; i<28; i++) { - lbl_2_bss_13E[i].unk0 = 0; - lbl_2_bss_13E[i].unk2[0] = Hu3DParticleCreate(lbl_2_bss_250, 80); - lbl_2_bss_13E[i].unk2[1] = Hu3DParticleCreate(lbl_2_bss_24C, 80); - lbl_2_bss_13E[i].unk2[2] = Hu3DParticleCreate(lbl_2_bss_248, 80); - Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[0], 1); - Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[1], 1); - Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[2], 1); - } - lbl_2_bss_134 = 0; + s32 i; + for (i = 0; i < 28; i++) { + lbl_2_bss_13E[i].unk0 = 0; + lbl_2_bss_13E[i].unk2[0] = Hu3DParticleCreate(lbl_2_bss_250, 80); + lbl_2_bss_13E[i].unk2[1] = Hu3DParticleCreate(lbl_2_bss_24C, 80); + lbl_2_bss_13E[i].unk2[2] = Hu3DParticleCreate(lbl_2_bss_248, 80); + Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[0], 1); + Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[1], 1); + Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[2], 1); + } + lbl_2_bss_134 = 0; } s16 fn_2_108C8(void) { - s32 i; - s32 j; - for(i=0; i<28; i++) { - if(!lbl_2_bss_13E[i].unk0) { - for(j=0; j<3; j++) { - Hu3DModelAttrReset(lbl_2_bss_13E[i].unk2[j], 1); - } - lbl_2_bss_13E[i].unk0 = 1; - return i; - } - } - return -1; + s32 i; + s32 j; + for (i = 0; i < 28; i++) { + if (!lbl_2_bss_13E[i].unk0) { + for (j = 0; j < 3; j++) { + Hu3DModelAttrReset(lbl_2_bss_13E[i].unk2[j], 1); + } + lbl_2_bss_13E[i].unk0 = 1; + return i; + } + } + return -1; } void fn_2_10980(s16 arg0) { - s32 i; - lbl_2_bss_13E[arg0].unk0 = 0; - for(i=0; i<3; i++) { - Hu3DModelAttrSet(lbl_2_bss_13E[arg0].unk2[i], 1); - } + s32 i; + lbl_2_bss_13E[arg0].unk0 = 0; + for (i = 0; i < 3; i++) { + Hu3DModelAttrSet(lbl_2_bss_13E[arg0].unk2[i], 1); + } } s16 fn_2_10A08(void) { - s16 temp_r31 = lbl_2_bss_136[lbl_2_bss_134]; - lbl_2_bss_134 = (lbl_2_bss_134+1)&0x3; - Hu3DModelTPLvlSet(temp_r31, 1.0f); - return temp_r31; + s16 temp_r31 = lbl_2_bss_136[lbl_2_bss_134]; + lbl_2_bss_134 = (lbl_2_bss_134 + 1) & 0x3; + Hu3DModelTPLvlSet(temp_r31, 1.0f); + return temp_r31; } void fn_2_113AC(omObjData *object); @@ -163,152 +162,152 @@ void fn_2_13B7C(ModelData *model, ParticleData *particle, Mtx matrix); omObjData *fn_2_10A88(Vec *arg0, s16 arg1) { - omObjData *temp_r31; - s32 temp_r30; - ParticleData *temp_r28; - UnkWork10A88 *temp_r27; - s16 temp_r24 = fn_2_108C8(); - if(temp_r24 < 0) { - return NULL; - } - { - s16 temp_r22 = -1; - if(arg1 == 0) { - temp_r22 = 1; - } - temp_r31 = omAddObjEx(HuPrcCurrentGet(), 0x514, 3, 0, temp_r22, NULL); - } - - - temp_r31->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkWork10A88), MEMORY_DEFAULT_NUM); - temp_r27 = temp_r31->data; - temp_r27->unk0 = *arg0; - for(temp_r30=0; temp_r30<3; temp_r30++) { - temp_r31->model[temp_r30] = lbl_2_bss_13E[temp_r24].unk2[temp_r30]; - temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; - Hu3DParticleCntSet(temp_r31->model[temp_r30], 0); - Hu3DParticleAnimModeSet(temp_r31->model[temp_r30], 0); - Hu3DModelLayerSet(temp_r31->model[temp_r30], 1); - if(arg1 == 1) { - temp_r31->unk10 = fn_2_10A08(); - Hu3DModelAttrReset(temp_r31->unk10, 1); - temp_r28->unk_44 = lbl_2_bss_220[1][temp_r30]; - temp_r27->unk1C = 1.0f; - temp_r31->work[3] = 45; - Hu3DModelTPLvlSet(temp_r31->unk10, temp_r27->unk1C); - } else { - temp_r28->unk_44 = lbl_2_bss_220[0][temp_r30]; - } - } - temp_r27->unk10 = 3; - temp_r27->unk12 = temp_r24; - //I am not table to force arg1 to get reloaded without deleting code or serious temporary register allocation issues - (void)arg1; - switch((temp_r27->unk18 = arg1)) { - case 1: - Hu3DModelPosSet(temp_r31->unk10, arg0->x, arg0->y, lbl_2_bss_60.z+arg0->z); + omObjData *temp_r31; + s32 temp_r30; + ParticleData *temp_r28; + UnkWork10A88 *temp_r27; + s16 temp_r24 = fn_2_108C8(); + if (temp_r24 < 0) { + return NULL; + } + { + s16 temp_r22 = -1; + if (arg1 == 0) { + temp_r22 = 1; + } + temp_r31 = omAddObjEx(HuPrcCurrentGet(), 0x514, 3, 0, temp_r22, NULL); + } - case 0: - temp_r31->trans.x = arg0->x; - temp_r31->trans.y = arg0->y; - temp_r31->trans.z = lbl_2_bss_60.z+arg0->z; - for(temp_r30=0; temp_r30<3; temp_r30++) { - Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_11FB4); - Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); - Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); - temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; - Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 0); - temp_r28->unk_00 = (temp_r30*4.5f)/3.0f; - temp_r28->unk_02 = 0; - temp_r28->unk_1C = temp_r31; - } - temp_r27->unk14 = 0; - temp_r31->func = fn_2_113AC; - break; - - case 2: - fn_2_A8A4(temp_r31, arg0->x, arg0->y, arg0->z); - for(temp_r30=0; temp_r30<3; temp_r30++) { - Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_126C8); - Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); - Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); - Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 0); - temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; - temp_r28->unk_00 = (temp_r30*2)+(frand() & 0x7); - temp_r28->unk_1C = temp_r31; - } - temp_r31->func = fn_2_11A68; - break; - - case 3: - for(temp_r30=0; temp_r30<3; temp_r30++) { - Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_126F4); - Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); - Hu3DModelPosSet(temp_r31->model[temp_r30], arg0->x, arg0->y, arg0->z); - Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 0); - temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; - temp_r28->unk_00 = (temp_r30*2)+(frand() & 0x7); - temp_r28->unk_1C = temp_r31; - } - temp_r31->func = fn_2_11B78; - break; - - case 4: - fn_2_A8A4(temp_r31, arg0->x, arg0->y, arg0->z); - for(temp_r30=0; temp_r30<3; temp_r30++) { - Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_12B30); - Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); - Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); - Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 0); - temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; - temp_r28->unk_00 = (temp_r30*2)+(frand() & 0x7); - temp_r28->unk_1C = temp_r31; - } - temp_r31->func = fn_2_11C30; - break; - - case 5: - fn_2_A8A4(temp_r31, arg0->x, arg0->y, arg0->z); - for(temp_r30=0; temp_r30<3; temp_r30++) { - Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_1301C); - Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); - Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); - Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 1); - temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; - temp_r28->unk_00 = (temp_r30*2)+(frand() & 0x7); - temp_r28->unk_1C = temp_r31; - } - temp_r31->func = fn_2_11D40; - break; - - case 6: - omSetTra(temp_r31, arg0->x, arg0->y, arg0->z); - for(temp_r30=0; temp_r30<3; temp_r30++) { - Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_1350C); - Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); - Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); - temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; - Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 1); - } - temp_r31->func = fn_2_11E44; - break; - - case 7: - omSetTra(temp_r31, arg0->x, arg0->y, arg0->z); - for(temp_r30=0; temp_r30<3; temp_r30++) { - Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_13B7C); - Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); - Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); - temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; - Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 1); - } - temp_r31->func = fn_2_11EFC; - break; - - default: - break; - } - return temp_r31; + temp_r31->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkWork10A88), MEMORY_DEFAULT_NUM); + temp_r27 = temp_r31->data; + temp_r27->unk0 = *arg0; + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + temp_r31->model[temp_r30] = lbl_2_bss_13E[temp_r24].unk2[temp_r30]; + temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; + Hu3DParticleCntSet(temp_r31->model[temp_r30], 0); + Hu3DParticleAnimModeSet(temp_r31->model[temp_r30], 0); + Hu3DModelLayerSet(temp_r31->model[temp_r30], 1); + if (arg1 == 1) { + temp_r31->unk10 = fn_2_10A08(); + Hu3DModelAttrReset(temp_r31->unk10, 1); + temp_r28->unk_44 = lbl_2_bss_220[1][temp_r30]; + temp_r27->unk1C = 1.0f; + temp_r31->work[3] = 45; + Hu3DModelTPLvlSet(temp_r31->unk10, temp_r27->unk1C); + } + else { + temp_r28->unk_44 = lbl_2_bss_220[0][temp_r30]; + } + } + temp_r27->unk10 = 3; + temp_r27->unk12 = temp_r24; + // I am not table to force arg1 to get reloaded without deleting code or serious temporary register allocation issues + (void)arg1; + switch ((temp_r27->unk18 = arg1)) { + case 1: + Hu3DModelPosSet(temp_r31->unk10, arg0->x, arg0->y, lbl_2_bss_60.z + arg0->z); + + case 0: + temp_r31->trans.x = arg0->x; + temp_r31->trans.y = arg0->y; + temp_r31->trans.z = lbl_2_bss_60.z + arg0->z; + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_11FB4); + Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); + Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); + temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; + Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 0); + temp_r28->unk_00 = (temp_r30 * 4.5f) / 3.0f; + temp_r28->unk_02 = 0; + temp_r28->unk_1C = temp_r31; + } + temp_r27->unk14 = 0; + temp_r31->func = fn_2_113AC; + break; + + case 2: + fn_2_A8A4(temp_r31, arg0->x, arg0->y, arg0->z); + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_126C8); + Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); + Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); + Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 0); + temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; + temp_r28->unk_00 = (temp_r30 * 2) + (frand() & 0x7); + temp_r28->unk_1C = temp_r31; + } + temp_r31->func = fn_2_11A68; + break; + + case 3: + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_126F4); + Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); + Hu3DModelPosSet(temp_r31->model[temp_r30], arg0->x, arg0->y, arg0->z); + Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 0); + temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; + temp_r28->unk_00 = (temp_r30 * 2) + (frand() & 0x7); + temp_r28->unk_1C = temp_r31; + } + temp_r31->func = fn_2_11B78; + break; + + case 4: + fn_2_A8A4(temp_r31, arg0->x, arg0->y, arg0->z); + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_12B30); + Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); + Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); + Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 0); + temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; + temp_r28->unk_00 = (temp_r30 * 2) + (frand() & 0x7); + temp_r28->unk_1C = temp_r31; + } + temp_r31->func = fn_2_11C30; + break; + + case 5: + fn_2_A8A4(temp_r31, arg0->x, arg0->y, arg0->z); + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_1301C); + Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); + Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); + Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 1); + temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; + temp_r28->unk_00 = (temp_r30 * 2) + (frand() & 0x7); + temp_r28->unk_1C = temp_r31; + } + temp_r31->func = fn_2_11D40; + break; + + case 6: + omSetTra(temp_r31, arg0->x, arg0->y, arg0->z); + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_1350C); + Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); + Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); + temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; + Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 1); + } + temp_r31->func = fn_2_11E44; + break; + + case 7: + omSetTra(temp_r31, arg0->x, arg0->y, arg0->z); + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + Hu3DParticleHookSet(temp_r31->model[temp_r30], fn_2_13B7C); + Hu3DParticleColSet(temp_r31->model[temp_r30], 255, 255, 255); + Hu3DModelPosSet(temp_r31->model[temp_r30], temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); + temp_r28 = Hu3DData[temp_r31->model[temp_r30]].unk_120; + Hu3DParticleBlendModeSet(temp_r31->model[temp_r30], 1); + } + temp_r31->func = fn_2_11EFC; + break; + + default: + break; + } + return temp_r31; } void fn_2_118B0(omObjData *object); @@ -316,653 +315,657 @@ void fn_2_123F8(ModelData *model, ParticleData *particle, Mtx matrix); void fn_2_113AC(omObjData *object) { - UnkWork10A88 *temp_r30; - s32 temp_r29; - M401WorkPlayer *temp_r28; - omObjData *temp_r27; - ParticleData *temp_r25; - s16 temp_r24; - temp_r30 = object->data; - temp_r30->unk0.z += (lbl_2_bss_50*0.5f); - object->trans.x = temp_r30->unk0.x; - object->trans.y = temp_r30->unk0.y; - object->trans.z = lbl_2_bss_60.z+temp_r30->unk0.z; - if(object->unk10 != 0) { - Hu3DModelPosSet(object->unk10, object->trans.x, object->trans.y, object->trans.z); - } - for(temp_r29=1; temp_r29<3; temp_r29++) { - Hu3DModelRotSet(object->model[temp_r29], object->rot.x, object->rot.y, object->rot.z); - Hu3DModelPosSet(object->model[temp_r29], object->trans.x, object->trans.y, object->trans.z); - } - for(temp_r29=0; temp_r29<4; temp_r29++) { - float dist; - temp_r27 = lbl_2_bss_118[temp_r29]; - temp_r28 = temp_r27->data; - if(temp_r28->unk78 != 0) { - continue; - } - dist = VECDistanceXYZ(&object->trans, &temp_r27->trans); - if(dist < 108.00001f) { - Hu3DMotionShiftSet(lbl_2_bss_118[temp_r29]->model[0], lbl_2_bss_118[temp_r29]->motion[6], 0, 10, 0); - HuAudFXPlay(1288); - if(temp_r30->unk18 == 0) { - HuAudFXPlay(9); - temp_r28->unk72++; - omVibrate(temp_r28->unk4, 12, 6, 6); - } else { - HuAudFXPlay(1292); - temp_r28->unk74 = 3; - temp_r28->unk72 += 3; - fn_2_169C(temp_r28->unk4); - omVibrate(temp_r28->unk4, 12, 4, 2); - } - temp_r28->unk84 = 50; - for(temp_r29=0; temp_r29<3; temp_r29++) { - temp_r25 = Hu3DData[object->model[temp_r29]].unk_120; - temp_r25->unk_02 = 0; - Hu3DParticleHookSet(object->model[temp_r29], fn_2_123F8); - } - object->func = fn_2_118B0; - break; - } - } - if(temp_r30->unk0.z > 850.0f) { - temp_r30->unk14 = 1; - } - if(object->unk10) { - if(object->work[3] != 0) { - object->work[3]--; - } else { - temp_r30->unk1C -= 0.033333335f; - if(temp_r30->unk1C < 0) { - temp_r30->unk1C = 0; - } - Hu3DModelTPLvlSet(object->unk10, temp_r30->unk1C); - } - } - if(temp_r30->unk10 == 0) { - if(object->unk10) { - Hu3DModelAttrSet(object->unk10, 1); - } - fn_2_10980(temp_r30->unk12); - omDelObjEx(HuPrcCurrentGet(), object); - } - + UnkWork10A88 *temp_r30; + s32 temp_r29; + M401WorkPlayer *temp_r28; + omObjData *temp_r27; + ParticleData *temp_r25; + s16 temp_r24; + temp_r30 = object->data; + temp_r30->unk0.z += (lbl_2_bss_50 * 0.5f); + object->trans.x = temp_r30->unk0.x; + object->trans.y = temp_r30->unk0.y; + object->trans.z = lbl_2_bss_60.z + temp_r30->unk0.z; + if (object->unk10 != 0) { + Hu3DModelPosSet(object->unk10, object->trans.x, object->trans.y, object->trans.z); + } + for (temp_r29 = 1; temp_r29 < 3; temp_r29++) { + Hu3DModelRotSet(object->model[temp_r29], object->rot.x, object->rot.y, object->rot.z); + Hu3DModelPosSet(object->model[temp_r29], object->trans.x, object->trans.y, object->trans.z); + } + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + float dist; + temp_r27 = lbl_2_bss_118[temp_r29]; + temp_r28 = temp_r27->data; + if (temp_r28->unk78 != 0) { + continue; + } + dist = VECDistanceXYZ(&object->trans, &temp_r27->trans); + if (dist < 108.00001f) { + Hu3DMotionShiftSet(lbl_2_bss_118[temp_r29]->model[0], lbl_2_bss_118[temp_r29]->motion[6], 0, 10, 0); + HuAudFXPlay(1288); + if (temp_r30->unk18 == 0) { + HuAudFXPlay(9); + temp_r28->unk72++; + omVibrate(temp_r28->unk4, 12, 6, 6); + } + else { + HuAudFXPlay(1292); + temp_r28->unk74 = 3; + temp_r28->unk72 += 3; + fn_2_169C(temp_r28->unk4); + omVibrate(temp_r28->unk4, 12, 4, 2); + } + temp_r28->unk84 = 50; + for (temp_r29 = 0; temp_r29 < 3; temp_r29++) { + temp_r25 = Hu3DData[object->model[temp_r29]].unk_120; + temp_r25->unk_02 = 0; + Hu3DParticleHookSet(object->model[temp_r29], fn_2_123F8); + } + object->func = fn_2_118B0; + break; + } + } + if (temp_r30->unk0.z > 850.0f) { + temp_r30->unk14 = 1; + } + if (object->unk10) { + if (object->work[3] != 0) { + object->work[3]--; + } + else { + temp_r30->unk1C -= 0.033333335f; + if (temp_r30->unk1C < 0) { + temp_r30->unk1C = 0; + } + Hu3DModelTPLvlSet(object->unk10, temp_r30->unk1C); + } + } + if (temp_r30->unk10 == 0) { + if (object->unk10) { + Hu3DModelAttrSet(object->unk10, 1); + } + fn_2_10980(temp_r30->unk12); + omDelObjEx(HuPrcCurrentGet(), object); + } } void fn_2_118B0(omObjData *object) { - UnkWork10A88 *temp_r30; - s32 temp_r29; - - temp_r30 = object->data; - temp_r30->unk0.z += (lbl_2_bss_50*0.5f); - object->trans.x = temp_r30->unk0.x; - object->trans.y = temp_r30->unk0.y; - object->trans.z = lbl_2_bss_60.z+temp_r30->unk0.z; - for(temp_r29=1; temp_r29<3; temp_r29++) { - Hu3DModelPosSet(object->model[temp_r29], object->trans.x, object->trans.y, object->trans.z); - } - if(object->unk10 != 0) { - Hu3DModelPosSet(object->unk10, object->trans.x, object->trans.y, object->trans.z); - temp_r30->unk1C -= 0.033333335f; - if(temp_r30->unk1C < 0) { - temp_r30->unk1C = 0; - } - Hu3DModelTPLvlSet(object->unk10, temp_r30->unk1C); - } - - - if(temp_r30->unk10 == 0) { - if(object->unk10) { - Hu3DModelAttrSet(object->unk10, 1); - } - fn_2_10980(temp_r30->unk12); - omDelObjEx(HuPrcCurrentGet(), object); - } + UnkWork10A88 *temp_r30; + s32 temp_r29; + + temp_r30 = object->data; + temp_r30->unk0.z += (lbl_2_bss_50 * 0.5f); + object->trans.x = temp_r30->unk0.x; + object->trans.y = temp_r30->unk0.y; + object->trans.z = lbl_2_bss_60.z + temp_r30->unk0.z; + for (temp_r29 = 1; temp_r29 < 3; temp_r29++) { + Hu3DModelPosSet(object->model[temp_r29], object->trans.x, object->trans.y, object->trans.z); + } + if (object->unk10 != 0) { + Hu3DModelPosSet(object->unk10, object->trans.x, object->trans.y, object->trans.z); + temp_r30->unk1C -= 0.033333335f; + if (temp_r30->unk1C < 0) { + temp_r30->unk1C = 0; + } + Hu3DModelTPLvlSet(object->unk10, temp_r30->unk1C); + } + + if (temp_r30->unk10 == 0) { + if (object->unk10) { + Hu3DModelAttrSet(object->unk10, 1); + } + fn_2_10980(temp_r30->unk12); + omDelObjEx(HuPrcCurrentGet(), object); + } } void fn_2_11A68(omObjData *object) { - s32 temp_r30; - UnkWork10A88 *temp_r29; - UnkWork10A88 *sp8; - temp_r29 = object->data; - sp8 = temp_r29->unkC->data; - omSetTra(object, 0, 0, 0); - for(temp_r30=1; temp_r30<3; temp_r30++) { - Hu3DModelPosSet(object->model[temp_r30], object->trans.x, object->trans.y, object->trans.z); - } - if(object->work[0] == 1) { - fn_2_10980(temp_r29->unk12); - omDelObjEx(HuPrcCurrentGet(), object); - } + s32 temp_r30; + UnkWork10A88 *temp_r29; + UnkWork10A88 *sp8; + temp_r29 = object->data; + sp8 = temp_r29->unkC->data; + omSetTra(object, 0, 0, 0); + for (temp_r30 = 1; temp_r30 < 3; temp_r30++) { + Hu3DModelPosSet(object->model[temp_r30], object->trans.x, object->trans.y, object->trans.z); + } + if (object->work[0] == 1) { + fn_2_10980(temp_r29->unk12); + omDelObjEx(HuPrcCurrentGet(), object); + } } - void fn_2_11B78(omObjData *object) { - UnkWork10A88 *temp_r29; - temp_r29 = object->data; - if(object->work[0] == 1) { - fn_2_10980(temp_r29->unk12); - omDelObjEx(HuPrcCurrentGet(), object); - } + UnkWork10A88 *temp_r29; + temp_r29 = object->data; + if (object->work[0] == 1) { + fn_2_10980(temp_r29->unk12); + omDelObjEx(HuPrcCurrentGet(), object); + } } void fn_2_11C30(omObjData *object) { - s32 temp_r30; - UnkWork10A88 *temp_r29; - UnkWork10A88 *sp8; - temp_r29 = object->data; - sp8 = temp_r29->unkC->data; - omSetTra(object, 0, 0, 0); - for(temp_r30=1; temp_r30<3; temp_r30++) { - Hu3DModelPosSet(object->model[temp_r30], object->trans.x, object->trans.y, object->trans.z); - } - if(object->work[1] == 1) { - fn_2_10980(temp_r29->unk12); - omDelObjEx(HuPrcCurrentGet(), object); - } + s32 temp_r30; + UnkWork10A88 *temp_r29; + UnkWork10A88 *sp8; + temp_r29 = object->data; + sp8 = temp_r29->unkC->data; + omSetTra(object, 0, 0, 0); + for (temp_r30 = 1; temp_r30 < 3; temp_r30++) { + Hu3DModelPosSet(object->model[temp_r30], object->trans.x, object->trans.y, object->trans.z); + } + if (object->work[1] == 1) { + fn_2_10980(temp_r29->unk12); + omDelObjEx(HuPrcCurrentGet(), object); + } } void fn_2_11D40(omObjData *object) { - s32 temp_r30; - UnkWork10A88 *temp_r29; - UnkWork10A88 *sp8; - temp_r29 = object->data; - sp8 = temp_r29->unkC->data; - omSetTra(object, temp_r29->unkC->trans.x, temp_r29->unkC->trans.y, temp_r29->unkC->trans.z); - for(temp_r30=1; temp_r30<3; temp_r30++) { - Hu3DModelPosSet(object->model[temp_r30], object->trans.x, object->trans.y, object->trans.z); - } - if(object->work[1] == 1) { - fn_2_10980(temp_r29->unk12); - omDelObjEx(HuPrcCurrentGet(), object); - } + s32 temp_r30; + UnkWork10A88 *temp_r29; + UnkWork10A88 *sp8; + temp_r29 = object->data; + sp8 = temp_r29->unkC->data; + omSetTra(object, temp_r29->unkC->trans.x, temp_r29->unkC->trans.y, temp_r29->unkC->trans.z); + for (temp_r30 = 1; temp_r30 < 3; temp_r30++) { + Hu3DModelPosSet(object->model[temp_r30], object->trans.x, object->trans.y, object->trans.z); + } + if (object->work[1] == 1) { + fn_2_10980(temp_r29->unk12); + omDelObjEx(HuPrcCurrentGet(), object); + } } void fn_2_11E44(omObjData *object) { - UnkWork10A88 *temp_r29; - temp_r29 = object->data; - if(object->work[0] == 1) { - fn_2_10980(temp_r29->unk12); - omDelObjEx(HuPrcCurrentGet(), object); - } + UnkWork10A88 *temp_r29; + temp_r29 = object->data; + if (object->work[0] == 1) { + fn_2_10980(temp_r29->unk12); + omDelObjEx(HuPrcCurrentGet(), object); + } } void fn_2_11EFC(omObjData *object) { - UnkWork10A88 *temp_r29; - temp_r29 = object->data; - if(object->work[0] == 1) { - fn_2_10980(temp_r29->unk12); - omDelObjEx(HuPrcCurrentGet(), object); - } + UnkWork10A88 *temp_r29; + temp_r29 = object->data; + if (object->work[0] == 1) { + fn_2_10980(temp_r29->unk12); + omDelObjEx(HuPrcCurrentGet(), object); + } } void fn_2_11FB4(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - float temp_f29; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - UnkWork10A88 *temp_r28; - s32 temp_r27; - temp_r28 = ((omObjData *)(particle->unk_1C))->data; - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - temp_f29 = 360.0f/(particle->unk_30/2); - temp_f31 = particle->unk_00; - for(temp_r29=0; temp_r29unk_30/2; temp_r29++, temp_r31++) { - temp_f30 = (0.1f*(rand8() % 50))+50; - temp_r31->unk2C = (0.1f*(rand8() % 41))+8.0f; - temp_r31->unk08.x = temp_f31; - temp_r31->unk08.y = temp_f30; - temp_r31->unk08.z = 0; - temp_r31->unk14.x = (10.0f/255.0f)*((u8)frand()); - temp_r31->unk40.a = 180; - temp_f31 += temp_f29; - temp_r31->unk34.z = 0; - } - for(temp_r29=0; temp_r29unk_30/2; temp_r29++, temp_r31++) { - temp_r31->unk2C = 0; - temp_r31->unk40.a = 0; - } - } - temp_r31 = particle->unk_48; - temp_r27 = 0; - for(temp_r29=0; temp_r29unk_30/2; temp_r29++, temp_r31++) { - if(temp_r31->unk40.a != 0) { - temp_r27++; - temp_f30 = (6.0*sind(temp_r31->unk08.z))+temp_r31->unk08.y; - temp_r31->unk34.x = temp_f30*cosd(temp_r31->unk08.x); - temp_r31->unk34.y = temp_f30*sind(temp_r31->unk08.x); - temp_r31->unk08.z += temp_r31->unk14.x; - if(temp_r31->unk08.z >= 360.0f) { - temp_r31->unk08.z -= 360.0f; - } - temp_f31 = temp_r31->unk40.a; - if(temp_r28->unk14) { - temp_f31 -= 3.0f; - if(temp_f31 < 0.0f) { - temp_f31 = 0.0f; - } - } - temp_r31->unk40.a = temp_f31; - } - } - if(!temp_r27) { - temp_r28->unk10--; - } + float temp_f31; + float temp_f30; + float temp_f29; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + UnkWork10A88 *temp_r28; + s32 temp_r27; + temp_r28 = ((omObjData *)(particle->unk_1C))->data; + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + temp_f29 = 360.0f / (particle->unk_30 / 2); + temp_f31 = particle->unk_00; + for (temp_r29 = 0; temp_r29 < particle->unk_30 / 2; temp_r29++, temp_r31++) { + temp_f30 = (0.1f * (rand8() % 50)) + 50; + temp_r31->unk2C = (0.1f * (rand8() % 41)) + 8.0f; + temp_r31->unk08.x = temp_f31; + temp_r31->unk08.y = temp_f30; + temp_r31->unk08.z = 0; + temp_r31->unk14.x = (10.0f / 255.0f) * ((u8)frand()); + temp_r31->unk40.a = 180; + temp_f31 += temp_f29; + temp_r31->unk34.z = 0; + } + for (temp_r29 = 0; temp_r29 < particle->unk_30 / 2; temp_r29++, temp_r31++) { + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + } + } + temp_r31 = particle->unk_48; + temp_r27 = 0; + for (temp_r29 = 0; temp_r29 < particle->unk_30 / 2; temp_r29++, temp_r31++) { + if (temp_r31->unk40.a != 0) { + temp_r27++; + temp_f30 = (6.0 * sind(temp_r31->unk08.z)) + temp_r31->unk08.y; + temp_r31->unk34.x = temp_f30 * cosd(temp_r31->unk08.x); + temp_r31->unk34.y = temp_f30 * sind(temp_r31->unk08.x); + temp_r31->unk08.z += temp_r31->unk14.x; + if (temp_r31->unk08.z >= 360.0f) { + temp_r31->unk08.z -= 360.0f; + } + temp_f31 = temp_r31->unk40.a; + if (temp_r28->unk14) { + temp_f31 -= 3.0f; + if (temp_f31 < 0.0f) { + temp_f31 = 0.0f; + } + } + temp_r31->unk40.a = temp_f31; + } + } + if (!temp_r27) { + temp_r28->unk10--; + } } void fn_2_123F8(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s32 temp_r28; - UnkWork10A88 *temp_r27; - if(!particle->unk_02) { - particle->unk_02 = 1; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30/2; temp_r29++, temp_r31++) { - temp_r31->unk08.x = temp_r31->unk34.x; - temp_r31->unk14.x = 0; - temp_r31->unk14.y = 5.0f+((35.0f/255.0f)*((u8)frand())); - temp_r31->unk14.z = 8.0f+((8.0f/255.0f)*((u8)frand())); - temp_r31->unk24 = 3.0f+((5.0f/255.0f)*((u8)frand())); - } - } - temp_r31 = particle->unk_48; - temp_r28 = 0; - for(temp_r29=0; temp_r29unk_30/2; temp_r29++, temp_r31++) { - if(temp_r31->unk40.a != 0) { - temp_r28++; - temp_r31->unk34.x = temp_r31->unk08.x+(temp_r31->unk14.z*sind(temp_r31->unk14.x)); - temp_r31->unk14.x += temp_r31->unk14.y; - if(temp_r31->unk14.x >= 360.0f) { - temp_r31->unk14.x -= 360.0f; - } - temp_r31->unk34.y += temp_r31->unk24; - temp_f31 = temp_r31->unk40.a; - temp_f31 -= 3.0f; - if(temp_f31 < 0.0f) { - temp_f31 = 0.0f; - } - temp_r31->unk40.a = temp_f31; - } - } - if(temp_r28 == 0) { - UnkWork10A88 *temp_r27 = ((omObjData *)(particle->unk_1C))->data; - temp_r27->unk10--; - } + float temp_f31; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s32 temp_r28; + UnkWork10A88 *temp_r27; + if (!particle->unk_02) { + particle->unk_02 = 1; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30 / 2; temp_r29++, temp_r31++) { + temp_r31->unk08.x = temp_r31->unk34.x; + temp_r31->unk14.x = 0; + temp_r31->unk14.y = 5.0f + ((35.0f / 255.0f) * ((u8)frand())); + temp_r31->unk14.z = 8.0f + ((8.0f / 255.0f) * ((u8)frand())); + temp_r31->unk24 = 3.0f + ((5.0f / 255.0f) * ((u8)frand())); + } + } + temp_r31 = particle->unk_48; + temp_r28 = 0; + for (temp_r29 = 0; temp_r29 < particle->unk_30 / 2; temp_r29++, temp_r31++) { + if (temp_r31->unk40.a != 0) { + temp_r28++; + temp_r31->unk34.x = temp_r31->unk08.x + (temp_r31->unk14.z * sind(temp_r31->unk14.x)); + temp_r31->unk14.x += temp_r31->unk14.y; + if (temp_r31->unk14.x >= 360.0f) { + temp_r31->unk14.x -= 360.0f; + } + temp_r31->unk34.y += temp_r31->unk24; + temp_f31 = temp_r31->unk40.a; + temp_f31 -= 3.0f; + if (temp_f31 < 0.0f) { + temp_f31 = 0.0f; + } + temp_r31->unk40.a = temp_f31; + } + } + if (temp_r28 == 0) { + UnkWork10A88 *temp_r27 = ((omObjData *)(particle->unk_1C))->data; + temp_r27->unk10--; + } } -//Here exclusively to match fn_2_126C8 +// Here exclusively to match fn_2_126C8 static inline void DummyInline(s32 arg0) { - s32 temp1, temp2, temp3, temp4, temp5; - if(arg0 != 0) { - temp1 = 1; - temp2 = temp1*2; - temp3 = temp2*3; - temp4 = temp3*4; - temp5 = temp4*5; - temp5 = temp5/2; - } + s32 temp1, temp2, temp3, temp4, temp5; + if (arg0 != 0) { + temp1 = 1; + temp2 = temp1 * 2; + temp3 = temp2 * 3; + temp4 = temp3 * 4; + temp5 = temp4 * 5; + temp5 = temp5 / 2; + } } void fn_2_126C8(ModelData *model, ParticleData *particle, Mtx matrix) { - DummyInline(0); + DummyInline(0); } void fn_2_126F4(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s32 temp_r28; - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk40.a = 0; - temp_r31->unk2C = 0; - } - particle->unk_00 = 0; - } - if(particle->unk_00 == 0) { - for(temp_r29=0; temp_r29<2; temp_r29++) { - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk40.a == 0) { - break; - } - } - if(temp_r28 == particle->unk_30) { - continue; - } - temp_r31->unk08.x = -50.0f+(0.3921569f*((u8)frand())); - temp_r31->unk08.y = 0.058823533f*((u8)frand()); - temp_r31->unk14.x = (90.0f/255.0f)*((u8)frand()); - temp_r31->unk14.y = 5.0f+(0.098039225f*((u8)frand())); - temp_r31->unk14.z = (float)(frand() % 10) + 8.0f; - temp_r31->unk34.z = -5.0f+((11.0f/255.0f)*((u8)frand())); - temp_r31->unk34.y = (float)(frand() % 31) + -5.0f; - temp_r31->unk2C = temp_r31->unk08.y+35.0f; - temp_r31->unk40.a = 210; - temp_r31->unk08.y = (0.2*temp_r31->unk08.y)+5.0; - particle->unk_00 = (frand()%10)+10; - } - } else { - particle->unk_00--; - } - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk40.a == 0) { - continue; - } - temp_r31->unk34.x = (temp_r31->unk14.z*sind(temp_r31->unk14.x))+temp_r31->unk08.x; - temp_r31->unk14.x += temp_r31->unk14.y; - if(temp_r31->unk14.x >= 360.0f) { - temp_r31->unk14.x -= 360.0f; - } - temp_r31->unk34.y += temp_r31->unk08.y; - temp_r31->unk40.a--; - } + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s32 temp_r28; + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk40.a = 0; + temp_r31->unk2C = 0; + } + particle->unk_00 = 0; + } + if (particle->unk_00 == 0) { + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk40.a == 0) { + break; + } + } + if (temp_r28 == particle->unk_30) { + continue; + } + temp_r31->unk08.x = -50.0f + (0.3921569f * ((u8)frand())); + temp_r31->unk08.y = 0.058823533f * ((u8)frand()); + temp_r31->unk14.x = (90.0f / 255.0f) * ((u8)frand()); + temp_r31->unk14.y = 5.0f + (0.098039225f * ((u8)frand())); + temp_r31->unk14.z = (float)(frand() % 10) + 8.0f; + temp_r31->unk34.z = -5.0f + ((11.0f / 255.0f) * ((u8)frand())); + temp_r31->unk34.y = (float)(frand() % 31) + -5.0f; + temp_r31->unk2C = temp_r31->unk08.y + 35.0f; + temp_r31->unk40.a = 210; + temp_r31->unk08.y = (0.2 * temp_r31->unk08.y) + 5.0; + particle->unk_00 = (frand() % 10) + 10; + } + } + else { + particle->unk_00--; + } + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk40.a == 0) { + continue; + } + temp_r31->unk34.x = (temp_r31->unk14.z * sind(temp_r31->unk14.x)) + temp_r31->unk08.x; + temp_r31->unk14.x += temp_r31->unk14.y; + if (temp_r31->unk14.x >= 360.0f) { + temp_r31->unk14.x -= 360.0f; + } + temp_r31->unk34.y += temp_r31->unk08.y; + temp_r31->unk40.a--; + } } void fn_2_12B30(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *temp_r31; - s32 temp_r29; - M401WorkPlayer *temp_r28; - omObjData *temp_r27; - s32 temp_r26; - s32 temp_r25; - UnkWork10A88 *temp_r24; - temp_r27 = particle->unk_1C; - temp_r24 = ((omObjData *)(particle->unk_1C))->data; - temp_r28 = temp_r24->unkC->data; - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk40.a = 0; - temp_r31->unk2C = 0; - temp_r31->unk20 = 0; - } - particle->unk_00 = 0; - } - if(particle->unk_00 == 0 && temp_r27->work[0] == 0) { - for(temp_r29=0; temp_r29<10; temp_r29++) { - temp_r31 = particle->unk_48; - for(temp_r26=0; temp_r26unk_30; temp_r26++, temp_r31++) { - if(temp_r31->unk20 == 0) { - break; - } - } - if(temp_r26 == particle->unk_30) { - continue; - } - temp_r31->unk08.x = (((40.0f/255.0f)*((u8)frand()))+(temp_r28->unk18.x-20.0f)); - temp_r31->unk08.y = (frand() % 5)+3; - temp_r31->unk14.x = ((90.0f/255.0f)*((u8)frand())); - temp_r31->unk14.y = 5.0f+((45.0f/255.0f)*((u8)frand())); - temp_r31->unk14.z = 2.0f+(0.011764707f*((u8)frand())); - temp_r31->unk40.a = 180; - temp_r31->unk34.z = ((0.121568635f*((u8)frand()))+(temp_r28->unk18.z+70.0f)); - temp_r31->unk34.y = ((0.20000002f*((u8)frand()))+(temp_r28->unk18.y-25.0f)); - particle->unk_00 = (frand()%6)+5; - temp_r31->unk20 = 1; - temp_r31->unk2C = 11; - } - } else { - particle->unk_00--; - } - temp_r31 = particle->unk_48; - temp_r25 = 0; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk40.a != 0) { - float temp_f31; - temp_r31->unk34.x = (temp_r31->unk14.z*sind(temp_r31->unk14.x))+temp_r31->unk08.x; - temp_r31->unk14.x += temp_r31->unk14.y; - if(temp_r31->unk14.x >= 360.0f) { - temp_r31->unk14.x -= 360.0f; - } - temp_r31->unk34.y += 3.0f; - temp_f31 = temp_r31->unk40.a; - temp_f31 -= temp_r31->unk08.y; - if(temp_f31 < 0.0f) { - temp_f31 = 0.0f; - temp_r31->unk20 = 0; - } - - temp_r31->unk40.a = temp_f31; - temp_r25++; - } - } - if(temp_r25 == 0 && temp_r27->work[0] == 1) { - temp_r27->work[1] = 1; - } + HsfanimStruct01 *temp_r31; + s32 temp_r29; + M401WorkPlayer *temp_r28; + omObjData *temp_r27; + s32 temp_r26; + s32 temp_r25; + UnkWork10A88 *temp_r24; + temp_r27 = particle->unk_1C; + temp_r24 = ((omObjData *)(particle->unk_1C))->data; + temp_r28 = temp_r24->unkC->data; + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk40.a = 0; + temp_r31->unk2C = 0; + temp_r31->unk20 = 0; + } + particle->unk_00 = 0; + } + if (particle->unk_00 == 0 && temp_r27->work[0] == 0) { + for (temp_r29 = 0; temp_r29 < 10; temp_r29++) { + temp_r31 = particle->unk_48; + for (temp_r26 = 0; temp_r26 < particle->unk_30; temp_r26++, temp_r31++) { + if (temp_r31->unk20 == 0) { + break; + } + } + if (temp_r26 == particle->unk_30) { + continue; + } + temp_r31->unk08.x = (((40.0f / 255.0f) * ((u8)frand())) + (temp_r28->unk18.x - 20.0f)); + temp_r31->unk08.y = (frand() % 5) + 3; + temp_r31->unk14.x = ((90.0f / 255.0f) * ((u8)frand())); + temp_r31->unk14.y = 5.0f + ((45.0f / 255.0f) * ((u8)frand())); + temp_r31->unk14.z = 2.0f + (0.011764707f * ((u8)frand())); + temp_r31->unk40.a = 180; + temp_r31->unk34.z = ((0.121568635f * ((u8)frand())) + (temp_r28->unk18.z + 70.0f)); + temp_r31->unk34.y = ((0.20000002f * ((u8)frand())) + (temp_r28->unk18.y - 25.0f)); + particle->unk_00 = (frand() % 6) + 5; + temp_r31->unk20 = 1; + temp_r31->unk2C = 11; + } + } + else { + particle->unk_00--; + } + temp_r31 = particle->unk_48; + temp_r25 = 0; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk40.a != 0) { + float temp_f31; + temp_r31->unk34.x = (temp_r31->unk14.z * sind(temp_r31->unk14.x)) + temp_r31->unk08.x; + temp_r31->unk14.x += temp_r31->unk14.y; + if (temp_r31->unk14.x >= 360.0f) { + temp_r31->unk14.x -= 360.0f; + } + temp_r31->unk34.y += 3.0f; + temp_f31 = temp_r31->unk40.a; + temp_f31 -= temp_r31->unk08.y; + if (temp_f31 < 0.0f) { + temp_f31 = 0.0f; + temp_r31->unk20 = 0; + } + + temp_r31->unk40.a = temp_f31; + temp_r25++; + } + } + if (temp_r25 == 0 && temp_r27->work[0] == 1) { + temp_r27->work[1] = 1; + } } void fn_2_1301C(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *temp_r31; - s32 temp_r29; - M401WorkPlayer *temp_r28; - omObjData *temp_r27; - s32 temp_r26; - s32 temp_r25; - UnkWork10A88 *temp_r24; - temp_r27 = particle->unk_1C; - temp_r24 = (temp_r27)->data; - temp_r28 = temp_r24->unkC->data; - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk40.a = 0; - temp_r31->unk2C = 0; - temp_r31->unk20 = 0; - } - particle->unk_00 = 0; - } - if(particle->unk_00 == 0 && temp_r27->work[0] == 0) { - for(temp_r29=0; temp_r29<10; temp_r29++) { - temp_r31 = particle->unk_48; - for(temp_r26=0; temp_r26unk_30; temp_r26++, temp_r31++) { - if(temp_r31->unk20 == 0) { - break; - } - } - if(temp_r26 == particle->unk_30) { - continue; - } - temp_r31->unk08.x = (((80.0f/255.0f)*((u8)frand()))+(-40.0f)); - temp_r31->unk08.y = (frand() % 10)+7; - temp_r31->unk14.x = ((90.0f/255.0f)*((u8)frand())); - temp_r31->unk14.y = 5.0f+((45.0f/255.0f)*((u8)frand())); - temp_r31->unk14.z = 2.0f+(frand() % 3); - temp_r31->unk40.a = 180; - temp_r31->unk34.z = ((0.121568635f*((u8)frand()))+(85.0f)); - temp_r31->unk34.y = ((0.2392157f*((u8)frand()))+(-30.0f)); - particle->unk_00 = (frand()%3)+3; - temp_r31->unk20 = 1; - temp_r31->unk2C = 11; - } - } else { - particle->unk_00--; - } - temp_r31 = particle->unk_48; - temp_r25 = 0; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk40.a != 0) { - float temp_f31; - temp_r31->unk34.x = (temp_r31->unk14.z*sind(temp_r31->unk14.x))+temp_r31->unk08.x; - temp_r31->unk14.x += temp_r31->unk14.y; - if(temp_r31->unk14.x >= 360.0f) { - temp_r31->unk14.x -= 360.0f; - } - temp_r31->unk34.y += 3.0f; - temp_r31->unk34.z -= 1.0f; - temp_f31 = temp_r31->unk40.a; - temp_f31 -= temp_r31->unk08.y; - if(temp_f31 < 0.0f) { - temp_f31 = 0.0f; - temp_r31->unk20 = 0; - } - - temp_r31->unk40.a = temp_f31; - temp_r25++; - } - } - if(temp_r25 == 0 && temp_r27->work[0] == 1) { - temp_r27->work[1] = 1; - } + HsfanimStruct01 *temp_r31; + s32 temp_r29; + M401WorkPlayer *temp_r28; + omObjData *temp_r27; + s32 temp_r26; + s32 temp_r25; + UnkWork10A88 *temp_r24; + temp_r27 = particle->unk_1C; + temp_r24 = (temp_r27)->data; + temp_r28 = temp_r24->unkC->data; + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk40.a = 0; + temp_r31->unk2C = 0; + temp_r31->unk20 = 0; + } + particle->unk_00 = 0; + } + if (particle->unk_00 == 0 && temp_r27->work[0] == 0) { + for (temp_r29 = 0; temp_r29 < 10; temp_r29++) { + temp_r31 = particle->unk_48; + for (temp_r26 = 0; temp_r26 < particle->unk_30; temp_r26++, temp_r31++) { + if (temp_r31->unk20 == 0) { + break; + } + } + if (temp_r26 == particle->unk_30) { + continue; + } + temp_r31->unk08.x = (((80.0f / 255.0f) * ((u8)frand())) + (-40.0f)); + temp_r31->unk08.y = (frand() % 10) + 7; + temp_r31->unk14.x = ((90.0f / 255.0f) * ((u8)frand())); + temp_r31->unk14.y = 5.0f + ((45.0f / 255.0f) * ((u8)frand())); + temp_r31->unk14.z = 2.0f + (frand() % 3); + temp_r31->unk40.a = 180; + temp_r31->unk34.z = ((0.121568635f * ((u8)frand())) + (85.0f)); + temp_r31->unk34.y = ((0.2392157f * ((u8)frand())) + (-30.0f)); + particle->unk_00 = (frand() % 3) + 3; + temp_r31->unk20 = 1; + temp_r31->unk2C = 11; + } + } + else { + particle->unk_00--; + } + temp_r31 = particle->unk_48; + temp_r25 = 0; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk40.a != 0) { + float temp_f31; + temp_r31->unk34.x = (temp_r31->unk14.z * sind(temp_r31->unk14.x)) + temp_r31->unk08.x; + temp_r31->unk14.x += temp_r31->unk14.y; + if (temp_r31->unk14.x >= 360.0f) { + temp_r31->unk14.x -= 360.0f; + } + temp_r31->unk34.y += 3.0f; + temp_r31->unk34.z -= 1.0f; + temp_f31 = temp_r31->unk40.a; + temp_f31 -= temp_r31->unk08.y; + if (temp_f31 < 0.0f) { + temp_f31 = 0.0f; + temp_r31->unk20 = 0; + } + + temp_r31->unk40.a = temp_f31; + temp_r25++; + } + } + if (temp_r25 == 0 && temp_r27->work[0] == 1) { + temp_r27->work[1] = 1; + } } void fn_2_1350C(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s32 temp_r28; - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk2C = 0; - } - particle->unk_1C = (void *)1; - particle->unk_02 = 0; - particle->unk_00 = 0; - } - if(particle->unk_00 == 0) { - for(temp_r29=0; temp_r29<16; temp_r29++) { - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk2C == 0) { - break; - } - } - if(temp_r28 == particle->unk_30) { - continue; - } - temp_f30 = (360.0f/255.0f)*((u8)frand()); - temp_r31->unk20 = 45*sind(temp_f30); - temp_r31->unk28 = 45*cosd(temp_f30); - temp_r31->unk24 = 0; - temp_f28 = 0.098039225f*((u8)frand())+50.0f; - temp_f29 = (2.0f/255.0f)*((u8)frand())+2.5f; - temp_r31->unk08.x = temp_f29*sind(temp_f30)*cosd(temp_f28); - temp_r31->unk08.y = 0.8f*(temp_f29*sind(temp_f28)); - temp_r31->unk08.z = temp_f29*cosd(temp_f30)*cosd(temp_f28); - temp_r31->unk14.x = 1; - temp_r31->unk14.y = 255; - temp_r31->unk2C = (4.0f/255.0f)*((u8)frand())+3.0f; - temp_r31->unk40.r = (155.0f/255.0f)*((u8)frand())+100.0f; - temp_r31->unk40.g = 0.21568629f*((u8)frand())+200.0f; - temp_r31->unk40.b = 255; - temp_r31->unk40.a = temp_r31->unk14.y; - } - particle->unk_00 = 0.058823533f*((u8)frand())+30.0f; - } else { - particle->unk_00--; - } - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk2C != 0) { - temp_f31 = temp_r31->unk14.x; - temp_r31->unk34.x = (temp_r31->unk08.x*temp_f31)+temp_r31->unk20; - temp_r31->unk34.z = (temp_r31->unk08.z*temp_f31)+temp_r31->unk28; - temp_r31->unk34.y = ((temp_r31->unk08.y*temp_f31)+temp_r31->unk24)-(0.2*temp_f31*temp_f31); - temp_r31->unk14.y -= 3.5f; - temp_r31->unk40.a = temp_r31->unk14.y; - if(temp_r31->unk2C < 0 || temp_r31->unk14.y < 10.0f || temp_r31->unk34.y <= 0.0f) { - temp_r31->unk2C = 0; - particle->unk_02++; - } - - temp_r31->unk14.x += 0.7f; - } - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s32 temp_r28; + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk2C = 0; + } + particle->unk_1C = (void *)1; + particle->unk_02 = 0; + particle->unk_00 = 0; + } + if (particle->unk_00 == 0) { + for (temp_r29 = 0; temp_r29 < 16; temp_r29++) { + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk2C == 0) { + break; + } + } + if (temp_r28 == particle->unk_30) { + continue; + } + temp_f30 = (360.0f / 255.0f) * ((u8)frand()); + temp_r31->unk20 = 45 * sind(temp_f30); + temp_r31->unk28 = 45 * cosd(temp_f30); + temp_r31->unk24 = 0; + temp_f28 = 0.098039225f * ((u8)frand()) + 50.0f; + temp_f29 = (2.0f / 255.0f) * ((u8)frand()) + 2.5f; + temp_r31->unk08.x = temp_f29 * sind(temp_f30) * cosd(temp_f28); + temp_r31->unk08.y = 0.8f * (temp_f29 * sind(temp_f28)); + temp_r31->unk08.z = temp_f29 * cosd(temp_f30) * cosd(temp_f28); + temp_r31->unk14.x = 1; + temp_r31->unk14.y = 255; + temp_r31->unk2C = (4.0f / 255.0f) * ((u8)frand()) + 3.0f; + temp_r31->unk40.r = (155.0f / 255.0f) * ((u8)frand()) + 100.0f; + temp_r31->unk40.g = 0.21568629f * ((u8)frand()) + 200.0f; + temp_r31->unk40.b = 255; + temp_r31->unk40.a = temp_r31->unk14.y; + } + particle->unk_00 = 0.058823533f * ((u8)frand()) + 30.0f; + } + else { + particle->unk_00--; + } + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk2C != 0) { + temp_f31 = temp_r31->unk14.x; + temp_r31->unk34.x = (temp_r31->unk08.x * temp_f31) + temp_r31->unk20; + temp_r31->unk34.z = (temp_r31->unk08.z * temp_f31) + temp_r31->unk28; + temp_r31->unk34.y = ((temp_r31->unk08.y * temp_f31) + temp_r31->unk24) - (0.2 * temp_f31 * temp_f31); + temp_r31->unk14.y -= 3.5f; + temp_r31->unk40.a = temp_r31->unk14.y; + if (temp_r31->unk2C < 0 || temp_r31->unk14.y < 10.0f || temp_r31->unk34.y <= 0.0f) { + temp_r31->unk2C = 0; + particle->unk_02++; + } + + temp_r31->unk14.x += 0.7f; + } + } } void fn_2_13B7C(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s32 temp_r28; - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk2C = 0; - } - particle->unk_1C = (void *)1; - particle->unk_02 = 0; - particle->unk_00 = 0; - } - if(particle->unk_1C) { - for(temp_r29=0; temp_r29<20; temp_r29++) { - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk2C == 0) { - break; - } - } - if(temp_r28 != particle->unk_30) { - temp_f30 = (360.0f/255.0f)*((u8)frand()); - temp_r31->unk20 = 40*sind(temp_f30); - temp_r31->unk28 = 40*cosd(temp_f30); - temp_r31->unk24 = 0; - temp_f28 = (20.0f/255.0f)*((u8)frand())+70.0f; - temp_f29 = (4.0f/255.0f)*((u8)frand())+5.0f; - temp_r31->unk08.x = temp_f29*sind(temp_f30)*cosd(temp_f28); - temp_r31->unk08.y = temp_f29*sind(temp_f28); - temp_r31->unk08.z = temp_f29*cosd(temp_f30)*cosd(temp_f28); - temp_r31->unk14.x = 1; - temp_r31->unk14.y = 255; - temp_r31->unk2C = (4.0f/255.0f)*((u8)frand())+5.0f; - temp_r31->unk40.r = (155.0f/255.0f)*((u8)frand())+100.0f; - temp_r31->unk40.g = 0.21568629f*((u8)frand())+200.0f; - temp_r31->unk40.b = 255; - temp_r31->unk40.a = temp_r31->unk14.y; - } else { - particle->unk_1C = NULL; - break; - } - } - } - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk2C != 0) { - temp_f31 = temp_r31->unk14.x; - temp_r31->unk34.x = (temp_r31->unk08.x*temp_f31)+temp_r31->unk20; - temp_r31->unk34.z = (temp_r31->unk08.z*temp_f31)+temp_r31->unk28; - temp_r31->unk34.y = ((temp_r31->unk08.y*temp_f31)+temp_r31->unk24)-(0.2*temp_f31*temp_f31); - temp_r31->unk14.y -= 3.5f; - temp_r31->unk40.a = temp_r31->unk14.y; - if(temp_r31->unk2C < 0 || temp_r31->unk14.y < 10.0f || temp_r31->unk34.y <= 0.0f) { - temp_r31->unk2C = 0; - particle->unk_02++; - } - temp_r31->unk14.x += 1.0f; - } - } - if(particle->unk_02 >= particle->unk_30 && particle->unk_1C == NULL) { - particle->unk_00 = 1; - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s32 temp_r28; + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk2C = 0; + } + particle->unk_1C = (void *)1; + particle->unk_02 = 0; + particle->unk_00 = 0; + } + if (particle->unk_1C) { + for (temp_r29 = 0; temp_r29 < 20; temp_r29++) { + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk2C == 0) { + break; + } + } + if (temp_r28 != particle->unk_30) { + temp_f30 = (360.0f / 255.0f) * ((u8)frand()); + temp_r31->unk20 = 40 * sind(temp_f30); + temp_r31->unk28 = 40 * cosd(temp_f30); + temp_r31->unk24 = 0; + temp_f28 = (20.0f / 255.0f) * ((u8)frand()) + 70.0f; + temp_f29 = (4.0f / 255.0f) * ((u8)frand()) + 5.0f; + temp_r31->unk08.x = temp_f29 * sind(temp_f30) * cosd(temp_f28); + temp_r31->unk08.y = temp_f29 * sind(temp_f28); + temp_r31->unk08.z = temp_f29 * cosd(temp_f30) * cosd(temp_f28); + temp_r31->unk14.x = 1; + temp_r31->unk14.y = 255; + temp_r31->unk2C = (4.0f / 255.0f) * ((u8)frand()) + 5.0f; + temp_r31->unk40.r = (155.0f / 255.0f) * ((u8)frand()) + 100.0f; + temp_r31->unk40.g = 0.21568629f * ((u8)frand()) + 200.0f; + temp_r31->unk40.b = 255; + temp_r31->unk40.a = temp_r31->unk14.y; + } + else { + particle->unk_1C = NULL; + break; + } + } + } + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk2C != 0) { + temp_f31 = temp_r31->unk14.x; + temp_r31->unk34.x = (temp_r31->unk08.x * temp_f31) + temp_r31->unk20; + temp_r31->unk34.z = (temp_r31->unk08.z * temp_f31) + temp_r31->unk28; + temp_r31->unk34.y = ((temp_r31->unk08.y * temp_f31) + temp_r31->unk24) - (0.2 * temp_f31 * temp_f31); + temp_r31->unk14.y -= 3.5f; + temp_r31->unk40.a = temp_r31->unk14.y; + if (temp_r31->unk2C < 0 || temp_r31->unk14.y < 10.0f || temp_r31->unk34.y <= 0.0f) { + temp_r31->unk2C = 0; + particle->unk_02++; + } + temp_r31->unk14.x += 1.0f; + } + } + if (particle->unk_02 >= particle->unk_30 && particle->unk_1C == NULL) { + particle->unk_00 = 1; + } } void fn_2_142D0(omObjData *object); @@ -970,72 +973,70 @@ void fn_2_142D4(ModelData *model, ParticleData *particle, Mtx matrix); omObjData *fn_2_141B0(void) { - omObjData *object = omAddObjEx(HuPrcCurrentGet(), 1300, 5, 0, -1, fn_2_142D0); - ParticleData *particle; - omSetStatBit(object, 0x100); - object->model[0] = Hu3DParticleCreate(lbl_2_bss_244, 200); - Hu3DParticleHookSet(object->model[0], fn_2_142D4); - Hu3DParticleColSet(object->model[0], 255, 255, 255); - Hu3DModelPosSet(object->model[0], 0, 0, 0); - Hu3DParticleAnimModeSet(object->model[0], 0); - Hu3DModelLayerSet(object->model[0], 1); - Hu3DParticleBlendModeSet(object->model[0], 1); - particle = Hu3DData[object->model[0]].unk_120; - return object; + omObjData *object = omAddObjEx(HuPrcCurrentGet(), 1300, 5, 0, -1, fn_2_142D0); + ParticleData *particle; + omSetStatBit(object, 0x100); + object->model[0] = Hu3DParticleCreate(lbl_2_bss_244, 200); + Hu3DParticleHookSet(object->model[0], fn_2_142D4); + Hu3DParticleColSet(object->model[0], 255, 255, 255); + Hu3DModelPosSet(object->model[0], 0, 0, 0); + Hu3DParticleAnimModeSet(object->model[0], 0); + Hu3DModelLayerSet(object->model[0], 1); + Hu3DParticleBlendModeSet(object->model[0], 1); + particle = Hu3DData[object->model[0]].unk_120; + return object; } -void fn_2_142D0(omObjData *object) -{ - -} +void fn_2_142D0(omObjData *object) { } void fn_2_142D4(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s32 temp_r28; - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk2C = 0; - temp_r31->unk34.y = 950; - } - } - if(particle->unk_00 == 0) { - for(temp_r29=0; temp_r29<30; temp_r29++) { - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk2C == 0) { - break; - } - } - if(temp_r28 == particle->unk_30) { - continue; - } - temp_r31->unk2C = 1; - temp_r31->unk40.a = 150; - temp_r31->unk34.x = ((11.764707f*((u8)frand()))+(-1500.0f)); - temp_r31->unk34.z = ((6.666667f*((u8)frand()))+(-2000.0f)); - temp_r31->unk08.x = 0; - temp_r31->unk08.y = (((5.0f/255.0f)*((u8)frand()))+(5.0f)); - temp_r31->unk08.z = ((0.011764707f*((u8)frand()))+(18.0f)); - } - particle->unk_00 = (frand() % 5)+4; - } else { - particle->unk_00--; - } - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk2C != 0) { - temp_r31->unk34.x += 1.1f; - temp_r31->unk34.z += 1.1f; - temp_r31->unk2C = (temp_r31->unk08.z*sind(temp_r31->unk08.x))+1.0; - temp_r31->unk08.x += temp_r31->unk08.y; - if(temp_r31->unk08.x >= 180.0f) { - temp_r31->unk2C = 0.0f; - } - } - } + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s32 temp_r28; + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk2C = 0; + temp_r31->unk34.y = 950; + } + } + if (particle->unk_00 == 0) { + for (temp_r29 = 0; temp_r29 < 30; temp_r29++) { + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk2C == 0) { + break; + } + } + if (temp_r28 == particle->unk_30) { + continue; + } + temp_r31->unk2C = 1; + temp_r31->unk40.a = 150; + temp_r31->unk34.x = ((11.764707f * ((u8)frand())) + (-1500.0f)); + temp_r31->unk34.z = ((6.666667f * ((u8)frand())) + (-2000.0f)); + temp_r31->unk08.x = 0; + temp_r31->unk08.y = (((5.0f / 255.0f) * ((u8)frand())) + (5.0f)); + temp_r31->unk08.z = ((0.011764707f * ((u8)frand())) + (18.0f)); + } + particle->unk_00 = (frand() % 5) + 4; + } + else { + particle->unk_00--; + } + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk2C != 0) { + temp_r31->unk34.x += 1.1f; + temp_r31->unk34.z += 1.1f; + temp_r31->unk2C = (temp_r31->unk08.z * sind(temp_r31->unk08.x)) + 1.0; + temp_r31->unk08.x += temp_r31->unk08.y; + if (temp_r31->unk08.x >= 180.0f) { + temp_r31->unk2C = 0.0f; + } + } + } } void fn_2_14738(omObjData *object); @@ -1043,93 +1044,93 @@ void fn_2_147B4(ModelData *model, ParticleData *particle, Mtx matrix); omObjData *fn_2_14640(Process *objman) { - omObjData *object; - object = omAddObjEx(objman, 1300, 1, 0, -1, fn_2_14738); - object->model[0] = Hu3DParticleCreate(lbl_2_bss_250, 450); - Hu3DParticleHookSet(object->model[0], fn_2_147B4); - Hu3DParticleColSet(object->model[0], 255, 255, 255); - Hu3DModelPosSet(object->model[0], 0, -6000, -21000); - Hu3DParticleAnimModeSet(object->model[0], 0); - Hu3DModelLayerSet(object->model[0], 1); - Hu3DParticleBlendModeSet(object->model[0], 1); - return object; + omObjData *object; + object = omAddObjEx(objman, 1300, 1, 0, -1, fn_2_14738); + object->model[0] = Hu3DParticleCreate(lbl_2_bss_250, 450); + Hu3DParticleHookSet(object->model[0], fn_2_147B4); + Hu3DParticleColSet(object->model[0], 255, 255, 255); + Hu3DModelPosSet(object->model[0], 0, -6000, -21000); + Hu3DParticleAnimModeSet(object->model[0], 0); + Hu3DModelLayerSet(object->model[0], 1); + Hu3DParticleBlendModeSet(object->model[0], 1); + return object; } void fn_2_14738(omObjData *object) { - omSetTra(object, lbl_2_bss_6C.x, lbl_2_bss_6C.y, lbl_2_bss_6C.z); - if(object->work[0] == 1) { - Hu3DModelAttrSet(object->model[0], 1); - omDelObjEx(HuPrcCurrentGet(), object); - } + omSetTra(object, lbl_2_bss_6C.x, lbl_2_bss_6C.y, lbl_2_bss_6C.z); + if (object->work[0] == 1) { + Hu3DModelAttrSet(object->model[0], 1); + omDelObjEx(HuPrcCurrentGet(), object); + } } void fn_2_147B4(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s32 temp_r28; - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk40.a = 180; - temp_r31->unk08.x = ((3.9215689f*((u8)frand()))+(-500.0f)); - temp_r31->unk08.y = ((3.529412f*((u8)frand()))+(-500.0f)); - temp_r31->unk08.z = (-300.0f)-((3.9215689f*((u8)frand()))); - temp_r31->unk14.x = (360.0f/255.0f)*((u8)frand()); - temp_r31->unk14.y = (4.0f/255.0f)*((u8)frand()); - temp_r31->unk2C = 2; - } - particle->unk_00 = 0; - } - if(particle->unk_00 == 0) { - for(temp_r29=0; temp_r29<2; temp_r29++) { - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk40.a == 0) { - break; - } - } - if(temp_r28 == particle->unk_30) { - continue; - } - temp_r31->unk40.a = 180; - temp_r31->unk08.x = -50.0f+(0.3921569f*((u8)frand())); - temp_r31->unk08.y = 0.058823533f*((u8)frand()); - temp_r31->unk14.x = (90.0f/255.0f)*((u8)frand()); - temp_r31->unk14.y = 5.0f+(0.098039225f*((u8)frand())); - temp_r31->unk14.z = (float)(frand() % 10) + 8.0f; - temp_r31->unk34.z = -5.0f+((11.0f/255.0f)*((u8)frand())); - temp_r31->unk34.y = (float)(frand() % 31) + -5.0f; - temp_r31->unk2C = temp_r31->unk08.y+35.0f; - temp_r31->unk40.a = 210; - temp_r31->unk08.y = (0.2*temp_r31->unk08.y)+5.0; - particle->unk_00 = (frand()%10)+10; - } - - } else { - particle->unk_00--; - } - temp_r31 = particle->unk_48; - temp_f30 = lbl_2_bss_50*0.3f; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk40.a == 0) { - continue; - } - temp_r31->unk34.x = temp_r31->unk08.x; - temp_r31->unk34.y = temp_r31->unk08.y; - temp_r31->unk34.z = temp_r31->unk08.z; - temp_r31->unk08.x -= 0.5*sind(temp_r31->unk14.x); - temp_r31->unk08.z -= -temp_f30; - temp_r31->unk14.x += temp_r31->unk14.y; - if(temp_r31->unk14.x >= 360.0f) { - temp_r31->unk14.x -= 360.0f; - } - if(temp_r31->unk08.z >= 0.0f) { - temp_f31 = 800.0f+((300.0f/255.0f)*((u8)frand())); - temp_r31->unk08.z -= temp_f31; - } - } -} \ No newline at end of file + float temp_f31; + float temp_f30; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s32 temp_r28; + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk40.a = 180; + temp_r31->unk08.x = ((3.9215689f * ((u8)frand())) + (-500.0f)); + temp_r31->unk08.y = ((3.529412f * ((u8)frand())) + (-500.0f)); + temp_r31->unk08.z = (-300.0f) - ((3.9215689f * ((u8)frand()))); + temp_r31->unk14.x = (360.0f / 255.0f) * ((u8)frand()); + temp_r31->unk14.y = (4.0f / 255.0f) * ((u8)frand()); + temp_r31->unk2C = 2; + } + particle->unk_00 = 0; + } + if (particle->unk_00 == 0) { + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk40.a == 0) { + break; + } + } + if (temp_r28 == particle->unk_30) { + continue; + } + temp_r31->unk40.a = 180; + temp_r31->unk08.x = -50.0f + (0.3921569f * ((u8)frand())); + temp_r31->unk08.y = 0.058823533f * ((u8)frand()); + temp_r31->unk14.x = (90.0f / 255.0f) * ((u8)frand()); + temp_r31->unk14.y = 5.0f + (0.098039225f * ((u8)frand())); + temp_r31->unk14.z = (float)(frand() % 10) + 8.0f; + temp_r31->unk34.z = -5.0f + ((11.0f / 255.0f) * ((u8)frand())); + temp_r31->unk34.y = (float)(frand() % 31) + -5.0f; + temp_r31->unk2C = temp_r31->unk08.y + 35.0f; + temp_r31->unk40.a = 210; + temp_r31->unk08.y = (0.2 * temp_r31->unk08.y) + 5.0; + particle->unk_00 = (frand() % 10) + 10; + } + } + else { + particle->unk_00--; + } + temp_r31 = particle->unk_48; + temp_f30 = lbl_2_bss_50 * 0.3f; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk40.a == 0) { + continue; + } + temp_r31->unk34.x = temp_r31->unk08.x; + temp_r31->unk34.y = temp_r31->unk08.y; + temp_r31->unk34.z = temp_r31->unk08.z; + temp_r31->unk08.x -= 0.5 * sind(temp_r31->unk14.x); + temp_r31->unk08.z -= -temp_f30; + temp_r31->unk14.x += temp_r31->unk14.y; + if (temp_r31->unk14.x >= 360.0f) { + temp_r31->unk14.x -= 360.0f; + } + if (temp_r31->unk08.z >= 0.0f) { + temp_f31 = 800.0f + ((300.0f / 255.0f) * ((u8)frand())); + temp_r31->unk08.z -= temp_f31; + } + } +} diff --git a/src/REL/m404Dll/main.c b/src/REL/m404Dll/main.c index 1a79708d..bcfef460 100644 --- a/src/REL/m404Dll/main.c +++ b/src/REL/m404Dll/main.c @@ -289,85 +289,86 @@ void fn_1_39C(omObjData *object) void fn_1_400(omObjData *object) { switch (fn_1_38C()) { - case 0: - if (--lbl_1_bss_24) { + case 0: + if (--lbl_1_bss_24) { + break; + } + fn_1_37C(1); + lbl_1_bss_24 = 180; break; - } - fn_1_37C(1); - lbl_1_bss_24 = 180; - break; - case 1: - if (--lbl_1_bss_24) { + case 1: + if (--lbl_1_bss_24) { + break; + } + fn_1_37C(2); + lbl_1_bss_C = MGSeqCreate(3, 0); break; - } - fn_1_37C(2); - lbl_1_bss_C = MGSeqCreate(3, 0); - break; - case 2: - if (!MGSeqStatGet(lbl_1_bss_C)) { - fn_1_37C(3); - } - if (lbl_1_data_7C8 >= 0) { + case 2: + if (!MGSeqStatGet(lbl_1_bss_C)) { + fn_1_37C(3); + } + if (lbl_1_data_7C8 >= 0) { + break; + } + if (!(MGSeqStatGet(lbl_1_bss_C) & 16)) { + break; + } + lbl_1_data_7C8 = HuAudSeqPlay(69); break; - } - if (!(MGSeqStatGet(lbl_1_bss_C) & 16)) { + case 3: + if (!fn_1_E48()) { + break; + } + fn_1_37C(4); + lbl_1_bss_C = MGSeqCreate(3, 1); + HuAudSeqFadeOut(lbl_1_data_7C8, 100); break; - } - lbl_1_data_7C8 = HuAudSeqPlay(69); - break; - case 3: - if (!fn_1_E48()) { + case 4: + if (!MGSeqStatGet(lbl_1_bss_C)) { + fn_1_37C(5); + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + lbl_1_bss_24 = 60; + } + case 5: + if (--lbl_1_bss_24) { + break; + } + fn_1_37C(6); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); break; - } - fn_1_37C(4); - lbl_1_bss_C = MGSeqCreate(3, 1); - HuAudSeqFadeOut(lbl_1_data_7C8, 100); - break; - case 4: - if (!MGSeqStatGet(lbl_1_bss_C)) { - fn_1_37C(5); - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - lbl_1_bss_24 = 60; - } - case 5: - if (--lbl_1_bss_24) { + case 6: + if (WipeStatGet()) { + break; + } + fn_1_37C(7); + lbl_1_bss_24 = 180; break; - } - fn_1_37C(6); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - break; - case 6: - if (WipeStatGet()) { + case 7: + if (--lbl_1_bss_24) { + break; + } + fn_1_37C(9); + fn_1_1160(); + if (lbl_1_bss_38[0] >= 0) { + HuAudSStreamPlay(1); + } + else { + HuAudSStreamPlay(4); + } + lbl_1_bss_24 = 210; break; - } - fn_1_37C(7); - lbl_1_bss_24 = 180; - break; - case 7: - if (--lbl_1_bss_24) { + case 8: break; - } - fn_1_37C(9); - fn_1_1160(); - if (lbl_1_bss_38[0] >= 0) { - HuAudSStreamPlay(1); - } else { - HuAudSStreamPlay(4); - } - lbl_1_bss_24 = 210; - break; - case 8: - break; - case 9: - if (--lbl_1_bss_24) { + case 9: + if (--lbl_1_bss_24) { + break; + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_784; + break; + default: break; - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_784; - break; - default: - break; } if (omSysExitReq && !WipeStatGet()) { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); @@ -393,14 +394,37 @@ float lbl_1_data_81C[][2] = { { 0.0f, 0.0f }, { 0.0f, 0.0f }, { -46.0f, -2.0f }, float lbl_1_data_84C[][2] = { { 472.0f, 128.0f }, { 472.0f, 208.0f }, { 472.0f, 288.0f }, { 472.0f, 368.0f } }; -s32 lbl_1_data_86C[] = { 0x00610000, 0x00610001, 0x00610002, 0x00610003, 0x00610004, 0x00610005, 0x00610006, 0x00610007 }; +s32 lbl_1_data_86C[] = { + DATA_MAKE_NUM(DATADIR_MGCONST, 0x00), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x01), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x02), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x03), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x04), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x05), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x06), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x07), +}; s32 lbl_1_data_88C = 0xFFFFFFFF; -u32 lbl_1_data_890[][2] - = { { 0x005F0000, 0x00000000 }, { 0x005F0002, 0x00000000 }, { 0x00230022, 0x00000001 }, { 0x005F0017, 0x00000000 }, { 0x005F0018, 0x00000000 } }; +u32 lbl_1_data_890[][2] = { + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0x00000000 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), 0x00000000 }, + { DATA_MAKE_NUM(DATADIR_M404, 0x22), 0x00000001 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), 0x00000000 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), 0x00000000 }, +}; -s32 lbl_1_data_8B8[] = { 0x00230001, 0x00230002, 0x00230003, 0x00230004, 0x00230005, 0x00230006, 0x00230007, 0x00230008 }; +s32 lbl_1_data_8B8[] = { + DATA_MAKE_NUM(DATADIR_M404, 0x01), + DATA_MAKE_NUM(DATADIR_M404, 0x02), + DATA_MAKE_NUM(DATADIR_M404, 0x03), + DATA_MAKE_NUM(DATADIR_M404, 0x04), + DATA_MAKE_NUM(DATADIR_M404, 0x05), + DATA_MAKE_NUM(DATADIR_M404, 0x06), + DATA_MAKE_NUM(DATADIR_M404, 0x07), + DATA_MAKE_NUM(DATADIR_M404, 0x08), +}; float lbl_1_data_8D8[] = { 35.0f, 30.000002f, 25.0f, 20.0f }; @@ -408,7 +432,11 @@ float (*lbl_1_data_8E8[])[2] = { lbl_1_data_0, lbl_1_data_248, lbl_1_data_4A8 }; u16 lbl_1_data_8F4[] = { 73, 76, 82, 0 }; -s32 lbl_1_data_8FC[][2] = { { 0x00230013, 0x00230014 }, { 0x00230015, 0x00230016 }, { 0x00230017, 0x00230018 } }; +s32 lbl_1_data_8FC[][2] = { + { DATA_MAKE_NUM(DATADIR_M404, 0x13), DATA_MAKE_NUM(DATADIR_M404, 0x14) }, + { DATA_MAKE_NUM(DATADIR_M404, 0x15), DATA_MAKE_NUM(DATADIR_M404, 0x16) }, + { DATA_MAKE_NUM(DATADIR_M404, 0x17), DATA_MAKE_NUM(DATADIR_M404, 0x18) }, +}; void fn_1_7E0(omObjData *object) { @@ -426,26 +454,26 @@ void fn_1_7E0(omObjData *object) for (var_r29 = 0; var_r29 < 4; var_r31++, var_r29++) { for (var_r27 = var_r26[var_r29]->data, var_r30 = 0; var_r30 < 6; var_r30++) { switch (lbl_1_data_810[var_r30]) { - case 0: - var_r31->unk_02[var_r30] = espEntry(0x610014, 1, 0); - espPriSet(var_r31->unk_02[var_r30], 256); - break; - case 1: - var_r31->unk_02[var_r30] = espEntry(0x610015, 0, 0); - espPriSet(var_r31->unk_02[var_r30], 257); - espColorSet(var_r31->unk_02[var_r30], 0, 0, 0); - espTPLvlSet(var_r31->unk_02[var_r30], 0.5f); - break; - case 2: - var_r31->unk_02[var_r30] = espEntry(lbl_1_data_86C[var_r27->unk_02[5]]); - espPriSet(var_r31->unk_02[var_r30], 255); - break; - case 3: - var_r31->unk_02[var_r30] = espEntry(0x610033, 1, 0); - espPriSet(var_r31->unk_02[var_r30], 255); - break; - default: - break; + case 0: + var_r31->unk_02[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x14), 1, 0); + espPriSet(var_r31->unk_02[var_r30], 256); + break; + case 1: + var_r31->unk_02[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x15), 0, 0); + espPriSet(var_r31->unk_02[var_r30], 257); + espColorSet(var_r31->unk_02[var_r30], 0, 0, 0); + espTPLvlSet(var_r31->unk_02[var_r30], 0.5f); + break; + case 2: + var_r31->unk_02[var_r30] = espEntry(lbl_1_data_86C[var_r27->unk_02[5]]); + espPriSet(var_r31->unk_02[var_r30], 255); + break; + case 3: + var_r31->unk_02[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x33), 1, 0); + espPriSet(var_r31->unk_02[var_r30], 255); + break; + default: + break; } espDispOff(var_r31->unk_02[var_r30]); espDrawNoSet(var_r31->unk_02[var_r30], 0); @@ -469,30 +497,30 @@ void fn_1_A9C(omObjData *object) var_r30 = object->data; switch (fn_1_38C()) { - case 6: - for (var_r31 = 0; var_r31 < 4; var_r31++) { - for (var_r29 = 0; var_r29 < 6; var_r29++) { - espDispOn(var_r30[var_r31].unk_02[var_r29]); + case 6: + for (var_r31 = 0; var_r31 < 4; var_r31++) { + for (var_r29 = 0; var_r29 < 6; var_r29++) { + espDispOn(var_r30[var_r31].unk_02[var_r29]); + } } - } - break; - case 7: - var_r27 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - for (var_r29 = 0, var_r31 = 0; var_r31 < 4; var_r31++) { - var_r28 = var_r27[var_r31]->data; - var_r30[var_r31].unk_00 = var_r28->unk_58; - if (var_r28->unk_00_field1) { - var_r29++; + break; + case 7: + var_r27 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + for (var_r29 = 0, var_r31 = 0; var_r31 < 4; var_r31++) { + var_r28 = var_r27[var_r31]->data; + var_r30[var_r31].unk_00 = var_r28->unk_58; + if (var_r28->unk_00_field1) { + var_r29++; + } } - } - if ((var_r29 >= 4) && (lbl_1_bss_0 == 0)) { - HuAudFXPlay(1325); - lbl_1_bss_0 = 1; - } - if ((lbl_1_bss_0 == 0) && (lbl_1_data_88C < 0)) { - lbl_1_data_88C = HuAudFXPlay(1324); - } - break; + if ((var_r29 >= 4) && (lbl_1_bss_0 == 0)) { + HuAudFXPlay(1325); + lbl_1_bss_0 = 1; + } + if ((lbl_1_bss_0 == 0) && (lbl_1_data_88C < 0)) { + lbl_1_data_88C = HuAudFXPlay(1324); + } + break; } for (var_r31 = 0; var_r31 < 4; var_r31++) { espBankSet(var_r30[var_r31].unk_02[3], var_r30[var_r31].unk_00 / 100); @@ -669,20 +697,21 @@ void fn_1_1344(omObjData *object) memset(var_r31, 0, 484); var_r31->unk_02 = lbl_1_bss_20++; var_r31->unk_04 = GWPlayerCfg[var_r31->unk_02].pad_idx; - + var_r31->unk_0C = var_r24 = GWPlayerCfg[var_r31->unk_02].character; var_r31->unk_0E = GWPlayerCfg[var_r31->unk_02].diff; var_r31->unk_10 = GWPlayerCfg[var_r31->unk_02].group; object->model[0] = CharModelCreate(var_r24, 2); Hu3DModelShadowSet(object->model[0]); - object->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_8B8[var_r24], MEMORY_DEFAULT_NUM, HEAP_DATA)); + object->model[1] = Hu3DModelCreateFile(lbl_1_data_8B8[var_r24]); Hu3DModelHookSet(object->model[0], "test11_tex_we-itemhook-r", object->model[1]); var_r31->unk_2C = 0; for (var_r29 = 0; var_r29 < (u32)5; var_r29++) { if (!lbl_1_data_890[var_r29][1]) { object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_0C, lbl_1_data_890[var_r29][0]); - } else { + } + else { object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_0C, var_r31->unk_0C + lbl_1_data_890[var_r29][0]); } } @@ -702,12 +731,12 @@ void fn_1_1344(omObjData *object) var_r31->unk_44 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_48, MEMORY_DEFAULT_NUM); DCInvalidateRange(var_r31->unk_44, var_r31->unk_48); var_r31->unk_48 = fn_1_6248(var_r31->unk_44, var_r31->unk_48); - var_r31->unk_3C = HuSprAnimRead(HuDataSelHeapReadNum(lbl_1_data_8FC[lbl_1_bss_1C][0], MEMORY_DEFAULT_NUM, HEAP_DATA)); + var_r31->unk_3C = HuSprAnimReadFile(lbl_1_data_8FC[lbl_1_bss_1C][0]); DCFlushRangeNoSync(var_r31->unk_3C->bmp->data, (var_r31->unk_3C->bmp->pixSize * (var_r31->unk_3C->bmp->sizeX * var_r31->unk_3C->bmp->sizeY)) / 8); var_r31->unk_54 = 0; var_r31->unk_56 = fn_1_ED4(object); - var_r31->unk_40 = HuSprAnimRead(HuDataSelHeapReadNum(lbl_1_data_8FC[lbl_1_bss_1C][1], MEMORY_DEFAULT_NUM, HEAP_DATA)); - var_r31->unk_50 = HuSprAnimRead(HuDataSelHeapReadNum(0x230019, MEMORY_DEFAULT_NUM, HEAP_DATA)); + var_r31->unk_40 = HuSprAnimReadFile(lbl_1_data_8FC[lbl_1_bss_1C][1]); + var_r31->unk_50 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M404, 0x19)); DCFlushRangeNoSync(var_r31->unk_50->bmp->data, (var_r31->unk_50->bmp->pixSize * (var_r31->unk_50->bmp->sizeX * var_r31->unk_50->bmp->sizeY)) / 8); Hu3DMotionOverlaySet(object->model[0], object->motion[2]); object->trans.y = 1500.0f; @@ -744,7 +773,6 @@ void fn_1_1AFC(omObjData *object) { UnkM404Struct3 *var_r31; - var_r31 = object->data; if (fn_1_38C() >= 1) { if (var_r31->unk_00_field2) { @@ -873,7 +901,7 @@ float fn_1_2EBC(float arg0[], float arg8) float fn_1_3A38(float arg0[], float arg8, float arg9) { - volatile float sp40; + volatile float sp40; volatile float sp3C; float var_f24; float var_f18; @@ -926,7 +954,8 @@ void fn_1_3F30(omObjData *object) var_r31->unk_64 = 3.0f - (var_r31->unk_68 - var_r31->unk_64); var_r31->unk_5E += 3; var_r31->unk_68 = fn_1_2EBC(var_r31->unk_70[var_r31->unk_5E], 1.0f); - } else { + } + else { var_r31->unk_64 += 3.0f; } var_r31->unk_60 = fn_1_3A38(var_r31->unk_70[var_r31->unk_5E], var_r31->unk_60, var_r31->unk_64); @@ -936,7 +965,8 @@ void fn_1_3F30(omObjData *object) var_r31->unk_14 = fn_1_3E2C(var_r31->unk_14, atan2d(var_f24 - object->trans.x, -(var_f23 - object->trans.z)), 0.1f); var_r31->unk_06 = (u8)(20.0 * sind(var_r31->unk_14)); var_r31->unk_07 = (u8)(20.0 * cosd(var_r31->unk_14)); - } else { + } + else { var_r31->unk_06 = 20; var_r31->unk_07 = 0; } @@ -961,7 +991,6 @@ void fn_1_44A0(omObjData *object) s32 var_r28; s16 var_r27; - var_r31 = object->data; var_r28 = -1; if (fn_1_38C() == 6) { @@ -969,104 +998,111 @@ void fn_1_44A0(omObjData *object) } if (fn_1_38C() == 3 && !var_r31->unk_00_field0) { switch (var_r31->unk_12) { - case 0: - if (GWPlayerCfg[var_r31->unk_02].iscom == 0) { - var_r31->unk_06 = HuPadStkX[var_r31->unk_04]; - var_r31->unk_07 = HuPadStkY[var_r31->unk_04]; - var_r31->unk_08 = HuPadBtn[var_r31->unk_04]; - var_r31->unk_0A = HuPadBtnDown[var_r31->unk_04]; - } else { - var_r31->unk_08 = var_r31->unk_0A = 0; - var_r31->unk_06 = var_r31->unk_07 = 0; - fn_1_3F30(object); - } - if (((var_r31->unk_06 * var_r31->unk_06) + (var_r31->unk_07 * var_r31->unk_07)) > 16.0f) { - var_f31 = atan2d(var_r31->unk_06, -var_r31->unk_07); - var_r31->unk_20 = 3.0f * sind(var_f31); - var_r31->unk_28 = 3.0f * cosd(var_f31); - var_r28 = 1; - if (var_r31->unk_20 > 0.0f) { - CharModelMotionSpeedSet(var_r31->unk_0C, 0.5f); - } else { - CharModelMotionSpeedSet(var_r31->unk_0C, -0.5f); + case 0: + if (GWPlayerCfg[var_r31->unk_02].iscom == 0) { + var_r31->unk_06 = HuPadStkX[var_r31->unk_04]; + var_r31->unk_07 = HuPadStkY[var_r31->unk_04]; + var_r31->unk_08 = HuPadBtn[var_r31->unk_04]; + var_r31->unk_0A = HuPadBtnDown[var_r31->unk_04]; } - Hu3DMotionOverlaySpeedSet(object->model[0], Hu3DData[object->model[0]].unk_68); - if (var_r31->unk_2C == 0) { - Hu3DModelAttrReset(object->model[0], 0x40000400); + else { + var_r31->unk_08 = var_r31->unk_0A = 0; + var_r31->unk_06 = var_r31->unk_07 = 0; + fn_1_3F30(object); + } + if (((var_r31->unk_06 * var_r31->unk_06) + (var_r31->unk_07 * var_r31->unk_07)) > 16.0f) { + var_f31 = atan2d(var_r31->unk_06, -var_r31->unk_07); + var_r31->unk_20 = 3.0f * sind(var_f31); + var_r31->unk_28 = 3.0f * cosd(var_f31); + var_r28 = 1; + if (var_r31->unk_20 > 0.0f) { + CharModelMotionSpeedSet(var_r31->unk_0C, 0.5f); + } + else { + CharModelMotionSpeedSet(var_r31->unk_0C, -0.5f); + } + Hu3DMotionOverlaySpeedSet(object->model[0], Hu3DData[object->model[0]].unk_68); + if (var_r31->unk_2C == 0) { + Hu3DModelAttrReset(object->model[0], 0x40000400); + Hu3DMotionOverlayTimeSet(object->model[0], 0.0f); + } + } + else { + var_r31->unk_20 = var_r31->unk_28 = 0.0f; + var_r28 = 0; + CharModelMotionSpeedSet(var_r31->unk_0C, 1.0f); Hu3DMotionOverlayTimeSet(object->model[0], 0.0f); + Hu3DModelAttrSet(object->model[0], 0x40000400); } - } else { - var_r31->unk_20 = var_r31->unk_28 = 0.0f; - var_r28 = 0; - CharModelMotionSpeedSet(var_r31->unk_0C, 1.0f); - Hu3DMotionOverlayTimeSet(object->model[0], 0.0f); - Hu3DModelAttrSet(object->model[0], 0x40000400); - } - sp8.x = object->trans.x; - sp8.z = object->trans.z; - object->trans.x += var_r31->unk_20; - object->trans.z += var_r31->unk_28; - if (object->trans.x < -90.0f) { - object->trans.x = -90.0f; - } - if (object->trans.x < (Center.x - 500.0f)) { - object->trans.x = Center.x - 500.0f; - } else if (object->trans.x > (550.0f + Center.x)) { - object->trans.x = 550.0f + Center.x; - } - if ((object->trans.x != sp8.x) || (object->trans.z != sp8.z)) { - if (var_r31->unk_74 < 0) { - var_r31->unk_74 = HuAudFXPlay(0x52B); + sp8.x = object->trans.x; + sp8.z = object->trans.z; + object->trans.x += var_r31->unk_20; + object->trans.z += var_r31->unk_28; + if (object->trans.x < -90.0f) { + object->trans.x = -90.0f; } - } else if (var_r31->unk_74 >= 0) { - HuAudFXStop(var_r31->unk_74); - var_r31->unk_74 = -1; - } - var_r29 = &Hu3DData[object->model[2]]; - if (object->trans.z < (var_r29->pos.z - 100.0f)) { - object->trans.z = var_r29->pos.z - 100.0f; - } else if (object->trans.z > ((100.0f + var_r29->pos.z) - 1.0f)) { - object->trans.z = (100.0f + var_r29->pos.z) - 1.0f; - } - if ((90.0f + object->trans.x) > 3000.0f) { - object->trans.x = 2910.0f; - var_r31->unk_12++; - var_r31->unk_2C = -1; - var_r28 = 1; - CharModelMotionSpeedSet(var_r31->unk_0C, 1.0f); - Hu3DMotionOverlayReset(object->model[0]); - Hu3DModelAttrSet(object->model[1], 1); - if (var_r31->unk_74 >= 0) { + if (object->trans.x < (Center.x - 500.0f)) { + object->trans.x = Center.x - 500.0f; + } + else if (object->trans.x > (550.0f + Center.x)) { + object->trans.x = 550.0f + Center.x; + } + if ((object->trans.x != sp8.x) || (object->trans.z != sp8.z)) { + if (var_r31->unk_74 < 0) { + var_r31->unk_74 = HuAudFXPlay(0x52B); + } + } + else if (var_r31->unk_74 >= 0) { HuAudFXStop(var_r31->unk_74); var_r31->unk_74 = -1; } - } - fn_1_5278(object); - if (var_r31->unk_74 >= 0) { - var_r27 = 64.0f + ((64.0f * (object->trans.x - Center.x)) / 500.0f); - if (var_r27 < 0) { - var_r27 = 0; - } else if (var_r27 > 127) { - var_r27 = 127; + var_r29 = &Hu3DData[object->model[2]]; + if (object->trans.z < (var_r29->pos.z - 100.0f)) { + object->trans.z = var_r29->pos.z - 100.0f; } - HuAudFXPanning(var_r31->unk_74, var_r27); - } - break; - case 1: - var_r28 = 1; - object->trans.x += 4.0000005f; - if (object->trans.x >= 3200.0f) { - var_r31->unk_12++; - var_r31->unk_38 = 0x3C; - } - break; - case 2: - var_r28 = 0; - object->rot.y += 0.1f * -object->rot.y; - if (--var_r31->unk_38 == 0) { - var_r31->unk_00_field0 = 1; - } - break; + else if (object->trans.z > ((100.0f + var_r29->pos.z) - 1.0f)) { + object->trans.z = (100.0f + var_r29->pos.z) - 1.0f; + } + if ((90.0f + object->trans.x) > 3000.0f) { + object->trans.x = 2910.0f; + var_r31->unk_12++; + var_r31->unk_2C = -1; + var_r28 = 1; + CharModelMotionSpeedSet(var_r31->unk_0C, 1.0f); + Hu3DMotionOverlayReset(object->model[0]); + Hu3DModelAttrSet(object->model[1], 1); + if (var_r31->unk_74 >= 0) { + HuAudFXStop(var_r31->unk_74); + var_r31->unk_74 = -1; + } + } + fn_1_5278(object); + if (var_r31->unk_74 >= 0) { + var_r27 = 64.0f + ((64.0f * (object->trans.x - Center.x)) / 500.0f); + if (var_r27 < 0) { + var_r27 = 0; + } + else if (var_r27 > 127) { + var_r27 = 127; + } + HuAudFXPanning(var_r31->unk_74, var_r27); + } + break; + case 1: + var_r28 = 1; + object->trans.x += 4.0000005f; + if (object->trans.x >= 3200.0f) { + var_r31->unk_12++; + var_r31->unk_38 = 0x3C; + } + break; + case 2: + var_r28 = 0; + object->rot.y += 0.1f * -object->rot.y; + if (--var_r31->unk_38 == 0) { + var_r31->unk_00_field0 = 1; + } + break; } if (var_r28 >= 0 && var_r28 != var_r31->unk_2C) { var_r31->unk_2C = var_r28; @@ -1115,7 +1151,8 @@ void fn_1_4F4C(omObjData *object) } if (var_r29 < 4) { var_r30->unk_2C = 3; - } else { + } + else { var_r30->unk_2C = 4; } CharModelMotionShiftSet(var_r30->unk_0C, object->motion[var_r30->unk_2C], 0.0f, 5.0f, 0); @@ -1170,9 +1207,13 @@ void fn_1_5598(Process *arg0) void fn_1_55F0(void) { } -s32 lbl_1_data_930[] = { 0x0023000B, 0x0023000C, 0x0023000D, 0x0023000E, 0x0023000F, 0x00230010, 0x00230011, 0x00230012 }; +s32 lbl_1_data_930[] = { DATA_MAKE_NUM(DATADIR_M404, 0x0B), DATA_MAKE_NUM(DATADIR_M404, 0x0C), DATA_MAKE_NUM(DATADIR_M404, 0x0D), + DATA_MAKE_NUM(DATADIR_M404, 0x0E), DATA_MAKE_NUM(DATADIR_M404, 0x0F), DATA_MAKE_NUM(DATADIR_M404, 0x10), DATA_MAKE_NUM(DATADIR_M404, 0x11), + DATA_MAKE_NUM(DATADIR_M404, 0x12) }; -s32 lbl_1_data_950[] = { 0x0023001A, 0x0023001B, 0x0023001C, 0x0023001D, 0x0023001E, 0x0023001F, 0x00230020, 0x00230021 }; +s32 lbl_1_data_950[] = { DATA_MAKE_NUM(DATADIR_M404, 0x1A), DATA_MAKE_NUM(DATADIR_M404, 0x1B), DATA_MAKE_NUM(DATADIR_M404, 0x1C), + DATA_MAKE_NUM(DATADIR_M404, 0x1D), DATA_MAKE_NUM(DATADIR_M404, 0x1E), DATA_MAKE_NUM(DATADIR_M404, 0x1F), DATA_MAKE_NUM(DATADIR_M404, 0x20), + DATA_MAKE_NUM(DATADIR_M404, 0x21) }; char *lbl_1_data_98C[] = { "kari00", "kari01", "kari02", "kari03" }; @@ -1187,18 +1228,16 @@ void fn_1_55F4(omObjData *object) { s32 var_r30; - object->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(0x230009, MEMORY_DEFAULT_NUM, HEAP_DATA)); - object->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(0x23000A, MEMORY_DEFAULT_NUM, HEAP_DATA)); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M404, 0x09)); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M404, 0x0A)); Hu3DModelAttrSet(object->model[1], 0x40000001); - object->model[2] = Hu3DModelCreate(HuDataSelHeapReadNum(0x230000, MEMORY_DEFAULT_NUM, HEAP_DATA)); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M404, 0x00)); Hu3DModelShadowMapSet(object->model[2]); for (var_r30 = 0; var_r30 < 4; var_r30++) { - object->model[var_r30 + 3] - = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_930[GWPlayerCfg[var_r30].character], MEMORY_DEFAULT_NUM, HEAP_DATA)); + object->model[var_r30 + 3] = Hu3DModelCreateFile(lbl_1_data_930[GWPlayerCfg[var_r30].character]); Hu3DModelPosSet(object->model[var_r30 + 3], 0.0f, 0.0f, lbl_1_data_99C[var_r30]); - Hu3DAnimCreate(HuSprAnimRead(HuDataSelHeapReadNum(lbl_1_data_950[GWPlayerCfg[var_r30].character], MEMORY_DEFAULT_NUM, HEAP_DATA)), - object->model[2], lbl_1_data_98C[var_r30]); + Hu3DAnimCreate(HuSprAnimReadFile(lbl_1_data_950[GWPlayerCfg[var_r30].character]), object->model[2], lbl_1_data_98C[var_r30]); } object->func = fn_1_57A0; } @@ -1295,38 +1334,39 @@ void fn_1_5E74(AnimData *arg0, u16 arg1, u16 arg2, u16 arg3) u8 temp_r0; switch (arg0->bmp->pixSize) { - case 4: - var_r30 = lbl_1_data_9DC[0]; // 8 - var_r29 = lbl_1_data_9DC[1]; // 8 - break; - case 8: - var_r30 = lbl_1_data_9DC[2]; // 8 - var_r29 = lbl_1_data_9DC[3]; // 4 - break; - case 16: - var_r30 = lbl_1_data_9DC[4]; // 4 - var_r29 = lbl_1_data_9DC[5]; // 4 - break; + case 4: + var_r30 = lbl_1_data_9DC[0]; // 8 + var_r29 = lbl_1_data_9DC[1]; // 8 + break; + case 8: + var_r30 = lbl_1_data_9DC[2]; // 8 + var_r29 = lbl_1_data_9DC[3]; // 4 + break; + case 16: + var_r30 = lbl_1_data_9DC[4]; // 4 + var_r29 = lbl_1_data_9DC[5]; // 4 + break; } - var_r31 = (void *)(((arg1/var_r30)*32)+(((arg1%8)*arg0->bmp->pixSize)/8)+(((arg0->bmp->sizeX / var_r30) * ((arg2 / var_r29) << 5))+((u32)arg0->bmp->data)+((arg0->bmp->pixSize * ((arg2 % var_r29) * 8)) / 8))); + var_r31 = (void *)(((arg1 / var_r30) * 32) + (((arg1 % 8) * arg0->bmp->pixSize) / 8) + + (((arg0->bmp->sizeX / var_r30) * ((arg2 / var_r29) << 5)) + ((u32)arg0->bmp->data) + ((arg0->bmp->pixSize * ((arg2 % var_r29) * 8)) / 8))); switch (arg0->bmp->pixSize) { - case 4: - if ((arg1 & 1) == 0) { - *var_r31 &= 0xF; - *var_r31 |= arg3 << 4; + case 4: + if ((arg1 & 1) == 0) { + *var_r31 &= 0xF; + *var_r31 |= arg3 << 4; + break; + } + *var_r31 &= 0xF0; + *var_r31 |= arg3; + break; + case 8: + *var_r31 |= arg3; + break; + case 16: + *((u16 *)var_r31) = arg3; break; - } - *var_r31 &= 0xF0; - *var_r31 |= arg3; - break; - case 8: - *var_r31 |= arg3; - break; - case 16: - *((u16 *)var_r31) = arg3; - break; } } @@ -1340,42 +1380,44 @@ u16 fn_1_607C(AnimData *arg0, u16 arg1, u16 arg2) u32 temp_r6; u8 temp_r0; u8 temp_r0_3; - + switch (arg0->bmp->pixSize) { - case 4: - var_r31 = lbl_1_data_9F4[0]; - var_r30 = lbl_1_data_9F4[1]; - break; - case 8: - var_r31 = lbl_1_data_9F4[2]; - var_r30 = lbl_1_data_9F4[3]; - break; - case 16: - var_r31 = lbl_1_data_9F4[4]; - var_r30 = lbl_1_data_9F4[5]; - break; + case 4: + var_r31 = lbl_1_data_9F4[0]; + var_r30 = lbl_1_data_9F4[1]; + break; + case 8: + var_r31 = lbl_1_data_9F4[2]; + var_r30 = lbl_1_data_9F4[3]; + break; + case 16: + var_r31 = lbl_1_data_9F4[4]; + var_r30 = lbl_1_data_9F4[5]; + break; } - var_r29 = (void *)(((arg1/var_r31)*32)+(((arg1%8)*arg0->bmp->pixSize)/8)+(((arg0->bmp->sizeX / var_r31) * ((arg2 / var_r30) << 5))+((u32)arg0->bmp->data)+((arg0->bmp->pixSize * ((arg2 % var_r30) * 8)) / 8))); - - (void)var_r31; - (void)var_r31; - (void)var_r31; - (void)var_r30; - (void)var_r30; - (void)var_r30; - + var_r29 = (void *)(((arg1 / var_r31) * 32) + (((arg1 % 8) * arg0->bmp->pixSize) / 8) + + (((arg0->bmp->sizeX / var_r31) * ((arg2 / var_r30) << 5)) + ((u32)arg0->bmp->data) + ((arg0->bmp->pixSize * ((arg2 % var_r30) * 8)) / 8))); + + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r30; + (void)var_r30; + (void)var_r30; + switch (arg0->bmp->pixSize) { - case 4: - if ((arg1 & 1) == 0) { - var_r28 = *var_r29 >> 4; - } else { - var_r28 = *var_r29 & 0xF; - } - return var_r28; - case 8: - return *var_r29; - case 16: - return *((u16 *)var_r29); + case 4: + if ((arg1 & 1) == 0) { + var_r28 = *var_r29 >> 4; + } + else { + var_r28 = *var_r29 & 0xF; + } + return var_r28; + case 8: + return *var_r29; + case 16: + return *((u16 *)var_r29); } } @@ -1423,28 +1465,28 @@ void fn_1_66DC(omObjData *object) var_r31 = Hu3DCamera; switch (fn_1_38C()) { - case 1: - fn_1_648C(0, 1, 1.0 - cosd(90.0f * lbl_1_bss_4)); - if (lbl_1_bss_4 < 1.0f) { - lbl_1_bss_4 += 0.007999999f; - if (lbl_1_bss_4 > 1.0f) { - lbl_1_bss_4 = 1.0f; + case 1: + fn_1_648C(0, 1, 1.0 - cosd(90.0f * lbl_1_bss_4)); + if (lbl_1_bss_4 < 1.0f) { + lbl_1_bss_4 += 0.007999999f; + if (lbl_1_bss_4 > 1.0f) { + lbl_1_bss_4 = 1.0f; + } } - } - break; - case 3: - Center.x += 2.0000002f; - Hu3DShadowData.unk_14.x = 1000.0f + var_r31->pos.x; - Hu3DShadowData.unk_20.x = Hu3DShadowData.unk_14.x - 1500.0f; - break; - case 6: - fn_1_648C(1, 1, 0.0f); - break; - case 7: - if (Center.x < 3000.0f) { - Center.x += 25.0f; - } - default: - break; + break; + case 3: + Center.x += 2.0000002f; + Hu3DShadowData.unk_14.x = 1000.0f + var_r31->pos.x; + Hu3DShadowData.unk_20.x = Hu3DShadowData.unk_14.x - 1500.0f; + break; + case 6: + fn_1_648C(1, 1, 0.0f); + break; + case 7: + if (Center.x < 3000.0f) { + Center.x += 25.0f; + } + default: + break; } } diff --git a/src/REL/m406Dll/map.c b/src/REL/m406Dll/map.c index 6f0fdb1e..6ad24ea4 100644 --- a/src/REL/m406Dll/map.c +++ b/src/REL/m406Dll/map.c @@ -2446,10 +2446,10 @@ void fn_1_9F78(void) var_r30 = lbl_1_bss_9C = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM406Struct8), MEMORY_DEFAULT_NUM); memset(var_r30, 0, sizeof(UnkM406Struct8)); - var_r30->unk_00 = HuSprAnimRead(HuDataReadNum(0x250040, MEMORY_DEFAULT_NUM)); - var_r30->unk_04 = HuSprAnimRead(HuDataReadNum(0x250041, MEMORY_DEFAULT_NUM)); - var_r30->unk_08 = HuSprAnimRead(HuDataReadNum(0x250042, MEMORY_DEFAULT_NUM)); - var_r30->unk_0C = HuSprAnimRead(HuDataReadNum(0x250043, MEMORY_DEFAULT_NUM)); + var_r30->unk_00 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M406, 0x40), MEMORY_DEFAULT_NUM)); + var_r30->unk_04 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M406, 0x41), MEMORY_DEFAULT_NUM)); + var_r30->unk_08 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M406, 0x42), MEMORY_DEFAULT_NUM)); + var_r30->unk_0C = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M406, 0x43), MEMORY_DEFAULT_NUM)); var_r30->unk_24 = 0.0f; var_r30->unk_28 = 0.0f; var_r27 = fn_1_B474(var_r30->unk_00, 1); diff --git a/src/REL/m406Dll/player.c b/src/REL/m406Dll/player.c index ca3e6e13..9de7b554 100644 --- a/src/REL/m406Dll/player.c +++ b/src/REL/m406Dll/player.c @@ -251,16 +251,16 @@ char *lbl_1_data_1068[4] = { }; s32 lbl_1_data_1078[10] = { - 0x5F0037, - 0x5F0055, - 0x5F0039, - 0x5F0054, - 0x5F0041, - 0x5F0056, - 0x5F0050, - 0x5F0016, - 0x5F0053, - 0x5F0023, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x37), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x55), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x39), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x54), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x41), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x56), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x50), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x16), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x53), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x23), }; s32 lbl_1_data_10A0[8][4] = { diff --git a/src/REL/m407dll/effect.c b/src/REL/m407dll/effect.c index cb22c723..cb0dd7fc 100644 --- a/src/REL/m407dll/effect.c +++ b/src/REL/m407dll/effect.c @@ -1,9 +1,10 @@ -#include "src/REL/m407dll/m407dll.h" #include "game/process.h" #include "game/object.h" #include "game/hsfmotion.h" #include "game/hsfdraw.h" +#include "REL/m407dll.h" + typedef struct unkDominationData4 { /* 0x00 */ u32 unk_00; /* 0x04 */ u32 unk_04; @@ -28,11 +29,11 @@ omObjData* lbl_1_bss_37E0[100]; //data s32 lbl_1_data_288[] = { - 0x00260015, - 0x00260016, - 0x00260017, - 0x00260018, - 0x00260019 + DATA_MAKE_NUM(DATADIR_M407, 0x15), + DATA_MAKE_NUM(DATADIR_M407, 0x16), + DATA_MAKE_NUM(DATADIR_M407, 0x17), + DATA_MAKE_NUM(DATADIR_M407, 0x18), + DATA_MAKE_NUM(DATADIR_M407, 0x19) }; ObjFuncs lbl_1_data_29C[] = { @@ -143,7 +144,7 @@ void fn_1_46EC(omObjData* arg0) { temp_r30->unk_00 = arg0->work[0]; temp_r30->unk_08 = arg0->work[1]; temp_r30->unk_1C = 0; - arg0->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_288[temp_r30->unk_08], MEMORY_DEFAULT_NUM, HEAP_DATA)); + arg0->model[0] = Hu3DModelCreateFile(lbl_1_data_288[temp_r30->unk_08]); Hu3DModelAttrSet(arg0->model[0], 0x4000); Hu3DModelAttrSet(arg0->model[0], 0x40000002); Hu3DModelAttrSet(arg0->model[0], 1); diff --git a/src/REL/m407dll/map.c b/src/REL/m407dll/map.c index 91d7f946..806579cc 100644 --- a/src/REL/m407dll/map.c +++ b/src/REL/m407dll/map.c @@ -1,51 +1,47 @@ -#include "game/process.h" -#include "game/object.h" #include "game/gamework_data.h" #include "game/hsfman.h" +#include "game/object.h" +#include "game/process.h" #define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) -//function signatures -void fn_1_162C(omObjData*); -void fn_1_1A8C(omObjData*); +// function signatures +void fn_1_162C(omObjData *); +void fn_1_1A8C(omObjData *); -//bss -Process* lbl_1_bss_2C; -omObjData* lbl_1_bss_28; +// bss +Process *lbl_1_bss_2C; +omObjData *lbl_1_bss_28; s16 lbl_1_bss_24; s32 lbl_1_bss_20; -//data +// data s32 lbl_1_data_198[] = { - 0x00260000, - 0x00260002, - 0x00260003, - 0x00260001, - 0x00260005, - 0x00260006, - 0x00260007, - 0x00260008, - 0x00260009, - 0x0026000A, - 0x0026000B, - 0x0026000C, - 0x00260004, + DATA_MAKE_NUM(DATADIR_M407, 0x00), + DATA_MAKE_NUM(DATADIR_M407, 0x02), + DATA_MAKE_NUM(DATADIR_M407, 0x03), + DATA_MAKE_NUM(DATADIR_M407, 0x01), + DATA_MAKE_NUM(DATADIR_M407, 0x05), + DATA_MAKE_NUM(DATADIR_M407, 0x06), + DATA_MAKE_NUM(DATADIR_M407, 0x07), + DATA_MAKE_NUM(DATADIR_M407, 0x08), + DATA_MAKE_NUM(DATADIR_M407, 0x09), + DATA_MAKE_NUM(DATADIR_M407, 0x0A), + DATA_MAKE_NUM(DATADIR_M407, 0x0B), + DATA_MAKE_NUM(DATADIR_M407, 0x0C), + DATA_MAKE_NUM(DATADIR_M407, 0x04), }; -Vec lbl_1_data_1CC[] = { - {600.0f, 3.0f, -300.0f}, - {200.0f, 3.0f, -300.0f}, - {-200.0f, 3.0f, -300.0f}, - {-600.0f, 3.0f, -300.0f} -}; +Vec lbl_1_data_1CC[] = { { 600.0f, 3.0f, -300.0f }, { 200.0f, 3.0f, -300.0f }, { -200.0f, 3.0f, -300.0f }, { -600.0f, 3.0f, -300.0f } }; -Point3d lbl_1_data_1FC = {2000.0f, 3000.0f, 2000.0f}; -Point3d lbl_1_data_208 = {-0.5f, -0.5f, -0.5f}; -GXColor lbl_1_data_214 = {255, 255, 255, 255}; -Point3d lbl_1_data_218 = {0.0f, 1.0f, 0.0f}; +Point3d lbl_1_data_1FC = { 2000.0f, 3000.0f, 2000.0f }; +Point3d lbl_1_data_208 = { -0.5f, -0.5f, -0.5f }; +GXColor lbl_1_data_214 = { 255, 255, 255, 255 }; +Point3d lbl_1_data_218 = { 0.0f, 1.0f, 0.0f }; -void fn_1_14F0(Process* arg0, s32 arg1) { - LightData* sp10; +void fn_1_14F0(Process *arg0, s32 arg1) +{ + LightData *sp10; lbl_1_bss_2C = arg0; lbl_1_bss_20 = arg1; @@ -57,7 +53,8 @@ void fn_1_14F0(Process* arg0, s32 arg1) { sp10 = &Hu3DGlobalLight[lbl_1_bss_24]; } -void fn_1_15D8(void) { +void fn_1_15D8(void) +{ s32 i; for (i = 0; i < 13; i++) { @@ -65,7 +62,8 @@ void fn_1_15D8(void) { } } -void fn_1_162C(omObjData* arg0) { +void fn_1_162C(omObjData *arg0) +{ s32 var_r30; s32 var_r30_2; s32 var_r30_3; @@ -73,50 +71,52 @@ void fn_1_162C(omObjData* arg0) { s32 i; arg0->func = fn_1_1A8C; - arg0->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[2], MEMORY_DEFAULT_NUM, HEAP_DATA)); + arg0->model[0] = Hu3DModelCreateFile(lbl_1_data_198[2]); Hu3DModelShadowMapSet(arg0->model[0]); Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f); - arg0->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[3], MEMORY_DEFAULT_NUM, HEAP_DATA)); + arg0->model[1] = Hu3DModelCreateFile(lbl_1_data_198[3]); Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f); Hu3DModelAttrSet(arg0->model[1], 1); for (i = 0; i < ARRAY_COUNT(GWPlayerCfg); i++) { - arg0->model[i+2] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[GWPlayerCfg[i].character + 4], MEMORY_DEFAULT_NUM, HEAP_DATA)); + arg0->model[i + 2] = Hu3DModelCreateFile(lbl_1_data_198[GWPlayerCfg[i].character + 4]); Hu3DModelAmbSet(arg0->model[i + 2], 1.0f, 1.0f, 1.0f); Hu3DModelShadowMapSet(arg0->model[i + 2]); } for (i = 0; i < 5; i++) { if (i == 0) { - arg0->model[i + 6] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[0], MEMORY_DEFAULT_NUM, HEAP_DATA)); - } else { + arg0->model[i + 6] = Hu3DModelCreateFile(lbl_1_data_198[0]); + } + else { arg0->model[i + 6] = Hu3DModelLink(arg0->model[6]); } Hu3DModelAmbSet(arg0->model[i + 6], 1.0f, 1.0f, 1.0f); Hu3DModelShadowMapSet(arg0->model[i + 6]); } - arg0->model[11] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[12], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->model[12] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_198[1], MEMORY_DEFAULT_NUM, HEAP_DATA)); + arg0->model[11] = Hu3DModelCreateFile(lbl_1_data_198[12]); + arg0->model[12] = Hu3DModelCreateFile(lbl_1_data_198[1]); for (i = 0; i < 4; i++) { Hu3DModelPosSetV(arg0->model[i + 2], &lbl_1_data_1CC[i]); } for (i = 0; i < 5; i++) { - Hu3DModelPosSet(arg0->model[i + 6], 0.0f, 0.0f, -2000.0f + (8000.0f * (f32) i)); + Hu3DModelPosSet(arg0->model[i + 6], 0.0f, 0.0f, -2000.0f + (8000.0f * (f32)i)); } - + Hu3DModelPosSet(arg0->model[11], 0.0f, 0.0f, -3900.0f); Hu3DModelPosSet(arg0->model[12], 0.0f, 0.0f, 0.0f); Hu3DModelAttrSet(arg0->model[12], 0x40000001); - + if (lbl_1_bss_20 > 0) { - Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 200.0f * (f32) lbl_1_bss_20); + Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 200.0f * (f32)lbl_1_bss_20); Hu3DModelAttrReset(arg0->model[1], 1); } } -void fn_1_1A8C(omObjData* arg0) { +void fn_1_1A8C(omObjData *arg0) +{ Point3d sp8; sp8.x = lbl_1_data_1FC.x; @@ -124,4 +124,4 @@ void fn_1_1A8C(omObjData* arg0) { sp8.z = lbl_1_data_1FC.z + Center.z; Hu3DGLightPosSetV(lbl_1_bss_24, &sp8, &lbl_1_data_208); Hu3DShadowPosSet(&sp8, &lbl_1_data_218, &Center); -} \ No newline at end of file +} diff --git a/src/REL/m407dll/player.c b/src/REL/m407dll/player.c index 69fe3858..47a87f2d 100644 --- a/src/REL/m407dll/player.c +++ b/src/REL/m407dll/player.c @@ -1,27 +1,27 @@ -#include "game/process.h" -#include "game/object.h" -#include "game/gamework_data.h" -#include "game/pad.h" -#include "game/objsub.h" #include "game/chrman.h" -#include "game/hsfman.h" #include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" #include "math.h" #include "rel_sqrt_consts.h" #define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) -typedef void (*ObjFuncs)(omObjData*); +typedef void (*ObjFuncs)(omObjData *); typedef struct unkDominationData { u8 unk_00; u8 unk_01; u8 unk_02; - //padding unk_03 + // padding unk_03 s32 unk_04; s32 unk_08; u8 unk_0C; - //padding unk_0D + // padding unk_0D f32 unk_10; f32 unk_14; f32 unk_18; @@ -35,90 +35,150 @@ typedef struct unkDominationData { s32 unk_38; } unkDominationData; -//function signatures -void fn_1_628(omObjData*, s32); -void fn_1_64C(omObjData*); -void fn_1_99C(omObjData*); -void fn_1_A1C(omObjData* arg0); +// function signatures +void fn_1_628(omObjData *, s32); +void fn_1_64C(omObjData *); +void fn_1_99C(omObjData *); +void fn_1_A1C(omObjData *arg0); void fn_1_26CC(u8); void fn_1_4544(s32, s32, f32, f32, f32); s16 fn_1_28B8(u8); s16 fn_1_28E4(u8); -void fn_1_A88(omObjData* arg0); -void fn_1_A8C(omObjData* arg0); -void fn_1_C58(omObjData* arg0); -void fn_1_CF4(omObjData* arg0); -void fn_1_DB4(omObjData* arg0); -void fn_1_F8C(omObjData* arg0); -void fn_1_1074(omObjData* arg0); -void fn_1_11CC(omObjData* arg0); -void fn_1_13E4(omObjData* arg0); -void fn_1_1460(omObjData* arg0); +void fn_1_A88(omObjData *arg0); +void fn_1_A8C(omObjData *arg0); +void fn_1_C58(omObjData *arg0); +void fn_1_CF4(omObjData *arg0); +void fn_1_DB4(omObjData *arg0); +void fn_1_F8C(omObjData *arg0); +void fn_1_1074(omObjData *arg0); +void fn_1_11CC(omObjData *arg0); +void fn_1_13E4(omObjData *arg0); +void fn_1_1460(omObjData *arg0); -//bss -Process* lbl_1_bss_18; -omObjData* lbl_1_bss_8[4]; -Process* lbl_1_bss_0[2]; +// bss +Process *lbl_1_bss_18; +omObjData *lbl_1_bss_8[4]; +Process *lbl_1_bss_0[2]; -//data +// data u32 lbl_1_data_0[8][8] = { - {0x005F0000, 0x005F0024, 0x005F0029, 0x005F0005, 0x005F0006, 0x005F004A, 0x005F004B, 0x005F0018}, - {0x001A0000, 0x001A0024, 0x001A0029, 0x001A0005, 0x001A0006, 0x001A004A, 0x001A004B, 0x001A0018}, - {0x006D0000, 0x006D0024, 0x006D0029, 0x006D0005, 0x006D0006, 0x006D004A, 0x006D004B, 0x006D0018}, - {0x008A0000, 0x008A0024, 0x008A0029, 0x008A0005, 0x008A0006, 0x008A004A, 0x008A004B, 0x008A0018}, - {0x00850000, 0x00850024, 0x00850029, 0x00850005, 0x00850006, 0x0085004A, 0x0085004B, 0x00850018}, - {0x00110000, 0x00110024, 0x00110029, 0x00110005, 0x00110006, 0x0011004A, 0x0011004B, 0x00110018}, - {0x000D0000, 0x000D0024, 0x000D0029, 0x000D0005, 0x000D0006, 0x000D004A, 0x000D004B, 0x000D0018}, - {0x00810000, 0x00810024, 0x00810029, 0x00810005, 0x00810006, 0x0081004A, 0x0081004B, 0x00810018} + { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x24), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x29), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x4A), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x4B), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x24), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x29), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x05), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x06), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x4A), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x4B), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x24), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x29), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x05), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x06), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x4A), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x4B), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x24), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x29), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x05), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x06), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x4A), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x4B), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x24), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x29), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x05), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x06), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x4A), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x4B), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x24), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x29), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x05), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x06), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x4A), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x4B), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x24), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x29), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x05), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x06), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x4A), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x4B), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x24), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x29), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x05), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x06), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x4A), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x4B), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x18), + }, }; -s32 lbl_1_data_100[] = {0x0026000D, 0x0026000E, 0x0026000F, 0x00260010, 0x00260011, 0x00260012, 0x00260013, 0x00260014}; +s32 lbl_1_data_100[] = { + DATA_MAKE_NUM(DATADIR_M407, 0x0D), + DATA_MAKE_NUM(DATADIR_M407, 0x0E), + DATA_MAKE_NUM(DATADIR_M407, 0x0F), + DATA_MAKE_NUM(DATADIR_M407, 0x10), + DATA_MAKE_NUM(DATADIR_M407, 0x11), + DATA_MAKE_NUM(DATADIR_M407, 0x12), + DATA_MAKE_NUM(DATADIR_M407, 0x13), + DATA_MAKE_NUM(DATADIR_M407, 0x14), +}; char lbl_1_data_120[] = "test11_tex_we-itemhook-r"; -char* lbl_1_data_13C[] = { - lbl_1_data_120, - lbl_1_data_120, - lbl_1_data_120, - lbl_1_data_120, - lbl_1_data_120, - lbl_1_data_120, - lbl_1_data_120, - lbl_1_data_120 -}; +char *lbl_1_data_13C[] + = { lbl_1_data_120, lbl_1_data_120, lbl_1_data_120, lbl_1_data_120, lbl_1_data_120, lbl_1_data_120, lbl_1_data_120, lbl_1_data_120 }; -ObjFuncs lbl_1_data_15C[] = { - fn_1_A88, - fn_1_A8C, - fn_1_C58, - fn_1_CF4, - fn_1_DB4, - fn_1_F8C, - fn_1_1074, - fn_1_11CC, - fn_1_13E4, - fn_1_1460 -}; +ObjFuncs lbl_1_data_15C[] = { fn_1_A88, fn_1_A8C, fn_1_C58, fn_1_CF4, fn_1_DB4, fn_1_F8C, fn_1_1074, fn_1_11CC, fn_1_13E4, fn_1_1460 }; -u8 lbl_1_data_184[4][2] = { - {0x3C, 0x0F}, - {0x50, 0x0F}, - {0x64, 0x14}, - {0x78, 0x14} -}; +u8 lbl_1_data_184[4][2] = { { 0x3C, 0x0F }, { 0x50, 0x0F }, { 0x64, 0x14 }, { 0x78, 0x14 } }; -inline void SetDominationDataStuff(omObjData* arg0, s32 val0, s32 val1) { - unkDominationData* temp_r29 = arg0->data; +inline void SetDominationDataStuff(omObjData *arg0, s32 val0, s32 val1) +{ + unkDominationData *temp_r29 = arg0->data; temp_r29->unk_1C = val0; temp_r29->unk_20 = val1; } -void ObjectSetup(void) { +void ObjectSetup(void) +{ lbl_1_bss_0[0] = omInitObjMan(0x2F8, 0x2000); omGameSysInit(lbl_1_bss_0[0]); fn_1_4980(lbl_1_bss_0[0]); } -void fn_1_F4(Process* arg0) { +void fn_1_F4(Process *arg0) +{ u32 i; lbl_1_bss_18 = arg0; @@ -128,7 +188,8 @@ void fn_1_F4(Process* arg0) { } } -void fn_1_194(void) { +void fn_1_194(void) +{ s32 i; for (i = 0; i < 4; i++) { @@ -136,7 +197,8 @@ void fn_1_194(void) { } } -void fn_1_1E4(void) { +void fn_1_1E4(void) +{ s32 i; for (i = 0; i < 4; i++) { @@ -144,7 +206,8 @@ void fn_1_1E4(void) { } } -void fn_1_238(void) { +void fn_1_238(void) +{ s32 i; for (i = 0; i < 4; i++) { @@ -152,7 +215,8 @@ void fn_1_238(void) { } } -void fn_1_28C(void) { +void fn_1_28C(void) +{ s32 i; for (i = 0; i < 4; i++) { @@ -160,7 +224,8 @@ void fn_1_28C(void) { } } -void fn_1_2E0(void) { +void fn_1_2E0(void) +{ s32 i; for (i = 0; i < 4; i++) { @@ -168,7 +233,8 @@ void fn_1_2E0(void) { } } -void fn_1_334(void) { +void fn_1_334(void) +{ s32 i; for (i = 0; i < 4; i++) { @@ -176,19 +242,22 @@ void fn_1_334(void) { } } -void fn_1_388(u8 arg0, s32 arg1) { - omObjData* obj = lbl_1_bss_8[arg0]; - unkDominationData* unkData = obj->data; +void fn_1_388(u8 arg0, s32 arg1) +{ + omObjData *obj = lbl_1_bss_8[arg0]; + unkDominationData *unkData = obj->data; unkData->unk_38 = arg1; } -void fn_1_3C4(u8 arg0) { +void fn_1_3C4(u8 arg0) +{ fn_1_628(lbl_1_bss_8[arg0], 8); } -void fn_1_404(void) { - omObjData* temp_r31; - unkDominationData* unkData; +void fn_1_404(void) +{ + omObjData *temp_r31; + unkDominationData *unkData; s32 temp_r0; u8 i; @@ -196,68 +265,74 @@ void fn_1_404(void) { temp_r31 = lbl_1_bss_8[i]; unkData = temp_r31->data; switch (unkData->unk_38) { - case 0: - fn_1_628(temp_r31, 9); - break; - case 1: - fn_1_628(temp_r31, 6); - break; - case 2: - fn_1_628(temp_r31, 9); - break; + case 0: + fn_1_628(temp_r31, 9); + break; + case 1: + fn_1_628(temp_r31, 6); + break; + case 2: + fn_1_628(temp_r31, 9); + break; } } } -s32 fn_1_4C0(u8 arg0) { - unkDominationData* unkData; - +s32 fn_1_4C0(u8 arg0) +{ + unkDominationData *unkData; + if (arg0 >= 4) { return -1; } - + unkData = lbl_1_bss_8[arg0]->data; return unkData->unk_01; } -s32 fn_1_508(u8 arg0) { - unkDominationData* unkData = lbl_1_bss_8[arg0]->data; +s32 fn_1_508(u8 arg0) +{ + unkDominationData *unkData = lbl_1_bss_8[arg0]->data; return unkData->unk_04; } -s32 fn_1_53C(u8 arg0) { - return ((unkDominationData*)(lbl_1_bss_8[arg0]->data))->unk_1C == 0; +s32 fn_1_53C(u8 arg0) +{ + return ((unkDominationData *)(lbl_1_bss_8[arg0]->data))->unk_1C == 0; } -void fn_1_568(s16 arg0, s16 arg1, s16 arg2) { - unkDominationData* unkData; +void fn_1_568(s16 arg0, s16 arg1, s16 arg2) +{ + unkDominationData *unkData; unkData = lbl_1_bss_8[arg0]->data; switch (arg1) { - case 0: - omVibrate(unkData->unk_00, arg2, 6, 6); - break; - case 1: - omVibrate(unkData->unk_00, arg2, 4, 2); - break; - case 2: - omVibrate(unkData->unk_00, arg2, 0xC, 0); - break; + case 0: + omVibrate(unkData->unk_00, arg2, 6, 6); + break; + case 1: + omVibrate(unkData->unk_00, arg2, 4, 2); + break; + case 2: + omVibrate(unkData->unk_00, arg2, 0xC, 0); + break; } } -void fn_1_628(omObjData* arg0, s32 arg1) { - unkDominationData* temp_r31; +void fn_1_628(omObjData *arg0, s32 arg1) +{ + unkDominationData *temp_r31; temp_r31 = arg0->data; temp_r31->unk_1C = arg1; temp_r31->unk_20 = 0; } -void fn_1_64C(omObjData* arg0) { +void fn_1_64C(omObjData *arg0) +{ u32 temp_r29; - unkDominationData* temp_r27; - unkDominationData* temp_r31; + unkDominationData *temp_r27; + unkDominationData *temp_r31; u32 i; arg0->func = fn_1_A1C; @@ -276,14 +351,14 @@ void fn_1_64C(omObjData* arg0) { temp_r31->unk_30 = (600.0f / (lbl_1_data_184[temp_r31->unk_02][0] - frandmod31(lbl_1_data_184[temp_r31->unk_02][1]))); temp_r31->unk_2C = temp_r31->unk_30; arg0->model[0] = CharModelCreate(temp_r31->unk_01, 8); - arg0->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_100[temp_r31->unk_01], MEMORY_DEFAULT_NUM, HEAP_DATA)); + arg0->model[1] = Hu3DModelCreateFile(lbl_1_data_100[temp_r31->unk_01]); Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f); Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f); - + for (i = 0; i < 8; i++) { arg0->motion[i] = CharModelMotionCreate(temp_r31->unk_01, lbl_1_data_0[temp_r31->unk_01][i]); } - + Hu3DModelShadowSet(arg0->model[0]); Hu3DModelShadowSet(arg0->model[1]); CharModelMotionDataClose(temp_r31->unk_01); @@ -296,47 +371,49 @@ void fn_1_64C(omObjData* arg0) { SetDominationDataStuff(arg0, 0, 0); } -void fn_1_99C(omObjData* arg0) { +void fn_1_99C(omObjData *arg0) +{ s32 i; for (i = 0; i < 8; i++) { Hu3DMotionKill(arg0->motion[i]); } - for (i = 0; i < 2; i++){ + for (i = 0; i < 2; i++) { Hu3DModelKill(arg0->model[i]); } - + HuMemDirectFree(arg0->data); } -void fn_1_A1C(omObjData* arg0) { - unkDominationData* temp_r31; +void fn_1_A1C(omObjData *arg0) +{ + unkDominationData *temp_r31; temp_r31 = arg0->data; lbl_1_data_15C[temp_r31->unk_1C](arg0); omSetTra(arg0, temp_r31->unk_10, temp_r31->unk_14, temp_r31->unk_18); } -void fn_1_A88(omObjData* arg0) { +void fn_1_A88(omObjData *arg0) { } -} - -void fn_1_A8C(omObjData* arg0) { +void fn_1_A8C(omObjData *arg0) +{ s32 var_r29; - unkDominationData* temp_r31; + unkDominationData *temp_r31; var_r29 = 0; temp_r31 = arg0->data; temp_r31->unk_28 += 1.0f; - + if (temp_r31->unk_04 == 0) { var_r29 = (HuPadBtnDown[temp_r31->unk_0C] & 0x100) ? 1 : 0; - } else if ((u32) temp_r31->unk_28 >= (u32) temp_r31->unk_2C) { + } + else if ((u32)temp_r31->unk_28 >= (u32)temp_r31->unk_2C) { var_r29 = 1; temp_r31->unk_2C += temp_r31->unk_30; } - + if (var_r29 != 0) { CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[2], 0.0f, 0.0f, 0); fn_1_4544(4, 0x10, 600.0f - (400.0f * temp_r31->unk_00), -20.0f, -450.0f); @@ -344,15 +421,16 @@ void fn_1_A8C(omObjData* arg0) { temp_r31->unk_34 = 1; return; } - + if ((temp_r31->unk_34 != 0) && (Hu3DMotionEndCheck(arg0->model[0]) != 0)) { CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[1], 0.0f, 0.0f, 0x40000001); temp_r31->unk_34 = 0; } } -void fn_1_C58(omObjData* arg0) { - unkDominationData* temp_r30; +void fn_1_C58(omObjData *arg0) +{ + unkDominationData *temp_r30; temp_r30 = arg0->data; if (Hu3DMotionEndCheck(arg0->model[0]) != 0) { @@ -362,8 +440,9 @@ void fn_1_C58(omObjData* arg0) { } } -void fn_1_CF4(omObjData* arg0) { - unkDominationData* temp_r31; +void fn_1_CF4(omObjData *arg0) +{ + unkDominationData *temp_r31; temp_r31 = arg0->data; if (temp_r31->unk_20 == 0) { @@ -375,56 +454,59 @@ void fn_1_CF4(omObjData* arg0) { } } -void fn_1_DB4(omObjData* arg0) { +void fn_1_DB4(omObjData *arg0) +{ f32 temp_f31; f32 temp_f30; - unkDominationData* temp_r31; + unkDominationData *temp_r31; temp_r31 = arg0->data; - + if (temp_r31->unk_20 == 0) { CharModelVoiceEnableSet(temp_r31->unk_01, arg0->motion[3], 0); CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[3], 0.0f, 10.0f, 0); temp_r31->unk_24 = 0.0f; temp_r31->unk_20++; } - + temp_f31 = (32.0f * sin(1.0471975511965976)) - (9.8f * temp_r31->unk_24); temp_f30 = 22.0f * cos(1.0471975511965976); temp_r31->unk_18 = temp_r31->unk_18 + temp_f30; temp_r31->unk_14 = temp_r31->unk_14 + temp_f31; temp_r31->unk_24 += 0.3f; - + if (!(temp_f31 < 0.0f) || !(temp_r31->unk_14 <= 30.0f)) { return; } - + temp_r31->unk_14 = 30.0f; CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[4], 0.0f, 10.0f, 0); SetDominationDataStuff(arg0, 0, 0); } -//can also be placed into fn_1_F8C as static const -const s32 lbl_1_rodata_70[] = {0x00000122, 0x00000162, 0x000001A2, 0x000001E2, 0x00000222, 0x00000262, 0x000002A2, 0x000002E2}; +// can also be placed into fn_1_F8C as static const +const s32 lbl_1_rodata_70[] = { 0x00000122, 0x00000162, 0x000001A2, 0x000001E2, 0x00000222, 0x00000262, 0x000002A2, 0x000002E2 }; -void fn_1_F8C(omObjData* arg0) { - unkDominationData* temp_r31; +void fn_1_F8C(omObjData *arg0) +{ + unkDominationData *temp_r31; temp_r31 = arg0->data; - + if (temp_r31->unk_20 == 0) { CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[5], 0.0f, 10.0f, 0); HuAudFXPlay(lbl_1_rodata_70[temp_r31->unk_01]); } - + if (temp_r31->unk_20++ >= 120) { CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[0], 0.0f, 10.0f, 0x40000001); SetDominationDataStuff(arg0, 0, 0); } } -void fn_1_1074(omObjData* arg0) { - unkDominationData* temp_r31; +void fn_1_1074(omObjData *arg0) +{ + unkDominationData *temp_r31; temp_r31 = arg0->data; if (temp_r31->unk_20 == 0) { @@ -433,18 +515,19 @@ void fn_1_1074(omObjData* arg0) { temp_r31->unk_24 = 0.0f; temp_r31->unk_20 = 1; } - + temp_r31->unk_14 = (temp_r31->unk_14 + ((80.0 * sin(1.5707963267948966)) - (9.8 * temp_r31->unk_24))); temp_r31->unk_24 += 0.3f; - + if (!(temp_r31->unk_14 < 1000.0f)) { CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[4], 0.0f, 10.0f, 0); SetDominationDataStuff(arg0, 7, 0); } } -void fn_1_11CC(omObjData* arg0) { - unkDominationData* temp_r31; +void fn_1_11CC(omObjData *arg0) +{ + unkDominationData *temp_r31; s16 temp; temp_r31 = arg0->data; @@ -456,10 +539,10 @@ void fn_1_11CC(omObjData* arg0) { temp_r31->unk_24 = 0.0f; temp_r31->unk_20 = 1; } - + temp_r31->unk_14 = (temp_r31->unk_14 - (2.0f + (9.8f * temp_r31->unk_24))); temp_r31->unk_24 += 0.3f; - + if (!(temp_r31->unk_14 > 300.0f)) { temp_r31->unk_14 = 300.0f; CharModelVoiceEnableSet(temp_r31->unk_01, arg0->motion[4], 0); @@ -473,16 +556,18 @@ void fn_1_11CC(omObjData* arg0) { } } -void fn_1_13E4(omObjData* arg0) { - unkDominationData* temp_r30; +void fn_1_13E4(omObjData *arg0) +{ + unkDominationData *temp_r30; temp_r30 = arg0->data; CharModelMotionShiftSet(temp_r30->unk_01, arg0->motion[6], 0.0f, 10.0f, 0); SetDominationDataStuff(arg0, 0, 0); } -void fn_1_1460(omObjData* arg0) { - unkDominationData* temp_r30; +void fn_1_1460(omObjData *arg0) +{ + unkDominationData *temp_r30; temp_r30 = arg0->data; CharModelVoiceEnableSet(temp_r30->unk_01, arg0->motion[7], 0); diff --git a/src/REL/m407dll/score.c b/src/REL/m407dll/score.c index ec8d69a0..e5cd5fed 100644 --- a/src/REL/m407dll/score.c +++ b/src/REL/m407dll/score.c @@ -1,42 +1,40 @@ -#include "game/process.h" -#include "game/object.h" #include "game/esprite.h" +#include "game/object.h" +#include "game/process.h" +#include "game/sprite.h" #define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) typedef void (*ObjFuncs)(void); typedef struct unkDominationData6 { -/* 0x00 */ s32 unk_00; -/* 0x04 */ s32 unk_04; -/* 0x08 */ s16 unk_08; -/* 0x0A */ s16 unk_0A; -/* 0x0C */ s16 unk_0C[8]; //what size is this?? -/* 0x1C */ s32 unk_1C; -/* 0x20 */ f32 unk_20; -} unkDominationData6; //sizeof 0x24 + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s16 unk_08; + /* 0x0A */ s16 unk_0A; + /* 0x0C */ s16 unk_0C[8]; // what size is this?? + /* 0x1C */ s32 unk_1C; + /* 0x20 */ f32 unk_20; +} unkDominationData6; // sizeof 0x24 -//func signatures +// func signatures void fn_1_61A0(void); void fn_1_6218(void); void fn_1_62A0(void); -void fn_1_5FE4(omObjData* arg0); +void fn_1_5FE4(omObjData *arg0); void fn_1_5FB4(s32 arg0); s16 fn_1_28D4(void); -//bss -Process* lbl_1_bss_398C; -omObjData* lbl_1_bss_3988; +// bss +Process *lbl_1_bss_398C; +omObjData *lbl_1_bss_3988; -//data -ObjFuncs lbl_1_data_360[] = { - fn_1_61A0, - fn_1_6218, - fn_1_62A0 -}; +// data +ObjFuncs lbl_1_data_360[] = { fn_1_61A0, fn_1_6218, fn_1_62A0 }; -void fn_1_5C5C(Process* arg0, s16 arg1) { - unkDominationData6* temp_r31; +void fn_1_5C5C(Process *arg0, s16 arg1) +{ + unkDominationData6 *temp_r31; u32 i; lbl_1_bss_398C = arg0; @@ -45,21 +43,21 @@ void fn_1_5C5C(Process* arg0, s16 arg1) { temp_r31 = lbl_1_bss_3988->data; temp_r31->unk_08 = arg1; temp_r31->unk_0A = 0; - temp_r31->unk_0C[6] = espEntry(0x260025, 2, 0); + temp_r31->unk_0C[6] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x25), 2, 0); espTPLvlSet(temp_r31->unk_0C[6], 0.5f); espPosSet(temp_r31->unk_0C[6], 508.0f, 64.0f); - temp_r31->unk_0C[7] = espEntry(0x260022, 1, 0); + temp_r31->unk_0C[7] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x22), 1, 0); espPosSet(temp_r31->unk_0C[7], 480.0f, 56.0f); for (i = 0; i < 3; i++) { - temp_r31->unk_0C[i] = espEntry(0x26001F, 0, 0); + temp_r31->unk_0C[i] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x1F), 0, 0); espPosSet(temp_r31->unk_0C[i], i * 16 + 0x1F4, 56.0f); espDispOff(temp_r31->unk_0C[i]); } for (i = 0; i < 3; i++) { - temp_r31->unk_0C[i+3] = espEntry(0x260020, 1, 0); - espPosSet(temp_r31->unk_0C[i+3], i * 16 + 0x1F4, 74.0f); + temp_r31->unk_0C[i + 3] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x20), 1, 0); + espPosSet(temp_r31->unk_0C[i + 3], i * 16 + 0x1F4, 74.0f); } for (i = 0; i < 8; i++) { @@ -69,44 +67,49 @@ void fn_1_5C5C(Process* arg0, s16 arg1) { fn_1_5FB4(0); } -void fn_1_5ECC(void) { +void fn_1_5ECC(void) +{ s32 i; - unkDominationData6* temp_r30; + unkDominationData6 *temp_r30; temp_r30 = lbl_1_bss_3988->data; for (i = 0; i < 7; i++) { espKill(temp_r30->unk_0C[i]); } - + HuMemDirectFree(lbl_1_bss_3988->data); } -void fn_1_5F40(s32 arg0) { +void fn_1_5F40(s32 arg0) +{ switch (arg0) { - case 0: - fn_1_5FB4(1); - break; - case 1: - fn_1_5FB4(2); - break; + case 0: + fn_1_5FB4(1); + break; + case 1: + fn_1_5FB4(2); + break; } } -void fn_1_5F90(void) { +void fn_1_5F90(void) +{ fn_1_5FB4(0); } -void fn_1_5FB4(s32 arg0) { - unkDominationData6* temp_r31; +void fn_1_5FB4(s32 arg0) +{ + unkDominationData6 *temp_r31; temp_r31 = lbl_1_bss_3988->data; temp_r31->unk_00 = arg0; temp_r31->unk_04 = 0; } -void fn_1_5FE4(omObjData* arg0) { +void fn_1_5FE4(omObjData *arg0) +{ s16 temp_r31; - unkDominationData6* temp_r30; + unkDominationData6 *temp_r30; temp_r30 = lbl_1_bss_3988->data; lbl_1_data_360[temp_r30->unk_00](); @@ -114,19 +117,20 @@ void fn_1_5FE4(omObjData* arg0) { espBankSet(temp_r30->unk_0C[0], temp_r31 / 100); temp_r31 = (temp_r31 - ((temp_r31 / 100) * 100)); espBankSet(temp_r30->unk_0C[1], (temp_r31 / 10)); - temp_r31 = (temp_r31 - ((temp_r31 / 10) * 10)); + temp_r31 = (temp_r31 - ((temp_r31 / 10) * 10)); espBankSet(temp_r30->unk_0C[2], temp_r31); temp_r31 = temp_r30->unk_0A; espBankSet(temp_r30->unk_0C[3], (temp_r31 / 100)); temp_r31 = (temp_r31 - ((temp_r31 / 100) * 100)); - espBankSet(temp_r30->unk_0C[4], (temp_r31 / 10)); + espBankSet(temp_r30->unk_0C[4], (temp_r31 / 10)); temp_r31 = (temp_r31 - ((temp_r31 / 10) * 10)); espBankSet(temp_r30->unk_0C[5], temp_r31); } -void fn_1_61A0(void) { +void fn_1_61A0(void) +{ s32 i; - unkDominationData6* temp_r31; + unkDominationData6 *temp_r31; temp_r31 = lbl_1_bss_3988->data; @@ -138,9 +142,10 @@ void fn_1_61A0(void) { } } -void fn_1_6218(void) { +void fn_1_6218(void) +{ s16 i; - unkDominationData6* temp_r31; + unkDominationData6 *temp_r31; temp_r31 = lbl_1_bss_3988->data; @@ -154,9 +159,10 @@ void fn_1_6218(void) { temp_r31->unk_0A = fn_1_28D4(); } -void fn_1_62A0(void) { +void fn_1_62A0(void) +{ s32 i; - unkDominationData6* temp_r31; + unkDominationData6 *temp_r31; temp_r31 = lbl_1_bss_3988->data; @@ -174,7 +180,8 @@ void fn_1_62A0(void) { temp_r31->unk_20 = 1.2f; temp_r31->unk_1C = 1; } - } else { + } + else { if ((temp_r31->unk_20 -= 0.04f) <= 1.0f) { temp_r31->unk_20 = 1.0f; temp_r31->unk_1C = 0; diff --git a/src/REL/m407dll/whomp.c b/src/REL/m407dll/whomp.c index f10df704..aeec5aab 100644 --- a/src/REL/m407dll/whomp.c +++ b/src/REL/m407dll/whomp.c @@ -1,45 +1,45 @@ -#include "game/process.h" -#include "game/object.h" -#include "game/hsfman.h" -#include "game/hsfmotion.h" #include "game/audio.h" #include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/object.h" +#include "game/process.h" #define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) -#define MAX_WHOMPS_PLAYER 160 -#define MAX_WHOMPS_ALL_PLAYERS MAX_WHOMPS_PLAYER * ARRAY_COUNT(GWPlayer) -#define MAX_WHOMPS (MAX_WHOMPS_PLAYER + 1) * ARRAY_COUNT(GWPlayer) +#define MAX_WHOMPS_PLAYER 160 +#define MAX_WHOMPS_ALL_PLAYERS MAX_WHOMPS_PLAYER *ARRAY_COUNT(GWPlayer) +#define MAX_WHOMPS (MAX_WHOMPS_PLAYER + 1) * ARRAY_COUNT(GWPlayer) -typedef void (*ObjFuncs)(omObjData*); +typedef void (*ObjFuncs)(omObjData *); typedef struct unkDominationData7 { -/* 0x00 */ u32 unk_00; -/* 0x04 */ s32 unk_04; -/* 0x08 */ Vec unk_08; -/* 0x14 */ Vec unk_14; -/* 0x20 */ char unk_20[4]; -/* 0x24 */ s32 unk_24; -/* 0x28 */ s32 unk_28; -/* 0x2C */ s32 unk_2C; -} unkDominationData7; //sizeof 0x30 + /* 0x00 */ u32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ Vec unk_08; + /* 0x14 */ Vec unk_14; + /* 0x20 */ char unk_20[4]; + /* 0x24 */ s32 unk_24; + /* 0x28 */ s32 unk_28; + /* 0x2C */ s32 unk_2C; +} unkDominationData7; // sizeof 0x30 -//function signatures -void fn_1_3360(omObjData*); -void fn_1_3364(omObjData*); -void fn_1_34A4(omObjData*); -void fn_1_37B0(omObjData*); -void fn_1_36D0(omObjData*); -void fn_1_2B7C(omObjData*); -void fn_1_290C(omObjData*, s32); -void fn_1_31F8(omObjData*); +// function signatures +void fn_1_3360(omObjData *); +void fn_1_3364(omObjData *); +void fn_1_34A4(omObjData *); +void fn_1_37B0(omObjData *); +void fn_1_36D0(omObjData *); +void fn_1_2B7C(omObjData *); +void fn_1_290C(omObjData *, s32); +void fn_1_31F8(omObjData *); void fn_1_4544(s32, s32, f32, f32, f32); void fn_1_3BB8(s16, f32, f32); void fn_1_568(s16, s16, s16); -//bss -Process* lbl_1_bss_37C0; -omObjData* lbl_1_bss_2DB0[MAX_WHOMPS]; +// bss +Process *lbl_1_bss_37C0; +omObjData *lbl_1_bss_2DB0[MAX_WHOMPS]; s16 lbl_1_bss_1E98[MAX_WHOMPS][3]; s16 lbl_1_bss_68[MAX_WHOMPS][6]; s16 lbl_1_bss_66; @@ -47,23 +47,23 @@ s16 lbl_1_bss_64; s16 lbl_1_bss_3A[21]; s16 lbl_1_bss_38; -//data +// data s32 lbl_1_data_228[] = { - 0x0026001C, - 0x0026001D, - 0x0026001E, - 0x0026001B + DATA_MAKE_NUM(DATADIR_M407, 0x1C), + DATA_MAKE_NUM(DATADIR_M407, 0x1D), + DATA_MAKE_NUM(DATADIR_M407, 0x1E), + DATA_MAKE_NUM(DATADIR_M407, 0x1B), }; s32 lbl_1_data_238[] = { - 0x0026002E, - 0x0026002F, - 0x0026002D, - 0x0026002A, - 0x0026002C, - 0x00260027, - 0x00260028, - 0x00260029 + DATA_MAKE_NUM(DATADIR_M407, 0x2E), + DATA_MAKE_NUM(DATADIR_M407, 0x2F), + DATA_MAKE_NUM(DATADIR_M407, 0x2D), + DATA_MAKE_NUM(DATADIR_M407, 0x2A), + DATA_MAKE_NUM(DATADIR_M407, 0x2C), + DATA_MAKE_NUM(DATADIR_M407, 0x27), + DATA_MAKE_NUM(DATADIR_M407, 0x28), + DATA_MAKE_NUM(DATADIR_M407, 0x29), }; ObjFuncs lbl_1_data_258[] = { @@ -74,8 +74,9 @@ ObjFuncs lbl_1_data_258[] = { fn_1_36D0, }; -void fn_1_2354(Process* arg0) { - Process* sp8; +void fn_1_2354(Process *arg0) +{ + Process *sp8; u32 i; u32 j; @@ -84,7 +85,7 @@ void fn_1_2354(Process* arg0) { for (j = 0, i = 0; i < MAX_WHOMPS_ALL_PLAYERS; i++) { lbl_1_bss_2DB0[i] = omAddObjEx(lbl_1_bss_37C0, 0x200, 3, 6, 2, fn_1_2B7C); lbl_1_bss_2DB0[i]->work[0] = i; - lbl_1_bss_2DB0[i]->work[1] = 0; + lbl_1_bss_2DB0[i]->work[1] = 0; } j = j + i; @@ -92,7 +93,7 @@ void fn_1_2354(Process* arg0) { for (i = 0; i < 4; i++) { lbl_1_bss_2DB0[j + i] = omAddObjEx(lbl_1_bss_37C0, 0x200, 3, 6, 2, fn_1_2B7C); lbl_1_bss_2DB0[j + i]->work[0] = j + i; - lbl_1_bss_2DB0[j + i]->work[1] = 1; + lbl_1_bss_2DB0[j + i]->work[1] = 1; } for (i = 0; i < 4; i++) { @@ -102,7 +103,8 @@ void fn_1_2354(Process* arg0) { lbl_1_bss_64 = 0; } -void fn_1_24F0(void) { +void fn_1_24F0(void) +{ u32 i; for (i = 0; i < MAX_WHOMPS; i++) { @@ -111,7 +113,8 @@ void fn_1_24F0(void) { } } -void fn_1_2564(void) { +void fn_1_2564(void) +{ u32 i; HuAudFXPlay(0x542); @@ -120,30 +123,32 @@ void fn_1_2564(void) { } } -void fn_1_25C0(void) { +void fn_1_25C0(void) +{ u32 i, j; lbl_1_bss_38 = 0; - + for (i = 0; i < 4; i++) { if (lbl_1_bss_38 < lbl_1_bss_3A[i]) { lbl_1_bss_38 = lbl_1_bss_3A[i]; - } + } } - + lbl_1_bss_66 = 0; - + for (i = 0; i < 4; i++) { if (lbl_1_bss_3A[i] > 0) { fn_1_290C(lbl_1_bss_2DB0[i], 3); lbl_1_bss_66 += 1; - } + } } } -void fn_1_26CC(u8 arg0) { +void fn_1_26CC(u8 arg0) +{ u32 i; - omObjData* temp; + omObjData *temp; i = lbl_1_bss_3A[arg0]; if (i < MAX_WHOMPS_PLAYER) { @@ -153,9 +158,10 @@ void fn_1_26CC(u8 arg0) { } } -void fn_1_2770(u8 arg0, s16 arg2) { - omObjData* temp_r30; - unkDominationData7* temp_r31; +void fn_1_2770(u8 arg0, s16 arg2) +{ + omObjData *temp_r30; + unkDominationData7 *temp_r31; temp_r30 = lbl_1_bss_2DB0[arg0 + MAX_WHOMPS_ALL_PLAYERS]; temp_r31 = temp_r30->data; @@ -165,35 +171,41 @@ void fn_1_2770(u8 arg0, s16 arg2) { fn_1_290C(temp_r30, 2); } -s32 fn_1_2880(void) { +s32 fn_1_2880(void) +{ return (lbl_1_bss_66 == 0) ? 1 : 0; } -s16 fn_1_28B8(u8 arg0) { +s16 fn_1_28B8(u8 arg0) +{ return lbl_1_bss_3A[arg0]; } -s16 fn_1_28D4(void) { +s16 fn_1_28D4(void) +{ return lbl_1_bss_64; } -s16 fn_1_28E4(u8 arg0) { +s16 fn_1_28E4(u8 arg0) +{ return lbl_1_bss_2DB0[arg0 + MAX_WHOMPS_ALL_PLAYERS]->model[0]; } -void fn_1_290C(omObjData* arg0, s32 arg1) { - unkDominationData7* temp_r31; +void fn_1_290C(omObjData *arg0, s32 arg1) +{ + unkDominationData7 *temp_r31; temp_r31 = arg0->data; temp_r31->unk_24 = arg1; temp_r31->unk_2C = 0; } -void fn_1_2930(omObjData* arg0) { - unkDominationData7* temp_r28; - omObjData* temp_r29; +void fn_1_2930(omObjData *arg0) +{ + unkDominationData7 *temp_r28; + omObjData *temp_r29; u32 i; - unkDominationData7* temp_r31; + unkDominationData7 *temp_r31; temp_r31 = arg0->data; lbl_1_data_258[temp_r31->unk_24](arg0); @@ -208,30 +220,33 @@ void fn_1_2930(omObjData* arg0) { if (temp_r31->unk_08.y < 0.0f) { Hu3DModelShadowDispOff(arg0->model[0]); - } else { + } + else { Hu3DModelShadowDispOn(arg0->model[0]); } temp_r31->unk_04 = 1; } - + if ((temp_r31->unk_08.y < 0.0f) || (temp_r31->unk_08.z < (Center.z - 2000.0f))) { Hu3DModelAttrSet(arg0->model[0], 1); - } else { + } + else { Hu3DModelAttrReset(arg0->model[0], 1); } - + omSetTra(arg0, temp_r31->unk_08.x, temp_r31->unk_08.y, temp_r31->unk_08.z); omSetRot(arg0, temp_r31->unk_14.x, temp_r31->unk_14.y, temp_r31->unk_14.z); - + if (temp_r31->unk_28 == 1) { Hu3DModelPosSet(arg0->model[2], temp_r31->unk_08.x, 1.0f + temp_r31->unk_08.y, temp_r31->unk_08.z); } } -void fn_1_2B7C(omObjData* arg0) { +void fn_1_2B7C(omObjData *arg0) +{ u32 i; - unkDominationData7* temp_r30; + unkDominationData7 *temp_r30; arg0->func = fn_1_2930; arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkDominationData7), MEMORY_DEFAULT_NUM); @@ -242,72 +257,74 @@ void fn_1_2B7C(omObjData* arg0) { } for (i = 0; i < 6; i++) { - arg0->motion[i] = -1; + arg0->motion[i] = -1; } - - temp_r30->unk_00 = (u32) arg0->work[0]; - temp_r30->unk_28 = (u32) arg0->work[1]; + + temp_r30->unk_00 = (u32)arg0->work[0]; + temp_r30->unk_28 = (u32)arg0->work[1]; temp_r30->unk_04 = 0; temp_r30->unk_2C = 0; switch (temp_r30->unk_28) { - case 0: - temp_r30->unk_14.x = 0.0f; - temp_r30->unk_14.y = 180.0f; - temp_r30->unk_14.z = 0.0f; - if (temp_r30->unk_00 < 80) { - arg0->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_228[1], MEMORY_DEFAULT_NUM, HEAP_DATA)); - Hu3DModelAttrSet(arg0->model[0], 0x4000); - Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f); - if (temp_r30->unk_00 == 0) { - arg0->motion[5] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[5], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->motion[3] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[7], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->motion[4] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[6], MEMORY_DEFAULT_NUM, HEAP_DATA)); - } else { - arg0->motion[5] = lbl_1_bss_68[0][5]; - arg0->motion[3] = lbl_1_bss_68[0][3]; - arg0->motion[4] = lbl_1_bss_68[0][4]; - } - Hu3DModelShadowSet(arg0->model[0]); - for (i = 0; i < 3; i++) { - lbl_1_bss_1E98[temp_r30->unk_00][i] = arg0->model[i]; - } + case 0: + temp_r30->unk_14.x = 0.0f; + temp_r30->unk_14.y = 180.0f; + temp_r30->unk_14.z = 0.0f; + if (temp_r30->unk_00 < 80) { + arg0->model[0] = Hu3DModelCreateFile(lbl_1_data_228[1]); + Hu3DModelAttrSet(arg0->model[0], 0x4000); + Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f); + if (temp_r30->unk_00 == 0) { + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[5]); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[7]); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[6]); + } + else { + arg0->motion[5] = lbl_1_bss_68[0][5]; + arg0->motion[3] = lbl_1_bss_68[0][3]; + arg0->motion[4] = lbl_1_bss_68[0][4]; + } + Hu3DModelShadowSet(arg0->model[0]); + for (i = 0; i < 3; i++) { + lbl_1_bss_1E98[temp_r30->unk_00][i] = arg0->model[i]; + } - for (i = 0; i < 6; i++) { - lbl_1_bss_68[temp_r30->unk_00][i] = arg0->motion[i]; + for (i = 0; i < 6; i++) { + lbl_1_bss_68[temp_r30->unk_00][i] = arg0->motion[i]; + } + Hu3DMotionSet(arg0->model[0], arg0->motion[5]); + Hu3DModelAttrSet(arg0->model[0], 0x40000001); + temp_r30->unk_04 = 1; } - Hu3DMotionSet(arg0->model[0], arg0->motion[5]); - Hu3DModelAttrSet(arg0->model[0], 0x40000001); + else { + temp_r30->unk_04 = 0; + } + break; + case 1: + temp_r30->unk_14.x = 0.0f; + temp_r30->unk_14.y = 0.0f; + temp_r30->unk_14.z = 0.0f; + arg0->model[0] = Hu3DModelCreateFile(lbl_1_data_228[0]); + arg0->model[1] = Hu3DModelCreateFile(lbl_1_data_228[2]); + arg0->model[2] = Hu3DModelCreateFile(lbl_1_data_228[3]); + Hu3DModelAttrSet(arg0->model[0], 0x4000); + Hu3DModelAttrSet(arg0->model[1], 0x4000); + Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f); + Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[2]); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[4]); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[3]); + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[1], lbl_1_data_238[0]); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], lbl_1_data_238[1]); + Hu3DModelHookSet(arg0->model[0], "itemhook_r", arg0->model[1]); + Hu3DModelShadowSet(arg0->model[0]); + Hu3DModelShadowSet(arg0->model[1]); + Hu3DModelAttrSet(arg0->model[0], 1); + Hu3DModelAttrSet(arg0->model[1], 1); + Hu3DModelAttrSet(arg0->model[2], 1); + Hu3DModelAttrSet(arg0->model[2], 0x40000002); + Hu3DModelAttrSet(arg0->model[2], 0x40000001); temp_r30->unk_04 = 1; - } else { - temp_r30->unk_04 = 0; - } - break; - case 1: - temp_r30->unk_14.x = 0.0f; - temp_r30->unk_14.y = 0.0f; - temp_r30->unk_14.z = 0.0f; - arg0->model[0] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_228[0], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_228[2], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->model[2] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_228[3], MEMORY_DEFAULT_NUM, HEAP_DATA)); - Hu3DModelAttrSet(arg0->model[0], 0x4000); - Hu3DModelAttrSet(arg0->model[1], 0x4000); - Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f); - Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f); - arg0->motion[2] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[2], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->motion[3] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[4], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->motion[5] = Hu3DJointMotion(arg0->model[0], HuDataSelHeapReadNum(lbl_1_data_238[3], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->motion[0] = Hu3DJointMotion(arg0->model[1], HuDataSelHeapReadNum(lbl_1_data_238[0], MEMORY_DEFAULT_NUM, HEAP_DATA)); - arg0->motion[1] = Hu3DJointMotion(arg0->model[1], HuDataSelHeapReadNum(lbl_1_data_238[1], MEMORY_DEFAULT_NUM, HEAP_DATA)); - Hu3DModelHookSet(arg0->model[0], "itemhook_r", arg0->model[1]); - Hu3DModelShadowSet(arg0->model[0]); - Hu3DModelShadowSet(arg0->model[1]); - Hu3DModelAttrSet(arg0->model[0], 1); - Hu3DModelAttrSet(arg0->model[1], 1); - Hu3DModelAttrSet(arg0->model[2], 1); - Hu3DModelAttrSet(arg0->model[2], 0x40000002); - Hu3DModelAttrSet(arg0->model[2], 0x40000001); - temp_r30->unk_04 = 1; - break; + break; } temp_r30->unk_08.x = (600.0f - (400.0f * (temp_r30->unk_00 & 3))); temp_r30->unk_08.y = 0.0f; @@ -315,133 +332,136 @@ void fn_1_2B7C(omObjData* arg0) { fn_1_290C(arg0, 0); } -void fn_1_31F8(omObjData* arg0) { +void fn_1_31F8(omObjData *arg0) +{ s32 i; - unkDominationData7* temp_r29; + unkDominationData7 *temp_r29; temp_r29 = arg0->data; - switch (temp_r29->unk_28) { /* irregular */ - case 0: - if (temp_r29->unk_00 == 0) { + switch (temp_r29->unk_28) { /* irregular */ + case 0: + if (temp_r29->unk_00 == 0) { + for (i = 0; i < 6; i++) { + if (arg0->motion[i] != -1) { + Hu3DMotionKill(arg0->motion[i]); + } + } + } + if (temp_r29->unk_04 != 0) { + for (i = 0; i < 3; i++) { + if (arg0->model[i] != -1) { + Hu3DModelKill(arg0->model[i]); + } + } + } + break; + case 1: for (i = 0; i < 6; i++) { if (arg0->motion[i] != -1) { Hu3DMotionKill(arg0->motion[i]); } } - } - if (temp_r29->unk_04 != 0) { for (i = 0; i < 3; i++) { if (arg0->model[i] != -1) { Hu3DModelKill(arg0->model[i]); - } + } } - } - break; - case 1: - for (i = 0; i < 6; i++) { - if (arg0->motion[i] != -1) { - Hu3DMotionKill(arg0->motion[i]); - } - } - for (i = 0; i < 3; i++) { - if (arg0->model[i] != -1) { - Hu3DModelKill(arg0->model[i]); - } - } - break; + break; } if (arg0->data) { HuMemDirectFree(arg0->data); } } -void fn_1_3360(omObjData*) { +void fn_1_3360(omObjData *) { } -} - -void fn_1_3364(omObjData* arg0) { - unkDominationData7* temp_r31; +void fn_1_3364(omObjData *arg0) +{ + unkDominationData7 *temp_r31; temp_r31 = arg0->data; if (temp_r31->unk_2C == 0) { Hu3DMotionSet(arg0->model[0], arg0->motion[4]); Hu3DModelAttrReset(arg0->model[0], 0x40000001); switch (temp_r31->unk_28) { - case 0: - fn_1_4544(0, 0, temp_r31->unk_08.x, 0.0f, temp_r31->unk_08.z); - break; - case 1: - fn_1_4544(1, 0, temp_r31->unk_08.x, 0.0f, temp_r31->unk_08.z); - break; + case 0: + fn_1_4544(0, 0, temp_r31->unk_08.x, 0.0f, temp_r31->unk_08.z); + break; + case 1: + fn_1_4544(1, 0, temp_r31->unk_08.x, 0.0f, temp_r31->unk_08.z); + break; } } - + if (temp_r31->unk_2C == 0x2A) { Hu3DModelShadowDispOff(arg0->model[0]); } - + if (Hu3DMotionEndCheck(*arg0->model) == 0) { temp_r31->unk_2C++; return; } - + temp_r31->unk_08.y = -300.0f; Hu3DModelAttrSet(arg0->model[0], 1); fn_1_290C(arg0, 0); } -void fn_1_34A4(omObjData* arg0) { - unkDominationData7* temp_r30; +void fn_1_34A4(omObjData *arg0) +{ + unkDominationData7 *temp_r30; temp_r30 = arg0->data; if (temp_r30->unk_2C == 0) { if (temp_r30->unk_28 == 1) { Hu3DModelAttrReset(arg0->model[0], 1); Hu3DModelAttrReset(arg0->model[1], 1); - } else { + } + else { Hu3DModelAttrReset(arg0->model[0], 1); } Hu3DMotionSet(arg0->model[0], arg0->motion[3]); Hu3DModelAttrReset(arg0->model[0], 0x40000001); - switch (temp_r30->unk_28) { /* irregular */ - case 0: - fn_1_4544(0, 0, temp_r30->unk_08.x, 0.0f, temp_r30->unk_08.z); - HuAudFXPlay(0x543); - break; - case 1: - HuAudFXPlay(0x544); - fn_1_4544(1, 0, temp_r30->unk_08.x, 0.0f, temp_r30->unk_08.z); - break; + switch (temp_r30->unk_28) { /* irregular */ + case 0: + fn_1_4544(0, 0, temp_r30->unk_08.x, 0.0f, temp_r30->unk_08.z); + HuAudFXPlay(0x543); + break; + case 1: + HuAudFXPlay(0x544); + fn_1_4544(1, 0, temp_r30->unk_08.x, 0.0f, temp_r30->unk_08.z); + break; } temp_r30->unk_08.y = 0.0f; } - + if (temp_r30->unk_2C == 0xA) { Hu3DModelShadowDispOn(arg0->model[0]); } - + if ((temp_r30->unk_2C == 0xA) && (temp_r30->unk_28 == 1)) { Hu3DMotionSet(arg0->model[1], arg0->motion[1]); Hu3DModelAttrReset(arg0->model[1], 0x40000001); } - + temp_r30->unk_2C++; - + if (Hu3DMotionEndCheck(arg0->model[0]) != 0) { Hu3DMotionShiftSet(arg0->model[0], arg0->motion[5], 0.0f, 10.0f, 0x40000001); switch (temp_r30->unk_28) { - case 0: - fn_1_290C(arg0, 0); - return; - case 1: - fn_1_290C(arg0, 4); - break; + case 0: + fn_1_290C(arg0, 0); + return; + case 1: + fn_1_290C(arg0, 4); + break; } } } -void fn_1_36D0(omObjData* arg0) { - unkDominationData7* sp8; +void fn_1_36D0(omObjData *arg0) +{ + unkDominationData7 *sp8; sp8 = arg0->data; Hu3DMotionShiftSet(arg0->model[0], arg0->motion[2], 0.0f, 10.0f, 0x40000001); @@ -453,8 +473,9 @@ void fn_1_36D0(omObjData* arg0) { fn_1_290C(arg0, 0); } -void fn_1_37B0(omObjData* arg0) { - unkDominationData7* temp_r31; +void fn_1_37B0(omObjData *arg0) +{ + unkDominationData7 *temp_r31; temp_r31 = arg0->data; if (temp_r31->unk_2C == 0) { @@ -479,7 +500,7 @@ void fn_1_37B0(omObjData* arg0) { } temp_r31->unk_14.x = (temp_r31->unk_2C == 1) ? -90.0f : -68.0f; - + if (temp_r31->unk_2C == 1) { fn_1_4544(3, 0, temp_r31->unk_08.x, 0.0f, 200.0f + temp_r31->unk_08.z); HuAudFXPlay(0x544); @@ -487,7 +508,8 @@ void fn_1_37B0(omObjData* arg0) { fn_1_3BB8((temp_r31->unk_00 >> 2) + 1, temp_r31->unk_08.x, temp_r31->unk_08.z); } lbl_1_bss_66 -= 1; - } else { + } + else { fn_1_4544(2, 0, temp_r31->unk_08.x, 0.0f, 200.0f + temp_r31->unk_08.z); HuAudFXPlay(0x543); } diff --git a/src/REL/m407dll/whomp_score.c b/src/REL/m407dll/whomp_score.c index 5d024e6f..1d985246 100644 --- a/src/REL/m407dll/whomp_score.c +++ b/src/REL/m407dll/whomp_score.c @@ -1,39 +1,42 @@ -#include "src/REL/m407dll/m407dll.h" -#include "game/process.h" -#include "game/object.h" -#include "game/gamework_data.h" #include "game/esprite.h" +#include "game/gamework_data.h" +#include "game/object.h" +#include "game/process.h" +#include "game/sprite.h" + +#include "REL/m407dll.h" typedef struct unkDominationData3 { -/* 0x00 */ u32 unk_00; -/* 0x04 */ s32 unk_04; -/* 0x08 */ Vec unk_08; -/* 0x14 */ s32 unk_14; -/* 0x18 */ s16 unk_18[4]; -/* 0x20 */ f32 unk_20; -} unkDominationData3; //sizeof 0x24 + /* 0x00 */ u32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ Vec unk_08; + /* 0x14 */ s32 unk_14; + /* 0x18 */ s16 unk_18[4]; + /* 0x20 */ f32 unk_20; +} unkDominationData3; // sizeof 0x24 -//function signatures +// function signatures void Hu3D3Dto2D(Vec *arg0, s16 arg1, Vec *arg2); -void fn_1_3D28(omObjData* arg0, s32 arg1); -void fn_1_3E34(omObjData*); -void fn_1_3F7C(omObjData* arg0); -void fn_1_3FF0(omObjData*); -void fn_1_3FF4(omObjData* arg0); -void fn_1_40F4(omObjData* arg0); +void fn_1_3D28(omObjData *arg0, s32 arg1); +void fn_1_3E34(omObjData *); +void fn_1_3F7C(omObjData *arg0); +void fn_1_3FF0(omObjData *); +void fn_1_3FF4(omObjData *arg0); +void fn_1_40F4(omObjData *arg0); -//bss -Process* lbl_1_bss_37D8; -omObjData* lbl_1_bss_37C8[4]; +// bss +Process *lbl_1_bss_37D8; +omObjData *lbl_1_bss_37C8[4]; -//data +// data ObjFuncs lbl_1_data_278[] = { fn_1_3FF0, fn_1_3FF4, fn_1_40F4, }; -void fn_1_3AC8(Process* arg0) { +void fn_1_3AC8(Process *arg0) +{ u32 i; lbl_1_bss_37D8 = arg0; @@ -44,7 +47,8 @@ void fn_1_3AC8(Process* arg0) { } } -void fn_1_3B68(void) { +void fn_1_3B68(void) +{ u32 i; for (i = 0; i < ARRAY_COUNT(lbl_1_bss_37C8); i++) { @@ -52,10 +56,11 @@ void fn_1_3B68(void) { } } -void fn_1_3BB8(s16 arg0, f32 arg8, f32 arg9) { - omObjData* obj; +void fn_1_3BB8(s16 arg0, f32 arg8, f32 arg9) +{ + omObjData *obj; Vec sp14; - unkDominationData3* temp_r31; + unkDominationData3 *temp_r31; u32 i; s16 temp; @@ -66,7 +71,7 @@ void fn_1_3BB8(s16 arg0, f32 arg8, f32 arg9) { temp = arg0; espBankSet(temp_r31->unk_18[1], (temp / 100)); temp = (temp - ((temp / 100) * 100)); - espBankSet(temp_r31->unk_18[2],(temp / 10)); + espBankSet(temp_r31->unk_18[2], (temp / 10)); temp = (temp - ((temp / 10) * 10)); espBankSet(temp_r31->unk_18[3], temp); sp14.x = arg8; @@ -79,17 +84,19 @@ void fn_1_3BB8(s16 arg0, f32 arg8, f32 arg9) { } } -void fn_1_3D28(omObjData* arg0, s32 arg1) { - unkDominationData3* temp_r31; +void fn_1_3D28(omObjData *arg0, s32 arg1) +{ + unkDominationData3 *temp_r31; temp_r31 = arg0->data; temp_r31->unk_04 = arg1; temp_r31->unk_14 = 0; } -void fn_1_3D4C(omObjData* arg0) { +void fn_1_3D4C(omObjData *arg0) +{ s32 temp_r5; - unkDominationData3* temp_r31; + unkDominationData3 *temp_r31; temp_r31 = arg0->data; lbl_1_data_278[temp_r31->unk_04](arg0); @@ -100,8 +107,9 @@ void fn_1_3D4C(omObjData* arg0) { espPosSet(temp_r31->unk_18[3], 18.0f + temp_r31->unk_08.x, temp_r31->unk_08.y - 8.0f); } -void fn_1_3E34(omObjData* arg0) { - unkDominationData3* temp_r31; +void fn_1_3E34(omObjData *arg0) +{ + unkDominationData3 *temp_r31; arg0->func = fn_1_3D4C; arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkDominationData3), MEMORY_DEFAULT_NUM); @@ -109,24 +117,25 @@ void fn_1_3E34(omObjData* arg0) { temp_r31->unk_00 = arg0->work[0]; temp_r31->unk_14 = 0; temp_r31->unk_04 = 0; - temp_r31->unk_18[0] = espEntry(0x260026, 1, 0); - temp_r31->unk_18[1] = espEntry(0x260020, 0, 0); - temp_r31->unk_18[2] = espEntry(0x260020, 0, 0); - temp_r31->unk_18[3] = espEntry(0x260020, 0, 0); + temp_r31->unk_18[0] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x26), 1, 0); + temp_r31->unk_18[1] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x20), 0, 0); + temp_r31->unk_18[2] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x20), 0, 0); + temp_r31->unk_18[3] = espEntry(DATA_MAKE_NUM(DATADIR_M407, 0x20), 0, 0); espDispOff(temp_r31->unk_18[0]); espDispOff(temp_r31->unk_18[1]); espDispOff(temp_r31->unk_18[2]); espDispOff(temp_r31->unk_18[3]); espScaleSet(temp_r31->unk_18[0], 1.8f, 1.8f); - temp_r31->unk_08.x = (f32) 0.0f; - temp_r31->unk_08.y = (f32) 0.0f; + temp_r31->unk_08.x = (f32)0.0f; + temp_r31->unk_08.y = (f32)0.0f; fn_1_3D28(arg0, 0); } -void fn_1_3F7C(omObjData* arg0) { +void fn_1_3F7C(omObjData *arg0) +{ s32 i; - unkDominationData3* temp_r29; - + unkDominationData3 *temp_r29; + temp_r29 = arg0->data; for (i = 0; i < ARRAY_COUNT(temp_r29->unk_18); i++) { @@ -138,12 +147,11 @@ void fn_1_3F7C(omObjData* arg0) { } } -void fn_1_3FF0(omObjData* arg0) { +void fn_1_3FF0(omObjData *arg0) { } -} - -void fn_1_3FF4(omObjData* arg0) { - unkDominationData3* temp_r31; +void fn_1_3FF4(omObjData *arg0) +{ + unkDominationData3 *temp_r31; temp_r31 = arg0->data; if (temp_r31->unk_14 == 0) { @@ -166,8 +174,9 @@ void fn_1_3FF4(omObjData* arg0) { } } -void fn_1_40F4(omObjData* arg0) { - unkDominationData3* temp_r31; +void fn_1_40F4(omObjData *arg0) +{ + unkDominationData3 *temp_r31; temp_r31 = arg0->data; @@ -186,4 +195,3 @@ void fn_1_40F4(omObjData* arg0) { espDispOff(temp_r31->unk_18[3]); fn_1_3D28(arg0, 0); } - diff --git a/src/REL/m408Dll/camera.c b/src/REL/m408Dll/camera.c index 0638ba4d..e2b5ba0c 100644 --- a/src/REL/m408Dll/camera.c +++ b/src/REL/m408Dll/camera.c @@ -1,14 +1,14 @@ -#include "game/object.h" -#include "game/objsub.h" -#include "game/wipe.h" #include "game/chrman.h" #include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" #include "game/pad.h" +#include "game/wipe.h" -#include "game/hsfman.h" -#include "game/hsfmotion.h" #include "game/hsfanim.h" #include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/sprite.h" #include "game/audio.h" @@ -16,8 +16,8 @@ #include "REL/m408Dll.h" -#include "math.h" #include "ext_math.h" +#include "math.h" omObjData *lbl_1_bss_110; u32 lbl_1_bss_10C; @@ -35,13 +35,13 @@ void fn_1_9770(omObjData *object); void fn_1_8958(Process *objman) { - omObjData *object; - lbl_1_bss_10C = 0; - object = omAddObjEx(objman, 20, 9, 0, -1, fn_1_8A20); - object->work[0] = 0; - lbl_1_bss_110 = omAddObjEx(objman, 21, 2, 0, -1, fn_1_9770); - lbl_1_bss_110->work[0] = 0; - lbl_1_bss_84 = lbl_1_bss_80 = -1; + omObjData *object; + lbl_1_bss_10C = 0; + object = omAddObjEx(objman, 20, 9, 0, -1, fn_1_8A20); + object->work[0] = 0; + lbl_1_bss_110 = omAddObjEx(objman, 21, 2, 0, -1, fn_1_9770); + lbl_1_bss_110->work[0] = 0; + lbl_1_bss_84 = lbl_1_bss_80 = -1; } void fn_1_8FAC(omObjData *object); @@ -53,172 +53,175 @@ void fn_1_BDE0(void); void fn_1_8A20(omObjData *object) { - s16 temp_r31; - s32 temp_r29; - for(temp_r29=0; temp_r29<20; temp_r29++) { - lbl_1_bss_A4[temp_r29] = NULL; - } - lbl_1_bss_A0 = 0; - for(temp_r29=0; temp_r29<3; temp_r29++) { - lbl_1_bss_94[temp_r29] = NULL; - lbl_1_bss_88[temp_r29] = 0; - } - object->model[0] = Hu3DModelCreateFile(0x270000); - omSetSca(object, 0.1f, 0.1f, 0.1f); - object->model[1] = Hu3DModelCreateFile(0x270001); - Hu3DModelScaleSet(object->model[1], 0.1f, 0.1f, 0.1f); - Hu3DModelPosSet(object->model[1], 0, 11990, 0); - Hu3DModelShadowMapSet(object->model[1]); - temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(0x27000B), 1); - object->model[2] = temp_r31; - Hu3DModelLayerSet(temp_r31, 6); - Hu3DParticleColSet(temp_r31, 255, 255, 255); - Hu3DParticleHookSet(temp_r31, fn_1_A894); - Hu3DModelPosSet(temp_r31, 0, 0, 0); - ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_00 = 0; - ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_02 = 0; - temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(0x27000D), 1); - object->model[3] = temp_r31; - Hu3DParticleBlendModeSet(temp_r31, 1); - Hu3DModelLayerSet(temp_r31, 6); - Hu3DParticleColSet(temp_r31, 255, 255, 255); - Hu3DParticleHookSet(temp_r31, fn_1_A894); - Hu3DModelPosSet(temp_r31, 0, 0, 0); - ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_00 = 0; - ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_02 = 1; - temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(0x270011), 1); - object->model[5] = temp_r31; - Hu3DModelLayerSet(temp_r31, 7); - Hu3DParticleColSet(temp_r31, 255, 255, 255); - Hu3DParticleHookSet(temp_r31, fn_1_A894); - Hu3DModelPosSet(temp_r31, 0, 0, 0); - ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_00 = 0; - ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_02 = 2; - temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(0x270010), 8); - object->model[6] = temp_r31; - Hu3DParticleBlendModeSet(temp_r31, 1); - Hu3DModelLayerSet(temp_r31, 6); - Hu3DModelPosSet(temp_r31, 0, 0, 0); - fn_1_B700(temp_r31, 0); - temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(0x27000F), 6); - object->model[6] = temp_r31; - Hu3DParticleBlendModeSet(temp_r31, 1); - Hu3DModelLayerSet(temp_r31, 6); - Hu3DModelPosSet(temp_r31, 0, 0, 0); - fn_1_B700(temp_r31, 1); - temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(0x27000D), 5); - object->model[6] = temp_r31; - Hu3DParticleBlendModeSet(temp_r31, 1); - Hu3DModelLayerSet(temp_r31, 6); - Hu3DModelPosSet(temp_r31, 0, 0, 0); - fn_1_B700(temp_r31, 2); - fn_1_BB94(); - lbl_1_bss_10C = 1; - object->func = fn_1_8FAC; - object->work[1] = 0; + s16 temp_r31; + s32 temp_r29; + for (temp_r29 = 0; temp_r29 < 20; temp_r29++) { + lbl_1_bss_A4[temp_r29] = NULL; + } + lbl_1_bss_A0 = 0; + for (temp_r29 = 0; temp_r29 < 3; temp_r29++) { + lbl_1_bss_94[temp_r29] = NULL; + lbl_1_bss_88[temp_r29] = 0; + } + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x00)); + omSetSca(object, 0.1f, 0.1f, 0.1f); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x01)); + Hu3DModelScaleSet(object->model[1], 0.1f, 0.1f, 0.1f); + Hu3DModelPosSet(object->model[1], 0, 11990, 0); + Hu3DModelShadowMapSet(object->model[1]); + temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x0B)), 1); + object->model[2] = temp_r31; + Hu3DModelLayerSet(temp_r31, 6); + Hu3DParticleColSet(temp_r31, 255, 255, 255); + Hu3DParticleHookSet(temp_r31, fn_1_A894); + Hu3DModelPosSet(temp_r31, 0, 0, 0); + ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_00 = 0; + ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_02 = 0; + temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x0D)), 1); + object->model[3] = temp_r31; + Hu3DParticleBlendModeSet(temp_r31, 1); + Hu3DModelLayerSet(temp_r31, 6); + Hu3DParticleColSet(temp_r31, 255, 255, 255); + Hu3DParticleHookSet(temp_r31, fn_1_A894); + Hu3DModelPosSet(temp_r31, 0, 0, 0); + ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_00 = 0; + ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_02 = 1; + temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x11)), 1); + object->model[5] = temp_r31; + Hu3DModelLayerSet(temp_r31, 7); + Hu3DParticleColSet(temp_r31, 255, 255, 255); + Hu3DParticleHookSet(temp_r31, fn_1_A894); + Hu3DModelPosSet(temp_r31, 0, 0, 0); + ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_00 = 0; + ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_02 = 2; + temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x10)), 8); + object->model[6] = temp_r31; + Hu3DParticleBlendModeSet(temp_r31, 1); + Hu3DModelLayerSet(temp_r31, 6); + Hu3DModelPosSet(temp_r31, 0, 0, 0); + fn_1_B700(temp_r31, 0); + temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x0F)), 6); + object->model[6] = temp_r31; + Hu3DParticleBlendModeSet(temp_r31, 1); + Hu3DModelLayerSet(temp_r31, 6); + Hu3DModelPosSet(temp_r31, 0, 0, 0); + fn_1_B700(temp_r31, 1); + temp_r31 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x0D)), 5); + object->model[6] = temp_r31; + Hu3DParticleBlendModeSet(temp_r31, 1); + Hu3DModelLayerSet(temp_r31, 6); + Hu3DModelPosSet(temp_r31, 0, 0, 0); + fn_1_B700(temp_r31, 2); + fn_1_BB94(); + lbl_1_bss_10C = 1; + object->func = fn_1_8FAC; + object->work[1] = 0; } void fn_1_9514(omObjData *object); void fn_1_8FAC(omObjData *object) { - object->work[1]++; - switch(lbl_1_bss_10C) { - case 1: - if(lbl_1_bss_110->work[0] == 4) { - lbl_1_bss_10C = 2; - fn_1_817C(&lbl_1_bss_100, &lbl_1_bss_F4); - object->work[1] = 0; - } - break; - - case 2: - fn_1_817C(&lbl_1_bss_100, &lbl_1_bss_F4); - if(lbl_1_bss_80 < 0) { - lbl_1_bss_80 = HuAudFXPlay(1361); - } - lbl_1_bss_10C = 3; - object->work[1] = 0; - break; - - case 3: - lbl_1_bss_F4.y += -6.666667f; - lbl_1_bss_F4.z += -0.5833334f; - lbl_1_bss_100.y += 20.0f/60.0f; - fn_1_817C(&lbl_1_bss_100, &lbl_1_bss_F4); - if(lbl_1_bss_F4.y > 12010) { - break; - } - if(lbl_1_bss_84 < 0) { - lbl_1_bss_84 = HuAudFXPlay(1357); - } - if(lbl_1_bss_80 >= 0) { - HuAudFXStop(lbl_1_bss_80); - lbl_1_bss_80 = -1; - } - lbl_1_bss_10C = 4; - object->work[1] = 0; - object->work[2] = 0; - break; - - case 4: - if(object->work[1] < 24.0f) { - lbl_1_bss_100.y += 4.0f/12.0f; - fn_1_817C(&lbl_1_bss_100, &lbl_1_bss_F4); - } else { - if(object->work[2] == 0) { - if(!lbl_1_bss_40) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); - lbl_1_bss_44 = 1; - } - object->work[2]++; - } - CZoom -= 2.5000002f; - if(object->work[1] < 90.0f) { - break; - } - lbl_1_bss_10C = 5; - object->work[1] = 0; - } - break; - - default: - lbl_1_bss_10C = 5; - break; - } - omSetTra(object, Center.x+(sind(CRot.y)*cosd(CRot.x)*CZoom), Center.y+(-sind(CRot.x)*CZoom), Center.z+(cosd(CRot.y)*cosd(CRot.x)*CZoom)); - fn_1_BDE0(); - if(lbl_1_bss_10C == 5) { - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[1], 1); - lbl_1_bss_10C = 5; - object->func = fn_1_9514; - } + object->work[1]++; + switch (lbl_1_bss_10C) { + case 1: + if (lbl_1_bss_110->work[0] == 4) { + lbl_1_bss_10C = 2; + fn_1_817C(&lbl_1_bss_100, &lbl_1_bss_F4); + object->work[1] = 0; + } + break; + + case 2: + fn_1_817C(&lbl_1_bss_100, &lbl_1_bss_F4); + if (lbl_1_bss_80 < 0) { + lbl_1_bss_80 = HuAudFXPlay(1361); + } + lbl_1_bss_10C = 3; + object->work[1] = 0; + break; + + case 3: + lbl_1_bss_F4.y += -6.666667f; + lbl_1_bss_F4.z += -0.5833334f; + lbl_1_bss_100.y += 20.0f / 60.0f; + fn_1_817C(&lbl_1_bss_100, &lbl_1_bss_F4); + if (lbl_1_bss_F4.y > 12010) { + break; + } + if (lbl_1_bss_84 < 0) { + lbl_1_bss_84 = HuAudFXPlay(1357); + } + if (lbl_1_bss_80 >= 0) { + HuAudFXStop(lbl_1_bss_80); + lbl_1_bss_80 = -1; + } + lbl_1_bss_10C = 4; + object->work[1] = 0; + object->work[2] = 0; + break; + + case 4: + if (object->work[1] < 24.0f) { + lbl_1_bss_100.y += 4.0f / 12.0f; + fn_1_817C(&lbl_1_bss_100, &lbl_1_bss_F4); + } + else { + if (object->work[2] == 0) { + if (!lbl_1_bss_40) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + lbl_1_bss_44 = 1; + } + object->work[2]++; + } + CZoom -= 2.5000002f; + if (object->work[1] < 90.0f) { + break; + } + lbl_1_bss_10C = 5; + object->work[1] = 0; + } + break; + + default: + lbl_1_bss_10C = 5; + break; + } + omSetTra(object, Center.x + (sind(CRot.y) * cosd(CRot.x) * CZoom), Center.y + (-sind(CRot.x) * CZoom), + Center.z + (cosd(CRot.y) * cosd(CRot.x) * CZoom)); + fn_1_BDE0(); + if (lbl_1_bss_10C == 5) { + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[1], 1); + lbl_1_bss_10C = 5; + object->func = fn_1_9514; + } } void fn_1_9514(omObjData *object) { - if(!WipeStatGet() && object->work[2] != 0) { - if(!lbl_1_bss_40) { - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); - lbl_1_bss_44 = 0; - } - object->work[2] = 0; - } - if(fn_1_6878() >= 4) { - Hu3DModelAttrReset(object->model[0], 1); - } - omSetTra(object, Center.x+(sind(CRot.y)*cosd(CRot.x)*CZoom), Center.y+(-sind(CRot.x)*CZoom)-1000, Center.z+(cosd(CRot.y)*cosd(CRot.x)*CZoom)); + if (!WipeStatGet() && object->work[2] != 0) { + if (!lbl_1_bss_40) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + lbl_1_bss_44 = 0; + } + object->work[2] = 0; + } + if (fn_1_6878() >= 4) { + Hu3DModelAttrReset(object->model[0], 1); + } + omSetTra(object, Center.x + (sind(CRot.y) * cosd(CRot.x) * CZoom), Center.y + (-sind(CRot.x) * CZoom) - 1000, + Center.z + (cosd(CRot.y) * cosd(CRot.x) * CZoom)); } typedef struct work_99C8 { - Vec unk0; - Vec unkC; - Vec unk18; - Vec unk24; - Vec unk30; - Vec unk3C; - s32 unk48[2]; + Vec unk0; + Vec unkC; + Vec unk18; + Vec unk24; + Vec unk30; + Vec unk3C; + s32 unk48[2]; } Work99C8; void fn_1_99C8(omObjData *object); @@ -226,35 +229,35 @@ void fn_1_A37C(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_9770(omObjData *object) { - Work99C8 *temp_r31; - s32 temp_r29; - - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work99C8), MEMORY_DEFAULT_NUM); - temp_r31 = object->data; - object->model[0] = Hu3DModelCreateFile(0x27000A); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DMotionSpeedSet(object->model[0], 3.0f); - Hu3DModelShadowSet(object->model[0]); - object->func = fn_1_99C8; - object->work[0] = 0; - object->work[1] = 0; - temp_r31->unk3C.x = temp_r31->unk3C.y = temp_r31->unk3C.z = 0; - temp_r31->unk0.x = temp_r31->unk0.y = temp_r31->unk0.z = 0; - temp_r31->unk0.z = 1000; - omSetTra(object, 0, 12080, -2*temp_r31->unk0.z); - omSetSca(object, 0.5f, 0.5f, 0.5f); - temp_r29 = Hu3DParticleCreate(HuSprAnimReadFile(0x270024), 1024); - object->model[1] = temp_r29; - Hu3DModelLayerSet(temp_r29, 6); - Hu3DParticleColSet(temp_r29, 255, 255, 255); - Hu3DParticleHookSet(temp_r29, fn_1_A37C); - Hu3DModelPosSet(temp_r29, 0, 0, 0); - ((ParticleData *)Hu3DData[temp_r29].unk_120)->unk_00 = 0; - temp_r31->unk30.y = -35; - temp_r31->unk30.z = 350; - temp_r31->unk18.y = 800+object->trans.y; - temp_r31->unk48[0] = temp_r31->unk48[1] = -1; - HuDataDirClose(0x27000A); + Work99C8 *temp_r31; + s32 temp_r29; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work99C8), MEMORY_DEFAULT_NUM); + temp_r31 = object->data; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x0A)); + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DMotionSpeedSet(object->model[0], 3.0f); + Hu3DModelShadowSet(object->model[0]); + object->func = fn_1_99C8; + object->work[0] = 0; + object->work[1] = 0; + temp_r31->unk3C.x = temp_r31->unk3C.y = temp_r31->unk3C.z = 0; + temp_r31->unk0.x = temp_r31->unk0.y = temp_r31->unk0.z = 0; + temp_r31->unk0.z = 1000; + omSetTra(object, 0, 12080, -2 * temp_r31->unk0.z); + omSetSca(object, 0.5f, 0.5f, 0.5f); + temp_r29 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x24)), 1024); + object->model[1] = temp_r29; + Hu3DModelLayerSet(temp_r29, 6); + Hu3DParticleColSet(temp_r29, 255, 255, 255); + Hu3DParticleHookSet(temp_r29, fn_1_A37C); + Hu3DModelPosSet(temp_r29, 0, 0, 0); + ((ParticleData *)Hu3DData[temp_r29].unk_120)->unk_00 = 0; + temp_r31->unk30.y = -35; + temp_r31->unk30.z = 350; + temp_r31->unk18.y = 800 + object->trans.y; + temp_r31->unk48[0] = temp_r31->unk48[1] = -1; + HuDataDirClose(DATA_MAKE_NUM(DATADIR_M408, 10)); } void fn_1_A334(omObjData *object); @@ -262,567 +265,551 @@ void fn_1_A4E8(s32 arg0, Vec *arg1, u32 arg2); void fn_1_99C8(omObjData *object) { - float temp_f31; - float temp_f30; - - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - - Work99C8 *temp_r31; - temp_r31 = object->data; - object->trans.x += temp_r31->unk0.x*(1.0f/60.0f); - object->trans.y += temp_r31->unk0.y*(1.0f/60.0f); - object->trans.z += temp_r31->unk0.z*(1.0f/60.0f); - object->work[1]++; - switch(object->work[0]) { - case 0: - if(object->work[1] < 120.0f) { - temp_f30 = (1.0f/60.0f)*(1.5f*(120.0f-object->work[1])); - if(temp_f30 > 1.0f) { - temp_f30 = 1.0f; - } - temp_f31 = temp_r31->unk18.z; - temp_r31->unk30.z -= (175.0f/60.0f)*temp_f30; - temp_r31->unk30.y += 1.1666667f*temp_f30; - temp_r31->unk18.x = object->trans.x+(temp_r31->unk30.z*sind(temp_r31->unk30.y)); - temp_r31->unk18.z = object->trans.z+(temp_r31->unk30.z*cosd(temp_r31->unk30.y)); - temp_r31->unk18.y -= 8.333334f*temp_f30; - temp_r31->unk24.x = 0; - temp_r31->unk24.y = 0; - temp_r31->unk24.z = 0.96f*temp_r31->unk0.z; - } else { - temp_r31->unk18.z += temp_r31->unk24.z*(1.0f/60.0f); - } - temp_r31->unkC.x = object->trans.x; - temp_r31->unkC.y = object->trans.y; - temp_r31->unkC.z = object->trans.z; - sp2C.x = object->trans.x; - sp2C.y = object->trans.y; - sp2C.z = object->trans.z; - if(temp_r31->unk48[0] < 0) { - temp_r31->unk48[0] = HuAudFXEmiterPlay(1362, &sp2C); - } - if(temp_r31->unk48[1] < 0) { - temp_r31->unk48[1] = HuAudFXEmiterPlay(1356, &sp2C); - } - if(object->work[1] < 180.0f) { - break; - } - object->work[0] = 1; - object->work[1] = 0; - break; - - case 1: - temp_r31->unk24.z *= 0.6f; - temp_r31->unk18.z += (temp_r31->unk24.z*(1.0f/60.0f)); - temp_r31->unk18.x += (temp_r31->unk24.z*(1.0f/60.0f)); - temp_r31->unkC.x = object->trans.x; - temp_r31->unkC.y = object->trans.y; - temp_r31->unkC.z = object->trans.z; - if(object->work[1] < 60.0f) { - break; - } - object->work[0] = 2; - object->work[1] = 0; - break; - - case 2: - temp_r31->unk3C.x += 1.5000001f; - temp_r31->unk0.z = 1000.0*cosd(temp_r31->unk3C.x); - temp_r31->unk0.y = 1000.0*sind(temp_r31->unk3C.x); - temp_r31->unkC.x = object->trans.x; - temp_r31->unkC.y = object->trans.y; - temp_r31->unkC.z = object->trans.z; - if(object->work[1] < 120.0f) { - break; - } - object->work[0] = 3; - object->work[1] = 0; - temp_r31->unk3C.x = 180; - break; - - case 3: - temp_r31->unk3C.z += 3.0000002f; - temp_f31 = (1.0f/60.0f)*object->work[1]; - temp_f31 = 1.0f-(temp_f31*temp_f31); - temp_r31->unkC.x += temp_f31*(object->trans.x-temp_r31->unkC.x); - temp_r31->unkC.y += temp_f31*(object->trans.y-temp_r31->unkC.y); - temp_r31->unkC.z += temp_f31*(object->trans.z-temp_r31->unkC.z); - if(object->work[1] < 60.0f) { - break; - } - lbl_1_bss_F4.x = temp_r31->unkC.x; - lbl_1_bss_F4.y = temp_r31->unkC.y; - lbl_1_bss_F4.z = temp_r31->unkC.z; - lbl_1_bss_100.x = temp_r31->unk18.x; - lbl_1_bss_100.y = temp_r31->unk18.y; - lbl_1_bss_100.z = temp_r31->unk18.z; - object->work[0] = 4; - object->work[1] = 0; - break; - - case 4: - temp_r31->unk3C.z += 3.0000002f; - if(object->work[1] > 42.0f) { - if(temp_r31->unk48[0] >= 0) { - HuAudFXStop(temp_r31->unk48[0]); - temp_r31->unk48[0] = -1; - } - if(temp_r31->unk48[1] >= 0) { - HuAudFXStop(temp_r31->unk48[1]); - temp_r31->unk48[1] = -1; - } - } - if(object->work[1] < 240.0f) { - break; - } - object->work[0] = 5; - object->work[1] = 0; - break; - - default: - object->work[0] = 5; - object->func = fn_1_A334; - break; - } - omSetRot(object, -temp_r31->unk3C.x, temp_r31->unk3C.y, temp_r31->unk3C.z); - if(object->trans.y < 12150.0f) { - sp20.x = object->trans.x; - sp20.y = object->trans.y; - sp20.z = object->trans.z+10; - fn_1_A4E8(object->model[1], &sp20, 4); - sp20.x = sp8.x = object->trans.x; - sp20.z = object->trans.z; - sp8.z = object->trans.z-10; - sp20.y = object->trans.y+250.0f; - sp8.y = object->trans.y; - sp14.x = 0; - sp14.y = 0; - sp14.z = 1; - Hu3DShadowPosSet(&sp20, &sp14, &sp8); - } - if(temp_r31->unk48[0] >= 0) { - sp2C.x = object->trans.x-30; - sp2C.y = object->trans.y; - sp2C.z = object->trans.z+25; - HuAudFXEmiterUpDate(temp_r31->unk48[0], &sp2C); - } - if(temp_r31->unk48[1] < 0) { - sp2C.x = object->trans.x+30; - sp2C.y = object->trans.y; - sp2C.z = object->trans.z+25; - HuAudFXEmiterUpDate(temp_r31->unk48[1], &sp2C); - } - if(object->work[0] < 4) { - fn_1_84C4(temp_r31->unk18.x, temp_r31->unk18.y, temp_r31->unk18.z, temp_r31->unkC.x, temp_r31->unkC.y, temp_r31->unkC.z); - } - if(fn_1_C43C() == 5) { - object->func = fn_1_A334; - } + float temp_f31; + float temp_f30; + + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + + Work99C8 *temp_r31; + temp_r31 = object->data; + object->trans.x += temp_r31->unk0.x * (1.0f / 60.0f); + object->trans.y += temp_r31->unk0.y * (1.0f / 60.0f); + object->trans.z += temp_r31->unk0.z * (1.0f / 60.0f); + object->work[1]++; + switch (object->work[0]) { + case 0: + if (object->work[1] < 120.0f) { + temp_f30 = (1.0f / 60.0f) * (1.5f * (120.0f - object->work[1])); + if (temp_f30 > 1.0f) { + temp_f30 = 1.0f; + } + temp_f31 = temp_r31->unk18.z; + temp_r31->unk30.z -= (175.0f / 60.0f) * temp_f30; + temp_r31->unk30.y += 1.1666667f * temp_f30; + temp_r31->unk18.x = object->trans.x + (temp_r31->unk30.z * sind(temp_r31->unk30.y)); + temp_r31->unk18.z = object->trans.z + (temp_r31->unk30.z * cosd(temp_r31->unk30.y)); + temp_r31->unk18.y -= 8.333334f * temp_f30; + temp_r31->unk24.x = 0; + temp_r31->unk24.y = 0; + temp_r31->unk24.z = 0.96f * temp_r31->unk0.z; + } + else { + temp_r31->unk18.z += temp_r31->unk24.z * (1.0f / 60.0f); + } + temp_r31->unkC.x = object->trans.x; + temp_r31->unkC.y = object->trans.y; + temp_r31->unkC.z = object->trans.z; + sp2C.x = object->trans.x; + sp2C.y = object->trans.y; + sp2C.z = object->trans.z; + if (temp_r31->unk48[0] < 0) { + temp_r31->unk48[0] = HuAudFXEmiterPlay(1362, &sp2C); + } + if (temp_r31->unk48[1] < 0) { + temp_r31->unk48[1] = HuAudFXEmiterPlay(1356, &sp2C); + } + if (object->work[1] < 180.0f) { + break; + } + object->work[0] = 1; + object->work[1] = 0; + break; + + case 1: + temp_r31->unk24.z *= 0.6f; + temp_r31->unk18.z += (temp_r31->unk24.z * (1.0f / 60.0f)); + temp_r31->unk18.x += (temp_r31->unk24.z * (1.0f / 60.0f)); + temp_r31->unkC.x = object->trans.x; + temp_r31->unkC.y = object->trans.y; + temp_r31->unkC.z = object->trans.z; + if (object->work[1] < 60.0f) { + break; + } + object->work[0] = 2; + object->work[1] = 0; + break; + + case 2: + temp_r31->unk3C.x += 1.5000001f; + temp_r31->unk0.z = 1000.0 * cosd(temp_r31->unk3C.x); + temp_r31->unk0.y = 1000.0 * sind(temp_r31->unk3C.x); + temp_r31->unkC.x = object->trans.x; + temp_r31->unkC.y = object->trans.y; + temp_r31->unkC.z = object->trans.z; + if (object->work[1] < 120.0f) { + break; + } + object->work[0] = 3; + object->work[1] = 0; + temp_r31->unk3C.x = 180; + break; + + case 3: + temp_r31->unk3C.z += 3.0000002f; + temp_f31 = (1.0f / 60.0f) * object->work[1]; + temp_f31 = 1.0f - (temp_f31 * temp_f31); + temp_r31->unkC.x += temp_f31 * (object->trans.x - temp_r31->unkC.x); + temp_r31->unkC.y += temp_f31 * (object->trans.y - temp_r31->unkC.y); + temp_r31->unkC.z += temp_f31 * (object->trans.z - temp_r31->unkC.z); + if (object->work[1] < 60.0f) { + break; + } + lbl_1_bss_F4.x = temp_r31->unkC.x; + lbl_1_bss_F4.y = temp_r31->unkC.y; + lbl_1_bss_F4.z = temp_r31->unkC.z; + lbl_1_bss_100.x = temp_r31->unk18.x; + lbl_1_bss_100.y = temp_r31->unk18.y; + lbl_1_bss_100.z = temp_r31->unk18.z; + object->work[0] = 4; + object->work[1] = 0; + break; + + case 4: + temp_r31->unk3C.z += 3.0000002f; + if (object->work[1] > 42.0f) { + if (temp_r31->unk48[0] >= 0) { + HuAudFXStop(temp_r31->unk48[0]); + temp_r31->unk48[0] = -1; + } + if (temp_r31->unk48[1] >= 0) { + HuAudFXStop(temp_r31->unk48[1]); + temp_r31->unk48[1] = -1; + } + } + if (object->work[1] < 240.0f) { + break; + } + object->work[0] = 5; + object->work[1] = 0; + break; + + default: + object->work[0] = 5; + object->func = fn_1_A334; + break; + } + omSetRot(object, -temp_r31->unk3C.x, temp_r31->unk3C.y, temp_r31->unk3C.z); + if (object->trans.y < 12150.0f) { + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z + 10; + fn_1_A4E8(object->model[1], &sp20, 4); + sp20.x = sp8.x = object->trans.x; + sp20.z = object->trans.z; + sp8.z = object->trans.z - 10; + sp20.y = object->trans.y + 250.0f; + sp8.y = object->trans.y; + sp14.x = 0; + sp14.y = 0; + sp14.z = 1; + Hu3DShadowPosSet(&sp20, &sp14, &sp8); + } + if (temp_r31->unk48[0] >= 0) { + sp2C.x = object->trans.x - 30; + sp2C.y = object->trans.y; + sp2C.z = object->trans.z + 25; + HuAudFXEmiterUpDate(temp_r31->unk48[0], &sp2C); + } + if (temp_r31->unk48[1] < 0) { + sp2C.x = object->trans.x + 30; + sp2C.y = object->trans.y; + sp2C.z = object->trans.z + 25; + HuAudFXEmiterUpDate(temp_r31->unk48[1], &sp2C); + } + if (object->work[0] < 4) { + fn_1_84C4(temp_r31->unk18.x, temp_r31->unk18.y, temp_r31->unk18.z, temp_r31->unkC.x, temp_r31->unkC.y, temp_r31->unkC.z); + } + if (fn_1_C43C() == 5) { + object->func = fn_1_A334; + } } void fn_1_A334(omObjData *object) { - Hu3DModelAttrSet(object->model[1], 1); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[0], 1); } - void fn_1_A37C(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *temp_r31; - s32 temp_r29; - if(particle->unk_00 == 0) { - particle->unk_00++; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk00 = 0; - temp_r31->unk2C = 0; - temp_r31->unk40.a = 0; - } - } else { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk00_s16) { - temp_r31->unk34.x += temp_r31->unk08.x; - temp_r31->unk34.y += temp_r31->unk08.y; - temp_r31->unk34.z += temp_r31->unk08.z; - temp_r31->unk2C += temp_r31->unk14.x; - temp_r31->unk14.y -= temp_r31->unk14.z; - temp_r31->unk40.a = temp_r31->unk14.y; - if(--temp_r31->unk00_s16 == 0) { - temp_r31->unk00_s16 = 0; - temp_r31->unk2C = 0; - temp_r31->unk40.a =0; - } - } - } - DCStoreRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - } + HsfanimStruct01 *temp_r31; + s32 temp_r29; + if (particle->unk_00 == 0) { + particle->unk_00++; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk00 = 0; + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + } + } + else { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk00_s16) { + temp_r31->unk34.x += temp_r31->unk08.x; + temp_r31->unk34.y += temp_r31->unk08.y; + temp_r31->unk34.z += temp_r31->unk08.z; + temp_r31->unk2C += temp_r31->unk14.x; + temp_r31->unk14.y -= temp_r31->unk14.z; + temp_r31->unk40.a = temp_r31->unk14.y; + if (--temp_r31->unk00_s16 == 0) { + temp_r31->unk00_s16 = 0; + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + } + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + } } void fn_1_A4E8(s32 arg0, Vec *arg1, u32 arg2) { - float temp_f31; - HsfanimStruct01 *temp_r31; - ParticleData *temp_r30; - s32 temp_r29; - temp_r30 = Hu3DData[arg0].unk_120; - if(temp_r30->unk_00) { - temp_r31 = temp_r30->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk00_s16 != 0) { - continue; - } - temp_r31->unk00_s16 = 60.0f*(((1.5f/1000.0f)*frandmod(1000))+1.0f); - temp_r31->unk34.x = arg1->x; - temp_r31->unk34.y = 12000; - temp_r31->unk34.z = arg1->z; - temp_r31->unk08.x = (1.0f/60.0f)*((0.6f*frandmod(1000))-300.0f); - temp_r31->unk08.y = (1.0f/60.0f)*((0.04f*frandmod(1000))+10.0f); - temp_r31->unk08.z = 0; - temp_r31->unk14.x = 0.3f+((3.0f/1000.0f)*frandmod(1000)); - temp_r31->unk2C = 10; - temp_r31->unk40.a = frandmod(127)+64; - temp_r31->unk14.y = temp_r31->unk40.a; - temp_r31->unk14.z = temp_r31->unk14.y*(1.0f/temp_r31->unk00_s16); - temp_f31 = frandmod(1000)*(1.0f/1000.0f); - temp_r31->unk40.r = (temp_f31*55)+200; - temp_r31->unk40.g = (temp_f31*50)+205; - temp_r31->unk40.b = (temp_f31*5)+250; - if(--arg2 == 0) { - break; - } - } - } + float temp_f31; + HsfanimStruct01 *temp_r31; + ParticleData *temp_r30; + s32 temp_r29; + temp_r30 = Hu3DData[arg0].unk_120; + if (temp_r30->unk_00) { + temp_r31 = temp_r30->unk_48; + for (temp_r29 = 0; temp_r29 < temp_r30->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk00_s16 != 0) { + continue; + } + temp_r31->unk00_s16 = 60.0f * (((1.5f / 1000.0f) * frandmod(1000)) + 1.0f); + temp_r31->unk34.x = arg1->x; + temp_r31->unk34.y = 12000; + temp_r31->unk34.z = arg1->z; + temp_r31->unk08.x = (1.0f / 60.0f) * ((0.6f * frandmod(1000)) - 300.0f); + temp_r31->unk08.y = (1.0f / 60.0f) * ((0.04f * frandmod(1000)) + 10.0f); + temp_r31->unk08.z = 0; + temp_r31->unk14.x = 0.3f + ((3.0f / 1000.0f) * frandmod(1000)); + temp_r31->unk2C = 10; + temp_r31->unk40.a = frandmod(127) + 64; + temp_r31->unk14.y = temp_r31->unk40.a; + temp_r31->unk14.z = temp_r31->unk14.y * (1.0f / temp_r31->unk00_s16); + temp_f31 = frandmod(1000) * (1.0f / 1000.0f); + temp_r31->unk40.r = (temp_f31 * 55) + 200; + temp_r31->unk40.g = (temp_f31 * 50) + 205; + temp_r31->unk40.b = (temp_f31 * 5) + 250; + if (--arg2 == 0) { + break; + } + } + } } void fn_1_A894(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - float sp14[][6] = { - { - 600, 1, 0.95, 0.8, 1, 0 - }, - { - 600, 1, 0.6, 0.9, 0.3, 0 - }, - { - 13, 1, 1, 1, 0.5, 0 - }, - }; - Vec sp8; - if(particle->unk_00 == 0) { - particle->unk_00++; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk00 = 1; - temp_r31->unk2C = sp14[particle->unk_02][0]; - temp_r31->unk40.r = 255*sp14[particle->unk_02][1]; - temp_r31->unk40.g = 255*sp14[particle->unk_02][2]; - temp_r31->unk40.b = 255*sp14[particle->unk_02][3]; - temp_r31->unk40.a = 255*sp14[particle->unk_02][4]; - temp_f31 = -70; - temp_f30 = -10; - temp_r31->unk08.x = sind(temp_f30)*cosd(temp_f31); - temp_r31->unk08.y = -sind(temp_f31); - temp_r31->unk08.z = cosd(temp_f30)*cosd(temp_f31); - } - } else { - particle->unk_00++; - if(particle->unk_00 < 339.0f) { - return; - } - if(particle->unk_00 >= 600.0f) { - particle->unk_00 = 601; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk00 = 0; - temp_r31->unk2C = 0; - temp_r31->unk40.a = 0; - } - } else { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk00_s16 == 0) { - continue; - } - sp8.x = sind(CRot.y)*cosd(CRot.x); - sp8.y = -sind(CRot.x); - sp8.z = cosd(CRot.y)*cosd(CRot.x); - if(particle->unk_02 < 2) { - temp_f31 = 4500; - temp_r31->unk34.x = (Center.x+(temp_r31->unk08.x*temp_f31))+(sp8.x*CZoom); - temp_r31->unk34.y = (Center.y+(temp_r31->unk08.y*temp_f31))+(sp8.y*CZoom); - temp_r31->unk34.z = (Center.z+(temp_r31->unk08.z*temp_f31))+(sp8.z*CZoom); - if(particle->unk_02 != 0) { - temp_f31 = -((sp8.x*temp_r31->unk08.x)+(sp8.y*temp_r31->unk08.y)+(sp8.z*temp_r31->unk08.z)); - if(temp_f31 > 0.77f) { - temp_f30 = (1.0f/0.23f)*(temp_f31-0.77f); - temp_r31->unk2C = 1400*temp_f30; - temp_r31->unk40.a = (32.0f*temp_f30)+16.0f; - } else { - temp_r31->unk2C = 0; - } - } - } else { - temp_f31 = CZoom-10; - temp_r31->unk34.x = (sp8.x*temp_f31)+Center.x; - temp_r31->unk34.y = (sp8.y*temp_f31)+Center.y; - temp_r31->unk34.z = (sp8.z*temp_f31)+Center.z; - temp_f31 = -((sp8.x*temp_r31->unk08.x)+(sp8.y*temp_r31->unk08.y)+(sp8.z*temp_r31->unk08.z)); - if(temp_f31 > 0.9f) { - temp_f30 = 10.0f*(temp_f31-0.9f); - temp_r31->unk40.a = temp_f30*210.0f; - } else { - temp_r31->unk40.a = 0; - } - } - } - DCStoreRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - } - } + float temp_f31; + float temp_f30; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + float sp14[][6] = { + { 600, 1, 0.95, 0.8, 1, 0 }, + { 600, 1, 0.6, 0.9, 0.3, 0 }, + { 13, 1, 1, 1, 0.5, 0 }, + }; + Vec sp8; + if (particle->unk_00 == 0) { + particle->unk_00++; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk00 = 1; + temp_r31->unk2C = sp14[particle->unk_02][0]; + temp_r31->unk40.r = 255 * sp14[particle->unk_02][1]; + temp_r31->unk40.g = 255 * sp14[particle->unk_02][2]; + temp_r31->unk40.b = 255 * sp14[particle->unk_02][3]; + temp_r31->unk40.a = 255 * sp14[particle->unk_02][4]; + temp_f31 = -70; + temp_f30 = -10; + temp_r31->unk08.x = sind(temp_f30) * cosd(temp_f31); + temp_r31->unk08.y = -sind(temp_f31); + temp_r31->unk08.z = cosd(temp_f30) * cosd(temp_f31); + } + } + else { + particle->unk_00++; + if (particle->unk_00 < 339.0f) { + return; + } + if (particle->unk_00 >= 600.0f) { + particle->unk_00 = 601; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk00 = 0; + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + } + } + else { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk00_s16 == 0) { + continue; + } + sp8.x = sind(CRot.y) * cosd(CRot.x); + sp8.y = -sind(CRot.x); + sp8.z = cosd(CRot.y) * cosd(CRot.x); + if (particle->unk_02 < 2) { + temp_f31 = 4500; + temp_r31->unk34.x = (Center.x + (temp_r31->unk08.x * temp_f31)) + (sp8.x * CZoom); + temp_r31->unk34.y = (Center.y + (temp_r31->unk08.y * temp_f31)) + (sp8.y * CZoom); + temp_r31->unk34.z = (Center.z + (temp_r31->unk08.z * temp_f31)) + (sp8.z * CZoom); + if (particle->unk_02 != 0) { + temp_f31 = -((sp8.x * temp_r31->unk08.x) + (sp8.y * temp_r31->unk08.y) + (sp8.z * temp_r31->unk08.z)); + if (temp_f31 > 0.77f) { + temp_f30 = (1.0f / 0.23f) * (temp_f31 - 0.77f); + temp_r31->unk2C = 1400 * temp_f30; + temp_r31->unk40.a = (32.0f * temp_f30) + 16.0f; + } + else { + temp_r31->unk2C = 0; + } + } + } + else { + temp_f31 = CZoom - 10; + temp_r31->unk34.x = (sp8.x * temp_f31) + Center.x; + temp_r31->unk34.y = (sp8.y * temp_f31) + Center.y; + temp_r31->unk34.z = (sp8.z * temp_f31) + Center.z; + temp_f31 = -((sp8.x * temp_r31->unk08.x) + (sp8.y * temp_r31->unk08.y) + (sp8.z * temp_r31->unk08.z)); + if (temp_f31 > 0.9f) { + temp_f30 = 10.0f * (temp_f31 - 0.9f); + temp_r31->unk40.a = temp_f30 * 210.0f; + } + else { + temp_r31->unk40.a = 0; + } + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + } + } } void fn_1_AFF4(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - HsfanimStruct01 *temp_r30; - s32 temp_r29; - Vec sp20; - Vec sp14; - Vec sp8; - if(particle->unk_00 == 0) { - particle->unk_00++; - temp_f31 = -70; - temp_f30 = -10; - particle->unk_04.x = sind(temp_f30)*cosd(temp_f31); - particle->unk_04.y = -sind(temp_f31); - particle->unk_04.z = cosd(temp_f30)*cosd(temp_f31); - temp_f31 = 0; - temp_r30 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r30++) { - temp_r30->unk00 = 1; - temp_f31 += 1.0f/particle->unk_30; - temp_r30->unk2C = 40.0f+((1.0f-temp_f31)*(100.0f+frandmod(1000))); - temp_r30->unk40.r = frandmod(127)+128; - temp_r30->unk40.g = frandmod(127)+128; - temp_r30->unk40.b = frandmod(127)+128; - temp_r30->unk40.a = frandmod(16)+16; - } - } else { - particle->unk_00++; - if(particle->unk_00 < 339.0f) { - return; - } - if(particle->unk_00 >= 600.0f) { - particle->unk_00 = 601; - temp_r30 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r30++) { - temp_r30->unk00 = 0; - temp_r30->unk2C = 0; - temp_r30->unk40.a = 0; - } - } else { - sp20.x = sind(CRot.y)*cosd(CRot.x); - sp20.y = -sind(CRot.x); - sp20.z = cosd(CRot.y)*cosd(CRot.x); - temp_f31 = -((-particle->unk_04.x*-sp20.x)+(-particle->unk_04.y*-sp20.y)+(-particle->unk_04.z*-sp20.z)); - sp14.x = -sp20.x+(-2.0f*particle->unk_04.x*temp_f31); - sp14.y = -sp20.y+(-2.0f*particle->unk_04.y*temp_f31); - sp14.z = -sp20.z+(-2.0f*particle->unk_04.z*temp_f31); - temp_f31 = 4500; - sp8.x = (Center.x+(particle->unk_04.x*temp_f31))+(sp20.x*CZoom); - sp8.y = (Center.y+(particle->unk_04.y*temp_f31))+(sp20.y*CZoom); - sp8.z = (Center.z+(particle->unk_04.z*temp_f31))+(sp20.z*CZoom); - temp_r30 = particle->unk_48; - temp_f30 = 0; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r30++) { - if(temp_r30->unk00_s16 == 0) { - continue; - } - temp_f30 += 1.0f/particle->unk_30; - temp_f31 = 10.0f*(430.0f*(1.0f-((1.0f-temp_f30)*(1.0f-temp_f30)))); - temp_r30->unk34.x = sp8.x+(sp14.x*temp_f31); - temp_r30->unk34.y = sp8.y+(sp14.y*temp_f31); - temp_r30->unk34.z = sp8.z+(sp14.z*temp_f31); - } - DCStoreRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - } - } + float temp_f31; + float temp_f30; + HsfanimStruct01 *temp_r30; + s32 temp_r29; + Vec sp20; + Vec sp14; + Vec sp8; + if (particle->unk_00 == 0) { + particle->unk_00++; + temp_f31 = -70; + temp_f30 = -10; + particle->unk_04.x = sind(temp_f30) * cosd(temp_f31); + particle->unk_04.y = -sind(temp_f31); + particle->unk_04.z = cosd(temp_f30) * cosd(temp_f31); + temp_f31 = 0; + temp_r30 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r30++) { + temp_r30->unk00 = 1; + temp_f31 += 1.0f / particle->unk_30; + temp_r30->unk2C = 40.0f + ((1.0f - temp_f31) * (100.0f + frandmod(1000))); + temp_r30->unk40.r = frandmod(127) + 128; + temp_r30->unk40.g = frandmod(127) + 128; + temp_r30->unk40.b = frandmod(127) + 128; + temp_r30->unk40.a = frandmod(16) + 16; + } + } + else { + particle->unk_00++; + if (particle->unk_00 < 339.0f) { + return; + } + if (particle->unk_00 >= 600.0f) { + particle->unk_00 = 601; + temp_r30 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r30++) { + temp_r30->unk00 = 0; + temp_r30->unk2C = 0; + temp_r30->unk40.a = 0; + } + } + else { + sp20.x = sind(CRot.y) * cosd(CRot.x); + sp20.y = -sind(CRot.x); + sp20.z = cosd(CRot.y) * cosd(CRot.x); + temp_f31 = -((-particle->unk_04.x * -sp20.x) + (-particle->unk_04.y * -sp20.y) + (-particle->unk_04.z * -sp20.z)); + sp14.x = -sp20.x + (-2.0f * particle->unk_04.x * temp_f31); + sp14.y = -sp20.y + (-2.0f * particle->unk_04.y * temp_f31); + sp14.z = -sp20.z + (-2.0f * particle->unk_04.z * temp_f31); + temp_f31 = 4500; + sp8.x = (Center.x + (particle->unk_04.x * temp_f31)) + (sp20.x * CZoom); + sp8.y = (Center.y + (particle->unk_04.y * temp_f31)) + (sp20.y * CZoom); + sp8.z = (Center.z + (particle->unk_04.z * temp_f31)) + (sp20.z * CZoom); + temp_r30 = particle->unk_48; + temp_f30 = 0; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r30++) { + if (temp_r30->unk00_s16 == 0) { + continue; + } + temp_f30 += 1.0f / particle->unk_30; + temp_f31 = 10.0f * (430.0f * (1.0f - ((1.0f - temp_f30) * (1.0f - temp_f30)))); + temp_r30->unk34.x = sp8.x + (sp14.x * temp_f31); + temp_r30->unk34.y = sp8.y + (sp14.y * temp_f31); + temp_r30->unk34.z = sp8.z + (sp14.z * temp_f31); + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + } + } } void fn_1_B700(s16 arg0, u32 arg1) { - float temp_f31; - float temp_f30; - HsfanimStruct01 *temp_r31; - ParticleData *temp_r30; - s32 temp_r29; - s32 temp_r27; - float sp1C[] = { - 0.4f, 0.21f, 0.16f, 1.0f - }; - float spC[] = { - 0.15f, 0.6f, 1.3f, 1.0f - }; - s16 sp2C[] = { - 1, 0, - 2, 0, - 0, 1, - 2, 0, - 0, 1, - 2, 1, - 0, 0, - 1, 2, - 0, 1, - 2, -1 - }; - arg1 &= 0x3; - temp_r30 = Hu3DData[arg0].unk_120; - temp_r30->unk_00 = 1; - temp_f31 = -70; - temp_f30 = -10; - temp_r30->unk_04.x = sind(temp_f30)*cosd(temp_f31); - temp_r30->unk_04.y = -sind(temp_f31); - temp_r30->unk_04.z = cosd(temp_f30)*cosd(temp_f31); - temp_r31 = temp_r30->unk_48; - for(temp_r27=0; temp_r27unk_30; temp_r27++, temp_r31++) { - temp_r31->unk00 = 1; - temp_r31->unk02 = arg1; - for(temp_r29=0; sp2C[temp_r29] >= 0; temp_r29++) { - if(arg1 != sp2C[temp_r29]) { - continue; - } - if(lbl_1_bss_A4[temp_r29] == NULL) { - break; - } - } - if(sp2C[temp_r29] < 0) { - temp_r31->unk2C = 0; - temp_r31->unk40.a = 0; - continue; - } - lbl_1_bss_A4[temp_r29] = temp_r31; - lbl_1_bss_A0++; - temp_r31->unk2C = 800.0f*(spC[arg1]*(1.0f+((0.7f/1000.0f)*frandmod(1000)))); - temp_r31->unk40.r = frandmod(160)+32; - temp_r31->unk40.g = frandmod(160)+32; - temp_r31->unk40.b = frandmod(160)+32; - temp_r31->unk40.a = (255.0f*sp1C[arg1])-frandmod(16); - } - lbl_1_bss_94[arg1] = temp_r30->unk_48; - lbl_1_bss_88[arg1] = temp_r30->unk_30; + float temp_f31; + float temp_f30; + HsfanimStruct01 *temp_r31; + ParticleData *temp_r30; + s32 temp_r29; + s32 temp_r27; + float sp1C[] = { 0.4f, 0.21f, 0.16f, 1.0f }; + float spC[] = { 0.15f, 0.6f, 1.3f, 1.0f }; + s16 sp2C[] = { 1, 0, 2, 0, 0, 1, 2, 0, 0, 1, 2, 1, 0, 0, 1, 2, 0, 1, 2, -1 }; + arg1 &= 0x3; + temp_r30 = Hu3DData[arg0].unk_120; + temp_r30->unk_00 = 1; + temp_f31 = -70; + temp_f30 = -10; + temp_r30->unk_04.x = sind(temp_f30) * cosd(temp_f31); + temp_r30->unk_04.y = -sind(temp_f31); + temp_r30->unk_04.z = cosd(temp_f30) * cosd(temp_f31); + temp_r31 = temp_r30->unk_48; + for (temp_r27 = 0; temp_r27 < temp_r30->unk_30; temp_r27++, temp_r31++) { + temp_r31->unk00 = 1; + temp_r31->unk02 = arg1; + for (temp_r29 = 0; sp2C[temp_r29] >= 0; temp_r29++) { + if (arg1 != sp2C[temp_r29]) { + continue; + } + if (lbl_1_bss_A4[temp_r29] == NULL) { + break; + } + } + if (sp2C[temp_r29] < 0) { + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + continue; + } + lbl_1_bss_A4[temp_r29] = temp_r31; + lbl_1_bss_A0++; + temp_r31->unk2C = 800.0f * (spC[arg1] * (1.0f + ((0.7f / 1000.0f) * frandmod(1000)))); + temp_r31->unk40.r = frandmod(160) + 32; + temp_r31->unk40.g = frandmod(160) + 32; + temp_r31->unk40.b = frandmod(160) + 32; + temp_r31->unk40.a = (255.0f * sp1C[arg1]) - frandmod(16); + } + lbl_1_bss_94[arg1] = temp_r30->unk_48; + lbl_1_bss_88[arg1] = temp_r30->unk_30; } void fn_1_BB94(void) { - float temp_f31; - float temp_f30; - HsfanimStruct01 *temp_r31; - s32 temp_r30; - float sp18[] = { - 0.02f, 0.08f, 0.07f, 0.5f - }; - float sp8[] = { - 0.0009f, 0.00020000001f, 0.00001f, 0.0005f - }; - temp_f31 = 0.1f; - for(temp_r30=0; temp_r30unk02]*(1.0f+(frandmod(1000)*sp8[temp_r31->unk02]))); - temp_f31 += temp_f30; - temp_r31->unk14.x = temp_f31; - temp_f31 += temp_f30; - } - temp_f31 = 1.0f/temp_f31; - for(temp_r30=0; temp_r30unk14.x *= temp_f31; - temp_r31->unk2C *= (0.8f-(0.4f*temp_r31->unk14.x)); - temp_r31->unk14.x = 10.0f*(400.0f*temp_r31->unk14.x); - } - for(temp_r30=0; temp_r30<3; temp_r30++) { - DCStoreRangeNoSync(lbl_1_bss_94[temp_r30], lbl_1_bss_88[temp_r30]*sizeof(HsfanimStruct01)); - } - PPCSync(); + float temp_f31; + float temp_f30; + HsfanimStruct01 *temp_r31; + s32 temp_r30; + float sp18[] = { 0.02f, 0.08f, 0.07f, 0.5f }; + float sp8[] = { 0.0009f, 0.00020000001f, 0.00001f, 0.0005f }; + temp_f31 = 0.1f; + for (temp_r30 = 0; temp_r30 < lbl_1_bss_A0; temp_r30++) { + temp_r31 = lbl_1_bss_A4[temp_r30]; + temp_f30 = 0.5f * (sp18[temp_r31->unk02] * (1.0f + (frandmod(1000) * sp8[temp_r31->unk02]))); + temp_f31 += temp_f30; + temp_r31->unk14.x = temp_f31; + temp_f31 += temp_f30; + } + temp_f31 = 1.0f / temp_f31; + for (temp_r30 = 0; temp_r30 < lbl_1_bss_A0; temp_r30++) { + temp_r31 = lbl_1_bss_A4[temp_r30]; + temp_r31->unk14.x *= temp_f31; + temp_r31->unk2C *= (0.8f - (0.4f * temp_r31->unk14.x)); + temp_r31->unk14.x = 10.0f * (400.0f * temp_r31->unk14.x); + } + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + DCStoreRangeNoSync(lbl_1_bss_94[temp_r30], lbl_1_bss_88[temp_r30] * sizeof(HsfanimStruct01)); + } + PPCSync(); } void fn_1_BDE0(void) { - float temp_f31; - float temp_f30; - HsfanimStruct01 *temp_r31; - s32 temp_r30; - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - temp_r31 = lbl_1_bss_A4[0]; - temp_r31->unk00_s16++; - if(temp_r31->unk00_s16 < 339.0f) { - return; - } - if(temp_r31->unk00_s16 >= 600.0f) { - temp_r31->unk00_s16 = 601; - for(temp_r30=0; temp_r30unk00_s16 = 0; - temp_r31->unk2C = 0; - temp_r31->unk40.a = 0; - } - return; - } - sp2C.x = sind(CRot.y)*cosd(CRot.x); - sp2C.y = -sind(CRot.x); - sp2C.z = cosd(CRot.y)*cosd(CRot.x); - temp_f31 = -70; - temp_f30 = -10; - sp20.x = sind(temp_f30)*cosd(temp_f31); - sp20.y = -sind(temp_f31); - sp20.z = cosd(temp_f30)*cosd(temp_f31); - temp_f31 = 4500; - sp8.x = (Center.x+(sp20.x*temp_f31))+(sp2C.x*CZoom); - sp8.y = (Center.y+(sp20.y*temp_f31))+(sp2C.y*CZoom); - sp8.z = (Center.z+(sp20.z*temp_f31))+(sp2C.z*CZoom); - temp_f31 = -((-sp20.x*-sp2C.x)+(-sp20.y*-sp2C.y)+(-sp20.z*-sp2C.z)); - sp14.x = -sp2C.x+(-2.0f*sp20.x*temp_f31); - sp14.y = -sp2C.y+(-2.0f*sp20.y*temp_f31); - sp14.z = -sp2C.z+(-2.0f*sp20.z*temp_f31); - if(temp_f31 > 0.5f) { - temp_f30 = 3.0f-(2.0f*temp_f31); - } else { - temp_f30 = 1.0f; - } - for(temp_r30=0; temp_r30unk34.x = sp8.x+(temp_f30*(sp14.x*temp_r31->unk14.x)); - temp_r31->unk34.y = sp8.y+(temp_f30*(sp14.y*temp_r31->unk14.x)); - temp_r31->unk34.z = sp8.z+(temp_f30*(sp14.z*temp_r31->unk14.x)); - } - for(temp_r30=0; temp_r30<3; temp_r30++) { - DCStoreRangeNoSync(lbl_1_bss_94[temp_r30], lbl_1_bss_88[temp_r30]*sizeof(HsfanimStruct01)); - } - PPCSync(); + float temp_f31; + float temp_f30; + HsfanimStruct01 *temp_r31; + s32 temp_r30; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + temp_r31 = lbl_1_bss_A4[0]; + temp_r31->unk00_s16++; + if (temp_r31->unk00_s16 < 339.0f) { + return; + } + if (temp_r31->unk00_s16 >= 600.0f) { + temp_r31->unk00_s16 = 601; + for (temp_r30 = 0; temp_r30 < lbl_1_bss_A0; temp_r30++) { + temp_r31 = lbl_1_bss_A4[temp_r30]; + temp_r31->unk00_s16 = 0; + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + } + return; + } + sp2C.x = sind(CRot.y) * cosd(CRot.x); + sp2C.y = -sind(CRot.x); + sp2C.z = cosd(CRot.y) * cosd(CRot.x); + temp_f31 = -70; + temp_f30 = -10; + sp20.x = sind(temp_f30) * cosd(temp_f31); + sp20.y = -sind(temp_f31); + sp20.z = cosd(temp_f30) * cosd(temp_f31); + temp_f31 = 4500; + sp8.x = (Center.x + (sp20.x * temp_f31)) + (sp2C.x * CZoom); + sp8.y = (Center.y + (sp20.y * temp_f31)) + (sp2C.y * CZoom); + sp8.z = (Center.z + (sp20.z * temp_f31)) + (sp2C.z * CZoom); + temp_f31 = -((-sp20.x * -sp2C.x) + (-sp20.y * -sp2C.y) + (-sp20.z * -sp2C.z)); + sp14.x = -sp2C.x + (-2.0f * sp20.x * temp_f31); + sp14.y = -sp2C.y + (-2.0f * sp20.y * temp_f31); + sp14.z = -sp2C.z + (-2.0f * sp20.z * temp_f31); + if (temp_f31 > 0.5f) { + temp_f30 = 3.0f - (2.0f * temp_f31); + } + else { + temp_f30 = 1.0f; + } + for (temp_r30 = 0; temp_r30 < lbl_1_bss_A0; temp_r30++) { + temp_r31 = lbl_1_bss_A4[temp_r30]; + temp_r31->unk34.x = sp8.x + (temp_f30 * (sp14.x * temp_r31->unk14.x)); + temp_r31->unk34.y = sp8.y + (temp_f30 * (sp14.y * temp_r31->unk14.x)); + temp_r31->unk34.z = sp8.z + (temp_f30 * (sp14.z * temp_r31->unk14.x)); + } + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + DCStoreRangeNoSync(lbl_1_bss_94[temp_r30], lbl_1_bss_88[temp_r30] * sizeof(HsfanimStruct01)); + } + PPCSync(); } void fn_1_C3C0(Vec *arg0, Vec *arg1) { - arg0->x = lbl_1_bss_110->trans.x; - arg0->y = lbl_1_bss_110->trans.y; - arg0->z = lbl_1_bss_110->trans.z; - arg1->x = lbl_1_bss_110->rot.x; - arg1->y = lbl_1_bss_110->rot.y; - arg1->z = lbl_1_bss_110->rot.z; + arg0->x = lbl_1_bss_110->trans.x; + arg0->y = lbl_1_bss_110->trans.y; + arg0->z = lbl_1_bss_110->trans.z; + arg1->x = lbl_1_bss_110->rot.x; + arg1->y = lbl_1_bss_110->rot.y; + arg1->z = lbl_1_bss_110->rot.z; } u32 fn_1_C43C(void) { - return lbl_1_bss_10C; -} \ No newline at end of file + return lbl_1_bss_10C; +} diff --git a/src/REL/m408Dll/main.c b/src/REL/m408Dll/main.c index 63e82391..d1bceec4 100644 --- a/src/REL/m408Dll/main.c +++ b/src/REL/m408Dll/main.c @@ -1,14 +1,14 @@ -#include "game/object.h" -#include "game/objsub.h" -#include "game/wipe.h" #include "game/chrman.h" #include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" #include "game/pad.h" +#include "game/wipe.h" -#include "game/hsfman.h" -#include "game/hsfmotion.h" #include "game/hsfanim.h" #include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/sprite.h" #include "game/audio.h" @@ -16,29 +16,26 @@ #include "REL/m408Dll.h" -#include "math.h" #include "ext_math.h" +#include "math.h" #include "rel_sqrt_consts.h" s32 lbl_1_data_0[] = { - 0x610000, - 0x610001, - 0x610002, - 0x610003, - 0x610004, - 0x610005, - 0x610006, - 0x610007 + DATA_MAKE_NUM(DATADIR_MGCONST, 0x00), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x01), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x02), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x03), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x04), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x05), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x06), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x07), }; Vec lbl_1_data_20 = { 150, 1250, 150 }; Vec lbl_1_data_2C = { -0.1, -0.8, 0.1 }; GXColor lbl_1_data_38 = { 255, 255, 255, 255 }; -Vec lbl_1_data_3C[] = { - { 0, -2000, 0 }, - { 0, 1, 0} -}; +Vec lbl_1_data_3C[] = { { 0, -2000, 0 }, { 0, 1, 0 } }; GXColor lbl_1_data_54 = { 255, 255, 255, 255 }; Vec lbl_1_data_58 = { 50, 15000, 50 }; Vec lbl_1_data_64 = { 0, 1, 0 }; @@ -81,53 +78,53 @@ void fn_1_25D4(Process *objman); void ObjectSetup(void) { - s32 temp_r31; - Process *temp_r30; - s16 temp_r29; - LightData *temp_r28; - Vec sp14 = { 0, 0, 0 }; - Vec sp8 = { 0, 0, -1 }; - HuAudSndGrpSet(33); - HuAudFXListnerSetEX(&sp14, &sp8, 6000, 3656.6667f, 0, 300, 300); - lbl_1_bss_1C = lbl_1_bss_18 = lbl_1_bss_14 = lbl_1_bss_10 = -1; - lbl_1_bss_C = 0; - lbl_1_bss_44 = 1; - lbl_1_bss_40 = 0; - temp_r29 = Hu3DGLightCreateV(&lbl_1_data_20, &lbl_1_data_2C, &lbl_1_data_38); - Hu3DGLightInfinitytSet(temp_r29); - temp_r28 = &Hu3DGlobalLight[temp_r29]; - temp_r28->unk_00 |= 0x8000; - Hu3DShadowCreate(30, 100, 25000); - Hu3DShadowTPLvlSet(0.3f); - Hu3DShadowPosSet(&lbl_1_data_58, &lbl_1_data_64, &lbl_1_data_70); - temp_r30 = omInitObjMan(50, 8192); - omGameSysInit(temp_r30); - for(temp_r31=0; temp_r31<4; temp_r31++) { - CRotM[temp_r31].x = 324.3f; - CRotM[temp_r31].y = 0; - CRotM[temp_r31].z = 0; - CenterM[temp_r31].x = 0; - CenterM[temp_r31].y = 130; - CenterM[temp_r31].z = 224; - CZoomM[temp_r31] = 220; - } - Hu3DCameraCreate(1); - Hu3DCameraPerspectiveSet(1, -1, 5, 25000, (4.0f/3.0f)); - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - lbl_1_bss_70 = omAddObjEx(temp_r30, 32730, 0, 0, -1, omOutView); - lbl_1_bss_62 = 0; - lbl_1_bss_60 = 0; - lbl_1_bss_48 = 0; - lbl_1_bss_78 = omAddObjEx(temp_r30, 10, 0, 0, -1, fn_1_51C); - lbl_1_bss_3C = 0; - for(temp_r31=0; temp_r31<5; temp_r31++) { - lbl_1_bss_28[temp_r31] = -1; - } - lbl_1_bss_74 = omAddObjEx(temp_r30, 50, 0, 0, -1, fn_1_9F0); - fn_1_25D4(temp_r30); - fn_1_C44C(temp_r30); - fn_1_118D0(temp_r30); - fn_1_8958(temp_r30); + s32 temp_r31; + Process *temp_r30; + s16 temp_r29; + LightData *temp_r28; + Vec sp14 = { 0, 0, 0 }; + Vec sp8 = { 0, 0, -1 }; + HuAudSndGrpSet(33); + HuAudFXListnerSetEX(&sp14, &sp8, 6000, 3656.6667f, 0, 300, 300); + lbl_1_bss_1C = lbl_1_bss_18 = lbl_1_bss_14 = lbl_1_bss_10 = -1; + lbl_1_bss_C = 0; + lbl_1_bss_44 = 1; + lbl_1_bss_40 = 0; + temp_r29 = Hu3DGLightCreateV(&lbl_1_data_20, &lbl_1_data_2C, &lbl_1_data_38); + Hu3DGLightInfinitytSet(temp_r29); + temp_r28 = &Hu3DGlobalLight[temp_r29]; + temp_r28->unk_00 |= 0x8000; + Hu3DShadowCreate(30, 100, 25000); + Hu3DShadowTPLvlSet(0.3f); + Hu3DShadowPosSet(&lbl_1_data_58, &lbl_1_data_64, &lbl_1_data_70); + temp_r30 = omInitObjMan(50, 8192); + omGameSysInit(temp_r30); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + CRotM[temp_r31].x = 324.3f; + CRotM[temp_r31].y = 0; + CRotM[temp_r31].z = 0; + CenterM[temp_r31].x = 0; + CenterM[temp_r31].y = 130; + CenterM[temp_r31].z = 224; + CZoomM[temp_r31] = 220; + } + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, -1, 5, 25000, (4.0f / 3.0f)); + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + lbl_1_bss_70 = omAddObjEx(temp_r30, 32730, 0, 0, -1, omOutView); + lbl_1_bss_62 = 0; + lbl_1_bss_60 = 0; + lbl_1_bss_48 = 0; + lbl_1_bss_78 = omAddObjEx(temp_r30, 10, 0, 0, -1, fn_1_51C); + lbl_1_bss_3C = 0; + for (temp_r31 = 0; temp_r31 < 5; temp_r31++) { + lbl_1_bss_28[temp_r31] = -1; + } + lbl_1_bss_74 = omAddObjEx(temp_r30, 50, 0, 0, -1, fn_1_9F0); + fn_1_25D4(temp_r30); + fn_1_C44C(temp_r30); + fn_1_118D0(temp_r30); + fn_1_8958(temp_r30); } void fn_1_56C(omObjData *object); @@ -135,95 +132,94 @@ void fn_1_9A4(omObjData *object); void fn_1_51C(omObjData *object) { - lbl_1_bss_66 = 30; - lbl_1_bss_64 = 60; - lbl_1_bss_4C = 4; - lbl_1_bss_62 = 0; - object->func = fn_1_56C; + lbl_1_bss_66 = 30; + lbl_1_bss_64 = 60; + lbl_1_bss_4C = 4; + lbl_1_bss_62 = 0; + object->func = fn_1_56C; } - void fn_1_56C(omObjData *object) { - s32 temp_r30 = 0; - Vec sp14; - Vec sp8; - switch(lbl_1_bss_62) { - case 0: - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - lbl_1_bss_44 = 0; - Hu3DCameraPerspectiveSet(1, 50, 5, 25000, (4.0f/3.0f)); - lbl_1_bss_62 = 1; - break; - - case 1: - if(fn_1_C43C() == 5) { - lbl_1_bss_62 = 2; - } - break; - - case 2: - if(fn_1_6878() == 5) { - object->work[0] = 0; - lbl_1_bss_62 = 3; - } - break; - - case 3: - if(lbl_1_bss_4C == 0 || WipeStatGet() == 0) { - if(++object->work[0] >= 210.0f) { - lbl_1_bss_62 = 4; - } - } - break; - - case 4: - lbl_1_bss_62 = 5; - break; - - case 5: - if(fn_1_C43C() == 5) { - temp_r30 = 1; - lbl_1_bss_62 = 5; - } - break; - } - sp8.x = -(sind(CRot.y)*cosd(CRot.x)); - sp8.y = -(-sind(CRot.x)); - sp8.z = -(cosd(CRot.y)*cosd(CRot.x)); - sp14.x = Center.x-(sp8.x*CZoom); - sp14.y = Center.y-(sp8.y*CZoom); - sp14.z = Center.z-(sp8.z*CZoom); - HuAudFXListnerUpdate(&sp14, &sp8); - if((omSysExitReq && !WipeStatGet()) && !lbl_1_bss_44 || temp_r30) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - lbl_1_bss_44 = 1; - lbl_1_bss_40 = 1; - if(lbl_1_bss_10 >= 0) { - HuAudFXFadeOut(lbl_1_bss_10, 30); - } - object->func = fn_1_9A4; - } + s32 temp_r30 = 0; + Vec sp14; + Vec sp8; + switch (lbl_1_bss_62) { + case 0: + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_44 = 0; + Hu3DCameraPerspectiveSet(1, 50, 5, 25000, (4.0f / 3.0f)); + lbl_1_bss_62 = 1; + break; + + case 1: + if (fn_1_C43C() == 5) { + lbl_1_bss_62 = 2; + } + break; + + case 2: + if (fn_1_6878() == 5) { + object->work[0] = 0; + lbl_1_bss_62 = 3; + } + break; + + case 3: + if (lbl_1_bss_4C == 0 || WipeStatGet() == 0) { + if (++object->work[0] >= 210.0f) { + lbl_1_bss_62 = 4; + } + } + break; + + case 4: + lbl_1_bss_62 = 5; + break; + + case 5: + if (fn_1_C43C() == 5) { + temp_r30 = 1; + lbl_1_bss_62 = 5; + } + break; + } + sp8.x = -(sind(CRot.y) * cosd(CRot.x)); + sp8.y = -(-sind(CRot.x)); + sp8.z = -(cosd(CRot.y) * cosd(CRot.x)); + sp14.x = Center.x - (sp8.x * CZoom); + sp14.y = Center.y - (sp8.y * CZoom); + sp14.z = Center.z - (sp8.z * CZoom); + HuAudFXListnerUpdate(&sp14, &sp8); + if ((omSysExitReq && !WipeStatGet()) && !lbl_1_bss_44 || temp_r30) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_44 = 1; + lbl_1_bss_40 = 1; + if (lbl_1_bss_10 >= 0) { + HuAudFXFadeOut(lbl_1_bss_10, 30); + } + object->func = fn_1_9A4; + } } void fn_1_9A4(omObjData *object) { - if(!WipeStatGet()) { - CharModelKill(-1); - MGSeqKillAll(); - HuAudFadeOut(1); - omOvlReturnEx(1, 1); - } + if (!WipeStatGet()) { + CharModelKill(-1); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } } void fn_1_A40(omObjData *object); void fn_1_9F0(omObjData *object) { - lbl_1_bss_54 = 12000; - lbl_1_bss_50 = 0; - lbl_1_bss_60 = 0; - object->func = fn_1_A40; + lbl_1_bss_54 = 12000; + lbl_1_bss_50 = 0; + lbl_1_bss_60 = 0; + object->func = fn_1_A40; } void fn_1_CD8(omObjData *object); @@ -232,41 +228,41 @@ u32 fn_1_6868(void); void fn_1_A40(omObjData *object) { - if(fn_1_6868() != 2) { - return; - } - switch(lbl_1_bss_60) { - case 0: - Hu3DCameraPerspectiveSet(1, 35, 5, 25000, (4.0f/3.0f)); - CRot.x = -80.5f; - CRot.y = CRot.z = 0; - Center.x = 0; - Center.y = lbl_1_bss_54; - Center.z = 0; - CZoom = 260; - lbl_1_bss_60 = 1; - break; - - case 1: - lbl_1_bss_24 = MGSeqStartCreate(); - MGSeqPosSet(lbl_1_bss_24, 320, 240); - lbl_1_bss_60 = 2; + if (fn_1_6868() != 2) { + return; + } + switch (lbl_1_bss_60) { + case 0: + Hu3DCameraPerspectiveSet(1, 35, 5, 25000, (4.0f / 3.0f)); + CRot.x = -80.5f; + CRot.y = CRot.z = 0; + Center.x = 0; + Center.y = lbl_1_bss_54; + Center.z = 0; + CZoom = 260; + lbl_1_bss_60 = 1; + break; - - case 2: - Center.y = lbl_1_bss_54; - lbl_1_bss_50 = -400.0f;; - lbl_1_bss_54 += lbl_1_bss_50*(1.0f/60.0f); - if(lbl_1_bss_1C < 0 && (MGSeqStatGet(lbl_1_bss_24) & 0x10)) { - lbl_1_bss_1C = HuAudSeqPlay(74); - } - if(MGSeqStatGet(lbl_1_bss_24) == 0) { - lbl_1_bss_60 = 3; - object->func = fn_1_CD8; - } - - break; - } + case 1: + lbl_1_bss_24 = MGSeqStartCreate(); + MGSeqPosSet(lbl_1_bss_24, 320, 240); + lbl_1_bss_60 = 2; + + case 2: + Center.y = lbl_1_bss_54; + lbl_1_bss_50 = -400.0f; + ; + lbl_1_bss_54 += lbl_1_bss_50 * (1.0f / 60.0f); + if (lbl_1_bss_1C < 0 && (MGSeqStatGet(lbl_1_bss_24) & 0x10)) { + lbl_1_bss_1C = HuAudSeqPlay(74); + } + if (MGSeqStatGet(lbl_1_bss_24) == 0) { + lbl_1_bss_60 = 3; + object->func = fn_1_CD8; + } + + break; + } } void fn_1_8020(void); @@ -277,286 +273,285 @@ void fn_1_12A0(omObjData *object); void fn_1_CD8(omObjData *object) { - Center.y = lbl_1_bss_54; - lbl_1_bss_50 = -400.0f; - lbl_1_bss_54 += lbl_1_bss_50*(1.0f/60.0f); - fn_1_8020(); - if(lbl_1_bss_4C == 0) { - lbl_1_bss_48 = 1; - lbl_1_bss_20 = MGSeqFinishCreate(); - MGSeqPosSet(lbl_1_bss_20, 320, 240); - HuAudSeqFadeOut(lbl_1_bss_1C, 100); - object->func = fn_1_12A0; - } else { - if(lbl_1_bss_54 <= (-lbl_1_bss_50*0.5f)) { - lbl_1_bss_20 = MGSeqFinishCreate(); - MGSeqPosSet(lbl_1_bss_20, 320, 240); - HuAudSeqFadeOut(lbl_1_bss_1C, 100); - lbl_1_bss_50 = -120.00001f; - lbl_1_bss_54 = -lbl_1_bss_50*2.0f; - lbl_1_bss_60 = 4; - object->func = fn_1_EF8; - - } - } + Center.y = lbl_1_bss_54; + lbl_1_bss_50 = -400.0f; + lbl_1_bss_54 += lbl_1_bss_50 * (1.0f / 60.0f); + fn_1_8020(); + if (lbl_1_bss_4C == 0) { + lbl_1_bss_48 = 1; + lbl_1_bss_20 = MGSeqFinishCreate(); + MGSeqPosSet(lbl_1_bss_20, 320, 240); + HuAudSeqFadeOut(lbl_1_bss_1C, 100); + object->func = fn_1_12A0; + } + else { + if (lbl_1_bss_54 <= (-lbl_1_bss_50 * 0.5f)) { + lbl_1_bss_20 = MGSeqFinishCreate(); + MGSeqPosSet(lbl_1_bss_20, 320, 240); + HuAudSeqFadeOut(lbl_1_bss_1C, 100); + lbl_1_bss_50 = -120.00001f; + lbl_1_bss_54 = -lbl_1_bss_50 * 2.0f; + lbl_1_bss_60 = 4; + object->func = fn_1_EF8; + } + } } void fn_1_18C0(omObjData *object); void fn_1_EF8(omObjData *object) { - Vec sp30; - Vec sp24; - Vec sp18; - Vec spC; - float temp_f29; - if(lbl_1_bss_10 < 0) { - lbl_1_bss_10 = HuAudFXPlay(1360); - } - sp30.x = 0; - sp30.y = 50; - sp30.z = 230; - temp_f29 = atan2d(lbl_1_bss_54-sp30.y, sp30.z); - if(temp_f29 < 0.0f) { - temp_f29 += 360.0f; - } - Center.x = 0; - Center.y = lbl_1_bss_54; - Center.z = 0; - CRot.x = temp_f29; - CZoom = sqrtf((sp30.z*sp30.z)+((lbl_1_bss_54-sp30.y)*(lbl_1_bss_54-sp30.y))); - spC.x = 0; - spC.z = 0; - sp24.x = 200; - sp24.z = 200; - sp24.y = 800; - spC.y = 20; - sp18.x = sp18.y = 0; - sp18.z = 1; - Hu3DShadowPosSet(&sp24, &sp18, &spC); - Hu3DShadowTPLvlSet(0.5f); - lbl_1_bss_54 += lbl_1_bss_50*(1.0f/60.0f); - if(lbl_1_bss_54 <= 0.0f) { - lbl_1_bss_54 = 0; - lbl_1_bss_60 = 5; - object->func = fn_1_18C0; - } + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + float temp_f29; + if (lbl_1_bss_10 < 0) { + lbl_1_bss_10 = HuAudFXPlay(1360); + } + sp30.x = 0; + sp30.y = 50; + sp30.z = 230; + temp_f29 = atan2d(lbl_1_bss_54 - sp30.y, sp30.z); + if (temp_f29 < 0.0f) { + temp_f29 += 360.0f; + } + Center.x = 0; + Center.y = lbl_1_bss_54; + Center.z = 0; + CRot.x = temp_f29; + CZoom = sqrtf((sp30.z * sp30.z) + ((lbl_1_bss_54 - sp30.y) * (lbl_1_bss_54 - sp30.y))); + spC.x = 0; + spC.z = 0; + sp24.x = 200; + sp24.z = 200; + sp24.y = 800; + spC.y = 20; + sp18.x = sp18.y = 0; + sp18.z = 1; + Hu3DShadowPosSet(&sp24, &sp18, &spC); + Hu3DShadowTPLvlSet(0.5f); + lbl_1_bss_54 += lbl_1_bss_50 * (1.0f / 60.0f); + if (lbl_1_bss_54 <= 0.0f) { + lbl_1_bss_54 = 0; + lbl_1_bss_60 = 5; + object->func = fn_1_18C0; + } } void fn_1_148C(omObjData *object); void fn_1_12A0(omObjData *object) { - if(lbl_1_bss_54 > (-lbl_1_bss_50*0.8f)) { - Center.y = lbl_1_bss_54; - lbl_1_bss_50 = -400; - lbl_1_bss_54 += lbl_1_bss_50*(1.0f/60.0f); - } - if(MGSeqStatGet(lbl_1_bss_20)) { - return; - } - switch(fn_1_CE68()) { - case 0: - OSReport("Map 0\n"); - case 1: - OSReport("Map 1\n"); - if(lbl_1_bss_40 == 0) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - lbl_1_bss_44 = 1; - } - object->func = fn_1_148C; - break; - - case 2: - OSReport("Map 2\n"); - case 3: - OSReport("Map 3\n"); - break; - - case 4: - OSReport("Map 4\n"); - if(lbl_1_bss_40 == 0) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - lbl_1_bss_44 = 1; - } - object->func = fn_1_148C; - break; - } + if (lbl_1_bss_54 > (-lbl_1_bss_50 * 0.8f)) { + Center.y = lbl_1_bss_54; + lbl_1_bss_50 = -400; + lbl_1_bss_54 += lbl_1_bss_50 * (1.0f / 60.0f); + } + if (MGSeqStatGet(lbl_1_bss_20)) { + return; + } + switch (fn_1_CE68()) { + case 0: + OSReport("Map 0\n"); + case 1: + OSReport("Map 1\n"); + if (lbl_1_bss_40 == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_44 = 1; + } + object->func = fn_1_148C; + break; + + case 2: + OSReport("Map 2\n"); + case 3: + OSReport("Map 3\n"); + break; + + case 4: + OSReport("Map 4\n"); + if (lbl_1_bss_40 == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + lbl_1_bss_44 = 1; + } + object->func = fn_1_148C; + break; + } } void fn_1_148C(omObjData *object) { - Vec sp30; - Vec sp24; - Vec sp18; - Vec spC; - float temp_f29; - if(!WipeStatGet()) { - lbl_1_bss_54 = 0; - sp30.x = 0; - sp30.y = 50; - sp30.z = 230; - temp_f29 = atan2d(lbl_1_bss_54-sp30.y, sp30.z); - if(temp_f29 < 0.0f) { - temp_f29 += 360.0f; - } - Center.x = 0; - Center.y = lbl_1_bss_54; - Center.z = 0; - CRot.x = temp_f29; - CZoom = sqrtf((sp30.z*sp30.z)+((lbl_1_bss_54-sp30.y)*(lbl_1_bss_54-sp30.y))); - spC.x = 0; - spC.z = 0; - sp24.x = 200; - sp24.z = 200; - sp24.y = 800; - spC.y = 20; - sp18.x = sp18.y = 0; - sp18.z = 1; - Hu3DShadowPosSet(&sp24, &sp18, &spC); - Hu3DShadowTPLvlSet(0.5f); - fn_1_CEEC(); - if(lbl_1_bss_10 < 0) { - lbl_1_bss_10 = HuAudFXPlay(1360); - } - if(lbl_1_bss_40 == 0) { - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - lbl_1_bss_44 = 0; - } - lbl_1_bss_60 = 5; - object->func = fn_1_18C0; - } else { - if(lbl_1_bss_54 > (-lbl_1_bss_50*0.8f)) { - Center.y = lbl_1_bss_54; - lbl_1_bss_50 = -400; - lbl_1_bss_54 += lbl_1_bss_50*(1.0f/60.0f); - } - } + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + float temp_f29; + if (!WipeStatGet()) { + lbl_1_bss_54 = 0; + sp30.x = 0; + sp30.y = 50; + sp30.z = 230; + temp_f29 = atan2d(lbl_1_bss_54 - sp30.y, sp30.z); + if (temp_f29 < 0.0f) { + temp_f29 += 360.0f; + } + Center.x = 0; + Center.y = lbl_1_bss_54; + Center.z = 0; + CRot.x = temp_f29; + CZoom = sqrtf((sp30.z * sp30.z) + ((lbl_1_bss_54 - sp30.y) * (lbl_1_bss_54 - sp30.y))); + spC.x = 0; + spC.z = 0; + sp24.x = 200; + sp24.z = 200; + sp24.y = 800; + spC.y = 20; + sp18.x = sp18.y = 0; + sp18.z = 1; + Hu3DShadowPosSet(&sp24, &sp18, &spC); + Hu3DShadowTPLvlSet(0.5f); + fn_1_CEEC(); + if (lbl_1_bss_10 < 0) { + lbl_1_bss_10 = HuAudFXPlay(1360); + } + if (lbl_1_bss_40 == 0) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + lbl_1_bss_44 = 0; + } + lbl_1_bss_60 = 5; + object->func = fn_1_18C0; + } + else { + if (lbl_1_bss_54 > (-lbl_1_bss_50 * 0.8f)) { + Center.y = lbl_1_bss_54; + lbl_1_bss_50 = -400; + lbl_1_bss_54 += lbl_1_bss_50 * (1.0f / 60.0f); + } + } } void fn_1_18C0(omObjData *object) { - if(!WipeStatGet() && lbl_1_bss_14 < 0) { - if(lbl_1_bss_C) { - lbl_1_bss_14 = HuAudSStreamPlay(1); - } else { - lbl_1_bss_14 = HuAudSStreamPlay(4); - } - } + if (!WipeStatGet() && lbl_1_bss_14 < 0) { + if (lbl_1_bss_C) { + lbl_1_bss_14 = HuAudSStreamPlay(1); + } + else { + lbl_1_bss_14 = HuAudSStreamPlay(4); + } + } } -float lbl_1_data_A0[] = { - 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7 -}; - +float lbl_1_data_A0[] = { 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 }; void fn_1_1940(Work2FAC *arg0, Vec *arg1) { - Mtx sp18; - Vec spC; - spC.x = sind(arg0->unk58.x+90.0f); - spC.y = 0; - spC.z = cosd(arg0->unk58.x+90.0f); - MTXRotAxisDeg(sp18, &spC, arg0->unk58.y); - spC.x = spC.z = 0; - spC.y = -lbl_1_data_A0[arg0->unk2]; - MTXMultVec(sp18, &spC, arg1); + Mtx sp18; + Vec spC; + spC.x = sind(arg0->unk58.x + 90.0f); + spC.y = 0; + spC.z = cosd(arg0->unk58.x + 90.0f); + MTXRotAxisDeg(sp18, &spC, arg0->unk58.y); + spC.x = spC.z = 0; + spC.y = -lbl_1_data_A0[arg0->unk2]; + MTXMultVec(sp18, &spC, arg1); } void fn_1_1A60(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) { - Mtx spC; - mtxRot(spC, arg1->x, arg1->y, arg1->z); - MTXMultVec(spC, arg2, arg3); - arg3->x += arg0->x; - arg3->y += arg0->y; - arg3->z += arg0->z; + Mtx spC; + mtxRot(spC, arg1->x, arg1->y, arg1->z); + MTXMultVec(spC, arg2, arg3); + arg3->x += arg0->x; + arg3->y += arg0->y; + arg3->z += arg0->z; } void fn_1_1AF8(Work2FAC *arg0, s32 arg1, Vec *arg2) { - float temp_f31; - float temp_f30; - temp_f30 = temp_f31 = 0; - arg2->x = (temp_f31*sind(temp_f30))+arg0->unk1C.x; - arg2->y = 15.0f+arg0->unk1C.y+temp_f31; - arg2->z = (temp_f31*cosd(temp_f30))+arg0->unk1C.z; + float temp_f31; + float temp_f30; + temp_f30 = temp_f31 = 0; + arg2->x = (temp_f31 * sind(temp_f30)) + arg0->unk1C.x; + arg2->y = 15.0f + arg0->unk1C.y + temp_f31; + arg2->z = (temp_f31 * cosd(temp_f30)) + arg0->unk1C.z; } void fn_1_1BE8(omObjData *arg0, float arg1) { - Vec sp8; - Work2FAC *temp_r31 = arg0->data; - float temp_f31 = 1.0f-arg1; - float temp_f29; - if(!temp_r31->unk8) { - return; - } - fn_1_1AF8(temp_r31, 1, &sp8); - if(fn_1_6878() >= 4) { - sp8.z += -5.0f; - } - temp_r31->unk94.x = (temp_r31->unk94.x*temp_f31)+(sp8.x*arg1); - temp_r31->unk94.y = (temp_r31->unk94.y*temp_f31)+(sp8.y*arg1); - temp_r31->unk94.z = (temp_r31->unk94.z*temp_f31)+(sp8.z*arg1); - temp_f29 = (0.1f*((temp_r31->unk8*0.5f)+0.5f))*arg1; - temp_r31->unkA0.x = temp_r31->unkC*(temp_f29+(temp_r31->unkA0.x*temp_f31)); - temp_r31->unkA0.y = temp_r31->unkC*(temp_f29+(temp_r31->unkA0.y*temp_f31)); - temp_r31->unkA0.z = temp_r31->unkC*(temp_f29+(temp_r31->unkA0.z*temp_f31)); - Hu3DModelPosSetV(arg0->model[1], &temp_r31->unk94); - Hu3DModelScaleSetV(arg0->model[1], &temp_r31->unkA0); + Vec sp8; + Work2FAC *temp_r31 = arg0->data; + float temp_f31 = 1.0f - arg1; + float temp_f29; + if (!temp_r31->unk8) { + return; + } + fn_1_1AF8(temp_r31, 1, &sp8); + if (fn_1_6878() >= 4) { + sp8.z += -5.0f; + } + temp_r31->unk94.x = (temp_r31->unk94.x * temp_f31) + (sp8.x * arg1); + temp_r31->unk94.y = (temp_r31->unk94.y * temp_f31) + (sp8.y * arg1); + temp_r31->unk94.z = (temp_r31->unk94.z * temp_f31) + (sp8.z * arg1); + temp_f29 = (0.1f * ((temp_r31->unk8 * 0.5f) + 0.5f)) * arg1; + temp_r31->unkA0.x = temp_r31->unkC * (temp_f29 + (temp_r31->unkA0.x * temp_f31)); + temp_r31->unkA0.y = temp_r31->unkC * (temp_f29 + (temp_r31->unkA0.y * temp_f31)); + temp_r31->unkA0.z = temp_r31->unkC * (temp_f29 + (temp_r31->unkA0.z * temp_f31)); + Hu3DModelPosSetV(arg0->model[1], &temp_r31->unk94); + Hu3DModelScaleSetV(arg0->model[1], &temp_r31->unkA0); } void fn_1_1E54(omObjData *object) { - Work2FAC *work = object->data; - if(work->unk8) { - work->unk94.y += 0.5f; - Hu3DModelPosSetV(object->model[1], &work->unk94); - } + Work2FAC *work = object->data; + if (work->unk8) { + work->unk94.y += 0.5f; + Hu3DModelPosSetV(object->model[1], &work->unk94); + } } s32 fn_1_1EBC(omObjData *object) { - float temp_f31; - float temp_f22; - float temp_f21; - Vec sp3C; - Vec sp30; - Vec sp24; - - Work2FAC *temp_r31 = object->data; - temp_f31 = (temp_r31->unk1C.x*temp_r31->unk1C.x)+((10.0f/7.0f)*((10.0f/7.0f)*temp_r31->unk1C.z*temp_r31->unk1C.z)); - if(temp_f31 > 6400) { - temp_f22 = 80.0f/sqrtf(temp_f31); - sp3C.x = temp_r31->unk1C.x*temp_f22; - sp3C.z = temp_r31->unk1C.z*temp_f22; - temp_r31->unk34.x = sp3C.x-temp_r31->unk1C.x; - temp_r31->unk34.z = sp3C.z-temp_r31->unk1C.z; - temp_f21 = 80.0f*sqrtf(0.51f); - sp30.x = temp_f21-sp3C.x; - sp30.z = -sp3C.z; - sp24.x = -temp_f21-sp3C.x; - sp24.z = -sp3C.z; - temp_f31 = 1.0f/VECMagXZ(&sp30); - sp30.x *= temp_f31; - sp30.z *= temp_f31; - temp_f31 = 1.0f/VECMagXZ(&sp24); - sp24.x *= temp_f31; - sp24.z *= temp_f31; - sp30.x += sp24.x; - sp30.z += sp24.z; - temp_f31 = 1.0f/VECMagXZ(&sp30); - sp30.x *= temp_f31; - sp30.z *= temp_f31; - temp_f22 = -((sp30.x*temp_r31->unk28.x)+(sp30.z*temp_r31->unk28.z)); - temp_r31->unk28.x += (sp30.x*20.0f)+(sp30.x*2.0f*temp_f22); - temp_r31->unk28.z += (sp30.z*20.0f)+(sp30.z*2.0f*temp_f22); - return 1; - } else { - return 0; - } + float temp_f31; + float temp_f22; + float temp_f21; + Vec sp3C; + Vec sp30; + Vec sp24; + + Work2FAC *temp_r31 = object->data; + temp_f31 = (temp_r31->unk1C.x * temp_r31->unk1C.x) + ((10.0f / 7.0f) * ((10.0f / 7.0f) * temp_r31->unk1C.z * temp_r31->unk1C.z)); + if (temp_f31 > 6400) { + temp_f22 = 80.0f / sqrtf(temp_f31); + sp3C.x = temp_r31->unk1C.x * temp_f22; + sp3C.z = temp_r31->unk1C.z * temp_f22; + temp_r31->unk34.x = sp3C.x - temp_r31->unk1C.x; + temp_r31->unk34.z = sp3C.z - temp_r31->unk1C.z; + temp_f21 = 80.0f * sqrtf(0.51f); + sp30.x = temp_f21 - sp3C.x; + sp30.z = -sp3C.z; + sp24.x = -temp_f21 - sp3C.x; + sp24.z = -sp3C.z; + temp_f31 = 1.0f / VECMagXZ(&sp30); + sp30.x *= temp_f31; + sp30.z *= temp_f31; + temp_f31 = 1.0f / VECMagXZ(&sp24); + sp24.x *= temp_f31; + sp24.z *= temp_f31; + sp30.x += sp24.x; + sp30.z += sp24.z; + temp_f31 = 1.0f / VECMagXZ(&sp30); + sp30.x *= temp_f31; + sp30.z *= temp_f31; + temp_f22 = -((sp30.x * temp_r31->unk28.x) + (sp30.z * temp_r31->unk28.z)); + temp_r31->unk28.x += (sp30.x * 20.0f) + (sp30.x * 2.0f * temp_f22); + temp_r31->unk28.z += (sp30.z * 20.0f) + (sp30.z * 2.0f * temp_f22); + return 1; + } + else { + return 0; + } } void fn_1_26E4(omObjData *object); @@ -564,122 +559,112 @@ void fn_1_61FC(omObjData *object); void fn_1_25D4(Process *objman) { - s32 i; - omMakeGroupEx(objman, 0, 4); - lbl_1_bss_6C = omGetGroupMemberListEx(objman, 0); - lbl_1_bss_58 = 0; - for(i=0; i<4; i++) { - omObjData *object = omAddObjEx(objman, 40, 5, 7, 0, fn_1_26E4); - if(!GWPlayerCfg[i].iscom) { - lbl_1_bss_58++; - } - object->work[0] = i; - } - lbl_1_bss_8 = omAddObjEx(objman, 10, 0, 0, -1, fn_1_61FC); - + s32 i; + omMakeGroupEx(objman, 0, 4); + lbl_1_bss_6C = omGetGroupMemberListEx(objman, 0); + lbl_1_bss_58 = 0; + for (i = 0; i < 4; i++) { + omObjData *object = omAddObjEx(objman, 40, 5, 7, 0, fn_1_26E4); + if (!GWPlayerCfg[i].iscom) { + lbl_1_bss_58++; + } + object->work[0] = i; + } + lbl_1_bss_8 = omAddObjEx(objman, 10, 0, 0, -1, fn_1_61FC); } s32 lbl_1_data_C8[] = { - 0x270002, - 0x270003, - 0x270004, - 0x270005, - 0x270006, - 0x270007, - 0x270008, - 0x270009, + DATA_MAKE_NUM(DATADIR_M408, 0x02), + DATA_MAKE_NUM(DATADIR_M408, 0x03), + DATA_MAKE_NUM(DATADIR_M408, 0x04), + DATA_MAKE_NUM(DATADIR_M408, 0x05), + DATA_MAKE_NUM(DATADIR_M408, 0x06), + DATA_MAKE_NUM(DATADIR_M408, 0x07), + DATA_MAKE_NUM(DATADIR_M408, 0x08), + DATA_MAKE_NUM(DATADIR_M408, 0x09), }; u32 lbl_1_data_E8[] = { - 0, - 23, - 24, - 0x27002C, - 0x27003C, - 0x270034, - 22 + 0, + 23, + 24, + DATA_MAKE_NUM(DATADIR_M408, 0x2C), + DATA_MAKE_NUM(DATADIR_M408, 0x3C), + DATA_MAKE_NUM(DATADIR_M408, 0x34), + 22, }; -float lbl_1_data_104[][2] = { - -40, -30, - 40, -30, - -40, 30, - 40, 30 -}; +float lbl_1_data_104[][2] = { -40, -30, 40, -30, -40, 30, 40, 30 }; -float lbl_1_data_124[][2] = { - 0, -56, - 0, 56, - -80, 0, - 80, 0 -}; +float lbl_1_data_124[][2] = { 0, -56, 0, 56, -80, 0, 80, 0 }; void fn_1_2FAC(omObjData *object); void fn_1_5AB4(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_26E4(omObjData *object) { - Work2FAC *temp_r31; - s32 temp_r28; - s32 temp_r27; - - float sp20[4] = { 0.25, 0.5, 0.75, 1.0 }; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work2FAC), MEMORY_DEFAULT_NUM); - temp_r31 = object->data; - memset(temp_r31, 0, sizeof(Work2FAC)); - temp_r31->unk0 = object->work[0]; - temp_r31->unk2 = GWPlayerCfg[temp_r31->unk0].character; - temp_r31->unk2 &= 0x7; - temp_r31->unk4 = 0; - temp_r31->unk90 = sp20[GWPlayerCfg[object->work[0]].diff & 0x3]; - temp_r31->unk1C.x = lbl_1_data_104[temp_r31->unk0][0]; - temp_r31->unk1C.y = lbl_1_bss_54; - temp_r31->unk1C.z = lbl_1_data_104[temp_r31->unk0][1]; - temp_r31->unk28.x = temp_r31->unk28.y = temp_r31->unk28.z = 0; - temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; - temp_r31->unk58.y = 0; - temp_r31->unk58.x = 0; - temp_r31->unk4C.x = temp_r31->unk4C.y = temp_r31->unk4C.z = 0; - temp_r31->unk58.z = 9.0f; - temp_r31->unk40.x = temp_r31->unk40.y = temp_r31->unk40.z = 0; - temp_r31->unk8 = 4; - temp_r31->unkC = 0; - fn_1_1940(temp_r31, &temp_r31->unk68); - omSetTra(object, temp_r31->unk1C.x+temp_r31->unk68.x, temp_r31->unk1C.y+temp_r31->unk68.y, temp_r31->unk1C.z+temp_r31->unk68.z); - omSetSca(object, 0.075f, 0.075f, 0.075f); - object->model[0] = CharModelCreate(temp_r31->unk2, 4); - for(temp_r28=0; temp_r28<7; temp_r28++) { - if(lbl_1_data_E8[temp_r28] < 0x10000) { - object->motion[temp_r28] = CharModelMotionCreate(temp_r31->unk2, lbl_1_data_E8[temp_r28]); - } else { - object->motion[temp_r28] = Hu3DJointMotionFile(object->model[0], temp_r31->unk2+lbl_1_data_E8[temp_r28]); - } - } - CharModelVoiceEnableSet(temp_r31->unk2, object->motion[1], 0); - CharModelMotionShiftSet(temp_r31->unk2, object->motion[0], 0, 0.2, 0x40000001); - CharModelLayerSetAll(2); - CharModelMotionDataClose(temp_r31->unk2); - object->model[1] = Hu3DModelCreateFile(lbl_1_data_C8[temp_r31->unk2]); - Hu3DModelLayerSet(object->model[1], 6); - Hu3DModelScaleSet(object->model[1], 0.1f*temp_r31->unk8, 0.1f*temp_r31->unk8, 0.1f*temp_r31->unk8); - Hu3DModelAttrSet(object->model[1], 1); - temp_r31->unk94.x = temp_r31->unk94.y = temp_r31->unk94.z = 0; - temp_r31->unkA0.x = temp_r31->unkA0.y = temp_r31->unkA0.z = 0; - fn_1_1BE8(object, 1.0f); - temp_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x270024), 256); - object->model[2] = temp_r27; - Hu3DModelLayerSet(temp_r27, 6); - Hu3DParticleColSet(temp_r27, 255, 255, 255); - Hu3DParticleHookSet(temp_r27, fn_1_5AB4); - Hu3DModelPosSet(temp_r27, 0, 0, 0); - ((ParticleData *)Hu3DData[temp_r27].unk_120)->unk_00 = 0; - temp_r31->unk74 = temp_r31->unk78 = 0; - temp_r31->unk7C[0] = temp_r31->unk7C[1] = 0; - temp_r31->unk8C = -1; - temp_r31->unk8E = 0; - temp_r31->unk84[0] = temp_r31->unk84[1] = 0; - object->work[1] = 0; - object->func = fn_1_2FAC; + Work2FAC *temp_r31; + s32 temp_r28; + s32 temp_r27; + + float sp20[4] = { 0.25, 0.5, 0.75, 1.0 }; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work2FAC), MEMORY_DEFAULT_NUM); + temp_r31 = object->data; + memset(temp_r31, 0, sizeof(Work2FAC)); + temp_r31->unk0 = object->work[0]; + temp_r31->unk2 = GWPlayerCfg[temp_r31->unk0].character; + temp_r31->unk2 &= 0x7; + temp_r31->unk4 = 0; + temp_r31->unk90 = sp20[GWPlayerCfg[object->work[0]].diff & 0x3]; + temp_r31->unk1C.x = lbl_1_data_104[temp_r31->unk0][0]; + temp_r31->unk1C.y = lbl_1_bss_54; + temp_r31->unk1C.z = lbl_1_data_104[temp_r31->unk0][1]; + temp_r31->unk28.x = temp_r31->unk28.y = temp_r31->unk28.z = 0; + temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; + temp_r31->unk58.y = 0; + temp_r31->unk58.x = 0; + temp_r31->unk4C.x = temp_r31->unk4C.y = temp_r31->unk4C.z = 0; + temp_r31->unk58.z = 9.0f; + temp_r31->unk40.x = temp_r31->unk40.y = temp_r31->unk40.z = 0; + temp_r31->unk8 = 4; + temp_r31->unkC = 0; + fn_1_1940(temp_r31, &temp_r31->unk68); + omSetTra(object, temp_r31->unk1C.x + temp_r31->unk68.x, temp_r31->unk1C.y + temp_r31->unk68.y, temp_r31->unk1C.z + temp_r31->unk68.z); + omSetSca(object, 0.075f, 0.075f, 0.075f); + object->model[0] = CharModelCreate(temp_r31->unk2, 4); + for (temp_r28 = 0; temp_r28 < 7; temp_r28++) { + if (lbl_1_data_E8[temp_r28] < 0x10000) { + object->motion[temp_r28] = CharModelMotionCreate(temp_r31->unk2, lbl_1_data_E8[temp_r28]); + } + else { + object->motion[temp_r28] = Hu3DJointMotionFile(object->model[0], temp_r31->unk2 + lbl_1_data_E8[temp_r28]); + } + } + CharModelVoiceEnableSet(temp_r31->unk2, object->motion[1], 0); + CharModelMotionShiftSet(temp_r31->unk2, object->motion[0], 0, 0.2, 0x40000001); + CharModelLayerSetAll(2); + CharModelMotionDataClose(temp_r31->unk2); + object->model[1] = Hu3DModelCreateFile(lbl_1_data_C8[temp_r31->unk2]); + Hu3DModelLayerSet(object->model[1], 6); + Hu3DModelScaleSet(object->model[1], 0.1f * temp_r31->unk8, 0.1f * temp_r31->unk8, 0.1f * temp_r31->unk8); + Hu3DModelAttrSet(object->model[1], 1); + temp_r31->unk94.x = temp_r31->unk94.y = temp_r31->unk94.z = 0; + temp_r31->unkA0.x = temp_r31->unkA0.y = temp_r31->unkA0.z = 0; + fn_1_1BE8(object, 1.0f); + temp_r27 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x24)), 256); + object->model[2] = temp_r27; + Hu3DModelLayerSet(temp_r27, 6); + Hu3DParticleColSet(temp_r27, 255, 255, 255); + Hu3DParticleHookSet(temp_r27, fn_1_5AB4); + Hu3DModelPosSet(temp_r27, 0, 0, 0); + ((ParticleData *)Hu3DData[temp_r27].unk_120)->unk_00 = 0; + temp_r31->unk74 = temp_r31->unk78 = 0; + temp_r31->unk7C[0] = temp_r31->unk7C[1] = 0; + temp_r31->unk8C = -1; + temp_r31->unk8E = 0; + temp_r31->unk84[0] = temp_r31->unk84[1] = 0; + object->work[1] = 0; + object->func = fn_1_2FAC; } void fn_1_5DCC(s32 arg0, Vec *arg1, u32 arg2); @@ -687,181 +672,172 @@ void fn_1_3E80(omObjData *object); void fn_1_2FAC(omObjData *object) { - Work2FAC *temp_r31 = object->data; - Vec sp78[] = { - { 8, -25, -18 }, - { 2, -25, -10 }, - { 2, -25, -24 }, - { -3, -25, -15} - }; - Vec sp3C; - Vec sp30; - Vec sp24; - float sp14[] = { - 45, - 135, - 225, - 315 - }; - float temp_f27; - switch(object->work[1]) { - case 0: - fn_1_C3C0(&sp3C, &sp30); - fn_1_1A60(&sp3C, &sp30, &sp78[temp_r31->unk0], &sp24); - omSetRot(object, 0, 90, 0); - omSetTra(object, sp24.x, sp24.y, sp24.z); - if(fn_1_C43C() != 1) { - object->work[1]++; - temp_r31->unk58.y = 60; - temp_r31->unk58.x = sp14[temp_r31->unk0]; - temp_r31->unk28.x = temp_r31->unk28.y = temp_r31->unk28.z = 0; - object->trans.x -= 10.0*(2.0*sind(temp_r31->unk58.x)); - object->trans.z -= 10.0*(2.0*cosd(temp_r31->unk58.x)); - CharModelMotionShiftSet(temp_r31->unk2, object->motion[4], 0, 0.2, 0x40000001); - temp_r31->unk1C.x = temp_r31->unk94.x = object->trans.x; - temp_r31->unk1C.y = temp_r31->unk94.y = object->trans.y; - temp_r31->unk1C.z = temp_r31->unk94.z = object->trans.z; - } - break; - - case 1: - temp_r31->unk28.y += -98.0f; - if(temp_r31->unk28.y < -400.0f) { - temp_r31->unk28.y = -400.0f; - } - temp_f27 = object->trans.y; - object->trans.y += temp_r31->unk28.y*(1.0f/60.0f); - temp_r31->unk58.x += 1.5000001f; - if(temp_r31->unk58.x >= 360.0f) { - temp_r31->unk58.x -= 360.0f; - } - object->trans.x += (3.141590118408203f*(10.0*sind(temp_r31->unk58.x-90.0f)))*(1.0f/60.0f); - object->trans.z += (3.141590118408203f*(10.0*cosd(temp_r31->unk58.x-90.0f)))*(1.0f/60.0f); - if(temp_f27 > 12000 && object->trans.y <= 12000){ - sp3C.x = object->trans.x; - sp3C.y = object->trans.y; - sp3C.z = object->trans.z; - fn_1_5DCC(object->model[2], &sp3C, 100); - } - temp_r31->unk4C.x = temp_r31->unk58.y; - temp_r31->unk4C.y = temp_r31->unk58.x; - temp_r31->unk4C.z = 0; - temp_r31->unk1C.x = object->trans.x; - temp_r31->unk1C.y = object->trans.y; - temp_r31->unk1C.z = object->trans.z; - omSetRot(object, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); - Hu3DModelAttrReset(object->model[1], 0x1); - temp_r31->unkC += 0.2f*(1.0f-temp_r31->unkC); - if(object->trans.y < 11940) { - object->work[1]++; - } - break; - } - fn_1_1BE8(object, 1.0f); - if(fn_1_6878() == 1) { - omSetSca(object, 0.15f, 0.15f, 0.15f); - object->trans.x = temp_r31->unk1C.x = temp_r31->unk94.x = lbl_1_data_104[temp_r31->unk0][0]; - object->trans.y = temp_r31->unk1C.y = temp_r31->unk94.y = lbl_1_bss_54; - object->trans.z = temp_r31->unk1C.z = temp_r31->unk94.z = lbl_1_data_104[temp_r31->unk0][1]; - object->rot.y = temp_r31->unk58.x = atan2d(object->trans.x, object->trans.z)+180.0; - Hu3DModelAttrReset(object->model[1], 1); - ((ParticleData *)Hu3DData[object->model[2]].unk_120)->unk_00 = 0; - object->func = fn_1_3E80; - } + Work2FAC *temp_r31 = object->data; + Vec sp78[] = { { 8, -25, -18 }, { 2, -25, -10 }, { 2, -25, -24 }, { -3, -25, -15 } }; + Vec sp3C; + Vec sp30; + Vec sp24; + float sp14[] = { 45, 135, 225, 315 }; + float temp_f27; + switch (object->work[1]) { + case 0: + fn_1_C3C0(&sp3C, &sp30); + fn_1_1A60(&sp3C, &sp30, &sp78[temp_r31->unk0], &sp24); + omSetRot(object, 0, 90, 0); + omSetTra(object, sp24.x, sp24.y, sp24.z); + if (fn_1_C43C() != 1) { + object->work[1]++; + temp_r31->unk58.y = 60; + temp_r31->unk58.x = sp14[temp_r31->unk0]; + temp_r31->unk28.x = temp_r31->unk28.y = temp_r31->unk28.z = 0; + object->trans.x -= 10.0 * (2.0 * sind(temp_r31->unk58.x)); + object->trans.z -= 10.0 * (2.0 * cosd(temp_r31->unk58.x)); + CharModelMotionShiftSet(temp_r31->unk2, object->motion[4], 0, 0.2, 0x40000001); + temp_r31->unk1C.x = temp_r31->unk94.x = object->trans.x; + temp_r31->unk1C.y = temp_r31->unk94.y = object->trans.y; + temp_r31->unk1C.z = temp_r31->unk94.z = object->trans.z; + } + break; + + case 1: + temp_r31->unk28.y += -98.0f; + if (temp_r31->unk28.y < -400.0f) { + temp_r31->unk28.y = -400.0f; + } + temp_f27 = object->trans.y; + object->trans.y += temp_r31->unk28.y * (1.0f / 60.0f); + temp_r31->unk58.x += 1.5000001f; + if (temp_r31->unk58.x >= 360.0f) { + temp_r31->unk58.x -= 360.0f; + } + object->trans.x += (3.141590118408203f * (10.0 * sind(temp_r31->unk58.x - 90.0f))) * (1.0f / 60.0f); + object->trans.z += (3.141590118408203f * (10.0 * cosd(temp_r31->unk58.x - 90.0f))) * (1.0f / 60.0f); + if (temp_f27 > 12000 && object->trans.y <= 12000) { + sp3C.x = object->trans.x; + sp3C.y = object->trans.y; + sp3C.z = object->trans.z; + fn_1_5DCC(object->model[2], &sp3C, 100); + } + temp_r31->unk4C.x = temp_r31->unk58.y; + temp_r31->unk4C.y = temp_r31->unk58.x; + temp_r31->unk4C.z = 0; + temp_r31->unk1C.x = object->trans.x; + temp_r31->unk1C.y = object->trans.y; + temp_r31->unk1C.z = object->trans.z; + omSetRot(object, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); + Hu3DModelAttrReset(object->model[1], 0x1); + temp_r31->unkC += 0.2f * (1.0f - temp_r31->unkC); + if (object->trans.y < 11940) { + object->work[1]++; + } + break; + } + fn_1_1BE8(object, 1.0f); + if (fn_1_6878() == 1) { + omSetSca(object, 0.15f, 0.15f, 0.15f); + object->trans.x = temp_r31->unk1C.x = temp_r31->unk94.x = lbl_1_data_104[temp_r31->unk0][0]; + object->trans.y = temp_r31->unk1C.y = temp_r31->unk94.y = lbl_1_bss_54; + object->trans.z = temp_r31->unk1C.z = temp_r31->unk94.z = lbl_1_data_104[temp_r31->unk0][1]; + object->rot.y = temp_r31->unk58.x = atan2d(object->trans.x, object->trans.z) + 180.0; + Hu3DModelAttrReset(object->model[1], 1); + ((ParticleData *)Hu3DData[object->model[2]].unk_120)->unk_00 = 0; + object->func = fn_1_3E80; + } } void fn_1_38D0(omObjData *arg0, s8 *arg1, s8 *arg2) { - float temp_f31; - float temp_f30; - float temp_f29; - Work2FAC *temp_r31; - Work2FAC *temp_r30; - s8 temp_r29; - s32 temp_r28; - s32 temp_r25; - Vec sp18; - Vec spC; - s8 sp8[4]; + float temp_f31; + float temp_f30; + float temp_f29; + Work2FAC *temp_r31; + Work2FAC *temp_r30; + s8 temp_r29; + s32 temp_r28; + s32 temp_r25; + Vec sp18; + Vec spC; + s8 sp8[4]; - temp_r31 = arg0->data; - *arg1 = temp_r31->unk7C[0]; - *arg2 = temp_r31->unk7C[1]; - sp18.x = temp_r31->unk1C.x; - sp18.y = temp_r31->unk1C.y; - sp18.z = temp_r31->unk1C.z; - temp_r25 = fn_1_162CC(&sp18, &spC); - temp_r29 = 0; - sp8[0] = -1; - for(temp_r28=0; temp_r28<4; temp_r28++) { - if(temp_r28 != temp_r31->unk0) { - temp_r30 = fn_1_68A8(temp_r28); - if((temp_r30->unk4 & 0x12) == 0) { - sp8[temp_r29++] = temp_r28; - } - } - } - switch(temp_r31->unk8E) { - case 0: - if(temp_r29 > 0 || temp_r25) { - if(temp_r29 > 0) { - temp_r31->unk8C = sp8[frandmod(temp_r29)]; - } - temp_r31->unk74 = frandmod(180)+120.0f; - temp_r31->unk78 = 0; - temp_r31->unk8E = 1; - } else { - temp_r31->unk78 = 0; - temp_r31->unk8E = 2; - } - break; - - case 1: - if((temp_r31->unk78 & 0x3) == 0) { - if(temp_r25) { - temp_f31 = atan2d(spC.x-temp_r31->unk1C.x, spC.z-temp_r31->unk1C.z); - } else { - temp_r30 = fn_1_68A8(temp_r31->unk8C); - temp_f31 = atan2d(temp_r30->unk1C.x-temp_r31->unk1C.x, temp_r30->unk1C.z-temp_r31->unk1C.z); - } - temp_r31->unk84[1] = fn_1_883C(temp_r31->unk84[0], temp_f31, (0.3f*temp_r31->unk90)+0.15f); - } - temp_r31->unk78++; - temp_r31->unk84[0] = fn_1_883C(temp_r31->unk84[0], temp_r31->unk84[1], 0.2f); - temp_r31->unk7C[0] = sind(temp_r31->unk84[0])*80.0; - temp_r31->unk7C[1] = -cosd(temp_r31->unk84[0])*80.0; - *arg1 = temp_r31->unk7C[0]; - *arg2 = temp_r31->unk7C[1]; - temp_r31->unk74--; - if(temp_r25 == 0 && (temp_r30->unk4 & 0x12)) { - temp_r31->unk74 = 0; - } - if(temp_r31->unk74 == 0) { - temp_r31->unk8E = 0; - } - break; - - case 2: - if((temp_r31->unk78 & 0xF) == 0) { - temp_f30 = (0.04f*frandmod(1000))-20.0f; - temp_f29 = (0.04f*frandmod(1000))-20.0f; - temp_r31->unk84[1] = temp_f31 = atan2d(temp_f30-temp_r31->unk1C.x, temp_f29-temp_r31->unk1C.z); - } - temp_r31->unk78++; - temp_r31->unk84[0] = fn_1_883C(temp_r31->unk84[0], temp_r31->unk84[1], 0.2f); - temp_r31->unk7C[0] = sind(temp_r31->unk84[0])*80.0; - temp_r31->unk7C[1] = -cosd(temp_r31->unk84[0])*80.0; - *arg1 = temp_r31->unk7C[0]; - *arg2 = temp_r31->unk7C[1]; - if(temp_r29 > 0 || temp_r25) { - temp_r31->unk8E = 0; - } - break; - } + temp_r31 = arg0->data; + *arg1 = temp_r31->unk7C[0]; + *arg2 = temp_r31->unk7C[1]; + sp18.x = temp_r31->unk1C.x; + sp18.y = temp_r31->unk1C.y; + sp18.z = temp_r31->unk1C.z; + temp_r25 = fn_1_162CC(&sp18, &spC); + temp_r29 = 0; + sp8[0] = -1; + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + if (temp_r28 != temp_r31->unk0) { + temp_r30 = fn_1_68A8(temp_r28); + if ((temp_r30->unk4 & 0x12) == 0) { + sp8[temp_r29++] = temp_r28; + } + } + } + switch (temp_r31->unk8E) { + case 0: + if (temp_r29 > 0 || temp_r25) { + if (temp_r29 > 0) { + temp_r31->unk8C = sp8[frandmod(temp_r29)]; + } + temp_r31->unk74 = frandmod(180) + 120.0f; + temp_r31->unk78 = 0; + temp_r31->unk8E = 1; + } + else { + temp_r31->unk78 = 0; + temp_r31->unk8E = 2; + } + break; + case 1: + if ((temp_r31->unk78 & 0x3) == 0) { + if (temp_r25) { + temp_f31 = atan2d(spC.x - temp_r31->unk1C.x, spC.z - temp_r31->unk1C.z); + } + else { + temp_r30 = fn_1_68A8(temp_r31->unk8C); + temp_f31 = atan2d(temp_r30->unk1C.x - temp_r31->unk1C.x, temp_r30->unk1C.z - temp_r31->unk1C.z); + } + temp_r31->unk84[1] = fn_1_883C(temp_r31->unk84[0], temp_f31, (0.3f * temp_r31->unk90) + 0.15f); + } + temp_r31->unk78++; + temp_r31->unk84[0] = fn_1_883C(temp_r31->unk84[0], temp_r31->unk84[1], 0.2f); + temp_r31->unk7C[0] = sind(temp_r31->unk84[0]) * 80.0; + temp_r31->unk7C[1] = -cosd(temp_r31->unk84[0]) * 80.0; + *arg1 = temp_r31->unk7C[0]; + *arg2 = temp_r31->unk7C[1]; + temp_r31->unk74--; + if (temp_r25 == 0 && (temp_r30->unk4 & 0x12)) { + temp_r31->unk74 = 0; + } + if (temp_r31->unk74 == 0) { + temp_r31->unk8E = 0; + } + break; + + case 2: + if ((temp_r31->unk78 & 0xF) == 0) { + temp_f30 = (0.04f * frandmod(1000)) - 20.0f; + temp_f29 = (0.04f * frandmod(1000)) - 20.0f; + temp_r31->unk84[1] = temp_f31 = atan2d(temp_f30 - temp_r31->unk1C.x, temp_f29 - temp_r31->unk1C.z); + } + temp_r31->unk78++; + temp_r31->unk84[0] = fn_1_883C(temp_r31->unk84[0], temp_r31->unk84[1], 0.2f); + temp_r31->unk7C[0] = sind(temp_r31->unk84[0]) * 80.0; + temp_r31->unk7C[1] = -cosd(temp_r31->unk84[0]) * 80.0; + *arg1 = temp_r31->unk7C[0]; + *arg2 = temp_r31->unk7C[1]; + if (temp_r29 > 0 || temp_r25) { + temp_r31->unk8E = 0; + } + break; + } } -#define CHECK_IDLE(pos) (((pos) < 0) ? -(pos) : ((pos)>15)) +#define CHECK_IDLE(pos) (((pos) < 0) ? -(pos) : ((pos) > 15)) void fn_1_4A58(omObjData *object); void fn_1_5098(omObjData *object); @@ -869,815 +845,799 @@ void fn_1_5684(omObjData *object); void fn_1_3E80(omObjData *object) { - Work2FAC *temp_r31; - s32 temp_r27; + Work2FAC *temp_r31; + s32 temp_r27; - float temp_f29; - float temp_f28; - float temp_f22; - float temp_f21; - float temp_f20; - s8 sp9; - s8 sp8; - - temp_r31 = object->data; - temp_r27 = GWPlayerCfg[temp_r31->unk0].pad_idx; - sp9 = sp8 = 0; - if(lbl_1_bss_60 == 3) { - if(!GWPlayerCfg[temp_r31->unk0].iscom) { - sp9 = HuPadStkX[temp_r27]; - sp8 = HuPadStkY[temp_r27]; - } else { - fn_1_38D0(object, &sp9, &sp8); - } - } - temp_r31->unk1C.y = lbl_1_bss_54; - temp_f21 = temp_f20 = 0; - temp_f28 = temp_r31->unk58.x; - temp_f22 = -20; - if(CHECK_IDLE(sp9) || CHECK_IDLE(sp8)) { - temp_f28 = atan2d(sp9, -sp8); - if(temp_f28 < 0) { - temp_f28 += 360; - } - temp_f21 = 70*sind(temp_f28); - temp_f20 = 70*cosd(temp_f28); - temp_f22 = 30; - } - fn_1_1EBC(object); - temp_r31->unk28.x = ((28.0f/30.0f)*temp_r31->unk28.x)+((2.0f/30.0f)*temp_f21); - temp_r31->unk28.z = ((28.0f/30.0f)*temp_r31->unk28.z)+((2.0f/30.0f)*temp_f20); - temp_f29 = VECMagXZ(&temp_r31->unk28); - if(temp_f29 > 200.0f) { - temp_f29 = 200.0f/temp_f29; - temp_r31->unk28.x *= temp_f29; - temp_r31->unk28.z *= temp_f29; - } - temp_r31->unk34.x += (temp_r31->unk28.x*(1.0f/60.0f)); - temp_r31->unk34.y = 0; - temp_r31->unk34.z += (temp_r31->unk28.z*(1.0f/60.0f)); - temp_r31->unk58.x = temp_f28; - temp_r31->unk58.y = (0.9f*temp_r31->unk58.y)+(0.1f*temp_f22); - temp_r31->unk4C.x = temp_r31->unk58.y; - temp_r31->unk4C.y = fn_1_883C(temp_r31->unk4C.y, temp_r31->unk58.x, 0.2f); - temp_r31->unk4C.z = 0; - omSetRot(object, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); - fn_1_1940(temp_r31, &temp_r31->unk68); - omSetTra(object, temp_r31->unk1C.x+temp_r31->unk68.x, temp_r31->unk1C.y+temp_r31->unk68.y, temp_r31->unk1C.z+temp_r31->unk68.z); - temp_r31->unkC += (1.0f-temp_r31->unkC)*0.2f; - fn_1_1BE8(object, 0.3f); - if(temp_r31->unk4 & 0x1) { - temp_r31->unk8--; - temp_r31->unk10 = 0; - temp_r31->unk4 |= 2; - temp_f29 = VECMagXZ(&temp_r31->unk40); - if(temp_f29 > 0.0f) { - temp_f29 = 150.0f/temp_f29; - } - temp_r31->unk28.x = temp_r31->unk40.x*temp_f29; - temp_r31->unk28.z = temp_r31->unk40.z*temp_f29; - temp_r31->unk34.x = temp_r31->unk28.x*(1.0f/60.0f); - temp_r31->unk34.z = temp_r31->unk28.z*(1.0f/60.0f); - CharModelMotionShiftSet(temp_r31->unk2, object->motion[5], 0, 0.2f, 0); - HuAudFXPlay(1358); - omVibrate(object->work[0], 12, 4, 2); - if(temp_r31->unk8) { - HuAudCharVoicePlay(temp_r31->unk2, 296); - object->func = fn_1_4A58; - } else { - temp_r31->unk4 |= 0x30; - lbl_1_bss_4C--; - HuAudCharVoicePlay(temp_r31->unk2, 291); - object->func = fn_1_5684; - } - } - if(fn_1_6878() == 4 && (temp_r31->unk4 & 0x20) == 0) { - CharModelMotionShiftSet(temp_r31->unk2, object->motion[3], 0, 0.2f, 0); - Hu3DModelShadowSet(object->model[0]); - object->work[1] = 0; - object->func = fn_1_5098; - } + float temp_f29; + float temp_f28; + float temp_f22; + float temp_f21; + float temp_f20; + s8 sp9; + s8 sp8; + + temp_r31 = object->data; + temp_r27 = GWPlayerCfg[temp_r31->unk0].pad_idx; + sp9 = sp8 = 0; + if (lbl_1_bss_60 == 3) { + if (!GWPlayerCfg[temp_r31->unk0].iscom) { + sp9 = HuPadStkX[temp_r27]; + sp8 = HuPadStkY[temp_r27]; + } + else { + fn_1_38D0(object, &sp9, &sp8); + } + } + temp_r31->unk1C.y = lbl_1_bss_54; + temp_f21 = temp_f20 = 0; + temp_f28 = temp_r31->unk58.x; + temp_f22 = -20; + if (CHECK_IDLE(sp9) || CHECK_IDLE(sp8)) { + temp_f28 = atan2d(sp9, -sp8); + if (temp_f28 < 0) { + temp_f28 += 360; + } + temp_f21 = 70 * sind(temp_f28); + temp_f20 = 70 * cosd(temp_f28); + temp_f22 = 30; + } + fn_1_1EBC(object); + temp_r31->unk28.x = ((28.0f / 30.0f) * temp_r31->unk28.x) + ((2.0f / 30.0f) * temp_f21); + temp_r31->unk28.z = ((28.0f / 30.0f) * temp_r31->unk28.z) + ((2.0f / 30.0f) * temp_f20); + temp_f29 = VECMagXZ(&temp_r31->unk28); + if (temp_f29 > 200.0f) { + temp_f29 = 200.0f / temp_f29; + temp_r31->unk28.x *= temp_f29; + temp_r31->unk28.z *= temp_f29; + } + temp_r31->unk34.x += (temp_r31->unk28.x * (1.0f / 60.0f)); + temp_r31->unk34.y = 0; + temp_r31->unk34.z += (temp_r31->unk28.z * (1.0f / 60.0f)); + temp_r31->unk58.x = temp_f28; + temp_r31->unk58.y = (0.9f * temp_r31->unk58.y) + (0.1f * temp_f22); + temp_r31->unk4C.x = temp_r31->unk58.y; + temp_r31->unk4C.y = fn_1_883C(temp_r31->unk4C.y, temp_r31->unk58.x, 0.2f); + temp_r31->unk4C.z = 0; + omSetRot(object, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); + fn_1_1940(temp_r31, &temp_r31->unk68); + omSetTra(object, temp_r31->unk1C.x + temp_r31->unk68.x, temp_r31->unk1C.y + temp_r31->unk68.y, temp_r31->unk1C.z + temp_r31->unk68.z); + temp_r31->unkC += (1.0f - temp_r31->unkC) * 0.2f; + fn_1_1BE8(object, 0.3f); + if (temp_r31->unk4 & 0x1) { + temp_r31->unk8--; + temp_r31->unk10 = 0; + temp_r31->unk4 |= 2; + temp_f29 = VECMagXZ(&temp_r31->unk40); + if (temp_f29 > 0.0f) { + temp_f29 = 150.0f / temp_f29; + } + temp_r31->unk28.x = temp_r31->unk40.x * temp_f29; + temp_r31->unk28.z = temp_r31->unk40.z * temp_f29; + temp_r31->unk34.x = temp_r31->unk28.x * (1.0f / 60.0f); + temp_r31->unk34.z = temp_r31->unk28.z * (1.0f / 60.0f); + CharModelMotionShiftSet(temp_r31->unk2, object->motion[5], 0, 0.2f, 0); + HuAudFXPlay(1358); + omVibrate(object->work[0], 12, 4, 2); + if (temp_r31->unk8) { + HuAudCharVoicePlay(temp_r31->unk2, 296); + object->func = fn_1_4A58; + } + else { + temp_r31->unk4 |= 0x30; + lbl_1_bss_4C--; + HuAudCharVoicePlay(temp_r31->unk2, 291); + object->func = fn_1_5684; + } + } + if (fn_1_6878() == 4 && (temp_r31->unk4 & 0x20) == 0) { + CharModelMotionShiftSet(temp_r31->unk2, object->motion[3], 0, 0.2f, 0); + Hu3DModelShadowSet(object->model[0]); + object->work[1] = 0; + object->func = fn_1_5098; + } } #undef CHECK_IDLE void fn_1_4A58(omObjData *object) { - Work2FAC *temp_r31; - s32 temp_r28; - s32 temp_r26; - s32 sp8; - temp_r31 = object->data; - sp8 = temp_r31->unk0; - temp_r31->unk4 |= 2; - temp_r31->unk1C.y = lbl_1_bss_54; - fn_1_1EBC(object); - temp_r31->unk28.x = (29.0f/30.0f)*temp_r31->unk28.x; - temp_r31->unk28.z = (29.0f/30.0f)*temp_r31->unk28.z; - temp_r31->unk34.x += temp_r31->unk28.x*(1.0f/60.0f); - temp_r31->unk34.y = 0; - temp_r31->unk34.z += temp_r31->unk28.z*(1.0f/60.0f); - - temp_r31->unk58.x += 9.0f; - if(temp_r31->unk58.x >= 360.0f) { - temp_r31->unk58.x -= 360.0f; - } - temp_r31->unk58.y = 0.9f*temp_r31->unk58.y; - temp_r31->unk4C.x = temp_r31->unk58.y; - temp_r31->unk4C.y = temp_r31->unk58.x; - temp_r31->unk4C.z = 0; - omSetRot(object, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); - fn_1_1940(temp_r31, &temp_r31->unk68); - omSetTra(object, temp_r31->unk1C.x+temp_r31->unk68.x, temp_r31->unk1C.y+temp_r31->unk68.y, temp_r31->unk1C.z+temp_r31->unk68.z); - fn_1_1BE8(object, 0.8f); - temp_r26 = temp_r31->unk10 & 0x1; - temp_r31->unk10++; - if(fn_1_6878() == 4) { - temp_r26 = 0; - CharModelMotionShiftSet(temp_r31->unk2, object->motion[3], 0, 0.2f, 0); - Hu3DModelShadowSet(object->model[0]); - object->work[1] = 0; - object->func = fn_1_5098; - } else if(temp_r31->unk10 > 60) { - temp_r26 = 0; - temp_r31->unk4 &= ~0x3; - CharModelMotionShiftSet(temp_r31->unk2, object->motion[4], 0, 0.2f, 0x40000001); - object->func = fn_1_3E80; - } - if(temp_r26) { - Hu3DModelAttrSet(object->model[0], 1); - for(temp_r28=0; temp_r28unk8; temp_r28++) { - Hu3DModelAttrSet(object->model[1], 1); - } - } else { - Hu3DModelAttrReset(object->model[0], 1); - for(temp_r28=0; temp_r28unk8; temp_r28++) { - Hu3DModelAttrReset(object->model[1], 1); - } - } + Work2FAC *temp_r31; + s32 temp_r28; + s32 temp_r26; + s32 sp8; + temp_r31 = object->data; + sp8 = temp_r31->unk0; + temp_r31->unk4 |= 2; + temp_r31->unk1C.y = lbl_1_bss_54; + fn_1_1EBC(object); + temp_r31->unk28.x = (29.0f / 30.0f) * temp_r31->unk28.x; + temp_r31->unk28.z = (29.0f / 30.0f) * temp_r31->unk28.z; + temp_r31->unk34.x += temp_r31->unk28.x * (1.0f / 60.0f); + temp_r31->unk34.y = 0; + temp_r31->unk34.z += temp_r31->unk28.z * (1.0f / 60.0f); + + temp_r31->unk58.x += 9.0f; + if (temp_r31->unk58.x >= 360.0f) { + temp_r31->unk58.x -= 360.0f; + } + temp_r31->unk58.y = 0.9f * temp_r31->unk58.y; + temp_r31->unk4C.x = temp_r31->unk58.y; + temp_r31->unk4C.y = temp_r31->unk58.x; + temp_r31->unk4C.z = 0; + omSetRot(object, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); + fn_1_1940(temp_r31, &temp_r31->unk68); + omSetTra(object, temp_r31->unk1C.x + temp_r31->unk68.x, temp_r31->unk1C.y + temp_r31->unk68.y, temp_r31->unk1C.z + temp_r31->unk68.z); + fn_1_1BE8(object, 0.8f); + temp_r26 = temp_r31->unk10 & 0x1; + temp_r31->unk10++; + if (fn_1_6878() == 4) { + temp_r26 = 0; + CharModelMotionShiftSet(temp_r31->unk2, object->motion[3], 0, 0.2f, 0); + Hu3DModelShadowSet(object->model[0]); + object->work[1] = 0; + object->func = fn_1_5098; + } + else if (temp_r31->unk10 > 60) { + temp_r26 = 0; + temp_r31->unk4 &= ~0x3; + CharModelMotionShiftSet(temp_r31->unk2, object->motion[4], 0, 0.2f, 0x40000001); + object->func = fn_1_3E80; + } + if (temp_r26) { + Hu3DModelAttrSet(object->model[0], 1); + for (temp_r28 = 0; temp_r28 < temp_r31->unk8; temp_r28++) { + Hu3DModelAttrSet(object->model[1], 1); + } + } + else { + Hu3DModelAttrReset(object->model[0], 1); + for (temp_r28 = 0; temp_r28 < temp_r31->unk8; temp_r28++) { + Hu3DModelAttrReset(object->model[1], 1); + } + } } -Vec lbl_1_data_144[] = { - { -50, 0, 0 }, - { -16, 0, 0 }, - { 16, 0, 0 }, - { 50, 0, 0 } -}; +Vec lbl_1_data_144[] = { { -50, 0, 0 }, { -16, 0, 0 }, { 16, 0, 0 }, { 50, 0, 0 } }; -Vec lbl_1_data_174[] = { - { 0, 1500, 2500 }, - { 1500, 0, 1 }, - { 0, 0, 0 } -}; +Vec lbl_1_data_174[] = { { 0, 1500, 2500 }, { 1500, 0, 1 }, { 0, 0, 0 } }; void fn_1_54E4(omObjData *object); void fn_1_5098(omObjData *object) { - Work2FAC *temp_r29; - s32 temp_r27; - - temp_r29 = object->data; - object->trans.x = lbl_1_data_144[object->work[0]].x; - object->trans.z = lbl_1_data_144[object->work[0]].z; - if(object->work[1] == 0) { - if(lbl_1_bss_3C < temp_r29->unk8) { - lbl_1_bss_3C = temp_r29->unk8; - } - } else if(object->work[1] == 10 && lbl_1_bss_3C == temp_r29->unk8) { - for(temp_r27=0; lbl_1_bss_28[temp_r27]>=0; temp_r27++); - lbl_1_bss_28[temp_r27] = temp_r29->unk2; - } - object->work[1]++; - temp_r29->unk1C.y = lbl_1_bss_54; - temp_r29->unk58.y = 0; - temp_r29->unk58.x = 0; - object->rot.x = object->rot.y = object->rot.z = 0; - object->trans.y = temp_r29->unk1C.y; - temp_r29->unk1C.x = object->trans.x; - temp_r29->unk1C.z = object->trans.z; - temp_r29->unk1C.y += lbl_1_data_A0[temp_r29->unk2]; - if(object->trans.y < 0) { - object->trans.y = 0; - } - fn_1_1BE8(object, 1.0f); - if(fn_1_6878() == 5) { - object->func = fn_1_54E4; - if(temp_r29->unk14) { - lbl_1_bss_C = 1; - } - } + Work2FAC *temp_r29; + s32 temp_r27; + + temp_r29 = object->data; + object->trans.x = lbl_1_data_144[object->work[0]].x; + object->trans.z = lbl_1_data_144[object->work[0]].z; + if (object->work[1] == 0) { + if (lbl_1_bss_3C < temp_r29->unk8) { + lbl_1_bss_3C = temp_r29->unk8; + } + } + else if (object->work[1] == 10 && lbl_1_bss_3C == temp_r29->unk8) { + for (temp_r27 = 0; lbl_1_bss_28[temp_r27] >= 0; temp_r27++) + ; + lbl_1_bss_28[temp_r27] = temp_r29->unk2; + } + object->work[1]++; + temp_r29->unk1C.y = lbl_1_bss_54; + temp_r29->unk58.y = 0; + temp_r29->unk58.x = 0; + object->rot.x = object->rot.y = object->rot.z = 0; + object->trans.y = temp_r29->unk1C.y; + temp_r29->unk1C.x = object->trans.x; + temp_r29->unk1C.z = object->trans.z; + temp_r29->unk1C.y += lbl_1_data_A0[temp_r29->unk2]; + if (object->trans.y < 0) { + object->trans.y = 0; + } + fn_1_1BE8(object, 1.0f); + if (fn_1_6878() == 5) { + object->func = fn_1_54E4; + if (temp_r29->unk14) { + lbl_1_bss_C = 1; + } + } } void fn_1_54E4(omObjData *object) { - Work2FAC *temp_r30 = object->data; - fn_1_1E54(object); - if(!(temp_r30->unk4 & 0x8)) { - temp_r30->unk4 |= 0x8; - if(temp_r30->unk14 != 0) { - CharModelMotionShiftSet(temp_r30->unk2, object->motion[1], 0, 0.2f, 0); - HuAudCharVoicePlay(temp_r30->unk2, 290); - GWPlayerCoinCollectAdd(object->work[0], temp_r30->unk14); - } else { - CharModelMotionShiftSet(temp_r30->unk2, object->motion[2], 0, 0.2f, 0); - } - object->work[1] = 0; - } else if(object->work[1] == 0 && Hu3DMotionEndCheck(object->model[0])) { - lbl_1_bss_4C--; - object->work[1]++; - } + Work2FAC *temp_r30 = object->data; + fn_1_1E54(object); + if (!(temp_r30->unk4 & 0x8)) { + temp_r30->unk4 |= 0x8; + if (temp_r30->unk14 != 0) { + CharModelMotionShiftSet(temp_r30->unk2, object->motion[1], 0, 0.2f, 0); + HuAudCharVoicePlay(temp_r30->unk2, 290); + GWPlayerCoinCollectAdd(object->work[0], temp_r30->unk14); + } + else { + CharModelMotionShiftSet(temp_r30->unk2, object->motion[2], 0, 0.2f, 0); + } + object->work[1] = 0; + } + else if (object->work[1] == 0 && Hu3DMotionEndCheck(object->model[0])) { + lbl_1_bss_4C--; + object->work[1]++; + } } void fn_1_5AA0(omObjData *object); void fn_1_5684(omObjData *object) { - Work2FAC *temp_r31; - s32 temp_r29; - temp_r31 = object->data; - if(fabs(object->trans.x) < 160.0 || fabs(object->trans.z) < 160.0) { - temp_r31->unk1C.x += temp_r31->unk28.x*(1.0f/60.0f); - temp_r31->unk1C.z += temp_r31->unk28.z*(1.0f/60.0f); - temp_r31->unk58.x += 9.0f; - if(temp_r31->unk58.x >= 360.0f) { - temp_r31->unk58.x -= 360.0f; - } - temp_r31->unk58.y = 0.9f*temp_r31->unk58.y; - temp_r31->unk4C.x = 90.0f+temp_r31->unk58.y; - temp_r31->unk4C.y = temp_r31->unk58.x; - temp_r31->unk4C.z = 0; - omSetRot(object, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); - fn_1_1940(temp_r31, &temp_r31->unk68); - omSetTra(object, temp_r31->unk1C.x+temp_r31->unk68.x, temp_r31->unk1C.y+temp_r31->unk68.y, temp_r31->unk1C.z+temp_r31->unk68.z); - } - if(fn_1_6878() >= 4) { - GWPlayerCoinCollectAdd(object->work[0], temp_r31->unk14); - if(lbl_1_bss_48) { - Hu3DModelAttrReset(object->model[0], 1); - CharModelMotionSet(temp_r31->unk2, object->motion[6]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - object->trans.x = lbl_1_data_144[object->work[0]].x; - object->trans.y = 0; - object->trans.z = lbl_1_data_144[object->work[0]].z; - object->rot.x = object->rot.y = object->rot.z = 0; - } else { - Hu3DModelAttrSet(object->model[0], 1); - } - - for(temp_r29=0; temp_r29<4; temp_r29++) { - Hu3DModelAttrSet(object->model[1], 1); - } - object->func = fn_1_5AA0; - } + Work2FAC *temp_r31; + s32 temp_r29; + temp_r31 = object->data; + if (fabs(object->trans.x) < 160.0 || fabs(object->trans.z) < 160.0) { + temp_r31->unk1C.x += temp_r31->unk28.x * (1.0f / 60.0f); + temp_r31->unk1C.z += temp_r31->unk28.z * (1.0f / 60.0f); + temp_r31->unk58.x += 9.0f; + if (temp_r31->unk58.x >= 360.0f) { + temp_r31->unk58.x -= 360.0f; + } + temp_r31->unk58.y = 0.9f * temp_r31->unk58.y; + temp_r31->unk4C.x = 90.0f + temp_r31->unk58.y; + temp_r31->unk4C.y = temp_r31->unk58.x; + temp_r31->unk4C.z = 0; + omSetRot(object, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); + fn_1_1940(temp_r31, &temp_r31->unk68); + omSetTra(object, temp_r31->unk1C.x + temp_r31->unk68.x, temp_r31->unk1C.y + temp_r31->unk68.y, temp_r31->unk1C.z + temp_r31->unk68.z); + } + if (fn_1_6878() >= 4) { + GWPlayerCoinCollectAdd(object->work[0], temp_r31->unk14); + if (lbl_1_bss_48) { + Hu3DModelAttrReset(object->model[0], 1); + CharModelMotionSet(temp_r31->unk2, object->motion[6]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + object->trans.x = lbl_1_data_144[object->work[0]].x; + object->trans.y = 0; + object->trans.z = lbl_1_data_144[object->work[0]].z; + object->rot.x = object->rot.y = object->rot.z = 0; + } + else { + Hu3DModelAttrSet(object->model[0], 1); + } + + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + Hu3DModelAttrSet(object->model[1], 1); + } + object->func = fn_1_5AA0; + } } void fn_1_5AA0(omObjData *object) { - Work2FAC *sp8 = object->data; + Work2FAC *sp8 = object->data; } void fn_1_5AB4(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *temp_r31; - s32 temp_r29; - float temp_f31; - if(particle->unk_00 == 0) { - particle->unk_00++; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk00 = 0; - temp_r31->unk2C = 0; - temp_r31->unk40.a = 0; - } - return; - } - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk00_s16 == 0 || temp_r31->unk00_s16 != 1) { - continue; - } - temp_r31->unk02++; - temp_f31 = temp_r31->unk02-10.2f; - if(temp_f31 < 0.0f) { - temp_r31->unk34.x += (temp_r31->unk08.x-temp_r31->unk34.x)*0.2f; - temp_r31->unk34.y += (temp_r31->unk08.y-temp_r31->unk34.y)*0.15f; - temp_r31->unk34.z += (temp_r31->unk08.z-temp_r31->unk34.z)*0.2f; - temp_r31->unk2C += (temp_r31->unk14.x-temp_r31->unk2C)*0.2f; - temp_r31->unk14.y += (temp_r31->unk14.z-temp_r31->unk14.y)*0.2f; - temp_r31->unk40.a = temp_r31->unk14.y; - } else { - temp_r31->unk34.x += (temp_r31->unk20*1.5f)*(1.0f/60.0f); - temp_r31->unk34.y += (temp_r31->unk24*1.5f)*(1.0f/60.0f); - temp_r31->unk34.z += (temp_r31->unk28*1.5f)*(1.0f/60.0f); - temp_r31->unk2C += (temp_r31->unk14.x*0.01f); - temp_r31->unk40.a = 0.92f*temp_r31->unk40.a; - } - } - DCStoreRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + HsfanimStruct01 *temp_r31; + s32 temp_r29; + float temp_f31; + if (particle->unk_00 == 0) { + particle->unk_00++; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk00 = 0; + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + } + return; + } + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk00_s16 == 0 || temp_r31->unk00_s16 != 1) { + continue; + } + temp_r31->unk02++; + temp_f31 = temp_r31->unk02 - 10.2f; + if (temp_f31 < 0.0f) { + temp_r31->unk34.x += (temp_r31->unk08.x - temp_r31->unk34.x) * 0.2f; + temp_r31->unk34.y += (temp_r31->unk08.y - temp_r31->unk34.y) * 0.15f; + temp_r31->unk34.z += (temp_r31->unk08.z - temp_r31->unk34.z) * 0.2f; + temp_r31->unk2C += (temp_r31->unk14.x - temp_r31->unk2C) * 0.2f; + temp_r31->unk14.y += (temp_r31->unk14.z - temp_r31->unk14.y) * 0.2f; + temp_r31->unk40.a = temp_r31->unk14.y; + } + else { + temp_r31->unk34.x += (temp_r31->unk20 * 1.5f) * (1.0f / 60.0f); + temp_r31->unk34.y += (temp_r31->unk24 * 1.5f) * (1.0f / 60.0f); + temp_r31->unk34.z += (temp_r31->unk28 * 1.5f) * (1.0f / 60.0f); + temp_r31->unk2C += (temp_r31->unk14.x * 0.01f); + temp_r31->unk40.a = 0.92f * temp_r31->unk40.a; + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_5DCC(s32 arg0, Vec *arg1, u32 arg2) { - float temp_f31; - float temp_f30; - - HsfanimStruct01 *temp_r31; - ParticleData *temp_r29; - s32 temp_r28; - temp_r29 = Hu3DData[arg0].unk_120; - if(temp_r29->unk_00 != 0) { - temp_r31 = temp_r29->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk00_s16) { - continue; - } - temp_r31->unk00 = 1; - temp_r31->unk02 = 0; - temp_r31->unk34.x = arg1->x; - temp_r31->unk34.y = 11990; - temp_r31->unk34.z = arg1->z; - temp_f31 = frandmod(1000)*(1.0f/1000.0f); - temp_f30 = frandmod(1000)*(360.0f/1000.0f); - temp_r31->unk20 = 10*(0.8f*(temp_f31*sind(temp_f30))); - temp_r31->unk24 = 10.0f*(5.0f*(1.0f-(temp_f31*temp_f31))); - temp_r31->unk28 = 10*(0.8f*(temp_f31*cosd(temp_f30))); - temp_r31->unk08.x = temp_r31->unk20+arg1->x; - temp_r31->unk08.y = temp_r31->unk24+temp_r31->unk34.y; - temp_r31->unk08.z = temp_r31->unk28+arg1->z; - temp_r31->unk14.x = (6.0f+(0.012f*frandmod(1000))); - temp_r31->unk2C = 2.0f; - temp_r31->unk14.y = temp_r31->unk40.a = 10; - temp_r31->unk14.z = frandmod(100)+64; - temp_f31 = 0.00040000002f*frandmod(1000); - temp_f31 += 0.6f*cosd(temp_f30); - temp_r31->unk40.r = (55*temp_f31)+200; - temp_r31->unk40.g = (50*temp_f31)+205; - temp_r31->unk40.b = (5*temp_f31)+250; - if(--arg2 == 0) { - break; - } - } - } + float temp_f31; + float temp_f30; + + HsfanimStruct01 *temp_r31; + ParticleData *temp_r29; + s32 temp_r28; + temp_r29 = Hu3DData[arg0].unk_120; + if (temp_r29->unk_00 != 0) { + temp_r31 = temp_r29->unk_48; + for (temp_r28 = 0; temp_r28 < temp_r29->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk00_s16) { + continue; + } + temp_r31->unk00 = 1; + temp_r31->unk02 = 0; + temp_r31->unk34.x = arg1->x; + temp_r31->unk34.y = 11990; + temp_r31->unk34.z = arg1->z; + temp_f31 = frandmod(1000) * (1.0f / 1000.0f); + temp_f30 = frandmod(1000) * (360.0f / 1000.0f); + temp_r31->unk20 = 10 * (0.8f * (temp_f31 * sind(temp_f30))); + temp_r31->unk24 = 10.0f * (5.0f * (1.0f - (temp_f31 * temp_f31))); + temp_r31->unk28 = 10 * (0.8f * (temp_f31 * cosd(temp_f30))); + temp_r31->unk08.x = temp_r31->unk20 + arg1->x; + temp_r31->unk08.y = temp_r31->unk24 + temp_r31->unk34.y; + temp_r31->unk08.z = temp_r31->unk28 + arg1->z; + temp_r31->unk14.x = (6.0f + (0.012f * frandmod(1000))); + temp_r31->unk2C = 2.0f; + temp_r31->unk14.y = temp_r31->unk40.a = 10; + temp_r31->unk14.z = frandmod(100) + 64; + temp_f31 = 0.00040000002f * frandmod(1000); + temp_f31 += 0.6f * cosd(temp_f30); + temp_r31->unk40.r = (55 * temp_f31) + 200; + temp_r31->unk40.g = (50 * temp_f31) + 205; + temp_r31->unk40.b = (5 * temp_f31) + 250; + if (--arg2 == 0) { + break; + } + } + } } typedef struct work_61FC { - s32 unk0; - s32 unk4; - u32 unk8; - float unkC[2]; - s32 unk14; - s32 unk18; - s32 unk1C[7]; - float unk38[7]; - s16 unk54[7]; + s32 unk0; + s32 unk4; + u32 unk8; + float unkC[2]; + s32 unk14; + s32 unk18; + s32 unk1C[7]; + float unk38[7]; + s16 unk54[7]; } Work61FC; void fn_1_6540(omObjData *object); void fn_1_61FC(omObjData *object) { - Work61FC *temp_r31; - s32 temp_r30; - s32 temp_r28; - s32 temp_r26; - - Work61FC *temp_r27; - - float sp8[][2] = { - 96, 64, - 486, 64, - 96, 416, - 486, 416 - }; - float sp28[][2] = { - 0, 0, - 0, 0, - -54, -1, - 2, 1, - -20, 0, - 42, 2, - 22, 2 - }; - - object->stat |= 0x100; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 4*sizeof(Work61FC), MEMORY_DEFAULT_NUM); - temp_r27 = object->data; - memset(temp_r27, 0, 4*sizeof(Work61FC)); - temp_r31 = temp_r27; - for(temp_r28=0; temp_r28<4; temp_r28++, temp_r31++) { - for(temp_r30=0; temp_r30<7; temp_r30++) { - temp_r31->unk54[temp_r30] = -1; - temp_r31->unk38[temp_r30] = 1; - } - temp_r31->unkC[0] = sp8[temp_r28][0]; - temp_r31->unkC[1] = sp8[temp_r28][1]; - temp_r26 = espEntry(0x610029, 4, 0); - temp_r31->unk54[0] = temp_r26; - espColorSet(temp_r26, 0, 0, 0); - espTPLvlSet(temp_r26, 0.5); - temp_r31->unk54[1] = espEntry(0x610028, 3, 0); - temp_r31->unk54[2] = espEntry(lbl_1_data_0[GWPlayerCfg[temp_r28].character], 2, 0); - temp_r31->unk54[3] = espEntry(0x27002B, 2, 0); - temp_r31->unk54[4] = espEntry(0x610008, 2, 0); - temp_r31->unk54[6] = espEntry(0x610033, 2, 0); - temp_r31->unk54[5] = espEntry(0x610033, 2, 0); - for(temp_r30=0; temp_r30<7; temp_r30++) { - if(temp_r31->unk54[temp_r30] >= 0) { - espPosSet(temp_r31->unk54[temp_r30], temp_r31->unkC[0]+sp28[temp_r30][0], temp_r31->unkC[1]+sp28[temp_r30][1]); - espDispOff(temp_r31->unk54[temp_r30]); - } - } - temp_r31->unk0 = 0; - } - HuDataDirClose(DATADIR_MGCONST); - object->func = fn_1_6540; - (void)temp_r27; - (void)temp_r27; + Work61FC *temp_r31; + s32 temp_r30; + s32 temp_r28; + s32 temp_r26; + + Work61FC *temp_r27; + + float sp8[][2] = { 96, 64, 486, 64, 96, 416, 486, 416 }; + float sp28[][2] = { 0, 0, 0, 0, -54, -1, 2, 1, -20, 0, 42, 2, 22, 2 }; + + object->stat |= 0x100; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 4 * sizeof(Work61FC), MEMORY_DEFAULT_NUM); + temp_r27 = object->data; + memset(temp_r27, 0, 4 * sizeof(Work61FC)); + temp_r31 = temp_r27; + for (temp_r28 = 0; temp_r28 < 4; temp_r28++, temp_r31++) { + for (temp_r30 = 0; temp_r30 < 7; temp_r30++) { + temp_r31->unk54[temp_r30] = -1; + temp_r31->unk38[temp_r30] = 1; + } + temp_r31->unkC[0] = sp8[temp_r28][0]; + temp_r31->unkC[1] = sp8[temp_r28][1]; + temp_r26 = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x29), 4, 0); + temp_r31->unk54[0] = temp_r26; + espColorSet(temp_r26, 0, 0, 0); + espTPLvlSet(temp_r26, 0.5); + temp_r31->unk54[1] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x28), 3, 0); + temp_r31->unk54[2] = espEntry(lbl_1_data_0[GWPlayerCfg[temp_r28].character], 2, 0); + temp_r31->unk54[3] = espEntry(DATA_MAKE_NUM(DATADIR_M408, 0x2B), 2, 0); + temp_r31->unk54[4] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x08), 2, 0); + temp_r31->unk54[6] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x33), 2, 0); + temp_r31->unk54[5] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x33), 2, 0); + for (temp_r30 = 0; temp_r30 < 7; temp_r30++) { + if (temp_r31->unk54[temp_r30] >= 0) { + espPosSet(temp_r31->unk54[temp_r30], temp_r31->unkC[0] + sp28[temp_r30][0], temp_r31->unkC[1] + sp28[temp_r30][1]); + espDispOff(temp_r31->unk54[temp_r30]); + } + } + temp_r31->unk0 = 0; + } + HuDataDirClose(DATADIR_MGCONST); + object->func = fn_1_6540; + (void)temp_r27; + (void)temp_r27; } void fn_1_6540(omObjData *object) { - float temp_f31; - Work61FC *temp_r31; - s32 temp_r30; - s32 temp_r29; - Work61FC *temp_r28 = object->data; - temp_r31 = temp_r28; - for(temp_r29=0; temp_r29<4; temp_r29++, temp_r31++) { - switch(temp_r31->unk14) { - case 0: - if(fn_1_6878() == 3) { - temp_r31->unk14 = 1; - } - break; - - case 1: - temp_r31->unk18 = 0; - temp_r31->unk1C[5] = temp_r31->unk8%10; - temp_r31->unk1C[6] = (temp_r31->unk8/10)%10; - for(temp_r30=0; temp_r30<7; temp_r30++) { - if(temp_r31->unk54[temp_r30] >= 0) { - espDispOn(temp_r31->unk54[temp_r30]); - } - } - if(temp_r31->unk0) { - temp_r31->unk38[5] = temp_r31->unk38[6] = 0.5f; - temp_r31->unk14++; - } else { - temp_r31->unk0 = 1; - temp_r31->unk38[5] = temp_r31->unk38[6] = 1.0f; - temp_r31->unk14 += 3; - break; - } - - case 2: - temp_f31 = temp_r31->unk38[5]; - temp_f31 += 0.10000001f; - if(temp_f31 >= 1.5f) { - temp_r31->unk14++; - } - temp_r31->unk38[5] = temp_r31->unk38[6] = temp_f31; - break; - - case 3: - temp_f31 = temp_r31->unk38[5]; - temp_f31 -= 0.10000001f; - if(temp_f31 <= 1.0f) { - temp_f31 = 1.0f; - temp_r31->unk14++; - } - temp_r31->unk38[5] = temp_r31->unk38[6] = temp_f31; - break; - - default: - break; - } - temp_r31->unk18++; - for(temp_r30=0; temp_r30<7; temp_r30++) { - espBankSet(temp_r31->unk54[temp_r30], temp_r31->unk1C[temp_r30]); - espScaleSet(temp_r31->unk54[temp_r30], temp_r31->unk38[temp_r30], temp_r31->unk38[temp_r30]); - } - } + float temp_f31; + Work61FC *temp_r31; + s32 temp_r30; + s32 temp_r29; + Work61FC *temp_r28 = object->data; + temp_r31 = temp_r28; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++, temp_r31++) { + switch (temp_r31->unk14) { + case 0: + if (fn_1_6878() == 3) { + temp_r31->unk14 = 1; + } + break; + + case 1: + temp_r31->unk18 = 0; + temp_r31->unk1C[5] = temp_r31->unk8 % 10; + temp_r31->unk1C[6] = (temp_r31->unk8 / 10) % 10; + for (temp_r30 = 0; temp_r30 < 7; temp_r30++) { + if (temp_r31->unk54[temp_r30] >= 0) { + espDispOn(temp_r31->unk54[temp_r30]); + } + } + if (temp_r31->unk0) { + temp_r31->unk38[5] = temp_r31->unk38[6] = 0.5f; + temp_r31->unk14++; + } + else { + temp_r31->unk0 = 1; + temp_r31->unk38[5] = temp_r31->unk38[6] = 1.0f; + temp_r31->unk14 += 3; + break; + } + + case 2: + temp_f31 = temp_r31->unk38[5]; + temp_f31 += 0.10000001f; + if (temp_f31 >= 1.5f) { + temp_r31->unk14++; + } + temp_r31->unk38[5] = temp_r31->unk38[6] = temp_f31; + break; + + case 3: + temp_f31 = temp_r31->unk38[5]; + temp_f31 -= 0.10000001f; + if (temp_f31 <= 1.0f) { + temp_f31 = 1.0f; + temp_r31->unk14++; + } + temp_r31->unk38[5] = temp_r31->unk38[6] = temp_f31; + break; + + default: + break; + } + temp_r31->unk18++; + for (temp_r30 = 0; temp_r30 < 7; temp_r30++) { + espBankSet(temp_r31->unk54[temp_r30], temp_r31->unk1C[temp_r30]); + espScaleSet(temp_r31->unk54[temp_r30], temp_r31->unk38[temp_r30], temp_r31->unk38[temp_r30]); + } + } } void fn_1_67C4(u16 arg0, u16 arg1) { - Work61FC *temp_r31; - temp_r31 = lbl_1_bss_8->data; - if(fn_1_6878() == 3) { - temp_r31[arg0].unk4 += arg1; - temp_r31[arg0].unk8 += arg1; - temp_r31[arg0].unk14 = 1; - } + Work61FC *temp_r31; + temp_r31 = lbl_1_bss_8->data; + if (fn_1_6878() == 3) { + temp_r31[arg0].unk4 += arg1; + temp_r31[arg0].unk8 += arg1; + temp_r31[arg0].unk14 = 1; + } } u32 fn_1_6868(void) { - return lbl_1_bss_62; + return lbl_1_bss_62; } - u32 fn_1_6878(void) { - return lbl_1_bss_60; + return lbl_1_bss_60; } float fn_1_6888(void) { - return lbl_1_bss_54; + return lbl_1_bss_54; } -void fn_1_6898(void) -{ - -} +void fn_1_6898(void) { } s32 fn_1_689C(void) { - return 0; + return 0; } -void fn_1_68A4(void) -{ - -} +void fn_1_68A4(void) { } Work2FAC *fn_1_68A8(s32 arg0) { - return lbl_1_bss_6C[arg0]->data; + return lbl_1_bss_6C[arg0]->data; } float fn_1_68C4(float arg8, float arg9, float argA, float argB, float argC, float argD, float argE, float argF, float arg2, float arg3) { - float temp_f30; - float sp14; - float temp_f29; - float temp_f28; - - - float temp_f27; - float temp_f26; - - float sp10; - - sp14 = (argC + arg3) * (argC + arg3); - temp_f27 = (arg2 * arg2) + (((argB * argB) + ((argF * argF) + ((argA * argA) - (2.0f * argA * argF)))) - (2.0f * argB * arg2)); - temp_f26 = 2.0f * ((argE * arg2) + ((((arg9 * argB) + ((argD * argF) + (((arg8 * argA) - (arg8 * argF)) - (argD * argA)))) - (arg9 * arg2)) - (argE * argB))); - sp10 = ((argE * argE) + (((arg9 * arg9) + ((argD * argD) + ((arg8 * arg8) - (2.0f * arg8 * argD)))) - (2.0f * arg9 * argE))) - sp14; - if(0.0f == temp_f27) { - return -1; - } - temp_f30 = (temp_f26 * temp_f26) - (4.0f * temp_f27 * sp10); - if(temp_f30 <= 0.0) { - return -1; - } - temp_f30 = sqrtf(temp_f30); - temp_f29 = (-temp_f26 + temp_f30) / (2.0f * temp_f27); + float temp_f30; + float sp14; + float temp_f29; + float temp_f28; + + float temp_f27; + float temp_f26; + + float sp10; + + sp14 = (argC + arg3) * (argC + arg3); + temp_f27 = (arg2 * arg2) + (((argB * argB) + ((argF * argF) + ((argA * argA) - (2.0f * argA * argF)))) - (2.0f * argB * arg2)); + temp_f26 = 2.0f + * ((argE * arg2) + ((((arg9 * argB) + ((argD * argF) + (((arg8 * argA) - (arg8 * argF)) - (argD * argA)))) - (arg9 * arg2)) - (argE * argB))); + sp10 = ((argE * argE) + (((arg9 * arg9) + ((argD * argD) + ((arg8 * arg8) - (2.0f * arg8 * argD)))) - (2.0f * arg9 * argE))) - sp14; + if (0.0f == temp_f27) { + return -1; + } + temp_f30 = (temp_f26 * temp_f26) - (4.0f * temp_f27 * sp10); + if (temp_f30 <= 0.0) { + return -1; + } + temp_f30 = sqrtf(temp_f30); + temp_f29 = (-temp_f26 + temp_f30) / (2.0f * temp_f27); temp_f28 = (-temp_f26 - temp_f30) / (2.0f * temp_f27); - if(temp_f29 >= 0.0f && temp_f28 >= 0.0f) { - if(temp_f29 < temp_f28) { - if(temp_f29 < 1.0f) { - return temp_f29; - } - } - if(temp_f28 < 1.0f) { - return temp_f28; - } - } - return -1; + if (temp_f29 >= 0.0f && temp_f28 >= 0.0f) { + if (temp_f29 < temp_f28) { + if (temp_f29 < 1.0f) { + return temp_f29; + } + } + if (temp_f28 < 1.0f) { + return temp_f28; + } + } + return -1; } void fn_1_6C28(float *arg0, float arg1, float arg2, float arg3, float arg4, float arg5, float arg6) { - float temp_f24; - float temp_f29; - float temp_f28; - float temp_f31; - float temp_f30; - - float temp_f25; - - temp_f29 = arg3; - temp_f28 = arg4; - temp_f24 = sqrtf((temp_f29*temp_f29)+(temp_f28*temp_f28)); - if(temp_f24 != 0.0) { - temp_f25 = 1.0f/temp_f24; - temp_f29 *= temp_f25; - temp_f28 *= temp_f25; - } - temp_f31 = arg5-arg1; - temp_f30 = arg6-arg2; - temp_f25 = 1.0f/sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - temp_f31 *= temp_f25; - temp_f30 *= temp_f25; - temp_f25 = (temp_f29*temp_f31)+(temp_f28*temp_f30); - arg0[0] = temp_f25*(temp_f31*temp_f24); - arg0[1] = temp_f25*(temp_f30*temp_f24); + float temp_f24; + float temp_f29; + float temp_f28; + float temp_f31; + float temp_f30; + + float temp_f25; + + temp_f29 = arg3; + temp_f28 = arg4; + temp_f24 = sqrtf((temp_f29 * temp_f29) + (temp_f28 * temp_f28)); + if (temp_f24 != 0.0) { + temp_f25 = 1.0f / temp_f24; + temp_f29 *= temp_f25; + temp_f28 *= temp_f25; + } + temp_f31 = arg5 - arg1; + temp_f30 = arg6 - arg2; + temp_f25 = 1.0f / sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + temp_f31 *= temp_f25; + temp_f30 *= temp_f25; + temp_f25 = (temp_f29 * temp_f31) + (temp_f28 * temp_f30); + arg0[0] = temp_f25 * (temp_f31 * temp_f24); + arg0[1] = temp_f25 * (temp_f30 * temp_f24); } -void fn_1_6F4C(float arg8, float arg9, float argA, float argB, float argC, float argD, float argE, float argF, float *arg0, float *arg1, float *arg2, float *arg3) +void fn_1_6F4C(float arg8, float arg9, float argA, float argB, float argC, float argD, float argE, float argF, float *arg0, float *arg1, float *arg2, + float *arg3) { - float sp70[2]; - float sp68[2]; - float sp64; - float sp60; - sp64 = arg8+(0.5f*(argC-arg8)); - sp60 = arg9+(0.5f*(argD-arg9)); - fn_1_6C28(sp70, arg8, arg9, argA, argB, sp64, sp60); - fn_1_6C28(sp68, argC, argD, argE, argF, sp64, sp60); - *arg0 = sp68[0]-sp70[0]; - *arg1 = sp68[1]-sp70[1]; - *arg2 = sp70[0]-sp68[0]; - *arg3 = sp70[1]-sp68[1]; + float sp70[2]; + float sp68[2]; + float sp64; + float sp60; + sp64 = arg8 + (0.5f * (argC - arg8)); + sp60 = arg9 + (0.5f * (argD - arg9)); + fn_1_6C28(sp70, arg8, arg9, argA, argB, sp64, sp60); + fn_1_6C28(sp68, argC, argD, argE, argF, sp64, sp60); + *arg0 = sp68[0] - sp70[0]; + *arg1 = sp68[1] - sp70[1]; + *arg2 = sp70[0] - sp68[0]; + *arg3 = sp70[1] - sp68[1]; } void fn_1_75B8(float *arg0, float *arg1, float arg2, float arg3, float arg4, float arg5, float arg6, float arg7) { - float temp_f26 = arg2+(0.5f*(arg6-arg2)); - float temp_f25 = arg3+(0.5f*(arg7-arg3)); - float temp_f31 = arg2-temp_f26; - float temp_f30 = arg3-temp_f25; - float temp_f28; - if(temp_f31 == 0.0f || temp_f30 == 0.0f) { - *arg0 = *arg1 = 0.0f; - return; - } - temp_f28 = 1.0f/sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - temp_f31 *= temp_f28; - temp_f30 *= temp_f28; - *arg0 = (2.0f*temp_f31)*((-arg4*temp_f31)-(arg5*temp_f30)); - *arg1 = (2.0f*temp_f30)*((-arg4*temp_f31)-(arg5*temp_f30)); + float temp_f26 = arg2 + (0.5f * (arg6 - arg2)); + float temp_f25 = arg3 + (0.5f * (arg7 - arg3)); + float temp_f31 = arg2 - temp_f26; + float temp_f30 = arg3 - temp_f25; + float temp_f28; + if (temp_f31 == 0.0f || temp_f30 == 0.0f) { + *arg0 = *arg1 = 0.0f; + return; + } + temp_f28 = 1.0f / sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + temp_f31 *= temp_f28; + temp_f30 *= temp_f28; + *arg0 = (2.0f * temp_f31) * ((-arg4 * temp_f31) - (arg5 * temp_f30)); + *arg1 = (2.0f * temp_f30) * ((-arg4 * temp_f31) - (arg5 * temp_f30)); } void fn_1_7818(omObjData *arg0, omObjData *arg1) { - Work2FAC *temp_r31 = arg0->data; - Work2FAC *temp_r30 = arg1->data; - - float sp14; - float sp10; - float spC; - float sp8; - fn_1_6F4C(temp_r31->unk1C.x, temp_r31->unk1C.z, temp_r31->unk34.x, temp_r31->unk34.z, - temp_r30->unk1C.x, temp_r30->unk1C.z, temp_r30->unk34.x, temp_r30->unk34.z, - &sp14, &sp10, &spC, &sp8); - temp_r31->unk34.x += sp14; - temp_r31->unk34.z += sp10; - temp_r30->unk34.x += spC; - temp_r30->unk34.z += sp8; + Work2FAC *temp_r31 = arg0->data; + Work2FAC *temp_r30 = arg1->data; + + float sp14; + float sp10; + float spC; + float sp8; + fn_1_6F4C(temp_r31->unk1C.x, temp_r31->unk1C.z, temp_r31->unk34.x, temp_r31->unk34.z, temp_r30->unk1C.x, temp_r30->unk1C.z, temp_r30->unk34.x, + temp_r30->unk34.z, &sp14, &sp10, &spC, &sp8); + temp_r31->unk34.x += sp14; + temp_r31->unk34.z += sp10; + temp_r30->unk34.x += spC; + temp_r30->unk34.z += sp8; } s32 fn_1_78D8(void) { - float temp_f29; - float temp_f18; - - Work2FAC *temp_r31; - s32 temp_r30; - Work2FAC *temp_r29; - Work2FAC *temp_r28; - s32 temp_r27; - s32 temp_r26; - omObjData *temp_r25; - omObjData *temp_r24; - omObjData *temp_r23; - - omObjData *sp30[2]; - temp_r26 = -1; - temp_f18 = 0; - temp_f29 = 9999; - for(temp_r27=0; temp_r27<3; temp_r27++) { - temp_r25 = lbl_1_bss_6C[temp_r27]; - temp_r29 = temp_r25->data; - if(temp_r29->unk4 & 0x10) { - continue; - } - for(temp_r30=temp_r27+1; temp_r30<4; temp_r30++) { - temp_r24 = lbl_1_bss_6C[temp_r30]; - temp_r28 = temp_r24->data; - if(temp_r28->unk4 & 0x10) { - continue; - } - temp_f18 = fn_1_68C4(temp_r29->unk1C.x, temp_r29->unk1C.z, temp_r29->unk34.x*lbl_1_bss_4, temp_r29->unk34.z*lbl_1_bss_4, - temp_r29->unk58.z, temp_r28->unk1C.x, temp_r28->unk1C.z, temp_r28->unk34.x*lbl_1_bss_4, temp_r28->unk34.z*lbl_1_bss_4, - temp_r28->unk58.z); - if(temp_f18 >= 0.0 && temp_f18 <= temp_f29) { - temp_f29 = temp_f18; - temp_r26 = 1; - sp30[0] = temp_r25; - sp30[1] = temp_r24; - } - } - } - if(temp_r26 < 0) { - return 0; - } - if(temp_f29 > 0.0f) { - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r31 = lbl_1_bss_6C[temp_r30]->data; - temp_r31->unk64 = 0; - } - } - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r23 = lbl_1_bss_6C[temp_r30]; - temp_r31 = temp_r23->data; - if(!(temp_r31->unk4 & 0x10)) { - temp_r31->unk1C.x += lbl_1_bss_4*(temp_r31->unk34.x*temp_f29); - temp_r31->unk1C.z += lbl_1_bss_4*(temp_r31->unk34.z*temp_f29); - } - } - if(temp_r26 != 1) { - (void)temp_r26; - } else { - fn_1_7818(sp30[0], sp30[1]); - for(temp_r30=0; temp_r30<2; temp_r30++) { - temp_r31 = sp30[temp_r30]->data; - if(temp_r31->unk4 & 0x10) { - continue; - } - temp_r31->unk64++; - if(temp_r31->unk18 == 0) { - lbl_1_bss_0 = 1; - } - temp_r31->unk18 = 18; - if(temp_r31->unk64 > 2.0f) { - temp_r31->unk34.x = temp_r31->unk34.z = 0; - } - } - } - lbl_1_bss_4 *= (1.0f-temp_f29); - return 1; + float temp_f29; + float temp_f18; + + Work2FAC *temp_r31; + s32 temp_r30; + Work2FAC *temp_r29; + Work2FAC *temp_r28; + s32 temp_r27; + s32 temp_r26; + omObjData *temp_r25; + omObjData *temp_r24; + omObjData *temp_r23; + + omObjData *sp30[2]; + temp_r26 = -1; + temp_f18 = 0; + temp_f29 = 9999; + for (temp_r27 = 0; temp_r27 < 3; temp_r27++) { + temp_r25 = lbl_1_bss_6C[temp_r27]; + temp_r29 = temp_r25->data; + if (temp_r29->unk4 & 0x10) { + continue; + } + for (temp_r30 = temp_r27 + 1; temp_r30 < 4; temp_r30++) { + temp_r24 = lbl_1_bss_6C[temp_r30]; + temp_r28 = temp_r24->data; + if (temp_r28->unk4 & 0x10) { + continue; + } + temp_f18 + = fn_1_68C4(temp_r29->unk1C.x, temp_r29->unk1C.z, temp_r29->unk34.x * lbl_1_bss_4, temp_r29->unk34.z * lbl_1_bss_4, temp_r29->unk58.z, + temp_r28->unk1C.x, temp_r28->unk1C.z, temp_r28->unk34.x * lbl_1_bss_4, temp_r28->unk34.z * lbl_1_bss_4, temp_r28->unk58.z); + if (temp_f18 >= 0.0 && temp_f18 <= temp_f29) { + temp_f29 = temp_f18; + temp_r26 = 1; + sp30[0] = temp_r25; + sp30[1] = temp_r24; + } + } + } + if (temp_r26 < 0) { + return 0; + } + if (temp_f29 > 0.0f) { + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r31 = lbl_1_bss_6C[temp_r30]->data; + temp_r31->unk64 = 0; + } + } + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r23 = lbl_1_bss_6C[temp_r30]; + temp_r31 = temp_r23->data; + if (!(temp_r31->unk4 & 0x10)) { + temp_r31->unk1C.x += lbl_1_bss_4 * (temp_r31->unk34.x * temp_f29); + temp_r31->unk1C.z += lbl_1_bss_4 * (temp_r31->unk34.z * temp_f29); + } + } + if (temp_r26 != 1) { + (void)temp_r26; + } + else { + fn_1_7818(sp30[0], sp30[1]); + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + temp_r31 = sp30[temp_r30]->data; + if (temp_r31->unk4 & 0x10) { + continue; + } + temp_r31->unk64++; + if (temp_r31->unk18 == 0) { + lbl_1_bss_0 = 1; + } + temp_r31->unk18 = 18; + if (temp_r31->unk64 > 2.0f) { + temp_r31->unk34.x = temp_r31->unk34.z = 0; + } + } + } + lbl_1_bss_4 *= (1.0f - temp_f29); + return 1; } void fn_1_8020(void) { - Work2FAC *temp_r31; - s32 temp_r30; - omObjData *temp_r29; - lbl_1_bss_4 = 1.0f; - lbl_1_bss_0 = 0; - while(fn_1_78D8()); - if(lbl_1_bss_0) { - HuAudFXPlay(1359); - } - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r29 = lbl_1_bss_6C[temp_r30]; - temp_r31 = temp_r29->data; - if(temp_r31->unk18 != 0) { - temp_r31->unk18--; - } - if(temp_r31->unk4 & 0x10) { - continue; - } - temp_r31->unk1C.x += temp_r31->unk34.x*lbl_1_bss_4; - temp_r31->unk1C.z += temp_r31->unk34.z*lbl_1_bss_4; - temp_r31->unk28.x = temp_r31->unk34.x*60.0f; - temp_r31->unk28.z = temp_r31->unk34.z*60.0f; - temp_r31->unk34.x = temp_r31->unk34.z = 0; - } + Work2FAC *temp_r31; + s32 temp_r30; + omObjData *temp_r29; + lbl_1_bss_4 = 1.0f; + lbl_1_bss_0 = 0; + while (fn_1_78D8()) + ; + if (lbl_1_bss_0) { + HuAudFXPlay(1359); + } + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r29 = lbl_1_bss_6C[temp_r30]; + temp_r31 = temp_r29->data; + if (temp_r31->unk18 != 0) { + temp_r31->unk18--; + } + if (temp_r31->unk4 & 0x10) { + continue; + } + temp_r31->unk1C.x += temp_r31->unk34.x * lbl_1_bss_4; + temp_r31->unk1C.z += temp_r31->unk34.z * lbl_1_bss_4; + temp_r31->unk28.x = temp_r31->unk34.x * 60.0f; + temp_r31->unk28.z = temp_r31->unk34.z * 60.0f; + temp_r31->unk34.x = temp_r31->unk34.z = 0; + } } void fn_1_817C(Vec *arg0, Vec *arg1) { - Vec sp10; - sp10.x = arg1->x-arg0->x; - sp10.y = arg1->y-arg0->y; - sp10.z = arg1->z-arg0->z; - Center.x = arg1->x; - Center.y = arg1->y; - Center.z = arg1->z; - CRot.x = atan2d(sp10.y, VECMagXZ(&sp10)); - CRot.y = atan2d(-sp10.x, -sp10.z); - CRot.z = 0; - CZoom = sqrtf(VECMag2Point(&sp10)); + Vec sp10; + sp10.x = arg1->x - arg0->x; + sp10.y = arg1->y - arg0->y; + sp10.z = arg1->z - arg0->z; + Center.x = arg1->x; + Center.y = arg1->y; + Center.z = arg1->z; + CRot.x = atan2d(sp10.y, VECMagXZ(&sp10)); + CRot.y = atan2d(-sp10.x, -sp10.z); + CRot.z = 0; + CZoom = sqrtf(VECMag2Point(&sp10)); } void fn_1_84C4(float arg0, float arg1, float arg2, float arg3, float arg4, float arg5) { - Vec sp40; - Vec sp34; - sp40.x = arg0; - sp40.y = arg1; - sp40.z = arg2; - sp34.x = arg3; - sp34.y = arg4; - sp34.z = arg5; - fn_1_817C(&sp40, &sp34); + Vec sp40; + Vec sp34; + sp40.x = arg0; + sp40.y = arg1; + sp40.z = arg2; + sp34.x = arg3; + sp34.y = arg4; + sp34.z = arg5; + fn_1_817C(&sp40, &sp34); } float fn_1_883C(float arg0, float arg1, float arg2) { - float temp_f31; - temp_f31 = fmodf(arg1-arg0, 360); - if(temp_f31 < 0.0f) { - temp_f31 += 360.0f; - } - if(temp_f31 > 180.0f) { - temp_f31 -= 360.0f; - } - temp_f31 = fmodf((arg2*temp_f31)+arg0, 360); - if(temp_f31 < 0.0f) { - temp_f31 += 360.0f; - } - return temp_f31; + float temp_f31; + temp_f31 = fmodf(arg1 - arg0, 360); + if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + if (temp_f31 > 180.0f) { + temp_f31 -= 360.0f; + } + temp_f31 = fmodf((arg2 * temp_f31) + arg0, 360); + if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + return temp_f31; } diff --git a/src/REL/m408Dll/object.c b/src/REL/m408Dll/object.c index b2ccec82..817bdfce 100644 --- a/src/REL/m408Dll/object.c +++ b/src/REL/m408Dll/object.c @@ -1,14 +1,14 @@ #include "game/object.h" -#include "game/objsub.h" -#include "game/wipe.h" #include "game/chrman.h" #include "game/minigame_seq.h" +#include "game/objsub.h" #include "game/pad.h" +#include "game/wipe.h" -#include "game/hsfman.h" -#include "game/hsfmotion.h" #include "game/hsfanim.h" #include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/sprite.h" #include "game/audio.h" @@ -16,33 +16,33 @@ #include "REL/m408Dll.h" -#include "math.h" #include "ext_math.h" +#include "math.h" typedef struct struct_data_20C { - s32 unk0; - float unk4; - float unk8; + s32 unk0; + float unk4; + float unk8; } StructData20C; typedef struct struct_bss_da4 { - s32 unk0; - s32 unk4; - s32 unk8; - Vec unkC; - Vec unk18; - Vec unk24; - float unk30; - Vec unk34; - float unk40[2]; - float unk48; - float unk4C; - s32 unk50; - s32 unk54; - s32 unk58; - s32 unk5C; - s32 unk60; - float unk64; + s32 unk0; + s32 unk4; + s32 unk8; + Vec unkC; + Vec unk18; + Vec unk24; + float unk30; + Vec unk34; + float unk40[2]; + float unk48; + float unk4C; + s32 unk50; + s32 unk54; + s32 unk58; + s32 unk5C; + s32 unk60; + float unk64; } StructBssDA4; void fn_1_12C6C(StructBssDA4 *arg0); @@ -56,136 +56,109 @@ void fn_1_14DB4(StructBssDA4 *arg0); void fn_1_151A4(StructBssDA4 *arg0); s32 lbl_1_data_1A0[9] = { - 0x00270012, - 0x00270012, - 0x00270012, - 0x00270012, - 0x00270012, - 0x00270014, - 0x00270014, - 0x00270016, - 0x00270017 + DATA_MAKE_NUM(DATADIR_M408, 0x12), + DATA_MAKE_NUM(DATADIR_M408, 0x12), + DATA_MAKE_NUM(DATADIR_M408, 0x12), + DATA_MAKE_NUM(DATADIR_M408, 0x12), + DATA_MAKE_NUM(DATADIR_M408, 0x12), + DATA_MAKE_NUM(DATADIR_M408, 0x14), + DATA_MAKE_NUM(DATADIR_M408, 0x14), + DATA_MAKE_NUM(DATADIR_M408, 0x16), + DATA_MAKE_NUM(DATADIR_M408, 0x17), }; s32 lbl_1_data_1C4[9] = { - 0x00270013, - 0x00270013, - 0x00270013, - 0x00270013, - 0x00270013, - 0x00270015, - 0x00270015, - 0, - 0 + DATA_MAKE_NUM(DATADIR_M408, 0x13), + DATA_MAKE_NUM(DATADIR_M408, 0x13), + DATA_MAKE_NUM(DATADIR_M408, 0x13), + DATA_MAKE_NUM(DATADIR_M408, 0x13), + DATA_MAKE_NUM(DATADIR_M408, 0x13), + DATA_MAKE_NUM(DATADIR_M408, 0x15), + DATA_MAKE_NUM(DATADIR_M408, 0x15), + 0, + 0, }; typedef void (*BssDA4Func)(StructBssDA4 *arg0); -BssDA4Func lbl_1_data_1E8[9] = { - fn_1_12C6C, - fn_1_1305C, - fn_1_134D8, - fn_1_13820, - fn_1_13D88, - fn_1_1406C, - fn_1_144D0, - fn_1_14DB4, - fn_1_151A4 -}; +BssDA4Func lbl_1_data_1E8[9] = { fn_1_12C6C, fn_1_1305C, fn_1_134D8, fn_1_13820, fn_1_13D88, fn_1_1406C, fn_1_144D0, fn_1_14DB4, fn_1_151A4 }; StructData20C lbl_1_data_20C[] = { - { 0, 10600, 100 }, - { 0, 10600, 290 }, - { 7, 10500, 0 }, - { 7, 10400, 72 }, - { 7, 10300, 144 }, - { 7, 10200, 216 }, - { 7, 10100, 288 }, - { 5, 9600, 0 }, - { 7, 9000, 0 }, - { 7, 9000, 72 }, - { 7, 9000, 144 }, - { 7, 9000, 216 }, - { 7, 9000, 288 }, - { 1, 8600, 150 }, - { 7, 8500, 216 }, - { 7, 8400, 288 }, - { 7, 8300, 0 }, - { 7, 8200, 72 }, - { 7, 8100, 144 }, - { 6, 7700, 0 }, - { 6, 7700, 180 }, - { 7, 7500, 165 }, - { 7, 7500, 285 }, - { 7, 7500, 45 }, - { 8, 7000, 225 }, - { 8, 7000, 345 }, - { 8, 7000, 105 }, - { 7, 6500, 165 }, - { 7, 6500, 285 }, - { 7, 6500, 45 }, - { 4, 5500, 0 }, - { 4, 5500, 120 }, - { 4, 5500, 240 }, - { 7, 4700, 0 }, - { 7, 4700, 72 }, - { 7, 4700, 144 }, - { 7, 4700, 216 }, - { 7, 4700, 288 }, - { 5, 4500, 120 }, - { 7, 4250, 165 }, - { 7, 4250, 285 }, - { 7, 4250, 45 }, - { 5, 4000, 120 }, - { 7, 3750, 225 }, - { 7, 3750, 345 }, - { 7, 3750, 105 }, - { 5, 3500, 240 }, - { 7, 3250, 165 }, - { 7, 3250, 285 }, - { 7, 3250, 45 }, - { 7, 2100, 36 }, - { 7, 2100, 108 }, - { 7, 2100, 180 }, - { 7, 2100, 252 }, - { 7, 2100, 324 }, - { 3, 1500, 0 }, - { 3, 1500, 120 }, - { 3, 1500, 240 }, - { 8, 1300, 165 }, - { 8, 1300, 285 }, - { 8, 1300, 45 }, - { -1, 10000, 0 }, + { 0, 10600, 100 }, + { 0, 10600, 290 }, + { 7, 10500, 0 }, + { 7, 10400, 72 }, + { 7, 10300, 144 }, + { 7, 10200, 216 }, + { 7, 10100, 288 }, + { 5, 9600, 0 }, + { 7, 9000, 0 }, + { 7, 9000, 72 }, + { 7, 9000, 144 }, + { 7, 9000, 216 }, + { 7, 9000, 288 }, + { 1, 8600, 150 }, + { 7, 8500, 216 }, + { 7, 8400, 288 }, + { 7, 8300, 0 }, + { 7, 8200, 72 }, + { 7, 8100, 144 }, + { 6, 7700, 0 }, + { 6, 7700, 180 }, + { 7, 7500, 165 }, + { 7, 7500, 285 }, + { 7, 7500, 45 }, + { 8, 7000, 225 }, + { 8, 7000, 345 }, + { 8, 7000, 105 }, + { 7, 6500, 165 }, + { 7, 6500, 285 }, + { 7, 6500, 45 }, + { 4, 5500, 0 }, + { 4, 5500, 120 }, + { 4, 5500, 240 }, + { 7, 4700, 0 }, + { 7, 4700, 72 }, + { 7, 4700, 144 }, + { 7, 4700, 216 }, + { 7, 4700, 288 }, + { 5, 4500, 120 }, + { 7, 4250, 165 }, + { 7, 4250, 285 }, + { 7, 4250, 45 }, + { 5, 4000, 120 }, + { 7, 3750, 225 }, + { 7, 3750, 345 }, + { 7, 3750, 105 }, + { 5, 3500, 240 }, + { 7, 3250, 165 }, + { 7, 3250, 285 }, + { 7, 3250, 45 }, + { 7, 2100, 36 }, + { 7, 2100, 108 }, + { 7, 2100, 180 }, + { 7, 2100, 252 }, + { 7, 2100, 324 }, + { 3, 1500, 0 }, + { 3, 1500, 120 }, + { 3, 1500, 240 }, + { 8, 1300, 165 }, + { 8, 1300, 285 }, + { 8, 1300, 45 }, + { -1, 10000, 0 }, }; -GXColor lbl_1_data_4F4[4] = { - { 255, 255, 255, 255 }, - { 255, 255, 0, 255 }, - { 0, 255, 255, 255 }, - { 255, 200, 200, 255 } -}; +GXColor lbl_1_data_4F4[4] = { { 255, 255, 255, 255 }, { 255, 255, 0, 255 }, { 0, 255, 255, 255 }, { 255, 200, 200, 255 } }; -u8 lbl_1_data_504[] = { - 5, 3, 1, 0 -}; +u8 lbl_1_data_504[] = { 5, 3, 1, 0 }; -float lbl_1_data_508[3] = { - 72, 120, 0 -}; +float lbl_1_data_508[3] = { 72, 120, 0 }; -float lbl_1_data_514[3] = { - 0, 60, 0 -}; +float lbl_1_data_514[3] = { 0, 60, 0 }; -float lbl_1_data_520[3] = { - 30, 60, 90 -}; +float lbl_1_data_520[3] = { 30, 60, 90 }; -Vec lbl_1_data_52C[3] = { - { 1500, 2500, 1500 }, - { 0, 1, 0 }, - { 0, 0, 0 } -}; +Vec lbl_1_data_52C[3] = { { 1500, 2500, 1500 }, { 0, 1, 0 }, { 0, 0, 0 } }; omObjData *lbl_1_bss_75A8; omObjData *lbl_1_bss_75A4; @@ -201,9 +174,9 @@ void fn_1_15BCC(omObjData *object); void fn_1_118D0(Process *objman) { - lbl_1_bss_168 = 0; - lbl_1_bss_75A8 = omAddObjEx(objman, 40, 256, 1, -1, fn_1_11960); - lbl_1_bss_75A4 = omAddObjEx(objman, 41, 4, 0, -1, fn_1_15BCC); + lbl_1_bss_168 = 0; + lbl_1_bss_75A8 = omAddObjEx(objman, 40, 256, 1, -1, fn_1_11960); + lbl_1_bss_75A4 = omAddObjEx(objman, 41, 4, 0, -1, fn_1_15BCC); } void fn_1_11E3C(StructBssDA4 *arg0, s32 arg1); @@ -215,195 +188,198 @@ void fn_1_15658(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_11960(omObjData *object) { - StructBssDA4 *temp_r31; - s32 temp_r29; - s16 temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - s16 temp_r24; - s16 temp_r23; - s16 temp_r22; - temp_r31 = &lbl_1_bss_DA4[0]; - lbl_1_bss_DA0 = 0; - lbl_1_bss_D9C = 0; - while(lbl_1_data_20C[lbl_1_bss_DA0].unk0 != -1) { - if(lbl_1_data_20C[lbl_1_bss_DA0].unk0 == 7) { - lbl_1_bss_D9C++; - } - lbl_1_bss_DA0++; - } - object->stat |= 0x100; - temp_r27 = temp_r26 = temp_r25 = temp_r24 = -1; - for(temp_r29=0; temp_r29unk0) { - case 0: - case 1: - case 2: - case 3: - case 4: - if(temp_r27 < 0) { - temp_r27 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); - temp_r23 = Hu3DJointMotionFile(temp_r27, lbl_1_data_1C4[temp_r31->unk0]); - Hu3DModelAttrSet(temp_r27, 0x40000001); - Hu3DMotionSet(temp_r27, temp_r23); - temp_r28 = temp_r27; - } else { - temp_r28 = Hu3DModelLink(temp_r27); - } - break; - - case 5: - case 6: - if(temp_r26 < 0) { - temp_r26 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); - temp_r22 = Hu3DJointMotionFile(temp_r26, lbl_1_data_1C4[temp_r31->unk0]); - Hu3DModelAttrSet(temp_r26, 0x40000001); - Hu3DMotionSet(temp_r26, temp_r22); - temp_r28 = temp_r26; - } else { - temp_r28 = Hu3DModelLink(temp_r26); - } - break; - - case 7: - if(temp_r25 < 0) { - temp_r25 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); - temp_r28 = temp_r25; - } else { - temp_r28 = Hu3DModelLink(temp_r25); - } - break; - - case 8: - if(temp_r24 < 0) { - temp_r24 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); - temp_r28 = temp_r24; - } else { - temp_r28 = Hu3DModelLink(temp_r24); - } - break; - - default: - break; - } - object->model[temp_r29] = temp_r28; - Hu3DModelPosSetV(object->model[temp_r29], &temp_r31->unkC); - Hu3DModelRotSetV(object->model[temp_r29], &temp_r31->unk34); - Hu3DModelScaleSet(object->model[temp_r29], 0.15f, 0.15f, 0.15f); - Hu3DModelCameraSet(object->model[temp_r29], 1); - Hu3DModelAttrSet(object->model[temp_r29], 1); - if(temp_r31->unk0 < 7) { - Hu3DModelAttrSet(object->model[temp_r29], 0x40000001); - } - } - for(temp_r29=lbl_1_bss_DA0; temp_r29model[temp_r29] = temp_r28; - Hu3DModelAttrSet(temp_r28, 1); - Hu3DModelLayerSet(temp_r28, 6); - Hu3DParticleColSet(temp_r28, 255, 255, 255); - Hu3DParticleHookSet(temp_r28, fn_1_15658); - Hu3DModelPosSet(temp_r28, 0, 0, 0); - fn_1_155E0(temp_r28, 0); - } - object->func = fn_1_12354; + StructBssDA4 *temp_r31; + s32 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + s16 temp_r23; + s16 temp_r22; + temp_r31 = &lbl_1_bss_DA4[0]; + lbl_1_bss_DA0 = 0; + lbl_1_bss_D9C = 0; + while (lbl_1_data_20C[lbl_1_bss_DA0].unk0 != -1) { + if (lbl_1_data_20C[lbl_1_bss_DA0].unk0 == 7) { + lbl_1_bss_D9C++; + } + lbl_1_bss_DA0++; + } + object->stat |= 0x100; + temp_r27 = temp_r26 = temp_r25 = temp_r24 = -1; + for (temp_r29 = 0; temp_r29 < lbl_1_bss_DA0; temp_r29++, temp_r31++) { + fn_1_11E3C(temp_r31, temp_r29); + switch (temp_r31->unk0) { + case 0: + case 1: + case 2: + case 3: + case 4: + if (temp_r27 < 0) { + temp_r27 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); + temp_r23 = Hu3DJointMotionFile(temp_r27, lbl_1_data_1C4[temp_r31->unk0]); + Hu3DModelAttrSet(temp_r27, 0x40000001); + Hu3DMotionSet(temp_r27, temp_r23); + temp_r28 = temp_r27; + } + else { + temp_r28 = Hu3DModelLink(temp_r27); + } + break; + + case 5: + case 6: + if (temp_r26 < 0) { + temp_r26 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); + temp_r22 = Hu3DJointMotionFile(temp_r26, lbl_1_data_1C4[temp_r31->unk0]); + Hu3DModelAttrSet(temp_r26, 0x40000001); + Hu3DMotionSet(temp_r26, temp_r22); + temp_r28 = temp_r26; + } + else { + temp_r28 = Hu3DModelLink(temp_r26); + } + break; + + case 7: + if (temp_r25 < 0) { + temp_r25 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); + temp_r28 = temp_r25; + } + else { + temp_r28 = Hu3DModelLink(temp_r25); + } + break; + + case 8: + if (temp_r24 < 0) { + temp_r24 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); + temp_r28 = temp_r24; + } + else { + temp_r28 = Hu3DModelLink(temp_r24); + } + break; + + default: + break; + } + object->model[temp_r29] = temp_r28; + Hu3DModelPosSetV(object->model[temp_r29], &temp_r31->unkC); + Hu3DModelRotSetV(object->model[temp_r29], &temp_r31->unk34); + Hu3DModelScaleSet(object->model[temp_r29], 0.15f, 0.15f, 0.15f); + Hu3DModelCameraSet(object->model[temp_r29], 1); + Hu3DModelAttrSet(object->model[temp_r29], 1); + if (temp_r31->unk0 < 7) { + Hu3DModelAttrSet(object->model[temp_r29], 0x40000001); + } + } + for (temp_r29 = lbl_1_bss_DA0; temp_r29 < lbl_1_bss_DA0 + lbl_1_bss_D9C; temp_r29++) { + temp_r28 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x18)), 32); + object->model[temp_r29] = temp_r28; + Hu3DModelAttrSet(temp_r28, 1); + Hu3DModelLayerSet(temp_r28, 6); + Hu3DParticleColSet(temp_r28, 255, 255, 255); + Hu3DParticleHookSet(temp_r28, fn_1_15658); + Hu3DModelPosSet(temp_r28, 0, 0, 0); + fn_1_155E0(temp_r28, 0); + } + object->func = fn_1_12354; } void fn_1_11E3C(StructBssDA4 *arg0, s32 arg1) { - float temp_f31; - float temp_f30; - s32 temp_r29; - temp_r29 = 0; - temp_f30 = 40; - temp_f31 = 20; - arg0->unk0 = lbl_1_data_20C[arg1].unk0; - arg0->unk4 = arg1; - arg0->unk8 = -1; - arg0->unk18.x = arg0->unkC.x = 0; - arg0->unk18.y = arg0->unkC.y = lbl_1_data_20C[arg1].unk4; - arg0->unk18.z = arg0->unkC.z = 0; - arg0->unk24.x = arg0->unk24.y = arg0->unk24.z = 0; - arg0->unk48 = 180; - arg0->unk34.x = arg0->unk34.z = arg0->unk34.y = 0; - arg0->unk40[0] = arg0->unk40[1] = 0; - arg0->unk30 = 0; - arg0->unk4C = 1; - arg0->unk50 = 1; - arg0->unk54 = 0; - arg0->unk5C = 1; - arg0->unk58 = 0; - arg0->unk60 = 0; - arg0->unk64 = 0; - switch(arg0->unk0) { - case 0: - arg0->unk64 = temp_f31+(rand8()%(int)temp_f30); - arg0->unk30 = lbl_1_data_20C[arg1].unk8; - arg0->unk34.y = 180+(-arg0->unk30+90); - - break; - - case 1: - arg0->unk34.y = arg0->unk40[0] = 180+(-arg0->unk30+90); - arg0->unk30 = rand8()%360; - break; - - case 2: - arg0->unk30 = lbl_1_data_20C[arg1].unk8; - arg0->unk34.y = 90+(180+(-arg0->unk30+90)); - break; - - case 3: - arg0->unk30 = lbl_1_data_20C[arg1].unk8; - arg0->unk34.y = (180+(-arg0->unk30+90))-90; - break; - - case 4: - arg0->unk30 = lbl_1_data_20C[arg1].unk8; - arg0->unk34.y = 180+(-arg0->unk30+90); - break; - - case 5: - arg0->unk30 = rand8()%360; - arg0->unk34.y = 180+(-arg0->unk30+90); - arg0->unk48 = 0; - break; - - case 6: - arg0->unk30 = lbl_1_data_20C[arg1].unk8; - arg0->unk34.y = -arg0->unk30+90; - break; - + float temp_f31; + float temp_f30; + s32 temp_r29; + temp_r29 = 0; + temp_f30 = 40; + temp_f31 = 20; + arg0->unk0 = lbl_1_data_20C[arg1].unk0; + arg0->unk4 = arg1; + arg0->unk8 = -1; + arg0->unk18.x = arg0->unkC.x = 0; + arg0->unk18.y = arg0->unkC.y = lbl_1_data_20C[arg1].unk4; + arg0->unk18.z = arg0->unkC.z = 0; + arg0->unk24.x = arg0->unk24.y = arg0->unk24.z = 0; + arg0->unk48 = 180; + arg0->unk34.x = arg0->unk34.z = arg0->unk34.y = 0; + arg0->unk40[0] = arg0->unk40[1] = 0; + arg0->unk30 = 0; + arg0->unk4C = 1; + arg0->unk50 = 1; + arg0->unk54 = 0; + arg0->unk5C = 1; + arg0->unk58 = 0; + arg0->unk60 = 0; + arg0->unk64 = 0; + switch (arg0->unk0) { + case 0: + arg0->unk64 = temp_f31 + (rand8() % (int)temp_f30); + arg0->unk30 = lbl_1_data_20C[arg1].unk8; + arg0->unk34.y = 180 + (-arg0->unk30 + 90); - - case 7: - case 8: - arg0->unk30 = lbl_1_data_20C[arg1].unk8; - arg0->unk8 = lbl_1_bss_DA0+temp_r29; - temp_r29++; - break; - } - if(arg0->unk34.y > 360) { - arg0->unk34.y -= 360; - } else { - if(arg0->unk34.y < 0) { - arg0->unk34.y += 360; - } - } + break; + + case 1: + arg0->unk34.y = arg0->unk40[0] = 180 + (-arg0->unk30 + 90); + arg0->unk30 = rand8() % 360; + break; + + case 2: + arg0->unk30 = lbl_1_data_20C[arg1].unk8; + arg0->unk34.y = 90 + (180 + (-arg0->unk30 + 90)); + break; + + case 3: + arg0->unk30 = lbl_1_data_20C[arg1].unk8; + arg0->unk34.y = (180 + (-arg0->unk30 + 90)) - 90; + break; + + case 4: + arg0->unk30 = lbl_1_data_20C[arg1].unk8; + arg0->unk34.y = 180 + (-arg0->unk30 + 90); + break; + + case 5: + arg0->unk30 = rand8() % 360; + arg0->unk34.y = 180 + (-arg0->unk30 + 90); + arg0->unk48 = 0; + break; + + case 6: + arg0->unk30 = lbl_1_data_20C[arg1].unk8; + arg0->unk34.y = -arg0->unk30 + 90; + break; + + case 7: + case 8: + arg0->unk30 = lbl_1_data_20C[arg1].unk8; + arg0->unk8 = lbl_1_bss_DA0 + temp_r29; + temp_r29++; + break; + } + if (arg0->unk34.y > 360) { + arg0->unk34.y -= 360; + } + else { + if (arg0->unk34.y < 0) { + arg0->unk34.y += 360; + } + } } void fn_1_12354(omObjData *object) { - s32 temp_r31; - u32 temp_r30; - temp_r30 = fn_1_6878(); - if(temp_r30 == 2) { - for(temp_r31=0; temp_r31func =fn_1_123C8; - } - + s32 temp_r31; + u32 temp_r30; + temp_r30 = fn_1_6878(); + if (temp_r30 == 2) { + for (temp_r31 = 0; temp_r31 < lbl_1_bss_DA0; temp_r31++) + ; + object->func = fn_1_123C8; + } } void fn_1_12670(omObjData *object); @@ -412,952 +388,973 @@ void fn_1_127A0(StructBssDA4 *object); void fn_1_123C8(omObjData *object) { - StructBssDA4 *temp_r31; - s32 temp_r29; - u32 temp_r28; - temp_r31 = &lbl_1_bss_DA4[0]; - lbl_1_bss_168 = 0; - for(temp_r29=0; temp_r29unk50 == 1) { - lbl_1_data_1E8[temp_r31->unk0](temp_r31); - if(temp_r31->unk5C == 0) { - fn_1_127A0(temp_r31); - } - Hu3DModelPosSetV(object->model[temp_r29], &temp_r31->unkC); - Hu3DModelRotSetV(object->model[temp_r29], &temp_r31->unk34); - Hu3DModelScaleSet(object->model[temp_r29], 0.15f*temp_r31->unk4C, 0.15f*temp_r31->unk4C, 0.15f*temp_r31->unk4C); - if(temp_r31->unkC.y > fn_1_6888()-1000 && temp_r31->unkC.y < fn_1_6888()+200) { - Hu3DModelAttrReset(object->model[temp_r29], 1); - } else { - Hu3DModelAttrSet(object->model[temp_r29], 1); - } - if(temp_r31->unk0 == 7 || temp_r31->unk0 == 8) { - if(temp_r31->unkC.y > fn_1_6888()-150 && temp_r31->unkC.y < fn_1_6888()+10) { - lbl_1_bss_16C[lbl_1_bss_168++] = temp_r31->unkC; - - } - } - } else { - Hu3DModelAttrSet(object->model[temp_r29], 1); - } - } - temp_r28 = fn_1_6878(); - if(temp_r28 == 5) { - for(temp_r29=0; temp_r29model[temp_r29], 1); - } - object->func = fn_1_12670; - } - + StructBssDA4 *temp_r31; + s32 temp_r29; + u32 temp_r28; + temp_r31 = &lbl_1_bss_DA4[0]; + lbl_1_bss_168 = 0; + for (temp_r29 = 0; temp_r29 < lbl_1_bss_DA0; temp_r29++, temp_r31++) { + if (temp_r31->unk50 == 1) { + lbl_1_data_1E8[temp_r31->unk0](temp_r31); + if (temp_r31->unk5C == 0) { + fn_1_127A0(temp_r31); + } + Hu3DModelPosSetV(object->model[temp_r29], &temp_r31->unkC); + Hu3DModelRotSetV(object->model[temp_r29], &temp_r31->unk34); + Hu3DModelScaleSet(object->model[temp_r29], 0.15f * temp_r31->unk4C, 0.15f * temp_r31->unk4C, 0.15f * temp_r31->unk4C); + if (temp_r31->unkC.y > fn_1_6888() - 1000 && temp_r31->unkC.y < fn_1_6888() + 200) { + Hu3DModelAttrReset(object->model[temp_r29], 1); + } + else { + Hu3DModelAttrSet(object->model[temp_r29], 1); + } + if (temp_r31->unk0 == 7 || temp_r31->unk0 == 8) { + if (temp_r31->unkC.y > fn_1_6888() - 150 && temp_r31->unkC.y < fn_1_6888() + 10) { + lbl_1_bss_16C[lbl_1_bss_168++] = temp_r31->unkC; + } + } + } + else { + Hu3DModelAttrSet(object->model[temp_r29], 1); + } + } + temp_r28 = fn_1_6878(); + if (temp_r28 == 5) { + for (temp_r29 = 0; temp_r29 < lbl_1_bss_DA0; temp_r29++, temp_r31++) { + Hu3DModelAttrSet(object->model[temp_r29], 1); + } + object->func = fn_1_12670; + } } -void fn_1_12670(omObjData *object) -{ - -} +void fn_1_12670(omObjData *object) { } void fn_1_15618(s16 arg0, float arg1, float arg2, float arg3); void fn_1_15B50(s16 arg0); float fn_1_12674(StructBssDA4 *arg0) { - Vec sp8; - float temp_f31; - float temp_f30; - float temp_f29; - Work2FAC *temp_r31; - s32 temp_r30; - temp_f30 = -1; - temp_f29 = 10000; - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r31 = fn_1_68A8(temp_r30); - if(temp_r31->unk4 & 0x10) { - continue; - } - sp8.x = temp_r31->unk1C.x-arg0->unk24.x; - sp8.y = 0; - sp8.z = temp_r31->unk1C.z-arg0->unk24.z; - temp_f31 = VECMag(&sp8); - if(temp_f31 < temp_f29) { - temp_f30 = atan2d(sp8.x, sp8.z); - temp_f29 = temp_f31; - } - } - return temp_f30; + Vec sp8; + float temp_f31; + float temp_f30; + float temp_f29; + Work2FAC *temp_r31; + s32 temp_r30; + temp_f30 = -1; + temp_f29 = 10000; + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r31 = fn_1_68A8(temp_r30); + if (temp_r31->unk4 & 0x10) { + continue; + } + sp8.x = temp_r31->unk1C.x - arg0->unk24.x; + sp8.y = 0; + sp8.z = temp_r31->unk1C.z - arg0->unk24.z; + temp_f31 = VECMag(&sp8); + if (temp_f31 < temp_f29) { + temp_f30 = atan2d(sp8.x, sp8.z); + temp_f29 = temp_f31; + } + } + return temp_f30; } void fn_1_127A0(StructBssDA4 *arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f26; - float temp_f23; - Work2FAC *temp_r31; - s32 temp_r29; - temp_f23 = 14; - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r31 = fn_1_68A8(temp_r29); - if(temp_r31->unk4 & 0x12) { - continue; - } - switch(arg0->unk0) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 7: - case 8: - temp_f31 = temp_r31->unk1C.x-arg0->unk24.x; - temp_f29 = temp_r31->unk1C.y-arg0->unk24.y; - temp_f30 = temp_r31->unk1C.z-arg0->unk24.z; - temp_f26 = VECMagPoint(temp_f31, temp_f29, temp_f30); - break; - - case 5: - case 6: - temp_f31 = temp_r31->unk1C.x-arg0->unk24.x; - temp_f30 = temp_r31->unk1C.z-arg0->unk24.z; - temp_f26 = VECMagPoint(temp_f31, 0, temp_f30); - break; - } - if(temp_f26 < temp_f23 && 0.0f != temp_f26) { - if(arg0->unk0 != 7 && arg0->unk0 != 8) { - temp_r31->unk4 |= 0x1; - temp_r31->unk40.x = temp_f31; - temp_r31->unk40.z = temp_f30; - lbl_1_bss_D6C[temp_r29].x = (0.5f*temp_f31)+arg0->unk24.x; - lbl_1_bss_D6C[temp_r29].z = (0.5f*temp_f30)+arg0->unk24.z; - lbl_1_bss_D6C[temp_r29].y = temp_r31->unk1C.y; - lbl_1_bss_75A4->work[0] = temp_r29; - } else { - arg0->unk58 = 1; - if(arg0->unk0 == 8) { - temp_r31->unk14 += 5; - fn_1_67C4(temp_r29, 5); - } else { - temp_r31->unk14 += 1; - fn_1_67C4(temp_r29, 1); - } - } - } - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f26; + float temp_f23; + Work2FAC *temp_r31; + s32 temp_r29; + temp_f23 = 14; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r31 = fn_1_68A8(temp_r29); + if (temp_r31->unk4 & 0x12) { + continue; + } + switch (arg0->unk0) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 7: + case 8: + temp_f31 = temp_r31->unk1C.x - arg0->unk24.x; + temp_f29 = temp_r31->unk1C.y - arg0->unk24.y; + temp_f30 = temp_r31->unk1C.z - arg0->unk24.z; + temp_f26 = VECMagPoint(temp_f31, temp_f29, temp_f30); + break; + + case 5: + case 6: + temp_f31 = temp_r31->unk1C.x - arg0->unk24.x; + temp_f30 = temp_r31->unk1C.z - arg0->unk24.z; + temp_f26 = VECMagPoint(temp_f31, 0, temp_f30); + break; + } + if (temp_f26 < temp_f23 && 0.0f != temp_f26) { + if (arg0->unk0 != 7 && arg0->unk0 != 8) { + temp_r31->unk4 |= 0x1; + temp_r31->unk40.x = temp_f31; + temp_r31->unk40.z = temp_f30; + lbl_1_bss_D6C[temp_r29].x = (0.5f * temp_f31) + arg0->unk24.x; + lbl_1_bss_D6C[temp_r29].z = (0.5f * temp_f30) + arg0->unk24.z; + lbl_1_bss_D6C[temp_r29].y = temp_r31->unk1C.y; + lbl_1_bss_75A4->work[0] = temp_r29; + } + else { + arg0->unk58 = 1; + if (arg0->unk0 == 8) { + temp_r31->unk14 += 5; + fn_1_67C4(temp_r29, 5); + } + else { + temp_r31->unk14 += 1; + fn_1_67C4(temp_r29, 1); + } + } + } + } } void fn_1_12C6C(StructBssDA4 *arg0) { - Work2FAC *temp_r30; - float temp_f31; - float temp_f30; - float temp_f26; - float temp_f25; - temp_f26 = cosd(arg0->unk30); - temp_f25 = sind(arg0->unk30); - arg0->unkC.x = temp_f26*arg0->unk64; - arg0->unkC.z = temp_f25*arg0->unk64; - temp_f30 = fn_1_6888(); - switch(arg0->unk54) { - case 0: - if(arg0->unkC.y > temp_f30) { - arg0->unk60 = 0; - arg0->unk54 = 1; - } - arg0->unk34.x = fn_1_883C(arg0->unk34.x, -30, 0.1f); - arg0->unk5C = 1; - break; - - case 1: - arg0->unk5C = 0; - arg0->unkC.y = temp_f30; - arg0->unk24.x = arg0->unkC.x; - arg0->unk24.y = arg0->unkC.y+5.0f; - arg0->unk24.z = arg0->unkC.z; - temp_f31 = fn_1_12674(arg0); - if(temp_f31 >= 0) { - arg0->unk34.y = fn_1_883C(arg0->unk34.y, temp_f31, 0.1f); - } - arg0->unk34.x = fn_1_883C(arg0->unk34.x, 0, 0.1f); - if(arg0->unk60 < 90.0f) { - arg0->unk60++; - } else { - arg0->unk54 = 3; - } - break; - - case 3: - arg0->unk34.x = fn_1_883C(arg0->unk34.x, -30, 0.1f); - arg0->unk5C = 1; - if(arg0->unkC.y-15.0f > Center.y+CZoom) { - arg0->unk54 = 4; - arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - break; - - case 4: - break; - } + Work2FAC *temp_r30; + float temp_f31; + float temp_f30; + float temp_f26; + float temp_f25; + temp_f26 = cosd(arg0->unk30); + temp_f25 = sind(arg0->unk30); + arg0->unkC.x = temp_f26 * arg0->unk64; + arg0->unkC.z = temp_f25 * arg0->unk64; + temp_f30 = fn_1_6888(); + switch (arg0->unk54) { + case 0: + if (arg0->unkC.y > temp_f30) { + arg0->unk60 = 0; + arg0->unk54 = 1; + } + arg0->unk34.x = fn_1_883C(arg0->unk34.x, -30, 0.1f); + arg0->unk5C = 1; + break; + + case 1: + arg0->unk5C = 0; + arg0->unkC.y = temp_f30; + arg0->unk24.x = arg0->unkC.x; + arg0->unk24.y = arg0->unkC.y + 5.0f; + arg0->unk24.z = arg0->unkC.z; + temp_f31 = fn_1_12674(arg0); + if (temp_f31 >= 0) { + arg0->unk34.y = fn_1_883C(arg0->unk34.y, temp_f31, 0.1f); + } + arg0->unk34.x = fn_1_883C(arg0->unk34.x, 0, 0.1f); + if (arg0->unk60 < 90.0f) { + arg0->unk60++; + } + else { + arg0->unk54 = 3; + } + break; + + case 3: + arg0->unk34.x = fn_1_883C(arg0->unk34.x, -30, 0.1f); + arg0->unk5C = 1; + if (arg0->unkC.y - 15.0f > Center.y + CZoom) { + arg0->unk54 = 4; + arg0->unk50 = 0; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + break; + + case 4: + break; + } } void fn_1_1305C(StructBssDA4 *arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - float temp_f26; - arg0->unk48 += 1.5f; - if(arg0->unk48 > 360.0f) { - arg0->unk48 -= 360.0f; - } - temp_f29 = cosd(arg0->unk30); - temp_f28 = sind(arg0->unk30); - arg0->unk18.x = temp_f29*arg0->unk64; - arg0->unk18.z = temp_f28*arg0->unk64; - temp_f31 = sind(arg0->unk48); - arg0->unkC.x = temp_f29*(60*temp_f31); - arg0->unkC.z = temp_f28*(60*temp_f31); - temp_f30 = -arg0->unk30-90; - if(temp_f31 < 0) { - temp_f30 += 180; - } - arg0->unk34.y = fn_1_883C(arg0->unk34.y, temp_f30, 0.05f); - temp_f30 = fabs(temp_f31); - arg0->unk34.x = -30*temp_f30; - temp_f26 = fn_1_6888(); - switch(arg0->unk54) { - case 0: - if(arg0->unkC.y > temp_f26) { - arg0->unk60 = 0; - arg0->unk54 = 1; - } - arg0->unk5C = 1; - if(temp_f31 >= sind(75.0f)) { - temp_f27 = (arg0->unk48-75)/30; - arg0->unk40[1] = 180+arg0->unk40[0]; - } else if(temp_f31 <= sind(255.0f)) { - temp_f27 = (arg0->unk48-255)/30; - arg0->unk40[1] = 180+arg0->unk40[0]; - } else { - temp_f27 = 0; - if(arg0->unk40[1] > 360.0f) { - arg0->unk40[1] -= 360.0f; - } - arg0->unk40[0] = arg0->unk40[1]; - } - break; - - case 1: - arg0->unk5C = 0; - arg0->unkC.y = temp_f26; - arg0->unk24.x = arg0->unkC.x; - arg0->unk24.y = arg0->unkC.y+5; - arg0->unk24.z = arg0->unkC.z; - if(arg0->unk60 < 120.0f) { - arg0->unk60++; - } else { - arg0->unk54 = 3; - } - break; - - case 3: - arg0->unk5C = 1; - if(arg0->unkC.y-15.0f > Center.y+CZoom) { - arg0->unk54 = 4; - arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - break; - - case 4: - break; - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + arg0->unk48 += 1.5f; + if (arg0->unk48 > 360.0f) { + arg0->unk48 -= 360.0f; + } + temp_f29 = cosd(arg0->unk30); + temp_f28 = sind(arg0->unk30); + arg0->unk18.x = temp_f29 * arg0->unk64; + arg0->unk18.z = temp_f28 * arg0->unk64; + temp_f31 = sind(arg0->unk48); + arg0->unkC.x = temp_f29 * (60 * temp_f31); + arg0->unkC.z = temp_f28 * (60 * temp_f31); + temp_f30 = -arg0->unk30 - 90; + if (temp_f31 < 0) { + temp_f30 += 180; + } + arg0->unk34.y = fn_1_883C(arg0->unk34.y, temp_f30, 0.05f); + temp_f30 = fabs(temp_f31); + arg0->unk34.x = -30 * temp_f30; + temp_f26 = fn_1_6888(); + switch (arg0->unk54) { + case 0: + if (arg0->unkC.y > temp_f26) { + arg0->unk60 = 0; + arg0->unk54 = 1; + } + arg0->unk5C = 1; + if (temp_f31 >= sind(75.0f)) { + temp_f27 = (arg0->unk48 - 75) / 30; + arg0->unk40[1] = 180 + arg0->unk40[0]; + } + else if (temp_f31 <= sind(255.0f)) { + temp_f27 = (arg0->unk48 - 255) / 30; + arg0->unk40[1] = 180 + arg0->unk40[0]; + } + else { + temp_f27 = 0; + if (arg0->unk40[1] > 360.0f) { + arg0->unk40[1] -= 360.0f; + } + arg0->unk40[0] = arg0->unk40[1]; + } + break; + + case 1: + arg0->unk5C = 0; + arg0->unkC.y = temp_f26; + arg0->unk24.x = arg0->unkC.x; + arg0->unk24.y = arg0->unkC.y + 5; + arg0->unk24.z = arg0->unkC.z; + if (arg0->unk60 < 120.0f) { + arg0->unk60++; + } + else { + arg0->unk54 = 3; + } + break; + + case 3: + arg0->unk5C = 1; + if (arg0->unkC.y - 15.0f > Center.y + CZoom) { + arg0->unk54 = 4; + arg0->unk50 = 0; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + break; + + case 4: + break; + } } void fn_1_134D8(StructBssDA4 *arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - arg0->unk30 += 1.8f; - if(arg0->unk30 > 360.0f) { - arg0->unk30 -= 360.0f; - } - temp_f30 = cosd(arg0->unk30); - temp_f29 = sind(arg0->unk30); - arg0->unk64 = 64; - arg0->unkC.x = temp_f30*arg0->unk64; - arg0->unkC.z = temp_f29*arg0->unk64*0.7f; - temp_f31 = fn_1_6888(); - switch(arg0->unk54) { - case 0: - if(arg0->unkC.y > temp_f31) { - arg0->unk60 = 0; - arg0->unk54 = 1; - } - arg0->unk5C = 1; - arg0->unk34.y = -arg0->unk30; - if(arg0->unk34.y > 360.0f) { - arg0->unk34.y -= 360.0f; - } else if(arg0->unk34.y < 0.0f) { - arg0->unk34.y += 360.0f; - } - break; - - case 1: - arg0->unk5C = 0; - arg0->unkC.y = temp_f31; - arg0->unk24.x = arg0->unkC.x; - arg0->unk24.y = arg0->unkC.y+5; - arg0->unk24.z = arg0->unkC.z; - arg0->unk34.y -= 10.0f; - if(arg0->unk34.y > 360.0f) { - arg0->unk34.y -= 360.0f; - } - if(arg0->unk60 < 120.0f) { - arg0->unk60++; - } else { - arg0->unk54 = 3; - } - break; - - case 3: - arg0->unk5C = 1; - if(arg0->unkC.y-15.0f > Center.y+CZoom) { - arg0->unk54 = 4; - arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - break; - - case 4: - break; - } + float temp_f31; + float temp_f30; + float temp_f29; + arg0->unk30 += 1.8f; + if (arg0->unk30 > 360.0f) { + arg0->unk30 -= 360.0f; + } + temp_f30 = cosd(arg0->unk30); + temp_f29 = sind(arg0->unk30); + arg0->unk64 = 64; + arg0->unkC.x = temp_f30 * arg0->unk64; + arg0->unkC.z = temp_f29 * arg0->unk64 * 0.7f; + temp_f31 = fn_1_6888(); + switch (arg0->unk54) { + case 0: + if (arg0->unkC.y > temp_f31) { + arg0->unk60 = 0; + arg0->unk54 = 1; + } + arg0->unk5C = 1; + arg0->unk34.y = -arg0->unk30; + if (arg0->unk34.y > 360.0f) { + arg0->unk34.y -= 360.0f; + } + else if (arg0->unk34.y < 0.0f) { + arg0->unk34.y += 360.0f; + } + break; + + case 1: + arg0->unk5C = 0; + arg0->unkC.y = temp_f31; + arg0->unk24.x = arg0->unkC.x; + arg0->unk24.y = arg0->unkC.y + 5; + arg0->unk24.z = arg0->unkC.z; + arg0->unk34.y -= 10.0f; + if (arg0->unk34.y > 360.0f) { + arg0->unk34.y -= 360.0f; + } + if (arg0->unk60 < 120.0f) { + arg0->unk60++; + } + else { + arg0->unk54 = 3; + } + break; + + case 3: + arg0->unk5C = 1; + if (arg0->unkC.y - 15.0f > Center.y + CZoom) { + arg0->unk54 = 4; + arg0->unk50 = 0; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + break; + + case 4: + break; + } } void fn_1_13820(StructBssDA4 *arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - float temp_f26; - float temp_f25; - float temp_f24; - float temp_f23; - float temp_f22; - float temp_f21; - float temp_f20; - float temp_f19; - float sp8; - arg0->unk30 += 2.0f; - if(arg0->unk30 > 360.0f) { - arg0->unk30 -= 360.0f; - } - temp_f26 = cosd(arg0->unk30); - temp_f25 = sind(arg0->unk30); - arg0->unk40[1] = 270.0f; - temp_f29 = arg0->unk18.y; - switch(arg0->unk54) { - case 0: - temp_f31 = 10; - temp_f28 = temp_f26*temp_f31; - temp_f27 = temp_f25*temp_f31; - temp_f29 = arg0->unk18.y; - arg0->unk40[0] = 0; - arg0->unk34.x = fn_1_883C(arg0->unk34.x, -30, 0.1); - arg0->unk34.y = 180.0f+(90.0f+ -arg0->unk30); - temp_f30 = fn_1_6888(); - if(temp_f30 < 5.0f+temp_f29) { - arg0->unk48 = 0; - arg0->unk54 = 1; - arg0->unk40[0] = 8; - } - arg0->unk5C = 1; - break; - - case 1: - arg0->unk48 += 2.0f; - if(arg0->unk48 > 180.0f) { - arg0->unk54 = 3; - } - arg0->unk40[0] = 0; - arg0->unk34.x = fn_1_883C(arg0->unk34.x, 40, 0.1); - arg0->unk34.y = fn_1_883C(arg0->unk34.y, -arg0->unk30, 0.1); - temp_f23 = cosd(arg0->unk48*0.5f); - temp_f31 = (-100*temp_f23)+110; - temp_f30 = fn_1_6888(); - temp_f28 = temp_f26*temp_f31; - temp_f27 = temp_f25*temp_f31; - temp_f29 = temp_f30; - arg0->unk24.x = temp_f28; - arg0->unk24.y = temp_f30; - arg0->unk24.z = temp_f27; - arg0->unk5C = 0; - break; - - case 3: - arg0->unk5C = 1; - arg0->unk54 = 4; - arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - break; - - case 4: - break; - } - if(arg0->unk34.y > 360) { - arg0->unk34.y -= 360; - } else if(arg0->unk34.y < 0) { - arg0->unk34.y += 360; - } - sp8 = 0; - temp_f22 = -cosd(arg0->unk34.x)*5; - temp_f24 = -sind(arg0->unk34.x)*5; - temp_f21 = temp_f24*sind(arg0->unk34.y); - temp_f20 = temp_f22; - temp_f19 = temp_f24*cosd(arg0->unk34.y); - arg0->unkC.x = temp_f21+temp_f28; - arg0->unkC.y = temp_f20+temp_f29; - arg0->unkC.z = temp_f19+temp_f27; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f24; + float temp_f23; + float temp_f22; + float temp_f21; + float temp_f20; + float temp_f19; + float sp8; + arg0->unk30 += 2.0f; + if (arg0->unk30 > 360.0f) { + arg0->unk30 -= 360.0f; + } + temp_f26 = cosd(arg0->unk30); + temp_f25 = sind(arg0->unk30); + arg0->unk40[1] = 270.0f; + temp_f29 = arg0->unk18.y; + switch (arg0->unk54) { + case 0: + temp_f31 = 10; + temp_f28 = temp_f26 * temp_f31; + temp_f27 = temp_f25 * temp_f31; + temp_f29 = arg0->unk18.y; + arg0->unk40[0] = 0; + arg0->unk34.x = fn_1_883C(arg0->unk34.x, -30, 0.1); + arg0->unk34.y = 180.0f + (90.0f + -arg0->unk30); + temp_f30 = fn_1_6888(); + if (temp_f30 < 5.0f + temp_f29) { + arg0->unk48 = 0; + arg0->unk54 = 1; + arg0->unk40[0] = 8; + } + arg0->unk5C = 1; + break; + + case 1: + arg0->unk48 += 2.0f; + if (arg0->unk48 > 180.0f) { + arg0->unk54 = 3; + } + arg0->unk40[0] = 0; + arg0->unk34.x = fn_1_883C(arg0->unk34.x, 40, 0.1); + arg0->unk34.y = fn_1_883C(arg0->unk34.y, -arg0->unk30, 0.1); + temp_f23 = cosd(arg0->unk48 * 0.5f); + temp_f31 = (-100 * temp_f23) + 110; + temp_f30 = fn_1_6888(); + temp_f28 = temp_f26 * temp_f31; + temp_f27 = temp_f25 * temp_f31; + temp_f29 = temp_f30; + arg0->unk24.x = temp_f28; + arg0->unk24.y = temp_f30; + arg0->unk24.z = temp_f27; + arg0->unk5C = 0; + break; + + case 3: + arg0->unk5C = 1; + arg0->unk54 = 4; + arg0->unk50 = 0; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + break; + + case 4: + break; + } + if (arg0->unk34.y > 360) { + arg0->unk34.y -= 360; + } + else if (arg0->unk34.y < 0) { + arg0->unk34.y += 360; + } + sp8 = 0; + temp_f22 = -cosd(arg0->unk34.x) * 5; + temp_f24 = -sind(arg0->unk34.x) * 5; + temp_f21 = temp_f24 * sind(arg0->unk34.y); + temp_f20 = temp_f22; + temp_f19 = temp_f24 * cosd(arg0->unk34.y); + arg0->unkC.x = temp_f21 + temp_f28; + arg0->unkC.y = temp_f20 + temp_f29; + arg0->unkC.z = temp_f19 + temp_f27; } void fn_1_13D88(StructBssDA4 *arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - arg0->unk30 += 3.0f; - if(arg0->unk30 > 360.0f) { - arg0->unk30 -= 360.0f; - } - temp_f31 = cosd(arg0->unk30); - temp_f30 = sind(arg0->unk30); - temp_f29 = fn_1_6888(); - arg0->unk34.y = (90+(-arg0->unk30))+180+90; - arg0->unkC.x = 1.5f*(10.0f*temp_f31)+arg0->unk18.x; - arg0->unkC.z = 1.5f*(10.0f*temp_f30)+arg0->unk18.z; - arg0->unk24.x = arg0->unkC.x; - arg0->unk24.y = arg0->unkC.y+5; - arg0->unk24.z = arg0->unkC.z; - if(arg0->unkC.y > 5.0f+temp_f29) { - arg0->unk5C = 1; - } else { - arg0->unk5C = 0; - } - if(arg0->unk5C == 1 && arg0->unkC.y-15.0f > Center.y+CZoom) { - arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - if(arg0->unk34.y > 360.0f) { - arg0->unk34.y -= 360.0f; - } else if(arg0->unk34.y < 0.0f) { - arg0->unk34.y += 360.0f; - } - arg0->unk34.x = fn_1_883C(arg0->unk34.x, -35, 0.1f); + float temp_f31; + float temp_f30; + float temp_f29; + arg0->unk30 += 3.0f; + if (arg0->unk30 > 360.0f) { + arg0->unk30 -= 360.0f; + } + temp_f31 = cosd(arg0->unk30); + temp_f30 = sind(arg0->unk30); + temp_f29 = fn_1_6888(); + arg0->unk34.y = (90 + (-arg0->unk30)) + 180 + 90; + arg0->unkC.x = 1.5f * (10.0f * temp_f31) + arg0->unk18.x; + arg0->unkC.z = 1.5f * (10.0f * temp_f30) + arg0->unk18.z; + arg0->unk24.x = arg0->unkC.x; + arg0->unk24.y = arg0->unkC.y + 5; + arg0->unk24.z = arg0->unkC.z; + if (arg0->unkC.y > 5.0f + temp_f29) { + arg0->unk5C = 1; + } + else { + arg0->unk5C = 0; + } + if (arg0->unk5C == 1 && arg0->unkC.y - 15.0f > Center.y + CZoom) { + arg0->unk50 = 0; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + if (arg0->unk34.y > 360.0f) { + arg0->unk34.y -= 360.0f; + } + else if (arg0->unk34.y < 0.0f) { + arg0->unk34.y += 360.0f; + } + arg0->unk34.x = fn_1_883C(arg0->unk34.x, -35, 0.1f); } void fn_1_1406C(StructBssDA4 *arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - float temp_f26; - float temp_f25; - float temp_f24; - float temp_f23; - float temp_f22; - float temp_f21; - temp_f30 = 1; - temp_f26 = fn_1_6888(); - switch(arg0->unk54) { - case 0: - temp_f29 = cosd(arg0->unk30); - temp_f28 = sind(arg0->unk30); - arg0->unkC.x = temp_f29*(80.0f-(10.0f*temp_f30)); - arg0->unkC.z = temp_f28*(80.0f-(10.0f*temp_f30))*0.7f; - temp_f24 = temp_f26; - if(arg0->unkC.y > temp_f24) { - arg0->unk54 = 1; - arg0->unk18.x = arg0->unkC.x; - arg0->unk18.z = arg0->unkC.z; - } - arg0->unk5C = 1; - arg0->unk48 = 0; - break; - - case 1: - arg0->unk48 += 1.5f; - if(arg0->unk48 > 180.0f) { - arg0->unk54 = 3; - Hu3DMotionSpeedSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - - temp_f31 = 180+arg0->unk30; - if(temp_f31 > 360.0f) { - temp_f31 -= 360.0f; - } - temp_f29 = cosd(temp_f31); - temp_f28 = sind(temp_f31); - temp_f25 = cosd(arg0->unk48*0.5f); - temp_f27 = 180.0f; - temp_f30 = temp_f27+(temp_f25*(-temp_f27)); - temp_f23 = arg0->unk18.x+(temp_f29*temp_f30); - temp_f21 = arg0->unk18.z+(temp_f28*temp_f30); - temp_f22 = temp_f26; - arg0->unkC.x = temp_f23; - arg0->unkC.y = temp_f22; - arg0->unkC.z = temp_f21; - arg0->unk24.x = arg0->unkC.x; - arg0->unk24.y = arg0->unkC.y+5; - arg0->unk24.z = arg0->unkC.z; - if(arg0->unk34.x < 30.0f) { - arg0->unk34.x += 4.0f; - } else { - arg0->unk34.x = 30.0f; - } - Hu3DMotionSpeedSet(lbl_1_bss_75A8->model[arg0->unk4], 2); - arg0->unk5C = 0; - break; - - case 3: - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - arg0->unk5C = 1; - arg0->unk50 = 0; - arg0->unk54++; - break; - - case 4: - break; - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f24; + float temp_f23; + float temp_f22; + float temp_f21; + temp_f30 = 1; + temp_f26 = fn_1_6888(); + switch (arg0->unk54) { + case 0: + temp_f29 = cosd(arg0->unk30); + temp_f28 = sind(arg0->unk30); + arg0->unkC.x = temp_f29 * (80.0f - (10.0f * temp_f30)); + arg0->unkC.z = temp_f28 * (80.0f - (10.0f * temp_f30)) * 0.7f; + temp_f24 = temp_f26; + if (arg0->unkC.y > temp_f24) { + arg0->unk54 = 1; + arg0->unk18.x = arg0->unkC.x; + arg0->unk18.z = arg0->unkC.z; + } + arg0->unk5C = 1; + arg0->unk48 = 0; + break; + + case 1: + arg0->unk48 += 1.5f; + if (arg0->unk48 > 180.0f) { + arg0->unk54 = 3; + Hu3DMotionSpeedSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + + temp_f31 = 180 + arg0->unk30; + if (temp_f31 > 360.0f) { + temp_f31 -= 360.0f; + } + temp_f29 = cosd(temp_f31); + temp_f28 = sind(temp_f31); + temp_f25 = cosd(arg0->unk48 * 0.5f); + temp_f27 = 180.0f; + temp_f30 = temp_f27 + (temp_f25 * (-temp_f27)); + temp_f23 = arg0->unk18.x + (temp_f29 * temp_f30); + temp_f21 = arg0->unk18.z + (temp_f28 * temp_f30); + temp_f22 = temp_f26; + arg0->unkC.x = temp_f23; + arg0->unkC.y = temp_f22; + arg0->unkC.z = temp_f21; + arg0->unk24.x = arg0->unkC.x; + arg0->unk24.y = arg0->unkC.y + 5; + arg0->unk24.z = arg0->unkC.z; + if (arg0->unk34.x < 30.0f) { + arg0->unk34.x += 4.0f; + } + else { + arg0->unk34.x = 30.0f; + } + Hu3DMotionSpeedSet(lbl_1_bss_75A8->model[arg0->unk4], 2); + arg0->unk5C = 0; + break; + + case 3: + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + arg0->unk5C = 1; + arg0->unk50 = 0; + arg0->unk54++; + break; + + case 4: + break; + } } void fn_1_144D0(StructBssDA4 *arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - float temp_f26; - float temp_f25; - float temp_f24; - float temp_f23; - float temp_f22; - float temp_f21; - float temp_f20; - float temp_f19; - float temp_f18; - float spC; - float sp8; - - arg0->unk30 += 2.0f; - if(arg0->unk30 > 360.0f) { - arg0->unk30 -= 360.0f; - } - switch(arg0->unk54) { - case 0: - arg0->unk5C = 1; - temp_f31 = cosd(arg0->unk30); - temp_f30 = sind(arg0->unk30); - arg0->unkC.x = 15.0f*temp_f31; - arg0->unkC.z = 15.0f*temp_f30; - arg0->unk34.y = -arg0->unk30+90.0f; - temp_f24 = fn_1_6888(); - temp_f21 = -680.00006f+temp_f24; - if(arg0->unkC.y > temp_f21) { - arg0->unk54 = 1; - arg0->unk60 = 0; - } - break; - - case 1: - if(arg0->unk60 < 102.0f) { - arg0->unk60++; - temp_f27 = arg0->unk60/102.0f; - temp_f29 = 15+(35*temp_f27); - temp_f22 = 90*temp_f27; - temp_f31 = cosd(arg0->unk30); - temp_f30 = sind(arg0->unk30); - arg0->unkC.x = temp_f31*temp_f29; - arg0->unkC.z = temp_f30*temp_f29; - arg0->unk34.y = (-arg0->unk30+90.0f)-temp_f22; - } else { - arg0->unk54 = 2; - arg0->unk60 = 0; - Hu3DMotionSpeedSet(lbl_1_bss_75A8->model[arg0->unk4], 2); - } - break; - - case 2: - temp_f31 = cosd(arg0->unk30); - temp_f30 = sind(arg0->unk30); - temp_f24 = fn_1_6888(); - temp_f26 = 50*temp_f31; - temp_f28 = temp_f24; - temp_f25 = 50*temp_f30; - arg0->unkC.x = temp_f26; - arg0->unkC.y = temp_f28; - arg0->unkC.z = temp_f25; - if(arg0->unk34.x < 30.0f) { - arg0->unk34.x += 4.0f; - } else { - arg0->unk34.x = 30.0f; - } - arg0->unk34.y = (-arg0->unk30+90.0f)-90.0f; - if(arg0->unk60 < 180.0f) { - arg0->unk60++; - } else { - arg0->unk54 = 3; - arg0->unk60 = 0; - arg0->unk18.y = temp_f28; - Hu3DMotionSpeedSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - arg0->unk24.x = temp_f26; - arg0->unk24.y = 5.0f+temp_f28; - arg0->unk24.z = temp_f25; - arg0->unk5C = 0; - break; - - case 3: - if(arg0->unk60 < 150.0f) { - arg0->unk60++; - } else { - arg0->unk54 = 4; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - temp_f27 = 0; - temp_f29 = 50+(40*temp_f27); - temp_f31 = cosd(arg0->unk30); - temp_f30 = sind(arg0->unk30); - temp_f26 = temp_f31*temp_f29; - temp_f28 = arg0->unk18.y; - temp_f25 = temp_f30*temp_f29; - spC = 0; - temp_f20 = -cosd(arg0->unk34.x)*5; - temp_f23 = -sind(arg0->unk34.x)*5; - temp_f19 = temp_f23*sind(arg0->unk34.y); - temp_f18 = temp_f20; - sp8 = temp_f23*cosd(arg0->unk34.y); - arg0->unkC.x = temp_f19+temp_f26; - arg0->unkC.y = temp_f18+temp_f28; - arg0->unkC.z = sp8+temp_f25; - if(arg0->unk34.y > 360.0f) { - arg0->unk34.y -= 360.0f; - } - arg0->unk34.y = (-arg0->unk30+90.0f)-90.0f; - arg0->unk5C = 1; - break; - - case 4: - if(arg0->unk5C == 1 && arg0->unkC.y-15.0f > Center.y+CZoom) { - arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - break; - } - if(arg0->unk34.y > 360.0f) { - arg0->unk34.y -= 360.0f; - } else if(arg0->unk34.y < 0.0f) { - arg0->unk34.y += 360.0f; - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f24; + float temp_f23; + float temp_f22; + float temp_f21; + float temp_f20; + float temp_f19; + float temp_f18; + float spC; + float sp8; + + arg0->unk30 += 2.0f; + if (arg0->unk30 > 360.0f) { + arg0->unk30 -= 360.0f; + } + switch (arg0->unk54) { + case 0: + arg0->unk5C = 1; + temp_f31 = cosd(arg0->unk30); + temp_f30 = sind(arg0->unk30); + arg0->unkC.x = 15.0f * temp_f31; + arg0->unkC.z = 15.0f * temp_f30; + arg0->unk34.y = -arg0->unk30 + 90.0f; + temp_f24 = fn_1_6888(); + temp_f21 = -680.00006f + temp_f24; + if (arg0->unkC.y > temp_f21) { + arg0->unk54 = 1; + arg0->unk60 = 0; + } + break; + + case 1: + if (arg0->unk60 < 102.0f) { + arg0->unk60++; + temp_f27 = arg0->unk60 / 102.0f; + temp_f29 = 15 + (35 * temp_f27); + temp_f22 = 90 * temp_f27; + temp_f31 = cosd(arg0->unk30); + temp_f30 = sind(arg0->unk30); + arg0->unkC.x = temp_f31 * temp_f29; + arg0->unkC.z = temp_f30 * temp_f29; + arg0->unk34.y = (-arg0->unk30 + 90.0f) - temp_f22; + } + else { + arg0->unk54 = 2; + arg0->unk60 = 0; + Hu3DMotionSpeedSet(lbl_1_bss_75A8->model[arg0->unk4], 2); + } + break; + + case 2: + temp_f31 = cosd(arg0->unk30); + temp_f30 = sind(arg0->unk30); + temp_f24 = fn_1_6888(); + temp_f26 = 50 * temp_f31; + temp_f28 = temp_f24; + temp_f25 = 50 * temp_f30; + arg0->unkC.x = temp_f26; + arg0->unkC.y = temp_f28; + arg0->unkC.z = temp_f25; + if (arg0->unk34.x < 30.0f) { + arg0->unk34.x += 4.0f; + } + else { + arg0->unk34.x = 30.0f; + } + arg0->unk34.y = (-arg0->unk30 + 90.0f) - 90.0f; + if (arg0->unk60 < 180.0f) { + arg0->unk60++; + } + else { + arg0->unk54 = 3; + arg0->unk60 = 0; + arg0->unk18.y = temp_f28; + Hu3DMotionSpeedSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + arg0->unk24.x = temp_f26; + arg0->unk24.y = 5.0f + temp_f28; + arg0->unk24.z = temp_f25; + arg0->unk5C = 0; + break; + + case 3: + if (arg0->unk60 < 150.0f) { + arg0->unk60++; + } + else { + arg0->unk54 = 4; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + temp_f27 = 0; + temp_f29 = 50 + (40 * temp_f27); + temp_f31 = cosd(arg0->unk30); + temp_f30 = sind(arg0->unk30); + temp_f26 = temp_f31 * temp_f29; + temp_f28 = arg0->unk18.y; + temp_f25 = temp_f30 * temp_f29; + spC = 0; + temp_f20 = -cosd(arg0->unk34.x) * 5; + temp_f23 = -sind(arg0->unk34.x) * 5; + temp_f19 = temp_f23 * sind(arg0->unk34.y); + temp_f18 = temp_f20; + sp8 = temp_f23 * cosd(arg0->unk34.y); + arg0->unkC.x = temp_f19 + temp_f26; + arg0->unkC.y = temp_f18 + temp_f28; + arg0->unkC.z = sp8 + temp_f25; + if (arg0->unk34.y > 360.0f) { + arg0->unk34.y -= 360.0f; + } + arg0->unk34.y = (-arg0->unk30 + 90.0f) - 90.0f; + arg0->unk5C = 1; + break; + + case 4: + if (arg0->unk5C == 1 && arg0->unkC.y - 15.0f > Center.y + CZoom) { + arg0->unk50 = 0; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + break; + } + if (arg0->unk34.y > 360.0f) { + arg0->unk34.y -= 360.0f; + } + else if (arg0->unk34.y < 0.0f) { + arg0->unk34.y += 360.0f; + } } void fn_1_14DB4(StructBssDA4 *arg0) { - s32 temp_r30; - float temp_f31; - float temp_f30; - float temp_f29; - temp_f30 = cosd(arg0->unk30); - temp_f29 = sind(arg0->unk30); - arg0->unkC.x = 32.0f*temp_f30; - arg0->unkC.z = 32.0f*temp_f29; - temp_f31 = fn_1_6888(); - switch(arg0->unk54) { - case 0: - if(arg0->unkC.y > temp_f31) { - arg0->unk54 = 1; - arg0->unk60 = 0; - } - arg0->unk34.x += 4.0f; - arg0->unk5C = 1; - break; - - case 1: - arg0->unk5C = 0; - if(arg0->unk58) { - arg0->unk5C = 1; - arg0->unk54 = 4; - arg0->unk60 = 0; - temp_r30 = lbl_1_bss_75A8->model[arg0->unk8]; - Hu3DModelAttrReset(temp_r30, 1); - fn_1_15B50(temp_r30); - fn_1_155E0(temp_r30, 1); - fn_1_15618(temp_r30, arg0->unkC.x, arg0->unkC.y, arg0->unkC.z); - HuAudFXPlay(7); - } else { - if(arg0->unk60 < 72.0f) { - arg0->unk60++; - arg0->unkC.y = temp_f31; - } else { - arg0->unk54 = 3; - } - arg0->unk34.x += 8.0f; - arg0->unk34.y += 8.0f; - } - break; - - case 3: - arg0->unk34.x += 4.0f; - arg0->unk5C = 1; - break; - - case 4: - if(arg0->unk60 < 30.0f) { - arg0->unk34.x = 90; - arg0->unk34.y += 32.0f; - if(arg0->unk60 > 5) { - fn_1_155E0(lbl_1_bss_75A8->model[arg0->unk8], 0); - } - arg0->unk4C *= 0.8f; - arg0->unk60++; - } else { - arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - break; - } - if(arg0->unk34.x > 360.0f) { - arg0->unk34.x -= 360.0f; - } - if(arg0->unk34.y > 360.0f) { - arg0->unk34.y -= 360.0f; - } - arg0->unk24.x = arg0->unkC.x; - arg0->unk24.y = arg0->unkC.y; - arg0->unk24.z = arg0->unkC.z; + s32 temp_r30; + float temp_f31; + float temp_f30; + float temp_f29; + temp_f30 = cosd(arg0->unk30); + temp_f29 = sind(arg0->unk30); + arg0->unkC.x = 32.0f * temp_f30; + arg0->unkC.z = 32.0f * temp_f29; + temp_f31 = fn_1_6888(); + switch (arg0->unk54) { + case 0: + if (arg0->unkC.y > temp_f31) { + arg0->unk54 = 1; + arg0->unk60 = 0; + } + arg0->unk34.x += 4.0f; + arg0->unk5C = 1; + break; + + case 1: + arg0->unk5C = 0; + if (arg0->unk58) { + arg0->unk5C = 1; + arg0->unk54 = 4; + arg0->unk60 = 0; + temp_r30 = lbl_1_bss_75A8->model[arg0->unk8]; + Hu3DModelAttrReset(temp_r30, 1); + fn_1_15B50(temp_r30); + fn_1_155E0(temp_r30, 1); + fn_1_15618(temp_r30, arg0->unkC.x, arg0->unkC.y, arg0->unkC.z); + HuAudFXPlay(7); + } + else { + if (arg0->unk60 < 72.0f) { + arg0->unk60++; + arg0->unkC.y = temp_f31; + } + else { + arg0->unk54 = 3; + } + arg0->unk34.x += 8.0f; + arg0->unk34.y += 8.0f; + } + break; + + case 3: + arg0->unk34.x += 4.0f; + arg0->unk5C = 1; + break; + + case 4: + if (arg0->unk60 < 30.0f) { + arg0->unk34.x = 90; + arg0->unk34.y += 32.0f; + if (arg0->unk60 > 5) { + fn_1_155E0(lbl_1_bss_75A8->model[arg0->unk8], 0); + } + arg0->unk4C *= 0.8f; + arg0->unk60++; + } + else { + arg0->unk50 = 0; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + break; + } + if (arg0->unk34.x > 360.0f) { + arg0->unk34.x -= 360.0f; + } + if (arg0->unk34.y > 360.0f) { + arg0->unk34.y -= 360.0f; + } + arg0->unk24.x = arg0->unkC.x; + arg0->unk24.y = arg0->unkC.y; + arg0->unk24.z = arg0->unkC.z; } void fn_1_151A4(StructBssDA4 *arg0) { - s32 temp_r30; - float temp_f31; - float temp_f30; - float temp_f29; - - arg0->unk48 += 6.0000005f; - if(arg0->unk48 >= 360.0f) { - arg0->unk48 -= 360.0f; - } - arg0->unk34.z = 30*sind(arg0->unk48); - temp_f30 = cosd(arg0->unk30); - temp_f29 = sind(arg0->unk30); - arg0->unkC.x = 32.0f*temp_f30; - arg0->unkC.z = 32.0f*temp_f29; - temp_f31 = fn_1_6888(); - switch(arg0->unk54) { - case 0: - if(arg0->unkC.y > temp_f31) { - arg0->unk54 = 1; - arg0->unk60 = 0; - } - arg0->unk34.x = -45; - arg0->unk34.y = 0; - arg0->unk5C = 1; - break; - - case 1: - arg0->unk5C = 0; - if(arg0->unk58) { - arg0->unk5C = 1; - arg0->unk54 = 4; - arg0->unk60 = 0; - temp_r30 = lbl_1_bss_75A8->model[arg0->unk8]; - Hu3DModelAttrReset(temp_r30, 1); - fn_1_15B50(temp_r30); - fn_1_155E0(temp_r30, 1); - fn_1_15618(temp_r30, arg0->unkC.x, arg0->unkC.y, arg0->unkC.z); - HuAudFXPlay(19); - } else { - if(arg0->unk60 < 72.0f) { - arg0->unk60++; - arg0->unkC.y = temp_f31; - } else { - arg0->unk54 = 3; - } - - } - break; - - case 3: - arg0->unk5C = 1; - break; - - case 4: - if(arg0->unk60 < 30.0f) { - arg0->unk34.x = 90; - arg0->unk34.y += 32.0f; - if(arg0->unk60 > 5) { - fn_1_155E0(lbl_1_bss_75A8->model[arg0->unk8], 0); - } - arg0->unk4C *= 0.8f; - arg0->unk60++; - } else { - arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); - } - break; - } - if(arg0->unk34.x > 360.0f) { - arg0->unk34.x -= 360.0f; - } - if(arg0->unk34.y > 360.0f) { - arg0->unk34.y -= 360.0f; - } - arg0->unk24.x = arg0->unkC.x; - arg0->unk24.y = arg0->unkC.y; - arg0->unk24.z = arg0->unkC.z; + s32 temp_r30; + float temp_f31; + float temp_f30; + float temp_f29; + + arg0->unk48 += 6.0000005f; + if (arg0->unk48 >= 360.0f) { + arg0->unk48 -= 360.0f; + } + arg0->unk34.z = 30 * sind(arg0->unk48); + temp_f30 = cosd(arg0->unk30); + temp_f29 = sind(arg0->unk30); + arg0->unkC.x = 32.0f * temp_f30; + arg0->unkC.z = 32.0f * temp_f29; + temp_f31 = fn_1_6888(); + switch (arg0->unk54) { + case 0: + if (arg0->unkC.y > temp_f31) { + arg0->unk54 = 1; + arg0->unk60 = 0; + } + arg0->unk34.x = -45; + arg0->unk34.y = 0; + arg0->unk5C = 1; + break; + + case 1: + arg0->unk5C = 0; + if (arg0->unk58) { + arg0->unk5C = 1; + arg0->unk54 = 4; + arg0->unk60 = 0; + temp_r30 = lbl_1_bss_75A8->model[arg0->unk8]; + Hu3DModelAttrReset(temp_r30, 1); + fn_1_15B50(temp_r30); + fn_1_155E0(temp_r30, 1); + fn_1_15618(temp_r30, arg0->unkC.x, arg0->unkC.y, arg0->unkC.z); + HuAudFXPlay(19); + } + else { + if (arg0->unk60 < 72.0f) { + arg0->unk60++; + arg0->unkC.y = temp_f31; + } + else { + arg0->unk54 = 3; + } + } + break; + + case 3: + arg0->unk5C = 1; + break; + + case 4: + if (arg0->unk60 < 30.0f) { + arg0->unk34.x = 90; + arg0->unk34.y += 32.0f; + if (arg0->unk60 > 5) { + fn_1_155E0(lbl_1_bss_75A8->model[arg0->unk8], 0); + } + arg0->unk4C *= 0.8f; + arg0->unk60++; + } + else { + arg0->unk50 = 0; + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + } + break; + } + if (arg0->unk34.x > 360.0f) { + arg0->unk34.x -= 360.0f; + } + if (arg0->unk34.y > 360.0f) { + arg0->unk34.y -= 360.0f; + } + arg0->unk24.x = arg0->unkC.x; + arg0->unk24.y = arg0->unkC.y; + arg0->unk24.z = arg0->unkC.z; } void fn_1_155E0(s16 arg0, s16 arg1) { - ModelData *temp_r31; - ParticleData *temp_r30; - temp_r31 = &Hu3DData[arg0]; - temp_r30 = temp_r31->unk_120; - temp_r30->unk_00 = arg1; + ModelData *temp_r31; + ParticleData *temp_r30; + temp_r31 = &Hu3DData[arg0]; + temp_r30 = temp_r31->unk_120; + temp_r30->unk_00 = arg1; } void fn_1_15618(s16 arg0, float arg1, float arg2, float arg3) { - ParticleData *temp_r31; - ModelData *temp_r30; - temp_r30 = &Hu3DData[arg0]; - temp_r31 = temp_r30->unk_120; - temp_r31->unk_04.x = arg1; - temp_r31->unk_04.y = arg2; - temp_r31->unk_04.z = arg3; + ParticleData *temp_r31; + ModelData *temp_r30; + temp_r30 = &Hu3DData[arg0]; + temp_r31 = temp_r30->unk_120; + temp_r31->unk_04.x = arg1; + temp_r31->unk_04.y = arg2; + temp_r31->unk_04.z = arg3; } void fn_1_15658(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - HsfanimStruct01 *temp_r31; - u32 temp_r29; - s32 temp_r28; - s16 temp_r27; - GXColor *temp_r26; - if(particle->unk_34 == 0) { - temp_f31 = 90; - particle->unk_02 = 0; - particle->unk_10.y = 3; - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk2C = 0; - temp_r31->unk40.a = 0; - } - } - if(particle->unk_00) { - particle->unk_02--; - if(particle->unk_02 <= 0.0f) { - particle->unk_02 = 2; - temp_r27 = 4; - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk2C != 0) { - continue; - } - temp_r31->unk34.x = particle->unk_04.x; - temp_r31->unk34.y = particle->unk_04.y; - temp_r31->unk34.z = particle->unk_04.z; - temp_f30 = frandmod(360); - temp_r29 = frandmod(12); - temp_r29 += 4.0f; - temp_r31->unk34.x = temp_r31->unk34.x+(temp_r29*sind(temp_f30)); - temp_r31->unk34.z = temp_r31->unk34.z+(temp_r29*cosd(temp_f30)); - temp_r31->unk20 = 0; - temp_r31->unk24 = particle->unk_10.y; - temp_r29 = 1; - if(temp_r29 == 1) { - temp_r31->unk14.x = 0.97643f; - } else { - temp_r31->unk14.x = 0.96666664f; - } - temp_r31->unk00 = 60; - temp_r31->unk2C = 8; - temp_r29 = frand()&0x1; - temp_r26 = &lbl_1_data_4F4[temp_r29]; - temp_r31->unk40.r = temp_r26->r; - temp_r31->unk40.g = temp_r26->g; - temp_r31->unk40.b = temp_r26->b; - temp_r31->unk40.a = 0; - temp_r31->unk02 = temp_r29; - temp_r27--; - if(temp_r27 == 0) { - break; - } - } - } - } - temp_r27 = 0; - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk2C == 0) { - continue; - } - temp_r27++; - temp_r31->unk34.y -= 4.0f; - temp_f31 = 1.0+cosd(temp_r31->unk20); - temp_f31 *= 0.5f; - temp_r31->unk40.a = temp_f31*255; - temp_r31->unk20 += temp_r31->unk24; - temp_r31->unk30 = temp_r31->unk20; - temp_r31->unk2C *= temp_r31->unk14.x; - temp_r31->unk02 ^= 0x3; - if(temp_r31->unk02 & 0x1) { - temp_r31->unk40.b = 0; - temp_r31->unk40.g = 200; - } else { - temp_r31->unk40.b = 200; - temp_r31->unk40.g = 200; - } - if(temp_r31->unk02 & 0x2) { - temp_r29 = temp_r31->unk40.a+64; - if(temp_r29 > 255) { - temp_r29 -= 128; - } - temp_r31->unk40.a = temp_r29; - } - temp_r31->unk00_s16--; - if(temp_r31->unk00_s16 <= 0) { - temp_r31->unk2C = 0; - } - } - DCStoreRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - if(particle->unk_00 == 0 && temp_r27 == 0) { - model->attr |= 0x1; - } + float temp_f31; + float temp_f30; + HsfanimStruct01 *temp_r31; + u32 temp_r29; + s32 temp_r28; + s16 temp_r27; + GXColor *temp_r26; + if (particle->unk_34 == 0) { + temp_f31 = 90; + particle->unk_02 = 0; + particle->unk_10.y = 3; + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + } + } + if (particle->unk_00) { + particle->unk_02--; + if (particle->unk_02 <= 0.0f) { + particle->unk_02 = 2; + temp_r27 = 4; + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk2C != 0) { + continue; + } + temp_r31->unk34.x = particle->unk_04.x; + temp_r31->unk34.y = particle->unk_04.y; + temp_r31->unk34.z = particle->unk_04.z; + temp_f30 = frandmod(360); + temp_r29 = frandmod(12); + temp_r29 += 4.0f; + temp_r31->unk34.x = temp_r31->unk34.x + (temp_r29 * sind(temp_f30)); + temp_r31->unk34.z = temp_r31->unk34.z + (temp_r29 * cosd(temp_f30)); + temp_r31->unk20 = 0; + temp_r31->unk24 = particle->unk_10.y; + temp_r29 = 1; + if (temp_r29 == 1) { + temp_r31->unk14.x = 0.97643f; + } + else { + temp_r31->unk14.x = 0.96666664f; + } + temp_r31->unk00 = 60; + temp_r31->unk2C = 8; + temp_r29 = frand() & 0x1; + temp_r26 = &lbl_1_data_4F4[temp_r29]; + temp_r31->unk40.r = temp_r26->r; + temp_r31->unk40.g = temp_r26->g; + temp_r31->unk40.b = temp_r26->b; + temp_r31->unk40.a = 0; + temp_r31->unk02 = temp_r29; + temp_r27--; + if (temp_r27 == 0) { + break; + } + } + } + } + temp_r27 = 0; + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk2C == 0) { + continue; + } + temp_r27++; + temp_r31->unk34.y -= 4.0f; + temp_f31 = 1.0 + cosd(temp_r31->unk20); + temp_f31 *= 0.5f; + temp_r31->unk40.a = temp_f31 * 255; + temp_r31->unk20 += temp_r31->unk24; + temp_r31->unk30 = temp_r31->unk20; + temp_r31->unk2C *= temp_r31->unk14.x; + temp_r31->unk02 ^= 0x3; + if (temp_r31->unk02 & 0x1) { + temp_r31->unk40.b = 0; + temp_r31->unk40.g = 200; + } + else { + temp_r31->unk40.b = 200; + temp_r31->unk40.g = 200; + } + if (temp_r31->unk02 & 0x2) { + temp_r29 = temp_r31->unk40.a + 64; + if (temp_r29 > 255) { + temp_r29 -= 128; + } + temp_r31->unk40.a = temp_r29; + } + temp_r31->unk00_s16--; + if (temp_r31->unk00_s16 <= 0) { + temp_r31->unk2C = 0; + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + if (particle->unk_00 == 0 && temp_r27 == 0) { + model->attr |= 0x1; + } } void fn_1_15B50(s16 arg0) { - ParticleData *temp_r31; - HsfanimStruct01 *temp_r30; - s32 temp_r29; - ModelData *temp_r28 = &Hu3DData[arg0]; - temp_r31 = temp_r28->unk_120; - temp_r31->unk_34 = 0; - temp_r30 = temp_r31->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r30++) { - temp_r30->unk2C = 0; - } + ParticleData *temp_r31; + HsfanimStruct01 *temp_r30; + s32 temp_r29; + ModelData *temp_r28 = &Hu3DData[arg0]; + temp_r31 = temp_r28->unk_120; + temp_r31->unk_34 = 0; + temp_r30 = temp_r31->unk_48; + for (temp_r29 = 0; temp_r29 < temp_r31->unk_30; temp_r29++, temp_r30++) { + temp_r30->unk2C = 0; + } } void fn_1_15CA4(omObjData *object); @@ -1365,172 +1362,173 @@ void fn_1_15D64(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_15BCC(omObjData *object) { - s16 temp_r30; - s32 temp_r29; - omSetStatBit(object, 0x100); - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r30 = Hu3DParticleCreate(HuSprAnimReadFile(0x270019), 9); - object->model[temp_r29] = temp_r30; - Hu3DModelAttrSet(temp_r30, 1); - Hu3DModelLayerSet(temp_r30, 7); - Hu3DParticleColSet(temp_r30, 255, 255, 255); - Hu3DParticleHookSet(temp_r30, fn_1_15D64); - } - object->work[0] = -1; - object->func = fn_1_15CA4; + s16 temp_r30; + s32 temp_r29; + omSetStatBit(object, 0x100); + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r30 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x19)), 9); + object->model[temp_r29] = temp_r30; + Hu3DModelAttrSet(temp_r30, 1); + Hu3DModelLayerSet(temp_r30, 7); + Hu3DParticleColSet(temp_r30, 255, 255, 255); + Hu3DParticleHookSet(temp_r30, fn_1_15D64); + } + object->work[0] = -1; + object->func = fn_1_15CA4; } void fn_1_15CA4(omObjData *object) { - s32 temp_r31; - s16 temp_r29; - ModelData *temp_r28; - ParticleData *temp_r27; - temp_r31 = object->work[0]; - if(temp_r31 <= -1) { - return; - } - object->work[0] = -1; - temp_r29 = object->model[temp_r31]; - temp_r28 = &Hu3DData[temp_r29]; - temp_r27 = temp_r28->unk_120; - Hu3DModelAttrReset(temp_r29, 1); - Hu3DModelPosSet(temp_r29, lbl_1_bss_D6C[temp_r31].x, lbl_1_bss_D6C[temp_r31].y, lbl_1_bss_D6C[temp_r31].z); - temp_r27->unk_34 = 0; - + s32 temp_r31; + s16 temp_r29; + ModelData *temp_r28; + ParticleData *temp_r27; + temp_r31 = object->work[0]; + if (temp_r31 <= -1) { + return; + } + object->work[0] = -1; + temp_r29 = object->model[temp_r31]; + temp_r28 = &Hu3DData[temp_r29]; + temp_r27 = temp_r28->unk_120; + Hu3DModelAttrReset(temp_r29, 1); + Hu3DModelPosSet(temp_r29, lbl_1_bss_D6C[temp_r31].x, lbl_1_bss_D6C[temp_r31].y, lbl_1_bss_D6C[temp_r31].z); + temp_r27->unk_34 = 0; } void fn_1_15D64(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - u32 temp_r28; - s16 temp_r27; - s16 temp_r26; - if(particle->unk_34 == 0) { - temp_f31 = 72; - particle->unk_00 = 1; - particle->unk_02 = 0; - particle->unk_10.y = 22.5f; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk2C = 0; - temp_r31->unk40.a = 0; - } - } - if(particle->unk_00) { - particle->unk_00 = 0; - particle->unk_02--; - if(particle->unk_02 <= 0.0f) { - particle->unk_02 =30; - temp_r31 = particle->unk_48; - temp_r26 = -1; - temp_r27 = 0; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk2C != 0) { - continue; - } - if(temp_r27 <= 0) { - temp_r26++; - if(temp_r26 >= 3) { - break; - } - temp_f30 = lbl_1_data_514[temp_r26]; - temp_f28 = lbl_1_data_508[temp_r26]; - temp_f29 = lbl_1_data_520[temp_r26]; - temp_r27 = lbl_1_data_504[temp_r26]; - } - temp_r27--; - temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; - if(90.0f == temp_f29) { - temp_r31->unk08.z = 5; - temp_r31->unk08.x = temp_r31->unk08.y = 0; - } else { - temp_f31 = 5*cosd(temp_f29); - temp_r31->unk08.z = 5.0*sind(temp_f29); - temp_r31->unk08.x = temp_f31*sind(temp_f30); - temp_r31->unk08.y = temp_f31*cosd(temp_f30); - } - temp_r31->unk20 = 0; - temp_r31->unk24 = particle->unk_10.y; - temp_r28 = 1; - temp_r31->unk00 = 8; - temp_r31->unk2C = 10; - temp_r31->unk14.x = 1.125f; - temp_r28 = frand()&0x1; - temp_r31->unk02 = temp_r28; - temp_r31->unk40.r = 255; - temp_r31->unk40.g = 255; - temp_r31->unk40.b = 255; - temp_r31->unk40.a = 0; - if(temp_r28) { - temp_r31->unk40.b = 0; - temp_r31->unk40.g = 0; - } - temp_f30 += temp_f28; - } - } - } - temp_r27 = 0; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk2C == 0) { - continue; - } - temp_r27++; - VECAdd(&temp_r31->unk08, &temp_r31->unk34, &temp_r31->unk34); - temp_f31 = 1.0+cosd(temp_r31->unk20); - temp_f31 *= 0.45f; - temp_r31->unk40.a = temp_f31*255; - temp_r31->unk20 += temp_r31->unk24; - temp_r31->unk2C -= temp_r31->unk14.x; - temp_r31->unk02 ^= 0x3; - if(temp_r31->unk02 & 0x1) { - temp_r31->unk40.b = 0; - temp_r31->unk40.g = 100; - } else { - temp_r31->unk40.b = 0; - temp_r31->unk40.g = 200; - } - if(temp_r31->unk02 & 0x2) { - temp_r28 = temp_r31->unk40.a+64; - if(temp_r28 > 255) { - temp_r28 -= 128; - } - temp_r31->unk40.a = temp_r28; - } - temp_r31->unk00_s16--; - if(temp_r31->unk00_s16 <= 0) { - temp_r31->unk2C = 0; - } - } - DCStoreRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - if(particle->unk_00 == 0 && temp_r27 == 0) { - model->attr |= 0x1; - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + u32 temp_r28; + s16 temp_r27; + s16 temp_r26; + if (particle->unk_34 == 0) { + temp_f31 = 72; + particle->unk_00 = 1; + particle->unk_02 = 0; + particle->unk_10.y = 22.5f; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk2C = 0; + temp_r31->unk40.a = 0; + } + } + if (particle->unk_00) { + particle->unk_00 = 0; + particle->unk_02--; + if (particle->unk_02 <= 0.0f) { + particle->unk_02 = 30; + temp_r31 = particle->unk_48; + temp_r26 = -1; + temp_r27 = 0; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk2C != 0) { + continue; + } + if (temp_r27 <= 0) { + temp_r26++; + if (temp_r26 >= 3) { + break; + } + temp_f30 = lbl_1_data_514[temp_r26]; + temp_f28 = lbl_1_data_508[temp_r26]; + temp_f29 = lbl_1_data_520[temp_r26]; + temp_r27 = lbl_1_data_504[temp_r26]; + } + temp_r27--; + temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; + if (90.0f == temp_f29) { + temp_r31->unk08.z = 5; + temp_r31->unk08.x = temp_r31->unk08.y = 0; + } + else { + temp_f31 = 5 * cosd(temp_f29); + temp_r31->unk08.z = 5.0 * sind(temp_f29); + temp_r31->unk08.x = temp_f31 * sind(temp_f30); + temp_r31->unk08.y = temp_f31 * cosd(temp_f30); + } + temp_r31->unk20 = 0; + temp_r31->unk24 = particle->unk_10.y; + temp_r28 = 1; + temp_r31->unk00 = 8; + temp_r31->unk2C = 10; + temp_r31->unk14.x = 1.125f; + temp_r28 = frand() & 0x1; + temp_r31->unk02 = temp_r28; + temp_r31->unk40.r = 255; + temp_r31->unk40.g = 255; + temp_r31->unk40.b = 255; + temp_r31->unk40.a = 0; + if (temp_r28) { + temp_r31->unk40.b = 0; + temp_r31->unk40.g = 0; + } + temp_f30 += temp_f28; + } + } + } + temp_r27 = 0; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk2C == 0) { + continue; + } + temp_r27++; + VECAdd(&temp_r31->unk08, &temp_r31->unk34, &temp_r31->unk34); + temp_f31 = 1.0 + cosd(temp_r31->unk20); + temp_f31 *= 0.45f; + temp_r31->unk40.a = temp_f31 * 255; + temp_r31->unk20 += temp_r31->unk24; + temp_r31->unk2C -= temp_r31->unk14.x; + temp_r31->unk02 ^= 0x3; + if (temp_r31->unk02 & 0x1) { + temp_r31->unk40.b = 0; + temp_r31->unk40.g = 100; + } + else { + temp_r31->unk40.b = 0; + temp_r31->unk40.g = 200; + } + if (temp_r31->unk02 & 0x2) { + temp_r28 = temp_r31->unk40.a + 64; + if (temp_r28 > 255) { + temp_r28 -= 128; + } + temp_r31->unk40.a = temp_r28; + } + temp_r31->unk00_s16--; + if (temp_r31->unk00_s16 <= 0) { + temp_r31->unk2C = 0; + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + if (particle->unk_00 == 0 && temp_r27 == 0) { + model->attr |= 0x1; + } } s32 fn_1_162CC(Vec *arg0, Vec *arg1) { - Vec spC; - s32 temp_r31; - float temp_f31; - float temp_f30; - temp_f30 = 1000; - if(!lbl_1_bss_168) { - return 0; - } - for(temp_r31=0; temp_r31data = spC = HuMemDirectMallocNum(HEAP_SYSTEM, 436*sizeof(u16), MEMORY_DEFAULT_NUM); - lbl_1_bss_14C[0] = HuSprAnimRead(HuDataReadNum(0x270024, MEMORY_DEFAULT_NUM)); - lbl_1_bss_14C[1] = HuSprAnimRead(HuDataReadNum(0x270025, MEMORY_DEFAULT_NUM)); - lbl_1_bss_14C[2] = HuSprAnimRead(HuDataReadNum(0x270026, MEMORY_DEFAULT_NUM)); - lbl_1_bss_14C[4] = HuSprAnimRead(HuDataReadNum(0x270028, MEMORY_DEFAULT_NUM)); - lbl_1_bss_14C[3] = HuSprAnimRead(HuDataReadNum(0x270029, MEMORY_DEFAULT_NUM)); - object->model[0] = Hu3DModelCreateFile(0x27001A); - omSetSca(object, 0.1f, 0.1f, 0.1f); - temp_r31 = object->model[0]; - Hu3DModelLayerSet(temp_r31, 1); - Hu3DModelAttrSet(temp_r31, 1); - object->model[4] = Hu3DModelCreateFile(0x27001E); - temp_r31 = object->model[4]; - Hu3DModelLayerSet(temp_r31, 1); - Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); - Hu3DModelAttrSet(temp_r31, 1); - object->model[5] = Hu3DModelCreateFile(0x270020); - temp_r31 = object->model[5]; - Hu3DModelLayerSet(temp_r31, 1); - Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); - object->model[2] = Hu3DModelCreateFile(0x27001B); - temp_r31 = object->model[2]; - Hu3DModelLayerSet(temp_r31, 1); - Hu3DModelPosSet(temp_r31, -20, -10, -150); - Hu3DModelScaleSet(temp_r31, 0.14500001f, 0.14500001f, 0.14500001f); - Hu3DModelAttrSet(temp_r31, 1); - object->model[3] = Hu3DModelCreateFile(0x27001D); - temp_r31 = object->model[3]; - Hu3DModelPosSet(temp_r31, 0, -50, -500); - Hu3DModelScaleSet(temp_r31, 0.15f, 0.15f, 0.15f); - Hu3DModelLayerSet(temp_r31, 0); - Hu3DModelAttrSet(temp_r31, 1); - sp8 = fn_1_F4B0(temp_r31, temp_r31); - object->model[9] = Hu3DModelCreateFile(0x27001C); - temp_r31 = object->model[9]; - lbl_1_bss_148 = temp_r31; - Hu3DModelScaleSet(temp_r31, 0.11000001f, 0.1f, 0.11000001f); - Hu3DModelPosSet(temp_r31, 0, 10000, 0); - Hu3DModelLayerSet(temp_r31, 1); - Hu3DModelAttrSet(temp_r31, 1); - object->model[11] = Hu3DModelCreateFile(0x27001F); - temp_r31 = object->model[11]; - Hu3DModelPosSet(temp_r31, 0, 10000, 0); - Hu3DModelLayerSet(temp_r31, 1); - Hu3DModelScaleSet(temp_r31, 0.105f, 0.1f, 0.105f); - Hu3DModelAttrSet(temp_r31, 1); - object->model[12] = Hu3DModelCreateFile(0x270023); - temp_r31 = object->model[12]; - Hu3DModelLayerSet(temp_r31, 3); - Hu3DModelPosSet(temp_r31, 0, 5000, 0); - Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); - Hu3DModelAttrSet(temp_r31, 1); - Hu3DMotionSpeedSet(temp_r31, 0); - object->model[19] = temp_r31 = fn_1_D978(lbl_1_bss_14C[0], 80, fn_1_E310); - Hu3DModelLayerSet(temp_r31, 1); - Hu3DModelPosSet(temp_r31, 0, 5100, 0); - Hu3DParticleBlendModeSet(temp_r31, 1); - temp_r29 = ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_1C; - temp_r29[2] = 140; - object->model[14] = Hu3DModelCreateFile(0x270021); - object->model[15] = Hu3DModelCreateFile(0x270022); - object->model[16] = Hu3DModelCreateFile(0x270021); - object->model[17] = Hu3DModelCreateFile(0x270022); - for(temp_r28=0; temp_r28<4; temp_r28++) { - temp_r31 = object->model[temp_r28+14]; - Hu3DModelLayerSet(temp_r31, 3); - Hu3DModelRotSet(temp_r31, 0, frandmod(360), 0); - Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); - Hu3DModelAttrSet(temp_r31, 1); - Hu3DMotionSpeedSet(temp_r31, 0); - } - object->model[6] = temp_r31 = fn_1_D978(lbl_1_bss_14C[4], 1, fn_1_EEF8); - Hu3DModelPosSet(temp_r31, 0, 5000, 0); - Hu3DModelLayerSet(temp_r31, 3); - Hu3DModelAttrReset(temp_r31, 1); - Hu3DParticleBlendModeSet(temp_r31, 1); - temp_r29 = ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_1C; - temp_r29[1] = 800; - object->func = fn_1_CD14; + s32 temp_r31; + float *temp_r29; + s32 temp_r28; + + u16 *spC; + WorkF4B0 *sp8; + object->data = spC = HuMemDirectMallocNum(HEAP_SYSTEM, 436 * sizeof(u16), MEMORY_DEFAULT_NUM); + lbl_1_bss_14C[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M408, 0x24), MEMORY_DEFAULT_NUM)); + lbl_1_bss_14C[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M408, 0x25), MEMORY_DEFAULT_NUM)); + lbl_1_bss_14C[2] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M408, 0x26), MEMORY_DEFAULT_NUM)); + lbl_1_bss_14C[4] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M408, 0x28), MEMORY_DEFAULT_NUM)); + lbl_1_bss_14C[3] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M408, 0x29), MEMORY_DEFAULT_NUM)); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x1A)); + omSetSca(object, 0.1f, 0.1f, 0.1f); + temp_r31 = object->model[0]; + Hu3DModelLayerSet(temp_r31, 1); + Hu3DModelAttrSet(temp_r31, 1); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x1E)); + temp_r31 = object->model[4]; + Hu3DModelLayerSet(temp_r31, 1); + Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); + Hu3DModelAttrSet(temp_r31, 1); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x20)); + temp_r31 = object->model[5]; + Hu3DModelLayerSet(temp_r31, 1); + Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x1B)); + temp_r31 = object->model[2]; + Hu3DModelLayerSet(temp_r31, 1); + Hu3DModelPosSet(temp_r31, -20, -10, -150); + Hu3DModelScaleSet(temp_r31, 0.14500001f, 0.14500001f, 0.14500001f); + Hu3DModelAttrSet(temp_r31, 1); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x1D)); + temp_r31 = object->model[3]; + Hu3DModelPosSet(temp_r31, 0, -50, -500); + Hu3DModelScaleSet(temp_r31, 0.15f, 0.15f, 0.15f); + Hu3DModelLayerSet(temp_r31, 0); + Hu3DModelAttrSet(temp_r31, 1); + sp8 = fn_1_F4B0(temp_r31, temp_r31); + object->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x1C)); + temp_r31 = object->model[9]; + lbl_1_bss_148 = temp_r31; + Hu3DModelScaleSet(temp_r31, 0.11000001f, 0.1f, 0.11000001f); + Hu3DModelPosSet(temp_r31, 0, 10000, 0); + Hu3DModelLayerSet(temp_r31, 1); + Hu3DModelAttrSet(temp_r31, 1); + object->model[11] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x1F)); + temp_r31 = object->model[11]; + Hu3DModelPosSet(temp_r31, 0, 10000, 0); + Hu3DModelLayerSet(temp_r31, 1); + Hu3DModelScaleSet(temp_r31, 0.105f, 0.1f, 0.105f); + Hu3DModelAttrSet(temp_r31, 1); + object->model[12] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x23)); + temp_r31 = object->model[12]; + Hu3DModelLayerSet(temp_r31, 3); + Hu3DModelPosSet(temp_r31, 0, 5000, 0); + Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); + Hu3DModelAttrSet(temp_r31, 1); + Hu3DMotionSpeedSet(temp_r31, 0); + object->model[19] = temp_r31 = fn_1_D978(lbl_1_bss_14C[0], 80, fn_1_E310); + Hu3DModelLayerSet(temp_r31, 1); + Hu3DModelPosSet(temp_r31, 0, 5100, 0); + Hu3DParticleBlendModeSet(temp_r31, 1); + temp_r29 = ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_1C; + temp_r29[2] = 140; + object->model[14] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x21)); + object->model[15] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x22)); + object->model[16] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x21)); + object->model[17] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x22)); + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + temp_r31 = object->model[temp_r28 + 14]; + Hu3DModelLayerSet(temp_r31, 3); + Hu3DModelRotSet(temp_r31, 0, frandmod(360), 0); + Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); + Hu3DModelAttrSet(temp_r31, 1); + Hu3DMotionSpeedSet(temp_r31, 0); + } + object->model[6] = temp_r31 = fn_1_D978(lbl_1_bss_14C[4], 1, fn_1_EEF8); + Hu3DModelPosSet(temp_r31, 0, 5000, 0); + Hu3DModelLayerSet(temp_r31, 3); + Hu3DModelAttrReset(temp_r31, 1); + Hu3DParticleBlendModeSet(temp_r31, 1); + temp_r29 = ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_1C; + temp_r29[1] = 800; + object->func = fn_1_CD14; } void fn_1_D004(omObjData *object); void fn_1_CD14(omObjData *object) { - u16 *temp_r30; - u32 temp_r29; - temp_r29 = fn_1_6878(); - temp_r30 = object->data; - switch(temp_r29) { - case 1: - temp_r30[0] = 2; - temp_r30[1] = 0; - lbl_1_bss_140 = 1; - break; - - case 2: - case 3: - fn_1_D004(object); - temp_r30[1]++; - break; - - case 4: - Hu3DModelScaleSet(object->model[2], 0.16000001f, 0.16000001f, 0.16000001f); - Hu3DModelShadowMapSet(object->model[0]); - Hu3DModelShadowSet(object->model[4]); - break; - - default: - break; - } - if(temp_r29 > 3) { - if(lbl_1_bss_134 >= 0) { - HuAudFXStop(lbl_1_bss_134); - lbl_1_bss_134 = -1; - } - if(lbl_1_bss_130 >= 0) { - HuAudFXStop(lbl_1_bss_130); - lbl_1_bss_130 = -1; - } - } + u16 *temp_r30; + u32 temp_r29; + temp_r29 = fn_1_6878(); + temp_r30 = object->data; + switch (temp_r29) { + case 1: + temp_r30[0] = 2; + temp_r30[1] = 0; + lbl_1_bss_140 = 1; + break; + + case 2: + case 3: + fn_1_D004(object); + temp_r30[1]++; + break; + + case 4: + Hu3DModelScaleSet(object->model[2], 0.16000001f, 0.16000001f, 0.16000001f); + Hu3DModelShadowMapSet(object->model[0]); + Hu3DModelShadowSet(object->model[4]); + break; + + default: + break; + } + if (temp_r29 > 3) { + if (lbl_1_bss_134 >= 0) { + HuAudFXStop(lbl_1_bss_134); + lbl_1_bss_134 = -1; + } + if (lbl_1_bss_130 >= 0) { + HuAudFXStop(lbl_1_bss_130); + lbl_1_bss_130 = -1; + } + } } s32 fn_1_CE68(void) { - switch(lbl_1_bss_140) { - case 0: - return 0; - - case 1: - if(lbl_1_bss_144) { - return 2; - } else { - return 1; - } - break; - - case 2: - if(lbl_1_bss_144) { - return 3; - } else { - return 4; - } - break; - } + switch (lbl_1_bss_140) { + case 0: + return 0; + + case 1: + if (lbl_1_bss_144) { + return 2; + } + else { + return 1; + } + break; + + case 2: + if (lbl_1_bss_144) { + return 3; + } + else { + return 4; + } + break; + } } void fn_1_CEEC(void) { - omObjData *temp_r31; - s32 temp_r30; - temp_r31 = lbl_1_bss_13C; - if(lbl_1_bss_140 >= 2) { - return; - } - lbl_1_bss_140 = 2; - Hu3DModelAttrSet(temp_r31->model[5], 1); - Hu3DModelAttrSet(temp_r31->model[9], 1); - Hu3DModelAttrSet(temp_r31->model[11], 1); - Hu3DModelAttrSet(temp_r31->model[12], 1); - Hu3DModelAttrSet(temp_r31->model[19], 1); - for(temp_r30=0; temp_r30<4; temp_r30++) { - Hu3DModelAttrSet(temp_r31->model[temp_r30+14], 1); - } - Hu3DModelAttrReset(temp_r31->model[0], 1); - Hu3DModelAttrReset(temp_r31->model[4], 1); - Hu3DModelAttrReset(temp_r31->model[2], 1); - Hu3DModelAttrReset(temp_r31->model[3], 1); + omObjData *temp_r31; + s32 temp_r30; + temp_r31 = lbl_1_bss_13C; + if (lbl_1_bss_140 >= 2) { + return; + } + lbl_1_bss_140 = 2; + Hu3DModelAttrSet(temp_r31->model[5], 1); + Hu3DModelAttrSet(temp_r31->model[9], 1); + Hu3DModelAttrSet(temp_r31->model[11], 1); + Hu3DModelAttrSet(temp_r31->model[12], 1); + Hu3DModelAttrSet(temp_r31->model[19], 1); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + Hu3DModelAttrSet(temp_r31->model[temp_r30 + 14], 1); + } + Hu3DModelAttrReset(temp_r31->model[0], 1); + Hu3DModelAttrReset(temp_r31->model[4], 1); + Hu3DModelAttrReset(temp_r31->model[2], 1); + Hu3DModelAttrReset(temp_r31->model[3], 1); } void fn_1_D6F0(omObjData *object); void fn_1_D004(omObjData *object) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - u16 *temp_r30; - float *temp_r28; - s32 temp_r27; - s32 temp_r26; - CameraData *sp8; - temp_r30 = object->data; - sp8 = &Hu3DCamera[0]; - temp_f30 = fn_1_6888(); - temp_f28 = 7000; - switch(temp_r30[0]) { - case 2: - Hu3DModelAttrReset(object->model[9], 1); - Hu3DModelAttrReset(object->model[11], 1); - Hu3DModelAttrReset(object->model[12], 1); - Hu3DModelAttrReset(object->model[19], 1); - for(temp_r26=0; temp_r26<4; temp_r26++) { - Hu3DModelAttrReset(object->model[temp_r26+14], 1); - } - Hu3DModelAttrReset(object->model[6], 1); - if(lbl_1_bss_134 < 0) { - lbl_1_bss_134 = HuAudFXPlay(1363); - } - temp_r30[2] = 0; - temp_r30[0]++; - - case 3: - temp_f31 = temp_r30[1]*0.25f; - Hu3DModelRotSet(object->model[9], 0, 0.7f*-temp_f31, 0); - Hu3DModelRotSet(object->model[11], 0, 1.3f*temp_f31, 0); - Hu3DModelRotSet(object->model[12], 0, 3.7f*temp_f31, 0); - temp_f29 = 1.0f-((temp_f30-5000)/15000); - Hu3DMotionTimeSet(object->model[12], 95.0f*temp_f29); - temp_r27 = object->model[6]; - temp_r28 = ((ParticleData *)Hu3DData[temp_r27].unk_120)->unk_1C; - temp_r28[2] = 1.0f-((temp_f30-5000)/(temp_f28-5000)); - if(temp_f30 <= 5400 && temp_r30[2] == 0) { - temp_r30[2] = 30; - if(!lbl_1_bss_40) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, temp_r30[2]); - lbl_1_bss_44 = 1; - } - lbl_1_bss_144 = 1; - temp_r30[0]++; - } - if(temp_f30 <= 4800) { - temp_r28[1] = 1200; - temp_r30[0]++; - } - fn_1_D6F0(object); - break; - - case 4: - if(temp_r30[2]-- == 0) { - if(!lbl_1_bss_40) { - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - lbl_1_bss_44 = 0; - } - if(lbl_1_bss_138 < 0) { - lbl_1_bss_138 = HuAudFXPlay(1357); - } - fn_1_CEEC(); - if(lbl_1_bss_134 >= 0) { - HuAudFXStop(lbl_1_bss_134); - lbl_1_bss_134 = -1; - } - if(lbl_1_bss_130 < 0) { - lbl_1_bss_130 = HuAudFXPlay(1361); - } - temp_r30[0]++; - } - - break; - - case 5: - if(!WipeStatGet()) { - lbl_1_bss_144 = 0; - } - temp_r27 = object->model[6]; - if(temp_r27 != 0) { - Hu3DModelPosSet(temp_r27, 0, 200+temp_f30, 0); - temp_r28 = ((ParticleData *)Hu3DData[temp_r27].unk_120)->unk_1C; - temp_r28[2] -= 0.025f; - if(temp_r28[2] <= 0) { - Hu3DModelAttrReset(temp_r27, 0x20); - Hu3DModelKill(temp_r27); - object->model[6] = 0; - } - } - temp_f31 = temp_r30[1]%360; - temp_f31 = 0.1f*(1.4f+((0.2f*temp_f30)/5000)); - Hu3DModelScaleSet(object->model[2], temp_f31, temp_f31, temp_f31); - break; - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + u16 *temp_r30; + float *temp_r28; + s32 temp_r27; + s32 temp_r26; + CameraData *sp8; + temp_r30 = object->data; + sp8 = &Hu3DCamera[0]; + temp_f30 = fn_1_6888(); + temp_f28 = 7000; + switch (temp_r30[0]) { + case 2: + Hu3DModelAttrReset(object->model[9], 1); + Hu3DModelAttrReset(object->model[11], 1); + Hu3DModelAttrReset(object->model[12], 1); + Hu3DModelAttrReset(object->model[19], 1); + for (temp_r26 = 0; temp_r26 < 4; temp_r26++) { + Hu3DModelAttrReset(object->model[temp_r26 + 14], 1); + } + Hu3DModelAttrReset(object->model[6], 1); + if (lbl_1_bss_134 < 0) { + lbl_1_bss_134 = HuAudFXPlay(1363); + } + temp_r30[2] = 0; + temp_r30[0]++; + + case 3: + temp_f31 = temp_r30[1] * 0.25f; + Hu3DModelRotSet(object->model[9], 0, 0.7f * -temp_f31, 0); + Hu3DModelRotSet(object->model[11], 0, 1.3f * temp_f31, 0); + Hu3DModelRotSet(object->model[12], 0, 3.7f * temp_f31, 0); + temp_f29 = 1.0f - ((temp_f30 - 5000) / 15000); + Hu3DMotionTimeSet(object->model[12], 95.0f * temp_f29); + temp_r27 = object->model[6]; + temp_r28 = ((ParticleData *)Hu3DData[temp_r27].unk_120)->unk_1C; + temp_r28[2] = 1.0f - ((temp_f30 - 5000) / (temp_f28 - 5000)); + if (temp_f30 <= 5400 && temp_r30[2] == 0) { + temp_r30[2] = 30; + if (!lbl_1_bss_40) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, temp_r30[2]); + lbl_1_bss_44 = 1; + } + lbl_1_bss_144 = 1; + temp_r30[0]++; + } + if (temp_f30 <= 4800) { + temp_r28[1] = 1200; + temp_r30[0]++; + } + fn_1_D6F0(object); + break; + + case 4: + if (temp_r30[2]-- == 0) { + if (!lbl_1_bss_40) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + lbl_1_bss_44 = 0; + } + if (lbl_1_bss_138 < 0) { + lbl_1_bss_138 = HuAudFXPlay(1357); + } + fn_1_CEEC(); + if (lbl_1_bss_134 >= 0) { + HuAudFXStop(lbl_1_bss_134); + lbl_1_bss_134 = -1; + } + if (lbl_1_bss_130 < 0) { + lbl_1_bss_130 = HuAudFXPlay(1361); + } + temp_r30[0]++; + } + + break; + + case 5: + if (!WipeStatGet()) { + lbl_1_bss_144 = 0; + } + temp_r27 = object->model[6]; + if (temp_r27 != 0) { + Hu3DModelPosSet(temp_r27, 0, 200 + temp_f30, 0); + temp_r28 = ((ParticleData *)Hu3DData[temp_r27].unk_120)->unk_1C; + temp_r28[2] -= 0.025f; + if (temp_r28[2] <= 0) { + Hu3DModelAttrReset(temp_r27, 0x20); + Hu3DModelKill(temp_r27); + object->model[6] = 0; + } + } + temp_f31 = temp_r30[1] % 360; + temp_f31 = 0.1f * (1.4f + ((0.2f * temp_f30) / 5000)); + Hu3DModelScaleSet(object->model[2], temp_f31, temp_f31, temp_f31); + break; + } } void fn_1_D6F0(omObjData *object) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - s32 temp_r31; - s32 temp_r30; - s32 temp_r29; - temp_f28 = fn_1_6888()-1500; - temp_f29 = 500.0f*(int)(temp_f28/500.0f); - temp_r30 = (int)(temp_f28/500.0f)%4; - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r29 = object->model[temp_r30+14]; - Hu3DModelPosSet(temp_r29, 0, temp_f29, 0); - temp_f31 = temp_f29-temp_f28; - temp_f30 = 0; - if(temp_f31 > -250.0f && temp_f31 < 1525.0f) { - temp_f30 = 45; - if(temp_f31 < 0.0f) { - temp_f31 -= -250.0f; - temp_f30 *= fabs(temp_f31/250.0f); - } else { - if(temp_f31 > 1425) { - temp_f31 -= 1425; - temp_f30 *= 1.0-fabs(temp_f31/100.0f); - } - } - } - Hu3DMotionTimeSet(temp_r29, temp_f30); - temp_f29 += 500.0f; - temp_r30 = (temp_r30+1)%4; - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + s32 temp_r31; + s32 temp_r30; + s32 temp_r29; + temp_f28 = fn_1_6888() - 1500; + temp_f29 = 500.0f * (int)(temp_f28 / 500.0f); + temp_r30 = (int)(temp_f28 / 500.0f) % 4; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r29 = object->model[temp_r30 + 14]; + Hu3DModelPosSet(temp_r29, 0, temp_f29, 0); + temp_f31 = temp_f29 - temp_f28; + temp_f30 = 0; + if (temp_f31 > -250.0f && temp_f31 < 1525.0f) { + temp_f30 = 45; + if (temp_f31 < 0.0f) { + temp_f31 -= -250.0f; + temp_f30 *= fabs(temp_f31 / 250.0f); + } + else { + if (temp_f31 > 1425) { + temp_f31 -= 1425; + temp_f30 *= 1.0 - fabs(temp_f31 / 100.0f); + } + } + } + Hu3DMotionTimeSet(temp_r29, temp_f30); + temp_f29 += 500.0f; + temp_r30 = (temp_r30 + 1) % 4; + } } s16 fn_1_D978(AnimData *arg0, s16 arg1, ParticleHook arg2) { - s32 temp_r31; - HsfanimStruct01 *temp_r30; - ParticleData *temp_r29; - s32 temp_r28; - HsfanimStruct01 *temp_r27; - temp_r28 = Hu3DParticleCreate(arg0, arg1); - Hu3DParticleHookSet(temp_r28, arg2); - Hu3DModelAttrSet(temp_r28, 1); - temp_r29 = Hu3DData[temp_r28].unk_120; - temp_r27 = temp_r29->unk_48; - for(temp_r31=0; temp_r31unk_30; temp_r31++, temp_r27++) { - temp_r27->unk2C = 0; - } - temp_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(HsfanimStruct01), MEMORY_DEFAULT_NUM); - temp_r29->unk_1C = temp_r30; - temp_r30->unk00_s16 = temp_r28; - temp_r30->unk02 = 0; - for(temp_r31=0; temp_r31<32; temp_r31++) { - //Ugly expression to match store without new type - *((s16 *)(((u8 *)temp_r30)+(temp_r31*2)+4)) = 0; - } - return temp_r28; + s32 temp_r31; + HsfanimStruct01 *temp_r30; + ParticleData *temp_r29; + s32 temp_r28; + HsfanimStruct01 *temp_r27; + temp_r28 = Hu3DParticleCreate(arg0, arg1); + Hu3DParticleHookSet(temp_r28, arg2); + Hu3DModelAttrSet(temp_r28, 1); + temp_r29 = Hu3DData[temp_r28].unk_120; + temp_r27 = temp_r29->unk_48; + for (temp_r31 = 0; temp_r31 < temp_r29->unk_30; temp_r31++, temp_r27++) { + temp_r27->unk2C = 0; + } + temp_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(HsfanimStruct01), MEMORY_DEFAULT_NUM); + temp_r29->unk_1C = temp_r30; + temp_r30->unk00_s16 = temp_r28; + temp_r30->unk02 = 0; + for (temp_r31 = 0; temp_r31 < 32; temp_r31++) { + // Ugly expression to match store without new type + *((s16 *)(((u8 *)temp_r30) + (temp_r31 * 2) + 4)) = 0; + } + return temp_r28; } void fn_1_DA6C(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - - HsfanimStruct01 *temp_r31; - ParticleData *temp_r29; - s32 temp_r28; - s32 temp_r27; - s16 temp_r26; - temp_r29 = particle->unk_1C; - switch(temp_r29->unk_02) { - case 0: - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00 = 0; - } - particle->unk_00 = 0; - temp_r29->unk_02++; - temp_r29->unk_04.y = 3; - temp_r29->unk_04.z = 25; - break; - - case 1: - for(temp_r28=0; temp_r28<100; temp_r28++) { - temp_r31 = particle->unk_48; - for(temp_r27=0; temp_r27unk_30; temp_r27++, temp_r31++) { - if(!temp_r31->unk00_s16) { - break; - } - } - if(temp_r27 == particle->unk_30) { - temp_r29->unk_02++; - break; - } - temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; - temp_r26 = fn_1_11670()%360; - temp_r31->unk08.x = sind(temp_r26); - temp_r31->unk08.y = -6.0+(2.0*temp_r29->unk_10.x); - temp_r31->unk08.z = cosd(temp_r26); - temp_r31->unk14.x = ((fn_1_11670() & 0x7)+temp_r29->unk_04.z)-4.0f; - temp_r31->unk14.x *= 0.1f; - temp_f31 = temp_r29->unk_04.y+(0.01*(float)(fn_1_11670()%400)); - temp_f31 *= 0.1f; - temp_r31->unk34.x = temp_f31*temp_r31->unk08.x; - temp_r31->unk34.y = 0; - temp_r31->unk34.z = temp_f31*temp_r31->unk08.z; - temp_r31->unk2C = (0.01*(frand()%2000))+30.0; - temp_r31->unk2C *= 0.1f; - temp_r31->unk40.a = 255; - temp_r31->unk00_s16 = 30; - } - break; - } - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk00_s16 == 0) { - continue; - } - temp_f30 = temp_r31->unk14.x; - temp_r31->unk34.x += temp_r31->unk08.x*temp_f30; - temp_r31->unk34.y += temp_r31->unk08.y; - temp_r31->unk34.z += temp_r31->unk08.z*temp_f30; - temp_r31->unk2C *= 1.025f; - temp_r31->unk40.a *= 0.95f; - temp_r31->unk40.a--; - temp_r31->unk14.x *= 0.8f; - temp_r31->unk08.y *= 0.85f; - temp_r31->unk08.y += 0.1f; - if(temp_r31->unk40.a < 2) { - temp_r31->unk40.a = 0; - temp_r31->unk00_s16 = 0; - particle->unk_00++; - } - } - DCFlushRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - if(particle->unk_00 >= particle->unk_30 && temp_r29->unk_02 == 2) { - temp_r29->unk_02 = 0; - Hu3DModelAttrReset(temp_r29->unk_00, 0x20); - Hu3DModelKill(temp_r29->unk_00); - } + float temp_f31; + float temp_f30; + + HsfanimStruct01 *temp_r31; + ParticleData *temp_r29; + s32 temp_r28; + s32 temp_r27; + s16 temp_r26; + temp_r29 = particle->unk_1C; + switch (temp_r29->unk_02) { + case 0: + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk00 = 0; + } + particle->unk_00 = 0; + temp_r29->unk_02++; + temp_r29->unk_04.y = 3; + temp_r29->unk_04.z = 25; + break; + + case 1: + for (temp_r28 = 0; temp_r28 < 100; temp_r28++) { + temp_r31 = particle->unk_48; + for (temp_r27 = 0; temp_r27 < particle->unk_30; temp_r27++, temp_r31++) { + if (!temp_r31->unk00_s16) { + break; + } + } + if (temp_r27 == particle->unk_30) { + temp_r29->unk_02++; + break; + } + temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; + temp_r26 = fn_1_11670() % 360; + temp_r31->unk08.x = sind(temp_r26); + temp_r31->unk08.y = -6.0 + (2.0 * temp_r29->unk_10.x); + temp_r31->unk08.z = cosd(temp_r26); + temp_r31->unk14.x = ((fn_1_11670() & 0x7) + temp_r29->unk_04.z) - 4.0f; + temp_r31->unk14.x *= 0.1f; + temp_f31 = temp_r29->unk_04.y + (0.01 * (float)(fn_1_11670() % 400)); + temp_f31 *= 0.1f; + temp_r31->unk34.x = temp_f31 * temp_r31->unk08.x; + temp_r31->unk34.y = 0; + temp_r31->unk34.z = temp_f31 * temp_r31->unk08.z; + temp_r31->unk2C = (0.01 * (frand() % 2000)) + 30.0; + temp_r31->unk2C *= 0.1f; + temp_r31->unk40.a = 255; + temp_r31->unk00_s16 = 30; + } + break; + } + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk00_s16 == 0) { + continue; + } + temp_f30 = temp_r31->unk14.x; + temp_r31->unk34.x += temp_r31->unk08.x * temp_f30; + temp_r31->unk34.y += temp_r31->unk08.y; + temp_r31->unk34.z += temp_r31->unk08.z * temp_f30; + temp_r31->unk2C *= 1.025f; + temp_r31->unk40.a *= 0.95f; + temp_r31->unk40.a--; + temp_r31->unk14.x *= 0.8f; + temp_r31->unk08.y *= 0.85f; + temp_r31->unk08.y += 0.1f; + if (temp_r31->unk40.a < 2) { + temp_r31->unk40.a = 0; + temp_r31->unk00_s16 = 0; + particle->unk_00++; + } + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + if (particle->unk_00 >= particle->unk_30 && temp_r29->unk_02 == 2) { + temp_r29->unk_02 = 0; + Hu3DModelAttrReset(temp_r29->unk_00, 0x20); + Hu3DModelKill(temp_r29->unk_00); + } } void fn_1_DFD0(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - HsfanimStruct01 *temp_r31; - ParticleData *temp_r30; - s32 temp_r28; - s16 temp_r27; - s32 temp_r26; - temp_r30 = particle->unk_1C; - switch(temp_r30->unk_02) { - case 0: - temp_r31 = particle->unk_48; - temp_r30->unk_04.x = 10; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; - temp_r27 = fn_1_11670()%360; - temp_r31->unk08.x = sind(temp_r27); - temp_r31->unk08.y = 0; - temp_r31->unk08.z = cosd(temp_r27); - temp_f31 = temp_r30->unk_04.x+(temp_r30->unk_04.x*((1.0/65536.0)*(float)fn_1_11670())); - temp_r31->unk34.x = temp_f31*temp_r31->unk08.x; - temp_r31->unk34.y = -(100.0*((1.0/65536.0)*(float)fn_1_11670())); - temp_r31->unk34.z = temp_f31*temp_r31->unk08.z; - temp_r31->unk2C = (0.01*(frand()%2000))+40.0; - temp_r26 = frand()&0x2F; - temp_r31->unk40.r = temp_r26+208; - temp_r31->unk40.g = temp_r26+208; - temp_r31->unk40.a = (frand()&0x5F)+32; - } - temp_r30->unk_02++; - particle->unk_00 = 60; - break; - - case 1: - if(--particle->unk_00 == 0) { - Hu3DModelAttrReset(temp_r30->unk_00, 0x20); - Hu3DModelKill(temp_r30->unk_00); - return; - } - break; - } - DCFlushRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + float temp_f31; + HsfanimStruct01 *temp_r31; + ParticleData *temp_r30; + s32 temp_r28; + s16 temp_r27; + s32 temp_r26; + temp_r30 = particle->unk_1C; + switch (temp_r30->unk_02) { + case 0: + temp_r31 = particle->unk_48; + temp_r30->unk_04.x = 10; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; + temp_r27 = fn_1_11670() % 360; + temp_r31->unk08.x = sind(temp_r27); + temp_r31->unk08.y = 0; + temp_r31->unk08.z = cosd(temp_r27); + temp_f31 = temp_r30->unk_04.x + (temp_r30->unk_04.x * ((1.0 / 65536.0) * (float)fn_1_11670())); + temp_r31->unk34.x = temp_f31 * temp_r31->unk08.x; + temp_r31->unk34.y = -(100.0 * ((1.0 / 65536.0) * (float)fn_1_11670())); + temp_r31->unk34.z = temp_f31 * temp_r31->unk08.z; + temp_r31->unk2C = (0.01 * (frand() % 2000)) + 40.0; + temp_r26 = frand() & 0x2F; + temp_r31->unk40.r = temp_r26 + 208; + temp_r31->unk40.g = temp_r26 + 208; + temp_r31->unk40.a = (frand() & 0x5F) + 32; + } + temp_r30->unk_02++; + particle->unk_00 = 60; + break; + + case 1: + if (--particle->unk_00 == 0) { + Hu3DModelAttrReset(temp_r30->unk_00, 0x20); + Hu3DModelKill(temp_r30->unk_00); + return; + } + break; + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_E310(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - - HsfanimStruct01 *temp_r31; - ParticleData *temp_r29; - s32 temp_r28; - s32 temp_r27; - s16 temp_r26; - temp_r29 = particle->unk_1C; - switch(temp_r29->unk_02) { - case 0: - temp_r31 = particle->unk_48; - temp_f30 = 360.0f/particle->unk_30; - - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 = (s32)(360.0*((1.0/65536.0)*(float)fn_1_11670())); - temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; - temp_r26 = (temp_f30*temp_r28)+(int)((temp_f30*0.5f)*((1.0/32768.0)*(float)(fn_1_11670()-32768))); - temp_r31->unk20 = temp_r26; - temp_r31->unk30 = (M_PI*(temp_r26+90.0f))/180.0; - temp_r31->unk08.x = sind(temp_r26); - temp_r31->unk08.y = 0; - temp_r31->unk08.z = cosd(temp_r26); - temp_f31 = temp_r29->unk_04.y+((0.25f*temp_r29->unk_04.y)*((1.0/65536.0)*(float)fn_1_11670())); - temp_r31->unk14.x = temp_f31*temp_r31->unk08.x; - temp_r31->unk14.y = 120.0*((1.0/32768.0)*(float)(fn_1_11670()-32768)); - temp_r31->unk14.z = temp_f31*temp_r31->unk08.z; - temp_r31->unk24 = temp_r31->unk2C = (0.01*(frand()%2000))+160; - if(particle->unk_2C == 1) { - temp_r27 = frand()&0x2F; - temp_r31->unk40.r = temp_r27+32; - temp_r31->unk40.g = temp_r27+32; - temp_r31->unk40.b = 64+temp_r27+((int)(((46-temp_r27)*((1.0/65536.0)*(float)fn_1_11670())))); - temp_r31->unk40.a = (frand()&0x2F)+32; - } else { - temp_r27 = frand()&0x2F; - temp_r31->unk40.r = temp_r27+208; - temp_r31->unk40.g = temp_r27+208; - temp_r31->unk40.a = (frand()&0x4F)+176; - } - } - temp_r29->unk_02++; - - case 1: - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 += 4; - if(temp_r31->unk00_s16 >= 360) { - temp_r31->unk00_s16 -= 360; - } - temp_r31->unk34.x = temp_r31->unk14.x; - temp_r31->unk34.y = temp_r31->unk14.y; - temp_r31->unk34.z = temp_r31->unk14.z; - temp_r31->unk30 = M_PI*(90+(temp_r31->unk20+temp_r29->unk_04.z))/180; - temp_r31->unk2C = temp_r31->unk24*((0.1f*sind(temp_r31->unk00_s16))+1.0); - } - break; - } - DCFlushRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + float temp_f31; + float temp_f30; + + HsfanimStruct01 *temp_r31; + ParticleData *temp_r29; + s32 temp_r28; + s32 temp_r27; + s16 temp_r26; + temp_r29 = particle->unk_1C; + switch (temp_r29->unk_02) { + case 0: + temp_r31 = particle->unk_48; + temp_f30 = 360.0f / particle->unk_30; + + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk00_s16 = (s32)(360.0 * ((1.0 / 65536.0) * (float)fn_1_11670())); + temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; + temp_r26 = (temp_f30 * temp_r28) + (int)((temp_f30 * 0.5f) * ((1.0 / 32768.0) * (float)(fn_1_11670() - 32768))); + temp_r31->unk20 = temp_r26; + temp_r31->unk30 = (M_PI * (temp_r26 + 90.0f)) / 180.0; + temp_r31->unk08.x = sind(temp_r26); + temp_r31->unk08.y = 0; + temp_r31->unk08.z = cosd(temp_r26); + temp_f31 = temp_r29->unk_04.y + ((0.25f * temp_r29->unk_04.y) * ((1.0 / 65536.0) * (float)fn_1_11670())); + temp_r31->unk14.x = temp_f31 * temp_r31->unk08.x; + temp_r31->unk14.y = 120.0 * ((1.0 / 32768.0) * (float)(fn_1_11670() - 32768)); + temp_r31->unk14.z = temp_f31 * temp_r31->unk08.z; + temp_r31->unk24 = temp_r31->unk2C = (0.01 * (frand() % 2000)) + 160; + if (particle->unk_2C == 1) { + temp_r27 = frand() & 0x2F; + temp_r31->unk40.r = temp_r27 + 32; + temp_r31->unk40.g = temp_r27 + 32; + temp_r31->unk40.b = 64 + temp_r27 + ((int)(((46 - temp_r27) * ((1.0 / 65536.0) * (float)fn_1_11670())))); + temp_r31->unk40.a = (frand() & 0x2F) + 32; + } + else { + temp_r27 = frand() & 0x2F; + temp_r31->unk40.r = temp_r27 + 208; + temp_r31->unk40.g = temp_r27 + 208; + temp_r31->unk40.a = (frand() & 0x4F) + 176; + } + } + temp_r29->unk_02++; + + case 1: + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk00_s16 += 4; + if (temp_r31->unk00_s16 >= 360) { + temp_r31->unk00_s16 -= 360; + } + temp_r31->unk34.x = temp_r31->unk14.x; + temp_r31->unk34.y = temp_r31->unk14.y; + temp_r31->unk34.z = temp_r31->unk14.z; + temp_r31->unk30 = M_PI * (90 + (temp_r31->unk20 + temp_r29->unk_04.z)) / 180; + temp_r31->unk2C = temp_r31->unk24 * ((0.1f * sind(temp_r31->unk00_s16)) + 1.0); + } + break; + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_E9B4(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f30; - float temp_f31; - HsfanimStruct01 *temp_r31; - ParticleData *temp_r30; - s32 temp_r28; - s16 temp_r27; - s32 temp_r26; - temp_r30 = particle->unk_1C; - switch(temp_r30->unk_02) { - case 0: - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 = fn_1_11670()%360; - temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; - temp_r27 = fn_1_11670()%360; - temp_r31->unk20 = temp_r27; - temp_r31->unk08.x = sind(temp_r27); - temp_r31->unk08.y = 0; - temp_r31->unk08.z = cosd(temp_r27); - temp_f31 = temp_r30->unk_04.x+(0.01*((30.0f*temp_r30->unk_04.x)*((1.0/65536.0)*(float)fn_1_11670()))); - temp_f30 = (0.15f+(0.3f*((1.0/65536.0)*(float)fn_1_11670()))); - temp_r31->unk14.x = temp_f31*temp_r31->unk08.x; - temp_r31->unk14.y = 50*((1.0/32768.0)*(float)(fn_1_11670()-32768)); - temp_r31->unk14.z = temp_f31*temp_r31->unk08.z*temp_f30; - temp_r31->unk24 = temp_r31->unk2C = temp_r30->unk_04.x+(0.01*((50.0f*temp_r30->unk_04.x)*((1.0/65536.0)*(float)fn_1_11670()))); - temp_r26 = frand()&0x7F; - temp_r31->unk40.r = temp_r26+64; - temp_r31->unk40.g = temp_r26+64; - temp_f31 -= temp_r30->unk_04.x; - temp_r31->unk40.a = 32+(int)((48.0f*temp_f31)/(0.2f*temp_r30->unk_04.x))+(int)(32*((1.0/65536.0)*(float)fn_1_11670())); - } - temp_r30->unk_02++; - - case 1: - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 += 2; - if(temp_r31->unk00_s16 >= 360) { - temp_r31->unk00_s16 -= 360; - } - temp_r31->unk34.x = temp_r31->unk14.x; - temp_r31->unk34.y = temp_r31->unk14.y; - temp_r31->unk34.z = temp_r31->unk14.z; - temp_r31->unk2C = temp_r31->unk24*((0.1f*sind(temp_r31->unk00_s16))+1.0); - } - break; - } - DCFlushRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + float temp_f30; + float temp_f31; + HsfanimStruct01 *temp_r31; + ParticleData *temp_r30; + s32 temp_r28; + s16 temp_r27; + s32 temp_r26; + temp_r30 = particle->unk_1C; + switch (temp_r30->unk_02) { + case 0: + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk00_s16 = fn_1_11670() % 360; + temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; + temp_r27 = fn_1_11670() % 360; + temp_r31->unk20 = temp_r27; + temp_r31->unk08.x = sind(temp_r27); + temp_r31->unk08.y = 0; + temp_r31->unk08.z = cosd(temp_r27); + temp_f31 = temp_r30->unk_04.x + (0.01 * ((30.0f * temp_r30->unk_04.x) * ((1.0 / 65536.0) * (float)fn_1_11670()))); + temp_f30 = (0.15f + (0.3f * ((1.0 / 65536.0) * (float)fn_1_11670()))); + temp_r31->unk14.x = temp_f31 * temp_r31->unk08.x; + temp_r31->unk14.y = 50 * ((1.0 / 32768.0) * (float)(fn_1_11670() - 32768)); + temp_r31->unk14.z = temp_f31 * temp_r31->unk08.z * temp_f30; + temp_r31->unk24 = temp_r31->unk2C + = temp_r30->unk_04.x + (0.01 * ((50.0f * temp_r30->unk_04.x) * ((1.0 / 65536.0) * (float)fn_1_11670()))); + temp_r26 = frand() & 0x7F; + temp_r31->unk40.r = temp_r26 + 64; + temp_r31->unk40.g = temp_r26 + 64; + temp_f31 -= temp_r30->unk_04.x; + temp_r31->unk40.a + = 32 + (int)((48.0f * temp_f31) / (0.2f * temp_r30->unk_04.x)) + (int)(32 * ((1.0 / 65536.0) * (float)fn_1_11670())); + } + temp_r30->unk_02++; + + case 1: + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk00_s16 += 2; + if (temp_r31->unk00_s16 >= 360) { + temp_r31->unk00_s16 -= 360; + } + temp_r31->unk34.x = temp_r31->unk14.x; + temp_r31->unk34.y = temp_r31->unk14.y; + temp_r31->unk34.z = temp_r31->unk14.z; + temp_r31->unk2C = temp_r31->unk24 * ((0.1f * sind(temp_r31->unk00_s16)) + 1.0); + } + break; + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_EEF8(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - HsfanimStruct01 *temp_r31; - ParticleData *temp_r29; - s32 temp_r28; - u8 temp_r27; - temp_r29 = particle->unk_1C; - switch(temp_r29->unk_02) { - case 0: - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; - temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 255; - temp_r31->unk2C = temp_r29->unk_04.x; - } - temp_r29->unk_02++; - break; - - case 1: - if(temp_r29->unk_04.y < 0.0f) { - break; - } - temp_f31 = 0.1f+temp_r29->unk_04.y; - temp_f31 = 1.2f*(temp_f31*temp_f31); - if(temp_f31 > 1.0f) { - temp_f31 = 1.0f; - } - temp_r27 = 255*temp_f31; - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk40.a = temp_r27; - } - break; - } - DCFlushRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + float temp_f31; + HsfanimStruct01 *temp_r31; + ParticleData *temp_r29; + s32 temp_r28; + u8 temp_r27; + temp_r29 = particle->unk_1C; + switch (temp_r29->unk_02) { + case 0: + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; + temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 255; + temp_r31->unk2C = temp_r29->unk_04.x; + } + temp_r29->unk_02++; + break; + + case 1: + if (temp_r29->unk_04.y < 0.0f) { + break; + } + temp_f31 = 0.1f + temp_r29->unk_04.y; + temp_f31 = 1.2f * (temp_f31 * temp_f31); + if (temp_f31 > 1.0f) { + temp_f31 = 1.0f; + } + temp_r27 = 255 * temp_f31; + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk40.a = temp_r27; + } + break; + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_F06C(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - HsfanimStruct01 *temp_r31; - ParticleData *temp_r29; - s32 temp_r28; - s16 temp_r27; - temp_r27 = 0; - temp_r29 = particle->unk_1C; - switch(temp_r29->unk_02) { - case 0: - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 = temp_r31->unk02 = 0; - } - temp_r29->unk_02++; - break; - - case 1: - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r28++, temp_r31++) { - if(temp_r31->unk00_s16) { - temp_r31->unk00_s16--; - continue; - } - if(temp_r31->unk02 == 0) { - temp_f31 = 360.0f*((1.0/65536.0)*(float)fn_1_11670()); - temp_r31->unk34.x = 10.0*(50.0+(250.0*((1.0/65536.0)*(float)fn_1_11670())))*sind(temp_f31); - temp_r31->unk34.y = 0; - temp_r31->unk34.z = 10.0*(50.0+(250.0*((1.0/65536.0)*(float)fn_1_11670())))*cosd(temp_f31); - temp_r31->unk30 = (M_PI*(temp_f31-90.0f))/180; - temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 192; - temp_r31->unk40.b = 160; - temp_r31->unk2C = 0; - temp_r31->unk00_s16 = (s32)(90.0*((1.0/65536.0)*(float)fn_1_11670())); - temp_r31->unk02 = 60; - } - temp_r31->unk40.a = 248*sind(temp_r31->unk02*3); - temp_r31->unk2C = temp_r29->unk_04.x*(60-temp_r31->unk02); - temp_r31->unk02--; - } - if(particle->unk_30 == temp_r27) { - Hu3DModelAttrReset(temp_r29->unk_00, 0x20); - Hu3DModelKill(temp_r29->unk_00); - return; - } - break; - } - DCFlushRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + float temp_f31; + HsfanimStruct01 *temp_r31; + ParticleData *temp_r29; + s32 temp_r28; + s16 temp_r27; + temp_r27 = 0; + temp_r29 = particle->unk_1C; + switch (temp_r29->unk_02) { + case 0: + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + temp_r31->unk00_s16 = temp_r31->unk02 = 0; + } + temp_r29->unk_02++; + break; + + case 1: + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { + if (temp_r31->unk00_s16) { + temp_r31->unk00_s16--; + continue; + } + if (temp_r31->unk02 == 0) { + temp_f31 = 360.0f * ((1.0 / 65536.0) * (float)fn_1_11670()); + temp_r31->unk34.x = 10.0 * (50.0 + (250.0 * ((1.0 / 65536.0) * (float)fn_1_11670()))) * sind(temp_f31); + temp_r31->unk34.y = 0; + temp_r31->unk34.z = 10.0 * (50.0 + (250.0 * ((1.0 / 65536.0) * (float)fn_1_11670()))) * cosd(temp_f31); + temp_r31->unk30 = (M_PI * (temp_f31 - 90.0f)) / 180; + temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 192; + temp_r31->unk40.b = 160; + temp_r31->unk2C = 0; + temp_r31->unk00_s16 = (s32)(90.0 * ((1.0 / 65536.0) * (float)fn_1_11670())); + temp_r31->unk02 = 60; + } + temp_r31->unk40.a = 248 * sind(temp_r31->unk02 * 3); + temp_r31->unk2C = temp_r29->unk_04.x * (60 - temp_r31->unk02); + temp_r31->unk02--; + } + if (particle->unk_30 == temp_r27) { + Hu3DModelAttrReset(temp_r29->unk_00, 0x20); + Hu3DModelKill(temp_r29->unk_00); + return; + } + break; + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } WorkF4B0 *fn_1_F4B0(s16 arg0, s16 arg1) { - WorkF4B0 *temp_r31; - s32 temp_r30; - ModelData *temp_r29; - temp_r29 = &Hu3DData[arg0]; - temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkF4B0), MEMORY_DEFAULT_NUM); - temp_r29->unk_120 = temp_r31; - temp_r31->unk0 = arg0; - temp_r31->unk2 = arg1; - temp_r31->unk4 = NULL; - temp_r31->unk8 = NULL; - for(temp_r30=0; temp_r30<32; temp_r30++) { - temp_r31->unk10[temp_r30] = 0; - } - return temp_r31; + WorkF4B0 *temp_r31; + s32 temp_r30; + ModelData *temp_r29; + temp_r29 = &Hu3DData[arg0]; + temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkF4B0), MEMORY_DEFAULT_NUM); + temp_r29->unk_120 = temp_r31; + temp_r31->unk0 = arg0; + temp_r31->unk2 = arg1; + temp_r31->unk4 = NULL; + temp_r31->unk8 = NULL; + for (temp_r30 = 0; temp_r30 < 32; temp_r30++) { + temp_r31->unk10[temp_r30] = 0; + } + return temp_r31; } void fn_1_F564(s16 arg0) { - float temp_f31; - WorkF4B0 *temp_r31; - s32 temp_r30; - HsfObject *temp_r29; - s32 temp_r28; - ModelData *temp_r27; - temp_r27 = &Hu3DData[arg0]; - temp_r29 = temp_r27->hsfData->root; - temp_r31 = temp_r27->unk_120; - if(temp_r31->unk8 == NULL) { - temp_r31->unk8 = HuMemDirectMallocNum(HEAP_SYSTEM, temp_r29->data.st->count*sizeof(HsfVector2f), MEMORY_DEFAULT_NUM); - temp_r31->unkC = HuMemDirectMallocNum(HEAP_SYSTEM, temp_r29->data.st->count, MEMORY_DEFAULT_NUM); - for(temp_r30=0; temp_r30data.st->count; temp_r30++) { - temp_r31->unk8[temp_r30].x = ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].x; - temp_r31->unk8[temp_r30].y = ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].y; - } - } - temp_r31->unk10_f[0] += 2.0f; - for(temp_r30=0; temp_r30data.st->count; temp_r30++) { - temp_r31->unkC[temp_r30] = 0; - } - for(temp_r30=0; temp_r30data.st->count; temp_r30++) { - if(temp_r31->unkC[temp_r30]) { - continue; - } - temp_r31->unkC[temp_r30]++; - temp_f31 = temp_r31->unk10_f[0]+(60.0f*temp_r30); - ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].x = temp_r31->unk8[temp_r30].x+(0.005f*sind(temp_f31)); - ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].y = temp_r31->unk8[temp_r30].y+(0.005f*cosd(temp_f31)); - for(temp_r28=temp_r30; temp_r28data.st->count; temp_r28++) { - if(temp_r31->unkC[temp_r28]) { - continue; - } - if(temp_r31->unk8[temp_r30].x != temp_r31->unk8[temp_r28].x || temp_r31->unk8[temp_r30].y != temp_r31->unk8[temp_r28].y) { - continue; - } - temp_r31->unkC[temp_r28]++; - ((HsfVector2f *)(temp_r29->data.st->data))[temp_r28].x = ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].x; - ((HsfVector2f *)(temp_r29->data.st->data))[temp_r28].y = ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].y; - } - } + float temp_f31; + WorkF4B0 *temp_r31; + s32 temp_r30; + HsfObject *temp_r29; + s32 temp_r28; + ModelData *temp_r27; + temp_r27 = &Hu3DData[arg0]; + temp_r29 = temp_r27->hsfData->root; + temp_r31 = temp_r27->unk_120; + if (temp_r31->unk8 == NULL) { + temp_r31->unk8 = HuMemDirectMallocNum(HEAP_SYSTEM, temp_r29->data.st->count * sizeof(HsfVector2f), MEMORY_DEFAULT_NUM); + temp_r31->unkC = HuMemDirectMallocNum(HEAP_SYSTEM, temp_r29->data.st->count, MEMORY_DEFAULT_NUM); + for (temp_r30 = 0; temp_r30 < temp_r29->data.st->count; temp_r30++) { + temp_r31->unk8[temp_r30].x = ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].x; + temp_r31->unk8[temp_r30].y = ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].y; + } + } + temp_r31->unk10_f[0] += 2.0f; + for (temp_r30 = 0; temp_r30 < temp_r29->data.st->count; temp_r30++) { + temp_r31->unkC[temp_r30] = 0; + } + for (temp_r30 = 0; temp_r30 < temp_r29->data.st->count; temp_r30++) { + if (temp_r31->unkC[temp_r30]) { + continue; + } + temp_r31->unkC[temp_r30]++; + temp_f31 = temp_r31->unk10_f[0] + (60.0f * temp_r30); + ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].x = temp_r31->unk8[temp_r30].x + (0.005f * sind(temp_f31)); + ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].y = temp_r31->unk8[temp_r30].y + (0.005f * cosd(temp_f31)); + for (temp_r28 = temp_r30; temp_r28 < temp_r29->data.st->count; temp_r28++) { + if (temp_r31->unkC[temp_r28]) { + continue; + } + if (temp_r31->unk8[temp_r30].x != temp_r31->unk8[temp_r28].x || temp_r31->unk8[temp_r30].y != temp_r31->unk8[temp_r28].y) { + continue; + } + temp_r31->unkC[temp_r28]++; + ((HsfVector2f *)(temp_r29->data.st->data))[temp_r28].x = ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].x; + ((HsfVector2f *)(temp_r29->data.st->data))[temp_r28].y = ((HsfVector2f *)(temp_r29->data.st->data))[temp_r30].y; + } + } } typedef struct unk_fn_10484 { - ModelData *unk0; - HsfObject *unk4; - s32 unk8; - Mtx unkC; - float unk3C[2]; - + ModelData *unk0; + HsfObject *unk4; + s32 unk8; + Mtx unkC; + float unk3C[2]; + } UnkFn10484; void fn_1_10484(UnkFn10484 *arg0, HsfFace *arg1, HsfDrawData *arg2, GXColor *arg3); void fn_1_F8A0(ModelData *arg0, Mtx arg1) { - WorkF4B0 *temp_r31; - GXColor *temp_r30; - s16 temp_r29; - s32 temp_r28; - HsfBuffer *temp_r27; - HsfFace *temp_r26; - - UnkFn10484 spA0; - Mtx sp70; - Mtx sp40; - Mtx sp10; - s16 spC = 0; - temp_r31 = arg0->unk_120; - spA0.unk0 = &Hu3DData[temp_r31->unk2]; - spA0.unk4 = spA0.unk0->hsfData->root; - MTXCopy(arg1, spA0.unkC); - lbl_1_bss_128[0] = spA0.unk4->constData; - lbl_1_bss_120[0] = lbl_1_bss_128[0]->dlBuf; - lbl_1_bss_11C = lbl_1_bss_128[0]->drawData; - GXLoadPosMtxImm(spA0.unkC, GX_PNMTX0); - MTXInverse(spA0.unkC, sp70); - MTXTranspose(sp70, sp40); - GXLoadNrmMtxImm(sp40, GX_PNMTX0); - if(Hu3DShadowF && (lbl_1_bss_128[0]->flags & 0x8)) { - MTXConcat(sp10, spA0.unkC, sp40); - MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp70); - MTXConcat(sp70, sp40, sp40); - GXLoadTexMtxImm(sp40, GX_TEXMTX9, GX_MTX3x4); - } - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); - if(temp_r31->unk4 == NULL) { - temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, spA0.unk4->data.color->count*sizeof(GXColor), MEMORY_DEFAULT_NUM); - for(temp_r29=0; temp_r29data.color->count; temp_r29++) { - temp_r30 = &temp_r31->unk4[temp_r29]; - temp_r30->r = temp_r31->unk10[0]; - temp_r30->g = temp_r31->unk10[1]; - temp_r30->b = temp_r31->unk10[2]; - if(((GXColor *)(spA0.unk4->data.color->data))[temp_r29].a == 255) { - temp_r30->a = temp_r31->unk10[3]; - } else { - temp_r30->a = ((GXColor *)(spA0.unk4->data.color->data))[temp_r29].a; - } - } - } - temp_r27 = spA0.unk4->data.face; - temp_r26 = temp_r27->data; - temp_r28 = 0; - for(temp_r29=0; temp_r29count;) { - fn_1_10484(&spA0, temp_r26, &lbl_1_bss_11C[temp_r28], temp_r31->unk4); - temp_r28++; - temp_r29 += lbl_1_bss_11C[temp_r28-1].polyCnt; - temp_r26 += lbl_1_bss_11C[temp_r28-1].polyCnt; - } + WorkF4B0 *temp_r31; + GXColor *temp_r30; + s16 temp_r29; + s32 temp_r28; + HsfBuffer *temp_r27; + HsfFace *temp_r26; + + UnkFn10484 spA0; + Mtx sp70; + Mtx sp40; + Mtx sp10; + s16 spC = 0; + temp_r31 = arg0->unk_120; + spA0.unk0 = &Hu3DData[temp_r31->unk2]; + spA0.unk4 = spA0.unk0->hsfData->root; + MTXCopy(arg1, spA0.unkC); + lbl_1_bss_128[0] = spA0.unk4->constData; + lbl_1_bss_120[0] = lbl_1_bss_128[0]->dlBuf; + lbl_1_bss_11C = lbl_1_bss_128[0]->drawData; + GXLoadPosMtxImm(spA0.unkC, GX_PNMTX0); + MTXInverse(spA0.unkC, sp70); + MTXTranspose(sp70, sp40); + GXLoadNrmMtxImm(sp40, GX_PNMTX0); + if (Hu3DShadowF && (lbl_1_bss_128[0]->flags & 0x8)) { + MTXConcat(sp10, spA0.unkC, sp40); + MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp70); + MTXConcat(sp70, sp40, sp40); + GXLoadTexMtxImm(sp40, GX_TEXMTX9, GX_MTX3x4); + } + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + if (temp_r31->unk4 == NULL) { + temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, spA0.unk4->data.color->count * sizeof(GXColor), MEMORY_DEFAULT_NUM); + for (temp_r29 = 0; temp_r29 < spA0.unk4->data.color->count; temp_r29++) { + temp_r30 = &temp_r31->unk4[temp_r29]; + temp_r30->r = temp_r31->unk10[0]; + temp_r30->g = temp_r31->unk10[1]; + temp_r30->b = temp_r31->unk10[2]; + if (((GXColor *)(spA0.unk4->data.color->data))[temp_r29].a == 255) { + temp_r30->a = temp_r31->unk10[3]; + } + else { + temp_r30->a = ((GXColor *)(spA0.unk4->data.color->data))[temp_r29].a; + } + } + } + temp_r27 = spA0.unk4->data.face; + temp_r26 = temp_r27->data; + temp_r28 = 0; + for (temp_r29 = 0; temp_r29 < temp_r27->count;) { + fn_1_10484(&spA0, temp_r26, &lbl_1_bss_11C[temp_r28], temp_r31->unk4); + temp_r28++; + temp_r29 += lbl_1_bss_11C[temp_r28 - 1].polyCnt; + temp_r26 += lbl_1_bss_11C[temp_r28 - 1].polyCnt; + } } void fn_1_FB98(ModelData *arg0, Mtx arg1) { - WorkF4B0 *temp_r31; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - GXColor *temp_r27; - s32 temp_r26; - HsfBuffer *temp_r25; - HsfFace *temp_r24; - s32 temp_r23; - void *temp_r22; - - UnkFn10484 sp120; - Mtx spF0; - Mtx spC0; - Mtx sp90; - float sp50[2][8]; - float sp10[2][8]; - s16 spC = 0; - temp_r31 = arg0->unk_120; - sp120.unk0 = &Hu3DData[temp_r31->unk2]; - sp120.unk4 = sp120.unk0->hsfData->root; - MTXCopy(arg1, sp120.unkC); - lbl_1_bss_128[0] = sp120.unk4->constData; - lbl_1_bss_120[0] = lbl_1_bss_128[0]->dlBuf; - lbl_1_bss_11C = lbl_1_bss_128[0]->drawData; - GXLoadPosMtxImm(sp120.unkC, GX_PNMTX0); - MTXInverse(sp120.unkC, spF0); - MTXTranspose(spF0, spC0); - GXLoadNrmMtxImm(spC0, GX_PNMTX0); - if(Hu3DShadowF && (lbl_1_bss_128[0]->flags & 0x8)) { - MTXConcat(sp90, sp120.unkC, spC0); - MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, spF0); - MTXConcat(spF0, spC0, spC0); - GXLoadTexMtxImm(spC0, GX_TEXMTX9, GX_MTX3x4); - } - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); - if(temp_r31->unk4 == NULL) { - temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, sp120.unk4->data.color->count*sizeof(GXColor), MEMORY_DEFAULT_NUM); - for(temp_r30=0; temp_r30data.color->count; temp_r30++) { - temp_r27 = &temp_r31->unk4[temp_r30]; - temp_r27->r = temp_r31->unk10[0]; - temp_r27->g = temp_r31->unk10[1]; - temp_r27->b = temp_r31->unk10[2]; - temp_r27->a = temp_r31->unk10[3]; - } - } - if(temp_r31->unk8 == NULL) { - temp_r31->unk8 = HuMemDirectMallocNum(HEAP_SYSTEM, sp120.unk4->data.st->count*sizeof(HsfVector2f), MEMORY_DEFAULT_NUM); - temp_r31->unkC = HuMemDirectMallocNum(HEAP_SYSTEM, sp120.unk4->data.st->count, MEMORY_DEFAULT_NUM); - for(temp_r30=0; temp_r30data.st->count; temp_r30++) { - temp_r31->unk8[temp_r30].x = ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].x; - temp_r31->unk8[temp_r30].y = ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].y; - } - } - temp_r31->unk10_f[15] += 0.5f; - for(temp_r30=0; temp_r30<8; temp_r30++) { - float temp_f31 = temp_r31->unk10_f[15]+(40.0f*temp_r30); - sp50[0][temp_r30] = sind(temp_f31); - sp10[0][temp_r30] = cosd(temp_f31); - } - for(temp_r30=0; temp_r30data.st->count; temp_r30++) { - temp_r31->unkC[temp_r30] = 0; - } - for(temp_r30=0, temp_r29=0; temp_r30data.st->count; temp_r30++, temp_r29++) { - if(temp_r31->unkC[temp_r30]) { - continue; - } - temp_r31->unkC[temp_r30]++; - if(temp_r31->unk10[4]) { - temp_r31->unk8[temp_r30].x = (1.5f*((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].x)+(0.04f*sp50[0][temp_r29 & 0x7]); - temp_r31->unk8[temp_r30].y = (2.0f*((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].y)+(0.04f*sp10[0][temp_r29 & 0x7]); - } else { - temp_r31->unk8[temp_r30].x = (1.25f*((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].x)+(0.04f*sp50[0][temp_r29 & 0x7]); - temp_r31->unk8[temp_r30].y = (1.75f*((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].y)+(0.04f*sp10[0][temp_r29 & 0x7]); - } - temp_r23 = temp_r31->unk10[3]+((0.8f*temp_r31->unk10[3])*sind((3.0f*temp_r31->unk10_f[15])+(120.0f*temp_r29))); - temp_r31->unk4[temp_r30].a = temp_r23; - for(temp_r28=temp_r30; temp_r28data.st->count; temp_r28++) { - temp_r29++; - if(temp_r31->unkC[temp_r28]) { - continue; - } - if(((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].x != ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r28].x - || ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].y != ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r28].y) { - continue; - } - temp_r31->unkC[temp_r28]++; - temp_r31->unk8[temp_r28].x = temp_r31->unk8[temp_r30].x; - temp_r31->unk8[temp_r28].y = temp_r31->unk8[temp_r30].y; - temp_r31->unk4[temp_r28].a = temp_r23; - temp_r29--; - } - } - temp_r22 = sp120.unk4->data.st->data; - sp120.unk4->data.st->data = temp_r31->unk8; - temp_r25 = sp120.unk4->data.face; - temp_r24 = temp_r25->data; - temp_r26 = 0; - for(temp_r30=0; temp_r30count;) { - fn_1_10484(&sp120, temp_r24, &lbl_1_bss_11C[temp_r26], temp_r31->unk4); - temp_r26++; - temp_r30 += lbl_1_bss_11C[temp_r26-1].polyCnt; - temp_r24 += lbl_1_bss_11C[temp_r26-1].polyCnt; - } - sp120.unk4->data.st->data = temp_r22; + WorkF4B0 *temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + GXColor *temp_r27; + s32 temp_r26; + HsfBuffer *temp_r25; + HsfFace *temp_r24; + s32 temp_r23; + void *temp_r22; + + UnkFn10484 sp120; + Mtx spF0; + Mtx spC0; + Mtx sp90; + float sp50[2][8]; + float sp10[2][8]; + s16 spC = 0; + temp_r31 = arg0->unk_120; + sp120.unk0 = &Hu3DData[temp_r31->unk2]; + sp120.unk4 = sp120.unk0->hsfData->root; + MTXCopy(arg1, sp120.unkC); + lbl_1_bss_128[0] = sp120.unk4->constData; + lbl_1_bss_120[0] = lbl_1_bss_128[0]->dlBuf; + lbl_1_bss_11C = lbl_1_bss_128[0]->drawData; + GXLoadPosMtxImm(sp120.unkC, GX_PNMTX0); + MTXInverse(sp120.unkC, spF0); + MTXTranspose(spF0, spC0); + GXLoadNrmMtxImm(spC0, GX_PNMTX0); + if (Hu3DShadowF && (lbl_1_bss_128[0]->flags & 0x8)) { + MTXConcat(sp90, sp120.unkC, spC0); + MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, spF0); + MTXConcat(spF0, spC0, spC0); + GXLoadTexMtxImm(spC0, GX_TEXMTX9, GX_MTX3x4); + } + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + if (temp_r31->unk4 == NULL) { + temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, sp120.unk4->data.color->count * sizeof(GXColor), MEMORY_DEFAULT_NUM); + for (temp_r30 = 0; temp_r30 < sp120.unk4->data.color->count; temp_r30++) { + temp_r27 = &temp_r31->unk4[temp_r30]; + temp_r27->r = temp_r31->unk10[0]; + temp_r27->g = temp_r31->unk10[1]; + temp_r27->b = temp_r31->unk10[2]; + temp_r27->a = temp_r31->unk10[3]; + } + } + if (temp_r31->unk8 == NULL) { + temp_r31->unk8 = HuMemDirectMallocNum(HEAP_SYSTEM, sp120.unk4->data.st->count * sizeof(HsfVector2f), MEMORY_DEFAULT_NUM); + temp_r31->unkC = HuMemDirectMallocNum(HEAP_SYSTEM, sp120.unk4->data.st->count, MEMORY_DEFAULT_NUM); + for (temp_r30 = 0; temp_r30 < sp120.unk4->data.st->count; temp_r30++) { + temp_r31->unk8[temp_r30].x = ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].x; + temp_r31->unk8[temp_r30].y = ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].y; + } + } + temp_r31->unk10_f[15] += 0.5f; + for (temp_r30 = 0; temp_r30 < 8; temp_r30++) { + float temp_f31 = temp_r31->unk10_f[15] + (40.0f * temp_r30); + sp50[0][temp_r30] = sind(temp_f31); + sp10[0][temp_r30] = cosd(temp_f31); + } + for (temp_r30 = 0; temp_r30 < sp120.unk4->data.st->count; temp_r30++) { + temp_r31->unkC[temp_r30] = 0; + } + for (temp_r30 = 0, temp_r29 = 0; temp_r30 < sp120.unk4->data.st->count; temp_r30++, temp_r29++) { + if (temp_r31->unkC[temp_r30]) { + continue; + } + temp_r31->unkC[temp_r30]++; + if (temp_r31->unk10[4]) { + temp_r31->unk8[temp_r30].x = (1.5f * ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].x) + (0.04f * sp50[0][temp_r29 & 0x7]); + temp_r31->unk8[temp_r30].y = (2.0f * ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].y) + (0.04f * sp10[0][temp_r29 & 0x7]); + } + else { + temp_r31->unk8[temp_r30].x = (1.25f * ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].x) + (0.04f * sp50[0][temp_r29 & 0x7]); + temp_r31->unk8[temp_r30].y = (1.75f * ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].y) + (0.04f * sp10[0][temp_r29 & 0x7]); + } + temp_r23 = temp_r31->unk10[3] + ((0.8f * temp_r31->unk10[3]) * sind((3.0f * temp_r31->unk10_f[15]) + (120.0f * temp_r29))); + temp_r31->unk4[temp_r30].a = temp_r23; + for (temp_r28 = temp_r30; temp_r28 < sp120.unk4->data.st->count; temp_r28++) { + temp_r29++; + if (temp_r31->unkC[temp_r28]) { + continue; + } + if (((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].x != ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r28].x + || ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r30].y != ((HsfVector2f *)(sp120.unk4->data.st->data))[temp_r28].y) { + continue; + } + temp_r31->unkC[temp_r28]++; + temp_r31->unk8[temp_r28].x = temp_r31->unk8[temp_r30].x; + temp_r31->unk8[temp_r28].y = temp_r31->unk8[temp_r30].y; + temp_r31->unk4[temp_r28].a = temp_r23; + temp_r29--; + } + } + temp_r22 = sp120.unk4->data.st->data; + sp120.unk4->data.st->data = temp_r31->unk8; + temp_r25 = sp120.unk4->data.face; + temp_r24 = temp_r25->data; + temp_r26 = 0; + for (temp_r30 = 0; temp_r30 < temp_r25->count;) { + fn_1_10484(&sp120, temp_r24, &lbl_1_bss_11C[temp_r26], temp_r31->unk4); + temp_r26++; + temp_r30 += lbl_1_bss_11C[temp_r26 - 1].polyCnt; + temp_r24 += lbl_1_bss_11C[temp_r26 - 1].polyCnt; + } + sp120.unk4->data.st->data = temp_r22; } void fn_1_10830(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 arg3); -void fn_1_10B60(UnkFn10484 *arg0, HsfMaterial*arg1); +void fn_1_10B60(UnkFn10484 *arg0, HsfMaterial *arg1); void fn_1_10484(UnkFn10484 *arg0, HsfFace *arg1, HsfDrawData *arg2, GXColor *arg3) { - HsfMaterial *temp_r31; - HsfObject *temp_r30; - HsfAttribute *temp_r29; - s16 temp_r27; - s16 temp_r25; - HsfdrawStruct01 *temp_r24; - ModelData *temp_r23; - Hu3DTexAnimDataStruct *temp_r22; - void *temp_r20; - GXColor sp14; - temp_r30 = arg0->unk4; - temp_r23 = arg0->unk0; - temp_r31 = &temp_r30->data.material[arg1->mat & 0xFFF]; - sp14.r = temp_r31->litColor[0]; - sp14.g = temp_r31->litColor[1]; - sp14.b = temp_r31->litColor[2]; - sp14.a = 255; - GXSetChanAmbColor(GX_COLOR0A0, sp14); - sp14.r = temp_r31->color[0]; - sp14.g = temp_r31->color[1]; - sp14.b = temp_r31->color[2]; - sp14.a = 255; - GXSetChanMatColor(GX_COLOR0A0, sp14); - if((temp_r31->invAlpha != 0 || temp_r31->pass == 1) && !(temp_r23->attr & 0x2)) { - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); - } else { - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); - } - if(temp_r31->numAttrs == 0) { - return; - } - temp_r25 = (temp_r30->data.color) ? 5 : 1; - if(arg2->flags & 0x2) { - temp_r25 |= 0x2; - } - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSetArray(GX_VA_POS, temp_r30->data.vertex->data, sizeof(HsfVector3f)); - if(temp_r25 & 0x2) { - GXSetVtxDesc(GX_VA_NBT, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NBT, GX_NRM_NBT, GX_S16, 8); - } else { - GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); - GXSetArray(GX_VA_NRM, temp_r30->data.normal->data, sizeof(HsfVector3f)); - } - GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSetArray(GX_VA_TEX0, temp_r30->data.st->data, sizeof(HsfVector2f)); - if(temp_r25 & 0x4) { - GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSetArray(GX_VA_CLR0, arg3, sizeof(GXColor)); - } - GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); - GXSetZCompLoc(GX_FALSE); - for(temp_r27=0; temp_r27numAttrs; temp_r27++) { - temp_r29 = &temp_r30->data.attribute[temp_r31->attrs[temp_r27]]; - if(temp_r29->unk04) { - temp_r24 = temp_r29->unk04; - temp_r22 = &Hu3DTexAnimData[temp_r24->unk02]; - if((temp_r24->unk00 & 0x1) && !(temp_r22->unk00 & 0x4)) { - if(Hu3DAnimSet(arg0->unk0, temp_r29, (s16)temp_r27)) { - continue; - } - } - } - fn_1_10830(arg0->unk0, temp_r29->bitmap, temp_r29, (s16)temp_r27); - } - fn_1_10B60(arg0, temp_r31); - temp_r20 = (void *)(arg2->dlOfs+((u32)lbl_1_bss_120[0])); - GXCallDisplayList(temp_r20, arg2->dlSize); + HsfMaterial *temp_r31; + HsfObject *temp_r30; + HsfAttribute *temp_r29; + s16 temp_r27; + s16 temp_r25; + HsfdrawStruct01 *temp_r24; + ModelData *temp_r23; + Hu3DTexAnimDataStruct *temp_r22; + void *temp_r20; + GXColor sp14; + temp_r30 = arg0->unk4; + temp_r23 = arg0->unk0; + temp_r31 = &temp_r30->data.material[arg1->mat & 0xFFF]; + sp14.r = temp_r31->litColor[0]; + sp14.g = temp_r31->litColor[1]; + sp14.b = temp_r31->litColor[2]; + sp14.a = 255; + GXSetChanAmbColor(GX_COLOR0A0, sp14); + sp14.r = temp_r31->color[0]; + sp14.g = temp_r31->color[1]; + sp14.b = temp_r31->color[2]; + sp14.a = 255; + GXSetChanMatColor(GX_COLOR0A0, sp14); + if ((temp_r31->invAlpha != 0 || temp_r31->pass == 1) && !(temp_r23->attr & 0x2)) { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + } + else { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + } + if (temp_r31->numAttrs == 0) { + return; + } + temp_r25 = (temp_r30->data.color) ? 5 : 1; + if (arg2->flags & 0x2) { + temp_r25 |= 0x2; + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r30->data.vertex->data, sizeof(HsfVector3f)); + if (temp_r25 & 0x2) { + GXSetVtxDesc(GX_VA_NBT, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NBT, GX_NRM_NBT, GX_S16, 8); + } + else { + GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, temp_r30->data.normal->data, sizeof(HsfVector3f)); + } + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, temp_r30->data.st->data, sizeof(HsfVector2f)); + if (temp_r25 & 0x4) { + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, arg3, sizeof(GXColor)); + } + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(GX_FALSE); + for (temp_r27 = 0; temp_r27 < temp_r31->numAttrs; temp_r27++) { + temp_r29 = &temp_r30->data.attribute[temp_r31->attrs[temp_r27]]; + if (temp_r29->unk04) { + temp_r24 = temp_r29->unk04; + temp_r22 = &Hu3DTexAnimData[temp_r24->unk02]; + if ((temp_r24->unk00 & 0x1) && !(temp_r22->unk00 & 0x4)) { + if (Hu3DAnimSet(arg0->unk0, temp_r29, (s16)temp_r27)) { + continue; + } + } + } + fn_1_10830(arg0->unk0, temp_r29->bitmap, temp_r29, (s16)temp_r27); + } + fn_1_10B60(arg0, temp_r31); + temp_r20 = (void *)(arg2->dlOfs + ((u32)lbl_1_bss_120[0])); + GXCallDisplayList(temp_r20, arg2->dlSize); } void fn_1_10830(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 arg3) { - GXTexObj sp1C; - GXTlutObj sp10; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - s16 temp_r26; - temp_r29 = arg1->sizeX; - temp_r28 = arg1->sizeY; - temp_r27 = (arg2->wrap_s == 1) ? 1 : 0; - temp_r26 = (arg2->wrap_t == 1) ? 1 : 0; - switch(arg1->dataFmt) { - case 6: - GXInitTexObj(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_RGBA8, temp_r27, temp_r26, GX_FALSE); - break; - - case 4: - GXInitTexObj(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_RGB565, temp_r27, temp_r26, GX_FALSE); - break; - - case 5: - GXInitTexObj(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_RGB5A3, temp_r27, temp_r26, GX_FALSE); - break; - - case 9: - if(arg1->pixSize < 8) { - GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB565, arg1->palSize); - GXLoadTlut(&sp10, arg3); - GXInitTexObjCI(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_C4, temp_r27, temp_r26, GX_FALSE, arg3); - } else { - GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB565, arg1->palSize); - GXLoadTlut(&sp10, arg3); - GXInitTexObjCI(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_C8, temp_r27, temp_r26, GX_FALSE, arg3); - } - break; - - case 10: - if(arg1->pixSize < 8) { - GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB5A3, arg1->palSize); - GXLoadTlut(&sp10, arg3); - GXInitTexObjCI(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_C4, temp_r27, temp_r26, GX_FALSE, arg3); - } else { - GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB5A3, arg1->palSize); - GXLoadTlut(&sp10, arg3); - GXInitTexObjCI(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_C8, temp_r27, temp_r26, GX_FALSE, arg3); - } - break; - } - if(arg0->attr & 0x40) { - GXInitTexObjLOD(&sp1C, GX_NEAR, GX_NEAR, 0, 0, 0, GX_FALSE, GX_FALSE, GX_ANISO_1); - } else { - GXInitTexObjLOD(&sp1C, GX_LINEAR, GX_LINEAR, 0, 0, 0, GX_FALSE, GX_FALSE, GX_ANISO_1); - } - GXLoadTexObj(&sp1C, arg3); + GXTexObj sp1C; + GXTlutObj sp10; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + temp_r29 = arg1->sizeX; + temp_r28 = arg1->sizeY; + temp_r27 = (arg2->wrap_s == 1) ? 1 : 0; + temp_r26 = (arg2->wrap_t == 1) ? 1 : 0; + switch (arg1->dataFmt) { + case 6: + GXInitTexObj(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_RGBA8, temp_r27, temp_r26, GX_FALSE); + break; + + case 4: + GXInitTexObj(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_RGB565, temp_r27, temp_r26, GX_FALSE); + break; + + case 5: + GXInitTexObj(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_RGB5A3, temp_r27, temp_r26, GX_FALSE); + break; + + case 9: + if (arg1->pixSize < 8) { + GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB565, arg1->palSize); + GXLoadTlut(&sp10, arg3); + GXInitTexObjCI(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_C4, temp_r27, temp_r26, GX_FALSE, arg3); + } + else { + GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB565, arg1->palSize); + GXLoadTlut(&sp10, arg3); + GXInitTexObjCI(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_C8, temp_r27, temp_r26, GX_FALSE, arg3); + } + break; + + case 10: + if (arg1->pixSize < 8) { + GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB5A3, arg1->palSize); + GXLoadTlut(&sp10, arg3); + GXInitTexObjCI(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_C4, temp_r27, temp_r26, GX_FALSE, arg3); + } + else { + GXInitTlutObj(&sp10, arg1->palData, GX_TL_RGB5A3, arg1->palSize); + GXLoadTlut(&sp10, arg3); + GXInitTexObjCI(&sp1C, arg1->data, temp_r29, temp_r28, GX_TF_C8, temp_r27, temp_r26, GX_FALSE, arg3); + } + break; + } + if (arg0->attr & 0x40) { + GXInitTexObjLOD(&sp1C, GX_NEAR, GX_NEAR, 0, 0, 0, GX_FALSE, GX_FALSE, GX_ANISO_1); + } + else { + GXInitTexObjLOD(&sp1C, GX_LINEAR, GX_LINEAR, 0, 0, 0, GX_FALSE, GX_FALSE, GX_ANISO_1); + } + GXLoadTexObj(&sp1C, arg3); } -#define SET_TEVCOLOR_ALPHA(reg, color_var, value) \ -{ \ - color_var.a = (value); \ - GXSetTevColor(reg, color_var); \ -} +#define SET_TEVCOLOR_ALPHA(reg, color_var, value) \ + { \ + color_var.a = (value); \ + GXSetTevColor(reg, color_var); \ + } extern u32 texMtxTbl[]; void fn_1_10B60(UnkFn10484 *arg0, HsfMaterial *arg1) { - GXColor sp28; - GXColor sp24; - GXColor sp20; - u16 temp_r31; - HsfAttribute *temp_r29; - u16 temp_r28; - HsfObject *temp_r27; - HsfdrawStruct01 *temp_r26; - u16 temp_r25; - u16 temp_r24; - s32 temp_r23; - s32 temp_r22; - u16 temp_r20; - temp_r27 = arg0->unk4; - if(arg1->vtxMode == 2 || arg1->vtxMode == 3) { - temp_r24 = 1; - } else { - temp_r24 = 0; - if(arg1->vtxMode == 0 && !temp_r27->data.color) { - temp_r23 = 0; - } else { - temp_r23 = 1; - } - } - - if(arg1->numAttrs == 1) { - temp_r28 = temp_r31 = 1; - temp_r29 = &temp_r27->data.attribute[arg1->attrs[0]]; - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); - if(temp_r29->unk04) { - temp_r26 = temp_r29->unk04; - if(temp_r26->unk00 & 0x2) { - GXLoadTexMtxImm(Hu3DTexScrData[temp_r26->unk04].unk3C, GX_TEXMTX0, GX_MTX2x4); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_TEXMTX0); - } - } - if(temp_r29->unk8[2] == 0) { - GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); - GXSetTevOrder(temp_r31, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_TEXC, GX_CC_TEXA, GX_CC_ZERO); - GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); - GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - temp_r31++; - } else { - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - } - SET_TEVCOLOR_ALPHA(GX_TEVREG0, sp28, 255*(1.0f-arg1->invAlpha)); - if(temp_r24) { - GXSetTevOrder(temp_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR1A1); - GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_APREV, GX_CA_A0, GX_CA_ZERO); - GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - temp_r31++; - } else if(0.0f != arg1->invAlpha) { - GXSetTevOrder(temp_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); - GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV); - GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_APREV, GX_CA_RASA, GX_CA_ZERO); - GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - temp_r31++; - } - GXSetNumTexGens(temp_r28); - GXSetNumTevStages(temp_r31); - } else { - temp_r22 = 0; - temp_r28 = 1; - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); - for(temp_r25=temp_r31=0; temp_r25numAttrs; temp_r31++, temp_r25++) { - temp_r29 = &temp_r27->data.attribute[arg1->attrs[temp_r25]]; - if(0.0f != temp_r29->unk14) { - GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_BUMP0, GX_TG_TEXCOORD0, GX_IDENTITY); - SET_TEVCOLOR_ALPHA(GX_TEVREG1, sp24, 10*temp_r29->unk14); - GXSetTevOrder(temp_r31, GX_TEXCOORD0, temp_r25, GX_COLOR0A0); - GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_RASC); - GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); - GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); - temp_r31++; - GXSetTevOrder(temp_r31, GX_TEXCOORD1, temp_r25, GX_COLOR0A0); - GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_CPREV); - GXSetTevColorOp(temp_r31, GX_TEV_SUB, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); - GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); - temp_r28++; - temp_r22 = 1; - } else { - if(temp_r29->unk04) { - temp_r26 = temp_r29->unk04; - if(temp_r26->unk00 & 0x2) { - GXLoadTexMtxImm(Hu3DTexScrData[temp_r26->unk04].unk3C, texMtxTbl[temp_r28], GX_MTX2x4); - GXSetTexCoordGen(temp_r28, GX_TG_MTX2x4, GX_TG_TEX0, texMtxTbl[temp_r28]); - temp_r20 = (u16)temp_r28; - temp_r28++; - } - } else { - temp_r20 = 0; - } - GXSetTevOrder(temp_r31, temp_r20, temp_r25, GX_COLOR0A0); - if(temp_r25 == 0) { - GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); - } else if(temp_r22 != 0) { - GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_CPREV, GX_CC_TEXC, GX_CC_ZERO); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); - temp_r22 = 0; - } else if(temp_r29->unk8[2] == 0) { - GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_TEXC, GX_CC_TEXA, GX_CC_ZERO); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); - } else { - SET_TEVCOLOR_ALPHA(GX_TEVREG2, sp20, 255*temp_r29->unk0C); - GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); - } - GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - } - } - SET_TEVCOLOR_ALPHA(GX_TEVREG0, sp28, 255*(1.0f-arg1->invAlpha)); - if(temp_r24) { - GXSetTevOrder(temp_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR1A1); - GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_APREV, GX_CA_A0, GX_CA_ZERO); - GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - temp_r31++; - } else { - GXSetTevOrder(temp_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); - GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV); - GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_APREV, GX_CA_A0, GX_CA_ZERO); - GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - temp_r31++; - } - GXSetNumTexGens(temp_r28); - GXSetNumTevStages(temp_r31); - } - lbl_1_bss_118 = Hu3DLightSet(arg0->unk0, &Hu3DCameraMtx, &Hu3DCameraMtxXPose, (temp_r24) ? arg1->hilite_scale : 0); - if(temp_r24) { - GXSetNumChans(2); - if(temp_r27->data.color) { - GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, lbl_1_bss_118, GX_DF_CLAMP, GX_AF_NONE); - GXSetChanCtrl(GX_COLOR1A1, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, lbl_1_bss_118, GX_DF_NONE, GX_AF_SPEC); - } else { - GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_REG, lbl_1_bss_118, GX_DF_CLAMP, GX_AF_NONE); - GXSetChanCtrl(GX_COLOR1A1, GX_TRUE, GX_SRC_REG, GX_SRC_REG, lbl_1_bss_118, GX_DF_NONE, GX_AF_SPEC); - } - } else { - GXSetNumChans(1); - if(temp_r27->data.color) { - GXSetChanCtrl(GX_COLOR0A0, temp_r23, GX_SRC_REG, GX_SRC_VTX, lbl_1_bss_118, GX_DF_CLAMP, GX_AF_SPOT); - } else { - GXSetChanCtrl(GX_COLOR0A0, temp_r23, GX_SRC_REG, GX_SRC_REG, lbl_1_bss_118, GX_DF_CLAMP, GX_AF_SPOT); - } - } + GXColor sp28; + GXColor sp24; + GXColor sp20; + u16 temp_r31; + HsfAttribute *temp_r29; + u16 temp_r28; + HsfObject *temp_r27; + HsfdrawStruct01 *temp_r26; + u16 temp_r25; + u16 temp_r24; + s32 temp_r23; + s32 temp_r22; + u16 temp_r20; + temp_r27 = arg0->unk4; + if (arg1->vtxMode == 2 || arg1->vtxMode == 3) { + temp_r24 = 1; + } + else { + temp_r24 = 0; + if (arg1->vtxMode == 0 && !temp_r27->data.color) { + temp_r23 = 0; + } + else { + temp_r23 = 1; + } + } + + if (arg1->numAttrs == 1) { + temp_r28 = temp_r31 = 1; + temp_r29 = &temp_r27->data.attribute[arg1->attrs[0]]; + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + if (temp_r29->unk04) { + temp_r26 = temp_r29->unk04; + if (temp_r26->unk00 & 0x2) { + GXLoadTexMtxImm(Hu3DTexScrData[temp_r26->unk04].unk3C, GX_TEXMTX0, GX_MTX2x4); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_TEXMTX0); + } + } + if (temp_r29->unk8[2] == 0) { + GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); + GXSetTevOrder(temp_r31, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_TEXC, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + temp_r31++; + } + else { + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + } + SET_TEVCOLOR_ALPHA(GX_TEVREG0, sp28, 255 * (1.0f - arg1->invAlpha)); + if (temp_r24) { + GXSetTevOrder(temp_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR1A1); + GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); + GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_APREV, GX_CA_A0, GX_CA_ZERO); + GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + temp_r31++; + } + else if (0.0f != arg1->invAlpha) { + GXSetTevOrder(temp_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV); + GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_APREV, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + temp_r31++; + } + GXSetNumTexGens(temp_r28); + GXSetNumTevStages(temp_r31); + } + else { + temp_r22 = 0; + temp_r28 = 1; + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + for (temp_r25 = temp_r31 = 0; temp_r25 < arg1->numAttrs; temp_r31++, temp_r25++) { + temp_r29 = &temp_r27->data.attribute[arg1->attrs[temp_r25]]; + if (0.0f != temp_r29->unk14) { + GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_BUMP0, GX_TG_TEXCOORD0, GX_IDENTITY); + SET_TEVCOLOR_ALPHA(GX_TEVREG1, sp24, 10 * temp_r29->unk14); + GXSetTevOrder(temp_r31, GX_TEXCOORD0, temp_r25, GX_COLOR0A0); + GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_RASC); + GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + temp_r31++; + GXSetTevOrder(temp_r31, GX_TEXCOORD1, temp_r25, GX_COLOR0A0); + GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_CPREV); + GXSetTevColorOp(temp_r31, GX_TEV_SUB, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + temp_r28++; + temp_r22 = 1; + } + else { + if (temp_r29->unk04) { + temp_r26 = temp_r29->unk04; + if (temp_r26->unk00 & 0x2) { + GXLoadTexMtxImm(Hu3DTexScrData[temp_r26->unk04].unk3C, texMtxTbl[temp_r28], GX_MTX2x4); + GXSetTexCoordGen(temp_r28, GX_TG_MTX2x4, GX_TG_TEX0, texMtxTbl[temp_r28]); + temp_r20 = (u16)temp_r28; + temp_r28++; + } + } + else { + temp_r20 = 0; + } + GXSetTevOrder(temp_r31, temp_r20, temp_r25, GX_COLOR0A0); + if (temp_r25 == 0) { + GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + } + else if (temp_r22 != 0) { + GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_CPREV, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + temp_r22 = 0; + } + else if (temp_r29->unk8[2] == 0) { + GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_TEXC, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); + } + else { + SET_TEVCOLOR_ALPHA(GX_TEVREG2, sp20, 255 * temp_r29->unk0C); + GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); + } + GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + } + } + SET_TEVCOLOR_ALPHA(GX_TEVREG0, sp28, 255 * (1.0f - arg1->invAlpha)); + if (temp_r24) { + GXSetTevOrder(temp_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR1A1); + GXSetTevColorIn(temp_r31, GX_CC_CPREV, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); + GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_APREV, GX_CA_A0, GX_CA_ZERO); + GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + temp_r31++; + } + else { + GXSetTevOrder(temp_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevColorIn(temp_r31, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV); + GXSetTevColorOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(temp_r31, GX_CA_ZERO, GX_CA_APREV, GX_CA_A0, GX_CA_ZERO); + GXSetTevAlphaOp(temp_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + temp_r31++; + } + GXSetNumTexGens(temp_r28); + GXSetNumTevStages(temp_r31); + } + lbl_1_bss_118 = Hu3DLightSet(arg0->unk0, &Hu3DCameraMtx, &Hu3DCameraMtxXPose, (temp_r24) ? arg1->hilite_scale : 0); + if (temp_r24) { + GXSetNumChans(2); + if (temp_r27->data.color) { + GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, lbl_1_bss_118, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanCtrl(GX_COLOR1A1, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, lbl_1_bss_118, GX_DF_NONE, GX_AF_SPEC); + } + else { + GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_REG, lbl_1_bss_118, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanCtrl(GX_COLOR1A1, GX_TRUE, GX_SRC_REG, GX_SRC_REG, lbl_1_bss_118, GX_DF_NONE, GX_AF_SPEC); + } + } + else { + GXSetNumChans(1); + if (temp_r27->data.color) { + GXSetChanCtrl(GX_COLOR0A0, temp_r23, GX_SRC_REG, GX_SRC_VTX, lbl_1_bss_118, GX_DF_CLAMP, GX_AF_SPOT); + } + else { + GXSetChanCtrl(GX_COLOR0A0, temp_r23, GX_SRC_REG, GX_SRC_REG, lbl_1_bss_118, GX_DF_CLAMP, GX_AF_SPOT); + } + } } #undef SET_TEVCOLOR_ALPHA s32 fn_1_11670(void) { - lbl_1_data_19C *= 0x41C64E6D; - lbl_1_data_19C += 0x3039; - return lbl_1_data_19C >> 16; + lbl_1_data_19C *= 0x41C64E6D; + lbl_1_data_19C += 0x3039; + return lbl_1_data_19C >> 16; } float fn_1_116C4(float arg0, float arg1) { - float temp_f31; - float temp_f30; - temp_f30 = 360; - temp_f31 = atan2d(arg0, arg1); - if(temp_f31 < -180) { - temp_f31 += temp_f30; - } else if(temp_f31 >= 180.0) { - temp_f31 -= temp_f30; - } - return temp_f31; + float temp_f31; + float temp_f30; + temp_f30 = 360; + temp_f31 = atan2d(arg0, arg1); + if (temp_f31 < -180) { + temp_f31 += temp_f30; + } + else if (temp_f31 >= 180.0) { + temp_f31 -= temp_f30; + } + return temp_f31; } float fn_1_11780(Vec *arg0, Vec *arg1) { - return VECDistanceXYZ(arg0, arg1); -} \ No newline at end of file + return VECDistanceXYZ(arg0, arg1); +} diff --git a/src/REL/m409Dll/cursor.c b/src/REL/m409Dll/cursor.c index b7a816d0..0b6f1ca4 100644 --- a/src/REL/m409Dll/cursor.c +++ b/src/REL/m409Dll/cursor.c @@ -13,10 +13,10 @@ void fn_1_BF88(s16 arg0, s16 arg1) { lbl_1_bss_F0.unk4 = Hu3DHookFuncCreate(fn_1_CB98); Hu3DModelLayerSet(lbl_1_bss_F0.unk4, 6); lbl_1_bss_F0.unk0 = arg0; - var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkStruct8), 0x10000000); + var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkStruct8), MEMORY_DEFAULT_NUM); lbl_1_bss_F0.unk10 = var_r29; lbl_1_bss_F0.unk2 = arg1; - var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct9Sub), 0x10000000); + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct9Sub), MEMORY_DEFAULT_NUM); lbl_1_bss_F0.unkC = var_r30; for (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) { @@ -264,7 +264,7 @@ void fn_1_CCF8(unkStruct11** arg0, s16 arg1, f32 arg8, f32 arg9) { s32 var_r30; unkStruct11* var_r31; - var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct11), 0x10000000); + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct11), MEMORY_DEFAULT_NUM); for (var_r30 = 0; var_r30 < arg1; var_r31++, var_r30++) { var_r31->unk0.x = (-0.5f * arg8); @@ -287,7 +287,7 @@ void fn_1_CE7C(Vec** arg0, s16 arg1, Vec* arg2) { s32 var_r28; Vec* var_r31; - var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec[4]), 0x10000000); + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec[4]), MEMORY_DEFAULT_NUM); for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { @@ -303,7 +303,7 @@ void fn_1_CF1C(GXColor** arg0, s16 arg1, GXColor* arg2) { s32 var_r28; GXColor* var_r31; - var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(GXColor[4]), 0x10000000U); + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(GXColor[4]), MEMORY_DEFAULT_NUM); for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { @@ -319,7 +319,7 @@ void fn_1_CFC4(Vec** arg0, s16 arg1, Vec* arg2) { s32 var_r29; Vec* var_r31; - var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), 0x10000000U); + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), MEMORY_DEFAULT_NUM); for (var_r29 = 0; var_r29 < arg1; var_r31++, arg2++, var_r29++) { var_r31->x = arg2->x; @@ -333,7 +333,7 @@ void fn_1_D050(HsfVector2f** arg0, s16 arg1, HsfVector2f* arg2) { s32 var_r29; HsfVector2f* var_r31; - var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(HsfVector2f[4]), 0x10000000U); + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(HsfVector2f[4]), MEMORY_DEFAULT_NUM); for (var_r28 = 0; var_r28 < arg1; var_r28++) { for (var_r29 = 0; var_r29 < 4; var_r31++, arg2++, var_r29++) { @@ -371,14 +371,14 @@ void fn_1_D0E8(unkStruct8Sub* arg0) { if (arg0->unk48 != NULL) { HuMemDirectFree(arg0->unk48); } - arg0->unk48 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Vec), 0x10000000); + arg0->unk48 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Vec), MEMORY_DEFAULT_NUM); arg0->unk48->x = 0.0f; arg0->unk48->y = 0.0f; arg0->unk48->z = 1.0f; if (arg0->unk3C != NULL) { HuMemDirectFree(arg0->unk3C); } - temp_r3_3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1000, 0x10000000); + temp_r3_3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1000, MEMORY_DEFAULT_NUM); arg0->unk3C = temp_r3_3; DCFlushRange(arg0->unk3C, 0x1000); GXBeginDisplayList(temp_r3_3, 0x1000); @@ -526,9 +526,9 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) { var_r30->unk30 = NULL; var_r30->unk2 = arg0; var_r30->unk4 = arg1; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkStruct8Sub), 0x10000000); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkStruct8Sub), MEMORY_DEFAULT_NUM); var_r30->unk3C = var_r31; - var_r30->unk34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(s16), 0x10000000); + var_r30->unk34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(s16), MEMORY_DEFAULT_NUM); var_r30->unkC.x = var_r30->unkC.y = var_r30->unkC.z = 0.0f; var_r30->unk18.x = var_r30->unk18.y = var_r30->unk18.z = 0.0f; var_r30->unk24.x = var_r30->unk24.y = var_r30->unk24.z = 1.0f; @@ -551,7 +551,7 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) { var_r31->unk4C.a = 0xFF; var_r31->unk50.r = var_r31->unk50.g = var_r31->unk50.b = 0xFF; var_r31->unk50.a = 0xFF; - var_r31->unk54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct12), 0x10000000); + var_r31->unk54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct12), MEMORY_DEFAULT_NUM); for (var_r28 = 0; var_r28 < arg1; var_r28++) { var_r31->unk54[var_r28].unk0 = var_r31->unk54[var_r28].unk1 = 0; @@ -644,7 +644,7 @@ s16 fn_1_DF20(u32 arg0, s16 arg1, s16 arg2) { } var_r31->unk8 = arg0; var_r31->unk6 = 1; - temp_r30 = HuSprAnimRead(HuDataReadNum(arg0, 0x10000000)); + temp_r30 = HuSprAnimRead(HuDataReadNum(arg0, MEMORY_DEFAULT_NUM)); if ((arg1 == 0) || (arg2 == 0)) { arg1 = temp_r30->bmp->sizeX; arg2 = temp_r30->bmp->sizeY; @@ -716,7 +716,7 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { } temp_f30 = temp_r30->unk50; temp_f31 = temp_r30->unk4E; - var_r29 = var_r28->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, 0x10000000); + var_r29 = var_r28->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, MEMORY_DEFAULT_NUM); for (var_r25 = 0; var_r25 < 1; var_r29++, var_r25++) { var_r29->unk0.x = (-0.5f * temp_f31); @@ -739,7 +739,7 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { temp_r31->unkC = 1.0f; temp_r31->unk10 = 0.0f; if (temp_r31->unk4 == NULL) { - temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x20, 0x10000000U); + temp_r31->unk4 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x20, MEMORY_DEFAULT_NUM); } temp_r31->unk4[0].x = temp_r31->unk0 * temp_r30->unk54; temp_r31->unk4[0].y = temp_r31->unk0 * temp_r30->unk58; @@ -1205,4 +1205,4 @@ void fn_1_F4F0(s16 arg0, u8 arg1) { } } } -} \ No newline at end of file +} diff --git a/src/REL/m409Dll/main.c b/src/REL/m409Dll/main.c index 4ecd2f94..bb73b325 100644 --- a/src/REL/m409Dll/main.c +++ b/src/REL/m409Dll/main.c @@ -1,23 +1,23 @@ #include "REL/m409Dll.h" -#include "rel_sqrt_consts.h" -#include "math.h" #include "ext_math.h" -#include "game/hsfman.h" -#include "game/objsub.h" #include "game/audio.h" -#include "game/wipe.h" -#include "game/minigame_seq.h" -#include "game/sprite.h" -#include "game/pad.h" -#include "game/hsfmotion.h" #include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/wipe.h" +#include "math.h" +#include "rel_sqrt_consts.h" // bss -Process* lbl_1_bss_E8; +Process *lbl_1_bss_E8; s16 lbl_1_bss_E4; -omObjData* lbl_1_bss_E0; -omObjData* lbl_1_bss_DC; +omObjData *lbl_1_bss_E0; +omObjData *lbl_1_bss_DC; Vec lbl_1_bss_D0; unkStruct4 lbl_1_bss_40[4]; s32 lbl_1_bss_3C; @@ -40,29 +40,23 @@ s8 lbl_1_bss_0; // data Vec lbl_1_data_0 = { 800.0f, 1300.0f, 1000.0f }; Vec lbl_1_data_C = { 0.0f, 0.0f, 0.0f }; -unkStruct2 lbl_1_data_18 = { - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 10.0f, 45.0f, 0.0f } -}; +unkStruct2 lbl_1_data_18 = { { 0xFF, 0xFF, 0xFF, 0xFF }, { 10.0f, 45.0f, 0.0f } }; Vec lbl_1_data_28 = { 1300.0f, 2500.0f, 1300.0f }; Vec lbl_1_data_34 = { 0.0f, 1.0f, 0.0f }; Vec lbl_1_data_40 = { 0.0f, 0.0f, -1200.0f }; -unkStruct lbl_1_data_4C[4] = { - { 469.8f, { 225.0f, 184.0f, -1358.0f }, { 10.62f, -109.0f, 0.0f } }, - { 1800.0f, { 0.0f, 300.0f, -1316.0f }, { -20.38f, 0.0f, 0.0f } }, - { 2209.82f, { 0.0f, 478.0f, -1316.0f }, { 4.62f, 0.0f, 0.0f } }, - { 2059.82f, { 0.0f, 528.0f, -1316.0f }, { 10.62f, 0.0f, 0.0f } } -}; +unkStruct lbl_1_data_4C[4] + = { { 469.8f, { 225.0f, 184.0f, -1358.0f }, { 10.62f, -109.0f, 0.0f } }, { 1800.0f, { 0.0f, 300.0f, -1316.0f }, { -20.38f, 0.0f, 0.0f } }, + { 2209.82f, { 0.0f, 478.0f, -1316.0f }, { 4.62f, 0.0f, 0.0f } }, { 2059.82f, { 0.0f, 528.0f, -1316.0f }, { 10.62f, 0.0f, 0.0f } } }; u32 lbl_1_data_BC = 0xFFFFFFFF; s32 lbl_1_data_C0 = -1; - -void ObjectSetup(void) { +void ObjectSetup(void) +{ Vec sp2C; Vec sp20; Vec sp14; Vec sp8; - LightData* temp_r31; + LightData *temp_r31; Hu3DLightAllKill(); lbl_1_bss_E4 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_18.unk0); @@ -103,7 +97,8 @@ void ObjectSetup(void) { fn_1_67E0(lbl_1_bss_E8); } -void fn_1_434(omObjData* object) { +void fn_1_434(omObjData *object) +{ if ((omSysExitReq != 0) || (lbl_1_bss_0 != 0)) { HuAudFXListnerKill(); fn_1_5F5C(lbl_1_bss_E0->model[0]); @@ -114,20 +109,22 @@ void fn_1_434(omObjData* object) { } } -void fn_1_4DC(omObjData* object) { +void fn_1_4DC(omObjData *object) +{ if ((WipeStatGet() == 0) && (MGSeqDoneCheck() != 0)) { fn_1_6900(); omOvlReturnEx(1, 1); } } -s8 fn_1_524(void) { +s8 fn_1_524(void) +{ Vec sp8; f32 temp_f29; f32 var_f30; f32 temp_f31; s8 var_r30; - unkStruct* var_r31; + unkStruct *var_r31; var_r31 = lbl_1_data_4C; var_r30 = 0; @@ -168,11 +165,12 @@ s8 fn_1_524(void) { return var_r30; } -s8 fn_1_B80(void) { +s8 fn_1_B80(void) +{ f32 temp_f30; f32 temp_f31; s8 var_r30; - unkStruct* var_r31; + unkStruct *var_r31; var_r31 = &lbl_1_data_4C[2]; var_r30 = 0; @@ -192,18 +190,19 @@ s8 fn_1_B80(void) { return var_r30; } -void fn_1_DDC(omObjData* object) { - s16* var_r29; - AnimData* var_r30; - - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 6, 0x10000000); - var_r29 = (s16*)object->data; +void fn_1_DDC(omObjData *object) +{ + s16 *var_r29; + AnimData *var_r30; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 6, MEMORY_DEFAULT_NUM); + var_r29 = (s16 *)object->data; var_r29[0] = 1; - var_r30 = HuSprAnimRead(HuDataReadNum(0x28000D, 0x10000000)); + var_r30 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M409, 0x0D), MEMORY_DEFAULT_NUM)); object->model[0] = fn_1_5A18(var_r30, 0x800, 10.0f, 0x40, 0x40); fn_1_5FBC(object->model[0], fn_1_5408); Hu3DModelLayerSet(object->model[0], 5); - var_r30 = HuSprAnimRead(HuDataReadNum(0x28000E, 0x10000000)); + var_r30 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M409, 0x0E), MEMORY_DEFAULT_NUM)); object->model[1] = fn_1_5A18(var_r30, 0x400, 2.0f, 0, 0); fn_1_5FBC(object->model[1], fn_1_55E0); fn_1_5FF4(object->model[1], 1); @@ -212,13 +211,14 @@ void fn_1_DDC(omObjData* object) { object->func = fn_1_F70; } -void fn_1_F70(omObjData* object) { - s16* sp8; +void fn_1_F70(omObjData *object) +{ + s16 *sp8; s16 temp_r3; s16 temp_r3_2; s32 var_r31; - sp8 = (s16*)object->data; + sp8 = (s16 *)object->data; switch (fn_1_2454(7)) { case 1: if (lbl_1_bss_6 == 0) { @@ -227,7 +227,7 @@ void fn_1_F70(omObjData* object) { } if (WipeStatGet() == 0) { fn_1_2414(7, 2); - + for (var_r31 = 0; var_r31 < 4; var_r31++) { omVibrate(var_r31, 0xC8, 6, 6); } @@ -259,9 +259,10 @@ void fn_1_F70(omObjData* object) { } } -s8 fn_1_10E8(omObjData* object) { +s8 fn_1_10E8(omObjData *object) +{ Vec sp8; - ModelData* temp_r31; + ModelData *temp_r31; f32 var_f26; f32 var_f27; f32 temp_f29; @@ -269,14 +270,14 @@ s8 fn_1_10E8(omObjData* object) { f32 temp_f30; f32 var_f31; s8 var_r29; - unkStruct3* temp_r30; + unkStruct3 *temp_r30; temp_r31 = &Hu3DData[lbl_1_bss_DC->model[4]]; - temp_r30 = (unkStruct3*)object->data; + temp_r30 = (unkStruct3 *)object->data; if (lbl_1_bss_A != 0) { var_r29 = fn_1_524(); } - switch (lbl_1_bss_8) { /* irregular */ + switch (lbl_1_bss_8) { /* irregular */ case -1: if ((HuPadBtnDown[0] & 0x100) != 0) { lbl_1_bss_8 = 0; @@ -296,7 +297,8 @@ s8 fn_1_10E8(omObjData* object) { if (lbl_1_bss_C >= 1.0f) { lbl_1_bss_C = 1.0f; lbl_1_bss_8 = 0x63; - } else if (lbl_1_bss_C > 0.2f) { + } + else if (lbl_1_bss_C > 0.2f) { lbl_1_bss_A = 1; } var_f31 = sin((M_PI * (90.0f * lbl_1_bss_C)) / 180.0); @@ -321,13 +323,15 @@ s8 fn_1_10E8(omObjData* object) { } if (var_f31 >= 1.0f) { var_f31 = 0.0f; - } else { + } + else { var_f31 = sin((M_PI * (90.0f + (90.0f * var_f31))) / 180.0); } Hu3DMotionSpeedSet(lbl_1_bss_DC->model[4], 2.0f * var_f31); if (lbl_1_bss_C > 0.5f) { var_f31 = 2.0f * (9.0f * (1.0f - lbl_1_bss_C)); - } else { + } + else { var_f31 = 9.0f; } fn_1_44F0(lbl_1_bss_E0->model[0], 0.0f, 0.0f, 0.0f, 0, var_f31); @@ -377,14 +381,15 @@ s8 fn_1_10E8(omObjData* object) { return 0; } -s8 fn_1_1B74(omObjData* object) { +s8 fn_1_1B74(omObjData *object) +{ f32 temp_f30; f32 temp_f31; s16 temp_r27; s32 temp_r28; - unkStruct4* temp_r30; + unkStruct4 *temp_r30; - temp_r30 = (unkStruct4*)object->data; + temp_r30 = (unkStruct4 *)object->data; switch (lbl_1_bss_8) { case 0: temp_r30->unk2 = MGSeqCreate(3, 1); @@ -409,7 +414,8 @@ s8 fn_1_1B74(omObjData* object) { GWPlayerCoinWinAdd(temp_r30->unk4, 10); temp_r30->unk2 = MGSeqCreate(5, 3, GWPlayerCfg[temp_r30->unk4].character, -1, -1, -1); HuAudSStreamPlay(1); - } else { + } + else { temp_r30->unk2 = MGSeqCreate(3, 2); HuAudSStreamPlay(4); } @@ -433,8 +439,9 @@ s8 fn_1_1B74(omObjData* object) { return 0; } -void fn_1_2098(omObjData* object) { - ModelData* temp_r31; +void fn_1_2098(omObjData *object) +{ + ModelData *temp_r31; f32 var_f28; f32 var_f29; f32 var_f31; @@ -463,31 +470,35 @@ void fn_1_2098(omObjData* object) { } } -void fn_1_23EC(s16 arg0) { - unkStruct4* var_r31; +void fn_1_23EC(s16 arg0) +{ + unkStruct4 *var_r31; - var_r31 = (unkStruct4*)lbl_1_bss_E0->data; + var_r31 = (unkStruct4 *)lbl_1_bss_E0->data; var_r31->unk4 = arg0; } -void fn_1_2414(u16 arg0, u16 arg1) { - unkStruct4* var_r31; +void fn_1_2414(u16 arg0, u16 arg1) +{ + unkStruct4 *var_r31; - var_r31 = (unkStruct4*)lbl_1_bss_E0->data; + var_r31 = (unkStruct4 *)lbl_1_bss_E0->data; var_r31->unk0 &= ~arg0; var_r31->unk0 |= arg1; } -u16 fn_1_2454(u16 arg0) { - unkStruct4* var_r31; +u16 fn_1_2454(u16 arg0) +{ + unkStruct4 *var_r31; - var_r31 = (unkStruct4*)lbl_1_bss_E0->data; + var_r31 = (unkStruct4 *)lbl_1_bss_E0->data; return var_r31->unk0 & arg0; } -static inline void unkInline(unkStruct4* var_r31, s16 var_r29, s16* var_r28, s16 arg3) { - var_r31[var_r29].unk2 = Hu3DModelCreateFile(0x280002); - var_r31[var_r29].unk4 = Hu3DModelCreateFile(0x280003); +static inline void unkInline(unkStruct4 *var_r31, s16 var_r29, s16 *var_r28, s16 arg3) +{ + var_r31[var_r29].unk2 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x02)); + var_r31[var_r29].unk4 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x03)); Hu3DModelAttrSet(var_r31[var_r29].unk2, 0x40000001); Hu3DModelAttrSet(var_r31[var_r29].unk4, 0x40000002); if (arg3) { @@ -495,14 +506,15 @@ static inline void unkInline(unkStruct4* var_r31, s16 var_r29, s16* var_r28, s16 Hu3DModelAttrSet(var_r31[var_r29].unk4, 0x00000001); } var_r31[var_r29].unk6 = Hu3DModelCreateFile(0x2001C); - var_r31[var_r29].unk8 = Hu3DJointMotion(var_r31[var_r29].unk6, HuDataSelHeapReadNum(0x28000B, 0x10000000, HEAP_DATA)); - var_r31[var_r29].unkA = Hu3DJointMotion(var_r31[var_r29].unk6, HuDataSelHeapReadNum(0x28000C, 0x10000000, HEAP_DATA)); + var_r31[var_r29].unk8 = Hu3DJointMotionFile(var_r31[var_r29].unk6, DATA_MAKE_NUM(DATADIR_M409, 11)); + var_r31[var_r29].unkA = Hu3DJointMotionFile(var_r31[var_r29].unk6, DATA_MAKE_NUM(DATADIR_M409, 12)); Hu3DModelAttrSet(var_r31[var_r29].unk6, 0x40000001); Hu3DMotionSet(var_r31[var_r29].unk6, var_r31[var_r29].unk8); var_r31[var_r29].unkC = var_r29 + 3; if (arg3) { *var_r28 += (((rand8() << 8) | rand8()) % 4) + 2; - } else { + } + else { *var_r28 = 2; } fn_1_3988(&var_r31[var_r29], *var_r28, var_r29); @@ -510,19 +522,20 @@ static inline void unkInline(unkStruct4* var_r31, s16 var_r29, s16* var_r28, s16 Hu3DModelPosSet(var_r31[var_r29].unk4, var_r31[var_r29].unk18, 0.0f, -1200.0f); } -void fn_1_2484(omObjData* object) { +void fn_1_2484(omObjData *object) +{ s16 var_r28; // ! - uninitialized s16 var_r29; - unkStruct4* var_r31; + unkStruct4 *var_r31; var_r31 = &lbl_1_bss_40[0]; object->stat |= 0x100; - object->model[0] = Hu3DModelCreateFile(0x280000); - object->model[5] = Hu3DModelCreateFile(0x280008); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x00)); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x08)); Hu3DModelLayerSet(object->model[0], 2); Hu3DModelLayerSet(object->model[5], 2); - object->model[2] = Hu3DModelCreateFile(0x280005); - object->model[3] = Hu3DModelCreateFile(0x280006); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x05)); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x06)); Hu3DModelScaleSet(object->model[2], 1.1f, 1.0f, 1.0f); Hu3DModelScaleSet(object->model[3], 1.1f, 1.0f, 1.0f); Hu3DModelRotSet(object->model[2], 0.2f * lbl_1_data_4C->rot.x, 0.85f * lbl_1_data_4C->rot.y, 0.0f); @@ -533,35 +546,35 @@ void fn_1_2484(omObjData* object) { Hu3DTexScrollPosMoveSet(lbl_1_bss_24.unkE, -0.0002f, 0.0f, 0.0f); lbl_1_bss_24.unk10 = Hu3DTexScrollCreate(object->model[3], "cr_kumo3"); Hu3DTexScrollPosMoveSet(lbl_1_bss_24.unk10, -0.0003f, 0.0f, 0.0f); - var_r29 = Hu3DModelCreateFile(0x28000A); + var_r29 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x0A)); Hu3DModelLayerSet(var_r29, 0); - object->model[6] = Hu3DModelCreateFile(0x280007); + object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x07)); Hu3DModelAttrSet(object->model[6], 2); Hu3DModelScaleSet(object->model[6], 1.1f, 1.0f, 1.0f); Hu3DModelRotSet(object->model[6], 0.2f * lbl_1_data_4C->rot.x, 0.85f * lbl_1_data_4C->rot.y, 0.0f); Hu3DModelLayerSet(object->model[6], 1); lbl_1_bss_24.unk12 = Hu3DTexScrollCreate(object->model[6], "bg"); lbl_1_bss_24.unk14 = 0.0f; - object->model[4] = Hu3DModelCreateFile(0x280001); - object->model[1] = Hu3DModelCreateFile(0x280004); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x01)); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x04)); Hu3DModelAttrSet(object->model[4], 0x40000001); Hu3DModelPosSet(object->model[4], 1660.0f, 0.0f, -1200.0f); Hu3DModelPosSet(object->model[1], 1660.0f, 0.0f, -1200.0f); Hu3DModelLayerSet(object->model[1], 6); Hu3DModelAttrSet(object->model[1], 0x40000002); - + unkInline(var_r31, 0, &var_r28, 0); for (var_r29 = 1; var_r29 < 4; var_r29++) { unkInline(var_r31, var_r29, &var_r28, 1); } - + lbl_1_bss_24.unk0 = 0; lbl_1_bss_24.unk1 = 0; lbl_1_bss_24.unk8 = 0; lbl_1_bss_24.unkA = 0xB4; Hu3DModelShadowMapSet(object->model[0]); Hu3DModelShadowSet(object->model[4]); - + for (var_r29 = 0; var_r29 < 4; var_r29++) { Hu3DModelShadowSet(var_r31[var_r29].unk2); Hu3DModelShadowSet(var_r31[var_r29].unk4); @@ -570,12 +583,13 @@ void fn_1_2484(omObjData* object) { object->func = fn_1_2DCC; } -void fn_1_2DCC(omObjData* object) { +void fn_1_2DCC(omObjData *object) +{ u16 spE; u16 spC; u16 spA; u16 sp8; - ModelData* temp_r30; + ModelData *temp_r30; f32 temp_f29; f32 var_f31; f32 var_f30; @@ -586,7 +600,7 @@ void fn_1_2DCC(omObjData* object) { s16 var_r29; s32 temp_r16; s16 var_r18; - unkStruct4* var_r31; + unkStruct4 *var_r31; if ((lbl_1_bss_24.unk0 == 0) || (fn_1_2454(0x18) == 0x18)) { if (lbl_1_bss_24.unk1 != 0) { @@ -607,19 +621,20 @@ void fn_1_2DCC(omObjData* object) { HuAudFXPlay(0x55B); HuAudFXPlay(0x55D); } - break; - case 2: - temp_f29 = Hu3DMotionMaxTimeGet(var_r31->unk4); - if (Hu3DMotionTimeGet(var_r31->unk4) >= temp_f29) { - Hu3DMotionSet(var_r31->unk6, var_r31->unk8); - Hu3DModelAttrSet(var_r31->unk6, 0x40000001); - Hu3DModelAttrSet(var_r31->unk4, 0x40000002); - fn_1_2414(24, 8); - lbl_1_bss_24.unk1 = 0; - } - break; + break; + case 2: + temp_f29 = Hu3DMotionMaxTimeGet(var_r31->unk4); + if (Hu3DMotionTimeGet(var_r31->unk4) >= temp_f29) { + Hu3DMotionSet(var_r31->unk6, var_r31->unk8); + Hu3DModelAttrSet(var_r31->unk6, 0x40000001); + Hu3DModelAttrSet(var_r31->unk4, 0x40000002); + fn_1_2414(24, 8); + lbl_1_bss_24.unk1 = 0; + } + break; } - } else { + } + else { var_r31 = lbl_1_bss_24.unk4; switch (fn_1_2454(0x18)) { case 16: @@ -645,20 +660,23 @@ void fn_1_2DCC(omObjData* object) { break; } } - } else { + } + else { if (fn_1_2454(7) == 2) { var_f30 = 0.004f; - } else { + } + else { var_f30 = 0.008f; } var_r29 = 0; var_r23 = 0; var_r31 = lbl_1_bss_40; - - for (;var_r29 < 4; var_r29++, var_r31++) { + + for (; var_r29 < 4; var_r29++, var_r31++) { if ((s8)var_r31->unk0b == 0) { var_r23++; - } else { + } + else { if (var_r31->unkE-- <= 0) { temp_r30 = &Hu3DData[var_r31->unk2]; if ((var_r31->unkC < 2) && (lbl_1_bss_3C < 0xBU)) { @@ -684,7 +702,8 @@ void fn_1_2DCC(omObjData* object) { var_r27 = 1; } fn_1_3988(var_r31, 0, var_r27); - } else { + } + else { temp_r30->pos.x = var_r31->unk18 + (var_f31 * (var_r31->unk1C - var_r31->unk18)); } if (var_f31 > 0.1f) { @@ -699,8 +718,10 @@ void fn_1_2DCC(omObjData* object) { if (++lbl_1_bss_1C > (40.0f * var_f31)) { lbl_1_bss_1C = 0.0f; var_f31 = 1.0f - var_f31; - fn_1_4FFC(lbl_1_bss_E0->model[1], 130.0f + temp_r30->pos.x, 20.0f + temp_r30->pos.y, 95.0f + temp_r30->pos.z, (u8)(2.0f * var_f31)); - fn_1_4FFC(lbl_1_bss_E0->model[1], 630.0f + temp_r30->pos.x, 20.0f + temp_r30->pos.y, 95.0f + temp_r30->pos.z, (u8)var_f31); + fn_1_4FFC(lbl_1_bss_E0->model[1], 130.0f + temp_r30->pos.x, 20.0f + temp_r30->pos.y, 95.0f + temp_r30->pos.z, + (u8)(2.0f * var_f31)); + fn_1_4FFC( + lbl_1_bss_E0->model[1], 630.0f + temp_r30->pos.x, 20.0f + temp_r30->pos.y, 95.0f + temp_r30->pos.z, (u8)var_f31); } if (var_r31->unk10 < (0.7f + var_f30)) { HuAudFXEmiterPlay(0x55E, &temp_r30->pos); @@ -716,13 +737,13 @@ void fn_1_2DCC(omObjData* object) { if (var_r23 == 4) { var_r22 = 0x63; lbl_1_bss_24.unk0 = 0; - + for (var_r29 = 0, var_r31 = &lbl_1_bss_40[0]; var_r29 < 4; var_r29++, var_r31++) { if (var_r31->unkC < var_r22) { var_r22 = var_r31->unkC; var_r27 = var_r29; } - + for (var_r28 = 0, var_r31->unk20 = NULL; var_r28 < 4; var_r28++) { if ((var_r31->unkC + 1) == lbl_1_bss_40[var_r28].unkC) { var_r31->unk20 = &lbl_1_bss_40[var_r28]; @@ -734,7 +755,7 @@ void fn_1_2DCC(omObjData* object) { loop: if (var_r31->unk20) { - var_r31->unk20->unkE = 2 + (((rand8() << 8) | rand8()) % 4) + var_r31->unkE ; + var_r31->unk20->unkE = 2 + (((rand8() << 8) | rand8()) % 4) + var_r31->unkE; var_r31 = var_r31->unk20; goto loop; } @@ -743,17 +764,18 @@ void fn_1_2DCC(omObjData* object) { } } -void fn_1_3840(void) { +void fn_1_3840(void) +{ s16 var_r31; if ((lbl_1_bss_24.unk0 == 0) && (fn_1_2454(7) != 4)) { lbl_1_bss_24.unk0 = 1; - + for (var_r31 = 0; var_r31 < 4; var_r31++) { lbl_1_bss_40[var_r31].unk0b = 1; } if (++lbl_1_bss_20 == 2) { - + for (var_r31 = 0; var_r31 < 4; var_r31++) { lbl_1_bss_40[var_r31].unkE += 3; } @@ -763,7 +785,8 @@ void fn_1_3840(void) { } } -void fn_1_3988(unkStruct4* arg0, s16 arg1, s16 arg2) { +void fn_1_3988(unkStruct4 *arg0, s16 arg1, s16 arg2) +{ arg0->unk0b = 0; arg0->unkE = arg1; arg0->unk10 = 0.0f; @@ -777,10 +800,11 @@ void fn_1_3988(unkStruct4* arg0, s16 arg1, s16 arg2) { } } -s32 fn_1_3AD8(s32 arg0, f32 arg8, f32 arg9, f32 argA, f32 argB, f32 argC, f32 argD) { +s32 fn_1_3AD8(s32 arg0, f32 arg8, f32 arg9, f32 argA, f32 argB, f32 argC, f32 argD) +{ f32 sp1C; f32 temp; - ModelData* temp_r31; + ModelData *temp_r31; f32 temp_f31; f32 temp_f30; f32 temp_f29; @@ -788,11 +812,12 @@ s32 fn_1_3AD8(s32 arg0, f32 arg8, f32 arg9, f32 argA, f32 argB, f32 argC, f32 ar f32 temp_f27; f32 temp_f26; s16 var_r29; - unkStruct4* var_r30; - + unkStruct4 *var_r30; + var_r30 = lbl_1_bss_24.unk4; - if (!var_r30) return; - + if (!var_r30) + return; + for (var_r29 = 0; var_r29 < 2; var_r29++) { temp_r31 = &Hu3DData[var_r30->unk6]; temp_f31 = temp_r31->pos.x; @@ -801,17 +826,21 @@ s32 fn_1_3AD8(s32 arg0, f32 arg8, f32 arg9, f32 argA, f32 argB, f32 argC, f32 ar temp_f28 = arg8 + argB; temp_f27 = arg9 + argC; temp_f26 = argA + argD; - temp = sqrtf((temp_f28 - temp_f31) * (temp_f28 - temp_f31) + (temp_f27 - temp_f30) * (temp_f27 - temp_f30) + (temp_f26 - temp_f29) * (temp_f26 - temp_f29)); + temp = sqrtf((temp_f28 - temp_f31) * (temp_f28 - temp_f31) + (temp_f27 - temp_f30) * (temp_f27 - temp_f30) + + (temp_f26 - temp_f29) * (temp_f26 - temp_f29)); if (temp < 50.0f) { return 1; } - sp1C = -((argA * argD) + (((arg9 * argC) + (((-temp_f31 * argB) + (arg8 * argB)) - (temp_f30 * argC))) - (temp_f29 * argD))) / ((argD * argD) + ((argB * argB) + (argC * argC))); - if (sp1C >= 1.0f) continue; - + sp1C = -((argA * argD) + (((arg9 * argC) + (((-temp_f31 * argB) + (arg8 * argB)) - (temp_f30 * argC))) - (temp_f29 * argD))) + / ((argD * argD) + ((argB * argB) + (argC * argC))); + if (sp1C >= 1.0f) + continue; + temp_f28 = arg8 + (argB * sp1C); temp_f27 = arg9 + (argC * sp1C); temp_f26 = argA + (argD * sp1C); - temp = sqrtf((temp_f28 - temp_f31) * (temp_f28 - temp_f31) + (temp_f27 - temp_f30) * (temp_f27 - temp_f30) + (temp_f26 - temp_f29) * (temp_f26 - temp_f29)); + temp = sqrtf((temp_f28 - temp_f31) * (temp_f28 - temp_f31) + (temp_f27 - temp_f30) * (temp_f27 - temp_f30) + + (temp_f26 - temp_f29) * (temp_f26 - temp_f29)); if (temp < 50.0f) { return 1; } @@ -821,7 +850,8 @@ s32 fn_1_3AD8(s32 arg0, f32 arg8, f32 arg9, f32 argA, f32 argB, f32 argC, f32 ar return 0; } -void fn_1_40A4(Mtx arg0, Mtx arg1) { +void fn_1_40A4(Mtx arg0, Mtx arg1) +{ arg1[0][0] = arg0[0][0]; arg1[1][0] = arg0[0][1]; arg1[2][0] = arg0[0][2]; @@ -836,14 +866,16 @@ void fn_1_40A4(Mtx arg0, Mtx arg1) { arg1[2][3] = 0.0f; } -f32 fn_1_4120(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { +f32 fn_1_4120(f32 arg0, f32 arg1, f32 arg2, f32 arg3) +{ f32 temp_f31; temp_f31 = 1.0f - arg3; return (arg2 * (arg3 * arg3)) + ((arg0 * (temp_f31 * temp_f31)) + (arg1 * (2.0f * temp_f31 * arg3))); } -void fn_1_417C(void) { +void fn_1_417C(void) +{ if ((HuPadBtnDown[0] & 0x40) != 0) { lbl_1_bss_21 ^= 1; @@ -864,7 +896,8 @@ void fn_1_417C(void) { Center.x += HuPadSubStkX[0]; if ((HuPadBtn[0] & 0x20) != 0) { Center.y += HuPadSubStkY[0]; - } else { + } + else { Center.z += HuPadSubStkY[0]; } if ((HuPadBtn[0] & 0x400) != 0) { @@ -881,26 +914,27 @@ void fn_1_417C(void) { } } -void fn_1_44F0(s16 arg0, f32 arg8, f32 arg9, f32 argA, s8 arg1, s16 arg2) { +void fn_1_44F0(s16 arg0, f32 arg8, f32 arg9, f32 argA, s8 arg1, s16 arg2) +{ Vec sp20; Vec sp14; - unkStruct4* sp10; + unkStruct4 *sp10; GXColor spA; - ModelData* temp_r30; + ModelData *temp_r30; f32 temp_f31; s16 var_r29; - unkStruct5* var_r31; + unkStruct5 *var_r31; temp_r30 = &Hu3DData[lbl_1_bss_DC->model[4]]; - sp10 = (unkStruct4*)temp_r30->unk_120; + sp10 = (unkStruct4 *)temp_r30->unk_120; if (arg1 == 0) { arg8 = 150.0f + temp_r30->pos.x; arg9 = 360.0f + temp_r30->pos.y; argA = temp_r30->pos.z; } - + for (var_r29 = 0; var_r29 < arg2; var_r29++) { - switch (arg1) { /* irregular */ + switch (arg1) { /* irregular */ case 0: sp20.x = arg8 + ((((rand8() << 8) | rand8()) % 41) - 20); sp20.z = argA + ((((rand8() << 8) | rand8()) % 41) - 20); @@ -911,8 +945,9 @@ void fn_1_44F0(s16 arg0, f32 arg8, f32 arg9, f32 argA, s8 arg1, s16 arg2) { spA.r = spA.g = spA.b = (((rand8() << 8) | rand8()) % 33) + 32; spA.a = 0xFF; var_r31 = fn_1_58E0(arg0, &sp20, &sp14, 0.0f, &spA); - if (!var_r31) return; - + if (!var_r31) + return; + temp_f31 = (((rand8() << 8) | rand8()) % 361); var_r31->unk0.x = (2.0 + (3.0 * sin((M_PI * temp_f31) / 180.0))); var_r31->unk0.y = (0.1f * ((((rand8() << 8) | rand8()) % 31) + 40)); @@ -936,8 +971,9 @@ void fn_1_44F0(s16 arg0, f32 arg8, f32 arg9, f32 argA, s8 arg1, s16 arg2) { spA.b = 0x8C; spA.a = 0x80; var_r31 = fn_1_58E0(arg0, &sp20, &sp14, 0.0f, &spA); - if (!var_r31) return; - + if (!var_r31) + return; + var_r31->unk28 = 0; var_r31->unk2A = ((((rand8() << 8) | rand8()) % 3) + 2); var_r31->unk0.x = (0.1f * ((((rand8() << 8) | rand8()) % 11) + 30)); @@ -951,15 +987,16 @@ void fn_1_44F0(s16 arg0, f32 arg8, f32 arg9, f32 argA, s8 arg1, s16 arg2) { } } -void fn_1_4FFC(s16 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) { +void fn_1_4FFC(s16 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) +{ Vec sp2C; Vec sp20; GXColor sp1A; s16 sp18; f32 temp_f31; s16 var_r30; - unkStruct5* temp_r31; - + unkStruct5 *temp_r31; + for (var_r30 = 0; var_r30 < arg4; var_r30++) { sp2C.x = arg1 + ((((rand8() << 8) | rand8()) % 21) - 10); sp2C.y = arg2; @@ -969,8 +1006,9 @@ void fn_1_4FFC(s16 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) { sp20.z = 1.0f; sp1A.r = sp1A.g = sp1A.b = sp1A.a = 0xFF; temp_r31 = fn_1_58E0(arg0, &sp2C, &sp20, 0.0f, &sp1A); - if (!temp_r31) break; - + if (!temp_r31) + break; + temp_r31->unk4C = -1; temp_f31 = ((((rand8() << 8) | rand8()) % 81) - 40); temp_r31->unk0.x = (13.0 * cosd(temp_f31)); @@ -983,16 +1021,17 @@ void fn_1_4FFC(s16 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) { } } -void fn_1_5408(ModelData* arg0, struct _unkStruct6* arg1, Mtx arg2) { +void fn_1_5408(ModelData *arg0, struct _unkStruct6 *arg1, Mtx arg2) +{ s16 var_r29; - GXColor* var_r30; - unkStruct5* var_r31; + GXColor *var_r30; + unkStruct5 *var_r31; var_r29 = 0; var_r31 = arg1->unk18; var_r30 = arg1->unk24; - - for (;var_r29 < arg1->unk0; var_r29++, var_r31++, var_r30++) { + + for (; var_r29 < arg1->unk0; var_r29++, var_r31++, var_r30++) { if (var_r31->unk4E != 0) { switch (var_r31->unk2C) { case 0: @@ -1028,19 +1067,20 @@ void fn_1_5408(ModelData* arg0, struct _unkStruct6* arg1, Mtx arg2) { } } -void fn_1_55E0(ModelData* arg0, struct _unkStruct6* arg1, Mtx arg2) { - GXColor* var_r30; +void fn_1_55E0(ModelData *arg0, struct _unkStruct6 *arg1, Mtx arg2) +{ + GXColor *var_r30; f32 var_f31; f32 var_f30; s16 var_r29; s32 var_r28; - unkStruct5* var_r31; + unkStruct5 *var_r31; var_r29 = 0; var_r31 = arg1->unk18; var_r30 = arg1->unk24; - - for (;var_r29 < arg1->unk0; var_r29++, var_r31++, var_r30++) { + + for (; var_r29 < arg1->unk0; var_r29++, var_r31++, var_r30++) { if (var_r31->unk4E != 0) { var_r31->unk0.x -= var_r31->unkC.x; var_r31->unk0.y -= 0.2f; @@ -1050,12 +1090,14 @@ void fn_1_55E0(ModelData* arg0, struct _unkStruct6* arg1, Mtx arg2) { } if (var_r31->unkC.z < 0.0f) { var_f31 = -var_r31->unkC.z; - } else { + } + else { var_f31 = var_r31->unkC.z; } if (var_r31->unk0.z < 0.0f) { var_f30 = -var_r31->unk0.z; - } else { + } + else { var_f30 = var_r31->unk0.z; } if (var_f30 < var_f31) { @@ -1070,7 +1112,8 @@ void fn_1_55E0(ModelData* arg0, struct _unkStruct6* arg1, Mtx arg2) { } if (var_r31->unk18 > 255.0f) { var_r28 = 0xFF; - } else { + } + else { var_r28 = (u8)var_r31->unk18; } var_r30->a = var_r28; @@ -1081,12 +1124,13 @@ void fn_1_55E0(ModelData* arg0, struct _unkStruct6* arg1, Mtx arg2) { } } -void fn_1_57DC(ModelData* arg0, struct _unkStruct6* arg1, Mtx arg2) { +void fn_1_57DC(ModelData *arg0, struct _unkStruct6 *arg1, Mtx arg2) +{ Vec sp18; Vec spC; GXColor sp8; - ModelData* temp_r30; - unkStruct5* temp_r31; + ModelData *temp_r30; + unkStruct5 *temp_r31; temp_r30 = &Hu3DData[lbl_1_bss_DC->model[4]]; temp_r31 = arg1->unk18; @@ -1100,18 +1144,19 @@ void fn_1_57DC(ModelData* arg0, struct _unkStruct6* arg1, Mtx arg2) { temp_r31->unk40.z = temp_r30->pos.z; } -unkStruct5* fn_1_58E0(s16 arg0, Vec* arg1, Vec* arg2, f32 arg3, GXColor* arg4) { +unkStruct5 *fn_1_58E0(s16 arg0, Vec *arg1, Vec *arg2, f32 arg3, GXColor *arg4) +{ s16 var_r29; - unkStruct5* var_r31; - unkStruct6* temp_r30; - ModelData* var_r28; + unkStruct5 *var_r31; + unkStruct6 *temp_r30; + ModelData *var_r28; var_r28 = &Hu3DData[arg0]; - temp_r30 = (unkStruct6*)var_r28->unk_120; - + temp_r30 = (unkStruct6 *)var_r28->unk_120; + var_r29 = 0; var_r31 = temp_r30->unk18; - for (;var_r29 < temp_r30->unk0; var_r29++, var_r31++) { + for (; var_r29 < temp_r30->unk0; var_r29++, var_r31++) { if (var_r31->unk4E == 0) { break; } @@ -1132,21 +1177,22 @@ unkStruct5* fn_1_58E0(s16 arg0, Vec* arg1, Vec* arg2, f32 arg3, GXColor* arg4) { return var_r31; } -s16 fn_1_5A18(AnimData* arg0, s16 arg1, f32 arg8, s16 arg2, s16 arg3) { - ModelData* temp_r28; +s16 fn_1_5A18(AnimData *arg0, s16 arg1, f32 arg8, s16 arg2, s16 arg3) +{ + ModelData *temp_r28; f32 temp_f0; s16 var_r21; s16 var_r22; s16 var_r30; s16 var_r20; - unkStruct6* var_r31; - void* var_r19; - void* var_r18; - unkStruct5* var_r24; - Vec* var_r25; - GXColor* var_r27; - HsfVector2f* var_r29; - + unkStruct6 *var_r31; + void *var_r19; + void *var_r18; + unkStruct5 *var_r24; + Vec *var_r25; + GXColor *var_r27; + HsfVector2f *var_r29; + var_r21 = Hu3DHookFuncCreate(fn_1_602C); temp_r28 = &Hu3DData[var_r21]; var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(unkStruct6), temp_r28->unk_48); @@ -1158,26 +1204,26 @@ s16 fn_1_5A18(AnimData* arg0, s16 arg1, f32 arg8, s16 arg2, s16 arg3) { var_r31->unkC = NULL; var_r24 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(unkStruct5), temp_r28->unk_48); var_r31->unk18 = var_r24; - + for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r24++) { var_r24->unk4C = -1; var_r24->unk4E = 0; } var_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec) * 4, temp_r28->unk_48); var_r31->unk1C = var_r25; - + for (var_r30 = 0; var_r30 < (arg1 * 4); var_r30++, var_r25++) { var_r25->x = var_r25->y = var_r25->z = 0.0f; } var_r27 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(GXColor), temp_r28->unk_48); var_r31->unk24 = var_r27; - + for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r27++) { var_r27->r = var_r27->g = var_r27->b = var_r27->a = 0xFF; } var_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(HsfVector2f) * 4, temp_r28->unk_48); var_r31->unk20 = var_r29; - + for (var_r30 = 0; var_r30 < arg1; var_r30++) { var_r29->x = 0.0f; var_r29->y = 0.0f; @@ -1198,7 +1244,8 @@ s16 fn_1_5A18(AnimData* arg0, s16 arg1, f32 arg8, s16 arg2, s16 arg3) { var_r31->unk14 = (var_r22 * var_r20); var_r31->unk60 = (1.0f / var_r22); var_r31->unk64 = (1.0f / var_r20); - } else { + } + else { var_r22 = 1; var_r31->unk14 = 1; var_r31->unk60 = 1.0f; @@ -1213,7 +1260,7 @@ s16 fn_1_5A18(AnimData* arg0, s16 arg1, f32 arg8, s16 arg2, s16 arg3) { DCFlushRange(var_r19, 0x20000); GXBeginDisplayList(var_r19, 0x20000); GXBegin(GX_QUADS, GX_VTXFMT0, (arg1 * 4)); - + for (var_r30 = 0; var_r30 < arg1; var_r30++) { GXPosition1x16(var_r30 * 4); GXColor1x16(var_r30); @@ -1236,35 +1283,39 @@ s16 fn_1_5A18(AnimData* arg0, s16 arg1, f32 arg8, s16 arg2, s16 arg3) { return var_r21; } -void fn_1_5F5C(s16 arg0) { - ModelData* var_r31; - unkStruct6* var_r30; +void fn_1_5F5C(s16 arg0) +{ + ModelData *var_r31; + unkStruct6 *var_r30; var_r31 = &Hu3DData[arg0]; - var_r30 = (unkStruct6*)var_r31->unk_120; + var_r30 = (unkStruct6 *)var_r31->unk_120; HuSprAnimKill(var_r30->unk10); Hu3DModelKill(arg0); } -void fn_1_5FBC(s16 arg0, m409Func6 arg1) { - ModelData* var_r31; - unkStruct6* var_r30; +void fn_1_5FBC(s16 arg0, m409Func6 arg1) +{ + ModelData *var_r31; + unkStruct6 *var_r30; var_r31 = &Hu3DData[arg0]; - var_r30 = (unkStruct6*)var_r31->unk_120; + var_r30 = (unkStruct6 *)var_r31->unk_120; var_r30->unkC = arg1; } -void fn_1_5FF4(s16 arg0, u8 arg1) { - ModelData* var_r31; - unkStruct6* var_r30; +void fn_1_5FF4(s16 arg0, u8 arg1) +{ + ModelData *var_r31; + unkStruct6 *var_r30; var_r31 = &Hu3DData[arg0]; - var_r30 = (unkStruct6*)var_r31->unk_120; + var_r30 = (unkStruct6 *)var_r31->unk_120; var_r30->unk8 = arg1; } -void fn_1_602C(ModelData* arg0, f32 (*arg1)[4]) { +void fn_1_602C(ModelData *arg0, f32 (*arg1)[4]) +{ Mtx sp128; ROMtx spF8; Mtx spC8; @@ -1278,15 +1329,15 @@ void fn_1_602C(ModelData* arg0, f32 (*arg1)[4]) { Vec sp20; Vec sp14; Vec sp8; - Vec* var_r31; + Vec *var_r31; s16 var_r24; - HsfVector2f* var_r26; + HsfVector2f *var_r26; s16 var_r25; - unkStruct6* temp_r30; - unkStruct5* var_r29; + unkStruct6 *temp_r30; + unkStruct5 *var_r29; m409Func6 var_r23; - temp_r30 = (unkStruct6*)arg0->unk_120; + temp_r30 = (unkStruct6 *)arg0->unk_120; GXLoadPosMtxImm(arg1, 0); GXSetNumTevStages(1); GXSetNumTexGens(1); @@ -1295,7 +1346,8 @@ void fn_1_602C(ModelData* arg0, f32 (*arg1)[4]) { var_r24 = temp_r30->unk10->bmp->dataFmt & 0xF; if ((var_r24 == 7) || (var_r24 == 8)) { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); @@ -1305,22 +1357,23 @@ void fn_1_602C(ModelData* arg0, f32 (*arg1)[4]) { GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); if ((arg0->attr & 2) != 0) { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); - } else { + } + else { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); } HuSprTexLoad(temp_r30->unk10, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); GXSetZCompLoc(0); switch (temp_r30->unk8) { - case 0: - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); - break; - case 1: - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); - break; - case 2: - GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); - break; + case 0: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + break; + case 1: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + break; + case 2: + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + break; } GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); @@ -1342,8 +1395,8 @@ void fn_1_602C(ModelData* arg0, f32 (*arg1)[4]) { var_r31 = temp_r30->unk1C; var_r26 = temp_r30->unk20; PSMTXROMultVecArray(spF8, &temp_r30->unk2C, &sp68[0], 4); - - for (var_r25 = 0; var_r25 < temp_r30->unk0; var_r25++, var_r29++, var_r26+=4) { + + for (var_r25 = 0; var_r25 < temp_r30->unk0; var_r25++, var_r29++, var_r26 += 4) { if (var_r29->unk4E == 0) { var_r31->x = var_r31->y = var_r31->z = 0.0f; var_r31++; @@ -1353,14 +1406,16 @@ void fn_1_602C(ModelData* arg0, f32 (*arg1)[4]) { var_r31++; var_r31->x = var_r31->y = var_r31->z = 0.0f; var_r31++; - } else { + } + else { if (var_r29->unk30 == 0.0f) { fn_1_6778(&sp68[0], &sp38, &var_r29->unk34, 4); PSVECAdd(&sp38, &var_r29->unk40, var_r31++); PSVECAdd(&sp44, &var_r29->unk40, var_r31++); PSVECAdd(&sp50, &var_r29->unk40, var_r31++); PSVECAdd(&sp5C, &var_r29->unk40, var_r31++); - } else { + } + else { fn_1_6778(&temp_r30->unk2C, &sp38, &var_r29->unk34, 4); PSMTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk30); PSMTXConcat(sp128, spC8, sp98); @@ -1381,11 +1436,12 @@ void fn_1_602C(ModelData* arg0, f32 (*arg1)[4]) { GXCallDisplayList(temp_r30->unk28, temp_r30->unk4); } -void fn_1_6608(HsfVector2f* arg0, s16 arg1, s16 arg2, f32 arg3, f32 arg4) { +void fn_1_6608(HsfVector2f *arg0, s16 arg1, s16 arg2, f32 arg3, f32 arg4) +{ s16 var_r31; s16 var_r30; s16 var_r29; - + for (var_r31 = 0; var_r31 < arg1; var_r31++, arg0++) { var_r30 = (var_r31 % arg2); var_r29 = (var_r31 / arg2); @@ -1394,7 +1450,8 @@ void fn_1_6608(HsfVector2f* arg0, s16 arg1, s16 arg2, f32 arg3, f32 arg4) { } } -void fn_1_66D4(HsfVector2f* arg0, HsfVector2f* arg1, s16 arg2, f32 arg3, f32 arg4) { +void fn_1_66D4(HsfVector2f *arg0, HsfVector2f *arg1, s16 arg2, f32 arg3, f32 arg4) +{ arg0[0].x = arg1[arg2].x; arg0[0].y = arg1[arg2].y; arg0[1].x = (arg3 + arg1[arg2].x); @@ -1405,12 +1462,13 @@ void fn_1_66D4(HsfVector2f* arg0, HsfVector2f* arg1, s16 arg2, f32 arg3, f32 arg arg0[3].y = (arg4 + arg1[arg2].y); } -void fn_1_6778(Vec* arg0, Vec* arg1, Vec* arg2, s16 arg3) { +void fn_1_6778(Vec *arg0, Vec *arg1, Vec *arg2, s16 arg3) +{ s16 var_r31; - + for (var_r31 = 0; var_r31 < arg3; var_r31++, arg0++, arg1++) { arg1->x = arg0->x * arg2->x; arg1->y = arg0->y * arg2->y; arg1->z = arg0->z * arg2->z; } -} \ No newline at end of file +} diff --git a/src/REL/m409Dll/player.c b/src/REL/m409Dll/player.c index 9e0a7b69..743d0adf 100644 --- a/src/REL/m409Dll/player.c +++ b/src/REL/m409Dll/player.c @@ -21,7 +21,7 @@ unkStruct9 lbl_1_bss_F0; // data u32 lbl_1_data_138 = 0xFFFF0000; -s32 lbl_1_data_13C[7] = { 0x30, 0x2D, 0x3A, 0x2E, 0x280032, 0x17, 0x18 }; +s32 lbl_1_data_13C[7] = { 0x30, 0x2D, 0x3A, 0x2E, DATA_MAKE_NUM(DATADIR_M409, 0x32), 0x17, 0x18 }; GXColor lbl_1_data_158[8] = { { 0xFF, 0x00, 0x00, 0xFF }, { 0x00, 0x00, 0xFF, 0xFF }, @@ -61,7 +61,7 @@ void fn_1_67E0(Process* arg0) { } lbl_1_bss_39C = var_r30 = omAddObjEx(arg0, 0x40, 8, 0xA, 4, fn_1_91C0); fn_1_BF88(0x40, 0x40); - fn_1_DF20(0x28002C, 0x40, 0x40); + fn_1_DF20(DATA_MAKE_NUM(DATADIR_M409, 0x2C), 0x40, 0x40); temp_r28 = (u8)frand(); for (var_r31 = 0; var_r31 < (temp_r28 + 1); var_r31++) { @@ -95,7 +95,7 @@ void fn_1_6928(omObjData* arg0) { s32 var_r30; s32 var_r28; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct7), 0x10000000); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct7), MEMORY_DEFAULT_NUM); arg0->data = var_r31; var_r31->unk0 = arg0->work[0]; var_r31->unk1 = GWPlayerCfg[var_r31->unk0].character; @@ -133,12 +133,12 @@ void fn_1_6928(omObjData* arg0) { Hu3DModelPosSet(var_r30, var_r31->unk24.x, var_r31->unk24.y, var_r31->unk24.z); Hu3DModelRotSet(var_r30, 0.0f, 30.0f, 0.0f); CharModelStepTypeSet(var_r31->unk1, 0); - arg0->model[1] = var_r30 = Hu3DModelCreate(HuDataSelHeapReadNum(0x280012, 0x10000000, HEAP_DATA)); + arg0->model[1] = var_r30 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x12)); Hu3DModelHookSet(arg0->model[0], (char*)sp38[var_r31->unk1], arg0->model[1]); var_r30 = fn_1_DA48(2, 1); var_r31->unk57 = var_r30; lbl_1_bss_F0.unk10[var_r30].unk30 = fn_1_8838; - fn_1_E2A8(var_r30, 0, 0x28002B, 0x40, 0x40); + fn_1_E2A8(var_r30, 0, DATA_MAKE_NUM(DATADIR_M409, 0x2B), 0x40, 0x40); fn_1_F098(var_r30, lbl_1_data_158[var_r31->unk1].r, lbl_1_data_158[var_r31->unk1].g, lbl_1_data_158[var_r31->unk1].b, lbl_1_data_158[var_r31->unk1].a); fn_1_F024(var_r30, 1, lbl_1_data_158[var_r31->unk1].r, lbl_1_data_158[var_r31->unk1].g, lbl_1_data_158[var_r31->unk1].b, 0x98); fn_1_E85C(var_r30, 0, var_r31->unk24.x, 100.0f + var_r31->unk24.y, -1200.0f); @@ -149,7 +149,7 @@ void fn_1_6928(omObjData* arg0) { fn_1_F408(var_r30, 1, 1); var_r30 = fn_1_DA48(1, 1); fn_1_DEF4(var_r30, 0, 0); - fn_1_E7C8(lbl_1_bss_F0.unk6, 0, 0x28002D); + fn_1_E7C8(lbl_1_bss_F0.unk6, 0, DATA_MAKE_NUM(DATADIR_M409, 0x2D)); var_r31->unk58 = var_r30; lbl_1_bss_F0.unk10[var_r30].unk30 = &fn_1_8D6C; fn_1_ED44(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 4); @@ -158,27 +158,27 @@ void fn_1_6928(omObjData* arg0) { fn_1_EC1C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 0.5f, 0.5f, 1.0f); var_r31->unk59 = 0; var_r31->unk60 = 0; - var_r30 = espEntry(0x280031, 1, 0); + var_r30 = espEntry(DATA_MAKE_NUM(DATADIR_M409, 0x31), 1, 0); var_r31->unk55 = var_r30; espColorSet(var_r30, 0, 0, 0); espTPLvlSet(var_r30, 0.5); espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x, lbl_1_data_178[var_r31->unk0].y); espAttrSet(var_r30, 4); - var_r30 = espEntry(0x280030, 1, 0); + var_r30 = espEntry(DATA_MAKE_NUM(DATADIR_M409, 0x30), 1, 0); var_r31->unk54 = var_r30; espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x, lbl_1_data_178[var_r31->unk0].y); espAttrSet(var_r30, 4); - var_r30 = espEntry(var_r31->unk1 + 0x610000, 1, 0); + var_r30 = espEntry(var_r31->unk1 + DATA_MAKE_NUM(DATADIR_MGCONST, 0x00), 1, 0); var_r31->unk56 = var_r30; espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x - 27.0f, lbl_1_data_178[var_r31->unk0].y - 20.0f); espAttrSet(var_r30, 4); for (var_r28 = 0; var_r28 < 3; var_r28++) { - var_r30 = espEntry(0x61000A, 0, 0); + var_r30 = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x0A), 0, 0); var_r31->unk5A[var_r28][0] = var_r30; espAttrSet(var_r30, 4); espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x - 32.0f + (var_r28 * 0x1E), 16.0f + lbl_1_data_178[var_r31->unk0].y); - var_r30 = espEntry(0x61000B, 0, 0); + var_r30 = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x0B), 0, 0); var_r31->unk5A[var_r28][1] = var_r30; espAttrSet(var_r30, 4); espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x - 32.0f + (var_r28 * 0x1E), 16.0f + lbl_1_data_178[var_r31->unk0].y); @@ -286,7 +286,7 @@ void fn_1_7344(omObjData* arg0) { Hu3DModelAttrSet(arg0->model[1], 1); temp_r23 = fn_1_DA48(1, 1); fn_1_DEF4(temp_r23, 0, 0); - fn_1_E7C8(lbl_1_bss_F0.unk6, 0, 0x28002C); + fn_1_E7C8(lbl_1_bss_F0.unk6, 0, DATA_MAKE_NUM(DATADIR_M409, 0x2C)); fn_1_E85C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 20.0f + temp_r31->unk24.x, 100.0f + temp_r31->unk24.y, temp_r31->unk24.z - 25.0f); fn_1_EC1C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 2.0f, 2.0f, 1.0f); fn_1_ED44(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 0x80000000); @@ -693,7 +693,7 @@ void fn_1_91C0(omObjData* arg0) { Hu3DModelAttrSet(var_r28, 0x40000001); for (var_r30 = 0; var_r30 < 3; var_r30++) { - arg0->motion[var_r30] = Hu3DJointMotion(var_r28, HuDataSelHeapReadNum(var_r30 + 0x28000F, 0x10000000, HEAP_DATA)); + arg0->motion[var_r30] = Hu3DJointMotion(var_r28, HuDataSelHeapReadNum(var_r30 + DATA_MAKE_NUM(DATADIR_M409, 0x0F), MEMORY_DEFAULT_NUM, HEAP_DATA)); } Hu3DMotionSet(var_r28, arg0->motion[0]); omSetTra(arg0, 419.99997f, 250.0f, -180.0f); @@ -704,7 +704,7 @@ void fn_1_91C0(omObjData* arg0) { } for (var_r30 = 0; var_r30 < 8; var_r30++) { - var_r28 = Hu3DModelCreateFile(var_r30 + 0x28001B); + var_r28 = Hu3DModelCreateFile(var_r30 + DATA_MAKE_NUM(DATADIR_M409, 0x1B)); arg0->model[var_r30 + 1] = var_r28; Hu3DModelAttrSet(var_r28, 1); } @@ -712,7 +712,7 @@ void fn_1_91C0(omObjData* arg0) { for (var_r31 = lbl_1_bss_10C, var_r30 = 0; var_r30 < 8; var_r30++, var_r31++) { - var_r28 = Hu3DModelCreateFile(var_r30 + 0x280013); + var_r28 = Hu3DModelCreateFile(var_r30 + DATA_MAKE_NUM(DATADIR_M409, 0x13)); var_r31->unk0 = var_r28; Hu3DModelLayerSet(var_r28, 3); var_r31->unkC.x = -400.0f + (100.0f * var_r30); @@ -728,7 +728,7 @@ void fn_1_91C0(omObjData* arg0) { var_r31->unk30.z = var_r31->unkC.z; var_r31->unk48 = var_r30; fn_1_DEF4((var_r31->unk1 = fn_1_DA48(1, 1)), 0, 0); - fn_1_E2A8(lbl_1_bss_F0.unk6, 0, var_r30 + 0x280023, 0x40, 0x40); + fn_1_E2A8(lbl_1_bss_F0.unk6, 0, var_r30 + DATA_MAKE_NUM(DATADIR_M409, 0x23), 0x40, 0x40); fn_1_EC1C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 2.0f, 2.0f, 1.0f); fn_1_F024(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 0xFF, 0xFF, 0xFF, 0xA0); fn_1_ED44(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 0x40000004); @@ -892,7 +892,7 @@ void fn_1_962C(omObjData* arg0) { } var_r26 = fn_1_DA48(1, 1); fn_1_DEF4(var_r26, 0, 0); - fn_1_E7C8(lbl_1_bss_F0.unk6, 0, 0x28002C); + fn_1_E7C8(lbl_1_bss_F0.unk6, 0, DATA_MAKE_NUM(DATADIR_M409, 0x2C)); fn_1_E85C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); fn_1_EC1C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 4.0f, 4.0f, 1.0f); fn_1_ED44(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 0x80000000); @@ -1232,4 +1232,4 @@ f32 fn_1_BF38(s16 arg0) { hsfMotionData = motionData->unk_04->motion; length = hsfMotionData->len; return length; -} \ No newline at end of file +} diff --git a/src/REL/m410Dll/player.c b/src/REL/m410Dll/player.c index 6af51bc0..44ed28b2 100644 --- a/src/REL/m410Dll/player.c +++ b/src/REL/m410Dll/player.c @@ -20,21 +20,53 @@ char *lbl_1_data_140[] = { "dmy-itemhook-r", "dmy-itemhook-r", "dmy-itemhook-r", char *lbl_1_data_16C[] = { "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r" }; -s32 lbl_1_data_18C[] - = { DATA_MAKE_NUM(DATADIR_M410, 0), DATA_MAKE_NUM(DATADIR_M410, 1), DATA_MAKE_NUM(DATADIR_M410, 2), DATA_MAKE_NUM(DATADIR_M410, 3), - DATA_MAKE_NUM(DATADIR_M410, 4), DATA_MAKE_NUM(DATADIR_M410, 5), DATA_MAKE_NUM(DATADIR_M410, 6), DATA_MAKE_NUM(DATADIR_M410, 7) }; +s32 lbl_1_data_18C[] = { + DATA_MAKE_NUM(DATADIR_M410, 0), + DATA_MAKE_NUM(DATADIR_M410, 1), + DATA_MAKE_NUM(DATADIR_M410, 2), + DATA_MAKE_NUM(DATADIR_M410, 3), + DATA_MAKE_NUM(DATADIR_M410, 4), + DATA_MAKE_NUM(DATADIR_M410, 5), + DATA_MAKE_NUM(DATADIR_M410, 6), + DATA_MAKE_NUM(DATADIR_M410, 7), +}; -u32 lbl_1_data_1AC[] = { 0, DATA_MAKE_NUM(DATADIR_M410, 70), DATA_MAKE_NUM(DATADIR_M410, 22), DATA_MAKE_NUM(DATADIR_M410, 30), - DATA_MAKE_NUM(DATADIR_M410, 38), DATA_MAKE_NUM(DATADIR_M410, 46), DATA_MAKE_NUM(DATADIR_M410, 62), DATA_MAKE_NUM(DATADIR_M410, 54), - DATA_MAKE_NUM(DATADIR_E3SETUP, 23), DATA_MAKE_NUM(DATADIR_E3SETUP, 24) }; +u32 lbl_1_data_1AC[] = { + 0, + DATA_MAKE_NUM(DATADIR_M410, 70), + DATA_MAKE_NUM(DATADIR_M410, 22), + DATA_MAKE_NUM(DATADIR_M410, 30), + DATA_MAKE_NUM(DATADIR_M410, 38), + DATA_MAKE_NUM(DATADIR_M410, 46), + DATA_MAKE_NUM(DATADIR_M410, 62), + DATA_MAKE_NUM(DATADIR_M410, 54), + DATA_MAKE_NUM(DATADIR_E3SETUP, 23), + DATA_MAKE_NUM(DATADIR_E3SETUP, 24), +}; -UnkM410Struct10 lbl_1_data_1D4[] = { { 0.0f, 0.0f, 12.0f, 0x40000001 }, { 0.0f, 0.0f, 1.1999999, 0 }, { 0.0f, 0.0f, 12.0f, 0x40000001 }, - { 0.0f, 0.0f, 6.0f, 0 }, { 6.0f, 0.0f, 4.7999997f, 0 }, { 0.0f, 0.0f, 1.1999999f, 0 }, { 0.0f, 0.0f, 1.1999999f, 0 }, { 0.0f, 0.0f, 1.1999999f, 0 }, - { 0.0f, 0.0f, 12.0f, 0 }, { 0.0f, 0.0f, 12.0f, 0 } }; +UnkM410Struct10 lbl_1_data_1D4[] = { + { 0.0f, 0.0f, 12.0f, 0x40000001 }, + { 0.0f, 0.0f, 1.1999999, 0 }, + { 0.0f, 0.0f, 12.0f, 0x40000001 }, + { 0.0f, 0.0f, 6.0f, 0 }, + { 6.0f, 0.0f, 4.7999997f, 0 }, + { 0.0f, 0.0f, 1.1999999f, 0 }, + { 0.0f, 0.0f, 1.1999999f, 0 }, + { 0.0f, 0.0f, 1.1999999f, 0 }, + { 0.0f, 0.0f, 12.0f, 0 }, + { 0.0f, 0.0f, 12.0f, 0 }, +}; -s32 lbl_1_data_274[] = { DATA_MAKE_NUM(DATADIR_MGCONST, 0), DATA_MAKE_NUM(DATADIR_MGCONST, 1), DATA_MAKE_NUM(DATADIR_MGCONST, 2), - DATA_MAKE_NUM(DATADIR_MGCONST, 3), DATA_MAKE_NUM(DATADIR_MGCONST, 4), DATA_MAKE_NUM(DATADIR_MGCONST, 5), DATA_MAKE_NUM(DATADIR_MGCONST, 6), - DATA_MAKE_NUM(DATADIR_MGCONST, 7) }; +s32 lbl_1_data_274[] = { + DATA_MAKE_NUM(DATADIR_MGCONST, 0), + DATA_MAKE_NUM(DATADIR_MGCONST, 1), + DATA_MAKE_NUM(DATADIR_MGCONST, 2), + DATA_MAKE_NUM(DATADIR_MGCONST, 3), + DATA_MAKE_NUM(DATADIR_MGCONST, 4), + DATA_MAKE_NUM(DATADIR_MGCONST, 5), + DATA_MAKE_NUM(DATADIR_MGCONST, 6), + DATA_MAKE_NUM(DATADIR_MGCONST, 7), +}; GXColor lbl_1_data_294[] = { { 102, 0, 0, 255 }, @@ -144,9 +176,9 @@ void fn_1_80A0(omObjData *object) for (var_r29 = 0; var_r29 < 10; var_r29++) { if (lbl_1_data_1AC[var_r29] < 0x10000) { object->motion[var_r29] = CharModelMotionCreate(var_r28, lbl_1_data_1AC[var_r29]); - } else { - object->motion[var_r29] - = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(var_r28 + lbl_1_data_1AC[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA)); + } + else { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], var_r28 + lbl_1_data_1AC[var_r29]); } } CharModelMotionDataClose(var_r28); @@ -178,40 +210,40 @@ void fn_1_8414(omObjData *object) UnkM410Struct7 sp8 = { { 42, 78, 108, 125 } }; switch (var_r31->unk_34) { - case 0: - fn_1_9F70(object, 0); - if (fn_1_2804()) { - var_r31->unk_38 = 0; - var_r31->unk_34++; - } - break; - case 1: - if (var_r31->unk_38 >= sp8.unk_00[var_r31->unk_04]) { - var_r31->unk_28 = 1; - var_r31->unk_34++; - } - break; - case 2: - fn_1_96F4(object); - if (var_r31->unk_38 >= (2.8f + 0.00040000002f * frandmod(1000)) * 60.0f) { - var_r31->unk_2C = 1; - var_r31->unk_38 = 0; - var_r31->unk_34++; - } - break; - case 3: - if (var_r31->unk_24) { - if (var_r31->unk_38 >= 27.0f) { - var_r31->unk_30 = 1; + case 0: + fn_1_9F70(object, 0); + if (fn_1_2804()) { + var_r31->unk_38 = 0; + var_r31->unk_34++; } - } - if (fn_1_9A90(object)) { - var_r31->unk_34++; - } - break; - case 4: - fn_1_9F70(object, 0); - break; + break; + case 1: + if (var_r31->unk_38 >= sp8.unk_00[var_r31->unk_04]) { + var_r31->unk_28 = 1; + var_r31->unk_34++; + } + break; + case 2: + fn_1_96F4(object); + if (var_r31->unk_38 >= (2.8f + 0.00040000002f * frandmod(1000)) * 60.0f) { + var_r31->unk_2C = 1; + var_r31->unk_38 = 0; + var_r31->unk_34++; + } + break; + case 3: + if (var_r31->unk_24) { + if (var_r31->unk_38 >= 27.0f) { + var_r31->unk_30 = 1; + } + } + if (fn_1_9A90(object)) { + var_r31->unk_34++; + } + break; + case 4: + fn_1_9F70(object, 0); + break; } } fn_1_8A10(object); @@ -241,35 +273,37 @@ void fn_1_8678(omObjData *object) } } switch (var_r31->unk_34) { - case 0: - if (fn_1_9F70(object, 0)) { - var_r31->unk_28 = 1; - } - fn_1_96F4(object); - if (var_r31->unk_18) { - var_r31->unk_34++; - } - break; - case 1: - if (!var_r31->unk_1C && !var_r31->unk_20) { - if (var_r31->unk_10 & 0x100) { - if (fn_1_281C() == 2) { - var_r31->unk_2C = 1; - } - } else if (var_r31->unk_10 & 0x200 && fn_1_281C() == 2) { - if (fabs(fn_1_30F0(var_r31->unk_3C, var_r31->unk_40)) < 45.0) { - var_r31->unk_30 = 1; - } + case 0: + if (fn_1_9F70(object, 0)) { + var_r31->unk_28 = 1; } - var_r29 = 1; - } else if (var_r31->unk_24 && var_r31->unk_10 & 0x200) { - var_r31->unk_30 = 1; - } - if (fn_1_9A90(object) || fn_1_9C84(object)) { - var_r31->unk_36 = 0; - var_r31->unk_34--; - } - break; + fn_1_96F4(object); + if (var_r31->unk_18) { + var_r31->unk_34++; + } + break; + case 1: + if (!var_r31->unk_1C && !var_r31->unk_20) { + if (var_r31->unk_10 & 0x100) { + if (fn_1_281C() == 2) { + var_r31->unk_2C = 1; + } + } + else if (var_r31->unk_10 & 0x200 && fn_1_281C() == 2) { + if (fabs(fn_1_30F0(var_r31->unk_3C, var_r31->unk_40)) < 45.0) { + var_r31->unk_30 = 1; + } + } + var_r29 = 1; + } + else if (var_r31->unk_24 && var_r31->unk_10 & 0x200) { + var_r31->unk_30 = 1; + } + if (fn_1_9A90(object) || fn_1_9C84(object)) { + var_r31->unk_36 = 0; + var_r31->unk_34--; + } + break; } fn_1_8A10(object); if (fn_1_281C() == 3 && var_r29) { @@ -286,32 +320,33 @@ void fn_1_88D8(omObjData *object) var_r31 = object->data; fn_1_8A10(object); switch (var_r31->unk_34) { - case 0: - var_r31->unk_34++; - return; - case 1: - if (fn_1_2834() == 1) { - Hu3DModelHookReset(object->model[0]); - Hu3DModelAttrSet(object->model[1], 1); - if ((1 << object->work[0]) & fn_1_2864()) { - fn_1_9E0C(object, 8); - } else { - fn_1_9E0C(object, 9); + case 0: + var_r31->unk_34++; + return; + case 1: + if (fn_1_2834() == 1) { + Hu3DModelHookReset(object->model[0]); + Hu3DModelAttrSet(object->model[1], 1); + if ((1 << object->work[0]) & fn_1_2864()) { + fn_1_9E0C(object, 8); + } + else { + fn_1_9E0C(object, 9); + } + var_r31->unk_40 = 0.0f; + var_r31->unk_44 = 0.0f; + var_r31->unk_48 = 0.005f; + var_r31->unk_34++; } - var_r31->unk_40 = 0.0f; - var_r31->unk_44 = 0.0f; - var_r31->unk_48 = 0.005f; - var_r31->unk_34++; - } - break; - case 2: - if (fn_1_9EFC(object)) { - fn_1_28AC(object->work[0]); - var_r31->unk_34++; - } - break; - default: - break; + break; + case 2: + if (fn_1_9EFC(object)) { + fn_1_28AC(object->work[0]); + var_r31->unk_34++; + } + break; + default: + break; } } @@ -351,72 +386,75 @@ void fn_1_8ABC(omObjData *object) var_r31 = object->data; var_r31->unk_10 = 0; switch (var_r31->unk_50) { - case 0: - if (!var_r31->unk_18) { - return; - } - if (frandmod(1000) <= 1000.0f * var_r31->unk_4C) { - var_f28 = 42.0f; - if (frandmod(1000) <= 1000.0f * var_r31->unk_4C) { - var_f29 = 280.0f; - var_r31->unk_54 = 31.8f + frandmod(6); - } else { - var_f29 = 419.99997f; - var_r31->unk_54 = 9.0f + frandmod(15); + case 0: + if (!var_r31->unk_18) { + return; } - var_f27 = var_f28 + var_r31->unk_54; - var_r29 = -1; - var_f31 = 10000.0f; - for (var_r30 = 0; var_r30 < 18; var_r30++) { - fn_1_7888(var_r30, (s32)var_f27, &sp28); - if (fabs(sp28.y - var_f29) > 10.0) { - continue; + if (frandmod(1000) <= 1000.0f * var_r31->unk_4C) { + var_f28 = 42.0f; + if (frandmod(1000) <= 1000.0f * var_r31->unk_4C) { + var_f29 = 280.0f; + var_r31->unk_54 = 31.8f + frandmod(6); } - fn_1_7840(var_r30, &sp34); - if (fabs(sp34.x) < 1.9166667461395264) { - continue; + else { + var_f29 = 419.99997f; + var_r31->unk_54 = 9.0f + frandmod(15); } - var_f30 = sp28.x - var_r31->unk_88.x; - if (sp34.x >= 0.0f) { - if (var_f30 < 0.0f) { + var_f27 = var_f28 + var_r31->unk_54; + var_r29 = -1; + var_f31 = 10000.0f; + for (var_r30 = 0; var_r30 < 18; var_r30++) { + fn_1_7888(var_r30, (s32)var_f27, &sp28); + if (fabs(sp28.y - var_f29) > 10.0) { + continue; + } + fn_1_7840(var_r30, &sp34); + if (fabs(sp34.x) < 1.9166667461395264) { + continue; + } + var_f30 = sp28.x - var_r31->unk_88.x; + if (sp34.x >= 0.0f) { + if (var_f30 < 0.0f) { + if (fabs(var_f30) < var_f31) { + var_r29 = var_r30; + var_f31 = fabs(var_f30); + } + } + } + else if (var_f30 > 0.0f) { if (fabs(var_f30) < var_f31) { var_r29 = var_r30; var_f31 = fabs(var_f30); } } - } else if (var_f30 > 0.0f) { - if (fabs(var_f30) < var_f31) { - var_r29 = var_r30; - var_f31 = fabs(var_f30); - } } + if (var_r29 < 0) { + return; + } + fn_1_7840(var_r29, &sp34); + var_f31 /= fabs(sp34.x); + var_r31->unk_52 = var_f27 + var_f31 - var_f28 - var_r31->unk_54; } - if (var_r29 < 0) { - return; + else { + var_r31->unk_52 = 24.0f + frandmod(36); + var_r31->unk_54 = 12.0f + frandmod(18); } - fn_1_7840(var_r29, &sp34); - var_f31 /= fabs(sp34.x); - var_r31->unk_52 = var_f27 + var_f31 - var_f28 - var_r31->unk_54; - } else { - var_r31->unk_52 = 24.0f + frandmod(36); - var_r31->unk_54 = 12.0f + frandmod(18); - } - var_r31->unk_50++; - return; - case 1: - if (!var_r31->unk_52) { - var_r31->unk_10 |= 256; var_r31->unk_50++; - } - var_r31->unk_52--; - return; - case 2: - if (!var_r31->unk_54) { - var_r31->unk_10 |= 512; - var_r31->unk_50 = 0; - } - var_r31->unk_54--; - break; + return; + case 1: + if (!var_r31->unk_52) { + var_r31->unk_10 |= 256; + var_r31->unk_50++; + } + var_r31->unk_52--; + return; + case 2: + if (!var_r31->unk_54) { + var_r31->unk_10 |= 512; + var_r31->unk_50 = 0; + } + var_r31->unk_54--; + break; } } @@ -480,7 +518,8 @@ void fn_1_9040(omObjData *object) sp2C.x = (0.016666668f * (sp20.x - var_r31->unk_70.x)) / var_f31; sp2C.y = 0.016666668f * var_f27; sp2C.z = (0.016666668f * (sp20.z - var_r31->unk_70.z)) / var_f31; - } else { + } + else { if (var_r31->unk_20 != 0) { var_f30 = -450.0f + (0.05f * frandmod(1000)); var_f29 = -100.0f; @@ -488,7 +527,8 @@ void fn_1_9040(omObjData *object) sp20.x = var_r31->unk_70.x + (0.05f * (frandmod(2000) - 1000)); sp20.y = var_f29; sp20.z = var_f30; - } else { + } + else { var_f30 = -700.0f; var_f29 = 420.0f; if (var_r31->unk_68 < -600.0f) { @@ -516,7 +556,8 @@ void fn_1_9040(omObjData *object) } if (var_r28 >= 0 && var_f30 <= var_f25) { fn_1_7888(var_r28, var_r27, &sp20); - } else { + } + else { sp20.x = var_r31->unk_88.x; sp20.y = var_f29; sp20.z = -700.0f; @@ -585,7 +626,8 @@ void fn_1_96F4(omObjData *object) } if (var_r31->unk_18 != 0) { Hu3DModelPosSet(object->model[1], 0.0f, 0.0f, 0.0f); - } else { + } + else { Hu3DModelPosSet(object->model[1], var_r31->unk_70.x, var_r31->unk_70.y, var_r31->unk_70.z); } if (var_r31->unk_36 >= (60.0f * (var_f31 - 0.17f))) { @@ -621,7 +663,8 @@ s32 fn_1_9A90(omObjData *object) var_r31->unk_1C = 0; if (var_r31->unk_18) { fn_1_9E0C(object, 7); - } else { + } + else { var_r29 = 1; fn_1_9E0C(object, 6); } @@ -636,7 +679,8 @@ s32 fn_1_9A90(omObjData *object) var_r31->unk_30 = 0; } } - } else if (var_r31->unk_18) { + } + else if (var_r31->unk_18) { fn_1_9F70(object, 2); } return var_r29; @@ -658,12 +702,14 @@ s32 fn_1_9C84(omObjData *object) var_r31->unk_30 = 0; var_r31->unk_20 = 1; var_r31->unk_36 = 0; - } else if (var_r31->unk_20) { + } + else if (var_r31->unk_20) { if (var_r31->unk_18) { if (var_r31->unk_36 >= 18.0f) { fn_1_9040(object); } - } else if (var_r31->unk_36 >= 30.0f && fn_1_9EFC(object)) { + } + else if (var_r31->unk_36 >= 30.0f && fn_1_9EFC(object)) { var_r31->unk_30 = 0; var_r31->unk_2C = 0; var_r31->unk_20 = 0; @@ -786,49 +832,50 @@ void fn_1_A3C0(omObjData *object) for (var_r29 = 0; var_r29 < 4; var_r29++, var_r31++) { switch (var_r31->unk_14) { - case 0: - if (fn_1_281C() == 2) { - var_r31->unk_14 = 1; - } - break; - case 1: - var_r31->unk_18 = 0; - var_r31->unk_20 = var_r31->unk_08 % 10; - var_r31->unk_1C = (var_r31->unk_08 / 10) % 10; - espDispOn(var_r31->unk_3C[0]); - espDispOn(var_r31->unk_3C[1]); - espDispOn(var_r31->unk_40); - espDispOn(var_r31->unk_42); - espDispOn(var_r31->unk_44); - espBankSet(var_r31->unk_3C[0], var_r31->unk_1C); - espBankSet(var_r31->unk_3C[1], var_r31->unk_20); - espBankSet(var_r31->unk_40, var_r31->unk_24); - if (var_r31->unk_00) { - var_r31->unk_2C[0] = var_r31->unk_2C[1] = 0.5f; - var_r31->unk_14++; - } else { - var_r31->unk_00 = 1; - var_r31->unk_2C[0] = var_r31->unk_2C[1] = 1.0f; - var_r31->unk_14 += 3; + case 0: + if (fn_1_281C() == 2) { + var_r31->unk_14 = 1; + } + break; + case 1: + var_r31->unk_18 = 0; + var_r31->unk_20 = var_r31->unk_08 % 10; + var_r31->unk_1C = (var_r31->unk_08 / 10) % 10; + espDispOn(var_r31->unk_3C[0]); + espDispOn(var_r31->unk_3C[1]); + espDispOn(var_r31->unk_40); + espDispOn(var_r31->unk_42); + espDispOn(var_r31->unk_44); + espBankSet(var_r31->unk_3C[0], var_r31->unk_1C); + espBankSet(var_r31->unk_3C[1], var_r31->unk_20); + espBankSet(var_r31->unk_40, var_r31->unk_24); + if (var_r31->unk_00) { + var_r31->unk_2C[0] = var_r31->unk_2C[1] = 0.5f; + var_r31->unk_14++; + } + else { + var_r31->unk_00 = 1; + var_r31->unk_2C[0] = var_r31->unk_2C[1] = 1.0f; + var_r31->unk_14 += 3; + break; + } + case 2: + var_f31 = var_r31->unk_2C[0]; + var_f31 += 0.10000001f; + if (var_f31 >= 1.5f) { + var_r31->unk_14++; + } + var_r31->unk_2C[0] = var_r31->unk_2C[1] = var_f31; + break; + case 3: + var_f31 = var_r31->unk_2C[0]; + var_f31 -= 0.10000001f; + if (var_f31 <= 1.0f) { + var_f31 = 1.0f; + var_r31->unk_14 = var_r31->unk_14 + 1; + } + var_r31->unk_2C[0] = var_r31->unk_2C[1] = var_f31; break; - } - case 2: - var_f31 = var_r31->unk_2C[0]; - var_f31 += 0.10000001f; - if (var_f31 >= 1.5f) { - var_r31->unk_14++; - } - var_r31->unk_2C[0] = var_r31->unk_2C[1] = var_f31; - break; - case 3: - var_f31 = var_r31->unk_2C[0]; - var_f31 -= 0.10000001f; - if (var_f31 <= 1.0f) { - var_f31 = 1.0f; - var_r31->unk_14 = var_r31->unk_14 + 1; - } - var_r31->unk_2C[0] = var_r31->unk_2C[1] = var_f31; - break; } var_r31->unk_18++; @@ -845,7 +892,8 @@ void fn_1_A3C0(omObjData *object) var_r30->unk_00++; if (var_r30->unk_00 < 12.0f) { var_r30->unk_04 += 0.058333337f; - } else { + } + else { var_r30->unk_04 += 0.025000002f; var_r30->unk_0C -= 0.050000004f; } diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c index 7d49eb7f..059cae2c 100644 --- a/src/REL/m412Dll/main.c +++ b/src/REL/m412Dll/main.c @@ -1,8 +1,6 @@ #include "REL/m412Dll.h" -#include "math.h" #include "ext_math.h" -#include "rel_sqrt_consts.h" #include "game/audio.h" #include "game/chrman.h" #include "game/frand.h" @@ -13,6 +11,8 @@ #include "game/pad.h" #include "game/sprite.h" #include "game/wipe.h" +#include "math.h" +#include "rel_sqrt_consts.h" // bss s16 lbl_1_bss_7A0; @@ -28,8 +28,8 @@ f32 lbl_1_bss_774; unkStruct3 lbl_1_bss_4D4[4]; unkStruct2 lbl_1_bss_33C[6]; unkStruct2 lbl_1_bss_2F8; -unkStruct* lbl_1_bss_278[0x20]; -Process* lbl_1_bss_274; +unkStruct *lbl_1_bss_278[0x20]; +Process *lbl_1_bss_274; Vec lbl_1_bss_268; Vec lbl_1_bss_25C; Vec lbl_1_bss_250; @@ -41,57 +41,24 @@ Vec lbl_1_bss_C; Vec lbl_1_bss_0; // data -s32 lbl_1_data_0[8] = { - 0, 1, 2, 3, 4, 5, 6, 7 -}; -s32 lbl_1_data_20[8] = { - 0x5E0001, 0x190001, 0x6C0001, 0x890001, - 0x840001, 0x100001, 0x0C0001, 0x800001 -}; -s32 lbl_1_data_40[8] = { - 0x5F0000, 0x1A0000, 0x6D0000, 0x8A0000, - 0x850000, 0x110000, 0x0D0000, 0x810000 -}; -s32 lbl_1_data_60[6] = { - 0x5F0000, 0x5F0002, 0x5F0003, - 0x5F001A, 0x5F001B, 0x5F004B -}; -Vec lbl_1_data_78[7] = { - { 474.0f, 30.0f, -497.0f }, - { 330.0f, 30.0f, 562.0f }, - { -694.0f, 30.0f, 43.0f }, - { -375.0f, 30.0f, -483.0f }, - { 715.0f, 30.0f, 62.0f }, - { -334.0f, 30.0f, 570.0f }, - { 100.0f, 30.0f, -630.0f } -}; -char* lbl_1_data_298[0x17] = { - "sb_hahen-sb_hahen01", - "sb_hahen-sb_hahen02", - "sb_hahen-sb_hahen03", - "sb_hahen-sb_hahen04", - "sb_hahen-sb_hahen05", - "sb_hahen-sb_hahen06", - "sb_hahen-sb_hahen07", - "sb_hahen-sb_hahen08", - "sb_hahen-sb_hahen09", - "sb_hahen-sb_hahen10", - "sb_hahen-sb_hahen11", - "sb_hahen-sb_hahen12", - "sb_hahen-sb_hahen13", - "sb_hahen-sb_hahen14", - "sb_hahen-sb_hahen15", - "sb_hahen-sb_hahen16", - "sb_hahen-sb_hahen17", - "sb_hahen-sb_hahen18", - "sb_hahen-sb_hahen19", - "sb_hahen-sb_hahen20", - "sb_hahen-sb_hahen21", - "sb_hahen-sb_hahen22", - "sb_hahen-sb_hahen23" -}; +s32 lbl_1_data_0[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +s32 lbl_1_data_20[8] = { DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x01), DATA_MAKE_NUM(DATADIR_LUIGIMDL1, 0x01), DATA_MAKE_NUM(DATADIR_PEACHMDL1, 0x01), + DATA_MAKE_NUM(DATADIR_YOSHIMDL1, 0x01), DATA_MAKE_NUM(DATADIR_WARIOMDL1, 0x01), DATA_MAKE_NUM(DATADIR_DONKEYMDL1, 0x01), + DATA_MAKE_NUM(DATADIR_DAISYMDL1, 0x01), DATA_MAKE_NUM(DATADIR_WALUIGIMDL1, 0x01) }; +s32 lbl_1_data_40[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00) }; +s32 lbl_1_data_60[6] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1A), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1B), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x4B) }; +Vec lbl_1_data_78[7] = { { 474.0f, 30.0f, -497.0f }, { 330.0f, 30.0f, 562.0f }, { -694.0f, 30.0f, 43.0f }, { -375.0f, 30.0f, -483.0f }, + { 715.0f, 30.0f, 62.0f }, { -334.0f, 30.0f, 570.0f }, { 100.0f, 30.0f, -630.0f } }; +char *lbl_1_data_298[0x17] = { "sb_hahen-sb_hahen01", "sb_hahen-sb_hahen02", "sb_hahen-sb_hahen03", "sb_hahen-sb_hahen04", "sb_hahen-sb_hahen05", + "sb_hahen-sb_hahen06", "sb_hahen-sb_hahen07", "sb_hahen-sb_hahen08", "sb_hahen-sb_hahen09", "sb_hahen-sb_hahen10", "sb_hahen-sb_hahen11", + "sb_hahen-sb_hahen12", "sb_hahen-sb_hahen13", "sb_hahen-sb_hahen14", "sb_hahen-sb_hahen15", "sb_hahen-sb_hahen16", "sb_hahen-sb_hahen17", + "sb_hahen-sb_hahen18", "sb_hahen-sb_hahen19", "sb_hahen-sb_hahen20", "sb_hahen-sb_hahen21", "sb_hahen-sb_hahen22", "sb_hahen-sb_hahen23" }; -void ObjectSetup(void) { +void ObjectSetup(void) +{ f32 temp_f30; f32 temp_f29; f32 temp_f31; @@ -139,18 +106,20 @@ void ObjectSetup(void) { WipeCreate(1, 0, 0x3C); } -void* fn_1_6EC(f32 arg8, f32 arg9, f32 argA, s32 arg0) { +void *fn_1_6EC(f32 arg8, f32 arg9, f32 argA, s32 arg0) +{ Vec sp8; sp8.x = arg8; sp8.y = arg9; sp8.z = argA; - return (void*)HuAudFXEmiterPlay(arg0, &sp8); + return (void *)HuAudFXEmiterPlay(arg0, &sp8); } -void fn_1_73C(void) { +void fn_1_73C(void) +{ Vec sp8; - CameraData* camera; + CameraData *camera; camera = &Hu3DCamera[0]; @@ -160,7 +129,8 @@ void fn_1_73C(void) { while (1) { HuAudFXListnerUpdate(&camera->pos, &sp8); - if (lbl_1_bss_794 >= 3) break; + if (lbl_1_bss_794 >= 3) + break; HuPrcVSleep(); } HuPrcKill(HuPrcCurrentGet()); @@ -169,7 +139,8 @@ void fn_1_73C(void) { } } -void fn_1_7BC(void) { +void fn_1_7BC(void) +{ Vec sp14; Vec sp8; s32 temp_r30; @@ -182,7 +153,7 @@ void fn_1_7BC(void) { sp8.x = sp14.x - 474.0f; sp8.y = sp14.y - 30.0f; sp8.z = sp14.z - -497.0f; - + for (var_r31 = 0; var_r31 < 0x168; var_r31++) { HuAudFXEmiterUpDate(temp_r30, &sp14); PSVECAdd(&sp8, &sp14, &sp14); @@ -194,37 +165,40 @@ void fn_1_7BC(void) { } } -void fn_1_894(omObjData* object) { +void fn_1_894(omObjData *object) +{ return; } -void fn_1_898(omObjData* object) { +void fn_1_898(omObjData *object) +{ object->model[0] = lbl_1_bss_79C; object->func = &fn_1_894; } -void fn_1_8BC(void) { +void fn_1_8BC(void) +{ Vec sp20; Vec sp14; s32 sp10; volatile u32 spC; volatile u32 sp8; - unkStruct2* temp_r31; - unkStruct3* temp_r30; + unkStruct2 *temp_r31; + unkStruct3 *temp_r30; s16 var_r29; - void* var_r27; + void *var_r27; s32 var_r28; s32 var_r26; - unkStruct2* temp_r25; - HsfTransform* temp_r24; - Process* var_r23; + unkStruct2 *temp_r25; + HsfTransform *temp_r24; + Process *var_r23; s32 temp_r22; - AnimData* var_r21; + AnimData *var_r21; s16 var_r20; s16 var_r19; s32 var_r18; - HsfObject* var_r17; - + HsfObject *var_r17; + nMap = 0; HuAudSndGrpSet(0x25); sp20.x = 1100.0f; @@ -234,44 +208,45 @@ void fn_1_8BC(void) { sp14.y = 0.0f; sp14.z = -1.0f; HuAudFXListnerSetEX(&sp20, &sp14, 10000.0f, 0.5666667f, 0.0f, 300.0f, 300.0f); - var_r27 = HuDataSelHeapReadNum(0x2B0000, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x00), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 1); Hu3DModelShadowMapSet(var_r29); Hu3DModelAttrSet(var_r29, 0x40000001); - var_r27 = HuDataSelHeapReadNum(0x2B0001, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x01), MEMORY_DEFAULT_NUM, HEAP_DATA); lbl_1_bss_79C = Hu3DModelCreate(var_r27); Hu3DModelAttrSet(lbl_1_bss_79C, 1); MapObject[nMap++] = omAddObjEx(lbl_1_bss_274, 0x100, 1, 0, -1, fn_1_898); - var_r27 = HuDataSelHeapReadNum(0x2B0002, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x02), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 0); Hu3DModelAttrSet(var_r29, 0x40000001); - + for (var_r28 = 0; var_r28 < 0x20; var_r28++) { lbl_1_bss_278[var_r28] = NULL; } - var_r27 = HuDataSelHeapReadNum(0x2B001F, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x1F), MEMORY_DEFAULT_NUM, HEAP_DATA); lbl_1_bss_79E = var_r29 = Hu3DModelCameraCreate(Hu3DMotionCreate(var_r27), 1); Hu3DCameraMotionStart(var_r29, 1); - + for (var_r28 = 0; var_r28 < 2; var_r28++) { - var_r27 = HuDataSelHeapReadNum(0x2B001D, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x1D), MEMORY_DEFAULT_NUM, HEAP_DATA); lbl_1_bss_798[var_r28] = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 2); Hu3DModelAttrSet(var_r29, 0x40000002); Hu3DModelAttrSet(var_r29, 1); } - + for (var_r28 = 0; var_r28 < 6; var_r28++) { temp_r31 = &lbl_1_bss_33C[var_r28]; temp_r31->unk24 = var_r28; temp_r31->unk28 = var_r28; temp_r31->unk20 = 0; if (var_r28 == 0) { - var_r27 = HuDataSelHeapReadNum(0x2B0006, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x06), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r20 = var_r29 = Hu3DModelCreate(var_r27); - } else { + } + else { var_r29 = Hu3DModelLink(var_r20); } temp_r31->unk0 = var_r29; @@ -284,12 +259,12 @@ void fn_1_8BC(void) { Hu3DModelRotSet(var_r29, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); Hu3DModelLayerSet(var_r29, 1); Hu3DModelShadowSet(var_r29); - + for (var_r26 = 0; var_r26 < 3; var_r26++) { - var_r27 = HuDataSelHeapReadNum(var_r26 + 0x2B0007, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(var_r26 + DATA_MAKE_NUM(DATADIR_M412, 0x07), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unkC[var_r26] = Hu3DJointMotion(var_r29, var_r27); } - var_r27 = HuDataSelHeapReadNum(var_r28 + 0x2B000A, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(var_r28 + DATA_MAKE_NUM(DATADIR_M412, 0x0A), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unkC[var_r26] = Hu3DJointMotion(var_r29, var_r27); Hu3DMotionSet(var_r29, temp_r31->unkC[3]); temp_r31->unk2 = var_r29 = Hu3DModelLink(var_r20); @@ -300,7 +275,7 @@ void fn_1_8BC(void) { Hu3DModelShadowReset(var_r29); Hu3DMotionSet(var_r29, temp_r31->unkC[3]); Hu3DModelAttrSet(var_r29, 0x800000); - var_r27 = HuDataSelHeapReadNum(var_r28 + 0x2B0010, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(var_r28 + DATA_MAKE_NUM(DATADIR_M412, 0x10), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk4 = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 1); if (var_r28 >= 3) { @@ -309,9 +284,10 @@ void fn_1_8BC(void) { Hu3DModelAttrSet(temp_r31->unk4, 0x40000002); } if (var_r28 == 0) { - var_r27 = HuDataSelHeapReadNum(0x2B0003, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x03), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r19 = var_r29 = Hu3DModelCreate(var_r27); - } else { + } + else { var_r29 = Hu3DModelLink(var_r19); } temp_r31->unk6 = var_r29; @@ -325,7 +301,7 @@ void fn_1_8BC(void) { var_r23 = HuPrcChildCreate(fn_1_2A1C, 0x2000, 0x3000, 0, HuPrcCurrentGet()); var_r23->user_data = temp_r31; } - + for (var_r28 = 0, var_r18 = 0; var_r28 < 50; var_r28++) { temp_r31 = &lbl_1_bss_33C[frandmod(3) + var_r18]; temp_r25 = &lbl_1_bss_33C[frandmod(3) + var_r18]; @@ -346,7 +322,7 @@ void fn_1_8BC(void) { temp_r25->unk28 = temp_r22; } temp_r31 = &lbl_1_bss_2F8; - var_r27 = HuDataSelHeapReadNum(0x2B0016, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x16), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r20 = var_r29 = Hu3DModelCreate(var_r27); temp_r31->unk0 = var_r29; temp_r31->unk2C.x = lbl_1_data_78[6].x; @@ -358,16 +334,16 @@ void fn_1_8BC(void) { Hu3DModelRotSet(var_r29, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); Hu3DModelLayerSet(var_r29, 1); Hu3DModelShadowSet(var_r29); - + for (var_r26 = 0; var_r26 < 5; var_r26++) { - var_r27 = HuDataSelHeapReadNum(var_r26 + 0x2B0017, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(var_r26 + DATA_MAKE_NUM(DATADIR_M412, 0x17), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unkC[var_r26] = Hu3DJointMotion(var_r29, var_r27); } - var_r27 = HuDataSelHeapReadNum(0x2B0016, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x16), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk2 = var_r29 = Hu3DModelCreate(var_r27); - + for (var_r26 = 0; var_r26 < 5; var_r26++) { - var_r27 = HuDataSelHeapReadNum(var_r26 + 0x2B0017, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(var_r26 + DATA_MAKE_NUM(DATADIR_M412, 0x17), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk16[var_r26] = Hu3DJointMotion(var_r29, var_r27); } Hu3DModelPosSet(var_r29, temp_r31->unk2C.x, temp_r31->unk2C.y - 10.0f, temp_r31->unk2C.z); @@ -376,7 +352,7 @@ void fn_1_8BC(void) { Hu3DModelLayerSet(var_r29, 0); Hu3DModelShadowReset(var_r29); Hu3DModelAttrSet(var_r29, 0x800000); - var_r27 = HuDataSelHeapReadNum(0x2B0004, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x04), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk6 = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 1); Hu3DModelAttrSet(var_r29, 1); @@ -385,13 +361,13 @@ void fn_1_8BC(void) { temp_r31->unk8 = Hu3DModelLink(temp_r31->unk6); Hu3DModelLayerSet(temp_r31->unk8, 0); Hu3DModelAttrSet(temp_r31->unk8, 1); - var_r27 = HuDataSelHeapReadNum(0x2B0005, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x05), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unkA = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelShadowSet(var_r29); Hu3DModelShadowDispOff(var_r29); Hu3DModelLayerSet(var_r29, 1); Hu3DModelAttrSet(var_r29, 1); - + for (var_r28 = 0; var_r28 < 0x17; var_r28++) { var_r17 = Hu3DModelObjPtrGet(var_r29, lbl_1_data_298[var_r28]); if (!var_r17) { @@ -408,11 +384,11 @@ void fn_1_8BC(void) { } var_r23 = HuPrcChildCreate(fn_1_3950, 0x2000, 0x3000, 0, HuPrcCurrentGet()); var_r23->user_data = temp_r31; - + for (var_r28 = 0; var_r28 < 4; var_r28++) { lbl_1_bss_4D4[var_r28].unk3C = var_r28; } - + for (var_r28 = 0; var_r28 < 50; var_r28++) { spC = frandmod(4); sp8 = frandmod(4); @@ -420,7 +396,7 @@ void fn_1_8BC(void) { lbl_1_bss_4D4[sp8].unk3C = lbl_1_bss_4D4[spC].unk3C; lbl_1_bss_4D4[spC].unk3C = sp10; } - + for (var_r28 = 0; var_r28 < 4; var_r28++) { temp_r30 = &lbl_1_bss_4D4[var_r28]; temp_r30->unk24 = var_r28; @@ -428,7 +404,7 @@ void fn_1_8BC(void) { temp_r30->unk2C = GWPlayerCfg[var_r28].pad_idx; temp_r30->unk0 = CharModelCreate(lbl_1_data_0[GWPlayerCfg[var_r28].character], 4); Hu3DModelLayerSet(temp_r30->unk0, 1); - var_r27 = HuDataSelHeapReadNum(lbl_1_data_20[GWPlayerCfg[var_r28].character], 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(lbl_1_data_20[GWPlayerCfg[var_r28].character], MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r30->unk2 = Hu3DModelCreate(var_r27); Hu3DModelScaleSet(temp_r30->unk2, 1.0f, -1.0f, 1.0f); Hu3DModelAttrSet(temp_r30->unk2, 0x800000); @@ -449,10 +425,11 @@ void fn_1_8BC(void) { Hu3DModelPosSet(temp_r30->unk2, temp_r30->unk40.x, temp_r30->unk40.y, temp_r30->unk40.z); Hu3DModelRotSet(temp_r30->unk2, temp_r30->unk54.x, temp_r30->unk54.y, temp_r30->unk54.z); Hu3DModelShadowSet(temp_r30->unk0); - + for (var_r26 = 0; var_r26 < 6; var_r26++) { temp_r30->unkC[var_r26] = CharModelMotionCreate(lbl_1_data_0[GWPlayerCfg[var_r28].character], lbl_1_data_60[var_r26]); - var_r27 = HuDataSelHeapReadNum((u16)lbl_1_data_60[var_r26] | lbl_1_data_40[GWPlayerCfg[var_r28].character], 0x10000000, HEAP_DATA); + var_r27 + = HuDataSelHeapReadNum((u16)lbl_1_data_60[var_r26] | lbl_1_data_40[GWPlayerCfg[var_r28].character], MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r30->unk18[var_r26] = Hu3DJointMotion(temp_r30->unk2, var_r27); } CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[var_r28].character], temp_r30->unkC[0]); @@ -460,7 +437,7 @@ void fn_1_8BC(void) { Hu3DMotionSet(temp_r30->unk2, temp_r30->unk18[0]); Hu3DModelAttrSet(temp_r30->unk2, 0x40000001); CharModelMotionDataClose(lbl_1_data_0[GWPlayerCfg[var_r28].character]); - var_r27 = HuDataSelHeapReadNum(0x2B001C, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x1C), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r30->unk6 = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 1); Hu3DModelAttrSet(var_r29, 0x40000001); @@ -471,7 +448,7 @@ void fn_1_8BC(void) { Hu3DModelLayerSet(var_r29, 0); Hu3DModelAttrSet(var_r29, 0x40000001); Hu3DModelAttrSet(var_r29, 0x800001); - var_r27 = HuDataSelHeapReadNum(0x2B001D, 0x10000000, HEAP_DATA); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x1D), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r30->unkA = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 3); Hu3DModelAttrSet(var_r29, 0x40000002); @@ -479,7 +456,7 @@ void fn_1_8BC(void) { var_r23 = HuPrcChildCreate(fn_1_7C60, 0x2000, 0x4000, 0, HuPrcCurrentGet()); var_r23->user_data = temp_r30; } - var_r21 = HuSprAnimRead(HuDataReadNum(0x2B001E, 0x10000000)); + var_r21 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x1E), MEMORY_DEFAULT_NUM)); var_r29 = Hu3DParticleCreate(var_r21, 0x100); Hu3DModelPosSet(var_r29, 0.0f, 0.0f, 0.0f); Hu3DModelScaleSet(var_r29, 1.0f, 1.0f, 1.0f); @@ -487,7 +464,7 @@ void fn_1_8BC(void) { Hu3DParticleColSet(var_r29, 0xFF, 0xFF, 0xFF); Hu3DParticleScaleSet(var_r29, 0.0f); Hu3DParticleHookSet(var_r29, fn_1_A01C); - var_r21 = HuSprAnimRead(HuDataReadNum(0x120003, 0x10000000)); + var_r21 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 0x03), MEMORY_DEFAULT_NUM)); var_r29 = Hu3DParticleCreate(var_r21, 0x40); Hu3DModelPosSet(var_r29, 0.0f, 0.0f, 0.0f); Hu3DModelScaleSet(var_r29, 1.0f, 1.0f, 1.0f); @@ -495,7 +472,7 @@ void fn_1_8BC(void) { Hu3DParticleColSet(var_r29, 0xFF, 0xFF, 0xFF); Hu3DParticleScaleSet(var_r29, 0.0f); Hu3DParticleHookSet(var_r29, fn_1_A618); - var_r21 = HuSprAnimRead(HuDataReadNum(0x120003, 0x10000000)); + var_r21 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 0x03), MEMORY_DEFAULT_NUM)); var_r29 = Hu3DParticleCreate(var_r21, 3); Hu3DModelPosSet(var_r29, 0.0f, 0.0f, 0.0f); Hu3DModelScaleSet(var_r29, 1.0f, 1.0f, 1.0f); @@ -503,11 +480,12 @@ void fn_1_8BC(void) { Hu3DParticleColSet(var_r29, 0xFF, 0xFF, 0xFF); Hu3DParticleScaleSet(var_r29, 0.0f); Hu3DParticleHookSet(var_r29, fn_1_AA88); - HuDataDirClose(0x120000); + HuDataDirClose(DATADIR_EFFECT); HuPrcChildCreate(fn_1_B160, 0x1000, 0x1000, 0, HuPrcCurrentGet()); } -f32 fn_1_1D08(f32 arg0) { +f32 fn_1_1D08(f32 arg0) +{ while (arg0 >= 360.0f || arg0 < 0.0f) { if (arg0 >= 360.0f) { arg0 -= 360.0f; @@ -519,19 +497,21 @@ f32 fn_1_1D08(f32 arg0) { return arg0; } -void fn_1_1D88(void) { - void* var_r31; +void fn_1_1D88(void) +{ + void *var_r31; var_r31 = HuPrcCurrentGet()->user_data; HuMemDirectFree(var_r31); } -void fn_1_1DBC(void) { +void fn_1_1DBC(void) +{ Vec sp8; - HsfObject* var_r27; - HsfTransform* temp_r31; - unkStruct4* temp_r30; - Vec* temp_r29; + HsfObject *var_r27; + HsfTransform *temp_r31; + unkStruct4 *temp_r30; + Vec *temp_r29; s32 var_r28; f32 var_f31; f32 var_f30; @@ -576,34 +556,37 @@ void fn_1_1DBC(void) { } } -void fn_1_2014(void) { - unkStruct2* temp_r31; // could also be unkStruct3 `\_("/)_/` +void fn_1_2014(void) +{ + unkStruct2 *temp_r31; // could also be unkStruct3 `\_("/)_/` - temp_r31 = (unkStruct2*)HuPrcCurrentGet()->user_data; + temp_r31 = (unkStruct2 *)HuPrcCurrentGet()->user_data; lbl_1_bss_278[temp_r31->unk6] = NULL; HuMemDirectFree(temp_r31); } -void fn_1_2064(void) { +void fn_1_2064(void) +{ Vec sp28; Vec sp1C; Vec sp10; f32 spC; f32 sp8; - Process* temp_r26; + Process *temp_r26; s32 var_r30; - unkStruct* temp_r28; - unkStruct3* temp_r29; - unkStruct* temp_r31; - unkStruct4* var_r27; + unkStruct *temp_r28; + unkStruct3 *temp_r29; + unkStruct *temp_r31; + unkStruct4 *var_r27; - temp_r31 = (unkStruct*)HuPrcCurrentGet()->user_data; + temp_r31 = (unkStruct *)HuPrcCurrentGet()->user_data; temp_r31->unk8 = 0; temp_r31->unkA = 0; HuPrcDestructorSet(fn_1_2014); - + do { - if ((temp_r31->unk8 != 0) || (lbl_1_bss_794 >= 4)) break; + if ((temp_r31->unk8 != 0) || (lbl_1_bss_794 >= 4)) + break; temp_r31->unk10.x += (temp_r31->unk24.y * sind(temp_r31->unk24.x)); temp_r31->unk10.z += (temp_r31->unk24.y * cosd(temp_r31->unk24.x)); temp_r31->unk10.y += temp_r31->unk24.z; @@ -625,18 +608,19 @@ void fn_1_2064(void) { } } HuSetVecF(&sp28, temp_r31->unk10.x, 0.0, temp_r31->unk10.z); - + for (var_r30 = 0; var_r30 < 4; var_r30++) { temp_r29 = &lbl_1_bss_4D4[var_r30]; HuSetVecF(&sp1C, temp_r29->unk40.x, 0.0, temp_r29->unk40.z); HuSubVecF(&sp10, &sp28, &sp1C); if ((sqrtf((sp10.z * sp10.z) + ((sp10.x * sp10.x) + (sp10.y * sp10.y))) < (temp_r31->unk30 + temp_r29->unk60.x)) && ((150.0f + temp_r29->unk40.y + temp_r31->unk30) > temp_r31->unk10.y)) { - + if (temp_r29->unk30 != 3) { if (temp_r31->unkC == 0) { omVibrate(temp_r29->unk24, 0xC, 4, 2); - } else { + } + else { omVibrate(temp_r29->unk24, 0xC, 0xC, 0); } } @@ -651,12 +635,14 @@ void fn_1_2064(void) { } Hu3DModelPosSet(temp_r31->unk0, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z); Hu3DModelPosSet(temp_r31->unk2, temp_r31->unk10.x, -temp_r31->unk10.y, temp_r31->unk10.z); - if (temp_r31->unk8 != 0) break; + if (temp_r31->unk8 != 0) + break; HuPrcVSleep(); } while (1); if (temp_r31->unkC == 1) { HuAudFXPlay(0x58D); - } else { + } + else { HuAudFXPlay(0x58C); } Hu3DModelAttrSet(temp_r31->unk0, 1); @@ -664,7 +650,7 @@ void fn_1_2064(void) { Hu3DModelShadowDispOff(temp_r31->unk0); temp_r31->unkA = 1; if (temp_r31->unkC == 1) { - + for (var_r30 = 0; var_r30 < 4; var_r30++) { if (lbl_1_bss_4D4[var_r30].unk30 != 3) { omVibrate(lbl_1_bss_4D4[var_r30].unk24, 0xC, 6, 6); @@ -673,7 +659,7 @@ void fn_1_2064(void) { Hu3DModelPosSet(temp_r31->unk4, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z); Hu3DModelAttrReset(temp_r31->unk4, 1); Hu3DModelShadowDispOn(temp_r31->unk4); - + for (var_r30 = 0; var_r30 < 0x17; var_r30++) { temp_r26 = HuPrcChildCreate(fn_1_1DBC, 0x2000, 0x1000, 0, HuPrcCurrentGet()); var_r27 = HuMemDirectMalloc(HEAP_DATA, 0x18); @@ -696,11 +682,13 @@ void fn_1_2064(void) { } } -s32 fn_1_2708(void) { +s32 fn_1_2708(void) +{ s32 var_r31; - + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { - if (!lbl_1_bss_278[var_r31]) break; + if (!lbl_1_bss_278[var_r31]) + break; } if (var_r31 >= 0x20) { var_r31 = -1; @@ -711,14 +699,15 @@ s32 fn_1_2708(void) { return var_r31; } -f32 fn_1_27C4(s32 arg0, f32 arg8, f32 arg9) { +f32 fn_1_27C4(s32 arg0, f32 arg8, f32 arg9) +{ f32 temp_f31; f32 var_f25; f32 var_f26; f32 var_f27; f32 var_f28; f32 var_f29; - + temp_f31 = arg8 - fn_1_1D08(arg9); if ((temp_f31 < 0.0f) || (ABS_INV(temp_f31) > 180.0f)) { if (ABS_INV(temp_f31) > 180.0f) { @@ -726,33 +715,26 @@ f32 fn_1_27C4(s32 arg0, f32 arg8, f32 arg9) { if (temp_f31 > 0.0f) { var_f29 = -var_f29; } - } else { + } + else { var_f29 = temp_f31 / arg0; } - } else { + } + else { var_f29 = temp_f31 / arg0; } return var_f29; } -s32 lbl_1_data_310[6][2] = { - { 0x09249222, 0x22210842 }, - { 0x04924888, 0x88842108 }, - { 0x12492222, 0x22108420 }, - { 0x04444444, 0x44444400 }, - { 0x11111111, 0x11100000 }, - { 0x04444444, 0x40000000 } -}; +s32 lbl_1_data_310[6][2] = { { 0x09249222, 0x22210842 }, { 0x04924888, 0x88842108 }, { 0x12492222, 0x22108420 }, { 0x04444444, 0x44444400 }, + { 0x11111111, 0x11100000 }, { 0x04444444, 0x40000000 } }; -s32 lbl_1_data_340[1][2] = { - { 0x00040008, 0x02000000 } -}; +s32 lbl_1_data_340[1][2] = { { 0x00040008, 0x02000000 } }; -s32 lbl_1_data_348[6] = { - 0x0, 0x0, 0x0, 0x8, 0x12, 0x1C -}; +s32 lbl_1_data_348[6] = { 0x0, 0x0, 0x0, 0x8, 0x12, 0x1C }; -void fn_1_2A1C(void) { +void fn_1_2A1C(void) +{ Vec sp68; Vec sp5C; Vec sp50; @@ -769,11 +751,11 @@ void fn_1_2A1C(void) { s32 var_r24; s32 var_r26; s32 var_r29; - unkStruct* temp_r30; - unkStruct3* temp_r27; - unkStruct2* temp_r31; + unkStruct *temp_r30; + unkStruct3 *temp_r27; + unkStruct2 *temp_r31; s32 var_r21; - Process* var_r20; + Process *var_r20; temp_r31 = HuPrcCurrentGet()->user_data; switch (temp_r31->unk24) { @@ -794,7 +776,7 @@ void fn_1_2A1C(void) { var_r24 = 0x5D; break; } - + loop_10: var_r29 = lbl_1_bss_790 / 60; if (var_r29 >= 0x3C) { @@ -822,18 +804,20 @@ loop_10: } if (((1 << (var_r29 % 32)) & lbl_1_data_310[temp_r31->unk28][var_r22]) != 0) { var_r21 = fn_1_2708(); - } else { + } + else { HuPrcVSleep(); goto loop_10; } var_r26 = frandmod(4); if (lbl_1_bss_4D4[var_r26].unk30 == 3) { - for (var_r23 = 3; var_r23 != 0; var_r23--) { + for (var_r23 = 3; var_r23 != 0; var_r23--) { var_r26++; if (var_r26 >= 4) { var_r26 = 0; } - if (lbl_1_bss_4D4[var_r26].unk30 != 3) break; + if (lbl_1_bss_4D4[var_r26].unk30 != 3) + break; } } temp_r27 = &lbl_1_bss_4D4[var_r26]; @@ -844,7 +828,7 @@ loop_10: var_r29 = Hu3DMotionMaxTimeGet(temp_r31->unk0); var_f24 = fn_1_1D08(atan2d(temp_r27->unk40.x - temp_r31->unk2C.x, temp_r27->unk40.z - temp_r31->unk2C.z)); temp_f18 = (temp_r27->unk40.x + (50.0 * sind(var_f24))); - sp44.y = (temp_r27->unk40.z + (50.0 * cosd(var_f24))); + sp44.y = (temp_r27->unk40.z + (50.0 * cosd(var_f24))); sp44.x = 360.0f * frandf(); var_f23 = 50.0f * frandf(); temp_f18 += (var_f23 * sind(sp44.x)); @@ -852,7 +836,7 @@ loop_10: sp44.z = fn_1_27C4(var_r29, var_f24, temp_r31->unk38.y); HuAudFXPlay(0x583); - for (;var_r29 != 0; var_r29--) { + for (; var_r29 != 0; var_r29--) { temp_r31->unk38.y += sp44.z; Hu3DModelRotSet(temp_r31->unk0, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); Hu3DModelRotSet(temp_r31->unk2, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); @@ -907,25 +891,27 @@ loop_10: var_f19 += var_f22; var_f22 -= 0.9f; } - if (var_f19 >= (var_f23 / 2.0f)) break; + if (var_f19 >= (var_f23 / 2.0f)) + break; sp40++; } - for (;var_f19 > 0.0f; var_r29++) { + for (; var_f19 > 0.0f; var_r29++) { var_f19 += var_f22; var_f22 -= 0.9f; } temp_r30->unk24.z = sp40; temp_r30->unk24.x = fn_1_1D08(atan2d(temp_f18 - temp_r30->unk10.x, sp44.y - temp_r30->unk10.z)); temp_r30->unk24.y = var_f23 / var_r29; - + while (Hu3DMotionEndCheck(temp_r31->unk0) == 0) { HuPrcVSleep(); } goto loop_10; } -void fn_1_3950(void) { +void fn_1_3950(void) +{ Vec sp8C; Vec sp80; Vec sp74; @@ -953,11 +939,11 @@ void fn_1_3950(void) { s32 var_r25; s32 var_r29; s32 var_r26; - unkStruct* temp_r30; - unkStruct3* temp_r27; - unkStruct2* temp_r31; + unkStruct *temp_r30; + unkStruct3 *temp_r27; + unkStruct2 *temp_r31; s32 var_r23; - Process* var_r22; + Process *var_r22; temp_r31 = HuPrcCurrentGet()->user_data; loop_1: @@ -976,7 +962,8 @@ loop_1: } if (((1 << (var_r29 % 32)) & lbl_1_data_340[temp_r31->unk28][var_r24]) != 0) { var_r23 = fn_1_2708(); - } else { + } + else { HuPrcVSleep(); goto loop_1; } @@ -1007,7 +994,8 @@ loop_1: } Hu3DModelPosSet(temp_r31->unk6, temp_f31, var_f18, temp_f30); Hu3DModelPosSet(temp_r31->unk8, temp_f31, -var_f18, temp_f30); - if (var_f18 == (304.52f + temp_r31->unk2C.y)) break; + if (var_f18 == (304.52f + temp_r31->unk2C.y)) + break; HuPrcVSleep(); } Hu3DModelPosSet(temp_r31->unk6, 0.0f, 0.0f, 0.0f); @@ -1017,7 +1005,7 @@ loop_1: Hu3DMotionShiftSet(temp_r31->unk0, temp_r31->unkC[2], 0.0f, 5.0f, 0); Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk16[2], 0.0f, 5.0f, 0); HuPrcSleep(10); - + while (Hu3DMotionEndCheck(temp_r31->unk0) == 0) { HuPrcVSleep(); } @@ -1029,7 +1017,8 @@ loop_1: if (var_r26 >= 4) { var_r26 = 0; } - if (lbl_1_bss_4D4[var_r26].unk30 != 3) break; + if (lbl_1_bss_4D4[var_r26].unk30 != 3) + break; } } temp_r27 = &lbl_1_bss_4D4[var_r26]; @@ -1048,7 +1037,7 @@ loop_1: sp70 = fn_1_27C4(var_r29, var_f29, temp_r31->unk38.y); HuAudFXPlay(0x587); - for (;var_r29 != 0; var_r29--) { + for (; var_r29 != 0; var_r29--) { temp_r31->unk38.y += sp70; Hu3DModelRotSet(temp_r31->unk0, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); Hu3DModelRotSet(temp_r31->unk2, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); @@ -1058,7 +1047,7 @@ loop_1: Hu3DMotionShiftSet(temp_r31->unk0, temp_r31->unkC[4], 0.0f, 5.0f, 0); Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk16[4], 0.0f, 5.0f, 0); HuPrcSleep(10); - + while (Hu3DMotionTimeGet(temp_r31->unk0) < 24.0f) { HuPrcVSleep(); } @@ -1097,10 +1086,11 @@ loop_1: sp5C += sp58; sp58 -= 0.9f; } - if (sp5C >= 600.0f) break; + if (sp5C >= 600.0f) + break; sp54++; } - for (;sp5C > 0.0f; var_r29++) { + for (; sp5C > 0.0f; var_r29++) { sp5C += sp58; sp58 -= 0.9f; } @@ -1113,45 +1103,52 @@ loop_1: goto loop_1; } -s8 fn_1_4BE4(s32 arg0, s32 arg1) { +s8 fn_1_4BE4(s32 arg0, s32 arg1) +{ s8 var_r30; s8 var_r29; s8 var_r28; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_4D4[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { if (arg1 != 0) { var_r29 = var_r30 = HuPadStkY[temp_r31->unk2C]; - } else { + } + else { var_r29 = var_r30 = HuPadStkX[temp_r31->unk2C]; } (void)var_r30; // used to make the else branch go here instead of returning - } else { + } + else { if (arg1 != 0) { var_r28 = var_r30 = temp_r31->unk89; - } else { + } + else { var_r28 = var_r30 = temp_r31->unk88; } } return var_r30; } -void fn_1_4C9C(Vec* arg0, f32 arg8, f32 arg9) { +void fn_1_4C9C(Vec *arg0, f32 arg8, f32 arg9) +{ f32 temp_f29; - + temp_f29 = sqrtf((arg0->x * arg0->x) + (arg0->z * arg0->z)); temp_f29 *= arg9; arg0->x = (temp_f29 * sind(arg8)); arg0->z = (temp_f29 * cosd(arg8)); } -static inline f32 unkInline(void) { +static inline f32 unkInline(void) +{ return 1.0f; // huh? } -s8 fn_1_4E58(s32 arg0, s32 arg1) { +s8 fn_1_4E58(s32 arg0, s32 arg1) +{ Vec spC; f32 sp8; f32 temp_f28; @@ -1161,7 +1158,7 @@ s8 fn_1_4E58(s32 arg0, s32 arg1) { s8 temp_r28; s8 var_r27; s8 var_r26; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_4D4[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { @@ -1176,14 +1173,17 @@ s8 fn_1_4E58(s32 arg0, s32 arg1) { spC.z = (temp_f27 * cosd(temp_f28)); if (arg1 != 0) { var_r27 = var_r30 = spC.z; - } else { + } + else { var_r27 = var_r30 = spC.x; } (void)var_r30; // used to make the else branch go here instead of returning - } else if (arg1 != 0) { + } + else if (arg1 != 0) { var_r26 = var_r30 = temp_r31->unk89; - } else { + } + else { var_r26 = var_r30 = temp_r31->unk88; } return var_r30; @@ -1196,9 +1196,10 @@ static inline void DummyInline2(Vec *arg0, float arg1, float arg2) arg0->z = (arg1 * cosd(arg2)); } -static inline s8 fn_1_4E58_0(s32 arg0) { +static inline s8 fn_1_4E58_0(s32 arg0) +{ Vec spC; - float temp; + float temp; f32 sp8; f32 temp_f28; f32 temp_f27; @@ -1206,7 +1207,7 @@ static inline s8 fn_1_4E58_0(s32 arg0) { s8 temp_r29; s8 temp_r28; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_4D4[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { @@ -1215,17 +1216,19 @@ static inline s8 fn_1_4E58_0(s32 arg0) { temp_f28 = fn_1_1D08(atan2d(temp_r29, temp_r28)); temp_f28 -= lbl_1_bss_778; HuSetVecF(&spC, (f32)temp_r29, 0.0, (f32)temp_r28); - DummyInline2(&spC, sqrtf((spC.x * spC.x) + (spC.z * spC.z)), temp_f28); + DummyInline2(&spC, sqrtf((spC.x * spC.x) + (spC.z * spC.z)), temp_f28); var_r30 = spC.x; - } else { - var_r30 = temp_r31->unk88; - } + } + else { + var_r30 = temp_r31->unk88; + } return var_r30; } -static inline s8 fn_1_4E58_1(s32 arg0) { +static inline s8 fn_1_4E58_1(s32 arg0) +{ Vec spC; - float temp; + float temp; f32 sp8; f32 temp_f28; f32 temp_f27; @@ -1233,7 +1236,7 @@ static inline s8 fn_1_4E58_1(s32 arg0) { s8 temp_r29; s8 temp_r28; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_4D4[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { @@ -1242,94 +1245,106 @@ static inline s8 fn_1_4E58_1(s32 arg0) { temp_f28 = fn_1_1D08(atan2d(temp_r29, temp_r28)); temp_f28 -= lbl_1_bss_778; HuSetVecF(&spC, (f32)temp_r29, 0.0, (f32)temp_r28); - DummyInline2(&spC, sqrtf((spC.x * spC.x) + (spC.z * spC.z)), temp_f28); + DummyInline2(&spC, sqrtf((spC.x * spC.x) + (spC.z * spC.z)), temp_f28); var_r30 = spC.z; - } else { + } + else { var_r30 = temp_r31->unk89; } return var_r30; } -u8 fn_1_525C(s32 arg0, s32 arg1) { +u8 fn_1_525C(s32 arg0, s32 arg1) +{ s8 var_r30; s8 var_r29; s8 var_r28; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_4D4[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { if (arg1 != 0) { var_r29 = var_r30 = HuPadTrigR[temp_r31->unk2C]; - } else { + } + else { var_r29 = var_r30 = HuPadTrigL[temp_r31->unk2C]; } (void)var_r30; // used to make the else branch go here instead of returning - } else if (arg1 != 0) { + } + else if (arg1 != 0) { var_r28 = var_r30 = temp_r31->unk8A; - } else { + } + else { var_r28 = var_r30 = temp_r31->unk8B; } return var_r30; } -u16 fn_1_531C(s32 arg0) { +u16 fn_1_531C(s32 arg0) +{ u16 var_r30; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_4D4[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { var_r30 = HuPadBtnDown[temp_r31->unk2C]; - } else { + } + else { var_r30 = temp_r31->unk8E; } return var_r30; } -u16 fn_1_5388(s32 arg0) { +u16 fn_1_5388(s32 arg0) +{ u16 var_r30; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_4D4[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { var_r30 = HuPadBtn[temp_r31->unk2C]; - } else { + } + else { var_r30 = temp_r31->unk8C; } return var_r30; } -s32 fn_1_53F4(unkStruct3* arg0, f32 arg8, f32 arg9, f32 argA) { +s32 fn_1_53F4(unkStruct3 *arg0, f32 arg8, f32 arg9, f32 argA) +{ Vec sp30; Vec sp24; Vec sp18; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; s32 var_r30; s32 var_r28; f32 var_f27; f32 var_f28; var_r28 = -1; - + for (var_r30 = 0, var_f28 = 10000.0f; var_r30 < 4; var_r30++) { if (var_r30 != arg0->unk24) { temp_r31 = &lbl_1_bss_4D4[var_r30]; HuSetVecF(&sp30, arg8, arg9, argA); HuSetVecF(&sp24, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); HuSubVecF(&sp18, &sp30, &sp24); - if (((var_f27 = sqrtf((sp18.z * sp18.z) + ((sp18.x * sp18.x) + (sp18.y * sp18.y)))) < (arg0->unk60.x + temp_r31->unk60.x)) && (var_f27 < var_f28)) { + if (((var_f27 = sqrtf((sp18.z * sp18.z) + ((sp18.x * sp18.x) + (sp18.y * sp18.y)))) < (arg0->unk60.x + temp_r31->unk60.x)) + && (var_f27 < var_f28)) { var_f28 = var_f27; var_r28 = var_r30; arg0->unkA4 = 0; - (void)temp_r31; - (void)temp_r31; + (void)temp_r31; + (void)temp_r31; } } } return var_r28; } -s32 fn_1_561C(unkStruct3* arg0, s32* arg1) { +s32 fn_1_561C(unkStruct3 *arg0, s32 *arg1) +{ Vec sp24; Vec sp18; Vec spC; @@ -1338,14 +1353,14 @@ s32 fn_1_561C(unkStruct3* arg0, s32* arg1) { s32 var_r27; s32 var_r28; s32 var_r29; - unkStruct3* temp_r30; + unkStruct3 *temp_r30; var_r27 = -1; var_r29 = 0; var_f28 = 10000.0f; var_r28 = 0; - - for (;var_r29 < 4; var_r29++) { + + for (; var_r29 < 4; var_r29++) { if (var_r29 != arg0->unk24) { temp_r30 = &lbl_1_bss_4D4[var_r29]; HuSetVecF(&sp24, arg0->unk40.x, arg0->unk40.y, arg0->unk40.z); @@ -1365,7 +1380,8 @@ s32 fn_1_561C(unkStruct3* arg0, s32* arg1) { return var_r27; } -void fn_1_5838(unkStruct3* arg0) { +void fn_1_5838(unkStruct3 *arg0) +{ Vec spA8; Vec sp9C; Vec sp90; @@ -1386,10 +1402,10 @@ void fn_1_5838(unkStruct3* arg0) { f32 var_f26; s32 var_r25; s32 var_r29; - unkStruct3* temp_r27; - unkStruct3* var_r30; + unkStruct3 *temp_r27; + unkStruct3 *var_r30; s32 var_r24; - + var_r24 = fn_1_561C(arg0, &sp68); if (var_r24 != -1) { var_f20 = fn_1_1D08(atan2d((arg0->unk40.x - arg0->unk4C.x), (arg0->unk40.z - arg0->unk4C.y))); @@ -1397,25 +1413,28 @@ void fn_1_5838(unkStruct3* arg0) { sp54 = var_f26 = arg0->unk4C.y; sp4C = 1.0f; var_r25 = (1.0f + (10.0f / sp4C)); - + while (var_r25 != 0) { var_f27 += sp4C * sind(var_f20); var_f26 += sp4C * cosd(var_f20); HuSetVecF(&spA8, var_f27, arg0->unk40.y, var_f26); - + for (var_r29 = 0; var_r29 < 4; var_r29++) { - if (var_r29 == arg0->unk24) continue; + if (var_r29 == arg0->unk24) + continue; var_r30 = &lbl_1_bss_4D4[var_r29]; HuSetVecF(&sp9C, var_r30->unk40.x, var_r30->unk40.y, var_r30->unk40.z); HuSubVecF(&sp90, &spA8, &sp9C); if (sqrtf((sp90.z * sp90.z) + ((sp90.x * sp90.x) + (sp90.y * sp90.y))) < (arg0->unk60.x + var_r30->unk60.x)) break; } - if (var_r29 < 4) break; + if (var_r29 < 4) + break; AddX = 0.0f; AddZ = 0.0f; MapWall(arg0->unk60.x, var_f27, arg0->unk40.y + arg0->unk60.x, var_f26); - if ((AddX + AddZ) != 0.0f) goto end; + if ((AddX + AddZ) != 0.0f) + goto end; sp58 = var_f27; sp54 = var_f26; var_r25--; @@ -1425,7 +1444,8 @@ void fn_1_5838(unkStruct3* arg0) { sp60 = var_f20 - var_f25; if (sp60 > 0.0f) { sp5C = -0.5f; - } else { + } + else { sp5C = 0.5f; } if (ABS_INV(var_f20 - var_f25) > 180.0f) { @@ -1441,32 +1461,38 @@ void fn_1_5838(unkStruct3* arg0) { HuSetVecF(&spA8, var_f27, 0.0, var_f26); for (var_r29 = 0; var_r29 < 4; var_r29++) { - if ((var_r29 == arg0->unk24) || (var_r29 == var_r24)) continue; + if ((var_r29 == arg0->unk24) || (var_r29 == var_r24)) + continue; temp_r27 = &lbl_1_bss_4D4[var_r29]; HuSetVecF(&sp9C, temp_r27->unk40.x, 0.0, temp_r27->unk40.z); HuSubVecF(&sp90, &spA8, &sp9C); - if (sqrtf((sp90.x * sp90.x) + (sp90.z * sp90.z)) < (arg0->unk60.x + temp_r27->unk60.x)) break; + if (sqrtf((sp90.x * sp90.x) + (sp90.z * sp90.z)) < (arg0->unk60.x + temp_r27->unk60.x)) + break; } - if (var_r29 < 4) break; + if (var_r29 < 4) + break; AddX = 0.0f; AddZ = 0.0f; MapWall(arg0->unk60.x, var_f27, arg0->unk40.y + arg0->unk60.x, var_f26); - if ((AddX + AddZ) != 0.0f) break; + if ((AddX + AddZ) != 0.0f) + break; sp58 = var_f27; sp54 = var_f26; HuSetVecF(&spA8, arg0->unk4C.x, 0.0, arg0->unk4C.y); HuSetVecF(&sp9C, var_f27, 0.0, var_f26); HuSubVecF(&sp90, &spA8, &sp9C); - if (sqrtf((sp90.x * sp90.x) + (sp90.z * sp90.z)) > sp50) break; + if (sqrtf((sp90.x * sp90.x) + (sp90.z * sp90.z)) > sp50) + break; var_f25 += sp5C; } -end: + end: arg0->unk40.x = sp58; arg0->unk40.z = sp54; } } -f32 fn_1_6594(f32 arg8, f32 arg9, f32 argA) { +f32 fn_1_6594(f32 arg8, f32 arg9, f32 argA) +{ f32 var_f31; f32 var_f30; @@ -1484,7 +1510,8 @@ f32 fn_1_6594(f32 arg8, f32 arg9, f32 argA) { return var_f30; } -f32 fn_1_6698(f32 arg8, f32 arg9, unkStruct3* arg0) { +f32 fn_1_6698(f32 arg8, f32 arg9, unkStruct3 *arg0) +{ Vec sp2C; Vec sp20; Vec sp14; @@ -1497,8 +1524,8 @@ f32 fn_1_6698(f32 arg8, f32 arg9, unkStruct3* arg0) { static inline void PadInline(void) { - float var_f27; - (void)var_f27; + float var_f27; + (void)var_f27; (void)var_f27; (void)var_f27; (void)var_f27; @@ -1515,7 +1542,8 @@ static inline void PadInline(void) } // fn_1_6814: https://decomp.me/scratch/WQPjD -void fn_1_6814(unkStruct3* arg0) { +void fn_1_6814(unkStruct3 *arg0) +{ Vec sp104; Vec spF8; Vec spEC; @@ -1536,15 +1564,15 @@ void fn_1_6814(unkStruct3* arg0) { s32 var_r22; s32 var_r21; s32 var_r20; - unkStruct* temp_r27; + unkStruct *temp_r27; s32 var_r28; - unkStruct3* temp_r29; - unkStruct* var_r30; + unkStruct3 *temp_r29; + unkStruct *var_r30; arg0->unk88 = arg0->unk89 = 0; arg0->unk8B = arg0->unk8A = 0; arg0->unk8C = arg0->unk8E = 0; - + switch (GWPlayerCfg[arg0->unk24].diff) { case 0: var_r22 = 0x3C; @@ -1573,7 +1601,7 @@ void fn_1_6814(unkStruct3* arg0) { spA0 = 350.0f; break; } - + for (var_r28 = 0, sp98 = 10000.0f; var_r28 < 0x20; var_r28++) { temp_r27 = lbl_1_bss_278[var_r28]; if (temp_r27 && (temp_r27->unk6 != -1)) { @@ -1593,8 +1621,9 @@ void fn_1_6814(unkStruct3* arg0) { if (arg0->unkA0 != var_r30->unk6) { if (frandmod(0x64) < 0) { (void)var_r21; // probably debug code - PadInline(); - } else { + PadInline(); + } + else { (void)var_r21; } } @@ -1603,8 +1632,8 @@ void fn_1_6814(unkStruct3* arg0) { sp104.x = temp_f31 = (var_r30->unk10.x + (sp9C * sind(var_r30->unk24.x + 90.0f))); sp104.z = temp_f30 = (var_r30->unk10.z + (sp9C * cosd(var_r30->unk24.x + 90.0f))); var_f29 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); - spF8.x = temp_f31 = (var_r30->unk10.x + (sp9C * sind(var_r30->unk24.x - 90.0f))); - spF8.z = temp_f30 = (var_r30->unk10.z + (sp9C * cosd(var_r30->unk24.x - 90.0f))); + spF8.x = temp_f31 = (var_r30->unk10.x + (sp9C * sind(var_r30->unk24.x - 90.0f))); + spF8.z = temp_f30 = (var_r30->unk10.z + (sp9C * cosd(var_r30->unk24.x - 90.0f))); spA0 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); if (sqrtf((arg0->unk40.x * arg0->unk40.x) + (arg0->unk40.z * arg0->unk40.z)) < 400.0f) { spEC.x = var_f29; @@ -1614,7 +1643,8 @@ void fn_1_6814(unkStruct3* arg0) { if (var_f29 > spA0) { spEC.x = spF8.x; spEC.z = spF8.z; - } else { + } + else { spEC.x = sp104.x; spEC.z = sp104.z; } @@ -1623,16 +1653,17 @@ void fn_1_6814(unkStruct3* arg0) { arg0->unk90.x = spEC.x; arg0->unk90.y = spEC.z; } - + var_f18 = atan2d((arg0->unk90.x - arg0->unk40.x), (arg0->unk90.y - arg0->unk40.z)); - + if (fn_1_53F4(arg0, arg0->unk40.x + arg0->unk7C.x, arg0->unk40.y, arg0->unk40.z + arg0->unk7C.z) != -1) { var_f18 += 90.0f; } - arg0->unk88 = 50.0 * sind(var_f18); + arg0->unk88 = 50.0 * sind(var_f18); arg0->unk89 = -50.0f * cosd(var_f18); } - } else { + } + else { if (arg0->unk9C == 0) { arg0->unk9C = 1; arg0->unk98 = (250.0f + (90.0f * frandf())); @@ -1645,15 +1676,15 @@ void fn_1_6814(unkStruct3* arg0) { arg0->unkA4 = 0; var_f18 += 90.0f; } - arg0->unk88 = 25.0 * sind(var_f18); + arg0->unk88 = 25.0 * sind(var_f18); arg0->unk89 = -25.0 * cosd(var_f18); return; } var_r28 = 0; sp98 = 10000.0f; var_r20 = -1; - - for (;var_r28 < 4; var_r28++) { + + for (; var_r28 < 4; var_r28++) { if (var_r28 != arg0->unk24) { temp_r29 = &lbl_1_bss_4D4[var_r28]; HuSetVecF(&sp104, arg0->unk40.x, 0.0, arg0->unk40.z); @@ -1675,20 +1706,18 @@ void fn_1_6814(unkStruct3* arg0) { if ((var_f29 < 200.0f) && (var_f29 > 150.0f)) { var_f18 = atan2d((arg0->unk40.x - temp_r29->unk40.x), (arg0->unk40.z - temp_r29->unk40.z)); (void)var_f29; - arg0->unk88 = 30.0f * sind(var_f18); + arg0->unk88 = 30.0f * sind(var_f18); arg0->unk89 = -30.0f * cosd(var_f18); } } } - - } static inline DummyInline(Vec *arg0, Vec *arg1, Vec *arg2, float arg3, float arg4, float arg5) { float spB8; float spBC; - HuSetVecF(arg0, arg1->x, 0.0, arg1->z); + HuSetVecF(arg0, arg1->x, 0.0, arg1->z); spBC = sqrtf((arg0->x * arg0->x) + (arg0->z * arg0->z)); spBC *= (1.0f - arg3); arg0->x = spBC * sind(arg4); @@ -1702,7 +1731,8 @@ static inline DummyInline(Vec *arg0, Vec *arg1, Vec *arg2, float arg3, float arg HuSetVecF(arg1, arg0->x, 0.0, arg0->z); } -void fn_1_7C60(void) { +void fn_1_7C60(void) +{ Vec sp1A0; Vec sp188; Vec sp17C; @@ -1749,18 +1779,18 @@ void fn_1_7C60(void) { f32 var_f21; f32 var_f31; s32 var_r27; - unkStruct3* temp_r30; - unkStruct3* temp_r31; + unkStruct3 *temp_r30; + unkStruct3 *temp_r31; temp_r31 = HuPrcCurrentGet()->user_data; temp_r31->unk30 = 0; temp_r31->unk9C = 0; temp_r31->unkA0 = -1; - + while (lbl_1_bss_794 == 0) { HuPrcVSleep(); } - + lbl_1_bss_794 = 2; while (lbl_1_bss_794 == 2) { HuPrcVSleep(); @@ -1790,14 +1820,16 @@ loop_6: CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[2], 0.0f, 8.0f, 0x40000001U); Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[2], 0.0f, 8.0f, 0x40000001U); } - } else if (temp_r31->unk30 != 1) { + } + else if (temp_r31->unk30 != 1) { temp_r31->unk30 = 1; CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[1], 0.0f, 8.0f, 0x40000001U); Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[1], 0.0f, 8.0f, 0x40000001U); } temp_r31->unk7C.x += 0.1f * sp1A0.x; temp_r31->unk7C.z += 0.1f * sp1A0.z; - } else if (temp_r31->unk30 != 0) { + } + else if (temp_r31->unk30 != 0) { temp_r31->unk30 = 0; CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[0]); Hu3DModelAttrSet(temp_r31->unk0, 0x40000001); @@ -1810,13 +1842,15 @@ loop_6: if (var_f21 > 0.25f) { var_f21 -= 0.25f; } - } else { + } + else { var_f21 -= 0.25f; } if (var_f21 < 0.0f) { HuSetVecF(&temp_r31->unk7C, 0.0, 0.0, 0.0); var_f21 = 0.0f; - } else { + } + else { if (var_f21 > 10.0f) { var_f21 = 10.0f; } @@ -1851,7 +1885,8 @@ loop_6: MapWall(temp_r31->unk60.x, temp_r31->unk40.x, temp_r31->unk40.y + temp_r31->unk60.x, temp_r31->unk40.z); temp_r31->unk40.x += AddX; temp_r31->unk40.z += AddZ; - if ((temp_r31->unk38 = fn_1_53F4(temp_r31, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z)) == -1) break; + if ((temp_r31->unk38 = fn_1_53F4(temp_r31, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z)) == -1) + break; temp_r31->unk40.x = temp_r31->unk4C.x; temp_r31->unk40.z = temp_r31->unk4C.y; } @@ -1865,7 +1900,8 @@ loop_6: HuAudFXPlay(0x584); Hu3DModelAttrSet(temp_r31->unk0, 0x40000002); Hu3DModelAttrSet(temp_r31->unk2, 0x40000002); - Hu3DModelPosSet(temp_r31->unkA, temp_r31->unk40.x + (100.0 * sind(lbl_1_bss_778)), 200.0f + temp_r31->unk40.y, temp_r31->unk40.z + (100.0 * cosd(lbl_1_bss_778))); + Hu3DModelPosSet(temp_r31->unkA, temp_r31->unk40.x + (100.0 * sind(lbl_1_bss_778)), 200.0f + temp_r31->unk40.y, + temp_r31->unk40.z + (100.0 * cosd(lbl_1_bss_778))); Hu3DModelAttrReset(temp_r31->unkA, 1); Hu3DModelAttrReset(temp_r31->unkA, 0x40000002); HuPrcSleep(10); @@ -1877,7 +1913,7 @@ loop_6: Hu3DModelAttrReset(temp_r31->unk6, 1); Hu3DModelAttrReset(temp_r31->unk8, 1); Hu3DModelShadowDispOn(temp_r31->unk6); - + for (sp134 = 0.0f, sp130 = 1.0f; sp134 < 1; sp134 += 0.05f, sp130 -= 0.1f) { Hu3DModelScaleSet(temp_r31->unk6, 1.0f, sp134, 1.0f); Hu3DModelScaleSet(temp_r31->unk8, 1.0f, -sp134, 1.0f); @@ -1896,8 +1932,8 @@ loop_6: Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[0], 0.0f, 5.0f, 0x40000001); var_r27 = 30; sp12C = fn_1_27C4(var_r27, lbl_1_bss_778, temp_r31->unk54.y); - - for (;var_r27 != 0; var_r27--) { + + for (; var_r27 != 0; var_r27--) { temp_r31->unk54.y += sp12C; Hu3DModelRotSet(temp_r31->unk0, temp_r31->unk54.x, temp_r31->unk54.y, temp_r31->unk54.z); Hu3DModelRotSet(temp_r31->unk2, temp_r31->unk54.x, temp_r31->unk54.y, temp_r31->unk54.z); @@ -1910,15 +1946,16 @@ loop_6: } CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[5], 0.0f, 5.0f, 0U); Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[5], 0.0f, 5.0f, 0); - + while (1) { HuPrcVSleep(); } } } -void fn_1_A01C(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { - HsfanimStruct01* var_r31; +void fn_1_A01C(ModelData *model, ParticleData *particle, f32 (*matrix)[4]) +{ + HsfanimStruct01 *var_r31; f32 var_f29; f32 var_f28; f32 var_f30; @@ -1928,7 +1965,7 @@ void fn_1_A01C(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { s16 var_r26; s16 var_r28; s32 var_r27; - unkStruct* temp_r30; + unkStruct *temp_r30; if (particle->unk_34 == 0) { var_r31 = particle->unk_48; @@ -1937,20 +1974,23 @@ void fn_1_A01C(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { } } var_r31 = particle->unk_48; - + for (var_r26 = 0; var_r26 < 0x20; var_r26++) { temp_r30 = lbl_1_bss_278[var_r26]; if (temp_r30 && (temp_r30->unkA != 0)) { for (var_r25 = 0, var_f30 = 0.0f; var_r25 < 4; var_r25++, var_f30 += 45.0f) { for (var_r24 = 0, var_f31 = 0.0f; var_r24 < 8; var_r24++, var_f31 += 45.0f) { for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { - if (var_r31->unk14.x == 0.0f) break; + if (var_r31->unk14.x == 0.0f) + break; } - if (var_r28 == particle->unk_30) break; + if (var_r28 == particle->unk_30) + break; if (temp_r30->unkC == 1) { var_f29 = 2.0f + (2.0f * frandf()); var_f28 = 10.0f; - } else { + } + else { var_f29 = 1.0f + frandf(); var_f28 = 3.0f; } @@ -1964,7 +2004,8 @@ void fn_1_A01C(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { if (temp_r30->unkC == 1) { var_r31->unk2C = 20.0f + (2.0f * frandf()); var_r31->unk14.y = 0.0f; - } else { + } + else { var_r31->unk2C = 15.0f; var_r31->unk14.y = 0.0f; } @@ -2000,8 +2041,9 @@ void fn_1_A01C(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { } } -void fn_1_A618(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { - HsfanimStruct01* var_r31; +void fn_1_A618(ModelData *model, ParticleData *particle, f32 (*matrix)[4]) +{ + HsfanimStruct01 *var_r31; f32 var_f31; f32 var_f30; f32 var_f29; @@ -2010,31 +2052,34 @@ void fn_1_A618(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { s16 var_r25; s16 var_r29; s32 var_r27; - unkStruct* temp_r28; + unkStruct *temp_r28; if (particle->unk_34 == 0) { var_r31 = particle->unk_48; - + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { var_r31->unk14.x = var_r31->unk2C = 0.0f; } } var_r31 = particle->unk_48; - + for (var_r26 = 0; var_r26 < 0x20; var_r26++) { temp_r28 = lbl_1_bss_278[var_r26]; if (temp_r28 && (temp_r28->unkA != 0)) { - + for (var_r25 = 0, var_f28 = 0.0f; var_r25 < 9; var_r25++, var_f28 += 45.0f) { for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { - if (var_r31->unk14.x == 0.0f) break; + if (var_r31->unk14.x == 0.0f) + break; } - if (var_r29 == particle->unk_30) break; + if (var_r29 == particle->unk_30) + break; var_f31 = var_f28; if (var_r25 < 8) { var_f30 = 1.0f + frandf(); var_f29 = 2.0f; - } else { + } + else { var_f30 = var_f29 = 0.0f; } var_r31->unk34.x = temp_r28->unk10.x + (var_f30 * sind(var_f31)); @@ -2077,29 +2122,33 @@ void fn_1_A618(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { } } -void fn_1_AA88(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { - HsfanimStruct01* var_r31; +void fn_1_AA88(ModelData *model, ParticleData *particle, f32 (*matrix)[4]) +{ + HsfanimStruct01 *var_r31; f32 var_f31; s16 var_r27; s16 var_r28; - unkStruct2* temp_r29; + unkStruct2 *temp_r29; if (particle->unk_34 == 0) { var_r31 = particle->unk_48; - + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { var_r31->unk14.x = var_r31->unk2C = 0.0f; } } var_r31 = particle->unk_48; - + for (var_r27 = 0; var_r27 < 6; var_r27++) { temp_r29 = &lbl_1_bss_33C[var_r27]; - if (temp_r29->unk20 == 0) continue; + if (temp_r29->unk20 == 0) + continue; for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { - if (var_r31->unk14.x == 0.0f) break; + if (var_r31->unk14.x == 0.0f) + break; } - if (var_r28 == particle->unk_30) break; + if (var_r28 == particle->unk_30) + break; var_r31->unk34.x = temp_r29->unk2C.x + (-100.0 * cosd(temp_r29->unk38.y)); var_r31->unk34.y = 98.0f + temp_r29->unk2C.y; var_r31->unk34.z = temp_r29->unk2C.z + (100.0 * sind(temp_r29->unk38.y)); @@ -2111,7 +2160,7 @@ void fn_1_AA88(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { temp_r29->unk20 = 0; } var_r31 = particle->unk_48; - + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { if (0.0f != var_r31->unk14.x) { var_r31->unk2C += var_r31->unk14.y; @@ -2135,18 +2184,19 @@ void fn_1_AA88(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { } } -void fn_1_ADC8(void) { +void fn_1_ADC8(void) +{ Vec sp14; Vec sp8; f32 var_f31; - void* temp_r28; - Process* var_r29; + void *temp_r28; + Process *var_r29; s32 var_r31; - unkStruct3* temp_r30; + unkStruct3 *temp_r30; fn_1_6EC(1465.0f, 770.0f, -2400.0f, 0x588); HuAudFXPlay(0x58B); - + var_r31 = 0; var_f31 = Hu3DMotionMaxTimeGet(lbl_1_bss_79E); for (; var_f31; var_r31++, var_f31--) { @@ -2175,7 +2225,7 @@ void fn_1_ADC8(void) { HuPrcVSleep(); } HuPrcSleep(30); - + for (var_r31 = 0; var_r31 < 4; var_r31++) { temp_r30 = &lbl_1_bss_4D4[var_r31]; HuAudPlayerVoicePlay(temp_r30->unk24, 0x128); @@ -2184,14 +2234,17 @@ void fn_1_ADC8(void) { } } -void fn_1_B13C(void) { +void fn_1_B13C(void) +{ HuPrcSleep(0x1E); } -void fn_1_B160(void) { +void fn_1_B160(void) +{ while (1) { while (1) { - if (omSysExitReq != 1) break; + if (omSysExitReq != 1) + break; WipeCreate(2, 0, 0x3C); HuAudFadeOut(0x3E8); HuPrcSleep(0x3C); @@ -2205,7 +2258,8 @@ void fn_1_B160(void) { } } -void fn_1_B1C0(void) { +void fn_1_B1C0(void) +{ s16 temp_r27; s16 temp_r30; s16 var_r29; @@ -2214,7 +2268,7 @@ void fn_1_B1C0(void) { s32 var_r31; lbl_1_bss_794 = 0; - + for (var_r31 = 0; var_r31 < 4; var_r31++) { lbl_1_bss_780[var_r31] = -1; } @@ -2234,7 +2288,7 @@ void fn_1_B1C0(void) { } var_r26 = HuAudSeqPlay(0x43); temp_r30 = MGSeqCreate(3, 0); - + while (MGSeqStatGet(temp_r30) != 0) { HuPrcVSleep(); } @@ -2248,7 +2302,8 @@ void fn_1_B1C0(void) { var_r28++; } } - if ((var_r28 <= 1) || (var_r29 < 0x3B)) break; + if ((var_r28 <= 1) || (var_r29 < 0x3B)) + break; MGSeqParamSet(temp_r27, 1, var_r29-- / 60); lbl_1_bss_790++; HuPrcVSleep(); @@ -2268,19 +2323,21 @@ void fn_1_B1C0(void) { HuAudSeqFadeOut(var_r26, 0x64); MGSeqParamSet(temp_r27, 2, -1); temp_r30 = MGSeqCreate(3, 1); - + while (MGSeqStatGet(temp_r30) != 0) { HuPrcVSleep(); } HuPrcSleep(30); lbl_1_bss_794 = 5; for (var_r31 = 0; var_r31 < 4; var_r31++) { - if (lbl_1_bss_780[var_r31] != -1) break; + if (lbl_1_bss_780[var_r31] != -1) + break; } if (var_r31 < 4) { HuAudSStreamPlay(1); temp_r30 = MGSeqCreate(5, 3, lbl_1_bss_780[0], lbl_1_bss_780[1], lbl_1_bss_780[2], lbl_1_bss_780[3]); - } else { + } + else { HuAudSStreamPlay(4); temp_r30 = MGSeqCreate(3, 2); } @@ -2293,4 +2350,4 @@ void fn_1_B1C0(void) { while (1) { HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/REL/m413Dll/main.c b/src/REL/m413Dll/main.c index 395125bc..2041f1b1 100644 --- a/src/REL/m413Dll/main.c +++ b/src/REL/m413Dll/main.c @@ -1,14 +1,14 @@ +#include "game/audio.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" -#include "game/audio.h" #include "game/wipe.h" -#include "game/minigame_seq.h" -#include "game/gamework_data.h" -#include "game/sprite.h" -#include "game/pad.h" -#include "game/hsfman.h" #include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/pad.h" +#include "game/sprite.h" #include "game/hsfmotion.h" @@ -21,112 +21,112 @@ typedef struct struct_bss_2A6C StructBss2A6C; typedef struct struct_sp_14C8 StructSp14C8; typedef struct struct_sp_14C8 { - u8 unk0; - u8 unk1; - u8 unk2; - s32 unk4[4]; - StructBss2A6C *unk14; - StructBss2A6C *unk18; - StructSp14C8 *unk1C; + u8 unk0; + u8 unk1; + u8 unk2; + s32 unk4[4]; + StructBss2A6C *unk14; + StructBss2A6C *unk18; + StructSp14C8 *unk1C; } StructSp14C8; typedef struct work_19C8 { - s32 unk0; - s32 unk4; - s32 unk8; - s32 unkC; - s32 unk10; - s32 unk14; - s32 unk18; - s32 unk1C; - s32 unk20; - s32 unk24; - s32 unk28; - s32 unk2C; - u8 unk30[0x10]; - float unk40; - s32 unk44; - StructBss2A6C *unk48[2]; - u8 unk50[8][2]; - u8 unk60; - u8 unk61; - u8 unk62; - u8 unk63[2]; - u8 unk65[2]; - s32 unk68; - s32 unk6C; - u8 unk70; - u8 unk71; - u8 unk72; - s32 unk74; - u8 unk78; - u8 unk79; - s32 unk7C; - s32 unk80; - s32 unk84; - s32 unk88; - s32 unk8C; - s32 unk90; - s32 unk94; - float unk98; - float unk9C; - float unkA0; - s16 unkA4; + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + s32 unk20; + s32 unk24; + s32 unk28; + s32 unk2C; + u8 unk30[0x10]; + float unk40; + s32 unk44; + StructBss2A6C *unk48[2]; + u8 unk50[8][2]; + u8 unk60; + u8 unk61; + u8 unk62; + u8 unk63[2]; + u8 unk65[2]; + s32 unk68; + s32 unk6C; + u8 unk70; + u8 unk71; + u8 unk72; + s32 unk74; + u8 unk78; + u8 unk79; + s32 unk7C; + s32 unk80; + s32 unk84; + s32 unk88; + s32 unk8C; + s32 unk90; + s32 unk94; + float unk98; + float unk9C; + float unkA0; + s16 unkA4; } Work19C8; typedef struct struct_bss_2A6C { - u8 unk0; - u8 unk1; - u8 unk2; - u8 unk3; - u8 unk4; - u8 unk5; - s32 unk8[4]; - union { - s8 unk18; - u8 unk18_u; - }; - - Vec unk1C; - u32 unk28; - StructSp14C8 *unk2C; - StructBss2A6C *unk30; - StructBss2A6C *unk34; - StructBss2A6C *unk38; - StructBss2A6C *unk3C; - StructBss2A6C *unk40; - StructBss2A6C *unk44; - StructBss2A6C *unk48; - StructBss2A6C *unk4C; - Work19C8 *unk50; + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; + u8 unk5; + s32 unk8[4]; + union { + s8 unk18; + u8 unk18_u; + }; + + Vec unk1C; + u32 unk28; + StructSp14C8 *unk2C; + StructBss2A6C *unk30; + StructBss2A6C *unk34; + StructBss2A6C *unk38; + StructBss2A6C *unk3C; + StructBss2A6C *unk40; + StructBss2A6C *unk44; + StructBss2A6C *unk48; + StructBss2A6C *unk4C; + Work19C8 *unk50; } StructBss2A6C; typedef struct struct_bss_2684 { - float unk0; - float unk4; - s32 unk8; - s32 unkC; - u8 unk10; + float unk0; + float unk4; + s32 unk8; + s32 unkC; + u8 unk10; } StructBss2684; typedef struct struct_bss_100 { - u8 unk0; - Vec unk4; - Vec unk10; - u8 unk1C; - u8 unk1D; + u8 unk0; + Vec unk4; + Vec unk10; + u8 unk1C; + u8 unk1D; } StructBss100; typedef struct struct_bss_b8 { - s32 unk0; - s32 unk4; - float unk8; - Vec unkC; + s32 unk0; + s32 unk4; + float unk8; + Vec unkC; } StructBssB8; typedef struct struct_bss_48 { - s32 unk0; - float unk4[3]; + s32 unk0; + float unk4[3]; } StructBss48; StructBss2A6C *lbl_1_bss_7884[12]; @@ -159,2037 +159,2054 @@ s32 lbl_1_data_4[2] = { -1, -1 }; s32 lbl_1_data_C[4] = { 0, 1, 2, 3 }; float lbl_1_data_1C[7] = { 1000, 1000, 1000, 0, 0, 0, 30 }; -const Vec lbl_1_rodata_10[2] = { - 0, 7955, 3436, - 0, -0.898794f, -0.43837115f -}; +const Vec lbl_1_rodata_10[2] = { 0, 7955, 3436, 0, -0.898794f, -0.43837115f }; -const GXColor lbl_1_rodata_28 = { - 0, 0, 0, 255 -}; +const GXColor lbl_1_rodata_28 = { 0, 0, 0, 255 }; -const Vec lbl_1_rodata_2C[2] = { - 0, 5966.25f, 3436, - 0, -0.6740955f, -0.43837115f -}; +const Vec lbl_1_rodata_2C[2] = { 0, 5966.25f, 3436, 0, -0.6740955f, -0.43837115f }; -const GXColor lbl_1_rodata_44 = { - 0, 0, 0, 255 -}; +const GXColor lbl_1_rodata_44 = { 0, 0, 0, 255 }; void fn_1_A0(s32 arg0) { - Mtx44 sp10C; - Mtx44 spCC; - Mtx44 sp8C; - Mtx44 sp4C; - Mtx44 spC; - CameraData *temp_r31; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - - MTXRotDeg(sp8C, 'y', HuPadSubStkX[0]/16.0); - MTXRotDeg(spCC, 'x', HuPadSubStkY[0]/-16.0); - MTXTrans(spC, (((HuPadBtn[0] & PAD_BUTTON_RIGHT) != 0)-((HuPadBtn[0] & PAD_BUTTON_LEFT) != 0))*10.0, - (((HuPadBtn[0] & PAD_BUTTON_UP) != 0)-((HuPadBtn[0] & PAD_BUTTON_DOWN) != 0))*10.0, - ((HuPadTrigL[0]-HuPadTrigR[0])/128.0)*30.0); - MTXConcat(spCC, sp8C, sp4C); - MTXConcat(spC, sp4C, sp10C); - for(temp_r30=0, temp_r29=1; temp_r30<16; temp_r30++, temp_r29 <<= 1) { - if(arg0 & temp_r29) { - temp_r31 = &Hu3DCamera[temp_r30]; - MTXMultVec(sp10C, &temp_r31->pos, &temp_r31->pos); - MTXMultVec(sp4C, &temp_r31->up, &temp_r31->up); - MTXMultVec(sp10C, &temp_r31->target, &temp_r31->target); - } - } - (void)temp_r28; - (void)temp_r27; - (void)temp_r26; - (void)temp_r25; - (void)temp_r28; - (void)temp_r27; - (void)temp_r26; - (void)temp_r25; + Mtx44 sp10C; + Mtx44 spCC; + Mtx44 sp8C; + Mtx44 sp4C; + Mtx44 spC; + CameraData *temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + + MTXRotDeg(sp8C, 'y', HuPadSubStkX[0] / 16.0); + MTXRotDeg(spCC, 'x', HuPadSubStkY[0] / -16.0); + MTXTrans(spC, (((HuPadBtn[0] & PAD_BUTTON_RIGHT) != 0) - ((HuPadBtn[0] & PAD_BUTTON_LEFT) != 0)) * 10.0, + (((HuPadBtn[0] & PAD_BUTTON_UP) != 0) - ((HuPadBtn[0] & PAD_BUTTON_DOWN) != 0)) * 10.0, ((HuPadTrigL[0] - HuPadTrigR[0]) / 128.0) * 30.0); + MTXConcat(spCC, sp8C, sp4C); + MTXConcat(spC, sp4C, sp10C); + for (temp_r30 = 0, temp_r29 = 1; temp_r30 < 16; temp_r30++, temp_r29 <<= 1) { + if (arg0 & temp_r29) { + temp_r31 = &Hu3DCamera[temp_r30]; + MTXMultVec(sp10C, &temp_r31->pos, &temp_r31->pos); + MTXMultVec(sp4C, &temp_r31->up, &temp_r31->up); + MTXMultVec(sp10C, &temp_r31->target, &temp_r31->target); + } + } + (void)temp_r28; + (void)temp_r27; + (void)temp_r26; + (void)temp_r25; + (void)temp_r28; + (void)temp_r27; + (void)temp_r26; + (void)temp_r25; } s32 fn_1_38C(u8 *arg0, s32 *arg1) { - s32 temp_r28; - s32 temp_r27 = rand8()%4; - - if(!arg0 || *arg0 == 0) { - return 0; - } - for(temp_r28=0; temp_r28<4; temp_r28++) { - s32 temp_r31 = (temp_r28+temp_r27)%4; - if(*arg0 & (1 << temp_r31)) { - *arg0 = 1 << temp_r31; - if(arg1) { - arg1[(temp_r31+1)%4] = arg1[(temp_r31+2)%4] = arg1[(temp_r31+3)%4] = 0; - } - return temp_r31; - } - } - return 0; + s32 temp_r28; + s32 temp_r27 = rand8() % 4; + + if (!arg0 || *arg0 == 0) { + return 0; + } + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + s32 temp_r31 = (temp_r28 + temp_r27) % 4; + if (*arg0 & (1 << temp_r31)) { + *arg0 = 1 << temp_r31; + if (arg1) { + arg1[(temp_r31 + 1) % 4] = arg1[(temp_r31 + 2) % 4] = arg1[(temp_r31 + 3) % 4] = 0; + } + return temp_r31; + } + } + return 0; } s32 fn_1_4C0(u8 *arg0, s32 *arg1) { - s32 temp_r31; - - s32 temp_r28 = rand8()%4; - if(!arg0 || *arg0 == 0) { - return 0; - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - s32 temp_r29 = (temp_r31+temp_r28)%4; - if(*arg0 & (1 << temp_r29)) { - return arg1[temp_r29]; - } - } - return 0; + s32 temp_r31; + + s32 temp_r28 = rand8() % 4; + if (!arg0 || *arg0 == 0) { + return 0; + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + s32 temp_r29 = (temp_r31 + temp_r28) % 4; + if (*arg0 & (1 << temp_r29)) { + return arg1[temp_r29]; + } + } + return 0; } #pragma dont_inline on s32 fn_1_57C(s8 arg0, float arg1, StructBss2A6C *arg2, StructBss2A6C **arg3) { - StructBss2A6C *temp_r31; - if(arg3) { - *arg3 = NULL; - } - if(arg0 < 0 || arg0 >= 12 || arg1 < 0 || arg1 > 16) { - return 1; - } - for(temp_r31 = lbl_1_bss_7884[arg0]; temp_r31;) { - if(arg2 == NULL || (temp_r31 != arg2 && (!(arg2->unk1 & 0x2) || !(temp_r31->unk1 & 0x2) || (arg2->unk2 != temp_r31->unk2)))) { - if(temp_r31->unk1C.y > arg1-1.0f && temp_r31->unk1C.y < arg1+1.0f) { - if(arg3) { - *arg3 = temp_r31; - } - return 1; - } - } - temp_r31 = temp_r31->unk48; - if(!temp_r31) { - continue; - } - if(temp_r31->unk1C.y >= arg1+1.0f) { - break; - } - } - return 0; + StructBss2A6C *temp_r31; + if (arg3) { + *arg3 = NULL; + } + if (arg0 < 0 || arg0 >= 12 || arg1 < 0 || arg1 > 16) { + return 1; + } + for (temp_r31 = lbl_1_bss_7884[arg0]; temp_r31;) { + if (arg2 == NULL || (temp_r31 != arg2 && (!(arg2->unk1 & 0x2) || !(temp_r31->unk1 & 0x2) || (arg2->unk2 != temp_r31->unk2)))) { + if (temp_r31->unk1C.y > arg1 - 1.0f && temp_r31->unk1C.y < arg1 + 1.0f) { + if (arg3) { + *arg3 = temp_r31; + } + return 1; + } + } + temp_r31 = temp_r31->unk48; + if (!temp_r31) { + continue; + } + if (temp_r31->unk1C.y >= arg1 + 1.0f) { + break; + } + } + return 0; } #pragma dont_inline off - static inline s32 fn_1_57C_inline(s8 arg0, float arg1, StructBss2A6C *arg2, StructBss2A6C **arg3) { - StructBss2A6C *temp_r31; - if(arg3) { - *arg3 = NULL; - } - if(arg0 < 0 || arg0 >= 12 || arg1 < 0 || arg1 > 16) { - return 1; - } - for(temp_r31 = lbl_1_bss_7884[arg0]; temp_r31;) { - if(arg2 == NULL || (temp_r31 != arg2 && (!(arg2->unk1 & 0x2) || !(temp_r31->unk1 & 0x2) || (arg2->unk2 != temp_r31->unk2)))) { - if(temp_r31->unk1C.y > arg1-1.0f && temp_r31->unk1C.y < arg1+1.0f) { - if(arg3) { - *arg3 = temp_r31; - } - return 1; - } - } - temp_r31 = temp_r31->unk48; - if(!temp_r31) { - continue; - } - if(temp_r31->unk1C.y >= arg1+1.0f) { - break; - } - } - return 0; + StructBss2A6C *temp_r31; + if (arg3) { + *arg3 = NULL; + } + if (arg0 < 0 || arg0 >= 12 || arg1 < 0 || arg1 > 16) { + return 1; + } + for (temp_r31 = lbl_1_bss_7884[arg0]; temp_r31;) { + if (arg2 == NULL || (temp_r31 != arg2 && (!(arg2->unk1 & 0x2) || !(temp_r31->unk1 & 0x2) || (arg2->unk2 != temp_r31->unk2)))) { + if (temp_r31->unk1C.y > arg1 - 1.0f && temp_r31->unk1C.y < arg1 + 1.0f) { + if (arg3) { + *arg3 = temp_r31; + } + return 1; + } + } + temp_r31 = temp_r31->unk48; + if (!temp_r31) { + continue; + } + if (temp_r31->unk1C.y >= arg1 + 1.0f) { + break; + } + } + return 0; } void fn_1_6D0(s8 arg0, float arg1, StructBss2A6C *arg2) { - StructBss2A6C *temp_r31; - StructBss2A6C *temp_r30; - if(arg2->unk4C == NULL) { - lbl_1_bss_7884[arg2->unk18] = arg2->unk48; - } else { - arg2->unk4C->unk48 = arg2->unk48; - } - if(arg2->unk48 != NULL) { - arg2->unk48->unk4C = arg2->unk4C; - } - for(temp_r31=lbl_1_bss_7884[arg0], temp_r30 = NULL; temp_r31; temp_r31=temp_r31->unk48) { - if(temp_r31->unk1C.y > arg1) { - break; - } - temp_r30 = temp_r31; - } - arg2->unk18 = arg0; - arg2->unk1C.y = arg1; - arg2->unk48 = temp_r31; - if(arg2->unk48) { - arg2->unk48->unk4C = arg2; - } - arg2->unk4C = temp_r30; - if(arg2->unk4C) { - arg2->unk4C->unk48 = arg2; - } - if(lbl_1_bss_7884[arg0] == arg2->unk48) { - lbl_1_bss_7884[arg0] = arg2; - } + StructBss2A6C *temp_r31; + StructBss2A6C *temp_r30; + if (arg2->unk4C == NULL) { + lbl_1_bss_7884[arg2->unk18] = arg2->unk48; + } + else { + arg2->unk4C->unk48 = arg2->unk48; + } + if (arg2->unk48 != NULL) { + arg2->unk48->unk4C = arg2->unk4C; + } + for (temp_r31 = lbl_1_bss_7884[arg0], temp_r30 = NULL; temp_r31; temp_r31 = temp_r31->unk48) { + if (temp_r31->unk1C.y > arg1) { + break; + } + temp_r30 = temp_r31; + } + arg2->unk18 = arg0; + arg2->unk1C.y = arg1; + arg2->unk48 = temp_r31; + if (arg2->unk48) { + arg2->unk48->unk4C = arg2; + } + arg2->unk4C = temp_r30; + if (arg2->unk4C) { + arg2->unk4C->unk48 = arg2; + } + if (lbl_1_bss_7884[arg0] == arg2->unk48) { + lbl_1_bss_7884[arg0] = arg2; + } } - s32 fn_1_7F8(StructBss2A6C *arg0, StructSp14C8 *arg1) { - s32 temp_r29; - Work19C8 *temp_r28; - Work19C8 *temp_r27; - Work19C8 *temp_r26; - Work19C8 *temp_r25; - s32 temp_r23; - temp_r29 = 0; - if(!arg0) { - return temp_r29; - } - if(arg0->unk0 == 0) { - return temp_r29; - } - if(lbl_1_bss_7884[arg0->unk18] == arg0) { - lbl_1_bss_7884[arg0->unk18] = arg0->unk48; - } - if(arg0->unk4C) { - arg0->unk4C->unk48 = arg0->unk48; - } - if(arg0->unk48) { - arg0->unk48->unk4C = arg0->unk4C; - } - if(arg0->unk38) { - arg0->unk38->unk3C = NULL; - } - if(arg0->unk3C) { - arg0->unk3C->unk38 = NULL; - } - if(arg0->unk44) { - arg0->unk44->unk40 = NULL; - } - if(arg0->unk40) { - arg0->unk40->unk44 = NULL; - } - - if(arg0->unk0 >= 1 && arg0->unk0 <= 4) { - temp_r28 = lbl_1_bss_34[0]->data; - temp_r27 = lbl_1_bss_34[1]->data; - temp_r26 = lbl_1_bss_34[2]->data; - temp_r25 = lbl_1_bss_34[3]->data; - temp_r29 = (fn_1_4C0(&arg1->unk2, arg1->unk4) > 0) ? 2 : 1; - if(lbl_1_bss_18 == -1) { - if(arg1->unk2 & 0x1) { - temp_r28->unk24 += temp_r29; - temp_r28->unk68 += (arg0->unk1 & 0x10) ? 1 : 0; - } - if(arg1->unk2 & 0x2) { - temp_r27->unk24 += temp_r29; - temp_r27->unk68 += (arg0->unk1 & 0x10) ? 1 : 0; - } - if(arg1->unk2 & 0x4) { - temp_r26->unk24 += temp_r29; - temp_r26->unk68 += (arg0->unk1 & 0x10) ? 1 : 0; - } - if(arg1->unk2 & 0x8) { - temp_r25->unk24 += temp_r29; - temp_r25->unk68 += (arg0->unk1 & 0x10) ? 1 : 0; - } - } - for(temp_r23=0; temp_r23<2; temp_r23++) { - lbl_1_bss_100[lbl_1_bss_FC].unk0 = arg0->unk0; - lbl_1_bss_100[lbl_1_bss_FC].unk4.x = ((arg0->unk18*100)-500.0)-50.0; - lbl_1_bss_100[lbl_1_bss_FC].unk4.y = ((100.0f*arg0->unk1C.y)-500.0f)+50.0f; - lbl_1_bss_100[lbl_1_bss_FC].unk4.z = 120; - lbl_1_bss_100[lbl_1_bss_FC].unk10.x = ((rand8()/255.0)*24.0)-12; - lbl_1_bss_100[lbl_1_bss_FC].unk10.y = (rand8()/255.0)*16.0; - lbl_1_bss_100[lbl_1_bss_FC].unk10.z = ((rand8()/255.0)*10.0)+6; - lbl_1_bss_100[lbl_1_bss_FC].unk1C = rand8(); - lbl_1_bss_100[lbl_1_bss_FC].unk1D = rand8(); - lbl_1_bss_FC++; - lbl_1_bss_FC = (lbl_1_bss_FC >= 300) ? 0 : lbl_1_bss_FC; - } - } - arg0->unk0 = arg0->unk1 = arg0->unk2 = arg0->unk3 = 0; - arg0->unk48 = arg0->unk4C = NULL; - return temp_r29; + s32 temp_r29; + Work19C8 *temp_r28; + Work19C8 *temp_r27; + Work19C8 *temp_r26; + Work19C8 *temp_r25; + s32 temp_r23; + temp_r29 = 0; + if (!arg0) { + return temp_r29; + } + if (arg0->unk0 == 0) { + return temp_r29; + } + if (lbl_1_bss_7884[arg0->unk18] == arg0) { + lbl_1_bss_7884[arg0->unk18] = arg0->unk48; + } + if (arg0->unk4C) { + arg0->unk4C->unk48 = arg0->unk48; + } + if (arg0->unk48) { + arg0->unk48->unk4C = arg0->unk4C; + } + if (arg0->unk38) { + arg0->unk38->unk3C = NULL; + } + if (arg0->unk3C) { + arg0->unk3C->unk38 = NULL; + } + if (arg0->unk44) { + arg0->unk44->unk40 = NULL; + } + if (arg0->unk40) { + arg0->unk40->unk44 = NULL; + } + + if (arg0->unk0 >= 1 && arg0->unk0 <= 4) { + temp_r28 = lbl_1_bss_34[0]->data; + temp_r27 = lbl_1_bss_34[1]->data; + temp_r26 = lbl_1_bss_34[2]->data; + temp_r25 = lbl_1_bss_34[3]->data; + temp_r29 = (fn_1_4C0(&arg1->unk2, arg1->unk4) > 0) ? 2 : 1; + if (lbl_1_bss_18 == -1) { + if (arg1->unk2 & 0x1) { + temp_r28->unk24 += temp_r29; + temp_r28->unk68 += (arg0->unk1 & 0x10) ? 1 : 0; + } + if (arg1->unk2 & 0x2) { + temp_r27->unk24 += temp_r29; + temp_r27->unk68 += (arg0->unk1 & 0x10) ? 1 : 0; + } + if (arg1->unk2 & 0x4) { + temp_r26->unk24 += temp_r29; + temp_r26->unk68 += (arg0->unk1 & 0x10) ? 1 : 0; + } + if (arg1->unk2 & 0x8) { + temp_r25->unk24 += temp_r29; + temp_r25->unk68 += (arg0->unk1 & 0x10) ? 1 : 0; + } + } + for (temp_r23 = 0; temp_r23 < 2; temp_r23++) { + lbl_1_bss_100[lbl_1_bss_FC].unk0 = arg0->unk0; + lbl_1_bss_100[lbl_1_bss_FC].unk4.x = ((arg0->unk18 * 100) - 500.0) - 50.0; + lbl_1_bss_100[lbl_1_bss_FC].unk4.y = ((100.0f * arg0->unk1C.y) - 500.0f) + 50.0f; + lbl_1_bss_100[lbl_1_bss_FC].unk4.z = 120; + lbl_1_bss_100[lbl_1_bss_FC].unk10.x = ((rand8() / 255.0) * 24.0) - 12; + lbl_1_bss_100[lbl_1_bss_FC].unk10.y = (rand8() / 255.0) * 16.0; + lbl_1_bss_100[lbl_1_bss_FC].unk10.z = ((rand8() / 255.0) * 10.0) + 6; + lbl_1_bss_100[lbl_1_bss_FC].unk1C = rand8(); + lbl_1_bss_100[lbl_1_bss_FC].unk1D = rand8(); + lbl_1_bss_FC++; + lbl_1_bss_FC = (lbl_1_bss_FC >= 300) ? 0 : lbl_1_bss_FC; + } + } + arg0->unk0 = arg0->unk1 = arg0->unk2 = arg0->unk3 = 0; + arg0->unk48 = arg0->unk4C = NULL; + return temp_r29; } void fn_1_EC0(Work19C8 *arg0) { - s32 temp_r30; - s32 temp_r29; - s32 temp_r28; - s32 temp_r26; - s32 temp_r27; - s32 temp_r25; - u8 temp_r24; + s32 temp_r30; + s32 temp_r29; + s32 temp_r28; + s32 temp_r26; + s32 temp_r27; + s32 temp_r25; + u8 temp_r24; - for(temp_r30=0; temp_r30<8; temp_r30++) { - for(temp_r29=0; temp_r29<2; temp_r29++) { - arg0->unk50[temp_r30][temp_r29] = 1; - } - } - for(temp_r30=1; temp_r30<4; temp_r30++) { - for(temp_r29=0; temp_r29<4;) { - temp_r26 = rand8()%8; - temp_r28 = rand8()%2; - if(arg0->unk50[temp_r26][temp_r28] == 1) { - arg0->unk50[temp_r26][temp_r28] = temp_r30+1; - temp_r29++; - } - } - } - for(temp_r30=0; temp_r30<8; temp_r30++) { - if(arg0->unk50[temp_r30][0] == arg0->unk50[temp_r30][1]) { - do { - temp_r29 = rand8()%8; - } while(temp_r30 == temp_r29 || arg0->unk50[temp_r30][0] == arg0->unk50[temp_r29][0] || arg0->unk50[temp_r30][0] == arg0->unk50[temp_r29][1]); - - temp_r27 = rand8()%2; - temp_r25 = arg0->unk50[temp_r30][0]; - temp_r24 = arg0->unk50[temp_r29][temp_r27]; - arg0->unk50[temp_r30][rand8()%2] = temp_r24; - arg0->unk50[temp_r29][temp_r27] = temp_r25; - } - } + for (temp_r30 = 0; temp_r30 < 8; temp_r30++) { + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + arg0->unk50[temp_r30][temp_r29] = 1; + } + } + for (temp_r30 = 1; temp_r30 < 4; temp_r30++) { + for (temp_r29 = 0; temp_r29 < 4;) { + temp_r26 = rand8() % 8; + temp_r28 = rand8() % 2; + if (arg0->unk50[temp_r26][temp_r28] == 1) { + arg0->unk50[temp_r26][temp_r28] = temp_r30 + 1; + temp_r29++; + } + } + } + for (temp_r30 = 0; temp_r30 < 8; temp_r30++) { + if (arg0->unk50[temp_r30][0] == arg0->unk50[temp_r30][1]) { + do { + temp_r29 = rand8() % 8; + } while ( + temp_r30 == temp_r29 || arg0->unk50[temp_r30][0] == arg0->unk50[temp_r29][0] || arg0->unk50[temp_r30][0] == arg0->unk50[temp_r29][1]); + + temp_r27 = rand8() % 2; + temp_r25 = arg0->unk50[temp_r30][0]; + temp_r24 = arg0->unk50[temp_r29][temp_r27]; + arg0->unk50[temp_r30][rand8() % 2] = temp_r24; + arg0->unk50[temp_r29][temp_r27] = temp_r25; + } + } } void fn_1_10B8(Work19C8 *arg0) { - s32 temp_r31; - s32 temp_r30; - u8 sp16C[12][17] = {}; - u8 sp6C[12] = {}; - s32 temp_r22 = (arg0->unk48[0]->unk18-4 < 0) ? 0 : (arg0->unk48[0]->unk18-4); - s32 temp_r21 = (arg0->unk48[0]->unk18+4 > 11) ? 11 : (arg0->unk48[0]->unk18+4); - s32 sp44[2] = {}; - s32 sp3C[2] = {}; - s32 sp34[2] = { 9, 9 }; - s32 temp_r20 = 0; - s32 temp_r19 = 0; - s32 temp_r18 = 0; - u8 sp8[2]; - sp44[0] = sp44[1] = temp_r22; - sp3C[0] = sp3C[1] = temp_r21; - sp34[0] = arg0->unk48[0]->unk1C.y-0.5; - sp34[1] = arg0->unk48[0]->unk1C.y-1.5; - sp34[1] = (sp34[1] < 0) ? 0 : sp34[1]; - sp8[0] = arg0->unk48[0]->unk0; - sp8[1] = arg0->unk48[1]->unk0; - for(temp_r31=temp_r22; temp_r31<=temp_r21; temp_r31++) { - StructBss2A6C *temp_r27; - s32 temp_r26; - for(temp_r27 = lbl_1_bss_7884[temp_r31], temp_r26=0; temp_r27; temp_r27=temp_r27->unk48) { - if(temp_r27->unk1 & 0x2) { - continue; - } - sp16C[temp_r31][temp_r26] = temp_r27->unk0; - temp_r26++; - } - sp6C[temp_r31] = temp_r26; - for(temp_r30=0; temp_r30<2; temp_r30++) { - if(temp_r26 > sp34[temp_r30]) { - if(temp_r31 <= arg0->unk48[0]->unk18) { - sp44[temp_r30] = temp_r31+1; - } else { - sp3C[temp_r30] = temp_r31-1; - } - } - } - } - for(temp_r30=0; temp_r30<4; temp_r30++) { - for(temp_r31=sp44[temp_r30==2]; temp_r31<=sp3C[temp_r30==2]; temp_r31++) { - if(temp_r31 != sp44[temp_r30==2] || temp_r30 != 3) { - if(temp_r31 != sp3C[temp_r30==2]-1 || temp_r30 != 1) { - s32 temp_r25; - s32 spAC[4][12]; - for(temp_r25=0; temp_r25<2; temp_r25++) { - s32 sp5C[4] = { 0, 1, 0, -1 }; - s32 sp4C[4] = { 1, 0, -1, 0 }; - s32 temp_r29; - s32 temp_r28; - s32 temp_r24; - s32 temp_r23; - - spAC[temp_r30][temp_r31] = arg0->unk48[0]->unk18-temp_r31; - spAC[temp_r30][temp_r31] = (spAC[temp_r30][temp_r31] < 0) ? (-spAC[temp_r30][temp_r31]) : spAC[temp_r30][temp_r31]; - spAC[temp_r30][temp_r31] = (spAC[temp_r30][temp_r31] < 3) ? ((3-spAC[temp_r30][temp_r31])*(3-spAC[temp_r30][temp_r31])) : 0; - spAC[temp_r30][temp_r31] *= (arg0->unk20 == 0) ? 4 : ((arg0->unk20 == 1) ? 2 : 1); - temp_r24 = temp_r31+((temp_r25 == 1) ? sp5C[temp_r30] : 0); - for(temp_r28=temp_r24-2; temp_r28<=temp_r24+2; temp_r28++) { - temp_r23 = sp6C[temp_r24]+((temp_r25 == 1) ? sp4C[temp_r30] : 0); - for(temp_r29=temp_r23-2; temp_r29<=temp_r23+2; temp_r29++) { - if(temp_r28 < 0 || temp_r28 >= 12 || temp_r29 < 0 || temp_r29 >= 9) { - continue; - } - if(sp16C[temp_r28][temp_r29] != 5 && arg0->unk48[temp_r25]->unk0 == sp16C[temp_r28][temp_r29]) { - u8 sp91[5][5] = { - 0, 3, 0, 3, 0, - 2, 10, 24, 10, 2, - 10, 24, 0, 24, 10, - 2, 10, 24, 10, 2, - 0, 2, 10, 2, 0 - }; - spAC[temp_r30][temp_r31] += sp91[temp_r28-(temp_r24-2)][temp_r29-(temp_r23-2)]; - } - if(sp16C[temp_r28][temp_r29] == 5) { - u8 sp78[5][5] = { - 0, 0, 0, 0, 0, - 0, 40, 40, 40, 0, - 0, 40, 0, 40, 0, - 0, 40, 40, 40, 0, - 0, 0, 0, 0, 0 - }; - spAC[temp_r30][temp_r31] += sp78[temp_r28-(temp_r24-2)][temp_r29-(temp_r23-2)]/((arg0->unk20 == 0) ? 4 : 1); - } - } - } - } - if(spAC[temp_r30][temp_r31] > temp_r20) { - temp_r20 = spAC[temp_r30][temp_r31]; - temp_r18 = temp_r30; - temp_r19 = temp_r31; - } - } - } - } - } - arg0->unk7C = temp_r19; - arg0->unk80 = temp_r18; + s32 temp_r31; + s32 temp_r30; + u8 sp16C[12][17] = {}; + u8 sp6C[12] = {}; + s32 temp_r22 = (arg0->unk48[0]->unk18 - 4 < 0) ? 0 : (arg0->unk48[0]->unk18 - 4); + s32 temp_r21 = (arg0->unk48[0]->unk18 + 4 > 11) ? 11 : (arg0->unk48[0]->unk18 + 4); + s32 sp44[2] = {}; + s32 sp3C[2] = {}; + s32 sp34[2] = { 9, 9 }; + s32 temp_r20 = 0; + s32 temp_r19 = 0; + s32 temp_r18 = 0; + u8 sp8[2]; + sp44[0] = sp44[1] = temp_r22; + sp3C[0] = sp3C[1] = temp_r21; + sp34[0] = arg0->unk48[0]->unk1C.y - 0.5; + sp34[1] = arg0->unk48[0]->unk1C.y - 1.5; + sp34[1] = (sp34[1] < 0) ? 0 : sp34[1]; + sp8[0] = arg0->unk48[0]->unk0; + sp8[1] = arg0->unk48[1]->unk0; + for (temp_r31 = temp_r22; temp_r31 <= temp_r21; temp_r31++) { + StructBss2A6C *temp_r27; + s32 temp_r26; + for (temp_r27 = lbl_1_bss_7884[temp_r31], temp_r26 = 0; temp_r27; temp_r27 = temp_r27->unk48) { + if (temp_r27->unk1 & 0x2) { + continue; + } + sp16C[temp_r31][temp_r26] = temp_r27->unk0; + temp_r26++; + } + sp6C[temp_r31] = temp_r26; + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + if (temp_r26 > sp34[temp_r30]) { + if (temp_r31 <= arg0->unk48[0]->unk18) { + sp44[temp_r30] = temp_r31 + 1; + } + else { + sp3C[temp_r30] = temp_r31 - 1; + } + } + } + } + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + for (temp_r31 = sp44[temp_r30 == 2]; temp_r31 <= sp3C[temp_r30 == 2]; temp_r31++) { + if (temp_r31 != sp44[temp_r30 == 2] || temp_r30 != 3) { + if (temp_r31 != sp3C[temp_r30 == 2] - 1 || temp_r30 != 1) { + s32 temp_r25; + s32 spAC[4][12]; + for (temp_r25 = 0; temp_r25 < 2; temp_r25++) { + s32 sp5C[4] = { 0, 1, 0, -1 }; + s32 sp4C[4] = { 1, 0, -1, 0 }; + s32 temp_r29; + s32 temp_r28; + s32 temp_r24; + s32 temp_r23; + + spAC[temp_r30][temp_r31] = arg0->unk48[0]->unk18 - temp_r31; + spAC[temp_r30][temp_r31] = (spAC[temp_r30][temp_r31] < 0) ? (-spAC[temp_r30][temp_r31]) : spAC[temp_r30][temp_r31]; + spAC[temp_r30][temp_r31] + = (spAC[temp_r30][temp_r31] < 3) ? ((3 - spAC[temp_r30][temp_r31]) * (3 - spAC[temp_r30][temp_r31])) : 0; + spAC[temp_r30][temp_r31] *= (arg0->unk20 == 0) ? 4 : ((arg0->unk20 == 1) ? 2 : 1); + temp_r24 = temp_r31 + ((temp_r25 == 1) ? sp5C[temp_r30] : 0); + for (temp_r28 = temp_r24 - 2; temp_r28 <= temp_r24 + 2; temp_r28++) { + temp_r23 = sp6C[temp_r24] + ((temp_r25 == 1) ? sp4C[temp_r30] : 0); + for (temp_r29 = temp_r23 - 2; temp_r29 <= temp_r23 + 2; temp_r29++) { + if (temp_r28 < 0 || temp_r28 >= 12 || temp_r29 < 0 || temp_r29 >= 9) { + continue; + } + if (sp16C[temp_r28][temp_r29] != 5 && arg0->unk48[temp_r25]->unk0 == sp16C[temp_r28][temp_r29]) { + u8 sp91[5][5] = { 0, 3, 0, 3, 0, 2, 10, 24, 10, 2, 10, 24, 0, 24, 10, 2, 10, 24, 10, 2, 0, 2, 10, 2, 0 }; + spAC[temp_r30][temp_r31] += sp91[temp_r28 - (temp_r24 - 2)][temp_r29 - (temp_r23 - 2)]; + } + if (sp16C[temp_r28][temp_r29] == 5) { + u8 sp78[5][5] = { 0, 0, 0, 0, 0, 0, 40, 40, 40, 0, 0, 40, 0, 40, 0, 0, 40, 40, 40, 0, 0, 0, 0, 0, 0 }; + spAC[temp_r30][temp_r31] + += sp78[temp_r28 - (temp_r24 - 2)][temp_r29 - (temp_r23 - 2)] / ((arg0->unk20 == 0) ? 4 : 1); + } + } + } + } + if (spAC[temp_r30][temp_r31] > temp_r20) { + temp_r20 = spAC[temp_r30][temp_r31]; + temp_r18 = temp_r30; + temp_r19 = temp_r31; + } + } + } + } + } + arg0->unk7C = temp_r19; + arg0->unk80 = temp_r18; } -void fn_1_19C4(omObjData *object) -{ - -} +void fn_1_19C4(omObjData *object) { } void fn_1_19C8(omObjData *object) { - Work19C8 *temp_r31; - s32 sp19C; - s32 spC4; - s32 spC0; - - temp_r31 = object->data; - temp_r31->unk28 = temp_r31->unk24; + Work19C8 *temp_r31; + s32 sp19C; + s32 spC4; + s32 spC0; - temp_r31->unk65[0] = (temp_r31->unk65[0] == 0 || temp_r31->unk65[0] >= 15) ? 0 : temp_r31->unk65[0]+1; - if(temp_r31->unk1C != -1) { - sp19C = (HuPadStkX[temp_r31->unk1C] > 26)-(HuPadStkX[temp_r31->unk1C] < -26); - } else { - sp19C = (temp_r31->unk72 == 1 && temp_r31->unk7C != -1) ? ((temp_r31->unk48[0]) ? ((temp_r31->unk7C < temp_r31->unk48[0]->unk18) ? -1 : (temp_r31->unk7C > temp_r31->unk48[0]->unk18) ? 1 : 0) : 0) : 0; - } - temp_r31->unk88 = ((temp_r31->unk72 == 1 && temp_r31->unk48[0]) && temp_r31->unk7C == temp_r31->unk48[0]->unk18) ? (temp_r31->unk88+1) : 0; - if(sp19C != temp_r31->unk0){ - temp_r31->unkC = (sp19C == 0) ? 0 : 1; - } else { - temp_r31->unkC = (temp_r31->unk0 != 0) ? temp_r31->unkC+1 : 0; - } - temp_r31->unkC = (temp_r31->unkC >= 17) ? 14 : temp_r31->unkC; - temp_r31->unk0 = sp19C; - if(temp_r31->unk72 == 2) { - float temp_f30; - float temp_f24; - s32 temp_r25; - s32 temp_r23; - s32 temp_r22; - StructBss2A6C *sp198; - - for(temp_r23=0; temp_r23<3; temp_r23++) { - s32 sp24C[3] = { 1, 2, 0 }; - temp_r22 = (temp_r31->unk10*3)+((temp_r31->unk10 < 2) ? sp24C[temp_r23] : (2-sp24C[temp_r23])); - if(fn_1_57C_inline(temp_r22, 9.5f, NULL, NULL) == 0) { - if(fn_1_57C_inline(temp_r22, 8.5f, NULL, NULL) == 0) { - break; - } - } - } - temp_r22 = (temp_r23 == 3) ? ((temp_r31->unk10*3)+1) : temp_r22; - temp_f30 = (temp_r22*100)-490; - temp_r31->unkA0 = (temp_r31->unk74 == 0) ? temp_f30 : ((temp_r31->unkA0-10 > temp_f30) ? (temp_r31->unkA0-10) : (((temp_r31->unkA0 > temp_f30) ? temp_f30 : ((temp_r31->unkA0+10 < temp_f30) ? (temp_r31->unkA0+10) : ((temp_r31->unkA0 < temp_f30) ? temp_f30 : temp_r31->unkA0))))); - temp_r31->unk74++; - temp_f30 = temp_r31->unk74/24.0f; - temp_f30 = (temp_f30 > 1.0f) ? 1.0f : temp_f30; - temp_f30 = (0.5*sind((temp_f30*180.0f)+270.0f))+0.5; - temp_f24 = 1.0f-temp_f30; - if(lbl_1_bss_18 == -1) { - Vec sp240; - Vec sp234; - sp240.x = (temp_r31->unkA0*temp_f30)+(temp_r31->unk98*temp_f24); - sp240.y = (425.0f*temp_f30)+(temp_r31->unk9C*temp_f24); - sp240.z = 55; - Hu3D3Dto2D(&sp240, 1, &sp234); - HuSprPosSet(temp_r31->unkA4, 0, sp234.x, sp234.y); - } - if(lbl_1_bss_44->work[0] == 1002 && temp_r31->unk74 >= 24) { - for(temp_r23=0; temp_r23<3; temp_r23++) { - s32 sp228[3] = { 1, 2, 0 }; - temp_r22 = (temp_r31->unk10*3)+((temp_r31->unk10 < 2) ? sp228[temp_r23] : (2-sp228[temp_r23])); - if(fn_1_57C_inline(temp_r22, 9.5f, NULL, NULL) == 0) { - if(fn_1_57C_inline(temp_r22, 8.5f, NULL, NULL) == 0) { - break; - } - } - } - if(temp_r23 != 3) { - for(sp198 = lbl_1_bss_7884[temp_r22]; sp198 && sp198->unk48; sp198 = sp198->unk48); - for(temp_r23=0; temp_r23<2; temp_r23++) { - temp_r25 = (lbl_1_bss_0+1)%238; - while(temp_r25 != lbl_1_bss_0) { - if(lbl_1_bss_2A6C[temp_r25].unk0 == 0) { - break; - } - temp_r25++; - temp_r25 = temp_r25%238; - if(temp_r25 == 0) { - OSReport("looped.\n"); - } - } - if(temp_r25 == lbl_1_bss_0) { - OSReport("m413:error:block empty.\n"); - } - lbl_1_bss_0 = temp_r25; - temp_r31->unk48[temp_r23] = &lbl_1_bss_2A6C[temp_r25]; - lbl_1_bss_2A6C[temp_r25].unk0 = temp_r31->unk50[temp_r31->unk60][temp_r23]; - lbl_1_bss_2A6C[temp_r25].unk1 = 2; - lbl_1_bss_2A6C[temp_r25].unk3 = 1 << temp_r31->unk10; - lbl_1_bss_2A6C[temp_r25].unk2 = temp_r31->unk10; - lbl_1_bss_2A6C[temp_r25].unk18 = temp_r22; - lbl_1_bss_2A6C[temp_r25].unk1C.x = temp_r22; - lbl_1_bss_2A6C[temp_r25].unk1C.y = temp_r23+8.9375f; - lbl_1_bss_2A6C[temp_r25].unk1C.z = 0; - lbl_1_bss_2A6C[temp_r25].unk8[0] = lbl_1_bss_2A6C[temp_r25].unk8[1] = lbl_1_bss_2A6C[temp_r25].unk8[2] = lbl_1_bss_2A6C[temp_r25].unk8[3] = 0; - lbl_1_bss_2A6C[temp_r25].unk2C = 0; - lbl_1_bss_2A6C[temp_r25].unk30 = 0; - lbl_1_bss_2A6C[temp_r25].unk34 = 0; - lbl_1_bss_2A6C[temp_r25].unk50 = temp_r31; - } - temp_r31->unk48[1]->unk48 = NULL; - temp_r31->unk48[1]->unk4C = temp_r31->unk48[0]; - temp_r31->unk48[0]->unk48 = temp_r31->unk48[1]; - temp_r31->unk48[0]->unk4C = sp198; - if(!sp198) { - lbl_1_bss_7884[temp_r31->unk48[0]->unk18] = temp_r31->unk48[0]; - } else { - temp_r31->unk48[0]->unk4C->unk48 = temp_r31->unk48[0]; - } - temp_r31->unk60++; - if(temp_r31->unk60 >= 8) { - fn_1_EC0(temp_r31); - temp_r31->unk60 = 0; - } - temp_r31->unk63[0] = temp_r31->unk48[0]->unk0; - temp_r31->unk63[1] = temp_r31->unk48[1]->unk0; - temp_r31->unk65[0] = 1; - if(((temp_r31->unk68+5)/7) != ((temp_r31->unk6C+5)/7)) { - if(((temp_r31->unk68+5)/7)%4 == 2) { - temp_r31->unk50[temp_r31->unk60][0] = 5; - temp_r31->unk50[temp_r31->unk60][1] = 5; - } else { - temp_r31->unk50[temp_r31->unk60][rand8()%2] = 5; - } - } - temp_r31->unk6C = temp_r31->unk68; - temp_r31->unk72 = 1; - temp_r31->unk74 = 0; - temp_r31->unk71 = 20; - temp_r31->unk70 = 0; - temp_r31->unk7C = -1; - temp_r31->unk80 = -1; - if(temp_r31->unk1C == -1) { - temp_r31->unk84 = 0; - temp_r31->unk88 = 0; - temp_r31->unk8C = temp_r31->unk48[0]->unk18; - temp_r31->unk90 = 0; - } - temp_r31->unk78 = 0; - temp_r31->unk79 = 0; - HuSprAttrReset(temp_r31->unkA4, 0, HUSPR_ATTR_DISPOFF); - HuSprAttrReset(temp_r31->unkA4, 0, HUSPR_ATTR_REVERSE); - { - s32 sp258[12] = {}; - s32 sp194; - for(sp194=0; sp194<3; sp194++) { - StructBss2A6C *sp190; - for(sp190 = lbl_1_bss_7884[sp194+(temp_r31->unk10*3)]; sp190; sp190 = sp190->unk48) { - - sp258[sp194] += (sp190 && sp190->unk0 && (sp190->unk1 & 0x2) == 0 && sp258[sp194] < 9); - } - } - Hu3DModelRotSet(object->model[4], 0, ((sp258[0]+sp258[1]+sp258[2] >= 22) ? -90 : 0), 0); - } - } else { - s32 sp21C[3]; - s32 sp18C; - for(sp18C=0; sp18C<3; sp18C++) { - s32 sp188; - StructBss2A6C *sp184; - for(sp184 = lbl_1_bss_7884[sp18C+(temp_r31->unk10*3)], sp188=0; sp188<9; sp184 = sp184->unk48, sp188++) { - if(!sp184 || sp184->unk1 != 1) { - break; - } - } - sp21C[sp18C] = sp188; - } - if(sp21C[0] >= 9 && sp21C[1] >= 9 && sp21C[2] >= 9) { - temp_r31->unk78 += temp_r31->unk78 < 255; - Hu3DModelRotSet(object->model[4], 0, -90, 0); - temp_r31->unk79 = 1; - } else { - temp_r31->unk79 = 0; - } - } - } - - } else if(temp_r31->unk72 == 1) { - if(!temp_r31->unk48[0] || !temp_r31->unk48[1]) { - temp_r31->unk72 = 2; - temp_r31->unk74 = 0; - HuSprAttrSet(temp_r31->unkA4, 0, HUSPR_ATTR_REVERSE); - } else { - s32 temp_r26; - s32 sp180; + temp_r31 = object->data; + temp_r31->unk28 = temp_r31->unk24; - sp180 = (temp_r31->unkC == 1 || temp_r31->unkC == 14) ? temp_r31->unk0 : 0; - temp_r26 = temp_r31->unk70; - if(temp_r31->unk1C != -1) { - temp_r26 = (HuPadBtnDown[temp_r31->unk1C] & (PAD_BUTTON_X|PAD_BUTTON_Y)) ? (temp_r31->unk70+2) : (temp_r31->unk70+((HuPadBtnDown[temp_r31->unk1C] & PAD_BUTTON_A) ? 1 : 0) + ((HuPadBtnDown[temp_r31->unk1C] & PAD_BUTTON_B) ? -1 : 0)); - } else { - if(temp_r31->unk80 != -1 && temp_r31->unk80 != temp_r31->unk70 && temp_r31->unk84 > 5) { - temp_r26 = temp_r31->unk80; - temp_r31->unk84 = 0; - } else { - temp_r31->unk84++; - } - } - temp_r26 = (temp_r26 >= 4) ? (temp_r26-4) : ((temp_r26 < 0) ? (temp_r26+4) : temp_r26); - temp_r31->unk74++; - if(temp_r31->unk1C == -1) { - s32 sp20C[4] = { 120, 50, 25, 2 }; - s32 sp200[3] = { 60, 45, 25 }; - temp_r31->unk90 = (temp_r31->unk8C == temp_r31->unk48[0]->unk18 && temp_r31->unk8C != temp_r31->unk7C) ? (temp_r31->unk90+1) : 0; - temp_r31->unk8C = temp_r31->unk48[0]->unk18; - if(temp_r31->unk7C == -1 && temp_r31->unk90 >= sp20C[temp_r31->unk20] || (temp_r31->unk20 >= 1 && (temp_r31->unk90 >= sp200[temp_r31->unk20-1]))) { - s32 sp1F0[4] = { 30, 30, 20, 10 }; - fn_1_10B8(temp_r31); - temp_r31->unk84 = 0; - temp_r31->unk88 = 0; - temp_r31->unk94 = (rand8()%sp1F0[temp_r31->unk20])-(sp1F0[temp_r31->unk20]/2); - } - } - if(lbl_1_bss_18 == -1) { - if(temp_r31->unk1C != -1) { - temp_r31->unk48[0]->unk1C.z = temp_r31->unk48[1]->unk1C.z = -0.03125f+((HuPadStkY[temp_r31->unk1C] < -36) ? (-0.26875f*((-HuPadStkY[temp_r31->unk1C]-36)/36.0f)) : 0); - temp_r31->unk4 = (HuPadStkY[temp_r31->unk1C] < -36) ? 1 : 0; - } else { - s32 sp1E4[3] = { 50, 30, 25 }; - s32 sp1D8[3] = { 90, 80, 70 }; + temp_r31->unk65[0] = (temp_r31->unk65[0] == 0 || temp_r31->unk65[0] >= 15) ? 0 : temp_r31->unk65[0] + 1; + if (temp_r31->unk1C != -1) { + sp19C = (HuPadStkX[temp_r31->unk1C] > 26) - (HuPadStkX[temp_r31->unk1C] < -26); + } + else { + sp19C = (temp_r31->unk72 == 1 && temp_r31->unk7C != -1) ? ((temp_r31->unk48[0]) ? ((temp_r31->unk7C < temp_r31->unk48[0]->unk18) ? -1 + : (temp_r31->unk7C > temp_r31->unk48[0]->unk18) ? 1 + : 0) + : 0) + : 0; + } + temp_r31->unk88 = ((temp_r31->unk72 == 1 && temp_r31->unk48[0]) && temp_r31->unk7C == temp_r31->unk48[0]->unk18) ? (temp_r31->unk88 + 1) : 0; + if (sp19C != temp_r31->unk0) { + temp_r31->unkC = (sp19C == 0) ? 0 : 1; + } + else { + temp_r31->unkC = (temp_r31->unk0 != 0) ? temp_r31->unkC + 1 : 0; + } + temp_r31->unkC = (temp_r31->unkC >= 17) ? 14 : temp_r31->unkC; + temp_r31->unk0 = sp19C; + if (temp_r31->unk72 == 2) { + float temp_f30; + float temp_f24; + s32 temp_r25; + s32 temp_r23; + s32 temp_r22; + StructBss2A6C *sp198; - temp_r31->unk4 = ((temp_r31->unk20 && (temp_r31->unk88 > temp_r31->unk94+sp1E4[temp_r31->unk20-1] || temp_r31->unk90 > sp1D8[temp_r31->unk20-1]))) ? 1 : 0; - temp_r31->unk48[0]->unk1C.z = temp_r31->unk48[1]->unk1C.z = -0.03125f+(temp_r31->unk4 ? -0.26875f : 0.0f); - } - } else { - temp_r31->unk48[0]->unk1C.z = temp_r31->unk48[1]->unk1C.z = 0; - } - if(lbl_1_bss_18 == -1 && sp180) { - if(fn_1_57C_inline(temp_r31->unk48[0]->unk18_u+sp180, temp_r31->unk48[0]->unk1C.y, temp_r31->unk48[0], NULL) == 0) { - if(fn_1_57C_inline(temp_r31->unk48[1]->unk18_u+sp180, temp_r31->unk48[1]->unk1C.y, temp_r31->unk48[1], NULL) == 0) { - float sp17C = temp_r31->unk48[0]->unk18; - float sp178 = temp_r31->unk48[1]->unk18; - fn_1_6D0(temp_r31->unk48[0]->unk18_u+sp180, temp_r31->unk48[0]->unk1C.y, temp_r31->unk48[0]); - fn_1_6D0(temp_r31->unk48[1]->unk18_u+sp180, temp_r31->unk48[1]->unk1C.y, temp_r31->unk48[1]); - temp_r31->unk48[0]->unk1C.x = (sp17C*0.5)+(0.5*temp_r31->unk48[0]->unk18); - temp_r31->unk48[1]->unk1C.x = (sp178*0.5)+(0.5*temp_r31->unk48[1]->unk18); - } - } - } - if(lbl_1_bss_18 != -1) { - temp_r26 = temp_r31->unk70; - } - if(temp_r26 != temp_r31->unk70) { - StructBss2A6C *temp_r29 = temp_r31->unk48[0]; - StructBss2A6C *temp_r30 = temp_r31->unk48[1]; - s32 sp174 = temp_r29->unk18; - float temp_f25 = temp_r29->unk1C.y; - s32 sp1C8[4] = { 0, 1, 0, -1 }; - s32 sp1B8[4] = { 1, 0, -1, 0 }; - StructBss2A6C *sp170; - if(fn_1_57C_inline(sp174+sp1C8[temp_r26], temp_f25+sp1B8[temp_r26], temp_r30, &sp170) == 0) { - if(temp_r31->unk70 != temp_r26) { - temp_r30->unk5 = 1; - temp_r30->unk4 = (((((temp_r26-temp_r31->unk70)+8)%4)-1)*4)+temp_r31->unk70+1; - } - temp_r31->unk70 = temp_r26; - fn_1_6D0(sp174+sp1C8[temp_r26], temp_f25+sp1B8[temp_r26], temp_r30); - temp_r30->unk1C.x = temp_r30->unk18; - } else { - float temp_f31; - s32 temp_r24; - if(temp_r26%2 == 0) { - s32 sp16C = (temp_r26 == 2) ? 1 : 0; - temp_f31 = temp_f25+((sp16C == 1) ? sp1B8[temp_r26] : sp1B8[temp_r26]); - fn_1_57C_inline(sp174, temp_f31, (sp16C == 0) ? temp_r30 : temp_r30, &sp170); - if(temp_r26 == 2) { - if(!sp170 || sp170->unk1C.y <= temp_f31) { - temp_f31 = ((sp16C == 1) ? 1.0f : 0.0f)+((sp170) ? sp170->unk1C.y+1.0f : 0.0f); - temp_r24 = sp174; - } else { - temp_f31 = (sp170->unk1C.y-1.0f)-(sp16C==0); - temp_r24 = sp174; - } - } else { - if(sp170->unk1C.y >= temp_f31) { - temp_f31 = ((sp16C == 1) ? 1.0f : 0.0f)+((sp170) ? sp170->unk1C.y-2.0f : 0.0f); - temp_r24 = sp174; - } else { - temp_f31 = (sp170->unk1C.y-1.0f)-(sp16C==0); - temp_r24 = sp174; - } - } - } else { - temp_r24 = sp174-sp1C8[temp_r26]; - temp_f31 = temp_f25; - } - if(fn_1_57C_inline(temp_r24, temp_f31, temp_r29, NULL) == 0) { - if(fn_1_57C_inline(temp_r24+sp1C8[temp_r26], temp_f31+sp1B8[temp_r26], temp_r30, NULL) == 0) { - float sp168 = temp_r31->unk48[0]->unk18; - float sp164 = temp_r31->unk48[1]->unk18; - if(temp_r31->unk70 != temp_r26) { - temp_r30->unk5 = 1; - temp_r30->unk4 = (((((temp_r26-temp_r31->unk70)+8)%4)-1)*4)+temp_r31->unk70+1; - } + for (temp_r23 = 0; temp_r23 < 3; temp_r23++) { + s32 sp24C[3] = { 1, 2, 0 }; + temp_r22 = (temp_r31->unk10 * 3) + ((temp_r31->unk10 < 2) ? sp24C[temp_r23] : (2 - sp24C[temp_r23])); + if (fn_1_57C_inline(temp_r22, 9.5f, NULL, NULL) == 0) { + if (fn_1_57C_inline(temp_r22, 8.5f, NULL, NULL) == 0) { + break; + } + } + } + temp_r22 = (temp_r23 == 3) ? ((temp_r31->unk10 * 3) + 1) : temp_r22; + temp_f30 = (temp_r22 * 100) - 490; + temp_r31->unkA0 = (temp_r31->unk74 == 0) + ? temp_f30 + : ((temp_r31->unkA0 - 10 > temp_f30) + ? (temp_r31->unkA0 - 10) + : (((temp_r31->unkA0 > temp_f30) + ? temp_f30 + : ((temp_r31->unkA0 + 10 < temp_f30) ? (temp_r31->unkA0 + 10) + : ((temp_r31->unkA0 < temp_f30) ? temp_f30 : temp_r31->unkA0))))); + temp_r31->unk74++; + temp_f30 = temp_r31->unk74 / 24.0f; + temp_f30 = (temp_f30 > 1.0f) ? 1.0f : temp_f30; + temp_f30 = (0.5 * sind((temp_f30 * 180.0f) + 270.0f)) + 0.5; + temp_f24 = 1.0f - temp_f30; + if (lbl_1_bss_18 == -1) { + Vec sp240; + Vec sp234; + sp240.x = (temp_r31->unkA0 * temp_f30) + (temp_r31->unk98 * temp_f24); + sp240.y = (425.0f * temp_f30) + (temp_r31->unk9C * temp_f24); + sp240.z = 55; + Hu3D3Dto2D(&sp240, 1, &sp234); + HuSprPosSet(temp_r31->unkA4, 0, sp234.x, sp234.y); + } + if (lbl_1_bss_44->work[0] == 1002 && temp_r31->unk74 >= 24) { + for (temp_r23 = 0; temp_r23 < 3; temp_r23++) { + s32 sp228[3] = { 1, 2, 0 }; + temp_r22 = (temp_r31->unk10 * 3) + ((temp_r31->unk10 < 2) ? sp228[temp_r23] : (2 - sp228[temp_r23])); + if (fn_1_57C_inline(temp_r22, 9.5f, NULL, NULL) == 0) { + if (fn_1_57C_inline(temp_r22, 8.5f, NULL, NULL) == 0) { + break; + } + } + } + if (temp_r23 != 3) { + for (sp198 = lbl_1_bss_7884[temp_r22]; sp198 && sp198->unk48; sp198 = sp198->unk48) + ; + for (temp_r23 = 0; temp_r23 < 2; temp_r23++) { + temp_r25 = (lbl_1_bss_0 + 1) % 238; + while (temp_r25 != lbl_1_bss_0) { + if (lbl_1_bss_2A6C[temp_r25].unk0 == 0) { + break; + } + temp_r25++; + temp_r25 = temp_r25 % 238; + if (temp_r25 == 0) { + OSReport("looped.\n"); + } + } + if (temp_r25 == lbl_1_bss_0) { + OSReport("m413:error:block empty.\n"); + } + lbl_1_bss_0 = temp_r25; + temp_r31->unk48[temp_r23] = &lbl_1_bss_2A6C[temp_r25]; + lbl_1_bss_2A6C[temp_r25].unk0 = temp_r31->unk50[temp_r31->unk60][temp_r23]; + lbl_1_bss_2A6C[temp_r25].unk1 = 2; + lbl_1_bss_2A6C[temp_r25].unk3 = 1 << temp_r31->unk10; + lbl_1_bss_2A6C[temp_r25].unk2 = temp_r31->unk10; + lbl_1_bss_2A6C[temp_r25].unk18 = temp_r22; + lbl_1_bss_2A6C[temp_r25].unk1C.x = temp_r22; + lbl_1_bss_2A6C[temp_r25].unk1C.y = temp_r23 + 8.9375f; + lbl_1_bss_2A6C[temp_r25].unk1C.z = 0; + lbl_1_bss_2A6C[temp_r25].unk8[0] = lbl_1_bss_2A6C[temp_r25].unk8[1] = lbl_1_bss_2A6C[temp_r25].unk8[2] + = lbl_1_bss_2A6C[temp_r25].unk8[3] = 0; + lbl_1_bss_2A6C[temp_r25].unk2C = 0; + lbl_1_bss_2A6C[temp_r25].unk30 = 0; + lbl_1_bss_2A6C[temp_r25].unk34 = 0; + lbl_1_bss_2A6C[temp_r25].unk50 = temp_r31; + } + temp_r31->unk48[1]->unk48 = NULL; + temp_r31->unk48[1]->unk4C = temp_r31->unk48[0]; + temp_r31->unk48[0]->unk48 = temp_r31->unk48[1]; + temp_r31->unk48[0]->unk4C = sp198; + if (!sp198) { + lbl_1_bss_7884[temp_r31->unk48[0]->unk18] = temp_r31->unk48[0]; + } + else { + temp_r31->unk48[0]->unk4C->unk48 = temp_r31->unk48[0]; + } + temp_r31->unk60++; + if (temp_r31->unk60 >= 8) { + fn_1_EC0(temp_r31); + temp_r31->unk60 = 0; + } + temp_r31->unk63[0] = temp_r31->unk48[0]->unk0; + temp_r31->unk63[1] = temp_r31->unk48[1]->unk0; + temp_r31->unk65[0] = 1; + if (((temp_r31->unk68 + 5) / 7) != ((temp_r31->unk6C + 5) / 7)) { + if (((temp_r31->unk68 + 5) / 7) % 4 == 2) { + temp_r31->unk50[temp_r31->unk60][0] = 5; + temp_r31->unk50[temp_r31->unk60][1] = 5; + } + else { + temp_r31->unk50[temp_r31->unk60][rand8() % 2] = 5; + } + } + temp_r31->unk6C = temp_r31->unk68; + temp_r31->unk72 = 1; + temp_r31->unk74 = 0; + temp_r31->unk71 = 20; + temp_r31->unk70 = 0; + temp_r31->unk7C = -1; + temp_r31->unk80 = -1; + if (temp_r31->unk1C == -1) { + temp_r31->unk84 = 0; + temp_r31->unk88 = 0; + temp_r31->unk8C = temp_r31->unk48[0]->unk18; + temp_r31->unk90 = 0; + } + temp_r31->unk78 = 0; + temp_r31->unk79 = 0; + HuSprAttrReset(temp_r31->unkA4, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(temp_r31->unkA4, 0, HUSPR_ATTR_REVERSE); + { + s32 sp258[12] = {}; + s32 sp194; + for (sp194 = 0; sp194 < 3; sp194++) { + StructBss2A6C *sp190; + for (sp190 = lbl_1_bss_7884[sp194 + (temp_r31->unk10 * 3)]; sp190; sp190 = sp190->unk48) { + + sp258[sp194] += (sp190 && sp190->unk0 && (sp190->unk1 & 0x2) == 0 && sp258[sp194] < 9); + } + } + Hu3DModelRotSet(object->model[4], 0, ((sp258[0] + sp258[1] + sp258[2] >= 22) ? -90 : 0), 0); + } + } + else { + s32 sp21C[3]; + s32 sp18C; + for (sp18C = 0; sp18C < 3; sp18C++) { + s32 sp188; + StructBss2A6C *sp184; + for (sp184 = lbl_1_bss_7884[sp18C + (temp_r31->unk10 * 3)], sp188 = 0; sp188 < 9; sp184 = sp184->unk48, sp188++) { + if (!sp184 || sp184->unk1 != 1) { + break; + } + } + sp21C[sp18C] = sp188; + } + if (sp21C[0] >= 9 && sp21C[1] >= 9 && sp21C[2] >= 9) { + temp_r31->unk78 += temp_r31->unk78 < 255; + Hu3DModelRotSet(object->model[4], 0, -90, 0); + temp_r31->unk79 = 1; + } + else { + temp_r31->unk79 = 0; + } + } + } + } + else if (temp_r31->unk72 == 1) { + if (!temp_r31->unk48[0] || !temp_r31->unk48[1]) { + temp_r31->unk72 = 2; + temp_r31->unk74 = 0; + HuSprAttrSet(temp_r31->unkA4, 0, HUSPR_ATTR_REVERSE); + } + else { + s32 temp_r26; + s32 sp180; + + sp180 = (temp_r31->unkC == 1 || temp_r31->unkC == 14) ? temp_r31->unk0 : 0; + temp_r26 = temp_r31->unk70; + if (temp_r31->unk1C != -1) { + temp_r26 = (HuPadBtnDown[temp_r31->unk1C] & (PAD_BUTTON_X | PAD_BUTTON_Y)) + ? (temp_r31->unk70 + 2) + : (temp_r31->unk70 + ((HuPadBtnDown[temp_r31->unk1C] & PAD_BUTTON_A) ? 1 : 0) + + ((HuPadBtnDown[temp_r31->unk1C] & PAD_BUTTON_B) ? -1 : 0)); + } + else { + if (temp_r31->unk80 != -1 && temp_r31->unk80 != temp_r31->unk70 && temp_r31->unk84 > 5) { + temp_r26 = temp_r31->unk80; + temp_r31->unk84 = 0; + } + else { + temp_r31->unk84++; + } + } + temp_r26 = (temp_r26 >= 4) ? (temp_r26 - 4) : ((temp_r26 < 0) ? (temp_r26 + 4) : temp_r26); + temp_r31->unk74++; + if (temp_r31->unk1C == -1) { + s32 sp20C[4] = { 120, 50, 25, 2 }; + s32 sp200[3] = { 60, 45, 25 }; + temp_r31->unk90 = (temp_r31->unk8C == temp_r31->unk48[0]->unk18 && temp_r31->unk8C != temp_r31->unk7C) ? (temp_r31->unk90 + 1) : 0; + temp_r31->unk8C = temp_r31->unk48[0]->unk18; + if (temp_r31->unk7C == -1 && temp_r31->unk90 >= sp20C[temp_r31->unk20] + || (temp_r31->unk20 >= 1 && (temp_r31->unk90 >= sp200[temp_r31->unk20 - 1]))) { + s32 sp1F0[4] = { 30, 30, 20, 10 }; + fn_1_10B8(temp_r31); + temp_r31->unk84 = 0; + temp_r31->unk88 = 0; + temp_r31->unk94 = (rand8() % sp1F0[temp_r31->unk20]) - (sp1F0[temp_r31->unk20] / 2); + } + } + if (lbl_1_bss_18 == -1) { + if (temp_r31->unk1C != -1) { + temp_r31->unk48[0]->unk1C.z = temp_r31->unk48[1]->unk1C.z + = -0.03125f + ((HuPadStkY[temp_r31->unk1C] < -36) ? (-0.26875f * ((-HuPadStkY[temp_r31->unk1C] - 36) / 36.0f)) : 0); + temp_r31->unk4 = (HuPadStkY[temp_r31->unk1C] < -36) ? 1 : 0; + } + else { + s32 sp1E4[3] = { 50, 30, 25 }; + s32 sp1D8[3] = { 90, 80, 70 }; + + temp_r31->unk4 + = ((temp_r31->unk20 + && (temp_r31->unk88 > temp_r31->unk94 + sp1E4[temp_r31->unk20 - 1] || temp_r31->unk90 > sp1D8[temp_r31->unk20 - 1]))) + ? 1 + : 0; + temp_r31->unk48[0]->unk1C.z = temp_r31->unk48[1]->unk1C.z = -0.03125f + (temp_r31->unk4 ? -0.26875f : 0.0f); + } + } + else { + temp_r31->unk48[0]->unk1C.z = temp_r31->unk48[1]->unk1C.z = 0; + } + if (lbl_1_bss_18 == -1 && sp180) { + if (fn_1_57C_inline(temp_r31->unk48[0]->unk18_u + sp180, temp_r31->unk48[0]->unk1C.y, temp_r31->unk48[0], NULL) == 0) { + if (fn_1_57C_inline(temp_r31->unk48[1]->unk18_u + sp180, temp_r31->unk48[1]->unk1C.y, temp_r31->unk48[1], NULL) == 0) { + float sp17C = temp_r31->unk48[0]->unk18; + float sp178 = temp_r31->unk48[1]->unk18; + fn_1_6D0(temp_r31->unk48[0]->unk18_u + sp180, temp_r31->unk48[0]->unk1C.y, temp_r31->unk48[0]); + fn_1_6D0(temp_r31->unk48[1]->unk18_u + sp180, temp_r31->unk48[1]->unk1C.y, temp_r31->unk48[1]); + temp_r31->unk48[0]->unk1C.x = (sp17C * 0.5) + (0.5 * temp_r31->unk48[0]->unk18); + temp_r31->unk48[1]->unk1C.x = (sp178 * 0.5) + (0.5 * temp_r31->unk48[1]->unk18); + } + } + } + if (lbl_1_bss_18 != -1) { + temp_r26 = temp_r31->unk70; + } + if (temp_r26 != temp_r31->unk70) { + StructBss2A6C *temp_r29 = temp_r31->unk48[0]; + StructBss2A6C *temp_r30 = temp_r31->unk48[1]; + s32 sp174 = temp_r29->unk18; + float temp_f25 = temp_r29->unk1C.y; + s32 sp1C8[4] = { 0, 1, 0, -1 }; + s32 sp1B8[4] = { 1, 0, -1, 0 }; + StructBss2A6C *sp170; + if (fn_1_57C_inline(sp174 + sp1C8[temp_r26], temp_f25 + sp1B8[temp_r26], temp_r30, &sp170) == 0) { + if (temp_r31->unk70 != temp_r26) { + temp_r30->unk5 = 1; + temp_r30->unk4 = (((((temp_r26 - temp_r31->unk70) + 8) % 4) - 1) * 4) + temp_r31->unk70 + 1; + } + temp_r31->unk70 = temp_r26; + fn_1_6D0(sp174 + sp1C8[temp_r26], temp_f25 + sp1B8[temp_r26], temp_r30); + temp_r30->unk1C.x = temp_r30->unk18; + } + else { + float temp_f31; + s32 temp_r24; + if (temp_r26 % 2 == 0) { + s32 sp16C = (temp_r26 == 2) ? 1 : 0; + temp_f31 = temp_f25 + ((sp16C == 1) ? sp1B8[temp_r26] : sp1B8[temp_r26]); + fn_1_57C_inline(sp174, temp_f31, (sp16C == 0) ? temp_r30 : temp_r30, &sp170); + if (temp_r26 == 2) { + if (!sp170 || sp170->unk1C.y <= temp_f31) { + temp_f31 = ((sp16C == 1) ? 1.0f : 0.0f) + ((sp170) ? sp170->unk1C.y + 1.0f : 0.0f); + temp_r24 = sp174; + } + else { + temp_f31 = (sp170->unk1C.y - 1.0f) - (sp16C == 0); + temp_r24 = sp174; + } + } + else { + if (sp170->unk1C.y >= temp_f31) { + temp_f31 = ((sp16C == 1) ? 1.0f : 0.0f) + ((sp170) ? sp170->unk1C.y - 2.0f : 0.0f); + temp_r24 = sp174; + } + else { + temp_f31 = (sp170->unk1C.y - 1.0f) - (sp16C == 0); + temp_r24 = sp174; + } + } + } + else { + temp_r24 = sp174 - sp1C8[temp_r26]; + temp_f31 = temp_f25; + } + if (fn_1_57C_inline(temp_r24, temp_f31, temp_r29, NULL) == 0) { + if (fn_1_57C_inline(temp_r24 + sp1C8[temp_r26], temp_f31 + sp1B8[temp_r26], temp_r30, NULL) == 0) { + float sp168 = temp_r31->unk48[0]->unk18; + float sp164 = temp_r31->unk48[1]->unk18; + if (temp_r31->unk70 != temp_r26) { + temp_r30->unk5 = 1; + temp_r30->unk4 = (((((temp_r26 - temp_r31->unk70) + 8) % 4) - 1) * 4) + temp_r31->unk70 + 1; + } temp_r31->unk70 = temp_r26; - if(temp_r26 == 2) { - fn_1_6D0(temp_r24, temp_f31+(0.5*(float)sp1B8[temp_r26]), temp_r29); - fn_1_6D0(temp_r24+sp1C8[temp_r26], temp_f31+sp1B8[temp_r26], temp_r30); - fn_1_6D0(temp_r24, temp_f31, temp_r29); - } else { - fn_1_6D0(temp_r24, temp_f31, temp_r29); - fn_1_6D0(temp_r24+sp1C8[temp_r26], temp_f31+sp1B8[temp_r26], temp_r30); - - } - temp_r31->unk48[0]->unk1C.x = (sp168*0.5)+(0.5*temp_r31->unk48[0]->unk18); - temp_r31->unk48[1]->unk1C.x = (sp164*0.5)+(0.5*temp_r31->unk48[1]->unk18); - } - } - - } - } - } - if(temp_r31->unk48[0]) { - temp_r31->unk98 = 10.0+((100.0*((temp_r31->unk48[0]->unk18+temp_r31->unk48[0]->unk1C.x)/2.0))-500); - temp_r31->unk9C = 25.0f+((100.0f*temp_r31->unk48[0]->unk1C.y)-500.0f); - } - if(lbl_1_bss_18 == -1) { - Vec sp1AC; - Vec sp1A0; - sp1AC.x = temp_r31->unk98; - sp1AC.y = temp_r31->unk9C; - sp1AC.z = 55; - Hu3D3Dto2D(&sp1AC, 1, &sp1A0); - HuSprPosSet(temp_r31->unkA4, 0, sp1A0.x, sp1A0.y); - } - } + if (temp_r26 == 2) { + fn_1_6D0(temp_r24, temp_f31 + (0.5 * (float)sp1B8[temp_r26]), temp_r29); + fn_1_6D0(temp_r24 + sp1C8[temp_r26], temp_f31 + sp1B8[temp_r26], temp_r30); + fn_1_6D0(temp_r24, temp_f31, temp_r29); + } + else { + fn_1_6D0(temp_r24, temp_f31, temp_r29); + fn_1_6D0(temp_r24 + sp1C8[temp_r26], temp_f31 + sp1B8[temp_r26], temp_r30); + } + temp_r31->unk48[0]->unk1C.x = (sp168 * 0.5) + (0.5 * temp_r31->unk48[0]->unk18); + temp_r31->unk48[1]->unk1C.x = (sp164 * 0.5) + (0.5 * temp_r31->unk48[1]->unk18); + } + } + } + } + } + if (temp_r31->unk48[0]) { + temp_r31->unk98 = 10.0 + ((100.0 * ((temp_r31->unk48[0]->unk18 + temp_r31->unk48[0]->unk1C.x) / 2.0)) - 500); + temp_r31->unk9C = 25.0f + ((100.0f * temp_r31->unk48[0]->unk1C.y) - 500.0f); + } + if (lbl_1_bss_18 == -1) { + Vec sp1AC; + Vec sp1A0; + sp1AC.x = temp_r31->unk98; + sp1AC.y = temp_r31->unk9C; + sp1AC.z = 55; + Hu3D3Dto2D(&sp1AC, 1, &sp1A0); + HuSprPosSet(temp_r31->unkA4, 0, sp1A0.x, sp1A0.y); + } + } } void fn_1_8AC8(StructBss2A6C *arg0, StructSp14C8 *arg1); -#define CHECK_2E48(arg0, arg1, arg2) \ - (((arg0)-1 <= 0 || (arg2[(arg0)-1][(arg1)] && arg2[(arg0)-1][(arg1)]->unk0)) && \ - ((arg0)-1 >= 11 || (arg2[(arg0)+1][(arg1)] && arg2[(arg0)+1][(arg1)]->unk0)) && \ - ((arg1)-1 <= 0 || (arg2[(arg0)][(arg1)-1] && arg2[(arg0)][(arg1)-1]->unk0)) && \ - ((arg1)-1 >= 8 || (arg2[(arg0)][(arg1)+1] && arg2[(arg0)][(arg1)+1]->unk0)) && \ - ((arg0)-1 >= 11 || (arg1)-1 <= 0 || (arg2[(arg0)+1][(arg1)-1] && arg2[(arg0)+1][(arg1)-1]->unk0)) && \ - ((arg0)-1 >= 11 || (arg1)-1 >= 8 || (arg2[(arg0)+1][(arg1)+1] && arg2[(arg0)+1][(arg1)+1]->unk0)) && \ - ((arg0)-1 <= 0 || (arg1)-1 <= 0 || (arg2[(arg0)-1][(arg1)-1] && arg2[(arg0)-1][(arg1)-1]->unk0)) && \ - ((arg0)-1 <= 0 || (arg1)-1 >= 8 || (arg2[(arg0)-1][(arg1)+1] && arg2[(arg0)-1][(arg1)+1]->unk0))) - +#define CHECK_2E48(arg0, arg1, arg2) \ + (((arg0)-1 <= 0 || (arg2[(arg0)-1][(arg1)] && arg2[(arg0)-1][(arg1)]->unk0)) \ + && ((arg0)-1 >= 11 || (arg2[(arg0) + 1][(arg1)] && arg2[(arg0) + 1][(arg1)]->unk0)) \ + && ((arg1)-1 <= 0 || (arg2[(arg0)][(arg1)-1] && arg2[(arg0)][(arg1)-1]->unk0)) \ + && ((arg1)-1 >= 8 || (arg2[(arg0)][(arg1) + 1] && arg2[(arg0)][(arg1) + 1]->unk0)) \ + && ((arg0)-1 >= 11 || (arg1)-1 <= 0 || (arg2[(arg0) + 1][(arg1)-1] && arg2[(arg0) + 1][(arg1)-1]->unk0)) \ + && ((arg0)-1 >= 11 || (arg1)-1 >= 8 || (arg2[(arg0) + 1][(arg1) + 1] && arg2[(arg0) + 1][(arg1) + 1]->unk0)) \ + && ((arg0)-1 <= 0 || (arg1)-1 <= 0 || (arg2[(arg0)-1][(arg1)-1] && arg2[(arg0)-1][(arg1)-1]->unk0)) \ + && ((arg0)-1 <= 0 || (arg1)-1 >= 8 || (arg2[(arg0)-1][(arg1) + 1] && arg2[(arg0)-1][(arg1) + 1]->unk0))) + void fn_1_52A4(s32 arg0) { - omObjData *sp1EC = lbl_1_bss_30; - StructBss2A6C *sp2E48[14][19] = {}; - StructBss2A6C *sp1E8 = NULL; - StructBss2A6C *temp_r31; - StructBss2A6C *temp_r30; - s32 temp_r29; - s32 temp_r23; - s32 temp_r19; - s32 temp_r18; - float temp_f31; - float temp_f30; - float temp_f29; - - StructSp14C8 sp14C8[204]; - StructBss2A6C *spD58[476]; - StructSp14C8 *spA28[204]; - float sp6F8[204]; - float sp3C8[204]; - s16 sp230[204]; - - for(temp_r18=0; temp_r18<12; temp_r18++) { - for(temp_r31 = lbl_1_bss_7884[temp_r18]; temp_r31; temp_r31=temp_r31->unk48) { - s32 sp1E4 = temp_r31->unk1; - s32 sp1E0 = (((sp1E4 & 0x2) == 0 && (arg0 == 4)) || ((sp1E4 & 0x2) && (temp_r31->unk3 & (1 << arg0)))); - temp_f29 = (sp1E0) ? temp_r31->unk1C.z : 0; - temp_r31->unk2C = (void *)(temp_r31->unk30 = temp_r31->unk34 = NULL); - temp_r31->unk38 = temp_r31->unk3C = temp_r31->unk40 = temp_r31->unk44 = NULL; - if(arg0 == 4) { - temp_r31->unk5 +=temp_r31->unk4 != 0 && temp_r31->unk5 != 0; - temp_r31->unk5 = (temp_r31->unk4 == 0 || (temp_r31->unk5 > (((temp_r31->unk4-1)/4 == 1) ? 15 : 15))) ? 0 : temp_r31->unk5; - temp_r31->unk4 = (temp_r31->unk5 == 0) ? 0 : temp_r31->unk4; - temp_r31->unk1C.x = (0.5*temp_r31->unk18)+(0.5*temp_r31->unk1C.x); - } - if(temp_r31->unk0) { - s32 sp1DC = 0; - StructBss2A6C *sp1D8; - if((temp_r31->unk1 & 0x1) && temp_r31->unk1C.y == 0.0f && !temp_r31->unk4C) { - sp1DC = 1; - sp1D8 = NULL; - } else if((temp_r31->unk1 & 0x1) && temp_r31->unk4C && (temp_r31->unk4C->unk1C.y == temp_r31->unk1C.y-1.0f)) { - sp1DC = 2; - sp1D8 = temp_r31->unk4C; - } else { - if(fn_1_57C(temp_r18, temp_r31->unk1C.y+temp_f29, temp_r31, &sp1D8)) { - if(!sp1D8 || temp_r31->unk1C.y+temp_f29 >= sp1D8->unk1C.y) { - sp1DC = 2; - } - } - } - if(sp1DC != 0) { - if(temp_r31->unk1 & 0x2) { - float temp_f28 = (temp_r31->unk1C.y+temp_f29)-((!sp1D8) ? 0.0f : (1.0f+sp1D8->unk1C.y)); - temp_f28 = temp_r31->unk1C.y-((!sp1D8) ? 0.0f : (1.0f+sp1D8->unk1C.y)); - if(temp_r31->unk50->unk48[0]->unk18 != temp_r31->unk50->unk48[1]->unk18) { - temp_r31->unk50->unk48[0]->unk1C.y = ((!sp1D8) ? 0.0f : (1.0f+sp1D8->unk1C.y)); - temp_r31->unk50->unk48[1]->unk1C.y = ((!sp1D8) ? 0.0f : (1.0f+sp1D8->unk1C.y)); - } else { - temp_r31->unk50->unk48[0]->unk1C.y -= temp_f28; - temp_r31->unk50->unk48[1]->unk1C.y -= temp_f28; - } - temp_r31->unk50->unk48[0]->unk1C.z = 0; - temp_r31->unk50->unk48[1]->unk1C.z = 0; - if(sp1E0) { - if(!sp1D8 || ((sp1D8->unk1 & 0x1) && (sp1D8->unk1 & 0x2) == 0)) { - temp_r31->unk50->unk71 -= (temp_r31->unk50->unk71 != 0 && lbl_1_bss_18 == -1); - - } - } - if(temp_r31->unk50->unk71 == 0 || temp_r31->unk50->unk4 != 0 && (!sp1D8 || ((sp1D8->unk1 & 0x1) && (sp1D8->unk1 & 0x2) == 0))) { - temp_r31->unk50->unk48[0]->unk1 &= ~0x2; - temp_r31->unk50->unk48[1]->unk1 &= ~0x2; - temp_r31->unk50->unk48[0]->unk1 |= 0x10; - temp_r31->unk50->unk48[1]->unk1 |= 0x10; - temp_r31->unk1 |= 0x1; - if(temp_r31->unk50->unk48[0]->unk18 != temp_r31->unk50->unk48[1]->unk18) { - s32 sp1D4; - s32 sp1D0 = (temp_r31 == temp_r31->unk50->unk48[1]) ? 1 : 0; - s32 sp1CC = temp_r31->unk50->unk48[sp1D0]->unk18; - s32 sp1C8 = temp_r31->unk50->unk48[1-sp1D0]->unk18; - float sp1C4 = temp_r31->unk50->unk48[sp1D0]->unk1C.y; - float sp1C0 = temp_r31->unk50->unk48[1-sp1D0]->unk1C.y; - sp1D4 = (sp1CC < sp1C8 || (sp1CC == sp1C8 && sp1C4 < sp1C0)) ? 1 : 0; - if(sp1D4 == 1) { - StructBss2A6C *temp_r21 = temp_r31->unk50->unk48[1-sp1D0]; - StructBss2A6C *temp_r20 = (temp_r21) ? temp_r21->unk4C : NULL; - if(temp_r21) { - if((!temp_r20 && temp_r21->unk1C.y == 0.0f) || (temp_r20 && temp_r21->unk1C.y == temp_r20->unk1C.y+1.0f && (temp_r20->unk1 & 0x1) && (temp_r20->unk1 & 0x2) == 0)) { - temp_r21->unk1C.y = (temp_r20) ? (temp_r20->unk1C.y+1.0f) : 0.0f; - temp_r21->unk1 &= ~0x1; - temp_r21->unk1 |= (temp_r20 && ((temp_r20->unk1 & 0x1) == 0 || (temp_r20->unk1 & 0x2) != 0)) ? 0 : 1; - temp_r21->unk1C.z = (temp_r21->unk1 & 0x1) ? -0.010416667f : ((!temp_r20) ? -0.010416667f : temp_r20->unk1C.z); - sp1E8 = temp_r21; - } - } - } - } - temp_r31->unk4 = temp_r31->unk5 = 0; - if(temp_r31->unk50->unk48[0]->unk18 == temp_r31->unk50->unk48[1]->unk18) { - s32 sp1BC = (temp_r31->unk50->unk48[1] == temp_r31) ? 1 : 0; - s32 sp1B8 = temp_r31->unk50->unk48[0]->unk1C.y > temp_r31->unk50->unk48[1]->unk1C.y; - temp_r31->unk50->unk48[1-sp1B8]->unk1C.y = 1+temp_r31->unk50->unk48[sp1B8]->unk1C.y; - temp_r31->unk50->unk48[1-sp1B8]->unk1C.z = -0.010416667f; - temp_r31->unk50->unk48[0]->unk1 |= 0x1; - temp_r31->unk50->unk48[1]->unk1 |= 0x1; - temp_r31->unk50->unk48[0]->unk4 = temp_r31->unk50->unk48[0]->unk5 = 0; - temp_r31->unk50->unk48[1]->unk4 = temp_r31->unk50->unk48[1]->unk5 = 0; - temp_r31->unk38 = (temp_r31->unk50->unk48[1] == temp_r31) ? temp_r31->unk50->unk48[0] : temp_r31->unk50->unk48[1]; - if(sp1BC) { - temp_r31->unk50->unk48[0]->unk1 |= 0x8; - } else { - temp_r31->unk50->unk48[1]->unk1 |= 0x8; - } - - } - temp_r31->unk50->unk48[0] = NULL; - temp_r31->unk50->unk48[1] = NULL; - } - } else { - temp_r31->unk1C.y = (sp1D8) ? (1.0f+sp1D8->unk1C.y) : 0.0f; - temp_r31->unk1 &= ~0x1; - temp_r31->unk1 |= (sp1D8 && ((sp1D8->unk1 & 0x1) == 0 || (sp1D8->unk1 & 0x2) != 0)) ? 0 : 1; - temp_r31->unk1C.z = (temp_r31->unk1 & 0x1) ? -0.010416667f : ((!sp1D8) ? -0.010416667f : sp1D8->unk1C.z); - } - } else { - temp_r31->unk1C.y += temp_f29; - temp_r31->unk1C.z = (sp1E0) ? ((temp_r31->unk1 & 0x3) ? 0.0f : -0.010416667f+temp_r31->unk1C.z) : temp_r31->unk1C.z; - if(temp_r31->unk1 & 0x1) { - temp_r31->unk1 &= ~0x1; - } - } - } - if((temp_r31->unk1 & 0x1) && (sp1E4 & 0x1) && (temp_r31->unk1 & 0x8) == 0 && temp_r31 != sp1E8) { - temp_r31->unk8[0] = temp_r31->unk8[1] = temp_r31->unk8[2] = temp_r31->unk8[3] = 0; - temp_r31->unk3 = 0; - temp_r31->unk1 &= ~0x10; - } - temp_r31->unk1 &= ~0x8; - if((temp_r31->unk1 & 0x1) && (temp_r31->unk1 & 0x2) == 0) { - sp2E48[temp_r31->unk18+1][(int)temp_r31->unk1C.y+1] = temp_r31; - } - if(temp_r31->unk1 & 0x2) { - temp_r31->unk1C.z = 0; - } - } - } - temp_r23 = 0; - { - s32 sp1B4; - for(temp_r18=0; temp_r18<12; temp_r18++) { - StructBss2A6C *sp1B0 = (temp_r18 < 11) ? lbl_1_bss_7884[temp_r18+1] : NULL; - StructBss2A6C *sp1AC = NULL; - StructBss2A6C *sp1A8 = NULL; - float sp1A4 = (sp1B0) ? (sp1B0->unk1C.y) : 0.0f; - for(temp_r31 = lbl_1_bss_7884[temp_r18]; temp_r31; temp_r31=temp_r31->unk48) { - s32 sp1A0 = temp_r31->unk18+1; - s32 sp19C = (int)temp_r31->unk1C.y+1; - if((temp_r31->unk1 & 0x1) && (temp_r31->unk1 & 0x2) == 0) { - if(sp2E48[sp1A0][sp19C+1]) { - temp_r31->unk38 = sp2E48[sp1A0][sp19C+1]; - temp_r31->unk38->unk3C = temp_r31; - } - if(sp2E48[sp1A0+1][sp19C]) { - sp1B0 = sp2E48[sp1A0+1][sp19C]; - temp_r31->unk44 = sp1B0; - temp_r31->unk44->unk40 = temp_r31; - } - sp1AC = sp2E48[sp1A0+1][sp19C+1]; - sp1A8 = sp2E48[sp1A0+1][sp19C-1]; - if(temp_r31->unk0 == 5 && temp_r31->unk2C == NULL && temp_r31->unk1C.y <= 8.0f && sp19C-1 < 9) { - s32 sp198 = temp_r31->unk0 == 5; - sp14C8[temp_r23].unk0 = 5; - sp14C8[temp_r23].unk4[0] = (sp198) ? temp_r31->unk8[0] : temp_r30->unk8[0]; - sp14C8[temp_r23].unk4[1] = (sp198) ? temp_r31->unk8[0] : temp_r30->unk8[1]; - sp14C8[temp_r23].unk4[2] = (sp198) ? temp_r31->unk8[0] : temp_r30->unk8[2]; - sp14C8[temp_r23].unk4[3] = (sp198) ? temp_r31->unk8[0] : temp_r30->unk8[3]; - sp14C8[temp_r23].unk1 = 1; - sp14C8[temp_r23].unk2 = 0; - sp14C8[temp_r23].unk14 = (sp198) ? temp_r31 : temp_r30; - sp14C8[temp_r23].unk18 = (sp198) ? temp_r31 : temp_r30; - sp14C8[temp_r23].unk1C = 0; - if(sp198) { - temp_r31->unk30 = NULL; - temp_r31->unk34 = NULL; - temp_r31->unk2C = &sp14C8[temp_r23]; - } else { - temp_r30->unk30 = NULL; - temp_r30->unk34 = NULL; - temp_r30->unk2C = &sp14C8[temp_r23]; - } - temp_r23++; - } - for(temp_r29=0; temp_r29<((temp_r31 && temp_r31->unk0 == 5) ? 2 : 0)+2; temp_r29++) { - temp_r30 = (temp_r29 == 0) ? temp_r31->unk48 : ((temp_r29 == 1) ? sp1B0 : ((temp_r29 == 2) ? sp1AC : sp1A8)); - if(temp_r30 && (temp_r30->unk1 & 0x1)) { - if(temp_r29 != 1 || temp_r31->unk1C.y == temp_r30->unk1C.y) { - if(temp_r31->unk0 == temp_r30->unk0) { - if((temp_r31->unk0 >= 1 && temp_r31->unk0 <= 4) || (temp_r31->unk0 == 5 && (temp_r31->unk1C.y <= 8.0f || temp_r30->unk1C.y <= 8.0f))) { - StructSp14C8 *temp_r28 = temp_r31->unk2C; - StructSp14C8 *temp_r27 = temp_r30->unk2C; - if(temp_r31->unk2C && temp_r30->unk2C) { - if(temp_r31->unk2C != temp_r30->unk2C) { - StructBss2A6C *sp194 = temp_r28->unk14; - StructBss2A6C *sp190 = temp_r27->unk14; - while(1) { - sp190->unk2C = temp_r28; - if(!sp190->unk34) { - break; - } - sp190 = sp190->unk34; - } - temp_r27->unk14->unk30 = temp_r28->unk18; - temp_r28->unk18->unk34 = temp_r27->unk14; - temp_r28->unk4[0] = (temp_r28->unk4[0] > temp_r27->unk4[0]) ? temp_r28->unk4[0] : temp_r27->unk4[0]; - temp_r28->unk4[1] = (temp_r28->unk4[1] > temp_r27->unk4[1]) ? temp_r28->unk4[1] : temp_r27->unk4[1]; - temp_r28->unk4[2] = (temp_r28->unk4[2] > temp_r27->unk4[2]) ? temp_r28->unk4[2] : temp_r27->unk4[2]; - temp_r28->unk4[3] = (temp_r28->unk4[3] > temp_r27->unk4[3]) ? temp_r28->unk4[3] : temp_r27->unk4[3]; - temp_r28->unk1 = temp_r28->unk1+temp_r27->unk1; - temp_r28->unk2 |= temp_r27->unk2; - temp_r28->unk18 = sp190; - temp_r27->unk14 = temp_r27->unk18 = NULL; - temp_r27->unk1 = 0; - temp_r27->unk0 = 0; - temp_r27->unk1C = temp_r28; - } - } else { - if(temp_r31->unk2C) { - temp_r30->unk2C = temp_r31->unk2C; - temp_r28->unk18->unk34 = temp_r30; - temp_r30->unk30 = temp_r28->unk18; - temp_r28->unk18 = temp_r30; - temp_r28->unk1++; - temp_r28->unk2 |= temp_r30->unk3; - temp_r28->unk4[0] = (temp_r28->unk4[0] < temp_r30->unk8[0]) ? temp_r30->unk8[0] : temp_r28->unk4[0]; - temp_r28->unk4[1] = (temp_r28->unk4[1] < temp_r30->unk8[1]) ? temp_r30->unk8[1] : temp_r28->unk4[1]; - temp_r28->unk4[2] = (temp_r28->unk4[2] < temp_r30->unk8[2]) ? temp_r30->unk8[2] : temp_r28->unk4[2]; - temp_r28->unk4[3] = (temp_r28->unk4[3] < temp_r30->unk8[3]) ? temp_r30->unk8[3] : temp_r28->unk4[3]; - } else if(temp_r30->unk2C) { - temp_r31->unk2C = temp_r30->unk2C; - temp_r27->unk18->unk34 = temp_r31; - temp_r31->unk30 = temp_r27->unk18; - temp_r27->unk18 = temp_r31; - temp_r27->unk1++; - temp_r27->unk2 |= temp_r31->unk3; - temp_r27->unk4[0] = (temp_r27->unk4[0] < temp_r31->unk8[0]) ? temp_r31->unk8[0] : temp_r27->unk4[0]; - temp_r27->unk4[1] = (temp_r27->unk4[1] < temp_r31->unk8[1]) ? temp_r31->unk8[1] : temp_r27->unk4[1]; - temp_r27->unk4[2] = (temp_r27->unk4[2] < temp_r31->unk8[2]) ? temp_r31->unk8[2] : temp_r27->unk4[2]; - temp_r27->unk4[3] = (temp_r27->unk4[3] < temp_r31->unk8[3]) ? temp_r31->unk8[3] : temp_r27->unk4[3]; - } else { - sp14C8[temp_r23].unk0 = temp_r31->unk0; - sp14C8[temp_r23].unk4[0] = (temp_r31->unk8[0] > temp_r30->unk8[0]) ? temp_r31->unk8[0] : temp_r30->unk8[0]; - sp14C8[temp_r23].unk4[1] = (temp_r31->unk8[1] > temp_r30->unk8[1]) ? temp_r31->unk8[1] : temp_r30->unk8[1]; - sp14C8[temp_r23].unk4[2] = (temp_r31->unk8[2] > temp_r30->unk8[2]) ? temp_r31->unk8[2] : temp_r30->unk8[2]; - sp14C8[temp_r23].unk4[3] = (temp_r31->unk8[3] > temp_r30->unk8[3]) ? temp_r31->unk8[3] : temp_r30->unk8[3]; - sp14C8[temp_r23].unk1 = 2; - sp14C8[temp_r23].unk2 = (temp_r31->unk3 | temp_r30->unk3); - sp14C8[temp_r23].unk14 = temp_r31; - sp14C8[temp_r23].unk18 = temp_r30; - sp14C8[temp_r23].unk1C = NULL; - temp_r31->unk30 = NULL; - temp_r31->unk34 = temp_r30; - temp_r30->unk30 = temp_r31; - temp_r30->unk34 = NULL; - temp_r31->unk2C = &sp14C8[temp_r23]; - temp_r30->unk2C = &sp14C8[temp_r23]; - temp_r23++; - } - } - } - } - } - } - } - } - } - } - for(temp_r29=0; temp_r29unk18+1; - s32 temp_r25 = (int)sp18C->unk1C.y+1; - if(sp14C8[temp_r29].unk0 != 0 && temp_r25 <= 9) { - if(!CHECK_2E48(temp_r24, temp_r25, sp2E48)) { - sp14C8[temp_r29].unk0 = 0; - } else { - sp14C8[temp_r29].unk2 |= - ((sp2E48[temp_r24-1][temp_r25]) ? sp2E48[temp_r24-1][temp_r25]->unk3 : 0) | - ((sp2E48[temp_r24+1][temp_r25]) ? sp2E48[temp_r24+1][temp_r25]->unk3 : 0) | - ((sp2E48[temp_r24][temp_r25-1]) ? sp2E48[temp_r24][temp_r25-1]->unk3 : 0) | - ((sp2E48[temp_r24][temp_r25+1]) ? sp2E48[temp_r24][temp_r25+1]->unk3 : 0) | - ((sp2E48[temp_r24+1][temp_r25-1]) ? sp2E48[temp_r24+1][temp_r25-1]->unk3 : 0) | - ((sp2E48[temp_r24+1][temp_r25+1]) ? sp2E48[temp_r24+1][temp_r25+1]->unk3 : 0) | - ((sp2E48[temp_r24-1][temp_r25-1]) ? sp2E48[temp_r24-1][temp_r25-1]->unk3 : 0) | - ((sp2E48[temp_r24-1][temp_r25+1]) ? sp2E48[temp_r24-1][temp_r25+1]->unk3 : 0); - } - sp18C = sp18C->unk34; - if(!sp18C) { - break; - } - } - } - } - for(temp_r29=0; temp_r29= 1 && sp14C8[temp_r29].unk0 <= 4 && sp14C8[temp_r29].unk1 >= 3) || sp14C8[temp_r29].unk0 == 5) { - fn_1_38C(&sp14C8[temp_r29].unk2, sp14C8[temp_r29].unk4); - } - } - sp1B4 = 1; - while(sp1B4 >= 0) { - s32 temp_r22 = 0; - s32 sp188 = 0; - for(temp_r29=0; temp_r29= 1 && sp14C8[temp_r29].unk0 <= 4 && sp14C8[temp_r29].unk1 >= 3)) || (sp1B4 == 1 && sp14C8[temp_r29].unk0 == 5)) { - StructBss2A6C *temp_r26 = sp14C8[temp_r29].unk14; - s32 sp184 = 0; - s32 sp180 = 0; - float temp_f31 = -1; - float temp_f30 = -1; - if(sp14C8[temp_r29].unk0 == 5) { - lbl_1_bss_D0++; - lbl_1_bss_D0 %= 5; - lbl_1_bss_D4[lbl_1_bss_D0][1] = 1; - lbl_1_bss_D4[lbl_1_bss_D0][0] = 0; - for(temp_r19=0; temp_r19<10; temp_r19++) { - Hu3DModelAttrSet(lbl_1_bss_30->model[((lbl_1_bss_D0*10)+13+temp_r19)], 1); - } - } - for(temp_r19=0; temp_r19unk18; - temp_f30 = temp_r26->unk1C.y; - } else { - sp180++; - temp_f31 = (temp_f31*(1.0-(1.0/sp180)))+(temp_r26->unk18*(1.0/sp180)); - temp_f30 = (temp_f30*(1.0-(1.0/sp180)))+(temp_r26->unk1C.y*(1.0/sp180)); - } - if(sp14C8[temp_r29].unk0 == 5) { - if(lbl_1_bss_D4[lbl_1_bss_D0][0] < 10) { - Hu3DModelPosSet(lbl_1_bss_30->model[((lbl_1_bss_D0*10)+13+lbl_1_bss_D4[lbl_1_bss_D0][0])], (((temp_r26->unk18*100)-500.0)-50.0), 50.0f+((100.0f*temp_r26->unk1C.y)-500.0f), 120); - Hu3DModelAttrReset(lbl_1_bss_30->model[((lbl_1_bss_D0*10)+13+lbl_1_bss_D4[lbl_1_bss_D0][0])], 1); - Hu3DMotionTimeSet(lbl_1_bss_30->model[((lbl_1_bss_D0*10)+13+lbl_1_bss_D4[lbl_1_bss_D0][0])], 2.0f); - lbl_1_bss_D4[lbl_1_bss_D0][0]++; - lbl_1_bss_B8.unk4 += 4; - if(lbl_1_bss_D4[lbl_1_bss_D0][0] == 1) { - lbl_1_bss_B8.unk4 += 7; - } - } - fn_1_8AC8(temp_r26->unk38, &sp14C8[temp_r29]); - fn_1_8AC8((temp_r26->unk44 && temp_r26->unk44->unk38) ? temp_r26->unk44->unk38 : temp_r26->unk44, &sp14C8[temp_r29]); - fn_1_8AC8((temp_r26->unk40 && temp_r26->unk40->unk38) ? temp_r26->unk40->unk38 : temp_r26->unk40, &sp14C8[temp_r29]); - spD58[temp_r22] = temp_r26->unk38; - temp_r22++; - spD58[temp_r22] = temp_r26->unk3C; - temp_r22++; - if(temp_r26->unk44) { - spD58[temp_r22] = temp_r26->unk44->unk38; - temp_r22++; - spD58[temp_r22] = temp_r26->unk44->unk3C; - temp_r22++; - } - spD58[temp_r22] = temp_r26->unk44; - temp_r22++; - if(temp_r26->unk40) { - spD58[temp_r22] = temp_r26->unk40->unk38; - temp_r22++; - spD58[temp_r22] = temp_r26->unk40->unk3C; - temp_r22++; - } - spD58[temp_r22] = temp_r26->unk40; - temp_r22++; - spD58[temp_r22] = temp_r26; - temp_r22++; - } else { - fn_1_8AC8(temp_r26, &sp14C8[temp_r29]); - sp184 += fn_1_7F8(temp_r26, &sp14C8[temp_r29]); - } - temp_r26 = temp_r26->unk34; - if(!temp_r26) { - break; - } - } - if(sp14C8[temp_r29].unk0 == 5 && (sp14C8[temp_r29].unk2 & 0xF)) { - Work19C8 *sp220[4]; - s32 sp17C; - for(sp17C=0; sp17C<4; sp17C++) { - if((1 << sp17C) & (sp14C8[temp_r29].unk2)) { - sp220[sp17C] = lbl_1_bss_34[sp17C]->data; - omVibrate(sp220[sp17C]->unk14, 12, 6, 6); - } - } - } - if(lbl_1_bss_48[(sp14C8[temp_r29].unk0 == 5) ? 0 : 1].unk0 < 3) { - lbl_1_bss_48[(sp14C8[temp_r29].unk0 == 5) ? 0 : 1].unk4[lbl_1_bss_48[(sp14C8[temp_r29].unk0 == 5) ? 0 : 1].unk0] = 0.45*(((temp_f31-5.0)-0.5)/5.5); - lbl_1_bss_48[(sp14C8[temp_r29].unk0 == 5) ? 0 : 1].unk0++; - } - if(sp1B4 == 0 && sp184 > 0 && lbl_1_bss_18 == -1) { - s32 sp178 = 0; - s32 sp174 = fn_1_4C0(&sp14C8[temp_r29].unk2, sp14C8[temp_r29].unk4); - Vec sp214 = { 0, 0, 50 }; - s32 temp_r17; - for(temp_r17=0; temp_r17<4; temp_r17++) { - sp178 += ((1 << temp_r17) != 0) & sp14C8[temp_r29].unk2; - } - sp178--; - sp214.x = (100.0f*temp_f31)-500.0; - sp214.y = 100+((100*temp_f30)-500); - sp214.x += sp178*12; - sp214.y -= sp178*30; - for(temp_r17=3; temp_r17>=0; temp_r17--) { - if((1 << temp_r17) & sp14C8[temp_r29].unk2) { - Vec sp208; - lbl_1_bss_2684[lbl_1_bss_2680].unkC = 1; - lbl_1_bss_2684[lbl_1_bss_2680].unk8 = sp184; - lbl_1_bss_2684[lbl_1_bss_2680].unk10 = 1< 3) ? 3 : sp174; - if(lbl_1_bss_48[sp174+3].unk0 < 3) { - lbl_1_bss_48[sp174+3].unk4[lbl_1_bss_48[sp174+3].unk0] = 0.45*(((temp_f31-5.0)-0.5)/5.5); - lbl_1_bss_48[sp174+3].unk0++; - } - } - spA28[sp188] = &sp14C8[temp_r29]; - sp230[sp188] = temp_r22; - sp6F8[sp188] = temp_f31; - sp3C8[sp188] = temp_f30; - sp188++; - } - } - for(temp_r29=0; temp_r29 0 && lbl_1_bss_18 == -1) { - s32 sp16C; - s32 sp168 = 0; - s32 sp164 = fn_1_4C0(&spA28[temp_r29]->unk2, spA28[temp_r29]->unk4); - Vec sp1FC = { 0, 0, 50 }; - for(sp16C=0; sp16C<4; sp16C++) { - sp168 += ((1 << sp16C) != 0) & spA28[temp_r29]->unk2; - } - sp168--; - sp1FC.x = (100.0f*sp6F8[temp_r29])-500.0; - sp1FC.y = 100+((100*sp3C8[temp_r29])-500); - sp1FC.x += sp168*12; - sp1FC.y -= sp168*30; - for(sp16C=3; sp16C>=0; sp16C--) { - if((1 << sp16C) & spA28[temp_r29]->unk2) { - Vec sp1F0; - lbl_1_bss_2684[lbl_1_bss_2680].unkC = 1; - lbl_1_bss_2684[lbl_1_bss_2680].unk8 = sp170; - lbl_1_bss_2684[lbl_1_bss_2680].unk10 = 1< 3) ? 3 : sp164; - if(lbl_1_bss_48[sp164+3].unk0 < 3) { - lbl_1_bss_48[sp164+3].unk4[lbl_1_bss_48[sp164+3].unk0] = 0.45*(((sp6F8[temp_r29]-5.0)-0.5)/5.5); - lbl_1_bss_48[sp164+3].unk0++; - } - } - } - sp1B4--; - } - } - + omObjData *sp1EC = lbl_1_bss_30; + StructBss2A6C *sp2E48[14][19] = {}; + StructBss2A6C *sp1E8 = NULL; + StructBss2A6C *temp_r31; + StructBss2A6C *temp_r30; + s32 temp_r29; + s32 temp_r23; + s32 temp_r19; + s32 temp_r18; + float temp_f31; + float temp_f30; + float temp_f29; + + StructSp14C8 sp14C8[204]; + StructBss2A6C *spD58[476]; + StructSp14C8 *spA28[204]; + float sp6F8[204]; + float sp3C8[204]; + s16 sp230[204]; + + for (temp_r18 = 0; temp_r18 < 12; temp_r18++) { + for (temp_r31 = lbl_1_bss_7884[temp_r18]; temp_r31; temp_r31 = temp_r31->unk48) { + s32 sp1E4 = temp_r31->unk1; + s32 sp1E0 = (((sp1E4 & 0x2) == 0 && (arg0 == 4)) || ((sp1E4 & 0x2) && (temp_r31->unk3 & (1 << arg0)))); + temp_f29 = (sp1E0) ? temp_r31->unk1C.z : 0; + temp_r31->unk2C = (void *)(temp_r31->unk30 = temp_r31->unk34 = NULL); + temp_r31->unk38 = temp_r31->unk3C = temp_r31->unk40 = temp_r31->unk44 = NULL; + if (arg0 == 4) { + temp_r31->unk5 += temp_r31->unk4 != 0 && temp_r31->unk5 != 0; + temp_r31->unk5 = (temp_r31->unk4 == 0 || (temp_r31->unk5 > (((temp_r31->unk4 - 1) / 4 == 1) ? 15 : 15))) ? 0 : temp_r31->unk5; + temp_r31->unk4 = (temp_r31->unk5 == 0) ? 0 : temp_r31->unk4; + temp_r31->unk1C.x = (0.5 * temp_r31->unk18) + (0.5 * temp_r31->unk1C.x); + } + if (temp_r31->unk0) { + s32 sp1DC = 0; + StructBss2A6C *sp1D8; + if ((temp_r31->unk1 & 0x1) && temp_r31->unk1C.y == 0.0f && !temp_r31->unk4C) { + sp1DC = 1; + sp1D8 = NULL; + } + else if ((temp_r31->unk1 & 0x1) && temp_r31->unk4C && (temp_r31->unk4C->unk1C.y == temp_r31->unk1C.y - 1.0f)) { + sp1DC = 2; + sp1D8 = temp_r31->unk4C; + } + else { + if (fn_1_57C(temp_r18, temp_r31->unk1C.y + temp_f29, temp_r31, &sp1D8)) { + if (!sp1D8 || temp_r31->unk1C.y + temp_f29 >= sp1D8->unk1C.y) { + sp1DC = 2; + } + } + } + if (sp1DC != 0) { + if (temp_r31->unk1 & 0x2) { + float temp_f28 = (temp_r31->unk1C.y + temp_f29) - ((!sp1D8) ? 0.0f : (1.0f + sp1D8->unk1C.y)); + temp_f28 = temp_r31->unk1C.y - ((!sp1D8) ? 0.0f : (1.0f + sp1D8->unk1C.y)); + if (temp_r31->unk50->unk48[0]->unk18 != temp_r31->unk50->unk48[1]->unk18) { + temp_r31->unk50->unk48[0]->unk1C.y = ((!sp1D8) ? 0.0f : (1.0f + sp1D8->unk1C.y)); + temp_r31->unk50->unk48[1]->unk1C.y = ((!sp1D8) ? 0.0f : (1.0f + sp1D8->unk1C.y)); + } + else { + temp_r31->unk50->unk48[0]->unk1C.y -= temp_f28; + temp_r31->unk50->unk48[1]->unk1C.y -= temp_f28; + } + temp_r31->unk50->unk48[0]->unk1C.z = 0; + temp_r31->unk50->unk48[1]->unk1C.z = 0; + if (sp1E0) { + if (!sp1D8 || ((sp1D8->unk1 & 0x1) && (sp1D8->unk1 & 0x2) == 0)) { + temp_r31->unk50->unk71 -= (temp_r31->unk50->unk71 != 0 && lbl_1_bss_18 == -1); + } + } + if (temp_r31->unk50->unk71 == 0 + || temp_r31->unk50->unk4 != 0 && (!sp1D8 || ((sp1D8->unk1 & 0x1) && (sp1D8->unk1 & 0x2) == 0))) { + temp_r31->unk50->unk48[0]->unk1 &= ~0x2; + temp_r31->unk50->unk48[1]->unk1 &= ~0x2; + temp_r31->unk50->unk48[0]->unk1 |= 0x10; + temp_r31->unk50->unk48[1]->unk1 |= 0x10; + temp_r31->unk1 |= 0x1; + if (temp_r31->unk50->unk48[0]->unk18 != temp_r31->unk50->unk48[1]->unk18) { + s32 sp1D4; + s32 sp1D0 = (temp_r31 == temp_r31->unk50->unk48[1]) ? 1 : 0; + s32 sp1CC = temp_r31->unk50->unk48[sp1D0]->unk18; + s32 sp1C8 = temp_r31->unk50->unk48[1 - sp1D0]->unk18; + float sp1C4 = temp_r31->unk50->unk48[sp1D0]->unk1C.y; + float sp1C0 = temp_r31->unk50->unk48[1 - sp1D0]->unk1C.y; + sp1D4 = (sp1CC < sp1C8 || (sp1CC == sp1C8 && sp1C4 < sp1C0)) ? 1 : 0; + if (sp1D4 == 1) { + StructBss2A6C *temp_r21 = temp_r31->unk50->unk48[1 - sp1D0]; + StructBss2A6C *temp_r20 = (temp_r21) ? temp_r21->unk4C : NULL; + if (temp_r21) { + if ((!temp_r20 && temp_r21->unk1C.y == 0.0f) + || (temp_r20 && temp_r21->unk1C.y == temp_r20->unk1C.y + 1.0f && (temp_r20->unk1 & 0x1) + && (temp_r20->unk1 & 0x2) == 0)) { + temp_r21->unk1C.y = (temp_r20) ? (temp_r20->unk1C.y + 1.0f) : 0.0f; + temp_r21->unk1 &= ~0x1; + temp_r21->unk1 |= (temp_r20 && ((temp_r20->unk1 & 0x1) == 0 || (temp_r20->unk1 & 0x2) != 0)) ? 0 : 1; + temp_r21->unk1C.z + = (temp_r21->unk1 & 0x1) ? -0.010416667f : ((!temp_r20) ? -0.010416667f : temp_r20->unk1C.z); + sp1E8 = temp_r21; + } + } + } + } + temp_r31->unk4 = temp_r31->unk5 = 0; + if (temp_r31->unk50->unk48[0]->unk18 == temp_r31->unk50->unk48[1]->unk18) { + s32 sp1BC = (temp_r31->unk50->unk48[1] == temp_r31) ? 1 : 0; + s32 sp1B8 = temp_r31->unk50->unk48[0]->unk1C.y > temp_r31->unk50->unk48[1]->unk1C.y; + temp_r31->unk50->unk48[1 - sp1B8]->unk1C.y = 1 + temp_r31->unk50->unk48[sp1B8]->unk1C.y; + temp_r31->unk50->unk48[1 - sp1B8]->unk1C.z = -0.010416667f; + temp_r31->unk50->unk48[0]->unk1 |= 0x1; + temp_r31->unk50->unk48[1]->unk1 |= 0x1; + temp_r31->unk50->unk48[0]->unk4 = temp_r31->unk50->unk48[0]->unk5 = 0; + temp_r31->unk50->unk48[1]->unk4 = temp_r31->unk50->unk48[1]->unk5 = 0; + temp_r31->unk38 = (temp_r31->unk50->unk48[1] == temp_r31) ? temp_r31->unk50->unk48[0] : temp_r31->unk50->unk48[1]; + if (sp1BC) { + temp_r31->unk50->unk48[0]->unk1 |= 0x8; + } + else { + temp_r31->unk50->unk48[1]->unk1 |= 0x8; + } + } + temp_r31->unk50->unk48[0] = NULL; + temp_r31->unk50->unk48[1] = NULL; + } + } + else { + temp_r31->unk1C.y = (sp1D8) ? (1.0f + sp1D8->unk1C.y) : 0.0f; + temp_r31->unk1 &= ~0x1; + temp_r31->unk1 |= (sp1D8 && ((sp1D8->unk1 & 0x1) == 0 || (sp1D8->unk1 & 0x2) != 0)) ? 0 : 1; + temp_r31->unk1C.z = (temp_r31->unk1 & 0x1) ? -0.010416667f : ((!sp1D8) ? -0.010416667f : sp1D8->unk1C.z); + } + } + else { + temp_r31->unk1C.y += temp_f29; + temp_r31->unk1C.z = (sp1E0) ? ((temp_r31->unk1 & 0x3) ? 0.0f : -0.010416667f + temp_r31->unk1C.z) : temp_r31->unk1C.z; + if (temp_r31->unk1 & 0x1) { + temp_r31->unk1 &= ~0x1; + } + } + } + if ((temp_r31->unk1 & 0x1) && (sp1E4 & 0x1) && (temp_r31->unk1 & 0x8) == 0 && temp_r31 != sp1E8) { + temp_r31->unk8[0] = temp_r31->unk8[1] = temp_r31->unk8[2] = temp_r31->unk8[3] = 0; + temp_r31->unk3 = 0; + temp_r31->unk1 &= ~0x10; + } + temp_r31->unk1 &= ~0x8; + if ((temp_r31->unk1 & 0x1) && (temp_r31->unk1 & 0x2) == 0) { + sp2E48[temp_r31->unk18 + 1][(int)temp_r31->unk1C.y + 1] = temp_r31; + } + if (temp_r31->unk1 & 0x2) { + temp_r31->unk1C.z = 0; + } + } + } + temp_r23 = 0; + { + s32 sp1B4; + for (temp_r18 = 0; temp_r18 < 12; temp_r18++) { + StructBss2A6C *sp1B0 = (temp_r18 < 11) ? lbl_1_bss_7884[temp_r18 + 1] : NULL; + StructBss2A6C *sp1AC = NULL; + StructBss2A6C *sp1A8 = NULL; + float sp1A4 = (sp1B0) ? (sp1B0->unk1C.y) : 0.0f; + for (temp_r31 = lbl_1_bss_7884[temp_r18]; temp_r31; temp_r31 = temp_r31->unk48) { + s32 sp1A0 = temp_r31->unk18 + 1; + s32 sp19C = (int)temp_r31->unk1C.y + 1; + if ((temp_r31->unk1 & 0x1) && (temp_r31->unk1 & 0x2) == 0) { + if (sp2E48[sp1A0][sp19C + 1]) { + temp_r31->unk38 = sp2E48[sp1A0][sp19C + 1]; + temp_r31->unk38->unk3C = temp_r31; + } + if (sp2E48[sp1A0 + 1][sp19C]) { + sp1B0 = sp2E48[sp1A0 + 1][sp19C]; + temp_r31->unk44 = sp1B0; + temp_r31->unk44->unk40 = temp_r31; + } + sp1AC = sp2E48[sp1A0 + 1][sp19C + 1]; + sp1A8 = sp2E48[sp1A0 + 1][sp19C - 1]; + if (temp_r31->unk0 == 5 && temp_r31->unk2C == NULL && temp_r31->unk1C.y <= 8.0f && sp19C - 1 < 9) { + s32 sp198 = temp_r31->unk0 == 5; + sp14C8[temp_r23].unk0 = 5; + sp14C8[temp_r23].unk4[0] = (sp198) ? temp_r31->unk8[0] : temp_r30->unk8[0]; + sp14C8[temp_r23].unk4[1] = (sp198) ? temp_r31->unk8[0] : temp_r30->unk8[1]; + sp14C8[temp_r23].unk4[2] = (sp198) ? temp_r31->unk8[0] : temp_r30->unk8[2]; + sp14C8[temp_r23].unk4[3] = (sp198) ? temp_r31->unk8[0] : temp_r30->unk8[3]; + sp14C8[temp_r23].unk1 = 1; + sp14C8[temp_r23].unk2 = 0; + sp14C8[temp_r23].unk14 = (sp198) ? temp_r31 : temp_r30; + sp14C8[temp_r23].unk18 = (sp198) ? temp_r31 : temp_r30; + sp14C8[temp_r23].unk1C = 0; + if (sp198) { + temp_r31->unk30 = NULL; + temp_r31->unk34 = NULL; + temp_r31->unk2C = &sp14C8[temp_r23]; + } + else { + temp_r30->unk30 = NULL; + temp_r30->unk34 = NULL; + temp_r30->unk2C = &sp14C8[temp_r23]; + } + temp_r23++; + } + for (temp_r29 = 0; temp_r29 < ((temp_r31 && temp_r31->unk0 == 5) ? 2 : 0) + 2; temp_r29++) { + temp_r30 = (temp_r29 == 0) ? temp_r31->unk48 : ((temp_r29 == 1) ? sp1B0 : ((temp_r29 == 2) ? sp1AC : sp1A8)); + if (temp_r30 && (temp_r30->unk1 & 0x1)) { + if (temp_r29 != 1 || temp_r31->unk1C.y == temp_r30->unk1C.y) { + if (temp_r31->unk0 == temp_r30->unk0) { + if ((temp_r31->unk0 >= 1 && temp_r31->unk0 <= 4) + || (temp_r31->unk0 == 5 && (temp_r31->unk1C.y <= 8.0f || temp_r30->unk1C.y <= 8.0f))) { + StructSp14C8 *temp_r28 = temp_r31->unk2C; + StructSp14C8 *temp_r27 = temp_r30->unk2C; + if (temp_r31->unk2C && temp_r30->unk2C) { + if (temp_r31->unk2C != temp_r30->unk2C) { + StructBss2A6C *sp194 = temp_r28->unk14; + StructBss2A6C *sp190 = temp_r27->unk14; + while (1) { + sp190->unk2C = temp_r28; + if (!sp190->unk34) { + break; + } + sp190 = sp190->unk34; + } + temp_r27->unk14->unk30 = temp_r28->unk18; + temp_r28->unk18->unk34 = temp_r27->unk14; + temp_r28->unk4[0] = (temp_r28->unk4[0] > temp_r27->unk4[0]) ? temp_r28->unk4[0] : temp_r27->unk4[0]; + temp_r28->unk4[1] = (temp_r28->unk4[1] > temp_r27->unk4[1]) ? temp_r28->unk4[1] : temp_r27->unk4[1]; + temp_r28->unk4[2] = (temp_r28->unk4[2] > temp_r27->unk4[2]) ? temp_r28->unk4[2] : temp_r27->unk4[2]; + temp_r28->unk4[3] = (temp_r28->unk4[3] > temp_r27->unk4[3]) ? temp_r28->unk4[3] : temp_r27->unk4[3]; + temp_r28->unk1 = temp_r28->unk1 + temp_r27->unk1; + temp_r28->unk2 |= temp_r27->unk2; + temp_r28->unk18 = sp190; + temp_r27->unk14 = temp_r27->unk18 = NULL; + temp_r27->unk1 = 0; + temp_r27->unk0 = 0; + temp_r27->unk1C = temp_r28; + } + } + else { + if (temp_r31->unk2C) { + temp_r30->unk2C = temp_r31->unk2C; + temp_r28->unk18->unk34 = temp_r30; + temp_r30->unk30 = temp_r28->unk18; + temp_r28->unk18 = temp_r30; + temp_r28->unk1++; + temp_r28->unk2 |= temp_r30->unk3; + temp_r28->unk4[0] = (temp_r28->unk4[0] < temp_r30->unk8[0]) ? temp_r30->unk8[0] : temp_r28->unk4[0]; + temp_r28->unk4[1] = (temp_r28->unk4[1] < temp_r30->unk8[1]) ? temp_r30->unk8[1] : temp_r28->unk4[1]; + temp_r28->unk4[2] = (temp_r28->unk4[2] < temp_r30->unk8[2]) ? temp_r30->unk8[2] : temp_r28->unk4[2]; + temp_r28->unk4[3] = (temp_r28->unk4[3] < temp_r30->unk8[3]) ? temp_r30->unk8[3] : temp_r28->unk4[3]; + } + else if (temp_r30->unk2C) { + temp_r31->unk2C = temp_r30->unk2C; + temp_r27->unk18->unk34 = temp_r31; + temp_r31->unk30 = temp_r27->unk18; + temp_r27->unk18 = temp_r31; + temp_r27->unk1++; + temp_r27->unk2 |= temp_r31->unk3; + temp_r27->unk4[0] = (temp_r27->unk4[0] < temp_r31->unk8[0]) ? temp_r31->unk8[0] : temp_r27->unk4[0]; + temp_r27->unk4[1] = (temp_r27->unk4[1] < temp_r31->unk8[1]) ? temp_r31->unk8[1] : temp_r27->unk4[1]; + temp_r27->unk4[2] = (temp_r27->unk4[2] < temp_r31->unk8[2]) ? temp_r31->unk8[2] : temp_r27->unk4[2]; + temp_r27->unk4[3] = (temp_r27->unk4[3] < temp_r31->unk8[3]) ? temp_r31->unk8[3] : temp_r27->unk4[3]; + } + else { + sp14C8[temp_r23].unk0 = temp_r31->unk0; + sp14C8[temp_r23].unk4[0] + = (temp_r31->unk8[0] > temp_r30->unk8[0]) ? temp_r31->unk8[0] : temp_r30->unk8[0]; + sp14C8[temp_r23].unk4[1] + = (temp_r31->unk8[1] > temp_r30->unk8[1]) ? temp_r31->unk8[1] : temp_r30->unk8[1]; + sp14C8[temp_r23].unk4[2] + = (temp_r31->unk8[2] > temp_r30->unk8[2]) ? temp_r31->unk8[2] : temp_r30->unk8[2]; + sp14C8[temp_r23].unk4[3] + = (temp_r31->unk8[3] > temp_r30->unk8[3]) ? temp_r31->unk8[3] : temp_r30->unk8[3]; + sp14C8[temp_r23].unk1 = 2; + sp14C8[temp_r23].unk2 = (temp_r31->unk3 | temp_r30->unk3); + sp14C8[temp_r23].unk14 = temp_r31; + sp14C8[temp_r23].unk18 = temp_r30; + sp14C8[temp_r23].unk1C = NULL; + temp_r31->unk30 = NULL; + temp_r31->unk34 = temp_r30; + temp_r30->unk30 = temp_r31; + temp_r30->unk34 = NULL; + temp_r31->unk2C = &sp14C8[temp_r23]; + temp_r30->unk2C = &sp14C8[temp_r23]; + temp_r23++; + } + } + } + } + } + } + } + } + } + } + for (temp_r29 = 0; temp_r29 < temp_r23; temp_r29++) { + StructBss2A6C *sp18C; + if (sp14C8[temp_r29].unk0 != 5) { + continue; + } + sp18C = sp14C8[temp_r29].unk14; + for (temp_r19 = 0; temp_r19 < sp14C8[temp_r29].unk1; temp_r19++) { + s32 temp_r24 = sp18C->unk18 + 1; + s32 temp_r25 = (int)sp18C->unk1C.y + 1; + if (sp14C8[temp_r29].unk0 != 0 && temp_r25 <= 9) { + if (!CHECK_2E48(temp_r24, temp_r25, sp2E48)) { + sp14C8[temp_r29].unk0 = 0; + } + else { + sp14C8[temp_r29].unk2 |= ((sp2E48[temp_r24 - 1][temp_r25]) ? sp2E48[temp_r24 - 1][temp_r25]->unk3 : 0) + | ((sp2E48[temp_r24 + 1][temp_r25]) ? sp2E48[temp_r24 + 1][temp_r25]->unk3 : 0) + | ((sp2E48[temp_r24][temp_r25 - 1]) ? sp2E48[temp_r24][temp_r25 - 1]->unk3 : 0) + | ((sp2E48[temp_r24][temp_r25 + 1]) ? sp2E48[temp_r24][temp_r25 + 1]->unk3 : 0) + | ((sp2E48[temp_r24 + 1][temp_r25 - 1]) ? sp2E48[temp_r24 + 1][temp_r25 - 1]->unk3 : 0) + | ((sp2E48[temp_r24 + 1][temp_r25 + 1]) ? sp2E48[temp_r24 + 1][temp_r25 + 1]->unk3 : 0) + | ((sp2E48[temp_r24 - 1][temp_r25 - 1]) ? sp2E48[temp_r24 - 1][temp_r25 - 1]->unk3 : 0) + | ((sp2E48[temp_r24 - 1][temp_r25 + 1]) ? sp2E48[temp_r24 - 1][temp_r25 + 1]->unk3 : 0); + } + sp18C = sp18C->unk34; + if (!sp18C) { + break; + } + } + } + } + for (temp_r29 = 0; temp_r29 < temp_r23; temp_r29++) { + if ((sp14C8[temp_r29].unk0 >= 1 && sp14C8[temp_r29].unk0 <= 4 && sp14C8[temp_r29].unk1 >= 3) || sp14C8[temp_r29].unk0 == 5) { + fn_1_38C(&sp14C8[temp_r29].unk2, sp14C8[temp_r29].unk4); + } + } + sp1B4 = 1; + while (sp1B4 >= 0) { + s32 temp_r22 = 0; + s32 sp188 = 0; + for (temp_r29 = 0; temp_r29 < temp_r23; temp_r29++) { + if ((!sp1B4 && (sp14C8[temp_r29].unk0 >= 1 && sp14C8[temp_r29].unk0 <= 4 && sp14C8[temp_r29].unk1 >= 3)) + || (sp1B4 == 1 && sp14C8[temp_r29].unk0 == 5)) { + StructBss2A6C *temp_r26 = sp14C8[temp_r29].unk14; + s32 sp184 = 0; + s32 sp180 = 0; + float temp_f31 = -1; + float temp_f30 = -1; + if (sp14C8[temp_r29].unk0 == 5) { + lbl_1_bss_D0++; + lbl_1_bss_D0 %= 5; + lbl_1_bss_D4[lbl_1_bss_D0][1] = 1; + lbl_1_bss_D4[lbl_1_bss_D0][0] = 0; + for (temp_r19 = 0; temp_r19 < 10; temp_r19++) { + Hu3DModelAttrSet(lbl_1_bss_30->model[((lbl_1_bss_D0 * 10) + 13 + temp_r19)], 1); + } + } + for (temp_r19 = 0; temp_r19 < sp14C8[temp_r29].unk1; temp_r19++) { + if (-1.0f == temp_f31) { + sp180 = 1; + temp_f31 = temp_r26->unk18; + temp_f30 = temp_r26->unk1C.y; + } + else { + sp180++; + temp_f31 = (temp_f31 * (1.0 - (1.0 / sp180))) + (temp_r26->unk18 * (1.0 / sp180)); + temp_f30 = (temp_f30 * (1.0 - (1.0 / sp180))) + (temp_r26->unk1C.y * (1.0 / sp180)); + } + if (sp14C8[temp_r29].unk0 == 5) { + if (lbl_1_bss_D4[lbl_1_bss_D0][0] < 10) { + Hu3DModelPosSet(lbl_1_bss_30->model[((lbl_1_bss_D0 * 10) + 13 + lbl_1_bss_D4[lbl_1_bss_D0][0])], + (((temp_r26->unk18 * 100) - 500.0) - 50.0), 50.0f + ((100.0f * temp_r26->unk1C.y) - 500.0f), 120); + Hu3DModelAttrReset(lbl_1_bss_30->model[((lbl_1_bss_D0 * 10) + 13 + lbl_1_bss_D4[lbl_1_bss_D0][0])], 1); + Hu3DMotionTimeSet(lbl_1_bss_30->model[((lbl_1_bss_D0 * 10) + 13 + lbl_1_bss_D4[lbl_1_bss_D0][0])], 2.0f); + lbl_1_bss_D4[lbl_1_bss_D0][0]++; + lbl_1_bss_B8.unk4 += 4; + if (lbl_1_bss_D4[lbl_1_bss_D0][0] == 1) { + lbl_1_bss_B8.unk4 += 7; + } + } + fn_1_8AC8(temp_r26->unk38, &sp14C8[temp_r29]); + fn_1_8AC8((temp_r26->unk44 && temp_r26->unk44->unk38) ? temp_r26->unk44->unk38 : temp_r26->unk44, &sp14C8[temp_r29]); + fn_1_8AC8((temp_r26->unk40 && temp_r26->unk40->unk38) ? temp_r26->unk40->unk38 : temp_r26->unk40, &sp14C8[temp_r29]); + spD58[temp_r22] = temp_r26->unk38; + temp_r22++; + spD58[temp_r22] = temp_r26->unk3C; + temp_r22++; + if (temp_r26->unk44) { + spD58[temp_r22] = temp_r26->unk44->unk38; + temp_r22++; + spD58[temp_r22] = temp_r26->unk44->unk3C; + temp_r22++; + } + spD58[temp_r22] = temp_r26->unk44; + temp_r22++; + if (temp_r26->unk40) { + spD58[temp_r22] = temp_r26->unk40->unk38; + temp_r22++; + spD58[temp_r22] = temp_r26->unk40->unk3C; + temp_r22++; + } + spD58[temp_r22] = temp_r26->unk40; + temp_r22++; + spD58[temp_r22] = temp_r26; + temp_r22++; + } + else { + fn_1_8AC8(temp_r26, &sp14C8[temp_r29]); + sp184 += fn_1_7F8(temp_r26, &sp14C8[temp_r29]); + } + temp_r26 = temp_r26->unk34; + if (!temp_r26) { + break; + } + } + if (sp14C8[temp_r29].unk0 == 5 && (sp14C8[temp_r29].unk2 & 0xF)) { + Work19C8 *sp220[4]; + s32 sp17C; + for (sp17C = 0; sp17C < 4; sp17C++) { + if ((1 << sp17C) & (sp14C8[temp_r29].unk2)) { + sp220[sp17C] = lbl_1_bss_34[sp17C]->data; + omVibrate(sp220[sp17C]->unk14, 12, 6, 6); + } + } + } + if (lbl_1_bss_48[(sp14C8[temp_r29].unk0 == 5) ? 0 : 1].unk0 < 3) { + lbl_1_bss_48[(sp14C8[temp_r29].unk0 == 5) ? 0 : 1].unk4[lbl_1_bss_48[(sp14C8[temp_r29].unk0 == 5) ? 0 : 1].unk0] + = 0.45 * (((temp_f31 - 5.0) - 0.5) / 5.5); + lbl_1_bss_48[(sp14C8[temp_r29].unk0 == 5) ? 0 : 1].unk0++; + } + if (sp1B4 == 0 && sp184 > 0 && lbl_1_bss_18 == -1) { + s32 sp178 = 0; + s32 sp174 = fn_1_4C0(&sp14C8[temp_r29].unk2, sp14C8[temp_r29].unk4); + Vec sp214 = { 0, 0, 50 }; + s32 temp_r17; + for (temp_r17 = 0; temp_r17 < 4; temp_r17++) { + sp178 += ((1 << temp_r17) != 0) & sp14C8[temp_r29].unk2; + } + sp178--; + sp214.x = (100.0f * temp_f31) - 500.0; + sp214.y = 100 + ((100 * temp_f30) - 500); + sp214.x += sp178 * 12; + sp214.y -= sp178 * 30; + for (temp_r17 = 3; temp_r17 >= 0; temp_r17--) { + if ((1 << temp_r17) & sp14C8[temp_r29].unk2) { + Vec sp208; + lbl_1_bss_2684[lbl_1_bss_2680].unkC = 1; + lbl_1_bss_2684[lbl_1_bss_2680].unk8 = sp184; + lbl_1_bss_2684[lbl_1_bss_2680].unk10 = 1 << temp_r17; + Hu3D3Dto2D(&sp214, 1, &sp208); + lbl_1_bss_2684[lbl_1_bss_2680].unk0 = sp208.x; + lbl_1_bss_2684[lbl_1_bss_2680].unk4 = sp208.y; + lbl_1_bss_2680++; + lbl_1_bss_2680 %= 50; + sp214.x -= 24.0f; + sp214.y += 60.0f; + } + } + sp174 = (sp174 > 3) ? 3 : sp174; + if (lbl_1_bss_48[sp174 + 3].unk0 < 3) { + lbl_1_bss_48[sp174 + 3].unk4[lbl_1_bss_48[sp174 + 3].unk0] = 0.45 * (((temp_f31 - 5.0) - 0.5) / 5.5); + lbl_1_bss_48[sp174 + 3].unk0++; + } + } + spA28[sp188] = &sp14C8[temp_r29]; + sp230[sp188] = temp_r22; + sp6F8[sp188] = temp_f31; + sp3C8[sp188] = temp_f30; + sp188++; + } + } + for (temp_r29 = 0; temp_r29 < sp188; temp_r29++) { + s32 sp170 = 0; + + for (temp_r19 = (temp_r29 < 1) ? 0 : sp230[temp_r29 - 1]; temp_r19 < sp230[temp_r29]; temp_r19++) { + sp170 += fn_1_7F8(spD58[temp_r19], spA28[temp_r29]); + } + if (sp1B4 == 1 && sp170 > 0 && lbl_1_bss_18 == -1) { + s32 sp16C; + s32 sp168 = 0; + s32 sp164 = fn_1_4C0(&spA28[temp_r29]->unk2, spA28[temp_r29]->unk4); + Vec sp1FC = { 0, 0, 50 }; + for (sp16C = 0; sp16C < 4; sp16C++) { + sp168 += ((1 << sp16C) != 0) & spA28[temp_r29]->unk2; + } + sp168--; + sp1FC.x = (100.0f * sp6F8[temp_r29]) - 500.0; + sp1FC.y = 100 + ((100 * sp3C8[temp_r29]) - 500); + sp1FC.x += sp168 * 12; + sp1FC.y -= sp168 * 30; + for (sp16C = 3; sp16C >= 0; sp16C--) { + if ((1 << sp16C) & spA28[temp_r29]->unk2) { + Vec sp1F0; + lbl_1_bss_2684[lbl_1_bss_2680].unkC = 1; + lbl_1_bss_2684[lbl_1_bss_2680].unk8 = sp170; + lbl_1_bss_2684[lbl_1_bss_2680].unk10 = 1 << sp16C; + Hu3D3Dto2D(&sp1FC, 1, &sp1F0); + lbl_1_bss_2684[lbl_1_bss_2680].unk0 = sp1F0.x; + lbl_1_bss_2684[lbl_1_bss_2680].unk4 = sp1F0.y; + lbl_1_bss_2680++; + lbl_1_bss_2680 %= 50; + sp1FC.x -= 24.0f; + sp1FC.y += 60.0f; + } + } + sp164 = (sp164 > 3) ? 3 : sp164; + if (lbl_1_bss_48[sp164 + 3].unk0 < 3) { + lbl_1_bss_48[sp164 + 3].unk4[lbl_1_bss_48[sp164 + 3].unk0] = 0.45 * (((sp6F8[temp_r29] - 5.0) - 0.5) / 5.5); + lbl_1_bss_48[sp164 + 3].unk0++; + } + } + } + sp1B4--; + } + } } #undef CHECK_2E48 void fn_1_8AC8(StructBss2A6C *arg0, StructSp14C8 *arg1) { - StructBss2A6C *temp_r31 = arg0; - if(!arg0) { - return; - } - if(arg0->unk0 == 0) { - return; - } - while(temp_r31->unk48) { - if(!temp_r31->unk48->unk0 || (temp_r31->unk48->unk1 & 0x1) == 0 || temp_r31->unk48->unk1C.y != temp_r31->unk1C.y+1.0f) { - break; - } - temp_r31 = temp_r31->unk48; - temp_r31->unk8[0] = arg1->unk4[0]+((arg1->unk2 & 0x1) ? 1 : 0); - temp_r31->unk8[1] = arg1->unk4[1]+((arg1->unk2 & 0x2) ? 1 : 0); - temp_r31->unk8[2] = arg1->unk4[2]+((arg1->unk2 & 0x4) ? 1 : 0); - temp_r31->unk8[3] = arg1->unk4[3]+((arg1->unk2 & 0x8) ? 1 : 0); - temp_r31->unk3 = arg1->unk2; - - } + StructBss2A6C *temp_r31 = arg0; + if (!arg0) { + return; + } + if (arg0->unk0 == 0) { + return; + } + while (temp_r31->unk48) { + if (!temp_r31->unk48->unk0 || (temp_r31->unk48->unk1 & 0x1) == 0 || temp_r31->unk48->unk1C.y != temp_r31->unk1C.y + 1.0f) { + break; + } + temp_r31 = temp_r31->unk48; + temp_r31->unk8[0] = arg1->unk4[0] + ((arg1->unk2 & 0x1) ? 1 : 0); + temp_r31->unk8[1] = arg1->unk4[1] + ((arg1->unk2 & 0x2) ? 1 : 0); + temp_r31->unk8[2] = arg1->unk4[2] + ((arg1->unk2 & 0x4) ? 1 : 0); + temp_r31->unk8[3] = arg1->unk4[3] + ((arg1->unk2 & 0x8) ? 1 : 0); + temp_r31->unk3 = arg1->unk2; + } } -//decomp.me link is https://decomp.me/scratch/PbkiW +// decomp.me link is https://decomp.me/scratch/PbkiW void fn_1_8C10(omObjData *object) { - s32 temp_r31; - s32 temp_r30; - - Work19C8 *sp88[4]; - lbl_1_bss_4++; - { - s32 temp_r23; - for(temp_r23=0; temp_r23<4; temp_r23++) { - fn_1_19C8(lbl_1_bss_34[temp_r23]); - fn_1_52A4(temp_r23); - } - } - - fn_1_52A4(4); - for(temp_r31=0; temp_r31<4; temp_r31++) { - sp88[temp_r31] = lbl_1_bss_34[temp_r31]->data; - } - if(lbl_1_bss_18 == -1) { - if(sp88[0]->unk24 >= 100 || sp88[1]->unk24 >= 100 || sp88[2]->unk24 >= 100 || sp88[3]->unk24 >= 100) { - s32 sp78[4] = { 0, 1, 2, 3 }; - for(temp_r31=0; temp_r31<4; temp_r31++) { - s32 temp_r22 = rand8()%4; - if(sp88[temp_r22]->unk24 >= 100) { - lbl_1_bss_18 = temp_r22; - for(temp_r30=0; temp_r30<4; temp_r30++) { - if(temp_r30 != temp_r22) { - if(sp88[temp_r30]->unk24 >= 100) { - sp88[temp_r30]->unk24 = sp88[temp_r30]->unk28; - } - } - } - } else { - for(temp_r30=temp_r22; temp_r30<3-temp_r31; temp_r30++) { - sp78[temp_r30] = sp78[temp_r30+1]; - } - } - } - } - } - temp_r31 = (sp88[0]->unk79 != 0)+(sp88[1]->unk79 != 0)+(sp88[2]->unk79 != 0)+(sp88[3]->unk79 != 0); - if(lbl_1_bss_18 == -1 && temp_r31 == 3) { - for(temp_r30=0; temp_r30<4; temp_r30++) { - if(!sp88[temp_r30]->unk78) { - lbl_1_bss_18 = temp_r30; - } - } - } - if(lbl_1_bss_18 == -1 && temp_r31 == 4) { - lbl_1_bss_18 = 4; - } - if(lbl_1_bss_18 != -1) { - for(temp_r31=0; temp_r31<4; temp_r31++) { - if(sp88[temp_r31]->unk48[0]) { - sp88[temp_r31]->unk48[0]->unk1 &= ~0x2; - } - if(sp88[temp_r31]->unk48[1]) { - sp88[temp_r31]->unk48[1]->unk1 &= ~0x2; - } - sp88[temp_r31]->unk48[0] = NULL; - sp88[temp_r31]->unk48[1] = NULL; - } - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - sp88[temp_r31]->unk44 = (sp88[temp_r31]->unk40 == sp88[temp_r31]->unk24) ? sp88[temp_r31]->unk44+1 : 0; - sp88[temp_r31]->unk40 += (sp88[temp_r31]->unk40 < sp88[temp_r31]->unk24) ? 0.375 : 0; - sp88[temp_r31]->unk40 = (sp88[temp_r31]->unk40 > sp88[temp_r31]->unk24) ? (float)sp88[temp_r31]->unk24 : sp88[temp_r31]->unk40; - for(temp_r30=0; temp_r30<3; temp_r30++) { - float temp_f28 = sp88[temp_r31]->unk40; - float sp4C = (s32)(temp_f28/100.0f)%10; - float temp_f22 = (s32)(temp_f28/10.0f)%10; - float temp_f24 = ((s32)temp_f28)%10; - float temp_f23 = temp_f28-(s32)temp_f28; - float temp_f25 = (temp_r30 == 0) ? ((sp88[temp_r31]->unk24/100)%10) : ((temp_r30 == 1) ? ((sp88[temp_r31]->unk24/10)%10) : sp88[temp_r31]->unk24%10); - s32 sp98[5] = { 0, 15, -9, 3, 0 }; - switch(temp_r30) { - case 0: - temp_f25 = sp4C+(temp_f23*((9.0f == temp_f24 && 9.0f == temp_f22) ? 1.0 : 0.0)); - break; - - case 1: - temp_f25 = temp_f22+(temp_f23*((9.0f == temp_f24) ? 1.0 : 0.0)); - break; - - case 2: - temp_f25 = temp_f24+temp_f23; - break; - } - Hu3DModelRotSet(lbl_1_bss_34[temp_r31]->model[temp_r30+1], 36.0f*temp_f25, 0, 0); - } - } - { - s32 spAC[8][3] = { - 255,64,64, - 32,192,255, - 255,128,255, - 32,208,32, - 224,32,224, - 230,128,32, - 255,240,32, - 160,160,160 - }; - s32 temp_r29 = lbl_1_bss_2680; - s32 temp_r28 = 0; - Work19C8 *sp68[4]; - for(temp_r28=0; temp_r28<4; temp_r28++) { - sp68[temp_r28] = lbl_1_bss_34[temp_r28]->data; - } - do { - temp_r29--; - temp_r29 = (temp_r29 < 0) ? temp_r29+50 : temp_r29; - if(lbl_1_bss_2684[temp_r29].unkC == 0 || (lbl_1_bss_2684[temp_r29].unk10 & 0xF) == 0) { - HuSprAttrSet(lbl_1_bss_14, temp_r28, HUSPR_ATTR_DISPOFF); - } else { - s32 temp_r26 = 0; - u32 temp_r19; - s32 temp_r18; - - s32 temp_r24; - - s32 sp58[4]; - temp_r18 = ((lbl_1_bss_2684[temp_r29].unk8 >= 10) ? 2 : 1)+1; - if(lbl_1_bss_2684[temp_r29].unk10 & 0x1) { - sp58[temp_r26] = 0; - temp_r26++; - } - if(lbl_1_bss_2684[temp_r29].unk10 & 0x2) { - sp58[temp_r26] = 1; - temp_r26++; - } - if(lbl_1_bss_2684[temp_r29].unk10 & 0x4) { - sp58[temp_r26] = 2; - temp_r26++; - } - if(lbl_1_bss_2684[temp_r29].unk10 & 0x8) { - sp58[temp_r26] = 3; - temp_r26++; - } - temp_r19 = sp68[sp58[lbl_1_bss_4%temp_r26]]->unk18; - for(temp_r24=0; temp_r24 0; - if(lbl_1_bss_2684[temp_r29].unkC >= 40) { - lbl_1_bss_2684[temp_r29].unkC = 0; - } - - } while(temp_r29 != lbl_1_bss_2680); - for(; temp_r28<150; temp_r28++) { - HuSprAttrSet(lbl_1_bss_14, temp_r28, HUSPR_ATTR_DISPOFF); - } - } - { - s32 temp_r27 = lbl_1_bss_FC; - s32 temp_r25; - s32 temp_r17; - for(temp_r17=0; temp_r17<300; temp_r17++) { - temp_r27 = temp_r27+1; - temp_r27 %= 300; - if(!lbl_1_bss_100[temp_r27].unk0) { - continue; - } - lbl_1_bss_100[temp_r27].unk4.x += lbl_1_bss_100[temp_r27].unk10.x; - lbl_1_bss_100[temp_r27].unk4.y += lbl_1_bss_100[temp_r27].unk10.y; - lbl_1_bss_100[temp_r27].unk4.z += lbl_1_bss_100[temp_r27].unk10.z; - lbl_1_bss_100[temp_r27].unk10.y += -1.5; - if(lbl_1_bss_100[temp_r27].unk4.y < -1000.0f) { - lbl_1_bss_100[temp_r27].unk0 = 0; - } - lbl_1_bss_100[temp_r27].unk1C += 9; - } - for(temp_r25=0; temp_r25<5; temp_r25++) { - if(lbl_1_bss_D4[temp_r25][0] > 0) { - lbl_1_bss_D4[temp_r25][1]++; - if(lbl_1_bss_D4[temp_r25][1] > 30) { - s32 temp_r21; - lbl_1_bss_D4[temp_r25][0] = 0; - lbl_1_bss_D4[temp_r25][1] = 0; - for(temp_r21=0; temp_r21<10; temp_r21++) { - Hu3DModelAttrSet(object->model[(temp_r25*10)+13+temp_r21], 1); - } - } - } - } - if(lbl_1_bss_44->work[0] >= 1002) { - float temp_f27 = 0; - float temp_f26 = 0; - if(lbl_1_bss_B8.unk0 % 2 >= 0) { - lbl_1_bss_B8.unk8 = lbl_1_bss_B8.unkC.y; - lbl_1_bss_B8.unkC.x = lbl_1_bss_B8.unkC.z; - do { - lbl_1_bss_B8.unkC.y = (2.0*(rand8()/255.0))-1.0; - lbl_1_bss_B8.unkC.z = (2.0*(rand8()/255.0))-1.0; - lbl_1_bss_B8.unkC.y = 0; - } while(VECMagPoint(lbl_1_bss_B8.unkC.y-lbl_1_bss_B8.unk8, lbl_1_bss_B8.unkC.z-lbl_1_bss_B8.unkC.x, 0) < 0.75); - } - temp_f27 = lbl_1_bss_B8.unk8; - temp_f26 = lbl_1_bss_B8.unkC.x; - temp_f27 *= lbl_1_bss_B8.unk4*2; - temp_f26 *= lbl_1_bss_B8.unk4*2; - lbl_1_bss_B8.unk0 = lbl_1_bss_B8.unk0 == 0; - lbl_1_bss_B8.unk4 = (lbl_1_bss_B8.unk4 > 24) ? 23 : ((lbl_1_bss_B8.unk4-1 > 0) ? lbl_1_bss_B8.unk4-1 : 0); - Hu3DCameraPosSet(1, temp_f27, 37.139069+temp_f26, 2599.7346f, 0, 1, 0, temp_f27, 50.0f+temp_f26, 0); - } - if(lbl_1_bss_18 != -1) { - float temp_f30; - s32 temp_r20; - lbl_1_bss_10++; - temp_f30 = 1.0f-((lbl_1_bss_10 > 180) ? 1.0f : (lbl_1_bss_10/180.0f)); - Hu3DMotionSpeedSet(lbl_1_bss_30->model[0], 0.5*temp_f30); - for(temp_r20=0; temp_r20<4; temp_r20++) { - Hu3DMotionSpeedSet(lbl_1_bss_34[temp_r20]->model[5], 0.5*temp_f30); - } - if(temp_f30 > 0.0f && lbl_1_data_4[0] != -1) { - HuAudFXPitchSet(lbl_1_data_4[0], -8192.0f+(8192.0f*temp_f30)); - HuAudFXPitchSet(lbl_1_data_4[1], -8192.0f+(8192.0f*temp_f30)); - HuAudFXVolSet(lbl_1_data_4[0], 63.0f+(64.0f*temp_f30)); - HuAudFXVolSet(lbl_1_data_4[1], 63.0f+(64.0f*temp_f30)); - } else { - if(lbl_1_data_4[0] != -1) { - HuAudFXStop(lbl_1_data_4[0]); - HuAudFXStop(lbl_1_data_4[1]); - lbl_1_data_4[0] = lbl_1_data_4[1] = -1; - - } - } - } - } + s32 temp_r31; + s32 temp_r30; + + Work19C8 *sp88[4]; + lbl_1_bss_4++; + { + s32 temp_r23; + for (temp_r23 = 0; temp_r23 < 4; temp_r23++) { + fn_1_19C8(lbl_1_bss_34[temp_r23]); + fn_1_52A4(temp_r23); + } + } + + fn_1_52A4(4); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + sp88[temp_r31] = lbl_1_bss_34[temp_r31]->data; + } + if (lbl_1_bss_18 == -1) { + if (sp88[0]->unk24 >= 100 || sp88[1]->unk24 >= 100 || sp88[2]->unk24 >= 100 || sp88[3]->unk24 >= 100) { + s32 sp78[4] = { 0, 1, 2, 3 }; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + s32 temp_r22 = rand8() % 4; + if (sp88[temp_r22]->unk24 >= 100) { + lbl_1_bss_18 = temp_r22; + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + if (temp_r30 != temp_r22) { + if (sp88[temp_r30]->unk24 >= 100) { + sp88[temp_r30]->unk24 = sp88[temp_r30]->unk28; + } + } + } + } + else { + for (temp_r30 = temp_r22; temp_r30 < 3 - temp_r31; temp_r30++) { + sp78[temp_r30] = sp78[temp_r30 + 1]; + } + } + } + } + } + temp_r31 = (sp88[0]->unk79 != 0) + (sp88[1]->unk79 != 0) + (sp88[2]->unk79 != 0) + (sp88[3]->unk79 != 0); + if (lbl_1_bss_18 == -1 && temp_r31 == 3) { + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + if (!sp88[temp_r30]->unk78) { + lbl_1_bss_18 = temp_r30; + } + } + } + if (lbl_1_bss_18 == -1 && temp_r31 == 4) { + lbl_1_bss_18 = 4; + } + if (lbl_1_bss_18 != -1) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + if (sp88[temp_r31]->unk48[0]) { + sp88[temp_r31]->unk48[0]->unk1 &= ~0x2; + } + if (sp88[temp_r31]->unk48[1]) { + sp88[temp_r31]->unk48[1]->unk1 &= ~0x2; + } + sp88[temp_r31]->unk48[0] = NULL; + sp88[temp_r31]->unk48[1] = NULL; + } + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + sp88[temp_r31]->unk44 = (sp88[temp_r31]->unk40 == sp88[temp_r31]->unk24) ? sp88[temp_r31]->unk44 + 1 : 0; + sp88[temp_r31]->unk40 += (sp88[temp_r31]->unk40 < sp88[temp_r31]->unk24) ? 0.375 : 0; + sp88[temp_r31]->unk40 = (sp88[temp_r31]->unk40 > sp88[temp_r31]->unk24) ? (float)sp88[temp_r31]->unk24 : sp88[temp_r31]->unk40; + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + float temp_f28 = sp88[temp_r31]->unk40; + float sp4C = (s32)(temp_f28 / 100.0f) % 10; + float temp_f22 = (s32)(temp_f28 / 10.0f) % 10; + float temp_f24 = ((s32)temp_f28) % 10; + float temp_f23 = temp_f28 - (s32)temp_f28; + float temp_f25 = (temp_r30 == 0) ? ((sp88[temp_r31]->unk24 / 100) % 10) + : ((temp_r30 == 1) ? ((sp88[temp_r31]->unk24 / 10) % 10) : sp88[temp_r31]->unk24 % 10); + s32 sp98[5] = { 0, 15, -9, 3, 0 }; + switch (temp_r30) { + case 0: + temp_f25 = sp4C + (temp_f23 * ((9.0f == temp_f24 && 9.0f == temp_f22) ? 1.0 : 0.0)); + break; + + case 1: + temp_f25 = temp_f22 + (temp_f23 * ((9.0f == temp_f24) ? 1.0 : 0.0)); + break; + + case 2: + temp_f25 = temp_f24 + temp_f23; + break; + } + Hu3DModelRotSet(lbl_1_bss_34[temp_r31]->model[temp_r30 + 1], 36.0f * temp_f25, 0, 0); + } + } + { + s32 spAC[8][3] = { 255, 64, 64, 32, 192, 255, 255, 128, 255, 32, 208, 32, 224, 32, 224, 230, 128, 32, 255, 240, 32, 160, 160, 160 }; + s32 temp_r29 = lbl_1_bss_2680; + s32 temp_r28 = 0; + Work19C8 *sp68[4]; + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + sp68[temp_r28] = lbl_1_bss_34[temp_r28]->data; + } + do { + temp_r29--; + temp_r29 = (temp_r29 < 0) ? temp_r29 + 50 : temp_r29; + if (lbl_1_bss_2684[temp_r29].unkC == 0 || (lbl_1_bss_2684[temp_r29].unk10 & 0xF) == 0) { + HuSprAttrSet(lbl_1_bss_14, temp_r28, HUSPR_ATTR_DISPOFF); + } + else { + s32 temp_r26 = 0; + u32 temp_r19; + s32 temp_r18; + + s32 temp_r24; + + s32 sp58[4]; + temp_r18 = ((lbl_1_bss_2684[temp_r29].unk8 >= 10) ? 2 : 1) + 1; + if (lbl_1_bss_2684[temp_r29].unk10 & 0x1) { + sp58[temp_r26] = 0; + temp_r26++; + } + if (lbl_1_bss_2684[temp_r29].unk10 & 0x2) { + sp58[temp_r26] = 1; + temp_r26++; + } + if (lbl_1_bss_2684[temp_r29].unk10 & 0x4) { + sp58[temp_r26] = 2; + temp_r26++; + } + if (lbl_1_bss_2684[temp_r29].unk10 & 0x8) { + sp58[temp_r26] = 3; + temp_r26++; + } + temp_r19 = sp68[sp58[lbl_1_bss_4 % temp_r26]]->unk18; + for (temp_r24 = 0; temp_r24 < temp_r18; temp_r28++, temp_r24++) { + HuSprPosSet(lbl_1_bss_14, temp_r28, (temp_r24 * 14) + (lbl_1_bss_2684[temp_r29].unk0 - ((temp_r18 * 14) / 2)), + lbl_1_bss_2684[temp_r29].unk4 - lbl_1_bss_2684[temp_r29].unkC); + HuSprAttrReset(lbl_1_bss_14, temp_r28, HUSPR_ATTR_DISPOFF); + HuSprColorSet(lbl_1_bss_14, temp_r28, spAC[temp_r19][0], spAC[temp_r19][1], spAC[temp_r19][2]); + HuSprTPLvlSet(lbl_1_bss_14, temp_r28, + (lbl_1_bss_2684[temp_r29].unkC <= 30) ? 1.0f : (1.0f - ((lbl_1_bss_2684[temp_r29].unkC - 30) / 10.0f))); + HuSprBankSet(lbl_1_bss_14, temp_r28, + (temp_r24 == 0) + ? 10 + : ((temp_r24 == 2 || temp_r18 == 2) ? lbl_1_bss_2684[temp_r29].unk8 % 10 : ((lbl_1_bss_2684[temp_r29].unk8 / 10) % 10))); + } + } + lbl_1_bss_2684[temp_r29].unkC += lbl_1_bss_2684[temp_r29].unkC > 0; + if (lbl_1_bss_2684[temp_r29].unkC >= 40) { + lbl_1_bss_2684[temp_r29].unkC = 0; + } + + } while (temp_r29 != lbl_1_bss_2680); + for (; temp_r28 < 150; temp_r28++) { + HuSprAttrSet(lbl_1_bss_14, temp_r28, HUSPR_ATTR_DISPOFF); + } + } + { + s32 temp_r27 = lbl_1_bss_FC; + s32 temp_r25; + s32 temp_r17; + for (temp_r17 = 0; temp_r17 < 300; temp_r17++) { + temp_r27 = temp_r27 + 1; + temp_r27 %= 300; + if (!lbl_1_bss_100[temp_r27].unk0) { + continue; + } + lbl_1_bss_100[temp_r27].unk4.x += lbl_1_bss_100[temp_r27].unk10.x; + lbl_1_bss_100[temp_r27].unk4.y += lbl_1_bss_100[temp_r27].unk10.y; + lbl_1_bss_100[temp_r27].unk4.z += lbl_1_bss_100[temp_r27].unk10.z; + lbl_1_bss_100[temp_r27].unk10.y += -1.5; + if (lbl_1_bss_100[temp_r27].unk4.y < -1000.0f) { + lbl_1_bss_100[temp_r27].unk0 = 0; + } + lbl_1_bss_100[temp_r27].unk1C += 9; + } + for (temp_r25 = 0; temp_r25 < 5; temp_r25++) { + if (lbl_1_bss_D4[temp_r25][0] > 0) { + lbl_1_bss_D4[temp_r25][1]++; + if (lbl_1_bss_D4[temp_r25][1] > 30) { + s32 temp_r21; + lbl_1_bss_D4[temp_r25][0] = 0; + lbl_1_bss_D4[temp_r25][1] = 0; + for (temp_r21 = 0; temp_r21 < 10; temp_r21++) { + Hu3DModelAttrSet(object->model[(temp_r25 * 10) + 13 + temp_r21], 1); + } + } + } + } + if (lbl_1_bss_44->work[0] >= 1002) { + float temp_f27 = 0; + float temp_f26 = 0; + if (lbl_1_bss_B8.unk0 % 2 >= 0) { + lbl_1_bss_B8.unk8 = lbl_1_bss_B8.unkC.y; + lbl_1_bss_B8.unkC.x = lbl_1_bss_B8.unkC.z; + do { + lbl_1_bss_B8.unkC.y = (2.0 * (rand8() / 255.0)) - 1.0; + lbl_1_bss_B8.unkC.z = (2.0 * (rand8() / 255.0)) - 1.0; + lbl_1_bss_B8.unkC.y = 0; + } while (VECMagPoint(lbl_1_bss_B8.unkC.y - lbl_1_bss_B8.unk8, lbl_1_bss_B8.unkC.z - lbl_1_bss_B8.unkC.x, 0) < 0.75); + } + temp_f27 = lbl_1_bss_B8.unk8; + temp_f26 = lbl_1_bss_B8.unkC.x; + temp_f27 *= lbl_1_bss_B8.unk4 * 2; + temp_f26 *= lbl_1_bss_B8.unk4 * 2; + lbl_1_bss_B8.unk0 = lbl_1_bss_B8.unk0 == 0; + lbl_1_bss_B8.unk4 = (lbl_1_bss_B8.unk4 > 24) ? 23 : ((lbl_1_bss_B8.unk4 - 1 > 0) ? lbl_1_bss_B8.unk4 - 1 : 0); + Hu3DCameraPosSet(1, temp_f27, 37.139069 + temp_f26, 2599.7346f, 0, 1, 0, temp_f27, 50.0f + temp_f26, 0); + } + if (lbl_1_bss_18 != -1) { + float temp_f30; + s32 temp_r20; + lbl_1_bss_10++; + temp_f30 = 1.0f - ((lbl_1_bss_10 > 180) ? 1.0f : (lbl_1_bss_10 / 180.0f)); + Hu3DMotionSpeedSet(lbl_1_bss_30->model[0], 0.5 * temp_f30); + for (temp_r20 = 0; temp_r20 < 4; temp_r20++) { + Hu3DMotionSpeedSet(lbl_1_bss_34[temp_r20]->model[5], 0.5 * temp_f30); + } + if (temp_f30 > 0.0f && lbl_1_data_4[0] != -1) { + HuAudFXPitchSet(lbl_1_data_4[0], -8192.0f + (8192.0f * temp_f30)); + HuAudFXPitchSet(lbl_1_data_4[1], -8192.0f + (8192.0f * temp_f30)); + HuAudFXVolSet(lbl_1_data_4[0], 63.0f + (64.0f * temp_f30)); + HuAudFXVolSet(lbl_1_data_4[1], 63.0f + (64.0f * temp_f30)); + } + else { + if (lbl_1_data_4[0] != -1) { + HuAudFXStop(lbl_1_data_4[0]); + HuAudFXStop(lbl_1_data_4[1]); + lbl_1_data_4[0] = lbl_1_data_4[1] = -1; + } + } + } + } } void fn_1_D700(omObjData *object); void fn_1_A53C(omObjData *object) { - Work19C8 *sp28[4]; - s32 temp_r31; - for(temp_r31=0; temp_r31<4; temp_r31++) { - sp28[temp_r31] = lbl_1_bss_34[temp_r31]->data; - } - for(temp_r31=0; temp_r31<7; temp_r31++) { - s32 sp38[7] = { - 1422, - 1423, - 1424, - 1425, - 1426, - 1427, - 1428 - }; - if(lbl_1_bss_48[temp_r31].unk0 > 3) { - lbl_1_bss_48[temp_r31].unk0 = 3; - } - if(lbl_1_bss_48[temp_r31].unk0 > 0) { - s32 temp_r19 = HuAudFXPlay(sp38[temp_r31]); - HuAudFXPanning(temp_r19, 0.5+((63*lbl_1_bss_48[temp_r31].unk4[lbl_1_bss_48[temp_r31].unk0-1])+64)); - lbl_1_bss_48[temp_r31].unk0--; - } - } - if(omSysExitReq && !WipeStatGet()) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_D700; - - } - switch(object->work[0]) { - case 1000: - if(!WipeStatGet()) { - s32 temp_r29; - s32 temp_r28; - s32 temp_r27; - s32 temp_r26; - lbl_1_bss_2C++; - if(lbl_1_bss_2C == 10.0f) { - lbl_1_bss_2C = 50.0f; - } - temp_r29 = (lbl_1_bss_2C > 180.0f) ? 255.0 : ((lbl_1_bss_2C > 120.0f) ? (255.0*((lbl_1_bss_2C-120.0f)/60.0)) : 0.0); - temp_r29 = (lbl_1_bss_2C >= 235.0f) ? 255 : ((lbl_1_bss_2C >= 205.0f) ? 192 : ((lbl_1_bss_2C >= 190.0f) ? 128 : (((lbl_1_bss_2C >= 160.0f) ? 64 : 0)))); - Hu3DGLightColorSet(lbl_1_bss_1C, temp_r29, temp_r29, temp_r29, 255); - for(temp_r28=0; temp_r28<4; temp_r28++) { - - Hu3DMotionTimeSet(lbl_1_bss_34[temp_r28]->model[0], 60.0+(40.0*(temp_r29/255.0))); - for(temp_r27=0; temp_r27<3; temp_r27++) { - Hu3DMotionTimeSet(lbl_1_bss_34[temp_r28]->model[temp_r27+1], 60.0+(40.0*(temp_r29/255.0))); - } - Hu3DMotionTimeSet(lbl_1_bss_34[temp_r28]->model[4], 60.0+(40.0*(temp_r29/255.0))); - } - Hu3DMotionSpeedSet(lbl_1_bss_30->model[0], 0.5*((lbl_1_bss_2C < 100.0f) ? 0.0 : ((lbl_1_bss_2C < 320.0f) ? ((lbl_1_bss_2C-100)/220.0) : 1.0))); - for(temp_r26=0; temp_r26<4; temp_r26++) { - Hu3DMotionSpeedSet(lbl_1_bss_34[temp_r26]->model[5], 0.5*((lbl_1_bss_2C < 100.0f) ? 0.0 : ((lbl_1_bss_2C < 280.0f) ? ((lbl_1_bss_2C-100)/180.0) : 1.0))); - } - if(100.0f == lbl_1_bss_2C) { - Hu3DMotionSpeedSet(lbl_1_bss_30->model[1], 1.0f); - omVibrate(sp28[0]->unk14, 12, 4, 2); - omVibrate(sp28[1]->unk14, 12, 4, 2); - omVibrate(sp28[2]->unk14, 12, 4, 2); - omVibrate(sp28[3]->unk14, 12, 4, 2); - HuAudFXPlay(1431); - } - if(145.0f == lbl_1_bss_2C) { - lbl_1_data_4[0] = HuAudFXPlay(1429); - } - if(160.0f == lbl_1_bss_2C) { - lbl_1_data_4[1] = HuAudFXPlay(1430); - } - if(350.0f < lbl_1_bss_2C) { - object->work[0]++; - lbl_1_bss_2C = 0; - } - } - break; - - case 1001: - lbl_1_bss_2C++; - if(5.0f == lbl_1_bss_2C && lbl_1_bss_20 < 0) { - lbl_1_bss_20 = MGSeqStartCreate(); - } - if(lbl_1_bss_2C >= 5.0f && lbl_1_data_0 == -1 && (MGSeqStatGet(lbl_1_bss_20) & 0x10)) { - lbl_1_data_0 = HuAudSeqPlay(71); - } - if(lbl_1_bss_2C >= 5.0f && !MGSeqStatGet(lbl_1_bss_20) && lbl_1_bss_20 >= 0) { - object->work[0]++; - lbl_1_bss_20 = -1; - lbl_1_bss_2C = 0; - } else { - float temp_f26 = (lbl_1_bss_2C > 60.0f) ? 1.0 : ((lbl_1_bss_2C > 0.0f) ? (lbl_1_bss_2C/60.0) : 0.0); - float temp_f27 = 1.0f-temp_f26; - float temp_f31 = 830.0f*temp_f27; - float temp_f30 = (-1792.0f*temp_f27)+(50.0f*temp_f26); - float temp_f29 = (2854.0f*temp_f27)+(3500.0f*temp_f26); - float temp_f25 = ((2578.212*temp_f27)+(2600.0*temp_f26))/VECMagPoint(temp_f31, temp_f30, temp_f29); - temp_f31 *= temp_f25; - temp_f30 *= temp_f25; - temp_f29 *= temp_f25; - Hu3DCameraPosSet(1, temp_f31, temp_f30, temp_f29, -0.05f*temp_f27, 1, 0, 0, 50*temp_f26, 0); - (void)temp_f27; - - } - break; - - case 1002: - if(lbl_1_bss_18 != -1) { - object->work[0] = 1003; - lbl_1_bss_2C = 0; - } - break; - - case 1003: - if(lbl_1_bss_20 < 0 && lbl_1_bss_2C == 0.0f) { - lbl_1_bss_20 = MGSeqFinishCreate(); - for(temp_r31=0; temp_r31<4; temp_r31++) { - Work19C8 *temp_r25= lbl_1_bss_34[temp_r31]->data; - HuSprAttrSet(temp_r25->unkA4, 0, HUSPR_ATTR_DISPOFF); - } - if(lbl_1_data_0 != -1) { - HuAudSeqFadeOut(lbl_1_data_0, 100); - } - } else if(!MGSeqStatGet(lbl_1_bss_20)) { - lbl_1_bss_2C++; - if(lbl_1_bss_2C >= 30.0f){ - object->work[0]++; - lbl_1_bss_2C = 0; - if(lbl_1_bss_18 != 4){ - lbl_1_bss_20 = MGSeqWinCreate(sp28[lbl_1_bss_18]->unk18, -1, -1, -1); - GWPlayerCoinWinSet(sp28[lbl_1_bss_18]->unk14, 10); - HuAudSStreamPlay(1); - } else if(lbl_1_bss_18 == 4) { - lbl_1_bss_20 = MGSeqDrawCreate(); - HuAudSStreamPlay(4); - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - Hu3DModelRotSet(lbl_1_bss_34[temp_r31]->model[4], 0, (lbl_1_bss_18 == temp_r31) ? 90 : -90, 0); - } - } - } - break; - - case 1004: - lbl_1_bss_2C++; - if(210.0f < lbl_1_bss_2C) { - lbl_1_bss_20 = -1; - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_D700; - } - break; - - default: - OSReport("*** main mode error(%d)!!\n", object->work[0]); - - break; - } + Work19C8 *sp28[4]; + s32 temp_r31; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + sp28[temp_r31] = lbl_1_bss_34[temp_r31]->data; + } + for (temp_r31 = 0; temp_r31 < 7; temp_r31++) { + s32 sp38[7] = { 1422, 1423, 1424, 1425, 1426, 1427, 1428 }; + if (lbl_1_bss_48[temp_r31].unk0 > 3) { + lbl_1_bss_48[temp_r31].unk0 = 3; + } + if (lbl_1_bss_48[temp_r31].unk0 > 0) { + s32 temp_r19 = HuAudFXPlay(sp38[temp_r31]); + HuAudFXPanning(temp_r19, 0.5 + ((63 * lbl_1_bss_48[temp_r31].unk4[lbl_1_bss_48[temp_r31].unk0 - 1]) + 64)); + lbl_1_bss_48[temp_r31].unk0--; + } + } + if (omSysExitReq && !WipeStatGet()) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_D700; + } + switch (object->work[0]) { + case 1000: + if (!WipeStatGet()) { + s32 temp_r29; + s32 temp_r28; + s32 temp_r27; + s32 temp_r26; + lbl_1_bss_2C++; + if (lbl_1_bss_2C == 10.0f) { + lbl_1_bss_2C = 50.0f; + } + temp_r29 = (lbl_1_bss_2C > 180.0f) ? 255.0 : ((lbl_1_bss_2C > 120.0f) ? (255.0 * ((lbl_1_bss_2C - 120.0f) / 60.0)) : 0.0); + temp_r29 = (lbl_1_bss_2C >= 235.0f) + ? 255 + : ((lbl_1_bss_2C >= 205.0f) ? 192 : ((lbl_1_bss_2C >= 190.0f) ? 128 : (((lbl_1_bss_2C >= 160.0f) ? 64 : 0)))); + Hu3DGLightColorSet(lbl_1_bss_1C, temp_r29, temp_r29, temp_r29, 255); + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + + Hu3DMotionTimeSet(lbl_1_bss_34[temp_r28]->model[0], 60.0 + (40.0 * (temp_r29 / 255.0))); + for (temp_r27 = 0; temp_r27 < 3; temp_r27++) { + Hu3DMotionTimeSet(lbl_1_bss_34[temp_r28]->model[temp_r27 + 1], 60.0 + (40.0 * (temp_r29 / 255.0))); + } + Hu3DMotionTimeSet(lbl_1_bss_34[temp_r28]->model[4], 60.0 + (40.0 * (temp_r29 / 255.0))); + } + Hu3DMotionSpeedSet( + lbl_1_bss_30->model[0], 0.5 * ((lbl_1_bss_2C < 100.0f) ? 0.0 : ((lbl_1_bss_2C < 320.0f) ? ((lbl_1_bss_2C - 100) / 220.0) : 1.0))); + for (temp_r26 = 0; temp_r26 < 4; temp_r26++) { + Hu3DMotionSpeedSet(lbl_1_bss_34[temp_r26]->model[5], + 0.5 * ((lbl_1_bss_2C < 100.0f) ? 0.0 : ((lbl_1_bss_2C < 280.0f) ? ((lbl_1_bss_2C - 100) / 180.0) : 1.0))); + } + if (100.0f == lbl_1_bss_2C) { + Hu3DMotionSpeedSet(lbl_1_bss_30->model[1], 1.0f); + omVibrate(sp28[0]->unk14, 12, 4, 2); + omVibrate(sp28[1]->unk14, 12, 4, 2); + omVibrate(sp28[2]->unk14, 12, 4, 2); + omVibrate(sp28[3]->unk14, 12, 4, 2); + HuAudFXPlay(1431); + } + if (145.0f == lbl_1_bss_2C) { + lbl_1_data_4[0] = HuAudFXPlay(1429); + } + if (160.0f == lbl_1_bss_2C) { + lbl_1_data_4[1] = HuAudFXPlay(1430); + } + if (350.0f < lbl_1_bss_2C) { + object->work[0]++; + lbl_1_bss_2C = 0; + } + } + break; + + case 1001: + lbl_1_bss_2C++; + if (5.0f == lbl_1_bss_2C && lbl_1_bss_20 < 0) { + lbl_1_bss_20 = MGSeqStartCreate(); + } + if (lbl_1_bss_2C >= 5.0f && lbl_1_data_0 == -1 && (MGSeqStatGet(lbl_1_bss_20) & 0x10)) { + lbl_1_data_0 = HuAudSeqPlay(71); + } + if (lbl_1_bss_2C >= 5.0f && !MGSeqStatGet(lbl_1_bss_20) && lbl_1_bss_20 >= 0) { + object->work[0]++; + lbl_1_bss_20 = -1; + lbl_1_bss_2C = 0; + } + else { + float temp_f26 = (lbl_1_bss_2C > 60.0f) ? 1.0 : ((lbl_1_bss_2C > 0.0f) ? (lbl_1_bss_2C / 60.0) : 0.0); + float temp_f27 = 1.0f - temp_f26; + float temp_f31 = 830.0f * temp_f27; + float temp_f30 = (-1792.0f * temp_f27) + (50.0f * temp_f26); + float temp_f29 = (2854.0f * temp_f27) + (3500.0f * temp_f26); + float temp_f25 = ((2578.212 * temp_f27) + (2600.0 * temp_f26)) / VECMagPoint(temp_f31, temp_f30, temp_f29); + temp_f31 *= temp_f25; + temp_f30 *= temp_f25; + temp_f29 *= temp_f25; + Hu3DCameraPosSet(1, temp_f31, temp_f30, temp_f29, -0.05f * temp_f27, 1, 0, 0, 50 * temp_f26, 0); + (void)temp_f27; + } + break; + + case 1002: + if (lbl_1_bss_18 != -1) { + object->work[0] = 1003; + lbl_1_bss_2C = 0; + } + break; + + case 1003: + if (lbl_1_bss_20 < 0 && lbl_1_bss_2C == 0.0f) { + lbl_1_bss_20 = MGSeqFinishCreate(); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + Work19C8 *temp_r25 = lbl_1_bss_34[temp_r31]->data; + HuSprAttrSet(temp_r25->unkA4, 0, HUSPR_ATTR_DISPOFF); + } + if (lbl_1_data_0 != -1) { + HuAudSeqFadeOut(lbl_1_data_0, 100); + } + } + else if (!MGSeqStatGet(lbl_1_bss_20)) { + lbl_1_bss_2C++; + if (lbl_1_bss_2C >= 30.0f) { + object->work[0]++; + lbl_1_bss_2C = 0; + if (lbl_1_bss_18 != 4) { + lbl_1_bss_20 = MGSeqWinCreate(sp28[lbl_1_bss_18]->unk18, -1, -1, -1); + GWPlayerCoinWinSet(sp28[lbl_1_bss_18]->unk14, 10); + HuAudSStreamPlay(1); + } + else if (lbl_1_bss_18 == 4) { + lbl_1_bss_20 = MGSeqDrawCreate(); + HuAudSStreamPlay(4); + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + Hu3DModelRotSet(lbl_1_bss_34[temp_r31]->model[4], 0, (lbl_1_bss_18 == temp_r31) ? 90 : -90, 0); + } + } + } + break; + + case 1004: + lbl_1_bss_2C++; + if (210.0f < lbl_1_bss_2C) { + lbl_1_bss_20 = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_D700; + } + break; + + default: + OSReport("*** main mode error(%d)!!\n", object->work[0]); + + break; + } } void fn_1_B6C4(ModelData *arg0, Mtx arg1) { - GXLoadPosMtxImm(arg1, GX_PNMTX0); - GXSetNumTevStages(1); - GXSetNumTexGens(0); - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); - GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - { - s8 sp60[9] = { -1, 0, 1, 2, 3, 4, -1, -1, -1 }; - char *sp6C[6] = { - "m413_11-m413_11", - "m413_12-m413_12", - "m413_13-m413_13", - "m413_14-m413_14", - "g005m3A-bomhei_A", - "g005m3B-bomhei_B" - }; - s8 sp28[6] = { 3, 4, 5, 6, 11, 12 }; - char *sp50[4] = { - "m413_11b-m413_11b", - "m413_12b-m143_12b", - "m413_13b-m413_13b", - "twest-m413_14b" - }; - s8 sp24[4] = { 7, 8, 9, 10 }; - s32 temp_r27; - Mtx spB4; - Mtx sp84; - for(temp_r27=0; temp_r27<12; temp_r27++) { - StructBss2A6C *temp_r31; - for(temp_r31 = lbl_1_bss_7884[temp_r27]; temp_r31; temp_r31=temp_r31->unk48) { - float temp_f31; - if(temp_r31->unk0) { - s32 temp_r19 = 100; - s32 temp_r18 = 100; - float temp_f30 = temp_r31->unk1C.x; - float temp_f29 = temp_r31->unk1C.y; - float temp_f27 = 0; - if(temp_r31->unk4 && temp_r31->unk5) { - s32 sp40[4] = { 0, 1, 0, -1 }; - s32 sp30[4] = { 1, 0, -1, 0 }; - s32 temp_r24 = (temp_r31->unk4+3)%4; - s32 temp_r26 = ((((temp_r31->unk4+3)%4)+(9+((temp_r31->unk4-1)/4))))%4; - s32 temp_r25 = 0; - float temp_f28 = 1; - temp_f30 -= sp40[temp_r26]; - temp_f29 -= sp30[temp_r26]; - switch((temp_r31->unk4-1)/4) { - case 0: - case 2: - for(temp_r25=temp_r31->unk5-1; temp_r25>0; temp_r25--) { - temp_f28 /= 2.0; - } - temp_f31 = 1.0f-temp_f28; - temp_r26 = (temp_r24+3 == temp_r26) ? (temp_r26-4) : ((temp_r24-3 == temp_r26) ? (temp_r26+4) : temp_r26); - temp_f30 += sind((temp_f28*(temp_r24*90))+(temp_f31*(temp_r26*90))); - temp_f29 += cosd((temp_f28*(temp_r24*90))+(temp_f31*(temp_r26*90))); - break; - - case 1: - for(temp_r25=temp_r31->unk5-1; temp_r25>0; temp_r25--) { - temp_f28 /= 2.0; - } - temp_f31 = (temp_r31->unk5-1)/3.0; - temp_f31 = (temp_f31 < 0.0f) ? 0.0f : ((temp_f31 > 1.0f) ? 1.0f : temp_f31); - temp_f31 = (0.75*((1.0f-temp_f28)))+(0.25*temp_f31); - temp_f28 = 1.0f-temp_f31; - temp_f30 += sp40[temp_r24]*cosd(temp_f31*180.0f); - temp_f29 += sp30[temp_r24]*cosd(temp_f31*180.0f); - temp_f27 += sind(temp_f31*180.0f); - - break; - - default: - break; - } - - } - temp_f30 = (temp_f30*temp_r19)-(temp_r19*6); - temp_f29 = (temp_f29*temp_r18)-(temp_r18*5); - temp_f27 = 100*temp_f27; - if(sp60[temp_r31->unk0] != -1) { - s32 temp_r21 = sp60[temp_r31->unk0]+(temp_r31->unk0 == 5 && ((temp_r31->unk1C.z < 0.0f && (temp_r31->unk1 & 0x1) == 0) || (temp_r31->unk1 & 0x2) != 0)); - MTXTrans(spB4, 50+temp_f30, 50+temp_f29, temp_f27); - MTXConcat(arg1, spB4, spB4); - Hu3DModelObjDraw(lbl_1_bss_30->model[sp28[temp_r21]], sp6C[temp_r21], spB4); - } - } - } - } - for(temp_r27=0; temp_r27<4; temp_r27++) { - s32 temp_r29; - for(temp_r29=0; temp_r29<2; temp_r29++) { - s32 temp_r17 = 25; - s32 sp20 = (temp_r27*300)-450; - s32 sp1C = (505-temp_r17)+(temp_r29*(temp_r17*2)); - Work19C8 *temp_r30 = lbl_1_bss_34[temp_r27]->data; - s32 temp_r23 = temp_r30->unk50[temp_r30->unk60][temp_r29]; - if(temp_r30->unk65[0] == 0 || temp_r30->unk65[0] > 7) { - if(sp60[temp_r23] != -1) { - MTXScale(spB4, 0.5f, 0.5f, 0.5f); - MTXTrans(sp84, sp20, sp1C+((temp_r30->unk65[0]) ? (200.0f*((15-temp_r30->unk65[0])/15.0f)) : 0.0f), 125.0f); - MTXConcat(sp84, spB4, spB4); - MTXConcat(arg1, spB4, spB4); - Hu3DModelObjDraw(lbl_1_bss_30->model[sp28[sp60[temp_r23]]], sp6C[sp60[temp_r23]], spB4); - } - } - if(temp_r30->unk65[0] != 0 && temp_r30->unk65[0] < (15-(temp_r29*4)) && sp60[temp_r30->unk63[temp_r29]] != -1) { - MTXScale(spB4, 0.5f, 0.5f, 0.5f); - MTXTrans(sp84, sp20, sp1C, 125.0-(0.25*(40.0f*(temp_r30->unk65[0]/15.0f)))); - MTXConcat(sp84, spB4, spB4); - MTXConcat(arg1, spB4, spB4); - Hu3DModelObjDraw(lbl_1_bss_30->model[sp28[sp60[temp_r30->unk63[temp_r29]]]], sp6C[sp60[temp_r30->unk63[temp_r29]]], spB4); - } - } - } - { - s32 temp_r28 = lbl_1_bss_FC; - s32 temp_r20; - for(temp_r20=0; temp_r20<300; temp_r20++) { - temp_r28++; - temp_r28 %= 300; - if(lbl_1_bss_100[temp_r28].unk0) { - MTXScale(spB4, 0.4f, 0.4f, 0.4f); - MTXRotDeg(sp84, 'x', 360.0*(lbl_1_bss_100[temp_r28].unk1C/255.0)); - MTXConcat(sp84, spB4, spB4); - MTXRotDeg(sp84, 'z', 360.0*(lbl_1_bss_100[temp_r28].unk1D/255.0)); - MTXConcat(sp84, spB4, spB4); - MTXTrans(sp84, lbl_1_bss_100[temp_r28].unk4.x, lbl_1_bss_100[temp_r28].unk4.y , lbl_1_bss_100[temp_r28].unk4.z); - MTXConcat(sp84, spB4, spB4); - MTXConcat(arg1, spB4, spB4); - Hu3DModelObjDraw(lbl_1_bss_30->model[sp24[sp60[lbl_1_bss_100[temp_r28].unk0]]], sp50[sp60[lbl_1_bss_100[temp_r28].unk0]], spB4); - } - } - } - } + GXLoadPosMtxImm(arg1, GX_PNMTX0); + GXSetNumTevStages(1); + GXSetNumTexGens(0); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + { + s8 sp60[9] = { -1, 0, 1, 2, 3, 4, -1, -1, -1 }; + char *sp6C[6] = { "m413_11-m413_11", "m413_12-m413_12", "m413_13-m413_13", "m413_14-m413_14", "g005m3A-bomhei_A", "g005m3B-bomhei_B" }; + s8 sp28[6] = { 3, 4, 5, 6, 11, 12 }; + char *sp50[4] = { "m413_11b-m413_11b", "m413_12b-m143_12b", "m413_13b-m413_13b", "twest-m413_14b" }; + s8 sp24[4] = { 7, 8, 9, 10 }; + s32 temp_r27; + Mtx spB4; + Mtx sp84; + for (temp_r27 = 0; temp_r27 < 12; temp_r27++) { + StructBss2A6C *temp_r31; + for (temp_r31 = lbl_1_bss_7884[temp_r27]; temp_r31; temp_r31 = temp_r31->unk48) { + float temp_f31; + if (temp_r31->unk0) { + s32 temp_r19 = 100; + s32 temp_r18 = 100; + float temp_f30 = temp_r31->unk1C.x; + float temp_f29 = temp_r31->unk1C.y; + float temp_f27 = 0; + if (temp_r31->unk4 && temp_r31->unk5) { + s32 sp40[4] = { 0, 1, 0, -1 }; + s32 sp30[4] = { 1, 0, -1, 0 }; + s32 temp_r24 = (temp_r31->unk4 + 3) % 4; + s32 temp_r26 = ((((temp_r31->unk4 + 3) % 4) + (9 + ((temp_r31->unk4 - 1) / 4)))) % 4; + s32 temp_r25 = 0; + float temp_f28 = 1; + temp_f30 -= sp40[temp_r26]; + temp_f29 -= sp30[temp_r26]; + switch ((temp_r31->unk4 - 1) / 4) { + case 0: + case 2: + for (temp_r25 = temp_r31->unk5 - 1; temp_r25 > 0; temp_r25--) { + temp_f28 /= 2.0; + } + temp_f31 = 1.0f - temp_f28; + temp_r26 = (temp_r24 + 3 == temp_r26) ? (temp_r26 - 4) : ((temp_r24 - 3 == temp_r26) ? (temp_r26 + 4) : temp_r26); + temp_f30 += sind((temp_f28 * (temp_r24 * 90)) + (temp_f31 * (temp_r26 * 90))); + temp_f29 += cosd((temp_f28 * (temp_r24 * 90)) + (temp_f31 * (temp_r26 * 90))); + break; + + case 1: + for (temp_r25 = temp_r31->unk5 - 1; temp_r25 > 0; temp_r25--) { + temp_f28 /= 2.0; + } + temp_f31 = (temp_r31->unk5 - 1) / 3.0; + temp_f31 = (temp_f31 < 0.0f) ? 0.0f : ((temp_f31 > 1.0f) ? 1.0f : temp_f31); + temp_f31 = (0.75 * ((1.0f - temp_f28))) + (0.25 * temp_f31); + temp_f28 = 1.0f - temp_f31; + temp_f30 += sp40[temp_r24] * cosd(temp_f31 * 180.0f); + temp_f29 += sp30[temp_r24] * cosd(temp_f31 * 180.0f); + temp_f27 += sind(temp_f31 * 180.0f); + + break; + + default: + break; + } + } + temp_f30 = (temp_f30 * temp_r19) - (temp_r19 * 6); + temp_f29 = (temp_f29 * temp_r18) - (temp_r18 * 5); + temp_f27 = 100 * temp_f27; + if (sp60[temp_r31->unk0] != -1) { + s32 temp_r21 = sp60[temp_r31->unk0] + + (temp_r31->unk0 == 5 && ((temp_r31->unk1C.z < 0.0f && (temp_r31->unk1 & 0x1) == 0) || (temp_r31->unk1 & 0x2) != 0)); + MTXTrans(spB4, 50 + temp_f30, 50 + temp_f29, temp_f27); + MTXConcat(arg1, spB4, spB4); + Hu3DModelObjDraw(lbl_1_bss_30->model[sp28[temp_r21]], sp6C[temp_r21], spB4); + } + } + } + } + for (temp_r27 = 0; temp_r27 < 4; temp_r27++) { + s32 temp_r29; + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + s32 temp_r17 = 25; + s32 sp20 = (temp_r27 * 300) - 450; + s32 sp1C = (505 - temp_r17) + (temp_r29 * (temp_r17 * 2)); + Work19C8 *temp_r30 = lbl_1_bss_34[temp_r27]->data; + s32 temp_r23 = temp_r30->unk50[temp_r30->unk60][temp_r29]; + if (temp_r30->unk65[0] == 0 || temp_r30->unk65[0] > 7) { + if (sp60[temp_r23] != -1) { + MTXScale(spB4, 0.5f, 0.5f, 0.5f); + MTXTrans(sp84, sp20, sp1C + ((temp_r30->unk65[0]) ? (200.0f * ((15 - temp_r30->unk65[0]) / 15.0f)) : 0.0f), 125.0f); + MTXConcat(sp84, spB4, spB4); + MTXConcat(arg1, spB4, spB4); + Hu3DModelObjDraw(lbl_1_bss_30->model[sp28[sp60[temp_r23]]], sp6C[sp60[temp_r23]], spB4); + } + } + if (temp_r30->unk65[0] != 0 && temp_r30->unk65[0] < (15 - (temp_r29 * 4)) && sp60[temp_r30->unk63[temp_r29]] != -1) { + MTXScale(spB4, 0.5f, 0.5f, 0.5f); + MTXTrans(sp84, sp20, sp1C, 125.0 - (0.25 * (40.0f * (temp_r30->unk65[0] / 15.0f)))); + MTXConcat(sp84, spB4, spB4); + MTXConcat(arg1, spB4, spB4); + Hu3DModelObjDraw(lbl_1_bss_30->model[sp28[sp60[temp_r30->unk63[temp_r29]]]], sp6C[sp60[temp_r30->unk63[temp_r29]]], spB4); + } + } + } + { + s32 temp_r28 = lbl_1_bss_FC; + s32 temp_r20; + for (temp_r20 = 0; temp_r20 < 300; temp_r20++) { + temp_r28++; + temp_r28 %= 300; + if (lbl_1_bss_100[temp_r28].unk0) { + MTXScale(spB4, 0.4f, 0.4f, 0.4f); + MTXRotDeg(sp84, 'x', 360.0 * (lbl_1_bss_100[temp_r28].unk1C / 255.0)); + MTXConcat(sp84, spB4, spB4); + MTXRotDeg(sp84, 'z', 360.0 * (lbl_1_bss_100[temp_r28].unk1D / 255.0)); + MTXConcat(sp84, spB4, spB4); + MTXTrans(sp84, lbl_1_bss_100[temp_r28].unk4.x, lbl_1_bss_100[temp_r28].unk4.y, lbl_1_bss_100[temp_r28].unk4.z); + MTXConcat(sp84, spB4, spB4); + MTXConcat(arg1, spB4, spB4); + Hu3DModelObjDraw(lbl_1_bss_30->model[sp24[sp60[lbl_1_bss_100[temp_r28].unk0]]], sp50[sp60[lbl_1_bss_100[temp_r28].unk0]], spB4); + } + } + } + } } void fn_1_C6E0(omObjData *object) { - s32 temp_r30; - memset(lbl_1_bss_2A6C, 0, sizeof(lbl_1_bss_2A6C)); - memset(lbl_1_bss_7884, 0, sizeof(lbl_1_bss_7884)); - memset(lbl_1_bss_2684, 0, sizeof(lbl_1_bss_2684)); - lbl_1_bss_2680 = 0; - memset(lbl_1_bss_100, 0, sizeof(lbl_1_bss_100)); - lbl_1_bss_FC = 0; - memset(lbl_1_bss_D4, 0, sizeof(lbl_1_bss_D4)); - lbl_1_bss_D0 = 0; - memset(lbl_1_bss_B8, 0, sizeof(lbl_1_bss_B8)); - object->model[0] = Hu3DModelCreateFile(0x2C0000); - omSetTra(object, 0, 0, 0); - Hu3DMotionSpeedSet(object->model[0], 0); - object->model[1] = Hu3DModelCreateFile(0x2C0001); - Hu3DMotionSpeedSet(object->model[1], 0); - Hu3DModelPosSet(object->model[1], 0, 0, 0); - Hu3DModelAttrSet(object->model[0], 0x40000001); - object->model[2] = Hu3DHookFuncCreate(fn_1_B6C4); - Hu3DModelLayerSet(object->model[2], 1); - for(temp_r30=0; temp_r30<4; temp_r30++) { - object->model[temp_r30+3] = Hu3DModelCreateFile(0x2C0003+temp_r30); - Hu3DModelAttrSet(object->model[temp_r30+3], 1); - object->model[temp_r30+7] = Hu3DModelCreateFile(0x2C0007+temp_r30); - Hu3DModelAttrSet(object->model[temp_r30+7], 1); - } - for(temp_r30=0; temp_r30<2; temp_r30++) { - s32 temp_r28; - if(temp_r30 == 0) { - temp_r28 = 0x2C000B; - } else { - temp_r28 = 0x2C000C; - } - object->model[temp_r30+11] = Hu3DModelCreateFile(temp_r28); - Hu3DModelAttrSet(object->model[temp_r30+11], 1); - } - for(temp_r30=0; temp_r30<5; temp_r30++) { - s32 temp_r29; - object->model[(temp_r30*10)+13] = Hu3DModelCreateFile(0x2C001E); - for(temp_r29=0; temp_r29<10; temp_r29++) { - if(temp_r29 != 0) { - object->model[(13+(temp_r30*10)+temp_r29)] = Hu3DModelLink(object->model[(temp_r30*10)+13]); - } - Hu3DModelAttrSet(object->model[(13+(temp_r30*10)+temp_r29)], 1); - Hu3DModelLayerSet(object->model[(13+(temp_r30*10)+temp_r29)], 2); - } - } - { - void *temp_r27 = HuDataSelHeapReadNum(0x2C001F, MEMORY_DEFAULT_NUM, HEAP_DATA); - AnimData *temp_r26 = HuSprAnimRead(temp_r27); - lbl_1_bss_14 = HuSprGrpCreate(150); - for(temp_r30=0; temp_r30<150; temp_r30++) { - s16 temp_r25 = HuSprCreate(temp_r26, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_14, temp_r30, temp_r25); - HuSprAttrSet(lbl_1_bss_14, temp_r30, HUSPR_ATTR_DISPOFF); - HuSprColorSet(lbl_1_bss_14, temp_r30, 255, 255, 255); - HuSprTPLvlSet(lbl_1_bss_14, temp_r30, 1.0f); - HuSprPriSet(lbl_1_bss_14, temp_r30, 256+temp_r30); - - } - } - object->func = fn_1_8C10; + s32 temp_r30; + memset(lbl_1_bss_2A6C, 0, sizeof(lbl_1_bss_2A6C)); + memset(lbl_1_bss_7884, 0, sizeof(lbl_1_bss_7884)); + memset(lbl_1_bss_2684, 0, sizeof(lbl_1_bss_2684)); + lbl_1_bss_2680 = 0; + memset(lbl_1_bss_100, 0, sizeof(lbl_1_bss_100)); + lbl_1_bss_FC = 0; + memset(lbl_1_bss_D4, 0, sizeof(lbl_1_bss_D4)); + lbl_1_bss_D0 = 0; + memset(lbl_1_bss_B8, 0, sizeof(lbl_1_bss_B8)); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x00)); + omSetTra(object, 0, 0, 0); + Hu3DMotionSpeedSet(object->model[0], 0); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x01)); + Hu3DMotionSpeedSet(object->model[1], 0); + Hu3DModelPosSet(object->model[1], 0, 0, 0); + Hu3DModelAttrSet(object->model[0], 0x40000001); + object->model[2] = Hu3DHookFuncCreate(fn_1_B6C4); + Hu3DModelLayerSet(object->model[2], 1); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + object->model[temp_r30 + 3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x03) + temp_r30); + Hu3DModelAttrSet(object->model[temp_r30 + 3], 1); + object->model[temp_r30 + 7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x07) + temp_r30); + Hu3DModelAttrSet(object->model[temp_r30 + 7], 1); + } + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + s32 temp_r28; + if (temp_r30 == 0) { + temp_r28 = DATA_MAKE_NUM(DATADIR_M413, 0x0B); + } + else { + temp_r28 = DATA_MAKE_NUM(DATADIR_M413, 0x0C); + } + object->model[temp_r30 + 11] = Hu3DModelCreateFile(temp_r28); + Hu3DModelAttrSet(object->model[temp_r30 + 11], 1); + } + for (temp_r30 = 0; temp_r30 < 5; temp_r30++) { + s32 temp_r29; + object->model[(temp_r30 * 10) + 13] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x1E)); + for (temp_r29 = 0; temp_r29 < 10; temp_r29++) { + if (temp_r29 != 0) { + object->model[(13 + (temp_r30 * 10) + temp_r29)] = Hu3DModelLink(object->model[(temp_r30 * 10) + 13]); + } + Hu3DModelAttrSet(object->model[(13 + (temp_r30 * 10) + temp_r29)], 1); + Hu3DModelLayerSet(object->model[(13 + (temp_r30 * 10) + temp_r29)], 2); + } + } + { + void *temp_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M413, 0x1F), MEMORY_DEFAULT_NUM, HEAP_DATA); + AnimData *temp_r26 = HuSprAnimRead(temp_r27); + lbl_1_bss_14 = HuSprGrpCreate(150); + for (temp_r30 = 0; temp_r30 < 150; temp_r30++) { + s16 temp_r25 = HuSprCreate(temp_r26, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_14, temp_r30, temp_r25); + HuSprAttrSet(lbl_1_bss_14, temp_r30, HUSPR_ATTR_DISPOFF); + HuSprColorSet(lbl_1_bss_14, temp_r30, 255, 255, 255); + HuSprTPLvlSet(lbl_1_bss_14, temp_r30, 1.0f); + HuSprPriSet(lbl_1_bss_14, temp_r30, 256 + temp_r30); + } + } + object->func = fn_1_8C10; } - void fn_1_CBB4(omObjData *object) { - s32 sp8[4] = { 0, 1, 2, 3 }; - s32 temp_r27 = 0; - Work19C8 *temp_r31 = object->data; - s32 temp_r29; - s32 temp_r28; - memset(temp_r31, 0, sizeof(Work19C8)); - if(object->work[0] == 0) { - lbl_1_data_C[0] = lbl_1_data_C[1] = lbl_1_data_C[2] = lbl_1_data_C[3] = -1; - for(temp_r29=0; temp_r29<4; temp_r29++) { - s32 temp_r26; - repeat_iter: - temp_r26 = rand8()%4; - if(lbl_1_data_C[temp_r26] != -1) { - goto repeat_iter; - } - lbl_1_data_C[temp_r26] = temp_r29; - } - } - for(temp_r29=0; temp_r29<4; temp_r29++) { - for(temp_r28=0; temp_r28<4; temp_r28++) { - if(temp_r29 == lbl_1_data_C[temp_r28]) { - sp8[temp_r27] = temp_r28; - temp_r27++; - } - } - } - temp_r31->unk0 = temp_r31->unk4 = temp_r31->unk8 = temp_r31->unkC = 0; - temp_r31->unk10 = object->work[0]; - temp_r31->unk14 = sp8[temp_r31->unk10]; - if(temp_r31->unk14 == 4) { - OSReport("m413:wrong player group\n"); - temp_r31->unk14 = temp_r31->unk10; - } - temp_r31->unk18 = GWPlayerCfg[temp_r31->unk14].character; - temp_r31->unk1C = (GWPlayerCfg[temp_r31->unk14].iscom) ? -1 : GWPlayerCfg[temp_r31->unk14].pad_idx; - temp_r31->unk20 = (temp_r31->unk1C != -1) ? 0 : GWPlayerCfg[temp_r31->unk14].diff; - temp_r31->unk2C = -1; - temp_r31->unk24 = 0; - temp_r31->unk28 = temp_r31->unk24; - temp_r31->unk40 = temp_r31->unk24; - temp_r31->unk44 = 100; - temp_r31->unk72 = 2; - temp_r31->unk74 = 0; - fn_1_EC0(temp_r31); - temp_r31->unk60 = 0; - temp_r31->unk68 = ((rand8()%4)*7)+3; - temp_r31->unk6C = temp_r31->unk68; - temp_r31->unk71 = 20; - temp_r31->unk70 = 0; - temp_r31->unk98 = 0; - temp_r31->unk9C = 0; - object->model[0] = Hu3DModelCreateFile(0x2C0002); - Hu3DModelLayerSet(object->model[0], 1); - object->model[1] = Hu3DModelLink(object->model[0]); - object->model[2] = Hu3DModelLink(object->model[0]); - object->model[3] = Hu3DModelLink(object->model[0]); - Hu3DModelPosSet(object->model[1], (temp_r31->unk10*300)-525, -602, 40); - Hu3DModelPosSet(object->model[2], (temp_r31->unk10*300)-450, -602, 40); - Hu3DModelPosSet(object->model[3], (temp_r31->unk10*300)-375, -602, 40); - Hu3DMotionTimeSet(object->model[1], 60.0f); - Hu3DMotionTimeSet(object->model[2], 60.0f); - Hu3DMotionTimeSet(object->model[3], 60.0f); - Hu3DMotionSpeedSet(object->model[1], 0.0f); - Hu3DMotionSpeedSet(object->model[2], 0.0f); - Hu3DMotionSpeedSet(object->model[3], 0.0f); - Hu3DModelAttrSet(object->model[0], 1); - Hu3DMotionTimeSet(object->model[0], 60.0f); - Hu3DMotionSpeedSet(object->model[0], 0.0f); - object->model[4] = Hu3DModelCreateFile(0x2C000D+temp_r31->unk18); - Hu3DModelPosSet(object->model[4], (temp_r31->unk10*300)-450, 670, 60); - Hu3DMotionTimeSet(object->model[4], 60.0f); - Hu3DMotionSpeedSet(object->model[4], 0.0f); - object->model[5] = Hu3DModelCreateFile(0x2C0015+temp_r31->unk18); - Hu3DModelPosSet(object->model[5], (temp_r31->unk10*300)-450, 0, 0); - Hu3DModelAttrSet(object->model[5], 0x40000001); - Hu3DMotionSpeedSet(object->model[5], 0.0f); - { - AnimData *temp_r23 = HuSprAnimReadFile(0x610038+GWPlayerCfg[temp_r31->unk14].character); - s16 temp_r22; - temp_r31->unkA4 = HuSprGrpCreate(1); - temp_r22 = HuSprCreate(temp_r23, 0, 0); - HuSprGrpMemberSet(temp_r31->unkA4, 0, temp_r22); - HuSprAttrSet(temp_r31->unkA4, 0, HUSPR_ATTR_LOOP|HUSPR_ATTR_DISPOFF|HUSPR_ATTR_LINEAR); - HuSprColorSet(temp_r31->unkA4, 0, 255, 255, 255); - HuSprTPLvlSet(temp_r31->unkA4, 0, 1); - HuSprPriSet(temp_r31->unkA4, 0, 512); - HuSprScaleSet(temp_r31->unkA4, 0, 0.875f, 0.875f); - HuSprSpeedSet(temp_r31->unkA4, 0, 1.0f); - } - - object->func = fn_1_19C4; + s32 sp8[4] = { 0, 1, 2, 3 }; + s32 temp_r27 = 0; + Work19C8 *temp_r31 = object->data; + s32 temp_r29; + s32 temp_r28; + memset(temp_r31, 0, sizeof(Work19C8)); + if (object->work[0] == 0) { + lbl_1_data_C[0] = lbl_1_data_C[1] = lbl_1_data_C[2] = lbl_1_data_C[3] = -1; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + s32 temp_r26; + repeat_iter: + temp_r26 = rand8() % 4; + if (lbl_1_data_C[temp_r26] != -1) { + goto repeat_iter; + } + lbl_1_data_C[temp_r26] = temp_r29; + } + } + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + if (temp_r29 == lbl_1_data_C[temp_r28]) { + sp8[temp_r27] = temp_r28; + temp_r27++; + } + } + } + temp_r31->unk0 = temp_r31->unk4 = temp_r31->unk8 = temp_r31->unkC = 0; + temp_r31->unk10 = object->work[0]; + temp_r31->unk14 = sp8[temp_r31->unk10]; + if (temp_r31->unk14 == 4) { + OSReport("m413:wrong player group\n"); + temp_r31->unk14 = temp_r31->unk10; + } + temp_r31->unk18 = GWPlayerCfg[temp_r31->unk14].character; + temp_r31->unk1C = (GWPlayerCfg[temp_r31->unk14].iscom) ? -1 : GWPlayerCfg[temp_r31->unk14].pad_idx; + temp_r31->unk20 = (temp_r31->unk1C != -1) ? 0 : GWPlayerCfg[temp_r31->unk14].diff; + temp_r31->unk2C = -1; + temp_r31->unk24 = 0; + temp_r31->unk28 = temp_r31->unk24; + temp_r31->unk40 = temp_r31->unk24; + temp_r31->unk44 = 100; + temp_r31->unk72 = 2; + temp_r31->unk74 = 0; + fn_1_EC0(temp_r31); + temp_r31->unk60 = 0; + temp_r31->unk68 = ((rand8() % 4) * 7) + 3; + temp_r31->unk6C = temp_r31->unk68; + temp_r31->unk71 = 20; + temp_r31->unk70 = 0; + temp_r31->unk98 = 0; + temp_r31->unk9C = 0; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x02)); + Hu3DModelLayerSet(object->model[0], 1); + object->model[1] = Hu3DModelLink(object->model[0]); + object->model[2] = Hu3DModelLink(object->model[0]); + object->model[3] = Hu3DModelLink(object->model[0]); + Hu3DModelPosSet(object->model[1], (temp_r31->unk10 * 300) - 525, -602, 40); + Hu3DModelPosSet(object->model[2], (temp_r31->unk10 * 300) - 450, -602, 40); + Hu3DModelPosSet(object->model[3], (temp_r31->unk10 * 300) - 375, -602, 40); + Hu3DMotionTimeSet(object->model[1], 60.0f); + Hu3DMotionTimeSet(object->model[2], 60.0f); + Hu3DMotionTimeSet(object->model[3], 60.0f); + Hu3DMotionSpeedSet(object->model[1], 0.0f); + Hu3DMotionSpeedSet(object->model[2], 0.0f); + Hu3DMotionSpeedSet(object->model[3], 0.0f); + Hu3DModelAttrSet(object->model[0], 1); + Hu3DMotionTimeSet(object->model[0], 60.0f); + Hu3DMotionSpeedSet(object->model[0], 0.0f); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x0D) + temp_r31->unk18); + Hu3DModelPosSet(object->model[4], (temp_r31->unk10 * 300) - 450, 670, 60); + Hu3DMotionTimeSet(object->model[4], 60.0f); + Hu3DMotionSpeedSet(object->model[4], 0.0f); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x15) + temp_r31->unk18); + Hu3DModelPosSet(object->model[5], (temp_r31->unk10 * 300) - 450, 0, 0); + Hu3DModelAttrSet(object->model[5], 0x40000001); + Hu3DMotionSpeedSet(object->model[5], 0.0f); + { + AnimData *temp_r23 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGCONST, 0x38) + GWPlayerCfg[temp_r31->unk14].character); + s16 temp_r22; + temp_r31->unkA4 = HuSprGrpCreate(1); + temp_r22 = HuSprCreate(temp_r23, 0, 0); + HuSprGrpMemberSet(temp_r31->unkA4, 0, temp_r22); + HuSprAttrSet(temp_r31->unkA4, 0, HUSPR_ATTR_LOOP | HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); + HuSprColorSet(temp_r31->unkA4, 0, 255, 255, 255); + HuSprTPLvlSet(temp_r31->unkA4, 0, 1); + HuSprPriSet(temp_r31->unkA4, 0, 512); + HuSprScaleSet(temp_r31->unkA4, 0, 0.875f, 0.875f); + HuSprSpeedSet(temp_r31->unkA4, 0, 1.0f); + } + + object->func = fn_1_19C4; } void fn_1_D340(omObjData *object) { - object->work[0] = 1000; - memset(lbl_1_bss_48, 0, sizeof(StructBss48)); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_A53C; + object->work[0] = 1000; + memset(lbl_1_bss_48, 0, sizeof(StructBss48)); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_A53C; } void ObjectSetup(void) { - s32 i; - OSReport("******* M413 ObjectSetup *********\n"); - HuAudSndGrpSet(38); - lbl_1_bss_24 = omInitObjMan(600, 8192); - omGameSysInit(lbl_1_bss_24); - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - Hu3DCameraPerspectiveSet(1, 40, 10, 20000, 1.2f); - { - Vec sp54 = { 616.5714f, -1331.2f, 2120.1142f }; - Vec sp48 = { -0.05f, 1.0f, 0.0f }; - Vec sp3C = { 0, 0, 0 }; - Vec sp30 = { 0, 0, 0 }; - Vec sp24 = { 0, 0, -1 }; - Hu3DCameraPosSetV(1, &sp54, &sp48, &sp3C); - } - { - Vec sp18 = { -822.5f, 6743.0f, 4625.5f }; - Vec spC = { 0.1545085f, -0.788462f, -0.5850064f }; - GXColor sp8 = { 0, 0, 0, 255 }; - lbl_1_bss_1C = Hu3DGLightCreateV(&sp18, &spC, &sp8); - } - Hu3DGLightStaticSet(lbl_1_bss_1C, 1); - Hu3DGLightSpotSet(lbl_1_bss_1C, 20, 2); - lbl_1_bss_20 = -1; - lbl_1_bss_18 = -1; - lbl_1_bss_30 = omAddObjEx(lbl_1_bss_24, 101, 63, 0, 1, fn_1_C6E0); - for(i=0; i<4; i++) { - omObjData *object = lbl_1_bss_34[i] = omAddObjEx(lbl_1_bss_24, 100, 6, 0, 0, fn_1_CBB4); - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work19C8), MEMORY_DEFAULT_NUM); - object->work[0] = i; - } - lbl_1_bss_44 = omAddObjEx(lbl_1_bss_24, 102, 0, 0, -1, fn_1_D340); + s32 i; + OSReport("******* M413 ObjectSetup *********\n"); + HuAudSndGrpSet(38); + lbl_1_bss_24 = omInitObjMan(600, 8192); + omGameSysInit(lbl_1_bss_24); + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + Hu3DCameraPerspectiveSet(1, 40, 10, 20000, 1.2f); + { + Vec sp54 = { 616.5714f, -1331.2f, 2120.1142f }; + Vec sp48 = { -0.05f, 1.0f, 0.0f }; + Vec sp3C = { 0, 0, 0 }; + Vec sp30 = { 0, 0, 0 }; + Vec sp24 = { 0, 0, -1 }; + Hu3DCameraPosSetV(1, &sp54, &sp48, &sp3C); + } + { + Vec sp18 = { -822.5f, 6743.0f, 4625.5f }; + Vec spC = { 0.1545085f, -0.788462f, -0.5850064f }; + GXColor sp8 = { 0, 0, 0, 255 }; + lbl_1_bss_1C = Hu3DGLightCreateV(&sp18, &spC, &sp8); + } + Hu3DGLightStaticSet(lbl_1_bss_1C, 1); + Hu3DGLightSpotSet(lbl_1_bss_1C, 20, 2); + lbl_1_bss_20 = -1; + lbl_1_bss_18 = -1; + lbl_1_bss_30 = omAddObjEx(lbl_1_bss_24, 101, 63, 0, 1, fn_1_C6E0); + for (i = 0; i < 4; i++) { + omObjData *object = lbl_1_bss_34[i] = omAddObjEx(lbl_1_bss_24, 100, 6, 0, 0, fn_1_CBB4); + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work19C8), MEMORY_DEFAULT_NUM); + object->work[0] = i; + } + lbl_1_bss_44 = omAddObjEx(lbl_1_bss_24, 102, 0, 0, -1, fn_1_D340); } void fn_1_D700(omObjData *object) { - if(!WipeStatGet()) { - if(lbl_1_bss_20 >= 0) { - MGSeqKill(lbl_1_bss_20); - } - MGSeqKillAll(); - HuAudAllStop(); - omOvlReturnEx(1, 1); - } + if (!WipeStatGet()) { + if (lbl_1_bss_20 >= 0) { + MGSeqKill(lbl_1_bss_20); + } + MGSeqKillAll(); + HuAudAllStop(); + omOvlReturnEx(1, 1); + } } diff --git a/src/REL/m416Dll/main.c b/src/REL/m416Dll/main.c index 0020aa4f..af9d25ab 100644 --- a/src/REL/m416Dll/main.c +++ b/src/REL/m416Dll/main.c @@ -1,44 +1,40 @@ +#include "game/audio.h" +#include "game/chrman.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" -#include "game/hsfman.h" -#include "game/hsfanim.h" -#include "game/hsfmotion.h" -#include "game/audio.h" -#include "game/wipe.h" -#include "game/sprite.h" -#include "game/chrman.h" #include "game/pad.h" -#include "game/gamework_data.h" -#include "game/minigame_seq.h" -#include "game/frand.h" +#include "game/sprite.h" +#include "game/wipe.h" -#include "math.h" #include "ext_math.h" - +#include "math.h" #include "REL/m416Dll.h" #include "rel_sqrt_consts.h" typedef struct camera_view_params { - float zoom; - Vec pos; - Vec rot; + float zoom; + Vec pos; + Vec rot; } CameraViewParams; -CameraViewParams lbl_1_data_0[2] = { - { 1676.6, { 0, 172, 123 }, { -18, 0, 0 } }, - { 1200, { 0, 0, -600 }, { -24, 0, 0 } } -}; +CameraViewParams lbl_1_data_0[2] = { { 1676.6, { 0, 172, 123 }, { -18, 0, 0 } }, { 1200, { 0, 0, -600 }, { -24, 0, 0 } } }; GXColor lbl_1_data_38 = { 255, 255, 255, 255 }; GXColor lbl_1_data_3C = { 255, 160, 96, 255 }; typedef struct struct_bss_14 { - float unk0; - float unk4; - u8 unk8; - float unkC; + float unk0; + float unk4; + u8 unk8; + float unkC; } StructBss14; s32 lbl_1_bss_960; @@ -70,104 +66,104 @@ void fn_1_6E5C(omObjData *object); void ObjectSetup(void) { - Process *objman; - Vec pos; - Vec up; - Vec target; - OSReport("******* M416ObjectSetup *********\n"); - objman = omInitObjMan(50, 8192); - omGameSysInit(objman); - Hu3DCameraCreate(1); - Hu3DCameraPerspectiveSet(1, 30, 20, 25000, 1.2); - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - lbl_1_bss_950 = omAddObjEx(objman, 32730, 0, 0, -1, omOutView); - lbl_1_bss_958 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_458); - fn_1_1260(objman); - lbl_1_bss_954 = omAddObjEx(objman, 10, 0, 0, -1, fn_1_6E5C); - pos.x = 0; - pos.y = 3000; - pos.z = 1; - up.x = 0; - up.y = 1; - up.z = 0; - target.x = 0; - target.y = 0; - target.z = 0; - Hu3DShadowCreate(30, 20, 25000); - Hu3DShadowTPLvlSet(0.9f); - Hu3DShadowPosSet(&pos, &up, &target); - Hu3DLightAllKill(); - lbl_1_bss_91A[0] = Hu3DGLightCreate(-700, 1200, 700, 0, -0.5, -1, lbl_1_data_38.r, lbl_1_data_38.g, lbl_1_data_38.b); - Hu3DGLightStaticSet(lbl_1_bss_91A[0], 1); - Hu3DGLightInfinitytSet(lbl_1_bss_91A[0]); - lbl_1_bss_91A[1] = Hu3DGLightCreate(0, 0, 0, 0, 0, 0, 0, 0, 0); - Hu3DGLightStaticSet(lbl_1_bss_91A[1], 1); - Hu3DGLightPointSet(lbl_1_bss_91A[1], 0, 0, 3); - lbl_1_bss_918 = 0; - HuAudSndGrpSet(41); - Hu3DBGColorSet(0, 0, 0); - fn_1_79D0(objman); + Process *objman; + Vec pos; + Vec up; + Vec target; + OSReport("******* M416ObjectSetup *********\n"); + objman = omInitObjMan(50, 8192); + omGameSysInit(objman); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30, 20, 25000, 1.2); + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + lbl_1_bss_950 = omAddObjEx(objman, 32730, 0, 0, -1, omOutView); + lbl_1_bss_958 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_458); + fn_1_1260(objman); + lbl_1_bss_954 = omAddObjEx(objman, 10, 0, 0, -1, fn_1_6E5C); + pos.x = 0; + pos.y = 3000; + pos.z = 1; + up.x = 0; + up.y = 1; + up.z = 0; + target.x = 0; + target.y = 0; + target.z = 0; + Hu3DShadowCreate(30, 20, 25000); + Hu3DShadowTPLvlSet(0.9f); + Hu3DShadowPosSet(&pos, &up, &target); + Hu3DLightAllKill(); + lbl_1_bss_91A[0] = Hu3DGLightCreate(-700, 1200, 700, 0, -0.5, -1, lbl_1_data_38.r, lbl_1_data_38.g, lbl_1_data_38.b); + Hu3DGLightStaticSet(lbl_1_bss_91A[0], 1); + Hu3DGLightInfinitytSet(lbl_1_bss_91A[0]); + lbl_1_bss_91A[1] = Hu3DGLightCreate(0, 0, 0, 0, 0, 0, 0, 0, 0); + Hu3DGLightStaticSet(lbl_1_bss_91A[1], 1); + Hu3DGLightPointSet(lbl_1_bss_91A[1], 0, 0, 3); + lbl_1_bss_918 = 0; + HuAudSndGrpSet(41); + Hu3DBGColorSet(0, 0, 0); + fn_1_79D0(objman); } void fn_1_458(omObjData *object) { - lbl_1_bss_928 = 30; - lbl_1_bss_926 = 60; - fn_1_1250(0); - lbl_1_bss_924 = -1; - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - lbl_1_bss_920 = 1; - fn_1_8FF4(1); - object->func = fn_1_4FC; + lbl_1_bss_928 = 30; + lbl_1_bss_926 = 60; + fn_1_1250(0); + lbl_1_bss_924 = -1; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_920 = 1; + fn_1_8FF4(1); + object->func = fn_1_4FC; } typedef struct bss_930_work_4c { - u8 field_0_bit0 : 1; - float unk4; - float unk8; - float unkC; - s16 unk10; + u8 field_0_bit0 : 1; + float unk4; + float unk8; + float unkC; + s16 unk10; } Bss930Work4C; typedef struct bss_930_work { - u8 field_0_bit0 : 1; - u8 field_0_bit1 : 1; - u8 field_0_bit2 : 1; - u8 field_0_bit3 : 1; - u8 field_0_bit4 : 1; - s16 unk02; - s16 unk04; - s8 unk06; - s8 unk07; - u16 unk08; - u16 unk0A; - s16 unk0C; - s16 unk0E; - s16 unk10; - s16 unk12; - s16 unk14; - float unk18; - Vec unk1C; - s32 unk28; - s32 unk2C; - u32 unk30; - u32 unk34; - float unk38; - u32 unk3C; - s16 unk40; - s16 unk42; - s16 unk44; - s16 unk46; - omObjFunc unk48; - Bss930Work4C *unk4C; - s16 unk50; - Vec unk54; - s16 unk60; - Vec unk64; - s16 unk70; - Vec unk74; - float unk80; - float unk84; + u8 field_0_bit0 : 1; + u8 field_0_bit1 : 1; + u8 field_0_bit2 : 1; + u8 field_0_bit3 : 1; + u8 field_0_bit4 : 1; + s16 unk02; + s16 unk04; + s8 unk06; + s8 unk07; + u16 unk08; + u16 unk0A; + s16 unk0C; + s16 unk0E; + s16 unk10; + s16 unk12; + s16 unk14; + float unk18; + Vec unk1C; + s32 unk28; + s32 unk2C; + u32 unk30; + u32 unk34; + float unk38; + u32 unk3C; + s16 unk40; + s16 unk42; + s16 unk44; + s16 unk46; + omObjFunc unk48; + Bss930Work4C *unk4C; + s16 unk50; + Vec unk54; + s16 unk60; + Vec unk64; + s16 unk70; + Vec unk74; + float unk80; + float unk84; } Bss930Work; s32 lbl_1_data_64 = -1; @@ -178,200 +174,206 @@ void fn_1_52BC(void); void fn_1_4FC(omObjData *object) { - Bss930Work *temp_r31; - s32 temp_r30; - s16 temp_r29; - Vec sp1C; - Vec sp10; - s16 sp8[4]; - - switch(fn_1_1240()) { - case 0: - if(!WipeStatGet()) { - HuAudFXPlay(1471); - fn_1_1250(1); - lbl_1_bss_95C = 30; - } - break; - - case 1: - if(--lbl_1_bss_95C == 0) { - fn_1_1250(2); - lbl_1_bss_95C = 84; - } - break; - - case 2: - if(lbl_1_bss_95C) { - if(--lbl_1_bss_95C == 0) { - HuAudFXPlay(1470); - } - } else { - if(lbl_1_bss_920 > 0) { - lbl_1_bss_920 -= 0.020000001f; - if(lbl_1_bss_920 < 0) { - lbl_1_bss_920 = 0; - } - Hu3DGLightColorSet(lbl_1_bss_91A[0], lbl_1_data_38.r*lbl_1_bss_920, lbl_1_data_38.g*lbl_1_bss_920, lbl_1_data_38.b*lbl_1_bss_920, 255); - } - if(lbl_1_bss_920 < 0.1f) { - if(lbl_1_bss_0 == 0) { - temp_r31 = lbl_1_bss_930[0][0]->data; - HuAudCharVoicePlay(temp_r31->unk0C, 296); - lbl_1_bss_0 = 1; - } - } - if(lbl_1_bss_920 <= 0.0f) { - fn_1_1250(3); - lbl_1_bss_95C = 60; - } - } - break; - - case 3: - if(--lbl_1_bss_95C == 0) { - fn_1_1250(4); - lbl_1_bss_95C = 60; - Hu3DGLightColorSet(lbl_1_bss_91A[1], lbl_1_data_3C.r, lbl_1_data_3C.g, lbl_1_data_3C.b, lbl_1_data_3C.a); - fn_1_8FF4(0.0625f); - Hu3DShadowData.unk_08.x = 135; - MTXLightPerspective(Hu3DShadowData.unk_68, Hu3DShadowData.unk_08.x, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - lbl_1_bss_918 = 1; - HuAudFXEmiterPlay(1464, &lbl_1_bss_930[0][0]->trans); - } - break; - - case 4: - if(--lbl_1_bss_95C == 0) { - fn_1_1250(5); - lbl_1_bss_12 = MGSeqStartCreate(); - } - break; - - case 5: - if(MGSeqStatGet(lbl_1_bss_12) == 0) { - lbl_1_bss_10 = MGSeqTimerCreate(30); - fn_1_1250(6); - } - if(lbl_1_data_64 < 0 && (MGSeqStatGet(lbl_1_bss_12) & 0x10)) { - lbl_1_data_64 = HuAudSeqPlay(73); - } - break; - - case 6: - if(--lbl_1_bss_926 == 0) { - lbl_1_bss_928--; - MGSeqParamSet(lbl_1_bss_10, 1, lbl_1_bss_928); - lbl_1_bss_926 = 60; - } - if(lbl_1_bss_928 == 0 || lbl_1_bss_924 >= 0) { - lbl_1_bss_12 = MGSeqFinishCreate(); - fn_1_1250(7); - HuAudSeqAllFadeOut(100); - } - break; - - case 7: - if(lbl_1_bss_10 >= 0) { - MGSeqParamSet(lbl_1_bss_10, 2, -1); - lbl_1_bss_10 = -1; - } - if(MGSeqStatGet(lbl_1_bss_12) == 0) { - lbl_1_bss_95C = 60; - fn_1_1250(8); - } - break; - - case 8: - if(lbl_1_bss_95C) { - if(--lbl_1_bss_95C == 0) { - Hu3DShadowData.unk_08.x = 30; - MTXLightPerspective(Hu3DShadowData.unk_68, Hu3DShadowData.unk_08.x, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - lbl_1_bss_918 = 0; - sp1C.x = 0; - sp1C.y = 3000; - sp1C.z = 1; - sp10.x = 0; - sp10.y = 0; - sp10.z = 0; - Hu3DShadowPosSet(&sp1C, &Hu3DShadowData.unk_2C, &sp10); - HuAudFXPlay(1470); - } - } else { - lbl_1_bss_920 += 0.020000001f; - if(lbl_1_bss_920 >= 1.0f) { - lbl_1_bss_920 = 1.0f; - fn_1_1250(9); - lbl_1_bss_95C = 60; - fn_1_52BC(); - } - fn_1_8FF4(lbl_1_bss_920); - Hu3DGLightColorSet(lbl_1_bss_91A[0], lbl_1_data_38.r*lbl_1_bss_920, lbl_1_data_38.g*lbl_1_bss_920, lbl_1_data_38.b*lbl_1_bss_920, 255); - if(lbl_1_bss_91A[1] >= 0) { - Hu3DGLightColorSet(lbl_1_bss_91A[1], lbl_1_data_3C.r*(1.0f-lbl_1_bss_920), lbl_1_data_3C.g*(1.0f-lbl_1_bss_920), lbl_1_data_3C.b*(1.0f-lbl_1_bss_920), lbl_1_data_3C.a*(1.0f-lbl_1_bss_920)); - } - } - break; - - case 9: - if(fn_1_14E8()) { - if(--lbl_1_bss_95C == 0) { - fn_1_1250(10); - lbl_1_bss_95C = 210; - for(temp_r30=0; temp_r30<4; temp_r30++) { - sp8[temp_r30] = -1; - } - temp_r29 = 0; - if(lbl_1_bss_924 < 0) { - temp_r31 = lbl_1_bss_930[0][0]->data; - sp8[temp_r29++] = temp_r31->unk0C; - GWPlayerCoinWinSet(temp_r31->unk02, 10); - } else { - for(temp_r30=0; temp_r30<3; temp_r30++) { - temp_r31 = lbl_1_bss_930[1][temp_r30]->data; - sp8[temp_r29++] = temp_r31->unk0C; - GWPlayerCoinWinSet(temp_r31->unk02, 10); - } - } - lbl_1_bss_12 = MGSeqWinCreate(sp8[0], sp8[1], sp8[2], sp8[3]); - HuAudSStreamPlay(1); - } - } - break; - - case 10: - if(--lbl_1_bss_95C == 0) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_11E8; - } - break; - } - if(omSysExitReq && !WipeStatGet()) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_11E8; - } - fn_1_8F60(lbl_1_bss_920); + Bss930Work *temp_r31; + s32 temp_r30; + s16 temp_r29; + Vec sp1C; + Vec sp10; + s16 sp8[4]; + + switch (fn_1_1240()) { + case 0: + if (!WipeStatGet()) { + HuAudFXPlay(1471); + fn_1_1250(1); + lbl_1_bss_95C = 30; + } + break; + + case 1: + if (--lbl_1_bss_95C == 0) { + fn_1_1250(2); + lbl_1_bss_95C = 84; + } + break; + + case 2: + if (lbl_1_bss_95C) { + if (--lbl_1_bss_95C == 0) { + HuAudFXPlay(1470); + } + } + else { + if (lbl_1_bss_920 > 0) { + lbl_1_bss_920 -= 0.020000001f; + if (lbl_1_bss_920 < 0) { + lbl_1_bss_920 = 0; + } + Hu3DGLightColorSet( + lbl_1_bss_91A[0], lbl_1_data_38.r * lbl_1_bss_920, lbl_1_data_38.g * lbl_1_bss_920, lbl_1_data_38.b * lbl_1_bss_920, 255); + } + if (lbl_1_bss_920 < 0.1f) { + if (lbl_1_bss_0 == 0) { + temp_r31 = lbl_1_bss_930[0][0]->data; + HuAudCharVoicePlay(temp_r31->unk0C, 296); + lbl_1_bss_0 = 1; + } + } + if (lbl_1_bss_920 <= 0.0f) { + fn_1_1250(3); + lbl_1_bss_95C = 60; + } + } + break; + + case 3: + if (--lbl_1_bss_95C == 0) { + fn_1_1250(4); + lbl_1_bss_95C = 60; + Hu3DGLightColorSet(lbl_1_bss_91A[1], lbl_1_data_3C.r, lbl_1_data_3C.g, lbl_1_data_3C.b, lbl_1_data_3C.a); + fn_1_8FF4(0.0625f); + Hu3DShadowData.unk_08.x = 135; + MTXLightPerspective(Hu3DShadowData.unk_68, Hu3DShadowData.unk_08.x, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + lbl_1_bss_918 = 1; + HuAudFXEmiterPlay(1464, &lbl_1_bss_930[0][0]->trans); + } + break; + + case 4: + if (--lbl_1_bss_95C == 0) { + fn_1_1250(5); + lbl_1_bss_12 = MGSeqStartCreate(); + } + break; + + case 5: + if (MGSeqStatGet(lbl_1_bss_12) == 0) { + lbl_1_bss_10 = MGSeqTimerCreate(30); + fn_1_1250(6); + } + if (lbl_1_data_64 < 0 && (MGSeqStatGet(lbl_1_bss_12) & 0x10)) { + lbl_1_data_64 = HuAudSeqPlay(73); + } + break; + + case 6: + if (--lbl_1_bss_926 == 0) { + lbl_1_bss_928--; + MGSeqParamSet(lbl_1_bss_10, 1, lbl_1_bss_928); + lbl_1_bss_926 = 60; + } + if (lbl_1_bss_928 == 0 || lbl_1_bss_924 >= 0) { + lbl_1_bss_12 = MGSeqFinishCreate(); + fn_1_1250(7); + HuAudSeqAllFadeOut(100); + } + break; + + case 7: + if (lbl_1_bss_10 >= 0) { + MGSeqParamSet(lbl_1_bss_10, 2, -1); + lbl_1_bss_10 = -1; + } + if (MGSeqStatGet(lbl_1_bss_12) == 0) { + lbl_1_bss_95C = 60; + fn_1_1250(8); + } + break; + + case 8: + if (lbl_1_bss_95C) { + if (--lbl_1_bss_95C == 0) { + Hu3DShadowData.unk_08.x = 30; + MTXLightPerspective(Hu3DShadowData.unk_68, Hu3DShadowData.unk_08.x, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + lbl_1_bss_918 = 0; + sp1C.x = 0; + sp1C.y = 3000; + sp1C.z = 1; + sp10.x = 0; + sp10.y = 0; + sp10.z = 0; + Hu3DShadowPosSet(&sp1C, &Hu3DShadowData.unk_2C, &sp10); + HuAudFXPlay(1470); + } + } + else { + lbl_1_bss_920 += 0.020000001f; + if (lbl_1_bss_920 >= 1.0f) { + lbl_1_bss_920 = 1.0f; + fn_1_1250(9); + lbl_1_bss_95C = 60; + fn_1_52BC(); + } + fn_1_8FF4(lbl_1_bss_920); + Hu3DGLightColorSet( + lbl_1_bss_91A[0], lbl_1_data_38.r * lbl_1_bss_920, lbl_1_data_38.g * lbl_1_bss_920, lbl_1_data_38.b * lbl_1_bss_920, 255); + if (lbl_1_bss_91A[1] >= 0) { + Hu3DGLightColorSet(lbl_1_bss_91A[1], lbl_1_data_3C.r * (1.0f - lbl_1_bss_920), lbl_1_data_3C.g * (1.0f - lbl_1_bss_920), + lbl_1_data_3C.b * (1.0f - lbl_1_bss_920), lbl_1_data_3C.a * (1.0f - lbl_1_bss_920)); + } + } + break; + + case 9: + if (fn_1_14E8()) { + if (--lbl_1_bss_95C == 0) { + fn_1_1250(10); + lbl_1_bss_95C = 210; + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + sp8[temp_r30] = -1; + } + temp_r29 = 0; + if (lbl_1_bss_924 < 0) { + temp_r31 = lbl_1_bss_930[0][0]->data; + sp8[temp_r29++] = temp_r31->unk0C; + GWPlayerCoinWinSet(temp_r31->unk02, 10); + } + else { + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + temp_r31 = lbl_1_bss_930[1][temp_r30]->data; + sp8[temp_r29++] = temp_r31->unk0C; + GWPlayerCoinWinSet(temp_r31->unk02, 10); + } + } + lbl_1_bss_12 = MGSeqWinCreate(sp8[0], sp8[1], sp8[2], sp8[3]); + HuAudSStreamPlay(1); + } + } + break; + + case 10: + if (--lbl_1_bss_95C == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_11E8; + } + break; + } + if (omSysExitReq && !WipeStatGet()) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_11E8; + } + fn_1_8F60(lbl_1_bss_920); } void fn_1_11E8(omObjData *object) { - if(!WipeStatGet()) { - MGSeqKillAll(); - HuAudFadeOut(1); - fn_1_7A54(); - omOvlReturnEx(1, 1); - OSReport("******* M416Exit *********\n"); - } + if (!WipeStatGet()) { + MGSeqKillAll(); + HuAudFadeOut(1); + fn_1_7A54(); + omOvlReturnEx(1, 1); + OSReport("******* M416Exit *********\n"); + } } s32 fn_1_1240(void) { - return lbl_1_bss_960; + return lbl_1_bss_960; } void fn_1_1250(s32 arg0) { - lbl_1_bss_960 = arg0; + lbl_1_bss_960 = arg0; } void fn_1_156C(omObjData *object); @@ -379,53 +381,53 @@ void fn_1_2930(omObjData *object); void fn_1_1260(Process *objman) { - s32 i; - s32 j; - - lbl_1_bss_92E = 0; - lbl_1_bss_92A[0] = lbl_1_bss_92A[1] = 0; - omMakeGroupEx(objman, 0, 4); - for(i=0; i<4; i++) { - omAddObjEx(objman, 5, 5, 50, 0, fn_1_156C); - } - lbl_1_bss_914 = HuSprAnimReadFile(0x2F0005); - memset(lbl_1_bss_14, 0, sizeof(lbl_1_bss_14)); - for(i=0; i<10; i++) { - for(j=0; j<10; j++) { - lbl_1_bss_14[i+1][j+1].unk0 = ((0.5f+(j-5))*1100)/9; - lbl_1_bss_14[i+1][j+1].unk4 = ((0.5f+(i-5))*1100)/9; - } - } - omAddObjEx(objman, 6, 0, 0, -1, fn_1_2930); + s32 i; + s32 j; + + lbl_1_bss_92E = 0; + lbl_1_bss_92A[0] = lbl_1_bss_92A[1] = 0; + omMakeGroupEx(objman, 0, 4); + for (i = 0; i < 4; i++) { + omAddObjEx(objman, 5, 5, 50, 0, fn_1_156C); + } + lbl_1_bss_914 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M416, 0x05)); + memset(lbl_1_bss_14, 0, sizeof(lbl_1_bss_14)); + for (i = 0; i < 10; i++) { + for (j = 0; j < 10; j++) { + lbl_1_bss_14[i + 1][j + 1].unk0 = ((0.5f + (j - 5)) * 1100) / 9; + lbl_1_bss_14[i + 1][j + 1].unk4 = ((0.5f + (i - 5)) * 1100) / 9; + } + } + omAddObjEx(objman, 6, 0, 0, -1, fn_1_2930); } void fn_1_5D18(omObjData *object); void fn_1_1480(void) { - s32 i; - omObjData **group; - group = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - if(group == NULL) { - return; - } - for(i=0; i<4; i++) { - fn_1_5D18(group[i]); - } + s32 i; + omObjData **group; + group = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + if (group == NULL) { + return; + } + for (i = 0; i < 4; i++) { + fn_1_5D18(group[i]); + } } s32 fn_1_14E8(void) { - s32 i; - omObjData **group; - group = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - for(i=0; i<4; i++) { - Bss930Work *work = group[i]->data; - if(!work->field_0_bit3) { - return 0; - } - } - return 1; + s32 i; + omObjData **group; + group = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + for (i = 0; i < 4; i++) { + Bss930Work *work = group[i]->data; + if (!work->field_0_bit3) { + return 0; + } + } + return 1; } void fn_1_1964(omObjData *object); @@ -434,171 +436,165 @@ void fn_1_1D84(omObjData *object); void fn_1_6AE8(ModelData *model, ParticleData *particle, Mtx matrix); -float lbl_1_data_B0[4][4] = { - 0, 0, -400, 0, - -340, 0, 200, 155, - 0, 0, 400, 180, - 340, 0, 200, 205 -}; +float lbl_1_data_B0[4][4] = { 0, 0, -400, 0, -340, 0, 200, 155, 0, 0, 400, 180, 340, 0, 200, 205 }; void fn_1_156C(omObjData *object) { - Bss930Work *work; - s32 player; - work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss930Work), MEMORY_DEFAULT_NUM); - object->data = work; - memset(work, 0, sizeof(Bss930Work)); - work->unk02 = lbl_1_bss_92E++; - work->unk04 = GWPlayerCfg[work->unk02].pad_idx; - work->unk0C = GWPlayerCfg[work->unk02].character; - work->unk0E = GWPlayerCfg[work->unk02].diff; - work->unk10 = GWPlayerCfg[work->unk02].group; - object->model[0] = CharModelCreate(work->unk0C, 4); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DModelShadowSet(object->model[0]); - work->field_0_bit2 = 1; - work->field_0_bit4 = 1; - work->unk28 = 0; - work->unk2C = -1; - work->unk34 = 0; - work->unk38 = 50; - if(!work->unk10) { - fn_1_1964(object); - lbl_1_bss_930[0][lbl_1_bss_92A[0]] = object; - player = lbl_1_bss_92A[0]; - work->unk12 = lbl_1_bss_92A[0]; - lbl_1_bss_92A[0]++; - } else { - fn_1_1ADC(object); - lbl_1_bss_930[1][lbl_1_bss_92A[1]] = object; - player = lbl_1_bss_92A[1]+1; - work->unk12 = lbl_1_bss_92A[1]; - lbl_1_bss_92A[1]++; - } - Hu3DModelHookSet(object->model[0], "test11_tex_we-itemhook-r", object->model[1]); - Hu3DModelShadowSet(object->model[1]); - Hu3DModelLayerSet(object->model[0], 3); - Hu3DModelLayerSet(object->model[1], 3); - fn_1_8EB4(object->model[0]); - fn_1_8EB4(object->model[1]); - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - CharModelMotionIndexSet(work->unk0C, object->motion[1], 0x5F0002); - CharModelMotionIndexSet(work->unk0C, object->motion[2], 0x5F0002); - CharModelMotionDataClose(work->unk0C); - object->model[4] = Hu3DParticleCreate(lbl_1_bss_914, 2); - Hu3DParticleHookSet(object->model[4], fn_1_6AE8); - Hu3DParticleBlendModeSet(object->model[4], 1); - Hu3DModelLayerSet(object->model[4], 6); - Hu3DModelAttrSet(object->model[4], 1); - object->trans.x = lbl_1_data_B0[player][0]; - object->trans.y = lbl_1_data_B0[player][1]; - object->trans.z = lbl_1_data_B0[player][2]; - object->rot.y = lbl_1_data_B0[player][3]; - object->rot.x = object->rot.z = 0; - object->scale.x = object->scale.y = object->scale.z = 1; - work->unk84 = object->rot.y; - object->func = fn_1_1D84; + Bss930Work *work; + s32 player; + work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss930Work), MEMORY_DEFAULT_NUM); + object->data = work; + memset(work, 0, sizeof(Bss930Work)); + work->unk02 = lbl_1_bss_92E++; + work->unk04 = GWPlayerCfg[work->unk02].pad_idx; + work->unk0C = GWPlayerCfg[work->unk02].character; + work->unk0E = GWPlayerCfg[work->unk02].diff; + work->unk10 = GWPlayerCfg[work->unk02].group; + object->model[0] = CharModelCreate(work->unk0C, 4); + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelShadowSet(object->model[0]); + work->field_0_bit2 = 1; + work->field_0_bit4 = 1; + work->unk28 = 0; + work->unk2C = -1; + work->unk34 = 0; + work->unk38 = 50; + if (!work->unk10) { + fn_1_1964(object); + lbl_1_bss_930[0][lbl_1_bss_92A[0]] = object; + player = lbl_1_bss_92A[0]; + work->unk12 = lbl_1_bss_92A[0]; + lbl_1_bss_92A[0]++; + } + else { + fn_1_1ADC(object); + lbl_1_bss_930[1][lbl_1_bss_92A[1]] = object; + player = lbl_1_bss_92A[1] + 1; + work->unk12 = lbl_1_bss_92A[1]; + lbl_1_bss_92A[1]++; + } + Hu3DModelHookSet(object->model[0], "test11_tex_we-itemhook-r", object->model[1]); + Hu3DModelShadowSet(object->model[1]); + Hu3DModelLayerSet(object->model[0], 3); + Hu3DModelLayerSet(object->model[1], 3); + fn_1_8EB4(object->model[0]); + fn_1_8EB4(object->model[1]); + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + CharModelMotionIndexSet(work->unk0C, object->motion[1], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); + CharModelMotionIndexSet(work->unk0C, object->motion[2], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); + CharModelMotionDataClose(work->unk0C); + object->model[4] = Hu3DParticleCreate(lbl_1_bss_914, 2); + Hu3DParticleHookSet(object->model[4], fn_1_6AE8); + Hu3DParticleBlendModeSet(object->model[4], 1); + Hu3DModelLayerSet(object->model[4], 6); + Hu3DModelAttrSet(object->model[4], 1); + object->trans.x = lbl_1_data_B0[player][0]; + object->trans.y = lbl_1_data_B0[player][1]; + object->trans.z = lbl_1_data_B0[player][2]; + object->rot.y = lbl_1_data_B0[player][3]; + object->rot.x = object->rot.z = 0; + object->scale.x = object->scale.y = object->scale.z = 1; + work->unk84 = object->rot.y; + object->func = fn_1_1D84; } u32 lbl_1_data_10C[9][2] = { - 0x002F0008, 1, - 0x002F0010, 1, - 0x002F0018, 1, - 0x002F0020, 1, - 0, 0, - 0x005F0000, 0, - 0x005F0017, 0, - 0x005F0018, 0, - 0x005F0002, 0 + DATA_MAKE_NUM(DATADIR_M416, 0x08), + 1, + DATA_MAKE_NUM(DATADIR_M416, 0x10), + 1, + DATA_MAKE_NUM(DATADIR_M416, 0x18), + 1, + DATA_MAKE_NUM(DATADIR_M416, 0x20), + 1, + 0, + 0, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + 0, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + 0, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), + 0, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + 0, }; void fn_1_29DC(omObjData *object); - - - void fn_1_1964(omObjData *object) { - Bss930Work *work; - s32 i; - work = object->data; - for(i=0; i<9; i++) { - if(!lbl_1_data_10C[i][1]) { - object->motion[i] = CharModelMotionCreate(work->unk0C, lbl_1_data_10C[i][0]); - } else { - object->motion[i] = CharModelMotionCreate(work->unk0C, work->unk0C+lbl_1_data_10C[i][0]); - } - } - object->model[1] = Hu3DModelCreateFile(0x2F0003); - object->model[2] = Hu3DParticleCreate(HuSprAnimReadFile(0x2F0006), 100); - Hu3DParticleHookSet(object->model[2], fn_1_613C); - Hu3DParticleBlendModeSet(object->model[2], 1); - Hu3DModelLayerSet(object->model[2], 6); - Hu3DModelAttrSet(object->model[2], 2); - Hu3DModelAttrSet(object->model[2], 1); - work->unk44 = 5; - work->unk48 = fn_1_29DC; + Bss930Work *work; + s32 i; + work = object->data; + for (i = 0; i < 9; i++) { + if (!lbl_1_data_10C[i][1]) { + object->motion[i] = CharModelMotionCreate(work->unk0C, lbl_1_data_10C[i][0]); + } + else { + object->motion[i] = CharModelMotionCreate(work->unk0C, work->unk0C + lbl_1_data_10C[i][0]); + } + } + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M416, 0x03)); + object->model[2] = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M416, 0x06)), 100); + Hu3DParticleHookSet(object->model[2], fn_1_613C); + Hu3DParticleBlendModeSet(object->model[2], 1); + Hu3DModelLayerSet(object->model[2], 6); + Hu3DModelAttrSet(object->model[2], 2); + Hu3DModelAttrSet(object->model[2], 1); + work->unk44 = 5; + work->unk48 = fn_1_29DC; } void fn_1_2EA4(omObjData *object); void fn_1_6640(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_6DEC(s16 arg0, u32 arg1); -s32 lbl_1_data_154[9] = { - 0x005F0030, - 0x005F0031, - 0x005F0032, - 0x005F002D, - 0x005F002E, - 0x005F0000, - 0x005F0017, - 0x005F0018, - 0x005F0002 -}; - +s32 lbl_1_data_154[9] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x30), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x31), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x32), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x2D), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x2E), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02) }; void fn_1_1ADC(omObjData *object) { - Bss930Work *work; - s32 i; - work = object->data; - for(i=0; i<9; i++) { - object->motion[i] = CharModelMotionCreate(work->unk0C, lbl_1_data_154[i]); - } - object->model[1] = Hu3DModelCreateFile(0x2F0004); - object->model[2] = Hu3DModelCreateFile(0x2F0002); - Hu3DModelLayerSet(object->model[2], 3); - fn_1_6DEC(object->model[2], 16); - Hu3DModelAttrSet(object->model[2], 1); - Hu3DMotionSpeedSet(object->model[2], 0); - Hu3DAnimCreate(HuDataReadNum(0x2F0007, MEMORY_DEFAULT_NUM), object->model[2], "sb00"); - object->model[3] = Hu3DParticleCreate(lbl_1_bss_914, 50); - Hu3DParticleHookSet(object->model[3], fn_1_6640); - Hu3DModelLayerSet(object->model[3], 3); - Hu3DModelAttrSet(object->model[3], 1); - work->unk4C = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss930Work4C), MEMORY_DEFAULT_NUM); - memset(work->unk4C, 0, sizeof(Bss930Work4C)); - - work->unk48 = fn_1_2EA4; + Bss930Work *work; + s32 i; + work = object->data; + for (i = 0; i < 9; i++) { + object->motion[i] = CharModelMotionCreate(work->unk0C, lbl_1_data_154[i]); + } + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M416, 0x04)); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M416, 0x02)); + Hu3DModelLayerSet(object->model[2], 3); + fn_1_6DEC(object->model[2], 16); + Hu3DModelAttrSet(object->model[2], 1); + Hu3DMotionSpeedSet(object->model[2], 0); + Hu3DAnimCreate(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M416, 0x07), MEMORY_DEFAULT_NUM), object->model[2], "sb00"); + object->model[3] = Hu3DParticleCreate(lbl_1_bss_914, 50); + Hu3DParticleHookSet(object->model[3], fn_1_6640); + Hu3DModelLayerSet(object->model[3], 3); + Hu3DModelAttrSet(object->model[3], 1); + work->unk4C = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss930Work4C), MEMORY_DEFAULT_NUM); + memset(work->unk4C, 0, sizeof(Bss930Work4C)); + + work->unk48 = fn_1_2EA4; } float fn_1_1C80(float arg1, float arg2, float arg3) { - float temp_f31; - float temp_f30; - temp_f31 = fmod(arg2-arg1, 360); - if(temp_f31 < 0.0f) { - temp_f31 += 360.0f; - } - if(temp_f31 > 180.0f) { - temp_f31 -= 360.0f; - } - temp_f30 = fmod(arg1+(arg3*temp_f31), 360); - if(temp_f30 < 0.0f) { - temp_f30 += 360.0f; - } - return temp_f30; + float temp_f31; + float temp_f30; + temp_f31 = fmod(arg2 - arg1, 360); + if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + if (temp_f31 > 180.0f) { + temp_f31 -= 360.0f; + } + temp_f30 = fmod(arg1 + (arg3 * temp_f31), 360); + if (temp_f30 < 0.0f) { + temp_f30 += 360.0f; + } + return temp_f30; } void fn_1_389C(omObjData *object); @@ -606,158 +602,169 @@ s32 fn_1_5530(omObjData *arg0, Vec *arg1, Vec *arg2); void fn_1_1D84(omObjData *object) { - float temp_f31; - float temp_f30; - float temp_f28; - float temp_f27; - float temp_f23; - Bss930Work *temp_r31; - s32 temp_r29; - u32 temp_r28; - s32 temp_r27; - Vec sp40; - Vec sp34; - temp_r31 = object->data; - temp_r29 = temp_r31->unk28; - temp_r28 = temp_r31->unk30; - switch(temp_r31->unk14) { - case 0: - if(fn_1_1240() >= 6) { - if(fn_1_1240() == 7) { - temp_r31->unk14 = 1; - temp_r31->unk40 = 60; - temp_r31->unk08 = temp_r31->unk0A = 0; - temp_r31->unk06 = temp_r31->unk07 = 0; - } else { - if(!GWPlayerCfg[temp_r31->unk02].iscom) { - temp_r31->unk06 = HuPadStkX[temp_r31->unk04]; - temp_r31->unk07 = HuPadStkY[temp_r31->unk04]; - temp_r31->unk08 = HuPadBtn[temp_r31->unk04]; - temp_r31->unk0A = HuPadBtnDown[temp_r31->unk04]; - } else { - temp_r31->unk08 = temp_r31->unk0A = 0; - temp_r31->unk06 = temp_r31->unk07 = 0; - fn_1_389C(object); - } - temp_f31 = temp_r31->unk06; - temp_f30 = -(float)temp_r31->unk07; - if(temp_r31->field_0_bit1) { - temp_f31 = temp_f30 = 0; - } - temp_f28 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(temp_f28 > 0) { - temp_f31 /= temp_f28; - temp_f30 /= temp_f28; - if(temp_f28 > 72) { - temp_f28 = 72; - } - temp_r31->unk18 = (10*temp_f28)/72; - temp_r31->unk1C.x = temp_f31*temp_r31->unk18; - temp_r31->unk1C.z = temp_f30*temp_r31->unk18; - object->rot.y = fn_1_1C80(object->rot.y, atan2d(temp_r31->unk1C.x, temp_r31->unk1C.z), 0.4f); - if(temp_r31->unk18 < 7.5f) { - temp_r29 = 1; - } else { - temp_r29 = 2; - } - temp_r28 = 0x40000001; - } else { - temp_r31->unk1C.x = temp_r31->unk1C.z = 0; - temp_r29 = 0; - temp_r28 = 0x40000001; - } - object->trans.x += temp_r31->unk1C.x; - object->trans.z += temp_r31->unk1C.z; - } - } - break; - - case 1: - if(fn_1_1240() == 9) { - if(--temp_r31->unk40 == 0){ - temp_r31->unk14 = 2; - temp_r31->unk40 = 300; - temp_r31->unk2C = -1; - } - } - if(!temp_r31->field_0_bit2) { - temp_r29 = 5; - } else { - temp_r29 = 0; - } - temp_r28 = 0x40000001; - break; - - case 2: - if(fn_1_1240() == 10) { - temp_r31->unk14 = 3; - } else { - VECSubtract(&temp_r31->unk64, &object->trans, &sp34); - temp_f28 = VECMag(&sp34); - if(temp_f28 < 20 || temp_r31->unk40 == 0) { - temp_r29 = 5; - temp_r28 = 0x40000001; - object->rot.y = fn_1_1C80(object->rot.y, 0, 0.2f); - temp_r31->field_0_bit3 = 1; - } else { - if(!temp_r31->field_0_bit3) { - temp_r27 = fn_1_5530(object, &temp_r31->unk64, &sp40); - } else { - sp40.x = temp_r31->unk64.x; - sp40.y = temp_r31->unk64.y; - sp40.z = temp_r31->unk64.z; - temp_r27 = 0; - } - VECSubtract(&sp40, &object->trans, &sp34); - object->rot.y = fn_1_1C80(object->rot.y, atan2d(sp34.x, sp34.z), 0.2f); - if(!temp_r27) { - if(temp_f28 < 100.0f) { - temp_f23 = 7.5f*(temp_f28/100.0f); - } else { - temp_f23 = 7.5f; - } - } else { - temp_f23 = 3.75f; - } - temp_r31->unk1C.x = temp_f23*sind(object->rot.y); - temp_r31->unk1C.z = temp_f23*cosd(object->rot.y); - object->trans.x += temp_r31->unk1C.x; - object->trans.z += temp_r31->unk1C.z; - temp_r29 = 8; - temp_r28 = 0x40000001; - - } - if(temp_r31->unk40) { - temp_r31->unk40--; - } - } - break; - - case 3: - if(fn_1_1240() < 10) { - temp_r29 = 0; - temp_r28 = 0x40000001; - } else { - if((!temp_r31->unk10 && lbl_1_bss_924 < 0) || (temp_r31->unk10 && lbl_1_bss_924 >= 0)) { - temp_r29 = 6; - } else { - temp_r29 = 7; - } - temp_r28 = 0; - object->rot.y = fn_1_1C80(object->rot.y, 0, 0.2f); - Hu3DModelAttrReset(object->model[0], 0x40000001); - } - break; - } - if(temp_r31->unk2C >= 0) { - temp_r29 = temp_r31->unk2C; - temp_r28 = temp_r31->unk34; - } - if((temp_r29 >= 0 && temp_r29 != temp_r31->unk28) || temp_r28 != temp_r31->unk30) { - temp_r31->unk28 = temp_r29; - temp_r31->unk30 = temp_r28; - CharModelMotionShiftSet(temp_r31->unk0C, object->motion[temp_r31->unk28], 0, 8, temp_r28); - } + float temp_f31; + float temp_f30; + float temp_f28; + float temp_f27; + float temp_f23; + Bss930Work *temp_r31; + s32 temp_r29; + u32 temp_r28; + s32 temp_r27; + Vec sp40; + Vec sp34; + temp_r31 = object->data; + temp_r29 = temp_r31->unk28; + temp_r28 = temp_r31->unk30; + switch (temp_r31->unk14) { + case 0: + if (fn_1_1240() >= 6) { + if (fn_1_1240() == 7) { + temp_r31->unk14 = 1; + temp_r31->unk40 = 60; + temp_r31->unk08 = temp_r31->unk0A = 0; + temp_r31->unk06 = temp_r31->unk07 = 0; + } + else { + if (!GWPlayerCfg[temp_r31->unk02].iscom) { + temp_r31->unk06 = HuPadStkX[temp_r31->unk04]; + temp_r31->unk07 = HuPadStkY[temp_r31->unk04]; + temp_r31->unk08 = HuPadBtn[temp_r31->unk04]; + temp_r31->unk0A = HuPadBtnDown[temp_r31->unk04]; + } + else { + temp_r31->unk08 = temp_r31->unk0A = 0; + temp_r31->unk06 = temp_r31->unk07 = 0; + fn_1_389C(object); + } + temp_f31 = temp_r31->unk06; + temp_f30 = -(float)temp_r31->unk07; + if (temp_r31->field_0_bit1) { + temp_f31 = temp_f30 = 0; + } + temp_f28 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (temp_f28 > 0) { + temp_f31 /= temp_f28; + temp_f30 /= temp_f28; + if (temp_f28 > 72) { + temp_f28 = 72; + } + temp_r31->unk18 = (10 * temp_f28) / 72; + temp_r31->unk1C.x = temp_f31 * temp_r31->unk18; + temp_r31->unk1C.z = temp_f30 * temp_r31->unk18; + object->rot.y = fn_1_1C80(object->rot.y, atan2d(temp_r31->unk1C.x, temp_r31->unk1C.z), 0.4f); + if (temp_r31->unk18 < 7.5f) { + temp_r29 = 1; + } + else { + temp_r29 = 2; + } + temp_r28 = 0x40000001; + } + else { + temp_r31->unk1C.x = temp_r31->unk1C.z = 0; + temp_r29 = 0; + temp_r28 = 0x40000001; + } + object->trans.x += temp_r31->unk1C.x; + object->trans.z += temp_r31->unk1C.z; + } + } + break; + + case 1: + if (fn_1_1240() == 9) { + if (--temp_r31->unk40 == 0) { + temp_r31->unk14 = 2; + temp_r31->unk40 = 300; + temp_r31->unk2C = -1; + } + } + if (!temp_r31->field_0_bit2) { + temp_r29 = 5; + } + else { + temp_r29 = 0; + } + temp_r28 = 0x40000001; + break; + + case 2: + if (fn_1_1240() == 10) { + temp_r31->unk14 = 3; + } + else { + VECSubtract(&temp_r31->unk64, &object->trans, &sp34); + temp_f28 = VECMag(&sp34); + if (temp_f28 < 20 || temp_r31->unk40 == 0) { + temp_r29 = 5; + temp_r28 = 0x40000001; + object->rot.y = fn_1_1C80(object->rot.y, 0, 0.2f); + temp_r31->field_0_bit3 = 1; + } + else { + if (!temp_r31->field_0_bit3) { + temp_r27 = fn_1_5530(object, &temp_r31->unk64, &sp40); + } + else { + sp40.x = temp_r31->unk64.x; + sp40.y = temp_r31->unk64.y; + sp40.z = temp_r31->unk64.z; + temp_r27 = 0; + } + VECSubtract(&sp40, &object->trans, &sp34); + object->rot.y = fn_1_1C80(object->rot.y, atan2d(sp34.x, sp34.z), 0.2f); + if (!temp_r27) { + if (temp_f28 < 100.0f) { + temp_f23 = 7.5f * (temp_f28 / 100.0f); + } + else { + temp_f23 = 7.5f; + } + } + else { + temp_f23 = 3.75f; + } + temp_r31->unk1C.x = temp_f23 * sind(object->rot.y); + temp_r31->unk1C.z = temp_f23 * cosd(object->rot.y); + object->trans.x += temp_r31->unk1C.x; + object->trans.z += temp_r31->unk1C.z; + temp_r29 = 8; + temp_r28 = 0x40000001; + } + if (temp_r31->unk40) { + temp_r31->unk40--; + } + } + break; + + case 3: + if (fn_1_1240() < 10) { + temp_r29 = 0; + temp_r28 = 0x40000001; + } + else { + if ((!temp_r31->unk10 && lbl_1_bss_924 < 0) || (temp_r31->unk10 && lbl_1_bss_924 >= 0)) { + temp_r29 = 6; + } + else { + temp_r29 = 7; + } + temp_r28 = 0; + object->rot.y = fn_1_1C80(object->rot.y, 0, 0.2f); + Hu3DModelAttrReset(object->model[0], 0x40000001); + } + break; + } + if (temp_r31->unk2C >= 0) { + temp_r29 = temp_r31->unk2C; + temp_r28 = temp_r31->unk34; + } + if ((temp_r29 >= 0 && temp_r29 != temp_r31->unk28) || temp_r28 != temp_r31->unk30) { + temp_r31->unk28 = temp_r29; + temp_r31->unk30 = temp_r28; + CharModelMotionShiftSet(temp_r31->unk0C, object->motion[temp_r31->unk28], 0, 8, temp_r28); + } } void fn_1_5004(void); @@ -766,249 +773,239 @@ void fn_1_361C(omObjData *object); void fn_1_2930(omObjData *object) { - Bss930Work *temp_r31; - s32 temp_r30; - omObjData *temp_r29; - omObjData **temp_r28; - temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - fn_1_5004(); - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r29 = temp_r28[temp_r30]; - temp_r31 = temp_r29->data; - if(temp_r31->unk48 != NULL) { - temp_r31->unk48(temp_r29); - } - if(temp_r31->field_0_bit4) { - fn_1_361C(temp_r29); - } - } + Bss930Work *temp_r31; + s32 temp_r30; + omObjData *temp_r29; + omObjData **temp_r28; + temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + fn_1_5004(); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r29 = temp_r28[temp_r30]; + temp_r31 = temp_r29->data; + if (temp_r31->unk48 != NULL) { + temp_r31->unk48(temp_r29); + } + if (temp_r31->field_0_bit4) { + fn_1_361C(temp_r29); + } + } } -float lbl_1_data_180[6] = { - 0, - 0.3, - 0.7, - 1.0, - 1.3, - 1.6 -}; +float lbl_1_data_180[6] = { 0, 0.3, 0.7, 1.0, 1.3, 1.6 }; -float lbl_1_data_198[6][2] = { - 100.0f, 0.75f, - 110.0f, 0.8f, - 120.000008f, 0.85f, - 130.0f, 0.9f, - 140.0f, 0.95f, - 150.0f, 0.99f -}; +float lbl_1_data_198[6][2] = { 100.0f, 0.75f, 110.0f, 0.8f, 120.000008f, 0.85f, 130.0f, 0.9f, 140.0f, 0.95f, 150.0f, 0.99f }; void fn_1_29DC(omObjData *object) { - Mtx sp50; - Mtx sp20; - Vec sp14; - Vec sp8; - Bss930Work *temp_r31; - ModelData *temp_r29; - temp_r31 = object->data; - if(temp_r31->unk44 > 0 && temp_r31->field_0_bit0) { - if(--temp_r31->unk44 == 0) { - lbl_1_bss_924 = 1; - Hu3DGLightKill(lbl_1_bss_91A[1]); - lbl_1_bss_91A[1] = -1; - Hu3DModelAttrSet(object->model[2], 1); - HuAudFXEmiterPlay(1469, &object->trans); - HuAudCharVoicePlay(temp_r31->unk0C, 291); - } else { - HuAudFXEmiterPlay(1466, &object->trans); - HuAudCharVoicePlay(temp_r31->unk0C, 296); - } - temp_r31->field_0_bit0 = 0; - temp_r31->field_0_bit1 = 1; - temp_r31->unk2C = 3; - temp_r31->unk34 = 0; - temp_r31->unk46 = 60; - temp_r31->unk60 = 30; - omVibrate(temp_r31->unk02, 12, 6, 6); - } - if(temp_r31->unk46 > 0) { - if(temp_r31->unk60) { - if(--temp_r31->unk60 == 0) { - temp_r31->unk2C = -1; - temp_r31->field_0_bit1 = 0; - } - } else { - if((temp_r31->unk46 & 0x2) == 0) { - Hu3DModelAttrReset(object->model[0], 1); - } else { - Hu3DModelAttrSet(object->model[0], 1); - } - temp_r31->unk46--; - } - } - if(temp_r31->field_0_bit2) { - Hu3DModelObjMtxGet(object->model[0], "test11_tex_we-itemhook-r", sp50); - MTXTrans(sp20, 0, 52, 0); - MTXConcat(sp50, sp20, sp50); - Hu3DModelPosSet(object->model[2], sp50[0][3], sp50[1][3], sp50[2][3]); - Hu3DModelScaleSet(object->model[2], lbl_1_data_180[temp_r31->unk44], lbl_1_data_180[temp_r31->unk44], lbl_1_data_180[temp_r31->unk44]); - } - if(fn_1_1240() >= 4 && fn_1_1240() <= 8 && lbl_1_bss_91A[1] >= 0) { - Hu3DGLightPointSet(lbl_1_bss_91A[1], (15*sind(object->work[0]))+lbl_1_data_198[temp_r31->unk44][0], lbl_1_data_198[temp_r31->unk44][1], 3); - temp_r29 = &Hu3DData[object->model[2]]; - sp8 = temp_r29->pos; - sp14 = sp8; - sp14.y = 800; - sp8.y = 0; - sp14.z += 1; - Hu3DGLightPosSet(lbl_1_bss_91A[1], temp_r29->pos.x, 140, temp_r29->pos.z, 0, 1, 0); - if(lbl_1_bss_918) { - Hu3DShadowPosSet(&sp14, &Hu3DShadowData.unk_2C, &sp8); - } - object->work[0] += 10.0f; - Hu3DModelAttrReset(object->model[2], 1); - } else { - Hu3DModelAttrSet(object->model[2], 1); - } + Mtx sp50; + Mtx sp20; + Vec sp14; + Vec sp8; + Bss930Work *temp_r31; + ModelData *temp_r29; + temp_r31 = object->data; + if (temp_r31->unk44 > 0 && temp_r31->field_0_bit0) { + if (--temp_r31->unk44 == 0) { + lbl_1_bss_924 = 1; + Hu3DGLightKill(lbl_1_bss_91A[1]); + lbl_1_bss_91A[1] = -1; + Hu3DModelAttrSet(object->model[2], 1); + HuAudFXEmiterPlay(1469, &object->trans); + HuAudCharVoicePlay(temp_r31->unk0C, 291); + } + else { + HuAudFXEmiterPlay(1466, &object->trans); + HuAudCharVoicePlay(temp_r31->unk0C, 296); + } + temp_r31->field_0_bit0 = 0; + temp_r31->field_0_bit1 = 1; + temp_r31->unk2C = 3; + temp_r31->unk34 = 0; + temp_r31->unk46 = 60; + temp_r31->unk60 = 30; + omVibrate(temp_r31->unk02, 12, 6, 6); + } + if (temp_r31->unk46 > 0) { + if (temp_r31->unk60) { + if (--temp_r31->unk60 == 0) { + temp_r31->unk2C = -1; + temp_r31->field_0_bit1 = 0; + } + } + else { + if ((temp_r31->unk46 & 0x2) == 0) { + Hu3DModelAttrReset(object->model[0], 1); + } + else { + Hu3DModelAttrSet(object->model[0], 1); + } + temp_r31->unk46--; + } + } + if (temp_r31->field_0_bit2) { + Hu3DModelObjMtxGet(object->model[0], "test11_tex_we-itemhook-r", sp50); + MTXTrans(sp20, 0, 52, 0); + MTXConcat(sp50, sp20, sp50); + Hu3DModelPosSet(object->model[2], sp50[0][3], sp50[1][3], sp50[2][3]); + Hu3DModelScaleSet(object->model[2], lbl_1_data_180[temp_r31->unk44], lbl_1_data_180[temp_r31->unk44], lbl_1_data_180[temp_r31->unk44]); + } + if (fn_1_1240() >= 4 && fn_1_1240() <= 8 && lbl_1_bss_91A[1] >= 0) { + Hu3DGLightPointSet( + lbl_1_bss_91A[1], (15 * sind(object->work[0])) + lbl_1_data_198[temp_r31->unk44][0], lbl_1_data_198[temp_r31->unk44][1], 3); + temp_r29 = &Hu3DData[object->model[2]]; + sp8 = temp_r29->pos; + sp14 = sp8; + sp14.y = 800; + sp8.y = 0; + sp14.z += 1; + Hu3DGLightPosSet(lbl_1_bss_91A[1], temp_r29->pos.x, 140, temp_r29->pos.z, 0, 1, 0); + if (lbl_1_bss_918) { + Hu3DShadowPosSet(&sp14, &Hu3DShadowData.unk_2C, &sp8); + } + object->work[0] += 10.0f; + Hu3DModelAttrReset(object->model[2], 1); + } + else { + Hu3DModelAttrSet(object->model[2], 1); + } } void fn_1_5C34(omObjData *object); - void fn_1_2EA4(omObjData *object) { - Bss930Work *temp_r30; - Bss930Work4C *temp_r29; - ParticleData *temp_r28; - ModelData *temp_r27; - Mtx sp3C; - Mtx spC; - temp_r30 = object->data; - temp_r29 = temp_r30->unk4C; - switch(temp_r30->unk50) { - case 0: - if(temp_r30->unk0A & PAD_BUTTON_A) { - temp_r30->field_0_bit1 = 1; - temp_r30->unk50 = 1; - temp_r30->unk60 = 15; - temp_r30->unk2C = 3; - temp_r30->unk34 = 0; - HuAudFXEmiterPlay(1465, &object->trans); - } - break; - - case 1: - if(--temp_r30->unk60 == 0) { - Hu3DModelObjMtxGet(object->model[0], "test11_tex_we-itemhook-r", sp3C); - MTXTrans(spC, 0, 2, 50); - MTXConcat(sp3C, spC, sp3C); - Hu3DModelPosSet(object->model[2], sp3C[0][3], sp3C[1][3], sp3C[2][3]); - Hu3DModelScaleSet(object->model[2], 0.5f, 0.5f, 0.5f); - Hu3DModelAttrReset(object->model[2], 1); - Hu3DMotionTimeSet(object->model[2], 0); - Hu3DMotionSpeedSet(object->model[2], 2.0f); - Hu3DModelRotSet(object->model[2], 0, 180.0f+object->rot.y, 0); - Hu3DData[object->model[2]].unk_94 = 0; - Hu3DData[object->model[2]].unk_98 = 2; - Hu3DModelAttrReset(object->model[3], 1); - Hu3DModelPosSet(object->model[3], sp3C[0][3], sp3C[1][3], sp3C[2][3]); - temp_r27 = &Hu3DData[object->model[3]]; - temp_r28 = temp_r27->unk_120; - temp_r28->unk_00 = 0; - temp_r28->unk_04.x = sp3C[0][3]; - temp_r28->unk_04.y = sp3C[1][3]; - temp_r28->unk_04.z = sp3C[2][3]; - temp_r28->unk_10.x = object->rot.y; - temp_r28->unk_3C = 30-(sqrtf((2.0f*temp_r28->unk_04.y)/1.0000001f)/2.0f); - temp_r29->field_0_bit0 = 1; - temp_r30->unk50 = 2; - temp_r30->unk60 = 20; - } - break; - - case 2: - if(--temp_r30->unk60 == 0) { - temp_r30->unk2C = 4; - temp_r30->unk34 = 0; - temp_r29->field_0_bit0 = 0; - temp_r30->unk50 = 3; - temp_r30->unk60 = 30; - } - Hu3DModelObjMtxGet(object->model[0], "test11_tex_we-itemhook-r", sp3C); - MTXTrans(spC, 0, 2, 50); - MTXConcat(sp3C, spC, sp3C); - Hu3DModelPosSet(object->model[2], sp3C[0][3], sp3C[1][3], sp3C[2][3]); - Hu3DModelPosSet(object->model[3], sp3C[0][3], sp3C[1][3], sp3C[2][3]); - fn_1_5C34(object); - break; - - case 3: - if(--temp_r30->unk60 == 0) { - Hu3DModelAttrSet(object->model[2], 1); - Hu3DData[object->model[2]].unk_0E = -1; - temp_r30->field_0_bit1 = 0; - temp_r30->unk2C = -1; - temp_r30->unk50 = 0; - } - break; - } - if(temp_r30->unk50 && fn_1_1240() > 6 && lbl_1_bss_924 < 0) { - temp_r29->field_0_bit0 = 0; - Hu3DModelAttrSet(object->model[2], 1); - Hu3DModelAttrSet(object->model[3], 1); - } - if(temp_r29->field_0_bit0) { - temp_r29->unk4 = object->trans.x+(((float)temp_r29->unk10*(200*sind(object->rot.y)))/4); - temp_r29->unk8 = 75; - temp_r29->unkC = object->trans.z+(((float)temp_r29->unk10*(200*cosd(object->rot.y)))/4); - temp_r29->unk4 = object->trans.x+(200.0*sind(object->rot.y)); - temp_r29->unk8 = 120.00001f; - temp_r29->unkC = object->trans.z+(200.0*cosd(object->rot.y)); - if(temp_r29->unk10 < 4) { - temp_r29->unk10++; - } - } - + Bss930Work *temp_r30; + Bss930Work4C *temp_r29; + ParticleData *temp_r28; + ModelData *temp_r27; + Mtx sp3C; + Mtx spC; + temp_r30 = object->data; + temp_r29 = temp_r30->unk4C; + switch (temp_r30->unk50) { + case 0: + if (temp_r30->unk0A & PAD_BUTTON_A) { + temp_r30->field_0_bit1 = 1; + temp_r30->unk50 = 1; + temp_r30->unk60 = 15; + temp_r30->unk2C = 3; + temp_r30->unk34 = 0; + HuAudFXEmiterPlay(1465, &object->trans); + } + break; + + case 1: + if (--temp_r30->unk60 == 0) { + Hu3DModelObjMtxGet(object->model[0], "test11_tex_we-itemhook-r", sp3C); + MTXTrans(spC, 0, 2, 50); + MTXConcat(sp3C, spC, sp3C); + Hu3DModelPosSet(object->model[2], sp3C[0][3], sp3C[1][3], sp3C[2][3]); + Hu3DModelScaleSet(object->model[2], 0.5f, 0.5f, 0.5f); + Hu3DModelAttrReset(object->model[2], 1); + Hu3DMotionTimeSet(object->model[2], 0); + Hu3DMotionSpeedSet(object->model[2], 2.0f); + Hu3DModelRotSet(object->model[2], 0, 180.0f + object->rot.y, 0); + Hu3DData[object->model[2]].unk_94 = 0; + Hu3DData[object->model[2]].unk_98 = 2; + Hu3DModelAttrReset(object->model[3], 1); + Hu3DModelPosSet(object->model[3], sp3C[0][3], sp3C[1][3], sp3C[2][3]); + temp_r27 = &Hu3DData[object->model[3]]; + temp_r28 = temp_r27->unk_120; + temp_r28->unk_00 = 0; + temp_r28->unk_04.x = sp3C[0][3]; + temp_r28->unk_04.y = sp3C[1][3]; + temp_r28->unk_04.z = sp3C[2][3]; + temp_r28->unk_10.x = object->rot.y; + temp_r28->unk_3C = 30 - (sqrtf((2.0f * temp_r28->unk_04.y) / 1.0000001f) / 2.0f); + temp_r29->field_0_bit0 = 1; + temp_r30->unk50 = 2; + temp_r30->unk60 = 20; + } + break; + + case 2: + if (--temp_r30->unk60 == 0) { + temp_r30->unk2C = 4; + temp_r30->unk34 = 0; + temp_r29->field_0_bit0 = 0; + temp_r30->unk50 = 3; + temp_r30->unk60 = 30; + } + Hu3DModelObjMtxGet(object->model[0], "test11_tex_we-itemhook-r", sp3C); + MTXTrans(spC, 0, 2, 50); + MTXConcat(sp3C, spC, sp3C); + Hu3DModelPosSet(object->model[2], sp3C[0][3], sp3C[1][3], sp3C[2][3]); + Hu3DModelPosSet(object->model[3], sp3C[0][3], sp3C[1][3], sp3C[2][3]); + fn_1_5C34(object); + break; + + case 3: + if (--temp_r30->unk60 == 0) { + Hu3DModelAttrSet(object->model[2], 1); + Hu3DData[object->model[2]].unk_0E = -1; + temp_r30->field_0_bit1 = 0; + temp_r30->unk2C = -1; + temp_r30->unk50 = 0; + } + break; + } + if (temp_r30->unk50 && fn_1_1240() > 6 && lbl_1_bss_924 < 0) { + temp_r29->field_0_bit0 = 0; + Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[3], 1); + } + if (temp_r29->field_0_bit0) { + temp_r29->unk4 = object->trans.x + (((float)temp_r29->unk10 * (200 * sind(object->rot.y))) / 4); + temp_r29->unk8 = 75; + temp_r29->unkC = object->trans.z + (((float)temp_r29->unk10 * (200 * cosd(object->rot.y))) / 4); + temp_r29->unk4 = object->trans.x + (200.0 * sind(object->rot.y)); + temp_r29->unk8 = 120.00001f; + temp_r29->unkC = object->trans.z + (200.0 * cosd(object->rot.y)); + if (temp_r29->unk10 < 4) { + temp_r29->unk10++; + } + } } void fn_1_361C(omObjData *object) { - Bss930Work *temp_r30; - ModelData *temp_r29; - temp_r30 = object->data; - if(temp_r30->field_0_bit2) { - if(fn_1_1240() == 9) { - temp_r30->field_0_bit2 = 0; - temp_r30->unk48 = 0; - temp_r30->unk54.x = 6*sind(object->rot.y); - temp_r30->unk54.y = 20; - temp_r30->unk54.z = 6*cosd(object->rot.y); - temp_r30->unk60 = 30; - temp_r29 = &Hu3DData[object->model[1]]; - temp_r29->rot.y = object->rot.y; - Hu3DModelObjPosGet(object->model[0], "test11_tex_we-itemhook-r", &temp_r29->pos); - Hu3DModelHookReset(object->model[0]); - Hu3DModelAttrReset(object->model[1], 0x8000); - Hu3DModelShadowReset(object->model[1]); - Hu3DModelAttrReset(object->model[0], 1); - } - } else { - temp_r29 = &Hu3DData[object->model[1]]; - temp_r29->pos.x += temp_r30->unk54.x; - temp_r29->pos.y += temp_r30->unk54.y; - temp_r29->pos.z += temp_r30->unk54.z; - temp_r30->unk54.y += -1.0000001f; - temp_r29->rot.x += 30.0f; - if(--temp_r30->unk60 == 0) { - Hu3DModelAttrSet(object->model[1], 1); - Hu3DModelPosSet(object->model[4], temp_r29->pos.x, temp_r29->pos.y, temp_r29->pos.z); - Hu3DModelAttrReset(object->model[4], 1); - if(!temp_r30->unk10) { - HuAudFXPlay(1468); - } - temp_r30->field_0_bit4 = 0; - } - } + Bss930Work *temp_r30; + ModelData *temp_r29; + temp_r30 = object->data; + if (temp_r30->field_0_bit2) { + if (fn_1_1240() == 9) { + temp_r30->field_0_bit2 = 0; + temp_r30->unk48 = 0; + temp_r30->unk54.x = 6 * sind(object->rot.y); + temp_r30->unk54.y = 20; + temp_r30->unk54.z = 6 * cosd(object->rot.y); + temp_r30->unk60 = 30; + temp_r29 = &Hu3DData[object->model[1]]; + temp_r29->rot.y = object->rot.y; + Hu3DModelObjPosGet(object->model[0], "test11_tex_we-itemhook-r", &temp_r29->pos); + Hu3DModelHookReset(object->model[0]); + Hu3DModelAttrReset(object->model[1], 0x8000); + Hu3DModelShadowReset(object->model[1]); + Hu3DModelAttrReset(object->model[0], 1); + } + } + else { + temp_r29 = &Hu3DData[object->model[1]]; + temp_r29->pos.x += temp_r30->unk54.x; + temp_r29->pos.y += temp_r30->unk54.y; + temp_r29->pos.z += temp_r30->unk54.z; + temp_r30->unk54.y += -1.0000001f; + temp_r29->rot.x += 30.0f; + if (--temp_r30->unk60 == 0) { + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelPosSet(object->model[4], temp_r29->pos.x, temp_r29->pos.y, temp_r29->pos.z); + Hu3DModelAttrReset(object->model[4], 1); + if (!temp_r30->unk10) { + HuAudFXPlay(1468); + } + temp_r30->field_0_bit4 = 0; + } + } } void fn_1_38F0(omObjData *object); @@ -1016,766 +1013,764 @@ void fn_1_49C4(omObjData *object); void fn_1_389C(omObjData *object) { - Bss930Work *temp_r30; - temp_r30 = object->data; - if(!temp_r30->unk10) { - fn_1_38F0(object); - } else { - fn_1_49C4(object); - } + Bss930Work *temp_r30; + temp_r30 = object->data; + if (!temp_r30->unk10) { + fn_1_38F0(object); + } + else { + fn_1_49C4(object); + } } typedef struct unkstruct_38F0 { - s16 unk0; - s16 unk2; + s16 unk0; + s16 unk2; } UnkStruct38F0; -UnkStruct38F0 lbl_1_data_1C8[8] = { - -1, -1, - 0, -1, - 1, -1, - 1, 0, - 1, 1, - 0, 1, - -1, 1, - -1, 0 -}; - +UnkStruct38F0 lbl_1_data_1C8[8] = { -1, -1, 0, -1, 1, -1, 1, 0, 1, 1, 0, 1, -1, 1, -1, 0 }; void fn_1_38F0(omObjData *object) { - float temp_f31; - float temp_f30; - float temp_f26; - float temp_f25; - float temp_f22; - - s32 temp_r31; - s32 temp_r30; - Bss930Work *temp_r29; - s16 temp_r27; - s32 temp_r26; - s16 temp_r25; - s16 temp_r24; - u8 temp_r23; - - UnkStruct38F0 sp80[100]; - UnkStruct38F0 sp58[10]; - UnkStruct38F0 sp30[10]; - UnkStruct38F0 sp20[4]; - - temp_r29 = object->data; - temp_f25 = 1; - sp20[3].unk0 = 1+(5+((9*object->trans.x)/1100)); - sp20[3].unk2 = 1+(5+((9*object->trans.z)/1100)); - for(temp_r31=1; temp_r31<11; temp_r31++) { - for(temp_r30=1; temp_r30<11; temp_r30++) { - lbl_1_bss_14[temp_r31][temp_r30].unk8 = 0; - temp_f22 = VECMagPoint(lbl_1_bss_14[temp_r31][temp_r30].unk0, lbl_1_bss_14[temp_r31][temp_r30].unk4, 0); - if(temp_f22 <= 550) { - lbl_1_bss_14[temp_r31][temp_r30].unkC = 0; - for(temp_r26=0; temp_r26trans.x; - temp_f30 = lbl_1_bss_14[temp_r31][temp_r30].unk4-lbl_1_bss_930[1][temp_r26]->trans.z; - temp_f22 = VECMagPoint(temp_f31, temp_f30, 0); - if(temp_f22 <= 1100) { - temp_f26 = cosd(90*(temp_f22/1100)); - temp_f26 = temp_f26*temp_f26; - if(temp_f26 > lbl_1_bss_14[temp_r31][temp_r30].unkC) { - lbl_1_bss_14[temp_r31][temp_r30].unkC = temp_f26; - } - } - } - } else { - lbl_1_bss_14[temp_r31][temp_r30].unkC = -1; - } - } - } - lbl_1_bss_14[sp20[3].unk2][sp20[3].unk0].unk8 = 1; - sp80[0] = sp20[3]; - temp_r27=0; - temp_r25=1; - do { - for(temp_r31=0; temp_r31<8u; temp_r31++) { - sp20[2].unk0 = sp80[temp_r27].unk0+lbl_1_data_1C8[temp_r31].unk0; - sp20[2].unk2 = sp80[temp_r27].unk2+lbl_1_data_1C8[temp_r31].unk2; - if(sp20[2].unk0 < 1 || sp20[2].unk0 >= 11 || sp20[2].unk2 < 1 || sp20[2].unk2 >= 11) { - continue; - } - if(lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unk8) { - continue; - } - if(lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unkC >= 0) { - lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unk8 = lbl_1_bss_14[sp80[temp_r27].unk2][sp80[temp_r27].unk0].unk8+1; - sp80[temp_r25].unk0 = sp20[2].unk0; - sp80[temp_r25].unk2 = sp20[2].unk2; - temp_r25++; - } - } - temp_r27++; - } while(temp_r27 != temp_r25); - temp_f25 = 1.0f; - sp20[0].unk0 = -1; - for(temp_r31=1; temp_r31<11; temp_r31++) { - for(temp_r30=1; temp_r30<11; temp_r30++) { - if(lbl_1_bss_14[temp_r31][temp_r30].unk8 == 0 || lbl_1_bss_14[temp_r31][temp_r30].unk8 > 5) { - continue; - } - if(lbl_1_bss_14[temp_r31][temp_r30].unkC >= 0.0f && lbl_1_bss_14[temp_r31][temp_r30].unkC < temp_f25) { - temp_f25 = lbl_1_bss_14[temp_r31][temp_r30].unkC; - sp20[0].unk0 = temp_r30; - sp20[0].unk2 = temp_r31; - } - } - } - temp_r23 = lbl_1_bss_14[sp20[0].unk2][sp20[0].unk0].unk8; - if(temp_r23 == 1) { - if(lbl_1_bss_14[sp20[3].unk2][sp20[3].unk0].unkC > 0.8f) { - temp_f25 = 1.0f; - for(temp_r31=0; temp_r31<8u; temp_r31++) { - sp20[2].unk0 = sp20[3].unk0+lbl_1_data_1C8[temp_r31].unk0; - sp20[2].unk2 = sp20[3].unk2+lbl_1_data_1C8[temp_r31].unk2; - if(lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unkC >= 0.0f && lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unkC < temp_f25) { - temp_f25 = lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unkC; - sp20[1] = sp20[2]; - } - } - sp30[1].unk0 = sp20[1].unk0; - sp30[1].unk2 = sp20[1].unk2; - } else { - return; - } - } else { - for(temp_r31=1; temp_r31<11; temp_r31++) { - for(temp_r30=1; temp_r30<11; temp_r30++) { - if(lbl_1_bss_14[temp_r31][temp_r30].unk8 >= temp_r23) { - lbl_1_bss_14[temp_r31][temp_r30].unk8 = 0; - } - } - } - lbl_1_bss_14[sp20[0].unk2][sp20[0].unk0].unk8 = temp_r23; - sp80[0] = sp20[3]; - temp_r24 = 1; - temp_f25 = 1.0f; - do { - sp20[1] = sp80[--temp_r24]; - sp58[lbl_1_bss_14[sp20[1].unk2][sp20[1].unk0].unk8 -1] = sp20[1]; - if(sp20[1].unk0 == sp20[0].unk0 && sp20[1].unk2 == sp20[0].unk2) { - temp_f26 = 0; - for(temp_r31=1; temp_r31 temp_f26) { - temp_f26 = lbl_1_bss_14[sp58[temp_r31].unk2][sp58[temp_r31].unk0].unkC; - } - } - if(temp_f26 < temp_f25) { - temp_f25 = temp_f26; - memcpy(sp30, sp58, temp_r23*sizeof(UnkStruct38F0)); - - } - continue; - } - for(temp_r31=0; temp_r31<8u; temp_r31++) { - sp20[2].unk0 = sp20[1].unk0+lbl_1_data_1C8[temp_r31].unk0; - sp20[2].unk2 = sp20[1].unk2+lbl_1_data_1C8[temp_r31].unk2; - if(lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unk8-1 == lbl_1_bss_14[sp20[1].unk2][sp20[1].unk0].unk8) { - sp80[temp_r24++] = sp20[2]; - } - } - } while(temp_r24); - } - if(sp20[0].unk0 >= 0) { - temp_f31 = lbl_1_bss_14[sp30[1].unk2][sp30[1].unk0].unk0-object->trans.x; - temp_f30 = lbl_1_bss_14[sp30[1].unk2][sp30[1].unk0].unk4-object->trans.z; - temp_f22 = VECMagPoint(temp_f31, temp_f30, 0); - if(temp_f22 >= 50.0f) { - temp_r29->unk84 = fn_1_1C80(temp_r29->unk84, atan2d(temp_f31, temp_f30), 0.1f); - temp_r29->unk06 = (69.0f+temp_r29->unk0E)*sind(temp_r29->unk84); - temp_r29->unk07 = (69.0f+temp_r29->unk0E)*-cosd(temp_r29->unk84); - } - } + float temp_f31; + float temp_f30; + float temp_f26; + float temp_f25; + float temp_f22; + + s32 temp_r31; + s32 temp_r30; + Bss930Work *temp_r29; + s16 temp_r27; + s32 temp_r26; + s16 temp_r25; + s16 temp_r24; + u8 temp_r23; + + UnkStruct38F0 sp80[100]; + UnkStruct38F0 sp58[10]; + UnkStruct38F0 sp30[10]; + UnkStruct38F0 sp20[4]; + + temp_r29 = object->data; + temp_f25 = 1; + sp20[3].unk0 = 1 + (5 + ((9 * object->trans.x) / 1100)); + sp20[3].unk2 = 1 + (5 + ((9 * object->trans.z) / 1100)); + for (temp_r31 = 1; temp_r31 < 11; temp_r31++) { + for (temp_r30 = 1; temp_r30 < 11; temp_r30++) { + lbl_1_bss_14[temp_r31][temp_r30].unk8 = 0; + temp_f22 = VECMagPoint(lbl_1_bss_14[temp_r31][temp_r30].unk0, lbl_1_bss_14[temp_r31][temp_r30].unk4, 0); + if (temp_f22 <= 550) { + lbl_1_bss_14[temp_r31][temp_r30].unkC = 0; + for (temp_r26 = 0; temp_r26 < lbl_1_bss_92A[1]; temp_r26++) { + temp_f31 = lbl_1_bss_14[temp_r31][temp_r30].unk0 - lbl_1_bss_930[1][temp_r26]->trans.x; + temp_f30 = lbl_1_bss_14[temp_r31][temp_r30].unk4 - lbl_1_bss_930[1][temp_r26]->trans.z; + temp_f22 = VECMagPoint(temp_f31, temp_f30, 0); + if (temp_f22 <= 1100) { + temp_f26 = cosd(90 * (temp_f22 / 1100)); + temp_f26 = temp_f26 * temp_f26; + if (temp_f26 > lbl_1_bss_14[temp_r31][temp_r30].unkC) { + lbl_1_bss_14[temp_r31][temp_r30].unkC = temp_f26; + } + } + } + } + else { + lbl_1_bss_14[temp_r31][temp_r30].unkC = -1; + } + } + } + lbl_1_bss_14[sp20[3].unk2][sp20[3].unk0].unk8 = 1; + sp80[0] = sp20[3]; + temp_r27 = 0; + temp_r25 = 1; + do { + for (temp_r31 = 0; temp_r31 < 8u; temp_r31++) { + sp20[2].unk0 = sp80[temp_r27].unk0 + lbl_1_data_1C8[temp_r31].unk0; + sp20[2].unk2 = sp80[temp_r27].unk2 + lbl_1_data_1C8[temp_r31].unk2; + if (sp20[2].unk0 < 1 || sp20[2].unk0 >= 11 || sp20[2].unk2 < 1 || sp20[2].unk2 >= 11) { + continue; + } + if (lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unk8) { + continue; + } + if (lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unkC >= 0) { + lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unk8 = lbl_1_bss_14[sp80[temp_r27].unk2][sp80[temp_r27].unk0].unk8 + 1; + sp80[temp_r25].unk0 = sp20[2].unk0; + sp80[temp_r25].unk2 = sp20[2].unk2; + temp_r25++; + } + } + temp_r27++; + } while (temp_r27 != temp_r25); + temp_f25 = 1.0f; + sp20[0].unk0 = -1; + for (temp_r31 = 1; temp_r31 < 11; temp_r31++) { + for (temp_r30 = 1; temp_r30 < 11; temp_r30++) { + if (lbl_1_bss_14[temp_r31][temp_r30].unk8 == 0 || lbl_1_bss_14[temp_r31][temp_r30].unk8 > 5) { + continue; + } + if (lbl_1_bss_14[temp_r31][temp_r30].unkC >= 0.0f && lbl_1_bss_14[temp_r31][temp_r30].unkC < temp_f25) { + temp_f25 = lbl_1_bss_14[temp_r31][temp_r30].unkC; + sp20[0].unk0 = temp_r30; + sp20[0].unk2 = temp_r31; + } + } + } + temp_r23 = lbl_1_bss_14[sp20[0].unk2][sp20[0].unk0].unk8; + if (temp_r23 == 1) { + if (lbl_1_bss_14[sp20[3].unk2][sp20[3].unk0].unkC > 0.8f) { + temp_f25 = 1.0f; + for (temp_r31 = 0; temp_r31 < 8u; temp_r31++) { + sp20[2].unk0 = sp20[3].unk0 + lbl_1_data_1C8[temp_r31].unk0; + sp20[2].unk2 = sp20[3].unk2 + lbl_1_data_1C8[temp_r31].unk2; + if (lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unkC >= 0.0f && lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unkC < temp_f25) { + temp_f25 = lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unkC; + sp20[1] = sp20[2]; + } + } + sp30[1].unk0 = sp20[1].unk0; + sp30[1].unk2 = sp20[1].unk2; + } + else { + return; + } + } + else { + for (temp_r31 = 1; temp_r31 < 11; temp_r31++) { + for (temp_r30 = 1; temp_r30 < 11; temp_r30++) { + if (lbl_1_bss_14[temp_r31][temp_r30].unk8 >= temp_r23) { + lbl_1_bss_14[temp_r31][temp_r30].unk8 = 0; + } + } + } + lbl_1_bss_14[sp20[0].unk2][sp20[0].unk0].unk8 = temp_r23; + sp80[0] = sp20[3]; + temp_r24 = 1; + temp_f25 = 1.0f; + do { + sp20[1] = sp80[--temp_r24]; + sp58[lbl_1_bss_14[sp20[1].unk2][sp20[1].unk0].unk8 - 1] = sp20[1]; + if (sp20[1].unk0 == sp20[0].unk0 && sp20[1].unk2 == sp20[0].unk2) { + temp_f26 = 0; + for (temp_r31 = 1; temp_r31 < temp_r23; temp_r31++) { + if (lbl_1_bss_14[sp58[temp_r31].unk2][sp58[temp_r31].unk0].unkC > temp_f26) { + temp_f26 = lbl_1_bss_14[sp58[temp_r31].unk2][sp58[temp_r31].unk0].unkC; + } + } + if (temp_f26 < temp_f25) { + temp_f25 = temp_f26; + memcpy(sp30, sp58, temp_r23 * sizeof(UnkStruct38F0)); + } + continue; + } + for (temp_r31 = 0; temp_r31 < 8u; temp_r31++) { + sp20[2].unk0 = sp20[1].unk0 + lbl_1_data_1C8[temp_r31].unk0; + sp20[2].unk2 = sp20[1].unk2 + lbl_1_data_1C8[temp_r31].unk2; + if (lbl_1_bss_14[sp20[2].unk2][sp20[2].unk0].unk8 - 1 == lbl_1_bss_14[sp20[1].unk2][sp20[1].unk0].unk8) { + sp80[temp_r24++] = sp20[2]; + } + } + } while (temp_r24); + } + if (sp20[0].unk0 >= 0) { + temp_f31 = lbl_1_bss_14[sp30[1].unk2][sp30[1].unk0].unk0 - object->trans.x; + temp_f30 = lbl_1_bss_14[sp30[1].unk2][sp30[1].unk0].unk4 - object->trans.z; + temp_f22 = VECMagPoint(temp_f31, temp_f30, 0); + if (temp_f22 >= 50.0f) { + temp_r29->unk84 = fn_1_1C80(temp_r29->unk84, atan2d(temp_f31, temp_f30), 0.1f); + temp_r29->unk06 = (69.0f + temp_r29->unk0E) * sind(temp_r29->unk84); + temp_r29->unk07 = (69.0f + temp_r29->unk0E) * -cosd(temp_r29->unk84); + } + } } void fn_1_49C4(omObjData *object) { - float temp_f31; - float temp_f28; - float temp_f27; - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - - Bss930Work *temp_r31; - omObjData *temp_r30; - Bss930Work *temp_r28; - temp_r30 = lbl_1_bss_930[0][0]; - temp_r31 = object->data; - temp_r28 = temp_r30->data; - if(temp_r31->field_0_bit1) { - return; - } - switch(temp_r31->unk70) { - case 0: - temp_f28 = (frand16()*360)>>16; - temp_f31 = (frand16()*550)>>16; - temp_r31->unk74.x = temp_f31*sind(temp_f28); - temp_r31->unk74.y = 0; - temp_r31->unk74.z = temp_f31*cosd(temp_f28); - temp_r31->unk70 = 1; - temp_r31->unk80 = 0; - - case 1: - sp20.x = temp_r30->trans.x+((60.0f*temp_r28->unk1C.x)/4.0f); - sp20.z = temp_r30->trans.z+((60.0f*temp_r28->unk1C.z)/4.0f); - sp2C.x = temp_r31->unk74.x+(temp_r31->unk80*(sp20.x-temp_r31->unk74.x)); - sp2C.y = 0; - sp2C.z = temp_r31->unk74.z+(temp_r31->unk80*(sp20.z-temp_r31->unk74.z)); - VECSubtract(&sp2C, &object->trans, &sp14); - temp_f31 = VECMag(&sp14); - if(temp_f31 > 0.0f) { - if(temp_r31->unk80 < 1.0f) { - if(temp_f31 < 10.0f) { - temp_r31->unk80 += (10.0f/temp_f31); - } else { - temp_r31->unk80 += (2.0f/temp_f31); - } - if(temp_r31->unk80 > 1.0f) { - temp_r31->unk80 = 1.0f; - } - } else { - if(((s32)frand() & 0x1F) == 0) { - temp_r31->unk70 = 0; - } - } - } - temp_f27 = 60.0f+(2.0f*temp_r31->unk0E); - temp_r31->unk84 = fn_1_1C80(temp_r31->unk84, atan2d(sp14.x, sp14.z), 0.1f); - temp_r31->unk06 = temp_f27*sind(temp_r31->unk84); - temp_r31->unk07 = temp_f27*-cosd(temp_r31->unk84); - VECSubtract(&temp_r30->trans, &object->trans, &sp14); - if(VECMag(&sp14) < 200.0f) { - VECNormalize(&sp14, &sp14); - sp8.x = sind(object->rot.y); - sp8.y = 0; - sp8.z = cosd(object->rot.y); - if(VECDotProduct(&sp14, &sp8) >= 0.8f) { - temp_r31->unk0A |= PAD_BUTTON_A; - temp_r31->unk70 = 0; - } - } - if(((s32)frand() & 0x3FF) < 4-temp_r31->unk0E) { - temp_r31->unk0A |= PAD_BUTTON_A; - temp_r31->unk70 = 0; - } - break; - } + float temp_f31; + float temp_f28; + float temp_f27; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + + Bss930Work *temp_r31; + omObjData *temp_r30; + Bss930Work *temp_r28; + temp_r30 = lbl_1_bss_930[0][0]; + temp_r31 = object->data; + temp_r28 = temp_r30->data; + if (temp_r31->field_0_bit1) { + return; + } + switch (temp_r31->unk70) { + case 0: + temp_f28 = (frand16() * 360) >> 16; + temp_f31 = (frand16() * 550) >> 16; + temp_r31->unk74.x = temp_f31 * sind(temp_f28); + temp_r31->unk74.y = 0; + temp_r31->unk74.z = temp_f31 * cosd(temp_f28); + temp_r31->unk70 = 1; + temp_r31->unk80 = 0; + + case 1: + sp20.x = temp_r30->trans.x + ((60.0f * temp_r28->unk1C.x) / 4.0f); + sp20.z = temp_r30->trans.z + ((60.0f * temp_r28->unk1C.z) / 4.0f); + sp2C.x = temp_r31->unk74.x + (temp_r31->unk80 * (sp20.x - temp_r31->unk74.x)); + sp2C.y = 0; + sp2C.z = temp_r31->unk74.z + (temp_r31->unk80 * (sp20.z - temp_r31->unk74.z)); + VECSubtract(&sp2C, &object->trans, &sp14); + temp_f31 = VECMag(&sp14); + if (temp_f31 > 0.0f) { + if (temp_r31->unk80 < 1.0f) { + if (temp_f31 < 10.0f) { + temp_r31->unk80 += (10.0f / temp_f31); + } + else { + temp_r31->unk80 += (2.0f / temp_f31); + } + if (temp_r31->unk80 > 1.0f) { + temp_r31->unk80 = 1.0f; + } + } + else { + if (((s32)frand() & 0x1F) == 0) { + temp_r31->unk70 = 0; + } + } + } + temp_f27 = 60.0f + (2.0f * temp_r31->unk0E); + temp_r31->unk84 = fn_1_1C80(temp_r31->unk84, atan2d(sp14.x, sp14.z), 0.1f); + temp_r31->unk06 = temp_f27 * sind(temp_r31->unk84); + temp_r31->unk07 = temp_f27 * -cosd(temp_r31->unk84); + VECSubtract(&temp_r30->trans, &object->trans, &sp14); + if (VECMag(&sp14) < 200.0f) { + VECNormalize(&sp14, &sp14); + sp8.x = sind(object->rot.y); + sp8.y = 0; + sp8.z = cosd(object->rot.y); + if (VECDotProduct(&sp14, &sp8) >= 0.8f) { + temp_r31->unk0A |= PAD_BUTTON_A; + temp_r31->unk70 = 0; + } + } + if (((s32)frand() & 0x3FF) < 4 - temp_r31->unk0E) { + temp_r31->unk0A |= PAD_BUTTON_A; + temp_r31->unk70 = 0; + } + break; + } } s32 fn_1_5058(void); void fn_1_5004(void) { - s32 i = 0; - omObjData **sp8 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - while(fn_1_5058() && i < 50) { - i++; - } + s32 i = 0; + omObjData **sp8 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + while (fn_1_5058() && i < 50) { + i++; + } } s32 fn_1_5058(void) { - Vec sp14[4]; - Vec sp8; - float temp_f31; - float temp_f30; - s32 temp_r31; - omObjData *temp_r30; - s32 temp_r29; - omObjData **temp_r28; - s32 temp_r27; - omObjData *temp_r26; - omObjData *temp_r25; - temp_r27 = 0; - temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - for(temp_r31=0; temp_r31<4; temp_r31++) { - sp14[temp_r31].x = sp14[temp_r31].y = sp14[temp_r31].z = 0; - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r26 = temp_r28[temp_r31]; - for(temp_r29=temp_r31+1; temp_r29<4; temp_r29++) { - temp_r25 = temp_r28[temp_r29]; - VECSubtract(&temp_r26->trans, &temp_r25->trans, &sp8); - temp_f31 = VECMag(&sp8); - if(temp_f31 < 100.0) { - VECNormalize(&sp8, &sp8); - temp_f30 = 0.0001f+(0.5f*(100.0-temp_f31)); - VECScale(&sp8, &sp8, temp_f30); - VECAdd(&sp14[temp_r31], &sp8, &sp14[temp_r31]); - VECSubtract(&sp14[temp_r29], &sp8, &sp14[temp_r29]); - temp_r27++; - } - } - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r30 = temp_r28[temp_r31]; - VECAdd(&temp_r30->trans, &sp14[temp_r31], &temp_r30->trans); - sp8.x = temp_r30->trans.x; - sp8.y = 0; - sp8.z = temp_r30->trans.z; - temp_f31 = VECMag(&sp8); - if(temp_f31 > 500.0) { - VECNormalize(&sp8, &sp8); - temp_r30->trans.x = 500.0*sp8.x; - temp_r30->trans.z = 500.0*sp8.z; - } - } - return temp_r27; + Vec sp14[4]; + Vec sp8; + float temp_f31; + float temp_f30; + s32 temp_r31; + omObjData *temp_r30; + s32 temp_r29; + omObjData **temp_r28; + s32 temp_r27; + omObjData *temp_r26; + omObjData *temp_r25; + temp_r27 = 0; + temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + sp14[temp_r31].x = sp14[temp_r31].y = sp14[temp_r31].z = 0; + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r26 = temp_r28[temp_r31]; + for (temp_r29 = temp_r31 + 1; temp_r29 < 4; temp_r29++) { + temp_r25 = temp_r28[temp_r29]; + VECSubtract(&temp_r26->trans, &temp_r25->trans, &sp8); + temp_f31 = VECMag(&sp8); + if (temp_f31 < 100.0) { + VECNormalize(&sp8, &sp8); + temp_f30 = 0.0001f + (0.5f * (100.0 - temp_f31)); + VECScale(&sp8, &sp8, temp_f30); + VECAdd(&sp14[temp_r31], &sp8, &sp14[temp_r31]); + VECSubtract(&sp14[temp_r29], &sp8, &sp14[temp_r29]); + temp_r27++; + } + } + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r30 = temp_r28[temp_r31]; + VECAdd(&temp_r30->trans, &sp14[temp_r31], &temp_r30->trans); + sp8.x = temp_r30->trans.x; + sp8.y = 0; + sp8.z = temp_r30->trans.z; + temp_f31 = VECMag(&sp8); + if (temp_f31 > 500.0) { + VECNormalize(&sp8, &sp8); + temp_r30->trans.x = 500.0 * sp8.x; + temp_r30->trans.z = 500.0 * sp8.z; + } + } + return temp_r27; } Vec lbl_1_data_1E8 = { 0, 0, 200 }; -Vec lbl_1_data_1F4[3] = { - { -300, 0, -200 }, - { 0, 0, -200 }, - { 300, 0, -200 } -}; -s32 lbl_1_data_218[6][3] = { - { 0, 1, 2 }, - { 0, 2, 1 }, - { 1, 0, 2 }, - { 1, 2, 0 }, - { 2, 0, 1 }, - { 2, 1, 0 } -}; +Vec lbl_1_data_1F4[3] = { { -300, 0, -200 }, { 0, 0, -200 }, { 300, 0, -200 } }; +s32 lbl_1_data_218[6][3] = { { 0, 1, 2 }, { 0, 2, 1 }, { 1, 0, 2 }, { 1, 2, 0 }, { 2, 0, 1 }, { 2, 1, 0 } }; void fn_1_52BC(void) { - float sp14[3]; - Vec sp8; - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - - s32 temp_r31; - s32 temp_r30; - Bss930Work *temp_r29; - s32 temp_r28; - temp_r29 = lbl_1_bss_930[0][0]->data; - temp_r29->unk64 = lbl_1_data_1E8; - temp_f29 = -1; - for(temp_r30=0; temp_r30<6; temp_r30++) { - temp_f31 = 0; - for(temp_r31=0; temp_r31<3; temp_r31++) { - VECSubtract(&lbl_1_data_1F4[temp_r31], &lbl_1_bss_930[1][lbl_1_data_218[temp_r30][temp_r31]]->trans, &sp8); - sp14[temp_r31] = VECMag(&sp8); - temp_f31 += sp14[temp_r31]; - } - temp_f28 = temp_f31/3; - temp_f30 = 0; - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_f30 += fabs(sp14[temp_r31]-temp_f28); - } - if(temp_f29 < 0 || temp_f30+temp_f31 < temp_f29) { - temp_f29 = temp_f30+temp_f31; - temp_r28 = temp_r30; - } - } - for(temp_r30=0; temp_r30<3; temp_r30++) { - temp_r29 = lbl_1_bss_930[1][lbl_1_data_218[temp_r28][temp_r30]]->data; - temp_r29->unk64 = lbl_1_data_1F4[temp_r30]; - } + float sp14[3]; + Vec sp8; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + + s32 temp_r31; + s32 temp_r30; + Bss930Work *temp_r29; + s32 temp_r28; + temp_r29 = lbl_1_bss_930[0][0]->data; + temp_r29->unk64 = lbl_1_data_1E8; + temp_f29 = -1; + for (temp_r30 = 0; temp_r30 < 6; temp_r30++) { + temp_f31 = 0; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + VECSubtract(&lbl_1_data_1F4[temp_r31], &lbl_1_bss_930[1][lbl_1_data_218[temp_r30][temp_r31]]->trans, &sp8); + sp14[temp_r31] = VECMag(&sp8); + temp_f31 += sp14[temp_r31]; + } + temp_f28 = temp_f31 / 3; + temp_f30 = 0; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_f30 += fabs(sp14[temp_r31] - temp_f28); + } + if (temp_f29 < 0 || temp_f30 + temp_f31 < temp_f29) { + temp_f29 = temp_f30 + temp_f31; + temp_r28 = temp_r30; + } + } + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + temp_r29 = lbl_1_bss_930[1][lbl_1_data_218[temp_r28][temp_r30]]->data; + temp_r29->unk64 = lbl_1_data_1F4[temp_r30]; + } } typedef struct unkstruct_5530 { - s32 unk0; - float unk4; - float unk8; - Vec unkC; + s32 unk0; + float unk4; + float unk8; + Vec unkC; } UnkStruct5530; s32 fn_1_5530(omObjData *arg0, Vec *arg1, Vec *arg2) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - - s32 temp_r30; - s32 temp_r29; - omObjData *temp_r28; - s32 temp_r27; - - omObjData **temp_r24; - s32 temp_r23; - - UnkStruct5530 spB4[4]; - Mtx sp84; - Vec sp78; - Vec sp6C; - Vec sp60; - Vec sp54; - Vec sp48; - Vec sp3C; - Vec sp30; - Vec sp24; - s32 sp14[4]; - float spC[2]; - Bss930Work *sp8; - sp8 = arg0->data; - temp_r24 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - temp_r23 = 0; - sp54.x = arg1->x; - sp54.y = arg1->y; - sp54.z = arg1->z; - VECSubtract(&sp54, &arg0->trans, &sp48); - temp_f30 = VECMag(&sp48); - for(temp_r30=0; temp_r30<4; temp_r30++) { - sp14[temp_r30] = 0; - } - while(1) { - for(temp_r30=0, temp_r29=0; temp_r30<4; temp_r30++) { - temp_r28 = temp_r24[temp_r30]; - if(arg0 == temp_r28 || sp14[temp_r30]) { - continue; - } - temp_f31 = ((temp_r28->trans.x*sp48.x)-(arg0->trans.x*sp48.x)+(temp_r28->trans.y*sp48.y)-(arg0->trans.y*sp48.y)+(temp_r28->trans.z*sp48.z)-(arg0->trans.z*sp48.z))/VECMag2Point(&sp48); - if(temp_f31 < 0.0f || temp_f31 >= 1.0f) { - continue; - } - VECSubtract(&temp_r28->trans, &arg0->trans, &sp3C); - VECCrossProduct(&sp48, &sp3C, &sp24); - sp60.x = (temp_f31*sp48.x)+arg0->trans.x; - sp60.y = (temp_f31*sp48.y)+arg0->trans.y; - sp60.z = (temp_f31*sp48.z)+arg0->trans.z; - spB4[temp_r29].unkC = sp60; - VECSubtract(&temp_r28->trans, &sp60, &sp3C); - if(sp24.y < 0.0f) { - spB4[temp_r29].unk8 = VECMag(&sp3C); - } else { - spB4[temp_r29].unk8 = -VECMag(&sp3C); - } - VECSubtract(&sp60, &arg0->trans, &sp3C); - spB4[temp_r29].unk4 = VECMag(&sp3C); - spB4[temp_r29].unk0 = temp_r30; - temp_r29++; - } - if(temp_r29 == 0) { - break; - } - for(temp_r30=0; temp_r30 spB4[temp_r27].unk4) { - spB4[3] = spB4[temp_r30]; - spB4[temp_r30] = spB4[temp_r27]; - spB4[temp_r27] = spB4[3]; - } - } - } - for(temp_r30=0; temp_r30 50.0) { - sp14[spB4[temp_r30].unk0] = 1; - VECSubtract(&temp_r24[spB4[temp_r30].unk0]->trans, &arg0->trans, &sp3C); - temp_f28 = VECMag(&sp3C); - if(0.0f != temp_f28) { - VECNormalize(&sp3C, &sp3C); - temp_f31 = 100.0/temp_f28; - if(temp_f31 < 0.0f) { - temp_f31 = 0.0f; - } else if(temp_f31 > 1.0f) { - temp_f31 = 1.0f; - } - temp_f29 = asinf(temp_f31); - MTXRotRad(sp84, 'Y', -temp_f29); - MTXMultVec(sp84, &sp3C, &sp30); - sp6C.x = arg0->trans.x+(sp30.x*temp_f30); - sp6C.y = arg0->trans.y+(sp30.y*temp_f30); - sp6C.z = arg0->trans.z+(sp30.z*temp_f30); - VECSubtract(&sp54, &sp6C, &sp30); - spC[0] = VECMag(&sp30); - MTXRotRad(sp84, 'Y', temp_f29); - MTXMultVec(sp84, &sp3C, &sp30); - sp78.x = arg0->trans.x+(sp30.x*temp_f30); - sp78.y = arg0->trans.y+(sp30.y*temp_f30); - sp78.z = arg0->trans.z+(sp30.z*temp_f30); - VECSubtract(&sp54, &sp78, &sp30); - spC[1] = VECMag(&sp30); - if(spC[0] < spC[1]) { - sp54 = sp6C; - } else { - sp54 = sp78; - } - temp_r23 = 1; - break; - } - } - } - if(temp_r30 >= temp_r29) { - break; - } - VECSubtract(&sp54, &arg0->trans, &sp48); - } - arg2->x = sp54.x; - arg2->y = sp54.y; - arg2->z = sp54.z; - return temp_r23; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + + s32 temp_r30; + s32 temp_r29; + omObjData *temp_r28; + s32 temp_r27; + + omObjData **temp_r24; + s32 temp_r23; + + UnkStruct5530 spB4[4]; + Mtx sp84; + Vec sp78; + Vec sp6C; + Vec sp60; + Vec sp54; + Vec sp48; + Vec sp3C; + Vec sp30; + Vec sp24; + s32 sp14[4]; + float spC[2]; + Bss930Work *sp8; + sp8 = arg0->data; + temp_r24 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + temp_r23 = 0; + sp54.x = arg1->x; + sp54.y = arg1->y; + sp54.z = arg1->z; + VECSubtract(&sp54, &arg0->trans, &sp48); + temp_f30 = VECMag(&sp48); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + sp14[temp_r30] = 0; + } + while (1) { + for (temp_r30 = 0, temp_r29 = 0; temp_r30 < 4; temp_r30++) { + temp_r28 = temp_r24[temp_r30]; + if (arg0 == temp_r28 || sp14[temp_r30]) { + continue; + } + temp_f31 = ((temp_r28->trans.x * sp48.x) - (arg0->trans.x * sp48.x) + (temp_r28->trans.y * sp48.y) - (arg0->trans.y * sp48.y) + + (temp_r28->trans.z * sp48.z) - (arg0->trans.z * sp48.z)) + / VECMag2Point(&sp48); + if (temp_f31 < 0.0f || temp_f31 >= 1.0f) { + continue; + } + VECSubtract(&temp_r28->trans, &arg0->trans, &sp3C); + VECCrossProduct(&sp48, &sp3C, &sp24); + sp60.x = (temp_f31 * sp48.x) + arg0->trans.x; + sp60.y = (temp_f31 * sp48.y) + arg0->trans.y; + sp60.z = (temp_f31 * sp48.z) + arg0->trans.z; + spB4[temp_r29].unkC = sp60; + VECSubtract(&temp_r28->trans, &sp60, &sp3C); + if (sp24.y < 0.0f) { + spB4[temp_r29].unk8 = VECMag(&sp3C); + } + else { + spB4[temp_r29].unk8 = -VECMag(&sp3C); + } + VECSubtract(&sp60, &arg0->trans, &sp3C); + spB4[temp_r29].unk4 = VECMag(&sp3C); + spB4[temp_r29].unk0 = temp_r30; + temp_r29++; + } + if (temp_r29 == 0) { + break; + } + for (temp_r30 = 0; temp_r30 < temp_r29 - 1; temp_r30++) { + for (temp_r27 = temp_r30 + 1; temp_r27 < temp_r29; temp_r27++) { + if (spB4[temp_r30].unk4 > spB4[temp_r27].unk4) { + spB4[3] = spB4[temp_r30]; + spB4[temp_r30] = spB4[temp_r27]; + spB4[temp_r27] = spB4[3]; + } + } + } + for (temp_r30 = 0; temp_r30 < temp_r29; temp_r30++) { + if (fabs(spB4[temp_r30].unk8) < 100.0 && spB4[temp_r30].unk4 > 50.0) { + sp14[spB4[temp_r30].unk0] = 1; + VECSubtract(&temp_r24[spB4[temp_r30].unk0]->trans, &arg0->trans, &sp3C); + temp_f28 = VECMag(&sp3C); + if (0.0f != temp_f28) { + VECNormalize(&sp3C, &sp3C); + temp_f31 = 100.0 / temp_f28; + if (temp_f31 < 0.0f) { + temp_f31 = 0.0f; + } + else if (temp_f31 > 1.0f) { + temp_f31 = 1.0f; + } + temp_f29 = asinf(temp_f31); + MTXRotRad(sp84, 'Y', -temp_f29); + MTXMultVec(sp84, &sp3C, &sp30); + sp6C.x = arg0->trans.x + (sp30.x * temp_f30); + sp6C.y = arg0->trans.y + (sp30.y * temp_f30); + sp6C.z = arg0->trans.z + (sp30.z * temp_f30); + VECSubtract(&sp54, &sp6C, &sp30); + spC[0] = VECMag(&sp30); + MTXRotRad(sp84, 'Y', temp_f29); + MTXMultVec(sp84, &sp3C, &sp30); + sp78.x = arg0->trans.x + (sp30.x * temp_f30); + sp78.y = arg0->trans.y + (sp30.y * temp_f30); + sp78.z = arg0->trans.z + (sp30.z * temp_f30); + VECSubtract(&sp54, &sp78, &sp30); + spC[1] = VECMag(&sp30); + if (spC[0] < spC[1]) { + sp54 = sp6C; + } + else { + sp54 = sp78; + } + temp_r23 = 1; + break; + } + } + } + if (temp_r30 >= temp_r29) { + break; + } + VECSubtract(&sp54, &arg0->trans, &sp48); + } + arg2->x = sp54.x; + arg2->y = sp54.y; + arg2->z = sp54.z; + return temp_r23; } float fn_1_5D78(float arg8, float arg9, float argA, float argB, float argC, float argD, float argE); void fn_1_5C34(omObjData *object) { - float temp_f31; - omObjData *temp_r31; - Bss930Work4C *temp_r30; - Bss930Work *temp_r28; - Bss930Work *temp_r27; - temp_r31 = lbl_1_bss_930[0][0]; - temp_r27 = object->data; - temp_r28 = temp_r31->data; - temp_r30 = temp_r27->unk4C; - if(temp_r28->unk46 > 0 || !temp_r30->field_0_bit0) { - return; - } - temp_f31 = fn_1_5D78(object->trans.x, object->trans.z, temp_r30->unk4, temp_r30->unkC, temp_r31->trans.x, temp_r31->trans.z, 50.0f); - if(temp_f31 >= 0.0f && temp_f31 < 1.0f) { - temp_r28->field_0_bit0 = 1; - } + float temp_f31; + omObjData *temp_r31; + Bss930Work4C *temp_r30; + Bss930Work *temp_r28; + Bss930Work *temp_r27; + temp_r31 = lbl_1_bss_930[0][0]; + temp_r27 = object->data; + temp_r28 = temp_r31->data; + temp_r30 = temp_r27->unk4C; + if (temp_r28->unk46 > 0 || !temp_r30->field_0_bit0) { + return; + } + temp_f31 = fn_1_5D78(object->trans.x, object->trans.z, temp_r30->unk4, temp_r30->unkC, temp_r31->trans.x, temp_r31->trans.z, 50.0f); + if (temp_f31 >= 0.0f && temp_f31 < 1.0f) { + temp_r28->field_0_bit0 = 1; + } } void fn_1_5D18(omObjData *object) { - Bss930Work *temp_r31; - temp_r31 = object->data; - CharModelKill(temp_r31->unk0C); - if(temp_r31->unk4C != NULL) { - HuMemDirectFree(temp_r31->unk4C); - } - HuMemDirectFree(temp_r31); - temp_r31 = NULL; + Bss930Work *temp_r31; + temp_r31 = object->data; + CharModelKill(temp_r31->unk0C); + if (temp_r31->unk4C != NULL) { + HuMemDirectFree(temp_r31->unk4C); + } + HuMemDirectFree(temp_r31); + temp_r31 = NULL; } float fn_1_5D78(float arg8, float arg9, float argA, float argB, float argC, float argD, float argE) { - float spC; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - float temp_f26; - float temp_f25; - temp_f26 = (arg9 * arg9) + (((argB * argB) + ((arg8 * arg8) + ((argA * argA) - (2.0f * arg8 * argA)))) - (2.0f * arg9 * argB)); - temp_f27 = 2.0f * (((arg9 * argD) + (((arg9 * argB) + (((arg8 * argC) + ((arg8 * argA) - (argA * argC))) - (arg8 * arg8))) - (argB * argD))) - (arg9 * arg9)); + float spC; + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + temp_f26 = (arg9 * arg9) + (((argB * argB) + ((arg8 * arg8) + ((argA * argA) - (2.0f * arg8 * argA)))) - (2.0f * arg9 * argB)); + temp_f27 = 2.0f + * (((arg9 * argD) + (((arg9 * argB) + (((arg8 * argC) + ((arg8 * argA) - (argA * argC))) - (arg8 * arg8))) - (argB * argD))) - (arg9 * arg9)); temp_f25 = ((argD * argD) + (((arg9 * arg9) + ((argC * argC) + ((arg8 * arg8) - (2.0f * arg8 * argC)))) - (2.0f * arg9 * argD))) - (argE * argE); - if(0.0f == temp_f26) { - if(0.0f != temp_f27) { - return -temp_f25/temp_f27; - } else { - return -1; - } - } else { - temp_f30 = (temp_f27 * temp_f27) - (4.0f * temp_f26 * temp_f25); - if(temp_f30 < 0.0) { - return -1; - } - temp_f30 = sqrtf(temp_f30); - temp_f29 = (-temp_f27 + temp_f30) / (2.0f * temp_f26); - temp_f28 = (-temp_f27 - temp_f30) / (2.0f * temp_f26); - if(temp_f29 < temp_f28) { - if(temp_f29 >= 0.0f && temp_f29 < 1.0f) { - return temp_f29; - } else { - if(temp_f28 >= 0.0f && temp_f28 < 1.0f) { - return temp_f28; - } - } - } else { - if(temp_f28 >= 0.0f && temp_f28 < 1.0f) { - return temp_f28; - } else { - if(temp_f29 >= 0.0f && temp_f29 < 1.0f) { - return temp_f29; - } - } - } - return -1; - } + if (0.0f == temp_f26) { + if (0.0f != temp_f27) { + return -temp_f25 / temp_f27; + } + else { + return -1; + } + } + else { + temp_f30 = (temp_f27 * temp_f27) - (4.0f * temp_f26 * temp_f25); + if (temp_f30 < 0.0) { + return -1; + } + temp_f30 = sqrtf(temp_f30); + temp_f29 = (-temp_f27 + temp_f30) / (2.0f * temp_f26); + temp_f28 = (-temp_f27 - temp_f30) / (2.0f * temp_f26); + if (temp_f29 < temp_f28) { + if (temp_f29 >= 0.0f && temp_f29 < 1.0f) { + return temp_f29; + } + else { + if (temp_f28 >= 0.0f && temp_f28 < 1.0f) { + return temp_f28; + } + } + } + else { + if (temp_f28 >= 0.0f && temp_f28 < 1.0f) { + return temp_f28; + } + else { + if (temp_f29 >= 0.0f && temp_f29 < 1.0f) { + return temp_f29; + } + } + } + return -1; + } } void fn_1_613C(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - - if(!particle->unk_00) { - particle->unk_00 = 1; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r31++, temp_r29++) { - temp_r31->unk08.x = (4.0f*((1.0f/256.0f)*frand8()))+8; - temp_r31->unk34.x = (4.0f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1)); - temp_r31->unk34.y = (64.0f*((1.0f/256.0f)*frand8())); - temp_r31->unk34.z = (4.0f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1)); - temp_r31->unk30 = 360.0f*((1.0f/256.0f)*frand8()); - temp_r31->unk00_s16 = frand8(); - temp_r31->unk02 = (frand() & 0x3)+4; - } - temp_f29 = temp_f28 = 0; - } else { - temp_f29 = (particle->unk_04.x-model->pos.x); - temp_f28 = (particle->unk_04.z-model->pos.z); - } - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r31++, temp_r29++) { - temp_f30 = temp_r31->unk00_s16/255.0f; - temp_f31 = temp_f30*temp_f30; - temp_r31->unk34.x += temp_f29*temp_f31; - temp_r31->unk34.y = 60.0f*temp_f30; - temp_r31->unk34.z += temp_f28*temp_f31; - temp_r31->unk40.a = 255.0f*(1.0f-temp_f30); - temp_f31 = 0.5*(1+sind(270.0f*temp_f30)); - temp_r31->unk2C = temp_f31*(temp_r31->unk08.x*temp_f31); - temp_r31->unk00_s16 += temp_r31->unk02; - if(temp_r31->unk00_s16 > 255) { - temp_r31->unk34.x = (4.0f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1)); - temp_r31->unk34.y = 0; - temp_r31->unk34.z = (4.0f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1)); - temp_r31->unk00_s16 = 0; - } - } - DCStoreRangeNoSync(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - particle->unk_04.x = model->pos.x; - particle->unk_04.z = model->pos.z; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + + if (!particle->unk_00) { + particle->unk_00 = 1; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r31++, temp_r29++) { + temp_r31->unk08.x = (4.0f * ((1.0f / 256.0f) * frand8())) + 8; + temp_r31->unk34.x = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1)); + temp_r31->unk34.y = (64.0f * ((1.0f / 256.0f) * frand8())); + temp_r31->unk34.z = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1)); + temp_r31->unk30 = 360.0f * ((1.0f / 256.0f) * frand8()); + temp_r31->unk00_s16 = frand8(); + temp_r31->unk02 = (frand() & 0x3) + 4; + } + temp_f29 = temp_f28 = 0; + } + else { + temp_f29 = (particle->unk_04.x - model->pos.x); + temp_f28 = (particle->unk_04.z - model->pos.z); + } + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r31++, temp_r29++) { + temp_f30 = temp_r31->unk00_s16 / 255.0f; + temp_f31 = temp_f30 * temp_f30; + temp_r31->unk34.x += temp_f29 * temp_f31; + temp_r31->unk34.y = 60.0f * temp_f30; + temp_r31->unk34.z += temp_f28 * temp_f31; + temp_r31->unk40.a = 255.0f * (1.0f - temp_f30); + temp_f31 = 0.5 * (1 + sind(270.0f * temp_f30)); + temp_r31->unk2C = temp_f31 * (temp_r31->unk08.x * temp_f31); + temp_r31->unk00_s16 += temp_r31->unk02; + if (temp_r31->unk00_s16 > 255) { + temp_r31->unk34.x = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1)); + temp_r31->unk34.y = 0; + temp_r31->unk34.z = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1)); + temp_r31->unk00_s16 = 0; + } + } + DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + particle->unk_04.x = model->pos.x; + particle->unk_04.z = model->pos.z; } void fn_1_6640(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - HsfanimStruct01 *temp_r31; - s32 temp_r28; - s32 temp_r27; - GXColor sp8 = { 0, 0, 0, 255 }; - if(!particle->unk_00) { - particle->unk_00 = 1; - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r31++, temp_r28++) { - temp_r31->unk2C = 15; - temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; - temp_f31 = particle->unk_10.x+(10.0f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1.0f)); - temp_f30 = 100.0f*(0.1f*((1.0f/256.0f)*((s32)frand() & 0xFF)))+10; - temp_r31->unk08.x = temp_f30*sind(temp_f31); - temp_r31->unk08.y = 100.0f*(0.02f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1.0f)); - temp_r31->unk08.z = temp_f30*cosd(temp_f31); - temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = 255; - temp_r31->unk40.a = 0; - temp_r31->unk00_s16 = ((float)particle->unk_3C)*((float)temp_r28/(float)particle->unk_30); - } - } else { - temp_f29 = (particle->unk_04.x-model->pos.x); - temp_f28 = (particle->unk_04.z-model->pos.z); - } - temp_r27 = 0; - temp_r31 = particle->unk_48; - for(temp_r28=0; temp_r28unk_30; temp_r31++, temp_r28++) { - if(temp_r31->unk00_s16 >= 0) { - if(temp_r31->unk00_s16 == 0) { - temp_r31->unk34.x += temp_r31->unk08.x+temp_f29; - temp_r31->unk34.y += temp_r31->unk08.y; - temp_r31->unk34.z += temp_r31->unk08.z+temp_f28; - temp_r31->unk08.y += -1.0000001f; - if(temp_r31->unk40.a) { - if(--temp_r31->unk40.a == 0) { - temp_r31->unk00_s16 = -1; - } - } - if(temp_r31->unk34.y < 0.0f) { - temp_r31->unk34.y = 0; - temp_r31->unk00_s16 = -1; - temp_r31->unk40.a = 0; - } - } else { - if(--temp_r31->unk00_s16 == 0) { - temp_r31->unk40.a = 255; - } - } - } else { - temp_r27++; - } - } - if(temp_r27 == particle->unk_30) { - model->attr |= 0x1; - } - DCStoreRangeNoSync(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - particle->unk_04.x = model->pos.x; - particle->unk_04.z = model->pos.z; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + HsfanimStruct01 *temp_r31; + s32 temp_r28; + s32 temp_r27; + GXColor sp8 = { 0, 0, 0, 255 }; + if (!particle->unk_00) { + particle->unk_00 = 1; + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r31++, temp_r28++) { + temp_r31->unk2C = 15; + temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; + temp_f31 = particle->unk_10.x + (10.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f)); + temp_f30 = 100.0f * (0.1f * ((1.0f / 256.0f) * ((s32)frand() & 0xFF))) + 10; + temp_r31->unk08.x = temp_f30 * sind(temp_f31); + temp_r31->unk08.y = 100.0f * (0.02f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f)); + temp_r31->unk08.z = temp_f30 * cosd(temp_f31); + temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = 255; + temp_r31->unk40.a = 0; + temp_r31->unk00_s16 = ((float)particle->unk_3C) * ((float)temp_r28 / (float)particle->unk_30); + } + } + else { + temp_f29 = (particle->unk_04.x - model->pos.x); + temp_f28 = (particle->unk_04.z - model->pos.z); + } + temp_r27 = 0; + temp_r31 = particle->unk_48; + for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r31++, temp_r28++) { + if (temp_r31->unk00_s16 >= 0) { + if (temp_r31->unk00_s16 == 0) { + temp_r31->unk34.x += temp_r31->unk08.x + temp_f29; + temp_r31->unk34.y += temp_r31->unk08.y; + temp_r31->unk34.z += temp_r31->unk08.z + temp_f28; + temp_r31->unk08.y += -1.0000001f; + if (temp_r31->unk40.a) { + if (--temp_r31->unk40.a == 0) { + temp_r31->unk00_s16 = -1; + } + } + if (temp_r31->unk34.y < 0.0f) { + temp_r31->unk34.y = 0; + temp_r31->unk00_s16 = -1; + temp_r31->unk40.a = 0; + } + } + else { + if (--temp_r31->unk00_s16 == 0) { + temp_r31->unk40.a = 255; + } + } + } + else { + temp_r27++; + } + } + if (temp_r27 == particle->unk_30) { + model->attr |= 0x1; + } + DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + particle->unk_04.x = model->pos.x; + particle->unk_04.z = model->pos.z; } void fn_1_6AE8(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s16 temp_r28; - s32 temp_r27; // ! - uninitialized - - if(!particle->unk_00) { - particle->unk_00 = 1; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r31++, temp_r29++) { - temp_r31->unk2C = 50; - temp_r31->unk34.x = 0; - temp_r31->unk34.y = 0; - temp_r31->unk34.z = 0; - temp_r31->unk08.x = 100.0f*(0.05f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1.0f)); - temp_r31->unk08.y = 100.0f*(0.05f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1.0f)); - temp_r31->unk08.z = 100.0f*(0.05f*(((1.0f/256.0f)*((s32)frand() & 0x1FF))-1.0f)); - temp_r31->unk40.a = 128; - temp_r31->unk00_s16 = 0; - } - } - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk00_s16 < 0) { - temp_r27++; - continue; - } - temp_r31->unk34.x += temp_r31->unk08.x; - temp_r31->unk34.y += temp_r31->unk08.y; - temp_r31->unk34.z += temp_r31->unk08.z; - temp_r31->unk08.x *= 0.92f; - temp_r31->unk08.y *= 0.92f; - temp_r31->unk08.z *= 0.92f; - temp_r28 = temp_r31->unk40.a; - temp_r28 -= 4; - if(temp_r28 < 0) { - temp_r31->unk00_s16 = -1; - temp_r28 = 0; - } - temp_r31->unk40.a = temp_r28; - } - if(temp_r27 == particle->unk_30) { - model->attr |= 0x1; - } - DCStoreRangeNoSync(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s16 temp_r28; + s32 temp_r27; // ! - uninitialized + + if (!particle->unk_00) { + particle->unk_00 = 1; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r31++, temp_r29++) { + temp_r31->unk2C = 50; + temp_r31->unk34.x = 0; + temp_r31->unk34.y = 0; + temp_r31->unk34.z = 0; + temp_r31->unk08.x = 100.0f * (0.05f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f)); + temp_r31->unk08.y = 100.0f * (0.05f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f)); + temp_r31->unk08.z = 100.0f * (0.05f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f)); + temp_r31->unk40.a = 128; + temp_r31->unk00_s16 = 0; + } + } + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk00_s16 < 0) { + temp_r27++; + continue; + } + temp_r31->unk34.x += temp_r31->unk08.x; + temp_r31->unk34.y += temp_r31->unk08.y; + temp_r31->unk34.z += temp_r31->unk08.z; + temp_r31->unk08.x *= 0.92f; + temp_r31->unk08.y *= 0.92f; + temp_r31->unk08.z *= 0.92f; + temp_r28 = temp_r31->unk40.a; + temp_r28 -= 4; + if (temp_r28 < 0) { + temp_r31->unk00_s16 = -1; + temp_r28 = 0; + } + temp_r31->unk40.a = temp_r28; + } + if (temp_r27 == particle->unk_30) { + model->attr |= 0x1; + } + DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_6DEC(s16 arg0, u32 arg1) { - HsfData *temp_r31; - HsfMaterial *temp_r30; - s32 temp_r29; - ModelData *temp_r28; - temp_r28 = &Hu3DData[arg0]; - temp_r31 = temp_r28->hsfData; - temp_r30 = temp_r31->material; - for(temp_r29=0; temp_r29materialCnt; temp_r29++, temp_r30++) { - temp_r30->flags |= arg1; - } - + HsfData *temp_r31; + HsfMaterial *temp_r30; + s32 temp_r29; + ModelData *temp_r28; + temp_r28 = &Hu3DData[arg0]; + temp_r31 = temp_r28->hsfData; + temp_r30 = temp_r31->material; + for (temp_r29 = 0; temp_r29 < temp_r31->materialCnt; temp_r29++, temp_r30++) { + temp_r30->flags |= arg1; + } } void fn_1_709C(s32 arg0, s32 arg1, float arg2); @@ -1784,61 +1779,61 @@ void fn_1_72EC(omObjData *object); void fn_1_6E5C(omObjData *object) { - Vec sp14; - Vec sp8; - - fn_1_709C(0, 0, 0); - sp14.x = (((sind(CRot.y)*cosd(CRot.x))*CZoom)+Center.x); - sp14.y = (-sind(CRot.x)*CZoom)+Center.y; - sp14.z = ((cosd(CRot.y)*cosd(CRot.x))*CZoom)+Center.z; - VECSubtract(&Center, &sp14, &sp8); - VECNormalize(&sp8, &sp8); - HuAudFXListnerSetEX(&sp14, &sp8, 10000, 566.6667, 0, 300, 300); - object->func = fn_1_72EC; + Vec sp14; + Vec sp8; + + fn_1_709C(0, 0, 0); + sp14.x = (((sind(CRot.y) * cosd(CRot.x)) * CZoom) + Center.x); + sp14.y = (-sind(CRot.x) * CZoom) + Center.y; + sp14.z = ((cosd(CRot.y) * cosd(CRot.x)) * CZoom) + Center.z; + VECSubtract(&Center, &sp14, &sp8); + VECNormalize(&sp8, &sp8); + HuAudFXListnerSetEX(&sp14, &sp8, 10000, 566.6667, 0, 300, 300); + object->func = fn_1_72EC; } void fn_1_709C(s32 arg0, s32 arg1, float arg2) { - CZoom = lbl_1_data_0[arg0].zoom+(arg2*(lbl_1_data_0[arg1].zoom-lbl_1_data_0[arg0].zoom)); - Center.x = lbl_1_data_0[arg0].pos.x+(arg2*(lbl_1_data_0[arg1].pos.x-lbl_1_data_0[arg0].pos.x)); - Center.y = lbl_1_data_0[arg0].pos.y+(arg2*(lbl_1_data_0[arg1].pos.y-lbl_1_data_0[arg0].pos.y)); - Center.z = lbl_1_data_0[arg0].pos.z+(arg2*(lbl_1_data_0[arg1].pos.z-lbl_1_data_0[arg0].pos.z)); - CRot.x = lbl_1_data_0[arg0].rot.x+(arg2*(lbl_1_data_0[arg1].rot.x-lbl_1_data_0[arg0].rot.x)); - CRot.y = lbl_1_data_0[arg0].rot.y+(arg2*(lbl_1_data_0[arg1].rot.y-lbl_1_data_0[arg0].rot.y)); - CRot.z = lbl_1_data_0[arg0].rot.z+(arg2*(lbl_1_data_0[arg1].rot.z-lbl_1_data_0[arg0].rot.z)); + CZoom = lbl_1_data_0[arg0].zoom + (arg2 * (lbl_1_data_0[arg1].zoom - lbl_1_data_0[arg0].zoom)); + Center.x = lbl_1_data_0[arg0].pos.x + (arg2 * (lbl_1_data_0[arg1].pos.x - lbl_1_data_0[arg0].pos.x)); + Center.y = lbl_1_data_0[arg0].pos.y + (arg2 * (lbl_1_data_0[arg1].pos.y - lbl_1_data_0[arg0].pos.y)); + Center.z = lbl_1_data_0[arg0].pos.z + (arg2 * (lbl_1_data_0[arg1].pos.z - lbl_1_data_0[arg0].pos.z)); + CRot.x = lbl_1_data_0[arg0].rot.x + (arg2 * (lbl_1_data_0[arg1].rot.x - lbl_1_data_0[arg0].rot.x)); + CRot.y = lbl_1_data_0[arg0].rot.y + (arg2 * (lbl_1_data_0[arg1].rot.y - lbl_1_data_0[arg0].rot.y)); + CRot.z = lbl_1_data_0[arg0].rot.z + (arg2 * (lbl_1_data_0[arg1].rot.z - lbl_1_data_0[arg0].rot.z)); } float lbl_1_data_260[2] = { 0, 0 }; void fn_1_72EC(omObjData *object) { - Vec sp14; - Vec sp8; - switch(fn_1_1240()) { - case 2: - fn_1_709C(0, 1, sind(90.0f*lbl_1_data_260[0])); - if(lbl_1_data_260[0] < 1.0f) { - lbl_1_data_260[0] += 5.0f/240.0f; - if(lbl_1_data_260[0] > 1.0f) { - lbl_1_data_260[0] = 1.0f; - } - } - break; - - case 5: - fn_1_709C(1, 0, sind(90.0f*lbl_1_data_260[1])); - if(lbl_1_data_260[1] < 1.0f) { - lbl_1_data_260[1] += 10.0f/360.0f; - if(lbl_1_data_260[1] > 1.0f) { - lbl_1_data_260[1] = 1.0f; - } - } - break; - } - sp14.x = (((sind(CRot.y)*cosd(CRot.x))*CZoom)+Center.x); - sp14.y = (-sind(CRot.x)*CZoom)+Center.y; - sp14.z = ((cosd(CRot.y)*cosd(CRot.x))*CZoom)+Center.z; - VECSubtract(&Center, &sp14, &sp8); - VECNormalize(&sp8, &sp8); - HuAudFXListnerUpdate(&sp14, &sp8); + Vec sp14; + Vec sp8; + switch (fn_1_1240()) { + case 2: + fn_1_709C(0, 1, sind(90.0f * lbl_1_data_260[0])); + if (lbl_1_data_260[0] < 1.0f) { + lbl_1_data_260[0] += 5.0f / 240.0f; + if (lbl_1_data_260[0] > 1.0f) { + lbl_1_data_260[0] = 1.0f; + } + } + break; + + case 5: + fn_1_709C(1, 0, sind(90.0f * lbl_1_data_260[1])); + if (lbl_1_data_260[1] < 1.0f) { + lbl_1_data_260[1] += 10.0f / 360.0f; + if (lbl_1_data_260[1] > 1.0f) { + lbl_1_data_260[1] = 1.0f; + } + } + break; + } + sp14.x = (((sind(CRot.y) * cosd(CRot.x)) * CZoom) + Center.x); + sp14.y = (-sind(CRot.x) * CZoom) + Center.y; + sp14.z = ((cosd(CRot.y) * cosd(CRot.x)) * CZoom) + Center.z; + VECSubtract(&Center, &sp14, &sp8); + VECNormalize(&sp8, &sp8); + HuAudFXListnerUpdate(&sp14, &sp8); } diff --git a/src/REL/m416Dll/map.c b/src/REL/m416Dll/map.c index 76dd799c..ea6a46bd 100644 --- a/src/REL/m416Dll/map.c +++ b/src/REL/m416Dll/map.c @@ -1,40 +1,35 @@ +#include "game/audio.h" +#include "game/chrman.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" -#include "game/hsfman.h" -#include "game/hsfanim.h" -#include "game/hsfmotion.h" -#include "game/audio.h" -#include "game/wipe.h" -#include "game/sprite.h" -#include "game/chrman.h" #include "game/pad.h" -#include "game/gamework_data.h" -#include "game/minigame_seq.h" -#include "game/frand.h" +#include "game/sprite.h" +#include "game/wipe.h" -#include "math.h" #include "ext_math.h" +#include "math.h" #include "REL/m416Dll.h" GXColor lbl_1_data_268 = { 0, 0, 0, 255 }; Vec lbl_1_data_26C[8] = { - { 70, 0, 70 }, - { 70, 0, -70 }, - { -70, 0, -70 }, - { -70, 0, 70 }, - { 70, 0, 70 }, - { 70, 0, -70 }, - { -70, 0, -70 }, - { -70, 0, 70 }, -}; -Vec lbl_1_data_2CC[2] = { - { 370, 615, -245 }, - { -370, 615, -245 } -}; -float lbl_1_data_2E4[2] = { - 0, 1 + { 70, 0, 70 }, + { 70, 0, -70 }, + { -70, 0, -70 }, + { -70, 0, 70 }, + { 70, 0, 70 }, + { 70, 0, -70 }, + { -70, 0, -70 }, + { -70, 0, 70 }, }; +Vec lbl_1_data_2CC[2] = { { 370, 615, -245 }, { -370, 615, -245 } }; +float lbl_1_data_2E4[2] = { 0, 1 }; omObjData *lbl_1_bss_118C; omObjData *lbl_1_bss_1188; @@ -58,274 +53,272 @@ void fn_1_8FF0(void); void fn_1_79D0(Process *objman) { - lbl_1_bss_118C = omAddObjEx(objman, 20, 2, 0, -1, fn_1_7A74); - lbl_1_bss_1188 = omAddObjEx(objman, 20, 10, 0, -1, fn_1_7F30); - fn_1_8EA0(); + lbl_1_bss_118C = omAddObjEx(objman, 20, 2, 0, -1, fn_1_7A74); + lbl_1_bss_1188 = omAddObjEx(objman, 20, 10, 0, -1, fn_1_7F30); + fn_1_8EA0(); } void fn_1_7A54(void) { - fn_1_8FF0(); + fn_1_8FF0(); } void fn_1_7A74(omObjData *object) { - s16 i; - object->model[0] = Hu3DModelCreateFile(0x2F0000); - Hu3DModelShadowMapSet(object->model[0]); - Hu3DModelLayerSet(object->model[0], 0); - object->trans.x = 0; - object->trans.y = 0; - object->trans.z = 0; - fn_1_8EB4(object->model[0]); - for(i=0; i<2; i++) { - lbl_1_bss_1174[i+2] = Hu3DLLightCreate(object->model[0], 0, 0, 0, 0, 0, 0, 0, 0, 0); - Hu3DLLightStaticSet(object->model[0], lbl_1_bss_1174[i+2], 1); - Hu3DLLightPointSet(object->model[0], lbl_1_bss_1174[i+2], 45, 0.8, 3); - Hu3DLLightColorSet(object->model[0], lbl_1_bss_1174[i+2], 255, 160, 0, 255); - Hu3DLLightPosSet(object->model[0], lbl_1_bss_1174[i+2], lbl_1_data_2CC[i].x, 475, lbl_1_data_2CC[i].z, 0, 1, 0); - } - object->model[1] = Hu3DHookFuncCreate(fn_1_89BC); - Hu3DModelLayerSet(object->model[1], 1); - lbl_1_bss_1184 = GXGetTexBufferSize(640, 480, GX_TF_RGBA8, GX_FALSE, 0); - lbl_1_bss_1180 = HuMemDirectMallocNum(HEAP_DATA, lbl_1_bss_1184, MEMORY_DEFAULT_NUM); - memset(lbl_1_bss_1180, 0, lbl_1_bss_1184); - object->func = fn_1_7D74; + s16 i; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M416, 0x00)); + Hu3DModelShadowMapSet(object->model[0]); + Hu3DModelLayerSet(object->model[0], 0); + object->trans.x = 0; + object->trans.y = 0; + object->trans.z = 0; + fn_1_8EB4(object->model[0]); + for (i = 0; i < 2; i++) { + lbl_1_bss_1174[i + 2] = Hu3DLLightCreate(object->model[0], 0, 0, 0, 0, 0, 0, 0, 0, 0); + Hu3DLLightStaticSet(object->model[0], lbl_1_bss_1174[i + 2], 1); + Hu3DLLightPointSet(object->model[0], lbl_1_bss_1174[i + 2], 45, 0.8, 3); + Hu3DLLightColorSet(object->model[0], lbl_1_bss_1174[i + 2], 255, 160, 0, 255); + Hu3DLLightPosSet(object->model[0], lbl_1_bss_1174[i + 2], lbl_1_data_2CC[i].x, 475, lbl_1_data_2CC[i].z, 0, 1, 0); + } + object->model[1] = Hu3DHookFuncCreate(fn_1_89BC); + Hu3DModelLayerSet(object->model[1], 1); + lbl_1_bss_1184 = GXGetTexBufferSize(640, 480, GX_TF_RGBA8, GX_FALSE, 0); + lbl_1_bss_1180 = HuMemDirectMallocNum(HEAP_DATA, lbl_1_bss_1184, MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_1180, 0, lbl_1_bss_1184); + object->func = fn_1_7D74; } void fn_1_7D74(omObjData *object) { - s32 i; - for(i=0; i<2; i++) { - Hu3DLLightPointSet(object->model[0], lbl_1_bss_1174[i+2], (15*sind(object->work[i]))+45, 0.8, 3); - object->work[i] += 8.0f; - if(object->work[i] > 360.0f) { - object->work[i] -= 360.0f; - } - } + s32 i; + for (i = 0; i < 2; i++) { + Hu3DLLightPointSet(object->model[0], lbl_1_bss_1174[i + 2], (15 * sind(object->work[i])) + 45, 0.8, 3); + object->work[i] += 8.0f; + if (object->work[i] > 360.0f) { + object->work[i] -= 360.0f; + } + } } void fn_1_7F30(omObjData *object) { - Mtx sp68; - Mtx sp38; - Mtx sp8; - s32 temp_r30; - Vec *temp_r29; - s32 temp_r28; - s32 temp_r27; - s16 temp_r26; - s16 temp_r25; - s16 temp_r24; - AnimData *temp_r23; - object->stat |= 0x100; - for(temp_r30=0; temp_r30<2; temp_r30++) { - if(temp_r30 == 0) { - temp_r25 = Hu3DModelCreateFile(0x2F0001); - temp_r26 = temp_r25; - } else { - temp_r24 = Hu3DModelLink(temp_r25); - temp_r26 = temp_r24; - } - object->model[temp_r30] = temp_r26; - Hu3DModelLayerSet(temp_r26, 2); - fn_1_8EB4(object->model[temp_r30]); - Hu3DModelPosSet(object->model[temp_r30], lbl_1_data_2CC[temp_r30].x, lbl_1_data_2CC[temp_r30].y, lbl_1_data_2CC[temp_r30].z); - } - temp_r23 = HuSprAnimReadFile(0x2F0006); - temp_r29 = &lbl_1_data_26C[0]; - for(temp_r30=0; temp_r30<2; temp_r30++) { - for(temp_r27=0; temp_r27<4; temp_r27++, temp_r29++) { - temp_r28 = (temp_r30*4)+2; - temp_r28 = temp_r27+temp_r28; - object->model[temp_r28] = Hu3DParticleCreate(temp_r23, 50); - Hu3DParticleHookSet(object->model[temp_r28], fn_1_613C); - Hu3DParticleBlendModeSet(object->model[temp_r28], 1); - Hu3DModelLayerSet(object->model[temp_r28], 6); - Hu3DModelScaleSet(object->model[temp_r28], 0.5f, 0.7f, 0.5f); - MTXTrans(sp68, lbl_1_data_2CC[temp_r30].x, lbl_1_data_2CC[temp_r30].y, lbl_1_data_2CC[temp_r30].z); - MTXTrans(sp38, 0, -150, 0); - MTXConcat(sp68, sp38, sp68); - MTXTrans(sp8, temp_r29->x, temp_r29->y, temp_r29->z); - MTXConcat(sp68, sp8, sp68); - Hu3DModelPosSet(object->model[temp_r28], sp68[0][3], sp68[1][3], sp68[2][3]); - } - } - for(temp_r30=0; temp_r30<2; temp_r30++) { - lbl_1_bss_1174[temp_r30] = Hu3DLLightCreate(object->model[temp_r30], 0, 0, 0, 0, 0, 0, 0, 0, 0); - Hu3DLLightStaticSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 1); - Hu3DLLightPointSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 1000, 0.8, 3); - Hu3DLLightColorSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 255, 160, 0, 255); - Hu3DLLightPosSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], lbl_1_data_2CC[temp_r30].x, 475, lbl_1_data_2CC[temp_r30].z, 0, 1, 0); - } - object->work[0] = 0; - object->work[1] = 45; - lbl_1_bss_117C = 0; - object->func = fn_1_83B4; + Mtx sp68; + Mtx sp38; + Mtx sp8; + s32 temp_r30; + Vec *temp_r29; + s32 temp_r28; + s32 temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + AnimData *temp_r23; + object->stat |= 0x100; + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + if (temp_r30 == 0) { + temp_r25 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M416, 0x01)); + temp_r26 = temp_r25; + } + else { + temp_r24 = Hu3DModelLink(temp_r25); + temp_r26 = temp_r24; + } + object->model[temp_r30] = temp_r26; + Hu3DModelLayerSet(temp_r26, 2); + fn_1_8EB4(object->model[temp_r30]); + Hu3DModelPosSet(object->model[temp_r30], lbl_1_data_2CC[temp_r30].x, lbl_1_data_2CC[temp_r30].y, lbl_1_data_2CC[temp_r30].z); + } + temp_r23 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M416, 0x06)); + temp_r29 = &lbl_1_data_26C[0]; + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + for (temp_r27 = 0; temp_r27 < 4; temp_r27++, temp_r29++) { + temp_r28 = (temp_r30 * 4) + 2; + temp_r28 = temp_r27 + temp_r28; + object->model[temp_r28] = Hu3DParticleCreate(temp_r23, 50); + Hu3DParticleHookSet(object->model[temp_r28], fn_1_613C); + Hu3DParticleBlendModeSet(object->model[temp_r28], 1); + Hu3DModelLayerSet(object->model[temp_r28], 6); + Hu3DModelScaleSet(object->model[temp_r28], 0.5f, 0.7f, 0.5f); + MTXTrans(sp68, lbl_1_data_2CC[temp_r30].x, lbl_1_data_2CC[temp_r30].y, lbl_1_data_2CC[temp_r30].z); + MTXTrans(sp38, 0, -150, 0); + MTXConcat(sp68, sp38, sp68); + MTXTrans(sp8, temp_r29->x, temp_r29->y, temp_r29->z); + MTXConcat(sp68, sp8, sp68); + Hu3DModelPosSet(object->model[temp_r28], sp68[0][3], sp68[1][3], sp68[2][3]); + } + } + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + lbl_1_bss_1174[temp_r30] = Hu3DLLightCreate(object->model[temp_r30], 0, 0, 0, 0, 0, 0, 0, 0, 0); + Hu3DLLightStaticSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 1); + Hu3DLLightPointSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 1000, 0.8, 3); + Hu3DLLightColorSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], 255, 160, 0, 255); + Hu3DLLightPosSet(object->model[temp_r30], lbl_1_bss_1174[temp_r30], lbl_1_data_2CC[temp_r30].x, 475, lbl_1_data_2CC[temp_r30].z, 0, 1, 0); + } + object->work[0] = 0; + object->work[1] = 45; + lbl_1_bss_117C = 0; + object->func = fn_1_83B4; } void fn_1_83B4(omObjData *object) { - float temp_f31; - - s32 temp_r31; - Vec *temp_r29; - s32 temp_r28; - s32 temp_r27; - ModelData *temp_r26; - - Mtx sp130[2]; - Mtx sp100; - Mtx spD0; - Mtx spA0; - Mtx sp70; - Mtx sp40; - Mtx sp10; - float sp8[2]; - MTXIdentity(sp100); - MTXIdentity(sp130[0]); - MTXIdentity(sp130[1]); - MTXIdentity(spD0); - MTXIdentity(spA0); - MTXIdentity(sp70); - MTXIdentity(sp40); - MTXIdentity(sp10); - lbl_1_bss_117C = fmod(1+lbl_1_bss_117C, 360); - sp8[0] = 20*sind(lbl_1_bss_117C); - sp8[1] = 20*cosd(lbl_1_bss_117C); - if(fn_1_1240() == 6) { - for(temp_r31=0; temp_r31<2; temp_r31++) { - temp_f31 = sp8[temp_r31]-lbl_1_bss_116C[temp_r31]; - if(temp_f31*lbl_1_data_2E4[temp_r31] <= 0.0f) { - temp_r26 = &Hu3DData[object->model[temp_r31]]; - HuAudFXEmiterPlay(1467, &temp_r26->pos); - } - lbl_1_data_2E4[temp_r31] = temp_f31; - } - } - lbl_1_bss_116C[0] = sp8[0]; - lbl_1_bss_116C[1] = sp8[1]; - temp_r29 = &lbl_1_data_26C[0]; - for(temp_r31=0; temp_r31<2; temp_r31++) { - MTXRotDeg(sp130[temp_r31], 'y', lbl_1_bss_116C[temp_r31]); - for(temp_r28=0; temp_r28<4; temp_r28++, temp_r29++) { - temp_r27 = (temp_r31*4)+2; - temp_r27 = temp_r28+temp_r27; - MTXTrans(spA0, lbl_1_data_2CC[temp_r31].x, lbl_1_data_2CC[temp_r31].y, lbl_1_data_2CC[temp_r31].z); - MTXTrans(sp70, 0, -150, 0); - MTXConcat(spA0, sp70, spA0); - MTXTrans(sp40, temp_r29->x, temp_r29->y, temp_r29->z); - MTXConcat(sp130[temp_r31], sp40, sp10); - MTXConcat(spA0, sp10, spA0); - Hu3DModelPosSet(object->model[temp_r27], spA0[0][3], spA0[1][3], spA0[2][3]); - } - } - Hu3DModelRotSet(object->model[0], 0, lbl_1_bss_116C[0], 0); - Hu3DModelRotSet(object->model[1], 0, lbl_1_bss_116C[1], 0); - for(temp_r31=0; temp_r31<2; temp_r31++) { - Hu3DLLightPointSet(object->model[temp_r31], lbl_1_bss_1174[temp_r31], (15*sind(object->work[temp_r31]))+45, 0.9, 3); - object->work[temp_r31] += 8.0f; - if(object->work[temp_r31] > 360.0f) { - object->work[temp_r31] -= 360.0f; - } - } + float temp_f31; + + s32 temp_r31; + Vec *temp_r29; + s32 temp_r28; + s32 temp_r27; + ModelData *temp_r26; + + Mtx sp130[2]; + Mtx sp100; + Mtx spD0; + Mtx spA0; + Mtx sp70; + Mtx sp40; + Mtx sp10; + float sp8[2]; + MTXIdentity(sp100); + MTXIdentity(sp130[0]); + MTXIdentity(sp130[1]); + MTXIdentity(spD0); + MTXIdentity(spA0); + MTXIdentity(sp70); + MTXIdentity(sp40); + MTXIdentity(sp10); + lbl_1_bss_117C = fmod(1 + lbl_1_bss_117C, 360); + sp8[0] = 20 * sind(lbl_1_bss_117C); + sp8[1] = 20 * cosd(lbl_1_bss_117C); + if (fn_1_1240() == 6) { + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + temp_f31 = sp8[temp_r31] - lbl_1_bss_116C[temp_r31]; + if (temp_f31 * lbl_1_data_2E4[temp_r31] <= 0.0f) { + temp_r26 = &Hu3DData[object->model[temp_r31]]; + HuAudFXEmiterPlay(1467, &temp_r26->pos); + } + lbl_1_data_2E4[temp_r31] = temp_f31; + } + } + lbl_1_bss_116C[0] = sp8[0]; + lbl_1_bss_116C[1] = sp8[1]; + temp_r29 = &lbl_1_data_26C[0]; + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + MTXRotDeg(sp130[temp_r31], 'y', lbl_1_bss_116C[temp_r31]); + for (temp_r28 = 0; temp_r28 < 4; temp_r28++, temp_r29++) { + temp_r27 = (temp_r31 * 4) + 2; + temp_r27 = temp_r28 + temp_r27; + MTXTrans(spA0, lbl_1_data_2CC[temp_r31].x, lbl_1_data_2CC[temp_r31].y, lbl_1_data_2CC[temp_r31].z); + MTXTrans(sp70, 0, -150, 0); + MTXConcat(spA0, sp70, spA0); + MTXTrans(sp40, temp_r29->x, temp_r29->y, temp_r29->z); + MTXConcat(sp130[temp_r31], sp40, sp10); + MTXConcat(spA0, sp10, spA0); + Hu3DModelPosSet(object->model[temp_r27], spA0[0][3], spA0[1][3], spA0[2][3]); + } + } + Hu3DModelRotSet(object->model[0], 0, lbl_1_bss_116C[0], 0); + Hu3DModelRotSet(object->model[1], 0, lbl_1_bss_116C[1], 0); + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + Hu3DLLightPointSet(object->model[temp_r31], lbl_1_bss_1174[temp_r31], (15 * sind(object->work[temp_r31])) + 45, 0.9, 3); + object->work[temp_r31] += 8.0f; + if (object->work[temp_r31] > 360.0f) { + object->work[temp_r31] -= 360.0f; + } + } } void fn_1_8904(void *arg0, u8 arg1) { - GXSetTexCopySrc(0, 0, 640, 480); - GXSetTexCopyDst(640, 480, GX_TF_RGBA8, GX_FALSE); - GXSetCopyClear(BGColor, 0xFFFFFF); - GXCopyTex(arg0, arg1); - DCFlushRange(arg0, lbl_1_bss_1184); + GXSetTexCopySrc(0, 0, 640, 480); + GXSetTexCopyDst(640, 480, GX_TF_RGBA8, GX_FALSE); + GXSetCopyClear(BGColor, 0xFFFFFF); + GXCopyTex(arg0, arg1); + DCFlushRange(arg0, lbl_1_bss_1184); } void fn_1_89BC(ModelData *model, Mtx mtx) { - Mtx44 sp34; - GXTexObj sp14; - MTXOrtho(sp34, 0, 480, 0, 576, 0, 1000); - GXSetProjection(sp34, GX_ORTHOGRAPHIC); - MTXIdentity(mtx); - GXLoadPosMtxImm(mtx, GX_PNMTX0); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); - GXSetChanAmbColor(GX_COLOR0A0, lbl_1_data_268); - GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_268); - GXSetNumTexGens(1); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); - GXSetNumTevStages(1); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP1, GX_COLOR0A0); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_RASA); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXInitTexObj(&sp14, lbl_1_bss_1180, 640, 480, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE); - GXLoadTexObj(&sp14, GX_TEXMAP0); - GXSetBlendMode(GX_BM_BLEND, GX_BL_INVSRCALPHA, GX_BL_SRCALPHA, GX_LO_NOOP); - GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); - GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32(0, 0, -10); - GXTexCoord2f32(0, 0); - GXPosition3f32(576, 0, -10); - GXTexCoord2f32(1, 0); - GXPosition3f32(576, 480, -10); - GXTexCoord2f32(1, 1); - GXPosition3f32(0, 480, -10); - GXTexCoord2f32(0, 1); - GXEnd(); - fn_1_8904(lbl_1_bss_1180, GX_FALSE); + Mtx44 sp34; + GXTexObj sp14; + MTXOrtho(sp34, 0, 480, 0, 576, 0, 1000); + GXSetProjection(sp34, GX_ORTHOGRAPHIC); + MTXIdentity(mtx); + GXLoadPosMtxImm(mtx, GX_PNMTX0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanAmbColor(GX_COLOR0A0, lbl_1_data_268); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_268); + GXSetNumTexGens(1); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_RASA); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXInitTexObj(&sp14, lbl_1_bss_1180, 640, 480, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXLoadTexObj(&sp14, GX_TEXMAP0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_INVSRCALPHA, GX_BL_SRCALPHA, GX_LO_NOOP); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(0, 0, -10); + GXTexCoord2f32(0, 0); + GXPosition3f32(576, 0, -10); + GXTexCoord2f32(1, 0); + GXPosition3f32(576, 480, -10); + GXTexCoord2f32(1, 1); + GXPosition3f32(0, 480, -10); + GXTexCoord2f32(0, 1); + GXEnd(); + fn_1_8904(lbl_1_bss_1180, GX_FALSE); } void fn_1_8EA0(void) { - lbl_1_bss_1168 = 0; + lbl_1_bss_1168 = 0; } void fn_1_8EB4(s16 model) { - HsfMaterial *temp_r31; - HsfData *temp_r30; - s32 temp_r29; - ModelData *temp_r28; - s16 *temp_r27; - s16 temp_r26; - temp_r28 = &Hu3DData[model]; - temp_r30 = temp_r28->hsfData; - temp_r26 = temp_r30->materialCnt; - temp_r27 = &lbl_1_bss_968[lbl_1_bss_1168][0]; - *temp_r27 = model; - temp_r31 = temp_r30->material; - for(temp_r29=0; temp_r29vtxMode = 1; - } - lbl_1_bss_1168++; + HsfMaterial *temp_r31; + HsfData *temp_r30; + s32 temp_r29; + ModelData *temp_r28; + s16 *temp_r27; + s16 temp_r26; + temp_r28 = &Hu3DData[model]; + temp_r30 = temp_r28->hsfData; + temp_r26 = temp_r30->materialCnt; + temp_r27 = &lbl_1_bss_968[lbl_1_bss_1168][0]; + *temp_r27 = model; + temp_r31 = temp_r30->material; + for (temp_r29 = 0; temp_r29 < temp_r26; temp_r31++, temp_r29++) { + temp_r31->vtxMode = 1; + } + lbl_1_bss_1168++; } void fn_1_8F60(float arg0) { - s16 *temp_r31; - s32 temp_r30; - temp_r31 = &lbl_1_bss_968[0][0]; - for(temp_r30=0; temp_r30motion[var_r29] = CharModelMotionCreate(var_r28, lbl_1_data_90[var_r29][0]); - } else { - object->motion[var_r29] - = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(var_r28 + lbl_1_data_90[var_r29][0], MEMORY_DEFAULT_NUM, HEAP_DATA)); + } + else { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], var_r28 + lbl_1_data_90[var_r29][0]); } } } @@ -271,7 +271,8 @@ void fn_1_7C8C(omObjData *object) if (var_r31->unk_0C) { Vec sp18 = { 0.0f, 1.0f, 0.0f }; PSMTXRotAxisRad(var_r31->unk_1C4, &sp18, 0.017453292f * var_r31->unk_64); - } else { + } + else { Vec spC = { 0.0f, 1.0f, 0.0f }; PSMTXIdentity(var_r31->unk_1C4); C_QUATRotAxisRad(&var_r31->unk_184, &spC, 0.0f); @@ -322,7 +323,8 @@ void fn_1_82FC(omObjData *object) if (fn_1_26F8() == 2) { if (var_r31->unk_44) { fn_1_ADC4(object); - } else { + } + else { var_r31->unk_14 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx]; var_r31->unk_10 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx]; var_f31 = HuPadStkX[GWPlayerCfg[object->work[0]].pad_idx]; @@ -336,7 +338,8 @@ void fn_1_82FC(omObjData *object) } if ((s32)var_r31->unk_50 != 0) { (void)var_r29; - } else { + } + else { var_r29 = 1; } fn_1_9FF0(object); @@ -348,7 +351,8 @@ void fn_1_82FC(omObjData *object) var_r31->unk_50 = 0; object->func = fn_1_8B0C; } - } else if (var_r31->unk_3C) { + } + else if (var_r31->unk_3C) { var_r31->unk_40 = 1; fn_1_2728(2); var_r31->unk_50 = 0; @@ -377,7 +381,8 @@ void fn_1_86E8(omObjData *object) if (var_r31->unk_44 != 0) { var_r31->unk_1C = 0; fn_1_B2C0(object); - } else { + } + else { var_r31->unk_14 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx]; var_r31->unk_10 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx]; var_f31 = HuPadStkX[GWPlayerCfg[object->work[0]].pad_idx]; @@ -398,7 +403,8 @@ void fn_1_86E8(omObjData *object) fn_1_9298(object); if ((s32)var_r31->unk_50 != 0) { (void)var_r29; - } else if (var_r31->unk_2C) { + } + else if (var_r31->unk_2C) { var_r29 = 1; } fn_1_91E0(object); @@ -435,7 +441,8 @@ void fn_1_8B0C(omObjData *object) if (var_r31->unk_24 > 1.0f) { var_r31->unk_24 = 1.0f; } - } else { + } + else { var_r31->unk_20 = 0.0f; var_r31->unk_24 = 0.01f; fn_1_2770(object->work[0]); @@ -447,7 +454,8 @@ void fn_1_8B0C(omObjData *object) var_r31->unk_28 = 0; if (fn_1_2740(object->work[0]) >= 0) { fn_1_B8A0(object, 1); - } else { + } + else { fn_1_B8A0(object, 2); } var_r31->unk_50++; @@ -481,7 +489,8 @@ void fn_1_8D30(omObjData *object) if (fn_1_2740(object->work[0]) >= 0) { var_r31->unk_68 = 0.0f; fn_1_B8A0(object, 1); - } else { + } + else { fn_1_B8A0(object, 2); } var_r31->unk_50++; @@ -518,7 +527,8 @@ void fn_1_8E44(omObjData *object) sp8.y = 0.0f; if (PSVECMag(&sp8) > 0.0f) { PSVECNormalize(&sp8, &sp8); - } else { + } + else { sp8.x = 1.0f; sp8.z = 0.0f; } @@ -539,7 +549,8 @@ void fn_1_8E44(omObjData *object) sp8.y = 0.0f; if (PSVECMag(&sp8) > 0.0f) { PSVECNormalize(&sp8, &sp8); - } else { + } + else { sp8.x = 0.0f; sp8.z = 1.0f; } @@ -619,7 +630,8 @@ void fn_1_9298(omObjData *object) var_r31->unk_B4.x += var_r31->unk_B4.y; if (var_r31->unk_B4.x >= 360.0f) { var_r31->unk_B4.x -= 360.0f; - } else if (var_r31->unk_B4.x < 0.0f) { + } + else if (var_r31->unk_B4.x < 0.0f) { var_r31->unk_B4.x += 360.0f; } PSMTXRotAxisRad(var_r31->unk_1C4, &sp8, 0.017453292f * var_r31->unk_B4.x); @@ -661,7 +673,8 @@ void fn_1_9298(omObjData *object) case 2: if (var_r31->unk_E0.y >= 0.0f) { var_r31->unk_AC += (1.0f / 60.0f); - } else { + } + else { var_r31->unk_AC -= (1.0f / 60.0f); } var_r31->unk_34 = 0; @@ -681,7 +694,8 @@ void fn_1_9298(omObjData *object) var_r31->unk_E0.y = 0.0f; fn_1_B8A0(object, 9); var_r31->unk_A0++; - } else { + } + else { var_r31->unk_E0.y += (0.016666668f * (0.016666668f * var_r31->unk_11C.w)); var_r31->unk_D4.y += var_r31->unk_E0.y; if (var_r31->unk_D4.y <= var_r31->unk_F8.y) { @@ -762,7 +776,8 @@ void fn_1_9A1C(omObjData *object) } if (var_f31 == 0.0f) { var_f30 = 11.5f; - } else { + } + else { var_f30 = 23.0 - fabs(var_f31); var_f30 = (0.5f * var_f30) * (var_f31 / fabs(var_f31)); } @@ -803,13 +818,15 @@ void fn_1_9C14(omObjData *object) if (var_r31->unk_24 > var_f30) { fn_1_B8A0(object, 4); var_f29 = var_r31->unk_24; - } else { + } + else { fn_1_B8A0(object, 3); var_f29 = var_r31->unk_24 / var_f30; } CharModelMotionSpeedSet(var_r31->unk_00, var_f29); } - } else { + } + else { var_r31->unk_E0.x = var_r31->unk_E0.y = var_r31->unk_E0.z = 0.0f; if (var_r31->unk_28 && CharModelMotionShiftIDGet(var_r31->unk_00) < 0) { fn_1_B8A0(object, 0); @@ -890,7 +907,8 @@ void fn_1_9FF0(omObjData *object) var_r31->unk_98 = var_r31->unk_F8.y - var_r31->unk_104.y; var_r31->unk_98 += -0.27222225f; var_r31->unk_30 = 0; - } else { + } + else { var_r31->unk_98 = var_r31->unk_F8.y - var_r31->unk_104.y; var_r31->unk_98 += -0.8166667f; var_r31->unk_30 = 1; @@ -923,7 +941,8 @@ void fn_1_9FF0(omObjData *object) var_f31 = 0.0f; sp8.x = 1.0f; sp8.y = sp8.z = 0.0f; - } else { + } + else { if (var_f31 > 1.0f) { var_f31 = 1.0f; } @@ -1003,7 +1022,8 @@ void fn_1_9FF0(omObjData *object) } PSVECScale(&sp14, &sp14, (0.0033333336f * var_f29) + var_r31->unk_144); PSVECAdd(&var_r31->unk_14C, &sp14, &var_r31->unk_14C); - } else { + } + else { PSVECScale(&var_r31->unk_14C, &var_r31->unk_14C, 0.98f); } var_r31->unk_14C.y = 0.0f; @@ -1020,12 +1040,14 @@ void fn_1_9FF0(omObjData *object) sp8.x = var_r31->unk_14C.z; sp8.y = 0.0f; sp8.z = -var_r31->unk_14C.x; - } else { + } + else { sp8.x = 1.0f; sp8.y = sp8.z = 0.0f; } C_QUATRotAxisRad(&var_r31->unk_184, &sp8, 0.9424779f * var_f31); - } else { + } + else { sp8.x = var_r31->unk_14C.z; sp8.y = 0.0f; sp8.z = -var_r31->unk_14C.x; @@ -1090,7 +1112,8 @@ void fn_1_ADC4(omObjData *object) var_r31->unk_110 = sp28; } var_r31->unk_84 = 60.0f * ((0.23f - (0.04f * var_r31->unk_74)) + (0.001f * ((0.4f - (0.15f * var_r31->unk_74)) * frandmod(1000)))); - } else { + } + else { var_r31->unk_84--; } sp28 = var_r31->unk_110; @@ -1101,7 +1124,8 @@ void fn_1_ADC4(omObjData *object) var_f31 = PSVECMag(&sp10); if (var_r31->unk_48) { var_r30 = 1; - } else { + } + else { var_r30 = 0; } var_r29 = var_r30; @@ -1129,7 +1153,8 @@ void fn_1_B2C0(omObjData *object) var_r29 = 0; if (var_r31->unk_90) { var_r31->unk_90--; - } else { + } + else { var_r31->unk_88 = 1.0f; if (frandmod(1000) < 500) { var_r31->unk_88 = -1.0f; @@ -1142,7 +1167,8 @@ void fn_1_B2C0(omObjData *object) if (lbl_1_bss_884 >= object->work[0]) { if (lbl_1_bss_880) { lbl_1_bss_880--; - } else { + } + else { lbl_1_bss_880 = 60.0f * (8.0f + (0.004f * frandmod(1000))); } } @@ -1160,11 +1186,13 @@ void fn_1_B2C0(omObjData *object) if (var_r31->unk_80 > 240.0f) { var_r31->unk_80 = 1; } - } else { + } + else { var_r31->unk_80 = 60.0f * (0.00080000004f * ((1.05f - var_r31->unk_74) * frandmod(1000))); var_r31->unk_80 += (var_r31->unk_8C * (30.0f + (0.03f * frandmod(1000)))); } - } else { + } + else { var_r31->unk_80--; if (!var_r31->unk_80) { var_r31->unk_10 |= 256; diff --git a/src/REL/m417Dll/water.c b/src/REL/m417Dll/water.c index aeb0c910..49e3af90 100644 --- a/src/REL/m417Dll/water.c +++ b/src/REL/m417Dll/water.c @@ -164,7 +164,7 @@ UnkM417Struct3 *fn_1_3574(omObjData *arg0, s16 arg1, s16 arg2) var_r31 = var_r30; for (var_r29 = 0; var_r29 < arg2; var_r29++, var_r31++, arg1++) { var_r31->unk_00 = arg1; - arg0->model[arg1] = Hu3DModelCreate(HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M417, 3), MEMORY_DEFAULT_NUM, HEAP_DATA)); + arg0->model[arg1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M417, 3)); Hu3DModelLayerSet(arg0->model[var_r31->unk_00], 0); var_f30 = frandmod(360); var_f29 = frandmod(640); @@ -196,7 +196,8 @@ void fn_1_37A0(omObjData *object, UnkM417Struct3 *arg1) var_r29 = 0; if (arg1->unk_30 > arg1->unk_34) { var_r29 = 1; - } else { + } + else { PSVECSubtract(&arg1->unk_14, &arg1->unk_08, &sp8); var_f31 = PSVECMag(&sp8); if (var_f31 < 50.0f) { @@ -247,7 +248,7 @@ void fn_1_3BC4(omObjData *object) Hu3DModelLayerSet(object->model[1], 1); object->model[2] = Hu3DHookFuncCreate(fn_1_6B60); Hu3DModelLayerSet(object->model[2], 7); - var_r30 = Hu3DParticleCreate(HuSprAnimRead(HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M417, 17), MEMORY_DEFAULT_NUM, HEAP_DATA)), 512); + var_r30 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M417, 17)), 512); object->model[3] = var_r30; Hu3DModelLayerSet(var_r30, 4); Hu3DParticleColSet(var_r30, 255, 255, 255); @@ -339,7 +340,8 @@ void fn_1_3D58(omObjData *object) lbl_1_bss_178.unk_24[var_r29] = 0.0f; var_f31 = 850.0f / var_f31; PSVECScale(var_r28, var_r28, var_f31); - } else { + } + else { lbl_1_bss_178.unk_28[var_r31] = 1; lbl_1_bss_178.unk_1C[var_r31] = var_r30; lbl_1_bss_178.unk_24[var_r30] = 1.0f; @@ -368,7 +370,8 @@ void fn_1_3D58(omObjData *object) (*var_r27)[1] = lbl_1_bss_178.unk_1C[var_r29 + 30]; (*var_r27)[2] = lbl_1_bss_178.unk_1C[var_r29 + 1]; (*var_r27)[3] = lbl_1_bss_178.unk_1C[var_r29 + 31]; - } else { + } + else { var_r29 = var_r30 + (var_r31 * 30); (*var_r27)[1] = lbl_1_bss_178.unk_1C[var_r29]; (*var_r27)[3] = lbl_1_bss_178.unk_1C[var_r29 + 30]; @@ -447,7 +450,8 @@ void fn_1_4BC8(float arg8, float arg9) if (arg9 < 0.0f) { arg9 = 0.0f; - } else if (arg9 > 1.0f) { + } + else if (arg9 > 1.0f) { arg9 = 1.0f; } var_f30 = 1.0f - arg9; @@ -474,7 +478,7 @@ void fn_1_4BC8(float arg8, float arg9) return; } } - (void)var_r31; + (void)var_r31; } void fn_1_4E64(omObjData *object) @@ -521,12 +525,14 @@ void fn_1_4E64(omObjData *object) } if (PSVECMag(&var_r31->unk_04) > 800.0f && var_r31->unk_00 >= 2 && (var_r31->unk_1C -= 0.033333335f, var_r31->unk_1C < 0.0f)) { var_r31->unk_00 = 0; - } else { + } + else { if (var_r31->unk_00 < 2) { PSVECSubtract(&sp8, &var_r31->unk_04, &sp20); if (PSVECDotProduct(&sp14, &sp20) <= 0.0f) { var_r31->unk_00 = 2; - } else { + } + else { var_f31 = 1.2f * (PSVECMag(&sp20) / (var_r31->unk_18 * var_r31->unk_28)); if (var_f31 < 1.2f) { if (var_f31 > 1.0f) { @@ -538,7 +544,8 @@ void fn_1_4E64(omObjData *object) var_r29->unk_0C = var_f31; } } - } else if (var_r31->unk_00 == 2 && PSVECMag(&var_r31->unk_04) > ((800.0f - (100.0f * (2.0f * var_r31->unk_20))) - 30.000002f)) { + } + else if (var_r31->unk_00 == 2 && PSVECMag(&var_r31->unk_04) > ((800.0f - (100.0f * (2.0f * var_r31->unk_20))) - 30.000002f)) { var_r31->unk_00 = 3; fn_1_6D64(lbl_1_bss_58, 0, var_r31->unk_10, 20.0f + (40.0f * var_r31->unk_20), var_r31->unk_20); sp2C.x = sind(var_r31->unk_10); @@ -631,7 +638,8 @@ void fn_1_57B0(omObjData *object) var_r29->unk_0C += var_r29->unk_18; if (var_r29->unk_0C >= 360.0f) { var_r29->unk_0C -= 360.0f; - } else if (var_r29->unk_0C < 0.0f) { + } + else if (var_r29->unk_0C < 0.0f) { var_r29->unk_0C += 360.0f; } var_f31 = var_r29->unk_0C; @@ -688,8 +696,8 @@ void fn_1_57B0(omObjData *object) DCStoreRangeNoSync(lbl_1_bss_178.unk_6CC[lbl_1_bss_178.unk_6B4], 1080 * sizeof(GXColor)); DCStoreRangeNoSync(lbl_1_bss_178.unk_6D4[lbl_1_bss_178.unk_6B4], 30 * 36 * sizeof(Vec2f)); PPCSync(); - (void)var_r30; - (void)var_r30; + (void)var_r30; + (void)var_r30; } void fn_1_5E3C(omObjData *object) @@ -714,7 +722,8 @@ void fn_1_5E3C(omObjData *object) GXColor1x16(var_r31); GXTexCoord1x16(var_r31); } - } else { + } + else { GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 59); for (var_r30 = 29; var_r30 >= 0; var_r30--) { var_r31 = lbl_1_bss_178.unk_1C[var_r30 + (var_r29 * 30)]; @@ -936,7 +945,8 @@ void fn_1_6D64(s32 arg0, u32 arg1, float arg8, float arg9, float argA) arg8 += 180.0f; arg9 = 60.0f; var_f27 = fn_1_75BC(); - } else { + } + else { var_r28 = 20.0f + (80.0f * argA); var_f27 = 0.0f; } @@ -972,7 +982,8 @@ void fn_1_6D64(s32 arg0, u32 arg1, float arg8, float arg9, float argA) var_r31->unk40.r = 200.0f + (55.0f * var_f31); var_r31->unk40.g = 220.0f + (20.0f * var_f31); var_r31->unk40.b = 245.0f + (10.0f * var_f31); - } else { + } + else { var_r31->unk2C = 100.0f + frandmod(100); var_r31->unk40.a = frandmod(100) + 80; var_r31->unk40.r = 200.0f + (55.0f * var_f31); @@ -1087,7 +1098,8 @@ void fn_1_7968(float arg8, float arg9, float argA, Vec *arg0) if (var_r30 < 0) { arg0->x = arg0->z = 0.0f; arg0->y = 1.0f; - } else { + } + else { *arg0 = lbl_1_bss_178.unk_6C4[lbl_1_bss_178.unk_6B4][var_r30]; } } diff --git a/src/REL/m426Dll/main.c b/src/REL/m426Dll/main.c index 3b0f0170..34badc03 100644 --- a/src/REL/m426Dll/main.c +++ b/src/REL/m426Dll/main.c @@ -442,7 +442,8 @@ void fn_1_330(omObjData *object) if ((var_r26 & 16) && lbl_1_bss_48 == -1) { lbl_1_bss_48 = HuAudSeqPlay(70); } - } else { + } + else { var_r26 = 0; } if (lbl_1_bss_50 == -1 || !var_r26) { @@ -463,7 +464,8 @@ void fn_1_330(omObjData *object) MGSeqParamSet(lbl_1_bss_4C, 1, var_r25); if (lbl_1_bss_58 == 600) { lbl_1_bss_34 = 3.0f; - } else if (lbl_1_bss_58 == 1200) { + } + else if (lbl_1_bss_58 == 1200) { lbl_1_bss_34 = 2.5f; } if (--lbl_1_bss_58 < -1 || lbl_1_bss_1C[0] <= 0 || lbl_1_bss_1C[1] <= 0) { @@ -485,9 +487,11 @@ void fn_1_330(omObjData *object) if (fn_1_2EDC()) { if (lbl_1_bss_1C[0] == lbl_1_bss_1C[1]) { var_r28 = 2; - } else if (lbl_1_bss_1C[0] > lbl_1_bss_1C[1]) { + } + else if (lbl_1_bss_1C[0] > lbl_1_bss_1C[1]) { var_r28 = 0; - } else { + } + else { var_r28 = 1; } if (var_r28 < 2) { @@ -505,7 +509,8 @@ void fn_1_330(omObjData *object) } lbl_1_bss_50 = MGSeqCreate(5, 3, sp8[0], sp8[1], -1, -1); HuAudSStreamPlay(1); - } else { + } + else { for (var_r27 = 0; var_r27 < 2; var_r27++) { var_r30 = lbl_1_bss_8C[var_r27]->data; for (var_r31 = 0; var_r31 < 2; var_r31++) { @@ -546,32 +551,32 @@ s32 lbl_1_data_10C = 66051; s32 lbl_1_data_110[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; s32 lbl_1_data_150[8] = { - 6225920, - 1703936, - 7143424, - 9043968, - 1114112, - 8716288, - 8454144, - 851968, + DATADIR_MARIOMOT, + DATADIR_LUIGIMOT, + DATADIR_PEACHMOT, + DATADIR_YOSHIMOT, + DATADIR_DONKEYMOT, + DATADIR_WARIOMOT, + DATADIR_WALUIGIMOT, + DATADIR_DAISYMOT, }; UnkM426Struct13 lbl_1_data_170[12] = { - { 6225920, 0xFFFFFFFF }, - { 6225922, 0xFFFFFFFF }, - { 6225923, 0xFFFFFFFF }, - { 6225925, 0xFFFFFFFF }, - { 6225926, 0xFFFFFFFF }, - { 6225940, 0xFFFFFFFF }, - { 6225942, 0xFFFFFFFF }, - { 6225945, 0xFFFFFFFF }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_NUM_LISTEND }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), DATA_NUM_LISTEND }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), DATA_NUM_LISTEND }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 5), DATA_NUM_LISTEND }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), DATA_NUM_LISTEND }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 20), DATA_NUM_LISTEND }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 22), DATA_NUM_LISTEND }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 25), DATA_NUM_LISTEND }, { 0, 0 }, { 0, 1 }, - { 6225943, 0xFFFFFFFF }, - { 6226034, 0xFFFFFFFF }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), DATA_NUM_LISTEND }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 114), DATA_NUM_LISTEND }, }; -s32 lbl_1_data_1D0[2] = { 3735584, 3735592 }; +s32 lbl_1_data_1D0[2] = { DATA_MAKE_NUM(DATADIR_M426, 32), DATA_MAKE_NUM(DATADIR_M426, 40) }; void fn_1_DB8(omObjData *arg0) { @@ -620,7 +625,8 @@ void fn_1_EB8(void) } if (var_r30 != 2) { memcpy(&lbl_1_bss_18, &lbl_1_data_10C, 4); - } else { + } + else { for (var_r31 = 0; var_r31 < 4; var_r31++) { if (GWPlayerCfg[var_r31].group) { lbl_1_bss_18[var_r30] = var_r31; @@ -721,14 +727,16 @@ void fn_1_125C(omObjData *object) var_r31->unk_40 = lbl_1_data_0[var_r27].x; if (var_r31->unk_40 < 0.0f) { var_r31->unk_44 = 90.0f; - } else { + } + else { var_r31->unk_44 = -90.0f; } var_r31->unk_48 = lbl_1_bss_8C[var_r31->unk_00]; var_r28 = var_r31->unk_48->data; if (object != var_r28->unk_04[0]) { var_r31->unk_4C = var_r28->unk_04[0]; - } else { + } + else { var_r31->unk_4C = var_r28->unk_04[1]; } memset(&var_r31->unk_50, 0, 0x3C); @@ -751,13 +759,15 @@ void fn_1_125C(omObjData *object) if (lbl_1_data_170[var_r29].unk_04 == -1) { if ((var_r29 == 11) && (var_r31->unk_0C == 4)) { object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_0C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 114)); - } else { + } + else { object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_0C, lbl_1_data_170[var_r29].unk_00); } if (var_r29 == 5) { CharModelVoiceEnableSet(var_r31->unk_0C, object->motion[var_r29], 0); } - } else { + } + else { object->motion[var_r29] = Hu3DJointMotion( object->model[0], HuDataSelHeapReadNum(var_r31->unk_0C + lbl_1_data_1D0[lbl_1_data_170[var_r29].unk_04], 268435456, HEAP_DATA)); } @@ -817,7 +827,8 @@ void fn_1_16F8(omObjData *object) sp20 = sp1C = 0.0f; sp10 = var_r21 = 0; fn_1_2F5C(object, &sp20, &sp1C, &sp10); - } else { + } + else { sp20 = HuPadStkX[var_r31->unk_10]; sp1C = HuPadStkY[var_r31->unk_10]; var_r21 = HuPadBtn[var_r31->unk_10]; @@ -833,10 +844,11 @@ void fn_1_16F8(omObjData *object) case 1: if (var_r31->unk_90 == -1) { var_r31->unk_90 = fn_1_48F0(object->trans.z); - } else { + } + else { if (!lbl_1_bss_40) { sp20 = sp1C = 0.0f; - + sp10 = var_r21 = 0; } if (fabs(sp20) > 8.0) { @@ -850,7 +862,8 @@ void fn_1_16F8(omObjData *object) } if (var_r31->unk_94 != -1) { var_f27 = 16.0f; - } else { + } + else { var_f27 = 0.0f; } var_r31->unk_50[var_r31->unk_8C] = var_f27; @@ -863,22 +876,27 @@ void fn_1_16F8(omObjData *object) var_f28 *= 0.06666667f; if (var_r31->unk_98 != 0.0f) { var_r26 = 3; - } else if (var_f28 <= 0.0f) { + } + else if (var_f28 <= 0.0f) { if (lbl_1_bss_54 == 5) { var_r26 = 8; - } else { + } + else { var_r26 = 0; } - } else if (var_f28 < 10.0f) { + } + else if (var_f28 < 10.0f) { var_r26 = 1; - } else { + } + else { var_r26 = 2; } if (var_r26 != var_r31->unk_28) { var_r31->unk_28 = var_r26; if (var_r26 == 3) { CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0); - } else { + } + else { CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0x40000001); } } @@ -887,7 +905,8 @@ void fn_1_16F8(omObjData *object) if (var_f31 < 0.0f) { var_r27 = var_r31->unk_90 - 1; var_r25 = var_r31->unk_90 - 2; - } else { + } + else { var_r27 = var_r31->unk_90 + 1; var_r25 = var_r31->unk_90 + 2; } @@ -924,7 +943,8 @@ void fn_1_16F8(omObjData *object) var_r31->unk_3C = 0; object->trans.x = var_f25; object->trans.z = var_f24; - } else if (var_f27 != 0.0f) { + } + else if (var_f27 != 0.0f) { var_f27 = 1.0f / var_f27; object->trans.x += var_f28 * (var_f30 * var_f27); object->trans.z += var_f28 * (var_f31 * var_f27); @@ -934,11 +954,13 @@ void fn_1_16F8(omObjData *object) var_f31 = object->trans.z - var_f21; if (fabs(var_f30) > 8.0 || fabs(var_f31) > 8.0) { var_f26 = atan2d(var_f30, var_f31); - } else { + } + else { if (fabs(sp20) > 8.0 || fabs(sp1C) > 8.0) { var_f26 = atan2d(sp20, -sp1C); var_f26 = var_f26; - } else { + } + else { var_f26 = object->rot.y; } } @@ -950,7 +972,8 @@ void fn_1_16F8(omObjData *object) var_r31->unk_28 = 9; CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 8.0f, 8.0f, 0); } - } else if (sp10 & 256) { + } + else if (sp10 & 256) { var_r31->unk_3C = 20; } } @@ -965,11 +988,13 @@ void fn_1_16F8(omObjData *object) if (fn_1_4AF4(&lbl_1_bss_C, object->rot.y, 1)) { if (!var_r31->unk_00) { HuAudFXPlay(1601); - } else { + } + else { HuAudFXPlay(1602); } } - } else if (var_r31->unk_2C >= 20) { + } + else if (var_r31->unk_2C >= 20) { var_r31->unk_24 = 0; var_r31->unk_2C = 0; var_r31->unk_28 = 8; @@ -988,7 +1013,8 @@ void fn_1_16F8(omObjData *object) if (fabs(object->trans.x) > 750.0) { if (object->trans.x > 0.0f) { object->trans.x = 750.0f; - } else { + } + else { object->trans.x = -750.0f; } } @@ -1020,10 +1046,12 @@ void fn_1_16F8(omObjData *object) if (lbl_1_bss_40 == 0) { var_r31->unk_2C = 59; } - } else if (var_r31->unk_2C == 60.0f) { + } + else if (var_r31->unk_2C == 60.0f) { var_r31->unk_28 = 7; CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0); - } else if (var_r31->unk_2C >= 90.0f) { + } + else if (var_r31->unk_2C >= 90.0f) { var_r31->unk_24 = 7; var_r31->unk_28 = 8; CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0x40000001); @@ -1056,7 +1084,8 @@ void fn_1_16F8(omObjData *object) object->rot.y = fn_1_770C(0.0f, object->rot.y, 10.0f); if (var_r31->unk_24 == 8) { var_r26 = 10; - } else { + } + else { var_r26 = 11; } if (var_r26 != var_r31->unk_28) { @@ -1207,7 +1236,8 @@ void fn_1_2B74(Vec *arg0) if (arg0->x < 0.0f) { var_r26 = 0; - } else { + } + else { var_r26 = 1; } if (lbl_1_bss_8C[var_r26]) { @@ -1226,21 +1256,26 @@ void fn_1_2B74(Vec *arg0) var_r31->unk_90 = var_r31->unk_94 = -1; if (!var_r29->unk_00) { var_r31->unk_9C.x = -1.0f; - } else { + } + else { var_r31->unk_9C.x = 1.0f; } if (fabs(var_r31->unk_4C->trans.z - var_r30->trans.z) < 100.0) { var_r31->unk_90 = fn_1_48F0(var_r30->trans.z); if (var_r31->unk_90 == 5) { var_r31->unk_9C.z = -1.0f; - } else if (!var_r31->unk_90) { + } + else if (!var_r31->unk_90) { var_r31->unk_9C.z = 1.0f; - } else if ((var_r31->unk_4C->trans.z - var_r30->trans.z) < 0.0f) { + } + else if ((var_r31->unk_4C->trans.z - var_r30->trans.z) < 0.0f) { var_r31->unk_9C.z = 1.0f; - } else { + } + else { var_r31->unk_9C.z = -1.0f; } - } else { + } + else { var_r31->unk_9C.z = 0.0f; } var_r31->unk_9C.y = 45.5f; @@ -1396,12 +1431,14 @@ void fn_1_2F5C(omObjData *object, float *arg1, float *arg2, s32 *arg3) for (var_r30 = 0; var_r30 < 6; var_r27++, var_r30++) { sp14[var_r27] = var_r30; } - } else { + } + else { if (var_r31->unk_90 < var_r29) { for (var_r30 = 0; var_r30 < 3; var_r27++, var_r30++) { sp14[var_r27] = var_r30; } - } else { + } + else { for (var_r30 = 3; var_r30 < 6; var_r27++, var_r30++) { sp14[var_r27] = var_r30; } @@ -1437,16 +1474,20 @@ void fn_1_2F5C(omObjData *object, float *arg1, float *arg2, s32 *arg3) if (var_r29 == -1) { if (var_r31->unk_90 < 3) { var_r31->unk_B0 = 1; - } else { + } + else { var_r31->unk_B0 = 4; } - } else if (var_r29 > var_r31->unk_90) { + } + else if (var_r29 > var_r31->unk_90) { var_r31->unk_B0 = 1; - } else { + } + else { var_r31->unk_B0 = 4; } var_r31->unk_BC = 1; - } else { + } + else { var_r31->unk_BC = 2; } var_r31->unk_B8 = 0; @@ -1525,7 +1566,8 @@ void fn_1_3714(omObjData *object) var_r31->unk_20 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M426, 6)); var_r31->unk_24 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M426, 8)); var_r31->unk_28 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M426, 9)); - } else { + } + else { var_r31->unk_10 = Hu3DModelLink(var_r28->unk_10); Hu3DModelShadowMapSet(var_r31->unk_10); var_r31->unk_14 = Hu3DModelLink(var_r28->unk_14); @@ -1594,7 +1636,8 @@ void fn_1_3EFC(omObjData *object) var_f30 = 50.0f + (-19.999998f * var_f31); Hu3DModelPosSet(var_r30->unk_20, -500.0f, var_f30, var_r30->unk_38); Hu3DModelPosSet(var_r30->unk_28, 500.0f, var_f29, var_r30->unk_38); - } else { + } + else { var_f29 = 50.0f + (-19.999998f * var_f31); var_f30 = 30.000002f + (19.999998f * var_f31); Hu3DModelPosSet(var_r30->unk_1C, -500.0f, var_f30, var_r30->unk_38); @@ -1603,7 +1646,8 @@ void fn_1_3EFC(omObjData *object) if (var_r30->unk_0C >= 2) { if (var_r30->unk_04 == 0) { HuAudFXPlay(1600); - } else { + } + else { HuAudFXPlay(1599); } fn_1_4738(var_r28, var_r30->unk_04); @@ -1639,7 +1683,8 @@ void fn_1_3EFC(omObjData *object) object->work[2] = 0; } lbl_1_bss_30--; - } else { + } + else { if (object->work[0]) { if (++object->work[0] >= 20) { object->work[0] = 0; @@ -1835,7 +1880,8 @@ s32 fn_1_4AF4(Vec *arg0, float arg8, s32 arg1) var_r30 = lbl_1_bss_78->data; if (arg0->x < 0.0f) { var_f28 = -500.0f; - } else { + } + else { var_f28 = 500.0f; } for (var_r29 = 0; var_r29 < 6; var_r29++, var_r30++) { @@ -1856,7 +1902,8 @@ s32 fn_1_4AF4(Vec *arg0, float arg8, s32 arg1) if (!var_r30->unk_08) { return 0; } - } else if (var_r30->unk_08 == 1) { + } + else if (var_r30->unk_08 == 1) { return 0; } if (arg1) { @@ -1881,15 +1928,17 @@ void fn_1_4F14(omObjData *object) for (var_r29 = 0; var_r29 < 6; var_r29++, var_r31++) { if (var_r29 == 0) { var_r31->unk_00 = Hu3DModelCreateFile(3735579); - } else { + } + else { var_r31->unk_00 = Hu3DModelLink(var_r30->unk_00); } Hu3DModelShadowSet(var_r31->unk_00); Hu3DModelLayerSet(var_r31->unk_00, 2); if (var_r29 == 0) { - var_r31->unk_08 = Hu3DJointMotion(var_r31->unk_00, HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M426, 28), MEMORY_DEFAULT_NUM, HEAP_DATA)); - var_r31->unk_0C = Hu3DJointMotion(var_r31->unk_00, HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M426, 29), MEMORY_DEFAULT_NUM, HEAP_DATA)); - } else { + var_r31->unk_08 = Hu3DJointMotionFile(var_r31->unk_00, DATA_MAKE_NUM(DATADIR_M426, 28)); + var_r31->unk_0C = Hu3DJointMotionFile(var_r31->unk_00, DATA_MAKE_NUM(DATADIR_M426, 29)); + } + else { var_r31->unk_08 = var_r30->unk_08; var_r31->unk_0C = var_r30->unk_0C; } @@ -1955,14 +2004,16 @@ void fn_1_5134(omObjData *object) var_r31->unk_30 = 0; var_r31->unk_28 = 3; Hu3DMotionShiftSet(var_r31->unk_00, var_r31->unk_0C, 0.0f, 8.0f, 0x40000001); - } else { + } + else { var_r31->unk_48 = fn_1_770C(0.0f, var_r31->unk_48, 10.0f); } break; case 3: if (!var_r26) { var_f31 = 90.0f; - } else { + } + else { var_f31 = 270.0f; } if (fabs(fn_1_75F4(var_f31, var_r31->unk_48)) < 5.0) { @@ -1970,7 +2021,8 @@ void fn_1_5134(omObjData *object) if ((var_r31->unk_34 += 0.1f) > lbl_1_bss_34) { var_r31->unk_34 = lbl_1_bss_34; } - } else { + } + else { var_r31->unk_48 = fn_1_770C(var_f31, var_r31->unk_48, 10.0f); if ((var_r31->unk_34 -= 0.1f) < 0.0f) { var_r31->unk_34 = 0.0f; @@ -1990,7 +2042,8 @@ void fn_1_5134(omObjData *object) var_r31->unk_34 = 0.0f; if (var_r31->unk_3C > 0.0f) { var_r31->unk_3C = 399.0f; - } else { + } + else { var_r31->unk_3C = -399.0f; } var_r31->unk_18 = 0; @@ -2002,7 +2055,8 @@ void fn_1_5134(omObjData *object) lbl_1_bss_1C[0]--; fn_1_3654(0); HuAudFXPlay(1603); - } else { + } + else { lbl_1_bss_1C[1]--; fn_1_3654(1); HuAudFXPlay(1604); @@ -2028,20 +2082,23 @@ void fn_1_5134(omObjData *object) fn_1_2B74(&sp8); if (var_r31->unk_3C < 0.0f) { fn_1_46A4(var_r31->unk_24, 0); - } else { + } + else { fn_1_46A4(var_r31->unk_24, 1); } var_r31->unk_28 = 5; if (var_r26 == 0) { var_r31->unk_4C += 30.000002f; - } else { + } + else { var_r31->unk_4C -= 30.000002f; } if (fabs(var_r31->unk_4C) > 150.0) { if (!var_r26) { var_r31->unk_4C = 150.0f; - } else { + } + else { var_r31->unk_4C = -150.0f; } } @@ -2067,7 +2124,8 @@ void fn_1_5134(omObjData *object) if (!var_r31->unk_38) { Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_3C, var_r31->unk_40, var_r31->unk_44); Hu3DModelRotSet(var_r31->unk_00, 0.0f, var_r31->unk_48, 0.0f); - } else { + } + else { Hu3DModelAttrSet(var_r31->unk_00, 1); } } @@ -2155,11 +2213,14 @@ s32 fn_1_5D3C(void) } if (var_r31->unk_3C < 0.0f) { var_r30++; - } else if (var_r31->unk_3C > 0.0f) { + } + else if (var_r31->unk_3C > 0.0f) { var_r29++; - } else if (frand() & 1) { + } + else if (frand() & 1) { var_r30++; - } else { + } + else { var_r29++; } } @@ -2194,7 +2255,8 @@ void fn_1_5EBC(omObjData *object) if (var_r30 == 0) { var_r31->unk_08 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M426, 0), MEMORY_DEFAULT_NUM)); var_r31->unk_04 = fn_1_795C(var_r31->unk_08, 512); - } else { + } + else { var_r31->unk_08 = var_r29->unk_08; var_r31->unk_04 = fn_1_7DC8(var_r29->unk_04); } @@ -2230,7 +2292,8 @@ void fn_1_6008(omObjData *object) } if (var_r30->unk_10 <= 0) { Hu3DModelAttrSet(var_r30->unk_04, 1); - } else { + } + else { Hu3DModelAttrReset(var_r30->unk_04, 1); var_r26 = &Hu3DData[var_r30->unk_04]; var_r29 = var_r26->unk_120; @@ -2358,7 +2421,8 @@ s32 fn_1_63B8(s32 arg0, Vec *arg1, Vec *arg2, float arg8, GXColor arg3) var_r31->unk_30.x = arg1->x - var_r30->unk_14.x; var_r31->unk_30.y = arg1->y - var_r30->unk_14.y; var_r31->unk_30.z = arg1->z - var_r30->unk_14.z; - } else { + } + else { var_r31->unk_30.x = var_r30->unk_14.x; var_r31->unk_30.y = var_r30->unk_14.y; var_r31->unk_30.z = var_r30->unk_14.z; @@ -2368,7 +2432,8 @@ s32 fn_1_63B8(s32 arg0, Vec *arg1, Vec *arg2, float arg8, GXColor arg3) var_r31->unk_04.x = arg2->x; var_r31->unk_04.y = arg2->y; var_r31->unk_04.z = arg2->z; - } else { + } + else { var_r31->unk_04.x = var_r31->unk_04.y = var_r31->unk_04.z = 0.0f; } @@ -2498,7 +2563,8 @@ void fn_1_6A34(omObjData *object) for (var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) { if (var_r29 == 0) { var_r31->unk_00 = 100; - } else { + } + else { var_r31->unk_00 = 490; } var_r31->unk_04 = 65; @@ -2570,10 +2636,11 @@ void fn_1_6DC0(omObjData *object) if (var_r31->unk_0C) { var_f31 = 1.0 + (0.8f * sind((180.0f * (var_r31->unk_0C / 20.0f)))); var_r31->unk_0C--; - } else { + } + else { var_f31 = 1.0f; } - var_r28 = lbl_1_bss_1C[var_r29]; + var_r28 = lbl_1_bss_1C[var_r29]; if ((sp8[0] = var_r28 / 10) > 9) { sp8[0] = 9; } @@ -2635,7 +2702,8 @@ void fn_1_7328(s32 arg0) for (var_r30 = 0; var_r30 < 6; var_r30++) { if (arg0) { espDispOn(var_r31->unk_14[var_r30]); - } else { + } + else { espDispOff(var_r31->unk_14[var_r30]); } } @@ -2686,18 +2754,21 @@ float fn_1_75F4(float arg8, float arg9) if (arg8 >= 360.0f) { arg8 -= 360.0f; - } else if (arg8 < 0.0f) { + } + else if (arg8 < 0.0f) { arg8 += 360.0f; } if (arg9 >= 360.0f) { arg9 -= 360.0f; - } else if (arg9 < 0.0f) { + } + else if (arg9 < 0.0f) { arg9 += 360.0f; } var_f31 = arg8 - arg9; if (var_f31 <= -180.0f) { var_f31 += 360.0f; - } else if (var_f31 >= 180.0f) { + } + else if (var_f31 >= 180.0f) { var_f31 -= 360.0f; } return var_f31; @@ -2710,12 +2781,14 @@ float fn_1_770C(float arg8, float arg9, float argA) if (arg8 >= 360.0) { arg8 -= 360.0; - } else if (arg8 < 0.0) { + } + else if (arg8 < 0.0) { arg8 += 360.0; } if (arg9 >= 360.0) { arg9 -= 360.0; - } else if (arg9 < 0.0) { + } + else if (arg9 < 0.0) { arg9 += 360.0; } var_f30 = 360.0 + (arg8 - arg9); @@ -2725,19 +2798,23 @@ float fn_1_770C(float arg8, float arg9, float argA) if (var_f30 < 180.0) { if (var_f30 <= argA) { var_f31 = var_f30; - } else { + } + else { var_f31 = argA; } - } else if ((360.0 - var_f30) <= argA) { + } + else if ((360.0 - var_f30) <= argA) { var_f31 = -(360.0 - var_f30); - } else { + } + else { var_f31 = -argA; } var_f31 += arg9; if (var_f31 >= 360.0) { var_f31 -= 360.0; var_f31 = var_f31; - } else if (var_f31 < 0.0) { + } + else if (var_f31 < 0.0) { var_f31 += 360.0; var_f31 = var_f31; } @@ -2936,16 +3013,19 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1) if (shadowModelDrawF != 0) { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ONE, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); - } else { + } + else { var_r21 = var_r31->unk_38->bmp->dataFmt & 15; if (var_r21 == 7 || var_r21 == 8) { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } if (arg0->attr & 2) { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); - } else { + } + else { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); } } @@ -3000,7 +3080,8 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1) var_r30++; var_r30->x = var_r30->y = var_r30->z = 0.0f; var_r30++; - } else { + } + else { if (!var_r29->unk_2C) { var_r28 = sp98; var_r27 = sp38; @@ -3012,7 +3093,8 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1) PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); PSVECScale(var_r27++, var_r28, var_r29->unk_28); PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); - } else { + } + else { PSVECScale(&lbl_1_data_22C[0], &sp98[0], var_r29->unk_28); PSVECScale(&lbl_1_data_22C[1], &sp98[1], var_r29->unk_28); PSVECScale(&lbl_1_data_22C[2], &sp98[2], var_r29->unk_28); @@ -3080,11 +3162,13 @@ void fn_1_88B4(ModelData *arg0, Mtx arg1) if (shadowModelDrawF) { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ONE, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); - } else { + } + else { var_r28 = var_r29->bmp->dataFmt & 15; if (var_r28 == 7 || var_r28 == 8) { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); diff --git a/src/REL/m429Dll/main.c b/src/REL/m429Dll/main.c index 1d05f6c6..bbb553b2 100644 --- a/src/REL/m429Dll/main.c +++ b/src/REL/m429Dll/main.c @@ -1,21 +1,21 @@ #include "REL/executor.h" #include "game/chrman.h" +#include "game/frand.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" -#include "game/frand.h" #include "game/wipe.h" -#include "game/minigame_seq.h" #include "game/gamework_data.h" +#include "game/mapspace.h" #include "game/pad.h" #include "game/printfunc.h" -#include "game/mapspace.h" -#include "game/hsfman.h" -#include "game/hsfmotion.h" #include "game/hsfanim.h" #include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/esprite.h" #include "game/sprite.h" @@ -23,7 +23,6 @@ #include "ext_math.h" #include "rel_sqrt_consts.h" - #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) @@ -66,12 +65,14 @@ float lbl_1_bss_2F0; s32 lbl_1_bss_2B0[16]; UnkBss1B0Struct lbl_1_bss_1B0[32]; -void fn_1_0(void) { +void fn_1_0(void) +{ lbl_1_bss_358.unk04 = NULL; lbl_1_bss_358.unk08 = NULL; } -void fn_1_24(u16 arg0, s16 arg1) { +void fn_1_24(u16 arg0, s16 arg1) +{ UnkBss358Struct *temp_r31; UnkBss358Struct *temp_r30; UnkBss358Struct *temp_r29; @@ -89,7 +90,8 @@ void fn_1_24(u16 arg0, s16 arg1) { temp_r31->unk08 = temp_r29; } -s16 fn_1_AC(s16 arg0) { +s16 fn_1_AC(s16 arg0) +{ UnkBss358Struct *var_r31; UnkBss358Struct *temp_r29; UnkBss358Struct *temp_r30; @@ -113,12 +115,14 @@ s16 fn_1_AC(s16 arg0) { return -1; } -void fn_1_150(void) { +void fn_1_150(void) +{ lbl_1_bss_340.unk10 = NULL; lbl_1_bss_340.unk14 = NULL; } -void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec *arg5, u8 arg6) { +void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec *arg5, u8 arg6) +{ UnkBss340Struct *temp_r27; UnkBss340Struct *var_r31; UnkBss340Struct *temp_r28; @@ -148,7 +152,8 @@ void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec var_r31->unk14 = temp_r27; } -void fn_1_2D8(void) { +void fn_1_2D8(void) +{ UnkBss340Struct *var_r31; UnkBss340Struct *temp_r28; UnkBss340Struct *temp_r29; @@ -183,7 +188,8 @@ void fn_1_2D8(void) { } } -void fn_1_414(void) { +void fn_1_414(void) +{ s32 i; for (i = 0; i < 32; i++) { @@ -192,7 +198,8 @@ void fn_1_414(void) { } } -s16 fn_1_46C(s32 arg0) { +s16 fn_1_46C(s32 arg0) +{ s32 i; for (i = 0; i < 32; i++) { @@ -210,7 +217,8 @@ s16 fn_1_46C(s32 arg0) { return Hu3DModelCreateFile(arg0); } -void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) { +void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) +{ s32 var_r30; espBankSet(arg0[arg1 + 1], 10); @@ -233,14 +241,16 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) { espBankSet(arg0[arg1 + 6], var_r30 % 10); } -void fn_1_798(s32 arg0) { +void fn_1_798(s32 arg0) +{ lbl_1_bss_2F0 = 0.0f; lbl_1_bss_300 = lbl_1_bss_304; GWMGRecordSet(arg0, lbl_1_bss_300); fn_1_580(lbl_1_bss_2B0, 7, lbl_1_bss_304); } -void fn_1_9EC(void) { +void fn_1_9EC(void) +{ s32 i; for (i = 0; i < 16; i++) { @@ -248,7 +258,8 @@ void fn_1_9EC(void) { } } -void fn_1_A40(void) { +void fn_1_A40(void) +{ float temp_f31; s32 i; @@ -261,7 +272,8 @@ void fn_1_A40(void) { } } -void fn_1_B4C(float arg0, s32 arg1) { +void fn_1_B4C(float arg0, s32 arg1) +{ float temp_f30; float temp_f31; s32 i; @@ -298,7 +310,8 @@ void fn_1_B4C(float arg0, s32 arg1) { } } -void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) { +void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ float temp_f31; if (1.0f < arg0) { @@ -310,13 +323,15 @@ void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) { arg3->z = arg1->z + temp_f31 * (arg2->z - arg1->z); } -void fn_1_1350(Vec *arg0, Vec *arg1, Vec *arg2) { +void fn_1_1350(Vec *arg0, Vec *arg1, Vec *arg2) +{ Hu3DCameraPosSetV(1, arg0, arg1, arg2); lbl_1_bss_330 = *arg0; lbl_1_bss_318 = *arg2; } -s32 fn_1_13DC(float arg0, Vec *arg1) { +s32 fn_1_13DC(float arg0, Vec *arg1) +{ Vec sp18; Vec spC; @@ -325,13 +340,15 @@ s32 fn_1_13DC(float arg0, Vec *arg1) { Hu3DCameraPosSetV(1, &sp18, arg1, &spC); if (1.0f <= arg0) { return 1; - } else { + } + else { lbl_1_bss_2F4 = 1; return 0; } } -void fn_1_1710(float arg0, Vec *arg1) { +void fn_1_1710(float arg0, Vec *arg1) +{ Vec sp18; Vec spC; @@ -341,7 +358,8 @@ void fn_1_1710(float arg0, Vec *arg1) { lbl_1_bss_2F4 = 1; } -void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) { +void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) +{ Mtx sp1C; Vec sp10; float temp_f30; @@ -368,7 +386,8 @@ void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) { arg2->z = 0.0f; } -void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) { +void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) +{ Mtx sp10; Hu3DModelObjMtxGet(arg0, arg1, sp10); @@ -377,7 +396,8 @@ void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) { arg2->z = sp10[2][3]; } -void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) { +void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) +{ Mtx spC; ModelData *var_r30; @@ -392,7 +412,8 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) { arg2->z = spC[2][3]; } -float fn_1_1E20(float arg0, float arg1, float arg2) { +float fn_1_1E20(float arg0, float arg1, float arg2) +{ float var_f31; float var_f30; @@ -410,11 +431,13 @@ float fn_1_1E20(float arg0, float arg1, float arg2) { return var_f30; } -void fn_1_1F24(s32 arg0) { +void fn_1_1F24(s32 arg0) +{ lbl_1_bss_2F8 = HuAudSeqPlay((s32)arg0); } -void fn_1_1F58(s32 arg0) { +void fn_1_1F58(s32 arg0) +{ if (lbl_1_bss_2F8 >= 0) { if (arg0 < 0) { arg0 = 1000; @@ -424,7 +447,8 @@ void fn_1_1F58(s32 arg0) { lbl_1_bss_2F8 = -1; } -void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { +void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) +{ Vec sp18; float var_f28; s32 var_r30; @@ -433,7 +457,7 @@ void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { sp18.y = 0.0f; sp18.z = 0.0f; sp18.x = arg2 / 4.0f; - sp18.z = -(float) arg3 / 4.0f; + sp18.z = -(float)arg3 / 4.0f; var_r30 = 0; var_f28 = VECMagXZ(&sp18); if (0.5f <= var_f28) { @@ -447,173 +471,146 @@ void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { *arg1 = fn_1_1E20(*arg1, atan2d(sp18.x, sp18.z), 0.4f); if (8.0f <= var_f28) { var_r30 = 2; - } else { + } + else { var_r30 = 1; } } - PSVECAdd((Vec*) &arg0, &sp18, (Vec*) &arg0); + PSVECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0); } typedef struct data_1340_sub_struct { - char *unk0; - s32 unk4; - s32 unk8[4]; - Vec unk18; + char *unk0; + s32 unk4; + s32 unk8[4]; + Vec unk18; } Data1340SubStruct; typedef struct data_1340_struct { - s32 unk0; - s32 *unk4; - s32 unk8[4]; - float unk18; - s32 unk1C; - Data1340SubStruct *unk20; + s32 unk0; + s32 *unk4; + s32 unk8[4]; + float unk18; + s32 unk1C; + Data1340SubStruct *unk20; } Data1340Struct; typedef struct data_13A8_struct { - float unk0; - float unk4; - float unk8; - s32 unkC; + float unk0; + float unk4; + float unk8; + s32 unkC; } Data13A8Struct; typedef struct bss_130_struct { - s32 unk0; - float unk4; - float unk8; - float unkC; - float unk10; - float unk14; + s32 unk0; + float unk4; + float unk8; + float unkC; + float unk10; + float unk14; } Bss130Struct; -s16 lbl_1_data_0[8] = { - 0, 1, 2, 3, - 4, 5, 6, 7 -}; +s16 lbl_1_data_0[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; Data1340SubStruct lbl_1_data_22C[] = { - { "baseA2-null2", 1, { 13, 1, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null11", 0, { 10, 0, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null12", 0, { 6, 3, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null13", 8, { 20, 2, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null5", 16, { 14, 5, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null6", 0, { 9, 4, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null20", 128, { 2, -1, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null21", 128, { 8, -1, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null22", 0, { 19, 7, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null7", 0, { 5, 15, 10, -1 }, { 0, 0, 0 } }, - { "baseA2-null10", 16, { 1, 9, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null18", 0, { 17, 12, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null17", 0, { 18, 11, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null3", 0, { 0, 14, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null4", 0, { 4, 13, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null8", 0, { 9, 16, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null9", 0, { 22, 15, 17, -1 }, { 0, 0, 0 } }, - { "baseA2-null19", 0, { 11, 23, 16, -1 }, { 0, 0, 0 } }, - { "baseA2-null16", 0, { 12, 19, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null15", 0, { 8, 18, 20, -1 }, { 0, 0, 0 } }, - { "baseA2-null14", 0, { 3, 19, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null39", 0, { 30, 22, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null40", 0, { 16, 21, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null27", 0, { 17, 37, 24, -1 }, { 0, 0, 0 } }, - { "baseA2-null28", 64, { 32, 23, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null23", 64, { 33, 26, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null24", 0, { 38, 25, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null35", 0, { 31, 28, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null34", 32, { 35, 27, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null31", 32, { 36, -1, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null37", 0, { 21, 34, 31, -1 }, { 0, 0, 0 } }, - { "baseA2-null36", 0, { 27, 30, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null29", 0, { 24, 33, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null30", 0, { 25, 32, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null38", 2, { 30, 35, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null33", 0, { 28, 34, 36, -1 }, { 0, 0, 0 } }, - { "baseA2-null32", 0, { 29, 35, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null26", 0, { 23, 38, -1, -1 }, { 0, 0, 0 } }, - { "baseA2-null25", 4, { 26, 37, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null2", 1, { 13, 1, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null11", 0, { 10, 0, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null12", 0, { 6, 3, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null13", 8, { 20, 2, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null5", 16, { 14, 5, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null6", 0, { 9, 4, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null20", 128, { 2, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null21", 128, { 8, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null22", 0, { 19, 7, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null7", 0, { 5, 15, 10, -1 }, { 0, 0, 0 } }, + { "baseA2-null10", 16, { 1, 9, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null18", 0, { 17, 12, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null17", 0, { 18, 11, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null3", 0, { 0, 14, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null4", 0, { 4, 13, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null8", 0, { 9, 16, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null9", 0, { 22, 15, 17, -1 }, { 0, 0, 0 } }, + { "baseA2-null19", 0, { 11, 23, 16, -1 }, { 0, 0, 0 } }, + { "baseA2-null16", 0, { 12, 19, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null15", 0, { 8, 18, 20, -1 }, { 0, 0, 0 } }, + { "baseA2-null14", 0, { 3, 19, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null39", 0, { 30, 22, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null40", 0, { 16, 21, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null27", 0, { 17, 37, 24, -1 }, { 0, 0, 0 } }, + { "baseA2-null28", 64, { 32, 23, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null23", 64, { 33, 26, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null24", 0, { 38, 25, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null35", 0, { 31, 28, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null34", 32, { 35, 27, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null31", 32, { 36, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null37", 0, { 21, 34, 31, -1 }, { 0, 0, 0 } }, + { "baseA2-null36", 0, { 27, 30, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null29", 0, { 24, 33, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null30", 0, { 25, 32, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null38", 2, { 30, 35, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null33", 0, { 28, 34, 36, -1 }, { 0, 0, 0 } }, + { "baseA2-null32", 0, { 29, 35, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null26", 0, { 23, 38, -1, -1 }, { 0, 0, 0 } }, + { "baseA2-null25", 4, { 26, 37, -1, -1 }, { 0, 0, 0 } }, }; Data1340SubStruct lbl_1_data_9EC[] = { - { "baseB2-null1", 1, { 12, 1, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null2", 0, { 8, 0, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null6", 0, { 9, 3, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null10", 0, { 15, 2, 4, -1 }, { 0, 0, 0 } }, - { "baseB2-null11", 0, { 10, 3, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null12", 0, { 11, 6, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null13", 8, { 18, 5, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null7", 16, { 14, -1, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null4", 16, { 1, 9, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null5", 0, { 2, 8, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null14", 128, { 4, 11, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null15", 0, { 5, 10, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null3", 0, { 0, 13, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null9", 0, { 21, 12, 14, -1 }, { 0, 0, 0 } }, - { "baseB2-null8", 0, { 7, 13, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null16", 0, { 3, 16, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null17", 0, { 24, 15, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null18", 128, { 18, -1, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null19", 0, { 6, 17, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null20", 0, { 35, 20, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null21", 0, { 27, 19, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null30", 0, { 13, 22, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null29", 0, { 38, 21, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null31", 0, { 32, 24, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null33", 0, { 16, 23, 25, -1 }, { 0, 0, 0 } }, - { "baseB2-null34", 0, { 30, 24, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null42", 64, { 34, -1, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null25", 0, { 20, 28, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null26", 32, { 37, 27, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null36", 0, { 39, 30, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null35", 0, { 25, 33, 29, -1 }, { 0, 0, 0 } }, - { "baseB2-null24", 32, { 36, -1, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null32", 64, { 23, -1, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null38", 0, { 30, 40, 34, -1 }, { 0, 0, 0 } }, - { "baseB2-null40", 0, { 26, 33, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null22", 2, { 19, 36, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null23", 0, { 31, 35, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null27", 0, { 28, 38, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null28", 0, { 22, 37, 39, -1 }, { 0, 0, 0 } }, - { "baseB2-null37", 0, { 29, 38, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null39", 0, { 33, 41, -1, -1 }, { 0, 0, 0 } }, - { "baseB2-null41", 4, { 40, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null1", 1, { 12, 1, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null2", 0, { 8, 0, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null6", 0, { 9, 3, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null10", 0, { 15, 2, 4, -1 }, { 0, 0, 0 } }, + { "baseB2-null11", 0, { 10, 3, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null12", 0, { 11, 6, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null13", 8, { 18, 5, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null7", 16, { 14, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null4", 16, { 1, 9, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null5", 0, { 2, 8, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null14", 128, { 4, 11, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null15", 0, { 5, 10, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null3", 0, { 0, 13, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null9", 0, { 21, 12, 14, -1 }, { 0, 0, 0 } }, + { "baseB2-null8", 0, { 7, 13, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null16", 0, { 3, 16, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null17", 0, { 24, 15, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null18", 128, { 18, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null19", 0, { 6, 17, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null20", 0, { 35, 20, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null21", 0, { 27, 19, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null30", 0, { 13, 22, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null29", 0, { 38, 21, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null31", 0, { 32, 24, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null33", 0, { 16, 23, 25, -1 }, { 0, 0, 0 } }, + { "baseB2-null34", 0, { 30, 24, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null42", 64, { 34, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null25", 0, { 20, 28, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null26", 32, { 37, 27, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null36", 0, { 39, 30, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null35", 0, { 25, 33, 29, -1 }, { 0, 0, 0 } }, + { "baseB2-null24", 32, { 36, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null32", 64, { 23, -1, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null38", 0, { 30, 40, 34, -1 }, { 0, 0, 0 } }, + { "baseB2-null40", 0, { 26, 33, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null22", 2, { 19, 36, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null23", 0, { 31, 35, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null27", 0, { 28, 38, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null28", 0, { 22, 37, 39, -1 }, { 0, 0, 0 } }, + { "baseB2-null37", 0, { 29, 38, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null39", 0, { 33, 41, -1, -1 }, { 0, 0, 0 } }, + { "baseB2-null41", 4, { 40, -1, -1, -1 }, { 0, 0, 0 } }, }; Vec lbl_1_data_FD4 = { 0, 1, -1 }; Vec lbl_1_data_FE0 = { 0, 1, 0 }; s32 lbl_1_data_FEC[4] = { 1, 2, 4, 8 }; -float lbl_1_data_FFC[4][4] = { - 0, 0, 320, 240, - 0, 240, 320, 240, - 320, 0, 320, 240, - 320, 240, 320, 240 -}; -float lbl_1_data_103C[4][4] = { - 2, 2, 316, 236, - 2, 242, 316, 236, - 322, 2, 316, 236, - 322, 242, 316, 236 -}; +float lbl_1_data_FFC[4][4] = { 0, 0, 320, 240, 0, 240, 320, 240, 320, 0, 320, 240, 320, 240, 320, 240 }; +float lbl_1_data_103C[4][4] = { 2, 2, 316, 236, 2, 242, 316, 236, 322, 2, 316, 236, 322, 242, 316, 236 }; -float lbl_1_data_107C[4][4] = { - 0, 0, 640, 480, - 0, 480, 640, 0, - 640, 0, 0, 480, - 640, 480, 0, 0 -}; +float lbl_1_data_107C[4][4] = { 0, 0, 640, 480, 0, 480, 640, 0, 640, 0, 0, 480, 640, 480, 0, 0 }; -float lbl_1_data_10BC[4][4] = { - 0, 0, 0, 480, - 0, 480, 0, 0, - 0, 0, 640, 480, - 0, 480, 640, 0 -}; +float lbl_1_data_10BC[4][4] = { 0, 0, 0, 480, 0, 480, 0, 0, 0, 0, 640, 480, 0, 480, 640, 0 }; -float lbl_1_data_10FC[4][2] = { - -1, -1, - -1, 1, - 1, -1, - 1, 1 -}; +float lbl_1_data_10FC[4][2] = { -1, -1, -1, 1, 1, -1, 1, 1 }; Vec lbl_1_data_111C = { 0, 10000, 0 }; Vec lbl_1_data_1128 = { 0, -1, 0 }; @@ -621,236 +618,227 @@ GXColor lbl_1_data_1134 = { 255, 255, 255, 255 }; Vec lbl_1_data_1138 = { 0, 8000, 1000 }; Vec lbl_1_data_1144 = { 0, 0, 0 }; s32 lbl_1_data_1150[8][10] = { - 0x005F0000, - 0x005F0002, - 0x005F0003, - 0x005F0017, - 0x005F0072, - 0x005F005A, - 0x003C0008, - 0x005F0058, - 0x005F0059, - 0x003C0000, - 0x001A0000, - 0x001A0002, - 0x001A0003, - 0x001A0017, - 0x001A0072, - 0x001A005A, - 0x003C0009, - 0x001A0058, - 0x001A0059, - 0x003C0001, - 0x006D0000, - 0x006D0002, - 0x006D0003, - 0x006D0017, - 0x006D0072, - 0x006D005A, - 0x003C000A, - 0x006D0058, - 0x006D0059, - 0x003C0002, - 0x008A0000, - 0x008A0002, - 0x008A0003, - 0x008A0017, - 0x008A0072, - 0x008A005A, - 0x003C000B, - 0x008A0058, - 0x008A0059, - 0x003C0003, - 0x00850000, - 0x00850002, - 0x00850003, - 0x00850017, - 0x00850072, - 0x0085005A, - 0x003C000C, - 0x00850058, - 0x00850059, - 0x003C0004, - 0x00110000, - 0x00110002, - 0x00110003, - 0x00110017, - 0x00110072, - 0x0011005A, - 0x003C000D, - 0x00110058, - 0x00110059, - 0x003C0005, - 0x000D0000, - 0x000D0002, - 0x000D0003, - 0x000D0017, - 0x000D0072, - 0x000D005A, - 0x003C000E, - 0x000D0058, - 0x000D0059, - 0x003C0006, - 0x00810000, - 0x00810002, - 0x00810003, - 0x00810017, - 0x00810072, - 0x0081005A, - 0x003C000F, - 0x00810058, - 0x00810059, - 0x003C0007 + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x72), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x5A), + DATA_MAKE_NUM(DATADIR_M429, 0x08), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x58), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x59), + DATA_MAKE_NUM(DATADIR_M429, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x72), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x5A), + DATA_MAKE_NUM(DATADIR_M429, 0x09), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x58), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x59), + DATA_MAKE_NUM(DATADIR_M429, 0x01), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x02), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x03), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x17), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x72), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x5A), + DATA_MAKE_NUM(DATADIR_M429, 0x0A), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x58), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x59), + DATA_MAKE_NUM(DATADIR_M429, 0x02), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x72), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x5A), + DATA_MAKE_NUM(DATADIR_M429, 0x0B), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x58), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x59), + DATA_MAKE_NUM(DATADIR_M429, 0x03), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x72), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x5A), + DATA_MAKE_NUM(DATADIR_M429, 0x0C), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x58), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x59), + DATA_MAKE_NUM(DATADIR_M429, 0x04), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x02), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x03), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x72), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x5A), + DATA_MAKE_NUM(DATADIR_M429, 0x0D), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x58), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x59), + DATA_MAKE_NUM(DATADIR_M429, 0x05), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x02), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x03), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x72), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x5A), + DATA_MAKE_NUM(DATADIR_M429, 0x0E), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x58), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x59), + DATA_MAKE_NUM(DATADIR_M429, 0x06), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x72), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x5A), + DATA_MAKE_NUM(DATADIR_M429, 0x0F), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x58), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x59), + DATA_MAKE_NUM(DATADIR_M429, 0x07), }; s32 lbl_1_data_1290[8] = { - 0x610000, - 0x610001, - 0x610002, - 0x610003, - 0x610004, - 0x610005, - 0x610006, - 0x610007 + DATA_MAKE_NUM(DATADIR_MGCONST, 0x00), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x01), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x02), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x03), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x04), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x05), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x06), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x07), }; s32 lbl_1_data_12B0[8] = { - 0x003C002C, 0x003C002E, - 0x003C002C, 0x003C002E, - 0x003C002D, 0x003C002E, - 0x003C002D, 0x003C002E + DATA_MAKE_NUM(DATADIR_M429, 0x2C), + DATA_MAKE_NUM(DATADIR_M429, 0x2E), + DATA_MAKE_NUM(DATADIR_M429, 0x2C), + DATA_MAKE_NUM(DATADIR_M429, 0x2E), + DATA_MAKE_NUM(DATADIR_M429, 0x2D), + DATA_MAKE_NUM(DATADIR_M429, 0x2E), + DATA_MAKE_NUM(DATADIR_M429, 0x2D), + DATA_MAKE_NUM(DATADIR_M429, 0x2E), }; s32 lbl_1_data_12D0[4] = { - 0x003C003D, - 0x003C003D, - 0x003C003E, - 0x003C003E + DATA_MAKE_NUM(DATADIR_M429, 0x3D), + DATA_MAKE_NUM(DATADIR_M429, 0x3D), + DATA_MAKE_NUM(DATADIR_M429, 0x3E), + DATA_MAKE_NUM(DATADIR_M429, 0x3E), }; s32 lbl_1_data_12E0[4][3] = { - 0x003C0024, 0x003C0030, 0x003C0025, - 0x003C0026, 0x003C0030, 0x003C0027, - 0x003C0028, 0x003C0030, 0x003C0029, - 0x003C002A, 0x003C0030, 0x003C002B, + DATA_MAKE_NUM(DATADIR_M429, 0x24), + DATA_MAKE_NUM(DATADIR_M429, 0x30), + DATA_MAKE_NUM(DATADIR_M429, 0x25), + DATA_MAKE_NUM(DATADIR_M429, 0x26), + DATA_MAKE_NUM(DATADIR_M429, 0x30), + DATA_MAKE_NUM(DATADIR_M429, 0x27), + DATA_MAKE_NUM(DATADIR_M429, 0x28), + DATA_MAKE_NUM(DATADIR_M429, 0x30), + DATA_MAKE_NUM(DATADIR_M429, 0x29), + DATA_MAKE_NUM(DATADIR_M429, 0x2A), + DATA_MAKE_NUM(DATADIR_M429, 0x30), + DATA_MAKE_NUM(DATADIR_M429, 0x2B), }; s32 lbl_1_data_1310[4] = { - 0x003C003A, - 0x003C003A, - 0x003C003B, - 0x003C003B + DATA_MAKE_NUM(DATADIR_M429, 0x3A), + DATA_MAKE_NUM(DATADIR_M429, 0x3A), + DATA_MAKE_NUM(DATADIR_M429, 0x3B), + DATA_MAKE_NUM(DATADIR_M429, 0x3B), }; s32 lbl_1_data_1320[4] = { - 0x003C0013, - 0x003C0016, - 0x003C0015, - 0x003C0014 + DATA_MAKE_NUM(DATADIR_M429, 0x13), + DATA_MAKE_NUM(DATADIR_M429, 0x16), + DATA_MAKE_NUM(DATADIR_M429, 0x15), + DATA_MAKE_NUM(DATADIR_M429, 0x14), }; s32 lbl_1_data_1330[4] = { - 0x003C001C, - 0x003C001F, - 0x003C001E, - 0x003C001D + DATA_MAKE_NUM(DATADIR_M429, 0x1C), + DATA_MAKE_NUM(DATADIR_M429, 0x1F), + DATA_MAKE_NUM(DATADIR_M429, 0x1E), + DATA_MAKE_NUM(DATADIR_M429, 0x1D), }; Data1340Struct lbl_1_data_1340[2] = { - { - 0, - lbl_1_data_1320, - { - 0x003C0010, - 0x003C0011, - 0x003C0017, - 0x003C0018 - }, - 13000, - 39, - lbl_1_data_22C - }, - { - 4, - lbl_1_data_1330, - { - 0x003C0019, - 0x003C001A, - 0x003C0020, - 0x003C0021 - }, - 13000, - 42, - lbl_1_data_9EC - }, + { + 0, + lbl_1_data_1320, + { + DATA_MAKE_NUM(DATADIR_M429, 0x10), + DATA_MAKE_NUM(DATADIR_M429, 0x11), + DATA_MAKE_NUM(DATADIR_M429, 0x17), + DATA_MAKE_NUM(DATADIR_M429, 0x18), + }, + 13000, + 39, + lbl_1_data_22C, + }, + { + 4, + lbl_1_data_1330, + { + DATA_MAKE_NUM(DATADIR_M429, 0x19), + DATA_MAKE_NUM(DATADIR_M429, 0x1A), + DATA_MAKE_NUM(DATADIR_M429, 0x20), + DATA_MAKE_NUM(DATADIR_M429, 0x21), + }, + 13000, + 42, + lbl_1_data_9EC, + }, }; s32 lbl_1_data_1388[8] = { - 0x003C0032, - 0x003C0033, - 0x003C0034, - 0x003C0035, - 0x003C0036, - 0x003C0037, - 0x003C0038, - 0x003C0039 + DATA_MAKE_NUM(DATADIR_M429, 0x32), + DATA_MAKE_NUM(DATADIR_M429, 0x33), + DATA_MAKE_NUM(DATADIR_M429, 0x34), + DATA_MAKE_NUM(DATADIR_M429, 0x35), + DATA_MAKE_NUM(DATADIR_M429, 0x36), + DATA_MAKE_NUM(DATADIR_M429, 0x37), + DATA_MAKE_NUM(DATADIR_M429, 0x38), + DATA_MAKE_NUM(DATADIR_M429, 0x39), }; -Data13A8Struct lbl_1_data_13A8 = { - 0.5f, - 100.0f, - 130.0f, - 15 -}; +Data13A8Struct lbl_1_data_13A8 = { 0.5f, 100.0f, 130.0f, 15 }; -Data13A8Struct lbl_1_data_13B8 = { - 0.6f, - 110.0f, - 120.0f, - 12 -}; +Data13A8Struct lbl_1_data_13B8 = { 0.6f, 110.0f, 120.0f, 12 }; -Data13A8Struct lbl_1_data_13C8 = { - 0.7f, - 120.0f, - 110.0f, - 9 -}; +Data13A8Struct lbl_1_data_13C8 = { 0.7f, 120.0f, 110.0f, 9 }; -Data13A8Struct lbl_1_data_13D8 = { - 0.8f, - 130.0f, - 100.0f, - 6 -}; +Data13A8Struct lbl_1_data_13D8 = { 0.8f, 130.0f, 100.0f, 6 }; HsfanimStruct00 lbl_1_data_13E8 = { - 30, - { 0, 0 }, - 1.0f, - 10.0f, - 360.0f, - { 0.0f, 0.1f, 0.0f }, - 1.0f, - 1.0f, - 30.0f, - 1.05f, - 1, - { - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 }, - }, - { - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 }, - }, + 30, + { 0, 0 }, + 1.0f, + 10.0f, + 360.0f, + { 0.0f, 0.1f, 0.0f }, + 1.0f, + 1.0f, + 30.0f, + 1.05f, + 1, + { + { 255, 255, 255, 255 }, + { 255, 255, 255, 255 }, + { 255, 255, 255, 255 }, + { 255, 255, 255, 255 }, + }, + { + { 255, 255, 255, 0 }, + { 255, 255, 255, 0 }, + { 255, 255, 255, 0 }, + { 255, 255, 255, 0 }, + }, }; - omObjData *lbl_1_bss_1AC; omObjData *lbl_1_bss_1A8; omObjData **lbl_1_bss_1A4; @@ -887,2002 +875,2010 @@ s32 lbl_1_bss_4; s32 lbl_1_bss_0; typedef struct work_8F68 { - Data13A8Struct *unk0; - Vec unk4; - Vec unk10; - Vec unk1C; - Vec unk28; - Vec unk34; - Vec unk40; - float unk4C; - float unk50; - float unk54; - float unk58; - float unk5C; - float unk60; - float unk64; - float unk68; - float unk6C; - s32 unk70; - u8 *unk74; - s32 unk78; - s32 unk7C; - s32 unk80; - s32 unk84; - s32 unk88; - s32 unk8C; - float unk90; - u32 unk94[2]; - s32 unk9C; - s32 unkA0; - s32 unkA4; - s32 unkA8; - s32 unkAC; - s32 unkB0; - s32 unkB4; - s32 unkB8[4]; - s32 unkC8[4][2]; - s32 unkE8; - s32 unkEC; - s32 unkF0; - s32 unkF4; - s32 unkF8; - s32 unkFC; - s32 unk100; - s32 unk104; - s32 unk108; - s32 unk10C; - s32 unk110; - s32 unk114; - s32 unk118; - s32 unk11C; - s32 unk120; + Data13A8Struct *unk0; + Vec unk4; + Vec unk10; + Vec unk1C; + Vec unk28; + Vec unk34; + Vec unk40; + float unk4C; + float unk50; + float unk54; + float unk58; + float unk5C; + float unk60; + float unk64; + float unk68; + float unk6C; + s32 unk70; + u8 *unk74; + s32 unk78; + s32 unk7C; + s32 unk80; + s32 unk84; + s32 unk88; + s32 unk8C; + float unk90; + u32 unk94[2]; + s32 unk9C; + s32 unkA0; + s32 unkA4; + s32 unkA8; + s32 unkAC; + s32 unkB0; + s32 unkB4; + s32 unkB8[4]; + s32 unkC8[4][2]; + s32 unkE8; + s32 unkEC; + s32 unkF0; + s32 unkF4; + s32 unkF8; + s32 unkFC; + s32 unk100; + s32 unk104; + s32 unk108; + s32 unk10C; + s32 unk110; + s32 unk114; + s32 unk118; + s32 unk11C; + s32 unk120; } Work8F68; void fn_1_23B4(void) { - Work8F68 *temp_r31; - s32 temp_r30; - HuSysVWaitSet(1); - lbl_1_bss_11C -= HuPadSubStkX[0]/59.0f; - lbl_1_bss_120 -= 4*(HuPadSubStkY[0]/59.0f); - lbl_1_bss_118 -= 4*(HuPadTrigL[0]/150.0f); - lbl_1_bss_118 += 4*(HuPadTrigR[0]/150.0f); - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r31 = lbl_1_bss_1A4[temp_r30]->data; - print8(24, 96+(16*temp_r30), 1.5f, "%d %d %d M%2d %04x %2d %2d %d %d", temp_r31->unk100, temp_r31->unk10C, temp_r31->unk104, temp_r31->unk8C, temp_r31->unkE8, temp_r31->unkEC, temp_r31->unkF0, temp_r31->unk80, temp_r31->unk8C); - } + Work8F68 *temp_r31; + s32 temp_r30; + HuSysVWaitSet(1); + lbl_1_bss_11C -= HuPadSubStkX[0] / 59.0f; + lbl_1_bss_120 -= 4 * (HuPadSubStkY[0] / 59.0f); + lbl_1_bss_118 -= 4 * (HuPadTrigL[0] / 150.0f); + lbl_1_bss_118 += 4 * (HuPadTrigR[0] / 150.0f); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r31 = lbl_1_bss_1A4[temp_r30]->data; + print8(24, 96 + (16 * temp_r30), 1.5f, "%d %d %d M%2d %04x %2d %2d %d %d", temp_r31->unk100, temp_r31->unk10C, temp_r31->unk104, + temp_r31->unk8C, temp_r31->unkE8, temp_r31->unkEC, temp_r31->unkF0, temp_r31->unk80, temp_r31->unk8C); + } } Data1340SubStruct *fn_1_2614(s32 arg0) { - Data1340SubStruct *temp_r31; - s32 temp_r30; - temp_r31 = lbl_1_bss_190->unk20; - for(temp_r30=0; temp_r30unk1C; temp_r30++, temp_r31++) { - if(arg0 & temp_r31->unk4) { - return temp_r31; - } - } - return NULL; + Data1340SubStruct *temp_r31; + s32 temp_r30; + temp_r31 = lbl_1_bss_190->unk20; + for (temp_r30 = 0; temp_r30 < lbl_1_bss_190->unk1C; temp_r30++, temp_r31++) { + if (arg0 & temp_r31->unk4) { + return temp_r31; + } + } + return NULL; } void fn_1_2684(void) { - Data1340SubStruct *temp_r31; - s32 temp_r30; - - s32 temp_r28; - temp_r30 = frandmod(2); - lbl_1_bss_190 = &lbl_1_data_1340[temp_r30]; - temp_r30 = Hu3DModelCreateFile(lbl_1_bss_190->unk8[0]); - Hu3DModelAttrSet(temp_r30, 1); - Hu3DModelPosSet(temp_r30, 0, 0, 0); - Hu3DModelRotSet(temp_r30, 0, -90.f*lbl_1_bss_34, 0); - for(temp_r28=0; temp_r28unk1C; temp_r28++) { - fn_1_1D18(temp_r30, lbl_1_bss_190->unk20[temp_r28].unk0, &lbl_1_bss_190->unk20[temp_r28].unk18); - } - lbl_1_bss_128 = 2000; - lbl_1_bss_124 = 2000; - temp_r31 = fn_1_2614(1); - if(NULL != temp_r31) { - lbl_1_bss_128 = 2.0f*ABS(temp_r31->unk18.x); - lbl_1_bss_124 = 2.2f*ABS(temp_r31->unk18.z); - } + Data1340SubStruct *temp_r31; + s32 temp_r30; + + s32 temp_r28; + temp_r30 = frandmod(2); + lbl_1_bss_190 = &lbl_1_data_1340[temp_r30]; + temp_r30 = Hu3DModelCreateFile(lbl_1_bss_190->unk8[0]); + Hu3DModelAttrSet(temp_r30, 1); + Hu3DModelPosSet(temp_r30, 0, 0, 0); + Hu3DModelRotSet(temp_r30, 0, -90.f * lbl_1_bss_34, 0); + for (temp_r28 = 0; temp_r28 < lbl_1_bss_190->unk1C; temp_r28++) { + fn_1_1D18(temp_r30, lbl_1_bss_190->unk20[temp_r28].unk0, &lbl_1_bss_190->unk20[temp_r28].unk18); + } + lbl_1_bss_128 = 2000; + lbl_1_bss_124 = 2000; + temp_r31 = fn_1_2614(1); + if (NULL != temp_r31) { + lbl_1_bss_128 = 2.0f * ABS(temp_r31->unk18.x); + lbl_1_bss_124 = 2.2f * ABS(temp_r31->unk18.z); + } } void fn_1_2950(Work8F68 *arg0) { - float temp_f31; - float temp_f30; - float temp_f28; - float temp_f27; - s32 temp_r31; - Data1340SubStruct *temp_r30; - s32 temp_r29; - s32 temp_r28; - s32 temp_r27; - s32 temp_r26; - temp_r28 = arg0->unkEC; - temp_r31 = -1; - temp_f27 = lbl_1_bss_190->unk18; - temp_r30 = lbl_1_bss_190->unk20; - for(temp_r29=0; temp_r29unk1C; temp_r29++, temp_r30++) { - temp_f31 = arg0->unk4.x-temp_r30->unk18.x; - temp_f30 = arg0->unk4.z-temp_r30->unk18.z; - temp_f28 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(arg0->unk54+200.0f > temp_f28 && temp_f27 > temp_f28) { - temp_r31 = temp_r29; - temp_f27 = temp_f28; - } - } - if(temp_r31 >= 0) { - arg0->unkEC = temp_r31; - if(temp_r28 != temp_r31) { - if(--arg0->unk8C < 0) { - arg0->unk8C = -1; - } - } - temp_r27 = temp_r31/32; - temp_r26 = temp_r31%32; - arg0->unk94[temp_r27] |= 1 << temp_r26; - } + float temp_f31; + float temp_f30; + float temp_f28; + float temp_f27; + s32 temp_r31; + Data1340SubStruct *temp_r30; + s32 temp_r29; + s32 temp_r28; + s32 temp_r27; + s32 temp_r26; + temp_r28 = arg0->unkEC; + temp_r31 = -1; + temp_f27 = lbl_1_bss_190->unk18; + temp_r30 = lbl_1_bss_190->unk20; + for (temp_r29 = 0; temp_r29 < lbl_1_bss_190->unk1C; temp_r29++, temp_r30++) { + temp_f31 = arg0->unk4.x - temp_r30->unk18.x; + temp_f30 = arg0->unk4.z - temp_r30->unk18.z; + temp_f28 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (arg0->unk54 + 200.0f > temp_f28 && temp_f27 > temp_f28) { + temp_r31 = temp_r29; + temp_f27 = temp_f28; + } + } + if (temp_r31 >= 0) { + arg0->unkEC = temp_r31; + if (temp_r28 != temp_r31) { + if (--arg0->unk8C < 0) { + arg0->unk8C = -1; + } + } + temp_r27 = temp_r31 / 32; + temp_r26 = temp_r31 % 32; + arg0->unk94[temp_r27] |= 1 << temp_r26; + } } void fn_1_2BE0(Work8F68 *arg0, s32 arg1, s32 arg2, s32 arg3, u8 *arg4, s32 *arg5) { - s32 sp8[2]; - s32 temp_r31; - Data1340SubStruct *temp_r30; - s32 temp_r29; - u8 *temp_r27; - - s32 temp_r24; - s32 temp_r23; - temp_r24 = arg1/32; - temp_r23 = arg1%32; - arg5[temp_r24] |= 1 << temp_r23; - temp_r27 = HuMemDirectMallocNum(HEAP_SYSTEM, arg3+1, MEMORY_DEFAULT_NUM); - for(temp_r31=0; temp_r31unk20[arg1]; - for(temp_r31=0; temp_r31<4; temp_r31++) { - if(temp_r30->unk8[temp_r31] < 0) { - break; - } - temp_r27[arg3] = temp_r30->unk8[temp_r31]; - if(arg2 == temp_r30->unk8[temp_r31]) { - if(arg0->unk78 > arg3+1) { - if(NULL != arg0->unk74) { - HuMemDirectFree(arg0->unk74); - } - arg0->unk74 = HuMemDirectMallocNum(HEAP_SYSTEM, arg3+1, MEMORY_DEFAULT_NUM); - for(temp_r29=0; temp_r29unk74[temp_r29] = temp_r27[temp_r29]; - } - arg0->unk78 = arg3+1; - } - } else { - if(temp_r30->unk8[temp_r31] >= 0) { - temp_r24 = temp_r30->unk8[temp_r31]/32; - temp_r23 = temp_r30->unk8[temp_r31]%32; - if((arg5[temp_r24] & (1 << temp_r23)) == 0u) { - for(temp_r29=0; temp_r29<2; temp_r29++) { - sp8[temp_r29] = arg5[temp_r29]; - } - fn_1_2BE0(arg0, temp_r30->unk8[temp_r31], arg2, arg3+1, temp_r27, sp8); - } - } - } - } - HuMemDirectFree(temp_r27); + s32 sp8[2]; + s32 temp_r31; + Data1340SubStruct *temp_r30; + s32 temp_r29; + u8 *temp_r27; + + s32 temp_r24; + s32 temp_r23; + temp_r24 = arg1 / 32; + temp_r23 = arg1 % 32; + arg5[temp_r24] |= 1 << temp_r23; + temp_r27 = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 + 1, MEMORY_DEFAULT_NUM); + for (temp_r31 = 0; temp_r31 < arg3; temp_r31++) { + temp_r27[temp_r31] = arg4[temp_r31]; + } + temp_r30 = &lbl_1_bss_190->unk20[arg1]; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + if (temp_r30->unk8[temp_r31] < 0) { + break; + } + temp_r27[arg3] = temp_r30->unk8[temp_r31]; + if (arg2 == temp_r30->unk8[temp_r31]) { + if (arg0->unk78 > arg3 + 1) { + if (NULL != arg0->unk74) { + HuMemDirectFree(arg0->unk74); + } + arg0->unk74 = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 + 1, MEMORY_DEFAULT_NUM); + for (temp_r29 = 0; temp_r29 < arg3 + 1; temp_r29++) { + arg0->unk74[temp_r29] = temp_r27[temp_r29]; + } + arg0->unk78 = arg3 + 1; + } + } + else { + if (temp_r30->unk8[temp_r31] >= 0) { + temp_r24 = temp_r30->unk8[temp_r31] / 32; + temp_r23 = temp_r30->unk8[temp_r31] % 32; + if ((arg5[temp_r24] & (1 << temp_r23)) == 0u) { + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + sp8[temp_r29] = arg5[temp_r29]; + } + fn_1_2BE0(arg0, temp_r30->unk8[temp_r31], arg2, arg3 + 1, temp_r27, sp8); + } + } + } + } + HuMemDirectFree(temp_r27); } void fn_1_2E14(Work8F68 *arg0) { - s32 spC[2]; - u8 sp8; - s32 temp_r30; - if(NULL != arg0->unk74) { - HuMemDirectFree(arg0->unk74); - } - arg0->unk74 = NULL; - arg0->unk78 = 65535; - arg0->unk7C = 0; - if(arg0->unkEC == arg0->unkF0) { - arg0->unkE8 |= 0x8; - arg0->unkF0 = -1; - return; - } - sp8 = arg0->unkEC; - for(temp_r30=0; temp_r30<2; temp_r30++) { - spC[temp_r30] = 0; - } - fn_1_2BE0(arg0, arg0->unkEC, arg0->unkF0, 1, &sp8, spC); + s32 spC[2]; + u8 sp8; + s32 temp_r30; + if (NULL != arg0->unk74) { + HuMemDirectFree(arg0->unk74); + } + arg0->unk74 = NULL; + arg0->unk78 = 65535; + arg0->unk7C = 0; + if (arg0->unkEC == arg0->unkF0) { + arg0->unkE8 |= 0x8; + arg0->unkF0 = -1; + return; + } + sp8 = arg0->unkEC; + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + spC[temp_r30] = 0; + } + fn_1_2BE0(arg0, arg0->unkEC, arg0->unkF0, 1, &sp8, spC); } void fn_1_2EEC(Work8F68 *arg0) { - Vec sp18; - Vec spC; - float temp_f31; - float temp_f30; - float temp_f28; - Data1340SubStruct *temp_r30; - Data1340SubStruct *temp_r29; - - if(NULL != arg0->unk74 && arg0->unk78 >= 2) { - temp_r30 = &lbl_1_bss_190->unk20[arg0->unk74[0]]; - temp_r29 = &lbl_1_bss_190->unk20[arg0->unk74[1]]; - temp_f31 = temp_r30->unk18.x-arg0->unk4.x; - temp_f30 = temp_r30->unk18.z-arg0->unk4.z; - temp_f28 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(150.0f > temp_f28) { - arg0->unk7C = 1; - return; - } - VECSubtract(&temp_r29->unk18, &temp_r30->unk18, &sp18); - VECSubtract(&arg0->unk4, &temp_r30->unk18, &spC); - if(0.0f != VECMag(&sp18) && 0.0f != VECMag(&spC)) { - VECNormalize(&sp18, &sp18); - VECNormalize(&spC, &spC); - if(0.8f < VECDotProduct(&sp18, &spC)) { - arg0->unk7C = 1; - } - } - } + Vec sp18; + Vec spC; + float temp_f31; + float temp_f30; + float temp_f28; + Data1340SubStruct *temp_r30; + Data1340SubStruct *temp_r29; + + if (NULL != arg0->unk74 && arg0->unk78 >= 2) { + temp_r30 = &lbl_1_bss_190->unk20[arg0->unk74[0]]; + temp_r29 = &lbl_1_bss_190->unk20[arg0->unk74[1]]; + temp_f31 = temp_r30->unk18.x - arg0->unk4.x; + temp_f30 = temp_r30->unk18.z - arg0->unk4.z; + temp_f28 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (150.0f > temp_f28) { + arg0->unk7C = 1; + return; + } + VECSubtract(&temp_r29->unk18, &temp_r30->unk18, &sp18); + VECSubtract(&arg0->unk4, &temp_r30->unk18, &spC); + if (0.0f != VECMag(&sp18) && 0.0f != VECMag(&spC)) { + VECNormalize(&sp18, &sp18); + VECNormalize(&spC, &spC); + if (0.8f < VECDotProduct(&sp18, &spC)) { + arg0->unk7C = 1; + } + } + } } -void fn_1_31A8(omObjData *object) -{ - -} +void fn_1_31A8(omObjData *object) { } void fn_1_31AC(omObjData *object) { - object->model[0] = Hu3DModelCreateFile(lbl_1_bss_190->unk4[lbl_1_bss_34]); - Hu3DModelAttrSet(object->model[0], 1); - omSetTra(object, 0, 0, 0); - omSetRot(object, 0, 0, 0); - object->func = fn_1_31A8; + object->model[0] = Hu3DModelCreateFile(lbl_1_bss_190->unk4[lbl_1_bss_34]); + Hu3DModelAttrSet(object->model[0], 1); + omSetTra(object, 0, 0, 0); + omSetRot(object, 0, 0, 0); + object->func = fn_1_31A8; } typedef struct work_3284 { - Vec unk0; - float unkC; - float unk10; - s32 unk14; - s32 unk18; + Vec unk0; + float unkC; + float unk10; + s32 unk14; + s32 unk18; } Work3284; void fn_1_3284(omObjData *object) { - Work3284 *temp_r31 = object->data; - if(lbl_1_bss_1AC->work[0] >= 1007) { - temp_r31->unk10 *= 0.9f; - if(0.0f > temp_r31->unk10) { - temp_r31->unk10 = 0.0f; - } - } else { - if(temp_r31->unk18 & 0x1) { - temp_r31->unkC += 6.0f; - if(180.0f < temp_r31->unkC) { - temp_r31->unkC = 180.0f; - } - temp_r31->unk10 = 1.0-(0.5*sind(temp_r31->unkC)); - } - } - omSetSca(object, temp_r31->unk10, temp_r31->unk10, temp_r31->unk10); - Hu3DModelScaleSet(object->model[1], temp_r31->unk10, temp_r31->unk10, temp_r31->unk10); - Hu3DModelScaleSet(object->model[0], temp_r31->unk10, temp_r31->unk10, temp_r31->unk10); + Work3284 *temp_r31 = object->data; + if (lbl_1_bss_1AC->work[0] >= 1007) { + temp_r31->unk10 *= 0.9f; + if (0.0f > temp_r31->unk10) { + temp_r31->unk10 = 0.0f; + } + } + else { + if (temp_r31->unk18 & 0x1) { + temp_r31->unkC += 6.0f; + if (180.0f < temp_r31->unkC) { + temp_r31->unkC = 180.0f; + } + temp_r31->unk10 = 1.0 - (0.5 * sind(temp_r31->unkC)); + } + } + omSetSca(object, temp_r31->unk10, temp_r31->unk10, temp_r31->unk10); + Hu3DModelScaleSet(object->model[1], temp_r31->unk10, temp_r31->unk10, temp_r31->unk10); + Hu3DModelScaleSet(object->model[0], temp_r31->unk10, temp_r31->unk10, temp_r31->unk10); } void fn_1_33F8(omObjData *object) { - Work3284 *temp_r31 = object->data; - s32 temp_r29; - s32 temp_r28; - s32 *temp_r27; - Data1340SubStruct *temp_r26; - s32 temp_r25; - s32 temp_r24; - - temp_r31->unk0.x = 0; - temp_r31->unk0.y = 0; - temp_r31->unk0.z = 0; - temp_r31->unkC = 0; - temp_r31->unk10 = 1; - temp_r31->unk14 = -1; - temp_r31->unk18 = 0; - temp_r24 = 16 << ((object->work[0]+lbl_1_bss_34+2)&0x3); - temp_r25 = frandmod(lbl_1_bss_190->unk1C)+1; - temp_r28 = frandmod(lbl_1_bss_190->unk1C); - while(1) { - temp_r26 = &lbl_1_bss_190->unk20[temp_r28]; - if((temp_r24 & temp_r26->unk4) && --temp_r25 < 0) { - temp_r31->unk14 = temp_r28; - temp_r31->unk0 = temp_r26->unk18; - break; - } else { - temp_r28 = (temp_r28+1)%lbl_1_bss_190->unk1C; - } - } - temp_r31->unk0.y = 100; - temp_r27 = &lbl_1_data_12B0[object->work[0]*2]; - object->model[0] = Hu3DModelCreateFile(*temp_r27++); - object->model[1] = Hu3DModelCreateFile(*temp_r27++); - for(temp_r29=0; temp_r29<2; temp_r29++) { - Hu3DModelCameraSet(object->model[temp_r29], 15); - Hu3DModelAttrSet(object->model[temp_r29], 1); - Hu3DModelAttrSet(object->model[temp_r29], 0x40000001); - Hu3DModelAttrReset(object->model[temp_r29], 0x40000002); - Hu3DModelLayerSet(object->model[temp_r29], 3); - Hu3DModelPosSet(object->model[temp_r29], temp_r31->unk0.x, temp_r31->unk0.y, temp_r31->unk0.z); - Hu3DModelRotSet(object->model[temp_r29], 0, 0, 0); - Hu3DModelShadowSet(object->model[temp_r29]); - } - omSetTra(object, temp_r31->unk0.x, temp_r31->unk0.y, temp_r31->unk0.z); - omSetRot(object, 0, 0, 0); - Hu3DModelAttrReset(object->model[0], 1); - object->func = fn_1_3284; + Work3284 *temp_r31 = object->data; + s32 temp_r29; + s32 temp_r28; + s32 *temp_r27; + Data1340SubStruct *temp_r26; + s32 temp_r25; + s32 temp_r24; + + temp_r31->unk0.x = 0; + temp_r31->unk0.y = 0; + temp_r31->unk0.z = 0; + temp_r31->unkC = 0; + temp_r31->unk10 = 1; + temp_r31->unk14 = -1; + temp_r31->unk18 = 0; + temp_r24 = 16 << ((object->work[0] + lbl_1_bss_34 + 2) & 0x3); + temp_r25 = frandmod(lbl_1_bss_190->unk1C) + 1; + temp_r28 = frandmod(lbl_1_bss_190->unk1C); + while (1) { + temp_r26 = &lbl_1_bss_190->unk20[temp_r28]; + if ((temp_r24 & temp_r26->unk4) && --temp_r25 < 0) { + temp_r31->unk14 = temp_r28; + temp_r31->unk0 = temp_r26->unk18; + break; + } + else { + temp_r28 = (temp_r28 + 1) % lbl_1_bss_190->unk1C; + } + } + temp_r31->unk0.y = 100; + temp_r27 = &lbl_1_data_12B0[object->work[0] * 2]; + object->model[0] = Hu3DModelCreateFile(*temp_r27++); + object->model[1] = Hu3DModelCreateFile(*temp_r27++); + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + Hu3DModelCameraSet(object->model[temp_r29], 15); + Hu3DModelAttrSet(object->model[temp_r29], 1); + Hu3DModelAttrSet(object->model[temp_r29], 0x40000001); + Hu3DModelAttrReset(object->model[temp_r29], 0x40000002); + Hu3DModelLayerSet(object->model[temp_r29], 3); + Hu3DModelPosSet(object->model[temp_r29], temp_r31->unk0.x, temp_r31->unk0.y, temp_r31->unk0.z); + Hu3DModelRotSet(object->model[temp_r29], 0, 0, 0); + Hu3DModelShadowSet(object->model[temp_r29]); + } + omSetTra(object, temp_r31->unk0.x, temp_r31->unk0.y, temp_r31->unk0.z); + omSetRot(object, 0, 0, 0); + Hu3DModelAttrReset(object->model[0], 1); + object->func = fn_1_3284; } s32 fn_1_36FC(Work8F68 *arg0) { - AddX = 0; - AddZ = 0; - MapWall(arg0->unk54, arg0->unk4.x, arg0->unk4.y+arg0->unk54, arg0->unk4.z); - - arg0->unk4.x += AddX; - arg0->unk4.z += AddZ; - if(0.0f != ABS(AddX)+ABS(AddZ)) { - arg0->unk108 = 1; - return 1; - } else { - return 0; - } + AddX = 0; + AddZ = 0; + MapWall(arg0->unk54, arg0->unk4.x, arg0->unk4.y + arg0->unk54, arg0->unk4.z); + + arg0->unk4.x += AddX; + arg0->unk4.z += AddZ; + if (0.0f != ABS(AddX) + ABS(AddZ)) { + arg0->unk108 = 1; + return 1; + } + else { + return 0; + } } static inline void VECSet(Vec *dst, float x, float y, float z) { - dst->x = x; - dst->y = y; - dst->z = z; + dst->x = x; + dst->y = y; + dst->z = z; } void fn_1_386C(Work8F68 *arg0) { - Vec sp18; - Vec spC; - float temp_f31; - float temp_f30; - float temp_f28; - - Work8F68 *temp_r30; - s32 temp_r29; - s32 temp_r28; - s32 temp_r27; - temp_r28 = 0; - temp_r27 = 0; - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r30 = lbl_1_bss_1A4[temp_r29]->data; - if(arg0->unk114 == temp_r30->unk114) { - continue; - } - temp_f31 = arg0->unk4.x-temp_r30->unk4.x; - temp_f30 = arg0->unk4.z-temp_r30->unk4.z; - temp_f28 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(temp_f28 < arg0->unk54+temp_r30->unk54) { - if(0.0f == temp_f28) { - temp_f31 = 0; - temp_f30 = -1; - } else { - temp_f31 /= temp_f28; - temp_f30 /= temp_f28; - } - temp_r27++; - arg0->unk4.x = temp_r30->unk4.x+(temp_f31*(arg0->unk54+temp_r30->unk54)); - arg0->unk4.z = temp_r30->unk4.z+(temp_f30*(arg0->unk54+temp_r30->unk54)); - fn_1_36FC(arg0); - VECSet(&sp18, arg0->unkF4, 0, arg0->unkF8); - VECSet(&spC, temp_r30->unkF4, 0, temp_r30->unkF8); - if(0.0f != VECMag(&sp18) && 0.0f != VECMag(&spC)) { - VECNormalize(&sp18, &sp18); - VECNormalize(&spC, &spC); - if(-0.8f > VECDotProduct(&sp18, &spC)) { - temp_r28++; - } - } - } - } - if(temp_r28 != 0 || temp_r27 >= 2) { - arg0->unk100++; - arg0->unk10C++; - } else { - arg0->unk10C = 0; - } + Vec sp18; + Vec spC; + float temp_f31; + float temp_f30; + float temp_f28; + + Work8F68 *temp_r30; + s32 temp_r29; + s32 temp_r28; + s32 temp_r27; + temp_r28 = 0; + temp_r27 = 0; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r30 = lbl_1_bss_1A4[temp_r29]->data; + if (arg0->unk114 == temp_r30->unk114) { + continue; + } + temp_f31 = arg0->unk4.x - temp_r30->unk4.x; + temp_f30 = arg0->unk4.z - temp_r30->unk4.z; + temp_f28 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (temp_f28 < arg0->unk54 + temp_r30->unk54) { + if (0.0f == temp_f28) { + temp_f31 = 0; + temp_f30 = -1; + } + else { + temp_f31 /= temp_f28; + temp_f30 /= temp_f28; + } + temp_r27++; + arg0->unk4.x = temp_r30->unk4.x + (temp_f31 * (arg0->unk54 + temp_r30->unk54)); + arg0->unk4.z = temp_r30->unk4.z + (temp_f30 * (arg0->unk54 + temp_r30->unk54)); + fn_1_36FC(arg0); + VECSet(&sp18, arg0->unkF4, 0, arg0->unkF8); + VECSet(&spC, temp_r30->unkF4, 0, temp_r30->unkF8); + if (0.0f != VECMag(&sp18) && 0.0f != VECMag(&spC)) { + VECNormalize(&sp18, &sp18); + VECNormalize(&spC, &spC); + if (-0.8f > VECDotProduct(&sp18, &spC)) { + temp_r28++; + } + } + } + } + if (temp_r28 != 0 || temp_r27 >= 2) { + arg0->unk100++; + arg0->unk10C++; + } + else { + arg0->unk10C = 0; + } } void fn_1_3DCC(Work8F68 *arg0) { - float temp_f31; - float temp_f30; - float temp_f28; - Work3284 *temp_r31; - s32 temp_r30; - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r31 = lbl_1_bss_19C[temp_r30]->data; - temp_f31 = arg0->unk4.x-temp_r31->unk0.x; - temp_f30 = arg0->unk4.z-temp_r31->unk0.z; - temp_f28 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(temp_f28 < arg0->unk54+50) { - if(0.0f == temp_f28) { - temp_f31 = 0; - temp_f30 = -1; - } else { - temp_f31 /= temp_f28; - temp_f30 /= temp_f28; - } - arg0->unk4.x = temp_r31->unk0.x+(temp_f31*(arg0->unk54+50)); - arg0->unk4.z = temp_r31->unk0.z+(temp_f30*(arg0->unk54+50)); - } - } + float temp_f31; + float temp_f30; + float temp_f28; + Work3284 *temp_r31; + s32 temp_r30; + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r31 = lbl_1_bss_19C[temp_r30]->data; + temp_f31 = arg0->unk4.x - temp_r31->unk0.x; + temp_f30 = arg0->unk4.z - temp_r31->unk0.z; + temp_f28 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (temp_f28 < arg0->unk54 + 50) { + if (0.0f == temp_f28) { + temp_f31 = 0; + temp_f30 = -1; + } + else { + temp_f31 /= temp_f28; + temp_f30 /= temp_f28; + } + arg0->unk4.x = temp_r31->unk0.x + (temp_f31 * (arg0->unk54 + 50)); + arg0->unk4.z = temp_r31->unk0.z + (temp_f30 * (arg0->unk54 + 50)); + } + } } #include "src/REL/executor.c" void fn_1_40C0(Work8F68 *arg0, omObjData *arg1, s32 arg2) { - float temp_f31; - - s32 temp_r29; - if(arg2 >= 0 && arg0->unkA8 != arg2) { - arg0->unkA8 = arg2; - Hu3DMotionShiftSet(arg1->model[0], arg1->motion[arg0->unkA8], 0, 8 ,0x40000001); - temp_r29 = -1; - temp_f31 = 1; - if(arg0->unkA4 == 1) { - temp_r29 = 9; - } - if(arg0->unkA4 == 0) { - switch(arg0->unkA8) { - case 0: - temp_r29 = 7; - break; - - case 1: - temp_r29 = 7; - temp_f31 = 30.0f/11.0f; - break; - - case 2: - temp_r29 = 8; - break; - } - } - - if(temp_r29 > 0 && arg0->unkAC != temp_r29) { - arg0->unkAC = temp_r29; - Hu3DMotionOverlaySet(arg1->model[0], arg1->motion[arg0->unkAC]); - Hu3DMotionOverlaySpeedSet(arg1->model[0], temp_f31); - - } - } + float temp_f31; + + s32 temp_r29; + if (arg2 >= 0 && arg0->unkA8 != arg2) { + arg0->unkA8 = arg2; + Hu3DMotionShiftSet(arg1->model[0], arg1->motion[arg0->unkA8], 0, 8, 0x40000001); + temp_r29 = -1; + temp_f31 = 1; + if (arg0->unkA4 == 1) { + temp_r29 = 9; + } + if (arg0->unkA4 == 0) { + switch (arg0->unkA8) { + case 0: + temp_r29 = 7; + break; + + case 1: + temp_r29 = 7; + temp_f31 = 30.0f / 11.0f; + break; + + case 2: + temp_r29 = 8; + break; + } + } + + if (temp_r29 > 0 && arg0->unkAC != temp_r29) { + arg0->unkAC = temp_r29; + Hu3DMotionOverlaySet(arg1->model[0], arg1->motion[arg0->unkAC]); + Hu3DMotionOverlaySpeedSet(arg1->model[0], temp_f31); + } + } } void fn_1_4224(Work8F68 *arg0, omObjData *arg1) { - s32 temp_r25; - arg0->unk10 = arg0->unk4; - arg0->unk1C.x = 0; - arg0->unk1C.y = 0; - arg0->unk1C.z = 0; - arg0->unk1C.x = arg0->unkF4/4.0f; - arg0->unk1C.z = (-(float)arg0->unkF8)/4.0f; - temp_r25 = 0; - if((arg0->unkE8 & 0x1) == 0) { - arg0->unk58 = VECMagXZ(&arg0->unk1C); - if(0.5f <= arg0->unk58) { - if(10.0f <= arg0->unk58) { - arg0->unk1C.x /= arg0->unk58; - arg0->unk1C.z /= arg0->unk58; - arg0->unk58 = 10; - arg0->unk1C.x = 10.0f*arg0->unk1C.x; - arg0->unk1C.z = 10.0f*arg0->unk1C.z; - } - arg0->unk50 = fn_1_1E20(arg0->unk50, atan2d(arg0->unk1C.x, arg0->unk1C.z), 0.4f); - if(8.0f <= arg0->unk58) { - temp_r25 = 2; - } else { - temp_r25 = 1; - } - } - VECAdd(&arg0->unk4, &arg0->unk1C, &arg0->unk4); - } - arg0->unk108 = 0; - fn_1_36FC(arg0); - fn_1_386C(arg0); - fn_1_3DCC(arg0); - fn_1_36FC(arg0); - if(arg0->unk108) { - arg0->unk100++; - arg0->unk104++; - } else { - arg0->unk104 = 0; - } - fn_1_2950(arg0); - fn_1_40C0(arg0, arg1, temp_r25); + s32 temp_r25; + arg0->unk10 = arg0->unk4; + arg0->unk1C.x = 0; + arg0->unk1C.y = 0; + arg0->unk1C.z = 0; + arg0->unk1C.x = arg0->unkF4 / 4.0f; + arg0->unk1C.z = (-(float)arg0->unkF8) / 4.0f; + temp_r25 = 0; + if ((arg0->unkE8 & 0x1) == 0) { + arg0->unk58 = VECMagXZ(&arg0->unk1C); + if (0.5f <= arg0->unk58) { + if (10.0f <= arg0->unk58) { + arg0->unk1C.x /= arg0->unk58; + arg0->unk1C.z /= arg0->unk58; + arg0->unk58 = 10; + arg0->unk1C.x = 10.0f * arg0->unk1C.x; + arg0->unk1C.z = 10.0f * arg0->unk1C.z; + } + arg0->unk50 = fn_1_1E20(arg0->unk50, atan2d(arg0->unk1C.x, arg0->unk1C.z), 0.4f); + if (8.0f <= arg0->unk58) { + temp_r25 = 2; + } + else { + temp_r25 = 1; + } + } + VECAdd(&arg0->unk4, &arg0->unk1C, &arg0->unk4); + } + arg0->unk108 = 0; + fn_1_36FC(arg0); + fn_1_386C(arg0); + fn_1_3DCC(arg0); + fn_1_36FC(arg0); + if (arg0->unk108) { + arg0->unk100++; + arg0->unk104++; + } + else { + arg0->unk104 = 0; + } + fn_1_2950(arg0); + fn_1_40C0(arg0, arg1, temp_r25); } Work8F68 *fn_1_4DF0(s32 arg0) { - s32 temp_r31; - Work8F68 *temp_r30; - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r30 = lbl_1_bss_1A4[temp_r31]->data; - if(arg0 == temp_r30->unk110) { - return temp_r30; - } - } - return NULL; + s32 temp_r31; + Work8F68 *temp_r30; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r30 = lbl_1_bss_1A4[temp_r31]->data; + if (arg0 == temp_r30->unk110) { + return temp_r30; + } + } + return NULL; } void fn_1_4E50(Work8F68 *arg0) { - float temp_f31; - float temp_f30; - float temp_f27; - Work8F68 *temp_r31; - - if((arg0->unkE8 & 0x4) && lbl_1_bss_28 < 0) { - temp_r31 = fn_1_4DF0(arg0->unk110 ^ 1); - if(temp_r31->unkE8 & 0x4) { - temp_f31 = arg0->unk4.x-temp_r31->unk4.x; - temp_f30 = arg0->unk4.z-temp_r31->unk4.z; - temp_f27 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if((1.5f*(arg0->unk54+temp_r31->unk54)) >= temp_f27) { - lbl_1_bss_28 = arg0->unk110 & 0x2; - } - } - } + float temp_f31; + float temp_f30; + float temp_f27; + Work8F68 *temp_r31; + + if ((arg0->unkE8 & 0x4) && lbl_1_bss_28 < 0) { + temp_r31 = fn_1_4DF0(arg0->unk110 ^ 1); + if (temp_r31->unkE8 & 0x4) { + temp_f31 = arg0->unk4.x - temp_r31->unk4.x; + temp_f30 = arg0->unk4.z - temp_r31->unk4.z; + temp_f27 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if ((1.5f * (arg0->unk54 + temp_r31->unk54)) >= temp_f27) { + lbl_1_bss_28 = arg0->unk110 & 0x2; + } + } + } } void fn_1_50AC(Work8F68 *arg0, omObjData *arg1) { - float temp_f31; - float temp_f30; - float temp_f27; - Work3284 *temp_r30; - s32 temp_r28; - omObjData *temp_r27; - if(arg0->unkE8 & 0x2) { - return; - } - for(temp_r28=0; temp_r28<4; temp_r28++) { - if((arg0->unk110 & 0x2) != (lbl_1_bss_19C[temp_r28]->work[0] & 0x2)) { - continue; - } - temp_r30 = lbl_1_bss_19C[temp_r28]->data; - if(temp_r30->unk18 & 0x1) { - continue; - } - temp_f31 = temp_r30->unk0.x-arg0->unk4.x; - temp_f30 = temp_r30->unk0.z-arg0->unk4.z; - temp_f27 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(50+arg0->unk54 >= temp_f27) { - omVibrate(arg0->unk114, 12, 6, 6); - arg0->unk9C = 2002; - arg0->unk5C = 0; - arg0->unkE8 |= 0x2; - arg0->unkE8 &= ~0x10; - arg0->unk28 = temp_r30->unk0; - arg0->unkA4 = lbl_1_bss_2C[arg0->unk110 >> 1]++; - arg0->unkA0 = (arg0->unk110 & 0x2)+arg0->unkA4; - Hu3DModelAttrReset(arg1->model[0], 0x40000001); - if(!arg0->unkA4) { - arg0->unkA8 = 5; - Hu3DMotionShiftSet(arg1->model[0], arg1->motion[5], 0, 10, 0); - HuAudFXPlay(1642); - } else { - arg0->unkA8 = 6; - Hu3DMotionShiftSet(arg1->model[0], arg1->motion[6], 0, 10, 0); - HuAudFXPlay(1643); - } - temp_r27 = lbl_1_bss_1A0[arg0->unkA0]; - omSetTra(temp_r27, arg0->unk28.x, arg0->unk28.y, arg0->unk28.z); - Hu3DModelAttrReset(temp_r27->model[0], 1); - - temp_r30->unk18 |= 0x1; - Hu3DModelAttrSet(lbl_1_bss_19C[temp_r28]->model[0], 1); - Hu3DModelAttrReset(lbl_1_bss_19C[temp_r28]->model[1], 1); - break; - } - } + float temp_f31; + float temp_f30; + float temp_f27; + Work3284 *temp_r30; + s32 temp_r28; + omObjData *temp_r27; + if (arg0->unkE8 & 0x2) { + return; + } + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + if ((arg0->unk110 & 0x2) != (lbl_1_bss_19C[temp_r28]->work[0] & 0x2)) { + continue; + } + temp_r30 = lbl_1_bss_19C[temp_r28]->data; + if (temp_r30->unk18 & 0x1) { + continue; + } + temp_f31 = temp_r30->unk0.x - arg0->unk4.x; + temp_f30 = temp_r30->unk0.z - arg0->unk4.z; + temp_f27 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (50 + arg0->unk54 >= temp_f27) { + omVibrate(arg0->unk114, 12, 6, 6); + arg0->unk9C = 2002; + arg0->unk5C = 0; + arg0->unkE8 |= 0x2; + arg0->unkE8 &= ~0x10; + arg0->unk28 = temp_r30->unk0; + arg0->unkA4 = lbl_1_bss_2C[arg0->unk110 >> 1]++; + arg0->unkA0 = (arg0->unk110 & 0x2) + arg0->unkA4; + Hu3DModelAttrReset(arg1->model[0], 0x40000001); + if (!arg0->unkA4) { + arg0->unkA8 = 5; + Hu3DMotionShiftSet(arg1->model[0], arg1->motion[5], 0, 10, 0); + HuAudFXPlay(1642); + } + else { + arg0->unkA8 = 6; + Hu3DMotionShiftSet(arg1->model[0], arg1->motion[6], 0, 10, 0); + HuAudFXPlay(1643); + } + temp_r27 = lbl_1_bss_1A0[arg0->unkA0]; + omSetTra(temp_r27, arg0->unk28.x, arg0->unk28.y, arg0->unk28.z); + Hu3DModelAttrReset(temp_r27->model[0], 1); + + temp_r30->unk18 |= 0x1; + Hu3DModelAttrSet(lbl_1_bss_19C[temp_r28]->model[0], 1); + Hu3DModelAttrReset(lbl_1_bss_19C[temp_r28]->model[1], 1); + break; + } + } } void fn_1_54BC(Work8F68 *arg0, omObjData *arg1) { - float temp_f31; - float temp_f30; - float temp_f29; - Vec sp14; - Vec sp8; - omObjData *temp_r29; - - arg0->unk5C++; - temp_f31 = arg0->unk5C/50; - if(1.0f <= temp_f31) { - temp_f31 = 1.0f; - } - fn_1_1D18(arg1->model[0], CharModelHookNameGet(arg0->unk118, 8, 0), &sp14); - fn_1_11F4(temp_f31, &arg0->unk28, &sp14, &sp8); - sp8.y += sind(180.0f*temp_f31)*100; - temp_r29 = lbl_1_bss_1A0[arg0->unkA0]; - omSetTra(temp_r29, sp8.x, sp8.y, sp8.z); - (void)temp_f31; - if(80.0f <= arg0->unk5C++) { - arg0->unk9C = 2001; - arg0->unkE8 |= 0x4; - arg0->unkA8 = 0; - omSetTra(temp_r29, 0, 0, 0); - Hu3DModelHookSet(arg1->model[0], CharModelHookNameGet(arg0->unk118, 8, 0), temp_r29->model[0]); - if(arg0->unkA4 == 0) { - arg0->unkAC = 7; - } else { - arg0->unkAC = 9; - } - Hu3DModelAttrSet(arg1->model[0], 0x40000201); - Hu3DMotionSet(arg1->model[0], arg1->motion[0]); - Hu3DMotionOverlaySet(arg1->model[0], arg1->motion[arg0->unkAC]); - } + float temp_f31; + float temp_f30; + float temp_f29; + Vec sp14; + Vec sp8; + omObjData *temp_r29; + + arg0->unk5C++; + temp_f31 = arg0->unk5C / 50; + if (1.0f <= temp_f31) { + temp_f31 = 1.0f; + } + fn_1_1D18(arg1->model[0], CharModelHookNameGet(arg0->unk118, 8, 0), &sp14); + fn_1_11F4(temp_f31, &arg0->unk28, &sp14, &sp8); + sp8.y += sind(180.0f * temp_f31) * 100; + temp_r29 = lbl_1_bss_1A0[arg0->unkA0]; + omSetTra(temp_r29, sp8.x, sp8.y, sp8.z); + (void)temp_f31; + if (80.0f <= arg0->unk5C++) { + arg0->unk9C = 2001; + arg0->unkE8 |= 0x4; + arg0->unkA8 = 0; + omSetTra(temp_r29, 0, 0, 0); + Hu3DModelHookSet(arg1->model[0], CharModelHookNameGet(arg0->unk118, 8, 0), temp_r29->model[0]); + if (arg0->unkA4 == 0) { + arg0->unkAC = 7; + } + else { + arg0->unkAC = 9; + } + Hu3DModelAttrSet(arg1->model[0], 0x40000201); + Hu3DMotionSet(arg1->model[0], arg1->motion[0]); + Hu3DMotionOverlaySet(arg1->model[0], arg1->motion[arg0->unkAC]); + } } s32 fn_1_583C(Work8F68 *arg0, s32 arg1) { - s32 temp_r31; - s32 temp_r29; - s32 temp_r27; - s32 temp_r26; - if(arg0->unkE8 & 0x10) { - return arg1; - } - temp_r29 = 0; - temp_r31 = arg1; - if(arg0->unk8C >= 0) { - arg0->unk88 = -1; - temp_r31 = frandmod(lbl_1_bss_190->unk1C); - do { - temp_r29++; - if(lbl_1_bss_190->unk1C <= temp_r29) { - temp_r31 = frandmod(lbl_1_bss_190->unk1C); - } else { - temp_r27 = temp_r31/32; - temp_r26 = temp_r31%32; - if((1 << temp_r26) & arg0->unk94[temp_r27]) { - temp_r31 = (temp_r31+1)%lbl_1_bss_190->unk1C; - } - } - } while(temp_r31 == arg1); - } - - return temp_r31; + s32 temp_r31; + s32 temp_r29; + s32 temp_r27; + s32 temp_r26; + if (arg0->unkE8 & 0x10) { + return arg1; + } + temp_r29 = 0; + temp_r31 = arg1; + if (arg0->unk8C >= 0) { + arg0->unk88 = -1; + temp_r31 = frandmod(lbl_1_bss_190->unk1C); + do { + temp_r29++; + if (lbl_1_bss_190->unk1C <= temp_r29) { + temp_r31 = frandmod(lbl_1_bss_190->unk1C); + } + else { + temp_r27 = temp_r31 / 32; + temp_r26 = temp_r31 % 32; + if ((1 << temp_r26) & arg0->unk94[temp_r27]) { + temp_r31 = (temp_r31 + 1) % lbl_1_bss_190->unk1C; + } + } + } while (temp_r31 == arg1); + } + + return temp_r31; } void fn_1_595C(Work8F68 *arg0, Work8F68 *arg1) { - s32 temp_r29; - s32 temp_r28; - s32 temp_r27; - Work3284 *temp_r26; - s32 temp_r24; - Data1340SubStruct *temp_r23; - - if(!(arg0->unkE8 & 0x10)) { - fn_1_2950(arg0); - if(arg0->unkEC >= 0) { - temp_r27 = 0; - temp_r23 = &lbl_1_bss_190->unk20[arg0->unkEC]; - for(temp_r28=0; temp_r28<4; temp_r28++) { - temp_r24 = temp_r23->unk8[temp_r28]; - if(temp_r24 < 0) { - break; - } - if(arg0->unkE8 & 0x2) { - if(temp_r24 == arg1->unkEC) { - temp_r27 = 1; - } - } else { - for(temp_r29=0; temp_r29<4; temp_r29++) { - if((arg0->unk110 & 0x2) == (lbl_1_bss_19C[temp_r29]->work[0] & 0x2)) { - temp_r26 = lbl_1_bss_19C[temp_r29]->data; - if(!(temp_r26->unk18 & 0x1)) { - if(temp_r24 == temp_r26->unk14) { - temp_r27 = 1; - } - } - } - } - } - if(temp_r27 != 0) { - break; - } - } - if(temp_r27 != 0) { - arg0->unkF0 = -1; - arg0->unkE8 |= 0x10; - } - } - } + s32 temp_r29; + s32 temp_r28; + s32 temp_r27; + Work3284 *temp_r26; + s32 temp_r24; + Data1340SubStruct *temp_r23; + + if (!(arg0->unkE8 & 0x10)) { + fn_1_2950(arg0); + if (arg0->unkEC >= 0) { + temp_r27 = 0; + temp_r23 = &lbl_1_bss_190->unk20[arg0->unkEC]; + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + temp_r24 = temp_r23->unk8[temp_r28]; + if (temp_r24 < 0) { + break; + } + if (arg0->unkE8 & 0x2) { + if (temp_r24 == arg1->unkEC) { + temp_r27 = 1; + } + } + else { + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + if ((arg0->unk110 & 0x2) == (lbl_1_bss_19C[temp_r29]->work[0] & 0x2)) { + temp_r26 = lbl_1_bss_19C[temp_r29]->data; + if (!(temp_r26->unk18 & 0x1)) { + if (temp_r24 == temp_r26->unk14) { + temp_r27 = 1; + } + } + } + } + } + if (temp_r27 != 0) { + break; + } + } + if (temp_r27 != 0) { + arg0->unkF0 = -1; + arg0->unkE8 |= 0x10; + } + } + } } s32 fn_1_5CDC(Work8F68 *arg0) { - s32 temp_r30; - s32 temp_r29; - s32 temp_r28; - Work3284 *temp_r27; - s32 temp_r24; - temp_r28 = -1; - temp_r24 = 65535; - arg0->unk88 = -1; - for(temp_r29=0; temp_r29<4; temp_r29++) { - if((arg0->unk110 & 0x2) == (lbl_1_bss_19C[temp_r29]->work[0] & 0x2)) { - temp_r27 = lbl_1_bss_19C[temp_r29]->data; - if(temp_r27->unk18 & 0x1) { - continue; - } - arg0->unkF0 = temp_r27->unk14; - fn_1_2E14(arg0); - if(temp_r24 > arg0->unk78) { - temp_r28 = temp_r27->unk14; - temp_r24 = arg0->unk78; - arg0->unk88 = temp_r29; - } - } - } - temp_r28 = fn_1_583C(arg0, temp_r28); - return temp_r28; + s32 temp_r30; + s32 temp_r29; + s32 temp_r28; + Work3284 *temp_r27; + s32 temp_r24; + temp_r28 = -1; + temp_r24 = 65535; + arg0->unk88 = -1; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + if ((arg0->unk110 & 0x2) == (lbl_1_bss_19C[temp_r29]->work[0] & 0x2)) { + temp_r27 = lbl_1_bss_19C[temp_r29]->data; + if (temp_r27->unk18 & 0x1) { + continue; + } + arg0->unkF0 = temp_r27->unk14; + fn_1_2E14(arg0); + if (temp_r24 > arg0->unk78) { + temp_r28 = temp_r27->unk14; + temp_r24 = arg0->unk78; + arg0->unk88 = temp_r29; + } + } + } + temp_r28 = fn_1_583C(arg0, temp_r28); + return temp_r28; } void fn_1_5F44(Work8F68 *arg0) { - float temp_f31; - float temp_f30; - float temp_f24; - float temp_f23; - - Vec spC4; - Work3284 *sp78; - - Work8F68 *temp_r28; - s32 temp_r18; - if(NULL == arg0->unk0) { - return; - } - temp_r28 = fn_1_4DF0(arg0->unk110^1); - arg0->unk90--; - if(0.0f < arg0->unk90) { - return; - } - if(arg0->unk100 > 30 || arg0->unk10C > 30) { - arg0->unk90 = 30; - if(arg0->unkE8 & 0x2) { - arg0->unk90 *= 2.5f; - } - } - arg0->unk84 -= 1.0f; - if(0.0f > arg0->unk84) { - arg0->unk80 -= 1.0f; - if(0.0f > arg0->unk80) { - arg0->unk80 = ((arg0->unk0->unk4/2)*frandf())+arg0->unk0->unk4; - arg0->unk84 = ((arg0->unk0->unk8/2)*frandf())+arg0->unk0->unk8; - } - } - if(arg0->unkF0 >= 0) { - if(arg0->unkE8 & 0x2) { - if(arg0->unk8C >= 0) { - if(arg0->unkE8 & 0x8) { - arg0->unkF0 = -1; - } - } else { - if(arg0->unkF0 != temp_r28->unkEC) { - arg0->unkF0 = -1; - } - } - } else { - if(arg0->unk88 >= 0) { - sp78 = lbl_1_bss_19C[arg0->unk88]->data; - if(sp78->unk18 & 0x1) { - arg0->unkF0 = -1; - } - } else { - if(arg0->unkE8 & 0x8) { - arg0->unkF0 = -1; - } - } - } - if(arg0->unk100 > 30) { - arg0->unkF0 = -1; - } - if(arg0->unk104 > 30) { - arg0->unkF0 = -1; - } - if(arg0->unk10C > 30) { - arg0->unkF0 = -1; - } - } - temp_r18 = -1; - if(arg0->unkF0 < 0) { - if(arg0->unkE8 & 0x2) { - arg0->unkF0 = fn_1_583C(arg0, temp_r28->unkEC); - } else { - arg0->unkF0 = fn_1_5CDC(arg0); - } - temp_r18 = arg0->unkF0; - arg0->unkE8 &= ~0x8; - fn_1_2E14(arg0); - fn_1_2EEC(arg0); - } - - if((arg0->unkE8 & 0x8) && (arg0->unkE8 & 0x2)) { - spC4 = temp_r28->unk4; - } else { - if(NULL == arg0->unk74) { - if(temp_r18 < 0) { - arg0->unkE8 &= ~0x8; - arg0->unkF0 = frandmod(lbl_1_bss_190->unk1C); - fn_1_2E14(arg0); - fn_1_2EEC(arg0); - return; - } else { - spC4 = lbl_1_bss_190->unk20[temp_r18].unk18; - } - } else { - spC4 = lbl_1_bss_190->unk20[arg0->unk74[arg0->unk7C]].unk18; - } - } - temp_f31 = spC4.x-arg0->unk4.x; - temp_f30 = spC4.z-arg0->unk4.z; - temp_f24 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(10.0f <= temp_f24) { - temp_f31 /= temp_f24; - temp_f30 /= temp_f24; - } else { - temp_f31 = 0; - temp_f30 = 0; - } - if(150.0f > temp_f24) { - fn_1_595C(arg0, temp_r28); - arg0->unk7C++; - if(arg0->unk78 <= arg0->unk7C) { - arg0->unk7C = arg0->unk78-1; - arg0->unkE8 |= 8; - } - } - temp_f23 = arg0->unk0->unk0; - arg0->unkF4 = (72.0f*temp_f31)*temp_f23; - arg0->unkF8 = (72.0f*-temp_f30)*temp_f23; - if(ABS(arg0->unkF4) > 72) { - arg0->unkF4 = ((arg0->unkF4 < 0) ? -1 : 1)*72; - } - if(ABS(arg0->unkF8) > 72) { - arg0->unkF8 = ((arg0->unkF8 < 0) ? -1 : 1)*72; - } + float temp_f31; + float temp_f30; + float temp_f24; + float temp_f23; + + Vec spC4; + Work3284 *sp78; + + Work8F68 *temp_r28; + s32 temp_r18; + if (NULL == arg0->unk0) { + return; + } + temp_r28 = fn_1_4DF0(arg0->unk110 ^ 1); + arg0->unk90--; + if (0.0f < arg0->unk90) { + return; + } + if (arg0->unk100 > 30 || arg0->unk10C > 30) { + arg0->unk90 = 30; + if (arg0->unkE8 & 0x2) { + arg0->unk90 *= 2.5f; + } + } + arg0->unk84 -= 1.0f; + if (0.0f > arg0->unk84) { + arg0->unk80 -= 1.0f; + if (0.0f > arg0->unk80) { + arg0->unk80 = ((arg0->unk0->unk4 / 2) * frandf()) + arg0->unk0->unk4; + arg0->unk84 = ((arg0->unk0->unk8 / 2) * frandf()) + arg0->unk0->unk8; + } + } + if (arg0->unkF0 >= 0) { + if (arg0->unkE8 & 0x2) { + if (arg0->unk8C >= 0) { + if (arg0->unkE8 & 0x8) { + arg0->unkF0 = -1; + } + } + else { + if (arg0->unkF0 != temp_r28->unkEC) { + arg0->unkF0 = -1; + } + } + } + else { + if (arg0->unk88 >= 0) { + sp78 = lbl_1_bss_19C[arg0->unk88]->data; + if (sp78->unk18 & 0x1) { + arg0->unkF0 = -1; + } + } + else { + if (arg0->unkE8 & 0x8) { + arg0->unkF0 = -1; + } + } + } + if (arg0->unk100 > 30) { + arg0->unkF0 = -1; + } + if (arg0->unk104 > 30) { + arg0->unkF0 = -1; + } + if (arg0->unk10C > 30) { + arg0->unkF0 = -1; + } + } + temp_r18 = -1; + if (arg0->unkF0 < 0) { + if (arg0->unkE8 & 0x2) { + arg0->unkF0 = fn_1_583C(arg0, temp_r28->unkEC); + } + else { + arg0->unkF0 = fn_1_5CDC(arg0); + } + temp_r18 = arg0->unkF0; + arg0->unkE8 &= ~0x8; + fn_1_2E14(arg0); + fn_1_2EEC(arg0); + } + + if ((arg0->unkE8 & 0x8) && (arg0->unkE8 & 0x2)) { + spC4 = temp_r28->unk4; + } + else { + if (NULL == arg0->unk74) { + if (temp_r18 < 0) { + arg0->unkE8 &= ~0x8; + arg0->unkF0 = frandmod(lbl_1_bss_190->unk1C); + fn_1_2E14(arg0); + fn_1_2EEC(arg0); + return; + } + else { + spC4 = lbl_1_bss_190->unk20[temp_r18].unk18; + } + } + else { + spC4 = lbl_1_bss_190->unk20[arg0->unk74[arg0->unk7C]].unk18; + } + } + temp_f31 = spC4.x - arg0->unk4.x; + temp_f30 = spC4.z - arg0->unk4.z; + temp_f24 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (10.0f <= temp_f24) { + temp_f31 /= temp_f24; + temp_f30 /= temp_f24; + } + else { + temp_f31 = 0; + temp_f30 = 0; + } + if (150.0f > temp_f24) { + fn_1_595C(arg0, temp_r28); + arg0->unk7C++; + if (arg0->unk78 <= arg0->unk7C) { + arg0->unk7C = arg0->unk78 - 1; + arg0->unkE8 |= 8; + } + } + temp_f23 = arg0->unk0->unk0; + arg0->unkF4 = (72.0f * temp_f31) * temp_f23; + arg0->unkF8 = (72.0f * -temp_f30) * temp_f23; + if (ABS(arg0->unkF4) > 72) { + arg0->unkF4 = ((arg0->unkF4 < 0) ? -1 : 1) * 72; + } + if (ABS(arg0->unkF8) > 72) { + arg0->unkF8 = ((arg0->unkF8 < 0) ? -1 : 1) * 72; + } } void fn_1_7098(s32 arg0, float *arg1) { - Bss130Struct *temp_r30; - Hu3DCameraViewportSet(lbl_1_data_FEC[arg0], arg1[0], arg1[1], arg1[2], arg1[3], 0, 1); - Hu3DCameraScissorSet(lbl_1_data_FEC[arg0], arg1[0], arg1[1], arg1[2], arg1[3]); - temp_r30 = &lbl_1_bss_130[arg0]; - temp_r30->unk8 = 0.9f*(arg1[0]+(arg1[2]/2)); - temp_r30->unkC = arg1[1]+(arg1[3]/2); - temp_r30->unk10 = arg1[2]/316; - temp_r30->unk14 = arg1[3]/236; - + Bss130Struct *temp_r30; + Hu3DCameraViewportSet(lbl_1_data_FEC[arg0], arg1[0], arg1[1], arg1[2], arg1[3], 0, 1); + Hu3DCameraScissorSet(lbl_1_data_FEC[arg0], arg1[0], arg1[1], arg1[2], arg1[3]); + temp_r30 = &lbl_1_bss_130[arg0]; + temp_r30->unk8 = 0.9f * (arg1[0] + (arg1[2] / 2)); + temp_r30->unkC = arg1[1] + (arg1[3] / 2); + temp_r30->unk10 = arg1[2] / 316; + temp_r30->unk14 = arg1[3] / 236; } void fn_1_7D38(omObjData *object); void fn_1_71F0(omObjData *object) { - Work8F68 *temp_r31; - s32 temp_r29; - temp_r31 = object->data; - - if(lbl_1_bss_1AC->work[0] == 1007) { - temp_r31->unkE8 &= ~0x1; - espDispOff(temp_r31->unkB4); - for(temp_r29=0; temp_r29<4; temp_r29++) { - espDispOff(temp_r31->unkB8[temp_r29]); - espDispOff(temp_r31->unkC8[temp_r29][0]); - espDispOff(temp_r31->unkC8[temp_r29][1]); - } - if(temp_r31->unk9C == 2001) { - temp_r31->unk9C = 2003; - fn_1_40C0(temp_r31, object, 0); - if(lbl_1_bss_28 == (temp_r31->unk110 & 0x2)) { - GWPlayerCoinWinSet(temp_r31->unk114, 10); - } - object->func = fn_1_7D38; - return; - } - - } - if(GWPlayerCfg[temp_r31->unk114].iscom) { - temp_r31->unkF4 = 0; - temp_r31->unkF8 = 0; - temp_r31->unkFC = 0; - fn_1_5F44(temp_r31); - } else { - temp_r31->unkF4 = HuPadStkX[temp_r31->unk11C]; - temp_r31->unkF8 = HuPadStkY[temp_r31->unk11C]; - temp_r31->unkFC = HuPadBtnDown[temp_r31->unk11C]; - } - if(lbl_1_bss_1AC->work[0] < 1007 && (temp_r31->unkFC & (PAD_BUTTON_X|PAD_BUTTON_Y))) { - if(temp_r31->unkE8 & 0x1) { - temp_r31->unkE8 &= ~0x1; - espDispOff(temp_r31->unkB4); - for(temp_r29=0; temp_r29<4; temp_r29++) { - espDispOff(temp_r31->unkB8[temp_r29]); - espDispOff(temp_r31->unkC8[temp_r29][0]); - espDispOff(temp_r31->unkC8[temp_r29][1]); - } - } else { - temp_r31->unkE8 |= 0x1; - espDispOn(temp_r31->unkB4); - for(temp_r29=0; temp_r29<4; temp_r29++) { - espDispOn(temp_r31->unkB8[temp_r29]); - } - } - } - switch(temp_r31->unk9C) { - case 2001: - fn_1_4224(temp_r31, object); - fn_1_50AC(temp_r31, object); - fn_1_4E50(temp_r31); - break; - - case 2002: - fn_1_54BC(temp_r31, object); - break; - - default: - OSReport("*** player mode error(%d)!!\n", temp_r31->unk9C); - break; - } - if(temp_r31->unk104 == 0 && temp_r31->unk10C == 0) { - temp_r31->unk100 = 0; - } - lbl_1_bss_C8[temp_r31->unk110].x = temp_r31->unk4.x+(lbl_1_bss_120*sind(lbl_1_bss_11C)); - lbl_1_bss_C8[temp_r31->unk110].y = temp_r31->unk4.y+lbl_1_bss_118; - lbl_1_bss_C8[temp_r31->unk110].z = temp_r31->unk4.z+(lbl_1_bss_120*cosd(lbl_1_bss_11C)); - lbl_1_bss_68[temp_r31->unk110].x = temp_r31->unk4.x; - lbl_1_bss_68[temp_r31->unk110].y = temp_r31->unk4.y; - lbl_1_bss_68[temp_r31->unk110].z = temp_r31->unk4.z; - Hu3DCameraPosSetV(lbl_1_data_FEC[temp_r31->unk110], &lbl_1_bss_C8[temp_r31->unk110], &lbl_1_data_FE0, &lbl_1_bss_68[temp_r31->unk110]); - temp_r31->unk60 = temp_r31->unk50; - omSetTra(object, temp_r31->unk4.x, temp_r31->unk4.y, temp_r31->unk4.z); - omSetRot(object, 0, temp_r31->unk50, 0); - + Work8F68 *temp_r31; + s32 temp_r29; + temp_r31 = object->data; + + if (lbl_1_bss_1AC->work[0] == 1007) { + temp_r31->unkE8 &= ~0x1; + espDispOff(temp_r31->unkB4); + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + espDispOff(temp_r31->unkB8[temp_r29]); + espDispOff(temp_r31->unkC8[temp_r29][0]); + espDispOff(temp_r31->unkC8[temp_r29][1]); + } + if (temp_r31->unk9C == 2001) { + temp_r31->unk9C = 2003; + fn_1_40C0(temp_r31, object, 0); + if (lbl_1_bss_28 == (temp_r31->unk110 & 0x2)) { + GWPlayerCoinWinSet(temp_r31->unk114, 10); + } + object->func = fn_1_7D38; + return; + } + } + if (GWPlayerCfg[temp_r31->unk114].iscom) { + temp_r31->unkF4 = 0; + temp_r31->unkF8 = 0; + temp_r31->unkFC = 0; + fn_1_5F44(temp_r31); + } + else { + temp_r31->unkF4 = HuPadStkX[temp_r31->unk11C]; + temp_r31->unkF8 = HuPadStkY[temp_r31->unk11C]; + temp_r31->unkFC = HuPadBtnDown[temp_r31->unk11C]; + } + if (lbl_1_bss_1AC->work[0] < 1007 && (temp_r31->unkFC & (PAD_BUTTON_X | PAD_BUTTON_Y))) { + if (temp_r31->unkE8 & 0x1) { + temp_r31->unkE8 &= ~0x1; + espDispOff(temp_r31->unkB4); + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + espDispOff(temp_r31->unkB8[temp_r29]); + espDispOff(temp_r31->unkC8[temp_r29][0]); + espDispOff(temp_r31->unkC8[temp_r29][1]); + } + } + else { + temp_r31->unkE8 |= 0x1; + espDispOn(temp_r31->unkB4); + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + espDispOn(temp_r31->unkB8[temp_r29]); + } + } + } + switch (temp_r31->unk9C) { + case 2001: + fn_1_4224(temp_r31, object); + fn_1_50AC(temp_r31, object); + fn_1_4E50(temp_r31); + break; + + case 2002: + fn_1_54BC(temp_r31, object); + break; + + default: + OSReport("*** player mode error(%d)!!\n", temp_r31->unk9C); + break; + } + if (temp_r31->unk104 == 0 && temp_r31->unk10C == 0) { + temp_r31->unk100 = 0; + } + lbl_1_bss_C8[temp_r31->unk110].x = temp_r31->unk4.x + (lbl_1_bss_120 * sind(lbl_1_bss_11C)); + lbl_1_bss_C8[temp_r31->unk110].y = temp_r31->unk4.y + lbl_1_bss_118; + lbl_1_bss_C8[temp_r31->unk110].z = temp_r31->unk4.z + (lbl_1_bss_120 * cosd(lbl_1_bss_11C)); + lbl_1_bss_68[temp_r31->unk110].x = temp_r31->unk4.x; + lbl_1_bss_68[temp_r31->unk110].y = temp_r31->unk4.y; + lbl_1_bss_68[temp_r31->unk110].z = temp_r31->unk4.z; + Hu3DCameraPosSetV(lbl_1_data_FEC[temp_r31->unk110], &lbl_1_bss_C8[temp_r31->unk110], &lbl_1_data_FE0, &lbl_1_bss_68[temp_r31->unk110]); + temp_r31->unk60 = temp_r31->unk50; + omSetTra(object, temp_r31->unk4.x, temp_r31->unk4.y, temp_r31->unk4.z); + omSetRot(object, 0, temp_r31->unk50, 0); } void fn_1_7D38(omObjData *object) { - float temp_f27; - - Mtx sp74; - Vec sp8; + float temp_f27; - Work8F68 *temp_r31 = object->data; + Mtx sp74; + Vec sp8; - switch(temp_r31->unk9C) { - case 2000: - if(lbl_1_bss_1AC->work[0] >= 1006) { - temp_r31->unk9C++; - object->func = fn_1_71F0; - } - break; - - case 2003: - if(lbl_1_bss_1AC->work[0] == 1010) { - Hu3DMotionOverlayReset(object->model[0]); - if(lbl_1_bss_28 >= 0 && (temp_r31->unk110 == lbl_1_bss_28 || temp_r31->unk110 == (lbl_1_bss_28^1))) { - temp_r31->unk9C = 2004; - temp_r31->unk5C = 0; - temp_r31->unkE8 |= 0x20; - fn_1_1D18(object->model[0], CharModelHookNameGet(temp_r31->unk118, 8, 0), &temp_r31->unk28); - Hu3DModelObjMtxGet(object->model[0], CharModelHookNameGet(temp_r31->unk118, 8, 0), sp74); - Hu3DMtxRotGet(sp74, &temp_r31->unk40); - Hu3DModelHookObjReset(object->model[0], CharModelHookNameGet(temp_r31->unk118, 8, 0)); - omSetTra(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk28.x, temp_r31->unk28.y , temp_r31->unk28.z); - if(temp_r31->unkA4 == 0) { - temp_r31->unk4C = lbl_1_bss_110; - Hu3DMotionSet(object->model[0], object->motion[5]); - } else { - temp_r31->unk4C = lbl_1_bss_110+180; - temp_r31->unk40.y = lbl_1_bss_110+180; - Hu3DMotionSet(object->model[0], object->motion[6]); - } - Hu3DMotionTimeSet(object->model[0], Hu3DMotionMaxTimeGet(object->model[0])-1); - Hu3DModelAttrReset(object->model[0], 0x40000003); - Hu3DModelAttrSet(object->model[0], 0x40000004); - temp_r31->unk40.x = 0; - temp_r31->unk40.z = 0; - omSetRot(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); - temp_r31->unk4C = fmod(temp_r31->unk4C-temp_r31->unk40.y, 360); - if(0.0f > temp_r31->unk4C) { - temp_r31->unk4C += 360.0f; - } - if(180.0f < temp_r31->unk4C) { - temp_r31->unk4C -= 360.0f; - } - temp_r31->unk4C /= 60.0f; - } else { - temp_r31->unk9C = 2008; - Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, 0); - } - } - if(lbl_1_bss_1AC->work[0] == 1012) { - temp_r31->unk9C = 2008; - Hu3DMotionOverlayReset(object->model[0]); - Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, 0); - } - if(temp_r31->unk9C == 2008 && temp_r31->unkA0 >= 0) { - Hu3DModelAttrSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], 1); - fn_1_1D18(object->model[0], CharModelHookNameGet(temp_r31->unk118, 8, 0), &sp8); - temp_r31->unk70 = Hu3DParManLink(lbl_1_bss_8, &lbl_1_data_13E8); - temp_r31->unk6C = 0; - Hu3DParManPosSet(temp_r31->unk70, sp8.x, sp8.y, sp8.z); - Hu3DParManAttrReset(temp_r31->unk70, 1); - Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(temp_r31->unk70), 1); - Hu3DModelLayerSet(Hu3DParManModelIDGet(temp_r31->unk70), 6); - } - break; - - case 2004: - temp_r31->unk5C++; - fn_1_11F4(temp_r31->unk5C/60, &temp_r31->unk28, &lbl_1_bss_F8[temp_r31->unkA4], &temp_r31->unk34); - temp_r31->unk34.y += sind(temp_r31->unk5C*3.0f)*100; - omSetTra(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk34.x, temp_r31->unk34.y, temp_r31->unk34.z); - temp_r31->unk40.y += temp_r31->unk4C; - omSetRot(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); - if(60.0f <= temp_r31->unk5C) { - temp_r31->unk9C++; - temp_r31->unk5C = 0; - temp_r31->unk28 = temp_r31->unk34; - if(temp_r31->unkA4 == 1) { - lbl_1_bss_F8[1].x -= 10*sind(lbl_1_bss_110); - lbl_1_bss_F8[1].z -= 10*cosd(lbl_1_bss_110); - } else { - sp8.x = (30*sind(lbl_1_bss_110))+temp_r31->unk34.x; - sp8.y = 30+temp_r31->unk34.y; - sp8.z = (30*cosd(lbl_1_bss_110))+temp_r31->unk34.z; - Hu3DModelTPLvlSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0); - Hu3DModelPosSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], sp8.x, sp8.y, sp8.z); - Hu3DModelRotSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0, lbl_1_bss_110, 0); - Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 1); - Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0x40000002); - Hu3DModelAttrSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0x40000001); - } - } - break; - - case 2005: - temp_r31->unk5C++; - fn_1_11F4(temp_r31->unk5C/60, &temp_r31->unk28, &lbl_1_bss_F8[temp_r31->unkA4], &temp_r31->unk34); - omSetTra(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk34.x, temp_r31->unk34.y, temp_r31->unk34.z); - if(temp_r31->unkA4 == 0) { - temp_f27 = temp_r31->unk5C/20; - if(1.0f <= temp_f27) { - temp_f27 = 1.0f; - } - Hu3DModelTPLvlSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], temp_f27); - } - if(60.0f <= temp_r31->unk5C) { - temp_r31->unk9C++; - temp_r31->unk5C = 0; - if(temp_r31->unkA4 == 1) { - Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], 0x40000003); - Hu3DMotionSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], lbl_1_bss_1A0[temp_r31->unkA0]->motion[0]); - HuAudFXPlay(1649); - } - } - - break; - - - case 2006: - temp_r31->unk5C++; - if(20.0f == temp_r31->unk5C) { - temp_r31->unk60 = temp_r31->unk64; - if(temp_r31->unkA4 == 0) { - Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], 0x40000003); - Hu3DMotionSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], lbl_1_bss_1A0[temp_r31->unkA0]->motion[0]); - HuAudFXPlay(1648); - } - } - if(30.0f < temp_r31->unk5C && Hu3DMotionEndCheck(lbl_1_bss_1A0[temp_r31->unkA0 & 0x2]->model[0])) { - temp_r31->unk9C++; - lbl_1_bss_1C++; - } - break; - - case 2007: - if((temp_r31->unk110 & 0x1) < lbl_1_bss_20) { - temp_r31->unk9C = 2008; - Hu3DModelAttrReset(object->model[0], 0x40000004); - Hu3DMotionShiftSet(object->model[0], object->motion[3], 0, 8, 0); - } - break; - - case 2008: - if(temp_r31->unk70 >= 0) { - temp_r31->unk6C++; - if(10.0f == temp_r31->unk6C) { - Hu3DParManAttrSet(temp_r31->unk70, 1); - } - } - break; - - default: - OSReport("*** player mode error(%d)!!\n", temp_r31->unk9C); - break; - - } - if(temp_r31->unk9C >= 2005 && (temp_r31->unkE8 & 0x20)) { - temp_r31->unk68 += 4.0f; - sp8 = temp_r31->unk34; - sp8.y += sind(temp_r31->unk68)*5.0; - omSetTra(lbl_1_bss_1A0[temp_r31->unkA0], sp8.x, sp8.y, sp8.z); - sp8.x = temp_r31->unk34.x+(30.0*sind(lbl_1_bss_110)); - sp8.y = (temp_r31->unk34.y+30)+(5.0*sind(temp_r31->unk68)); - sp8.z = temp_r31->unk34.z+(30.0*cosd(lbl_1_bss_110)); - Hu3DModelPosSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], sp8.x, sp8.y, sp8.z); - } - if(temp_r31->unk9C >= 2003) { - temp_r31->unk50 = fn_1_1E20(temp_r31->unk50, temp_r31->unk60, 0.1f); - } - omSetTra(object, temp_r31->unk4.x, temp_r31->unk4.y, temp_r31->unk4.z); - omSetRot(object, 0, temp_r31->unk50, 0); + Work8F68 *temp_r31 = object->data; + + switch (temp_r31->unk9C) { + case 2000: + if (lbl_1_bss_1AC->work[0] >= 1006) { + temp_r31->unk9C++; + object->func = fn_1_71F0; + } + break; + + case 2003: + if (lbl_1_bss_1AC->work[0] == 1010) { + Hu3DMotionOverlayReset(object->model[0]); + if (lbl_1_bss_28 >= 0 && (temp_r31->unk110 == lbl_1_bss_28 || temp_r31->unk110 == (lbl_1_bss_28 ^ 1))) { + temp_r31->unk9C = 2004; + temp_r31->unk5C = 0; + temp_r31->unkE8 |= 0x20; + fn_1_1D18(object->model[0], CharModelHookNameGet(temp_r31->unk118, 8, 0), &temp_r31->unk28); + Hu3DModelObjMtxGet(object->model[0], CharModelHookNameGet(temp_r31->unk118, 8, 0), sp74); + Hu3DMtxRotGet(sp74, &temp_r31->unk40); + Hu3DModelHookObjReset(object->model[0], CharModelHookNameGet(temp_r31->unk118, 8, 0)); + omSetTra(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk28.x, temp_r31->unk28.y, temp_r31->unk28.z); + if (temp_r31->unkA4 == 0) { + temp_r31->unk4C = lbl_1_bss_110; + Hu3DMotionSet(object->model[0], object->motion[5]); + } + else { + temp_r31->unk4C = lbl_1_bss_110 + 180; + temp_r31->unk40.y = lbl_1_bss_110 + 180; + Hu3DMotionSet(object->model[0], object->motion[6]); + } + Hu3DMotionTimeSet(object->model[0], Hu3DMotionMaxTimeGet(object->model[0]) - 1); + Hu3DModelAttrReset(object->model[0], 0x40000003); + Hu3DModelAttrSet(object->model[0], 0x40000004); + temp_r31->unk40.x = 0; + temp_r31->unk40.z = 0; + omSetRot(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); + temp_r31->unk4C = fmod(temp_r31->unk4C - temp_r31->unk40.y, 360); + if (0.0f > temp_r31->unk4C) { + temp_r31->unk4C += 360.0f; + } + if (180.0f < temp_r31->unk4C) { + temp_r31->unk4C -= 360.0f; + } + temp_r31->unk4C /= 60.0f; + } + else { + temp_r31->unk9C = 2008; + Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, 0); + } + } + if (lbl_1_bss_1AC->work[0] == 1012) { + temp_r31->unk9C = 2008; + Hu3DMotionOverlayReset(object->model[0]); + Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, 0); + } + if (temp_r31->unk9C == 2008 && temp_r31->unkA0 >= 0) { + Hu3DModelAttrSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], 1); + fn_1_1D18(object->model[0], CharModelHookNameGet(temp_r31->unk118, 8, 0), &sp8); + temp_r31->unk70 = Hu3DParManLink(lbl_1_bss_8, &lbl_1_data_13E8); + temp_r31->unk6C = 0; + Hu3DParManPosSet(temp_r31->unk70, sp8.x, sp8.y, sp8.z); + Hu3DParManAttrReset(temp_r31->unk70, 1); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(temp_r31->unk70), 1); + Hu3DModelLayerSet(Hu3DParManModelIDGet(temp_r31->unk70), 6); + } + break; + + case 2004: + temp_r31->unk5C++; + fn_1_11F4(temp_r31->unk5C / 60, &temp_r31->unk28, &lbl_1_bss_F8[temp_r31->unkA4], &temp_r31->unk34); + temp_r31->unk34.y += sind(temp_r31->unk5C * 3.0f) * 100; + omSetTra(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk34.x, temp_r31->unk34.y, temp_r31->unk34.z); + temp_r31->unk40.y += temp_r31->unk4C; + omSetRot(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); + if (60.0f <= temp_r31->unk5C) { + temp_r31->unk9C++; + temp_r31->unk5C = 0; + temp_r31->unk28 = temp_r31->unk34; + if (temp_r31->unkA4 == 1) { + lbl_1_bss_F8[1].x -= 10 * sind(lbl_1_bss_110); + lbl_1_bss_F8[1].z -= 10 * cosd(lbl_1_bss_110); + } + else { + sp8.x = (30 * sind(lbl_1_bss_110)) + temp_r31->unk34.x; + sp8.y = 30 + temp_r31->unk34.y; + sp8.z = (30 * cosd(lbl_1_bss_110)) + temp_r31->unk34.z; + Hu3DModelTPLvlSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0); + Hu3DModelPosSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], sp8.x, sp8.y, sp8.z); + Hu3DModelRotSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0, lbl_1_bss_110, 0); + Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0x40000001); + } + } + break; + + case 2005: + temp_r31->unk5C++; + fn_1_11F4(temp_r31->unk5C / 60, &temp_r31->unk28, &lbl_1_bss_F8[temp_r31->unkA4], &temp_r31->unk34); + omSetTra(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk34.x, temp_r31->unk34.y, temp_r31->unk34.z); + if (temp_r31->unkA4 == 0) { + temp_f27 = temp_r31->unk5C / 20; + if (1.0f <= temp_f27) { + temp_f27 = 1.0f; + } + Hu3DModelTPLvlSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], temp_f27); + } + if (60.0f <= temp_r31->unk5C) { + temp_r31->unk9C++; + temp_r31->unk5C = 0; + if (temp_r31->unkA4 == 1) { + Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], 0x40000003); + Hu3DMotionSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], lbl_1_bss_1A0[temp_r31->unkA0]->motion[0]); + HuAudFXPlay(1649); + } + } + + break; + + case 2006: + temp_r31->unk5C++; + if (20.0f == temp_r31->unk5C) { + temp_r31->unk60 = temp_r31->unk64; + if (temp_r31->unkA4 == 0) { + Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], 0x40000003); + Hu3DMotionSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], lbl_1_bss_1A0[temp_r31->unkA0]->motion[0]); + HuAudFXPlay(1648); + } + } + if (30.0f < temp_r31->unk5C && Hu3DMotionEndCheck(lbl_1_bss_1A0[temp_r31->unkA0 & 0x2]->model[0])) { + temp_r31->unk9C++; + lbl_1_bss_1C++; + } + break; + + case 2007: + if ((temp_r31->unk110 & 0x1) < lbl_1_bss_20) { + temp_r31->unk9C = 2008; + Hu3DModelAttrReset(object->model[0], 0x40000004); + Hu3DMotionShiftSet(object->model[0], object->motion[3], 0, 8, 0); + } + break; + + case 2008: + if (temp_r31->unk70 >= 0) { + temp_r31->unk6C++; + if (10.0f == temp_r31->unk6C) { + Hu3DParManAttrSet(temp_r31->unk70, 1); + } + } + break; + + default: + OSReport("*** player mode error(%d)!!\n", temp_r31->unk9C); + break; + } + if (temp_r31->unk9C >= 2005 && (temp_r31->unkE8 & 0x20)) { + temp_r31->unk68 += 4.0f; + sp8 = temp_r31->unk34; + sp8.y += sind(temp_r31->unk68) * 5.0; + omSetTra(lbl_1_bss_1A0[temp_r31->unkA0], sp8.x, sp8.y, sp8.z); + sp8.x = temp_r31->unk34.x + (30.0 * sind(lbl_1_bss_110)); + sp8.y = (temp_r31->unk34.y + 30) + (5.0 * sind(temp_r31->unk68)); + sp8.z = temp_r31->unk34.z + (30.0 * cosd(lbl_1_bss_110)); + Hu3DModelPosSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], sp8.x, sp8.y, sp8.z); + } + if (temp_r31->unk9C >= 2003) { + temp_r31->unk50 = fn_1_1E20(temp_r31->unk50, temp_r31->unk60, 0.1f); + } + omSetTra(object, temp_r31->unk4.x, temp_r31->unk4.y, temp_r31->unk4.z); + omSetRot(object, 0, temp_r31->unk50, 0); } void fn_1_8F68(omObjData *object) { - Work8F68 *temp_r31; - s32 temp_r29; - s32 temp_r28; - Data1340SubStruct *temp_r23; - - temp_r31 = object->data; - temp_r31->unk118 = GWPlayerCfg[temp_r31->unk114].character; - temp_r31->unk11C = GWPlayerCfg[temp_r31->unk114].pad_idx; - temp_r31->unk9C = 2000; - temp_r31->unkA0 = -1; - temp_r31->unkA4 = -1; - temp_r31->unkE8 = 0; - temp_r31->unk70 = -1; - temp_r31->unk50 = 0; - temp_r31->unk68 = 0; - temp_r31->unkA8 = 0; - temp_r31->unkAC = -1; - temp_r31->unk54 = 65; - temp_r31->unk0 = 0; - temp_r31->unk80 = 0; - temp_r31->unk84 = 0; - temp_r31->unk74 = 0; - temp_r31->unk78 = 65535; - temp_r31->unk7C = 0; - temp_r31->unk88 = -1; - temp_r31->unk8C = -1; - temp_r31->unk90 = 0; - temp_r31->unkEC = -1; - temp_r31->unkF0 = -1; - temp_r31->unk100 = 0; - temp_r31->unk104 = 0; - temp_r31->unk10C = 0; - for(temp_r29=0; temp_r29<2; temp_r29++) { - temp_r31->unk94[temp_r29] = 0; - } - object->model[0] = CharModelCreate(lbl_1_data_0[temp_r31->unk118], 8); - CharModelStepTypeSet(lbl_1_data_0[temp_r31->unk118], 0); - for(temp_r29=0; temp_r29<10; temp_r29++) { - object->motion[temp_r29] = CharModelMotionCreate(lbl_1_data_0[temp_r31->unk118], lbl_1_data_1150[temp_r31->unk118][temp_r29]); - CharModelMotionSet(lbl_1_data_0[temp_r31->unk118], object->motion[temp_r29]); - } - Hu3DModelCameraSet(object->model[0], 15); - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DModelLayerSet(object->model[0], 2); - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelShadowSet(object->model[0]); - temp_r31->unk4.x = 0; - temp_r31->unk4.y = 0; - temp_r31->unk4.z = 0; - temp_r28 = temp_r31->unk110; - if(temp_r28 >= 2) { - temp_r28 ^= 1; - } - temp_r28 = (temp_r28+lbl_1_bss_34)%4; - temp_r23 = fn_1_2614(1 << temp_r28); - if(NULL != temp_r23) { - temp_r31->unk4 = temp_r23->unk18; - } - omSetTra(object, temp_r31->unk4.x, temp_r31->unk4.y, temp_r31->unk4.z); - omSetRot(object, 0, temp_r31->unk50, 0); - lbl_1_bss_98[temp_r31->unk110].x = temp_r31->unk4.x; - lbl_1_bss_98[temp_r31->unk110].y = temp_r31->unk4.y+450; - lbl_1_bss_98[temp_r31->unk110].z = temp_r31->unk4.z+850; - lbl_1_bss_38[temp_r31->unk110].x = temp_r31->unk4.x; - lbl_1_bss_38[temp_r31->unk110].y = temp_r31->unk4.y; - lbl_1_bss_38[temp_r31->unk110].z = temp_r31->unk4.z; - temp_r31->unkB0 = espEntry(lbl_1_data_12D0[temp_r31->unk110], 134, 0); - espDrawNoSet(temp_r31->unkB0, 0); - lbl_1_bss_130[temp_r31->unk110].unk0 = temp_r31->unkB0; - espDispOff(temp_r31->unkB0); - espZRotSet(temp_r31->unkB0, (temp_r31->unk110 & 0x1) ? 0.0f : 180.0f); - temp_r31->unkB4 = espEntry(0x3C0031, 133, 0); - espDrawNoSet(temp_r31->unkB4, 0); - espDispOff(temp_r31->unkB4); - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r31->unkB8[temp_r29] = espEntry(lbl_1_data_1290[GWPlayerCfg[temp_r29].character], (temp_r31->unk114 == temp_r29) ? 129 : 130, 0); - espDrawNoSet(temp_r31->unkB8[temp_r29], 0); - espDispOff(temp_r31->unkB8[temp_r29]); - temp_r31->unkC8[temp_r29][0] = espEntry(lbl_1_data_1310[temp_r29], 128, 0); - espDrawNoSet(temp_r31->unkC8[temp_r29][0], 0); - espDispOff(temp_r31->unkC8[temp_r29][0]); - temp_r31->unkC8[temp_r29][1] = espEntry(0x3C003C, 128, 0); - espDrawNoSet(temp_r31->unkC8[temp_r29][1], 0); - espDispOff(temp_r31->unkC8[temp_r29][1]); - } - if(GWPlayerCfg[temp_r31->unk114].iscom) { - switch(GWPlayerCfg[temp_r31->unk114].diff) { - case 0: - temp_r31->unk0 = &lbl_1_data_13A8; - break; - - case 1: - temp_r31->unk0 = &lbl_1_data_13B8; - break; - - case 2: - temp_r31->unk0 = &lbl_1_data_13C8; - break; - - case 3: - default: - temp_r31->unk0 = &lbl_1_data_13D8; - break; - } - temp_r31->unk80 = frandf()*temp_r31->unk0->unk4; - temp_r31->unk8C = temp_r31->unk0->unkC+((temp_r31->unk0->unkC/2.0f)*frandf()); - } - CharModelVoiceEnableSet(temp_r31->unk118, object->motion[4], 0); - fn_1_2950(temp_r31); - Hu3DModelAttrReset(object->model[0], 1); - CharModelLayerSetAll2(5); - CharModelMotionDataClose(lbl_1_data_0[temp_r31->unk118]); - object->func = fn_1_7D38; + Work8F68 *temp_r31; + s32 temp_r29; + s32 temp_r28; + Data1340SubStruct *temp_r23; + + temp_r31 = object->data; + temp_r31->unk118 = GWPlayerCfg[temp_r31->unk114].character; + temp_r31->unk11C = GWPlayerCfg[temp_r31->unk114].pad_idx; + temp_r31->unk9C = 2000; + temp_r31->unkA0 = -1; + temp_r31->unkA4 = -1; + temp_r31->unkE8 = 0; + temp_r31->unk70 = -1; + temp_r31->unk50 = 0; + temp_r31->unk68 = 0; + temp_r31->unkA8 = 0; + temp_r31->unkAC = -1; + temp_r31->unk54 = 65; + temp_r31->unk0 = 0; + temp_r31->unk80 = 0; + temp_r31->unk84 = 0; + temp_r31->unk74 = 0; + temp_r31->unk78 = 65535; + temp_r31->unk7C = 0; + temp_r31->unk88 = -1; + temp_r31->unk8C = -1; + temp_r31->unk90 = 0; + temp_r31->unkEC = -1; + temp_r31->unkF0 = -1; + temp_r31->unk100 = 0; + temp_r31->unk104 = 0; + temp_r31->unk10C = 0; + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + temp_r31->unk94[temp_r29] = 0; + } + object->model[0] = CharModelCreate(lbl_1_data_0[temp_r31->unk118], 8); + CharModelStepTypeSet(lbl_1_data_0[temp_r31->unk118], 0); + for (temp_r29 = 0; temp_r29 < 10; temp_r29++) { + object->motion[temp_r29] = CharModelMotionCreate(lbl_1_data_0[temp_r31->unk118], lbl_1_data_1150[temp_r31->unk118][temp_r29]); + CharModelMotionSet(lbl_1_data_0[temp_r31->unk118], object->motion[temp_r29]); + } + Hu3DModelCameraSet(object->model[0], 15); + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelLayerSet(object->model[0], 2); + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelShadowSet(object->model[0]); + temp_r31->unk4.x = 0; + temp_r31->unk4.y = 0; + temp_r31->unk4.z = 0; + temp_r28 = temp_r31->unk110; + if (temp_r28 >= 2) { + temp_r28 ^= 1; + } + temp_r28 = (temp_r28 + lbl_1_bss_34) % 4; + temp_r23 = fn_1_2614(1 << temp_r28); + if (NULL != temp_r23) { + temp_r31->unk4 = temp_r23->unk18; + } + omSetTra(object, temp_r31->unk4.x, temp_r31->unk4.y, temp_r31->unk4.z); + omSetRot(object, 0, temp_r31->unk50, 0); + lbl_1_bss_98[temp_r31->unk110].x = temp_r31->unk4.x; + lbl_1_bss_98[temp_r31->unk110].y = temp_r31->unk4.y + 450; + lbl_1_bss_98[temp_r31->unk110].z = temp_r31->unk4.z + 850; + lbl_1_bss_38[temp_r31->unk110].x = temp_r31->unk4.x; + lbl_1_bss_38[temp_r31->unk110].y = temp_r31->unk4.y; + lbl_1_bss_38[temp_r31->unk110].z = temp_r31->unk4.z; + temp_r31->unkB0 = espEntry(lbl_1_data_12D0[temp_r31->unk110], 134, 0); + espDrawNoSet(temp_r31->unkB0, 0); + lbl_1_bss_130[temp_r31->unk110].unk0 = temp_r31->unkB0; + espDispOff(temp_r31->unkB0); + espZRotSet(temp_r31->unkB0, (temp_r31->unk110 & 0x1) ? 0.0f : 180.0f); + temp_r31->unkB4 = espEntry(DATA_MAKE_NUM(DATADIR_M429, 0x31), 133, 0); + espDrawNoSet(temp_r31->unkB4, 0); + espDispOff(temp_r31->unkB4); + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r31->unkB8[temp_r29] = espEntry(lbl_1_data_1290[GWPlayerCfg[temp_r29].character], (temp_r31->unk114 == temp_r29) ? 129 : 130, 0); + espDrawNoSet(temp_r31->unkB8[temp_r29], 0); + espDispOff(temp_r31->unkB8[temp_r29]); + temp_r31->unkC8[temp_r29][0] = espEntry(lbl_1_data_1310[temp_r29], 128, 0); + espDrawNoSet(temp_r31->unkC8[temp_r29][0], 0); + espDispOff(temp_r31->unkC8[temp_r29][0]); + temp_r31->unkC8[temp_r29][1] = espEntry(DATA_MAKE_NUM(DATADIR_M429, 0x3C), 128, 0); + espDrawNoSet(temp_r31->unkC8[temp_r29][1], 0); + espDispOff(temp_r31->unkC8[temp_r29][1]); + } + if (GWPlayerCfg[temp_r31->unk114].iscom) { + switch (GWPlayerCfg[temp_r31->unk114].diff) { + case 0: + temp_r31->unk0 = &lbl_1_data_13A8; + break; + + case 1: + temp_r31->unk0 = &lbl_1_data_13B8; + break; + + case 2: + temp_r31->unk0 = &lbl_1_data_13C8; + break; + + case 3: + default: + temp_r31->unk0 = &lbl_1_data_13D8; + break; + } + temp_r31->unk80 = frandf() * temp_r31->unk0->unk4; + temp_r31->unk8C = temp_r31->unk0->unkC + ((temp_r31->unk0->unkC / 2.0f) * frandf()); + } + CharModelVoiceEnableSet(temp_r31->unk118, object->motion[4], 0); + fn_1_2950(temp_r31); + Hu3DModelAttrReset(object->model[0], 1); + CharModelLayerSetAll2(5); + CharModelMotionDataClose(lbl_1_data_0[temp_r31->unk118]); + object->func = fn_1_7D38; } -void fn_1_99EC(omObjData *object) -{ - -} +void fn_1_99EC(omObjData *object) { } void fn_1_99F0(omObjData *object) { - s32 temp_r30; - s32 *temp_r29; - temp_r29 = &lbl_1_data_12E0[object->work[0]][0]; - for(temp_r30=0; temp_r30<2; temp_r30++) { - object->model[temp_r30] = Hu3DModelCreateFile(*temp_r29++); - Hu3DModelCameraSet(object->model[temp_r30], 15); - Hu3DModelAttrSet(object->model[temp_r30], 1); - Hu3DModelAttrSet(object->model[temp_r30], 0x40000002); - Hu3DModelAttrReset(object->model[temp_r30], 0x40000001); - Hu3DModelLayerSet(object->model[temp_r30], 3); - Hu3DModelShadowSet(object->model[temp_r30]); - } - for(temp_r30=0; temp_r30<1; temp_r29++, temp_r30++) { - object->motion[temp_r30] = Hu3DJointMotionFile(object->model[0], temp_r29[0]); - } - Hu3DMotionSet(object->model[0], object->motion[0]); - omSetTra(object, 0, 0, 0); - omSetRot(object, 0, 0, 0); - object->func = fn_1_99EC; + s32 temp_r30; + s32 *temp_r29; + temp_r29 = &lbl_1_data_12E0[object->work[0]][0]; + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + object->model[temp_r30] = Hu3DModelCreateFile(*temp_r29++); + Hu3DModelCameraSet(object->model[temp_r30], 15); + Hu3DModelAttrSet(object->model[temp_r30], 1); + Hu3DModelAttrSet(object->model[temp_r30], 0x40000002); + Hu3DModelAttrReset(object->model[temp_r30], 0x40000001); + Hu3DModelLayerSet(object->model[temp_r30], 3); + Hu3DModelShadowSet(object->model[temp_r30]); + } + for (temp_r30 = 0; temp_r30 < 1; temp_r29++, temp_r30++) { + object->motion[temp_r30] = Hu3DJointMotionFile(object->model[0], temp_r29[0]); + } + Hu3DMotionSet(object->model[0], object->motion[0]); + omSetTra(object, 0, 0, 0); + omSetRot(object, 0, 0, 0); + object->func = fn_1_99EC; } void fn_1_9BAC(omObjData *object) { - float temp_f31; - float temp_f30; - - Vec *temp_r31; - Work8F68 *temp_r29; - s32 temp_r27; - temp_r31 = object->data; - temp_r31[1].x += (frandf()*12.0f)+12.0f; - temp_r27 = lbl_1_bss_28; - if(object->work[0] & 0x1) { - temp_r27 ^= 0x1; - } - temp_r29 = fn_1_4DF0(temp_r27); - temp_r31[1].y++; - if(90.0f < temp_r31[1].y) { - temp_r31[1].y = 90.0f; - } - temp_f31 = temp_r31[1].y/90.0f; - temp_f30 = sind(90.0f * temp_f31) * sind(90.0f * temp_f31); + float temp_f31; + float temp_f30; + + Vec *temp_r31; + Work8F68 *temp_r29; + s32 temp_r27; + temp_r31 = object->data; + temp_r31[1].x += (frandf() * 12.0f) + 12.0f; + temp_r27 = lbl_1_bss_28; + if (object->work[0] & 0x1) { + temp_r27 ^= 0x1; + } + temp_r29 = fn_1_4DF0(temp_r27); + temp_r31[1].y++; + if (90.0f < temp_r31[1].y) { + temp_r31[1].y = 90.0f; + } + temp_f31 = temp_r31[1].y / 90.0f; + temp_f30 = sind(90.0f * temp_f31) * sind(90.0f * temp_f31); temp_r31[0].x = lbl_1_bss_F8->x + temp_f30 * (temp_r29->unk4.x - lbl_1_bss_F8->x) * 1.5f; temp_r31[0].z = lbl_1_bss_F8->z + temp_f30 * (temp_r29->unk4.z - lbl_1_bss_F8->z) * 1.5f; - temp_r31[0].y += temp_r31[1].z; - temp_r31[1].z -= 0.4f; - omSetTra(object, temp_r31[0].x, temp_r31[0].y, temp_r31[0].z); - omSetRot(object, 0, temp_r31[1].x, 0); - if(0.0f > temp_r31[1].z && 180.0f > temp_r31[0].y) { - lbl_1_bss_20++; - HuAudFXPlay(7); - Hu3DModelAttrSet(object->model[0], 1); - CharModelCoinEffectCreate(lbl_1_data_FEC[lbl_1_bss_28], temp_r31); - omDelObjEx(lbl_1_bss_33C, object); - } + temp_r31[0].y += temp_r31[1].z; + temp_r31[1].z -= 0.4f; + omSetTra(object, temp_r31[0].x, temp_r31[0].y, temp_r31[0].z); + omSetRot(object, 0, temp_r31[1].x, 0); + if (0.0f > temp_r31[1].z && 180.0f > temp_r31[0].y) { + lbl_1_bss_20++; + HuAudFXPlay(7); + Hu3DModelAttrSet(object->model[0], 1); + CharModelCoinEffectCreate(lbl_1_data_FEC[lbl_1_bss_28], temp_r31); + omDelObjEx(lbl_1_bss_33C, object); + } } void fn_1_9EEC(omObjData *object) { - Vec *temp_r30; - temp_r30 = object->data; - object->model[0] = Hu3DModelLink(lbl_1_bss_1A); - Hu3DModelCameraSet(object->model[0], lbl_1_data_FEC[lbl_1_bss_28]); - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000002); - Hu3DModelLayerSet(object->model[0], 4); - Hu3DModelShadowSet(object->model[0]); - temp_r30[0] = lbl_1_bss_F8[0]; - temp_r30[0].y += 20; - temp_r30[1].x = 0; - temp_r30[1].y = 0; - temp_r30[1].z = (4*frandf())+10; - omSetTra(object, temp_r30[0].x, temp_r30[0].y , temp_r30[0].z); - omSetRot(object, 0, temp_r30[1].x, 0); - omSetSca(object, 0.4f, 0.4f, 0.4f); - Hu3DModelAttrReset(object->model[0], 1); - object->func = fn_1_9BAC; + Vec *temp_r30; + temp_r30 = object->data; + object->model[0] = Hu3DModelLink(lbl_1_bss_1A); + Hu3DModelCameraSet(object->model[0], lbl_1_data_FEC[lbl_1_bss_28]); + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelLayerSet(object->model[0], 4); + Hu3DModelShadowSet(object->model[0]); + temp_r30[0] = lbl_1_bss_F8[0]; + temp_r30[0].y += 20; + temp_r30[1].x = 0; + temp_r30[1].y = 0; + temp_r30[1].z = (4 * frandf()) + 10; + omSetTra(object, temp_r30[0].x, temp_r30[0].y, temp_r30[0].z); + omSetRot(object, 0, temp_r30[1].x, 0); + omSetSca(object, 0.4f, 0.4f, 0.4f); + Hu3DModelAttrReset(object->model[0], 1); + object->func = fn_1_9BAC; } void fn_1_A0A8(s32 arg0) { - omObjData *object; - object = omAddObjEx(lbl_1_bss_33C, 103, 1, 0, 3, fn_1_9EEC); - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Vec)*2, MEMORY_DEFAULT_NUM); - object->work[0] = arg0; + omObjData *object; + object = omAddObjEx(lbl_1_bss_33C, 103, 1, 0, 3, fn_1_9EEC); + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Vec) * 2, MEMORY_DEFAULT_NUM); + object->work[0] = arg0; } void fn_1_A118(void) { - s32 temp_r31; - float temp_f31; - float temp_f30; - Vec sp8; - temp_f30 = sind(15.0f)/cosd(15.0f); - temp_f31 = 0.5f; - sp8.z = (1.0f-temp_f31)*(lbl_1_bss_190->unk18*temp_f30); - sp8.x = 1.2f*sp8.z; - sp8.y = lbl_1_bss_190->unk18*temp_f31; - Hu3DCameraCreate(15); - Hu3DCameraPerspectiveSet(15, 30, 10, 20000, 1.2f); - for(temp_r31=0; temp_r31<4; temp_r31++) { - fn_1_7098(temp_r31, &lbl_1_data_FFC[temp_r31][0]); - lbl_1_bss_C8[temp_r31].x = sp8.x*lbl_1_data_10FC[temp_r31][0]; - lbl_1_bss_C8[temp_r31].y = sp8.y; - lbl_1_bss_C8[temp_r31].z = sp8.z*lbl_1_data_10FC[temp_r31][1]; - lbl_1_bss_68[temp_r31].x = lbl_1_bss_C8[temp_r31].x; - lbl_1_bss_68[temp_r31].y = 0; - lbl_1_bss_68[temp_r31].z = lbl_1_bss_C8[temp_r31].z; - Hu3DCameraPosSetV(lbl_1_data_FEC[temp_r31], &lbl_1_bss_C8[temp_r31], &lbl_1_data_FD4, &lbl_1_bss_68[temp_r31]); - } + s32 temp_r31; + float temp_f31; + float temp_f30; + Vec sp8; + temp_f30 = sind(15.0f) / cosd(15.0f); + temp_f31 = 0.5f; + sp8.z = (1.0f - temp_f31) * (lbl_1_bss_190->unk18 * temp_f30); + sp8.x = 1.2f * sp8.z; + sp8.y = lbl_1_bss_190->unk18 * temp_f31; + Hu3DCameraCreate(15); + Hu3DCameraPerspectiveSet(15, 30, 10, 20000, 1.2f); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + fn_1_7098(temp_r31, &lbl_1_data_FFC[temp_r31][0]); + lbl_1_bss_C8[temp_r31].x = sp8.x * lbl_1_data_10FC[temp_r31][0]; + lbl_1_bss_C8[temp_r31].y = sp8.y; + lbl_1_bss_C8[temp_r31].z = sp8.z * lbl_1_data_10FC[temp_r31][1]; + lbl_1_bss_68[temp_r31].x = lbl_1_bss_C8[temp_r31].x; + lbl_1_bss_68[temp_r31].y = 0; + lbl_1_bss_68[temp_r31].z = lbl_1_bss_C8[temp_r31].z; + Hu3DCameraPosSetV(lbl_1_data_FEC[temp_r31], &lbl_1_bss_C8[temp_r31], &lbl_1_data_FD4, &lbl_1_bss_68[temp_r31]); + } } void fn_1_A588(s32 arg0, Vec *arg1, float arg2) { - Vec sp18; - Vec spC; - sp18.x = lbl_1_bss_C8[arg0].x+(arg2*(lbl_1_bss_98[arg0].x-lbl_1_bss_C8[arg0].x)); - sp18.y = lbl_1_bss_C8[arg0].y+(arg2*(lbl_1_bss_98[arg0].y-lbl_1_bss_C8[arg0].y)); - sp18.z = lbl_1_bss_C8[arg0].z+(arg2*(lbl_1_bss_98[arg0].z-lbl_1_bss_C8[arg0].z)); - spC.x = lbl_1_bss_68[arg0].x+(arg2*(lbl_1_bss_38[arg0].x-lbl_1_bss_68[arg0].x)); - spC.y = lbl_1_bss_68[arg0].y+(arg2*(lbl_1_bss_38[arg0].y-lbl_1_bss_68[arg0].y)); - spC.z = lbl_1_bss_68[arg0].z+(arg2*(lbl_1_bss_38[arg0].z-lbl_1_bss_68[arg0].z)); - Hu3DCameraPosSetV(lbl_1_data_FEC[arg0], &sp18, arg1, &spC); + Vec sp18; + Vec spC; + sp18.x = lbl_1_bss_C8[arg0].x + (arg2 * (lbl_1_bss_98[arg0].x - lbl_1_bss_C8[arg0].x)); + sp18.y = lbl_1_bss_C8[arg0].y + (arg2 * (lbl_1_bss_98[arg0].y - lbl_1_bss_C8[arg0].y)); + sp18.z = lbl_1_bss_C8[arg0].z + (arg2 * (lbl_1_bss_98[arg0].z - lbl_1_bss_C8[arg0].z)); + spC.x = lbl_1_bss_68[arg0].x + (arg2 * (lbl_1_bss_38[arg0].x - lbl_1_bss_68[arg0].x)); + spC.y = lbl_1_bss_68[arg0].y + (arg2 * (lbl_1_bss_38[arg0].y - lbl_1_bss_68[arg0].y)); + spC.z = lbl_1_bss_68[arg0].z + (arg2 * (lbl_1_bss_38[arg0].z - lbl_1_bss_68[arg0].z)); + Hu3DCameraPosSetV(lbl_1_data_FEC[arg0], &sp18, arg1, &spC); } void fn_1_A7B4(void) { - s32 temp_r31; - float *temp_r30; - float *temp_r29; - float temp_f31; - float temp_f30; - - - float sp20[4]; - lbl_1_bss_12C++; - temp_f30 = lbl_1_bss_12C/120; - temp_f31 = sind(90*temp_f30)*sind(90*temp_f30); - for(temp_r31=0; temp_r31<4; temp_r31++) { - fn_1_A588(temp_r31, &lbl_1_data_FD4, temp_f31); - } - if(30.0f < lbl_1_bss_12C) { - temp_f30 = (lbl_1_bss_12C-30.0f)/60.0f; - if(1.0f < temp_f30) { - temp_f30 = 1; - } - temp_f31 = sind(90*temp_f30)*sind(90*temp_f30); - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r30 = &lbl_1_data_FFC[temp_r31][0]; - temp_r29 = &lbl_1_data_103C[temp_r31][0]; - sp20[0] = temp_r30[0]+(temp_f31*(temp_r29[0]-temp_r30[0])); - sp20[1] = temp_r30[1]+(temp_f31*(temp_r29[1]-temp_r30[1])); - sp20[2] = temp_r30[2]+(temp_f31*(temp_r29[2]-temp_r30[2])); - sp20[3] = temp_r30[3]+(temp_f31*(temp_r29[3]-temp_r30[3])); - fn_1_7098(temp_r31, sp20); - } - } + s32 temp_r31; + float *temp_r30; + float *temp_r29; + float temp_f31; + float temp_f30; + + float sp20[4]; + lbl_1_bss_12C++; + temp_f30 = lbl_1_bss_12C / 120; + temp_f31 = sind(90 * temp_f30) * sind(90 * temp_f30); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + fn_1_A588(temp_r31, &lbl_1_data_FD4, temp_f31); + } + if (30.0f < lbl_1_bss_12C) { + temp_f30 = (lbl_1_bss_12C - 30.0f) / 60.0f; + if (1.0f < temp_f30) { + temp_f30 = 1; + } + temp_f31 = sind(90 * temp_f30) * sind(90 * temp_f30); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r30 = &lbl_1_data_FFC[temp_r31][0]; + temp_r29 = &lbl_1_data_103C[temp_r31][0]; + sp20[0] = temp_r30[0] + (temp_f31 * (temp_r29[0] - temp_r30[0])); + sp20[1] = temp_r30[1] + (temp_f31 * (temp_r29[1] - temp_r30[1])); + sp20[2] = temp_r30[2] + (temp_f31 * (temp_r29[2] - temp_r30[2])); + sp20[3] = temp_r30[3] + (temp_f31 * (temp_r29[3] - temp_r30[3])); + fn_1_7098(temp_r31, sp20); + } + } } void fn_1_AD74(float *arg0) { - float sp8[4]; - float *temp_r31; - s32 temp_r28; - float temp_f31; - float temp_f30; - - temp_r31 = &lbl_1_data_103C[0][0]; - temp_f30 = lbl_1_bss_12C/60; - temp_f31 = sind(90*temp_f30)*sind(90*temp_f30); - for(temp_r28=0; temp_r28<4; temp_r28++, temp_r31 += 4, arg0 += 4) { - sp8[0] = temp_r31[0]+(temp_f31*(arg0[0]-temp_r31[0])); - sp8[1] = temp_r31[1]+(temp_f31*(arg0[1]-temp_r31[1])); - sp8[2] = temp_r31[2]+(temp_f31*(arg0[2]-temp_r31[2])); - sp8[3] = temp_r31[3]+(temp_f31*(arg0[3]-temp_r31[3])); - fn_1_7098(temp_r28, sp8); - - } + float sp8[4]; + float *temp_r31; + s32 temp_r28; + float temp_f31; + float temp_f30; + + temp_r31 = &lbl_1_data_103C[0][0]; + temp_f30 = lbl_1_bss_12C / 60; + temp_f31 = sind(90 * temp_f30) * sind(90 * temp_f30); + for (temp_r28 = 0; temp_r28 < 4; temp_r28++, temp_r31 += 4, arg0 += 4) { + sp8[0] = temp_r31[0] + (temp_f31 * (arg0[0] - temp_r31[0])); + sp8[1] = temp_r31[1] + (temp_f31 * (arg0[1] - temp_r31[1])); + sp8[2] = temp_r31[2] + (temp_f31 * (arg0[2] - temp_r31[2])); + sp8[3] = temp_r31[3] + (temp_f31 * (arg0[3] - temp_r31[3])); + fn_1_7098(temp_r28, sp8); + } } void fn_1_B01C(void) { - float temp_f31; - float temp_f30; - float temp_f29; - - Work8F68 *temp_r31; - Work8F68 *temp_r30; - temp_r31 = fn_1_4DF0(lbl_1_bss_28); - temp_r30 = fn_1_4DF0(lbl_1_bss_28^1); - temp_f31 = temp_r31->unk4.x-temp_r30->unk4.x; - temp_f30 = temp_r31->unk4.z-temp_r30->unk4.z; - lbl_1_bss_110 = atan2d(temp_f31, temp_f30)+90; - if(90.0f < lbl_1_bss_110) { - lbl_1_bss_110 -= 180.0f; - } - - lbl_1_bss_38[lbl_1_bss_28].x = lbl_1_bss_68[lbl_1_bss_28].x-(temp_f31/2); - lbl_1_bss_38[lbl_1_bss_28].y = lbl_1_bss_68[lbl_1_bss_28].y+200; - lbl_1_bss_38[lbl_1_bss_28].z = lbl_1_bss_68[lbl_1_bss_28].z-(temp_f30/2); - temp_f29 = 1350; - lbl_1_bss_98[lbl_1_bss_28].x = lbl_1_bss_38[lbl_1_bss_28].x+(temp_f29*sind(lbl_1_bss_110)); - lbl_1_bss_98[lbl_1_bss_28].y = 250+lbl_1_bss_38[lbl_1_bss_28].y; - lbl_1_bss_98[lbl_1_bss_28].z = lbl_1_bss_38[lbl_1_bss_28].z+(temp_f29*cosd(lbl_1_bss_110)); - lbl_1_bss_F8[0] = lbl_1_bss_38[lbl_1_bss_28]; - lbl_1_bss_F8[1] = lbl_1_bss_38[lbl_1_bss_28]; - lbl_1_bss_F8[1].x += 50*sind(lbl_1_bss_110); - lbl_1_bss_F8[1].y += 15; - lbl_1_bss_F8[1].z += 50*cosd(lbl_1_bss_110); - temp_f31 = lbl_1_bss_F8[0].x-temp_r31->unk4.x; - temp_f30 = lbl_1_bss_F8[0].z-temp_r31->unk4.z; - temp_r31->unk60 = atan2d(temp_f31, temp_f30); - temp_f31 = lbl_1_bss_F8[0].x-temp_r30->unk4.x; - temp_f30 = lbl_1_bss_F8[0].z-temp_r30->unk4.z; - temp_r30->unk60 = atan2d(temp_f31, temp_f30); - temp_f31 = lbl_1_bss_98[lbl_1_bss_28].x-temp_r31->unk4.x; - temp_f30 = lbl_1_bss_98[lbl_1_bss_28].z-temp_r31->unk4.z; - temp_r31->unk64 = atan2d(temp_f31, temp_f30); - temp_f31 = lbl_1_bss_98[lbl_1_bss_28].x-temp_r30->unk4.x; - temp_f30 = lbl_1_bss_98[lbl_1_bss_28].z-temp_r30->unk4.z; - temp_r30->unk64 = atan2d(temp_f31, temp_f30); - omVibrate(temp_r31->unk114, 120, 6, 6); - omVibrate(temp_r30->unk114, 120, 6, 6); + float temp_f31; + float temp_f30; + float temp_f29; + + Work8F68 *temp_r31; + Work8F68 *temp_r30; + temp_r31 = fn_1_4DF0(lbl_1_bss_28); + temp_r30 = fn_1_4DF0(lbl_1_bss_28 ^ 1); + temp_f31 = temp_r31->unk4.x - temp_r30->unk4.x; + temp_f30 = temp_r31->unk4.z - temp_r30->unk4.z; + lbl_1_bss_110 = atan2d(temp_f31, temp_f30) + 90; + if (90.0f < lbl_1_bss_110) { + lbl_1_bss_110 -= 180.0f; + } + + lbl_1_bss_38[lbl_1_bss_28].x = lbl_1_bss_68[lbl_1_bss_28].x - (temp_f31 / 2); + lbl_1_bss_38[lbl_1_bss_28].y = lbl_1_bss_68[lbl_1_bss_28].y + 200; + lbl_1_bss_38[lbl_1_bss_28].z = lbl_1_bss_68[lbl_1_bss_28].z - (temp_f30 / 2); + temp_f29 = 1350; + lbl_1_bss_98[lbl_1_bss_28].x = lbl_1_bss_38[lbl_1_bss_28].x + (temp_f29 * sind(lbl_1_bss_110)); + lbl_1_bss_98[lbl_1_bss_28].y = 250 + lbl_1_bss_38[lbl_1_bss_28].y; + lbl_1_bss_98[lbl_1_bss_28].z = lbl_1_bss_38[lbl_1_bss_28].z + (temp_f29 * cosd(lbl_1_bss_110)); + lbl_1_bss_F8[0] = lbl_1_bss_38[lbl_1_bss_28]; + lbl_1_bss_F8[1] = lbl_1_bss_38[lbl_1_bss_28]; + lbl_1_bss_F8[1].x += 50 * sind(lbl_1_bss_110); + lbl_1_bss_F8[1].y += 15; + lbl_1_bss_F8[1].z += 50 * cosd(lbl_1_bss_110); + temp_f31 = lbl_1_bss_F8[0].x - temp_r31->unk4.x; + temp_f30 = lbl_1_bss_F8[0].z - temp_r31->unk4.z; + temp_r31->unk60 = atan2d(temp_f31, temp_f30); + temp_f31 = lbl_1_bss_F8[0].x - temp_r30->unk4.x; + temp_f30 = lbl_1_bss_F8[0].z - temp_r30->unk4.z; + temp_r30->unk60 = atan2d(temp_f31, temp_f30); + temp_f31 = lbl_1_bss_98[lbl_1_bss_28].x - temp_r31->unk4.x; + temp_f30 = lbl_1_bss_98[lbl_1_bss_28].z - temp_r31->unk4.z; + temp_r31->unk64 = atan2d(temp_f31, temp_f30); + temp_f31 = lbl_1_bss_98[lbl_1_bss_28].x - temp_r30->unk4.x; + temp_f30 = lbl_1_bss_98[lbl_1_bss_28].z - temp_r30->unk4.z; + temp_r30->unk64 = atan2d(temp_f31, temp_f30); + omVibrate(temp_r31->unk114, 120, 6, 6); + omVibrate(temp_r30->unk114, 120, 6, 6); } void fn_1_B754(float *arg0, float arg1, float arg2, s32 arg3) { - float temp_f31; - float temp_f30; - temp_f30 = (arg0[2]/2)*(arg1/lbl_1_bss_128); - temp_f31 = (arg0[3]/2)*(arg2/lbl_1_bss_124); - temp_f30 += arg0[0]+(arg0[2]/2); - temp_f31 += arg0[1]+(arg0[3]/2); - temp_f30 = 576.0f*(temp_f30/640.0f); - temp_f31 = 480.0f*(temp_f31/480.0f); - temp_f31 += (240.0f <= arg0[1]) ? -16.0f : 16.0f; - espPosSet(arg3, temp_f30, temp_f31); + float temp_f31; + float temp_f30; + temp_f30 = (arg0[2] / 2) * (arg1 / lbl_1_bss_128); + temp_f31 = (arg0[3] / 2) * (arg2 / lbl_1_bss_124); + temp_f30 += arg0[0] + (arg0[2] / 2); + temp_f31 += arg0[1] + (arg0[3] / 2); + temp_f30 = 576.0f * (temp_f30 / 640.0f); + temp_f31 = 480.0f * (temp_f31 / 480.0f); + temp_f31 += (240.0f <= arg0[1]) ? -16.0f : 16.0f; + espPosSet(arg3, temp_f30, temp_f31); } void fn_1_E96C(omObjData *object); void fn_1_B8E0(omObjData *object) { - float temp_f31; - float temp_f30; - float temp_f20; - float temp_f19; - - float *temp_r31; - s32 temp_r29; - Work8F68 *temp_r28; - Bss130Struct *temp_r27; - s32 temp_r24; - Work3284 *temp_r23; - Work8F68 *temp_r20; - - s32 sp74; - Work8F68 *sp68; - Work8F68 *sp5C; - if(omSysExitReq) { - fn_1_1F58(-1); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_E96C; - } - lbl_1_bss_114 += 1.0f/60.0f; - if(360.0f <= lbl_1_bss_114) { - lbl_1_bss_114 -= 360.0f; - } - Hu3DModelRotSet(object->model[2], 0, lbl_1_bss_114, 0); - lbl_1_bss_308++; - switch(object->work[0]) { - - case 1000: - if(!WipeStatGet()) { - object->work[0]++; - lbl_1_bss_12C = 0; - HuAudFXPlay(1644); - } - break; - - case 1001: - lbl_1_bss_12C++; - if(60.0f <= lbl_1_bss_12C) { - object->work[0]++; - lbl_1_bss_12C = 0; - } - break; - - - case 1002: - lbl_1_bss_12C++; - temp_f30 = lbl_1_bss_12C/60; - temp_f31 = 1-(sind(temp_f30*90.0f)*sind(temp_f30*90.0f)); - for(temp_r29=0; temp_r29<5; temp_r29++) { - espTPLvlSet(lbl_1_bss_10[temp_r29], temp_f31); - } - if(60.0f <= lbl_1_bss_12C) { - object->work[0]++; - lbl_1_bss_12C = 0; - for(temp_r29=0; temp_r29<5; temp_r29++) { - espKill(lbl_1_bss_10[temp_r29]); - } - } - break; - - case 1003: - lbl_1_bss_12C++; - temp_f30 = lbl_1_bss_12C/60; - temp_f31 = sind(temp_f30*90.0f)*sind(temp_f30*90.0f); - for(temp_r29=0; temp_r29<4; temp_r29++) { - lbl_1_bss_130[temp_r29].unk4 = temp_f31; - } - if(60.0f <= lbl_1_bss_12C) { - object->work[0]++; - lbl_1_bss_12C = 0; - lbl_1_bss_4 = HuAudFXPlay(1645); - lbl_1_bss_0 = HuAudFXPlay(1646); - } - break; - - - case 1004: - fn_1_A7B4(); - if(120.0f <= lbl_1_bss_12C) { - object->work[0]++; - HuAudFXStop(lbl_1_bss_4); - } - break; - - - case 1005: - if(lbl_1_bss_2FE < 0) { - lbl_1_bss_2FE = MGSeqStartCreate(); - } else { - if(lbl_1_bss_2F8 < 0 && (MGSeqStatGet(lbl_1_bss_2FE) & 0x10)) { - fn_1_1F24(71); - } - if(!MGSeqStatGet(lbl_1_bss_2FE)) { - object->work[0]++; - lbl_1_bss_304 = 3600; - lbl_1_bss_2FC = MGSeqTimerCreate(lbl_1_bss_304/60); - lbl_1_bss_2FE = -1; - } - } - break; - - - case 1006: - MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304+59)/60); - lbl_1_bss_304--; - if(lbl_1_bss_304 < 0 || lbl_1_bss_28 >= 0) { - object->work[0] = 1007; - lbl_1_bss_304 = 3600; - lbl_1_bss_12C = 0; - } - break; - - - case 1007: - if(lbl_1_bss_2FE < 0) { - MGSeqParamSet(lbl_1_bss_2FC, 2, -1); - lbl_1_bss_2FC = -1; - lbl_1_bss_2FE = MGSeqFinishCreate(); - fn_1_1F58(100); - lbl_1_bss_12C = 0; - if(lbl_1_bss_28 >= 0) { - Hu3DModelAttrReset(object->model[0], 0x40000002); - Hu3DModelAttrReset(object->model[3], 0x40000002); - Hu3DModelAttrReset(object->model[3], 1); - } - } else { - sp74 = 0; - for(temp_r29=0; temp_r29<4; temp_r29++) { - if(((Work8F68 *)lbl_1_bss_1A4[temp_r29]->data)->unk9C >= 2003) { - sp74++; - } - } - if(sp74 == 4) { - lbl_1_bss_12C++; - } - if(lbl_1_bss_28 >= 0 && 60.0f == lbl_1_bss_12C) { - Hu3DModelAttrSet(object->model[3], 1); - Hu3DModelAttrReset(object->model[4], 1); - Hu3DModelAttrReset(object->model[4], 0x40000002); - } - if(60.0f < lbl_1_bss_12C && !MGSeqStatGet(lbl_1_bss_2FE)) { - lbl_1_bss_2FE =-1; - lbl_1_bss_12C = 0; - if(lbl_1_bss_28 < 0) { - object->work[0] = 1012; - lbl_1_bss_12C = 0; - lbl_1_bss_2FE = MGSeqDrawCreate(); - HuAudSStreamPlay(4); - } else { - object->work[0] = 1008; - fn_1_B01C(); - } - } - } - break; - - - case 1008: - lbl_1_bss_12C++; - if(60.0f < lbl_1_bss_12C) { - object->work[0]++; - lbl_1_bss_12C = 0; - HuAudFXPlay(1650); - for(temp_r29=0; temp_r29<4; temp_r29++) { - if(lbl_1_bss_28 != temp_r29) { - Hu3DCameraKill(lbl_1_data_FEC[temp_r29]); - } - } - } else { - fn_1_AD74(((lbl_1_bss_28 & 0x2) == 0) ? &lbl_1_data_107C[0][0] : &lbl_1_data_10BC[0][0]); - temp_f30 = lbl_1_bss_12C/60.0f; - temp_f31 = sind(temp_f30*90.0f)*sind(temp_f30*90.0f); - fn_1_A588(lbl_1_bss_28, &lbl_1_data_FE0, temp_f31); - - } - break; - - - case 1009: - lbl_1_bss_12C++; - if(120.0f < lbl_1_bss_12C) { - object->work[0]++; - lbl_1_bss_12C = 0; - HuAudFXPlay(1651); - } else { - temp_f30 = lbl_1_bss_12C/120.0f; - temp_f31 = sind(temp_f30*90.0f)*sind(temp_f30*90.0f); - temp_f20 = (6.0f*frandf())-3.0f; - temp_f19 = (6.0f*frandf())-3.0f; - omSetTra(object, temp_f20, -90*temp_f31, temp_f19); - Hu3DModelPosSet(object->model[3], temp_f20, -90*temp_f31, temp_f19); - Hu3DModelPosSet(object->model[4], temp_f20, -90*temp_f31, temp_f19); - } - break; - - - case 1010: - if(lbl_1_bss_1C >= 2) { - object->work[0]++; - lbl_1_bss_12C = 0; - } - break; - - - case 1011: - if(lbl_1_bss_20 > 0 && lbl_1_bss_2FE < 0) { - lbl_1_bss_2FE = MGSeqWinCreate(fn_1_4DF0(lbl_1_bss_28)->unk118, fn_1_4DF0(lbl_1_bss_28+1)->unk118, -1, -1); - HuAudSStreamPlay(1); - } - if(lbl_1_bss_24 < 20) { - if((lbl_1_bss_308 % 6) == 0) { - lbl_1_bss_24++; - fn_1_A0A8(lbl_1_bss_24); - } - } else { - if(lbl_1_bss_24 == lbl_1_bss_20) { - lbl_1_bss_12C++; - if(60.0f < lbl_1_bss_12C) { - object->work[0] = 1012; - lbl_1_bss_12C = 0; - } - } - } - break; - - - case 1012: - lbl_1_bss_12C++; - if(210.0f < lbl_1_bss_12C) { - if(lbl_1_bss_2FE < 0 || !MGSeqStatGet(lbl_1_bss_2FE)) { - fn_1_1F58(-1); - lbl_1_bss_2FE = -1; - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_E96C; - } - } - break; - - default: - OSReport("*** main mode error(%d)!!\n", object->work[0]); - break; - } - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r27 = &lbl_1_bss_130[temp_r29]; - if(temp_r27->unk0 >= 0) { - espPosSet(temp_r27->unk0, temp_r27->unk8, temp_r27->unkC); - espScaleSet(temp_r27->unk0, temp_r27->unk10, temp_r27->unk14); - espTPLvlSet(temp_r27->unk0, temp_r27->unk4); - espDispOn(temp_r27->unk0); - } - } - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r28 = lbl_1_bss_1A4[temp_r29]->data; - temp_r31 = &lbl_1_data_103C[temp_r28->unk110][0]; - if((temp_r28->unkE8 & 0x1) == 0) { - continue; - } - fn_1_B754(temp_r31, 0, 0, temp_r28->unkB4); - for(temp_r24=0; temp_r24<4; temp_r24++) { - temp_r20 = lbl_1_bss_1A4[temp_r24]->data; - fn_1_B754(temp_r31, temp_r20->unk4.x, temp_r20->unk4.z, temp_r28->unkB8[temp_r24]); - temp_r23 = lbl_1_bss_19C[temp_r24]->data; - fn_1_B754(temp_r31, temp_r23->unk0.x, temp_r23->unk0.z, temp_r28->unkC8[temp_r24][0]); - fn_1_B754(temp_r31, temp_r23->unk0.x, temp_r23->unk0.z, temp_r28->unkC8[temp_r24][1]); - if(temp_r23->unk18 & 0x1) { - espDispOn(temp_r28->unkC8[temp_r24][1]); - espDispOff(temp_r28->unkC8[temp_r24][0]); - } else { - espDispOn(temp_r28->unkC8[temp_r24][0]); - espDispOff(temp_r28->unkC8[temp_r24][1]); - } - } - } + float temp_f31; + float temp_f30; + float temp_f20; + float temp_f19; + + float *temp_r31; + s32 temp_r29; + Work8F68 *temp_r28; + Bss130Struct *temp_r27; + s32 temp_r24; + Work3284 *temp_r23; + Work8F68 *temp_r20; + + s32 sp74; + Work8F68 *sp68; + Work8F68 *sp5C; + if (omSysExitReq) { + fn_1_1F58(-1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_E96C; + } + lbl_1_bss_114 += 1.0f / 60.0f; + if (360.0f <= lbl_1_bss_114) { + lbl_1_bss_114 -= 360.0f; + } + Hu3DModelRotSet(object->model[2], 0, lbl_1_bss_114, 0); + lbl_1_bss_308++; + switch (object->work[0]) { + + case 1000: + if (!WipeStatGet()) { + object->work[0]++; + lbl_1_bss_12C = 0; + HuAudFXPlay(1644); + } + break; + + case 1001: + lbl_1_bss_12C++; + if (60.0f <= lbl_1_bss_12C) { + object->work[0]++; + lbl_1_bss_12C = 0; + } + break; + + case 1002: + lbl_1_bss_12C++; + temp_f30 = lbl_1_bss_12C / 60; + temp_f31 = 1 - (sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f)); + for (temp_r29 = 0; temp_r29 < 5; temp_r29++) { + espTPLvlSet(lbl_1_bss_10[temp_r29], temp_f31); + } + if (60.0f <= lbl_1_bss_12C) { + object->work[0]++; + lbl_1_bss_12C = 0; + for (temp_r29 = 0; temp_r29 < 5; temp_r29++) { + espKill(lbl_1_bss_10[temp_r29]); + } + } + break; + + case 1003: + lbl_1_bss_12C++; + temp_f30 = lbl_1_bss_12C / 60; + temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f); + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + lbl_1_bss_130[temp_r29].unk4 = temp_f31; + } + if (60.0f <= lbl_1_bss_12C) { + object->work[0]++; + lbl_1_bss_12C = 0; + lbl_1_bss_4 = HuAudFXPlay(1645); + lbl_1_bss_0 = HuAudFXPlay(1646); + } + break; + + case 1004: + fn_1_A7B4(); + if (120.0f <= lbl_1_bss_12C) { + object->work[0]++; + HuAudFXStop(lbl_1_bss_4); + } + break; + + case 1005: + if (lbl_1_bss_2FE < 0) { + lbl_1_bss_2FE = MGSeqStartCreate(); + } + else { + if (lbl_1_bss_2F8 < 0 && (MGSeqStatGet(lbl_1_bss_2FE) & 0x10)) { + fn_1_1F24(71); + } + if (!MGSeqStatGet(lbl_1_bss_2FE)) { + object->work[0]++; + lbl_1_bss_304 = 3600; + lbl_1_bss_2FC = MGSeqTimerCreate(lbl_1_bss_304 / 60); + lbl_1_bss_2FE = -1; + } + } + break; + + case 1006: + MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + 59) / 60); + lbl_1_bss_304--; + if (lbl_1_bss_304 < 0 || lbl_1_bss_28 >= 0) { + object->work[0] = 1007; + lbl_1_bss_304 = 3600; + lbl_1_bss_12C = 0; + } + break; + + case 1007: + if (lbl_1_bss_2FE < 0) { + MGSeqParamSet(lbl_1_bss_2FC, 2, -1); + lbl_1_bss_2FC = -1; + lbl_1_bss_2FE = MGSeqFinishCreate(); + fn_1_1F58(100); + lbl_1_bss_12C = 0; + if (lbl_1_bss_28 >= 0) { + Hu3DModelAttrReset(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[3], 0x40000002); + Hu3DModelAttrReset(object->model[3], 1); + } + } + else { + sp74 = 0; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + if (((Work8F68 *)lbl_1_bss_1A4[temp_r29]->data)->unk9C >= 2003) { + sp74++; + } + } + if (sp74 == 4) { + lbl_1_bss_12C++; + } + if (lbl_1_bss_28 >= 0 && 60.0f == lbl_1_bss_12C) { + Hu3DModelAttrSet(object->model[3], 1); + Hu3DModelAttrReset(object->model[4], 1); + Hu3DModelAttrReset(object->model[4], 0x40000002); + } + if (60.0f < lbl_1_bss_12C && !MGSeqStatGet(lbl_1_bss_2FE)) { + lbl_1_bss_2FE = -1; + lbl_1_bss_12C = 0; + if (lbl_1_bss_28 < 0) { + object->work[0] = 1012; + lbl_1_bss_12C = 0; + lbl_1_bss_2FE = MGSeqDrawCreate(); + HuAudSStreamPlay(4); + } + else { + object->work[0] = 1008; + fn_1_B01C(); + } + } + } + break; + + case 1008: + lbl_1_bss_12C++; + if (60.0f < lbl_1_bss_12C) { + object->work[0]++; + lbl_1_bss_12C = 0; + HuAudFXPlay(1650); + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + if (lbl_1_bss_28 != temp_r29) { + Hu3DCameraKill(lbl_1_data_FEC[temp_r29]); + } + } + } + else { + fn_1_AD74(((lbl_1_bss_28 & 0x2) == 0) ? &lbl_1_data_107C[0][0] : &lbl_1_data_10BC[0][0]); + temp_f30 = lbl_1_bss_12C / 60.0f; + temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f); + fn_1_A588(lbl_1_bss_28, &lbl_1_data_FE0, temp_f31); + } + break; + + case 1009: + lbl_1_bss_12C++; + if (120.0f < lbl_1_bss_12C) { + object->work[0]++; + lbl_1_bss_12C = 0; + HuAudFXPlay(1651); + } + else { + temp_f30 = lbl_1_bss_12C / 120.0f; + temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f); + temp_f20 = (6.0f * frandf()) - 3.0f; + temp_f19 = (6.0f * frandf()) - 3.0f; + omSetTra(object, temp_f20, -90 * temp_f31, temp_f19); + Hu3DModelPosSet(object->model[3], temp_f20, -90 * temp_f31, temp_f19); + Hu3DModelPosSet(object->model[4], temp_f20, -90 * temp_f31, temp_f19); + } + break; + + case 1010: + if (lbl_1_bss_1C >= 2) { + object->work[0]++; + lbl_1_bss_12C = 0; + } + break; + + case 1011: + if (lbl_1_bss_20 > 0 && lbl_1_bss_2FE < 0) { + lbl_1_bss_2FE = MGSeqWinCreate(fn_1_4DF0(lbl_1_bss_28)->unk118, fn_1_4DF0(lbl_1_bss_28 + 1)->unk118, -1, -1); + HuAudSStreamPlay(1); + } + if (lbl_1_bss_24 < 20) { + if ((lbl_1_bss_308 % 6) == 0) { + lbl_1_bss_24++; + fn_1_A0A8(lbl_1_bss_24); + } + } + else { + if (lbl_1_bss_24 == lbl_1_bss_20) { + lbl_1_bss_12C++; + if (60.0f < lbl_1_bss_12C) { + object->work[0] = 1012; + lbl_1_bss_12C = 0; + } + } + } + break; + + case 1012: + lbl_1_bss_12C++; + if (210.0f < lbl_1_bss_12C) { + if (lbl_1_bss_2FE < 0 || !MGSeqStatGet(lbl_1_bss_2FE)) { + fn_1_1F58(-1); + lbl_1_bss_2FE = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_E96C; + } + } + break; + + default: + OSReport("*** main mode error(%d)!!\n", object->work[0]); + break; + } + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r27 = &lbl_1_bss_130[temp_r29]; + if (temp_r27->unk0 >= 0) { + espPosSet(temp_r27->unk0, temp_r27->unk8, temp_r27->unkC); + espScaleSet(temp_r27->unk0, temp_r27->unk10, temp_r27->unk14); + espTPLvlSet(temp_r27->unk0, temp_r27->unk4); + espDispOn(temp_r27->unk0); + } + } + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r28 = lbl_1_bss_1A4[temp_r29]->data; + temp_r31 = &lbl_1_data_103C[temp_r28->unk110][0]; + if ((temp_r28->unkE8 & 0x1) == 0) { + continue; + } + fn_1_B754(temp_r31, 0, 0, temp_r28->unkB4); + for (temp_r24 = 0; temp_r24 < 4; temp_r24++) { + temp_r20 = lbl_1_bss_1A4[temp_r24]->data; + fn_1_B754(temp_r31, temp_r20->unk4.x, temp_r20->unk4.z, temp_r28->unkB8[temp_r24]); + temp_r23 = lbl_1_bss_19C[temp_r24]->data; + fn_1_B754(temp_r31, temp_r23->unk0.x, temp_r23->unk0.z, temp_r28->unkC8[temp_r24][0]); + fn_1_B754(temp_r31, temp_r23->unk0.x, temp_r23->unk0.z, temp_r28->unkC8[temp_r24][1]); + if (temp_r23->unk18 & 0x1) { + espDispOn(temp_r28->unkC8[temp_r24][1]); + espDispOff(temp_r28->unkC8[temp_r24][0]); + } + else { + espDispOn(temp_r28->unkC8[temp_r24][0]); + espDispOff(temp_r28->unkC8[temp_r24][1]); + } + } + } } void fn_1_D5E8(omObjData *object) { - float temp_f31; - float temp_f30; - s32 temp_r30; - Work3284 *temp_r29; - temp_f31 = 288; - temp_f30 = 240; - lbl_1_bss_10[0] = espEntry(lbl_1_data_1388[lbl_1_bss_190->unk0+lbl_1_bss_34], 132, 0); - espPosSet(lbl_1_bss_10[0], temp_f31, temp_f30); - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r29 = lbl_1_bss_19C[temp_r30]->data; - lbl_1_bss_10[temp_r30+1] = espEntry(lbl_1_data_1310[temp_r30], 131, 0); - espPosSet(lbl_1_bss_10[temp_r30+1], temp_f31+(0.07f*temp_r29->unk0.x), temp_f30+(0.07f*temp_r29->unk0.z)); - } - for(temp_r30=0; temp_r30<5; temp_r30++) { - espDrawNoSet(lbl_1_bss_10[temp_r30], 0); - espTPLvlSet(lbl_1_bss_10[temp_r30], 1.0f); - espDispOn(lbl_1_bss_10[temp_r30]); - } - object->model[0] = Hu3DModelCreateFile(lbl_1_bss_190->unk8[1]); - Hu3DModelCameraSet(object->model[0], 15); - Hu3DModelAttrSet(object->model[0], 0x4001); - Hu3DModelAttrSet(object->model[0], 0x40000002); - Hu3DModelAttrReset(object->model[0], 0x40000001); - Hu3DModelLayerSet(object->model[0], 0); - Hu3DModelShadowMapSet(object->model[0]); - omSetTra(object, 0, 0, 0); - omSetRot(object, 0, -90.0f*lbl_1_bss_34, 0); - object->model[1] = Hu3DModelCreateFile(0x3C0022); - Hu3DModelCameraSet(object->model[1], 15); - Hu3DModelAttrSet(object->model[1], 0x4001); - Hu3DModelAttrSet(object->model[1], 0x40000002); - Hu3DModelLayerSet(object->model[1], 0); - Hu3DModelShadowMapSet(object->model[1]); - Hu3DModelPosSet(object->model[1], 0, 0, 0); - object->model[2] = Hu3DModelCreateFile(0x3C0023); - Hu3DModelCameraSet(object->model[2], 15); - Hu3DModelAttrSet(object->model[2], 0x4001); - Hu3DModelAttrSet(object->model[2], 0x40000002); - Hu3DModelLayerSet(object->model[2], 0); - Hu3DModelPosSet(object->model[2], 0, 0, 0); - object->model[3] = Hu3DModelCreateFile(lbl_1_bss_190->unk8[2]); - Hu3DModelCameraSet(object->model[3], 15); - Hu3DModelAttrSet(object->model[3], 0x4001); - Hu3DModelAttrSet(object->model[3], 0x40000002); - Hu3DModelAttrReset(object->model[3], 0x40000001); - Hu3DModelLayerSet(object->model[3], 1); - Hu3DModelPosSet(object->model[3], 0, 0, 0); - Hu3DModelRotSet(object->model[3], 0, -90.0f*lbl_1_bss_34, 0); - object->model[4] = Hu3DModelCreateFile(lbl_1_bss_190->unk8[3]); - Hu3DModelCameraSet(object->model[4], 15); - Hu3DModelAttrSet(object->model[4], 0x4001); - Hu3DModelAttrSet(object->model[4], 0x40000003); - Hu3DModelLayerSet(object->model[4], 1); - Hu3DModelPosSet(object->model[4], 0, 0, 0); - Hu3DModelRotSet(object->model[4], 0, -90.0f*lbl_1_bss_34, 0); - lbl_1_bss_114 = 45; - for(temp_r30=0; temp_r30<3; temp_r30++) { - Hu3DModelAttrReset(object->model[temp_r30], 1); - } - object->work[0] = 1000; - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_B8E0; + float temp_f31; + float temp_f30; + s32 temp_r30; + Work3284 *temp_r29; + temp_f31 = 288; + temp_f30 = 240; + lbl_1_bss_10[0] = espEntry(lbl_1_data_1388[lbl_1_bss_190->unk0 + lbl_1_bss_34], 132, 0); + espPosSet(lbl_1_bss_10[0], temp_f31, temp_f30); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r29 = lbl_1_bss_19C[temp_r30]->data; + lbl_1_bss_10[temp_r30 + 1] = espEntry(lbl_1_data_1310[temp_r30], 131, 0); + espPosSet(lbl_1_bss_10[temp_r30 + 1], temp_f31 + (0.07f * temp_r29->unk0.x), temp_f30 + (0.07f * temp_r29->unk0.z)); + } + for (temp_r30 = 0; temp_r30 < 5; temp_r30++) { + espDrawNoSet(lbl_1_bss_10[temp_r30], 0); + espTPLvlSet(lbl_1_bss_10[temp_r30], 1.0f); + espDispOn(lbl_1_bss_10[temp_r30]); + } + object->model[0] = Hu3DModelCreateFile(lbl_1_bss_190->unk8[1]); + Hu3DModelCameraSet(object->model[0], 15); + Hu3DModelAttrSet(object->model[0], 0x4001); + Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DModelLayerSet(object->model[0], 0); + Hu3DModelShadowMapSet(object->model[0]); + omSetTra(object, 0, 0, 0); + omSetRot(object, 0, -90.0f * lbl_1_bss_34, 0); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M429, 0x22)); + Hu3DModelCameraSet(object->model[1], 15); + Hu3DModelAttrSet(object->model[1], 0x4001); + Hu3DModelAttrSet(object->model[1], 0x40000002); + Hu3DModelLayerSet(object->model[1], 0); + Hu3DModelShadowMapSet(object->model[1]); + Hu3DModelPosSet(object->model[1], 0, 0, 0); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M429, 0x23)); + Hu3DModelCameraSet(object->model[2], 15); + Hu3DModelAttrSet(object->model[2], 0x4001); + Hu3DModelAttrSet(object->model[2], 0x40000002); + Hu3DModelLayerSet(object->model[2], 0); + Hu3DModelPosSet(object->model[2], 0, 0, 0); + object->model[3] = Hu3DModelCreateFile(lbl_1_bss_190->unk8[2]); + Hu3DModelCameraSet(object->model[3], 15); + Hu3DModelAttrSet(object->model[3], 0x4001); + Hu3DModelAttrSet(object->model[3], 0x40000002); + Hu3DModelAttrReset(object->model[3], 0x40000001); + Hu3DModelLayerSet(object->model[3], 1); + Hu3DModelPosSet(object->model[3], 0, 0, 0); + Hu3DModelRotSet(object->model[3], 0, -90.0f * lbl_1_bss_34, 0); + object->model[4] = Hu3DModelCreateFile(lbl_1_bss_190->unk8[3]); + Hu3DModelCameraSet(object->model[4], 15); + Hu3DModelAttrSet(object->model[4], 0x4001); + Hu3DModelAttrSet(object->model[4], 0x40000003); + Hu3DModelLayerSet(object->model[4], 1); + Hu3DModelPosSet(object->model[4], 0, 0, 0); + Hu3DModelRotSet(object->model[4], 0, -90.0f * lbl_1_bss_34, 0); + lbl_1_bss_114 = 45; + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + Hu3DModelAttrReset(object->model[temp_r30], 1); + } + object->work[0] = 1000; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_B8E0; } void ObjectSetup(void) { - s32 temp_r31; - omObjData *temp_r28; - Work8F68 *temp_r27; - s32 temp_r22; - s32 temp_r17; - Vec sp2C; - s32 sp1C; - s32 sp18; - s32 sp14; - - OSReport("******* M429 ObjectSetup *********\n"); - nMap = 0; - nChar = 0; - lbl_1_bss_33C = omInitObjMan(100, 8192); - omGameSysInit(lbl_1_bss_33C); - lbl_1_bss_308 = 0; - lbl_1_bss_2FE = -1; - lbl_1_bss_2FC = -1; - lbl_1_bss_28 = -1; - lbl_1_bss_24 =0 ; - lbl_1_bss_20 = 0; - lbl_1_bss_1C = 0; - lbl_1_bss_2F8 = -1; - lbl_1_bss_4 = -1; - lbl_1_bss_0 = -1; - lbl_1_bss_11C = 0; - lbl_1_bss_120 = 850; - lbl_1_bss_118 = 450; - for(temp_r31=0; temp_r31<2; temp_r31++) { - lbl_1_bss_2C[temp_r31] = 0; - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - lbl_1_bss_130[temp_r31].unk0 = -1; - lbl_1_bss_130[temp_r31].unk4 = 0; - } - lbl_1_bss_34 = frandmod(4); - fn_1_2684(); - fn_1_A118(); - temp_r17 = Hu3DGLightCreateV(&lbl_1_data_111C, &lbl_1_data_1128, &lbl_1_data_1134); - Hu3DGLightStaticSet(temp_r17, 1); - Hu3DGLightInfinitytSet(temp_r17); - Hu3DShadowCreate(30, 10, 20000); - Hu3DShadowTPLvlSet(0.5f); - VECNormalize(&lbl_1_data_1138, &sp2C); - Hu3DShadowPosSet(&lbl_1_data_1138, &sp2C, &lbl_1_data_1144); - omMakeGroupEx(lbl_1_bss_33C, 0, 4); - lbl_1_bss_1A4 = omGetGroupMemberListEx(lbl_1_bss_33C, 0); - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r28 = omAddObjEx(lbl_1_bss_33C, 100, 1, 10, 0, fn_1_8F68); - temp_r28->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work8F68), MEMORY_DEFAULT_NUM); - temp_r28->work[0] = temp_r31; - temp_r27 = temp_r28->data; - temp_r27->unk110 = -1; - temp_r27->unk114 = temp_r28->work[0]; - temp_r27->unk120 = GWPlayerCfg[temp_r27->unk114].group; - } - (void)&sp14; + s32 temp_r31; + omObjData *temp_r28; + Work8F68 *temp_r27; + s32 temp_r22; + s32 temp_r17; + Vec sp2C; + s32 sp1C; + s32 sp18; + s32 sp14; - - for(temp_r31=0; temp_r31<4; temp_r31++) { - sp14 = -1; - sp18 = 40; - for(temp_r22=0; temp_r22<4; temp_r22++) { - temp_r27 = lbl_1_bss_1A4[temp_r22]->data; - if(temp_r27->unk110 < 0) { - sp1C = temp_r27->unk114+(temp_r27->unk120*4); - if(sp18 > sp1C) { - sp18 = sp1C; - sp14 = temp_r22; - } - } - } - ((Work8F68 *)lbl_1_bss_1A4[sp14]->data)->unk110 = temp_r31; - } - omMakeGroupEx(lbl_1_bss_33C, 1, 4); - lbl_1_bss_1A0 = omGetGroupMemberListEx(lbl_1_bss_33C, 1); - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r28 = omAddObjEx(lbl_1_bss_33C, 101, 2, 1, 1, fn_1_99F0); - temp_r28->work[0] = temp_r31; - } - omMakeGroupEx(lbl_1_bss_33C, 2, 4); - lbl_1_bss_19C = omGetGroupMemberListEx(lbl_1_bss_33C, 2); - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r28 = omAddObjEx(lbl_1_bss_33C, 102, 2, 0, 2, fn_1_33F8); - temp_r28->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work3284), MEMORY_DEFAULT_NUM); - temp_r28->work[0] = temp_r31; - } - lbl_1_bss_1A = Hu3DModelCreateFile(0x3C002F); - Hu3DModelAttrSet(lbl_1_bss_1A, 1); - Hu3DModelAttrSet(lbl_1_bss_1A, 0x40000003); - omMakeGroupEx(lbl_1_bss_33C, 3, 20); - lbl_1_bss_198 = omGetGroupMemberListEx(lbl_1_bss_33C, 3); - lbl_1_bss_1A8 = omAddObjEx(lbl_1_bss_33C, 104, 5, 0, -1, fn_1_31AC); - MapObject[nMap++] = lbl_1_bss_1A8; - lbl_1_bss_1AC = omAddObjEx(lbl_1_bss_33C, 105, 5, 0, -1, fn_1_D5E8); - lbl_1_bss_C = HuSprAnimReadFile(0x3C003F); - HuSprAnimLock(lbl_1_bss_C); - lbl_1_bss_8 = Hu3DParManCreate(lbl_1_bss_C, 20, &lbl_1_data_13E8); - Hu3DParManAttrSet(lbl_1_bss_8, 1); + OSReport("******* M429 ObjectSetup *********\n"); + nMap = 0; + nChar = 0; + lbl_1_bss_33C = omInitObjMan(100, 8192); + omGameSysInit(lbl_1_bss_33C); + lbl_1_bss_308 = 0; + lbl_1_bss_2FE = -1; + lbl_1_bss_2FC = -1; + lbl_1_bss_28 = -1; + lbl_1_bss_24 = 0; + lbl_1_bss_20 = 0; + lbl_1_bss_1C = 0; + lbl_1_bss_2F8 = -1; + lbl_1_bss_4 = -1; + lbl_1_bss_0 = -1; + lbl_1_bss_11C = 0; + lbl_1_bss_120 = 850; + lbl_1_bss_118 = 450; + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + lbl_1_bss_2C[temp_r31] = 0; + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + lbl_1_bss_130[temp_r31].unk0 = -1; + lbl_1_bss_130[temp_r31].unk4 = 0; + } + lbl_1_bss_34 = frandmod(4); + fn_1_2684(); + fn_1_A118(); + temp_r17 = Hu3DGLightCreateV(&lbl_1_data_111C, &lbl_1_data_1128, &lbl_1_data_1134); + Hu3DGLightStaticSet(temp_r17, 1); + Hu3DGLightInfinitytSet(temp_r17); + Hu3DShadowCreate(30, 10, 20000); + Hu3DShadowTPLvlSet(0.5f); + VECNormalize(&lbl_1_data_1138, &sp2C); + Hu3DShadowPosSet(&lbl_1_data_1138, &sp2C, &lbl_1_data_1144); + omMakeGroupEx(lbl_1_bss_33C, 0, 4); + lbl_1_bss_1A4 = omGetGroupMemberListEx(lbl_1_bss_33C, 0); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r28 = omAddObjEx(lbl_1_bss_33C, 100, 1, 10, 0, fn_1_8F68); + temp_r28->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work8F68), MEMORY_DEFAULT_NUM); + temp_r28->work[0] = temp_r31; + temp_r27 = temp_r28->data; + temp_r27->unk110 = -1; + temp_r27->unk114 = temp_r28->work[0]; + temp_r27->unk120 = GWPlayerCfg[temp_r27->unk114].group; + } + (void)&sp14; + + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + sp14 = -1; + sp18 = 40; + for (temp_r22 = 0; temp_r22 < 4; temp_r22++) { + temp_r27 = lbl_1_bss_1A4[temp_r22]->data; + if (temp_r27->unk110 < 0) { + sp1C = temp_r27->unk114 + (temp_r27->unk120 * 4); + if (sp18 > sp1C) { + sp18 = sp1C; + sp14 = temp_r22; + } + } + } + ((Work8F68 *)lbl_1_bss_1A4[sp14]->data)->unk110 = temp_r31; + } + omMakeGroupEx(lbl_1_bss_33C, 1, 4); + lbl_1_bss_1A0 = omGetGroupMemberListEx(lbl_1_bss_33C, 1); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r28 = omAddObjEx(lbl_1_bss_33C, 101, 2, 1, 1, fn_1_99F0); + temp_r28->work[0] = temp_r31; + } + omMakeGroupEx(lbl_1_bss_33C, 2, 4); + lbl_1_bss_19C = omGetGroupMemberListEx(lbl_1_bss_33C, 2); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r28 = omAddObjEx(lbl_1_bss_33C, 102, 2, 0, 2, fn_1_33F8); + temp_r28->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work3284), MEMORY_DEFAULT_NUM); + temp_r28->work[0] = temp_r31; + } + lbl_1_bss_1A = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M429, 0x2F)); + Hu3DModelAttrSet(lbl_1_bss_1A, 1); + Hu3DModelAttrSet(lbl_1_bss_1A, 0x40000003); + omMakeGroupEx(lbl_1_bss_33C, 3, 20); + lbl_1_bss_198 = omGetGroupMemberListEx(lbl_1_bss_33C, 3); + lbl_1_bss_1A8 = omAddObjEx(lbl_1_bss_33C, 104, 5, 0, -1, fn_1_31AC); + MapObject[nMap++] = lbl_1_bss_1A8; + lbl_1_bss_1AC = omAddObjEx(lbl_1_bss_33C, 105, 5, 0, -1, fn_1_D5E8); + lbl_1_bss_C = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M429, 0x3F)); + HuSprAnimLock(lbl_1_bss_C); + lbl_1_bss_8 = Hu3DParManCreate(lbl_1_bss_C, 20, &lbl_1_data_13E8); + Hu3DParManAttrSet(lbl_1_bss_8, 1); } void fn_1_E96C(omObjData *object) { - s32 temp_r31; - if(lbl_1_bss_0 >= 0) { - HuAudFXStop(lbl_1_bss_0); - lbl_1_bss_0 = -1; - } - if(WipeStatGet()) { - return; - } - if(lbl_1_bss_2FE >= 0) { - MGSeqKill(lbl_1_bss_2FE); - } - if(lbl_1_bss_2FC >= 0) { - MGSeqKill(lbl_1_bss_2FC); - } - MGSeqKillAll(); - HuAudAllStop(); - for(temp_r31=0; temp_r31<4; temp_r31++) { - CharModelKill(lbl_1_data_0[GWPlayerCfg[temp_r31].character]); - } - omOvlReturnEx(1, 1); + s32 temp_r31; + if (lbl_1_bss_0 >= 0) { + HuAudFXStop(lbl_1_bss_0); + lbl_1_bss_0 = -1; + } + if (WipeStatGet()) { + return; + } + if (lbl_1_bss_2FE >= 0) { + MGSeqKill(lbl_1_bss_2FE); + } + if (lbl_1_bss_2FC >= 0) { + MGSeqKill(lbl_1_bss_2FC); + } + MGSeqKillAll(); + HuAudAllStop(); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + CharModelKill(lbl_1_data_0[GWPlayerCfg[temp_r31].character]); + } + omOvlReturnEx(1, 1); } diff --git a/src/REL/m431Dll/main.c b/src/REL/m431Dll/main.c index 44e0cea4..e95d89b0 100644 --- a/src/REL/m431Dll/main.c +++ b/src/REL/m431Dll/main.c @@ -2,15 +2,15 @@ #include "game/hsfmotion.h" #include "game/msm.h" +#include "game/audio.h" #include "game/object.h" #include "game/objsub.h" -#include "game/audio.h" -#include "game/wipe.h" #include "game/pad.h" +#include "game/wipe.h" -#include "game/sprite.h" -#include "game/minigame_seq.h" #include "game/gamework_data.h" +#include "game/minigame_seq.h" +#include "game/sprite.h" #include "ext_math.h" @@ -18,27 +18,26 @@ #include "rel_sqrt_consts.h" - typedef struct bss_5C_struct { - s16 unk0[6]; - s16 unkC[2]; - s16 unk10; - s16 unk12; - s16 unk14; - s16 unk16; - float unk18; - float unk1C; - float unk20; - float unk24; - float unk28[2]; - float unk30; - float unk34; + s16 unk0[6]; + s16 unkC[2]; + s16 unk10; + s16 unk12; + s16 unk14; + s16 unk16; + float unk18; + float unk1C; + float unk20; + float unk24; + float unk28[2]; + float unk30; + float unk34; } Bss5CStruct; typedef struct camera_view_params { - float zoom; - Vec pos; - Vec rot; + float zoom; + Vec pos; + Vec rot; } CameraViewParams; Bss5CStruct lbl_1_bss_5C; @@ -61,212 +60,183 @@ s8 lbl_1_bss_0; Vec lbl_1_data_0 = { 800, 1300, 1000 }; Vec lbl_1_data_C = { 0, 0, 0 }; GXColor lbl_1_data_18 = { 255, 255, 255, 255 }; -Vec lbl_1_data_1C = { 10, 45, 0}; +Vec lbl_1_data_1C = { 10, 45, 0 }; Vec lbl_1_data_28 = { 1300, 2500, 1300 }; Vec lbl_1_data_34 = { 0, 1, 0 }; Vec lbl_1_data_40 = { 0, 0, -1200 }; -CameraViewParams lbl_1_data_4C[4] = { - { - 760, - { -324, -97, 0 }, - { -43, 0, 0 } - }, - { - 800, - { 325, -64, 0 }, - { -43, -20, 0 } - }, - { - 1460, - { 0, 57, 0 }, - { -37, 0, 0 } - }, - { - 880, - { -381, 25, 0 }, - { -14, 10, 0 } - } -}; +CameraViewParams lbl_1_data_4C[4] = { { 760, { -324, -97, 0 }, { -43, 0, 0 } }, { 800, { 325, -64, 0 }, { -43, -20, 0 } }, + { 1460, { 0, 57, 0 }, { -37, 0, 0 } }, { 880, { -381, 25, 0 }, { -14, 10, 0 } } }; -s32 lbl_1_data_BC[3] = { - -32, - -2, - 28 -}; +s32 lbl_1_data_BC[3] = { -32, -2, 28 }; -s32 lbl_1_data_C8[2] = { - 90, - 486 -}; +s32 lbl_1_data_C8[2] = { 90, 486 }; void fn_1_424(omObjData *object); void fn_1_A44(omObjData *object); void fn_1_2110(omObjData *object); - void ObjectSetup(void) { - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - Process *temp_r31; - LightData *temp_r30; - CameraData *temp_r29; - - Hu3DLightAllKill(); - lbl_1_bss_28 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_18); - Hu3DGLightInfinitytSet(lbl_1_bss_28); - temp_r30 = &Hu3DGlobalLight[lbl_1_bss_28]; - temp_r30->unk_00 |= 0x8000; - sp2C.x = sp2C.y = sp2C.z = 0; - Hu3DGLightPosAimSetV(lbl_1_bss_28, &lbl_1_data_0, &sp2C); - Hu3DShadowCreate(45, 20, 10000); - Hu3DShadowTPLvlSet(0.425f); - Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); - temp_r31 = omInitObjMan(50, 8192); - omGameSysInit(temp_r31); - HuAudSndGrpSet(56); - Hu3DCameraCreate(1); - Hu3DCameraPerspectiveSet(1, 41.5, 5, 5000, 1.2f); - omAddObjEx(temp_r31, 32730, 0, 0, -1, omOutView); - temp_r29 = &Hu3DCamera[0]; - temp_r29->fov = -1; - sp14.x = 0; - sp14.y = 374; - sp14.z = 1086; - sp20.x = 0; - sp20.y = 568; - sp20.z = -1316; - sp8.z = sp20.x-sp14.x; - sp8.y = sp20.y-sp14.y; - sp8.x = sp20.z-sp14.z; - CRot.x = lbl_1_data_4C[0].rot.x; - CRot.y = lbl_1_data_4C[0].rot.y; - CRot.z = lbl_1_data_4C[0].rot.z; - Center.x = lbl_1_data_4C[0].pos.x; - Center.y = lbl_1_data_4C[0].pos.y; - Center.z = lbl_1_data_4C[0].pos.z; - CZoom = lbl_1_data_4C[0].zoom; - omAddObjEx(temp_r31, 1000, 0, 0, -1, fn_1_424); - lbl_1_bss_30 = omAddObjEx(temp_r31, 10, 9, 0, -1, fn_1_A44); - lbl_1_bss_2C = omAddObjEx(temp_r31, 50, 9, 9, -1, fn_1_2110); - Hu3DBGColorSet(0, 0, 0); - fn_1_7ABC(temp_r31); + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + Process *temp_r31; + LightData *temp_r30; + CameraData *temp_r29; + + Hu3DLightAllKill(); + lbl_1_bss_28 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_18); + Hu3DGLightInfinitytSet(lbl_1_bss_28); + temp_r30 = &Hu3DGlobalLight[lbl_1_bss_28]; + temp_r30->unk_00 |= 0x8000; + sp2C.x = sp2C.y = sp2C.z = 0; + Hu3DGLightPosAimSetV(lbl_1_bss_28, &lbl_1_data_0, &sp2C); + Hu3DShadowCreate(45, 20, 10000); + Hu3DShadowTPLvlSet(0.425f); + Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); + temp_r31 = omInitObjMan(50, 8192); + omGameSysInit(temp_r31); + HuAudSndGrpSet(56); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 41.5, 5, 5000, 1.2f); + omAddObjEx(temp_r31, 32730, 0, 0, -1, omOutView); + temp_r29 = &Hu3DCamera[0]; + temp_r29->fov = -1; + sp14.x = 0; + sp14.y = 374; + sp14.z = 1086; + sp20.x = 0; + sp20.y = 568; + sp20.z = -1316; + sp8.z = sp20.x - sp14.x; + sp8.y = sp20.y - sp14.y; + sp8.x = sp20.z - sp14.z; + CRot.x = lbl_1_data_4C[0].rot.x; + CRot.y = lbl_1_data_4C[0].rot.y; + CRot.z = lbl_1_data_4C[0].rot.z; + Center.x = lbl_1_data_4C[0].pos.x; + Center.y = lbl_1_data_4C[0].pos.y; + Center.z = lbl_1_data_4C[0].pos.z; + CZoom = lbl_1_data_4C[0].zoom; + omAddObjEx(temp_r31, 1000, 0, 0, -1, fn_1_424); + lbl_1_bss_30 = omAddObjEx(temp_r31, 10, 9, 0, -1, fn_1_A44); + lbl_1_bss_2C = omAddObjEx(temp_r31, 50, 9, 9, -1, fn_1_2110); + Hu3DBGColorSet(0, 0, 0); + fn_1_7ABC(temp_r31); } void fn_1_49C(omObjData *object); void fn_1_424(omObjData *object) { - if(omSysExitReq || lbl_1_bss_0) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - HuAudSeqAllFadeOut(100); - object->func = fn_1_49C; - } + if (omSysExitReq || lbl_1_bss_0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudSeqAllFadeOut(100); + object->func = fn_1_49C; + } } void fn_1_71B8(s16 arg0); void fn_1_49C(omObjData *object) { - s16 i; - if(WipeStatGet()) { - return; - } - fn_1_71B8(lbl_1_bss_30->model[0]); - for(i=0; i<6; i++) { - fn_1_71B8(lbl_1_bss_5C.unk0[i]); - } - HuSprGrpKill(lbl_1_bss_30->model[1]); - HuSprGrpKill(lbl_1_bss_30->model[2]); - HuSprGrpKill(lbl_1_bss_30->model[3]); - MGSeqKillAll(); - HuAudFadeOut(1); - omOvlReturnEx(1, 1); - + s16 i; + if (WipeStatGet()) { + return; + } + fn_1_71B8(lbl_1_bss_30->model[0]); + for (i = 0; i < 6; i++) { + fn_1_71B8(lbl_1_bss_5C.unk0[i]); + } + HuSprGrpKill(lbl_1_bss_30->model[1]); + HuSprGrpKill(lbl_1_bss_30->model[2]); + HuSprGrpKill(lbl_1_bss_30->model[3]); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); } float fn_1_65CC(float arg0, float arg1, float arg2); u8 fn_1_57C(void) { - float temp_f31; - float temp_f30; - CameraViewParams *temp_r31; - s32 temp_r30; - temp_r31 = &lbl_1_data_4C[0]; - temp_r30 = 0; - lbl_1_bss_8++; - temp_f30 = lbl_1_bss_8/90.0f; - if(lbl_1_bss_8 > 90) { - lbl_1_bss_8 = 0; - temp_f30 = 1; - temp_r30 = 1; - } - temp_f31 = sind(90*temp_f30)*sind(90*temp_f30); - CZoom = fn_1_65CC(temp_r31[0].zoom, temp_r31[2].zoom, temp_f31); - Center.x = fn_1_65CC(temp_r31[0].pos.x, temp_r31[2].pos.x, temp_f31); - Center.y = fn_1_65CC(temp_r31[0].pos.y, temp_r31[2].pos.y, temp_f31); - Center.z = fn_1_65CC(temp_r31[0].pos.z, temp_r31[2].pos.z, temp_f31); - CRot.x = fn_1_65CC(temp_r31[0].rot.x, temp_r31[2].rot.x, temp_f31); - CRot.y = fn_1_65CC(temp_r31[0].rot.y, temp_r31[2].rot.y, temp_f31); - CRot.z = fn_1_65CC(temp_r31[0].rot.z, temp_r31[2].rot.z, temp_f31); - return temp_r30; + float temp_f31; + float temp_f30; + CameraViewParams *temp_r31; + s32 temp_r30; + temp_r31 = &lbl_1_data_4C[0]; + temp_r30 = 0; + lbl_1_bss_8++; + temp_f30 = lbl_1_bss_8 / 90.0f; + if (lbl_1_bss_8 > 90) { + lbl_1_bss_8 = 0; + temp_f30 = 1; + temp_r30 = 1; + } + temp_f31 = sind(90 * temp_f30) * sind(90 * temp_f30); + CZoom = fn_1_65CC(temp_r31[0].zoom, temp_r31[2].zoom, temp_f31); + Center.x = fn_1_65CC(temp_r31[0].pos.x, temp_r31[2].pos.x, temp_f31); + Center.y = fn_1_65CC(temp_r31[0].pos.y, temp_r31[2].pos.y, temp_f31); + Center.z = fn_1_65CC(temp_r31[0].pos.z, temp_r31[2].pos.z, temp_f31); + CRot.x = fn_1_65CC(temp_r31[0].rot.x, temp_r31[2].rot.x, temp_f31); + CRot.y = fn_1_65CC(temp_r31[0].rot.y, temp_r31[2].rot.y, temp_f31); + CRot.z = fn_1_65CC(temp_r31[0].rot.z, temp_r31[2].rot.z, temp_f31); + return temp_r30; } typedef struct work_a44 { - u16 unk0; - s16 unk2; - s16 unk4; - s16 unk6[2]; - s16 unkA; - s32 unkC; - s16 unk10; - s16 unk12; - s16 unk14; - s16 unk16; + u16 unk0; + s16 unk2; + s16 unk4; + s16 unk6[2]; + s16 unkA; + s32 unkC; + s16 unk10; + s16 unk12; + s16 unk14; + s16 unk16; } WorkA44; s32 fn_1_7B0(void) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - CameraViewParams *temp_r31; - WorkA44 *temp_r30; - s32 temp_r29; - temp_r30 = lbl_1_bss_30->data; - temp_r31 = &lbl_1_data_4C[0]; - temp_r29 = 0; - lbl_1_bss_8++; - temp_f30 = lbl_1_bss_8/120.0f; - if(lbl_1_bss_8 > 120) { - lbl_1_bss_8 = 120; - temp_f30 = 1; - temp_r29 = 1; - } - temp_f31 = sind(90*temp_f30)*sind(90*temp_f30); - if(temp_r30->unk4 == 0) { - temp_f29 = temp_r31[3].pos.x; - temp_f28 = temp_r31[3].rot.y; - } else { - temp_f29 = -temp_r31[3].pos.x; - temp_f28 = -temp_r31[3].rot.y; - } - CZoom = fn_1_65CC(temp_r31[2].zoom, temp_r31[3].zoom, temp_f31); - Center.x = fn_1_65CC(temp_r31[2].pos.x, temp_f29, temp_f31); - Center.y = fn_1_65CC(temp_r31[2].pos.y, temp_r31[3].pos.y, temp_f31); - Center.z = fn_1_65CC(temp_r31[2].pos.z, temp_r31[3].pos.z, temp_f31); - CRot.x = fn_1_65CC(temp_r31[2].rot.x, temp_r31[3].rot.x, temp_f31); - CRot.y = fn_1_65CC(temp_r31[2].rot.y, temp_f28, temp_f31); - CRot.z = fn_1_65CC(temp_r31[2].rot.z, temp_r31[3].rot.z, temp_f31); - return temp_r29; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + CameraViewParams *temp_r31; + WorkA44 *temp_r30; + s32 temp_r29; + temp_r30 = lbl_1_bss_30->data; + temp_r31 = &lbl_1_data_4C[0]; + temp_r29 = 0; + lbl_1_bss_8++; + temp_f30 = lbl_1_bss_8 / 120.0f; + if (lbl_1_bss_8 > 120) { + lbl_1_bss_8 = 120; + temp_f30 = 1; + temp_r29 = 1; + } + temp_f31 = sind(90 * temp_f30) * sind(90 * temp_f30); + if (temp_r30->unk4 == 0) { + temp_f29 = temp_r31[3].pos.x; + temp_f28 = temp_r31[3].rot.y; + } + else { + temp_f29 = -temp_r31[3].pos.x; + temp_f28 = -temp_r31[3].rot.y; + } + CZoom = fn_1_65CC(temp_r31[2].zoom, temp_r31[3].zoom, temp_f31); + Center.x = fn_1_65CC(temp_r31[2].pos.x, temp_f29, temp_f31); + Center.y = fn_1_65CC(temp_r31[2].pos.y, temp_r31[3].pos.y, temp_f31); + Center.z = fn_1_65CC(temp_r31[2].pos.z, temp_r31[3].pos.z, temp_f31); + CRot.x = fn_1_65CC(temp_r31[2].rot.x, temp_r31[3].rot.x, temp_f31); + CRot.y = fn_1_65CC(temp_r31[2].rot.y, temp_f28, temp_f31); + CRot.z = fn_1_65CC(temp_r31[2].rot.z, temp_r31[3].rot.z, temp_f31); + return temp_r29; } - void fn_1_6030(ModelData *arg0, Work72B4 *arg1, Mtx arg2); s16 fn_1_6C74(AnimData *arg0, s16 arg1, float arg2, s16 arg3, s16 arg4); void fn_1_7244(s16 arg0, unkHook72B4 arg1); @@ -275,89 +245,89 @@ void fn_1_10A4(omObjData *object); void fn_1_A44(omObjData *object) { - float temp_f31; - - s16 temp_r31; - s16 temp_r30; - s16 temp_r28; - - AnimData *temp_r27; - WorkA44 *temp_r26; - s16 temp_r25; - - AnimData *temp_r24; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkA44), MEMORY_DEFAULT_NUM); - temp_r26 = object->data; - temp_r26->unk0 = 4; - temp_r26->unk6[0] = 0; - temp_r26->unkA = 900; - temp_r26->unk10 = -1; - temp_r27 = HuSprAnimRead(HuDataReadNum(0x3E001A, MEMORY_DEFAULT_NUM)); - object->model[0] = fn_1_6C74(temp_r27, 1024, 25, 64, 64); - fn_1_7244(object->model[0], fn_1_6030); - Hu3DModelLayerSet(object->model[0], 7); - temp_r30 = HuSprGrpCreate(4); - object->model[3] = temp_r30; - temp_r27 = HuSprAnimRead(HuDataReadNum(0x61001B, MEMORY_DEFAULT_NUM)); - temp_r28 = HuSprCreate(temp_r27, 16, 0); - HuSprGrpMemberSet(temp_r30, 0, temp_r28); - HuSprAttrSet(temp_r30, 0, HUSPR_ATTR_DISPOFF); - temp_r27 = HuSprAnimRead(HuDataReadNum(0x61001D, MEMORY_DEFAULT_NUM)); - temp_r28 = HuSprCreate(temp_r27, 32, 0); - HuSprGrpMemberSet(temp_r30, 2, temp_r28); - HuSprAttrSet(temp_r30, 2, HUSPR_ATTR_DISPOFF); - temp_r27 = HuSprAnimRead(HuDataReadNum(0x61001C, MEMORY_DEFAULT_NUM)); - temp_r28 = HuSprCreate(temp_r27, 16, 0); - HuSprGrpMemberSet(temp_r30, 1, temp_r28); - HuSprAttrSet(temp_r30, 1, HUSPR_ATTR_DISPOFF); - temp_r27 = HuSprAnimRead(HuDataReadNum(0x61001D, MEMORY_DEFAULT_NUM)); - temp_r28 = HuSprCreate(temp_r27, 32, 0); - HuSprGrpMemberSet(temp_r30, 3, temp_r28); - HuSprAttrSet(temp_r30, 3, HUSPR_ATTR_DISPOFF); - temp_f31 = 288; - HuSprPosSet(temp_r30, 0, temp_f31-198, 64); - HuSprPosSet(temp_r30, 1, temp_f31+198, 64); - HuSprPosSet(temp_r30, 2, temp_f31-198, 64); - HuSprTPLvlSet(temp_r30, 2, 88); - HuSprColorSet(temp_r30, 2, 0, 0, 0); - HuSprPosSet(temp_r30, 3, temp_f31+198, 64); - HuSprTPLvlSet(temp_r30, 3, 88); - HuSprColorSet(temp_r30, 3, 0, 0, 0); - temp_r27 = HuSprAnimRead(HuDataReadNum(0x61000B, MEMORY_DEFAULT_NUM)); - temp_r24 = HuSprAnimRead(HuDataReadNum(0x61000A, MEMORY_DEFAULT_NUM)); - temp_r30 = HuSprGrpCreate(6); - object->model[1] = temp_r30; - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r28 = HuSprCreate(temp_r27, 0, 0); - HuSprGrpMemberSet(temp_r30, temp_r31, temp_r28); - HuSprPosSet(temp_r30, temp_r31, lbl_1_data_C8[0]+lbl_1_data_BC[temp_r31], 63); - HuSprAttrSet(temp_r30, temp_r31, HUSPR_ATTR_DISPOFF); - } - for(temp_r31=3; temp_r31<6; temp_r31++) { - temp_r25 = temp_r31-3; - temp_r28 = HuSprCreate(temp_r24, 8, 0); - HuSprGrpMemberSet(temp_r30, temp_r31, temp_r28); - HuSprPosSet(temp_r30, temp_r31, lbl_1_data_C8[0]+lbl_1_data_BC[temp_r25], 63); - HuSprAttrSet(temp_r30, temp_r31, HUSPR_ATTR_DISPOFF); - } - temp_r30 = HuSprGrpCreate(6); - object->model[2] = temp_r30; - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r28 = HuSprCreate(temp_r27, 0, 0); - HuSprGrpMemberSet(temp_r30, temp_r31, temp_r28); - HuSprPosSet(temp_r30, temp_r31, lbl_1_data_C8[1]+lbl_1_data_BC[temp_r31], 63); - HuSprAttrSet(temp_r30, temp_r31, HUSPR_ATTR_DISPOFF); - } - for(temp_r31=3; temp_r31<6; temp_r31++) { - temp_r25 = temp_r31-3; - temp_r28 = HuSprCreate(temp_r24, 8, 0); - HuSprGrpMemberSet(temp_r30, temp_r31, temp_r28); - HuSprPosSet(temp_r30, temp_r31, lbl_1_data_C8[1]+lbl_1_data_BC[temp_r25], 63); - HuSprAttrSet(temp_r30, temp_r31, HUSPR_ATTR_DISPOFF); - } - (void)temp_r31; - (void)temp_r31; - object->func = fn_1_10A4; + float temp_f31; + + s16 temp_r31; + s16 temp_r30; + s16 temp_r28; + + AnimData *temp_r27; + WorkA44 *temp_r26; + s16 temp_r25; + + AnimData *temp_r24; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkA44), MEMORY_DEFAULT_NUM); + temp_r26 = object->data; + temp_r26->unk0 = 4; + temp_r26->unk6[0] = 0; + temp_r26->unkA = 900; + temp_r26->unk10 = -1; + temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M431, 0x1A), MEMORY_DEFAULT_NUM)); + object->model[0] = fn_1_6C74(temp_r27, 1024, 25, 64, 64); + fn_1_7244(object->model[0], fn_1_6030); + Hu3DModelLayerSet(object->model[0], 7); + temp_r30 = HuSprGrpCreate(4); + object->model[3] = temp_r30; + temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x1B), MEMORY_DEFAULT_NUM)); + temp_r28 = HuSprCreate(temp_r27, 16, 0); + HuSprGrpMemberSet(temp_r30, 0, temp_r28); + HuSprAttrSet(temp_r30, 0, HUSPR_ATTR_DISPOFF); + temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x1D), MEMORY_DEFAULT_NUM)); + temp_r28 = HuSprCreate(temp_r27, 32, 0); + HuSprGrpMemberSet(temp_r30, 2, temp_r28); + HuSprAttrSet(temp_r30, 2, HUSPR_ATTR_DISPOFF); + temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x1C), MEMORY_DEFAULT_NUM)); + temp_r28 = HuSprCreate(temp_r27, 16, 0); + HuSprGrpMemberSet(temp_r30, 1, temp_r28); + HuSprAttrSet(temp_r30, 1, HUSPR_ATTR_DISPOFF); + temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x1D), MEMORY_DEFAULT_NUM)); + temp_r28 = HuSprCreate(temp_r27, 32, 0); + HuSprGrpMemberSet(temp_r30, 3, temp_r28); + HuSprAttrSet(temp_r30, 3, HUSPR_ATTR_DISPOFF); + temp_f31 = 288; + HuSprPosSet(temp_r30, 0, temp_f31 - 198, 64); + HuSprPosSet(temp_r30, 1, temp_f31 + 198, 64); + HuSprPosSet(temp_r30, 2, temp_f31 - 198, 64); + HuSprTPLvlSet(temp_r30, 2, 88); + HuSprColorSet(temp_r30, 2, 0, 0, 0); + HuSprPosSet(temp_r30, 3, temp_f31 + 198, 64); + HuSprTPLvlSet(temp_r30, 3, 88); + HuSprColorSet(temp_r30, 3, 0, 0, 0); + temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x0B), MEMORY_DEFAULT_NUM)); + temp_r24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x0A), MEMORY_DEFAULT_NUM)); + temp_r30 = HuSprGrpCreate(6); + object->model[1] = temp_r30; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r28 = HuSprCreate(temp_r27, 0, 0); + HuSprGrpMemberSet(temp_r30, temp_r31, temp_r28); + HuSprPosSet(temp_r30, temp_r31, lbl_1_data_C8[0] + lbl_1_data_BC[temp_r31], 63); + HuSprAttrSet(temp_r30, temp_r31, HUSPR_ATTR_DISPOFF); + } + for (temp_r31 = 3; temp_r31 < 6; temp_r31++) { + temp_r25 = temp_r31 - 3; + temp_r28 = HuSprCreate(temp_r24, 8, 0); + HuSprGrpMemberSet(temp_r30, temp_r31, temp_r28); + HuSprPosSet(temp_r30, temp_r31, lbl_1_data_C8[0] + lbl_1_data_BC[temp_r25], 63); + HuSprAttrSet(temp_r30, temp_r31, HUSPR_ATTR_DISPOFF); + } + temp_r30 = HuSprGrpCreate(6); + object->model[2] = temp_r30; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r28 = HuSprCreate(temp_r27, 0, 0); + HuSprGrpMemberSet(temp_r30, temp_r31, temp_r28); + HuSprPosSet(temp_r30, temp_r31, lbl_1_data_C8[1] + lbl_1_data_BC[temp_r31], 63); + HuSprAttrSet(temp_r30, temp_r31, HUSPR_ATTR_DISPOFF); + } + for (temp_r31 = 3; temp_r31 < 6; temp_r31++) { + temp_r25 = temp_r31 - 3; + temp_r28 = HuSprCreate(temp_r24, 8, 0); + HuSprGrpMemberSet(temp_r30, temp_r31, temp_r28); + HuSprPosSet(temp_r30, temp_r31, lbl_1_data_C8[1] + lbl_1_data_BC[temp_r25], 63); + HuSprAttrSet(temp_r30, temp_r31, HUSPR_ATTR_DISPOFF); + } + (void)temp_r31; + (void)temp_r31; + object->func = fn_1_10A4; } void fn_1_140C(omObjData *object); @@ -368,329 +338,331 @@ void fn_1_5480(void); void fn_1_10A4(omObjData *object) { - WorkA44 *temp_r31; - s16 temp_r30; - s16 temp_r28; - CameraData *temp_r27; - temp_r31 = object->data; - temp_r30 = 99; - switch(fn_1_2090(28)) { - case 4: - if(lbl_1_bss_E == 0) { - lbl_1_bss_E = 1; - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - temp_r27 = &Hu3DCamera[0]; - temp_r27->fov = 41.5f; - } - if(!WipeStatGet()) { - fn_1_2050(28, 8); - fn_1_2050(224, 32); - } - break; - - case 8: - if(fn_1_1634(object)) { - fn_1_2050(1, 0); - fn_1_2050(28, 12); - } - break; - - case 12: - if(temp_r31->unk10 != -1) { - temp_r28 = (temp_r31->unkA+59)/60; - if(temp_r28 < 0) { - temp_r28 = 0; - } - MGSeqParamSet(temp_r31->unk10, 1, temp_r28); - } - fn_1_140C(object); - if(fn_1_2090(224) == 128) { - if(lbl_1_bss_12C[0].unk138[0] == 3) { - temp_r30 = 0; - } else if(lbl_1_bss_12C[1].unk138[0] == 3) { - temp_r30 = 1; - } else { - if(temp_r31->unk6[0] == 5) { - if(lbl_1_bss_12C[0].unk138[0] == lbl_1_bss_12C[1].unk138[0]) { - temp_r30 = -1; - } else { - if(lbl_1_bss_12C[0].unk138[0] > lbl_1_bss_12C[1].unk138[0]) { - temp_r30 = 0; - } else { - temp_r30 = 1; - } - } - } - } - } - if(temp_r30 != 99) { - if(fn_1_2090(1) == 0) { - temp_r31->unk2 = MGSeqFinishCreate(); - HuAudSeqAllFadeOut(100); - } - fn_1_5480(); - fn_1_2000(temp_r30); - fn_1_2050(1, 1); - if(temp_r31->unk0 & 0x2) { - if(temp_r30 == -1) { - lbl_1_bss_A = 1; - } - fn_1_2050(28, 16); - } - if(temp_r30 != -1) { - fn_1_8474(temp_r30^1); - } else { - fn_1_8474(0); - fn_1_8474(1); - } - } - break; - - case 16: - if(fn_1_1A40(object)) { - fn_1_2050(28, 20); - } - break; - - case 20: - if(++lbl_1_bss_C > 210.0f) { - lbl_1_bss_0 = 1; - } - break; - } + WorkA44 *temp_r31; + s16 temp_r30; + s16 temp_r28; + CameraData *temp_r27; + temp_r31 = object->data; + temp_r30 = 99; + switch (fn_1_2090(28)) { + case 4: + if (lbl_1_bss_E == 0) { + lbl_1_bss_E = 1; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + temp_r27 = &Hu3DCamera[0]; + temp_r27->fov = 41.5f; + } + if (!WipeStatGet()) { + fn_1_2050(28, 8); + fn_1_2050(224, 32); + } + break; + + case 8: + if (fn_1_1634(object)) { + fn_1_2050(1, 0); + fn_1_2050(28, 12); + } + break; + + case 12: + if (temp_r31->unk10 != -1) { + temp_r28 = (temp_r31->unkA + 59) / 60; + if (temp_r28 < 0) { + temp_r28 = 0; + } + MGSeqParamSet(temp_r31->unk10, 1, temp_r28); + } + fn_1_140C(object); + if (fn_1_2090(224) == 128) { + if (lbl_1_bss_12C[0].unk138[0] == 3) { + temp_r30 = 0; + } + else if (lbl_1_bss_12C[1].unk138[0] == 3) { + temp_r30 = 1; + } + else { + if (temp_r31->unk6[0] == 5) { + if (lbl_1_bss_12C[0].unk138[0] == lbl_1_bss_12C[1].unk138[0]) { + temp_r30 = -1; + } + else { + if (lbl_1_bss_12C[0].unk138[0] > lbl_1_bss_12C[1].unk138[0]) { + temp_r30 = 0; + } + else { + temp_r30 = 1; + } + } + } + } + } + if (temp_r30 != 99) { + if (fn_1_2090(1) == 0) { + temp_r31->unk2 = MGSeqFinishCreate(); + HuAudSeqAllFadeOut(100); + } + fn_1_5480(); + fn_1_2000(temp_r30); + fn_1_2050(1, 1); + if (temp_r31->unk0 & 0x2) { + if (temp_r30 == -1) { + lbl_1_bss_A = 1; + } + fn_1_2050(28, 16); + } + if (temp_r30 != -1) { + fn_1_8474(temp_r30 ^ 1); + } + else { + fn_1_8474(0); + fn_1_8474(1); + } + } + break; + + case 16: + if (fn_1_1A40(object)) { + fn_1_2050(28, 20); + } + break; + + case 20: + if (++lbl_1_bss_C > 210.0f) { + lbl_1_bss_0 = 1; + } + break; + } } void fn_1_140C(omObjData *object) { - float temp_f31; - float temp_f30; - WorkA44 *temp_r31 = object->data; - if((temp_r31->unk0 & 0x300) == 0) { - return; - } - temp_r31->unk12++; - temp_f31 = temp_r31->unk12/18.0f; - if(temp_r31->unk12 > 18.0f) { - temp_r31->unk12 = 0; - temp_f31 = 1.0f; - temp_r31->unk12 = 18; - temp_r31->unk0 &= ~0x300; - } - temp_f30 = 1.0-cosd(90.0f*temp_f31); - - temp_f31 = 1.0+sind(180.0f*temp_f31); - HuSprAttrReset(lbl_1_bss_30->model[temp_r31->unk6[1]+1], temp_r31->unk16, HUSPR_ATTR_DISPOFF); - HuSprScaleSet(lbl_1_bss_30->model[temp_r31->unk6[1]+1], temp_r31->unk16, temp_f31, temp_f31); - HuSprTPLvlSet(lbl_1_bss_30->model[temp_r31->unk6[1]+1], temp_r31->unk16, temp_f30); - + float temp_f31; + float temp_f30; + WorkA44 *temp_r31 = object->data; + if ((temp_r31->unk0 & 0x300) == 0) { + return; + } + temp_r31->unk12++; + temp_f31 = temp_r31->unk12 / 18.0f; + if (temp_r31->unk12 > 18.0f) { + temp_r31->unk12 = 0; + temp_f31 = 1.0f; + temp_r31->unk12 = 18; + temp_r31->unk0 &= ~0x300; + } + temp_f30 = 1.0 - cosd(90.0f * temp_f31); + + temp_f31 = 1.0 + sind(180.0f * temp_f31); + HuSprAttrReset(lbl_1_bss_30->model[temp_r31->unk6[1] + 1], temp_r31->unk16, HUSPR_ATTR_DISPOFF); + HuSprScaleSet(lbl_1_bss_30->model[temp_r31->unk6[1] + 1], temp_r31->unk16, temp_f31, temp_f31); + HuSprTPLvlSet(lbl_1_bss_30->model[temp_r31->unk6[1] + 1], temp_r31->unk16, temp_f30); } void fn_1_2AB0(s16 arg0); u8 fn_1_1634(omObjData *object) { - WorkA44 *temp_r30 = object->data; - s32 temp_r29; - s32 temp_r27; - s32 temp_r26; - switch(lbl_1_bss_A) { - case 0: - if(fn_1_2090(224) == 64) { - fn_1_2050(1, 1); - lbl_1_bss_A++; - } - break; - - case 1: - if(fn_1_57C()) { - lbl_1_bss_A++; - } - break; - - case 2: - temp_r30->unk2 = MGSeqStartCreate(); - temp_r30->unkC = -1; - lbl_1_bss_A++; - break; - - case 3: - if(temp_r30->unk2 != -1) { - temp_r26 = MGSeqStatGet(temp_r30->unk2); - if((temp_r26 & 0x10) && temp_r30->unkC == -1) { - temp_r30->unkC = HuAudSeqPlay(72); - } - } - if(temp_r30->unk2 == -1 || temp_r26 == 0) { - temp_r27 = object->model[1]; - for(temp_r29=3; temp_r29<6; temp_r29++) { - HuSprAttrReset(temp_r27, temp_r29, HUSPR_ATTR_DISPOFF); - } - temp_r27 = object->model[2]; - for(temp_r29=3; temp_r29<6; temp_r29++) { - HuSprAttrReset(temp_r27, temp_r29, HUSPR_ATTR_DISPOFF); - } - temp_r27 = object->model[3]; - for(temp_r29=0; temp_r29<4; temp_r29++) { - HuSprAttrReset(temp_r27, temp_r29, HUSPR_ATTR_DISPOFF); - } - fn_1_2AB0(999); - lbl_1_bss_A = 0; - - return 1; - } - break; - } - return 0; + WorkA44 *temp_r30 = object->data; + s32 temp_r29; + s32 temp_r27; + s32 temp_r26; + switch (lbl_1_bss_A) { + case 0: + if (fn_1_2090(224) == 64) { + fn_1_2050(1, 1); + lbl_1_bss_A++; + } + break; + + case 1: + if (fn_1_57C()) { + lbl_1_bss_A++; + } + break; + + case 2: + temp_r30->unk2 = MGSeqStartCreate(); + temp_r30->unkC = -1; + lbl_1_bss_A++; + break; + + case 3: + if (temp_r30->unk2 != -1) { + temp_r26 = MGSeqStatGet(temp_r30->unk2); + if ((temp_r26 & 0x10) && temp_r30->unkC == -1) { + temp_r30->unkC = HuAudSeqPlay(72); + } + } + if (temp_r30->unk2 == -1 || temp_r26 == 0) { + temp_r27 = object->model[1]; + for (temp_r29 = 3; temp_r29 < 6; temp_r29++) { + HuSprAttrReset(temp_r27, temp_r29, HUSPR_ATTR_DISPOFF); + } + temp_r27 = object->model[2]; + for (temp_r29 = 3; temp_r29 < 6; temp_r29++) { + HuSprAttrReset(temp_r27, temp_r29, HUSPR_ATTR_DISPOFF); + } + temp_r27 = object->model[3]; + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + HuSprAttrReset(temp_r27, temp_r29, HUSPR_ATTR_DISPOFF); + } + fn_1_2AB0(999); + lbl_1_bss_A = 0; + + return 1; + } + break; + } + return 0; } u8 fn_1_1A40(omObjData *object) { - WorkA44 *temp_r30; - Bss12CStruct *temp_r29; - s32 temp_r28; - s32 temp_r25; - temp_r30 = object->data; - switch(lbl_1_bss_A) { - case 0: - temp_r28 = fn_1_7FB8(temp_r30->unk4); - fn_1_8474(temp_r30->unk4^1); - temp_r28 &= fn_1_7B0(); - if((u8)temp_r28) { - lbl_1_bss_4 = 1; - fn_1_A7D0(temp_r30->unk4); - HuAudSStreamPlay(1); - lbl_1_bss_C = 0; - lbl_1_bss_A++; - } - break; - - case 1: - if(temp_r30->unk4 == -1) { - temp_r28 = fn_1_8474(0); - temp_r25 = fn_1_8474(1); - if((u8)temp_r28 == 0 || (u8)temp_r25 == 0) { - return 0; - } - if(temp_r30->unk2 == -1 || !MGSeqStatGet(temp_r30->unk2)) { - temp_r30->unk2 = -1; - lbl_1_bss_4 = 1; - fn_1_A904(0); - fn_1_A904(1); - HuAudSStreamPlay(4); - lbl_1_bss_A++; - } - } else { - if(++lbl_1_bss_C > 1) { - lbl_1_bss_A++; - } - } - break; - - case 2: - if(temp_r30->unk4 != -1) { - temp_r29 = &lbl_1_bss_12C[temp_r30->unk4]; - temp_r30->unk2 = MGSeqWinCreate(GWPlayerCfg[temp_r29->unk0[0]].character, - GWPlayerCfg[temp_r29->unk0[1]].character, - -1, - -1); - GWPlayerCoinWinAdd(temp_r29->unk0[0], 10); - GWPlayerCoinWinAdd(temp_r29->unk0[1], 10); - } else { - temp_r30->unk2 = MGSeqDrawCreate(); - } - lbl_1_bss_A++; - break; - - case 3: - lbl_1_bss_A = lbl_1_bss_C = 0; - return 1; - - default: - break; - - } - return 0; + WorkA44 *temp_r30; + Bss12CStruct *temp_r29; + s32 temp_r28; + s32 temp_r25; + temp_r30 = object->data; + switch (lbl_1_bss_A) { + case 0: + temp_r28 = fn_1_7FB8(temp_r30->unk4); + fn_1_8474(temp_r30->unk4 ^ 1); + temp_r28 &= fn_1_7B0(); + if ((u8)temp_r28) { + lbl_1_bss_4 = 1; + fn_1_A7D0(temp_r30->unk4); + HuAudSStreamPlay(1); + lbl_1_bss_C = 0; + lbl_1_bss_A++; + } + break; + + case 1: + if (temp_r30->unk4 == -1) { + temp_r28 = fn_1_8474(0); + temp_r25 = fn_1_8474(1); + if ((u8)temp_r28 == 0 || (u8)temp_r25 == 0) { + return 0; + } + if (temp_r30->unk2 == -1 || !MGSeqStatGet(temp_r30->unk2)) { + temp_r30->unk2 = -1; + lbl_1_bss_4 = 1; + fn_1_A904(0); + fn_1_A904(1); + HuAudSStreamPlay(4); + lbl_1_bss_A++; + } + } + else { + if (++lbl_1_bss_C > 1) { + lbl_1_bss_A++; + } + } + break; + + case 2: + if (temp_r30->unk4 != -1) { + temp_r29 = &lbl_1_bss_12C[temp_r30->unk4]; + temp_r30->unk2 = MGSeqWinCreate(GWPlayerCfg[temp_r29->unk0[0]].character, GWPlayerCfg[temp_r29->unk0[1]].character, -1, -1); + GWPlayerCoinWinAdd(temp_r29->unk0[0], 10); + GWPlayerCoinWinAdd(temp_r29->unk0[1], 10); + } + else { + temp_r30->unk2 = MGSeqDrawCreate(); + } + lbl_1_bss_A++; + break; + + case 3: + lbl_1_bss_A = lbl_1_bss_C = 0; + return 1; + + default: + break; + } + return 0; } void fn_1_2000(s16 arg0) { - WorkA44 *temp_r31 = lbl_1_bss_30->data; - if(arg0 == -1 || temp_r31->unk6[1] == -1) { - temp_r31->unk0 |= 0x2; - } - temp_r31->unk4 = arg0; + WorkA44 *temp_r31 = lbl_1_bss_30->data; + if (arg0 == -1 || temp_r31->unk6[1] == -1) { + temp_r31->unk0 |= 0x2; + } + temp_r31->unk4 = arg0; } void fn_1_2050(u16 arg0, u16 arg1) { - WorkA44 *temp_r31 = lbl_1_bss_30->data; - temp_r31->unk0 &= ~arg0; - temp_r31->unk0 |= arg1; + WorkA44 *temp_r31 = lbl_1_bss_30->data; + temp_r31->unk0 &= ~arg0; + temp_r31->unk0 |= arg1; } u16 fn_1_2090(u16 arg0) { - WorkA44 *temp_r31 = lbl_1_bss_30->data; - if(!temp_r31) { - return 0; - } - return temp_r31->unk0 & arg0; + WorkA44 *temp_r31 = lbl_1_bss_30->data; + if (!temp_r31) { + return 0; + } + return temp_r31->unk0 & arg0; } void fn_1_20D0(s16 arg0) { - WorkA44 *temp_r31 = lbl_1_bss_30->data; - temp_r31->unk0 |= 0x100; - temp_r31->unk12 = 0; - temp_r31->unk16 = arg0; + WorkA44 *temp_r31 = lbl_1_bss_30->data; + temp_r31->unk0 |= 0x100; + temp_r31->unk12 = 0; + temp_r31->unk16 = arg0; } s32 lbl_1_data_114[2][2] = { - 0x003E0001, - 0x003E0003, - 0x003E0005, - 0x003E0006 + DATA_MAKE_NUM(DATADIR_M431, 0x01), + DATA_MAKE_NUM(DATADIR_M431, 0x03), + DATA_MAKE_NUM(DATADIR_M431, 0x05), + DATA_MAKE_NUM(DATADIR_M431, 0x06), }; s32 lbl_1_data_124[2][2] = { - 0x003E0007, - 0x003E0008, - 0x003E0009, - 0x003E000A + DATA_MAKE_NUM(DATADIR_M431, 0x07), + DATA_MAKE_NUM(DATADIR_M431, 0x08), + DATA_MAKE_NUM(DATADIR_M431, 0x09), + DATA_MAKE_NUM(DATADIR_M431, 0x0A), }; s32 lbl_1_data_134[5] = { - 0x003E000C, - 0x003E000D, - 0x003E000E, - 0x003E000F, - 0x003E0010 + DATA_MAKE_NUM(DATADIR_M431, 0x0C), + DATA_MAKE_NUM(DATADIR_M431, 0x0D), + DATA_MAKE_NUM(DATADIR_M431, 0x0E), + DATA_MAKE_NUM(DATADIR_M431, 0x0F), + DATA_MAKE_NUM(DATADIR_M431, 0x10), }; s32 lbl_1_data_148[5] = { - 0x003E001C, - 0x003E001D, - 0x003E001E, - 0x003E001F, - 0x003E0020 + DATA_MAKE_NUM(DATADIR_M431, 0x1C), + DATA_MAKE_NUM(DATADIR_M431, 0x1D), + DATA_MAKE_NUM(DATADIR_M431, 0x1E), + DATA_MAKE_NUM(DATADIR_M431, 0x1F), + DATA_MAKE_NUM(DATADIR_M431, 0x20), }; typedef struct unk2110_obj { - u32 unk0; - float unk4; - float unk8; - Vec unkC; - s16 unk18; - s16 unk1A; - s16 unk1C; - s16 unk1E; - float unk20; + u32 unk0; + float unk4; + float unk8; + Vec unkC; + s16 unk18; + s16 unk1A; + s16 unk1C; + s16 unk1E; + float unk20; } Unk2110Obj; typedef struct work_2110 { - float unk0; - Unk2110Obj unk4[10]; - s16 unk16C[10]; + float unk0; + Unk2110Obj unk4[10]; + s16 unk16C[10]; } Work2110; void fn_1_2AC0(omObjData *object); @@ -700,115 +672,120 @@ void fn_1_498C(s16 arg0, Work2110 *arg1); void fn_1_2110(omObjData *object) { - float temp_f31; - float temp_f30; - float temp_f29; - s16 temp_r31; - Unk2110Obj *temp_r29; - Work2110 *temp_r28; - s16 temp_r27; - AnimData *temp_r26; - s16 temp_r25; - - object->stat |= 0x100; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 2*sizeof(Work2110), MEMORY_DEFAULT_NUM); - temp_r28 = object->data; - object->model[0] = Hu3DModelCreateFile(0x3E0000); - Hu3DModelLayerSet(object->model[0], 0); - Hu3DModelScaleSet(object->model[0], 1.2f, 1.2f, 1.2f); - temp_r31 = Hu3DModelCreateFile(0x3E0011); - Hu3DModelAttrSet(temp_r31, 0x40000001); - Hu3DModelLayerSet(temp_r31, 0); - Hu3DMotionSpeedSet(temp_r31, 0.25f); - temp_r31 = Hu3DModelCreateFile(0x3E0012); - Hu3DModelAttrSet(temp_r31, 0x40000001); - Hu3DModelLayerSet(temp_r31, 0); - Hu3DMotionSpeedSet(temp_r31, 0.25f); - temp_r31 = Hu3DModelCreateFile(0x3E0013); - object->model[5] = temp_r31; - object->motion[0] = Hu3DJointMotionFile(temp_r31, 0x3E0014); - object->motion[1] = Hu3DJointMotionFile(temp_r31, 0x3E0015); - object->motion[2] = Hu3DJointMotionFile(temp_r31, 0x3E0016); - object->motion[3] = Hu3DJointMotionFile(temp_r31, 0x3E0017); - object->motion[4] = Hu3DJointMotionFile(temp_r31, 0x3E0014); - object->motion[5] = Hu3DJointMotionFile(temp_r31, 0x3E0018); - object->motion[6] = Hu3DJointMotionFile(temp_r31, 0x3E0019); - Hu3DModelPosSet(temp_r31, 0, 0, -230); - Hu3DModelShadowSet(temp_r31); - Hu3DModelAttrSet(temp_r31, 0x40000001); - Hu3DMotionSet(temp_r31, object->motion[0]); - for(temp_r31=0; temp_r31<2; temp_r31++, temp_r28++) { - temp_r25 = Hu3DModelCreateFile(lbl_1_data_114[0][temp_r31]); - temp_f30 = (temp_r31 == 0) ? -317.0f : 317.0f; - temp_f31 = 0; - temp_f29 = 100; - Hu3DModelPosSet(temp_r25, temp_f30, temp_f31, temp_f29); - object->model[temp_r31+1] = Hu3DModelCreateFile(0x3E0002); - temp_f30 = (temp_r31 == 0) ? -317.0f : 317.0f; - temp_f31 = 0; - temp_f29 = 100; - Hu3DModelPosSet(object->model[temp_r31+1], temp_f30, temp_f31, temp_f29); - Hu3DModelAttrSet(object->model[temp_r31+1], 0x40000002); - - object->model[temp_r31+3] = Hu3DModelCreateFile(lbl_1_data_114[1][temp_r31]); - temp_f31 = 45; - Hu3DModelPosSet(object->model[temp_r31+3], temp_f30, temp_f31, temp_f29); - Hu3DModelRotSet(object->model[temp_r31+3], 0, lbl_1_data_1D0, 0); - for(temp_r27 = 0, temp_r29 = &temp_r28->unk4[0]; temp_r27<10; temp_r27++, temp_r29++) { - if(fmod((float)temp_r27, 2)) { - if(temp_r27 == 1) { - temp_r29->unk1E = Hu3DModelCreateFile(lbl_1_data_124[temp_r31][0]); - } else { - temp_r29->unk1E = Hu3DModelLink(temp_r28->unk4[1].unk1E); - } - } else { - if(temp_r27 == 0) { - temp_r29->unk1E = Hu3DModelCreateFile(lbl_1_data_124[temp_r31][1]); - } else { - temp_r29->unk1E = Hu3DModelLink(temp_r28->unk4[0].unk1E); - } - } - Hu3DModelPosSet(temp_r29->unk1E, 0, -500, 0); - if(temp_r27 == 0) { - temp_r29->unk1C = Hu3DModelCreateFile(0x3E000B); - } else { - temp_r29->unk1C = Hu3DModelLink(temp_r28->unk4[0].unk1C); - } - Hu3DData[temp_r29->unk1C].pos.y = 1000; - Hu3DModelAttrSet(temp_r29->unk1C, 1); - temp_r29->unk0 = 0; - temp_r29->unk4 = lbl_1_data_1D0+(36.0f*temp_r27); - } - temp_r28->unk0 = 0; - fn_1_48D0(temp_r28); - fn_1_498C(temp_r31, temp_r28); - } - for(temp_r31=0; temp_r31<20; temp_r31++) { - if(temp_r31 < 5) { - lbl_1_bss_34[temp_r31] = Hu3DModelCreateFile(lbl_1_data_134[temp_r31]); - } else { - temp_r27 = fmod((float)temp_r31, 5); - lbl_1_bss_34[temp_r31] = Hu3DModelLink(lbl_1_bss_34[temp_r27]); - } - Hu3DModelPosSet(lbl_1_bss_34[temp_r31], 0, -500, 0); - } - Hu3DModelShadowMapObjSet(object->model[0], "field"); - Hu3DModelShadowMapSet(object->model[1]); - Hu3DModelShadowMapSet(object->model[2]); - temp_r26 = HuSprAnimRead(HuDataReadNum(0x3E001B, MEMORY_DEFAULT_NUM)); - lbl_1_bss_5C.unk0[0] = fn_1_6C74(temp_r26, 1, 140, 0, 0); - Hu3DModelLayerSet(lbl_1_bss_5C.unk0[0], 7); - for(temp_r31=0; temp_r31<5; temp_r31++) { - temp_r26 = HuSprAnimRead(HuDataReadNum(lbl_1_data_148[temp_r31], MEMORY_DEFAULT_NUM)); - lbl_1_bss_5C.unk0[temp_r31+1] = fn_1_6C74(temp_r26, 2, 45, 0, 0); - Hu3DModelLayerSet(lbl_1_bss_5C.unk0[temp_r31+1], 7); - } - object->func = fn_1_2AC0; + float temp_f31; + float temp_f30; + float temp_f29; + s16 temp_r31; + Unk2110Obj *temp_r29; + Work2110 *temp_r28; + s16 temp_r27; + AnimData *temp_r26; + s16 temp_r25; + + object->stat |= 0x100; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(Work2110), MEMORY_DEFAULT_NUM); + temp_r28 = object->data; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M431, 0x00)); + Hu3DModelLayerSet(object->model[0], 0); + Hu3DModelScaleSet(object->model[0], 1.2f, 1.2f, 1.2f); + temp_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M431, 0x11)); + Hu3DModelAttrSet(temp_r31, 0x40000001); + Hu3DModelLayerSet(temp_r31, 0); + Hu3DMotionSpeedSet(temp_r31, 0.25f); + temp_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M431, 0x12)); + Hu3DModelAttrSet(temp_r31, 0x40000001); + Hu3DModelLayerSet(temp_r31, 0); + Hu3DMotionSpeedSet(temp_r31, 0.25f); + temp_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M431, 0x13)); + object->model[5] = temp_r31; + object->motion[0] = Hu3DJointMotionFile(temp_r31, DATA_MAKE_NUM(DATADIR_M431, 0x14)); + object->motion[1] = Hu3DJointMotionFile(temp_r31, DATA_MAKE_NUM(DATADIR_M431, 0x15)); + object->motion[2] = Hu3DJointMotionFile(temp_r31, DATA_MAKE_NUM(DATADIR_M431, 0x16)); + object->motion[3] = Hu3DJointMotionFile(temp_r31, DATA_MAKE_NUM(DATADIR_M431, 0x17)); + object->motion[4] = Hu3DJointMotionFile(temp_r31, DATA_MAKE_NUM(DATADIR_M431, 0x14)); + object->motion[5] = Hu3DJointMotionFile(temp_r31, DATA_MAKE_NUM(DATADIR_M431, 0x18)); + object->motion[6] = Hu3DJointMotionFile(temp_r31, DATA_MAKE_NUM(DATADIR_M431, 0x19)); + Hu3DModelPosSet(temp_r31, 0, 0, -230); + Hu3DModelShadowSet(temp_r31); + Hu3DModelAttrSet(temp_r31, 0x40000001); + Hu3DMotionSet(temp_r31, object->motion[0]); + for (temp_r31 = 0; temp_r31 < 2; temp_r31++, temp_r28++) { + temp_r25 = Hu3DModelCreateFile(lbl_1_data_114[0][temp_r31]); + temp_f30 = (temp_r31 == 0) ? -317.0f : 317.0f; + temp_f31 = 0; + temp_f29 = 100; + Hu3DModelPosSet(temp_r25, temp_f30, temp_f31, temp_f29); + object->model[temp_r31 + 1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M431, 0x02)); + temp_f30 = (temp_r31 == 0) ? -317.0f : 317.0f; + temp_f31 = 0; + temp_f29 = 100; + Hu3DModelPosSet(object->model[temp_r31 + 1], temp_f30, temp_f31, temp_f29); + Hu3DModelAttrSet(object->model[temp_r31 + 1], 0x40000002); + + object->model[temp_r31 + 3] = Hu3DModelCreateFile(lbl_1_data_114[1][temp_r31]); + temp_f31 = 45; + Hu3DModelPosSet(object->model[temp_r31 + 3], temp_f30, temp_f31, temp_f29); + Hu3DModelRotSet(object->model[temp_r31 + 3], 0, lbl_1_data_1D0, 0); + for (temp_r27 = 0, temp_r29 = &temp_r28->unk4[0]; temp_r27 < 10; temp_r27++, temp_r29++) { + if (fmod((float)temp_r27, 2)) { + if (temp_r27 == 1) { + temp_r29->unk1E = Hu3DModelCreateFile(lbl_1_data_124[temp_r31][0]); + } + else { + temp_r29->unk1E = Hu3DModelLink(temp_r28->unk4[1].unk1E); + } + } + else { + if (temp_r27 == 0) { + temp_r29->unk1E = Hu3DModelCreateFile(lbl_1_data_124[temp_r31][1]); + } + else { + temp_r29->unk1E = Hu3DModelLink(temp_r28->unk4[0].unk1E); + } + } + Hu3DModelPosSet(temp_r29->unk1E, 0, -500, 0); + if (temp_r27 == 0) { + temp_r29->unk1C = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M431, 0x0B)); + } + else { + temp_r29->unk1C = Hu3DModelLink(temp_r28->unk4[0].unk1C); + } + Hu3DData[temp_r29->unk1C].pos.y = 1000; + Hu3DModelAttrSet(temp_r29->unk1C, 1); + temp_r29->unk0 = 0; + temp_r29->unk4 = lbl_1_data_1D0 + (36.0f * temp_r27); + } + temp_r28->unk0 = 0; + fn_1_48D0(temp_r28); + fn_1_498C(temp_r31, temp_r28); + } + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + if (temp_r31 < 5) { + lbl_1_bss_34[temp_r31] = Hu3DModelCreateFile(lbl_1_data_134[temp_r31]); + } + else { + temp_r27 = fmod((float)temp_r31, 5); + lbl_1_bss_34[temp_r31] = Hu3DModelLink(lbl_1_bss_34[temp_r27]); + } + Hu3DModelPosSet(lbl_1_bss_34[temp_r31], 0, -500, 0); + } + Hu3DModelShadowMapObjSet(object->model[0], "field"); + Hu3DModelShadowMapSet(object->model[1]); + Hu3DModelShadowMapSet(object->model[2]); + temp_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M431, 0x1B), MEMORY_DEFAULT_NUM)); + lbl_1_bss_5C.unk0[0] = fn_1_6C74(temp_r26, 1, 140, 0, 0); + Hu3DModelLayerSet(lbl_1_bss_5C.unk0[0], 7); + for (temp_r31 = 0; temp_r31 < 5; temp_r31++) { + temp_r26 = HuSprAnimRead(HuDataReadNum(lbl_1_data_148[temp_r31], MEMORY_DEFAULT_NUM)); + lbl_1_bss_5C.unk0[temp_r31 + 1] = fn_1_6C74(temp_r26, 2, 45, 0, 0); + Hu3DModelLayerSet(lbl_1_bss_5C.unk0[temp_r31 + 1], 7); + } + object->func = fn_1_2AC0; } void fn_1_2AB0(s16 arg0) { - lbl_1_bss_10 = arg0; + lbl_1_bss_10 = arg0; } void fn_1_2C94(Work2110 *arg0); @@ -820,37 +797,37 @@ void fn_1_5708(void); void fn_1_2AC0(omObjData *object) { - Work2110 *temp_r31 = object->data; - if(!fn_1_2090(1)) { - if(fn_1_2090(28) == 12 || fn_1_2090(28) == 8) { - switch(fn_1_2090(224)) { - case 32: - fn_1_2C94(temp_r31); - break; - - case 64: - fn_1_30E0(temp_r31); - break; - - case 96: - fn_1_3540(temp_r31); - break; - - case 128: - if(fn_1_2090(28) == 12) { - fn_1_3D7C(temp_r31); - } - break; - - case 0: - fn_1_4028(temp_r31); - break; - } - fn_1_498C(0, &temp_r31[0]); - fn_1_498C(1, &temp_r31[1]); - } - } - fn_1_5708(); + Work2110 *temp_r31 = object->data; + if (!fn_1_2090(1)) { + if (fn_1_2090(28) == 12 || fn_1_2090(28) == 8) { + switch (fn_1_2090(224)) { + case 32: + fn_1_2C94(temp_r31); + break; + + case 64: + fn_1_30E0(temp_r31); + break; + + case 96: + fn_1_3540(temp_r31); + break; + + case 128: + if (fn_1_2090(28) == 12) { + fn_1_3D7C(temp_r31); + } + break; + + case 0: + fn_1_4028(temp_r31); + break; + } + fn_1_498C(0, &temp_r31[0]); + fn_1_498C(1, &temp_r31[1]); + } + } + fn_1_5708(); } u16 lbl_1_data_162 = 1; @@ -859,163 +836,162 @@ void fn_1_4798(Work2110 *arg0); void fn_1_2C94(Work2110 *arg0) { - float temp_f31; - float temp_f30; - Unk2110Obj *temp_r31; - s16 temp_r29; - s16 temp_r28; - WorkA44 *temp_r26; - temp_r26 = lbl_1_bss_30->data; - - switch(lbl_1_data_162) { - case 0: - if(lbl_1_bss_10 == 1) { - HuAudFXPlay(1670); - } - lbl_1_bss_10++; - temp_f31 = lbl_1_bss_10/60.0f; - if(temp_f31 >= 1.0f) { - temp_r26->unkA = 900; - lbl_1_bss_10 = 0; - temp_f31 = 1; - lbl_1_data_162++; - - } - temp_f31 = cosd(temp_f31*90.0f); - temp_f30 = -50+(95*temp_f31); - break; - - case 1: - temp_f30 = -50; - fn_1_4798(arg0); - lbl_1_data_162++; - break; - - case 2: - if(lbl_1_bss_10 == 1) { - HuAudFXPlay(1663); - } - lbl_1_bss_10++; - temp_f31 = lbl_1_bss_10/60.0f; - if(temp_f31 >= 1.0f) { - lbl_1_bss_10 = 0; - temp_f31 = 1.0f; - lbl_1_data_162++; - } - temp_f31 = sind(temp_f31*90.0f); - temp_f30 = -50+(95*temp_f31); - break; - - case 3: - temp_f30 = 45; - fn_1_2050(224, 64); - lbl_1_data_162 = 0; - break; - } - for(temp_r29=0; temp_r29<2; temp_r29++, arg0++) { - temp_r31 = &arg0->unk4[0]; - for(temp_r28=0; temp_r28<10; temp_r28++, temp_r31++) { - if(lbl_1_data_162 || -50.0f != Hu3DData[temp_r31->unk1A].pos.y) { - Hu3DModelPosSet(temp_r31->unk1A, temp_r31->unkC.x, temp_f30, temp_r31->unkC.z); - Hu3DModelRotSet(temp_r31->unk1A, 0, temp_r31->unk8, 0); - Hu3DModelPosSet(temp_r31->unk1E, temp_r31->unkC.x, temp_f30, temp_r31->unkC.z); - Hu3DModelRotSet(temp_r31->unk1E, 0, temp_r31->unk8, 0); - } - - } - } + float temp_f31; + float temp_f30; + Unk2110Obj *temp_r31; + s16 temp_r29; + s16 temp_r28; + WorkA44 *temp_r26; + temp_r26 = lbl_1_bss_30->data; + + switch (lbl_1_data_162) { + case 0: + if (lbl_1_bss_10 == 1) { + HuAudFXPlay(1670); + } + lbl_1_bss_10++; + temp_f31 = lbl_1_bss_10 / 60.0f; + if (temp_f31 >= 1.0f) { + temp_r26->unkA = 900; + lbl_1_bss_10 = 0; + temp_f31 = 1; + lbl_1_data_162++; + } + temp_f31 = cosd(temp_f31 * 90.0f); + temp_f30 = -50 + (95 * temp_f31); + break; + + case 1: + temp_f30 = -50; + fn_1_4798(arg0); + lbl_1_data_162++; + break; + + case 2: + if (lbl_1_bss_10 == 1) { + HuAudFXPlay(1663); + } + lbl_1_bss_10++; + temp_f31 = lbl_1_bss_10 / 60.0f; + if (temp_f31 >= 1.0f) { + lbl_1_bss_10 = 0; + temp_f31 = 1.0f; + lbl_1_data_162++; + } + temp_f31 = sind(temp_f31 * 90.0f); + temp_f30 = -50 + (95 * temp_f31); + break; + + case 3: + temp_f30 = 45; + fn_1_2050(224, 64); + lbl_1_data_162 = 0; + break; + } + for (temp_r29 = 0; temp_r29 < 2; temp_r29++, arg0++) { + temp_r31 = &arg0->unk4[0]; + for (temp_r28 = 0; temp_r28 < 10; temp_r28++, temp_r31++) { + if (lbl_1_data_162 || -50.0f != Hu3DData[temp_r31->unk1A].pos.y) { + Hu3DModelPosSet(temp_r31->unk1A, temp_r31->unkC.x, temp_f30, temp_r31->unkC.z); + Hu3DModelRotSet(temp_r31->unk1A, 0, temp_r31->unk8, 0); + Hu3DModelPosSet(temp_r31->unk1E, temp_r31->unkC.x, temp_f30, temp_r31->unkC.z); + Hu3DModelRotSet(temp_r31->unk1E, 0, temp_r31->unk8, 0); + } + } + } } void fn_1_30E0(Work2110 *arg0) { - float temp_f31; - s16 sp8[2]; - Unk2110Obj *temp_r31; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - s16 temp_r25; - u32 temp_r22; - switch(lbl_1_data_162) { - case 0: - lbl_1_bss_10++; - if(lbl_1_bss_10 > 60) { - lbl_1_bss_10 = 0; - lbl_1_data_162++; - } - return; - - case 1: - temp_r28 = arg0[0].unk16C[4]; - arg0[0].unk4[temp_r28].unk0 = 4; - temp_r28 = arg0[1].unk16C[4]; - arg0[1].unk4[temp_r28].unk0 = 4; - lbl_1_bss_10 = 999; - lbl_1_data_162++; - break; - - case 2: - temp_r31 = &arg0[0].unk4[arg0[0].unk16C[5]]; - if((temp_r31->unk0 & 0x1C) == 0x10) { - lbl_1_bss_10 = 0; - fn_1_2050(224, 96); - lbl_1_data_162 = 0; - return; - } - break; - } - temp_r25 = 0; - sp8[0] = sp8[1] = ++lbl_1_bss_10; - for(temp_r27=0; temp_r27<2; temp_r27++, arg0++) { - for(temp_r29=4; temp_r29>-6; temp_r29--) { - temp_r28 = (temp_r29 < 0) ? arg0->unk16C[temp_r29+10] : arg0->unk16C[temp_r29]; - temp_r31 = &arg0[0].unk4[temp_r28]; - switch(temp_r22 = temp_r31->unk0 & 0x1C) { - case 4: - if(sp8[temp_r27] > 15) { - sp8[temp_r27] = 0; - temp_r25 = 1; - if(temp_r29-1 > -6) { - temp_r28 = ((temp_r29-1) < 0) ? arg0->unk16C[(temp_r29-1)+10] : arg0->unk16C[(temp_r29-1)]; - arg0[0].unk4[temp_r28].unk0 &= ~0x1C; - arg0[0].unk4[temp_r28].unk0 |= 0x4; - } - temp_r31->unk0 &= ~0x1C; - temp_r31->unk0 |= 8; - temp_r31->unk20 = 0; - Hu3DModelAttrReset(temp_r31->unk1C, 1); - } - break; - - case 8: - case 12: - temp_f31 = Hu3DData[temp_r31->unk1C].pos.y; - temp_r31->unk20 -= 0.98f; - temp_f31 += temp_r31->unk20; - if(temp_f31 <= 50.0f) { - temp_f31 = 50.0f; - temp_r31->unk0 &= ~0x1C; - if(temp_r22 == 8) { - temp_r31->unk20 = 6; - temp_r31->unk0 |= 12; - HuAudFXPlay(1664); - } else { - temp_r31->unk20 = 0; - temp_r31->unk0 |= 16; - } - } - Hu3DModelPosSet(temp_r31->unk1C, temp_r31->unkC.x, temp_f31, temp_r31->unkC.z); - Hu3DModelRotSet(temp_r31->unk1C, 0, temp_r31->unk8, 0); - break; - - default: - break; - } - } - } - if(temp_r25) { - lbl_1_bss_10 = 0; - } + float temp_f31; + s16 sp8[2]; + Unk2110Obj *temp_r31; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r25; + u32 temp_r22; + switch (lbl_1_data_162) { + case 0: + lbl_1_bss_10++; + if (lbl_1_bss_10 > 60) { + lbl_1_bss_10 = 0; + lbl_1_data_162++; + } + return; + + case 1: + temp_r28 = arg0[0].unk16C[4]; + arg0[0].unk4[temp_r28].unk0 = 4; + temp_r28 = arg0[1].unk16C[4]; + arg0[1].unk4[temp_r28].unk0 = 4; + lbl_1_bss_10 = 999; + lbl_1_data_162++; + break; + + case 2: + temp_r31 = &arg0[0].unk4[arg0[0].unk16C[5]]; + if ((temp_r31->unk0 & 0x1C) == 0x10) { + lbl_1_bss_10 = 0; + fn_1_2050(224, 96); + lbl_1_data_162 = 0; + return; + } + break; + } + temp_r25 = 0; + sp8[0] = sp8[1] = ++lbl_1_bss_10; + for (temp_r27 = 0; temp_r27 < 2; temp_r27++, arg0++) { + for (temp_r29 = 4; temp_r29 > -6; temp_r29--) { + temp_r28 = (temp_r29 < 0) ? arg0->unk16C[temp_r29 + 10] : arg0->unk16C[temp_r29]; + temp_r31 = &arg0[0].unk4[temp_r28]; + switch (temp_r22 = temp_r31->unk0 & 0x1C) { + case 4: + if (sp8[temp_r27] > 15) { + sp8[temp_r27] = 0; + temp_r25 = 1; + if (temp_r29 - 1 > -6) { + temp_r28 = ((temp_r29 - 1) < 0) ? arg0->unk16C[(temp_r29 - 1) + 10] : arg0->unk16C[(temp_r29 - 1)]; + arg0[0].unk4[temp_r28].unk0 &= ~0x1C; + arg0[0].unk4[temp_r28].unk0 |= 0x4; + } + temp_r31->unk0 &= ~0x1C; + temp_r31->unk0 |= 8; + temp_r31->unk20 = 0; + Hu3DModelAttrReset(temp_r31->unk1C, 1); + } + break; + + case 8: + case 12: + temp_f31 = Hu3DData[temp_r31->unk1C].pos.y; + temp_r31->unk20 -= 0.98f; + temp_f31 += temp_r31->unk20; + if (temp_f31 <= 50.0f) { + temp_f31 = 50.0f; + temp_r31->unk0 &= ~0x1C; + if (temp_r22 == 8) { + temp_r31->unk20 = 6; + temp_r31->unk0 |= 12; + HuAudFXPlay(1664); + } + else { + temp_r31->unk20 = 0; + temp_r31->unk0 |= 16; + } + } + Hu3DModelPosSet(temp_r31->unk1C, temp_r31->unkC.x, temp_f31, temp_r31->unkC.z); + Hu3DModelRotSet(temp_r31->unk1C, 0, temp_r31->unk8, 0); + break; + + default: + break; + } + } + } + if (temp_r25) { + lbl_1_bss_10 = 0; + } } s32 lbl_1_data_164 = -1; @@ -1028,476 +1004,483 @@ s32 fn_1_7A78(s32 arg0, s16 arg1); void fn_1_3540(Work2110 *arg0) { - float sp8[2]; - float temp_f31; - float temp_f30; - Unk2110Obj *temp_r30; - s16 temp_r29; - Bss61CWork *temp_r27; - s16 temp_r26; - s16 temp_r25; - temp_r25 = 0; - switch(lbl_1_data_162) { - case 0: - lbl_1_bss_20[0] = arg0[0].unk0; - lbl_1_bss_20[1] = arg0[1].unk0; - temp_r29 = rand16()%11; - temp_f31 = (temp_r29 < 5) ? 360.0f : 180.0f; - temp_f31 += temp_r29*36.0f; - lbl_1_bss_18[0] = lbl_1_bss_20[0]+temp_f31; - lbl_1_bss_18[1] = lbl_1_bss_20[1]-temp_f31; - lbl_1_bss_14 = (0.01f*temp_f31)*60; - lbl_1_data_162++; - lbl_1_data_164 = HuAudFXPlay(1665); - break; - - case 1: - if(lbl_1_bss_10 == lbl_1_bss_14) { - arg0[0].unk0 = fmod(arg0[0].unk0, 360); - arg0[1].unk0 = fmod(arg0[1].unk0, 360); - if(arg0[0].unk0 < 0.0f) { - arg0[0].unk0 += 360.0f; - } - if(arg0[1].unk0 < 0.0f) { - arg0[1].unk0 += 360.0f; - } - fn_1_48D0(&arg0[0]); - fn_1_48D0(&arg0[1]); - lbl_1_data_162++; - lbl_1_bss_10 = 0; - temp_r25 = 1; - } - break; - - case 2: - temp_r25 = 1; - fn_1_4D4C(); - fn_1_52D8(); - fn_1_566C(1); - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r27 = lbl_1_bss_61C[temp_r29]->data; - fn_1_4E30(temp_r27->unkA, temp_r27); - } - lbl_1_data_162 = 0; - fn_1_2050(224, 0); - break; - } - sp8[0] = lbl_1_data_1D0+arg0[0].unk0; - sp8[1] = lbl_1_data_1D0+arg0[1].unk0; - if(temp_r25 == 0) { - lbl_1_bss_10++; - temp_f31 = lbl_1_bss_10/(float)lbl_1_bss_14; - temp_f31 = sind(temp_f31*90.0f); - if(lbl_1_bss_10 > lbl_1_bss_14-120) { - temp_f30 = (lbl_1_bss_10-(lbl_1_bss_14-120))/120.0f; - if(temp_f30 < 0.0f) { - temp_f30 = 0.0f; - } else { - if(temp_f30 > 1.0f) { - temp_f30 = 1.0f; - } - } - if(lbl_1_data_164 != -1) { - HuAudFXPitchSet(lbl_1_data_164, -8191.0f*temp_f30); - fn_1_7A78(lbl_1_data_164, (1.0f-temp_f30)*127); - } - if(lbl_1_bss_10 >= lbl_1_bss_14) { - if(lbl_1_data_164 != -1) { - HuAudFXStop(lbl_1_data_164); - lbl_1_data_164 = -1; - HuAudFXPlay(1675); - } - } - } - if(lbl_1_bss_10 > lbl_1_bss_14) { - lbl_1_bss_10 = lbl_1_bss_14; - temp_f31 = 1; - } - arg0[0].unk0 = lbl_1_bss_20[0]+(temp_f31*(lbl_1_bss_18[0]-lbl_1_bss_20[0])); - arg0[1].unk0 = lbl_1_bss_20[1]+(temp_f31*(lbl_1_bss_18[1]-lbl_1_bss_20[1])); - } - Hu3DData[lbl_1_bss_2C->model[3]].rot.y = sp8[0]; - Hu3DData[lbl_1_bss_2C->model[4]].rot.y = sp8[1]; - for(temp_r29=0; temp_r29<2; temp_r29++, arg0++) { - temp_r30 = &arg0->unk4[0]; - for(temp_r26=0; temp_r26<10; temp_r26++, temp_r30++) { - float temp_f29 = temp_r30->unkC.x; - float temp_f28 = temp_r30->unkC.z; - Hu3DModelPosSet(temp_r30->unk1A, temp_f29, 45, temp_f28); - Hu3DModelRotSet(temp_r30->unk1A, 0, temp_r30->unk8, 0); - Hu3DModelPosSet(temp_r30->unk1E, temp_f29, 45, temp_f28); - Hu3DModelRotSet(temp_r30->unk1E, 0, temp_r30->unk8, 0); - Hu3DModelPosSet(temp_r30->unk1C, temp_f29, 50, temp_f28); - Hu3DModelRotSet(temp_r30->unk1C, 0, temp_r30->unk8, 0); - } - } + float sp8[2]; + float temp_f31; + float temp_f30; + Unk2110Obj *temp_r30; + s16 temp_r29; + Bss61CWork *temp_r27; + s16 temp_r26; + s16 temp_r25; + temp_r25 = 0; + switch (lbl_1_data_162) { + case 0: + lbl_1_bss_20[0] = arg0[0].unk0; + lbl_1_bss_20[1] = arg0[1].unk0; + temp_r29 = rand16() % 11; + temp_f31 = (temp_r29 < 5) ? 360.0f : 180.0f; + temp_f31 += temp_r29 * 36.0f; + lbl_1_bss_18[0] = lbl_1_bss_20[0] + temp_f31; + lbl_1_bss_18[1] = lbl_1_bss_20[1] - temp_f31; + lbl_1_bss_14 = (0.01f * temp_f31) * 60; + lbl_1_data_162++; + lbl_1_data_164 = HuAudFXPlay(1665); + break; + + case 1: + if (lbl_1_bss_10 == lbl_1_bss_14) { + arg0[0].unk0 = fmod(arg0[0].unk0, 360); + arg0[1].unk0 = fmod(arg0[1].unk0, 360); + if (arg0[0].unk0 < 0.0f) { + arg0[0].unk0 += 360.0f; + } + if (arg0[1].unk0 < 0.0f) { + arg0[1].unk0 += 360.0f; + } + fn_1_48D0(&arg0[0]); + fn_1_48D0(&arg0[1]); + lbl_1_data_162++; + lbl_1_bss_10 = 0; + temp_r25 = 1; + } + break; + + case 2: + temp_r25 = 1; + fn_1_4D4C(); + fn_1_52D8(); + fn_1_566C(1); + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r27 = lbl_1_bss_61C[temp_r29]->data; + fn_1_4E30(temp_r27->unkA, temp_r27); + } + lbl_1_data_162 = 0; + fn_1_2050(224, 0); + break; + } + sp8[0] = lbl_1_data_1D0 + arg0[0].unk0; + sp8[1] = lbl_1_data_1D0 + arg0[1].unk0; + if (temp_r25 == 0) { + lbl_1_bss_10++; + temp_f31 = lbl_1_bss_10 / (float)lbl_1_bss_14; + temp_f31 = sind(temp_f31 * 90.0f); + if (lbl_1_bss_10 > lbl_1_bss_14 - 120) { + temp_f30 = (lbl_1_bss_10 - (lbl_1_bss_14 - 120)) / 120.0f; + if (temp_f30 < 0.0f) { + temp_f30 = 0.0f; + } + else { + if (temp_f30 > 1.0f) { + temp_f30 = 1.0f; + } + } + if (lbl_1_data_164 != -1) { + HuAudFXPitchSet(lbl_1_data_164, -8191.0f * temp_f30); + fn_1_7A78(lbl_1_data_164, (1.0f - temp_f30) * 127); + } + if (lbl_1_bss_10 >= lbl_1_bss_14) { + if (lbl_1_data_164 != -1) { + HuAudFXStop(lbl_1_data_164); + lbl_1_data_164 = -1; + HuAudFXPlay(1675); + } + } + } + if (lbl_1_bss_10 > lbl_1_bss_14) { + lbl_1_bss_10 = lbl_1_bss_14; + temp_f31 = 1; + } + arg0[0].unk0 = lbl_1_bss_20[0] + (temp_f31 * (lbl_1_bss_18[0] - lbl_1_bss_20[0])); + arg0[1].unk0 = lbl_1_bss_20[1] + (temp_f31 * (lbl_1_bss_18[1] - lbl_1_bss_20[1])); + } + Hu3DData[lbl_1_bss_2C->model[3]].rot.y = sp8[0]; + Hu3DData[lbl_1_bss_2C->model[4]].rot.y = sp8[1]; + for (temp_r29 = 0; temp_r29 < 2; temp_r29++, arg0++) { + temp_r30 = &arg0->unk4[0]; + for (temp_r26 = 0; temp_r26 < 10; temp_r26++, temp_r30++) { + float temp_f29 = temp_r30->unkC.x; + float temp_f28 = temp_r30->unkC.z; + Hu3DModelPosSet(temp_r30->unk1A, temp_f29, 45, temp_f28); + Hu3DModelRotSet(temp_r30->unk1A, 0, temp_r30->unk8, 0); + Hu3DModelPosSet(temp_r30->unk1E, temp_f29, 45, temp_f28); + Hu3DModelRotSet(temp_r30->unk1E, 0, temp_r30->unk8, 0); + Hu3DModelPosSet(temp_r30->unk1C, temp_f29, 50, temp_f28); + Hu3DModelRotSet(temp_r30->unk1C, 0, temp_r30->unk8, 0); + } + } } void fn_1_3FD0(Unk72B4Data18 *arg0); - void fn_1_3D7C(Work2110 *arg0) { - Unk2110Obj *temp_r31; - ModelData *temp_r30; - s16 temp_r29; - WorkA44 *temp_r28; - s16 temp_r27; - switch(lbl_1_data_162) { - case 0: - if(++lbl_1_bss_10 > 60) { - lbl_1_bss_10 = 0; - lbl_1_data_162++; - } - break; - - case 1: - for(temp_r29=0; temp_r29<2; temp_r29++, arg0++) { - temp_r31 = &arg0->unk4[0]; - for(temp_r27=0; temp_r27<10; temp_r27++, temp_r31++) { - temp_r30 = &Hu3DData[temp_r31->unk1C]; - temp_r31->unk0 &= ~0x1C; - if(!(temp_r31->unk0 & 0x1)) { - fn_1_5B70(temp_r30->pos.x, 20+temp_r30->pos.y, temp_r30->pos.z, 20, fn_1_3FD0, temp_r31->unk1C); - if(temp_r29 == 0) { - HuAudFXPlay(1669); - } else { - HuAudFXPlay(1674); - } - } else { - temp_r30->pos.y = 1000; - } - temp_r31->unk0 &= ~0x3; - Hu3DModelScaleSet(temp_r31->unk1A, 1, 1, 1); - } - } - lbl_1_data_162++; - break; - - case 2: - if(++lbl_1_bss_10 > 60) { - lbl_1_bss_10 = lbl_1_data_162 = 0; - fn_1_2050(224, 32); - } - break; - } + Unk2110Obj *temp_r31; + ModelData *temp_r30; + s16 temp_r29; + WorkA44 *temp_r28; + s16 temp_r27; + switch (lbl_1_data_162) { + case 0: + if (++lbl_1_bss_10 > 60) { + lbl_1_bss_10 = 0; + lbl_1_data_162++; + } + break; + + case 1: + for (temp_r29 = 0; temp_r29 < 2; temp_r29++, arg0++) { + temp_r31 = &arg0->unk4[0]; + for (temp_r27 = 0; temp_r27 < 10; temp_r27++, temp_r31++) { + temp_r30 = &Hu3DData[temp_r31->unk1C]; + temp_r31->unk0 &= ~0x1C; + if (!(temp_r31->unk0 & 0x1)) { + fn_1_5B70(temp_r30->pos.x, 20 + temp_r30->pos.y, temp_r30->pos.z, 20, fn_1_3FD0, temp_r31->unk1C); + if (temp_r29 == 0) { + HuAudFXPlay(1669); + } + else { + HuAudFXPlay(1674); + } + } + else { + temp_r30->pos.y = 1000; + } + temp_r31->unk0 &= ~0x3; + Hu3DModelScaleSet(temp_r31->unk1A, 1, 1, 1); + } + } + lbl_1_data_162++; + break; + + case 2: + if (++lbl_1_bss_10 > 60) { + lbl_1_bss_10 = lbl_1_data_162 = 0; + fn_1_2050(224, 32); + } + break; + } } void fn_1_3FD0(Unk72B4Data18 *arg0) { - Hu3DData[arg0->unk2C].pos.y = 1000; - Hu3DModelAttrSet(arg0->unk2C, 1); + Hu3DData[arg0->unk2C].pos.y = 1000; + Hu3DModelAttrSet(arg0->unk2C, 1); } void fn_1_4028(Work2110 *arg0) { - float temp_f31; - float temp_f30; - Unk2110Obj *temp_r31; - WorkA44 *temp_r30; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - Bss61CWork *temp_r24; - temp_r30 = lbl_1_bss_30->data; - temp_r27 = -1; - switch(lbl_1_data_162) { - case 0: - temp_r30->unk10 = MGSeqTimerCreate(15); - lbl_1_data_162++; - break; - - case 1: - if(lbl_1_bss_12C[0].unk134[0] && lbl_1_bss_12C[0].unk134[1]) { - temp_r27 = 0; - } - if(lbl_1_bss_12C[1].unk134[0] && lbl_1_bss_12C[1].unk134[1]) { - if(temp_r27 == 0) { - temp_r27 = (rand16() % 2) ? 0 : 1; - } else { - temp_r27 = 1; - } - } - temp_r30->unk6[1] = temp_r27; - if(temp_r27 != -1) { - fn_1_A7D0(temp_r30->unk6[1]); - fn_1_20D0(lbl_1_bss_12C[temp_r27].unk138[0]); - fn_1_5480(); - fn_1_566C(3); - lbl_1_bss_12C[temp_r27].unk138[0]++; - MGSeqParamSet(temp_r30->unk10, 2, -1); - temp_r30->unk10 = -1; - temp_r30->unk6[0]++; - lbl_1_bss_10 = 0; - lbl_1_data_162++; - } else { - if(--temp_r30->unkA < -1) { - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r24 = lbl_1_bss_61C[temp_r29]->data; - for(temp_r28=0; temp_r28<8; temp_r28++) { - temp_r24->unk5E[temp_r28] = -1; - } - } - fn_1_5480(); - fn_1_566C(4); - temp_r30->unkA = 0; - MGSeqParamSet(temp_r30->unk10, 2, -1); - - temp_r30->unk10 = -1; - temp_r30->unk6[0]++; - lbl_1_bss_10 = 0; - lbl_1_data_162++; - } - } - if(temp_r30->unk6[0] >= 5) { - if(lbl_1_bss_12C[0].unk138[0] == lbl_1_bss_12C[1].unk138[0]) { - HuAudFXPlay(11); - } - } - break; - - case 2: - if(++lbl_1_bss_10 > 90.0f) { - lbl_1_bss_10 = 0; - lbl_1_data_162 = 1; - fn_1_2050(224, 128); - } - break; - } - for(temp_r29=0; temp_r29<2; temp_r29++, arg0++) { - temp_r31 = &arg0->unk4[0]; - for(temp_r28=0; temp_r28<10; temp_r28++, temp_r31++) { - if(!(temp_r31->unk0 & 0x1)) { - continue; - } - if(temp_r31->unk0 & 0x2) { - temp_r31->unk18++; - temp_f31 = temp_r31->unk18/30.0f; - if(temp_f31 >= 1.0f) { - temp_r31->unk20 -= 1.0f; - if(temp_r31->unk20 < 0.4f) { - temp_r31->unk20 = 0.4f; - } - temp_r31->unk18 = 0; - temp_f31 = 1.0f; - } - temp_f31 = (temp_r31->unk20*0.7f)*sind(180.0f*temp_f31)+1.0f; - Hu3DModelScaleSet(temp_r31->unk1A, temp_f31, temp_f31, temp_f31); - } else { - if(!temp_r31->unk20) { - if(++temp_r31->unk18 > 30.0f) { - temp_r31->unk20 = 1; - temp_r31->unk18 = 0; - } - } else { - temp_r31->unk18++; - temp_f31 = temp_r31->unk18/54.0f; - if(temp_f31 >= 1.0f) { - temp_r31->unk18 = 54; - temp_f31 = 1.0f; - } - temp_f31 = cosd(temp_f31*90.0f); - temp_f30 = -50+(95*temp_f31); - Hu3DModelPosSet(temp_r31->unk1A, temp_r31->unkC.x, temp_f30, temp_r31->unkC.z); - Hu3DModelPosSet(temp_r31->unk1E, temp_r31->unkC.x, temp_f30, temp_r31->unkC.z); - } - } - } - } + float temp_f31; + float temp_f30; + Unk2110Obj *temp_r31; + WorkA44 *temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + Bss61CWork *temp_r24; + temp_r30 = lbl_1_bss_30->data; + temp_r27 = -1; + switch (lbl_1_data_162) { + case 0: + temp_r30->unk10 = MGSeqTimerCreate(15); + lbl_1_data_162++; + break; + + case 1: + if (lbl_1_bss_12C[0].unk134[0] && lbl_1_bss_12C[0].unk134[1]) { + temp_r27 = 0; + } + if (lbl_1_bss_12C[1].unk134[0] && lbl_1_bss_12C[1].unk134[1]) { + if (temp_r27 == 0) { + temp_r27 = (rand16() % 2) ? 0 : 1; + } + else { + temp_r27 = 1; + } + } + temp_r30->unk6[1] = temp_r27; + if (temp_r27 != -1) { + fn_1_A7D0(temp_r30->unk6[1]); + fn_1_20D0(lbl_1_bss_12C[temp_r27].unk138[0]); + fn_1_5480(); + fn_1_566C(3); + lbl_1_bss_12C[temp_r27].unk138[0]++; + MGSeqParamSet(temp_r30->unk10, 2, -1); + temp_r30->unk10 = -1; + temp_r30->unk6[0]++; + lbl_1_bss_10 = 0; + lbl_1_data_162++; + } + else { + if (--temp_r30->unkA < -1) { + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r24 = lbl_1_bss_61C[temp_r29]->data; + for (temp_r28 = 0; temp_r28 < 8; temp_r28++) { + temp_r24->unk5E[temp_r28] = -1; + } + } + fn_1_5480(); + fn_1_566C(4); + temp_r30->unkA = 0; + MGSeqParamSet(temp_r30->unk10, 2, -1); + + temp_r30->unk10 = -1; + temp_r30->unk6[0]++; + lbl_1_bss_10 = 0; + lbl_1_data_162++; + } + } + if (temp_r30->unk6[0] >= 5) { + if (lbl_1_bss_12C[0].unk138[0] == lbl_1_bss_12C[1].unk138[0]) { + HuAudFXPlay(11); + } + } + break; + + case 2: + if (++lbl_1_bss_10 > 90.0f) { + lbl_1_bss_10 = 0; + lbl_1_data_162 = 1; + fn_1_2050(224, 128); + } + break; + } + for (temp_r29 = 0; temp_r29 < 2; temp_r29++, arg0++) { + temp_r31 = &arg0->unk4[0]; + for (temp_r28 = 0; temp_r28 < 10; temp_r28++, temp_r31++) { + if (!(temp_r31->unk0 & 0x1)) { + continue; + } + if (temp_r31->unk0 & 0x2) { + temp_r31->unk18++; + temp_f31 = temp_r31->unk18 / 30.0f; + if (temp_f31 >= 1.0f) { + temp_r31->unk20 -= 1.0f; + if (temp_r31->unk20 < 0.4f) { + temp_r31->unk20 = 0.4f; + } + temp_r31->unk18 = 0; + temp_f31 = 1.0f; + } + temp_f31 = (temp_r31->unk20 * 0.7f) * sind(180.0f * temp_f31) + 1.0f; + Hu3DModelScaleSet(temp_r31->unk1A, temp_f31, temp_f31, temp_f31); + } + else { + if (!temp_r31->unk20) { + if (++temp_r31->unk18 > 30.0f) { + temp_r31->unk20 = 1; + temp_r31->unk18 = 0; + } + } + else { + temp_r31->unk18++; + temp_f31 = temp_r31->unk18 / 54.0f; + if (temp_f31 >= 1.0f) { + temp_r31->unk18 = 54; + temp_f31 = 1.0f; + } + temp_f31 = cosd(temp_f31 * 90.0f); + temp_f30 = -50 + (95 * temp_f31); + Hu3DModelPosSet(temp_r31->unk1A, temp_r31->unkC.x, temp_f30, temp_r31->unkC.z); + Hu3DModelPosSet(temp_r31->unk1E, temp_r31->unkC.x, temp_f30, temp_r31->unkC.z); + } + } + } + } } s16 fn_1_4724(void) { - return lbl_1_data_162; + return lbl_1_data_162; } u32 fn_1_4738(s16 arg0, s16 arg1) { - Work2110 *temp_r31; - temp_r31 = lbl_1_bss_2C->data; - temp_r31 += arg0; - if(arg1 == -1) { - return 0; - } - return temp_r31->unk4[temp_r31->unk16C[arg1]].unk0; + Work2110 *temp_r31; + temp_r31 = lbl_1_bss_2C->data; + temp_r31 += arg0; + if (arg1 == -1) { + return 0; + } + return temp_r31->unk4[temp_r31->unk16C[arg1]].unk0; } void fn_1_66DC(s16 *arg0, s16 arg1, s16 arg2); void fn_1_4798(Work2110 *arg0) { - s16 temp_r31; - s16 sp10[10]; - Unk2110Obj *sp8[2]; - fn_1_66DC(sp10, 0, 10); - sp8[0] = &arg0[0].unk4[0]; - sp8[1] = &arg0[1].unk4[0]; - for(temp_r31=0; temp_r31<10; temp_r31++, sp8[0]++, sp8[1]++) { - sp8[0]->unk1A = lbl_1_bss_34[sp10[temp_r31]]; - sp8[1]->unk1A = lbl_1_bss_34[sp10[temp_r31]+10]; - sp8[0]->unk18 = sp8[1]->unk18 = (sp10[temp_r31] < 5) ? sp10[temp_r31] : sp10[temp_r31]-5; - } + s16 temp_r31; + s16 sp10[10]; + Unk2110Obj *sp8[2]; + fn_1_66DC(sp10, 0, 10); + sp8[0] = &arg0[0].unk4[0]; + sp8[1] = &arg0[1].unk4[0]; + for (temp_r31 = 0; temp_r31 < 10; temp_r31++, sp8[0]++, sp8[1]++) { + sp8[0]->unk1A = lbl_1_bss_34[sp10[temp_r31]]; + sp8[1]->unk1A = lbl_1_bss_34[sp10[temp_r31] + 10]; + sp8[0]->unk18 = sp8[1]->unk18 = (sp10[temp_r31] < 5) ? sp10[temp_r31] : sp10[temp_r31] - 5; + } } void fn_1_48D0(Work2110 *arg0) { - float temp_f31; - s16 temp_r31; - s16 temp_r30; - for(temp_r30=0; temp_r30<10; temp_r30++) { - temp_f31 = arg0->unk0+arg0->unk4[temp_r30].unk4; - temp_r31 = (temp_f31/360.0f)*10.0f; - if(temp_r31 >= 10) { - temp_r31 -= 10; - } else if(temp_r31 < 0) { - temp_r31 += 10; - } - arg0->unk16C[temp_r31] = temp_r30; - } + float temp_f31; + s16 temp_r31; + s16 temp_r30; + for (temp_r30 = 0; temp_r30 < 10; temp_r30++) { + temp_f31 = arg0->unk0 + arg0->unk4[temp_r30].unk4; + temp_r31 = (temp_f31 / 360.0f) * 10.0f; + if (temp_r31 >= 10) { + temp_r31 -= 10; + } + else if (temp_r31 < 0) { + temp_r31 += 10; + } + arg0->unk16C[temp_r31] = temp_r30; + } } void fn_1_498C(s16 arg0, Work2110 *arg1) { - float temp_f31; - Unk2110Obj *temp_r31; - Bss12CStruct *temp_r30; - s16 temp_r29; - temp_r31 = &arg1->unk4[0]; - temp_r30 = &lbl_1_bss_12C[arg0]; - for(temp_r29=0; temp_r29<10; temp_r29++, temp_r31++) { - temp_f31 = arg1->unk0+temp_r31->unk4; - if(temp_f31 >= 360.0f) { - temp_f31 -= 360.0f; - } - temp_r31->unkC.x = temp_r30->unkC.x+(153.0*sind(temp_f31)); - temp_r31->unkC.z = temp_r30->unkC.z+(153.0*cosd(temp_f31)); - temp_r31->unk8 = atan2d(temp_r30->unkC.x-temp_r31->unkC.x, temp_r30->unkC.z-temp_r31->unkC.z); - } + float temp_f31; + Unk2110Obj *temp_r31; + Bss12CStruct *temp_r30; + s16 temp_r29; + temp_r31 = &arg1->unk4[0]; + temp_r30 = &lbl_1_bss_12C[arg0]; + for (temp_r29 = 0; temp_r29 < 10; temp_r29++, temp_r31++) { + temp_f31 = arg1->unk0 + temp_r31->unk4; + if (temp_f31 >= 360.0f) { + temp_f31 -= 360.0f; + } + temp_r31->unkC.x = temp_r30->unkC.x + (153.0 * sind(temp_f31)); + temp_r31->unkC.z = temp_r30->unkC.z + (153.0 * cosd(temp_f31)); + temp_r31->unk8 = atan2d(temp_r30->unkC.x - temp_r31->unkC.x, temp_r30->unkC.z - temp_r31->unkC.z); + } } s16 fn_1_4B14(s16 arg0, s16 arg1, s16 *arg2) { - Unk2110Obj *temp_r31; - s16 temp_r30; - Work2110 *temp_r29; - temp_r29 = lbl_1_bss_2C->data; - *arg2 = 0; - temp_r29 += arg0; - temp_r31 = &temp_r29->unk4[temp_r29->unk16C[arg1]]; - if(temp_r31->unk0 & 0x1) { - return -1; - } - temp_r31->unk0 |= 0x1; - for(temp_r30=0; temp_r30<2; temp_r30++) { - if(!lbl_1_bss_12C[arg0].unk134[temp_r30] && lbl_1_bss_5C.unkC[temp_r30] == temp_r31->unk18) { - *arg2 = 1; - lbl_1_bss_12C[arg0].unk134[temp_r30] = 1; - temp_r31->unk0 |= 0x2; - temp_r31->unk18 = 0; - temp_r31->unk20 = 1; - Hu3DMotionTimeSet(lbl_1_bss_2C->model[arg0+1], 0); - Hu3DModelAttrReset(lbl_1_bss_2C->model[arg0+1], 0x40000002); - HuAudFXPlay(9); - break; - } - - } - return temp_r31->unk1C; + Unk2110Obj *temp_r31; + s16 temp_r30; + Work2110 *temp_r29; + temp_r29 = lbl_1_bss_2C->data; + *arg2 = 0; + temp_r29 += arg0; + temp_r31 = &temp_r29->unk4[temp_r29->unk16C[arg1]]; + if (temp_r31->unk0 & 0x1) { + return -1; + } + temp_r31->unk0 |= 0x1; + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + if (!lbl_1_bss_12C[arg0].unk134[temp_r30] && lbl_1_bss_5C.unkC[temp_r30] == temp_r31->unk18) { + *arg2 = 1; + lbl_1_bss_12C[arg0].unk134[temp_r30] = 1; + temp_r31->unk0 |= 0x2; + temp_r31->unk18 = 0; + temp_r31->unk20 = 1; + Hu3DMotionTimeSet(lbl_1_bss_2C->model[arg0 + 1], 0); + Hu3DModelAttrReset(lbl_1_bss_2C->model[arg0 + 1], 0x40000002); + HuAudFXPlay(9); + break; + } + } + return temp_r31->unk1C; } s16 fn_1_4CDC(s16 arg0, s16 arg1) { - Work2110 *temp_r31; - Unk2110Obj *temp_r30; - temp_r31 = lbl_1_bss_2C->data; - temp_r31 += arg0; - temp_r30 = &temp_r31->unk4[temp_r31->unk16C[arg1]]; - if(temp_r30->unk0 & 0x1) { - return 0; - } else { - return 1; - } + Work2110 *temp_r31; + Unk2110Obj *temp_r30; + temp_r31 = lbl_1_bss_2C->data; + temp_r31 += arg0; + temp_r30 = &temp_r31->unk4[temp_r31->unk16C[arg1]]; + if (temp_r30->unk0 & 0x1) { + return 0; + } + else { + return 1; + } } void fn_1_4D4C(void) { - lbl_1_bss_5C.unkC[0] = rand16()%5; - lbl_1_bss_5C.unkC[1] = rand16()%5; - lbl_1_bss_12C[0].unk134[0] = lbl_1_bss_12C[0].unk134[1] = 0; - lbl_1_bss_12C[1].unk134[0] = lbl_1_bss_12C[1].unk134[1] = 0; + lbl_1_bss_5C.unkC[0] = rand16() % 5; + lbl_1_bss_5C.unkC[1] = rand16() % 5; + lbl_1_bss_12C[0].unk134[0] = lbl_1_bss_12C[0].unk134[1] = 0; + lbl_1_bss_12C[1].unk134[0] = lbl_1_bss_12C[1].unk134[1] = 0; } void fn_1_6638(s16 *arg0, s16 arg1); void fn_1_4E30(s16 arg0, Bss61CWork *arg1) { - s16 sp1E[10]; - s16 spA[10]; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - Work2110 *temp_r27; - Unk2110Obj *temp_r26; - temp_r27 = lbl_1_bss_2C->data; - for(temp_r30=0; temp_r30<10; temp_r30++) { - sp1E[temp_r30] = spA[temp_r30] = 0; - } - for(temp_r30=0; temp_r30<8; temp_r30++) { - arg1->unk5E[temp_r30] = -1; - } - temp_r27 += arg0; - for(temp_r28=0, temp_r29=0; temp_r28<2; temp_r28++) { - for(temp_r30=0; temp_r30<10; temp_r30++) { - temp_r26 = &temp_r27->unk4[temp_r27->unk16C[temp_r30]]; - if(temp_r26->unk18 == lbl_1_bss_5C.unkC[temp_r28] && !sp1E[temp_r30]) { - arg1->unk5E[temp_r29++] = temp_r30; - sp1E[temp_r30] = 1; - } - } - } - for(temp_r28=0, temp_r30=0; temp_r28<10; temp_r28++) { - if(!sp1E[temp_r28]) { - spA[temp_r30++] = temp_r28; - } - } - fn_1_6638(spA, temp_r30); - temp_r30 = 0; - if(temp_r29 == 2) { - temp_r29 += 2; - } - - while(1) { - if(temp_r29 >= 8) { - break; - } - arg1->unk5E[temp_r29++] = spA[temp_r30++]; - } - arg1->unk70 = 0; - temp_r29 = arg1->unk14->unk4; - switch(GWPlayerCfg[arg1->unk4].diff) { - case 0: - arg1->unk72 = (GWPlayerCfg[temp_r29].iscom) ? ((rand16()%3)+2) : ((rand16()%3)+1); - arg1->unk6E = 8; - break; - - case 1: - arg1->unk72 = (GWPlayerCfg[temp_r29].iscom) ? ((rand16()%3)+1) : ((rand16()%3)+0); - arg1->unk6E = 7; - break; - - case 2: - arg1->unk72 = (GWPlayerCfg[temp_r29].iscom) ? ((rand16()%3)+0) : ((rand16()%2)+0); - arg1->unk6E = 6; - break; - - case 3: - arg1->unk72 = (GWPlayerCfg[temp_r29].iscom) ? ((rand16()%2)+0) : 0; - arg1->unk6E = 5; - break; - } - if(arg1->unk6E < 4) { - arg1->unk6E = 4; - } + s16 sp1E[10]; + s16 spA[10]; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + Work2110 *temp_r27; + Unk2110Obj *temp_r26; + temp_r27 = lbl_1_bss_2C->data; + for (temp_r30 = 0; temp_r30 < 10; temp_r30++) { + sp1E[temp_r30] = spA[temp_r30] = 0; + } + for (temp_r30 = 0; temp_r30 < 8; temp_r30++) { + arg1->unk5E[temp_r30] = -1; + } + temp_r27 += arg0; + for (temp_r28 = 0, temp_r29 = 0; temp_r28 < 2; temp_r28++) { + for (temp_r30 = 0; temp_r30 < 10; temp_r30++) { + temp_r26 = &temp_r27->unk4[temp_r27->unk16C[temp_r30]]; + if (temp_r26->unk18 == lbl_1_bss_5C.unkC[temp_r28] && !sp1E[temp_r30]) { + arg1->unk5E[temp_r29++] = temp_r30; + sp1E[temp_r30] = 1; + } + } + } + for (temp_r28 = 0, temp_r30 = 0; temp_r28 < 10; temp_r28++) { + if (!sp1E[temp_r28]) { + spA[temp_r30++] = temp_r28; + } + } + fn_1_6638(spA, temp_r30); + temp_r30 = 0; + if (temp_r29 == 2) { + temp_r29 += 2; + } + + while (1) { + if (temp_r29 >= 8) { + break; + } + arg1->unk5E[temp_r29++] = spA[temp_r30++]; + } + arg1->unk70 = 0; + temp_r29 = arg1->unk14->unk4; + switch (GWPlayerCfg[arg1->unk4].diff) { + case 0: + arg1->unk72 = (GWPlayerCfg[temp_r29].iscom) ? ((rand16() % 3) + 2) : ((rand16() % 3) + 1); + arg1->unk6E = 8; + break; + + case 1: + arg1->unk72 = (GWPlayerCfg[temp_r29].iscom) ? ((rand16() % 3) + 1) : ((rand16() % 3) + 0); + arg1->unk6E = 7; + break; + + case 2: + arg1->unk72 = (GWPlayerCfg[temp_r29].iscom) ? ((rand16() % 3) + 0) : ((rand16() % 2) + 0); + arg1->unk6E = 6; + break; + + case 3: + arg1->unk72 = (GWPlayerCfg[temp_r29].iscom) ? ((rand16() % 2) + 0) : 0; + arg1->unk6E = 5; + break; + } + if (arg1->unk6E < 4) { + arg1->unk6E = 4; + } } void fn_1_5524(void); @@ -1506,397 +1489,401 @@ Unk72B4Data18 *fn_1_6B34(s16 arg0, Vec *arg1, Vec *arg2, float arg3, GXColor *ar void fn_1_52D8(void) { - Bss5CStruct *temp_r31; - s16 temp_r30; - Unk72B4Data18 *temp_r29; - Vec sp18; - Vec spC; - GXColor sp8 = { 255, 255, 255, 255 }; - temp_r31 = &lbl_1_bss_5C; - sp18.x = 0; - sp18.y = 200; - sp18.z = -300; - spC.x = spC.z = 1; - spC.y = 0.5f; - fn_1_6B34(temp_r31->unk0[0], &sp18, &spC, 0, &sp8); - for(temp_r30=0; temp_r30<2; temp_r30++) { - sp18.x = (temp_r30 == 0) ? -60.0f : 60.0f; - sp18.y = 220; - sp18.z = -290; - spC.x = spC.y = spC.z = 1; - temp_r29 = fn_1_6B34(temp_r31->unk0[temp_r31->unkC[temp_r30]+1], &sp18, &spC, 0, &sp8); - temp_r29->unk28 = temp_r30; - } - fn_1_5524(); + Bss5CStruct *temp_r31; + s16 temp_r30; + Unk72B4Data18 *temp_r29; + Vec sp18; + Vec spC; + GXColor sp8 = { 255, 255, 255, 255 }; + temp_r31 = &lbl_1_bss_5C; + sp18.x = 0; + sp18.y = 200; + sp18.z = -300; + spC.x = spC.z = 1; + spC.y = 0.5f; + fn_1_6B34(temp_r31->unk0[0], &sp18, &spC, 0, &sp8); + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + sp18.x = (temp_r30 == 0) ? -60.0f : 60.0f; + sp18.y = 220; + sp18.z = -290; + spC.x = spC.y = spC.z = 1; + temp_r29 = fn_1_6B34(temp_r31->unk0[temp_r31->unkC[temp_r30] + 1], &sp18, &spC, 0, &sp8); + temp_r29->unk28 = temp_r30; + } + fn_1_5524(); } Work72B4 *fn_1_7218(s16 arg0); void fn_1_5480(void) { - Work72B4 *temp_r31; - Bss5CStruct *temp_r30 = &lbl_1_bss_5C; - s16 temp_r29; - temp_r31 = fn_1_7218(temp_r30->unk0[0]); - temp_r31->unk18[0].unk56 = 0; - for(temp_r29=0; temp_r29<2; temp_r29++) { - temp_r31 = fn_1_7218(temp_r30->unk0[temp_r30->unkC[temp_r29]+1]); - temp_r31->unk18[0].unk56 = temp_r31->unk18[1].unk56 = 0; - - } + Work72B4 *temp_r31; + Bss5CStruct *temp_r30 = &lbl_1_bss_5C; + s16 temp_r29; + temp_r31 = fn_1_7218(temp_r30->unk0[0]); + temp_r31->unk18[0].unk56 = 0; + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + temp_r31 = fn_1_7218(temp_r30->unk0[temp_r30->unkC[temp_r29] + 1]); + temp_r31->unk18[0].unk56 = temp_r31->unk18[1].unk56 = 0; + } } void fn_1_5524(void) { - float temp_f30; - Bss5CStruct *temp_r31; - Work72B4 *temp_r30; - s16 temp_r29; - s16 temp_r28; - temp_r31 = &lbl_1_bss_5C; - temp_r30 = fn_1_7218(temp_r31->unk0[0]); - temp_r30->unk18[0].unk48.x = temp_r31->unk18; - for(temp_r28=0; temp_r28<2; temp_r28++) { - temp_r30 = fn_1_7218(temp_r31->unk0[temp_r31->unkC[temp_r28]+1]); - for(temp_r29=0; temp_r29<2; temp_r29++) { - if(temp_r30->unk18[temp_r29].unk56) { - temp_f30 = (temp_r30->unk18[temp_r29].unk28 == 0) ? -60.0f : 60.0f; - temp_r30->unk18[temp_r29].unk48.x = temp_f30+temp_r31->unk18; - } - } - } - + float temp_f30; + Bss5CStruct *temp_r31; + Work72B4 *temp_r30; + s16 temp_r29; + s16 temp_r28; + temp_r31 = &lbl_1_bss_5C; + temp_r30 = fn_1_7218(temp_r31->unk0[0]); + temp_r30->unk18[0].unk48.x = temp_r31->unk18; + for (temp_r28 = 0; temp_r28 < 2; temp_r28++) { + temp_r30 = fn_1_7218(temp_r31->unk0[temp_r31->unkC[temp_r28] + 1]); + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + if (temp_r30->unk18[temp_r29].unk56) { + temp_f30 = (temp_r30->unk18[temp_r29].unk28 == 0) ? -60.0f : 60.0f; + temp_r30->unk18[temp_r29].unk48.x = temp_f30 + temp_r31->unk18; + } + } + } } void fn_1_566C(s16 arg0) { - ModelData *sp8 = &Hu3DData[lbl_1_bss_2C->model[5]]; - lbl_1_bss_5C.unk14 = 0; - lbl_1_bss_5C.unk12 = 0; - lbl_1_bss_5C.unk10 = arg0; - lbl_1_bss_5C.unk20 = lbl_1_bss_5C.unk34 = 0; - lbl_1_bss_5C.unk28[1] = lbl_1_bss_5C.unk28[0]; + ModelData *sp8 = &Hu3DData[lbl_1_bss_2C->model[5]]; + lbl_1_bss_5C.unk14 = 0; + lbl_1_bss_5C.unk12 = 0; + lbl_1_bss_5C.unk10 = arg0; + lbl_1_bss_5C.unk20 = lbl_1_bss_5C.unk34 = 0; + lbl_1_bss_5C.unk28[1] = lbl_1_bss_5C.unk28[0]; } void fn_1_5708(void) { - Bss5CStruct *temp_r31; - ModelData *temp_r30; - WorkA44 *temp_r29; - temp_r30 = &Hu3DData[lbl_1_bss_2C->model[5]]; - temp_r29 = lbl_1_bss_30->data; - temp_r31 = &lbl_1_bss_5C; - switch(temp_r31->unk10) { - case 0: - if(temp_r30->unk_08 != lbl_1_bss_2C->motion[0]) { - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[0], 0, 8, 0x40000001); - } - break; - - case 1: - if(temp_r31->unk12 == 0) { - temp_r31->unk12 = 1; - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[1], 0, 8, 0); - } else { - if(temp_r30->unk_0C == -1) { - if(temp_r30->unk_64 >= Hu3DMotionMaxTimeGet(lbl_1_bss_2C->model[5])) { - temp_r31->unk16 = rand16()%2; - temp_r31->unk12 = 0; - temp_r31->unk10 = 2; - } - } - } - break; - - case 2: - if(temp_r31->unk12 == 0) { - temp_r31->unk12 = 1; - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[5], 0, 8, 0x40000001); - } else { - if(temp_r29->unkA < 180) { - temp_r31->unk12 = 0; - temp_r31->unk10 = 5; - } - } - break; - - case 3: - if(temp_r31->unk12 == 0) { - temp_r31->unk12 = 1; - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[2], 0, 8, 0x40000001); - } else { - if(temp_r30->unk_0C == -1) { - if(temp_r30->unk_64 >= Hu3DMotionMaxTimeGet(lbl_1_bss_2C->model[5])-1.0f) { - if(++temp_r31->unk14 > 1) { - temp_r31->unk12 = 0; - temp_r31->unk10 = 0; - } - } - } - } - break; - - case 4: - if(temp_r31->unk12 == 0) { - temp_r31->unk12 = 1; - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[3], 0, 8, 0); - } else { - if(temp_r30->unk_0C == -1) { - if(temp_r30->unk_64 >= Hu3DMotionMaxTimeGet(lbl_1_bss_2C->model[5])) { - temp_r31->unk12 = 0; - temp_r31->unk10 = 0; - } - } - } - break; - - case 5: - if(temp_r31->unk12 == 0) { - temp_r31->unk12 = 1; - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[6], 0, 8, 0x40000001); - } - break; - } - temp_r30->pos.x = temp_r31->unk18; - temp_r30->rot.y = temp_r31->unk28[0]; + Bss5CStruct *temp_r31; + ModelData *temp_r30; + WorkA44 *temp_r29; + temp_r30 = &Hu3DData[lbl_1_bss_2C->model[5]]; + temp_r29 = lbl_1_bss_30->data; + temp_r31 = &lbl_1_bss_5C; + switch (temp_r31->unk10) { + case 0: + if (temp_r30->unk_08 != lbl_1_bss_2C->motion[0]) { + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[0], 0, 8, 0x40000001); + } + break; + + case 1: + if (temp_r31->unk12 == 0) { + temp_r31->unk12 = 1; + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[1], 0, 8, 0); + } + else { + if (temp_r30->unk_0C == -1) { + if (temp_r30->unk_64 >= Hu3DMotionMaxTimeGet(lbl_1_bss_2C->model[5])) { + temp_r31->unk16 = rand16() % 2; + temp_r31->unk12 = 0; + temp_r31->unk10 = 2; + } + } + } + break; + + case 2: + if (temp_r31->unk12 == 0) { + temp_r31->unk12 = 1; + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[5], 0, 8, 0x40000001); + } + else { + if (temp_r29->unkA < 180) { + temp_r31->unk12 = 0; + temp_r31->unk10 = 5; + } + } + break; + + case 3: + if (temp_r31->unk12 == 0) { + temp_r31->unk12 = 1; + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[2], 0, 8, 0x40000001); + } + else { + if (temp_r30->unk_0C == -1) { + if (temp_r30->unk_64 >= Hu3DMotionMaxTimeGet(lbl_1_bss_2C->model[5]) - 1.0f) { + if (++temp_r31->unk14 > 1) { + temp_r31->unk12 = 0; + temp_r31->unk10 = 0; + } + } + } + } + break; + + case 4: + if (temp_r31->unk12 == 0) { + temp_r31->unk12 = 1; + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[3], 0, 8, 0); + } + else { + if (temp_r30->unk_0C == -1) { + if (temp_r30->unk_64 >= Hu3DMotionMaxTimeGet(lbl_1_bss_2C->model[5])) { + temp_r31->unk12 = 0; + temp_r31->unk10 = 0; + } + } + } + break; + + case 5: + if (temp_r31->unk12 == 0) { + temp_r31->unk12 = 1; + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[6], 0, 8, 0x40000001); + } + break; + } + temp_r30->pos.x = temp_r31->unk18; + temp_r30->rot.y = temp_r31->unk28[0]; } void fn_1_5B70(float arg0, float arg1, float arg2, s16 arg3, unkHook72B4Data18 arg4, s16 arg5) { - Vec sp2C; - Vec sp20; - GXColor sp1A; - float temp_f31; - float temp_f30; - - Unk72B4Data18 *temp_r31; - s16 temp_r30; - temp_f30 = 360.0f/arg3; - temp_f31 = rand16()%361; - for(temp_r30=0; temp_r30model[0], &sp2C, &sp20, 0, &sp1A); - if(!temp_r31) { - break; - } - temp_r31->unk30 = arg4; - temp_r31->unk2C = arg5; - temp_r31->unk28 = 0; - temp_r31->unk2A = (rand16()%2)+2; - temp_r31->unk0.x = 3.5*sind(temp_f31); - temp_r31->unk0.y = 0.01f*((rand16()%16)+20); - temp_r31->unk0.z = 3.5*cosd(temp_f31); - temp_r31->unkC.x = temp_r31->unk0.x*0.03f; - temp_r31->unkC.y = temp_r31->unk0.y*0.03f; - temp_r31->unkC.z = temp_r31->unk0.z*0.03f; - } + Vec sp2C; + Vec sp20; + GXColor sp1A; + float temp_f31; + float temp_f30; + + Unk72B4Data18 *temp_r31; + s16 temp_r30; + temp_f30 = 360.0f / arg3; + temp_f31 = rand16() % 361; + for (temp_r30 = 0; temp_r30 < arg3; temp_r30++, temp_f31 += temp_f30) { + sp2C.x = arg0 + ((rand16() % 21) - 10); + sp2C.y = arg1 + ((rand16() % 21) - 10); + sp2C.z = arg2 + ((rand16() % 21) - 10); + sp20.x = sp20.y = sp20.z = 0.1f * ((rand16() % 11) + 15); + sp1A.r = sp1A.g = sp1A.b = (rand16() % 128) + 128; + sp1A.a = 128; + temp_r31 = fn_1_6B34(lbl_1_bss_30->model[0], &sp2C, &sp20, 0, &sp1A); + if (!temp_r31) { + break; + } + temp_r31->unk30 = arg4; + temp_r31->unk2C = arg5; + temp_r31->unk28 = 0; + temp_r31->unk2A = (rand16() % 2) + 2; + temp_r31->unk0.x = 3.5 * sind(temp_f31); + temp_r31->unk0.y = 0.01f * ((rand16() % 16) + 20); + temp_r31->unk0.z = 3.5 * cosd(temp_f31); + temp_r31->unkC.x = temp_r31->unk0.x * 0.03f; + temp_r31->unkC.y = temp_r31->unk0.y * 0.03f; + temp_r31->unkC.z = temp_r31->unk0.z * 0.03f; + } } void fn_1_6030(ModelData *arg0, Work72B4 *arg1, Mtx arg2) { - Unk72B4Data18 *temp_r31; - s16 temp_r29; - GXColor *temp_r28; - unkHook72B4Data18 temp_r27; - temp_r31 = arg1->unk18; - temp_r28 = arg1->unk24; - for(temp_r29=0; temp_r29unk0; temp_r29++, temp_r31++, temp_r28++) { - if(temp_r31->unk56 == 0){ - continue; - } - temp_r31->unk48.x += temp_r31->unk0.x; - temp_r31->unk48.y += temp_r31->unk0.y; - temp_r31->unk48.z += temp_r31->unk0.z; - temp_r31->unk0.x -= temp_r31->unkC.x; - temp_r31->unk0.y -= temp_r31->unkC.y; - temp_r31->unk0.z -= temp_r31->unkC.z; - temp_r31->unk28++; - if(temp_r31->unk28 >= temp_r31->unk2A) { - temp_r31->unk28 = 0; - temp_r31->unk54++; - } - if(temp_r31->unk54 >= arg1->unk14) { - temp_r31->unk30 = NULL; - temp_r31->unk56 = 0; - } else { - if(temp_r31->unk54 == 2 && temp_r31->unk30) { - temp_r27 = temp_r31->unk30; - temp_r27(temp_r31); - } - } - } + Unk72B4Data18 *temp_r31; + s16 temp_r29; + GXColor *temp_r28; + unkHook72B4Data18 temp_r27; + temp_r31 = arg1->unk18; + temp_r28 = arg1->unk24; + for (temp_r29 = 0; temp_r29 < arg1->unk0; temp_r29++, temp_r31++, temp_r28++) { + if (temp_r31->unk56 == 0) { + continue; + } + temp_r31->unk48.x += temp_r31->unk0.x; + temp_r31->unk48.y += temp_r31->unk0.y; + temp_r31->unk48.z += temp_r31->unk0.z; + temp_r31->unk0.x -= temp_r31->unkC.x; + temp_r31->unk0.y -= temp_r31->unkC.y; + temp_r31->unk0.z -= temp_r31->unkC.z; + temp_r31->unk28++; + if (temp_r31->unk28 >= temp_r31->unk2A) { + temp_r31->unk28 = 0; + temp_r31->unk54++; + } + if (temp_r31->unk54 >= arg1->unk14) { + temp_r31->unk30 = NULL; + temp_r31->unk56 = 0; + } + else { + if (temp_r31->unk54 == 2 && temp_r31->unk30) { + temp_r27 = temp_r31->unk30; + temp_r27(temp_r31); + } + } + } } void fn_1_6184(Vec *arg0, Bss12CInner *arg1) { - s16 temp_r31; - s16 temp_r30; - float spC[3]; - float temp_f29; - float temp_f28; - float temp_f27; - float temp_f26; - float temp_f25; - float temp_f24; - float temp_f23; - temp_f28 = arg0[1].x-arg0[0].x; - temp_f27 = arg0[1].y-arg0[0].y; - temp_f26 = arg0[1].z-arg0[0].z; - temp_f25 = arg0[2].x-arg0[0].x; - temp_f24 = arg0[2].y-arg0[0].y; - temp_f23 = arg0[2].z-arg0[0].z; - spC[0] = (temp_f27*temp_f23)-(temp_f26*temp_f24); - spC[1] = (temp_f26*temp_f25)-(temp_f28*temp_f23); - spC[2] = (temp_f28*temp_f24)-(temp_f27*temp_f25); - temp_f29 = VECMagPoint(spC[0], spC[1], spC[2]); - if(0.0f != temp_f29) { - spC[0] /= temp_f29; - spC[1] /= temp_f29; - spC[2] /= temp_f29; - } - arg1->unkC = (spC[0]*arg0[0].x)+(spC[1]*arg0[0].y)+(spC[2]*arg0[0].z); - temp_r30 = 0; - for(temp_r31=1; temp_r31<3; temp_r31++) { - if(ABS(spC[temp_r30]) < ABS(spC[temp_r31])) { - temp_r30 = temp_r31; - } - } - arg1->unk0.x = spC[0]; - arg1->unk0.y = spC[1]; - arg1->unk0.z = spC[2]; - arg1->unk10 = temp_r30; + s16 temp_r31; + s16 temp_r30; + float spC[3]; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f24; + float temp_f23; + temp_f28 = arg0[1].x - arg0[0].x; + temp_f27 = arg0[1].y - arg0[0].y; + temp_f26 = arg0[1].z - arg0[0].z; + temp_f25 = arg0[2].x - arg0[0].x; + temp_f24 = arg0[2].y - arg0[0].y; + temp_f23 = arg0[2].z - arg0[0].z; + spC[0] = (temp_f27 * temp_f23) - (temp_f26 * temp_f24); + spC[1] = (temp_f26 * temp_f25) - (temp_f28 * temp_f23); + spC[2] = (temp_f28 * temp_f24) - (temp_f27 * temp_f25); + temp_f29 = VECMagPoint(spC[0], spC[1], spC[2]); + if (0.0f != temp_f29) { + spC[0] /= temp_f29; + spC[1] /= temp_f29; + spC[2] /= temp_f29; + } + arg1->unkC = (spC[0] * arg0[0].x) + (spC[1] * arg0[0].y) + (spC[2] * arg0[0].z); + temp_r30 = 0; + for (temp_r31 = 1; temp_r31 < 3; temp_r31++) { + if (ABS(spC[temp_r30]) < ABS(spC[temp_r31])) { + temp_r30 = temp_r31; + } + } + arg1->unk0.x = spC[0]; + arg1->unk0.y = spC[1]; + arg1->unk0.z = spC[2]; + arg1->unk10 = temp_r30; } float fn_1_6504(float arg0, float arg1, float arg2) { - float temp_f31 = arg1-arg0; - if(temp_f31 > 180.0f) { - temp_f31 -= 360.0f; - } else if(temp_f31 < -180.0f) { - temp_f31 += 360.0f; - } - temp_f31 = arg0+(temp_f31*arg2); - if(temp_f31 >= 360.0f) { - temp_f31 -= 360.0f; - } else if(temp_f31 < 0.0f) { - temp_f31 += 360.0f; - } - return temp_f31; + float temp_f31 = arg1 - arg0; + if (temp_f31 > 180.0f) { + temp_f31 -= 360.0f; + } + else if (temp_f31 < -180.0f) { + temp_f31 += 360.0f; + } + temp_f31 = arg0 + (temp_f31 * arg2); + if (temp_f31 >= 360.0f) { + temp_f31 -= 360.0f; + } + else if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + return temp_f31; } float fn_1_65CC(float arg0, float arg1, float arg2) { - return arg0+(arg2*(arg1-arg0)); + return arg0 + (arg2 * (arg1 - arg0)); } float fn_1_65DC(float arg0, float arg1, float arg2, float arg3) { - float temp_f31 = 1.0f-arg3; - return (arg0*(temp_f31*temp_f31))+((2.0f*temp_f31)*arg3*arg1)+(arg2*(arg3*arg3)); + float temp_f31 = 1.0f - arg3; + return (arg0 * (temp_f31 * temp_f31)) + ((2.0f * temp_f31) * arg3 * arg1) + (arg2 * (arg3 * arg3)); } void fn_1_6638(s16 *arg0, s16 arg1) { - s16 temp_r31; - s16 spCE[99]; - s16 sp8[99]; - memcpy(sp8, arg0, arg1*sizeof(s16)); - fn_1_66DC(spCE, 0, arg1); - for(temp_r31=0; temp_r31=0; temp_r31--) { - temp_r29 = rand16()%(s16)(temp_r31+1); - temp_r28 = arg0[temp_r31]; - arg0[temp_r31] = arg0[temp_r29]; - arg0[temp_r29] = temp_r28; - } + s16 temp_r31; + s16 temp_r29; + s16 temp_r28; + for (temp_r31 = 0; temp_r31 < arg2; temp_r31++) { + arg0[temp_r31] = arg1 + temp_r31; + } + for (temp_r31 = arg2 - 1; temp_r31 >= 0; temp_r31--) { + temp_r29 = rand16() % (s16)(temp_r31 + 1); + temp_r28 = arg0[temp_r31]; + arg0[temp_r31] = arg0[temp_r29]; + arg0[temp_r29] = temp_r28; + } } void fn_1_67C0(void) { - if(HuPadBtnDown[0] & PAD_TRIGGER_L) { - lbl_1_bss_12 ^= 1; - } - if(lbl_1_bss_12 == 0) { - return; - } - if(HuPadBtn[0] & PAD_BUTTON_LEFT) { - CRot.y++; - } - if(HuPadBtn[0] & PAD_BUTTON_RIGHT) { - CRot.y--; - } - if(HuPadBtn[0] & PAD_BUTTON_UP) { - CRot.x--; - } - if(HuPadBtn[0] & PAD_BUTTON_DOWN) { - CRot.x++; - } - Center.x += HuPadSubStkX[0]; - if(HuPadBtn[0] & PAD_TRIGGER_R) { - Center.y += HuPadSubStkY[0]; - } else { - Center.z += HuPadSubStkY[0]; - } - if(HuPadBtn[0] & PAD_BUTTON_X) { - CZoom += 10; - } - if(HuPadBtn[0] & PAD_BUTTON_Y) { - CZoom -= 10; - } - if(HuPadBtnDown[0] & PAD_BUTTON_A) { - OSReport("\nCZoom = %.2f \n", CZoom); - OSReport("Center x = %.2f: y = %.2f: z = %.2f \n", Center.x, Center.y, Center.z); - OSReport("CRot x = %.2f: y = %.2f: z = %.2f \n", CRot.x, CRot.y, CRot.z); - } - + if (HuPadBtnDown[0] & PAD_TRIGGER_L) { + lbl_1_bss_12 ^= 1; + } + if (lbl_1_bss_12 == 0) { + return; + } + if (HuPadBtn[0] & PAD_BUTTON_LEFT) { + CRot.y++; + } + if (HuPadBtn[0] & PAD_BUTTON_RIGHT) { + CRot.y--; + } + if (HuPadBtn[0] & PAD_BUTTON_UP) { + CRot.x--; + } + if (HuPadBtn[0] & PAD_BUTTON_DOWN) { + CRot.x++; + } + Center.x += HuPadSubStkX[0]; + if (HuPadBtn[0] & PAD_TRIGGER_R) { + Center.y += HuPadSubStkY[0]; + } + else { + Center.z += HuPadSubStkY[0]; + } + if (HuPadBtn[0] & PAD_BUTTON_X) { + CZoom += 10; + } + if (HuPadBtn[0] & PAD_BUTTON_Y) { + CZoom -= 10; + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + OSReport("\nCZoom = %.2f \n", CZoom); + OSReport("Center x = %.2f: y = %.2f: z = %.2f \n", Center.x, Center.y, Center.z); + OSReport("CRot x = %.2f: y = %.2f: z = %.2f \n", CRot.x, CRot.y, CRot.z); + } } Unk72B4Data18 *fn_1_6B34(s16 arg0, Vec *arg1, Vec *arg2, float arg3, GXColor *arg4) { - Unk72B4Data18 *temp_r31; - Work72B4 *temp_r30; - s16 temp_r29; - ModelData *temp_r28; - temp_r28 = &Hu3DData[arg0]; - temp_r30 = temp_r28->unk_120; - for(temp_r29 = 0, temp_r31 = temp_r30->unk18; temp_r29unk0; temp_r29++, temp_r31++) { - if(!temp_r31->unk56) { - break; - } - } - if(temp_r29 == temp_r30->unk0) { - return NULL; - } - temp_r30->unk24[temp_r29].r = arg4->r; - temp_r30->unk24[temp_r29].g = arg4->g; - temp_r30->unk24[temp_r29].b = arg4->b; - temp_r30->unk24[temp_r29].a = arg4->a; - temp_r31->unk34 = temp_r29; - temp_r31->unk38 = arg3; - temp_r31->unk3C = *arg2; - temp_r31->unk48 = *arg1; - temp_r31->unk54 = 0; - temp_r31->unk30 = NULL; - temp_r31->unk56 = 1; - return temp_r31; + Unk72B4Data18 *temp_r31; + Work72B4 *temp_r30; + s16 temp_r29; + ModelData *temp_r28; + temp_r28 = &Hu3DData[arg0]; + temp_r30 = temp_r28->unk_120; + for (temp_r29 = 0, temp_r31 = temp_r30->unk18; temp_r29 < temp_r30->unk0; temp_r29++, temp_r31++) { + if (!temp_r31->unk56) { + break; + } + } + if (temp_r29 == temp_r30->unk0) { + return NULL; + } + temp_r30->unk24[temp_r29].r = arg4->r; + temp_r30->unk24[temp_r29].g = arg4->g; + temp_r30->unk24[temp_r29].b = arg4->b; + temp_r30->unk24[temp_r29].a = arg4->a; + temp_r31->unk34 = temp_r29; + temp_r31->unk38 = arg3; + temp_r31->unk3C = *arg2; + temp_r31->unk48 = *arg1; + temp_r31->unk54 = 0; + temp_r31->unk30 = NULL; + temp_r31->unk56 = 1; + return temp_r31; } void fn_1_72B4(ModelData *model, Mtx mtx); @@ -1904,136 +1891,137 @@ void fn_1_7824(HsfVector2f *arg0, s16 arg1, s16 arg2, float arg3, float arg4); s16 fn_1_6C74(AnimData *arg0, s16 arg1, float arg2, s16 arg3, s16 arg4) { - Work72B4 *temp_r31; - s16 temp_r30; - HsfVector2f *temp_r29; - ModelData *temp_r28; - GXColor *temp_r27; - Vec *temp_r25; - Unk72B4Data18 *temp_r24; - s16 temp_r22; - void *temp_r21; - s16 temp_r20; - s16 temp_r19; - void *temp_r18; - temp_r20 = Hu3DHookFuncCreate(fn_1_72B4); - temp_r28 = &Hu3DData[temp_r20]; - temp_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(Work72B4), temp_r28->unk_48); - temp_r28->unk_120 = temp_r31; - arg0->useNum++; - temp_r31->unk10 = arg0; - temp_r31->unk0 = arg1; - temp_r31->unk8 = 0; - temp_r31->unkC = 0; - temp_r24 = HuMemDirectMallocNum(HEAP_DATA, arg1*sizeof(Unk72B4Data18), temp_r28->unk_48); - temp_r31->unk18 = temp_r24; - for(temp_r30=0; temp_r30unk54 = -1; - temp_r24->unk56 = 0; - } - temp_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1*sizeof(Vec)*4, temp_r28->unk_48); - temp_r31->unk1C = temp_r25; - for(temp_r30=0; temp_r30x = temp_r25->y = temp_r25->z = 0; - } - temp_r27 = HuMemDirectMallocNum(HEAP_DATA, arg1*sizeof(GXColor), temp_r28->unk_48); - temp_r31->unk24 = temp_r27; - for(temp_r30=0; temp_r30r = temp_r27->g = temp_r27->b = temp_r27->a = 255; - } - temp_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1*sizeof(HsfVector2f)*4, temp_r28->unk_48); - temp_r31->unk20 = temp_r29; - for(temp_r30=0; temp_r30x = 0; - temp_r29->y = 0; - temp_r29++; - temp_r29->x = 1; - temp_r29->y = 0; - temp_r29++; - temp_r29->x = 1; - temp_r29->y = 1; - temp_r29++; - temp_r29->x = 0; - temp_r29->y = 1; - temp_r29++; - } - if(arg3 != 0 || arg4 != 0) { - temp_r22 = arg0->bmp->sizeX/arg3; - temp_r19 = arg0->bmp->sizeY/arg4; - temp_r31->unk14 = temp_r22*temp_r19; - temp_r31->unk60 = 1.0f/temp_r22; - temp_r31->unk64 = 1.0f/temp_r19; - } else { - temp_r22 = 1; - temp_r31->unk14 = 1; - temp_r31->unk60 = 1; - temp_r31->unk64 = 1; - } - temp_r31->unk5C = HuMemDirectMallocNum(HEAP_DATA, temp_r31->unk14*sizeof(HsfVector2f), temp_r28->unk_48); - fn_1_7824(temp_r31->unk5C, temp_r31->unk14, temp_r22, temp_r31->unk60, temp_r31->unk64); - temp_r31->unk2C[0].x = temp_r31->unk2C[3].x = temp_r31->unk2C[2].y = temp_r31->unk2C[3].y = -arg2; - temp_r31->unk2C[1].x = temp_r31->unk2C[2].x = temp_r31->unk2C[0].y = temp_r31->unk2C[1].y = arg2; - temp_r31->unk2C[0].z = temp_r31->unk2C[1].z = temp_r31->unk2C[2].z = temp_r31->unk2C[3].z = 0; - temp_r21 = HuMemDirectMallocNum(HEAP_DATA, 0x20000, temp_r28->unk_48); - temp_r18 = temp_r21; - DCFlushRange(temp_r21, 0x20000); - GXBeginDisplayList(temp_r18, 0x20000); - GXBegin(GX_QUADS, GX_VTXFMT0, 4*arg1); - for(temp_r30=0; temp_r30unk4 = GXEndDisplayList(); - temp_r31->unk28 = HuMemDirectMallocNum(HEAP_DATA, temp_r31->unk4, temp_r28->unk_48); - memcpy(temp_r31->unk28, temp_r21, temp_r31->unk4); - DCFlushRange(temp_r31->unk28, temp_r31->unk4); - HuMemDirectFree(temp_r21); - return temp_r20; + Work72B4 *temp_r31; + s16 temp_r30; + HsfVector2f *temp_r29; + ModelData *temp_r28; + GXColor *temp_r27; + Vec *temp_r25; + Unk72B4Data18 *temp_r24; + s16 temp_r22; + void *temp_r21; + s16 temp_r20; + s16 temp_r19; + void *temp_r18; + temp_r20 = Hu3DHookFuncCreate(fn_1_72B4); + temp_r28 = &Hu3DData[temp_r20]; + temp_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(Work72B4), temp_r28->unk_48); + temp_r28->unk_120 = temp_r31; + arg0->useNum++; + temp_r31->unk10 = arg0; + temp_r31->unk0 = arg1; + temp_r31->unk8 = 0; + temp_r31->unkC = 0; + temp_r24 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Unk72B4Data18), temp_r28->unk_48); + temp_r31->unk18 = temp_r24; + for (temp_r30 = 0; temp_r30 < arg1; temp_r30++, temp_r24++) { + temp_r24->unk54 = -1; + temp_r24->unk56 = 0; + } + temp_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec) * 4, temp_r28->unk_48); + temp_r31->unk1C = temp_r25; + for (temp_r30 = 0; temp_r30 < arg1 * 4; temp_r30++, temp_r25++) { + temp_r25->x = temp_r25->y = temp_r25->z = 0; + } + temp_r27 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(GXColor), temp_r28->unk_48); + temp_r31->unk24 = temp_r27; + for (temp_r30 = 0; temp_r30 < arg1; temp_r30++, temp_r27++) { + temp_r27->r = temp_r27->g = temp_r27->b = temp_r27->a = 255; + } + temp_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(HsfVector2f) * 4, temp_r28->unk_48); + temp_r31->unk20 = temp_r29; + for (temp_r30 = 0; temp_r30 < arg1; temp_r30++) { + temp_r29->x = 0; + temp_r29->y = 0; + temp_r29++; + temp_r29->x = 1; + temp_r29->y = 0; + temp_r29++; + temp_r29->x = 1; + temp_r29->y = 1; + temp_r29++; + temp_r29->x = 0; + temp_r29->y = 1; + temp_r29++; + } + if (arg3 != 0 || arg4 != 0) { + temp_r22 = arg0->bmp->sizeX / arg3; + temp_r19 = arg0->bmp->sizeY / arg4; + temp_r31->unk14 = temp_r22 * temp_r19; + temp_r31->unk60 = 1.0f / temp_r22; + temp_r31->unk64 = 1.0f / temp_r19; + } + else { + temp_r22 = 1; + temp_r31->unk14 = 1; + temp_r31->unk60 = 1; + temp_r31->unk64 = 1; + } + temp_r31->unk5C = HuMemDirectMallocNum(HEAP_DATA, temp_r31->unk14 * sizeof(HsfVector2f), temp_r28->unk_48); + fn_1_7824(temp_r31->unk5C, temp_r31->unk14, temp_r22, temp_r31->unk60, temp_r31->unk64); + temp_r31->unk2C[0].x = temp_r31->unk2C[3].x = temp_r31->unk2C[2].y = temp_r31->unk2C[3].y = -arg2; + temp_r31->unk2C[1].x = temp_r31->unk2C[2].x = temp_r31->unk2C[0].y = temp_r31->unk2C[1].y = arg2; + temp_r31->unk2C[0].z = temp_r31->unk2C[1].z = temp_r31->unk2C[2].z = temp_r31->unk2C[3].z = 0; + temp_r21 = HuMemDirectMallocNum(HEAP_DATA, 0x20000, temp_r28->unk_48); + temp_r18 = temp_r21; + DCFlushRange(temp_r21, 0x20000); + GXBeginDisplayList(temp_r18, 0x20000); + GXBegin(GX_QUADS, GX_VTXFMT0, 4 * arg1); + for (temp_r30 = 0; temp_r30 < arg1; temp_r30++) { + GXPosition1x16(temp_r30 * 4); + GXColor1x16(temp_r30); + GXTexCoord1x16(temp_r30 * 4); + GXPosition1x16((temp_r30 * 4) + 1); + GXColor1x16(temp_r30); + GXTexCoord1x16((temp_r30 * 4) + 1); + GXPosition1x16((temp_r30 * 4) + 2); + GXColor1x16(temp_r30); + GXTexCoord1x16((temp_r30 * 4) + 2); + GXPosition1x16((temp_r30 * 4) + 3); + GXColor1x16(temp_r30); + GXTexCoord1x16((temp_r30 * 4) + 3); + } + temp_r31->unk4 = GXEndDisplayList(); + temp_r31->unk28 = HuMemDirectMallocNum(HEAP_DATA, temp_r31->unk4, temp_r28->unk_48); + memcpy(temp_r31->unk28, temp_r21, temp_r31->unk4); + DCFlushRange(temp_r31->unk28, temp_r31->unk4); + HuMemDirectFree(temp_r21); + return temp_r20; } void fn_1_71B8(s16 arg0) { - ModelData *temp_r31; - Work72B4 *temp_r30; - temp_r31 = &Hu3DData[arg0]; - temp_r30 = temp_r31->unk_120; - HuSprAnimKill(temp_r30->unk10); - Hu3DModelKill(arg0); + ModelData *temp_r31; + Work72B4 *temp_r30; + temp_r31 = &Hu3DData[arg0]; + temp_r30 = temp_r31->unk_120; + HuSprAnimKill(temp_r30->unk10); + Hu3DModelKill(arg0); } Work72B4 *fn_1_7218(s16 arg0) { - ModelData *temp_r31; - temp_r31 = &Hu3DData[arg0]; - return temp_r31->unk_120; + ModelData *temp_r31; + temp_r31 = &Hu3DData[arg0]; + return temp_r31->unk_120; } void fn_1_7244(s16 arg0, unkHook72B4 arg1) { - ModelData *temp_r31; - Work72B4 *temp_r30; - temp_r31 = &Hu3DData[arg0]; - temp_r30 = temp_r31->unk_120; - temp_r30->unkC = arg1; + ModelData *temp_r31; + Work72B4 *temp_r30; + temp_r31 = &Hu3DData[arg0]; + temp_r30 = temp_r31->unk_120; + temp_r30->unkC = arg1; } void fn_1_727C(s16 arg0, u8 arg1) { - ModelData *temp_r31; - Work72B4 *temp_r30; - temp_r31 = &Hu3DData[arg0]; - temp_r30 = temp_r31->unk_120; - temp_r30->unk8 = arg1; + ModelData *temp_r31; + Work72B4 *temp_r30; + temp_r31 = &Hu3DData[arg0]; + temp_r30 = temp_r31->unk_120; + temp_r30->unk8 = arg1; } void fn_1_78F0(HsfVector2f *arg0, HsfVector2f *arg1, s16 arg2, float arg3, float arg4); @@ -2043,171 +2031,175 @@ void fn_1_79FC(Mtx arg0, Mtx arg1); void fn_1_72B4(ModelData *model, Mtx mtx) { - Mtx sp128; - ROMtx spF8; - Mtx spC8; - Mtx sp98; - Vec sp68[4]; - Vec sp38[4]; - Vec sp8[4]; - Vec *temp_r31; - Work72B4 *temp_r30; - Unk72B4Data18 *temp_r29; - HsfVector2f *temp_r27; - s16 temp_r26; - s16 temp_r25; - unkHook72B4 temp_r23; - temp_r30 = model->unk_120; - GXLoadPosMtxImm(mtx, GX_PNMTX0); - GXSetNumTevStages(1); - GXSetNumTexGens(1); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - temp_r25 = temp_r30->unk10->bmp->dataFmt & ANIM_BMP_FMTMASK; - if(temp_r25 == ANIM_BMP_I8 || temp_r25 == ANIM_BMP_I4) { - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - } else { - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); - } - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); - if(model->attr & 0x2) { - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); - } else { - GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); - } - HuSprTexLoad(temp_r30->unk10, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); - GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); - GXSetZCompLoc(GX_FALSE); - switch(temp_r30->unk8) { - case 0: - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); - break; - - case 1: - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); - break; - - case 2: - GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVSRCCLR, GX_LO_NOOP); - break; - } - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSetArray(GX_VA_POS, temp_r30->unk1C, sizeof(Vec)); - GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); - GXSetArray(GX_VA_CLR0, temp_r30->unk24, sizeof(GXColor)); - GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSetArray(GX_VA_TEX0, temp_r30->unk20, sizeof(HsfVector2f)); - fn_1_79FC(mtx, sp128); - PSMTXReorder(sp128, spF8); - if(!omPauseChk() && temp_r30->unkC) { - temp_r23 = temp_r30->unkC; - temp_r23(model, temp_r30, mtx); - } - temp_r29 = temp_r30->unk18; - temp_r31 = temp_r30->unk1C; - temp_r27 = temp_r30->unk20; - PSMTXROMultVecArray(spF8, temp_r30->unk2C, sp68, 4); - for(temp_r26=0; temp_r26unk0; temp_r26++, temp_r29++, temp_r27 += 4) { - if(temp_r29->unk56 == 0) { - temp_r31->x = temp_r31->y = temp_r31->z = 0; - temp_r31++; - temp_r31->x = temp_r31->y = temp_r31->z = 0; - temp_r31++; - temp_r31->x = temp_r31->y = temp_r31->z = 0; - temp_r31++; - temp_r31->x = temp_r31->y = temp_r31->z = 0; - temp_r31++; - } else { - if(0.0f == temp_r29->unk38) { - fn_1_7994(sp68, sp38, &temp_r29->unk3C, 4); - VECAdd(&sp38[0], &temp_r29->unk48, temp_r31++); - VECAdd(&sp38[1], &temp_r29->unk48, temp_r31++); - VECAdd(&sp38[2], &temp_r29->unk48, temp_r31++); - VECAdd(&sp38[3], &temp_r29->unk48, temp_r31++); - } else { - fn_1_7994(temp_r30->unk2C, sp38, &temp_r29->unk3C, 4); - MTXRotDeg(spC8, 'Z', temp_r29->unk38); - MTXConcat(sp128, spC8, sp98); - MTXMultVecArray(sp98, sp38, sp8, 4); - VECAdd(&sp8[0], &temp_r29->unk48, temp_r31++); - VECAdd(&sp8[1], &temp_r29->unk48, temp_r31++); - VECAdd(&sp8[2], &temp_r29->unk48, temp_r31++); - VECAdd(&sp8[3], &temp_r29->unk48, temp_r31++); - } - if(temp_r29->unk54 != -1) { - fn_1_78F0(temp_r27, temp_r30->unk5C, temp_r29->unk54, temp_r30->unk60, temp_r30->unk64); - } - } - } - DCFlushRangeNoSync(temp_r30->unk1C, (temp_r30->unk0*sizeof(Vec))*4); - DCFlushRangeNoSync(temp_r30->unk20, (temp_r30->unk0*sizeof(HsfVector2f))*4); - PPCSync(); - GXCallDisplayList(temp_r30->unk28, temp_r30->unk4); + Mtx sp128; + ROMtx spF8; + Mtx spC8; + Mtx sp98; + Vec sp68[4]; + Vec sp38[4]; + Vec sp8[4]; + Vec *temp_r31; + Work72B4 *temp_r30; + Unk72B4Data18 *temp_r29; + HsfVector2f *temp_r27; + s16 temp_r26; + s16 temp_r25; + unkHook72B4 temp_r23; + temp_r30 = model->unk_120; + GXLoadPosMtxImm(mtx, GX_PNMTX0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + temp_r25 = temp_r30->unk10->bmp->dataFmt & ANIM_BMP_FMTMASK; + if (temp_r25 == ANIM_BMP_I8 || temp_r25 == ANIM_BMP_I4) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); + } + else { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + } + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + if (model->attr & 0x2) { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + } + else { + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + } + HuSprTexLoad(temp_r30->unk10, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(GX_FALSE); + switch (temp_r30->unk8) { + case 0: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + break; + + case 1: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + break; + + case 2: + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVSRCCLR, GX_LO_NOOP); + break; + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r30->unk1C, sizeof(Vec)); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, temp_r30->unk24, sizeof(GXColor)); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, temp_r30->unk20, sizeof(HsfVector2f)); + fn_1_79FC(mtx, sp128); + PSMTXReorder(sp128, spF8); + if (!omPauseChk() && temp_r30->unkC) { + temp_r23 = temp_r30->unkC; + temp_r23(model, temp_r30, mtx); + } + temp_r29 = temp_r30->unk18; + temp_r31 = temp_r30->unk1C; + temp_r27 = temp_r30->unk20; + PSMTXROMultVecArray(spF8, temp_r30->unk2C, sp68, 4); + for (temp_r26 = 0; temp_r26 < temp_r30->unk0; temp_r26++, temp_r29++, temp_r27 += 4) { + if (temp_r29->unk56 == 0) { + temp_r31->x = temp_r31->y = temp_r31->z = 0; + temp_r31++; + temp_r31->x = temp_r31->y = temp_r31->z = 0; + temp_r31++; + temp_r31->x = temp_r31->y = temp_r31->z = 0; + temp_r31++; + temp_r31->x = temp_r31->y = temp_r31->z = 0; + temp_r31++; + } + else { + if (0.0f == temp_r29->unk38) { + fn_1_7994(sp68, sp38, &temp_r29->unk3C, 4); + VECAdd(&sp38[0], &temp_r29->unk48, temp_r31++); + VECAdd(&sp38[1], &temp_r29->unk48, temp_r31++); + VECAdd(&sp38[2], &temp_r29->unk48, temp_r31++); + VECAdd(&sp38[3], &temp_r29->unk48, temp_r31++); + } + else { + fn_1_7994(temp_r30->unk2C, sp38, &temp_r29->unk3C, 4); + MTXRotDeg(spC8, 'Z', temp_r29->unk38); + MTXConcat(sp128, spC8, sp98); + MTXMultVecArray(sp98, sp38, sp8, 4); + VECAdd(&sp8[0], &temp_r29->unk48, temp_r31++); + VECAdd(&sp8[1], &temp_r29->unk48, temp_r31++); + VECAdd(&sp8[2], &temp_r29->unk48, temp_r31++); + VECAdd(&sp8[3], &temp_r29->unk48, temp_r31++); + } + if (temp_r29->unk54 != -1) { + fn_1_78F0(temp_r27, temp_r30->unk5C, temp_r29->unk54, temp_r30->unk60, temp_r30->unk64); + } + } + } + DCFlushRangeNoSync(temp_r30->unk1C, (temp_r30->unk0 * sizeof(Vec)) * 4); + DCFlushRangeNoSync(temp_r30->unk20, (temp_r30->unk0 * sizeof(HsfVector2f)) * 4); + PPCSync(); + GXCallDisplayList(temp_r30->unk28, temp_r30->unk4); } void fn_1_7824(HsfVector2f *arg0, s16 arg1, s16 arg2, float arg3, float arg4) { - s16 temp_r30; - s16 temp_r29; - s16 temp_r31; - for(temp_r31=0; temp_r31x = temp_r30*arg3; - arg0->y = temp_r29*arg4; - } + s16 temp_r30; + s16 temp_r29; + s16 temp_r31; + for (temp_r31 = 0; temp_r31 < arg1; temp_r31++, arg0++) { + temp_r30 = temp_r31 % arg2; + temp_r29 = temp_r31 / arg2; + arg0->x = temp_r30 * arg3; + arg0->y = temp_r29 * arg4; + } } void fn_1_78F0(HsfVector2f *arg0, HsfVector2f *arg1, s16 arg2, float arg3, float arg4) { - arg0[0].x = arg1[arg2].x; - arg0[0].y = arg1[arg2].y; - arg0[1].x = arg3+arg1[arg2].x; - arg0[1].y = arg1[arg2].y; - arg0[2].x = arg3+arg1[arg2].x; - arg0[2].y = arg4+arg1[arg2].y; - arg0[3].x = arg1[arg2].x; - arg0[3].y = arg4+arg1[arg2].y; + arg0[0].x = arg1[arg2].x; + arg0[0].y = arg1[arg2].y; + arg0[1].x = arg3 + arg1[arg2].x; + arg0[1].y = arg1[arg2].y; + arg0[2].x = arg3 + arg1[arg2].x; + arg0[2].y = arg4 + arg1[arg2].y; + arg0[3].x = arg1[arg2].x; + arg0[3].y = arg4 + arg1[arg2].y; } void fn_1_7994(Vec *arg0, Vec *arg1, Vec *arg2, s16 arg3) { - s16 temp_r31; - for(temp_r31=0; temp_r31x = arg0->x*arg2->x; - arg1->y = arg0->y*arg2->y; - arg1->z = arg0->z*arg2->z; - } + s16 temp_r31; + for (temp_r31 = 0; temp_r31 < arg3; temp_r31++, arg0++, arg1++) { + arg1->x = arg0->x * arg2->x; + arg1->y = arg0->y * arg2->y; + arg1->z = arg0->z * arg2->z; + } } void fn_1_79FC(Mtx arg0, Mtx arg1) { - arg1[0][0] = arg0[0][0]; - arg1[1][0] = arg0[0][1]; - arg1[2][0] = arg0[0][2]; - arg1[0][1] = arg0[1][0]; - arg1[1][1] = arg0[1][1]; - arg1[2][1] = arg0[1][2]; - arg1[0][2] = arg0[2][0]; - arg1[1][2] = arg0[2][1]; - arg1[2][2] = arg0[2][2]; - arg1[0][3] = 0; - arg1[1][3] = 0; - arg1[2][3] = 0; + arg1[0][0] = arg0[0][0]; + arg1[1][0] = arg0[0][1]; + arg1[2][0] = arg0[0][2]; + arg1[0][1] = arg0[1][0]; + arg1[1][1] = arg0[1][1]; + arg1[2][1] = arg0[1][2]; + arg1[0][2] = arg0[2][0]; + arg1[1][2] = arg0[2][1]; + arg1[2][2] = arg0[2][2]; + arg1[0][3] = 0; + arg1[1][3] = 0; + arg1[2][3] = 0; } s32 fn_1_7A78(s32 arg0, s16 arg1) { - UnkMsmStruct_01 sp10; - sp10.unk00 = 1; - sp10.unk04 = arg1; - return msmSeSetParam(arg0, &sp10); + UnkMsmStruct_01 sp10; + sp10.unk00 = 1; + sp10.unk04 = arg1; + return msmSeSetParam(arg0, &sp10); } diff --git a/src/REL/m431Dll/object.c b/src/REL/m431Dll/object.c index 78687d3a..77dea701 100644 --- a/src/REL/m431Dll/object.c +++ b/src/REL/m431Dll/object.c @@ -39,14 +39,14 @@ float lbl_1_data_1D4[8] = { }; u32 lbl_1_data_1F4[8] = { - 0x5F0000, - 0x5F0002, - 0x5F0003, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), -1, - 0x5F0048, - 0x5F0049, - 0x5F0017, - 0x5F0072 + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x72) }; char *lbl_1_data_230[8] = { @@ -621,7 +621,7 @@ void fn_1_9440(omObjData *object) if(lbl_1_data_1F4[temp_r28] != -1) { object->motion[temp_r28] = CharModelMotionCreate(temp_r31->unk8, lbl_1_data_1F4[temp_r28]); } else { - object->motion[temp_r28] = Hu3DJointMotionFile(object->model[0], 0x3E0021+temp_r31->unk8); + object->motion[temp_r28] = Hu3DJointMotionFile(object->model[0], DATA_MAKE_NUM(DATADIR_M431, 0x21)+temp_r31->unk8); } if(temp_r28 == 4 || temp_r28 == 5) { CharModelVoiceEnableSet(temp_r31->unk8, object->motion[temp_r28], 0); diff --git a/src/REL/m434Dll/main.c b/src/REL/m434Dll/main.c index 70261dd1..bb2349c4 100644 --- a/src/REL/m434Dll/main.c +++ b/src/REL/m434Dll/main.c @@ -1,23 +1,22 @@ -#include "game/object.h" -#include "game/objsub.h" +#include "game/audio.h" #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "game/audio.h" +#include "game/object.h" +#include "game/objsub.h" #include "game/wipe.h" -#include "game/minigame_seq.h" -#include "game/gamework_data.h" #include "REL/m434Dll.h" -#include "math.h" #include "ext_math.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" +#include "math.h" #include "rel_sqrt_consts.h" - typedef struct camera_view { - float zoom; - Vec pos; - Vec rot; + float zoom; + Vec pos; + Vec rot; } CameraView; Vec lbl_1_data_0 = { -700, 2500, -700 }; @@ -28,7 +27,6 @@ Vec lbl_1_data_28 = { -700, 2500, 700 }; Vec lbl_1_data_34 = { 0, 1, 0 }; Vec lbl_1_data_40 = { 0, 0, 0 }; - omObjData *lbl_1_bss_3D4; omObjData *lbl_1_bss_3D0; omObjData *lbl_1_bss_3CC; @@ -61,58 +59,58 @@ void fn_1_16B4(void); void ObjectSetup(void) { - s32 i; - Process *objman; - OSReport("******* M434ObjectSetup *********\n"); - objman = omInitObjMan(50, 8192); - omGameSysInit(objman); - CZoom = 2097.6f; - Center.x = 0; - Center.y = 172; - Center.z = 361; - CRot.x = -32; - CRot.y = 0; - CRot.z = 0; - for(i=0; i<4; i++) { - CZoomM[i] = CZoom; - CenterM[i] = Center; - CRotM[i] = CRot; - } - fn_1_16B4(); - Hu3DCameraCreate(15); - Hu3DCameraPerspectiveSet(2, 30, 20, 25000, 1.2f); - Hu3DCameraViewportSet(2, 0, 0, 320, 240, 0, 1); - Hu3DCameraPerspectiveSet(13, 30, 20, 25000, 1.2f); - Hu3DCameraViewportSet(13, 0, 0, 640, 480, 0, 1); - lbl_1_bss_3CC = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti); - lbl_1_bss_3CC->work[0] = 4; - HuAudSndGrpSet(59); - lbl_1_data_C.x = -lbl_1_data_0.x; - lbl_1_data_C.y = -lbl_1_data_0.y; - lbl_1_data_C.z = -lbl_1_data_0.z; - VECNormalize(&lbl_1_data_C, &lbl_1_data_C); - lbl_1_bss_3B0 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24); - Hu3DGLightInfinitytSet(lbl_1_bss_3B0); - Hu3DGLightStaticSet(lbl_1_bss_3B0, 1); - for(i=0; i<4; i++) { - lbl_1_bss_3A0[i] = GWPlayerCfg[i].group; - } - lbl_1_bss_3D4 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_4FC); - lbl_1_bss_3D0 = omAddObjEx(objman, 0, 1, 0, -1, fn_1_CC8); - fn_1_1DB0(objman); - fn_1_4854(objman); - fn_1_6860(objman); - fn_1_1104(objman); + s32 i; + Process *objman; + OSReport("******* M434ObjectSetup *********\n"); + objman = omInitObjMan(50, 8192); + omGameSysInit(objman); + CZoom = 2097.6f; + Center.x = 0; + Center.y = 172; + Center.z = 361; + CRot.x = -32; + CRot.y = 0; + CRot.z = 0; + for (i = 0; i < 4; i++) { + CZoomM[i] = CZoom; + CenterM[i] = Center; + CRotM[i] = CRot; + } + fn_1_16B4(); + Hu3DCameraCreate(15); + Hu3DCameraPerspectiveSet(2, 30, 20, 25000, 1.2f); + Hu3DCameraViewportSet(2, 0, 0, 320, 240, 0, 1); + Hu3DCameraPerspectiveSet(13, 30, 20, 25000, 1.2f); + Hu3DCameraViewportSet(13, 0, 0, 640, 480, 0, 1); + lbl_1_bss_3CC = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti); + lbl_1_bss_3CC->work[0] = 4; + HuAudSndGrpSet(59); + lbl_1_data_C.x = -lbl_1_data_0.x; + lbl_1_data_C.y = -lbl_1_data_0.y; + lbl_1_data_C.z = -lbl_1_data_0.z; + VECNormalize(&lbl_1_data_C, &lbl_1_data_C); + lbl_1_bss_3B0 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24); + Hu3DGLightInfinitytSet(lbl_1_bss_3B0); + Hu3DGLightStaticSet(lbl_1_bss_3B0, 1); + for (i = 0; i < 4; i++) { + lbl_1_bss_3A0[i] = GWPlayerCfg[i].group; + } + lbl_1_bss_3D4 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_4FC); + lbl_1_bss_3D0 = omAddObjEx(objman, 0, 1, 0, -1, fn_1_CC8); + fn_1_1DB0(objman); + fn_1_4854(objman); + fn_1_6860(objman); + fn_1_1104(objman); } void fn_1_558(omObjData *object); void fn_1_4FC(omObjData *object) { - fn_1_1D64(0); - lbl_1_bss_3AA = 0; - lbl_1_bss_3A8 = 0; - object->func = fn_1_558; + fn_1_1D64(0); + lbl_1_bss_3AA = 0; + lbl_1_bss_3A8 = 0; + object->func = fn_1_558; } s32 lbl_1_data_70 = -1; @@ -122,138 +120,138 @@ void fn_1_1638(s32 arg0); void fn_1_558(omObjData *object) { - s32 temp_r31; - s32 temp_r29; - s32 sp10[2][4]; - s32 sp8[2]; - - switch(fn_1_1D54()) { - case 0: - lbl_1_bss_3C2 = 60; - lbl_1_bss_3C0 = 60; - fn_1_1D64(1); - lbl_1_bss_10[1] = 60; - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - HuAudFXPlay(1736); - break; - - case 1: - if(fn_1_10F4() == 2) { - if(lbl_1_bss_10[1] != 0) { - if(--lbl_1_bss_10[1] == 0) { - lbl_1_bss_3BC = MGSeqStartCreate(); - HuAudStreamPlay("sound/mu_047a.adp", 1); - } - } else { - if(MGSeqStatGet(lbl_1_bss_3BC) == 0) { - fn_1_1D64(2); - HuAudFXPlay(1738); - lbl_1_bss_3B8 = MGSeqTimerCreate(60); - fn_1_1638(1); - } - if(lbl_1_data_70 < 0 && (MGSeqStatGet(lbl_1_bss_3BC) & 0x10)) { - lbl_1_data_70 = HuAudSeqPlay(67); - } - } - } - break; - - case 2: - if(--lbl_1_bss_3C0 == 0) { - lbl_1_bss_3C2--; - MGSeqParamSet(lbl_1_bss_3B8, 1, lbl_1_bss_3C2); - lbl_1_bss_3C0 = 60; - } - if(!lbl_1_bss_3C2 || lbl_1_bss_3A8 == 1) { - fn_1_1D64(3); - lbl_1_bss_10[1] = 60; - lbl_1_bss_3BC = MGSeqFinishCreate(); - HuAudStreamFadeOut(30); - HuAudSeqFadeOut(lbl_1_data_70, 100); - } - break; - - case 3: - if(lbl_1_bss_3B8 >= 0) { - MGSeqParamSet(lbl_1_bss_3B8, 2, -1); - lbl_1_bss_3B8 = -1; - } - if(MGSeqStatGet(lbl_1_bss_3BC) == 0) { - fn_1_1D64(4); - lbl_1_bss_10[1] = 60; - } - break; - - case 4: - if(--lbl_1_bss_10[1] == 0) { - sp8[0] = sp8[1] = 0; - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r29 = fn_1_1D74(temp_r31); - sp10[temp_r29][sp8[temp_r29]++] = temp_r31; - } - lbl_1_bss_3AA = fn_1_1CB8(); - switch(lbl_1_bss_3AA) { - case -1: - lbl_1_bss_3AC[0] = GWPlayerCfg[sp10[0][0]].character; - lbl_1_bss_3AC[1] = GWPlayerCfg[sp10[0][1]].character; - MGSeqWinCreate(lbl_1_bss_3AC[0], lbl_1_bss_3AC[1], -1, -1); - GWPlayerCoinWinSet(sp10[0][0], 10); - GWPlayerCoinWinSet(sp10[0][1], 10); - HuAudSStreamPlay(1); - break; - - case 0: - MGSeqDrawCreate(); - HuAudSStreamPlay(4); - break; - - case 1: - lbl_1_bss_3AC[0] = GWPlayerCfg[sp10[1][0]].character; - lbl_1_bss_3AC[1] = GWPlayerCfg[sp10[1][1]].character; - MGSeqWinCreate(lbl_1_bss_3AC[0], lbl_1_bss_3AC[1], -1, -1); - GWPlayerCoinWinSet(sp10[1][0], 10); - GWPlayerCoinWinSet(sp10[1][1], 10); - HuAudSStreamPlay(1); - break; - } - fn_1_1D64(5); - lbl_1_bss_10[1] = 210; - } - break; - - case 5: - if(--lbl_1_bss_10[1] == 0) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_C64; - } - - break; - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - CZoomM[temp_r31] = CZoom; - CRotM[temp_r31] = CRot; - CenterM[temp_r31] = Center; - - } - if(omSysExitReq && !WipeStatGet()) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_C64; - } + s32 temp_r31; + s32 temp_r29; + s32 sp10[2][4]; + s32 sp8[2]; + + switch (fn_1_1D54()) { + case 0: + lbl_1_bss_3C2 = 60; + lbl_1_bss_3C0 = 60; + fn_1_1D64(1); + lbl_1_bss_10[1] = 60; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + HuAudFXPlay(1736); + break; + + case 1: + if (fn_1_10F4() == 2) { + if (lbl_1_bss_10[1] != 0) { + if (--lbl_1_bss_10[1] == 0) { + lbl_1_bss_3BC = MGSeqStartCreate(); + HuAudStreamPlay("sound/mu_047a.adp", 1); + } + } + else { + if (MGSeqStatGet(lbl_1_bss_3BC) == 0) { + fn_1_1D64(2); + HuAudFXPlay(1738); + lbl_1_bss_3B8 = MGSeqTimerCreate(60); + fn_1_1638(1); + } + if (lbl_1_data_70 < 0 && (MGSeqStatGet(lbl_1_bss_3BC) & 0x10)) { + lbl_1_data_70 = HuAudSeqPlay(67); + } + } + } + break; + + case 2: + if (--lbl_1_bss_3C0 == 0) { + lbl_1_bss_3C2--; + MGSeqParamSet(lbl_1_bss_3B8, 1, lbl_1_bss_3C2); + lbl_1_bss_3C0 = 60; + } + if (!lbl_1_bss_3C2 || lbl_1_bss_3A8 == 1) { + fn_1_1D64(3); + lbl_1_bss_10[1] = 60; + lbl_1_bss_3BC = MGSeqFinishCreate(); + HuAudStreamFadeOut(30); + HuAudSeqFadeOut(lbl_1_data_70, 100); + } + break; + + case 3: + if (lbl_1_bss_3B8 >= 0) { + MGSeqParamSet(lbl_1_bss_3B8, 2, -1); + lbl_1_bss_3B8 = -1; + } + if (MGSeqStatGet(lbl_1_bss_3BC) == 0) { + fn_1_1D64(4); + lbl_1_bss_10[1] = 60; + } + break; + + case 4: + if (--lbl_1_bss_10[1] == 0) { + sp8[0] = sp8[1] = 0; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r29 = fn_1_1D74(temp_r31); + sp10[temp_r29][sp8[temp_r29]++] = temp_r31; + } + lbl_1_bss_3AA = fn_1_1CB8(); + switch (lbl_1_bss_3AA) { + case -1: + lbl_1_bss_3AC[0] = GWPlayerCfg[sp10[0][0]].character; + lbl_1_bss_3AC[1] = GWPlayerCfg[sp10[0][1]].character; + MGSeqWinCreate(lbl_1_bss_3AC[0], lbl_1_bss_3AC[1], -1, -1); + GWPlayerCoinWinSet(sp10[0][0], 10); + GWPlayerCoinWinSet(sp10[0][1], 10); + HuAudSStreamPlay(1); + break; + + case 0: + MGSeqDrawCreate(); + HuAudSStreamPlay(4); + break; + + case 1: + lbl_1_bss_3AC[0] = GWPlayerCfg[sp10[1][0]].character; + lbl_1_bss_3AC[1] = GWPlayerCfg[sp10[1][1]].character; + MGSeqWinCreate(lbl_1_bss_3AC[0], lbl_1_bss_3AC[1], -1, -1); + GWPlayerCoinWinSet(sp10[1][0], 10); + GWPlayerCoinWinSet(sp10[1][1], 10); + HuAudSStreamPlay(1); + break; + } + fn_1_1D64(5); + lbl_1_bss_10[1] = 210; + } + break; + + case 5: + if (--lbl_1_bss_10[1] == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_C64; + } + + break; + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + CZoomM[temp_r31] = CZoom; + CRotM[temp_r31] = CRot; + CenterM[temp_r31] = Center; + } + if (omSysExitReq && !WipeStatGet()) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_C64; + } } void fn_1_C64(omObjData *object) { - if(WipeStatGet()) { - return; - } - fn_1_1E44(); - fn_1_4964(); - fn_1_6A84(); - fn_1_1684(); - MGSeqKillAll(); - HuAudFadeOut(1); - omOvlReturnEx(1, 1); - OSReport("******* M434Exit *********\n"); + if (WipeStatGet()) { + return; + } + fn_1_1E44(); + fn_1_4964(); + fn_1_6A84(); + fn_1_1684(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + OSReport("******* M434Exit *********\n"); } void fn_1_E44(omObjData *object); @@ -264,20 +262,19 @@ void fn_1_1A10(float arg0); void fn_1_CC8(omObjData *object) { - lbl_1_bss_8[0] = 0; - lbl_1_bss_8[1] = 140; - fn_1_16D8(); - fn_1_1950(302, 0, 125, -188, -24, 28, 0); - fn_1_1A00(1); - object->func = fn_1_E44; - omSetStatBit(object, 0x100); - object->model[0] = Hu3DModelCreateFile(0x410007); - Hu3DModelCameraSet(object->model[0], 4); - Hu3DModelLayerSet(object->model[0], 4); - Hu3DModelPosSet(object->model[0], -50, -40, -540); - Hu3DMotionSpeedSet(object->model[0], 1); - Hu3DModelRotSet(object->model[0], 0, 70, 0); - + lbl_1_bss_8[0] = 0; + lbl_1_bss_8[1] = 140; + fn_1_16D8(); + fn_1_1950(302, 0, 125, -188, -24, 28, 0); + fn_1_1A00(1); + object->func = fn_1_E44; + omSetStatBit(object, 0x100); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M434, 0x07)); + Hu3DModelCameraSet(object->model[0], 4); + Hu3DModelLayerSet(object->model[0], 4); + Hu3DModelPosSet(object->model[0], -50, -40, -540); + Hu3DMotionSpeedSet(object->model[0], 1); + Hu3DModelRotSet(object->model[0], 0, 70, 0); } s32 lbl_1_data_A4[] = { 74, 98 }; @@ -287,335 +284,326 @@ void fn_1_10BC(omObjData *object); void fn_1_E44(omObjData *object) { - ModelData *temp_r31; - s32 temp_r30; - Vec sp8; - switch(lbl_1_bss_8[0]) { - case 0: - if(--lbl_1_bss_8[1] == 0) { - Hu3DModelAttrSet(object->model[0], 1); - lbl_1_bss_8[0] = 1; - } - for(temp_r30=0; temp_r30<2u; temp_r30++) { - if(lbl_1_bss_4 == lbl_1_data_A4[temp_r30]) { - temp_r31 = &Hu3DData[object->model[0]]; - sp8.x = temp_r31->pos.x+(lbl_1_data_AC[temp_r30]*cosd(temp_r31->rot.y)); - sp8.y = -15.000001f; - sp8.z = temp_r31->pos.z-(lbl_1_data_AC[temp_r30]*sind(temp_r31->rot.y)); - if(temp_r30 == 0) { - fn_1_47EC(&sp8); - HuAudFXPlay(1731); - } else { - fn_1_43AC(&sp8); - HuAudFXPlay(1739); - } - } - } - lbl_1_bss_4++; - break; - - case 1: - lbl_1_bss_0 += 0.02f; - if(lbl_1_bss_0 >= 1.0f) { - lbl_1_bss_8[0] = 2; - lbl_1_bss_0 = 1.0f; - object->func = fn_1_10BC; - } - fn_1_1A10(lbl_1_bss_0); - break; - } + ModelData *temp_r31; + s32 temp_r30; + Vec sp8; + switch (lbl_1_bss_8[0]) { + case 0: + if (--lbl_1_bss_8[1] == 0) { + Hu3DModelAttrSet(object->model[0], 1); + lbl_1_bss_8[0] = 1; + } + for (temp_r30 = 0; temp_r30 < 2u; temp_r30++) { + if (lbl_1_bss_4 == lbl_1_data_A4[temp_r30]) { + temp_r31 = &Hu3DData[object->model[0]]; + sp8.x = temp_r31->pos.x + (lbl_1_data_AC[temp_r30] * cosd(temp_r31->rot.y)); + sp8.y = -15.000001f; + sp8.z = temp_r31->pos.z - (lbl_1_data_AC[temp_r30] * sind(temp_r31->rot.y)); + if (temp_r30 == 0) { + fn_1_47EC(&sp8); + HuAudFXPlay(1731); + } + else { + fn_1_43AC(&sp8); + HuAudFXPlay(1739); + } + } + } + lbl_1_bss_4++; + break; + + case 1: + lbl_1_bss_0 += 0.02f; + if (lbl_1_bss_0 >= 1.0f) { + lbl_1_bss_8[0] = 2; + lbl_1_bss_0 = 1.0f; + object->func = fn_1_10BC; + } + fn_1_1A10(lbl_1_bss_0); + break; + } } void fn_1_1788(void); void fn_1_10BC(omObjData *object) { - fn_1_1788(); - fn_1_1788(); - object->func = NULL; + fn_1_1788(); + fn_1_1788(); + object->func = NULL; } s32 fn_1_10F4(void) { - return lbl_1_bss_8[0]; + return lbl_1_bss_8[0]; } void fn_1_1150(omObjData *object); -u16 lbl_1_data_B4[6] = { - 0, 1, 2, 3, 4, 4 -}; +u16 lbl_1_data_B4[6] = { 0, 1, 2, 3, 4, 4 }; -float lbl_1_data_C0[6][2] = { - 0,0, - 0,0, - -33,-2, - -9,-2, - 11,-2, - 31,-2 -}; +float lbl_1_data_C0[6][2] = { 0, 0, 0, 0, -33, -2, -9, -2, 11, -2, 31, -2 }; -float lbl_1_data_F0[2][2] = { - 104, 56, - 472, 56 -}; +float lbl_1_data_F0[2][2] = { 104, 56, 472, 56 }; typedef struct work_1150 { - s32 unk0; - s16 unk4; - s16 unk6[6]; - u16 unk12; + s32 unk0; + s16 unk4; + s16 unk6[6]; + u16 unk12; } Work1150; void fn_1_1104(Process *objman) { - lbl_1_bss_3C4 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_1150); + lbl_1_bss_3C4 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_1150); } void fn_1_1470(omObjData *object); void fn_1_1150(omObjData *object) { - Work1150 *temp_r31; - u32 temp_r30; - s32 temp_r29; - temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 2*sizeof(Work1150), MEMORY_DEFAULT_NUM); - object->data = temp_r31; - memset(object->data, 0, 2*sizeof(Work1150)); - for(temp_r29=0; temp_r29<2; temp_r31++, temp_r29++) { - for(temp_r30=0; temp_r30<6; temp_r30++) { - switch(lbl_1_data_B4[temp_r30]) { - case 0: - temp_r31->unk6[temp_r30] = espEntry(0x61001D, 1, 0); - espPriSet(temp_r31->unk6[temp_r30], 256); - espColorSet(temp_r31->unk6[temp_r30], 0, 0, 0); - espTPLvlSet(temp_r31->unk6[temp_r30], 0.5); - break; - - case 1: - temp_r31->unk6[temp_r30] = espEntry((temp_r29 == 0) ? 0x61001B : 0x61001C, 1, 0); - espPriSet(temp_r31->unk6[temp_r30], 256); - break; - - case 2: - temp_r31->unk6[temp_r30] = espEntry(0x41000C, 1, 0); - espPriSet(temp_r31->unk6[temp_r30], 256); - espScaleSet(temp_r31->unk6[temp_r30], 0.75, 0.75); - break; - - case 3: - temp_r31->unk6[temp_r30] = espEntry(0x41000D, 1, 0); - espPriSet(temp_r31->unk6[temp_r30], 256); - break; - - case 4: - temp_r31->unk6[temp_r30] = espEntry(0x610033, 1, 0); - espPriSet(temp_r31->unk6[temp_r30], 255); - break; - } - espDispOff(temp_r31->unk6[temp_r30]); - espDrawNoSet(temp_r31->unk6[temp_r30], 0); - espAttrSet(temp_r31->unk6[temp_r30], 1); - espPosSet(temp_r31->unk6[temp_r30], lbl_1_data_F0[temp_r29][0]+lbl_1_data_C0[temp_r30][0], lbl_1_data_F0[temp_r29][1]+lbl_1_data_C0[temp_r30][1]); - } - temp_r31->unk0 = -1; - } - HuDataDirClose(0x610000); - object->func = fn_1_1470; + Work1150 *temp_r31; + u32 temp_r30; + s32 temp_r29; + temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(Work1150), MEMORY_DEFAULT_NUM); + object->data = temp_r31; + memset(object->data, 0, 2 * sizeof(Work1150)); + for (temp_r29 = 0; temp_r29 < 2; temp_r31++, temp_r29++) { + for (temp_r30 = 0; temp_r30 < 6; temp_r30++) { + switch (lbl_1_data_B4[temp_r30]) { + case 0: + temp_r31->unk6[temp_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x1D), 1, 0); + espPriSet(temp_r31->unk6[temp_r30], 256); + espColorSet(temp_r31->unk6[temp_r30], 0, 0, 0); + espTPLvlSet(temp_r31->unk6[temp_r30], 0.5); + break; + + case 1: + temp_r31->unk6[temp_r30] = espEntry((temp_r29 == 0) ? DATA_MAKE_NUM(DATADIR_MGCONST, 0x1B) : DATA_MAKE_NUM(DATADIR_MGCONST, 0x1C), 1, 0); + espPriSet(temp_r31->unk6[temp_r30], 256); + break; + + case 2: + temp_r31->unk6[temp_r30] = espEntry(DATA_MAKE_NUM(DATADIR_M434, 0x0C), 1, 0); + espPriSet(temp_r31->unk6[temp_r30], 256); + espScaleSet(temp_r31->unk6[temp_r30], 0.75, 0.75); + break; + + case 3: + temp_r31->unk6[temp_r30] = espEntry(DATA_MAKE_NUM(DATADIR_M434, 0x0D), 1, 0); + espPriSet(temp_r31->unk6[temp_r30], 256); + break; + + case 4: + temp_r31->unk6[temp_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x33), 1, 0); + espPriSet(temp_r31->unk6[temp_r30], 255); + break; + } + espDispOff(temp_r31->unk6[temp_r30]); + espDrawNoSet(temp_r31->unk6[temp_r30], 0); + espAttrSet(temp_r31->unk6[temp_r30], 1); + espPosSet(temp_r31->unk6[temp_r30], lbl_1_data_F0[temp_r29][0] + lbl_1_data_C0[temp_r30][0], + lbl_1_data_F0[temp_r29][1] + lbl_1_data_C0[temp_r30][1]); + } + temp_r31->unk0 = -1; + } + HuDataDirClose(DATADIR_MGCONST); + object->func = fn_1_1470; } void fn_1_1470(omObjData *object) { - float temp_f31; - Work1150 *temp_r31; - s32 temp_r30; - s32 temp_r29; - temp_r31 = object->data; - for(temp_r29=0; temp_r29<2; temp_r29++, temp_r31++) { - if(temp_r31->unk0 >= 0) { - if(temp_r31->unk0 == 0) { - for(temp_r30=0; temp_r30<6; temp_r30++) { - espDispOn(temp_r31->unk6[temp_r30]); - } - temp_r31->unk0++; - } - if(temp_r31->unk12) { - temp_r31->unk12--; - temp_f31 = (0.5*sind((180.0f*temp_r31->unk12)/16.0f))+1.0; - espScaleSet(temp_r31->unk6[4], temp_f31, temp_f31); - espScaleSet(temp_r31->unk6[5], temp_f31, temp_f31); - } - espBankSet(temp_r31->unk6[4], temp_r31->unk4/10); - espBankSet(temp_r31->unk6[5], temp_r31->unk4%10); - } - } + float temp_f31; + Work1150 *temp_r31; + s32 temp_r30; + s32 temp_r29; + temp_r31 = object->data; + for (temp_r29 = 0; temp_r29 < 2; temp_r29++, temp_r31++) { + if (temp_r31->unk0 >= 0) { + if (temp_r31->unk0 == 0) { + for (temp_r30 = 0; temp_r30 < 6; temp_r30++) { + espDispOn(temp_r31->unk6[temp_r30]); + } + temp_r31->unk0++; + } + if (temp_r31->unk12) { + temp_r31->unk12--; + temp_f31 = (0.5 * sind((180.0f * temp_r31->unk12) / 16.0f)) + 1.0; + espScaleSet(temp_r31->unk6[4], temp_f31, temp_f31); + espScaleSet(temp_r31->unk6[5], temp_f31, temp_f31); + } + espBankSet(temp_r31->unk6[4], temp_r31->unk4 / 10); + espBankSet(temp_r31->unk6[5], temp_r31->unk4 % 10); + } + } } void fn_1_1638(s32 arg0) { - Work1150 *temp_r31; - s32 temp_r30; - temp_r31 = lbl_1_bss_3C4->data; - for(temp_r30=0; temp_r30<2; temp_r30++, temp_r31++) { - temp_r31->unk0 = 0; - } + Work1150 *temp_r31; + s32 temp_r30; + temp_r31 = lbl_1_bss_3C4->data; + for (temp_r30 = 0; temp_r30 < 2; temp_r30++, temp_r31++) { + temp_r31->unk0 = 0; + } } void fn_1_1684(void) { - HuMemDirectFree(lbl_1_bss_3C4->data); + HuMemDirectFree(lbl_1_bss_3C4->data); } void fn_1_16B4(void) { - lbl_1_bss_39C = 0; - lbl_1_bss_18 = 0; + lbl_1_bss_39C = 0; + lbl_1_bss_18 = 0; } void fn_1_16D8(void) { - CameraView *temp_r31 = &lbl_1_bss_1C[lbl_1_bss_39C++]; - temp_r31->zoom = CZoom; - temp_r31->pos.x = Center.x; - temp_r31->pos.y = Center.y; - temp_r31->pos.z = Center.z; - temp_r31->rot.x = CRot.x; - temp_r31->rot.y = CRot.y; - temp_r31->rot.z = CRot.z; + CameraView *temp_r31 = &lbl_1_bss_1C[lbl_1_bss_39C++]; + temp_r31->zoom = CZoom; + temp_r31->pos.x = Center.x; + temp_r31->pos.y = Center.y; + temp_r31->pos.z = Center.z; + temp_r31->rot.x = CRot.x; + temp_r31->rot.y = CRot.y; + temp_r31->rot.z = CRot.z; } void fn_1_1788(void) { - CameraView *temp_r31 = &lbl_1_bss_1C[--lbl_1_bss_39C]; - CZoom = temp_r31->zoom; - Center.x = temp_r31->pos.x; - Center.y = temp_r31->pos.y; - Center.z = temp_r31->pos.z; - CRot.x = temp_r31->rot.x; - CRot.y = temp_r31->rot.y; - CRot.z = temp_r31->rot.z; + CameraView *temp_r31 = &lbl_1_bss_1C[--lbl_1_bss_39C]; + CZoom = temp_r31->zoom; + Center.x = temp_r31->pos.x; + Center.y = temp_r31->pos.y; + Center.z = temp_r31->pos.z; + CRot.x = temp_r31->rot.x; + CRot.y = temp_r31->rot.y; + CRot.z = temp_r31->rot.z; } void fn_1_1838(CameraView *arg0) { - CameraView *temp_r30; - CameraView sp8; - sp8 = lbl_1_bss_1C[lbl_1_bss_39C++]; - temp_r30 = &sp8; - memcpy(temp_r30, arg0, sizeof(CameraView)); - CZoom = arg0->zoom; - Center.x = arg0->pos.x; - Center.y = arg0->pos.y; - Center.z = arg0->pos.z; - CRot.x = arg0->rot.x; - CRot.y = arg0->rot.y; - CRot.z = arg0->rot.z; + CameraView *temp_r30; + CameraView sp8; + sp8 = lbl_1_bss_1C[lbl_1_bss_39C++]; + temp_r30 = &sp8; + memcpy(temp_r30, arg0, sizeof(CameraView)); + CZoom = arg0->zoom; + Center.x = arg0->pos.x; + Center.y = arg0->pos.y; + Center.z = arg0->pos.z; + CRot.x = arg0->rot.x; + CRot.y = arg0->rot.y; + CRot.z = arg0->rot.z; } void fn_1_1950(float arg0, float arg1, float arg2, float arg3, float arg4, float arg5, float arg6) { - CameraView *temp_r31 = &lbl_1_bss_1C[lbl_1_bss_39C++]; - temp_r31->zoom = CZoom = arg0; - temp_r31->pos.x = Center.x = arg1; - temp_r31->pos.y = Center.y = arg2; - temp_r31->pos.z = Center.z = arg3; - temp_r31->rot.x = CRot.x = arg4; - temp_r31->rot.y = CRot.y = arg5; - temp_r31->rot.z = CRot.z = arg6; + CameraView *temp_r31 = &lbl_1_bss_1C[lbl_1_bss_39C++]; + temp_r31->zoom = CZoom = arg0; + temp_r31->pos.x = Center.x = arg1; + temp_r31->pos.y = Center.y = arg2; + temp_r31->pos.z = Center.z = arg3; + temp_r31->rot.x = CRot.x = arg4; + temp_r31->rot.y = CRot.y = arg5; + temp_r31->rot.z = CRot.z = arg6; } void fn_1_1A00(s32 arg0) { - lbl_1_bss_18 = arg0; + lbl_1_bss_18 = arg0; } -#define LERP_PARAM(view1, view2, field, weight) ((view1)->field+) +#define LERP_PARAM(view1, view2, field, weight) ((view1)->field +) void fn_1_1A10(float arg0) { - float weight; - CameraView *view1 = &lbl_1_bss_1C[lbl_1_bss_39C-1]; - CameraView *view2 = view1-1; - if(lbl_1_bss_39C < 2) { - return; - } - switch(lbl_1_bss_18) { - case 0: - weight = arg0; - break; - - case 1: - weight = sind(90.0f*arg0); - break; - - case 2: - weight = sind(90.0f*arg0); - weight *= weight; - break; - } - - CZoom = view1->zoom+(weight*(view2->zoom-view1->zoom)); - Center.x = view1->pos.x+(weight*(view2->pos.x-view1->pos.x)); - Center.y = view1->pos.y+(weight*(view2->pos.y-view1->pos.y)); - Center.z = view1->pos.z+(weight*(view2->pos.z-view1->pos.z)); - CRot.x = view1->rot.x+(weight*(view2->rot.x-view1->rot.x)); - CRot.y = view1->rot.y+(weight*(view2->rot.y-view1->rot.y)); - CRot.z = view1->rot.z+(weight*(view2->rot.z-view1->rot.z)); + float weight; + CameraView *view1 = &lbl_1_bss_1C[lbl_1_bss_39C - 1]; + CameraView *view2 = view1 - 1; + if (lbl_1_bss_39C < 2) { + return; + } + switch (lbl_1_bss_18) { + case 0: + weight = arg0; + break; + + case 1: + weight = sind(90.0f * arg0); + break; + + case 2: + weight = sind(90.0f * arg0); + weight *= weight; + break; + } + + CZoom = view1->zoom + (weight * (view2->zoom - view1->zoom)); + Center.x = view1->pos.x + (weight * (view2->pos.x - view1->pos.x)); + Center.y = view1->pos.y + (weight * (view2->pos.y - view1->pos.y)); + Center.z = view1->pos.z + (weight * (view2->pos.z - view1->pos.z)); + CRot.x = view1->rot.x + (weight * (view2->rot.x - view1->rot.x)); + CRot.y = view1->rot.y + (weight * (view2->rot.y - view1->rot.y)); + CRot.z = view1->rot.z + (weight * (view2->rot.z - view1->rot.z)); } void fn_1_1C44(s32 arg0, s32 arg1) { - Work1150 *temp_r31 = &((Work1150 *)lbl_1_bss_3C4->data)[arg0]; - temp_r31->unk4 += arg1; - temp_r31->unk12 = 16; + Work1150 *temp_r31 = &((Work1150 *)lbl_1_bss_3C4->data)[arg0]; + temp_r31->unk4 += arg1; + temp_r31->unk12 = 16; } s32 fn_1_1C88(s32 arg0) { - Work1150 *temp_r31 = &((Work1150 *)lbl_1_bss_3C4->data)[arg0]; - return temp_r31->unk4; + Work1150 *temp_r31 = &((Work1150 *)lbl_1_bss_3C4->data)[arg0]; + return temp_r31->unk4; } s32 fn_1_1CB8(void) { - s32 temp_r31 = fn_1_1C88(0); - s32 temp_r30 = fn_1_1C88(1); - if(temp_r31 == temp_r30) { - return 0; - } - if(temp_r31 > temp_r30) { - return -1; - } else { - return 1; - } + s32 temp_r31 = fn_1_1C88(0); + s32 temp_r30 = fn_1_1C88(1); + if (temp_r31 == temp_r30) { + return 0; + } + if (temp_r31 > temp_r30) { + return -1; + } + else { + return 1; + } } s16 fn_1_1D44(void) { - return lbl_1_bss_3C2; + return lbl_1_bss_3C2; } s32 fn_1_1D54(void) { - return lbl_1_bss_10[0]; + return lbl_1_bss_10[0]; } void fn_1_1D64(s32 arg0) { - lbl_1_bss_10[0] = arg0; + lbl_1_bss_10[0] = arg0; } s32 fn_1_1D74(s32 arg0) { - return lbl_1_bss_3A0[arg0]; + return lbl_1_bss_3A0[arg0]; } s32 fn_1_1D8C(void) { - return lbl_1_bss_3AA; + return lbl_1_bss_3AA; } void fn_1_1D9C(void) { - lbl_1_bss_3A8 = 1; + lbl_1_bss_3A8 = 1; } diff --git a/src/REL/m434Dll/map.c b/src/REL/m434Dll/map.c index ff42bdf1..b34cb98b 100644 --- a/src/REL/m434Dll/map.c +++ b/src/REL/m434Dll/map.c @@ -1,57 +1,56 @@ +#include "game/hsfdraw.h" +#include "game/hsfman.h" #include "game/object.h" #include "game/objsub.h" -#include "game/hsfman.h" -#include "game/hsfdraw.h" -#include "game/hsfmotion.h" #include "game/audio.h" -#include "game/wipe.h" -#include "game/sprite.h" #include "game/frand.h" +#include "game/hsfmotion.h" +#include "game/sprite.h" +#include "game/wipe.h" -#include "game/minigame_seq.h" -#include "game/gamework_data.h" #include "REL/m434Dll.h" -#include "math.h" #include "ext_math.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" +#include "math.h" typedef struct bss_2468_data { - Vec unk0; - u16 unkC; + Vec unk0; + u16 unkC; } Bss2468Data; typedef struct bss_450_data { - void *unk0; - u32 unk4; + void *unk0; + u32 unk4; } Bss450Data; typedef struct bss_3F0_data { - void *unk0; - u16 unk4; - u16 unk6; - u16 unk8; - u16 unkA; - u32 unkC; - s32 unk10; + void *unk0; + u16 unk4; + u16 unk6; + u16 unk8; + u16 unkA; + u32 unkC; + s32 unk10; } Bss3F0Data; typedef struct struct_data100 { - u16 unk0; - u16 unk2; - u16 unk4; - u16 unk6; - u16 unk8; + u16 unk0; + u16 unk2; + u16 unk4; + u16 unk6; + u16 unk8; } StructData100; StructData100 lbl_1_data_100[5] = { - { 200, 200, 200, 200, 0 }, - { 320, 240, 160, 120, 1 }, - { 640, 480, 320, 240, 1 }, - { 640, 480, 640, 480, 0 }, - { 0, 0, 0, 0, 0 }, + { 200, 200, 200, 200, 0 }, + { 320, 240, 160, 120, 1 }, + { 640, 480, 320, 240, 1 }, + { 640, 480, 640, 480, 0 }, + { 0, 0, 0, 0, 0 }, }; - omObjData *lbl_1_bss_5868; Vec lbl_1_bss_2868[1024]; Bss2468Data lbl_1_bss_2468[64]; @@ -70,17 +69,17 @@ void fn_1_1E64(omObjData *object); void fn_1_1DB0(Process *objman) { - "\0"; //Force lbl_1_data_132 to 0 - lbl_1_bss_5868 = omAddObjEx(objman, 10, 16, 0, -1, fn_1_1E64); - CenterM[1].y = -CenterM[2].y + -15.000001f; - CRotM[1].x = -CRotM[2].x; + "\0"; // Force lbl_1_data_132 to 0 + lbl_1_bss_5868 = omAddObjEx(objman, 10, 16, 0, -1, fn_1_1E64); + CenterM[1].y = -CenterM[2].y + -15.000001f; + CRotM[1].x = -CRotM[2].x; } void fn_1_28F0(void); void fn_1_1E44(void) { - fn_1_28F0(); + fn_1_28F0(); } void fn_1_26A4(omObjData *object); @@ -98,384 +97,376 @@ void fn_1_443C(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_1E64(omObjData *object) { - s32 temp_r30; - Vec *temp_r29; - HsfVector2f *temp_r28; - s32 temp_r27; - AnimData *temp_r26; - - object->model[9] = Hu3DHookFuncCreate(fn_1_3CC8); - Hu3DModelLayerSet(object->model[9], 1); - Hu3DModelCameraSet(object->model[9], 1); - object->model[1] = Hu3DModelCreateFile(0x410002); - Hu3DModelLayerSet(object->model[1], 2); - Hu3DModelCameraSet(object->model[1], 2); - object->model[0] = Hu3DModelCreateFile(0x410000); - Hu3DModelLayerSet(object->model[0], 2); - Hu3DModelCameraSet(object->model[0], 8); - object->model[8] = Hu3DModelCreateFile(0x410001); - Hu3DModelLayerSet(object->model[8], 2); - Hu3DModelCameraSet(object->model[8], 4); - object->model[3] = Hu3DModelCreateFile(0x410008); - Hu3DModelClusterAttrSet(object->model[3], 0, 0xC0000001); - Hu3DModelLayerSet(object->model[3], 2); - Hu3DModelCameraSet(object->model[3], 8); - object->model[4] = Hu3DModelCreateFile(0x410009); - Hu3DModelClusterAttrSet(object->model[4], 0, 0xC0000001); - Hu3DModelLayerSet(object->model[4], 2); - Hu3DModelCameraSet(object->model[4], 8); - object->model[2] = Hu3DHookFuncCreate(fn_1_2978); - Hu3DModelLayerSet(object->model[2], 3); - Hu3DModelCameraSet(object->model[2], 8); - temp_r29 = lbl_1_bss_2868; - for(temp_r30=0; temp_r30<32; temp_r30++) { - for(temp_r27=0; temp_r27<32; temp_r29++, temp_r27++) { - temp_r29->x = -700.0f+((1400.0f*temp_r27)/31.0f); - temp_r29->y = -15.000001f; - temp_r29->z = -600.0f+((1200.0f*temp_r30)/31.0f); - if(temp_r30 & 0x1) { - temp_r29->x += 700.0f/31.0f; - } - } - } - DCFlushRangeNoSync(lbl_1_bss_2868, sizeof(lbl_1_bss_2868)); - temp_r28 = lbl_1_bss_464; - for(temp_r30=0; temp_r30<1024; temp_r30++, temp_r28++) { - temp_r28->x = 360.0f*((1.0f/256.0f)*frand8()); - temp_r28->y = 2.0f*((1.0f/256.0f)*frand8())+0.5f; - } - memset(lbl_1_bss_2468, 0, sizeof(lbl_1_bss_2468)); - lbl_1_bss_2464 = 0; - lbl_1_bss_450.unk4 = 16384; - lbl_1_bss_450.unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_450.unk4, MEMORY_DEFAULT_NUM); - DCInvalidateRange(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); - fn_1_3004(); - lbl_1_bss_440.unk4 = 16384; - lbl_1_bss_440.unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_440.unk4, MEMORY_DEFAULT_NUM); - fn_1_3128(); - lbl_1_bss_45C = HuSprAnimReadFile(0x3D0019); - lbl_1_bss_458 = HuSprAnimReadFile(0x41000A); - HuDataDirClose(0x3D0000); - for(temp_r30=0; temp_r30<4; temp_r30++) { - lbl_1_bss_3F0[temp_r30].unk4 = lbl_1_data_100[temp_r30].unk0; - lbl_1_bss_3F0[temp_r30].unk6 = lbl_1_data_100[temp_r30].unk2; - lbl_1_bss_3F0[temp_r30].unk8 = lbl_1_data_100[temp_r30].unk4; - lbl_1_bss_3F0[temp_r30].unkA = lbl_1_data_100[temp_r30].unk6; - lbl_1_bss_3F0[temp_r30].unk10 = lbl_1_data_100[temp_r30].unk8; - lbl_1_bss_3F0[temp_r30].unkC = GXGetTexBufferSize(lbl_1_bss_3F0[temp_r30].unk8, lbl_1_bss_3F0[temp_r30].unkA, GX_TF_RGB565, GX_FALSE, 0); - lbl_1_bss_3F0[temp_r30].unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_3F0[temp_r30].unkC, MEMORY_DEFAULT_NUM); - memset(lbl_1_bss_3F0[temp_r30].unk0, 0, lbl_1_bss_3F0[temp_r30].unkC); - } - object->model[5] = Hu3DHookFuncCreate(fn_1_33A4); - Hu3DModelLayerSet(object->model[5], 3); - Hu3DModelCameraSet(object->model[5], 2); - object->model[6] = Hu3DHookFuncCreate(fn_1_349C); - Hu3DModelLayerSet(object->model[6], 3); - Hu3DModelCameraSet(object->model[6], 4); - object->model[7] = Hu3DHookFuncCreate(fn_1_3594); - Hu3DModelLayerSet(object->model[7], 5); - Hu3DModelCameraSet(object->model[7], 4); - temp_r26 = HuSprAnimReadFile(0x41000B); - object->model[10] = Hu3DParticleCreate(temp_r26, 100); - Hu3DParticleHookSet(object->model[10], fn_1_443C); - Hu3DModelAttrSet(object->model[10], 1); - Hu3DModelLayerSet(object->model[10], 4); - Hu3DModelCameraSet(object->model[10], 8); - object->func = fn_1_26A4; + s32 temp_r30; + Vec *temp_r29; + HsfVector2f *temp_r28; + s32 temp_r27; + AnimData *temp_r26; + + object->model[9] = Hu3DHookFuncCreate(fn_1_3CC8); + Hu3DModelLayerSet(object->model[9], 1); + Hu3DModelCameraSet(object->model[9], 1); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M434, 0x02)); + Hu3DModelLayerSet(object->model[1], 2); + Hu3DModelCameraSet(object->model[1], 2); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M434, 0x00)); + Hu3DModelLayerSet(object->model[0], 2); + Hu3DModelCameraSet(object->model[0], 8); + object->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M434, 0x01)); + Hu3DModelLayerSet(object->model[8], 2); + Hu3DModelCameraSet(object->model[8], 4); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M434, 0x08)); + Hu3DModelClusterAttrSet(object->model[3], 0, 0xC0000001); + Hu3DModelLayerSet(object->model[3], 2); + Hu3DModelCameraSet(object->model[3], 8); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M434, 0x09)); + Hu3DModelClusterAttrSet(object->model[4], 0, 0xC0000001); + Hu3DModelLayerSet(object->model[4], 2); + Hu3DModelCameraSet(object->model[4], 8); + object->model[2] = Hu3DHookFuncCreate(fn_1_2978); + Hu3DModelLayerSet(object->model[2], 3); + Hu3DModelCameraSet(object->model[2], 8); + temp_r29 = lbl_1_bss_2868; + for (temp_r30 = 0; temp_r30 < 32; temp_r30++) { + for (temp_r27 = 0; temp_r27 < 32; temp_r29++, temp_r27++) { + temp_r29->x = -700.0f + ((1400.0f * temp_r27) / 31.0f); + temp_r29->y = -15.000001f; + temp_r29->z = -600.0f + ((1200.0f * temp_r30) / 31.0f); + if (temp_r30 & 0x1) { + temp_r29->x += 700.0f / 31.0f; + } + } + } + DCFlushRangeNoSync(lbl_1_bss_2868, sizeof(lbl_1_bss_2868)); + temp_r28 = lbl_1_bss_464; + for (temp_r30 = 0; temp_r30 < 1024; temp_r30++, temp_r28++) { + temp_r28->x = 360.0f * ((1.0f / 256.0f) * frand8()); + temp_r28->y = 2.0f * ((1.0f / 256.0f) * frand8()) + 0.5f; + } + memset(lbl_1_bss_2468, 0, sizeof(lbl_1_bss_2468)); + lbl_1_bss_2464 = 0; + lbl_1_bss_450.unk4 = 16384; + lbl_1_bss_450.unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_450.unk4, MEMORY_DEFAULT_NUM); + DCInvalidateRange(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); + fn_1_3004(); + lbl_1_bss_440.unk4 = 16384; + lbl_1_bss_440.unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_440.unk4, MEMORY_DEFAULT_NUM); + fn_1_3128(); + lbl_1_bss_45C = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M430, 0x19)); + lbl_1_bss_458 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M434, 0x0A)); + HuDataDirClose(DATADIR_M430); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + lbl_1_bss_3F0[temp_r30].unk4 = lbl_1_data_100[temp_r30].unk0; + lbl_1_bss_3F0[temp_r30].unk6 = lbl_1_data_100[temp_r30].unk2; + lbl_1_bss_3F0[temp_r30].unk8 = lbl_1_data_100[temp_r30].unk4; + lbl_1_bss_3F0[temp_r30].unkA = lbl_1_data_100[temp_r30].unk6; + lbl_1_bss_3F0[temp_r30].unk10 = lbl_1_data_100[temp_r30].unk8; + lbl_1_bss_3F0[temp_r30].unkC = GXGetTexBufferSize(lbl_1_bss_3F0[temp_r30].unk8, lbl_1_bss_3F0[temp_r30].unkA, GX_TF_RGB565, GX_FALSE, 0); + lbl_1_bss_3F0[temp_r30].unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_3F0[temp_r30].unkC, MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_3F0[temp_r30].unk0, 0, lbl_1_bss_3F0[temp_r30].unkC); + } + object->model[5] = Hu3DHookFuncCreate(fn_1_33A4); + Hu3DModelLayerSet(object->model[5], 3); + Hu3DModelCameraSet(object->model[5], 2); + object->model[6] = Hu3DHookFuncCreate(fn_1_349C); + Hu3DModelLayerSet(object->model[6], 3); + Hu3DModelCameraSet(object->model[6], 4); + object->model[7] = Hu3DHookFuncCreate(fn_1_3594); + Hu3DModelLayerSet(object->model[7], 5); + Hu3DModelCameraSet(object->model[7], 4); + temp_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M434, 0x0B)); + object->model[10] = Hu3DParticleCreate(temp_r26, 100); + Hu3DParticleHookSet(object->model[10], fn_1_443C); + Hu3DModelAttrSet(object->model[10], 1); + Hu3DModelLayerSet(object->model[10], 4); + Hu3DModelCameraSet(object->model[10], 8); + object->func = fn_1_26A4; } HsfAttribute *fn_1_2608(s16 model, char *name) { - HsfData *temp_r31; - HsfAttribute *temp_r30; - s32 temp_r29; - ModelData *temp_r28; - HsfBitmap *temp_r27; - temp_r28 = &Hu3DData[model]; - temp_r31 = temp_r28->hsfData; - temp_r30 = temp_r31->attribute; - for(temp_r29=0; temp_r29attributeCnt; temp_r29++, temp_r30++) { - temp_r27 = temp_r30->bitmap; - if(strcmp(name, temp_r27->name) == 0) { - break; - } - } - if(temp_r29 >= temp_r31->attributeCnt) { - return NULL; - } - return temp_r30; + HsfData *temp_r31; + HsfAttribute *temp_r30; + s32 temp_r29; + ModelData *temp_r28; + HsfBitmap *temp_r27; + temp_r28 = &Hu3DData[model]; + temp_r31 = temp_r28->hsfData; + temp_r30 = temp_r31->attribute; + for (temp_r29 = 0; temp_r29 < temp_r31->attributeCnt; temp_r29++, temp_r30++) { + temp_r27 = temp_r30->bitmap; + if (strcmp(name, temp_r27->name) == 0) { + break; + } + } + if (temp_r29 >= temp_r31->attributeCnt) { + return NULL; + } + return temp_r30; } void fn_1_26A4(omObjData *object) { - s32 temp_r31; - Bss2468Data *temp_r30; - HsfVector2f *temp_r29; - HsfAttribute *temp_r27; - Vec *temp_r25; - s32 temp_r23; - s32 temp_r22; - Bss2468Data *sp8[64]; - - temp_r27 = fn_1_2608(object->model[1], "sora"); - if(temp_r27 != NULL) { - temp_r27->unk30 += 0.0001f; - temp_r27->unk34 -= 0.00005f; - } - temp_r30 = lbl_1_bss_2468; - temp_r22 = 0; - for(temp_r31=0; temp_r31<64; temp_r31++, temp_r30++) { - if(temp_r30->unkC) { - sp8[temp_r22++] = temp_r30; - } - } - temp_r25 = lbl_1_bss_2868; - temp_r29 = lbl_1_bss_464; - for(temp_r31=0; temp_r31<32; temp_r31++) { - for(temp_r23=0; temp_r23<32; temp_r23++, temp_r25++, temp_r29++) { - temp_r25->y = -15.000001f+(2.0f*sind(temp_r29->x)); - temp_r29->x += temp_r29->y; - } - } - DCFlushRangeNoSync(lbl_1_bss_2868, sizeof(lbl_1_bss_2868)); - for(temp_r31=0; temp_r31unkC--; - } - CenterM[1].y = -15.000001f+(-CenterM[2].y); - CRotM[1].x = -CRotM[2].x; + s32 temp_r31; + Bss2468Data *temp_r30; + HsfVector2f *temp_r29; + HsfAttribute *temp_r27; + Vec *temp_r25; + s32 temp_r23; + s32 temp_r22; + Bss2468Data *sp8[64]; + + temp_r27 = fn_1_2608(object->model[1], "sora"); + if (temp_r27 != NULL) { + temp_r27->unk30 += 0.0001f; + temp_r27->unk34 -= 0.00005f; + } + temp_r30 = lbl_1_bss_2468; + temp_r22 = 0; + for (temp_r31 = 0; temp_r31 < 64; temp_r31++, temp_r30++) { + if (temp_r30->unkC) { + sp8[temp_r22++] = temp_r30; + } + } + temp_r25 = lbl_1_bss_2868; + temp_r29 = lbl_1_bss_464; + for (temp_r31 = 0; temp_r31 < 32; temp_r31++) { + for (temp_r23 = 0; temp_r23 < 32; temp_r23++, temp_r25++, temp_r29++) { + temp_r25->y = -15.000001f + (2.0f * sind(temp_r29->x)); + temp_r29->x += temp_r29->y; + } + } + DCFlushRangeNoSync(lbl_1_bss_2868, sizeof(lbl_1_bss_2868)); + for (temp_r31 = 0; temp_r31 < temp_r22; temp_r31++) { + temp_r30 = sp8[temp_r31]; + temp_r30->unkC--; + } + CenterM[1].y = -15.000001f + (-CenterM[2].y); + CRotM[1].x = -CRotM[2].x; } void fn_1_28F0(void) { - s32 temp_r31; - for(temp_r31=0; temp_r31<4; temp_r31++) { - if(lbl_1_bss_3F0[temp_r31].unk0 != NULL) { - HuMemDirectFree(lbl_1_bss_3F0[temp_r31].unk0); - lbl_1_bss_3F0[temp_r31].unk0 = NULL; - } - } + s32 temp_r31; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + if (lbl_1_bss_3F0[temp_r31].unk0 != NULL) { + HuMemDirectFree(lbl_1_bss_3F0[temp_r31].unk0); + lbl_1_bss_3F0[temp_r31].unk0 = NULL; + } + } } GXColor lbl_1_data_139 = { 255, 255, 255, 64 }; -float lbl_1_data_140[2][3] = { - 0.012f, 0, 0, - 0, 0.012f, 0 -}; +float lbl_1_data_140[2][3] = { 0.012f, 0, 0, 0, 0.012f, 0 }; -float lbl_1_data_158[2][3] = { - 0, 0, 0.5f, - 0, 0.5f, 0 -}; +float lbl_1_data_158[2][3] = { 0, 0, 0.5f, 0, 0.5f, 0 }; void fn_1_2978(ModelData *model, Mtx mtx) { - float temp_f31; - - Mtx sp1AC; - Mtx sp17C; - Mtx sp14C; - Mtx sp11C; - Mtx spEC; - Mtx spBC; - Mtx sp8C; - Mtx sp5C; - Mtx sp2C; - GXTexObj spC; - GXLoadPosMtxImm(mtx, GX_PNMTX0); - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); - GXSetNumTexGens(4); - GXInitTexObj(&spC, lbl_1_bss_3F0[2].unk0, lbl_1_bss_3F0[2].unk8, lbl_1_bss_3F0[2].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); - GXLoadTexObj(&spC, GX_TEXMAP0); - GXInitTexObj(&spC, lbl_1_bss_3F0[1].unk0, lbl_1_bss_3F0[1].unk8, lbl_1_bss_3F0[1].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); - GXLoadTexObj(&spC, GX_TEXMAP1); - MTXLightPerspective(sp1AC, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - MTXInverse(Hu3DCameraMtx, spBC); - MTXConcat(spBC, mtx, spBC); - MTXConcat(sp1AC, Hu3DCameraMtx, sp8C); - MTXConcat(sp8C, spBC, spBC); - GXLoadTexMtxImm(spBC, GX_TEXMTX0, GX_MTX3x4); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); - MTXLightPerspective(sp1AC, 30.0f, 1.2f, 0.5f, 0.5f, 0.5f, 0.5f); - MTXInverse(Hu3DCameraMtx, sp5C); - MTXConcat(sp5C, mtx, sp5C); - MTXConcat(sp1AC, Hu3DCameraMtx, sp2C); - MTXConcat(sp2C, sp5C, sp5C); - GXLoadTexMtxImm(sp5C, GX_TEXMTX1, GX_MTX3x4); - GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX1); - GXSetNumTevStages(2); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR0A0); - GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A0, GX_CC_ZERO); - GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); - GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevColor(GX_TEVSTAGE1, lbl_1_data_139); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); - HuSprTexLoad(lbl_1_bss_45C, 0, GX_TEXMAP2, GX_REPEAT, GX_REPEAT, GX_LINEAR); - GXInitTexObj(&spC, lbl_1_bss_3F0[0].unk0, lbl_1_bss_3F0[0].unk8, lbl_1_bss_3F0[0].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); - GXLoadTexObj(&spC, GX_TEXMAP3); - GXSetNumIndStages(2); - MTXRotDeg(sp11C, 'X', -90.0f); - temp_f31 = 1.0f/600.0f; - MTXScale(sp14C, temp_f31, temp_f31, temp_f31); - MTXConcat(sp14C, sp11C, sp17C); - sp17C[0][1] = -0.03f; - GXLoadTexMtxImm(sp17C, GX_TEXMTX2, GX_MTX2x4); - GXSetTexCoordGen(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX2); - GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD2, GX_TEXMAP2); - GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); - GXSetIndTexMtx(GX_ITM_0, lbl_1_data_140, 0); - GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); - MTXRotDeg(sp11C, 'X', -90.0f); - temp_f31 = 1.0f/1200.0f; - MTXScale(sp14C, temp_f31, temp_f31, temp_f31); - MTXConcat(sp14C, sp11C, sp17C); - MTXTrans(spEC, 0.5f, 0.5f, 0.0f); - MTXConcat(spEC, sp17C, sp17C); - GXLoadTexMtxImm(sp17C, GX_TEXMTX3, GX_MTX2x4); - GXSetTexCoordGen(GX_TEXCOORD3, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX3); - GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD3, GX_TEXMAP3); - GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); - GXSetIndTexMtx(GX_ITM_1, lbl_1_data_158, 0); - GXSetTevIndWarp(GX_TEVSTAGE1, GX_INDTEXSTAGE1, GX_TRUE, GX_FALSE, GX_ITM_1); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSetArray(GX_VA_POS, lbl_1_bss_2868, sizeof(Vec)); - GXSetCullMode(GX_CULL_BACK); - GXCallDisplayList(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); - GXSetNumIndStages(0); - GXSetTevDirect(GX_TEVSTAGE0); - GXSetTevDirect(GX_TEVSTAGE1); + float temp_f31; + + Mtx sp1AC; + Mtx sp17C; + Mtx sp14C; + Mtx sp11C; + Mtx spEC; + Mtx spBC; + Mtx sp8C; + Mtx sp5C; + Mtx sp2C; + GXTexObj spC; + GXLoadPosMtxImm(mtx, GX_PNMTX0); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetNumTexGens(4); + GXInitTexObj(&spC, lbl_1_bss_3F0[2].unk0, lbl_1_bss_3F0[2].unk8, lbl_1_bss_3F0[2].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXLoadTexObj(&spC, GX_TEXMAP0); + GXInitTexObj(&spC, lbl_1_bss_3F0[1].unk0, lbl_1_bss_3F0[1].unk8, lbl_1_bss_3F0[1].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXLoadTexObj(&spC, GX_TEXMAP1); + MTXLightPerspective(sp1AC, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + MTXInverse(Hu3DCameraMtx, spBC); + MTXConcat(spBC, mtx, spBC); + MTXConcat(sp1AC, Hu3DCameraMtx, sp8C); + MTXConcat(sp8C, spBC, spBC); + GXLoadTexMtxImm(spBC, GX_TEXMTX0, GX_MTX3x4); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); + MTXLightPerspective(sp1AC, 30.0f, 1.2f, 0.5f, 0.5f, 0.5f, 0.5f); + MTXInverse(Hu3DCameraMtx, sp5C); + MTXConcat(sp5C, mtx, sp5C); + MTXConcat(sp1AC, Hu3DCameraMtx, sp2C); + MTXConcat(sp2C, sp5C, sp5C); + GXLoadTexMtxImm(sp5C, GX_TEXMTX1, GX_MTX3x4); + GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX1); + GXSetNumTevStages(2); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A0, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevColor(GX_TEVSTAGE1, lbl_1_data_139); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + HuSprTexLoad(lbl_1_bss_45C, 0, GX_TEXMAP2, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXInitTexObj(&spC, lbl_1_bss_3F0[0].unk0, lbl_1_bss_3F0[0].unk8, lbl_1_bss_3F0[0].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXLoadTexObj(&spC, GX_TEXMAP3); + GXSetNumIndStages(2); + MTXRotDeg(sp11C, 'X', -90.0f); + temp_f31 = 1.0f / 600.0f; + MTXScale(sp14C, temp_f31, temp_f31, temp_f31); + MTXConcat(sp14C, sp11C, sp17C); + sp17C[0][1] = -0.03f; + GXLoadTexMtxImm(sp17C, GX_TEXMTX2, GX_MTX2x4); + GXSetTexCoordGen(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX2); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD2, GX_TEXMAP2); + GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); + GXSetIndTexMtx(GX_ITM_0, lbl_1_data_140, 0); + GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); + MTXRotDeg(sp11C, 'X', -90.0f); + temp_f31 = 1.0f / 1200.0f; + MTXScale(sp14C, temp_f31, temp_f31, temp_f31); + MTXConcat(sp14C, sp11C, sp17C); + MTXTrans(spEC, 0.5f, 0.5f, 0.0f); + MTXConcat(spEC, sp17C, sp17C); + GXLoadTexMtxImm(sp17C, GX_TEXMTX3, GX_MTX2x4); + GXSetTexCoordGen(GX_TEXCOORD3, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX3); + GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD3, GX_TEXMAP3); + GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); + GXSetIndTexMtx(GX_ITM_1, lbl_1_data_158, 0); + GXSetTevIndWarp(GX_TEVSTAGE1, GX_INDTEXSTAGE1, GX_TRUE, GX_FALSE, GX_ITM_1); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, lbl_1_bss_2868, sizeof(Vec)); + GXSetCullMode(GX_CULL_BACK); + GXCallDisplayList(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); + GXSetTevDirect(GX_TEVSTAGE1); } void fn_1_3004(void) { - s32 temp_r31; - s32 temp_r30; - s32 temp_r29; - GXBeginDisplayList(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); - for(temp_r30=0; temp_r30<31; temp_r30++) { - temp_r29 = temp_r30*32; - GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 64); - if(temp_r30 & 0x1) { - for(temp_r31=0; temp_r31<32; temp_r31++) { - GXPosition1x16(temp_r29+temp_r31+32); - GXPosition1x16(temp_r29+temp_r31); - } - } else { - for(temp_r31=31; temp_r31>=0; temp_r31--) { - GXPosition1x16(temp_r29+temp_r31); - GXPosition1x16(temp_r29+temp_r31+32); - - } - } - } - lbl_1_bss_450.unk4 = GXEndDisplayList(); - DCFlushRangeNoSync(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); + s32 temp_r31; + s32 temp_r30; + s32 temp_r29; + GXBeginDisplayList(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); + for (temp_r30 = 0; temp_r30 < 31; temp_r30++) { + temp_r29 = temp_r30 * 32; + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 64); + if (temp_r30 & 0x1) { + for (temp_r31 = 0; temp_r31 < 32; temp_r31++) { + GXPosition1x16(temp_r29 + temp_r31 + 32); + GXPosition1x16(temp_r29 + temp_r31); + } + } + else { + for (temp_r31 = 31; temp_r31 >= 0; temp_r31--) { + GXPosition1x16(temp_r29 + temp_r31); + GXPosition1x16(temp_r29 + temp_r31 + 32); + } + } + } + lbl_1_bss_450.unk4 = GXEndDisplayList(); + DCFlushRangeNoSync(lbl_1_bss_450.unk0, lbl_1_bss_450.unk4); } void fn_1_3128(void) { - GXBeginDisplayList(lbl_1_bss_440.unk0, lbl_1_bss_440.unk4); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition2f32(-0.5f, -0.5f); - GXTexCoord2f32(0, 0); - GXPosition2f32(0.5f, -0.5f); - GXTexCoord2f32(1, 0); - GXPosition2f32(0.5f, 0.5f); - GXTexCoord2f32(1, 1); - GXPosition2f32(-0.5f, 0.5f); - GXTexCoord2f32(0, 1); - GXEnd(); - lbl_1_bss_440.unk4 = GXEndDisplayList(); - DCFlushRangeNoSync(lbl_1_bss_440.unk0, lbl_1_bss_440.unk4); + GXBeginDisplayList(lbl_1_bss_440.unk0, lbl_1_bss_440.unk4); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition2f32(-0.5f, -0.5f); + GXTexCoord2f32(0, 0); + GXPosition2f32(0.5f, -0.5f); + GXTexCoord2f32(1, 0); + GXPosition2f32(0.5f, 0.5f); + GXTexCoord2f32(1, 1); + GXPosition2f32(-0.5f, 0.5f); + GXTexCoord2f32(0, 1); + GXEnd(); + lbl_1_bss_440.unk4 = GXEndDisplayList(); + DCFlushRangeNoSync(lbl_1_bss_440.unk0, lbl_1_bss_440.unk4); } void fn_1_32DC(Bss3F0Data *arg0, GXBool arg1) { - GXSetZMode(GX_FALSE, GX_LEQUAL, GX_TRUE); - GXSetTexCopySrc(0, 0, arg0->unk4, arg0->unk6); - GXSetTexCopyDst(arg0->unk8, arg0->unkA, GX_TF_RGB565, arg0->unk10); - GXSetCopyClear(BGColor, 0xFFFFFF); - GXCopyTex(arg0->unk0, arg1); - GXPixModeSync(); - DCFlushRange(arg0->unk0, arg0->unkC); - + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_TRUE); + GXSetTexCopySrc(0, 0, arg0->unk4, arg0->unk6); + GXSetTexCopyDst(arg0->unk8, arg0->unkA, GX_TF_RGB565, arg0->unk10); + GXSetCopyClear(BGColor, 0xFFFFFF); + GXCopyTex(arg0->unk0, arg1); + GXPixModeSync(); + DCFlushRange(arg0->unk0, arg0->unkC); } void fn_1_33A4(ModelData *model, Mtx mtx) { - fn_1_32DC(&lbl_1_bss_3F0[1], GX_TRUE); - + fn_1_32DC(&lbl_1_bss_3F0[1], GX_TRUE); } void fn_1_349C(ModelData *model, Mtx mtx) { - fn_1_32DC(&lbl_1_bss_3F0[2], GX_TRUE); + fn_1_32DC(&lbl_1_bss_3F0[2], GX_TRUE); } void fn_1_3594(ModelData *model, Mtx mtx) { - Mtx sp90; - Mtx sp60; - Mtx sp30; - GXTexObj sp10; - - fn_1_32DC(&lbl_1_bss_3F0[3], GX_FALSE); - GXLoadPosMtxImm(mtx, GX_PNMTX0); - MTXLightPerspective(sp90, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - MTXInverse(Hu3DCameraMtx, sp60); - MTXConcat(sp60, mtx, sp60); - MTXConcat(sp90, Hu3DCameraMtx, sp30); - MTXConcat(sp30, sp60, sp60); - GXLoadTexMtxImm(sp60, GX_TEXMTX0, GX_MTX3x4); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); - GXSetNumTexGens(1); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); - GXSetZMode(GX_TRUE, GX_GREATER, GX_FALSE); - GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); - GXSetNumTevStages(1); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); - GXInitTexObj(&sp10, lbl_1_bss_3F0[2].unk0, lbl_1_bss_3F0[2].unk8, lbl_1_bss_3F0[2].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); - GXLoadTexObj(&sp10, GX_TEXMAP0); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32(-1000.0f, -5.000001f, -1000.0f); - GXPosition3f32(1000.0f, -5.000001f, -1000.0f); - GXPosition3f32(1000.0f, -5.000001f, 1000.0f); - GXPosition3f32(-1000.0f, -5.000001f, 1000.0f); - GXEnd(); - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32(-1000.0f, -70.0f, -1000.0f); - GXPosition3f32(1000.0f, -70.0f, -1000.0f); - GXPosition3f32(1000.0f, -70.0f, 1000.0f); - GXPosition3f32(-1000.0f, -70.0f, 1000.0f); - GXEnd(); - fn_1_32DC(&lbl_1_bss_3F0[2], GX_FALSE); - GXInitTexObj(&sp10, lbl_1_bss_3F0[3].unk0, lbl_1_bss_3F0[3].unk8, lbl_1_bss_3F0[3].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); - GXLoadTexObj(&sp10, GX_TEXMAP0); - GXSetZMode(GX_TRUE, GX_GREATER, GX_FALSE); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32(-1000.0f, -5.000001f, -1000.0f); - GXPosition3f32(1000.0f, -5.000001f, -1000.0f); - GXPosition3f32(1000.0f, -5.000001f, 1000.0f); - GXPosition3f32(-1000.0f, -5.000001f, 1000.0f); - GXEnd(); + Mtx sp90; + Mtx sp60; + Mtx sp30; + GXTexObj sp10; + + fn_1_32DC(&lbl_1_bss_3F0[3], GX_FALSE); + GXLoadPosMtxImm(mtx, GX_PNMTX0); + MTXLightPerspective(sp90, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + MTXInverse(Hu3DCameraMtx, sp60); + MTXConcat(sp60, mtx, sp60); + MTXConcat(sp90, Hu3DCameraMtx, sp30); + MTXConcat(sp30, sp60, sp60); + GXLoadTexMtxImm(sp60, GX_TEXMTX0, GX_MTX3x4); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetNumTexGens(1); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXSetZMode(GX_TRUE, GX_GREATER, GX_FALSE); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXInitTexObj(&sp10, lbl_1_bss_3F0[2].unk0, lbl_1_bss_3F0[2].unk8, lbl_1_bss_3F0[2].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXLoadTexObj(&sp10, GX_TEXMAP0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-1000.0f, -5.000001f, -1000.0f); + GXPosition3f32(1000.0f, -5.000001f, -1000.0f); + GXPosition3f32(1000.0f, -5.000001f, 1000.0f); + GXPosition3f32(-1000.0f, -5.000001f, 1000.0f); + GXEnd(); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-1000.0f, -70.0f, -1000.0f); + GXPosition3f32(1000.0f, -70.0f, -1000.0f); + GXPosition3f32(1000.0f, -70.0f, 1000.0f); + GXPosition3f32(-1000.0f, -70.0f, 1000.0f); + GXEnd(); + fn_1_32DC(&lbl_1_bss_3F0[2], GX_FALSE); + GXInitTexObj(&sp10, lbl_1_bss_3F0[3].unk0, lbl_1_bss_3F0[3].unk8, lbl_1_bss_3F0[3].unkA, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXLoadTexObj(&sp10, GX_TEXMAP0); + GXSetZMode(GX_TRUE, GX_GREATER, GX_FALSE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-1000.0f, -5.000001f, -1000.0f); + GXPosition3f32(1000.0f, -5.000001f, -1000.0f); + GXPosition3f32(1000.0f, -5.000001f, 1000.0f); + GXPosition3f32(-1000.0f, -5.000001f, 1000.0f); + GXEnd(); } GXColor lbl_1_data_170 = { 255, 0, 0, 255 }; @@ -484,133 +475,132 @@ GXColor lbl_1_data_178 = { 0, 126, 126, 255 }; void fn_1_3CC8(ModelData *model, Mtx mtx) { - - float temp_f31; - Mtx sp44; - Mtx sp14; - Bss2468Data *temp_r31; - s32 temp_r30; - s32 temp_r29; - - MTXOrtho(sp44, 0, 480, 0, 640, 0, 100); - GXSetProjection(sp44, GX_ORTHOGRAPHIC); - MTXIdentity(sp14); - GXLoadPosMtxImm(sp14, GX_PNMTX0); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); - GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_178); - GXSetNumTexGens(0); - HuSprTexLoad(lbl_1_bss_458, 0, GX_TEXMAP0, GX_REPEAT, GX_REPEAT, GX_LINEAR); - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); - GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); - - GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); - GXSetNumTevStages(1); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); - GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); - GXSetScissor(0, 0, lbl_1_bss_3F0[0].unk8, lbl_1_bss_3F0[0].unkA); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_U16, 0); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition2u16(0, 0); - GXPosition2u16(lbl_1_bss_3F0[0].unk8, 0); - GXPosition2u16(lbl_1_bss_3F0[0].unk8, lbl_1_bss_3F0[0].unkA); - GXPosition2u16(0, lbl_1_bss_3F0[0].unkA); - GXEnd(); - GXSetNumTexGens(1); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); - GXSetNumTevStages(1); - - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXClearVtxDesc(); - - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_F32, 0); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); - temp_r29 = lbl_1_bss_2464; - for(temp_r30=0; temp_r30<64; temp_r29 = (temp_r29+1)%64, temp_r30++) { - temp_r31 = &lbl_1_bss_2468[temp_r29]; - if(temp_r31->unkC == 0) { - continue; - } - temp_f31 = (0.2f+cosd((90.0f*temp_r31->unkC)/60.0f))*128.0f; - lbl_1_data_174.a = 255.0f*sind((90.0f*temp_r31->unkC)/60.0f); - GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_174); - MTXScale(sp14, 0.5f*temp_f31, 0.5f*temp_f31, 1.0f); - mtxTransCat(sp14, (200.0f*(600.0f+temp_r31->unk0.x))/1200.0f, (200.0f*(600.0f+temp_r31->unk0.z))/1200.0f, 0); - GXLoadPosMtxImm(sp14, GX_PNMTX0); - GXCallDisplayList(lbl_1_bss_440.unk0, lbl_1_bss_440.unk4); - } - fn_1_32DC(&lbl_1_bss_3F0[0], GX_TRUE); + + float temp_f31; + Mtx sp44; + Mtx sp14; + Bss2468Data *temp_r31; + s32 temp_r30; + s32 temp_r29; + + MTXOrtho(sp44, 0, 480, 0, 640, 0, 100); + GXSetProjection(sp44, GX_ORTHOGRAPHIC); + MTXIdentity(sp14); + GXLoadPosMtxImm(sp14, GX_PNMTX0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_178); + GXSetNumTexGens(0); + HuSprTexLoad(lbl_1_bss_458, 0, GX_TEXMAP0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); + GXSetScissor(0, 0, lbl_1_bss_3F0[0].unk8, lbl_1_bss_3F0[0].unkA); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_U16, 0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition2u16(0, 0); + GXPosition2u16(lbl_1_bss_3F0[0].unk8, 0); + GXPosition2u16(lbl_1_bss_3F0[0].unk8, lbl_1_bss_3F0[0].unkA); + GXPosition2u16(0, lbl_1_bss_3F0[0].unkA); + GXEnd(); + GXSetNumTexGens(1); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + GXSetNumTevStages(1); + + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXClearVtxDesc(); + + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_F32, 0); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + temp_r29 = lbl_1_bss_2464; + for (temp_r30 = 0; temp_r30 < 64; temp_r29 = (temp_r29 + 1) % 64, temp_r30++) { + temp_r31 = &lbl_1_bss_2468[temp_r29]; + if (temp_r31->unkC == 0) { + continue; + } + temp_f31 = (0.2f + cosd((90.0f * temp_r31->unkC) / 60.0f)) * 128.0f; + lbl_1_data_174.a = 255.0f * sind((90.0f * temp_r31->unkC) / 60.0f); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_174); + MTXScale(sp14, 0.5f * temp_f31, 0.5f * temp_f31, 1.0f); + mtxTransCat(sp14, (200.0f * (600.0f + temp_r31->unk0.x)) / 1200.0f, (200.0f * (600.0f + temp_r31->unk0.z)) / 1200.0f, 0); + GXLoadPosMtxImm(sp14, GX_PNMTX0); + GXCallDisplayList(lbl_1_bss_440.unk0, lbl_1_bss_440.unk4); + } + fn_1_32DC(&lbl_1_bss_3F0[0], GX_TRUE); } void fn_1_43AC(Vec *arg0) { - Bss2468Data *temp_r31; - temp_r31 = &lbl_1_bss_2468[lbl_1_bss_2464]; - if(temp_r31->unkC == 0) { - temp_r31->unk0.x = arg0->x; - temp_r31->unk0.y = arg0->y; - temp_r31->unk0.z = arg0->z; - temp_r31->unkC = 60; - lbl_1_bss_2464 = (lbl_1_bss_2464+1)%64; - return; - } + Bss2468Data *temp_r31; + temp_r31 = &lbl_1_bss_2468[lbl_1_bss_2464]; + if (temp_r31->unkC == 0) { + temp_r31->unk0.x = arg0->x; + temp_r31->unk0.y = arg0->y; + temp_r31->unk0.z = arg0->z; + temp_r31->unkC = 60; + lbl_1_bss_2464 = (lbl_1_bss_2464 + 1) % 64; + return; + } } void fn_1_443C(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s32 temp_r28; - if(particle->unk_00 == 0) { - particle->unk_00 = 1; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r31++, temp_r29++) { - temp_r31->unk2C = 10; - temp_f31 = ((1.0f/256.0f)*frand8())*360.0f; - temp_r31->unk34.x = (0.2f*sind(temp_f31))*100.0f; - temp_r31->unk34.y = 0; - temp_r31->unk34.z = (0.2f*cosd(temp_f31))*100.0f; - temp_f30 = (100.0f*(0.025f*((1.0f/256.0f)*frand8())))+2.5f; - temp_r31->unk08.x = temp_f30*sind(temp_f31); - temp_r31->unk08.y = (100.0f*(0.025f*(((1.0f/256.0f)*(s32)(frand() & 0x1FF))-1.0f)))+7.5000005f; - temp_r31->unk08.z = temp_f30*cosd(temp_f31); - temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = 255; - temp_r31->unk40.a = (frand() & 0x1F)+16; - } - } - temp_r28 = 0; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk40.a == 0) { - temp_r28++; - continue; - } - temp_r31->unk34.x += temp_r31->unk08.x; - temp_r31->unk34.y += temp_r31->unk08.y; - temp_r31->unk34.z += temp_r31->unk08.z; - temp_r31->unk08.y += -0.5f; - temp_r31->unk40.a--; - } - if(temp_r28 == particle->unk_30) { - model->attr |= 0x1; - } - DCStoreRangeNoSync(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + float temp_f31; + float temp_f30; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s32 temp_r28; + if (particle->unk_00 == 0) { + particle->unk_00 = 1; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r31++, temp_r29++) { + temp_r31->unk2C = 10; + temp_f31 = ((1.0f / 256.0f) * frand8()) * 360.0f; + temp_r31->unk34.x = (0.2f * sind(temp_f31)) * 100.0f; + temp_r31->unk34.y = 0; + temp_r31->unk34.z = (0.2f * cosd(temp_f31)) * 100.0f; + temp_f30 = (100.0f * (0.025f * ((1.0f / 256.0f) * frand8()))) + 2.5f; + temp_r31->unk08.x = temp_f30 * sind(temp_f31); + temp_r31->unk08.y = (100.0f * (0.025f * (((1.0f / 256.0f) * (s32)(frand() & 0x1FF)) - 1.0f))) + 7.5000005f; + temp_r31->unk08.z = temp_f30 * cosd(temp_f31); + temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = 255; + temp_r31->unk40.a = (frand() & 0x1F) + 16; + } + } + temp_r28 = 0; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk40.a == 0) { + temp_r28++; + continue; + } + temp_r31->unk34.x += temp_r31->unk08.x; + temp_r31->unk34.y += temp_r31->unk08.y; + temp_r31->unk34.z += temp_r31->unk08.z; + temp_r31->unk08.y += -0.5f; + temp_r31->unk40.a--; + } + if (temp_r28 == particle->unk_30) { + model->attr |= 0x1; + } + DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_47EC(Vec *arg0) { - Hu3DModelPosSet(lbl_1_bss_5868->model[10], arg0->x, arg0->y, arg0->z); - Hu3DModelAttrReset(lbl_1_bss_5868->model[10], 1); - -} \ No newline at end of file + Hu3DModelPosSet(lbl_1_bss_5868->model[10], arg0->x, arg0->y, arg0->z); + Hu3DModelAttrReset(lbl_1_bss_5868->model[10], 1); +} diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index de52de93..23239a7c 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -2324,7 +2324,7 @@ void fn_1_62BC(void *arg0) // var_r30->unk_2C = 0.01f; // var_r30->unk_28 = 0.01f; // var_r30->unk_24 = 0.01f; -// var_r30->unk_7C = Hu3DModelCreateFile(0x45000B); +// var_r30->unk_7C = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M438, 0x0B)); // var_r30->unk_7E = (30.0f * (0.000015258789f * fn_1_7DB4())) + 0x1E; // var_r29 = 0; // loop_6: diff --git a/src/REL/m439Dll/main.c b/src/REL/m439Dll/main.c index 7cfee7b4..cb684c5b 100644 --- a/src/REL/m439Dll/main.c +++ b/src/REL/m439Dll/main.c @@ -1,9 +1,9 @@ +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/object.h" #include "game/objsub.h" -#include "game/hsfman.h" -#include "game/hsfanim.h" -#include "game/hsfmotion.h" -#include "game/hsfdraw.h" #include "game/init.h" @@ -11,12 +11,12 @@ #include "game/audio.h" #include "game/chrman.h" -#include "game/wipe.h" -#include "game/minigame_seq.h" -#include "game/gamework_data.h" -#include "game/sprite.h" #include "game/frand.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" #include "game/pad.h" +#include "game/sprite.h" +#include "game/wipe.h" #include "ext_math.h" @@ -25,128 +25,50 @@ #include "REL/m439data.h" typedef struct camera_params { - float zoom; - Vec pos; - Vec rot; + float zoom; + Vec pos; + Vec rot; } CameraViewParams; -CameraViewParams lbl_1_data_741C[] = { - { - 4775, - -2800, 0, -7700, - 343, 20, 0, - }, - { - 5000, - 0, 0, 0, - 290, 0, 0, - }, - { - 2800, - 0, 0, -7600, - 347, 0, 0, - }, - { - 2800, - 0, 0, -7600, - 290, 0, 0 - } -}; - +CameraViewParams lbl_1_data_741C[] = { { + 4775, + -2800, + 0, + -7700, + 343, + 20, + 0, + }, + { + 5000, + 0, + 0, + 0, + 290, + 0, + 0, + }, + { + 2800, + 0, + 0, + -7600, + 347, + 0, + 0, + }, + { 2800, 0, 0, -7600, 290, 0, 0 } }; typedef struct struct_data_748C { - s32 unk0; - s32 unk4; - s32 unk8; - s32 unkC[2]; + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC[2]; } StructData748C; -StructData748C lbl_1_data_748C[16] = { - { - 0, - -1, - 1, - { 1, 0 } - }, - { - 1, - 0, - 2, - { 2, 3 } - }, - { - 2, - 1, - 1, - { 4, 0 } - }, - { - 2, - 1, - 1, - { 5, 0 } - }, - { - 3, - 2, - 2, - { 6, 7 } - }, - { - 3, - 3, - 2, - { 8, 9 } - }, - { - 4, - 4, - 1, - { 10, 0 } - }, - { - 4, - 4, - 1, - { 11, 0 } - }, - { - 4, - 5, - 1, - { 12, 0 } - }, - { - 4, - 5, - 1, - { 13, 0 } - }, - { - 5, - 6, - 0, - { 0, 0 } - }, - { - 5, - 7, - 0, - { 0, 0 } - }, - { - 5, - 8, - 0, - { 0, 0 } - }, - { - 5, - 9, - 0, - { 0, 0 } - } -}; +StructData748C lbl_1_data_748C[16] = { { 0, -1, 1, { 1, 0 } }, { 1, 0, 2, { 2, 3 } }, { 2, 1, 1, { 4, 0 } }, { 2, 1, 1, { 5, 0 } }, + { 3, 2, 2, { 6, 7 } }, { 3, 3, 2, { 8, 9 } }, { 4, 4, 1, { 10, 0 } }, { 4, 4, 1, { 11, 0 } }, { 4, 5, 1, { 12, 0 } }, { 4, 5, 1, { 13, 0 } }, + { 5, 6, 0, { 0, 0 } }, { 5, 7, 0, { 0, 0 } }, { 5, 8, 0, { 0, 0 } }, { 5, 9, 0, { 0, 0 } } }; float lbl_1_data_75CC[5] = { -700, -2200, -3600, -5200, -6600 }; s32 lbl_1_data_75E0[4] = { 1, 2, 4, 8 }; @@ -156,7 +78,6 @@ GXColor lbl_1_data_7608 = { 255, 255, 255, 255 }; Vec lbl_1_data_760C = { 700, 2500, -700 }; Vec lbl_1_data_7618 = { 0, 1, 0 }; - omObjData *lbl_1_bss_170; omObjData *lbl_1_bss_16C; omObjData *lbl_1_bss_168; @@ -195,60 +116,59 @@ void fn_1_73F4(Process *objman); void fn_1_6C08(omObjData *object); - void ObjectSetup(void) { - Process *objman; - s16 light; - - CameraData *camera = &Hu3DCamera[0]; - OSReport("******* M439ObjectSetup *********\n"); - objman = omInitObjMan(50, 8192); - omGameSysInit(objman); - Hu3DCameraCreate(1); - Hu3DCameraPerspectiveSet(1, 10, 100, 15000, 1.2); - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - lbl_1_bss_168 = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti); - lbl_1_bss_168->work[0] = 1; - lbl_1_bss_34.x = lbl_1_data_75FC.x-lbl_1_data_75F0.x; - lbl_1_bss_34.y = lbl_1_data_75FC.y-lbl_1_data_75F0.y; - lbl_1_bss_34.z = lbl_1_data_75FC.z-lbl_1_data_75F0.z; - VECNormalize(&lbl_1_bss_34, &lbl_1_bss_34); - light = Hu3DGLightCreateV(&lbl_1_data_75F0, &lbl_1_bss_34, &lbl_1_data_7608); - Hu3DGLightInfinitytSet(light); - Hu3DGLightStaticSet(light, 1); - Hu3DShadowCreate(20, 200, 10000); - Hu3DShadowTPLvlSet(0.625f); - Hu3DShadowPosSet(&lbl_1_data_760C, &lbl_1_data_7618, &lbl_1_data_75FC); - HuAudSndGrpSet(65); - lbl_1_bss_170 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_384); - lbl_1_bss_16C = omAddObjEx(objman, 10, 0, 0, -1, fn_1_6C08); - fn_1_A18(objman); - fn_1_49C8(objman); - fn_1_5BA0(objman); - fn_1_73F4(objman); + Process *objman; + s16 light; + + CameraData *camera = &Hu3DCamera[0]; + OSReport("******* M439ObjectSetup *********\n"); + objman = omInitObjMan(50, 8192); + omGameSysInit(objman); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 10, 100, 15000, 1.2); + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + lbl_1_bss_168 = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti); + lbl_1_bss_168->work[0] = 1; + lbl_1_bss_34.x = lbl_1_data_75FC.x - lbl_1_data_75F0.x; + lbl_1_bss_34.y = lbl_1_data_75FC.y - lbl_1_data_75F0.y; + lbl_1_bss_34.z = lbl_1_data_75FC.z - lbl_1_data_75F0.z; + VECNormalize(&lbl_1_bss_34, &lbl_1_bss_34); + light = Hu3DGLightCreateV(&lbl_1_data_75F0, &lbl_1_bss_34, &lbl_1_data_7608); + Hu3DGLightInfinitytSet(light); + Hu3DGLightStaticSet(light, 1); + Hu3DShadowCreate(20, 200, 10000); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&lbl_1_data_760C, &lbl_1_data_7618, &lbl_1_data_75FC); + HuAudSndGrpSet(65); + lbl_1_bss_170 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_384); + lbl_1_bss_16C = omAddObjEx(objman, 10, 0, 0, -1, fn_1_6C08); + fn_1_A18(objman); + fn_1_49C8(objman); + fn_1_5BA0(objman); + fn_1_73F4(objman); } void fn_1_364(s32 arg0) { - lbl_1_bss_160 = arg0; + lbl_1_bss_160 = arg0; } s32 fn_1_374(void) { - return lbl_1_bss_160; + return lbl_1_bss_160; } void fn_1_408(omObjData *object); void fn_1_384(omObjData *object) { - fn_1_364(0); - lbl_1_bss_14C = 60; - lbl_1_bss_12E = 60; - lbl_1_bss_12C = 60; - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_408; + fn_1_364(0); + lbl_1_bss_14C = 60; + lbl_1_bss_12E = 60; + lbl_1_bss_12C = 60; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_408; } s32 lbl_1_data_7648 = -1; @@ -261,111 +181,111 @@ void fn_1_C00(void); void fn_1_408(omObjData *object) { - switch(fn_1_374()) { - case 0: - if(lbl_1_bss_14C == 60) { - HuAudFXPlay(1797); - } - if(--lbl_1_bss_14C == 0) { - fn_1_364(1); - lbl_1_bss_14C = 120; - } - break; - - case 1: - if(--lbl_1_bss_14C == 0) { - WipeColorSet(0, 0, 0); - fn_1_364(2); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - } - break; - - case 2: - if(!WipeStatGet()) { - fn_1_364(3); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - lbl_1_data_764C = HuAudFXPlay(1798); - } - break; - - case 3: - if(!WipeStatGet()) { - fn_1_364(4); - lbl_1_bss_32 = MGSeqStartCreate(); - - } - break; - - case 4: - if(!MGSeqStatGet(lbl_1_bss_32)) { - fn_1_364(5); - lbl_1_bss_30 = MGSeqTimerCreate(60); - } - if(lbl_1_data_7648 < 0 && (MGSeqStatGet(lbl_1_bss_32) & 0x10)) { - lbl_1_data_7648 = HuAudSeqPlay(75); - } - break; - - case 5: - if(--lbl_1_bss_12C == 0) { - lbl_1_bss_12E--; - MGSeqParamSet(lbl_1_bss_30, 1, lbl_1_bss_12E); - lbl_1_bss_12C = 60; - } - if(lbl_1_bss_130 >= 3 || lbl_1_bss_12E == 0) { - fn_1_364(6); - lbl_1_bss_32 = MGSeqFinishCreate(); - HuAudSeqFadeOut(lbl_1_data_7648, 100); - } - break; - - case 6: - if(lbl_1_bss_30 >= 0) { - MGSeqParamSet(lbl_1_bss_30, 2, -1); - lbl_1_bss_30 = -1; - } - if(!MGSeqStatGet(lbl_1_bss_32)) { - fn_1_364(7); - lbl_1_bss_14C = 60; - } - break; - - case 7: - if(fn_1_B7C() && --lbl_1_bss_14C == 0) { - fn_1_C00(); - fn_1_364(9); - if(lbl_1_bss_130) { - HuAudSStreamPlay(1); - } else { - HuAudSStreamPlay(4); - } - lbl_1_bss_14C = 210; - } - break; - - case 9: - if(--lbl_1_bss_14C == 0) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - WipeColorSet(255, 255, 255); - HuAudFXStop(lbl_1_data_764C); - object->func = fn_1_9BC; - } - break; - } - if(lbl_1_bss_13A) { - s32 i; - for(i=0; ifunc = fn_1_9BC; - } + switch (fn_1_374()) { + case 0: + if (lbl_1_bss_14C == 60) { + HuAudFXPlay(1797); + } + if (--lbl_1_bss_14C == 0) { + fn_1_364(1); + lbl_1_bss_14C = 120; + } + break; + + case 1: + if (--lbl_1_bss_14C == 0) { + WipeColorSet(0, 0, 0); + fn_1_364(2); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + } + break; + + case 2: + if (!WipeStatGet()) { + fn_1_364(3); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + lbl_1_data_764C = HuAudFXPlay(1798); + } + break; + + case 3: + if (!WipeStatGet()) { + fn_1_364(4); + lbl_1_bss_32 = MGSeqStartCreate(); + } + break; + + case 4: + if (!MGSeqStatGet(lbl_1_bss_32)) { + fn_1_364(5); + lbl_1_bss_30 = MGSeqTimerCreate(60); + } + if (lbl_1_data_7648 < 0 && (MGSeqStatGet(lbl_1_bss_32) & 0x10)) { + lbl_1_data_7648 = HuAudSeqPlay(75); + } + break; + + case 5: + if (--lbl_1_bss_12C == 0) { + lbl_1_bss_12E--; + MGSeqParamSet(lbl_1_bss_30, 1, lbl_1_bss_12E); + lbl_1_bss_12C = 60; + } + if (lbl_1_bss_130 >= 3 || lbl_1_bss_12E == 0) { + fn_1_364(6); + lbl_1_bss_32 = MGSeqFinishCreate(); + HuAudSeqFadeOut(lbl_1_data_7648, 100); + } + break; + + case 6: + if (lbl_1_bss_30 >= 0) { + MGSeqParamSet(lbl_1_bss_30, 2, -1); + lbl_1_bss_30 = -1; + } + if (!MGSeqStatGet(lbl_1_bss_32)) { + fn_1_364(7); + lbl_1_bss_14C = 60; + } + break; + + case 7: + if (fn_1_B7C() && --lbl_1_bss_14C == 0) { + fn_1_C00(); + fn_1_364(9); + if (lbl_1_bss_130) { + HuAudSStreamPlay(1); + } + else { + HuAudSStreamPlay(4); + } + lbl_1_bss_14C = 210; + } + break; + + case 9: + if (--lbl_1_bss_14C == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + WipeColorSet(255, 255, 255); + HuAudFXStop(lbl_1_data_764C); + object->func = fn_1_9BC; + } + break; + } + if (lbl_1_bss_13A) { + s32 i; + for (i = 0; i < lbl_1_bss_13A; i++) { + GWPlayerCoinWinSet(lbl_1_bss_132[i], lbl_1_bss_13C); + } + lbl_1_bss_13C += lbl_1_bss_13A; + lbl_1_bss_130 += lbl_1_bss_13A; + lbl_1_bss_13A = 0; + } + if (omSysExitReq && !WipeStatGet()) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + WipeColorSet(255, 255, 255); + object->func = fn_1_9BC; + } } void fn_1_B20(void); @@ -373,133 +293,125 @@ void fn_1_5CAC(void); void fn_1_9BC(omObjData *object) { - if(!WipeStatGet()) { - fn_1_B20(); - fn_1_5CAC(); - MGSeqKillAll(); - HuAudFadeOut(1); - omOvlReturnEx(1, 1); - OSReport("******* M439Exit *********\n"); - - } + if (!WipeStatGet()) { + fn_1_B20(); + fn_1_5CAC(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + OSReport("******* M439Exit *********\n"); + } } void fn_1_D0C(omObjData *object); void fn_1_A18(Process *objman) { - s32 i; - lbl_1_bss_150[0] = lbl_1_bss_150[1] = lbl_1_bss_150[2] = lbl_1_bss_150[3] = -1; - lbl_1_bss_148 = 0; - lbl_1_bss_13C = 0; - lbl_1_bss_13A = 0; - lbl_1_bss_130 = 0; - omMakeGroupEx(objman, 0, 4); - for(i=0; i<4; i++) { - omAddObjEx(objman, 5, 3, 50, 0, fn_1_D0C); - } - lbl_1_bss_40 = HuSprAnimRead(HuDataReadNum(0x460016, MEMORY_DEFAULT_NUM)); - + s32 i; + lbl_1_bss_150[0] = lbl_1_bss_150[1] = lbl_1_bss_150[2] = lbl_1_bss_150[3] = -1; + lbl_1_bss_148 = 0; + lbl_1_bss_13C = 0; + lbl_1_bss_13A = 0; + lbl_1_bss_130 = 0; + omMakeGroupEx(objman, 0, 4); + for (i = 0; i < 4; i++) { + omAddObjEx(objman, 5, 3, 50, 0, fn_1_D0C); + } + lbl_1_bss_40 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M439, 0x16), MEMORY_DEFAULT_NUM)); } void fn_1_4978(omObjData *object); void fn_1_B20(void) { - omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - s32 i; - for(i=0; i<4; i++) { - fn_1_4978(objList[i]); - - } + omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + s32 i; + for (i = 0; i < 4; i++) { + fn_1_4978(objList[i]); + } } typedef struct work_d0c { - u16 unk0_field0 : 1; - u16 unk0_field1 : 1; - u16 unk0_field2 : 1; - u16 unk0_field3 : 1; - u16 unk0_field4 : 1; - u16 unk0_field5 : 1; - u16 unk0_field6 : 1; - u16 unk0_field7 : 1; - u16 unk0_field8 : 1; - s16 unk2; - s16 unk4; - s8 unk6; - s8 unk7; - u16 unk8; - u16 unkA; - s16 unkC; - s16 unkE; - s16 unk10; - s16 unk12; - Vec unk14; - Vec unk20; - s32 unk2C; - u32 unk30; - float unk34; - float unk38; - s16 unk3C; - s16 unk3E; - float unk40; - s16 unk44; - s16 unk46; - float unk48; - float unk4C; - Vec unk50; - Vec unk5C; - Vec unk68; - Vec unk74; - u16 unk80; - Vec unk84; - float unk90; - float unk94; - Vec unk98; - float unkA4; - float unkA8; + u16 unk0_field0 : 1; + u16 unk0_field1 : 1; + u16 unk0_field2 : 1; + u16 unk0_field3 : 1; + u16 unk0_field4 : 1; + u16 unk0_field5 : 1; + u16 unk0_field6 : 1; + u16 unk0_field7 : 1; + u16 unk0_field8 : 1; + s16 unk2; + s16 unk4; + s8 unk6; + s8 unk7; + u16 unk8; + u16 unkA; + s16 unkC; + s16 unkE; + s16 unk10; + s16 unk12; + Vec unk14; + Vec unk20; + s32 unk2C; + u32 unk30; + float unk34; + float unk38; + s16 unk3C; + s16 unk3E; + float unk40; + s16 unk44; + s16 unk46; + float unk48; + float unk4C; + Vec unk50; + Vec unk5C; + Vec unk68; + Vec unk74; + u16 unk80; + Vec unk84; + float unk90; + float unk94; + Vec unk98; + float unkA4; + float unkA8; } WorkD0C; s32 fn_1_B7C(void) { - omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - s32 i; - for(i=0; i<4; i++) { - WorkD0C *work = objList[i]->data; - if(!work->unk0_field7) { - return 0; - } - } - return 1; + omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + s32 i; + for (i = 0; i < 4; i++) { + WorkD0C *work = objList[i]->data; + if (!work->unk0_field7) { + return 0; + } + } + return 1; } void fn_1_C00(void) { - omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - s32 i; - if(lbl_1_bss_13C == 0) { - for(i=0; i<4; i++) { - GWPlayerCoinWinSet(i, 3); - } - } else { - for(i=0; i<4; i++) { - WorkD0C *work = objList[i]->data; - if(!work->unk0_field0) { - GWPlayerCoinWinSet(i, lbl_1_bss_13C); - } - } - } + omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + s32 i; + if (lbl_1_bss_13C == 0) { + for (i = 0; i < 4; i++) { + GWPlayerCoinWinSet(i, 3); + } + } + else { + for (i = 0; i < 4; i++) { + WorkD0C *work = objList[i]->data; + if (!work->unk0_field0) { + GWPlayerCoinWinSet(i, lbl_1_bss_13C); + } + } + } } -s32 lbl_1_data_7694[7] = { - 0x5F0000, - 0x5F0002, - 0x5F0003, - 0x5F0014, - 0x5F0050, - 0x5F0017, - 0x5F0072 -}; +s32 lbl_1_data_7694[7] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x14), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x50), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x72) }; void fn_1_4528(ModelData *model, ParticleData *particle, Mtx matrix); @@ -507,63 +419,63 @@ void fn_1_2BB4(omObjData *object); void fn_1_D0C(omObjData *object) { - WorkD0C *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkD0C), MEMORY_DEFAULT_NUM); - u32 i; - s32 charNo; - object->data = work; - memset(work, 0, sizeof(WorkD0C)); - work->unk2 = lbl_1_bss_148++; - work->unk4 = GWPlayerCfg[work->unk2].pad_idx; - charNo = GWPlayerCfg[work->unk2].character; - work->unkC = charNo; - work->unkE = GWPlayerCfg[work->unk2].diff; - work->unk10 = GWPlayerCfg[work->unk2].group; - object->model[0] = CharModelCreate(charNo, 8); - if(work->unk2 == 0) { - Hu3DModelShadowSet(object->model[0]); - } - Hu3DModelCameraSet(object->model[0], lbl_1_data_75E0[work->unk2]); - work->unk2C = 0; - work->unk30 = 0x40000001; - for(i=0; i<7; i++) { - object->motion[i] = CharModelMotionCreate(work->unkC, lbl_1_data_7694[i]); - } - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - CharModelVoiceEnableSet(work->unkC, object->motion[4], 0); - CharModelDataClose(work->unkC); - object->model[1] = Hu3DModelCreateFile(0x460012); - Hu3DModelAttrSet(object->model[1], 1); - Hu3DModelCameraSet(object->model[1], lbl_1_data_75E0[work->unk2]); - work->unk0_field3 = 1; - work->unk44 = 0; - work->unk46 = 0; - work->unk40 = 1000; - work->unk14.x = 0; - work->unk94 = work->unkA4 = 0.5f; - object->rot.y = 180; - object->model[2] = Hu3DParticleCreate(lbl_1_bss_40, 10); - Hu3DParticleHookSet(object->model[2], fn_1_4528); - Hu3DModelAttrSet(object->model[2], 1); - Hu3DModelCameraSet(object->model[2], lbl_1_data_75E0[work->unk2]); - object->func = fn_1_2BB4; + WorkD0C *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkD0C), MEMORY_DEFAULT_NUM); + u32 i; + s32 charNo; + object->data = work; + memset(work, 0, sizeof(WorkD0C)); + work->unk2 = lbl_1_bss_148++; + work->unk4 = GWPlayerCfg[work->unk2].pad_idx; + charNo = GWPlayerCfg[work->unk2].character; + work->unkC = charNo; + work->unkE = GWPlayerCfg[work->unk2].diff; + work->unk10 = GWPlayerCfg[work->unk2].group; + object->model[0] = CharModelCreate(charNo, 8); + if (work->unk2 == 0) { + Hu3DModelShadowSet(object->model[0]); + } + Hu3DModelCameraSet(object->model[0], lbl_1_data_75E0[work->unk2]); + work->unk2C = 0; + work->unk30 = 0x40000001; + for (i = 0; i < 7; i++) { + object->motion[i] = CharModelMotionCreate(work->unkC, lbl_1_data_7694[i]); + } + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + CharModelVoiceEnableSet(work->unkC, object->motion[4], 0); + CharModelDataClose(work->unkC); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M439, 0x12)); + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelCameraSet(object->model[1], lbl_1_data_75E0[work->unk2]); + work->unk0_field3 = 1; + work->unk44 = 0; + work->unk46 = 0; + work->unk40 = 1000; + work->unk14.x = 0; + work->unk94 = work->unkA4 = 0.5f; + object->rot.y = 180; + object->model[2] = Hu3DParticleCreate(lbl_1_bss_40, 10); + Hu3DParticleHookSet(object->model[2], fn_1_4528); + Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelCameraSet(object->model[2], lbl_1_data_75E0[work->unk2]); + object->func = fn_1_2BB4; } float fn_1_1024(float arg0, float arg1, float arg2) { - float temp_f31 = fmod(arg1-arg0, 360); - float temp_f30; - if(temp_f31 < 0.0f) { - temp_f31 += 360.0f; - } - if(temp_f31 > 180.0f) { - temp_f31 -= 360.0f; - } - temp_f30 = fmod(arg0+(arg2*temp_f31), 360.0); - if(temp_f30 < 0.0f) { - temp_f30 += 360.0f; - } - return temp_f30; + float temp_f31 = fmod(arg1 - arg0, 360); + float temp_f30; + if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + if (temp_f31 > 180.0f) { + temp_f31 -= 360.0f; + } + temp_f30 = fmod(arg0 + (arg2 * temp_f31), 360.0); + if (temp_f30 < 0.0f) { + temp_f30 += 360.0f; + } + return temp_f30; } float lbl_1_data_76B0[11][2] = { @@ -582,281 +494,277 @@ float lbl_1_data_76B0[11][2] = { s32 fn_1_1128(Vec *arg0) { - float sp20[2]; - float sp18[2]; - float sp10[2]; - float temp_f29; - - u32 i; - for(i=0; i<10; i++) { - s32 temp_r30 = i+1; - - float temp_f26; - sp20[0] = lbl_1_data_76B0[temp_r30][0]-lbl_1_data_76B0[i][0]; - sp20[1] = lbl_1_data_76B0[temp_r30][1]-lbl_1_data_76B0[i][1]; - temp_f26 = (((arg0->z*sp20[1])+((arg0->x*sp20[0])-(sp20[0]*lbl_1_data_76B0[i][0])))-(sp20[1]*lbl_1_data_76B0[i][1]))/((sp20[0]*sp20[0])+(sp20[1]*sp20[1])); - if(temp_f26 >= 0.0f && temp_f26 < 1.0f) { - sp10[0] = lbl_1_data_76B0[i][0]+(sp20[0]*temp_f26); - sp10[1] = lbl_1_data_76B0[i][1]+(sp20[1]*temp_f26); - sp18[0] = arg0->x-sp10[0]; - sp18[1] = arg0->z-sp10[1]; - temp_f29 = sqrtf((sp18[0]*sp18[0])+(sp18[1]*sp18[1])); - if(temp_f29 < 130.0f) { - if(temp_f29 != 0.0f) { - sp18[0] /= temp_f29; - sp18[1] /= temp_f29; - } else { - sp18[0] = 0; - sp18[1] = 1; - } - arg0->x = sp10[0]+(130.0f*sp18[0]); - arg0->z = sp10[1]+(130.0f*sp18[1]); - } - } - } - for(i=0; i<11; i++) { - sp20[0] = arg0->x-lbl_1_data_76B0[i][0]; - sp20[1] = arg0->z-lbl_1_data_76B0[i][1]; - temp_f29 = sqrtf((sp20[0]*sp20[0])+(sp20[1]*sp20[1])); - if(temp_f29 < 130.0f) { - if(temp_f29 != 0.0f) { - sp20[0] /= temp_f29; - sp20[1] /= temp_f29; - } else { - sp20[0] = 0; - sp20[1] = 1; - } - arg0->x = lbl_1_data_76B0[i][0]+(130.0f*sp20[0]); - arg0->z = lbl_1_data_76B0[i][1]+(130.0f*sp20[1]); - } - } + float sp20[2]; + float sp18[2]; + float sp10[2]; + float temp_f29; + + u32 i; + for (i = 0; i < 10; i++) { + s32 temp_r30 = i + 1; + + float temp_f26; + sp20[0] = lbl_1_data_76B0[temp_r30][0] - lbl_1_data_76B0[i][0]; + sp20[1] = lbl_1_data_76B0[temp_r30][1] - lbl_1_data_76B0[i][1]; + temp_f26 = (((arg0->z * sp20[1]) + ((arg0->x * sp20[0]) - (sp20[0] * lbl_1_data_76B0[i][0]))) - (sp20[1] * lbl_1_data_76B0[i][1])) + / ((sp20[0] * sp20[0]) + (sp20[1] * sp20[1])); + if (temp_f26 >= 0.0f && temp_f26 < 1.0f) { + sp10[0] = lbl_1_data_76B0[i][0] + (sp20[0] * temp_f26); + sp10[1] = lbl_1_data_76B0[i][1] + (sp20[1] * temp_f26); + sp18[0] = arg0->x - sp10[0]; + sp18[1] = arg0->z - sp10[1]; + temp_f29 = sqrtf((sp18[0] * sp18[0]) + (sp18[1] * sp18[1])); + if (temp_f29 < 130.0f) { + if (temp_f29 != 0.0f) { + sp18[0] /= temp_f29; + sp18[1] /= temp_f29; + } + else { + sp18[0] = 0; + sp18[1] = 1; + } + arg0->x = sp10[0] + (130.0f * sp18[0]); + arg0->z = sp10[1] + (130.0f * sp18[1]); + } + } + } + for (i = 0; i < 11; i++) { + sp20[0] = arg0->x - lbl_1_data_76B0[i][0]; + sp20[1] = arg0->z - lbl_1_data_76B0[i][1]; + temp_f29 = sqrtf((sp20[0] * sp20[0]) + (sp20[1] * sp20[1])); + if (temp_f29 < 130.0f) { + if (temp_f29 != 0.0f) { + sp20[0] /= temp_f29; + sp20[1] /= temp_f29; + } + else { + sp20[0] = 0; + sp20[1] = 1; + } + arg0->x = lbl_1_data_76B0[i][0] + (130.0f * sp20[0]); + arg0->z = lbl_1_data_76B0[i][1] + (130.0f * sp20[1]); + } + } } - -float lbl_1_data_7708[3][2][2] = { - -99.8, -1431.8, 77.2, -1437.8, - -1499.8, -4571.8, -1322.8, -4577.8, - 1300.2, -4571.8, 1477.2, -4577.8 -}; +float lbl_1_data_7708[3][2][2] = { -99.8, -1431.8, 77.2, -1437.8, -1499.8, -4571.8, -1322.8, -4577.8, 1300.2, -4571.8, 1477.2, -4577.8 }; s32 fn_1_16B0(Vec *arg0) { - s32 i; - for(i=0; i<3; i++) { - float sp20[2]; - float sp18[2]; - float sp10[2]; - float temp_f29; - float temp_f26; - s32 j; - sp20[0] = lbl_1_data_7708[i][1][0]-lbl_1_data_7708[i][0][0]; - sp20[1] = lbl_1_data_7708[i][1][1]-lbl_1_data_7708[i][0][1]; - temp_f26 = (((arg0->z*sp20[1])+((arg0->x*sp20[0])-(sp20[0]*lbl_1_data_7708[i][0][0])))-(sp20[1]*lbl_1_data_7708[i][0][1]))/((sp20[0]*sp20[0])+(sp20[1]*sp20[1])); - if(temp_f26 >= 0.0f && temp_f26 < 1.0f) { - sp10[0] = lbl_1_data_7708[i][0][0]+(sp20[0]*temp_f26); - sp10[1] = lbl_1_data_7708[i][0][1]+(sp20[1]*temp_f26); - sp18[0] = arg0->x-sp10[0]; - sp18[1] = arg0->z-sp10[1]; - temp_f29 = sqrtf((sp18[0]*sp18[0])+(sp18[1]*sp18[1])); - if(temp_f29 < 50.0f) { - if(temp_f29 != 0.0f) { - sp18[0] /= temp_f29; - sp18[1] /= temp_f29; - } else { - sp18[0] = 0; - sp18[1] = 1; - } - arg0->x = sp10[0]+(50.0f*sp18[0]); - arg0->z = sp10[1]+(50.0f*sp18[1]); - } - } - for(j=0; j<2; j++) { - sp20[0] = arg0->x-lbl_1_data_7708[i][j][0]; - sp20[1] = arg0->z-lbl_1_data_7708[i][j][1]; - temp_f29 = sqrtf((sp20[0]*sp20[0])+(sp20[1]*sp20[1])); - if(temp_f29 < 50.0f) { - if(temp_f29 != 0.0f) { - sp20[0] /= temp_f29; - sp20[1] /= temp_f29; - } else { - sp20[0] = 0; - sp20[1] = 1; - } - arg0->x = lbl_1_data_7708[i][j][0]+(50.0f*sp20[0]); - arg0->z = lbl_1_data_7708[i][j][1]+(50.0f*sp20[1]); - } - } - } + s32 i; + for (i = 0; i < 3; i++) { + float sp20[2]; + float sp18[2]; + float sp10[2]; + float temp_f29; + float temp_f26; + s32 j; + sp20[0] = lbl_1_data_7708[i][1][0] - lbl_1_data_7708[i][0][0]; + sp20[1] = lbl_1_data_7708[i][1][1] - lbl_1_data_7708[i][0][1]; + temp_f26 = (((arg0->z * sp20[1]) + ((arg0->x * sp20[0]) - (sp20[0] * lbl_1_data_7708[i][0][0]))) - (sp20[1] * lbl_1_data_7708[i][0][1])) + / ((sp20[0] * sp20[0]) + (sp20[1] * sp20[1])); + if (temp_f26 >= 0.0f && temp_f26 < 1.0f) { + sp10[0] = lbl_1_data_7708[i][0][0] + (sp20[0] * temp_f26); + sp10[1] = lbl_1_data_7708[i][0][1] + (sp20[1] * temp_f26); + sp18[0] = arg0->x - sp10[0]; + sp18[1] = arg0->z - sp10[1]; + temp_f29 = sqrtf((sp18[0] * sp18[0]) + (sp18[1] * sp18[1])); + if (temp_f29 < 50.0f) { + if (temp_f29 != 0.0f) { + sp18[0] /= temp_f29; + sp18[1] /= temp_f29; + } + else { + sp18[0] = 0; + sp18[1] = 1; + } + arg0->x = sp10[0] + (50.0f * sp18[0]); + arg0->z = sp10[1] + (50.0f * sp18[1]); + } + } + for (j = 0; j < 2; j++) { + sp20[0] = arg0->x - lbl_1_data_7708[i][j][0]; + sp20[1] = arg0->z - lbl_1_data_7708[i][j][1]; + temp_f29 = sqrtf((sp20[0] * sp20[0]) + (sp20[1] * sp20[1])); + if (temp_f29 < 50.0f) { + if (temp_f29 != 0.0f) { + sp20[0] /= temp_f29; + sp20[1] /= temp_f29; + } + else { + sp20[0] = 0; + sp20[1] = 1; + } + arg0->x = lbl_1_data_7708[i][j][0] + (50.0f * sp20[0]); + arg0->z = lbl_1_data_7708[i][j][1] + (50.0f * sp20[1]); + } + } + } } float fn_1_1C54(s32 arg0, Vec *arg1, Vec *arg2) { - Vec *temp_r31; - Vec *temp_r30; - s32 i; - Vec sp24; - Vec sp18; - s32 sp14 = -1; - float sp10 = 1000; - float *temp_r28 = lbl_1_data_108C[arg0]; - VECSubtract(arg2, arg1, &sp18); - temp_r31 = lbl_1_data_1014[arg0][0]; - temp_r30 = lbl_1_data_1014[arg0][1]; - for(i=0; ix*sp24.x)+(sp18.y*sp24.y)-(temp_r31->y*sp24.y)+(sp18.z*sp24.z)-(temp_r31->z*sp24.z))/temp_f31; - VECSubtract(&temp_r30[1], &temp_r30[0], &sp24); - temp_f31 = VECMag2Point(&sp24); - if(temp_f31 == 0.0f) { - continue; - } - temp_f28 = ((sp18.x*sp24.x)-(temp_r30->x*sp24.x)+(sp18.y*sp24.y)-(temp_r30->y*sp24.y)+(sp18.z*sp24.z)-(temp_r30->z*sp24.z))/temp_f31; - temp_f30 = 0.5f*(temp_f29+temp_f28); - if(temp_f30 < 0.0f || temp_f30 >= 1.0f) { - continue; - } else { - return temp_r28[i]+(temp_f30*(temp_r28[i+1]-temp_r28[i])); - - } - } - return -1; + Vec *temp_r31; + Vec *temp_r30; + s32 i; + Vec sp24; + Vec sp18; + s32 sp14 = -1; + float sp10 = 1000; + float *temp_r28 = lbl_1_data_108C[arg0]; + VECSubtract(arg2, arg1, &sp18); + temp_r31 = lbl_1_data_1014[arg0][0]; + temp_r30 = lbl_1_data_1014[arg0][1]; + for (i = 0; i < lbl_1_data_1074[arg0] - 1; i++, temp_r31++, temp_r30++) { + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + VECSubtract(&temp_r31[1], &temp_r31[0], &sp24); + temp_f31 = VECMag2Point(&sp24); + if (temp_f31 == 0.0f) { + continue; + } + temp_f29 + = ((sp18.x * sp24.x) - (temp_r31->x * sp24.x) + (sp18.y * sp24.y) - (temp_r31->y * sp24.y) + (sp18.z * sp24.z) - (temp_r31->z * sp24.z)) + / temp_f31; + VECSubtract(&temp_r30[1], &temp_r30[0], &sp24); + temp_f31 = VECMag2Point(&sp24); + if (temp_f31 == 0.0f) { + continue; + } + temp_f28 + = ((sp18.x * sp24.x) - (temp_r30->x * sp24.x) + (sp18.y * sp24.y) - (temp_r30->y * sp24.y) + (sp18.z * sp24.z) - (temp_r30->z * sp24.z)) + / temp_f31; + temp_f30 = 0.5f * (temp_f29 + temp_f28); + if (temp_f30 < 0.0f || temp_f30 >= 1.0f) { + continue; + } + else { + return temp_r28[i] + (temp_f30 * (temp_r28[i + 1] - temp_r28[i])); + } + } + return -1; } void fn_1_1F3C(s32 arg0, Vec *arg1, float arg2, float arg3, Vec *arg4) { - float *temp_r30 = lbl_1_data_108C[arg0]; - s32 i; - for(i=0; ix+(temp_f31*sp8.x); - sp20.y = temp_r29->y+(temp_f31*sp8.y); - sp20.z = temp_r29->z+(temp_f31*sp8.z); - VECSubtract(&temp_r28[1], &temp_r28[0], &sp8); - sp14.x = temp_r28->x+(temp_f31*sp8.x); - sp14.y = temp_r28->y+(temp_f31*sp8.y); - sp14.z = temp_r28->z+(temp_f31*sp8.z); - arg4->x = (arg1->x+sp20.x)+(arg3*(sp14.x-sp20.x)); - arg4->y = (arg1->y+sp20.y)+(arg3*(sp14.y-sp20.y)); - arg4->z = (arg1->z+sp20.z)+(arg3*(sp14.z-sp20.z)); - } + float *temp_r30 = lbl_1_data_108C[arg0]; + s32 i; + for (i = 0; i < lbl_1_data_1074[arg0] - 1; i++) { + if (arg2 < temp_r30[i + 1]) { + break; + } + } + if (i < lbl_1_data_1074[arg0] - 1) { + float temp_f31 = (arg2 - temp_r30[i]) / (temp_r30[i + 1] - temp_r30[i]); + Vec *temp_r29 = &lbl_1_data_1014[arg0][0][i]; + Vec *temp_r28 = &lbl_1_data_1014[arg0][1][i]; + Vec sp20; + Vec sp14; + Vec sp8; + VECSubtract(&temp_r29[1], &temp_r29[0], &sp8); + sp20.x = temp_r29->x + (temp_f31 * sp8.x); + sp20.y = temp_r29->y + (temp_f31 * sp8.y); + sp20.z = temp_r29->z + (temp_f31 * sp8.z); + VECSubtract(&temp_r28[1], &temp_r28[0], &sp8); + sp14.x = temp_r28->x + (temp_f31 * sp8.x); + sp14.y = temp_r28->y + (temp_f31 * sp8.y); + sp14.z = temp_r28->z + (temp_f31 * sp8.z); + arg4->x = (arg1->x + sp20.x) + (arg3 * (sp14.x - sp20.x)); + arg4->y = (arg1->y + sp20.y) + (arg3 * (sp14.y - sp20.y)); + arg4->z = (arg1->z + sp20.z) + (arg3 * (sp14.z - sp20.z)); + } } float fn_1_2184(s32 arg0, float arg1) { - float *temp_r30 = lbl_1_data_108C[arg0]; - s32 i; - for(i=0; i= lbl_1_data_1074[arg0]-1) { - return -1; - } else { - return temp_r30[i+1]-temp_r30[i]; - } + float *temp_r30 = lbl_1_data_108C[arg0]; + s32 i; + for (i = 0; i < lbl_1_data_1074[arg0] - 1; i++) { + if (arg1 < temp_r30[i + 1]) { + break; + } + } + if (i >= lbl_1_data_1074[arg0] - 1) { + return -1; + } + else { + return temp_r30[i + 1] - temp_r30[i]; + } } -s16 lbl_1_data_7738[10][3] = { - 1, 0, 0, - 2, 1, 2, - 2, 3, 4, - 1, 5, 0, - 1, 6, 0, - 1, 7, 0, - 1, 8, 0, - 1, 9, 0, - 1, 10, 0, - 1, 11, 0 -}; +s16 lbl_1_data_7738[10][3] = { 1, 0, 0, 2, 1, 2, 2, 3, 4, 1, 5, 0, 1, 6, 0, 1, 7, 0, 1, 8, 0, 1, 9, 0, 1, 10, 0, 1, 11, 0 }; s32 lbl_1_data_7774[8] = { - 0x005F0000, - 0x005F0001, - 0x005F0002, - 0x005F0003, - 0x005F0014, - 0x005F0050, - 0x005F0017, - 0x005F0018 + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x01), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x14), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x50), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), }; typedef struct work_5cb0 { - s16 unk0; - Vec unk4; - StructData748C unk10; + s16 unk0; + Vec unk4; + StructData748C unk10; } Work5CB0; - void fn_1_223C(omObjData *object) { - float temp_f29; - WorkD0C *temp_r31; - Work5CB0 *temp_r18; - Vec sp58; - s32 sp18; - omObjData **sp14; - temp_r31 = object->data; - if(temp_r31->unk0_field4) { - temp_r31->unk0_field4 = 0; - sp14 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); - temp_r18 = sp14[temp_r31->unk2]->data; - sp18 = temp_r18[temp_r31->unk44].unk0; - temp_r31->unk80 = lbl_1_data_7738[sp18][((lbl_1_data_7738[sp18][0]*frand8()) >> 8)+1]; - temp_r31->unk84 = temp_r18[temp_r31->unk44].unk4; - temp_r31->unk90 = fn_1_1C54(temp_r31->unk80, &temp_r31->unk84, &object->trans); - if(temp_r31->unk90 < 0.0f) { - temp_r31->unk90 = 105.0f; - } - temp_r31->unk90 += 20.0f; - } else { - if(temp_r31->unk0_field5) { - temp_r31->unk94 = temp_r31->unkA4 = 0.5f; - temp_r31->unk0_field5 = 0; - temp_r31->unk0_field6 = 1; - } else { - VECSubtract(&temp_r31->unk98, &object->trans, &sp58); - if(VECMag(&sp58) < 20.0f) { - temp_r31->unk90 += 20.0f; - temp_r31->unk0_field6 = 0; - } - } - } - if(object->trans.z < -500.0f && !temp_r31->unk0_field6 && frand8() == 0) { - temp_r31->unkA4 = (0.55f*((((s32)frand() & 0x1FF)-256.0f)/256.0f))+0.5f; - } - temp_r31->unk94 += 0.05f*(temp_r31->unkA4-temp_r31->unk94); - fn_1_1F3C(temp_r31->unk80, &temp_r31->unk84, temp_r31->unk90, temp_r31->unk94, &temp_r31->unk98); - if(temp_r31->unk98.z > temp_r31->unk40) { - temp_r31->unk98.z = temp_r31->unk40; - } - VECSubtract(&temp_r31->unk98, &object->trans, &sp58); - VECNormalize(&sp58, &sp58); - temp_f29 = 10.0+(((18.0+(6.0f*temp_r31->unkE))*fn_1_2184(temp_r31->unk80, temp_r31->unk90))/200.0); - if(temp_f29 > 72) { - temp_f29 = 72; - } - temp_r31->unk6 = sp58.x*temp_f29; - temp_r31->unk7 = -sp58.z*temp_f29; + float temp_f29; + WorkD0C *temp_r31; + Work5CB0 *temp_r18; + Vec sp58; + s32 sp18; + omObjData **sp14; + temp_r31 = object->data; + if (temp_r31->unk0_field4) { + temp_r31->unk0_field4 = 0; + sp14 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); + temp_r18 = sp14[temp_r31->unk2]->data; + sp18 = temp_r18[temp_r31->unk44].unk0; + temp_r31->unk80 = lbl_1_data_7738[sp18][((lbl_1_data_7738[sp18][0] * frand8()) >> 8) + 1]; + temp_r31->unk84 = temp_r18[temp_r31->unk44].unk4; + temp_r31->unk90 = fn_1_1C54(temp_r31->unk80, &temp_r31->unk84, &object->trans); + if (temp_r31->unk90 < 0.0f) { + temp_r31->unk90 = 105.0f; + } + temp_r31->unk90 += 20.0f; + } + else { + if (temp_r31->unk0_field5) { + temp_r31->unk94 = temp_r31->unkA4 = 0.5f; + temp_r31->unk0_field5 = 0; + temp_r31->unk0_field6 = 1; + } + else { + VECSubtract(&temp_r31->unk98, &object->trans, &sp58); + if (VECMag(&sp58) < 20.0f) { + temp_r31->unk90 += 20.0f; + temp_r31->unk0_field6 = 0; + } + } + } + if (object->trans.z < -500.0f && !temp_r31->unk0_field6 && frand8() == 0) { + temp_r31->unkA4 = (0.55f * ((((s32)frand() & 0x1FF) - 256.0f) / 256.0f)) + 0.5f; + } + temp_r31->unk94 += 0.05f * (temp_r31->unkA4 - temp_r31->unk94); + fn_1_1F3C(temp_r31->unk80, &temp_r31->unk84, temp_r31->unk90, temp_r31->unk94, &temp_r31->unk98); + if (temp_r31->unk98.z > temp_r31->unk40) { + temp_r31->unk98.z = temp_r31->unk40; + } + VECSubtract(&temp_r31->unk98, &object->trans, &sp58); + VECNormalize(&sp58, &sp58); + temp_f29 = 10.0 + (((18.0 + (6.0f * temp_r31->unkE)) * fn_1_2184(temp_r31->unk80, temp_r31->unk90)) / 200.0); + if (temp_f29 > 72) { + temp_f29 = 72; + } + temp_r31->unk6 = sp58.x * temp_f29; + temp_r31->unk7 = -sp58.z * temp_f29; } void fn_1_2C84(omObjData *object); @@ -865,394 +773,405 @@ s32 fn_1_62E0(float arg0); void fn_1_2BB4(omObjData *object) { - WorkD0C *work = object->data; - Hu3DModelAttrReset(object->model[1], 1); - Hu3DModelPosSet(object->model[1], CenterM[work->unk2].x, CenterM[work->unk2].y, CenterM[work->unk2].z); - if(fn_1_374() == 3) { - Hu3DModelAttrSet(object->model[1], 1); - object->func = fn_1_2C84; - } + WorkD0C *work = object->data; + Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelPosSet(object->model[1], CenterM[work->unk2].x, CenterM[work->unk2].y, CenterM[work->unk2].z); + if (fn_1_374() == 3) { + Hu3DModelAttrSet(object->model[1], 1); + object->func = fn_1_2C84; + } } typedef struct work_4aa8 { - u8 unk0 : 1; - s16 unk2; - s16 unk4; - float unk8[2]; - float unk10; - float unk14[4]; - s16 unk24; - s16 unk26; - Vec unk28; - Vec unk34; - Vec unk40; + u8 unk0 : 1; + s16 unk2; + s16 unk4; + float unk8[2]; + float unk10; + float unk14[4]; + s16 unk24; + s16 unk26; + Vec unk28; + Vec unk34; + Vec unk40; } Work4AA8; - void fn_1_3C1C(omObjData *object); s32 fn_1_6328(omObjData *object); s32 fn_1_67B4(Vec *arg0, s32 arg1, s32 arg2, Vec *arg3, Vec *arg4); void fn_1_2C84(omObjData *object) { - WorkD0C *temp_r31; - s32 temp_r29; - s32 temp_r28; - omObjData *temp_r27; - u32 temp_r26; - omObjData **temp_r25; - Work4AA8 *temp_r24; - ParticleData *temp_r23; - float temp_f31; - float temp_f30; - float temp_f28; - float temp_f26; - float temp_f25; - float temp_f23; - - Vec spC; - temp_r31 = object->data; - temp_r28 = temp_r31->unk2C; - temp_f25 = temp_r31->unk34; - temp_r26 = temp_r31->unk30; - if(fn_1_374() >= 6 && !temp_r31->unk0_field2) { - temp_r31->unk0_field7 = 1; - temp_r31->unk12 = 2; - temp_r31->unk3E = 120; - object->func = fn_1_3C1C; - return; - } - if(fn_1_374() < 5) { - return; - } - switch(temp_r31->unk12){ - case 0: - if(GWPlayerCfg[temp_r31->unk2].iscom == 0) { - temp_r31->unk6 = HuPadStkX[temp_r31->unk4]; - temp_r31->unk7 = HuPadStkY[temp_r31->unk4]; - temp_r31->unk8 = HuPadBtn[temp_r31->unk4]; - temp_r31->unkA = HuPadBtnDown[temp_r31->unk4]; - } else { - temp_r31->unk8 = temp_r31->unkA = 0; - temp_r31->unk6 = temp_r31->unk7 = 0; - fn_1_223C(object); - } - temp_f31 = temp_r31->unk6; - temp_f30 = -(float)temp_r31->unk7; - temp_f26 = VECMagPoint(temp_f31, temp_f30, 0); - if(temp_f26 > 0.0f) { - temp_f31 /= temp_f26; - temp_f30 /= temp_f26; - if(temp_f26 > 72) { - temp_f26 = 72; - } - temp_f23 = (10.0f*temp_f26)/72.0f; - temp_r31->unk20.x = temp_f31*temp_f23; - temp_r31->unk20.z = temp_f30*temp_f23; - temp_r31->unk14.y = temp_f23; - object->rot.y = fn_1_1024(object->rot.y, atan2d(temp_r31->unk20.x, temp_r31->unk20.z), 0.2f); - if(temp_r31->unk14.y < 7.5f) { - temp_r28 = 1; - temp_f25 = temp_r31->unk14.y/7.5f; - } else { - temp_r28 = 2; - temp_f25 = temp_r31->unk14.y/10.0f; - } - } else { - temp_r31->unk20.x = temp_r31->unk20.z = 0; - temp_r28 = 0; - temp_f25 = 1; - } - VECAdd(&object->trans, &temp_r31->unk20, &object->trans); - fn_1_1128(&object->trans); - fn_1_16B0(&object->trans); - if(object->trans.z > temp_r31->unk40) { - object->trans.z = temp_r31->unk40; - } else { - if(object->trans.z < -7300) { - temp_r31->unk0_field0 = 1; - temp_r31->unk0_field7 = 1; - temp_r31->unk12 = 0; - if(lbl_1_bss_130 == 0) { - temp_r31->unk0_field8 = 1; - } - lbl_1_bss_132[lbl_1_bss_13A++] = temp_r31->unk2; - object->func = fn_1_3C1C; - return; - } - } - if(fn_1_67B4(&object->trans, temp_r31->unk2, temp_r31->unk44, &temp_r31->unk5C, &temp_r31->unk74) && !temp_r31->unk0_field6) { - temp_r31->unk0_field2 = 1; - temp_r31->unk0_field1 = 1; - temp_r31->unk0_field5 = 1; - temp_r31->unk0_field3 = 0; - temp_r31->unk50.x = object->trans.x; - temp_r31->unk50.y = object->trans.y; - temp_r31->unk50.z = object->trans.z; - temp_r31->unk68.y = -2000; - temp_r31->unk12 = 2; - temp_r31->unk3E = 12; - temp_r23 = Hu3DData[object->model[2]].unk_120; - temp_r23->unk_00 = 0; - VECSubtract(&temp_r31->unk5C, &object->trans, &temp_r23->unk_04); - Hu3DModelAttrReset(object->model[2], 1); - Hu3DModelPosSet(object->model[2], object->trans.x, object->trans.y, object->trans.z); - temp_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 2); - temp_r25[temp_r31->unk2]->work[3] = 1; - } else { - spC.x = CenterM[temp_r31->unk2].x; - spC.z = CenterM[temp_r31->unk2].z; - spC.x += 0.1f*(object->trans.x-spC.x); - spC.z += 0.1f*(object->trans.z-spC.z); - temp_r29 = fn_1_62E0(spC.z-350.0f); - if(temp_r29 != temp_r31->unk46 && temp_r29 > 1 && temp_r29 < 6) { - spC.z = lbl_1_data_75CC[temp_r29-1]+350.0f; - } else { - temp_r29 = fn_1_62E0(spC.z+350.0f); - if(temp_r29 != temp_r31->unk46 && temp_r31->unk46 > 1 && temp_r31->unk46 < 6) { - spC.z = lbl_1_data_75CC[temp_r31->unk46-1]-350.0f; - } - } - CenterM[temp_r31->unk2].x = spC.x; - CenterM[temp_r31->unk2].z = spC.z; - temp_r29 = fn_1_62E0(object->trans.z); - if(temp_r29 != temp_r31->unk46) { - temp_r31->unk46 = temp_r29; - temp_r31->unk44 = fn_1_6328(object); - temp_r31->unk0_field4 = 01; - if(temp_r29 > 1 && temp_r29 < 6) { - temp_r31->unk12++; - temp_r31->unk3E = 30; - temp_r31->unk48 = CenterM[temp_r31->unk2].z; - temp_r31->unk4C = object->trans.z-350.0f; - temp_r31->unk40 = lbl_1_data_75CC[temp_r31->unk46-1]; - } - } - } - break; - - case 1: - if(--temp_r31->unk3E == 0) { - temp_r31->unk12 = 0; - } - CenterM[temp_r31->unk2].z = temp_r31->unk48+((temp_r31->unk4C-temp_r31->unk48)*cosd((temp_r31->unk3E*90.0f)/30.0f)); - temp_r28 = 0; - temp_f25 = 1; - break; - - case 2: - temp_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 2); - temp_r27 = temp_r25[temp_r31->unk2]; - temp_r24 = temp_r27->data; - switch(temp_r24->unk4) { - case 1: - temp_f28 = 1.0f-(temp_r24->unk24/90.0f); - object->trans.x = temp_r31->unk50.x+(temp_f28*(temp_r31->unk5C.x-temp_r31->unk50.x)); - object->trans.y = 100+(-2000.0f*(temp_f28-0.1f))*(temp_f28-0.1f); - object->trans.z = temp_r31->unk50.z+(temp_f28*(temp_r31->unk5C.z-temp_r31->unk50.z)); - temp_r28 = 3; - temp_r26 = 0; - break; - - case 2: - case 3: - if(temp_r24->unk0) { - object->trans.x = temp_r27->trans.x; - object->trans.y = temp_r27->trans.y-150; - object->trans.z = temp_r27->trans.z; - temp_r28 = 4; - temp_r26 = 0; - } else { - if(temp_r31->unk3E) { - temp_r31->unk3E--; - } - temp_f28 = sind((temp_r31->unk3E/30.0f)*90.0f); - object->trans.x = temp_r31->unk74.x-(temp_f28*(temp_r31->unk74.x-temp_r31->unk68.x)); - object->trans.y = temp_r31->unk74.y-(temp_f28*(temp_r31->unk74.y-temp_r31->unk68.y)); - object->trans.z = temp_r31->unk74.z-(temp_f28*(temp_r31->unk74.z-temp_r31->unk68.z)); - temp_r28 = 0; - temp_r26 = 0x40000001; - } - break; - } - if(!temp_r31->unk0_field1) { - temp_r31->unk0_field2 = 0; - temp_r31->unk12 = 0; - temp_r31->unk20.y = 0; - } - break; - } - if((temp_r28 >= 0 && temp_r28 != temp_r31->unk2C) || temp_r26 != temp_r31->unk30) { - temp_r31->unk2C = temp_r28; - temp_r31->unk30 = temp_r26; - CharModelMotionShiftSet(temp_r31->unkC, object->motion[temp_r31->unk2C], 0, 8, temp_r26); - } - CharModelMotionSpeedSet(temp_r31->unkC, temp_f25); - temp_r31->unk34 = temp_f25; - if(temp_r31->unk2 == 0) { - Hu3DShadowData.unk_20.x = object->trans.x; - Hu3DShadowData.unk_20.y = object->trans.y; - Hu3DShadowData.unk_20.z = object->trans.z; - Hu3DShadowData.unk_14.x = 700+Hu3DShadowData.unk_20.x; - Hu3DShadowData.unk_14.y = 2500+Hu3DShadowData.unk_20.y; - Hu3DShadowData.unk_14.z = Hu3DShadowData.unk_20.z-700; - } else { - lbl_1_bss_D4[temp_r31->unk2-1].x = object->trans.x; - lbl_1_bss_D4[temp_r31->unk2-1].y = object->trans.y; - lbl_1_bss_D4[temp_r31->unk2-1].z = object->trans.z; - lbl_1_bss_F8[temp_r31->unk2-1].x = 700+lbl_1_bss_D4[temp_r31->unk2-1].x; - lbl_1_bss_F8[temp_r31->unk2-1].y = 2500+lbl_1_bss_D4[temp_r31->unk2-1].y; - lbl_1_bss_F8[temp_r31->unk2-1].z = lbl_1_bss_D4[temp_r31->unk2-1].z-700; - } + WorkD0C *temp_r31; + s32 temp_r29; + s32 temp_r28; + omObjData *temp_r27; + u32 temp_r26; + omObjData **temp_r25; + Work4AA8 *temp_r24; + ParticleData *temp_r23; + float temp_f31; + float temp_f30; + float temp_f28; + float temp_f26; + float temp_f25; + float temp_f23; + + Vec spC; + temp_r31 = object->data; + temp_r28 = temp_r31->unk2C; + temp_f25 = temp_r31->unk34; + temp_r26 = temp_r31->unk30; + if (fn_1_374() >= 6 && !temp_r31->unk0_field2) { + temp_r31->unk0_field7 = 1; + temp_r31->unk12 = 2; + temp_r31->unk3E = 120; + object->func = fn_1_3C1C; + return; + } + if (fn_1_374() < 5) { + return; + } + switch (temp_r31->unk12) { + case 0: + if (GWPlayerCfg[temp_r31->unk2].iscom == 0) { + temp_r31->unk6 = HuPadStkX[temp_r31->unk4]; + temp_r31->unk7 = HuPadStkY[temp_r31->unk4]; + temp_r31->unk8 = HuPadBtn[temp_r31->unk4]; + temp_r31->unkA = HuPadBtnDown[temp_r31->unk4]; + } + else { + temp_r31->unk8 = temp_r31->unkA = 0; + temp_r31->unk6 = temp_r31->unk7 = 0; + fn_1_223C(object); + } + temp_f31 = temp_r31->unk6; + temp_f30 = -(float)temp_r31->unk7; + temp_f26 = VECMagPoint(temp_f31, temp_f30, 0); + if (temp_f26 > 0.0f) { + temp_f31 /= temp_f26; + temp_f30 /= temp_f26; + if (temp_f26 > 72) { + temp_f26 = 72; + } + temp_f23 = (10.0f * temp_f26) / 72.0f; + temp_r31->unk20.x = temp_f31 * temp_f23; + temp_r31->unk20.z = temp_f30 * temp_f23; + temp_r31->unk14.y = temp_f23; + object->rot.y = fn_1_1024(object->rot.y, atan2d(temp_r31->unk20.x, temp_r31->unk20.z), 0.2f); + if (temp_r31->unk14.y < 7.5f) { + temp_r28 = 1; + temp_f25 = temp_r31->unk14.y / 7.5f; + } + else { + temp_r28 = 2; + temp_f25 = temp_r31->unk14.y / 10.0f; + } + } + else { + temp_r31->unk20.x = temp_r31->unk20.z = 0; + temp_r28 = 0; + temp_f25 = 1; + } + VECAdd(&object->trans, &temp_r31->unk20, &object->trans); + fn_1_1128(&object->trans); + fn_1_16B0(&object->trans); + if (object->trans.z > temp_r31->unk40) { + object->trans.z = temp_r31->unk40; + } + else { + if (object->trans.z < -7300) { + temp_r31->unk0_field0 = 1; + temp_r31->unk0_field7 = 1; + temp_r31->unk12 = 0; + if (lbl_1_bss_130 == 0) { + temp_r31->unk0_field8 = 1; + } + lbl_1_bss_132[lbl_1_bss_13A++] = temp_r31->unk2; + object->func = fn_1_3C1C; + return; + } + } + if (fn_1_67B4(&object->trans, temp_r31->unk2, temp_r31->unk44, &temp_r31->unk5C, &temp_r31->unk74) && !temp_r31->unk0_field6) { + temp_r31->unk0_field2 = 1; + temp_r31->unk0_field1 = 1; + temp_r31->unk0_field5 = 1; + temp_r31->unk0_field3 = 0; + temp_r31->unk50.x = object->trans.x; + temp_r31->unk50.y = object->trans.y; + temp_r31->unk50.z = object->trans.z; + temp_r31->unk68.y = -2000; + temp_r31->unk12 = 2; + temp_r31->unk3E = 12; + temp_r23 = Hu3DData[object->model[2]].unk_120; + temp_r23->unk_00 = 0; + VECSubtract(&temp_r31->unk5C, &object->trans, &temp_r23->unk_04); + Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelPosSet(object->model[2], object->trans.x, object->trans.y, object->trans.z); + temp_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 2); + temp_r25[temp_r31->unk2]->work[3] = 1; + } + else { + spC.x = CenterM[temp_r31->unk2].x; + spC.z = CenterM[temp_r31->unk2].z; + spC.x += 0.1f * (object->trans.x - spC.x); + spC.z += 0.1f * (object->trans.z - spC.z); + temp_r29 = fn_1_62E0(spC.z - 350.0f); + if (temp_r29 != temp_r31->unk46 && temp_r29 > 1 && temp_r29 < 6) { + spC.z = lbl_1_data_75CC[temp_r29 - 1] + 350.0f; + } + else { + temp_r29 = fn_1_62E0(spC.z + 350.0f); + if (temp_r29 != temp_r31->unk46 && temp_r31->unk46 > 1 && temp_r31->unk46 < 6) { + spC.z = lbl_1_data_75CC[temp_r31->unk46 - 1] - 350.0f; + } + } + CenterM[temp_r31->unk2].x = spC.x; + CenterM[temp_r31->unk2].z = spC.z; + temp_r29 = fn_1_62E0(object->trans.z); + if (temp_r29 != temp_r31->unk46) { + temp_r31->unk46 = temp_r29; + temp_r31->unk44 = fn_1_6328(object); + temp_r31->unk0_field4 = 01; + if (temp_r29 > 1 && temp_r29 < 6) { + temp_r31->unk12++; + temp_r31->unk3E = 30; + temp_r31->unk48 = CenterM[temp_r31->unk2].z; + temp_r31->unk4C = object->trans.z - 350.0f; + temp_r31->unk40 = lbl_1_data_75CC[temp_r31->unk46 - 1]; + } + } + } + break; + + case 1: + if (--temp_r31->unk3E == 0) { + temp_r31->unk12 = 0; + } + CenterM[temp_r31->unk2].z = temp_r31->unk48 + ((temp_r31->unk4C - temp_r31->unk48) * cosd((temp_r31->unk3E * 90.0f) / 30.0f)); + temp_r28 = 0; + temp_f25 = 1; + break; + + case 2: + temp_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 2); + temp_r27 = temp_r25[temp_r31->unk2]; + temp_r24 = temp_r27->data; + switch (temp_r24->unk4) { + case 1: + temp_f28 = 1.0f - (temp_r24->unk24 / 90.0f); + object->trans.x = temp_r31->unk50.x + (temp_f28 * (temp_r31->unk5C.x - temp_r31->unk50.x)); + object->trans.y = 100 + (-2000.0f * (temp_f28 - 0.1f)) * (temp_f28 - 0.1f); + object->trans.z = temp_r31->unk50.z + (temp_f28 * (temp_r31->unk5C.z - temp_r31->unk50.z)); + temp_r28 = 3; + temp_r26 = 0; + break; + + case 2: + case 3: + if (temp_r24->unk0) { + object->trans.x = temp_r27->trans.x; + object->trans.y = temp_r27->trans.y - 150; + object->trans.z = temp_r27->trans.z; + temp_r28 = 4; + temp_r26 = 0; + } + else { + if (temp_r31->unk3E) { + temp_r31->unk3E--; + } + temp_f28 = sind((temp_r31->unk3E / 30.0f) * 90.0f); + object->trans.x = temp_r31->unk74.x - (temp_f28 * (temp_r31->unk74.x - temp_r31->unk68.x)); + object->trans.y = temp_r31->unk74.y - (temp_f28 * (temp_r31->unk74.y - temp_r31->unk68.y)); + object->trans.z = temp_r31->unk74.z - (temp_f28 * (temp_r31->unk74.z - temp_r31->unk68.z)); + temp_r28 = 0; + temp_r26 = 0x40000001; + } + break; + } + if (!temp_r31->unk0_field1) { + temp_r31->unk0_field2 = 0; + temp_r31->unk12 = 0; + temp_r31->unk20.y = 0; + } + break; + } + if ((temp_r28 >= 0 && temp_r28 != temp_r31->unk2C) || temp_r26 != temp_r31->unk30) { + temp_r31->unk2C = temp_r28; + temp_r31->unk30 = temp_r26; + CharModelMotionShiftSet(temp_r31->unkC, object->motion[temp_r31->unk2C], 0, 8, temp_r26); + } + CharModelMotionSpeedSet(temp_r31->unkC, temp_f25); + temp_r31->unk34 = temp_f25; + if (temp_r31->unk2 == 0) { + Hu3DShadowData.unk_20.x = object->trans.x; + Hu3DShadowData.unk_20.y = object->trans.y; + Hu3DShadowData.unk_20.z = object->trans.z; + Hu3DShadowData.unk_14.x = 700 + Hu3DShadowData.unk_20.x; + Hu3DShadowData.unk_14.y = 2500 + Hu3DShadowData.unk_20.y; + Hu3DShadowData.unk_14.z = Hu3DShadowData.unk_20.z - 700; + } + else { + lbl_1_bss_D4[temp_r31->unk2 - 1].x = object->trans.x; + lbl_1_bss_D4[temp_r31->unk2 - 1].y = object->trans.y; + lbl_1_bss_D4[temp_r31->unk2 - 1].z = object->trans.z; + lbl_1_bss_F8[temp_r31->unk2 - 1].x = 700 + lbl_1_bss_D4[temp_r31->unk2 - 1].x; + lbl_1_bss_F8[temp_r31->unk2 - 1].y = 2500 + lbl_1_bss_D4[temp_r31->unk2 - 1].y; + lbl_1_bss_F8[temp_r31->unk2 - 1].z = lbl_1_bss_D4[temp_r31->unk2 - 1].z - 700; + } } void fn_1_3C1C(omObjData *object) { - WorkD0C *temp_r31; - s32 temp_r29; - u32 temp_r28; - float temp_f29; - temp_r31 = object->data; - temp_r29 = temp_r31->unk2C; - temp_f29 = temp_r31->unk34; - temp_r28 = temp_r31->unk30; - switch(temp_r31->unk12) { - case 0: - if(object->trans.z > -7600.0f) { - object->trans.z -= 3.75f; - } else { - temp_r31->unk12++; - } - object->rot.y = fn_1_1024(object->rot.y, 180.0f, 0.2f); - temp_r29 = 1; - temp_f29 = 1.0f; - temp_r28 = 0x40000001; - break; - - case 1: - if(fn_1_374() >= 9) { - temp_r29 = (temp_r31->unk0_field8) ? 5 : 6; - temp_f29 = 1.0f; - temp_r28 = 0; - } else { - object->rot.y = fn_1_1024(object->rot.y, 0.0f, 0.2f); - temp_r29 = 0; - temp_f29 = 1.0f; - temp_r28 = 0x40000001; - } - break; - - case 2: - if(--temp_r31->unk3E == 0 || fn_1_374() == 7) { - temp_r31->unk12 = 1; - } - temp_r29 = 0; - temp_f29 = 1.0f; - temp_r28 = 0x40000001; - break; - } - if(temp_r31->unk0_field0) { - CZoomM[temp_r31->unk2] += (lbl_1_data_741C[2].zoom-CZoomM[temp_r31->unk2])*0.1f; - CenterM[temp_r31->unk2].x += (object->trans.x-CenterM[temp_r31->unk2].x)*0.1f; - CenterM[temp_r31->unk2].y += ((object->trans.y+100)-CenterM[temp_r31->unk2].y)*0.1f; - CenterM[temp_r31->unk2].z += (object->trans.z-CenterM[temp_r31->unk2].z)*0.1f; - CRotM[temp_r31->unk2].x += (lbl_1_data_741C[2].rot.x-CRotM[temp_r31->unk2].x)*0.1f; - CRotM[temp_r31->unk2].y += (lbl_1_data_741C[2].rot.y-CRotM[temp_r31->unk2].y)*0.1f; - CRotM[temp_r31->unk2].z += (lbl_1_data_741C[2].rot.z-CRotM[temp_r31->unk2].z)*0.1f; - Hu3DModelAttrReset(object->model[1], 1); - Hu3DModelPosSet(object->model[1], object->trans.x, object->trans.y+200, object->trans.z); - } else { - CZoomM[temp_r31->unk2] += (lbl_1_data_741C[3].zoom-CZoomM[temp_r31->unk2])*0.1f; - CenterM[temp_r31->unk2].x += (object->trans.x-CenterM[temp_r31->unk2].x)*0.1f; - CenterM[temp_r31->unk2].y += ((object->trans.y+100)-CenterM[temp_r31->unk2].y)*0.1f; - CenterM[temp_r31->unk2].z += (object->trans.z-CenterM[temp_r31->unk2].z)*0.1f; - CRotM[temp_r31->unk2].x += (lbl_1_data_741C[3].rot.x-CRotM[temp_r31->unk2].x)*0.1f; - CRotM[temp_r31->unk2].y += (lbl_1_data_741C[3].rot.y-CRotM[temp_r31->unk2].y)*0.1f; - CRotM[temp_r31->unk2].z += (lbl_1_data_741C[3].rot.z-CRotM[temp_r31->unk2].z)*0.1f; - } - if((temp_r29 >= 0 && temp_r29 != temp_r31->unk2C) || temp_r28 != temp_r31->unk30) { - temp_r31->unk2C = temp_r29; - temp_r31->unk30 = temp_r28; - CharModelMotionShiftSet(temp_r31->unkC, object->motion[temp_r31->unk2C], 0, 8, temp_r28); - } - CharModelMotionSpeedSet(temp_r31->unkC, temp_f29); - temp_r31->unk34 = temp_f29; + WorkD0C *temp_r31; + s32 temp_r29; + u32 temp_r28; + float temp_f29; + temp_r31 = object->data; + temp_r29 = temp_r31->unk2C; + temp_f29 = temp_r31->unk34; + temp_r28 = temp_r31->unk30; + switch (temp_r31->unk12) { + case 0: + if (object->trans.z > -7600.0f) { + object->trans.z -= 3.75f; + } + else { + temp_r31->unk12++; + } + object->rot.y = fn_1_1024(object->rot.y, 180.0f, 0.2f); + temp_r29 = 1; + temp_f29 = 1.0f; + temp_r28 = 0x40000001; + break; + + case 1: + if (fn_1_374() >= 9) { + temp_r29 = (temp_r31->unk0_field8) ? 5 : 6; + temp_f29 = 1.0f; + temp_r28 = 0; + } + else { + object->rot.y = fn_1_1024(object->rot.y, 0.0f, 0.2f); + temp_r29 = 0; + temp_f29 = 1.0f; + temp_r28 = 0x40000001; + } + break; + + case 2: + if (--temp_r31->unk3E == 0 || fn_1_374() == 7) { + temp_r31->unk12 = 1; + } + temp_r29 = 0; + temp_f29 = 1.0f; + temp_r28 = 0x40000001; + break; + } + if (temp_r31->unk0_field0) { + CZoomM[temp_r31->unk2] += (lbl_1_data_741C[2].zoom - CZoomM[temp_r31->unk2]) * 0.1f; + CenterM[temp_r31->unk2].x += (object->trans.x - CenterM[temp_r31->unk2].x) * 0.1f; + CenterM[temp_r31->unk2].y += ((object->trans.y + 100) - CenterM[temp_r31->unk2].y) * 0.1f; + CenterM[temp_r31->unk2].z += (object->trans.z - CenterM[temp_r31->unk2].z) * 0.1f; + CRotM[temp_r31->unk2].x += (lbl_1_data_741C[2].rot.x - CRotM[temp_r31->unk2].x) * 0.1f; + CRotM[temp_r31->unk2].y += (lbl_1_data_741C[2].rot.y - CRotM[temp_r31->unk2].y) * 0.1f; + CRotM[temp_r31->unk2].z += (lbl_1_data_741C[2].rot.z - CRotM[temp_r31->unk2].z) * 0.1f; + Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelPosSet(object->model[1], object->trans.x, object->trans.y + 200, object->trans.z); + } + else { + CZoomM[temp_r31->unk2] += (lbl_1_data_741C[3].zoom - CZoomM[temp_r31->unk2]) * 0.1f; + CenterM[temp_r31->unk2].x += (object->trans.x - CenterM[temp_r31->unk2].x) * 0.1f; + CenterM[temp_r31->unk2].y += ((object->trans.y + 100) - CenterM[temp_r31->unk2].y) * 0.1f; + CenterM[temp_r31->unk2].z += (object->trans.z - CenterM[temp_r31->unk2].z) * 0.1f; + CRotM[temp_r31->unk2].x += (lbl_1_data_741C[3].rot.x - CRotM[temp_r31->unk2].x) * 0.1f; + CRotM[temp_r31->unk2].y += (lbl_1_data_741C[3].rot.y - CRotM[temp_r31->unk2].y) * 0.1f; + CRotM[temp_r31->unk2].z += (lbl_1_data_741C[3].rot.z - CRotM[temp_r31->unk2].z) * 0.1f; + } + if ((temp_r29 >= 0 && temp_r29 != temp_r31->unk2C) || temp_r28 != temp_r31->unk30) { + temp_r31->unk2C = temp_r29; + temp_r31->unk30 = temp_r28; + CharModelMotionShiftSet(temp_r31->unkC, object->motion[temp_r31->unk2C], 0, 8, temp_r28); + } + CharModelMotionSpeedSet(temp_r31->unkC, temp_f29); + temp_r31->unk34 = temp_f29; } void fn_1_4528(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - float temp_f29; - HsfanimStruct01 *temp_r31; - s32 temp_r29; - s32 temp_r28; - if(particle->unk_00 == 0) { - particle->unk_00 = 1; - temp_r31 = particle->unk_48; - temp_f29 = atan2d(particle->unk_04.x, particle->unk_04.z); - for(temp_r29=0; temp_r29unk_30; temp_r31++, temp_r29++) { - temp_r31->unk2C = ((20.0f*frand8())+50.0f)/256.0f; - temp_f31 = (frand8()*360.0f)/256.0f; - temp_r31->unk34.x = 100.0f*(0.2f*sind(temp_f31)); - temp_r31->unk34.y = 0; - temp_r31->unk34.z = 100.0f*(0.2f*cosd(temp_f31)); - temp_f30 = ((frand8()*2.5f)/256.0f)+(5.0f/3.0f); - temp_f31 = temp_f29+(30.0f*(((s32)frand() & 0x1FF)-256.0f)/256.0f); - temp_r31->unk08.x = temp_f30*sind(temp_f31); - temp_r31->unk08.z = temp_f30*cosd(temp_f31); - temp_r31->unk08.y = (frand8()*(50.0f/3.0f))/256.0f; - temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 255; - } - } - temp_r28 = 0; - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(temp_r31->unk34.y < -2000.0f) { - temp_r28++; - } else { - temp_r31->unk08.y += -0.50000006f; - temp_r31->unk34.x += temp_r31->unk08.x; - temp_r31->unk34.y += temp_r31->unk08.y; - temp_r31->unk34.z += temp_r31->unk08.z; - } - } - if(temp_r28 == particle->unk_30) { - model->attr |= 0x1; - } - DCStoreRangeNoSync(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + float temp_f31; + float temp_f30; + float temp_f29; + HsfanimStruct01 *temp_r31; + s32 temp_r29; + s32 temp_r28; + if (particle->unk_00 == 0) { + particle->unk_00 = 1; + temp_r31 = particle->unk_48; + temp_f29 = atan2d(particle->unk_04.x, particle->unk_04.z); + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r31++, temp_r29++) { + temp_r31->unk2C = ((20.0f * frand8()) + 50.0f) / 256.0f; + temp_f31 = (frand8() * 360.0f) / 256.0f; + temp_r31->unk34.x = 100.0f * (0.2f * sind(temp_f31)); + temp_r31->unk34.y = 0; + temp_r31->unk34.z = 100.0f * (0.2f * cosd(temp_f31)); + temp_f30 = ((frand8() * 2.5f) / 256.0f) + (5.0f / 3.0f); + temp_f31 = temp_f29 + (30.0f * (((s32)frand() & 0x1FF) - 256.0f) / 256.0f); + temp_r31->unk08.x = temp_f30 * sind(temp_f31); + temp_r31->unk08.z = temp_f30 * cosd(temp_f31); + temp_r31->unk08.y = (frand8() * (50.0f / 3.0f)) / 256.0f; + temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 255; + } + } + temp_r28 = 0; + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (temp_r31->unk34.y < -2000.0f) { + temp_r28++; + } + else { + temp_r31->unk08.y += -0.50000006f; + temp_r31->unk34.x += temp_r31->unk08.x; + temp_r31->unk34.y += temp_r31->unk08.y; + temp_r31->unk34.z += temp_r31->unk08.z; + } + } + if (temp_r28 == particle->unk_30) { + model->attr |= 0x1; + } + DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_4978(omObjData *object) { - WorkD0C *work = object->data; - if(object->data != NULL) { - HuMemDirectFree(object->data); - object->data = NULL; - } + WorkD0C *work = object->data; + if (object->data != NULL) { + HuMemDirectFree(object->data); + object->data = NULL; + } } void fn_1_4AA8(omObjData *object); void fn_1_49C8(Process *objman) { - s32 i; - lbl_1_bss_140 = 0; - omMakeGroupEx(objman, 2, 4); - for(i=0; i<4; i++) { - omAddObjEx(objman, 6, 4, 50, 2, fn_1_4AA8); - } + s32 i; + lbl_1_bss_140 = 0; + omMakeGroupEx(objman, 2, 4); + for (i = 0; i < 4; i++) { + omAddObjEx(objman, 6, 4, 50, 2, fn_1_4AA8); + } } void fn_1_5B9C(omObjData *object); void fn_1_4A4C(void) { - omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 2); - s32 i; - for(i=0; i<4; i++) { - fn_1_5B9C(objList[i]); - } + omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 2); + s32 i; + for (i = 0; i < 4; i++) { + fn_1_5B9C(objList[i]); + } } s32 lbl_1_data_7794[1] = { 0x460014 }; @@ -1262,35 +1181,35 @@ void fn_1_4F54(omObjData *object); void fn_1_4AA8(omObjData *object) { - Work4AA8 *work; - u32 i; - work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work4AA8), MEMORY_DEFAULT_NUM); - object->data = work; - memset(work, 0, sizeof(Work4AA8)); - work->unk2 = lbl_1_bss_140; - object->model[0] = Hu3DModelCreateFile(0x460013); - Hu3DModelCameraSet(object->model[0], lbl_1_data_75E0[lbl_1_bss_140]); - Hu3DModelAttrSet(object->model[0], 1); - for(i=0; i<1; i++) { - object->motion[i] = Hu3DJointMotionFile(object->model[0], lbl_1_data_7794[i]); - - } - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - object->trans.y = 500; - object->scale.x = object->scale.y = object->scale.z = 0.25f; - if(work->unk2 == 0) { - object->trans.x = -1800; - object->trans.y = 50; - object->trans.z = -8500; - object->rot.y = -90; - object->func = fn_1_4CC0; - Hu3DMotionSpeedSet(object->model[0], 2.0f); - work->unk24 = 60; - } else { - object->func = fn_1_4F54; - } - lbl_1_bss_140++; + Work4AA8 *work; + u32 i; + work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work4AA8), MEMORY_DEFAULT_NUM); + object->data = work; + memset(work, 0, sizeof(Work4AA8)); + work->unk2 = lbl_1_bss_140; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M439, 0x13)); + Hu3DModelCameraSet(object->model[0], lbl_1_data_75E0[lbl_1_bss_140]); + Hu3DModelAttrSet(object->model[0], 1); + for (i = 0; i < 1; i++) { + object->motion[i] = Hu3DJointMotionFile(object->model[0], lbl_1_data_7794[i]); + } + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelAttrSet(object->model[0], 0x40000001); + object->trans.y = 500; + object->scale.x = object->scale.y = object->scale.z = 0.25f; + if (work->unk2 == 0) { + object->trans.x = -1800; + object->trans.y = 50; + object->trans.z = -8500; + object->rot.y = -90; + object->func = fn_1_4CC0; + Hu3DMotionSpeedSet(object->model[0], 2.0f); + work->unk24 = 60; + } + else { + object->func = fn_1_4F54; + } + lbl_1_bss_140++; } s32 lbl_1_data_7798 = 2; @@ -1298,498 +1217,443 @@ s32 lbl_1_data_779C = -1; void fn_1_4CC0(omObjData *object) { - Work4AA8 *work = object->data; - float pan; - Vec pos2D; - if(42.0f == work->unk24) { - HuAudFXPlay(1795); - } - if(work->unk24 == 0) { - object->trans.x -= 25.0f; - } else { - if(--work->unk24 == 0) { - lbl_1_data_779C = HuAudFXPlay(1796); - lbl_1_data_7798--; - } - } - if(lbl_1_data_779C >= 0) { - if(HuAudFXStatusGet(lbl_1_data_779C) == 0) { - if(lbl_1_data_7798 > 0) { - lbl_1_data_779C = HuAudFXPlay(1796); - lbl_1_data_7798--; - } else { - lbl_1_data_779C = -1; - } - } - if(lbl_1_data_779C >= 0) { - Hu3D3Dto2D(&object->trans, 1, &pos2D); - pan = 64.0f+((32.0f*pos2D.x)/576.0f); - if(pan < 32.0f) { - pan = 32.0f; - } else if(pan > 96.0f) { - pan = 96.0f; - } - HuAudFXPanning(lbl_1_data_779C, pan); - } - } - Hu3DModelAttrReset(object->model[0], 1); - if(fn_1_374() == 3) { - Hu3DMotionSpeedSet(object->model[0], 1.0f); - Hu3DModelAttrSet(object->model[0], 1); - object->func = fn_1_4F54; - } + Work4AA8 *work = object->data; + float pan; + Vec pos2D; + if (42.0f == work->unk24) { + HuAudFXPlay(1795); + } + if (work->unk24 == 0) { + object->trans.x -= 25.0f; + } + else { + if (--work->unk24 == 0) { + lbl_1_data_779C = HuAudFXPlay(1796); + lbl_1_data_7798--; + } + } + if (lbl_1_data_779C >= 0) { + if (HuAudFXStatusGet(lbl_1_data_779C) == 0) { + if (lbl_1_data_7798 > 0) { + lbl_1_data_779C = HuAudFXPlay(1796); + lbl_1_data_7798--; + } + else { + lbl_1_data_779C = -1; + } + } + if (lbl_1_data_779C >= 0) { + Hu3D3Dto2D(&object->trans, 1, &pos2D); + pan = 64.0f + ((32.0f * pos2D.x) / 576.0f); + if (pan < 32.0f) { + pan = 32.0f; + } + else if (pan > 96.0f) { + pan = 96.0f; + } + HuAudFXPanning(lbl_1_data_779C, pan); + } + } + Hu3DModelAttrReset(object->model[0], 1); + if (fn_1_374() == 3) { + Hu3DMotionSpeedSet(object->model[0], 1.0f); + Hu3DModelAttrSet(object->model[0], 1); + object->func = fn_1_4F54; + } } void fn_1_71EC(Vec *arg0, Vec *arg1, float arg2); void fn_1_4F54(omObjData *object) { - Work4AA8 *work = object->data; - omObjData **temp_r29; - WorkD0C *temp_r28; - Vec sp4C; - Vec sp40; - switch(work->unk4) { - case 0: - if(object->work[3]) { - work->unk4++; - work->unk24 = work->unk26 = 90; - temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - object->trans.x = work->unk28.x = temp_r29[work->unk2]->trans.x; - object->trans.y = work->unk28.y = 2000; - object->trans.z = work->unk28.z = temp_r29[work->unk2]->trans.z-100; - object->rot.y = 180; - Hu3DModelAttrReset(object->model[0], 1); - } - break; - - case 1: - temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - work->unk34.x = temp_r29[work->unk2]->trans.x; - work->unk34.y = 1500; - work->unk34.z = temp_r29[work->unk2]->trans.z; - work->unk40.x = temp_r29[work->unk2]->trans.x; - work->unk40.y = temp_r29[work->unk2]->trans.y; - work->unk40.z = temp_r29[work->unk2]->trans.z; - fn_1_71EC(&work->unk28, &sp40, 1.0f-((float)work->unk24/(float)work->unk26)); - VECSubtract(&sp40, &object->trans, &sp4C); - object->rot.x = fn_1_1024(object->rot.x, atan2d(-sp4C.y, VECMagXZ(&sp4C)), 0.2f); - object->rot.y = fn_1_1024(object->rot.y, atan2d(sp4C.x, sp4C.z), 0.2f); - object->trans.x = sp40.x; - object->trans.y = sp40.y; - object->trans.z = sp40.z; - if(--work->unk24 == 0) { - work->unk0 = 1; - work->unk4++; - work->unk24 = 90; - work->unk10 = (200.0f-object->trans.y)/work->unk24; - object->rot.x = 0; - } - if(60.0f == work->unk24) { - HuAudFXPlay(1796); - } - break; - - case 2: - object->trans.y += work->unk10; - if(--work->unk24 == 0) { - work->unk4++; - work->unk24 = work->unk26 = 48; - work->unk28.x = object->trans.x; - work->unk28.y = object->trans.y; - work->unk28.z = object->trans.z; - temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - temp_r28 = temp_r29[work->unk2]->data; - work->unk34.x = temp_r28->unk50.x; - work->unk34.y = 250; - work->unk34.z = temp_r28->unk50.z; - temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - temp_r28 = temp_r29[work->unk2]->data; - temp_r28->unk0_field3 = 1; - VECSubtract(&work->unk34, &work->unk28, &sp4C); - VECNormalize(&sp4C, &sp4C); - VECScale(&sp4C, &work->unk40, 2000.0f); - work->unk40.y = 300; - VECAdd(&work->unk28, &work->unk40, &work->unk40); - - } - break; - - case 3: - fn_1_71EC(&work->unk28, &sp40, 1.0f-((float)work->unk24/(float)work->unk26)); - VECSubtract(&sp40, &object->trans, &sp4C); - object->rot.x = fn_1_1024(object->rot.x, atan2d(-sp4C.y, VECMagXZ(&sp4C)), 0.2f); - object->rot.y = fn_1_1024(object->rot.y, atan2d(sp4C.x, sp4C.z), 0.2f); - object->trans.x = sp40.x; - object->trans.y = sp40.y; - object->trans.z = sp40.z; - if(--work->unk24 == 0) { - temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - temp_r28 = temp_r29[work->unk2]->data; - temp_r28->unk0_field1 = 0; - work->unk4 = 0; - object->work[3] = 0; - Hu3DModelAttrSet(object->model[0], 1); - } - if(work->unk24 == (int)(work->unk26-12.0f)) { - work->unk0 = 0; - temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - temp_r28 = temp_r29[work->unk2]->data; - temp_r28->unk68.x = object->trans.x; - temp_r28->unk68.y = object->trans.y; - temp_r28->unk68.z = object->trans.z; - } - break; - } + Work4AA8 *work = object->data; + omObjData **temp_r29; + WorkD0C *temp_r28; + Vec sp4C; + Vec sp40; + switch (work->unk4) { + case 0: + if (object->work[3]) { + work->unk4++; + work->unk24 = work->unk26 = 90; + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + object->trans.x = work->unk28.x = temp_r29[work->unk2]->trans.x; + object->trans.y = work->unk28.y = 2000; + object->trans.z = work->unk28.z = temp_r29[work->unk2]->trans.z - 100; + object->rot.y = 180; + Hu3DModelAttrReset(object->model[0], 1); + } + break; + + case 1: + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + work->unk34.x = temp_r29[work->unk2]->trans.x; + work->unk34.y = 1500; + work->unk34.z = temp_r29[work->unk2]->trans.z; + work->unk40.x = temp_r29[work->unk2]->trans.x; + work->unk40.y = temp_r29[work->unk2]->trans.y; + work->unk40.z = temp_r29[work->unk2]->trans.z; + fn_1_71EC(&work->unk28, &sp40, 1.0f - ((float)work->unk24 / (float)work->unk26)); + VECSubtract(&sp40, &object->trans, &sp4C); + object->rot.x = fn_1_1024(object->rot.x, atan2d(-sp4C.y, VECMagXZ(&sp4C)), 0.2f); + object->rot.y = fn_1_1024(object->rot.y, atan2d(sp4C.x, sp4C.z), 0.2f); + object->trans.x = sp40.x; + object->trans.y = sp40.y; + object->trans.z = sp40.z; + if (--work->unk24 == 0) { + work->unk0 = 1; + work->unk4++; + work->unk24 = 90; + work->unk10 = (200.0f - object->trans.y) / work->unk24; + object->rot.x = 0; + } + if (60.0f == work->unk24) { + HuAudFXPlay(1796); + } + break; + + case 2: + object->trans.y += work->unk10; + if (--work->unk24 == 0) { + work->unk4++; + work->unk24 = work->unk26 = 48; + work->unk28.x = object->trans.x; + work->unk28.y = object->trans.y; + work->unk28.z = object->trans.z; + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + temp_r28 = temp_r29[work->unk2]->data; + work->unk34.x = temp_r28->unk50.x; + work->unk34.y = 250; + work->unk34.z = temp_r28->unk50.z; + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + temp_r28 = temp_r29[work->unk2]->data; + temp_r28->unk0_field3 = 1; + VECSubtract(&work->unk34, &work->unk28, &sp4C); + VECNormalize(&sp4C, &sp4C); + VECScale(&sp4C, &work->unk40, 2000.0f); + work->unk40.y = 300; + VECAdd(&work->unk28, &work->unk40, &work->unk40); + } + break; + + case 3: + fn_1_71EC(&work->unk28, &sp40, 1.0f - ((float)work->unk24 / (float)work->unk26)); + VECSubtract(&sp40, &object->trans, &sp4C); + object->rot.x = fn_1_1024(object->rot.x, atan2d(-sp4C.y, VECMagXZ(&sp4C)), 0.2f); + object->rot.y = fn_1_1024(object->rot.y, atan2d(sp4C.x, sp4C.z), 0.2f); + object->trans.x = sp40.x; + object->trans.y = sp40.y; + object->trans.z = sp40.z; + if (--work->unk24 == 0) { + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + temp_r28 = temp_r29[work->unk2]->data; + temp_r28->unk0_field1 = 0; + work->unk4 = 0; + object->work[3] = 0; + Hu3DModelAttrSet(object->model[0], 1); + } + if (work->unk24 == (int)(work->unk26 - 12.0f)) { + work->unk0 = 0; + temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + temp_r28 = temp_r29[work->unk2]->data; + temp_r28->unk68.x = object->trans.x; + temp_r28->unk68.y = object->trans.y; + temp_r28->unk68.z = object->trans.z; + } + break; + } } -void fn_1_5B9C(omObjData *object) -{ - -} +void fn_1_5B9C(omObjData *object) { } -s32 lbl_1_data_77A0[10] = { - 0x00460000, - 0x00460001, - 0x00460002, - 0x00460003, - 0x00460004, - 0x00460005, - 0x00460006, - 0x00460007, - 0x00460008, - 0x00460009 -}; +s32 lbl_1_data_77A0[10] = { 0x00460000, 0x00460001, 0x00460002, 0x00460003, 0x00460004, 0x00460005, 0x00460006, 0x00460007, 0x00460008, 0x00460009 }; void fn_1_5CB0(omObjData *object); void fn_1_6520(omObjData *object); void fn_1_5BA0(Process *objman) { - s32 i; - lbl_1_bss_144 = 0; - omMakeGroupEx(objman, 1, 4); - for(i=0; i<4; i++) { - omAddObjEx(objman, 10, 28, 0, 1, fn_1_5CB0); - } - for(i=0; i<10; i++) { - lbl_1_bss_10[i] = Hu3DModelCreateFile(lbl_1_data_77A0[i]); - Hu3DModelAttrSet(lbl_1_bss_10[i], 1); - } - omAddObjEx(objman, 10, 4, 0, 1, fn_1_6520); + s32 i; + lbl_1_bss_144 = 0; + omMakeGroupEx(objman, 1, 4); + for (i = 0; i < 4; i++) { + omAddObjEx(objman, 10, 28, 0, 1, fn_1_5CB0); + } + for (i = 0; i < 10; i++) { + lbl_1_bss_10[i] = Hu3DModelCreateFile(lbl_1_data_77A0[i]); + Hu3DModelAttrSet(lbl_1_bss_10[i], 1); + } + omAddObjEx(objman, 10, 4, 0, 1, fn_1_6520); } -void fn_1_5CAC(void) -{ - -} +void fn_1_5CAC(void) { } -float lbl_1_data_77C8[][2] = { - 0, 0, - 0, -700, - -1400, -2200, - 1400, -2200, - -1400, -3600, - 1400, -3600, - -2800, -5200, - 0, -5200, - 0, -5200, - 2800, -5200, - -2800, -6600, - 0, -6600, - 0, -6600, - 2800, -6600 -}; +float lbl_1_data_77C8[][2] = { 0, 0, 0, -700, -1400, -2200, 1400, -2200, -1400, -3600, 1400, -3600, -2800, -5200, 0, -5200, 0, -5200, 2800, -5200, + -2800, -6600, 0, -6600, 0, -6600, 2800, -6600 }; -s16 lbl_1_data_7838[] = { - 0, 1, -1, -1, - 2, 2, -1, -1, - -1, -1, 3, 3, - 3, 3 -}; +s16 lbl_1_data_7838[] = { 0, 1, -1, -1, 2, 2, -1, -1, -1, -1, 3, 3, 3, 3 }; void fn_1_6068(omObjData *object); void fn_1_5CB0(omObjData *object) { - u16 sp8[6] = { - 4, 7, 5, 8, 6, 9 - }; - char *sp14[10][2] = { - "road0", NULL, - "road1", "bridge1", - "road2", "bridge2", - "road3", NULL, - "road4", NULL, - "road5", NULL, - "road6", NULL, - "road7", NULL, - "road8", NULL, - "road9", NULL - }; - Work5CB0 *work; - s32 i; - s32 temp; - s32 temp_r27; - s32 temp_r26; - s32 temp_r25; - s32 temp_r24; - omSetStatBit(object, 0x100); - work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work5CB0)*14, MEMORY_DEFAULT_NUM); - object->data = work; - memset(work, 0, sizeof(Work5CB0)*14); - for(i=0; i<100; i++) { - temp_r27 = ((frand8()*3) >> 8)*2; - temp_r25 = ((frand8()*3) >> 8)*2; - temp = sp8[temp_r27]; - sp8[temp_r27] = sp8[temp_r25]; - sp8[temp_r25] = temp; - temp_r27 = (((frand8()*3) >> 8)*2)+1; - temp_r25 = (((frand8()*3) >> 8)*2)+1; - temp = sp8[temp_r27]; - sp8[temp_r27] = sp8[temp_r25]; - sp8[temp_r25] = temp; - } - for(i=0; i<100; i++) { - temp_r27 = ((frand8()*3) >> 8)*2; - temp = sp8[temp_r27+1]; - sp8[temp_r27+1] = sp8[temp_r27]; - sp8[temp_r27] = temp; - } - temp_r24 = 0; - for(i=0; i<14; i++, work++) { - temp_r26 = lbl_1_data_7838[i]; - if(temp_r26 < 0) { - temp_r26 = sp8[temp_r24++]; - } - object->model[i] = Hu3DModelLink(lbl_1_bss_10[temp_r26]); - Hu3DModelPosSet(object->model[i], lbl_1_data_77C8[i][0], 0, lbl_1_data_77C8[i][1]); - Hu3DModelAttrReset(object->model[i], 1); - for(temp=0; temp<2; temp++) { - if(sp14[temp_r26][temp]) { - Hu3DModelShadowMapObjSet(object->model[i], sp14[temp_r26][temp]); - } - } - work->unk0 = temp_r26; - work->unk4.x = lbl_1_data_77C8[i][0]; - work->unk4.y = 0; - work->unk4.z = lbl_1_data_77C8[i][1]; - memcpy(&work->unk10, &lbl_1_data_748C[i], sizeof(StructData748C)); - - } - object->work[0] = lbl_1_bss_144; - lbl_1_bss_144++; - object->func = fn_1_6068; + u16 sp8[6] = { 4, 7, 5, 8, 6, 9 }; + char *sp14[10][2] = { "road0", NULL, "road1", "bridge1", "road2", "bridge2", "road3", NULL, "road4", NULL, "road5", NULL, "road6", NULL, "road7", + NULL, "road8", NULL, "road9", NULL }; + Work5CB0 *work; + s32 i; + s32 temp; + s32 temp_r27; + s32 temp_r26; + s32 temp_r25; + s32 temp_r24; + omSetStatBit(object, 0x100); + work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work5CB0) * 14, MEMORY_DEFAULT_NUM); + object->data = work; + memset(work, 0, sizeof(Work5CB0) * 14); + for (i = 0; i < 100; i++) { + temp_r27 = ((frand8() * 3) >> 8) * 2; + temp_r25 = ((frand8() * 3) >> 8) * 2; + temp = sp8[temp_r27]; + sp8[temp_r27] = sp8[temp_r25]; + sp8[temp_r25] = temp; + temp_r27 = (((frand8() * 3) >> 8) * 2) + 1; + temp_r25 = (((frand8() * 3) >> 8) * 2) + 1; + temp = sp8[temp_r27]; + sp8[temp_r27] = sp8[temp_r25]; + sp8[temp_r25] = temp; + } + for (i = 0; i < 100; i++) { + temp_r27 = ((frand8() * 3) >> 8) * 2; + temp = sp8[temp_r27 + 1]; + sp8[temp_r27 + 1] = sp8[temp_r27]; + sp8[temp_r27] = temp; + } + temp_r24 = 0; + for (i = 0; i < 14; i++, work++) { + temp_r26 = lbl_1_data_7838[i]; + if (temp_r26 < 0) { + temp_r26 = sp8[temp_r24++]; + } + object->model[i] = Hu3DModelLink(lbl_1_bss_10[temp_r26]); + Hu3DModelPosSet(object->model[i], lbl_1_data_77C8[i][0], 0, lbl_1_data_77C8[i][1]); + Hu3DModelAttrReset(object->model[i], 1); + for (temp = 0; temp < 2; temp++) { + if (sp14[temp_r26][temp]) { + Hu3DModelShadowMapObjSet(object->model[i], sp14[temp_r26][temp]); + } + } + work->unk0 = temp_r26; + work->unk4.x = lbl_1_data_77C8[i][0]; + work->unk4.y = 0; + work->unk4.z = lbl_1_data_77C8[i][1]; + memcpy(&work->unk10, &lbl_1_data_748C[i], sizeof(StructData748C)); + } + object->work[0] = lbl_1_bss_144; + lbl_1_bss_144++; + object->func = fn_1_6068; } void fn_1_6120(omObjData *object); void fn_1_6068(omObjData *object) { - s32 i; - for(i=0; i<14; i++) { - if(object->work[0] == 0 && i == 10) { - Hu3DModelCameraSet(object->model[i], lbl_1_data_75E0[0]); - } else { - Hu3DModelCameraSet(object->model[i], 0); - } - } - if(fn_1_374() == 3) { - object->func = fn_1_6120; - } + s32 i; + for (i = 0; i < 14; i++) { + if (object->work[0] == 0 && i == 10) { + Hu3DModelCameraSet(object->model[i], lbl_1_data_75E0[0]); + } + else { + Hu3DModelCameraSet(object->model[i], 0); + } + } + if (fn_1_374() == 3) { + object->func = fn_1_6120; + } } void fn_1_6120(omObjData *object) { - s32 i; - WorkD0C *temp_r29; - omObjData **temp_r28; - Work5CB0 *work = object->data; - s16 sp8[14]; - for(i=0; i<14; i++) { - sp8[i] = 0; - } - temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - temp_r29 = temp_r28[object->work[0]]->data; - lbl_1_bss_C = &work[temp_r29->unk44].unk10; - sp8[temp_r29->unk44] |= lbl_1_data_75E0[object->work[0]]; - if(lbl_1_bss_C->unk4 >= 0) { - sp8[lbl_1_bss_C->unk4] |= lbl_1_data_75E0[object->work[0]]; - } - for(i=0; iunk8; i++) { - sp8[lbl_1_bss_C->unkC[i]] |= lbl_1_data_75E0[object->work[0]]; - } - for(i=0; i<14; i++) { - Hu3DModelCameraSet(object->model[i], sp8[i]); - } + s32 i; + WorkD0C *temp_r29; + omObjData **temp_r28; + Work5CB0 *work = object->data; + s16 sp8[14]; + for (i = 0; i < 14; i++) { + sp8[i] = 0; + } + temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + temp_r29 = temp_r28[object->work[0]]->data; + lbl_1_bss_C = &work[temp_r29->unk44].unk10; + sp8[temp_r29->unk44] |= lbl_1_data_75E0[object->work[0]]; + if (lbl_1_bss_C->unk4 >= 0) { + sp8[lbl_1_bss_C->unk4] |= lbl_1_data_75E0[object->work[0]]; + } + for (i = 0; i < lbl_1_bss_C->unk8; i++) { + sp8[lbl_1_bss_C->unkC[i]] |= lbl_1_data_75E0[object->work[0]]; + } + for (i = 0; i < 14; i++) { + Hu3DModelCameraSet(object->model[i], sp8[i]); + } } s32 fn_1_62E0(float arg0) { - s32 i; - for(i=0; i<5; i++) { - if(arg0 > lbl_1_data_75CC[i]) { - break; - } - } - return i; + s32 i; + for (i = 0; i < 5; i++) { + if (arg0 > lbl_1_data_75CC[i]) { + break; + } + } + return i; } s32 fn_1_6328(omObjData *object) { - WorkD0C *work = object->data; - omObjData **temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); - Work5CB0 *temp_r29 = temp_r28[work->unk2]->data; - s32 i; - ModelData *temp_r26; - s32 temp_r25; - float temp_f31; - float temp_f30; - lbl_1_bss_8 = &temp_r29[work->unk44].unk10; - if(lbl_1_bss_8->unk8 > 0 && work->unk46 == temp_r29[lbl_1_bss_8->unkC[0]].unk10.unk0) { - temp_r25 = -1; - temp_f30 = 9999; - for(i=0; iunk8; i++) { - temp_r26 = &Hu3DData[temp_r28[work->unk2]->model[lbl_1_bss_8->unkC[i]]]; - temp_f31 = fabs(object->trans.x-temp_r26->pos.x); - if(temp_f31 < temp_f30) { - temp_f30 = temp_f31; - temp_r25 = lbl_1_bss_8->unkC[i]; - } - } - (void)i; - return temp_r25; - } else { - if(work->unk46 == temp_r29[lbl_1_bss_8->unk4].unk10.unk0) { - return lbl_1_bss_8->unk4; - } else { - return -1; - } - } + WorkD0C *work = object->data; + omObjData **temp_r28 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); + Work5CB0 *temp_r29 = temp_r28[work->unk2]->data; + s32 i; + ModelData *temp_r26; + s32 temp_r25; + float temp_f31; + float temp_f30; + lbl_1_bss_8 = &temp_r29[work->unk44].unk10; + if (lbl_1_bss_8->unk8 > 0 && work->unk46 == temp_r29[lbl_1_bss_8->unkC[0]].unk10.unk0) { + temp_r25 = -1; + temp_f30 = 9999; + for (i = 0; i < lbl_1_bss_8->unk8; i++) { + temp_r26 = &Hu3DData[temp_r28[work->unk2]->model[lbl_1_bss_8->unkC[i]]]; + temp_f31 = fabs(object->trans.x - temp_r26->pos.x); + if (temp_f31 < temp_f30) { + temp_f30 = temp_f31; + temp_r25 = lbl_1_bss_8->unkC[i]; + } + } + (void)i; + return temp_r25; + } + else { + if (work->unk46 == temp_r29[lbl_1_bss_8->unk4].unk10.unk0) { + return lbl_1_bss_8->unk4; + } + else { + return -1; + } + } } -s32 lbl_1_data_78A0[8] = { - 0x0046000A, - 0x0046000B, - 0x0046000C, - 0x0046000D, - 0x0046000E, - 0x0046000F, - 0x00460010, - 0x00460011 -}; +s32 lbl_1_data_78A0[8] = { 0x0046000A, 0x0046000B, 0x0046000C, 0x0046000D, 0x0046000E, 0x0046000F, 0x00460010, 0x00460011 }; -Vec lbl_1_data_78C0[4] = { - { -2800, 0, -7700 }, - { 0, 0, -7700 }, - { 0, 0, -7700 }, - { 2800, 0, -7700 } -}; +Vec lbl_1_data_78C0[4] = { { -2800, 0, -7700 }, { 0, 0, -7700 }, { 0, 0, -7700 }, { 2800, 0, -7700 } }; void fn_1_661C(omObjData *object); void fn_1_6520(omObjData *object) { - s32 i; - omSetStatBit(object, 0x100); - for(i=0; imdlcnt; i++) { - object->model[i] = Hu3DModelCreateFile(lbl_1_data_78A0[GWPlayerCfg[i].character]); - Hu3DModelCameraSet(object->model[i], lbl_1_data_75E0[i]); - Hu3DModelClusterAttrSet(object->model[i], 0, 0xC0000001); - Hu3DModelAttrSet(object->model[i], 1); - } - object->func = fn_1_661C; + s32 i; + omSetStatBit(object, 0x100); + for (i = 0; i < object->mdlcnt; i++) { + object->model[i] = Hu3DModelCreateFile(lbl_1_data_78A0[GWPlayerCfg[i].character]); + Hu3DModelCameraSet(object->model[i], lbl_1_data_75E0[i]); + Hu3DModelClusterAttrSet(object->model[i], 0, 0xC0000001); + Hu3DModelAttrSet(object->model[i], 1); + } + object->func = fn_1_661C; } void fn_1_66BC(omObjData *object); void fn_1_661C(omObjData *object) { - Hu3DModelAttrReset(object->model[0], 1); - Hu3DModelPosSet(object->model[0], -2800, 0, -7700); - if(fn_1_374() == 3) { - Hu3DModelAttrSet(object->model[0], 1); - object->func = fn_1_66BC; - } + Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelPosSet(object->model[0], -2800, 0, -7700); + if (fn_1_374() == 3) { + Hu3DModelAttrSet(object->model[0], 1); + object->func = fn_1_66BC; + } } void fn_1_66BC(omObjData *object) { - omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - s32 i; - for(i=0; i<4; i++) { - WorkD0C *work = objList[i]->data; - if(work->unk44 >= 10 && work->unk44 <= 13) { - s32 goalNo = work->unk44-10; - Hu3DModelPosSet(object->model[i], lbl_1_data_78C0[goalNo].x, lbl_1_data_78C0[goalNo].y, lbl_1_data_78C0[goalNo].z); - Hu3DModelAttrReset(object->model[i], 1); - } else { - Hu3DModelAttrSet(object->model[i], 1); - } - } + omObjData **objList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + s32 i; + for (i = 0; i < 4; i++) { + WorkD0C *work = objList[i]->data; + if (work->unk44 >= 10 && work->unk44 <= 13) { + s32 goalNo = work->unk44 - 10; + Hu3DModelPosSet(object->model[i], lbl_1_data_78C0[goalNo].x, lbl_1_data_78C0[goalNo].y, lbl_1_data_78C0[goalNo].z); + Hu3DModelAttrReset(object->model[i], 1); + } + else { + Hu3DModelAttrSet(object->model[i], 1); + } + } } s32 fn_1_67B4(Vec *arg0, s32 arg1, s32 arg2, Vec *arg3, Vec *arg4) { - omObjData **temp_r21 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); - Work5CB0 *temp_r28 = temp_r21[arg1]->data; - s32 i; - s32 temp_r25; - - Vec sp34; - VECSubtract(arg0, &temp_r28[arg2].unk4, &sp34); - temp_r25 = temp_r28[arg2].unk0; - for(i=0; ix*sp28.x)+(sp34.y*sp28.y)-(temp_r29->y*sp28.y)+(sp34.z*sp28.z)-(temp_r29->z*sp28.z))/temp_f30; - arg3->x = (temp_r31[0].x+temp_r28[arg2].unk4.x)+(temp_f31*(temp_r31[1].x-temp_r31[0].x)); - arg3->y = (temp_r31[0].y+temp_r28[arg2].unk4.y)+(temp_f31*(temp_r31[1].y-temp_r31[0].y)); - arg3->z = (temp_r31[0].z+temp_r28[arg2].unk4.z)+(temp_f31*(temp_r31[1].z-temp_r31[0].z)); - arg4->x = (temp_r30[0].x+temp_r28[arg2].unk4.x)+(temp_f31*(temp_r30[1].x-temp_r30[0].x)); - arg4->y = (temp_r30[0].y+temp_r28[arg2].unk4.y)+(temp_f31*(temp_r30[1].y-temp_r30[0].y)); - arg4->z = (temp_r30[0].z+temp_r28[arg2].unk4.z)+(temp_f31*(temp_r30[1].z-temp_r30[0].z)); - return 1; - } - } - return 0; + omObjData **temp_r21 = omGetGroupMemberListEx(HuPrcCurrentGet(), 1); + Work5CB0 *temp_r28 = temp_r21[arg1]->data; + s32 i; + s32 temp_r25; + + Vec sp34; + VECSubtract(arg0, &temp_r28[arg2].unk4, &sp34); + temp_r25 = temp_r28[arg2].unk0; + for (i = 0; i < lbl_1_data_73B8[temp_r25]; i++) { + Vec *temp_r29 = (lbl_1_data_73CC[temp_r25])[i * 3]; + Vec *temp_r31 = *((&lbl_1_data_73CC[temp_r25][i * 3]) + 1); + Vec *temp_r30 = *((&lbl_1_data_73CC[temp_r25][i * 3]) + 2); + s32 j; + for (j = 0; j < lbl_1_data_73F4[temp_r25][i] - 1; j++, temp_r29++, temp_r31++, temp_r30++) { + Vec sp28; + Vec sp1C; + Vec sp10; + float temp_f31; + float temp_f30; + VECSubtract(&temp_r29[1], &temp_r29[0], &sp28); + VECSubtract(&sp34, &temp_r29[1], &sp1C); + VECCrossProduct(&sp28, &sp1C, &sp10); + if (sp10.y < 0.0f) { + continue; + } + VECSubtract(&temp_r31[1], &temp_r29[1], &sp28); + VECSubtract(&sp34, &temp_r31[1], &sp1C); + VECCrossProduct(&sp28, &sp1C, &sp10); + if (sp10.y < 0.0f) { + continue; + } + VECSubtract(&temp_r31[0], &temp_r31[1], &sp28); + VECSubtract(&sp34, &temp_r31[0], &sp1C); + VECCrossProduct(&sp28, &sp1C, &sp10); + if (sp10.y < 0.0f) { + continue; + } + VECSubtract(&temp_r29[0], &temp_r31[0], &sp28); + VECSubtract(&sp34, &temp_r29[0], &sp1C); + VECCrossProduct(&sp28, &sp1C, &sp10); + if (sp10.y < 0.0f) { + continue; + } + VECSubtract(&temp_r29[1], &temp_r29[0], &sp28); + temp_f30 = VECMag2Point(&sp28); + if (0.0f == temp_f30) { + continue; + } + temp_f31 = ((sp34.x * sp28.x) - (temp_r29->x * sp28.x) + (sp34.y * sp28.y) - (temp_r29->y * sp28.y) + (sp34.z * sp28.z) + - (temp_r29->z * sp28.z)) + / temp_f30; + arg3->x = (temp_r31[0].x + temp_r28[arg2].unk4.x) + (temp_f31 * (temp_r31[1].x - temp_r31[0].x)); + arg3->y = (temp_r31[0].y + temp_r28[arg2].unk4.y) + (temp_f31 * (temp_r31[1].y - temp_r31[0].y)); + arg3->z = (temp_r31[0].z + temp_r28[arg2].unk4.z) + (temp_f31 * (temp_r31[1].z - temp_r31[0].z)); + arg4->x = (temp_r30[0].x + temp_r28[arg2].unk4.x) + (temp_f31 * (temp_r30[1].x - temp_r30[0].x)); + arg4->y = (temp_r30[0].y + temp_r28[arg2].unk4.y) + (temp_f31 * (temp_r30[1].y - temp_r30[0].y)); + arg4->z = (temp_r30[0].z + temp_r28[arg2].unk4.z) + (temp_f31 * (temp_r30[1].z - temp_r30[0].z)); + return 1; + } + } + return 0; } void fn_1_6CD0(s32 arg0, s32 arg1); @@ -1797,250 +1661,253 @@ void fn_1_6DEC(omObjData *object); void fn_1_6C08(omObjData *object) { - fn_1_6CD0(0, 0); - object->work[3] = espEntry(0x460015, 32768, 0); - espPosSet(object->work[3], 288, 240); - espDispOff(object->work[3]); - espScaleSet(object->work[3], 2.0f, 2.0f); - espColorSet(object->work[3], 0, 0, 0); - object->func = fn_1_6DEC; + fn_1_6CD0(0, 0); + object->work[3] = espEntry(0x460015, 32768, 0); + espPosSet(object->work[3], 288, 240); + espDispOff(object->work[3]); + espScaleSet(object->work[3], 2.0f, 2.0f); + espColorSet(object->work[3], 0, 0, 0); + object->func = fn_1_6DEC; } void fn_1_6CD0(s32 arg0, s32 arg1) { - CZoomM[arg0] = lbl_1_data_741C[arg1].zoom; - CenterM[arg0].x = lbl_1_data_741C[arg1].pos.x; - CenterM[arg0].y = lbl_1_data_741C[arg1].pos.y; - CenterM[arg0].z = lbl_1_data_741C[arg1].pos.z; - CRotM[arg0].x = lbl_1_data_741C[arg1].rot.x; - CRotM[arg0].y = lbl_1_data_741C[arg1].rot.y; - CRotM[arg0].z = lbl_1_data_741C[arg1].rot.z; + CZoomM[arg0] = lbl_1_data_741C[arg1].zoom; + CenterM[arg0].x = lbl_1_data_741C[arg1].pos.x; + CenterM[arg0].y = lbl_1_data_741C[arg1].pos.y; + CenterM[arg0].z = lbl_1_data_741C[arg1].pos.z; + CRotM[arg0].x = lbl_1_data_741C[arg1].rot.x; + CRotM[arg0].y = lbl_1_data_741C[arg1].rot.y; + CRotM[arg0].z = lbl_1_data_741C[arg1].rot.z; } void fn_1_6DEC(omObjData *object) { - CameraData *camera = &Hu3DCamera[0]; - s32 i; - switch(object->work[0]) { - case 0: - if(fn_1_374() <= 3) { - CRotM[0].y -= 10.0f/60.0f; - } - if(fn_1_374() == 3) { - Hu3DCameraCreate(15); - Hu3DCameraPerspectiveSet(15, 10, 20, 25000, 1.2); - Hu3DCameraViewportSet(1, 0, 0, 320, 240, 0, 1); - Hu3DCameraViewportSet(2, 320, 0, 320, 240, 0, 1); - Hu3DCameraViewportSet(4, 0, 240, 320, 240, 0, 1); - Hu3DCameraViewportSet(8, 320, 240, 320, 240, 0, 1); - Hu3DCameraScissorSet(1, 0, 0, 320, 240); - Hu3DCameraScissorSet(2, 320, 0, 640, 240); - Hu3DCameraScissorSet(4, 0, 240, 320, 480); - Hu3DCameraScissorSet(8, 320, 240, 640, 480); - for(i=0; i<4; i++) { - fn_1_6CD0(i, 1); - } - lbl_1_bss_168->work[0] = 4; - object->work[0]++; - espDispOn(object->work[3]); - } - break; - } + CameraData *camera = &Hu3DCamera[0]; + s32 i; + switch (object->work[0]) { + case 0: + if (fn_1_374() <= 3) { + CRotM[0].y -= 10.0f / 60.0f; + } + if (fn_1_374() == 3) { + Hu3DCameraCreate(15); + Hu3DCameraPerspectiveSet(15, 10, 20, 25000, 1.2); + Hu3DCameraViewportSet(1, 0, 0, 320, 240, 0, 1); + Hu3DCameraViewportSet(2, 320, 0, 320, 240, 0, 1); + Hu3DCameraViewportSet(4, 0, 240, 320, 240, 0, 1); + Hu3DCameraViewportSet(8, 320, 240, 320, 240, 0, 1); + Hu3DCameraScissorSet(1, 0, 0, 320, 240); + Hu3DCameraScissorSet(2, 320, 0, 640, 240); + Hu3DCameraScissorSet(4, 0, 240, 320, 480); + Hu3DCameraScissorSet(8, 320, 240, 640, 480); + for (i = 0; i < 4; i++) { + fn_1_6CD0(i, 1); + } + lbl_1_bss_168->work[0] = 4; + object->work[0]++; + espDispOn(object->work[3]); + } + break; + } } float fn_1_7190(float arg0, float arg1, float arg2, float arg3) { - float temp_f31 = 1.0f-arg3; - return (arg0*(temp_f31*temp_f31))+((2.0f*temp_f31)*arg3*arg1)+(arg2*(arg3*arg3)); - + float temp_f31 = 1.0f - arg3; + return (arg0 * (temp_f31 * temp_f31)) + ((2.0f * temp_f31) * arg3 * arg1) + (arg2 * (arg3 * arg3)); } void fn_1_71EC(Vec *arg0, Vec *arg1, float arg2) { - arg1->x = fn_1_7190(arg0[0].x, arg0[1].x, arg0[2].x, arg2); - arg1->y = fn_1_7190(arg0[0].y, arg0[1].y, arg0[2].y, arg2); - arg1->z = fn_1_7190(arg0[0].z, arg0[1].z, arg0[2].z, arg2); + arg1->x = fn_1_7190(arg0[0].x, arg0[1].x, arg0[2].x, arg2); + arg1->y = fn_1_7190(arg0[0].y, arg0[1].y, arg0[2].y, arg2); + arg1->z = fn_1_7190(arg0[0].z, arg0[1].z, arg0[2].z, arg2); } void fn_1_7578(s16 layer); void fn_1_73F4(Process *objman) { - s32 i; - s32 dataSize = Hu3DShadowData.unk_02*Hu3DShadowData.unk_02; - lbl_1_bss_128 = objman; - for(i=0; i<3; i++) { - lbl_1_bss_11C[i] = HuMemDirectMallocNum(HEAP_SYSTEM, dataSize, MEMORY_DEFAULT_NUM); - memset(lbl_1_bss_11C[i], 0, dataSize); - lbl_1_bss_D4[i].x = Hu3DShadowData.unk_20.x; - lbl_1_bss_D4[i].y = Hu3DShadowData.unk_20.y; - lbl_1_bss_D4[i].z = Hu3DShadowData.unk_20.z; - lbl_1_bss_F8[i].x = Hu3DShadowData.unk_14.x; - lbl_1_bss_F8[i].y = Hu3DShadowData.unk_14.y; - lbl_1_bss_F8[i].z = Hu3DShadowData.unk_14.z; - } - Hu3DLayerHookSet(0, fn_1_7578); - + s32 i; + s32 dataSize = Hu3DShadowData.unk_02 * Hu3DShadowData.unk_02; + lbl_1_bss_128 = objman; + for (i = 0; i < 3; i++) { + lbl_1_bss_11C[i] = HuMemDirectMallocNum(HEAP_SYSTEM, dataSize, MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_11C[i], 0, dataSize); + lbl_1_bss_D4[i].x = Hu3DShadowData.unk_20.x; + lbl_1_bss_D4[i].y = Hu3DShadowData.unk_20.y; + lbl_1_bss_D4[i].z = Hu3DShadowData.unk_20.z; + lbl_1_bss_F8[i].x = Hu3DShadowData.unk_14.x; + lbl_1_bss_F8[i].y = Hu3DShadowData.unk_14.y; + lbl_1_bss_F8[i].z = Hu3DShadowData.unk_14.z; + } + Hu3DLayerHookSet(0, fn_1_7578); } void fn_1_77E4(s32 shadowNo); void fn_1_7578(s16 layer) { - omObjData **playerList; - s32 i; - s32 dataSize = Hu3DShadowData.unk_02*Hu3DShadowData.unk_02; - if(fn_1_374() < 3) { - return; - } - if(Hu3DCameraNo == 0) { - WorkD0C *playerWork; - GXDrawDone(); - playerList = omGetGroupMemberListEx(lbl_1_bss_128, 0); - if(Hu3DData[playerList[0]->model[0]].attr & 0x4) { - Hu3DModelShadowReset(playerList[0]->model[0]); - } - for(i=0; i<3; i++) { - playerWork = playerList[i+1]->data; - if(playerWork->unk0_field3) { - Hu3DModelShadowSet(playerList[i+1]->model[0]); - } - fn_1_77E4(i); - GXDrawDone(); - DCFlushRangeNoSync(lbl_1_bss_11C[i], dataSize); - if(playerWork->unk0_field3) { - Hu3DModelShadowReset(playerList[i+1]->model[0]); - } - } - playerWork = playerList[0]->data; - if(playerWork->unk0_field3) { - Hu3DModelShadowSet(playerList[0]->model[0]); - } else { - memset(Hu3DShadowData.unk_04, 0, dataSize); - DCFlushRangeNoSync(Hu3DShadowData.unk_04, dataSize); - } - if(Hu3DShadowCamBit < 1) { - Hu3DShadowCamBit = 1; - } - } else { - MTXCopy(lbl_1_bss_44[Hu3DCameraNo-1], Hu3DShadowData.unk_38); - memcpy(Hu3DShadowData.unk_04, lbl_1_bss_11C[Hu3DCameraNo-1], dataSize); - DCFlushRangeNoSync(Hu3DShadowData.unk_04, dataSize); - } + omObjData **playerList; + s32 i; + s32 dataSize = Hu3DShadowData.unk_02 * Hu3DShadowData.unk_02; + if (fn_1_374() < 3) { + return; + } + if (Hu3DCameraNo == 0) { + WorkD0C *playerWork; + GXDrawDone(); + playerList = omGetGroupMemberListEx(lbl_1_bss_128, 0); + if (Hu3DData[playerList[0]->model[0]].attr & 0x4) { + Hu3DModelShadowReset(playerList[0]->model[0]); + } + for (i = 0; i < 3; i++) { + playerWork = playerList[i + 1]->data; + if (playerWork->unk0_field3) { + Hu3DModelShadowSet(playerList[i + 1]->model[0]); + } + fn_1_77E4(i); + GXDrawDone(); + DCFlushRangeNoSync(lbl_1_bss_11C[i], dataSize); + if (playerWork->unk0_field3) { + Hu3DModelShadowReset(playerList[i + 1]->model[0]); + } + } + playerWork = playerList[0]->data; + if (playerWork->unk0_field3) { + Hu3DModelShadowSet(playerList[0]->model[0]); + } + else { + memset(Hu3DShadowData.unk_04, 0, dataSize); + DCFlushRangeNoSync(Hu3DShadowData.unk_04, dataSize); + } + if (Hu3DShadowCamBit < 1) { + Hu3DShadowCamBit = 1; + } + } + else { + MTXCopy(lbl_1_bss_44[Hu3DCameraNo - 1], Hu3DShadowData.unk_38); + memcpy(Hu3DShadowData.unk_04, lbl_1_bss_11C[Hu3DCameraNo - 1], dataSize); + DCFlushRangeNoSync(Hu3DShadowData.unk_04, dataSize); + } } void fn_1_77E4(s32 shadowNo) { - ModelData *model; - s32 dataSize; - s16 i; - Mtx transform[3]; - Mtx44 proj; - GXColor clearColor = { 0, 0, 0, 0 }; - - Hu3DDrawPreInit(); - GXSetCopyClear(clearColor, 0xFFFFFF); - MTXPerspective(proj, Hu3DShadowData.unk_08.x, 1.2f, Hu3DShadowData.unk_08.y, Hu3DShadowData.unk_08.z); - GXSetProjection(proj, GX_PERSPECTIVE); - if(Hu3DShadowData.unk_02 <= 240) { - GXSetScissor(2, 2, (Hu3DShadowData.unk_02*2)-4, (Hu3DShadowData.unk_02*2)-4); - GXSetViewport(0, 0, Hu3DShadowData.unk_02*2, Hu3DShadowData.unk_02*2, 0, 1); - dataSize = (Hu3DShadowData.unk_02/2)*(Hu3DShadowData.unk_02/2); - } else { - GXSetScissor(1, 1, Hu3DShadowData.unk_02-2, Hu3DShadowData.unk_02-2); - GXSetViewport(0, 0, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 0, 1); - dataSize = Hu3DShadowData.unk_02*Hu3DShadowData.unk_02; - } - MTXLookAt(Hu3DCameraMtx, &lbl_1_bss_F8[shadowNo], &Hu3DShadowData.unk_2C, &lbl_1_bss_D4[shadowNo]); - MTXCopy(Hu3DCameraMtx, lbl_1_bss_44[shadowNo]); - model = &Hu3DData[0]; - shadowModelDrawF = 1; - GXInvalidateTexAll(); - GXSetFog(0, 0, 0, 0, 0, BGColor); - for(i=0; i<512; i++, model++) { - s32 clusterF; - if(model->hsfData && (model->attr & 0x4) && (model->attr & 0x1) == 0 && (model->attr & 0x8000) == 0) { - if(model->attr & 0x8) { - clusterF = 0; - if(model->unk_08 != -1) { - Hu3DMotionExec(i, model->unk_08, model->unk_64, 0); - } - if(model->unk_0C != -1) { - Hu3DSubMotionExec(i); - } - if(model->unk_0A != -1) { - Hu3DMotionExec(i, model->unk_0A, model->unk_74, 1); - } - if(model->attr & 0x400) { - ClusterMotionExec(model); - clusterF = 1; - } - if(model->unk_0E != -1) { - if(model->unk_08 == -1) { - Hu3DMotionExec(i, model->unk_0E, model->unk_94, 0); - } else { - Hu3DMotionExec(i, model->unk_0E, model->unk_94, 1); - } - } - if((model->attr & 0x90) == 0 || (model->motion_attr & 0x40000002) == 0) { - clusterF = 1; - InitVtxParm(model->hsfData); - if(model->unk_0E != -1) { - ShapeProc(model->hsfData); - } - if(model->attr & 0x400) { - ClusterProc(model); - } - if(model->hsfData->cenvCnt) { - EnvelopeProc(model->hsfData); - } - PPCSync(); - } - model->attr |= 0x800; - } - mtxRot(transform[0], model->rot.x, model->rot.y, model->rot.z); - MTXScale(transform[2], model->scale.x, model->scale.y, model->scale.z); - MTXConcat(transform[0], transform[2], transform[2]); - mtxTransCat(transform[2], model->pos.x, model->pos.y, model->pos.z); - MTXConcat(Hu3DCameraMtx, transform[2], transform[1]); - MTXConcat(transform[1], model->unk_F0, transform[1]); - Hu3DDraw(model, transform[1], &model->scale); - } - } - Hu3DDrawPost(); - shadowModelDrawF = 0; - if(Hu3DShadowData.unk_02 <= 240) { - GXSetTexCopySrc(0, 0, Hu3DShadowData.unk_02*2, Hu3DShadowData.unk_02*2); - GXSetTexCopyDst(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_CTF_R8, GX_TRUE); - } else { - GXSetTexCopySrc(0, 0, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02); - GXSetTexCopyDst(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_CTF_R8, GX_FALSE); - } - GXCopyTex(lbl_1_bss_11C[shadowNo], GX_TRUE); - GXSetViewport(0, 0, RenderMode->fbWidth, RenderMode->xfbHeight, 0, 1); - GXSetScissor(0, 0, RenderMode->fbWidth, RenderMode->efbHeight); - MTXOrtho(proj, 0, 1, 0, 1, 0, 1); - GXSetProjection(proj, GX_ORTHOGRAPHIC); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_U8, 0); - GXSetTevColor(GX_TEVREG0, BGColor); - GXSetNumTexGens(0); - GXSetNumTevStages(1); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetNumChans(0); - MTXIdentity(transform[1]); - GXLoadPosMtxImm(transform[1], GX_PNMTX0); - GXSetZMode(GX_FALSE, GX_ALWAYS, GX_TRUE); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3u8(0, 0, 0); - GXPosition3u8(1, 0, 0); - GXPosition3u8(1, 1, 0); - GXPosition3u8(0, 1, 0); + ModelData *model; + s32 dataSize; + s16 i; + Mtx transform[3]; + Mtx44 proj; + GXColor clearColor = { 0, 0, 0, 0 }; + + Hu3DDrawPreInit(); + GXSetCopyClear(clearColor, 0xFFFFFF); + MTXPerspective(proj, Hu3DShadowData.unk_08.x, 1.2f, Hu3DShadowData.unk_08.y, Hu3DShadowData.unk_08.z); + GXSetProjection(proj, GX_PERSPECTIVE); + if (Hu3DShadowData.unk_02 <= 240) { + GXSetScissor(2, 2, (Hu3DShadowData.unk_02 * 2) - 4, (Hu3DShadowData.unk_02 * 2) - 4); + GXSetViewport(0, 0, Hu3DShadowData.unk_02 * 2, Hu3DShadowData.unk_02 * 2, 0, 1); + dataSize = (Hu3DShadowData.unk_02 / 2) * (Hu3DShadowData.unk_02 / 2); + } + else { + GXSetScissor(1, 1, Hu3DShadowData.unk_02 - 2, Hu3DShadowData.unk_02 - 2); + GXSetViewport(0, 0, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 0, 1); + dataSize = Hu3DShadowData.unk_02 * Hu3DShadowData.unk_02; + } + MTXLookAt(Hu3DCameraMtx, &lbl_1_bss_F8[shadowNo], &Hu3DShadowData.unk_2C, &lbl_1_bss_D4[shadowNo]); + MTXCopy(Hu3DCameraMtx, lbl_1_bss_44[shadowNo]); + model = &Hu3DData[0]; + shadowModelDrawF = 1; + GXInvalidateTexAll(); + GXSetFog(0, 0, 0, 0, 0, BGColor); + for (i = 0; i < 512; i++, model++) { + s32 clusterF; + if (model->hsfData && (model->attr & 0x4) && (model->attr & 0x1) == 0 && (model->attr & 0x8000) == 0) { + if (model->attr & 0x8) { + clusterF = 0; + if (model->unk_08 != -1) { + Hu3DMotionExec(i, model->unk_08, model->unk_64, 0); + } + if (model->unk_0C != -1) { + Hu3DSubMotionExec(i); + } + if (model->unk_0A != -1) { + Hu3DMotionExec(i, model->unk_0A, model->unk_74, 1); + } + if (model->attr & 0x400) { + ClusterMotionExec(model); + clusterF = 1; + } + if (model->unk_0E != -1) { + if (model->unk_08 == -1) { + Hu3DMotionExec(i, model->unk_0E, model->unk_94, 0); + } + else { + Hu3DMotionExec(i, model->unk_0E, model->unk_94, 1); + } + } + if ((model->attr & 0x90) == 0 || (model->motion_attr & 0x40000002) == 0) { + clusterF = 1; + InitVtxParm(model->hsfData); + if (model->unk_0E != -1) { + ShapeProc(model->hsfData); + } + if (model->attr & 0x400) { + ClusterProc(model); + } + if (model->hsfData->cenvCnt) { + EnvelopeProc(model->hsfData); + } + PPCSync(); + } + model->attr |= 0x800; + } + mtxRot(transform[0], model->rot.x, model->rot.y, model->rot.z); + MTXScale(transform[2], model->scale.x, model->scale.y, model->scale.z); + MTXConcat(transform[0], transform[2], transform[2]); + mtxTransCat(transform[2], model->pos.x, model->pos.y, model->pos.z); + MTXConcat(Hu3DCameraMtx, transform[2], transform[1]); + MTXConcat(transform[1], model->unk_F0, transform[1]); + Hu3DDraw(model, transform[1], &model->scale); + } + } + Hu3DDrawPost(); + shadowModelDrawF = 0; + if (Hu3DShadowData.unk_02 <= 240) { + GXSetTexCopySrc(0, 0, Hu3DShadowData.unk_02 * 2, Hu3DShadowData.unk_02 * 2); + GXSetTexCopyDst(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_CTF_R8, GX_TRUE); + } + else { + GXSetTexCopySrc(0, 0, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02); + GXSetTexCopyDst(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_CTF_R8, GX_FALSE); + } + GXCopyTex(lbl_1_bss_11C[shadowNo], GX_TRUE); + GXSetViewport(0, 0, RenderMode->fbWidth, RenderMode->xfbHeight, 0, 1); + GXSetScissor(0, 0, RenderMode->fbWidth, RenderMode->efbHeight); + MTXOrtho(proj, 0, 1, 0, 1, 0, 1); + GXSetProjection(proj, GX_ORTHOGRAPHIC); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_U8, 0); + GXSetTevColor(GX_TEVREG0, BGColor); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(0); + MTXIdentity(transform[1]); + GXLoadPosMtxImm(transform[1], GX_PNMTX0); + GXSetZMode(GX_FALSE, GX_ALWAYS, GX_TRUE); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3u8(0, 0, 0); + GXPosition3u8(1, 0, 0); + GXPosition3u8(1, 1, 0); + GXPosition3u8(0, 1, 0); } diff --git a/src/REL/m440Dll/main.c b/src/REL/m440Dll/main.c index a8b56af9..0ac4613e 100644 --- a/src/REL/m440Dll/main.c +++ b/src/REL/m440Dll/main.c @@ -1,28 +1,28 @@ #include "REL/m440Dll.h" -#include "rel_sqrt_consts.h" -#include "math.h" #include "ext_math.h" -#include "string.h" +#include "game/audio.h" #include "game/frand.h" #include "game/hsfdraw.h" #include "game/hsfmotion.h" -#include "game/wipe.h" -#include "game/audio.h" -#include "game/objsub.h" #include "game/minigame_seq.h" -#include "game/sprite.h" -#include "game/printfunc.h" +#include "game/objsub.h" #include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/wipe.h" +#include "math.h" +#include "rel_sqrt_consts.h" +#include "string.h" // bss -omObjData* lbl_1_bss_6C; -omObjData* lbl_1_bss_68; -unkStruct6* lbl_1_bss_64; +omObjData *lbl_1_bss_6C; +omObjData *lbl_1_bss_68; +unkStruct6 *lbl_1_bss_64; s16 lbl_1_bss_60; Mtx lbl_1_bss_30; s16 lbl_1_bss_2C; -void* lbl_1_bss_28; +void *lbl_1_bss_28; u32 lbl_1_bss_24; s16 lbl_1_bss_10[10]; s16 lbl_1_bss_E; @@ -42,10 +42,7 @@ s16 lbl_1_data_14[6] = { 1, 1, 1, 1, 1 }; Vec lbl_1_data_20 = { 0.0f, 0.0f, 0.0f }; Vec lbl_1_data_2C = { 800.0f, 1300.0f, 1000.0f }; Vec lbl_1_data_38 = { 0.0f, 0.0f, 0.0f }; -unkStruct7 lbl_1_data_44 = { - 0xFF, 0xFF, 0xFF, 0xFF, - 10.0f, 45.0f, 0.0f -}; +unkStruct7 lbl_1_data_44 = { 0xFF, 0xFF, 0xFF, 0xFF, 10.0f, 45.0f, 0.0f }; Vec lbl_1_data_54 = { 1300.0f, 2500.0f, 1300.0f }; Vec lbl_1_data_60 = { 0.0f, 1.0f, 0.0f }; Vec lbl_1_data_6C = { 0.0f, 0.0f, -500.0f }; @@ -55,10 +52,11 @@ unkStruct lbl_1_data_78[3] = { { 1040.0f, { 200.0f, 21.0f, 0.0f }, { -6.0f, 0.0f, 0.0f } }, }; -void ObjectSetup(void) { +void ObjectSetup(void) +{ Vec sp8; - LightData* var_r30; - Process* var_r31; + LightData *var_r30; + Process *var_r31; Hu3DLightAllKill(); lbl_1_bss_E = Hu3DGLightCreateV(&lbl_1_data_2C, &lbl_1_data_38, &lbl_1_data_44.unk0); @@ -91,14 +89,16 @@ void ObjectSetup(void) { fn_1_AE08(var_r31); } -void fn_1_3C4(omObjData* object) { +void fn_1_3C4(omObjData *object) +{ if ((omSysExitReq != 0) || (lbl_1_bss_0 != 0)) { WipeCreate(2, 0, 0x3C); object->func = &fn_1_434; } } -void fn_1_434(omObjData* object) { +void fn_1_434(omObjData *object) +{ if ((WipeStatGet() == 0) && (MGSeqDoneCheck() != 0)) { HuMemDirectFree(lbl_1_bss_64); fn_1_9AB0(lbl_1_bss_10[0]); @@ -108,7 +108,8 @@ void fn_1_434(omObjData* object) { } } -s32 fn_1_4A4(void) { +s32 fn_1_4A4(void) +{ f32 var_f31; unkStruct *var_r31; s32 var_r30; @@ -122,7 +123,7 @@ s32 fn_1_4A4(void) { var_f31 = 1.0f; var_r30 = 1; } - + var_f31 = (sin((M_PI * (90.0f * var_f31)) / 180.0) * sin((M_PI * (90.0f * var_f31)) / 180.0)); CZoom = fn_1_93C0(var_r31[0].zoom, var_r31[1].zoom, var_f31); Center.x = fn_1_93C0(var_r31[0].center.x, var_r31[1].center.x, var_f31); @@ -134,7 +135,8 @@ s32 fn_1_4A4(void) { return var_r30; } -s32 fn_1_6C8(void) { +s32 fn_1_6C8(void) +{ f32 var_f31; unkStruct *var_r31; s32 var_r30; @@ -148,7 +150,7 @@ s32 fn_1_6C8(void) { var_f31 = 1.0f; var_r30 = 1; } - + var_f31 = (sin((M_PI * (90.0f * var_f31)) / 180.0) * sin((M_PI * (90.0f * var_f31)) / 180.0)); CZoom = fn_1_93C0(var_r31[0].zoom, var_r31[1].zoom, var_f31); Center.x = fn_1_93C0(var_r31[0].center.x, var_r31[1].center.x, var_f31); @@ -160,38 +162,40 @@ s32 fn_1_6C8(void) { return var_r30; } -void fn_1_8F0(omObjData* arg0) { +void fn_1_8F0(omObjData *arg0) +{ s16 var_r30; - unkStruct2* temp_r31; + unkStruct2 *temp_r31; AnimData *anim; - arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10, 0x10000000); - temp_r31 = (unkStruct2*)arg0->data; + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10, MEMORY_DEFAULT_NUM); + temp_r31 = (unkStruct2 *)arg0->data; temp_r31->unk0 = 1; temp_r31->unk4 = -1; temp_r31->unk8 = -1; temp_r31->unk6 = 0x12C; temp_r31->unkA = 0; temp_r31->unkC = -1; - + for (var_r30 = 1; var_r30 < 4; var_r30++) { - lbl_1_bss_10[var_r30] = Hu3DModelCreate(HuDataSelHeapReadNum(0x47000A, 0x10000000, HEAP_DATA)); + lbl_1_bss_10[var_r30] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x0A)); Hu3DModelAttrSet(lbl_1_bss_10[var_r30], 1); Hu3DModelAttrSet(lbl_1_bss_10[var_r30], 0x40000002); Hu3DModelLayerSet(lbl_1_bss_10[var_r30], 7); Hu3DModelScaleSet(lbl_1_bss_10[var_r30], 3.0f, 3.0f, 3.0f); } - - anim = HuSprAnimRead(HuDataReadNum(0x47000B, 0x10000000)); + + anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M440, 0x0B), MEMORY_DEFAULT_NUM)); lbl_1_bss_10[0] = fn_1_956C(anim, 0x40, 50.0f, 0x40, 0x40); fn_1_9B94(lbl_1_bss_10[0], fn_1_2240); Hu3DModelLayerSet(lbl_1_bss_10[0], 7); arg0->func = &fn_1_AE0; } -void fn_1_AE0(omObjData* arg0) { +void fn_1_AE0(omObjData *arg0) +{ f32 temp_f31; - unkStruct2* temp_r31; + unkStruct2 *temp_r31; temp_r31 = arg0->data; switch (fn_1_23E4(7)) { @@ -200,7 +204,8 @@ void fn_1_AE0(omObjData* arg0) { WipeCreate(1, 0, 0x3C); lbl_1_bss_A = 1; } - if (WipeStatGet() != 0) break; + if (WipeStatGet() != 0) + break; fn_1_2428(7, 2); break; case 2: @@ -225,7 +230,8 @@ void fn_1_AE0(omObjData* arg0) { temp_r31->unkA = 0; return; } - } else { + } + else { Center.x = lbl_1_data_78[1].center.x; Center.y = lbl_1_data_78[1].center.y; Center.z = lbl_1_data_78[1].center.z; @@ -245,9 +251,10 @@ void fn_1_AE0(omObjData* arg0) { } } -u8 fn_1_E14(omObjData* arg0) { +u8 fn_1_E14(omObjData *arg0) +{ f32 var_f31; - unkStruct* var_r31; + unkStruct *var_r31; u8 var_r30; switch (lbl_1_bss_6) { @@ -292,83 +299,86 @@ u8 fn_1_E14(omObjData* arg0) { return 0; } -u8 fn_1_1138(omObjData* object) { - unkStruct2* sp8; +u8 fn_1_1138(omObjData *object) +{ + unkStruct2 *sp8; f32 var_f31; f32 var_f30; s16 temp_r29; u8 var_r28; - unkStruct3* temp_r30; - unkStruct* var_r31; + unkStruct3 *temp_r30; + unkStruct *var_r31; - sp8 = (unkStruct2*)lbl_1_bss_6C->data; + sp8 = (unkStruct2 *)lbl_1_bss_6C->data; temp_r29 = fn_1_F0FC(); - temp_r30 = (unkStruct3*)lbl_1_bss_C0[temp_r29]->data; + temp_r30 = (unkStruct3 *)lbl_1_bss_C0[temp_r29]->data; switch (lbl_1_bss_6) { - case 0: - if (lbl_1_bss_8 == 0) { - Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[1], 0.0f, 7.0f, 0x40000001); - temp_r30->unk40 = temp_r30->unk34; - } - lbl_1_bss_8++; - var_f30 = lbl_1_bss_8 / 30.0f; - if (var_f30 >= 1.0f) { - var_f30 = 1.0f; - if (lbl_1_bss_B == 0) { - lbl_1_bss_B = 1; - Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[0], 0.0f, 7.0f, 0x40000001); + case 0: + if (lbl_1_bss_8 == 0) { + Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[1], 0.0f, 7.0f, 0x40000001); + temp_r30->unk40 = temp_r30->unk34; } - } - temp_r30->unk34 = (temp_r30->unk40 + (var_f30 * (360.0f - temp_r30->unk40))); - var_r31 = &lbl_1_data_78[1]; // could be fn_1_6C8 - var_r28 = 0; - lbl_1_bss_4++; - var_f31 = lbl_1_bss_4 / 120.0f; - if (var_f31 > 1.0f) { - lbl_1_bss_4 = 0; - var_f31 = 1.0f; - var_r28 = 1; - } - var_f31 = (sin((M_PI * (90.0f * var_f31)) / 180.0) * sin((M_PI * (90.0f * var_f31)) / 180.0)); - CZoom = fn_1_93C0(var_r31[0].zoom, var_r31[1].zoom, var_f31); - Center.x = fn_1_93C0(var_r31[0].center.x, var_r31[1].center.x, var_f31); - Center.y = fn_1_93C0(var_r31[0].center.y, var_r31[1].center.y, var_f31); - Center.z = fn_1_93C0(var_r31[0].center.z, var_r31[1].center.z, var_f31); - CRot.x = fn_1_93C0(var_r31[0].rot.x, var_r31[1].rot.x, var_f31); - CRot.y = fn_1_93C0(var_r31[0].rot.y, var_r31[1].rot.y, var_f31); - CRot.z = fn_1_93C0(var_r31[0].rot.z, var_r31[1].rot.z, var_f31); - if (var_r28 != 0) { - lbl_1_bss_8 = 0; + lbl_1_bss_8++; + var_f30 = lbl_1_bss_8 / 30.0f; + if (var_f30 >= 1.0f) { + var_f30 = 1.0f; + if (lbl_1_bss_B == 0) { + lbl_1_bss_B = 1; + Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[0], 0.0f, 7.0f, 0x40000001); + } + } + temp_r30->unk34 = (temp_r30->unk40 + (var_f30 * (360.0f - temp_r30->unk40))); + var_r31 = &lbl_1_data_78[1]; // could be fn_1_6C8 + var_r28 = 0; + lbl_1_bss_4++; + var_f31 = lbl_1_bss_4 / 120.0f; + if (var_f31 > 1.0f) { + lbl_1_bss_4 = 0; + var_f31 = 1.0f; + var_r28 = 1; + } + var_f31 = (sin((M_PI * (90.0f * var_f31)) / 180.0) * sin((M_PI * (90.0f * var_f31)) / 180.0)); + CZoom = fn_1_93C0(var_r31[0].zoom, var_r31[1].zoom, var_f31); + Center.x = fn_1_93C0(var_r31[0].center.x, var_r31[1].center.x, var_f31); + Center.y = fn_1_93C0(var_r31[0].center.y, var_r31[1].center.y, var_f31); + Center.z = fn_1_93C0(var_r31[0].center.z, var_r31[1].center.z, var_f31); + CRot.x = fn_1_93C0(var_r31[0].rot.x, var_r31[1].rot.x, var_f31); + CRot.y = fn_1_93C0(var_r31[0].rot.y, var_r31[1].rot.y, var_f31); + CRot.z = fn_1_93C0(var_r31[0].rot.z, var_r31[1].rot.z, var_f31); + if (var_r28 != 0) { + lbl_1_bss_8 = 0; + lbl_1_bss_6++; + } + break; + case 1: + Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[5], 0.0f, 7.0f, 0); + HuAudSStreamPlay(1); lbl_1_bss_6++; - } - break; - case 1: - Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[5], 0.0f, 7.0f, 0); - HuAudSStreamPlay(1); - lbl_1_bss_6++; - lbl_1_bss_8 = 0; - break; - case 2: - if (++lbl_1_bss_8 > 210.0f) { - lbl_1_bss_6 = 0; - return 1; - } - break; + lbl_1_bss_8 = 0; + break; + case 2: + if (++lbl_1_bss_8 > 210.0f) { + lbl_1_bss_6 = 0; + return 1; + } + break; } return 0; } -void fn_1_16D8(void) { - unkStruct2* temp_r31; +void fn_1_16D8(void) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_6C->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; temp_r31->unk6--; } -void fn_1_1708(void) { - unkStruct2* temp_r31; +void fn_1_1708(void) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_6C->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; if (temp_r31->unk8 != -1) { MGSeqParamSet(temp_r31->unk8, 2, -1); temp_r31->unk8 = -1; @@ -376,72 +386,82 @@ void fn_1_1708(void) { } } -void fn_1_1768(void) { - unkStruct2* temp_r31; +void fn_1_1768(void) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_6C->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; if (temp_r31->unk8 == -1) { temp_r31->unk6 = 0x12C; temp_r31->unk8 = MGSeqCreate(1, 5, -1, -1); } } -s16 fn_1_17CC(void) { - unkStruct2* var_r31; +s16 fn_1_17CC(void) +{ + unkStruct2 *var_r31; - var_r31 = (unkStruct2*)lbl_1_bss_6C->data; + var_r31 = (unkStruct2 *)lbl_1_bss_6C->data; return var_r31->unk6; } -s16 fn_1_17F4(void) { - unkStruct2* var_r31; +s16 fn_1_17F4(void) +{ + unkStruct2 *var_r31; - var_r31 = (unkStruct2*)lbl_1_bss_6C->data; + var_r31 = (unkStruct2 *)lbl_1_bss_6C->data; return var_r31->unk8; } -void fn_1_181C(void) { - unkStruct2* temp_r31; +void fn_1_181C(void) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_6C->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; if (temp_r31->unk4 == -1) { temp_r31->unk4 = MGSeqCreate(3, 0); MGSeqPosSet(temp_r31->unk4, 320.0f, 240.0f); } } -u8 fn_1_1890(void) { - unkStruct2* temp_r31; +u8 fn_1_1890(void) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_6C->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; if (temp_r31->unk4 != -1) { return MGSeqStatGet(temp_r31->unk4); - } else { + } + else { return 0; } } -void fn_1_18E0(void) { - unkStruct2* temp_r31; +void fn_1_18E0(void) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_6C->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; temp_r31->unk4 = MGSeqCreate(3, 1); MGSeqPosSet(temp_r31->unk4, 320.0f, 240.0f); HuAudSeqFadeOut(temp_r31->unkC, 0x64); } -u8 fn_1_1954(void) { - unkStruct2* sp8; +u8 fn_1_1954(void) +{ + unkStruct2 *sp8; - sp8 = (unkStruct2*)lbl_1_bss_6C->data; + sp8 = (unkStruct2 *)lbl_1_bss_6C->data; if ((lbl_1_bss_2 != 0) || (lbl_1_bss_1 != 0)) { return 0; - } else { + } + else { return 1; } } -void fn_1_19B0(void) { +void fn_1_19B0(void) +{ f32 temp_f29; f32 var_f28; f32 var_f27; @@ -450,11 +470,11 @@ void fn_1_19B0(void) { s16 var_r31; var_f30 = (((rand8() << 8) | rand8()) % 361); - - for (var_r31 = 1; var_r31 < 4; var_r31++, var_f30+=120.0f) { + + for (var_r31 = 1; var_r31 < 4; var_r31++, var_f30 += 120.0f) { temp_f31 = 0.01f * ((((rand8() << 8) | rand8()) % 51) + 50); temp_f29 = (temp_f31 * (200.0 * sind(var_f30))); - var_f28 = (temp_f31 * (200.0 * cosd(var_f30))); + var_f28 = (temp_f31 * (200.0 * cosd(var_f30))); var_f27 = 0.0f; Hu3DModelPosSet(lbl_1_bss_10[var_r31], temp_f29, 300.0f + var_f28, var_f27); temp_f31 = 0.1f * ((((rand8() << 8) | rand8()) % 11) + 25); @@ -464,9 +484,10 @@ void fn_1_19B0(void) { } } -void fn_1_1CAC(void) { +void fn_1_1CAC(void) +{ s16 var_r31; - + for (var_r31 = 1; var_r31 < 4; var_r31++) { Hu3DMotionTimeSet(lbl_1_bss_10[var_r31], 0.0f); Hu3DModelAttrSet(lbl_1_bss_10[var_r31], 1); @@ -474,7 +495,8 @@ void fn_1_1CAC(void) { } } -void fn_1_1D54(f32 arg8, f32 arg9, f32 argA, s16 arg0, f32 argB, s16 arg1) { +void fn_1_1D54(f32 arg8, f32 arg9, f32 argA, s16 arg0, f32 argB, s16 arg1) +{ Vec sp30; Vec sp24; GXColor sp1E; @@ -482,8 +504,8 @@ void fn_1_1D54(f32 arg8, f32 arg9, f32 argA, s16 arg0, f32 argB, s16 arg1) { f32 temp_f29; f32 temp_f31; s16 var_r30; - unkStruct4* var_r31; - + unkStruct4 *var_r31; + for (var_r30 = 0; var_r30 < arg0; var_r30++) { temp_f31 = argB + ((((rand8() << 8) | rand8()) % 11) - 5); temp_f30 = sind(temp_f31); @@ -495,8 +517,9 @@ void fn_1_1D54(f32 arg8, f32 arg9, f32 argA, s16 arg0, f32 argB, s16 arg1) { sp1E.r = sp1E.g = sp1E.b = 0xFF; sp1E.a = 0x80; var_r31 = fn_1_942C(arg1, &sp30, &sp24, 0.0f, &sp1E); - if (!var_r31) break; - + if (!var_r31) + break; + var_r31->unk34 = 0; var_r31->unk36 = ((rand8() << 8) | rand8()) % 2 + 2; var_r31->unk0.x = (temp_f30 * (0.1f * ((((rand8() << 8) | rand8()) % 41) + 0x28))); @@ -511,14 +534,15 @@ void fn_1_1D54(f32 arg8, f32 arg9, f32 argA, s16 arg0, f32 argB, s16 arg1) { } } -void fn_1_2240(ModelData* data, unkStruct5* arg1, Mtx arg2) { - unkStruct4* var_r31; - GXColor* var_r30; +void fn_1_2240(ModelData *data, unkStruct5 *arg1, Mtx arg2) +{ + unkStruct4 *var_r31; + GXColor *var_r30; s16 var_r29; var_r31 = arg1->unk18; var_r30 = arg1->unk24; - + for (var_r29 = 0; var_r29 < arg1->unk0; var_r29++, var_r31++, var_r30++) { if (var_r31->unk62 != 0) { var_r31->unk54.x += var_r31->unk0.x; @@ -544,52 +568,55 @@ void fn_1_2240(ModelData* data, unkStruct5* arg1, Mtx arg2) { } } -u16 fn_1_23E4(u16 arg0) { - unkStruct2* temp_r31; +u16 fn_1_23E4(u16 arg0) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_6C->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; if (!temp_r31) { return 0; } return temp_r31->unk0 & arg0; } -void fn_1_2428(u16 arg0, u16 arg1) { - unkStruct2* temp_r31; +void fn_1_2428(u16 arg0, u16 arg1) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_6C->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; temp_r31->unk0 = (temp_r31->unk0 & ~arg0); temp_r31->unk0 = (temp_r31->unk0 | arg1); } -void fn_1_2470(omObjData* arg0) { - ModelData* temp_r29; - HsfObject* temp_r28; +void fn_1_2470(omObjData *arg0) +{ + ModelData *temp_r29; + HsfObject *temp_r28; f32 temp_f31; f32 var_f30; f32 var_f29; s16 temp_r26; s16 var_r30; - unkStruct2* temp_r27; + unkStruct2 *temp_r27; - arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x34, 0x10000000); + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x34, MEMORY_DEFAULT_NUM); temp_r27 = arg0->data; arg0->stat |= 0x100; - arg0->model[0] = Hu3DModelCreateFile(0x470008); - arg0->model[1] = Hu3DModelCreateFile(0x470009); - arg0->model[2] = Hu3DModelCreateFile(0x470000); - arg0->model[3] = Hu3DModelCreateFile(0x470002); - arg0->model[8] = Hu3DModelCreateFile(0x470003); - arg0->model[6] = Hu3DModelCreateFile(0x470004); - arg0->model[4] = Hu3DModelCreateFile(0x470005); - arg0->model[5] = Hu3DModelCreateFile(0x470006); - arg0->model[7] = Hu3DModelCreateFile(0x470007); - temp_r26 = Hu3DModelCreateFile(0x470001); + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x08)); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x09)); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x00)); + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x02)); + arg0->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x03)); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x04)); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x05)); + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x06)); + arg0->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x07)); + temp_r26 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x01)); Hu3DModelAttrSet(arg0->model[0], 0x40000001); Hu3DModelAttrSet(arg0->model[2], 0x20000); Hu3DModelAttrSet(arg0->model[2], 0x40000002); Hu3DModelAttrSet(temp_r26, 1); - + for (var_r30 = 0; var_r30 < 8; var_r30++) { Hu3DModelLayerSet(arg0->model[var_r30], 1); } @@ -598,14 +625,14 @@ void fn_1_2470(omObjData* arg0) { Hu3DModelShadowSet(arg0->model[2]); Hu3DModelShadowSet(arg0->model[3]); Hu3DModelShadowMapSet(arg0->model[0]); - + for (var_r30 = 0; var_r30 < 5; var_r30++) { temp_f31 = (450.0 * cos(M_PI * lbl_1_data_0[var_r30] / 180.0)); var_f29 = (450.0 * sin(M_PI * lbl_1_data_0[var_r30] / 180.0)); - Hu3DModelPosSet(arg0->model[var_r30+4], temp_f31, 0.0f, var_f29); + Hu3DModelPosSet(arg0->model[var_r30 + 4], temp_f31, 0.0f, var_f29); var_f30 = 90.0f - lbl_1_data_0[var_r30]; - Hu3DModelRotSet(arg0->model[var_r30+4], 0.0f, var_f30, 0.0f); - Hu3DMotionSpeedSet(arg0->model[var_r30+4], 0.0f); + Hu3DModelRotSet(arg0->model[var_r30 + 4], 0.0f, var_f30, 0.0f); + Hu3DMotionSpeedSet(arg0->model[var_r30 + 4], 0.0f); } temp_r27->unk0 = 0; temp_r27->unk1C = 5; @@ -614,11 +641,11 @@ void fn_1_2470(omObjData* arg0) { lbl_1_bss_60 = temp_r28->data.childrenCount; lbl_1_bss_64 = HuMemDirectMalloc(HEAP_DATA, lbl_1_bss_60 * 64); OSReport("Koopa Object Count %d\n", temp_r29->hsfData->objectCnt); - + for (var_r30 = 0; var_r30 < lbl_1_bss_60; var_r30++) { lbl_1_bss_64[var_r30].unk20 = 0; } - + for (var_r30 = 0; var_r30 < lbl_1_bss_60; var_r30++) { lbl_1_bss_64[var_r30].unk4 = var_r30; fn_1_5C2C(temp_r26, temp_r28->data.children[var_r30], &lbl_1_bss_64[var_r30], 2); @@ -631,37 +658,40 @@ void fn_1_2470(omObjData* arg0) { arg0->func = &fn_1_2A74; } -void fn_1_2A74(omObjData* object) { +void fn_1_2A74(omObjData *object) +{ fn_1_2AB4(object); fn_1_2CA8(object); fn_1_4660(object); } -void fn_1_2AB4(omObjData* object) { - unkStruct2* sp8; +void fn_1_2AB4(omObjData *object) +{ + unkStruct2 *sp8; + + sp8 = (unkStruct2 *)object->data; - sp8 = (unkStruct2*)object->data; - switch (fn_1_4EA8(0x20)) { case 0x20: fn_1_2B04(object); } } -s16 lbl_1_data_E4[2] = {0, 0}; -s16 lbl_1_data_E8[2] = {0, 0}; -s16 lbl_1_data_EC[2] = {0, 0}; -s16 lbl_1_data_F0[2] = {0, 0}; +s16 lbl_1_data_E4[2] = { 0, 0 }; +s16 lbl_1_data_E8[2] = { 0, 0 }; +s16 lbl_1_data_EC[2] = { 0, 0 }; +s16 lbl_1_data_F0[2] = { 0, 0 }; s32 lbl_1_data_F4[4] = { 20, 60, 100, 140 }; -s16 lbl_1_data_104[2] = {0, 0}; -s16 lbl_1_data_108[2] = {0, 0}; +s16 lbl_1_data_104[2] = { 0, 0 }; +s16 lbl_1_data_108[2] = { 0, 0 }; s16 lbl_1_data_10C[9] = { 0, 3, 1, 0, 2, 3, 1, 3, 2 }; -void fn_1_2B04(omObjData* object) { +void fn_1_2B04(omObjData *object) +{ f32 temp_f31; - unkStruct* temp_r31; + unkStruct *temp_r31; - temp_r31 = (unkStruct*)object->data; + temp_r31 = (unkStruct *)object->data; switch (lbl_1_data_E4[0]) { case 0: lbl_1_data_E8[0]++; @@ -681,11 +711,12 @@ void fn_1_2B04(omObjData* object) { Hu3DModelRotSet(object->model[3], temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z); } -void fn_1_2CA8(omObjData* arg0) { - unkStruct2* sp8; +void fn_1_2CA8(omObjData *arg0) +{ + unkStruct2 *sp8; + + sp8 = (unkStruct2 *)arg0->data; - sp8 = (unkStruct2*)arg0->data; - switch (fn_1_4EA8(7)) { case 1: fn_1_2D28(arg0); @@ -699,11 +730,12 @@ void fn_1_2CA8(omObjData* arg0) { } } -void fn_1_2D28(omObjData* object) { +void fn_1_2D28(omObjData *object) +{ f32 var_f31; - unkStruct* temp_r31; + unkStruct *temp_r31; - temp_r31 = (unkStruct*)object->data; + temp_r31 = (unkStruct *)object->data; switch (lbl_1_data_EC[0]) { case 0x0: temp_r31->center.x = temp_r31->center.z = 0.0f; @@ -713,13 +745,13 @@ void fn_1_2D28(omObjData* object) { Hu3DModelAttrReset(object->model[3], 1); Hu3DModelAttrSet(object->model[3], 0x40000002); Hu3DMotionTimeSet(object->model[3], 0.0f); - lbl_1_data_EC[0] ++; + lbl_1_data_EC[0]++; lbl_1_data_F0[0] = 0; HuAudFXPlay(0x709); HuAudFXPlay(0x711); break; case 0x1: - lbl_1_data_F0[0] ++; + lbl_1_data_F0[0]++; var_f31 = lbl_1_data_F0[0] / 120.0f; if (var_f31 > 1.0f) { var_f31 = 1.0f; @@ -738,7 +770,7 @@ void fn_1_2D28(omObjData* object) { if (lbl_1_data_F0[0] == 0) { HuAudFXPlay(0x713); } - lbl_1_data_F0[0] ++; + lbl_1_data_F0[0]++; var_f31 = lbl_1_data_F0[0] / 60.0f; if (var_f31 > 1.0f) { var_f31 = 1.0f; @@ -795,10 +827,11 @@ void fn_1_2D28(omObjData* object) { return; } -void fn_1_33D4(omObjData* object) { - unkStruct2* sp10; +void fn_1_33D4(omObjData *object) +{ + unkStruct2 *sp10; - sp10 = (unkStruct2*)object->data; + sp10 = (unkStruct2 *)object->data; switch (lbl_1_data_EC[0]) { case 0: fn_1_1D54(30.0f, 500.0f, 200.0f, 12, 135.0f, lbl_1_bss_10[0]); @@ -809,25 +842,26 @@ void fn_1_33D4(omObjData* object) { } } -void fn_1_3DD8(omObjData* object) { - unkStruct* sp8; +void fn_1_3DD8(omObjData *object) +{ + unkStruct *sp8; f32 var_f29; f32 var_f28; f32 var_f27; f32 var_f26; f32 var_f30; f32 var_f31; - unkStruct2* var_r25; - omObjData** var_r24; + unkStruct2 *var_r25; + omObjData **var_r24; s16 var_r29; s16 var_r31; s32 var_r23; - s32* var_r26; - unkStruct2* var_r28; + s32 *var_r26; + unkStruct2 *var_r28; s16 var_r27; - var_r25 = (unkStruct2*)lbl_1_bss_6C->data; - sp8 = (unkStruct*)object->data; + var_r25 = (unkStruct2 *)lbl_1_bss_6C->data; + sp8 = (unkStruct *)object->data; switch (lbl_1_data_EC[0]) { case 0: Hu3DModelAttrReset(object->model[2], 0x40000002); @@ -836,7 +870,8 @@ void fn_1_3DD8(omObjData* object) { case 1: if (++lbl_1_data_F0[0] == 0x1E) { fn_1_4EEC(0x100, 0x100); - } else if (lbl_1_data_F0[0] == 0x32) { + } + else if (lbl_1_data_F0[0] == 0x32) { fn_1_EE78(); } var_f26 = Hu3DMotionMaxTimeGet(object->model[2]); @@ -850,7 +885,7 @@ void fn_1_3DD8(omObjData* object) { lbl_1_data_EC[0]++; HuAudFXPlay(0x70C); } - + for (var_r31 = 0; var_r31 < 4U; var_r31++) { if (lbl_1_data_F0[0] == lbl_1_data_F4[var_r31] * 2) { HuAudFXPlay(0x70D); @@ -859,7 +894,7 @@ void fn_1_3DD8(omObjData* object) { return; case 2: var_f30 = (((rand8() << 8) | rand8()) % 361); - + for (var_r29 = 1; var_r29 < 4; var_r29++, var_f30 += 120.0f) { var_f31 = 0.01f * ((((rand8() << 8) | rand8()) % 51) + 0x32); var_f27 = (var_f31 * (200.0 * sind(var_f30))); @@ -878,7 +913,7 @@ void fn_1_3DD8(omObjData* object) { var_r24 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); for (var_r31 = 0; var_r31 < 4; var_r31++) { if (fn_1_F4FC(var_r31) >= 0) { - var_r28 = (unkStruct2*)var_r24[fn_1_F4FC(var_r31)]->data; + var_r28 = (unkStruct2 *)var_r24[fn_1_F4FC(var_r31)]->data; switch (var_r28->unk0 & 0xF) { case 6: omVibrate(var_r28->unk4, 0x30, 0xC, 0); @@ -909,7 +944,8 @@ void fn_1_3DD8(omObjData* object) { fn_1_4EEC(0x40, 0x40); fn_1_4EEC(7, 1); HuAudFXPlay(0x70E); - } else { + } + else { fn_1_4EEC(7, 2); var_r26 = lbl_1_bss_6C->data; var_r26[0] &= 0xFFFFFFF8; @@ -920,7 +956,8 @@ void fn_1_3DD8(omObjData* object) { } } -void fn_1_4558(omObjData* object) { +void fn_1_4558(omObjData *object) +{ s16 var_r31; for (var_r31 = 0; var_r31 < lbl_1_bss_60; var_r31++) { @@ -928,21 +965,23 @@ void fn_1_4558(omObjData* object) { } } -void fn_1_45BC(omObjData* object) { +void fn_1_45BC(omObjData *object) +{ Vec sp8; s16 var_r31; sp8.x = 0.0f; sp8.y = 250.0f; sp8.z = 0.0f; - + for (var_r31 = 0; var_r31 < lbl_1_bss_60; var_r31++) { fn_1_5010(&lbl_1_bss_64[var_r31], &sp8, 1500.0f); } } -void fn_1_4660(omObjData* object) { - void* sp8; +void fn_1_4660(omObjData *object) +{ + void *sp8; s16 temp_r3; sp8 = object->data; @@ -958,18 +997,19 @@ void fn_1_4660(omObjData* object) { } } -void fn_1_46E0(omObjData* object) { +void fn_1_46E0(omObjData *object) +{ f32 var_f31; s16 temp_r0; s16 var_r30; s32 temp_r28; - unkStruct2* temp_r31; + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)object->data; + temp_r31 = (unkStruct2 *)object->data; switch (lbl_1_data_104[0]) { case 0x0: fn_1_4E00(-1, 0.0f); - + for (var_r30 = 0; var_r30 < 5; var_r30++) { Hu3DMotionTimeSet(object->model[var_r30 + 4], 0.0f); lbl_1_data_14[var_r30] = 0; @@ -999,7 +1039,7 @@ void fn_1_46E0(omObjData* object) { } break; } - + for (var_r30 = 0; var_r30 < temp_r31->unk1C; var_r30++) { Hu3DData[object->model[var_r30 + 4]].pos.y = temp_r31->unk24; lbl_1_data_14[var_r30] = 1; @@ -1007,13 +1047,14 @@ void fn_1_46E0(omObjData* object) { Hu3DData[object->model[1]].pos.y = temp_r31->unk24; } -void fn_1_4A20(omObjData* object) { - ModelData* temp_r31; +void fn_1_4A20(omObjData *object) +{ + ModelData *temp_r31; s16 temp_r28; - unkStruct2* temp_r30; + unkStruct2 *temp_r30; f32 var_f31; - temp_r30 = (unkStruct2*)object->data; + temp_r30 = (unkStruct2 *)object->data; temp_r28 = temp_r30->unk2E; if (temp_r28 != -1) { temp_r31 = &Hu3DData[object->model[temp_r28 + 4]]; @@ -1024,19 +1065,21 @@ void fn_1_4A20(omObjData* object) { temp_r31->unk_64 = 0.0f; } } - } else { + } + else { var_f31 = Hu3DMotionMaxTimeGet(object->model[temp_r28 + 4]); temp_r31->unk_64 = var_f31 * temp_r30->unk30; } } } -void fn_1_4B44(omObjData* object) { +void fn_1_4B44(omObjData *object) +{ f32 var_f31; s16 var_r30; - unkStruct2* temp_r31; + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)object->data; + temp_r31 = (unkStruct2 *)object->data; switch (lbl_1_data_104[0]) { case 0: lbl_1_data_108[0]++; @@ -1062,7 +1105,7 @@ void fn_1_4B44(omObjData* object) { } break; } - + for (var_r30 = 0; var_r30 < temp_r31->unk1C; var_r30++) { Hu3DData[object->model[var_r30 + 4]].pos.y = temp_r31->unk24; lbl_1_data_14[var_r30] = 1; @@ -1070,25 +1113,28 @@ void fn_1_4B44(omObjData* object) { Hu3DData[object->model[1]].pos.y = temp_r31->unk24; } -void fn_1_4E00(s16 arg0, f32 arg8) { - unkStruct2* temp_r31; +void fn_1_4E00(s16 arg0, f32 arg8) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_68->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_68->data; temp_r31->unk2E = arg0; temp_r31->unk30 = arg8; } -s16 fn_1_4E2C(void) { - unkStruct2* var_r31; +s16 fn_1_4E2C(void) +{ + unkStruct2 *var_r31; - var_r31 = (unkStruct2*)lbl_1_bss_68->data; + var_r31 = (unkStruct2 *)lbl_1_bss_68->data; return var_r31->unk1C; } -s16 fn_1_4E54(s16 arg0) { - unkStruct2* temp_r31; +s16 fn_1_4E54(s16 arg0) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_68->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_68->data; if (arg0 == -1) { return temp_r31->unk2C; } @@ -1098,27 +1144,30 @@ s16 fn_1_4E54(s16 arg0) { return 0; } -u16 fn_1_4EA8(u16 arg0) { - unkStruct2* temp_r31; +u16 fn_1_4EA8(u16 arg0) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_68->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_68->data; if (!temp_r31) { return 0; } return temp_r31->unk0 & arg0; } -void fn_1_4EEC(u16 arg0, u16 arg1) { - unkStruct2* temp_r31; +void fn_1_4EEC(u16 arg0, u16 arg1) +{ + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_68->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_68->data; temp_r31->unk0 &= ~arg0; temp_r31->unk0 |= arg1; } -void fn_1_4F34(unkStruct6* arg0) { +void fn_1_4F34(unkStruct6 *arg0) +{ s16 var_r30; - unkStruct8* var_r31; + unkStruct8 *var_r31; var_r31 = arg0->unk24; if (arg0->unk20 != 0) { @@ -1135,21 +1184,22 @@ void fn_1_4F34(unkStruct6* arg0) { } } -void fn_1_5010(unkStruct6* arg0, Vec* arg1, f32 arg8) { +void fn_1_5010(unkStruct6 *arg0, Vec *arg1, f32 arg8) +{ Vec sp14; - ModelData* temp_r29; + ModelData *temp_r29; f32 var_f25; f32 var_f28; f32 var_f27; f32 var_f26; s32 var_r27; - unkStruct8* var_r31; - + unkStruct8 *var_r31; + var_r31 = arg0->unk24; if (arg0->unk20 != 0) { temp_r29 = &Hu3DData[arg0->unk0]; arg0->unk2 |= 4; - + for (var_r27 = 0; var_r27 < arg0->unk20; var_r27++, var_r31++) { sp14.x = (var_r31->unk7C.x + temp_r29->pos.x) - arg1->x; sp14.y = (var_r31->unk7C.y + temp_r29->pos.y) - arg1->y; @@ -1158,7 +1208,7 @@ void fn_1_5010(unkStruct6* arg0, Vec* arg1, f32 arg8) { sp14.x /= var_f25; sp14.y /= var_f25; sp14.z /= var_f25; - + var_f25 = (1.0f - (var_f25 / arg8)); if (var_f25 < 0.0f) { var_f25 = 0.0f; @@ -1179,18 +1229,19 @@ void fn_1_5010(unkStruct6* arg0, Vec* arg1, f32 arg8) { } } -void fn_1_57B4(unkStruct6* arg0) { +void fn_1_57B4(unkStruct6 *arg0) +{ Mtx sp14; Vec sp8; s16 var_r29; - Vec* temp_r26; + Vec *temp_r26; s32 var_r27; s32 var_r28; - unkStruct8* var_r31; + unkStruct8 *var_r31; var_r31 = arg0->unk24; temp_r26 = arg0->unk10; - + for (var_r27 = 0; var_r27 < arg0->unk20; var_r27++, var_r31++) { var_r31->unkAC.y = (var_r31->unkAC.y - var_r31->unkC4.y); var_r31->unk94.x = (var_r31->unk94.x + var_r31->unkAC.x); @@ -1215,7 +1266,8 @@ void fn_1_57B4(unkStruct6* arg0) { var_r31->unkAC.z = 0.0f; var_r31->unkB8.x = 0.0f; var_r31->unkB8.z = 0.0f; - } else { + } + else { var_r31->unkAC.x *= 0.5f; var_r31->unkAC.y = -(0.3f * var_r31->unkAC.y); var_r31->unkAC.z *= 0.5f; @@ -1227,11 +1279,12 @@ void fn_1_57B4(unkStruct6* arg0) { mtxTransCat(sp14, -var_r31->unk7C.x, -var_r31->unk7C.y, -var_r31->unk7C.z); mtxRotCat(sp14, var_r31->unkA0.x, var_r31->unkA0.y, var_r31->unkA0.z); mtxTransCat(sp14, var_r31->unk94.x + var_r31->unk7C.x, var_r31->unk94.y + var_r31->unk7C.y, var_r31->unk94.z + var_r31->unk7C.z); - + for (var_r28 = 0; var_r28 < 3; var_r28++) { if ((arg0->unk2 & 1) != 0) { var_r29 = var_r31->unk0[var_r28].unk0; - } else { + } + else { var_r29 = var_r31->unk18[var_r28]; } PSMTXMultVec(sp14, &temp_r26[var_r29], &sp8); @@ -1255,22 +1308,23 @@ void fn_1_57B4(unkStruct6* arg0) { DCFlushRangeNoSync(arg0->unkC, arg0->unk8 * 0xC); } -void fn_1_5C2C(s16 arg0, HsfObject* arg1, unkStruct6* arg2, u16 arg3) { +void fn_1_5C2C(s16 arg0, HsfObject *arg1, unkStruct6 *arg2, u16 arg3) +{ Mtx sp68; Vec sp44[3]; Vec sp38; Vec sp2C; - ModelData* sp1C; + ModelData *sp1C; GXColor sp18 = { 0xFF, 0xFF, 0xFF, 0xFF }; - Vec* var_r21; - Vec* var_r19; + Vec *var_r21; + Vec *var_r19; s16 var_r20; - HsfVector2f* var_r22; + HsfVector2f *var_r22; s16 var_r24; s16 var_r23; - HsfTransform* var_r25; + HsfTransform *var_r25; s16 var_r27; - ModelData* var_r29; + ModelData *var_r29; s16 var_r28; s16 var_r30; @@ -1281,10 +1335,10 @@ void fn_1_5C2C(s16 arg0, HsfObject* arg1, unkStruct6* arg2, u16 arg3) { arg2->unk0 = var_r30; Hu3DModelLayerSet(var_r30, 1); var_r29 = &Hu3DData[var_r30]; - var_r29->unk_120 = (ParticleData* ) arg2; + var_r29->unk_120 = (ParticleData *)arg2; var_r29->unk_58.x = var_r29->unk_58.z = var_r29->unk_58.y = 1.0f; arg2->unk2 = arg3; - arg2->unk28 = &arg1->data.material[((s16*)(arg1->data.face->data))[1] & 0xFFF]; + arg2->unk28 = &arg1->data.material[((s16 *)(arg1->data.face->data))[1] & 0xFFF]; arg2->unk2C = arg1->data.attribute; arg2->unk38 = NULL; arg2->unk3C = 0xFF; @@ -1298,7 +1352,8 @@ void fn_1_5C2C(s16 arg0, HsfObject* arg1, unkStruct6* arg2, u16 arg3) { if (arg2->unk28->numAttrs != 0) { arg2->unk1C = HuMemDirectMallocNum(HEAP_DATA, arg1->data.st->count * 8, var_r29->unk_48); var_r22 = arg1->data.st->data; - } else { + } + else { arg2->unk1C = NULL; var_r22 = NULL; } @@ -1309,16 +1364,17 @@ void fn_1_5C2C(s16 arg0, HsfObject* arg1, unkStruct6* arg2, u16 arg3) { for (var_r30 = 0; var_r30 < arg2->unk20; var_r30++) { sp2C.x = sp2C.y = sp2C.z = 0.0f; - + for (var_r28 = 0; var_r28 < 3; var_r28++) { if ((arg2->unk2 & 1) != 0) { var_r23 = arg2->unk24[var_r30].unk0[var_r28].unk0; var_r27 = var_r23; - } else { + } + else { var_r27 = arg2->unk24[var_r30].unk18[var_r28]; var_r23 = arg2->unk24[var_r30].unk0[var_r28].unk0; } - PSMTXMultVec(sp68, &((Vec*)(arg1->data.vertex->data))[var_r23], &sp38); + PSMTXMultVec(sp68, &((Vec *)(arg1->data.vertex->data))[var_r23], &sp38); arg2->unkC[var_r27] = sp38; sp44[var_r28] = arg2->unkC[var_r27]; arg2->unk14[var_r27] = arg2->unk18[var_r23]; @@ -1353,13 +1409,14 @@ void fn_1_5C2C(s16 arg0, HsfObject* arg1, unkStruct6* arg2, u16 arg3) { GXBeginDisplayList(var_r19, 0x20000); if ((arg2->unk2 & 2) != 0) { GXBegin(GX_TRIANGLES, GX_VTXFMT0, (arg2->unk20 * 0xC)); - + for (var_r30 = 0; var_r30 < arg2->unk20; var_r30++) { - + for (var_r28 = 0; var_r28 < 3; var_r28++) { if ((arg2->unk2 & 1) != 0) { var_r27 = arg2->unk24[var_r30].unk0[var_r28].unk0; - } else { + } + else { var_r27 = arg2->unk24[var_r30].unk18[var_r28]; } GXPosition1x16(var_r27); @@ -1368,7 +1425,7 @@ void fn_1_5C2C(s16 arg0, HsfObject* arg1, unkStruct6* arg2, u16 arg3) { GXTexCoord1x16(arg2->unk24[var_r30].unk0[var_r28].unk6); } } - + for (var_r24 = 0; var_r24 < 9; var_r24++) { if (var_r20 < arg2->unk24[var_r30].unk20[var_r24].unk0) { var_r20 = arg2->unk24[var_r30].unk20[var_r24].unk0; @@ -1380,13 +1437,15 @@ void fn_1_5C2C(s16 arg0, HsfObject* arg1, unkStruct6* arg2, u16 arg3) { } } } - } else { + } + else { GXBegin(GX_TRIANGLES, GX_VTXFMT0, (arg2->unk20 * 3)); for (var_r30 = 0; var_r30 < arg2->unk20; var_r30++) { for (var_r28 = 0; var_r28 < 3; var_r28++) { if ((arg2->unk2 & 1) != 0) { var_r27 = arg2->unk24[var_r30].unk0[var_r28].unk0; - } else { + } + else { var_r27 = arg2->unk24[var_r30].unk18[var_r28]; } GXPosition1x16(var_r27); @@ -1406,28 +1465,29 @@ void fn_1_5C2C(s16 arg0, HsfObject* arg1, unkStruct6* arg2, u16 arg3) { } } -void fn_1_6554(unkStruct6* arg0, HsfObject* arg1) { +void fn_1_6554(unkStruct6 *arg0, HsfObject *arg1) +{ Vec sp20[3]; f32 spC[5]; f32 var_f28; - HsfBuffer* temp_r26; + HsfBuffer *temp_r26; s16 var_r28; s16 var_r29; - unkStruct10* var_r30; + unkStruct10 *var_r30; temp_r26 = arg1->data.face; - + for (var_r28 = 0; var_r28 < arg1->data.vertex->count; var_r28++) { arg0->unk18[var_r28].x = 0.0f; arg0->unk18[var_r28].y = 0.0f; arg0->unk18[var_r28].z = 0.0f; } - var_r30 = (unkStruct10*)temp_r26->data; - + var_r30 = (unkStruct10 *)temp_r26->data; + for (var_r28 = 0; var_r28 < temp_r26->count; var_r28++, var_r30++) { - sp20[0] = ((Vec*)(arg1->data.vertex->data))[var_r30->unk4[0].unk0]; - sp20[1] = ((Vec*)(arg1->data.vertex->data))[var_r30->unk4[1].unk0]; - sp20[2] = ((Vec*)(arg1->data.vertex->data))[var_r30->unk4[2].unk0]; + sp20[0] = ((Vec *)(arg1->data.vertex->data))[var_r30->unk4[0].unk0]; + sp20[1] = ((Vec *)(arg1->data.vertex->data))[var_r30->unk4[1].unk0]; + sp20[2] = ((Vec *)(arg1->data.vertex->data))[var_r30->unk4[2].unk0]; fn_1_91A4(&sp20[0], &sp20[1], &sp20[2], spC); spC[0] = -spC[0]; spC[1] = -spC[1]; @@ -1461,7 +1521,7 @@ void fn_1_6554(unkStruct6* arg0, HsfObject* arg1) { break; } } - + for (var_r28 = 0; var_r28 < arg1->data.vertex->count; var_r28++) { sp20[0].x = arg0->unk18[var_r28].x; sp20[0].y = arg0->unk18[var_r28].y; @@ -1473,24 +1533,25 @@ void fn_1_6554(unkStruct6* arg0, HsfObject* arg1) { } } -void fn_1_6B58(unkStruct6* arg0, HsfObject* arg1) { - HsfBuffer* temp_r25; +void fn_1_6B58(unkStruct6 *arg0, HsfObject *arg1) +{ + HsfBuffer *temp_r25; s32 var_r28; s32 var_r30; u8 var_r24; - ModelData* var_r22; - unkStruct8* var_r31; + ModelData *var_r22; + unkStruct8 *var_r31; unkStruct11 *temp_r26; - unkStruct10* var_r29; + unkStruct10 *var_r29; var_r22 = &Hu3DData[arg0->unk0]; temp_r25 = arg1->data.face; var_r24 = ((arg0->unk2 & 1) != 0) ? 1 : 0; arg0->unk20 = 0; - + var_r28 = 0; - var_r29 = (unkStruct10*)temp_r25->data; - for (;var_r28 < temp_r25->count;var_r28++, var_r29++) { + var_r29 = (unkStruct10 *)temp_r25->data; + for (; var_r28 < temp_r25->count; var_r28++, var_r29++) { switch (var_r29->unk0 & 7) { case 2: arg0->unk20 += 1; @@ -1507,13 +1568,14 @@ void fn_1_6B58(unkStruct6* arg0, HsfObject* arg1) { var_r31 = arg0->unk24; if (var_r24 != 0) { var_r30 = arg1->data.vertex->count; - } else { + } + else { var_r30 = 0; } - + var_r28 = 0; - var_r29 = (unkStruct10*)temp_r25->data;\ - for (;var_r28 < temp_r25->count; var_r28++, var_r29++) { + var_r29 = (unkStruct10 *)temp_r25->data; + for (; var_r28 < temp_r25->count; var_r28++, var_r29++) { switch (var_r29->unk0 & 7) { case 2: var_r31->unk0[0] = var_r29->unk4[0]; @@ -1562,21 +1624,24 @@ void fn_1_6B58(unkStruct6* arg0, HsfObject* arg1) { var_r31++; var_r28 = 0; temp_r26 = var_r29->unk20; - for (;var_r28 < var_r29->unk1C; var_r28++) { + for (; var_r28 < var_r29->unk1C; var_r28++) { if (var_r28 == 0) { var_r31->unk0[0] = var_r31->unk0[1]; var_r31->unk0[1] = var_r31->unk0[2]; var_r31->unk0[2] = temp_r26[0]; - } else if (var_r28 == 1) { + } + else if (var_r28 == 1) { var_r31->unk0[0] = var_r31->unk0[2]; var_r31->unk0[1] = temp_r26[1]; var_r31->unk0[2] = temp_r26[0]; - } else { + } + else { if ((var_r28 % 2) != 0) { var_r31->unk0[0] = temp_r26[var_r28 - 2]; var_r31->unk0[1] = temp_r26[var_r28 - 0]; var_r31->unk0[2] = temp_r26[var_r28 - 1]; - } else { + } + else { var_r31->unk0[0] = temp_r26[var_r28 - 2]; var_r31->unk0[1] = temp_r26[var_r28 - 1]; var_r31->unk0[2] = temp_r26[var_r28 - 0]; @@ -1596,24 +1661,26 @@ void fn_1_6B58(unkStruct6* arg0, HsfObject* arg1) { arg0->unk8 = var_r30; } -void fn_1_71FC(unkStruct6* arg0, Vec* arg1, s16 arg2, Vec arg3) { +void fn_1_71FC(unkStruct6 *arg0, Vec *arg1, s16 arg2, Vec arg3) +{ Vec sp40; Vec sp34; Vec sp28[3]; Vec sp1C; - unkStruct8* temp_r30 = &arg0->unk24[arg2]; + unkStruct8 *temp_r30 = &arg0->unk24[arg2]; s16 sp10[3][2] = { { 0, 1 }, { 0, 2 }, { 1, 2 } }; f32 var_f31; f32 var_f30; f32 var_f29; f32 var_f27; s16 var_r31; - + if ((arg0->unk2 & 1) != 0) { sp28[0] = arg0->unkC[temp_r30->unk0[0].unk0]; sp28[1] = arg0->unkC[temp_r30->unk0[1].unk0]; sp28[2] = arg0->unkC[temp_r30->unk0[2].unk0]; - } else { + } + else { sp28[0] = arg0->unkC[temp_r30->unk18[0]]; sp28[1] = arg0->unkC[temp_r30->unk18[1]]; sp28[2] = arg0->unkC[temp_r30->unk18[2]]; @@ -1623,20 +1690,16 @@ void fn_1_71FC(unkStruct6* arg0, Vec* arg1, s16 arg2, Vec arg3) { sp1C.z = temp_r30->unk68[2]; PSVECNormalize(&sp1C, &sp1C); var_f31 = var_f30 = var_f29 = 0.0f; - - for (var_r31 = 0; var_r31 < 3; var_r31++) { - var_f31 += (sp28[sp10[var_r31][0]].x - sp28[sp10[var_r31][1]].x < 0.0f) - ? -(sp28[sp10[var_r31][0]].x - sp28[sp10[var_r31][1]].x) - : (sp28[sp10[var_r31][0]].x - sp28[sp10[var_r31][1]].x); - - - var_f30 += (sp28[sp10[var_r31][0]].y - sp28[sp10[var_r31][1]].y < 0.0f) - ? -(sp28[sp10[var_r31][0]].y - sp28[sp10[var_r31][1]].y) - : (sp28[sp10[var_r31][0]].y - sp28[sp10[var_r31][1]].y); - var_f29 += (sp28[sp10[var_r31][0]].z - sp28[sp10[var_r31][1]].z < 0.0f) - ? -(sp28[sp10[var_r31][0]].z - sp28[sp10[var_r31][1]].z) - : (sp28[sp10[var_r31][0]].z - sp28[sp10[var_r31][1]].z); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_f31 += (sp28[sp10[var_r31][0]].x - sp28[sp10[var_r31][1]].x < 0.0f) ? -(sp28[sp10[var_r31][0]].x - sp28[sp10[var_r31][1]].x) + : (sp28[sp10[var_r31][0]].x - sp28[sp10[var_r31][1]].x); + + var_f30 += (sp28[sp10[var_r31][0]].y - sp28[sp10[var_r31][1]].y < 0.0f) ? -(sp28[sp10[var_r31][0]].y - sp28[sp10[var_r31][1]].y) + : (sp28[sp10[var_r31][0]].y - sp28[sp10[var_r31][1]].y); + + var_f29 += (sp28[sp10[var_r31][0]].z - sp28[sp10[var_r31][1]].z < 0.0f) ? -(sp28[sp10[var_r31][0]].z - sp28[sp10[var_r31][1]].z) + : (sp28[sp10[var_r31][0]].z - sp28[sp10[var_r31][1]].z); } var_f31 *= 0.3333f; var_f30 *= 0.3333f; @@ -1650,16 +1713,17 @@ void fn_1_71FC(unkStruct6* arg0, Vec* arg1, s16 arg2, Vec arg3) { arg1->z = (sp28[0].z - (sp1C.z * var_f27)); } -void fn_1_7934(unkStruct6* arg0, unkStruct8* arg1, Vec* arg2) { +void fn_1_7934(unkStruct6 *arg0, unkStruct8 *arg1, Vec *arg2) +{ Vec sp2C[3]; f32 sp18[5]; s16 sp10[4]; s16 sp8[4]; s16 var_r28; - Vec* temp_r30; - Vec* temp_r4; - Vec* temp_r4_2; - Vec* temp_r4_3; + Vec *temp_r30; + Vec *temp_r4; + Vec *temp_r4_2; + Vec *temp_r4_3; arg1->unk88.x = arg1->unk88.y = arg1->unk88.z = 1.0f; arg1->unk94.x = arg1->unk94.y = arg1->unk94.z = 0.0f; @@ -1667,12 +1731,13 @@ void fn_1_7934(unkStruct6* arg0, unkStruct8* arg1, Vec* arg2) { arg1->unkAC.x = arg1->unkAC.y = arg1->unkAC.z = 0.0f; arg1->unkB8.x = arg1->unkB8.y = arg1->unkB8.z = 0.0f; arg1->unkC4.x = arg1->unkC4.y = arg1->unkC4.z = 0.0f; - + if ((arg0->unk2 & 2) != 0) { arg2->x *= 0.25f; arg2->y *= 0.25f; arg2->z *= 0.25f; - } else { + } + else { arg2->x /= 3.0f; arg2->y /= 3.0f; arg2->z /= 3.0f; @@ -1685,7 +1750,8 @@ void fn_1_7934(unkStruct6* arg0, unkStruct8* arg1, Vec* arg2) { sp10[0] = arg1->unk0[0].unk0; sp10[1] = arg1->unk0[1].unk0; sp10[2] = arg1->unk0[2].unk0; - } else { + } + else { sp10[0] = arg1->unk18[0]; sp10[1] = arg1->unk18[1]; sp10[2] = arg1->unk18[2]; @@ -1695,14 +1761,14 @@ void fn_1_7934(unkStruct6* arg0, unkStruct8* arg1, Vec* arg2) { sp8[1] = arg1->unk0[1].unk6; sp8[2] = arg1->unk0[2].unk6; sp8[3] = arg1->unk0[0].unk6; - + for (var_r28 = 0; var_r28 < 9; var_r28++) { arg1->unk20[var_r28].unk0 = sp10[lbl_1_data_10C[var_r28]]; arg1->unk20[var_r28].unk6 = sp8[lbl_1_data_10C[var_r28]]; } temp_r30 = &arg0->unk14[arg1->unk1E]; temp_r30->x = temp_r30->y = temp_r30->z = 0.0f; - + for (var_r28 = 0; var_r28 < 3; var_r28++) { sp2C[0] = arg0->unkC[sp10[lbl_1_data_10C[var_r28]]]; sp2C[1] = arg0->unkC[sp10[lbl_1_data_10C[var_r28 + 1]]]; @@ -1718,7 +1784,8 @@ void fn_1_7934(unkStruct6* arg0, unkStruct8* arg1, Vec* arg2) { } } -void fn_1_7D60(unkStruct15* arg0, unkStruct13* arg1, s16 arg2) { +void fn_1_7D60(unkStruct15 *arg0, unkStruct13 *arg1, s16 arg2) +{ GXTexObj sp1C; GXTlutObj sp10; s32 sp8; @@ -1750,7 +1817,8 @@ void fn_1_7D60(unkStruct15* arg0, unkStruct13* arg1, s16 arg2) { GXInitTlutObj(&sp10, arg0->unk14, GX_TL_RGB565, arg0->unkE); GXLoadTlut(&sp10, arg2); GXInitTexObjCI(&sp1C, arg0->unk1C, temp_r29, temp_r28, GX_TF_C4, var_r27, var_r26, GX_FALSE, arg2); - } else { + } + else { GXInitTlutObj(&sp10, arg0->unk14, GX_TL_RGB565, arg0->unkE); GXLoadTlut(&sp10, arg2); GXInitTexObjCI(&sp1C, arg0->unk1C, temp_r29, temp_r28, GX_TF_C8, var_r27, var_r26, GX_FALSE, arg2); @@ -1761,7 +1829,8 @@ void fn_1_7D60(unkStruct15* arg0, unkStruct13* arg1, s16 arg2) { GXInitTlutObj(&sp10, arg0->unk14, GX_TL_RGB5A3, arg0->unkE); GXLoadTlut(&sp10, arg2); GXInitTexObjCI(&sp1C, arg0->unk1C, temp_r29, temp_r28, GX_TF_C4, var_r27, var_r26, GX_FALSE, arg2); - } else { + } + else { GXInitTlutObj(&sp10, arg0->unk14, GX_TL_RGB5A3, arg0->unkE); GXLoadTlut(&sp10, arg2); GXInitTexObjCI(&sp1C, arg0->unk1C, temp_r29, temp_r28, GX_TF_C8, var_r27, var_r26, GX_FALSE, arg2); @@ -1776,14 +1845,15 @@ void fn_1_7D60(unkStruct15* arg0, unkStruct13* arg1, s16 arg2) { return; } -void fn_1_806C(ModelData* arg0, Mtx arg1) { +void fn_1_806C(ModelData *arg0, Mtx arg1) +{ Mtx sp14; GXColor sp10; - unkStruct13* temp_r29; - unkStruct14* temp_r31; + unkStruct13 *temp_r29; + unkStruct14 *temp_r31; m440Func14 temp_r27; - temp_r31 = (unkStruct14*)arg0->unk_120; + temp_r31 = (unkStruct14 *)arg0->unk_120; if (((u8)omPauseChk() == 0) && (temp_r31->unk38)) { temp_r27 = temp_r31->unk38; temp_r27(temp_r31); @@ -1819,7 +1889,8 @@ void fn_1_806C(ModelData* arg0, Mtx arg1) { GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetNumTexGens(0); GXSetNumChans(0); - } else { + } + else { GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); GXSetArray(GX_VA_TEX0, temp_r31->unk1C, 8); @@ -1836,7 +1907,8 @@ void fn_1_806C(ModelData* arg0, Mtx arg1) { GXCallDisplayList(temp_r31->unk30, temp_r31->unk34); } -void fn_1_8470(unkStruct12* arg0, unkStruct13* arg1) { +void fn_1_8470(unkStruct12 *arg0, unkStruct13 *arg1) +{ ModelData sp40; Mtx sp10; GXColor spC; @@ -1854,11 +1926,13 @@ void fn_1_8470(unkStruct12* arg0, unkStruct13* arg1) { temp_r24 = arg0->unk30; if ((arg0->unkA == 2) || (arg0->unkA == 3)) { var_r27 = 1; - } else { + } + else { var_r27 = 0; if ((arg0->unkA == 0) || (arg0->unkA == 5)) { var_r25 = 0; - } else { + } + else { var_r25 = 1; } } @@ -1873,14 +1947,16 @@ void fn_1_8470(unkStruct12* arg0, unkStruct13* arg1) { GXSetTevAlphaIn(var_r31, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); GXSetTevAlphaOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); var_r31++; - } else { + } + else { GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); } - } else { + } + else { GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); } if (var_r27 != 0) { @@ -1904,11 +1980,13 @@ void fn_1_8470(unkStruct12* arg0, unkStruct13* arg1) { var_r28++; var_r27 = 0; var_r25 = 1; - } else { + } + else { if (1.0f == arg1->unk20) { GXSetTevOrder(var_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR1A1); GXSetTevColorIn(var_r31, GX_CC_CPREV, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevOrder(var_r31, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR1A1); GXSetTevColorIn(var_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_CPREV); } @@ -1917,7 +1995,8 @@ void fn_1_8470(unkStruct12* arg0, unkStruct13* arg1) { GXSetTevAlphaOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); var_r31++; } - } else if (0.0f != arg0->unk1C) { + } + else if (0.0f != arg0->unk1C) { GXSetTevOrder(var_r31, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); GXSetTevColorIn(var_r31, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV); GXSetTevColorOp(var_r31, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); @@ -1929,7 +2008,8 @@ void fn_1_8470(unkStruct12* arg0, unkStruct13* arg1) { GXSetNumTevStages(var_r31); if (var_r27 != 0) { var_f30 = arg0->unk14; - } else { + } + else { var_f30 = 0.0f; } temp_r29 = Hu3DLightSet(&sp40, &Hu3DCameraMtx, &Hu3DCameraMtxXPose, var_f30); @@ -1952,23 +2032,24 @@ void fn_1_8470(unkStruct12* arg0, unkStruct13* arg1) { GXSetChanCtrl(GX_COLOR0A0, var_r25, GX_SRC_REG, GX_SRC_REG, temp_r29, GX_DF_CLAMP, GX_AF_SPOT); } -void fn_1_8AC4(Mtx arg0) { +void fn_1_8AC4(Mtx arg0) +{ Mtx spA0; Mtx sp70; Mtx sp40; Vec sp34; Vec sp28; Vec sp1C; - Vec sp10 = {0, 0, -1}; + Vec sp10 = { 0, 0, -1 }; f32 var_f29; f32 var_f30; - LightData* var_r29; + LightData *var_r29; s16 temp_r31; var_r29 = &Hu3DGlobalLight[0]; sp34 = var_r29->unk_28; if ((var_r29->unk_00 & 0x8000) != 0) { - PSMTXMultVecSR(Hu3DCameraMtx, &sp34, &sp34); + PSMTXMultVecSR(Hu3DCameraMtx, &sp34, &sp34); } var_f30 = PSVECDotProduct(&sp34, &sp10); var_f30 *= 10000.0f; @@ -1977,15 +2058,16 @@ void fn_1_8AC4(Mtx arg0) { PSMTXScale(lbl_1_bss_30, 0.0f, 0.0f, 0.0f); return; } - C_VECHalfAngle( &sp34, &sp10, &sp28); + C_VECHalfAngle(&sp34, &sp10, &sp28); sp28.x = -sp28.x; sp28.y = -sp28.y; sp28.z = -sp28.z; PSMTXInvXpose(arg0, sp70); if (temp_r31 == 0x2710) { PSMTXIdentity(sp40); - } else { - PSVECCrossProduct(&sp28, &sp10, &sp1C); + } + else { + PSVECCrossProduct(&sp28, &sp10, &sp1C); var_f29 = acosf(PSVECDotProduct(&sp10, &sp28)); PSMTXRotAxisRad(sp40, &sp1C, var_f29); } @@ -1994,21 +2076,23 @@ void fn_1_8AC4(Mtx arg0) { PSMTXConcat(sp40, spA0, lbl_1_bss_30); } -void fn_1_8D1C(void) { +void fn_1_8D1C(void) +{ Mtx44 sp60; Mtx sp30; GXTexObj sp10; GXColor spC; u16 var_r30; - unkStruct2* temp_r31; + unkStruct2 *temp_r31; - temp_r31 = (unkStruct2*)lbl_1_bss_68->data; + temp_r31 = (unkStruct2 *)lbl_1_bss_68->data; if (!temp_r31) { var_r30 = 0; - } else { + } + else { var_r30 = temp_r31->unk0 & 7; } - + if (var_r30 == 5) { C_MTXOrtho(sp60, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 10.0f); GXSetProjection(sp60, GX_ORTHOGRAPHIC); @@ -2049,7 +2133,8 @@ void fn_1_8D1C(void) { DCFlushRange(lbl_1_bss_28, lbl_1_bss_24); } -void fn_1_91A4(Vec* arg0, Vec* arg1, Vec* arg2, f32 arg3[5]) { +void fn_1_91A4(Vec *arg0, Vec *arg1, Vec *arg2, f32 arg3[5]) +{ Vec sp14; Vec sp8; @@ -2064,25 +2149,29 @@ void fn_1_91A4(Vec* arg0, Vec* arg1, Vec* arg2, f32 arg3[5]) { arg3[2] = -((sp14.x * sp8.y) - (sp14.y * sp8.x)); } -f32 fn_1_927C(f32 arg8, f32 arg9, f32 argA) { +f32 fn_1_927C(f32 arg8, f32 arg9, f32 argA) +{ f32 var_f31; var_f31 = arg9 - arg8; if (var_f31 > 180.0f) { var_f31 -= 360.0f; - } else if (var_f31 < -180.0f) { + } + else if (var_f31 < -180.0f) { var_f31 += 360.0f; } var_f31 = arg8 + (var_f31 * argA); if (var_f31 >= 360.0f) { var_f31 -= 360.0f; - } else if (var_f31 < 0.0f) { + } + else if (var_f31 < 0.0f) { var_f31 += 360.0f; } return var_f31; } -void fn_1_9344(Mtx arg0, Mtx arg1) { +void fn_1_9344(Mtx arg0, Mtx arg1) +{ arg1[0][0] = arg0[0][0]; arg1[1][0] = arg0[0][1]; arg1[2][0] = arg0[0][2]; @@ -2097,29 +2186,33 @@ void fn_1_9344(Mtx arg0, Mtx arg1) { arg1[2][3] = 0.0f; } -f32 fn_1_93C0(f32 arg0, f32 arg1, f32 arg2) { +f32 fn_1_93C0(f32 arg0, f32 arg1, f32 arg2) +{ return arg0 + (arg2 * (arg1 - arg0)); } -f32 fn_1_93D0(f32 arg8, f32 arg9, f32 argA, f32 argB) { +f32 fn_1_93D0(f32 arg8, f32 arg9, f32 argA, f32 argB) +{ f32 temp_f31; temp_f31 = 1.0f - argB; return (argA * (argB * argB)) + ((arg8 * (temp_f31 * temp_f31)) + (arg9 * (2.0f * temp_f31 * argB))); } -unkStruct4* fn_1_942C(s16 arg0, Vec* arg1, Vec* arg2, f32 arg3, GXColor* arg4) { - ModelData* var_r28; +unkStruct4 *fn_1_942C(s16 arg0, Vec *arg1, Vec *arg2, f32 arg3, GXColor *arg4) +{ + ModelData *var_r28; s16 var_r29; - unkStruct4* var_r31; - unkStruct14* temp_r30; + unkStruct4 *var_r31; + unkStruct14 *temp_r30; var_r28 = &Hu3DData[arg0]; temp_r30 = var_r28->unk_120; var_r29 = 0; var_r31 = temp_r30->unk18; - for (;var_r29 < temp_r30->unk0; var_r29++, var_r31++) { - if (var_r31->unk62 == 0) break; + for (; var_r29 < temp_r30->unk0; var_r29++, var_r31++) { + if (var_r31->unk62 == 0) + break; } if (var_r29 == temp_r30->unk0) { return NULL; @@ -2138,20 +2231,21 @@ unkStruct4* fn_1_942C(s16 arg0, Vec* arg1, Vec* arg2, f32 arg3, GXColor* arg4) { return var_r31; } -s16 fn_1_956C(AnimData* arg0, s16 arg1, f32 arg2, s16 arg3, s16 arg4) { - ModelData* temp_r28; +s16 fn_1_956C(AnimData *arg0, s16 arg1, f32 arg2, s16 arg3, s16 arg4) +{ + ModelData *temp_r28; s16 var_r20; s16 var_r22; s16 var_r19; - HsfVector2f* var_r29; + HsfVector2f *var_r29; s16 var_r30; - unkStruct5* var_r31; - void* var_r21; - void* var_r18; - unkStruct4* var_r24; - Vec* var_r25; - GXColor* var_r27; - + unkStruct5 *var_r31; + void *var_r21; + void *var_r18; + unkStruct4 *var_r24; + Vec *var_r25; + GXColor *var_r27; + var_r20 = Hu3DHookFuncCreate(fn_1_9C04); temp_r28 = &Hu3DData[var_r20]; var_r31 = HuMemDirectMallocNum(HEAP_DATA, 0x68, temp_r28->unk_48); @@ -2163,26 +2257,26 @@ s16 fn_1_956C(AnimData* arg0, s16 arg1, f32 arg2, s16 arg3, s16 arg4) { var_r31->unkC = NULL; var_r24 = HuMemDirectMallocNum(HEAP_DATA, arg1 * 0x64, temp_r28->unk_48); var_r31->unk18 = var_r24; - + for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r24++) { var_r24->unk60 = -1; var_r24->unk62 = 0; } var_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1 * 0xC * 4, temp_r28->unk_48); var_r31->unk1C = var_r25; - + for (var_r30 = 0; var_r30 < (arg1 * 4); var_r30++, var_r25++) { var_r25->x = var_r25->y = var_r25->z = 0.0f; } var_r27 = HuMemDirectMallocNum(HEAP_DATA, arg1 * 4, temp_r28->unk_48); var_r31->unk24 = var_r27; - + for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r27++) { var_r27->r = var_r27->g = var_r27->b = var_r27->a = 0xFF; } var_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1 * 8 * 4, temp_r28->unk_48); var_r31->unk20 = var_r29; - + for (var_r30 = 0; var_r30 < arg1; var_r30++) { var_r29->x = 0.0f; var_r29->y = 0.0f; @@ -2203,7 +2297,8 @@ s16 fn_1_956C(AnimData* arg0, s16 arg1, f32 arg2, s16 arg3, s16 arg4) { var_r31->unk14 = (var_r22 * var_r19); var_r31->unk60 = (1.0f / var_r22); var_r31->unk64 = (1.0f / var_r19); - } else { + } + else { var_r22 = 1; var_r31->unk14 = 1; var_r31->unk60 = 1.0f; @@ -2218,7 +2313,7 @@ s16 fn_1_956C(AnimData* arg0, s16 arg1, f32 arg2, s16 arg3, s16 arg4) { var_r18 = var_r21; GXBeginDisplayList(var_r18, 0x20000); GXBegin(GX_QUADS, GX_VTXFMT0, (arg1 * 4)); - + for (var_r30 = 0; var_r30 < arg1; var_r30++) { GXPosition1x16(var_r30 * 4); GXColor1x16(var_r30); @@ -2242,30 +2337,33 @@ s16 fn_1_956C(AnimData* arg0, s16 arg1, f32 arg2, s16 arg3, s16 arg4) { return var_r20; } -void fn_1_9AB0(s16 arg0) { - ModelData* data; - unkStruct5* temp2; +void fn_1_9AB0(s16 arg0) +{ + ModelData *data; + unkStruct5 *temp2; data = &Hu3DData[arg0]; - temp2 = (unkStruct5*)data->unk_120; + temp2 = (unkStruct5 *)data->unk_120; HuSprAnimKill(temp2->unk10); Hu3DModelKill(arg0); } -unkStruct5* fn_1_9B10(s16 arg0) { - ModelData* data; +unkStruct5 *fn_1_9B10(s16 arg0) +{ + ModelData *data; data = &Hu3DData[arg0]; - return (unkStruct5*)data->unk_120; + return (unkStruct5 *)data->unk_120; } -unkStruct4* fn_1_9B3C(s16 arg0, s16 arg1) { - ModelData* data; - unkStruct5* temp; +unkStruct4 *fn_1_9B3C(s16 arg0, s16 arg1) +{ + ModelData *data; + unkStruct5 *temp; data = &Hu3DData[arg0]; - temp = (unkStruct5*)data->unk_120; - + temp = (unkStruct5 *)data->unk_120; + if (arg1 == -1) { return 0; } @@ -2273,25 +2371,28 @@ unkStruct4* fn_1_9B3C(s16 arg0, s16 arg1) { return &temp->unk18[arg1]; } -void fn_1_9B94(s16 arg0, m440Func5 arg1) { - ModelData* data; - unkStruct5* temp; +void fn_1_9B94(s16 arg0, m440Func5 arg1) +{ + ModelData *data; + unkStruct5 *temp; data = &Hu3DData[arg0]; - temp = (unkStruct5*)data->unk_120; + temp = (unkStruct5 *)data->unk_120; temp->unkC = arg1; } -void fn_1_9BCC(s16 arg0, u8 arg1) { - ModelData* data; - unkStruct5* temp; +void fn_1_9BCC(s16 arg0, u8 arg1) +{ + ModelData *data; + unkStruct5 *temp; data = &Hu3DData[arg0]; - temp = (unkStruct5*)data->unk_120; + temp = (unkStruct5 *)data->unk_120; temp->unk8 = arg1; } -void fn_1_9C04(ModelData* arg0, Mtx arg1) { +void fn_1_9C04(ModelData *arg0, Mtx arg1) +{ Mtx sp128; ROMtx spF8; Mtx spC8; @@ -2305,16 +2406,16 @@ void fn_1_9C04(ModelData* arg0, Mtx arg1) { Vec sp20; Vec sp14; Vec sp8; - Vec* var_r31; + Vec *var_r31; s16 temp_r0; u8 temp_r0_2; - unkStruct5* temp_r30; - HsfVector2f* var_r27; + unkStruct5 *temp_r30; + HsfVector2f *var_r27; s16 var_r26; - unkStruct4* var_r29; + unkStruct4 *var_r29; m440Func5 var_r23; - temp_r30 = (unkStruct5*)arg0->unk_120; + temp_r30 = (unkStruct5 *)arg0->unk_120; GXLoadPosMtxImm(arg1, 0); GXSetNumTevStages(1); GXSetNumTexGens(1); @@ -2323,7 +2424,8 @@ void fn_1_9C04(ModelData* arg0, Mtx arg1) { temp_r0 = temp_r30->unk10->bmp->dataFmt & 0xF; if ((temp_r0 == 7) || (temp_r0 == 8)) { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXA, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); @@ -2365,9 +2467,9 @@ void fn_1_9C04(ModelData* arg0, Mtx arg1) { var_r29 = temp_r30->unk18; var_r31 = temp_r30->unk1C; var_r27 = temp_r30->unk20; - PSMTXROMultVecArray(spF8, &temp_r30->unk2C, (Vec*)&sp68[0], 4); - - for (var_r26 = 0; var_r26 < temp_r30->unk0; var_r26++, var_r29++, var_r27+=4) { + PSMTXROMultVecArray(spF8, &temp_r30->unk2C, (Vec *)&sp68[0], 4); + + for (var_r26 = 0; var_r26 < temp_r30->unk0; var_r26++, var_r29++, var_r27 += 4) { if (var_r29->unk62 == 0) { var_r31->x = var_r31->y = var_r31->z = 0.0f; var_r31++; @@ -2377,14 +2479,16 @@ void fn_1_9C04(ModelData* arg0, Mtx arg1) { var_r31++; var_r31->x = var_r31->y = var_r31->z = 0.0f; var_r31++; - } else { + } + else { if (0.0f == var_r29->unk44) { - fn_1_A328((Vec*)&sp68[0], &sp38, &var_r29->unk48, 4); + fn_1_A328((Vec *)&sp68[0], &sp38, &var_r29->unk48, 4); PSVECAdd(&sp38, &var_r29->unk54, var_r31++); PSVECAdd(&sp44, &var_r29->unk54, var_r31++); PSVECAdd(&sp50, &var_r29->unk54, var_r31++); PSVECAdd(&sp5C, &var_r29->unk54, var_r31++); - } else { + } + else { fn_1_A328(&temp_r30->unk2C, &sp38, &var_r29->unk48, 4); PSMTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk44); PSMTXConcat(sp128, spC8, sp98); @@ -2404,11 +2508,12 @@ void fn_1_9C04(ModelData* arg0, Mtx arg1) { GXCallDisplayList(temp_r30->unk28, temp_r30->unk4); } -void fn_1_A1B8(HsfVector2f* arg0, s16 arg1, s16 arg2, f32 arg8, f32 arg9) { +void fn_1_A1B8(HsfVector2f *arg0, s16 arg1, s16 arg2, f32 arg8, f32 arg9) +{ s16 var_r31; s16 var_r30; s16 var_r29; - + for (var_r31 = 0; var_r31 < arg1; var_r31++, arg0++) { var_r30 = (var_r31 % arg2); var_r29 = (var_r31 / arg2); @@ -2417,7 +2522,8 @@ void fn_1_A1B8(HsfVector2f* arg0, s16 arg1, s16 arg2, f32 arg8, f32 arg9) { } } -void fn_1_A284(HsfVector2f* arg0, HsfVector2f* arg1, s16 arg2, f32 arg3, f32 arg4) { +void fn_1_A284(HsfVector2f *arg0, HsfVector2f *arg1, s16 arg2, f32 arg3, f32 arg4) +{ arg0[0].x = arg1[arg2].x; arg0[0].y = arg1[arg2].y; arg0[1].x = (arg3 + arg1[arg2].x); @@ -2428,9 +2534,10 @@ void fn_1_A284(HsfVector2f* arg0, HsfVector2f* arg1, s16 arg2, f32 arg3, f32 arg arg0[3].y = (arg4 + arg1[arg2].y); } -void fn_1_A328(Vec* arg0, Vec* arg1, Vec* arg2, s16 arg3) { +void fn_1_A328(Vec *arg0, Vec *arg1, Vec *arg2, s16 arg3) +{ s16 var_r31; - + for (var_r31 = 0; var_r31 < arg3; var_r31++, arg0++, arg1++) { arg1->x = (arg0->x * arg2->x); arg1->y = (arg0->y * arg2->y); @@ -2440,13 +2547,15 @@ void fn_1_A328(Vec* arg0, Vec* arg1, Vec* arg2, s16 arg3) { static s8 lbl_1_data_148 = 0xFF; -void fn_1_A390(ModelData* arg0, Mtx arg1) { +void fn_1_A390(ModelData *arg0, Mtx arg1) +{ if (lbl_1_bss_2 == 0) { if ((HuPadBtnDown[0] & 0x10) != 0) { lbl_1_bss_1 ^= 1; } - if (lbl_1_bss_1 == 0) return; - + if (lbl_1_bss_1 == 0) + return; + if ((HuPadBtn[0] & 1) != 0) { lbl_1_data_20.x -= 4.0f; } @@ -2462,7 +2571,8 @@ void fn_1_A390(ModelData* arg0, Mtx arg1) { lbl_1_data_20.y += 4.0f; } lbl_1_data_2C.y += HuPadSubStkY[0]; - } else { + } + else { if ((HuPadBtn[0] & 8) != 0) { lbl_1_data_20.z -= 4.0f; } @@ -2481,7 +2591,7 @@ void fn_1_A390(ModelData* arg0, Mtx arg1) { Hu3DGLightPosAimSetV(lbl_1_bss_E, &lbl_1_data_2C, &lbl_1_data_20); Hu3DShadowPosSet(&lbl_1_data_54, &lbl_1_data_60, &lbl_1_data_6C); } - + print8(8, 0x64, 1.5f, "InterXYZ: %.2f %.2f %.2f", lbl_1_data_20.x, lbl_1_data_20.y, lbl_1_data_20.z); print8(8, 0x70, 1.5f, "PositionXYZ: %.2f %.2f %.2f", lbl_1_data_2C.x, lbl_1_data_2C.y, lbl_1_data_2C.z); GXLoadPosMtxImm(arg1, 0); @@ -2506,7 +2616,8 @@ void fn_1_A390(ModelData* arg0, Mtx arg1) { GXColor4u8(0xFF, 0x00, 0x00, 0xFF); } -void fn_1_AA94(void) { +void fn_1_AA94(void) +{ if ((HuPadBtnDown[0] & 0x40) != 0) { lbl_1_bss_2 ^= 1; } @@ -2526,7 +2637,8 @@ void fn_1_AA94(void) { Center.x += HuPadSubStkX[0]; if ((HuPadBtn[0] & 0x20) != 0) { Center.y += HuPadSubStkY[0]; - } else { + } + else { Center.z += HuPadSubStkY[0]; } if ((HuPadBtn[0] & 0x400) != 0) { diff --git a/src/REL/m440Dll/object.c b/src/REL/m440Dll/object.c index d26d048a..afeb8fe7 100644 --- a/src/REL/m440Dll/object.c +++ b/src/REL/m440Dll/object.c @@ -23,14 +23,14 @@ s16 lbl_1_bss_70; s16 lbl_1_data_1D8 = 2; s16 lbl_1_data_1DA = -1; u32 lbl_1_data_1DC[8][2] = { - { 0x5F0000, 0 }, - { 0x5F0002, 0 }, - { 0x5F0003, 0 }, - { 0x5F0038, 0 }, - { 0x5F0048, 0 }, - { 0x5F0017, 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x38), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), 0 }, { 0x47000C, 1 }, - { 0x5F0036, 0 } + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x36), 0 } }; f32 lbl_1_data_21C[4] = { 210.0f, 190.0f, 170.0f, 0.0f @@ -58,7 +58,7 @@ void fn_1_AEE4(omObjData* arg0) { s16 var_r29; unkObjStruct* temp_r31; - arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x78, 0x10000000); + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x78, MEMORY_DEFAULT_NUM); temp_r31 = (unkObjStruct*)arg0->data; memset(temp_r31, 0, 0x78); arg0->stat |= 0x100; @@ -1145,4 +1145,4 @@ void fn_1_F4D4(unkObjStruct* arg0, u16 arg1, u16 arg2) { s32 fn_1_F4FC(s32 arg0) { return lbl_1_bss_B8[arg0]; -} \ No newline at end of file +} diff --git a/src/REL/m441Dll/main.c b/src/REL/m441Dll/main.c index b5545366..6d3414e5 100644 --- a/src/REL/m441Dll/main.c +++ b/src/REL/m441Dll/main.c @@ -1,21 +1,21 @@ #include "REL/executor.h" #include "game/chrman.h" +#include "game/frand.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" -#include "game/frand.h" #include "game/wipe.h" -#include "game/minigame_seq.h" #include "game/gamework_data.h" +#include "game/mapspace.h" #include "game/pad.h" #include "game/printfunc.h" -#include "game/mapspace.h" -#include "game/hsfman.h" -#include "game/hsfmotion.h" #include "game/hsfanim.h" #include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/esprite.h" #include "game/sprite.h" @@ -23,7 +23,6 @@ #include "ext_math.h" #include "rel_sqrt_consts.h" - #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) @@ -66,12 +65,14 @@ float lbl_1_bss_190; s32 lbl_1_bss_150[16]; UnkBss1B0Struct lbl_1_bss_50[32]; -void fn_1_0(void) { +void fn_1_0(void) +{ lbl_1_bss_1F8.unk04 = NULL; lbl_1_bss_1F8.unk08 = NULL; } -void fn_1_24(u16 arg0, s16 arg1) { +void fn_1_24(u16 arg0, s16 arg1) +{ UnkBss1F8Struct *temp_r31; UnkBss1F8Struct *temp_r30; UnkBss1F8Struct *temp_r29; @@ -89,7 +90,8 @@ void fn_1_24(u16 arg0, s16 arg1) { temp_r31->unk08 = temp_r29; } -s16 fn_1_AC(s16 arg0) { +s16 fn_1_AC(s16 arg0) +{ UnkBss1F8Struct *var_r31; UnkBss1F8Struct *temp_r29; UnkBss1F8Struct *temp_r30; @@ -113,12 +115,14 @@ s16 fn_1_AC(s16 arg0) { return -1; } -void fn_1_150(void) { +void fn_1_150(void) +{ lbl_1_bss_1E0.unk10 = NULL; lbl_1_bss_1E0.unk14 = NULL; } -void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec *arg5, u8 arg6) { +void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec *arg5, u8 arg6) +{ UnkBss1E0Struct *temp_r27; UnkBss1E0Struct *var_r31; UnkBss1E0Struct *temp_r28; @@ -148,7 +152,8 @@ void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec var_r31->unk14 = temp_r27; } -void fn_1_2D8(void) { +void fn_1_2D8(void) +{ UnkBss1E0Struct *var_r31; UnkBss1E0Struct *temp_r28; UnkBss1E0Struct *temp_r29; @@ -183,7 +188,8 @@ void fn_1_2D8(void) { } } -void fn_1_414(void) { +void fn_1_414(void) +{ s32 i; for (i = 0; i < 32; i++) { @@ -192,7 +198,8 @@ void fn_1_414(void) { } } -s16 fn_1_46C(s32 arg0) { +s16 fn_1_46C(s32 arg0) +{ s32 i; for (i = 0; i < 32; i++) { @@ -210,7 +217,8 @@ s16 fn_1_46C(s32 arg0) { return Hu3DModelCreateFile(arg0); } -void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) { +void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) +{ s32 var_r30; espBankSet(arg0[arg1 + 1], 10); @@ -233,14 +241,16 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) { espBankSet(arg0[arg1 + 6], var_r30 % 10); } -void fn_1_798(s32 arg0) { +void fn_1_798(s32 arg0) +{ lbl_1_bss_190 = 0.0f; lbl_1_bss_1A0 = lbl_1_bss_1A4; GWMGRecordSet(arg0, lbl_1_bss_1A0); fn_1_580(lbl_1_bss_150, 7, lbl_1_bss_1A4); } -void fn_1_9EC(void) { +void fn_1_9EC(void) +{ s32 i; for (i = 0; i < 16; i++) { @@ -248,7 +258,8 @@ void fn_1_9EC(void) { } } -void fn_1_A40(void) { +void fn_1_A40(void) +{ float temp_f31; s32 i; @@ -261,7 +272,8 @@ void fn_1_A40(void) { } } -void fn_1_B4C(float arg0, s32 arg1) { +void fn_1_B4C(float arg0, s32 arg1) +{ float temp_f30; float temp_f31; s32 i; @@ -298,7 +310,8 @@ void fn_1_B4C(float arg0, s32 arg1) { } } -void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) { +void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ float temp_f31; if (1.0f < arg0) { @@ -310,13 +323,15 @@ void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) { arg3->z = arg1->z + temp_f31 * (arg2->z - arg1->z); } -void fn_1_1350(Vec *arg0, Vec *arg1, Vec *arg2) { +void fn_1_1350(Vec *arg0, Vec *arg1, Vec *arg2) +{ Hu3DCameraPosSetV(1, arg0, arg1, arg2); lbl_1_bss_1D0 = *arg0; lbl_1_bss_1B8 = *arg2; } -s32 fn_1_13DC(float arg0, Vec *arg1) { +s32 fn_1_13DC(float arg0, Vec *arg1) +{ Vec sp18; Vec spC; @@ -325,13 +340,15 @@ s32 fn_1_13DC(float arg0, Vec *arg1) { Hu3DCameraPosSetV(1, &sp18, arg1, &spC); if (1.0f <= arg0) { return 1; - } else { + } + else { lbl_1_bss_194 = 1; return 0; } } -void fn_1_1710(float arg0, Vec *arg1) { +void fn_1_1710(float arg0, Vec *arg1) +{ Vec sp18; Vec spC; @@ -341,7 +358,8 @@ void fn_1_1710(float arg0, Vec *arg1) { lbl_1_bss_194 = 1; } -void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) { +void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) +{ Mtx sp1C; Vec sp10; float temp_f30; @@ -368,7 +386,8 @@ void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) { arg2->z = 0.0f; } -void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) { +void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) +{ Mtx sp10; Hu3DModelObjMtxGet(arg0, arg1, sp10); @@ -377,7 +396,8 @@ void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) { arg2->z = sp10[2][3]; } -void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) { +void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) +{ Mtx spC; ModelData *var_r30; @@ -392,7 +412,8 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) { arg2->z = spC[2][3]; } -float fn_1_1E20(float arg0, float arg1, float arg2) { +float fn_1_1E20(float arg0, float arg1, float arg2) +{ float var_f31; float var_f30; @@ -410,11 +431,13 @@ float fn_1_1E20(float arg0, float arg1, float arg2) { return var_f30; } -void fn_1_1F24(s32 arg0) { +void fn_1_1F24(s32 arg0) +{ lbl_1_bss_198 = HuAudSeqPlay((s32)arg0); } -void fn_1_1F58(s32 arg0) { +void fn_1_1F58(s32 arg0) +{ if (lbl_1_bss_198 >= 0) { if (arg0 < 0) { arg0 = 1000; @@ -424,7 +447,8 @@ void fn_1_1F58(s32 arg0) { lbl_1_bss_198 = -1; } -void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { +void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) +{ Vec sp18; float var_f28; s32 var_r30; @@ -433,7 +457,7 @@ void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { sp18.y = 0.0f; sp18.z = 0.0f; sp18.x = arg2 / 4.0f; - sp18.z = -(float) arg3 / 4.0f; + sp18.z = -(float)arg3 / 4.0f; var_r30 = 0; var_f28 = VECMagXZ(&sp18); if (0.5f <= var_f28) { @@ -447,11 +471,12 @@ void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { *arg1 = fn_1_1E20(*arg1, atan2d(sp18.x, sp18.z), 0.4f); if (8.0f <= var_f28) { var_r30 = 2; - } else { + } + else { var_r30 = 1; } } - PSVECAdd((Vec*) &arg0, &sp18, (Vec*) &arg0); + PSVECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0); } omObjData *lbl_1_bss_4C; @@ -475,10 +500,7 @@ float lbl_1_bss_8; float lbl_1_bss_4; float lbl_1_bss_0; -s16 lbl_1_data_0[8] = { - 0, 1, 2, 3, - 4, 5, 6, 7 -}; +s16 lbl_1_data_0[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; Vec lbl_1_data_10 = { 0, 100, 400 }; Vec lbl_1_data_1C = { 0, 1, 0 }; @@ -496,572 +518,498 @@ Vec lbl_1_data_98 = { 0, 3000, 1000 }; Vec lbl_1_data_A4 = { 0, 0, 0 }; s32 lbl_1_data_B0[8][16] = { - { - 0x005F0000, - 0x00480000, - 0x00480008, - 0x00480010, - 0x00480018, - 0x00480020, - 0x005F0000, - 0x00480030, - 0x00480028, - 0x005F0017, - 0x005F0018 - }, - { - 0x001A0000, - 0x00480001, - 0x00480009, - 0x00480011, - 0x00480019, - 0x00480021, - 0x001A0000, - 0x00480031, - 0x00480029, - 0x001A0017, - 0x001A0018 - }, - { - 0x006D0000, - 0x00480002, - 0x0048000A, - 0x00480012, - 0x0048001A, - 0x00480022, - 0x006D0000, - 0x00480032, - 0x0048002A, - 0x006D0017, - 0x006D0018 - }, - { - 0x008A0000, - 0x00480003, - 0x0048000B, - 0x00480013, - 0x0048001B, - 0x00480023, - 0x008A0000, - 0x00480033, - 0x0048002B, - 0x008A0017, - 0x008A0018 - }, - { - 0x00850000, - 0x00480004, - 0x0048000C, - 0x00480014, - 0x0048001C, - 0x00480024, - 0x00850000, - 0x00480034, - 0x0048002C, - 0x00850017, - 0x00850018 - }, - { - 0x00110000, - 0x00480005, - 0x0048000D, - 0x00480015, - 0x0048001D, - 0x00480025, - 0x00110000, - 0x00480035, - 0x0048002D, - 0x00110017, - 0x00110018 - }, - { - 0x000D0000, - 0x00480006, - 0x0048000E, - 0x00480016, - 0x0048001E, - 0x00480026, - 0x000D0000, - 0x00480036, - 0x0048002E, - 0x000D0017, - 0x000D0018 - }, - { - 0x00810000, - 0x00480007, - 0x0048000F, - 0x00480017, - 0x0048001F, - 0x00480027, - 0x00810000, - 0x00480037, - 0x0048002F, - 0x00810017, - 0x00810018 - } + { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x08), + DATA_MAKE_NUM(DATADIR_M441, 0x10), + DATA_MAKE_NUM(DATADIR_M441, 0x18), + DATA_MAKE_NUM(DATADIR_M441, 0x20), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x30), + DATA_MAKE_NUM(DATADIR_M441, 0x28), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x01), + DATA_MAKE_NUM(DATADIR_M441, 0x09), + DATA_MAKE_NUM(DATADIR_M441, 0x11), + DATA_MAKE_NUM(DATADIR_M441, 0x19), + DATA_MAKE_NUM(DATADIR_M441, 0x21), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x31), + DATA_MAKE_NUM(DATADIR_M441, 0x29), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x02), + DATA_MAKE_NUM(DATADIR_M441, 0x0A), + DATA_MAKE_NUM(DATADIR_M441, 0x12), + DATA_MAKE_NUM(DATADIR_M441, 0x1A), + DATA_MAKE_NUM(DATADIR_M441, 0x22), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x32), + DATA_MAKE_NUM(DATADIR_M441, 0x2A), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x17), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x03), + DATA_MAKE_NUM(DATADIR_M441, 0x0B), + DATA_MAKE_NUM(DATADIR_M441, 0x13), + DATA_MAKE_NUM(DATADIR_M441, 0x1B), + DATA_MAKE_NUM(DATADIR_M441, 0x23), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x33), + DATA_MAKE_NUM(DATADIR_M441, 0x2B), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x04), + DATA_MAKE_NUM(DATADIR_M441, 0x0C), + DATA_MAKE_NUM(DATADIR_M441, 0x14), + DATA_MAKE_NUM(DATADIR_M441, 0x1C), + DATA_MAKE_NUM(DATADIR_M441, 0x24), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x34), + DATA_MAKE_NUM(DATADIR_M441, 0x2C), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x05), + DATA_MAKE_NUM(DATADIR_M441, 0x0D), + DATA_MAKE_NUM(DATADIR_M441, 0x15), + DATA_MAKE_NUM(DATADIR_M441, 0x1D), + DATA_MAKE_NUM(DATADIR_M441, 0x25), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x35), + DATA_MAKE_NUM(DATADIR_M441, 0x2D), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x06), + DATA_MAKE_NUM(DATADIR_M441, 0x0E), + DATA_MAKE_NUM(DATADIR_M441, 0x16), + DATA_MAKE_NUM(DATADIR_M441, 0x1E), + DATA_MAKE_NUM(DATADIR_M441, 0x26), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x36), + DATA_MAKE_NUM(DATADIR_M441, 0x2E), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x07), + DATA_MAKE_NUM(DATADIR_M441, 0x0F), + DATA_MAKE_NUM(DATADIR_M441, 0x17), + DATA_MAKE_NUM(DATADIR_M441, 0x1F), + DATA_MAKE_NUM(DATADIR_M441, 0x27), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_M441, 0x37), + DATA_MAKE_NUM(DATADIR_M441, 0x2F), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x18), + }, }; -s32 lbl_1_data_2B0[2] = { - 0x00480040, - 0x00480041 -}; +s32 lbl_1_data_2B0[2] = { DATA_MAKE_NUM(DATADIR_M441, 0x40), DATA_MAKE_NUM(DATADIR_M441, 0x41) }; s32 lbl_1_data_2B8[3] = { - 0x00480043, - 0x00480044, - 0x00480045 + DATA_MAKE_NUM(DATADIR_M441, 0x43), + DATA_MAKE_NUM(DATADIR_M441, 0x44), + DATA_MAKE_NUM(DATADIR_M441, 0x45), }; s32 lbl_1_data_2C4[4] = { - 0x00610022, - 0x00610021, - 0x0061002F, - 0x0061002F + DATA_MAKE_NUM(DATADIR_MGCONST, 0x22), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x21), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x2F), + DATA_MAKE_NUM(DATADIR_MGCONST, 0x2F), }; -float lbl_1_data_2D4[4][4] = { - -350, 0, 350, 135, - 350, 0, 350, 225, - 350, 0, -350, 315, - -350, 0, -350, 45 -}; +float lbl_1_data_2D4[4][4] = { -350, 0, 350, 135, 350, 0, 350, 225, 350, 0, -350, 315, -350, 0, -350, 45 }; s32 lbl_1_data_314[3] = { - 0x0048003D, - 0x0048003C, - 0x0048003B + DATA_MAKE_NUM(DATADIR_M441, 0x3D), + DATA_MAKE_NUM(DATADIR_M441, 0x3C), + DATA_MAKE_NUM(DATADIR_M441, 0x3B), }; s16 lbl_1_data_320[3] = { 10, 5, 2 }; s16 lbl_1_data_326[3] = { 1, 2, 3 }; -Vec lbl_1_data_32C[3] = { - { 0.5f, 0.5f, 0.5f }, - { 0.7f, 0.7f, 0.7f }, - { 0.9f, 0.9f, 0.9f } -}; +Vec lbl_1_data_32C[3] = { { 0.5f, 0.5f, 0.5f }, { 0.7f, 0.7f, 0.7f }, { 0.9f, 0.9f, 0.9f } }; -float lbl_1_data_350[3][2] = { - 0.5f, 4.0f, - 0.5f, 4.0f, - 2.0f, 6.0f -}; +float lbl_1_data_350[3][2] = { 0.5f, 4.0f, 0.5f, 4.0f, 2.0f, 6.0f }; -s32 lbl_1_data_368[1] = { 0x0048003E }; +s32 lbl_1_data_368[1] = { DATA_MAKE_NUM(DATADIR_M441, 0x3E) }; float lbl_1_data_36C[3] = { 0.7f, 85.0f, 22.0f }; float lbl_1_data_378[3] = { 0.8f, 70.0f, 27.0f }; float lbl_1_data_384[3] = { 0.9f, 55.0f, 32.0f }; float lbl_1_data_390[3] = { 1.0f, 40.0f, 37.0f }; -HsfanimStruct00 lbl_1_data_39C = { - 20, - { 0, 0 }, - 1, - 30, - 0, - { 0, -0.05f, 0 }, - 1.0f, - 0.99f, - 20.0f, - 0.98f, - 4, - { - { 128, 128, 128, 255 }, - { 255, 0, 255, 255 }, - { 0, 255, 255, 255 }, - { 255, 255, 255, 255 } - }, - { - { 128, 128, 128, 0 }, - { 255, 0, 255, 0 }, - { 0, 255, 255, 0 }, - { 255, 255, 255, 0 } - } -}; +HsfanimStruct00 lbl_1_data_39C = { 20, { 0, 0 }, 1, 30, 0, { 0, -0.05f, 0 }, 1.0f, 0.99f, 20.0f, 0.98f, 4, + { { 128, 128, 128, 255 }, { 255, 0, 255, 255 }, { 0, 255, 255, 255 }, { 255, 255, 255, 255 } }, + { { 128, 128, 128, 0 }, { 255, 0, 255, 0 }, { 0, 255, 255, 0 }, { 255, 255, 255, 0 } } }; -HsfanimStruct00 lbl_1_data_3EC = { - 30, - { 0, 0 }, - 1, - 0, - 360, - { 0, -0.05f, 0 }, - 10.0f, - 0.98f, - 20.0f, - 1.05f, - 4, - { - { 128, 128, 128, 255 }, - { 255, 0, 255, 255 }, - { 0, 255, 255, 255 }, - { 255, 255, 255, 255 } - }, - { - { 128, 128, 128, 0 }, - { 255, 0, 255, 0 }, - { 0, 255, 255, 0 }, - { 255, 255, 255, 0 } - } -}; +HsfanimStruct00 lbl_1_data_3EC = { 30, { 0, 0 }, 1, 0, 360, { 0, -0.05f, 0 }, 10.0f, 0.98f, 20.0f, 1.05f, 4, + { { 128, 128, 128, 255 }, { 255, 0, 255, 255 }, { 0, 255, 255, 255 }, { 255, 255, 255, 255 } }, + { { 128, 128, 128, 0 }, { 255, 0, 255, 0 }, { 0, 255, 255, 0 }, { 255, 255, 255, 0 } } }; HsfanimStruct00 lbl_1_data_43C = { - 60, - { 0, 0 }, - 1, - 0, - 360, - { 0, -0.05f, 0 }, - 10.0f, - 0.99f, - 30.0f, - 0.98f, - 1, - { - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 } - }, - { - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 } - }, + 60, + { 0, 0 }, + 1, + 0, + 360, + { 0, -0.05f, 0 }, + 10.0f, + 0.99f, + 30.0f, + 0.98f, + 1, + { { 255, 255, 255, 255 }, { 255, 255, 255, 255 }, { 255, 255, 255, 255 }, { 255, 255, 255, 255 } }, + { { 255, 255, 255, 0 }, { 255, 255, 255, 0 }, { 255, 255, 255, 0 }, { 255, 255, 255, 0 } }, }; HsfanimStruct00 lbl_1_data_48C = { - 30, - { 0, 0 }, - 1, - 10, - 360, - { 0, 0.1f, 0 }, - 1.0f, - 1.0f, - 30.0f, - 1.05f, - 1, - { - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 }, - { 255, 255, 255, 255 } - }, - { - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 }, - { 255, 255, 255, 0 } - }, + 30, + { 0, 0 }, + 1, + 10, + 360, + { 0, 0.1f, 0 }, + 1.0f, + 1.0f, + 30.0f, + 1.05f, + 1, + { { 255, 255, 255, 255 }, { 255, 255, 255, 255 }, { 255, 255, 255, 255 }, { 255, 255, 255, 255 } }, + { { 255, 255, 255, 0 }, { 255, 255, 255, 0 }, { 255, 255, 255, 0 }, { 255, 255, 255, 0 } }, }; #include "src/REL/executor.c" void fn_1_2454(omObjData *object) { - HuSysVWaitSet(1); - if(HuPadBtn[0] & PAD_BUTTON_X) { - lbl_1_bss_1A4 = -1; - } - print8(24, 32, 1.5f, "COUNT:%d MODE:%d MES:%d", lbl_1_bss_1A8, lbl_1_bss_4C->work[0], lbl_1_bss_19E); - print8(24, 48, 1.5f, "%f %f %f", lbl_1_bss_0, lbl_1_bss_8, lbl_1_bss_4); - print8(24, 64, 1.5f, "%x %x", HuMemHeapSizeGet(HEAP_SYSTEM)-HuMemUsedMallocSizeGet(HEAP_SYSTEM), HuMemHeapSizeGet(HEAP_DATA)-HuMemUsedMallocSizeGet(HEAP_DATA)); - lbl_1_bss_4 -= HuPadSubStkX[0]/59.0f; - lbl_1_bss_8 -= 4.0f*(HuPadSubStkY[0]/59.0f); - lbl_1_bss_0 -= (HuPadTrigL[0]/150.0f)*4.0f; - lbl_1_bss_0 += (HuPadTrigR[0]/150.0f)*4.0f; + HuSysVWaitSet(1); + if (HuPadBtn[0] & PAD_BUTTON_X) { + lbl_1_bss_1A4 = -1; + } + print8(24, 32, 1.5f, "COUNT:%d MODE:%d MES:%d", lbl_1_bss_1A8, lbl_1_bss_4C->work[0], lbl_1_bss_19E); + print8(24, 48, 1.5f, "%f %f %f", lbl_1_bss_0, lbl_1_bss_8, lbl_1_bss_4); + print8(24, 64, 1.5f, "%x %x", HuMemHeapSizeGet(HEAP_SYSTEM) - HuMemUsedMallocSizeGet(HEAP_SYSTEM), + HuMemHeapSizeGet(HEAP_DATA) - HuMemUsedMallocSizeGet(HEAP_DATA)); + lbl_1_bss_4 -= HuPadSubStkX[0] / 59.0f; + lbl_1_bss_8 -= 4.0f * (HuPadSubStkY[0] / 59.0f); + lbl_1_bss_0 -= (HuPadTrigL[0] / 150.0f) * 4.0f; + lbl_1_bss_0 += (HuPadTrigR[0] / 150.0f) * 4.0f; } typedef struct work_53E8 { - float *unk0; - Vec unk4; - Vec unk10; - Vec unk1C; - Vec unk28; - Vec unk34; - Vec unk40; - Vec unk4C; - float unk58; - float unk5C; - float unk60; - Vec unk64; - Vec unk70; - Vec unk7C; - float unk88; - float unk8C; - s32 unk90; - s32 unk94; - s32 unk98; - s32 unk9C; - s32 unkA0; - s32 unkA4; - s32 unkA8; - s32 unkAC; - s32 unkB0; - s32 unkB4; - s32 unkB8; - s32 unkBC; - s32 unkC0; - s32 unkC4[3]; - s32 unkD0[4]; - s16 unkE0; - float unkE4; + float *unk0; + Vec unk4; + Vec unk10; + Vec unk1C; + Vec unk28; + Vec unk34; + Vec unk40; + Vec unk4C; + float unk58; + float unk5C; + float unk60; + Vec unk64; + Vec unk70; + Vec unk7C; + float unk88; + float unk8C; + s32 unk90; + s32 unk94; + s32 unk98; + s32 unk9C; + s32 unkA0; + s32 unkA4; + s32 unkA8; + s32 unkAC; + s32 unkB0; + s32 unkB4; + s32 unkB8; + s32 unkBC; + s32 unkC0; + s32 unkC4[3]; + s32 unkD0[4]; + s16 unkE0; + float unkE4; } Work53E8; - void fn_1_273C(Work53E8 *arg0) { - float temp_f31 = arg0->unk4.x; - float temp_f30 = arg0->unk4.z; - float temp_f28 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(600.0f-arg0->unk60 < temp_f28) { - temp_f31 /= temp_f28; - temp_f30 /= temp_f28; - arg0->unk4.x = temp_f31*(600.0f-arg0->unk60); - arg0->unk4.z = temp_f30*(600.0f-arg0->unk60); - } + float temp_f31 = arg0->unk4.x; + float temp_f30 = arg0->unk4.z; + float temp_f28 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (600.0f - arg0->unk60 < temp_f28) { + temp_f31 /= temp_f28; + temp_f30 /= temp_f28; + arg0->unk4.x = temp_f31 * (600.0f - arg0->unk60); + arg0->unk4.z = temp_f30 * (600.0f - arg0->unk60); + } } void fn_1_2904(Work53E8 *arg0, s32 arg1) { - s32 i; - for(i=0; i<4; i++) { - Work53E8 *temp_r31 = lbl_1_bss_48[i]->data; - if(arg0->unkB0 != temp_r31->unkB0) { - float temp_f31 = arg0->unk4.x-temp_r31->unk4.x; - float temp_f30 = arg0->unk4.z-temp_r31->unk4.z; - float temp_f28 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(temp_f28 < arg0->unk60+temp_r31->unk60) { - if(arg1 && arg0->unk1C.z == temp_r31->unk1C.z) { - arg0->unk1C.z += 55.0f*((0 > arg0->unk4.z) ? -1 : 1); - } - if(0.0f == temp_f28) { - temp_f31 = 0.0f; - temp_f30 = -1.0f; - } else { - temp_f31 /= temp_f28; - temp_f30 /= temp_f28; - } - arg0->unk4.x = temp_r31->unk4.x+(temp_f31*(arg0->unk60+temp_r31->unk60)); - arg0->unk4.z = temp_r31->unk4.z+(temp_f30*(arg0->unk60+temp_r31->unk60)); - } - } - - } + s32 i; + for (i = 0; i < 4; i++) { + Work53E8 *temp_r31 = lbl_1_bss_48[i]->data; + if (arg0->unkB0 != temp_r31->unkB0) { + float temp_f31 = arg0->unk4.x - temp_r31->unk4.x; + float temp_f30 = arg0->unk4.z - temp_r31->unk4.z; + float temp_f28 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (temp_f28 < arg0->unk60 + temp_r31->unk60) { + if (arg1 && arg0->unk1C.z == temp_r31->unk1C.z) { + arg0->unk1C.z += 55.0f * ((0 > arg0->unk4.z) ? -1 : 1); + } + if (0.0f == temp_f28) { + temp_f31 = 0.0f; + temp_f30 = -1.0f; + } + else { + temp_f31 /= temp_f28; + temp_f30 /= temp_f28; + } + arg0->unk4.x = temp_r31->unk4.x + (temp_f31 * (arg0->unk60 + temp_r31->unk60)); + arg0->unk4.z = temp_r31->unk4.z + (temp_f30 * (arg0->unk60 + temp_r31->unk60)); + } + } + } } void fn_1_2BD4(Work53E8 *arg0, omObjData *arg1, s32 arg2) { - s32 temp_r29; - if(!arg2) { - arg0->unk10.x = 0; - arg0->unk10.y = 0; - arg0->unk10.z = 0; - arg0->unk10.x = arg0->unkA4/4.0f; - arg0->unk10.z = -((float)arg0->unkA8)/4.0f; - } - temp_r29 = 1; - arg0->unk5C = VECMagXZ(&arg0->unk10); - if(0.5f <= arg0->unk5C) { - if(10.0f <= arg0->unk5C) { - arg0->unk10.x /= arg0->unk5C; - arg0->unk10.z /= arg0->unk5C; - arg0->unk5C = 10.0f; - arg0->unk10.x = 10.0f*arg0->unk10.x; - arg0->unk10.z = 10.0f*arg0->unk10.z; - } - arg0->unk58 = fn_1_1E20(arg0->unk58, atan2d(arg0->unk10.x, arg0->unk10.z), 0.4f); - if(8.0f <= arg0->unk5C) { - temp_r29 = 3; - } else { - temp_r29 = 2; - } - } - VECAdd(&arg0->unk4, &arg0->unk10, &arg0->unk4); - fn_1_273C(arg0); - fn_1_2904(arg0, arg2); - if(arg2) { - temp_r29 += 6; - if(temp_r29 > 6) { - temp_r29 = 7; - } - } - if(temp_r29 >= 0 && arg0->unk9C != temp_r29) { - arg0->unk9C = temp_r29; - Hu3DMotionShiftSet(arg1->model[0], arg1->motion[arg0->unk9C], 0, 8, 0x40000001); - } + s32 temp_r29; + if (!arg2) { + arg0->unk10.x = 0; + arg0->unk10.y = 0; + arg0->unk10.z = 0; + arg0->unk10.x = arg0->unkA4 / 4.0f; + arg0->unk10.z = -((float)arg0->unkA8) / 4.0f; + } + temp_r29 = 1; + arg0->unk5C = VECMagXZ(&arg0->unk10); + if (0.5f <= arg0->unk5C) { + if (10.0f <= arg0->unk5C) { + arg0->unk10.x /= arg0->unk5C; + arg0->unk10.z /= arg0->unk5C; + arg0->unk5C = 10.0f; + arg0->unk10.x = 10.0f * arg0->unk10.x; + arg0->unk10.z = 10.0f * arg0->unk10.z; + } + arg0->unk58 = fn_1_1E20(arg0->unk58, atan2d(arg0->unk10.x, arg0->unk10.z), 0.4f); + if (8.0f <= arg0->unk5C) { + temp_r29 = 3; + } + else { + temp_r29 = 2; + } + } + VECAdd(&arg0->unk4, &arg0->unk10, &arg0->unk4); + fn_1_273C(arg0); + fn_1_2904(arg0, arg2); + if (arg2) { + temp_r29 += 6; + if (temp_r29 > 6) { + temp_r29 = 7; + } + } + if (temp_r29 >= 0 && arg0->unk9C != temp_r29) { + arg0->unk9C = temp_r29; + Hu3DMotionShiftSet(arg1->model[0], arg1->motion[arg0->unk9C], 0, 8, 0x40000001); + } } void fn_1_3404(Work53E8 *arg0) { - float temp_f31; - float temp_f30; - float temp_f27; - float temp_f26; - float temp_f25; - - if(NULL == arg0->unk0) { - return; - } - temp_f31 = 0; - temp_f30 = 0; - if(arg0->unk94 == 0) { - temp_f31 = arg0->unk7C.x-arg0->unk4.x; - temp_f30 = arg0->unk7C.z-arg0->unk4.z; - temp_f27 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(10.0f <= temp_f27) { - temp_f31 /= temp_f27; - temp_f30 /= temp_f27; - } else { - temp_f31 = 0; - temp_f30 = 0; - } - if(170.0f < temp_f27 && 224.0f > temp_f27) { - if(200.0f > arg0->unk7C.y) { - arg0->unkAC |= PAD_BUTTON_B; - } else { - arg0->unkAC |= PAD_BUTTON_A; - } - arg0->unk94 = 1; - arg0->unk8C = arg0->unk0[1]+((frandf()*arg0->unk0[1])/2); - temp_f25 = 1.0f-(lbl_1_bss_1A4/3600.0f); - if(0.25f < temp_f25) { - arg0->unk8C *= arg0->unk90/(arg0->unk0[2]*temp_f25); - } - if(arg0->unk8C < frandmod(100)) { - arg0->unk94 = 0; - } - } - } else { - if(arg0->unk94 == 1) { - arg0->unk94 = 2; - temp_f26 = 360.0f*frandf(); - temp_f27 = (600.0f-arg0->unk60)*frandf(); - arg0->unk70.x = temp_f27*sind(temp_f26); - arg0->unk70.y = 0; - arg0->unk70.z = temp_f27*cosd(temp_f26); - } - temp_f31 = arg0->unk70.x-arg0->unk4.x; - temp_f30 = arg0->unk70.z-arg0->unk4.z; - temp_f27 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(10.0f <= temp_f27) { - temp_f31 /= temp_f27; - temp_f30 /= temp_f27; - } else { - temp_f31 = 0; - temp_f30 = 0; - arg0->unk94 = 1; - } - arg0->unk8C--; - if(0.0f > arg0->unk8C) { - arg0->unk94 = 0; - } - } - arg0->unkA4 = (72.0f*temp_f31)*arg0->unk0[0]; - arg0->unkA8 = (72.0f*-temp_f30)*arg0->unk0[0]; - if(ABS(arg0->unkA4) > 72) { - arg0->unkA4 = ((arg0->unkA4 < 0) ? -1 : 1)*72; - } - if(ABS(arg0->unkA8) > 72) { - arg0->unkA8 = ((arg0->unkA8 < 0) ? -1 : 1)*72; - } + float temp_f31; + float temp_f30; + float temp_f27; + float temp_f26; + float temp_f25; + + if (NULL == arg0->unk0) { + return; + } + temp_f31 = 0; + temp_f30 = 0; + if (arg0->unk94 == 0) { + temp_f31 = arg0->unk7C.x - arg0->unk4.x; + temp_f30 = arg0->unk7C.z - arg0->unk4.z; + temp_f27 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (10.0f <= temp_f27) { + temp_f31 /= temp_f27; + temp_f30 /= temp_f27; + } + else { + temp_f31 = 0; + temp_f30 = 0; + } + if (170.0f < temp_f27 && 224.0f > temp_f27) { + if (200.0f > arg0->unk7C.y) { + arg0->unkAC |= PAD_BUTTON_B; + } + else { + arg0->unkAC |= PAD_BUTTON_A; + } + arg0->unk94 = 1; + arg0->unk8C = arg0->unk0[1] + ((frandf() * arg0->unk0[1]) / 2); + temp_f25 = 1.0f - (lbl_1_bss_1A4 / 3600.0f); + if (0.25f < temp_f25) { + arg0->unk8C *= arg0->unk90 / (arg0->unk0[2] * temp_f25); + } + if (arg0->unk8C < frandmod(100)) { + arg0->unk94 = 0; + } + } + } + else { + if (arg0->unk94 == 1) { + arg0->unk94 = 2; + temp_f26 = 360.0f * frandf(); + temp_f27 = (600.0f - arg0->unk60) * frandf(); + arg0->unk70.x = temp_f27 * sind(temp_f26); + arg0->unk70.y = 0; + arg0->unk70.z = temp_f27 * cosd(temp_f26); + } + temp_f31 = arg0->unk70.x - arg0->unk4.x; + temp_f30 = arg0->unk70.z - arg0->unk4.z; + temp_f27 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (10.0f <= temp_f27) { + temp_f31 /= temp_f27; + temp_f30 /= temp_f27; + } + else { + temp_f31 = 0; + temp_f30 = 0; + arg0->unk94 = 1; + } + arg0->unk8C--; + if (0.0f > arg0->unk8C) { + arg0->unk94 = 0; + } + } + arg0->unkA4 = (72.0f * temp_f31) * arg0->unk0[0]; + arg0->unkA8 = (72.0f * -temp_f30) * arg0->unk0[0]; + if (ABS(arg0->unkA4) > 72) { + arg0->unkA4 = ((arg0->unkA4 < 0) ? -1 : 1) * 72; + } + if (ABS(arg0->unkA8) > 72) { + arg0->unkA8 = ((arg0->unkA8 < 0) ? -1 : 1) * 72; + } } void fn_1_3B04(Work53E8 *arg0, omObjData *arg1) { - arg0->unk64.z++; - if(10.0f >= arg0->unk64.z) { - float temp_f31 = (0.3f*sind(180.0f*(arg0->unk64.z/10.0f)))+1.5f; - Hu3DModelScaleSet(arg1->model[2], temp_f31, temp_f31, temp_f31); - } + arg0->unk64.z++; + if (10.0f >= arg0->unk64.z) { + float temp_f31 = (0.3f * sind(180.0f * (arg0->unk64.z / 10.0f))) + 1.5f; + Hu3DModelScaleSet(arg1->model[2], temp_f31, temp_f31, temp_f31); + } } void fn_1_40A8(omObjData *object); void fn_1_3C00(omObjData *object) { - Work53E8 *work = object->data; - Mtx hookMtx; - Vec netOfs; - if(work->unk98 == 2004 && lbl_1_bss_4C->work[0] >= 1005) { - work->unk98 = 2007; - work->unk64.x = 20; - Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 20, 0x40000001); - object->func = fn_1_40A8; - return; - } - work->unk88 = 10000; - if(GWPlayerCfg[work->unkB0].iscom) { - work->unkA4 = 0; - work->unkA8 = 0; - work->unkAC = 0; - fn_1_3404(work); - } else { - work->unkA4 = HuPadStkX[work->unkB8]; - work->unkA8 = HuPadStkY[work->unkB8]; - work->unkAC = HuPadBtnDown[work->unkB8]; - } - switch(work->unk98) { - case 2004: - fn_1_2BD4(work, object, 0); - if(work->unkAC & PAD_BUTTON_A) { - work->unk98 = 2005; - work->unk64.x = 10; - work->unkE4 = 0; - Hu3DModelAttrReset(object->model[0], 0x40000001); - Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, 0); - Hu3DMotionSet(object->model[1], object->motion[11]); - HuAudFXEmiterPlay(1814, &work->unk4); - } - if(work->unkAC & PAD_BUTTON_B) { - work->unk98 = 2005; - work->unk64.x = 10; - work->unkE4 = 0; - Hu3DModelAttrReset(object->model[0], 0x40000001); - Hu3DMotionShiftSet(object->model[0], object->motion[5], 0, 8, 0); - Hu3DMotionSet(object->model[1], object->motion[11]); - HuAudFXEmiterPlay(1814, &work->unk4); - } - break; - - case 2005: - work->unk64.x--; - if(0.0f > work->unk64.x && 20.0f < Hu3DMotionTimeGet(object->model[0])) { - work->unk98++; - } - work->unkE4++; - if(240.0f < work->unkE4) { - work->unk98 = 2006; - } - break; - - case 2006: - work->unkE4++; - if(240.0f < work->unkE4 || Hu3DMotionEndCheck(object->model[0])) { - work->unk98 = 2004; - work->unk9C = 1; - Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 8, 0x40000001); - } - break; - - default: - OSReport("*** player mode error(%d)!!\n", work->unk98); - break; - } - omSetTra(object, work->unk4.x, work->unk4.y, work->unk4.z); - omSetRot(object, 0, work->unk58, 0); - netOfs.x = 0; - netOfs.y = 0; - netOfs.z = 170; - Hu3DModelObjMtxGet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), hookMtx); - MTXMultVec(hookMtx, &netOfs, &work->unk28); - + Work53E8 *work = object->data; + Mtx hookMtx; + Vec netOfs; + if (work->unk98 == 2004 && lbl_1_bss_4C->work[0] >= 1005) { + work->unk98 = 2007; + work->unk64.x = 20; + Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 20, 0x40000001); + object->func = fn_1_40A8; + return; + } + work->unk88 = 10000; + if (GWPlayerCfg[work->unkB0].iscom) { + work->unkA4 = 0; + work->unkA8 = 0; + work->unkAC = 0; + fn_1_3404(work); + } + else { + work->unkA4 = HuPadStkX[work->unkB8]; + work->unkA8 = HuPadStkY[work->unkB8]; + work->unkAC = HuPadBtnDown[work->unkB8]; + } + switch (work->unk98) { + case 2004: + fn_1_2BD4(work, object, 0); + if (work->unkAC & PAD_BUTTON_A) { + work->unk98 = 2005; + work->unk64.x = 10; + work->unkE4 = 0; + Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, 0); + Hu3DMotionSet(object->model[1], object->motion[11]); + HuAudFXEmiterPlay(1814, &work->unk4); + } + if (work->unkAC & PAD_BUTTON_B) { + work->unk98 = 2005; + work->unk64.x = 10; + work->unkE4 = 0; + Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DMotionShiftSet(object->model[0], object->motion[5], 0, 8, 0); + Hu3DMotionSet(object->model[1], object->motion[11]); + HuAudFXEmiterPlay(1814, &work->unk4); + } + break; + + case 2005: + work->unk64.x--; + if (0.0f > work->unk64.x && 20.0f < Hu3DMotionTimeGet(object->model[0])) { + work->unk98++; + } + work->unkE4++; + if (240.0f < work->unkE4) { + work->unk98 = 2006; + } + break; + + case 2006: + work->unkE4++; + if (240.0f < work->unkE4 || Hu3DMotionEndCheck(object->model[0])) { + work->unk98 = 2004; + work->unk9C = 1; + Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 8, 0x40000001); + } + break; + + default: + OSReport("*** player mode error(%d)!!\n", work->unk98); + break; + } + omSetTra(object, work->unk4.x, work->unk4.y, work->unk4.z); + omSetRot(object, 0, work->unk58, 0); + netOfs.x = 0; + netOfs.y = 0; + netOfs.z = 170; + Hu3DModelObjMtxGet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), hookMtx); + MTXMultVec(hookMtx, &netOfs, &work->unk28); } -static inline void fn_1_40A8InlineFunc(Vec *arg0, float arg1, float arg2, float arg3) { +static inline void fn_1_40A8InlineFunc(Vec *arg0, float arg1, float arg2, float arg3) +{ arg0->x = arg1; arg0->y = arg2; arg0->z = arg3; @@ -1071,1089 +1019,1103 @@ void fn_1_892C(s16 arg0, s16 arg1, Vec *arg2); void fn_1_40A8(omObjData *object) { - float angle; - Mtx hookMtx; - Vec pos3D; - Vec pos2D; - Work53E8 *work = object->data; - s32 i; - - switch(work->unk98) { - case 2000: - if(lbl_1_bss_4C->work[0] == 1002 && 90.0f < lbl_1_bss_28) { - work->unk98++; - work->unk64.x = 10.0f; - Hu3DModelAttrReset(object->model[0], 0x40000003); - Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 10, 0); - Hu3DMotionSet(object->model[1], object->motion[11]); - HuAudFXEmiterPlay(1814, &work->unk4); - } - break; - - case 2001: - work->unk64.x--; - if(0.0f > work->unk64.x && Hu3DMotionEndCheck(object->model[0])) { - work->unk98++; - work->unk64.x = 10.0f; - Hu3DMotionShiftSet(object->model[0], object->motion[5], 0, 10, 0); - Hu3DMotionSet(object->model[1], object->motion[11]); - HuAudFXEmiterPlay(1814, &work->unk4); - } - break; - - case 2002: - work->unk64.x--; - if(0.0f > work->unk64.x && Hu3DMotionEndCheck(object->model[0])) { - work->unk98++; - Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 10, 0x40000001); - } - break; - - case 2003: - if(lbl_1_bss_4C->work[0] >= 1004) { - work->unk98++; - object->func = fn_1_3C00; - } - break; - - case 2007: - work->unk64.x--; - if(0.0f > work->unk64.x && lbl_1_bss_4C->work[0] == 1006) { - work->unk98++; - work->unk64.x = 40; - Hu3DModelObjMtxGet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), hookMtx); - Hu3DMtxTransGet(hookMtx, &work->unk28); - Hu3DMtxRotGet(hookMtx, &work->unk34); - Hu3DMtxScaleGet(hookMtx, &work->unk40); - Hu3DModelPosSet(object->model[1], work->unk28.x, work->unk28.y, work->unk28.z); - Hu3DModelRotSet(object->model[1], work->unk34.x, work->unk34.y, work->unk34.z); - Hu3DModelScaleSet(object->model[1], work->unk40.x, work->unk40.y, work->unk40.z); - Hu3DModelHookObjReset(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0)); - } - break; - - case 2008: - work->unk28.y += 4; - work->unk34.x += 24.0f; - work->unk40.x *= 0.95f; - work->unk40.y *= 0.95f; - work->unk40.z *= 0.95f; - Hu3DModelPosSet(object->model[1], work->unk28.x, work->unk28.y, work->unk28.z); - Hu3DModelRotSet(object->model[1], work->unk34.x, work->unk34.y, work->unk34.z); - Hu3DModelScaleSet(object->model[1], work->unk40.x, work->unk40.y, work->unk40.z); - work->unk64.x--; - if(0.0f > work->unk64.x) { - float temp_f24; - work->unk98++; - work->unk64.x = 0; - temp_f24 = (work->unkB0*160.0f)-240.0f; - work->unk1C.x = temp_f24; - work->unk1C.y = 0; - work->unk1C.z = 0; - Hu3DModelAttrSet(object->model[1], 1); - work->unkE0 = Hu3DParManLink(lbl_1_bss_2C, &lbl_1_data_48C); - Hu3DParManPosSet(work->unkE0, work->unk28.x, work->unk28.y, work->unk28.z); - Hu3DParManAttrReset(work->unkE0, 1); - Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unkE0), 1); - Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unkE0), 4); - HuAudFXPlay(1815); - - } - break; - - case 2009: - work->unk64.x++; - if(10.0f == work->unk64.x) { - Hu3DParManAttrSet(work->unkE0, 1); - } - work->unk10.x = 0; - work->unk10.y = 0; - work->unk10.z = 0; - work->unk10.x = work->unk1C.x-work->unk4.x; - work->unk10.z = work->unk1C.z-work->unk4.z; - if(10.0f < work->unk64.x && 0.0f == work->unk10.x && 0.0f == work->unk10.z && 0.0f == work->unk1C.z) { - work->unk98++; - work->unkA0 = 1; - } else { - fn_1_2BD4(work, object, 1); - if(0.0f != work->unk1C.z) { - work->unk1C.z -= ((0.0f > work->unk1C.z) ? -1 : 1)*5.0f; - } - } - break; - - case 2010: - work->unk58 = fn_1_1E20(work->unk58, 0.0f, 0.5f); - angle = fmod(-work->unk58, 360.0f); - if(-180.0f > angle) { - angle += 360.0f; - } - if(work->unkA0) { - if(8.0f > ABS(angle)) { - work->unkA0 = 0; - Hu3DModelPosSet(object->model[2], 0, 0, -10); - Hu3DMotionShiftSet(object->model[0], object->motion[6], 0, 4, 0x40000001); - } - } - if(lbl_1_bss_4C->work[0] == 1007) { - work->unk98++; - work->unk64.x = 10.0f; - Hu3DModelAttrReset(object->model[0], 0x40000001); - Hu3DMotionShiftSet(object->model[0], object->motion[8], 0, 8, 0); - work->unk64.y = -90; - fn_1_40A8InlineFunc(&pos3D, work->unk4.x, 250, work->unk4.z); - Hu3D3Dto2D(&pos3D, 1, &pos2D); - espTPLvlSet(work->unkD0[0], 0.5f); - espPosSet(work->unkD0[0], pos2D.x, pos2D.y); - espPosSet(work->unkD0[1], pos2D.x, pos2D.y); - espPosSet(work->unkD0[2], pos2D.x-14, 10+pos2D.y); - espPosSet(work->unkD0[3], (pos2D.x-14)+28, 10+pos2D.y); - for(i=0; i<4; i++) { - espScaleSet(work->unkD0[i], 0.1f, 0.1f); - espBankSet(work->unkD0[i], 0); - espDispOn(work->unkD0[i]); - } - work->unkE0 = Hu3DParManLink(lbl_1_bss_34, &lbl_1_data_43C); - Hu3DParManPosSet(work->unkE0, pos3D.x, pos3D.y, pos3D.z); - } - break; - - case 2011: - work->unk64.y += 18.0f; - if(180.0f >= work->unk64.y) { - for(i=0; i<4; i++) { - espScaleSet(work->unkD0[i], sind(work->unk64.y)+1, sind(work->unk64.y)+1); - } - } - work->unk64.x--; - if(0.0f > work->unk64.x) { - float motTime = Hu3DMotionTimeGet(object->model[0]); - if(18.0f == motTime) { - Hu3DParManAttrSet(work->unkE0, 1); - Hu3DModelPosSet(object->model[2], 0, 0, 0); - Hu3DModelHookObjReset(object->model[0], CharModelHookNameGet(work->unkB4, 2, 4)); - Hu3DModelHookSet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), object->model[2]); - } - if(40.0f == motTime) { - work->unk64.z = 0; - Hu3DModelHookObjReset(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0)); - fn_1_1D18(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), &work->unk4C); - work->unk4C.z += 20.0f; - Hu3DModelPosSet(object->model[2], work->unk4C.x, work->unk4C.y, work->unk4C.z); - } - if(40.0f <= motTime) { - work->unk64.z++; - if(12.0f >= work->unk64.z) { - float scale = sind(150.0f*(work->unk64.z/12.0f))+1.0; - Hu3DModelScaleSet(object->model[2], scale, scale, scale); - } - } - if(Hu3DMotionEndCheck(object->model[0])) { - work->unk98++; - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DMotionSet(object->model[2], object->motion[14]); - for(i=0; i<4; i++) { - espScaleSet(work->unkD0[i], 1.0f, 1.0f); - } - } - } - break; - - case 2012: - if(Hu3DMotionEndCheck(object->model[2])) { - work->unk98++; - work->unk64.x = 0; - } - break; - - case 2013: - work->unk64.x--; - if(0.0f > work->unk64.x) { - s32 choType; - work->unk64.x = (20.0f*frandf())+20.0f; - choType = -1; - for(i=0; i<3; i++) { - if(choType < 0 && work->unkC4[i] > 0) { - choType = i; - } - } - if(choType < 0) { - work->unk98++; - work->unk64.x = 0; - } else { - lbl_1_bss_20++; - work->unkBC += lbl_1_data_326[choType]; - if(work->unkBC > 99) { - work->unkBC = 99; - } - work->unkC4[choType]--; - fn_1_892C(work->unkB0, choType, &work->unk4C); - HuAudFXPlay(1816); - espBankSet(work->unkD0[2], work->unkBC/10); - espBankSet(work->unkD0[3], work->unkBC%10); - work->unk64.z = 0; - } - } - break; - - case 2014: - work->unk64.x++; - if(30.0f == work->unk64.x) { - Hu3DModelAttrSet(object->model[2], 1); - work->unkE0 = Hu3DParManLink(lbl_1_bss_2C, &lbl_1_data_48C); - Hu3DParManPosSet(work->unkE0, work->unk4C.x, work->unk4C.y+20, work->unk4C.z); - Hu3DParManAttrReset(work->unkE0, 1); - Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unkE0), 1); - Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unkE0), 4); - HuAudFXPlay(1815); - } - if(40.0f == work->unk64.x) { - Hu3DParManAttrSet(work->unkE0, 1); - } - if(60.0f < work->unk64.x && work->unkC0 >= 0) { - work->unk98++; - if(work->unkC0 == 1) { - Hu3DMotionShiftSet(object->model[0], object->motion[9], 0, 20, 0); - } else { - Hu3DMotionShiftSet(object->model[0], object->motion[10], 0, 20, 0); - } - } - break; - - default: - OSReport("*** player mode error(%d)!!\n", work->unk98); - break; + float angle; + Mtx hookMtx; + Vec pos3D; + Vec pos2D; + Work53E8 *work = object->data; + s32 i; - case 2015: - break; - } - omSetTra(object, work->unk4.x, work->unk4.y, work->unk4.z); - omSetRot(object, 0, work->unk58, 0); + switch (work->unk98) { + case 2000: + if (lbl_1_bss_4C->work[0] == 1002 && 90.0f < lbl_1_bss_28) { + work->unk98++; + work->unk64.x = 10.0f; + Hu3DModelAttrReset(object->model[0], 0x40000003); + Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 10, 0); + Hu3DMotionSet(object->model[1], object->motion[11]); + HuAudFXEmiterPlay(1814, &work->unk4); + } + break; + + case 2001: + work->unk64.x--; + if (0.0f > work->unk64.x && Hu3DMotionEndCheck(object->model[0])) { + work->unk98++; + work->unk64.x = 10.0f; + Hu3DMotionShiftSet(object->model[0], object->motion[5], 0, 10, 0); + Hu3DMotionSet(object->model[1], object->motion[11]); + HuAudFXEmiterPlay(1814, &work->unk4); + } + break; + + case 2002: + work->unk64.x--; + if (0.0f > work->unk64.x && Hu3DMotionEndCheck(object->model[0])) { + work->unk98++; + Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 10, 0x40000001); + } + break; + + case 2003: + if (lbl_1_bss_4C->work[0] >= 1004) { + work->unk98++; + object->func = fn_1_3C00; + } + break; + + case 2007: + work->unk64.x--; + if (0.0f > work->unk64.x && lbl_1_bss_4C->work[0] == 1006) { + work->unk98++; + work->unk64.x = 40; + Hu3DModelObjMtxGet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), hookMtx); + Hu3DMtxTransGet(hookMtx, &work->unk28); + Hu3DMtxRotGet(hookMtx, &work->unk34); + Hu3DMtxScaleGet(hookMtx, &work->unk40); + Hu3DModelPosSet(object->model[1], work->unk28.x, work->unk28.y, work->unk28.z); + Hu3DModelRotSet(object->model[1], work->unk34.x, work->unk34.y, work->unk34.z); + Hu3DModelScaleSet(object->model[1], work->unk40.x, work->unk40.y, work->unk40.z); + Hu3DModelHookObjReset(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0)); + } + break; + + case 2008: + work->unk28.y += 4; + work->unk34.x += 24.0f; + work->unk40.x *= 0.95f; + work->unk40.y *= 0.95f; + work->unk40.z *= 0.95f; + Hu3DModelPosSet(object->model[1], work->unk28.x, work->unk28.y, work->unk28.z); + Hu3DModelRotSet(object->model[1], work->unk34.x, work->unk34.y, work->unk34.z); + Hu3DModelScaleSet(object->model[1], work->unk40.x, work->unk40.y, work->unk40.z); + work->unk64.x--; + if (0.0f > work->unk64.x) { + float temp_f24; + work->unk98++; + work->unk64.x = 0; + temp_f24 = (work->unkB0 * 160.0f) - 240.0f; + work->unk1C.x = temp_f24; + work->unk1C.y = 0; + work->unk1C.z = 0; + Hu3DModelAttrSet(object->model[1], 1); + work->unkE0 = Hu3DParManLink(lbl_1_bss_2C, &lbl_1_data_48C); + Hu3DParManPosSet(work->unkE0, work->unk28.x, work->unk28.y, work->unk28.z); + Hu3DParManAttrReset(work->unkE0, 1); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unkE0), 1); + Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unkE0), 4); + HuAudFXPlay(1815); + } + break; + + case 2009: + work->unk64.x++; + if (10.0f == work->unk64.x) { + Hu3DParManAttrSet(work->unkE0, 1); + } + work->unk10.x = 0; + work->unk10.y = 0; + work->unk10.z = 0; + work->unk10.x = work->unk1C.x - work->unk4.x; + work->unk10.z = work->unk1C.z - work->unk4.z; + if (10.0f < work->unk64.x && 0.0f == work->unk10.x && 0.0f == work->unk10.z && 0.0f == work->unk1C.z) { + work->unk98++; + work->unkA0 = 1; + } + else { + fn_1_2BD4(work, object, 1); + if (0.0f != work->unk1C.z) { + work->unk1C.z -= ((0.0f > work->unk1C.z) ? -1 : 1) * 5.0f; + } + } + break; + + case 2010: + work->unk58 = fn_1_1E20(work->unk58, 0.0f, 0.5f); + angle = fmod(-work->unk58, 360.0f); + if (-180.0f > angle) { + angle += 360.0f; + } + if (work->unkA0) { + if (8.0f > ABS(angle)) { + work->unkA0 = 0; + Hu3DModelPosSet(object->model[2], 0, 0, -10); + Hu3DMotionShiftSet(object->model[0], object->motion[6], 0, 4, 0x40000001); + } + } + if (lbl_1_bss_4C->work[0] == 1007) { + work->unk98++; + work->unk64.x = 10.0f; + Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DMotionShiftSet(object->model[0], object->motion[8], 0, 8, 0); + work->unk64.y = -90; + fn_1_40A8InlineFunc(&pos3D, work->unk4.x, 250, work->unk4.z); + Hu3D3Dto2D(&pos3D, 1, &pos2D); + espTPLvlSet(work->unkD0[0], 0.5f); + espPosSet(work->unkD0[0], pos2D.x, pos2D.y); + espPosSet(work->unkD0[1], pos2D.x, pos2D.y); + espPosSet(work->unkD0[2], pos2D.x - 14, 10 + pos2D.y); + espPosSet(work->unkD0[3], (pos2D.x - 14) + 28, 10 + pos2D.y); + for (i = 0; i < 4; i++) { + espScaleSet(work->unkD0[i], 0.1f, 0.1f); + espBankSet(work->unkD0[i], 0); + espDispOn(work->unkD0[i]); + } + work->unkE0 = Hu3DParManLink(lbl_1_bss_34, &lbl_1_data_43C); + Hu3DParManPosSet(work->unkE0, pos3D.x, pos3D.y, pos3D.z); + } + break; + + case 2011: + work->unk64.y += 18.0f; + if (180.0f >= work->unk64.y) { + for (i = 0; i < 4; i++) { + espScaleSet(work->unkD0[i], sind(work->unk64.y) + 1, sind(work->unk64.y) + 1); + } + } + work->unk64.x--; + if (0.0f > work->unk64.x) { + float motTime = Hu3DMotionTimeGet(object->model[0]); + if (18.0f == motTime) { + Hu3DParManAttrSet(work->unkE0, 1); + Hu3DModelPosSet(object->model[2], 0, 0, 0); + Hu3DModelHookObjReset(object->model[0], CharModelHookNameGet(work->unkB4, 2, 4)); + Hu3DModelHookSet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), object->model[2]); + } + if (40.0f == motTime) { + work->unk64.z = 0; + Hu3DModelHookObjReset(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0)); + fn_1_1D18(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), &work->unk4C); + work->unk4C.z += 20.0f; + Hu3DModelPosSet(object->model[2], work->unk4C.x, work->unk4C.y, work->unk4C.z); + } + if (40.0f <= motTime) { + work->unk64.z++; + if (12.0f >= work->unk64.z) { + float scale = sind(150.0f * (work->unk64.z / 12.0f)) + 1.0; + Hu3DModelScaleSet(object->model[2], scale, scale, scale); + } + } + if (Hu3DMotionEndCheck(object->model[0])) { + work->unk98++; + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DMotionSet(object->model[2], object->motion[14]); + for (i = 0; i < 4; i++) { + espScaleSet(work->unkD0[i], 1.0f, 1.0f); + } + } + } + break; + + case 2012: + if (Hu3DMotionEndCheck(object->model[2])) { + work->unk98++; + work->unk64.x = 0; + } + break; + + case 2013: + work->unk64.x--; + if (0.0f > work->unk64.x) { + s32 choType; + work->unk64.x = (20.0f * frandf()) + 20.0f; + choType = -1; + for (i = 0; i < 3; i++) { + if (choType < 0 && work->unkC4[i] > 0) { + choType = i; + } + } + if (choType < 0) { + work->unk98++; + work->unk64.x = 0; + } + else { + lbl_1_bss_20++; + work->unkBC += lbl_1_data_326[choType]; + if (work->unkBC > 99) { + work->unkBC = 99; + } + work->unkC4[choType]--; + fn_1_892C(work->unkB0, choType, &work->unk4C); + HuAudFXPlay(1816); + espBankSet(work->unkD0[2], work->unkBC / 10); + espBankSet(work->unkD0[3], work->unkBC % 10); + work->unk64.z = 0; + } + } + break; + + case 2014: + work->unk64.x++; + if (30.0f == work->unk64.x) { + Hu3DModelAttrSet(object->model[2], 1); + work->unkE0 = Hu3DParManLink(lbl_1_bss_2C, &lbl_1_data_48C); + Hu3DParManPosSet(work->unkE0, work->unk4C.x, work->unk4C.y + 20, work->unk4C.z); + Hu3DParManAttrReset(work->unkE0, 1); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unkE0), 1); + Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unkE0), 4); + HuAudFXPlay(1815); + } + if (40.0f == work->unk64.x) { + Hu3DParManAttrSet(work->unkE0, 1); + } + if (60.0f < work->unk64.x && work->unkC0 >= 0) { + work->unk98++; + if (work->unkC0 == 1) { + Hu3DMotionShiftSet(object->model[0], object->motion[9], 0, 20, 0); + } + else { + Hu3DMotionShiftSet(object->model[0], object->motion[10], 0, 20, 0); + } + } + break; + + default: + OSReport("*** player mode error(%d)!!\n", work->unk98); + break; + + case 2015: + break; + } + omSetTra(object, work->unk4.x, work->unk4.y, work->unk4.z); + omSetRot(object, 0, work->unk58, 0); } void fn_1_53E8(omObjData *object) { - Work53E8 *work = object->data; - s32 i; - - work->unk0 = NULL; - work->unk88 = 10000; - work->unk8C = 0; - work->unk90 = 0; - work->unk94 = 0; - work->unk7C.x = 0; - work->unk7C.y = 0; - work->unk7C.z = 0; - work->unkB0 = object->work[0]; - work->unkB4 = GWPlayerCfg[work->unkB0].character; - work->unkB8 = GWPlayerCfg[work->unkB0].pad_idx; - work->unk98 = 2000; - work->unkBC = 0; - work->unkC0 = -1; - for(i=0; i<3; i++) { - work->unkC4[i] = 0; - } - work->unk9C = 1; - work->unk60 = 50; - work->unk4.x = lbl_1_data_2D4[work->unkB0][0]; - work->unk4.y = lbl_1_data_2D4[work->unkB0][1]; - work->unk4.z = lbl_1_data_2D4[work->unkB0][2]; - work->unk58 = lbl_1_data_2D4[work->unkB0][3]; - work->unk4C.x = 0; - work->unk4C.y = 0; - work->unk4C.z = 0; - object->model[0] = CharModelCreate(lbl_1_data_0[work->unkB4], 2); - CharModelStepTypeSet(lbl_1_data_0[work->unkB4], 0); - for(i=0; i<16; i++) { - object->motion[i] = CharModelMotionCreate(lbl_1_data_0[work->unkB4], lbl_1_data_B0[work->unkB4][i]); - CharModelMotionSet(lbl_1_data_0[work->unkB4], object->motion[i]); - } - CharModelMotionIndexSet(work->unkB4, object->motion[2], 0x5F0002); - CharModelMotionIndexSet(work->unkB4, object->motion[7], 0x5F0002); - CharModelMotionIndexSet(work->unkB4, object->motion[3], 0x5F0003); - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DModelLayerSet(object->model[0], 2); - Hu3DMotionSet(object->model[0], object->motion[1]); - object->model[1] = Hu3DModelCreateFile(0x48003F); - for(i=11; i<=12; i++) { - object->motion[i] = Hu3DJointMotionFile(object->model[1], lbl_1_data_2B0[i-11]); - } - Hu3DModelAttrSet(object->model[1], 1); - Hu3DModelAttrReset(object->model[1], 0x40000001); - Hu3DModelLayerSet(object->model[1], 2); - Hu3DModelHookSet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), object->model[1]); - object->model[2] = Hu3DModelCreateFile(0x480042); - for(i=13; i<=15; i++) { - object->motion[i] = Hu3DJointMotionFile(object->model[2], lbl_1_data_2B8[i-13]); - } - Hu3DModelAttrSet(object->model[2], 1); - Hu3DModelAttrReset(object->model[2], 0x40000001); - Hu3DModelLayerSet(object->model[2], 2); - Hu3DModelHookSet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 4), object->model[2]); - for(i=0; i<4; i++) { - work->unkD0[i] = espEntry(lbl_1_data_2C4[i], 0, 0); - espDrawNoSet(work->unkD0[i], 0x40); - espDispOff(work->unkD0[i]); - espAttrSet(work->unkD0[i], HUSPR_ATTR_NOANIM); - espBankSet(work->unkD0[i], 0); - espPriSet(work->unkD0[i], 128-i); - espPosSet(work->unkD0[i], 0, 0); - if(i == 0) { - espColorSet(work->unkD0[i], 0, 0, 0); - } - } - omSetTra(object, work->unk4.x, work->unk4.y, work->unk4.z); - omSetRot(object, 0, work->unk58, 0); - for(i=0; i<3; i++) { - Hu3DModelShadowSet(object->model[i]); - } - for(i=0; i<3; i++) { - Hu3DModelAttrReset(object->model[i], 1); - } - if(GWPlayerCfg[work->unkB0].iscom) { - switch(GWPlayerCfg[work->unkB0].diff) { - case 0: - work->unk0 = lbl_1_data_36C; - break; - - case 1: - work->unk0 = lbl_1_data_378; - break; - - case 2: - work->unk0 = lbl_1_data_384; - break; - - case 3: - default: - work->unk0 = lbl_1_data_390; - break; - } - } - CharModelLayerSetAll2(6); - CharModelMotionDataClose(lbl_1_data_0[work->unkB4]); - object->func = fn_1_40A8; + Work53E8 *work = object->data; + s32 i; + + work->unk0 = NULL; + work->unk88 = 10000; + work->unk8C = 0; + work->unk90 = 0; + work->unk94 = 0; + work->unk7C.x = 0; + work->unk7C.y = 0; + work->unk7C.z = 0; + work->unkB0 = object->work[0]; + work->unkB4 = GWPlayerCfg[work->unkB0].character; + work->unkB8 = GWPlayerCfg[work->unkB0].pad_idx; + work->unk98 = 2000; + work->unkBC = 0; + work->unkC0 = -1; + for (i = 0; i < 3; i++) { + work->unkC4[i] = 0; + } + work->unk9C = 1; + work->unk60 = 50; + work->unk4.x = lbl_1_data_2D4[work->unkB0][0]; + work->unk4.y = lbl_1_data_2D4[work->unkB0][1]; + work->unk4.z = lbl_1_data_2D4[work->unkB0][2]; + work->unk58 = lbl_1_data_2D4[work->unkB0][3]; + work->unk4C.x = 0; + work->unk4C.y = 0; + work->unk4C.z = 0; + object->model[0] = CharModelCreate(lbl_1_data_0[work->unkB4], 2); + CharModelStepTypeSet(lbl_1_data_0[work->unkB4], 0); + for (i = 0; i < 16; i++) { + object->motion[i] = CharModelMotionCreate(lbl_1_data_0[work->unkB4], lbl_1_data_B0[work->unkB4][i]); + CharModelMotionSet(lbl_1_data_0[work->unkB4], object->motion[i]); + } + CharModelMotionIndexSet(work->unkB4, object->motion[2], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); + CharModelMotionIndexSet(work->unkB4, object->motion[7], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); + CharModelMotionIndexSet(work->unkB4, object->motion[3], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03)); + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelLayerSet(object->model[0], 2); + Hu3DMotionSet(object->model[0], object->motion[1]); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x3F)); + for (i = 11; i <= 12; i++) { + object->motion[i] = Hu3DJointMotionFile(object->model[1], lbl_1_data_2B0[i - 11]); + } + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrReset(object->model[1], 0x40000001); + Hu3DModelLayerSet(object->model[1], 2); + Hu3DModelHookSet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), object->model[1]); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x42)); + for (i = 13; i <= 15; i++) { + object->motion[i] = Hu3DJointMotionFile(object->model[2], lbl_1_data_2B8[i - 13]); + } + Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrReset(object->model[2], 0x40000001); + Hu3DModelLayerSet(object->model[2], 2); + Hu3DModelHookSet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 4), object->model[2]); + for (i = 0; i < 4; i++) { + work->unkD0[i] = espEntry(lbl_1_data_2C4[i], 0, 0); + espDrawNoSet(work->unkD0[i], 0x40); + espDispOff(work->unkD0[i]); + espAttrSet(work->unkD0[i], HUSPR_ATTR_NOANIM); + espBankSet(work->unkD0[i], 0); + espPriSet(work->unkD0[i], 128 - i); + espPosSet(work->unkD0[i], 0, 0); + if (i == 0) { + espColorSet(work->unkD0[i], 0, 0, 0); + } + } + omSetTra(object, work->unk4.x, work->unk4.y, work->unk4.z); + omSetRot(object, 0, work->unk58, 0); + for (i = 0; i < 3; i++) { + Hu3DModelShadowSet(object->model[i]); + } + for (i = 0; i < 3; i++) { + Hu3DModelAttrReset(object->model[i], 1); + } + if (GWPlayerCfg[work->unkB0].iscom) { + switch (GWPlayerCfg[work->unkB0].diff) { + case 0: + work->unk0 = lbl_1_data_36C; + break; + + case 1: + work->unk0 = lbl_1_data_378; + break; + + case 2: + work->unk0 = lbl_1_data_384; + break; + + case 3: + default: + work->unk0 = lbl_1_data_390; + break; + } + } + CharModelLayerSetAll2(6); + CharModelMotionDataClose(lbl_1_data_0[work->unkB4]); + object->func = fn_1_40A8; } typedef struct work_713C { - Vec unk0; - Vec unkC; - Vec unk18; - Vec unk24; - s16 unk30; - s32 unk34; - s32 unk38; + Vec unk0; + Vec unkC; + Vec unk18; + Vec unk24; + s16 unk30; + s32 unk34; + s32 unk38; } Work713C; void fn_1_5B2C(omObjData *object) { - Hu3DModelAttrSet(object->model[0], 1); - fn_1_24(object->work[0]+4096, object->model[0]); - lbl_1_bss_18[object->work[0]]--; - Hu3DParManKill(((Work713C *)object->data)->unk30); - omDelObjEx(lbl_1_bss_1DC, object); + Hu3DModelAttrSet(object->model[0], 1); + fn_1_24(object->work[0] + 4096, object->model[0]); + lbl_1_bss_18[object->work[0]]--; + Hu3DParManKill(((Work713C *)object->data)->unk30); + omDelObjEx(lbl_1_bss_1DC, object); } void fn_1_74F4(s32 arg0); void fn_1_5C04(omObjData *object) { - Work713C *temp_r31; - Work53E8 *temp_r29; - omObjData *temp_r28; - float *temp_r24; - - s32 temp_r23; - s32 temp_r22; - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f23; - float sp78; - temp_r31 = object->data; - if(lbl_1_bss_4C->work[0] < 1002) { - return; - } - if(temp_r31->unk38) { - if(lbl_1_bss_4C->work[0] >= 1006) { - fn_1_5B2C(object); - } else { - temp_r31->unk24.z--; - if(20.0f == temp_r31->unk24.z) { - Hu3DParManAttrSet(temp_r31->unk30, 1); - } - if(0.0f > temp_r31->unk24.z) { - fn_1_5B2C(object); - fn_1_74F4(1); - } - } - return; - } else { - if(lbl_1_bss_4C->work[0] >= 1006) { - temp_r31->unk18.y += 0.1f; - temp_r31->unk18.x = fn_1_1E20(temp_r31->unk18.x, (180.0f > temp_r31->unk18.x) ? 90.0f : 270.0f, 0.05f); - temp_r31->unk0.x += temp_r31->unk18.y*sind(temp_r31->unk18.x); - temp_r31->unk0.z += temp_r31->unk18.y*cosd(temp_r31->unk18.x); - if(1200.0f < ABS(temp_r31->unk0.x)) { - fn_1_5B2C(object); - return; - } - } else { - if(temp_r31->unk34) { - temp_f31 = -temp_r31->unk0.x; - temp_f30 = -temp_r31->unk0.z; - temp_r31->unk18.x = fn_1_1E20(temp_r31->unk18.x, atan2d(temp_f31, temp_f30), 0.05f); - temp_r31->unk0.x += temp_r31->unk18.y*sind(temp_r31->unk18.x); - temp_r31->unk0.z += temp_r31->unk18.y*cosd(temp_r31->unk18.x); - temp_f31 = -temp_r31->unk0.x; - temp_f30 = -temp_r31->unk0.z; - temp_f23 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(600.0f >= temp_f23) { - temp_r31->unk34 = 0; - } - } else { - temp_r31->unk18.x += ((frandf()*2.0f)-1.0f)*3.0f; - temp_r31->unk18.y += ((frandf()*2.0f)-1.0f)*0.1f; - temp_r24 = &lbl_1_data_350[object->work[0]][0]; - if(temp_r24[0] > temp_r31->unk18.y) { - temp_r31->unk18.y = temp_r24[0]; - } - if(temp_r24[1] < temp_r31->unk18.y) { - temp_r31->unk18.y = temp_r24[1]; - } - temp_r31->unk0.x += temp_r31->unk18.y*sind(temp_r31->unk18.x); - temp_r31->unk0.z += temp_r31->unk18.y*cosd(temp_r31->unk18.x); - temp_f31 = -temp_r31->unk0.x; - temp_f30 = -temp_r31->unk0.z; - temp_f23 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30)); - if(600.0f < temp_f23) { - temp_r31->unk18.x = fn_1_1E20(temp_r31->unk18.x, atan2d(temp_f31, temp_f30), 0.05f); - } - } - } - temp_f23 = ABS(temp_r31->unk24.y-temp_r31->unk0.y); - if(2.0f > temp_f23) { - temp_r31->unk24.x--; - if(0.0f > temp_r31->unk24.x) { - temp_r31->unk24.x = 60.0f; - if(frandmod(100) > 50) { - temp_r31->unk24.y = (frandf()*220.0f)+80.0f; - } - } - } else { - temp_r31->unk0.y += (temp_r31->unk24.y > temp_r31->unk0.y) ? 1.0f : -1.0f; - } - temp_r31->unk18.z += (frandf()*4.0f)+4.0f; - omSetTra(object, temp_r31->unk0.x, (sind(temp_r31->unk18.z)*10.0)+temp_r31->unk0.y, temp_r31->unk0.z); - omSetRot(object, 0, temp_r31->unk18.x+180.0f, 0); - if(temp_r31->unk30 >= 0) { - temp_f31 = sind(temp_r31->unk18.x+180.0f)*30; - temp_f30 = cosd(temp_r31->unk18.x+180.0f)*30; - Hu3DParManPosSet(temp_r31->unk30, temp_r31->unk0.x+temp_f31, temp_r31->unk0.y, temp_r31->unk0.z+temp_f30); - Hu3DParManVecSet(temp_r31->unk30, temp_r31->unk18.y*sind(temp_r31->unk18.x+180.0f), 0, temp_r31->unk18.y*cosd(temp_r31->unk18.x+180.0f)); - } - temp_r22 = -1; - for(temp_r23=0; temp_r23<4; temp_r23++) { - temp_r29 = lbl_1_bss_48[temp_r23]->data; - if(600.0f > VECMagXZ(&temp_r31->unk0)) { - temp_f31 = temp_r29->unk4.x-temp_r31->unk0.x; - temp_f30 = temp_r29->unk4.z-temp_r31->unk0.z; - temp_f23 = sqrtf((temp_f31*temp_f31)+(temp_f30*temp_f30))-170; - if(0.0f < temp_f23 && temp_r29->unk88 > temp_f23) { - temp_r29->unk88 = temp_f23; - temp_r29->unk7C = temp_r31->unk0; - } - } - if(temp_r29->unk98 == 2005) { - temp_f31 = temp_r29->unk28.x-temp_r31->unk0.x; - temp_f29 = temp_r29->unk28.y-temp_r31->unk0.y; - temp_f30 = temp_r29->unk28.z-temp_r31->unk0.z; - temp_f23 = VECMagPoint(temp_f31, temp_f29, temp_f30); - if(60.0f > temp_f23) { - if(temp_r22 < 0) { - temp_r22 = temp_r23; - } else if(frandmod(100) > 50) { - temp_r22 = temp_r23; - } - } - } - } - if(temp_r22 >= 0) { - temp_r31->unk38 = 1; - temp_r31->unk24.z = 30; - Hu3DParManKill(temp_r31->unk30); - temp_r31->unk30 = Hu3DParManLink(lbl_1_bss_34, &lbl_1_data_3EC); - Hu3DParManPosSet(temp_r31->unk30, temp_r31->unk0.x, temp_r31->unk0.y, temp_r31->unk0.z); - Hu3DParManColorSet(temp_r31->unk30, object->work[0]); - Hu3DModelAttrSet(object->model[0], 1); - temp_r28 = lbl_1_bss_48[temp_r22]; - temp_r29 = temp_r28->data; - temp_r29->unkC4[object->work[0]]++; - temp_r29->unk90 += lbl_1_data_326[object->work[0]]; - sp78 = Hu3DMotionTimeGet(temp_r28->model[1]); - Hu3DMotionSet(temp_r28->model[1], temp_r28->motion[12]); - Hu3DMotionTimeSet(temp_r28->model[1], sp78); - Hu3DMotionSet(temp_r28->model[2], temp_r28->motion[13]); - omVibrate(temp_r29->unkB0, 12, 6, 6); - HuAudFXEmiterPlay(1813, &temp_r31->unk0); - } - } + Work713C *temp_r31; + Work53E8 *temp_r29; + omObjData *temp_r28; + float *temp_r24; + + s32 temp_r23; + s32 temp_r22; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f23; + float sp78; + temp_r31 = object->data; + if (lbl_1_bss_4C->work[0] < 1002) { + return; + } + if (temp_r31->unk38) { + if (lbl_1_bss_4C->work[0] >= 1006) { + fn_1_5B2C(object); + } + else { + temp_r31->unk24.z--; + if (20.0f == temp_r31->unk24.z) { + Hu3DParManAttrSet(temp_r31->unk30, 1); + } + if (0.0f > temp_r31->unk24.z) { + fn_1_5B2C(object); + fn_1_74F4(1); + } + } + return; + } + else { + if (lbl_1_bss_4C->work[0] >= 1006) { + temp_r31->unk18.y += 0.1f; + temp_r31->unk18.x = fn_1_1E20(temp_r31->unk18.x, (180.0f > temp_r31->unk18.x) ? 90.0f : 270.0f, 0.05f); + temp_r31->unk0.x += temp_r31->unk18.y * sind(temp_r31->unk18.x); + temp_r31->unk0.z += temp_r31->unk18.y * cosd(temp_r31->unk18.x); + if (1200.0f < ABS(temp_r31->unk0.x)) { + fn_1_5B2C(object); + return; + } + } + else { + if (temp_r31->unk34) { + temp_f31 = -temp_r31->unk0.x; + temp_f30 = -temp_r31->unk0.z; + temp_r31->unk18.x = fn_1_1E20(temp_r31->unk18.x, atan2d(temp_f31, temp_f30), 0.05f); + temp_r31->unk0.x += temp_r31->unk18.y * sind(temp_r31->unk18.x); + temp_r31->unk0.z += temp_r31->unk18.y * cosd(temp_r31->unk18.x); + temp_f31 = -temp_r31->unk0.x; + temp_f30 = -temp_r31->unk0.z; + temp_f23 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (600.0f >= temp_f23) { + temp_r31->unk34 = 0; + } + } + else { + temp_r31->unk18.x += ((frandf() * 2.0f) - 1.0f) * 3.0f; + temp_r31->unk18.y += ((frandf() * 2.0f) - 1.0f) * 0.1f; + temp_r24 = &lbl_1_data_350[object->work[0]][0]; + if (temp_r24[0] > temp_r31->unk18.y) { + temp_r31->unk18.y = temp_r24[0]; + } + if (temp_r24[1] < temp_r31->unk18.y) { + temp_r31->unk18.y = temp_r24[1]; + } + temp_r31->unk0.x += temp_r31->unk18.y * sind(temp_r31->unk18.x); + temp_r31->unk0.z += temp_r31->unk18.y * cosd(temp_r31->unk18.x); + temp_f31 = -temp_r31->unk0.x; + temp_f30 = -temp_r31->unk0.z; + temp_f23 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + if (600.0f < temp_f23) { + temp_r31->unk18.x = fn_1_1E20(temp_r31->unk18.x, atan2d(temp_f31, temp_f30), 0.05f); + } + } + } + temp_f23 = ABS(temp_r31->unk24.y - temp_r31->unk0.y); + if (2.0f > temp_f23) { + temp_r31->unk24.x--; + if (0.0f > temp_r31->unk24.x) { + temp_r31->unk24.x = 60.0f; + if (frandmod(100) > 50) { + temp_r31->unk24.y = (frandf() * 220.0f) + 80.0f; + } + } + } + else { + temp_r31->unk0.y += (temp_r31->unk24.y > temp_r31->unk0.y) ? 1.0f : -1.0f; + } + temp_r31->unk18.z += (frandf() * 4.0f) + 4.0f; + omSetTra(object, temp_r31->unk0.x, (sind(temp_r31->unk18.z) * 10.0) + temp_r31->unk0.y, temp_r31->unk0.z); + omSetRot(object, 0, temp_r31->unk18.x + 180.0f, 0); + if (temp_r31->unk30 >= 0) { + temp_f31 = sind(temp_r31->unk18.x + 180.0f) * 30; + temp_f30 = cosd(temp_r31->unk18.x + 180.0f) * 30; + Hu3DParManPosSet(temp_r31->unk30, temp_r31->unk0.x + temp_f31, temp_r31->unk0.y, temp_r31->unk0.z + temp_f30); + Hu3DParManVecSet( + temp_r31->unk30, temp_r31->unk18.y * sind(temp_r31->unk18.x + 180.0f), 0, temp_r31->unk18.y * cosd(temp_r31->unk18.x + 180.0f)); + } + temp_r22 = -1; + for (temp_r23 = 0; temp_r23 < 4; temp_r23++) { + temp_r29 = lbl_1_bss_48[temp_r23]->data; + if (600.0f > VECMagXZ(&temp_r31->unk0)) { + temp_f31 = temp_r29->unk4.x - temp_r31->unk0.x; + temp_f30 = temp_r29->unk4.z - temp_r31->unk0.z; + temp_f23 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)) - 170; + if (0.0f < temp_f23 && temp_r29->unk88 > temp_f23) { + temp_r29->unk88 = temp_f23; + temp_r29->unk7C = temp_r31->unk0; + } + } + if (temp_r29->unk98 == 2005) { + temp_f31 = temp_r29->unk28.x - temp_r31->unk0.x; + temp_f29 = temp_r29->unk28.y - temp_r31->unk0.y; + temp_f30 = temp_r29->unk28.z - temp_r31->unk0.z; + temp_f23 = VECMagPoint(temp_f31, temp_f29, temp_f30); + if (60.0f > temp_f23) { + if (temp_r22 < 0) { + temp_r22 = temp_r23; + } + else if (frandmod(100) > 50) { + temp_r22 = temp_r23; + } + } + } + } + if (temp_r22 >= 0) { + temp_r31->unk38 = 1; + temp_r31->unk24.z = 30; + Hu3DParManKill(temp_r31->unk30); + temp_r31->unk30 = Hu3DParManLink(lbl_1_bss_34, &lbl_1_data_3EC); + Hu3DParManPosSet(temp_r31->unk30, temp_r31->unk0.x, temp_r31->unk0.y, temp_r31->unk0.z); + Hu3DParManColorSet(temp_r31->unk30, object->work[0]); + Hu3DModelAttrSet(object->model[0], 1); + temp_r28 = lbl_1_bss_48[temp_r22]; + temp_r29 = temp_r28->data; + temp_r29->unkC4[object->work[0]]++; + temp_r29->unk90 += lbl_1_data_326[object->work[0]]; + sp78 = Hu3DMotionTimeGet(temp_r28->model[1]); + Hu3DMotionSet(temp_r28->model[1], temp_r28->motion[12]); + Hu3DMotionTimeSet(temp_r28->model[1], sp78); + Hu3DMotionSet(temp_r28->model[2], temp_r28->motion[13]); + omVibrate(temp_r29->unkB0, 12, 6, 6); + HuAudFXEmiterPlay(1813, &temp_r31->unk0); + } + } } void fn_1_713C(omObjData *object) { - Work713C *work = object->data; - s16 mdlId = fn_1_AC(object->work[0]+4096); - Vec *scale; - if(mdlId < 0) { - object->model[0] = Hu3DModelLink(lbl_1_bss_12[object->work[0]]); - } else { - object->model[0] = mdlId; - } - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000003); - Hu3DModelLayerSet(object->model[0], 3); - Hu3DModelShadowSet(object->model[0]); - scale = &lbl_1_data_32C[object->work[0]]; - omSetTra(object, work->unk0.x, work->unk0.y, work->unk0.z); - omSetRot(object, 0, work->unk18.x+180, 0); - omSetSca(object, scale->x, scale->y, scale->z); - work->unk30 = Hu3DParManLink(lbl_1_bss_34, &lbl_1_data_39C); - if(work->unk30 >= 0) { - float x = sind(work->unk18.x+180)*30.0; - float y = cosd(work->unk18.x+180)*30.0; - Hu3DParManPosSet(work->unk30, work->unk0.x+x, work->unk0.y, work->unk0.z+y); - Hu3DParManVecSet(work->unk30, work->unk18.y*sind(work->unk18.x+180.0f), 0, work->unk18.y*cosd(work->unk18.x+180.0f)); - Hu3DParManAttrSet(work->unk30, 0x804); - Hu3DParManAttrReset(work->unk30, 1); - Hu3DParManColorSet(work->unk30, object->work[0]); - Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unk30), 1); - Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unk30), 4); - - } - Hu3DModelAttrReset(object->model[0], 0x40000002); - Hu3DModelAttrReset(object->model[0], 1); - object->func = fn_1_5C04; + Work713C *work = object->data; + s16 mdlId = fn_1_AC(object->work[0] + 4096); + Vec *scale; + if (mdlId < 0) { + object->model[0] = Hu3DModelLink(lbl_1_bss_12[object->work[0]]); + } + else { + object->model[0] = mdlId; + } + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], 0x40000003); + Hu3DModelLayerSet(object->model[0], 3); + Hu3DModelShadowSet(object->model[0]); + scale = &lbl_1_data_32C[object->work[0]]; + omSetTra(object, work->unk0.x, work->unk0.y, work->unk0.z); + omSetRot(object, 0, work->unk18.x + 180, 0); + omSetSca(object, scale->x, scale->y, scale->z); + work->unk30 = Hu3DParManLink(lbl_1_bss_34, &lbl_1_data_39C); + if (work->unk30 >= 0) { + float x = sind(work->unk18.x + 180) * 30.0; + float y = cosd(work->unk18.x + 180) * 30.0; + Hu3DParManPosSet(work->unk30, work->unk0.x + x, work->unk0.y, work->unk0.z + y); + Hu3DParManVecSet(work->unk30, work->unk18.y * sind(work->unk18.x + 180.0f), 0, work->unk18.y * cosd(work->unk18.x + 180.0f)); + Hu3DParManAttrSet(work->unk30, 0x804); + Hu3DParManAttrReset(work->unk30, 1); + Hu3DParManColorSet(work->unk30, object->work[0]); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unk30), 1); + Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unk30), 4); + } + Hu3DModelAttrReset(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[0], 1); + object->func = fn_1_5C04; } void fn_1_74F4(s32 arg0) { - s16 no = -1; - s16 i; - omObjData *object; - Work713C *work; - float radius; - for(i=0; i<3; i++) { - if(lbl_1_data_320[i] > lbl_1_bss_18[i]) { - no = i; - } - } - if(no < 0) { - return; - } - lbl_1_bss_18[no]++; - object = omAddObjEx(lbl_1_bss_1DC, 101, 1, 0, 1, fn_1_713C); - object->work[0] = no; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work713C), MEMORY_DEFAULT_NUM); - work = object->data; - work->unk34 = arg0; - work->unk18.z = 0; - work->unk38 = 0; - work->unk18.y = 2; - work->unk24.x = (frandf()*180.0f)+180.0f; - if(arg0) { - work->unk18.y = 3; - work->unk18.x = 180.0f-(frandf()*120.0f); - if(frandmod(100) > 50) { - work->unk18.x = 360.0f-work->unk18.x; - } - radius = 1200; - work->unk0.x = radius*sind(work->unk18.x+180.0f); - work->unk0.y = (frandf()*220.0f)+80.0f; - work->unk0.z = radius*cosd(work->unk18.x+180.0f); - } else { - if(lbl_1_bss_C) { - lbl_1_bss_C = 0; - work->unk18.x = 45.0f+(frandf()*90.0f); - if(frandmod(100) > 50) { - work->unk18.x += 180.0f; - } - work->unk0.x = 0; - work->unk0.y = 80; - work->unk0.z = 0; - } else { - repeat: - radius = 300; - radius += radius*frandf(); - work->unk18.x = 360.0f*frandf(); - work->unk0.x = radius*sind(work->unk18.x); - work->unk0.y = (frandf()*220.0f)+80.0f; - work->unk0.z = radius*cosd(work->unk18.x); - if(0.0f < work->unk0.y) { - if(150.0f > ABS(work->unk0.x)) { - goto repeat; - } - } - } - } - work->unk24.y = work->unk0.y; + s16 no = -1; + s16 i; + omObjData *object; + Work713C *work; + float radius; + for (i = 0; i < 3; i++) { + if (lbl_1_data_320[i] > lbl_1_bss_18[i]) { + no = i; + } + } + if (no < 0) { + return; + } + lbl_1_bss_18[no]++; + object = omAddObjEx(lbl_1_bss_1DC, 101, 1, 0, 1, fn_1_713C); + object->work[0] = no; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work713C), MEMORY_DEFAULT_NUM); + work = object->data; + work->unk34 = arg0; + work->unk18.z = 0; + work->unk38 = 0; + work->unk18.y = 2; + work->unk24.x = (frandf() * 180.0f) + 180.0f; + if (arg0) { + work->unk18.y = 3; + work->unk18.x = 180.0f - (frandf() * 120.0f); + if (frandmod(100) > 50) { + work->unk18.x = 360.0f - work->unk18.x; + } + radius = 1200; + work->unk0.x = radius * sind(work->unk18.x + 180.0f); + work->unk0.y = (frandf() * 220.0f) + 80.0f; + work->unk0.z = radius * cosd(work->unk18.x + 180.0f); + } + else { + if (lbl_1_bss_C) { + lbl_1_bss_C = 0; + work->unk18.x = 45.0f + (frandf() * 90.0f); + if (frandmod(100) > 50) { + work->unk18.x += 180.0f; + } + work->unk0.x = 0; + work->unk0.y = 80; + work->unk0.z = 0; + } + else { + repeat: + radius = 300; + radius += radius * frandf(); + work->unk18.x = 360.0f * frandf(); + work->unk0.x = radius * sind(work->unk18.x); + work->unk0.y = (frandf() * 220.0f) + 80.0f; + work->unk0.z = radius * cosd(work->unk18.x); + if (0.0f < work->unk0.y) { + if (150.0f > ABS(work->unk0.x)) { + goto repeat; + } + } + } + } + work->unk24.y = work->unk0.y; } void fn_1_7958(omObjData *object) { - Hu3DModelAttrSet(object->model[0], 1); - fn_1_24(object->work[0]+4096, object->model[0]); - Hu3DParManKill(((Work713C *)object->data)->unk30); - omDelObjEx(lbl_1_bss_1DC, object); - lbl_1_bss_1E--; + Hu3DModelAttrSet(object->model[0], 1); + fn_1_24(object->work[0] + 4096, object->model[0]); + Hu3DParManKill(((Work713C *)object->data)->unk30); + omDelObjEx(lbl_1_bss_1DC, object); + lbl_1_bss_1E--; } void fn_1_7A2C(omObjData *object) { - Work713C *work = object->data; - float x = work->unkC.x-work->unk0.x; - float y = work->unkC.y-work->unk0.y; - float len = sqrtf((x*x)+(y*y)); - if(10.0f > len) { - work->unk18.y--; - if(0.0f > work->unk18.y) { - work->unk18.y = 0; - } - work->unk18.x = fn_1_1E20(work->unk18.x, 0.0f, 0.05f); - } else { - work->unk18.y += 0.1f; - if(3.0f < work->unk18.y) { - work->unk18.y = 3.0f; - } - work->unk18.x = fn_1_1E20(work->unk18.x, atan2d(-x, y), 0.05f); - } - work->unk0.x -= work->unk18.y*sind(work->unk18.x); - work->unk0.y += work->unk18.y*cosd(work->unk18.x); - omSetTra(object, work->unk0.x, work->unk0.y, work->unk0.z); - omSetRot(object, 90, 0, work->unk18.x); - if(work->unk30 >= 0) { - Hu3DParManPosSet(work->unk30, work->unk0.x, work->unk0.y, work->unk0.z); - Hu3DParManVecSet(work->unk30, -2*sind(work->unk18.x+180.0f), 2*cosd(work->unk18.x+180.0f), 0); - } + Work713C *work = object->data; + float x = work->unkC.x - work->unk0.x; + float y = work->unkC.y - work->unk0.y; + float len = sqrtf((x * x) + (y * y)); + if (10.0f > len) { + work->unk18.y--; + if (0.0f > work->unk18.y) { + work->unk18.y = 0; + } + work->unk18.x = fn_1_1E20(work->unk18.x, 0.0f, 0.05f); + } + else { + work->unk18.y += 0.1f; + if (3.0f < work->unk18.y) { + work->unk18.y = 3.0f; + } + work->unk18.x = fn_1_1E20(work->unk18.x, atan2d(-x, y), 0.05f); + } + work->unk0.x -= work->unk18.y * sind(work->unk18.x); + work->unk0.y += work->unk18.y * cosd(work->unk18.x); + omSetTra(object, work->unk0.x, work->unk0.y, work->unk0.z); + omSetRot(object, 90, 0, work->unk18.x); + if (work->unk30 >= 0) { + Hu3DParManPosSet(work->unk30, work->unk0.x, work->unk0.y, work->unk0.z); + Hu3DParManVecSet(work->unk30, -2 * sind(work->unk18.x + 180.0f), 2 * cosd(work->unk18.x + 180.0f), 0); + } } void fn_1_803C(omObjData *object) { - Work713C *work = object->data; - float x; - float y; - work->unk18.y -= 0.1f; - if(2.0f > work->unk18.y) { - work->unk18.y = 2.0f; - if(work->unkC.y > work->unk0.y) { - x = work->unkC.x-work->unk0.x; - y = work->unkC.y-work->unk0.y; - work->unk18.x = fn_1_1E20(work->unk18.x, atan2d(-x, y), 0.05f); - } - } - - work->unk0.x -= work->unk18.y*sind(work->unk18.x); - work->unk0.y += work->unk18.y*cosd(work->unk18.x); - omSetTra(object, work->unk0.x, work->unk0.y, work->unk0.z); - omSetRot(object, 90, 0, work->unk18.x); - if(work->unk30 >= 0) { - x = sind(work->unk18.x+180)*-20.0; - y = cosd(work->unk18.x+180)*20.0; - Hu3DParManPosSet(work->unk30, work->unk0.x+x, work->unk0.y+y, work->unk0.z); - Hu3DParManVecSet(work->unk30, -work->unk18.y*sind(work->unk18.x+180.0f), work->unk18.y*cosd(work->unk18.x+180.0f), 0); - } - if(450.0f < work->unk0.y) { - fn_1_7958(object); - } + Work713C *work = object->data; + float x; + float y; + work->unk18.y -= 0.1f; + if (2.0f > work->unk18.y) { + work->unk18.y = 2.0f; + if (work->unkC.y > work->unk0.y) { + x = work->unkC.x - work->unk0.x; + y = work->unkC.y - work->unk0.y; + work->unk18.x = fn_1_1E20(work->unk18.x, atan2d(-x, y), 0.05f); + } + } + + work->unk0.x -= work->unk18.y * sind(work->unk18.x); + work->unk0.y += work->unk18.y * cosd(work->unk18.x); + omSetTra(object, work->unk0.x, work->unk0.y, work->unk0.z); + omSetRot(object, 90, 0, work->unk18.x); + if (work->unk30 >= 0) { + x = sind(work->unk18.x + 180) * -20.0; + y = cosd(work->unk18.x + 180) * 20.0; + Hu3DParManPosSet(work->unk30, work->unk0.x + x, work->unk0.y + y, work->unk0.z); + Hu3DParManVecSet(work->unk30, -work->unk18.y * sind(work->unk18.x + 180.0f), work->unk18.y * cosd(work->unk18.x + 180.0f), 0); + } + if (450.0f < work->unk0.y) { + fn_1_7958(object); + } } void fn_1_8518(omObjData *object) { - Work713C *work; - s16 mdlId = fn_1_AC(object->work[0]+4096); - Vec *scale; - if(mdlId < 0) { - object->model[0] = Hu3DModelLink(lbl_1_bss_12[object->work[0]]); - } else { - object->model[0] = mdlId; - } - work = object->data; - work->unk18.y = 6.0f; - work->unk18.x = (frandf()*60.0f)-30.0f; - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000003); - Hu3DModelLayerSet(object->model[0], 3); - Hu3DModelShadowSet(object->model[0]); - scale = &lbl_1_data_32C[object->work[0]]; - omSetTra(object, work->unk0.x, work->unk0.y, work->unk0.z); - omSetRot(object, 90, 0, work->unk18.x); - omSetSca(object, scale->x*0.5f, scale->y*0.5f, scale->z*0.5f); - work->unk30 = Hu3DParManLink(lbl_1_bss_34, &lbl_1_data_39C); - if(work->unk30 >= 0) { - float x = sind(work->unk18.x+180)*-20.0; - float y = cosd(work->unk18.x+180)*20.0; - Hu3DParManPosSet(work->unk30, work->unk0.x+x, work->unk0.y+y, work->unk0.z); - Hu3DParManVecSet(work->unk30, -work->unk18.y*sind(work->unk18.x+180.0f), work->unk18.y*cosd(work->unk18.x+180.0f), 0); - Hu3DParManAttrSet(work->unk30, 0x804); - Hu3DParManAttrReset(work->unk30, 1); - Hu3DParManColorSet(work->unk30, object->work[0]); - Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unk30), 1); - Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unk30), 4); - - } - Hu3DModelAttrReset(object->model[0], 0x40000002); - Hu3DModelAttrReset(object->model[0], 1); - object->func = fn_1_803C; + Work713C *work; + s16 mdlId = fn_1_AC(object->work[0] + 4096); + Vec *scale; + if (mdlId < 0) { + object->model[0] = Hu3DModelLink(lbl_1_bss_12[object->work[0]]); + } + else { + object->model[0] = mdlId; + } + work = object->data; + work->unk18.y = 6.0f; + work->unk18.x = (frandf() * 60.0f) - 30.0f; + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], 0x40000003); + Hu3DModelLayerSet(object->model[0], 3); + Hu3DModelShadowSet(object->model[0]); + scale = &lbl_1_data_32C[object->work[0]]; + omSetTra(object, work->unk0.x, work->unk0.y, work->unk0.z); + omSetRot(object, 90, 0, work->unk18.x); + omSetSca(object, scale->x * 0.5f, scale->y * 0.5f, scale->z * 0.5f); + work->unk30 = Hu3DParManLink(lbl_1_bss_34, &lbl_1_data_39C); + if (work->unk30 >= 0) { + float x = sind(work->unk18.x + 180) * -20.0; + float y = cosd(work->unk18.x + 180) * 20.0; + Hu3DParManPosSet(work->unk30, work->unk0.x + x, work->unk0.y + y, work->unk0.z); + Hu3DParManVecSet(work->unk30, -work->unk18.y * sind(work->unk18.x + 180.0f), work->unk18.y * cosd(work->unk18.x + 180.0f), 0); + Hu3DParManAttrSet(work->unk30, 0x804); + Hu3DParManAttrReset(work->unk30, 1); + Hu3DParManColorSet(work->unk30, object->work[0]); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unk30), 1); + Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unk30), 4); + } + Hu3DModelAttrReset(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[0], 1); + object->func = fn_1_803C; } void fn_1_892C(s16 arg0, s16 arg1, Vec *arg2) { - omObjData *object; - Work713C *work; - float x; - float y; - float z; - if(lbl_1_bss_1E >= 400) { - OSReport("over!!\n"); - return; - } - lbl_1_bss_1E++; - object = omAddObjEx(lbl_1_bss_1DC, 102, 1, 0, 2, fn_1_8518); - object->work[0] = arg1; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work713C), MEMORY_DEFAULT_NUM); - work = object->data; - fn_1_40A8InlineFunc(&work->unk0, arg2->x, arg2->y+10, arg2->z+8); - fn_1_40A8InlineFunc(&work->unkC, arg2->x, 250, arg2->z); + omObjData *object; + Work713C *work; + float x; + float y; + float z; + if (lbl_1_bss_1E >= 400) { + OSReport("over!!\n"); + return; + } + lbl_1_bss_1E++; + object = omAddObjEx(lbl_1_bss_1DC, 102, 1, 0, 2, fn_1_8518); + object->work[0] = arg1; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work713C), MEMORY_DEFAULT_NUM); + work = object->data; + fn_1_40A8InlineFunc(&work->unk0, arg2->x, arg2->y + 10, arg2->z + 8); + fn_1_40A8InlineFunc(&work->unkC, arg2->x, 250, arg2->z); } s32 fn_1_8AA0(s32 arg0) { - float angle = 12.0f*(arg0%30); - float radius = 730.0f+(60.0f*(arg0/30)); - if(arg0/30 >= 2 && (100.0f > angle || 260.0f < angle)) { - return 0; - } else { - s16 model = Hu3DModelLink(lbl_1_bss_10[0]); - Hu3DModelAttrSet(model, 0x4001); - Hu3DModelAttrSet(model, 0x40000003); - Hu3DModelLayerSet(model, 1); - Hu3DMotionTimeSet(model, Hu3DMotionMaxTimeGet(model)*frandf()); - Hu3DModelPosSet(model, ((radius*sind(angle))+(frandf()*20.0f))-10, -60.0f, radius*cosd(angle)); - Hu3DModelScaleSet(model, 2, 2, 2); - Hu3DModelAttrReset(model, 0x40000002); - Hu3DModelAttrReset(model, 1); - return 1; - } + float angle = 12.0f * (arg0 % 30); + float radius = 730.0f + (60.0f * (arg0 / 30)); + if (arg0 / 30 >= 2 && (100.0f > angle || 260.0f < angle)) { + return 0; + } + else { + s16 model = Hu3DModelLink(lbl_1_bss_10[0]); + Hu3DModelAttrSet(model, 0x4001); + Hu3DModelAttrSet(model, 0x40000003); + Hu3DModelLayerSet(model, 1); + Hu3DMotionTimeSet(model, Hu3DMotionMaxTimeGet(model) * frandf()); + Hu3DModelPosSet(model, ((radius * sind(angle)) + (frandf() * 20.0f)) - 10, -60.0f, radius * cosd(angle)); + Hu3DModelScaleSet(model, 2, 2, 2); + Hu3DModelAttrReset(model, 0x40000002); + Hu3DModelAttrReset(model, 1); + return 1; + } } void fn_1_AA4C(omObjData *object); void fn_1_8D58(omObjData *object) { - Vec sp38; - s32 i; - - if(omSysExitReq) { - fn_1_1F58(-1); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_AA4C; - } - lbl_1_bss_24 += (1.0f/60.0f); - if(360.0f <= lbl_1_bss_24) { - lbl_1_bss_24 -= 360.0f; - } - Hu3DModelRotSet(object->model[2], 0, lbl_1_bss_24, 0); - lbl_1_bss_1A8++; - switch(object->work[0]) { - case 1000: - if(!WipeStatGet()) { - object->work[0]++; - lbl_1_bss_28 = 0; - } - break; - - case 1001: - lbl_1_bss_28++; - if(60.0f < lbl_1_bss_28) { - object->work[0]++; - lbl_1_bss_28 = 0; - lbl_1_bss_1C4 = lbl_1_data_34; - lbl_1_bss_1AC = lbl_1_data_4C; - VECSubtract(&lbl_1_bss_1AC, &lbl_1_bss_1C4, &sp38); - VECNormalize(&sp38, &sp38); - HuAudFXListnerSetEX(&lbl_1_bss_1C4, &sp38, 10000.0, 36000.0, 0.0, 300.0, 300.0); - } - break; - - case 1002: - lbl_1_bss_28++; - fn_1_13DC(lbl_1_bss_28/180.0f, &lbl_1_data_40); - if(180.0f <= lbl_1_bss_28) { - object->work[0]++; - fn_1_1350(&lbl_1_data_34, &lbl_1_data_40, &lbl_1_data_4C); - } - - break; - - case 1003: - if(lbl_1_bss_19E < 0) { - lbl_1_bss_19E = MGSeqStartCreate(); - Hu3DModelAttrSet(lbl_1_bss_4C->model[2], 1); - } else { - if(lbl_1_bss_198 < 0 && (MGSeqStatGet(lbl_1_bss_19E) & 0x10)) { - fn_1_1F24(69); - } - if(!MGSeqStatGet(lbl_1_bss_19E)) { - object->work[0]++; - lbl_1_bss_1A4 = 3600; - lbl_1_bss_19C = MGSeqTimerCreate(lbl_1_bss_1A4/60); - lbl_1_bss_19E = -1; - } - } - break; - - case 1004: - MGSeqParamSet(lbl_1_bss_19C, 1, (lbl_1_bss_1A4+59)/60); - lbl_1_bss_1A4--; - if(lbl_1_bss_1A4 < 0) { - object->work[0] = 1005; - lbl_1_bss_1A4 = 3600; - lbl_1_bss_28 = 0; - } - break; - - case 1005: - if(lbl_1_bss_19E < 0) { - MGSeqParamSet(lbl_1_bss_19C, 2, -1); - lbl_1_bss_19C = -1; - lbl_1_bss_19E = MGSeqFinishCreate(); - fn_1_1F58(100); - Hu3DModelAttrReset(lbl_1_bss_4C->model[2], 1); - } else { - for(i=0; i<4; i++) { - if(OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk98 != 2007) { - break; - } - } - if(i == 4 && !MGSeqStatGet(lbl_1_bss_19E)) { - object->work[0]++; - lbl_1_bss_19E = -1; - lbl_1_bss_20 = 0; - lbl_1_bss_28 = 0; - lbl_1_bss_1C4 = lbl_1_data_58; - lbl_1_bss_1AC = lbl_1_data_70; - } - } - break; - - case 1006: - lbl_1_bss_28++; - fn_1_13DC(lbl_1_bss_28/120.0f, &lbl_1_data_64); - if(120.0f <= lbl_1_bss_28) { - lbl_1_bss_28 = 120.0f; - for(i=0; i<4; i++) { - float temp; - if(OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk98 != 2010) { - break; - } - temp = OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk58; - if(2.0f < temp && 358.0f > temp) { - break; - } - } - if(i == 4) { - object->work[0]++; - lbl_1_bss_28 = 60; - } - } - break; - - case 1007: - for(i=0; i<4; i++) { - if(OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk98 != 2014) { - break; - } - } - if(i == 4) { - if(0.0f > lbl_1_bss_28--) { - object->work[0]++; - lbl_1_bss_28 = 0; - if(lbl_1_bss_20 == 0) { - HuAudSStreamPlay(4); - for(i=0; i<4; i++) { - OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unkC0 = 4; - } - } else { - s32 temp_r27; - HuAudSStreamPlay(1); - temp_r27 = -1; - for(i=0; i<4; i++) { - s32 temp_r22 = -1; - s32 temp_r26 = -1; - Work53E8 *temp_r29; - s32 j; - for(j=0; j<4; j++) { - temp_r29 = lbl_1_bss_48[j]->data; - if(temp_r29->unkC0 < 0 && temp_r22 < temp_r29->unkBC) { - temp_r22 = temp_r29->unkBC; - temp_r26 = j; - } - } - temp_r29 = lbl_1_bss_48[temp_r26]->data; - temp_r29->unkC0 = i+1; - if(temp_r27 >= 0 && temp_r29->unkBC == OM_GET_DATA_PTR(lbl_1_bss_48[temp_r27], Work53E8)->unkBC) { - temp_r29->unkC0 = OM_GET_DATA_PTR(lbl_1_bss_48[temp_r27], Work53E8)->unkC0; - } - temp_r27 = temp_r26; - } - } - for(i=0; i<4; i++) { - GWPlayerCoinWinSet(OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unkB0, OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unkC0-1); - } - } - - } - break; - - case 1008: - lbl_1_bss_28++; - if(210.0f < lbl_1_bss_28) { - fn_1_1F58(-1); - lbl_1_bss_19E = -1; - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_AA4C; - } - - break; - - default: - OSReport("*** main mode error(%d)!!\n", object->work[0]); - break; - } + Vec sp38; + s32 i; + + if (omSysExitReq) { + fn_1_1F58(-1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_AA4C; + } + lbl_1_bss_24 += (1.0f / 60.0f); + if (360.0f <= lbl_1_bss_24) { + lbl_1_bss_24 -= 360.0f; + } + Hu3DModelRotSet(object->model[2], 0, lbl_1_bss_24, 0); + lbl_1_bss_1A8++; + switch (object->work[0]) { + case 1000: + if (!WipeStatGet()) { + object->work[0]++; + lbl_1_bss_28 = 0; + } + break; + + case 1001: + lbl_1_bss_28++; + if (60.0f < lbl_1_bss_28) { + object->work[0]++; + lbl_1_bss_28 = 0; + lbl_1_bss_1C4 = lbl_1_data_34; + lbl_1_bss_1AC = lbl_1_data_4C; + VECSubtract(&lbl_1_bss_1AC, &lbl_1_bss_1C4, &sp38); + VECNormalize(&sp38, &sp38); + HuAudFXListnerSetEX(&lbl_1_bss_1C4, &sp38, 10000.0, 36000.0, 0.0, 300.0, 300.0); + } + break; + + case 1002: + lbl_1_bss_28++; + fn_1_13DC(lbl_1_bss_28 / 180.0f, &lbl_1_data_40); + if (180.0f <= lbl_1_bss_28) { + object->work[0]++; + fn_1_1350(&lbl_1_data_34, &lbl_1_data_40, &lbl_1_data_4C); + } + + break; + + case 1003: + if (lbl_1_bss_19E < 0) { + lbl_1_bss_19E = MGSeqStartCreate(); + Hu3DModelAttrSet(lbl_1_bss_4C->model[2], 1); + } + else { + if (lbl_1_bss_198 < 0 && (MGSeqStatGet(lbl_1_bss_19E) & 0x10)) { + fn_1_1F24(69); + } + if (!MGSeqStatGet(lbl_1_bss_19E)) { + object->work[0]++; + lbl_1_bss_1A4 = 3600; + lbl_1_bss_19C = MGSeqTimerCreate(lbl_1_bss_1A4 / 60); + lbl_1_bss_19E = -1; + } + } + break; + + case 1004: + MGSeqParamSet(lbl_1_bss_19C, 1, (lbl_1_bss_1A4 + 59) / 60); + lbl_1_bss_1A4--; + if (lbl_1_bss_1A4 < 0) { + object->work[0] = 1005; + lbl_1_bss_1A4 = 3600; + lbl_1_bss_28 = 0; + } + break; + + case 1005: + if (lbl_1_bss_19E < 0) { + MGSeqParamSet(lbl_1_bss_19C, 2, -1); + lbl_1_bss_19C = -1; + lbl_1_bss_19E = MGSeqFinishCreate(); + fn_1_1F58(100); + Hu3DModelAttrReset(lbl_1_bss_4C->model[2], 1); + } + else { + for (i = 0; i < 4; i++) { + if (OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk98 != 2007) { + break; + } + } + if (i == 4 && !MGSeqStatGet(lbl_1_bss_19E)) { + object->work[0]++; + lbl_1_bss_19E = -1; + lbl_1_bss_20 = 0; + lbl_1_bss_28 = 0; + lbl_1_bss_1C4 = lbl_1_data_58; + lbl_1_bss_1AC = lbl_1_data_70; + } + } + break; + + case 1006: + lbl_1_bss_28++; + fn_1_13DC(lbl_1_bss_28 / 120.0f, &lbl_1_data_64); + if (120.0f <= lbl_1_bss_28) { + lbl_1_bss_28 = 120.0f; + for (i = 0; i < 4; i++) { + float temp; + if (OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk98 != 2010) { + break; + } + temp = OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk58; + if (2.0f < temp && 358.0f > temp) { + break; + } + } + if (i == 4) { + object->work[0]++; + lbl_1_bss_28 = 60; + } + } + break; + + case 1007: + for (i = 0; i < 4; i++) { + if (OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk98 != 2014) { + break; + } + } + if (i == 4) { + if (0.0f > lbl_1_bss_28--) { + object->work[0]++; + lbl_1_bss_28 = 0; + if (lbl_1_bss_20 == 0) { + HuAudSStreamPlay(4); + for (i = 0; i < 4; i++) { + OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unkC0 = 4; + } + } + else { + s32 temp_r27; + HuAudSStreamPlay(1); + temp_r27 = -1; + for (i = 0; i < 4; i++) { + s32 temp_r22 = -1; + s32 temp_r26 = -1; + Work53E8 *temp_r29; + s32 j; + for (j = 0; j < 4; j++) { + temp_r29 = lbl_1_bss_48[j]->data; + if (temp_r29->unkC0 < 0 && temp_r22 < temp_r29->unkBC) { + temp_r22 = temp_r29->unkBC; + temp_r26 = j; + } + } + temp_r29 = lbl_1_bss_48[temp_r26]->data; + temp_r29->unkC0 = i + 1; + if (temp_r27 >= 0 && temp_r29->unkBC == OM_GET_DATA_PTR(lbl_1_bss_48[temp_r27], Work53E8)->unkBC) { + temp_r29->unkC0 = OM_GET_DATA_PTR(lbl_1_bss_48[temp_r27], Work53E8)->unkC0; + } + temp_r27 = temp_r26; + } + } + for (i = 0; i < 4; i++) { + GWPlayerCoinWinSet(OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unkB0, OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unkC0 - 1); + } + } + } + break; + + case 1008: + lbl_1_bss_28++; + if (210.0f < lbl_1_bss_28) { + fn_1_1F58(-1); + lbl_1_bss_19E = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_AA4C; + } + + break; + + default: + OSReport("*** main mode error(%d)!!\n", object->work[0]); + break; + } } void fn_1_9F40(omObjData *object) { - s32 singleNo; - s32 i; - s32 angleNo; - lbl_1_bss_24 = 0; - object->work[0] = 1000; - object->model[0] = Hu3DModelCreateFile(0x480038); - Hu3DModelAttrSet(object->model[0], 0x4001); - Hu3DModelAttrSet(object->model[0], 0x40000002); - Hu3DModelLayerSet(object->model[0], 0); - Hu3DModelAttrReset(object->model[0], 1); - Hu3DModelShadowMapSet(object->model[0]); - omSetTra(object, 0, -31, 0); - object->model[1] = Hu3DModelCreateFile(0x480039); - Hu3DModelAttrSet(object->model[1], 0x4001); - Hu3DModelAttrSet(object->model[1], 0x40000002); - Hu3DModelLayerSet(object->model[1], 0); - Hu3DModelPosSet(object->model[1], 0, -31, 0); - Hu3DModelAttrReset(object->model[1], 1); - object->model[2] = Hu3DModelCreateFile(0x48003A); - Hu3DModelAttrSet(object->model[2], 0x4001); - Hu3DModelAttrSet(object->model[2], 0x40000002); - Hu3DModelLayerSet(object->model[2], 0); - Hu3DModelPosSet(object->model[2], 0, -31, 0); - Hu3DModelAttrReset(object->model[2], 1); - for(singleNo=0; singleNo<1; singleNo++) { - lbl_1_bss_10[singleNo] = Hu3DModelCreateFile(lbl_1_data_368[singleNo]); - Hu3DModelAttrSet(lbl_1_bss_10[singleNo], 0x4001); - Hu3DModelAttrSet(lbl_1_bss_10[singleNo], 0x40000003); - } - for(i=0, angleNo=0; i<30;) { - if(fn_1_8AA0(angleNo++) != 0) { - i++; - } - } - HuAudFXPlay(1818); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - object->func = fn_1_8D58; + s32 singleNo; + s32 i; + s32 angleNo; + lbl_1_bss_24 = 0; + object->work[0] = 1000; + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x38)); + Hu3DModelAttrSet(object->model[0], 0x4001); + Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelLayerSet(object->model[0], 0); + Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelShadowMapSet(object->model[0]); + omSetTra(object, 0, -31, 0); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x39)); + Hu3DModelAttrSet(object->model[1], 0x4001); + Hu3DModelAttrSet(object->model[1], 0x40000002); + Hu3DModelLayerSet(object->model[1], 0); + Hu3DModelPosSet(object->model[1], 0, -31, 0); + Hu3DModelAttrReset(object->model[1], 1); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x3A)); + Hu3DModelAttrSet(object->model[2], 0x4001); + Hu3DModelAttrSet(object->model[2], 0x40000002); + Hu3DModelLayerSet(object->model[2], 0); + Hu3DModelPosSet(object->model[2], 0, -31, 0); + Hu3DModelAttrReset(object->model[2], 1); + for (singleNo = 0; singleNo < 1; singleNo++) { + lbl_1_bss_10[singleNo] = Hu3DModelCreateFile(lbl_1_data_368[singleNo]); + Hu3DModelAttrSet(lbl_1_bss_10[singleNo], 0x4001); + Hu3DModelAttrSet(lbl_1_bss_10[singleNo], 0x40000003); + } + for (i = 0, angleNo = 0; i < 30;) { + if (fn_1_8AA0(angleNo++) != 0) { + i++; + } + } + HuAudFXPlay(1818); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_8D58; } void ObjectSetup(void) { - Vec shadowDir; - s32 i; - omObjData *object; - s32 glight; - OSReport("******* M441 ObjectSetup *********\n"); - lbl_1_bss_1DC = omInitObjMan(600, 8192); - omGameSysInit(lbl_1_bss_1DC); - lbl_1_bss_1A8 = 0; - lbl_1_bss_19E = -1; - lbl_1_bss_19C = -1; - lbl_1_bss_1E = 0; - lbl_1_bss_198 = -1; - lbl_1_bss_4 = 0; - lbl_1_bss_8 = 2100; - lbl_1_bss_0 = 1200; - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - Hu3DCameraPerspectiveSet(1, 30, 20, 20000, 1.2); - fn_1_1350(&lbl_1_data_10, &lbl_1_data_1C, &lbl_1_data_28); + Vec shadowDir; + s32 i; + omObjData *object; + s32 glight; + OSReport("******* M441 ObjectSetup *********\n"); + lbl_1_bss_1DC = omInitObjMan(600, 8192); + omGameSysInit(lbl_1_bss_1DC); + lbl_1_bss_1A8 = 0; + lbl_1_bss_19E = -1; + lbl_1_bss_19C = -1; + lbl_1_bss_1E = 0; + lbl_1_bss_198 = -1; + lbl_1_bss_4 = 0; + lbl_1_bss_8 = 2100; + lbl_1_bss_0 = 1200; + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + Hu3DCameraPerspectiveSet(1, 30, 20, 20000, 1.2); + fn_1_1350(&lbl_1_data_10, &lbl_1_data_1C, &lbl_1_data_28); - glight = Hu3DGLightCreateV(&lbl_1_data_7C, &lbl_1_data_88, &lbl_1_data_94); - Hu3DGLightStaticSet(glight, 1); - Hu3DGLightInfinitytSet(glight); - Hu3DShadowCreate(30, 20, 20000); - Hu3DShadowTPLvlSet(0.8); - VECNormalize(&lbl_1_data_98, &shadowDir); - Hu3DShadowPosSet(&lbl_1_data_98, &shadowDir, &lbl_1_data_A4); - HuSprExecLayerSet(64, 5); - omMakeGroupEx(lbl_1_bss_1DC, 0, 4); - lbl_1_bss_48 = omGetGroupMemberListEx(lbl_1_bss_1DC, 0); - for(i=0; i<4; i++) { - object = omAddObjEx(lbl_1_bss_1DC, 100, 3, 16, 0, fn_1_53E8); - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work53E8), MEMORY_DEFAULT_NUM); - object->work[0] = i; - } - fn_1_0(); - lbl_1_bss_C = 1; - omMakeGroupEx(lbl_1_bss_1DC, 1, 20); - lbl_1_bss_44 = omGetGroupMemberListEx(lbl_1_bss_1DC, 1); - for(i=0; i<3; i++) { - lbl_1_bss_18[i] = 0; - lbl_1_bss_12[i] = Hu3DModelCreateFile(lbl_1_data_314[i]); - Hu3DModelAttrSet(lbl_1_bss_12[i], 1); - Hu3DModelAttrSet(lbl_1_bss_12[i], 0x40000003); - } - for(i=0; i<20; i++) { - fn_1_74F4(0); - } - omMakeGroupEx(lbl_1_bss_1DC, 2, 400); - lbl_1_bss_40 = omGetGroupMemberListEx(lbl_1_bss_1DC, 2); - lbl_1_bss_38 = HuSprAnimReadFile(0x480046); - HuSprAnimLock(lbl_1_bss_38); - lbl_1_bss_34 = Hu3DParManCreate(lbl_1_bss_38, 500, &lbl_1_data_39C); - Hu3DParManAttrSet(lbl_1_bss_34, 1); - lbl_1_bss_30 = HuSprAnimReadFile(0x480047); - HuSprAnimLock(lbl_1_bss_30); - lbl_1_bss_2C = Hu3DParManCreate(lbl_1_bss_30, 20, &lbl_1_data_48C); - Hu3DParManAttrSet(lbl_1_bss_2C, 1); - lbl_1_bss_4C = omAddObjEx(lbl_1_bss_1DC, 103, 3, 0, -1, fn_1_9F40); + glight = Hu3DGLightCreateV(&lbl_1_data_7C, &lbl_1_data_88, &lbl_1_data_94); + Hu3DGLightStaticSet(glight, 1); + Hu3DGLightInfinitytSet(glight); + Hu3DShadowCreate(30, 20, 20000); + Hu3DShadowTPLvlSet(0.8); + VECNormalize(&lbl_1_data_98, &shadowDir); + Hu3DShadowPosSet(&lbl_1_data_98, &shadowDir, &lbl_1_data_A4); + HuSprExecLayerSet(64, 5); + omMakeGroupEx(lbl_1_bss_1DC, 0, 4); + lbl_1_bss_48 = omGetGroupMemberListEx(lbl_1_bss_1DC, 0); + for (i = 0; i < 4; i++) { + object = omAddObjEx(lbl_1_bss_1DC, 100, 3, 16, 0, fn_1_53E8); + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work53E8), MEMORY_DEFAULT_NUM); + object->work[0] = i; + } + fn_1_0(); + lbl_1_bss_C = 1; + omMakeGroupEx(lbl_1_bss_1DC, 1, 20); + lbl_1_bss_44 = omGetGroupMemberListEx(lbl_1_bss_1DC, 1); + for (i = 0; i < 3; i++) { + lbl_1_bss_18[i] = 0; + lbl_1_bss_12[i] = Hu3DModelCreateFile(lbl_1_data_314[i]); + Hu3DModelAttrSet(lbl_1_bss_12[i], 1); + Hu3DModelAttrSet(lbl_1_bss_12[i], 0x40000003); + } + for (i = 0; i < 20; i++) { + fn_1_74F4(0); + } + omMakeGroupEx(lbl_1_bss_1DC, 2, 400); + lbl_1_bss_40 = omGetGroupMemberListEx(lbl_1_bss_1DC, 2); + lbl_1_bss_38 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M441, 0x46)); + HuSprAnimLock(lbl_1_bss_38); + lbl_1_bss_34 = Hu3DParManCreate(lbl_1_bss_38, 500, &lbl_1_data_39C); + Hu3DParManAttrSet(lbl_1_bss_34, 1); + lbl_1_bss_30 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M441, 0x47)); + HuSprAnimLock(lbl_1_bss_30); + lbl_1_bss_2C = Hu3DParManCreate(lbl_1_bss_30, 20, &lbl_1_data_48C); + Hu3DParManAttrSet(lbl_1_bss_2C, 1); + lbl_1_bss_4C = omAddObjEx(lbl_1_bss_1DC, 103, 3, 0, -1, fn_1_9F40); } void fn_1_AA4C(omObjData *object) { - s32 i; - if(WipeStatGet()) { - return; - } - if(lbl_1_bss_19E >= 0) { - MGSeqKill(lbl_1_bss_19E); - } - if(lbl_1_bss_19C >= 0) { - MGSeqKill(lbl_1_bss_19C); - } - MGSeqKillAll(); - HuAudAllStop(); - for(i=0; i<4; i++) { - CharModelKill(lbl_1_data_0[GWPlayerCfg[i].character]); - } - omOvlReturnEx(1, 1); - + s32 i; + if (WipeStatGet()) { + return; + } + if (lbl_1_bss_19E >= 0) { + MGSeqKill(lbl_1_bss_19E); + } + if (lbl_1_bss_19C >= 0) { + MGSeqKill(lbl_1_bss_19C); + } + MGSeqKillAll(); + HuAudAllStop(); + for (i = 0; i < 4; i++) { + CharModelKill(lbl_1_data_0[GWPlayerCfg[i].character]); + } + omOvlReturnEx(1, 1); } diff --git a/src/REL/m442Dll/main.c b/src/REL/m442Dll/main.c index dd8dfc2d..4f3de7a0 100644 --- a/src/REL/m442Dll/main.c +++ b/src/REL/m442Dll/main.c @@ -422,7 +422,7 @@ void fn_1_A90(Process *arg0) for (var_r31 = 0; var_r31 < 1; var_r31++) { omAddObjEx(arg0, 5, 0xA, 0x32, 0, fn_1_E88); } - lbl_1_bss_11F00 = HuSprAnimRead(HuDataReadNum(0x49000A, MEMORY_DEFAULT_NUM)); + lbl_1_bss_11F00 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M442, 0x0A), MEMORY_DEFAULT_NUM)); for (var_r31 = 0; var_r31 < 4; var_r31++) { lbl_1_bss_11EEC[var_r31] = HuSprAnimRead(HuDataReadNum(sp8[var_r31], MEMORY_DEFAULT_NUM)); } @@ -466,13 +466,13 @@ s32 fn_1_E04(void) } s32 lbl_1_data_FC[7] = { - 0x5F0000, - 0x5F0002, - 0x5F0003, - 0x5F0005, - 0x5F002B, - 0x5F0048, - 0x5F0018, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x2B), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), }; s32 lbl_1_data_118[2] = { 0x490010, 0x490018 }; @@ -505,7 +505,7 @@ void fn_1_E88(omObjData *object) object->model[0] = CharModelCreate(var_r26, 8); Hu3DModelLayerSet(object->model[0], 1); Hu3DModelShadowSet(object->model[0]); - object->model[1] = Hu3DModelCreateFile(0x490001); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M442, 0x01)); Hu3DModelHookSet(object->model[0], "test11_tex_we-itemhook-r", object->model[1]); var_r30->unk_30 = 0; for (var_r29 = 0; var_r29 < 7; var_r29++) { @@ -1386,7 +1386,7 @@ void fn_1_3EC0(omObjData *object) fn_1_4444(var_r31); } object->model[3] = Hu3DHookFuncCreate(fn_1_485C); - lbl_1_bss_11F10 = HuSprAnimRead(HuDataSelHeapReadNum(0x49000B, MEMORY_DEFAULT_NUM, HEAP_DATA)); + lbl_1_bss_11F10 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M442, 0x0B)); object->model[4] = Hu3DHookFuncCreate(fn_1_54C8); Hu3DModelLayerSet(object->model[4], 6); for (var_r31 = 0; var_r31 < 15; var_r31++) { @@ -1394,7 +1394,7 @@ void fn_1_3EC0(omObjData *object) } memset(lbl_1_bss_119FC, 0, 0x271); for (var_r31 = 0; var_r31 < 3; var_r31++) { - lbl_1_bss_11F04[var_r31] = HuSprAnimRead(HuDataSelHeapReadNum(lbl_1_data_1A0[var_r31], MEMORY_DEFAULT_NUM, HEAP_DATA)); + lbl_1_bss_11F04[var_r31] = HuSprAnimReadFile(lbl_1_data_1A0[var_r31]); } object->model[5] = Hu3DHookFuncCreate(fn_1_5A48); Hu3DModelLayerSet(object->model[5], 2); @@ -1913,7 +1913,7 @@ void fn_1_6D24(omObjData *object) memset(var_r29, 0, sizeof(M442MainWork2)); var_r29->unk_16 = lbl_1_bss_11EE0++; var_r29->unk_18 = 1.0f; - object->model[0] = Hu3DModelCreateFile(0x490002); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M442, 0x02)); Hu3DModelLayerSet(object->model[0], 7); Hu3DModelAttrSet(object->model[0], 0x40000001); Hu3DModelAttrSet(object->model[0], 1); diff --git a/src/REL/m442Dll/score.c b/src/REL/m442Dll/score.c index 08e37259..6fd5b7c8 100644 --- a/src/REL/m442Dll/score.c +++ b/src/REL/m442Dll/score.c @@ -39,25 +39,25 @@ s32 fn_1_91AC(Process *arg0, s16 arg1) var_r31 = lbl_1_bss_11F48->data; var_r31->unk_08 = arg1; var_r31->unk_0A = 0; - var_r31->unk_18 = espEntry(0x610023, 2, 0); + var_r31->unk_18 = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x23), 2, 0); espTPLvlSet(var_r31->unk_18, 0.5f); espPosSet(var_r31->unk_18, 508.0f, 64.0f); espColorSet(var_r31->unk_18, 0, 0, 0); - var_r31->unk_1A = espEntry(0x610037, 1, 0); + var_r31->unk_1A = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x37), 1, 0); espPosSet(var_r31->unk_1A, 480.0f, 56.0f); for (var_r30 = 0; var_r30 < 3; var_r30++) { - var_r31->unk_0C[var_r30] = espEntry(0x610030, 0, 0); + var_r31->unk_0C[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x30), 0, 0); espPosSet(var_r31->unk_0C[var_r30], (var_r30 * 0x10) + 0x1F4, 56.0f); espDispOff(var_r31->unk_0C[var_r30]); } for (var_r30 = 0; var_r30 < 3; var_r30++) { - var_r31->unk_0C[var_r30 + 3] = espEntry(0x610031, 1, 0); + var_r31->unk_0C[var_r30 + 3] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x31), 1, 0); espPosSet(var_r31->unk_0C[var_r30 + 3], (var_r30 * 0x10) + 0x1F4, 74.0f); } for (var_r30 = 0; var_r30 < 8; var_r30++) { espDispOff(var_r31->unk_0C[var_r30]); } - HuDataDirClose(0x610000); + HuDataDirClose(DATADIR_MGCONST); return fn_1_9520(0); } diff --git a/src/REL/m444dll/main.c b/src/REL/m444dll/main.c index 60a338ec..653a5cc1 100644 --- a/src/REL/m444dll/main.c +++ b/src/REL/m444dll/main.c @@ -1,19 +1,19 @@ -#include "game/object.h" -#include "game/objsub.h" #include "game/hsfman.h" #include "game/hsfmotion.h" +#include "game/object.h" +#include "game/objsub.h" #include "game/pad.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/esprite.h" #include "game/window.h" #include "game/wipe.h" -#include "game/audio.h" -#include "game/esprite.h" -#include "game/chrman.h" #include "game/board/ui.h" -#include "game/gamework_data.h" #include "game/gamework.h" +#include "game/gamework_data.h" #include "REL/m444dll.h" #include "ext_math.h" @@ -22,55 +22,42 @@ #include "rel_sqrt_consts.h" typedef struct camera_view_params { - Vec rot; - Vec pos; - float zoom; + Vec rot; + Vec pos; + float zoom; } CameraViewParams; CameraViewParams lbl_1_data_0[] = { - { { -55, 0, 0 }, { 0, 60, -57 }, 806 }, - { { -71, 0, 0 }, { 0, 100, -131 }, 900 }, - { { -87, 0, 0 }, { 0, 46, -117 }, 566 }, - { { -87, 0, 0 }, { 0, 46, -117 }, 566 }, - { { -90, 0, 0 }, { -22, 39, -153 }, 432 }, - { { -40, 0, 0 }, { 0, 130, -186 }, 6530 }, - { { -23, 0, 0 }, { -9, 1, -70 }, 1318 }, - { { -25, 0, 0 }, { 0, 242, 90 }, 343 }, - { { -30, 0, 0 }, { 0, 223, -60 }, 505 }, - { { -23, 0, 0 }, { 0, 65, -97 }, 1318 }, + { { -55, 0, 0 }, { 0, 60, -57 }, 806 }, + { { -71, 0, 0 }, { 0, 100, -131 }, 900 }, + { { -87, 0, 0 }, { 0, 46, -117 }, 566 }, + { { -87, 0, 0 }, { 0, 46, -117 }, 566 }, + { { -90, 0, 0 }, { -22, 39, -153 }, 432 }, + { { -40, 0, 0 }, { 0, 130, -186 }, 6530 }, + { { -23, 0, 0 }, { -9, 1, -70 }, 1318 }, + { { -25, 0, 0 }, { 0, 242, 90 }, 343 }, + { { -30, 0, 0 }, { 0, 223, -60 }, 505 }, + { { -23, 0, 0 }, { 0, 65, -97 }, 1318 }, }; -DataListSprite lbl_1_data_118[] = { - { 0x4B0022, 0, 10, 288, -200, { 255, 255, 255, 255 } }, - { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } } -}; +DataListSprite lbl_1_data_118[] + = { { DATA_MAKE_NUM(DATADIR_M443, 0x22), 0, 10, 288, -200, { 255, 255, 255, 255 } }, { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } } }; -float lbl_1_data_140[] = { - 90, 250, 420 -}; +float lbl_1_data_140[] = { 90, 250, 420 }; Vec lbl_1_data_14C[] = { - { -75, -300, 0 }, - { 25, -300, 0 }, - { -75, -300, 0 }, - { 25, -300, 0 }, - { -25, -400, 0 }, + { -75, -300, 0 }, + { 25, -300, 0 }, + { -75, -300, 0 }, + { 25, -300, 0 }, + { -25, -400, 0 }, }; -s16 lbl_1_data_188[] = { - 1, 1, 2, 2, 2 -}; +s16 lbl_1_data_188[] = { 1, 1, 2, 2, 2 }; -s32 lbl_1_data_194[] = { - 0x4B0024, - 0x4B0025, - 0x4B0026, - 0x4B0027, - 0x4B0028, - 0x4B0029, - 0x4B002A, - 0x4B002B -}; +s32 lbl_1_data_194[] = { DATA_MAKE_NUM(DATADIR_M443, 0x24), DATA_MAKE_NUM(DATADIR_M443, 0x25), DATA_MAKE_NUM(DATADIR_M443, 0x26), + DATA_MAKE_NUM(DATADIR_M443, 0x27), DATA_MAKE_NUM(DATADIR_M443, 0x28), DATA_MAKE_NUM(DATADIR_M443, 0x29), DATA_MAKE_NUM(DATADIR_M443, 0x2A), + DATA_MAKE_NUM(DATADIR_M443, 0x2B) }; omObjData *lbl_1_bss_30C; Process *lbl_1_bss_308; @@ -102,39 +89,39 @@ void fn_1_7290(omObjData *object); void ObjectSetup(void) { - s32 light; - OSReport("******* M444 ObjectSetup *********\n"); - lbl_1_bss_308 = omInitObjMan(50, 8192); - omGameSysInit(lbl_1_bss_308); - lbl_1_bss_2A8[0].x = -70; - lbl_1_bss_2A8[0].y = 0; - lbl_1_bss_2A8[0].z = 0; - lbl_1_bss_290[0].x = 0; - lbl_1_bss_290[0].y = 130; - lbl_1_bss_290[0].z = -186; - lbl_1_bss_288[0] = 1360; - lbl_1_bss_2F0 = lbl_1_bss_2A8[0]; - lbl_1_bss_2E4 = lbl_1_bss_290[0]; - lbl_1_bss_2E0 = lbl_1_bss_288[0]; - lbl_1_bss_2FC = 0; - lbl_1_bss_2D6 = -2; - lbl_1_bss_2D4 = -2; - lbl_1_bss_2D2 = -2; - Hu3DCameraCreate(1); - Hu3DCameraPerspectiveSet(1, 30, 20, 15000, 1.2f); - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - light = Hu3DGLightCreate(-1000, 1000, 0, 1, -1, 0, 255, 255, 255); - Hu3DGLightInfinitytSet(light); - Hu3DGLightStaticSet(light, 1); - light = Hu3DGLightCreate(0, 50, 1000, 0, -0.05f, -1, 96, 96, 96); - Hu3DGLightInfinitytSet(light); - HuPrcChildCreate(fn_1_470, 100, 12288, 0, lbl_1_bss_308); - HuPrcChildCreate(fn_1_6E3C, 200, 4096, 0, lbl_1_bss_308); - lbl_1_bss_30C = omAddObjEx(lbl_1_bss_308, 32730, 0, 0, -1, fn_1_6EDC); - omAddObjEx(lbl_1_bss_308, 0, 32, 32, -1, fn_1_7290); - Hu3DBGColorSet(0, 0, 0); - HuWinInit(1); - BoardStatusCreate(); + s32 light; + OSReport("******* M444 ObjectSetup *********\n"); + lbl_1_bss_308 = omInitObjMan(50, 8192); + omGameSysInit(lbl_1_bss_308); + lbl_1_bss_2A8[0].x = -70; + lbl_1_bss_2A8[0].y = 0; + lbl_1_bss_2A8[0].z = 0; + lbl_1_bss_290[0].x = 0; + lbl_1_bss_290[0].y = 130; + lbl_1_bss_290[0].z = -186; + lbl_1_bss_288[0] = 1360; + lbl_1_bss_2F0 = lbl_1_bss_2A8[0]; + lbl_1_bss_2E4 = lbl_1_bss_290[0]; + lbl_1_bss_2E0 = lbl_1_bss_288[0]; + lbl_1_bss_2FC = 0; + lbl_1_bss_2D6 = -2; + lbl_1_bss_2D4 = -2; + lbl_1_bss_2D2 = -2; + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30, 20, 15000, 1.2f); + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + light = Hu3DGLightCreate(-1000, 1000, 0, 1, -1, 0, 255, 255, 255); + Hu3DGLightInfinitytSet(light); + Hu3DGLightStaticSet(light, 1); + light = Hu3DGLightCreate(0, 50, 1000, 0, -0.05f, -1, 96, 96, 96); + Hu3DGLightInfinitytSet(light); + HuPrcChildCreate(fn_1_470, 100, 12288, 0, lbl_1_bss_308); + HuPrcChildCreate(fn_1_6E3C, 200, 4096, 0, lbl_1_bss_308); + lbl_1_bss_30C = omAddObjEx(lbl_1_bss_308, 32730, 0, 0, -1, fn_1_6EDC); + omAddObjEx(lbl_1_bss_308, 0, 32, 32, -1, fn_1_7290); + Hu3DBGColorSet(0, 0, 0); + HuWinInit(1); + BoardStatusCreate(); } void fn_1_3B7C(void); @@ -150,796 +137,808 @@ float fn_1_82FC(void); void fn_1_470(void) { - float temp_f31; - float temp_f30; - - s16 temp_r31; - s16 temp_r30; - s16 temp_r29; - u32 temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - u32 temp_r24; - ModelData *temp_r23; - - Vec sp1C; - Vec sp10; - float sp8[2]; - - for(temp_r31=0; temp_r31<4; temp_r31++) { - if(GWPlayerCfg[temp_r31].group == 0) { - break; - } - } - lbl_1_bss_2DC = temp_r31; - lbl_1_bss_2D8 = GWPlayerCfg[temp_r31].pad_idx; - lbl_1_bss_2DA = GWPlayerCfg[temp_r31].character; - fn_1_655C(); - fn_1_8210(5); - fn_1_8180(6); - Hu3DModelPosSet(lbl_1_bss_2D0, 0, 0, 250); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - HuAudSeqPlay(76); - while(WipeStatGet()) { - HuPrcVSleep(); - } - while(fn_1_82FC() > 10.0f) { - HuPrcVSleep(); - } - Hu3DModelAttrReset(lbl_1_bss_199C2[18], 1); - Hu3DMotionSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[20]); - Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, 90, 0); - for(temp_r31=0; temp_r31<=60; temp_r31++) { - if(temp_r31 <= 30) { - espPosSet(lbl_1_bss_1990A[0], 288, (200.0*sind(3.0*temp_r31))-100.0); - } - Hu3DModelPosSet(lbl_1_bss_199C2[18], (-300.0*cosd(1.5*temp_r31))+(-160.0), 0, 155); - HuPrcVSleep(); - } - for(temp_r31=0; temp_r31<=30; temp_r31++) { - if(temp_r31 <= 20) { - Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, (30.0*(1.0-(temp_r31/20.0f)))+60.0, 0); - } - if(temp_r31 > 10) { - temp_r29 = temp_r31-10; - Hu3DModelRotSet(lbl_1_bss_2D0, 0, (-(temp_r29/20.0f))*120.0f, 0); - } - if(temp_r31 == 10) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[19], 0, 16, 0x40000001); - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 8, 0x40000001); - } - HuPrcVSleep(); - } - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 8, 0x40000001); - HuWinMesMaxSizeGet(1, sp8, 0x1C0000); - temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); - HuWinExAnimIn(temp_r30); - HuWinMesPalSet(temp_r30, 7, 0, 0, 0); - fn_1_6D80(temp_r30); - HuWinMesSet(temp_r30, 0x1C0000); - HuWinMesWait(temp_r30); - HuWinExAnimOut(temp_r30); - HuWinExCleanup(temp_r30); - HuWinComKeyReset(); - Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[20], 0, 10, 0x40000001); - for(temp_r31=0; temp_r31<=20; temp_r31++) { - HuPrcVSleep(); - } - for(temp_r31=0; temp_r31<=30; temp_r31++) { - if(temp_r31 <= 10) { - Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, 30.0f-((temp_r31/10.0f)*120.0f), 0); - } - if(temp_r31 <= 20) { - espPosSet(lbl_1_bss_1990A[0], 288, (200.0*cosd(temp_r31*4.5))-100.0); - } - Hu3DModelPosSet(lbl_1_bss_199C2[18], ((1.0-cosd(temp_r31*3.0))*-200.0)+ -160.0, 0, 155); - HuPrcVSleep(); - } - Hu3DModelAttrSet(lbl_1_bss_199C2[18], 1); - Hu3DModelAttrReset(lbl_1_bss_199C2[22], 1); - Hu3DMotionSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24]); - Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, 90, 0); - for(temp_r31=0; temp_r31<=60; temp_r31++) { - Hu3DModelPosSet(lbl_1_bss_199C2[22], (-300.0*cosd(1.5*temp_r31))+(-160.0), 0, 155); - if(temp_r31 > 20) { - temp_r29 = temp_r31-40; - Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, (30.0*(1.0-(temp_r29/20.0f)))+60.0, 0); - } - if(temp_r31 == 50) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[23], 0, 10, 0x40000001); - } - if(temp_r31 > 40) { - temp_r29 = temp_r31-40; - for(temp_r27=0; temp_r27<3; temp_r27++) { - lbl_1_bss_34C[temp_r27].y = (180.0*sind(4.5*temp_r29))-100.0; - } - } - HuPrcVSleep(); - } - HuWinMesMaxSizeGet(1, sp8, 0x1C0001); - temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); - HuWinExAnimIn(temp_r30); - HuWinMesPalSet(temp_r30, 7, 0, 0, 0); - fn_1_6D80(temp_r30); - HuWinMesSet(temp_r30, 0x1C0001); - HuWinMesWait(temp_r30); - HuWinExAnimOut(temp_r30); - HuWinExCleanup(temp_r30); - HuWinComKeyReset(); - Hu3DModelAttrReset(lbl_1_bss_199C2[11], 0x40000002); - HuAudFXPlay(1854); - Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24], 0, 10, 0x40000001); - for(temp_r31=0; temp_r31<20; temp_r31++) { - temp_f31 = temp_r31/20.0f; - Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, (150.0f*temp_f31)+30.0f, 0); - HuPrcVSleep(); - } - Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[23], 0, 10, 0x40000001); - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); - for(temp_r31=0; temp_r31<20; temp_r31++) { - temp_f31 = temp_r31/20.0f; - Hu3DModelRotSet(lbl_1_bss_2D0, 0, -120.0f-(60.0f*temp_f31), 0); - HuPrcVSleep(); - } - HuAudFXPlay(1855); - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); - while(Hu3DMotionEndCheck(lbl_1_bss_199C2[11]) == 0) { - HuPrcVSleep(); - } - HuAudFXPlay(1856); - fn_1_861C(0); - Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); - HuAudFXPlay(1863); - while(Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) < lbl_1_data_140[0]) { - HuPrcVSleep(); - } - HuAudFXPlay(1857); - Hu3DMotionTimeSet(lbl_1_bss_199C2[9], lbl_1_data_140[0]); - Hu3DModelAttrSet(lbl_1_bss_199C2[9], 0x40000002); - HuPrcSleep(20); - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 8, 0x40000001); - sp1C.x = 124; - sp1C.y = 0; - sp1C.z = -180; - for(temp_r31=0; temp_r31<=40; temp_r31++) { - temp_f31 = temp_r31/40.0f; - Hu3DModelPosSet(lbl_1_bss_2D0, temp_f31*sp1C.x, temp_f31*sp1C.y, (temp_f31*sp1C.z)+250.0f); - if(temp_r31 <= 20) { - temp_f30 = atan2d(sp1C.x, sp1C.z)-180.0; - Hu3DModelRotSet(lbl_1_bss_2D0, 0, (temp_f30*(temp_r31/20.0))+180.0, 0); - } - if(temp_r31 > 30) { - temp_r29 = temp_r31-30; - temp_f30 = atan2d(sp1C.x, sp1C.z)-180.0; - Hu3DModelRotSet(lbl_1_bss_2D0, 0, (temp_f30*(1.0-(temp_r29/10.0)))+180.0, 0); - } - HuPrcVSleep(); - } - lbl_1_bss_2D6 = -1; - fn_1_9418(0); - temp_r26 = fn_1_8DD0(0); - lbl_1_bss_2D6 = lbl_1_bss_320[temp_r26]; - HuAudFXPlay(1859); - fn_1_9CAC(0, temp_r26); - for(temp_r31=0; temp_r31<=60; temp_r31++) { - lbl_1_bss_328[0].x = lbl_1_bss_328[0].y = lbl_1_bss_328[0].z = (0.1*sind(temp_r31*18.0))+0.3; - HuPrcVSleep(); - } - HuPrcSleep(40); - Hu3DModelAttrSet(lbl_1_bss_199C2[64], 1); - fn_1_8180(9); - Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24], 0, 10, 0x40000001); - for(temp_r31=0; temp_r31<=30; temp_r31++) { - if(temp_r31 <= 10) { - Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, (90.0*(temp_r31/10.0))+180.0, 0); - } - if(temp_r31 == 10) { - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); - } - if(temp_r31 > 10 && temp_r31 <= 25) { - temp_r29 = temp_r31-10; - Hu3DModelRotSet(lbl_1_bss_2D0, 0, (90.0*(temp_r29/15.0))+180.0, 0); - } - if(temp_r31 == 25) { - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); - } - Hu3DModelPosSet(lbl_1_bss_199C2[22], (-300.0*(1.0-cosd(3.0*temp_r31)))+(-160.0), 0, 155); - HuPrcVSleep(); - } - Hu3DModelAttrSet(lbl_1_bss_199C2[22], 1); - Hu3DModelAttrReset(lbl_1_bss_199C2[26], 1); - Hu3DMotionSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28]); - Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, 90, 0); - for(temp_r31=0; temp_r31<=60; temp_r31++) { - Hu3DModelPosSet(lbl_1_bss_199C2[26], (-300.0*cosd(1.5*temp_r31))+(-160.0), 0, 155); - if(temp_r31 == 50) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[27], 0, 10, 0x40000001); - } - HuPrcVSleep(); - } - HuWinMesMaxSizeGet(1, sp8, 0x1C0002); - temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); - HuWinExAnimIn(temp_r30); - HuWinMesPalSet(temp_r30, 7, 0, 0, 0); - fn_1_6D80(temp_r30); - HuWinInsertMesSet(temp_r30, GWPlayerCfg[lbl_1_bss_2D6].character, 0); - HuWinMesSet(temp_r30, 0x1C0002); - HuWinMesWait(temp_r30); - HuWinExAnimOut(temp_r30); - HuWinExCleanup(temp_r30); - HuWinComKeyReset(); - Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28], 0, 10, 0x40000001); - for(temp_r31=0; temp_r31<20; temp_r31++) { - temp_f31 = temp_r31/20.0f; - Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, (temp_f31*90.0f)+90.0f, 0); - HuPrcVSleep(); - } - Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[27], 0, 10, 0x40000001); - fn_1_861C(1); - Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); - HuAudFXPlay(1862); - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); - for(temp_r31=0; temp_r31<20; temp_r31++) { - temp_f31 = 1.0-(temp_r31/20.0f); - Hu3DModelRotSet(lbl_1_bss_2D0, 0, (temp_f31*90.0f)+180.0f, 0); - HuPrcVSleep(); - } - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); - while(Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) < lbl_1_data_140[1]) { - if(Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) == 128.0f) { - HuAudFXPlay(1850); - } - if(Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) == 200.0f) { - HuAudFXPlay(1863); - } - HuPrcVSleep(); - } - HuAudFXPlay(1857); - Hu3DMotionTimeSet(lbl_1_bss_199C2[9], lbl_1_data_140[1]); - Hu3DModelAttrSet(lbl_1_bss_199C2[9], 0x40000002); - HuPrcSleep(20); - lbl_1_bss_2D4 = -1; - fn_1_9418(1); - temp_r26 = fn_1_8DD0(1); - lbl_1_bss_2D4 = lbl_1_bss_320[temp_r26]; - HuAudFXPlay(1860); - fn_1_9CAC(1, temp_r26); - for(temp_r31=0; temp_r31<=60; temp_r31++) { - lbl_1_bss_328[1].x = lbl_1_bss_328[1].y = lbl_1_bss_328[1].z = (0.1*sind(temp_r31*18.0))+0.3; - HuPrcVSleep(); - } - HuPrcSleep(40); - Hu3DModelAttrSet(lbl_1_bss_199C2[64], 1); - fn_1_8180(9); - Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28], 0, 10, 0x40000001); - for(temp_r31=0; temp_r31<=30; temp_r31++) { - if(temp_r31 <= 10) { - Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, (90.0*(temp_r31/10.0))+180.0, 0); - } - if(temp_r31 == 10) { - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); - } - if(temp_r31 > 10 && temp_r31 <= 25) { - temp_r29 = temp_r31-10; - Hu3DModelRotSet(lbl_1_bss_2D0, 0, (90.0*(temp_r29/15.0))+180.0, 0); - } - if(temp_r31 == 25) { - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); - } - Hu3DModelPosSet(lbl_1_bss_199C2[26], (-400.0*(1.0-cosd(3.0*temp_r31)))+(-160.0), 0, 155); - HuPrcVSleep(); - } - Hu3DModelAttrSet(lbl_1_bss_199C2[26], 1); - Hu3DModelAttrReset(lbl_1_bss_199C2[30], 1); - Hu3DMotionSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32]); - Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, 90, 0); - for(temp_r31=0; temp_r31<=60; temp_r31++) { - Hu3DModelPosSet(lbl_1_bss_199C2[30], (-400.0*cosd(1.5*temp_r31))+(-160.0), 100, 155); - if(temp_r31 == 50) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[31], 0, 10, 0x40000001); - } - HuPrcVSleep(); - } - HuWinMesMaxSizeGet(1, sp8, 0x1C0003); - temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); - HuWinExAnimIn(temp_r30); - HuWinMesPalSet(temp_r30, 7, 0, 0, 0); - fn_1_6D80(temp_r30); - HuWinInsertMesSet(temp_r30, GWPlayerCfg[lbl_1_bss_2D6].character, 0); - HuWinInsertMesSet(temp_r30, GWPlayerCfg[lbl_1_bss_2D4].character, 2); - HuWinMesSet(temp_r30, 0x1C0003); - HuWinMesWait(temp_r30); - HuWinExAnimOut(temp_r30); - HuWinExCleanup(temp_r30); - HuWinComKeyReset(); - Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32], 0, 10, 0x40000001); - for(temp_r31=0; temp_r31<20; temp_r31++) { - temp_f31 = temp_r31/20.0f; - Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, (temp_f31*90.0f)+90.0f, 0); - HuPrcVSleep(); - } - Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[31], 0, 10, 0x40000001); - fn_1_861C(2); - Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); - HuAudFXPlay(1862); - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); - for(temp_r31=0; temp_r31<20; temp_r31++) { - temp_f31 = 1.0-(temp_r31/20.0f); - Hu3DModelRotSet(lbl_1_bss_2D0, 0, (temp_f31*90.0f)+180.0f, 0); - HuPrcVSleep(); - } - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); - while(Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) < lbl_1_data_140[2]) { - if(Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) == 300.0f) { - HuAudFXPlay(1850); - } - if(Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) == 372.0f) { - HuAudFXPlay(1863); - } - HuPrcVSleep(); - } - HuAudFXPlay(1857); - Hu3DMotionTimeSet(lbl_1_bss_199C2[9], lbl_1_data_140[2]); - Hu3DModelAttrSet(lbl_1_bss_199C2[9], 0x40000002); - HuPrcSleep(20); - lbl_1_bss_2D2 = -1; - fn_1_9418(2); - temp_r26 = fn_1_8DD0(2); - lbl_1_bss_2D2 = temp_r26; - HuAudFXPlay(1861); - fn_1_9CAC(2, temp_r26); - for(temp_r31=0; temp_r31<=60; temp_r31++) { - lbl_1_bss_328[2].x = lbl_1_bss_328[2].y = lbl_1_bss_328[2].z = (0.1*sind(temp_r31*18.0))+0.3; - HuPrcVSleep(); - } - HuPrcSleep(40); - Hu3DModelAttrSet(lbl_1_bss_199C2[64], 1); - fn_1_8180(9); - Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32], 0, 10, 0x40000001); - for(temp_r31=0; temp_r31<=30; temp_r31++) { - if(temp_r31 <= 10) { - Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, (90.0*(temp_r31/10.0))+180.0, 0); - } - if(temp_r31 == 10) { - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); - } - if(temp_r31 > 10 && temp_r31 <= 25) { - temp_r29 = temp_r31-10; - Hu3DModelRotSet(lbl_1_bss_2D0, 0, (90.0*(temp_r29/15.0))+180.0, 0); - } - if(temp_r31 == 25) { - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); - } - Hu3DModelPosSet(lbl_1_bss_199C2[30], (-400.0*(1.0-cosd(3.0*temp_r31)))+(-160.0), 100, 155); - HuPrcVSleep(); - } - HuAudFXPlay(1862); - Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); - while(Hu3DMotionEndCheck(lbl_1_bss_199C2[9]) == 0) { - HuPrcVSleep(); - } - Hu3DModelAttrReset(lbl_1_bss_199C2[11], 0x40000002); - HuAudFXPlay(1855); - Hu3DModelAttrSet(lbl_1_bss_199C2[11], 0x40000004); - while(Hu3DMotionTimeGet(lbl_1_bss_199C2[11]) > 0.0f) { - if(Hu3DMotionTimeGet(lbl_1_bss_199C2[11]) == 25.0f) { - HuAudFXPlay(1854); - } - HuPrcVSleep(); - } - HuAudFXPlay(1856); - Hu3DModelAttrReset(lbl_1_bss_199C2[34], 1); - Hu3DMotionSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[36]); - Hu3DModelRotSet(lbl_1_bss_199C2[34], 0, 90, 0); - for(temp_r31=0; temp_r31<=60; temp_r31++) { - Hu3DModelPosSet(lbl_1_bss_199C2[34], -154.0+(-500.0*(1.0-(temp_r31/60.0f))), 0, -403); - if(temp_r31 > 20) { - temp_r29 = temp_r31-40; - Hu3DModelRotSet(lbl_1_bss_199C2[34], 0, (30.0*(1.0-(temp_r29/20.0f)))+60.0, 0); - } - if(temp_r31 == 50) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[35], 0, 10, 0x40000001); - } - if(temp_r31 == 40) { - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); - } - if(temp_r31 >= 40) { - temp_r29 = temp_r31-40; - Hu3DModelRotSet(lbl_1_bss_2D0, 0, -90.0-(45.0*(temp_r29/20.0)), 0); - } - HuPrcVSleep(); - } - fn_1_8180(7); - temp_r23 = &Hu3DData[lbl_1_bss_2D0]; - sp1C.x = 0; - sp1C.y = 0; - sp1C.z = -200; - sp10 = temp_r23->pos; - VECSubtract(&sp1C, &sp10, &sp1C); - for(temp_r31=0; temp_r31<=30; temp_r31++) { - temp_f31 = temp_r31/30.0; - Hu3DModelPosSet(lbl_1_bss_2D0, (temp_f31*sp1C.x)+sp10.x, (temp_f31*sp1C.y)+sp10.y, (temp_f31*sp1C.z)+sp10.z); - HuPrcVSleep(); - } - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); - BoardStatusShowSet(lbl_1_bss_2D6, 1); - BoardStatusShowSet(lbl_1_bss_2D4, 1); - sp1C.x = -112; - sp1C.y = 200; - sp1C.z = 0; - BoardStatusPosSet(lbl_1_bss_2D6, &sp1C); - sp1C.x = 688; - sp1C.y = 200; - sp1C.z = 0; - BoardStatusPosSet(lbl_1_bss_2D4, &sp1C); - for(temp_r31=0; temp_r31<=20; temp_r31++) { - if(temp_r31 > 10) { - temp_r29 = temp_r31-10; - sp1C.x = 138.0-(250.0*cosd(temp_r29*9.0)); - sp1C.y = 200; - sp1C.z = 0; - BoardStatusTargetPosSet(lbl_1_bss_2D6, &sp1C); - sp1C.x = 438.0+(250.0*cosd(temp_r29*9.0)); - sp1C.y = 200; - sp1C.z = 0; - BoardStatusTargetPosSet(lbl_1_bss_2D4, &sp1C); - } - HuPrcVSleep(); - } - temp_r25 = 1; - switch(lbl_1_bss_2D2) { - case 0: - if(GWPlayer[lbl_1_bss_2D6].coins <= 0 && GWPlayer[lbl_1_bss_2D4].coins <= 0) { - temp_r28 = 0x1C0016; - temp_r25 = 0; - - } else { - temp_r28 = 0x1C0006; - } - temp_r24 = 0x1C0009; - break; - - case 1: - if(GWPlayer[lbl_1_bss_2D6].coins <= 0 && GWPlayer[lbl_1_bss_2D4].coins <= 0 - && GWPlayer[lbl_1_bss_2D6].stars <= 0 && GWPlayer[lbl_1_bss_2D4].stars <= 0) { - temp_r25 = 0; - temp_r28 = 0x1C0017; - } else { - temp_r28 = 0x1C0006; - } - temp_r24 = 0x1C000D; - break; - - case 2: - if(GWPlayer[lbl_1_bss_2D6].stars > 0) { - temp_r28 = 0x1C0004; - } else { - temp_r28 = 0x1C0008; - temp_r25 = 0; - } - temp_r24 = 0x1C000A; - break; - - case 3: - if(GWPlayer[lbl_1_bss_2D6].stars <= 0 && GWPlayer[lbl_1_bss_2D4].stars <= 0) { - temp_r25 = 0; - temp_r28 = 0x1C0015; - } else { - temp_r28 = 0x1C0006; - } - temp_r24 = 0x1C000E; - break; - - case 4: - if(GWPlayer[lbl_1_bss_2D6].stars > 0) { - temp_r28 = 0x1C0004; - } else { - temp_r28 = 0x1C0008; - temp_r25 = 0; - } - temp_r24 = 0x1C000C; - break; - - case 5: - case 6: - if(GWPlayer[lbl_1_bss_2D6].coins > 0) { - temp_r28 = 0x1C0004; - } else { - temp_r28 = 0x1C0007; - temp_r25 = 0; - } - temp_r24 = 0x1C000B; - break; - - default: - break; - } - HuWinInsertMesSizeGet((u32)GWPlayerCfg[lbl_1_bss_2D6].character, 0); - HuWinInsertMesSizeGet(temp_r24, 1); - HuWinInsertMesSizeGet((u32)GWPlayerCfg[lbl_1_bss_2D4].character, 2); - HuWinMesMaxSizeGet(1, sp8, temp_r28); - temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); - HuWinExAnimIn(temp_r30); - HuWinMesPalSet(temp_r30, 7, 0, 0, 0); - HuWinInsertMesSet(temp_r30, GWPlayerCfg[lbl_1_bss_2D6].character, 0); - HuWinInsertMesSet(temp_r30, temp_r24, 1); - HuWinInsertMesSet(temp_r30, GWPlayerCfg[lbl_1_bss_2D4].character, 2); - fn_1_6D80(temp_r30); - HuWinMesSet(temp_r30, temp_r28); - HuWinMesWait(temp_r30); - HuWinExAnimOut(temp_r30); - HuWinExCleanup(temp_r30); - HuWinComKeyReset(); - if(temp_r25) { - fn_1_4DEC(); - HuPrcSleep(60); - } else { - HuPrcSleep(30); - } - sp1C.x = -112; - sp1C.y = 200; - sp1C.z = 0; - BoardStatusTargetPosSet(lbl_1_bss_2D6, &sp1C); - sp1C.x = 688; - sp1C.y = 200; - sp1C.z = 0; - BoardStatusTargetPosSet(lbl_1_bss_2D4, &sp1C); - while(!BoardStatusStopCheck(lbl_1_bss_2D6)) { - HuPrcVSleep(); - } - for(temp_r31=0; temp_r31<=20; temp_r31++) { - for(temp_r27=0; temp_r27<3; temp_r27++) { - lbl_1_bss_34C[temp_r27].y = (180.0*cosd(4.5*temp_r29))-100.0; - } - HuPrcVSleep(); - } - fn_1_3B7C(); - lbl_1_bss_2FC = 1; - while(1) { - lbl_1_bss_288[0] += 10.0f; - HuPrcVSleep(); - } + float temp_f31; + float temp_f30; + + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + u32 temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + u32 temp_r24; + ModelData *temp_r23; + + Vec sp1C; + Vec sp10; + float sp8[2]; + + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + if (GWPlayerCfg[temp_r31].group == 0) { + break; + } + } + lbl_1_bss_2DC = temp_r31; + lbl_1_bss_2D8 = GWPlayerCfg[temp_r31].pad_idx; + lbl_1_bss_2DA = GWPlayerCfg[temp_r31].character; + fn_1_655C(); + fn_1_8210(5); + fn_1_8180(6); + Hu3DModelPosSet(lbl_1_bss_2D0, 0, 0, 250); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + HuAudSeqPlay(76); + while (WipeStatGet()) { + HuPrcVSleep(); + } + while (fn_1_82FC() > 10.0f) { + HuPrcVSleep(); + } + Hu3DModelAttrReset(lbl_1_bss_199C2[18], 1); + Hu3DMotionSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[20]); + Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, 90, 0); + for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { + if (temp_r31 <= 30) { + espPosSet(lbl_1_bss_1990A[0], 288, (200.0 * sind(3.0 * temp_r31)) - 100.0); + } + Hu3DModelPosSet(lbl_1_bss_199C2[18], (-300.0 * cosd(1.5 * temp_r31)) + (-160.0), 0, 155); + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { + if (temp_r31 <= 20) { + Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, (30.0 * (1.0 - (temp_r31 / 20.0f))) + 60.0, 0); + } + if (temp_r31 > 10) { + temp_r29 = temp_r31 - 10; + Hu3DModelRotSet(lbl_1_bss_2D0, 0, (-(temp_r29 / 20.0f)) * 120.0f, 0); + } + if (temp_r31 == 10) { + Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[19], 0, 16, 0x40000001); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 8, 0x40000001); + } + HuPrcVSleep(); + } + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 8, 0x40000001); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1C, 0x00)); + temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); + HuWinExAnimIn(temp_r30); + HuWinMesPalSet(temp_r30, 7, 0, 0, 0); + fn_1_6D80(temp_r30); + HuWinMesSet(temp_r30, MAKE_MESSID(0x1C, 0x00)); + HuWinMesWait(temp_r30); + HuWinExAnimOut(temp_r30); + HuWinExCleanup(temp_r30); + HuWinComKeyReset(); + Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[20], 0, 10, 0x40000001); + for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) { + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { + if (temp_r31 <= 10) { + Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, 30.0f - ((temp_r31 / 10.0f) * 120.0f), 0); + } + if (temp_r31 <= 20) { + espPosSet(lbl_1_bss_1990A[0], 288, (200.0 * cosd(temp_r31 * 4.5)) - 100.0); + } + Hu3DModelPosSet(lbl_1_bss_199C2[18], ((1.0 - cosd(temp_r31 * 3.0)) * -200.0) + -160.0, 0, 155); + HuPrcVSleep(); + } + Hu3DModelAttrSet(lbl_1_bss_199C2[18], 1); + Hu3DModelAttrReset(lbl_1_bss_199C2[22], 1); + Hu3DMotionSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24]); + Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, 90, 0); + for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { + Hu3DModelPosSet(lbl_1_bss_199C2[22], (-300.0 * cosd(1.5 * temp_r31)) + (-160.0), 0, 155); + if (temp_r31 > 20) { + temp_r29 = temp_r31 - 40; + Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, (30.0 * (1.0 - (temp_r29 / 20.0f))) + 60.0, 0); + } + if (temp_r31 == 50) { + Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[23], 0, 10, 0x40000001); + } + if (temp_r31 > 40) { + temp_r29 = temp_r31 - 40; + for (temp_r27 = 0; temp_r27 < 3; temp_r27++) { + lbl_1_bss_34C[temp_r27].y = (180.0 * sind(4.5 * temp_r29)) - 100.0; + } + } + HuPrcVSleep(); + } + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1C, 0x01)); + temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); + HuWinExAnimIn(temp_r30); + HuWinMesPalSet(temp_r30, 7, 0, 0, 0); + fn_1_6D80(temp_r30); + HuWinMesSet(temp_r30, MAKE_MESSID(0x1C, 0x01)); + HuWinMesWait(temp_r30); + HuWinExAnimOut(temp_r30); + HuWinExCleanup(temp_r30); + HuWinComKeyReset(); + Hu3DModelAttrReset(lbl_1_bss_199C2[11], 0x40000002); + HuAudFXPlay(1854); + Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24], 0, 10, 0x40000001); + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + temp_f31 = temp_r31 / 20.0f; + Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, (150.0f * temp_f31) + 30.0f, 0); + HuPrcVSleep(); + } + Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[23], 0, 10, 0x40000001); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + temp_f31 = temp_r31 / 20.0f; + Hu3DModelRotSet(lbl_1_bss_2D0, 0, -120.0f - (60.0f * temp_f31), 0); + HuPrcVSleep(); + } + HuAudFXPlay(1855); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); + while (Hu3DMotionEndCheck(lbl_1_bss_199C2[11]) == 0) { + HuPrcVSleep(); + } + HuAudFXPlay(1856); + fn_1_861C(0); + Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); + HuAudFXPlay(1863); + while (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) < lbl_1_data_140[0]) { + HuPrcVSleep(); + } + HuAudFXPlay(1857); + Hu3DMotionTimeSet(lbl_1_bss_199C2[9], lbl_1_data_140[0]); + Hu3DModelAttrSet(lbl_1_bss_199C2[9], 0x40000002); + HuPrcSleep(20); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 8, 0x40000001); + sp1C.x = 124; + sp1C.y = 0; + sp1C.z = -180; + for (temp_r31 = 0; temp_r31 <= 40; temp_r31++) { + temp_f31 = temp_r31 / 40.0f; + Hu3DModelPosSet(lbl_1_bss_2D0, temp_f31 * sp1C.x, temp_f31 * sp1C.y, (temp_f31 * sp1C.z) + 250.0f); + if (temp_r31 <= 20) { + temp_f30 = atan2d(sp1C.x, sp1C.z) - 180.0; + Hu3DModelRotSet(lbl_1_bss_2D0, 0, (temp_f30 * (temp_r31 / 20.0)) + 180.0, 0); + } + if (temp_r31 > 30) { + temp_r29 = temp_r31 - 30; + temp_f30 = atan2d(sp1C.x, sp1C.z) - 180.0; + Hu3DModelRotSet(lbl_1_bss_2D0, 0, (temp_f30 * (1.0 - (temp_r29 / 10.0))) + 180.0, 0); + } + HuPrcVSleep(); + } + lbl_1_bss_2D6 = -1; + fn_1_9418(0); + temp_r26 = fn_1_8DD0(0); + lbl_1_bss_2D6 = lbl_1_bss_320[temp_r26]; + HuAudFXPlay(1859); + fn_1_9CAC(0, temp_r26); + for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { + lbl_1_bss_328[0].x = lbl_1_bss_328[0].y = lbl_1_bss_328[0].z = (0.1 * sind(temp_r31 * 18.0)) + 0.3; + HuPrcVSleep(); + } + HuPrcSleep(40); + Hu3DModelAttrSet(lbl_1_bss_199C2[64], 1); + fn_1_8180(9); + Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24], 0, 10, 0x40000001); + for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { + if (temp_r31 <= 10) { + Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, (90.0 * (temp_r31 / 10.0)) + 180.0, 0); + } + if (temp_r31 == 10) { + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); + } + if (temp_r31 > 10 && temp_r31 <= 25) { + temp_r29 = temp_r31 - 10; + Hu3DModelRotSet(lbl_1_bss_2D0, 0, (90.0 * (temp_r29 / 15.0)) + 180.0, 0); + } + if (temp_r31 == 25) { + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); + } + Hu3DModelPosSet(lbl_1_bss_199C2[22], (-300.0 * (1.0 - cosd(3.0 * temp_r31))) + (-160.0), 0, 155); + HuPrcVSleep(); + } + Hu3DModelAttrSet(lbl_1_bss_199C2[22], 1); + Hu3DModelAttrReset(lbl_1_bss_199C2[26], 1); + Hu3DMotionSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28]); + Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, 90, 0); + for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { + Hu3DModelPosSet(lbl_1_bss_199C2[26], (-300.0 * cosd(1.5 * temp_r31)) + (-160.0), 0, 155); + if (temp_r31 == 50) { + Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[27], 0, 10, 0x40000001); + } + HuPrcVSleep(); + } + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1C, 0x02)); + temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); + HuWinExAnimIn(temp_r30); + HuWinMesPalSet(temp_r30, 7, 0, 0, 0); + fn_1_6D80(temp_r30); + HuWinInsertMesSet(temp_r30, GWPlayerCfg[lbl_1_bss_2D6].character, 0); + HuWinMesSet(temp_r30, MAKE_MESSID(0x1C, 0x02)); + HuWinMesWait(temp_r30); + HuWinExAnimOut(temp_r30); + HuWinExCleanup(temp_r30); + HuWinComKeyReset(); + Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28], 0, 10, 0x40000001); + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + temp_f31 = temp_r31 / 20.0f; + Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, (temp_f31 * 90.0f) + 90.0f, 0); + HuPrcVSleep(); + } + Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[27], 0, 10, 0x40000001); + fn_1_861C(1); + Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); + HuAudFXPlay(1862); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + temp_f31 = 1.0 - (temp_r31 / 20.0f); + Hu3DModelRotSet(lbl_1_bss_2D0, 0, (temp_f31 * 90.0f) + 180.0f, 0); + HuPrcVSleep(); + } + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); + while (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) < lbl_1_data_140[1]) { + if (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) == 128.0f) { + HuAudFXPlay(1850); + } + if (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) == 200.0f) { + HuAudFXPlay(1863); + } + HuPrcVSleep(); + } + HuAudFXPlay(1857); + Hu3DMotionTimeSet(lbl_1_bss_199C2[9], lbl_1_data_140[1]); + Hu3DModelAttrSet(lbl_1_bss_199C2[9], 0x40000002); + HuPrcSleep(20); + lbl_1_bss_2D4 = -1; + fn_1_9418(1); + temp_r26 = fn_1_8DD0(1); + lbl_1_bss_2D4 = lbl_1_bss_320[temp_r26]; + HuAudFXPlay(1860); + fn_1_9CAC(1, temp_r26); + for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { + lbl_1_bss_328[1].x = lbl_1_bss_328[1].y = lbl_1_bss_328[1].z = (0.1 * sind(temp_r31 * 18.0)) + 0.3; + HuPrcVSleep(); + } + HuPrcSleep(40); + Hu3DModelAttrSet(lbl_1_bss_199C2[64], 1); + fn_1_8180(9); + Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28], 0, 10, 0x40000001); + for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { + if (temp_r31 <= 10) { + Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, (90.0 * (temp_r31 / 10.0)) + 180.0, 0); + } + if (temp_r31 == 10) { + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); + } + if (temp_r31 > 10 && temp_r31 <= 25) { + temp_r29 = temp_r31 - 10; + Hu3DModelRotSet(lbl_1_bss_2D0, 0, (90.0 * (temp_r29 / 15.0)) + 180.0, 0); + } + if (temp_r31 == 25) { + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); + } + Hu3DModelPosSet(lbl_1_bss_199C2[26], (-400.0 * (1.0 - cosd(3.0 * temp_r31))) + (-160.0), 0, 155); + HuPrcVSleep(); + } + Hu3DModelAttrSet(lbl_1_bss_199C2[26], 1); + Hu3DModelAttrReset(lbl_1_bss_199C2[30], 1); + Hu3DMotionSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32]); + Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, 90, 0); + for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { + Hu3DModelPosSet(lbl_1_bss_199C2[30], (-400.0 * cosd(1.5 * temp_r31)) + (-160.0), 100, 155); + if (temp_r31 == 50) { + Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[31], 0, 10, 0x40000001); + } + HuPrcVSleep(); + } + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1C, 0x03)); + temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); + HuWinExAnimIn(temp_r30); + HuWinMesPalSet(temp_r30, 7, 0, 0, 0); + fn_1_6D80(temp_r30); + HuWinInsertMesSet(temp_r30, GWPlayerCfg[lbl_1_bss_2D6].character, 0); + HuWinInsertMesSet(temp_r30, GWPlayerCfg[lbl_1_bss_2D4].character, 2); + HuWinMesSet(temp_r30, MAKE_MESSID(0x1C, 0x03)); + HuWinMesWait(temp_r30); + HuWinExAnimOut(temp_r30); + HuWinExCleanup(temp_r30); + HuWinComKeyReset(); + Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32], 0, 10, 0x40000001); + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + temp_f31 = temp_r31 / 20.0f; + Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, (temp_f31 * 90.0f) + 90.0f, 0); + HuPrcVSleep(); + } + Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[31], 0, 10, 0x40000001); + fn_1_861C(2); + Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); + HuAudFXPlay(1862); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + temp_f31 = 1.0 - (temp_r31 / 20.0f); + Hu3DModelRotSet(lbl_1_bss_2D0, 0, (temp_f31 * 90.0f) + 180.0f, 0); + HuPrcVSleep(); + } + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); + while (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) < lbl_1_data_140[2]) { + if (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) == 300.0f) { + HuAudFXPlay(1850); + } + if (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) == 372.0f) { + HuAudFXPlay(1863); + } + HuPrcVSleep(); + } + HuAudFXPlay(1857); + Hu3DMotionTimeSet(lbl_1_bss_199C2[9], lbl_1_data_140[2]); + Hu3DModelAttrSet(lbl_1_bss_199C2[9], 0x40000002); + HuPrcSleep(20); + lbl_1_bss_2D2 = -1; + fn_1_9418(2); + temp_r26 = fn_1_8DD0(2); + lbl_1_bss_2D2 = temp_r26; + HuAudFXPlay(1861); + fn_1_9CAC(2, temp_r26); + for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { + lbl_1_bss_328[2].x = lbl_1_bss_328[2].y = lbl_1_bss_328[2].z = (0.1 * sind(temp_r31 * 18.0)) + 0.3; + HuPrcVSleep(); + } + HuPrcSleep(40); + Hu3DModelAttrSet(lbl_1_bss_199C2[64], 1); + fn_1_8180(9); + Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32], 0, 10, 0x40000001); + for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { + if (temp_r31 <= 10) { + Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, (90.0 * (temp_r31 / 10.0)) + 180.0, 0); + } + if (temp_r31 == 10) { + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); + } + if (temp_r31 > 10 && temp_r31 <= 25) { + temp_r29 = temp_r31 - 10; + Hu3DModelRotSet(lbl_1_bss_2D0, 0, (90.0 * (temp_r29 / 15.0)) + 180.0, 0); + } + if (temp_r31 == 25) { + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); + } + Hu3DModelPosSet(lbl_1_bss_199C2[30], (-400.0 * (1.0 - cosd(3.0 * temp_r31))) + (-160.0), 100, 155); + HuPrcVSleep(); + } + HuAudFXPlay(1862); + Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); + while (Hu3DMotionEndCheck(lbl_1_bss_199C2[9]) == 0) { + HuPrcVSleep(); + } + Hu3DModelAttrReset(lbl_1_bss_199C2[11], 0x40000002); + HuAudFXPlay(1855); + Hu3DModelAttrSet(lbl_1_bss_199C2[11], 0x40000004); + while (Hu3DMotionTimeGet(lbl_1_bss_199C2[11]) > 0.0f) { + if (Hu3DMotionTimeGet(lbl_1_bss_199C2[11]) == 25.0f) { + HuAudFXPlay(1854); + } + HuPrcVSleep(); + } + HuAudFXPlay(1856); + Hu3DModelAttrReset(lbl_1_bss_199C2[34], 1); + Hu3DMotionSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[36]); + Hu3DModelRotSet(lbl_1_bss_199C2[34], 0, 90, 0); + for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { + Hu3DModelPosSet(lbl_1_bss_199C2[34], -154.0 + (-500.0 * (1.0 - (temp_r31 / 60.0f))), 0, -403); + if (temp_r31 > 20) { + temp_r29 = temp_r31 - 40; + Hu3DModelRotSet(lbl_1_bss_199C2[34], 0, (30.0 * (1.0 - (temp_r29 / 20.0f))) + 60.0, 0); + } + if (temp_r31 == 50) { + Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[35], 0, 10, 0x40000001); + } + if (temp_r31 == 40) { + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); + } + if (temp_r31 >= 40) { + temp_r29 = temp_r31 - 40; + Hu3DModelRotSet(lbl_1_bss_2D0, 0, -90.0 - (45.0 * (temp_r29 / 20.0)), 0); + } + HuPrcVSleep(); + } + fn_1_8180(7); + temp_r23 = &Hu3DData[lbl_1_bss_2D0]; + sp1C.x = 0; + sp1C.y = 0; + sp1C.z = -200; + sp10 = temp_r23->pos; + VECSubtract(&sp1C, &sp10, &sp1C); + for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { + temp_f31 = temp_r31 / 30.0; + Hu3DModelPosSet(lbl_1_bss_2D0, (temp_f31 * sp1C.x) + sp10.x, (temp_f31 * sp1C.y) + sp10.y, (temp_f31 * sp1C.z) + sp10.z); + HuPrcVSleep(); + } + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); + BoardStatusShowSet(lbl_1_bss_2D6, 1); + BoardStatusShowSet(lbl_1_bss_2D4, 1); + sp1C.x = -112; + sp1C.y = 200; + sp1C.z = 0; + BoardStatusPosSet(lbl_1_bss_2D6, &sp1C); + sp1C.x = 688; + sp1C.y = 200; + sp1C.z = 0; + BoardStatusPosSet(lbl_1_bss_2D4, &sp1C); + for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) { + if (temp_r31 > 10) { + temp_r29 = temp_r31 - 10; + sp1C.x = 138.0 - (250.0 * cosd(temp_r29 * 9.0)); + sp1C.y = 200; + sp1C.z = 0; + BoardStatusTargetPosSet(lbl_1_bss_2D6, &sp1C); + sp1C.x = 438.0 + (250.0 * cosd(temp_r29 * 9.0)); + sp1C.y = 200; + sp1C.z = 0; + BoardStatusTargetPosSet(lbl_1_bss_2D4, &sp1C); + } + HuPrcVSleep(); + } + temp_r25 = 1; + switch (lbl_1_bss_2D2) { + case 0: + if (GWPlayer[lbl_1_bss_2D6].coins <= 0 && GWPlayer[lbl_1_bss_2D4].coins <= 0) { + temp_r28 = MAKE_MESSID(0x1C, 0x16); + temp_r25 = 0; + } + else { + temp_r28 = MAKE_MESSID(0x1C, 0x06); + } + temp_r24 = MAKE_MESSID(0x1C, 0x09); + break; + + case 1: + if (GWPlayer[lbl_1_bss_2D6].coins <= 0 && GWPlayer[lbl_1_bss_2D4].coins <= 0 && GWPlayer[lbl_1_bss_2D6].stars <= 0 + && GWPlayer[lbl_1_bss_2D4].stars <= 0) { + temp_r25 = 0; + temp_r28 = MAKE_MESSID(0x1C, 0x17); + } + else { + temp_r28 = MAKE_MESSID(0x1C, 0x06); + } + temp_r24 = MAKE_MESSID(0x1C, 0x0D); + break; + + case 2: + if (GWPlayer[lbl_1_bss_2D6].stars > 0) { + temp_r28 = MAKE_MESSID(0x1C, 0x04); + } + else { + temp_r28 = MAKE_MESSID(0x1C, 0x08); + temp_r25 = 0; + } + temp_r24 = MAKE_MESSID(0x1C, 0x0A); + break; + + case 3: + if (GWPlayer[lbl_1_bss_2D6].stars <= 0 && GWPlayer[lbl_1_bss_2D4].stars <= 0) { + temp_r25 = 0; + temp_r28 = MAKE_MESSID(0x1C, 0x15); + } + else { + temp_r28 = MAKE_MESSID(0x1C, 0x06); + } + temp_r24 = MAKE_MESSID(0x1C, 0x0E); + break; + + case 4: + if (GWPlayer[lbl_1_bss_2D6].stars > 0) { + temp_r28 = MAKE_MESSID(0x1C, 0x04); + } + else { + temp_r28 = MAKE_MESSID(0x1C, 0x08); + temp_r25 = 0; + } + temp_r24 = MAKE_MESSID(0x1C, 0x0C); + break; + + case 5: + case 6: + if (GWPlayer[lbl_1_bss_2D6].coins > 0) { + temp_r28 = MAKE_MESSID(0x1C, 0x04); + } + else { + temp_r28 = MAKE_MESSID(0x1C, 0x07); + temp_r25 = 0; + } + temp_r24 = MAKE_MESSID(0x1C, 0x0B); + break; + + default: + break; + } + HuWinInsertMesSizeGet((u32)GWPlayerCfg[lbl_1_bss_2D6].character, 0); + HuWinInsertMesSizeGet(temp_r24, 1); + HuWinInsertMesSizeGet((u32)GWPlayerCfg[lbl_1_bss_2D4].character, 2); + HuWinMesMaxSizeGet(1, sp8, temp_r28); + temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); + HuWinExAnimIn(temp_r30); + HuWinMesPalSet(temp_r30, 7, 0, 0, 0); + HuWinInsertMesSet(temp_r30, GWPlayerCfg[lbl_1_bss_2D6].character, 0); + HuWinInsertMesSet(temp_r30, temp_r24, 1); + HuWinInsertMesSet(temp_r30, GWPlayerCfg[lbl_1_bss_2D4].character, 2); + fn_1_6D80(temp_r30); + HuWinMesSet(temp_r30, temp_r28); + HuWinMesWait(temp_r30); + HuWinExAnimOut(temp_r30); + HuWinExCleanup(temp_r30); + HuWinComKeyReset(); + if (temp_r25) { + fn_1_4DEC(); + HuPrcSleep(60); + } + else { + HuPrcSleep(30); + } + sp1C.x = -112; + sp1C.y = 200; + sp1C.z = 0; + BoardStatusTargetPosSet(lbl_1_bss_2D6, &sp1C); + sp1C.x = 688; + sp1C.y = 200; + sp1C.z = 0; + BoardStatusTargetPosSet(lbl_1_bss_2D4, &sp1C); + while (!BoardStatusStopCheck(lbl_1_bss_2D6)) { + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) { + for (temp_r27 = 0; temp_r27 < 3; temp_r27++) { + lbl_1_bss_34C[temp_r27].y = (180.0 * cosd(4.5 * temp_r29)) - 100.0; + } + HuPrcVSleep(); + } + fn_1_3B7C(); + lbl_1_bss_2FC = 1; + while (1) { + lbl_1_bss_288[0] += 10.0f; + HuPrcVSleep(); + } } void fn_1_3B7C(void) { - float temp_f31; - s16 temp_r31; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - float sp8[2]; - fn_1_8180(8); - for(temp_r30=0; temp_r30<100; temp_r30++) { - temp_r31 = temp_r30; - if(temp_r31 == 0) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[36], 0, 10, 0x40000001); - } - if(temp_r31 <= 20) { - Hu3DModelRotSet(lbl_1_bss_199C2[34], 0, (30.0*(temp_r31/20.0))+60.0, 0); - } - if(temp_r31 > 10 && temp_r31 <= 60) { - temp_r29 = temp_r31-10; - Hu3DModelPosSet(lbl_1_bss_199C2[34], -154.0f+(354.0*(temp_r29/50.0)), 0, -403); - } - if(temp_r31 > 50 && temp_r31 <= 70) { - temp_r29 = temp_r31-50; - Hu3DModelRotSet(lbl_1_bss_199C2[34], 0, (110.0*(1.0-(temp_r29/20.0)))+ -20.0, 0); - } - if(temp_r31 == 70) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[35], 0, 10, 0x40000001); - } - temp_r31 = temp_r30; - if(temp_r31 == 0) { - Hu3DMotionSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[20]); - temp_f31 = atan2d(400.0, 200.0)+180.0; - Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, temp_f31, 0); - Hu3DModelAttrReset(lbl_1_bss_199C2[18], 1); - } - if(temp_r31 <= 50) { - Hu3DModelPosSet(lbl_1_bss_199C2[18], 400.0*(1.0-(temp_r31/50.0)), 0, -553.0+(200.0*(1.0-(temp_r31/50.0)))); - } - if(temp_r31 > 40 && temp_r31 <= 60) { - temp_r29 = temp_r31-40; - temp_f31 = atan2d(400.0, 200.0)+180.0; - Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, temp_f31*(1.0-(temp_r29/20.0)), 0); - } - if(temp_r31 == 60) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[19], 0, 10, 0x40000001); - } - if(temp_r30 >= 20) { - temp_r31 = temp_r30-20; - if(temp_r31 == 0) { - Hu3DMotionSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28]); - temp_f31 = atan2d(-300.0, 200.0)+180.0; - Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, temp_f31, 0); - Hu3DModelAttrReset(lbl_1_bss_199C2[26], 1); - } - if(temp_r31 <= 40) { - Hu3DModelPosSet(lbl_1_bss_199C2[26], -100.0+(-300.0*(1.0-(temp_r31/40.0))), 0, -478.0+(200.0*(1.0-(temp_r31/40.0)))); - } - if(temp_r31 > 30 && temp_r31 <= 50) { - temp_r29 = temp_r31-30; - temp_f31 = atan2d(-300.0, 200.0)+180.0; - Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, (temp_f31-10.0f)*(1.0-(temp_r29/20.0))+10.0, 0); - } - if(temp_r31 == 50) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[27], 0, 10, 0x40000001); - } - } - if(temp_r30 >= 30) { - temp_r31 = temp_r30-30; - if(temp_r31 == 0) { - Hu3DMotionSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32]); - temp_f31 = atan2d(200.0, 500.0)+180.0; - Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, temp_f31, 0); - Hu3DModelAttrReset(lbl_1_bss_199C2[30], 1); - } - if(temp_r31 <= 40) { - Hu3DModelPosSet(lbl_1_bss_199C2[30], 100.0+(200.0*(1.0-(temp_r31/40.0))), 100, -478.0+(500.0*(1.0-(temp_r31/40.0)))); - } - if(temp_r31 > 30 && temp_r31 <= 50) { - temp_r29 = temp_r31-30; - temp_f31 = atan2d(200.0, 500.0)+180.0; - Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, (temp_f31- -10.0f)*(1.0-(temp_r29/20.0))+ -10.0, 0); - } - if(temp_r31 == 50) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[31], 0, 10, 0x40000001); - } - } - if(temp_r30 >= 40) { - temp_r31 = temp_r30-40; - if(temp_r31 == 0) { - Hu3DMotionSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24]); - temp_f31 = atan2d(-300.0, 100.0)+180.0; - Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, temp_f31, 0); - Hu3DModelAttrReset(lbl_1_bss_199C2[22], 1); - } - if(temp_r31 <= 40) { - Hu3DModelPosSet(lbl_1_bss_199C2[22], -200.0+(-300.0*(1.0-(temp_r31/40.0))), 0, -403.0+(100.0*(1.0-(temp_r31/40.0)))); - } - if(temp_r31 > 30 && temp_r31 <= 50) { - temp_r29 = temp_r31-30; - temp_f31 = atan2d(-300.0, 100.0)+180.0; - Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, (temp_f31-20.0f)*(1.0-(temp_r29/20.0))+20.0, 0); - } - if(temp_r31 == 50) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[23], 0, 10, 0x40000001); - } - } - if(temp_r30 >= 30) { - temp_r31 = temp_r30-30; - if(temp_r31 == 0) { - Hu3DMotionShiftSet(lbl_1_bss_2D0, lbl_1_bss_2C0[1], 0, 10, 0x40000001); - } - if(temp_r31 <= 20) { - Hu3DModelRotSet(lbl_1_bss_2D0, 0, -135.0-(45.0*(temp_r31/20.0)), 0); - } - if(temp_r31 == 20) { - Hu3DMotionShiftSet(lbl_1_bss_2D0, lbl_1_bss_2C0[0], 0, 10, 0x40000001); - } - } - HuPrcVSleep(); - } - HuWinMesMaxSizeGet(1, sp8, 0x1C0005); - temp_r28 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); - HuWinExAnimIn(temp_r28); - HuWinMesPalSet(temp_r28, 7, 0, 0, 0); - fn_1_6D80(temp_r28); - HuAudFXPlay(55); - HuAudFXPlay(64); - HuAudFXPlay(67); - HuAudFXPlay(70); - HuAudFXPlay(75); - HuWinMesSet(temp_r28, 0x1C0005); - HuWinMesWait(temp_r28); - HuWinExAnimOut(temp_r28); - HuWinExCleanup(temp_r28); - HuWinComKeyReset(); - Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[21], 0, 10, 0x40000001); - HuPrcSleep(5); - Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[25], 0, 10, 0x40000001); - Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[29], 0, 10, 0x40000001); - HuPrcSleep(10); - Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[33], 0, 10, 0x40000001); - HuPrcSleep(10); - Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[37], 0, 10, 0x40000001); + float temp_f31; + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + float sp8[2]; + fn_1_8180(8); + for (temp_r30 = 0; temp_r30 < 100; temp_r30++) { + temp_r31 = temp_r30; + if (temp_r31 == 0) { + Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[36], 0, 10, 0x40000001); + } + if (temp_r31 <= 20) { + Hu3DModelRotSet(lbl_1_bss_199C2[34], 0, (30.0 * (temp_r31 / 20.0)) + 60.0, 0); + } + if (temp_r31 > 10 && temp_r31 <= 60) { + temp_r29 = temp_r31 - 10; + Hu3DModelPosSet(lbl_1_bss_199C2[34], -154.0f + (354.0 * (temp_r29 / 50.0)), 0, -403); + } + if (temp_r31 > 50 && temp_r31 <= 70) { + temp_r29 = temp_r31 - 50; + Hu3DModelRotSet(lbl_1_bss_199C2[34], 0, (110.0 * (1.0 - (temp_r29 / 20.0))) + -20.0, 0); + } + if (temp_r31 == 70) { + Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[35], 0, 10, 0x40000001); + } + temp_r31 = temp_r30; + if (temp_r31 == 0) { + Hu3DMotionSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[20]); + temp_f31 = atan2d(400.0, 200.0) + 180.0; + Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, temp_f31, 0); + Hu3DModelAttrReset(lbl_1_bss_199C2[18], 1); + } + if (temp_r31 <= 50) { + Hu3DModelPosSet(lbl_1_bss_199C2[18], 400.0 * (1.0 - (temp_r31 / 50.0)), 0, -553.0 + (200.0 * (1.0 - (temp_r31 / 50.0)))); + } + if (temp_r31 > 40 && temp_r31 <= 60) { + temp_r29 = temp_r31 - 40; + temp_f31 = atan2d(400.0, 200.0) + 180.0; + Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, temp_f31 * (1.0 - (temp_r29 / 20.0)), 0); + } + if (temp_r31 == 60) { + Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[19], 0, 10, 0x40000001); + } + if (temp_r30 >= 20) { + temp_r31 = temp_r30 - 20; + if (temp_r31 == 0) { + Hu3DMotionSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28]); + temp_f31 = atan2d(-300.0, 200.0) + 180.0; + Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, temp_f31, 0); + Hu3DModelAttrReset(lbl_1_bss_199C2[26], 1); + } + if (temp_r31 <= 40) { + Hu3DModelPosSet(lbl_1_bss_199C2[26], -100.0 + (-300.0 * (1.0 - (temp_r31 / 40.0))), 0, -478.0 + (200.0 * (1.0 - (temp_r31 / 40.0)))); + } + if (temp_r31 > 30 && temp_r31 <= 50) { + temp_r29 = temp_r31 - 30; + temp_f31 = atan2d(-300.0, 200.0) + 180.0; + Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, (temp_f31 - 10.0f) * (1.0 - (temp_r29 / 20.0)) + 10.0, 0); + } + if (temp_r31 == 50) { + Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[27], 0, 10, 0x40000001); + } + } + if (temp_r30 >= 30) { + temp_r31 = temp_r30 - 30; + if (temp_r31 == 0) { + Hu3DMotionSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32]); + temp_f31 = atan2d(200.0, 500.0) + 180.0; + Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, temp_f31, 0); + Hu3DModelAttrReset(lbl_1_bss_199C2[30], 1); + } + if (temp_r31 <= 40) { + Hu3DModelPosSet(lbl_1_bss_199C2[30], 100.0 + (200.0 * (1.0 - (temp_r31 / 40.0))), 100, -478.0 + (500.0 * (1.0 - (temp_r31 / 40.0)))); + } + if (temp_r31 > 30 && temp_r31 <= 50) { + temp_r29 = temp_r31 - 30; + temp_f31 = atan2d(200.0, 500.0) + 180.0; + Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, (temp_f31 - -10.0f) * (1.0 - (temp_r29 / 20.0)) + -10.0, 0); + } + if (temp_r31 == 50) { + Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[31], 0, 10, 0x40000001); + } + } + if (temp_r30 >= 40) { + temp_r31 = temp_r30 - 40; + if (temp_r31 == 0) { + Hu3DMotionSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24]); + temp_f31 = atan2d(-300.0, 100.0) + 180.0; + Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, temp_f31, 0); + Hu3DModelAttrReset(lbl_1_bss_199C2[22], 1); + } + if (temp_r31 <= 40) { + Hu3DModelPosSet(lbl_1_bss_199C2[22], -200.0 + (-300.0 * (1.0 - (temp_r31 / 40.0))), 0, -403.0 + (100.0 * (1.0 - (temp_r31 / 40.0)))); + } + if (temp_r31 > 30 && temp_r31 <= 50) { + temp_r29 = temp_r31 - 30; + temp_f31 = atan2d(-300.0, 100.0) + 180.0; + Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, (temp_f31 - 20.0f) * (1.0 - (temp_r29 / 20.0)) + 20.0, 0); + } + if (temp_r31 == 50) { + Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[23], 0, 10, 0x40000001); + } + } + if (temp_r30 >= 30) { + temp_r31 = temp_r30 - 30; + if (temp_r31 == 0) { + Hu3DMotionShiftSet(lbl_1_bss_2D0, lbl_1_bss_2C0[1], 0, 10, 0x40000001); + } + if (temp_r31 <= 20) { + Hu3DModelRotSet(lbl_1_bss_2D0, 0, -135.0 - (45.0 * (temp_r31 / 20.0)), 0); + } + if (temp_r31 == 20) { + Hu3DMotionShiftSet(lbl_1_bss_2D0, lbl_1_bss_2C0[0], 0, 10, 0x40000001); + } + } + HuPrcVSleep(); + } + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1C, 0x05)); + temp_r28 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); + HuWinExAnimIn(temp_r28); + HuWinMesPalSet(temp_r28, 7, 0, 0, 0); + fn_1_6D80(temp_r28); + HuAudFXPlay(55); + HuAudFXPlay(64); + HuAudFXPlay(67); + HuAudFXPlay(70); + HuAudFXPlay(75); + HuWinMesSet(temp_r28, MAKE_MESSID(0x1C, 0x05)); + HuWinMesWait(temp_r28); + HuWinExAnimOut(temp_r28); + HuWinExCleanup(temp_r28); + HuWinComKeyReset(); + Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[21], 0, 10, 0x40000001); + HuPrcSleep(5); + Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[25], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[29], 0, 10, 0x40000001); + HuPrcSleep(10); + Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[33], 0, 10, 0x40000001); + HuPrcSleep(10); + Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[37], 0, 10, 0x40000001); } void fn_1_55B0(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s32 arg4); void fn_1_4DEC(void) { - s16 coins; - s16 stars; - switch(lbl_1_bss_2D2) { - case 0: - lbl_1_bss_4 = 2; - if(GWPlayer[lbl_1_bss_2D6].coins >= GWPlayer[lbl_1_bss_2D4].coins) { - fn_1_55B0(2, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].coins, 1); - fn_1_55B0(3, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].coins, 0); - } else { - fn_1_55B0(2, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].coins, 0); - fn_1_55B0(3, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].coins, 1); - } - break; - - case 1: - lbl_1_bss_4 = 2; - if(GWPlayer[lbl_1_bss_2D6].coins >= GWPlayer[lbl_1_bss_2D4].coins) { - fn_1_55B0(2, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].coins, 1); - fn_1_55B0(3, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].coins, 0); - } else { - fn_1_55B0(2, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].coins, 0); - fn_1_55B0(3, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].coins, 1); - } - while(lbl_1_bss_4 != 0) { - HuPrcVSleep(); - } - lbl_1_bss_4 = 2; - if(GWPlayer[lbl_1_bss_2D6].stars >= GWPlayer[lbl_1_bss_2D4].stars) { - fn_1_55B0(0, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].stars, 1); - fn_1_55B0(1, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].stars, 0); - } else { - fn_1_55B0(0, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].stars, 0); - fn_1_55B0(1, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].stars, 1); - } - break; - - case 2: - lbl_1_bss_4 = 1; - fn_1_55B0(0, lbl_1_bss_2D6, lbl_1_bss_2D4, 1, 1); - break; - - case 3: - lbl_1_bss_4 = 2; - if(GWPlayer[lbl_1_bss_2D6].stars >= GWPlayer[lbl_1_bss_2D4].stars) { - fn_1_55B0(0, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].stars, 1); - fn_1_55B0(1, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].stars, 0); - } else { - fn_1_55B0(0, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].stars, 0); - fn_1_55B0(1, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].stars, 1); - } - break; - - case 4: - lbl_1_bss_4 = 1; - if(GWPlayer[lbl_1_bss_2D6].stars < 2) { - stars = GWPlayer[lbl_1_bss_2D6].stars; - } else { - stars = 2; - } - fn_1_55B0(1, lbl_1_bss_2D6, lbl_1_bss_2D4, stars, 1); - break; - - case 5: - case 6: - lbl_1_bss_4 = 1; - if(GWPlayer[lbl_1_bss_2D6].coins < 20) { - coins = GWPlayer[lbl_1_bss_2D6].coins; - } else { - coins = 20; - } - fn_1_55B0(2, lbl_1_bss_2D6, lbl_1_bss_2D4, coins, 1); - break; - - default: - break; - } - while(lbl_1_bss_4 > 0) { - HuPrcVSleep(); - } + s16 coins; + s16 stars; + switch (lbl_1_bss_2D2) { + case 0: + lbl_1_bss_4 = 2; + if (GWPlayer[lbl_1_bss_2D6].coins >= GWPlayer[lbl_1_bss_2D4].coins) { + fn_1_55B0(2, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].coins, 1); + fn_1_55B0(3, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].coins, 0); + } + else { + fn_1_55B0(2, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].coins, 0); + fn_1_55B0(3, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].coins, 1); + } + break; + + case 1: + lbl_1_bss_4 = 2; + if (GWPlayer[lbl_1_bss_2D6].coins >= GWPlayer[lbl_1_bss_2D4].coins) { + fn_1_55B0(2, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].coins, 1); + fn_1_55B0(3, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].coins, 0); + } + else { + fn_1_55B0(2, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].coins, 0); + fn_1_55B0(3, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].coins, 1); + } + while (lbl_1_bss_4 != 0) { + HuPrcVSleep(); + } + lbl_1_bss_4 = 2; + if (GWPlayer[lbl_1_bss_2D6].stars >= GWPlayer[lbl_1_bss_2D4].stars) { + fn_1_55B0(0, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].stars, 1); + fn_1_55B0(1, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].stars, 0); + } + else { + fn_1_55B0(0, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].stars, 0); + fn_1_55B0(1, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].stars, 1); + } + break; + + case 2: + lbl_1_bss_4 = 1; + fn_1_55B0(0, lbl_1_bss_2D6, lbl_1_bss_2D4, 1, 1); + break; + + case 3: + lbl_1_bss_4 = 2; + if (GWPlayer[lbl_1_bss_2D6].stars >= GWPlayer[lbl_1_bss_2D4].stars) { + fn_1_55B0(0, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].stars, 1); + fn_1_55B0(1, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].stars, 0); + } + else { + fn_1_55B0(0, lbl_1_bss_2D6, lbl_1_bss_2D4, GWPlayer[lbl_1_bss_2D6].stars, 0); + fn_1_55B0(1, lbl_1_bss_2D4, lbl_1_bss_2D6, GWPlayer[lbl_1_bss_2D4].stars, 1); + } + break; + + case 4: + lbl_1_bss_4 = 1; + if (GWPlayer[lbl_1_bss_2D6].stars < 2) { + stars = GWPlayer[lbl_1_bss_2D6].stars; + } + else { + stars = 2; + } + fn_1_55B0(1, lbl_1_bss_2D6, lbl_1_bss_2D4, stars, 1); + break; + + case 5: + case 6: + lbl_1_bss_4 = 1; + if (GWPlayer[lbl_1_bss_2D6].coins < 20) { + coins = GWPlayer[lbl_1_bss_2D6].coins; + } + else { + coins = 20; + } + fn_1_55B0(2, lbl_1_bss_2D6, lbl_1_bss_2D4, coins, 1); + break; + + default: + break; + } + while (lbl_1_bss_4 > 0) { + HuPrcVSleep(); + } } typedef struct work_5774 { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6[20]; - s16 unk2E[20]; - float unk58; - s32 unk5C; + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6[20]; + s16 unk2E[20]; + float unk58; + s32 unk5C; } Work5774; void fn_1_5774(void); @@ -947,552 +946,558 @@ void fn_1_5E68(void); void fn_1_55B0(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s32 arg4) { - Work5774 *work; - Process *newProcess; - float temp_f31; - - if(arg3 == 0) { - lbl_1_bss_4--; - return; - } - switch(arg0) { - case 0: - newProcess = HuPrcChildCreate(fn_1_5774, 100, 8192, 0, lbl_1_bss_308); - temp_f31 = -100; - break; - - case 1: - newProcess = HuPrcChildCreate(fn_1_5774, 100, 8192, 0, lbl_1_bss_308); - temp_f31 = -50; - break; - - case 2: - newProcess = HuPrcChildCreate(fn_1_5E68, 100, 8192, 0, lbl_1_bss_308); - temp_f31 = -100; - break; - - case 3: - newProcess = HuPrcChildCreate(fn_1_5E68, 100, 8192, 0, lbl_1_bss_308); - temp_f31 = -50; - break; - } - work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work5774), MEMORY_DEFAULT_NUM); - newProcess->user_data = work; - work->unk0 = arg1; - work->unk2 = arg2; - work->unk4 = arg3; - work->unk58 = temp_f31; - work->unk5C = arg4; + Work5774 *work; + Process *newProcess; + float temp_f31; + + if (arg3 == 0) { + lbl_1_bss_4--; + return; + } + switch (arg0) { + case 0: + newProcess = HuPrcChildCreate(fn_1_5774, 100, 8192, 0, lbl_1_bss_308); + temp_f31 = -100; + break; + + case 1: + newProcess = HuPrcChildCreate(fn_1_5774, 100, 8192, 0, lbl_1_bss_308); + temp_f31 = -50; + break; + + case 2: + newProcess = HuPrcChildCreate(fn_1_5E68, 100, 8192, 0, lbl_1_bss_308); + temp_f31 = -100; + break; + + case 3: + newProcess = HuPrcChildCreate(fn_1_5E68, 100, 8192, 0, lbl_1_bss_308); + temp_f31 = -50; + break; + } + work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work5774), MEMORY_DEFAULT_NUM); + newProcess->user_data = work; + work->unk0 = arg1; + work->unk2 = arg2; + work->unk4 = arg3; + work->unk58 = temp_f31; + work->unk5C = arg4; } void fn_1_5774(void) { - float temp_f31; - float temp_f30; - - Work5774 *temp_r31; - s16 temp_r30; - s16 temp_r29; - Process *temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - s16 temp_r24; - s16 temp_r23; - s32 temp_r22; - s32 temp_r21; - - Vec sp20; - Vec sp14; - Vec sp8; - - temp_r28 = HuPrcCurrentGet(); - temp_r31 = temp_r28->user_data; - temp_r23 = 0; - BoardStatusPosGet(temp_r31->unk0, &sp20); - BoardStatusPosGet(temp_r31->unk2, &sp14); - for(temp_r30=0; temp_r30<20; temp_r30++) { - temp_r31->unk6[temp_r30] = -1; - } - temp_r25 = temp_r31->unk4; - temp_r27 = temp_r25; - temp_f31 = 300/temp_r27; - if(temp_f31 < 15.0f) { - temp_r24 = 1; - } else { - temp_r24 = 3; - } - temp_f31 -= temp_r24+1; - if(temp_f31 < 15.0f) { - temp_f31 = 15.0f; - } - if(temp_f31 > 40.0f) { - temp_f31 = 40.0f; - } - if(temp_r31->unk5C) { - temp_r22 = HuAudFXPlay(1864); - temp_r21 = HuAudFXPlay(24); - } - while(1) { - if(temp_r25 > 0) { - if(((temp_r23++) & temp_r24) == 0) { - for(temp_r30=0; temp_r30<20; temp_r30++) { - if(lbl_1_bss_148[temp_r30][1] == 0) { - break; - } - } - if(temp_r30 != 20) { - for(temp_r29=0; temp_r29<20; temp_r29++) { - if(temp_r31->unk6[temp_r29] == -1) { - lbl_1_bss_148[temp_r30][1] = 1; - temp_r31->unk6[temp_r29] = temp_r30; - temp_r31->unk2E[temp_r29] = 0; - GWStarsSet(temp_r31->unk0, GWPlayer[temp_r31->unk0].stars-1); - temp_r25--; - break; - } - } - } - } - } - for(temp_r30=0; temp_r30<20; temp_r30++) { - if(temp_r31->unk6[temp_r30] == -1) { - continue; - } - temp_r26 = lbl_1_bss_148[temp_r31->unk6[temp_r30]][0]; - Hu3DModelAttrReset(temp_r26, 1); - temp_r31->unk2E[temp_r30]++; - if(temp_r31->unk2E[temp_r30] > temp_f31) { - Hu3DModelAttrSet(temp_r26, 1); - lbl_1_bss_148[temp_r31->unk6[temp_r30]][1] = 0; - temp_r31->unk6[temp_r30] = -1; - GWStarsSet(temp_r31->unk2, GWPlayer[temp_r31->unk2].stars+1); - temp_r27--; - } else { - temp_f30 = 0.1f; - if(temp_r31->unk2E[temp_r30] < temp_f31/2.0f) { - temp_f30 = 0.1*sind((90.0/(temp_f31/2.0f))*temp_r31->unk2E[temp_r30]); - } - if(temp_r31->unk2E[temp_r30] > temp_f31/2.0f) { - temp_f30 = 0.1*cosd((90.0/(temp_f31/2.0f))*(temp_r31->unk2E[temp_r30]-(temp_f31/2.0f))); - } - Hu3DModelScaleSet(temp_r26, temp_f30, temp_f30, temp_f30); - sp8.x = (sp14.x-sp20.x)*(temp_r31->unk2E[temp_r30]/temp_f31)+sp20.x; - sp8.y = sp20.y+(temp_r31->unk58*sind((180.0/temp_f31)*temp_r31->unk2E[temp_r30])); - sp8.z = 200; - Hu3D2Dto3D(&sp8, 1, &sp8); - Hu3DModelPosSetV(temp_r26, &sp8); - } - } - if(temp_r27 <= 0) { - break; - } - HuPrcVSleep(); - } - HuAudFXPlay(8); - if(temp_r31->unk5C) { - HuAudFXStop(temp_r22); - HuAudFXStop(temp_r21); - } - lbl_1_bss_4--; - HuMemDirectFree(temp_r28->user_data); - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } + float temp_f31; + float temp_f30; + + Work5774 *temp_r31; + s16 temp_r30; + s16 temp_r29; + Process *temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + s16 temp_r23; + s32 temp_r22; + s32 temp_r21; + + Vec sp20; + Vec sp14; + Vec sp8; + + temp_r28 = HuPrcCurrentGet(); + temp_r31 = temp_r28->user_data; + temp_r23 = 0; + BoardStatusPosGet(temp_r31->unk0, &sp20); + BoardStatusPosGet(temp_r31->unk2, &sp14); + for (temp_r30 = 0; temp_r30 < 20; temp_r30++) { + temp_r31->unk6[temp_r30] = -1; + } + temp_r25 = temp_r31->unk4; + temp_r27 = temp_r25; + temp_f31 = 300 / temp_r27; + if (temp_f31 < 15.0f) { + temp_r24 = 1; + } + else { + temp_r24 = 3; + } + temp_f31 -= temp_r24 + 1; + if (temp_f31 < 15.0f) { + temp_f31 = 15.0f; + } + if (temp_f31 > 40.0f) { + temp_f31 = 40.0f; + } + if (temp_r31->unk5C) { + temp_r22 = HuAudFXPlay(1864); + temp_r21 = HuAudFXPlay(24); + } + while (1) { + if (temp_r25 > 0) { + if (((temp_r23++) & temp_r24) == 0) { + for (temp_r30 = 0; temp_r30 < 20; temp_r30++) { + if (lbl_1_bss_148[temp_r30][1] == 0) { + break; + } + } + if (temp_r30 != 20) { + for (temp_r29 = 0; temp_r29 < 20; temp_r29++) { + if (temp_r31->unk6[temp_r29] == -1) { + lbl_1_bss_148[temp_r30][1] = 1; + temp_r31->unk6[temp_r29] = temp_r30; + temp_r31->unk2E[temp_r29] = 0; + GWStarsSet(temp_r31->unk0, GWPlayer[temp_r31->unk0].stars - 1); + temp_r25--; + break; + } + } + } + } + } + for (temp_r30 = 0; temp_r30 < 20; temp_r30++) { + if (temp_r31->unk6[temp_r30] == -1) { + continue; + } + temp_r26 = lbl_1_bss_148[temp_r31->unk6[temp_r30]][0]; + Hu3DModelAttrReset(temp_r26, 1); + temp_r31->unk2E[temp_r30]++; + if (temp_r31->unk2E[temp_r30] > temp_f31) { + Hu3DModelAttrSet(temp_r26, 1); + lbl_1_bss_148[temp_r31->unk6[temp_r30]][1] = 0; + temp_r31->unk6[temp_r30] = -1; + GWStarsSet(temp_r31->unk2, GWPlayer[temp_r31->unk2].stars + 1); + temp_r27--; + } + else { + temp_f30 = 0.1f; + if (temp_r31->unk2E[temp_r30] < temp_f31 / 2.0f) { + temp_f30 = 0.1 * sind((90.0 / (temp_f31 / 2.0f)) * temp_r31->unk2E[temp_r30]); + } + if (temp_r31->unk2E[temp_r30] > temp_f31 / 2.0f) { + temp_f30 = 0.1 * cosd((90.0 / (temp_f31 / 2.0f)) * (temp_r31->unk2E[temp_r30] - (temp_f31 / 2.0f))); + } + Hu3DModelScaleSet(temp_r26, temp_f30, temp_f30, temp_f30); + sp8.x = (sp14.x - sp20.x) * (temp_r31->unk2E[temp_r30] / temp_f31) + sp20.x; + sp8.y = sp20.y + (temp_r31->unk58 * sind((180.0 / temp_f31) * temp_r31->unk2E[temp_r30])); + sp8.z = 200; + Hu3D2Dto3D(&sp8, 1, &sp8); + Hu3DModelPosSetV(temp_r26, &sp8); + } + } + if (temp_r27 <= 0) { + break; + } + HuPrcVSleep(); + } + HuAudFXPlay(8); + if (temp_r31->unk5C) { + HuAudFXStop(temp_r22); + HuAudFXStop(temp_r21); + } + lbl_1_bss_4--; + HuMemDirectFree(temp_r28->user_data); + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } void fn_1_5E68(void) { - float temp_f31; - float temp_f30; - - Work5774 *temp_r31; - s16 temp_r30; - s16 temp_r29; - Process *temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - s16 temp_r24; - s16 temp_r23; - s32 temp_r22; - s32 temp_r21; - - Vec sp20; - Vec sp14; - Vec sp8; - - temp_r28 = HuPrcCurrentGet(); - temp_r31 = temp_r28->user_data; - temp_r23 = 0; - BoardStatusPosGet(temp_r31->unk0, &sp20); - BoardStatusPosGet(temp_r31->unk2, &sp14); - for(temp_r30=0; temp_r30<20; temp_r30++) { - temp_r31->unk6[temp_r30] = -1; - } - temp_r25 = temp_r31->unk4; - temp_r27 = temp_r25; - temp_f31 = 300/temp_r27; - if(temp_f31 < 15.0f) { - temp_r24 = 1; - } else { - temp_r24 = 3; - } - temp_f31 -= temp_r24+1; - if(temp_f31 < 15.0f) { - temp_f31 = 15.0f; - } - if(temp_f31 > 40.0f) { - temp_f31 = 40.0f; - } - if(temp_r31->unk5C) { - temp_r22 = HuAudFXPlay(1864); - temp_r21 = HuAudFXPlay(23); - } - while(1) { - if(temp_r25 > 0) { - if(((temp_r23++) & temp_r24) == 0) { - for(temp_r30=0; temp_r30<20; temp_r30++) { - if(lbl_1_bss_8[temp_r30][1] == 0) { - break; - } - } - if(temp_r30 != 20) { - for(temp_r29=0; temp_r29<20; temp_r29++) { - if(temp_r31->unk6[temp_r29] == -1) { - lbl_1_bss_8[temp_r30][1] = 1; - temp_r31->unk6[temp_r29] = temp_r30; - temp_r31->unk2E[temp_r29] = 0; - GWCoinsSet(temp_r31->unk0, GWPlayer[temp_r31->unk0].coins-1); - temp_r25--; - break; - } - } - } - } - } - for(temp_r30=0; temp_r30<20; temp_r30++) { - if(temp_r31->unk6[temp_r30] == -1) { - continue; - } - temp_r26 = lbl_1_bss_8[temp_r31->unk6[temp_r30]][0]; - Hu3DModelAttrReset(temp_r26, 1); - temp_r31->unk2E[temp_r30]++; - if(temp_r31->unk2E[temp_r30] > temp_f31) { - Hu3DModelAttrSet(temp_r26, 1); - lbl_1_bss_8[temp_r31->unk6[temp_r30]][1] = 0; - temp_r31->unk6[temp_r30] = -1; - GWCoinsSet(temp_r31->unk2, GWPlayer[temp_r31->unk2].coins+1); - temp_r27--; - } else { - temp_f30 = 0.1f; - if(temp_r31->unk2E[temp_r30] < temp_f31/2.0f) { - temp_f30 = 0.1*sind((90.0/(temp_f31/2.0f))*temp_r31->unk2E[temp_r30]); - } - if(temp_r31->unk2E[temp_r30] > temp_f31/2.0f) { - temp_f30 = 0.1*cosd((90.0/(temp_f31/2.0f))*(temp_r31->unk2E[temp_r30]-(temp_f31/2.0f))); - } - Hu3DModelScaleSet(temp_r26, temp_f30, temp_f30, temp_f30); - sp8.x = (sp14.x-sp20.x)*(temp_r31->unk2E[temp_r30]/temp_f31)+sp20.x; - sp8.y = sp20.y+(temp_r31->unk58*sind((180.0/temp_f31)*temp_r31->unk2E[temp_r30])); - sp8.z = 200; - Hu3D2Dto3D(&sp8, 1, &sp8); - Hu3DModelPosSetV(temp_r26, &sp8); - } - } - if(temp_r27 <= 0) { - break; - } - HuPrcVSleep(); - } - HuAudFXPlay(7); - if(temp_r31->unk5C) { - HuAudFXStop(temp_r22); - HuAudFXStop(temp_r21); - } - lbl_1_bss_4--; - HuMemDirectFree(temp_r28->user_data); - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } + float temp_f31; + float temp_f30; + + Work5774 *temp_r31; + s16 temp_r30; + s16 temp_r29; + Process *temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + s16 temp_r23; + s32 temp_r22; + s32 temp_r21; + + Vec sp20; + Vec sp14; + Vec sp8; + + temp_r28 = HuPrcCurrentGet(); + temp_r31 = temp_r28->user_data; + temp_r23 = 0; + BoardStatusPosGet(temp_r31->unk0, &sp20); + BoardStatusPosGet(temp_r31->unk2, &sp14); + for (temp_r30 = 0; temp_r30 < 20; temp_r30++) { + temp_r31->unk6[temp_r30] = -1; + } + temp_r25 = temp_r31->unk4; + temp_r27 = temp_r25; + temp_f31 = 300 / temp_r27; + if (temp_f31 < 15.0f) { + temp_r24 = 1; + } + else { + temp_r24 = 3; + } + temp_f31 -= temp_r24 + 1; + if (temp_f31 < 15.0f) { + temp_f31 = 15.0f; + } + if (temp_f31 > 40.0f) { + temp_f31 = 40.0f; + } + if (temp_r31->unk5C) { + temp_r22 = HuAudFXPlay(1864); + temp_r21 = HuAudFXPlay(23); + } + while (1) { + if (temp_r25 > 0) { + if (((temp_r23++) & temp_r24) == 0) { + for (temp_r30 = 0; temp_r30 < 20; temp_r30++) { + if (lbl_1_bss_8[temp_r30][1] == 0) { + break; + } + } + if (temp_r30 != 20) { + for (temp_r29 = 0; temp_r29 < 20; temp_r29++) { + if (temp_r31->unk6[temp_r29] == -1) { + lbl_1_bss_8[temp_r30][1] = 1; + temp_r31->unk6[temp_r29] = temp_r30; + temp_r31->unk2E[temp_r29] = 0; + GWCoinsSet(temp_r31->unk0, GWPlayer[temp_r31->unk0].coins - 1); + temp_r25--; + break; + } + } + } + } + } + for (temp_r30 = 0; temp_r30 < 20; temp_r30++) { + if (temp_r31->unk6[temp_r30] == -1) { + continue; + } + temp_r26 = lbl_1_bss_8[temp_r31->unk6[temp_r30]][0]; + Hu3DModelAttrReset(temp_r26, 1); + temp_r31->unk2E[temp_r30]++; + if (temp_r31->unk2E[temp_r30] > temp_f31) { + Hu3DModelAttrSet(temp_r26, 1); + lbl_1_bss_8[temp_r31->unk6[temp_r30]][1] = 0; + temp_r31->unk6[temp_r30] = -1; + GWCoinsSet(temp_r31->unk2, GWPlayer[temp_r31->unk2].coins + 1); + temp_r27--; + } + else { + temp_f30 = 0.1f; + if (temp_r31->unk2E[temp_r30] < temp_f31 / 2.0f) { + temp_f30 = 0.1 * sind((90.0 / (temp_f31 / 2.0f)) * temp_r31->unk2E[temp_r30]); + } + if (temp_r31->unk2E[temp_r30] > temp_f31 / 2.0f) { + temp_f30 = 0.1 * cosd((90.0 / (temp_f31 / 2.0f)) * (temp_r31->unk2E[temp_r30] - (temp_f31 / 2.0f))); + } + Hu3DModelScaleSet(temp_r26, temp_f30, temp_f30, temp_f30); + sp8.x = (sp14.x - sp20.x) * (temp_r31->unk2E[temp_r30] / temp_f31) + sp20.x; + sp8.y = sp20.y + (temp_r31->unk58 * sind((180.0 / temp_f31) * temp_r31->unk2E[temp_r30])); + sp8.z = 200; + Hu3D2Dto3D(&sp8, 1, &sp8); + Hu3DModelPosSetV(temp_r26, &sp8); + } + } + if (temp_r27 <= 0) { + break; + } + HuPrcVSleep(); + } + HuAudFXPlay(7); + if (temp_r31->unk5C) { + HuAudFXStop(temp_r22); + HuAudFXStop(temp_r21); + } + lbl_1_bss_4--; + HuMemDirectFree(temp_r28->user_data); + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } void fn_1_655C(void) { - s16 i; - s16 model; - - Vec pos; - Vec target; - Vec up; - Hu3DShadowCreate(20, 100, 5000); - Hu3DShadowTPLvlSet(0.3f); - Hu3DShadowSizeSet(192); - target.x = target.y = target.z = 0; - pos.x = -800; - pos.z = 1600; - pos.y = 3200; - up.x = 0; - up.y = 1; - up.z = 0; - Hu3DShadowPosSet(&pos, &up, &target); - Hu3DReflectMapSet(HuDataSelHeapReadNum(0x4B0023, MEMORY_DEFAULT_NUM, HEAP_DATA)); - for(i=0; i<4; i++) { - lbl_1_data_470[i+47].datanum = lbl_1_data_470[i+51].datanum = lbl_1_data_194[GWPlayerCfg[i].character]; - } - fn_1_D588(lbl_1_data_470); - fn_1_D818(lbl_1_data_118); - Hu3DModelHookSet(lbl_1_bss_199C2[9], "itemhook1", lbl_1_bss_199C2[3]); - Hu3DModelHookSet(lbl_1_bss_199C2[9], "itemhook2", lbl_1_bss_199C2[5]); - Hu3DModelHookSet(lbl_1_bss_199C2[9], "itemhook3", lbl_1_bss_199C2[7]); - Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook1", lbl_1_bss_199C2[47]); - Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook2", lbl_1_bss_199C2[48]); - Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook3", lbl_1_bss_199C2[49]); - Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook4", lbl_1_bss_199C2[50]); - Hu3DModelHookSet(lbl_1_bss_199C2[11], "L_itemhook", lbl_1_bss_199C2[13]); - Hu3DModelHookSet(lbl_1_bss_199C2[11], "R_itemhook", lbl_1_bss_199C2[14]); - Hu3DModelAttrSet(lbl_1_bss_199C2[13], 0x40000001); - Hu3DModelAttrSet(lbl_1_bss_199C2[14], 0x40000001); - for(i=0; i<4; i++) { - Hu3DModelAttrSet(lbl_1_bss_199C2[i+51], 1); - } - fn_1_D1E0(lbl_1_bss_199C2[4]); - model = CharModelCreate(lbl_1_bss_2DA, 2); - lbl_1_bss_2D0 = model; - lbl_1_bss_2C0[0] = CharModelMotionCreate(lbl_1_bss_2DA, 0x5F0000); - lbl_1_bss_2C0[1] = CharModelMotionCreate(lbl_1_bss_2DA, 0x5F0002); - lbl_1_bss_2C0[2] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA+0x4B0045); - lbl_1_bss_2C0[3] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA+0x4B004D); - CharModelMotionSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0]); - Hu3DModelPosSet(model, 0, 0, 200); - Hu3DModelAttrSet(model, 0x40000001); - Hu3DModelShadowSet(model); - HuPrcChildCreate(fn_1_C214, 50, 12288, 0, lbl_1_bss_308); - HuPrcChildCreate(fn_1_A060, 50, 12288, 0, lbl_1_bss_308); - Hu3DModelAttrSet(lbl_1_bss_199C2[18], 1); - Hu3DModelShadowSet(lbl_1_bss_199C2[18]); - Hu3DModelAttrSet(lbl_1_bss_199C2[26], 1); - Hu3DModelShadowSet(lbl_1_bss_199C2[26]); - Hu3DModelAttrSet(lbl_1_bss_199C2[30], 1); - Hu3DModelShadowSet(lbl_1_bss_199C2[30]); - Hu3DModelAttrSet(lbl_1_bss_199C2[22], 1); - Hu3DModelShadowSet(lbl_1_bss_199C2[22]); - Hu3DModelAttrSet(lbl_1_bss_199C2[34], 1); - Hu3DModelShadowSet(lbl_1_bss_199C2[34]); - Hu3DModelShadowMapSet(lbl_1_bss_199C2[15]); - Hu3DModelShadowMapSet(lbl_1_bss_199C2[9]); - Hu3DModelShadowMapSet(lbl_1_bss_199C2[11]); - Hu3DModelShadowMapSet(lbl_1_bss_199C2[3]); - Hu3DModelShadowMapSet(lbl_1_bss_199C2[5]); - Hu3DModelShadowMapSet(lbl_1_bss_199C2[7]); - CharModelLayerSetAll(1); - CharModelEffectNpcInit(lbl_1_bss_199C2[18], lbl_1_bss_1990E[20], 0, 9); - CharModelEffectNpcInit(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28], 0, 10); - CharModelEffectNpcInit(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24], 0, 14); - CharModelEffectNpcInit(lbl_1_bss_199C2[34], lbl_1_bss_1990E[36], 0, 12); - fn_1_8424(); - for(i=0; i<20; i++) { - if(i == 0) { - model = Hu3DModelCreateFile(0x4B0013); - } else { - model = Hu3DModelLink(lbl_1_bss_148[0][0]); - } - lbl_1_bss_148[i][0] = model; - lbl_1_bss_148[i][1] = 0; - Hu3DModelAttrSet(model, 1); - Hu3DModelScaleSet(model, 0.2, 0.2, 0.2); - Hu3DModelLayerSet(model, 7); - } - for(i=0; i<20; i++) { - if(i == 0) { - model = Hu3DModelCreateFile(0x4B0012); - } else { - model = Hu3DModelLink(lbl_1_bss_8[0][0]); - } - lbl_1_bss_8[i][0] = model; - lbl_1_bss_8[i][1] = 0; - Hu3DModelAttrSet(model, 1); - Hu3DModelScaleSet(model, 0.2, 0.2, 0.2); - Hu3DModelLayerSet(model, 7); - } - fn_1_D9C8(); + s16 i; + s16 model; + + Vec pos; + Vec target; + Vec up; + Hu3DShadowCreate(20, 100, 5000); + Hu3DShadowTPLvlSet(0.3f); + Hu3DShadowSizeSet(192); + target.x = target.y = target.z = 0; + pos.x = -800; + pos.z = 1600; + pos.y = 3200; + up.x = 0; + up.y = 1; + up.z = 0; + Hu3DShadowPosSet(&pos, &up, &target); + Hu3DReflectMapSet(HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M443, 0x23), MEMORY_DEFAULT_NUM, HEAP_DATA)); + for (i = 0; i < 4; i++) { + lbl_1_data_470[i + 47].datanum = lbl_1_data_470[i + 51].datanum = lbl_1_data_194[GWPlayerCfg[i].character]; + } + fn_1_D588(lbl_1_data_470); + fn_1_D818(lbl_1_data_118); + Hu3DModelHookSet(lbl_1_bss_199C2[9], "itemhook1", lbl_1_bss_199C2[3]); + Hu3DModelHookSet(lbl_1_bss_199C2[9], "itemhook2", lbl_1_bss_199C2[5]); + Hu3DModelHookSet(lbl_1_bss_199C2[9], "itemhook3", lbl_1_bss_199C2[7]); + Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook1", lbl_1_bss_199C2[47]); + Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook2", lbl_1_bss_199C2[48]); + Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook3", lbl_1_bss_199C2[49]); + Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook4", lbl_1_bss_199C2[50]); + Hu3DModelHookSet(lbl_1_bss_199C2[11], "L_itemhook", lbl_1_bss_199C2[13]); + Hu3DModelHookSet(lbl_1_bss_199C2[11], "R_itemhook", lbl_1_bss_199C2[14]); + Hu3DModelAttrSet(lbl_1_bss_199C2[13], 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_199C2[14], 0x40000001); + for (i = 0; i < 4; i++) { + Hu3DModelAttrSet(lbl_1_bss_199C2[i + 51], 1); + } + fn_1_D1E0(lbl_1_bss_199C2[4]); + model = CharModelCreate(lbl_1_bss_2DA, 2); + lbl_1_bss_2D0 = model; + lbl_1_bss_2C0[0] = CharModelMotionCreate(lbl_1_bss_2DA, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + lbl_1_bss_2C0[1] = CharModelMotionCreate(lbl_1_bss_2DA, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); + lbl_1_bss_2C0[2] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA + DATA_MAKE_NUM(DATADIR_M443, 0x45)); + lbl_1_bss_2C0[3] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA + DATA_MAKE_NUM(DATADIR_M443, 0x4D)); + CharModelMotionSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0]); + Hu3DModelPosSet(model, 0, 0, 200); + Hu3DModelAttrSet(model, 0x40000001); + Hu3DModelShadowSet(model); + HuPrcChildCreate(fn_1_C214, 50, 12288, 0, lbl_1_bss_308); + HuPrcChildCreate(fn_1_A060, 50, 12288, 0, lbl_1_bss_308); + Hu3DModelAttrSet(lbl_1_bss_199C2[18], 1); + Hu3DModelShadowSet(lbl_1_bss_199C2[18]); + Hu3DModelAttrSet(lbl_1_bss_199C2[26], 1); + Hu3DModelShadowSet(lbl_1_bss_199C2[26]); + Hu3DModelAttrSet(lbl_1_bss_199C2[30], 1); + Hu3DModelShadowSet(lbl_1_bss_199C2[30]); + Hu3DModelAttrSet(lbl_1_bss_199C2[22], 1); + Hu3DModelShadowSet(lbl_1_bss_199C2[22]); + Hu3DModelAttrSet(lbl_1_bss_199C2[34], 1); + Hu3DModelShadowSet(lbl_1_bss_199C2[34]); + Hu3DModelShadowMapSet(lbl_1_bss_199C2[15]); + Hu3DModelShadowMapSet(lbl_1_bss_199C2[9]); + Hu3DModelShadowMapSet(lbl_1_bss_199C2[11]); + Hu3DModelShadowMapSet(lbl_1_bss_199C2[3]); + Hu3DModelShadowMapSet(lbl_1_bss_199C2[5]); + Hu3DModelShadowMapSet(lbl_1_bss_199C2[7]); + CharModelLayerSetAll(1); + CharModelEffectNpcInit(lbl_1_bss_199C2[18], lbl_1_bss_1990E[20], 0, 9); + CharModelEffectNpcInit(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28], 0, 10); + CharModelEffectNpcInit(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24], 0, 14); + CharModelEffectNpcInit(lbl_1_bss_199C2[34], lbl_1_bss_1990E[36], 0, 12); + fn_1_8424(); + for (i = 0; i < 20; i++) { + if (i == 0) { + model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 0x13)); + } + else { + model = Hu3DModelLink(lbl_1_bss_148[0][0]); + } + lbl_1_bss_148[i][0] = model; + lbl_1_bss_148[i][1] = 0; + Hu3DModelAttrSet(model, 1); + Hu3DModelScaleSet(model, 0.2, 0.2, 0.2); + Hu3DModelLayerSet(model, 7); + } + for (i = 0; i < 20; i++) { + if (i == 0) { + model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 0x12)); + } + else { + model = Hu3DModelLink(lbl_1_bss_8[0][0]); + } + lbl_1_bss_8[i][0] = model; + lbl_1_bss_8[i][1] = 0; + Hu3DModelAttrSet(model, 1); + Hu3DModelScaleSet(model, 0.2, 0.2, 0.2); + Hu3DModelLayerSet(model, 7); + } + fn_1_D9C8(); } void fn_1_6D80(s16 window) { - s16 i; - WindowData *winPtr = &winData[window]; - winPtr->active_pad = 1 << lbl_1_bss_2D8; - if(GWPlayerCfg[lbl_1_bss_2DC].iscom) { - for(i=0; i<10; i++) { - HuWinComKeyWait(256, 256, 256, 256, GWMessDelayGet()); - } - } + s16 i; + WindowData *winPtr = &winData[window]; + winPtr->active_pad = 1 << lbl_1_bss_2D8; + if (GWPlayerCfg[lbl_1_bss_2DC].iscom) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(256, 256, 256, 256, GWMessDelayGet()); + } + } } void fn_1_6E3C(void) { - while(1) { - if(lbl_1_bss_2FC || omSysExitReq) { - break; - } - HuPrcVSleep(); - } - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - HuAudFadeOut(1000); - while(WipeStatGet()) { - HuPrcVSleep(); - } - BoardStatusKill(); - omOvlReturnEx(1, 1); - HuPrcEnd(); + while (1) { + if (lbl_1_bss_2FC || omSysExitReq) { + break; + } + HuPrcVSleep(); + } + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudFadeOut(1000); + while (WipeStatGet()) { + HuPrcVSleep(); + } + BoardStatusKill(); + omOvlReturnEx(1, 1); + HuPrcEnd(); } -u16 lbl_1_data_240[] = { - 1, 2 -}; - +u16 lbl_1_data_240[] = { 1, 2 }; void fn_1_6EDC(omObjData *object) { - s16 i; - for(i=0; i<1; i++) { - Vec pos, target, up; - float x, y, z; - - x = lbl_1_bss_2A8[i].x; - y = lbl_1_bss_2A8[i].y; - z = lbl_1_bss_2A8[i].z; - - pos.x = (((sind(y)*cosd(x))*lbl_1_bss_288[i])+lbl_1_bss_290[i].x); - pos.y = (-sind(x)*lbl_1_bss_288[i])+lbl_1_bss_290[i].y; - pos.z = ((cosd(y)*cosd(x))*lbl_1_bss_288[i])+lbl_1_bss_290[i].z; - target.x = lbl_1_bss_290[i].x; - target.y = lbl_1_bss_290[i].y; - target.z = lbl_1_bss_290[i].z; - up.x = sind(y)*sind(x); - up.y = cosd(x); - up.z = cosd(y)*sind(x); - Hu3DCameraPosSet(lbl_1_data_240[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); - } + s16 i; + for (i = 0; i < 1; i++) { + Vec pos, target, up; + float x, y, z; + + x = lbl_1_bss_2A8[i].x; + y = lbl_1_bss_2A8[i].y; + z = lbl_1_bss_2A8[i].z; + + pos.x = (((sind(y) * cosd(x)) * lbl_1_bss_288[i]) + lbl_1_bss_290[i].x); + pos.y = (-sind(x) * lbl_1_bss_288[i]) + lbl_1_bss_290[i].y; + pos.z = ((cosd(y) * cosd(x)) * lbl_1_bss_288[i]) + lbl_1_bss_290[i].z; + target.x = lbl_1_bss_290[i].x; + target.y = lbl_1_bss_290[i].y; + target.z = lbl_1_bss_290[i].z; + up.x = sind(y) * sind(x); + up.y = cosd(x); + up.z = cosd(y) * sind(x); + Hu3DCameraPosSet(lbl_1_data_240[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); + } } void fn_1_7EBC(void); void fn_1_7290(omObjData *object) { - Vec pos; + Vec pos; Vec offset; Vec dir; Vec y_offset; - + f32 z_rot; s8 stick_pos; - if(lbl_1_bss_0 == 0) { - fn_1_7EBC(); - return; - } - lbl_1_bss_2A8[0].y += 0.1f * HuPadStkX[0]; - lbl_1_bss_2A8[0].x += 0.1f * HuPadStkY[0]; - lbl_1_bss_288[0] += HuPadTrigL[0] / 2; - lbl_1_bss_288[0] -= HuPadTrigR[0] / 2; - if(HuPadBtnDown[0] & PAD_BUTTON_B) { - OSReport("%f,%f,%f\n", lbl_1_bss_2A8[0].x, lbl_1_bss_2A8[0].y, lbl_1_bss_2A8[0].z); - OSReport("%f,%f,%f\n", lbl_1_bss_290[0].x, lbl_1_bss_290[0].y, lbl_1_bss_290[0].z); - OSReport("%f\n", lbl_1_bss_288[0]); - } - if (lbl_1_bss_288[0] < 100.0f) { - lbl_1_bss_288[0] = 100.0f; - } - pos.x = lbl_1_bss_290[0].x + (lbl_1_bss_288[0] * (sind(lbl_1_bss_2A8[0].y) * cosd(lbl_1_bss_2A8[0].x))); - pos.y = (lbl_1_bss_290[0].y + (lbl_1_bss_288[0] * -sind(lbl_1_bss_2A8[0].x))); - pos.z = (lbl_1_bss_290[0].z + (lbl_1_bss_288[0] * (cosd(lbl_1_bss_2A8[0].y) * cosd(lbl_1_bss_2A8[0].x)))); - offset.x = lbl_1_bss_290[0].x - pos.x; - offset.y = lbl_1_bss_290[0].y - pos.y; - offset.z = lbl_1_bss_290[0].z - pos.z; - dir.x = (sind(lbl_1_bss_2A8[0].y) * sind(lbl_1_bss_2A8[0].x)); - dir.y = cosd(lbl_1_bss_2A8[0].x); - dir.z = (cosd(lbl_1_bss_2A8[0].y) * sind(lbl_1_bss_2A8[0].x)); - z_rot = lbl_1_bss_2A8[0].z; - y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot)) - + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) - + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); + if (lbl_1_bss_0 == 0) { + fn_1_7EBC(); + return; + } + lbl_1_bss_2A8[0].y += 0.1f * HuPadStkX[0]; + lbl_1_bss_2A8[0].x += 0.1f * HuPadStkY[0]; + lbl_1_bss_288[0] += HuPadTrigL[0] / 2; + lbl_1_bss_288[0] -= HuPadTrigR[0] / 2; + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + OSReport("%f,%f,%f\n", lbl_1_bss_2A8[0].x, lbl_1_bss_2A8[0].y, lbl_1_bss_2A8[0].z); + OSReport("%f,%f,%f\n", lbl_1_bss_290[0].x, lbl_1_bss_290[0].y, lbl_1_bss_290[0].z); + OSReport("%f\n", lbl_1_bss_288[0]); + } + if (lbl_1_bss_288[0] < 100.0f) { + lbl_1_bss_288[0] = 100.0f; + } + pos.x = lbl_1_bss_290[0].x + (lbl_1_bss_288[0] * (sind(lbl_1_bss_2A8[0].y) * cosd(lbl_1_bss_2A8[0].x))); + pos.y = (lbl_1_bss_290[0].y + (lbl_1_bss_288[0] * -sind(lbl_1_bss_2A8[0].x))); + pos.z = (lbl_1_bss_290[0].z + (lbl_1_bss_288[0] * (cosd(lbl_1_bss_2A8[0].y) * cosd(lbl_1_bss_2A8[0].x)))); + offset.x = lbl_1_bss_290[0].x - pos.x; + offset.y = lbl_1_bss_290[0].y - pos.y; + offset.z = lbl_1_bss_290[0].z - pos.z; + dir.x = (sind(lbl_1_bss_2A8[0].y) * sind(lbl_1_bss_2A8[0].x)); + dir.y = cosd(lbl_1_bss_2A8[0].x); + dir.z = (cosd(lbl_1_bss_2A8[0].y) * sind(lbl_1_bss_2A8[0].x)); + z_rot = lbl_1_bss_2A8[0].z; + y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot)) + + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) + + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); - y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot)) - + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) - + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); - - y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot)) - + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) - + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); + y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot)) + + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) + + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); - PSVECCrossProduct(&dir, &offset, &offset); - PSVECNormalize(&offset, &offset); - stick_pos = (HuPadSubStkX[0] & 0xF8); - if (stick_pos != 0) { - lbl_1_bss_290[0].x += 0.05f * (offset.x * stick_pos); - lbl_1_bss_290[0].y += 0.05f * (offset.y * stick_pos); - lbl_1_bss_290[0].z += 0.05f * (offset.z * stick_pos); - } - PSVECNormalize(&y_offset, &offset); - stick_pos = -(HuPadSubStkY[0] & 0xF8); - if (stick_pos != 0) { - lbl_1_bss_290[0].x += 0.05f * (offset.x * stick_pos); - lbl_1_bss_290[0].y += 0.05f * (offset.y * stick_pos); - lbl_1_bss_290[0].z += 0.05f * (offset.z * stick_pos); - } + y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot)) + + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) + + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); + + PSVECCrossProduct(&dir, &offset, &offset); + PSVECNormalize(&offset, &offset); + stick_pos = (HuPadSubStkX[0] & 0xF8); + if (stick_pos != 0) { + lbl_1_bss_290[0].x += 0.05f * (offset.x * stick_pos); + lbl_1_bss_290[0].y += 0.05f * (offset.y * stick_pos); + lbl_1_bss_290[0].z += 0.05f * (offset.z * stick_pos); + } + PSVECNormalize(&y_offset, &offset); + stick_pos = -(HuPadSubStkY[0] & 0xF8); + if (stick_pos != 0) { + lbl_1_bss_290[0].x += 0.05f * (offset.x * stick_pos); + lbl_1_bss_290[0].y += 0.05f * (offset.y * stick_pos); + lbl_1_bss_290[0].z += 0.05f * (offset.z * stick_pos); + } } void fn_1_7EBC(void) { - Vec dist; - float dist_zoom; - if(lbl_1_bss_2FC != 0) { - return; - } - VECSubtract(&lbl_1_bss_2F0, &lbl_1_bss_2A8[0], &dist); - if(VECMag(&dist) > 0.2) { - VECScale(&dist, &dist, 0.05f); - VECAdd(&lbl_1_bss_2A8[0], &dist, &lbl_1_bss_2A8[0]); - } else { - lbl_1_bss_2A8[0] = lbl_1_bss_2F0; - } - VECSubtract(&lbl_1_bss_2E4, &lbl_1_bss_290[0], &dist); - if(VECMag(&dist) > 0.2) { - VECScale(&dist, &dist, 0.05f); - VECAdd(&lbl_1_bss_290[0], &dist, &lbl_1_bss_290[0]); - } else { - lbl_1_bss_290[0] = lbl_1_bss_2E4; - } - dist_zoom = lbl_1_bss_2E0-lbl_1_bss_288[0]; - if(sqrtf(dist_zoom*dist_zoom) > 0.2) { - dist_zoom *= 0.05f; - lbl_1_bss_288[0] += dist_zoom; - } else { - lbl_1_bss_288[0] = lbl_1_bss_2E0; - } + Vec dist; + float dist_zoom; + if (lbl_1_bss_2FC != 0) { + return; + } + VECSubtract(&lbl_1_bss_2F0, &lbl_1_bss_2A8[0], &dist); + if (VECMag(&dist) > 0.2) { + VECScale(&dist, &dist, 0.05f); + VECAdd(&lbl_1_bss_2A8[0], &dist, &lbl_1_bss_2A8[0]); + } + else { + lbl_1_bss_2A8[0] = lbl_1_bss_2F0; + } + VECSubtract(&lbl_1_bss_2E4, &lbl_1_bss_290[0], &dist); + if (VECMag(&dist) > 0.2) { + VECScale(&dist, &dist, 0.05f); + VECAdd(&lbl_1_bss_290[0], &dist, &lbl_1_bss_290[0]); + } + else { + lbl_1_bss_290[0] = lbl_1_bss_2E4; + } + dist_zoom = lbl_1_bss_2E0 - lbl_1_bss_288[0]; + if (sqrtf(dist_zoom * dist_zoom) > 0.2) { + dist_zoom *= 0.05f; + lbl_1_bss_288[0] += dist_zoom; + } + else { + lbl_1_bss_288[0] = lbl_1_bss_2E0; + } } void fn_1_8180(s16 view) { - lbl_1_bss_2F0 = lbl_1_data_0[view].rot; - lbl_1_bss_2E4 = lbl_1_data_0[view].pos; - lbl_1_bss_2E0 = lbl_1_data_0[view].zoom; + lbl_1_bss_2F0 = lbl_1_data_0[view].rot; + lbl_1_bss_2E4 = lbl_1_data_0[view].pos; + lbl_1_bss_2E0 = lbl_1_data_0[view].zoom; } void fn_1_8210(s16 view) { - lbl_1_bss_2A8[0] = lbl_1_data_0[view].rot; - lbl_1_bss_2F0 = lbl_1_bss_2A8[0]; - lbl_1_bss_290[0] = lbl_1_data_0[view].pos; - lbl_1_bss_2E4 = lbl_1_bss_290[0]; - lbl_1_bss_2E0 = lbl_1_bss_288[0] = lbl_1_data_0[view].zoom; + lbl_1_bss_2A8[0] = lbl_1_data_0[view].rot; + lbl_1_bss_2F0 = lbl_1_bss_2A8[0]; + lbl_1_bss_290[0] = lbl_1_data_0[view].pos; + lbl_1_bss_2E4 = lbl_1_bss_290[0]; + lbl_1_bss_2E0 = lbl_1_bss_288[0] = lbl_1_data_0[view].zoom; } float fn_1_82FC(void) { - float zoom = lbl_1_bss_2E0-lbl_1_bss_288[0]; - return sqrtf(zoom*zoom); + float zoom = lbl_1_bss_2E0 - lbl_1_bss_288[0]; + return sqrtf(zoom * zoom); } diff --git a/src/REL/m444dll/pinball.c b/src/REL/m444dll/pinball.c index e4f9b3d7..b5d0c75c 100644 --- a/src/REL/m444dll/pinball.c +++ b/src/REL/m444dll/pinball.c @@ -268,11 +268,11 @@ void fn_1_9418(s16 arg0) Hu3DModelRotSet(lbl_1_bss_2D0, 0, 180, 0); CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[3], 0, 4, 0x40000020); HuPrcSleep(12); - HuWinMesMaxSizeGet(1, sp8, 0x1C000F); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1C, 0x0F)); temp_r29 = HuWinCreate(-10000, 340, sp8[0], sp8[1], 1); HuWinMesSpeedSet(temp_r29, 0); HuWinBGTPLvlSet(temp_r29, 0); - HuWinMesSet(temp_r29, 0x1C000F); + HuWinMesSet(temp_r29, MAKE_MESSID(0x1C, 0x0F)); CharModelMotionSet(lbl_1_bss_2DA, lbl_1_bss_2C0[2]); Hu3DModelAttrSet(lbl_1_bss_2D0, 0x40000002); temp_f29 = Hu3DMotionTimeGet(lbl_1_bss_2D0); @@ -1198,4 +1198,4 @@ void fn_1_D1E0(s16 model) } } lbl_1_bss_1884 = temp_r31; -} \ No newline at end of file +} diff --git a/src/REL/m446Dll/card.c b/src/REL/m446Dll/card.c index 8f4c5f72..724bb2eb 100644 --- a/src/REL/m446Dll/card.c +++ b/src/REL/m446Dll/card.c @@ -14,11 +14,11 @@ unkStruct3* lbl_1_bss_18; unkStruct2* fn_1_1C64(s32 arg0) { unkStruct2* temp_r3; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, 0x10000000U); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, MEMORY_DEFAULT_NUM); if (!temp_r3) { return NULL; } - temp_r3->unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 4, 0x10000000U); + temp_r3->unk0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 4, MEMORY_DEFAULT_NUM); if (!temp_r3->unk0) { HuMemDirectFree(temp_r3); return NULL; @@ -75,7 +75,7 @@ s32 fn_1_1DEC(unkStruct2* arg0) { unkStruct3* fn_1_1DF4(void* arg0) { unkStruct3* temp_r3; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, 0x10000000); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, MEMORY_DEFAULT_NUM); if (!temp_r3) { return NULL; } @@ -250,7 +250,7 @@ unkStruct4* m446CardCreate(s32 arg0) { unkStruct4* temp_r31; unkStruct3* temp_r30; - temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x98, 0x10000000U); + temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x98, MEMORY_DEFAULT_NUM); if (!temp_r31) { OSReport("[!] m446CardCreate ERROR...\n"); return NULL; @@ -521,4 +521,4 @@ void fn_1_2F64(unkStruct4* arg0) { Hu3DModelScaleSet(arg0->unkA[0], arg0->unk58, arg0->unk58, arg0->unk58); Hu3DModelScaleSet(arg0->unkA[1], arg0->unk58, arg0->unk58, arg0->unk58); Hu3DModelRotSet(arg0->unkA[0], arg0->unk34.x, arg0->unk34.y, arg0->unk34.z); -} \ No newline at end of file +} diff --git a/src/REL/m446Dll/cursor.c b/src/REL/m446Dll/cursor.c index 6c67c262..0c08a160 100644 --- a/src/REL/m446Dll/cursor.c +++ b/src/REL/m446Dll/cursor.c @@ -1,27 +1,25 @@ #include "REL/m446Dll.h" -#include "math.h" #include "game/hsfman.h" #include "game/hsfmotion.h" +#include "math.h" // bss -unkStruct3* lbl_1_bss_98; +unkStruct3 *lbl_1_bss_98; // data -s32 lbl_1_data_3C8[9] = { - 0x4D0012, 0x4D0013, 0x4D0014, - 0x4D0015, 0x4D0016, 0x4D0017, - 0x4D0018, 0x4D0019, 0x4D001A -}; +s32 lbl_1_data_3C8[9] = { 0x4D0012, 0x4D0013, 0x4D0014, 0x4D0015, 0x4D0016, 0x4D0017, 0x4D0018, 0x4D0019, 0x4D001A }; -s32 fn_1_72E0(void) { +s32 fn_1_72E0(void) +{ lbl_1_bss_98 = NULL; return 1; } -void fn_1_72F8(void) { - unkStruct3* var_r31; - unkStruct7* var_r30; +void fn_1_72F8(void) +{ + unkStruct3 *var_r31; + unkStruct7 *var_r30; var_r31 = lbl_1_bss_98; if (var_r31) { @@ -33,10 +31,11 @@ void fn_1_72F8(void) { } } -void fn_1_7350(void) { +void fn_1_7350(void) +{ f32 temp_f31; - unkStruct3* var_r30; - unkStruct7* temp_r31; + unkStruct3 *var_r30; + unkStruct7 *temp_r31; var_r30 = lbl_1_bss_98; if (var_r30) { @@ -65,12 +64,13 @@ void fn_1_7350(void) { } } -unkStruct7* m446CursorCreate(s32 arg0) { +unkStruct7 *m446CursorCreate(s32 arg0) +{ s32 var_r30; - unkStruct7* var_r31; - unkStruct3* var_r29; + unkStruct7 *var_r31; + unkStruct3 *var_r29; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, 0x10000000); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, MEMORY_DEFAULT_NUM); if (!var_r31) { return NULL; } @@ -84,7 +84,7 @@ unkStruct7* m446CursorCreate(s32 arg0) { var_r31->field00_bit3 = 0; var_r31->unk8 = arg0; var_r31->unk48 = 0; - var_r31->unkC[0] = Hu3DModelCreateFile(0x4D0009); + var_r31->unkC[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M446, 0x09)); Hu3DModelLayerSet(var_r31->unkC[0], 6); if (var_r31->unk8 == 0) { for (var_r30 = 0; var_r30 < 9; var_r30++) { @@ -101,15 +101,17 @@ unkStruct7* m446CursorCreate(s32 arg0) { } if (lbl_1_bss_98) { fn_1_1EC8(lbl_1_bss_98, var_r29); - } else { + } + else { lbl_1_bss_98 = var_r29; } return var_r31; } -void fn_1_76E8(unkStruct7* arg0) { +void fn_1_76E8(unkStruct7 *arg0) +{ s32 var_r29; - unkStruct3* var_r31; + unkStruct3 *var_r31; var_r31 = lbl_1_bss_98; if (var_r31) { @@ -134,7 +136,8 @@ void fn_1_76E8(unkStruct7* arg0) { } } -void fn_1_77C8(unkStruct7* arg0, u8 arg1) { +void fn_1_77C8(unkStruct7 *arg0, u8 arg1) +{ s32 var_r30; arg0->field00_bit0 = 1; @@ -144,14 +147,16 @@ void fn_1_77C8(unkStruct7* arg0, u8 arg1) { for (var_r30 = 0; var_r30 < 9; var_r30++) { if (var_r30 == arg1) { Hu3DModelAttrReset(arg0->unkC[var_r30 + 1], 1); - } else { + } + else { Hu3DModelAttrSet(arg0->unkC[var_r30 + 1], 1); } } } } -void fn_1_7884(unkStruct7* arg0) { +void fn_1_7884(unkStruct7 *arg0) +{ s32 var_r30; arg0->field00_bit0 = 0; @@ -163,7 +168,8 @@ void fn_1_7884(unkStruct7* arg0) { } } -void fn_1_7908(unkStruct7* arg0, Vec* arg1, s32 arg2) { +void fn_1_7908(unkStruct7 *arg0, Vec *arg1, s32 arg2) +{ arg0->unk38 = *arg1; arg0->unk2C = arg0->unk20; arg0->unk4C = 0.0f; @@ -171,7 +177,8 @@ void fn_1_7908(unkStruct7* arg0, Vec* arg1, s32 arg2) { arg0->field00_bit1 = 1; } -void fn_1_799C(unkStruct7* arg0) { +void fn_1_799C(unkStruct7 *arg0) +{ s32 var_r30; if (arg0->unk8 == 0) { @@ -183,7 +190,8 @@ void fn_1_799C(unkStruct7* arg0) { arg0->field00_bit3 = 1; } -void fn_1_7A38(unkStruct7* arg0) { +void fn_1_7A38(unkStruct7 *arg0) +{ s32 var_r31; if (arg0->unk8 == 0) { @@ -194,7 +202,8 @@ void fn_1_7A38(unkStruct7* arg0) { arg0->field00_bit3 = 0; } -void fn_1_7AB4(unkStruct7* arg0) { +void fn_1_7AB4(unkStruct7 *arg0) +{ f32 var_f31; s32 temp_r29; s32 var_r30; @@ -208,10 +217,11 @@ void fn_1_7AB4(unkStruct7* arg0) { Hu3DModelScaleSet(arg0->unkC[temp_r29], arg0->unk44, arg0->unk44, arg0->unk44); if (arg0->field00_bit2 != 0) { var_f31 = 180.0f; - } else { + } + else { var_f31 = 0.0f; } Hu3DModelRotSet(arg0->unkC[temp_r29], 0.0f, var_f31, 0.0f); } } -} \ No newline at end of file +} diff --git a/src/REL/m446Dll/deck.c b/src/REL/m446Dll/deck.c index dfa9d846..83e541ee 100644 --- a/src/REL/m446Dll/deck.c +++ b/src/REL/m446Dll/deck.c @@ -18,7 +18,7 @@ unkStruct5* fn_1_3064(void) { s32 var_r30; unkStruct5* temp_r3; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10, 0x10000000); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10, MEMORY_DEFAULT_NUM); if (!temp_r3) { return NULL; } @@ -184,4 +184,4 @@ void fn_1_38E0(u32 arg0) { s32 fn_1_38F0(void) { return ((lbl_1_bss_20 = (lbl_1_bss_20 * 0x41C64E6D) + 0x3039) >> 16) % 32768; -} \ No newline at end of file +} diff --git a/src/REL/m446Dll/main.c b/src/REL/m446Dll/main.c index c81335ae..c762dbf4 100644 --- a/src/REL/m446Dll/main.c +++ b/src/REL/m446Dll/main.c @@ -96,7 +96,7 @@ unkStruct* m446FlowCreate(void) { s32 var_r30; unkStruct* temp_r3; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x9C, 0x10000000); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x9C, MEMORY_DEFAULT_NUM); if (temp_r3 == 0) { OSReport("[!] m446FlowCreate() ERROR...\n"); return NULL; @@ -635,9 +635,9 @@ s32 fn_1_1970(s16 arg0, s32 arg1, s32 arg2, s32 arg3) { } static const s32 lbl_1_rodata_18[12] = { - 0x180003, 0x180004, 0x180005, 0x180006, - 0x180007, 0x180008, 0x180009, 0x18000A, - 0x18000B, 0x18000C, 0x18000D, 0 + MAKE_MESSID(0x18, 0x03), MAKE_MESSID(0x18, 0x04), MAKE_MESSID(0x18, 0x05), MAKE_MESSID(0x18, 0x06), + MAKE_MESSID(0x18, 0x07), MAKE_MESSID(0x18, 0x08), MAKE_MESSID(0x18, 0x09), MAKE_MESSID(0x18, 0x0A), + MAKE_MESSID(0x18, 0x0B), MAKE_MESSID(0x18, 0x0C), MAKE_MESSID(0x18, 0x0D), 0 }; void fn_1_19D4(void) { @@ -652,11 +652,11 @@ void fn_1_19D4(void) { HuWinBGTPLvlSet(temp_r3, 0.8f); HuWinMesSpeedSet(temp_r3, 1); HuWinMesColSet(temp_r3, 0); - HuWinMesSet(temp_r3, 0x180001); + HuWinMesSet(temp_r3, MAKE_MESSID(0x18, 0x01)); fn_1_18EC(temp_r3, 0x3C); if (lbl_1_bss_10 < 2) { HuWinMesColSet(temp_r3, 0); - HuWinMesSet(temp_r3, 0x180002); + HuWinMesSet(temp_r3, MAKE_MESSID(0x18, 0x02)); var_r30 = fn_1_1970(temp_r3, 0, 1, 0x3C); } else { var_r30 = 1; @@ -670,7 +670,7 @@ void fn_1_19D4(void) { } } else { HuWinMesColSet(temp_r3, 0); - HuWinMesSet(temp_r3, 0x18000D); + HuWinMesSet(temp_r3, MAKE_MESSID(0x18, 0x0D)); fn_1_18EC(temp_r3, 0x3C); } HuWinExAnimOut(temp_r3); diff --git a/src/REL/m446Dll/player.c b/src/REL/m446Dll/player.c index 6055f092..df2b9e3c 100644 --- a/src/REL/m446Dll/player.c +++ b/src/REL/m446Dll/player.c @@ -1,48 +1,102 @@ #include "REL/m446Dll.h" -#include "math.h" +#include "game/chrman.h" #include "game/gamework_data.h" #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "game/chrman.h" -#include "game/pad.h" #include "game/objsub.h" +#include "game/pad.h" +#include "math.h" // cursor.c extern unkStruct7 *m446CursorCreate(s32); -extern void fn_1_76E8(unkStruct7*); -extern void fn_1_77C8(unkStruct7*, u8); +extern void fn_1_76E8(unkStruct7 *); +extern void fn_1_77C8(unkStruct7 *, u8); // bss unkStruct3 *lbl_1_bss_30; // data s32 lbl_1_data_228[9] = { - 0x4D000A, 0x4D000B, 0x4D000C, - 0x4D000D, 0x4D000E, 0x4D000F, - 0x4D0010, 0x4D0011, 0x4D0021 + DATA_MAKE_NUM(DATADIR_M446, 10), + DATA_MAKE_NUM(DATADIR_M446, 11), + DATA_MAKE_NUM(DATADIR_M446, 12), + DATA_MAKE_NUM(DATADIR_M446, 13), + DATA_MAKE_NUM(DATADIR_M446, 14), + DATA_MAKE_NUM(DATADIR_M446, 15), + DATA_MAKE_NUM(DATADIR_M446, 16), + DATA_MAKE_NUM(DATADIR_M446, 17), + DATA_MAKE_NUM(DATADIR_M446, 33), }; -s32 lbl_1_data_24C[9][4] = { - { 0x5F0000, 0x5F0036, 0x5F0017, 0x5F0072 }, - { 0x1A0000, 0x1A0036, 0x1A0017, 0x1A0072 }, - { 0x6D0000, 0x6D0036, 0x6D0017, 0x6D0072 }, - { 0x8A0000, 0x8A0036, 0x8A0017, 0x8A0072 }, - { 0x850000, 0x850036, 0x850017, 0x850072 }, - { 0x110000, 0x110036, 0x110017, 0x110072 }, - { 0x0D0000, 0x0D0036, 0x0D0017, 0x0D0072 }, - { 0x810000, 0x810036, 0x810017, 0x810072 }, - { 0x4D0022, 0x4D0023, 0x4D0025, 0x4D0024 } -}; -m446Func8 lbl_1_data_2DC[5] = {NULL, fn_1_5B48, fn_1_5C24, fn_1_5D00, fn_1_6074}; -s32 fn_1_480C(void) { +s32 lbl_1_data_24C[9][4] = { + { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 54), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 114), + }, + { + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 54), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 23), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 114), + }, + { + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 54), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 23), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 114), + }, + { + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 54), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 23), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 114), + }, + { + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 54), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 23), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 114), + }, + { + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 54), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 23), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 114), + }, + { + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 54), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 23), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 114), + }, + { + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 54), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 23), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 114), + }, + { + DATA_MAKE_NUM(DATADIR_M446, 0x22), + DATA_MAKE_NUM(DATADIR_M446, 0x23), + DATA_MAKE_NUM(DATADIR_M446, 0x25), + DATA_MAKE_NUM(DATADIR_M446, 0x24), + }, +}; +m446Func8 lbl_1_data_2DC[5] = { NULL, fn_1_5B48, fn_1_5C24, fn_1_5D00, fn_1_6074 }; + +s32 fn_1_480C(void) +{ lbl_1_bss_30 = 0; return 1; } -void fn_1_4824(void) { - unkStruct3* var_r31; - void* var_r30; +void fn_1_4824(void) +{ + unkStruct3 *var_r31; + void *var_r30; var_r31 = lbl_1_bss_30; if (var_r31) { @@ -54,10 +108,11 @@ void fn_1_4824(void) { } } -void fn_1_487C(void) { +void fn_1_487C(void) +{ f32 temp_f31; - unkStruct8* temp_r31; - unkStruct3* var_r30; + unkStruct8 *temp_r31; + unkStruct3 *var_r30; var_r30 = lbl_1_bss_30; if (var_r30) { @@ -100,43 +155,48 @@ void fn_1_487C(void) { } } -unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) { +unkStruct8 *m446PlayerCreate(s32 arg0, unkStruct6 *arg1) +{ f32 var_f31; s32 var_r27; s32 var_r26; s16 var_r25; s16 var_r24; - unkStruct3* var_r28; + unkStruct3 *var_r28; s32 var_r30; - unkStruct8* var_r31; + unkStruct8 *var_r31; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xCC, 0x10000000); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xCC, MEMORY_DEFAULT_NUM); if (!var_r31) { return NULL; } var_r31->unk0 = arg0; if (GWPlayerCfg[arg0].iscom != 0) { var_r27 = 1; - } else { + } + else { var_r27 = 0; } var_r31->unk68 = var_r27; var_r31->unk4 = arg1; if (GWPlayerCfg[arg0].character == 0xB) { var_r26 = 1; - } else { + } + else { var_r26 = 0; } var_r31->unk70 = var_r26; if (var_r31->unk70 != 0) { var_r25 = 8; - } else { + } + else { var_r25 = GWPlayerCfg[arg0].character; } var_r31->unk64 = var_r25; if (var_r31->unk68 != 0) { var_r24 = 4; - } else { + } + else { var_r24 = GWPlayerCfg[arg0].pad_idx; } var_r31->unk66 = var_r24; @@ -147,7 +207,8 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) { var_r31->unk48.x = 0.0f; if (var_r31->unk70 != 0) { var_f31 = 70.0f; - } else { + } + else { var_f31 = 0.0f; } var_r31->unk48.y = var_f31; @@ -163,7 +224,7 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) { var_r31->unk1C = 0; var_r31->unk98 = 0; var_r31->unkB4 = 0; - + for (var_r30 = 0; var_r30 < 3; var_r30++) { var_r31->unk2C[var_r30] = NULL; } @@ -174,19 +235,20 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) { } fn_1_7884(var_r31->unk8); switch (var_r31->unk0) { - case 0: - var_r31->unk48.z = 150.0f; - var_r31->unk54.y = 180.0f; - break; - case 1: - var_r31->unk48.z = -150.0f; - var_r31->unk54.y = 0.0f; - break; + case 0: + var_r31->unk48.z = 150.0f; + var_r31->unk54.y = 180.0f; + break; + case 1: + var_r31->unk48.z = -150.0f; + var_r31->unk54.y = 0.0f; + break; } if (var_r31->unk70 != 0) { - var_r31->unk3C[0] = Hu3DModelCreateFile(0x4D0020); - var_r31->unk3C[1] = Hu3DModelCreateFile(0x4D0021); - } else { + var_r31->unk3C[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M446, 0x20)); + var_r31->unk3C[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M446, 0x21)); + } + else { var_r31->unk3C[0] = CharModelCreate(var_r31->unk64, 2); var_r31->unk3C[1] = Hu3DModelCreateFile(lbl_1_data_228[var_r31->unk64]); } @@ -199,11 +261,12 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) { Hu3DModelAttrSet(var_r31->unk3C[1], 1); Hu3DModelPosSet(var_r31->unk3C[1], 2000.0f, 2000.0f, 2000.0f); fn_1_637C(var_r31, 0); - + for (var_r30 = 0; var_r30 < 4; var_r30++) { if (var_r31->unk70 != 0) { var_r31->unk40[var_r30] = Hu3DJointMotionFile(var_r31->unk3C[0], lbl_1_data_24C[var_r31->unk64][var_r30]); - } else { + } + else { var_r31->unk40[var_r30] = CharModelMotionCreate(var_r31->unk64, lbl_1_data_24C[var_r31->unk64][var_r30]); } } @@ -212,7 +275,8 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) { } if (var_r31->unk70 != 0) { Hu3DMotionSet(var_r31->unk3C[0], var_r31->unk40[0]); - } else { + } + else { CharModelMotionSet(var_r31->unk64, var_r31->unk40[0]); } Hu3DModelAttrSet(var_r31->unk3C[0], 0x40000001); @@ -224,18 +288,20 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) { } if (lbl_1_bss_30) { fn_1_1EC8(lbl_1_bss_30, var_r28); - } else { + } + else { lbl_1_bss_30 = var_r28; } return var_r31; } -void fn_1_509C(unkStruct8* arg0) { +void fn_1_509C(unkStruct8 *arg0) +{ s32 var_r29; - unkStruct3* var_r30; + unkStruct3 *var_r30; var_r30 = lbl_1_bss_30; - + do { if (arg0 == var_r30->unk0) { if (var_r30 == lbl_1_bss_30) { @@ -243,18 +309,20 @@ void fn_1_509C(unkStruct8* arg0) { } fn_1_1F04(var_r30); fn_1_1E5C(var_r30); - + for (var_r29 = 0; var_r29 < 4; var_r29++) { if (arg0->unk70 != 0) { Hu3DMotionKill(arg0->unk40[var_r29]); - } else { + } + else { CharModelMotionKill(arg0->unk64, arg0->unk40[var_r29]); } } if (arg0->unk70 != 0) { Hu3DModelKill(arg0->unk3C[0]); Hu3DModelKill(arg0->unk3C[1]); - } else { + } + else { CharModelKill(arg0->unk64); Hu3DModelKill(arg0->unk3C[1]); } @@ -266,7 +334,8 @@ void fn_1_509C(unkStruct8* arg0) { } while (var_r30); } -s32 m446PlayerAppendCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) { +s32 m446PlayerAppendCard(unkStruct8 *arg0, unkStruct4 *arg1, s32 arg2) +{ Vec sp18; Vec spC; s32 temp_r0_2; @@ -278,13 +347,13 @@ s32 m446PlayerAppendCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) { OSReport("m446PlayerAppendCard ERROR...\n"); return 0; } - + for (var_r29 = 0; var_r29 < 3; var_r29++) { if (!arg0->unk2C[var_r29]) { break; } } - + if (var_r29 == 3) { OSReport("m446PlayerAppendCard ERROR...\n"); return 0; @@ -302,15 +371,15 @@ s32 m446PlayerAppendCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) { sp18.z = -45.0f; break; } - + spC = arg1->unk34; switch (arg0->unk0) { - case 0: - spC.y = 0.0f; - break; - case 1: - spC.y = 180.0f; - break; + case 0: + spC.y = 0.0f; + break; + case 1: + spC.y = 180.0f; + break; } switch (arg2) { case 0: @@ -336,14 +405,16 @@ s32 m446PlayerAppendCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) { if ((arg0->unk24 != 0) && (temp_r28 == 0)) { HuAudFXPlay(0x76B); fn_1_64BC(arg0, 1, 0x3C); - } else if ((arg0->unk20 != 0) && (temp_r27 == 0)) { + } + else if ((arg0->unk20 != 0) && (temp_r27 == 0)) { HuAudFXPlay(0x76B); fn_1_64BC(arg0, 0, 0x3C); } return 1; } -s32 m446PlayerRemoveCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) { +s32 m446PlayerRemoveCard(unkStruct8 *arg0, unkStruct4 *arg1, s32 arg2) +{ Vec spC; s32 var_r30; @@ -351,7 +422,7 @@ s32 m446PlayerRemoveCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) { OSReport("m446PlayerRemoveCard ERROR...\n"); return 0; } - + for (var_r30 = 0; var_r30 < 3; var_r30++) { if (arg0->unk2C[var_r30] == arg1) { break; @@ -377,7 +448,8 @@ s32 m446PlayerRemoveCard(unkStruct8* arg0, unkStruct4* arg1, s32 arg2) { return 1; } -s32 fn_1_5648(unkStruct8* arg0, s32 arg1, unkStruct4** arg2) { +s32 fn_1_5648(unkStruct8 *arg0, s32 arg1, unkStruct4 **arg2) +{ if ((arg1 < 0) || (arg1 >= 3)) { return 0; } @@ -385,7 +457,8 @@ s32 fn_1_5648(unkStruct8* arg0, s32 arg1, unkStruct4** arg2) { return 1; } -s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) { +s32 fn_1_5678(unkStruct8 *arg0, unkStruct4 **arg1, s32 arg2) +{ s32 sp14[3]; Vec sp8; s32 var_r28; @@ -394,7 +467,7 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) { s32 var_r24; s32 var_r27; s32 var_r26; - unkStruct4* var_r29; + unkStruct4 *var_r29; var_r27 = 0; var_r26 = 0; @@ -412,14 +485,15 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) { break; } } - } else { + } + else { for (var_r30 = 0; var_r30 < 3; var_r30++) { var_r29 = arg0->unk2C[var_r30]; if (var_r29->unk0 != arg0->unk28) { break; } } - + var_r24 = fn_1_4720(arg0->unk4, var_r29->unk0); if (var_r24 >= 2) { for (var_r30 = 0; var_r30 < 3; var_r30++) { @@ -429,11 +503,13 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) { break; } } - } else { + } + else { arg0->unk74 = (fn_1_38F0() % 3); } } - } else { + } + else { for (var_r30 = 0; var_r30 < 3; var_r30++) { var_r29 = arg0->unk2C[var_r30]; sp14[var_r30] = fn_1_4720(arg0->unk4, var_r29->unk0); @@ -450,7 +526,8 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) { } if (var_r28 == 5) { arg0->unk74 = (fn_1_38F0() % 3); - } else { + } + else { arg0->unk74 = var_r30; } } @@ -459,22 +536,24 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) { } if (arg0->unk7C > 0) { arg0->unk7C--; - } else { + } + else { var_r27 = arg0->unk74 < arg0->unk10; var_r26 = arg0->unk74 > arg0->unk10; var_r25 = arg0->unk74 == arg0->unk10; arg0->unk7C = 0x12; } - } else { + } + else { switch (arg0->unk0) { - case 0: - var_r27 = (HuPadDStkRep[arg0->unk66] & 1) != 0; - var_r26 = (HuPadDStkRep[arg0->unk66] & 2) != 0; - break; - case 1: - var_r27 = (HuPadDStkRep[arg0->unk66] & 2) != 0; - var_r26 = (HuPadDStkRep[arg0->unk66] & 1) != 0; - break; + case 0: + var_r27 = (HuPadDStkRep[arg0->unk66] & 1) != 0; + var_r26 = (HuPadDStkRep[arg0->unk66] & 2) != 0; + break; + case 1: + var_r27 = (HuPadDStkRep[arg0->unk66] & 2) != 0; + var_r26 = (HuPadDStkRep[arg0->unk66] & 1) != 0; + break; } var_r25 = (HuPadBtnDown[arg0->unk66] & 0x100) != 0; } @@ -513,19 +592,22 @@ s32 fn_1_5678(unkStruct8* arg0, unkStruct4** arg1, s32 arg2) { return 0; } -void fn_1_5B34(unkStruct8* arg0) { +void fn_1_5B34(unkStruct8 *arg0) +{ arg0->unk18 = 1; arg0->unk1C = 0; } -static const s32 lbl_1_rodata_1C8[4] = {0, 1, 2, 3}; +static const s32 lbl_1_rodata_1C8[4] = { 0, 1, 2, 3 }; -void fn_1_5B48(unkStruct8* arg0) { +void fn_1_5B48(unkStruct8 *arg0) +{ switch (arg0->unk1C) { case 0: if (arg0->unk70 != 0) { Hu3DMotionShiftSet(arg0->unk3C[0], arg0->unk40[2], 0.0f, 10.0f, 0); - } else { + } + else { CharModelMotionShiftSet(arg0->unk64, arg0->unk40[2], 0.0f, 10.0f, 0); } arg0->unk1C = 1; @@ -537,17 +619,20 @@ void fn_1_5B48(unkStruct8* arg0) { } } -void fn_1_5C10(unkStruct8* arg0) { +void fn_1_5C10(unkStruct8 *arg0) +{ arg0->unk18 = 2; arg0->unk1C = 0; } -void fn_1_5C24(unkStruct8* arg0) { +void fn_1_5C24(unkStruct8 *arg0) +{ switch (arg0->unk1C) { case 0: if (arg0->unk70 != 0) { Hu3DMotionShiftSet(arg0->unk3C[0], arg0->unk40[3], 0.0f, 10.0f, 0); - } else { + } + else { CharModelMotionShiftSet(arg0->unk64, arg0->unk40[3], 0.0f, 10.0f, 0); } arg0->unk1C = 1; @@ -559,12 +644,14 @@ void fn_1_5C24(unkStruct8* arg0) { } } -void fn_1_5CEC(unkStruct8* arg0) { +void fn_1_5CEC(unkStruct8 *arg0) +{ arg0->unk18 = 3; arg0->unk1C = 0; } -void fn_1_5D00(unkStruct8* arg0) { +void fn_1_5D00(unkStruct8 *arg0) +{ Vec sp8; sp8 = arg0->unk54; @@ -573,7 +660,8 @@ void fn_1_5D00(unkStruct8* arg0) { Hu3DModelAmbSet(arg0->unk3C[0], 0.8f, 0.8f, 0.8f); if (arg0->unk70 != 0) { Hu3DMotionShiftSet(arg0->unk3C[0], arg0->unk40[1], 0.0f, 10.0f, 0U); - } else { + } + else { CharModelMotionShiftSet(arg0->unk64, arg0->unk40[1], 0.0f, 10.0f, 0x40000001U); Hu3DMotionStartEndSet(arg0->unk3C[0], 0.0f, 59.0f); } @@ -589,7 +677,8 @@ void fn_1_5D00(unkStruct8* arg0) { } } -void fn_1_5E54(unkStruct8* arg0, s32 arg1) { +void fn_1_5E54(unkStruct8 *arg0, s32 arg1) +{ Vec sp14; Vec sp8; f32 var_f31; @@ -598,11 +687,12 @@ void fn_1_5E54(unkStruct8* arg0, s32 arg1) { if (arg0->unk70 != 0) { var_f31 = 95.0f; - } else { + } + else { var_f31 = 80.0f; } sp14.y = var_f31; - + switch (arg0->unk0) { case 0: sp14.x = -30.0f + (30.0f * arg1); @@ -615,14 +705,16 @@ void fn_1_5E54(unkStruct8* arg0, s32 arg1) { sp14.x = 30.0f - (30.0f * arg1); if (arg0->unk70 != 0) { var_f30 = 30.0f; - } else { + } + else { var_f30 = 55.0f; } sp14.z = -50.0f - var_f30; sp8.x = 0.0f; if (arg0->unk70 != 0) { var_f29 = 180.0f; - } else { + } + else { var_f29 = -90.0f; } sp8.y = var_f29; @@ -635,11 +727,12 @@ void fn_1_5E54(unkStruct8* arg0, s32 arg1) { arg0->unk1C = 0; } -void fn_1_6074(unkStruct8* arg0) { +void fn_1_6074(unkStruct8 *arg0) +{ Vec sp8; f32 var_f31; f32 var_f30; - + switch (arg0->unk1C) { case 0: arg0->unk1C = 1; @@ -648,7 +741,8 @@ void fn_1_6074(unkStruct8* arg0) { sp8 = arg0->unk48; if (arg0->unk0 == 0) { var_f31 = -25.0f; - } else { + } + else { var_f31 = 25.0f; } sp8.z += var_f31; @@ -658,7 +752,8 @@ void fn_1_6074(unkStruct8* arg0) { arg0->unk14 = 0; break; case 2: - if (arg0->unk14++ < 0x1E) break; + if (arg0->unk14++ < 0x1E) + break; arg0->unk1C = 3; case 3: Hu3DModelAttrSet(arg0->unk3C[1], 0x40000001); @@ -669,13 +764,15 @@ void fn_1_6074(unkStruct8* arg0) { if (arg0->unk14 == 1) { Hu3DModelAttrReset(arg0->unk3C[1], 0x40000001); } - if (arg0->unk14++ < 0x1E) break; + if (arg0->unk14++ < 0x1E) + break; arg0->unk1C = 5; case 5: sp8 = arg0->unk48; if (arg0->unk0 == 0) { var_f30 = -50.0f; - } else { + } + else { var_f30 = 50.0f; } sp8.z -= var_f30; @@ -691,7 +788,8 @@ void fn_1_6074(unkStruct8* arg0) { } } -void fn_1_6264(unkStruct8* arg0, Vec* arg1, s32 arg2) { +void fn_1_6264(unkStruct8 *arg0, Vec *arg1, s32 arg2) +{ arg0->unk8C = *arg1; arg0->unk80 = arg0->unk54; arg0->unkB8 = 0.0f; @@ -699,7 +797,8 @@ void fn_1_6264(unkStruct8* arg0, Vec* arg1, s32 arg2) { arg0->unk98 = 1; } -void fn_1_62F0(unkStruct8* arg0, Vec* arg1, s32 arg2) { +void fn_1_62F0(unkStruct8 *arg0, Vec *arg1, s32 arg2) +{ arg0->unkA8 = *arg1; arg0->unk9C = arg0->unk48; arg0->unkC0 = 0.0f; @@ -707,7 +806,8 @@ void fn_1_62F0(unkStruct8* arg0, Vec* arg1, s32 arg2) { arg0->unkB4 = 1; } -void fn_1_637C(unkStruct8* arg0, s32 arg1) { +void fn_1_637C(unkStruct8 *arg0, s32 arg1) +{ f32 var_f31; arg0->unkC8 = arg1; @@ -719,7 +819,8 @@ void fn_1_637C(unkStruct8* arg0, s32 arg1) { arg0->unk48.x = 0.0f; if (arg0->unk70 != 0) { var_f31 = 70.0f; - } else { + } + else { var_f31 = 0.0f; } arg0->unk48.y = var_f31; @@ -732,8 +833,8 @@ void fn_1_637C(unkStruct8* arg0, s32 arg1) { arg0->unk48.z = -150.0f; arg0->unk54.y = 0.0f; return; - } - break; + } + break; case 1: Hu3DModelAttrReset(arg0->unk3C[1], 1); Hu3DModelAttrSet(arg0->unk3C[0], 1); @@ -741,31 +842,35 @@ void fn_1_637C(unkStruct8* arg0, s32 arg1) { } } -void fn_1_64BC(unkStruct8* arg0, s32 arg1, s32 arg2) { +void fn_1_64BC(unkStruct8 *arg0, s32 arg1, s32 arg2) +{ if (arg0->unk70 == 0) { switch (arg1) { - case 0: - omVibrate(arg0->unk0, arg2, 6, 6); - return; - case 1: - omVibrate(arg0->unk0, arg2, 4, 2); - return; - case 2: - omVibrate(arg0->unk0, arg2, 12, 0); - break; + case 0: + omVibrate(arg0->unk0, arg2, 6, 6); + return; + case 1: + omVibrate(arg0->unk0, arg2, 4, 2); + return; + case 2: + omVibrate(arg0->unk0, arg2, 12, 0); + break; } } } -static inline unkStruct8UnkC8(unkStruct8* arg0) { +static inline unkStruct8UnkC8(unkStruct8 *arg0) +{ if (arg0->unkC8 == 0) { return 0; - } else { + } + else { return 1; } } -void fn_1_6578(unkStruct8* arg0) { +void fn_1_6578(unkStruct8 *arg0) +{ s32 var_r30; var_r30 = unkStruct8UnkC8(arg0); @@ -774,16 +879,17 @@ void fn_1_6578(unkStruct8* arg0) { Hu3DModelScaleSet(arg0->unk3C[var_r30], arg0->unk60, arg0->unk60, arg0->unk60); } -void fn_1_6620(unkStruct8* arg0) { +void fn_1_6620(unkStruct8 *arg0) +{ s32 var_r26; - unkStruct4* temp_r27; - unkStruct4* temp_r30; + unkStruct4 *temp_r27; + unkStruct4 *temp_r30; s32 var_r29; s32 var_r28; arg0->unk20 = 0; arg0->unk24 = 0; - + for (var_r29 = 0; var_r29 < 3; var_r29++) { temp_r30 = arg0->unk2C[var_r29]; if (temp_r30) { @@ -794,7 +900,7 @@ void fn_1_6620(unkStruct8* arg0) { var_r26 = 0; temp_r30 = arg0->unk2C[var_r29]; if (temp_r30) { - + for (var_r28 = 0; var_r28 < 3; var_r28++) { temp_r27 = arg0->unk2C[var_r28]; if ((var_r29 != var_r28) && (temp_r27) && (temp_r30->unk0 == temp_r27->unk0)) { @@ -805,10 +911,11 @@ void fn_1_6620(unkStruct8* arg0) { arg0->unk28 = temp_r30->unk0; if (var_r26 == 1) { arg0->unk20 = 1; - } else if (var_r26 == 2) { + } + else if (var_r26 == 2) { arg0->unk24 = 1; } - + for (var_r28 = 0; var_r28 < 3; var_r28++) { temp_r27 = arg0->unk2C[var_r28]; if ((temp_r27) && (temp_r30->unk0 == temp_r27->unk0)) { @@ -819,4 +926,4 @@ void fn_1_6620(unkStruct8* arg0) { } } } -} \ No newline at end of file +} diff --git a/src/REL/m446Dll/stage.c b/src/REL/m446Dll/stage.c index 11fbfee3..ad0a83b7 100644 --- a/src/REL/m446Dll/stage.c +++ b/src/REL/m446Dll/stage.c @@ -108,7 +108,7 @@ unkStruct9* m446StageCreate(void) { unkStruct3* temp_ret; unkStruct9* var_r31; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, 0x10000000); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, MEMORY_DEFAULT_NUM); if (!var_r31) { return NULL; } @@ -208,4 +208,4 @@ void fn_1_852C(unkStruct9* arg0) { void fn_1_860C(unkStruct9* arg0) { arg0->unk28 = 1; -} \ No newline at end of file +} diff --git a/src/REL/m446Dll/table.c b/src/REL/m446Dll/table.c index 56d45462..f1de1c13 100644 --- a/src/REL/m446Dll/table.c +++ b/src/REL/m446Dll/table.c @@ -3,16 +3,18 @@ #include "game/pad.h" // bss -unkStruct3* lbl_1_bss_28; +unkStruct3 *lbl_1_bss_28; -s32 fn_1_3924(void) { +s32 fn_1_3924(void) +{ lbl_1_bss_28 = NULL; return 1; } -void fn_1_393C(void) { - unkStruct3* var_r31; - unkStruct6* var_r30; +void fn_1_393C(void) +{ + unkStruct3 *var_r31; + unkStruct6 *var_r30; var_r31 = lbl_1_bss_28; if (var_r31) { @@ -24,9 +26,10 @@ void fn_1_393C(void) { } } -void fn_1_3994(void) { - unkStruct4* sp8; - unkStruct3* var_r31; +void fn_1_3994(void) +{ + unkStruct4 *sp8; + unkStruct3 *var_r31; var_r31 = lbl_1_bss_28; if (var_r31) { @@ -37,16 +40,17 @@ void fn_1_3994(void) { } } -unkStruct6* fn_1_39D0(void) { +unkStruct6 *fn_1_39D0(void) +{ s32 var_r30; - unkStruct3* var_r29; - unkStruct6* var_r31; + unkStruct3 *var_r29; + unkStruct6 *var_r31; - var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x70, 0x10000000); + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x70, MEMORY_DEFAULT_NUM); if (!var_r31) { return NULL; } - var_r31->unk4 = Hu3DModelCreateFile(0x4D0005); + var_r31->unk4 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M446, 0x05)); Hu3DModelAmbSet(var_r31->unk4, 0.0f, 0.0f, 0.0f); Hu3DModelShadowMapSet(var_r31->unk4); Hu3DModelLayerSet(var_r31->unk4, 0); @@ -55,7 +59,7 @@ unkStruct6* fn_1_39D0(void) { var_r31->unk60 = 10; var_r31->unk5C = 0; var_r31->unk6C = 0; - + for (var_r30 = 0; var_r30 < 21; var_r30++) { var_r31->unk8[var_r30] = NULL; } @@ -68,14 +72,16 @@ unkStruct6* fn_1_39D0(void) { } if (lbl_1_bss_28) { fn_1_1EC8(lbl_1_bss_28, var_r29); - } else { + } + else { lbl_1_bss_28 = var_r29; } return var_r31; } -void fn_1_3B4C(unkStruct6* arg0) { - unkStruct3* var_r31; +void fn_1_3B4C(unkStruct6 *arg0) +{ + unkStruct3 *var_r31; var_r31 = lbl_1_bss_28; do { @@ -94,11 +100,12 @@ void fn_1_3B4C(unkStruct6* arg0) { } while (var_r31); } -s32 fn_1_3BF0(unkStruct6* arg0, unkStruct4* arg1, s32 arg2) { +s32 fn_1_3BF0(unkStruct6 *arg0, unkStruct4 *arg1, s32 arg2) +{ Vec sp18; Vec spC; s32 temp_r29; - + if (arg0->unk5C >= 21) { return 0; } @@ -138,10 +145,11 @@ s32 fn_1_3BF0(unkStruct6* arg0, unkStruct4* arg1, s32 arg2) { return 1; } -s32 fn_1_3EB4(unkStruct6* arg0, unkStruct4* arg1, s32 arg2) { +s32 fn_1_3EB4(unkStruct6 *arg0, unkStruct4 *arg1, s32 arg2) +{ Vec spC; s32 var_r31; - + for (var_r31 = 0; var_r31 < 0x15; var_r31++) { if (arg0->unk8[var_r31] == arg1) { arg0->unk8[var_r31] = NULL; @@ -165,7 +173,8 @@ s32 fn_1_3EB4(unkStruct6* arg0, unkStruct4* arg1, s32 arg2) { return 1; } -s32 fn_1_3FD0(unkStruct6* arg0, s32 arg1, unkStruct4** arg2) { +s32 fn_1_3FD0(unkStruct6 *arg0, s32 arg1, unkStruct4 **arg2) +{ if ((arg1 < 0) || (arg1 >= 0x15)) { return 0; } @@ -173,21 +182,24 @@ s32 fn_1_3FD0(unkStruct6* arg0, s32 arg1, unkStruct4** arg2) { return 1; } -void fn_1_4000(unkStruct6* arg0, s32 arg1) { +void fn_1_4000(unkStruct6 *arg0, s32 arg1) +{ s32 var_r31; - unkStruct4* var_r30; + unkStruct4 *var_r30; for (var_r31 = 0; var_r31 < 21; var_r31++) { if (arg1 != 0) { var_r30 = arg0->unk8[20 - var_r31]; - } else { + } + else { var_r30 = arg0->unk8[var_r31]; } if ((var_r30) && (var_r30->unk64 == 0)) { if (arg1 != 0) { arg0->unk60 = (0x14 - var_r31); return; - } else { + } + else { arg0->unk60 = var_r31; return; } @@ -195,11 +207,12 @@ void fn_1_4000(unkStruct6* arg0, s32 arg1) { } } -s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s32 arg5) { +s32 fn_1_4088(unkStruct6 *arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4 **arg4, s32 arg5) +{ Vec sp10; s32 var_r28; s32 var_r27; - unkStruct4* temp_r26; + unkStruct4 *temp_r26; s32 var_r25; s32 var_r24; s32 var_r23; @@ -214,11 +227,13 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s *arg4 = NULL; if (arg2 >= 4) { if (arg0->unk6C == 0) { - arg0->unk64 = (s32) (fn_1_38F0() % 21); + arg0->unk64 = (s32)(fn_1_38F0() % 21); do { if (!(temp_r26 = arg0->unk8[arg0->unk64]) || temp_r26->unk64 != 0) { arg0->unk64 = ++arg0->unk64 % 21; - } else break; + } + else + break; (void)temp_r26; } while (TRUE); arg0->unk6C = 1; @@ -226,7 +241,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s } if ((arg0->unk68 > 0) && (arg5 == 0)) { arg0->unk68 = (arg0->unk68 - 1); - } else { + } + else { var_r28 = (arg0->unk64 / 7) < (arg0->unk60 / 7); var_r27 = (arg0->unk64 / 7) > (arg0->unk60 / 7); if ((var_r28 == 0) && (var_r27 == 0)) { @@ -236,7 +252,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s var_r23 = arg0->unk64 == arg0->unk60; arg0->unk68 = 0x12; } - } else if (arg5 == 0) { + } + else if (arg5 == 0) { var_r25 = (HuPadDStkRep[arg2] & 1) != 0; var_r24 = (HuPadDStkRep[arg2] & 2) != 0; var_r28 = (HuPadDStkRep[arg2] & 8) != 0; @@ -246,7 +263,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s if (var_r25 != 0) { if ((arg0->unk60 % 7) == 0) { arg0->unk60 = (arg0->unk60 + 6); - } else { + } + else { arg0->unk60 = (arg0->unk60 - 1); } HuAudFXPlay(0); @@ -254,7 +272,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s if (var_r24 != 0) { if ((arg0->unk60 % 7) == 6) { arg0->unk60 = (arg0->unk60 - 6); - } else { + } + else { arg0->unk60 = (arg0->unk60 + 1); } HuAudFXPlay(0); @@ -262,7 +281,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s if (var_r28 != 0) { if ((arg0->unk60 / 7) == 0) { arg0->unk60 = (arg0->unk60 + 0xE); - } else { + } + else { arg0->unk60 = (arg0->unk60 - 7); } HuAudFXPlay(0); @@ -270,7 +290,8 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s if (var_r27 != 0) { if ((arg0->unk60 / 7) == 2) { arg0->unk60 = (arg0->unk60 - 0xE); - } else { + } + else { arg0->unk60 = (arg0->unk60 + 7); } HuAudFXPlay(0); @@ -295,36 +316,39 @@ s32 fn_1_4088(unkStruct6* arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4** arg4, s return 1; } HuAudFXPlay(4); - } else { - HuAudFXPlay(4); + } + else { + HuAudFXPlay(4); } } return 0; } -void fn_1_46AC(unkStruct6* arg0) { - arg0->unk8[0] = (unkStruct4*)-1; - arg0->unk8[6] = (unkStruct4*)-1; - arg0->unk8[14] = (unkStruct4*)-1; - arg0->unk8[20] = (unkStruct4*)-1; +void fn_1_46AC(unkStruct6 *arg0) +{ + arg0->unk8[0] = (unkStruct4 *)-1; + arg0->unk8[6] = (unkStruct4 *)-1; + arg0->unk8[14] = (unkStruct4 *)-1; + arg0->unk8[20] = (unkStruct4 *)-1; } -void fn_1_46D0(unkStruct6* arg0) { +void fn_1_46D0(unkStruct6 *arg0) +{ s32 var_r31; - + for (var_r31 = 0; var_r31 < 21; var_r31++) { - if (arg0->unk8[var_r31] == (unkStruct4*)-1) { + if (arg0->unk8[var_r31] == (unkStruct4 *)-1) { arg0->unk8[var_r31] = 0; } } } -s32 fn_1_4720(unkStruct6* arg0, s32 arg1) { +s32 fn_1_4720(unkStruct6 *arg0, s32 arg1) +{ s32 var_r29; s32 var_r30; - unkStruct4* temp_r31; + unkStruct4 *temp_r31; - for (var_r29 = 0, var_r30 = 0; var_r30 < 21; var_r30++) { temp_r31 = arg0->unk8[var_r30]; if ((temp_r31) && (temp_r31->unk64 == 0) && ((temp_r31->unk0 == arg1) || (arg1 == 5))) { @@ -334,15 +358,15 @@ s32 fn_1_4720(unkStruct6* arg0, s32 arg1) { return var_r29; } -void fn_1_4798(unkStruct6* arg0) { - unkStruct4* temp_r31; +void fn_1_4798(unkStruct6 *arg0) +{ + unkStruct4 *temp_r31; s32 var_r30; - for (var_r30 = 0; var_r30 < 0x15; var_r30++) { temp_r31 = arg0->unk8[var_r30]; if (temp_r31 && (temp_r31->unk64 != 0)) { fn_1_2794(temp_r31); } } -} \ No newline at end of file +} diff --git a/src/REL/m451Dll/m451.c b/src/REL/m451Dll/m451.c index 423baf5e..a9e56657 100644 --- a/src/REL/m451Dll/m451.c +++ b/src/REL/m451Dll/m451.c @@ -1,53 +1,53 @@ -#include "game/frand.h" -#include "game/object.h" -#include "game/hsfman.h" -#include "game/wipe.h" -#include "game/sprite.h" #include "game/audio.h" +#include "game/frand.h" #include "game/hsfanim.h" +#include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/minigame_seq.h" +#include "game/object.h" #include "game/pad.h" +#include "game/sprite.h" +#include "game/wipe.h" -#include "math.h" #include "ext_math.h" +#include "math.h" -#include "game/objsub.h" #include "game/gamework.h" +#include "game/objsub.h" #include "game/gamework_data.h" #include "rel_sqrt_consts.h" typedef struct bss_348_data { - s16 unk0[5]; - s16 unkA; - s16 unkC[20]; - s32 unk34; - s32 unk38; - s32 unk3C; - s32 unk40; - s32 unk44; - float unk48[9]; - HsfObject *unk6C[40]; - HsfObject *unk10C[40]; - HsfObject *unk1AC[40]; - HsfTransform unk24C[40]; - u32 unk7EC[2]; - s8 unk7F4; - s8 unk7F5; - s8 unk7F6; - s8 unk7F7; - u16 unk7F8; - s16 unk7FA[5]; - s32 unk804; - s32 unk808; + s16 unk0[5]; + s16 unkA; + s16 unkC[20]; + s32 unk34; + s32 unk38; + s32 unk3C; + s32 unk40; + s32 unk44; + float unk48[9]; + HsfObject *unk6C[40]; + HsfObject *unk10C[40]; + HsfObject *unk1AC[40]; + HsfTransform unk24C[40]; + u32 unk7EC[2]; + s8 unk7F4; + s8 unk7F5; + s8 unk7F6; + s8 unk7F7; + u16 unk7F8; + s16 unk7FA[5]; + s32 unk804; + s32 unk808; } Bss348Data; typedef struct camera_view_params { - Vec rot; - Vec pos; - float zoom; + Vec rot; + Vec pos; + float zoom; } CameraViewParams; s16 lbl_1_bss_CB4; @@ -68,177 +68,157 @@ omObjData *lbl_1_bss_8; Process *lbl_1_bss_4[1]; s32 lbl_1_bss_0; +CameraViewParams lbl_1_data_0[3] + = { { { -64, 0, 0 }, { 0, 0, 0 }, 5000 }, { { -9.5, 0, 0 }, { 0, 0, -510 }, 1860 }, { { -5, 0, 0 }, { 0, 0, -2870 }, 5060 } }; -CameraViewParams lbl_1_data_0[3] = { - { { -64, 0, 0 }, { 0, 0, 0 }, 5000 }, - { { -9.5, 0, 0 }, { 0, 0, -510 }, 1860 }, - { { -5, 0, 0 }, { 0, 0, -2870 }, 5060 } -}; +s32 lbl_1_data_54[3] = { DATA_MAKE_NUM(DATADIR_M451, 0x01), DATA_MAKE_NUM(DATADIR_M451, 0x02), DATA_MAKE_NUM(DATADIR_M451, 0x03) }; -s32 lbl_1_data_54[3] = { - 0x520001, - 0x520002, - 0x520003 -}; +s32 lbl_1_data_60[3] = { DATA_MAKE_NUM(DATADIR_M451, 0x05), DATA_MAKE_NUM(DATADIR_M451, 0x06), DATA_MAKE_NUM(DATADIR_M451, 0x07) }; -s32 lbl_1_data_60[3] = { - 0x520005, - 0x520006, - 0x520007 -}; - -char *lbl_1_data_78[3] = { - "puzzle00", - "puzzle00", - "puzzle00" -}; +char *lbl_1_data_78[3] = { "puzzle00", "puzzle00", "puzzle00" }; char *lbl_1_data_464[3][40] = { - { - "puzzle2001", - "puzzle2002", - "puzzle2003", - "puzzle2004", - "puzzle2005", - "puzzle2006", - "puzzle2007", - "puzzle2008", - "puzzle2009", - "puzzle2010", - "puzzle2011", - "puzzle2012", - "puzzle2013", - "puzzle2014", - "puzzle2015", - "puzzle2016", - "puzzle2017", - "puzzle2018", - "puzzle2019", - "puzzle2020", - }, - { - "puzzle3001", - "puzzle3002", - "puzzle3003", - "puzzle3004", - "puzzle3005", - "puzzle3006", - "puzzle3007", - "puzzle3008", - "puzzle3009", - "puzzle3010", - "puzzle3011", - "puzzle3012", - "puzzle3013", - "puzzle3014", - "puzzle3015", - "puzzle3016", - "puzzle3017", - "puzzle3018", - "puzzle3019", - "puzzle3020", - "puzzle3021", - "puzzle3022", - "puzzle3023", - "puzzle3024", - "puzzle3025", - "puzzle3026", - "puzzle3027", - "puzzle3028", - "puzzle3029", - "puzzle3030", - }, - { - "puzzle4001", - "puzzle4002", - "puzzle4003", - "puzzle4004", - "puzzle4005", - "puzzle4006", - "puzzle4007", - "puzzle4008", - "puzzle4009", - "puzzle4010", - "puzzle4011", - "puzzle4012", - "puzzle4013", - "puzzle4014", - "puzzle4015", - "puzzle4016", - "puzzle4017", - "puzzle4018", - "puzzle4019", - "puzzle4020", - "puzzle4021", - "puzzle4022", - "puzzle4023", - "puzzle4024", - "puzzle4025", - "puzzle4026", - "puzzle4027", - "puzzle4028", - "puzzle4029", - "puzzle4030", - "puzzle4031", - "puzzle4032", - "puzzle4033", - "puzzle4034", - "puzzle4035", - "puzzle4036", - "puzzle4037", - "puzzle4038", - "puzzle4039", - "puzzle4040", - }, + { + "puzzle2001", + "puzzle2002", + "puzzle2003", + "puzzle2004", + "puzzle2005", + "puzzle2006", + "puzzle2007", + "puzzle2008", + "puzzle2009", + "puzzle2010", + "puzzle2011", + "puzzle2012", + "puzzle2013", + "puzzle2014", + "puzzle2015", + "puzzle2016", + "puzzle2017", + "puzzle2018", + "puzzle2019", + "puzzle2020", + }, + { + "puzzle3001", + "puzzle3002", + "puzzle3003", + "puzzle3004", + "puzzle3005", + "puzzle3006", + "puzzle3007", + "puzzle3008", + "puzzle3009", + "puzzle3010", + "puzzle3011", + "puzzle3012", + "puzzle3013", + "puzzle3014", + "puzzle3015", + "puzzle3016", + "puzzle3017", + "puzzle3018", + "puzzle3019", + "puzzle3020", + "puzzle3021", + "puzzle3022", + "puzzle3023", + "puzzle3024", + "puzzle3025", + "puzzle3026", + "puzzle3027", + "puzzle3028", + "puzzle3029", + "puzzle3030", + }, + { + "puzzle4001", + "puzzle4002", + "puzzle4003", + "puzzle4004", + "puzzle4005", + "puzzle4006", + "puzzle4007", + "puzzle4008", + "puzzle4009", + "puzzle4010", + "puzzle4011", + "puzzle4012", + "puzzle4013", + "puzzle4014", + "puzzle4015", + "puzzle4016", + "puzzle4017", + "puzzle4018", + "puzzle4019", + "puzzle4020", + "puzzle4021", + "puzzle4022", + "puzzle4023", + "puzzle4024", + "puzzle4025", + "puzzle4026", + "puzzle4027", + "puzzle4028", + "puzzle4029", + "puzzle4030", + "puzzle4031", + "puzzle4032", + "puzzle4033", + "puzzle4034", + "puzzle4035", + "puzzle4036", + "puzzle4037", + "puzzle4038", + "puzzle4039", + "puzzle4040", + }, }; s32 lbl_1_data_644[] = { - 0, 1, 2, 3, - 4, 5, 6, 7, - 0x5E0000, 0x190000, 0x6C0000, 0x890000, - 0x840000, 0x100000, 0x0C0000, 0x800000, - 0x5F0000, 0x5F0001, 0x5F0002, 0x5F0005, - 0x5F0006, 0x5F001B, 0x5F0020, 0x5F0021, - 0x5F0017, 0x5F0000, 0x1A0000, 0x6D0000, - 0x8A0000, 0x850000, 0x110000, 0x0D0000, - 0x810000, + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x01), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1B), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x20), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x21), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), }; -s32 lbl_1_data_6C8[] = { - 6, - 7, - 8 -}; +s32 lbl_1_data_6C8[] = { 6, 7, 8 }; -float lbl_1_data_6D4[][2] = { - -52, -9, - 53, -8, - 35, -8, - 23, -8, - 9, -8, - -9, -8, - -17, -8, - -31, -8, - 53, 8, - 35, 8, - 23, 8, - 9, 8, - -9, 8, - -17, 8, - -31, 8 -}; +float lbl_1_data_6D4[][2] = { -52, -9, 53, -8, 35, -8, 23, -8, 9, -8, -9, -8, -17, -8, -31, -8, 53, 8, 35, 8, 23, 8, 9, 8, -9, 8, -17, 8, -31, 8 }; -s32 lbl_1_data_74C[] = { - 3600, - 7200, - 10800 -}; +s32 lbl_1_data_74C[] = { 3600, 7200, 10800 }; -s32 lbl_1_data_758[] = { - 58, - 54, - 48 -}; +s32 lbl_1_data_758[] = { 58, 54, 48 }; void fn_1_7BC(void); void fn_1_B2C(void); @@ -246,141 +226,143 @@ void fn_1_48C4(void); void ObjectSetup(void) { - Vec pos; - Vec up; - Vec target; - s32 i; - Process *objman; - s32 type; - type = GWSystem.mg_type; - lbl_1_bss_B60 = type; - if(type == -1) { - lbl_1_bss_B60 = frandmod(3); - } - lbl_1_bss_B5C = lbl_1_bss_B60; - switch(lbl_1_bss_B5C) { - case 0: - lbl_1_bss_B58 = 20; - break; - - case 1: - lbl_1_bss_B58 = 30; - break; - - default: - lbl_1_bss_B58 = 40; - break; - } - objman = omInitObjMan(50, 8192); - omGameSysInit(objman); - Hu3DCameraCreate(3); - Hu3DCameraPerspectiveSet(1, 15, 20, 25000, 1.2); - Hu3DCameraPerspectiveSet(2, 15, 20, 25000, 1.2); - Hu3DCameraViewportSet(1, 0, 0, 320, 240, 0, 1); - Hu3DCameraViewportSet(2, 0, 0, 640, 480, 0, 1); - Hu3DCameraScissorSet(1, 0, 0, 320, 240); - Hu3DCameraScissorSet(2, 0, 0, 640, 480); - lbl_1_bss_8 = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti); - lbl_1_bss_8->work[0] = 2; - for(i=0; i<1; i++) { - CRotM[i].x = lbl_1_data_0[lbl_1_bss_B60].rot.x; - CRotM[i].y = lbl_1_data_0[lbl_1_bss_B60].rot.y; - CRotM[i].z = lbl_1_data_0[lbl_1_bss_B60].rot.z; - CenterM[i].x = lbl_1_data_0[lbl_1_bss_B60].pos.x; - CenterM[i].y = lbl_1_data_0[lbl_1_bss_B60].pos.y; - CenterM[i].z = lbl_1_data_0[lbl_1_bss_B60].pos.z; - CZoomM[i] = lbl_1_data_0[lbl_1_bss_B60].zoom; - } - for(i=1; iwork[0]; i++) { - CRotM[i].x = 0; - CRotM[i].y = 0; - CRotM[i].z = 0; - CenterM[i].x = 0; - CenterM[i].y = 10; - CenterM[i].z = 0; - CZoomM[i] = 1900; - } - Hu3DLighInit(); - lbl_1_bss_CB4 = Hu3DGLightCreate(10000, 0, 10000, -1, 0, -1, 255, 255, 255); - Hu3DGLightPosAimSet(lbl_1_bss_CB4, 0, 6796.88f, 9706.95f, 0, 0, 0); - Hu3DGLightInfinitytSet(lbl_1_bss_CB4); - pos.x = -1800; - pos.y = 3600; - pos.z = 0; - up.x = up.z = 0; - up.y = 1; - target.x = -100; - target.y = 0; - target.z = 0; - Hu3DShadowCreate(30, 20, 10000); - Hu3DShadowTPLvlSet(0.4f); - Hu3DShadowPosSet(&pos, &up, &target); - Hu3DBGColorSet(0, 0, 0); - fn_1_B2C(); - HuPrcSetStat(HuPrcChildCreate(fn_1_7BC, 4096, 4096, 0, HuPrcCurrentGet()), 12); - HuPrcChildCreate(fn_1_48C4, 4096, 8192, 0, HuPrcCurrentGet()); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + Vec pos; + Vec up; + Vec target; + s32 i; + Process *objman; + s32 type; + type = GWSystem.mg_type; + lbl_1_bss_B60 = type; + if (type == -1) { + lbl_1_bss_B60 = frandmod(3); + } + lbl_1_bss_B5C = lbl_1_bss_B60; + switch (lbl_1_bss_B5C) { + case 0: + lbl_1_bss_B58 = 20; + break; + + case 1: + lbl_1_bss_B58 = 30; + break; + + default: + lbl_1_bss_B58 = 40; + break; + } + objman = omInitObjMan(50, 8192); + omGameSysInit(objman); + Hu3DCameraCreate(3); + Hu3DCameraPerspectiveSet(1, 15, 20, 25000, 1.2); + Hu3DCameraPerspectiveSet(2, 15, 20, 25000, 1.2); + Hu3DCameraViewportSet(1, 0, 0, 320, 240, 0, 1); + Hu3DCameraViewportSet(2, 0, 0, 640, 480, 0, 1); + Hu3DCameraScissorSet(1, 0, 0, 320, 240); + Hu3DCameraScissorSet(2, 0, 0, 640, 480); + lbl_1_bss_8 = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti); + lbl_1_bss_8->work[0] = 2; + for (i = 0; i < 1; i++) { + CRotM[i].x = lbl_1_data_0[lbl_1_bss_B60].rot.x; + CRotM[i].y = lbl_1_data_0[lbl_1_bss_B60].rot.y; + CRotM[i].z = lbl_1_data_0[lbl_1_bss_B60].rot.z; + CenterM[i].x = lbl_1_data_0[lbl_1_bss_B60].pos.x; + CenterM[i].y = lbl_1_data_0[lbl_1_bss_B60].pos.y; + CenterM[i].z = lbl_1_data_0[lbl_1_bss_B60].pos.z; + CZoomM[i] = lbl_1_data_0[lbl_1_bss_B60].zoom; + } + for (i = 1; i < lbl_1_bss_8->work[0]; i++) { + CRotM[i].x = 0; + CRotM[i].y = 0; + CRotM[i].z = 0; + CenterM[i].x = 0; + CenterM[i].y = 10; + CenterM[i].z = 0; + CZoomM[i] = 1900; + } + Hu3DLighInit(); + lbl_1_bss_CB4 = Hu3DGLightCreate(10000, 0, 10000, -1, 0, -1, 255, 255, 255); + Hu3DGLightPosAimSet(lbl_1_bss_CB4, 0, 6796.88f, 9706.95f, 0, 0, 0); + Hu3DGLightInfinitytSet(lbl_1_bss_CB4); + pos.x = -1800; + pos.y = 3600; + pos.z = 0; + up.x = up.z = 0; + up.y = 1; + target.x = -100; + target.y = 0; + target.z = 0; + Hu3DShadowCreate(30, 20, 10000); + Hu3DShadowTPLvlSet(0.4f); + Hu3DShadowPosSet(&pos, &up, &target); + Hu3DBGColorSet(0, 0, 0); + fn_1_B2C(); + HuPrcSetStat(HuPrcChildCreate(fn_1_7BC, 4096, 4096, 0, HuPrcCurrentGet()), 12); + HuPrcChildCreate(fn_1_48C4, 4096, 8192, 0, HuPrcCurrentGet()); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); } void fn_1_7BC(void) { - Bss348Data *data = &lbl_1_bss_348[0]; - while(1) { - if(omPauseChk()) { - Hu3DModelAttrSet(data->unk0[0], 1); - Hu3DModelAttrSet(data->unk0[1], 1); - Hu3DModelAttrSet(data->unk0[2], 1); - HuSprAttrSet(data->unkA, 0, HUSPR_ATTR_DISPOFF); - } else { - Hu3DModelAttrReset(data->unk0[0], 1); - Hu3DModelAttrReset(data->unk0[1], 1); - Hu3DModelAttrReset(data->unk0[2], 1); - HuSprAttrReset(data->unkA, 0, HUSPR_ATTR_DISPOFF); - } - HuPrcVSleep(); - } + Bss348Data *data = &lbl_1_bss_348[0]; + while (1) { + if (omPauseChk()) { + Hu3DModelAttrSet(data->unk0[0], 1); + Hu3DModelAttrSet(data->unk0[1], 1); + Hu3DModelAttrSet(data->unk0[2], 1); + HuSprAttrSet(data->unkA, 0, HUSPR_ATTR_DISPOFF); + } + else { + Hu3DModelAttrReset(data->unk0[0], 1); + Hu3DModelAttrReset(data->unk0[1], 1); + Hu3DModelAttrReset(data->unk0[2], 1); + HuSprAttrReset(data->unkA, 0, HUSPR_ATTR_DISPOFF); + } + HuPrcVSleep(); + } } void fn_1_858(void) { - s32 i; - float angle = 0; - while(1) { - float scale; - angle += 16.0f; - scale = (0.2f*sind(angle))+1.0; - for(i=0; i<8; i++) { - HuSprScaleSet(lbl_1_bss_CAE, i+1, scale, scale); - } - HuPrcVSleep(); - } + s32 i; + float angle = 0; + while (1) { + float scale; + angle += 16.0f; + scale = (0.2f * sind(angle)) + 1.0; + for (i = 0; i < 8; i++) { + HuSprScaleSet(lbl_1_bss_CAE, i + 1, scale, scale); + } + HuPrcVSleep(); + } } void fn_1_918(s16 group, s16 base_member, u32 value, s32 state) { - s32 member; - u32 time[3]; - if(state != 2) { - time[0] = (value % 60); - value = (value-time[0])/60; - time[0] = 100.0f*(time[0]/60.0f); - time[1] = value%60; - value = (value-time[1])/60; - time[2] = value; - } else { - time[0] = 99; - time[1] = 59; - time[2] = 9; - } - member = base_member; - if(state != 0) { - member += 7; - } - HuSprBankSet(group, member, time[0]%10); - HuSprBankSet(group, member+1, time[0]/10); - HuSprBankSet(group, member+3, time[1]%10); - HuSprBankSet(group, member+4, time[1]/10); - HuSprBankSet(group, member+6, time[2]%10); + s32 member; + u32 time[3]; + if (state != 2) { + time[0] = (value % 60); + value = (value - time[0]) / 60; + time[0] = 100.0f * (time[0] / 60.0f); + time[1] = value % 60; + value = (value - time[1]) / 60; + time[2] = value; + } + else { + time[0] = 99; + time[1] = 59; + time[2] = 9; + } + member = base_member; + if (state != 0) { + member += 7; + } + HuSprBankSet(group, member, time[0] % 10); + HuSprBankSet(group, member + 1, time[0] / 10); + HuSprBankSet(group, member + 3, time[1] % 10); + HuSprBankSet(group, member + 4, time[1] / 10); + HuSprBankSet(group, member + 6, time[2] % 10); } void fn_1_1B64(ModelData *model, ParticleData *particle, Mtx matrix); @@ -389,1030 +371,1054 @@ void fn_1_4864(void); void fn_1_B2C(void) { - Bss348Data *temp_r31; - s32 temp_r30; - void *temp_r29; - s32 temp_r28; - HsfTransform *temp_r27; - s16 temp_r26; - HsfTransform *temp_r25; - Process *temp_r18; - s32 temp_r17; - AnimData *sp2C[4]; - s32 sp10; - AnimData *spC; - AnimData *sp8; - HuAudSndGrpSet(36); - for(temp_r30=0; temp_r30<1; temp_r30++) { - temp_r31 = &lbl_1_bss_348[temp_r30]; - temp_r31->unk34 = temp_r30; - temp_r31->unk3C = GWPlayerCfg[temp_r30].pad_idx; - temp_r31->unk38 = temp_r30+1; - temp_r31->unk44 = 0; - temp_r31->unk804 = -1; - temp_r29 = HuDataSelHeapReadNum(lbl_1_data_54[lbl_1_bss_B5C], MEMORY_DEFAULT_NUM, HEAP_DATA); - temp_r31->unk0[0] = Hu3DModelCreate(temp_r29); - temp_r29 = HuDataSelHeapReadNum(lbl_1_data_60[lbl_1_bss_B60], MEMORY_DEFAULT_NUM, HEAP_DATA); - Hu3DAnimCreate(temp_r29, temp_r31->unk0[0], lbl_1_data_78[lbl_1_bss_B5C]); - Hu3DModelCameraSet(temp_r31->unk0[0], 1 << temp_r31->unk38); - Hu3DModelPosSet(temp_r31->unk0[0], 0, 0, 0); - Hu3DModelRotSet(temp_r31->unk0[0], 0, 0, 0); - Hu3DModelAttrSet(temp_r31->unk0[0], 0x4000); - temp_r29 = HuDataSelHeapReadNum(lbl_1_data_54[lbl_1_bss_B5C], MEMORY_DEFAULT_NUM, HEAP_DATA); - temp_r31->unk0[1] = Hu3DModelCreate(temp_r29); - temp_r29 = HuDataSelHeapReadNum(0x52000D, MEMORY_DEFAULT_NUM, HEAP_DATA); - Hu3DAnimCreate(temp_r29, temp_r31->unk0[1], lbl_1_data_78[lbl_1_bss_B5C]); - Hu3DModelCameraSet(temp_r31->unk0[1], 1 << temp_r31->unk38); - Hu3DModelPosSet(temp_r31->unk0[1], 0, 0, 0); - Hu3DModelRotSet(temp_r31->unk0[1], 0, 0, 0); - temp_r29 = HuDataSelHeapReadNum(lbl_1_data_54[lbl_1_bss_B5C], MEMORY_DEFAULT_NUM, HEAP_DATA); - temp_r31->unk0[2] = Hu3DModelCreate(temp_r29); - Hu3DModelCameraSet(temp_r31->unk0[2], 1 << temp_r31->unk38); - Hu3DModelPosSet(temp_r31->unk0[2], 0, 0, 0); - Hu3DModelRotSet(temp_r31->unk0[2], 0, 0, 0); - Hu3DModelTPLvlSet(temp_r31->unk0[2], 128); - Hu3DModelAttrSet(temp_r31->unk0[2], 0x4000); - for(temp_r28=0; temp_r28unk6C[temp_r28] = Hu3DModelObjPtrGet(temp_r31->unk0[0], lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); - if(!temp_r31->unk6C[temp_r28]) { - OSReport("PeaceNo %d\n", lbl_1_bss_B5C); - OSReport("objname %s\n", lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); - OSPanic("m451.c", 543, "ObjPtr1"); - } - temp_r25 = &temp_r31->unk24C[temp_r28]; - temp_r27 = &temp_r31->unk6C[temp_r28]->data.base; - temp_r27->pos.z += -10; - temp_r25->pos.x = temp_r27->pos.x; - temp_r25->pos.y = temp_r27->pos.y; - temp_r25->pos.z = temp_r27->pos.z; - temp_r25->rot.x = temp_r27->rot.x; - temp_r25->rot.y = temp_r27->rot.y; - temp_r25->rot.z = temp_r27->rot.z; - temp_r25->scale.x = temp_r27->scale.x; - temp_r25->scale.y = temp_r27->scale.y; - temp_r25->scale.z = temp_r27->scale.z; - temp_r31->unk10C[temp_r28] = Hu3DModelObjPtrGet(temp_r31->unk0[2], lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); - if(!temp_r31->unk10C[temp_r28]) { - OSReport("objname %s\n", lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); - OSPanic("m451.c", 555, "ObjPtr2"); - } - temp_r31->unk1AC[temp_r28] = Hu3DModelObjPtrGet(temp_r31->unk0[1], lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); - if(!temp_r31->unk1AC[temp_r28]) { - OSReport("objname %s\n", lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); - OSPanic("m451.c", 561, "ObjPtr3"); - } - } - temp_r29 = HuDataSelHeapReadNum(0x520000, MEMORY_DEFAULT_NUM, HEAP_DATA); - temp_r26 = Hu3DModelCreate(temp_r29); - Hu3DModelCameraSet(temp_r26, 1 << temp_r31->unk38); - Hu3DModelPosSet(temp_r26, 0, 0, 0); - Hu3DModelRotSet(temp_r26, 0, 0, 0); - temp_r29 = HuDataSelHeapReadNum(0x520004, MEMORY_DEFAULT_NUM, HEAP_DATA); - temp_r31->unk0[4] = Hu3DModelCreate(temp_r29); - Hu3DModelCameraSet(temp_r31->unk0[4], 1 << temp_r31->unk38); - Hu3DModelPosSet(temp_r31->unk0[4], 0, 0, 0); - Hu3DModelRotSet(temp_r31->unk0[4], 0, 0, 0); - temp_r29 = HuDataSelHeapReadNum(0x520008+lbl_1_bss_B5C, MEMORY_DEFAULT_NUM, HEAP_DATA); - Hu3DAnimCreate(temp_r29, temp_r31->unk0[4], "s3puzzle00"); - temp_r29 = HuDataSelHeapReadNum(0x610038+GWPlayerCfg[temp_r30].character, MEMORY_DEFAULT_NUM, HEAP_DATA); - spC = HuSprAnimRead(temp_r29); - temp_r26 = HuSprCreate(spC, 16384, 0); - temp_r31->unkA = HuSprGrpCreate(1); - HuSprGrpMemberSet(temp_r31->unkA, 0, temp_r26); - HuSprAttrSet(temp_r31->unkA, 0, 7); - sp8 = HuSprAnimRead(HuDataReadNum(0x52000C, MEMORY_DEFAULT_NUM)); - temp_r26 = Hu3DParticleCreate(sp8, 100); - Hu3DModelPosSet(temp_r26, 0, 0, 0); - Hu3DModelScaleSet(temp_r26, 1, 1, 1); - Hu3DModelLayerSet(temp_r26, 1); - Hu3DParticleHookSet(temp_r26, fn_1_1B64); - Hu3DModelCameraSet(temp_r26, 1 << temp_r31->unk38); - temp_r18 = HuPrcChildCreate(fn_1_37C4, 8192, 12288, 0, HuPrcCurrentGet()); - temp_r18->user_data = temp_r31; - lbl_1_bss_4[temp_r30] = temp_r18; - } - temp_r29 = HuDataSelHeapReadNum(0x610030, MEMORY_DEFAULT_NUM, HEAP_DATA); - sp2C[0] = HuSprAnimRead(temp_r29); - temp_r29 = HuDataSelHeapReadNum(0x610031, MEMORY_DEFAULT_NUM, HEAP_DATA); - sp2C[1] = HuSprAnimRead(temp_r29); - temp_r29 = HuDataSelHeapReadNum(0x610037, MEMORY_DEFAULT_NUM, HEAP_DATA); - sp2C[2] = HuSprAnimRead(temp_r29); - temp_r29 = HuDataSelHeapReadNum(0x52000B, MEMORY_DEFAULT_NUM, HEAP_DATA); - sp2C[3] = HuSprAnimRead(temp_r29); - lbl_1_bss_CAE = HuSprGrpCreate(16); - temp_r26 = HuSprCreate(sp2C[3], 16385, 0); - HuSprGrpMemberSet(lbl_1_bss_CAE, 0, temp_r26); - HuSprPosSet(lbl_1_bss_CAE, 0, 0, 0); - HuSprTPLvlSet(lbl_1_bss_CAE, 0, 0.5f); - HuSprColorSet(lbl_1_bss_CAE, 0, 0, 0, 0); - for(temp_r30=0; temp_r30<14; temp_r30++) { - if(temp_r30 >= 7) { - temp_r26 = HuSprCreate(sp2C[1], 16384, 0); - } else { - temp_r26 = HuSprCreate(sp2C[0], 16384, 0); - } - HuSprGrpMemberSet(lbl_1_bss_CAE, temp_r30+2, temp_r26); - HuSprPosSet(lbl_1_bss_CAE, temp_r30+2, lbl_1_data_6D4[temp_r30+1][0], lbl_1_data_6D4[temp_r30+1][1]); - temp_r28 = 0; - if(temp_r30 == 2 || temp_r30 == 9) { - temp_r28 = 11; - } - if(temp_r30 == 5 || temp_r30 == 12) { - temp_r28 = 10; - } - HuSprBankSet(lbl_1_bss_CAE, temp_r30+2, temp_r28); - } - temp_r26 = HuSprCreate(sp2C[2], 16384, 0); - HuSprGrpMemberSet(lbl_1_bss_CAE, 1, temp_r26); - HuSprPosSet(lbl_1_bss_CAE, 1, lbl_1_data_6D4[0][0], lbl_1_data_6D4[0][1]); - HuSprGrpPosSet(lbl_1_bss_CAE, 280, 61); - fn_1_918(lbl_1_bss_CAE, 2, GWMGRecordGet(lbl_1_data_6C8[lbl_1_bss_B5C]), 0); - fn_1_918(lbl_1_bss_CAE, 2, 0, 1); - for(temp_r30=0; temp_r30unk34 = temp_r30; + temp_r31->unk3C = GWPlayerCfg[temp_r30].pad_idx; + temp_r31->unk38 = temp_r30 + 1; + temp_r31->unk44 = 0; + temp_r31->unk804 = -1; + temp_r29 = HuDataSelHeapReadNum(lbl_1_data_54[lbl_1_bss_B5C], MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk0[0] = Hu3DModelCreate(temp_r29); + temp_r29 = HuDataSelHeapReadNum(lbl_1_data_60[lbl_1_bss_B60], MEMORY_DEFAULT_NUM, HEAP_DATA); + Hu3DAnimCreate(temp_r29, temp_r31->unk0[0], lbl_1_data_78[lbl_1_bss_B5C]); + Hu3DModelCameraSet(temp_r31->unk0[0], 1 << temp_r31->unk38); + Hu3DModelPosSet(temp_r31->unk0[0], 0, 0, 0); + Hu3DModelRotSet(temp_r31->unk0[0], 0, 0, 0); + Hu3DModelAttrSet(temp_r31->unk0[0], 0x4000); + temp_r29 = HuDataSelHeapReadNum(lbl_1_data_54[lbl_1_bss_B5C], MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk0[1] = Hu3DModelCreate(temp_r29); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M451, 0x0D), MEMORY_DEFAULT_NUM, HEAP_DATA); + Hu3DAnimCreate(temp_r29, temp_r31->unk0[1], lbl_1_data_78[lbl_1_bss_B5C]); + Hu3DModelCameraSet(temp_r31->unk0[1], 1 << temp_r31->unk38); + Hu3DModelPosSet(temp_r31->unk0[1], 0, 0, 0); + Hu3DModelRotSet(temp_r31->unk0[1], 0, 0, 0); + temp_r29 = HuDataSelHeapReadNum(lbl_1_data_54[lbl_1_bss_B5C], MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk0[2] = Hu3DModelCreate(temp_r29); + Hu3DModelCameraSet(temp_r31->unk0[2], 1 << temp_r31->unk38); + Hu3DModelPosSet(temp_r31->unk0[2], 0, 0, 0); + Hu3DModelRotSet(temp_r31->unk0[2], 0, 0, 0); + Hu3DModelTPLvlSet(temp_r31->unk0[2], 128); + Hu3DModelAttrSet(temp_r31->unk0[2], 0x4000); + for (temp_r28 = 0; temp_r28 < lbl_1_bss_B58; temp_r28++) { + temp_r31->unk6C[temp_r28] = Hu3DModelObjPtrGet(temp_r31->unk0[0], lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); + if (!temp_r31->unk6C[temp_r28]) { + OSReport("PeaceNo %d\n", lbl_1_bss_B5C); + OSReport("objname %s\n", lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); + OSPanic("m451.c", 543, "ObjPtr1"); + } + temp_r25 = &temp_r31->unk24C[temp_r28]; + temp_r27 = &temp_r31->unk6C[temp_r28]->data.base; + temp_r27->pos.z += -10; + temp_r25->pos.x = temp_r27->pos.x; + temp_r25->pos.y = temp_r27->pos.y; + temp_r25->pos.z = temp_r27->pos.z; + temp_r25->rot.x = temp_r27->rot.x; + temp_r25->rot.y = temp_r27->rot.y; + temp_r25->rot.z = temp_r27->rot.z; + temp_r25->scale.x = temp_r27->scale.x; + temp_r25->scale.y = temp_r27->scale.y; + temp_r25->scale.z = temp_r27->scale.z; + temp_r31->unk10C[temp_r28] = Hu3DModelObjPtrGet(temp_r31->unk0[2], lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); + if (!temp_r31->unk10C[temp_r28]) { + OSReport("objname %s\n", lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); + OSPanic("m451.c", 555, "ObjPtr2"); + } + temp_r31->unk1AC[temp_r28] = Hu3DModelObjPtrGet(temp_r31->unk0[1], lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); + if (!temp_r31->unk1AC[temp_r28]) { + OSReport("objname %s\n", lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); + OSPanic("m451.c", 561, "ObjPtr3"); + } + } + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M451, 0x00), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r26 = Hu3DModelCreate(temp_r29); + Hu3DModelCameraSet(temp_r26, 1 << temp_r31->unk38); + Hu3DModelPosSet(temp_r26, 0, 0, 0); + Hu3DModelRotSet(temp_r26, 0, 0, 0); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M451, 0x04), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk0[4] = Hu3DModelCreate(temp_r29); + Hu3DModelCameraSet(temp_r31->unk0[4], 1 << temp_r31->unk38); + Hu3DModelPosSet(temp_r31->unk0[4], 0, 0, 0); + Hu3DModelRotSet(temp_r31->unk0[4], 0, 0, 0); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M451, 0x08) + lbl_1_bss_B5C, MEMORY_DEFAULT_NUM, HEAP_DATA); + Hu3DAnimCreate(temp_r29, temp_r31->unk0[4], "s3puzzle00"); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x38) + GWPlayerCfg[temp_r30].character, MEMORY_DEFAULT_NUM, HEAP_DATA); + spC = HuSprAnimRead(temp_r29); + temp_r26 = HuSprCreate(spC, 16384, 0); + temp_r31->unkA = HuSprGrpCreate(1); + HuSprGrpMemberSet(temp_r31->unkA, 0, temp_r26); + HuSprAttrSet(temp_r31->unkA, 0, 7); + sp8 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M451, 0x0C), MEMORY_DEFAULT_NUM)); + temp_r26 = Hu3DParticleCreate(sp8, 100); + Hu3DModelPosSet(temp_r26, 0, 0, 0); + Hu3DModelScaleSet(temp_r26, 1, 1, 1); + Hu3DModelLayerSet(temp_r26, 1); + Hu3DParticleHookSet(temp_r26, fn_1_1B64); + Hu3DModelCameraSet(temp_r26, 1 << temp_r31->unk38); + temp_r18 = HuPrcChildCreate(fn_1_37C4, 8192, 12288, 0, HuPrcCurrentGet()); + temp_r18->user_data = temp_r31; + lbl_1_bss_4[temp_r30] = temp_r18; + } + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x30), MEMORY_DEFAULT_NUM, HEAP_DATA); + sp2C[0] = HuSprAnimRead(temp_r29); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x31), MEMORY_DEFAULT_NUM, HEAP_DATA); + sp2C[1] = HuSprAnimRead(temp_r29); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 0x37), MEMORY_DEFAULT_NUM, HEAP_DATA); + sp2C[2] = HuSprAnimRead(temp_r29); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M451, 0x0B), MEMORY_DEFAULT_NUM, HEAP_DATA); + sp2C[3] = HuSprAnimRead(temp_r29); + lbl_1_bss_CAE = HuSprGrpCreate(16); + temp_r26 = HuSprCreate(sp2C[3], 16385, 0); + HuSprGrpMemberSet(lbl_1_bss_CAE, 0, temp_r26); + HuSprPosSet(lbl_1_bss_CAE, 0, 0, 0); + HuSprTPLvlSet(lbl_1_bss_CAE, 0, 0.5f); + HuSprColorSet(lbl_1_bss_CAE, 0, 0, 0, 0); + for (temp_r30 = 0; temp_r30 < 14; temp_r30++) { + if (temp_r30 >= 7) { + temp_r26 = HuSprCreate(sp2C[1], 16384, 0); + } + else { + temp_r26 = HuSprCreate(sp2C[0], 16384, 0); + } + HuSprGrpMemberSet(lbl_1_bss_CAE, temp_r30 + 2, temp_r26); + HuSprPosSet(lbl_1_bss_CAE, temp_r30 + 2, lbl_1_data_6D4[temp_r30 + 1][0], lbl_1_data_6D4[temp_r30 + 1][1]); + temp_r28 = 0; + if (temp_r30 == 2 || temp_r30 == 9) { + temp_r28 = 11; + } + if (temp_r30 == 5 || temp_r30 == 12) { + temp_r28 = 10; + } + HuSprBankSet(lbl_1_bss_CAE, temp_r30 + 2, temp_r28); + } + temp_r26 = HuSprCreate(sp2C[2], 16384, 0); + HuSprGrpMemberSet(lbl_1_bss_CAE, 1, temp_r26); + HuSprPosSet(lbl_1_bss_CAE, 1, lbl_1_data_6D4[0][0], lbl_1_data_6D4[0][1]); + HuSprGrpPosSet(lbl_1_bss_CAE, 280, 61); + fn_1_918(lbl_1_bss_CAE, 2, GWMGRecordGet(lbl_1_data_6C8[lbl_1_bss_B5C]), 0); + fn_1_918(lbl_1_bss_CAE, 2, 0, 1); + for (temp_r30 = 0; temp_r30 < lbl_1_bss_B58; temp_r30++) { + lbl_1_bss_C04[temp_r30] = temp_r30; + lbl_1_bss_B64[temp_r30] = frandmod(4); + } + for (temp_r30 = 0; temp_r30 < 50; temp_r30++) { + temp_r28 = frandmod(lbl_1_bss_B58); + temp_r17 = frandmod(lbl_1_bss_B58); + sp10 = lbl_1_bss_C04[temp_r28]; + lbl_1_bss_C04[temp_r28] = lbl_1_bss_C04[temp_r17]; + lbl_1_bss_C04[temp_r17] = sp10; + } + HuPrcChildCreate(fn_1_4864, 4096, 4096, 0, HuPrcCurrentGet()); } void fn_1_1B64(ModelData *model, ParticleData *particle, Mtx matrix) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - - HsfanimStruct01 *temp_r31; - s16 temp_r29; - Bss348Data *temp_r28; - s16 temp_r27; - s16 temp_r26; - s32 temp_r25; - - if(particle->unk_34 == 0) { - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - temp_r31->unk14.x = temp_r31->unk2C = 0; - temp_r31->unk40.r = 255; - temp_r31->unk40.g = 255; - temp_r31->unk40.b = 0; - } - } - temp_r31 = particle->unk_48; - temp_r28 = &lbl_1_bss_348[0]; - if(temp_r28->unk44 == 1) { - for(temp_r27=0; temp_r27<4; temp_r27++) { - temp_f28 = 1.0f; - for(temp_r26=0, temp_f30=0; temp_r26<24; temp_r26++, temp_f30 += 15.0f) { - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(0.0f == temp_r31->unk14.x) { - break; - } - } - if(temp_r29 == particle->unk_30) { - break; - } - temp_f31 = temp_f30; - temp_f29 = temp_f28+(5.0f*frandf()); - temp_r31->unk34.x = temp_r28->unk48[7]+((temp_r27*10.0f)*sind(temp_f31)); - temp_r31->unk34.y = temp_r28->unk48[8]+((temp_r27*10.0f)*cosd(temp_f31)); - temp_r31->unk34.z = 50; - temp_r31->unk08.x = temp_f29*sind(temp_f31); - temp_r31->unk08.y = temp_f29*cosd(temp_f31); - temp_r31->unk08.z = 0; - temp_r31->unk14.x = 30.0f; - temp_r31->unk14.y = 360.0f*frandf(); - temp_r31->unk14.z = 225; - temp_r31->unk2C = (5.0f*frandf())+25.0f; - temp_r31->unk40.r = 255; - temp_r31->unk40.g = 255; - temp_r31->unk40.b = 0; - temp_r31->unk40.a = 255; - - } - } - temp_r28->unk44++; - DCStoreRangeNoSync(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - } - temp_r31 = particle->unk_48; - for(temp_r29=0; temp_r29unk_30; temp_r29++, temp_r31++) { - if(0.0f == temp_r31->unk14.x) { - continue; - } - VECAdd(&temp_r31->unk08, &temp_r31->unk34, &temp_r31->unk34); - temp_r31->unk08.x *= 0.95f; - temp_r31->unk08.y *= 0.95f; - temp_r31->unk14.y += 20.0f; - if(temp_r31->unk14.y >= 180.0f && temp_r31->unk14.y < 200.0f) { - temp_r31->unk14.z *= 0.4f; - } - if(temp_r31->unk14.y >= 360.0f && temp_r31->unk14.y < 380.0f) { - temp_r31->unk14.z *= 0.4f; - } - if(temp_r31->unk14.y >= 360.0f) { - temp_r31->unk14.y -= 360.0f; - } - temp_r25 = (30.0*sind(temp_r31->unk14.y))+temp_r31->unk14.z; - if(temp_r25 < 0) { - temp_r25 = 0; - temp_r31->unk14.x = 0; - } - temp_r31->unk40.a = temp_r25; - if(0.0f == temp_r31->unk14.x) { - temp_r31->unk2C = 0; - } - } - PPCSync(); + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + + HsfanimStruct01 *temp_r31; + s16 temp_r29; + Bss348Data *temp_r28; + s16 temp_r27; + s16 temp_r26; + s32 temp_r25; + + if (particle->unk_34 == 0) { + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + temp_r31->unk14.x = temp_r31->unk2C = 0; + temp_r31->unk40.r = 255; + temp_r31->unk40.g = 255; + temp_r31->unk40.b = 0; + } + } + temp_r31 = particle->unk_48; + temp_r28 = &lbl_1_bss_348[0]; + if (temp_r28->unk44 == 1) { + for (temp_r27 = 0; temp_r27 < 4; temp_r27++) { + temp_f28 = 1.0f; + for (temp_r26 = 0, temp_f30 = 0; temp_r26 < 24; temp_r26++, temp_f30 += 15.0f) { + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (0.0f == temp_r31->unk14.x) { + break; + } + } + if (temp_r29 == particle->unk_30) { + break; + } + temp_f31 = temp_f30; + temp_f29 = temp_f28 + (5.0f * frandf()); + temp_r31->unk34.x = temp_r28->unk48[7] + ((temp_r27 * 10.0f) * sind(temp_f31)); + temp_r31->unk34.y = temp_r28->unk48[8] + ((temp_r27 * 10.0f) * cosd(temp_f31)); + temp_r31->unk34.z = 50; + temp_r31->unk08.x = temp_f29 * sind(temp_f31); + temp_r31->unk08.y = temp_f29 * cosd(temp_f31); + temp_r31->unk08.z = 0; + temp_r31->unk14.x = 30.0f; + temp_r31->unk14.y = 360.0f * frandf(); + temp_r31->unk14.z = 225; + temp_r31->unk2C = (5.0f * frandf()) + 25.0f; + temp_r31->unk40.r = 255; + temp_r31->unk40.g = 255; + temp_r31->unk40.b = 0; + temp_r31->unk40.a = 255; + } + } + temp_r28->unk44++; + DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + } + temp_r31 = particle->unk_48; + for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { + if (0.0f == temp_r31->unk14.x) { + continue; + } + VECAdd(&temp_r31->unk08, &temp_r31->unk34, &temp_r31->unk34); + temp_r31->unk08.x *= 0.95f; + temp_r31->unk08.y *= 0.95f; + temp_r31->unk14.y += 20.0f; + if (temp_r31->unk14.y >= 180.0f && temp_r31->unk14.y < 200.0f) { + temp_r31->unk14.z *= 0.4f; + } + if (temp_r31->unk14.y >= 360.0f && temp_r31->unk14.y < 380.0f) { + temp_r31->unk14.z *= 0.4f; + } + if (temp_r31->unk14.y >= 360.0f) { + temp_r31->unk14.y -= 360.0f; + } + temp_r25 = (30.0 * sind(temp_r31->unk14.y)) + temp_r31->unk14.z; + if (temp_r25 < 0) { + temp_r25 = 0; + temp_r31->unk14.x = 0; + } + temp_r31->unk40.a = temp_r25; + if (0.0f == temp_r31->unk14.x) { + temp_r31->unk2C = 0; + } + } + PPCSync(); } s8 fn_1_20FC(s32 arg0, s32 arg1) { - Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; - s8 temp_r30; - s8 temp_r29; - s8 temp_r28; - if(!GWPlayerCfg[arg0].iscom) { - if(arg1) { - temp_r29 = temp_r30 = HuPadStkY[temp_r31->unk3C]; - } else { - temp_r29 = temp_r30 = HuPadStkX[temp_r31->unk3C]; - } - (void)temp_r29; - } else { - if(arg1) { - temp_r28 = temp_r30 = temp_r31->unk7F5; - } else { - temp_r28 = temp_r30 = temp_r31->unk7F4; - } - } - return temp_r30; + Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; + s8 temp_r30; + s8 temp_r29; + s8 temp_r28; + if (!GWPlayerCfg[arg0].iscom) { + if (arg1) { + temp_r29 = temp_r30 = HuPadStkY[temp_r31->unk3C]; + } + else { + temp_r29 = temp_r30 = HuPadStkX[temp_r31->unk3C]; + } + (void)temp_r29; + } + else { + if (arg1) { + temp_r28 = temp_r30 = temp_r31->unk7F5; + } + else { + temp_r28 = temp_r30 = temp_r31->unk7F4; + } + } + return temp_r30; } u8 fn_1_21B4(s32 arg0, s32 arg1) { - Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; - s8 temp_r30; - s8 temp_r29; - s8 temp_r28; - if(!GWPlayerCfg[arg0].iscom) { - if(arg1) { - temp_r29 = temp_r30 = HuPadTrigR[temp_r31->unk3C]; - } else { - temp_r29 = temp_r30 = HuPadTrigL[temp_r31->unk3C]; - } - (void)temp_r29; - } else { - if(arg1) { - temp_r28 = temp_r30 = temp_r31->unk7F6; - } else { - temp_r28 = temp_r30 = temp_r31->unk7F7; - } - } - return temp_r30; + Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; + s8 temp_r30; + s8 temp_r29; + s8 temp_r28; + if (!GWPlayerCfg[arg0].iscom) { + if (arg1) { + temp_r29 = temp_r30 = HuPadTrigR[temp_r31->unk3C]; + } + else { + temp_r29 = temp_r30 = HuPadTrigL[temp_r31->unk3C]; + } + (void)temp_r29; + } + else { + if (arg1) { + temp_r28 = temp_r30 = temp_r31->unk7F6; + } + else { + temp_r28 = temp_r30 = temp_r31->unk7F7; + } + } + return temp_r30; } static inline s8 fn_1_20FC_inline(s32 arg0, s32 arg1) { - Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; - s8 temp_r30; - if(!GWPlayerCfg[arg0].iscom) { - if(arg1) { - temp_r30 = HuPadStkY[temp_r31->unk3C]; - } else { - temp_r30 = HuPadStkX[temp_r31->unk3C]; - } - } else { - if(arg1) { - temp_r30 = temp_r31->unk7F5; - } else { - temp_r30 = temp_r31->unk7F4; - } - } - return temp_r30; + Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; + s8 temp_r30; + if (!GWPlayerCfg[arg0].iscom) { + if (arg1) { + temp_r30 = HuPadStkY[temp_r31->unk3C]; + } + else { + temp_r30 = HuPadStkX[temp_r31->unk3C]; + } + } + else { + if (arg1) { + temp_r30 = temp_r31->unk7F5; + } + else { + temp_r30 = temp_r31->unk7F4; + } + } + return temp_r30; } static inline u8 fn_1_21B4_inline(s32 arg0, s32 arg1) { - Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; - s8 temp_r30; - if(!GWPlayerCfg[arg0].iscom) { - if(arg1) { - temp_r30 = HuPadTrigR[temp_r31->unk3C]; - } else { - temp_r30 = HuPadTrigL[temp_r31->unk3C]; - } - } else { - if(arg1) { - temp_r30 = temp_r31->unk7F6; - } else { - temp_r30 = temp_r31->unk7F7; - } - } - return temp_r30; + Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; + s8 temp_r30; + if (!GWPlayerCfg[arg0].iscom) { + if (arg1) { + temp_r30 = HuPadTrigR[temp_r31->unk3C]; + } + else { + temp_r30 = HuPadTrigL[temp_r31->unk3C]; + } + } + else { + if (arg1) { + temp_r30 = temp_r31->unk7F6; + } + else { + temp_r30 = temp_r31->unk7F7; + } + } + return temp_r30; } - u16 fn_1_2274(s32 arg0) { - Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; - u16 temp_r30; - - //Hacks to stop spilling in fn_1_37C4 - (void)temp_r31; - (void)temp_r31; - (void)temp_r31; - (void)temp_r31; - - if(!GWPlayerCfg[arg0].iscom) { - temp_r30 = HuPadBtnDown[temp_r31->unk3C]; - } else { - temp_r30 = temp_r31->unk7F8; - } - return temp_r30; + Bss348Data *temp_r31 = &lbl_1_bss_348[arg0]; + u16 temp_r30; + + // Hacks to stop spilling in fn_1_37C4 + (void)temp_r31; + (void)temp_r31; + (void)temp_r31; + (void)temp_r31; + + if (!GWPlayerCfg[arg0].iscom) { + temp_r30 = HuPadBtnDown[temp_r31->unk3C]; + } + else { + temp_r30 = temp_r31->unk7F8; + } + return temp_r30; } void fn_1_22E0(Bss348Data *arg0, s32 arg1) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - - Vec *temp_r31; - Vec *temp_r29; - Vec *temp_r28; - s32 temp_r27; - Vec *temp_r26; - s32 temp_r25; - - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - temp_r31 = &arg0->unk6C[arg1]->data.base.pos; - temp_r26 = &arg0->unk10C[arg1]->data.base.pos; - temp_r28 = &arg0->unk1AC[arg1]->data.base.pos; - temp_r29 = &arg0->unk24C[arg1].pos; - temp_f29 = (temp_r29->x-temp_r31->x)/15.0f; - temp_f27 = (temp_r29->z-temp_r31->z)/30.0f; - temp_f28 = (temp_r29->y-temp_r31->y)/15.0f; - temp_f31 = 20; - temp_f30 = -20; - HuSprAttrSet(arg0->unkA, 0, 64); - omVibrate(arg0->unk34, 12, 6, 6); - temp_r25 =0; - for(temp_r27=0; temp_r27<30; temp_r27++) { - temp_r31->z += temp_f27; - temp_r28->z = temp_r26->z = temp_r31->z-5.0f; - if(temp_r27 < 15) { - temp_r31->x += temp_f29; - temp_r31->y += temp_f28; - temp_r28->x = temp_r31->x; - temp_r28->y = temp_r31->y; - sp2C.x = 30.0f+temp_r31->x; - sp2C.z = 50.0f; - sp2C.y = -30.0f+temp_r31->y; - Hu3D3Dto2D(&sp2C, (1 << arg0->unk38), &sp20); - HuSprGrpPosSet(arg0->unkA, sp20.x, sp20.y); - } - temp_r26->x = temp_r31->x+temp_f31; - temp_r26->y = temp_r31->y+temp_f30; - temp_f31 -= (4.0f/7.0f); - temp_f30 -= (-4.0f/7.0f); - temp_r28->z += 10.0f; - if(temp_r27 < 14) { - temp_r25 += 17; - } else if(temp_r27 < 28) { - temp_r25 -= 17; - } - Hu3DModelTPLvlSet(arg0->unk0[1], 255-temp_r25); - HuPrcVSleep(); - } - temp_r31->x = temp_r29->x; - temp_r31->y = temp_r29->y; - temp_r31->z = temp_r29->z; - sp14.x = 30.0f+temp_r31->x; - sp14.z = 50; - sp14.y = -30.0f+temp_r31->y; - Hu3D3Dto2D(&sp14, (1 << arg0->unk38), &sp8); - HuSprGrpPosSet(arg0->unkA, sp8.x, sp8.y); - temp_r28->x = 5000; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f27; + + Vec *temp_r31; + Vec *temp_r29; + Vec *temp_r28; + s32 temp_r27; + Vec *temp_r26; + s32 temp_r25; + + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + temp_r31 = &arg0->unk6C[arg1]->data.base.pos; + temp_r26 = &arg0->unk10C[arg1]->data.base.pos; + temp_r28 = &arg0->unk1AC[arg1]->data.base.pos; + temp_r29 = &arg0->unk24C[arg1].pos; + temp_f29 = (temp_r29->x - temp_r31->x) / 15.0f; + temp_f27 = (temp_r29->z - temp_r31->z) / 30.0f; + temp_f28 = (temp_r29->y - temp_r31->y) / 15.0f; + temp_f31 = 20; + temp_f30 = -20; + HuSprAttrSet(arg0->unkA, 0, 64); + omVibrate(arg0->unk34, 12, 6, 6); + temp_r25 = 0; + for (temp_r27 = 0; temp_r27 < 30; temp_r27++) { + temp_r31->z += temp_f27; + temp_r28->z = temp_r26->z = temp_r31->z - 5.0f; + if (temp_r27 < 15) { + temp_r31->x += temp_f29; + temp_r31->y += temp_f28; + temp_r28->x = temp_r31->x; + temp_r28->y = temp_r31->y; + sp2C.x = 30.0f + temp_r31->x; + sp2C.z = 50.0f; + sp2C.y = -30.0f + temp_r31->y; + Hu3D3Dto2D(&sp2C, (1 << arg0->unk38), &sp20); + HuSprGrpPosSet(arg0->unkA, sp20.x, sp20.y); + } + temp_r26->x = temp_r31->x + temp_f31; + temp_r26->y = temp_r31->y + temp_f30; + temp_f31 -= (4.0f / 7.0f); + temp_f30 -= (-4.0f / 7.0f); + temp_r28->z += 10.0f; + if (temp_r27 < 14) { + temp_r25 += 17; + } + else if (temp_r27 < 28) { + temp_r25 -= 17; + } + Hu3DModelTPLvlSet(arg0->unk0[1], 255 - temp_r25); + HuPrcVSleep(); + } + temp_r31->x = temp_r29->x; + temp_r31->y = temp_r29->y; + temp_r31->z = temp_r29->z; + sp14.x = 30.0f + temp_r31->x; + sp14.z = 50; + sp14.y = -30.0f + temp_r31->y; + Hu3D3Dto2D(&sp14, (1 << arg0->unk38), &sp8); + HuSprGrpPosSet(arg0->unkA, sp8.x, sp8.y); + temp_r28->x = 5000; } void fn_1_263C(Bss348Data *arg0, s32 arg1) { - HsfTransform *temp_r31; - HsfTransform *temp_r30; - HsfTransform *temp_r29; - float temp_f31; - temp_r31 = &arg0->unk6C[arg1]->data.base; - temp_r29 = &arg0->unk10C[arg1]->data.base; - temp_r30 = &arg0->unk24C[arg1]; - for(temp_f31 = 0; temp_f31<180; temp_f31 += 10) { - temp_r31->scale.x = (temp_r30->scale.x*0.8f)+(0.2f*(temp_r30->scale.x*(1.0-sind(temp_f31)))); - temp_r31->scale.y = (temp_r30->scale.y*0.8f)+(0.2f*(temp_r30->scale.y*(1.0-sind(temp_f31)))); - temp_r31->scale.z = (temp_r30->scale.z*0.8f)+(0.2f*(temp_r30->scale.z*(1.0-sind(temp_f31)))); - temp_r29->scale.x = temp_r31->scale.x; - temp_r29->scale.y = temp_r31->scale.y; - temp_r29->scale.z = 0.8f*temp_r31->scale.z; - HuPrcVSleep(); - } - for(temp_f31 = 180; temp_f31<360; temp_f31 += 20) { - temp_r31->scale.x = (temp_r30->scale.x*0.9f)+(0.1f*(temp_r30->scale.x*(1.0-sind(temp_f31)))); - temp_r31->scale.y = (temp_r30->scale.y*0.9f)+(0.1f*(temp_r30->scale.y*(1.0-sind(temp_f31)))); - temp_r31->scale.z = (temp_r30->scale.z*0.9f)+(0.1f*(temp_r30->scale.z*(1.0-sind(temp_f31)))); - temp_r29->scale.x = temp_r31->scale.x; - temp_r29->scale.y = temp_r31->scale.y; - temp_r29->scale.z = 0.8f*temp_r31->scale.z; - HuPrcVSleep(); - } - temp_r31->scale.x = temp_r30->scale.x; - temp_r31->scale.y = temp_r30->scale.y; - temp_r31->scale.z = temp_r30->scale.z; - temp_r29->scale.x = temp_r31->scale.x; - temp_r29->scale.y = temp_r31->scale.y; - temp_r29->scale.z = 0.8f*temp_r31->scale.z; + HsfTransform *temp_r31; + HsfTransform *temp_r30; + HsfTransform *temp_r29; + float temp_f31; + temp_r31 = &arg0->unk6C[arg1]->data.base; + temp_r29 = &arg0->unk10C[arg1]->data.base; + temp_r30 = &arg0->unk24C[arg1]; + for (temp_f31 = 0; temp_f31 < 180; temp_f31 += 10) { + temp_r31->scale.x = (temp_r30->scale.x * 0.8f) + (0.2f * (temp_r30->scale.x * (1.0 - sind(temp_f31)))); + temp_r31->scale.y = (temp_r30->scale.y * 0.8f) + (0.2f * (temp_r30->scale.y * (1.0 - sind(temp_f31)))); + temp_r31->scale.z = (temp_r30->scale.z * 0.8f) + (0.2f * (temp_r30->scale.z * (1.0 - sind(temp_f31)))); + temp_r29->scale.x = temp_r31->scale.x; + temp_r29->scale.y = temp_r31->scale.y; + temp_r29->scale.z = 0.8f * temp_r31->scale.z; + HuPrcVSleep(); + } + for (temp_f31 = 180; temp_f31 < 360; temp_f31 += 20) { + temp_r31->scale.x = (temp_r30->scale.x * 0.9f) + (0.1f * (temp_r30->scale.x * (1.0 - sind(temp_f31)))); + temp_r31->scale.y = (temp_r30->scale.y * 0.9f) + (0.1f * (temp_r30->scale.y * (1.0 - sind(temp_f31)))); + temp_r31->scale.z = (temp_r30->scale.z * 0.9f) + (0.1f * (temp_r30->scale.z * (1.0 - sind(temp_f31)))); + temp_r29->scale.x = temp_r31->scale.x; + temp_r29->scale.y = temp_r31->scale.y; + temp_r29->scale.z = 0.8f * temp_r31->scale.z; + HuPrcVSleep(); + } + temp_r31->scale.x = temp_r30->scale.x; + temp_r31->scale.y = temp_r30->scale.y; + temp_r31->scale.z = temp_r30->scale.z; + temp_r29->scale.x = temp_r31->scale.x; + temp_r29->scale.y = temp_r31->scale.y; + temp_r29->scale.z = 0.8f * temp_r31->scale.z; } void fn_1_2A34(Bss348Data *arg0, s32 arg1, s32 arg2) { - HsfTransform *temp_r31; - HsfTransform *temp_r30; - s32 temp_r28; - - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - - temp_r31 = &arg0->unk6C[arg1]->data.base; - temp_r30 = &arg0->unk10C[arg1]->data.base; - temp_f30 = temp_r31->scale.x; - temp_f29 = temp_r31->scale.y; - temp_f28 = temp_r31->scale.z; - temp_r31->scale.x = temp_r31->scale.y = temp_r31->scale.z = 0; - temp_r30->scale.x = temp_r30->scale.y = temp_r30->scale.z = 0; - for(temp_r28=0, temp_f31=0; temp_r28<30; temp_r28++, temp_f31 += (1.0f/30.0f)) { - temp_r31->scale.x += temp_f30/30.0f; - temp_r31->scale.y += temp_f29/30.0f; - temp_r31->scale.z += temp_f28/30.0f; - temp_r30->scale.x = temp_r31->scale.x; - temp_r30->scale.y = temp_r31->scale.y; - temp_r30->scale.z = 0.8f*temp_r31->scale.z; - if(arg2 == 0) { - HuSprGrpScaleSet(arg0->unkA, temp_f31, temp_f31); - } - HuPrcVSleep(); - } - temp_r31->scale.x = temp_f30; - temp_r31->scale.y = temp_f29; - temp_r31->scale.z = temp_f28; - temp_r30->scale.x = temp_r31->scale.x; - temp_r30->scale.y = temp_r31->scale.y; - temp_r30->scale.z = 0.8f*temp_r31->scale.z; - if(arg2 == 0) { - HuSprAttrReset(arg0->unkA, 0, 1); - HuSprGrpScaleSet(arg0->unkA, 1, 1); - } else { - HuSprAttrReset(arg0->unkA, 0, 64); - } + HsfTransform *temp_r31; + HsfTransform *temp_r30; + s32 temp_r28; + + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + + temp_r31 = &arg0->unk6C[arg1]->data.base; + temp_r30 = &arg0->unk10C[arg1]->data.base; + temp_f30 = temp_r31->scale.x; + temp_f29 = temp_r31->scale.y; + temp_f28 = temp_r31->scale.z; + temp_r31->scale.x = temp_r31->scale.y = temp_r31->scale.z = 0; + temp_r30->scale.x = temp_r30->scale.y = temp_r30->scale.z = 0; + for (temp_r28 = 0, temp_f31 = 0; temp_r28 < 30; temp_r28++, temp_f31 += (1.0f / 30.0f)) { + temp_r31->scale.x += temp_f30 / 30.0f; + temp_r31->scale.y += temp_f29 / 30.0f; + temp_r31->scale.z += temp_f28 / 30.0f; + temp_r30->scale.x = temp_r31->scale.x; + temp_r30->scale.y = temp_r31->scale.y; + temp_r30->scale.z = 0.8f * temp_r31->scale.z; + if (arg2 == 0) { + HuSprGrpScaleSet(arg0->unkA, temp_f31, temp_f31); + } + HuPrcVSleep(); + } + temp_r31->scale.x = temp_f30; + temp_r31->scale.y = temp_f29; + temp_r31->scale.z = temp_f28; + temp_r30->scale.x = temp_r31->scale.x; + temp_r30->scale.y = temp_r31->scale.y; + temp_r30->scale.z = 0.8f * temp_r31->scale.z; + if (arg2 == 0) { + HuSprAttrReset(arg0->unkA, 0, 1); + HuSprGrpScaleSet(arg0->unkA, 1, 1); + } + else { + HuSprAttrReset(arg0->unkA, 0, 64); + } } typedef struct work_2C50 { - Bss348Data *unk0; - s32 unk4; - s32 unk8; - s32 *unkC; + Bss348Data *unk0; + s32 unk4; + s32 unk8; + s32 *unkC; } Work2C50; void fn_1_2C50(void) { - HsfTransform *temp_r31; - Work2C50 *temp_r30; - s32 temp_r29; - HsfTransform *temp_r28; - s32 temp_r27; - - float temp_f31; - float temp_f30; - float temp_f29; - temp_r30 = HuPrcCurrentGet()->user_data; - temp_r31 = &temp_r30->unk0->unk6C[temp_r30->unk4]->data.base; - temp_r28 = &temp_r30->unk0->unk10C[temp_r30->unk4]->data.base; - HuAudFXPlay(1401); - if(temp_r30->unk8) { - temp_f30 = temp_r31->rot.z+90.0f; - } else { - temp_f30 = temp_r31->rot.z-90.0f; - } - if(temp_f30 >= 360.0f) { - temp_f30 -= 360.0f; - } - if(temp_f30 < 0.0f) { - temp_f30 += 360.0f; - } - temp_f29 = temp_r31->rot.z; - temp_f31 = 0; - for(temp_r29=0, temp_r27=15; temp_r29unk8) { - temp_r31->rot.z = temp_f29+(100.0*sind(temp_f31)); - } else { - temp_r31->rot.z = temp_f29-(100.0*sind(temp_f31)); - } - temp_r28->rot.z = temp_r31->rot.z; - temp_f31 += 6.0f; - HuPrcVSleep(); - } - temp_f31 = 90.0f; - for(temp_r29=0, temp_r27=3; temp_r29unk8) { - temp_r31->rot.z = temp_f29+(100.0*sind(temp_f31)); - } else { - temp_r31->rot.z = temp_f29-(100.0*sind(temp_f31)); - } - temp_r28->rot.z = temp_r31->rot.z; - HuPrcVSleep(); - } - temp_r31->rot.z = temp_r28->rot.z = temp_f30; - *temp_r30->unkC = 0; - HuPrcKill(HuPrcCurrentGet()); - while(1) { - HuPrcVSleep(); - } + HsfTransform *temp_r31; + Work2C50 *temp_r30; + s32 temp_r29; + HsfTransform *temp_r28; + s32 temp_r27; + + float temp_f31; + float temp_f30; + float temp_f29; + temp_r30 = HuPrcCurrentGet()->user_data; + temp_r31 = &temp_r30->unk0->unk6C[temp_r30->unk4]->data.base; + temp_r28 = &temp_r30->unk0->unk10C[temp_r30->unk4]->data.base; + HuAudFXPlay(1401); + if (temp_r30->unk8) { + temp_f30 = temp_r31->rot.z + 90.0f; + } + else { + temp_f30 = temp_r31->rot.z - 90.0f; + } + if (temp_f30 >= 360.0f) { + temp_f30 -= 360.0f; + } + if (temp_f30 < 0.0f) { + temp_f30 += 360.0f; + } + temp_f29 = temp_r31->rot.z; + temp_f31 = 0; + for (temp_r29 = 0, temp_r27 = 15; temp_r29 < temp_r27; temp_r29++) { + if (temp_r30->unk8) { + temp_r31->rot.z = temp_f29 + (100.0 * sind(temp_f31)); + } + else { + temp_r31->rot.z = temp_f29 - (100.0 * sind(temp_f31)); + } + temp_r28->rot.z = temp_r31->rot.z; + temp_f31 += 6.0f; + HuPrcVSleep(); + } + temp_f31 = 90.0f; + for (temp_r29 = 0, temp_r27 = 3; temp_r29 < temp_r27; temp_r29++) { + temp_f31 -= (25.0f / 3.0f); + if (temp_r30->unk8) { + temp_r31->rot.z = temp_f29 + (100.0 * sind(temp_f31)); + } + else { + temp_r31->rot.z = temp_f29 - (100.0 * sind(temp_f31)); + } + temp_r28->rot.z = temp_r31->rot.z; + HuPrcVSleep(); + } + temp_r31->rot.z = temp_r28->rot.z = temp_f30; + *temp_r30->unkC = 0; + HuPrcKill(HuPrcCurrentGet()); + while (1) { + HuPrcVSleep(); + } } void fn_1_2F08(void) { - Vec *temp_r31 = HuPrcCurrentGet()->user_data; - float temp_f31; - float temp_f30; - HuPrcSleep(frandmod(24)); - temp_f30 = temp_r31->x/100.0f; - temp_f31 = -7.0f; - while(1) { - temp_r31->y -= temp_f31; - if(temp_r31->y < -500.0f) { - break; - } - temp_f31 += 0.5f; - if(temp_f31 > 20.0f) { - temp_f31 = 20.0f; - } - temp_r31->x += temp_f30; - temp_r31->z += 10.0f; - HuPrcVSleep(); - } - HuPrcKill(HuPrcCurrentGet()); - while(1) { - HuPrcVSleep(); - } + Vec *temp_r31 = HuPrcCurrentGet()->user_data; + float temp_f31; + float temp_f30; + HuPrcSleep(frandmod(24)); + temp_f30 = temp_r31->x / 100.0f; + temp_f31 = -7.0f; + while (1) { + temp_r31->y -= temp_f31; + if (temp_r31->y < -500.0f) { + break; + } + temp_f31 += 0.5f; + if (temp_f31 > 20.0f) { + temp_f31 = 20.0f; + } + temp_r31->x += temp_f30; + temp_r31->z += 10.0f; + HuPrcVSleep(); + } + HuPrcKill(HuPrcCurrentGet()); + while (1) { + HuPrcVSleep(); + } } void fn_1_2FEC(Bss348Data *arg0, s32 arg1) { - Vec *temp_r31 = &arg0->unk6C[arg1]->data.base.pos; - if(temp_r31->x > 230.0f) { - temp_r31->x = 230.0f; - } - if(temp_r31->x < -230.0f) { - temp_r31->x = -230.0f; - } - if(temp_r31->y > 170.0f) { - temp_r31->y = 170.0f; - } - if(temp_r31->y < -170.0f) { - temp_r31->y = -170.0f; - } + Vec *temp_r31 = &arg0->unk6C[arg1]->data.base.pos; + if (temp_r31->x > 230.0f) { + temp_r31->x = 230.0f; + } + if (temp_r31->x < -230.0f) { + temp_r31->x = -230.0f; + } + if (temp_r31->y > 170.0f) { + temp_r31->y = 170.0f; + } + if (temp_r31->y < -170.0f) { + temp_r31->y = -170.0f; + } } void fn_1_30B0(s32 arg0, s32 arg1) { - switch(GWPlayerCfg[arg0].diff) { - case 0: - arg1 *= 8; - break; - - case 1: - arg1 *= 4; - break; - - case 2: - arg1 *= 2; - break; - } - if(arg1 <= 1) { - HuPrcVSleep(); - } else { - HuPrcSleep(frandmod(arg1/2)+arg1); - } + switch (GWPlayerCfg[arg0].diff) { + case 0: + arg1 *= 8; + break; + + case 1: + arg1 *= 4; + break; + + case 2: + arg1 *= 2; + break; + } + if (arg1 <= 1) { + HuPrcVSleep(); + } + else { + HuPrcSleep(frandmod(arg1 / 2) + arg1); + } } void fn_1_3154(Bss348Data *arg0, s32 arg1, s32 arg2) { - HsfTransform *temp_r30; - s32 temp_r29; - HsfTransform *temp_r25; - s32 temp_r23; - float temp_f29; - Vec sp24; - Vec sp18; - Vec spC; - arg1 = lbl_1_bss_C04[arg2]; - temp_r30 = &arg0->unk6C[arg1]->data.base; - arg0->unk7F4 = arg0->unk7F5 = 0; - arg0->unk7F7 = arg0->unk7F6 = 0; - arg0->unk7F8 = 0; - switch(GWPlayerCfg[arg0->unk34].diff) { - case 0: - temp_r29 = (arg2*2)+60; - break; - - case 1: - temp_r29 = arg2+80; - break; - - case 2: - temp_r29 = arg2+90; - break; - - default: - temp_r29 = arg2+95; - break; - } - if(temp_r29 > 100) { - temp_r29 = 100; - } - if(arg0->unk804 == -1) { - if(frandmod(100) < temp_r29 || lbl_1_bss_B58 == arg2+1) { - arg0->unk804 = arg1; - } else { - temp_r23 = frandmod(lbl_1_bss_B58-arg2); - arg0->unk804 = lbl_1_bss_C04[arg2+temp_r23]; - } - arg0->unk808 = -1; - if(GWPlayerCfg[arg0->unk34].diff == 2 || GWPlayerCfg[arg0->unk34].diff == 3) { - if(frandmod(100) < temp_r29 || lbl_1_bss_B58 == arg2+1) { - arg0->unk808 = 10; - } - } - fn_1_30B0(arg0->unk34, 10); - } - temp_r25 = &arg0->unk24C[arg0->unk804]; - HuSetVecF(&sp24, temp_r25->pos.x, temp_r25->pos.y, 0.0); - HuSetVecF(&sp18, temp_r30->pos.x, temp_r30->pos.y, 0.0); - HuSubVecF(&spC, &sp24, &sp18); - if(VECMagXY(&spC) >= 40.0f) { - temp_f29 = atan2d(spC.x, spC.y); - arg0->unk7F4 = 50*sind(temp_f29); - arg0->unk7F5 = 50*cosd(temp_f29); - if(arg0->unk808 >= 0 && arg0->unk808-- == 0 && temp_r30->rot.z != 0.0f) { - arg0->unk808 = 10; - if(0.0f == (temp_r30->rot.z-90.0f)) { - arg0->unk7F6 = 50; - } else { - arg0->unk7F7 = 50; - } - } - } else { - fn_1_30B0(arg0->unk34, 1); - if(frandmod(100) < temp_r29 || lbl_1_bss_B58 == arg2+1) { - if(0.0f != temp_r30->rot.z) { - if(0.0f == (temp_r30->rot.z-90.0f)) { - arg0->unk7F6 = 50; - } else { - arg0->unk7F7 = 50; - } - } else { - arg0->unk7F8 = PAD_BUTTON_A; - arg0->unk804 = -1; - } - - } else { - switch(frandmod(3)) { - case 0: - arg0->unk7F6 = 50; - break; - - case 1: - arg0->unk7F6 = 50; - break; - - default: - arg0->unk7F8 = PAD_BUTTON_A; - arg0->unk804 = -1; - break; - } - if(frandmod(100) < temp_r29) { - arg0->unk804 = -1; - } - } - } + HsfTransform *temp_r30; + s32 temp_r29; + HsfTransform *temp_r25; + s32 temp_r23; + float temp_f29; + Vec sp24; + Vec sp18; + Vec spC; + arg1 = lbl_1_bss_C04[arg2]; + temp_r30 = &arg0->unk6C[arg1]->data.base; + arg0->unk7F4 = arg0->unk7F5 = 0; + arg0->unk7F7 = arg0->unk7F6 = 0; + arg0->unk7F8 = 0; + switch (GWPlayerCfg[arg0->unk34].diff) { + case 0: + temp_r29 = (arg2 * 2) + 60; + break; + + case 1: + temp_r29 = arg2 + 80; + break; + + case 2: + temp_r29 = arg2 + 90; + break; + + default: + temp_r29 = arg2 + 95; + break; + } + if (temp_r29 > 100) { + temp_r29 = 100; + } + if (arg0->unk804 == -1) { + if (frandmod(100) < temp_r29 || lbl_1_bss_B58 == arg2 + 1) { + arg0->unk804 = arg1; + } + else { + temp_r23 = frandmod(lbl_1_bss_B58 - arg2); + arg0->unk804 = lbl_1_bss_C04[arg2 + temp_r23]; + } + arg0->unk808 = -1; + if (GWPlayerCfg[arg0->unk34].diff == 2 || GWPlayerCfg[arg0->unk34].diff == 3) { + if (frandmod(100) < temp_r29 || lbl_1_bss_B58 == arg2 + 1) { + arg0->unk808 = 10; + } + } + fn_1_30B0(arg0->unk34, 10); + } + temp_r25 = &arg0->unk24C[arg0->unk804]; + HuSetVecF(&sp24, temp_r25->pos.x, temp_r25->pos.y, 0.0); + HuSetVecF(&sp18, temp_r30->pos.x, temp_r30->pos.y, 0.0); + HuSubVecF(&spC, &sp24, &sp18); + if (VECMagXY(&spC) >= 40.0f) { + temp_f29 = atan2d(spC.x, spC.y); + arg0->unk7F4 = 50 * sind(temp_f29); + arg0->unk7F5 = 50 * cosd(temp_f29); + if (arg0->unk808 >= 0 && arg0->unk808-- == 0 && temp_r30->rot.z != 0.0f) { + arg0->unk808 = 10; + if (0.0f == (temp_r30->rot.z - 90.0f)) { + arg0->unk7F6 = 50; + } + else { + arg0->unk7F7 = 50; + } + } + } + else { + fn_1_30B0(arg0->unk34, 1); + if (frandmod(100) < temp_r29 || lbl_1_bss_B58 == arg2 + 1) { + if (0.0f != temp_r30->rot.z) { + if (0.0f == (temp_r30->rot.z - 90.0f)) { + arg0->unk7F6 = 50; + } + else { + arg0->unk7F7 = 50; + } + } + else { + arg0->unk7F8 = PAD_BUTTON_A; + arg0->unk804 = -1; + } + } + else { + switch (frandmod(3)) { + case 0: + arg0->unk7F6 = 50; + break; + + case 1: + arg0->unk7F6 = 50; + break; + + default: + arg0->unk7F8 = PAD_BUTTON_A; + arg0->unk804 = -1; + break; + } + if (frandmod(100) < temp_r29) { + arg0->unk804 = -1; + } + } + } } void fn_1_37C4(void) { - Bss348Data *temp_r31; - HsfTransform *temp_r30; - s32 temp_r29; - HsfTransform *temp_r28; - s32 temp_r26; - HsfTransform *temp_r25; - Process *temp_r24; - s32 temp_r23; - Vec spCC; - Vec spC0; - Vec spB4; - Work2C50 spA4; - Vec sp98; - Vec sp8C; - Vec sp80; - Vec sp74; - s32 sp70; - s32 sp58; - s32 sp48; - float temp_f27; - float temp_f26; - - - - temp_r31 = HuPrcCurrentGet()->user_data; - temp_r31->unk40 = 0; - for(temp_r29=0; temp_r29unk10C[temp_r29]->data.base; - temp_r30->pos.x = 5000; - temp_r30 = &temp_r31->unk1AC[temp_r29]->data.base; - temp_r30->pos.x = 5000; - } - while(lbl_1_bss_CA8 == 0) { - HuPrcVSleep(); - } - HuPrcSleep(180); - HuAudFXPlay(1391); - for(temp_r29=0; temp_r29unk6C[temp_r29]->data.base; - temp_f26 = atan2d(temp_r30->pos.x, temp_r30->pos.y); - temp_f27 = VECMagXY(&temp_r30->pos); - temp_f27 *= 1.05f; - temp_r30->pos.x = temp_f27*sind(temp_f26); - temp_r30->pos.y = temp_f27*cosd(temp_f26); - } - omVibrate(temp_r31->unk34, 12, 6, 6); - HuPrcSleep(30); - HuAudFXPlay(1387); - for(temp_r29=0; temp_r29unk6C[temp_r29]->data.base; - temp_r24->user_data = temp_r30; - } - HuPrcSleep(120); - lbl_1_bss_CA8 = 2; - for(temp_r29=0; temp_r29unk44 = 0; - temp_r31->unk804 = -1; - temp_r26 = lbl_1_bss_C04[temp_r29]; - temp_r30 = &temp_r31->unk6C[temp_r26]->data.base; - temp_r28 = &temp_r31->unk10C[temp_r26]->data.base; - if(temp_r29 != 0) { - temp_r25 = &temp_r31->unk24C[lbl_1_bss_C04[temp_r29-1]]; - temp_r30->pos.x = temp_r25->pos.x; - temp_r30->pos.y = temp_r25->pos.y; - temp_r28->pos.x = 20+temp_r30->pos.x; - temp_r28->pos.y = -20+temp_r30->pos.y; - } else { - temp_r30->pos.x = temp_r30->pos.y = 0; - temp_r28->pos.x = 20+temp_r30->pos.x; - temp_r28->pos.y = -20+temp_r30->pos.y; - sp98.x = temp_r30->pos.x+30; - sp98.z = 50; - sp98.y = -30+temp_r30->pos.y; - Hu3D3Dto2D(&sp98, (1 << temp_r31->unk38), &sp8C); - HuSprGrpPosSet(temp_r31->unkA, sp8C.x, sp8C.y); - HuSprAttrReset(temp_r31->unkA, 0, HUSPR_ATTR_DISPOFF); - } - temp_r30->pos.z = 50; - temp_r28->pos.z = temp_r30->pos.z-5; - temp_r30->rot.z = temp_r28->rot.z = 90.0f*lbl_1_bss_B64[temp_r29]; - fn_1_2A34(temp_r31, temp_r26, temp_r29); - if(temp_r29 == 0) { - while(lbl_1_bss_CA8 != 3) { - HuPrcVSleep(); - } - } - while(1) { - if(GWPlayerCfg[temp_r31->unk34].iscom == 1) { - fn_1_3154(temp_r31, temp_r26, temp_r29); - } - if(!sp70) { - temp_r23 = -1; - if(fn_1_21B4_inline(temp_r31->unk34, 0) > 20) { - temp_r23 = 1; - } - if(fn_1_21B4_inline(temp_r31->unk34, 1) > 20) { - temp_r23 = 0; - } - if(temp_r23 != -1) { - sp70 = 1; - temp_r24 = HuPrcChildCreate(fn_1_2C50, 8192, 8192, 0, HuPrcCurrentGet()); - temp_r24->user_data = &spA4; - spA4.unk0 = temp_r31; - spA4.unk4 = temp_r26; - spA4.unk8 = temp_r23; - spA4.unkC = &sp70; - } - } - if((fn_1_2274(temp_r31->unk34) & PAD_BUTTON_A) && !sp70) { - if(0.0f == temp_r30->rot.z) { - temp_r25 = &temp_r31->unk24C[temp_r26]; - HuSetVecF(&spCC, temp_r25->pos.x, temp_r25->pos.y, 0.0f); - HuSetVecF(&spC0, temp_r30->pos.x, temp_r30->pos.y, 0.0f); - HuSubVecF(&spB4, &spCC, &spC0); - if(VECMagXY(&spB4) < 40.0f) { - HuAudFXPlay(1402); - temp_r31->unk44 = 1; - temp_r31->unk48[7] = temp_r30->pos.x; - temp_r31->unk48[8] = temp_r30->pos.y; - fn_1_22E0(temp_r31, temp_r26); - goto end; - } - } - fn_1_263C(temp_r31, temp_r26); - } - temp_r31->unk48[6] = -1.0f; - if(ABS_INV(fn_1_20FC_inline(temp_r31->unk34, 0)) > 20 || ABS_INV(fn_1_20FC_inline(temp_r31->unk34,1)) > 20) { - temp_r31->unk48[6] = atan2d(fn_1_20FC_inline(temp_r31->unk34, 0), fn_1_20FC_inline(temp_r31->unk34, 1)); - } - if(-1.0f != temp_r31->unk48[6]) { - temp_r30->pos.x += 5.0f*sind(temp_r31->unk48[6]); - temp_r30->pos.y += 5.0f*cosd(temp_r31->unk48[6]); - fn_1_2FEC(temp_r31, temp_r26); - temp_r28->pos.x = 20.0f+temp_r30->pos.x; - temp_r28->pos.y = -20.0f+temp_r30->pos.y; - sp80.x = 30.0f+temp_r30->pos.x; - sp80.z = 50; - sp80.y = -30.0f+temp_r30->pos.y; - Hu3D3Dto2D(&sp80, (1 << temp_r31->unk38), &sp74); - HuSprGrpPosSet(temp_r31->unkA, sp74.x, sp74.y); - } - HuPrcVSleep(); - } - - end: - (void)temp_r31; - } - temp_r31->unk40 = 4; - //Hacks to Stop Spilling - (void)temp_r26; - (void)temp_r26; - (void)temp_r24; - (void)temp_r24; - (void)temp_r24; - (void)temp_r23; - (void)temp_r23; - (void)temp_r23; - (void)temp_r23; - while(1) { - HuPrcVSleep(); - } + Bss348Data *temp_r31; + HsfTransform *temp_r30; + s32 temp_r29; + HsfTransform *temp_r28; + s32 temp_r26; + HsfTransform *temp_r25; + Process *temp_r24; + s32 temp_r23; + Vec spCC; + Vec spC0; + Vec spB4; + Work2C50 spA4; + Vec sp98; + Vec sp8C; + Vec sp80; + Vec sp74; + s32 sp70; + s32 sp58; + s32 sp48; + float temp_f27; + float temp_f26; + + temp_r31 = HuPrcCurrentGet()->user_data; + temp_r31->unk40 = 0; + for (temp_r29 = 0; temp_r29 < lbl_1_bss_B58; temp_r29++) { + temp_r30 = &temp_r31->unk10C[temp_r29]->data.base; + temp_r30->pos.x = 5000; + temp_r30 = &temp_r31->unk1AC[temp_r29]->data.base; + temp_r30->pos.x = 5000; + } + while (lbl_1_bss_CA8 == 0) { + HuPrcVSleep(); + } + HuPrcSleep(180); + HuAudFXPlay(1391); + for (temp_r29 = 0; temp_r29 < lbl_1_bss_B58; temp_r29++) { + temp_r30 = &temp_r31->unk6C[temp_r29]->data.base; + temp_f26 = atan2d(temp_r30->pos.x, temp_r30->pos.y); + temp_f27 = VECMagXY(&temp_r30->pos); + temp_f27 *= 1.05f; + temp_r30->pos.x = temp_f27 * sind(temp_f26); + temp_r30->pos.y = temp_f27 * cosd(temp_f26); + } + omVibrate(temp_r31->unk34, 12, 6, 6); + HuPrcSleep(30); + HuAudFXPlay(1387); + for (temp_r29 = 0; temp_r29 < lbl_1_bss_B58; temp_r29++) { + temp_r24 = HuPrcChildCreate(fn_1_2F08, 8192, 4096, 0, HuPrcCurrentGet()); + temp_r30 = &temp_r31->unk6C[temp_r29]->data.base; + temp_r24->user_data = temp_r30; + } + HuPrcSleep(120); + lbl_1_bss_CA8 = 2; + for (temp_r29 = 0; temp_r29 < lbl_1_bss_B58; temp_r29++) { + sp70 = 0; + temp_r31->unk44 = 0; + temp_r31->unk804 = -1; + temp_r26 = lbl_1_bss_C04[temp_r29]; + temp_r30 = &temp_r31->unk6C[temp_r26]->data.base; + temp_r28 = &temp_r31->unk10C[temp_r26]->data.base; + if (temp_r29 != 0) { + temp_r25 = &temp_r31->unk24C[lbl_1_bss_C04[temp_r29 - 1]]; + temp_r30->pos.x = temp_r25->pos.x; + temp_r30->pos.y = temp_r25->pos.y; + temp_r28->pos.x = 20 + temp_r30->pos.x; + temp_r28->pos.y = -20 + temp_r30->pos.y; + } + else { + temp_r30->pos.x = temp_r30->pos.y = 0; + temp_r28->pos.x = 20 + temp_r30->pos.x; + temp_r28->pos.y = -20 + temp_r30->pos.y; + sp98.x = temp_r30->pos.x + 30; + sp98.z = 50; + sp98.y = -30 + temp_r30->pos.y; + Hu3D3Dto2D(&sp98, (1 << temp_r31->unk38), &sp8C); + HuSprGrpPosSet(temp_r31->unkA, sp8C.x, sp8C.y); + HuSprAttrReset(temp_r31->unkA, 0, HUSPR_ATTR_DISPOFF); + } + temp_r30->pos.z = 50; + temp_r28->pos.z = temp_r30->pos.z - 5; + temp_r30->rot.z = temp_r28->rot.z = 90.0f * lbl_1_bss_B64[temp_r29]; + fn_1_2A34(temp_r31, temp_r26, temp_r29); + if (temp_r29 == 0) { + while (lbl_1_bss_CA8 != 3) { + HuPrcVSleep(); + } + } + while (1) { + if (GWPlayerCfg[temp_r31->unk34].iscom == 1) { + fn_1_3154(temp_r31, temp_r26, temp_r29); + } + if (!sp70) { + temp_r23 = -1; + if (fn_1_21B4_inline(temp_r31->unk34, 0) > 20) { + temp_r23 = 1; + } + if (fn_1_21B4_inline(temp_r31->unk34, 1) > 20) { + temp_r23 = 0; + } + if (temp_r23 != -1) { + sp70 = 1; + temp_r24 = HuPrcChildCreate(fn_1_2C50, 8192, 8192, 0, HuPrcCurrentGet()); + temp_r24->user_data = &spA4; + spA4.unk0 = temp_r31; + spA4.unk4 = temp_r26; + spA4.unk8 = temp_r23; + spA4.unkC = &sp70; + } + } + if ((fn_1_2274(temp_r31->unk34) & PAD_BUTTON_A) && !sp70) { + if (0.0f == temp_r30->rot.z) { + temp_r25 = &temp_r31->unk24C[temp_r26]; + HuSetVecF(&spCC, temp_r25->pos.x, temp_r25->pos.y, 0.0f); + HuSetVecF(&spC0, temp_r30->pos.x, temp_r30->pos.y, 0.0f); + HuSubVecF(&spB4, &spCC, &spC0); + if (VECMagXY(&spB4) < 40.0f) { + HuAudFXPlay(1402); + temp_r31->unk44 = 1; + temp_r31->unk48[7] = temp_r30->pos.x; + temp_r31->unk48[8] = temp_r30->pos.y; + fn_1_22E0(temp_r31, temp_r26); + goto end; + } + } + fn_1_263C(temp_r31, temp_r26); + } + temp_r31->unk48[6] = -1.0f; + if (ABS_INV(fn_1_20FC_inline(temp_r31->unk34, 0)) > 20 || ABS_INV(fn_1_20FC_inline(temp_r31->unk34, 1)) > 20) { + temp_r31->unk48[6] = atan2d(fn_1_20FC_inline(temp_r31->unk34, 0), fn_1_20FC_inline(temp_r31->unk34, 1)); + } + if (-1.0f != temp_r31->unk48[6]) { + temp_r30->pos.x += 5.0f * sind(temp_r31->unk48[6]); + temp_r30->pos.y += 5.0f * cosd(temp_r31->unk48[6]); + fn_1_2FEC(temp_r31, temp_r26); + temp_r28->pos.x = 20.0f + temp_r30->pos.x; + temp_r28->pos.y = -20.0f + temp_r30->pos.y; + sp80.x = 30.0f + temp_r30->pos.x; + sp80.z = 50; + sp80.y = -30.0f + temp_r30->pos.y; + Hu3D3Dto2D(&sp80, (1 << temp_r31->unk38), &sp74); + HuSprGrpPosSet(temp_r31->unkA, sp74.x, sp74.y); + } + HuPrcVSleep(); + } + + end: + (void)temp_r31; + } + temp_r31->unk40 = 4; + // Hacks to Stop Spilling + (void)temp_r26; + (void)temp_r26; + (void)temp_r24; + (void)temp_r24; + (void)temp_r24; + (void)temp_r23; + (void)temp_r23; + (void)temp_r23; + (void)temp_r23; + while (1) { + HuPrcVSleep(); + } } void fn_1_4768(s32 arg0) { - float temp_f31; - s32 temp_r31; - s32 temp_r30; - Bss348Data *spC = &lbl_1_bss_348[arg0]; - Bss348Data *temp_r29; - - for(temp_r31=0, temp_f31=1; temp_r31<15; temp_r31++) { - temp_f31 -= (1.0f/15.0f); - for(temp_r30=0; temp_r30<1; temp_r30++) { - temp_r29 = &lbl_1_bss_348[temp_r30]; - HuSprGrpScaleSet(temp_r29->unkA, temp_f31, temp_f31); - } - HuPrcVSleep(); - } - for(temp_r31=0; temp_r31<1; temp_r31++) { - HuSprAttrSet(lbl_1_bss_348[temp_r31].unkA, 0, HUSPR_ATTR_DISPOFF); - } + float temp_f31; + s32 temp_r31; + s32 temp_r30; + Bss348Data *spC = &lbl_1_bss_348[arg0]; + Bss348Data *temp_r29; + + for (temp_r31 = 0, temp_f31 = 1; temp_r31 < 15; temp_r31++) { + temp_f31 -= (1.0f / 15.0f); + for (temp_r30 = 0; temp_r30 < 1; temp_r30++) { + temp_r29 = &lbl_1_bss_348[temp_r30]; + HuSprGrpScaleSet(temp_r29->unkA, temp_f31, temp_f31); + } + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 < 1; temp_r31++) { + HuSprAttrSet(lbl_1_bss_348[temp_r31].unkA, 0, HUSPR_ATTR_DISPOFF); + } } void fn_1_4864(void) { - while(1) { - if(omSysExitReq == 1) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - HuAudFadeOut(1000); - HuPrcSleep(60); - MGSeqKillAll(); - omOvlReturnEx(1, 1); - while(1) { - HuPrcVSleep(); - } - } - HuPrcVSleep(); - } + while (1) { + if (omSysExitReq == 1) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudFadeOut(1000); + HuPrcSleep(60); + MGSeqKillAll(); + omOvlReturnEx(1, 1); + while (1) { + HuPrcVSleep(); + } + } + HuPrcVSleep(); + } } void fn_1_48C4(void) { - u32 temp_r31; - s32 temp_r30; - s32 temp_r29; - s16 temp_r21; - s32 sp14; - s32 sp10; - - lbl_1_bss_CA8 = 0; - temp_r31 = 0; - lbl_1_bss_CA8 = 1; - while(lbl_1_bss_CA8 == 1) { - HuPrcVSleep(); - } - sp10 = HuAudSeqPlay(69); - temp_r21 = MGSeqStartCreate(); - while(MGSeqStatGet(temp_r21)) { - HuPrcVSleep(); - } - lbl_1_bss_CA8 = 3; - while(1) { - for(temp_r30=0, sp14=0; temp_r30<1; temp_r30++) { - if(lbl_1_bss_348[temp_r30].unk40 == 4) { - temp_r29 = temp_r30; - sp14++; - } - } - if(sp14 != 0) { - break; - } - temp_r31++; - fn_1_918(lbl_1_bss_CAE, 2, temp_r31, 1); - if(temp_r31 >= 35999) { - temp_r29 = -1; - break; - } - HuPrcVSleep(); - } - if(temp_r29 == -1) { - fn_1_918(lbl_1_bss_CAE, 2, 0, 2); - } - HuAudSeqFadeOut(sp10, 100); - for(temp_r30=0; temp_r30<1; temp_r30++) { - HuPrcKill(lbl_1_bss_4[temp_r30]); - } - temp_r21 = MGSeqFinishCreate(); - while(MGSeqStatGet(temp_r21)) { - HuPrcVSleep(); - } - if(temp_r29 == -1 || temp_r31 >= GWMGRecordGet(lbl_1_data_6C8[lbl_1_bss_B5C])) { - if(temp_r29 != -1) { - HuAudSStreamPlay(1); - } else { - HuAudSStreamPlay(4); - } - } - if(temp_r29 != -1) { - lbl_1_bss_CA8 = 4; - lbl_1_bss_CA4 = temp_r29; - fn_1_4768(temp_r29); - } - mgRecordExtra = temp_r31; - if(temp_r29 != -1) { - if(lbl_1_data_74C[lbl_1_bss_B5C] >= temp_r31) { - GWGameStat.present[lbl_1_data_758[lbl_1_bss_B5C]] = 1; - OSReport("time %d no %d\n", lbl_1_data_74C[lbl_1_bss_B5C], lbl_1_data_758[lbl_1_bss_B5C]); - } - if(temp_r31 < GWMGRecordGet(lbl_1_data_6C8[lbl_1_bss_B5C])) { - GWMGRecordSet(lbl_1_data_6C8[lbl_1_bss_B5C], temp_r31); - temp_r21 = MGSeqRecordCreate(temp_r31); - HuPrcChildCreate(fn_1_858, 4096, 4096, 0, HuPrcCurrentGet()); - fn_1_918(lbl_1_bss_CAE, 2, temp_r31, 0); - while(MGSeqStatGet(temp_r21)) { - HuPrcVSleep(); - } - HuAudSStreamPlay(1); - } - HuPrcSleep(180); - } else { - mgRecordExtra = 36000; - HuPrcSleep(210); - } - HuPrcSleep(30); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - HuPrcSleep(60); - HuAudFadeOut(1); - MGSeqKillAll(); - omOvlReturnEx(1, 1); - while(1) { - HuPrcVSleep(); - } + u32 temp_r31; + s32 temp_r30; + s32 temp_r29; + s16 temp_r21; + s32 sp14; + s32 sp10; + + lbl_1_bss_CA8 = 0; + temp_r31 = 0; + lbl_1_bss_CA8 = 1; + while (lbl_1_bss_CA8 == 1) { + HuPrcVSleep(); + } + sp10 = HuAudSeqPlay(69); + temp_r21 = MGSeqStartCreate(); + while (MGSeqStatGet(temp_r21)) { + HuPrcVSleep(); + } + lbl_1_bss_CA8 = 3; + while (1) { + for (temp_r30 = 0, sp14 = 0; temp_r30 < 1; temp_r30++) { + if (lbl_1_bss_348[temp_r30].unk40 == 4) { + temp_r29 = temp_r30; + sp14++; + } + } + if (sp14 != 0) { + break; + } + temp_r31++; + fn_1_918(lbl_1_bss_CAE, 2, temp_r31, 1); + if (temp_r31 >= 35999) { + temp_r29 = -1; + break; + } + HuPrcVSleep(); + } + if (temp_r29 == -1) { + fn_1_918(lbl_1_bss_CAE, 2, 0, 2); + } + HuAudSeqFadeOut(sp10, 100); + for (temp_r30 = 0; temp_r30 < 1; temp_r30++) { + HuPrcKill(lbl_1_bss_4[temp_r30]); + } + temp_r21 = MGSeqFinishCreate(); + while (MGSeqStatGet(temp_r21)) { + HuPrcVSleep(); + } + if (temp_r29 == -1 || temp_r31 >= GWMGRecordGet(lbl_1_data_6C8[lbl_1_bss_B5C])) { + if (temp_r29 != -1) { + HuAudSStreamPlay(1); + } + else { + HuAudSStreamPlay(4); + } + } + if (temp_r29 != -1) { + lbl_1_bss_CA8 = 4; + lbl_1_bss_CA4 = temp_r29; + fn_1_4768(temp_r29); + } + mgRecordExtra = temp_r31; + if (temp_r29 != -1) { + if (lbl_1_data_74C[lbl_1_bss_B5C] >= temp_r31) { + GWGameStat.present[lbl_1_data_758[lbl_1_bss_B5C]] = 1; + OSReport("time %d no %d\n", lbl_1_data_74C[lbl_1_bss_B5C], lbl_1_data_758[lbl_1_bss_B5C]); + } + if (temp_r31 < GWMGRecordGet(lbl_1_data_6C8[lbl_1_bss_B5C])) { + GWMGRecordSet(lbl_1_data_6C8[lbl_1_bss_B5C], temp_r31); + temp_r21 = MGSeqRecordCreate(temp_r31); + HuPrcChildCreate(fn_1_858, 4096, 4096, 0, HuPrcCurrentGet()); + fn_1_918(lbl_1_bss_CAE, 2, temp_r31, 0); + while (MGSeqStatGet(temp_r21)) { + HuPrcVSleep(); + } + HuAudSStreamPlay(1); + } + HuPrcSleep(180); + } + else { + mgRecordExtra = 36000; + HuPrcSleep(210); + } + HuPrcSleep(30); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuPrcSleep(60); + HuAudFadeOut(1); + MGSeqKillAll(); + omOvlReturnEx(1, 1); + while (1) { + HuPrcVSleep(); + } } diff --git a/src/REL/mgmodedll/datalist.c b/src/REL/mgmodedll/datalist.c index 8afb7b0a..947f1677 100644 --- a/src/REL/mgmodedll/datalist.c +++ b/src/REL/mgmodedll/datalist.c @@ -1,52 +1,52 @@ #include "REL/mgmodedll.h" DataListModel lbl_1_data_490[] = { - { 0x620000, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620001, 0x40000001, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620002, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620003, 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620004, 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x62005E, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x62005F, 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620060, 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620061, 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620005, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620006, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620007, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x620008, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x00), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x01), 0x40000001, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x02), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x03), 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x04), 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x5E), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x5F), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x60), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x61), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x05), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x06), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x07), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x08), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, }; DataListSprite lbl_1_data_768[] = { - { 0x62000C, 0, 10, 288, -200, { 255, 255, 255, 255 } }, - { 0x620009, 0, 10, 288, -200, { 255, 255, 255, 255 } }, - { 0x62000A, 0, 10, 288, -200, { 255, 255, 255, 255 } }, - { 0x62000D, 4, 100, 288, 240, { 255, 255, 255, 255 } }, - { 0x620018, 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { 0x62001A, 4, 20, 288, 240, { 255, 255, 255, 255 } }, - { 0x62001B, 4, 30, 288, 240, { 255, 255, 255, 255 } }, - { 0x62001C, 4, 40, 288, 240, { 255, 255, 255, 255 } }, - { 0x62001D, 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { 0x62001E, 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { 0x62001F, 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { 0x620020, 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { 0x620021, 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { 0x620025, 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { 0x62000E, 4, 210, 288, 240, { 255, 255, 255, 255 } }, - { 0x62000F, 4, 210, 288, 240, { 255, 255, 255, 255 } }, - { 0x620019, 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { 0x620028, 4, 10, 288, 240, { 255, 255, 255, 255 } }, - { 0x620028, 4, 10, 288, 240, { 255, 255, 255, 255 } }, - { 0x62002A, 4, 10, 288, 240, { 255, 255, 255, 255 } }, - { 0x62002E, 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { 0x62002F, 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { 0x620032, 4, 5, 288, 240, { 255, 255, 255, 255 } }, - { 0x620031, 4, 4, 288, 240, { 255, 255, 255, 255 } }, - { 0x620030, 4, 4, 288, 240, { 255, 255, 255, 255 } }, - { 0x620029, 4, 4, 288, 240, { 255, 255, 255, 255 } }, - { 0x620029, 4, 4, 288, 240, { 255, 255, 255, 255 } }, - { 0x620033, 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { 0x620034, 4, 50, 288, 256, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0C), 0, 10, 288, -200, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x09), 0, 10, 288, -200, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0A), 0, 10, 288, -200, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0D), 4, 100, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x18), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1A), 4, 20, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1B), 4, 30, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1C), 4, 40, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1D), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1E), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1F), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x20), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x21), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x25), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0E), 4, 210, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0F), 4, 210, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x19), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x28), 4, 10, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x28), 4, 10, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2A), 4, 10, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2E), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2F), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x32), 4, 5, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x31), 4, 4, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x30), 4, 4, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x29), 4, 4, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x29), 4, 4, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x33), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x34), 4, 50, 288, 256, { 255, 255, 255, 255 } }, { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, }; @@ -128,4 +128,4 @@ void fn_1_26BB0(void) espKill(lbl_1_bss_2C2C[i]); } } -} \ No newline at end of file +} diff --git a/src/REL/mgmodedll/free_play.c b/src/REL/mgmodedll/free_play.c index 7e4e5266..7d314df5 100644 --- a/src/REL/mgmodedll/free_play.c +++ b/src/REL/mgmodedll/free_play.c @@ -1,11 +1,11 @@ #include "REL/mgmodedll.h" #include "game/gamework.h" -#include "game/gamework_data.h" -#include "game/esprite.h" #include "game/audio.h" -#include "game/wipe.h" +#include "game/esprite.h" +#include "game/gamework_data.h" #include "game/saveload.h" +#include "game/wipe.h" #include "ext_math.h" @@ -29,25 +29,15 @@ static s16 pad_05_000002E0_bss; s16 lbl_1_data_A0 = -1; -s16 lbl_1_data_A2[7] = { - 0, - 1, - 2, - 4, - 3, - 6, - 9 -}; +s16 lbl_1_data_A2[7] = { 0, 1, 2, 4, 3, 6, 9 }; -float lbl_1_data_B0[4] = { - 370, 412, 488, 530 -}; +float lbl_1_data_B0[4] = { 370, 412, 488, 530 }; s32 lbl_1_data_C0[4] = { - 0x00620037, - 0x0062003D, - 0x0062003A, - 0x00620040 + DATA_MAKE_NUM(DATADIR_MGMODE, 0x37), + DATA_MAKE_NUM(DATADIR_MGMODE, 0x3D), + DATA_MAKE_NUM(DATADIR_MGMODE, 0x3A), + DATA_MAKE_NUM(DATADIR_MGMODE, 0x40), }; void fn_1_9E44(void); @@ -70,1180 +60,1229 @@ s32 fn_1_C0C8(s32 arg0); s32 fn_1_6D28(void) { - s16 temp_r31; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - s32 temp_r26; - s32 temp_r25; - s32 temp_r24; - s16 temp_r23; - s16 spC[6]; - s16 spA; - s16 sp8; - float temp_f31; - temp_r25 = 1; - fn_1_279FC(0); - fn_1_A6A8(); - fn_1_9E44(); - spA = sp8 = 0; - mgInstExitEnableF = 1; - mgTypeCurr = 0; - _SetFlag(11); - fn_1_B770(); - if(lbl_1_bss_2A6 != 2) { - temp_r28 = lbl_1_bss_2C2C[1]; - } else { - temp_r28 = lbl_1_bss_2C2C[2]; - } - if(lbl_1_bss_4 == 1 || lbl_1_bss_4 == 2) { - mgTypeCurr = fn_1_B5A8(&spA, &sp8); - espAttrReset(lbl_1_bss_2C2C[3], HUSPR_ATTR_DISPOFF); - espTPLvlSet(lbl_1_bss_2C2C[3], 1.0f); - espAttrReset(temp_r28, HUSPR_ATTR_DISPOFF); - espPosSet(temp_r28, 288, 70); - espAttrReset(lbl_1_bss_2C2C[13], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[13], 450, 216); - if(lbl_1_bss_2A6 == 0) { - espAttrReset(lbl_1_bss_2C2C[4], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[4], 450, 404); - if(lbl_1_bss_4 == 1) { - fn_1_BFA0(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8]); - espAttrReset(lbl_1_bss_2C2C[14], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[14], 450, 348); - for(temp_r30=0; temp_r30<4; temp_r30++) { - HuSprAttrReset(lbl_1_bss_34A[temp_r30], 0, HUSPR_ATTR_DISPOFF); - HuSprAttrReset(lbl_1_bss_34A[temp_r30], 1, HUSPR_ATTR_DISPOFF); - HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], (temp_r30*50)+375, 348); - } - } else { - espAttrReset(lbl_1_bss_2C2C[15], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[15], 450, 348); - espAttrReset(lbl_1_bss_2C2C[16], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[16], 450, 348); - for(temp_r30=0; temp_r30<4; temp_r30++) { - HuSprAttrReset(lbl_1_bss_34A[temp_r30], 0, HUSPR_ATTR_DISPOFF); - HuSprAttrReset(lbl_1_bss_34A[temp_r30], 1, HUSPR_ATTR_DISPOFF); - HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], lbl_1_data_B0[temp_r30], 348); - } - } - } else if(lbl_1_bss_2A6 == 1) { - espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[20], 450, 414); - } else if(lbl_1_bss_2A6 == 2) { - espAttrReset(lbl_1_bss_2C2C[21], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[21], 450, 400); - } - for(temp_r30=0; temp_r30= ((lbl_1_bss_316-temp_r30)-1)*10 && temp_r31 <= (((lbl_1_bss_316-temp_r30)-1)*10)+10) { - temp_f31 = (temp_r31-(((lbl_1_bss_316-temp_r30)-1)*10))/10.0; - if(0.0 == temp_f31) { - temp_r26++; - fn_1_9F64(temp_r26 & 0x1, lbl_1_bss_318[temp_r30][0], 0); - } - espAttrReset(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], 180, 800+(-530*sind(temp_f31*90.0f))); - espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], (temp_r30*10)+10); - fn_1_A364(temp_r26 & 0x1, 180, 800+(-530*sind(temp_f31*90.0f)), (temp_r30*10)+8); - } - } - HuPrcVSleep(); - } - fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][0], 10, 450, 216); - } - espAttrReset(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[19], 204, (sp8*38)+154); - espPriSet(lbl_1_bss_2C2C[19], 7); - espTPLvlSet(lbl_1_bss_2C2C[19], 0.7); - espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[17], 204, 126); - espPriSet(lbl_1_bss_2C2C[17], 8); - espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[18], 204, 410); - espPriSet(lbl_1_bss_2C2C[18], 8); - espBankSet(lbl_1_bss_2C2C[18], 1); - fn_1_A364(0, 180, 270, 7); - fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); - fn_1_A364(1, 180, 270, 100); - fn_1_ACAC(lbl_1_bss_20AC[lbl_1_bss_318[mgTypeCurr][0]], lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]); - fn_1_ADA0(1); - HuPrcSleep(10); - while(WipeStatGet()) { - HuPrcVSleep(); - } - while(1) { - HuPrcVSleep(); - if(spA != 0) { - espAttrReset(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); - } else { - espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); - } - if(spA+7 < lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]) { - espAttrReset(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); - } else { - espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); - } - temp_r27 = temp_r29 = 0; - if(HuPadDStkRep[0] & PAD_BUTTON_UP) { - temp_r29 = -1; - } else if(HuPadDStkRep[0] & PAD_BUTTON_DOWN) { - temp_r29 = 1; - } else if((HuPadDStkRep[0] & PAD_BUTTON_LEFT) || (HuPadBtnRep[0] & PAD_BUTTON_TRIGGER_L)) { - temp_r27 = -1; - } else if((HuPadDStkRep[0] & PAD_BUTTON_RIGHT) || (HuPadBtnRep[0] & PAD_BUTTON_TRIGGER_R)) { - temp_r27 = 1; - } - if(temp_r29 != 0) { - if(sp8+temp_r29 < 0 && spA != 0) { - spA--; - fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8], 5, 450, 216); - for(temp_r31=0; temp_r31<=4; temp_r31++) { - espPosSet(lbl_1_bss_2C2C[17], 204, 126-(8.0*sind(temp_r31*45.0))); - if(temp_r31 == 2){ - HuAudFXPlay(772); - fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); - } - HuPrcVSleep(); - } - } else if(sp8+temp_r29 >= 7 && spA+7 < lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]) { - spA++; - fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8], 5, 450, 216); - for(temp_r31=0; temp_r31<=4; temp_r31++) { - espPosSet(lbl_1_bss_2C2C[18], 204, 410+(8.0*sind(temp_r31*45.0))); - if(temp_r31 == 2){ - HuAudFXPlay(772); - fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); - } - HuPrcVSleep(); - } - } else if(sp8+temp_r29 >= 0 && (spA+sp8+temp_r29) < lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]) { - fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8+temp_r29], 5, 450, 216); - for(temp_r31=0; temp_r31<=4; temp_r31++) { - espPosSet(lbl_1_bss_2C2C[19], 204, ((sp8*38)+154)+(temp_r29*(38.0*sind(22.5*temp_r31)))); - HuPrcVSleep(); - if(temp_r31 == 2){ - HuAudFXPlay(772); - } - - } - sp8 += temp_r29; - } - if(lbl_1_bss_2A4 == 0) { - fn_1_BFA0(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8]); - } - } - if(temp_r27 && lbl_1_bss_316 > 1) { - HuAudFXPlay(2172); - fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); - temp_r30 = mgTypeCurr; - if(mgTypeCurr+temp_r27 < 0) { - mgTypeCurr = lbl_1_bss_316-1; - } else { - if(mgTypeCurr+temp_r27 >= lbl_1_bss_316) { - mgTypeCurr = 0; - } else { - mgTypeCurr += temp_r27; - } - } - espAttrSet(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); - espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); - espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); - fn_1_ADA0(0); - for(temp_r31=0; temp_r31= 10) { - temp_r24 = 7; - } else { - temp_r24 = 20; - } - fn_1_A364(0, (300.0*sind(temp_r31*9.0))+180.0, 270, temp_r24); - HuPrcVSleep(); - } - fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], 0); - espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[mgTypeCurr][1]], 10); - fn_1_A364(0, 180.0, 270, 7); - espAttrReset(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[19], 204, 154); - fn_1_ACAC(lbl_1_bss_20AC[lbl_1_bss_318[mgTypeCurr][0]], lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]); - if(lbl_1_bss_318[mgTypeCurr][0] != 9) { - fn_1_ADA0(1); - } - sp8 = spA = 0; - if(lbl_1_bss_2A4 == 0) { - fn_1_BFA0(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8]); - } - } - if((HuPadBtnDown[0] & PAD_BUTTON_A) && lbl_1_bss_2A6 == 2) { - temp_r31 = lbl_1_bss_318[mgTypeCurr][0]; - if(!GWMGAvailGet(lbl_1_bss_264C[temp_r31][spA+sp8]+401)) { - HuAudFXPlay(4); - continue; - } else { - if(lbl_1_bss_318[mgTypeCurr][0] != 9) { - HuAudFXPlay(2); - temp_r31 = lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8]+401; - if(!GWMGCustomGet(temp_r31)) { - GWMGCustomSet(temp_r31); - } else { - GWMGCustomReset(temp_r31); - } - fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); - fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8], 0, 450, 216); - fn_1_B9B8(); - } else { - if(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8] >= 0) { - HuAudFXPlay(2); - temp_r31 = lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8]+401; - GWMGCustomReset(temp_r31); - fn_1_B9B8(); - if(lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]] <= spA+sp8) { - if(--sp8 < 0) { - sp8 = 0; - spA--; - } - espPosSet(lbl_1_bss_2C2C[19], 204, (sp8*38)+154); - } - fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); - fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA+sp8], 0, 450, 216); - } - } - } - } - if(HuPadBtnDown[0] & PAD_BUTTON_B) { - HuAudFXPlay(3); - if(lbl_1_bss_2A6 == 2 && !fn_1_BB24()) { - continue; - } - temp_r25 = 0; + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s32 temp_r26; + s32 temp_r25; + s32 temp_r24; + s16 temp_r23; + s16 spC[6]; + s16 spA; + s16 sp8; + float temp_f31; + temp_r25 = 1; + fn_1_279FC(0); + fn_1_A6A8(); + fn_1_9E44(); + spA = sp8 = 0; + mgInstExitEnableF = 1; + mgTypeCurr = 0; + _SetFlag(11); + fn_1_B770(); + if (lbl_1_bss_2A6 != 2) { + temp_r28 = lbl_1_bss_2C2C[1]; + } + else { + temp_r28 = lbl_1_bss_2C2C[2]; + } + if (lbl_1_bss_4 == 1 || lbl_1_bss_4 == 2) { + mgTypeCurr = fn_1_B5A8(&spA, &sp8); + espAttrReset(lbl_1_bss_2C2C[3], HUSPR_ATTR_DISPOFF); + espTPLvlSet(lbl_1_bss_2C2C[3], 1.0f); + espAttrReset(temp_r28, HUSPR_ATTR_DISPOFF); + espPosSet(temp_r28, 288, 70); + espAttrReset(lbl_1_bss_2C2C[13], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[13], 450, 216); + if (lbl_1_bss_2A6 == 0) { + espAttrReset(lbl_1_bss_2C2C[4], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[4], 450, 404); + if (lbl_1_bss_4 == 1) { + fn_1_BFA0(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8]); + espAttrReset(lbl_1_bss_2C2C[14], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[14], 450, 348); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 1, HUSPR_ATTR_DISPOFF); + HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], (temp_r30 * 50) + 375, 348); + } + } + else { + espAttrReset(lbl_1_bss_2C2C[15], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[15], 450, 348); + espAttrReset(lbl_1_bss_2C2C[16], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[16], 450, 348); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 1, HUSPR_ATTR_DISPOFF); + HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], lbl_1_data_B0[temp_r30], 348); + } + } + } + else if (lbl_1_bss_2A6 == 1) { + espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[20], 450, 414); + } + else if (lbl_1_bss_2A6 == 2) { + espAttrReset(lbl_1_bss_2C2C[21], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[21], 450, 400); + } + for (temp_r30 = 0; temp_r30 < lbl_1_bss_316; temp_r30++) { + espAttrReset(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], 180, 270); + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], (temp_r30 * 10) + 20); + } + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[mgTypeCurr][1]], 19); + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], 0); + fn_1_A364(0, 180, 270, 19); + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8], 0, 450, 216); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + } + else { + espAttrReset(lbl_1_bss_2C2C[3], HUSPR_ATTR_DISPOFF); + espTPLvlSet(lbl_1_bss_2C2C[3], 0.0f); + for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) { + espTPLvlSet(lbl_1_bss_2C2C[3], temp_r31 / 20.0); + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 < lbl_1_bss_316; temp_r31++) { + spC[temp_r31] = -1; + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r31][1]], (temp_r31 * 10) + 20); + } + temp_r26 = 0; + temp_r23 = (lbl_1_bss_316 * 10) + 10; + for (temp_r31 = 0; temp_r31 <= temp_r23; temp_r31++) { + if (temp_r31 <= 20) { + temp_f31 = temp_r31 / 20.0; + espAttrReset(temp_r28, HUSPR_ATTR_DISPOFF); + espPosSet(temp_r28, 288, -100 + (170 * sind(temp_f31 * 90.0f))); + } + if (temp_r31 <= 20) { + temp_f31 = temp_r31 / 20.0; + espAttrReset(lbl_1_bss_2C2C[13], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[13], (-350 * sind(temp_f31 * 90.0f)) + 800, 216); + if (lbl_1_bss_2A6 == 0) { + espAttrReset(lbl_1_bss_2C2C[4], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[4], (-350 * sind(temp_f31 * 90.0f)) + 800, 404); + if (lbl_1_bss_2A4 != 1) { + espAttrReset(lbl_1_bss_2C2C[14], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[14], (-350 * sind(temp_f31 * 90.0f)) + 800, 348); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 1, HUSPR_ATTR_DISPOFF); + HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], (temp_r30 * 50) + (((-350 * sind(temp_f31 * 90.0f)) + 800) - 75), 348); + } + } + else { + espAttrReset(lbl_1_bss_2C2C[15], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[15], (-350 * sind(temp_f31 * 90.0f)) + 800, 348); + espAttrReset(lbl_1_bss_2C2C[16], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[16], (-350 * sind(temp_f31 * 90.0f)) + 800, 348); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(lbl_1_bss_34A[temp_r30], 1, HUSPR_ATTR_DISPOFF); + HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], (800.0 * (1 - sind(temp_f31 * 90.0f))) + lbl_1_data_B0[temp_r30], 348); + } + } + } + else { + if (lbl_1_bss_2A6 == 1) { + espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[20], (-350 * sind(temp_f31 * 90.0f)) + 800, 414); + } + else if (lbl_1_bss_2A6 == 2) { + espAttrReset(lbl_1_bss_2C2C[21], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[21], (-350 * sind(temp_f31 * 90.0f)) + 800, 400); + } + } + } + for (temp_r30 = 0; temp_r30 < lbl_1_bss_316; temp_r30++) { + if (temp_r31 >= ((lbl_1_bss_316 - temp_r30) - 1) * 10 && temp_r31 <= (((lbl_1_bss_316 - temp_r30) - 1) * 10) + 10) { + temp_f31 = (temp_r31 - (((lbl_1_bss_316 - temp_r30) - 1) * 10)) / 10.0; + if (0.0 == temp_f31) { + temp_r26++; + fn_1_9F64(temp_r26 & 0x1, lbl_1_bss_318[temp_r30][0], 0); + } + espAttrReset(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], 180, 800 + (-530 * sind(temp_f31 * 90.0f))); + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], (temp_r30 * 10) + 10); + fn_1_A364(temp_r26 & 0x1, 180, 800 + (-530 * sind(temp_f31 * 90.0f)), (temp_r30 * 10) + 8); + } + } + HuPrcVSleep(); + } + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][0], 10, 450, 216); + } + espAttrReset(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[19], 204, (sp8 * 38) + 154); + espPriSet(lbl_1_bss_2C2C[19], 7); + espTPLvlSet(lbl_1_bss_2C2C[19], 0.7); + espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[17], 204, 126); + espPriSet(lbl_1_bss_2C2C[17], 8); + espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[18], 204, 410); + espPriSet(lbl_1_bss_2C2C[18], 8); + espBankSet(lbl_1_bss_2C2C[18], 1); + fn_1_A364(0, 180, 270, 7); + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + fn_1_A364(1, 180, 270, 100); + fn_1_ACAC(lbl_1_bss_20AC[lbl_1_bss_318[mgTypeCurr][0]], lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]); + fn_1_ADA0(1); + HuPrcSleep(10); + while (WipeStatGet()) { + HuPrcVSleep(); + } + while (1) { + HuPrcVSleep(); + if (spA != 0) { + espAttrReset(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); + } + else { + espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); + } + if (spA + 7 < lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]) { + espAttrReset(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); + } + else { + espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); + } + temp_r27 = temp_r29 = 0; + if (HuPadDStkRep[0] & PAD_BUTTON_UP) { + temp_r29 = -1; + } + else if (HuPadDStkRep[0] & PAD_BUTTON_DOWN) { + temp_r29 = 1; + } + else if ((HuPadDStkRep[0] & PAD_BUTTON_LEFT) || (HuPadBtnRep[0] & PAD_BUTTON_TRIGGER_L)) { + temp_r27 = -1; + } + else if ((HuPadDStkRep[0] & PAD_BUTTON_RIGHT) || (HuPadBtnRep[0] & PAD_BUTTON_TRIGGER_R)) { + temp_r27 = 1; + } + if (temp_r29 != 0) { + if (sp8 + temp_r29 < 0 && spA != 0) { + spA--; + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8], 5, 450, 216); + for (temp_r31 = 0; temp_r31 <= 4; temp_r31++) { + espPosSet(lbl_1_bss_2C2C[17], 204, 126 - (8.0 * sind(temp_r31 * 45.0))); + if (temp_r31 == 2) { + HuAudFXPlay(772); + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + } + HuPrcVSleep(); + } + } + else if (sp8 + temp_r29 >= 7 && spA + 7 < lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]) { + spA++; + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8], 5, 450, 216); + for (temp_r31 = 0; temp_r31 <= 4; temp_r31++) { + espPosSet(lbl_1_bss_2C2C[18], 204, 410 + (8.0 * sind(temp_r31 * 45.0))); + if (temp_r31 == 2) { + HuAudFXPlay(772); + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + } + HuPrcVSleep(); + } + } + else if (sp8 + temp_r29 >= 0 && (spA + sp8 + temp_r29) < lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]) { + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8 + temp_r29], 5, 450, 216); + for (temp_r31 = 0; temp_r31 <= 4; temp_r31++) { + espPosSet(lbl_1_bss_2C2C[19], 204, ((sp8 * 38) + 154) + (temp_r29 * (38.0 * sind(22.5 * temp_r31)))); + HuPrcVSleep(); + if (temp_r31 == 2) { + HuAudFXPlay(772); + } + } + sp8 += temp_r29; + } + if (lbl_1_bss_2A4 == 0) { + fn_1_BFA0(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8]); + } + } + if (temp_r27 && lbl_1_bss_316 > 1) { + HuAudFXPlay(2172); + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + temp_r30 = mgTypeCurr; + if (mgTypeCurr + temp_r27 < 0) { + mgTypeCurr = lbl_1_bss_316 - 1; + } + else { + if (mgTypeCurr + temp_r27 >= lbl_1_bss_316) { + mgTypeCurr = 0; + } + else { + mgTypeCurr += temp_r27; + } + } + espAttrSet(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); + espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); + espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); + fn_1_ADA0(0); + for (temp_r31 = 0; temp_r31 < lbl_1_bss_316; temp_r31++) { + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r31][1]], 30); + } + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[mgTypeCurr][1]], 25); + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[temp_r30][1]], 15); + fn_1_9F64(1, lbl_1_bss_318[temp_r30][0], spA); + fn_1_A364(1, 180, 270, 14); + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], 0); + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][0], 20, 450, 216); + for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) { + if (temp_r31 == 10) { + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[mgTypeCurr][1]], 10); + } + espPosSet(lbl_1_bss_2C2C[lbl_1_bss_318[mgTypeCurr][1]], (300.0 * sind(temp_r31 * 9.0)) + 180.0, 270); + if (temp_r31 >= 10) { + temp_r24 = 7; + } + else { + temp_r24 = 20; + } + fn_1_A364(0, (300.0 * sind(temp_r31 * 9.0)) + 180.0, 270, temp_r24); + HuPrcVSleep(); + } + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], 0); + espPriSet(lbl_1_bss_2C2C[lbl_1_bss_318[mgTypeCurr][1]], 10); + fn_1_A364(0, 180.0, 270, 7); + espAttrReset(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[19], 204, 154); + fn_1_ACAC(lbl_1_bss_20AC[lbl_1_bss_318[mgTypeCurr][0]], lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]]); + if (lbl_1_bss_318[mgTypeCurr][0] != 9) { + fn_1_ADA0(1); + } + sp8 = spA = 0; + if (lbl_1_bss_2A4 == 0) { + fn_1_BFA0(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8]); + } + } + if ((HuPadBtnDown[0] & PAD_BUTTON_A) && lbl_1_bss_2A6 == 2) { + temp_r31 = lbl_1_bss_318[mgTypeCurr][0]; + if (!GWMGAvailGet(lbl_1_bss_264C[temp_r31][spA + sp8] + 401)) { + HuAudFXPlay(4); + continue; + } + else { + if (lbl_1_bss_318[mgTypeCurr][0] != 9) { + HuAudFXPlay(2); + temp_r31 = lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8] + 401; + if (!GWMGCustomGet(temp_r31)) { + GWMGCustomSet(temp_r31); + } + else { + GWMGCustomReset(temp_r31); + } + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8], 0, 450, 216); + fn_1_B9B8(); + } + else { + if (lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8] >= 0) { + HuAudFXPlay(2); + temp_r31 = lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8] + 401; + GWMGCustomReset(temp_r31); + fn_1_B9B8(); + if (lbl_1_bss_2638[lbl_1_bss_318[mgTypeCurr][0]] <= spA + sp8) { + if (--sp8 < 0) { + sp8 = 0; + spA--; + } + espPosSet(lbl_1_bss_2C2C[19], 204, (sp8 * 38) + 154); + } + fn_1_9F64(0, lbl_1_bss_318[mgTypeCurr][0], spA); + fn_1_AE20(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8], 0, 450, 216); + } + } + } + } + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + if (lbl_1_bss_2A6 == 2 && !fn_1_BB24()) { + continue; + } + temp_r25 = 0; break; - } - if(!(HuPadBtnDown[0] & PAD_BUTTON_A)) { - continue; - } - if(lbl_1_bss_2A6) { - continue; - } - temp_r31 = lbl_1_bss_318[mgTypeCurr][0]; - if(!GWMGAvailGet(lbl_1_bss_264C[temp_r31][spA+sp8]+401)) { - HuAudFXPlay(4); - continue; - } - HuAudFXPlay(773); - GWSystem.mg_next = lbl_1_bss_264C[temp_r31][spA+sp8]; - if(lbl_1_bss_2A4 == 0) { - GWPlayerCfg[0].group = 0; - GWPlayerCfg[1].group = 1; - GWPlayerCfg[2].group = 2; - GWPlayerCfg[3].group = 3; - if((temp_r31 == 1 || temp_r31 == 2) && !fn_1_C0C8(0)) { - continue; - } + } + if (!(HuPadBtnDown[0] & PAD_BUTTON_A)) { + continue; + } + if (lbl_1_bss_2A6) { + continue; + } + temp_r31 = lbl_1_bss_318[mgTypeCurr][0]; + if (!GWMGAvailGet(lbl_1_bss_264C[temp_r31][spA + sp8] + 401)) { + HuAudFXPlay(4); + continue; + } + HuAudFXPlay(773); + GWSystem.mg_next = lbl_1_bss_264C[temp_r31][spA + sp8]; + if (lbl_1_bss_2A4 == 0) { + GWPlayerCfg[0].group = 0; + GWPlayerCfg[1].group = 1; + GWPlayerCfg[2].group = 2; + GWPlayerCfg[3].group = 3; + if ((temp_r31 == 1 || temp_r31 == 2) && !fn_1_C0C8(0)) { + continue; + } fn_1_2783C(1); - } else if(lbl_1_bss_2A4 == 1) { - fn_1_2783C(2); - } - while(1) { - HuPrcVSleep(); - } - } - espAttrSet(lbl_1_bss_2C2C[19], HUSPR_ATTR_DISPOFF); - espAttrSet(lbl_1_bss_2C2C[17], HUSPR_ATTR_DISPOFF); - espAttrSet(lbl_1_bss_2C2C[18], HUSPR_ATTR_DISPOFF); - if(lbl_1_bss_2A6 == 2) { - for(temp_r31=0; temp_r31<7; temp_r31++) { - HuSprAttrSet(lbl_1_bss_2E2, temp_r31, HUSPR_ATTR_DISPOFF); - } - } - - fn_1_ADA0(0); - fn_1_AE20(-1, 5, 450, 216); - - for(temp_r31=0; temp_r31<=20; temp_r31++) { - if(temp_r31 <= 20) { - temp_f31 = temp_r31/20.0; - espAttrReset(temp_r28, HUSPR_ATTR_DISPOFF); - espPosSet(temp_r28, 288, -100.0+(170*cosd(temp_f31*90.0f))); - } - if(temp_r31 <= 10) { - temp_f31 = temp_r31/10.0; - espAttrReset(lbl_1_bss_2C2C[13], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[13], (-350*cosd(temp_f31*90.0f))+800, 216); - if(lbl_1_bss_2A6 == 0) { - espPosSet(lbl_1_bss_2C2C[4], (-350*cosd(temp_f31*90.0f))+800, 404); - if(lbl_1_bss_2A4 != 1) { - espPosSet(lbl_1_bss_2C2C[14], (-350*cosd(temp_f31*90.0f))+800, 348); - for(temp_r30=0; temp_r30<4; temp_r30++) { - - HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], (temp_r30*50)+(((-350*cosd(temp_f31*90.0f))+800)-75), 348); - } - } else { - espPosSet(lbl_1_bss_2C2C[15], (-350*cosd(temp_f31*90.0f))+800, 348); - espPosSet(lbl_1_bss_2C2C[16], (-350*cosd(temp_f31*90.0f))+800, 348); - for(temp_r30=0; temp_r30<4; temp_r30++) { - HuSprGrpPosSet(lbl_1_bss_34A[temp_r30], (800*(1-cosd(temp_f31*90.0f)))+lbl_1_data_B0[temp_r30], 348); - } - } - } else { - if(lbl_1_bss_2A6 == 1) { - espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[20], (-350*cosd(temp_f31*90.0f))+800, 414); - } else if(lbl_1_bss_2A6 == 2) { - espAttrReset(lbl_1_bss_2C2C[21], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[21], (-350*cosd(temp_f31*90.0f))+800, 400); - } - } - } - temp_f31 = temp_r31/20.0; - for(temp_r30=0; temp_r30spacing_x = 0; - HuWinBGTPLvlSet(window, 0); - HuWinMesSpeedSet(window, 0); - HuWinDispOff(window); - (void)i; - } - } + s16 j; + s16 i; + for (i = 0; i < 2; i++) { + for (j = 0; j < 7; j++) { + s16 window = HuWinCreate(0, j * 24, 268, 32, 0); + WindowData *windowP; + lbl_1_bss_352[i][j] = window; + windowP = &winData[window]; + windowP->spacing_x = 0; + HuWinBGTPLvlSet(window, 0); + HuWinMesSpeedSet(window, 0); + HuWinDispOff(window); + (void)i; + } + } } void fn_1_9F64(s16 arg0, s16 arg1, s16 arg2) { - s16 i; - s16 no; - s16 window; - if(lbl_1_bss_2A6 == 2 && lbl_1_bss_30C == arg0) { - for(i=0; i<4; i++) { - HuSprAttrSet(lbl_1_bss_2E2, i+14, HUSPR_ATTR_DISPOFF); - } - } - if(arg1 == 9) { - for(i=0; i<7; i++) { - HuSprAttrSet(lbl_1_bss_2E2, i+(arg0*7), HUSPR_ATTR_DISPOFF); - window = lbl_1_bss_352[arg0][i]; - if(i+arg2 >= lbl_1_bss_2638[9]) { - HuWinDispOff(window); - } else { - no = lbl_1_bss_264C[9][i+arg2]; - if(no < 0) { - lbl_1_bss_30C = arg0; - no = -no-1; - lbl_1_bss_30E[no] = i; - HuSprAttrReset(lbl_1_bss_2E2, no+14, HUSPR_ATTR_DISPOFF); - HuSprPosSet(lbl_1_bss_2E2, no+14, 24+lbl_1_bss_2F4[arg0].x, (lbl_1_bss_2F4[arg0].y+(i*38))-116); - HuWinDispOff(window); - } else { - HuWinMesSet(window, mgInfoTbl[no].name_mess); - HuWinDispOn(window); - } - } - } - } else { - for(i=0; i<7; i++) { - window = lbl_1_bss_352[arg0][i]; - if(i+arg2 >= lbl_1_bss_2638[arg1]) { - HuWinDispOff(window); - if(lbl_1_bss_2A6 == 2) { - HuSprAttrSet(lbl_1_bss_2E2, i+(arg0*7), HUSPR_ATTR_DISPOFF); - } - } else { - no = lbl_1_bss_264C[arg1][i+arg2]; - if(GWMGAvailGet(no+401)) { - HuWinMesSet(window, mgInfoTbl[no].name_mess); - } else { - HuWinMesSet(window, 0x230000); - } - HuWinDispOn(window); - if(lbl_1_bss_2A6 == 2) { - if(GWMGCustomGet(no+401)) { - HuSprAttrReset(lbl_1_bss_2E2, i+(arg0*7), HUSPR_ATTR_DISPOFF); - } else { - HuSprAttrSet(lbl_1_bss_2E2, i+(arg0*7), HUSPR_ATTR_DISPOFF); - } - } - } - } - } + s16 i; + s16 no; + s16 window; + if (lbl_1_bss_2A6 == 2 && lbl_1_bss_30C == arg0) { + for (i = 0; i < 4; i++) { + HuSprAttrSet(lbl_1_bss_2E2, i + 14, HUSPR_ATTR_DISPOFF); + } + } + if (arg1 == 9) { + for (i = 0; i < 7; i++) { + HuSprAttrSet(lbl_1_bss_2E2, i + (arg0 * 7), HUSPR_ATTR_DISPOFF); + window = lbl_1_bss_352[arg0][i]; + if (i + arg2 >= lbl_1_bss_2638[9]) { + HuWinDispOff(window); + } + else { + no = lbl_1_bss_264C[9][i + arg2]; + if (no < 0) { + lbl_1_bss_30C = arg0; + no = -no - 1; + lbl_1_bss_30E[no] = i; + HuSprAttrReset(lbl_1_bss_2E2, no + 14, HUSPR_ATTR_DISPOFF); + HuSprPosSet(lbl_1_bss_2E2, no + 14, 24 + lbl_1_bss_2F4[arg0].x, (lbl_1_bss_2F4[arg0].y + (i * 38)) - 116); + HuWinDispOff(window); + } + else { + HuWinMesSet(window, mgInfoTbl[no].name_mess); + HuWinDispOn(window); + } + } + } + } + else { + for (i = 0; i < 7; i++) { + window = lbl_1_bss_352[arg0][i]; + if (i + arg2 >= lbl_1_bss_2638[arg1]) { + HuWinDispOff(window); + if (lbl_1_bss_2A6 == 2) { + HuSprAttrSet(lbl_1_bss_2E2, i + (arg0 * 7), HUSPR_ATTR_DISPOFF); + } + } + else { + no = lbl_1_bss_264C[arg1][i + arg2]; + if (GWMGAvailGet(no + 401)) { + HuWinMesSet(window, mgInfoTbl[no].name_mess); + } + else { + HuWinMesSet(window, MAKE_MESSID(0x23, 0x00)); + } + HuWinDispOn(window); + if (lbl_1_bss_2A6 == 2) { + if (GWMGCustomGet(no + 401)) { + HuSprAttrReset(lbl_1_bss_2E2, i + (arg0 * 7), HUSPR_ATTR_DISPOFF); + } + else { + HuSprAttrSet(lbl_1_bss_2E2, i + (arg0 * 7), HUSPR_ATTR_DISPOFF); + } + } + } + } + } } void fn_1_A364(s16 arg0, float arg1, float arg2, s16 arg3) { - s16 i; - lbl_1_bss_2F4[arg0].x = arg1; - lbl_1_bss_2F4[arg0].y = arg2; - for(i=0; i<7; i++) { - s16 window = lbl_1_bss_352[arg0][i]; - HuWinPosSet(window, arg1-105, (arg2-136)+(i*38)); - HuWinPriSet(window, arg3); - if(lbl_1_bss_2A6 == 2) { - HuSprPosSet(lbl_1_bss_2E2, i+(arg0*7), arg1+24, arg2+(i*38)-116); - HuSprPriSet(lbl_1_bss_2E2, i+(arg0*7), arg3); - } - } - if(lbl_1_bss_2A6 == 2 && lbl_1_bss_30C == arg0) { - for(i=0; i<4; i++) { - HuSprPosSet(lbl_1_bss_2E2, i+14, arg1+24, arg2+(lbl_1_bss_30E[i]*38)-116); - HuSprPriSet(lbl_1_bss_2E2, i+14, arg3+1); - } - } - + s16 i; + lbl_1_bss_2F4[arg0].x = arg1; + lbl_1_bss_2F4[arg0].y = arg2; + for (i = 0; i < 7; i++) { + s16 window = lbl_1_bss_352[arg0][i]; + HuWinPosSet(window, arg1 - 105, (arg2 - 136) + (i * 38)); + HuWinPriSet(window, arg3); + if (lbl_1_bss_2A6 == 2) { + HuSprPosSet(lbl_1_bss_2E2, i + (arg0 * 7), arg1 + 24, arg2 + (i * 38) - 116); + HuSprPriSet(lbl_1_bss_2E2, i + (arg0 * 7), arg3); + } + } + if (lbl_1_bss_2A6 == 2 && lbl_1_bss_30C == arg0) { + for (i = 0; i < 4; i++) { + HuSprPosSet(lbl_1_bss_2E2, i + 14, arg1 + 24, arg2 + (lbl_1_bss_30E[i] * 38) - 116); + HuSprPriSet(lbl_1_bss_2E2, i + 14, arg3 + 1); + } + } } void fn_1_A624(void) { - s16 j; - s16 i; - - for(i=0; i<2; i++) { - for(j=0; j<7; j++) { - HuWinKill(lbl_1_bss_352[i][j]); - } - } + s16 j; + s16 i; + + for (i = 0; i < 2; i++) { + for (j = 0; j < 7; j++) { + HuWinKill(lbl_1_bss_352[i][j]); + } + } } void fn_1_A6A8(void) { - s16 spA[2]; - s16 i; - AnimData *anim; - s16 sprite; - s16 group; - s16 player; - s16 bank; - s16 iscom; - if(lbl_1_bss_2A4 == 1) { - spA[0] = 0; - spA[1] = 2; - for(i=0; i<4; i++) { - if(GWPlayerCfg[i].group >= 2) { - lbl_1_bss_340[i] = 0; - } else { - lbl_1_bss_340[spA[GWPlayerCfg[i].group]] = i; - spA[GWPlayerCfg[i].group]++; - } - } - } else { - for(i=0; i<4; i++) { - lbl_1_bss_340[i] = i; - } - } - for(i=0; i<4; i++) { - if(lbl_1_bss_34A[i]) { - HuSprGrpKill(lbl_1_bss_34A[i]); - } - player = lbl_1_bss_340[i]; - group = HuSprGrpCreate(2); - lbl_1_bss_34A[i] = group; - anim = HuSprAnimRead(HuDataReadNum(0x620010+GWPlayerCfg[player].character, MEMORY_DEFAULT_NUM)); - sprite = HuSprCreate(anim, 200, 0); - HuSprGrpMemberSet(group, 0, sprite); - if(iscom = GWPlayerCfg[player].iscom) { - anim = HuSprAnimRead(HuDataReadNum(0x620027, MEMORY_DEFAULT_NUM)); - bank = GWPlayerCfg[player].diff; - } else { - anim = HuSprAnimRead(HuDataReadNum(0x620026, MEMORY_DEFAULT_NUM)); - bank = lbl_1_bss_340[i]; - } - sprite = HuSprCreate(anim, 200, bank); - HuSprGrpMemberSet(group, 1, sprite); - HuSprPosSet(group, 1, 0, 20); - HuSprAttrSet(lbl_1_bss_34A[i], 0, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(lbl_1_bss_34A[i], 1, HUSPR_ATTR_DISPOFF); - } - if(lbl_1_bss_2E6) { - HuSprGrpKill(lbl_1_bss_2E6); - } - group = HuSprGrpCreate(5); - lbl_1_bss_2E6 = group; - anim = HuSprAnimRead(HuDataReadNum(0x62002D, MEMORY_DEFAULT_NUM)); - for(i=0; i<5; i++) { - sprite = HuSprCreate(anim, 5, 0); - HuSprGrpMemberSet(group, i, sprite); - HuSprPosSet(group, i, (i*16)-32, 0); - } - HuSprBankSet(group, 2, 10); - HuSprGrpPosSet(group, 284, 410); - fn_1_ADA0(0); - if(lbl_1_bss_2A6 == 2 && lbl_1_bss_2E2 == 0) { - anim = HuSprAnimRead(HuDataReadNum(0x62002B, MEMORY_DEFAULT_NUM)); - lbl_1_bss_2E2 = HuSprGrpCreate(18); - for(i=0; i<14; i++) { - sprite = HuSprCreate(anim, 8, 0); - HuSprGrpMemberSet(lbl_1_bss_2E2, i, sprite); - HuSprColorSet(lbl_1_bss_2E2, i, 255, 0, 0); - HuSprAttrSet(lbl_1_bss_2E2, i, HUSPR_ATTR_ADDCOL|HUSPR_ATTR_DISPOFF); - HuSprTPLvlSet(lbl_1_bss_2E2, i, 0.8f); - } - for(i=0; i<4; i++) { - anim = HuSprAnimRead(HuDataReadNum(lbl_1_data_C0[i], MEMORY_DEFAULT_NUM)); - sprite = HuSprCreate(anim, 8, 0); - HuSprGrpMemberSet(lbl_1_bss_2E2, i+14, sprite); - HuSprAttrSet(lbl_1_bss_2E2, i+14, HUSPR_ATTR_DISPOFF); - } - HuSprGrpPosSet(lbl_1_bss_2E2, 0, 0); - } - lbl_1_data_A0 = -1; - (void)sprite; - + s16 spA[2]; + s16 i; + AnimData *anim; + s16 sprite; + s16 group; + s16 player; + s16 bank; + s16 iscom; + if (lbl_1_bss_2A4 == 1) { + spA[0] = 0; + spA[1] = 2; + for (i = 0; i < 4; i++) { + if (GWPlayerCfg[i].group >= 2) { + lbl_1_bss_340[i] = 0; + } + else { + lbl_1_bss_340[spA[GWPlayerCfg[i].group]] = i; + spA[GWPlayerCfg[i].group]++; + } + } + } + else { + for (i = 0; i < 4; i++) { + lbl_1_bss_340[i] = i; + } + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_34A[i]) { + HuSprGrpKill(lbl_1_bss_34A[i]); + } + player = lbl_1_bss_340[i]; + group = HuSprGrpCreate(2); + lbl_1_bss_34A[i] = group; + anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 0x10) + GWPlayerCfg[player].character, MEMORY_DEFAULT_NUM)); + sprite = HuSprCreate(anim, 200, 0); + HuSprGrpMemberSet(group, 0, sprite); + if (iscom = GWPlayerCfg[player].iscom) { + anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 0x27), MEMORY_DEFAULT_NUM)); + bank = GWPlayerCfg[player].diff; + } + else { + anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 0x26), MEMORY_DEFAULT_NUM)); + bank = lbl_1_bss_340[i]; + } + sprite = HuSprCreate(anim, 200, bank); + HuSprGrpMemberSet(group, 1, sprite); + HuSprPosSet(group, 1, 0, 20); + HuSprAttrSet(lbl_1_bss_34A[i], 0, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(lbl_1_bss_34A[i], 1, HUSPR_ATTR_DISPOFF); + } + if (lbl_1_bss_2E6) { + HuSprGrpKill(lbl_1_bss_2E6); + } + group = HuSprGrpCreate(5); + lbl_1_bss_2E6 = group; + anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 0x2D), MEMORY_DEFAULT_NUM)); + for (i = 0; i < 5; i++) { + sprite = HuSprCreate(anim, 5, 0); + HuSprGrpMemberSet(group, i, sprite); + HuSprPosSet(group, i, (i * 16) - 32, 0); + } + HuSprBankSet(group, 2, 10); + HuSprGrpPosSet(group, 284, 410); + fn_1_ADA0(0); + if (lbl_1_bss_2A6 == 2 && lbl_1_bss_2E2 == 0) { + anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 0x2B), MEMORY_DEFAULT_NUM)); + lbl_1_bss_2E2 = HuSprGrpCreate(18); + for (i = 0; i < 14; i++) { + sprite = HuSprCreate(anim, 8, 0); + HuSprGrpMemberSet(lbl_1_bss_2E2, i, sprite); + HuSprColorSet(lbl_1_bss_2E2, i, 255, 0, 0); + HuSprAttrSet(lbl_1_bss_2E2, i, HUSPR_ATTR_ADDCOL | HUSPR_ATTR_DISPOFF); + HuSprTPLvlSet(lbl_1_bss_2E2, i, 0.8f); + } + for (i = 0; i < 4; i++) { + anim = HuSprAnimRead(HuDataReadNum(lbl_1_data_C0[i], MEMORY_DEFAULT_NUM)); + sprite = HuSprCreate(anim, 8, 0); + HuSprGrpMemberSet(lbl_1_bss_2E2, i + 14, sprite); + HuSprAttrSet(lbl_1_bss_2E2, i + 14, HUSPR_ATTR_DISPOFF); + } + HuSprGrpPosSet(lbl_1_bss_2E2, 0, 0); + } + lbl_1_data_A0 = -1; + (void)sprite; } void fn_1_ACAC(s16 arg0, s16 arg1) { - s16 digit; - digit = arg0/10; - HuSprBankSet(lbl_1_bss_2E6, 0, digit); - arg0 -= digit*10; - HuSprBankSet(lbl_1_bss_2E6, 1, arg0); - digit = arg1/10; - HuSprBankSet(lbl_1_bss_2E6, 3, digit); - arg1 -= digit*10; - HuSprBankSet(lbl_1_bss_2E6, 4, arg1); + s16 digit; + digit = arg0 / 10; + HuSprBankSet(lbl_1_bss_2E6, 0, digit); + arg0 -= digit * 10; + HuSprBankSet(lbl_1_bss_2E6, 1, arg0); + digit = arg1 / 10; + HuSprBankSet(lbl_1_bss_2E6, 3, digit); + arg1 -= digit * 10; + HuSprBankSet(lbl_1_bss_2E6, 4, arg1); } void fn_1_ADA0(s32 arg0) { - s16 i; - for(i=0; i<5; i++) { - if(arg0) { - HuSprAttrReset(lbl_1_bss_2E6, i, HUSPR_ATTR_DISPOFF); - } else { - HuSprAttrSet(lbl_1_bss_2E6, i, HUSPR_ATTR_DISPOFF); - } - } + s16 i; + for (i = 0; i < 5; i++) { + if (arg0) { + HuSprAttrReset(lbl_1_bss_2E6, i, HUSPR_ATTR_DISPOFF); + } + else { + HuSprAttrSet(lbl_1_bss_2E6, i, HUSPR_ATTR_DISPOFF); + } + } } void fn_1_AED0(void); void fn_1_AE20(s16 arg0, s16 arg1, s16 arg2, s16 arg3) { - lbl_1_bss_2F0 = arg0; - lbl_1_bss_2E8 = arg1; - lbl_1_bss_2EE = arg2; - lbl_1_bss_2EC = arg3; - HuPrcChildCreate(fn_1_AED0, 100, 12288, 0, HuPrcCurrentGet()); + lbl_1_bss_2F0 = arg0; + lbl_1_bss_2E8 = arg1; + lbl_1_bss_2EE = arg2; + lbl_1_bss_2EC = arg3; + HuPrcChildCreate(fn_1_AED0, 100, 12288, 0, HuPrcCurrentGet()); } void fn_1_AED0(void) { - s16 temp_r31; - s16 temp_r30; - AnimData *temp_r29; - s16 temp_r28; - s16 temp_r27; - s32 temp_r26; - temp_r27 = lbl_1_data_A0; - if(lbl_1_bss_2F0 < 0) { - for(temp_r30=1; temp_r30<=lbl_1_bss_2E8; temp_r30++) { - HuSprGrpTPLvlSet(temp_r27, 1.0-(temp_r30/lbl_1_bss_2E8)); - HuPrcVSleep(); - } - if(temp_r27 != -1) { - HuSprGrpKill(temp_r27); - } - lbl_1_data_A0 = -1; - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } - } - lbl_1_data_A0 = HuSprGrpCreate(4); - temp_r26 = mgInfoTbl[lbl_1_bss_2F0].mg_pic[0]; - if(GWMGAvailGet(lbl_1_bss_2F0+401)) { - temp_r29 = HuSprAnimRead(HuDataReadNumHeapShortForce(temp_r26, MEMORY_DEFAULT_NUM, HEAP_DATA)); - } else { - temp_r29 = HuSprAnimReadFile(0x62002C); - } - temp_r28 = HuSprCreate(temp_r29, 200, 0); - HuSprGrpMemberSet(lbl_1_data_A0, 0, temp_r28); - HuSprGrpPosSet(lbl_1_data_A0, lbl_1_bss_2EE, lbl_1_bss_2EC); - HuSprGrpScaleSet(lbl_1_data_A0, 0.6f, 0.6f); - temp_r31 = 0; - if(mgInfoTbl[lbl_1_bss_2F0].flag & 0x1) { - temp_r29 = HuSprAnimReadFile(0x620024); - temp_r28 = HuSprCreate(temp_r29, 190, 0); - HuSprGrpMemberSet(lbl_1_data_A0, temp_r31+1, temp_r28); - HuSprPosSet(lbl_1_data_A0, temp_r31+1, (355.0/3.0)-((temp_r31*50)*(100.0/60.0)), (355.0f/3.0f)); - HuSprScaleSet(lbl_1_data_A0, temp_r31+1, 100.0f/60.0f, 100.0f/60.0f); - temp_r31++; - } - if(mgInfoTbl[lbl_1_bss_2F0].flag & 0x2) { - temp_r29 = HuSprAnimReadFile(0x620023); - temp_r28 = HuSprCreate(temp_r29, 190, 0); - HuSprGrpMemberSet(lbl_1_data_A0, temp_r31+1, temp_r28); - HuSprPosSet(lbl_1_data_A0, temp_r31+1, (355.0/3.0)-((temp_r31*50)*(100.0/60.0)), (355.0f/3.0f)); - HuSprScaleSet(lbl_1_data_A0, temp_r31+1, 100.0f/60.0f, 100.0f/60.0f); - temp_r31++; - } - if(GWMGCustomGet(lbl_1_bss_2F0+401)) { - temp_r29 = HuSprAnimReadFile(0x620022); - temp_r28 = HuSprCreate(temp_r29, 190, 0); - HuSprGrpMemberSet(lbl_1_data_A0, temp_r31+1, temp_r28); - HuSprPosSet(lbl_1_data_A0, temp_r31+1, (355.0/3.0)-((temp_r31*50)*(100.0/60.0)), (355.0f/3.0f)); - HuSprScaleSet(lbl_1_data_A0, temp_r31+1, 100.0f/60.0f, 100.0f/60.0f); - temp_r31++; - } - for(temp_r30=1; temp_r30<=lbl_1_bss_2E8; temp_r30++) { - if(temp_r27 != -1) { - HuSprGrpTPLvlSet(temp_r27, 1.0-(temp_r30/lbl_1_bss_2E8)); - } - HuSprGrpTPLvlSet(lbl_1_data_A0, temp_r30/lbl_1_bss_2E8); - HuPrcVSleep(); - } - if(temp_r27 != -1) { - HuSprGrpKill(temp_r27); - } - lbl_1_bss_348 = lbl_1_bss_2F0; - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } + s16 temp_r31; + s16 temp_r30; + AnimData *temp_r29; + s16 temp_r28; + s16 temp_r27; + s32 temp_r26; + temp_r27 = lbl_1_data_A0; + if (lbl_1_bss_2F0 < 0) { + for (temp_r30 = 1; temp_r30 <= lbl_1_bss_2E8; temp_r30++) { + HuSprGrpTPLvlSet(temp_r27, 1.0 - (temp_r30 / lbl_1_bss_2E8)); + HuPrcVSleep(); + } + if (temp_r27 != -1) { + HuSprGrpKill(temp_r27); + } + lbl_1_data_A0 = -1; + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } + } + lbl_1_data_A0 = HuSprGrpCreate(4); + temp_r26 = mgInfoTbl[lbl_1_bss_2F0].mg_pic[0]; + if (GWMGAvailGet(lbl_1_bss_2F0 + 401)) { + temp_r29 = HuSprAnimRead(HuDataReadNumHeapShortForce(temp_r26, MEMORY_DEFAULT_NUM, HEAP_DATA)); + } + else { + temp_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x2C)); + } + temp_r28 = HuSprCreate(temp_r29, 200, 0); + HuSprGrpMemberSet(lbl_1_data_A0, 0, temp_r28); + HuSprGrpPosSet(lbl_1_data_A0, lbl_1_bss_2EE, lbl_1_bss_2EC); + HuSprGrpScaleSet(lbl_1_data_A0, 0.6f, 0.6f); + temp_r31 = 0; + if (mgInfoTbl[lbl_1_bss_2F0].flag & 0x1) { + temp_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x24)); + temp_r28 = HuSprCreate(temp_r29, 190, 0); + HuSprGrpMemberSet(lbl_1_data_A0, temp_r31 + 1, temp_r28); + HuSprPosSet(lbl_1_data_A0, temp_r31 + 1, (355.0 / 3.0) - ((temp_r31 * 50) * (100.0 / 60.0)), (355.0f / 3.0f)); + HuSprScaleSet(lbl_1_data_A0, temp_r31 + 1, 100.0f / 60.0f, 100.0f / 60.0f); + temp_r31++; + } + if (mgInfoTbl[lbl_1_bss_2F0].flag & 0x2) { + temp_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x23)); + temp_r28 = HuSprCreate(temp_r29, 190, 0); + HuSprGrpMemberSet(lbl_1_data_A0, temp_r31 + 1, temp_r28); + HuSprPosSet(lbl_1_data_A0, temp_r31 + 1, (355.0 / 3.0) - ((temp_r31 * 50) * (100.0 / 60.0)), (355.0f / 3.0f)); + HuSprScaleSet(lbl_1_data_A0, temp_r31 + 1, 100.0f / 60.0f, 100.0f / 60.0f); + temp_r31++; + } + if (GWMGCustomGet(lbl_1_bss_2F0 + 401)) { + temp_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x22)); + temp_r28 = HuSprCreate(temp_r29, 190, 0); + HuSprGrpMemberSet(lbl_1_data_A0, temp_r31 + 1, temp_r28); + HuSprPosSet(lbl_1_data_A0, temp_r31 + 1, (355.0 / 3.0) - ((temp_r31 * 50) * (100.0 / 60.0)), (355.0f / 3.0f)); + HuSprScaleSet(lbl_1_data_A0, temp_r31 + 1, 100.0f / 60.0f, 100.0f / 60.0f); + temp_r31++; + } + for (temp_r30 = 1; temp_r30 <= lbl_1_bss_2E8; temp_r30++) { + if (temp_r27 != -1) { + HuSprGrpTPLvlSet(temp_r27, 1.0 - (temp_r30 / lbl_1_bss_2E8)); + } + HuSprGrpTPLvlSet(lbl_1_data_A0, temp_r30 / lbl_1_bss_2E8); + HuPrcVSleep(); + } + if (temp_r27 != -1) { + HuSprGrpKill(temp_r27); + } + lbl_1_bss_348 = lbl_1_bss_2F0; + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } s16 fn_1_B5A8(s16 *arg0, s16 *arg1) { - s16 mgNo = GWSystem.mg_next; - s16 mgType = mgInfoTbl[mgNo].type; - s16 ret; - s16 i; - for(i=ret=0; i= 7 && i+7 >= lbl_1_bss_2638[mgType]) { - i = lbl_1_bss_2638[mgType]-7; - } - *arg0 = i; - if(lbl_1_bss_2638[mgType] < 7) { - *arg0 = 0; - } - *arg1 = *arg1-*arg0; - return ret; + s16 mgNo = GWSystem.mg_next; + s16 mgType = mgInfoTbl[mgNo].type; + s16 ret; + s16 i; + for (i = ret = 0; i < lbl_1_bss_316; i++) { + if (mgType == lbl_1_bss_318[i][0]) { + ret = i; + break; + } + } + for (i = 0; i < lbl_1_bss_2638[mgType]; i++) { + if (mgNo == lbl_1_bss_264C[mgType][i]) { + break; + } + } + *arg1 = i; + i = i - 3; + if (i < 0) { + i = 0; + } + if (lbl_1_bss_2638[mgType] >= 7 && i + 7 >= lbl_1_bss_2638[mgType]) { + i = lbl_1_bss_2638[mgType] - 7; + } + *arg0 = i; + if (lbl_1_bss_2638[mgType] < 7) { + *arg0 = 0; + } + *arg1 = *arg1 - *arg0; + return ret; } void fn_1_B770(void) { - if(lbl_1_bss_2A6 == 2) { - lbl_1_bss_316 = 5; - lbl_1_bss_318[0][0] = 0; - lbl_1_bss_318[0][1] = 5; - lbl_1_bss_318[1][0] = 1; - lbl_1_bss_318[1][1] = 6; - lbl_1_bss_318[2][0] = 2; - lbl_1_bss_318[2][1] = 7; - lbl_1_bss_318[3][0] = 4; - lbl_1_bss_318[3][1] = 8; - lbl_1_bss_318[4][0] = 9; - lbl_1_bss_318[4][1] = 11; - fn_1_B9B8(); - } else if(lbl_1_bss_2A4 == 0 || lbl_1_bss_2A6 == 1) { - lbl_1_bss_316 = 7; - lbl_1_bss_318[0][0] = 0; - lbl_1_bss_318[0][1] = 5; - lbl_1_bss_318[1][0] = 1; - lbl_1_bss_318[1][1] = 6; - lbl_1_bss_318[2][0] = 2; - lbl_1_bss_318[2][1] = 7; - lbl_1_bss_318[3][0] = 4; - lbl_1_bss_318[3][1] = 8; - lbl_1_bss_318[4][0] = 3; - lbl_1_bss_318[4][1] = 9; - lbl_1_bss_318[5][0] = 6; - lbl_1_bss_318[5][1] = 10; - lbl_1_bss_318[6][0] = 8; - lbl_1_bss_318[6][1] = 12; - } else if(lbl_1_bss_2A4 == 1) { - lbl_1_bss_316 = 1; - lbl_1_bss_318[0][0] = 2; - lbl_1_bss_318[0][1] = 7; - } + if (lbl_1_bss_2A6 == 2) { + lbl_1_bss_316 = 5; + lbl_1_bss_318[0][0] = 0; + lbl_1_bss_318[0][1] = 5; + lbl_1_bss_318[1][0] = 1; + lbl_1_bss_318[1][1] = 6; + lbl_1_bss_318[2][0] = 2; + lbl_1_bss_318[2][1] = 7; + lbl_1_bss_318[3][0] = 4; + lbl_1_bss_318[3][1] = 8; + lbl_1_bss_318[4][0] = 9; + lbl_1_bss_318[4][1] = 11; + fn_1_B9B8(); + } + else if (lbl_1_bss_2A4 == 0 || lbl_1_bss_2A6 == 1) { + lbl_1_bss_316 = 7; + lbl_1_bss_318[0][0] = 0; + lbl_1_bss_318[0][1] = 5; + lbl_1_bss_318[1][0] = 1; + lbl_1_bss_318[1][1] = 6; + lbl_1_bss_318[2][0] = 2; + lbl_1_bss_318[2][1] = 7; + lbl_1_bss_318[3][0] = 4; + lbl_1_bss_318[3][1] = 8; + lbl_1_bss_318[4][0] = 3; + lbl_1_bss_318[4][1] = 9; + lbl_1_bss_318[5][0] = 6; + lbl_1_bss_318[5][1] = 10; + lbl_1_bss_318[6][0] = 8; + lbl_1_bss_318[6][1] = 12; + } + else if (lbl_1_bss_2A4 == 1) { + lbl_1_bss_316 = 1; + lbl_1_bss_318[0][0] = 2; + lbl_1_bss_318[0][1] = 7; + } } void fn_1_B9B8(void) { - s16 customNum; - s16 i; - for(i=customNum=0; i<4; i++) { - s16 j; - lbl_1_bss_264C[9][customNum++] = -i-1; - for(j=0; j= 4 && customNum[1] >= 3 && customNum[2] >= 3 && customNum[3] >= 2) { - HuWinMesMaxSizeGet(1, winSize, 0x280030); - window = HuWinExCreateStyled(-10000, -10000, winSize[0], winSize[1], -1, 1); - windowP = &winData[window]; - windowP->active_pad = 1; - HuWinMesPalSet(window, 7, 0, 0, 0); - HuWinPriSet(window, 3); - HuWinExAnimIn(window); - HuWinMesSet(window, 0x280030); - HuWinMesWait(window); - HuWinExAnimOut(window); - HuWinExCleanup(window); - return 1; - } else { - HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 0); - HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 1); - HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 2); - HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 3); - HuWinMesMaxSizeGet(3, winSize, 0x28002B, 0x28002C, 0x28002D); - window = HuWinExCreateStyled(-10000, -10000, winSize[0], winSize[1], -1, 1); - windowP = &winData[window]; - windowP->active_pad = 1; - HuWinMesPalSet(window, 7, 0, 0, 0); - HuWinPriSet(window, 3); - HuWinExAnimIn(window); - for(j=0; j<4; j++) { - strcpy(&messInsert[j][0], messInsertBase); - } - for(j=0; j<4; j++) { - if(customNum[j] >= customMinNum[j]) { - messInsert[j][1] = 5; - } else { - messInsert[j][2] = (customMinNum[j]+'0'-customNum[j]); - } - HuWinInsertMesSet(window, MAKE_MESSID_PTR(&messInsert[j][0]), (s16)j); - } - HuWinMesSet(window, 0x28002C); - HuWinMesWait(window); - HuWinMesSet(window, 0x28002B); - HuWinMesWait(window); - HuWinMesSet(window, 0x28002D); - HuWinMesWait(window); - choice = HuWinChoiceGet(window, 0); - HuWinExAnimOut(window); - HuWinExCleanup(window); - if(choice == 0) { - return 0; - } else { - return 1; - } - } + char messInsert[4][6]; + s16 customNum[4]; + float winSize[2]; + static char messInsertBase[6] = { "\x1E\x03" + "0" + "\x1E\x08" }; + static s16 customMinNum[4] = { 4, 3, 3, 2 }; + s16 window; + s16 j; + s16 i; + WindowData *windowP; + s16 choice; + for (i = 0; i < 4; i++) { + customNum[i] = 0; + for (j = 0; j < lbl_1_bss_20AC[lbl_1_data_A2[i]]; j++) { + if (GWMGCustomGet(lbl_1_bss_20C0[lbl_1_data_A2[i]][j] + 401)) { + customNum[i]++; + } + } + } + if (customNum[0] >= 4 && customNum[1] >= 3 && customNum[2] >= 3 && customNum[3] >= 2) { + HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(0x28, 0x30)); + window = HuWinExCreateStyled(-10000, -10000, winSize[0], winSize[1], -1, 1); + windowP = &winData[window]; + windowP->active_pad = 1; + HuWinMesPalSet(window, 7, 0, 0, 0); + HuWinPriSet(window, 3); + HuWinExAnimIn(window); + HuWinMesSet(window, MAKE_MESSID(0x28, 0x30)); + HuWinMesWait(window); + HuWinExAnimOut(window); + HuWinExCleanup(window); + return 1; + } + else { + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 0); + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 1); + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 2); + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(messInsertBase), 3); + HuWinMesMaxSizeGet(3, winSize, MAKE_MESSID(0x28, 0x2B), MAKE_MESSID(0x28, 0x2C), MAKE_MESSID(0x28, 0x2D)); + window = HuWinExCreateStyled(-10000, -10000, winSize[0], winSize[1], -1, 1); + windowP = &winData[window]; + windowP->active_pad = 1; + HuWinMesPalSet(window, 7, 0, 0, 0); + HuWinPriSet(window, 3); + HuWinExAnimIn(window); + for (j = 0; j < 4; j++) { + strcpy(&messInsert[j][0], messInsertBase); + } + for (j = 0; j < 4; j++) { + if (customNum[j] >= customMinNum[j]) { + messInsert[j][1] = 5; + } + else { + messInsert[j][2] = (customMinNum[j] + '0' - customNum[j]); + } + HuWinInsertMesSet(window, MAKE_MESSID_PTR(&messInsert[j][0]), (s16)j); + } + HuWinMesSet(window, MAKE_MESSID(0x28, 0x2C)); + HuWinMesWait(window); + HuWinMesSet(window, MAKE_MESSID(0x28, 0x2B)); + HuWinMesWait(window); + HuWinMesSet(window, MAKE_MESSID(0x28, 0x2D)); + HuWinMesWait(window); + choice = HuWinChoiceGet(window, 0); + HuWinExAnimOut(window); + HuWinExCleanup(window); + if (choice == 0) { + return 0; + } + else { + return 1; + } + } } void fn_1_BFA0(s16 arg0) { - s16 i; - for(i=0; i<4; i++) { - HuSprGrpTPLvlSet(lbl_1_bss_34A[i], 1.0f); - } - if(mgInfoTbl[arg0].ovl == OVL_M450) { - HuSprGrpTPLvlSet(lbl_1_bss_34A[1], 0.0f); - } - if(mgInfoTbl[arg0].type == 6 || mgInfoTbl[arg0].type == 8) { - HuSprGrpTPLvlSet(lbl_1_bss_34A[2], 0.0f); - HuSprGrpTPLvlSet(lbl_1_bss_34A[3], 0.0f); - return; - } + s16 i; + for (i = 0; i < 4; i++) { + HuSprGrpTPLvlSet(lbl_1_bss_34A[i], 1.0f); + } + if (mgInfoTbl[arg0].ovl == OVL_M450) { + HuSprGrpTPLvlSet(lbl_1_bss_34A[1], 0.0f); + } + if (mgInfoTbl[arg0].type == 6 || mgInfoTbl[arg0].type == 8) { + HuSprGrpTPLvlSet(lbl_1_bss_34A[2], 0.0f); + HuSprGrpTPLvlSet(lbl_1_bss_34A[3], 0.0f); + return; + } } -float lbl_1_data_E0[2][4] = { - -132, -12, 60, 132, - -132, -60, 60, 132 -}; +float lbl_1_data_E0[2][4] = { -132, -12, 60, 132, -132, -60, 60, 132 }; -u8 lbl_1_data_100[16] = { - 0, 1, 2, 3, - 1, 0, 2, 3, - 2, 0, 1, 3, - 3, 0, 1, 2 -}; +u8 lbl_1_data_100[16] = { 0, 1, 2, 3, 1, 0, 2, 3, 2, 0, 1, 3, 3, 0, 1, 2 }; u8 lbl_1_data_110[12] = { - 0, 1, 2, 3, - 0, 2, 1, 3, - 0, 3, 1, 2, + 0, + 1, + 2, + 3, + 0, + 2, + 1, + 3, + 0, + 3, + 1, + 2, }; s32 fn_1_C0C8(s32 arg0) { - s16 temp_r31; - s16 temp_r30; - float *temp_r29; - s16 temp_r28; - AnimData *temp_r27; - s16 temp_r26; - s16 temp_r25; - s16 temp_r24; - s16 temp_r23; - WindowData *temp_r22; - AnimData *temp_r21; - - float temp_f31; - float temp_f30; - float temp_f29; - if(mgTypeCurr == 1) { - temp_r29 = &lbl_1_data_E0[0][0]; - temp_f29 = 216; - } else { - temp_r29 = &lbl_1_data_E0[1][0]; - temp_f29 = 288; - } - temp_r28 = HuSprGrpCreate(16); - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r27 = HuSprAnimReadFile(lbl_1_bss_8.unk24[temp_r31].unk68+0x620067); - temp_r26 = HuSprCreate(temp_r27, 4, 0); - HuSprGrpMemberSet(temp_r28, 4*temp_r31, temp_r26); - HuSprPosSet(temp_r28, 4*temp_r31, temp_r29[temp_r31], 0); - if(mgTypeCurr == 1) { - if(temp_r31 == 0) { - temp_r27 = HuSprAnimReadFile(0x620075); - } else { - temp_r27 = HuSprAnimReadFile(0x620076); - } - } else { - if(temp_r31 < 2) { - temp_r27 = HuSprAnimReadFile(0x620075); - } else { - temp_r27 = HuSprAnimReadFile(0x620076); - } - } - temp_r26 = HuSprCreate(temp_r27, 3, 0); - HuSprGrpMemberSet(temp_r28, (4*temp_r31)+1, temp_r26); - HuSprPosSet(temp_r28, (4*temp_r31)+1, temp_r29[temp_r31], 0); - if(GWPlayerCfg[temp_r31].iscom) { - temp_r27 = HuSprAnimReadFile(0x620074); - } else { - temp_r27 = HuSprAnimReadFile(0x620070+GWPlayerCfg[temp_r31].pad_idx); - } - temp_r26 = HuSprCreate(temp_r27, 2, 1); - HuSprGrpMemberSet(temp_r28, (4*temp_r31)+2, temp_r26); - HuSprPosSet(temp_r28, (4*temp_r31)+2, temp_r29[temp_r31], 0); - temp_r27 = HuSprAnimReadFile(0x62007B); - temp_r26 = HuSprCreate(temp_r27, 2, GWPlayerCfg[temp_r31].diff); - HuSprGrpMemberSet(temp_r28, (4*temp_r31)+3, temp_r26); - HuSprPosSet(temp_r28, (4*temp_r31)+3, temp_r29[temp_r31], 38); - if(!GWPlayerCfg[temp_r31].iscom) { - HuSprAttrSet(temp_r28, (4*temp_r31)+3, HUSPR_ATTR_DISPOFF); - } - } - temp_r25 = HuSprGrpCreate(8); - temp_r27 = HuSprAnimRead(HuDataReadNum(0x620065, MEMORY_DEFAULT_NUM)); - temp_r21 = HuSprAnimRead(HuDataReadNum(0x620066, MEMORY_DEFAULT_NUM)); - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r26 = HuSprCreate(temp_r27, 3, temp_r31); - HuSprGrpMemberSet(temp_r25, (temp_r31*2), temp_r26); - HuSprPosSet(temp_r25, (temp_r31*2), ((temp_r31%2)*380)-190, ((temp_r31/2)*156)-68); - temp_r26 = HuSprCreate(temp_r21, 4, temp_r31); - HuSprGrpMemberSet(temp_r25, (temp_r31*2)+1, temp_r26); - HuSprTPLvlSet(temp_r25, (temp_r31*2)+1, 0.5f); - HuSprPosSet(temp_r25, (temp_r31*2)+1, ((temp_r31%2)*380)-190, ((temp_r31/2)*156)-60); - } - espTPLvlSet(lbl_1_bss_2C2C[22], 0.9f); - espAttrReset(lbl_1_bss_2C2C[22], HUSPR_ATTR_DISPOFF); - espAttrReset(lbl_1_bss_2C2C[24], HUSPR_ATTR_DISPOFF); - espAttrReset(lbl_1_bss_2C2C[23], HUSPR_ATTR_DISPOFF); - espAttrReset(lbl_1_bss_2C2C[25], HUSPR_ATTR_DISPOFF); - espAttrReset(lbl_1_bss_2C2C[26], HUSPR_ATTR_DISPOFF); - espBankSet(lbl_1_bss_2C2C[25], 1); - espPosSet(lbl_1_bss_2C2C[22], 288, 240); - for(temp_r31=0; temp_r31<=30; temp_r31++) { - if(temp_r31 <= 20) { - temp_f30 = temp_r31/20.0; - temp_f31 = -300+(560*sind(temp_f30*90.0f)); - espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); - espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31-50); - espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31+20); - espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31+20); - espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31+20); - HuSprGrpPosSet(temp_r28, 288, temp_f31+20); - HuSprGrpPosSet(temp_r25, 288, temp_f31); - } else { - temp_f30 = (temp_r31-20)/10.0; - temp_f31 = 240+(20*cosd(temp_f30*90.0f)); - espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); - espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31-50); - espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31+20); - espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31+20); - espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31+20); - HuSprGrpPosSet(temp_r28, 288, temp_f31+20); - HuSprGrpPosSet(temp_r25, 288, temp_f31); - } - HuPrcVSleep(); - } - temp_r24 = fn_1_25CA8(0x1A0020); - temp_r22 = &winData[temp_r24]; - HuWinPriSet(temp_r24, 5); - HuWinPosSet(temp_r24, (576.0f-temp_r22->w)/2.0f, 310.0f); - temp_r30 = 0; - temp_r23 = 0; - while(1) { - s16 spC; - HuPrcVSleep(); - if(HuPadBtnDown[0] & PAD_BUTTON_B) { - HuAudFXPlay(3); - goto loop_end; - } - spC = 0; - if(HuPadDStkRep[0] & PAD_BUTTON_LEFT) { - HuAudFXPlay(772); - for(temp_r31=0; temp_r31<=5; temp_r31++) { - temp_f30 = temp_r31/5.0; - espPosSet(lbl_1_bss_2C2C[26], 108-(10*sind(temp_f30*90.0f)), 20+temp_f31); - HuPrcVSleep(); - } - temp_r30--; - if(mgTypeCurr == 1) { - if(temp_r30 < 0) { - temp_r30 = 3; - } - if(temp_r30 >= 4) { - temp_r30 = 0; - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - HuSprPosSet(temp_r28, lbl_1_data_100[(temp_r30*4)+temp_r31]*4, temp_r29[temp_r31], 0); - HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30*4)+temp_r31]*4)+2, temp_r29[temp_r31], 0); - HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30*4)+temp_r31]*4)+3, temp_r29[temp_r31], 38); - } - } else { - if(temp_r30 < 0) { - temp_r30 = 2; - } - if(temp_r30 >= 3) { - temp_r30 = 0; - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - HuSprPosSet(temp_r28, lbl_1_data_110[(temp_r30*4)+temp_r31]*4, temp_r29[temp_r31], 0); - HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30*4)+temp_r31]*4)+2, temp_r29[temp_r31], 0); - HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30*4)+temp_r31]*4)+3, temp_r29[temp_r31], 38); - } - } - for(temp_r31=0; temp_r31<=5; temp_r31++) { - temp_f30 = temp_r31/5.0; - espPosSet(lbl_1_bss_2C2C[26], 108-(10*cosd(temp_f30*90.0f)), 20+temp_f31); - HuPrcVSleep(); - } - } else if(HuPadDStkRep[0] & PAD_BUTTON_RIGHT) { - HuAudFXPlay(772); - for(temp_r31=0; temp_r31<=5; temp_r31++) { - temp_f30 = temp_r31/5.0; - espPosSet(lbl_1_bss_2C2C[25], 468+(10*sind(temp_f30*90.0f)), 20+temp_f31); - HuPrcVSleep(); - } - temp_r30++; - if(mgTypeCurr == 1) { - if(temp_r30 < 0) { - temp_r30 = 3; - } - if(temp_r30 >= 4) { - temp_r30 = 0; - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - HuSprPosSet(temp_r28, lbl_1_data_100[(temp_r30*4)+temp_r31]*4, temp_r29[temp_r31], 0); - HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30*4)+temp_r31]*4)+2, temp_r29[temp_r31], 0); - HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30*4)+temp_r31]*4)+3, temp_r29[temp_r31], 38); - } - } else { - if(temp_r30 < 0) { - temp_r30 = 2; - } - if(temp_r30 >= 3) { - temp_r30 = 0; - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - HuSprPosSet(temp_r28, lbl_1_data_110[(temp_r30*4)+temp_r31]*4, temp_r29[temp_r31], 0); - HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30*4)+temp_r31]*4)+2, temp_r29[temp_r31], 0); - HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30*4)+temp_r31]*4)+3, temp_r29[temp_r31], 38); - } - } - for(temp_r31=0; temp_r31<=5; temp_r31++) { - temp_f30 = temp_r31/5.0; - espPosSet(lbl_1_bss_2C2C[25], 468+(10*cosd(temp_f30*90.0f)), 20+temp_f31); - HuPrcVSleep(); - } - } - if(HuPadBtnDown[0] & (PAD_BUTTON_A|PAD_BUTTON_START)) { - break; - } - } - HuAudFXPlay(773); - if(mgTypeCurr == 1) { - GWPlayerCfg[lbl_1_data_100[temp_r30*4]].group = 0; - for(temp_r31=1; temp_r31<4; temp_r31++) { - GWPlayerCfg[lbl_1_data_100[(temp_r30*4)+temp_r31]].group = 1; - } - } else { - for(temp_r31=0; temp_r31<2; temp_r31++) { - GWPlayerCfg[lbl_1_data_110[(temp_r30*4)+temp_r31]].group = 0; - } - for(temp_r31=2; temp_r31<4; temp_r31++) { - GWPlayerCfg[lbl_1_data_110[(temp_r30*4)+temp_r31]].group = 1; - } - } - if(arg0 != 0) { - temp_r23 = 1; - } else { - return 1; - } - loop_end: - fn_1_25E74(temp_r24); - for(temp_r31=0; temp_r31<=30; temp_r31++) { - if(temp_r31 <= 10) { - temp_f30 = temp_r31/10.0; - temp_f31 = 240+(20*sind(temp_f30*90.0f)); - espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); - espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31-50); - espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31+20); - espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31+20); - espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31+20); - HuSprGrpPosSet(temp_r28, 288, temp_f31+20); - HuSprGrpPosSet(temp_r25, 288, temp_f31); - } else { - temp_f30 = (temp_r31-10)/20.0; - temp_f31 = -300+(560*cosd(temp_f30*90.0f)); - espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); - espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31-50); - espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31+20); - espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31+20); - espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31+20); - HuSprGrpPosSet(temp_r28, 288, temp_f31+20); - HuSprGrpPosSet(temp_r25, 288, temp_f31); - } - HuPrcVSleep(); - } - HuSprGrpKill(temp_r28); - HuSprGrpKill(temp_r25); - return temp_r23; -} \ No newline at end of file + s16 temp_r31; + s16 temp_r30; + float *temp_r29; + s16 temp_r28; + AnimData *temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + s16 temp_r23; + WindowData *temp_r22; + AnimData *temp_r21; + + float temp_f31; + float temp_f30; + float temp_f29; + if (mgTypeCurr == 1) { + temp_r29 = &lbl_1_data_E0[0][0]; + temp_f29 = 216; + } + else { + temp_r29 = &lbl_1_data_E0[1][0]; + temp_f29 = 288; + } + temp_r28 = HuSprGrpCreate(16); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r27 = HuSprAnimReadFile(lbl_1_bss_8.unk24[temp_r31].unk68 + DATA_MAKE_NUM(DATADIR_MGMODE, 0x67)); + temp_r26 = HuSprCreate(temp_r27, 4, 0); + HuSprGrpMemberSet(temp_r28, 4 * temp_r31, temp_r26); + HuSprPosSet(temp_r28, 4 * temp_r31, temp_r29[temp_r31], 0); + if (mgTypeCurr == 1) { + if (temp_r31 == 0) { + temp_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x75)); + } + else { + temp_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x76)); + } + } + else { + if (temp_r31 < 2) { + temp_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x75)); + } + else { + temp_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x76)); + } + } + temp_r26 = HuSprCreate(temp_r27, 3, 0); + HuSprGrpMemberSet(temp_r28, (4 * temp_r31) + 1, temp_r26); + HuSprPosSet(temp_r28, (4 * temp_r31) + 1, temp_r29[temp_r31], 0); + if (GWPlayerCfg[temp_r31].iscom) { + temp_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x74)); + } + else { + temp_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x70) + GWPlayerCfg[temp_r31].pad_idx); + } + temp_r26 = HuSprCreate(temp_r27, 2, 1); + HuSprGrpMemberSet(temp_r28, (4 * temp_r31) + 2, temp_r26); + HuSprPosSet(temp_r28, (4 * temp_r31) + 2, temp_r29[temp_r31], 0); + temp_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x7B)); + temp_r26 = HuSprCreate(temp_r27, 2, GWPlayerCfg[temp_r31].diff); + HuSprGrpMemberSet(temp_r28, (4 * temp_r31) + 3, temp_r26); + HuSprPosSet(temp_r28, (4 * temp_r31) + 3, temp_r29[temp_r31], 38); + if (!GWPlayerCfg[temp_r31].iscom) { + HuSprAttrSet(temp_r28, (4 * temp_r31) + 3, HUSPR_ATTR_DISPOFF); + } + } + temp_r25 = HuSprGrpCreate(8); + temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 0x65), MEMORY_DEFAULT_NUM)); + temp_r21 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 0x66), MEMORY_DEFAULT_NUM)); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r26 = HuSprCreate(temp_r27, 3, temp_r31); + HuSprGrpMemberSet(temp_r25, (temp_r31 * 2), temp_r26); + HuSprPosSet(temp_r25, (temp_r31 * 2), ((temp_r31 % 2) * 380) - 190, ((temp_r31 / 2) * 156) - 68); + temp_r26 = HuSprCreate(temp_r21, 4, temp_r31); + HuSprGrpMemberSet(temp_r25, (temp_r31 * 2) + 1, temp_r26); + HuSprTPLvlSet(temp_r25, (temp_r31 * 2) + 1, 0.5f); + HuSprPosSet(temp_r25, (temp_r31 * 2) + 1, ((temp_r31 % 2) * 380) - 190, ((temp_r31 / 2) * 156) - 60); + } + espTPLvlSet(lbl_1_bss_2C2C[22], 0.9f); + espAttrReset(lbl_1_bss_2C2C[22], HUSPR_ATTR_DISPOFF); + espAttrReset(lbl_1_bss_2C2C[24], HUSPR_ATTR_DISPOFF); + espAttrReset(lbl_1_bss_2C2C[23], HUSPR_ATTR_DISPOFF); + espAttrReset(lbl_1_bss_2C2C[25], HUSPR_ATTR_DISPOFF); + espAttrReset(lbl_1_bss_2C2C[26], HUSPR_ATTR_DISPOFF); + espBankSet(lbl_1_bss_2C2C[25], 1); + espPosSet(lbl_1_bss_2C2C[22], 288, 240); + for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { + if (temp_r31 <= 20) { + temp_f30 = temp_r31 / 20.0; + temp_f31 = -300 + (560 * sind(temp_f30 * 90.0f)); + espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); + espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31 - 50); + espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31 + 20); + espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31 + 20); + espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31 + 20); + HuSprGrpPosSet(temp_r28, 288, temp_f31 + 20); + HuSprGrpPosSet(temp_r25, 288, temp_f31); + } + else { + temp_f30 = (temp_r31 - 20) / 10.0; + temp_f31 = 240 + (20 * cosd(temp_f30 * 90.0f)); + espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); + espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31 - 50); + espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31 + 20); + espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31 + 20); + espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31 + 20); + HuSprGrpPosSet(temp_r28, 288, temp_f31 + 20); + HuSprGrpPosSet(temp_r25, 288, temp_f31); + } + HuPrcVSleep(); + } + temp_r24 = fn_1_25CA8(0x1A0020); + temp_r22 = &winData[temp_r24]; + HuWinPriSet(temp_r24, 5); + HuWinPosSet(temp_r24, (576.0f - temp_r22->w) / 2.0f, 310.0f); + temp_r30 = 0; + temp_r23 = 0; + while (1) { + s16 spC; + HuPrcVSleep(); + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + goto loop_end; + } + spC = 0; + if (HuPadDStkRep[0] & PAD_BUTTON_LEFT) { + HuAudFXPlay(772); + for (temp_r31 = 0; temp_r31 <= 5; temp_r31++) { + temp_f30 = temp_r31 / 5.0; + espPosSet(lbl_1_bss_2C2C[26], 108 - (10 * sind(temp_f30 * 90.0f)), 20 + temp_f31); + HuPrcVSleep(); + } + temp_r30--; + if (mgTypeCurr == 1) { + if (temp_r30 < 0) { + temp_r30 = 3; + } + if (temp_r30 >= 4) { + temp_r30 = 0; + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + HuSprPosSet(temp_r28, lbl_1_data_100[(temp_r30 * 4) + temp_r31] * 4, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30 * 4) + temp_r31] * 4) + 2, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30 * 4) + temp_r31] * 4) + 3, temp_r29[temp_r31], 38); + } + } + else { + if (temp_r30 < 0) { + temp_r30 = 2; + } + if (temp_r30 >= 3) { + temp_r30 = 0; + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + HuSprPosSet(temp_r28, lbl_1_data_110[(temp_r30 * 4) + temp_r31] * 4, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30 * 4) + temp_r31] * 4) + 2, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30 * 4) + temp_r31] * 4) + 3, temp_r29[temp_r31], 38); + } + } + for (temp_r31 = 0; temp_r31 <= 5; temp_r31++) { + temp_f30 = temp_r31 / 5.0; + espPosSet(lbl_1_bss_2C2C[26], 108 - (10 * cosd(temp_f30 * 90.0f)), 20 + temp_f31); + HuPrcVSleep(); + } + } + else if (HuPadDStkRep[0] & PAD_BUTTON_RIGHT) { + HuAudFXPlay(772); + for (temp_r31 = 0; temp_r31 <= 5; temp_r31++) { + temp_f30 = temp_r31 / 5.0; + espPosSet(lbl_1_bss_2C2C[25], 468 + (10 * sind(temp_f30 * 90.0f)), 20 + temp_f31); + HuPrcVSleep(); + } + temp_r30++; + if (mgTypeCurr == 1) { + if (temp_r30 < 0) { + temp_r30 = 3; + } + if (temp_r30 >= 4) { + temp_r30 = 0; + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + HuSprPosSet(temp_r28, lbl_1_data_100[(temp_r30 * 4) + temp_r31] * 4, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30 * 4) + temp_r31] * 4) + 2, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_100[(temp_r30 * 4) + temp_r31] * 4) + 3, temp_r29[temp_r31], 38); + } + } + else { + if (temp_r30 < 0) { + temp_r30 = 2; + } + if (temp_r30 >= 3) { + temp_r30 = 0; + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + HuSprPosSet(temp_r28, lbl_1_data_110[(temp_r30 * 4) + temp_r31] * 4, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30 * 4) + temp_r31] * 4) + 2, temp_r29[temp_r31], 0); + HuSprPosSet(temp_r28, (lbl_1_data_110[(temp_r30 * 4) + temp_r31] * 4) + 3, temp_r29[temp_r31], 38); + } + } + for (temp_r31 = 0; temp_r31 <= 5; temp_r31++) { + temp_f30 = temp_r31 / 5.0; + espPosSet(lbl_1_bss_2C2C[25], 468 + (10 * cosd(temp_f30 * 90.0f)), 20 + temp_f31); + HuPrcVSleep(); + } + } + if (HuPadBtnDown[0] & (PAD_BUTTON_A | PAD_BUTTON_START)) { + break; + } + } + HuAudFXPlay(773); + if (mgTypeCurr == 1) { + GWPlayerCfg[lbl_1_data_100[temp_r30 * 4]].group = 0; + for (temp_r31 = 1; temp_r31 < 4; temp_r31++) { + GWPlayerCfg[lbl_1_data_100[(temp_r30 * 4) + temp_r31]].group = 1; + } + } + else { + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + GWPlayerCfg[lbl_1_data_110[(temp_r30 * 4) + temp_r31]].group = 0; + } + for (temp_r31 = 2; temp_r31 < 4; temp_r31++) { + GWPlayerCfg[lbl_1_data_110[(temp_r30 * 4) + temp_r31]].group = 1; + } + } + if (arg0 != 0) { + temp_r23 = 1; + } + else { + return 1; + } +loop_end: + fn_1_25E74(temp_r24); + for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { + if (temp_r31 <= 10) { + temp_f30 = temp_r31 / 10.0; + temp_f31 = 240 + (20 * sind(temp_f30 * 90.0f)); + espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); + espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31 - 50); + espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31 + 20); + espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31 + 20); + espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31 + 20); + HuSprGrpPosSet(temp_r28, 288, temp_f31 + 20); + HuSprGrpPosSet(temp_r25, 288, temp_f31); + } + else { + temp_f30 = (temp_r31 - 10) / 20.0; + temp_f31 = -300 + (560 * cosd(temp_f30 * 90.0f)); + espPosSet(lbl_1_bss_2C2C[22], 288, temp_f31); + espPosSet(lbl_1_bss_2C2C[24], 288, temp_f31 - 50); + espPosSet(lbl_1_bss_2C2C[23], temp_f29, temp_f31 + 20); + espPosSet(lbl_1_bss_2C2C[26], 108, temp_f31 + 20); + espPosSet(lbl_1_bss_2C2C[25], 468, temp_f31 + 20); + HuSprGrpPosSet(temp_r28, 288, temp_f31 + 20); + HuSprGrpPosSet(temp_r25, 288, temp_f31); + } + HuPrcVSleep(); + } + HuSprGrpKill(temp_r28); + HuSprGrpKill(temp_r25); + return temp_r23; +} diff --git a/src/REL/mgmodedll/mgmode.c b/src/REL/mgmodedll/mgmode.c index 763a8cd3..b4565103 100644 --- a/src/REL/mgmodedll/mgmode.c +++ b/src/REL/mgmodedll/mgmode.c @@ -1321,7 +1321,7 @@ void fn_1_6C18(void) HuSprInit(); espInit(); HuPrcVSleep(); - sprite = espEntry(0x860020, 5000, 0); + sprite = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 0x20), 5000, 0); espPosSet(sprite, 288.0, 240.0); espAttrReset(sprite, 4); Hu3DBGColorSet(0, 0, 0); @@ -1337,4 +1337,4 @@ void fn_1_6C18(void) while(WipeStatGet()) { HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/REL/mgmodedll/minigame.c b/src/REL/mgmodedll/minigame.c index fee4e1a9..34a304a9 100644 --- a/src/REL/mgmodedll/minigame.c +++ b/src/REL/mgmodedll/minigame.c @@ -1,14 +1,13 @@ #include "REL/mgmodedll.h" -#include "game/gamework_data.h" -#include "game/gamework.h" -#include "game/wipe.h" #include "game/audio.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/wipe.h" #include "game/chrman.h" #include "math.h" - s16 lbl_1_bss_2C80[13]; s16 lbl_1_bss_2C66[13]; s16 lbl_1_bss_2C2C[29]; @@ -24,25 +23,25 @@ s16 lbl_1_bss_20AA; s16 lbl_1_bss_20A8; s32 lbl_1_data_9C0[8] = { - 0x005F0000, - 0x001A0000, - 0x006D0000, - 0x008A0000, - 0x00850000, - 0x00110000, - 0x000D0000, - 0x00810000 + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), }; s32 lbl_1_data_9E0[8] = { - 0x005E0000, - 0x00190000, - 0x006C0000, - 0x00890000, - 0x00840000, - 0x00100000, - 0x000C0000, - 0x00800000 + DATADIR_MARIOMDL1, + DATADIR_LUIGIMDL1, + DATADIR_PEACHMDL1, + DATADIR_YOSHIMDL1, + DATADIR_WARIOMDL1, + DATADIR_DONKEYMDL1, + DATADIR_DAISYMDL1, + DATADIR_WALUIGIMDL1, }; s16 lbl_1_data_A00 = -1; @@ -51,111 +50,111 @@ void fn_1_26C54(s16 layer); void fn_1_26C28(void) { - Hu3DLayerHookSet(2, fn_1_26C54); + Hu3DLayerHookSet(2, fn_1_26C54); } void fn_1_26C54(s16 layer) { - Mtx44 proj; - Mtx modelview; - Vec pos, target, up; - GXColor color; - CameraData *camera = &Hu3DCamera[0]; - MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far); - GXSetProjection(proj, GX_PERSPECTIVE); - GXSetViewport(0, 0, 640, 480, 0, 1); - GXSetScissor(0, 0, 640, 480); - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - color.a = 255; - GXSetTevColor(GX_TEVREG0, color); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetNumTexGens(0); - GXSetNumTevStages(01); - GXSetCullMode(GX_CULL_NONE); - GXSetAlphaCompare(GX_GEQUAL, 0, GX_AOP_AND, GX_GEQUAL, 0); - GXSetZMode(GX_TRUE, GX_ALWAYS, GX_TRUE); - pos.x = pos.y = pos.z = 0; - target.x = target.y = 0; - target.z = -100; - up.x = up.z = 0; - up.y = 1; - MTXLookAt(modelview, &pos, &up, &target); - GXLoadPosMtxImm(modelview, GX_PNMTX0); - pos.x = (10000.0f*(-sin(camera->fov/2.0f)))*1.2f; - pos.y = (10000.0f*(-sin(camera->fov/2.0f)))*(5.0f/6.0f); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32(-pos.x, -pos.y, -10000.0f); - GXPosition3f32(pos.x, -pos.y, -10000.0f); - GXPosition3f32(pos.x, pos.y, -10000.0f); - GXPosition3f32(-pos.x, pos.y, -10000.0f); - GXEnd(); + Mtx44 proj; + Mtx modelview; + Vec pos, target, up; + GXColor color; + CameraData *camera = &Hu3DCamera[0]; + MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far); + GXSetProjection(proj, GX_PERSPECTIVE); + GXSetViewport(0, 0, 640, 480, 0, 1); + GXSetScissor(0, 0, 640, 480); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + color.a = 255; + GXSetTevColor(GX_TEVREG0, color); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumTexGens(0); + GXSetNumTevStages(01); + GXSetCullMode(GX_CULL_NONE); + GXSetAlphaCompare(GX_GEQUAL, 0, GX_AOP_AND, GX_GEQUAL, 0); + GXSetZMode(GX_TRUE, GX_ALWAYS, GX_TRUE); + pos.x = pos.y = pos.z = 0; + target.x = target.y = 0; + target.z = -100; + up.x = up.z = 0; + up.y = 1; + MTXLookAt(modelview, &pos, &up, &target); + GXLoadPosMtxImm(modelview, GX_PNMTX0); + pos.x = (10000.0f * (-sin(camera->fov / 2.0f))) * 1.2f; + pos.y = (10000.0f * (-sin(camera->fov / 2.0f))) * (5.0f / 6.0f); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-pos.x, -pos.y, -10000.0f); + GXPosition3f32(pos.x, -pos.y, -10000.0f); + GXPosition3f32(pos.x, pos.y, -10000.0f); + GXPosition3f32(-pos.x, pos.y, -10000.0f); + GXEnd(); } void fn_1_27080(void) { - s16 i; - s32 status; - CharModelDataClose(-1); - CharKill(-1); - for(i=0; i<4; i++) { - status = HuDataDirReadAsync(lbl_1_data_9C0[GWPlayerCfg[i].character]); - if(status != -1) { - while(!HuDataGetAsyncStat(status)) { - HuPrcVSleep(); - } - } - CharARAMOpen(GWPlayerCfg[i].character); - } - for(i=0; i<2; i++) { - status = HuDataDirReadAsync(lbl_1_data_9E0[GWPlayerCfg[i].character]); - if(status != -1) { - while(!HuDataGetAsyncStat(status)) { - HuPrcVSleep(); - } - } - } - lbl_1_bss_20AA = 0; - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } + s16 i; + s32 status; + CharModelDataClose(-1); + CharKill(-1); + for (i = 0; i < 4; i++) { + status = HuDataDirReadAsync(lbl_1_data_9C0[GWPlayerCfg[i].character]); + if (status != -1) { + while (!HuDataGetAsyncStat(status)) { + HuPrcVSleep(); + } + } + CharARAMOpen(GWPlayerCfg[i].character); + } + for (i = 0; i < 2; i++) { + status = HuDataDirReadAsync(lbl_1_data_9E0[GWPlayerCfg[i].character]); + if (status != -1) { + while (!HuDataGetAsyncStat(status)) { + HuPrcVSleep(); + } + } + } + lbl_1_bss_20AA = 0; + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } - s16 fn_1_271B4(s16 mgNo, s16 x, s16 y) { - s16 time; - AnimData *anim; - s16 sprite; - s32 mgpic; - if(mgNo == -1) { - if(lbl_1_data_A00 == -1) { + s16 time; + AnimData *anim; + s16 sprite; + s32 mgpic; + if (mgNo == -1) { + if (lbl_1_data_A00 == -1) { return; - } - for(time=0; time<=10; time++) { - HuSprGrpTPLvlSet(lbl_1_data_A00, 1.0-(time/10.0)); + } + for (time = 0; time <= 10; time++) { + HuSprGrpTPLvlSet(lbl_1_data_A00, 1.0 - (time / 10.0)); HuPrcVSleep(); } HuSprGrpKill(lbl_1_data_A00); lbl_1_data_A00 = -1; return; - } - - if(lbl_1_data_A00 != -1) { + } + + if (lbl_1_data_A00 != -1) { HuSprGrpKill(lbl_1_data_A00); } lbl_1_data_A00 = HuSprGrpCreate(1); mgpic = mgInfoTbl[mgNo].mg_pic[0]; - if(GWMGAvailGet(mgNo+401)) { + if (GWMGAvailGet(mgNo + 401)) { anim = HuSprAnimReadFile(mgpic); - } else { - anim = HuSprAnimReadFile(0x62002C); + } + else { + anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 0x2C)); } sprite = HuSprCreate(anim, 100, 0); HuSprGrpMemberSet(lbl_1_data_A00, 0, sprite); @@ -167,110 +166,111 @@ s16 fn_1_271B4(s16 mgNo, s16 x, s16 y) void fn_1_27418(void) { - s16 i; - s16 j; - for(i=0; i<4; i++) { - lbl_1_bss_2C1C[i] = i; - } - for(i=0; i<4; i++) { - for(j=0; j<3-i; j++) { - if(GWPlayerCfg[lbl_1_bss_2C1C[j]].group > GWPlayerCfg[lbl_1_bss_2C1C[j+1]].group) { - s16 temp = lbl_1_bss_2C1C[j]; - lbl_1_bss_2C1C[j] = lbl_1_bss_2C1C[j+1]; - lbl_1_bss_2C1C[j+1] = temp; - } - } - } - for(i=0; i<4; i++) { - s16 charNo; - lbl_1_bss_2C24[i] = charNo = GWPlayerCfg[lbl_1_bss_2C1C[i]].character; - lbl_1_bss_2C14[i] = CharModelCreate(charNo, 2); - lbl_1_bss_2BC4[i][0] = CharModelMotionCreate(charNo, 0x5F0000); - lbl_1_bss_2BC4[i][1] = CharModelMotionCreate(charNo, 0x5F0002); - lbl_1_bss_2BC4[i][2] = CharModelMotionCreate(charNo, 0x5F0003); - lbl_1_bss_2BC4[i][3] = CharModelMotionCreate(charNo, 0x5F0048); - lbl_1_bss_2BC4[i][4] = CharModelMotionCreate(charNo, 0x5F0049); - lbl_1_bss_2BC4[i][5] = CharModelMotionCreate(charNo, 0x5F0017); - lbl_1_bss_2BC4[i][6] = CharModelMotionCreate(charNo, 0x5F0018); - CharModelVoiceEnableSet(GWPlayerCfg[lbl_1_bss_2C1C[i]].character, lbl_1_bss_2BC4[i][1], 0); - CharModelVoiceEnableSet(GWPlayerCfg[lbl_1_bss_2C1C[i]].character, lbl_1_bss_2BC4[i][2], 0); - Hu3DModelPosSet(lbl_1_bss_2C14[i], 600, 0, 800); - Hu3DModelLayerSet(lbl_1_bss_2C14[i], 3); - CharModelDataClose(charNo); - Hu3DModelShadowSet(lbl_1_bss_2C14[i]); - } + s16 i; + s16 j; + for (i = 0; i < 4; i++) { + lbl_1_bss_2C1C[i] = i; + } + for (i = 0; i < 4; i++) { + for (j = 0; j < 3 - i; j++) { + if (GWPlayerCfg[lbl_1_bss_2C1C[j]].group > GWPlayerCfg[lbl_1_bss_2C1C[j + 1]].group) { + s16 temp = lbl_1_bss_2C1C[j]; + lbl_1_bss_2C1C[j] = lbl_1_bss_2C1C[j + 1]; + lbl_1_bss_2C1C[j + 1] = temp; + } + } + } + for (i = 0; i < 4; i++) { + s16 charNo; + lbl_1_bss_2C24[i] = charNo = GWPlayerCfg[lbl_1_bss_2C1C[i]].character; + lbl_1_bss_2C14[i] = CharModelCreate(charNo, 2); + lbl_1_bss_2BC4[i][0] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + lbl_1_bss_2BC4[i][1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); + lbl_1_bss_2BC4[i][2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03)); + lbl_1_bss_2BC4[i][3] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48)); + lbl_1_bss_2BC4[i][4] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49)); + lbl_1_bss_2BC4[i][5] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17)); + lbl_1_bss_2BC4[i][6] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18)); + CharModelVoiceEnableSet(GWPlayerCfg[lbl_1_bss_2C1C[i]].character, lbl_1_bss_2BC4[i][1], 0); + CharModelVoiceEnableSet(GWPlayerCfg[lbl_1_bss_2C1C[i]].character, lbl_1_bss_2BC4[i][2], 0); + Hu3DModelPosSet(lbl_1_bss_2C14[i], 600, 0, 800); + Hu3DModelLayerSet(lbl_1_bss_2C14[i], 3); + CharModelDataClose(charNo); + Hu3DModelShadowSet(lbl_1_bss_2C14[i]); + } } s32 fn_1_2783C(s16 evtno) { - s16 i; - omOvlHisData *his; - for(i=0; i<4; i++) { - GWPlayerCfg[i].character = lbl_1_bss_8.unk24[i].unk68; - GWPlayerCfg[i].iscom = lbl_1_bss_8.unk24[i].unk60; - GWPlayerCfg[i].pad_idx = lbl_1_bss_8.unk24[i].unk6C; - GWPlayerCfg[i].diff = lbl_1_bss_8.unk24[i].unk64; - } - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - HuAudSeqAllFadeOut(1000); - while(WipeStatGet()) { - HuPrcVSleep(); - } - CharKill(-1); - for(i=0; i<4; i++) { - CharARAMOpen(GWPlayerCfg[i].character); - } - HuAudVoiceInit(-1); - his = omOvlHisGet(0); - omOvlHisChg(0, OVL_MGMODE, evtno, his->stat); - omOvlCallEx(OVL_INST, 1, 0, 0); - while(1) { - HuPrcVSleep(); - } + s16 i; + omOvlHisData *his; + for (i = 0; i < 4; i++) { + GWPlayerCfg[i].character = lbl_1_bss_8.unk24[i].unk68; + GWPlayerCfg[i].iscom = lbl_1_bss_8.unk24[i].unk60; + GWPlayerCfg[i].pad_idx = lbl_1_bss_8.unk24[i].unk6C; + GWPlayerCfg[i].diff = lbl_1_bss_8.unk24[i].unk64; + } + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudSeqAllFadeOut(1000); + while (WipeStatGet()) { + HuPrcVSleep(); + } + CharKill(-1); + for (i = 0; i < 4; i++) { + CharARAMOpen(GWPlayerCfg[i].character); + } + HuAudVoiceInit(-1); + his = omOvlHisGet(0); + omOvlHisChg(0, OVL_MGMODE, evtno, his->stat); + omOvlCallEx(OVL_INST, 1, 0, 0); + while (1) { + HuPrcVSleep(); + } } void fn_1_279FC(s32 coinSkipF) { - s16 i; - s16 mgNum; - for(mgNum=0; mgInfoTbl[mgNum].ovl != 65535; mgNum++); - for(i=0; i<9; i++) { - lbl_1_bss_2638[i] = lbl_1_bss_20AC[i] = 0; - } - for(i=0; i= 0 && type < 9) { - if(coinSkipF) { - s16 ovl = mgInfoTbl[i].ovl; - if(ovl == OVL_M408 || ovl == OVL_M422 || ovl == OVL_M430) { - continue; - } - } - lbl_1_bss_264C[type][lbl_1_bss_2638[type]] = i; - lbl_1_bss_2638[type]++; - if(GWMGAvailGet(i+401)) { - lbl_1_bss_20C0[type][lbl_1_bss_20AC[type]] = i; - lbl_1_bss_20AC[type]++; - } - } - } + s16 i; + s16 mgNum; + for (mgNum = 0; mgInfoTbl[mgNum].ovl != 65535; mgNum++) + ; + for (i = 0; i < 9; i++) { + lbl_1_bss_2638[i] = lbl_1_bss_20AC[i] = 0; + } + for (i = 0; i < mgNum; i++) { + s16 type = mgInfoTbl[i].type; + if (type >= 0 && type < 9) { + if (coinSkipF) { + s16 ovl = mgInfoTbl[i].ovl; + if (ovl == OVL_M408 || ovl == OVL_M422 || ovl == OVL_M430) { + continue; + } + } + lbl_1_bss_264C[type][lbl_1_bss_2638[type]] = i; + lbl_1_bss_2638[type]++; + if (GWMGAvailGet(i + 401)) { + lbl_1_bss_20C0[type][lbl_1_bss_20AC[type]] = i; + lbl_1_bss_20AC[type]++; + } + } + } } void fn_1_27C0C(s16 type) { - s16 i; - s16 j; - for(i=0; i<256;) { - for(j=0; j 256) { - break; - } - mgIndexList[i] = lbl_1_bss_20C0[type][j]; - } - } - for(i=0; i<256; i++) { - mgIndexList[i]; - } - lbl_801D3E94 = 0; -} \ No newline at end of file + s16 i; + s16 j; + for (i = 0; i < 256;) { + for (j = 0; j < lbl_1_bss_20AC[type]; j++, i++) { + if (i > 256) { + break; + } + mgIndexList[i] = lbl_1_bss_20C0[type][j]; + } + } + for (i = 0; i < 256; i++) { + mgIndexList[i]; + } + lbl_801D3E94 = 0; +} diff --git a/src/REL/modeltestDll/main.c b/src/REL/modeltestDll/main.c index 7921f251..85e6f2ad 100644 --- a/src/REL/modeltestDll/main.c +++ b/src/REL/modeltestDll/main.c @@ -1,43 +1,43 @@ #define HUSPR_USE_OLD_DEFS -#include "math.h" #include "game/chrman.h" -#include "game/object.h" -#include "game/wipe.h" -#include "game/pad.h" -#include "game/hsfanim.h" -#include "game/hsfmotion.h" -#include "game/hsfex.h" -#include "game/printfunc.h" -#include "game/window.h" #include "game/gamework_data.h" -#include "game/sprite.h" +#include "game/hsfanim.h" +#include "game/hsfex.h" +#include "game/hsfmotion.h" #include "game/minigame_seq.h" +#include "game/object.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "math.h" #include "REL/modeltestDll.h" // -------------------------------------------------------------------------- // s32 lbl_1_data_0[8] = { - 0x005F001B, - 0x005F0015, - 0x005F0016, - 0x005F0006, - 0x005F0000, - 0x005F0000, - 0x005F0000, - 0x005F0004, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1B), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x15), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x16), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x04), }; const f64 unk_rodata_0 = 0.5; const f64 unk_rodata_8 = 3.0; -omObjData * lbl_1_bss_9A4; -omObjData * lbl_1_bss_9A0; +omObjData *lbl_1_bss_9A4; +omObjData *lbl_1_bss_9A0; // -------------------------------------------------------------------------- // void ObjectSetup(void) { - Process * prc; + Process *prc; OSReport("******* MODELTESTObjectSetup *********\n"); prc = omInitObjMan(0x32, 0x2000); @@ -64,108 +64,110 @@ void ObjectSetup(void) // -------------------------------------------------------------------------- // -char * lbl_1_data_D8[16] = { - "target1A", - "target1B", - "target2A", - "target2B", - "target3A", - "target3B", - "target4A", - "target4B", - "target5A", - "target5B", - "target6A", - "target6B", - "target7A", - "target7B", - "target8A", - "target8B" -}; - +char *lbl_1_data_D8[16] = { "target1A", "target1B", "target2A", "target2B", "target3A", "target3B", "target4A", "target4B", "target5A", "target5B", + "target6A", "target6B", "target7A", "target7B", "target8A", "target8B" }; HsfanimStruct00 lbl_1_data_118 = { - /* unk00 */ 40, - /* unk02 */ {0, 0}, - /* unk04 */ 50.0f, - /* unk08 */ 0.0f, - /* unk0C */ 90.0f, - /* unk10 */ { /* x */ 0.0f, /* y */ -0.05000000074505806f, /* z */ 0.0f}, - /* unk1C */ 50.0f, - /* unk20 */ 0.800000011920929f, - /* unk24 */ 20.0f, - /* unk28 */ 0.9900000095367432f, - /* unk2C */ 4, - /* unk2E */ {{ /* r */ 255, /* g */ 255, /* b */ 32, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 0, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 128, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255}}, - /* unk3E */ {{ /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0}}, + /* unk00 */ 40, + /* unk02 */ { 0, 0 }, + /* unk04 */ 50.0f, + /* unk08 */ 0.0f, + /* unk0C */ 90.0f, + /* unk10 */ { /* x */ 0.0f, /* y */ -0.05000000074505806f, /* z */ 0.0f }, + /* unk1C */ 50.0f, + /* unk20 */ 0.800000011920929f, + /* unk24 */ 20.0f, + /* unk28 */ 0.9900000095367432f, + /* unk2C */ 4, + /* unk2E */ + { { /* r */ 255, /* g */ 255, /* b */ 32, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 0, /* a */ 255 }, + { /* r */ 255, /* g */ 255, /* b */ 128, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255 } }, + /* unk3E */ + { { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0 }, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0 }, + { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0 }, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 0 } }, }; -HsfanimStruct00 lbl_1_data_168[2] = { -{ - /* unk00 */ 50, - /* unk02 */ {0, 0}, - /* unk04 */ 5.0f, - /* unk08 */ 10.0f, - /* unk0C */ 10.0f, - /* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f}, - /* unk1C */ 2.0f, - /* unk20 */ 1.0099999904632568f, - /* unk24 */ 30.0f, - /* unk28 */ 0.9900000095367432f, - /* unk2C */ 2, - /* unk2E */ {{ /* r */ 48, /* g */ 48, /* b */ 8, /* a */ 255}, { /* r */ 64, /* g */ 48, /* b */ 8, /* a */ 255}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}}, - /* unk3E */ {{ /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}}, -}, -{ - /* unk00 */ 30, - /* unk02 */ {0, 0}, - /* unk04 */ 3.299999952316284f, - /* unk08 */ 10.0f, - /* unk0C */ 0.0f, - /* unk10 */ { /* x */ 0.0f, /* y */ -0.05000000074505806f, /* z */ 0.0f}, - /* unk1C */ 2.0f, - /* unk20 */ 1.0f, - /* unk24 */ 20.0f, - /* unk28 */ 0.9800000190734863f, - /* unk2C */ 2, - /* unk2E */ {{ /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 64, /* a */ 255}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}}, - /* unk3E */ {{ /* r */ 255, /* g */ 128, /* b */ 128, /* a */ 0}, { /* r */ 255, /* g */ 64, /* b */ 32, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}}, -}}; +HsfanimStruct00 lbl_1_data_168[2] = { { + /* unk00 */ 50, + /* unk02 */ { 0, 0 }, + /* unk04 */ 5.0f, + /* unk08 */ 10.0f, + /* unk0C */ 10.0f, + /* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f }, + /* unk1C */ 2.0f, + /* unk20 */ 1.0099999904632568f, + /* unk24 */ 30.0f, + /* unk28 */ 0.9900000095367432f, + /* unk2C */ 2, + /* unk2E */ + { { /* r */ 48, /* g */ 48, /* b */ 8, /* a */ 255 }, { /* r */ 64, /* g */ 48, /* b */ 8, /* a */ 255 }, + { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } }, + /* unk3E */ + { { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, + { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } }, + }, + { + /* unk00 */ 30, + /* unk02 */ { 0, 0 }, + /* unk04 */ 3.299999952316284f, + /* unk08 */ 10.0f, + /* unk0C */ 0.0f, + /* unk10 */ { /* x */ 0.0f, /* y */ -0.05000000074505806f, /* z */ 0.0f }, + /* unk1C */ 2.0f, + /* unk20 */ 1.0f, + /* unk24 */ 20.0f, + /* unk28 */ 0.9800000190734863f, + /* unk2C */ 2, + /* unk2E */ + { { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 64, /* a */ 255 }, + { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } }, + /* unk3E */ + { { /* r */ 255, /* g */ 128, /* b */ 128, /* a */ 0 }, { /* r */ 255, /* g */ 64, /* b */ 32, /* a */ 0 }, + { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } }, + } }; HsfanimStruct00 lbl_1_data_208 = { - /* unk00 */ 40, - /* unk02 */ {0, 0}, - /* unk04 */ 50.0f, - /* unk08 */ 0.0f, - /* unk0C */ 180.0f, - /* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f}, - /* unk1C */ 30.0f, - /* unk20 */ 0.8999999761581421f, - /* unk24 */ 20.0f, - /* unk28 */ 0.9900000095367432f, - /* unk2C */ 4, - /* unk2E */ {{ /* r */ 255, /* g */ 255, /* b */ 32, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 0, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 128, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255}}, - /* unk3E */ {{ /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}}, + /* unk00 */ 40, + /* unk02 */ { 0, 0 }, + /* unk04 */ 50.0f, + /* unk08 */ 0.0f, + /* unk0C */ 180.0f, + /* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f }, + /* unk1C */ 30.0f, + /* unk20 */ 0.8999999761581421f, + /* unk24 */ 20.0f, + /* unk28 */ 0.9900000095367432f, + /* unk2C */ 4, + /* unk2E */ + { { /* r */ 255, /* g */ 255, /* b */ 32, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 0, /* a */ 255 }, + { /* r */ 255, /* g */ 255, /* b */ 128, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 255, /* a */ 255 } }, + /* unk3E */ + { { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, + { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } }, }; HsfanimStruct00 lbl_1_data_258 = { - /* unk00 */ 30, - /* unk02 */ {0, 0}, - /* unk04 */ 50.0f, - /* unk08 */ 0.0f, - /* unk0C */ 90.0f, - /* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f}, - /* unk1C */ 30.0f, - /* unk20 */ 0.949999988079071f, - /* unk24 */ 20.0f, - /* unk28 */ 0.9900000095367432f, - /* unk2C */ 2, - /* unk2E */ {{ /* r */ 255, /* g */ 16, /* b */ 16, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 16, /* a */ 255}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}}, - /* unk3E */ {{ /* r */ 255, /* g */ 16, /* b */ 16, /* a */ 255}, { /* r */ 255, /* g */ 255, /* b */ 16, /* a */ 255}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0}}, + /* unk00 */ 30, + /* unk02 */ { 0, 0 }, + /* unk04 */ 50.0f, + /* unk08 */ 0.0f, + /* unk0C */ 90.0f, + /* unk10 */ { /* x */ 0.0f, /* y */ 0.0f, /* z */ 0.0f }, + /* unk1C */ 30.0f, + /* unk20 */ 0.949999988079071f, + /* unk24 */ 20.0f, + /* unk28 */ 0.9900000095367432f, + /* unk2C */ 2, + /* unk2E */ + { { /* r */ 255, /* g */ 16, /* b */ 16, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 16, /* a */ 255 }, + { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } }, + /* unk3E */ + { { /* r */ 255, /* g */ 16, /* b */ 16, /* a */ 255 }, { /* r */ 255, /* g */ 255, /* b */ 16, /* a */ 255 }, + { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } }, }; -const Point3d lbl_1_rodata_38 = {0.0f, 0.0f, 0.0f}; -const Point3d lbl_1_rodata_44 = {0.0f, 1.0f, 0.0f}; +const Point3d lbl_1_rodata_38 = { 0.0f, 0.0f, 0.0f }; +const Point3d lbl_1_rodata_44 = { 0.0f, 1.0f, 0.0f }; s16 lbl_1_bss_99C; s16 lbl_1_bss_99A; s16 lbl_1_bss_98A[8]; @@ -178,24 +180,24 @@ s16 lbl_1_bss_664[256]; s16 lbl_1_bss_460[258]; s16 lbl_1_bss_45A[3]; s16 lbl_1_bss_458; -AnimData * lbl_1_bss_454; +AnimData *lbl_1_bss_454; s32 unk_bss_450; HuObjUnk lbl_1_bss_40[20]; -void * lbl_1_bss_30[4]; +void *lbl_1_bss_30[4]; u8 lbl_1_bss_2C; f32 lbl_1_bss_28; s16 lbl_1_bss_24; f32 lbl_1_bss_20; -Process * lbl_1_bss_18[2]; -Process * lbl_1_bss_14; -Process * lbl_1_bss_10; +Process *lbl_1_bss_18[2]; +Process *lbl_1_bss_14; +Process *lbl_1_bss_10; s32 lbl_1_bss_C; f32 lbl_1_bss_8; static u8 unk_bss[8]; // -------------------------------------------------------------------------- // -void fn_1_29C(omObjData * arg0) +void fn_1_29C(omObjData *arg0) { Point3d sp20; Point3d sp14; @@ -205,8 +207,8 @@ void fn_1_29C(omObjData * arg0) s16 temp_r27; u32 temp_r26; s16 temp_r3; - void * temp_r29; - AnimData * temp_r28; + void *temp_r29; + AnimData *temp_r28; f32 temp_r5; f32 temp_f30; s16 chrIdx; @@ -226,8 +228,7 @@ void fn_1_29C(omObjData * arg0) sp20.z = 1000.0f; Hu3DShadowPosSet(&sp20, &sp8, &sp14); - for (var_r31 = 0; var_r31 < 1; ++var_r31) - { + for (var_r31 = 0; var_r31 < 1; ++var_r31) { chrIdx = 0; lbl_1_bss_98A[var_r31] = CharModelCreate(chrIdx, 2); if (var_r31 == 1) { @@ -242,7 +243,7 @@ void fn_1_29C(omObjData * arg0) lbl_1_bss_88A[var_r31][5] = CharModelMotionCreate(chrIdx, lbl_1_data_0[5]); lbl_1_bss_88A[var_r31][6] = CharModelMotionCreate(chrIdx, lbl_1_data_0[6]); lbl_1_bss_88A[var_r31][7] = CharModelMotionCreate(chrIdx, lbl_1_data_0[7]); - lbl_1_bss_88A[var_r31][0] = CharModelMotionCreate(chrIdx, 0x5F004D); + lbl_1_bss_88A[var_r31][0] = CharModelMotionCreate(chrIdx, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x4D)); CharModelMotionSet(chrIdx, lbl_1_bss_88A[var_r31][0]); Hu3DModelAttrSet(lbl_1_bss_98A[var_r31], 0x40000001U); Hu3DModelPosSet(lbl_1_bss_98A[var_r31], (var_r31 / 4 * 0xC8) - 100, 0.0f, -(var_r31 % 4) * 0x96); @@ -256,26 +257,27 @@ void fn_1_29C(omObjData * arg0) temp_r5 = OSTicksToMicroseconds(OSGetTick() - temp_r26); OSReport("time %f\n", US_TO_60TH_SEC(temp_r5)); - var_r31 = Hu3DModelCreateFile(0x700024); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_SAF, 0x24)); Hu3DModelScaleSet(var_r31, 5.0f, 5.0f, 5.0f); Hu3DModelShadowMapSet(var_r31); - var_r31 = Hu3DModelCreateFile(0x26001E); - temp_r27 = Hu3DJointMotion(var_r31, HuDataSelHeapReadNum(0x26002F, 0x10000000, 2)); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M407, 0x1E)); + temp_r27 = Hu3DJointMotion(var_r31, HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M407, 0x2F), MEMORY_DEFAULT_NUM, 2)); Hu3DMotionSet(var_r31, temp_r27); Hu3DModelAttrSet(var_r31, 0x40000001U); for (var_r31 = 0; var_r31 < 10; ++var_r31) { if (var_r31 == 0) { - lbl_1_bss_664[var_r31] = Hu3DModelCreateFile(0x700019); - } else { + lbl_1_bss_664[var_r31] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_SAF, 0x19)); + } + else { lbl_1_bss_664[var_r31] = Hu3DModelLink(lbl_1_bss_664[0]); } Hu3DModelShadowSet(lbl_1_bss_664[var_r31]); - Hu3DModelPosSet(lbl_1_bss_664[var_r31], ((( var_r31 / 5) * 0x1F4) + 0xC8), 0.0f, (-( var_r31 % 5) * 0x12C)); + Hu3DModelPosSet(lbl_1_bss_664[var_r31], (((var_r31 / 5) * 0x1F4) + 0xC8), 0.0f, (-(var_r31 % 5) * 0x12C)); Hu3DModelAttrSet(lbl_1_bss_664[var_r31], 0x4000U); Hu3DModelAttrSet(lbl_1_bss_664[var_r31], 0x40000001U); } - temp_r29 = HuDataSelHeapReadNum(0x700013, 0x10000000, 2); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_SAF, 0x13), MEMORY_DEFAULT_NUM, 2); temp_r28 = HuSprAnimRead(temp_r29); lbl_1_bss_99C = HuSprGrpCreate(0x14); @@ -289,7 +291,7 @@ void fn_1_29C(omObjData * arg0) HuSprGrpDrawNoSet(lbl_1_bss_99C, 0x40); lbl_1_bss_458 = 0x293; lbl_1_bss_45A[0] = MGSeqTimerCreate(lbl_1_bss_458 / 60); - temp_r29 = HuDataSelHeapReadNum(0x120001, 0x10000000, 2); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 0x01), MEMORY_DEFAULT_NUM, 2); temp_r28 = HuSprAnimRead(temp_r29); lbl_1_bss_888 = Hu3DParManCreate(temp_r28, 0x3E8, &lbl_1_data_208); Hu3DParManAttrSet(lbl_1_bss_888, 0x45); @@ -302,14 +304,15 @@ void fn_1_29C(omObjData * arg0) Hu3DParManVecSet(lbl_1_bss_884, 0.0f, 1.0f, 0.0f); Hu3DParManVacumeSet(lbl_1_bss_884, 500.0f, 0.0f, 0.0f, 1.0f); Hu3DParManColorSet(lbl_1_bss_884, 0); - temp_r29 = HuDataSelHeapReadNum(0x120002, 0x10000000, 2); + temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 0x02), MEMORY_DEFAULT_NUM, 2); temp_r28 = HuSprAnimRead(temp_r29); for (var_r31 = 0; var_r31 < 10; ++var_r31) { lbl_1_bss_864[var_r31] = Hu3DParManCreate(temp_r28, 0x1F4, &lbl_1_data_168[0]); Hu3DParManAttrSet(lbl_1_bss_864[var_r31], 0x864); Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_864[var_r31]), 1U); - Hu3DParManPosSet(lbl_1_bss_864[var_r31], (100.0 * sin((M_PI * (36.0f * var_r31)) / 180.0)), 0.0f, 100.0 * cos((M_PI * (36.0f * var_r31)) / 180.0)); + Hu3DParManPosSet( + lbl_1_bss_864[var_r31], (100.0 * sin((M_PI * (36.0f * var_r31)) / 180.0)), 0.0f, 100.0 * cos((M_PI * (36.0f * var_r31)) / 180.0)); Hu3DParManRotSet(lbl_1_bss_864[var_r31], -90.0f, 0.0f, 0.0f); } @@ -320,9 +323,7 @@ void fn_1_29C(omObjData * arg0) // -------------------------------------------------------------------------- // -s32 unrefData[] = { - 0,0,0 -}; +s32 unrefData[] = { 0, 0, 0 }; // -------------------------------------------------------------------------- // @@ -331,7 +332,7 @@ void fn_1_F38(void) f32 var_f31; var_f31 = 0.0f; - while(TRUE) { + while (TRUE) { Hu3DModelRotSet(lbl_1_bss_460[0], 0.0f, var_f31, 0.0f); var_f31 += 1.0f; HuPrcVSleep(); @@ -340,7 +341,8 @@ void fn_1_F38(void) // -------------------------------------------------------------------------- // -static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) { +static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) +{ s8 temp_r28; temp_r28 = HuPadSubStkX[0] & 0xF8; @@ -360,13 +362,11 @@ static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) { // -------------------------------------------------------------------------- // -const HuUnkF9C2 lbl_1_rodata_B8 = { - {8, 6, 4, 7, 9, 10, 11} -}; +const HuUnkF9C2 lbl_1_rodata_B8 = { { 8, 6, 4, 7, 9, 10, 11 } }; // -------------------------------------------------------------------------- // -void fn_1_F9C(struct om_obj_data * omData) +void fn_1_F9C(struct om_obj_data *omData) { Point3d sp3C; Point3d sp30; @@ -421,40 +421,40 @@ void fn_1_F9C(struct om_obj_data * omData) s32 var_fake; while (0) { - (void) temp_f30; - (void) temp_f30; - (void) var_r31; - (void) var_r31; - (void) var_r31; - (void) var_r31; - (void) var_r31; - (void) var_r31; - (void) var_r31; - (void) var_r31; - (void) var_r31; - (void) var_r31; - (void) var_r30; - (void) var_r30; - (void) var_r30; - (void) var_r29; - (void) var_r29; - (void) var_r29; - (void) var_r29; - (void) var_r29; - (void) var_r29; - (void) var_r29; - (void) var_r29; - (void) var_r29; - (void) var_r29; - (void) var_fake; - (void) var_fake; - (void) var_fake; - (void) var_fake; - (void) var_fake; - (void) var_fake; - (void) var_fake; - (void) var_fake; - (void) var_fake; + (void)temp_f30; + (void)temp_f30; + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r31; + (void)var_r30; + (void)var_r30; + (void)var_r30; + (void)var_r29; + (void)var_r29; + (void)var_r29; + (void)var_r29; + (void)var_r29; + (void)var_r29; + (void)var_r29; + (void)var_r29; + (void)var_r29; + (void)var_r29; + (void)var_fake; + (void)var_fake; + (void)var_fake; + (void)var_fake; + (void)var_fake; + (void)var_fake; + (void)var_fake; + (void)var_fake; + (void)var_fake; } } @@ -478,15 +478,15 @@ void fn_1_F9C(struct om_obj_data * omData) temp_f31 = CRot.z; sp18.x = sp24.x * (sp30.x * sp30.x + (1.0f - sp30.x * sp30.x) * cos((M_PI * temp_f31) / 180.0)) - + sp24.y * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.z * sin((M_PI * temp_f31) / 180.0)) - + sp24.z * (sp30.x * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.y * sin((M_PI * temp_f31) / 180.0)); + + sp24.y * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.z * sin((M_PI * temp_f31) / 180.0)) + + sp24.z * (sp30.x * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.y * sin((M_PI * temp_f31) / 180.0)); sp18.y = sp24.y * (sp30.y * sp30.y + (1.0f - sp30.y * sp30.y) * cos((M_PI * temp_f31) / 180.0)) - + sp24.x * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.z * sin((M_PI * temp_f31) / 180.0)) - + sp24.z * (sp30.y * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.x * sin((M_PI * temp_f31) / 180.0)); + + sp24.x * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.z * sin((M_PI * temp_f31) / 180.0)) + + sp24.z * (sp30.y * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.x * sin((M_PI * temp_f31) / 180.0)); sp18.z = sp24.z * (sp30.z * sp30.z + (1.0f - sp30.z * sp30.z) * cos((M_PI * temp_f31) / 180.0)) - + (sp24.x * (sp30.x * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) - sp30.y * sin((M_PI * temp_f31) / 180.0)) + + (sp24.x * (sp30.x * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) - sp30.y * sin((M_PI * temp_f31) / 180.0)) + sp24.y * (sp30.y * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) + sp30.x * sin((M_PI * temp_f31) / 180.0))); PSVECCrossProduct(&sp24, &sp30, &sp30); @@ -543,8 +543,8 @@ void fn_1_20F4(void) { s16 temp_r3; s16 var_r29; - HsfObject * temp_r3_2; - HuObjUnk * temp_r31; + HsfObject *temp_r3_2; + HuObjUnk *temp_r31; Mtx spC0; Vec sp24; Mtx sp90; @@ -553,49 +553,38 @@ void fn_1_20F4(void) Vec sp18; Vec spC; f32 temp_f27; - f32 var_f29; // ! - uninitialized - s16 var_r27; // ! - uninitialized + f32 var_f29; // ! - uninitialized + s16 var_r27; // ! - uninitialized s32 var_r26; f32 temp_f30; - temp_r3 = Hu3DModelCreateFile(0x6C0000); + temp_r3 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_PEACHMDL1, 0x00)); Hu3DModelPosSet(temp_r3, 0.0f, 0.0f, 100.0f); - for (var_r29 = 0; var_r29 < 16; ++var_r29) - { + for (var_r29 = 0; var_r29 < 16; ++var_r29) { OSReport("%s\n", lbl_1_data_D8[var_r29]); temp_r3_2 = Hu3DModelObjPtrGet(temp_r3, lbl_1_data_D8[var_r29]); lbl_1_bss_40[var_r29].obj = temp_r3_2; Hu3DMotionNoMotSet(temp_r3, lbl_1_data_D8[var_r29], 0x380); - lbl_1_bss_40[var_r29].pos.x = temp_r3_2->data.base.pos.x; - lbl_1_bss_40[var_r29].pos.y = temp_r3_2->data.base.pos.y; - lbl_1_bss_40[var_r29].pos.z = temp_r3_2->data.base.pos.z; - lbl_1_bss_40[var_r29].rot.x = temp_r3_2->data.base.rot.x; - lbl_1_bss_40[var_r29].rot.y = temp_r3_2->data.base.rot.y; - lbl_1_bss_40[var_r29].rot.z = temp_r3_2->data.base.rot.z; + lbl_1_bss_40[var_r29].pos.x = temp_r3_2->data.base.pos.x; + lbl_1_bss_40[var_r29].pos.y = temp_r3_2->data.base.pos.y; + lbl_1_bss_40[var_r29].pos.z = temp_r3_2->data.base.pos.z; + lbl_1_bss_40[var_r29].rot.x = temp_r3_2->data.base.rot.x; + lbl_1_bss_40[var_r29].rot.y = temp_r3_2->data.base.rot.y; + lbl_1_bss_40[var_r29].rot.z = temp_r3_2->data.base.rot.z; lbl_1_bss_40[var_r29].scale.x = temp_r3_2->data.base.scale.x; lbl_1_bss_40[var_r29].scale.y = temp_r3_2->data.base.scale.y; lbl_1_bss_40[var_r29].scale.z = temp_r3_2->data.base.scale.z; - OSReport( - "%d:(%3.2f,%3.2f,%3.2f),(%3.2f,%3.2f,%3.2f)\n", - var_r29, - temp_r3_2->data.base.pos.x, - temp_r3_2->data.base.pos.y, - temp_r3_2->data.base.pos.z, - temp_r3_2->data.base.rot.x, - temp_r3_2->data.base.rot.y, - temp_r3_2->data.base.rot.z - ); + OSReport("%d:(%3.2f,%3.2f,%3.2f),(%3.2f,%3.2f,%3.2f)\n", var_r29, temp_r3_2->data.base.pos.x, temp_r3_2->data.base.pos.y, + temp_r3_2->data.base.pos.z, temp_r3_2->data.base.rot.x, temp_r3_2->data.base.rot.y, temp_r3_2->data.base.rot.z); } - while (TRUE) - { + while (TRUE) { Hu3DModelObjMtxGet(temp_r3, "ske_skirt", sp30); - for (var_r29 = 0; var_r29 < 8; ++var_r29) - { + for (var_r29 = 0; var_r29 < 8; ++var_r29) { temp_r31 = &lbl_1_bss_40[var_r29 * 2]; temp_r31->obj->data.curr.rot.x = temp_r31->rot.x; temp_r31->obj->data.curr.rot.y = temp_r31->rot.y; @@ -634,15 +623,16 @@ void fn_1_20F4(void) if (HuPadSubStkX[1] < 0) { var_r26 = -HuPadSubStkX[1]; - } else { + } + else { var_r26 = HuPadSubStkX[1]; } - if (var_r26 < 0xA && ABS(HuPadSubStkY[1]) < 0xA) { var_r27 = 0x168; var_f29 = 0.0f; - } else { + } + else { var_r27 = 180.0 * (atan2(HuPadSubStkX[1], HuPadSubStkY[1]) / M_PI); temp_f30 = (HuPadSubStkX[1] * HuPadSubStkX[1]) + (HuPadSubStkY[1] * HuPadSubStkY[1]); var_f29 = sqrtf(temp_f30); @@ -657,11 +647,11 @@ void fn_1_20F4(void) // -------------------------------------------------------------------------- // -void fn_1_28F8(Point3d * arg0, Point3d * arg1) +void fn_1_28F8(Point3d *arg0, Point3d *arg1) { Point3d spC; Mtx sp18; - CameraData * cam; + CameraData *cam; f32 temp_f31; f32 temp_f30; @@ -675,7 +665,8 @@ void fn_1_28F8(Point3d * arg0, Point3d * arg1) arg1->y = 240.0f + (spC.y * (240.0f / temp_f30)); } -void fn_1_2AFC(void) { +void fn_1_2AFC(void) +{ s16 temp_r3; HuWinInit(1); @@ -683,7 +674,7 @@ void fn_1_2AFC(void) { HuWinMesSpeedSet(temp_r3, 3); while (TRUE) { - HuWinMesSet(temp_r3, 0x200011); + HuWinMesSet(temp_r3, MAKE_MESSID(0x20, 0x11)); HuWinMesWait(temp_r3); } } @@ -692,12 +683,65 @@ void fn_1_2AFC(void) { // unreferenced data u8 lbl_1_data_322[54] = { - 255, 255, 255, 255, 0, 0, 60, 68, 155, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 68, 155, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, + 255, + 255, + 255, + 255, + 0, + 0, + 60, + 68, + 155, + 166, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 60, + 68, + 155, + 166, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 63, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 63, + 0, + 0, + 0, + 0, + 0, + 0, + 0, }; // -------------------------------------------------------------------------- // -void fn_1_2B68(ModelData * mdl, Mtx arg1) +void fn_1_2B68(ModelData *mdl, Mtx arg1) { GXColor sp17; Mtx sp150; @@ -708,7 +752,7 @@ void fn_1_2B68(ModelData * mdl, Mtx arg1) GXTexObj sp30; f32 sp18[2][3]; Mtx44 sp50; - AnimBmpData * sp10; + AnimBmpData *sp10; f32 temp_f31; f32 var_f30; // ! - uninitialized f32 var_f29; // ! - uninitialized @@ -716,7 +760,7 @@ void fn_1_2B68(ModelData * mdl, Mtx arg1) f32 var_f27; // ! - uninitialized if (!lbl_1_bss_30[0]) { - lbl_1_bss_30[0] = HuMemDirectMallocNum(HEAP_SYSTEM, FB_SIZE(640, 480), 0x10000000); + lbl_1_bss_30[0] = HuMemDirectMallocNum(HEAP_SYSTEM, FB_SIZE(640, 480), MEMORY_DEFAULT_NUM); } GXSetTexCopySrc(0, 0, 640, 480); @@ -741,15 +785,10 @@ void fn_1_2B68(ModelData * mdl, Mtx arg1) GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3CU, 0U, 0x7DU); GXSetNumTevStages(1); - sp17.r = - sp17.g = - sp17.b = - sp17.a = 255; + sp17.r = sp17.g = sp17.b = sp17.a = 255; GXSetChanMatColor(GX_COLOR0A0, sp17); - sp17.r = - sp17.g = - sp17.b = 128; + sp17.r = sp17.g = sp17.b = 128; sp17.a = 255; GXSetChanAmbColor(GX_COLOR0A0, sp17); diff --git a/src/REL/modeltestDll/modeltest00.c b/src/REL/modeltestDll/modeltest00.c index 9438febb..ac8d4e0a 100644 --- a/src/REL/modeltestDll/modeltest00.c +++ b/src/REL/modeltestDll/modeltest00.c @@ -197,7 +197,7 @@ void fn_1_46F0(void) var_r30 = var_r31; lbl_1_bss_9EC[var_r31] = CharModelCreate(var_r30, 8); Hu3DModelShadowSet(lbl_1_bss_9EC[var_r31]); - lbl_1_bss_9AC[var_r31][0] = CharModelMotionCreate(var_r30, 0x5F0002); + lbl_1_bss_9AC[var_r31][0] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); CharModelMotionSet(var_r30, lbl_1_bss_9AC[var_r31][0]); Hu3DModelAttrSet(lbl_1_bss_9EC[var_r31], 0x40000001U); Hu3DModelCameraSet(lbl_1_bss_9EC[var_r31], lbl_1_data_358[var_r31]); @@ -206,7 +206,7 @@ void fn_1_46F0(void) CharModelMotionDataClose(var_r30); } - var_r31 = Hu3DModelCreateFile(0x700024); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_SAF, 0x24)); Hu3DModelScaleSet(var_r31, 5.0f, 5.0f, 5.0f); Hu3DModelShadowMapSet(var_r31); @@ -228,4 +228,4 @@ void fn_1_46F0(void) // -------------------------------------------------------------------------- // -// -------------------------------------------------------------------------- // \ No newline at end of file +// -------------------------------------------------------------------------- // diff --git a/src/REL/modeltestDll/modeltest01.c b/src/REL/modeltestDll/modeltest01.c index d30e6c6a..69dba59e 100644 --- a/src/REL/modeltestDll/modeltest01.c +++ b/src/REL/modeltestDll/modeltest01.c @@ -177,114 +177,114 @@ void fn_1_5A60(omObjData *object) } u32 lbl_1_data_3B0[] = { - 0x005D0000, 0x00000000, - 0x005E0000, 0x00000000, - 0x005E0001, 0x00000000, - 0x005F0006, 0x00000001, - 0x005F0000, 0x00000001, - 0x005F0002, 0x00000001, - 0x005F0003, 0x00000001, - 0x005F0005, 0x00000000, - 0x005F0017, 0x00000000, - 0x005F0018, 0x00000000, + DATA_MAKE_NUM(DATADIR_MARIOMDL0, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x01), 0x00000000, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06), 0x00000001, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0x00000001, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), 0x00000001, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), 0x00000001, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), 0x00000000, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), 0x00000000, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), 0x00000000, 0x00000000, 0x00000000 }; u32 lbl_1_data_408[] = { - 0x00170000, 0x00000000, - 0x00170002, 0x00000000, - 0x00170003, 0x00000000, - 0x0017000D, 0x00000001, - 0x00170005, 0x00000001, - 0x00170007, 0x00000001, - 0x00170008, 0x00000001, - 0x0017000C, 0x00000000, - 0x00170028, 0x00000000, - 0x00170029, 0x00000000, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x03), 0x00000000, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x0D), 0x00000001, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x07), 0x00000001, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x08), 0x00000001, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x28), 0x00000000, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x29), 0x00000000, 0x00000000, 0x00000000 }; u32 lbl_1_data_460[] = { - 0x006A0000, 0x00000000, - 0x006A0002, 0x00000000, - 0x006A0003, 0x00000000, - 0x006A000D, 0x00000001, - 0x006A0005, 0x00000001, - 0x006A0007, 0x00000001, - 0x006A0008, 0x00000001, - 0x006A000C, 0x00000000, - 0x006A0028, 0x00000000, - 0x006A0029, 0x00000000, + DATA_MAKE_NUM(DATADIR_PEACH, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_PEACH, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_PEACH, 0x03), 0x00000000, + DATA_MAKE_NUM(DATADIR_PEACH, 0x0D), 0x00000001, + DATA_MAKE_NUM(DATADIR_PEACH, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_PEACH, 0x07), 0x00000001, + DATA_MAKE_NUM(DATADIR_PEACH, 0x08), 0x00000001, + DATA_MAKE_NUM(DATADIR_PEACH, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_PEACH, 0x28), 0x00000000, + DATA_MAKE_NUM(DATADIR_PEACH, 0x29), 0x00000000, 0x00000000, 0x00000000 }; u32 lbl_1_data_4B8[] = { - 0x00870000, 0x00000000, - 0x00870002, 0x00000000, - 0x00870003, 0x00000000, - 0x0087000D, 0x00000001, - 0x00870005, 0x00000001, - 0x00870007, 0x00000001, - 0x00870008, 0x00000001, - 0x0087000C, 0x00000000, - 0x00870028, 0x00000000, - 0x00870029, 0x00000000, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x03), 0x00000000, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x0D), 0x00000001, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x07), 0x00000001, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x08), 0x00000001, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x28), 0x00000000, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x29), 0x00000000, 0x00000000, 0x00000000 }; u32 lbl_1_data_510[] = { - 0x00820000, 0x00000000, - 0x00820002, 0x00000000, - 0x00820003, 0x00000000, - 0x0082000D, 0x00000001, - 0x00820005, 0x00000001, - 0x00820007, 0x00000001, - 0x00820008, 0x00000001, - 0x0082000C, 0x00000000, - 0x00820028, 0x00000000, - 0x00820029, 0x00000000, + DATA_MAKE_NUM(DATADIR_WARIO, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_WARIO, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_WARIO, 0x03), 0x00000000, + DATA_MAKE_NUM(DATADIR_WARIO, 0x0D), 0x00000001, + DATA_MAKE_NUM(DATADIR_WARIO, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_WARIO, 0x07), 0x00000001, + DATA_MAKE_NUM(DATADIR_WARIO, 0x08), 0x00000001, + DATA_MAKE_NUM(DATADIR_WARIO, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_WARIO, 0x28), 0x00000000, + DATA_MAKE_NUM(DATADIR_WARIO, 0x29), 0x00000000, 0x00000000, 0x00000000 }; u32 lbl_1_data_568[] = { - 0x000E0000, 0x00000000, - 0x000E0002, 0x00000000, - 0x000E0003, 0x00000000, - 0x000E000D, 0x00000001, - 0x000E0005, 0x00000001, - 0x000E0007, 0x00000001, - 0x000E0008, 0x00000001, - 0x000E000C, 0x00000000, - 0x000E0028, 0x00000000, - 0x000E0029, 0x00000000, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x03), 0x00000000, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x0D), 0x00000001, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x07), 0x00000001, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x08), 0x00000001, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x28), 0x00000000, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x29), 0x00000000, 0x00000000, 0x00000000 }; u32 lbl_1_data_5C0[] = { - 0x000A0000, 0x00000000, - 0x000A0002, 0x00000000, - 0x000A0003, 0x00000000, - 0x000A000D, 0x00000001, - 0x000A0005, 0x00000001, - 0x000A0007, 0x00000001, - 0x000A0008, 0x00000001, - 0x000A000C, 0x00000000, - 0x000A0028, 0x00000000, - 0x000A0029, 0x00000000, + DATA_MAKE_NUM(DATADIR_DAISY, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_DAISY, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_DAISY, 0x03), 0x00000000, + DATA_MAKE_NUM(DATADIR_DAISY, 0x0D), 0x00000001, + DATA_MAKE_NUM(DATADIR_DAISY, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_DAISY, 0x07), 0x00000001, + DATA_MAKE_NUM(DATADIR_DAISY, 0x08), 0x00000001, + DATA_MAKE_NUM(DATADIR_DAISY, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_DAISY, 0x28), 0x00000000, + DATA_MAKE_NUM(DATADIR_DAISY, 0x29), 0x00000000, 0x00000000, 0x00000000 }; u32 lbl_1_data_618[] = { - 0x007E0000, 0x00000000, - 0x007E0002, 0x00000000, - 0x007E0003, 0x00000000, - 0x007E000D, 0x00000001, - 0x007E0005, 0x00000001, - 0x007E0007, 0x00000001, - 0x007E0008, 0x00000001, - 0x007E000C, 0x00000000, - 0x007E0028, 0x00000000, - 0x007E0029, 0x00000000, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x03), 0x00000000, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x0D), 0x00000001, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x07), 0x00000001, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x08), 0x00000001, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x28), 0x00000000, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x29), 0x00000000, 0x00000000, 0x00000000 }; @@ -750,4 +750,4 @@ void fn_1_83B4(void) } HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/REL/modeseldll/datalist.c b/src/REL/modeseldll/datalist.c index 07019d3f..87287bed 100644 --- a/src/REL/modeseldll/datalist.c +++ b/src/REL/modeseldll/datalist.c @@ -6,45 +6,45 @@ s16 lbl_1_bss_152[12]; s16 lbl_1_bss_150; DataListModel lbl_1_data_428[] = { - { 0x630000, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630000, 0x1, 2, 0, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630001, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630001, 0x1, 2, 2, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630002, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630002, 0x1, 2, 4, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630003, 0x1, 1, -1, 4, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630004, 0x1, 1, -1, 4, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630005, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630005, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630005, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630006, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630006, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630006, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630026, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630027, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630028, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630029, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x63002A, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x63002B, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x63002C, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x63002D, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x63002E, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x630007, 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x1, 2, 0, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x01), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x01), 0x1, 2, 2, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x02), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x02), 0x1, 2, 4, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x03), 0x1, 1, -1, 4, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x04), 0x1, 1, -1, 4, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x05), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x05), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x05), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x06), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x06), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x06), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x26), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x27), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x28), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x29), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x2A), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x2B), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x2C), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x2D), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x2E), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x07), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, }; DataListSprite lbl_1_data_93C[] = { - { 0x630009, 4, 2000, 288, 240, { 255, 255, 255, 255 } }, - { 0x630008, 4, 2000, 288, 100, { 255, 255, 255, 255 } }, - { 0x63000A, 4, 2000, 288, 300, { 255, 255, 255, 255 } }, - { 0x63000B, 4, 2000, 288, 300, { 255, 255, 255, 255 } }, - { 0x63000C, 4, 2000, 288, 300, { 255, 255, 255, 255 } }, - { 0x63001F, 4, 2000, 288, 300, { 255, 255, 255, 255 } }, - { 0x630020, 4, 2000, 288, 300, { 255, 255, 255, 255 } }, - { 0x630021, 4, 2000, 288, 300, { 255, 255, 255, 255 } }, - { 0x630022, 4, 2000, 288, 300, { 255, 255, 255, 255 } }, - { 0x63002F, 4, 2000, 288, 240, { 255, 255, 255, 255 } }, - { 0x63003C, 4, 2000, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x09), 4, 2000, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x08), 4, 2000, 288, 100, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x0A), 4, 2000, 288, 300, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x0B), 4, 2000, 288, 300, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x0C), 4, 2000, 288, 300, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x1F), 4, 2000, 288, 300, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x20), 4, 2000, 288, 300, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x21), 4, 2000, 288, 300, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x22), 4, 2000, 288, 300, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x2F), 4, 2000, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MODESEL, 0x3C), 4, 2000, 288, 240, { 255, 255, 255, 255 } }, { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, }; @@ -127,4 +127,4 @@ void fn_1_C2BC(void) espKill(lbl_1_bss_152[i]); } } -} \ No newline at end of file +} diff --git a/src/REL/modeseldll/filesel.c b/src/REL/modeseldll/filesel.c index adff0c5d..8bf2afb7 100644 --- a/src/REL/modeseldll/filesel.c +++ b/src/REL/modeseldll/filesel.c @@ -1,70 +1,51 @@ -#include "game/gamework_data.h" -#include "game/process.h" -#include "game/window.h" -#include "game/wipe.h" #include "game/audio.h" -#include "game/gamework.h" -#include "game/saveload.h" #include "game/card.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/pad.h" -#include "game/hsfdraw.h" +#include "game/process.h" +#include "game/saveload.h" +#include "game/window.h" +#include "game/wipe.h" + #include "math.h" #include "REL/modeseldll.h" - s16 lbl_1_data_100 = -1; -float lbl_1_data_104[] = { - -55, 0, 0, 0, 60, -57, 806, -71, - 0, 0, 0, 100, -131, 900, -87, 0, - 0, 0, 46, -117, 566, -87, 0, 0, - 0, 46, -117, 566, -90, 0, 0, -22, - 39, -153, 432, -40, 0, 0, 0, 130, - -186, 6530, -23, 0, 0, -9, 1, - -70, 1318, -25, 0, 0, 0, 242, 90, - 343, -30, 0, 0, 0, 223, -60, 505, - -23, 0, 0, 0, 65, -97, 1318 -}; +float lbl_1_data_104[] = { -55, 0, 0, 0, 60, -57, 806, -71, 0, 0, 0, 100, -131, 900, -87, 0, 0, 0, 46, -117, 566, -87, 0, 0, 0, 46, -117, 566, -90, 0, + 0, -22, 39, -153, 432, -40, 0, 0, 0, 130, -186, 6530, -23, 0, 0, -9, 1, -70, 1318, -25, 0, 0, 0, 242, 90, 343, -30, 0, 0, 0, 223, -60, 505, -23, + 0, 0, 0, 65, -97, 1318 }; s32 lbl_1_data_21C[] = { - 0x63000D, - 0x63000E, - 0x63000F, - 0x630010, - 0x630011, - 0x630012, - 0x630013, - 0x630014, - 0x630015, - 0x630016, - 0x630017, - 0x630018, - 0x630019, - 0x63001A, - 0x63001B, - 0x63001C, - 0x63001D, - 0x63001E, + DATA_MAKE_NUM(DATADIR_MODESEL, 0x0D), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x0E), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x0F), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x10), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x11), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x12), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x13), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x14), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x15), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x16), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x17), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x18), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x19), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x1A), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x1B), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x1C), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x1D), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x1E), }; +char *lbl_1_data_26C[] = { "\x0E\x16", "\x0E\x17" }; -char *lbl_1_data_26C[] = { - "\x0E\x16", - "\x0E\x17" -}; +char *lbl_1_data_278[] = { "A", "B" }; -char *lbl_1_data_278[] = { - "A", - "B" -}; - -char *lbl_1_data_288[] = { - "1", - "2", - "3" -}; +char *lbl_1_data_288[] = { "1", "2", "3" }; s32 lbl_1_bss_14C; s16 lbl_1_bss_148; @@ -103,63 +84,64 @@ void fn_1_AAB8(void); s32 fn_1_37DC(void) { - s16 i; - s16 result; - WindowData *window; - s16 fxstat; - Process *process = HuPrcCurrentGet(); - Process *child; - float winSize[2]; - for(i=0; i<3; i++) { - lbl_1_bss_13A[i] = lbl_1_bss_134[i] = -1; - lbl_1_bss_116[i] = -1; - lbl_1_bss_110[i] = -1; - } - lbl_1_bss_FC = lbl_1_bss_F8 = lbl_1_bss_F4 = NULL; - curSlotNo = 0; - fn_1_1EC0(0); - fn_1_5D30(); - child = HuPrcChildCreate(fn_1_AAB8, 10, 8192, 0, process); - winSize[0] = 457; - winSize[1] = 94; - lbl_1_bss_148 = HuWinExCreateStyled(-10000, 448-winSize[1], winSize[0], winSize[1], -1, 0); - window = &winData[lbl_1_bss_148]; - window->active_pad = 1; - HuWinPushKeySet(lbl_1_bss_148, 0x300); - HuWinMesSpeedSet(lbl_1_bss_148, 0); - HuWinDispOn(lbl_1_bss_148); - fxstat = HuAudFXPlay(2098); - lbl_1_data_100 = fxstat; - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - while(WipeStatGet()) { - HuPrcVSleep(); - } - HuAudSeqPlay(43); - while(1) { - result = fn_1_3AAC(); - if(!result) { - break; - } - if(!SLSaveFlagGet()) { - GWGameStatReset(); - GWGameStat.sound_mode = msmSysGetOutputMode(); - result = 1; - break; - } else { - if(fn_1_61B4()) { - break; - } - } - } - if(result == 0) { - HuAudFXStop(fxstat); - } - HuWinExAnimOut(lbl_1_bss_148); - HuWinExCleanup(lbl_1_bss_148); - HuPrcKill(child); - HuCardUnMount(0); - HuCardUnMount(1); - return result; + s16 i; + s16 result; + WindowData *window; + s16 fxstat; + Process *process = HuPrcCurrentGet(); + Process *child; + float winSize[2]; + for (i = 0; i < 3; i++) { + lbl_1_bss_13A[i] = lbl_1_bss_134[i] = -1; + lbl_1_bss_116[i] = -1; + lbl_1_bss_110[i] = -1; + } + lbl_1_bss_FC = lbl_1_bss_F8 = lbl_1_bss_F4 = NULL; + curSlotNo = 0; + fn_1_1EC0(0); + fn_1_5D30(); + child = HuPrcChildCreate(fn_1_AAB8, 10, 8192, 0, process); + winSize[0] = 457; + winSize[1] = 94; + lbl_1_bss_148 = HuWinExCreateStyled(-10000, 448 - winSize[1], winSize[0], winSize[1], -1, 0); + window = &winData[lbl_1_bss_148]; + window->active_pad = 1; + HuWinPushKeySet(lbl_1_bss_148, 0x300); + HuWinMesSpeedSet(lbl_1_bss_148, 0); + HuWinDispOn(lbl_1_bss_148); + fxstat = HuAudFXPlay(2098); + lbl_1_data_100 = fxstat; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuAudSeqPlay(43); + while (1) { + result = fn_1_3AAC(); + if (!result) { + break; + } + if (!SLSaveFlagGet()) { + GWGameStatReset(); + GWGameStat.sound_mode = msmSysGetOutputMode(); + result = 1; + break; + } + else { + if (fn_1_61B4()) { + break; + } + } + } + if (result == 0) { + HuAudFXStop(fxstat); + } + HuWinExAnimOut(lbl_1_bss_148); + HuWinExCleanup(lbl_1_bss_148); + HuPrcKill(child); + HuCardUnMount(0); + HuCardUnMount(1); + return result; } #define GET_ZEROSIGN(x) (((x) == 0) ? (-1) : (1)) @@ -173,560 +155,588 @@ void fn_1_BA20(void); s32 fn_1_3AAC(void) { - s16 temp_r31; - s16 temp_r30; - s32 temp_r29; - s32 temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - s16 temp_r24; - WindowData *temp_r23; - float temp_f31; - CARDFileInfo sp34; - Vec sp28; - Vec sp1C; - Vec sp10; - float sp8[2]; - - fn_1_1EC0(0); - temp_r23 = &winData[lbl_1_bss_148]; - HuWinMesMaxSizeGet(1, sp8, 0x10000C); - lbl_1_bss_146 = HuWinExCreateStyled(-10000.0f, 316.0f, sp8[0], sp8[1], -1, 0); - HuWinBGTPLvlSet(lbl_1_bss_146, 0); - HuWinMesSpeedSet(lbl_1_bss_146, 0); - repeat: - sp28.x = 188; - sp28.y = 250; - sp28.z = 600; - Hu3D2Dto3D(&sp28, 1, &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[2], &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[4], &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[0], &sp1C); - sp28.x = 388; - Hu3D2Dto3D(&sp28, 1, &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[3], &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[5], &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[1], &sp1C); - Hu3DModelAttrReset(lbl_1_bss_19A[2], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[4], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[3], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[5], 1); - Hu3DModelRotSet(lbl_1_bss_19A[2], 0, 0, 0); - Hu3DModelRotSet(lbl_1_bss_19A[3], 0, 0, 0); - fn_1_57C8(lbl_1_bss_19A[4]); - fn_1_57C8(lbl_1_bss_19A[5]); - lbl_1_bss_12C[0] = lbl_1_bss_12C[1] = 1; - lbl_1_bss_108[0] = lbl_1_bss_108[1] = lbl_1_bss_100[0] = lbl_1_bss_100[1] = 1.0f; - lbl_1_bss_11C = -1; - fn_1_5C38(); - for(temp_r30=0; temp_r30<=20; temp_r30++) { - temp_f31 = temp_r30/20.0; - temp_f31 = sin(M_PI*(90.0f*temp_f31)/180.0); - Hu3DModelScaleSet(lbl_1_bss_19A[0], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[1], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[2], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[3], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[4], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[5], temp_f31, temp_f31, temp_f31); - HuPrcVSleep(); - } - while(1) { - repeat_loop: - HuWinDispOff(lbl_1_bss_146); - temp_r28 = fn_1_562C(); - if(temp_r28 == 0 && fn_1_5C38() == 0) { - if(fn_1_5C38() == 0) { - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - } - HuWinMesSet(lbl_1_bss_148, 0x10004F); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesWait(lbl_1_bss_148); - temp_r27 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r27 == 0) { - SLSaveFlagSet(0); - temp_r29 = 1; - goto cleanup; - } - HuWinInsertMesSet(lbl_1_bss_148, 0x100052, 0); - HuWinMesSet(lbl_1_bss_148, 0x10004C); - HuWinMesWait(lbl_1_bss_148); - while(!(HuPadBtnDown[0] & PAD_BUTTON_A)) { - HuPrcVSleep(); - } - } - while(!fn_1_5C38()) { - temp_r28 = fn_1_562C(); - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - if(temp_r23->key_down & PAD_BUTTON_B) { - HuAudFXPlay(3); - return 0; - } - if(fn_1_5C38()) { - break; - } - HuWinMesSet(lbl_1_bss_148, 0x10004B); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesWait(lbl_1_bss_148); - temp_r27 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r27 == 0) { - SLSaveFlagSet(0); - temp_r29 = 1; - goto cleanup; - } - HuWinInsertMesSet(lbl_1_bss_148, 0x100052, 0); - HuWinMesSet(lbl_1_bss_148, 0x10004C); - HuWinMesWait(lbl_1_bss_148); - while(!(HuPadBtnDown[0] & PAD_BUTTON_A)) { - HuPrcVSleep(); - } - } - SLSaveFlagSet(1); - HuWinMesSet(lbl_1_bss_148, 0x100001); - HuWinMesWait(lbl_1_bss_148); - HuWinMesSet(lbl_1_bss_146, 0x10000C); - HuWinDispOn(lbl_1_bss_146); - if(curSlotNo == 0) { - if(lbl_1_bss_14C & 0x1) { - temp_r31 = 0; - } else { - temp_r31 = 1; - } - } else { - if(lbl_1_bss_14C & 0x2) { - temp_r31 = 1; - } else { - temp_r31 = 0; - } - } - fn_1_5BAC(temp_r31, 1); - HuPrcSleep(10); - temp_r24 = temp_r31; - while(1) { - if(!fn_1_5C38()) { - fn_1_5BAC(temp_r31, 0); - HuPrcSleep(10); - goto repeat_loop; - } else { - if((HuPadDStkRep[0] & 0x1) && (lbl_1_bss_14C & 0x1)) { - temp_r31 = 0; - } else if((HuPadDStkRep[0] & 0x2) && (lbl_1_bss_14C & 0x2)) { - temp_r31 = 1; - } else if(!(lbl_1_bss_14C & (1 << temp_r31))) { - if(!(lbl_1_bss_14C & (1 << ((temp_r31+1) & 0x1)))) { - fn_1_5BAC(temp_r31, 0); - HuPrcSleep(10); - goto repeat_loop; - } else { - temp_r31 = (temp_r31+1) & 0x1; - } - } - if(temp_r24 != temp_r31) { - HuAudFXPlay(0); - fn_1_5BAC(temp_r31, 1); - fn_1_5BAC((temp_r31+1) & 0x1, 0); - HuPrcSleep(10); - temp_r24 = temp_r31; - } - if(HuPadBtnDown[0] & PAD_BUTTON_A) { - HuAudFXPlay(2096); - goto loop_exit; - } else if(HuPadBtnDown[0] & PAD_BUTTON_B) { - HuAudFXPlay(3); - return 0; - } - } - HuPrcVSleep(); - } - } - loop_exit: - HuWinHomeClear(lbl_1_bss_148); - temp_r26 = (temp_r31+1)&0x1; - Hu3DMotionSet(lbl_1_bss_19A[temp_r31+4], lbl_1_bss_16A[7]); - Hu3DMotionSpeedSet(lbl_1_bss_19A[temp_r31+4], 2.0f); - lbl_1_bss_12C[0] = lbl_1_bss_12C[1] = 0; - lbl_1_bss_11C = temp_r31; - SLCurSlotNoSet(temp_r31); - temp_r28 = HuCardMount(temp_r31); - if(temp_r28 == 0) { - SLSerialNoGet(); - temp_r28 = HuCardOpen(temp_r31, SaveFileNameTbl[0], &sp34); - if(temp_r28 != 0 && temp_r28 != -4) { - temp_r29 = 1; - } else { - temp_r29 = 0; - } - HuCardClose(&sp34); - } else { - if(temp_r28 == -3) { - goto repeat; - } + s16 temp_r31; + s16 temp_r30; + s32 temp_r29; + s32 temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + WindowData *temp_r23; + float temp_f31; + CARDFileInfo sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + float sp8[2]; + + fn_1_1EC0(0); + temp_r23 = &winData[lbl_1_bss_148]; + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x10, 0x0C)); + lbl_1_bss_146 = HuWinExCreateStyled(-10000.0f, 316.0f, sp8[0], sp8[1], -1, 0); + HuWinBGTPLvlSet(lbl_1_bss_146, 0); + HuWinMesSpeedSet(lbl_1_bss_146, 0); +repeat: + sp28.x = 188; + sp28.y = 250; + sp28.z = 600; + Hu3D2Dto3D(&sp28, 1, &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[2], &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[4], &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[0], &sp1C); + sp28.x = 388; + Hu3D2Dto3D(&sp28, 1, &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[3], &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[5], &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[1], &sp1C); + Hu3DModelAttrReset(lbl_1_bss_19A[2], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[4], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[3], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[5], 1); + Hu3DModelRotSet(lbl_1_bss_19A[2], 0, 0, 0); + Hu3DModelRotSet(lbl_1_bss_19A[3], 0, 0, 0); + fn_1_57C8(lbl_1_bss_19A[4]); + fn_1_57C8(lbl_1_bss_19A[5]); + lbl_1_bss_12C[0] = lbl_1_bss_12C[1] = 1; + lbl_1_bss_108[0] = lbl_1_bss_108[1] = lbl_1_bss_100[0] = lbl_1_bss_100[1] = 1.0f; + lbl_1_bss_11C = -1; + fn_1_5C38(); + for (temp_r30 = 0; temp_r30 <= 20; temp_r30++) { + temp_f31 = temp_r30 / 20.0; + temp_f31 = sin(M_PI * (90.0f * temp_f31) / 180.0); + Hu3DModelScaleSet(lbl_1_bss_19A[0], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[1], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[2], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[3], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[4], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[5], temp_f31, temp_f31, temp_f31); + HuPrcVSleep(); + } + while (1) { + repeat_loop: + HuWinDispOff(lbl_1_bss_146); + temp_r28 = fn_1_562C(); + if (temp_r28 == 0 && fn_1_5C38() == 0) { + if (fn_1_5C38() == 0) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + } + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4F)); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesWait(lbl_1_bss_148); + temp_r27 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r27 == 0) { + SLSaveFlagSet(0); + temp_r29 = 1; + goto cleanup; + } + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x52), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4C)); + HuWinMesWait(lbl_1_bss_148); + while (!(HuPadBtnDown[0] & PAD_BUTTON_A)) { + HuPrcVSleep(); + } + } + while (!fn_1_5C38()) { + temp_r28 = fn_1_562C(); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + if (temp_r23->key_down & PAD_BUTTON_B) { + HuAudFXPlay(3); + return 0; + } + if (fn_1_5C38()) { + break; + } + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4B)); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesWait(lbl_1_bss_148); + temp_r27 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r27 == 0) { + SLSaveFlagSet(0); + temp_r29 = 1; + goto cleanup; + } + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x52), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4C)); + HuWinMesWait(lbl_1_bss_148); + while (!(HuPadBtnDown[0] & PAD_BUTTON_A)) { + HuPrcVSleep(); + } + } + SLSaveFlagSet(1); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x01)); + HuWinMesWait(lbl_1_bss_148); + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x0C)); + HuWinDispOn(lbl_1_bss_146); + if (curSlotNo == 0) { + if (lbl_1_bss_14C & 0x1) { + temp_r31 = 0; + } + else { + temp_r31 = 1; + } + } + else { + if (lbl_1_bss_14C & 0x2) { + temp_r31 = 1; + } + else { + temp_r31 = 0; + } + } + fn_1_5BAC(temp_r31, 1); + HuPrcSleep(10); + temp_r24 = temp_r31; + while (1) { + if (!fn_1_5C38()) { + fn_1_5BAC(temp_r31, 0); + HuPrcSleep(10); + goto repeat_loop; + } + else { + if ((HuPadDStkRep[0] & 0x1) && (lbl_1_bss_14C & 0x1)) { + temp_r31 = 0; + } + else if ((HuPadDStkRep[0] & 0x2) && (lbl_1_bss_14C & 0x2)) { + temp_r31 = 1; + } + else if (!(lbl_1_bss_14C & (1 << temp_r31))) { + if (!(lbl_1_bss_14C & (1 << ((temp_r31 + 1) & 0x1)))) { + fn_1_5BAC(temp_r31, 0); + HuPrcSleep(10); + goto repeat_loop; + } + else { + temp_r31 = (temp_r31 + 1) & 0x1; + } + } + if (temp_r24 != temp_r31) { + HuAudFXPlay(0); + fn_1_5BAC(temp_r31, 1); + fn_1_5BAC((temp_r31 + 1) & 0x1, 0); + HuPrcSleep(10); + temp_r24 = temp_r31; + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2096); + goto loop_exit; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + return 0; + } + } + HuPrcVSleep(); + } + } +loop_exit: + HuWinHomeClear(lbl_1_bss_148); + temp_r26 = (temp_r31 + 1) & 0x1; + Hu3DMotionSet(lbl_1_bss_19A[temp_r31 + 4], lbl_1_bss_16A[7]); + Hu3DMotionSpeedSet(lbl_1_bss_19A[temp_r31 + 4], 2.0f); + lbl_1_bss_12C[0] = lbl_1_bss_12C[1] = 0; + lbl_1_bss_11C = temp_r31; + SLCurSlotNoSet(temp_r31); + temp_r28 = HuCardMount(temp_r31); + if (temp_r28 == 0) { + SLSerialNoGet(); + temp_r28 = HuCardOpen(temp_r31, SaveFileNameTbl[0], &sp34); + if (temp_r28 != 0 && temp_r28 != -4) { + temp_r29 = 1; + } + else { + temp_r29 = 0; + } + HuCardClose(&sp34); + } + else { + if (temp_r28 == -3) { + goto repeat; + } temp_r29 = 1; - } - temp_r27 = HuCardSectorSizeGet(curSlotNo); - if(temp_r27 > 0 && temp_r27 != 8192) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100039); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = 1; - goto skip_check; - } else { - if(temp_r27 == -128) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = 1; - goto skip_check; - } else { - lbl_1_bss_8C += 720.0f; - for(temp_r30=0; temp_r30 <= 40; temp_r30++) { - if(temp_r30 <= 30) { - temp_f31 = temp_r30/30.0f; - sp28.x = 288.0+(GET_ZEROSIGN(temp_r26)*(100.0+(250.0*sin(M_PI*(90.0f*temp_f31)/180.0)))); - sp28.y = 250.0-(100.0*sin(M_PI*(180.0f*temp_f31)/180.0)); - sp28.z = (temp_r30*100)+600; - Hu3D2Dto3D(&sp28, 1, &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[temp_r26+2], &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[temp_r26], &sp1C); - Hu3DModelRotSet(lbl_1_bss_19A[temp_r26+2], temp_r30*20, temp_r30*10, 0); - } - - if(temp_r30 > 20) { - temp_f31 = (temp_r30-20)/20.0f; - if(temp_r29) { - sp28.x = 288.0f+((1.0-temp_f31)*(100*GET_ZEROSIGN(temp_r31))); - sp28.y = 250.0-(100.0*sin(M_PI*(180.0f*temp_f31)/180.0)); - sp28.z = 600.0f; - Hu3D2Dto3D(&sp28, 1, &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); - temp_f31 = (0.5*sin(M_PI*(90.0f*temp_f31)/180.0))+1.0; - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); - } else { - sp28.x = 288.0f+(100*GET_ZEROSIGN(temp_r31)); - sp28.y = 250; - sp28.z = 600; - Hu3D2Dto3D(&sp28, 1, &sp1C); - sp28.x = 60; - sp28.y = 90; - sp28.z = 600; - Hu3D2Dto3D(&sp28, 1, &sp10); - VECSubtract(&sp10, &sp1C, &sp28); - sp28.x *= sin(M_PI*(90.0f*temp_f31)/180.0); - sp28.y *= 1.0-cos(M_PI*(90.0f*temp_f31)/180.0); - sp28.z = 0; - VECAdd(&sp28, &sp1C, &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); - lbl_1_bss_108[temp_r31] *= cos(M_PI*(90.0f*temp_f31)/180.0); - lbl_1_bss_100[temp_r31] = 1.0-temp_f31; - temp_f31 = 1.0+(0.3*cos(M_PI*(90.0f*temp_f31)/180.0)); - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); - } - } - HuPrcVSleep(); - } - if(temp_r29 == 0) { - HuWinKill(lbl_1_bss_146); - return 1; - } - HuWinDispOff(lbl_1_bss_146); - temp_r29 = 0; - if(temp_r28 == -2) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[temp_r31]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100037); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = 1; - } else if(temp_r28 == -128) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[temp_r31]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = 1; - } else if(temp_r28 == -3) { - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = 1; - } else if(temp_r28 == -6) { - UnMountCnt = 0; - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[temp_r31]), 0); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesSet(lbl_1_bss_148, 0x100004); - HuWinMesWait(lbl_1_bss_148); - temp_r25 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r25 == 0) { - HuWinMesSet(lbl_1_bss_148, 0x10004E); - HuWinMesWait(lbl_1_bss_148); - temp_r25 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r25 == 0) { - fn_1_B8CC(0x100038); - HuWinMesSet(lbl_1_bss_148, 0x10000B); - HuWinMesWait(lbl_1_bss_148); - HuPrcSleep(60); - if(UnMountCnt & (1 << temp_r31)) { - fn_1_BA20(); - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = 1; - goto cleanup; - } else { - _SetFlag(0x30000); - temp_r28 = HuCardFormat(temp_r31); - _ClearFlag(FLAG_ID_MAKE(3, 0)); - if(temp_r28 == 0) { - SLSerialNoGet(); - } - fn_1_BA20(); - if(temp_r28 == -128) { - HuWinMesSet(lbl_1_bss_148, 0x100036); - HuWinMesWait(lbl_1_bss_148); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = 1; - } else if(temp_r28 == -3) { - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = 1; - } - } - } else { - temp_r29 = 1; - } - } else { - temp_r29 = 1; - } - } - } - } - if(temp_r29 == 0) { - goto cleanup; - } - skip_check: - HuWinMesSet(lbl_1_bss_148, 0x10004F); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesWait(lbl_1_bss_148); - temp_r27 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r27 == 0) { - SLSaveFlagSet(0); - goto cleanup; - } else { - HuWinInsertMesSet(lbl_1_bss_148, 0x100052, 0); - HuWinMesSet(lbl_1_bss_148, 0x10004C); - HuWinMesWait(lbl_1_bss_148); - while(!(HuPadBtnDown[0] & PAD_BUTTON_A)) { - HuPrcVSleep(); - } - } - cleanup: - HuWinDispOff(lbl_1_bss_146); - lbl_1_bss_8C += 720.0f; - for(temp_r30=0; temp_r30<=20; temp_r30++) { - temp_f31 = temp_r30/20.0f; - if(temp_r29) { - temp_f31 = 1.5*cos(M_PI*(90.0f*temp_f31)/180.0); - Hu3DModelScaleSet(lbl_1_bss_19A[0], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[1], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[2], 0.7*temp_f31, 0.7*temp_f31, 0.7*temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[3], 0.7*temp_f31, 0.7*temp_f31, 0.7*temp_f31); - if(!SLSaveFlagGet()) { - espScaleSet(lbl_1_bss_152[1], temp_f31, temp_f31); - } - } else { - sp28.x = 288; - sp28.y = 250; - sp28.z = 600; - Hu3D2Dto3D(&sp28, 1, &sp1C); - sp28.x = 60; - sp28.y = 90; - sp28.z = 600; - Hu3D2Dto3D(&sp28, 1, &sp10); - VECSubtract(&sp10, &sp1C, &sp28); - sp28.x *= sin(M_PI*(90.0f*temp_f31)/180.0); - sp28.y *= 1.0-cos(M_PI*(90.0f*temp_f31)/180.0); - sp28.z = 0.0f; - VECAdd(&sp28, &sp1C, &sp1C); - Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); - lbl_1_bss_108[temp_r31] *= cos(M_PI*(90.0f*temp_f31)/180.0); - lbl_1_bss_100[temp_r31] = 1.0-temp_f31; - temp_f31 = 1.0+(0.5*cos(M_PI*(90.0f*temp_f31)/180.0)); - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); - } - HuPrcVSleep(); - } - if(temp_r29 && SLSaveFlagGet()) { - goto repeat; - } - HuWinKill(lbl_1_bss_146); - return 1; + } + temp_r27 = HuCardSectorSizeGet(curSlotNo); + if (temp_r27 > 0 && temp_r27 != 8192) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x39)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = 1; + goto skip_check; + } + else { + if (temp_r27 == -128) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = 1; + goto skip_check; + } + else { + lbl_1_bss_8C += 720.0f; + for (temp_r30 = 0; temp_r30 <= 40; temp_r30++) { + if (temp_r30 <= 30) { + temp_f31 = temp_r30 / 30.0f; + sp28.x = 288.0 + (GET_ZEROSIGN(temp_r26) * (100.0 + (250.0 * sin(M_PI * (90.0f * temp_f31) / 180.0)))); + sp28.y = 250.0 - (100.0 * sin(M_PI * (180.0f * temp_f31) / 180.0)); + sp28.z = (temp_r30 * 100) + 600; + Hu3D2Dto3D(&sp28, 1, &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[temp_r26 + 2], &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[temp_r26], &sp1C); + Hu3DModelRotSet(lbl_1_bss_19A[temp_r26 + 2], temp_r30 * 20, temp_r30 * 10, 0); + } + + if (temp_r30 > 20) { + temp_f31 = (temp_r30 - 20) / 20.0f; + if (temp_r29) { + sp28.x = 288.0f + ((1.0 - temp_f31) * (100 * GET_ZEROSIGN(temp_r31))); + sp28.y = 250.0 - (100.0 * sin(M_PI * (180.0f * temp_f31) / 180.0)); + sp28.z = 600.0f; + Hu3D2Dto3D(&sp28, 1, &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); + temp_f31 = (0.5 * sin(M_PI * (90.0f * temp_f31) / 180.0)) + 1.0; + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); + } + else { + sp28.x = 288.0f + (100 * GET_ZEROSIGN(temp_r31)); + sp28.y = 250; + sp28.z = 600; + Hu3D2Dto3D(&sp28, 1, &sp1C); + sp28.x = 60; + sp28.y = 90; + sp28.z = 600; + Hu3D2Dto3D(&sp28, 1, &sp10); + VECSubtract(&sp10, &sp1C, &sp28); + sp28.x *= sin(M_PI * (90.0f * temp_f31) / 180.0); + sp28.y *= 1.0 - cos(M_PI * (90.0f * temp_f31) / 180.0); + sp28.z = 0; + VECAdd(&sp28, &sp1C, &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); + lbl_1_bss_108[temp_r31] *= cos(M_PI * (90.0f * temp_f31) / 180.0); + lbl_1_bss_100[temp_r31] = 1.0 - temp_f31; + temp_f31 = 1.0 + (0.3 * cos(M_PI * (90.0f * temp_f31) / 180.0)); + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); + } + } + HuPrcVSleep(); + } + if (temp_r29 == 0) { + HuWinKill(lbl_1_bss_146); + return 1; + } + HuWinDispOff(lbl_1_bss_146); + temp_r29 = 0; + if (temp_r28 == -2) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[temp_r31]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = 1; + } + else if (temp_r28 == -128) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[temp_r31]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = 1; + } + else if (temp_r28 == -3) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = 1; + } + else if (temp_r28 == -6) { + UnMountCnt = 0; + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[temp_r31]), 0); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x04)); + HuWinMesWait(lbl_1_bss_148); + temp_r25 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r25 == 0) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4E)); + HuWinMesWait(lbl_1_bss_148); + temp_r25 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r25 == 0) { + fn_1_B8CC(MAKE_MESSID(16, 0x38)); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B)); + HuWinMesWait(lbl_1_bss_148); + HuPrcSleep(60); + if (UnMountCnt & (1 << temp_r31)) { + fn_1_BA20(); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = 1; + goto cleanup; + } + else { + _SetFlag(0x30000); + temp_r28 = HuCardFormat(temp_r31); + _ClearFlag(FLAG_ID_MAKE(3, 0)); + if (temp_r28 == 0) { + SLSerialNoGet(); + } + fn_1_BA20(); + if (temp_r28 == -128) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x36)); + HuWinMesWait(lbl_1_bss_148); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = 1; + } + else if (temp_r28 == -3) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = 1; + } + } + } + else { + temp_r29 = 1; + } + } + else { + temp_r29 = 1; + } + } + } + } + if (temp_r29 == 0) { + goto cleanup; + } +skip_check: + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4F)); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesWait(lbl_1_bss_148); + temp_r27 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r27 == 0) { + SLSaveFlagSet(0); + goto cleanup; + } + else { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x52), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4C)); + HuWinMesWait(lbl_1_bss_148); + while (!(HuPadBtnDown[0] & PAD_BUTTON_A)) { + HuPrcVSleep(); + } + } +cleanup: + HuWinDispOff(lbl_1_bss_146); + lbl_1_bss_8C += 720.0f; + for (temp_r30 = 0; temp_r30 <= 20; temp_r30++) { + temp_f31 = temp_r30 / 20.0f; + if (temp_r29) { + temp_f31 = 1.5 * cos(M_PI * (90.0f * temp_f31) / 180.0); + Hu3DModelScaleSet(lbl_1_bss_19A[0], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[1], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[2], 0.7 * temp_f31, 0.7 * temp_f31, 0.7 * temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[3], 0.7 * temp_f31, 0.7 * temp_f31, 0.7 * temp_f31); + if (!SLSaveFlagGet()) { + espScaleSet(lbl_1_bss_152[1], temp_f31, temp_f31); + } + } + else { + sp28.x = 288; + sp28.y = 250; + sp28.z = 600; + Hu3D2Dto3D(&sp28, 1, &sp1C); + sp28.x = 60; + sp28.y = 90; + sp28.z = 600; + Hu3D2Dto3D(&sp28, 1, &sp10); + VECSubtract(&sp10, &sp1C, &sp28); + sp28.x *= sin(M_PI * (90.0f * temp_f31) / 180.0); + sp28.y *= 1.0 - cos(M_PI * (90.0f * temp_f31) / 180.0); + sp28.z = 0.0f; + VECAdd(&sp28, &sp1C, &sp1C); + Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); + lbl_1_bss_108[temp_r31] *= cos(M_PI * (90.0f * temp_f31) / 180.0); + lbl_1_bss_100[temp_r31] = 1.0 - temp_f31; + temp_f31 = 1.0 + (0.5 * cos(M_PI * (90.0f * temp_f31) / 180.0)); + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); + } + HuPrcVSleep(); + } + if (temp_r29 && SLSaveFlagGet()) { + goto repeat; + } + HuWinKill(lbl_1_bss_146); + return 1; } s32 fn_1_562C(void) { - s16 i; - s16 result; - s16 ret; - ret = 1; - for(i=0; i<2; i++) { - result = HuCardSlotCheck((s32)i); - if(result == -2) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[i]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100037); - HuWinMesWait(lbl_1_bss_148); - ret = 0; - } else if(result > 0 && result != 8192) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[i]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100039); - HuWinMesWait(lbl_1_bss_148); - ret = 0; - } else if(result == -128) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[i]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - ret = 0; - } - } - return ret; + s16 i; + s16 result; + s16 ret; + ret = 1; + for (i = 0; i < 2; i++) { + result = HuCardSlotCheck((s32)i); + if (result == -2) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[i]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37)); + HuWinMesWait(lbl_1_bss_148); + ret = 0; + } + else if (result > 0 && result != 8192) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[i]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x39)); + HuWinMesWait(lbl_1_bss_148); + ret = 0; + } + else if (result == -128) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[i]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + ret = 0; + } + } + return ret; } void fn_1_57C8(s16 arg0) { - ModelData *model = &Hu3DData[arg0]; - HsfData *hsf = model->hsfData; - HsfMaterial *mat = hsf->material; - s16 i; - for(i=0; imaterialCnt; i++, mat++) { - mat->invAlpha = 0.0f; - mat->pass &= 0xF0; - } + ModelData *model = &Hu3DData[arg0]; + HsfData *hsf = model->hsfData; + HsfMaterial *mat = hsf->material; + s16 i; + for (i = 0; i < hsf->materialCnt; i++, mat++) { + mat->invAlpha = 0.0f; + mat->pass &= 0xF0; + } } typedef struct work_filesel { - s16 index; - s32 param; + s16 index; + s32 param; } WorkFilesel; void fn_1_5850(void) { - s16 index; - WorkFilesel *work; - s16 i; - s32 param; - Process *curr; - curr = HuPrcCurrentGet(); - work = curr->user_data; - index = work->index; - param = work->param; - Hu3DModelAttrSet(lbl_1_bss_19A[index+2], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[index+4], 1); - Hu3DMotionSet(lbl_1_bss_19A[index+4], lbl_1_bss_16A[6]); - Hu3DMotionSpeedSet(lbl_1_bss_19A[index+4], 2.0f); - if(param) { - Hu3DModelAttrReset(lbl_1_bss_19A[index+4], 0x40000004); - } else { - Hu3DModelAttrSet(lbl_1_bss_19A[index+4], 0x40000004); - Hu3DMotionTimeSet(lbl_1_bss_19A[index+4], Hu3DMotionMaxTimeGet(lbl_1_bss_19A[6])); - } - for(i=0; i<10; i++) { - float scale; - float time = i/10.0; - if(param) { - scale = 1.0+(0.3*sin(M_PI*(90.0f*time)/180.0)); - } else { - scale = 1.0+(0.3*cos(M_PI*(90.0f*time)/180.0)); - } - Hu3DModelScaleSet(lbl_1_bss_19A[index+2], scale, scale, scale); - Hu3DModelScaleSet(lbl_1_bss_19A[index+4], scale, scale, scale); - Hu3DModelScaleSet(lbl_1_bss_19A[index], scale, scale, scale); - HuPrcVSleep(); - } - if(!param) { - Hu3DModelAttrReset(lbl_1_bss_19A[index+2], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[index+4], 1); - } - HuMemDirectFree(work); - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } + s16 index; + WorkFilesel *work; + s16 i; + s32 param; + Process *curr; + curr = HuPrcCurrentGet(); + work = curr->user_data; + index = work->index; + param = work->param; + Hu3DModelAttrSet(lbl_1_bss_19A[index + 2], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[index + 4], 1); + Hu3DMotionSet(lbl_1_bss_19A[index + 4], lbl_1_bss_16A[6]); + Hu3DMotionSpeedSet(lbl_1_bss_19A[index + 4], 2.0f); + if (param) { + Hu3DModelAttrReset(lbl_1_bss_19A[index + 4], 0x40000004); + } + else { + Hu3DModelAttrSet(lbl_1_bss_19A[index + 4], 0x40000004); + Hu3DMotionTimeSet(lbl_1_bss_19A[index + 4], Hu3DMotionMaxTimeGet(lbl_1_bss_19A[6])); + } + for (i = 0; i < 10; i++) { + float scale; + float time = i / 10.0; + if (param) { + scale = 1.0 + (0.3 * sin(M_PI * (90.0f * time) / 180.0)); + } + else { + scale = 1.0 + (0.3 * cos(M_PI * (90.0f * time) / 180.0)); + } + Hu3DModelScaleSet(lbl_1_bss_19A[index + 2], scale, scale, scale); + Hu3DModelScaleSet(lbl_1_bss_19A[index + 4], scale, scale, scale); + Hu3DModelScaleSet(lbl_1_bss_19A[index], scale, scale, scale); + HuPrcVSleep(); + } + if (!param) { + Hu3DModelAttrReset(lbl_1_bss_19A[index + 2], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[index + 4], 1); + } + HuMemDirectFree(work); + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } void fn_1_5BAC(s16 arg0, s32 arg1) { - WorkFilesel *work; - Process *child; - Process *parent; - parent = HuPrcCurrentGet(); - child = HuPrcChildCreate(fn_1_5850, 50, 8192, 0, parent); - work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkFilesel), MEMORY_DEFAULT_NUM); - child->user_data = work; - work->index = arg0; - work->param = arg1; + WorkFilesel *work; + Process *child; + Process *parent; + parent = HuPrcCurrentGet(); + child = HuPrcChildCreate(fn_1_5850, 50, 8192, 0, parent); + work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkFilesel), MEMORY_DEFAULT_NUM); + child->user_data = work; + work->index = arg0; + work->param = arg1; } s32 fn_1_5C38(void) { - s32 result; - lbl_1_bss_14C = 0; - result = HuCardSlotCheck(0); - if(result == 8192) { - Hu3DModelAttrReset(lbl_1_bss_19A[0], 1); - lbl_1_bss_14C |= 1; - } else { - Hu3DModelAttrSet(lbl_1_bss_19A[0], 1); - } - result = HuCardSlotCheck(1); - if(result == 8192) { - Hu3DModelAttrReset(lbl_1_bss_19A[1], 1); - lbl_1_bss_14C |= 2; - } else { - Hu3DModelAttrSet(lbl_1_bss_19A[1], 1); - } - return lbl_1_bss_14C; + s32 result; + lbl_1_bss_14C = 0; + result = HuCardSlotCheck(0); + if (result == 8192) { + Hu3DModelAttrReset(lbl_1_bss_19A[0], 1); + lbl_1_bss_14C |= 1; + } + else { + Hu3DModelAttrSet(lbl_1_bss_19A[0], 1); + } + result = HuCardSlotCheck(1); + if (result == 8192) { + Hu3DModelAttrReset(lbl_1_bss_19A[1], 1); + lbl_1_bss_14C |= 2; + } + else { + Hu3DModelAttrSet(lbl_1_bss_19A[1], 1); + } + return lbl_1_bss_14C; } void fn_1_5D30(void) { - ModelData *model; - Vec pos_2d; - Vec pos_3d; - Mtx scale; - espAttrReset(lbl_1_bss_152[0], 4); - espDrawNoSet(lbl_1_bss_152[0], 127); - espAttrReset(lbl_1_bss_152[1], 4); - Hu3DModelAttrReset(lbl_1_bss_19A[2], 1); - pos_2d.x = 188; - pos_2d.y = 250; - pos_2d.z = 600; - Hu3D2Dto3D(&pos_2d, 1, &pos_3d); - Hu3DModelPosSetV(lbl_1_bss_19A[2], &pos_3d); - Hu3DModelPosSetV(lbl_1_bss_19A[4], &pos_3d); - Hu3DModelPosSetV(lbl_1_bss_19A[0], &pos_3d); - MTXScale(scale, 0.5f, 0.5f, 0.5f); - model = &Hu3DData[lbl_1_bss_19A[2]]; - MTXCopy(scale, model->unk_F0); - model = &Hu3DData[lbl_1_bss_19A[4]]; - MTXCopy(scale, model->unk_F0); - model = &Hu3DData[lbl_1_bss_19A[0]]; - MTXCopy(scale, model->unk_F0); - Hu3DModelAttrReset(lbl_1_bss_19A[3], 1); - pos_2d.x = 388; - Hu3D2Dto3D(&pos_2d, 1, &pos_3d); - Hu3DModelPosSetV(lbl_1_bss_19A[3], &pos_3d); - Hu3DModelPosSetV(lbl_1_bss_19A[5], &pos_3d); - Hu3DModelPosSetV(lbl_1_bss_19A[1], &pos_3d); - model = &Hu3DData[lbl_1_bss_19A[3]]; - MTXCopy(scale, model->unk_F0); - model = &Hu3DData[lbl_1_bss_19A[5]]; - MTXCopy(scale, model->unk_F0); - model = &Hu3DData[lbl_1_bss_19A[1]]; - MTXCopy(scale, model->unk_F0); - Hu3DModelScaleSet(lbl_1_bss_19A[0], 0, 0, 0); - Hu3DModelScaleSet(lbl_1_bss_19A[1], 0, 0, 0); - Hu3DModelScaleSet(lbl_1_bss_19A[2], 0, 0, 0); - Hu3DModelScaleSet(lbl_1_bss_19A[3], 0, 0, 0); - Hu3DModelScaleSet(lbl_1_bss_19A[4], 0, 0, 0); - Hu3DModelScaleSet(lbl_1_bss_19A[5], 0, 0, 0); - fn_1_5C38(); + ModelData *model; + Vec pos_2d; + Vec pos_3d; + Mtx scale; + espAttrReset(lbl_1_bss_152[0], 4); + espDrawNoSet(lbl_1_bss_152[0], 127); + espAttrReset(lbl_1_bss_152[1], 4); + Hu3DModelAttrReset(lbl_1_bss_19A[2], 1); + pos_2d.x = 188; + pos_2d.y = 250; + pos_2d.z = 600; + Hu3D2Dto3D(&pos_2d, 1, &pos_3d); + Hu3DModelPosSetV(lbl_1_bss_19A[2], &pos_3d); + Hu3DModelPosSetV(lbl_1_bss_19A[4], &pos_3d); + Hu3DModelPosSetV(lbl_1_bss_19A[0], &pos_3d); + MTXScale(scale, 0.5f, 0.5f, 0.5f); + model = &Hu3DData[lbl_1_bss_19A[2]]; + MTXCopy(scale, model->unk_F0); + model = &Hu3DData[lbl_1_bss_19A[4]]; + MTXCopy(scale, model->unk_F0); + model = &Hu3DData[lbl_1_bss_19A[0]]; + MTXCopy(scale, model->unk_F0); + Hu3DModelAttrReset(lbl_1_bss_19A[3], 1); + pos_2d.x = 388; + Hu3D2Dto3D(&pos_2d, 1, &pos_3d); + Hu3DModelPosSetV(lbl_1_bss_19A[3], &pos_3d); + Hu3DModelPosSetV(lbl_1_bss_19A[5], &pos_3d); + Hu3DModelPosSetV(lbl_1_bss_19A[1], &pos_3d); + model = &Hu3DData[lbl_1_bss_19A[3]]; + MTXCopy(scale, model->unk_F0); + model = &Hu3DData[lbl_1_bss_19A[5]]; + MTXCopy(scale, model->unk_F0); + model = &Hu3DData[lbl_1_bss_19A[1]]; + MTXCopy(scale, model->unk_F0); + Hu3DModelScaleSet(lbl_1_bss_19A[0], 0, 0, 0); + Hu3DModelScaleSet(lbl_1_bss_19A[1], 0, 0, 0); + Hu3DModelScaleSet(lbl_1_bss_19A[2], 0, 0, 0); + Hu3DModelScaleSet(lbl_1_bss_19A[3], 0, 0, 0); + Hu3DModelScaleSet(lbl_1_bss_19A[4], 0, 0, 0); + Hu3DModelScaleSet(lbl_1_bss_19A[5], 0, 0, 0); + fn_1_5C38(); } void fn_1_7628(s16 boxno, s32 flag); @@ -745,1302 +755,1356 @@ void fn_1_BA80(s16 boxno); s32 fn_1_61B4(void) { - float temp_f31; - s16 temp_r31; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - s32 temp_r27; - s16 temp_r26; - float sp10[2]; - OSTime sp8; - HuWinMesMaxSizeGet(1, sp10, 0x10003D); - lbl_1_bss_146 = HuWinExCreateStyled(-10000, 316, sp10[0], sp10[1], -1, 0); - HuWinAttrSet(lbl_1_bss_146, 0x800); - HuWinBGTPLvlSet(lbl_1_bss_146, 0); - HuWinMesSpeedSet(lbl_1_bss_146, 0); - temp_r30 = -1; - for(temp_r29=lbl_1_bss_88=0; temp_r29<3; temp_r29++) { - lbl_1_bss_EE[temp_r29] = -1; - lbl_1_bss_E8[temp_r29] = -1; - lbl_1_bss_140[temp_r29] = 0; - temp_r27 = fn_1_76B4(SaveFileNameTbl[temp_r29], curSlotNo); - if(temp_r27 == 0) { - temp_r27 = fn_1_83B4(); - if(temp_r27 == 0) { - lbl_1_bss_140[temp_r29] = 1; - if(lbl_1_bss_88 == 0) { - temp_r30 = temp_r29; - } - lbl_1_bss_88++; - if(SLCheckSumCheck()) { - fn_1_A8C0(temp_r29); - } - } - fn_1_9E14(); - } - if(temp_r27 != 0 && temp_r27 != -4) { - HuWinKill(lbl_1_bss_146); - return 0; - } - } - fn_1_9E4C(); - if(temp_r30 == -1) { - temp_r30 = 0; - } - lbl_1_bss_120[0] = lbl_1_bss_120[1] = lbl_1_bss_120[2] = 1; - UnMountCnt = 0; - for(temp_r29=0; temp_r29<=20; temp_r29++) { - temp_f31 = sin(M_PI*(90.0f*(temp_r29/20.0f))/180.0); - for(temp_r28=0; temp_r28<3; temp_r28++) { - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28+8], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28+11], temp_f31, temp_f31, temp_f31); - } - HuPrcVSleep(); - } - HuWinMesSet(lbl_1_bss_148, 0x100007); - HuWinMesWait(lbl_1_bss_148); - fn_1_7628(temp_r30, 1); - if(lbl_1_bss_88 == 0) { - HuWinMesSet(lbl_1_bss_146, 0x100040); - } else { - if(lbl_1_bss_88 == 3) { - HuWinMesSet(lbl_1_bss_146, 0x10003F); - } else { - HuWinMesSet(lbl_1_bss_146, 0x10003D); - } - } - HuWinDispOn(lbl_1_bss_146); - fn_1_BA80(temp_r30); - if(UnMountCnt & (1 << curSlotNo)) { - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = 0; - } else { - UnMountCnt = 0; - while(1) { - HuPrcVSleep(); - if(UnMountCnt & (1 << curSlotNo)) { - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = 0; - break; - } - temp_r26 = 0; - if(HuPadDStkRep[0] & 0x1) { - temp_r26 = -1; - } else if(HuPadDStkRep[0] & 0x2) { - temp_r26 = 1; - } - if(temp_r26) { - fn_1_7628(temp_r30, 0); - temp_r30 += temp_r26; - if(temp_r30 < 0) { - temp_r30 = 2; - } else if(temp_r30 >= 3) { - temp_r30 = 0; - } - HuAudFXPlay(0); - fn_1_7628(temp_r30, 1); - fn_1_BA80(temp_r30); - HuPrcSleep(10); - } - if((HuPadBtnDown[0] & PAD_BUTTON_X) && lbl_1_bss_140[temp_r30]) { - UnMountCnt = 0; - temp_r31 = fn_1_76B4(SaveFileNameTbl[temp_r30], curSlotNo); - if(temp_r31 < 0) { - temp_r31 = 0; - break; - } - if(!lbl_1_bss_140[temp_r30]) { - continue; - } - HuWinDispOff(lbl_1_bss_146); - HuAudFXPlay(2); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[temp_r30]), 1); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesSet(lbl_1_bss_148, 0x100008); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r31 == 0) { - temp_r31 = fn_1_8540(temp_r30); - if(temp_r31 == 0) { - break; - } - } - if(UnMountCnt & (1 << curSlotNo)) { - continue; - } - HuWinMesSet(lbl_1_bss_148, 0x100007); - HuWinMesWait(lbl_1_bss_148); - if(lbl_1_bss_88 == 0) { - HuWinMesSet(lbl_1_bss_146, 0x100040); - } else if(lbl_1_bss_88 == 3) { - HuWinMesSet(lbl_1_bss_146, 0x10003F); - } else { - HuWinMesSet(lbl_1_bss_146, 0x10003D); - } - HuWinDispOn(lbl_1_bss_146); - fn_1_BA80(temp_r30); - continue; - } else if(HuPadBtnDown[0] & PAD_BUTTON_Y) { - UnMountCnt = 0; - if(HuCardSlotCheck(curSlotNo) < 0) { - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = 0; - break; - } - if(!lbl_1_bss_140[temp_r30]) { - continue; - } - for(temp_r29=0; temp_r29<3; temp_r29++) { - if(!lbl_1_bss_140[temp_r29]) { - break; - } - } - if(temp_r29 == 3) { - continue; - } - HuWinDispOff(lbl_1_bss_146); - HuAudFXPlay(2); - if(fn_1_8C30(temp_r30) == 0) { - temp_r31 = 0; - break; - } - if(UnMountCnt & (1 << curSlotNo)) { - continue; - } - HuWinMesSet(lbl_1_bss_148, 0x100007); - HuWinMesWait(lbl_1_bss_148); - if(lbl_1_bss_88 == 0) { - HuWinMesSet(lbl_1_bss_146, 0x100040); - } else if(lbl_1_bss_88 == 3) { - HuWinMesSet(lbl_1_bss_146, 0x10003F); - } else { - HuWinMesSet(lbl_1_bss_146, 0x10003D); - } - HuWinDispOn(lbl_1_bss_146); - fn_1_BA80(temp_r30); - continue; - } else if(HuPadBtnDown[0] & PAD_BUTTON_A) { - UnMountCnt = 0; - HuWinDispOff(lbl_1_bss_146); - HuCardMount(curSlotNo); - if(HuCardSlotCheck(curSlotNo) < 0) { - HuAudFXPlay(4); - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = 0; - break; - } - if(SLSerialNoCheck() == 0) { - HuAudFXPlay(4); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100045); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = 0; - break; - } - HuAudFXPlay(2097); - SLCurBoxNoSet(temp_r30); - if(!lbl_1_bss_140[temp_r30]) { - HuWinMesSet(lbl_1_bss_148, 0x10000B); - HuWinMesWait(lbl_1_bss_148); - sp8 = OSGetTime(); - SLSaveDataMake(1, &sp8); - GWGameStatReset(); - GWGameStat.sound_mode = msmSysGetOutputMode(); - SLCommonSet(); - fn_1_B8CC(0x10003C); - HuPrcSleep(20); - if(UnMountCnt & (1 << curSlotNo)) { - fn_1_BA20(); - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = 0; - break; - } - temp_r27 = fn_1_7B74(temp_r30); - fn_1_BA20(); - if(temp_r27 != 0) { - temp_r31 = 1; - break; - } - HuWinMesSet(lbl_1_bss_148, 0x10004F); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r31 == 0) { - SLSaveFlagSet(0); - temp_r31 = 1; - break; - } - HuWinInsertMesSet(lbl_1_bss_148, 0x100052, 0); - HuWinMesSet(lbl_1_bss_148, 0x10004C); - HuWinMesWait(lbl_1_bss_148); - while(!(HuPadBtnDown[0] & PAD_BUTTON_A)) { - HuPrcVSleep(); - } - temp_r31 = 0; - break; - } else { - if(!fn_1_76B4(SaveFileNameTbl[temp_r30], curSlotNo)) { - if(!fn_1_83B4()) { - if(SLCheckSumCheck()) { - fn_1_9E14(); - SLLoadGameStat(); - temp_r31 = 1; - break; - } - HuWinHomeClear(lbl_1_bss_148); - HuPrcSleep(60); - if(UnMountCnt & (1 << curSlotNo)) { - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = 0; - break; - } - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[temp_r30]), 0); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesSet(lbl_1_bss_148, 0x10003A); - HuWinMesWait(lbl_1_bss_148); - temp_r31 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(!temp_r31) { - temp_r31 = fn_1_8540(temp_r30); - if(temp_r31 == 0) { - break; - } - if(HuCardMount(curSlotNo) < 0) { - temp_r31 = 0; - break; - } - } - } else { - temp_r31 = 0; - } - } else { - temp_r31 = 0; - } - if(temp_r31 == 0) { - break; - } - if(UnMountCnt & (1 << curSlotNo)) { - continue; - } - HuWinMesSet(lbl_1_bss_148, 0x100007); - HuWinMesWait(lbl_1_bss_148); - if(lbl_1_bss_88 == 0) { - HuWinMesSet(lbl_1_bss_146, 0x100040); - } else if(lbl_1_bss_88 == 3) { - HuWinMesSet(lbl_1_bss_146, 0x10003F); - } else { - HuWinMesSet(lbl_1_bss_146, 0x10003D); - } - HuWinDispOn(lbl_1_bss_146); - fn_1_BA80(temp_r30); - continue; - } - } else if(HuPadBtnDown[0] & PAD_BUTTON_B) { - HuAudFXPlay(3); - temp_r31 = 0; - break; - } - } - } - HuWinDispOff(lbl_1_bss_146); - for(temp_r29=0; temp_r29<=20; temp_r29++) { - temp_f31 = cos(M_PI*(90.0*(temp_r29/20.0))/180.0); - Hu3DModelScaleSet(lbl_1_bss_19A[curSlotNo], temp_f31, temp_f31, temp_f31); - for(temp_r28=0; temp_r28<3; temp_r28++) { - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28+8], temp_f31, temp_f31, temp_f31); - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28+11], temp_f31, temp_f31, temp_f31); - } - if(temp_r31) { - espScaleSet(lbl_1_bss_152[1], temp_f31, temp_f31); - } - HuPrcVSleep(); - } - HuWinKill(lbl_1_bss_146); - return temp_r31; + float temp_f31; + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s32 temp_r27; + s16 temp_r26; + float sp10[2]; + OSTime sp8; + HuWinMesMaxSizeGet(1, sp10, MAKE_MESSID(0x10, 0x3D)); + lbl_1_bss_146 = HuWinExCreateStyled(-10000, 316, sp10[0], sp10[1], -1, 0); + HuWinAttrSet(lbl_1_bss_146, 0x800); + HuWinBGTPLvlSet(lbl_1_bss_146, 0); + HuWinMesSpeedSet(lbl_1_bss_146, 0); + temp_r30 = -1; + for (temp_r29 = lbl_1_bss_88 = 0; temp_r29 < 3; temp_r29++) { + lbl_1_bss_EE[temp_r29] = -1; + lbl_1_bss_E8[temp_r29] = -1; + lbl_1_bss_140[temp_r29] = 0; + temp_r27 = fn_1_76B4(SaveFileNameTbl[temp_r29], curSlotNo); + if (temp_r27 == 0) { + temp_r27 = fn_1_83B4(); + if (temp_r27 == 0) { + lbl_1_bss_140[temp_r29] = 1; + if (lbl_1_bss_88 == 0) { + temp_r30 = temp_r29; + } + lbl_1_bss_88++; + if (SLCheckSumCheck()) { + fn_1_A8C0(temp_r29); + } + } + fn_1_9E14(); + } + if (temp_r27 != 0 && temp_r27 != -4) { + HuWinKill(lbl_1_bss_146); + return 0; + } + } + fn_1_9E4C(); + if (temp_r30 == -1) { + temp_r30 = 0; + } + lbl_1_bss_120[0] = lbl_1_bss_120[1] = lbl_1_bss_120[2] = 1; + UnMountCnt = 0; + for (temp_r29 = 0; temp_r29 <= 20; temp_r29++) { + temp_f31 = sin(M_PI * (90.0f * (temp_r29 / 20.0f)) / 180.0); + for (temp_r28 = 0; temp_r28 < 3; temp_r28++) { + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 8], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 11], temp_f31, temp_f31, temp_f31); + } + HuPrcVSleep(); + } + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x07)); + HuWinMesWait(lbl_1_bss_148); + fn_1_7628(temp_r30, 1); + if (lbl_1_bss_88 == 0) { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x40)); + } + else { + if (lbl_1_bss_88 == 3) { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3F)); + } + else { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3D)); + } + } + HuWinDispOn(lbl_1_bss_146); + fn_1_BA80(temp_r30); + if (UnMountCnt & (1 << curSlotNo)) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = 0; + } + else { + UnMountCnt = 0; + while (1) { + HuPrcVSleep(); + if (UnMountCnt & (1 << curSlotNo)) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = 0; + break; + } + temp_r26 = 0; + if (HuPadDStkRep[0] & 0x1) { + temp_r26 = -1; + } + else if (HuPadDStkRep[0] & 0x2) { + temp_r26 = 1; + } + if (temp_r26) { + fn_1_7628(temp_r30, 0); + temp_r30 += temp_r26; + if (temp_r30 < 0) { + temp_r30 = 2; + } + else if (temp_r30 >= 3) { + temp_r30 = 0; + } + HuAudFXPlay(0); + fn_1_7628(temp_r30, 1); + fn_1_BA80(temp_r30); + HuPrcSleep(10); + } + if ((HuPadBtnDown[0] & PAD_BUTTON_X) && lbl_1_bss_140[temp_r30]) { + UnMountCnt = 0; + temp_r31 = fn_1_76B4(SaveFileNameTbl[temp_r30], curSlotNo); + if (temp_r31 < 0) { + temp_r31 = 0; + break; + } + if (!lbl_1_bss_140[temp_r30]) { + continue; + } + HuWinDispOff(lbl_1_bss_146); + HuAudFXPlay(2); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[temp_r30]), 1); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x08)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r31 == 0) { + temp_r31 = fn_1_8540(temp_r30); + if (temp_r31 == 0) { + break; + } + } + if (UnMountCnt & (1 << curSlotNo)) { + continue; + } + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x07)); + HuWinMesWait(lbl_1_bss_148); + if (lbl_1_bss_88 == 0) { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x40)); + } + else if (lbl_1_bss_88 == 3) { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3F)); + } + else { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3D)); + } + HuWinDispOn(lbl_1_bss_146); + fn_1_BA80(temp_r30); + continue; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_Y) { + UnMountCnt = 0; + if (HuCardSlotCheck(curSlotNo) < 0) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = 0; + break; + } + if (!lbl_1_bss_140[temp_r30]) { + continue; + } + for (temp_r29 = 0; temp_r29 < 3; temp_r29++) { + if (!lbl_1_bss_140[temp_r29]) { + break; + } + } + if (temp_r29 == 3) { + continue; + } + HuWinDispOff(lbl_1_bss_146); + HuAudFXPlay(2); + if (fn_1_8C30(temp_r30) == 0) { + temp_r31 = 0; + break; + } + if (UnMountCnt & (1 << curSlotNo)) { + continue; + } + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x07)); + HuWinMesWait(lbl_1_bss_148); + if (lbl_1_bss_88 == 0) { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x40)); + } + else if (lbl_1_bss_88 == 3) { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3F)); + } + else { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3D)); + } + HuWinDispOn(lbl_1_bss_146); + fn_1_BA80(temp_r30); + continue; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_A) { + UnMountCnt = 0; + HuWinDispOff(lbl_1_bss_146); + HuCardMount(curSlotNo); + if (HuCardSlotCheck(curSlotNo) < 0) { + HuAudFXPlay(4); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = 0; + break; + } + if (SLSerialNoCheck() == 0) { + HuAudFXPlay(4); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = 0; + break; + } + HuAudFXPlay(2097); + SLCurBoxNoSet(temp_r30); + if (!lbl_1_bss_140[temp_r30]) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B)); + HuWinMesWait(lbl_1_bss_148); + sp8 = OSGetTime(); + SLSaveDataMake(1, &sp8); + GWGameStatReset(); + GWGameStat.sound_mode = msmSysGetOutputMode(); + SLCommonSet(); + fn_1_B8CC(MAKE_MESSID(16, 0x3C)); + HuPrcSleep(20); + if (UnMountCnt & (1 << curSlotNo)) { + fn_1_BA20(); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = 0; + break; + } + temp_r27 = fn_1_7B74(temp_r30); + fn_1_BA20(); + if (temp_r27 != 0) { + temp_r31 = 1; + break; + } + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4F)); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r31 == 0) { + SLSaveFlagSet(0); + temp_r31 = 1; + break; + } + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x52), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4C)); + HuWinMesWait(lbl_1_bss_148); + while (!(HuPadBtnDown[0] & PAD_BUTTON_A)) { + HuPrcVSleep(); + } + temp_r31 = 0; + break; + } + else { + if (!fn_1_76B4(SaveFileNameTbl[temp_r30], curSlotNo)) { + if (!fn_1_83B4()) { + if (SLCheckSumCheck()) { + fn_1_9E14(); + SLLoadGameStat(); + temp_r31 = 1; + break; + } + HuWinHomeClear(lbl_1_bss_148); + HuPrcSleep(60); + if (UnMountCnt & (1 << curSlotNo)) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = 0; + break; + } + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[temp_r30]), 0); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x3A)); + HuWinMesWait(lbl_1_bss_148); + temp_r31 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (!temp_r31) { + temp_r31 = fn_1_8540(temp_r30); + if (temp_r31 == 0) { + break; + } + if (HuCardMount(curSlotNo) < 0) { + temp_r31 = 0; + break; + } + } + } + else { + temp_r31 = 0; + } + } + else { + temp_r31 = 0; + } + if (temp_r31 == 0) { + break; + } + if (UnMountCnt & (1 << curSlotNo)) { + continue; + } + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x07)); + HuWinMesWait(lbl_1_bss_148); + if (lbl_1_bss_88 == 0) { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x40)); + } + else if (lbl_1_bss_88 == 3) { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3F)); + } + else { + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x3D)); + } + HuWinDispOn(lbl_1_bss_146); + fn_1_BA80(temp_r30); + continue; + } + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + temp_r31 = 0; + break; + } + } + } + HuWinDispOff(lbl_1_bss_146); + for (temp_r29 = 0; temp_r29 <= 20; temp_r29++) { + temp_f31 = cos(M_PI * (90.0 * (temp_r29 / 20.0)) / 180.0); + Hu3DModelScaleSet(lbl_1_bss_19A[curSlotNo], temp_f31, temp_f31, temp_f31); + for (temp_r28 = 0; temp_r28 < 3; temp_r28++) { + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 8], temp_f31, temp_f31, temp_f31); + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 11], temp_f31, temp_f31, temp_f31); + } + if (temp_r31) { + espScaleSet(lbl_1_bss_152[1], temp_f31, temp_f31); + } + HuPrcVSleep(); + } + HuWinKill(lbl_1_bss_146); + return temp_r31; } void fn_1_72DC(void) { - s16 index; - WorkFilesel *work; - s16 i; - s32 param; - Process *curr; - curr = HuPrcCurrentGet(); - work = curr->user_data; - index = work->index; - param = work->param; - if(param) { - Hu3DModelAttrReset(lbl_1_bss_19A[index+8], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[index+11], 1); - } else { - Hu3DModelAttrSet(lbl_1_bss_19A[index+8], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[index+11], 1); - } - for(i=0; i<=10; i++) { - float scale; - Vec pos_2d; - Vec pos_3d; - if(param) { - scale = sin(M_PI*(90.0f*(i/10.0f))/180.0); - } else { - scale = cos(M_PI*(90.0f*(i/10.0f))/180.0); - } - pos_2d.x = 158.0f+(index*130); - pos_2d.y = 230; - pos_2d.z = 800; - Hu3D2Dto3D(&pos_2d, 1, &pos_3d); - pos_3d.z = 800+(100.0f*scale); - Hu3DModelPosSetV(lbl_1_bss_19A[index+8], &pos_3d); - Hu3DModelPosSetV(lbl_1_bss_19A[index+11], &pos_3d); - Hu3DModelScaleSet(lbl_1_bss_19A[index+8], 1, 1, 1); - Hu3DModelScaleSet(lbl_1_bss_19A[index+11], 1, 1, 1); - HuPrcVSleep(); - } - (void)curr; - HuMemDirectFree(work); - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } + s16 index; + WorkFilesel *work; + s16 i; + s32 param; + Process *curr; + curr = HuPrcCurrentGet(); + work = curr->user_data; + index = work->index; + param = work->param; + if (param) { + Hu3DModelAttrReset(lbl_1_bss_19A[index + 8], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[index + 11], 1); + } + else { + Hu3DModelAttrSet(lbl_1_bss_19A[index + 8], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[index + 11], 1); + } + for (i = 0; i <= 10; i++) { + float scale; + Vec pos_2d; + Vec pos_3d; + if (param) { + scale = sin(M_PI * (90.0f * (i / 10.0f)) / 180.0); + } + else { + scale = cos(M_PI * (90.0f * (i / 10.0f)) / 180.0); + } + pos_2d.x = 158.0f + (index * 130); + pos_2d.y = 230; + pos_2d.z = 800; + Hu3D2Dto3D(&pos_2d, 1, &pos_3d); + pos_3d.z = 800 + (100.0f * scale); + Hu3DModelPosSetV(lbl_1_bss_19A[index + 8], &pos_3d); + Hu3DModelPosSetV(lbl_1_bss_19A[index + 11], &pos_3d); + Hu3DModelScaleSet(lbl_1_bss_19A[index + 8], 1, 1, 1); + Hu3DModelScaleSet(lbl_1_bss_19A[index + 11], 1, 1, 1); + HuPrcVSleep(); + } + (void)curr; + HuMemDirectFree(work); + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } void fn_1_7628(s16 boxno, s32 flag) { - WorkFilesel *work; - Process *parent; - Process *child; - - parent = HuPrcCurrentGet(); - child = HuPrcChildCreate(fn_1_72DC, 50, 8192, 0, parent); - work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkFilesel), MEMORY_DEFAULT_NUM); - child->user_data = work; - work->index = boxno; - work->param = flag; + WorkFilesel *work; + Process *parent; + Process *child; + + parent = HuPrcCurrentGet(); + child = HuPrcChildCreate(fn_1_72DC, 50, 8192, 0, parent); + work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkFilesel), MEMORY_DEFAULT_NUM); + child->user_data = work; + work->index = boxno; + work->param = flag; } s32 fn_1_76B4(char *name, s16 slotno) { - s32 result; - s16 choice; - s16 filecnt; - filecnt = 0; - while(1) { - filecnt++; - result = HuCardMount(slotno); - if(result == 0) { - result = HuCardOpen(slotno, name, &curFileInfo); - if(result == 0 || result == -4) { - if(SLSerialNoCheck()) { - return result; - } - } - } - if(result == -2) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[slotno]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100037); - HuWinMesWait(lbl_1_bss_148); - return result; - } - if(result == -128 || filecnt > 3) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[slotno]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - return result; - } else if(result == -3) { - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - return result; - } else if(result == -4 || !SLSerialNoCheck()) { - OSReport("Card Open Error:No File\n"); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100045); - HuWinMesWait(lbl_1_bss_148); - break; - } else if(result == -6) { - UnMountCnt = 0; - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[slotno]), 0); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesSet(lbl_1_bss_148, 0x100004); - HuWinMesWait(lbl_1_bss_148); - choice = HuWinChoiceGet(lbl_1_bss_148, 1); - if(choice == 0) { - HuWinMesSet(lbl_1_bss_148, 0x10004E); - HuWinMesWait(lbl_1_bss_148); - choice = HuWinChoiceGet(lbl_1_bss_148, 1); - if(choice == 0) { - fn_1_B8CC(0x100038); - HuWinMesSet(lbl_1_bss_148, 0x10000B); - HuWinMesWait(lbl_1_bss_148); - HuPrcSleep(60); - if(UnMountCnt & (1 << curSlotNo)) { - fn_1_BA20(); - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - } else { - _SetFlag(0x30000); - result = HuCardFormat(slotno); - _ClearFlag(0x30000); - if(result == 0) { - SLSerialNoGet(); - } - fn_1_BA20(); - if(result == -128) { - HuWinMesSet(lbl_1_bss_148, 0x100036); - HuWinMesWait(lbl_1_bss_148); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - return result; - } else if(result == -3) { - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - return result; - } - } - } else { - return result; - } - continue; - } - return result; - } - break; - } - return result; + s32 result; + s16 choice; + s16 filecnt; + filecnt = 0; + while (1) { + filecnt++; + result = HuCardMount(slotno); + if (result == 0) { + result = HuCardOpen(slotno, name, &curFileInfo); + if (result == 0 || result == -4) { + if (SLSerialNoCheck()) { + return result; + } + } + } + if (result == -2) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[slotno]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37)); + HuWinMesWait(lbl_1_bss_148); + return result; + } + if (result == -128 || filecnt > 3) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[slotno]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + return result; + } + else if (result == -3) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + return result; + } + else if (result == -4 || !SLSerialNoCheck()) { + OSReport("Card Open Error:No File\n"); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45)); + HuWinMesWait(lbl_1_bss_148); + break; + } + else if (result == -6) { + UnMountCnt = 0; + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[slotno]), 0); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x04)); + HuWinMesWait(lbl_1_bss_148); + choice = HuWinChoiceGet(lbl_1_bss_148, 1); + if (choice == 0) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4E)); + HuWinMesWait(lbl_1_bss_148); + choice = HuWinChoiceGet(lbl_1_bss_148, 1); + if (choice == 0) { + fn_1_B8CC(MAKE_MESSID(16, 0x38)); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B)); + HuWinMesWait(lbl_1_bss_148); + HuPrcSleep(60); + if (UnMountCnt & (1 << curSlotNo)) { + fn_1_BA20(); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + } + else { + _SetFlag(0x30000); + result = HuCardFormat(slotno); + _ClearFlag(0x30000); + if (result == 0) { + SLSerialNoGet(); + } + fn_1_BA20(); + if (result == -128) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x36)); + HuWinMesWait(lbl_1_bss_148); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + return result; + } + else if (result == -3) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + return result; + } + } + } + else { + return result; + } + continue; + } + return result; + } + break; + } + return result; } s32 fn_1_7B74(s16 boxno) { - s32 result; - s32 i; - result = HuCardMount(curSlotNo); - if(result == 0 && !SLSerialNoCheck()) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100045); - HuWinMesWait(lbl_1_bss_148); - } else { - result = HuCardSectorSizeGet(curSlotNo); - if(result == -3) { - fn_1_BA20(); - OSReport("SectorSize Check Error:No Card %d\n", curSlotNo); - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - } else { - if(result != 8192) { - fn_1_BA20(); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100039); - HuWinMesWait(lbl_1_bss_148); - } else { - u32 byteNotUsed; - u32 filesNotUsed; - result = HuCardFreeSpaceGet(curSlotNo, &byteNotUsed, &filesNotUsed); - if(filesNotUsed == 0 && byteNotUsed < SAVE_BUF_SIZE) { - fn_1_BA20(); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x10004A); - HuWinMesWait(lbl_1_bss_148); - } else if(filesNotUsed == 0) { - fn_1_BA20(); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x10004A); - HuWinMesWait(lbl_1_bss_148); - } else if(byteNotUsed < SAVE_BUF_SIZE) { - fn_1_BA20(); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x10004A); - HuWinMesWait(lbl_1_bss_148); - } else { - HuWinMesSet(lbl_1_bss_148, 0x10000B); - HuWinMesWait(lbl_1_bss_148); - for(i=0; i<=40; i++) { - float time = i/40.0; - Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno+8], 0.6+(0.4*time)); - Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno+11], 0.3+(0.7*time)); - HuPrcVSleep(); - } - _SetFlag(0x30000); - result = HuCardCreate(curSlotNo, SaveFileNameTbl[boxno], SAVE_BUF_SIZE, &curFileInfo); - if(result == -3) { - _ClearFlag(0x30000); - fn_1_BA20(); - OSReport("File Create Error:No Card\n"); - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - } else if(result == -2) { - _ClearFlag(0x30000); - fn_1_BA20(); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100037); - HuWinMesWait(lbl_1_bss_148); - } else if(result < 0) { - _ClearFlag(0x30000); - fn_1_BA20(); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - } else { - result = fn_1_812C(); - _ClearFlag(0x30000); - if(result != 0) { - return 1; - } - } - } - } - } - } - return 0; + s32 result; + s32 i; + result = HuCardMount(curSlotNo); + if (result == 0 && !SLSerialNoCheck()) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45)); + HuWinMesWait(lbl_1_bss_148); + } + else { + result = HuCardSectorSizeGet(curSlotNo); + if (result == -3) { + fn_1_BA20(); + OSReport("SectorSize Check Error:No Card %d\n", curSlotNo); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + } + else { + if (result != 8192) { + fn_1_BA20(); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x39)); + HuWinMesWait(lbl_1_bss_148); + } + else { + u32 byteNotUsed; + u32 filesNotUsed; + result = HuCardFreeSpaceGet(curSlotNo, &byteNotUsed, &filesNotUsed); + if (filesNotUsed == 0 && byteNotUsed < SAVE_BUF_SIZE) { + fn_1_BA20(); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A)); + HuWinMesWait(lbl_1_bss_148); + } + else if (filesNotUsed == 0) { + fn_1_BA20(); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A)); + HuWinMesWait(lbl_1_bss_148); + } + else if (byteNotUsed < SAVE_BUF_SIZE) { + fn_1_BA20(); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A)); + HuWinMesWait(lbl_1_bss_148); + } + else { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B)); + HuWinMesWait(lbl_1_bss_148); + for (i = 0; i <= 40; i++) { + float time = i / 40.0; + Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno + 8], 0.6 + (0.4 * time)); + Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno + 11], 0.3 + (0.7 * time)); + HuPrcVSleep(); + } + _SetFlag(0x30000); + result = HuCardCreate(curSlotNo, SaveFileNameTbl[boxno], SAVE_BUF_SIZE, &curFileInfo); + if (result == -3) { + _ClearFlag(0x30000); + fn_1_BA20(); + OSReport("File Create Error:No Card\n"); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + } + else if (result == -2) { + _ClearFlag(0x30000); + fn_1_BA20(); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37)); + HuWinMesWait(lbl_1_bss_148); + } + else if (result < 0) { + _ClearFlag(0x30000); + fn_1_BA20(); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + } + else { + result = fn_1_812C(); + _ClearFlag(0x30000); + if (result != 0) { + return 1; + } + } + } + } + } + } + return 0; } s32 fn_1_812C(void) { - s32 result; - SLCheckSumSet(); - _SetFlag(0x30000); - result = HuCardWrite(&curFileInfo, &saveBuf.buf[0], SAVE_BUF_SIZE, 0); - _ClearFlag(0x30000); - if(result == -3) { - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - if(result == -2) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100037); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - if(result < 0) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - result = SLStatSet(0); - if(result == -3) { - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - if(result == -2) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100037); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - if(result < 0) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - return 1; + s32 result; + SLCheckSumSet(); + _SetFlag(0x30000); + result = HuCardWrite(&curFileInfo, &saveBuf.buf[0], SAVE_BUF_SIZE, 0); + _ClearFlag(0x30000); + if (result == -3) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + if (result == -2) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + if (result < 0) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + result = SLStatSet(0); + if (result == -3) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + if (result == -2) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + if (result < 0) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + return 1; } s32 fn_1_83B4(void) { - s32 result; - result = HuCardRead(&curFileInfo, &saveBuf.buf[0], SAVE_BUF_SIZE, 0); - if(result == -3) { - OSReport("Card Read Error:No Card\n"); - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - } else if(result == -4 || !SLSerialNoCheck()) { - OSReport("Card Read Error:No File\n", result); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100045); - HuWinMesWait(lbl_1_bss_148); - } else if(result < 0) { - OSReport("Card Read Error:Fatal Error %d\n", result); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - } - return result; + s32 result; + result = HuCardRead(&curFileInfo, &saveBuf.buf[0], SAVE_BUF_SIZE, 0); + if (result == -3) { + OSReport("Card Read Error:No Card\n"); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + } + else if (result == -4 || !SLSerialNoCheck()) { + OSReport("Card Read Error:No File\n", result); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45)); + HuWinMesWait(lbl_1_bss_148); + } + else if (result < 0) { + OSReport("Card Read Error:Fatal Error %d\n", result); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + } + return result; } s32 fn_1_8540(s16 boxno) { - float scale; - s32 result; - s32 time; - AnimData *sprite; - result = HuCardMount(curSlotNo); - if(result == -3) { - OSReport("Card Delete Error:No Card\n"); - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - if(result == -4 || !SLSerialNoCheck()) { - OSReport("Card Delete Error:No File\n", result); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100045); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - if(result < 0) { - OSReport("Card Delete Error:Fatal Error %d\n", result); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - - fn_1_B8CC(0x10003B); - HuWinMesSet(lbl_1_bss_148, 0x10000B); - HuWinMesWait(lbl_1_bss_148); - HuPrcSleep(60); - if(UnMountCnt & (1 << curSlotNo)) { - fn_1_BA20(); - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - return 0; - } else { - _SetFlag(0x30000); - result = HuCardDelete(curSlotNo, SaveFileNameTbl[boxno]); - _ClearFlag(0x30000); - fn_1_BA20(); - if(result == -3) { - OSReport("Card Delete Error:No Card\n"); - HuWinMesSet(lbl_1_bss_148, 0x100002); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - if(result == -4 || !SLSerialNoCheck()) { - OSReport("Card Delete Error:No File\n", result); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100045); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - if(result < 0) { - OSReport("Card Delete Error:Fatal Error %d\n", result); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100053); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - for(time=0; time<=10; time++) { - scale = cos(M_PI*(90.0*(time/10.0))/180.0); - Hu3DModelScaleSet(lbl_1_bss_19A[boxno+8], scale, scale, scale); - HuPrcVSleep(); - } - Hu3DAnimKill(lbl_1_bss_13A[boxno]); - Hu3DAnimKill(lbl_1_bss_134[boxno]); - sprite = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[8], MEMORY_DEFAULT_NUM)); - lbl_1_bss_13A[boxno] = Hu3DAnimCreate(sprite, lbl_1_bss_19A[boxno+8], "star"); - sprite = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[17], MEMORY_DEFAULT_NUM)); - lbl_1_bss_134[boxno] = Hu3DAnimCreate(sprite, lbl_1_bss_19A[boxno+11], "star"); - lbl_1_bss_EE[boxno] = -1; - Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno+8], 0.6f); - Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno+11], 0.3f); - for(time=0; time<=20; time++) { - scale = sin(M_PI*(90.0*(time/20.0))/180.0); - Hu3DModelScaleSet(lbl_1_bss_19A[boxno+8], scale, scale, scale); - HuPrcVSleep(); - } - lbl_1_bss_140[boxno] = 0; - lbl_1_bss_88--; - return 1; - } + float scale; + s32 result; + s32 time; + AnimData *sprite; + result = HuCardMount(curSlotNo); + if (result == -3) { + OSReport("Card Delete Error:No Card\n"); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + if (result == -4 || !SLSerialNoCheck()) { + OSReport("Card Delete Error:No File\n", result); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + if (result < 0) { + OSReport("Card Delete Error:Fatal Error %d\n", result); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + + fn_1_B8CC(MAKE_MESSID(16, 0x3B)); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B)); + HuWinMesWait(lbl_1_bss_148); + HuPrcSleep(60); + if (UnMountCnt & (1 << curSlotNo)) { + fn_1_BA20(); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + else { + _SetFlag(0x30000); + result = HuCardDelete(curSlotNo, SaveFileNameTbl[boxno]); + _ClearFlag(0x30000); + fn_1_BA20(); + if (result == -3) { + OSReport("Card Delete Error:No Card\n"); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x02)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + if (result == -4 || !SLSerialNoCheck()) { + OSReport("Card Delete Error:No File\n", result); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + if (result < 0) { + OSReport("Card Delete Error:Fatal Error %d\n", result); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x53)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + for (time = 0; time <= 10; time++) { + scale = cos(M_PI * (90.0 * (time / 10.0)) / 180.0); + Hu3DModelScaleSet(lbl_1_bss_19A[boxno + 8], scale, scale, scale); + HuPrcVSleep(); + } + Hu3DAnimKill(lbl_1_bss_13A[boxno]); + Hu3DAnimKill(lbl_1_bss_134[boxno]); + sprite = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[8], MEMORY_DEFAULT_NUM)); + lbl_1_bss_13A[boxno] = Hu3DAnimCreate(sprite, lbl_1_bss_19A[boxno + 8], "star"); + sprite = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[17], MEMORY_DEFAULT_NUM)); + lbl_1_bss_134[boxno] = Hu3DAnimCreate(sprite, lbl_1_bss_19A[boxno + 11], "star"); + lbl_1_bss_EE[boxno] = -1; + Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno + 8], 0.6f); + Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno + 11], 0.3f); + for (time = 0; time <= 20; time++) { + scale = sin(M_PI * (90.0 * (time / 20.0)) / 180.0); + Hu3DModelScaleSet(lbl_1_bss_19A[boxno + 8], scale, scale, scale); + HuPrcVSleep(); + } + lbl_1_bss_140[boxno] = 0; + lbl_1_bss_88--; + return 1; + } } s32 fn_1_8C30(s16 boxno) { - float temp_f31; - s16 temp_r31; - s16 temp_r30; - s32 temp_r29; - s16 temp_r26; - s16 temp_r25; - AnimData *temp_r19; - Vec sp60; - Vec sp54; - Vec sp48; - Vec sp3C; - s32 sp38; - s32 sp34; - Process *sp30; - ModelData *sp2C; - sp30 = HuPrcCurrentGet(); - OSReport("Card Copy Seq.:Open\n"); - temp_r29 = fn_1_76B4(SaveFileNameTbl[boxno], curSlotNo); - if(temp_r29 < 0 || !SLSerialNoCheck()) { - return 0; - } - OSReport("Card Copy Seq.:Read\n"); - temp_r29 = fn_1_83B4(); - if(temp_r29 != 0) { - return 0; - } - OSReport("Card Copy Seq.:CheckSum Check\n"); - if(!SLCheckSumCheck()) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[boxno]), 0); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesSet(lbl_1_bss_148, 0x10003A); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r29 != 0) { - return 1; - } else { - temp_r29 = fn_1_8540(boxno); - return temp_r29; - } - } - if(!SLSerialNoCheck()) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x100045); - HuWinMesWait(lbl_1_bss_148); - return 0; - } - temp_r29 = HuCardFreeSpaceGet(curSlotNo, (u32 *)&sp34, (u32 *)&sp38); - if(sp38 == 0 && sp34 < SAVE_BUF_SIZE) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x10004A); - HuWinMesWait(lbl_1_bss_148); - return 1; - } else if(sp38 == 0) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x10004A); - HuWinMesWait(lbl_1_bss_148); - return 1; - } else if(sp34 < SAVE_BUF_SIZE) { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_bss_148, 0x10004A); - HuWinMesWait(lbl_1_bss_148); - return 1; - } - for(temp_r30=0; temp_r30<3; temp_r30++) { - if(!lbl_1_bss_140[temp_r30]) { - break; - } - } - if(temp_r30 == 3) { - return 1; - } - temp_r31 = temp_r30; - HuWinMesSet(lbl_1_bss_148, 0x100009); - HuWinMesWait(lbl_1_bss_148); - HuWinMesSet(lbl_1_bss_146, 0x100035); - HuWinDispOn(lbl_1_bss_146); - lbl_1_bss_90 = boxno; - Hu3DModelAttrReset(lbl_1_bss_19A[23], 1); - sp2C = &Hu3DData[lbl_1_bss_19A[boxno+8]]; - Hu3DModelPosSetV(lbl_1_bss_19A[23], &sp2C->pos); - for(temp_r30=1; temp_r30<=10; temp_r30++) { - temp_f31 = 0.7+(0.3*(temp_r30/10.0)); - Hu3DModelScaleSet(lbl_1_bss_19A[23], temp_f31, temp_f31, temp_f31); - HuPrcVSleep(); - } - fn_1_7628(temp_r31, 1); - while(1) { - HuPrcVSleep(); - if(UnMountCnt & (1 << curSlotNo)) { - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - break; - } else { - temp_r26 = 0; - if(HuPadDStkRep[0] & 0x1) { - temp_r26 = -1; - } else if(HuPadDStkRep[0] & 0x2) { - temp_r26 = 1; - } - (void)temp_r26; - if(temp_r26) { - HuAudFXPlay(0); - fn_1_7628(temp_r31, 0); - while(1) { - temp_r31 += temp_r26; - if(temp_r31 < 0) { - temp_r31 = 2; - } else if(temp_r31 >= 3) { - temp_r31 = 0; - } - if(lbl_1_bss_140[temp_r31] == 0) { - break; - } - } - fn_1_7628(temp_r31, 1); - HuPrcSleep(10); - } - if(HuPadBtnDown[0] & PAD_BUTTON_A) { - HuAudFXPlay(2096); - } else if(!(HuPadBtnDown[0] & PAD_BUTTON_B)) { - continue; - } else { - HuAudFXPlay(3); - Hu3DModelAttrSet(lbl_1_bss_19A[23], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[boxno+8], 1); - fn_1_7628(temp_r31, 0); - HuWinDispOff(lbl_1_bss_146); - return 1; - } - HuWinDispOff(lbl_1_bss_146); - temp_r29 = fn_1_76B4(SaveFileNameTbl[boxno], curSlotNo); - if(temp_r29 >= 0 && SLSerialNoCheck()) { - fn_1_B8CC(0x10000A); - HuWinMesSet(lbl_1_bss_148, 0x10000B); - HuWinMesWait(lbl_1_bss_148); - Hu3DModelAttrReset(lbl_1_bss_19A[boxno+8], 1); - OSReport("CheckSum Check\n"); - if(!SLCheckSumCheck()) { - HuPrcSleep(60); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[boxno]), 0); - HuWinAttrSet(lbl_1_bss_148, 0x10); - HuWinMesSet(lbl_1_bss_148, 0x10003A); - HuWinMesWait(lbl_1_bss_148); - temp_r29 = HuWinChoiceGet(lbl_1_bss_148, 1); - if(temp_r29 == 0) { - temp_r29 = fn_1_8540(boxno); - } - } else { - fn_1_9E14(); - for(temp_r30=0; temp_r30<=10; temp_r30++) { - temp_f31 = cos(M_PI*(90.0*(temp_r30/10.0))/180.0); - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31+8], temp_f31, temp_f31, temp_f31); - HuPrcVSleep(); - } - Hu3DModelAttrSet(lbl_1_bss_19A[23], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[boxno+8], 1); - if(UnMountCnt & (1 << curSlotNo)) { - fn_1_BA20(); - HuWinMesSet(lbl_1_bss_148, 0x100050); - HuWinMesWait(lbl_1_bss_148); - } else { - OSReport("File Create\n"); - SLCurBoxNoSet(temp_r31); - SLLoadGameStat(); - SLSaveDataMake(0, &GWGameStat.create_time); - if(fn_1_7B74(temp_r31)) { - fn_1_9E14(); - fn_1_A8C0(temp_r31); - Hu3DAnimKill(lbl_1_bss_13A[temp_r31]); - Hu3DAnimKill(lbl_1_bss_134[temp_r31]); - temp_r25 = lbl_1_bss_E8[temp_r31]; - if(temp_r25 < 0) { - temp_r25 = 8; - } - (void)temp_r25; - temp_r19 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r25], MEMORY_DEFAULT_NUM)); - lbl_1_bss_13A[temp_r31] = Hu3DAnimCreate(temp_r19, lbl_1_bss_19A[temp_r31+8], "star"); - temp_r19 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r25], MEMORY_DEFAULT_NUM)); - lbl_1_bss_134[temp_r31] = Hu3DAnimCreate(temp_r19, lbl_1_bss_19A[temp_r31+11], "star"); - Hu3DModelAttrReset(lbl_1_bss_19A[temp_r31+11], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[temp_r31+8], 1); - sp60.x = 158.0f+(boxno*130); - sp60.y = 230; - sp60.z = 800; - Hu3D2Dto3D(&sp60, 1, &sp54); - sp54.z = 900; - sp60.x = 158.0f+(temp_r31*130); - Hu3D2Dto3D(&sp60, 1, &sp48); - sp48.z = 800; - VECSubtract(&sp48, &sp54, &sp3C); - Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31+8], 1.0f); - Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31+11], 1.0f); - lbl_1_bss_120[temp_r31] = 0; - for(temp_r30=1; temp_r30<=30; temp_r30++) { - temp_f31 = temp_r30/30.0; - sp60.x = sp3C.x*temp_f31; - sp60.y = sp3C.y*temp_f31; - sp60.z = (sp3C.z*temp_f31)+(-300*sin(M_PI*(180.0f*temp_f31)/180.0)); - VECAdd(&sp60, &sp54, &sp60); - Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31+11], &sp60); - HuPrcVSleep(); - } - lbl_1_bss_120[temp_r31] = 1; - fn_1_BA20(); - lbl_1_bss_140[temp_r31] = 1; - lbl_1_bss_88++; - return 1; - } - } - } - - } - break; - } - } - fn_1_BA20(); - Hu3DModelAttrSet(lbl_1_bss_19A[23], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[boxno+8], 1); - for(temp_r30=0; temp_r30<=10; temp_r30++) { - temp_f31 = sin(M_PI*(90.0*(temp_r30/10.0))/180.0); - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31+8], temp_f31, temp_f31, temp_f31); - HuPrcVSleep(); - } - fn_1_7628(temp_r31, 0); - return 0; + float temp_f31; + s16 temp_r31; + s16 temp_r30; + s32 temp_r29; + s16 temp_r26; + s16 temp_r25; + AnimData *temp_r19; + Vec sp60; + Vec sp54; + Vec sp48; + Vec sp3C; + s32 sp38; + s32 sp34; + Process *sp30; + ModelData *sp2C; + sp30 = HuPrcCurrentGet(); + OSReport("Card Copy Seq.:Open\n"); + temp_r29 = fn_1_76B4(SaveFileNameTbl[boxno], curSlotNo); + if (temp_r29 < 0 || !SLSerialNoCheck()) { + return 0; + } + OSReport("Card Copy Seq.:Read\n"); + temp_r29 = fn_1_83B4(); + if (temp_r29 != 0) { + return 0; + } + OSReport("Card Copy Seq.:CheckSum Check\n"); + if (!SLCheckSumCheck()) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[boxno]), 0); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x3A)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r29 != 0) { + return 1; + } + else { + temp_r29 = fn_1_8540(boxno); + return temp_r29; + } + } + if (!SLSerialNoCheck()) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x45)); + HuWinMesWait(lbl_1_bss_148); + return 0; + } + temp_r29 = HuCardFreeSpaceGet(curSlotNo, (u32 *)&sp34, (u32 *)&sp38); + if (sp38 == 0 && sp34 < SAVE_BUF_SIZE) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A)); + HuWinMesWait(lbl_1_bss_148); + return 1; + } + else if (sp38 == 0) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A)); + HuWinMesWait(lbl_1_bss_148); + return 1; + } + else if (sp34 < SAVE_BUF_SIZE) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x4A)); + HuWinMesWait(lbl_1_bss_148); + return 1; + } + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + if (!lbl_1_bss_140[temp_r30]) { + break; + } + } + if (temp_r30 == 3) { + return 1; + } + temp_r31 = temp_r30; + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x09)); + HuWinMesWait(lbl_1_bss_148); + HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x35)); + HuWinDispOn(lbl_1_bss_146); + lbl_1_bss_90 = boxno; + Hu3DModelAttrReset(lbl_1_bss_19A[23], 1); + sp2C = &Hu3DData[lbl_1_bss_19A[boxno + 8]]; + Hu3DModelPosSetV(lbl_1_bss_19A[23], &sp2C->pos); + for (temp_r30 = 1; temp_r30 <= 10; temp_r30++) { + temp_f31 = 0.7 + (0.3 * (temp_r30 / 10.0)); + Hu3DModelScaleSet(lbl_1_bss_19A[23], temp_f31, temp_f31, temp_f31); + HuPrcVSleep(); + } + fn_1_7628(temp_r31, 1); + while (1) { + HuPrcVSleep(); + if (UnMountCnt & (1 << curSlotNo)) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + break; + } + else { + temp_r26 = 0; + if (HuPadDStkRep[0] & 0x1) { + temp_r26 = -1; + } + else if (HuPadDStkRep[0] & 0x2) { + temp_r26 = 1; + } + (void)temp_r26; + if (temp_r26) { + HuAudFXPlay(0); + fn_1_7628(temp_r31, 0); + while (1) { + temp_r31 += temp_r26; + if (temp_r31 < 0) { + temp_r31 = 2; + } + else if (temp_r31 >= 3) { + temp_r31 = 0; + } + if (lbl_1_bss_140[temp_r31] == 0) { + break; + } + } + fn_1_7628(temp_r31, 1); + HuPrcSleep(10); + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2096); + } + else if (!(HuPadBtnDown[0] & PAD_BUTTON_B)) { + continue; + } + else { + HuAudFXPlay(3); + Hu3DModelAttrSet(lbl_1_bss_19A[23], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], 1); + fn_1_7628(temp_r31, 0); + HuWinDispOff(lbl_1_bss_146); + return 1; + } + HuWinDispOff(lbl_1_bss_146); + temp_r29 = fn_1_76B4(SaveFileNameTbl[boxno], curSlotNo); + if (temp_r29 >= 0 && SLSerialNoCheck()) { + fn_1_B8CC(MAKE_MESSID(16, 0x0A)); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B)); + HuWinMesWait(lbl_1_bss_148); + Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], 1); + OSReport("CheckSum Check\n"); + if (!SLCheckSumCheck()) { + HuPrcSleep(60); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_288[boxno]), 0); + HuWinAttrSet(lbl_1_bss_148, 0x10); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x3A)); + HuWinMesWait(lbl_1_bss_148); + temp_r29 = HuWinChoiceGet(lbl_1_bss_148, 1); + if (temp_r29 == 0) { + temp_r29 = fn_1_8540(boxno); + } + } + else { + fn_1_9E14(); + for (temp_r30 = 0; temp_r30 <= 10; temp_r30++) { + temp_f31 = cos(M_PI * (90.0 * (temp_r30 / 10.0)) / 180.0); + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 8], temp_f31, temp_f31, temp_f31); + HuPrcVSleep(); + } + Hu3DModelAttrSet(lbl_1_bss_19A[23], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], 1); + if (UnMountCnt & (1 << curSlotNo)) { + fn_1_BA20(); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); + HuWinMesWait(lbl_1_bss_148); + } + else { + OSReport("File Create\n"); + SLCurBoxNoSet(temp_r31); + SLLoadGameStat(); + SLSaveDataMake(0, &GWGameStat.create_time); + if (fn_1_7B74(temp_r31)) { + fn_1_9E14(); + fn_1_A8C0(temp_r31); + Hu3DAnimKill(lbl_1_bss_13A[temp_r31]); + Hu3DAnimKill(lbl_1_bss_134[temp_r31]); + temp_r25 = lbl_1_bss_E8[temp_r31]; + if (temp_r25 < 0) { + temp_r25 = 8; + } + (void)temp_r25; + temp_r19 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r25], MEMORY_DEFAULT_NUM)); + lbl_1_bss_13A[temp_r31] = Hu3DAnimCreate(temp_r19, lbl_1_bss_19A[temp_r31 + 8], "star"); + temp_r19 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r25], MEMORY_DEFAULT_NUM)); + lbl_1_bss_134[temp_r31] = Hu3DAnimCreate(temp_r19, lbl_1_bss_19A[temp_r31 + 11], "star"); + Hu3DModelAttrReset(lbl_1_bss_19A[temp_r31 + 11], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[temp_r31 + 8], 1); + sp60.x = 158.0f + (boxno * 130); + sp60.y = 230; + sp60.z = 800; + Hu3D2Dto3D(&sp60, 1, &sp54); + sp54.z = 900; + sp60.x = 158.0f + (temp_r31 * 130); + Hu3D2Dto3D(&sp60, 1, &sp48); + sp48.z = 800; + VECSubtract(&sp48, &sp54, &sp3C); + Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 8], 1.0f); + Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 11], 1.0f); + lbl_1_bss_120[temp_r31] = 0; + for (temp_r30 = 1; temp_r30 <= 30; temp_r30++) { + temp_f31 = temp_r30 / 30.0; + sp60.x = sp3C.x * temp_f31; + sp60.y = sp3C.y * temp_f31; + sp60.z = (sp3C.z * temp_f31) + (-300 * sin(M_PI * (180.0f * temp_f31) / 180.0)); + VECAdd(&sp60, &sp54, &sp60); + Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31 + 11], &sp60); + HuPrcVSleep(); + } + lbl_1_bss_120[temp_r31] = 1; + fn_1_BA20(); + lbl_1_bss_140[temp_r31] = 1; + lbl_1_bss_88++; + return 1; + } + } + } + } + break; + } + } + fn_1_BA20(); + Hu3DModelAttrSet(lbl_1_bss_19A[23], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], 1); + for (temp_r30 = 0; temp_r30 <= 10; temp_r30++) { + temp_f31 = sin(M_PI * (90.0 * (temp_r30 / 10.0)) / 180.0); + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 8], temp_f31, temp_f31, temp_f31); + HuPrcVSleep(); + } + fn_1_7628(temp_r31, 0); + return 0; } s32 fn_1_9E14(void) { - s32 result = HuCardClose(&curFileInfo); - return result; + s32 result = HuCardClose(&curFileInfo); + return result; } -s16 lbl_1_data_400[] = { - 15, 15, 13, - 15, 15, 8, - 15, 15, 8, - 15, 15 -}; +s16 lbl_1_data_400[] = { 15, 15, 13, 15, 15, 8, 15, 15, 8, 15, 15 }; s32 fn_1_9E4C(void) { - s16 temp_r31; - s16 temp_r30; - s16 temp_r29; - ModelData *temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - AnimData *temp_r24; - s16 temp_r23; - AnimData *temp_r22; - Mtx sp24; - Vec sp18; - Vec spC; - WindowData *sp8; - temp_r23 = -1; - sp8 = &winData[lbl_1_bss_148]; - OSReport("Init\n"); - MTXScale(sp24, 0.5f, 0.5f, 0.5f); - for(temp_r31=0; temp_r31<3; temp_r31++) { - if(lbl_1_bss_116[temp_r31] != -1) { - HuSprGrpKill(lbl_1_bss_116[temp_r31]); - } - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - if(lbl_1_bss_110[temp_r31] != -1) { - HuSprGrpKill(lbl_1_bss_110[temp_r31]); - } - } - lbl_1_bss_FC = HuSprAnimRead(HuDataReadNum(0x630022, MEMORY_DEFAULT_NUM)); - lbl_1_bss_F8 = HuSprAnimRead(HuDataReadNum(0x630023, MEMORY_DEFAULT_NUM)); - lbl_1_bss_F4 = HuSprAnimRead(HuDataReadNum(0x630025, MEMORY_DEFAULT_NUM)); - temp_r22 = HuSprAnimRead(HuDataReadNum(0x630024, MEMORY_DEFAULT_NUM)); - for(temp_r31=0; temp_r31<3; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_19A[temp_r31+8], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[temp_r31+11], 1); - temp_r27 = lbl_1_bss_E8[temp_r31]; - if(temp_r27 < 0 || temp_r27 >= 8) { - temp_r27 = 8; - } - if(lbl_1_bss_13A[temp_r31] != -1) { - Hu3DAnimKill(lbl_1_bss_13A[temp_r31]); - } - if(lbl_1_bss_134[temp_r31] != -1) { - Hu3DAnimKill(lbl_1_bss_134[temp_r31]); - } - temp_r24 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r27], MEMORY_DEFAULT_NUM)); - lbl_1_bss_13A[temp_r31] = Hu3DAnimCreate(temp_r24, lbl_1_bss_19A[temp_r31+8], "star"); - temp_r24 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r27+9], MEMORY_DEFAULT_NUM)); - lbl_1_bss_134[temp_r31] = Hu3DAnimCreate(temp_r24, lbl_1_bss_19A[temp_r31+11], "star"); - if(!lbl_1_bss_140[temp_r31]) { - Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31+8], 0.6f); - Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31+11], 0.3f); - } else { - Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31+8], 1.0f); - Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31+11], 1.0f); - } - sp18.x = 158.0f+(temp_r31*130); - sp18.y = 230; - sp18.z = 800; - Hu3D2Dto3D(&sp18, 1, &spC); - spC.z = 800; - Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31+8], &spC); - Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31+11], &spC); - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31+8], 0, 0, 0); - Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31+11], 0, 0, 0); - temp_r28 = &Hu3DData[lbl_1_bss_19A[temp_r31+8]]; - MTXCopy(sp24, temp_r28->unk_F0); - temp_r28 = &Hu3DData[lbl_1_bss_19A[temp_r31+11]]; - MTXCopy(sp24, temp_r28->unk_F0); - lbl_1_bss_116[temp_r31] = HuSprGrpCreate(9); - temp_r29 = HuSprCreate(lbl_1_bss_FC, 3000, 0); - HuSprGrpMemberSet(lbl_1_bss_116[temp_r31], 0, temp_r29); - HuSprPosSet(lbl_1_bss_116[temp_r31], 0, -48, 0); - for(temp_r30=0; temp_r30<4; temp_r30++) { - temp_r29 = HuSprCreate(lbl_1_bss_F8, 3000, 0); - HuSprGrpMemberSet(lbl_1_bss_116[temp_r31], temp_r30+1, temp_r29); - HuSprPosSet(lbl_1_bss_116[temp_r31], temp_r30+1, (temp_r30*24)-24, 0); - } - temp_r29 = HuSprCreate(lbl_1_bss_F4, 3000, 0); - HuSprGrpMemberSet(lbl_1_bss_116[temp_r31], 5, temp_r29); - HuSprPosSet(lbl_1_bss_116[temp_r31], 5, 16, 0); - HuSprGrpScissorSet(lbl_1_bss_116[temp_r31], 0, 16, 640, 448); - lbl_1_bss_110[temp_r31] = HuSprGrpCreate(11); - for(temp_r30=temp_r25=0; temp_r30<11; temp_r30++) { - temp_r25 += lbl_1_data_400[temp_r30]; - } - for(temp_r30=temp_r26=0; temp_r30<11; temp_r30++) { - temp_r29 = HuSprCreate(temp_r22, 3000, 0); - HuSprGrpMemberSet(lbl_1_bss_110[temp_r31], temp_r30, temp_r29); - HuSprPosSet(lbl_1_bss_110[temp_r31], temp_r30, -(temp_r25/2)+8+temp_r26, 0); - temp_r26 += lbl_1_data_400[temp_r30]; - } - HuSprAttrSet(lbl_1_bss_110[temp_r31], 5, 4); - HuSprBankSet(lbl_1_bss_110[temp_r31], 2, 10); - HuSprBankSet(lbl_1_bss_110[temp_r31], 8, 11); - HuSprGrpScissorSet(lbl_1_bss_110[temp_r31], 0, 16, 640, 448); - } - MTXScale(sp24, 0.45f, 0.45f, 0.45f); - temp_r28 = &Hu3DData[lbl_1_bss_19A[23]]; - Hu3DModelAttrSet(lbl_1_bss_19A[23], 0x40000001); - MTXCopy(sp24, temp_r28->unk_F0); - return temp_r23; + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + ModelData *temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + AnimData *temp_r24; + s16 temp_r23; + AnimData *temp_r22; + Mtx sp24; + Vec sp18; + Vec spC; + WindowData *sp8; + temp_r23 = -1; + sp8 = &winData[lbl_1_bss_148]; + OSReport("Init\n"); + MTXScale(sp24, 0.5f, 0.5f, 0.5f); + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + if (lbl_1_bss_116[temp_r31] != -1) { + HuSprGrpKill(lbl_1_bss_116[temp_r31]); + } + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + if (lbl_1_bss_110[temp_r31] != -1) { + HuSprGrpKill(lbl_1_bss_110[temp_r31]); + } + } + lbl_1_bss_FC = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x22), MEMORY_DEFAULT_NUM)); + lbl_1_bss_F8 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x23), MEMORY_DEFAULT_NUM)); + lbl_1_bss_F4 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x25), MEMORY_DEFAULT_NUM)); + temp_r22 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x24), MEMORY_DEFAULT_NUM)); + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + Hu3DModelAttrSet(lbl_1_bss_19A[temp_r31 + 8], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[temp_r31 + 11], 1); + temp_r27 = lbl_1_bss_E8[temp_r31]; + if (temp_r27 < 0 || temp_r27 >= 8) { + temp_r27 = 8; + } + if (lbl_1_bss_13A[temp_r31] != -1) { + Hu3DAnimKill(lbl_1_bss_13A[temp_r31]); + } + if (lbl_1_bss_134[temp_r31] != -1) { + Hu3DAnimKill(lbl_1_bss_134[temp_r31]); + } + temp_r24 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r27], MEMORY_DEFAULT_NUM)); + lbl_1_bss_13A[temp_r31] = Hu3DAnimCreate(temp_r24, lbl_1_bss_19A[temp_r31 + 8], "star"); + temp_r24 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r27 + 9], MEMORY_DEFAULT_NUM)); + lbl_1_bss_134[temp_r31] = Hu3DAnimCreate(temp_r24, lbl_1_bss_19A[temp_r31 + 11], "star"); + if (!lbl_1_bss_140[temp_r31]) { + Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 8], 0.6f); + Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 11], 0.3f); + } + else { + Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 8], 1.0f); + Hu3DModelTPLvlSet(lbl_1_bss_19A[temp_r31 + 11], 1.0f); + } + sp18.x = 158.0f + (temp_r31 * 130); + sp18.y = 230; + sp18.z = 800; + Hu3D2Dto3D(&sp18, 1, &spC); + spC.z = 800; + Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31 + 8], &spC); + Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31 + 11], &spC); + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 8], 0, 0, 0); + Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 11], 0, 0, 0); + temp_r28 = &Hu3DData[lbl_1_bss_19A[temp_r31 + 8]]; + MTXCopy(sp24, temp_r28->unk_F0); + temp_r28 = &Hu3DData[lbl_1_bss_19A[temp_r31 + 11]]; + MTXCopy(sp24, temp_r28->unk_F0); + lbl_1_bss_116[temp_r31] = HuSprGrpCreate(9); + temp_r29 = HuSprCreate(lbl_1_bss_FC, 3000, 0); + HuSprGrpMemberSet(lbl_1_bss_116[temp_r31], 0, temp_r29); + HuSprPosSet(lbl_1_bss_116[temp_r31], 0, -48, 0); + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + temp_r29 = HuSprCreate(lbl_1_bss_F8, 3000, 0); + HuSprGrpMemberSet(lbl_1_bss_116[temp_r31], temp_r30 + 1, temp_r29); + HuSprPosSet(lbl_1_bss_116[temp_r31], temp_r30 + 1, (temp_r30 * 24) - 24, 0); + } + temp_r29 = HuSprCreate(lbl_1_bss_F4, 3000, 0); + HuSprGrpMemberSet(lbl_1_bss_116[temp_r31], 5, temp_r29); + HuSprPosSet(lbl_1_bss_116[temp_r31], 5, 16, 0); + HuSprGrpScissorSet(lbl_1_bss_116[temp_r31], 0, 16, 640, 448); + lbl_1_bss_110[temp_r31] = HuSprGrpCreate(11); + for (temp_r30 = temp_r25 = 0; temp_r30 < 11; temp_r30++) { + temp_r25 += lbl_1_data_400[temp_r30]; + } + for (temp_r30 = temp_r26 = 0; temp_r30 < 11; temp_r30++) { + temp_r29 = HuSprCreate(temp_r22, 3000, 0); + HuSprGrpMemberSet(lbl_1_bss_110[temp_r31], temp_r30, temp_r29); + HuSprPosSet(lbl_1_bss_110[temp_r31], temp_r30, -(temp_r25 / 2) + 8 + temp_r26, 0); + temp_r26 += lbl_1_data_400[temp_r30]; + } + HuSprAttrSet(lbl_1_bss_110[temp_r31], 5, 4); + HuSprBankSet(lbl_1_bss_110[temp_r31], 2, 10); + HuSprBankSet(lbl_1_bss_110[temp_r31], 8, 11); + HuSprGrpScissorSet(lbl_1_bss_110[temp_r31], 0, 16, 640, 448); + } + MTXScale(sp24, 0.45f, 0.45f, 0.45f); + temp_r28 = &Hu3DData[lbl_1_bss_19A[23]]; + Hu3DModelAttrSet(lbl_1_bss_19A[23], 0x40000001); + MTXCopy(sp24, temp_r28->unk_F0); + return temp_r23; } void fn_1_A8C0(s16 boxno) { - SLLoadGameStat(); - SLLoadBoardStory(); - lbl_1_bss_EE[boxno] = GWGameStat.total_stars; - lbl_1_bss_D0[boxno] = GWGameStat.create_time; - lbl_1_bss_E8[boxno] = GWSystem.unk0B[1]; - lbl_1_bss_C4[boxno] = GWGameStat.story_continue; - lbl_1_bss_B8[boxno] = GWGameStat.party_continue; - if(GWGameStat.story_continue) { - SLLoadBoardStory(); - lbl_1_bss_A4[boxno] = GWSystem.board; - lbl_1_bss_AC[boxno] = 0; - } - if(GWGameStat.party_continue) { - SLLoadBoard(); - lbl_1_bss_9E[boxno] = GWSystem.board; - lbl_1_bss_98[boxno] = GWSystem.turn; - lbl_1_bss_92[boxno] = GWSystem.max_turn; - } + SLLoadGameStat(); + SLLoadBoardStory(); + lbl_1_bss_EE[boxno] = GWGameStat.total_stars; + lbl_1_bss_D0[boxno] = GWGameStat.create_time; + lbl_1_bss_E8[boxno] = GWSystem.unk0B[1]; + lbl_1_bss_C4[boxno] = GWGameStat.story_continue; + lbl_1_bss_B8[boxno] = GWGameStat.party_continue; + if (GWGameStat.story_continue) { + SLLoadBoardStory(); + lbl_1_bss_A4[boxno] = GWSystem.board; + lbl_1_bss_AC[boxno] = 0; + } + if (GWGameStat.party_continue) { + SLLoadBoard(); + lbl_1_bss_9E[boxno] = GWSystem.board; + lbl_1_bss_98[boxno] = GWSystem.turn; + lbl_1_bss_92[boxno] = GWSystem.max_turn; + } } void fn_1_AAB8(void) { - float temp_f31; - float temp_f30; - float temp_f29; - ModelData *temp_r31; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - Mtx sp48; - OSCalendarTime sp20; - Vec sp14; - Vec sp8; - for(temp_r30=0; temp_r30<2; temp_r30++) { - lbl_1_bss_12C[temp_r30] = 1; - } - while(1) { - for(temp_r30=0; temp_r30<2; temp_r30++) { - MTXScale(sp48, 0.5f, 0.5f, 0.5f); - mtxRotCat(sp48, 0.0f, 0.0f, 15.0f*lbl_1_bss_100[temp_r30]); - temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30]]; - MTXCopy(sp48, temp_r31->unk_F0); - Hu3DModelRotSet(lbl_1_bss_19A[temp_r30], 0, lbl_1_bss_8C*lbl_1_bss_108[temp_r30]*GET_ZEROSIGN(temp_r30 == 0), 0); - if(!lbl_1_bss_12C[temp_r30]) { - espAttrSet(lbl_1_bss_152[temp_r30+2], 4); - } else { - temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30+2]]; - if(temp_r31->attr & 0x1) { - temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30+4]]; - } - if(temp_r31->attr & 0x1) { - espAttrSet(lbl_1_bss_152[temp_r30+2], 4); - } else { - espAttrReset(lbl_1_bss_152[temp_r30+2], 4); - } - sp8 = temp_r31->pos; - sp8.y -= 30.0f*temp_r31->scale.x; - Hu3D3Dto2D(&sp8, 1, &sp14); - espPosSet(lbl_1_bss_152[temp_r30+2], sp14.x, sp14.y); - espScaleSet(lbl_1_bss_152[temp_r30+2], temp_r31->scale.x, temp_r31->scale.x); - } - } - lbl_1_bss_8C += 3.0f; - if(lbl_1_bss_8C > 1080.0f) { - lbl_1_bss_8C -= 360; - } - if(lbl_1_bss_11C == -1) { - espAttrSet(lbl_1_bss_152[4], 4); - } else { - temp_r31 = &Hu3DData[lbl_1_bss_19A[lbl_1_bss_11C]]; - if(temp_r31->attr & 0x1) { - espAttrSet(lbl_1_bss_152[4], 4); - } else { - espBankSet(lbl_1_bss_152[4], lbl_1_bss_11C); - espAttrReset(lbl_1_bss_152[4], 4); - sp8 = temp_r31->pos; - sp8.y += 5.0f*temp_r31->scale.x; - Hu3D3Dto2D(&sp8, 1, &sp14); - espPosSet(lbl_1_bss_152[4], sp14.x, sp14.y); - espScaleSet(lbl_1_bss_152[4], temp_r31->scale.x, temp_r31->scale.x); - } - } - for(temp_r30=0; temp_r30<3; temp_r30++) { - if(!lbl_1_bss_120[temp_r30]) { - espAttrSet(lbl_1_bss_152[temp_r30+5], 4); - continue; - } - temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30+8]]; - if(temp_r31->attr & 0x1) { - temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30+11]]; - } - temp_f30 = (900.0+(50.0*temp_r31->scale.x))*sin(M_PI/12); - temp_f29 = (temp_r31->pos.z+(50.0*temp_r31->scale.x))*sin(M_PI/12); - temp_f31 = temp_r31->scale.x*(temp_f29/temp_f30); - if(temp_r31->attr & 0x1) { - espAttrSet(lbl_1_bss_152[temp_r30+5], 4); - } else { - espAttrReset(lbl_1_bss_152[temp_r30+5], 4); - } - sp8 = temp_r31->pos; - sp8.y += 40.0*temp_r31->scale.x; - sp8.z += 50.0*temp_r31->scale.x; - Hu3D3Dto2D(&sp8, 1, &sp14); - espPosSet(lbl_1_bss_152[temp_r30+5], sp14.x, sp14.y); - espScaleSet(lbl_1_bss_152[temp_r30+5], temp_f31, temp_f31); - if(lbl_1_bss_EE[temp_r30] == -1) { - HuSprGrpPosSet(lbl_1_bss_116[temp_r30], 0, -500); - } else { - sp8 = temp_r31->pos; - sp8.y -= 30.0*temp_r31->scale.x; - sp8.z += 50.0*temp_r31->scale.x; - Hu3D3Dto2D(&sp8, 1, &sp14); - HuSprGrpPosSet(lbl_1_bss_116[temp_r30], sp14.x, sp14.y); - HuSprGrpScaleSet(lbl_1_bss_116[temp_r30], temp_f31, temp_f31); - if(lbl_1_bss_EE[temp_r30] > 9999) { - for(temp_r28=0; temp_r28<4; temp_r28++) { - HuSprAttrSet(lbl_1_bss_116[temp_r30], temp_r28+1, 4); - } - HuSprAttrReset(lbl_1_bss_116[temp_r30], 5, 4); - } else { - for(temp_r28=0; temp_r28<4; temp_r28++) { - HuSprAttrReset(lbl_1_bss_116[temp_r30], temp_r28+1, 4); - } - HuSprAttrSet(lbl_1_bss_116[temp_r30], 5, 4); - temp_r29 = lbl_1_bss_EE[temp_r30]; - HuSprBankSet(lbl_1_bss_116[temp_r30], 1, temp_r29/1000); - temp_r29 -= (temp_r29/1000)*1000; - HuSprBankSet(lbl_1_bss_116[temp_r30], 2, temp_r29/100); - temp_r29 -= (temp_r29/100)*100; - HuSprBankSet(lbl_1_bss_116[temp_r30], 3, temp_r29/10); - temp_r29 -= (temp_r29/10)*10; - HuSprBankSet(lbl_1_bss_116[temp_r30], 4, temp_r29); - } - sp8 = temp_r31->pos; - sp8.y -= 40.0*temp_r31->scale.x; - sp8.z += 50.0*temp_r31->scale.x; - Hu3D3Dto2D(&sp8, 1, &sp14); - HuSprGrpPosSet(lbl_1_bss_110[temp_r30], sp14.x, sp14.y); - HuSprGrpScaleSet(lbl_1_bss_110[temp_r30], temp_f31, temp_f31); - OSTicksToCalendarTime(lbl_1_bss_D0[temp_r30], &sp20); - temp_r29 = sp20.mon+1; - HuSprBankSet(lbl_1_bss_110[temp_r30], 0, temp_r29/10); - temp_r29 -= (temp_r29/10)*10; - HuSprBankSet(lbl_1_bss_110[temp_r30], 1, temp_r29); - temp_r29 = sp20.mday; - HuSprBankSet(lbl_1_bss_110[temp_r30], 3, temp_r29/10); - temp_r29 -= (temp_r29/10)*10; - HuSprBankSet(lbl_1_bss_110[temp_r30], 4, temp_r29); - temp_r29 = sp20.hour; - HuSprBankSet(lbl_1_bss_110[temp_r30], 6, temp_r29/10); - temp_r29 -= (temp_r29/10)*10; - HuSprBankSet(lbl_1_bss_110[temp_r30], 7, temp_r29); - temp_r29 = sp20.min; - HuSprBankSet(lbl_1_bss_110[temp_r30], 9, temp_r29/10); - temp_r29 -= (temp_r29/10)*10; - HuSprBankSet(lbl_1_bss_110[temp_r30], 10, temp_r29); - } - } - HuPrcVSleep(); - } - + float temp_f31; + float temp_f30; + float temp_f29; + ModelData *temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + Mtx sp48; + OSCalendarTime sp20; + Vec sp14; + Vec sp8; + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + lbl_1_bss_12C[temp_r30] = 1; + } + while (1) { + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + MTXScale(sp48, 0.5f, 0.5f, 0.5f); + mtxRotCat(sp48, 0.0f, 0.0f, 15.0f * lbl_1_bss_100[temp_r30]); + temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30]]; + MTXCopy(sp48, temp_r31->unk_F0); + Hu3DModelRotSet(lbl_1_bss_19A[temp_r30], 0, lbl_1_bss_8C * lbl_1_bss_108[temp_r30] * GET_ZEROSIGN(temp_r30 == 0), 0); + if (!lbl_1_bss_12C[temp_r30]) { + espAttrSet(lbl_1_bss_152[temp_r30 + 2], 4); + } + else { + temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30 + 2]]; + if (temp_r31->attr & 0x1) { + temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30 + 4]]; + } + if (temp_r31->attr & 0x1) { + espAttrSet(lbl_1_bss_152[temp_r30 + 2], 4); + } + else { + espAttrReset(lbl_1_bss_152[temp_r30 + 2], 4); + } + sp8 = temp_r31->pos; + sp8.y -= 30.0f * temp_r31->scale.x; + Hu3D3Dto2D(&sp8, 1, &sp14); + espPosSet(lbl_1_bss_152[temp_r30 + 2], sp14.x, sp14.y); + espScaleSet(lbl_1_bss_152[temp_r30 + 2], temp_r31->scale.x, temp_r31->scale.x); + } + } + lbl_1_bss_8C += 3.0f; + if (lbl_1_bss_8C > 1080.0f) { + lbl_1_bss_8C -= 360; + } + if (lbl_1_bss_11C == -1) { + espAttrSet(lbl_1_bss_152[4], 4); + } + else { + temp_r31 = &Hu3DData[lbl_1_bss_19A[lbl_1_bss_11C]]; + if (temp_r31->attr & 0x1) { + espAttrSet(lbl_1_bss_152[4], 4); + } + else { + espBankSet(lbl_1_bss_152[4], lbl_1_bss_11C); + espAttrReset(lbl_1_bss_152[4], 4); + sp8 = temp_r31->pos; + sp8.y += 5.0f * temp_r31->scale.x; + Hu3D3Dto2D(&sp8, 1, &sp14); + espPosSet(lbl_1_bss_152[4], sp14.x, sp14.y); + espScaleSet(lbl_1_bss_152[4], temp_r31->scale.x, temp_r31->scale.x); + } + } + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + if (!lbl_1_bss_120[temp_r30]) { + espAttrSet(lbl_1_bss_152[temp_r30 + 5], 4); + continue; + } + temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30 + 8]]; + if (temp_r31->attr & 0x1) { + temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30 + 11]]; + } + temp_f30 = (900.0 + (50.0 * temp_r31->scale.x)) * sin(M_PI / 12); + temp_f29 = (temp_r31->pos.z + (50.0 * temp_r31->scale.x)) * sin(M_PI / 12); + temp_f31 = temp_r31->scale.x * (temp_f29 / temp_f30); + if (temp_r31->attr & 0x1) { + espAttrSet(lbl_1_bss_152[temp_r30 + 5], 4); + } + else { + espAttrReset(lbl_1_bss_152[temp_r30 + 5], 4); + } + sp8 = temp_r31->pos; + sp8.y += 40.0 * temp_r31->scale.x; + sp8.z += 50.0 * temp_r31->scale.x; + Hu3D3Dto2D(&sp8, 1, &sp14); + espPosSet(lbl_1_bss_152[temp_r30 + 5], sp14.x, sp14.y); + espScaleSet(lbl_1_bss_152[temp_r30 + 5], temp_f31, temp_f31); + if (lbl_1_bss_EE[temp_r30] == -1) { + HuSprGrpPosSet(lbl_1_bss_116[temp_r30], 0, -500); + } + else { + sp8 = temp_r31->pos; + sp8.y -= 30.0 * temp_r31->scale.x; + sp8.z += 50.0 * temp_r31->scale.x; + Hu3D3Dto2D(&sp8, 1, &sp14); + HuSprGrpPosSet(lbl_1_bss_116[temp_r30], sp14.x, sp14.y); + HuSprGrpScaleSet(lbl_1_bss_116[temp_r30], temp_f31, temp_f31); + if (lbl_1_bss_EE[temp_r30] > 9999) { + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + HuSprAttrSet(lbl_1_bss_116[temp_r30], temp_r28 + 1, 4); + } + HuSprAttrReset(lbl_1_bss_116[temp_r30], 5, 4); + } + else { + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + HuSprAttrReset(lbl_1_bss_116[temp_r30], temp_r28 + 1, 4); + } + HuSprAttrSet(lbl_1_bss_116[temp_r30], 5, 4); + temp_r29 = lbl_1_bss_EE[temp_r30]; + HuSprBankSet(lbl_1_bss_116[temp_r30], 1, temp_r29 / 1000); + temp_r29 -= (temp_r29 / 1000) * 1000; + HuSprBankSet(lbl_1_bss_116[temp_r30], 2, temp_r29 / 100); + temp_r29 -= (temp_r29 / 100) * 100; + HuSprBankSet(lbl_1_bss_116[temp_r30], 3, temp_r29 / 10); + temp_r29 -= (temp_r29 / 10) * 10; + HuSprBankSet(lbl_1_bss_116[temp_r30], 4, temp_r29); + } + sp8 = temp_r31->pos; + sp8.y -= 40.0 * temp_r31->scale.x; + sp8.z += 50.0 * temp_r31->scale.x; + Hu3D3Dto2D(&sp8, 1, &sp14); + HuSprGrpPosSet(lbl_1_bss_110[temp_r30], sp14.x, sp14.y); + HuSprGrpScaleSet(lbl_1_bss_110[temp_r30], temp_f31, temp_f31); + OSTicksToCalendarTime(lbl_1_bss_D0[temp_r30], &sp20); + temp_r29 = sp20.mon + 1; + HuSprBankSet(lbl_1_bss_110[temp_r30], 0, temp_r29 / 10); + temp_r29 -= (temp_r29 / 10) * 10; + HuSprBankSet(lbl_1_bss_110[temp_r30], 1, temp_r29); + temp_r29 = sp20.mday; + HuSprBankSet(lbl_1_bss_110[temp_r30], 3, temp_r29 / 10); + temp_r29 -= (temp_r29 / 10) * 10; + HuSprBankSet(lbl_1_bss_110[temp_r30], 4, temp_r29); + temp_r29 = sp20.hour; + HuSprBankSet(lbl_1_bss_110[temp_r30], 6, temp_r29 / 10); + temp_r29 -= (temp_r29 / 10) * 10; + HuSprBankSet(lbl_1_bss_110[temp_r30], 7, temp_r29); + temp_r29 = sp20.min; + HuSprBankSet(lbl_1_bss_110[temp_r30], 9, temp_r29 / 10); + temp_r29 -= (temp_r29 / 10) * 10; + HuSprBankSet(lbl_1_bss_110[temp_r30], 10, temp_r29); + } + } + HuPrcVSleep(); + } } s16 lbl_1_data_41C = -1; void fn_1_B8CC(u32 arg0) { - float size[2]; - if(lbl_1_data_41C != -1) { - HuWinExCleanup(lbl_1_data_41C); - } - HuWinInsertMesSizeGet(MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesMaxSizeGet(1, size, arg0); - lbl_1_data_41C = HuWinExCreateStyled(-10000, 308, size[0], size[1], -1, 2); - HuWinMesSpeedSet(lbl_1_data_41C, 0); - HuWinExAnimIn(lbl_1_data_41C); - HuWinInsertMesSet(lbl_1_data_41C, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); - HuWinMesSet(lbl_1_data_41C, arg0); - HuWinMesWait(lbl_1_data_41C); + float size[2]; + if (lbl_1_data_41C != -1) { + HuWinExCleanup(lbl_1_data_41C); + } + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesMaxSizeGet(1, size, arg0); + lbl_1_data_41C = HuWinExCreateStyled(-10000, 308, size[0], size[1], -1, 2); + HuWinMesSpeedSet(lbl_1_data_41C, 0); + HuWinExAnimIn(lbl_1_data_41C); + HuWinInsertMesSet(lbl_1_data_41C, MAKE_MESSID_PTR(lbl_1_data_278[curSlotNo]), 0); + HuWinMesSet(lbl_1_data_41C, arg0); + HuWinMesWait(lbl_1_data_41C); } void fn_1_BA20(void) { - if(lbl_1_data_41C != -1) { - HuWinExAnimOut(lbl_1_data_41C); - HuWinExCleanup(lbl_1_data_41C); - lbl_1_data_41C = -1; - } + if (lbl_1_data_41C != -1) { + HuWinExAnimOut(lbl_1_data_41C); + HuWinExCleanup(lbl_1_data_41C); + lbl_1_data_41C = -1; + } } void fn_1_BA80(s16 boxno) { - char mesMaxTurn[4]; - char mesTurn[4]; - char mesDummy[1] = {0}; - if(lbl_1_bss_EE[boxno] < 0) { - HuWinMesSet(lbl_1_bss_148, 0x100011); - } else { - if(!lbl_1_bss_C4[boxno] && !lbl_1_bss_B8[boxno]) { - HuWinInsertMesSet(lbl_1_bss_148, 0x100011, 0); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1); - HuWinMesSet(lbl_1_bss_148, 0x100043); - } else { - if(!lbl_1_bss_C4[boxno]) { - HuWinInsertMesSet(lbl_1_bss_148, 0x100011, 0); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1); - HuWinInsertMesSet(lbl_1_bss_148, 0x100012+lbl_1_bss_9E[boxno], 2); - sprintf(mesMaxTurn, "%2d", lbl_1_bss_98[boxno]); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesMaxTurn), 3); - sprintf(mesTurn, "%2d", lbl_1_bss_92[boxno]); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesTurn), 4); - HuWinMesSet(lbl_1_bss_148, 0x100042); - } else { - if(!lbl_1_bss_B8[boxno]) { - HuWinInsertMesSet(lbl_1_bss_148, 0x100012+lbl_1_bss_A4[boxno], 0); - if(lbl_1_bss_AC[boxno]) { - HuWinInsertMesSet(lbl_1_bss_148, 0x100018, 1); - } else { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1); - } - HuWinMesSet(lbl_1_bss_148, 0x100043); - } else { - HuWinInsertMesSet(lbl_1_bss_148, 0x100012+lbl_1_bss_A4[boxno], 0); - if(lbl_1_bss_AC[boxno]) { - HuWinInsertMesSet(lbl_1_bss_148, 0x100018, 1); - } else { - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1); - } - HuWinInsertMesSet(lbl_1_bss_148, 0x100012+lbl_1_bss_9E[boxno], 2); - sprintf(mesMaxTurn, "%2d", lbl_1_bss_98[boxno]); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesMaxTurn), 3); - sprintf(mesTurn, "%2d", lbl_1_bss_92[boxno]); - HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesTurn), 4); - HuWinMesSet(lbl_1_bss_148, 0x100042); - } - } - } - } - HuWinMesWait(lbl_1_bss_148); -} \ No newline at end of file + char mesMaxTurn[4]; + char mesTurn[4]; + char mesDummy[1] = { 0 }; + if (lbl_1_bss_EE[boxno] < 0) { + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x11)); + } + else { + if (!lbl_1_bss_C4[boxno] && !lbl_1_bss_B8[boxno]) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x11), 0); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x43)); + } + else { + if (!lbl_1_bss_C4[boxno]) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x11), 0); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x12) + lbl_1_bss_9E[boxno], 2); + sprintf(mesMaxTurn, "%2d", lbl_1_bss_98[boxno]); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesMaxTurn), 3); + sprintf(mesTurn, "%2d", lbl_1_bss_92[boxno]); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesTurn), 4); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x42)); + } + else { + if (!lbl_1_bss_B8[boxno]) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x12) + lbl_1_bss_A4[boxno], 0); + if (lbl_1_bss_AC[boxno]) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x18), 1); + } + else { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1); + } + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x43)); + } + else { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x12) + lbl_1_bss_A4[boxno], 0); + if (lbl_1_bss_AC[boxno]) { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x18), 1); + } + else { + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesDummy), 1); + } + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x12) + lbl_1_bss_9E[boxno], 2); + sprintf(mesMaxTurn, "%2d", lbl_1_bss_98[boxno]); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesMaxTurn), 3); + sprintf(mesTurn, "%2d", lbl_1_bss_92[boxno]); + HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(mesTurn), 4); + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x42)); + } + } + } + } + HuWinMesWait(lbl_1_bss_148); +} diff --git a/src/REL/modeseldll/modesel.c b/src/REL/modeseldll/modesel.c index e0d6b53d..31253f9a 100644 --- a/src/REL/modeseldll/modesel.c +++ b/src/REL/modeseldll/modesel.c @@ -1,261 +1,245 @@ #define HUWIN_USE_OLD_DEFS -#include "game/object.h" -#include "game/gamework_data.h" #include "game/audio.h" -#include "game/wipe.h" -#include "game/window.h" -#include "game/object.h" -#include "game/process.h" -#include "game/hsfman.h" -#include "game/pad.h" +#include "game/gamework_data.h" #include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/object.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/window.h" +#include "game/wipe.h" + -#include "ext_math.h" #include "REL/modeseldll.h" +#include "ext_math.h" -s16 lbl_1_data_80[] = { - 16, 17, 18, - 19, 20, 21 -}; -s32 lbl_1_data_8C[] = { - 0x630030, - 0x630032, - 0x630034, - 0x630036, - 0x630038, - 0x63003A -}; +s16 lbl_1_data_80[] = { 16, 17, 18, 19, 20, 21 }; -s32 lbl_1_data_A4[] = { - 0x630031, - 0x630033, - 0x630035, - 0x630037, - 0x630039, - 0x63003B -}; +s32 lbl_1_data_8C[] = { DATA_MAKE_NUM(DATADIR_MODESEL, 0x30), DATA_MAKE_NUM(DATADIR_MODESEL, 0x32), DATA_MAKE_NUM(DATADIR_MODESEL, 0x34), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x36), DATA_MAKE_NUM(DATADIR_MODESEL, 0x38), DATA_MAKE_NUM(DATADIR_MODESEL, 0x3A) }; -u32 lbl_1_data_BC[] = { - 0x110001, - 0x110002, - 0x110003, - 0x110004, - 0x110005, - 0x110006 -}; +s32 lbl_1_data_A4[] = { DATA_MAKE_NUM(DATADIR_MODESEL, 0x31), DATA_MAKE_NUM(DATADIR_MODESEL, 0x33), DATA_MAKE_NUM(DATADIR_MODESEL, 0x35), + DATA_MAKE_NUM(DATADIR_MODESEL, 0x37), DATA_MAKE_NUM(DATADIR_MODESEL, 0x39), DATA_MAKE_NUM(DATADIR_MODESEL, 0x3B) }; + +u32 lbl_1_data_BC[] = { MAKE_MESSID(17, 1), MAKE_MESSID(17, 2), MAKE_MESSID(17, 3), MAKE_MESSID(17, 4), MAKE_MESSID(17, 5), MAKE_MESSID(17, 6) }; s16 lbl_1_bss_82; s16 lbl_1_bss_80; void fn_1_3668(void); -//Scratch is at https://decomp.me/scratch/iirXp -//Register allocation issues at line 180 with load of 1.0 double constant +// Scratch is at https://decomp.me/scratch/iirXp +// Register allocation issues at line 180 with load of 1.0 double constant s32 fn_1_2490(void) { - float sp10[2]; - float sp8[2]; - float temp_f31; - float temp_f30; - s16 temp_r31; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - s16 temp_r26; - s32 temp_r25; - WindowData *temp_r24; - AnimData *temp_r23; - AnimData *temp_r22; - s16 temp_r21; - fn_1_3668(); - fn_1_1EC0(1); - temp_r25 = HuAudFXPlay(2094); - if(omovlevtno) { - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - } - for(temp_r31=0; temp_r31<=20; temp_r31++) { - temp_f31 = 1.0-sind(90.0*(temp_r31/20.0)); - Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -50.0f+(200.0f*temp_f31), 0); - Hu3DModelPosSet(lbl_1_bss_19A[15], 0, -50.0f+(200.0f*temp_f31), 0); - HuPrcVSleep(); - } - HuPrcSleep(20); - Hu3DModelAttrReset(lbl_1_bss_19A[14], 0x40000002); - Hu3DModelAttrReset(lbl_1_bss_19A[15], 0x40000002); - HuAudFXPlay(2093); - HuPrcSleep(120); - HuAudFXPlay(2095); - for(temp_r31=0; temp_r31<=30; temp_r31++) { - temp_f31 = temp_r31/30.0; - Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -50.0f-(20.0f*temp_f31), 0); - HuPrcVSleep(); - } - HuWinMesMaxSizeBetGet(sp10, 0x110000, 0x110006); - lbl_1_bss_82 = HuWinExCreateStyled(-10000, 432-sp10[1], sp10[0], sp10[1], -1, 0); - HuWinMesSpeedSet(lbl_1_bss_82, 0); - temp_r24 = &winData[lbl_1_bss_82]; - temp_r24->active_pad = 1; - HuWinExAnimIn(lbl_1_bss_82); - HuWinMesSet(lbl_1_bss_82, 0x110000); - HuWinMesMaxSizeGet(1, sp8, 0x1A0020); - temp_r29 = HuWinCreate(-10000, 8+(432-sp10[1]-sp8[1]), sp8[0], sp8[1], 0); - HuWinMesSpeedSet(temp_r29, 0); - HuWinBGTPLvlSet(temp_r29, 0); - HuWinMesSet(temp_r29, 0x1A0020); - HuWinDispOff(temp_r29); - while(!Hu3DMotionEndCheck(lbl_1_bss_19A[15])) { - HuPrcVSleep(); - } - Hu3DModelAttrSet(lbl_1_bss_19A[15], 1); - for(temp_r31=0; temp_r31<6; temp_r31++) { - Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0x40000002); - Hu3DMotionTimeSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0); - Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0, -50, 0); - } - HuWinMesWait(lbl_1_bss_82); - - lbl_1_bss_80 = temp_r26 = 0; - espAttrReset(lbl_1_bss_152[10], HUSPR_ATTR_DISPOFF); - espBankSet(lbl_1_bss_152[10], 0); - for(temp_r31=0; temp_r31<=10; temp_r31++) { - temp_f31 = temp_r31/10.0f; - Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0, -50, 50.0*sind(90.0f*temp_f31)); - espPosSet(lbl_1_bss_152[10], 288.0, -50.0+(106.0*sind(90.0f*temp_f31))); - HuPrcVSleep(); - } - HuWinMesSet(lbl_1_bss_82, lbl_1_data_BC[lbl_1_bss_80]); - HuWinDispOn(temp_r29); - while(1) { - temp_r30 = 0; - if(HuPadDStkRep[0] & PAD_BUTTON_LEFT) { - temp_r30 = -1; - } else if(HuPadDStkRep[0] & PAD_BUTTON_RIGHT) { - temp_r30 = 1; - } - if(temp_r30) { - if(lbl_1_bss_80+temp_r30 < 0) { - lbl_1_bss_80 = 0; - } else if(lbl_1_bss_80+temp_r30 >= 6) { - lbl_1_bss_80 = 5; - } else { - lbl_1_bss_80 += temp_r30; - } - if(temp_r26 != lbl_1_bss_80) { - HuAudFXPlay(0); - for(temp_r31=0; temp_r31<=10; temp_r31++) { - temp_f31 = temp_r31/10.0f; - Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r26]], 0, -50, 50.0*cosd(90.0f*temp_f31)); - Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0, -50, 50.0*sind(90.0f*temp_f31)); - espPosSet(lbl_1_bss_152[10], 288.0, -50.0+(106.0*(1.0-sind(180.0f*temp_f31)))); - if(temp_r31 == 5) { - espBankSet(lbl_1_bss_152[10], lbl_1_bss_80); - } - HuPrcVSleep(); - } - temp_r26 = lbl_1_bss_80; - HuWinMesSet(lbl_1_bss_82, lbl_1_data_BC[lbl_1_bss_80]); - } - } - if(HuPadBtnDown[0] & PAD_BUTTON_A) { - HuAudFXPlay(2); - break; - } else if(HuPadBtnDown[0] & PAD_BUTTON_B) { - HuAudFXPlay(3); - HuAudFXStop(temp_r25); - return -1; - } else { - HuPrcVSleep(); - continue; - } - } - Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0x40000002); - HuAudSeqAllFadeOut(1000); - for(temp_r31=0; temp_r31<=20; temp_r31++) { - temp_f31 = temp_r31/20.0f; - for(temp_r28=0; temp_r28<6; temp_r28++) { - if(temp_r28 != lbl_1_bss_80) { - Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r28]], 0, -50-(300.0*(1.0-cosd(90.0f*temp_f31))), 0); - espPosSet(lbl_1_bss_152[10], 288.0, -50.0+(106.0*(cosd(90.0f*temp_f31)))); - } - } - HuPrcVSleep(); - } - HuWinKill(temp_r29); - HuWinExAnimOut(lbl_1_bss_82); - HuAudFXStop(temp_r25); - temp_r27 = HuSprGrpCreate(1); - temp_r21 = HuTHPSprCreateVol("movie/opmov_c00.thp", 0, 3000, 90.0); - HuSprGrpMemberSet(temp_r27, 0, temp_r21); - HuSprPosSet(temp_r27, 0, 288.0f, 240.0f); - HuSprDrawNoSet(temp_r27, 0, 127); - HuPrcSleep(2); - espAttrSet(lbl_1_bss_152[9], HUSPR_ATTR_DISPOFF); - for(temp_r31=0; temp_r31<=10; temp_r31++) { - temp_f31 = temp_r31/10.0; - Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -70.0f-(100.0f*temp_f31), 0); - HuPrcVSleep(); - } - temp_r23 = HuSprAnimRead(HuDataReadNum(lbl_1_data_8C[lbl_1_bss_80], MEMORY_DEFAULT_NUM)); - temp_r22 = HuSprAnimRead(HuDataReadNum(lbl_1_data_A4[lbl_1_bss_80], MEMORY_DEFAULT_NUM)); - Hu3DAnimCreate(temp_r23, lbl_1_bss_19A[22], "ys002_a1"); - Hu3DAnimCreate(temp_r22, lbl_1_bss_19A[22], "ys002_a2"); - Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 1); - Hu3DMotionTimeSet(lbl_1_bss_19A[22], 0); - Hu3DModelAttrReset(lbl_1_bss_19A[22], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[22], 0x40000002); - Hu3DModelPosSet(lbl_1_bss_19A[22], 0, 27, 50); - Hu3DModelScaleSet(lbl_1_bss_19A[22], 1.0f, 1.063f, 1.0f); - for(temp_r31=1; temp_r31<=20; temp_r31++) { - temp_f31 = temp_r31/20.0; - Hu3DModelPosSet(lbl_1_bss_19A[22], 0, 27.0-(60.0*sind(90.0f*temp_f31)), 50); - HuPrcVSleep(); - } - HuPrcSleep(90); - Hu3DFogSet(3000, 8000, 255, 255, 255); - Hu3DModelAttrReset(lbl_1_bss_19A[22], 0x40000002); - HuPrcSleep(60); - temp_f31 =0; - temp_f30 = 5; - while(!HuTHPEndCheck()) { - Hu3DModelPosSet(lbl_1_bss_19A[22], 0, -33.0f+(temp_f31/30.0f), 50.0f-temp_f31); - temp_f31 += temp_f30; - temp_f30 += 5.0f; - HuPrcVSleep(); - } - _ClearFlag(FLAG_ID_MAKE(1, 11)); - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10); - while(WipeStatGet()) { - HuPrcVSleep(); - } - HuTHPClose(); - HuSprGrpKill(temp_r27); - return lbl_1_bss_80; + float sp10[2]; + float sp8[2]; + float temp_f31; + float temp_f30; + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + s32 temp_r25; + WindowData *temp_r24; + AnimData *temp_r23; + AnimData *temp_r22; + s16 temp_r21; + fn_1_3668(); + fn_1_1EC0(1); + temp_r25 = HuAudFXPlay(2094); + if (omovlevtno) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + } + for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) { + temp_f31 = 1.0 - sind(90.0 * (temp_r31 / 20.0)); + Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -50.0f + (200.0f * temp_f31), 0); + Hu3DModelPosSet(lbl_1_bss_19A[15], 0, -50.0f + (200.0f * temp_f31), 0); + HuPrcVSleep(); + } + HuPrcSleep(20); + Hu3DModelAttrReset(lbl_1_bss_19A[14], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_19A[15], 0x40000002); + HuAudFXPlay(2093); + HuPrcSleep(120); + HuAudFXPlay(2095); + for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { + temp_f31 = temp_r31 / 30.0; + Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -50.0f - (20.0f * temp_f31), 0); + HuPrcVSleep(); + } + HuWinMesMaxSizeBetGet(sp10, MAKE_MESSID(0x11, 0x00), MAKE_MESSID(0x11, 0x06)); + lbl_1_bss_82 = HuWinExCreateStyled(-10000, 432 - sp10[1], sp10[0], sp10[1], -1, 0); + HuWinMesSpeedSet(lbl_1_bss_82, 0); + temp_r24 = &winData[lbl_1_bss_82]; + temp_r24->active_pad = 1; + HuWinExAnimIn(lbl_1_bss_82); + HuWinMesSet(lbl_1_bss_82, MAKE_MESSID(0x11, 0x00)); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1A, 0x20)); + temp_r29 = HuWinCreate(-10000, 8 + (432 - sp10[1] - sp8[1]), sp8[0], sp8[1], 0); + HuWinMesSpeedSet(temp_r29, 0); + HuWinBGTPLvlSet(temp_r29, 0); + HuWinMesSet(temp_r29, MAKE_MESSID(0x1A, 0x20)); + HuWinDispOff(temp_r29); + while (!Hu3DMotionEndCheck(lbl_1_bss_19A[15])) { + HuPrcVSleep(); + } + Hu3DModelAttrSet(lbl_1_bss_19A[15], 1); + for (temp_r31 = 0; temp_r31 < 6; temp_r31++) { + Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0x40000002); + Hu3DMotionTimeSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0); + Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0, -50, 0); + } + HuWinMesWait(lbl_1_bss_82); + + lbl_1_bss_80 = temp_r26 = 0; + espAttrReset(lbl_1_bss_152[10], HUSPR_ATTR_DISPOFF); + espBankSet(lbl_1_bss_152[10], 0); + for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { + temp_f31 = temp_r31 / 10.0f; + Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0, -50, 50.0 * sind(90.0f * temp_f31)); + espPosSet(lbl_1_bss_152[10], 288.0, -50.0 + (106.0 * sind(90.0f * temp_f31))); + HuPrcVSleep(); + } + HuWinMesSet(lbl_1_bss_82, lbl_1_data_BC[lbl_1_bss_80]); + HuWinDispOn(temp_r29); + while (1) { + temp_r30 = 0; + if (HuPadDStkRep[0] & PAD_BUTTON_LEFT) { + temp_r30 = -1; + } + else if (HuPadDStkRep[0] & PAD_BUTTON_RIGHT) { + temp_r30 = 1; + } + if (temp_r30) { + if (lbl_1_bss_80 + temp_r30 < 0) { + lbl_1_bss_80 = 0; + } + else if (lbl_1_bss_80 + temp_r30 >= 6) { + lbl_1_bss_80 = 5; + } + else { + lbl_1_bss_80 += temp_r30; + } + if (temp_r26 != lbl_1_bss_80) { + HuAudFXPlay(0); + for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { + temp_f31 = temp_r31 / 10.0f; + Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r26]], 0, -50, 50.0 * cosd(90.0f * temp_f31)); + Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0, -50, 50.0 * sind(90.0f * temp_f31)); + espPosSet(lbl_1_bss_152[10], 288.0, -50.0 + (106.0 * (1.0 - sind(180.0f * temp_f31)))); + if (temp_r31 == 5) { + espBankSet(lbl_1_bss_152[10], lbl_1_bss_80); + } + HuPrcVSleep(); + } + temp_r26 = lbl_1_bss_80; + HuWinMesSet(lbl_1_bss_82, lbl_1_data_BC[lbl_1_bss_80]); + } + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2); + break; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + HuAudFXStop(temp_r25); + return -1; + } + else { + HuPrcVSleep(); + continue; + } + } + Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0x40000002); + HuAudSeqAllFadeOut(1000); + for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) { + temp_f31 = temp_r31 / 20.0f; + for (temp_r28 = 0; temp_r28 < 6; temp_r28++) { + if (temp_r28 != lbl_1_bss_80) { + Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r28]], 0, -50 - (300.0 * (1.0 - cosd(90.0f * temp_f31))), 0); + espPosSet(lbl_1_bss_152[10], 288.0, -50.0 + (106.0 * (cosd(90.0f * temp_f31)))); + } + } + HuPrcVSleep(); + } + HuWinKill(temp_r29); + HuWinExAnimOut(lbl_1_bss_82); + HuAudFXStop(temp_r25); + temp_r27 = HuSprGrpCreate(1); + temp_r21 = HuTHPSprCreateVol("movie/opmov_c00.thp", 0, 3000, 90.0); + HuSprGrpMemberSet(temp_r27, 0, temp_r21); + HuSprPosSet(temp_r27, 0, 288.0f, 240.0f); + HuSprDrawNoSet(temp_r27, 0, 127); + HuPrcSleep(2); + espAttrSet(lbl_1_bss_152[9], HUSPR_ATTR_DISPOFF); + for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { + temp_f31 = temp_r31 / 10.0; + Hu3DModelPosSet(lbl_1_bss_19A[14], 0, -70.0f - (100.0f * temp_f31), 0); + HuPrcVSleep(); + } + temp_r23 = HuSprAnimRead(HuDataReadNum(lbl_1_data_8C[lbl_1_bss_80], MEMORY_DEFAULT_NUM)); + temp_r22 = HuSprAnimRead(HuDataReadNum(lbl_1_data_A4[lbl_1_bss_80], MEMORY_DEFAULT_NUM)); + Hu3DAnimCreate(temp_r23, lbl_1_bss_19A[22], "ys002_a1"); + Hu3DAnimCreate(temp_r22, lbl_1_bss_19A[22], "ys002_a2"); + Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 1); + Hu3DMotionTimeSet(lbl_1_bss_19A[22], 0); + Hu3DModelAttrReset(lbl_1_bss_19A[22], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[22], 0x40000002); + Hu3DModelPosSet(lbl_1_bss_19A[22], 0, 27, 50); + Hu3DModelScaleSet(lbl_1_bss_19A[22], 1.0f, 1.063f, 1.0f); + for (temp_r31 = 1; temp_r31 <= 20; temp_r31++) { + temp_f31 = temp_r31 / 20.0; + Hu3DModelPosSet(lbl_1_bss_19A[22], 0, 27.0 - (60.0 * sind(90.0f * temp_f31)), 50); + HuPrcVSleep(); + } + HuPrcSleep(90); + Hu3DFogSet(3000, 8000, 255, 255, 255); + Hu3DModelAttrReset(lbl_1_bss_19A[22], 0x40000002); + HuPrcSleep(60); + temp_f31 = 0; + temp_f30 = 5; + while (!HuTHPEndCheck()) { + Hu3DModelPosSet(lbl_1_bss_19A[22], 0, -33.0f + (temp_f31 / 30.0f), 50.0f - temp_f31); + temp_f31 += temp_f30; + temp_f30 += 5.0f; + HuPrcVSleep(); + } + _ClearFlag(FLAG_ID_MAKE(1, 11)); + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuTHPClose(); + HuSprGrpKill(temp_r27); + return lbl_1_bss_80; } void fn_1_3668(void) { - Vec sp20; - Vec sp14; - Vec sp8; - Hu3DShadowCreate(20, 100, 5000); - Hu3DShadowTPLvlSet(0.3f); - Hu3DShadowSizeSet(192); - sp14.x = sp14.y = sp14.z = 0; - sp20.x = 0; - sp20.z = 300; - sp20.y = 400; - sp8.x = 0; - sp8.y = 1; - sp8.z = 0; - Hu3DShadowPosSet(&sp20, &sp8, &sp14); - Hu3DModelAttrReset(lbl_1_bss_19A[15], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[15], 0x40000002); - Hu3DMotionTimeSet(lbl_1_bss_19A[15], 0); - Hu3DModelAttrReset(lbl_1_bss_19A[14], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[14], 0x40000002); - Hu3DMotionTimeSet(lbl_1_bss_19A[14], 0); -} \ No newline at end of file + Vec sp20; + Vec sp14; + Vec sp8; + Hu3DShadowCreate(20, 100, 5000); + Hu3DShadowTPLvlSet(0.3f); + Hu3DShadowSizeSet(192); + sp14.x = sp14.y = sp14.z = 0; + sp20.x = 0; + sp20.z = 300; + sp20.y = 400; + sp8.x = 0; + sp8.y = 1; + sp8.z = 0; + Hu3DShadowPosSet(&sp20, &sp8, &sp14); + Hu3DModelAttrReset(lbl_1_bss_19A[15], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[15], 0x40000002); + Hu3DMotionTimeSet(lbl_1_bss_19A[15], 0); + Hu3DModelAttrReset(lbl_1_bss_19A[14], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[14], 0x40000002); + Hu3DMotionTimeSet(lbl_1_bss_19A[14], 0); +} diff --git a/src/REL/mstory4Dll/main.c b/src/REL/mstory4Dll/main.c index 1fa909da..ab56c8a5 100644 --- a/src/REL/mstory4Dll/main.c +++ b/src/REL/mstory4Dll/main.c @@ -21,54 +21,54 @@ typedef struct struct_data0 { } StructData0; StructData0 lbl_1_data_0[] = { - { 0x680000, 0, 0, 0, 1 }, - { 0x680001, 0, 0, 0, 1 }, - { 0x680002, 0, 0, 0, 1 }, - { 0x680003, 0, 0, 0, 1 }, - { 0x680004, 0, 0, 0, 1 }, - { 0x680005, 0, 0, 0, 1 }, - { 0x680006, 0, 0, 0, 1 }, - { 0x680007, 0, 0, 0, 1 }, - { 0x680008, 0, 0, 0, 1 }, - { 0x680009, 0, 0, 0, 1 }, - { 0x68000A, 0, 0, 0, 1 }, - { 0x68000B, 0, 0, 0, 1 }, - { 0x68000C, 0, 0, 0, 1 }, - { 0x68000D, 0, 0, 0, 1 }, - { 0x68000E, 1, 0, 0, 1 }, - { 0x68000F, 0, 0, 0, 1 }, - { 0x680010, 0, 0, 0, 1 }, - { 0x680011, 0, 0, 0, 1 }, - { 0x680012, 0, 0, 0, 1 }, - { 0x680013, 0, 0, 0, 1 }, - { 0x680014, 0, 0, 0, 1 }, - { 0x680015, 0, 0, 0, 1 }, - { 0x680016, 0, 0, 0, 1 }, - { 0x680017, 0, 0, 0, 1 }, - { 0x680018, 0, 0, 0, 1 }, - { 0x680019, 0, 0, 0, 1 }, - { 0x68001A, 0, 0, 0, 1 }, - { 0x68001B, 0, 0, 0, 1 }, - { 0x68001C, 0, 0, 0, 1 }, - { 0x68001D, 0, 0, 0, 1 }, - { 0x68001E, 0, 0, 0, 1 }, - { 0x68001F, 0, 0, 0, 1 }, - { 0x680020, 0, 0, 0, 1 }, - { 0x680021, 0, 0, 0, 1 }, - { 0x680022, 0, 0, 0, 1 }, - { 0x680023, 0, 0, 0, 1 }, - { 0x680024, 0, 0, 0, 1 }, - { 0x680025, 0, 0, 0, 1 }, - { 0x680026, 0, 0, 0, 1 }, - { 0x680027, 0, 0, 0, 1 }, - { 0x680028, 0, 0, 0, 1 }, - { 0x680029, 0, 0, 0, 1 }, - { 0x68002A, 0, 0, 0, 1 }, - { 0x68002B, 0, 0, 0, 1 }, - { 0x68002C, 0, 0, 0, 1 }, - { 0x68002D, 0, 0, 0, 1 }, - { 0x68002E, 0, 0, 0, 1 }, - { 0x68002F, 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x00), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x01), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x02), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x03), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x04), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x05), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x06), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x07), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x08), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x09), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0E), 1, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0F), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x10), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x11), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x12), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x13), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x14), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x15), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x16), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x17), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x18), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x19), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1E), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1F), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x20), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x21), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x22), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x23), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x24), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x25), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x26), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x27), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x28), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x29), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2E), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2F), 0, 0, 0, 1 }, }; char *lbl_1_data_430[] = { @@ -605,4 +605,4 @@ void fn_1_13A0(void) while(1) { HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/REL/option/guide.c b/src/REL/option/guide.c index 89865969..5b38fe10 100755 --- a/src/REL/option/guide.c +++ b/src/REL/option/guide.c @@ -68,7 +68,7 @@ omObjData *OptionGuideCreate(void) object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 12)); Hu3DModelLayerSet(object->model[0], 1); for (i = 0; i < 3; i++) { - object->motion[i] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(guideMotTbl[i], MEMORY_DEFAULT_NUM, HEAP_DATA)); + object->motion[i] = Hu3DJointMotionFile(object->model[0], guideMotTbl[i]); } work->unk_5C = CharModelEffectNpcInit(object->model[0], object->motion[2], 1, 0xC); work->unk_60 = CharModelEffectNpcInit(object->model[0], object->motion[1], 0, 0xC); @@ -217,7 +217,7 @@ static void UpdateGuide(omObjData *object) static float LerpAngle(float start, float end, float time) { float angle; - + float delta = fmod(end - start, 360.0); if (0.0f > delta) { delta += 360.0f; diff --git a/src/REL/present/common.c b/src/REL/present/common.c index 32922f12..0ecd4474 100644 --- a/src/REL/present/common.c +++ b/src/REL/present/common.c @@ -56,7 +56,7 @@ omObjData *PresentGuideCreate(void) Hu3DModelLayerSet(object->model[0], 1); for (var_r29 = 0; var_r29 < 3; var_r29++) { - object->motion[var_r29] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(guideMotTbl[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA)); + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], guideMotTbl[var_r29]); } Hu3DMotionShiftSet(object->model[0], object->motion[work->motion = 0], 0.0f, 8.0f, 0x40000001); work->unk_50 = CharModelEffectNpcInit(object->model[0], object->motion[2], 1, 10); diff --git a/src/REL/present/main.c b/src/REL/present/main.c index 0d39435e..93ef8386 100644 --- a/src/REL/present/main.c +++ b/src/REL/present/main.c @@ -104,7 +104,7 @@ static void ExecPresentView(omObjData *object) case 6: HuAudFXPlay(66); PresentWinAnimIn(work->window); - PresentWinMesSet(work->window, 0x320002); + PresentWinMesSet(work->window, MAKE_MESSID(0x32, 0x02)); object->unk10 = 7; case 7: if (work->window->state) { diff --git a/src/REL/present/present.c b/src/REL/present/present.c index 55adf107..b13a9e34 100644 --- a/src/REL/present/present.c +++ b/src/REL/present/present.c @@ -5,6 +5,7 @@ #include "game/hsfex.h" #include "game/hsfman.h" #include "game/wipe.h" +#include "game/window.h" #include "REL/present.h" @@ -502,13 +503,13 @@ static void ExecSelectRoom(omObjData *object) PresentWinAnimIn(work->presentDescWindow); PresentWinAnimIn(work->btnLegendWindow); if (work->constellationSelF) { - mess = 0x320080; + mess = MAKE_MESSID(0x32, 0x80); } else if (work->room == ROOM_TROPHY) { - mess = 0x320085; + mess = MAKE_MESSID(0x32, 0x85); } else { - mess = 0x32007e; + mess = MAKE_MESSID(0x32, 0x7e); } PresentWinMesSet(work->btnLegendWindow, mess); switch (work->room) { @@ -522,36 +523,36 @@ static void ExecSelectRoom(omObjData *object) case ROOM_WALUIGI: if (work->constellationSelF) { if (PresentUnlocked(object, work->room, ROOM_TROPHY)) { - mess = 0x320005; + mess = MAKE_MESSID(0x32, 0x05); } else { - mess = 0x320082; + mess = MAKE_MESSID(0x32, 0x82); } } else if (UnlockedPresents(object, work->room) > 0) { - mess = 0x320001; + mess = MAKE_MESSID(0x32, 0x01); } else { - mess = 0x320081; + mess = MAKE_MESSID(0x32, 0x81); } PresentWinMesSet(work->presentDescWindow, mess); PresentWinInsertMesSet(work->presentDescWindow, roomMessTbl[work->room], 0); break; case ROOM_TROPHY: if (PresentUnlocked(object, ROOM_TROPHY, 0)) { - mess = 0x320041; + mess = MAKE_MESSID(0x32, 0x41); } else { - mess = 0x320084; + mess = MAKE_MESSID(0x32, 0x84); } PresentWinMesSet(work->presentDescWindow, mess); break; case ROOM_MG: if (UnlockedPresents(object, ROOM_MG) > 0) { - mess = 0x320083; + mess = MAKE_MESSID(0x32, 0x83); } else { - mess = 0x320081; + mess = MAKE_MESSID(0x32, 0x81); } PresentWinMesSet(work->presentDescWindow, mess); break; @@ -718,13 +719,13 @@ static void ExecSelectPresent(omObjData *object) } PresentWinAnimIn(work->presentDescWindow); PresentWinAnimIn(work->btnLegendWindow); - PresentWinMesSet(work->btnLegendWindow, 0x32007F); + PresentWinMesSet(work->btnLegendWindow, MAKE_MESSID(0x32, 0x7F)); if (work->roomNotEmptyF) { PresentWinMesSet(work->presentDescWindow, roomTbl[room].presentData[idxInRoom].descMess); } else { - PresentWinMesSet(work->presentDescWindow, 0x320003); + PresentWinMesSet(work->presentDescWindow, MAKE_MESSID(0x32, 0x03)); } work->cursorTime = 0.0f; work->cursorSpeed = 1.0f / 6.0f; @@ -1099,7 +1100,7 @@ static void ExecPresentGet(omObjData *object) case 3: PresentWinAnimIn(work->presentDescWindow); PresentWinInsertMesSet(work->presentDescWindow, roomTbl[work->room].presentData[work->idxInRoom].nameMess, 0); - PresentWinMesSet(work->presentDescWindow, 0x320004); + PresentWinMesSet(work->presentDescWindow, MAKE_MESSID(0x32, 0x04)); PresentWinMesWait(work->presentDescWindow); object->unk10 = 4; case 4: diff --git a/src/REL/resultDll/battle.c b/src/REL/resultDll/battle.c index e582532a..94e38485 100644 --- a/src/REL/resultDll/battle.c +++ b/src/REL/resultDll/battle.c @@ -1,144 +1,97 @@ #include "dolphin.h" #include "math.h" -#include "game/hsfanim.h" +#include "game/armem.h" #include "game/audio.h" -#include "game/process.h" -#include "game/wipe.h" -#include "game/window.h" -#include "game/pad.h" -#include "game/object.h" #include "game/chrman.h" -#include "game/sprite.h" +#include "game/frand.h" +#include "game/hsfanim.h" #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "game/armem.h" -#include "game/frand.h" +#include "game/object.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" #include "game/gamework_data.h" #include "REL/resultdll.h" -DataListModel lbl_1_data_4E8[] = { - { 0x6F0008, 0, 0, -1, -1, { -300, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, - { 0x6F0009, 0, 0, -1, -1, { -100, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, - { 0x6F000A, 0, 0, -1, -1, { 100, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, - { 0x6F000A, 0, 0, -1, -1, { 300, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, - { 0x6F000B, 0, 0, -1, -1, { -300, 1000, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, - { 0x6F000B, 0, 0, -1, -1, { -100, 1000, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, - { 0x6F000B, 0, 0, -1, -1, { 100, 1000, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, - { 0x6F000B, 0, 0, -1, -1, { 300, 1000, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, - { 0x6F000D, 0, 0, -1, -1, { 5000, 0, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, - { 0x6F000E, 0, 1, -1, 8, { 0, 0, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, - { 0x6F000F, 0x40000002, 0, -1, -1, { 5000, 0, 0 }, { 0, 0, 0 }, { 2.0f, 2.0f, 2.0f } }, - { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } } -}; +DataListModel lbl_1_data_4E8[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x08), 0, 0, -1, -1, { -300, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x09), 0, 0, -1, -1, { -100, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0A), 0, 0, -1, -1, { 100, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0A), 0, 0, -1, -1, { 300, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0B), 0, 0, -1, -1, { -300, 1000, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0B), 0, 0, -1, -1, { -100, 1000, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0B), 0, 0, -1, -1, { 100, 1000, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0B), 0, 0, -1, -1, { 300, 1000, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0D), 0, 0, -1, -1, { 5000, 0, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0E), 0, 1, -1, 8, { 0, 0, 0 }, { 0, 0, 0 }, { 1.0f, 1.0f, 1.0f } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x0F), 0x40000002, 0, -1, -1, { 5000, 0, 0 }, { 0, 0, 0 }, { 2.0f, 2.0f, 2.0f } }, + { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } } }; DataListSprite lbl_1_data_758[] = { - { 0x6F0043, 0, 10, 288, 240, { 255, 255, 255, 255 } }, - { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, -}; - -HsfanimStruct00 lbl_1_data_780 = { - 80, - { 0, 0 }, - 3, 30, 90, - { 0, -0.2, 0 }, - 5.0f, 0.95f, 10.0f, - 0.995f, - 2, - { - { 255, 192, 112, 255 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 }, - }, - { - { 128, 128, 128, 0 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 }, - } + { DATA_MAKE_NUM(DATADIR_RESULT, 0x43), 0, 10, 288, 240, { 255, 255, 255, 255 } }, + { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, }; +HsfanimStruct00 lbl_1_data_780 = { 80, { 0, 0 }, 3, 30, 90, { 0, -0.2, 0 }, 5.0f, 0.95f, 10.0f, 0.995f, 2, + { + { 255, 192, 112, 255 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + }, + { + { 128, 128, 128, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + } }; s16 lbl_1_data_7D0[] = { - 320, 132, - 500, 132, - 320, 217, - 500, 217, - 320, 302, - 500, 302, - 320, 387, - 500, 387, + 320, + 132, + 500, + 132, + 320, + 217, + 500, + 217, + 320, + 302, + 500, + 302, + 320, + 387, + 500, + 387, }; -Vec lbl_1_data_7F0[] = { - { -300, 270, 0 }, - { -100, 180, 500 }, - { 100, 90, 500 }, - { 300, 0, 500 } +Vec lbl_1_data_7F0[] = { { -300, 270, 0 }, { -100, 180, 500 }, { 100, 90, 500 }, { 300, 0, 500 } }; + +s16 lbl_1_data_820[] = { -284, 148, -84, 233, 116, 318, 316, 403 }; + +s32 lbl_1_data_830[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x08), DATA_MAKE_NUM(DATADIR_RESULT, 0x09), + DATA_MAKE_NUM(DATADIR_RESULT, 0x0A), DATA_MAKE_NUM(DATADIR_RESULT, 0x0A) }; -s16 lbl_1_data_820[] = { - -284, 148, - -84, 233, - 116, 318, - 316, 403 -}; +float lbl_1_data_840[] = { 130, 150, 170, 150, 150, 130, 170, 190 }; -s32 lbl_1_data_830[] = { - 0x6F0008, - 0x6F0009, - 0x6F000A, - 0x6F000A -}; +float lbl_1_data_860[] = { 130, 150, 180, 150, 150, 170, 180, 210 }; -float lbl_1_data_840[] = { - 130, - 150, - 170, - 150, - 150, - 130, - 170, - 190 -}; +float lbl_1_data_880[] = { 140, 160, 180, 150, 150, 120, 180, 210 }; -float lbl_1_data_860[] = { - 130, - 150, - 180, - 150, - 150, - 170, - 180, - 210 -}; - -float lbl_1_data_880[] = { - 140, - 160, - 180, - 150, - 150, - 120, - 180, - 210 -}; - -s16 lbl_1_data_8A0[] = { - 8, - 0, - -8 -}; +s16 lbl_1_data_8A0[] = { 8, 0, -8 }; typedef struct struct_unk194 { - s16 unk0; - s16 unk2; - Vec unk4; - Vec unk10; - float unk1C; + s16 unk0; + s16 unk2; + Vec unk4; + Vec unk10; + float unk1C; } StructUnk194; u8 lbl_1_bss_19F8[32]; @@ -160,90 +113,92 @@ void fn_1_7544(void); void fn_1_6490(void) { - s16 player; - s16 i; - s16 window; - s16 button; - Process *process = HuPrcCurrentGet(); - HuAudSeqPlay(10); - for(i=player=0; i<4; i++) { - if(GWPlayerCfg[i].iscom) { - player++; - } - } - if(player == 4) { - lbl_1_bss_190 = 1; - } else { - lbl_1_bss_190 = 0; - } - fn_1_6824(); - HuPrcChildCreate(fn_1_6760, 100, 8192, 0, process); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); - while(WipeStatGet()) { - HuPrcVSleep(); - } - lbl_1_bss_178 = 0; - HuPrcChildCreate(fn_1_3FD8, 100, 12288, 0, process); - HuPrcSleep(10); - if(!lbl_1_bss_174) { - HuPrcSleep(20); - } - fn_1_7544(); - fn_1_40DC(); - window = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); - HuWinMesSpeedSet(window, 0); - HuWinBGTPLvlSet(window, 0); - HuWinAttrSet(window, 0x800); - HuWinMesSet(window, 0x240007); - i=0; - while(1) { - if(lbl_1_bss_190 && i > 120) { - break; - } - for(player=button=0; player<4; player++) { - if(!GWPlayerCfg[player].iscom) { - button |= HuPadBtnDown[GWPlayerCfg[player].pad_idx]; - } - } - if(button & PAD_BUTTON_A) { - HuAudFXPlay(28); - break; - } - HuPrcVSleep(); - i++; - } - HuWinKill(window); - while(!lbl_1_bss_178) { - HuPrcVSleep(); - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - HuAudSeqAllFadeOut(500); - while(WipeStatGet()) { - HuPrcVSleep(); - } - omSysPauseEnable(1); - Hu3DParManAllKill(); - omOvlReturnEx(1, 1); - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } + s16 player; + s16 i; + s16 window; + s16 button; + Process *process = HuPrcCurrentGet(); + HuAudSeqPlay(10); + for (i = player = 0; i < 4; i++) { + if (GWPlayerCfg[i].iscom) { + player++; + } + } + if (player == 4) { + lbl_1_bss_190 = 1; + } + else { + lbl_1_bss_190 = 0; + } + fn_1_6824(); + HuPrcChildCreate(fn_1_6760, 100, 8192, 0, process); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet()) { + HuPrcVSleep(); + } + lbl_1_bss_178 = 0; + HuPrcChildCreate(fn_1_3FD8, 100, 12288, 0, process); + HuPrcSleep(10); + if (!lbl_1_bss_174) { + HuPrcSleep(20); + } + fn_1_7544(); + fn_1_40DC(); + window = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); + HuWinMesSpeedSet(window, 0); + HuWinBGTPLvlSet(window, 0); + HuWinAttrSet(window, 0x800); + HuWinMesSet(window, MAKE_MESSID(0x24, 0x07)); + i = 0; + while (1) { + if (lbl_1_bss_190 && i > 120) { + break; + } + for (player = button = 0; player < 4; player++) { + if (!GWPlayerCfg[player].iscom) { + button |= HuPadBtnDown[GWPlayerCfg[player].pad_idx]; + } + } + if (button & PAD_BUTTON_A) { + HuAudFXPlay(28); + break; + } + HuPrcVSleep(); + i++; + } + HuWinKill(window); + while (!lbl_1_bss_178) { + HuPrcVSleep(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + HuAudSeqAllFadeOut(500); + while (WipeStatGet()) { + HuPrcVSleep(); + } + omSysPauseEnable(1); + Hu3DParManAllKill(); + omOvlReturnEx(1, 1); + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } void fn_1_6760(void) { - Vec temp; - temp.z = 0.0f; - temp.y = 0.0f; - temp.x = 0.0f; - while(1) { - if (((HuPadBtn[0] | HuPadBtn[1] | HuPadBtn[2] | HuPadBtn[3]) & 0x100) != 0 || lbl_1_bss_190 != 0) { + Vec temp; + temp.z = 0.0f; + temp.y = 0.0f; + temp.x = 0.0f; + while (1) { + if (((HuPadBtn[0] | HuPadBtn[1] | HuPadBtn[2] | HuPadBtn[3]) & 0x100) != 0 || lbl_1_bss_190 != 0) { lbl_1_bss_174 = 1; - } else { + } + else { lbl_1_bss_174 = 0; } - HuPrcVSleep(); - } + HuPrcVSleep(); + } } void fn_1_7F98(void); @@ -255,464 +210,466 @@ void fn_1_8CB8(struct model_data *model, Mtx matrix); void fn_1_6824(void) { - s16 i; - s16 character; - s16 player; - s16 x_ofs; - AnimData *anim; - AnimData *anim2; - AnimData *anim3; - s16 char_mdl; - Vec pos; - Vec target; - Vec up; - s16 gains[5]; - Process *process = HuPrcCurrentGet(); - CRot.x = 0; - CRot.y = 0; - CRot.z = 0; - Center.x = 0; - Center.y = 330; - Center.z = 0; - CZoom = 2210; - Hu3DShadowCreate(20, 100, 5000); - Hu3DShadowTPLvlSet(0.5f); - Hu3DShadowSizeSet(192); - target.x = target.y = target.z = 0; - pos.x = 500; - pos.z = 1000; - pos.y = 2000; - up.x = 0; - up.y = 1; - up.z = 0; - Hu3DShadowPosSet(&pos, &up, &target); - i = Hu3DHookFuncCreate(fn_1_8CB8); - Hu3DModelPosSet(i, 0, 0, 0); - fn_1_8484(); - fn_1_423C(gains); - gains[lbl_1_bss_172] += gains[4]; - for(i=0; i<4; i++) { - lbl_1_data_4E8[i].datanum = lbl_1_data_830[lbl_1_bss_19E8[i]]; - if(lbl_1_bss_19E8[i] == 3) { - lbl_1_data_4E8[i].attr = 1; - } - } - fn_1_8FF8(lbl_1_data_4E8); - fn_1_927C(lbl_1_data_758); - espDrawNoSet(lbl_1_bss_1A1A[0], 127); - for(i=0; i<4; i++) { - Hu3DModelShadowSet(lbl_1_bss_1A9C[i]); - } - for(i=0; i<4; i++) { - anim = HuSprAnimRead(HuDataReadNum(lbl_1_bss_19E8[i]+0x6F0044, MEMORY_DEFAULT_NUM));; - if(lbl_1_bss_19E8[i] <= 2) { - anim2 = HuSprAnimRead(HuDataReadNum(0x6F0048, MEMORY_DEFAULT_NUM)); - } else { - anim2 = HuSprAnimRead(HuDataReadNum(0x6F0048, MEMORY_DEFAULT_NUM)); - } - Hu3DAnimCreate(anim, lbl_1_bss_1A9C[i+4], "ys22_a0"); - Hu3DAnimCreate(anim2, lbl_1_bss_1A9C[i+4], "ys22_a1"); - Hu3DModelAttrSet(lbl_1_bss_1A9C[i+4], 0x40000002); - } - anim = HuSprAnimRead(HuDataReadNum(0x6F003D, MEMORY_DEFAULT_NUM)); - anim2 = HuSprAnimRead(HuDataReadNum(0x6F003B, MEMORY_DEFAULT_NUM)); - anim3 = HuSprAnimRead(HuDataReadNum(0x6F003C, MEMORY_DEFAULT_NUM)); - for(i=0; i<4; i++) { - if(gains[lbl_1_bss_19F0[i]] >= 100) { - x_ofs = lbl_1_data_8A0[2]; - } else if(gains[lbl_1_bss_19F0[i]] >= 10) { - x_ofs = lbl_1_data_8A0[1]; - } else { - x_ofs = lbl_1_data_8A0[0]; - } - lbl_1_bss_19E0[i] = HuSprGrpCreate(5); - lbl_1_bss_19B8[i][0] = HuSprCreate(anim, 10, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 0, lbl_1_bss_19B8[i][0]); - HuSprPosSet(lbl_1_bss_19E0[i], 0, 17, -32); - lbl_1_bss_19B8[i][1] = HuSprCreate(anim2, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 1, lbl_1_bss_19B8[i][1]); - HuSprPosSet(lbl_1_bss_19E0[i], 1, x_ofs, -36); - lbl_1_bss_19B8[i][2] = HuSprCreate(anim3, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 2, lbl_1_bss_19B8[i][2]); - HuSprPosSet(lbl_1_bss_19E0[i], 2, x_ofs+16, -36); - lbl_1_bss_19B8[i][3] = HuSprCreate(anim3, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 3, lbl_1_bss_19B8[i][3]); - HuSprPosSet(lbl_1_bss_19E0[i], 3, x_ofs+32, -36); - lbl_1_bss_19B8[i][4] = HuSprCreate(anim3, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 4, lbl_1_bss_19B8[i][4]); - HuSprPosSet(lbl_1_bss_19E0[i], 4, x_ofs+48, -36); - HuSprGrpPosSet(lbl_1_bss_19E0[i], 0, 0); - fn_1_8338(lbl_1_bss_19E0[i], 9); - HuSprGrpScaleSet(lbl_1_bss_19E0[i], 0, 0); - } - (void)anim3; - Hu3DMotionSet(lbl_1_bss_1A9C[8], lbl_1_bss_1A5C[9]); - Hu3DModelAttrSet(lbl_1_bss_1A9C[8], 0x40000001); - Hu3DModelShadowSet(lbl_1_bss_1A9C[8]); - for(i=0; i<180; i++) { - if(i == 0) { - lbl_1_bss_1828[0] = Hu3DModelCreateFile(0x6F000C); - } else { - lbl_1_bss_1828[i] = Hu3DModelLink(lbl_1_bss_1828[0]); - } - Hu3DModelScaleSet(lbl_1_bss_1828[i], 0.5f, 0.5f, 0.5f); - Hu3DModelAttrSet(lbl_1_bss_1828[i], 1); - } - fn_1_8658(); - anim = HuSprAnimRead(HuAR_ARAMtoMRAMFileRead(0x120004, MEMORY_DEFAULT_NUM, HEAP_DATA)); - for(i=0; i<4; i++) { - lbl_1_bss_1814[i] = Hu3DParManCreate(anim, 300, &lbl_1_data_780); - Hu3DParManAttrSet(lbl_1_bss_1814[i], 0x65); - Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_1814[i]), 1); - Hu3DParManRotSet(lbl_1_bss_1814[i], 90, 0, 0); - } - HuDataDirClose(DATADIR_RESULT); - for(i=0; i<4; i++) { - player = lbl_1_bss_19F0[i]; - character = GWPlayerCfg[lbl_1_bss_19F0[i]].character; - char_mdl = CharModelCreate(character, 2); - lbl_1_bss_19B0[player] = char_mdl; - lbl_1_bss_1990[player][0] = CharModelMotionCreate(character, 0x5F0000); - lbl_1_bss_1990[player][1] = CharModelMotionCreate(character, 0x5F0017); - lbl_1_bss_1990[player][2] = CharModelMotionCreate(character, 0x5F0049); - CharModelVoiceEnableSet(character, lbl_1_bss_1990[player][1], 0); - CharModelMotionSet(character, lbl_1_bss_1990[player][0]); - Hu3DModelPosSet(char_mdl, lbl_1_data_7F0[i].x, lbl_1_data_7F0[lbl_1_bss_19E8[i]].y, 0); - Hu3DModelAttrSet(char_mdl, 0x40000001); - Hu3DModelShadowSet(char_mdl); - } - CharModelDataClose(-1); + s16 i; + s16 character; + s16 player; + s16 x_ofs; + AnimData *anim; + AnimData *anim2; + AnimData *anim3; + s16 char_mdl; + Vec pos; + Vec target; + Vec up; + s16 gains[5]; + Process *process = HuPrcCurrentGet(); + CRot.x = 0; + CRot.y = 0; + CRot.z = 0; + Center.x = 0; + Center.y = 330; + Center.z = 0; + CZoom = 2210; + Hu3DShadowCreate(20, 100, 5000); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowSizeSet(192); + target.x = target.y = target.z = 0; + pos.x = 500; + pos.z = 1000; + pos.y = 2000; + up.x = 0; + up.y = 1; + up.z = 0; + Hu3DShadowPosSet(&pos, &up, &target); + i = Hu3DHookFuncCreate(fn_1_8CB8); + Hu3DModelPosSet(i, 0, 0, 0); + fn_1_8484(); + fn_1_423C(gains); + gains[lbl_1_bss_172] += gains[4]; + for (i = 0; i < 4; i++) { + lbl_1_data_4E8[i].datanum = lbl_1_data_830[lbl_1_bss_19E8[i]]; + if (lbl_1_bss_19E8[i] == 3) { + lbl_1_data_4E8[i].attr = 1; + } + } + fn_1_8FF8(lbl_1_data_4E8); + fn_1_927C(lbl_1_data_758); + espDrawNoSet(lbl_1_bss_1A1A[0], 127); + for (i = 0; i < 4; i++) { + Hu3DModelShadowSet(lbl_1_bss_1A9C[i]); + } + for (i = 0; i < 4; i++) { + anim = HuSprAnimRead(HuDataReadNum(lbl_1_bss_19E8[i] + DATA_MAKE_NUM(DATADIR_RESULT, 0x44), MEMORY_DEFAULT_NUM)); + ; + if (lbl_1_bss_19E8[i] <= 2) { + anim2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x48), MEMORY_DEFAULT_NUM)); + } + else { + anim2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x48), MEMORY_DEFAULT_NUM)); + } + Hu3DAnimCreate(anim, lbl_1_bss_1A9C[i + 4], "ys22_a0"); + Hu3DAnimCreate(anim2, lbl_1_bss_1A9C[i + 4], "ys22_a1"); + Hu3DModelAttrSet(lbl_1_bss_1A9C[i + 4], 0x40000002); + } + anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x3D), MEMORY_DEFAULT_NUM)); + anim2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x3B), MEMORY_DEFAULT_NUM)); + anim3 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x3C), MEMORY_DEFAULT_NUM)); + for (i = 0; i < 4; i++) { + if (gains[lbl_1_bss_19F0[i]] >= 100) { + x_ofs = lbl_1_data_8A0[2]; + } + else if (gains[lbl_1_bss_19F0[i]] >= 10) { + x_ofs = lbl_1_data_8A0[1]; + } + else { + x_ofs = lbl_1_data_8A0[0]; + } + lbl_1_bss_19E0[i] = HuSprGrpCreate(5); + lbl_1_bss_19B8[i][0] = HuSprCreate(anim, 10, 0); + HuSprGrpMemberSet(lbl_1_bss_19E0[i], 0, lbl_1_bss_19B8[i][0]); + HuSprPosSet(lbl_1_bss_19E0[i], 0, 17, -32); + lbl_1_bss_19B8[i][1] = HuSprCreate(anim2, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_19E0[i], 1, lbl_1_bss_19B8[i][1]); + HuSprPosSet(lbl_1_bss_19E0[i], 1, x_ofs, -36); + lbl_1_bss_19B8[i][2] = HuSprCreate(anim3, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_19E0[i], 2, lbl_1_bss_19B8[i][2]); + HuSprPosSet(lbl_1_bss_19E0[i], 2, x_ofs + 16, -36); + lbl_1_bss_19B8[i][3] = HuSprCreate(anim3, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_19E0[i], 3, lbl_1_bss_19B8[i][3]); + HuSprPosSet(lbl_1_bss_19E0[i], 3, x_ofs + 32, -36); + lbl_1_bss_19B8[i][4] = HuSprCreate(anim3, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_19E0[i], 4, lbl_1_bss_19B8[i][4]); + HuSprPosSet(lbl_1_bss_19E0[i], 4, x_ofs + 48, -36); + HuSprGrpPosSet(lbl_1_bss_19E0[i], 0, 0); + fn_1_8338(lbl_1_bss_19E0[i], 9); + HuSprGrpScaleSet(lbl_1_bss_19E0[i], 0, 0); + } + (void)anim3; + Hu3DMotionSet(lbl_1_bss_1A9C[8], lbl_1_bss_1A5C[9]); + Hu3DModelAttrSet(lbl_1_bss_1A9C[8], 0x40000001); + Hu3DModelShadowSet(lbl_1_bss_1A9C[8]); + for (i = 0; i < 180; i++) { + if (i == 0) { + lbl_1_bss_1828[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x0C)); + } + else { + lbl_1_bss_1828[i] = Hu3DModelLink(lbl_1_bss_1828[0]); + } + Hu3DModelScaleSet(lbl_1_bss_1828[i], 0.5f, 0.5f, 0.5f); + Hu3DModelAttrSet(lbl_1_bss_1828[i], 1); + } + fn_1_8658(); + anim = HuSprAnimRead(HuAR_ARAMtoMRAMFileRead(DATA_MAKE_NUM(DATADIR_EFFECT, 4), MEMORY_DEFAULT_NUM, HEAP_DATA)); + for (i = 0; i < 4; i++) { + lbl_1_bss_1814[i] = Hu3DParManCreate(anim, 300, &lbl_1_data_780); + Hu3DParManAttrSet(lbl_1_bss_1814[i], 0x65); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_1814[i]), 1); + Hu3DParManRotSet(lbl_1_bss_1814[i], 90, 0, 0); + } + HuDataDirClose(DATADIR_RESULT); + for (i = 0; i < 4; i++) { + player = lbl_1_bss_19F0[i]; + character = GWPlayerCfg[lbl_1_bss_19F0[i]].character; + char_mdl = CharModelCreate(character, 2); + lbl_1_bss_19B0[player] = char_mdl; + lbl_1_bss_1990[player][0] = CharModelMotionCreate(character, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + lbl_1_bss_1990[player][1] = CharModelMotionCreate(character, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17)); + lbl_1_bss_1990[player][2] = CharModelMotionCreate(character, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49)); + CharModelVoiceEnableSet(character, lbl_1_bss_1990[player][1], 0); + CharModelMotionSet(character, lbl_1_bss_1990[player][0]); + Hu3DModelPosSet(char_mdl, lbl_1_data_7F0[i].x, lbl_1_data_7F0[lbl_1_bss_19E8[i]].y, 0); + Hu3DModelAttrSet(char_mdl, 0x40000001); + Hu3DModelShadowSet(char_mdl); + } + CharModelDataClose(-1); } -Vec lbl_1_data_8B8[] = { - { 8, 0, 0 }, - { 0, 8, 0 }, - { 10, 5, 0 }, - { -5, 10, 0 }, - { 0, -8, 0 }, - { 8, 10, 0 }, - { -10, 8, 0 }, - { 15, 0, 0 } -}; +Vec lbl_1_data_8B8[] = { { 8, 0, 0 }, { 0, 8, 0 }, { 10, 5, 0 }, { -5, 10, 0 }, { 0, -8, 0 }, { 8, 10, 0 }, { -10, 8, 0 }, { 15, 0, 0 } }; void fn_1_7544(void) { - s16 i; - s16 time; - s16 done_cnt; - float pos_y; - s16 gains[5]; - s16 time_player[4]; - fn_1_423C(gains); - for(time=0; time<=5; time++) { - pos_y = ((5-time)*50)+580; - for(i=0; i<4; i++) { - Hu3DModelPosSet(lbl_1_bss_1A9C[i+4], lbl_1_data_7F0[i].x, pos_y, 0); - } - HuPrcVSleep(); - } - for(i=0; i<4; i++) { - Hu3DModelAttrReset(lbl_1_bss_1A9C[i+4], 0x40000002); - Hu3DMotionSpeedSet(lbl_1_bss_1A9C[i+4], 1.5f); - } - HuPrcSleep(35); - for(i=0; i<4; i++) { - if(gains[lbl_1_bss_19F0[i]] > 0) { - Hu3DParManAttrReset(lbl_1_bss_1814[i], 1); - time_player[i] = frandmod(10); - } else { - time_player[i] = 0; - } - Hu3DParManPosSet(lbl_1_bss_1814[i], lbl_1_data_7F0[i].x, 610.0f, 0.0f); - } - while(1) { - for(i=done_cnt=0; i<4; i++) { - if(time_player[i]) { - time_player[i]--; - continue; - } - if(gains[lbl_1_bss_19F0[i]] <= 0) { - Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); - done_cnt++; - } else { - fn_1_86DC(i); - gains[lbl_1_bss_19F0[i]]--; - if(gains[lbl_1_bss_19F0[i]] <= 10) { - time_player[i] = 4; - } else { - if(gains[lbl_1_bss_19F0[i]] <= 20) { - time_player[i] = 3; - } else { - if(gains[lbl_1_bss_19F0[i]] <= 40) { - time_player[i] = 2; - } else { - time_player[i] = 1; - } - } - } - } - } - if(done_cnt == 4) { - break; - } - HuPrcVSleep(); - } - if(gains[4]) { - HuPrcSleep(20); - Hu3DModelRotSet(lbl_1_bss_1A9C[8], 0, -90, 0); - Hu3DModelScaleSet(lbl_1_bss_1A9C[8], 0.8f, 0.8f, 0.8f); - Hu3DMotionSpeedSet(lbl_1_bss_1A9C[8], 2.0f); - for(i=0; i<=40; i++) { - Hu3DModelPosSet(lbl_1_bss_1A9C[8], 500.0f*(1.0f-(i/40.0f)), 0, 100.0f); - HuPrcVSleep(); - } - HuAudFXPlay(828); - Hu3DModelAttrReset(lbl_1_bss_1A9C[10], 0x40000002); - Hu3DModelPosSet(lbl_1_bss_1A9C[10], 0, 0, 200); - for(i=0; i 10) { - Hu3DModelAttrSet(lbl_1_bss_1A9C[8], 1); - } - Center.x = lbl_1_data_8B8[(i/2) & 0x7].x; - Center.y = 330.0f+lbl_1_data_8B8[(i/2) & 0x7].y; - Center.z = lbl_1_data_8B8[(i/2) & 0x7].z; - espPosSet(lbl_1_bss_1A1A[0], 288.0f+lbl_1_data_8B8[(i/2) & 0x7].x, 240.0f-lbl_1_data_8B8[(i/2) & 0x7].y); - HuPrcVSleep(); - } - espPosSet(lbl_1_bss_1A1A[0], 288.0, 240.0); - Center.x = 0; - Center.y = 330; - Center.z = 0; - time_player[0] = 10; - for(i=0; i<4; i++) { - if(lbl_1_bss_172 == lbl_1_bss_19F0[i]) { - break; - } - } - Hu3DParManAttrReset(lbl_1_bss_1814[i], 1); - while(1) { - if(time_player[0] != 0) { - time_player[0]--; - HuPrcVSleep(); - continue; - } - if(gains[4] <= 0){ - Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); - break; - } - fn_1_86DC(i); - gains[4]--; - time_player[0] = 5; - HuPrcVSleep(); - } - Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); - } - fn_1_423C(gains); - gains[lbl_1_bss_172] += gains[4]; - for(i=0; i<4; i++) { - if(gains[lbl_1_bss_19F0[i]]) { - CharModelMotionShiftSet(GWPlayerCfg[lbl_1_bss_19F0[i]].character, lbl_1_bss_1990[lbl_1_bss_19F0[i]][1], 0, 4, 0); - HuAudPlayerVoicePlay(lbl_1_bss_19F0[i], 293); - } else { - CharModelMotionShiftSet(GWPlayerCfg[lbl_1_bss_19F0[i]].character, lbl_1_bss_1990[lbl_1_bss_19F0[i]][2], 0, 4, 0); - } - } - HuPrcSleep(20); - fn_1_7F98(); - HuPrcSleep(120); + s16 i; + s16 time; + s16 done_cnt; + float pos_y; + s16 gains[5]; + s16 time_player[4]; + fn_1_423C(gains); + for (time = 0; time <= 5; time++) { + pos_y = ((5 - time) * 50) + 580; + for (i = 0; i < 4; i++) { + Hu3DModelPosSet(lbl_1_bss_1A9C[i + 4], lbl_1_data_7F0[i].x, pos_y, 0); + } + HuPrcVSleep(); + } + for (i = 0; i < 4; i++) { + Hu3DModelAttrReset(lbl_1_bss_1A9C[i + 4], 0x40000002); + Hu3DMotionSpeedSet(lbl_1_bss_1A9C[i + 4], 1.5f); + } + HuPrcSleep(35); + for (i = 0; i < 4; i++) { + if (gains[lbl_1_bss_19F0[i]] > 0) { + Hu3DParManAttrReset(lbl_1_bss_1814[i], 1); + time_player[i] = frandmod(10); + } + else { + time_player[i] = 0; + } + Hu3DParManPosSet(lbl_1_bss_1814[i], lbl_1_data_7F0[i].x, 610.0f, 0.0f); + } + while (1) { + for (i = done_cnt = 0; i < 4; i++) { + if (time_player[i]) { + time_player[i]--; + continue; + } + if (gains[lbl_1_bss_19F0[i]] <= 0) { + Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); + done_cnt++; + } + else { + fn_1_86DC(i); + gains[lbl_1_bss_19F0[i]]--; + if (gains[lbl_1_bss_19F0[i]] <= 10) { + time_player[i] = 4; + } + else { + if (gains[lbl_1_bss_19F0[i]] <= 20) { + time_player[i] = 3; + } + else { + if (gains[lbl_1_bss_19F0[i]] <= 40) { + time_player[i] = 2; + } + else { + time_player[i] = 1; + } + } + } + } + } + if (done_cnt == 4) { + break; + } + HuPrcVSleep(); + } + if (gains[4]) { + HuPrcSleep(20); + Hu3DModelRotSet(lbl_1_bss_1A9C[8], 0, -90, 0); + Hu3DModelScaleSet(lbl_1_bss_1A9C[8], 0.8f, 0.8f, 0.8f); + Hu3DMotionSpeedSet(lbl_1_bss_1A9C[8], 2.0f); + for (i = 0; i <= 40; i++) { + Hu3DModelPosSet(lbl_1_bss_1A9C[8], 500.0f * (1.0f - (i / 40.0f)), 0, 100.0f); + HuPrcVSleep(); + } + HuAudFXPlay(828); + Hu3DModelAttrReset(lbl_1_bss_1A9C[10], 0x40000002); + Hu3DModelPosSet(lbl_1_bss_1A9C[10], 0, 0, 200); + for (i = 0; i < Hu3DMotionMaxTimeGet(lbl_1_bss_1A9C[10]); i++) { + if (i > 10) { + Hu3DModelAttrSet(lbl_1_bss_1A9C[8], 1); + } + Center.x = lbl_1_data_8B8[(i / 2) & 0x7].x; + Center.y = 330.0f + lbl_1_data_8B8[(i / 2) & 0x7].y; + Center.z = lbl_1_data_8B8[(i / 2) & 0x7].z; + espPosSet(lbl_1_bss_1A1A[0], 288.0f + lbl_1_data_8B8[(i / 2) & 0x7].x, 240.0f - lbl_1_data_8B8[(i / 2) & 0x7].y); + HuPrcVSleep(); + } + espPosSet(lbl_1_bss_1A1A[0], 288.0, 240.0); + Center.x = 0; + Center.y = 330; + Center.z = 0; + time_player[0] = 10; + for (i = 0; i < 4; i++) { + if (lbl_1_bss_172 == lbl_1_bss_19F0[i]) { + break; + } + } + Hu3DParManAttrReset(lbl_1_bss_1814[i], 1); + while (1) { + if (time_player[0] != 0) { + time_player[0]--; + HuPrcVSleep(); + continue; + } + if (gains[4] <= 0) { + Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); + break; + } + fn_1_86DC(i); + gains[4]--; + time_player[0] = 5; + HuPrcVSleep(); + } + Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); + } + fn_1_423C(gains); + gains[lbl_1_bss_172] += gains[4]; + for (i = 0; i < 4; i++) { + if (gains[lbl_1_bss_19F0[i]]) { + CharModelMotionShiftSet(GWPlayerCfg[lbl_1_bss_19F0[i]].character, lbl_1_bss_1990[lbl_1_bss_19F0[i]][1], 0, 4, 0); + HuAudPlayerVoicePlay(lbl_1_bss_19F0[i], 293); + } + else { + CharModelMotionShiftSet(GWPlayerCfg[lbl_1_bss_19F0[i]].character, lbl_1_bss_1990[lbl_1_bss_19F0[i]][2], 0, 4, 0); + } + } + HuPrcSleep(20); + fn_1_7F98(); + HuPrcSleep(120); } void fn_1_7F98(void) { - s16 i; - s16 time; - s16 delay; - s16 gains[5]; - Vec pos_3d; - Vec pos_2d; - fn_1_423C(gains); - gains[lbl_1_bss_172] += gains[4]; - for(i=0; i<4; i++) { - fn_1_8338(lbl_1_bss_19E0[i], gains[lbl_1_bss_19F0[i]]); - pos_3d.x = lbl_1_data_7F0[i].x; - if(gains[lbl_1_bss_19F0[i]]) { - pos_3d.y = lbl_1_data_7F0[lbl_1_bss_19E8[i]].y+lbl_1_data_860[GWPlayerCfg[lbl_1_bss_19F0[i]].character]; - } else { - pos_3d.y = lbl_1_data_7F0[lbl_1_bss_19E8[i]].y+lbl_1_data_880[GWPlayerCfg[lbl_1_bss_19F0[i]].character]; - } - pos_3d.z = 0; - Hu3D3Dto2D(&pos_3d, 1, &pos_2d); - HuSprGrpPosSet(lbl_1_bss_19E0[i], pos_2d.x, pos_2d.y); - } - delay = (lbl_1_bss_174) ? 3 : 10; - for(time=0; time<=delay; time++) { - float scale = sin(M_PI*((90.0/delay)*time)/180.0); - for(i=0; i<4; i++) { - HuSprGrpScaleSet(lbl_1_bss_19E0[i], scale, scale); - } - HuPrcVSleep(); - } - for(i=0; i<4; i++) { - HuSprGrpScaleSet(lbl_1_bss_19E0[i], 1.0f, 1.0f); - } + s16 i; + s16 time; + s16 delay; + s16 gains[5]; + Vec pos_3d; + Vec pos_2d; + fn_1_423C(gains); + gains[lbl_1_bss_172] += gains[4]; + for (i = 0; i < 4; i++) { + fn_1_8338(lbl_1_bss_19E0[i], gains[lbl_1_bss_19F0[i]]); + pos_3d.x = lbl_1_data_7F0[i].x; + if (gains[lbl_1_bss_19F0[i]]) { + pos_3d.y = lbl_1_data_7F0[lbl_1_bss_19E8[i]].y + lbl_1_data_860[GWPlayerCfg[lbl_1_bss_19F0[i]].character]; + } + else { + pos_3d.y = lbl_1_data_7F0[lbl_1_bss_19E8[i]].y + lbl_1_data_880[GWPlayerCfg[lbl_1_bss_19F0[i]].character]; + } + pos_3d.z = 0; + Hu3D3Dto2D(&pos_3d, 1, &pos_2d); + HuSprGrpPosSet(lbl_1_bss_19E0[i], pos_2d.x, pos_2d.y); + } + delay = (lbl_1_bss_174) ? 3 : 10; + for (time = 0; time <= delay; time++) { + float scale = sin(M_PI * ((90.0 / delay) * time) / 180.0); + for (i = 0; i < 4; i++) { + HuSprGrpScaleSet(lbl_1_bss_19E0[i], scale, scale); + } + HuPrcVSleep(); + } + for (i = 0; i < 4; i++) { + HuSprGrpScaleSet(lbl_1_bss_19E0[i], 1.0f, 1.0f); + } } void fn_1_8338(s16 group, s16 value) { - s16 digit; - s16 digit_value; + s16 digit; + s16 digit_value; - digit = 2; - digit_value = value/100; - if(digit_value != 0) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; - } - value -= digit_value*100; - digit_value = value/10; - if(digit_value != 0 || digit == 3) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; - } - value -= digit_value*10; - HuSprBankSet(group, digit, value); - HuSprAttrReset(group, digit, 4); - digit++; - for(digit_value=digit; digit_value<5; digit_value++) { - HuSprAttrSet(group, digit_value, 4); - } + digit = 2; + digit_value = value / 100; + if (digit_value != 0) { + HuSprBankSet(group, digit, digit_value); + HuSprAttrReset(group, digit, 4); + digit++; + } + value -= digit_value * 100; + digit_value = value / 10; + if (digit_value != 0 || digit == 3) { + HuSprBankSet(group, digit, digit_value); + HuSprAttrReset(group, digit, 4); + digit++; + } + value -= digit_value * 10; + HuSprBankSet(group, digit, value); + HuSprAttrReset(group, digit, 4); + digit++; + for (digit_value = digit; digit_value < 5; digit_value++) { + HuSprAttrSet(group, digit_value, 4); + } } void fn_1_8484(void) { - s16 i; - s16 j; - for(i=0; i<4; i++) { - lbl_1_bss_19E8[i] = GWPlayerCoinWinGet(i); - lbl_1_bss_19F0[i] = i; - } - for(j=1; j<4; j++) { - for(i=0; i<4-j; i++) { - if(lbl_1_bss_19E8[i] > lbl_1_bss_19E8[i+1]) { - s16 temp; - temp = lbl_1_bss_19E8[i]; - lbl_1_bss_19E8[i] = lbl_1_bss_19E8[i+1]; - lbl_1_bss_19E8[i+1] = temp; - temp = lbl_1_bss_19F0[i]; - lbl_1_bss_19F0[i] = lbl_1_bss_19F0[i+1]; - lbl_1_bss_19F0[i+1] = temp; - } - } - } + s16 i; + s16 j; + for (i = 0; i < 4; i++) { + lbl_1_bss_19E8[i] = GWPlayerCoinWinGet(i); + lbl_1_bss_19F0[i] = i; + } + for (j = 1; j < 4; j++) { + for (i = 0; i < 4 - j; i++) { + if (lbl_1_bss_19E8[i] > lbl_1_bss_19E8[i + 1]) { + s16 temp; + temp = lbl_1_bss_19E8[i]; + lbl_1_bss_19E8[i] = lbl_1_bss_19E8[i + 1]; + lbl_1_bss_19E8[i + 1] = temp; + temp = lbl_1_bss_19F0[i]; + lbl_1_bss_19F0[i] = lbl_1_bss_19F0[i + 1]; + lbl_1_bss_19F0[i + 1] = temp; + } + } + } } void fn_1_8998(void); void fn_1_8658(void) { - s16 i; - Process *process = HuPrcCurrentGet(); - for(i=0; i<180; i++) { - lbl_1_bss_194[i].unk0 = -1; - } - HuPrcChildCreate(fn_1_8998, 100, 8192, 0, process); + s16 i; + Process *process = HuPrcCurrentGet(); + for (i = 0; i < 180; i++) { + lbl_1_bss_194[i].unk0 = -1; + } + HuPrcChildCreate(fn_1_8998, 100, 8192, 0, process); } void fn_1_86DC(s16 player) { - s16 i; - for(i=0; i<180; i++) { - if(lbl_1_bss_194[i].unk0 == -1) { - break; - } - } - if(i == 180) { - return; - } - lbl_1_bss_194[i].unk0 = player; - lbl_1_bss_194[i].unk4.x = lbl_1_data_7F0[player].x; - lbl_1_bss_194[i].unk4.y = 610.0f; - lbl_1_bss_194[i].unk4.z = 0.0f; - lbl_1_bss_194[i].unk2 = lbl_1_bss_19E8[player]; - lbl_1_bss_194[i].unk10.x = frandmod(20)-10.0f; - lbl_1_bss_194[i].unk10.y = frandmod(20)-10.0f; - lbl_1_bss_194[i].unk10.z = 0; - lbl_1_bss_194[i].unk1C = 10.0f; - Hu3DModelAttrReset(lbl_1_bss_1828[i], 1); - Hu3DModelPosSet(lbl_1_bss_1828[i], 0, 100, 0); - Hu3DModelRotSet(lbl_1_bss_1828[i], 0, 0, 0); + s16 i; + for (i = 0; i < 180; i++) { + if (lbl_1_bss_194[i].unk0 == -1) { + break; + } + } + if (i == 180) { + return; + } + lbl_1_bss_194[i].unk0 = player; + lbl_1_bss_194[i].unk4.x = lbl_1_data_7F0[player].x; + lbl_1_bss_194[i].unk4.y = 610.0f; + lbl_1_bss_194[i].unk4.z = 0.0f; + lbl_1_bss_194[i].unk2 = lbl_1_bss_19E8[player]; + lbl_1_bss_194[i].unk10.x = frandmod(20) - 10.0f; + lbl_1_bss_194[i].unk10.y = frandmod(20) - 10.0f; + lbl_1_bss_194[i].unk10.z = 0; + lbl_1_bss_194[i].unk1C = 10.0f; + Hu3DModelAttrReset(lbl_1_bss_1828[i], 1); + Hu3DModelPosSet(lbl_1_bss_1828[i], 0, 100, 0); + Hu3DModelRotSet(lbl_1_bss_1828[i], 0, 0, 0); } void fn_1_8998(void) { - s16 i; - ModelData *model_ptr; - s16 player; - while(1) { - for(i=0; i<180; i++) { - if(lbl_1_bss_194[i].unk0 == -1) { - continue; - } - player = lbl_1_bss_194[i].unk0; - model_ptr = &Hu3DData[lbl_1_bss_1828[i]]; - model_ptr->pos = lbl_1_bss_194[i].unk4; - model_ptr->rot.x += lbl_1_bss_194[i].unk10.x; - model_ptr->rot.y += lbl_1_bss_194[i].unk10.y; - lbl_1_bss_194[i].unk4.y -= lbl_1_bss_194[i].unk1C; - lbl_1_bss_194[i].unk1C += 0.2f; - if(lbl_1_bss_194[i].unk4.y < ((3-lbl_1_bss_194[i].unk2)*100)+lbl_1_data_840[GWPlayerCfg[lbl_1_bss_19F0[player]].character]) { - Vec pos; - pos.x = lbl_1_data_7F0[player].x; - pos.y = ((3-lbl_1_bss_194[i].unk2)*100)+lbl_1_data_840[GWPlayerCfg[lbl_1_bss_19F0[player]].character]; - pos.z = 0.0f; - CharModelCoinEffectCreate(1, &pos); - lbl_1_bss_194[i].unk0 = -1; - HuAudFXPlay(7); - Hu3DModelAttrSet(lbl_1_bss_1828[i], 1); - } - } - HuPrcVSleep(); - } - + s16 i; + ModelData *model_ptr; + s16 player; + while (1) { + for (i = 0; i < 180; i++) { + if (lbl_1_bss_194[i].unk0 == -1) { + continue; + } + player = lbl_1_bss_194[i].unk0; + model_ptr = &Hu3DData[lbl_1_bss_1828[i]]; + model_ptr->pos = lbl_1_bss_194[i].unk4; + model_ptr->rot.x += lbl_1_bss_194[i].unk10.x; + model_ptr->rot.y += lbl_1_bss_194[i].unk10.y; + lbl_1_bss_194[i].unk4.y -= lbl_1_bss_194[i].unk1C; + lbl_1_bss_194[i].unk1C += 0.2f; + if (lbl_1_bss_194[i].unk4.y < ((3 - lbl_1_bss_194[i].unk2) * 100) + lbl_1_data_840[GWPlayerCfg[lbl_1_bss_19F0[player]].character]) { + Vec pos; + pos.x = lbl_1_data_7F0[player].x; + pos.y = ((3 - lbl_1_bss_194[i].unk2) * 100) + lbl_1_data_840[GWPlayerCfg[lbl_1_bss_19F0[player]].character]; + pos.z = 0.0f; + CharModelCoinEffectCreate(1, &pos); + lbl_1_bss_194[i].unk0 = -1; + HuAudFXPlay(7); + Hu3DModelAttrSet(lbl_1_bss_1828[i], 1); + } + } + HuPrcVSleep(); + } } void fn_1_8CB8(struct model_data *model, Mtx matrix) { - s32 sp8 = 0; - GXTexObj tex; - Mtx final; - Mtx inv_camera; - Mtx shadow; - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXInitTexObj(&tex, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_TF_I8, GX_CLAMP, GX_CLAMP, GX_FALSE); - GXInitTexObjLOD(&tex, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + s32 sp8 = 0; + GXTexObj tex; + Mtx final; + Mtx inv_camera; + Mtx shadow; + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXInitTexObj(&tex, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_TF_I8, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&tex, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); GXLoadTexObj(&tex, 0); - MTXInverse(Hu3DCameraMtx, inv_camera); - MTXConcat(inv_camera, matrix, final); - MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, shadow); - MTXConcat(shadow, final, final); - GXLoadTexMtxImm(final, GX_TEXMTX9, GX_MTX3x4); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX9); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); - GXSetNumTexGens(1); - GXSetNumTevStages(1); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT0, GX_DF_CLAMP, GX_AF_NONE); - GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); - GXLoadPosMtxImm(matrix, GX_PNMTX0); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32(-500.0f, 0, -500.0f); - GXPosition3f32(500.0f, 0, -500.0f); - GXPosition3f32(500.0f, 0, 500.0f); - GXPosition3f32(-500.0f, 0, 500.0f); - GXEnd(); -} \ No newline at end of file + MTXInverse(Hu3DCameraMtx, inv_camera); + MTXConcat(inv_camera, matrix, final); + MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, shadow); + MTXConcat(shadow, final, final); + GXLoadTexMtxImm(final, GX_TEXMTX9, GX_MTX3x4); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX9); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + GXSetNumTexGens(1); + GXSetNumTevStages(1); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT0, GX_DF_CLAMP, GX_AF_NONE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXLoadPosMtxImm(matrix, GX_PNMTX0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-500.0f, 0, -500.0f); + GXPosition3f32(500.0f, 0, -500.0f); + GXPosition3f32(500.0f, 0, 500.0f); + GXPosition3f32(-500.0f, 0, 500.0f); + GXEnd(); +} diff --git a/src/REL/resultDll/main.c b/src/REL/resultDll/main.c index 00793250..52dcbd6a 100644 --- a/src/REL/resultDll/main.c +++ b/src/REL/resultDll/main.c @@ -1,52 +1,50 @@ #include "dolphin.h" -#include "rel_sqrt_consts.h" -#include "game/object.h" -#include "game/data.h" -#include "game/window.h" -#include "game/hsfman.h" -#include "game/process.h" -#include "game/objsub.h" -#include "game/audio.h" -#include "game/wipe.h" -#include "game/pad.h" #include "game/armem.h" -#include "game/saveload.h" -#include "game/gamework.h" +#include "game/audio.h" #include "game/board/player.h" +#include "game/data.h" #include "game/frand.h" +#include "game/gamework.h" +#include "game/hsfman.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/saveload.h" +#include "game/window.h" +#include "game/wipe.h" +#include "rel_sqrt_consts.h" #include "math.h" #include "REL/resultdll.h" -DataListModel lbl_1_data_0[] = { - { 0x6F0000, 1, 0, -1, -1, { 148, 132, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0001, 1, 0, -1, -1, { 148, 217, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0002, 1, 0, -1, -1, { 148, 302, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0003, 1, 0, -1, -1, { 148, 387, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0006, 0, 0, -1, -1, { 230, 132, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0006, 0, 2, 4, -1, { 230, 217, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0006, 0, 2, 4, -1, { 230, 302, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0006, 0, 2, 4, -1, { 230, 387, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0005, 0, 0, -1, -1, { 410, 132, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0006, 0, 2, 8, -1, { 410, 217, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0006, 0, 2, 8, -1, { 410, 302, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { 0x6F0006, 0, 2, 8, -1, { 410, 387, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } } -}; +DataListModel lbl_1_data_0[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x00), 1, 0, -1, -1, { 148, 132, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x01), 1, 0, -1, -1, { 148, 217, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x02), 1, 0, -1, -1, { 148, 302, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x03), 1, 0, -1, -1, { 148, 387, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x06), 0, 0, -1, -1, { 230, 132, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x06), 0, 2, 4, -1, { 230, 217, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x06), 0, 2, 4, -1, { 230, 302, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x06), 0, 2, 4, -1, { 230, 387, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x05), 0, 0, -1, -1, { 410, 132, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x06), 0, 2, 8, -1, { 410, 217, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x06), 0, 2, 8, -1, { 410, 302, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x06), 0, 2, 8, -1, { 410, 387, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } } }; DataListSprite lbl_1_data_2A4[] = { - { 0x6F0043, 0, 10, 288, 240, { 255, 255, 255, 255 } }, - { 0x6F001D, 0, 10, 288, 60, { 255, 255, 255, 255 } }, - { 0x6F001A, 0, 10, 270, 132, { 255, 255, 255, 255 } }, - { 0x6F001A, 0, 10, 450, 132, { 255, 255, 255, 255 } }, - { 0x6F001A, 0, 10, 270, 217, { 255, 255, 255, 255 } }, - { 0x6F001A, 0, 10, 450, 217, { 255, 255, 255, 255 } }, - { 0x6F001A, 0, 10, 270, 302, { 255, 255, 255, 255 } }, - { 0x6F001A, 0, 10, 450, 302, { 255, 255, 255, 255 } }, - { 0x6F001A, 0, 10, 270, 387, { 255, 255, 255, 255 } }, - { 0x6F001A, 0, 10, 450, 387, { 255, 255, 255, 255 } }, - { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x43), 0, 10, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x1D), 0, 10, 288, 60, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 270, 132, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 450, 132, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 270, 217, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 450, 217, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 270, 302, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 450, 302, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 270, 387, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 450, 387, { 255, 255, 255, 255 } }, + { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, }; s16 lbl_1_data_380 = -1; @@ -88,144 +86,148 @@ void fn_1_2ADC(void); void fn_1_461C(void); void fn_1_47FC(void); - void ObjectSetup(void) { - s32 i; - s32 light; - OSReport("******* RESULT ObjectSetup *********\n"); - lbl_1_bss_180 = omInitObjMan(50, 8192); - lbl_1_bss_17C = GWSystem.mg_next; - - if(mgInfoTbl[lbl_1_bss_17C].ovl == OVL_M430) { - for(i=0; i<4; i++) { - GWPlayerCfg[i].group = GWPlayerCfg[i].group/2; - } - } - HuDataDirClose(mgInfoTbl[lbl_1_bss_17C].data_dir); - if(mgInfoTbl[lbl_1_bss_17C].type == 3 || mgInfoTbl[lbl_1_bss_17C].type == 5 || mgInfoTbl[lbl_1_bss_17C].type == 6 || !_CheckFlag(FLAG_ID_MAKE(1, 0))) { - if(_CheckFlag(0x10000)) { - HuAR_DVDtoARAM(DATADIR_BOARD); - while(HuARDMACheck()); - } - omOvlReturnEx(1, 1); - return; - } - CRot.x = 0.0f; - CRot.y = 0.0f; - CRot.z = 0.0f; - Center.x = 0.0f; - Center.y = 0.0f; - Center.z = 0.0f; - CZoom = 500.0f; - Hu3DCameraCreate(1); - Hu3DCameraPerspectiveSet(1, 20.0f, 20.0f, 15000.0f, 1.2f); - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - light = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); - Hu3DGLightInfinitytSet(light); - lbl_1_bss_174 = 0; - if(mgInfoTbl[GWSystem.mg_next].type != 4) { - HuPrcChildCreate(fn_1_4D8, 100, 12288, 0, lbl_1_bss_180); - - } else { - HuPrcChildCreate(fn_1_6490, 100, 12288, 0, lbl_1_bss_180); - } - lbl_1_bss_184 = omAddObjEx(lbl_1_bss_180, 32730, 0, 0, -1, omOutView); - HuWinInit(1); - lbl_1_bss_172 = frandmod(4); + s32 i; + s32 light; + OSReport("******* RESULT ObjectSetup *********\n"); + lbl_1_bss_180 = omInitObjMan(50, 8192); + lbl_1_bss_17C = GWSystem.mg_next; + + if (mgInfoTbl[lbl_1_bss_17C].ovl == OVL_M430) { + for (i = 0; i < 4; i++) { + GWPlayerCfg[i].group = GWPlayerCfg[i].group / 2; + } + } + HuDataDirClose(mgInfoTbl[lbl_1_bss_17C].data_dir); + if (mgInfoTbl[lbl_1_bss_17C].type == 3 || mgInfoTbl[lbl_1_bss_17C].type == 5 || mgInfoTbl[lbl_1_bss_17C].type == 6 + || !_CheckFlag(FLAG_ID_MAKE(1, 0))) { + if (_CheckFlag(0x10000)) { + HuAR_DVDtoARAM(DATADIR_BOARD); + while (HuARDMACheck()) + ; + } + omOvlReturnEx(1, 1); + return; + } + CRot.x = 0.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + Center.x = 0.0f; + Center.y = 0.0f; + Center.z = 0.0f; + CZoom = 500.0f; + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 20.0f, 20.0f, 15000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + light = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); + Hu3DGLightInfinitytSet(light); + lbl_1_bss_174 = 0; + if (mgInfoTbl[GWSystem.mg_next].type != 4) { + HuPrcChildCreate(fn_1_4D8, 100, 12288, 0, lbl_1_bss_180); + } + else { + HuPrcChildCreate(fn_1_6490, 100, 12288, 0, lbl_1_bss_180); + } + lbl_1_bss_184 = omAddObjEx(lbl_1_bss_180, 32730, 0, 0, -1, omOutView); + HuWinInit(1); + lbl_1_bss_172 = frandmod(4); } void fn_1_4D8(void) { - s16 player; - s16 i; - s16 window; - s16 button; - Process *process_curr = HuPrcCurrentGet(); - HuAudSeqPlay(57); - for(i=player=0; i<4; i++) { - if(GWPlayerCfg[i].iscom) { - player++; - } - } - if(player == 4) { - lbl_1_bss_4 = 1; - } else { - lbl_1_bss_4 = 0; - } - fn_1_B78(); - HuPrcChildCreate(fn_1_888, 100, 8192, 0, lbl_1_bss_180); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); - while(WipeStatGet()) { - HuPrcVSleep(); - } - HuDataDirClose(DATADIR_RESULT); - lbl_1_bss_178 = 0; - HuPrcChildCreate(fn_1_3FD8, 100, 12288, 0, lbl_1_bss_180); - HuPrcSleep(10); - if(!lbl_1_bss_174) { - HuPrcSleep(20); - } - fn_1_1F4C(); - fn_1_40DC(); - fn_1_2ADC(); - window = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); - HuWinMesSpeedSet(window, 0); - HuWinBGTPLvlSet(window, 0); - HuWinPriSet(window, 5); - HuWinAttrSet(window, 0x800); - HuWinMesSet(window, 0x240007); - HuPrcSleep(4); - i=0; - while(1) { - if(!lbl_1_bss_4 || i <= 120) { - for(player=button=0; player<4; player++) { - if(!GWPlayerCfg[player].iscom) { - button |= HuPadBtnDown[GWPlayerCfg[player].pad_idx]; - } - } - if(button & PAD_BUTTON_A) { - HuAudFXPlay(28); - break; - } - HuPrcVSleep(); - i++; - } else { - break; - } - } - HuWinKill(window); - if(GWTeamGet()) { - fn_1_47FC(); - } - while(!lbl_1_bss_178) { - HuPrcVSleep(); - } - HuAudSeqAllFadeOut(1000); - WipeColorSet(255, 255, 255); - if(GWSaveModeGet() != 1 && SLSaveFlagGet()) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - while(WipeStatGet()) { - HuPrcVSleep(); - } - fn_1_461C(); - } else { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - while(WipeStatGet()) { - HuPrcVSleep(); - } - } - omSysPauseEnable(1); - omOvlReturnEx(1, 1); - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } + s16 player; + s16 i; + s16 window; + s16 button; + Process *process_curr = HuPrcCurrentGet(); + HuAudSeqPlay(57); + for (i = player = 0; i < 4; i++) { + if (GWPlayerCfg[i].iscom) { + player++; + } + } + if (player == 4) { + lbl_1_bss_4 = 1; + } + else { + lbl_1_bss_4 = 0; + } + fn_1_B78(); + HuPrcChildCreate(fn_1_888, 100, 8192, 0, lbl_1_bss_180); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuDataDirClose(DATADIR_RESULT); + lbl_1_bss_178 = 0; + HuPrcChildCreate(fn_1_3FD8, 100, 12288, 0, lbl_1_bss_180); + HuPrcSleep(10); + if (!lbl_1_bss_174) { + HuPrcSleep(20); + } + fn_1_1F4C(); + fn_1_40DC(); + fn_1_2ADC(); + window = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); + HuWinMesSpeedSet(window, 0); + HuWinBGTPLvlSet(window, 0); + HuWinPriSet(window, 5); + HuWinAttrSet(window, 0x800); + HuWinMesSet(window, MAKE_MESSID(0x24, 0x07)); + HuPrcSleep(4); + i = 0; + while (1) { + if (!lbl_1_bss_4 || i <= 120) { + for (player = button = 0; player < 4; player++) { + if (!GWPlayerCfg[player].iscom) { + button |= HuPadBtnDown[GWPlayerCfg[player].pad_idx]; + } + } + if (button & PAD_BUTTON_A) { + HuAudFXPlay(28); + break; + } + HuPrcVSleep(); + i++; + } + else { + break; + } + } + HuWinKill(window); + if (GWTeamGet()) { + fn_1_47FC(); + } + while (!lbl_1_bss_178) { + HuPrcVSleep(); + } + HuAudSeqAllFadeOut(1000); + WipeColorSet(255, 255, 255); + if (GWSaveModeGet() != 1 && SLSaveFlagGet()) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + fn_1_461C(); + } + else { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + while (WipeStatGet()) { + HuPrcVSleep(); + } + } + omSysPauseEnable(1); + omOvlReturnEx(1, 1); + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } void fn_1_888(void) { - f32 var_f29; + f32 var_f29; f32 var_f31; f32 var_f30; @@ -237,7 +239,8 @@ void fn_1_888(void) while (1) { if (((HuPadBtn[0] | HuPadBtn[1] | HuPadBtn[2] | HuPadBtn[3]) & 0x100) != 0 || lbl_1_bss_4 != 0) { lbl_1_bss_174 = 1; - } else { + } + else { lbl_1_bss_174 = 0; } Hu3DModelRotSet(lbl_1_bss_1A9C[4], 0.0f, var_f31, 0.0f); @@ -267,54 +270,47 @@ void fn_1_888(void) } s32 lbl_1_data_3A8[] = { - 0x006F0010, - 0x006F0011, - 0x006F0012, - 0x006F0013, - 0x006F0014, - 0x006F0015 + DATA_MAKE_NUM(DATADIR_RESULT, 0x10), + DATA_MAKE_NUM(DATADIR_RESULT, 0x11), + DATA_MAKE_NUM(DATADIR_RESULT, 0x12), + DATA_MAKE_NUM(DATADIR_RESULT, 0x13), + DATA_MAKE_NUM(DATADIR_RESULT, 0x14), + DATA_MAKE_NUM(DATADIR_RESULT, 0x15), }; s32 lbl_1_data_3C0[] = { - 0x006F001F, - 0x006F001E, - 0x006F001D, - 0x006F0021, - 0x006F0020, - 0x006F001F + DATA_MAKE_NUM(DATADIR_RESULT, 0x1F), + DATA_MAKE_NUM(DATADIR_RESULT, 0x1E), + DATA_MAKE_NUM(DATADIR_RESULT, 0x1D), + DATA_MAKE_NUM(DATADIR_RESULT, 0x21), + DATA_MAKE_NUM(DATADIR_RESULT, 0x20), + DATA_MAKE_NUM(DATADIR_RESULT, 0x1F), }; s16 lbl_1_data_3D8[] = { - 320, 132, - 500, 132, - 320, 217, - 500, 217, - 320, 302, - 500, 302, - 320, 387, - 500, 387, + 320, + 132, + 500, + 132, + 320, + 217, + 500, + 217, + 320, + 302, + 500, + 302, + 320, + 387, + 500, + 387, }; -s16 lbl_1_data_3F8[] = { - 74, 132, - 74, 217, - 74, 302, - 74, 387 -}; +s16 lbl_1_data_3F8[] = { 74, 132, 74, 217, 74, 302, 74, 387 }; -Vec lbl_1_data_408[4] = { - { 148, 132, 500 }, - { 148, 217, 500 }, - { 148, 302, 500 }, - { 148, 387, 500 } -}; +Vec lbl_1_data_408[4] = { { 148, 132, 500 }, { 148, 217, 500 }, { 148, 302, 500 }, { 148, 387, 500 } }; -s16 lbl_1_data_438[] = { - 164, 148, - 164, 233, - 164, 318, - 164, 403 -}; +s16 lbl_1_data_438[] = { 164, 148, 164, 233, 164, 318, 164, 403 }; void fn_1_3B50(s16 group, s16 value); void fn_1_3CAC(s16 group, s16 value); @@ -323,977 +319,987 @@ void fn_1_3E08(void); void fn_1_B78(void) { - Vec pos; - s16 sp8[5]; - s16 i; - s16 j; - s16 character; - AnimData *anim; - s16 sprite; - s16 group; - s16 model; - AnimData *anim2; - AnimData *anim3; - AnimData *anim4; - - fn_1_8FF8(lbl_1_data_0); - lbl_1_data_2A4[0].datanum = lbl_1_data_3A8[mgInfoTbl[lbl_1_bss_17C].type]; - lbl_1_data_2A4[1].datanum = lbl_1_data_3C0[mgInfoTbl[lbl_1_bss_17C].type]; - fn_1_927C(lbl_1_data_2A4); - espDrawNoSet(lbl_1_bss_1A1A[0], 127); - anim = HuSprAnimReadFile(0x6F001B); - for(i=0; i<8; i++) { - lbl_1_bss_CE[i] = HuSprGrpCreate(3); - lbl_1_bss_9E[i][0] = HuSprCreate(anim, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_CE[i], 0, lbl_1_bss_9E[i][0]); - HuSprPosSet(lbl_1_bss_CE[i], 0, -28.0f, 0.0f); - lbl_1_bss_9E[i][1] = HuSprCreate(anim, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_CE[i], 1, lbl_1_bss_9E[i][1]); - HuSprPosSet(lbl_1_bss_CE[i], 1, 0.0f, 0.0f); - lbl_1_bss_9E[i][2] = HuSprCreate(anim, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_CE[i], 2, lbl_1_bss_9E[i][2]); - HuSprPosSet(lbl_1_bss_CE[i], 2, 28.0f, 0.0f); - HuSprGrpPosSet(lbl_1_bss_CE[i], lbl_1_data_3D8[(i*2)], lbl_1_data_3D8[(i*2)+1]); - fn_1_3B50(lbl_1_bss_CE[i], 999); - } - fn_1_3E08(); - fn_1_423C(sp8); - anim = HuSprAnimReadFile(0x6F003A); - anim3 = HuSprAnimReadFile(0x6F003B); - anim2 = HuSprAnimReadFile(0x6F003C); - anim4 = HuSprAnimReadFile(0x6F003E); - for(i=0; i<4; i++) { - lbl_1_bss_3A[i] = HuSprGrpCreate(5); - if(sp8[lbl_1_bss_4A[i]] < 100) { - lbl_1_bss_12[i][0] = HuSprCreate(anim, 10, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 0, lbl_1_bss_12[i][0]); - HuSprPosSet(lbl_1_bss_3A[i], 0, 30.0f, -25.0f); - } else { - lbl_1_bss_12[i][0] = HuSprCreate(anim4, 10, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 0, lbl_1_bss_12[i][0]); - HuSprPosSet(lbl_1_bss_3A[i], 0, 40.0f, -21.0f); - } - lbl_1_bss_12[i][1] = HuSprCreate(anim3, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 1, lbl_1_bss_12[i][1]); - HuSprPosSet(lbl_1_bss_3A[i], 1, 12.0f, -25.0f); - lbl_1_bss_12[i][2] = HuSprCreate(anim2, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 2, lbl_1_bss_12[i][2]); - HuSprPosSet(lbl_1_bss_3A[i], 2, 28.0f, -25.0f); - lbl_1_bss_12[i][3] = HuSprCreate(anim2, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 3, lbl_1_bss_12[i][3]); - HuSprPosSet(lbl_1_bss_3A[i], 3, 44.0f, -25.0f); - lbl_1_bss_12[i][4] = HuSprCreate(anim2, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 4, lbl_1_bss_12[i][4]); - HuSprPosSet(lbl_1_bss_3A[i], 4, 60.0f, -25.0f); - HuSprGrpPosSet(lbl_1_bss_3A[i], lbl_1_data_438[(i*2)], lbl_1_data_438[(i*2)+1]); - fn_1_3CAC(lbl_1_bss_3A[i], 9); - HuSprGrpScaleSet(lbl_1_bss_3A[i], 0.0f, 0.0f); - } - for(i=0; i<4; i++) { - character = GWPlayerCfg[i].character; - lbl_1_bss_E4[character][0] = HuSprAnimReadFile(0x6F0022+(character*3)); - lbl_1_bss_E4[character][1] = HuSprAnimReadFile(0x6F0023+(character*3)); - lbl_1_bss_E4[character][2] = HuSprAnimReadFile(0x6F0024+(character*3)); - for(j=0; j<4; j++) { - lbl_1_bss_5C[character][j] = Hu3DModelCreateFile(0x6F0000+j); - Hu3DModelScaleSet(lbl_1_bss_5C[character][j], 1.1f, 1.1f, 1.1f); - Hu3DAnimCreate(lbl_1_bss_E4[character][0], lbl_1_bss_5C[character][j], "ys22"); - Hu3DModelAttrSet(lbl_1_bss_5C[character][j], 1); - } - } - for(i=0; i<4; i++) { - lbl_1_bss_144[i] = HuSprAnimReadFile(0x6F0016+i); - } - lbl_1_bss_52 = HuSprGrpCreate(4); - for(i=0; i<4; i++) { - sprite = HuSprCreate(lbl_1_bss_144[lbl_1_bss_42[i]], i, 0); - HuSprGrpMemberSet(lbl_1_bss_52, i, sprite); - HuSprPosSet(lbl_1_bss_52, i, lbl_1_data_3F8[(i*2)], lbl_1_data_3F8[(i*2)+1]); - fn_1_3B50(lbl_1_bss_CE[(i*2)], GWStarsGet(lbl_1_bss_4A[i])); - fn_1_3B50(lbl_1_bss_CE[(i*2)+1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); - character = GWPlayerCfg[lbl_1_bss_4A[i]].character; - Hu3D2Dto3D(&lbl_1_data_408[i], 1, &pos); - Hu3DModelPosSetV(lbl_1_bss_5C[character][lbl_1_bss_42[i]], &pos); - Hu3DModelAttrReset(lbl_1_bss_5C[character][lbl_1_bss_42[i]], 1); - } - for(i=4; i<=11; i++) { - Hu3D2Dto3D(&lbl_1_data_0[i].pos, 1, &pos); - Hu3DModelPosSetV(lbl_1_bss_1A9C[i], &pos); - Hu3D3Dto2D(&pos, 1, &pos); - } - model = Hu3DModelCreateFile(0x6F0004); - for(i=0; i<4; i++) { - j = Hu3DModelLink(model); - lbl_1_bss_168[i] = j; - pos = lbl_1_data_408[i]; - pos.x += 5.0f; - pos.y += 3.0f; - pos.z += 200.0f; - Hu3D2Dto3D(&pos, 1, &pos); - Hu3DModelPosSetV(j, &pos); - Hu3DModelScaleSet(j, 1.5f, 1.5f, 1.5f); - } - Hu3DModelAttrSet(model, 1); - model = Hu3DModelCreateFile(0x6F0007); - for(i=0; i<8; i++) { - j = Hu3DModelLink(model); - lbl_1_bss_158[i] = j; - pos = lbl_1_data_0[i+4].pos; - pos.x += 5.0f; - pos.y += 3.0f; - pos.z += 200.0f; - Hu3D2Dto3D(&pos, 1, &pos); - Hu3DModelPosSetV(j, &pos); - Hu3DModelScaleSet(j, 1.5f, 1.5f, 1.5f); - } - Hu3DModelAttrSet(model, 1); - lbl_1_bss_E0 = HuSprAnimReadFile(0x6F001C); - lbl_1_bss_9C = HuSprGrpCreate(4); - for(i=0; i<4; i++) { - sprite = HuSprCreate(lbl_1_bss_E0, i, 0); - HuSprGrpMemberSet(lbl_1_bss_9C, i, sprite); - HuSprScaleSet(lbl_1_bss_9C, i, 0.0f, 0.0f); - HuSprPosSet(lbl_1_bss_9C, i, lbl_1_data_408[i].x-4.0f, lbl_1_data_408[i].y-35.0f); - HuSprAttrSet(lbl_1_bss_9C, i, 4); - } - group = HuSprGrpCreate(4); - lbl_1_bss_170 = group; - anim = HuSprAnimReadFile(0x6F003F); - sprite = HuSprCreate(anim, 100, 0); - HuSprGrpMemberSet(group, 0, sprite); - HuSprAttrSet(group, 0, 4); - HuSprDrawNoSet(group, 0, 127); - anim = HuSprAnimReadFile(0x6F0040); - sprite = HuSprCreate(anim, 90, 0); - HuSprGrpMemberSet(group, 1, sprite); - HuSprAttrSet(group, 1, 4); - anim = HuSprAnimReadFile(0x6F0041); - sprite = HuSprCreate(anim, 80, 0); - HuSprGrpMemberSet(group, 2, sprite); - HuSprAttrSet(group, 2, 4); - HuSprDrawNoSet(group, 2, 127); - anim = HuSprAnimReadFile(0x6F0042); - sprite = HuSprCreate(anim, 80, 0); - HuSprGrpMemberSet(group, 3, sprite); - HuSprAttrSet(group, 3, 4); - HuSprDrawNoSet(group, 3, 127); - (void)sprite; + Vec pos; + s16 sp8[5]; + s16 i; + s16 j; + s16 character; + AnimData *anim; + s16 sprite; + s16 group; + s16 model; + AnimData *anim2; + AnimData *anim3; + AnimData *anim4; + + fn_1_8FF8(lbl_1_data_0); + lbl_1_data_2A4[0].datanum = lbl_1_data_3A8[mgInfoTbl[lbl_1_bss_17C].type]; + lbl_1_data_2A4[1].datanum = lbl_1_data_3C0[mgInfoTbl[lbl_1_bss_17C].type]; + fn_1_927C(lbl_1_data_2A4); + espDrawNoSet(lbl_1_bss_1A1A[0], 127); + anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x1B)); + for (i = 0; i < 8; i++) { + lbl_1_bss_CE[i] = HuSprGrpCreate(3); + lbl_1_bss_9E[i][0] = HuSprCreate(anim, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_CE[i], 0, lbl_1_bss_9E[i][0]); + HuSprPosSet(lbl_1_bss_CE[i], 0, -28.0f, 0.0f); + lbl_1_bss_9E[i][1] = HuSprCreate(anim, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_CE[i], 1, lbl_1_bss_9E[i][1]); + HuSprPosSet(lbl_1_bss_CE[i], 1, 0.0f, 0.0f); + lbl_1_bss_9E[i][2] = HuSprCreate(anim, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_CE[i], 2, lbl_1_bss_9E[i][2]); + HuSprPosSet(lbl_1_bss_CE[i], 2, 28.0f, 0.0f); + HuSprGrpPosSet(lbl_1_bss_CE[i], lbl_1_data_3D8[(i * 2)], lbl_1_data_3D8[(i * 2) + 1]); + fn_1_3B50(lbl_1_bss_CE[i], 999); + } + fn_1_3E08(); + fn_1_423C(sp8); + anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3A)); + anim3 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3B)); + anim2 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3C)); + anim4 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3E)); + for (i = 0; i < 4; i++) { + lbl_1_bss_3A[i] = HuSprGrpCreate(5); + if (sp8[lbl_1_bss_4A[i]] < 100) { + lbl_1_bss_12[i][0] = HuSprCreate(anim, 10, 0); + HuSprGrpMemberSet(lbl_1_bss_3A[i], 0, lbl_1_bss_12[i][0]); + HuSprPosSet(lbl_1_bss_3A[i], 0, 30.0f, -25.0f); + } + else { + lbl_1_bss_12[i][0] = HuSprCreate(anim4, 10, 0); + HuSprGrpMemberSet(lbl_1_bss_3A[i], 0, lbl_1_bss_12[i][0]); + HuSprPosSet(lbl_1_bss_3A[i], 0, 40.0f, -21.0f); + } + lbl_1_bss_12[i][1] = HuSprCreate(anim3, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_3A[i], 1, lbl_1_bss_12[i][1]); + HuSprPosSet(lbl_1_bss_3A[i], 1, 12.0f, -25.0f); + lbl_1_bss_12[i][2] = HuSprCreate(anim2, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_3A[i], 2, lbl_1_bss_12[i][2]); + HuSprPosSet(lbl_1_bss_3A[i], 2, 28.0f, -25.0f); + lbl_1_bss_12[i][3] = HuSprCreate(anim2, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_3A[i], 3, lbl_1_bss_12[i][3]); + HuSprPosSet(lbl_1_bss_3A[i], 3, 44.0f, -25.0f); + lbl_1_bss_12[i][4] = HuSprCreate(anim2, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_3A[i], 4, lbl_1_bss_12[i][4]); + HuSprPosSet(lbl_1_bss_3A[i], 4, 60.0f, -25.0f); + HuSprGrpPosSet(lbl_1_bss_3A[i], lbl_1_data_438[(i * 2)], lbl_1_data_438[(i * 2) + 1]); + fn_1_3CAC(lbl_1_bss_3A[i], 9); + HuSprGrpScaleSet(lbl_1_bss_3A[i], 0.0f, 0.0f); + } + for (i = 0; i < 4; i++) { + character = GWPlayerCfg[i].character; + lbl_1_bss_E4[character][0] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x22) + (character * 3)); + lbl_1_bss_E4[character][1] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x23) + (character * 3)); + lbl_1_bss_E4[character][2] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x24) + (character * 3)); + for (j = 0; j < 4; j++) { + lbl_1_bss_5C[character][j] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x00) + j); + Hu3DModelScaleSet(lbl_1_bss_5C[character][j], 1.1f, 1.1f, 1.1f); + Hu3DAnimCreate(lbl_1_bss_E4[character][0], lbl_1_bss_5C[character][j], "ys22"); + Hu3DModelAttrSet(lbl_1_bss_5C[character][j], 1); + } + } + for (i = 0; i < 4; i++) { + lbl_1_bss_144[i] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x16) + i); + } + lbl_1_bss_52 = HuSprGrpCreate(4); + for (i = 0; i < 4; i++) { + sprite = HuSprCreate(lbl_1_bss_144[lbl_1_bss_42[i]], i, 0); + HuSprGrpMemberSet(lbl_1_bss_52, i, sprite); + HuSprPosSet(lbl_1_bss_52, i, lbl_1_data_3F8[(i * 2)], lbl_1_data_3F8[(i * 2) + 1]); + fn_1_3B50(lbl_1_bss_CE[(i * 2)], GWStarsGet(lbl_1_bss_4A[i])); + fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); + character = GWPlayerCfg[lbl_1_bss_4A[i]].character; + Hu3D2Dto3D(&lbl_1_data_408[i], 1, &pos); + Hu3DModelPosSetV(lbl_1_bss_5C[character][lbl_1_bss_42[i]], &pos); + Hu3DModelAttrReset(lbl_1_bss_5C[character][lbl_1_bss_42[i]], 1); + } + for (i = 4; i <= 11; i++) { + Hu3D2Dto3D(&lbl_1_data_0[i].pos, 1, &pos); + Hu3DModelPosSetV(lbl_1_bss_1A9C[i], &pos); + Hu3D3Dto2D(&pos, 1, &pos); + } + model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x04)); + for (i = 0; i < 4; i++) { + j = Hu3DModelLink(model); + lbl_1_bss_168[i] = j; + pos = lbl_1_data_408[i]; + pos.x += 5.0f; + pos.y += 3.0f; + pos.z += 200.0f; + Hu3D2Dto3D(&pos, 1, &pos); + Hu3DModelPosSetV(j, &pos); + Hu3DModelScaleSet(j, 1.5f, 1.5f, 1.5f); + } + Hu3DModelAttrSet(model, 1); + model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x07)); + for (i = 0; i < 8; i++) { + j = Hu3DModelLink(model); + lbl_1_bss_158[i] = j; + pos = lbl_1_data_0[i + 4].pos; + pos.x += 5.0f; + pos.y += 3.0f; + pos.z += 200.0f; + Hu3D2Dto3D(&pos, 1, &pos); + Hu3DModelPosSetV(j, &pos); + Hu3DModelScaleSet(j, 1.5f, 1.5f, 1.5f); + } + Hu3DModelAttrSet(model, 1); + lbl_1_bss_E0 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x1C)); + lbl_1_bss_9C = HuSprGrpCreate(4); + for (i = 0; i < 4; i++) { + sprite = HuSprCreate(lbl_1_bss_E0, i, 0); + HuSprGrpMemberSet(lbl_1_bss_9C, i, sprite); + HuSprScaleSet(lbl_1_bss_9C, i, 0.0f, 0.0f); + HuSprPosSet(lbl_1_bss_9C, i, lbl_1_data_408[i].x - 4.0f, lbl_1_data_408[i].y - 35.0f); + HuSprAttrSet(lbl_1_bss_9C, i, 4); + } + group = HuSprGrpCreate(4); + lbl_1_bss_170 = group; + anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3F)); + sprite = HuSprCreate(anim, 100, 0); + HuSprGrpMemberSet(group, 0, sprite); + HuSprAttrSet(group, 0, 4); + HuSprDrawNoSet(group, 0, 127); + anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x40)); + sprite = HuSprCreate(anim, 90, 0); + HuSprGrpMemberSet(group, 1, sprite); + HuSprAttrSet(group, 1, 4); + anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x41)); + sprite = HuSprCreate(anim, 80, 0); + HuSprGrpMemberSet(group, 2, sprite); + HuSprAttrSet(group, 2, 4); + HuSprDrawNoSet(group, 2, 127); + anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x42)); + sprite = HuSprCreate(anim, 80, 0); + HuSprGrpMemberSet(group, 3, sprite); + HuSprAttrSet(group, 3, 4); + HuSprDrawNoSet(group, 3, 127); + (void)sprite; } void fn_1_1F4C(void) { - float temp_f31; - float temp_f30; - - s16 i; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - s32 status; - s32 temp_r26; - s32 sp24[4]; - float sp14[4]; - s16 sp8[5]; - - - - fn_1_423C(sp8); - for(i=0; i<4; i++) { - fn_1_3CAC(lbl_1_bss_3A[i], sp8[lbl_1_bss_4A[i]]); - sp24[i] = 0; - } - temp_r29 = (lbl_1_bss_174) ? 3 : 10; - for(temp_r30=0; temp_r30<=temp_r29; temp_r30++) { - temp_f31 = sin(M_PI*((90.0/temp_r29)*temp_r30)/180.0); - for(i=0; i<4; i++) { - HuSprGrpScaleSet(lbl_1_bss_3A[i], temp_f31, temp_f31); - } - HuPrcVSleep(); - } - for(i=0; i<4; i++) { - HuSprGrpScaleSet(lbl_1_bss_3A[i], 1.0f, 1.0f); - } - for(temp_r28=0; temp_r28<=14;) { - for(i=0; i<4; i++) { - if(GWPlayerCoinWinGet(lbl_1_bss_4A[i]) >= 10) { - HuSprAttrReset(lbl_1_bss_9C, i, 4); - } - HuSprScaleSet(lbl_1_bss_9C, i, sin(M_PI*((120.0f/14.0f)*temp_r28)/180.0)*(0.8*(1.0/sin((M_PI*2)/3))), 0.8*(sin(M_PI*((120.0f/14.0f)*temp_r28)/180.0)*(1.0/sin((M_PI*2)/3)))); - } - temp_r28 += (lbl_1_bss_174) ? 2 : 1; - HuPrcVSleep(); - } - if(!lbl_1_bss_174) { - HuPrcSleep(15); - } - for(i=0; i<4; i++) { - sp14[i] = 0.0f; - } - for(i=temp_r30=0; i<4; i++) { - temp_r30 += sp8[i]; - } - status = -1; - if(temp_r30) { - status = HuAudFXPlay(23); - } - temp_r30 = 0; - temp_f30 = temp_r30; - temp_r30 = 0; - while(1) { - temp_r26 = 0 ; - temp_f30 += (lbl_1_bss_174) ? 1.0f : 0.2f; - temp_r30 = temp_f30; - for(i=temp_r29=0; i<4; i++) { - if(sp8[lbl_1_bss_4A[i]]-temp_r30 <= 0) { - if(!sp24[lbl_1_bss_4A[i]] && sp8[lbl_1_bss_4A[i]] != 0) { - sp24[lbl_1_bss_4A[i]] = 1; - if(!temp_r26) { - HuAudFXPlay(9); - temp_r26 = 1; - } - } - - temp_r29++; - fn_1_3CAC(lbl_1_bss_3A[i], 0); - fn_1_3B50(lbl_1_bss_CE[(i*2)+1], sp8[lbl_1_bss_4A[i]]+BoardPlayerCoinsGet(lbl_1_bss_4A[i])); - if(!sp14[i]) { - continue; - } - sp14[i] += 20.0f; - if(sp14[i] >= 360.0f) { - sp14[i] -= 360.0f; - } - Hu3DModelRotSet(lbl_1_bss_1A9C[i+8], 0.0f, sp14[i], 0.0f); - } else { - fn_1_3CAC(lbl_1_bss_3A[i], sp8[lbl_1_bss_4A[i]]-temp_r30); - fn_1_3B50(lbl_1_bss_CE[(i*2)+1], (s32)temp_r30+BoardPlayerCoinsGet(lbl_1_bss_4A[i])); - sp14[i] += 20.0f; - if(sp14[i] >= 360.0f) { - sp14[i] -= 360.0f; - } - Hu3DModelRotSet(lbl_1_bss_1A9C[i+8], 0.0f, sp14[i], 0.0f); - } - } - if(temp_r29 == 4) { - break; - } - HuPrcVSleep(); - } - if(status != -1) { - HuAudFXStop(status); - } - temp_r29 = 0; - while(1) { - for(i=temp_r30=0; i<4; i++) { - if(sp14[i]) { - sp14[i] += 20.0f; - if(sp14[i] >= 360.0f) { - sp14[i] -= 360.0f; - } - Hu3DModelRotSet(lbl_1_bss_1A9C[i+8], 0.0f, sp14[i], 0.0f); - } else { - temp_r30++; - } - } - if(temp_r30 >= 4) { - break; - } - HuPrcVSleep(); - temp_r29++; - } - if(temp_r29 < 30) { - HuPrcSleep(30-temp_r29); - } - temp_r29 = (lbl_1_bss_174) ? 3 : 10; - for(temp_r30=0; temp_r30<=temp_r29; temp_r30++) { - temp_f31 = cos(M_PI*((90.0/temp_r29)*temp_r30)/180.0); - for(i=0; i<4; i++) { - HuSprGrpScaleSet(lbl_1_bss_3A[i], temp_f31, temp_f31); - } - HuPrcVSleep(); - } - for(i=0; i<4; i++) { - HuSprGrpScaleSet(lbl_1_bss_3A[i], 0.0f, 0.0f); - } + float temp_f31; + float temp_f30; + + s16 i; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s32 status; + s32 temp_r26; + s32 sp24[4]; + float sp14[4]; + s16 sp8[5]; + + fn_1_423C(sp8); + for (i = 0; i < 4; i++) { + fn_1_3CAC(lbl_1_bss_3A[i], sp8[lbl_1_bss_4A[i]]); + sp24[i] = 0; + } + temp_r29 = (lbl_1_bss_174) ? 3 : 10; + for (temp_r30 = 0; temp_r30 <= temp_r29; temp_r30++) { + temp_f31 = sin(M_PI * ((90.0 / temp_r29) * temp_r30) / 180.0); + for (i = 0; i < 4; i++) { + HuSprGrpScaleSet(lbl_1_bss_3A[i], temp_f31, temp_f31); + } + HuPrcVSleep(); + } + for (i = 0; i < 4; i++) { + HuSprGrpScaleSet(lbl_1_bss_3A[i], 1.0f, 1.0f); + } + for (temp_r28 = 0; temp_r28 <= 14;) { + for (i = 0; i < 4; i++) { + if (GWPlayerCoinWinGet(lbl_1_bss_4A[i]) >= 10) { + HuSprAttrReset(lbl_1_bss_9C, i, 4); + } + HuSprScaleSet(lbl_1_bss_9C, i, sin(M_PI * ((120.0f / 14.0f) * temp_r28) / 180.0) * (0.8 * (1.0 / sin((M_PI * 2) / 3))), + 0.8 * (sin(M_PI * ((120.0f / 14.0f) * temp_r28) / 180.0) * (1.0 / sin((M_PI * 2) / 3)))); + } + temp_r28 += (lbl_1_bss_174) ? 2 : 1; + HuPrcVSleep(); + } + if (!lbl_1_bss_174) { + HuPrcSleep(15); + } + for (i = 0; i < 4; i++) { + sp14[i] = 0.0f; + } + for (i = temp_r30 = 0; i < 4; i++) { + temp_r30 += sp8[i]; + } + status = -1; + if (temp_r30) { + status = HuAudFXPlay(23); + } + temp_r30 = 0; + temp_f30 = temp_r30; + temp_r30 = 0; + while (1) { + temp_r26 = 0; + temp_f30 += (lbl_1_bss_174) ? 1.0f : 0.2f; + temp_r30 = temp_f30; + for (i = temp_r29 = 0; i < 4; i++) { + if (sp8[lbl_1_bss_4A[i]] - temp_r30 <= 0) { + if (!sp24[lbl_1_bss_4A[i]] && sp8[lbl_1_bss_4A[i]] != 0) { + sp24[lbl_1_bss_4A[i]] = 1; + if (!temp_r26) { + HuAudFXPlay(9); + temp_r26 = 1; + } + } + + temp_r29++; + fn_1_3CAC(lbl_1_bss_3A[i], 0); + fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], sp8[lbl_1_bss_4A[i]] + BoardPlayerCoinsGet(lbl_1_bss_4A[i])); + if (!sp14[i]) { + continue; + } + sp14[i] += 20.0f; + if (sp14[i] >= 360.0f) { + sp14[i] -= 360.0f; + } + Hu3DModelRotSet(lbl_1_bss_1A9C[i + 8], 0.0f, sp14[i], 0.0f); + } + else { + fn_1_3CAC(lbl_1_bss_3A[i], sp8[lbl_1_bss_4A[i]] - temp_r30); + fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], (s32)temp_r30 + BoardPlayerCoinsGet(lbl_1_bss_4A[i])); + sp14[i] += 20.0f; + if (sp14[i] >= 360.0f) { + sp14[i] -= 360.0f; + } + Hu3DModelRotSet(lbl_1_bss_1A9C[i + 8], 0.0f, sp14[i], 0.0f); + } + } + if (temp_r29 == 4) { + break; + } + HuPrcVSleep(); + } + if (status != -1) { + HuAudFXStop(status); + } + temp_r29 = 0; + while (1) { + for (i = temp_r30 = 0; i < 4; i++) { + if (sp14[i]) { + sp14[i] += 20.0f; + if (sp14[i] >= 360.0f) { + sp14[i] -= 360.0f; + } + Hu3DModelRotSet(lbl_1_bss_1A9C[i + 8], 0.0f, sp14[i], 0.0f); + } + else { + temp_r30++; + } + } + if (temp_r30 >= 4) { + break; + } + HuPrcVSleep(); + temp_r29++; + } + if (temp_r29 < 30) { + HuPrcSleep(30 - temp_r29); + } + temp_r29 = (lbl_1_bss_174) ? 3 : 10; + for (temp_r30 = 0; temp_r30 <= temp_r29; temp_r30++) { + temp_f31 = cos(M_PI * ((90.0 / temp_r29) * temp_r30) / 180.0); + for (i = 0; i < 4; i++) { + HuSprGrpScaleSet(lbl_1_bss_3A[i], temp_f31, temp_f31); + } + HuPrcVSleep(); + } + for (i = 0; i < 4; i++) { + HuSprGrpScaleSet(lbl_1_bss_3A[i], 0.0f, 0.0f); + } } void fn_1_2ADC(void) { - float temp_f31; - s16 i; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - s16 temp_r24; - float sp54[4]; - Vec sp48; - s32 sp38[4] = { -1, -1, -1, -1 }; - s16 sp30[4]; - s16 sp28[4]; - s16 sp20[4]; - s16 sp18[4]; - s16 sp10[4]; - s16 sp8[4]; - for(i=0; i<4; i++) { - sp30[i] = sp28[i] = lbl_1_bss_4A[i]; - sp18[i] = sp20[i] = lbl_1_bss_42[i]; - sp10[i] = BoardPlayerCoinsGet(lbl_1_bss_4A[i]); - sp8[i] = GWStarsGet(lbl_1_bss_4A[i]); - } - fn_1_3E08(); - for(i=0; i<4; i++) { - if(sp30[i] != lbl_1_bss_4A[i] || sp18[i] != lbl_1_bss_42[i]) { - break; - } - } - if(i == 4) { - lbl_1_bss_0 = 1; - return; - } - lbl_1_data_380 = HuSprGrpCreate(4); - for(i=0; i<4; i++) { - temp_r24 = HuSprCreate(lbl_1_bss_144[lbl_1_bss_42[i]], i, 0); - HuSprGrpMemberSet(lbl_1_data_380, i, temp_r24); - HuSprPosSet(lbl_1_data_380, i, lbl_1_data_3F8[(i*2)], lbl_1_data_3F8[(i*2)+1]); - HuSprAttrSet(lbl_1_data_380, i, 4); - temp_r30 = GWPlayerCfg[lbl_1_bss_4A[i]].character; - lbl_1_bss_54[i] = lbl_1_bss_A[i] = Hu3DModelLink(lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]]); - Hu3D2Dto3D(&lbl_1_data_408[i], 1, &sp48); - Hu3DModelPosSetV(lbl_1_bss_A[i], &sp48); - if(sp30[i] == lbl_1_bss_4A[i] && sp18[i] == lbl_1_bss_42[i]) { - Hu3DModelAttrSet(lbl_1_bss_5C[temp_r30][sp18[i]], 1); - Hu3DModelAttrReset(lbl_1_bss_A[i], 1); - Hu3DModelScaleSet(lbl_1_bss_A[i], 1.1f, 1.1f, 1.1f); - } else { - Hu3DModelAttrSet(lbl_1_bss_A[i], 1); - } - } - for(i=0; i<4; i++) { - sp54[i] = 0; - } - temp_r25 = 0; - temp_r28 = 0; - while(1) { - for(temp_r26=i=0; i<4; i++) { - if(sp30[i] == lbl_1_bss_4A[i] && sp18[i] == lbl_1_bss_42[i]) { - temp_r26++; - fn_1_3B50(lbl_1_bss_CE[(i*2)], GWStarsGet(lbl_1_bss_4A[i])); - fn_1_3B50(lbl_1_bss_CE[(i*2)+1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); - } else { - if(temp_r28 > (i*20)) { - temp_r27 = temp_r28-(i*20); - if(temp_r27 <= 20) { - if(temp_r27 <= 10) { - HuSprScaleSet(lbl_1_bss_52, i, 1.0f, cos(M_PI*(9.0f*temp_r27)/180.0)); - } else { - HuSprAttrSet(lbl_1_bss_52, i, 4); - HuSprAttrReset(lbl_1_data_380, i, 4); - HuSprScaleSet(lbl_1_data_380, i, 1.0f, sin(M_PI*(9.0f*(temp_r27-10))/180.0)); - } - temp_f31 = temp_r27/20.0f; - temp_r29 = GWStarsGet(sp28[i])+(temp_f31*(GWStarsGet(lbl_1_bss_4A[i])-GWStarsGet(sp28[i]))); - fn_1_3B50(lbl_1_bss_CE[(i*2)], temp_r29); - temp_r29 = BoardPlayerCoinsGet(sp28[i])+(temp_f31*(BoardPlayerCoinsGet(lbl_1_bss_4A[i])-BoardPlayerCoinsGet(sp28[i]))); - fn_1_3B50(lbl_1_bss_CE[(i*2)+1], temp_r29); - } else { - temp_r30 = GWPlayerCfg[sp28[i]].character; - Hu3DModelAttrSet(lbl_1_bss_5C[temp_r30][sp18[i]], 1); - temp_r30 = GWPlayerCfg[lbl_1_bss_4A[i]].character; - Hu3DModelAttrReset(lbl_1_bss_A[i], 1); - Hu3DModelScaleSet(lbl_1_bss_A[i], 1.1f, 1.1f, 1.1f); - fn_1_3B50(lbl_1_bss_CE[(i*2)], GWStarsGet(lbl_1_bss_4A[i])); - fn_1_3B50(lbl_1_bss_CE[(i*2)+1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); - for(temp_r29=0; temp_r29<4; temp_r29++) { - if(sp28[temp_r29] == lbl_1_bss_4A[i]) { - break; - } - } - if(lbl_1_bss_42[i] != sp20[temp_r29]) { - if(lbl_1_bss_42[i] < sp20[temp_r29]) { - Hu3DAnimCreate(lbl_1_bss_E4[temp_r30][1], lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]], "ys22"); - } else { - Hu3DAnimCreate(lbl_1_bss_E4[temp_r30][2], lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]], "ys22"); - } - if(lbl_1_bss_42[i] == 0) { - sp38[lbl_1_bss_4A[i]] = HuAudPlayerVoicePlay(lbl_1_bss_4A[i], 293); - } - if(!temp_r25) { - temp_r25 = 1; - HuAudFXPlay(27); - } - } - sp30[i] = lbl_1_bss_4A[i]; - sp18[i] = lbl_1_bss_42[i]; - } - } - sp54[i] += 20.0f; - if(sp54[i] >= 360.0f) { - sp54[i] -= 360.0f; - } - temp_r30 = GWPlayerCfg[sp28[i]].character; - Hu3DModelRotSet(lbl_1_bss_5C[temp_r30][sp18[i]], sp54[i]/(4-i), sp54[i], 0.0f); - } - } - if(temp_r28 <= 10) { - for(i=0; i<4; i++) { - HuSprScaleSet(lbl_1_bss_9C, i, cos(M_PI*(9.0f*temp_r28)/180.0), cos(M_PI*(9.0f*temp_r28)/180.0)); - } - } else { - for(i=0; i<4; i++) { - HuSprScaleSet(lbl_1_bss_9C, i, 0.0f, 0.0f); - } - } - if(temp_r26 >= 4) { - break; - } - if(lbl_1_bss_174) { - temp_r28 += 2; - } - HuPrcVSleep(); - temp_r28++; - } - for(i=0; i<4; i++) { - HuSprScaleSet(lbl_1_bss_9C, i, 0.0f, 0.0f); - } - lbl_1_bss_0 = 1; + float temp_f31; + s16 i; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + float sp54[4]; + Vec sp48; + s32 sp38[4] = { -1, -1, -1, -1 }; + s16 sp30[4]; + s16 sp28[4]; + s16 sp20[4]; + s16 sp18[4]; + s16 sp10[4]; + s16 sp8[4]; + for (i = 0; i < 4; i++) { + sp30[i] = sp28[i] = lbl_1_bss_4A[i]; + sp18[i] = sp20[i] = lbl_1_bss_42[i]; + sp10[i] = BoardPlayerCoinsGet(lbl_1_bss_4A[i]); + sp8[i] = GWStarsGet(lbl_1_bss_4A[i]); + } + fn_1_3E08(); + for (i = 0; i < 4; i++) { + if (sp30[i] != lbl_1_bss_4A[i] || sp18[i] != lbl_1_bss_42[i]) { + break; + } + } + if (i == 4) { + lbl_1_bss_0 = 1; + return; + } + lbl_1_data_380 = HuSprGrpCreate(4); + for (i = 0; i < 4; i++) { + temp_r24 = HuSprCreate(lbl_1_bss_144[lbl_1_bss_42[i]], i, 0); + HuSprGrpMemberSet(lbl_1_data_380, i, temp_r24); + HuSprPosSet(lbl_1_data_380, i, lbl_1_data_3F8[(i * 2)], lbl_1_data_3F8[(i * 2) + 1]); + HuSprAttrSet(lbl_1_data_380, i, 4); + temp_r30 = GWPlayerCfg[lbl_1_bss_4A[i]].character; + lbl_1_bss_54[i] = lbl_1_bss_A[i] = Hu3DModelLink(lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]]); + Hu3D2Dto3D(&lbl_1_data_408[i], 1, &sp48); + Hu3DModelPosSetV(lbl_1_bss_A[i], &sp48); + if (sp30[i] == lbl_1_bss_4A[i] && sp18[i] == lbl_1_bss_42[i]) { + Hu3DModelAttrSet(lbl_1_bss_5C[temp_r30][sp18[i]], 1); + Hu3DModelAttrReset(lbl_1_bss_A[i], 1); + Hu3DModelScaleSet(lbl_1_bss_A[i], 1.1f, 1.1f, 1.1f); + } + else { + Hu3DModelAttrSet(lbl_1_bss_A[i], 1); + } + } + for (i = 0; i < 4; i++) { + sp54[i] = 0; + } + temp_r25 = 0; + temp_r28 = 0; + while (1) { + for (temp_r26 = i = 0; i < 4; i++) { + if (sp30[i] == lbl_1_bss_4A[i] && sp18[i] == lbl_1_bss_42[i]) { + temp_r26++; + fn_1_3B50(lbl_1_bss_CE[(i * 2)], GWStarsGet(lbl_1_bss_4A[i])); + fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); + } + else { + if (temp_r28 > (i * 20)) { + temp_r27 = temp_r28 - (i * 20); + if (temp_r27 <= 20) { + if (temp_r27 <= 10) { + HuSprScaleSet(lbl_1_bss_52, i, 1.0f, cos(M_PI * (9.0f * temp_r27) / 180.0)); + } + else { + HuSprAttrSet(lbl_1_bss_52, i, 4); + HuSprAttrReset(lbl_1_data_380, i, 4); + HuSprScaleSet(lbl_1_data_380, i, 1.0f, sin(M_PI * (9.0f * (temp_r27 - 10)) / 180.0)); + } + temp_f31 = temp_r27 / 20.0f; + temp_r29 = GWStarsGet(sp28[i]) + (temp_f31 * (GWStarsGet(lbl_1_bss_4A[i]) - GWStarsGet(sp28[i]))); + fn_1_3B50(lbl_1_bss_CE[(i * 2)], temp_r29); + temp_r29 = BoardPlayerCoinsGet(sp28[i]) + (temp_f31 * (BoardPlayerCoinsGet(lbl_1_bss_4A[i]) - BoardPlayerCoinsGet(sp28[i]))); + fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], temp_r29); + } + else { + temp_r30 = GWPlayerCfg[sp28[i]].character; + Hu3DModelAttrSet(lbl_1_bss_5C[temp_r30][sp18[i]], 1); + temp_r30 = GWPlayerCfg[lbl_1_bss_4A[i]].character; + Hu3DModelAttrReset(lbl_1_bss_A[i], 1); + Hu3DModelScaleSet(lbl_1_bss_A[i], 1.1f, 1.1f, 1.1f); + fn_1_3B50(lbl_1_bss_CE[(i * 2)], GWStarsGet(lbl_1_bss_4A[i])); + fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + if (sp28[temp_r29] == lbl_1_bss_4A[i]) { + break; + } + } + if (lbl_1_bss_42[i] != sp20[temp_r29]) { + if (lbl_1_bss_42[i] < sp20[temp_r29]) { + Hu3DAnimCreate(lbl_1_bss_E4[temp_r30][1], lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]], "ys22"); + } + else { + Hu3DAnimCreate(lbl_1_bss_E4[temp_r30][2], lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]], "ys22"); + } + if (lbl_1_bss_42[i] == 0) { + sp38[lbl_1_bss_4A[i]] = HuAudPlayerVoicePlay(lbl_1_bss_4A[i], 293); + } + if (!temp_r25) { + temp_r25 = 1; + HuAudFXPlay(27); + } + } + sp30[i] = lbl_1_bss_4A[i]; + sp18[i] = lbl_1_bss_42[i]; + } + } + sp54[i] += 20.0f; + if (sp54[i] >= 360.0f) { + sp54[i] -= 360.0f; + } + temp_r30 = GWPlayerCfg[sp28[i]].character; + Hu3DModelRotSet(lbl_1_bss_5C[temp_r30][sp18[i]], sp54[i] / (4 - i), sp54[i], 0.0f); + } + } + if (temp_r28 <= 10) { + for (i = 0; i < 4; i++) { + HuSprScaleSet(lbl_1_bss_9C, i, cos(M_PI * (9.0f * temp_r28) / 180.0), cos(M_PI * (9.0f * temp_r28) / 180.0)); + } + } + else { + for (i = 0; i < 4; i++) { + HuSprScaleSet(lbl_1_bss_9C, i, 0.0f, 0.0f); + } + } + if (temp_r26 >= 4) { + break; + } + if (lbl_1_bss_174) { + temp_r28 += 2; + } + HuPrcVSleep(); + temp_r28++; + } + for (i = 0; i < 4; i++) { + HuSprScaleSet(lbl_1_bss_9C, i, 0.0f, 0.0f); + } + lbl_1_bss_0 = 1; } void fn_1_3B50(s16 group, s16 value) { - s16 digit; - s16 digit_value; - if(value > 999) { - value = 999; - } - digit = 0; - digit_value = value/100; - if(digit_value != 0) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; - } - value -= digit_value*100; - digit_value = value/10; - if(digit_value != 0 || digit == 1) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; - } - value -= digit_value*10; - HuSprBankSet(group, digit, value); - HuSprAttrReset(group, digit, 4); - digit++; - for(digit_value=digit; digit_value<3; digit_value++) { - HuSprAttrSet(group, digit_value, 4); - } + s16 digit; + s16 digit_value; + if (value > 999) { + value = 999; + } + digit = 0; + digit_value = value / 100; + if (digit_value != 0) { + HuSprBankSet(group, digit, digit_value); + HuSprAttrReset(group, digit, 4); + digit++; + } + value -= digit_value * 100; + digit_value = value / 10; + if (digit_value != 0 || digit == 1) { + HuSprBankSet(group, digit, digit_value); + HuSprAttrReset(group, digit, 4); + digit++; + } + value -= digit_value * 10; + HuSprBankSet(group, digit, value); + HuSprAttrReset(group, digit, 4); + digit++; + for (digit_value = digit; digit_value < 3; digit_value++) { + HuSprAttrSet(group, digit_value, 4); + } } void fn_1_3CAC(s16 group, s16 value) { - s16 digit; - s16 digit_value; - if(value > 999) { - value = 999; - } - digit = 2; - digit_value = value/100; - if(digit_value != 0) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; - } - value -= digit_value*100; - digit_value = value/10; - if(digit_value != 0 || digit == 3) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; - } - value -= digit_value*10; - HuSprBankSet(group, digit, value); - HuSprAttrReset(group, digit, 4); - digit++; - for(digit_value=digit; digit_value<5; digit_value++) { - HuSprAttrSet(group, digit_value, 4); - } + s16 digit; + s16 digit_value; + if (value > 999) { + value = 999; + } + digit = 2; + digit_value = value / 100; + if (digit_value != 0) { + HuSprBankSet(group, digit, digit_value); + HuSprAttrReset(group, digit, 4); + digit++; + } + value -= digit_value * 100; + digit_value = value / 10; + if (digit_value != 0 || digit == 3) { + HuSprBankSet(group, digit, digit_value); + HuSprAttrReset(group, digit, 4); + digit++; + } + value -= digit_value * 10; + HuSprBankSet(group, digit, value); + HuSprAttrReset(group, digit, 4); + digit++; + for (digit_value = digit; digit_value < 5; digit_value++) { + HuSprAttrSet(group, digit_value, 4); + } } void fn_1_3E08(void) { - s16 i; - s16 j; - for(i=0; i<4; i++) { - lbl_1_bss_42[i] = BoardPlayerRankCalc(i); - lbl_1_bss_4A[i] = i; - } - for(j=1; j<4; j++) { - for(i=0; i<4-j; i++) { - if(lbl_1_bss_42[i] > lbl_1_bss_42[i+1]) { - s16 temp = lbl_1_bss_42[i]; - lbl_1_bss_42[i] = lbl_1_bss_42[i+1]; - lbl_1_bss_42[i+1] = temp; - temp = lbl_1_bss_4A[i]; - lbl_1_bss_4A[i] = lbl_1_bss_4A[i+1]; - lbl_1_bss_4A[i+1] = temp; - } - } - } + s16 i; + s16 j; + for (i = 0; i < 4; i++) { + lbl_1_bss_42[i] = BoardPlayerRankCalc(i); + lbl_1_bss_4A[i] = i; + } + for (j = 1; j < 4; j++) { + for (i = 0; i < 4 - j; i++) { + if (lbl_1_bss_42[i] > lbl_1_bss_42[i + 1]) { + s16 temp = lbl_1_bss_42[i]; + lbl_1_bss_42[i] = lbl_1_bss_42[i + 1]; + lbl_1_bss_42[i + 1] = temp; + temp = lbl_1_bss_4A[i]; + lbl_1_bss_4A[i] = lbl_1_bss_4A[i + 1]; + lbl_1_bss_4A[i + 1] = temp; + } + } + } } -s32 lbl_1_data_450[] = { - DATADIR_W01, - DATADIR_W02, - DATADIR_W03, - DATADIR_W04, - DATADIR_W05, - DATADIR_W06 -}; +s32 lbl_1_data_450[] = { DATADIR_W01, DATADIR_W02, DATADIR_W03, DATADIR_W04, DATADIR_W05, DATADIR_W06 }; void fn_1_3FD8(void) { - s32 status; - u32 ardma; - if(!_CheckFlag(0x10000)) { - lbl_1_bss_178 = 1; - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } - } - status = HuDataDirReadAsync(DATADIR_BOARD); - if(status != -1) { - while(!HuDataGetAsyncStat(status)) { - HuPrcVSleep(); - } - } - ardma = HuAR_MRAMtoARAM(DATADIR_BOARD); - if(ardma) { - while(HuARDMACheck()) { - HuPrcVSleep(); - } - } - HuDataDirClose(DATADIR_BOARD); - status = HuDataDirReadAsync(lbl_1_data_450[GWSystem.board]); - if(status != -1) { - while(!HuDataGetAsyncStat(status)) { - HuPrcVSleep(); - } - } - lbl_1_bss_178 = 1; - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } + s32 status; + u32 ardma; + if (!_CheckFlag(0x10000)) { + lbl_1_bss_178 = 1; + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } + } + status = HuDataDirReadAsync(DATADIR_BOARD); + if (status != -1) { + while (!HuDataGetAsyncStat(status)) { + HuPrcVSleep(); + } + } + ardma = HuAR_MRAMtoARAM(DATADIR_BOARD); + if (ardma) { + while (HuARDMACheck()) { + HuPrcVSleep(); + } + } + HuDataDirClose(DATADIR_BOARD); + status = HuDataDirReadAsync(lbl_1_data_450[GWSystem.board]); + if (status != -1) { + while (!HuDataGetAsyncStat(status)) { + HuPrcVSleep(); + } + } + lbl_1_bss_178 = 1; + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } void fn_1_40DC(void) { - s16 i; - s16 sp8[5]; - fn_1_423C(sp8); - sp8[lbl_1_bss_172] += sp8[4]; - for(i=0; i<4; i++) { - GWCoinsAdd(i, sp8[i]); - GWPlayerCoinWinSet(i, 0); - GWPlayerCoinCollectSet(i, 0); - if(mgInfoTbl[GWSystem.mg_next].type != 4) { - GWPlayer[i].coins_mg += sp8[i]; - if(GWPlayer[i].coins_mg > 9999) { - GWPlayer[i].coins_mg = 9999; - } - } - } + s16 i; + s16 sp8[5]; + fn_1_423C(sp8); + sp8[lbl_1_bss_172] += sp8[4]; + for (i = 0; i < 4; i++) { + GWCoinsAdd(i, sp8[i]); + GWPlayerCoinWinSet(i, 0); + GWPlayerCoinCollectSet(i, 0); + if (mgInfoTbl[GWSystem.mg_next].type != 4) { + GWPlayer[i].coins_mg += sp8[i]; + if (GWPlayer[i].coins_mg > 9999) { + GWPlayer[i].coins_mg = 9999; + } + } + } } void fn_1_423C(s16 *data) { - s16 i; - s32 coin; - u32 mul_coin; - u32 coin_battle; - s16 temp_r26; - s16 mgtype; - float sp10[4]; - s16 sp8[4]; - mgtype = mgInfoTbl[GWSystem.mg_next].type; - switch(mgtype) { - case 4: - temp_r26 = 0; - for(i=coin_battle=0; i<4; i++) { - coin_battle += GWPlayerCoinBattleGet(i); - } - sp8[0] = sp8[1] = sp8[2] = sp8[3] = 0; - for(i=0; i<4; i++) { - sp8[GWPlayerCoinWinGet(i)]++; - } - sp10[0] = sp10[1] = sp10[2] = sp10[3] = 0; - if(sp8[0] == 1 && sp8[1] == 1 && sp8[2] == 1) { - sp10[0] = 0.7f; - sp10[1] = 0.3f; - } else if(sp8[0] ==2) { - sp10[0] = 0.5f; - } else if(sp8[0] == 3) { - sp10[0] = 0.3333333f; - } else if(sp8[0] == 1 && sp8[1] == 2) { - sp10[0] = 0.6f; - sp10[1] = 0.2f; - } else if(sp8[0] == 1 && sp8[1] == 3) { - sp10[0] = 0.7f; - sp10[1] = 0.1f; - } else if(sp8[0] == 1 && sp8[1] == 1 && sp8[2] == 2) { - sp10[0] = 0.7f; - sp10[1] = 0.3f; - } else if(sp8[0] == 4) { - sp10[0] = 0.25f; - } else { - temp_r26 = 1; - } - for(i=coin=0; i<4; i++) { - if(!temp_r26) { - mul_coin = coin_battle*sp10[GWPlayerCoinWinGet(i)]; - } else { - mul_coin = GWPlayerCoinBattleGet(i); - } - data[i] = mul_coin; - coin += mul_coin; - } - if(coin < coin_battle) { - data[4] = coin_battle-coin; - } else { - data[4] = 0; - } - break; - - default: - for(i=0; i<4; i++) { - coin = GWPlayerCoinWinGet(i)+GWPlayerCoinCollectGet(i); - mul_coin = GWLuckyValueGet(); - if(mul_coin == 0) { - mul_coin = 1; - } - coin *= mul_coin; - data[i] = coin; - } - break; - } + s16 i; + s32 coin; + u32 mul_coin; + u32 coin_battle; + s16 temp_r26; + s16 mgtype; + float sp10[4]; + s16 sp8[4]; + mgtype = mgInfoTbl[GWSystem.mg_next].type; + switch (mgtype) { + case 4: + temp_r26 = 0; + for (i = coin_battle = 0; i < 4; i++) { + coin_battle += GWPlayerCoinBattleGet(i); + } + sp8[0] = sp8[1] = sp8[2] = sp8[3] = 0; + for (i = 0; i < 4; i++) { + sp8[GWPlayerCoinWinGet(i)]++; + } + sp10[0] = sp10[1] = sp10[2] = sp10[3] = 0; + if (sp8[0] == 1 && sp8[1] == 1 && sp8[2] == 1) { + sp10[0] = 0.7f; + sp10[1] = 0.3f; + } + else if (sp8[0] == 2) { + sp10[0] = 0.5f; + } + else if (sp8[0] == 3) { + sp10[0] = 0.3333333f; + } + else if (sp8[0] == 1 && sp8[1] == 2) { + sp10[0] = 0.6f; + sp10[1] = 0.2f; + } + else if (sp8[0] == 1 && sp8[1] == 3) { + sp10[0] = 0.7f; + sp10[1] = 0.1f; + } + else if (sp8[0] == 1 && sp8[1] == 1 && sp8[2] == 2) { + sp10[0] = 0.7f; + sp10[1] = 0.3f; + } + else if (sp8[0] == 4) { + sp10[0] = 0.25f; + } + else { + temp_r26 = 1; + } + for (i = coin = 0; i < 4; i++) { + if (!temp_r26) { + mul_coin = coin_battle * sp10[GWPlayerCoinWinGet(i)]; + } + else { + mul_coin = GWPlayerCoinBattleGet(i); + } + data[i] = mul_coin; + coin += mul_coin; + } + if (coin < coin_battle) { + data[4] = coin_battle - coin; + } + else { + data[4] = 0; + } + break; + + default: + for (i = 0; i < 4; i++) { + coin = GWPlayerCoinWinGet(i) + GWPlayerCoinCollectGet(i); + mul_coin = GWLuckyValueGet(); + if (mul_coin == 0) { + mul_coin = 1; + } + coin *= mul_coin; + data[i] = coin; + } + break; + } } void fn_1_461C(void) { - s16 sprite; - Hu3DAllKill(); - HuSprClose(); - HuSprInit(); - espInit(); - HuPrcVSleep(); - sprite = espEntry(0x860020, 5000, 0); - espPosSet(sprite, 288.0, 240.0); - espAttrReset(sprite, 4); - Hu3DBGColorSet(0, 0, 0); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); - while(WipeStatGet()) { - HuPrcVSleep(); - } - if(GWSaveModeGet() == 2) { - GWSaveModeSet(1); - } - if(GWPartyGet() == 1) { - GWGameStat.party_continue = 1; - SLSaveBoard(); - } else { - GWGameStat.story_continue = 1; - SLSaveBoardStory(); - } - SLCommonSet(); - if(SLSave()) { - saveExecF = 1; - } else { - GWSaveModeSet(1); - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); - while(WipeStatGet()) { - HuPrcVSleep(); - } + s16 sprite; + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + espInit(); + HuPrcVSleep(); + sprite = espEntry(0x860020, 5000, 0); + espPosSet(sprite, 288.0, 240.0); + espAttrReset(sprite, 4); + Hu3DBGColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet()) { + HuPrcVSleep(); + } + if (GWSaveModeGet() == 2) { + GWSaveModeSet(1); + } + if (GWPartyGet() == 1) { + GWGameStat.party_continue = 1; + SLSaveBoard(); + } + else { + GWGameStat.story_continue = 1; + SLSaveBoardStory(); + } + SLCommonSet(); + if (SLSave()) { + saveExecF = 1; + } + else { + GWSaveModeSet(1); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet()) { + HuPrcVSleep(); + } } -s32 lbl_1_data_468[] = { - DATADIR_MARIOMDL1, - DATADIR_LUIGIMDL1, - DATADIR_PEACHMDL1, - DATADIR_YOSHIMDL1, - DATADIR_WARIOMDL1, - DATADIR_DONKEYMDL1, - DATADIR_DAISYMDL1, - DATADIR_WALUIGIMDL1 -}; +s32 lbl_1_data_468[] = { DATADIR_MARIOMDL1, DATADIR_LUIGIMDL1, DATADIR_PEACHMDL1, DATADIR_YOSHIMDL1, DATADIR_WARIOMDL1, DATADIR_DONKEYMDL1, + DATADIR_DAISYMDL1, DATADIR_WALUIGIMDL1 }; Vec lbl_1_data_488[] = { - { 160, 185, 500 }, - { 240, 185, 500 }, - { 160, 355, 500 }, - { 240, 355, 500 }, + { 160, 185, 500 }, + { 240, 185, 500 }, + { 160, 355, 500 }, + { 240, 355, 500 }, }; void fn_1_47FC(void) { - s16 temp_r31; - s16 temp_r24; - s16 temp_r21; - s16 temp_r20; - s16 temp_r19; - s16 temp_r18; - s16 temp_r17; - Vec sp40; - Vec sp34; - s16 sp2C[4]; - s16 sp28[2]; - s16 sp24[2]; - s16 sp20[2]; - s16 sp1C[2]; - s16 sp18[2]; - AnimData *sp14; - s32 sp10; - s16 spC; - s16 spA; - s16 sp8; - WipeColorSet(0, 0, 0); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10); - while(WipeStatGet()) { - HuPrcVSleep(); - } - espAttrSet(lbl_1_bss_1A1A[0], 4); - espAttrSet(lbl_1_bss_1A1A[1], 4); - for(temp_r31=0; temp_r31<2; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31+6], 1); - Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31+10], 1); - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - espAttrSet(lbl_1_bss_1A1A[temp_r31+6], 4); - } - for(temp_r31=4; temp_r31<8; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_158[temp_r31], 1); - } - for(temp_r31=4; temp_r31<8; temp_r31++) { - HuSprGrpTPLvlSet(lbl_1_bss_CE[temp_r31], 0.0f); - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - for(temp_r19=0; temp_r19<4; temp_r19++) { - Hu3DModelAttrSet(lbl_1_bss_5C[GWPlayerCfg[temp_r31].character][temp_r19], 1); - } - Hu3DModelAttrSet(lbl_1_bss_54[temp_r31], 1); - } - HuSprGrpKill(lbl_1_bss_9C); - HuSprGrpKill(lbl_1_bss_52); - if(lbl_1_data_380 != -1) { - HuSprGrpKill(lbl_1_data_380); - } - sp28[0] = sp28[1] = 0; - sp24[0] = sp24[1] = 0; - sp1C[0] = 0; - sp1C[1] = 2; - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r17 = GWPlayer[temp_r31].team; - sp28[temp_r17] += BoardPlayerCoinsGet(temp_r31); - sp24[temp_r17] += GWStarsGet(temp_r31); - sp2C[sp1C[temp_r17]++] = GWPlayerCfg[temp_r31].character; - } - sp18[0] = 0; - sp18[1] = 1; - if(sp24[0] > sp24[1]) { - lbl_1_bss_8 = 0; - } else { - if(sp24[0] == sp24[1]) { - if(sp28[0] > sp28[1]) { - lbl_1_bss_8 =0; - } else if(sp28[0] == sp28[1]) { - sp18[0] = sp18[1] = 0; - lbl_1_bss_8 = 0; - } else { - lbl_1_bss_8 = 1; - } - } else { - lbl_1_bss_8 = 1; - } - } - HuSprAttrReset(lbl_1_bss_170, 0, 4); - HuSprAttrReset(lbl_1_bss_170, 1, 4); - HuSprPosSet(lbl_1_bss_170, 1, 0, -180); - HuSprAttrReset(lbl_1_bss_170, 2, 4); - HuSprAttrReset(lbl_1_bss_170, 3, 4); - if(lbl_1_bss_8 == 0) { - sp20[0] = -55; - sp20[1] = 115; - } else { - sp20[0] = 115; - sp20[1] = -55; - temp_r24 = sp2C[0]; - sp2C[0] = sp2C[2]; - sp2C[2] = temp_r24; - temp_r24 = sp2C[1]; - sp2C[1] = sp2C[3]; - sp2C[3] = temp_r24; - temp_r24 = sp28[0]; - sp28[0] = sp28[1]; - sp28[1] = temp_r24; - temp_r24 = sp24[0]; - sp24[0] = sp24[1]; - sp24[1] = temp_r24; - } - HuSprPosSet(lbl_1_bss_170, 2, 0, sp20[0]); - HuSprPosSet(lbl_1_bss_170, 3, 0, sp20[1]); - HuSprGrpPosSet(lbl_1_bss_170, 288, 240); - for(temp_r31=0; temp_r31<4; temp_r31++) { - if(temp_r31 < 2) { - sp10 = 0; - } else { - sp10 = 1; - } - temp_r18 = lbl_1_bss_5C[sp2C[temp_r31]][sp10]; - Hu3DAnimCreate(lbl_1_bss_E4[sp2C[temp_r31]][0], temp_r18, "ys22"); - Hu3DModelAttrReset(temp_r18, 1); - Hu3D2Dto3D(&lbl_1_data_488[temp_r31], 1, &sp40); - Hu3DModelPosSetV(temp_r18, &sp40); - Hu3DModelRotSet(temp_r18, 0, 0, 0); - sp34 = lbl_1_data_488[temp_r31]; - sp34.y += 5.0f; - sp34.x += 3.0f; - sp34.z += 200.0f; - Hu3D2Dto3D(&sp34, 1, &sp40); - Hu3DModelPosSetV(lbl_1_bss_168[temp_r31], &sp40); - } - spC = HuSprGrpCreate(2); - for(temp_r31=0; temp_r31<2; temp_r31++) { - sp14 = HuSprAnimReadFile(0x6F0016+sp18[temp_r31]); - spA = HuSprCreate(sp14, temp_r31, 0); - HuSprGrpMemberSet(spC, temp_r31, spA); - HuSprPosSet(spC, temp_r31, (lbl_1_data_488[temp_r31*2].x)-80.0f, lbl_1_data_488[temp_r31*2].y); - sp34 = lbl_1_data_488[temp_r31*2]; - sp34.x += 180.0f; - sp34.y -= 35.0f; - Hu3D2Dto3D(&sp34, 1, &sp40); - Hu3DModelPosSetV(lbl_1_bss_1A9C[temp_r31+4], &sp40); - sp34.y += 5.0f; - sp34.x += 3.0f; - sp34.z += 200.0f; - Hu3D2Dto3D(&sp34, 1, &sp40); - Hu3DModelPosSetV(lbl_1_bss_158[temp_r31*2], &sp40); - espPosSet(lbl_1_bss_1A1A[(temp_r31*2)+2], 230.0f+lbl_1_data_488[temp_r31*2].x, lbl_1_data_488[temp_r31*2].y-35.0f); - fn_1_3B50(lbl_1_bss_CE[temp_r31*2], sp24[temp_r31]); - HuSprGrpPosSet(lbl_1_bss_CE[temp_r31*2], 320.0f+lbl_1_data_488[temp_r31*2].x, lbl_1_data_488[temp_r31*2].y-35.0f); - sp34 = lbl_1_data_488[temp_r31*2]; - sp34.x += 180.0f; - sp34.y += 35.0f; - Hu3D2Dto3D(&sp34, 1, &sp40); - Hu3DModelPosSetV(lbl_1_bss_1A9C[temp_r31+8], &sp40); - sp34.y += 5.0f; - sp34.x += 3.0f; - sp34.z += 200.0f; - Hu3D2Dto3D(&sp34, 1, &sp40); - Hu3DModelPosSetV(lbl_1_bss_158[(temp_r31*2)+1], &sp40); - espPosSet(lbl_1_bss_1A1A[(temp_r31*2)+3], 230.0f+lbl_1_data_488[temp_r31*2].x, 35.0f+lbl_1_data_488[temp_r31*2].y); - fn_1_3B50(lbl_1_bss_CE[(temp_r31*2)+1], sp28[temp_r31]); - HuSprGrpPosSet(lbl_1_bss_CE[(temp_r31*2)+1], 320.0f+lbl_1_data_488[temp_r31*2].x, 35.0f+lbl_1_data_488[temp_r31*2].y); - } - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); - while(WipeStatGet()) { - HuPrcVSleep(); - } - temp_r21 = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); - HuWinMesSpeedSet(temp_r21, 0); - HuWinBGTPLvlSet(temp_r21, 0); - HuWinPriSet(temp_r21, 5); - HuWinAttrSet(temp_r21, 0x800); - HuWinMesSet(temp_r21, 0x240007); - HuPrcSleep(4); - temp_r31 = 0; - while(1) { - if(lbl_1_bss_4 && temp_r31 > 120) { - break; - } - for(temp_r20=sp8=0; temp_r20<4; temp_r20++) { - if(!GWPlayerCfg[temp_r20].iscom) { - sp8 |= HuPadBtnDown[GWPlayerCfg[temp_r20].pad_idx]; - } - } - if(sp8 & PAD_BUTTON_A) { - HuAudFXPlay(28); - break; - } - HuPrcVSleep(); - temp_r31++; - } - HuWinKill(temp_r21); + s16 temp_r31; + s16 temp_r24; + s16 temp_r21; + s16 temp_r20; + s16 temp_r19; + s16 temp_r18; + s16 temp_r17; + Vec sp40; + Vec sp34; + s16 sp2C[4]; + s16 sp28[2]; + s16 sp24[2]; + s16 sp20[2]; + s16 sp1C[2]; + s16 sp18[2]; + AnimData *sp14; + s32 sp10; + s16 spC; + s16 spA; + s16 sp8; + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10); + while (WipeStatGet()) { + HuPrcVSleep(); + } + espAttrSet(lbl_1_bss_1A1A[0], 4); + espAttrSet(lbl_1_bss_1A1A[1], 4); + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31 + 6], 1); + Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31 + 10], 1); + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + espAttrSet(lbl_1_bss_1A1A[temp_r31 + 6], 4); + } + for (temp_r31 = 4; temp_r31 < 8; temp_r31++) { + Hu3DModelAttrSet(lbl_1_bss_158[temp_r31], 1); + } + for (temp_r31 = 4; temp_r31 < 8; temp_r31++) { + HuSprGrpTPLvlSet(lbl_1_bss_CE[temp_r31], 0.0f); + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + for (temp_r19 = 0; temp_r19 < 4; temp_r19++) { + Hu3DModelAttrSet(lbl_1_bss_5C[GWPlayerCfg[temp_r31].character][temp_r19], 1); + } + Hu3DModelAttrSet(lbl_1_bss_54[temp_r31], 1); + } + HuSprGrpKill(lbl_1_bss_9C); + HuSprGrpKill(lbl_1_bss_52); + if (lbl_1_data_380 != -1) { + HuSprGrpKill(lbl_1_data_380); + } + sp28[0] = sp28[1] = 0; + sp24[0] = sp24[1] = 0; + sp1C[0] = 0; + sp1C[1] = 2; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r17 = GWPlayer[temp_r31].team; + sp28[temp_r17] += BoardPlayerCoinsGet(temp_r31); + sp24[temp_r17] += GWStarsGet(temp_r31); + sp2C[sp1C[temp_r17]++] = GWPlayerCfg[temp_r31].character; + } + sp18[0] = 0; + sp18[1] = 1; + if (sp24[0] > sp24[1]) { + lbl_1_bss_8 = 0; + } + else { + if (sp24[0] == sp24[1]) { + if (sp28[0] > sp28[1]) { + lbl_1_bss_8 = 0; + } + else if (sp28[0] == sp28[1]) { + sp18[0] = sp18[1] = 0; + lbl_1_bss_8 = 0; + } + else { + lbl_1_bss_8 = 1; + } + } + else { + lbl_1_bss_8 = 1; + } + } + HuSprAttrReset(lbl_1_bss_170, 0, 4); + HuSprAttrReset(lbl_1_bss_170, 1, 4); + HuSprPosSet(lbl_1_bss_170, 1, 0, -180); + HuSprAttrReset(lbl_1_bss_170, 2, 4); + HuSprAttrReset(lbl_1_bss_170, 3, 4); + if (lbl_1_bss_8 == 0) { + sp20[0] = -55; + sp20[1] = 115; + } + else { + sp20[0] = 115; + sp20[1] = -55; + temp_r24 = sp2C[0]; + sp2C[0] = sp2C[2]; + sp2C[2] = temp_r24; + temp_r24 = sp2C[1]; + sp2C[1] = sp2C[3]; + sp2C[3] = temp_r24; + temp_r24 = sp28[0]; + sp28[0] = sp28[1]; + sp28[1] = temp_r24; + temp_r24 = sp24[0]; + sp24[0] = sp24[1]; + sp24[1] = temp_r24; + } + HuSprPosSet(lbl_1_bss_170, 2, 0, sp20[0]); + HuSprPosSet(lbl_1_bss_170, 3, 0, sp20[1]); + HuSprGrpPosSet(lbl_1_bss_170, 288, 240); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + if (temp_r31 < 2) { + sp10 = 0; + } + else { + sp10 = 1; + } + temp_r18 = lbl_1_bss_5C[sp2C[temp_r31]][sp10]; + Hu3DAnimCreate(lbl_1_bss_E4[sp2C[temp_r31]][0], temp_r18, "ys22"); + Hu3DModelAttrReset(temp_r18, 1); + Hu3D2Dto3D(&lbl_1_data_488[temp_r31], 1, &sp40); + Hu3DModelPosSetV(temp_r18, &sp40); + Hu3DModelRotSet(temp_r18, 0, 0, 0); + sp34 = lbl_1_data_488[temp_r31]; + sp34.y += 5.0f; + sp34.x += 3.0f; + sp34.z += 200.0f; + Hu3D2Dto3D(&sp34, 1, &sp40); + Hu3DModelPosSetV(lbl_1_bss_168[temp_r31], &sp40); + } + spC = HuSprGrpCreate(2); + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + sp14 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x16) + sp18[temp_r31]); + spA = HuSprCreate(sp14, temp_r31, 0); + HuSprGrpMemberSet(spC, temp_r31, spA); + HuSprPosSet(spC, temp_r31, (lbl_1_data_488[temp_r31 * 2].x) - 80.0f, lbl_1_data_488[temp_r31 * 2].y); + sp34 = lbl_1_data_488[temp_r31 * 2]; + sp34.x += 180.0f; + sp34.y -= 35.0f; + Hu3D2Dto3D(&sp34, 1, &sp40); + Hu3DModelPosSetV(lbl_1_bss_1A9C[temp_r31 + 4], &sp40); + sp34.y += 5.0f; + sp34.x += 3.0f; + sp34.z += 200.0f; + Hu3D2Dto3D(&sp34, 1, &sp40); + Hu3DModelPosSetV(lbl_1_bss_158[temp_r31 * 2], &sp40); + espPosSet(lbl_1_bss_1A1A[(temp_r31 * 2) + 2], 230.0f + lbl_1_data_488[temp_r31 * 2].x, lbl_1_data_488[temp_r31 * 2].y - 35.0f); + fn_1_3B50(lbl_1_bss_CE[temp_r31 * 2], sp24[temp_r31]); + HuSprGrpPosSet(lbl_1_bss_CE[temp_r31 * 2], 320.0f + lbl_1_data_488[temp_r31 * 2].x, lbl_1_data_488[temp_r31 * 2].y - 35.0f); + sp34 = lbl_1_data_488[temp_r31 * 2]; + sp34.x += 180.0f; + sp34.y += 35.0f; + Hu3D2Dto3D(&sp34, 1, &sp40); + Hu3DModelPosSetV(lbl_1_bss_1A9C[temp_r31 + 8], &sp40); + sp34.y += 5.0f; + sp34.x += 3.0f; + sp34.z += 200.0f; + Hu3D2Dto3D(&sp34, 1, &sp40); + Hu3DModelPosSetV(lbl_1_bss_158[(temp_r31 * 2) + 1], &sp40); + espPosSet(lbl_1_bss_1A1A[(temp_r31 * 2) + 3], 230.0f + lbl_1_data_488[temp_r31 * 2].x, 35.0f + lbl_1_data_488[temp_r31 * 2].y); + fn_1_3B50(lbl_1_bss_CE[(temp_r31 * 2) + 1], sp28[temp_r31]); + HuSprGrpPosSet(lbl_1_bss_CE[(temp_r31 * 2) + 1], 320.0f + lbl_1_data_488[temp_r31 * 2].x, 35.0f + lbl_1_data_488[temp_r31 * 2].y); + } + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); + while (WipeStatGet()) { + HuPrcVSleep(); + } + temp_r21 = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); + HuWinMesSpeedSet(temp_r21, 0); + HuWinBGTPLvlSet(temp_r21, 0); + HuWinPriSet(temp_r21, 5); + HuWinAttrSet(temp_r21, 0x800); + HuWinMesSet(temp_r21, MAKE_MESSID(0x24, 0x07)); + HuPrcSleep(4); + temp_r31 = 0; + while (1) { + if (lbl_1_bss_4 && temp_r31 > 120) { + break; + } + for (temp_r20 = sp8 = 0; temp_r20 < 4; temp_r20++) { + if (!GWPlayerCfg[temp_r20].iscom) { + sp8 |= HuPadBtnDown[GWPlayerCfg[temp_r20].pad_idx]; + } + } + if (sp8 & PAD_BUTTON_A) { + HuAudFXPlay(28); + break; + } + HuPrcVSleep(); + temp_r31++; + } + HuWinKill(temp_r21); } void fn_1_5880(omObjData *object) { - Vec pos; + Vec pos; Vec offset; Vec dir; Vec y_offset; - + f32 z_rot; s8 stick_pos; - - if(HuPadBtn[0] & PAD_BUTTON_UP) { - CRot.x += 2.0f; - } - if(HuPadBtn[0] & PAD_BUTTON_DOWN) { - CRot.x -= 2.0f; - } - if(HuPadBtn[0] & PAD_BUTTON_LEFT) { - CRot.y += 2.0f; - } - if(HuPadBtn[0] & PAD_BUTTON_RIGHT) { - CRot.y -= 2.0f; - } - if(HuPadBtnDown[0] & PAD_BUTTON_B) { - OSReport("CRot %f,%f,%f\n", CRot.x, CRot.y, CRot.z); - OSReport("Center %f,%f,%f\n", Center.x, Center.y, Center.z); - OSReport("CZoom %f\n", CZoom); - } - - CZoom += HuPadTrigL[0] / 2; - CZoom -= HuPadTrigR[0] / 2; - pos.x = Center.x + (CZoom * (sin((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0))); - pos.y = (Center.y + (CZoom * -sin((M_PI * CRot.x) / 180.0))); - pos.z = (Center.z + (CZoom * (cos((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0)))); - offset.x = Center.x - pos.x; - offset.y = Center.y - pos.y; - offset.z = Center.z - pos.z; - dir.x = (sin((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); - dir.y = cos((M_PI * CRot.x) / 180.0); - dir.z = (cos((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); - z_rot = CRot.z; - y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cos((M_PI * z_rot) / 180.0)) - + dir.y * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.z * sin((M_PI * z_rot) / 180.0)) - + dir.z * (offset.x * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.y * sin((M_PI * z_rot) / 180.0)); + if (HuPadBtn[0] & PAD_BUTTON_UP) { + CRot.x += 2.0f; + } + if (HuPadBtn[0] & PAD_BUTTON_DOWN) { + CRot.x -= 2.0f; + } + if (HuPadBtn[0] & PAD_BUTTON_LEFT) { + CRot.y += 2.0f; + } + if (HuPadBtn[0] & PAD_BUTTON_RIGHT) { + CRot.y -= 2.0f; + } + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + OSReport("CRot %f,%f,%f\n", CRot.x, CRot.y, CRot.z); + OSReport("Center %f,%f,%f\n", Center.x, Center.y, Center.z); + OSReport("CZoom %f\n", CZoom); + } - y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cos((M_PI * z_rot) / 180.0)) - + dir.x * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.z * sin((M_PI * z_rot) / 180.0)) - + dir.z * (offset.y * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.x * sin((M_PI * z_rot) / 180.0)); - - y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cos((M_PI * z_rot) / 180.0)) - + (dir.x * (offset.x * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) - offset.y * sin((M_PI * z_rot) / 180.0)) - + dir.y * (offset.y * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) + offset.x * sin((M_PI * z_rot) / 180.0))); + CZoom += HuPadTrigL[0] / 2; + CZoom -= HuPadTrigR[0] / 2; - PSVECCrossProduct(&dir, &offset, &offset); - PSVECNormalize(&offset, &offset); - stick_pos = (HuPadSubStkX[0] & 0xF8); - if (stick_pos != 0) { - Center.x += 0.05f * (offset.x * stick_pos); - Center.y += 0.05f * (offset.y * stick_pos); - Center.z += 0.05f * (offset.z * stick_pos); - } - PSVECNormalize(&y_offset, &offset); - stick_pos = -(HuPadSubStkY[0] & 0xF8); - if (stick_pos != 0) { - Center.x += 0.05f * (offset.x * stick_pos); - Center.y += 0.05f * (offset.y * stick_pos); - Center.z += 0.05f * (offset.z * stick_pos); - } + pos.x = Center.x + (CZoom * (sin((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0))); + pos.y = (Center.y + (CZoom * -sin((M_PI * CRot.x) / 180.0))); + pos.z = (Center.z + (CZoom * (cos((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0)))); + offset.x = Center.x - pos.x; + offset.y = Center.y - pos.y; + offset.z = Center.z - pos.z; + dir.x = (sin((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); + dir.y = cos((M_PI * CRot.x) / 180.0); + dir.z = (cos((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); + z_rot = CRot.z; + y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cos((M_PI * z_rot) / 180.0)) + + dir.y * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.z * sin((M_PI * z_rot) / 180.0)) + + dir.z * (offset.x * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.y * sin((M_PI * z_rot) / 180.0)); + + y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cos((M_PI * z_rot) / 180.0)) + + dir.x * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.z * sin((M_PI * z_rot) / 180.0)) + + dir.z * (offset.y * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.x * sin((M_PI * z_rot) / 180.0)); + + y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cos((M_PI * z_rot) / 180.0)) + + (dir.x * (offset.x * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) - offset.y * sin((M_PI * z_rot) / 180.0)) + + dir.y * (offset.y * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) + offset.x * sin((M_PI * z_rot) / 180.0))); + + PSVECCrossProduct(&dir, &offset, &offset); + PSVECNormalize(&offset, &offset); + stick_pos = (HuPadSubStkX[0] & 0xF8); + if (stick_pos != 0) { + Center.x += 0.05f * (offset.x * stick_pos); + Center.y += 0.05f * (offset.y * stick_pos); + Center.z += 0.05f * (offset.z * stick_pos); + } + PSVECNormalize(&y_offset, &offset); + stick_pos = -(HuPadSubStkY[0] & 0xF8); + if (stick_pos != 0) { + Center.x += 0.05f * (offset.x * stick_pos); + Center.y += 0.05f * (offset.y * stick_pos); + Center.z += 0.05f * (offset.z * stick_pos); + } } diff --git a/src/REL/selmenuDll/main.c b/src/REL/selmenuDll/main.c index 29b299ae..75831f13 100644 --- a/src/REL/selmenuDll/main.c +++ b/src/REL/selmenuDll/main.c @@ -1,22 +1,23 @@ -#include "game/object.h" -#include "game/objsub.h" -#include "game/pad.h" -#include "game/gamework_data.h" -#include "game/hsfman.h" -#include "game/hsfdraw.h" -#include "game/wipe.h" -#include "game/flag.h" -#include "game/printfunc.h" -#include "game/minigame_seq.h" -#include "game/data.h" #include "game/board/main.h" #include "game/armem.h" #include "game/audio.h" +#include "game/data.h" +#include "game/flag.h" #include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/wipe.h" #include "rel_sqrt_consts.h" -//MSM Definitions +// MSM Definitions static s8 *msmSeGetIndexPtr(s16 datano); static void msmMusSetMasterVolume(s32 value); @@ -28,117 +29,93 @@ static void msmMusSetMasterVolume(s32 value); #define SM_KEY_UP 0x0001 #define SM_KEY_DOWN 0x0002 -static char *smCharTbl[] = { - "Mario", - "Luigi", - "Peach", - "Yoshi", - "Wario", - "Donkey", - "Daisy", - "Waluigi" -}; +static char *smCharTbl[] = { "Mario", "Luigi", "Peach", "Yoshi", "Wario", "Donkey", "Daisy", "Waluigi" }; typedef struct sm_entry { - u16 enabled; - char *name; - OverlayID overlay; + u16 enabled; + char *name; + OverlayID overlay; } SMEntry; -static SMEntry smMenuTbl[SM_PAGE_MAX*SM_PAGE_SIZE] = { - { 1, "401:WAKUGURI DIVING", OVL_M401 }, - { 1, "402:PURURUN! BIGSLIME", OVL_M402 }, - { 1, "403:TAORERUKABE!", OVL_M403 }, - { 1, "404:CRAYON RUNNER", OVL_M404 }, - { 1, "405:MEDREY RACE", OVL_M405 }, - { 1, "406:SKI RACE", OVL_M406 }, - { 1, "407:BATTANDOMINO", OVL_M407 }, - { 1, "408:SKY DIVE", OVL_M408 }, - { 1, "409:CRAY SHOT", OVL_M409 }, - { 1, "410:JANJAN FREE THROW", OVL_M410 }, - { 1, "411:PAZZLE DE PONG", OVL_M411 }, - { 1, "412:SNOW THROW", OVL_M412 }, - { 1, "413:BOMBHEI PAZZLE!", OVL_M413 }, - { 1, "414:NERATTE UTE!", OVL_M414 }, - { 1, "415:PYONPYON STAMP", OVL_M415 }, - { 1, "416:MAMORE FIRE", OVL_M416 }, - { 1, "417:MARIO SURFER", OVL_M417 }, - { 1, "418:TAIHOU KAKURENBO", OVL_M418 }, - { 1, "419:BANANA DE KOROBASE", OVL_M419 }, - { 1, "420:WATER BATTLE", OVL_M420 }, - { 1, "421:BODY BALOON", OVL_M421 }, - { 1, "422:BELCON COIN", OVL_M422 }, - { 1, "423:GOAL AND GOAL", OVL_M423 }, - { 1, "424:CLANE CATCH", OVL_M424 }, - { 1, "425:AIR DOSSUN", OVL_M425 }, - { 1, "426:KYOROKYORO PANIC", OVL_M426 }, - { 1, "427:BOAT RACE", OVL_M427 }, - { 1, "428:THE ROCK CLIME", OVL_M428 }, - { 1, "429:TREASURE FOREST", OVL_M429 }, - { 1, "430:PARASAILING GO", OVL_M430 }, - { 1, "431:GURUGURU BOX", OVL_M431 }, - { 1, "432:PAIR DE RACE", OVL_M432 }, - { 1, "433:BEACH VOLLEY", OVL_SUBCHRSEL }, - { 1, "434:KINGYOSUKUI", OVL_M434 }, - { 1, "435:KOOPA DARTS", OVL_M435 }, - { 1, "436:KOOPANO AREGA TABETAI!", OVL_M436 }, - { 1, "437:FUSEN RAKUGO", OVL_M437 }, - { 1, "438:SYAKUNETSU WANWAN ATTACK", OVL_M438 }, - { 1, "439:GURUGURU DANGEROUS", OVL_M439 }, - { 1, "440:NEO KOOPA BAKUDAN", OVL_M440 }, - { 1, "441:HIRAHIRA CHOUCHO", OVL_M441 }, - { 1, "442:SUIMYAKU HORE2", OVL_M442 }, - { 1, "443:DRUG RACE", OVL_M443 }, - { 1, "444:MIRACLE PINBALL", OVL_M444 }, - { 1, "445:KINOPIO HAMMER", OVL_M445 }, - { 1, "446:3MAI SOROERO!", OVL_M446 }, - { 1, "447:IQ BLOCK", OVL_M447 }, - { 1, "448:FUMIKURI", OVL_M448 }, - { 1, "449:NOKO2 KOURA PAZZLE", OVL_M449 }, - { 1, "450:LAST GAME", OVL_M450 }, - { 1, "451:PAZZLE", OVL_M451 }, - { 1, "455:BURUTTE 1BAN", OVL_M455 }, - { 1, "456:MOGUTTE 1BAN", OVL_M456 }, - { 1, "457:SUMOH", OVL_M457 }, - { 1, "458:PSYCOLO BATTLE", OVL_M458 }, - { 1, "459:Dr.WARIO", OVL_M459 }, - { 1, "460:", OVL_M460 }, - { 1, "461:BOMBHEI SCRANBLE", OVL_M461 }, - { 1, "462:", OVL_M462 }, - { 1, "***:MESS CHECK", OVL_MESS }, - { 1, "***:BOARD W01", OVL_W01 }, - { 1, "***:BOARD W02", OVL_W02 }, - { 1, "***:BOARD W03", OVL_W03 }, - { 1, "***:BOARD W04", OVL_W04 }, - { 1, "***:BOARD W05", OVL_W05 }, - { 1, "***:BOARD W06", OVL_W06 }, - { 1, "***:BOARD W20", OVL_W20 }, - { 1, "***:BOARD W21", OVL_W21 }, - { 1, "***:STAFF", OVL_STAFF }, - { 1, "***:STORY TEST", OVL_MSTORY4 }, +static SMEntry smMenuTbl[SM_PAGE_MAX * SM_PAGE_SIZE] = { + { 1, "401:WAKUGURI DIVING", OVL_M401 }, + { 1, "402:PURURUN! BIGSLIME", OVL_M402 }, + { 1, "403:TAORERUKABE!", OVL_M403 }, + { 1, "404:CRAYON RUNNER", OVL_M404 }, + { 1, "405:MEDREY RACE", OVL_M405 }, + { 1, "406:SKI RACE", OVL_M406 }, + { 1, "407:BATTANDOMINO", OVL_M407 }, + { 1, "408:SKY DIVE", OVL_M408 }, + { 1, "409:CRAY SHOT", OVL_M409 }, + { 1, "410:JANJAN FREE THROW", OVL_M410 }, + { 1, "411:PAZZLE DE PONG", OVL_M411 }, + { 1, "412:SNOW THROW", OVL_M412 }, + { 1, "413:BOMBHEI PAZZLE!", OVL_M413 }, + { 1, "414:NERATTE UTE!", OVL_M414 }, + { 1, "415:PYONPYON STAMP", OVL_M415 }, + { 1, "416:MAMORE FIRE", OVL_M416 }, + { 1, "417:MARIO SURFER", OVL_M417 }, + { 1, "418:TAIHOU KAKURENBO", OVL_M418 }, + { 1, "419:BANANA DE KOROBASE", OVL_M419 }, + { 1, "420:WATER BATTLE", OVL_M420 }, + { 1, "421:BODY BALOON", OVL_M421 }, + { 1, "422:BELCON COIN", OVL_M422 }, + { 1, "423:GOAL AND GOAL", OVL_M423 }, + { 1, "424:CLANE CATCH", OVL_M424 }, + { 1, "425:AIR DOSSUN", OVL_M425 }, + { 1, "426:KYOROKYORO PANIC", OVL_M426 }, + { 1, "427:BOAT RACE", OVL_M427 }, + { 1, "428:THE ROCK CLIME", OVL_M428 }, + { 1, "429:TREASURE FOREST", OVL_M429 }, + { 1, "430:PARASAILING GO", OVL_M430 }, + { 1, "431:GURUGURU BOX", OVL_M431 }, + { 1, "432:PAIR DE RACE", OVL_M432 }, + { 1, "433:BEACH VOLLEY", OVL_SUBCHRSEL }, + { 1, "434:KINGYOSUKUI", OVL_M434 }, + { 1, "435:KOOPA DARTS", OVL_M435 }, + { 1, "436:KOOPANO AREGA TABETAI!", OVL_M436 }, + { 1, "437:FUSEN RAKUGO", OVL_M437 }, + { 1, "438:SYAKUNETSU WANWAN ATTACK", OVL_M438 }, + { 1, "439:GURUGURU DANGEROUS", OVL_M439 }, + { 1, "440:NEO KOOPA BAKUDAN", OVL_M440 }, + { 1, "441:HIRAHIRA CHOUCHO", OVL_M441 }, + { 1, "442:SUIMYAKU HORE2", OVL_M442 }, + { 1, "443:DRUG RACE", OVL_M443 }, + { 1, "444:MIRACLE PINBALL", OVL_M444 }, + { 1, "445:KINOPIO HAMMER", OVL_M445 }, + { 1, "446:3MAI SOROERO!", OVL_M446 }, + { 1, "447:IQ BLOCK", OVL_M447 }, + { 1, "448:FUMIKURI", OVL_M448 }, + { 1, "449:NOKO2 KOURA PAZZLE", OVL_M449 }, + { 1, "450:LAST GAME", OVL_M450 }, + { 1, "451:PAZZLE", OVL_M451 }, + { 1, "455:BURUTTE 1BAN", OVL_M455 }, + { 1, "456:MOGUTTE 1BAN", OVL_M456 }, + { 1, "457:SUMOH", OVL_M457 }, + { 1, "458:PSYCOLO BATTLE", OVL_M458 }, + { 1, "459:Dr.WARIO", OVL_M459 }, + { 1, "460:", OVL_M460 }, + { 1, "461:BOMBHEI SCRANBLE", OVL_M461 }, + { 1, "462:", OVL_M462 }, + { 1, "***:MESS CHECK", OVL_MESS }, + { 1, "***:BOARD W01", OVL_W01 }, + { 1, "***:BOARD W02", OVL_W02 }, + { 1, "***:BOARD W03", OVL_W03 }, + { 1, "***:BOARD W04", OVL_W04 }, + { 1, "***:BOARD W05", OVL_W05 }, + { 1, "***:BOARD W06", OVL_W06 }, + { 1, "***:BOARD W20", OVL_W20 }, + { 1, "***:BOARD W21", OVL_W21 }, + { 1, "***:STAFF", OVL_STAFF }, + { 1, "***:STORY TEST", OVL_MSTORY4 }, }; -static u32 cameraMaskTbl[] = { - ( 1 << 0 ), - ( 1 << 1 ), - ( 1 << 2 ), - ( 1 << 3 ) -}; +static u32 cameraMaskTbl[] = { (1 << 0), (1 << 1), (1 << 2), (1 << 3) }; -static u32 lbl_1_data_844[] = { - 0, 1, 2, 3, 4, 5 -}; +static u32 lbl_1_data_844[] = { 0, 1, 2, 3, 4, 5 }; -static char *dvdMusTbl[] = { - "sound/mu_016a.dvd", - "sound/mu_047a.dvd", - "sound/mu_052a.dvd", - "sound/mu_054a.dvd", - "sound/mu_101a.dvd", - "sound/mu_108a.dvd", - "sound/mu002a.dvd", - "" -}; +static char *dvdMusTbl[] = { "sound/mu_016a.dvd", "sound/mu_047a.dvd", "sound/mu_052a.dvd", "sound/mu_054a.dvd", "sound/mu_101a.dvd", + "sound/mu_108a.dvd", "sound/mu002a.dvd", "" }; static s16 smPage; static s16 smSelectPosBackup[SM_PAGE_MAX]; @@ -160,161 +137,166 @@ static void SMRand8Tick(omObjData *object); void ObjectSetup(void) { - static char *funcId = "SMOBJECTSETUP\n"; - s32 i; - Process *objman; - Vec pos, dir; - - OSReport("ObjectSetup:%08x\n", ObjectSetup); - OSReport("\n\n\n******* SMObjectSetup *********\n"); - OSReport(funcId); - objman = omInitObjMan(50, 8192); - for(i=0; i<4; i++) { - if(GWPlayerCfg[i].character >= 8) { - break; - } - } - if(i != 4) { - for(i=0; i<4; i++) { - GWPlayerCfg[i].character = i; - } - } - smMainObj = omAddObjEx(objman, 0, 0, 0, -1, SMInit); - outViewObj = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti); - omAddObjEx(objman, 0, 0, 0, -1, SMRand8Tick); - outViewObj->work[0] = 4; - for(i=0; i<4; i++) { - CRotM[i].x = -20.0f; - CRotM[i].y = 0.0f; - CRotM[i].z = 0.0f; - CenterM[i].x = 0.0f; - CenterM[i].y = 50.0f; - CenterM[i].z = 0.0f; - CZoomM[i] = 500.0f; - Hu3DCameraCreate(cameraMaskTbl[i]); - Hu3DCameraPerspectiveSet(cameraMaskTbl[i], 45.0f, 20.0f, 25000.0f, 4.0f/3.0f); - Hu3DCameraViewportSet(cameraMaskTbl[i], (i%2)*320.0f, (i/2)*240.0f, 320.0f, 240.0f, 0.0f, 1.0f); - } - Hu3DGLightCreate(0.0f, 0.0f, 100.0f, 0.0f, 0.0f, -1.0f, 255, 255, 255); - pos.x = 0.0f; - pos.y = 0.0f; - pos.z = 200.0f; - dir.x = dir.y = 0.0f; - dir.z = -1.0f; - SetDefLight(&pos, &dir, 255, 255, 255, 64, 64, 64, 255, 255, 255); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - GWMGTypeSet(-1); - _ClearFlag(FLAG_ID_MAKE(1, 0)); - GWSystem.turn = 1; - GWSystem.max_turn = 20; + static char *funcId = "SMOBJECTSETUP\n"; + s32 i; + Process *objman; + Vec pos, dir; + + OSReport("ObjectSetup:%08x\n", ObjectSetup); + OSReport("\n\n\n******* SMObjectSetup *********\n"); + OSReport(funcId); + objman = omInitObjMan(50, 8192); + for (i = 0; i < 4; i++) { + if (GWPlayerCfg[i].character >= 8) { + break; + } + } + if (i != 4) { + for (i = 0; i < 4; i++) { + GWPlayerCfg[i].character = i; + } + } + smMainObj = omAddObjEx(objman, 0, 0, 0, -1, SMInit); + outViewObj = omAddObjEx(objman, 32730, 0, 0, -1, omOutViewMulti); + omAddObjEx(objman, 0, 0, 0, -1, SMRand8Tick); + outViewObj->work[0] = 4; + for (i = 0; i < 4; i++) { + CRotM[i].x = -20.0f; + CRotM[i].y = 0.0f; + CRotM[i].z = 0.0f; + CenterM[i].x = 0.0f; + CenterM[i].y = 50.0f; + CenterM[i].z = 0.0f; + CZoomM[i] = 500.0f; + Hu3DCameraCreate(cameraMaskTbl[i]); + Hu3DCameraPerspectiveSet(cameraMaskTbl[i], 45.0f, 20.0f, 25000.0f, 4.0f / 3.0f); + Hu3DCameraViewportSet(cameraMaskTbl[i], (i % 2) * 320.0f, (i / 2) * 240.0f, 320.0f, 240.0f, 0.0f, 1.0f); + } + Hu3DGLightCreate(0.0f, 0.0f, 100.0f, 0.0f, 0.0f, -1.0f, 255, 255, 255); + pos.x = 0.0f; + pos.y = 0.0f; + pos.z = 200.0f; + dir.x = dir.y = 0.0f; + dir.z = -1.0f; + SetDefLight(&pos, &dir, 255, 255, 255, 64, 64, 64, 255, 255, 255); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + GWMGTypeSet(-1); + _ClearFlag(FLAG_ID_MAKE(1, 0)); + GWSystem.turn = 1; + GWSystem.max_turn = 20; } static void CopyPlayerCfg(PlayerConfig *dst, PlayerConfig *src) { - s32 i; - for(i=0; i<4; i++) { - *dst++ = *src++; - } + s32 i; + for (i = 0; i < 4; i++) { + *dst++ = *src++; + } } static void CalcBtns(void) { - s32 i; - keyDStk = keyDStkDown = btnDown = 0; - for(i=0; i<4; i++) { - keyDStkAll[i] = keyDStkAllDown[i] = btnDownAll[i] = 0; - if((HuPadDStkRep[i]|HuPadBtn[i]) & PAD_BUTTON_LEFT) { - keyDStkAll[i] |= SM_KEY_LEFT; - } - if((HuPadDStkRep[i]|HuPadBtn[i]) & PAD_BUTTON_RIGHT) { - keyDStkAll[i] |= SM_KEY_RIGHT; - } - if((HuPadDStkRep[i]|HuPadBtn[i]) & PAD_BUTTON_UP) { - keyDStkAll[i] |= SM_KEY_UP; - } - if((HuPadDStkRep[i]|HuPadBtn[i]) & PAD_BUTTON_DOWN) { - keyDStkAll[i] |= SM_KEY_DOWN; - } - btnDownAll[i] |= HuPadBtnDown[i]; - keyDStkAllDown[i] = (keyDStkAll[i] ^ keyDStkAllPrev[i]) & keyDStkAll[i]; - keyDStkAllPrev[i] = keyDStkAll[i]; - keyDStk |= keyDStkAll[i]; - keyDStkDown |= keyDStkAllDown[i]; - btnDown |= btnDownAll[i]; - } + s32 i; + keyDStk = keyDStkDown = btnDown = 0; + for (i = 0; i < 4; i++) { + keyDStkAll[i] = keyDStkAllDown[i] = btnDownAll[i] = 0; + if ((HuPadDStkRep[i] | HuPadBtn[i]) & PAD_BUTTON_LEFT) { + keyDStkAll[i] |= SM_KEY_LEFT; + } + if ((HuPadDStkRep[i] | HuPadBtn[i]) & PAD_BUTTON_RIGHT) { + keyDStkAll[i] |= SM_KEY_RIGHT; + } + if ((HuPadDStkRep[i] | HuPadBtn[i]) & PAD_BUTTON_UP) { + keyDStkAll[i] |= SM_KEY_UP; + } + if ((HuPadDStkRep[i] | HuPadBtn[i]) & PAD_BUTTON_DOWN) { + keyDStkAll[i] |= SM_KEY_DOWN; + } + btnDownAll[i] |= HuPadBtnDown[i]; + keyDStkAllDown[i] = (keyDStkAll[i] ^ keyDStkAllPrev[i]) & keyDStkAll[i]; + keyDStkAllPrev[i] = keyDStkAll[i]; + keyDStk |= keyDStkAll[i]; + keyDStkDown |= keyDStkAllDown[i]; + btnDown |= btnDownAll[i]; + } } static void DrawPage(void) { - s32 i; - SMEntry *entry; - fontcolor = FONT_COLOR_YELLOW; - print8(200, 160, 2.5f, "PAGE:%d/%d", smPage+1, SM_PAGE_MAX); - for(i=0; ienabled == 1) { - if(i == smSelectPos) { - fontcolor = FONT_COLOR_CYAN; - } else { - fontcolor = FONT_COLOR_GREEN; - } - } else { - fontcolor = FONT_COLOR_DARK_GREEN; - } - print8(100, (float)((i+10)*8)*2.5f, 2.5f, "%s", entry->name); - } + s32 i; + SMEntry *entry; + fontcolor = FONT_COLOR_YELLOW; + print8(200, 160, 2.5f, "PAGE:%d/%d", smPage + 1, SM_PAGE_MAX); + for (i = 0; i < SM_PAGE_SIZE; i++) { + entry = &smMenuTbl[(smPage * SM_PAGE_SIZE) + i]; + if (entry->enabled == 1) { + if (i == smSelectPos) { + fontcolor = FONT_COLOR_CYAN; + } + else { + fontcolor = FONT_COLOR_GREEN; + } + } + else { + fontcolor = FONT_COLOR_DARK_GREEN; + } + print8(100, (float)((i + 10) * 8) * 2.5f, 2.5f, "%s", entry->name); + } } static void MoveSMCursor(s16 amount); static void MoveSMPage(s16 amount) { - s16 page; - s32 i; - u16 enabled; - s16 page_old; - enabled = 0; - page = smPage; - page_old = page; - do { - page += amount; - if(page >= SM_PAGE_MAX) { - page = 0; - } else if(page < 0) { - page = SM_PAGE_MAX-1; - } - for(i=0; i= SM_PAGE_MAX) { + page = 0; + } + else if (page < 0) { + page = SM_PAGE_MAX - 1; + } + for (i = 0; i < SM_PAGE_SIZE; i++) { + if (smMenuTbl[(page * SM_PAGE_SIZE) + i].enabled == 1) { + enabled = 1; + break; + } + } + } while (!enabled); + smPage = page; + if (page_old == -1) { + smSelectPos = -1; + MoveSMCursor(1); + smSelectPosBackup[smPage] = smSelectPos; + } + else { + smSelectPosBackup[page_old] = smSelectPos; + smSelectPos = smSelectPosBackup[smPage]; + } } static void MoveSMCursor(s16 amount) { - s16 pos; - pos = smSelectPos; - do { - pos += amount; - if(pos >= SM_PAGE_SIZE) { - pos = 0; - } else if(pos < 0) { - pos = SM_PAGE_SIZE-1; - } - } while(!smMenuTbl[(smPage*SM_PAGE_SIZE)+pos].enabled); - smSelectPos = pos; - (void)pos; + s16 pos; + pos = smSelectPos; + do { + pos += amount; + if (pos >= SM_PAGE_SIZE) { + pos = 0; + } + else if (pos < 0) { + pos = SM_PAGE_SIZE - 1; + } + } while (!smMenuTbl[(smPage * SM_PAGE_SIZE) + pos].enabled); + smSelectPos = pos; + (void)pos; } static s16 SMChangeChar(s16 player, s16 offset); @@ -322,43 +304,44 @@ static void SMUpdate(omObjData *object); static void SMInit(omObjData *object) { - s32 i, j; - OSReport("SMinit:%08x\n", SMInit); - omDLLDBGOut(); - Hu3DBGColorSet(0, 0, 0); - CopyPlayerCfg(smPlayerCfg, GWPlayerCfg); - for(i=0; i<4; i++) { - for(j=i+1; j<4; j++) { - if(smPlayerCfg[i].character == smPlayerCfg[j].character) { - smPlayerCfg[j].character = SMChangeChar(j, -1); - } - } - } - smPage = -1; - for(i=0; ifunc = SMUpdate; + s32 i, j; + OSReport("SMinit:%08x\n", SMInit); + omDLLDBGOut(); + Hu3DBGColorSet(0, 0, 0); + CopyPlayerCfg(smPlayerCfg, GWPlayerCfg); + for (i = 0; i < 4; i++) { + for (j = i + 1; j < 4; j++) { + if (smPlayerCfg[i].character == smPlayerCfg[j].character) { + smPlayerCfg[j].character = SMChangeChar(j, -1); + } + } + } + smPage = -1; + for (i = 0; i < SM_PAGE_MAX; i++) { + for (j = 0; j < SM_PAGE_SIZE; j++) { + if (smMenuTbl[(i * SM_PAGE_SIZE) + j].enabled == 1) { + break; + } + } + if (j == SM_PAGE_SIZE) { + smSelectPosBackup[i] = -1; + } + else { + smSelectPosBackup[i] = j; + } + } + MoveSMPage(1); + if (mgSeqOvlPrev != OVL_INVALID) { + for (i = 0; i < SM_PAGE_MAX * SM_PAGE_SIZE; i++) { + if (mgSeqOvlPrev == smMenuTbl[i].overlay && smMenuTbl[i].enabled == 1) { + smPage = i / SM_PAGE_SIZE; + smSelectPos = i % SM_PAGE_SIZE; + smSelectPosBackup[smPage] = smSelectPos; + break; + } + } + } + object->func = SMUpdate; } static void SMGroupGen(s32 index); @@ -368,110 +351,112 @@ static void SMSound3DInit(omObjData *object); static void SMUpdate(omObjData *object) { - CalcBtns(); - DrawPage(); - if(keyDStkDown & SM_KEY_UP) { - MoveSMCursor(-1); - SMGroupGen((smPage*SM_PAGE_SIZE)+smSelectPos); - return; - } - if(keyDStkDown & SM_KEY_DOWN) { - MoveSMCursor(1); - SMGroupGen((smPage*SM_PAGE_SIZE)+smSelectPos); - return; - } - if(keyDStkDown & SM_KEY_LEFT) { - MoveSMPage(-1); - SMGroupGen((smPage*SM_PAGE_SIZE)+smSelectPos); - return; - } - if(keyDStkDown & SM_KEY_RIGHT) { - MoveSMPage(1); - SMGroupGen((smPage*SM_PAGE_SIZE)+smSelectPos); - return; - } - if((btnDown & PAD_BUTTON_A) || (btnDown & PAD_BUTTON_START)) { - object->func = SMCharInit; - return; - } - if(btnDown & PAD_BUTTON_Y) { - object->func = SMPlayerCfgInit; - return; - } - if(btnDown & PAD_TRIGGER_Z) { - object->func = SMSound3DInit; - return; - } - if(btnDown & PAD_BUTTON_X) { - omOvlReturnEx(0, 1); - } + CalcBtns(); + DrawPage(); + if (keyDStkDown & SM_KEY_UP) { + MoveSMCursor(-1); + SMGroupGen((smPage * SM_PAGE_SIZE) + smSelectPos); + return; + } + if (keyDStkDown & SM_KEY_DOWN) { + MoveSMCursor(1); + SMGroupGen((smPage * SM_PAGE_SIZE) + smSelectPos); + return; + } + if (keyDStkDown & SM_KEY_LEFT) { + MoveSMPage(-1); + SMGroupGen((smPage * SM_PAGE_SIZE) + smSelectPos); + return; + } + if (keyDStkDown & SM_KEY_RIGHT) { + MoveSMPage(1); + SMGroupGen((smPage * SM_PAGE_SIZE) + smSelectPos); + return; + } + if ((btnDown & PAD_BUTTON_A) || (btnDown & PAD_BUTTON_START)) { + object->func = SMCharInit; + return; + } + if (btnDown & PAD_BUTTON_Y) { + object->func = SMPlayerCfgInit; + return; + } + if (btnDown & PAD_TRIGGER_Z) { + object->func = SMSound3DInit; + return; + } + if (btnDown & PAD_BUTTON_X) { + omOvlReturnEx(0, 1); + } } static void SMGroupGen(s32 index) { - OverlayID overlay; - s32 i; - overlay = smMenuTbl[index].overlay; - for(i=0; i<50; i++) { - if(overlay == mgInfoTbl[i].ovl) { - break; - } - } - if(i == 50) { - for(i=0; i<4; i++) { - smPlayerCfg[i].group = i; - } - return; - } - switch(mgInfoTbl[i].type) { - case 0: - case 3: - case 4: - case 5: - case 6: - for(i=0; i<4; i++) { - smPlayerCfg[i].group = i; - } - break; - - case 1: - smPlayerCfg[0].group = 0; - for(i=1; i<4; i++) { - smPlayerCfg[i].group = 1; - } - break; - - case 2: - for(i=0; i<2; i++) { - smPlayerCfg[i].group = 0; - } - for(i=2; i<4; i++) { - smPlayerCfg[i].group = 1; - } - break; - } - if(overlay == OVL_M430) { - s32 team_cnt[2]; - s32 team_players[2][2]; - team_cnt[0] = team_cnt[1] = 0; - for(i=0; i<4; i++) { - team_players[smPlayerCfg[i].group][team_cnt[smPlayerCfg[i].group]++] = i; - } - if(frandBool()) { - GWPlayerCfg[team_players[0][0]].group = 0; - GWPlayerCfg[team_players[0][1]].group = 1; - } else { - GWPlayerCfg[team_players[0][0]].group = 1; - GWPlayerCfg[team_players[0][1]].group = 0; - } - if(frandBool()) { - GWPlayerCfg[team_players[1][0]].group = 2; - GWPlayerCfg[team_players[1][1]].group = 3; - } else { - GWPlayerCfg[team_players[1][0]].group = 3; - GWPlayerCfg[team_players[1][1]].group = 2; - } - } + OverlayID overlay; + s32 i; + overlay = smMenuTbl[index].overlay; + for (i = 0; i < 50; i++) { + if (overlay == mgInfoTbl[i].ovl) { + break; + } + } + if (i == 50) { + for (i = 0; i < 4; i++) { + smPlayerCfg[i].group = i; + } + return; + } + switch (mgInfoTbl[i].type) { + case 0: + case 3: + case 4: + case 5: + case 6: + for (i = 0; i < 4; i++) { + smPlayerCfg[i].group = i; + } + break; + + case 1: + smPlayerCfg[0].group = 0; + for (i = 1; i < 4; i++) { + smPlayerCfg[i].group = 1; + } + break; + + case 2: + for (i = 0; i < 2; i++) { + smPlayerCfg[i].group = 0; + } + for (i = 2; i < 4; i++) { + smPlayerCfg[i].group = 1; + } + break; + } + if (overlay == OVL_M430) { + s32 team_cnt[2]; + s32 team_players[2][2]; + team_cnt[0] = team_cnt[1] = 0; + for (i = 0; i < 4; i++) { + team_players[smPlayerCfg[i].group][team_cnt[smPlayerCfg[i].group]++] = i; + } + if (frandBool()) { + GWPlayerCfg[team_players[0][0]].group = 0; + GWPlayerCfg[team_players[0][1]].group = 1; + } + else { + GWPlayerCfg[team_players[0][0]].group = 1; + GWPlayerCfg[team_players[0][1]].group = 0; + } + if (frandBool()) { + GWPlayerCfg[team_players[1][0]].group = 2; + GWPlayerCfg[team_players[1][1]].group = 3; + } + else { + GWPlayerCfg[team_players[1][0]].group = 3; + GWPlayerCfg[team_players[1][1]].group = 2; + } + } } static s16 charModelID[8]; @@ -479,83 +464,83 @@ static s16 playerDoneF[4]; static s16 charSelProhibitF[8]; static s32 charMdlTbl[] = { - DATA_MAKE_NUM(DATADIR_SELMENU, 0), - DATA_MAKE_NUM(DATADIR_SELMENU, 2), - DATA_MAKE_NUM(DATADIR_SELMENU, 4), - DATA_MAKE_NUM(DATADIR_SELMENU, 6), - DATA_MAKE_NUM(DATADIR_SELMENU, 8), - DATA_MAKE_NUM(DATADIR_SELMENU, 10), - DATA_MAKE_NUM(DATADIR_SELMENU, 12), - DATA_MAKE_NUM(DATADIR_SELMENU, 14), + DATA_MAKE_NUM(DATADIR_SELMENU, 0), + DATA_MAKE_NUM(DATADIR_SELMENU, 2), + DATA_MAKE_NUM(DATADIR_SELMENU, 4), + DATA_MAKE_NUM(DATADIR_SELMENU, 6), + DATA_MAKE_NUM(DATADIR_SELMENU, 8), + DATA_MAKE_NUM(DATADIR_SELMENU, 10), + DATA_MAKE_NUM(DATADIR_SELMENU, 12), + DATA_MAKE_NUM(DATADIR_SELMENU, 14), }; static s32 charMdlMotTbl[] = { - DATA_MAKE_NUM(DATADIR_SELMENU, 1), - DATA_MAKE_NUM(DATADIR_SELMENU, 3), - DATA_MAKE_NUM(DATADIR_SELMENU, 5), - DATA_MAKE_NUM(DATADIR_SELMENU, 7), - DATA_MAKE_NUM(DATADIR_SELMENU, 9), - DATA_MAKE_NUM(DATADIR_SELMENU, 11), - DATA_MAKE_NUM(DATADIR_SELMENU, 13), - DATA_MAKE_NUM(DATADIR_SELMENU, 15), + DATA_MAKE_NUM(DATADIR_SELMENU, 1), + DATA_MAKE_NUM(DATADIR_SELMENU, 3), + DATA_MAKE_NUM(DATADIR_SELMENU, 5), + DATA_MAKE_NUM(DATADIR_SELMENU, 7), + DATA_MAKE_NUM(DATADIR_SELMENU, 9), + DATA_MAKE_NUM(DATADIR_SELMENU, 11), + DATA_MAKE_NUM(DATADIR_SELMENU, 13), + DATA_MAKE_NUM(DATADIR_SELMENU, 15), }; static s16 SMChangeChar(s16 player, s16 offset) { - s32 i; - s16 character; - for(i=0; i<8; i++) { - charSelProhibitF[i] = 0; - } - for(i=0; i<4; i++) { - if(smPlayerCfg[i].iscom) { - continue; - } - charSelProhibitF[smPlayerCfg[i].character] = 1; - } - if(!offset) { - return; - } - character = smPlayerCfg[player].character; - do { - character += offset; - if(character < 0) { - character = 7; - } - if(character >= 8) { - character = 0; - } - } while(charSelProhibitF[character] != 0); - return character; + s32 i; + s16 character; + for (i = 0; i < 8; i++) { + charSelProhibitF[i] = 0; + } + for (i = 0; i < 4; i++) { + if (smPlayerCfg[i].iscom) { + continue; + } + charSelProhibitF[smPlayerCfg[i].character] = 1; + } + if (!offset) { + return; + } + character = smPlayerCfg[player].character; + do { + character += offset; + if (character < 0) { + character = 7; + } + if (character >= 8) { + character = 0; + } + } while (charSelProhibitF[character] != 0); + return character; } static void SMCharKill(void) { - s32 i; - for(i=0; i<8; i++) { - Hu3DModelKill(charModelID[i]); - } + s32 i; + for (i = 0; i < 8; i++) { + Hu3DModelKill(charModelID[i]); + } } static void CharRandomize(void) { - s32 i; - s32 j; - s32 valid_cnt; - s32 valid_list[8]; - for(i=0; i<4; i++) { - valid_cnt = 0; - for(j=0; j<8; j++) { - if(charSelProhibitF[j]) { - continue; - } - valid_list[valid_cnt++] = j; - } - if(smPlayerCfg[i].iscom == 1) { - smPlayerCfg[i].character = valid_list[rand8() % valid_cnt]; - charSelProhibitF[smPlayerCfg[i].character] = 1; - } - } + s32 i; + s32 j; + s32 valid_cnt; + s32 valid_list[8]; + for (i = 0; i < 4; i++) { + valid_cnt = 0; + for (j = 0; j < 8; j++) { + if (charSelProhibitF[j]) { + continue; + } + valid_list[valid_cnt++] = j; + } + if (smPlayerCfg[i].iscom == 1) { + smPlayerCfg[i].character = valid_list[rand8() % valid_cnt]; + charSelProhibitF[smPlayerCfg[i].character] = 1; + } + } } static void SMCharUpdate(omObjData *object); @@ -563,230 +548,233 @@ static void SMExit(omObjData *object); static void SMCharInit(omObjData *object) { - s32 i; - for(i=0; i<8; i++) { - void *data = HuDataSelHeapReadNum(charMdlTbl[i], MEMORY_DEFAULT_NUM, HEAP_DATA); - charModelID[i] = Hu3DModelCreate(data); - Hu3DModelPosSet(charModelID[i], 0.0f, 0.0f, 0.0f); - Hu3DModelAttrSet(charModelID[i], 0x40000001); - Hu3DMotionSet(charModelID[i], Hu3DJointMotion(charModelID[i], HuDataSelHeapReadNum(charMdlMotTbl[i], MEMORY_DEFAULT_NUM, HEAP_DATA))); - } - for(i=0; i<4; i++) { - playerDoneF[i] = 0; - } - SMChangeChar(0, 0); - object->func = SMCharUpdate; + s32 i; + for (i = 0; i < 8; i++) { + void *data = HuDataSelHeapReadNum(charMdlTbl[i], MEMORY_DEFAULT_NUM, HEAP_DATA); + charModelID[i] = Hu3DModelCreate(data); + Hu3DModelPosSet(charModelID[i], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(charModelID[i], 0x40000001); + Hu3DMotionSet(charModelID[i], Hu3DJointMotionFile(charModelID[i], charMdlMotTbl[i])); + } + for (i = 0; i < 4; i++) { + playerDoneF[i] = 0; + } + SMChangeChar(0, 0); + object->func = SMCharUpdate; } static void SMCharUpdate(omObjData *object) { - s32 i; - - s16 port; - s32 j; - s16 w; - s16 x; - s16 y; - s16 done_players; - s16 num_players; - - for(i=0; i<8; i++) { - Hu3DModelAttrSet(charModelID[i], 0x1); - } - for(i=0; i<4; i++) { - if(!smPlayerCfg[i].iscom) { - Hu3DModelAttrReset(charModelID[smPlayerCfg[i].character], 0x1); - Hu3DModelCameraSet(charModelID[smPlayerCfg[i].character], cameraMaskTbl[i]); - } - } - for(i=0, done_players=0, num_players=0; i<4; i++) { - if(playerDoneF[i] == 1) { - done_players++; - } - if(!smPlayerCfg[i].iscom) { - num_players++; - } - } - if(done_players == num_players) { - SMChangeChar(0, 0); - CharRandomize(); - CopyPlayerCfg(GWPlayerCfg, smPlayerCfg); - CharKill(-1); - OSReport("%d,%d,%d,%d\n", GWPlayerCfg[0].character, - GWPlayerCfg[1].character, - GWPlayerCfg[2].character, - GWPlayerCfg[3].character); - if(!CharAMemPtrGet(GWPlayerCfg[0].character)) { - CharARAMOpen(GWPlayerCfg[0].character); - } - if(!CharAMemPtrGet(GWPlayerCfg[1].character)) { - CharARAMOpen(GWPlayerCfg[1].character); - } - if(!CharAMemPtrGet(GWPlayerCfg[2].character)) { - CharARAMOpen(GWPlayerCfg[2].character); - } - if(!CharAMemPtrGet(GWPlayerCfg[3].character)) { - CharARAMOpen(GWPlayerCfg[3].character); - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); - object->func = SMExit; - } - CalcBtns(); - for(i=0; i<4; i++) { - port = smPlayerCfg[i].pad_idx; - if(!playerDoneF[i]) { - if(keyDStkAllDown[port] & SM_KEY_LEFT) { - smPlayerCfg[port].character = SMChangeChar(i, -1); - } - if(keyDStkAllDown[port] & SM_KEY_RIGHT) { - smPlayerCfg[port].character = SMChangeChar(i, 1); - } - if(btnDownAll[port] & PAD_BUTTON_A) { - playerDoneF[i] = 1; - } - } - if(HuPadBtnDown[port] & PAD_BUTTON_B) { - if(done_players != 0) { - playerDoneF[i] = 0; - } else { - SMCharKill(); - object->func = SMUpdate; - return; - } - } - if(btnDownAll[port] & PAD_BUTTON_START) { - for(j=0; j<4; j++) { - if(!smPlayerCfg[j].iscom) { - playerDoneF[j] = 1; - } - } - return; - } - if(!smPlayerCfg[i].iscom) { - w = strlen(smCharTbl[smPlayerCfg[i].character]); - w *= 16; - x = ((320-w)/2)+((i%2)*320); - y = 176+((i/2)*240); - if(playerDoneF[i] == 1) { - fontcolor = FONT_COLOR_WHITE; - print8(x, y, 2.0f, "\xFD\x08""%s", smCharTbl[smPlayerCfg[i].character]); - } else { - fontcolor = FONT_COLOR_GREEN; - print8(x, y, 2.0f, "\xFD\x05""%s", smCharTbl[smPlayerCfg[i].character]); - } - } else { - w = 72; - x = ((320-w)/2)+((i%2)*320); - y = 108+((i/2)*240); - fontcolor = FONT_COLOR_YELLOW; - print8(x, y, 3.0f, "\xFD\x07""COM"); - } - } + s32 i; + + s16 port; + s32 j; + s16 w; + s16 x; + s16 y; + s16 done_players; + s16 num_players; + + for (i = 0; i < 8; i++) { + Hu3DModelAttrSet(charModelID[i], 0x1); + } + for (i = 0; i < 4; i++) { + if (!smPlayerCfg[i].iscom) { + Hu3DModelAttrReset(charModelID[smPlayerCfg[i].character], 0x1); + Hu3DModelCameraSet(charModelID[smPlayerCfg[i].character], cameraMaskTbl[i]); + } + } + for (i = 0, done_players = 0, num_players = 0; i < 4; i++) { + if (playerDoneF[i] == 1) { + done_players++; + } + if (!smPlayerCfg[i].iscom) { + num_players++; + } + } + if (done_players == num_players) { + SMChangeChar(0, 0); + CharRandomize(); + CopyPlayerCfg(GWPlayerCfg, smPlayerCfg); + CharKill(-1); + OSReport("%d,%d,%d,%d\n", GWPlayerCfg[0].character, GWPlayerCfg[1].character, GWPlayerCfg[2].character, GWPlayerCfg[3].character); + if (!CharAMemPtrGet(GWPlayerCfg[0].character)) { + CharARAMOpen(GWPlayerCfg[0].character); + } + if (!CharAMemPtrGet(GWPlayerCfg[1].character)) { + CharARAMOpen(GWPlayerCfg[1].character); + } + if (!CharAMemPtrGet(GWPlayerCfg[2].character)) { + CharARAMOpen(GWPlayerCfg[2].character); + } + if (!CharAMemPtrGet(GWPlayerCfg[3].character)) { + CharARAMOpen(GWPlayerCfg[3].character); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + object->func = SMExit; + } + CalcBtns(); + for (i = 0; i < 4; i++) { + port = smPlayerCfg[i].pad_idx; + if (!playerDoneF[i]) { + if (keyDStkAllDown[port] & SM_KEY_LEFT) { + smPlayerCfg[port].character = SMChangeChar(i, -1); + } + if (keyDStkAllDown[port] & SM_KEY_RIGHT) { + smPlayerCfg[port].character = SMChangeChar(i, 1); + } + if (btnDownAll[port] & PAD_BUTTON_A) { + playerDoneF[i] = 1; + } + } + if (HuPadBtnDown[port] & PAD_BUTTON_B) { + if (done_players != 0) { + playerDoneF[i] = 0; + } + else { + SMCharKill(); + object->func = SMUpdate; + return; + } + } + if (btnDownAll[port] & PAD_BUTTON_START) { + for (j = 0; j < 4; j++) { + if (!smPlayerCfg[j].iscom) { + playerDoneF[j] = 1; + } + } + return; + } + if (!smPlayerCfg[i].iscom) { + w = strlen(smCharTbl[smPlayerCfg[i].character]); + w *= 16; + x = ((320 - w) / 2) + ((i % 2) * 320); + y = 176 + ((i / 2) * 240); + if (playerDoneF[i] == 1) { + fontcolor = FONT_COLOR_WHITE; + print8(x, y, 2.0f, + "\xFD\x08" + "%s", + smCharTbl[smPlayerCfg[i].character]); + } + else { + fontcolor = FONT_COLOR_GREEN; + print8(x, y, 2.0f, + "\xFD\x05" + "%s", + smCharTbl[smPlayerCfg[i].character]); + } + } + else { + w = 72; + x = ((320 - w) / 2) + ((i % 2) * 320); + y = 108 + ((i / 2) * 240); + fontcolor = FONT_COLOR_YELLOW; + print8(x, y, 3.0f, + "\xFD\x07" + "COM"); + } + } } static void SMExit(omObjData *object) { - s32 mg; - if(WipeStatGet()) { - return; - } - while(HuARDMACheck()); - mg = omMgIndexGet(smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay); - GWSystem.mg_next = mg; - OSReport("mgNo=%d\n", mg); - if(smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay == OVL_W10) { - _SetFlag(0x1000B); - } else if(smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay == OVL_W20) { - BoardSaveInit(7); - BoardPartyConfigSet(0, 0, 0, 20, 0, 0, 0, 0); - } else if(smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay == OVL_W21) { - BoardSaveInit(8); - BoardPartyConfigSet(0, 0, 0, 20, 0, 0, 0, 0); - } else { - _ClearFlag(0x1000B); - } - if(mg == -1 || !(HuPadBtn[0] & PAD_TRIGGER_Z) || mgInfoTbl[mg].type == 5 || mgInfoTbl[mg].type == 3 || mgInfoTbl[mg].type == 6) { - omOvlCallEx(smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay, 1, 0, 0); - } else { - omOvlCallEx(OVL_INST, 1, 0, 0); - } - mgSeqOvlPrev = smMenuTbl[(smPage*SM_PAGE_SIZE)+smSelectPos].overlay; - smSelectPosExit = smSelectPos; + s32 mg; + if (WipeStatGet()) { + return; + } + while (HuARDMACheck()) + ; + mg = omMgIndexGet(smMenuTbl[(smPage * SM_PAGE_SIZE) + smSelectPos].overlay); + GWSystem.mg_next = mg; + OSReport("mgNo=%d\n", mg); + if (smMenuTbl[(smPage * SM_PAGE_SIZE) + smSelectPos].overlay == OVL_W10) { + _SetFlag(0x1000B); + } + else if (smMenuTbl[(smPage * SM_PAGE_SIZE) + smSelectPos].overlay == OVL_W20) { + BoardSaveInit(7); + BoardPartyConfigSet(0, 0, 0, 20, 0, 0, 0, 0); + } + else if (smMenuTbl[(smPage * SM_PAGE_SIZE) + smSelectPos].overlay == OVL_W21) { + BoardSaveInit(8); + BoardPartyConfigSet(0, 0, 0, 20, 0, 0, 0, 0); + } + else { + _ClearFlag(0x1000B); + } + if (mg == -1 || !(HuPadBtn[0] & PAD_TRIGGER_Z) || mgInfoTbl[mg].type == 5 || mgInfoTbl[mg].type == 3 || mgInfoTbl[mg].type == 6) { + omOvlCallEx(smMenuTbl[(smPage * SM_PAGE_SIZE) + smSelectPos].overlay, 1, 0, 0); + } + else { + omOvlCallEx(OVL_INST, 1, 0, 0); + } + mgSeqOvlPrev = smMenuTbl[(smPage * SM_PAGE_SIZE) + smSelectPos].overlay; + smSelectPosExit = smSelectPos; } -static char *padCfgStrTbl[] = { - "PLAYER:%d", - " PAD%d:%s", - "PADNO:%d", - " GRP:%d", - " DIF:%s" -}; +static char *padCfgStrTbl[] = { "PLAYER:%d", " PAD%d:%s", "PADNO:%d", " GRP:%d", " DIF:%s" }; static s16 playerCfgSelF; static s16 playerCfgPlayerPos; static s16 playerCfgOptionPos; -#define DO_HILITE(option) \ -do { \ - s32 color; \ - if(playerCfgOptionPos == option) { \ - color = fontcolor = FONT_COLOR_CYAN; \ - } else { \ - color = fontcolor = FONT_COLOR_GREEN; \ - } \ - (void)color; \ -} while(0) - +#define DO_HILITE(option) \ + do { \ + s32 color; \ + if (playerCfgOptionPos == option) { \ + color = fontcolor = FONT_COLOR_CYAN; \ + } \ + else { \ + color = fontcolor = FONT_COLOR_GREEN; \ + } \ + (void)color; \ + } while (0) + static void SMPlayerCfgDraw(void) { - s32 i; - s16 x; - s16 y; - s16 w; - char *comStr[] = { - "HUMAN", - "COM" - }; - char *diffStr[] = { - "EASY", - "NORMAL", - "HARD", - "VERYHARD" - }; - - for(i=0; i<4; i++) { - w = 128; - x = ((320-w)/2)+((i%2)*320); - y = ((i/2)*240)+48; - if(playerCfgSelF == 0 && playerCfgPlayerPos == i) { - fontcolor = FONT_COLOR_CYAN; - } else { - fontcolor = FONT_COLOR_GREEN; - } - print8(x, y, 2.0f, padCfgStrTbl[0], i); - if(playerCfgSelF == 0) { - fontcolor = FONT_COLOR_DARK_GREEN; - print8(((i%2)*320)+64, ((i/2)*240)+80, 2.0f, padCfgStrTbl[1], smPlayerCfg[i].pad_idx, comStr[smPlayerCfg[i].iscom]); - print8(((i%2)*320)+64, ((i/2)*240)+96, 2.0f, padCfgStrTbl[2], smPlayerCfg[i].pad_idx); - print8(((i%2)*320)+64, ((i/2)*240)+112, 2.0f, padCfgStrTbl[3], smPlayerCfg[i].group); - print8(((i%2)*320)+64, ((i/2)*240)+128, 2.0f, padCfgStrTbl[4], diffStr[smPlayerCfg[i].diff]); - } else if(playerCfgSelF == 1 && playerCfgPlayerPos == i) { - DO_HILITE(0); - print8(((i%2)*320)+64, ((i/2)*240)+80, 2.0f, padCfgStrTbl[1], smPlayerCfg[i].pad_idx, comStr[smPlayerCfg[i].iscom]); - DO_HILITE(1); - print8(((i%2)*320)+64, ((i/2)*240)+96, 2.0f, padCfgStrTbl[2], smPlayerCfg[i].pad_idx); - DO_HILITE(2); - print8(((i%2)*320)+64, ((i/2)*240)+112, 2.0f, padCfgStrTbl[3], smPlayerCfg[i].group); - DO_HILITE(3); - print8(((i%2)*320)+64, ((i/2)*240)+128, 2.0f, padCfgStrTbl[4], diffStr[smPlayerCfg[i].diff]); - } else { - fontcolor = FONT_COLOR_DARK_GREEN; - print8(((i%2)*320)+64, ((i/2)*240)+80, 2.0f, padCfgStrTbl[1], smPlayerCfg[i].pad_idx, comStr[smPlayerCfg[i].iscom]); - print8(((i%2)*320)+64, ((i/2)*240)+96, 2.0f, padCfgStrTbl[2], smPlayerCfg[i].pad_idx); - print8(((i%2)*320)+64, ((i/2)*240)+112, 2.0f, padCfgStrTbl[3], smPlayerCfg[i].group); - print8(((i%2)*320)+64, ((i/2)*240)+128, 2.0f, padCfgStrTbl[4], diffStr[smPlayerCfg[i].diff]); - } - } + s32 i; + s16 x; + s16 y; + s16 w; + char *comStr[] = { "HUMAN", "COM" }; + char *diffStr[] = { "EASY", "NORMAL", "HARD", "VERYHARD" }; + + for (i = 0; i < 4; i++) { + w = 128; + x = ((320 - w) / 2) + ((i % 2) * 320); + y = ((i / 2) * 240) + 48; + if (playerCfgSelF == 0 && playerCfgPlayerPos == i) { + fontcolor = FONT_COLOR_CYAN; + } + else { + fontcolor = FONT_COLOR_GREEN; + } + print8(x, y, 2.0f, padCfgStrTbl[0], i); + if (playerCfgSelF == 0) { + fontcolor = FONT_COLOR_DARK_GREEN; + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 80, 2.0f, padCfgStrTbl[1], smPlayerCfg[i].pad_idx, comStr[smPlayerCfg[i].iscom]); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 96, 2.0f, padCfgStrTbl[2], smPlayerCfg[i].pad_idx); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 112, 2.0f, padCfgStrTbl[3], smPlayerCfg[i].group); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 128, 2.0f, padCfgStrTbl[4], diffStr[smPlayerCfg[i].diff]); + } + else if (playerCfgSelF == 1 && playerCfgPlayerPos == i) { + DO_HILITE(0); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 80, 2.0f, padCfgStrTbl[1], smPlayerCfg[i].pad_idx, comStr[smPlayerCfg[i].iscom]); + DO_HILITE(1); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 96, 2.0f, padCfgStrTbl[2], smPlayerCfg[i].pad_idx); + DO_HILITE(2); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 112, 2.0f, padCfgStrTbl[3], smPlayerCfg[i].group); + DO_HILITE(3); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 128, 2.0f, padCfgStrTbl[4], diffStr[smPlayerCfg[i].diff]); + } + else { + fontcolor = FONT_COLOR_DARK_GREEN; + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 80, 2.0f, padCfgStrTbl[1], smPlayerCfg[i].pad_idx, comStr[smPlayerCfg[i].iscom]); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 96, 2.0f, padCfgStrTbl[2], smPlayerCfg[i].pad_idx); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 112, 2.0f, padCfgStrTbl[3], smPlayerCfg[i].group); + print8(((i % 2) * 320) + 64, ((i / 2) * 240) + 128, 2.0f, padCfgStrTbl[4], diffStr[smPlayerCfg[i].diff]); + } + } } #undef DO_HILITE @@ -794,114 +782,120 @@ static void SMPlayerCfgUpdate(omObjData *object); static void SMPlayerCfgInit(omObjData *object) { - playerCfgSelF = 0; - playerCfgPlayerPos = 0; - playerCfgOptionPos = 0; - object->func = SMPlayerCfgUpdate; + playerCfgSelF = 0; + playerCfgPlayerPos = 0; + playerCfgOptionPos = 0; + object->func = SMPlayerCfgUpdate; } static void SMPlayerCfgUpdate(omObjData *object) { - s32 offset; - SMPlayerCfgDraw(); - CalcBtns(); - if(!playerCfgSelF) { - if(keyDStkDown & SM_KEY_LEFT) { - offset = ((playerCfgPlayerPos & 0x1)-1) & 0x1; - playerCfgPlayerPos = (playerCfgPlayerPos & 0xFFFE)+offset; - } else { - if(keyDStkDown & SM_KEY_RIGHT) { - offset = ((playerCfgPlayerPos & 0x1)+1) & 0x1; - playerCfgPlayerPos = (playerCfgPlayerPos & 0xFFFE)+offset; - } else if(keyDStkDown & SM_KEY_DOWN) { - if((playerCfgPlayerPos += 2) >= 4) { - playerCfgPlayerPos -= 4; - } - } else if(keyDStkDown & SM_KEY_UP) { - if((playerCfgPlayerPos -= 2) < 0) { - playerCfgPlayerPos += 4; - } - } - } - if(btnDown & PAD_BUTTON_A) { - playerCfgSelF = 1; - return; - } - if((btnDown & PAD_BUTTON_B) || (btnDown & PAD_BUTTON_Y)) { - object->func = SMUpdate; - } - } else if(keyDStkDown & SM_KEY_UP) { - if(--playerCfgOptionPos < 0) { - playerCfgOptionPos = 3; - } - } else if(keyDStkDown & SM_KEY_DOWN) { - if(++playerCfgOptionPos > 3) { - playerCfgOptionPos = 0; - } - } else if(keyDStkDown & SM_KEY_LEFT) { - switch(playerCfgOptionPos) { - case 0: - smPlayerCfg[playerCfgPlayerPos].iscom ^= 1; - break; - - case 1: - if(--smPlayerCfg[playerCfgPlayerPos].pad_idx < 0) { - smPlayerCfg[playerCfgPlayerPos].pad_idx = 3; - } - break; - - case 2: - if(--smPlayerCfg[playerCfgPlayerPos].group < 0) { - smPlayerCfg[playerCfgPlayerPos].group = 3; - } - break; - - case 3: - if(--smPlayerCfg[playerCfgPlayerPos].diff < 0) { - smPlayerCfg[playerCfgPlayerPos].diff = 3; - } - break; - }; - } else if(keyDStkDown & SM_KEY_RIGHT) { - switch(playerCfgOptionPos) { - case 0: - smPlayerCfg[playerCfgPlayerPos].iscom ^= 1; - break; - - case 1: - if(++smPlayerCfg[playerCfgPlayerPos].pad_idx > 3) { - smPlayerCfg[playerCfgPlayerPos].pad_idx = 0; - } - break; - - case 2: - if(++smPlayerCfg[playerCfgPlayerPos].group > 3) { - smPlayerCfg[playerCfgPlayerPos].group = 0; - } - break; - - case 3: - if(++smPlayerCfg[playerCfgPlayerPos].diff > 3) { - smPlayerCfg[playerCfgPlayerPos].diff = 0; - } - break; - } - } else if((btnDown & PAD_BUTTON_A) || (btnDown & PAD_BUTTON_B)) { - playerCfgSelF = 0; - } else if(btnDown & PAD_BUTTON_Y) { - object->func = SMUpdate; - } + s32 offset; + SMPlayerCfgDraw(); + CalcBtns(); + if (!playerCfgSelF) { + if (keyDStkDown & SM_KEY_LEFT) { + offset = ((playerCfgPlayerPos & 0x1) - 1) & 0x1; + playerCfgPlayerPos = (playerCfgPlayerPos & 0xFFFE) + offset; + } + else { + if (keyDStkDown & SM_KEY_RIGHT) { + offset = ((playerCfgPlayerPos & 0x1) + 1) & 0x1; + playerCfgPlayerPos = (playerCfgPlayerPos & 0xFFFE) + offset; + } + else if (keyDStkDown & SM_KEY_DOWN) { + if ((playerCfgPlayerPos += 2) >= 4) { + playerCfgPlayerPos -= 4; + } + } + else if (keyDStkDown & SM_KEY_UP) { + if ((playerCfgPlayerPos -= 2) < 0) { + playerCfgPlayerPos += 4; + } + } + } + if (btnDown & PAD_BUTTON_A) { + playerCfgSelF = 1; + return; + } + if ((btnDown & PAD_BUTTON_B) || (btnDown & PAD_BUTTON_Y)) { + object->func = SMUpdate; + } + } + else if (keyDStkDown & SM_KEY_UP) { + if (--playerCfgOptionPos < 0) { + playerCfgOptionPos = 3; + } + } + else if (keyDStkDown & SM_KEY_DOWN) { + if (++playerCfgOptionPos > 3) { + playerCfgOptionPos = 0; + } + } + else if (keyDStkDown & SM_KEY_LEFT) { + switch (playerCfgOptionPos) { + case 0: + smPlayerCfg[playerCfgPlayerPos].iscom ^= 1; + break; + + case 1: + if (--smPlayerCfg[playerCfgPlayerPos].pad_idx < 0) { + smPlayerCfg[playerCfgPlayerPos].pad_idx = 3; + } + break; + + case 2: + if (--smPlayerCfg[playerCfgPlayerPos].group < 0) { + smPlayerCfg[playerCfgPlayerPos].group = 3; + } + break; + + case 3: + if (--smPlayerCfg[playerCfgPlayerPos].diff < 0) { + smPlayerCfg[playerCfgPlayerPos].diff = 3; + } + break; + }; + } + else if (keyDStkDown & SM_KEY_RIGHT) { + switch (playerCfgOptionPos) { + case 0: + smPlayerCfg[playerCfgPlayerPos].iscom ^= 1; + break; + + case 1: + if (++smPlayerCfg[playerCfgPlayerPos].pad_idx > 3) { + smPlayerCfg[playerCfgPlayerPos].pad_idx = 0; + } + break; + + case 2: + if (++smPlayerCfg[playerCfgPlayerPos].group > 3) { + smPlayerCfg[playerCfgPlayerPos].group = 0; + } + break; + + case 3: + if (++smPlayerCfg[playerCfgPlayerPos].diff > 3) { + smPlayerCfg[playerCfgPlayerPos].diff = 0; + } + break; + } + } + else if ((btnDown & PAD_BUTTON_A) || (btnDown & PAD_BUTTON_B)) { + playerCfgSelF = 0; + } + else if (btnDown & PAD_BUTTON_Y) { + object->func = SMUpdate; + } } static void SMRand8Tick(omObjData *object) { - rand8(); + rand8(); } -void fn_1_450C(void) -{ - -} +void fn_1_450C(void) { } static s16 emiCompDataNo; static s16 emiCompVal; @@ -913,165 +907,165 @@ static void SMSound3DDraw(void); static void SMSound3DInit(omObjData *object) { - s8 *data = msmSeGetIndexPtr(emiCompDataNo); - emiCompVal = data[12]; - object->func = SMSound3DUpdate; + s8 *data = msmSeGetIndexPtr(emiCompDataNo); + emiCompVal = data[12]; + object->func = SMSound3DUpdate; } static void SMSound3DUpdate(omObjData *object) { - float increment; - s8 *data; - - CalcBtns(); - if(keyDStkDown & SM_KEY_UP) { - smSound3DPos--; - if(smSound3DPos < 0) { - smSound3DPos = 7; - } - } - if(keyDStkDown & SM_KEY_DOWN) { - smSound3DPos++; - if(smSound3DPos >= 8) { - smSound3DPos = 0; - } - } - if(keyDStkDown & (SM_KEY_LEFT | SM_KEY_RIGHT)) { - if(keyDStkDown & SM_KEY_RIGHT) { - increment = 10; - } else { - increment = -10; - } - if(HuPadBtn[0] & PAD_TRIGGER_Z) { - increment *= 10.0f; - } - switch(smSound3DPos) { - case 0: - Snd3DDistOffset += increment; - break; - - case 1: - Snd3DSpeedOffset += increment; - break; - - case 2: - Snd3DStartDisOffset += increment; - break; - - case 3: - Snd3DFrontSurDisOffset += increment; - break; - - case 4: - Snd3DBackSurDisOffset += increment; - break; - - case 5: - emiCompDataNo += increment/10.0f; - if(emiCompDataNo < 0) { - emiCompDataNo = 0; - } - data = msmSeGetIndexPtr(emiCompDataNo); - emiCompVal = data[12]; - break; - - case 6: - emiCompVal += increment/10.0f; - if(emiCompVal > 127) { - emiCompVal = 127; - } - if(emiCompVal < -127) { - emiCompVal = -127; - } - data = msmSeGetIndexPtr(emiCompDataNo); - data[12] = emiCompVal; - break; - - case 7: - musicOffF = (musicOffF) ? 0 : 1; - if(musicOffF) { - msmMusSetMasterVolume(0); - } else { - msmMusSetMasterVolume(127); - } - break; - } - } - if(btnDown & PAD_BUTTON_START) { - switch(smSound3DPos) { - case 0: - Snd3DDistOffset = 0; - break; - - case 1: - Snd3DSpeedOffset = 0; - break; - - case 2: - Snd3DStartDisOffset = 0; - break; - - case 3: - Snd3DFrontSurDisOffset = 0; - break; - - case 4: - Snd3DBackSurDisOffset = 0; - break; - - case 5: - emiCompDataNo = 0; - break; - - case 6: - emiCompVal = 0; - break; - - case 7: - musicOffF = 0; - break; - } - } - - if(btnDown & PAD_BUTTON_B) { - object->func = SMUpdate; - } - SMSound3DDraw(); + float increment; + s8 *data; + + CalcBtns(); + if (keyDStkDown & SM_KEY_UP) { + smSound3DPos--; + if (smSound3DPos < 0) { + smSound3DPos = 7; + } + } + if (keyDStkDown & SM_KEY_DOWN) { + smSound3DPos++; + if (smSound3DPos >= 8) { + smSound3DPos = 0; + } + } + if (keyDStkDown & (SM_KEY_LEFT | SM_KEY_RIGHT)) { + if (keyDStkDown & SM_KEY_RIGHT) { + increment = 10; + } + else { + increment = -10; + } + if (HuPadBtn[0] & PAD_TRIGGER_Z) { + increment *= 10.0f; + } + switch (smSound3DPos) { + case 0: + Snd3DDistOffset += increment; + break; + + case 1: + Snd3DSpeedOffset += increment; + break; + + case 2: + Snd3DStartDisOffset += increment; + break; + + case 3: + Snd3DFrontSurDisOffset += increment; + break; + + case 4: + Snd3DBackSurDisOffset += increment; + break; + + case 5: + emiCompDataNo += increment / 10.0f; + if (emiCompDataNo < 0) { + emiCompDataNo = 0; + } + data = msmSeGetIndexPtr(emiCompDataNo); + emiCompVal = data[12]; + break; + + case 6: + emiCompVal += increment / 10.0f; + if (emiCompVal > 127) { + emiCompVal = 127; + } + if (emiCompVal < -127) { + emiCompVal = -127; + } + data = msmSeGetIndexPtr(emiCompDataNo); + data[12] = emiCompVal; + break; + + case 7: + musicOffF = (musicOffF) ? 0 : 1; + if (musicOffF) { + msmMusSetMasterVolume(0); + } + else { + msmMusSetMasterVolume(127); + } + break; + } + } + if (btnDown & PAD_BUTTON_START) { + switch (smSound3DPos) { + case 0: + Snd3DDistOffset = 0; + break; + + case 1: + Snd3DSpeedOffset = 0; + break; + + case 2: + Snd3DStartDisOffset = 0; + break; + + case 3: + Snd3DFrontSurDisOffset = 0; + break; + + case 4: + Snd3DBackSurDisOffset = 0; + break; + + case 5: + emiCompDataNo = 0; + break; + + case 6: + emiCompVal = 0; + break; + + case 7: + musicOffF = 0; + break; + } + } + + if (btnDown & PAD_BUTTON_B) { + object->func = SMUpdate; + } + SMSound3DDraw(); } -#define DO_HILITE(pos) \ -do { \ - if(smSound3DPos == pos) { \ - fontcolor = FONT_COLOR_GREEN; \ - } else { \ - fontcolor = FONT_COLOR_DARK_GREEN; \ - } \ -} while(0) +#define DO_HILITE(pos) \ + do { \ + if (smSound3DPos == pos) { \ + fontcolor = FONT_COLOR_GREEN; \ + } \ + else { \ + fontcolor = FONT_COLOR_DARK_GREEN; \ + } \ + } while (0) static void SMSound3DDraw(void) { - char *onOffStr[] = { - " ON", - "OFF" - }; - fontcolor = FONT_COLOR_YELLOW; - print8(200, 64, 2.0f, "3DSound Config."); - DO_HILITE(0); - print8(140, 96, 2.0f, "Max Distance %5.1f", Snd3DDistOffset); - DO_HILITE(1); - print8(140, 112, 2.0f, "Sound Speed %5.1f", Snd3DSpeedOffset); - DO_HILITE(2); - print8(140, 128, 2.0f, "Start Distance %5.1f", Snd3DStartDisOffset); - DO_HILITE(3); - print8(140, 144, 2.0f, "Front Distance %5.1f", Snd3DFrontSurDisOffset); - DO_HILITE(4); - print8(140, 160, 2.0f, "Back Distance %5.1f", Snd3DBackSurDisOffset); - DO_HILITE(5); - print8(140, 176, 2.0f, "emiComp DataNo %04d", emiCompDataNo); - DO_HILITE(6); - print8(140, 192, 2.0f, "emiComp VAL %3d", emiCompVal); - DO_HILITE(7); - print8(140, 208, 2.0f, "Music %s", onOffStr[(musicOffF) ? 1 : 0]); + char *onOffStr[] = { " ON", "OFF" }; + fontcolor = FONT_COLOR_YELLOW; + print8(200, 64, 2.0f, "3DSound Config."); + DO_HILITE(0); + print8(140, 96, 2.0f, "Max Distance %5.1f", Snd3DDistOffset); + DO_HILITE(1); + print8(140, 112, 2.0f, "Sound Speed %5.1f", Snd3DSpeedOffset); + DO_HILITE(2); + print8(140, 128, 2.0f, "Start Distance %5.1f", Snd3DStartDisOffset); + DO_HILITE(3); + print8(140, 144, 2.0f, "Front Distance %5.1f", Snd3DFrontSurDisOffset); + DO_HILITE(4); + print8(140, 160, 2.0f, "Back Distance %5.1f", Snd3DBackSurDisOffset); + DO_HILITE(5); + print8(140, 176, 2.0f, "emiComp DataNo %04d", emiCompDataNo); + DO_HILITE(6); + print8(140, 192, 2.0f, "emiComp VAL %3d", emiCompVal); + DO_HILITE(7); + print8(140, 208, 2.0f, "Music %s", onOffStr[(musicOffF) ? 1 : 0]); } #undef DO_HILITE diff --git a/src/REL/staffDll/main.c b/src/REL/staffDll/main.c index 2214364b..28f1fbc4 100644 --- a/src/REL/staffDll/main.c +++ b/src/REL/staffDll/main.c @@ -305,7 +305,7 @@ static void CreateStaff(void) } for (var_r31 = 0; var_r31 < 3; var_r31++) { - var_r29 = HuDataSelHeapReadNum(var_r31 + 0x73001A, MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r29 = HuDataSelHeapReadNum(var_r31 + DATA_MAKE_NUM(DATADIR_STAFF, 0x1A), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r28 = HuSprAnimRead(var_r29); var_r30 = HuSprCreate(var_r28, 256, 0); staffLogoGroup[var_r31] = HuSprGrpCreate(1); @@ -319,7 +319,7 @@ static void CreateStaff(void) HuSprGrpPosSet(thpGroup, 280.0f, 200.0f); HuSprAttrSet(thpGroup, 0, HUSPR_ATTR_DISPOFF); HuTHPStop(); - var_r29 = HuDataSelHeapReadNum(0x73001D, MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_STAFF, 0x1D), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r28 = HuSprAnimRead(var_r29); var_r30 = HuSprCreate(var_r28, 16385, 0); thpCoverGroup = HuSprGrpCreate(1); diff --git a/src/REL/w02Dll/gamble.c b/src/REL/w02Dll/gamble.c index 92fa2ce9..8c588fda 100644 --- a/src/REL/w02Dll/gamble.c +++ b/src/REL/w02Dll/gamble.c @@ -17,16 +17,16 @@ void fn_1_2D04(void) m02GenDice spEC; m02GenDice sp4C; s32 sp24[10] = { - 0x0076001C, - 0x0076001D, - 0x0076001E, - 0x0076001F, - 0x00760020, - 0x00760021, - 0x00760022, - 0x00760023, - 0x00760024, - 0x00760025 + DATA_MAKE_NUM(DATADIR_W02, 0x1C), + DATA_MAKE_NUM(DATADIR_W02, 0x1D), + DATA_MAKE_NUM(DATADIR_W02, 0x1E), + DATA_MAKE_NUM(DATADIR_W02, 0x1F), + DATA_MAKE_NUM(DATADIR_W02, 0x20), + DATA_MAKE_NUM(DATADIR_W02, 0x21), + DATA_MAKE_NUM(DATADIR_W02, 0x22), + DATA_MAKE_NUM(DATADIR_W02, 0x23), + DATA_MAKE_NUM(DATADIR_W02, 0x24), + DATA_MAKE_NUM(DATADIR_W02, 0x25) }; Vec sp18; Vec spC; @@ -43,7 +43,7 @@ void fn_1_2D04(void) OSReport("gamble start %d\n", temp_r31); sp8 = BoardSpaceGet(0, GWPlayer[temp_r31].space_curr); BoardRollDispSet(0); - temp_r28 = BoardModelCreate(0x76000F, NULL, 0); + temp_r28 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x0F), NULL, 0); BoardModelVisibilitySet(temp_r28, 0); switch(lbl_1_bss_54) { case 0: @@ -78,9 +78,9 @@ void fn_1_2D04(void) BoardModelHookReset(temp_r30); BoardModelPosGet(temp_r30, &sp18); BoardModelPosSetV(lbl_1_data_286, &sp18); - fn_1_121C(0x13000A); + fn_1_121C(MAKE_MESSID(0x13, 0x0A)); spEC.unk00 = 1; - spEC.unk04 = 0x76001B; + spEC.unk04 = DATA_MAKE_NUM(DATADIR_W02, 0x1B); spEC.unk08 = sp24; spEC.unk0C = sp18; spEC.unk18 = 1; @@ -140,9 +140,9 @@ void fn_1_2D04(void) temp_r27 = spEC.unk94; if(temp_r27 == 10) { HuAudPlayerVoicePlay(temp_r31, 302); - fn_1_121C(0x130010); + fn_1_121C(MAKE_MESSID(0x13, 0x10)); } else { - fn_1_121C(0x13000C); + fn_1_121C(MAKE_MESSID(0x13, 0x0C)); } BoardPlayerMotBlendSet(temp_r31, 0, 15); while(!BoardPlayerMotBlendCheck(temp_r31)) { @@ -189,10 +189,10 @@ void fn_1_2D04(void) HuPrcVSleep(); } if(sp4C.unk94 > temp_r27) { - fn_1_121C(0x13000D); + fn_1_121C(MAKE_MESSID(0x13, 0x0D)); } else { HuAudPlayerVoicePlay(temp_r31, 302); - fn_1_121C(0x13000F); + fn_1_121C(MAKE_MESSID(0x13, 0x0F)); } } else { sp4C.unk94 = 0; @@ -214,7 +214,7 @@ void fn_1_2D04(void) HuAudFXPlay(7); HuPrcSleep(6); } - fn_1_121C(0x13000E); + fn_1_121C(MAKE_MESSID(0x13, 0x0E)); } else { temp_r26 = GWPlayer[temp_r31].space_curr; BoardCameraTargetSpaceSet(temp_r26); @@ -320,4 +320,4 @@ void fn_1_394C(s32 arg0) { while (lbl_1_bss_50) { HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/REL/w02Dll/gendice.c b/src/REL/w02Dll/gendice.c index 7562a53b..eb264bc3 100644 --- a/src/REL/w02Dll/gendice.c +++ b/src/REL/w02Dll/gendice.c @@ -3,20 +3,20 @@ typedef struct { union { -/* 0x00 */ struct { - u8 unk7 : 1; - u8 unk6 : 1; - u8 unk3 : 3; - u8 unk1 : 2; - u8 unk0 : 1; + /* 0x00 */ struct { + u8 unk7 : 1; + u8 unk6 : 1; + u8 unk3 : 3; + u8 unk1 : 2; + u8 unk0 : 1; + }; + u8 unk00; }; - u8 unk00; - }; -/* 0x01 */ u8 unk01; -/* 0x02 */ u8 unk02; -/* 0x03 */ u8 unk03; -/* 0x04 */ s16 unk04; -/* 0x06 */ s16 unk06; + /* 0x01 */ u8 unk01; + /* 0x02 */ u8 unk02; + /* 0x03 */ u8 unk03; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06; } WorkGenDice; /* EXTERN FUNCTIONS */ @@ -24,7 +24,7 @@ void fn_1_13D0(void); void fn_1_1574(m02GenDice *arg0); void fn_1_1794(m02GenDice *arg0); void fn_1_1850(omObjData *object); -void fn_1_1F94(m02GenDice* arg0, s32 arg1); +void fn_1_1F94(m02GenDice *arg0, s32 arg1); void fn_1_2030(m02GenDice *arg0); void fn_1_2100(m02GenDice *arg0, s32 arg1); void fn_1_2220(m02GenDice *arg0); @@ -34,7 +34,8 @@ void fn_1_23B4(m02GenDice *arg0, s32 arg1); void fn_1_272C(m02GenDice *arg0); /* LOCAL FUNCTIONS */ -void fn_1_1254(m02GenDice* arg0) { +void fn_1_1254(m02GenDice *arg0) +{ Vec sp8; s32 i; @@ -61,11 +62,12 @@ void fn_1_1254(m02GenDice* arg0) { } } -void fn_1_13D0(void) { +void fn_1_13D0(void) +{ s32 var_r29; s32 i; s32 var_r30_2; - m02GenDice* temp_r31; + m02GenDice *temp_r31; temp_r31 = HuPrcCurrentGet()->user_data; temp_r31->unk36[0] = temp_r31->unk36[1] = temp_r31->unk36[2] = 0; @@ -74,17 +76,17 @@ void fn_1_13D0(void) { while (temp_r31->unk96 < temp_r31->unk00) { fn_1_1574(temp_r31); fn_1_1794(temp_r31); - while (temp_r31->unk9C == 0) { + while (temp_r31->unk9C == 0) { HuPrcVSleep(); - } - fn_1_2220(temp_r31); - while (temp_r31->unk9C != 0) { + } + fn_1_2220(temp_r31); + while (temp_r31->unk9C != 0) { HuPrcVSleep(); - } - temp_r31->unk96 += 1; + } + temp_r31->unk96 += 1; } - for ( i = 0; i < temp_r31->unk00; i++) { + for (i = 0; i < temp_r31->unk00; i++) { var_r29 += temp_r31->unk36[i]; } OSReport("Dice res: %d\n", var_r29); @@ -92,7 +94,7 @@ void fn_1_13D0(void) { while (fn_1_233C(temp_r31) == 0) { HuPrcVSleep(); } - temp_r31->unk94 = (s16) var_r29; + temp_r31->unk94 = (s16)var_r29; temp_r31->unk28 = 1; if (temp_r31->unk22 != 0) { for (i = 0; i < temp_r31->unk00; i++) { @@ -102,11 +104,12 @@ void fn_1_13D0(void) { HuPrcEnd(); } while (TRUE) { - HuPrcVSleep(); + HuPrcVSleep(); } } -void fn_1_1518(m02GenDice* arg0) { +void fn_1_1518(m02GenDice *arg0) +{ OSReport("m02GenDiceKill\n"); if (arg0->unk2C) { HuPrcKill(arg0->unk2C); @@ -115,12 +118,13 @@ void fn_1_1518(m02GenDice* arg0) { fn_1_272C(arg0); } -void fn_1_1574(m02GenDice* arg0) { +void fn_1_1574(m02GenDice *arg0) +{ Vec sp8; f32 temp_f0; - omObjData* temp_r3; + omObjData *temp_r3; s32 temp_r28; - WorkGenDice* temp_r29; + WorkGenDice *temp_r29; temp_r28 = arg0->unk96; arg0->unk30[temp_r28] = BoardModelCreate(arg0->unk04, NULL, 0); @@ -129,7 +133,7 @@ void fn_1_1574(m02GenDice* arg0) { BoardModelMotionSpeedSet(arg0->unk30[temp_r28], 0); BoardModelMotionTimeSet(arg0->unk30[temp_r28], arg0->unk98); temp_r3 = omAddObjEx(boardObjMan, 0x102, 0U, 0U, -1, fn_1_1850); - temp_r29 = (WorkGenDice*) temp_r3->work; + temp_r29 = (WorkGenDice *)temp_r3->work; temp_r29->unk7 = 0; temp_r29->unk6 = 0; @@ -139,7 +143,7 @@ void fn_1_1574(m02GenDice* arg0) { temp_r29->unk04 = 0; temp_r29->unk01 = 3; temp_r29->unk02 = 0; - temp_r3->unk10 = (u32) arg0; + temp_r3->unk10 = (u32)arg0; arg0->unk3C[temp_r28] = temp_r3; sp8 = arg0->unk0C; sp8.y += (250.0f * arg0->unk24); @@ -153,8 +157,9 @@ void fn_1_1574(m02GenDice* arg0) { HuAudFXPlay(0x302); } -void fn_1_1794(m02GenDice* arg0) { - WorkGenDice* temp_r30; +void fn_1_1794(m02GenDice *arg0) +{ + WorkGenDice *temp_r30; temp_r30 = OM_GET_WORK_PTR(arg0->unk3C[arg0->unk96], WorkGenDice); while (temp_r30->unk3 != 1) { @@ -162,10 +167,10 @@ void fn_1_1794(m02GenDice* arg0) { } } -s32 fn_1_17F4(m02GenDice* arg0) +s32 fn_1_17F4(m02GenDice *arg0) { - WorkGenDice* temp; - if ( arg0->unk96 < 0) { + WorkGenDice *temp; + if (arg0->unk96 < 0) { return 0; } temp = OM_GET_WORK_PTR(arg0->unk3C[arg0->unk96], WorkGenDice); @@ -177,121 +182,126 @@ s32 fn_1_17F4(m02GenDice* arg0) void fn_1_1850(omObjData *object) { - WorkGenDice *temp_r29; - m02GenDice *temp_r27; - s16 temp_r26; - s16 temp_r25; - float temp_f29; - float temp_f28; - float temp_f27; - temp_r27 = (m02GenDice *)object->unk10; - temp_r29 = OM_GET_WORK_PTR(object, WorkGenDice); - if(temp_r29->unk7 || BoardIsKill()) { - fn_1_1F94(temp_r27, temp_r29->unk1); - temp_r27->unk3C[temp_r29->unk1] = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - if(BoardPauseActiveCheck()) { - return; - } - switch(temp_r29->unk3) { - case 0: - if(temp_r29->unk06 >= 1080) { - temp_r29->unk3 = 1; - object->scale.x = object->scale.y = object->scale.z = 1; - - object->rot.y = temp_r29->unk04 = 0; - } else { - if(!temp_r29->unk04 && temp_r27->unk88[temp_r29->unk1] == -1) { - temp_r27->unk88[temp_r29->unk1] = HuAudFXPlay(768); - } - object->rot.y = temp_r29->unk06%360; - temp_r29->unk06 += 25; - if(temp_r29->unk04 < 180) { - temp_f27 = 0; - temp_f28 = 1; - } else { - temp_f27 = 1; - temp_f28 = 0.5f; - } - object->scale.x = (temp_f28*sind((float)(temp_r29->unk04%180)))+temp_f27; - object->scale.y = object->scale.x; - object->scale.z = object->scale.x; - if(temp_r29->unk04 <= 360) { - if(temp_r29->unk04 < 180) { - temp_r29->unk04 += 6; - } else { - temp_r29->unk04 += 18; - } - if(temp_r29->unk04 > 360) { - temp_r29->unk04 = 360; - } - } - - } - break; - - case 1: - temp_r29->unk04 += 4; - if(temp_r29->unk04 > 360) { - temp_r29->unk04 -= 360; - } - OSs16tof32(&temp_r29->unk04, &temp_f29); - object->trans.y += sind(temp_f29)*0.2f; - break; - - case 2: - temp_r29->unk04++; - if(temp_r29->unk04 >= 8) { - if(temp_r27->unk88[temp_r29->unk1] != -1) { - HuAudFXStop(temp_r27->unk88[temp_r29->unk1]); - temp_r27->unk88[temp_r29->unk1] = -1; - } - HuAudFXPlay(771); - HuAudFXPlay(780); - temp_r29->unk3 = 3; - temp_r29->unk04 = 0; - fn_1_23FC(temp_r27, temp_r27->unk36[temp_r29->unk1]); - fn_1_2100(temp_r27, temp_r29->unk1); - Hu3DParManPosSet(temp_r27->unk48[temp_r29->unk1], object->trans.x, object->trans.y, object->trans.z); - BoardModelVisibilitySet(temp_r27->unk30[temp_r29->unk1], 0); - } else { - OSs16tof32(&temp_r29->unk04, &temp_f29); - if(temp_r29->unk04 < 4) { - object->trans.y += (0.5f*temp_f29)+10.0f; - object->scale.x += (0.1f*sind(4.0f*temp_f29)); - object->scale.y = object->scale.x; - object->scale.z = object->scale.x; - } else { - BoardModelAlphaSet(temp_r27->unk30[temp_r29->unk1], 255-(temp_r29->unk04*32)); - } - object->trans.y += -0.49f*temp_f29*temp_f29; - } - break; - - case 3: - if(++temp_r29->unk04 >= 150) { - temp_r29->unk7 = 1; - } - break; - } - if(!temp_r29->unk6 || temp_r29->unk3 != 3) { - if(temp_r29->unk02++ > temp_r29->unk01) { - temp_r29->unk02 = 0; - temp_r25 = BoardModelMotionTimeGet(temp_r27->unk30[temp_r29->unk1]); - do { - temp_r26 = BoardRandMod(temp_r27->unk1A); - } while(temp_r26 == temp_r25); - BoardModelMotionTimeSet(temp_r27->unk30[temp_r29->unk1], temp_r26+0.5f); - } - } - BoardModelPosSet(temp_r27->unk30[temp_r29->unk1], object->trans.x, object->trans.y, object->trans.z); - BoardModelRotSet(temp_r27->unk30[temp_r29->unk1], object->rot.x, object->rot.y, object->rot.z); - BoardModelScaleSet(temp_r27->unk30[temp_r29->unk1], object->scale.x, object->scale.y, object->scale.z); + WorkGenDice *temp_r29; + m02GenDice *temp_r27; + s16 temp_r26; + s16 temp_r25; + float temp_f29; + float temp_f28; + float temp_f27; + temp_r27 = (m02GenDice *)object->unk10; + temp_r29 = OM_GET_WORK_PTR(object, WorkGenDice); + if (temp_r29->unk7 || BoardIsKill()) { + fn_1_1F94(temp_r27, temp_r29->unk1); + temp_r27->unk3C[temp_r29->unk1] = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + if (BoardPauseActiveCheck()) { + return; + } + switch (temp_r29->unk3) { + case 0: + if (temp_r29->unk06 >= 1080) { + temp_r29->unk3 = 1; + object->scale.x = object->scale.y = object->scale.z = 1; + + object->rot.y = temp_r29->unk04 = 0; + } + else { + if (!temp_r29->unk04 && temp_r27->unk88[temp_r29->unk1] == -1) { + temp_r27->unk88[temp_r29->unk1] = HuAudFXPlay(768); + } + object->rot.y = temp_r29->unk06 % 360; + temp_r29->unk06 += 25; + if (temp_r29->unk04 < 180) { + temp_f27 = 0; + temp_f28 = 1; + } + else { + temp_f27 = 1; + temp_f28 = 0.5f; + } + object->scale.x = (temp_f28 * sind((float)(temp_r29->unk04 % 180))) + temp_f27; + object->scale.y = object->scale.x; + object->scale.z = object->scale.x; + if (temp_r29->unk04 <= 360) { + if (temp_r29->unk04 < 180) { + temp_r29->unk04 += 6; + } + else { + temp_r29->unk04 += 18; + } + if (temp_r29->unk04 > 360) { + temp_r29->unk04 = 360; + } + } + } + break; + + case 1: + temp_r29->unk04 += 4; + if (temp_r29->unk04 > 360) { + temp_r29->unk04 -= 360; + } + OSs16tof32(&temp_r29->unk04, &temp_f29); + object->trans.y += sind(temp_f29) * 0.2f; + break; + + case 2: + temp_r29->unk04++; + if (temp_r29->unk04 >= 8) { + if (temp_r27->unk88[temp_r29->unk1] != -1) { + HuAudFXStop(temp_r27->unk88[temp_r29->unk1]); + temp_r27->unk88[temp_r29->unk1] = -1; + } + HuAudFXPlay(771); + HuAudFXPlay(780); + temp_r29->unk3 = 3; + temp_r29->unk04 = 0; + fn_1_23FC(temp_r27, temp_r27->unk36[temp_r29->unk1]); + fn_1_2100(temp_r27, temp_r29->unk1); + Hu3DParManPosSet(temp_r27->unk48[temp_r29->unk1], object->trans.x, object->trans.y, object->trans.z); + BoardModelVisibilitySet(temp_r27->unk30[temp_r29->unk1], 0); + } + else { + OSs16tof32(&temp_r29->unk04, &temp_f29); + if (temp_r29->unk04 < 4) { + object->trans.y += (0.5f * temp_f29) + 10.0f; + object->scale.x += (0.1f * sind(4.0f * temp_f29)); + object->scale.y = object->scale.x; + object->scale.z = object->scale.x; + } + else { + BoardModelAlphaSet(temp_r27->unk30[temp_r29->unk1], 255 - (temp_r29->unk04 * 32)); + } + object->trans.y += -0.49f * temp_f29 * temp_f29; + } + break; + + case 3: + if (++temp_r29->unk04 >= 150) { + temp_r29->unk7 = 1; + } + break; + } + if (!temp_r29->unk6 || temp_r29->unk3 != 3) { + if (temp_r29->unk02++ > temp_r29->unk01) { + temp_r29->unk02 = 0; + temp_r25 = BoardModelMotionTimeGet(temp_r27->unk30[temp_r29->unk1]); + do { + temp_r26 = BoardRandMod(temp_r27->unk1A); + } while (temp_r26 == temp_r25); + BoardModelMotionTimeSet(temp_r27->unk30[temp_r29->unk1], temp_r26 + 0.5f); + } + } + BoardModelPosSet(temp_r27->unk30[temp_r29->unk1], object->trans.x, object->trans.y, object->trans.z); + BoardModelRotSet(temp_r27->unk30[temp_r29->unk1], object->rot.x, object->rot.y, object->rot.z); + BoardModelScaleSet(temp_r27->unk30[temp_r29->unk1], object->scale.x, object->scale.y, object->scale.z); } -void fn_1_1F94(m02GenDice* arg0, s32 arg1) { +void fn_1_1F94(m02GenDice *arg0, s32 arg1) +{ if (arg0->unk30[arg1] != -1) { BoardModelKill(arg0->unk30[arg1]); arg0->unk30[arg1] = -1; @@ -305,157 +315,134 @@ void fn_1_1F94(m02GenDice* arg0, s32 arg1) { void fn_1_2030(m02GenDice *arg0) { - fn_1_1F94(arg0, 0); - fn_1_1F94(arg0, 1); - fn_1_1F94(arg0, 2); + fn_1_1F94(arg0, 0); + fn_1_1F94(arg0, 1); + fn_1_1F94(arg0, 2); } - -HsfanimStruct00 lbl_1_data_2D8 = { - 150, - { 0x00, 0x00 }, // padding? - 50, - 0, - 65.0f, - { 0.0f, -0.195f, 0.0f }, - 100.0f, - 0.99f, - 40.0f, - 0.999f, - 0x0004, - { - 0xFF, 0xFF, 0x20, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, - 0xFF, 0xFF, 0x80, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF - }, - { - 0xFF, 0xFF, 0xFF, 0x00, - 0xFF, 0xFF, 0xFF, 0x00, - 0xFF, 0xFF, 0xFF, 0x00, - 0xFF, 0xFF, 0xFF, 0x00 - } -}; +HsfanimStruct00 lbl_1_data_2D8 = { 150, { 0x00, 0x00 }, // padding? + 50, 0, 65.0f, { 0.0f, -0.195f, 0.0f }, 100.0f, 0.99f, 40.0f, 0.999f, 0x0004, + { 0xFF, 0xFF, 0x20, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00 } }; void fn_1_2100(m02GenDice *arg0, s32 arg1) { - s16 temp_r29; - AnimData *temp_r28; - void *temp_r27; - temp_r27 = HuDataSelHeapReadNum(0x120001, MEMORY_DEFAULT_NUM, HEAP_DATA); - temp_r28 = HuSprAnimRead(temp_r27); - arg0->unk48[arg1] = Hu3DParManCreate(temp_r28, 100, &lbl_1_data_2D8); - Hu3DParManAttrSet(arg0->unk48[arg1], 0x108); - Hu3DParManRotSet(arg0->unk48[arg1], 0, 0, 0); - Hu3DParManVecSet(arg0->unk48[arg1], 0, 0.4f, 0.2f); - temp_r29 = Hu3DParManModelIDGet(arg0->unk48[arg1]); - Hu3DModelLayerSet(temp_r29, 2); - Hu3DParticleBlendModeSet(temp_r29, 0); + s16 temp_r29; + AnimData *temp_r28; + void *temp_r27; + temp_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 0x01), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r28 = HuSprAnimRead(temp_r27); + arg0->unk48[arg1] = Hu3DParManCreate(temp_r28, 100, &lbl_1_data_2D8); + Hu3DParManAttrSet(arg0->unk48[arg1], 0x108); + Hu3DParManRotSet(arg0->unk48[arg1], 0, 0, 0); + Hu3DParManVecSet(arg0->unk48[arg1], 0, 0.4f, 0.2f); + temp_r29 = Hu3DParManModelIDGet(arg0->unk48[arg1]); + Hu3DModelLayerSet(temp_r29, 2); + Hu3DParticleBlendModeSet(temp_r29, 0); } void fn_1_2220(m02GenDice *arg0) { - s32 temp_r30; - WorkGenDice *temp_r29; - temp_r30 = arg0->unk96; - temp_r29 = OM_GET_WORK_PTR(arg0->unk3C[temp_r30], WorkGenDice); - temp_r29->unk3 = 2; - temp_r29->unk04 = 0; - BoardModelMotionSpeedSet(arg0->unk30[temp_r30], 0); - - arg0->unk36[temp_r30] = arg0->unk1C[temp_r30]; + s32 temp_r30; + WorkGenDice *temp_r29; + temp_r30 = arg0->unk96; + temp_r29 = OM_GET_WORK_PTR(arg0->unk3C[temp_r30], WorkGenDice); + temp_r29->unk3 = 2; + temp_r29->unk04 = 0; + BoardModelMotionSpeedSet(arg0->unk30[temp_r30], 0); + + arg0->unk36[temp_r30] = arg0->unk1C[temp_r30]; } typedef struct { - u8 field0_bit0 : 1; - u8 field0_bit1 : 1; - u8 field0_bit2 : 1; - u8 field0_bit3 : 2; - s8 unk01; - s16 unk02; - s16 unk04[2]; - float unk08; + u8 field0_bit0 : 1; + u8 field0_bit1 : 1; + u8 field0_bit2 : 1; + u8 field0_bit3 : 2; + s8 unk01; + s16 unk02; + s16 unk04[2]; + float unk08; } WorkGenDiceNum; void fn_1_22BC(m02GenDice *arg0) { - s32 temp_r31; - WorkGenDiceNum *temp_r30; - for(temp_r31=0; temp_r31unk00; temp_r31++) { - if(arg0->unk50[temp_r31]) { - temp_r30 = OM_GET_WORK_PTR(arg0->unk50[temp_r31], WorkGenDiceNum); - temp_r30->field0_bit1 = 1; - temp_r30->field0_bit2 = 1; - temp_r30->unk02 = 0; - } - } + s32 temp_r31; + WorkGenDiceNum *temp_r30; + for (temp_r31 = 0; temp_r31 < arg0->unk00; temp_r31++) { + if (arg0->unk50[temp_r31]) { + temp_r30 = OM_GET_WORK_PTR(arg0->unk50[temp_r31], WorkGenDiceNum); + temp_r30->field0_bit1 = 1; + temp_r30->field0_bit2 = 1; + temp_r30->unk02 = 0; + } + } } -s32 fn_1_233C(m02GenDice* arg0) +s32 fn_1_233C(m02GenDice *arg0) { - s32 temp_r31; - WorkGenDiceNum *temp_r30; - for(temp_r31=0; temp_r31unk00; temp_r31++) { - if(!arg0->unk50[temp_r31]) { - continue; - } - temp_r30 = OM_GET_WORK_PTR(arg0->unk50[temp_r31], WorkGenDiceNum); - if(temp_r30->field0_bit2) { - return 0; - } - } - return 1; + s32 temp_r31; + WorkGenDiceNum *temp_r30; + for (temp_r31 = 0; temp_r31 < arg0->unk00; temp_r31++) { + if (!arg0->unk50[temp_r31]) { + continue; + } + temp_r30 = OM_GET_WORK_PTR(arg0->unk50[temp_r31], WorkGenDiceNum); + if (temp_r30->field0_bit2) { + return 0; + } + } + return 1; } void fn_1_23B4(m02GenDice *arg0, s32 arg1) { - WorkGenDiceNum *work; - if(!arg0->unk50[arg1]) { - return; - } - work = OM_GET_WORK_PTR(arg0->unk50[arg1], WorkGenDiceNum); - work->field0_bit0 = 1; + WorkGenDiceNum *work; + if (!arg0->unk50[arg1]) { + return; + } + work = OM_GET_WORK_PTR(arg0->unk50[arg1], WorkGenDiceNum); + work->field0_bit0 = 1; } void fn_1_25D0(omObjData *object); void fn_1_23FC(m02GenDice *arg0, s32 arg1) { - Vec spC; - s16 sp8[2]; - WorkGenDiceNum *temp_r31; - s16 temp_r29; - omObjData *temp_r28; - s32 temp_r26; - s16 temp_r25; - temp_r26 = arg0->unk96; - if(arg1 > 99) { - arg1 = 99; - } - sp8[0] = arg1%10; - sp8[1] = arg1/10; - spC = arg0->unk0C; - spC.y += 300.0f; - temp_r28 = omAddObjEx(boardObjMan, 258, 0, 0, -1, fn_1_25D0); - temp_r28->unk10 = (u32)arg0; - temp_r31 = OM_GET_WORK_PTR(temp_r28, WorkGenDiceNum); - temp_r31->field0_bit0 = 0; - temp_r31->field0_bit1 = 0; - temp_r31->field0_bit2 = 0; - temp_r31->field0_bit3 = temp_r26; - temp_r31->unk08 = 0.3f; - temp_r31->unk01 = arg1; - temp_r31->unk02 = 360; - for(temp_r29=0; temp_r29<2; temp_r29++) { - temp_r25 = BoardModelCreate(arg0->unk08[sp8[temp_r29]], NULL, 0); - BoardModelPosSetV(temp_r25, &spC); - temp_r31->unk04[temp_r29] = temp_r25; - } - if(sp8[1] == 0) { - BoardModelVisibilitySet(temp_r31->unk04[1], 0); - } - arg0->unk50[temp_r26] = temp_r28; - + Vec spC; + s16 sp8[2]; + WorkGenDiceNum *temp_r31; + s16 temp_r29; + omObjData *temp_r28; + s32 temp_r26; + s16 temp_r25; + temp_r26 = arg0->unk96; + if (arg1 > 99) { + arg1 = 99; + } + sp8[0] = arg1 % 10; + sp8[1] = arg1 / 10; + spC = arg0->unk0C; + spC.y += 300.0f; + temp_r28 = omAddObjEx(boardObjMan, 258, 0, 0, -1, fn_1_25D0); + temp_r28->unk10 = (u32)arg0; + temp_r31 = OM_GET_WORK_PTR(temp_r28, WorkGenDiceNum); + temp_r31->field0_bit0 = 0; + temp_r31->field0_bit1 = 0; + temp_r31->field0_bit2 = 0; + temp_r31->field0_bit3 = temp_r26; + temp_r31->unk08 = 0.3f; + temp_r31->unk01 = arg1; + temp_r31->unk02 = 360; + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + temp_r25 = BoardModelCreate(arg0->unk08[sp8[temp_r29]], NULL, 0); + BoardModelPosSetV(temp_r25, &spC); + temp_r31->unk04[temp_r29] = temp_r25; + } + if (sp8[1] == 0) { + BoardModelVisibilitySet(temp_r31->unk04[1], 0); + } + arg0->unk50[temp_r26] = temp_r28; } void fn_1_2694(WorkGenDiceNum *arg0); @@ -464,150 +451,147 @@ void fn_1_2BE4(m02GenDice *arg0, WorkGenDiceNum *arg1, s32 arg2); void fn_1_25D0(omObjData *object) { - WorkGenDiceNum *temp_r31; - m02GenDice *temp_r30; - temp_r30 = (m02GenDice *)object->unk10; - temp_r31 = OM_GET_WORK_PTR(object, WorkGenDiceNum); - if(temp_r31->field0_bit0 || BoardIsKill()) { - fn_1_2694(temp_r31); - temp_r30->unk50[temp_r31->field0_bit3] = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - if(BoardPauseActiveCheck()) { - return; - } - fn_1_2830(temp_r30, temp_r31, temp_r31->field0_bit1); - fn_1_2BE4(temp_r30, temp_r31, temp_r31->field0_bit1); + WorkGenDiceNum *temp_r31; + m02GenDice *temp_r30; + temp_r30 = (m02GenDice *)object->unk10; + temp_r31 = OM_GET_WORK_PTR(object, WorkGenDiceNum); + if (temp_r31->field0_bit0 || BoardIsKill()) { + fn_1_2694(temp_r31); + temp_r30->unk50[temp_r31->field0_bit3] = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + if (BoardPauseActiveCheck()) { + return; + } + fn_1_2830(temp_r30, temp_r31, temp_r31->field0_bit1); + fn_1_2BE4(temp_r30, temp_r31, temp_r31->field0_bit1); } void fn_1_2694(WorkGenDiceNum *arg0) { - s32 i; - for(i=0; i<2; i++) { - if(arg0->unk04[i] == -1) { - continue; - } - OSReport("%d:GenDiceNumExitOM Kill %d\n", i, arg0->unk04[i]); - BoardModelKill(arg0->unk04[i]); - arg0->unk04[i] = -1; - (void)i; - } + s32 i; + for (i = 0; i < 2; i++) { + if (arg0->unk04[i] == -1) { + continue; + } + OSReport("%d:GenDiceNumExitOM Kill %d\n", i, arg0->unk04[i]); + BoardModelKill(arg0->unk04[i]); + arg0->unk04[i] = -1; + (void)i; + } } void fn_1_272C(m02GenDice *arg0) { - s32 i; - WorkGenDiceNum *work; - s32 j; - for(i=0; i<3; i++) { - if(!arg0->unk50[i]) { - continue; - } - work = OM_GET_WORK_PTR(arg0->unk50[i], WorkGenDiceNum); - for(j=0; j<2; j++) { - if(work->unk04[j] == -1) { - continue; - } - OSReport("%d:GenDiceNumOMKillAll %d\n", j, work->unk04[j]); - BoardModelKill(work->unk04[j]); - work->unk04[j] = -1; - (void)j; - } - fn_1_23B4(arg0, i); - } - + s32 i; + WorkGenDiceNum *work; + s32 j; + for (i = 0; i < 3; i++) { + if (!arg0->unk50[i]) { + continue; + } + work = OM_GET_WORK_PTR(arg0->unk50[i], WorkGenDiceNum); + for (j = 0; j < 2; j++) { + if (work->unk04[j] == -1) { + continue; + } + OSReport("%d:GenDiceNumOMKillAll %d\n", j, work->unk04[j]); + BoardModelKill(work->unk04[j]); + work->unk04[j] = -1; + (void)j; + } + fn_1_23B4(arg0, i); + } } void fn_1_2830(m02GenDice *arg0, WorkGenDiceNum *arg1, s32 arg2) { - float temp_f31; - s16 temp_r31; - Vec *temp_r29; - s16 temp_r27; - s32 sp8 = 0; - Vec sp30; - Vec sp24; - Vec sp18 = { 288, 155, 1400 }; - Vec sp54[2]; - Vec sp3C[2] = { - { 144, 155, 1400 }, - { 432, 155, 1400 } - }; - Vec sp6C[3] = { - { 144, 155, 1400 }, - { 432, 155, 1400 }, - { 288, 155, 1400 } - }; - Vec spC = { 288, 176, 1400 }; - temp_r27 = arg1->unk01/10; - if(arg2) { - temp_r29 = &spC; - temp_f31 = -20.0f*arg1->field0_bit3; - } else { - switch(arg0->unk00) { - case 1: - temp_r29 = &arg0->unk7C; - break; - - case 2: - case 3: - temp_r29 = &arg0->unk64[arg1->field0_bit3]; - break; - } - temp_f31 = 0; - } - for(temp_r31=0; temp_r31<2; temp_r31++) { - if(temp_r27 == 0) { - sp54[temp_r31].x = temp_r29->x; - } else { - if(temp_r31) { - sp54[temp_r31].x = temp_r29->x-30; - } else { - sp54[temp_r31].x = temp_r29->x+30; - } - } - sp54[temp_r31].y = temp_r29->y; - sp54[temp_r31].z = temp_r29->z+temp_f31; - } - for(temp_r31=0; temp_r31<2; temp_r31++) { - BoardModelPosGet(arg1->unk04[temp_r31], &sp30); - Hu3D2Dto3D(&sp54[temp_r31], 1, &sp54[temp_r31]); - VECSubtract(&sp54[temp_r31], &sp30, &sp24); - if(VECMag(&sp24) < 0.01f) { - arg1->field0_bit2 = 0; - if(arg2 && arg1->field0_bit3) { - BoardModelVisibilitySet(arg1->unk04[temp_r31], 0); - } - } else { - arg1->field0_bit2 = 1; - } - VECScale(&sp24, &sp24, arg1->unk08); - VECAdd(&sp30, &sp24, &sp30); - BoardModelPosSetV(arg1->unk04[temp_r31], &sp30); - } + float temp_f31; + s16 temp_r31; + Vec *temp_r29; + s16 temp_r27; + s32 sp8 = 0; + Vec sp30; + Vec sp24; + Vec sp18 = { 288, 155, 1400 }; + Vec sp54[2]; + Vec sp3C[2] = { { 144, 155, 1400 }, { 432, 155, 1400 } }; + Vec sp6C[3] = { { 144, 155, 1400 }, { 432, 155, 1400 }, { 288, 155, 1400 } }; + Vec spC = { 288, 176, 1400 }; + temp_r27 = arg1->unk01 / 10; + if (arg2) { + temp_r29 = &spC; + temp_f31 = -20.0f * arg1->field0_bit3; + } + else { + switch (arg0->unk00) { + case 1: + temp_r29 = &arg0->unk7C; + break; + + case 2: + case 3: + temp_r29 = &arg0->unk64[arg1->field0_bit3]; + break; + } + temp_f31 = 0; + } + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + if (temp_r27 == 0) { + sp54[temp_r31].x = temp_r29->x; + } + else { + if (temp_r31) { + sp54[temp_r31].x = temp_r29->x - 30; + } + else { + sp54[temp_r31].x = temp_r29->x + 30; + } + } + sp54[temp_r31].y = temp_r29->y; + sp54[temp_r31].z = temp_r29->z + temp_f31; + } + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + BoardModelPosGet(arg1->unk04[temp_r31], &sp30); + Hu3D2Dto3D(&sp54[temp_r31], 1, &sp54[temp_r31]); + VECSubtract(&sp54[temp_r31], &sp30, &sp24); + if (VECMag(&sp24) < 0.01f) { + arg1->field0_bit2 = 0; + if (arg2 && arg1->field0_bit3) { + BoardModelVisibilitySet(arg1->unk04[temp_r31], 0); + } + } + else { + arg1->field0_bit2 = 1; + } + VECScale(&sp24, &sp24, arg1->unk08); + VECAdd(&sp30, &sp24, &sp30); + BoardModelPosSetV(arg1->unk04[temp_r31], &sp30); + } } void fn_1_2BE4(m02GenDice *arg0, WorkGenDiceNum *arg1, s32 arg2) { - s32 temp_r29; - float temp_f30; - if(arg2) { - arg1->unk02 += 18; - if(arg1->unk02 >= 360) { - arg1->unk02 = 360; - } - } else { - arg1->unk02 -= 18; - if(arg1->unk02 <= 0) { - arg1->unk02 = 0; - } - } - OSs16tof32(&arg1->unk02, &temp_f30); - for(temp_r29=0; temp_r29<2; temp_r29++) { - if(arg1->unk04[temp_r29] == -1) { - continue; - } - BoardModelRotSet(arg1->unk04[temp_r29], 0, temp_f30, 0); - } -} \ No newline at end of file + s32 temp_r29; + float temp_f30; + if (arg2) { + arg1->unk02 += 18; + if (arg1->unk02 >= 360) { + arg1->unk02 = 360; + } + } + else { + arg1->unk02 -= 18; + if (arg1->unk02 <= 0) { + arg1->unk02 = 0; + } + } + OSs16tof32(&arg1->unk02, &temp_f30); + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + if (arg1->unk04[temp_r29] == -1) { + continue; + } + BoardModelRotSet(arg1->unk04[temp_r29], 0, temp_f30, 0); + } +} diff --git a/src/REL/w02Dll/main.c b/src/REL/w02Dll/main.c index db0b592e..8da93e44 100644 --- a/src/REL/w02Dll/main.c +++ b/src/REL/w02Dll/main.c @@ -89,17 +89,17 @@ void BoardCreate(void) { boardData = get_current_board(); lbl_1_bss_0 = GWSystem.board_data; - BoardSpaceInit(0x760000); - lbl_1_data_280 = BoardModelCreate(0x760001, NULL, 0); + BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W02, 0x00)); + lbl_1_data_280 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x01), NULL, 0); fn_8006DDE8(lbl_1_data_280, -1.0f); BoardModelPosSet(lbl_1_data_280, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_280, 0, 0x40000001); BoardModelMotionSpeedSet(lbl_1_data_280, 0.1f); - lbl_1_data_282 = BoardModelCreate(0x760002, NULL, 0); + lbl_1_data_282 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x02), NULL, 0); fn_8006DDE8(lbl_1_data_282, -1.0f); BoardModelPosSet(lbl_1_data_282, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_282, 0, 0x40000001); - lbl_1_data_284 = BoardModelCreate(0x760003, lbl_1_data_288, 0); + lbl_1_data_284 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x03), lbl_1_data_288, 0); BoardModelPosSet(lbl_1_data_284, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_284, 1, 0x40000001); lbl_1_data_286 = BoardModelCreate(0x20005, lbl_1_data_290, 0); @@ -132,8 +132,8 @@ void BoardCreate(void) { fn_1_92C(); BoardModelPosGet(lbl_1_bss_30[13], &lbl_1_bss_20); BoardModelPosGet(lbl_1_bss_30[14], &lbl_1_bss_14); - lbl_1_bss_2E = BoardModelCreate(0x760010, NULL, 1); - lbl_1_bss_2C = BoardModelCreate(0x760010, NULL, 1); + lbl_1_bss_2E = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x10), NULL, 1); + lbl_1_bss_2C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x10), NULL, 1); fn_1_9250(); BoardSpaceWalkEventFuncSet(fn_1_800); BoardSpaceWalkMiniEventFuncSet(fn_1_1128); diff --git a/src/REL/w02Dll/mg_coin.c b/src/REL/w02Dll/mg_coin.c index a1ce769c..40c6649e 100644 --- a/src/REL/w02Dll/mg_coin.c +++ b/src/REL/w02Dll/mg_coin.c @@ -1,10 +1,9 @@ #include "REL/w02Dll.h" #include "game/audio.h" -#include "game/pad.h" -#include "game/objsub.h" +#include "game/chrman.h" #include "game/frand.h" #include "game/objsub.h" -#include "game/chrman.h" +#include "game/pad.h" #include "ext_math.h" @@ -24,184 +23,158 @@ s16 lbl_1_bss_84; s16 lbl_1_bss_5C[20]; s32 lbl_1_bss_58; -Vec lbl_1_data_378[3] = { - { -45, 155, 108 }, - { 0, 155, 108 }, - { 45, 155, 108 } -}; +Vec lbl_1_data_378[3] = { { -45, 155, 108 }, { 0, 155, 108 }, { 45, 155, 108 } }; -Vec lbl_1_data_39C[3] = { - { -45, 25, 200 }, - { 0, 25, 200 }, - { 45, 25, 200 } -}; +Vec lbl_1_data_39C[3] = { { -45, 25, 200 }, { 0, 25, 200 }, { 45, 25, 200 } }; -s32 lbl_1_data_3C0[9] = { - 5, 10, 20, - 5, 10, 20, - 5, 10, 20 -}; +s32 lbl_1_data_3C0[9] = { 5, 10, 20, 5, 10, 20, 5, 10, 20 }; -s32 lbl_1_data_3E4[8] = { - 0x5F0008, - 0x1A0008, - 0x6D0008, - 0x8A0008, - 0x850008, - 0x110008, - 0x0D0008, - 0x810008 -}; +s32 lbl_1_data_3E4[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x08), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x08), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x08), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x08), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x08), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x08), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x08), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x08) }; -s32 lbl_1_data_404[8] = { - 0x5F000A, - 0x1A000A, - 0x6D000A, - 0x8A000A, - 0x85000A, - 0x11000A, - 0x0D000A, - 0x81000A -}; +s32 lbl_1_data_404[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x0A), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x0A), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x0A), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x0A), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x0A), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x0A), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x0A), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x0A) }; void fn_1_51B4(Vec *arg0); void fn_1_39F4(void) { - Vec sp8; - s32 temp_r31; - BoardModelVisibilitySet(lbl_1_bss_30[7], 1); - BoardModelVisibilitySet(lbl_1_bss_30[8], 1); - BoardModelVisibilitySet(lbl_1_bss_30[9], 0); - BoardModelAttrSet(lbl_1_bss_30[8], 0x40000002); - BoardModelAttrSet(lbl_1_bss_30[9], 0x40000003); - BoardModelAttrSet(lbl_1_bss_30[7], 0x40000001); - BoardModelPosGet(lbl_1_bss_30[8], &lbl_1_bss_94); - for(temp_r31=0; temp_r31<3; temp_r31++) { - lbl_1_bss_C2[temp_r31] = BoardModelCreate(0x760013, NULL, 1); - lbl_1_bss_BC[temp_r31] = BoardModelCreate(0x760014, NULL, 1); - BoardModelAttrSet(lbl_1_bss_BC[temp_r31], 0x40000002); - lbl_1_bss_B0[temp_r31] = (s32)frandmod(9)*40.0f; - sp8.x = lbl_1_bss_B0[temp_r31]; - sp8.y = sp8.z = 0; - BoardModelRotSetV(lbl_1_bss_C2[temp_r31], &sp8); - } - BoardModelPosSetV(lbl_1_bss_30[7], &lbl_1_bss_94); - fn_1_51B4(&lbl_1_bss_94); + Vec sp8; + s32 temp_r31; + BoardModelVisibilitySet(lbl_1_bss_30[7], 1); + BoardModelVisibilitySet(lbl_1_bss_30[8], 1); + BoardModelVisibilitySet(lbl_1_bss_30[9], 0); + BoardModelAttrSet(lbl_1_bss_30[8], 0x40000002); + BoardModelAttrSet(lbl_1_bss_30[9], 0x40000003); + BoardModelAttrSet(lbl_1_bss_30[7], 0x40000001); + BoardModelPosGet(lbl_1_bss_30[8], &lbl_1_bss_94); + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + lbl_1_bss_C2[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x13), NULL, 1); + lbl_1_bss_BC[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x14), NULL, 1); + BoardModelAttrSet(lbl_1_bss_BC[temp_r31], 0x40000002); + lbl_1_bss_B0[temp_r31] = (s32)frandmod(9) * 40.0f; + sp8.x = lbl_1_bss_B0[temp_r31]; + sp8.y = sp8.z = 0; + BoardModelRotSetV(lbl_1_bss_C2[temp_r31], &sp8); + } + BoardModelPosSetV(lbl_1_bss_30[7], &lbl_1_bss_94); + fn_1_51B4(&lbl_1_bss_94); } void fn_1_3F0C(omObjData *object); void fn_1_4050(omObjData *object); typedef struct work_mgcoin_player { - float unk0[3]; - float unkC[3]; - float unk18[3]; - s16 unk24[3]; + float unk0[3]; + float unkC[3]; + float unk18[3]; + s16 unk24[3]; } WorkMGCoinPlayer; typedef struct work_mgcoin { - float unk0; - float unk4; - s16 unk8; - Vec unkC; - s16 unk18; - s16 unk1A; - s16 unk1C; - s16 unk1E; - s16 unk20; + float unk0; + float unk4; + s16 unk8; + Vec unkC; + s16 unk18; + s16 unk1A; + s16 unk1C; + s16 unk1E; + s16 unk20; } WorkMGCoin; void fn_1_3BF4(void) { - Vec sp8; - - s32 temp_r31; - WorkMGCoinPlayer *temp_r30; - lbl_1_bss_86 = GWSystem.player_curr; - lbl_1_bss_AC = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_3F0C); - lbl_1_bss_A4 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_4050); - lbl_1_bss_A8 = omAddObjEx(boardObjMan, 257, 0, 2, -1, NULL); - lbl_1_bss_A8->motion[0] = BoardPlayerMotionCreate(lbl_1_bss_86, lbl_1_data_3E4[GWPlayer[lbl_1_bss_86].character]); - lbl_1_bss_A8->motion[1] = BoardPlayerMotionCreate(lbl_1_bss_86, lbl_1_data_404[GWPlayer[lbl_1_bss_86].character]); - lbl_1_bss_A4->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkMGCoinPlayer), MEMORY_DEFAULT_NUM); - temp_r30 = lbl_1_bss_A4->data; - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r30->unk0[temp_r31] = lbl_1_bss_B0[temp_r31]; - temp_r30->unkC[temp_r31] = 0; - temp_r30->unk18[temp_r31] = 0; - temp_r30->unk24[temp_r31] = 0; - } - lbl_1_bss_A8->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkMGCoin), MEMORY_DEFAULT_NUM); - BoardPlayerPosGet(lbl_1_bss_86, &sp8); - lbl_1_bss_A8->trans.x = sp8.x; - lbl_1_bss_A8->trans.y = sp8.y; - lbl_1_bss_A8->trans.z = sp8.z; - for(temp_r31=0; temp_r31<20; temp_r31++) { - lbl_1_bss_5C[temp_r31] = BoardModelCreate(0x7000A, NULL, 1); - BoardModelVisibilitySet(lbl_1_bss_5C[temp_r31], 0); - } - lbl_1_bss_A0 = 0; + Vec sp8; + + s32 temp_r31; + WorkMGCoinPlayer *temp_r30; + lbl_1_bss_86 = GWSystem.player_curr; + lbl_1_bss_AC = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_3F0C); + lbl_1_bss_A4 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_4050); + lbl_1_bss_A8 = omAddObjEx(boardObjMan, 257, 0, 2, -1, NULL); + lbl_1_bss_A8->motion[0] = BoardPlayerMotionCreate(lbl_1_bss_86, lbl_1_data_3E4[GWPlayer[lbl_1_bss_86].character]); + lbl_1_bss_A8->motion[1] = BoardPlayerMotionCreate(lbl_1_bss_86, lbl_1_data_404[GWPlayer[lbl_1_bss_86].character]); + lbl_1_bss_A4->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkMGCoinPlayer), MEMORY_DEFAULT_NUM); + temp_r30 = lbl_1_bss_A4->data; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r30->unk0[temp_r31] = lbl_1_bss_B0[temp_r31]; + temp_r30->unkC[temp_r31] = 0; + temp_r30->unk18[temp_r31] = 0; + temp_r30->unk24[temp_r31] = 0; + } + lbl_1_bss_A8->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkMGCoin), MEMORY_DEFAULT_NUM); + BoardPlayerPosGet(lbl_1_bss_86, &sp8); + lbl_1_bss_A8->trans.x = sp8.x; + lbl_1_bss_A8->trans.y = sp8.y; + lbl_1_bss_A8->trans.z = sp8.z; + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + lbl_1_bss_5C[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1); + BoardModelVisibilitySet(lbl_1_bss_5C[temp_r31], 0); + } + lbl_1_bss_A0 = 0; } void fn_1_3F94(void); void fn_1_3F0C(omObjData *object) { - if(lbl_1_bss_A0 && BoardMGDoneFlagGet() == 1) { - fn_1_3F94(); - omDelObjEx(boardObjMan, object); - } + if (lbl_1_bss_A0 && BoardMGDoneFlagGet() == 1) { + fn_1_3F94(); + omDelObjEx(boardObjMan, object); + } } void fn_1_3F64(void) { - lbl_1_bss_A0 = 1; - BoardMGExit(); + lbl_1_bss_A0 = 1; + BoardMGExit(); } void fn_1_3F94(void) { - s32 temp_r31; - BoardPlayerMotionKill(lbl_1_bss_86, lbl_1_bss_A8->motion[0]); - BoardPlayerMotionKill(lbl_1_bss_86, lbl_1_bss_A8->motion[1]); - omDelObjEx(boardObjMan, lbl_1_bss_A8); - for(temp_r31=0; temp_r31<20; temp_r31++) { - BoardModelKill(lbl_1_bss_5C[temp_r31]); - } - BoardMGDoneFlagSet(0); + s32 temp_r31; + BoardPlayerMotionKill(lbl_1_bss_86, lbl_1_bss_A8->motion[0]); + BoardPlayerMotionKill(lbl_1_bss_86, lbl_1_bss_A8->motion[1]); + omDelObjEx(boardObjMan, lbl_1_bss_A8); + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + BoardModelKill(lbl_1_bss_5C[temp_r31]); + } + BoardMGDoneFlagSet(0); } void fn_1_4100(omObjData *object); void fn_1_4050(omObjData *object) { - if(object->work[0] == 0) { - object->work[0] = MGSeqStartCreate(); - return; - } - if(MGSeqStatGet(object->work[0])) { - return; - } - object->func = fn_1_4100; - BoardModelMotionTimeSet(lbl_1_bss_30[8], 0); - BoardModelAttrReset(lbl_1_bss_30[8], 0x40000006); - HuAudFXPlay(1062); + if (object->work[0] == 0) { + object->work[0] = MGSeqStartCreate(); + return; + } + if (MGSeqStatGet(object->work[0])) { + return; + } + object->func = fn_1_4100; + BoardModelMotionTimeSet(lbl_1_bss_30[8], 0); + BoardModelAttrReset(lbl_1_bss_30[8], 0x40000006); + HuAudFXPlay(1062); } void fn_1_41B8(omObjData *object); void fn_1_4100(omObjData *object) { - if(BoardModelMotionTimeGet(lbl_1_bss_30[8]) >= BoardModelMotionMaxTimeGet(lbl_1_bss_30[8])) { - object->work[0] = 0; - object->work[1] = 0; - object->work[2] = 1; - object->work[3] = 0; - object->func = fn_1_41B8; - BoardModelAttrSet(lbl_1_bss_30[8], 0x40000004); - lbl_1_bss_58 = HuAudFXPlay(1063); - } + if (BoardModelMotionTimeGet(lbl_1_bss_30[8]) >= BoardModelMotionMaxTimeGet(lbl_1_bss_30[8])) { + object->work[0] = 0; + object->work[1] = 0; + object->work[2] = 1; + object->work[3] = 0; + object->func = fn_1_41B8; + BoardModelAttrSet(lbl_1_bss_30[8], 0x40000004); + lbl_1_bss_58 = HuAudFXPlay(1063); + } } void fn_1_4378(omObjData *object); @@ -209,42 +182,42 @@ void fn_1_5290(omObjData *object); void fn_1_41B8(omObjData *object) { - Vec sp8; - WorkMGCoinPlayer *temp_r30; - s32 temp_r29; - s32 temp_r28; - u32 temp_r27; - temp_r30 = object->data; - if(object->work[1] == 0) { - object->work[0] |= object->work[2]; - object->work[1] = 12; - object->work[2] <<= 1; - } else { - object->work[1]--; - } - sp8.y = sp8.z = 0; - temp_r28 = 0; - for(temp_r29=0; temp_r29<3; temp_r29++) { - temp_r27 = 1 << temp_r29; - if(object->work[0] & temp_r27) { - temp_r30->unkC[temp_r29] += 0.25f; - if(temp_r30->unkC[temp_r29] > 5.0f) { - temp_r30->unkC[temp_r29] = 5.0f; - temp_r28++; - } - temp_r30->unk0[temp_r29] += temp_r30->unkC[temp_r29]; - if(temp_r30->unk0[temp_r29] >= 360.0f) { - temp_r30->unk0[temp_r29] -= 360.0f; - } - sp8.x = temp_r30->unk0[temp_r29]; - BoardModelRotSetV(lbl_1_bss_C2[temp_r29], &sp8); - } - } - if(temp_r28 == 3) { - object->func = fn_1_4378; - lbl_1_bss_A8->func = fn_1_5290; - } - + Vec sp8; + WorkMGCoinPlayer *temp_r30; + s32 temp_r29; + s32 temp_r28; + u32 temp_r27; + temp_r30 = object->data; + if (object->work[1] == 0) { + object->work[0] |= object->work[2]; + object->work[1] = 12; + object->work[2] <<= 1; + } + else { + object->work[1]--; + } + sp8.y = sp8.z = 0; + temp_r28 = 0; + for (temp_r29 = 0; temp_r29 < 3; temp_r29++) { + temp_r27 = 1 << temp_r29; + if (object->work[0] & temp_r27) { + temp_r30->unkC[temp_r29] += 0.25f; + if (temp_r30->unkC[temp_r29] > 5.0f) { + temp_r30->unkC[temp_r29] = 5.0f; + temp_r28++; + } + temp_r30->unk0[temp_r29] += temp_r30->unkC[temp_r29]; + if (temp_r30->unk0[temp_r29] >= 360.0f) { + temp_r30->unk0[temp_r29] -= 360.0f; + } + sp8.x = temp_r30->unk0[temp_r29]; + BoardModelRotSetV(lbl_1_bss_C2[temp_r29], &sp8); + } + } + if (temp_r28 == 3) { + object->func = fn_1_4378; + lbl_1_bss_A8->func = fn_1_5290; + } } void fn_1_4698(omObjData *object); @@ -253,431 +226,442 @@ void fn_1_46E8(void); void fn_1_4378(omObjData *object) { - Vec sp8; - float temp_f31; - WorkMGCoinPlayer *temp_r31; - s32 temp_r30; - s32 temp_r28; - Process *temp_r27; - temp_r31 = object->data; - sp8.y = sp8.z = 0; - for(temp_r30=0; temp_r30<3; temp_r30++) { - temp_r28 = 1<work[0] & temp_r28) { - if(object->work[3] & temp_r28) { - temp_r31->unk18[temp_r30] = 360; - temp_r31->unk24[temp_r30] = 1; - object->work[3] &= ~temp_r28; - } - if(temp_r31->unk24[temp_r30]) { - if(0.0f == temp_r31->unk18[temp_r30]) { - temp_f31 = fmod(temp_r31->unk0[temp_r30], 40.0); - if(temp_f31+temp_r31->unkC[temp_r30] >= 40.0f) { - temp_r31->unk0[temp_r30] += (temp_f31+temp_r31->unkC[temp_r30])-40.0f; - temp_f31 = 0; - } - if(0.0f == temp_f31) { - HuAudFXPlay(1067); - object->work[0] &= ~temp_r28; - temp_r31->unkC[temp_r30] = 0; - lbl_1_bss_A8->work[2] = 60; - if(temp_r30 != 2) { - lbl_1_bss_A8->func = fn_1_5290; - } else { - BoardAudSeqFadeOut(1, 100); - temp_r27 = HuPrcCreate(fn_1_46E8, 8196, 6144, 0); - temp_r27->user_data = object; - HuAudFXStop(lbl_1_bss_58); - object->func = fn_1_4698; - } - } - } else { - temp_r31->unk18[temp_r30] -= temp_r31->unkC[temp_r30]; - if(temp_r31->unk18[temp_r30] < 0.0f) { - temp_r31->unk18[temp_r30] = 0.0f; - } - } - } - temp_r31->unk0[temp_r30] += temp_r31->unkC[temp_r30]; - if(temp_r31->unk0[temp_r30] >= 360.0f) { - temp_r31->unk0[temp_r30] -= 360.0f; - } - } - sp8.x = temp_r31->unk0[temp_r30]; - BoardModelRotSetV(lbl_1_bss_C2[temp_r30], &sp8); - } + Vec sp8; + float temp_f31; + WorkMGCoinPlayer *temp_r31; + s32 temp_r30; + s32 temp_r28; + Process *temp_r27; + temp_r31 = object->data; + sp8.y = sp8.z = 0; + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + temp_r28 = 1 << temp_r30; + if (object->work[0] & temp_r28) { + if (object->work[3] & temp_r28) { + temp_r31->unk18[temp_r30] = 360; + temp_r31->unk24[temp_r30] = 1; + object->work[3] &= ~temp_r28; + } + if (temp_r31->unk24[temp_r30]) { + if (0.0f == temp_r31->unk18[temp_r30]) { + temp_f31 = fmod(temp_r31->unk0[temp_r30], 40.0); + if (temp_f31 + temp_r31->unkC[temp_r30] >= 40.0f) { + temp_r31->unk0[temp_r30] += (temp_f31 + temp_r31->unkC[temp_r30]) - 40.0f; + temp_f31 = 0; + } + if (0.0f == temp_f31) { + HuAudFXPlay(1067); + object->work[0] &= ~temp_r28; + temp_r31->unkC[temp_r30] = 0; + lbl_1_bss_A8->work[2] = 60; + if (temp_r30 != 2) { + lbl_1_bss_A8->func = fn_1_5290; + } + else { + BoardAudSeqFadeOut(1, 100); + temp_r27 = HuPrcCreate(fn_1_46E8, 8196, 6144, 0); + temp_r27->user_data = object; + HuAudFXStop(lbl_1_bss_58); + object->func = fn_1_4698; + } + } + } + else { + temp_r31->unk18[temp_r30] -= temp_r31->unkC[temp_r30]; + if (temp_r31->unk18[temp_r30] < 0.0f) { + temp_r31->unk18[temp_r30] = 0.0f; + } + } + } + temp_r31->unk0[temp_r30] += temp_r31->unkC[temp_r30]; + if (temp_r31->unk0[temp_r30] >= 360.0f) { + temp_r31->unk0[temp_r30] -= 360.0f; + } + } + sp8.x = temp_r31->unk0[temp_r30]; + BoardModelRotSetV(lbl_1_bss_C2[temp_r30], &sp8); + } } void fn_1_4698(omObjData *object) { - if(msmMusGetStatus(1) == 0) { - BoardAudSeqPause(0, 0, 1000); - object->func = NULL; - } + if (msmMusGetStatus(1) == 0) { + BoardAudSeqPause(0, 0, 1000); + object->func = NULL; + } } void fn_1_511C(omObjData *object); void fn_1_46E8(void) { - Vec sp21C[20]; - Vec sp12C[20]; - Vec sp3C[20]; - s32 sp30[3]; - Vec sp24; - Vec sp18; - Vec spC; - char sp8[4]; - float temp_f31; - s32 temp_r31; - s32 temp_r30; - s32 temp_r29; - s32 temp_r28; - omObjData *temp_r27; - for(temp_r31=0; temp_r31<3; temp_r31++) { - BoardModelRotGet(lbl_1_bss_C2[temp_r31], &sp24); - sp30[temp_r31] = lbl_1_data_3C0[(int)(sp24.x/40.0f)]; - } - if(sp30[0] == sp30[1] && sp30[0] == sp30[2]) { - lbl_1_bss_84 = sp30[0]; - } else { - lbl_1_bss_84 = 1; - } - if(lbl_1_bss_84 != 1) { - BoardModelVisibilitySet(lbl_1_bss_30[9], 1); - BoardModelAttrReset(lbl_1_bss_30[9], 0x40000002); - } - sprintf(sp8, "%d", lbl_1_bss_84); - BoardWinCreate(2, MAKE_MESSID(19, 19), 4); - BoardWinInsertMesSet((u32)sp8, 0); - BoardWinWait(); - BoardWinKill(); - BoardCameraTargetModelSet(-1); - temp_r30 = 0; - temp_r29 = 45; - temp_f31 = 0; - sp18 = lbl_1_bss_94; - HuAudFXPlay(1065); - while(1) { - temp_r28 = 0; - if(temp_r29 == 0 && temp_r30 < lbl_1_bss_84) { - HuAudFXPlay(18); - BoardModelVisibilitySet(lbl_1_bss_5C[temp_r30], 1); - sp21C[temp_r30].x = -5.0f+((1.0f/255.0f)*(10.0f*frand8())); - sp21C[temp_r30].y = 212.5f; - sp21C[temp_r30].z = 130.0f; - VECAdd(&sp21C[temp_r30], &sp18, &sp21C[temp_r30]); - BoardModelPosSetV(lbl_1_bss_5C[temp_r30], &sp21C[temp_r30]); - sp12C[temp_r30].x = -1.0f+((1.0f/255.0f)*(2.0f*frand8())); - sp12C[temp_r30].y = 18.0f; - sp12C[temp_r30].z = 0.0f; - temp_r29 = frandmod(3)+5; - temp_r30++; - } else { - temp_r29--; - } - for(temp_r31=0; temp_r31= 500.0f) { - BoardModelVisibilitySet(lbl_1_bss_5C[temp_r31], 0); - temp_r28++; - } else { - VECAdd(&sp21C[temp_r31], &sp12C[temp_r31], &sp21C[temp_r31]); - } - BoardModelPosSetV(lbl_1_bss_5C[temp_r31], &sp21C[temp_r31]); - } - sp18.y += 0.8f*sind(temp_f31); - temp_f31 += 45.0f; - if(temp_f31 >= 360.0f) { - temp_f31 -= 360.0f; - } - fn_1_51B4(&sp18); - if(temp_r28 == lbl_1_bss_84) { - break; - } - HuPrcVSleep(); - } - fn_1_51B4(&lbl_1_bss_94); - BoardModelAttrSet(lbl_1_bss_30[9], 0x40000002); - BoardModelMotionTimeSet(lbl_1_bss_30[9], 0); - BoardModelVisibilitySet(lbl_1_bss_30[9], 0); - BoardPlayerPosGet(lbl_1_bss_86, &sp18); - for(temp_r31=0; temp_r31= 360.0f) { - sp3C[temp_r31].y -= 360.0f; - } - BoardModelRotSetV(lbl_1_bss_5C[temp_r31], &sp3C[temp_r31]); - if(sp21C[temp_r31].y <= 80.0f+sp18.y) { - spC = sp21C[temp_r31]; - CharModelCoinEffectCreate(1, &spC); - BoardModelVisibilitySet(lbl_1_bss_5C[temp_r31], 0); - temp_r30++; - BoardPlayerCoinsAdd(lbl_1_bss_86, 1); - HuAudFXPlay(7); - omVibrate(lbl_1_bss_86, 12, 6, 6); - } - } - temp_f31 *= 1.05f; - if(temp_f31 < -20.0f) { - temp_f31 = -20.0f; - } - if(temp_r30 == lbl_1_bss_84) { - BoardPlayerMotionShiftSet(lbl_1_bss_86, 7, 0, 10, 0); - break; - } - HuPrcVSleep(); - } - while(!BoardPlayerMotionEndCheck(lbl_1_bss_86)) { - HuPrcVSleep(); - } - fn_1_121C(0x130014); - temp_r27 = HuPrcCurrentGet()->user_data; - temp_r27->func = fn_1_511C; - HuPrcEnd(); + Vec sp21C[20]; + Vec sp12C[20]; + Vec sp3C[20]; + s32 sp30[3]; + Vec sp24; + Vec sp18; + Vec spC; + char sp8[4]; + float temp_f31; + s32 temp_r31; + s32 temp_r30; + s32 temp_r29; + s32 temp_r28; + omObjData *temp_r27; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + BoardModelRotGet(lbl_1_bss_C2[temp_r31], &sp24); + sp30[temp_r31] = lbl_1_data_3C0[(int)(sp24.x / 40.0f)]; + } + if (sp30[0] == sp30[1] && sp30[0] == sp30[2]) { + lbl_1_bss_84 = sp30[0]; + } + else { + lbl_1_bss_84 = 1; + } + if (lbl_1_bss_84 != 1) { + BoardModelVisibilitySet(lbl_1_bss_30[9], 1); + BoardModelAttrReset(lbl_1_bss_30[9], 0x40000002); + } + sprintf(sp8, "%d", lbl_1_bss_84); + BoardWinCreate(2, MAKE_MESSID(19, 19), 4); + BoardWinInsertMesSet((u32)sp8, 0); + BoardWinWait(); + BoardWinKill(); + BoardCameraTargetModelSet(-1); + temp_r30 = 0; + temp_r29 = 45; + temp_f31 = 0; + sp18 = lbl_1_bss_94; + HuAudFXPlay(1065); + while (1) { + temp_r28 = 0; + if (temp_r29 == 0 && temp_r30 < lbl_1_bss_84) { + HuAudFXPlay(18); + BoardModelVisibilitySet(lbl_1_bss_5C[temp_r30], 1); + sp21C[temp_r30].x = -5.0f + ((1.0f / 255.0f) * (10.0f * frand8())); + sp21C[temp_r30].y = 212.5f; + sp21C[temp_r30].z = 130.0f; + VECAdd(&sp21C[temp_r30], &sp18, &sp21C[temp_r30]); + BoardModelPosSetV(lbl_1_bss_5C[temp_r30], &sp21C[temp_r30]); + sp12C[temp_r30].x = -1.0f + ((1.0f / 255.0f) * (2.0f * frand8())); + sp12C[temp_r30].y = 18.0f; + sp12C[temp_r30].z = 0.0f; + temp_r29 = frandmod(3) + 5; + temp_r30++; + } + else { + temp_r29--; + } + for (temp_r31 = 0; temp_r31 < temp_r30; temp_r31++) { + if (sp21C[temp_r31].y >= 500.0f) { + BoardModelVisibilitySet(lbl_1_bss_5C[temp_r31], 0); + temp_r28++; + } + else { + VECAdd(&sp21C[temp_r31], &sp12C[temp_r31], &sp21C[temp_r31]); + } + BoardModelPosSetV(lbl_1_bss_5C[temp_r31], &sp21C[temp_r31]); + } + sp18.y += 0.8f * sind(temp_f31); + temp_f31 += 45.0f; + if (temp_f31 >= 360.0f) { + temp_f31 -= 360.0f; + } + fn_1_51B4(&sp18); + if (temp_r28 == lbl_1_bss_84) { + break; + } + HuPrcVSleep(); + } + fn_1_51B4(&lbl_1_bss_94); + BoardModelAttrSet(lbl_1_bss_30[9], 0x40000002); + BoardModelMotionTimeSet(lbl_1_bss_30[9], 0); + BoardModelVisibilitySet(lbl_1_bss_30[9], 0); + BoardPlayerPosGet(lbl_1_bss_86, &sp18); + for (temp_r31 = 0; temp_r31 < lbl_1_bss_84; temp_r31++) { + BoardModelVisibilitySet(lbl_1_bss_5C[temp_r31], 1); + sp21C[temp_r31] = sp18; + sp21C[temp_r31].y += (temp_r31 * 120) + 600.0f; + sp21C[temp_r31].x += -25.0f + ((1.0f / 255.0f) * (50.0f * frand8())); + sp21C[temp_r31].z += -25.0f + ((1.0f / 255.0f) * (50.0f * frand8())); + sp3C[temp_r31].x = sp3C[temp_r31].z = 0; + sp3C[temp_r31].y = ((1.0f / 255.0f) * (360.0f * frand8())); + BoardModelPosSetV(lbl_1_bss_5C[temp_r31], &sp21C[temp_r31]); + BoardModelRotSetV(lbl_1_bss_5C[temp_r31], &sp3C[temp_r31]); + } + temp_f31 = -1; + temp_r30 = 0; + while (1) { + for (temp_r31 = 0; temp_r31 < lbl_1_bss_84; temp_r31++) { + if (temp_r31 < temp_r30) { + continue; + } + sp21C[temp_r31].y += temp_f31; + BoardModelPosSetV(lbl_1_bss_5C[temp_r31], &sp21C[temp_r31]); + sp3C[temp_r31].y += 45.0f; + if (sp3C[temp_r31].y >= 360.0f) { + sp3C[temp_r31].y -= 360.0f; + } + BoardModelRotSetV(lbl_1_bss_5C[temp_r31], &sp3C[temp_r31]); + if (sp21C[temp_r31].y <= 80.0f + sp18.y) { + spC = sp21C[temp_r31]; + CharModelCoinEffectCreate(1, &spC); + BoardModelVisibilitySet(lbl_1_bss_5C[temp_r31], 0); + temp_r30++; + BoardPlayerCoinsAdd(lbl_1_bss_86, 1); + HuAudFXPlay(7); + omVibrate(lbl_1_bss_86, 12, 6, 6); + } + } + temp_f31 *= 1.05f; + if (temp_f31 < -20.0f) { + temp_f31 = -20.0f; + } + if (temp_r30 == lbl_1_bss_84) { + BoardPlayerMotionShiftSet(lbl_1_bss_86, 7, 0, 10, 0); + break; + } + HuPrcVSleep(); + } + while (!BoardPlayerMotionEndCheck(lbl_1_bss_86)) { + HuPrcVSleep(); + } + fn_1_121C(MAKE_MESSID(0x13, 0x14)); + temp_r27 = HuPrcCurrentGet()->user_data; + temp_r27->func = fn_1_511C; + HuPrcEnd(); } void fn_1_511C(omObjData *object) { - Vec spC; - s32 temp_r31; - for(temp_r31=0; temp_r31<3; temp_r31++) { - BoardModelRotGet(lbl_1_bss_C2[temp_r31], &spC); - lbl_1_bss_B0[temp_r31] = spC.x; - } - fn_1_3F64(); - omDelObjEx(boardObjMan, object); + Vec spC; + s32 temp_r31; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + BoardModelRotGet(lbl_1_bss_C2[temp_r31], &spC); + lbl_1_bss_B0[temp_r31] = spC.x; + } + fn_1_3F64(); + omDelObjEx(boardObjMan, object); } void fn_1_51B4(Vec *arg0) { - s32 temp_r31; - Vec sp8; - BoardModelPosSetV(lbl_1_bss_30[8], arg0); - BoardModelPosSetV(lbl_1_bss_30[9], arg0); - for(temp_r31=0; temp_r31<3; temp_r31++) { - VECAdd(arg0, &lbl_1_data_378[temp_r31], &sp8); - BoardModelPosSetV(lbl_1_bss_C2[temp_r31], &sp8); - VECAdd(arg0, &lbl_1_data_39C[temp_r31], &sp8); - BoardModelPosSetV(lbl_1_bss_BC[temp_r31], &sp8); - } + s32 temp_r31; + Vec sp8; + BoardModelPosSetV(lbl_1_bss_30[8], arg0); + BoardModelPosSetV(lbl_1_bss_30[9], arg0); + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + VECAdd(arg0, &lbl_1_data_378[temp_r31], &sp8); + BoardModelPosSetV(lbl_1_bss_C2[temp_r31], &sp8); + VECAdd(arg0, &lbl_1_data_39C[temp_r31], &sp8); + BoardModelPosSetV(lbl_1_bss_BC[temp_r31], &sp8); + } } void fn_1_53B8(omObjData *object); void fn_1_5290(omObjData *object) { - WorkMGCoin *temp_r31; - float sp8[2]; - if(object->work[2] == 0) { - temp_r31 = object->data; - temp_r31->unk18 = 5; - temp_r31->unk1A = 60; - temp_r31->unk1C = MGSeqTimerCreateXY(temp_r31->unk18, 288, 64); - HuWinMesMaxSizeGet(1, sp8, 0x130015); - temp_r31->unk1E = HuWinCreate(-10000, 400, sp8[0], sp8[1], 0); - HuWinMesSet(temp_r31->unk1E, 0x130015); - HuWinBGTPLvlSet(temp_r31->unk1E, 0); - HuWinMesSpeedSet(temp_r31->unk1E, 0); - temp_r31->unk20 = frandmod(100)+20; - object->func = fn_1_53B8; - } else { - object->work[2]--; - } + WorkMGCoin *temp_r31; + float sp8[2]; + if (object->work[2] == 0) { + temp_r31 = object->data; + temp_r31->unk18 = 5; + temp_r31->unk1A = 60; + temp_r31->unk1C = MGSeqTimerCreateXY(temp_r31->unk18, 288, 64); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x13, 0x15)); + temp_r31->unk1E = HuWinCreate(-10000, 400, sp8[0], sp8[1], 0); + HuWinMesSet(temp_r31->unk1E, MAKE_MESSID(0x13, 0x15)); + HuWinBGTPLvlSet(temp_r31->unk1E, 0); + HuWinMesSpeedSet(temp_r31->unk1E, 0); + temp_r31->unk20 = frandmod(100) + 20; + object->func = fn_1_53B8; + } + else { + object->work[2]--; + } } void fn_1_5634(omObjData *object); void fn_1_53B8(omObjData *object) { - Vec sp14; - Vec sp8; - WorkMGCoin *temp_r31; - s32 temp_r29; - s32 temp_r28; - temp_r31 = object->data; - temp_r28 = GWPlayer[lbl_1_bss_86].port; - if(--temp_r31->unk1A == 0) { - temp_r31->unk1A = 60; - if(--temp_r31->unk18 >= 0) { - MGSeqParamSet(temp_r31->unk1C, 1, temp_r31->unk18); - } - } - if(!GWPlayer[lbl_1_bss_86].com) { - temp_r29 = HuPadBtnDown[temp_r28]; - } else { - if(--temp_r31->unk20 == 0) { - temp_r29 = PAD_BUTTON_A; - } - } - if((temp_r29 & PAD_BUTTON_A) || temp_r31->unk18 < 0) { - MGSeqParamSet(temp_r31->unk1C, 2, -1); - HuWinKill(temp_r31->unk1E); - BoardPlayerMotionShiftSet(lbl_1_bss_86, 4, 0, 5, 0); - temp_r31->unk0 = 10; - temp_r31->unk4 = 0; - if(lbl_1_bss_A4->work[0] & 0x1) { - temp_r31->unk8 = 0; - } else { - if(lbl_1_bss_A4->work[0] & 0x2) { - temp_r31->unk8 = 1; - } else { - temp_r31->unk8 = 2; - } - } - BoardPlayerPosGet(lbl_1_bss_86, &sp14); - sp8 = lbl_1_bss_94; - VECAdd(&sp8, &lbl_1_data_39C[temp_r31->unk8], &sp8); - VECSubtract(&sp8, &sp14, &temp_r31->unkC); - VECScale(&temp_r31->unkC, &temp_r31->unkC, 0.05f); - object->work[0] = 1; - object->func = fn_1_5634; - } + Vec sp14; + Vec sp8; + WorkMGCoin *temp_r31; + s32 temp_r29; + s32 temp_r28; + temp_r31 = object->data; + temp_r28 = GWPlayer[lbl_1_bss_86].port; + if (--temp_r31->unk1A == 0) { + temp_r31->unk1A = 60; + if (--temp_r31->unk18 >= 0) { + MGSeqParamSet(temp_r31->unk1C, 1, temp_r31->unk18); + } + } + if (!GWPlayer[lbl_1_bss_86].com) { + temp_r29 = HuPadBtnDown[temp_r28]; + } + else { + if (--temp_r31->unk20 == 0) { + temp_r29 = PAD_BUTTON_A; + } + } + if ((temp_r29 & PAD_BUTTON_A) || temp_r31->unk18 < 0) { + MGSeqParamSet(temp_r31->unk1C, 2, -1); + HuWinKill(temp_r31->unk1E); + BoardPlayerMotionShiftSet(lbl_1_bss_86, 4, 0, 5, 0); + temp_r31->unk0 = 10; + temp_r31->unk4 = 0; + if (lbl_1_bss_A4->work[0] & 0x1) { + temp_r31->unk8 = 0; + } + else { + if (lbl_1_bss_A4->work[0] & 0x2) { + temp_r31->unk8 = 1; + } + else { + temp_r31->unk8 = 2; + } + } + BoardPlayerPosGet(lbl_1_bss_86, &sp14); + sp8 = lbl_1_bss_94; + VECAdd(&sp8, &lbl_1_data_39C[temp_r31->unk8], &sp8); + VECSubtract(&sp8, &sp14, &temp_r31->unkC); + VECScale(&temp_r31->unkC, &temp_r31->unkC, 0.05f); + object->work[0] = 1; + object->func = fn_1_5634; + } } void fn_1_5868(omObjData *object); void fn_1_5634(omObjData *object) { - Vec sp14; - Vec sp8; - float temp_f31; - WorkMGCoin *temp_r31; - temp_r31 = object->data; - if(object->work[0] == 1) { - BoardPlayerPosGet(lbl_1_bss_86, &sp14); - temp_r31->unkC.y = temp_r31->unk0-(0.075f*(0.25f*(temp_r31->unk4*temp_r31->unk4))); - temp_r31->unk4++; - VECAdd(&sp14, &temp_r31->unkC, &sp14); - if(sp14.y <= lbl_1_bss_94.y) { - sp14.y = lbl_1_bss_94.y; - } - BoardPlayerPosSetV(lbl_1_bss_86, &sp14); - sp8 = lbl_1_bss_94; - VECAdd(&sp8, &lbl_1_data_39C[temp_r31->unk8], &sp8); - sp8.y = sp14.y = 0; - VECSubtract(&sp8, &sp14, &sp14); - temp_f31 = VECMag(&sp14); - if(temp_f31 <= 1.0f) { - BoardPlayerMotionStart(lbl_1_bss_86, object->motion[0], 0); - object->work[0] = 0; - } - } else { - if(BoardPlayerMotionTimeGet(lbl_1_bss_86) >= BoardPlayerMotionMaxTimeGet(lbl_1_bss_86)) { - temp_r31->unk0 = -5; - temp_r31->unk4 = 0; - temp_r31->unkC.x = temp_r31->unkC.z = 0; - object->func = fn_1_5868; - } - } + Vec sp14; + Vec sp8; + float temp_f31; + WorkMGCoin *temp_r31; + temp_r31 = object->data; + if (object->work[0] == 1) { + BoardPlayerPosGet(lbl_1_bss_86, &sp14); + temp_r31->unkC.y = temp_r31->unk0 - (0.075f * (0.25f * (temp_r31->unk4 * temp_r31->unk4))); + temp_r31->unk4++; + VECAdd(&sp14, &temp_r31->unkC, &sp14); + if (sp14.y <= lbl_1_bss_94.y) { + sp14.y = lbl_1_bss_94.y; + } + BoardPlayerPosSetV(lbl_1_bss_86, &sp14); + sp8 = lbl_1_bss_94; + VECAdd(&sp8, &lbl_1_data_39C[temp_r31->unk8], &sp8); + sp8.y = sp14.y = 0; + VECSubtract(&sp8, &sp14, &sp14); + temp_f31 = VECMag(&sp14); + if (temp_f31 <= 1.0f) { + BoardPlayerMotionStart(lbl_1_bss_86, object->motion[0], 0); + object->work[0] = 0; + } + } + else { + if (BoardPlayerMotionTimeGet(lbl_1_bss_86) >= BoardPlayerMotionMaxTimeGet(lbl_1_bss_86)) { + temp_r31->unk0 = -5; + temp_r31->unk4 = 0; + temp_r31->unkC.x = temp_r31->unkC.z = 0; + object->func = fn_1_5868; + } + } } void fn_1_5AC0(omObjData *object); void fn_1_5868(omObjData *object) { - Vec sp14; - Vec sp8; - WorkMGCoin *temp_r31; - temp_r31 = object->data; - BoardPlayerPosGet(lbl_1_bss_86, &sp14); - temp_r31->unkC.y = temp_r31->unk0-(0.075f*(0.25f*(temp_r31->unk4*temp_r31->unk4))); - temp_r31->unk4++; - VECAdd(&sp14, &temp_r31->unkC, &sp14); - sp8 = lbl_1_bss_94; - VECAdd(&sp8, &lbl_1_data_39C[temp_r31->unk8], &sp8); - sp8.y += 16.0f; - if(sp14.y <= sp8.y) { - sp14.y = sp8.y; - } - BoardPlayerPosSetV(lbl_1_bss_86, &sp14); - if(sp14.y == sp8.y) { - BoardModelMotionTimeSet(lbl_1_bss_BC[temp_r31->unk8], 0); - BoardModelAttrReset(lbl_1_bss_BC[temp_r31->unk8], 0x40000002); - BoardPlayerMotionShiftSet(lbl_1_bss_86, object->motion[1], 0, 5, 0); - lbl_1_bss_A4->work[3] |= 1 << temp_r31->unk8; - temp_r31->unk0 = 5; - temp_r31->unk4 = 0; - sp8.x = object->trans.x; - sp8.y = object->trans.y; - sp8.z = object->trans.z; - VECSubtract(&sp8, &sp14, &temp_r31->unkC); - VECScale(&temp_r31->unkC, &temp_r31->unkC, 0.03f); - HuAudFXPlay(1064); - object->func = fn_1_5AC0; - - } + Vec sp14; + Vec sp8; + WorkMGCoin *temp_r31; + temp_r31 = object->data; + BoardPlayerPosGet(lbl_1_bss_86, &sp14); + temp_r31->unkC.y = temp_r31->unk0 - (0.075f * (0.25f * (temp_r31->unk4 * temp_r31->unk4))); + temp_r31->unk4++; + VECAdd(&sp14, &temp_r31->unkC, &sp14); + sp8 = lbl_1_bss_94; + VECAdd(&sp8, &lbl_1_data_39C[temp_r31->unk8], &sp8); + sp8.y += 16.0f; + if (sp14.y <= sp8.y) { + sp14.y = sp8.y; + } + BoardPlayerPosSetV(lbl_1_bss_86, &sp14); + if (sp14.y == sp8.y) { + BoardModelMotionTimeSet(lbl_1_bss_BC[temp_r31->unk8], 0); + BoardModelAttrReset(lbl_1_bss_BC[temp_r31->unk8], 0x40000002); + BoardPlayerMotionShiftSet(lbl_1_bss_86, object->motion[1], 0, 5, 0); + lbl_1_bss_A4->work[3] |= 1 << temp_r31->unk8; + temp_r31->unk0 = 5; + temp_r31->unk4 = 0; + sp8.x = object->trans.x; + sp8.y = object->trans.y; + sp8.z = object->trans.z; + VECSubtract(&sp8, &sp14, &temp_r31->unkC); + VECScale(&temp_r31->unkC, &temp_r31->unkC, 0.03f); + HuAudFXPlay(1064); + object->func = fn_1_5AC0; + } } void fn_1_5C84(omObjData *object); void fn_1_5AC0(omObjData *object) { - float temp_f31; - float temp_f30; - Vec sp14; - Vec sp8; - WorkMGCoin *temp_r30; - temp_r30 = object->data; - BoardPlayerPosGet(lbl_1_bss_86, &sp14); - temp_r30->unkC.y = temp_r30->unk0-(0.075f*(0.25f*(temp_r30->unk4*temp_r30->unk4))); - temp_r30->unk4++; - VECAdd(&sp14, &temp_r30->unkC, &sp14); - sp8.x = object->trans.x; - sp8.y = 0; - sp8.z = object->trans.z; - temp_f30 = sp14.y; - sp14.y = 0; - VECSubtract(&sp8, &sp14, &sp8); - sp14.y = temp_f30; - temp_f31 = VECMag(&sp8); - if(temp_f31 <= 1.0f) { - temp_r30->unkC.x = temp_r30->unkC.z = 0; - } - if(sp14.y <= object->trans.y) { - sp14.x = object->trans.x; - sp14.y = object->trans.y; - sp14.z = object->trans.z; - BoardPlayerIdleSet(lbl_1_bss_86); - if(temp_r30->unk8 != 2) { - object->func = NULL; - } else { - object->work[1] = 8; - object->func = fn_1_5C84; - } - } - BoardPlayerPosSetV(lbl_1_bss_86, &sp14); + float temp_f31; + float temp_f30; + Vec sp14; + Vec sp8; + WorkMGCoin *temp_r30; + temp_r30 = object->data; + BoardPlayerPosGet(lbl_1_bss_86, &sp14); + temp_r30->unkC.y = temp_r30->unk0 - (0.075f * (0.25f * (temp_r30->unk4 * temp_r30->unk4))); + temp_r30->unk4++; + VECAdd(&sp14, &temp_r30->unkC, &sp14); + sp8.x = object->trans.x; + sp8.y = 0; + sp8.z = object->trans.z; + temp_f30 = sp14.y; + sp14.y = 0; + VECSubtract(&sp8, &sp14, &sp8); + sp14.y = temp_f30; + temp_f31 = VECMag(&sp8); + if (temp_f31 <= 1.0f) { + temp_r30->unkC.x = temp_r30->unkC.z = 0; + } + if (sp14.y <= object->trans.y) { + sp14.x = object->trans.x; + sp14.y = object->trans.y; + sp14.z = object->trans.z; + BoardPlayerIdleSet(lbl_1_bss_86); + if (temp_r30->unk8 != 2) { + object->func = NULL; + } + else { + object->work[1] = 8; + object->func = fn_1_5C84; + } + } + BoardPlayerPosSetV(lbl_1_bss_86, &sp14); } void fn_1_5C84(omObjData *object) { - WorkMGCoin *sp8; - sp8 = object->data; - if(object->work[1] != 0) { - if(--object->work[1] == 0) { - BoardPlayerMotBlendSet(lbl_1_bss_86, 0, 15); - object->func = NULL; - } - (void)object; - } else { - (void)object; - } -} \ No newline at end of file + WorkMGCoin *sp8; + sp8 = object->data; + if (object->work[1] != 0) { + if (--object->work[1] == 0) { + BoardPlayerMotBlendSet(lbl_1_bss_86, 0, 15); + object->func = NULL; + } + (void)object; + } + else { + (void)object; + } +} diff --git a/src/REL/w02Dll/mg_item.c b/src/REL/w02Dll/mg_item.c index a03f2ed7..dd5815d2 100644 --- a/src/REL/w02Dll/mg_item.c +++ b/src/REL/w02Dll/mg_item.c @@ -1,45 +1,35 @@ #include "REL/w02Dll.h" #include "game/audio.h" -#include "game/pad.h" -#include "game/objsub.h" -#include "game/frand.h" -#include "game/objsub.h" #include "game/chrman.h" +#include "game/frand.h" #include "game/hsfdraw.h" +#include "game/objsub.h" +#include "game/pad.h" #include "ext_math.h" #include "game/minigame_seq.h" s32 lbl_1_data_428[14] = { - 0x0007006D, - 0x0007006E, - 0x0007006F, - 0x00070070, - 0x00070071, - 0x00070072, - 0x00070073, - 0x00070074, - 0x00070076, - 0x00070077, - 0x00070078, - 0x00070079, - 0x0007007A, - 0x0007007B + DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x70), + DATA_MAKE_NUM(DATADIR_BOARD, 0x71), + DATA_MAKE_NUM(DATADIR_BOARD, 0x72), + DATA_MAKE_NUM(DATADIR_BOARD, 0x73), + DATA_MAKE_NUM(DATADIR_BOARD, 0x74), + DATA_MAKE_NUM(DATADIR_BOARD, 0x76), + DATA_MAKE_NUM(DATADIR_BOARD, 0x77), + DATA_MAKE_NUM(DATADIR_BOARD, 0x78), + DATA_MAKE_NUM(DATADIR_BOARD, 0x79), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7B), }; -char *lbl_1_data_474[3] = { - "item", - "item1", - "item2" -}; +char *lbl_1_data_474[3] = { "item", "item1", "item2" }; -s32 lbl_1_data_480[] = { - 0x760018, - 0x760019, - 0x76001A, - -1 -}; +s32 lbl_1_data_480[] = { DATA_MAKE_NUM(DATADIR_W02, 0x18), DATA_MAKE_NUM(DATADIR_W02, 0x19), DATA_MAKE_NUM(DATADIR_W02, 0x1A), -1 }; u16 lbl_1_bss_198; s16 lbl_1_bss_196; @@ -62,28 +52,28 @@ AnimData *lbl_1_bss_C8; void fn_1_5CF8(void) { - BoardModelVisibilitySet(lbl_1_bss_30[10], 1); + BoardModelVisibilitySet(lbl_1_bss_30[10], 1); } typedef struct work_mgitem { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; - s16 unk8; - s16 unkA; - s16 unkC; + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; + s16 unk8; + s16 unkA; + s16 unkC; } WorkMGItem; typedef struct work_mgitem_player { - Vec unk0[3]; - s16 unk24[3]; - s16 unk2A[3]; - float unk30[2]; - float unk38[2]; - s16 unk40[2]; - Vec unk44[3]; - s16 unk68; + Vec unk0[3]; + s16 unk24[3]; + s16 unk2A[3]; + float unk30[2]; + float unk38[2]; + s16 unk40[2]; + Vec unk44[3]; + s16 unk68; } WorkMGItemPlayer; void fn_1_8570(void); @@ -93,285 +83,291 @@ void fn_1_606C(omObjData *object); void fn_1_5D28(void) { - Vec spC; - WorkMGItem *sp8; - lbl_1_bss_196 = GWSystem.player_curr; - BoardPlayerPosGet(lbl_1_bss_196, &spC); - BoardPlayerPosLerpStart(lbl_1_bss_196, &spC, &lbl_1_bss_DC[1], 20); - while(GWPlayer[lbl_1_bss_196].moving) { - HuPrcVSleep(); - } - BoardPlayerIdleSet(lbl_1_bss_196); - HuPrcSleep(120); - BoardAudSeqPause(0, 1, 1000); - HuAudFXPlay(781); - fn_1_8570(); - HuPrcSleep(60); - lbl_1_bss_104 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_5F08); - lbl_1_bss_108 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_606C); - lbl_1_bss_10C = omAddObjEx(boardObjMan, 257, 0, 0, -1, NULL); - lbl_1_bss_108->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkMGItemPlayer), MEMORY_DEFAULT_NUM); - lbl_1_bss_10C->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkMGItem), MEMORY_DEFAULT_NUM); - sp8 = lbl_1_bss_10C->data; - lbl_1_bss_198 = 0; + Vec spC; + WorkMGItem *sp8; + lbl_1_bss_196 = GWSystem.player_curr; + BoardPlayerPosGet(lbl_1_bss_196, &spC); + BoardPlayerPosLerpStart(lbl_1_bss_196, &spC, &lbl_1_bss_DC[1], 20); + while (GWPlayer[lbl_1_bss_196].moving) { + HuPrcVSleep(); + } + BoardPlayerIdleSet(lbl_1_bss_196); + HuPrcSleep(120); + BoardAudSeqPause(0, 1, 1000); + HuAudFXPlay(781); + fn_1_8570(); + HuPrcSleep(60); + lbl_1_bss_104 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_5F08); + lbl_1_bss_108 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_606C); + lbl_1_bss_10C = omAddObjEx(boardObjMan, 257, 0, 0, -1, NULL); + lbl_1_bss_108->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkMGItemPlayer), MEMORY_DEFAULT_NUM); + lbl_1_bss_10C->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkMGItem), MEMORY_DEFAULT_NUM); + sp8 = lbl_1_bss_10C->data; + lbl_1_bss_198 = 0; } void fn_1_602C(void); void fn_1_5F08(omObjData *object) { - if(lbl_1_bss_198 && BoardMGDoneFlagGet() == 1) { - fn_1_602C(); - omDelObjEx(boardObjMan, object); - } + if (lbl_1_bss_198 && BoardMGDoneFlagGet() == 1) { + fn_1_602C(); + omDelObjEx(boardObjMan, object); + } } void fn_1_5F60(void) { - lbl_1_bss_198 = 1; - BoardMGExit(); + lbl_1_bss_198 = 1; + BoardMGExit(); } void fn_1_5F90(void) { - s32 i; - for(i=0; i<3; i++) { - BoardModelKill(lbl_1_bss_184[i]); - BoardModelKill(lbl_1_bss_18A[i]); - } - if(lbl_1_bss_C8) { - HuSprAnimKill(lbl_1_bss_C8); - lbl_1_bss_C8 = NULL; - } + s32 i; + for (i = 0; i < 3; i++) { + BoardModelKill(lbl_1_bss_184[i]); + BoardModelKill(lbl_1_bss_18A[i]); + } + if (lbl_1_bss_C8) { + HuSprAnimKill(lbl_1_bss_C8); + lbl_1_bss_C8 = NULL; + } } void fn_1_602C(void) { - omDelObjEx(boardObjMan, lbl_1_bss_10C); - BoardMGDoneFlagSet(0); + omDelObjEx(boardObjMan, lbl_1_bss_10C); + BoardMGDoneFlagSet(0); } void fn_1_6248(omObjData *object); void fn_1_606C(omObjData *object) { - WorkMGItemPlayer *temp_r31 = object->data; - temp_r31->unk24[0] = lbl_1_bss_18A[0]; - temp_r31->unk24[1] = lbl_1_bss_18A[1]; - temp_r31->unk24[2] = lbl_1_bss_18A[2]; - BoardModelPosGet(lbl_1_bss_18A[1], &temp_r31->unk44[0]); - temp_r31->unk44[0].x -= lbl_1_bss_110; - BoardModelPosGet(lbl_1_bss_18A[1], &temp_r31->unk44[1]); - temp_r31->unk44[1].x += lbl_1_bss_110; - BoardModelPosGet(lbl_1_bss_18A[1], &temp_r31->unk44[2]); - BoardMusStart(1, 19, 127, 0); - object->work[0] = 300; - object->work[1] = 0; - object->func = fn_1_6248; + WorkMGItemPlayer *temp_r31 = object->data; + temp_r31->unk24[0] = lbl_1_bss_18A[0]; + temp_r31->unk24[1] = lbl_1_bss_18A[1]; + temp_r31->unk24[2] = lbl_1_bss_18A[2]; + BoardModelPosGet(lbl_1_bss_18A[1], &temp_r31->unk44[0]); + temp_r31->unk44[0].x -= lbl_1_bss_110; + BoardModelPosGet(lbl_1_bss_18A[1], &temp_r31->unk44[1]); + temp_r31->unk44[1].x += lbl_1_bss_110; + BoardModelPosGet(lbl_1_bss_18A[1], &temp_r31->unk44[2]); + BoardMusStart(1, 19, 127, 0); + object->work[0] = 300; + object->work[1] = 0; + object->func = fn_1_6248; } void fn_1_616C(s16 arg0, s16 arg1) { - s32 temp; - temp = lbl_1_bss_190[arg0]; - lbl_1_bss_190[arg0] = lbl_1_bss_190[arg1]; - lbl_1_bss_190[arg1] = temp; - temp = lbl_1_bss_184[arg0]; - lbl_1_bss_184[arg0] = lbl_1_bss_184[arg1]; - lbl_1_bss_184[arg1] = temp; + s32 temp; + temp = lbl_1_bss_190[arg0]; + lbl_1_bss_190[arg0] = lbl_1_bss_190[arg1]; + lbl_1_bss_190[arg1] = temp; + temp = lbl_1_bss_184[arg0]; + lbl_1_bss_184[arg0] = lbl_1_bss_184[arg1]; + lbl_1_bss_184[arg1] = temp; } void fn_1_6AB0(omObjData *object); void fn_1_6248(omObjData *object) { - float temp_f31; - float temp_f30; - Vec sp34; - Vec sp28; - Vec sp1C; - Vec sp10; - u8 sp8[8] = { - 0, 1, 1, 2, - 0, 1, 0, 2 - }; - WorkMGItemPlayer *temp_r31 = object->data; - s32 temp_r30; - s32 temp_r28; - if(object->work[0]) { - object->work[0]--; - } - if(object->work[1] == 0) { - if(object->work[0] == 0) { - object->func = fn_1_6AB0; - } - temp_r28 = sp8[frand() & 0x7]; - switch(temp_r28) { - case 0: - temp_r31->unk2A[0] = temp_r31->unk24[0]; - temp_r31->unk2A[1] = temp_r31->unk24[1]; - sp28 = lbl_1_bss_160[0]; - sp34 = lbl_1_bss_160[1]; - temp_f31 = 15; - break; - - case 1: - temp_r31->unk2A[0] = temp_r31->unk24[1]; - temp_r31->unk2A[1] = temp_r31->unk24[2]; - sp28 = lbl_1_bss_160[1]; - sp34 = lbl_1_bss_160[2]; - temp_f31 = 15; - break; - - case 2: - temp_r31->unk2A[0] = temp_r31->unk24[0]; - temp_r31->unk2A[1] = temp_r31->unk24[2]; - temp_f31 = 22.5f; - break; - } - temp_r31->unk68 = temp_r28; - temp_r31->unk30[0] = 180; - temp_r31->unk30[1] = 0; - if(temp_r28 != 2) { - temp_r31->unk40[0] = frandmod(3); - temp_r31->unk40[1] = frandmod(3); - while(temp_r31->unk40[1] == temp_r31->unk40[0]) { - temp_r31->unk40[1] = frandmod(3); - } - VECSubtract(&sp34, &sp28, &temp_r31->unk0[0]); - VECScale(&temp_r31->unk0[0], &temp_r31->unk0[0], 1.0f/temp_f31); - VECSubtract(&sp28, &sp34, &temp_r31->unk0[1]); - VECScale(&temp_r31->unk0[1], &temp_r31->unk0[1], 1.0f/temp_f31); - } else { - temp_r31->unk40[0] = frandmod(2); - temp_r31->unk40[1] = temp_r31->unk40[0]^1; - } - for(temp_r30=0; temp_r30<2; temp_r30++) { - if(temp_r31->unk40[temp_r30] == 0) { - temp_r31->unk38[temp_r30] = 180.0f/temp_f31; - } else { - temp_r31->unk38[temp_r30] = -180.0f/temp_f31; - } - if(temp_r30 == 1) { - temp_r31->unk38[temp_r30] = -temp_r31->unk38[temp_r30]; - } - } - object->work[2] = temp_f31; - object->work[1] = 1; - BoardModelMotionStart(temp_r31->unk2A[temp_r30], 2, 0x40000001); - BoardModelMotionSpeedSet(temp_r31->unk2A[temp_r30], 3.0f); - } else { - for(temp_r30=0; temp_r30<2; temp_r30++) { - BoardModelPosGet(temp_r31->unk2A[temp_r30], &sp1C); - sp10 = sp1C; - if(temp_r31->unk68 != 2) { - temp_f30 = lbl_1_bss_110; - } else { - temp_f30 = 2.0f*lbl_1_bss_110; - } - if(temp_r31->unk40[temp_r30] != 2) { - sp1C.x = temp_r31->unk44[temp_r31->unk68].x+(temp_f30*cosd(temp_r31->unk30[temp_r30])); - sp1C.z = temp_r31->unk44[temp_r31->unk68].z+(temp_f30*sind(temp_r31->unk30[temp_r30])); - temp_r31->unk30[temp_r30] += temp_r31->unk38[temp_r30]; - } else { - VECAdd(&sp1C, &temp_r31->unk0[temp_r30], &sp1C); - } - BoardModelPosSetV(temp_r31->unk2A[temp_r30], &sp1C); - VECSubtract(&sp1C, &sp10, &sp10); - BoardModelRotGet(temp_r31->unk2A[temp_r30], &sp1C); - sp1C.y = atan2d(sp10.x, sp10.z); - BoardModelRotSetV(temp_r31->unk2A[temp_r30], &sp1C); - } - if(--object->work[2] == 0) { - object->work[1] = 0; - BoardModelMotionStart(temp_r31->unk2A[temp_r30], 1, 0x40000001); - BoardModelMotionSpeedSet(temp_r31->unk2A[temp_r30], 1.0f); - for(temp_r30=0; temp_r30<2; temp_r30++) { - if(temp_r31->unk40[temp_r30] == 0) { - BoardModelRotGet(temp_r31->unk2A[temp_r30], &sp1C); - sp1C.y = 0; - BoardModelRotSetV(temp_r31->unk2A[temp_r30], &sp1C); - } else if(temp_r31->unk40[temp_r30] == 1) { - BoardModelRotGet(temp_r31->unk2A[temp_r30], &sp1C); - sp1C.y = 180; - BoardModelRotSetV(temp_r31->unk2A[temp_r30], &sp1C); - } - } - switch(temp_r31->unk68) { - case 0: - temp_r31->unk24[0] = temp_r31->unk2A[1]; - temp_r31->unk24[1] = temp_r31->unk2A[0]; - fn_1_616C(0, 1); - break; - - case 1: - temp_r31->unk24[1] = temp_r31->unk2A[1]; - temp_r31->unk24[2] = temp_r31->unk2A[0]; - fn_1_616C(1, 2); - break; - - case 2: - temp_r31->unk24[0] = temp_r31->unk2A[1]; - temp_r31->unk24[2] = temp_r31->unk2A[0]; - fn_1_616C(0, 2); - break; - } - for(temp_r30=0; temp_r30<3; temp_r30++) { - BoardModelPosSetV(temp_r31->unk24[temp_r30], &lbl_1_bss_160[temp_r30]); - } - } - } + float temp_f31; + float temp_f30; + Vec sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + u8 sp8[8] = { 0, 1, 1, 2, 0, 1, 0, 2 }; + WorkMGItemPlayer *temp_r31 = object->data; + s32 temp_r30; + s32 temp_r28; + if (object->work[0]) { + object->work[0]--; + } + if (object->work[1] == 0) { + if (object->work[0] == 0) { + object->func = fn_1_6AB0; + } + temp_r28 = sp8[frand() & 0x7]; + switch (temp_r28) { + case 0: + temp_r31->unk2A[0] = temp_r31->unk24[0]; + temp_r31->unk2A[1] = temp_r31->unk24[1]; + sp28 = lbl_1_bss_160[0]; + sp34 = lbl_1_bss_160[1]; + temp_f31 = 15; + break; + + case 1: + temp_r31->unk2A[0] = temp_r31->unk24[1]; + temp_r31->unk2A[1] = temp_r31->unk24[2]; + sp28 = lbl_1_bss_160[1]; + sp34 = lbl_1_bss_160[2]; + temp_f31 = 15; + break; + + case 2: + temp_r31->unk2A[0] = temp_r31->unk24[0]; + temp_r31->unk2A[1] = temp_r31->unk24[2]; + temp_f31 = 22.5f; + break; + } + temp_r31->unk68 = temp_r28; + temp_r31->unk30[0] = 180; + temp_r31->unk30[1] = 0; + if (temp_r28 != 2) { + temp_r31->unk40[0] = frandmod(3); + temp_r31->unk40[1] = frandmod(3); + while (temp_r31->unk40[1] == temp_r31->unk40[0]) { + temp_r31->unk40[1] = frandmod(3); + } + VECSubtract(&sp34, &sp28, &temp_r31->unk0[0]); + VECScale(&temp_r31->unk0[0], &temp_r31->unk0[0], 1.0f / temp_f31); + VECSubtract(&sp28, &sp34, &temp_r31->unk0[1]); + VECScale(&temp_r31->unk0[1], &temp_r31->unk0[1], 1.0f / temp_f31); + } + else { + temp_r31->unk40[0] = frandmod(2); + temp_r31->unk40[1] = temp_r31->unk40[0] ^ 1; + } + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + if (temp_r31->unk40[temp_r30] == 0) { + temp_r31->unk38[temp_r30] = 180.0f / temp_f31; + } + else { + temp_r31->unk38[temp_r30] = -180.0f / temp_f31; + } + if (temp_r30 == 1) { + temp_r31->unk38[temp_r30] = -temp_r31->unk38[temp_r30]; + } + } + object->work[2] = temp_f31; + object->work[1] = 1; + BoardModelMotionStart(temp_r31->unk2A[temp_r30], 2, 0x40000001); + BoardModelMotionSpeedSet(temp_r31->unk2A[temp_r30], 3.0f); + } + else { + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + BoardModelPosGet(temp_r31->unk2A[temp_r30], &sp1C); + sp10 = sp1C; + if (temp_r31->unk68 != 2) { + temp_f30 = lbl_1_bss_110; + } + else { + temp_f30 = 2.0f * lbl_1_bss_110; + } + if (temp_r31->unk40[temp_r30] != 2) { + sp1C.x = temp_r31->unk44[temp_r31->unk68].x + (temp_f30 * cosd(temp_r31->unk30[temp_r30])); + sp1C.z = temp_r31->unk44[temp_r31->unk68].z + (temp_f30 * sind(temp_r31->unk30[temp_r30])); + temp_r31->unk30[temp_r30] += temp_r31->unk38[temp_r30]; + } + else { + VECAdd(&sp1C, &temp_r31->unk0[temp_r30], &sp1C); + } + BoardModelPosSetV(temp_r31->unk2A[temp_r30], &sp1C); + VECSubtract(&sp1C, &sp10, &sp10); + BoardModelRotGet(temp_r31->unk2A[temp_r30], &sp1C); + sp1C.y = atan2d(sp10.x, sp10.z); + BoardModelRotSetV(temp_r31->unk2A[temp_r30], &sp1C); + } + if (--object->work[2] == 0) { + object->work[1] = 0; + BoardModelMotionStart(temp_r31->unk2A[temp_r30], 1, 0x40000001); + BoardModelMotionSpeedSet(temp_r31->unk2A[temp_r30], 1.0f); + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + if (temp_r31->unk40[temp_r30] == 0) { + BoardModelRotGet(temp_r31->unk2A[temp_r30], &sp1C); + sp1C.y = 0; + BoardModelRotSetV(temp_r31->unk2A[temp_r30], &sp1C); + } + else if (temp_r31->unk40[temp_r30] == 1) { + BoardModelRotGet(temp_r31->unk2A[temp_r30], &sp1C); + sp1C.y = 180; + BoardModelRotSetV(temp_r31->unk2A[temp_r30], &sp1C); + } + } + switch (temp_r31->unk68) { + case 0: + temp_r31->unk24[0] = temp_r31->unk2A[1]; + temp_r31->unk24[1] = temp_r31->unk2A[0]; + fn_1_616C(0, 1); + break; + + case 1: + temp_r31->unk24[1] = temp_r31->unk2A[1]; + temp_r31->unk24[2] = temp_r31->unk2A[0]; + fn_1_616C(1, 2); + break; + + case 2: + temp_r31->unk24[0] = temp_r31->unk2A[1]; + temp_r31->unk24[2] = temp_r31->unk2A[0]; + fn_1_616C(0, 2); + break; + } + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + BoardModelPosSetV(temp_r31->unk24[temp_r30], &lbl_1_bss_160[temp_r30]); + } + } + } } void fn_1_6CA4(omObjData *object); void fn_1_6AB0(omObjData *object) { - Vec sp8; - s32 temp_r31; - s32 temp_r30; - temp_r30 = 0; - for(temp_r31=0; temp_r31<3; temp_r31++) { - BoardModelRotGet(lbl_1_bss_18A[temp_r31], &sp8); - if(sp8.y < 0.0f) { - sp8.y += 360.0f; - } - if(0.0f == sp8.y) { - temp_r30++; - continue; - } - if(sp8.y < 180.0f) { - if(sp8.y < -10.0f) { - sp8.y = 0; - } else { - sp8.y -= 10.0f; - } - } else { - if(360.0f-sp8.y < 10.0f) { - sp8.y = 0; - } else { - sp8.y += 10.0f; - } - } - BoardModelRotSetV(lbl_1_bss_18A[temp_r31], &sp8); - } - if(temp_r30 == 3) { - for(temp_r31=0; temp_r31<3; temp_r31++) { - BoardModelPosSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_160[temp_r31]); - } - object->work[0] = MGSeqStartCreate(); - object->func = fn_1_6CA4; - } + Vec sp8; + s32 temp_r31; + s32 temp_r30; + temp_r30 = 0; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + BoardModelRotGet(lbl_1_bss_18A[temp_r31], &sp8); + if (sp8.y < 0.0f) { + sp8.y += 360.0f; + } + if (0.0f == sp8.y) { + temp_r30++; + continue; + } + if (sp8.y < 180.0f) { + if (sp8.y < -10.0f) { + sp8.y = 0; + } + else { + sp8.y -= 10.0f; + } + } + else { + if (360.0f - sp8.y < 10.0f) { + sp8.y = 0; + } + else { + sp8.y += 10.0f; + } + } + BoardModelRotSetV(lbl_1_bss_18A[temp_r31], &sp8); + } + if (temp_r30 == 3) { + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + BoardModelPosSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_160[temp_r31]); + } + object->work[0] = MGSeqStartCreate(); + object->func = fn_1_6CA4; + } } void fn_1_73C8(omObjData *object); void fn_1_6CA4(omObjData *object) { - if(!MGSeqStatGet(object->work[0])) { - lbl_1_bss_10C->func = fn_1_73C8; - object->func = NULL; - } + if (!MGSeqStatGet(object->work[0])) { + lbl_1_bss_10C->func = fn_1_73C8; + object->func = NULL; + } } void fn_1_6E34(omObjData *object); @@ -380,161 +376,161 @@ void fn_1_8DAC(void); void fn_1_6D04(omObjData *object) { - Vec sp8; - BoardModelRotGet(lbl_1_bss_18A[object->work[0]], &sp8); - sp8.y += 8.0f; - if(sp8.y >= 360.0f) { - sp8.y = 0.0f; - HuAudFXPlay(784); - lbl_1_bss_100 = HuPrcCreate(fn_1_85FC, 8196, 8192, 0); - HuPrcDestructorSet2(lbl_1_bss_100, fn_1_8DAC); - *((u32 *)&lbl_1_bss_100->user_data) = (1 << object->work[0])|0x10000000; - lbl_1_bss_D8 = HuAudFXPlay(863); - object->func = fn_1_6E34; - } - BoardModelRotSetV(lbl_1_bss_18A[object->work[0]], &sp8); + Vec sp8; + BoardModelRotGet(lbl_1_bss_18A[object->work[0]], &sp8); + sp8.y += 8.0f; + if (sp8.y >= 360.0f) { + sp8.y = 0.0f; + HuAudFXPlay(784); + lbl_1_bss_100 = HuPrcCreate(fn_1_85FC, 8196, 8192, 0); + HuPrcDestructorSet2(lbl_1_bss_100, fn_1_8DAC); + *((u32 *)&lbl_1_bss_100->user_data) = (1 << object->work[0]) | 0x10000000; + lbl_1_bss_D8 = HuAudFXPlay(863); + object->func = fn_1_6E34; + } + BoardModelRotSetV(lbl_1_bss_18A[object->work[0]], &sp8); } void fn_1_6EA8(void); void fn_1_6E34(omObjData *object) { - Process *temp_r31; - if((u32)lbl_1_bss_100->user_data & 0x40000000) { - temp_r31 = HuPrcCreate(fn_1_6EA8, 8196, 6144, 0); - temp_r31->user_data = object; - object->func = NULL; - } + Process *temp_r31; + if ((u32)lbl_1_bss_100->user_data & 0x40000000) { + temp_r31 = HuPrcCreate(fn_1_6EA8, 8196, 6144, 0); + temp_r31->user_data = object; + object->func = NULL; + } } void fn_1_72E4(omObjData *object); void fn_1_6EA8(void) { - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - float temp_f31; - float temp_f30; - float temp_f29; - s32 temp_r31; - s32 temp_r30; - s32 temp_r29; - s32 temp_r28; - - temp_r31 = lbl_1_bss_108->work[0]; - BoardWinCreate(2, MAKE_MESSID(19, 24), 4); - BoardWinInsertMesSet(lbl_1_bss_190[temp_r31]+0x80000, 1); - BoardWinWait(); - BoardWinKill(); - BoardPlayerPosGet(lbl_1_bss_196, &sp20); - BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); - sp20.y = sp2C.y = 0; - VECSubtract(&sp20, &sp2C, &sp14); - temp_f30 = VECMag(&sp14); - VECScale(&sp14, &sp14, 1.0f/60.0f); - for(temp_r30=0; temp_r30<60; temp_r30++) { - BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); - VECAdd(&sp2C, &sp14, &sp2C); - BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp2C); - HuPrcVSleep(); - } - BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); - sp2C.x = sp20.x; - sp2C.z = sp20.z; - BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp2C); - BoardPlayerMotBlendSet(lbl_1_bss_196, 0, 15); - while(!BoardPlayerMotBlendCheck(lbl_1_bss_196)) { - HuPrcVSleep(); - } - HuPrcKill(lbl_1_bss_100); - lbl_1_bss_100 = NULL; - HuPrcVSleep(); - HuAudFXPlay(781); - BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); - BoardModelScaleGet(lbl_1_bss_184[temp_r31], &sp8); - temp_f31 = sp8.x; - temp_f29 = -0.04f; - temp_f30 = (sp20.y-sp2C.y)/30.0f; - temp_r29 = 0; - HuAudFXFadeOut(lbl_1_bss_D8, 499); - while(!temp_r29) { - sp2C.y += temp_f30; - temp_f31 += temp_f29; - if(temp_f31 < 0.0f) { - temp_f31 = 0.0f; - temp_r29 = 1; - } - sp8.x = sp8.y = sp8.z = temp_f31; - BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp2C); - BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp8); - HuPrcVSleep(); - } - HuAudFXStop(lbl_1_bss_D8); - BoardModelVisibilitySet(lbl_1_bss_184[temp_r31], 0); - BoardPlayerItemAdd(lbl_1_bss_196, lbl_1_bss_190[temp_r31]); - omVibrate(lbl_1_bss_196, 12, 6, 6); - temp_r28 = HuAudSStreamPlay(2); - BoardPlayerMotionShiftSet(lbl_1_bss_196, 7, 0, 5, 0); - while(!BoardPlayerMotionEndCheck(lbl_1_bss_196)) { - HuPrcVSleep(); - } - HuPrcSleep(30); - while(HuAudSStreamStatGet(temp_r28)) { - HuPrcVSleep(); - } - BoardAudSeqPause(0, 0, 1000); - HuAudFXPlay(68); - fn_1_121C(0x130019); - lbl_1_bss_108->func = fn_1_72E4; - HuPrcKill(NULL); - while(1) { - HuPrcVSleep(); - } + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float temp_f31; + float temp_f30; + float temp_f29; + s32 temp_r31; + s32 temp_r30; + s32 temp_r29; + s32 temp_r28; + + temp_r31 = lbl_1_bss_108->work[0]; + BoardWinCreate(2, MAKE_MESSID(19, 24), 4); + BoardWinInsertMesSet(MAKE_MESSID(8, lbl_1_bss_190[temp_r31]), 1); + BoardWinWait(); + BoardWinKill(); + BoardPlayerPosGet(lbl_1_bss_196, &sp20); + BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); + sp20.y = sp2C.y = 0; + VECSubtract(&sp20, &sp2C, &sp14); + temp_f30 = VECMag(&sp14); + VECScale(&sp14, &sp14, 1.0f / 60.0f); + for (temp_r30 = 0; temp_r30 < 60; temp_r30++) { + BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); + VECAdd(&sp2C, &sp14, &sp2C); + BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp2C); + HuPrcVSleep(); + } + BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); + sp2C.x = sp20.x; + sp2C.z = sp20.z; + BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp2C); + BoardPlayerMotBlendSet(lbl_1_bss_196, 0, 15); + while (!BoardPlayerMotBlendCheck(lbl_1_bss_196)) { + HuPrcVSleep(); + } + HuPrcKill(lbl_1_bss_100); + lbl_1_bss_100 = NULL; + HuPrcVSleep(); + HuAudFXPlay(781); + BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); + BoardModelScaleGet(lbl_1_bss_184[temp_r31], &sp8); + temp_f31 = sp8.x; + temp_f29 = -0.04f; + temp_f30 = (sp20.y - sp2C.y) / 30.0f; + temp_r29 = 0; + HuAudFXFadeOut(lbl_1_bss_D8, 499); + while (!temp_r29) { + sp2C.y += temp_f30; + temp_f31 += temp_f29; + if (temp_f31 < 0.0f) { + temp_f31 = 0.0f; + temp_r29 = 1; + } + sp8.x = sp8.y = sp8.z = temp_f31; + BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp2C); + BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp8); + HuPrcVSleep(); + } + HuAudFXStop(lbl_1_bss_D8); + BoardModelVisibilitySet(lbl_1_bss_184[temp_r31], 0); + BoardPlayerItemAdd(lbl_1_bss_196, lbl_1_bss_190[temp_r31]); + omVibrate(lbl_1_bss_196, 12, 6, 6); + temp_r28 = HuAudSStreamPlay(2); + BoardPlayerMotionShiftSet(lbl_1_bss_196, 7, 0, 5, 0); + while (!BoardPlayerMotionEndCheck(lbl_1_bss_196)) { + HuPrcVSleep(); + } + HuPrcSleep(30); + while (HuAudSStreamStatGet(temp_r28)) { + HuPrcVSleep(); + } + BoardAudSeqPause(0, 0, 1000); + HuAudFXPlay(68); + fn_1_121C(MAKE_MESSID(0x13, 0x19)); + lbl_1_bss_108->func = fn_1_72E4; + HuPrcKill(NULL); + while (1) { + HuPrcVSleep(); + } } void fn_1_72E4(omObjData *object) { - fn_1_5F60(); - omDelObjEx(boardObjMan, object); + fn_1_5F60(); + omDelObjEx(boardObjMan, object); } void fn_1_732C(s32 arg0) { - lbl_1_bss_108->work[0] = arg0; - lbl_1_bss_108->func = fn_1_6D04; + lbl_1_bss_108->work[0] = arg0; + lbl_1_bss_108->func = fn_1_6D04; } void fn_1_7358(WorkMGItem *arg0) { - if(--arg0->unk2 == 0) { - arg0->unk2 = 60; - if(--arg0->unk0 >= 0) { - MGSeqParamSet(arg0->unk4, 1, arg0->unk0); - } - } + if (--arg0->unk2 == 0) { + arg0->unk2 = 60; + if (--arg0->unk0 >= 0) { + MGSeqParamSet(arg0->unk4, 1, arg0->unk0); + } + } } void fn_1_74E4(omObjData *object); void fn_1_73C8(omObjData *object) { - float sp8[2]; - WorkMGItem *temp_r31; - temp_r31 = object->data; - temp_r31->unk0 = 5; - temp_r31->unk2 = 60; - temp_r31->unk4 = MGSeqTimerCreateXY(temp_r31->unk0, 288, 64); - HuWinMesMaxSizeGet(1, sp8, 0x13001B); - temp_r31->unk6 = HuWinCreate(-10000, 368, sp8[0], sp8[1], 0); - HuWinMesSet(temp_r31->unk6, 0x13001B); - HuWinBGTPLvlSet(temp_r31->unk6, 0); - HuWinMesSpeedSet(temp_r31->unk6, 0); - temp_r31->unk8 = 1; - temp_r31->unkA = frandmod(30)+15; - temp_r31->unkC = 0; - object->func = fn_1_74E4; + float sp8[2]; + WorkMGItem *temp_r31; + temp_r31 = object->data; + temp_r31->unk0 = 5; + temp_r31->unk2 = 60; + temp_r31->unk4 = MGSeqTimerCreateXY(temp_r31->unk0, 288, 64); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x13, 0x1B)); + temp_r31->unk6 = HuWinCreate(-10000, 368, sp8[0], sp8[1], 0); + HuWinMesSet(temp_r31->unk6, MAKE_MESSID(0x13, 0x1B)); + HuWinBGTPLvlSet(temp_r31->unk6, 0); + HuWinMesSpeedSet(temp_r31->unk6, 0); + temp_r31->unk8 = 1; + temp_r31->unkA = frandmod(30) + 15; + temp_r31->unkC = 0; + object->func = fn_1_74E4; } void fn_1_7898(omObjData *arg0, s32 *arg1, s32 *arg2); @@ -544,413 +540,417 @@ void fn_1_7818(omObjData *object); void fn_1_74E4(omObjData *object) { - s32 spC; - s32 sp8; - WorkMGItem *temp_r31; - s32 temp_r29; - temp_r31 = object->data; - fn_1_7358(temp_r31); - temp_r29 = GWPlayer[lbl_1_bss_196].port; - if(GWPlayer[lbl_1_bss_196].com) { - fn_1_7898(object, &spC, &sp8); - } else { - spC = HuPadDStkRep[temp_r29]; - sp8 = HuPadBtnDown[temp_r29]; - } - if((sp8 & PAD_BUTTON_A) || temp_r31->unk0 < 0) { - MGSeqParamSet(temp_r31->unk4, 2, -1); - HuWinKill(temp_r31->unk6); - BoardPlayerMotBlendSet(lbl_1_bss_196, 180, 10); - BoardAudSeqFadeOut(1, 1000); - object->func = fn_1_7818; - } else if(spC & PAD_BUTTON_LEFT) { - if(temp_r31->unk8 != 0) { - temp_r31->unk8--; - BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8+1], &lbl_1_bss_DC[temp_r31->unk8], 12); - object->func = fn_1_7750; - } - } else if(spC & PAD_BUTTON_RIGHT) { - if(temp_r31->unk8 != 2) { - temp_r31->unk8++; - BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8-1], &lbl_1_bss_DC[temp_r31->unk8], 12); - object->func = fn_1_7750; - } - } + s32 spC; + s32 sp8; + WorkMGItem *temp_r31; + s32 temp_r29; + temp_r31 = object->data; + fn_1_7358(temp_r31); + temp_r29 = GWPlayer[lbl_1_bss_196].port; + if (GWPlayer[lbl_1_bss_196].com) { + fn_1_7898(object, &spC, &sp8); + } + else { + spC = HuPadDStkRep[temp_r29]; + sp8 = HuPadBtnDown[temp_r29]; + } + if ((sp8 & PAD_BUTTON_A) || temp_r31->unk0 < 0) { + MGSeqParamSet(temp_r31->unk4, 2, -1); + HuWinKill(temp_r31->unk6); + BoardPlayerMotBlendSet(lbl_1_bss_196, 180, 10); + BoardAudSeqFadeOut(1, 1000); + object->func = fn_1_7818; + } + else if (spC & PAD_BUTTON_LEFT) { + if (temp_r31->unk8 != 0) { + temp_r31->unk8--; + BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8 + 1], &lbl_1_bss_DC[temp_r31->unk8], 12); + object->func = fn_1_7750; + } + } + else if (spC & PAD_BUTTON_RIGHT) { + if (temp_r31->unk8 != 2) { + temp_r31->unk8++; + BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8 - 1], &lbl_1_bss_DC[temp_r31->unk8], 12); + object->func = fn_1_7750; + } + } } void fn_1_7750(omObjData *object) { - WorkMGItem *temp_r31 = object->data; - fn_1_7358(temp_r31); - if(!GWPlayer[lbl_1_bss_196].moving) { - BoardPlayerIdleSet(lbl_1_bss_196); - object->func = fn_1_74E4; - } + WorkMGItem *temp_r31 = object->data; + fn_1_7358(temp_r31); + if (!GWPlayer[lbl_1_bss_196].moving) { + BoardPlayerIdleSet(lbl_1_bss_196); + object->func = fn_1_74E4; + } } void fn_1_7818(omObjData *object) { - if(BoardPlayerMotBlendCheck(lbl_1_bss_196)) { - fn_1_732C(((WorkMGItem *)object->data)->unk8); - object->func = NULL; - } + if (BoardPlayerMotBlendCheck(lbl_1_bss_196)) { + fn_1_732C(((WorkMGItem *)object->data)->unk8); + object->func = NULL; + } } void fn_1_7898(omObjData *arg0, s32 *arg1, s32 *arg2) { - WorkMGItem *temp_r31; - s32 temp_r28; - temp_r31 = arg0->data; - *arg1 = *arg2 = 0; - if(temp_r31->unkA) { - temp_r31->unkA--; - } else { - temp_r31->unkA = frandmod(30)+15; - if(temp_r31->unkC == 4) { - *arg2 |= PAD_BUTTON_A; - } else if((s32)frandmod(10) < 4) { - *arg2 |= PAD_BUTTON_A; - } else { - temp_r28 = frandBool(); - if((temp_r28 == 0 && temp_r31->unk8 != 2) || temp_r31->unk8 == 0) { - *arg1 |= PAD_BUTTON_RIGHT; - } else if((temp_r28 == 1 && temp_r31->unk8 != 0) || temp_r31->unk8 == 2) { - *arg1 |= PAD_BUTTON_LEFT; - } - temp_r31->unkC++; - } - } + WorkMGItem *temp_r31; + s32 temp_r28; + temp_r31 = arg0->data; + *arg1 = *arg2 = 0; + if (temp_r31->unkA) { + temp_r31->unkA--; + } + else { + temp_r31->unkA = frandmod(30) + 15; + if (temp_r31->unkC == 4) { + *arg2 |= PAD_BUTTON_A; + } + else if ((s32)frandmod(10) < 4) { + *arg2 |= PAD_BUTTON_A; + } + else { + temp_r28 = frandBool(); + if ((temp_r28 == 0 && temp_r31->unk8 != 2) || temp_r31->unk8 == 0) { + *arg1 |= PAD_BUTTON_RIGHT; + } + else if ((temp_r28 == 1 && temp_r31->unk8 != 0) || temp_r31->unk8 == 2) { + *arg1 |= PAD_BUTTON_LEFT; + } + temp_r31->unkC++; + } + } } static inline void WriteTrans(s32 index, float value) { - Hu3DData[BoardModelIDGet(lbl_1_bss_184[index])].unk_F0[1][3] = value; + Hu3DData[BoardModelIDGet(lbl_1_bss_184[index])].unk_F0[1][3] = value; } void fn_1_79BC(s16 *arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f25; - Vec sp8; - s32 temp_r31; - s32 temp_r29; - for(temp_r31=0; temp_r31<3; temp_r31++) { - lbl_1_bss_190[temp_r31] = arg0[temp_r31]; - lbl_1_bss_184[temp_r31] = BoardModelCreate(lbl_1_data_428[lbl_1_bss_190[temp_r31]], NULL, 0); - if(lbl_1_bss_190[temp_r31] == 5) { - WriteTrans(temp_r31, -50.0f); - } - if(arg0[temp_r31] == 4) { - BoardModelMotionSpeedSet(lbl_1_bss_184[temp_r31], 0); - } - BoardModelVisibilitySet(lbl_1_bss_184[temp_r31], 0); - if(arg0[temp_r31] == 11) { - BoardModelAttrSet(lbl_1_bss_184[temp_r31], 0x40000001); - } - } - if(lbl_1_bss_C8 == NULL) { - lbl_1_bss_C8 = HuSprAnimReadFile(0x120000); - HuSprAnimLock(lbl_1_bss_C8); - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - lbl_1_bss_18A[temp_r31] = BoardModelCreate(0x760017, lbl_1_data_480, 0); - lbl_1_bss_118[temp_r31].x = lbl_1_bss_118[temp_r31].z = 0.1f; - lbl_1_bss_118[temp_r31].y = 0.1f; - lbl_1_bss_13C[temp_r31].x = 0; - lbl_1_bss_13C[temp_r31].y = lbl_1_bss_13C[temp_r31].z = 0; - Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_30[10]), lbl_1_data_474[temp_r31], &lbl_1_bss_160[temp_r31]); - BoardModelPosSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_160[temp_r31]); - BoardModelRotSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_13C[temp_r31]); - BoardModelScaleSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_118[temp_r31]); - } - lbl_1_bss_114 = lbl_1_bss_160[0].y; - for(temp_r31=0; temp_r31<3; temp_r31++) { - BoardModelPosGet(lbl_1_bss_30[10], &lbl_1_bss_DC[temp_r31]); - lbl_1_bss_DC[temp_r31].x = lbl_1_bss_160[temp_r31].x; - lbl_1_bss_DC[temp_r31].z = lbl_1_bss_160[temp_r31].z+200.0f; - BoardModelMotionStart(lbl_1_bss_18A[temp_r31], 3, 0); - } - lbl_1_bss_110 = fabs(lbl_1_bss_160[0].x-lbl_1_bss_160[1].x)/2; - temp_f31 = 0; - temp_f29 = 20; - sp8.x = 0.04f; - sp8.y = 0.04f; - sp8.z = 0.04f; - for(temp_r29=0; temp_r29<3;) { - temp_f30 = temp_f29-((7.0f/60.0f)*(0.25f*(temp_f31*temp_f31))); - temp_f31++; - temp_r29 = 0; - for(temp_r31=0; temp_r31<3; temp_r31++) { - lbl_1_bss_160[temp_r31].y += temp_f30; - if(lbl_1_bss_160[temp_r31].y < lbl_1_bss_114) { - lbl_1_bss_160[temp_r31].y = lbl_1_bss_114; - temp_r29++; - } - BoardModelPosSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_160[temp_r31]); - VECAdd(&lbl_1_bss_118[temp_r31], &sp8, &lbl_1_bss_118[temp_r31]); - if(lbl_1_bss_118[temp_r31].x > 0.7f) { - lbl_1_bss_118[temp_r31].x = 0.7f; - } - if(lbl_1_bss_118[temp_r31].y > 0.7f) { - lbl_1_bss_118[temp_r31].y = 0.7f; - } - if(lbl_1_bss_118[temp_r31].z > 0.7f) { - lbl_1_bss_118[temp_r31].z = 0.7f; - } - BoardModelScaleSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_118[temp_r31]); - } - HuPrcVSleep(); - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - lbl_1_bss_118[temp_r31].x = lbl_1_bss_118[temp_r31].y = lbl_1_bss_118[temp_r31].z = 0.7f; - BoardModelScaleSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_118[temp_r31]); - BoardModelMotionStart(lbl_1_bss_18A[temp_r31], 1, 0x40000001); - } - lbl_1_bss_100 = HuPrcCreate(fn_1_85FC, 8196, 8192, 0); - HuPrcDestructorSet2(lbl_1_bss_100, fn_1_8DAC); - *((u32 *)&lbl_1_bss_100->user_data) = 7; - HuAudFXPlay(866); - while(((u32)lbl_1_bss_100->user_data & 0x40000000) == 0) { - HuPrcVSleep(); - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f25; + Vec sp8; + s32 temp_r31; + s32 temp_r29; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + lbl_1_bss_190[temp_r31] = arg0[temp_r31]; + lbl_1_bss_184[temp_r31] = BoardModelCreate(lbl_1_data_428[lbl_1_bss_190[temp_r31]], NULL, 0); + if (lbl_1_bss_190[temp_r31] == 5) { + WriteTrans(temp_r31, -50.0f); + } + if (arg0[temp_r31] == 4) { + BoardModelMotionSpeedSet(lbl_1_bss_184[temp_r31], 0); + } + BoardModelVisibilitySet(lbl_1_bss_184[temp_r31], 0); + if (arg0[temp_r31] == 11) { + BoardModelAttrSet(lbl_1_bss_184[temp_r31], 0x40000001); + } + } + if (lbl_1_bss_C8 == NULL) { + lbl_1_bss_C8 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0x00)); + HuSprAnimLock(lbl_1_bss_C8); + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + lbl_1_bss_18A[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W02, 0x17), lbl_1_data_480, 0); + lbl_1_bss_118[temp_r31].x = lbl_1_bss_118[temp_r31].z = 0.1f; + lbl_1_bss_118[temp_r31].y = 0.1f; + lbl_1_bss_13C[temp_r31].x = 0; + lbl_1_bss_13C[temp_r31].y = lbl_1_bss_13C[temp_r31].z = 0; + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_30[10]), lbl_1_data_474[temp_r31], &lbl_1_bss_160[temp_r31]); + BoardModelPosSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_160[temp_r31]); + BoardModelRotSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_13C[temp_r31]); + BoardModelScaleSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_118[temp_r31]); + } + lbl_1_bss_114 = lbl_1_bss_160[0].y; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + BoardModelPosGet(lbl_1_bss_30[10], &lbl_1_bss_DC[temp_r31]); + lbl_1_bss_DC[temp_r31].x = lbl_1_bss_160[temp_r31].x; + lbl_1_bss_DC[temp_r31].z = lbl_1_bss_160[temp_r31].z + 200.0f; + BoardModelMotionStart(lbl_1_bss_18A[temp_r31], 3, 0); + } + lbl_1_bss_110 = fabs(lbl_1_bss_160[0].x - lbl_1_bss_160[1].x) / 2; + temp_f31 = 0; + temp_f29 = 20; + sp8.x = 0.04f; + sp8.y = 0.04f; + sp8.z = 0.04f; + for (temp_r29 = 0; temp_r29 < 3;) { + temp_f30 = temp_f29 - ((7.0f / 60.0f) * (0.25f * (temp_f31 * temp_f31))); + temp_f31++; + temp_r29 = 0; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + lbl_1_bss_160[temp_r31].y += temp_f30; + if (lbl_1_bss_160[temp_r31].y < lbl_1_bss_114) { + lbl_1_bss_160[temp_r31].y = lbl_1_bss_114; + temp_r29++; + } + BoardModelPosSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_160[temp_r31]); + VECAdd(&lbl_1_bss_118[temp_r31], &sp8, &lbl_1_bss_118[temp_r31]); + if (lbl_1_bss_118[temp_r31].x > 0.7f) { + lbl_1_bss_118[temp_r31].x = 0.7f; + } + if (lbl_1_bss_118[temp_r31].y > 0.7f) { + lbl_1_bss_118[temp_r31].y = 0.7f; + } + if (lbl_1_bss_118[temp_r31].z > 0.7f) { + lbl_1_bss_118[temp_r31].z = 0.7f; + } + BoardModelScaleSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_118[temp_r31]); + } + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + lbl_1_bss_118[temp_r31].x = lbl_1_bss_118[temp_r31].y = lbl_1_bss_118[temp_r31].z = 0.7f; + BoardModelScaleSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_118[temp_r31]); + BoardModelMotionStart(lbl_1_bss_18A[temp_r31], 1, 0x40000001); + } + lbl_1_bss_100 = HuPrcCreate(fn_1_85FC, 8196, 8192, 0); + HuPrcDestructorSet2(lbl_1_bss_100, fn_1_8DAC); + *((u32 *)&lbl_1_bss_100->user_data) = 7; + HuAudFXPlay(866); + while (((u32)lbl_1_bss_100->user_data & 0x40000000) == 0) { + HuPrcVSleep(); + } } void fn_1_8244(u16 arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - Vec spC; - - s32 temp_r31; - s32 temp_r30; - if(arg0) { - fn_1_8570(); - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - BoardModelMotionStart(lbl_1_bss_18A[temp_r31], 3, 0); - } - temp_f31 = 0; - temp_f29 = 20; - spC.x = -0.02f; - spC.y = -0.02f; - spC.z = -0.02f; - for(temp_r30=0; temp_r30<3;) { - temp_f30 = temp_f29-((7.0f/60.0f)*(0.25f*(temp_f31*temp_f31))); - temp_f31++; - temp_r30 = 0; - for(temp_r31=0; temp_r31<3; temp_r31++) { - lbl_1_bss_160[temp_r31].y += temp_f30; - BoardModelPosSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_160[temp_r31]); - if(temp_f30 < 0.0f) { - VECAdd(&lbl_1_bss_118[temp_r31], &spC, &lbl_1_bss_118[temp_r31]); - if(lbl_1_bss_118[temp_r31].x < 0.0f) { - lbl_1_bss_118[temp_r31].x = 0.0f; - } - if(lbl_1_bss_118[temp_r31].y < 0.0f) { - lbl_1_bss_118[temp_r31].y = 0.0f; - } - if(lbl_1_bss_118[temp_r31].z < 0.0f) { - lbl_1_bss_118[temp_r31].z = 0.0f; - } - BoardModelScaleSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_118[temp_r31]); - if(lbl_1_bss_118[temp_r31].x == 0.0f) { - temp_r30++; - } - } - - - } - HuPrcVSleep(); - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - BoardModelVisibilitySet(lbl_1_bss_18A[temp_r31], 0); - } + float temp_f31; + float temp_f30; + float temp_f29; + Vec spC; + + s32 temp_r31; + s32 temp_r30; + if (arg0) { + fn_1_8570(); + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + BoardModelMotionStart(lbl_1_bss_18A[temp_r31], 3, 0); + } + temp_f31 = 0; + temp_f29 = 20; + spC.x = -0.02f; + spC.y = -0.02f; + spC.z = -0.02f; + for (temp_r30 = 0; temp_r30 < 3;) { + temp_f30 = temp_f29 - ((7.0f / 60.0f) * (0.25f * (temp_f31 * temp_f31))); + temp_f31++; + temp_r30 = 0; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + lbl_1_bss_160[temp_r31].y += temp_f30; + BoardModelPosSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_160[temp_r31]); + if (temp_f30 < 0.0f) { + VECAdd(&lbl_1_bss_118[temp_r31], &spC, &lbl_1_bss_118[temp_r31]); + if (lbl_1_bss_118[temp_r31].x < 0.0f) { + lbl_1_bss_118[temp_r31].x = 0.0f; + } + if (lbl_1_bss_118[temp_r31].y < 0.0f) { + lbl_1_bss_118[temp_r31].y = 0.0f; + } + if (lbl_1_bss_118[temp_r31].z < 0.0f) { + lbl_1_bss_118[temp_r31].z = 0.0f; + } + BoardModelScaleSetV(lbl_1_bss_18A[temp_r31], &lbl_1_bss_118[temp_r31]); + if (lbl_1_bss_118[temp_r31].x == 0.0f) { + temp_r30++; + } + } + } + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + BoardModelVisibilitySet(lbl_1_bss_18A[temp_r31], 0); + } } void fn_1_8570(void) { - u32 temp_r31; - temp_r31 = (u32)lbl_1_bss_100->user_data; - temp_r31 |= 0x20000000; - *(u32 *)&lbl_1_bss_100->user_data = temp_r31; - while(((u32)lbl_1_bss_100->user_data & 0x80000000) == 0) { - HuPrcVSleep(); - } - HuPrcKill(lbl_1_bss_100); - lbl_1_bss_100 = NULL; + u32 temp_r31; + temp_r31 = (u32)lbl_1_bss_100->user_data; + temp_r31 |= 0x20000000; + *(u32 *)&lbl_1_bss_100->user_data = temp_r31; + while (((u32)lbl_1_bss_100->user_data & 0x80000000) == 0) { + HuPrcVSleep(); + } + HuPrcKill(lbl_1_bss_100); + lbl_1_bss_100 = NULL; } void fn_1_8E38(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_85FC(void) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - - Vec sp20[3]; - Vec sp14; - float sp8[3]; - s32 temp_r31; - u32 temp_r30; - u32 temp_r29; - s32 temp_r28; - ParticleData *temp_r27; - temp_r30 = (u32)HuPrcCurrentGet()->user_data; - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r29 = 1 << temp_r31; - if(temp_r30 & temp_r29) { - BoardModelPosGet(lbl_1_bss_18A[temp_r31], &sp20[temp_r31]); - sp20[temp_r31].y += 50.0f; - sp8[temp_r31] = 0.0f; - BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); - sp14.x = sp14.y = sp14.z = sp8[temp_r31]; - BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); - BoardModelVisibilitySet(lbl_1_bss_184[temp_r31], 1); - temp_f28 = 130.0f+sp20[temp_r31].y; - if(temp_r30 & 0x10000000) { - lbl_1_bss_CC[temp_r31] = Hu3DParticleCreate(lbl_1_bss_C8, 100); - temp_r27 = Hu3DData[lbl_1_bss_CC[temp_r31]].unk_120; - temp_r27->unk_02 = lbl_1_bss_184[temp_r31]; - Hu3DParticleHookSet(lbl_1_bss_CC[temp_r31], fn_1_8E38); - Hu3DParticleColSet(lbl_1_bss_CC[temp_r31], 255, 255, 0); - Hu3DModelPosSet(lbl_1_bss_CC[temp_r31], 0, 0, 0); - Hu3DParticleBlendModeSet(lbl_1_bss_CC[temp_r31], 1); - Hu3DModelLayerSet(lbl_1_bss_CC[temp_r31], 2); - } - } - } - temp_f31 = 12; - temp_f29 = 0.05f; - while(1) { - temp_r28 = 0; - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r29 = 1 << temp_r31; - if(temp_r30 & temp_r29) { - temp_r28++; - BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); - sp20[temp_r31].y += temp_f31; - if(sp20[temp_r31].y >= temp_f28) { - sp20[temp_r31].y = temp_f28; - temp_r28--; - } - BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); - sp8[temp_r31] += temp_f29; - if(sp8[temp_r31] > 1.0f) { - sp8[temp_r31] = 1.0f; - } - sp14.x = sp14.y = sp14.z = sp8[temp_r31]; - BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); - } - } - temp_f31 *= 0.92f; - if(temp_r28 == 0) { - break; - } - HuPrcVSleep(); - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r29 = 1 << temp_r31; - if(temp_r30 & temp_r29) { - sp8[temp_r31] = 1.0f; - sp14.x = sp14.y = sp14.z = sp8[temp_r31]; - BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); - } - } - temp_r30 |= 0x40000000; - *((u32 *)&HuPrcCurrentGet()->user_data) = temp_r30; - temp_f30 = 0; - while(1) { - - temp_r30 = (u32)HuPrcCurrentGet()->user_data; - if(temp_r30 & 0x20000000) { - break; - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r29 = 1 << temp_r31; - if(temp_r30 & temp_r29) { - BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); - sp20[temp_r31].y += sind(temp_f30)*0.25f; - BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); - } - - } - temp_f30 += 5.0f; - if(temp_f30 >= 360.0f) { - temp_f30 -= 360.0f; - } - - HuPrcVSleep(); - } - temp_f31 = -12; - temp_f29 = -0.05f; - while(1) { - temp_r28 = 0; - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r29 = 1 << temp_r31; - if(temp_r30 & temp_r29) { - temp_r28++; - BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); - sp20[temp_r31].y += temp_f31; - BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); - sp8[temp_r31] += temp_f29; - if(sp8[temp_r31] < 0.0f) { - sp8[temp_r31] = 0.0f; - } - if(sp8[temp_r31] == 0.0f) { - temp_r28--; - } - sp14.x = sp14.y = sp14.z = sp8[temp_r31]; - BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); - } - } - temp_f31 *= 0.92f; - if(temp_r28 == 0) { - break; - } - HuPrcVSleep(); - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r29 = 1 << temp_r31; - if(temp_r30 & temp_r29) { - sp14.x = sp14.y = sp14.z = 1.0f; - BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); - BoardModelVisibilitySet(lbl_1_bss_184[temp_r31], 0); - } - } - temp_r30 |= 0x80000000; - *((u32 *)&HuPrcCurrentGet()->user_data) = temp_r30; - while(1) { - HuPrcVSleep(); - } + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + + Vec sp20[3]; + Vec sp14; + float sp8[3]; + s32 temp_r31; + u32 temp_r30; + u32 temp_r29; + s32 temp_r28; + ParticleData *temp_r27; + temp_r30 = (u32)HuPrcCurrentGet()->user_data; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r29 = 1 << temp_r31; + if (temp_r30 & temp_r29) { + BoardModelPosGet(lbl_1_bss_18A[temp_r31], &sp20[temp_r31]); + sp20[temp_r31].y += 50.0f; + sp8[temp_r31] = 0.0f; + BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); + sp14.x = sp14.y = sp14.z = sp8[temp_r31]; + BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); + BoardModelVisibilitySet(lbl_1_bss_184[temp_r31], 1); + temp_f28 = 130.0f + sp20[temp_r31].y; + if (temp_r30 & 0x10000000) { + lbl_1_bss_CC[temp_r31] = Hu3DParticleCreate(lbl_1_bss_C8, 100); + temp_r27 = Hu3DData[lbl_1_bss_CC[temp_r31]].unk_120; + temp_r27->unk_02 = lbl_1_bss_184[temp_r31]; + Hu3DParticleHookSet(lbl_1_bss_CC[temp_r31], fn_1_8E38); + Hu3DParticleColSet(lbl_1_bss_CC[temp_r31], 255, 255, 0); + Hu3DModelPosSet(lbl_1_bss_CC[temp_r31], 0, 0, 0); + Hu3DParticleBlendModeSet(lbl_1_bss_CC[temp_r31], 1); + Hu3DModelLayerSet(lbl_1_bss_CC[temp_r31], 2); + } + } + } + temp_f31 = 12; + temp_f29 = 0.05f; + while (1) { + temp_r28 = 0; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r29 = 1 << temp_r31; + if (temp_r30 & temp_r29) { + temp_r28++; + BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); + sp20[temp_r31].y += temp_f31; + if (sp20[temp_r31].y >= temp_f28) { + sp20[temp_r31].y = temp_f28; + temp_r28--; + } + BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); + sp8[temp_r31] += temp_f29; + if (sp8[temp_r31] > 1.0f) { + sp8[temp_r31] = 1.0f; + } + sp14.x = sp14.y = sp14.z = sp8[temp_r31]; + BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); + } + } + temp_f31 *= 0.92f; + if (temp_r28 == 0) { + break; + } + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r29 = 1 << temp_r31; + if (temp_r30 & temp_r29) { + sp8[temp_r31] = 1.0f; + sp14.x = sp14.y = sp14.z = sp8[temp_r31]; + BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); + } + } + temp_r30 |= 0x40000000; + *((u32 *)&HuPrcCurrentGet()->user_data) = temp_r30; + temp_f30 = 0; + while (1) { + + temp_r30 = (u32)HuPrcCurrentGet()->user_data; + if (temp_r30 & 0x20000000) { + break; + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r29 = 1 << temp_r31; + if (temp_r30 & temp_r29) { + BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); + sp20[temp_r31].y += sind(temp_f30) * 0.25f; + BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); + } + } + temp_f30 += 5.0f; + if (temp_f30 >= 360.0f) { + temp_f30 -= 360.0f; + } + + HuPrcVSleep(); + } + temp_f31 = -12; + temp_f29 = -0.05f; + while (1) { + temp_r28 = 0; + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r29 = 1 << temp_r31; + if (temp_r30 & temp_r29) { + temp_r28++; + BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); + sp20[temp_r31].y += temp_f31; + BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp20[temp_r31]); + sp8[temp_r31] += temp_f29; + if (sp8[temp_r31] < 0.0f) { + sp8[temp_r31] = 0.0f; + } + if (sp8[temp_r31] == 0.0f) { + temp_r28--; + } + sp14.x = sp14.y = sp14.z = sp8[temp_r31]; + BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); + } + } + temp_f31 *= 0.92f; + if (temp_r28 == 0) { + break; + } + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r29 = 1 << temp_r31; + if (temp_r30 & temp_r29) { + sp14.x = sp14.y = sp14.z = 1.0f; + BoardModelScaleSetV(lbl_1_bss_184[temp_r31], &sp14); + BoardModelVisibilitySet(lbl_1_bss_184[temp_r31], 0); + } + } + temp_r30 |= 0x80000000; + *((u32 *)&HuPrcCurrentGet()->user_data) = temp_r30; + while (1) { + HuPrcVSleep(); + } } void fn_1_8DAC(void) { - s32 temp_r31; - u32 temp_r30 = (u32)HuPrcCurrentGet()->user_data; - u32 temp_r29; - if(temp_r30 & 0x10000000) { - for(temp_r31=0; temp_r31<3; temp_r31++) { - temp_r29 = 1 << temp_r31; - if(temp_r30 & temp_r29) { - Hu3DModelKill(lbl_1_bss_CC[temp_r31]); - } - } - } + s32 temp_r31; + u32 temp_r30 = (u32)HuPrcCurrentGet()->user_data; + u32 temp_r29; + if (temp_r30 & 0x10000000) { + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + temp_r29 = 1 << temp_r31; + if (temp_r30 & temp_r29) { + Hu3DModelKill(lbl_1_bss_CC[temp_r31]); + } + } + } } void fn_1_8E38(ModelData *model, ParticleData *particle, Mtx matrix) { - Vec sp8; + Vec sp8; f32 temp_f30; f32 temp_f29; f32 temp_f31; - HsfanimStruct01* var_r31; + HsfanimStruct01 *var_r31; s32 i, j; if (particle->unk_34 == 0) { @@ -974,20 +974,20 @@ void fn_1_8E38(ModelData *model, ParticleData *particle, Mtx matrix) } } if (j != particle->unk_30) { - temp_f30 = 360.0f * ((1.0f/255.0f) * frand8()); - temp_f29 = temp_f31 * (20.0f + (60.0f * ((1.0f/255.0f) * frand8()))); + temp_f30 = 360.0f * ((1.0f / 255.0f) * frand8()); + temp_f29 = temp_f31 * (20.0f + (60.0f * ((1.0f / 255.0f) * frand8()))); var_r31->unk34.x = (sp8.x + (temp_f29 * sind(temp_f30))); var_r31->unk34.z = (sp8.z + (temp_f29 * cosd(temp_f30))); - var_r31->unk34.y = (sp8.y + (temp_f31 * (-30.0f + (40.0f * ((1.0f/255.0f) * frand8()))))); - var_r31->unk08.x = (0.5f + (3.0f * ((1.0f/255.0f) * frand8()))); - var_r31->unk08.y = (0.3f + (2.0f * ((1.0f/255.0f) * frand8()))); + var_r31->unk34.y = (sp8.y + (temp_f31 * (-30.0f + (40.0f * ((1.0f / 255.0f) * frand8()))))); + var_r31->unk08.x = (0.5f + (3.0f * ((1.0f / 255.0f) * frand8()))); + var_r31->unk08.y = (0.3f + (2.0f * ((1.0f / 255.0f) * frand8()))); var_r31->unk40.a = 180; - var_r31->unk2C = (15.0f * temp_f31); + var_r31->unk2C = (15.0f * temp_f31); } } var_r31 = particle->unk_48; - + for (i = 0; i < particle->unk_30; i++, var_r31++) { if (0.0f != var_r31->unk2C) { var_r31->unk34.y = (var_r31->unk34.y - var_r31->unk08.x); @@ -995,6 +995,6 @@ void fn_1_8E38(ModelData *model, ParticleData *particle, Mtx matrix) if (var_r31->unk2C <= 0.0f) { var_r31->unk2C = 0.0f; } - } + } } } diff --git a/src/REL/w02Dll/roulette.c b/src/REL/w02Dll/roulette.c index 2a2808bc..0ff58995 100644 --- a/src/REL/w02Dll/roulette.c +++ b/src/REL/w02Dll/roulette.c @@ -69,11 +69,11 @@ void fn_1_BCFC(void) { HuPrcVSleep(); } BoardModelRotYSet(lbl_1_bss_30[15], -90.0f); - fn_1_121C(0x130000); + fn_1_121C(MAKE_MESSID(0x13, 0x00)); HuAudFXPlay(0x44); temp_r29 = fn_1_BE88(); BoardStatusShowSetAll(0); - fn_1_121C(0x130001); + fn_1_121C(MAKE_MESSID(0x13, 0x01)); temp_r30 = fn_1_C108(temp_r29); fn_1_CD04(temp_r30); BoardCameraViewSet(1); @@ -104,7 +104,7 @@ s32 fn_1_BE88(void) { if (coinAmount < 5) { return var_r30; } - fn_1_121C(0x130002); + fn_1_121C(MAKE_MESSID(0x13, 0x02)); do { BoardWinCreateChoice(2, MAKE_MESSID(19, 29), 4, 0); @@ -153,17 +153,17 @@ s32 fn_1_BE88(void) { // Coin amount is now the bribe amount in coins switch (bribeChoice) { case 0: - mesg = 0x130004; + mesg = MAKE_MESSID(0x13, 0x04); coinAmount = 0x14; var_r30 = 0x5A; // 90% break; case 1: - mesg = 0x130005; + mesg = MAKE_MESSID(0x13, 0x05); coinAmount = 0xA; var_r30 = 0x3C; // 60% break; case 2: - mesg = 0x130006; + mesg = MAKE_MESSID(0x13, 0x06); coinAmount = 5; var_r30 = 0x1E; // 30% break; @@ -183,7 +183,7 @@ s32 fn_1_BE88(void) { } } while (rouletteChoice == 2); // While viewing map if (var_r30 == -1) { - fn_1_121C(0x130007); + fn_1_121C(MAKE_MESSID(0x13, 0x07)); } return var_r30; } @@ -516,12 +516,12 @@ void fn_1_D3AC(void) Vec sp20; Vec sp14; float sp8[3] = { 1.0f, 0.3f, 2.5f }; - fn_1_121C(0x130008); + fn_1_121C(MAKE_MESSID(0x13, 0x08)); BoardStatusShowSetAll(1); BoardPlayerMotBlendSet(lbl_1_bss_388, 0, 15); BoardPlayerPosGet(lbl_1_bss_388, &sp14); for(temp_r31=0; temp_r31<20; temp_r31++) { - sp38[temp_r31] = BoardModelCreate(0x7000A, NULL, 1); + sp38[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1); sp2C.x = (sp14.x-25.0f)+((1.0f/255.0f)*(frand8()*50.0f)); sp2C.y = (sp14.y+1200.0f)+(temp_r31*130.0f)+((1.0f/255.0f)*(frand8()*60.0f)); sp2C.z = (sp14.z-25.0f)+((1.0f/255.0f)*(frand8()*50.0f)); @@ -603,11 +603,11 @@ s32 fn_1_D8C4(void) s16 temp_r22; u32 temp_r21; - fn_1_121C(0x130009); + fn_1_121C(MAKE_MESSID(0x13, 0x09)); temp_r29 = BoardSpaceGet(0, BoardSpaceFlagSearch(0, 0x800)); BoardModelPosGet(lbl_1_bss_30[3], &sp40); for(temp_r31=0; temp_r31<4; temp_r31++) { - sp14[temp_r31] = BoardModelCreate(0x70000, NULL, 1); + sp14[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x00), NULL, 1); BoardModelLayerSet(sp14[temp_r31], 2); for(temp_r28=0; temp_r28link_cnt; temp_r28++) { temp_r21 = (BoardSpaceFlagGet(0, temp_r29->link[temp_r28]) & 0xE) >> 1; @@ -627,9 +627,9 @@ s32 fn_1_D8C4(void) BoardModelScaleSetV(sp14[temp_r31], &sp1C); } temp_r25 = fn_1_E2AC(); - HuWinMesMaxSizeGet(1, spC, 0x13001E); + HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(0x13, 0x1E)); temp_r30 = HuWinCreate(-10000, 356, spC[0], spC[1], 0); - HuWinMesSet(temp_r30, 0x13001E); + HuWinMesSet(temp_r30, MAKE_MESSID(0x13, 0x1E)); HuWinBGTPLvlSet(temp_r30, 0); HuWinMesSpeedSet(temp_r30, 0); temp_r23 = GWPlayer[lbl_1_bss_388].port; @@ -811,4 +811,4 @@ void fn_1_E41C(void) while(lbl_1_bss_38C) { HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/REL/w02Dll/shuffleboard.c b/src/REL/w02Dll/shuffleboard.c index 2d3d0ff9..3443f20d 100644 --- a/src/REL/w02Dll/shuffleboard.c +++ b/src/REL/w02Dll/shuffleboard.c @@ -25,25 +25,25 @@ s16 lbl_1_bss_1AC; Vec lbl_1_bss_1A0; s32 lbl_1_data_490[8] = { - 0x0076002E, - 0x0076002F, - 0x00760030, - 0x00760031, - 0x00760032, - 0x00760033, - 0x00760034, - 0x00760035 + DATA_MAKE_NUM(DATADIR_W02, 0x2E), + DATA_MAKE_NUM(DATADIR_W02, 0x2F), + DATA_MAKE_NUM(DATADIR_W02, 0x30), + DATA_MAKE_NUM(DATADIR_W02, 0x31), + DATA_MAKE_NUM(DATADIR_W02, 0x32), + DATA_MAKE_NUM(DATADIR_W02, 0x33), + DATA_MAKE_NUM(DATADIR_W02, 0x34), + DATA_MAKE_NUM(DATADIR_W02, 0x35) }; s32 lbl_1_data_4B0[8] = { - 0x00760026, - 0x00760027, - 0x00760028, - 0x00760029, - 0x0076002A, - 0x0076002B, - 0x0076002C, - 0x0076002D + DATA_MAKE_NUM(DATADIR_W02, 0x26), + DATA_MAKE_NUM(DATADIR_W02, 0x27), + DATA_MAKE_NUM(DATADIR_W02, 0x28), + DATA_MAKE_NUM(DATADIR_W02, 0x29), + DATA_MAKE_NUM(DATADIR_W02, 0x2A), + DATA_MAKE_NUM(DATADIR_W02, 0x2B), + DATA_MAKE_NUM(DATADIR_W02, 0x2C), + DATA_MAKE_NUM(DATADIR_W02, 0x2D) }; s32 fn_1_9250(void) @@ -135,9 +135,9 @@ void fn_1_94C0(void) BoardCameraRotSet(-10, -sp10.y); BoardCameraZoomSet(900); BoardStatusShowSetAll(0); - HuWinMesMaxSizeGet(1, sp8, 0x13001C); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x13, 0x1C)); lbl_1_bss_1AC = HuWinCreate(-10000, 400, sp8[0], sp8[1], 0); - HuWinMesSet(lbl_1_bss_1AC, 0x13001C); + HuWinMesSet(lbl_1_bss_1AC, MAKE_MESSID(0x13, 0x1C)); HuWinBGTPLvlSet(lbl_1_bss_1AC, 0); HuWinMesSpeedSet(lbl_1_bss_1AC, 0); fn_1_9EC4(); @@ -238,7 +238,7 @@ void fn_1_9EC4(void) s32 temp_r31; s32 temp_r30; for(temp_r31=0; temp_r31<15; temp_r31++) { - lbl_1_bss_34C[temp_r31] = BoardModelCreate(0x7000A, NULL, 1); + lbl_1_bss_34C[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1); BoardModelVisibilitySet(lbl_1_bss_34C[temp_r31], 0); lbl_1_bss_1C4[temp_r31] = 1; } @@ -582,4 +582,4 @@ void fn_1_BB30(void) HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/REL/w03Dll/condor.c b/src/REL/w03Dll/condor.c index cfc9a13a..e71f2139 100644 --- a/src/REL/w03Dll/condor.c +++ b/src/REL/w03Dll/condor.c @@ -1,21 +1,21 @@ #include "REL/w03Dll.h" -#include "game/data.h" #include "game/board/main.h" -#include "game/board/space.h" -#include "game/board/player.h" #include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/space.h" #include "game/board/window.h" +#include "game/data.h" -#include "game/hsfman.h" #include "game/hsfdraw.h" +#include "game/hsfman.h" #include "game/pad.h" #include "game/wipe.h" -//structs +// structs typedef struct w03UnkStruct5 { - /* 0x00 */ struct { + /* 0x00 */ struct { u8 unk00_bit0 : 1; u8 unk00_bit1 : 2; u8 unk00_bit3 : 1; @@ -27,21 +27,21 @@ typedef struct w03UnkStruct5 { } w03UnkStruct5; typedef struct w03UnkStruct4 { - /* 0x00 */ struct { + /* 0x00 */ struct { u8 unk00_bit0 : 1; - }; + }; } w03UnkStruct4; typedef struct w03StructUnk3 { -/* 0x00 */ s16 unk_00; -/* 0x02 */ s16 model; -/* 0x04 */ f32 unk_04; -/* 0x08 */ Vec unk_08; -/* 0x14 */ Vec unk_14; + /* 0x00 */ s16 unk_00; + /* 0x02 */ s16 model; + /* 0x04 */ f32 unk_04; + /* 0x08 */ Vec unk_08; + /* 0x14 */ Vec unk_14; } w03StructUnk3; typedef struct w03StructUnk2 { -/* 0x00 */ struct { + /* 0x00 */ struct { u8 unkbit_00 : 1; u8 unkbit_01 : 2; u8 unkbit_03 : 1; @@ -52,10 +52,10 @@ typedef struct w03StructUnk2 { u8 unk_03; s16 model; char unk_06[2]; - w03StructUnk3* unk_08; + w03StructUnk3 *unk_08; } w03StructUnk2; -//function signatures +// function signatures void fn_1_313C(void); void fn_1_3218(void); void fn_1_3304(void); @@ -67,44 +67,40 @@ void fn_1_3F5C(s32); void fn_1_4354(s32); void fn_1_48EC(s32); void fn_1_4A9C(void); -void fn_1_50D4(omObjData* arg0); +void fn_1_50D4(omObjData *arg0); void fn_1_5838(s32); -void fn_1_5AC8(omObjData* arg0); -void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1); -void fn_1_602C(omObjData* arg0, w03UnkStruct5* arg1); -f32 fn_1_61A4(omObjData* arg0, w03UnkStruct5* arg1); +void fn_1_5AC8(omObjData *arg0); +void fn_1_5C5C(omObjData *arg0, w03UnkStruct5 *arg1); +void fn_1_602C(omObjData *arg0, w03UnkStruct5 *arg1); +f32 fn_1_61A4(omObjData *arg0, w03UnkStruct5 *arg1); void fn_1_629C(s8 arg0); s32 fn_1_62D0(void); void fn_1_62FC(void); -//bss +// bss float lbl_1_bss_80[20][2]; s8 lbl_1_bss_7D; s8 lbl_1_bss_7C; omObjData *lbl_1_bss_78; omObjData *lbl_1_bss_74; -Process* lbl_1_bss_70; +Process *lbl_1_bss_70; -//data +// data s16 lbl_1_data_310 = -1; s16 lbl_1_data_312 = -1; s16 lbl_1_data_314 = -1; s16 lbl_1_data_316 = -1; -s32 lbl_1_data_318[] = { - DATA_MAKE_NUM(DATADIR_W03, 0x0016), - DATA_MAKE_NUM(DATADIR_W03, 0x0017), - DATA_MAKE_NUM(DATADIR_W03, 0x0018), - DATA_MAKE_NUM(DATADIR_W03, 0x0019), - DATA_MAKE_NUM(DATADIR_W03, 0x001A), - DATA_NUM_LISTEND -}; +s32 lbl_1_data_318[] = { DATA_MAKE_NUM(DATADIR_W03, 0x0016), DATA_MAKE_NUM(DATADIR_W03, 0x0017), DATA_MAKE_NUM(DATADIR_W03, 0x0018), + DATA_MAKE_NUM(DATADIR_W03, 0x0019), DATA_MAKE_NUM(DATADIR_W03, 0x001A), DATA_NUM_LISTEND }; -void fn_1_3058(void) { - lbl_1_data_310 = BoardModelCreate(0x770015, lbl_1_data_318, 0); +void fn_1_3058(void) +{ + lbl_1_data_310 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x15), lbl_1_data_318, 0); fn_1_3304(); } -s32 fn_1_309C(void) { +s32 fn_1_309C(void) +{ BoardRollDispSet(0); lbl_1_bss_70 = HuPrcChildCreate(fn_1_313C, 0x2003U, 0x2000U, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_70, fn_1_3218); @@ -112,12 +108,13 @@ s32 fn_1_309C(void) { while (lbl_1_bss_70) { HuPrcVSleep(); } - + BoardRollDispSet(1); return lbl_1_bss_7C; } -void fn_1_313C(void) { +void fn_1_313C(void) +{ s32 temp_r31; temp_r31 = GWSystem.player_curr; @@ -138,8 +135,8 @@ void fn_1_313C(void) { HuPrcEnd(); } - -void fn_1_3218(void) { +void fn_1_3218(void) +{ if (lbl_1_data_316 != -1) { HuWinKill(lbl_1_data_316); lbl_1_data_316 = -1; @@ -154,20 +151,21 @@ void fn_1_3218(void) { BoardPlayerMotionKill(GWSystem.player_curr, lbl_1_data_312); lbl_1_data_312 = -1; } - + lbl_1_bss_0->unk3 = 0; lbl_1_bss_70 = 0; } - -void fn_1_3304(void) { +void fn_1_3304(void) +{ Vec sp8; f32 temp_f31; s32 var_r31; if (lbl_1_bss_0->unk1 != 0) { var_r31 = BoardSpaceFlagSearch(0, 0x4000); - } else { + } + else { var_r31 = BoardSpaceFlagSearch(0, 0x8000); } @@ -181,7 +179,8 @@ void fn_1_3304(void) { BoardModelMotionStart(lbl_1_data_310, 2, 0x40000001); } -s32 fn_1_3478(s32 arg0) { +s32 fn_1_3478(s32 arg0) +{ Vec sp38; Vec sp2C; Vec sp20; @@ -214,20 +213,20 @@ s32 fn_1_3478(s32 arg0) { PSVECSubtract(&sp38, &sp2C, &sp20); float_temp = atan2(sp20.x, sp20.z) / M_PI * 180.0f; BoardPlayerMotBlendSet(arg0, (float_temp), 0xF); - + while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } - + BoardPlayerIdleSet(arg0); HuAudFXPlay(0x447); BoardModelMotionShiftSet(lbl_1_data_310, 4, 0.0f, 5.0f, 0); HuPrcSleep(6); - + while (BoardModelMotionEndCheck(lbl_1_data_310) == 0) { HuPrcVSleep(); } - + BoardModelMotionShiftSet(lbl_1_data_310, 1, 0.0f, 5.0f, 0x40000001); temp_r26 = BoardPlayerGetCharMess(arg0); BoardWinCreate(2, MAKE_MESSID(22, 16), 8); @@ -245,26 +244,26 @@ s32 fn_1_3478(s32 arg0) { while (var_r29 == 0) { BoardWinCreateChoice(2, MAKE_MESSID(22, 17), 8, 0); BoardWinAttrSet(0x10); - + if (GWPlayer[arg0].com != 0) { fn_1_4354(arg0); } - + BoardWinWait(); BoardWinKill(); switch (BoardWinChoiceGet()) { - case 0: - var_r29 = 1; - break; - case 2: - BoardViewMapExec(arg0); - break; - default: - case 1: - BoardWinCreate(2, MAKE_MESSID(22, 20), 8); - BoardWinWait(); - BoardWinKill(); - return 0; + case 0: + var_r29 = 1; + break; + case 2: + BoardViewMapExec(arg0); + break; + default: + case 1: + BoardWinCreate(2, MAKE_MESSID(22, 20), 8); + BoardWinWait(); + BoardWinKill(); + return 0; } } @@ -273,7 +272,7 @@ s32 fn_1_3478(s32 arg0) { for (j = 0; j < 5; j++) { BoardPlayerCoinsAdd(arg0, -1); HuAudFXPlay(14); - HuPrcSleep(6); + HuPrcSleep(6); } HuAudFXPlay(15); @@ -281,7 +280,8 @@ s32 fn_1_3478(s32 arg0) { return 1; } -void fn_1_3814(s32 arg0) { +void fn_1_3814(s32 arg0) +{ Vec sp14; Vec sp8; f32 temp; @@ -289,11 +289,11 @@ void fn_1_3814(s32 arg0) { BoardModelMotionShiftSet(lbl_1_data_310, 2, 0.0f, 10.0f, 0x40000001); temp = (180.0f + BoardPlayerRotYGet(arg0)); BoardPlayerMotBlendSet(arg0, temp, 0xF); - + while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } - + BoardCameraViewSet(1); BoardCameraTargetPlayerSet(arg0); @@ -310,18 +310,21 @@ void fn_1_3814(s32 arg0) { BoardCameraMotionWait(); } -void fn_1_3968(s32 arg0) { +void fn_1_3968(s32 arg0) +{ s32 var_r29 = 0; s32 var_r28 = 0; - s32 sp48[] = {0x005F0065, 0x001A0065, 0x006D0065, 0x008A0065, 0x00850065, 0x00110065, 0x000D0065, 0x00810065}; + s32 sp48[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x65), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x65), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x65), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x65), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x65), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x65), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x65), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x65) }; Vec sp3C; Vec sp30; Vec sp24; Vec sp18; - s32 sp10[2] = {0x00770013, 0x00770014}; + s32 sp10[2] = { 0x00770013, 0x00770014 }; f32 spC; s16 sp8; - + f32 temp_f30; f32 temp_f28; f32 temp_f31; @@ -332,7 +335,7 @@ void fn_1_3968(s32 arg0) { lbl_1_data_314 = BoardModelCreate(sp10[lbl_1_bss_0->unk1], NULL, 0); character = GWPlayer[arg0].character; lbl_1_data_312 = BoardPlayerMotionCreate(arg0, sp48[character]); - + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_310), "itemhook_oya", &sp3C); BoardPlayerPosGet(arg0, &sp30); temp_f30 = BoardVecDistXZCalc(&sp3C, &sp30); @@ -341,13 +344,13 @@ void fn_1_3968(s32 arg0) { PSVECScale(&sp24, &sp24, temp_f30 / 45.0f); BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 5.0f, 0); HuPrcSleep(5); - + spC = BoardPlayerRotYGet(arg0); temp_f27 = 180.0f + spC; var_r29 = 0; sp8 = 0; temp_f28 = 40.0f; - + while (1) { temp_f31 = __OSs16tof32(&sp8); sp24.y = temp_f28 + (-0.08166667f * (0.75f * (temp_f31 * temp_f31))); @@ -359,16 +362,17 @@ void fn_1_3968(s32 arg0) { sp30.x = sp3C.x; sp30.z = sp3C.z; } - + if (var_r29 == 0) { if (sp3C.y < sp30.y) { var_r29 = 1; } - } else { + } + else { BoardDAngleCalcRange(&spC, temp_f27, 5.142857f); BoardPlayerRotYSet(arg0, spC); } - + if (sp30.y <= sp3C.y && var_r29 != 0) { sp30.y = sp3C.y; break; @@ -376,39 +380,40 @@ void fn_1_3968(s32 arg0) { BoardPlayerPosSetV(arg0, &sp30); HuPrcVSleep(); - sp8 += 1; + sp8 += 1; } - + BoardMusStart(1, 0x18, 0x7F, 0); BoardPlayerPosSet(arg0, 0.0f, 0.0f, 0.0f); - - - BoardModelHookSet(lbl_1_data_310, "itemhook_oya", BoardPlayerModelGet(arg0)); + + BoardModelHookSet(lbl_1_data_310, "itemhook_oya", BoardPlayerModelGet(arg0)); BoardPlayerMotionStart(arg0, lbl_1_data_312, 0x40000001); HuAudFXPlay(0x44F); BoardModelMotionShiftSet(lbl_1_data_310, 5, 0.0f, 5.0f, 0); - + sp18.x = -15.0f; sp18.y = 180.0f; sp18.z = 0.0f; - + BoardCameraMotionStartEx(lbl_1_data_310, &sp18, NULL, 4000.0f, -1.0f, 336); - - for (var_r28 = 0, sp8 = 0; ; sp8++) { + + for (var_r28 = 0, sp8 = 0;; sp8++) { if (var_r28 == 0) { if (sp8 == 0x78U) { WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); var_r28 = 1; } - } else if (WipeStatGet() == 0) { + } + else if (WipeStatGet() == 0) { break; } HuPrcVSleep(); } } -void fn_1_3E88(s32 arg0) { +void fn_1_3E88(s32 arg0) +{ lbl_1_bss_7D = 0; fn_1_48EC(arg0); fn_1_5838(arg0); @@ -433,7 +438,8 @@ void fn_1_3E88(s32 arg0) { BoardAudSeqPause(0, 0, 0x3E8); } -void fn_1_3F5C(s32 arg0) { +void fn_1_3F5C(s32 arg0) +{ Mtx sp38; Vec sp2C; Vec sp20; @@ -447,7 +453,8 @@ void fn_1_3F5C(s32 arg0) { if (lbl_1_bss_0->unk1 != 0) { lbl_1_bss_0->unk1 = 0; var_r30 = BoardSpaceFlagSearch(0, 0x8000); - } else { + } + else { lbl_1_bss_0->unk1 = 1; var_r30 = BoardSpaceFlagSearch(0, 0x4000); } @@ -458,7 +465,8 @@ void fn_1_3F5C(s32 arg0) { if (lbl_1_bss_0->unk1 != 0) { var_r31 = BoardSpaceFlagSearch(0, 0x4000); - } else { + } + else { var_r31 = BoardSpaceFlagSearch(0, 0x8000); } @@ -506,19 +514,21 @@ void fn_1_3F5C(s32 arg0) { BoardWinKill(); } -void fn_1_4354(s32 arg0) { +void fn_1_4354(s32 arg0) +{ s32 sp8; s32 starPos; s32 var_r30; var_r30 = 0; starPos = GWSystem.star_pos; - + if (lbl_1_bss_0->unk1 != 0) { if ((starPos == 1) || (starPos == 2) || (starPos == 3) || (starPos == 4)) { var_r30 = 1; } - } else if ((starPos == 0) || (starPos == 5) || (starPos == 6) || (starPos == 7)) { + } + else if ((starPos == 0) || (starPos == 5) || (starPos == 6) || (starPos == 7)) { var_r30 = 1; } @@ -534,12 +544,10 @@ void fn_1_4354(s32 arg0) { BoardComKeySetRight(); } -char *lbl_1_data_34C[] = { - "jyanA", - "jyanB" -}; +char *lbl_1_data_34C[] = { "jyanA", "jyanB" }; -void fn_1_4424(w03StructUnk2* arg0) { +void fn_1_4424(w03StructUnk2 *arg0) +{ Mtx sp108; Mtx spD8; Mtx spA8; @@ -562,9 +570,9 @@ void fn_1_4424(w03StructUnk2* arg0) { f32 sp10; f32 sp10_2; s16 i; - char* temp_r22; - w03StructUnk3* temp_r27; - ModelData* temp_r28; + char *temp_r22; + w03StructUnk3 *temp_r27; + ModelData *temp_r28; memset(&lbl_1_bss_80, 0, 0xA0); sp48.x = sp54.x = 0.0f; @@ -576,7 +584,8 @@ void fn_1_4424(w03StructUnk2* arg0) { if (lbl_1_bss_0->unk1 != 0) { PSVECSubtract(&sp6C, &sp60, &sp3C); - } else { + } + else { PSVECSubtract(&sp60, &sp6C, &sp3C); } @@ -595,21 +604,21 @@ void fn_1_4424(w03StructUnk2* arg0) { for (i = var_r25 = 0; i < 20;) { Hu3DMotionExec(temp_r23, temp_r28->unk_08, temp_r28->unk_64, 0); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_314), temp_r22, &sp54); - temp_r28->unk_64 = (f32) (temp_r28->unk_64 + temp_r28->unk_68); + temp_r28->unk_64 = (f32)(temp_r28->unk_64 + temp_r28->unk_68); if (temp_r28->unk_64 > 400.0f) { break; } - - if (var_r25 % 4 == 0 && ((s16) var_r25 != 0)) { + + if (var_r25 % 4 == 0 && ((s16)var_r25 != 0)) { temp_r27 = &arg0->unk_08[i]; temp_r27->unk_00 = 1; temp_f30 = (0.5f - BoardRandFloat()) * 90; OSf32tos16(&temp_f30, &sp8); sp8 = (sp8 / 10) * 10; OSs16tof32(&sp8, &temp_f30); - lbl_1_bss_80[i+1][0] = temp_f30; - lbl_1_bss_80[i+1][1] = temp_r28->unk_64; + lbl_1_bss_80[i + 1][0] = temp_f30; + lbl_1_bss_80[i + 1][1] = temp_r28->unk_64; sp30 = sp48; sp18 = sp54; BoardMTXCalcLookAt(spA8, &sp18, &sp24, &sp30); @@ -632,12 +641,13 @@ void fn_1_4424(w03StructUnk2* arg0) { arg0->unk_03 = i; } -void fn_1_48EC(s32 arg0) { +void fn_1_48EC(s32 arg0) +{ Vec spC; - omObjData* obj; + omObjData *obj; s32 i; - w03StructUnk2* temp_r31; - w03StructUnk3* temp_r30; + w03StructUnk2 *temp_r31; + w03StructUnk3 *temp_r30; obj = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_50D4); lbl_1_bss_74 = obj; @@ -648,9 +658,9 @@ void fn_1_48EC(s32 arg0) { temp_r31->unkbit_04 = 0; temp_r31->unk_02 = -1; temp_r31->unkbit_01 = arg0; - temp_r31->unk_08 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xA00, 0x10000000U); + temp_r31->unk_08 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xA00, MEMORY_DEFAULT_NUM); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[2]), "coin", &spC); - temp_r31->model = BoardModelCreate(0x770007, NULL, 0); + temp_r31->model = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x07), NULL, 0); BoardModelVisibilitySet(temp_r31->model, 0); BoardModelPosSetV(temp_r31->model, &spC); BoardModelLayerSet(temp_r31->model, 2U); @@ -658,24 +668,26 @@ void fn_1_48EC(s32 arg0) { for (i = 0; i < 80; i++) { temp_r30 = &temp_r31->unk_08[i]; - temp_r30->model = BoardModelCreate(0x70009, 0, 1); + temp_r30->model = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x09), 0, 1); BoardModelVisibilitySet(temp_r30->model, 0); - BoardModelMotionStart(temp_r30->model, 0, 0x40000001U); + BoardModelMotionStart(temp_r30->model, 0, 0x40000001U); } - + fn_1_4424(temp_r31); } -void fn_1_4A9C(void) { +void fn_1_4A9C(void) +{ OM_GET_WORK_PTR(lbl_1_bss_74, w03UnkStruct4)->unk00_bit0 = 1; } -void fn_1_4ABC(w03StructUnk2* arg0) { +void fn_1_4ABC(w03StructUnk2 *arg0) +{ Vec sp8; f32 temp_f31; - w03StructUnk3* temp_r31; + w03StructUnk3 *temp_r31; s32 i; - + BoardModelPosGet(lbl_1_data_310, &sp8); sp8.y += 250.0f; @@ -691,10 +703,10 @@ void fn_1_4ABC(w03StructUnk2* arg0) { HuAudFXPlay(7); } BoardModelPosSetV(temp_r31->model, &temp_r31->unk_08); - } + } } - //reg alloc hack + // reg alloc hack (void)i; (void)i; @@ -710,22 +722,25 @@ void fn_1_4ABC(w03StructUnk2* arg0) { if (temp_r31->unk_08.y < -300.0f) { temp_r31->unk_00 = -1; BoardModelVisibilitySet(temp_r31->model, 0); - } else if (BoardVecMinDistCheck(&sp8, &temp_r31->unk_08, 200.0f) != 0) { + } + else if (BoardVecMinDistCheck(&sp8, &temp_r31->unk_08, 200.0f) != 0) { temp_r31->unk_00 = -1; BoardModelVisibilitySet(temp_r31->model, 0); BoardPlayerCoinsAdd(arg0->unkbit_01, 1); CharModelLayerSetAll(2); CharModelCoinEffectCreate(1, &temp_r31->unk_08); HuAudFXPlay(7); - } else { + } + else { BoardModelPosSetV(temp_r31->model, &temp_r31->unk_08); } - } + } } } -s32 fn_1_4D0C(w03StructUnk3** arg0, s16* arg1) { - w03StructUnk2* temp_r31; +s32 fn_1_4D0C(w03StructUnk3 **arg0, s16 *arg1) +{ + w03StructUnk2 *temp_r31; if (!(lbl_1_bss_74)) { return 0; @@ -737,13 +752,14 @@ s32 fn_1_4D0C(w03StructUnk3** arg0, s16* arg1) { return 1; } -void fn_1_4D60(w03StructUnk2* arg0) { +void fn_1_4D60(w03StructUnk2 *arg0) +{ Vec sp8; f32 temp_f31; f32 temp_f30; s32 i; s32 j; - w03StructUnk3* temp_r31; + w03StructUnk3 *temp_r31; if (arg0->unk_02 == 1) { Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_C[2]), "coin", &sp8); @@ -769,20 +785,23 @@ void fn_1_4D60(w03StructUnk2* arg0) { } } -void fn_1_4F24(w03StructUnk2* arg0) { +void fn_1_4F24(w03StructUnk2 *arg0) +{ s32 var_r30 = 0; - s32 sp8[4] = {5, 10, 30, 40}; + s32 sp8[4] = { 5, 10, 30, 40 }; s32 temp_r29; s32 temp_r28; - + if (arg0->unk_02 == -1) { if (GWTeamGet()) { if (GWPlayer[arg0->unkbit_01].rank == 0) { var_r30 = 5; - } else if (GWPlayer[arg0->unkbit_01].rank == 1) { + } + else if (GWPlayer[arg0->unkbit_01].rank == 1) { var_r30 = 20; } - } else { + } + else { var_r30 = sp8[GWPlayer[arg0->unkbit_01].rank]; } @@ -792,10 +811,12 @@ void fn_1_4F24(w03StructUnk2* arg0) { if (temp_r29 < var_r30) { if (temp_r28 < 30) { arg0->unk_02 = 2; - } else { + } + else { arg0->unk_02 = 1; } - } else { + } + else { arg0->unk_02 = 0; } @@ -805,12 +826,13 @@ void fn_1_4F24(w03StructUnk2* arg0) { } } -void fn_1_50D4(omObjData* arg0) { +void fn_1_50D4(omObjData *arg0) +{ Vec sp50; Vec sp44; Vec sp38; - PlayerState* sp18; - PlayerState* sp14; + PlayerState *sp18; + PlayerState *sp14; s16 sp10[2]; s16 spC[2]; f32 temp_f31; @@ -819,12 +841,12 @@ void fn_1_50D4(omObjData* arg0) { s32 i, j, k; s32 temp_r22; s32 temp_r23; - w03StructUnk3* temp_r30; - w03StructUnk2* temp_r31; - w03StructUnk3* temp; + w03StructUnk3 *temp_r30; + w03StructUnk2 *temp_r31; + w03StructUnk3 *temp; temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_74, w03StructUnk2); - + if ((temp_r31->unkbit_00 != 0) || (BoardIsKill() != 0)) { for (i = 0; i < 80; i++) { temp = &temp_r31->unk_08[i]; @@ -834,28 +856,26 @@ void fn_1_50D4(omObjData* arg0) { for (i = 0; i < 4; i++) { BoardModelVisibilitySet(BoardPlayerModelGet(i), 1); } - + BoardModelKill(temp_r31->model); HuMemDirectFree(temp_r31->unk_08); lbl_1_bss_74 = 0; omDelObjEx(HuPrcCurrentGet(), arg0); return; } - + if (lbl_1_data_314 != -1) { temp_f31 = BoardModelMotionTimeGet(lbl_1_data_314); if (temp_r31->unk_01 == 0) { - if ((lbl_1_bss_0->unk1 != 0) && - ((temp_f31 >= 212.0f)) || - (lbl_1_bss_0->unk1 == 0) && - ((temp_f31 >= 86.0f))) { - + if ((lbl_1_bss_0->unk1 != 0) && ((temp_f31 >= 212.0f)) || (lbl_1_bss_0->unk1 == 0) && ((temp_f31 >= 86.0f))) { + temp_r31->unk_01 = 1; } - } else { + } + else { fn_1_4F24(temp_r31); } - + if (temp_r31->unk_01 != 0) { if (BoardModelMotionEndCheck(lbl_1_bss_C[2]) != 0) { BoardModelMotionStart(lbl_1_bss_C[2], 0, 0x40000001); @@ -865,12 +885,13 @@ void fn_1_50D4(omObjData* arg0) { BoardModelVisibilitySet(temp_r31->model, 0); } } - + if (BoardModelMotionTimeGet(lbl_1_bss_C[2]) >= 170.0f) { if (temp_r31->unkbit_04 == 0) { if (temp_r31->unkbit_03 == 0) { HuAudFXPlay(0x43C); - } else { + } + else { HuAudFXPlay(0x43D); } temp_r31->unkbit_04 = 1; @@ -878,16 +899,17 @@ void fn_1_50D4(omObjData* arg0) { if (temp_r31->unk_02 == 1) { omVibrate(GWSystem.player_curr, 0xC, 4, 2); fn_1_4D60(temp_r31); - } else if ((temp_r31->unk_02 == 2) && (temp_r31->unkbit_03 == 0)) { + } + else if ((temp_r31->unk_02 == 2) && (temp_r31->unkbit_03 == 0)) { omVibrate(GWSystem.player_curr, 0xC, 0xC, 0); BoardModelVisibilitySet(temp_r31->model, 1); BoardModelMotionStart(temp_r31->model, 0, 0); temp_r31->unkbit_03 = 1; } } - + fn_1_4ABC(temp_r31); - + for (i = 0; i < 4; i++) { if (i != GWSystem.player_curr) { BoardPlayerPosGet(i, &sp50); @@ -895,7 +917,8 @@ void fn_1_50D4(omObjData* arg0) { PSVECSubtract(&sp50, &sp44, &sp38); if (PSVECMag(&sp38) >= 2000.0f) { BoardModelVisibilitySet(BoardPlayerModelGet(i), 0); - } else { + } + else { BoardModelVisibilitySet(BoardPlayerModelGet(i), 1); } } @@ -903,11 +926,12 @@ void fn_1_50D4(omObjData* arg0) { } } -void fn_1_5838(s32 arg0) { +void fn_1_5838(s32 arg0) +{ Vec sp18; Vec spC; - omObjData* obj; - w03UnkStruct5* temp_r31; + omObjData *obj; + w03UnkStruct5 *temp_r31; obj = omAddObjEx(boardObjMan, 0x7E01, 0, 0, -1, &fn_1_5AC8); lbl_1_bss_78 = obj; @@ -918,18 +942,18 @@ void fn_1_5838(s32 arg0) { temp_r31->unk00_bit3 = 0; switch (GWPlayer[temp_r31->unk00_bit1].diff) { - case 0: - temp_r31->unk_08 = (-15.0f + (-30.0f * BoardRandFloat())); - break; - case 1: - temp_r31->unk_08 = (-5.0f + (-10.0f * BoardRandFloat())); - break; - case 2: - temp_r31->unk_08 = (-2.0f + (-5.0f * BoardRandFloat())); - break; - case 3: - temp_r31->unk_08 = 0.0f; - break; + case 0: + temp_r31->unk_08 = (-15.0f + (-30.0f * BoardRandFloat())); + break; + case 1: + temp_r31->unk_08 = (-5.0f + (-10.0f * BoardRandFloat())); + break; + case 2: + temp_r31->unk_08 = (-2.0f + (-5.0f * BoardRandFloat())); + break; + case 3: + temp_r31->unk_08 = 0.0f; + break; } BoardCameraMoveSet(0); @@ -950,9 +974,10 @@ void fn_1_5838(s32 arg0) { BoardCameraTargetModelSet(-1); } -void fn_1_5AC8(omObjData* arg0) { +void fn_1_5AC8(omObjData *arg0) +{ s32 temp_r0; - w03UnkStruct5* temp_r31; + w03UnkStruct5 *temp_r31; temp_r31 = OM_GET_WORK_PTR(arg0, w03UnkStruct5); @@ -971,32 +996,29 @@ void fn_1_5AC8(omObjData* arg0) { } switch (temp_r31->unk00_bit4) { - case 1: - if (lbl_1_bss_7D != 0) { - fn_1_629C(2); - fn_1_62FC(); - BoardCameraTargetModelSet(lbl_1_data_310); - BoardCameraMoveSet(1); - - } - break; - case 2: - fn_1_5C5C(arg0, (w03UnkStruct5* ) temp_r31); - break; - case 3: - BoardCameraTargetModelSet(-1); - BoardCameraMoveSet(0); - temp_r31->unk00_bit0 = 1; - break; + case 1: + if (lbl_1_bss_7D != 0) { + fn_1_629C(2); + fn_1_62FC(); + BoardCameraTargetModelSet(lbl_1_data_310); + BoardCameraMoveSet(1); + } + break; + case 2: + fn_1_5C5C(arg0, (w03UnkStruct5 *)temp_r31); + break; + case 3: + BoardCameraTargetModelSet(-1); + BoardCameraMoveSet(0); + temp_r31->unk00_bit0 = 1; + break; } } -char *lbl_1_data_35C[] = { - "jyanA", - "jyanB" -}; +char *lbl_1_data_35C[] = { "jyanA", "jyanB" }; -void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1) { +void fn_1_5C5C(omObjData *arg0, w03UnkStruct5 *arg1) +{ Mtx sp110; Mtx spE0; Mtx spB0; @@ -1009,8 +1031,8 @@ void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1) { Vec sp14; Vec sp8; s16 temp_r3; - char* temp_r27; - ModelData* temp_r30; + char *temp_r27; + ModelData *temp_r30; if (((WipeStatGet() == 0) && (arg1->unk00_bit3) || (BoardModelMotionEndCheck(lbl_1_data_314) != 0))) { fn_1_629C(3); @@ -1037,7 +1059,8 @@ void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1) { if (0.0f != temp_r30->unk_64) { PSVECSubtract(&sp38, &sp44, &sp2C); - } else { + } + else { sp2C.x = sp2C.y = sp2C.z = 0.0f; } @@ -1068,14 +1091,16 @@ void fn_1_5C5C(omObjData* arg0, w03UnkStruct5* arg1) { BoardCameraRotSet(-20.0f, (180.0 * (atan2(sp2C.x, sp2C.z) / M_PI))); } -void fn_1_602C(omObjData* arg0, w03UnkStruct5* arg1) { +void fn_1_602C(omObjData *arg0, w03UnkStruct5 *arg1) +{ f32 temp_f31 = 0.0f; f32 var_f30; f32 var_f29; if (GWPlayer[arg1->unk00_bit1].com == 0) { var_f30 = HuPadStkX[GWPlayer[arg1->unk00_bit1].port]; - } else { + } + else { var_f30 = fn_1_61A4(arg0, arg1); } @@ -1083,7 +1108,8 @@ void fn_1_602C(omObjData* arg0, w03UnkStruct5* arg1) { if (temp_f31 < 0.0f) { var_f29 = -temp_f31; - } else { + } + else { var_f29 = temp_f31; } @@ -1095,13 +1121,14 @@ void fn_1_602C(omObjData* arg0, w03UnkStruct5* arg1) { BoardDAngleCalcRange(&arg1->unk_04, temp_f31, 1.0f); } -f32 fn_1_61A4(omObjData* arg0, w03UnkStruct5* arg1) { - w03StructUnk3* sp8; +f32 fn_1_61A4(omObjData *arg0, w03UnkStruct5 *arg1) +{ + w03StructUnk3 *sp8; f32 temp_f31; s16 i; - w03StructUnk2* temp_r29; + w03StructUnk2 *temp_r29; s16 var_r28; - f32* temp_r31; + f32 *temp_r31; if (lbl_1_bss_74) { temp_r29 = OM_GET_WORK_PTR(lbl_1_bss_74, w03StructUnk2); @@ -1116,28 +1143,31 @@ f32 fn_1_61A4(omObjData* arg0, w03UnkStruct5* arg1) { temp_r31 = lbl_1_bss_80[i]; if ((temp_r31[1] < temp_f31) && (temp_r31[3] > temp_f31)) { return -1.5f * temp_r31[2]; - } + } } - + return 0.0f; } -void fn_1_629C(s8 arg0) { - w03UnkStruct5* temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_78, w03UnkStruct5); +void fn_1_629C(s8 arg0) +{ + w03UnkStruct5 *temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_78, w03UnkStruct5); temp_r31->unk00_bit4 = arg0; } -s32 fn_1_62D0(void) { - w03UnkStruct5* temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_78, w03UnkStruct5); +s32 fn_1_62D0(void) +{ + w03UnkStruct5 *temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_78, w03UnkStruct5); return temp_r31->unk00_bit4; } -void fn_1_62FC(void) { +void fn_1_62FC(void) +{ f32 widthHeight[2]; - s32 messageID = 0x000D0005; + s32 messageID = DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x05); f32 x; f32 y; - + HuWinMesMaxSizeGet(1, widthHeight, messageID); x = -10000.0f; y = 392.0f; diff --git a/src/REL/w03Dll/main.c b/src/REL/w03Dll/main.c index 3127700f..a721d95b 100644 --- a/src/REL/w03Dll/main.c +++ b/src/REL/w03Dll/main.c @@ -125,24 +125,24 @@ void BoardCreate(void) { lbl_1_bss_0 = (w03State*)&GWSystem.board_data; lbl_1_bss_0->unk3 = 0; - BoardSpaceInit(0x770000); + BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W03, 0x00)); - lbl_1_data_1E0 = BoardModelCreate(0x770001, NULL, 0); + lbl_1_data_1E0 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x01), NULL, 0); fn_8006DDE8(lbl_1_data_1E0, -1.0f); BoardModelPosSet(lbl_1_data_1E0, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_1E0, 0, 0x40000001); - lbl_1_data_1E8 = BoardModelCreate(0x770003, NULL, 0); + lbl_1_data_1E8 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x03), NULL, 0); fn_8006DDE8(lbl_1_data_1E8, -1.0f); BoardModelPosSet(lbl_1_data_1E8, 0.0f, 0.0f, 0.0f); BoardModelLayerSet(lbl_1_data_1E8, 2); - lbl_1_data_1E2 = BoardModelCreate(0x770002, NULL, 0); + lbl_1_data_1E2 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x02), NULL, 0); fn_8006DDE8(lbl_1_data_1E2, -1.0f); BoardModelPosSet(lbl_1_data_1E2, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_1E2, 0, 0x40000001); - lbl_1_data_1E4 = BoardModelCreate(0x77001B, lbl_1_data_20C, 0); + lbl_1_data_1E4 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x1B), lbl_1_data_20C, 0); BoardModelPosSet(lbl_1_data_1E4, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_1E4, 1, 0x40000001); @@ -473,4 +473,4 @@ void fn_1_10E4(omObjData* arg0) { } HuAudFXListnerUpdate(&sp14, &sp8); -} \ No newline at end of file +} diff --git a/src/REL/w03Dll/mg_coin.c b/src/REL/w03Dll/mg_coin.c index fa2cb7dc..54c33285 100644 --- a/src/REL/w03Dll/mg_coin.c +++ b/src/REL/w03Dll/mg_coin.c @@ -1,17 +1,17 @@ -#include "dolphin.h" -#include "game/chrman.h" -#include "game/object.h" #include "REL/w03Dll.h" +#include "dolphin.h" #include "game/board/main.h" #include "game/board/model.h" #include "game/board/player.h" #include "game/board/space.h" -#include "game/minigame_seq.h" +#include "game/chrman.h" #include "game/hsfdraw.h" +#include "game/minigame_seq.h" +#include "game/object.h" #include "game/pad.h" -//structs -typedef struct someBits3 { //make sure this is defined correctly +// structs +typedef struct someBits3 { // make sure this is defined correctly /* 0x00 */ struct { u8 unk00_bit0 : 1; u8 unk00_bit1 : 4; @@ -42,58 +42,61 @@ typedef struct unkTemp2 { s8 unk4; char unk_05[3]; f32 unk8; - unkTemp* unk_0C; + unkTemp *unk_0C; } unkTemp2; -//function signatures +// function signatures void fn_1_7C98(void); void fn_1_7C38(void); s32 fn_1_7D18(s32 arg0); void fn_1_8140(s32 arg0); void fn_1_81E0(s32 arg0); -void fn_1_8530(omObjData* arg0); +void fn_1_8530(omObjData *arg0); void fn_1_84A8(s32 arg0); -void fn_1_8698(omObjData* arg0, someBits3* arg1); -void fn_1_8C08(omObjData* arg0, someBits3* arg1); -void fn_1_8E44(omObjData* arg0, someBits3* arg1); -void fn_1_9044(omObjData* arg0, someBits3* arg1); +void fn_1_8698(omObjData *arg0, someBits3 *arg1); +void fn_1_8C08(omObjData *arg0, someBits3 *arg1); +void fn_1_8E44(omObjData *arg0, someBits3 *arg1); +void fn_1_9044(omObjData *arg0, someBits3 *arg1); void fn_1_91B8(void); void fn_1_9230(s32 arg0); void fn_1_9384(void); void fn_1_9474(s32 arg0); void fn_1_97F8(s32 arg0); -void fn_1_9A1C(unkTemp2* arg0); +void fn_1_9A1C(unkTemp2 *arg0); -//data +// data s32 lbl_1_data_450 = -1; s16 lbl_1_data_454 = -1; s16 lbl_1_data_456 = -1; s16 lbl_1_data_458 = -1; -s32 lbl_1_data_45C[] = {0x00770021, 0x00770022, -1}; +s32 lbl_1_data_45C[] = { DATA_MAKE_NUM(DATADIR_W03, 0x21), DATA_MAKE_NUM(DATADIR_W03, 0x22), DATA_NUM_LISTEND }; -//BSS +// BSS char lbl_1_bss_150[0x30]; s16 lbl_1_bss_14E; s8 lbl_1_bss_14C; -omObjData* lbl_1_bss_148; -omObjData* lbl_1_bss_144; -Process* lbl_1_bss_140; +omObjData *lbl_1_bss_148; +omObjData *lbl_1_bss_144; +Process *lbl_1_bss_140; -void fn_1_7ABC(void) { - lbl_1_data_456 = BoardModelCreate(0x770020, lbl_1_data_45C, 0); +void fn_1_7ABC(void) +{ + lbl_1_data_456 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x20), lbl_1_data_45C, 0); BoardModelHookSet(lbl_1_bss_C[7], "phei", lbl_1_data_456); BoardModelMotionStart(lbl_1_data_456, 2, 0x40000002); BoardModelRotYSet(lbl_1_data_456, -45.0f); } -void fn_1_7B58(void) { +void fn_1_7B58(void) +{ if (lbl_1_data_456 != -1) { BoardModelKill(lbl_1_data_456); lbl_1_data_456 = -1; } } -void fn_1_7BA8(void) { +void fn_1_7BA8(void) +{ BoardRollDispSet(0); lbl_1_bss_140 = HuPrcChildCreate(&fn_1_7C98, 0x2003, 0x2000, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_140, &fn_1_7C38); @@ -103,7 +106,8 @@ void fn_1_7BA8(void) { BoardRollDispSet(1); } -void fn_1_7C38(void) { +void fn_1_7C38(void) +{ if (lbl_1_data_454 != -1) { HuWinKill(lbl_1_data_454); lbl_1_data_454 = -1; @@ -111,7 +115,8 @@ void fn_1_7C38(void) { lbl_1_bss_140 = 0; } -void fn_1_7C98(void) { +void fn_1_7C98(void) +{ s32 temp_r31; temp_r31 = GWSystem.player_curr; @@ -125,7 +130,8 @@ void fn_1_7C98(void) { HuPrcEnd(); } -s32 fn_1_7D18(s32 arg0) { +s32 fn_1_7D18(s32 arg0) +{ Point3d sp38; Point3d sp2C; Point3d sp20; @@ -136,7 +142,7 @@ s32 fn_1_7D18(s32 arg0) { s16 space; s16 temp_r28; f32 arctan; - + BoardWinCreateChoice(2, MAKE_MESSID(22, 21), 2, 0); if (GWPlayer[arg0].com != 0) { @@ -176,7 +182,8 @@ s32 fn_1_7D18(s32 arg0) { if (GWPlayer[arg0].character == 5) { var_f31 = 54.000004f; - } else { + } + else { var_f31 = 39.0f; } @@ -204,9 +211,10 @@ s32 fn_1_7D18(s32 arg0) { return 1; } -void fn_1_8140(s32 arg0) { +void fn_1_8140(s32 arg0) +{ s16 temp_r31; - + fn_1_81E0(arg0); BoardMusStart(1, 0x16, 0x7F, 0); temp_r31 = MGSeqStartCreate(); @@ -226,35 +234,36 @@ void fn_1_8140(s32 arg0) { } s32 lbl_1_data_470[] = { - 0x005F0066, - 0x001A0066, - 0x006D0066, - 0x008A0066, - 0x00850066, - 0x00110066, - 0x000D0066, - 0x00810066 + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x66), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x66), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x66), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x66), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x66), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x66), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x66), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x66), }; s32 lbl_1_data_490[] = { - 0x005F0067, - 0x001A0067, - 0x006D0067, - 0x008A0067, - 0x00850067, - 0x00110067, - 0x000D0067, - 0x00810067 + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x67), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x67), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x67), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x67), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x67), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x67), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x67), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x67), }; -void fn_1_81E0(s32 arg0) { +void fn_1_81E0(s32 arg0) +{ Point3d sp8; - omObjData* temp_r3; + omObjData *temp_r3; f32 temp_f31; s32 temp_r28; s32 temp_r5; s32 temp_r5_2; - someBits3* temp_r31; + someBits3 *temp_r31; temp_r3 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_8530); lbl_1_bss_144 = temp_r3; @@ -273,7 +282,7 @@ void fn_1_81E0(s32 arg0) { temp_r31->unk_06[1] = BoardPlayerMotionCreate(arg0, lbl_1_data_470[temp_r28]); temp_r31->unk_06[2] = BoardPlayerMotionCreate(arg0, lbl_1_data_490[temp_r28]); temp_f31 = 0.3f; - temp_r31->unk_06[0] = BoardModelCreate(0x770009, NULL, 0); + temp_r31->unk_06[0] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x09), NULL, 0); BoardModelVisibilitySet(temp_r31->unk_06[0], 0); BoardPlayerPosGet(arg0, &sp8); BoardModelPosSetV(temp_r31->unk_06[0], &sp8); @@ -283,10 +292,11 @@ void fn_1_81E0(s32 arg0) { BoardModelMotionSpeedSet(lbl_1_data_456, temp_r3->trans.x); BoardPlayerMotionStart(arg0, temp_r31->unk_06[1], 0x40000001); BoardPlayerMotionSpeedSet(arg0, temp_r3->trans.x); - lbl_1_data_458 = BoardModelMotionCreate(lbl_1_bss_C[10], 0x770025); + lbl_1_data_458 = BoardModelMotionCreate(lbl_1_bss_C[10], DATA_MAKE_NUM(DATADIR_W03, 0x25)); } -void fn_1_8434(someBits3* arg0) { +void fn_1_8434(someBits3 *arg0) +{ if (arg0->unk_06[1] != -1) { BoardPlayerMotionKill(arg0->unk00_bit5, arg0->unk_06[1]); } @@ -298,9 +308,10 @@ void fn_1_8434(someBits3* arg0) { } } -void fn_1_84A8(s32 arg0) { - someBits3* temp_r31; - +void fn_1_84A8(s32 arg0) +{ + someBits3 *temp_r31; + if (lbl_1_bss_144) { temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_144, someBits3); temp_r31->unk00_bit1 = arg0; @@ -310,12 +321,13 @@ void fn_1_84A8(s32 arg0) { } } -void fn_1_8530(omObjData* arg0) { +void fn_1_8530(omObjData *arg0) +{ s32 temp_r0; - someBits3* temp_r31; + someBits3 *temp_r31; temp_r31 = OM_GET_WORK_PTR(arg0, someBits3); - + if ((temp_r31->unk00_bit0 != 0) || (BoardIsKill() != 0)) { if (temp_r31->unk_04 != -1) { MGSeqParamSet(temp_r31->unk_04, 2, -1); @@ -330,7 +342,7 @@ void fn_1_8530(omObjData* arg0) { BoardModelKill(temp_r31->unk_06[0]); } lbl_1_bss_144 = NULL; - + omDelObjEx(HuPrcCurrentGet(), arg0); return; } @@ -341,24 +353,25 @@ void fn_1_8530(omObjData* arg0) { } switch (temp_r31->unk00_bit1) { - case 0: - fn_1_8698(arg0, temp_r31); - return; - case 1: - fn_1_8C08(arg0, temp_r31); - return; - case 2: - fn_1_8E44(arg0, temp_r31); - return; - case 3: - fn_1_9044(arg0, temp_r31); - /* fallthrough */ - case 4: - break; + case 0: + fn_1_8698(arg0, temp_r31); + return; + case 1: + fn_1_8C08(arg0, temp_r31); + return; + case 2: + fn_1_8E44(arg0, temp_r31); + return; + case 3: + fn_1_9044(arg0, temp_r31); + /* fallthrough */ + case 4: + break; } } -void fn_1_8698(omObjData* arg0, someBits3* arg1) { +void fn_1_8698(omObjData *arg0, someBits3 *arg1) +{ s32 temp_r27; u32 var_r28; u32 var_r26; @@ -367,10 +380,12 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) { if (arg1->unk3 != 0) { arg1->unk3--; - } else { + } + else { if (arg1->unk2 != 0) { arg1->unk2--; - } else { + } + else { MGSeqParamSet(arg1->unk_04, 2, -1); arg1->unk_04 = -1; arg1->unk00_bit1 = 1; @@ -384,7 +399,7 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) { lbl_1_bss_14E = 30; } - OSu16tof32((u16*)&lbl_1_bss_14E, &arg0->rot.x); //?? + OSu16tof32((u16 *)&lbl_1_bss_14E, &arg0->rot.x); //?? BoardModelAttrReset(lbl_1_data_456, 0x40000002); BoardModelAttrReset(lbl_1_bss_C[7], 0x40000002); BoardModelAttrReset(lbl_1_bss_C[10], 0x40000002); @@ -407,35 +422,35 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) { MGSeqParamSet(arg1->unk_04, 1, arg1->unk2); arg1->unk3 = 60; } - - + var_r26 = GWPlayer[arg1->unk00_bit5].port; var_r28 = 0; - + if ((GWPlayer[arg1->unk00_bit5].com) != 0) { temp_r27 = BoardRandMod(100); switch (GWPlayer[arg1->unk00_bit5].diff) { - case 0: - if (temp_r27 < 12) { + case 0: + if (temp_r27 < 12) { + var_r28 = 0x100; + } + break; + case 1: + if (temp_r27 < 22) { + var_r28 = 0x100; + } + break; + case 2: + if (temp_r27 < 50) { + var_r28 = 0x100; + } + break; + case 3: var_r28 = 0x100; - } - break; - case 1: - if (temp_r27 < 22) { - var_r28 = 0x100; - } - break; - case 2: - if (temp_r27 < 50) { - var_r28 = 0x100; - } - break; - case 3: - var_r28 = 0x100; - break; + break; } - } else { + } + else { var_r28 = HuPadBtnDown[var_r26] & 0x100; } @@ -450,7 +465,8 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) { lbl_1_bss_14E += 1; BoardModelVisibilitySet(arg1->unk_06[0], 1); BoardModelRotYSet(arg1->unk_06[0], BoardPlayerRotYGet(arg1->unk00_bit5)); - } else { + } + else { arg0->trans.x *= 0.98f; arg0->trans.y = 0.0f; if (arg0->trans.x <= 1.0f) { @@ -477,15 +493,10 @@ void fn_1_8698(omObjData* arg0, someBits3* arg1) { } s8 lbl_1_data_4B0 = -1; -s32 lbl_1_data_4B4[] = { - 0x00000440, - 0x00000441, - 0x00000442, - 0x00000443, - 0x00000444 -}; +s32 lbl_1_data_4B4[] = { 0x00000440, 0x00000441, 0x00000442, 0x00000443, 0x00000444 }; -void fn_1_8C08(omObjData* arg0, someBits3* arg1) { +void fn_1_8C08(omObjData *arg0, someBits3 *arg1) +{ Point3d spC; f32 temp_f31; f32 temp_f30; @@ -520,7 +531,8 @@ void fn_1_8C08(omObjData* arg0, someBits3* arg1) { BoardPlayerMotionTimeSet(arg1->unk00_bit5, 2.0f * temp_f30); } -void fn_1_8E44(omObjData* arg0, someBits3* arg1) { +void fn_1_8E44(omObjData *arg0, someBits3 *arg1) +{ Point3d sp8; f32 temp_f1; f32 temp_f31; @@ -558,7 +570,8 @@ void fn_1_8E44(omObjData* arg0, someBits3* arg1) { BoardModelPosSetV(lbl_1_data_456, &sp8); } -void fn_1_9044(omObjData* arg0, someBits3* arg1) { +void fn_1_9044(omObjData *arg0, someBits3 *arg1) +{ Vec sp8; BoardModelRotGet(lbl_1_data_456, &sp8); @@ -580,9 +593,10 @@ void fn_1_9044(omObjData* arg0, someBits3* arg1) { BoardModelRotSetV(lbl_1_data_456, &sp8); } -s8 lbl_1_data_4C8[] = {1, 5, 10, 15, 20, 20}; +s8 lbl_1_data_4C8[] = { 1, 5, 10, 15, 20, 20 }; -void fn_1_91B8(void) { +void fn_1_91B8(void) +{ s8 temp_r3; if (lbl_1_bss_14E == 0) { @@ -593,7 +607,8 @@ void fn_1_91B8(void) { lbl_1_bss_14C = lbl_1_data_4C8[temp_r3]; } -void fn_1_9230(s32 arg0) { +void fn_1_9230(s32 arg0) +{ Point3d sp20; Point3d sp14; Point3d sp8; @@ -620,20 +635,22 @@ void fn_1_9230(s32 arg0) { BoardCameraMotionWait(); } -void fn_1_9384(void) { +void fn_1_9384(void) +{ f32 widthHeight[2]; f32 x, y; - HuWinMesMaxSizeGet(1, widthHeight, 0x160019); + HuWinMesMaxSizeGet(1, widthHeight, MAKE_MESSID(0x16, 0x19)); x = -10000.0f; y = 288.0f; lbl_1_data_454 = HuWinCreate(x, y, widthHeight[0], widthHeight[1], 0); HuWinBGTPLvlSet(lbl_1_data_454, 0.0f); HuWinMesSpeedSet(lbl_1_data_454, 0); - HuWinMesSet(lbl_1_data_454, 0x160019U); + HuWinMesSet(lbl_1_data_454, MAKE_MESSID(0x16, 0x19)); } -void fn_1_9474(s32 arg0) { +void fn_1_9474(s32 arg0) +{ sprintf(lbl_1_bss_150, "%d", lbl_1_bss_14C); BoardWinCreate(2, MAKE_MESSID(22, 23), 2); BoardWinInsertMesSet((u32)lbl_1_bss_150, 4); @@ -664,14 +681,15 @@ void fn_1_9474(s32 arg0) { BoardModelMotionStart(lbl_1_bss_C[7], 0, 0x40000002); } -void fn_1_95B8(omObjData* arg0) { +void fn_1_95B8(omObjData *arg0) +{ f32 temp_f31; s32 var_r25; s32 var_r26; s32 var_r27; s32 var_r28; - unkTemp* var_r30; - unkTemp2* temp_r29; + unkTemp *var_r30; + unkTemp2 *temp_r29; s32 i; s32 temp; @@ -679,14 +697,14 @@ void fn_1_95B8(omObjData* arg0) { if ((temp_r29->unk00_bit0 != 0) || (BoardIsKill() != 0)) { fn_1_9A1C(temp_r29); - HuMemDirectFree((void*)temp_r29->unk_0C); + HuMemDirectFree((void *)temp_r29->unk_0C); lbl_1_bss_148 = 0; omDelObjEx(HuPrcCurrentGet(), arg0); return; } var_r30 = temp_r29->unk_0C; - + for (var_r27 = i = 0; i < 20; i++, var_r30++) { if (var_r30->unk0 == 0) { var_r27++; @@ -697,7 +715,7 @@ void fn_1_95B8(omObjData* arg0) { temp_r29->unk00_bit0 = 1; return; } - + var_r25 = 0; for (i = 0; i < 20; i++) { var_r30 = &temp_r29->unk_0C[i]; @@ -725,23 +743,23 @@ void fn_1_95B8(omObjData* arg0) { } } - -void fn_1_97F8(s32 arg0) { +void fn_1_97F8(s32 arg0) +{ Point3d sp8; f32 temp_f2; f32 var_f31; f64 temp_f1; - omObjData* temp_r3; + omObjData *temp_r3; s32 i; - unkTemp2* temp_r30; - unkTemp* temp_r31; + unkTemp2 *temp_r30; + unkTemp *temp_r31; temp_r3 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_95B8); lbl_1_bss_148 = temp_r3; temp_r30 = OM_GET_WORK_PTR(temp_r3, unkTemp2); temp_r30->unk00_bit0 = 0; temp_r30->unk4 = arg0; - temp_r30->unk_0C = HuMemDirectMallocNum(0, 0x190, 0x10000000); + temp_r30->unk_0C = HuMemDirectMallocNum(0, 0x190, MEMORY_DEFAULT_NUM); BoardPlayerPosGet(arg0, &sp8); temp_r30->unk8 = (80.0f + sp8.y); memset(temp_r30->unk_0C, 0, 0x190); @@ -749,7 +767,8 @@ void fn_1_97F8(s32 arg0) { for (i = 0; i < lbl_1_bss_14C; i++) { if (i == 0) { var_f31 = 0.0f; - } else { + } + else { var_f31 = BoardRandFloat(); } temp_r31 = &temp_r30->unk_0C[i]; @@ -759,13 +778,14 @@ void fn_1_97F8(s32 arg0) { temp_r31->unk8.y = 600.0f + sp8.y + (500.0f * BoardRandFloat()); temp_r31->unk1 = 0; temp_r31->unk4 = BoardRandFloat() * 360.0f; - temp_r31->unk_02 = BoardModelCreate(0x7000A, NULL, 1); + temp_r31->unk_02 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1); } } -void fn_1_9A1C(unkTemp2* arg0) { +void fn_1_9A1C(unkTemp2 *arg0) +{ s32 i; - unkTemp* temp; + unkTemp *temp; for (i = 0; i < 20; i++) { temp = &arg0->unk_0C[i]; diff --git a/src/REL/w03Dll/mg_item.c b/src/REL/w03Dll/mg_item.c index 2644f97b..0e0c6249 100644 --- a/src/REL/w03Dll/mg_item.c +++ b/src/REL/w03Dll/mg_item.c @@ -1,25 +1,25 @@ -#include "dolphin.h" #include "REL/executor.h" -#include "game/process.h" -#include "game/data.h" -#include "game/gamework_data.h" #include "REL/w03Dll.h" +#include "dolphin.h" +#include "dolphin/os/OSFastCast.h" +#include "ext_math.h" #include "game/board/main.h" #include "game/board/model.h" +#include "game/board/player.h" #include "game/board/space.h" +#include "game/data.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" -#include "game/sprite.h" -#include "game/board/player.h" -#include "math.h" -#include "game/hsfman.h" -#include "dolphin/os/OSFastCast.h" -#include "game/minigame_seq.h" -#include "game/hsfdraw.h" -#include "game/hsfmotion.h" #include "game/pad.h" -#include "game/frand.h" -#include "ext_math.h" +#include "game/process.h" +#include "game/sprite.h" +#include "math.h" typedef struct someBits { /* 0x00 */ struct { @@ -58,11 +58,11 @@ typedef struct w03UnkMG { /* 0x16 */ s16 unk_16; } w03UnkMG; -//external symbols +// external symbols extern u16 HuPadBtnDown[4]; -//function signatures +// function signatures s32 BoardVecDAngleCalcRange(float *value, float min, float range); void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix); @@ -70,23 +70,23 @@ void fn_1_BDAC(void); void fn_1_BC7C(s16 arg0); void fn_1_BBF8(void); s32 fn_1_BBC4(void); -void fn_1_BB74(s8* arg0); +void fn_1_BB74(s8 *arg0); s32 fn_1_BB48(void); void fn_1_B8E8(s32 arg0); -void fn_1_B748(omObjData* arg0, someBits2* arg1); -void fn_1_B688(omObjData* arg0, someBits2* arg1); -void fn_1_B4AC(omObjData* arg0, someBits2* arg1); -void fn_1_B350(omObjData* arg0); +void fn_1_B748(omObjData *arg0, someBits2 *arg1); +void fn_1_B688(omObjData *arg0, someBits2 *arg1); +void fn_1_B4AC(omObjData *arg0, someBits2 *arg1); +void fn_1_B350(omObjData *arg0); void fn_1_B0A4(s32 arg0); u32 fn_1_AF24(s32 arg0); -s32 fn_1_AE4C(s32 arg0, s8* arg1); +s32 fn_1_AE4C(s32 arg0, s8 *arg1); s32 fn_1_AE20(void); void fn_1_ACD8(s32 arg0); -void fn_1_ABD0(omObjData* arg0, someBits* arg1); -void fn_1_AB18(omObjData* arg0, someBits* arg1); +void fn_1_ABD0(omObjData *arg0, someBits *arg1); +void fn_1_AB18(omObjData *arg0, someBits *arg1); void fn_1_A8AC(s32 arg0); void fn_1_A7A0(s32 arg0); -void fn_1_A994(omObjData* arg0); +void fn_1_A994(omObjData *arg0); void fn_1_A5E0(s32 arg0); void fn_1_A6B0(void); void fn_1_A44C(s32 arg0); @@ -96,17 +96,15 @@ s32 fn_1_9CF4(s32 arg0); void fn_1_9F78(void); void fn_1_9FE4(void); -//data +// data s16 lbl_1_data_4D8 = -1; s16 lbl_1_data_4DA = -1; s16 lbl_1_data_4DC = -1; s32 lbl_1_data_4E0 = -1; s16 lbl_1_data_4E4 = -1; -s8 lbl_1_data_4E6[] = {1, 1, 3, 3, 2, 2, 2, 1, 2, 3, 0, 4, 5, 0}; +s8 lbl_1_data_4E6[] = { 1, 1, 3, 3, 2, 2, 2, 1, 2, 3, 0, 4, 5, 0 }; -char* lbl_1_data_508[] = { - "item", "item1", "item2" -}; +char *lbl_1_data_508[] = { "item", "item1", "item2" }; s32 lbl_1_data_514[] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), @@ -125,23 +123,23 @@ s32 lbl_1_data_514[] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x7B), }; -//BSS +// BSS s8 lbl_1_bss_194[3]; -AnimData* lbl_1_bss_190; +AnimData *lbl_1_bss_190; s8 lbl_1_bss_18C; -omObjData* lbl_1_bss_188; -omObjData* lbl_1_bss_184; -Process* lbl_1_bss_180; +omObjData *lbl_1_bss_188; +omObjData *lbl_1_bss_184; +Process *lbl_1_bss_180; -void fn_1_9A7C(void) { +void fn_1_9A7C(void) +{ fn_1_BBF8(); } -void fn_1_9A9C(void) { +void fn_1_9A9C(void) { } -} - -void fn_1_9AA0(void) { +void fn_1_9AA0(void) +{ BoardRollDispSet(0); lbl_1_bss_180 = HuPrcChildCreate(fn_1_9C8C, 0x2003, 0x2000, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_180, fn_1_9B30); @@ -153,7 +151,8 @@ void fn_1_9AA0(void) { BoardRollDispSet(1); } -void fn_1_9B30(void) { +void fn_1_9B30(void) +{ fn_1_BDAC(); if (lbl_1_bss_188) { @@ -173,7 +172,7 @@ void fn_1_9B30(void) { BoardModelMotionKill(lbl_1_bss_C[11], lbl_1_data_4DC); lbl_1_data_4DC = -1; } - + if (lbl_1_data_4DA != -1) { BoardModelMotionKill(lbl_1_bss_C[11], lbl_1_data_4DA); lbl_1_data_4DA = -1; @@ -187,7 +186,8 @@ void fn_1_9B30(void) { lbl_1_bss_180 = 0; } -void fn_1_9C8C(void) { +void fn_1_9C8C(void) +{ s32 temp_r31; temp_r31 = GWSystem.player_curr; @@ -201,7 +201,8 @@ void fn_1_9C8C(void) { HuPrcEnd(); } -s32 fn_1_9CF4(s32 arg0) { +s32 fn_1_9CF4(s32 arg0) +{ Vec sp38; Vec sp2C; Vec sp20; @@ -248,7 +249,7 @@ s32 fn_1_9CF4(s32 arg0) { BoardSpacePosGet(0, temp_r29, &sp38); PSVECSubtract(&sp38, &sp2C, &sp20); PSVECNormalize(&sp20, &sp20); - BoardPlayerRotYSet(arg0, (f32) (180.0 * (atan2(-sp20.x, -sp20.z) / M_PI))); + BoardPlayerRotYSet(arg0, (f32)(180.0 * (atan2(-sp20.x, -sp20.z) / M_PI))); BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 0x14); while (GWPlayer[arg0].moving != 0) { @@ -264,12 +265,14 @@ s32 fn_1_9CF4(s32 arg0) { return 1; } -void fn_1_9F78(void) { - lbl_1_data_4DA = BoardModelMotionCreate(lbl_1_bss_C[11], 0x770023); - lbl_1_data_4DC = BoardModelMotionCreate(lbl_1_bss_C[11], 0x770024); +void fn_1_9F78(void) +{ + lbl_1_data_4DA = BoardModelMotionCreate(lbl_1_bss_C[11], DATA_MAKE_NUM(DATADIR_W03, 0x23)); + lbl_1_data_4DC = BoardModelMotionCreate(lbl_1_bss_C[11], DATA_MAKE_NUM(DATADIR_W03, 0x24)); } -void fn_1_9FE4(void) { +void fn_1_9FE4(void) +{ Vec sp30; Vec sp24; Vec sp18; @@ -340,7 +343,8 @@ void fn_1_9FE4(void) { BoardModelMotionShiftSet(lbl_1_bss_C[11], 1, 0.0f, 10.0, 0x40000001); } -void fn_1_A44C(s32 arg0) { +void fn_1_A44C(s32 arg0) +{ s16 temp_r30; s32 temp_r29; s32 temp_r28; @@ -391,7 +395,8 @@ void fn_1_A44C(s32 arg0) { BoardWinKill(); } -void fn_1_A5E0(s32 arg0) { +void fn_1_A5E0(s32 arg0) +{ Vec sp14; Vec sp8; s16 spaceCur; @@ -409,26 +414,28 @@ void fn_1_A5E0(s32 arg0) { BoardCameraMotionWait(); } -void fn_1_A6B0(void) { +void fn_1_A6B0(void) +{ f32 sp8[2]; f32 val1, val2; - HuWinMesMaxSizeGet(1, sp8, 0x16001F); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x16, 0x1F)); val1 = -10000.0f; val2 = 392.0f; lbl_1_data_4D8 = HuWinCreate(val1, val2, sp8[0], sp8[1], 0); HuWinBGTPLvlSet(lbl_1_data_4D8, 0.0f); HuWinMesSpeedSet(lbl_1_data_4D8, 0); - HuWinMesSet(lbl_1_data_4D8, 0x16001F); + HuWinMesSet(lbl_1_data_4D8, MAKE_MESSID(0x16, 0x1F)); } -void fn_1_A7A0(s32 arg0) { - someBits* temp_r31; - omObjData* temp_r3; +void fn_1_A7A0(s32 arg0) +{ + someBits *temp_r31; + omObjData *temp_r3; - temp_r3 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, (void*)fn_1_A994); + temp_r3 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, (void *)fn_1_A994); lbl_1_bss_188 = temp_r3; - temp_r31 = (someBits*)&temp_r3->work[0]; + temp_r31 = (someBits *)&temp_r3->work[0]; temp_r31->unk00_bit0 = 0; temp_r31->unk00_bit6 = 0; temp_r31->unk00_bit4 = arg0; @@ -440,7 +447,8 @@ void fn_1_A7A0(s32 arg0) { lbl_1_bss_18C = fn_1_AE4C(arg0, lbl_1_bss_194); } -void fn_1_A8AC(s32 arg0) { +void fn_1_A8AC(s32 arg0) +{ Vec sp14; Vec sp8; f32 playerYRot; @@ -462,18 +470,19 @@ void fn_1_A8AC(s32 arg0) { } } -void fn_1_A994(omObjData* arg0) { +void fn_1_A994(omObjData *arg0) +{ s32 temp_r0; - someBits* temp_r31; + someBits *temp_r31; - temp_r31 = (someBits*)&lbl_1_bss_188->work[0]; - if ((temp_r31->unk00_bit0 != 0)|| (BoardIsKill() != 0)) { + temp_r31 = (someBits *)&lbl_1_bss_188->work[0]; + if ((temp_r31->unk00_bit0 != 0) || (BoardIsKill() != 0)) { if (temp_r31->unk4 != -1) { MGSeqParamSet(temp_r31->unk4, 2, -1U); temp_r31->unk4 = -1; } lbl_1_bss_188 = NULL; - + omDelObjEx(HuPrcCurrentGet(), arg0); return; } @@ -481,10 +490,12 @@ void fn_1_A994(omObjData* arg0) { if (temp_r31->unk00_bit6 == 0) { if (temp_r31->unk2 != 0) { temp_r31->unk2--; - } else { + } + else { if (temp_r31->unk1 != 0) { temp_r31->unk1--; - } else { + } + else { fn_1_ACD8(2); } MGSeqParamSet(temp_r31->unk4, 1, temp_r31->unk1); @@ -493,27 +504,29 @@ void fn_1_A994(omObjData* arg0) { } switch (temp_r31->unk00_bit1) { - case 1: - fn_1_AB18(arg0, temp_r31); - return; - case 2: - fn_1_ABD0(arg0, temp_r31); - return; - case 3: - if (BoardPlayerMotionEndCheck(temp_r31->unk00_bit4) != 0) { - temp_r31->unk00_bit0 = 1; - } - case 0: - break; + case 1: + fn_1_AB18(arg0, temp_r31); + return; + case 2: + fn_1_ABD0(arg0, temp_r31); + return; + case 3: + if (BoardPlayerMotionEndCheck(temp_r31->unk00_bit4) != 0) { + temp_r31->unk00_bit0 = 1; + } + case 0: + break; } } -void fn_1_AB18(omObjData* arg0, someBits* arg1) { +void fn_1_AB18(omObjData *arg0, someBits *arg1) +{ u32 var_r31 = 0; if (GWPlayer[arg1->unk00_bit4].com != 0) { var_r31 = fn_1_AF24(arg1->unk00_bit4); - } else { + } + else { var_r31 = HuPadBtnDown[GWPlayer[arg1->unk00_bit4].port]; } if (var_r31 == 0x100) { @@ -521,14 +534,15 @@ void fn_1_AB18(omObjData* arg0, someBits* arg1) { } } -//TODO properly use inlines -void fn_1_ABD0(omObjData* arg0, someBits* arg1) { +// TODO properly use inlines +void fn_1_ABD0(omObjData *arg0, someBits *arg1) +{ s16 boardModelID; - PlayerState* playerStateCopy; + PlayerState *playerStateCopy; s32 bit; - PlayerState* playerState; + PlayerState *playerState; s16 temp, temp2; - + bit = arg1->unk00_bit4; playerState = &GWPlayer[bit]; playerStateCopy = playerState; @@ -551,40 +565,43 @@ void fn_1_ABD0(omObjData* arg0, someBits* arg1) { } } -void fn_1_ACD8(s32 arg0) { - someBits* temp_r31; +void fn_1_ACD8(s32 arg0) +{ + someBits *temp_r31; - temp_r31 = (someBits*)&lbl_1_bss_188->work[0]; + temp_r31 = (someBits *)&lbl_1_bss_188->work[0]; temp_r31->unk00_bit1 = arg0; switch (arg0) { - case 0: - BoardPlayerIdleSet(temp_r31->unk00_bit4); - return; - case 2: - temp_r31->unk00_bit6 = 1; - if (lbl_1_data_4D8 != -1) { - HuWinKill(lbl_1_data_4D8); - lbl_1_data_4D8 = -1; - } - if (temp_r31->unk4 != -1) { - MGSeqParamSet(temp_r31->unk4, 2, -1U); - temp_r31->unk4 = -1; - } - BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 0xB, 0.0f, 10.0f, 0); - return; - case 3: - BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 7, 0.0f, 10.0f, 0); - break; + case 0: + BoardPlayerIdleSet(temp_r31->unk00_bit4); + return; + case 2: + temp_r31->unk00_bit6 = 1; + if (lbl_1_data_4D8 != -1) { + HuWinKill(lbl_1_data_4D8); + lbl_1_data_4D8 = -1; + } + if (temp_r31->unk4 != -1) { + MGSeqParamSet(temp_r31->unk4, 2, -1U); + temp_r31->unk4 = -1; + } + BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 0xB, 0.0f, 10.0f, 0); + return; + case 3: + BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 7, 0.0f, 10.0f, 0); + break; } } -s32 fn_1_AE20(void) { - someBits* temp_r31 = (someBits*)&lbl_1_bss_188->work[0]; +s32 fn_1_AE20(void) +{ + someBits *temp_r31 = (someBits *)&lbl_1_bss_188->work[0]; return temp_r31->unk00_bit1; } -s32 fn_1_AE4C(s32 arg0, s8* arg1) { +s32 fn_1_AE4C(s32 arg0, s8 *arg1) +{ s32 temp_r30; s32 temp_r29; s32 temp_r28; @@ -597,23 +614,29 @@ s32 fn_1_AE4C(s32 arg0, s8* arg1) { if (temp_r29 > temp_r28) { if (temp_r29 > temp_r30) { var_r31 = 0; - } else if (temp_r30 > temp_r28) { + } + else if (temp_r30 > temp_r28) { var_r31 = 2; - } else { + } + else { var_r31 = 1; } - } else if (temp_r28 > temp_r30) { + } + else if (temp_r28 > temp_r30) { var_r31 = 1; - } else if (temp_r30 > temp_r29) { + } + else if (temp_r30 > temp_r29) { var_r31 = 2; - } else { + } + else { var_r31 = 0; } return var_r31; } -u32 fn_1_AF24(s32 arg0) { +u32 fn_1_AF24(s32 arg0) +{ s32 spC; s32 sp8; s16 temp_r31; @@ -623,18 +646,18 @@ u32 fn_1_AF24(s32 arg0) { spC = 0; switch (GWPlayer[arg0].diff) { - case 3: - var_r30 = 0; - break; - case 2: - var_r30 = 5; - break; - case 1: - var_r30 = 15; - break; - case 0: - var_r30 = 40; - break; + case 3: + var_r30 = 0; + break; + case 2: + var_r30 = 5; + break; + case 1: + var_r30 = 15; + break; + case 0: + var_r30 = 40; + break; } if ((var_r30 != 0) && (BoardRandMod(100) < var_r30)) { return 0x100U; @@ -643,38 +666,39 @@ u32 fn_1_AF24(s32 arg0) { temp_r31 = BoardModelMotionTimeGet(lbl_1_bss_C[9]); switch (lbl_1_bss_18C) { - case 0: - if ((temp_r31 < 33) || (temp_r31 > 35)) { + case 0: + if ((temp_r31 < 33) || (temp_r31 > 35)) { + break; + } + return 0x100U; + case 1: + if (((temp_r31 >= 40) && (temp_r31 <= 42)) || ((temp_r31 >= 20) && (temp_r31 <= 22))) { + return 0x100U; + } + break; + case 2: + if (temp_r31 >= 50) { + return 0x100U; + } break; - } - return 0x100U; - case 1: - if (((temp_r31 >= 40) && (temp_r31 <= 42)) || ((temp_r31 >= 20) && (temp_r31 <= 22))) { - return 0x100U; - } - break; - case 2: - if (temp_r31 >= 50) { - return 0x100U; - } - break; } return 0; } -void fn_1_B0A4(s32 arg0) { +void fn_1_B0A4(s32 arg0) +{ Mtx sp18; s32 spC[3]; s32 j; s32 i; s32 var_r31_2; s32 temp_r29; - someBits2* temp_r30; - omObjData* temp_r3; + someBits2 *temp_r30; + omObjData *temp_r3; - temp_r3 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, (void*)fn_1_B350); - lbl_1_bss_184 = (void*)temp_r3; - temp_r30 = (someBits2*)&temp_r3->work[0]; + temp_r3 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, (void *)fn_1_B350); + lbl_1_bss_184 = (void *)temp_r3; + temp_r30 = (someBits2 *)&temp_r3->work[0]; temp_r30->unk00_bit0 = 0; temp_r30->unk00_bit1 = 0; @@ -691,14 +715,15 @@ void fn_1_B0A4(s32 arg0) { if (spC[i] == -1) { continue; } - } else { + } + else { continue; } i++; } - + fn_1_BBF8(); - + for (i = 0; i < ARRAY_COUNT(spC); i++) { temp_r29 = spC[i]; temp_r30->unk3[i] = temp_r29; @@ -722,11 +747,12 @@ void fn_1_B0A4(s32 arg0) { } } -void fn_1_B350(omObjData* arg0) { +void fn_1_B350(omObjData *arg0) +{ s32 i; - someBits2* temp_r31; + someBits2 *temp_r31; - temp_r31 = (someBits2*)&arg0->work[0]; + temp_r31 = (someBits2 *)&arg0->work[0]; if ((temp_r31->unk00_bit0 != 0) || (BoardIsKill() != 0)) { BoardModelHookReset(lbl_1_bss_C[9]); @@ -740,27 +766,28 @@ void fn_1_B350(omObjData* arg0) { } switch (temp_r31->unk00_bit1) { - case 1: - if (!(BoardModelMotionTimeGet(lbl_1_bss_C[9]) < 20.0f)) { - BoardModelMotionStartEndSet(lbl_1_bss_C[9], 0x14, 0x3A); - fn_1_B8E8(0); + case 1: + if (!(BoardModelMotionTimeGet(lbl_1_bss_C[9]) < 20.0f)) { + BoardModelMotionStartEndSet(lbl_1_bss_C[9], 0x14, 0x3A); + fn_1_B8E8(0); + return; + } + case 0: + break; + case 2: + fn_1_B4AC(arg0, temp_r31); return; - } - case 0: - break; - case 2: - fn_1_B4AC(arg0, temp_r31); - return; - case 3: - fn_1_B688(arg0, temp_r31); - return; - case 4: - fn_1_B748(arg0, temp_r31); - break; + case 3: + fn_1_B688(arg0, temp_r31); + return; + case 4: + fn_1_B748(arg0, temp_r31); + break; } } -void fn_1_B4AC(omObjData* arg0, someBits2* arg1) { +void fn_1_B4AC(omObjData *arg0, someBits2 *arg1) +{ Point3d sp20; Point3d sp14; Point3d sp8; @@ -778,7 +805,7 @@ void fn_1_B4AC(omObjData* arg0, someBits2* arg1) { sp8 = sp20; arg1->unk2 = i; break; - } + } } HuAudFXPlay(0x30C); @@ -792,7 +819,8 @@ void fn_1_B4AC(omObjData* arg0, someBits2* arg1) { fn_1_BC7C(arg1->unk_06[arg1->unk2]); } -void fn_1_B688(omObjData* arg0, someBits2* arg1) { +void fn_1_B688(omObjData *arg0, someBits2 *arg1) +{ Point3d sp8; if (arg1->unk1-- != 0) { @@ -806,8 +834,9 @@ void fn_1_B688(omObjData* arg0, someBits2* arg1) { fn_1_B8E8(0); } - -void fn_1_B748(omObjData* arg0, someBits2* arg1) { + +void fn_1_B748(omObjData *arg0, someBits2 *arg1) +{ Vec sp14; Point3d sp8; f32 temp_f0; @@ -820,7 +849,7 @@ void fn_1_B748(omObjData* arg0, someBits2* arg1) { } if (arg1->unk1 < 90) { - OSu8tof32((u8*)&arg1->unk1, &temp_f0); + OSu8tof32((u8 *)&arg1->unk1, &temp_f0); BoardModelPosGet(temp_r29, &sp8); sp8.y += arg0->trans.y; BoardModelPosSetV(temp_r29, &sp8); @@ -840,76 +869,81 @@ void fn_1_B748(omObjData* arg0, someBits2* arg1) { fn_1_B8E8(0); } -void fn_1_B8E8(s32 arg0) { +void fn_1_B8E8(s32 arg0) +{ Point3d sp14; Point3d sp8; f32 temp_f31; - someBits2* temp_r31; + someBits2 *temp_r31; f32 temp; - temp_r31 = (someBits2*)&lbl_1_bss_184->work[0]; + temp_r31 = (someBits2 *)&lbl_1_bss_184->work[0]; temp_r31->unk00_bit1 = arg0; switch (arg0) { - case 1: - temp_f31 = 0.31666666f; - BoardModelMotionStart(lbl_1_bss_C[9], 0, 0x40000001); - BoardModelMotionSpeedSet(lbl_1_bss_C[9], temp_f31); - BoardModelMotionTimeSet(lbl_1_bss_C[9], 8.0f); - return; - case 2: - temp_r31->unk00_bit6 = 1; - return; - case 3: - lbl_1_data_4E0 = HuAudFXPlay(0x35F); - BoardModelPosGet(temp_r31->unk_06[temp_r31->unk2], &sp8); - BoardPlayerPosGet(temp_r31->unk00_bit4, &sp14); - temp = 50.0f + sp8.y; - lbl_1_bss_184->trans.x = (sp14.x - sp8.x) / 10.0f; - lbl_1_bss_184->trans.z = (sp14.z - sp8.z) / 10.0f; - lbl_1_bss_184->trans.y = (temp - sp8.y) / 10.0f; - temp_r31->unk1 = 10; - return; - case 4: - BoardPlayerPosGet(temp_r31->unk00_bit4, &sp14); - sp14.y += 30.000002f; - BoardModelPosGet(temp_r31->unk_06[temp_r31->unk2], &sp8); - lbl_1_bss_184->trans.y = (sp14.y - sp8.y) / 22.0f; - temp_r31->unk1 = 0; + case 1: + temp_f31 = 0.31666666f; + BoardModelMotionStart(lbl_1_bss_C[9], 0, 0x40000001); + BoardModelMotionSpeedSet(lbl_1_bss_C[9], temp_f31); + BoardModelMotionTimeSet(lbl_1_bss_C[9], 8.0f); + return; + case 2: + temp_r31->unk00_bit6 = 1; + return; + case 3: + lbl_1_data_4E0 = HuAudFXPlay(0x35F); + BoardModelPosGet(temp_r31->unk_06[temp_r31->unk2], &sp8); + BoardPlayerPosGet(temp_r31->unk00_bit4, &sp14); + temp = 50.0f + sp8.y; + lbl_1_bss_184->trans.x = (sp14.x - sp8.x) / 10.0f; + lbl_1_bss_184->trans.z = (sp14.z - sp8.z) / 10.0f; + lbl_1_bss_184->trans.y = (temp - sp8.y) / 10.0f; + temp_r31->unk1 = 10; + return; + case 4: + BoardPlayerPosGet(temp_r31->unk00_bit4, &sp14); + sp14.y += 30.000002f; + BoardModelPosGet(temp_r31->unk_06[temp_r31->unk2], &sp8); + lbl_1_bss_184->trans.y = (sp14.y - sp8.y) / 22.0f; + temp_r31->unk1 = 0; } } -s32 fn_1_BB48(void) { - someBits2* temp = (someBits2*)&lbl_1_bss_184->work[0]; +s32 fn_1_BB48(void) +{ + someBits2 *temp = (someBits2 *)&lbl_1_bss_184->work[0]; return temp->unk00_bit1; } -void fn_1_BB74(s8* arg0) { - someBits2* bits = OM_GET_WORK_PTR(lbl_1_bss_184, someBits2); +void fn_1_BB74(s8 *arg0) +{ + someBits2 *bits = OM_GET_WORK_PTR(lbl_1_bss_184, someBits2); s32 i; - + for (i = 0; i < ARRAY_COUNT(bits->unk3); i++) { arg0[i] = bits->unk3[i]; } } -s32 fn_1_BBC4(void) { - someBits2* bits = OM_GET_WORK_PTR(lbl_1_bss_184, someBits2); +s32 fn_1_BBC4(void) +{ + someBits2 *bits = OM_GET_WORK_PTR(lbl_1_bss_184, someBits2); return bits->unk3[bits->unk2]; } -void fn_1_BBF8(void) { +void fn_1_BBF8(void) +{ BoardModelMotionStart(lbl_1_bss_C[9], 0, 0); BoardModelMotionSpeedSet(lbl_1_bss_C[9], 0.0f); BoardModelMotionTimeSet(lbl_1_bss_C[9], 0.0f); BoardModelAttrReset(lbl_1_bss_C[9], 0x40000004); } +void fn_1_BC7C(s16 arg0) +{ + ParticleData *particle; -void fn_1_BC7C(s16 arg0) { - ParticleData* particle; - - lbl_1_bss_190 = HuSprAnimReadFile(0x120000); + lbl_1_bss_190 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0x00)); HuSprAnimLock(lbl_1_bss_190); lbl_1_data_4E4 = Hu3DParticleCreate(lbl_1_bss_190, 100); Hu3DParticleHookSet(lbl_1_data_4E4, fn_1_BE30); @@ -921,7 +955,8 @@ void fn_1_BC7C(s16 arg0) { particle->unk_02 = arg0; } -void fn_1_BDAC(void) { +void fn_1_BDAC(void) +{ if (lbl_1_data_4E4 != -1) { Hu3DModelKill(lbl_1_data_4E4); lbl_1_data_4E4 = -1; @@ -932,12 +967,13 @@ void fn_1_BDAC(void) { } } -void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix) { +void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix) +{ Point3d sp8; f32 temp_f30; f32 temp_f29; f32 temp_f31; - HsfanimStruct01* var_r31; + HsfanimStruct01 *var_r31; s32 i, j; if (particle->unk_34 == 0) { @@ -961,20 +997,20 @@ void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix) { } } if (j != particle->unk_30) { - temp_f30 = 360.0f * ((1.0f/255.0f) * frand8()); - temp_f29 = temp_f31 * (20.0f + (60.0f * ((1.0f/255.0f) * frand8()))); + temp_f30 = 360.0f * ((1.0f / 255.0f) * frand8()); + temp_f29 = temp_f31 * (20.0f + (60.0f * ((1.0f / 255.0f) * frand8()))); var_r31->unk34.x = (sp8.x + (temp_f29 * sind(temp_f30))); var_r31->unk34.z = (sp8.z + (temp_f29 * cosd(temp_f30))); - var_r31->unk34.y = (sp8.y + (temp_f31 * (-30.0f + (40.0f * ((1.0f/255.0f) * frand8()))))); - var_r31->unk08.x = (0.5f + (3.0f * ((1.0f/255.0f) * frand8()))); - var_r31->unk08.y = (0.3f + (2.0f * ((1.0f/255.0f) * frand8()))); + var_r31->unk34.y = (sp8.y + (temp_f31 * (-30.0f + (40.0f * ((1.0f / 255.0f) * frand8()))))); + var_r31->unk08.x = (0.5f + (3.0f * ((1.0f / 255.0f) * frand8()))); + var_r31->unk08.y = (0.3f + (2.0f * ((1.0f / 255.0f) * frand8()))); var_r31->unk40.a = 180; - var_r31->unk2C = (15.0f * temp_f31); + var_r31->unk2C = (15.0f * temp_f31); } } var_r31 = particle->unk_48; - + for (i = 0; i < particle->unk_30; i++, var_r31++) { if (0.0f != var_r31->unk2C) { var_r31->unk34.y = (var_r31->unk34.y - var_r31->unk08.x); @@ -982,6 +1018,6 @@ void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix) { if (var_r31->unk2C <= 0.0f) { var_r31->unk2C = 0.0f; } - } + } } } diff --git a/src/REL/w03Dll/river.c b/src/REL/w03Dll/river.c index 99d0aeda..115c33dd 100644 --- a/src/REL/w03Dll/river.c +++ b/src/REL/w03Dll/river.c @@ -43,10 +43,10 @@ s16 lbl_1_data_388 = -1; s16 lbl_1_data_38A = -1; s16 lbl_1_data_38C = -1; s32 lbl_1_data_390[] = { - 0x00770026, - 0x00770027, - 0x00770028, - -1 + DATA_MAKE_NUM(DATADIR_W03, 0x26), + DATA_MAKE_NUM(DATADIR_W03, 0x27), + DATA_MAKE_NUM(DATADIR_W03, 0x28), + DATA_NUM_LISTEND }; void fn_1_63F4(s32 arg0) { @@ -70,8 +70,8 @@ void fn_1_6494(void) { Vec sp8; unkWorkStruct* temp_r31; - lbl_1_data_388 = BoardModelCreate(0x77000E, NULL, 0); - lbl_1_data_38C = BoardModelCreate(0x77000F, NULL, 0); + lbl_1_data_388 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0E), NULL, 0); + lbl_1_data_38C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0F), NULL, 0); lbl_1_data_38A = BoardModelCreate(0x2000D, &lbl_1_data_390[0], 0); BoardModelMotionStart(lbl_1_data_38A, 1, 0x40000001); BoardModelHookSet(lbl_1_data_38A, "itemhook_R", lbl_1_data_38C); diff --git a/src/REL/w03Dll/smoke.c b/src/REL/w03Dll/smoke.c index ae32fa76..0fcdeda3 100644 --- a/src/REL/w03Dll/smoke.c +++ b/src/REL/w03Dll/smoke.c @@ -31,7 +31,7 @@ void fn_1_785C(void) { lbl_1_bss_138[0] = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_79E0); temp_r31 = (w03UnkWorkStruct*)&lbl_1_bss_138[0]->work[0]; for (i = 0; i < ARRAY_COUNT(temp_r31->unk_00); i++) { - temp_r31->unk_00[i] = BoardModelCreate(0x770008, NULL, 0); + temp_r31->unk_00[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x08), NULL, 0); temp_r29 = kemuri_strings[i]; if (0.0f == temp_r31->unk_0C) { diff --git a/src/REL/w03Dll/statue.c b/src/REL/w03Dll/statue.c index ac985685..82c73f4c 100644 --- a/src/REL/w03Dll/statue.c +++ b/src/REL/w03Dll/statue.c @@ -371,7 +371,7 @@ void fn_1_1ED4(s32 arg0) { Point3d spC; f32 sp8; - lbl_1_data_284 = BoardModelCreate(0x77000C, NULL, 0); + lbl_1_data_284 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0C), NULL, 0); BoardModelVisibilitySet(lbl_1_data_284, 0); BoardModelVisibilitySet(lbl_1_bss_6C, 0); BoardModelPosGet(lbl_1_bss_6C, &spC); @@ -418,7 +418,7 @@ void fn_1_20E0(s32 arg0) { f32 var_f31; s32 i; - lbl_1_data_284 = BoardModelCreate(0x77000D, NULL, 0); + lbl_1_data_284 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0D), NULL, 0); BoardModelVisibilitySet(lbl_1_data_284, 0); BoardModelVisibilitySet(lbl_1_bss_6C, 0); BoardModelPosGet(lbl_1_bss_6C, &spC); @@ -606,7 +606,7 @@ s32 fn_1_2930(s32 arg0) { void fn_1_2A40(void) { lbl_1_bss_30 = 0.0f; - lbl_1_bss_34 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x96000, 0x10000000U); + lbl_1_bss_34 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x96000, MEMORY_DEFAULT_NUM); lbl_1_data_286 = Hu3DHookFuncCreate((void*)&fn_1_2B44); Hu3DModelLayerSet(lbl_1_data_286, 3); } diff --git a/src/REL/w04Dll/boo_event.c b/src/REL/w04Dll/boo_event.c index 3a89e85b..3dadfc9d 100755 --- a/src/REL/w04Dll/boo_event.c +++ b/src/REL/w04Dll/boo_event.c @@ -163,7 +163,7 @@ static void fn_1_20EC(void) { } } for (i = 0; i < 3; i++) { - lbl_1_bss_F4[i] = BoardModelCreate(0x70000, NULL, 1); + lbl_1_bss_F4[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x00), NULL, 1); BoardModelLayerSet(lbl_1_bss_F4[i], 2); BoardModelVisibilitySet(lbl_1_bss_F4[i], 0); } diff --git a/src/REL/w05Dll/dolphin.c b/src/REL/w05Dll/dolphin.c index 8115c637..14f7d66b 100644 --- a/src/REL/w05Dll/dolphin.c +++ b/src/REL/w05Dll/dolphin.c @@ -1,15 +1,15 @@ #include "REL/w05Dll.h" -#include "game/hsfdraw.h" #include "game/audio.h" -#include "game/objsub.h" -#include "game/frand.h" #include "game/chrman.h" +#include "game/frand.h" +#include "game/hsfdraw.h" +#include "game/objsub.h" +#include "game/board/audio.h" #include "game/board/model.h" #include "game/board/player.h" #include "game/board/window.h" -#include "game/board/audio.h" // bss s16 lbl_1_bss_72[2]; @@ -20,44 +20,60 @@ s16 lbl_1_bss_58[6]; // data char *lbl_1_data_22C[6] = { "orange1", "orange2", "pine2", "pine1", "suika1", "suika2" }; -s32 lbl_1_data_244[6] = { 0x00790027, 0x00790028, 0x00790029, 0x0079002A, 0x0079002B, 0xFFFFFFFF }; +s32 lbl_1_data_244[6] = { + DATA_MAKE_NUM(DATADIR_W05, 0x27), + DATA_MAKE_NUM(DATADIR_W05, 0x28), + DATA_MAKE_NUM(DATADIR_W05, 0x29), + DATA_MAKE_NUM(DATADIR_W05, 0x2A), + DATA_MAKE_NUM(DATADIR_W05, 0x2B), + DATA_NUM_LISTEND, +}; Vec lbl_1_data_25C[6] = { - { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, { 0.0f, 90.0f, 0.0f }, - { 0.0f, 0.0f, 0.0f }, - { 0.0f, 180.0f, 0.0f }, - { 0.0f, 270.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 180.0f, 0.0f }, + { 0.0f, 270.0f, 0.0f }, { 0.0f, 90.0f, 0.0f }, }; Vec lbl_1_data_2A4[6] = { - { 0.0f, 0.0f, 0.0f }, - { 0.0f, 0.0f, 0.0f }, - { 0.0f, 300.0f, 0.0f }, - { 0.0f, 450.0f, 0.0f }, - { 0.0f, 0.0f, 0.0f }, - { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 300.0f, 0.0f }, + { 0.0f, 450.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, }; s32 lbl_1_data_2EC[2] = { 0x76, 0x77 }; -s32 lbl_1_data_2F4[6] = { 0x0079002C, 0x0079002D, 0x0079002E, 0x0079002C, 0x0079002F, 0x00790030 }; +s32 lbl_1_data_2F4[6] = { + DATA_MAKE_NUM(DATADIR_W05, 0x2C), + DATA_MAKE_NUM(DATADIR_W05, 0x2D), + DATA_MAKE_NUM(DATADIR_W05, 0x2E), + DATA_MAKE_NUM(DATADIR_W05, 0x2C), + DATA_MAKE_NUM(DATADIR_W05, 0x2F), + DATA_MAKE_NUM(DATADIR_W05, 0x30), +}; -void fn_1_3F74(void) { +void fn_1_3F74(void) +{ s32 var_r31; BoardAudSeqPause(0, 1, 0x3E8); - + for (var_r31 = 0x3C; var_r31 != 0; var_r31--) { HuPrcVSleep(); } - + BoardMusStart(1, 0x24, 0x7F, 0); HuPrcEnd(); } -void fn_1_3FD8(void) { +void fn_1_3FD8(void) +{ s32 var_r31; BoardAudSeqFadeOut(1, 0x3E8); - + for (var_r31 = 0x3C; var_r31 != 0; var_r31--) { HuPrcVSleep(); } @@ -65,7 +81,8 @@ void fn_1_3FD8(void) { HuPrcEnd(); } -void fn_1_4034(s32 arg0) { +void fn_1_4034(s32 arg0) +{ Vec sp40; Vec sp34; Vec sp28; @@ -79,20 +96,20 @@ void fn_1_4034(s32 arg0) { s16 var_r30; s32 var_r27; BoardSpace *var_r25; - omObjData* temp_r24; + omObjData *temp_r24; BoardSpace *var_r28; s32 var_r31; s32 temp_r26; lbl_1_bss_68 = GWSystem.player_curr; sp10 = GWPlayer[lbl_1_bss_68].character; - + for (var_r31 = 0; var_r31 < 2; var_r31++) { lbl_1_bss_72[var_r31] = BoardPlayerMotionCreate(lbl_1_bss_68, lbl_1_data_2EC[var_r31] | lbl_1_data_124[GWPlayer[lbl_1_bss_68].character]); } - + for (var_r31 = 0; var_r31 < 3; var_r31++) { - lbl_1_bss_6C[var_r31] = BoardModelCreate(0x7000A, NULL, 1); + lbl_1_bss_6C[var_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1); BoardModelAttrSet(lbl_1_bss_6C[var_r31], 0x40000001); BoardModelVisibilitySet(lbl_1_bss_6C[var_r31], 0); } @@ -118,7 +135,7 @@ void fn_1_4034(s32 arg0) { } BoardPlayerIdleSet(lbl_1_bss_68); HuPrcSleep(8); - lbl_1_bss_64 = BoardModelCreate(0x790026, lbl_1_data_244, 0); + lbl_1_bss_64 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x26), lbl_1_data_244, 0); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_118), lbl_1_data_22C[arg0], &sp40); PSVECAdd(&sp40, &lbl_1_data_2A4[arg0], &sp40); BoardModelMotionStart(lbl_1_bss_64, 4, 0); @@ -126,7 +143,7 @@ void fn_1_4034(s32 arg0) { BoardModelPosSetV(lbl_1_bss_64, &sp40); BoardModelRotSetV(lbl_1_bss_64, &lbl_1_data_25C[arg0]); fn_1_66C0(0, &sp40); - + var_r30 = 0; while (BoardModelMotionTimeGet(lbl_1_bss_64) < BoardModelMotionMaxTimeGet(lbl_1_bss_64)) { if (BoardModelMotionTimeGet(lbl_1_bss_64) > 50.0f && var_r30 == 0) { @@ -157,7 +174,8 @@ void fn_1_4034(s32 arg0) { } if ((arg0 & 1) != 0) { var_r27 = arg0 - 1; - } else { + } + else { var_r27 = arg0 + 1; } Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_118), lbl_1_data_22C[var_r27], &sp34); @@ -167,7 +185,7 @@ void fn_1_4034(s32 arg0) { while (fn_1_1208(lbl_1_bss_64, temp_f25, 10.0f) == 0) { HuPrcVSleep(); } - + BoardPlayerPosGet(lbl_1_bss_68, &sp28); var_f27 = sqrtf(((sp40.x - sp28.x) * (sp40.x - sp28.x)) + ((sp40.z - sp28.z) * (sp40.z - sp28.z))); PSVECSubtract(&sp40, &sp28, &sp1C); @@ -176,7 +194,7 @@ void fn_1_4034(s32 arg0) { BoardPlayerMotionStart(lbl_1_bss_68, 4, 0); var_f26 = 0.0f; temp_f22 = 15.0f; - + loop_37: sp1C.y = temp_f22 - (0.075f * (0.25f * (var_f26 * var_f26))); var_f26++; @@ -190,28 +208,30 @@ loop_37: if (sp28.y <= 20.0f + sp40.y) { sp28.y = 20.0f + sp40.y; - } else { + } + else { BoardPlayerPosSetV(lbl_1_bss_68, &sp28); HuPrcVSleep(); goto loop_37; } BoardPlayerPosSetV(lbl_1_bss_68, &sp28); BoardPlayerMotionStart(lbl_1_bss_68, lbl_1_bss_72[0], 0); - + while (fn_1_1208(BoardPlayerModelGet(lbl_1_bss_68), temp_f25, 10.0f) == 0) { HuPrcVSleep(); } - + while (BoardPlayerMotionEndCheck(lbl_1_bss_68) == 0) { HuPrcVSleep(); } - + BoardPlayerMotionStart(lbl_1_bss_68, lbl_1_bss_72[1], 0x40000001); HuPrcSleep(0x12); temp_r24->work[1] = 1; if (arg0 < 4) { fn_1_4EB4(arg0, temp_r26, &sp34); - } else { + } + else { fn_1_5794(arg0, temp_r26, &sp34); } BoardModelPosGet(lbl_1_bss_64, &sp40); @@ -222,7 +242,7 @@ loop_37: while (BoardPlayerMotBlendCheck(lbl_1_bss_68) == 0) { HuPrcVSleep(); } - + fn_1_66C0(1, &sp40); BoardModelMotionShiftSet(lbl_1_bss_64, 5, 0.0f, 5.0f, 0); var_r30 = 0; @@ -272,7 +292,7 @@ loop_37: for (var_r31 = 0; var_r31 < 2; var_r31++) { BoardPlayerMotionKill(lbl_1_bss_68, lbl_1_bss_72[var_r31]); } - + fn_1_6670(); for (var_r31 = 0; var_r31 < 3; var_r31++) { @@ -280,7 +300,8 @@ loop_37: } } -void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) { +void fn_1_4EB4(s32 arg1, s32 arg2, Vec *arg3) +{ Vec sp3C; Vec sp30; Vec sp24; @@ -291,8 +312,8 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) { f32 var_f22; f32 var_f24; f32 var_f28; - omObjData* temp_r30; - omObjData* temp_r29; + omObjData *temp_r30; + omObjData *temp_r29; s32 temp_r28; temp_f23 = 10.0f; @@ -315,7 +336,8 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) { sp30.y += 20.0f; BoardPlayerPosSetV(lbl_1_bss_68, &sp30); break; - } else { + } + else { PSVECAdd(&sp3C, &sp24, &sp3C); BoardModelPosSetV(lbl_1_bss_64, &sp3C); sp30 = sp3C; @@ -336,17 +358,17 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) { while (BoardPlayerMotBlendCheck(lbl_1_bss_68) == 0) { HuPrcVSleep(); } - + BoardPlayerPosGet(lbl_1_bss_68, &sp30); var_f28 = sqrtf(((sp3C.x - sp30.x) * (sp3C.x - sp30.x)) + ((sp3C.z - sp30.z) * (sp3C.z - sp30.z))); PSVECSubtract(&sp3C, &sp30, &sp24); PSVECNormalize(&sp24, &sp24); PSVECScale(&sp24, &sp24, var_f28 / 45.0f); BoardPlayerMotionStart(lbl_1_bss_68, 4, 0); - + var_f24 = 0.0f; temp_f19 = 15.0f; - + while (1) { sp24.y = temp_f19 - (0.075f * (0.25f * (var_f24 * var_f24))); var_f24++; @@ -359,7 +381,8 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) { } if (sp30.y <= sp3C.y && sp24.y < 0.0f) { sp30.y = sp3C.y; - } else { + } + else { BoardPlayerPosSetV(lbl_1_bss_68, &sp30); HuPrcVSleep(); continue; @@ -369,7 +392,8 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec* arg3) { } } -void fn_1_5648(void) { +void fn_1_5648(void) +{ Vec sp8; s32 var_r31; @@ -391,7 +415,8 @@ void fn_1_5648(void) { } } -void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) { +void fn_1_5794(s32 arg0, s32 arg1, Vec *arg2) +{ Vec sp64; Vec sp58; Vec sp4C; @@ -400,16 +425,16 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) { Vec sp28; Vec sp1C; f32 sp18; - Process* temp_r23; + Process *temp_r23; f32 temp_f18; f32 temp_f22; f32 var_f27; f32 var_f23; f32 var_f28; - omObjData* temp_r27; - omObjData* var_r26; - omObjData* temp_r25; - omObjData* var_r24; + omObjData *temp_r27; + omObjData *var_r26; + omObjData *temp_r25; + omObjData *var_r24; s32 var_r28; s32 var_r29; s32 var_r30; @@ -429,7 +454,8 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) { PSVECScale(&sp40, &sp40, temp_f22); if (arg0 == 5) { var_r29 = 0x96; - } else { + } + else { var_r29 = 0x5A; } var_f28 = 0.0f; @@ -442,7 +468,7 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) { BoardModelPosGet(lbl_1_bss_64, &sp1C); temp_r27 = fn_1_66C0(4, &sp1C); temp_r25 = fn_1_66C0(5, &sp1C); - + while (1) { sp18 = BoardModelRotYGet(lbl_1_bss_64); sp58 = sp64; @@ -455,7 +481,8 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) { sp4C.y += 20.0f; BoardPlayerPosSetV(lbl_1_bss_68, &sp4C); break; - } else { + } + else { PSVECAdd(&sp58, &sp40, &sp58); sp64 = sp58; if (var_r29 == 0) { @@ -469,24 +496,28 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) { temp_r27->work[1] = 1; temp_r25->work[1] = 1; var_r30++; - } else if (var_r30 == 1 && var_f28 < -180.0f) { - HuAudFXStop(var_r28); - HuAudFXPlay(0x47D); - HuAudPlayerVoicePlay(lbl_1_bss_68, 0x125); - fn_1_66C0(3, &sp58); - var_r30++; - } else if ((var_r30 == 2) && (var_f28 < -360.0f)) { - var_r28 = HuAudFXPlay(0x47F); - HuAudFXPlay(0x481); - fn_1_66C0(3, &sp58); - var_r30++; - } else if ((var_r30 == 3) && (-540.0f == var_f28)) { + } + else if (var_r30 == 1 && var_f28 < -180.0f) { + HuAudFXStop(var_r28); + HuAudFXPlay(0x47D); + HuAudPlayerVoicePlay(lbl_1_bss_68, 0x125); + fn_1_66C0(3, &sp58); + var_r30++; + } + else if ((var_r30 == 2) && (var_f28 < -360.0f)) { + var_r28 = HuAudFXPlay(0x47F); + HuAudFXPlay(0x481); + fn_1_66C0(3, &sp58); + var_r30++; + } + else if ((var_r30 == 3) && (-540.0f == var_f28)) { var_r30++; BoardModelPosGet(lbl_1_bss_64, &sp1C); var_r26 = fn_1_66C0(4, &sp1C); var_r24 = fn_1_66C0(5, &sp1C); } - } else { + } + else { var_r29--; } BoardModelPosSetV(lbl_1_bss_64, &sp58); @@ -536,7 +567,8 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) { if (sp4C.y <= sp58.y && sp40.y < 0.0f) { sp4C.y = sp58.y; break; - } else { + } + else { BoardPlayerPosSetV(lbl_1_bss_68, &sp4C); HuPrcVSleep(); } @@ -545,7 +577,8 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec* arg2) { HuPrcKill(temp_r23); } -void fn_1_62AC(s32 arg0, Vec* arg1) { +void fn_1_62AC(s32 arg0, Vec *arg1) +{ Vec sp34; Vec sp28; Vec sp1C; @@ -578,7 +611,8 @@ void fn_1_62AC(s32 arg0, Vec* arg1) { } } -void fn_1_64BC(void) { +void fn_1_64BC(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -602,7 +636,8 @@ void fn_1_64BC(void) { } } -void fn_1_65E8(void) { +void fn_1_65E8(void) +{ s32 var_r31; for (var_r31 = 0; var_r31 < 6; var_r31++) { @@ -611,7 +646,8 @@ void fn_1_65E8(void) { } } -void fn_1_6670(void) { +void fn_1_6670(void) +{ s32 var_r31; for (var_r31 = 0; var_r31 < 6; var_r31++) { @@ -619,9 +655,10 @@ void fn_1_6670(void) { } } -omObjData* fn_1_66C0(u32 arg0, Vec* arg1) { +omObjData *fn_1_66C0(u32 arg0, Vec *arg1) +{ Vec sp8; - omObjData* temp_r31; + omObjData *temp_r31; f32 temp_f31; temp_r31 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_6914); @@ -665,7 +702,8 @@ omObjData* fn_1_66C0(u32 arg0, Vec* arg1) { return temp_r31; } -void fn_1_6914(omObjData* arg0) { +void fn_1_6914(omObjData *arg0) +{ Vec sp8; if (arg0->work[1] != 0) { @@ -680,7 +718,8 @@ void fn_1_6914(omObjData* arg0) { BoardModelKill(arg0->work[0]); omDelObjEx(boardObjMan, arg0); } - } else { + } + else { switch (arg0->work[2]) { case 0: case 1: diff --git a/src/REL/w05Dll/hotel.c b/src/REL/w05Dll/hotel.c index 73256443..f3a00e24 100644 --- a/src/REL/w05Dll/hotel.c +++ b/src/REL/w05Dll/hotel.c @@ -12,7 +12,8 @@ // data s32 lbl_1_data_150[5] = { - 0x790021, 0x790022, 0x790023, 0x790024, 0x790025, + DATA_MAKE_NUM(DATADIR_W05, 0x21), DATA_MAKE_NUM(DATADIR_W05, 0x22), DATA_MAKE_NUM(DATADIR_W05, 0x23), + DATA_MAKE_NUM(DATADIR_W05, 0x24), DATA_MAKE_NUM(DATADIR_W05, 0x25), }; s16 lbl_1_data_164 = 0xFFFF; @@ -36,7 +37,7 @@ void fn_1_14D0(void) { } u32 lbl_1_data_170[4] = { 0, 10, 25, 40 }; -s32 lbl_1_data_180 = 0x79000C; +s32 lbl_1_data_180 = DATA_MAKE_NUM(DATADIR_W05, 0x0C); s16 fn_1_14FC(void) { s16 var_r31; @@ -112,10 +113,10 @@ void fn_1_155C(void) { sprintf(sp18, "%d", lbl_1_bss_0->unk_00); if (var_r30 > 0) { if (var_r30 >= 5) { - var_r27 = 0x270001; + var_r27 = MAKE_MESSID(0x27, 0x01); var_r30 = 5; } else { - var_r27 = 0x270002; + var_r27 = MAKE_MESSID(0x27, 0x02); } sprintf(sp8, "%d", var_r30); BoardWinCreate(2, var_r27, 7); @@ -198,7 +199,10 @@ void fn_1_155C(void) { BoardRollDispSet(1); } -s32 lbl_1_data_188[4] = { 0x79000C, 0x79000E, 0x79000F, 0x790010 }; +s32 lbl_1_data_188[4] = { + DATA_MAKE_NUM(DATADIR_W05, 0x0C), DATA_MAKE_NUM(DATADIR_W05, 0x0E), + DATA_MAKE_NUM(DATADIR_W05, 0x0F),DATA_MAKE_NUM(DATADIR_W05, 0x10) +}; s32 lbl_1_data_198[2] = { 28, 25 }; void fn_1_1E44(void) { @@ -279,7 +283,7 @@ void fn_1_1E44(void) { BoardWinWait(); BoardWinKill(); } else { - temp_r3 = BoardModelCreate(0x790004, NULL, 0); + temp_r3 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x04), NULL, 0); BoardModelVisibilitySet(temp_r3, 0); BoardModelLayerSet(temp_r3, 2U); if (lbl_1_bss_0->unk_00 > BoardPlayerCoinsGet(lbl_1_bss_28)) { diff --git a/src/REL/w05Dll/main.c b/src/REL/w05Dll/main.c index 6c45d892..b17d72a1 100644 --- a/src/REL/w05Dll/main.c +++ b/src/REL/w05Dll/main.c @@ -1,8 +1,9 @@ #include "REL/w05Dll.h" -#include "game/gamework_data.h" #include "game/chrman.h" #include "game/frand.h" +#include "game/gamework_data.h" + #include "game/board/audio.h" #include "game/board/boo_house.h" @@ -17,68 +18,50 @@ // data BoardMapObject lbl_1_data_0[7] = { - { { 3300.0f, 100.0f, -900.0f }, - { 0.0f, 0.0f, 0.0f }, - { 1.0f, 1.0f, 1.0f }, - 0x790011 - }, - { { -2550.0f, 0.0f, 1350.0f }, - { 0.0f, 0.0f, 0.0f }, - { 1.0f, 1.0f, 1.0f }, - 0x790014 - }, - { { -3000.0f, 100.0f, -1050.0f }, - { 0.0f, 0.0f, 0.0f }, - { 1.0f, 1.0f, 1.0f }, - 0x79001A - }, - { { 2100.0f, 100.0f, -450.0f }, - { 0.0f, 0.0f, 0.0f }, - { 1.0f, 1.0f, 1.0f }, - 0x79001B - }, - { { -450.0f, 100.0f, -750.0f }, - { 0.0f, 0.0f, 0.0f }, - { 1.0f, 1.0f, 1.0f }, - 0x79000A - }, - { { -2710.0f, 0.0f, 1315.0f }, - { 0.0f, 0.0f, 0.0f }, - { 1.0f, 1.0f, 1.0f }, - 0x79000A - }, - { { 3055.0f, 100.0f, -815.0f }, - { 0.0f, 0.0f, 0.0f }, - { 1.0f, 1.0f, 1.0f }, - 0x79000A - }, + { { 3300.0f, 100.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x11) }, + { { -2550.0f, 0.0f, 1350.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x14) }, + { { -3000.0f, 100.0f, -1050.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x1A) }, + { { 2100.0f, 100.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x1B) }, + { { -450.0f, 100.0f, -750.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x0A) }, + { { -2710.0f, 0.0f, 1315.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x0A) }, + { { 3055.0f, 100.0f, -815.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W05, 0x0A) }, }; s16 lbl_1_data_118 = 0xFFFF; s16 lbl_1_data_11A = 0xFFFF; s16 lbl_1_data_11C = 0xFFFF; s16 lbl_1_data_11E = 0xFFFF; s16 lbl_1_data_120 = 0xFFFF; -s32 lbl_1_data_124[8] = {0x5F0000, 0x1A0000, 0x6D0000, 0x8A0000, 0x850000, 0x110000, 0xD0000, 0x810000}; -s32 lbl_1_data_144[2] = {0x790006, 0xFFFFFFFF}; +s32 lbl_1_data_124[8] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), +}; +s32 lbl_1_data_144[2] = { DATA_MAKE_NUM(DATADIR_W05, 0x06), DATA_NUM_LISTEND }; s32 lbl_1_data_14C = 0xFFFFFFFF; // bss s16 lbl_1_bss_14[7]; -s32* lbl_1_bss_10; +s32 *lbl_1_bss_10; s16 lbl_1_bss_8[4]; -Process* lbl_1_bss_4; -bitcopy* lbl_1_bss_0; +Process *lbl_1_bss_4; +bitcopy *lbl_1_bss_0; -void BoardCreate(void) { +void BoardCreate(void) +{ s32 sp8; s32 var_r31; - BoardMapObject* temp_r30; + BoardMapObject *temp_r30; sp8 = GWBoardGet(); - lbl_1_bss_0 = (bitcopy*) GWSystem.board_data; - BoardSpaceInit(0x790000); - lbl_1_data_118 = BoardModelCreate(0x790001, NULL, 0); - lbl_1_data_120 = BoardModelCreate(0x790002, NULL, 0); + lbl_1_bss_0 = (bitcopy *)GWSystem.board_data; + BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W05, 0x00)); + lbl_1_data_118 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x01), NULL, 0); + lbl_1_data_120 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x02), NULL, 0); fn_8006DDE8(lbl_1_data_118, -1.0f); BoardModelPosSet(lbl_1_data_118, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_118, 0, 0x40000001); @@ -88,23 +71,24 @@ void BoardCreate(void) { BoardModelMotionStart(lbl_1_data_120, 0, 0x40000001); BoardModelMotionSpeedSet(lbl_1_data_120, 1.0f); BoardModelLayerSet(lbl_1_data_120, 1); - lbl_1_data_11A = BoardModelCreate(0x790003, NULL, 0); + lbl_1_data_11A = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x03), NULL, 0); fn_8006DDE8(lbl_1_data_11A, -1.0f); BoardModelPosSet(lbl_1_data_11A, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_11A, 0, 0x40000001); - lbl_1_data_11C = BoardModelCreate(0x790005, lbl_1_data_144, 0); + lbl_1_data_11C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x05), lbl_1_data_144, 0); BoardModelPosSet(lbl_1_data_11C, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_11C, 1, 0x40000001); lbl_1_data_11E = BoardModelCreate(0x2001C, &lbl_1_data_14C, 0); BoardModelMotionStart(lbl_1_data_11E, 1, 0x40000001); BoardLightHookSet(&fn_1_744, &fn_1_788); - + for (var_r31 = 0; var_r31 < 7; var_r31++) { temp_r30 = &lbl_1_data_0[var_r31]; if (temp_r30->data_num != -1) { if ((var_r31 == 4) || (var_r31 == 5) || (var_r31 == 6)) { lbl_1_bss_10 = &lbl_1_data_14C; - } else { + } + else { lbl_1_bss_10 = NULL; } lbl_1_bss_14[var_r31] = BoardModelCreate(temp_r30->data_num, lbl_1_bss_10, 0); @@ -129,7 +113,8 @@ void BoardCreate(void) { BoardLotteryHostSet(lbl_1_data_11E); } -void BoardDestroy(void) { +void BoardDestroy(void) +{ s32 var_r31; for (var_r31 = 0; var_r31 < 7; var_r31++) { @@ -161,20 +146,21 @@ void BoardDestroy(void) { BoardSpaceDestroy(); } -void fn_1_744(void) { +void fn_1_744(void) +{ s16 var_r31 = BoardModelIDGet(lbl_1_data_118); Hu3DModelLightInfoSet(var_r31, 1); } -void fn_1_788(void) { -} +void fn_1_788(void) { } -s32 fn_1_78C(void) { +s32 fn_1_78C(void) +{ s32 var_r30 = GWSystem.player_curr; s32 var_r29 = GWPlayer[var_r30].space_curr; s32 var_r28; u32 temp_r3; - + temp_r3 = BoardSpaceFlagGet(0, var_r29); if ((temp_r3 & 2) != 0) { fn_1_1E44(); @@ -186,9 +172,10 @@ s32 fn_1_78C(void) { } } -s32 fn_1_82C(void) { +s32 fn_1_82C(void) +{ s32 temp_r30; - BoardSpace* temp_r3; + BoardSpace *temp_r3; temp_r30 = GWSystem.player_curr; temp_r3 = BoardSpaceGet(0, GWPlayer[temp_r30].space_curr); @@ -213,15 +200,16 @@ s32 fn_1_82C(void) { return 0; } -void fn_1_92C(void) { +void fn_1_92C(void) +{ fn_1_6B28(); fn_1_9680(); } -void fn_1_950(void) { -} +void fn_1_950(void) { } -void fn_1_954(void) { +void fn_1_954(void) +{ Vec sp14; Vec sp8; s32 var_r26; @@ -239,7 +227,7 @@ void fn_1_954(void) { HuPrcEnd(); } lbl_1_bss_8[0] = 0; - + for (var_r31 = 1; var_r31 < 3;) { lbl_1_bss_8[var_r31] = (u32)frandmod(0xE); if ((lbl_1_bss_8[var_r31] == 0xA) || (lbl_1_bss_8[var_r31] == 0xD)) { @@ -260,7 +248,8 @@ void fn_1_954(void) { if (GWPlayer[temp_r30].com != 0) { if (BoardComPreferItemCheck(temp_r30, lbl_1_bss_8[0], lbl_1_bss_8[1], lbl_1_bss_8[2]) != -1) { BoardComKeySetLeft(); - } else { + } + else { BoardComKeySetRight(); } } @@ -297,7 +286,7 @@ void fn_1_954(void) { temp_r27 = GWPlayer[temp_r30].space_curr; var_r26 = BoardSpaceLinkFlagSearch(0, temp_r27, 0x02000000); BoardPlayerMoveBetween(temp_r30, temp_r27, var_r26); - + while (GWPlayer[temp_r30].moving != 0) { HuPrcVSleep(); } @@ -314,28 +303,32 @@ void fn_1_954(void) { HuPrcEnd(); } -void fn_1_D4C(void) { +void fn_1_D4C(void) +{ BoardWinKill(); CharModelDataClose(-1); lbl_1_bss_4 = NULL; } -void fn_1_D84(void) { +void fn_1_D84(void) +{ lbl_1_bss_4 = HuPrcChildCreate(fn_1_954, 0x2003U, 0x3000U, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_4, fn_1_D4C); - + while (lbl_1_bss_4 != 0) { HuPrcVSleep(); } } -void fn_1_E04(void) { +void fn_1_E04(void) +{ HuPrcSleep(0x3C); BoardMusStart(1, 0x23, 0x7F, 0); HuPrcEnd(); } -void fn_1_E40(void) { +void fn_1_E40(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -350,7 +343,8 @@ void fn_1_E40(void) { if (GWPlayer[temp_r31].com != 0) { if (frandBool() != 0) { BoardComKeySetLeft(); - } else { + } + else { BoardComKeySetRight(); } } @@ -363,7 +357,7 @@ void fn_1_E40(void) { BoardWinWait(); BoardWinKill(); BoardMGExit(); - + while (BoardMGDoneFlagGet() != 1) { HuPrcVSleep(); } @@ -399,7 +393,8 @@ void fn_1_E40(void) { BoardPlayerMotionStart(temp_r31, 1, 0x40000001); } -s32 fn_1_1114(void) { +s32 fn_1_1114(void) +{ u32 temp_r31; s16 var_r30 = GWPlayer[GWSystem.player_curr].space_curr; @@ -412,13 +407,15 @@ s32 fn_1_1114(void) { while (lbl_1_bss_4 != 0) { HuPrcVSleep(); } - } else if ((temp_r31 & 0x400000) != 0) { + } + else if ((temp_r31 & 0x400000) != 0) { fn_1_E40(); } BoardRollDispSet(1); } -s32 fn_1_1208(s16 arg0, f32 arg8, f32 arg9) { +s32 fn_1_1208(s16 arg0, f32 arg8, f32 arg9) +{ f32 var_f29; f32 var_f31; s32 var_r31; @@ -440,12 +437,15 @@ s32 fn_1_1208(s16 arg0, f32 arg8, f32 arg9) { if (var_f29 < 180.0f) { if (var_f29 > arg9) { var_f31 = var_f31 + arg9; - } else { + } + else { var_f31 = arg8; } - } else if ((360.0f - var_f29) > arg9) { + } + else if ((360.0f - var_f29) > arg9) { var_f31 = var_f31 - arg9; - } else { + } + else { var_f31 = arg8; } if (var_f31 < 0.0f) { @@ -455,7 +455,8 @@ s32 fn_1_1208(s16 arg0, f32 arg8, f32 arg9) { var_f31 -= 360.0f; } BoardModelRotYSet(arg0, var_f31); - } else { + } + else { var_r31 = 1; } return var_r31; diff --git a/src/REL/w05Dll/mg_coin.c b/src/REL/w05Dll/mg_coin.c index f9fcb606..7818996c 100644 --- a/src/REL/w05Dll/mg_coin.c +++ b/src/REL/w05Dll/mg_coin.c @@ -1,25 +1,27 @@ #include "REL/w05Dll.h" -#include "game/hsfdraw.h" #include "game/audio.h" -#include "game/objsub.h" -#include "game/frand.h" #include "game/chrman.h" -#include "game/pad.h" +#include "game/frand.h" +#include "game/hsfdraw.h" #include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" + +#include "game/board/audio.h" #include "game/board/model.h" #include "game/board/window.h" -#include "game/board/audio.h" + s16 lbl_1_bss_102[3]; s16 lbl_1_bss_100; s16 lbl_1_bss_FE; s16 lbl_1_bss_D6[20]; s16 lbl_1_bss_D4; -omObjData* lbl_1_bss_D0; -omObjData* lbl_1_bss_CC; -omObjData* lbl_1_bss_C8; +omObjData *lbl_1_bss_D0; +omObjData *lbl_1_bss_CC; +omObjData *lbl_1_bss_C8; s16 lbl_1_bss_C6; s16 lbl_1_bss_C4; s16 lbl_1_bss_C2; @@ -29,14 +31,16 @@ s32 lbl_1_bss_B8; char *lbl_1_data_464[3] = { "gyoei", "gyoei1", "gyoei2" }; s32 lbl_1_data_470[3] = { 0x7B, 0x7C, 0x7D }; -s32 lbl_1_data_47C[3] = { 0x00790016, 0x00790017, 0x00790018 }; +s32 lbl_1_data_47C[3] = { DATA_MAKE_NUM(DATADIR_W05, 0x16), DATA_MAKE_NUM(DATADIR_W05, 0x17), DATA_MAKE_NUM(DATADIR_W05, 0x18) }; char *lbl_1_data_494[3] = { "uo", "uo1", "uo2" }; -void fn_1_9680(void) { +void fn_1_9680(void) +{ BoardModelAttrSet(lbl_1_bss_14[1], 0x40000002U); } -void fn_1_96B4(void) { +void fn_1_96B4(void) +{ BoardModelAttrReset(lbl_1_bss_14[1], 0x40000002); BoardModelMotionTimeSet(lbl_1_bss_14[1], 0.0f); @@ -47,58 +51,63 @@ void fn_1_96B4(void) { BoardModelMotionStartEndSet(lbl_1_bss_14[1], 0x3C, 0x64); } -void fn_1_9760(void) { +void fn_1_9760(void) +{ BoardModelAttrReset(lbl_1_bss_14[1], 0x40000001); BoardModelMotionStartEndSet(lbl_1_bss_14[1], 0, 0xA0); } -void fn_1_97AC(void) { +void fn_1_97AC(void) +{ Vec sp8; s32 var_r31; lbl_1_bss_C0 = GWSystem.player_curr; - + for (var_r31 = 0; var_r31 < 3; var_r31++) { lbl_1_bss_102[var_r31] = BoardPlayerMotionCreate(lbl_1_bss_C0, lbl_1_data_470[var_r31] | lbl_1_data_124[GWPlayer[lbl_1_bss_C0].character]); } sp8.x = sp8.y = sp8.z = 1.0f; - lbl_1_bss_100 = BoardModelCreate(0x790015, NULL, 0); + lbl_1_bss_100 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x15), NULL, 0); BoardModelScaleSetV(lbl_1_bss_100, &sp8); BoardModelVisibilitySet(lbl_1_bss_100, 0); - lbl_1_bss_D4 = BoardModelCreate(0x79002C, NULL, 0); + lbl_1_bss_D4 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x2C), NULL, 0); BoardModelVisibilitySet(lbl_1_bss_D4, 0); lbl_1_bss_C2 = frandmod(3U); lbl_1_bss_FE = BoardModelCreate(lbl_1_data_47C[lbl_1_bss_C2], NULL, 0); BoardModelVisibilitySet(lbl_1_bss_FE, 0); - + for (var_r31 = 0; var_r31 < 0x14; var_r31++) { - lbl_1_bss_D6[var_r31] = BoardModelCreate(0x7000A, NULL, 1); + lbl_1_bss_D6[var_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1); BoardModelVisibilitySet(lbl_1_bss_D6[var_r31], 0); } - BoardPlayerPostTurnHookSet(lbl_1_bss_C0, (s32 (*)())fn_1_9B74); + BoardPlayerPostTurnHookSet(lbl_1_bss_C0, (s32(*)())fn_1_9B74); lbl_1_bss_CC = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_9A68); lbl_1_bss_D0 = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, fn_1_9C24); lbl_1_bss_C6 = 0; lbl_1_bss_C4 = 0; } -void fn_1_9A68(omObjData* arg0) { +void fn_1_9A68(omObjData *arg0) +{ if ((lbl_1_bss_C4 != 0) && (BoardMGDoneFlagGet() == 1)) { fn_1_9AF0(); omDelObjEx(boardObjMan, arg0); } } -void fn_1_9AC0(void) { +void fn_1_9AC0(void) +{ lbl_1_bss_C4 = 1; BoardMGExit(); } -void fn_1_9AF0(void) { +void fn_1_9AF0(void) +{ s32 var_r31; omDelObjEx(boardObjMan, lbl_1_bss_D0); - + for (var_r31 = 0; var_r31 < 0x14; var_r31++) { BoardModelKill(lbl_1_bss_D6[var_r31]); } @@ -106,7 +115,8 @@ void fn_1_9AF0(void) { BoardMGDoneFlagSet(0); } -void fn_1_9B74(void) { +void fn_1_9B74(void) +{ HsfObject *var_r31; omDelObjEx(boardObjMan, lbl_1_bss_C8); BoardModelKill(lbl_1_bss_FE); @@ -115,7 +125,8 @@ void fn_1_9B74(void) { BoardModelAttrReset(lbl_1_bss_14[1], 0x40000004); } -void fn_1_9C24(omObjData* arg0) { +void fn_1_9C24(omObjData *arg0) +{ if (arg0->work[0] == 0) { arg0->work[0] = MGSeqCreate(3, 0); return; @@ -125,7 +136,8 @@ void fn_1_9C24(omObjData* arg0) { } } -void fn_1_9C98(dataCopy2* arg0) { +void fn_1_9C98(dataCopy2 *arg0) +{ Vec sp8; Vec temp_r4; @@ -134,21 +146,22 @@ void fn_1_9C98(dataCopy2* arg0) { BoardModelPosSetV(arg0->unk_0A, &sp8); } -void fn_1_9D0C(omObjData* arg0) { +void fn_1_9D0C(omObjData *arg0) +{ Vec sp1C; Vec sp10; f32 sp8[2]; s32 var_r30; - dataCopy2* temp_r31; + dataCopy2 *temp_r31; - arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x34, 0x10000000); + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x34, MEMORY_DEFAULT_NUM); temp_r31 = arg0->data; temp_r31->unk_02 = 5; temp_r31->unk_04 = 0x3C; temp_r31->unk_00 = MGSeqCreate(1, temp_r31->unk_02, 0x120, 0x40); - HuWinMesMaxSizeGet(1, sp8, 0x27000E); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x27, 0x0E)); temp_r31->unk_06 = HuWinCreate(-10000.0f, 368.0f, sp8[0], sp8[1], 0); - HuWinMesSet(temp_r31->unk_06, 0x27000E); + HuWinMesSet(temp_r31->unk_06, MAKE_MESSID(0x27, 0x0E)); HuWinBGTPLvlSet(temp_r31->unk_06, 0.0f); HuWinMesSpeedSet(temp_r31->unk_06, 0); temp_r31->unk_08 = 1; @@ -158,7 +171,7 @@ void fn_1_9D0C(omObjData* arg0) { for (var_r30 = 0; var_r30 < 3; var_r30++) { Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[1]), lbl_1_data_494[var_r30], &temp_r31->unk_0C[var_r30]); } - temp_r31->unk_0A = BoardModelCreate(0x790019, NULL, 0); + temp_r31->unk_0A = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x19), NULL, 0); BoardModelAttrSet(temp_r31->unk_0A, 0x40000001); sp1C.x = sp1C.y = sp1C.z = 1.5f; BoardModelScaleSetV(temp_r31->unk_0A, &sp1C); @@ -168,7 +181,8 @@ void fn_1_9D0C(omObjData* arg0) { arg0->func = fn_1_9F24; } -void fn_1_9F24(omObjData* arg0) { +void fn_1_9F24(omObjData *arg0) +{ Vec sp24; Vec sp18; Vec spC; @@ -176,7 +190,7 @@ void fn_1_9F24(omObjData* arg0) { s16 sp8; f32 var_f31; u16 temp_r29; - dataCopy2* temp_r31; + dataCopy2 *temp_r31; temp_r31 = arg0->data; if (--temp_r31->unk_04 == 0) { @@ -189,7 +203,8 @@ void fn_1_9F24(omObjData* arg0) { temp_r29 = GWPlayer[lbl_1_bss_C0].port; if (GWPlayer[lbl_1_bss_C0].com != 0) { fn_1_B2B0(arg0, &spA, &sp8); - } else { + } + else { sp8 = HuPadDStkRep[temp_r29]; spA = HuPadBtnDown[temp_r29]; } @@ -201,10 +216,12 @@ void fn_1_9F24(omObjData* arg0) { BoardPlayerMotionStart(lbl_1_bss_C0, lbl_1_bss_102[0], 0); BoardPlayerMotionSpeedSet(lbl_1_bss_C0, 0.5f); arg0->func = fn_1_A224; - } else if ((temp_r31->unk_08 != 0) && ((sp8 & 1) != 0)) { + } + else if ((temp_r31->unk_08 != 0) && ((sp8 & 1) != 0)) { HuAudFXPlay(0); temp_r31->unk_08--; - } else if ((temp_r31->unk_08 != 2) && ((sp8 & 2) != 0)) { + } + else if ((temp_r31->unk_08 != 2) && ((sp8 & 2) != 0)) { HuAudFXPlay(0); temp_r31->unk_08++; } @@ -216,7 +233,8 @@ void fn_1_9F24(omObjData* arg0) { BoardModelPosSetV(temp_r31->unk_0A, &spC); } -void fn_1_A224(omObjData* arg0) { +void fn_1_A224(omObjData *arg0) +{ Vec sp14; Vec sp8; f32 temp_f31; @@ -239,21 +257,22 @@ void fn_1_A224(omObjData* arg0) { BoardPlayerMotionStart(lbl_1_bss_C0, lbl_1_bss_102[1], 0); BoardPlayerMotionSpeedSet(lbl_1_bss_C0, 0.5f); switch (lbl_1_bss_C2) { - case 0: - omVibrate(lbl_1_bss_C0, 0x7FFF, 0xC, 0); - break; - case 1: - omVibrate(lbl_1_bss_C0, 0x7FFF, 4, 2); - break; - case 2: - omVibrate(lbl_1_bss_C0, 0x7FFF, 6, 6); - break; + case 0: + omVibrate(lbl_1_bss_C0, 0x7FFF, 0xC, 0); + break; + case 1: + omVibrate(lbl_1_bss_C0, 0x7FFF, 4, 2); + break; + case 2: + omVibrate(lbl_1_bss_C0, 0x7FFF, 6, 6); + break; } arg0->func = fn_1_A4F8; } } -void fn_1_A4F8(omObjData* arg0) { +void fn_1_A4F8(omObjData *arg0) +{ f32 temp_f31; temp_f31 = BoardPlayerMotionMaxTimeGet(lbl_1_bss_C0); @@ -264,13 +283,14 @@ void fn_1_A4F8(omObjData* arg0) { } } -void fn_1_A5B0(omObjData* arg0) { +void fn_1_A5B0(omObjData *arg0) +{ Vec sp14; Vec sp8; - HsfObject* temp_r28; - dataCopy2* temp_r30; - omObjData* temp_r29; - Vec* temp_r31; + HsfObject *temp_r28; + dataCopy2 *temp_r30; + omObjData *temp_r29; + Vec *temp_r31; f32 temp_f30; f32 var_f31; @@ -295,7 +315,7 @@ void fn_1_A5B0(omObjData* arg0) { BoardModelVisibilitySet(lbl_1_bss_D4, 1); BoardModelMotionTimeSet(lbl_1_bss_D4, 110.0f); lbl_1_bss_C8 = temp_r29 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_B3C4); - temp_r29->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, 0x10000000); + temp_r29->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, MEMORY_DEFAULT_NUM); temp_r31 = temp_r29->data; lbl_1_bss_C8->work[1] = 1; Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[1]), "fish", &sp14); @@ -323,7 +343,8 @@ void fn_1_A5B0(omObjData* arg0) { BoardModelMotionSpeedSet(lbl_1_bss_100, var_f31); } -void fn_1_A990(omObjData* arg0) { +void fn_1_A990(omObjData *arg0) +{ Vec sp8; Process *var_r31; @@ -344,9 +365,10 @@ void fn_1_A990(omObjData* arg0) { } s16 lbl_1_data_4B2[3] = { 20, 10, 5 }; -s32 lbl_1_data_4B8[3] = { 0x00270013, 0x00270014, 0x00270015 }; +s32 lbl_1_data_4B8[3] = { MAKE_MESSID(0x27, 0x13), MAKE_MESSID(0x27, 0x14), MAKE_MESSID(0x27, 0x15) }; -void fn_1_AB24(void) { +void fn_1_AB24(void) +{ Vec sp124[20]; Vec sp34[20]; Vec sp28; @@ -359,7 +381,7 @@ void fn_1_AB24(void) { s32 var_r29; s32 var_r31; f32 var_f30; - Vec* temp_r4; + Vec *temp_r4; temp_r30 = HuPrcCurrentGet()->user_data; spC = temp_r30->data; @@ -367,7 +389,7 @@ void fn_1_AB24(void) { BoardModelPosGet(lbl_1_bss_14[5], &sp1C); var_f30 = (180.0 * (atan2((sp1C.z - sp28.z), (sp1C.x - sp28.x)) / M_PI)); BoardPlayerMotBlendSet(lbl_1_bss_C0, var_f30, 0xF); - + while (BoardPlayerMotBlendCheck(lbl_1_bss_C0) == 0) { HuPrcVSleep(); } @@ -381,12 +403,12 @@ void fn_1_AB24(void) { BoardWinWait(); BoardWinKill(); BoardPlayerMotBlendSet(lbl_1_bss_C0, 0, 0xF); - + while (BoardPlayerMotBlendCheck(lbl_1_bss_C0) == 0) { HuPrcVSleep(); } BoardPlayerPosGet(lbl_1_bss_C0, &sp28); - + for (var_r31 = 0; var_r31 < lbl_1_bss_C6; var_r31++) { BoardModelVisibilitySet(lbl_1_bss_D6[var_r31], 1); sp124[var_r31] = sp28; @@ -400,7 +422,7 @@ void fn_1_AB24(void) { } var_f31 = -1.0f; var_r29 = 0; - + while (1) { for (var_r31 = 0; var_r31 < lbl_1_bss_C6; var_r31++) { if (var_r31 >= var_r29) { @@ -429,11 +451,12 @@ void fn_1_AB24(void) { if (var_r29 == lbl_1_bss_C6) { BoardPlayerMotionShiftSet(lbl_1_bss_C0, 7, 0.0f, 10.0f, 0); break; - } else { + } + else { HuPrcVSleep(); } } - + while (BoardPlayerMotionEndCheck(lbl_1_bss_C0) == 0) { HuPrcVSleep(); } @@ -444,7 +467,8 @@ void fn_1_AB24(void) { HuPrcEnd(); } -void fn_1_B214(omObjData* arg0) { +void fn_1_B214(omObjData *arg0) +{ s32 var_r31; for (var_r31 = 0; var_r31 < 3; var_r31++) { @@ -456,8 +480,9 @@ void fn_1_B214(omObjData* arg0) { omDelObjEx(boardObjMan, arg0); } -void fn_1_B2B0(omObjData* arg0, u16* arg1, s16* arg2) { - dataCopy2* temp_r31; +void fn_1_B2B0(omObjData *arg0, u16 *arg1, s16 *arg2) +{ + dataCopy2 *temp_r31; temp_r31 = arg0->data; *arg1 = 0; @@ -490,7 +515,8 @@ void fn_1_B2B0(omObjData* arg0, u16* arg1, s16* arg2) { *arg2 = 2; } -void fn_1_B3C4(omObjData* arg0) { +void fn_1_B3C4(omObjData *arg0) +{ Vec sp2C; Vec sp20; Vec sp14; @@ -526,9 +552,10 @@ void fn_1_B3C4(omObjData* arg0) { if ((0.0f == BoardModelMotionTimeGet(lbl_1_bss_FE)) && (arg0->work[1] != 0)) { HuAudFXPlay(0x484); } - } else { + } + else { arg0->work[0] += 1; } BoardModelPosSetV(lbl_1_bss_FE, &sp20); } -} \ No newline at end of file +} diff --git a/src/REL/w05Dll/mg_item.c b/src/REL/w05Dll/mg_item.c index 92c0f959..f0cfd6a2 100644 --- a/src/REL/w05Dll/mg_item.c +++ b/src/REL/w05Dll/mg_item.c @@ -1,16 +1,16 @@ #include "REL/w05Dll.h" -#include "game/hsfdraw.h" #include "game/audio.h" -#include "game/objsub.h" -#include "game/frand.h" #include "game/chrman.h" -#include "game/pad.h" +#include "game/frand.h" +#include "game/hsfdraw.h" #include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/board/audio.h" #include "game/board/model.h" #include "game/board/window.h" -#include "game/board/audio.h" // data s32 lbl_1_data_310[2] = { 0x79, 0x7A }; @@ -24,22 +24,23 @@ s16 lbl_1_bss_A4[3]; s16 lbl_1_bss_A2; s16 lbl_1_bss_9E[2]; s16 lbl_1_bss_9C; -Process* lbl_1_bss_98; -omObjData* lbl_1_bss_94; -omObjData* lbl_1_bss_90; -omObjData* lbl_1_bss_8C; +Process *lbl_1_bss_98; +omObjData *lbl_1_bss_94; +omObjData *lbl_1_bss_90; +omObjData *lbl_1_bss_8C; s32 lbl_1_bss_88; s32 lbl_1_bss_7C[3]; -AnimData* lbl_1_bss_78; +AnimData *lbl_1_bss_78; - -void fn_1_6B28(void) { +void fn_1_6B28(void) +{ BoardModelAttrSet(*lbl_1_bss_14, 0x40000002U); lbl_1_bss_98 = NULL; lbl_1_bss_78 = NULL; } -void fn_1_6B7C(void) { +void fn_1_6B7C(void) +{ Vec sp1C; Vec sp10; s32 spC; @@ -51,7 +52,7 @@ void fn_1_6B7C(void) { for (var_r31 = 0; var_r31 < 2; var_r31++) { lbl_1_bss_9E[var_r31] = BoardPlayerMotionCreate(lbl_1_bss_B6, lbl_1_data_310[var_r31] | lbl_1_data_124[GWPlayer[lbl_1_bss_B6].character]); } - lbl_1_bss_A2 = BoardModelCreate(0x790013, NULL, 0); + lbl_1_bss_A2 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x13), NULL, 0); BoardModelVisibilitySet(lbl_1_bss_A2, 0); sp1C.x = sp1C.y = sp1C.z = 3.33333f; BoardModelScaleSetV(lbl_1_bss_A2, &sp1C); @@ -63,11 +64,11 @@ void fn_1_6B7C(void) { HuPrcVSleep(); } BoardPlayerMotBlendSet(lbl_1_bss_B6, 0, 0xF); - + while (BoardPlayerMotBlendCheck(lbl_1_bss_B6) == 0) { HuPrcVSleep(); } - + HuPrcSleep(0x3C); BoardAudSeqPause(0, 1, 0x3E8); HuAudFXPlay(0x30D); @@ -94,14 +95,14 @@ void fn_1_6B7C(void) { BoardModelAttrReset(lbl_1_bss_14[0], 0x40000002); omVibrate(lbl_1_bss_B6, 0x7FFF, 6, 6); HuAudFXPlay(0x492); - + while (BoardModelMotionTimeGet(lbl_1_bss_14[0]) < 90.0f) { HuPrcVSleep(); } BoardModelMotionTimeSet(lbl_1_bss_14[0], 90.0f); HuPadRumbleStop(GWPlayer[lbl_1_bss_B6].port); BoardModelHookReset(lbl_1_bss_14[0]); - + for (var_r31 = 0; var_r31 < 3; var_r31++) { BoardModelHookSet(lbl_1_bss_14[0], lbl_1_data_330[var_r31], lbl_1_bss_AA[var_r31]); } @@ -111,15 +112,16 @@ void fn_1_6B7C(void) { lbl_1_bss_94 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_7284); lbl_1_bss_8C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_78A0); lbl_1_bss_90 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, NULL); - lbl_1_bss_90->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x14, 0x10000000U); + lbl_1_bss_90->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x14, MEMORY_DEFAULT_NUM); if (lbl_1_bss_78 == NULL) { - lbl_1_bss_78 = HuSprAnimRead(HuDataSelHeapReadNum(0x120000, 0x10000000, HEAP_DATA)); + lbl_1_bss_78 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0x00)); HuSprAnimLock(lbl_1_bss_78); } lbl_1_bss_9C = 0; } -void fn_1_7284(omObjData* arg0) { +void fn_1_7284(omObjData *arg0) +{ if ((lbl_1_bss_9C != 0) && (BoardMGDoneFlagGet() == 1)) { fn_1_77B0(); fn_1_7314(); @@ -128,12 +130,14 @@ void fn_1_7284(omObjData* arg0) { } } -void fn_1_72E4(void) { +void fn_1_72E4(void) +{ lbl_1_bss_9C = 1; BoardMGExit(); } -void fn_1_7314(void) { +void fn_1_7314(void) +{ s32 var_r31; BoardModelHookReset(lbl_1_bss_14[0]); @@ -148,12 +152,14 @@ void fn_1_7314(void) { } } -void fn_1_73C0(void) { +void fn_1_73C0(void) +{ omDelObjEx(boardObjMan, lbl_1_bss_90); BoardMGDoneFlagSet(0); } -void fn_1_7400(void) { +void fn_1_7400(void) +{ while (BoardModelMotionTimeGet(lbl_1_bss_14[0]) < 30.0f) { HuPrcVSleep(); @@ -162,42 +168,42 @@ void fn_1_7400(void) { BoardModelMotionTimeSet(lbl_1_bss_14[0], 30.0f); lbl_1_bss_98 = HuPrcCreate(fn_1_896C, 0x2004, 0x1000, 0); HuPrcDestructorSet2(lbl_1_bss_98, fn_1_91DC); - lbl_1_bss_98->user_data = (void* )7; + lbl_1_bss_98->user_data = (void *)7; HuPrcEnd(); } s32 lbl_1_data_350[14] = { - 0x0007006D, 0x0007006E, 0x0007006F, 0x00070070, - 0x00070071, 0x00070072, 0x00070073, 0x00070074, - 0x00070076, 0x00070077, 0x00070078, 0x00070079, - 0x0007007A, 0x0007007B + DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x70), + DATA_MAKE_NUM(DATADIR_BOARD, 0x71), + DATA_MAKE_NUM(DATADIR_BOARD, 0x72), + DATA_MAKE_NUM(DATADIR_BOARD, 0x73), + DATA_MAKE_NUM(DATADIR_BOARD, 0x74), + DATA_MAKE_NUM(DATADIR_BOARD, 0x76), + DATA_MAKE_NUM(DATADIR_BOARD, 0x77), + DATA_MAKE_NUM(DATADIR_BOARD, 0x78), + DATA_MAKE_NUM(DATADIR_BOARD, 0x79), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7B), }; -s16 lbl_1_data_388[92] = { - 0, 1, -1, 2, 0, -1, 1, 2, - 0, -1, 2, 1, 0, 2, -1, 1, - 0, 2, 1, -1, 1, 2, -1, 0, - 1, 2, 0, -1, 1, -1, 0, 2, - 1, -1, 2, 0, 1, 0, 2, -1, - 1, 0, -1, 2, 2, -1, 0, 1, - 2, -1, 1, 0, 2, 0, 1, -1, - 2, 0, -1, 1, 2, 1, -1, 0, - 2, 1, 0, -1, -1, 0, 1, 2, - -1, 0, 2, 1, -1, 1, 2, 0, - -1, 1, 0, 2, -1, 2, 0, 1, - -1, 2, 1, 0 -}; +s16 lbl_1_data_388[92] = { 0, 1, -1, 2, 0, -1, 1, 2, 0, -1, 2, 1, 0, 2, -1, 1, 0, 2, 1, -1, 1, 2, -1, 0, 1, 2, 0, -1, 1, -1, 0, 2, 1, -1, 2, 0, 1, 0, + 2, -1, 1, 0, -1, 2, 2, -1, 0, 1, 2, -1, 1, 0, 2, 0, 1, -1, 2, 0, -1, 1, 2, 1, -1, 0, 2, 1, 0, -1, -1, 0, 1, 2, -1, 0, 2, 1, -1, 1, 2, 0, -1, 1, 0, + 2, -1, 2, 0, 1, -1, 2, 1, 0 }; -f32 lbl_1_data_440[3] = {-90.0f, 0.0f, 90.0f}; +f32 lbl_1_data_440[3] = { -90.0f, 0.0f, 90.0f }; -void fn_1_74D0(s16 arg0[3]) { +void fn_1_74D0(s16 arg0[3]) +{ f32 temp_f31; s32 var_r31; for (var_r31 = 0; var_r31 < 3; var_r31++) { lbl_1_bss_B0[var_r31] = arg0[var_r31]; } - + for (var_r31 = 0; var_r31 < 3; var_r31++) { lbl_1_bss_A4[var_r31] = BoardModelCreate(lbl_1_data_350[lbl_1_bss_B0[var_r31]], NULL, 0); if (lbl_1_bss_B0[var_r31] == 0xB) { @@ -214,12 +220,12 @@ void fn_1_74D0(s16 arg0[3]) { } for (var_r31 = 0; var_r31 < 3; var_r31++) { - lbl_1_bss_AA[var_r31] = BoardModelCreate(0x790012, NULL, 1); + lbl_1_bss_AA[var_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x12), NULL, 1); BoardModelHookSet(lbl_1_bss_14[0], lbl_1_data_330[var_r31], lbl_1_bss_AA[var_r31]); BoardModelAttrSet(lbl_1_bss_AA[var_r31], 0x40000002); BoardModelMotionTimeSet(lbl_1_bss_AA[var_r31], 10.0f); } - + HuAudFXPlay(0x488); BoardModelMotionTimeSet(lbl_1_bss_14[0], 0.0f); BoardModelMotionStartEndSet(lbl_1_bss_14[0], 0, 0x1E); @@ -227,7 +233,8 @@ void fn_1_74D0(s16 arg0[3]) { HuPrcCreate(fn_1_7400, 0x2004, 0x1000, 0); } -void fn_1_77B0(void) { +void fn_1_77B0(void) +{ HuAudFXPlay(0x489); BoardModelMotionStartEndSet(lbl_1_bss_14[0], 0x5A, 0x78); BoardModelMotionTimeSet(lbl_1_bss_14[0], 90.0f); @@ -243,7 +250,8 @@ void fn_1_77B0(void) { } } -void fn_1_78A0(omObjData* arg0) { +void fn_1_78A0(omObjData *arg0) +{ if (arg0->work[0] == 0) { arg0->work[0] = MGSeqCreate(3, 0); return; @@ -254,7 +262,8 @@ void fn_1_78A0(omObjData* arg0) { } } -void fn_1_7928(omObjData* arg0) { +void fn_1_7928(omObjData *arg0) +{ Process *temp; if (((u32)lbl_1_bss_98->user_data & 0x10) != 0) { temp = HuPrcCreate(fn_1_799C, 0x2004, 0x1800, 0); @@ -263,7 +272,8 @@ void fn_1_7928(omObjData* arg0) { } } -void fn_1_799C(void) { +void fn_1_799C(void) +{ Vec sp2C; Vec sp20; Vec sp14; @@ -275,7 +285,7 @@ void fn_1_799C(void) { s32 temp_r31; s32 var_r28; s32 var_r29; - omObjData* temp_r30; + omObjData *temp_r30; temp_r30 = HuPrcCurrentGet()->user_data; BoardPlayerPosGet(lbl_1_bss_B6, &sp2C); @@ -285,7 +295,7 @@ void fn_1_799C(void) { PSVECSubtract(&sp2C, &sp20, &sp14); temp_f30 = PSVECMag(&sp14); PSVECScale(&sp14, &sp14, 0.016666668); - + for (var_r29 = 0; var_r29 < 0x3C; var_r29++) { BoardModelPosGet(lbl_1_bss_A4[temp_r31], &sp20); PSVECAdd(&sp20, &sp14, &sp20); @@ -344,7 +354,7 @@ void fn_1_799C(void) { HuPrcVSleep(); } HuPrcSleep(0x1E); - + while (HuAudSStreamStatGet(temp_r27) != 0) { HuPrcVSleep(); } @@ -356,13 +366,15 @@ void fn_1_799C(void) { HuPrcEnd(); } -void fn_1_7E4C(omObjData* arg0) { +void fn_1_7E4C(omObjData *arg0) +{ lbl_1_bss_9C = 1; BoardMGExit(); omDelObjEx(boardObjMan, arg0); } -void fn_1_7E94(dataCopy* arg0) { +void fn_1_7E94(dataCopy *arg0) +{ if (--arg0->unk_02 == 0) { arg0->unk_02 = 0x3C; if (--arg0->unk_00 >= 0) { @@ -371,19 +383,20 @@ void fn_1_7E94(dataCopy* arg0) { } } -void fn_1_7F04(omObjData* arg0) { +void fn_1_7F04(omObjData *arg0) +{ f32 sp8[2]; s32 var_r30; s32 var_r28; - dataCopy* temp_r31; + dataCopy *temp_r31; temp_r31 = arg0->data; temp_r31->unk_00 = 5; temp_r31->unk_02 = 0x3C; temp_r31->unk_04 = MGSeqCreate(1, temp_r31->unk_00, 0x120, 0x40); - HuWinMesMaxSizeGet(1, sp8, 0x27000E); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x27, 0x0E)); temp_r31->unk_06 = HuWinCreate(-10000.0f, 344.0f, sp8[0], sp8[1], 0); - HuWinMesSet(temp_r31->unk_06, 0x27000E); + HuWinMesSet(temp_r31->unk_06, MAKE_MESSID(0x27, 0x0E)); HuWinBGTPLvlSet(temp_r31->unk_06, 0.0f); HuWinMesSpeedSet(temp_r31->unk_06, 0); temp_r31->unk_08 = 1; @@ -409,26 +422,28 @@ void fn_1_7F04(omObjData* arg0) { arg0->func = fn_1_80D8; } -void fn_1_80D8(omObjData* arg0) { +void fn_1_80D8(omObjData *arg0) +{ s32 sp10; s32 spC; s32 sp8; f32 var_f31; s32 temp_r30; s32 var_r29; - dataCopy* temp_r31; + dataCopy *temp_r31; temp_r31 = arg0->data; fn_1_7E94(temp_r31); temp_r30 = GWPlayer[lbl_1_bss_B6].port; if (GWPlayer[lbl_1_bss_B6].com != 0) { fn_1_8798(temp_r31, &sp10, &spC, &sp8); - } else { + } + else { sp10 = HuPadStkX[temp_r30]; spC = HuPadStkY[temp_r30]; sp8 = HuPadBtnDown[temp_r30]; } - + if (((sp8 & 0x100) != 0) || (temp_r31->unk_00 < 0)) { MGSeqParamSet(temp_r31->unk_04, 2, -1); HuWinKill(temp_r31->unk_06); @@ -442,12 +457,14 @@ void fn_1_80D8(omObjData* arg0) { if (var_f31 < 0.0f) { var_f31 += 360.0f; } - + if ((var_f31 > 170.0f) && (var_f31 < 190.0f)) { var_r29 = 0; - } else if ((var_f31 > 260.0f) && (var_f31 < 280.0f)) { + } + else if ((var_f31 > 260.0f) && (var_f31 < 280.0f)) { var_r29 = 1; - } else if ((var_f31 < 10.0f) || (var_f31 > 350.0f)) { + } + else if ((var_f31 < 10.0f) || (var_f31 > 350.0f)) { var_r29 = 2; } if (var_r29 != -1) { @@ -457,9 +474,10 @@ void fn_1_80D8(omObjData* arg0) { } } -void fn_1_8410(omObjData* arg0) { +void fn_1_8410(omObjData *arg0) +{ s32 temp_r30; - dataCopy* temp_r31; + dataCopy *temp_r31; temp_r31 = arg0->data; if (BoardPlayerMotionTimeGet(lbl_1_bss_B6) >= 30.0f) { @@ -470,13 +488,14 @@ void fn_1_8410(omObjData* arg0) { temp_r30 |= 0x1C0; lbl_1_bss_98 = HuPrcCreate(fn_1_896C, 0x2004, 0x4000, 0); HuPrcDestructorSet2(lbl_1_bss_98, fn_1_91DC); - lbl_1_bss_98->user_data = (void*)temp_r30; + lbl_1_bss_98->user_data = (void *)temp_r30; lbl_1_bss_8C->work[0] = temp_r31->unk_08; arg0->func = fn_1_850C; } } -void fn_1_850C(omObjData* arg0) { +void fn_1_850C(omObjData *arg0) +{ Vec sp14; Vec sp8; f32 temp_f31; @@ -495,7 +514,8 @@ void fn_1_850C(omObjData* arg0) { } } -void fn_1_8668(omObjData* arg0) { +void fn_1_8668(omObjData *arg0) +{ s32 var_r30; if (arg0->work[0] == 0) { @@ -504,7 +524,7 @@ void fn_1_8668(omObjData* arg0) { arg0->func = NULL; lbl_1_bss_8C->func = fn_1_7928; BoardModelKill(lbl_1_bss_A2); - + for (var_r30 = 0; var_r30 < 2; var_r30++) { BoardPlayerMotionKill(lbl_1_bss_B6, lbl_1_bss_9E[var_r30]); } @@ -513,7 +533,8 @@ void fn_1_8668(omObjData* arg0) { arg0->work[0] -= 1; } -void fn_1_8798(dataCopy* arg0, s32* arg1, s32* arg2, s32* arg3) { +void fn_1_8798(dataCopy *arg0, s32 *arg1, s32 *arg2, s32 *arg3) +{ *arg1 = *arg2 = *arg3 = 0; if (arg0->unk_10 != 0) { arg0->unk_10 -= 1; @@ -532,17 +553,19 @@ void fn_1_8798(dataCopy* arg0, s32* arg1, s32* arg2, s32* arg3) { *arg2 = (frandBool() * 0x8C) - 0x46; } -void* fn_1_8884(void) { +void *fn_1_8884(void) +{ if (lbl_1_bss_98 == NULL) { return NULL; } return lbl_1_bss_98->user_data; } -void fn_1_88B8(void) { +void fn_1_88B8(void) +{ s32 userData = (s32)lbl_1_bss_98->user_data; userData |= 8; - lbl_1_bss_98->user_data = (void* ) (userData); + lbl_1_bss_98->user_data = (void *)(userData); while (((u32)fn_1_8884() & 0x20) == 0) { HuPrcVSleep(); @@ -551,7 +574,8 @@ void fn_1_88B8(void) { lbl_1_bss_98 = NULL; } -void fn_1_896C(void) { +void fn_1_896C(void) +{ Vec sp18; Vec spC; f32 sp8; @@ -565,7 +589,7 @@ void fn_1_896C(void) { ParticleData *var_r27; temp_r30 = (u32)HuPrcCurrentGet()->user_data; - + for (var_r31 = 0; var_r31 < 3; var_r31++) { var_r29 = (1 << var_r31); if ((temp_r30 & var_r29) != 0) { @@ -573,7 +597,8 @@ void fn_1_896C(void) { if ((temp_r30 & 0x80) != 0) { BoardModelMotionStartEndSet(lbl_1_bss_AA[var_r31], 0, 0x28); BoardModelMotionTimeSet(lbl_1_bss_AA[var_r31], 0.0f); - } else { + } + else { BoardModelMotionStartEndSet(lbl_1_bss_AA[var_r31], 0xA, 0x28); BoardModelMotionTimeSet(lbl_1_bss_AA[var_r31], 10.0f); } @@ -581,11 +606,12 @@ void fn_1_896C(void) { } if ((temp_r30 & 0x80) != 0) { HuPrcSleep(0x19); - } else { + } + else { HuPrcSleep(0xF); } spC.x = spC.y = spC.z = 0.0f; - + for (var_r31 = 0; var_r31 < 3; var_r31++) { var_r29 = (1 << var_r31); if ((temp_r30 & var_r29) != 0) { @@ -606,7 +632,8 @@ void fn_1_896C(void) { if ((temp_r30 & 0x100) != 0) { lbl_1_bss_88 = HuAudFXPlay(0x35F); HuAudFXPlay(0x310); - } else { + } + else { HuAudFXPlay(0x362); } } @@ -614,7 +641,7 @@ void fn_1_896C(void) { temp_f29 = 150.0f + sp18.y; sp8 = 0.0f; var_f31 = 12.0f; - + while (1) { for (var_r28 = 0, var_r31 = 0; var_r31 < 3; var_r31++) { var_r29 = (1 << var_r31); @@ -626,7 +653,7 @@ void fn_1_896C(void) { } spC.x = spC.y = spC.z = sp8; - BoardModelScaleSetV(lbl_1_bss_A4[var_r31], (Vec* ) &sp8); //! + BoardModelScaleSetV(lbl_1_bss_A4[var_r31], (Vec *)&sp8); //! BoardModelPosGet(lbl_1_bss_A4[var_r31], &sp18); sp18.y += var_f31; if (sp18.y >= temp_f29) { @@ -639,7 +666,8 @@ void fn_1_896C(void) { var_f31 *= 0.95f; if (var_r28 > 0) { HuPrcVSleep(); - } else { + } + else { break; } } @@ -650,12 +678,12 @@ void fn_1_896C(void) { BoardModelScaleSetV(lbl_1_bss_A4[var_r31], &spC); } } - temp_r30 = (u32) HuPrcCurrentGet()->user_data | 0x10; - HuPrcCurrentGet()->user_data = (void*)temp_r30; + temp_r30 = (u32)HuPrcCurrentGet()->user_data | 0x10; + HuPrcCurrentGet()->user_data = (void *)temp_r30; var_f30 = 0.0f; while (1) { - temp_r30 = (u32) HuPrcCurrentGet()->user_data; + temp_r30 = (u32)HuPrcCurrentGet()->user_data; if ((temp_r30 & 8) == 0) { for (var_r31 = 0; var_r31 < 3; var_r31++) { var_r29 = (1 << var_r31); @@ -670,7 +698,8 @@ void fn_1_896C(void) { var_f30 -= 360.0f; } HuPrcVSleep(); - } else { + } + else { break; } } @@ -689,7 +718,7 @@ void fn_1_896C(void) { sp8 = 0.0f; } spC.x = spC.y = spC.z = sp8; - BoardModelScaleSetV(lbl_1_bss_A4[var_r31], (Vec* ) &sp8); //! + BoardModelScaleSetV(lbl_1_bss_A4[var_r31], (Vec *)&sp8); //! BoardModelPosGet(lbl_1_bss_A4[var_r31], &sp18); sp18.y += var_f31; if (sp18.y <= (temp_f29 - 150.0f)) { @@ -704,11 +733,12 @@ void fn_1_896C(void) { var_f31 *= 0.98f; if (var_r28 > 0) { HuPrcVSleep(); - } else { + } + else { break; } } - + for (var_r31 = 0; var_r31 < 3; var_r31++) { var_r29 = (1 << var_r31); if ((temp_r30 & var_r29) != 0) { @@ -719,13 +749,14 @@ void fn_1_896C(void) { } temp_r30 = (u32)HuPrcCurrentGet()->user_data; temp_r30 |= 0x20; - HuPrcCurrentGet()->user_data = (void*)temp_r30; + HuPrcCurrentGet()->user_data = (void *)temp_r30; while (1) { HuPrcVSleep(); } } -void fn_1_91DC(void) { +void fn_1_91DC(void) +{ u32 temp_r30; s32 var_r29; s32 var_r31; @@ -741,9 +772,10 @@ void fn_1_91DC(void) { } } -void fn_1_9268(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { +void fn_1_9268(ModelData *model, ParticleData *particle, f32 (*matrix)[4]) +{ Vec sp8; - HsfanimStruct01* var_r31; + HsfanimStruct01 *var_r31; f32 temp_f30; f32 temp_f29; f32 temp_f31; @@ -761,12 +793,13 @@ void fn_1_9268(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { BoardModelScaleGet(particle->unk_02, &sp8); temp_f31 = sp8.x; BoardModelPosGet(particle->unk_02, &sp8); - + for (var_r29 = 0; var_r29 < 0x16; var_r29++) { var_r31 = particle->unk_48; for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { - if (var_r31->unk2C == 0.0f) break; + if (var_r31->unk2C == 0.0f) + break; } if (var_r28 != particle->unk_30) { temp_f30 = 360.0f * (0.003921569f * (s32)(frand() & 0xFF)); @@ -790,4 +823,4 @@ void fn_1_9268(ModelData* model, ParticleData* particle, f32 (*matrix)[4]) { } } } -} \ No newline at end of file +} diff --git a/src/REL/w05Dll/monkey.c b/src/REL/w05Dll/monkey.c index fb7e8efc..52c6f9db 100644 --- a/src/REL/w05Dll/monkey.c +++ b/src/REL/w05Dll/monkey.c @@ -7,7 +7,7 @@ #include "game/board/player.h" // data -s32 lbl_1_data_1A8[3] = { 0x0079001F, 0x00790020, 0xFFFFFFFF }; +s32 lbl_1_data_1A8[3] = { DATA_MAKE_NUM(DATADIR_W05, 0x1F), DATA_MAKE_NUM(DATADIR_W05, 0x20), DATA_NUM_LISTEND }; char *lbl_1_data_1C4[2] = { "monkyA", "monkyB"}; s32 lbl_1_data_1CC[3] = { 0x78, 0x6F, 0x70 }; @@ -29,7 +29,7 @@ void fn_1_2B40(void) { BoardModelMotionTimeSet(lbl_1_bss_14[3], 0.0f); for (var_r31 = 0; var_r31 < 2; var_r31++) { - lbl_1_bss_4E[var_r31] = BoardModelCreate(0x79001E, lbl_1_data_1A8, 0); + lbl_1_bss_4E[var_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x1E), lbl_1_data_1A8, 0); BoardModelAttrSet(lbl_1_bss_4E[var_r31], 0x40000001); } BoardModelHookSet(lbl_1_bss_14[2], lbl_1_data_1C4[0], lbl_1_bss_4E[0]); @@ -53,8 +53,8 @@ void fn_1_2C7C(s32 arg0) { BoardModelPosGet(lbl_1_bss_4A, &lbl_1_bss_38); lbl_1_bss_38.x -= 140.0f; } - lbl_1_bss_44[0] = BoardModelCreate(0x79001C, NULL, 0); - lbl_1_bss_44[1] = BoardModelCreate(0x79001D, NULL, 0); + lbl_1_bss_44[0] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x1C), NULL, 0); + lbl_1_bss_44[1] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x1D), NULL, 0); BoardModelVisibilitySet(lbl_1_bss_44[0], 0); BoardModelVisibilitySet(lbl_1_bss_44[1], 0); BoardModelAttrSet(lbl_1_bss_44[0], 0x40000001); diff --git a/src/REL/w06Dll/bowser.c b/src/REL/w06Dll/bowser.c index 5b05c367..c9215a5d 100755 --- a/src/REL/w06Dll/bowser.c +++ b/src/REL/w06Dll/bowser.c @@ -422,12 +422,12 @@ static void fn_1_9E5C(s32 arg0) { HuAudFXPlay(0x51); var_r30 = BoardPlayerCoinsGet(arg0); if (var_r30 != 0) { - var_r29 = 0x300003; + var_r29 = MAKE_MESSID(48, 3); var_r28 = -1; var_r30 = BoardPlayerCoinsGet(arg0) - (var_r30 >> 1); var_r25 = 8; } else { - var_r29 = 0x300005; + var_r29 = MAKE_MESSID(48, 5); var_r28 = 1; var_r30 = 50; var_r25 = 7; @@ -466,9 +466,9 @@ static void fn_1_9E5C(s32 arg0) { HuPrcVSleep(); } if (var_r28 == -1) { - var_r29 = 0x300004; + var_r29 = MAKE_MESSID(48, 4); } else { - var_r29 = 0x300006; + var_r29 = MAKE_MESSID(48, 6); } BoardModelMotionShiftSet(lbl_1_data_498, 3, 0.0f, 8.0f, 0); HuAudFXPlay(0x3A); @@ -801,7 +801,7 @@ static void fn_1_B27C(s32 arg0) { BoardMusStart(1, 6, 0x7F, 0); BoardModelMotionShiftSet(lbl_1_data_498, 7, 0.0f, 8.0f, 0); HuPrcSleep(8); - var_r29 = 0x300026; + var_r29 = MAKE_MESSID(48, 38); var_r27 = 50; BoardWinCreate(2, var_r29, 5); BoardWinWait(); @@ -820,7 +820,7 @@ static void fn_1_B27C(s32 arg0) { while (!BoardModelMotionEndCheck(lbl_1_data_498)) { HuPrcVSleep(); } - var_r29 = 0x300027; + var_r29 = MAKE_MESSID(48, 39); BoardModelMotionShiftSet(lbl_1_data_498, 3, 0.0f, 8.0f, 0); HuAudFXPlay(0x3A); BoardWinCreate(2, var_r29, 5); @@ -1222,7 +1222,7 @@ void fn_1_CD0C(void) { while (!BoardViewMoveCheck()) { HuPrcVSleep(); } - BoardWinCreate(3, 0x300001, -1); + BoardWinCreate(3, MAKE_MESSID(48, 1), -1); BoardWinWait(); BoardWinKill(); } diff --git a/src/REL/w10Dll/main.c b/src/REL/w10Dll/main.c index a9eaff17..0b8de21c 100644 --- a/src/REL/w10Dll/main.c +++ b/src/REL/w10Dll/main.c @@ -134,9 +134,9 @@ void BoardCreate(void) BoardBooHouseHostSet(boardBooHouseHostMdl); BoardShopHostSet(boardShopHostMdl); BoardLotteryHostSet(boardLotteryHostMdl); - HuWinMesMaxSizeGet(1, size, 0x2E003A); + HuWinMesMaxSizeGet(1, size, MAKE_MESSID(0x2E, 0x3A)); tutorialExitWin = HuWinCreate(-10000.0f, 390.0f, size[0], size[1], 1); - HuWinMesSet(tutorialExitWin, 0x2E003A); + HuWinMesSet(tutorialExitWin, MAKE_MESSID(0x2E, 0x3A)); HuWinMesSpeedSet(tutorialExitWin, 0); HuWinPriSet(tutorialExitWin, 1); HuWinMesPalSet(tutorialExitWin, 7, 0, 0, 0); diff --git a/src/REL/w20Dll/main.c b/src/REL/w20Dll/main.c index f4c3829d..70592f07 100644 --- a/src/REL/w20Dll/main.c +++ b/src/REL/w20Dll/main.c @@ -17,14 +17,14 @@ s16 lbl_1_data_6 = 0xFFFF; s16 lbl_1_data_8 = 0xFFFF; s16 lbl_1_data_A = 0xFFFF; s32 lbl_1_data_C[] = { - 0x005F0000, - 0x001A0000, - 0x006D0000, - 0x008A0000, - 0x00850000, - 0x00110000, - 0x000D0000, - 0x00810000, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), }; s32 unkMotTbl[] = { DATA_MAKE_NUM(DATADIR_BGUEST, 42), -1 }; @@ -50,12 +50,12 @@ void BoardCreate(void) lbl_1_bss_0->unk_04 = 0; lbl_1_bss_0->unk_06 = 0; BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W20, 0)); - lbl_1_data_0 = BoardModelCreate(0x7C0001, NULL, 0); + lbl_1_data_0 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W20, 0x01), NULL, 0); fn_8006DDE8(lbl_1_data_0, -1.0f); BoardModelPosSet(lbl_1_data_0, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_0, 0, 0x40000001); BoardModelMotionSpeedSet(lbl_1_data_0, 1.0f); - lbl_1_data_2 = BoardModelCreate(0x7C0002, NULL, 0); + lbl_1_data_2 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W20, 0x02), NULL, 0); fn_8006DDE8(lbl_1_data_2, -1.0f); BoardModelPosSet(lbl_1_data_2, 0.0f, 0.0f, 0.0f); BoardModelMotionStart(lbl_1_data_2, 0, 0x40000001); diff --git a/src/REL/ztardll/font.c b/src/REL/ztardll/font.c index 4731b9f9..c2c073bd 100644 --- a/src/REL/ztardll/font.c +++ b/src/REL/ztardll/font.c @@ -3,17 +3,56 @@ #include "REL/ztardll.h" s32 lbl_1_data_B0[0xC6] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0x150000, 0x150001, 0x150002, 0x150003, 0x150004, 0x150005, 0x150006, 0x150007, 0x150008, 0x150009, 0x150000, 0x150000, - 0x150000, 0x15000A, 0x150000, 0x150000, 0x150000, 0x15000F, 0x150010, 0x150011, 0x150012, 0x150013, 0x150014, 0x150015, 0x150016, 0x150017, - 0x150018, 0x150019, 0x15001A, 0x15001B, 0x15001C, 0x15001D, 0x15001E, 0x15001F, 0x150020, 0x150021, 0x150022, 0x150023, 0x150024, 0x150025, - 0x150026, 0x150027, 0x150028, 0x15001D, 0x15000D, 0x15001D, 0x15001D, 0x15001D, 0x15001D, 0x150029, 0x15002A, 0x15002B, 0x15002C, 0x15002D, - 0x15002E, 0x15002F, 0x150030, 0x150031, 0x150032, 0x150033, 0x150034, 0x150035, 0x150036, 0x150037, 0x150038, 0x150039, 0x15003A, 0x15003B, - 0x15003C, 0x15003D, 0x15003E, 0x15003F, 0x150040, 0x150041, 0x150042, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, - 0x150000, 0x150000, 0x15000A, 0x15000E, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, - 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, - 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, - 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, - 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x150000, 0x15000B, 0x15000C, 0x150000, 0x150000 }; + 0, 0, 0, 0, 0, 0, 0, DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x01), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x02), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x03), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x04), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x05), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x06), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x07), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x08), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x09), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0A), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0F), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x10), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x11), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x12), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x13), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x14), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x15), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x16), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x17), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x18), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x19), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1A), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1B), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1C), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1E), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1F), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x20), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x21), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x22), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x23), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x24), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x25), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x26), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x27), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x28), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0D), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x1D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x29), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2A), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2B), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2C), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2D), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2E), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x2F), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x30), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x31), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x32), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x33), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x34), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x35), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x36), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x37), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x38), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x39), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3A), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3B), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3C), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3D), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3E), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x3F), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x40), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x41), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x42), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0A), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0E), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0B), + DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0C), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00) }; s32 fn_1_7754(ZtarDllUnkStruct *arg0, u8 *arg1) { diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c index 0bd3da51..2a32c2a5 100644 --- a/src/REL/ztardll/main.c +++ b/src/REL/ztardll/main.c @@ -120,7 +120,7 @@ void fn_1_424(void) var_r27 = 0; fn_1_7D6C(lbl_1_bss_68); HuPrcVSleep(); - HuDataDirClose(0x640000); + HuDataDirClose(DATADIR_MPEX); lbl_1_bss_5A = 0; if (mgQuitExtraF != 0) { mgQuitExtraF = 0; @@ -192,14 +192,14 @@ block_7: } loop_19: fn_1_11020(); - fn_1_11264(0x330024, 0, 0); + fn_1_11264(MAKE_MESSID(0x33, 0x24), 0, 0); if (lbl_1_bss_5A == 0) { - fn_1_11264(0x330025, 0, 1); + fn_1_11264(MAKE_MESSID(0x33, 0x25), 0, 1); } else { - fn_1_11264(0x33002A, 0, 1); + fn_1_11264(MAKE_MESSID(0x33, 0x2A), 0, 1); } - fn_1_11708(0x33008D); + fn_1_11708(MAKE_MESSID(0x33, 0x8D)); for (var_r31 = 0; var_r31 <= 0x0A; var_r31++) { var_f31 = var_r31 / 10.0; @@ -226,10 +226,10 @@ loop_19: HuPrcVSleep(); } if (lbl_1_bss_5A == 0) { - fn_1_11264(0x330025, 0, 1); + fn_1_11264(MAKE_MESSID(0x33, 0x25), 0, 1); } else { - fn_1_11264(0x33002A, 0, 1); + fn_1_11264(MAKE_MESSID(0x33, 0x2A), 0, 1); } } } @@ -324,7 +324,7 @@ loop_19: HuPrcChildCreate(fn_1_7C00, 0x64, 0x2000, 0, lbl_1_bss_68); } fn_1_11020(); - fn_1_11264(0x33002C, 0, 0); + fn_1_11264(MAKE_MESSID(0x33, 0x2C), 0, 0); var_r30 = fn_1_11390(0); if (var_r30 != -1) { if (var_r30 != 1) { @@ -392,7 +392,7 @@ void fn_1_1774(void) for (var_r30 = 0; var_r30 < 0x10; var_r30++) { sp8.unk_5A[var_r30] = sp8.unk_3A[var_r30] = -1; } - var_r29 = MessData_MesPtrGet(messDataPtr, 0x170021); + var_r29 = MessData_MesPtrGet(messDataPtr, MAKE_MESSID(0x17, 0x21)); for (var_r26 = var_r29; *var_r29 != 0; var_r29++) { if (*var_r29 == 0xA) { *var_r29 = 0x10; @@ -588,11 +588,11 @@ void fn_1_2350(void) fn_1_11020(); fn_1_11338(GWPlayerCfg[spC[0]].character, 0); fn_1_11338(GWPlayerCfg[spC[1]].character, 1); - fn_1_11264(0x3300A0, 0, 0); + fn_1_11264(MAKE_MESSID(0x33, 0xA0), 0, 0); if (GWMGAvailGet(var_r31 + 0x191) == 0) { GWMGAvailSet(var_r31 + 0x191); GWGameStat.present[0x37] = 1; - fn_1_11264(0x330029, 0, 0); + fn_1_11264(MAKE_MESSID(0x33, 0x29), 0, 0); } fn_1_111E0(); WipeCreate(2, 0, 0x1E); @@ -671,7 +671,7 @@ void fn_1_2350(void) HuSprTPLvlSet(lbl_1_bss_50, 2, var_r31 / 20.0); HuPrcVSleep(); } - fn_1_114EC(0x33004F, 1); + fn_1_114EC(MAKE_MESSID(0x33, 0x4F), 1); while (TRUE) { if ((*HuPadBtnDown & 0x100) != 0) { HuAudFXPlay(2); @@ -827,12 +827,12 @@ void fn_1_33B0(void) if (var_r28 != 0xFF) { if (var_r28 < 8) { lbl_1_bss_36[var_r31] = CharModelCreate(var_r28, 2); - lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r28, 0x5F0000); - lbl_1_bss_E[var_r31][1] = CharModelMotionCreate(var_r28, 0x5F0003); + lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + lbl_1_bss_E[var_r31][1] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03)); if (var_r31 < 2) { - lbl_1_bss_E[var_r31][2] = CharModelMotionCreate(var_r28, 0x5F0048); - lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r28, 0x5F0017); - lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r28, 0x5F0018); + lbl_1_bss_E[var_r31][2] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48)); + lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17)); + lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r28, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18)); } CharModelVoiceEnableSet(GWPlayerCfg[spC[var_r31]].character, lbl_1_bss_E[var_r31][1], 0); Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); @@ -966,7 +966,7 @@ void fn_1_4374(void) HuPrcVSleep(); } } - fn_1_114EC(0x33004F, 1); + fn_1_114EC(MAKE_MESSID(0x33, 0x4F), 1); while (TRUE) { if (HuPadBtnDown[0] & PAD_BUTTON_A) { HuAudFXPlay(2); @@ -1058,9 +1058,9 @@ void fn_1_4948(void) var_r30 = GWPlayerCfg[spC[var_r31]].character; if (var_r30 < 8) { lbl_1_bss_36[var_r31] = CharModelCreate(var_r30, 2); - lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r30, 0x5F0000); - lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r30, 0x5F0017); - lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r30, 0x5F0018); + lbl_1_bss_E[var_r31][0] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + lbl_1_bss_E[var_r31][3] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17)); + lbl_1_bss_E[var_r31][4] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18)); Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); } else { @@ -1236,7 +1236,7 @@ s32 fn_1_524C(s32 arg0) var_r24 = HuWinCreate(0.0f, 0.0f, 0x1E0, 0x28, 0); HuWinMesSpeedSet(var_r24, 0); HuWinBGTPLvlSet(var_r24, 0.0f); - HuWinMesSet(var_r24, 0x1A0020); + HuWinMesSet(var_r24, MAKE_MESSID(0x1A, 0x20)); var_r22 = &winData[var_r24]; HuWinPriSet(var_r24, 5); HuWinPosSet(var_r24, (576.0f - var_r22->w) / 2, 300.0f); @@ -1393,7 +1393,7 @@ void fn_1_66F8(void) while (WipeStatGet() != 0) { HuPrcVSleep(); } - HuDataDirClose(0x160000); + HuDataDirClose(DATADIR_INSTPIC); while (lbl_1_bss_4 != 0) { HuPrcVSleep(); } diff --git a/src/REL/ztardll/select.c b/src/REL/ztardll/select.c index c12887fe..4459c2e8 100644 --- a/src/REL/ztardll/select.c +++ b/src/REL/ztardll/select.c @@ -77,24 +77,24 @@ void fn_1_FD90(s32 arg0); extern s16 lbl_1_bss_4; s32 lbl_1_data_3C8[8] = { - 0x5F0000, - 0x1A0000, - 0x6D0000, - 0x8A0000, - 0x850000, - 0x110000, - 0xD0000, - 0x810000, + DATADIR_MARIOMOT, + DATADIR_LUIGIMOT, + DATADIR_PEACHMOT, + DATADIR_YOSHIMOT, + DATADIR_WARIOMOT, + DATADIR_DONKEYMOT, + DATADIR_DAISYMOT, + DATADIR_WALUIGIMOT, }; s32 lbl_1_data_3E8[8] = { - 0x5E0000, - 0x190000, - 0x6C0000, - 0x890000, - 0x840000, - 0x100000, - 0xC0000, - 0x800000, + DATADIR_MARIOMDL1, + DATADIR_LUIGIMDL1, + DATADIR_PEACHMDL1, + DATADIR_YOSHIMDL1, + DATADIR_WARIOMDL1, + DATADIR_DONKEYMDL1, + DATADIR_DAISYMDL1, + DATADIR_WALUIGIMDL1, }; s32 lbl_1_bss_26C[0x1B]; @@ -164,9 +164,9 @@ s32 fn_1_7E0C(s32 arg0) var_r29 = -1; fn_1_A610(); fn_1_11020(); - fn_1_11264(0x1A0005, -1, -1); + fn_1_11264(MAKE_MESSID(0x1A, 0x05), -1, -1); fn_1_10FBC(1); - fn_1_11708(0x330091); + fn_1_11708(MAKE_MESSID(0x33, 0x91)); lbl_1_bss_20C.unk_04 = (ZtarUnkFunc)fn_1_AEE4; var_r29 = -1; while (TRUE) { @@ -179,7 +179,7 @@ s32 fn_1_7E0C(s32 arg0) } if (var_r29 != var_r30) { var_r29 = var_r30; - fn_1_11264(var_r30 + 0x1A001B, -1, 1); + fn_1_11264(var_r30 + MAKE_MESSID(0x1A, 0x1B), -1, 1); } if (lbl_1_bss_20C.unk_28 == 0) { if (HuPadBtnDown[0] & PAD_BUTTON_A) { @@ -253,12 +253,12 @@ s32 fn_1_8030(s32 arg0, s32 arg1) fn_1_11020(); fn_1_10FBC(1); if (arg1 == 1) { - fn_1_11264(0x1E005E, -1, -1); + fn_1_11264(MAKE_MESSID(0x1E, 0x5E), -1, -1); } else { - fn_1_11264(0x1A0009, -1, -1); + fn_1_11264(MAKE_MESSID(0x1A, 0x09), -1, -1); } - fn_1_11708(0x330092); + fn_1_11708(MAKE_MESSID(0x33, 0x92)); for (var_r31 = 0; var_r31 < var_r30; var_r31++) { if (lbl_1_bss_8C[var_r31].unk_50 == 0) { lbl_1_bss_8C[var_r31].unk_04 = (ZtarUnkFunc)fn_1_D280; @@ -352,15 +352,15 @@ s32 fn_1_8338(s32 arg0, s32 arg1) } } if (var_r26 == -1) { - fn_1_11338(var_r25 + 0x1A0023, 1); - fn_1_11264(0x1A0028, -1, var_r26); + fn_1_11338(var_r25 + MAKE_MESSID(0x1A, 0x23), 1); + fn_1_11264(MAKE_MESSID(0x1A, 0x28), -1, var_r26); } else { - fn_1_11338(var_r25 + 0x1A0023, 1); - fn_1_11264(0x1A0028, -1, var_r26); + fn_1_11338(var_r25 + MAKE_MESSID(0x1A, 0x23), 1); + fn_1_11264(MAKE_MESSID(0x1A, 0x28), -1, var_r26); } var_r26 = 1; - fn_1_11708(0x330092); + fn_1_11708(MAKE_MESSID(0x33, 0x92)); for (var_r31 = 0; var_r31 < arg1; var_r31++) { if ((lbl_1_bss_8C[var_r31].unk_50 != 0) && (lbl_1_bss_8C[var_r31].unk_08 == 0)) { var_r30 = var_r31; @@ -389,9 +389,9 @@ s32 fn_1_8338(s32 arg0, s32 arg1) } } lbl_1_bss_8C[var_r30].unk_04 = NULL; - fn_1_11264(0x1A0022, -1, 1); + fn_1_11264(MAKE_MESSID(0x1A, 0x22), -1, 1); fn_1_10FBC(1); - fn_1_11708(0x330093); + fn_1_11708(MAKE_MESSID(0x33, 0x93)); var_r29 = fn_1_F214(&lbl_1_bss_8C[var_r30]); if (var_r29 == 1) { HuAudFXPlay(2); @@ -470,9 +470,9 @@ s32 fn_1_88A4(void) var_r26 = -1; fn_1_A8E8(); fn_1_11020(); - fn_1_11264(0x1A0005, -1, -1); + fn_1_11264(MAKE_MESSID(0x1A, 0x05), -1, -1); fn_1_10FBC(1); - fn_1_11708(0x330091); + fn_1_11708(MAKE_MESSID(0x33, 0x91)); lbl_1_bss_20C.unk_04 = (ZtarUnkFunc)fn_1_B468; while (TRUE) { fn_1_10FBC(1); @@ -484,7 +484,7 @@ s32 fn_1_88A4(void) } if (var_r26 != var_r30) { var_r26 = var_r30; - fn_1_11264(var_r30 + 0x330093, -1, 1); + fn_1_11264(var_r30 + MAKE_MESSID(0x33, 0x93), -1, 1); } if (lbl_1_bss_20C.unk_28 != 0) { continue; @@ -581,8 +581,8 @@ s32 fn_1_8B94(s32 arg0) } fn_1_11020(); fn_1_10FBC(1); - fn_1_11264(0x1A0009, -1, -1); - fn_1_11708(0x330092); + fn_1_11264(MAKE_MESSID(0x1A, 0x09), -1, -1); + fn_1_11708(MAKE_MESSID(0x33, 0x92)); for (var_r31 = 0; var_r31 < var_r30; var_r31++) { if (lbl_1_bss_8C[var_r31].unk_50 == 0) { lbl_1_bss_8C[var_r31].unk_04 = (ZtarUnkFunc)fn_1_D280; @@ -668,15 +668,15 @@ s32 fn_1_8E50(s32 arg0) } } if (var_r26 == -1) { - fn_1_11338(var_r25 + 0x1A0023, 1); - fn_1_11264(0x1A0028, -1, var_r26); + fn_1_11338(var_r25 + MAKE_MESSID(0x1A, 0x23), 1); + fn_1_11264(MAKE_MESSID(0x1A, 0x28), -1, var_r26); } else { - fn_1_11338(var_r25 + 0x1A0023, 1); - fn_1_11264(0x1A0028, -1, var_r26); + fn_1_11338(var_r25 + MAKE_MESSID(0x1A, 0x23), 1); + fn_1_11264(MAKE_MESSID(0x1A, 0x28), -1, var_r26); } var_r26 = 1; - fn_1_11708(0x330092); + fn_1_11708(MAKE_MESSID(0x33, 0x92)); for (var_r31 = 0; var_r31 < var_r28; var_r31++) { if ((lbl_1_bss_8C[var_r31].unk_50 != 0) && (lbl_1_bss_8C[var_r31].unk_08 == 0)) { var_r30 = var_r31; @@ -705,9 +705,9 @@ s32 fn_1_8E50(s32 arg0) } } lbl_1_bss_8C[var_r30].unk_04 = NULL; - fn_1_11264(0x1A0022, -1, 1); + fn_1_11264(MAKE_MESSID(0x1A, 0x22), -1, 1); fn_1_10FBC(1); - fn_1_11708(0x330093); + fn_1_11708(MAKE_MESSID(0x33, 0x93)); var_r29 = fn_1_F214(&lbl_1_bss_8C[var_r30]); if (var_r29 == 1) { HuAudFXPlay(2); @@ -2947,7 +2947,7 @@ void fn_1_11020(void) void fn_1_111E0(void) { if (lbl_1_data_66C != -1) { - HuWinMesSet(lbl_1_data_66C, 0x250004); + HuWinMesSet(lbl_1_data_66C, MAKE_MESSID(0x25, 0x04)); HuWinExAnimOut(lbl_1_data_66C); HuWinExCleanup(lbl_1_data_66C); lbl_1_data_66C = -1; @@ -2993,7 +2993,7 @@ s32 fn_1_11390(s32 arg0) s32 var_r27; s32 var_r26; - HuWinMesMaxSizeGet(1, spC, 0x1E0035); + HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(0x1E, 0x35)); var_r30 = spC[0]; var_r29 = spC[1]; var_r27 = 0x22C - var_r30; @@ -3003,9 +3003,9 @@ s32 fn_1_11390(s32 arg0) HuWinMesPalSet(var_r31, 7, 0, 0, 0); HuWinExAnimIn(var_r31); HuWinMesSpeedSet(var_r31, 0); - HuWinMesSet(var_r31, 0x1E0035); + HuWinMesSet(var_r31, MAKE_MESSID(0x1E, 0x35)); var_r28 = HuWinChoiceGet(var_r31, arg0); - HuWinMesSet(var_r31, 0x250004); + HuWinMesSet(var_r31, MAKE_MESSID(0x25, 0x04)); HuWinExAnimOut(var_r31); HuWinExCleanup(var_r31); diff --git a/src/game/board/block.c b/src/game/board/block.c index a3e73511..11e6ca9e 100644 --- a/src/game/board/block.c +++ b/src/game/board/block.c @@ -1,11 +1,11 @@ +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/star.h" +#include "game/board/window.h" #include "game/flag.h" #include "game/objsub.h" #include "game/process.h" -#include "game/board/main.h" -#include "game/board/player.h" -#include "game/board/model.h" -#include "game/board/star.h" -#include "game/board/window.h" #include "math.h" #define BLOCK_SPAWN 0 @@ -21,7 +21,7 @@ typedef struct { u8 opened : 1; u8 unk00_field5 : 1; }; - + s16 hit_y_velocity; s16 target_y_pos; } BlockWork; @@ -30,7 +30,7 @@ typedef struct { struct { u8 kill : 1; }; - + u8 lifetime; s8 model_index; s16 model; @@ -38,19 +38,19 @@ typedef struct { static void BlockProc(void); static void DestroyBlock(void); -static void ExecBlockObj(omObjData* arg0); +static void ExecBlockObj(omObjData *arg0); static void CreateBlockObj(s32 arg0); -static void DestroyBlockObj(BlockWork* unused0, omObjData* unused1); -static void SpawnBlock(BlockWork* arg0, omObjData* arg1); -static void HitBlock(BlockWork* arg0, omObjData* arg1); -static void OpenBlock(BlockWork* arg0, omObjData* arg1); +static void DestroyBlockObj(BlockWork *unused0, omObjData *unused1); +static void SpawnBlock(BlockWork *arg0, omObjData *arg1); +static void HitBlock(BlockWork *arg0, omObjData *arg1); +static void OpenBlock(BlockWork *arg0, omObjData *arg1); static void SetBlockOpen(void); static void SetBlockStop(void); static void WaitBlockHit(void); static void CreateCoinMdl(void); static void KillCoinMdl(void); static void PopupCoin(void); -static void PopupCoinExec(omObjData* arg0); +static void PopupCoinExec(omObjData *arg0); extern s8 boardTutorialBlockF; extern s8 boardTutorialBlockItem; @@ -62,37 +62,41 @@ static f32 rotMax; static f32 scaleAngle; static f32 rotY; -static omObjData* blockObj; -static Process* blockProc; +static omObjData *blockObj; +static Process *blockProc; static s16 coinMdl[10] = { -1, -1, -1, -1 }; static s32 coinF[10]; -s32 BoardBlockExec(s32 arg0) { +s32 BoardBlockExec(s32 arg0) +{ if (BoardPlayerSizeGet(arg0) == 2) { return 0; } - + blockProc = HuPrcChildCreate(BlockProc, 0x2003, 0x3800U, 0, boardMainProc); HuPrcDestructorSet2(blockProc, DestroyBlock); - + while (blockProc != NULL) { HuPrcVSleep(); } - + return 0; } -static void BlockProc(void) { - s32 sp14[8] = {0x005F0060, 0x001A0060, 0x006D0060, 0x008A0060, 0x00850060, 0x00110060, 0x000D0060, 0x00810060}; +static void BlockProc(void) +{ + s32 sp14[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x60), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x60), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x60), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x60), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x60), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x60), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x60), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x60) }; Point3d sp8; s32 var_r28; s32 i; s32 player; - BlockWork* work; - s32* temp_r4; + BlockWork *work; + s32 *temp_r4; s32 player_character; - + player = GWSystem.player_curr; player_character = GWPlayer[player].character; @@ -101,12 +105,12 @@ static void BlockProc(void) { BoardPlayerMotBlendSet(player, 0, 0xF); omVibrate(player, 12, 12, 0); CreateBlockObj(player); - + work = OM_GET_WORK_PTR(blockObj, BlockWork); while (work->state != BLOCK_HIT) { HuPrcVSleep(); } - + BoardCameraViewSet(3); BoardCameraMotionWait(); BoardWinCreate(0, 0x10000, -1); @@ -123,7 +127,7 @@ static void BlockProc(void) { HuPrcVSleep(); } BoardPlayerIdleSet(player); - + if (work->contains_star != 0) { SetBlockStop(); BoardModelPosGet(starMdl, &sp8); @@ -134,10 +138,11 @@ static void BlockProc(void) { if (_CheckFlag(FLAG_ID_MAKE(1, 11)) == 0) { BoardAudSeqPause(0, 0, 1000); } - } else { + } + else { for (i = 0; i < 0x14; i++) { WaitBlockHit(); - BoardPlayerMotionStart(player, (s32) jumpMot, 0); + BoardPlayerMotionStart(player, (s32)jumpMot, 0); BoardPlayerMotionSpeedSet(player, 2); while (BoardPlayerMotionTimeGet(player) < 4) { HuPrcVSleep(); @@ -152,29 +157,30 @@ static void BlockProc(void) { HuAudFXPlay(7); HuPrcVSleep(); } - + SetBlockStop(); } - + BoardWinCreate(0, work->contains_star != 0 ? MAKE_MESSID(1, 1) : MAKE_MESSID(1, 2), -1); BoardWinWait(); BoardWinKill(); KillCoinMdl(); work->kill = 1; - - BoardPlayerIdleSet((s32) player); + + BoardPlayerIdleSet((s32)player); HuPrcVSleep(); - + if ((_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) && work->contains_star == 0) { BoardTutorialHookExec(0x16, 0); } - + BoardCameraViewSet(2); BoardCameraMotionWait(); HuPrcEnd(); } -static void DestroyBlock(void) { +static void DestroyBlock(void) +{ if (jumpMot != -1) { BoardPlayerMotionKill(GWSystem.player_curr, jumpMot); jumpMot = -1; @@ -183,71 +189,74 @@ static void DestroyBlock(void) { blockProc = 0; } -static void CreateBlockObj(s32 arg0) { +static void CreateBlockObj(s32 arg0) +{ Point3d player_pos; - BlockWork* work; + BlockWork *work; s8 contains_star; - + BoardPlayerPosGet(arg0, &player_pos); - starMdl = BoardModelCreate(0x70004, NULL, 0); + starMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 4), NULL, 0); BoardModelVisibilitySet(starMdl, 0); BoardModelMotionSpeedSet(starMdl, 0); BoardModelLayerSet(starMdl, 2U); - + blockObj = omAddObjEx(boardObjMan, 0x101, 0U, 0U, -1, ExecBlockObj); - + work = OM_GET_WORK_PTR(blockObj, BlockWork); work->kill = 0; work->unk00_field2 = 0; work->opened = 0; work->unk00_field5 = 0; work->state = BLOCK_SPAWN; - + blockObj->trans.x = player_pos.x; blockObj->trans.y = 270 + player_pos.y; blockObj->trans.z = player_pos.z; - + blockObj->scale.x = blockObj->scale.y = blockObj->scale.z = 0.01; blockObj->rot.x = blockObj->rot.y = blockObj->rot.z = 0.0; - + scaleAngle = 0; rotY = 0; rotMax = 30; - + BoardModelVisibilitySet(starMdl, 1); - + if (BoardRandFloat() > 0.5f) { contains_star = 0; - } else { + } + else { contains_star = 1; } - + work->contains_star = contains_star; - + if (boardTutorialBlockF != 0) { work->contains_star = boardTutorialBlockItem; boardTutorialBlockF = 0; } - + HuAudFXPlay(0x302); - + if (work->contains_star == 0) { CreateCoinMdl(); } } -static void ExecBlockObj(omObjData* arg0) { - BlockWork* work; +static void ExecBlockObj(omObjData *arg0) +{ + BlockWork *work; work = OM_GET_WORK_PTR(arg0, BlockWork); - + if (work->kill != 0 || BoardIsKill() != 0) { DestroyBlockObj(work, arg0); blockObj = 0; omDelObjEx(HuPrcCurrentGet(), arg0); return; } - + switch (work->state) { case BLOCK_SPAWN: SpawnBlock(work, arg0); @@ -259,30 +268,33 @@ static void ExecBlockObj(omObjData* arg0) { OpenBlock(work, arg0); break; } - + if (work->unk00_field5 != 0) { BoardModelVisibilitySet(starMdl, 0); } - + BoardModelPosSet(starMdl, arg0->trans.x, arg0->trans.y, arg0->trans.z); BoardModelRotSet(starMdl, arg0->rot.x, arg0->rot.y, arg0->rot.z); BoardModelScaleSet(starMdl, arg0->scale.x, arg0->scale.y, arg0->scale.z); } -static void DestroyBlockObj(BlockWork* unused0, omObjData* unused1) { +static void DestroyBlockObj(BlockWork *unused0, omObjData *unused1) +{ if (starMdl != -1) { BoardModelKill(starMdl); starMdl = -1; } } -static void SpawnBlock(BlockWork* arg0, omObjData* arg1) { +static void SpawnBlock(BlockWork *arg0, omObjData *arg1) +{ if (scaleAngle < 90.0f) { scaleAngle += 3.75f; if (scaleAngle > 90.0f) { scaleAngle = 90.0f; } - } else { + } + else { rotMax *= 0.5f; if (rotMax < 0.8f) { rotY = 0.0f; @@ -291,31 +303,33 @@ static void SpawnBlock(BlockWork* arg0, omObjData* arg1) { arg0->state = BLOCK_HIT; } } - + if (rotY < 360.0f) { rotY += rotMax; if (rotY > 360.0f) { rotY = 360.0f; } } - + arg1->rot.y = rotY; arg1->scale.x = arg1->scale.y = arg1->scale.z = sin(M_PI * scaleAngle / 180.0); } -static void HitBlock(BlockWork* arg0, omObjData* arg1) { +static void HitBlock(BlockWork *arg0, omObjData *arg1) +{ float var_f30; arg0->hit_y_velocity += 3; if (arg0->hit_y_velocity > 0x168) { arg0->hit_y_velocity -= 0x168; } - + OSs16tof32(&arg0->hit_y_velocity, &var_f30); arg1->trans.y += 0.2f * sin((M_PI * var_f30) / 180.0); } -static void OpenBlock(BlockWork* arg0, omObjData* arg1) { +static void OpenBlock(BlockWork *arg0, omObjData *arg1) +{ f32 target_y_pos; if (arg0->opened == 0) { @@ -323,16 +337,17 @@ static void OpenBlock(BlockWork* arg0, omObjData* arg1) { HuAudFXPlay(0x33B); BoardModelMotionStart(starMdl, 0, 0); } - + if (arg0->unk00_field2 == 0) { OSf32tos16(&arg1->trans.y, &arg0->target_y_pos); - + arg1->trans.y += 80.0f; arg0->unk00_field2 = 1; - } else { + } + else { OSs16tof32(&arg0->target_y_pos, &target_y_pos); arg1->trans.y += -8.0f; - + if (arg1->trans.y < target_y_pos) { arg1->trans.y = target_y_pos; arg0->state = BLOCK_HIT; @@ -340,43 +355,48 @@ static void OpenBlock(BlockWork* arg0, omObjData* arg1) { } } -static void SetBlockOpen(void) { - BlockWork* work; +static void SetBlockOpen(void) +{ + BlockWork *work; work = OM_GET_WORK_PTR(blockObj, BlockWork); work->state = BLOCK_OPEN; } -static void SetBlockStop(void) { - BlockWork* work; +static void SetBlockStop(void) +{ + BlockWork *work; work = OM_GET_WORK_PTR(blockObj, BlockWork); work->unk00_field5 = 1; } -static void WaitBlockHit(void) { - BlockWork* work; +static void WaitBlockHit(void) +{ + BlockWork *work; work = OM_GET_WORK_PTR(blockObj, BlockWork); - + while (work->state != BLOCK_HIT) { HuPrcVSleep(); } } -static void CreateCoinMdl(void) { +static void CreateCoinMdl(void) +{ s32 i; - + for (i = 0; i < 10; i += 1) { - coinMdl[i] = BoardModelCreate(0x7000A, NULL, 1); + coinMdl[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 1); BoardModelVisibilitySet(coinMdl[i], 0); coinF[i] = 0; } } -static void KillCoinMdl(void) { +static void KillCoinMdl(void) +{ s32 i; - + for (i = 0; i < 0xA; i += 1) { if (coinMdl[i] != -1) { BoardModelKill(coinMdl[i]); @@ -386,77 +406,81 @@ static void KillCoinMdl(void) { } } -static inline s32 FindCoinModel(s16 *out_model) { +static inline s32 FindCoinModel(s16 *out_model) +{ s32 i; - + for (i = 0; i < 10; i++) { if (coinF[i] == 0) { *out_model = coinMdl[i]; return i; } } - + return -1; } -static void PopupCoin(void) { +static void PopupCoin(void) +{ Point3d star_pos; - omObjData* coinObj; + omObjData *coinObj; s32 model_index; s16 model; - CoinWork* work; - + CoinWork *work; + do { HuPrcVSleep(); model_index = FindCoinModel(&model); } while (model_index == -1); - + coinObj = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, PopupCoinExec); work = OM_GET_WORK_PTR(coinObj, CoinWork); - + work->kill = 0; work->lifetime = 10; work->model = model; work->model_index = model_index; - + coinObj->trans.x = 15.0f; coinObj->trans.y = 40.0f; - + BoardModelPosGet(starMdl, &star_pos); BoardModelPosSetV(work->model, &star_pos); BoardModelVisibilitySet(work->model, 1); } -static void PopupCoinExec(omObjData* obj) { +static void PopupCoinExec(omObjData *obj) +{ Point3d coin_pos; Point3d coin_rot; - CoinWork* work; + CoinWork *work; work = OM_GET_WORK_PTR(obj, CoinWork); - + if (work->kill != 0 || BoardIsKill() != 0) { BoardModelVisibilitySet(work->model, 0); coinF[work->model_index] = 0; omDelObjEx(HuPrcCurrentGet(), obj); return; } - + if (work->lifetime != 0) { work->lifetime -= 1; - } else { + } + else { work->kill = 1; return; } - + BoardModelPosGet(work->model, &coin_pos); coin_pos.y += obj->trans.y; BoardModelPosSetV(work->model, &coin_pos); BoardModelRotGet(work->model, &coin_rot); coin_rot.y += obj->trans.x; - + if (coin_rot.y > 360.0f) { coin_rot.y -= 360.0f; } - + BoardModelRotSetV(work->model, &coin_rot); } diff --git a/src/game/board/boo_house.c b/src/game/board/boo_house.c index b3197298..544eabd6 100644 --- a/src/game/board/boo_house.c +++ b/src/game/board/boo_house.c @@ -1,19 +1,18 @@ #include "game/board/boo_house.h" -#include "game/msm.h" -#include "game/hsfdraw.h" -#include "game/gamework_data.h" -#include "game/board/player.h" -#include "game/board/model.h" -#include "game/board/com.h" +#include "game/board/audio.h" #include "game/board/boo.h" +#include "game/board/com.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/star.h" #include "game/board/ui.h" #include "game/board/view.h" -#include "game/board/audio.h" -#include "game/board/main.h" -#include "game/board/star.h" -#include "game/board/player.h" #include "game/board/window.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/msm.h" #include "ext_math.h" @@ -22,34 +21,78 @@ static s16 houseMdl[6]; // data static s32 hostMesTbl[6][6] = { - { 0x7000C, 0x7000D, 0x7000E, 0x7000F, 0x70010, 0x70011 }, - { 0x70012, 0x70013, 0x70014, 0x70015, 0x70016, 0x70017 }, - { 0x70018, 0x70019, 0x7001A, 0x7001B, 0x7001C, 0x7001D }, - { 0x7001E, 0x7001F, 0x70020, 0x70021, 0x70022, 0x70023 }, - { 0x70024, 0x70025, 0x70026, 0x70027, 0x70028, 0x70029 }, - { 0x7002A, 0x7002B, 0x7002C, 0x7002D, 0x7002E, 0x7002F }, + { + DATA_MAKE_NUM(DATADIR_BOARD, 0x0C), + DATA_MAKE_NUM(DATADIR_BOARD, 0x0D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x0E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x0F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x10), + DATA_MAKE_NUM(DATADIR_BOARD, 0x11), + }, + { + DATA_MAKE_NUM(DATADIR_BOARD, 0x12), + DATA_MAKE_NUM(DATADIR_BOARD, 0x13), + DATA_MAKE_NUM(DATADIR_BOARD, 0x14), + DATA_MAKE_NUM(DATADIR_BOARD, 0x15), + DATA_MAKE_NUM(DATADIR_BOARD, 0x16), + DATA_MAKE_NUM(DATADIR_BOARD, 0x17), + }, + { + DATA_MAKE_NUM(DATADIR_BOARD, 0x18), + DATA_MAKE_NUM(DATADIR_BOARD, 0x19), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1B), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1C), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1D), + }, + { + DATA_MAKE_NUM(DATADIR_BOARD, 0x1E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x20), + DATA_MAKE_NUM(DATADIR_BOARD, 0x21), + DATA_MAKE_NUM(DATADIR_BOARD, 0x22), + DATA_MAKE_NUM(DATADIR_BOARD, 0x23), + }, + { + DATA_MAKE_NUM(DATADIR_BOARD, 0x24), + DATA_MAKE_NUM(DATADIR_BOARD, 0x25), + DATA_MAKE_NUM(DATADIR_BOARD, 0x26), + DATA_MAKE_NUM(DATADIR_BOARD, 0x27), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x29), + }, + { + DATA_MAKE_NUM(DATADIR_BOARD, 0x2A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2B), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2C), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2F), + }, }; static BoardModelParam houseMdlTbl[6] = { - { 0x90000, { 0, 1, 0, 0, 0 }, 0xFFFF }, - { 0x90001, { 1, 1, 0, 0, 0 }, 0xFFFF }, - { 0x90003, { 1, 1, 0, 0, 0 }, 0xFFFF }, - { 0x90004, { 1, 1, 0, 0, 0 }, 0xFFFF }, - { 0x90004, { 1, 1, 0, 0, 0 }, 0xFFFF }, - { 0x90007, { 0, 1, 0, 0, 0 }, 0xFFFF }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x00), { 0, 1, 0, 0, 0 }, 0xFFFF }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x01), { 1, 1, 0, 0, 0 }, 0xFFFF }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x03), { 1, 1, 0, 0, 0 }, 0xFFFF }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x04), { 1, 1, 0, 0, 0 }, 0xFFFF }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x04), { 1, 1, 0, 0, 0 }, 0xFFFF }, + { DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x07), { 0, 1, 0, 0, 0 }, 0xFFFF }, }; static s32 booMotTbl[3] = { - 0x20013, 0x20016, 0xFFFFFFFF + DATA_MAKE_NUM(DATADIR_BGUEST, 0x13), + DATA_MAKE_NUM(DATADIR_BGUEST, 0x16), + DATA_NUM_LISTEND, }; -static s32 houseMotTbl[9][3] = { - { 0x20001, 0x20003, 0x20004 }, - { 0x20009, 0x2000B, 0x2000C }, - { 0x2000E, 0x20010, 0x20011 }, - { 0x20018, 0x2001A, 0x2001B }, - { 0x2001D, 0x2001F, 0x20020 }, - { 0x20022, 0x20024, 0x20025 }, - { 0x20018, 0x2001A, 0x2001B }, - { 0x20001, 0x20003, 0x20004 }, - { 0x20001, 0x20003, 0x20004 } +static s32 hostMotTbl[9][3] = { + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x01), DATA_MAKE_NUM(DATADIR_BGUEST, 0x03), DATA_MAKE_NUM(DATADIR_BGUEST, 0x04) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x09), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0B), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0C) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x0E), DATA_MAKE_NUM(DATADIR_BGUEST, 0x10), DATA_MAKE_NUM(DATADIR_BGUEST, 0x11) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x18), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1A), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1B) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x1D), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1F), DATA_MAKE_NUM(DATADIR_BGUEST, 0x20) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x22), DATA_MAKE_NUM(DATADIR_BGUEST, 0x24), DATA_MAKE_NUM(DATADIR_BGUEST, 0x25) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x18), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1A), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1B) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x01), DATA_MAKE_NUM(DATADIR_BGUEST, 0x03), DATA_MAKE_NUM(DATADIR_BGUEST, 0x04) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x01), DATA_MAKE_NUM(DATADIR_BGUEST, 0x03), DATA_MAKE_NUM(DATADIR_BGUEST, 0x04) }, }; // sbss @@ -58,16 +101,16 @@ static s8 stealTarget; static s8 comStarStealTarget; static s32 comCoinStealTarget; static s8 stealAmountStr[8]; -static Process* houseProc; +static Process *houseProc; // sdata static s16 houseShowMot = 0xFFFF; static s16 houseHideMot = 0xFFFF; static s16 ballMdl = 0xFFFF; static s16 booMdl = 0xFFFF; -static s16 lbl_801D37F8 = 0xFFFF; +static s16 smokeMdl = 0xFFFF; static s16 hostMdl = 0xFFFF; -static s16 houseMot[3] = { 0xFFFF, 0xFFFF, 0xFFFF }; +static s16 hostMot[3] = { 0xFFFF, 0xFFFF, 0xFFFF }; // determined functions static void ExecBooHouse(void); @@ -87,15 +130,18 @@ static void ApplyBooLight(void); static void SetBooBallPos(void); // FUNCTIONS // -void BoardBooHouseHostSet(s16 arg0) { +void BoardBooHouseHostSet(s16 arg0) +{ hostMdl = arg0; } -s16 BoardBooHouseHostGet(void) { +s16 BoardBooHouseHostGet(void) +{ return hostMdl; } -void BoardBooHouseCreate(void) { +void BoardBooHouseCreate(void) +{ Vec sp14; Vec sp8; @@ -107,17 +153,19 @@ void BoardBooHouseCreate(void) { if (hostMdl != -1) { BoardModelVisibilitySet(hostMdl, 0); } - HuDataDirClose(0x90000); + HuDataDirClose(DATADIR_BYOKODORI); } -void BoardBooHouseKill(void) { +void BoardBooHouseKill(void) +{ if (houseMdl[0] != -1) { BoardModelKill(houseMdl[0]); houseMdl[0] = -1; } } -void BoardBooHouseExec(s32 arg0) { +void BoardBooHouseExec(s32 arg0) +{ currPlayer = arg0; if (BoardPlayerSizeGet(currPlayer) != 2) { BoardRollDispSet(0); @@ -130,7 +178,8 @@ void BoardBooHouseExec(s32 arg0) { } } -static void ExecBooHouse(void) { +static void ExecBooHouse(void) +{ Vec sp38; Vec sp2C; Vec sp20; @@ -145,7 +194,7 @@ static void ExecBooHouse(void) { s32 var_r26; _SetFlag(0x10018); - var_r28 = BoardDataDirReadAsync(0x90000); + var_r28 = BoardDataDirReadAsync(DATADIR_BYOKODORI); var_r30 = GWPlayer[currPlayer].space_curr; BoardPlayerIdleSet(currPlayer); if (BoardPlayerCoinsGet(currPlayer) < 5) { @@ -159,7 +208,8 @@ static void ExecBooHouse(void) { if (GWPlayer[currPlayer].com != 0) { if (BoardBooComUseCheck(currPlayer) != 0) { BoardComKeySetLeft(); - } else { + } + else { BoardComKeySetRight(); } } @@ -168,13 +218,13 @@ static void ExecBooHouse(void) { BoardDataAsyncWait(var_r28); HuPrcEnd(); } - + for (var_r26 = var_r31 = 0; var_r31 < 4; var_r31++) { if (currPlayer != var_r31) { var_r26 += GWStarsGet(var_r31); } } - + for (var_r27 = var_r31 = 0; var_r31 < 4; var_r31++) { if (currPlayer != var_r31) { var_r27 += BoardPlayerCoinsGet(var_r31); @@ -203,7 +253,7 @@ static void ExecBooHouse(void) { BoardPlayerMoveBetween(currPlayer, var_r30, temp_r29); BoardPlayerIdleSet(currPlayer); BoardMusStart(1, 1, 0x7F, 0); - BoardModelMotionShiftSet(BoardBooHouseHostGet(), houseMot[0], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[0], 0.0f, 10.0f, 0x40000001); BoardWinCreate(2, hostMesTbl[GWBoardGet()][0], BoardWinPortraitGet()); BoardWinWait(); @@ -245,7 +295,7 @@ repeatWindowView: BoardStatusShowSet(currPlayer, 0); HuPrcVSleep(); } - BoardModelMotionShiftSet(BoardBooHouseHostGet(), houseMot[1], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[1], 0.0f, 10.0f, 0x40000001); CloseBooHouse(); BoardCameraViewSet(1); BoardCameraRotSet(0.0f, 0.0f); @@ -259,13 +309,14 @@ repeatWindowView: HuPrcEnd(); } -static void DestroyBooHouse(void) { +static void DestroyBooHouse(void) +{ s32 var_r31; for (var_r31 = 0; var_r31 < 3; var_r31++) { - if (houseMot[var_r31] != -1) { - BoardModelMotionKill(BoardBooHouseHostGet(), houseMot[var_r31]); - houseMot[var_r31] = -1; + if (hostMot[var_r31] != -1) { + BoardModelMotionKill(BoardBooHouseHostGet(), hostMot[var_r31]); + hostMot[var_r31] = -1; } } if (houseShowMot != -1) { @@ -278,12 +329,13 @@ static void DestroyBooHouse(void) { } BoardWinKill(); KillBooHouseModel(); - HuDataDirClose(0x90000); + HuDataDirClose(DATADIR_BYOKODORI); _ClearFlag(0x10018); houseProc = 0; } -static void PickComStealType(s32 arg0) { +static void PickComStealType(s32 arg0) +{ s32 var_r31; s32 var_r30; s32 var_r28; @@ -297,10 +349,11 @@ static void PickComStealType(s32 arg0) { } if (BoardPlayerCoinsGet(arg0) >= 0x32) { for (var_r31 = 0; var_r31 < 4; var_r31++) { - if ((var_r31 != arg0) && (GWStarsGet(var_r31) != 0) && (((s32) GWSystem.team == 0) || (var_r31 != BoardPlayerSameTeamFind(arg0)))) { + if ((var_r31 != arg0) && (GWStarsGet(var_r31) != 0) && (((s32)GWSystem.team == 0) || (var_r31 != BoardPlayerSameTeamFind(arg0)))) { if (var_r30 != 0) { BoardComKeySetDown(); - } else { + } + else { BoardComKeySetUp(); } return; @@ -310,7 +363,8 @@ static void PickComStealType(s32 arg0) { BoardComKeySetUp(); } -static void OpenBooHouse(void) { +static void OpenBooHouse(void) +{ s16 temp_r31; s32 temp_r5; s32 var_r30; @@ -318,11 +372,11 @@ static void OpenBooHouse(void) { ballMdl = BoardBooCreate(currPlayer, 0); temp_r31 = BoardBooHouseHostGet(); BoardModelMotionStart(temp_r31, 1, 0x40000001); - + for (var_r30 = 0; var_r30 < 3; var_r30++) { - houseMot[var_r30] = BoardModelMotionCreate(temp_r31, houseMotTbl[GWBoardGet()][var_r30]); + hostMot[var_r30] = BoardModelMotionCreate(temp_r31, hostMotTbl[GWBoardGet()][var_r30]); } - BoardModelMotionStart(temp_r31, houseMot[0], 0x40000001); + BoardModelMotionStart(temp_r31, hostMot[0], 0x40000001); BoardModelVisibilitySet(temp_r31, 1); HuAudFXPlay(0x337); HuAudFXPlay(0x344); @@ -337,7 +391,8 @@ static void OpenBooHouse(void) { BoardModelHookSet(houseMdl[0], "yoko06", temp_r31); if (GWBoardGet() == BOARD_ID_MAIN6) { BoardModelPosSet(temp_r31, 0.0f, 0.0f, -25.0f); - } else { + } + else { BoardModelPosSet(temp_r31, 0.0f, 0.0f, 0.0f); } BoardModelMotionStart(houseMdl[3], 0, 0x40000001); @@ -346,9 +401,9 @@ static void OpenBooHouse(void) { BoardModelMotionStart(booMdl, 1, 0x40000001); BoardModelVisibilitySet(booMdl, 1); BoardModelHookSet(houseMdl[0], "yoko8", booMdl); - lbl_801D37F8 = BoardModelCreate(0x90008, NULL, 0); - BoardModelVisibilitySet(lbl_801D37F8, 0); - BoardModelLayerSet(lbl_801D37F8, 2); + smokeMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x08), NULL, 0); + BoardModelVisibilitySet(smokeMdl, 0); + BoardModelLayerSet(smokeMdl, 2); BoardModelMotionStart(houseMdl[1], 0, 0x40000001); while (BoardModelMotionTimeGet(houseMdl[0]) < 90.0f) { @@ -358,16 +413,17 @@ static void OpenBooHouse(void) { BoardModelMotionShiftSet(houseMdl[1], houseHideMot, 0.0f, 10.0f, 0x40000001); BoardModelHookObjReset(houseMdl[0], "yoko02"); SetBooBallPos(); - BoardModelMotionShiftSet(BoardBooHouseHostGet(), houseMot[2], 0.0f, 10.0f, 0); + BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[2], 0.0f, 10.0f, 0); } -static void CloseBooHouse(void) { +static void CloseBooHouse(void) +{ BoardModelPosSet(ballMdl, 0.0f, 0.0f, 0.0f); BoardModelHookSet(houseMdl[0], "yoko02", ballMdl); BoardModelMotionShiftSet(houseMdl[1], 0, 90.0f, 10.0f, 0); BoardModelMotionShiftSet(houseMdl[0], 0, 90.0f, 10.0f, 0); HuPrcSleep(0xA); - + while (BoardModelMotionShiftIDGet(houseMdl[0]) != -1) { HuPrcVSleep(); } @@ -376,7 +432,7 @@ static void CloseBooHouse(void) { } HuAudFXPlay(0x336); BoardAudSeqFadeOut(1, 0x3E8); - + while (BoardModelMotionEndCheck(houseMdl[0]) == 0) { HuPrcVSleep(); } @@ -385,7 +441,8 @@ static void CloseBooHouse(void) { ballMdl = -1; } -static void CreateBooHouseModel(void) { +static void CreateBooHouseModel(void) +{ s32 var_r31; for (var_r31 = 0; var_r31 < 6; var_r31++) { @@ -393,11 +450,12 @@ static void CreateBooHouseModel(void) { houseMdl[var_r31] = BoardModelCreateParam(&houseMdlTbl[var_r31], 0, 0); } } - houseShowMot = BoardModelMotionCreate(houseMdl[0], 0x90009); - houseHideMot = BoardModelMotionCreate(houseMdl[1], 0x9000A); + houseShowMot = BoardModelMotionCreate(houseMdl[0], DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x09)); + houseHideMot = BoardModelMotionCreate(houseMdl[1], DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x0A)); } -static void KillBooHouseModel(void) { +static void KillBooHouseModel(void) +{ s32 temp_r4; s32 var_r31; @@ -411,28 +469,29 @@ static void KillBooHouseModel(void) { BoardModelKill(booMdl); booMdl = -1; } - if (lbl_801D37F8 != -1) { - BoardModelKill(lbl_801D37F8); - lbl_801D37F8 = -1; + if (smokeMdl != -1) { + BoardModelKill(smokeMdl); + smokeMdl = -1; } BoardModelVisibilitySet(BoardBooHouseHostGet(), 0); } -static void ExecNullSteal(void) { +static void ExecNullSteal(void) +{ HuAudFXPlay(0x4C); BoardWinCreate(2, hostMesTbl[GWBoardGet()][5], BoardWinPortraitGet()); BoardWinWait(); BoardWinKill(); } -static void ExecStarSteal(void) { +static void ExecStarSteal(void) +{ Vec sp14; Vec sp8; s32 temp_r29; s32 var_r30; s32 var_r31; - for (var_r30 = 0; var_r30 < 0x32; var_r30++) { BoardPlayerCoinsAdd(currPlayer, -1); HuAudFXPlay(0xE); @@ -444,16 +503,16 @@ static void ExecStarSteal(void) { BoardWinWait(); BoardWinKill(); BoardStatusShowSetAll(0); - + while (BoardPickerDoneCheck() == 0) { HuPrcVSleep(); } HuAudFXPlay(0x4C); Hu3DModelObjPosGet(BoardModelIDGet(houseMdl[0]), "yoko8", &sp14); sp14.y += 20.0f; - BoardModelMotionStart(lbl_801D37F8, 0, 0); - BoardModelVisibilitySet(lbl_801D37F8, 1); - BoardModelPosSetV(lbl_801D37F8, &sp14); + BoardModelMotionStart(smokeMdl, 0, 0); + BoardModelVisibilitySet(smokeMdl, 1); + BoardModelPosSetV(smokeMdl, &sp14); HuPrcSleep(5); for (var_r31 = 0xFF; var_r31 > 0; var_r31 -= 0x33) { @@ -464,11 +523,11 @@ static void ExecStarSteal(void) { HuPrcVSleep(); } BoardModelVisibilitySet(booMdl, 0); - - while (BoardModelMotionEndCheck(lbl_801D37F8) == 0) { + + while (BoardModelMotionEndCheck(smokeMdl) == 0) { HuPrcVSleep(); } - BoardModelVisibilitySet(lbl_801D37F8, 0); + BoardModelVisibilitySet(smokeMdl, 0); BoardCameraMotionStartEx(ballMdl, NULL, NULL, 325.0f, -1.0f, 0x15); temp_r29 = BoardBooStealMain(); sp8.x = 0.0f; @@ -479,11 +538,11 @@ static void ExecStarSteal(void) { if (temp_r29 == 0) { BoardModelMotionStart(booMdl, 2, 0x40000001); } - BoardModelMotionStart(lbl_801D37F8, 0, 0); - BoardModelVisibilitySet(lbl_801D37F8, 1); + BoardModelMotionStart(smokeMdl, 0, 0); + BoardModelVisibilitySet(smokeMdl, 1); HuPrcSleep(0xB); BoardModelVisibilitySet(booMdl, 1); - + for (var_r31 = 0; var_r31 < 0xFF; var_r31 += 0x33) { if (var_r31 > 0xFF) { var_r31 = 0xFF; @@ -492,21 +551,21 @@ static void ExecStarSteal(void) { HuPrcVSleep(); } BoardModelAlphaSet(booMdl, -1); - - while (BoardModelMotionEndCheck(lbl_801D37F8) == 0) { + + while (BoardModelMotionEndCheck(smokeMdl) == 0) { HuPrcVSleep(); } - BoardModelVisibilitySet(lbl_801D37F8, 0); + BoardModelVisibilitySet(smokeMdl, 0); } -static void ExecCoinSteal(void) { +static void ExecCoinSteal(void) +{ Vec sp14; Vec sp8; s32 temp_r29; s32 var_r30; s32 var_r31; - for (var_r30 = 0; var_r30 < 5; var_r30++) { BoardPlayerCoinsAdd(currPlayer, -1); HuAudFXPlay(0xE); @@ -518,16 +577,16 @@ static void ExecCoinSteal(void) { BoardWinWait(); BoardWinKill(); BoardStatusShowSetAll(0); - + while (BoardPickerDoneCheck() == 0) { HuPrcVSleep(); } HuAudFXPlay(0x4C); Hu3DModelObjPosGet(BoardModelIDGet(houseMdl[0]), "yoko8", &sp14); sp14.y += 20.0f; - BoardModelMotionStart(lbl_801D37F8, 0, 0); - BoardModelVisibilitySet(lbl_801D37F8, 1); - BoardModelPosSetV(lbl_801D37F8, &sp14); + BoardModelMotionStart(smokeMdl, 0, 0); + BoardModelVisibilitySet(smokeMdl, 1); + BoardModelPosSetV(smokeMdl, &sp14); HuPrcSleep(5); for (var_r31 = 0xFF; var_r31 > 0; var_r31 -= 0x33) { @@ -538,11 +597,11 @@ static void ExecCoinSteal(void) { HuPrcVSleep(); } BoardModelVisibilitySet(booMdl, 0); - - while (BoardModelMotionEndCheck(lbl_801D37F8) == 0) { + + while (BoardModelMotionEndCheck(smokeMdl) == 0) { HuPrcVSleep(); } - BoardModelVisibilitySet(lbl_801D37F8, 0); + BoardModelVisibilitySet(smokeMdl, 0); BoardCameraMotionStartEx(ballMdl, NULL, NULL, 325.0f, -1.0f, 0x15); temp_r29 = BoardBooStealMain(); sp8.x = 0.0f; @@ -553,11 +612,11 @@ static void ExecCoinSteal(void) { if (temp_r29 == 0) { BoardModelMotionStart(booMdl, 2, 0x40000001); } - BoardModelMotionStart(lbl_801D37F8, 0, 0); - BoardModelVisibilitySet(lbl_801D37F8, 1); + BoardModelMotionStart(smokeMdl, 0, 0); + BoardModelVisibilitySet(smokeMdl, 1); HuPrcSleep(0xB); BoardModelVisibilitySet(booMdl, 1); - + for (var_r31 = 0; var_r31 < 0xFF; var_r31 += 0x33) { if (var_r31 > 0xFF) { var_r31 = 0xFF; @@ -566,14 +625,15 @@ static void ExecCoinSteal(void) { HuPrcVSleep(); } BoardModelAlphaSet(booMdl, -1); - - while (BoardModelMotionEndCheck(lbl_801D37F8) == 0) { + + while (BoardModelMotionEndCheck(smokeMdl) == 0) { HuPrcVSleep(); } - BoardModelVisibilitySet(lbl_801D37F8, 0); + BoardModelVisibilitySet(smokeMdl, 0); } -void ApplySteal(void) { +void ApplySteal(void) +{ s16 spA; s16 sp8; s32 temp_r30; @@ -589,7 +649,7 @@ void ApplySteal(void) { BoardModelAlphaSet(booMdl, 0xFF); var_f31 = BoardDAngleCalc(180.0f + BoardPlayerRotYGet(currPlayer)); BoardPlayerMotBlendSet(currPlayer, var_f31, 0xF); - + while (BoardPlayerMotBlendCheck(currPlayer) == 0) { HuPrcVSleep(); } @@ -597,9 +657,11 @@ void ApplySteal(void) { var_r31 = BoardBooStealValueGet(&spA, &sp8); if (var_r31 == 0) { ApplyBooLight(); - } else if (stealTarget == 0) { + } + else if (stealTarget == 0) { ApplyCoinSteal(spA, sp8); - } else { + } + else { ApplyStarSteal(); } BoardWinCreate(2, hostMesTbl[GWBoardGet()][4], BoardWinPortraitGet()); @@ -607,31 +669,36 @@ void ApplySteal(void) { BoardWinKill(); } -void ApplyCoinSteal(s16 arg0, s16 arg1) { +void ApplyCoinSteal(s16 arg0, s16 arg1) +{ u32 var_r31; s32 var_r30; - if ((s16) arg1 == 0) { - var_r31 = 0x70009; - } else if ((s16) arg1 < 3) { - var_r31 = 0x70008; - } else if ((s16) arg1 < 6) { - var_r31 = 0x70007; - } else if ((s16) arg1 < 8) { - var_r31 = 0x70006; - } else { - var_r31 = 0x70005; + if ((s16)arg1 == 0) { + var_r31 = MAKE_MESSID(7, 9); + } + else if ((s16)arg1 < 3) { + var_r31 = MAKE_MESSID(7, 8); + } + else if ((s16)arg1 < 6) { + var_r31 = MAKE_MESSID(7, 7); + } + else if ((s16)arg1 < 8) { + var_r31 = MAKE_MESSID(7, 6); + } + else { + var_r31 = MAKE_MESSID(7, 5); } sprintf(&stealAmountStr, "%d", arg0); HuAudFXPlay(0x4B); BoardWinCreate(2, var_r31, 3); - BoardWinInsertMesSet((s32) &stealAmountStr, 0); + BoardWinInsertMesSet((s32)&stealAmountStr, 0); BoardWinWait(); BoardWinKill(); BoardStatusShowSetForce(currPlayer); BoardStatusShowSet(currPlayer, 1); BoardPlayerMotionShiftSet(currPlayer, 7, 0.0f, 8.0f, 0); - + for (var_r30 = 0; var_r30 < arg0; var_r30++) { BoardPlayerCoinsAdd(currPlayer, 1); HuAudFXPlay(0xE); @@ -641,7 +708,8 @@ void ApplyCoinSteal(s16 arg0, s16 arg1) { BoardPlayerMotionEndWait(currPlayer); } -void ApplyStarSteal(void) { +void ApplyStarSteal(void) +{ s32 temp_r31; HuAudFXPlay(0x4C); @@ -660,7 +728,7 @@ void ApplyStarSteal(void) { HuPrcSleep(0xA); temp_r31 = HuAudSStreamPlay(6); BoardPlayerMotionEndWait(currPlayer); - + while (msmStreamGetStatus(temp_r31) != 0) { HuPrcVSleep(); } @@ -669,7 +737,8 @@ void ApplyStarSteal(void) { BoardPlayerVoiceEnableSet(currPlayer, 7, 1); } -void ApplyBooLight(void) { +void ApplyBooLight(void) +{ BoardWinCreate(2, MAKE_MESSID(7, 11), 3); BoardWinWait(); BoardWinKill(); @@ -679,7 +748,8 @@ void ApplyBooLight(void) { } } -void SetBooBallPos(void) { +void SetBooBallPos(void) +{ Mtx sp14; Vec sp8; s16 var_r31; @@ -690,7 +760,8 @@ void SetBooBallPos(void) { BoardModelPosSetV(ballMdl, &sp8); } -s32 BoardBooComUseCheck(s32 arg0) { +s32 BoardBooComUseCheck(s32 arg0) +{ s32 var_r31; u32 var_r30; s32 var_r29; @@ -703,23 +774,23 @@ s32 BoardBooComUseCheck(s32 arg0) { comStarStealTarget = comCoinStealTarget = -1; var_r26 = var_r27 = -1; switch (GWPlayer[arg0].diff) { - case 0: - var_r30 = 0x5F; - break; - case 1: - var_r30 = 0x32; - break; - case 2: - var_r30 = 5; - break; - case 3: - var_r30 = 0; - break; + case 0: + var_r30 = 0x5F; + break; + case 1: + var_r30 = 0x32; + break; + case 2: + var_r30 = 5; + break; + case 3: + var_r30 = 0; + break; } - + for (var_r31 = 0; var_r31 < 4; var_r31++) { if (var_r31 != arg0) { - if ((s32) GWSystem.team == 0 || var_r31 != BoardPlayerSameTeamFind(arg0)) { + if ((s32)GWSystem.team == 0 || var_r31 != BoardPlayerSameTeamFind(arg0)) { if (BoardPlayerItemFind(var_r31, 8) == -1 || BoardRandMod(0x64) < var_r30) { var_r29 = BoardPlayerCoinsGet(var_r31); var_r28 = GWStarsGet(var_r31); @@ -731,7 +802,7 @@ s32 BoardBooComUseCheck(s32 arg0) { } if (var_r26 < var_r28) { var_r26 = var_r28; - comStarStealTarget = (s8) var_r31; + comStarStealTarget = (s8)var_r31; } } } @@ -745,7 +816,8 @@ s32 BoardBooComUseCheck(s32 arg0) { return 1; } -void BoardBooHouseTutorialExec(void) { +void BoardBooHouseTutorialExec(void) +{ Vec sp38; Vec sp2C; Vec sp20; @@ -759,7 +831,7 @@ void BoardBooHouseTutorialExec(void) { s32 var_r31; s32 var_r30; - temp_r27 = BoardDataDirReadAsync(0x90000); + temp_r27 = BoardDataDirReadAsync(DATADIR_BYOKODORI); temp_r29 = BoardSpaceFlagSearch(0, 0x08000000); BoardDataAsyncWait(temp_r27); temp_r28 = BoardSpaceLinkFlagSearch(0, temp_r29, 0x02000000); @@ -775,22 +847,22 @@ void BoardBooHouseTutorialExec(void) { sp8.y = 150.0f; sp8.z = 0.0f; BoardCameraMotionStartEx(houseMdl[0], &sp14, &sp8, 1370.0f, -1.0f, 0x15); - + for (var_r31 = 0; var_r31 < 6; var_r31++) { if (var_r31 != 0) { houseMdl[var_r31] = BoardModelCreateParam(&houseMdlTbl[var_r31], NULL, NULL); } } - houseShowMot = BoardModelMotionCreate(houseMdl[0], 0x90009); - houseHideMot = BoardModelMotionCreate(houseMdl[1], 0x9000A); + houseShowMot = BoardModelMotionCreate(houseMdl[0], DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x09)); + houseHideMot = BoardModelMotionCreate(houseMdl[1], DATA_MAKE_NUM(DATADIR_BYOKODORI, 0x0A)); OpenBooHouse(); - + while (BoardModelMotionEndCheck(BoardBooHouseHostGet()) == 0) { HuPrcVSleep(); } - BoardModelMotionShiftSet(BoardBooHouseHostGet(), houseMot[0], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[0], 0.0f, 10.0f, 0x40000001); BoardTutorialHookExec(0x1C, 0); - BoardModelMotionShiftSet(BoardBooHouseHostGet(), houseMot[1], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[1], 0.0f, 10.0f, 0x40000001); BoardModelPosSet(ballMdl, 0.0f, 0.0f, 0.0f); BoardModelHookSet(houseMdl[0], "yoko02", ballMdl); BoardModelMotionShiftSet(houseMdl[1], 0, 90.0f, 10.0f, 0); @@ -810,7 +882,7 @@ void BoardBooHouseTutorialExec(void) { BoardModelHookReset(houseMdl[0]); BoardBooKill(); ballMdl = -1; - + for (var_r30 = 1; var_r30 < 6; var_r30++) { if (houseMdl[var_r30] != -1) { BoardModelKill(houseMdl[var_r30]); @@ -821,9 +893,9 @@ void BoardBooHouseTutorialExec(void) { BoardModelKill(booMdl); booMdl = -1; } - if (lbl_801D37F8 != -1) { - BoardModelKill(lbl_801D37F8); - lbl_801D37F8 = -1; + if (smokeMdl != -1) { + BoardModelKill(smokeMdl); + smokeMdl = -1; } BoardModelVisibilitySet(BoardBooHouseHostGet(), 0); } diff --git a/src/game/board/bowser.c b/src/game/board/bowser.c index adecec98..e228ccb9 100644 --- a/src/game/board/bowser.c +++ b/src/game/board/bowser.c @@ -406,9 +406,9 @@ static void ExecBowserGame(void) 437 }; s32 messLoss[3] = { - 0x30009, - 0x3000C, - 0x3000E + MAKE_MESSID(3, 9), + MAKE_MESSID(3, 12), + MAKE_MESSID(3, 14) }; s32 mg; s32 mess; @@ -459,9 +459,9 @@ static void ExecBowserGame(void) static void DoMGReturnEffect(void) { s32 messTbl[3] = { - 0x3000A, - 0x3000D, - 0x3000F + MAKE_MESSID(3, 10), + MAKE_MESSID(3, 13), + MAKE_MESSID(3, 15) }; s32 player; s32 coin; @@ -1512,10 +1512,10 @@ static void MiniBowserTake(void) delay = 6; } if(BoardPlayerCoinsGet(eventPlayer) != 0) { - mess = 0x30001; + mess = MAKE_MESSID(3, 1); coin_inc = -1; } else { - mess = 0x30003; + mess = MAKE_MESSID(3, 3); steal = 10; coin_inc = 1; } @@ -1584,10 +1584,10 @@ static void MiniBowserTakeAll(void) coin_total += BoardPlayerCoinsGet(j); } if(coin_total != 0) { - mess = 0x30004; + mess = MAKE_MESSID(3, 4); coin_inc = -1; } else { - mess = 0x30005; + mess = MAKE_MESSID(3, 5); steal = 10; coin_inc = 1; } @@ -1813,4 +1813,4 @@ static void WaitMiniBowserMotion(void) while(!BoardModelMotionEndCheck(models[0])) { HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/game/board/char_wheel.c b/src/game/board/char_wheel.c index e155fa5f..380fc7bc 100755 --- a/src/game/board/char_wheel.c +++ b/src/game/board/char_wheel.c @@ -53,16 +53,16 @@ static s16 wheelSprGrp = -1; static s32 wheelFXStat = -1; static s32 wheelSprTbl[] = { - 0x00070036, - 0x00070038, - 0x00070038, - 0x00070038, - 0x00070037, - 0x00070037, - 0x00070037, - 0x00070037, - 0x0007003A, - 0x00070039 + DATA_MAKE_NUM(DATADIR_BOARD, 0x36), + DATA_MAKE_NUM(DATADIR_BOARD, 0x38), + DATA_MAKE_NUM(DATADIR_BOARD, 0x38), + DATA_MAKE_NUM(DATADIR_BOARD, 0x38), + DATA_MAKE_NUM(DATADIR_BOARD, 0x37), + DATA_MAKE_NUM(DATADIR_BOARD, 0x37), + DATA_MAKE_NUM(DATADIR_BOARD, 0x37), + DATA_MAKE_NUM(DATADIR_BOARD, 0x37), + DATA_MAKE_NUM(DATADIR_BOARD, 0x3A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x39) }; static s8 wheelSprPrio[] = { @@ -74,14 +74,14 @@ static s8 wheelSprPrio[] = { }; static s32 wheelCharIconTbl[] = { - 0x0007003B, - 0x0007003C, - 0x0007003D, - 0x0007003E, - 0x0007003F, - 0x00070040, - 0x00070041, - 0x00070042 + DATA_MAKE_NUM(DATADIR_BOARD, 0x3B), + DATA_MAKE_NUM(DATADIR_BOARD, 0x3C), + DATA_MAKE_NUM(DATADIR_BOARD, 0x3D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x3E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x3F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x40), + DATA_MAKE_NUM(DATADIR_BOARD, 0x41), + DATA_MAKE_NUM(DATADIR_BOARD, 0x42) }; s32 BoardCharWheelInit(s32 arg0, s32 arg1) { diff --git a/src/game/board/fortune.c b/src/game/board/fortune.c index a5267bb6..86294638 100644 --- a/src/game/board/fortune.c +++ b/src/game/board/fortune.c @@ -21,12 +21,12 @@ typedef struct platform_work { } PlatformWork; static u32 comPrizeMessTbl[] = { - 0x1C0009, - 0x1C000A, - 0x1C000B, - 0x1C000D, - 0x1C000C, - 0x1C000E + MAKE_MESSID(0x1C, 0x09), + MAKE_MESSID(0x1C, 0x0A), + MAKE_MESSID(0x1C, 0x0B), + MAKE_MESSID(0x1C, 0x0D), + MAKE_MESSID(0x1C, 0x0C), + MAKE_MESSID(0x1C, 0x0E) }; static s8 currPlayer; @@ -280,20 +280,20 @@ static void ExecComFortuneWin(void) mess_player2 = BoardPlayerGetCharMess(comPlayer2); mess_prize = comPrizeMessTbl[comPrize]; if(comPrize == 0 || comPrize == 5 || comPrize == 3) { - mess_main = 0x1C0012; + mess_main = MAKE_MESSID(0x1C, 0x12); } else { if(comPrize == 2) { if(comCoin == 0) { - mess_main = 0x1C0013; + mess_main = MAKE_MESSID(0x1C, 0x13); } else { - mess_main = 0x1C0011; + mess_main = MAKE_MESSID(0x1C, 0x11); } } else { if(comPrize == 1 || comPrize == 4) { if(comStar == 0) { - mess_main = 0x1C0014; + mess_main = MAKE_MESSID(0x1C, 0x14); } else { - mess_main = 0x1C0011; + mess_main = MAKE_MESSID(0x1C, 0x11); } } } @@ -405,4 +405,4 @@ static void ComFortuneSwapStar(s32 player1, s32 player2) temp = GWStarsGet(player1); GWStarsSet(player1, GWStarsGet(player2)); GWStarsSet(player2, temp); -} \ No newline at end of file +} diff --git a/src/game/board/last5.c b/src/game/board/last5.c index 890a6eb5..8e6a809c 100644 --- a/src/game/board/last5.c +++ b/src/game/board/last5.c @@ -113,12 +113,12 @@ static s32 hostMotTbl[][8] = { }; static s32 messBaseTbl[] = { - 0xE0000, - 0xE0018, - 0xE0030, - 0xE0048, - 0xE0060, - 0xE0078, + MAKE_MESSID(14, 0), + MAKE_MESSID(14, 24), + MAKE_MESSID(14, 48), + MAKE_MESSID(14, 72), + MAKE_MESSID(14, 96), + MAKE_MESSID(14, 120), 0, 0, 0, @@ -566,7 +566,7 @@ static void Last5Main(void) HuPrcVSleep(); } BoardStatusItemSet(0); - temp_r24 = 0xE0090+GWBoardGet(); + temp_r24 = MAKE_MESSID(14, 144) + GWBoardGet(); BoardWinCreate(2, temp_r24, BoardWinPortraitGetStar()); BoardWinWait(); for(temp_r31=0; temp_r31<2; temp_r31++) { @@ -1578,7 +1578,7 @@ static s32 CheckHostMove(void) static void CreateStopWin(void) { - s32 mess = 0x120011; + s32 mess = MAKE_MESSID(0x12, 0x11); float size[2]; float pos_x, pos_y; HuWinMesMaxSizeGet(1, size, mess); @@ -1986,4 +1986,4 @@ static void UpdateTeamResult(omObjData *object) HuSprGrpPosSet(work->group[0], object->trans.x, object->trans.y); HuSprGrpPosSet(work->group[1], object->rot.x, object->rot.y); } -} \ No newline at end of file +} diff --git a/src/game/board/mg_setup.c b/src/game/board/mg_setup.c index 82e6b55b..23e10108 100644 --- a/src/game/board/mg_setup.c +++ b/src/game/board/mg_setup.c @@ -53,10 +53,10 @@ static s16 mgPlay4P[8]; // data static s32 mgSetupSprTbl[13] = { - 0x0007004B, 0x0007004C, 0x0007004D, 0x0007004E, - 0x0007004F, 0x00070052, 0x00070050, 0x00070051, - 0x00070053, 0x00070054, 0x00070055, 0x00070068, - 0x00070056 + DATA_MAKE_NUM(DATADIR_BOARD, 0x4B), DATA_MAKE_NUM(DATADIR_BOARD, 0x4C), DATA_MAKE_NUM(DATADIR_BOARD, 0x4D), DATA_MAKE_NUM(DATADIR_BOARD, 0x4E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x4F), DATA_MAKE_NUM(DATADIR_BOARD, 0x52), DATA_MAKE_NUM(DATADIR_BOARD, 0x50), DATA_MAKE_NUM(DATADIR_BOARD, 0x51), + DATA_MAKE_NUM(DATADIR_BOARD, 0x53), DATA_MAKE_NUM(DATADIR_BOARD, 0x54), DATA_MAKE_NUM(DATADIR_BOARD, 0x55), DATA_MAKE_NUM(DATADIR_BOARD, 0x68), + DATA_MAKE_NUM(DATADIR_BOARD, 0x56) }; static Vec statusLayout4P[4] = { { 170.0f, 244.0f, 0.0f }, @@ -77,9 +77,9 @@ static Vec statusLayout2Vs2[4] = { { 406.0f, 348.0f, 0.0f }, }; static s32 luckyMessTbl[9] = { - 0x00140000, 0x00140005, 0x0014000A, 0x0014000F, - 0x00140014, 0x00140019, 0x00140000, 0x00140000, - 0x00140000 + MAKE_MESSID(0x14, 0x00), MAKE_MESSID(0x14, 0x05), MAKE_MESSID(0x14, 0x0A), MAKE_MESSID(0x14, 0x0F), + MAKE_MESSID(0x14, 0x14), MAKE_MESSID(0x14, 0x19), MAKE_MESSID(0x14, 0x00), MAKE_MESSID(0x14, 0x00), + MAKE_MESSID(0x14, 0x00) }; // sbss @@ -145,9 +145,9 @@ static inline s32 setupObjGet(void) { static void ExecMGSetup(void) { s32 sp60[9] = { - 0x750000, 0x760000, 0x770000, - 0x780000, 0x790000, 0x7A0000, - 0x7B0000, 0x7C0000, 0x7D0000 + DATADIR_W01, DATADIR_W02, DATADIR_W03, + DATADIR_W04, DATADIR_W05, DATADIR_W06, + DATADIR_W10, DATADIR_W20, DATADIR_W21 }; Vec sp54; u16 var_r24; @@ -255,8 +255,8 @@ static void ExecMGSetup(void) { while (setupObjGet() != 7) { HuPrcVSleep(); } - HuDataDirClose(0x70000); - HuDataDirClose(0x20000); + HuDataDirClose(DATADIR_BOARD); + HuDataDirClose(DATADIR_BGUEST); HuDataDirClose(sp60[GWBoardGet()]); HuPrcSleep(2); if (_CheckFlag(FLAG_ID_MAKE(0, 11)) != 0) { @@ -319,8 +319,8 @@ static void DetermineMGList(bitcopy* arg0) { } } mgListAll[var_r24] = -1; - temp_r26 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r27 * 4, 0x10000000U); - temp_r25 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r27 * 2, 0x10000000U); + temp_r26 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r27 * 4, MEMORY_DEFAULT_NUM); + temp_r25 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r27 * 2, MEMORY_DEFAULT_NUM); var_r31 = mgInfoTbl; for (var_r29 = var_r30 = 0; var_r30 < var_r27; var_r30++, var_r31++) { @@ -630,7 +630,7 @@ static void CreateMGSetup(void) { temp_r29->unk_02 = 0; temp_r29->unk_03 = 0; temp_r29->unk_04 = 0; - temp_r28->unk_0C = HuMemDirectMallocNum(HEAP_SYSTEM, 0x154, 0x10000000U); + temp_r28->unk_0C = HuMemDirectMallocNum(HEAP_SYSTEM, 0x154, MEMORY_DEFAULT_NUM); temp_r31 = temp_r28->unk_0C; temp_r31->unk_00[0] = HuSprGrpCreate(0xD); @@ -1066,7 +1066,7 @@ static void UpdateMGList(bitcopy* arg0, omObjData* arg1) { if (activeMG[var_r23].unk_03 != 0) { sp14 = activeMG[var_r23].unk_04; } else { - sp14 = 0x90001; + sp14 = MAKE_MESSID(9, 1); } HuWinMesSet(temp_r3, sp14); activeMG[var_r23].unk_00 = temp_r3; diff --git a/src/game/board/mushroom.c b/src/game/board/mushroom.c index 5bbe9a22..57aa85d6 100644 --- a/src/game/board/mushroom.c +++ b/src/game/board/mushroom.c @@ -161,9 +161,9 @@ static void MushroomMain(void) { WaitItemGive(); if (itemResult != 0) { - var_r27 = 0x50001; + var_r27 = MAKE_MESSID(5, 1); } else { - var_r27 = 0x50002; + var_r27 = MAKE_MESSID(5, 2); } BoardPlayerMotionShiftSet(curPlayer, 0xC, 0.0f, 4.0f, 0); @@ -341,7 +341,7 @@ static void CenterBox(ItemGiveWork2* arg0, omObjData* arg1) { static void InitBox(s32 arg0) { Vec sp10; - s32 sp8[2] = {0x0007006D, 0x0007006E}; + s32 sp8[2] = {DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), DATA_MAKE_NUM(DATADIR_BOARD, 0x6E)}; s32 var_r29; s32 var_r28; s32 var_r27; @@ -367,7 +367,7 @@ static void InitBox(s32 arg0) { boxObj[i]->rot.x = 0.0f; boxObj[i]->rot.y = 180.0f; boxObj[i]->rot.z = 0.0f; - temp_r31->unk_02 = BoardModelCreate(0x70005, NULL, 0); + temp_r31->unk_02 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 5), NULL, 0); BoardModelPosSet(temp_r31->unk_02, boxObj[i]->trans.x, boxObj[i]->trans.y, boxObj[i]->trans.z); BoardModelMotionSpeedSet(temp_r31->unk_02, 0.0f); BoardModelLayerSet(temp_r31->unk_02, 2U); @@ -558,4 +558,4 @@ static void WaitItemGive(void) { while (temp_r31->unk00_field2 != 1) { HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/game/board/player.c b/src/game/board/player.c index 76863368..e1388143 100644 --- a/src/game/board/player.c +++ b/src/game/board/player.c @@ -1,53 +1,52 @@ #include "game/board/player.h" -#include "game/chrman.h" -#include "game/objsub.h" -#include "game/hsfman.h" +#include "ext_math.h" +#include "game/board/audio.h" +#include "game/board/basic_space.h" #include "game/board/com.h" +#include "game/board/item.h" #include "game/board/main.h" +#include "game/board/model.h" #include "game/board/roll.h" #include "game/board/space.h" #include "game/board/tutorial.h" #include "game/board/ui.h" #include "game/board/view.h" -#include "game/board/model.h" -#include "game/board/item.h" -#include "game/board/basic_space.h" -#include "game/board/audio.h" +#include "game/chrman.h" +#include "game/hsfman.h" +#include "game/objsub.h" #include "game/pad.h" -#include "stdlib.h" #include "math.h" -#include "ext_math.h" +#include "stdlib.h" static void InitJunction(s32, s32, f32); -static void UpdateJunctionGfx(omObjData*); +static void UpdateJunctionGfx(omObjData *); static void StopJunctionPlayer(s32); static void RestoreJunction(f32, s32); -static s32 GetDefaultDirection(f32, f32*, s32); -static s32 DoDebugMove(s32, s16*); -static s32 ExecJunction(s32, s16*); +static s32 GetDefaultDirection(f32, f32 *, s32); +static s32 DoDebugMove(s32, s16 *); +static s32 ExecJunction(s32, s16 *); -static void PlayerPosLerpFunc(omObjData*); -static void DiceJumpFunc(omObjData*); +static void PlayerPosLerpFunc(omObjData *); +static void DiceJumpFunc(omObjData *); -static void UpdateRollSprite(omObjData*); -static void UpdateRoll(omObjData*); -static void MoveAwayObjFunc(omObjData*); +static void UpdateRollSprite(omObjData *); +static void UpdateRoll(omObjData *); +static void MoveAwayObjFunc(omObjData *); -static void MoveAwayObjFunc(omObjData*); -static void UpdateBowserSuit(omObjData*); +static void MoveAwayObjFunc(omObjData *); +static void UpdateBowserSuit(omObjData *); static void MegaSquishFunc(omObjData *object); - static s32 DoSparkSpace(s32 player, s32 pause_cam); static void RemoveSparkSpace(s32 player); static void SetPlayerSizeAuto(s32 player); static s32 MegaPlayerPassFunc(s32 player, s32 space); static s32 MegaExecJump(s32 player, s32 space); -//TODO: Give better name +// TODO: Give better name typedef struct bitcopy { struct { u8 field00_bit0 : 1; @@ -71,30 +70,23 @@ static s16 playerMot[4]; static s8 itemPrev; static s8 moveAwayPlayer[4]; static s16 junctionArrowRot[4]; -static omObjData* moveAwayObj; -static omObjData* rollObj; -static omObjData* junctionObj; +static omObjData *moveAwayObj; +static omObjData *rollObj; +static omObjData *junctionObj; static s32 junctionMask; -static omObjData* bowserSuitObj; +static omObjData *bowserSuitObj; static s32 megaDoubleDiceF; static s16 suitMdl = -1; static s16 suitPlayerMdl = -1; static s16 suitCurrMot = -1; -static omObjData* diceJumpObj[4] = {0, 0, 0, 0}; -static omObjData* motDoneF[4] = {0, 0, 0, 0}; -static s16 bowserSuitMot[5] = {-1, -1, -1, -1, -1}; -static char* eyeMatTbl[8][2] = { - { "eye1", "eye2" }, - { "eye1", "eye2" }, - { "mat14", "mat16" }, - { "eye1", "eye2" }, - { "Clswario_eye_l1_AUTO14", "Clswario_eye_l1_AUTO15" }, - { "m_donkey_eye4", "m_donkey_eye5" }, - { "mat65", "mat66" }, - { "Clswaluigi_eye_l1_AUTO1", "Clswaluigi_eye_l1_AUTO2" } -}; +static omObjData *diceJumpObj[4] = { 0, 0, 0, 0 }; +static omObjData *motDoneF[4] = { 0, 0, 0, 0 }; +static s16 bowserSuitMot[5] = { -1, -1, -1, -1, -1 }; +static char *eyeMatTbl[8][2] + = { { "eye1", "eye2" }, { "eye1", "eye2" }, { "mat14", "mat16" }, { "eye1", "eye2" }, { "Clswario_eye_l1_AUTO14", "Clswario_eye_l1_AUTO15" }, + { "m_donkey_eye4", "m_donkey_eye5" }, { "mat65", "mat66" }, { "Clswaluigi_eye_l1_AUTO1", "Clswaluigi_eye_l1_AUTO2" } }; s32 lbl_8013997C[] = { 0x10D, @@ -108,81 +100,127 @@ s32 lbl_8013997C[] = { }; static s32 boardMotTbl[] = { - 0x5F0035, 0x1A0035, 0x6D0035, 0x8A0035, - 0x850035, 0x110035, 0x0D0035, 0x810035, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x35), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x35), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x35), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x35), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x35), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x35), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x35), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x35), }; static s32 boardMotRevTbl[] = { - 0x5F0036, 0x1A0036, 0x6D0036, 0x8A0036, - 0x850036, 0x110036, 0x0D0036, 0x810036, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x36), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x36), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x36), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x36), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x36), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x36), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x36), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x36), }; static s32 bowserSuitCharMdlTbl[] = { - 0x40000, 0x40003, 0x40006, 0x40009, - 0x4000C, 0x4000F, 0x40012, 0x40015, + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x00), + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x03), + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x06), + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x09), + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x0C), + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x0F), + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x12), + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x15), }; -static s32 bowserSuitMotTbl[] = { - 0x40019, 0x4001A, 0x4001B, 0x4001E, - 0x4001F -}; +static s32 bowserSuitMotTbl[] = { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x19), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1A), + DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1B), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1E), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1F) }; static s32 sparkMotTbl[] = { - 0x70095, 0x70096, 0x70097, 0x70098, - 0x70099, 0x7009A, 0x7009B, 0x7009C, + DATA_MAKE_NUM(DATADIR_BOARD, 0x95), + DATA_MAKE_NUM(DATADIR_BOARD, 0x96), + DATA_MAKE_NUM(DATADIR_BOARD, 0x97), + DATA_MAKE_NUM(DATADIR_BOARD, 0x98), + DATA_MAKE_NUM(DATADIR_BOARD, 0x99), + DATA_MAKE_NUM(DATADIR_BOARD, 0x9A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x9B), + DATA_MAKE_NUM(DATADIR_BOARD, 0x9C), }; static s32 boardSparkSfxTbl[] = { - 0x128, 0x168, 0x1A8, 0x1E8, - 0x228, 0x268, 0x2A8, 0x2E8, + 0x128, + 0x168, + 0x1A8, + 0x1E8, + 0x228, + 0x268, + 0x2A8, + 0x2E8, }; static s32 boardSparkSfxTblAlt[] = { - 0x123, 0x163, 0x1A3, 0x1E3, - 0x223, 0x263, 0x2A3, 0x2E3, + 0x123, + 0x163, + 0x1A3, + 0x1E3, + 0x223, + 0x263, + 0x2A3, + 0x2E3, }; static omObjData *megaSquishObj[4] = {}; static s32 megaSquishSfxTbl[] = { - 0x128, 0x168, 0x1A8, 0x1E8, - 0x228, 0x268, 0x2A8, 0x2E8, + 0x128, + 0x168, + 0x1A8, + 0x1E8, + 0x228, + 0x268, + 0x2A8, + 0x2E8, }; -s32 BoardItemPrevGet(void) { +s32 BoardItemPrevGet(void) +{ return itemPrev; } -void BoardItemPrevSet(s32 type) { +void BoardItemPrevSet(s32 type) +{ itemPrev = type; } -s32 BoardPlayerGetCharMess(s32 player) { - s32 charMess[8] = {0, 1, 2, 3, 4, 5, 6, 7}; - +s32 BoardPlayerGetCharMess(s32 player) +{ + s32 charMess[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; + return charMess[GWPlayer[player].character]; } -char* BoardPlayerGetCharName(s32 player) { - char* charNames[8] = {"Mario", "Luigi", "Peach", "Yoshi", "Wario", "Donky", "Daisy", "Waluigi"}; +char *BoardPlayerGetCharName(s32 player) +{ + char *charNames[8] = { "Mario", "Luigi", "Peach", "Yoshi", "Wario", "Donky", "Daisy", "Waluigi" }; return charNames[GWPlayer[player].character]; } -s32 BoardPlayerIsAllCom(void) { +s32 BoardPlayerIsAllCom(void) +{ if ((GWPlayer[0].com != 0) && (GWPlayer[1].com != 0) && (GWPlayer[2].com != 0) && (GWPlayer[3].com != 0)) { return 1; } return 0; } -void BoardPlayerInit(void) { +void BoardPlayerInit(void) +{ s32 temp_r30; s32 var_r31; if (BoardStartCheck() == 0) { GWSystem.player_curr = 0; temp_r30 = BoardSpaceFlagPosGet(0, 0x80000000, 0); - + for (var_r31 = 0; var_r31 < 4; var_r31++) { GWPlayer[var_r31].space_curr = temp_r30; BoardPlayerCornerPosSet(var_r31); @@ -194,7 +232,7 @@ void BoardPlayerInit(void) { } return; } - + for (var_r31 = 0; var_r31 < 4; var_r31++) { BoardPlayerCornerPosSet(var_r31); if (BoardPlayerAutoSizeGet(var_r31) != 0) { @@ -204,7 +242,8 @@ void BoardPlayerInit(void) { } } -void BoardPlayerModelInit(void) { +void BoardPlayerModelInit(void) +{ s32 sp64[14]; s32 var_r31; s32 var_r30; @@ -213,12 +252,16 @@ void BoardPlayerModelInit(void) { s32 temp_r24; s16 temp_r3; s32 temp_r4; - PlayerState* temp_r27; + PlayerState *temp_r27; - s32 ro0[8] = { 0x5E0000, 0x190000, 0x6C0000, 0x890000, 0x840000, 0x100000, 0xC0000, 0x800000 }; - s32 ro1[8] = { 0x5F0000, 0x1A0000, 0x6D0000, 0x8A0000, 0x850000, 0x110000, 0xD0000, 0x810000 }; + s32 ro0[8] = { DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x00), DATA_MAKE_NUM(DATADIR_LUIGIMDL1, 0x00), DATA_MAKE_NUM(DATADIR_PEACHMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMDL1, 0x00), DATA_MAKE_NUM(DATADIR_WARIOMDL1, 0x00), DATA_MAKE_NUM(DATADIR_DONKEYMDL1, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMDL1, 0), DATA_MAKE_NUM(DATADIR_WALUIGIMDL1, 0x00) }; + s32 ro1[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00) }; u16 ro2[13] = { 0, 2, 3, 5, 6, 22, 23, 24, 27, 31, 47, 72, 73 }; - + memset(&boardPlayerMdl, 0, 8); suitMdl = -1; suitPlayerMdl = -1; @@ -239,7 +282,7 @@ void BoardPlayerModelInit(void) { temp_r27->player_idx = var_r31; GWPlayer[var_r31].character = temp_r29; GWPlayerCfg[var_r31].character = temp_r29; - + for (var_r30 = 0; var_r30 < 0xD; var_r30++) { sp64[var_r30] = ro1[temp_r29] | ro2[var_r30]; } @@ -250,7 +293,7 @@ void BoardPlayerModelInit(void) { playerMot[var_r31] = 1; BoardModelMotionStart(temp_r3, playerMot[var_r31], 0x40000001); if (BoardStartCheck() == 0) { - + for (var_r30 = 0; var_r30 < 3; var_r30++) { temp_r27->items[var_r30] = -1; } @@ -275,10 +318,11 @@ void BoardPlayerModelInit(void) { CharModelLayerSetAll(2); } -void BoardPlayerModelKill(void) { +void BoardPlayerModelKill(void) +{ s32 var_r31; - PlayerState* temp_r30; - PlayerState* temp_r29; + PlayerState *temp_r30; + PlayerState *temp_r29; for (var_r31 = 0; var_r31 < 4; var_r31++) { temp_r30 = BoardPlayerGet(var_r31); @@ -294,28 +338,34 @@ void BoardPlayerModelKill(void) { } } -void BoardPlayerLayerSet(s32 arg0, s32 arg1) { +void BoardPlayerLayerSet(s32 arg0, s32 arg1) +{ BoardModelLayerSet(BoardPlayerModelGet(arg0), arg1); } -void BoardPlayerCameraSet(s32 arg0, u16 arg1) { +void BoardPlayerCameraSet(s32 arg0, u16 arg1) +{ BoardModelCameraSet(BoardPlayerModelGet(arg0), arg1); } -void fn_80062A40(s32 arg0, f32 arg8) { +void fn_80062A40(s32 arg0, f32 arg8) +{ fn_8006DDE8(BoardPlayerModelGet(arg0), arg8); } -void BoardPlayerExistCheck(s32 arg0, s32 arg1) { +void BoardPlayerExistCheck(s32 arg0, s32 arg1) +{ if (arg1 == 0) { BoardModelExistCheck(BoardPlayerModelGet(arg0), 0); - } else { + } + else { BoardModelExistCheck(BoardPlayerModelGet(arg0), 1); } } -s32 BoardPlayerItemAdd(s32 arg0, s32 arg1) { - PlayerState* var_r30; +s32 BoardPlayerItemAdd(s32 arg0, s32 arg1) +{ + PlayerState *var_r30; s32 var_r29; s32 var_r31; @@ -333,9 +383,10 @@ s32 BoardPlayerItemAdd(s32 arg0, s32 arg1) { return var_r29; } -s32 BoardPlayerItemRemove(s32 arg0, s32 arg1) { +s32 BoardPlayerItemRemove(s32 arg0, s32 arg1) +{ s32 temp_r29; - PlayerState* temp_r28; + PlayerState *temp_r28; temp_r28 = BoardPlayerGet(arg0); temp_r29 = temp_r28->items[arg1]; @@ -354,7 +405,8 @@ s32 BoardPlayerItemRemove(s32 arg0, s32 arg1) { return temp_r29; } -s32 BoardPlayerItemFind(s32 arg0, s32 arg1) { +s32 BoardPlayerItemFind(s32 arg0, s32 arg1) +{ s32 var_r31; for (var_r31 = 0; var_r31 < 3; var_r31++) { @@ -362,11 +414,12 @@ s32 BoardPlayerItemFind(s32 arg0, s32 arg1) { return var_r31; } } - + return -1; } -s32 BoardPlayerItemCount(s32 arg0) { +s32 BoardPlayerItemCount(s32 arg0) +{ s32 var_r30; s32 var_r31; @@ -375,18 +428,20 @@ s32 BoardPlayerItemCount(s32 arg0) { var_r30++; } } - + return var_r30; } -void BoardPlayerCornerPosSet(s32 arg0) { +void BoardPlayerCornerPosSet(s32 arg0) +{ Vec sp8; BoardPlayerCornerPosGet(arg0, &sp8); BoardPlayerPosSetV(arg0, &sp8); } -void BoardPlayerCornerPosGet(s32 arg0, Vec* arg1) { +void BoardPlayerCornerPosGet(s32 arg0, Vec *arg1) +{ s32 var_r31; s32 var_r30; s32 var_r29; @@ -399,7 +454,8 @@ void BoardPlayerCornerPosGet(s32 arg0, Vec* arg1) { var_r31 = 0; } for (var_r30 = 0, var_r29 = var_r30; var_r30 < 4; var_r31 = (var_r31 + 1) & 3, var_r30++) { - if (var_r31 == arg0) break; + if (var_r31 == arg0) + break; if (temp_r28 == GWPlayer[var_r31].space_curr) { var_r29 += 1; } @@ -408,15 +464,18 @@ void BoardPlayerCornerPosGet(s32 arg0, Vec* arg1) { } } -void BoardPlayerAmbSet(s32 arg0, f32 arg8, f32 arg9, f32 argA) { +void BoardPlayerAmbSet(s32 arg0, f32 arg8, f32 arg9, f32 argA) +{ BoardModelAmbSet(BoardPlayerModelGet(arg0), arg8, arg9, argA); } -void BoardPlayerMtxSet(s32 arg0, Mtx *arg1) { +void BoardPlayerMtxSet(s32 arg0, Mtx *arg1) +{ BoardModelMtxSet(BoardPlayerModelGet(arg0), arg1); } -void BoardPlayerPosSetV(s32 arg0, Vec* arg1) { +void BoardPlayerPosSetV(s32 arg0, Vec *arg1) +{ BoardModelPosSetV(BoardPlayerModelGet(arg0), arg1); if (GWPlayer[arg0].bowser_suit != 0) { @@ -424,19 +483,22 @@ void BoardPlayerPosSetV(s32 arg0, Vec* arg1) { } } -void BoardPlayerPosSet(s32 arg0, f32 arg8, f32 arg9, f32 argA) { +void BoardPlayerPosSet(s32 arg0, f32 arg8, f32 arg9, f32 argA) +{ BoardModelPosSet(BoardPlayerModelGet(arg0), arg8, arg9, argA); - + if (GWPlayer[arg0].bowser_suit != 0) { BoardModelPosSet(suitMdl, arg8, arg9, argA); } } -void BoardPlayerPosGet(s32 arg0, Vec* arg1) { +void BoardPlayerPosGet(s32 arg0, Vec *arg1) +{ BoardModelPosGet(BoardPlayerModelGet(arg0), arg1); } -void BoardPlayerRotSetV(s32 arg0, Vec* arg1) { +void BoardPlayerRotSetV(s32 arg0, Vec *arg1) +{ BoardModelRotSetV(BoardPlayerModelGet(arg0), arg1); if (GWPlayer[arg0].bowser_suit != 0) { @@ -444,19 +506,22 @@ void BoardPlayerRotSetV(s32 arg0, Vec* arg1) { } } -void BoardPlayerRotSet(s32 arg0, f32 arg8, f32 arg9, f32 argA) { +void BoardPlayerRotSet(s32 arg0, f32 arg8, f32 arg9, f32 argA) +{ BoardModelRotSet(BoardPlayerModelGet(arg0), arg8, arg9, argA); - + if (GWPlayer[arg0].bowser_suit != 0) { BoardModelRotSet(suitMdl, arg8, arg9, argA); } } -void BoardPlayerRotGet(s32 arg0, Vec* arg1) { +void BoardPlayerRotGet(s32 arg0, Vec *arg1) +{ BoardModelRotGet(BoardPlayerModelGet(arg0), arg1); } -void BoardPlayerRotYSet(s32 arg0, f32 arg8) { +void BoardPlayerRotYSet(s32 arg0, f32 arg8) +{ if (arg8 < 0.0f) { arg8 += 360.0f; } @@ -469,64 +534,75 @@ void BoardPlayerRotYSet(s32 arg0, f32 arg8) { } } -f32 BoardPlayerRotYGet(s32 arg0) { +f32 BoardPlayerRotYGet(s32 arg0) +{ f32 var_f31; if (GWPlayer[arg0].bowser_suit != 0) { var_f31 = BoardModelRotYGet(suitMdl); - } else { + } + else { var_f31 = BoardModelRotYGet(BoardPlayerModelGet(arg0)); } return var_f31; } -void BoardPlayerScaleSetV(s32 arg0, Vec* arg1) { +void BoardPlayerScaleSetV(s32 arg0, Vec *arg1) +{ BoardModelScaleSetV(BoardPlayerModelGet(arg0), arg1); } -void BoardPlayerScaleSet(s32 arg0, f32 arg8, f32 arg9, f32 argA) { +void BoardPlayerScaleSet(s32 arg0, f32 arg8, f32 arg9, f32 argA) +{ BoardModelScaleSet(BoardPlayerModelGet(arg0), arg8, arg9, argA); } -void BoardPlayerScaleGet(s32 arg0, Vec *arg1) { +void BoardPlayerScaleGet(s32 arg0, Vec *arg1) +{ BoardModelScaleGet(BoardPlayerModelGet(arg0), arg1); } -s16 BoardPlayerCurrMotionGet(s32 arg0) { - PlayerState* player = BoardPlayerGet(arg0); - +s16 BoardPlayerCurrMotionGet(s32 arg0) +{ + PlayerState *player = BoardPlayerGet(arg0); + return playerMot[player->player_idx]; } -void BoardPlayerVoiceEnableSet(s32 arg0, s32 arg1, s32 arg2) { +void BoardPlayerVoiceEnableSet(s32 arg0, s32 arg1, s32 arg2) +{ BoardModelVoiceEnableSet(BoardPlayerModelGet(arg0), arg1, arg2); } -s32 BoardPlayerMotionCreate(s32 arg0, s32 arg1) { +s32 BoardPlayerMotionCreate(s32 arg0, s32 arg1) +{ return BoardModelMotionCreate(BoardPlayerModelGet(arg0), arg1); } -s32 BoardPlayerMotionKill(s32 arg0, s32 arg1) { +s32 BoardPlayerMotionKill(s32 arg0, s32 arg1) +{ return BoardModelMotionKill(BoardPlayerModelGet(arg0), arg1); } -s32 BoardPlayerMotionEndCheck(s32 arg0) { +s32 BoardPlayerMotionEndCheck(s32 arg0) +{ return BoardModelMotionEndCheck(BoardPlayerModelGet(arg0)); } -void BoardPlayerMotionEndWait(s32 arg0) { +void BoardPlayerMotionEndWait(s32 arg0) +{ while (BoardModelMotionEndCheck(BoardPlayerModelGet(arg0)) == 0) { HuPrcVSleep(); } } -void BoardPlayerMotionStart(s32 arg0, s32 arg1, s32 arg2) { - PlayerState* player; +void BoardPlayerMotionStart(s32 arg0, s32 arg1, s32 arg2) +{ + PlayerState *player; s32 temp_r29; - + player = BoardPlayerGet(arg0); - if (arg1 == 0) { - } + if (arg1 == 0) { } if (arg1 != playerMot[player->player_idx]) { temp_r29 = BoardModelMotionStart(BoardPlayerModelGet(arg0), arg1, arg2); if (temp_r29 == 0) { @@ -535,14 +611,13 @@ void BoardPlayerMotionStart(s32 arg0, s32 arg1, s32 arg2) { } } -void BoardPlayerMotionShiftSet(s32 arg0, s32 arg1, f32 arg8, f32 arg9, u32 arg2) { - s32 temp_r29; - PlayerState* player; - - +void BoardPlayerMotionShiftSet(s32 arg0, s32 arg1, f32 arg8, f32 arg9, u32 arg2) +{ + s32 temp_r29; + PlayerState *player; + player = BoardPlayerGet(arg0); - if (arg1 == 0) { - } + if (arg1 == 0) { } if (arg1 != playerMot[player->player_idx]) { temp_r29 = BoardModelMotionShiftSet(BoardPlayerModelGet(arg0), arg1, arg8, arg9, arg2); if (temp_r29 == 0) { @@ -551,44 +626,54 @@ void BoardPlayerMotionShiftSet(s32 arg0, s32 arg1, f32 arg8, f32 arg9, u32 arg2) } } -void BoardPlayerMotionSpeedSet(s32 arg0, f32 arg8) { +void BoardPlayerMotionSpeedSet(s32 arg0, f32 arg8) +{ BoardModelMotionSpeedSet(BoardPlayerModelGet(arg0), arg8); } -void BoardPlayerMotionTimeSet(s32 arg0, f32 arg8) { +void BoardPlayerMotionTimeSet(s32 arg0, f32 arg8) +{ BoardModelMotionTimeSet(BoardPlayerModelGet(arg0), arg8); } -f32 BoardPlayerMotionTimeGet(s32 arg0) { +f32 BoardPlayerMotionTimeGet(s32 arg0) +{ return BoardModelMotionTimeGet(BoardPlayerModelGet(arg0)); } -f32 BoardPlayerMotionMaxTimeGet(s32 arg0) { +f32 BoardPlayerMotionMaxTimeGet(s32 arg0) +{ return BoardModelMotionMaxTimeGet(BoardPlayerModelGet(arg0)); } -void BoardPlayerMotionStartEndSet(s32 arg0, f32 arg8, f32 arg9) { +void BoardPlayerMotionStartEndSet(s32 arg0, f32 arg8, f32 arg9) +{ BoardModelMotionStartEndSet(BoardPlayerModelGet(arg0), arg8, arg9); } -void BoardPlayerModelAttrSet(s32 arg0, s32 arg1) { +void BoardPlayerModelAttrSet(s32 arg0, s32 arg1) +{ BoardModelAttrSet(BoardPlayerModelGet(arg0), arg1); } -void BoardPlayerModelAttrReset(s32 arg0, s32 arg1) { +void BoardPlayerModelAttrReset(s32 arg0, s32 arg1) +{ BoardModelAttrReset(BoardPlayerModelGet(arg0), arg1); } -void BoardPlayerCoinsSet(s32 arg0, s32 arg1) { +void BoardPlayerCoinsSet(s32 arg0, s32 arg1) +{ GWCoinsSet(arg0, arg1); } -s32 BoardPlayerCoinsGet(s32 arg0) { +s32 BoardPlayerCoinsGet(s32 arg0) +{ return GWCoinsGet(arg0); } -void BoardPlayerCoinsAdd(s32 arg0, s32 arg1) { - PlayerState* player; +void BoardPlayerCoinsAdd(s32 arg0, s32 arg1) +{ + PlayerState *player; s16 coins; player = BoardPlayerGet(arg0); @@ -601,65 +686,77 @@ void BoardPlayerCoinsAdd(s32 arg0, s32 arg1) { BoardPlayerCoinsSet(arg0, arg1 + BoardPlayerCoinsGet(arg0)); } -void BoardPlayerStarsAdd(s32 arg0, s32 arg1) { +void BoardPlayerStarsAdd(s32 arg0, s32 arg1) +{ GWStarsSet(arg0, (arg1 + GWStarsGet(arg0))); } -void BoardPlayerSizeSet(s32 arg0, s32 arg1) { - PlayerState* temp_r27; +void BoardPlayerSizeSet(s32 arg0, s32 arg1) +{ + PlayerState *temp_r27; Vec temp_r4[3] = { { 1, 1, 1 }, { 0.3, 0.3, 0.3 }, { 2.5, 2.5, 2.5 } }; temp_r27 = BoardPlayerGet(arg0); temp_r27->size = arg1; if (arg1 == 2) { CharModelStepTypeSet(GWPlayer[arg0].character, 4); - } else if (arg1 == 1) { + } + else if (arg1 == 1) { CharModelStepTypeSet(GWPlayer[arg0].character, 5); - } else { + } + else { CharModelStepTypeSet(GWPlayer[arg0].character, 0); } BoardPlayerScaleSetV(arg0, &temp_r4[arg1]); } -s32 BoardPlayerSizeGet(s32 idx) { - PlayerState* player; +s32 BoardPlayerSizeGet(s32 idx) +{ + PlayerState *player; player = BoardPlayerGet(idx); - if(!player) { + if (!player) { return; } return player->size; } -s32 BoardPlayerSameTeamFind(s32 arg0) { +s32 BoardPlayerSameTeamFind(s32 arg0) +{ s32 var_r31; s32 team2; s32 team; - + for (var_r31 = 0; var_r31 < 4; var_r31++) { - if (var_r31 == arg0) continue; + if (var_r31 == arg0) + continue; team2 = GWPlayer[var_r31].team; team = GWPlayer[arg0].team; - if (team == team2) break; + if (team == team2) + break; } return var_r31; } -s32 BoardPlayerTeamFind(s32 arg0) { +s32 BoardPlayerTeamFind(s32 arg0) +{ s32 var_r31; s32 team2; s32 team; - + for (var_r31 = 0; var_r31 < 4; var_r31++) { - if (var_r31 == arg0) continue; + if (var_r31 == arg0) + continue; team2 = GWPlayer[var_r31].team; team = GWPlayer[arg0].team; - if (team != team2) break; + if (team != team2) + break; } return var_r31; } -s32 BoardPlayerRankCalc(s32 player) { +s32 BoardPlayerRankCalc(s32 player) +{ s32 coins; s32 rank; s32 i; @@ -677,15 +774,18 @@ s32 BoardPlayerRankCalc(s32 player) { return rank; } -void BoardPlayerPreTurnHookSet(s32 arg0, s32 (*arg1)()) { +void BoardPlayerPreTurnHookSet(s32 arg0, s32 (*arg1)()) +{ preTurnHook[arg0] = arg1; } -void BoardPlayerPostTurnHookSet(s32 arg0, s32 (*arg1)()) { +void BoardPlayerPostTurnHookSet(s32 arg0, s32 (*arg1)()) +{ postTurnHook[arg0] = arg1; } -void BoardPlayerTurnExec(s32 arg0) { +void BoardPlayerTurnExec(s32 arg0) +{ BoardPauseDisableSet(1); BoardComUseItemSet(arg0, -1); GWSystem.bowser_event = 0xF; @@ -694,8 +794,8 @@ void BoardPlayerTurnExec(s32 arg0) { BoardCameraMoveSet(1); if (_CheckFlag(FLAG_ID_MAKE(1, 6)) == 0) { BoardCameraViewSet(2); - omVibrate((s16) arg0, 0xC, 4, 2); - BoardItemPrevSet(-1); + omVibrate((s16)arg0, 0xC, 4, 2); + BoardItemPrevSet(-1); BoardYourTurnExec(arg0); megaDoubleDiceF = 0; SetPlayerSizeAuto(arg0); @@ -708,14 +808,16 @@ void BoardPlayerTurnExec(s32 arg0) { BoardTutorialHookExec(5, 0); } BoardPlayerTurnRollExec(arg0); - } else { + } + else { BoardCameraViewSet(1); BoardCameraMotionWait(); } BoardPlayerTurnMoveExec(arg0); } -void BoardPlayerTurnRollExec(s32 arg0) { +void BoardPlayerTurnRollExec(s32 arg0) +{ s32 temp_r28; s32 temp_r30; @@ -725,34 +827,35 @@ void BoardPlayerTurnRollExec(s32 arg0) { do { temp_r30 = BoardRollExec(arg0); switch (temp_r30) { - case -2: - BoardPauseDisableSet(1); - BoardRollKill(); - BoardCameraTargetPlayerSet(arg0); - BoardCameraMotionWait(); - BoardItemPrevSet(BoardItemUseExec(arg0)); - if (BoardItemPrevGet() == 0xC) { - _SetFlag(0x10016); - BoardSpaceLandExec(arg0, GWPlayer[arg0].space_curr); - BoardCameraMoveSet(1); - BoardCameraViewSet(2); - _ClearFlag(0x10016); - } - BoardPauseDisableSet(0); - break; - case -3: - BoardRollKill(); - BoardViewMapExec(arg0); - break; - case -4: - BoardRollKill(); - BoardViewOverheadExec(arg0); - break; + case -2: + BoardPauseDisableSet(1); + BoardRollKill(); + BoardCameraTargetPlayerSet(arg0); + BoardCameraMotionWait(); + BoardItemPrevSet(BoardItemUseExec(arg0)); + if (BoardItemPrevGet() == 0xC) { + _SetFlag(0x10016); + BoardSpaceLandExec(arg0, GWPlayer[arg0].space_curr); + BoardCameraMoveSet(1); + BoardCameraViewSet(2); + _ClearFlag(0x10016); + } + BoardPauseDisableSet(0); + break; + case -3: + BoardRollKill(); + BoardViewMapExec(arg0); + break; + case -4: + BoardRollKill(); + BoardViewOverheadExec(arg0); + break; } } while (temp_r30 <= 0); } -void BoardPlayerTurnMoveExec(s32 arg0) { +void BoardPlayerTurnMoveExec(s32 arg0) +{ s16 sp8; u32 temp_r27; s32 temp_r30; @@ -774,7 +877,8 @@ void BoardPlayerTurnMoveExec(s32 arg0) { BoardCameraTargetModelSet(suitMdl); BoardCameraOffsetSet(0.0f, 100.0f, 0.0f); } - } else { + } + else { var_r29 = 0; var_r28 = 1; _ClearFlag(FLAG_ID_MAKE(1, 6)); @@ -789,10 +893,11 @@ void BoardPlayerTurnMoveExec(s32 arg0) { if (ExecJunction(arg0, &sp8) != 0) { break; } - } else if (DoDebugMove(arg0, &sp8) != 0) { + } + else if (DoDebugMove(arg0, &sp8) != 0) { break; } - + GWPlayer[arg0].space_next = sp8; StopJunctionPlayer(0); if (MegaPlayerPassFunc(arg0, sp8) == 0) { @@ -813,7 +918,7 @@ void BoardPlayerTurnMoveExec(s32 arg0) { if (BoardSpaceWalkExec(arg0, sp8) != 0) { continue; } -block_14: + block_14: temp_r30 = BoardSpaceTypeGet(0, sp8); temp_r27 = BoardSpaceFlagGet(0, sp8); if ((temp_r30 == 0 || temp_r30 == 8 || temp_r30 == 10) && ((temp_r27 & 0x20000000) == 0) || var_r28 != 0) { @@ -821,8 +926,9 @@ block_14: continue; } HuAudFXPlay(0x301); - - if (--GWPlayer[arg0].roll == 0) break; + + if (--GWPlayer[arg0].roll == 0) + break; } while (1); BoardPauseDisableSet(1); BoardRollUpdateSet(arg0); @@ -838,7 +944,7 @@ block_14: while (BoardItemDoneCheck() == 0) { HuPrcVSleep(); } - BoardItemPrevSet(-1); + BoardItemPrevSet(-1); } BoardPlayerSizeRestore(arg0); megaDoubleDiceF = 0; @@ -851,14 +957,16 @@ block_14: if (GWSystem.bowser_event != 1) { BoardCameraViewSet(2); BoardCameraMotionWait(); - } else { + } + else { GWSystem.bowser_event = 0xF; } BoardPlayerZoomRestore(arg0); return; } -void BoardPlayerPostTurnHookExec(s32 arg0) { +void BoardPlayerPostTurnHookExec(s32 arg0) +{ if (postTurnHook[arg0] != 0U) { if (postTurnHook[arg0]() != 0) { postTurnHook[arg0] = 0; @@ -866,11 +974,13 @@ void BoardPlayerPostTurnHookExec(s32 arg0) { } } -void BoardPlayerSizeRestore(s32 arg0) { +void BoardPlayerSizeRestore(s32 arg0) +{ if (BoardPlayerSizeGet(arg0) != 0) { if (BoardPlayerSizeGet(arg0) == 1) { HuAudFXPlay(0x313); - } else { + } + else { HuAudFXPlay(0x311); } BoardPlayerResizeAnimExec(arg0, 0); @@ -882,8 +992,9 @@ void BoardPlayerSizeRestore(s32 arg0) { } } -void BoardPlayerZoomRestore(s32 arg0) { - PlayerState* sp8; +void BoardPlayerZoomRestore(s32 arg0) +{ + PlayerState *sp8; s32 var_r31; s32 var_r29; s32 var_r28; @@ -892,14 +1003,15 @@ void BoardPlayerZoomRestore(s32 arg0) { Vec spC; sp8 = BoardPlayerGet(arg0); - BoardPlayerPosGet(arg0, &spC); + BoardPlayerPosGet(arg0, &spC); temp_r27 = GWPlayer[arg0].space_curr; var_r31 = GWSystem.player_curr; if (var_r31 == -1) { var_r31 = 0; } for (var_r29 = var_r28 = 0; var_r28 < 4; var_r28++) { - if (var_r31 == arg0) break; + if (var_r31 == arg0) + break; if (temp_r27 == GWPlayer[var_r31].space_curr) { var_r29++; } @@ -907,59 +1019,63 @@ void BoardPlayerZoomRestore(s32 arg0) { } BoardSpaceCornerPosGet(temp_r27, var_r29, &sp18); BoardPlayerMotBlendSet(arg0, 0, 0xF); - + while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } BoardPlayerIdleSet(arg0); } -void BoardJunctionMaskSet(s32 arg0) { +void BoardJunctionMaskSet(s32 arg0) +{ junctionMask |= arg0; } -void BoardJunctionMaskReset(s32 arg0) { +void BoardJunctionMaskReset(s32 arg0) +{ junctionMask &= ~arg0; } -void BoardJunctionMaskZero(void) { +void BoardJunctionMaskZero(void) +{ junctionMask = 0; } -static inline u32 BoardJunctionMaskGet(void) { +static inline u32 BoardJunctionMaskGet(void) +{ return junctionMask; } -static inline GetLinkCount(s32 playerIdx, s32 boardIdx) { +static inline GetLinkCount(s32 playerIdx, s32 boardIdx) +{ s32 i; s32 linkCount; - BoardSpace* boardSpaceLink; - BoardSpace* boardSpaceFlag; - PlayerState* player; + BoardSpace *boardSpaceLink; + BoardSpace *boardSpaceFlag; + PlayerState *player; s32 color; s32 temp; linkCount = 0; boardSpaceLink = BoardSpaceGet(0, boardIdx); - + if (boardSpaceLink->link_cnt <= 1) { return 0; } linkCount = boardSpaceLink->link_cnt; for (i = 0; i < boardSpaceLink->link_cnt; i++) { boardSpaceFlag = BoardSpaceGet(0, boardSpaceLink->link[i]); - if (((boardSpaceFlag->flag & 0x20000000) != 0 && (BoardPlayerSizeGet(playerIdx) != 1)) - || ((boardSpaceFlag->flag & 0x02000000) != 0) - || ((boardSpaceFlag->flag & 0x04000000) != 0) - || ((boardSpaceFlag->flag & BoardJunctionMaskGet()) != 0)) { - + if (((boardSpaceFlag->flag & 0x20000000) != 0 && (BoardPlayerSizeGet(playerIdx) != 1)) || ((boardSpaceFlag->flag & 0x02000000) != 0) + || ((boardSpaceFlag->flag & 0x04000000) != 0) || ((boardSpaceFlag->flag & BoardJunctionMaskGet()) != 0)) { + linkCount--; } } return linkCount; } -static void InitJunction(s32 arg0, s32 arg1, f32 arg8) { +static void InitJunction(s32 arg0, s32 arg1, f32 arg8) +{ Vec sp68; Vec sp5C; Vec sp50; @@ -968,14 +1084,14 @@ static void InitJunction(s32 arg0, s32 arg1, f32 arg8) { s32 sp38; s16 sp20; s16 spE; - BoardSpace* temp_r26; - BoardSpace* temp_r25; + BoardSpace *temp_r26; + BoardSpace *temp_r25; f32 var_f27; f32 var_f28; f32 var_f29; - omObjData* var_r28; + omObjData *var_r28; s32 var_r20; - bitcopy* temp_r29; + bitcopy *temp_r29; s32 var_r27; s32 var_r22; f32 angle; @@ -984,7 +1100,7 @@ static void InitJunction(s32 arg0, s32 arg1, f32 arg8) { for (var_r20 = 0; var_r20 < 4; var_r20++) { junctionArrowRot[var_r20] = -1; } - + sp38 = GetLinkCount(arg0, arg1); if (sp38 > 1) { var_r28 = omAddObjEx(boardObjMan, 0x100, 0, 0, -1, UpdateJunctionGfx); @@ -997,29 +1113,30 @@ static void InitJunction(s32 arg0, s32 arg1, f32 arg8) { temp_r29->field00_bit5 = 0; temp_r29->unk_01 = 0; var_r28->scale.x = var_r28->scale.y = var_r28->scale.z = 3.0f; - HuWinMesMaxSizeGet(1, sp3C, 0x90003); + HuWinMesMaxSizeGet(1, sp3C, MAKE_MESSID(0x9, 0x03)); var_f27 = -10000.0f; var_f28 = 304.0f; temp_r29->unk_04 = HuWinCreate(var_f27, var_f28, sp3C[0], sp3C[1], 0); HuWinBGTPLvlSet(temp_r29->unk_04, 0.0f); HuWinMesSpeedSet(temp_r29->unk_04, 0); - HuWinMesSet(temp_r29->unk_04, 0x90003); + HuWinMesSet(temp_r29->unk_04, MAKE_MESSID(9, 3)); if (_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) { HuWinDispOff(temp_r29->unk_04); } temp_r26 = BoardSpaceGet(0, arg1); BoardSpacePosGet(0, arg1, &sp68); spE = BoardPlayerSizeGet(arg0); - + for (var_r27 = 0, var_r22 = var_r27; var_r22 < temp_r26->link_cnt; var_r22++) { if (temp_r26->link[var_r22] != 0) { temp_r25 = BoardSpaceGet(0, temp_r26->link[var_r22]); - if (((((temp_r25->flag & 0x20000000) == 0) != 0) || (spE == 1)) && ((temp_r25->flag & 0x02000000) == 0) && ((temp_r25->flag & 0x04000000) == 0)) { + if (((((temp_r25->flag & 0x20000000) == 0) != 0) || (spE == 1)) && ((temp_r25->flag & 0x02000000) == 0) + && ((temp_r25->flag & 0x04000000) == 0)) { if ((temp_r25->flag & BoardJunctionMaskGet()) == 0) { BoardSpacePosGet(0, temp_r26->link[var_r22], &sp50); PSVECSubtract(&sp50, &sp68, &sp44); PSVECNormalize(&sp44, &sp44); - + angle = (180.0 * (atan2(sp44.x, sp44.z) / M_PI)); if (angle < 0.0f) { angle += 360.0f; @@ -1027,17 +1144,19 @@ static void InitJunction(s32 arg0, s32 arg1, f32 arg8) { if (angle > 360.0f) { angle -= 360.0f; } - + OSf32tos16(&angle, &sp20); - sp20 = ((sp20 + 0x16) / 45) * 0x2D;; + sp20 = ((sp20 + 0x16) / 45) * 0x2D; + ; junctionArrowRot[var_r27] = sp20; var_f29 = 0.0f; if (sp20 == 0) { var_f29 = 100.0f; - } else if ((sp20 == 0xB4) && ((spE == 2) || (GWPlayer[arg0].bowser_suit != 0))) { + } + else if ((sp20 == 0xB4) && ((spE == 2) || (GWPlayer[arg0].bowser_suit != 0))) { var_f29 = -100.0f; } - temp_r29->unk_06[var_r27] = BoardModelCreate(0x70000, NULL, 1); + temp_r29->unk_06[var_r27] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0), NULL, 1); BoardModelRotSet(temp_r29->unk_06[var_r27], 0.0f, angle, 0.0f); BoardModelLayerSet(temp_r29->unk_06[var_r27], 6); sp5C.x = sp68.x + (100.0 * sin((M_PI * angle) / 180.0)); @@ -1059,9 +1178,10 @@ static void InitJunction(s32 arg0, s32 arg1, f32 arg8) { return; } -static void UpdateJunctionGfx(omObjData* arg0) { +static void UpdateJunctionGfx(omObjData *arg0) +{ s32 var_r28; - bitcopy* temp_r30; + bitcopy *temp_r30; temp_r30 = OM_GET_WORK_PTR(arg0, bitcopy); if ((temp_r30->field00_bit0 != 0) || (BoardIsKill() != 0)) { @@ -1075,7 +1195,8 @@ static void UpdateJunctionGfx(omObjData* arg0) { } if (temp_r30->unk_01 != 0) { temp_r30->unk_01--; - } else if (temp_r30->field00_bit7 != 0) { + } + else if (temp_r30->field00_bit7 != 0) { temp_r30->field00_bit0 = 1; } temp_r30->unk_02 += 8; @@ -1089,8 +1210,9 @@ static void UpdateJunctionGfx(omObjData* arg0) { BoardModelScaleSet(temp_r30->unk_06[temp_r30->field00_bit5], arg0->scale.x, arg0->scale.y, arg0->scale.z); } -static void StopJunctionPlayer(s32 arg0) { - bitcopy* temp_r31; +static void StopJunctionPlayer(s32 arg0) +{ + bitcopy *temp_r31; if (junctionObj != 0) { temp_r31 = OM_GET_WORK_PTR(junctionObj, bitcopy); @@ -1103,27 +1225,28 @@ static void StopJunctionPlayer(s32 arg0) { } } -static void RestoreJunction(f32 arg8, s32 arg0) { +static void RestoreJunction(f32 arg8, s32 arg0) +{ Vec sp1C; f32 spC[4]; s16 var_r30; s16 temp_r29; - bitcopy* temp_r31; + bitcopy *temp_r31; if (junctionObj != 0) { temp_r31 = OM_GET_WORK_PTR(junctionObj, bitcopy); if (temp_r31->unk_01 == 0) { arg8 = 90.0f * (((90.0f + arg8) - 1.0f) / 90.0f); - + for (var_r30 = 0; var_r30 < temp_r31->field00_bit3; var_r30++) { BoardModelRotGet(temp_r31->unk_06[var_r30], &sp1C); spC[var_r30] = 90.0f * (((90.0f + sp1C.y) - 1.0f) / 90.0f); } - - for (;var_r30 < 4; var_r30++) { + + for (; var_r30 < 4; var_r30++) { spC[var_r30] = -999.0f; } - + temp_r29 = GetDefaultDirection(arg8, spC, temp_r31->field00_bit3); if ((temp_r29 != -1) && (temp_r31->field00_bit5 != temp_r29)) { temp_r31->field00_bit5 = temp_r29; @@ -1136,7 +1259,8 @@ static void RestoreJunction(f32 arg8, s32 arg0) { } } -static s32 GetDefaultDirection(f32 arg0, f32* arg1, s32 arg2) { +static s32 GetDefaultDirection(f32 arg0, f32 *arg1, s32 arg2) +{ f32 var_f27; f32 var_f28; f32 temp_f1; @@ -1146,11 +1270,11 @@ static s32 GetDefaultDirection(f32 arg0, f32* arg1, s32 arg2) { temp_f30 = BoardDAngleCalc(arg0); var_f28 = 999.0f; - + for (var_r31 = 0, var_r30 = var_r31; var_r31 < arg2; var_r31++) { temp_f1 = BoardDAngleCalc(arg1[var_r31]); var_f27 = BOARD_FABS(BoardDAngleCalc(temp_f1 - temp_f30)); - + if (var_f27 < var_f28) { var_f28 = var_f27; var_r30 = var_r31; @@ -1161,43 +1285,45 @@ static s32 GetDefaultDirection(f32 arg0, f32* arg1, s32 arg2) { static inline s32 BoardPlayerMotGet(s32 player) { - PlayerState *player_ptr = BoardPlayerGet(player); - return playerMot[player_ptr->player_idx]; + PlayerState *player_ptr = BoardPlayerGet(player); + return playerMot[player_ptr->player_idx]; } -static s32 DoDebugMove(s32 arg0, s16* arg1) { +static s32 DoDebugMove(s32 arg0, s16 *arg1) +{ s16 spC0[10]; s16 spAC[10]; Vec spA0; Vec sp94; Vec sp88; Vec sp7C; - BoardSpace* sp5C; + BoardSpace *sp5C; s32 sp58; s32 sp54; - BoardCameraData* sp50; + BoardCameraData *sp50; f32 var_f30; s32 var_r29; s16 var_r26; - PlayerState* sp28; - BoardSpace* var_r23; + PlayerState *sp28; + BoardSpace *var_r23; s32 var_r22; s32 var_r21; s32 var_r20; s32 var_r18; - bitcopy* var_r17; + bitcopy *var_r17; var_r18 = -1; - + memset(spC0, 0, 0x14); memset(spAC, 0, 0x14); - while (1) {loop_1: + while (1) { + loop_1: sp28 = BoardPlayerGet(arg0); var_r23 = BoardSpaceGet(0, sp28->space_curr); sp58 = BoardSpaceCountGet(0); BoardPlayerPosGet(arg0, &sp88); var_r20 = GWPlayer[arg0].port; - + for (var_r22 = 0, var_r29 = var_r22; var_r29 < var_r23->link_cnt; var_r29++) { if ((BoardSpaceFlagGet(0, var_r23->link[var_r29]) & 0x06000000) == 0) { if ((BoardSpaceFlagGet(0, var_r23->link[var_r29]) & 0x20000000) == 0 || (BoardPlayerSizeGet(arg0) == 1)) { @@ -1206,12 +1332,13 @@ static s32 DoDebugMove(s32 arg0, s16* arg1) { } } var_r22 += BoardSpaceLinkTargetListGet(0, sp28->space_curr, &spAC[var_r22]); - + for (var_r29 = 0; var_r29 < var_r22; var_r29++) { sp5C = BoardSpaceGet(0, spAC[var_r29]); if (sp5C == 0) { spAC[var_r29] = 0; - } else { + } + else { PSVECSubtract(&sp5C->pos, &sp88, &sp94); var_f30 = 90.0 - (180.0 * (atan2(sp94.z, sp94.x) / M_PI)); OSf32tos16(&var_f30, &var_r26); @@ -1221,13 +1348,14 @@ static s32 DoDebugMove(s32 arg0, s16* arg1) { if (var_r26 > 0x168) { var_r26 -= 0x168; } - + spC0[var_r29] = var_r26 = var_r26 = (((var_r26 + 0x16) / 45) * 0x2D); } } sp54 = GWPlayer[arg0].space_curr; InitJunction(arg0, sp28->space_curr, -1.0f); - do {loop_21: + do { + loop_21: if (sp54 != GWPlayer[arg0].space_curr) { sp54 = GWPlayer[arg0].space_curr; goto loop_1; @@ -1239,7 +1367,8 @@ static s32 DoDebugMove(s32 arg0, s16* arg1) { StopJunctionPlayer(0); var_r18 = 1; goto end; - } else { + } + else { if (HuPadBtnDown[var_r20] == 0x10) { BoardRollDispSet(0); BoardPlayerIdleSet(arg0); @@ -1268,19 +1397,22 @@ static s32 DoDebugMove(s32 arg0, s16* arg1) { var_f30 -= 360.0f; } var_r21 = var_f30; - + for (var_r29 = 0; var_r29 < var_r22; var_r29++) { if ((spC0[var_r29] + 0x2D > var_r21) && (spC0[var_r29] - 0x2D < var_r21)) { *arg1 = spAC[var_r29]; var_r18 = 0; goto end; - } else if ((var_r21 <= 0x168) && (var_r21 >= 0x13B) && ((s32) ((&spC0[0])[var_r29] + 0x195) > var_r21) && ((s32) ((&spC0[0])[var_r29] + 0x13B) < var_r21)) { + } + else if ((var_r21 <= 0x168) && (var_r21 >= 0x13B) && ((s32)((&spC0[0])[var_r29] + 0x195) > var_r21) + && ((s32)((&spC0[0])[var_r29] + 0x13B) < var_r21)) { *arg1 = spAC[var_r29]; var_r18 = 0; goto end; } } - } else { + } + else { if (BoardPlayerMotGet(arg0) != 1) { BoardPlayerIdleSet(arg0); } @@ -1290,21 +1422,23 @@ static s32 DoDebugMove(s32 arg0, s16* arg1) { } } HuPrcVSleep(); - goto loop_21; + goto loop_21; } } while (1); } - end: +end: return var_r18; } -static inline f32 JunctionArrowRotGetCurr(void) { - bitcopy* juncObj; +static inline f32 JunctionArrowRotGetCurr(void) +{ + bitcopy *juncObj; f32 ret; - + if (!junctionObj) { return 0.0f; - } else { + } + else { juncObj = OM_GET_WORK_PTR(junctionObj, bitcopy); OSs16tof32(&(junctionArrowRot[juncObj->field00_bit5]), &ret); return ret; @@ -1314,11 +1448,12 @@ static inline f32 JunctionArrowRotGetCurr(void) { static inline s32 CheckArrowRot(float value) { s32 sp58; - bitcopy* sp5C; + bitcopy *sp5C; s16 spE; if (!junctionObj) { return 0; - } else { + } + else { sp5C = OM_GET_WORK_PTR(junctionObj, bitcopy); OSf32tos16(&value, &spE); if (spE > 0x15E) { @@ -1333,20 +1468,21 @@ static inline s32 CheckArrowRot(float value) } } -static s32 ExecJunction(s32 arg0, s16* arg1) { +static s32 ExecJunction(s32 arg0, s16 *arg1) +{ f32 spE4[10]; s16 spD0[10]; Vec spC4; Vec spB8; Vec spAC; s32 sp8C; - BoardSpace* sp88; + BoardSpace *sp88; s32 sp84; - PlayerState* sp30; + PlayerState *sp30; s8 sp8; s32 var_r28; s32 var_r24; - BoardSpace* var_r22; + BoardSpace *var_r22; s32 var_r21; u32 var_r20; f32 var_f29; @@ -1360,7 +1496,7 @@ static s32 ExecJunction(s32 arg0, s16* arg1) { sp84 = BoardSpaceCountGet(0); BoardPlayerPosGet(arg0, &spAC); var_r24 = GWPlayer[arg0].port; - + for (var_r28 = var_r21 = 0; var_r28 < var_r22->link_cnt; var_r28++) { if ((BoardSpaceFlagGet(0, var_r22->link[var_r28]) & 0x06000000) == 0) { if ((BoardSpaceFlagGet(0, var_r22->link[var_r28]) & 0x20000000) == 0 || (BoardPlayerSizeGet(arg0) == 1)) { @@ -1376,12 +1512,13 @@ static s32 ExecJunction(s32 arg0, s16* arg1) { *arg1 = var_r22->link[0]; return 0; } - + for (var_r28 = 0; var_r28 < var_r21; var_r28++) { sp88 = BoardSpaceGet(0, spD0[var_r28]); if (!sp88) { spD0[var_r28] = 0; - } else { + } + else { PSVECSubtract(&sp88->pos, &spAC, &spB8); var_f29 = (90.0 - (180.0 * (atan2(spB8.z, spB8.x) / M_PI))); if (var_f29 < 0.0f) { @@ -1399,32 +1536,38 @@ static s32 ExecJunction(s32 arg0, s16* arg1) { BoardPlayerIdleSet(arg0); HuPrcSleep(10); while (1) { - + if ((_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) && (boardTutorialDirInputTime != -1)) { if (boardTutorialDirInputTime > 0) { spC4.x = boardTutorialDirInputX; spC4.z = boardTutorialDirInputY; - } else { + } + else { var_r20 = 0x100; } boardTutorialDirInputTime -= 1; - } else if (GWPlayer[arg0].com != 0) { + } + else if (GWPlayer[arg0].com != 0) { if (sp8 == 0) { BoardComJunctionInputGet(arg0, &spC4, var_r21, &spE4[0]); var_r20 = 0; - } else if (sp8 > 6U) { + } + else if (sp8 > 6U) { var_r20 = 0x100; } sp8++; - } else { + } + else { if (abs(HuPadStkX[var_r24]) > 10) { spC4.x = HuPadStkX[var_r24]; - } else { + } + else { spC4.x = 0.0f; } if (abs(HuPadStkY[var_r24]) > 10) { spC4.z = HuPadStkY[var_r24]; - } else { + } + else { spC4.z = 0.0f; } var_r20 = HuPadBtnDown[var_r24]; @@ -1436,19 +1579,22 @@ static s32 ExecJunction(s32 arg0, s16* arg1) { StopJunctionPlayer(1); sp8C = 0; break; - } else if (var_r20 == 0x20 || var_r20 == 0x10) { + } + else if (var_r20 == 0x20 || var_r20 == 0x10) { HuAudFXPlay(1); BoardRollDispSet(0); BoardPlayerIdleSet(arg0); StopJunctionPlayer(0); if (var_r20 == 0x10) { BoardViewMapExec(arg0); - } else if (var_r20 == 0x20) { + } + else if (var_r20 == 0x20) { BoardViewOverheadExec(arg0); } InitJunction(arg0, sp30->space_curr, var_f28); BoardRollDispSet(1); - } else { + } + else { if ((0.0f != spC4.x) || (0.0f != spC4.z)) { var_f29 = (90.0 + (180.0 * (atan2(spC4.z, spC4.x) / M_PI))); if (var_f29 < 0.0f) { @@ -1461,7 +1607,7 @@ static s32 ExecJunction(s32 arg0, s16* arg1) { var_f28 = var_f29; RestoreJunction(var_f29, 1); } - + for (var_r28 = 0; var_r28 < var_r21; var_r28++) { if (((45.0f + spE4[var_r28]) > var_f29) && ((spE4[var_r28] - 45.0f) < var_f29)) { *arg1 = (&spD0[0])[var_r28]; @@ -1472,7 +1618,8 @@ static s32 ExecJunction(s32 arg0, s16* arg1) { } } } - } else { + } + else { if (BoardPlayerMotGet(arg0) != 1) { BoardPlayerIdleSet(arg0); } @@ -1487,10 +1634,11 @@ static s32 ExecJunction(s32 arg0, s16* arg1) { return sp8C; } -void BoardPlayerMoveTo(s32 arg0, s32 arg1) { +void BoardPlayerMoveTo(s32 arg0, s32 arg1) +{ Vec sp18; Vec spC; - PlayerState* player; + PlayerState *player; BoardModelPosGet(BoardPlayerModelGet(arg0), &sp18); BoardSpacePosGet(0, arg1, &spC); @@ -1500,7 +1648,8 @@ void BoardPlayerMoveTo(s32 arg0, s32 arg1) { } } -void BoardPlayerMoveBetween(s32 arg0, s32 arg1, s32 arg2) { +void BoardPlayerMoveBetween(s32 arg0, s32 arg1, s32 arg2) +{ Vec sp1C; Vec sp10; s32 spC; @@ -1514,7 +1663,8 @@ void BoardPlayerMoveBetween(s32 arg0, s32 arg1, s32 arg2) { } } -void BoardPlayerMoveToAsync(s32 arg0, s32 arg1) { +void BoardPlayerMoveToAsync(s32 arg0, s32 arg1) +{ Vec sp18; Vec spC; s32 sp8; @@ -1524,16 +1674,17 @@ void BoardPlayerMoveToAsync(s32 arg0, s32 arg1) { BoardPlayerPosLerpStart(arg0, &sp18, &spC, 0x19); } -void BoardPlayerPosLerpStart(s32 arg0, Vec* arg1, Vec* arg2, s16 arg3) { +void BoardPlayerPosLerpStart(s32 arg0, Vec *arg1, Vec *arg2, s16 arg3) +{ Vec sp18; f32 var_f28; f32 var_f27; f32 var_f26; f32 var_f29; f32 var_f30; - omObjData* temp_r3; + omObjData *temp_r3; s32 var_r25; - PlayerState* temp_r21; + PlayerState *temp_r21; if ((arg1->x != arg2->x) || (arg1->y != arg2->y) || (arg1->z != arg2->z)) { var_f28 = BoardVecDistXZCalc(arg2, arg1); @@ -1544,7 +1695,8 @@ void BoardPlayerPosLerpStart(s32 arg0, Vec* arg1, Vec* arg2, s16 arg3) { OSs16tof32(&arg3, &var_f29); var_f27 = var_f28 / var_f29; - } else { + } + else { var_f27 = var_f28; var_f29 = 1.0f; } @@ -1588,7 +1740,7 @@ void BoardPlayerPosLerpStart(s32 arg0, Vec* arg1, Vec* arg2, s16 arg3) { if (GWPlayer[arg0].bowser_suit != 0) { BoardModelPosSetV(suitMdl, arg1); } - //TODO: Make work struct for this + // TODO: Make work struct for this temp_r3->work[0] = arg0; *(f32 *)(&temp_r3->work[1]) = var_f27; temp_r3->work[2] = arg3; @@ -1596,7 +1748,8 @@ void BoardPlayerPosLerpStart(s32 arg0, Vec* arg1, Vec* arg2, s16 arg3) { } } -static void PlayerPosLerpFunc(omObjData* arg0) { +static void PlayerPosLerpFunc(omObjData *arg0) +{ f32 temp_f28; f32 temp_f27; f32 temp_f26; @@ -1611,7 +1764,8 @@ static void PlayerPosLerpFunc(omObjData* arg0) { arg0->trans.z += arg0->scale.z; if (arg0->work[2] != 0U) { arg0->work[2] -= 1; - } else { + } + else { GWPlayer[temp_r30].moving = 0; omDelObjEx(HuPrcCurrentGet(), arg0); temp_f26 = arg0->rot.z; @@ -1626,7 +1780,7 @@ static void PlayerPosLerpFunc(omObjData* arg0) { BoardPlayerPosSet(temp_r30, temp_f31, temp_f30, temp_f29); } -//TODO: Make this 2 structs and give better names +// TODO: Make this 2 structs and give better names typedef struct bitcopy2 { struct { u8 field00_bit0 : 1; @@ -1638,7 +1792,7 @@ typedef struct bitcopy2 { }; s8 unk_01; s16 unk_02; - union{ + union { struct { s32 unk_04; f32 unk_08; @@ -1655,10 +1809,11 @@ typedef struct bitcopy2 { }; } bitcopy2; -void BoardPlayerDiceJumpStart(s32 arg0) { +void BoardPlayerDiceJumpStart(s32 arg0) +{ Vec sp8; - PlayerState* temp_r25; - bitcopy2* temp_r31; + PlayerState *temp_r25; + bitcopy2 *temp_r31; s32 var_r28; if (GWPlayer[arg0].bowser_suit != 0) { @@ -1683,7 +1838,8 @@ void BoardPlayerDiceJumpStart(s32 arg0) { GWPlayer[arg0].jump = 1; } -s32 BoardPlayerDiceJumpCheck(s32 arg0) { +s32 BoardPlayerDiceJumpCheck(s32 arg0) +{ if (!diceJumpObj[arg0]) { return 0; } @@ -1693,11 +1849,12 @@ s32 BoardPlayerDiceJumpCheck(s32 arg0) { return 1; } -static void DiceJumpFunc(omObjData* arg0) { +static void DiceJumpFunc(omObjData *arg0) +{ Vec sp38; f32 temp_f31; - PlayerState* var_r30; - bitcopy2* temp_r31; + PlayerState *var_r30; + bitcopy2 *temp_r31; s16 var_r28; s32 var_r23; s32 var_r17; @@ -1746,19 +1903,19 @@ static void DiceJumpFunc(omObjData* arg0) { } } - void BoardPlayerIdleSet(s32 arg0) { if (GWPlayer[arg0].bowser_suit) { BoardBowserSuitMotionSetWait(); BoardBowserSuitPlayerModelKill(); } - BoardPlayerMotionShiftSet(arg0, 1, 0.0f, 8.0f, 0x40000001); + BoardPlayerMotionShiftSet(arg0, 1, 0.0f, 8.0f, 0x40000001); } static void ExecMotBlend(omObjData *arg0); -void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) { +void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) +{ s16 sp1C; f32 temp_f25; f32 temp_f26; @@ -1767,19 +1924,19 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) { f32 var_f22; f32 var_f21; f32 var_f19; - omObjData* temp_r3; + omObjData *temp_r3; s32 var_r22; s32 var_r20; s16 var_r19; s16 var_r18; - bitcopy2* temp_r26; + bitcopy2 *temp_r26; var_r20 = 0; if (motDoneF[arg0] != 0) { temp_r3 = motDoneF[arg0]; temp_r26 = OM_GET_WORK_PTR(temp_r3, bitcopy2); temp_r26->field00_bit0 = 1; - + for (var_r19 = 0; var_r19 < 180U; var_r19++) { if (BoardPlayerMotBlendCheck(arg0) != 0) break; @@ -1801,19 +1958,22 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) { OSf32tos16(&temp_f25, &sp1C); if (sp1C > 0) { var_f24 = 59.0f; - } else { + } + else { var_f24 = 0.0f; } - + if (abs(sp1C) == 0) { temp_r26->field00_bit0 = 1; return; } if (abs(sp1C) <= 90) { var_r20 = boardMotTbl[var_r18]; - } else if (abs(sp1C) <= 180) { + } + else if (abs(sp1C) <= 180) { var_r20 = boardMotRevTbl[var_r18]; - } else { + } + else { temp_r26->field00_bit0 = 1; return; } @@ -1822,13 +1982,15 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) { temp_f26 = var_f27 / 59.0f; if (temp_f26 != 0.0f) { var_f27 = 1.0f / temp_f26; - } else { + } + else { var_f27 = 1.0f; } if (GWPlayer[arg0].bowser_suit != 0) { BoardBowserSuitMotionSetWalk(); BoardModelMotionSpeedSet(BoardBowserSuitModelGet(), var_f27 / 2); - } else if (var_f21 = 8.0f * temp_f26, abs(sp1C) > 45) { + } + else if (var_f21 = 8.0f * temp_f26, abs(sp1C) > 45) { var_r22 = temp_r26->unk_04h; BoardPlayerMotionShiftSet(arg0, var_r22, var_f24, var_f21, 0); BoardPlayerMotionSpeedSet(arg0, var_f27); @@ -1839,10 +2001,11 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) { } } -static void ExecMotBlend(omObjData* arg0) { +static void ExecMotBlend(omObjData *arg0) +{ f32 sp48; f32 var_f27; - bitcopy2* temp_r30; + bitcopy2 *temp_r30; temp_r30 = OM_GET_WORK_PTR(arg0, bitcopy2); if ((temp_r30->field00_bit0 != 0) || (BoardIsKill() != 0)) { @@ -1860,10 +2023,11 @@ static void ExecMotBlend(omObjData* arg0) { if (GWPlayer[temp_r30->unk_01].bowser_suit != 0) { BoardBowserSuitMotionSetWait(); BoardBowserSuitPlayerModelKill(); - } else { + } + else { BoardPlayerMotionStart(temp_r30->unk_01, 1, 0x40000001); } - return; + return; } var_f27 = BoardPlayerRotYGet(temp_r30->unk_01); OSs16tof32(&temp_r30->unk_08h, &sp48); @@ -1871,14 +2035,15 @@ static void ExecMotBlend(omObjData* arg0) { BoardPlayerRotYSet(temp_r30->unk_01, var_f27); } -s32 BoardPlayerMotBlendCheck(s32 arg0) { +s32 BoardPlayerMotBlendCheck(s32 arg0) +{ if (motDoneF[arg0] != 0) { return 0; } return 1; } -//TODO: Make this 3 structs and give better names +// TODO: Make this 3 structs and give better names typedef struct bitcopy3 { struct { @@ -1896,10 +2061,11 @@ typedef struct bitcopy3 { s16 unk_06[5]; } bitcopy3; -void BoardRollCreate(s32 arg0, s32 arg1) { - omObjData* temp_r3; +void BoardRollCreate(s32 arg0, s32 arg1) +{ + omObjData *temp_r3; s32 var_r30; - bitcopy3* temp_r31; + bitcopy3 *temp_r31; temp_r3 = omAddObjEx(boardObjMan, 0x105, 0, 0, -1, &UpdateRoll); temp_r31 = OM_GET_WORK_PTR(temp_r3, bitcopy3); @@ -1909,13 +2075,14 @@ void BoardRollCreate(s32 arg0, s32 arg1) { temp_r31->unk_02 = arg0; if (arg1 != 0) { temp_r31->unk_03 = 0; - } else { + } + else { temp_r31->unk_03 = 1; } temp_r31->unk_04 = HuSprGrpCreate(2); - + for (var_r30 = 0; var_r30 < 2; var_r30++) { - BoardSpriteCreate(0x7002B, 0x4B0, 0, &temp_r31->unk_06[var_r30]); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x2B), 0x4B0, 0, &temp_r31->unk_06[var_r30]); HuSprGrpMemberSet(temp_r31->unk_04, var_r30, temp_r31->unk_06[var_r30]); HuSprPosSet(temp_r31->unk_04, var_r30, 288.0f, 240.0f); HuSprAttrSet(temp_r31->unk_04, var_r30, 4); @@ -1923,8 +2090,9 @@ void BoardRollCreate(s32 arg0, s32 arg1) { rollObj = temp_r3; } -void BoardRollUpdateSet(s32 arg0) { - bitcopy3* temp_r31; +void BoardRollUpdateSet(s32 arg0) +{ + bitcopy3 *temp_r31; if (rollObj != 0) { temp_r31 = OM_GET_WORK_PTR(rollObj, bitcopy3); @@ -1932,22 +2100,25 @@ void BoardRollUpdateSet(s32 arg0) { } } -void BoardRollDispSet(s32 arg0) { +void BoardRollDispSet(s32 arg0) +{ s32 var_r30; - bitcopy3* temp_r31; + bitcopy3 *temp_r31; if (rollObj != 0) { temp_r31 = OM_GET_WORK_PTR(rollObj, bitcopy3); - + for (var_r30 = 0; var_r30 < 2; var_r30++) { if (arg0 != 0) { temp_r31->field00_bit1 = 1; if ((var_r30 == 1) && (GWPlayer[temp_r31->unk_02].roll / 10 == 0)) { HuSprAttrSet(temp_r31->unk_04, var_r30, 4); - } else { + } + else { HuSprAttrReset(temp_r31->unk_04, var_r30, 4); } - } else { + } + else { temp_r31->field00_bit1 = 0; HuSprAttrSet(temp_r31->unk_04, var_r30, 4); } @@ -1956,30 +2127,34 @@ void BoardRollDispSet(s32 arg0) { } } -static void UpdateRollSprite(omObjData* arg0) { +static void UpdateRollSprite(omObjData *arg0) +{ Vec sp1C; s32 sp14[2]; f32 spC[2] = { 320.0f, 256.0f }; s32 var_r30; s32 temp_r29; - bitcopy3* temp_r31; + bitcopy3 *temp_r31; temp_r31 = OM_GET_WORK_PTR(arg0, bitcopy3); temp_r29 = GWPlayer[temp_r31->unk_02].roll; if (temp_r29 != 0) { sp14[0] = temp_r29 % 10; sp14[1] = temp_r29 / 10; - } else { + } + else { temp_r31->field00_bit0 = 1; } - + for (var_r30 = 0; var_r30 < 2; var_r30++) { if (((var_r30 == 1) && (sp14[1] == 0)) || (temp_r31->field00_bit1 == 0)) { HuSprAttrSet(temp_r31->unk_04, var_r30, 4); - } else { + } + else { if ((sp14[1] == 0) && (var_r30 == 0)) { sp1C.x = 288.0f; - } else { + } + else { sp1C.x = spC[var_r30]; } sp1C.y = 176.0f; @@ -1990,9 +2165,10 @@ static void UpdateRollSprite(omObjData* arg0) { } } -static void UpdateRoll(omObjData* arg0) { +static void UpdateRoll(omObjData *arg0) +{ f32 var_f30; - bitcopy3* temp_r30; + bitcopy3 *temp_r30; temp_r30 = OM_GET_WORK_PTR(rollObj, bitcopy3); if ((temp_r30->field00_bit0 != 0) || (BoardIsKill() != 0)) { @@ -2019,20 +2195,23 @@ static void UpdateRoll(omObjData* arg0) { UpdateRollSprite(arg0); } -void BoardPlayerBtnDownWait(s32 arg0, u32 arg1) { +void BoardPlayerBtnDownWait(s32 arg0, u32 arg1) +{ s32 spC; s32 sp8; s32 temp_r31; temp_r31 = GWPlayer[arg0].port; while (1) { - if ((HuPadBtnDown[temp_r31] & arg1) != 0) return; + if ((HuPadBtnDown[temp_r31] & arg1) != 0) + return; HuPrcVSleep(); } } -void BoardPlayerAutoSizeSet(s32 player, s32 value) { - PlayerState* temp_r28; +void BoardPlayerAutoSizeSet(s32 player, s32 value) +{ + PlayerState *temp_r28; temp_r28 = BoardPlayerGet(player); if ((temp_r28->auto_size != 0) || (value == 0)) { @@ -2044,25 +2223,28 @@ void BoardPlayerAutoSizeSet(s32 player, s32 value) { } } -s32 BoardPlayerAutoSizeGet(s32 arg0) { - PlayerState* player; +s32 BoardPlayerAutoSizeGet(s32 arg0) +{ + PlayerState *player; player = BoardPlayerGet(arg0); - if(!player) { + if (!player) { return; } return player->auto_size; } -u32 BoardPlayerMoveAwayIsDone(void) { +u32 BoardPlayerMoveAwayIsDone(void) +{ if (moveAwayObj) { return 0; } return 1; } -void BoardPlayerMoveAwayStart(s32 arg0, s32 arg1, s32 arg2) { - bitcopy3* temp_r25; +void BoardPlayerMoveAwayStart(s32 arg0, s32 arg1, s32 arg2) +{ + bitcopy3 *temp_r25; Vec sp28; Vec sp1C; Vec sp10; @@ -2079,7 +2261,7 @@ void BoardPlayerMoveAwayStart(s32 arg0, s32 arg1, s32 arg2) { // hack for (var_r28 = var_r28 = var_r27; var_r27 < 4; var_r27++, var_r30++) { var_r30 &= 3; - + for (var_r31 = 0; var_r31 < 4; var_r31++) { if ((var_r31 == var_r30) && (arg1 == GWPlayer[var_r31].space_curr)) { moveAwayPlayer[var_r28++] = var_r31; @@ -2087,14 +2269,15 @@ void BoardPlayerMoveAwayStart(s32 arg0, s32 arg1, s32 arg2) { } } BoardSpaceRotGet(0, arg1, &sp28); - + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { BoardSpaceCornerPosGet(arg1, var_r31, &sp1C); temp_r29 = moveAwayPlayer[var_r31]; if (arg2 != 0) { BoardPlayerPosSetV(temp_r29, &sp1C); moveAwayPlayer[var_r31] = -1; - } else { + } + else { BoardPlayerPosGet(temp_r29, &sp10); BoardPlayerPosLerpStart(temp_r29, &sp10, &sp1C, 0x19); } @@ -2106,13 +2289,15 @@ void BoardPlayerMoveAwayStart(s32 arg0, s32 arg1, s32 arg2) { } } -void BoardPlayerMoveAwayStartCurr(s32 arg0, s32 arg1) { +void BoardPlayerMoveAwayStartCurr(s32 arg0, s32 arg1) +{ BoardPlayerMoveAwayStart(GWSystem.player_curr, arg0, arg1); } -static void MoveAwayObjFunc(omObjData* arg0) { +static void MoveAwayObjFunc(omObjData *arg0) +{ s32 var_r31; - bitcopy3* temp_r30; + bitcopy3 *temp_r30; temp_r30 = OM_GET_WORK_PTR(arg0, bitcopy3); if ((temp_r30->field00_bit0 != 0) || (BoardIsKill() != 0)) { @@ -2120,10 +2305,11 @@ static void MoveAwayObjFunc(omObjData* arg0) { omDelObjEx(HuPrcCurrentGet(), arg0); return; } - + for (var_r31 = 0; var_r31 < 4; var_r31++) { if (moveAwayPlayer[var_r31] != -1) { - if (GWPlayer[moveAwayPlayer[var_r31]].moving != 0) return; + if (GWPlayer[moveAwayPlayer[var_r31]].moving != 0) + return; BoardPlayerMotBlendSet(moveAwayPlayer[var_r31], 0, 15); moveAwayPlayer[var_r31] = -1; } @@ -2131,16 +2317,15 @@ static void MoveAwayObjFunc(omObjData* arg0) { temp_r30->field00_bit0 = 1; } -void BoardBowserSuitInit(s32 arg0) { - omObjData* temp_r3; +void BoardBowserSuitInit(s32 arg0) +{ + omObjData *temp_r3; s32 temp_r27; s32 var_r29; s32 temp; - bitcopy3* temp_r31; + bitcopy3 *temp_r31; - - for (var_r29 = 0; var_r29 < 4; var_r29++) { - } + for (var_r29 = 0; var_r29 < 4; var_r29++) { } temp_r27 = GWPlayer[arg0].character; temp = BoardDataDirReadAsync(0x40000); BoardDataAsyncWait(temp); @@ -2158,11 +2343,12 @@ void BoardBowserSuitInit(s32 arg0) { BoardPlayerVoiceEnableSet(arg0, 4, 0); } -void BoardBowserSuitKill(s32 arg0) { - bitcopy3* temp; +void BoardBowserSuitKill(s32 arg0) +{ + bitcopy3 *temp; if (bowserSuitObj != 0) { - OM_GET_WORK_PTR(bowserSuitObj, bitcopy3)->field00_bit0 = 1; + OM_GET_WORK_PTR(bowserSuitObj, bitcopy3)->field00_bit0 = 1; } GWPlayer[arg0].bowser_suit = 0; BoardModelVoiceEnableSet(BoardPlayerModelGet(arg0), 3, 1); @@ -2178,58 +2364,66 @@ void BoardBowserSuitKill(s32 arg0) { HuDataDirClose(0x40000); } -s16 BoardBowserSuitModelGet(void) { +s16 BoardBowserSuitModelGet(void) +{ return suitMdl; } -s16 BoardBowserSuitPlayerModelGet(void) { +s16 BoardBowserSuitPlayerModelGet(void) +{ return suitPlayerMdl; } -void BoardBowserSuitMotionCreate(void) { +void BoardBowserSuitMotionCreate(void) +{ s32 var_r31; - for (var_r31 = 0; var_r31 < 5; var_r31++) { - bowserSuitMot[var_r31] = (s16) BoardModelMotionCreate(suitMdl, bowserSuitMotTbl[var_r31]); + bowserSuitMot[var_r31] = (s16)BoardModelMotionCreate(suitMdl, bowserSuitMotTbl[var_r31]); } suitCurrMot = -1; } -void BoardBowserSuitMotionSetWait(void) { +void BoardBowserSuitMotionSetWait(void) +{ if (suitCurrMot != 0) { BoardModelMotionShiftSet(suitMdl, bowserSuitMot[0], 0.0f, 4.0f, 0x40000001); suitCurrMot = 0; } } -void BoardBowserSuitMotionSetWalk(void) { +void BoardBowserSuitMotionSetWalk(void) +{ if (suitCurrMot != 1) { BoardModelMotionStart(suitMdl, bowserSuitMot[1], 0x40000001); suitCurrMot = 1; } } -void BoardBowserSuitMotionSetWin(void) { +void BoardBowserSuitMotionSetWin(void) +{ BoardModelMotionShiftSet(suitMdl, bowserSuitMot[3], 0.0f, 4.0f, 0); suitCurrMot = 3; } -void BoardBowserSuitMotionSetJump(void) { +void BoardBowserSuitMotionSetJump(void) +{ BoardModelMotionShiftSet(suitMdl, bowserSuitMot[2], 0.0f, 4.0f, 0); suitCurrMot = 2; } -void BoardBowserSuitPlayerModelKill(void) { +void BoardBowserSuitPlayerModelKill(void) +{ if (suitPlayerMdl != -1) { BoardModelMotionStart(suitPlayerMdl, 1, 0); BoardModelMotionSpeedSet(suitPlayerMdl, 0.0f); } } -static void UpdateBowserSuit(omObjData* arg0) { +static void UpdateBowserSuit(omObjData *arg0) +{ s16 temp_r30; - bitcopy3* temp_r31; + bitcopy3 *temp_r31; temp_r31 = OM_GET_WORK_PTR(arg0, bitcopy3); if ((temp_r31->field00_bit0 != 0) || (BoardIsKill() != 0)) { @@ -2249,7 +2443,8 @@ static void UpdateBowserSuit(omObjData* arg0) { } } -void BoardPlayerSparkSet(s32 arg0) { +void BoardPlayerSparkSet(s32 arg0) +{ s16 currSpace = GWPlayer[arg0].space_curr; GWPlayer[arg0].spark = 1; @@ -2258,586 +2453,594 @@ void BoardPlayerSparkSet(s32 arg0) { static s32 DoSparkSpace(s32 player, s32 pause_cam) { - s32 i; - s16 temp_r28; - s32 coin; - s32 temp_r17; - Vec pos, rot; - Vec coin_pos; - s16 sp15C[4] = { -1, -1, -1, -1 }; - s32 sp138; - s32 sp134; - s32 sp130; - s32 sp12C; - s32 sp128; - s8 sp124[4] = { -1, -1, -1, -1 }; - s8 sp120[4] = { -1, -1, -1, -1 }; - s16 sp34; - s16 sp32; - s16 sp30; - s16 sp2E; - s16 sp2C; - sp30 = GWSystem.player_curr; - sp138 = 0; - sp34 = GWPlayer[player].space_curr; - - BoardSpacePosGet(0, sp34, &pos); - BoardSpaceRotGet(0, sp34, &rot); - for(i=0; i<4; i++) { - if(GWPlayer[i].space_shock == sp34) { - sp32 = i; - sp138 = 1; - } - } - if(!sp138) { - return 0; - } - BoardRollDispSet(0); - if(pause_cam) { - BoardCameraMoveSet(0); - } else { - BoardCameraMoveSet(1); - } - BoardCameraMotionWait(); - BoardCameraTargetPlayerSet(player); - BoardPlayerIdleSet(player); - temp_r28 = BoardModelCreate(0x70074, NULL, 0); - BoardModelMotionStart(temp_r28, 0, 0x40000002); - BoardModelMotionTimeSet(temp_r28, 30.0f); - BoardModelAttrSet(temp_r28, 0x40000002); - BoardModelRotSet(temp_r28, rot.x-90.0f, rot.y, rot.z); - BoardModelScaleSet(temp_r28, 2.0f, 2.0f, 2.0f); - BoardModelVisibilitySet(temp_r28, 0); - BoardModelLayerSet(temp_r28, 1); - sp2E = BoardModelCreate(0x70067, NULL, 0); - BoardModelLayerSet(sp2E, 1); - BoardModelMotionStart(sp2E, 0, 0); - HuAudFXPlay(796); - HuPrcSleep(2); - BoardModelAttrReset(temp_r28, 0x40000002); - BoardModelVisibilitySet(temp_r28, 1); - BoardModelPosSet(temp_r28, pos.x, 8.0f+pos.y, pos.z); - BoardModelPosSetV(sp2E, &pos); - sp128 = -1; - for(sp134=i=0; i<4; i++) { - if(GWPlayer[i].space_curr == sp34) { - sp124[sp134++] = i; - sp15C[i] = BoardPlayerMotionCreate(i, sparkMotTbl[GWPlayer[i].character]); - BoardPlayerMotionShiftSet(i, sp15C[i], 0, 8, 0); - HuAudFXPlay(boardSparkSfxTblAlt[GWPlayer[i].character]); - if(GWPlayer[i].bowser_suit) { - BoardModelMotionShiftSet(suitMdl, bowserSuitMot[4], 0.0f, 4.0f, 0); - sp128 = i; - } - } - } - sp130 = sp134; - HuPrcSleep(60); - while(!BoardModelMotionEndCheck(sp2E)) { - HuPrcVSleep(); - } - sp2C = 255; - for(i=0; i<45; i++) { - sp2C -= 5; - if(sp2C < 0) { - sp2C = 0; - } - BoardModelAlphaSet(temp_r28, sp2C); - BoardModelAlphaSet(sp2E, sp2C); - HuPrcVSleep(); - } - temp_r17 = BoardItemPrevGet(); - if(temp_r17 == 0 || temp_r17 == 1 || temp_r17 == 2 || temp_r17 == 3 || temp_r17 == 10) { - BoardCameraTargetPlayerSet(player); - BoardPlayerIdleSet(player); - HuPrcSleep(12); - BoardItemPlayerRestore(player, temp_r17); - while(!BoardItemDoneCheck()) { - HuPrcVSleep(); - } - BoardItemPrevSet(-1); - } - if(megaDoubleDiceF) { - BoardPlayerSizeRestore(player); - megaDoubleDiceF = 0; - } - if(sp128 != -1) { - HuAudFXPlay(boardSparkSfxTbl[GWPlayer[sp128].character]); - } - for(i=0; i 10) { - coin = 10; - } - if(coin > 0) { - - BoardPlayerPosGet(sp124[i], &coin_pos); - coin_pos.y += 250.0f; - sp120[i] = BoardCoinChgCreate(&coin_pos, -coin); - } - } - for(sp12C=i=0; i 10) { + coin = 10; + } + if (coin > 0) { + + BoardPlayerPosGet(sp124[i], &coin_pos); + coin_pos.y += 250.0f; + sp120[i] = BoardCoinChgCreate(&coin_pos, -coin); + } + } + for (sp12C = i = 0; i < sp130; i++) { + sp12C += BoardPlayerCoinsGet(sp124[i]); + } + if (sp12C) { + HuAudFXPlay(840); + for (coin = 0; coin < 10; coin++) { + for (i = 0; i < sp130; i++) { + BoardPlayerCoinsAdd(sp124[i], -1); + } + HuAudFXPlay(14); + HuPrcSleep(6); + } + HuAudFXPlay(15); + HuPrcSleep(90); + } + BoardModelKill(temp_r28); + BoardModelKill(sp2E); + for (i = 0; i < 4; i++) { + BoardPlayerIdleSet(sp124[i]); + } + HuPrcSleep(10); + GWSystem.player_curr = -1; + RemoveSparkSpace(sp32); + GWSystem.player_curr = sp30; + for (i = 0; i < 4; i++) { + if (sp15C[i] != -1) { + BoardPlayerMotionKill(i, sp15C[i]); + } + } + if (pause_cam) { + BoardCameraMoveSet(0); + BoardCameraMotionWait(); + } + + BoardCameraTargetPlayerSet(sp30); + BoardCameraMotionWait(); + BoardCameraMoveSet(1); + BoardRollDispSet(1); + return 1; } static void RemoveSparkSpace(s32 player) { - if(GWPlayer[player].spark) { - BoardWinCreate(0, MAKE_MESSID(18, 28), -1); - BoardWinWait(); - BoardWinKill(); - GWPlayer[player].spark = 0; - GWPlayer[player].space_shock = 0; - } + if (GWPlayer[player].spark) { + BoardWinCreate(0, MAKE_MESSID(18, 28), -1); + BoardWinWait(); + BoardWinKill(); + GWPlayer[player].spark = 0; + GWPlayer[player].space_shock = 0; + } } static void SetPlayerSizeAuto(s32 player) { - s32 auto_size = BoardPlayerAutoSizeGet(player); - if(auto_size != 0) { - BoardStatusHammerKill(player); - BoardPlayerAutoSizeSet(player, 0); - HuPrcSleep(30); - omVibrate(player, 90, 6, 6); - if(auto_size == 1) { - HuAudFXPlay(788); - HuAudFXPlay(787); - } else if(auto_size == 2) { - HuAudFXPlay(786); - HuAudFXPlay(785); - } - BoardPlayerResizeAnimExec(player, auto_size); - BoardPlayerSizeSet(player, auto_size); - HuPrcSleep(30); - megaDoubleDiceF = 1; - } + s32 auto_size = BoardPlayerAutoSizeGet(player); + if (auto_size != 0) { + BoardStatusHammerKill(player); + BoardPlayerAutoSizeSet(player, 0); + HuPrcSleep(30); + omVibrate(player, 90, 6, 6); + if (auto_size == 1) { + HuAudFXPlay(788); + HuAudFXPlay(787); + } + else if (auto_size == 2) { + HuAudFXPlay(786); + HuAudFXPlay(785); + } + BoardPlayerResizeAnimExec(player, auto_size); + BoardPlayerSizeSet(player, auto_size); + HuPrcSleep(30); + megaDoubleDiceF = 1; + } } s32 BoardMegaDoubleDiceCheck(void) { - return megaDoubleDiceF; + return megaDoubleDiceF; } void BoardPlayerResizeAnimExec(s32 player, s32 size) { - s32 j; - s32 i; - s16 modelid; - s32 frame; - s16 model; - float mdl_size; - float frame_data[9]; - float steps[4]; - float player_sizes[] = { 1, 0.3, 2.5 }; - - mdl_size = player_sizes[BoardPlayerSizeGet(player)]; - steps[0] = mdl_size; - steps[1] = mdl_size+((player_sizes[size]-mdl_size)/3); - steps[2] = mdl_size+((player_sizes[size]-mdl_size)/1.5f); - steps[3] = player_sizes[size]; - frame_data[0] = steps[1]; - frame_data[1] = steps[0]; - frame_data[2] = steps[1]; - frame_data[3] = steps[2]; - frame_data[4] = steps[1]; - frame_data[5] = steps[2]; - frame_data[6] = steps[3]; - frame_data[7] = steps[2]; - frame_data[8] = steps[3]; - model = BoardPlayerModelGet(player); - modelid = BoardModelIDGet(model); - Hu3DModelAttrSet(modelid, 0x40000002); - frame = 0; - for(j=0; j<9; j++) { - float size_vel; - size_vel = (frame_data[frame++]-mdl_size)/10.0f; - for(i=0; i<10; i++) { - BoardPlayerScaleSet(player, mdl_size, mdl_size, mdl_size); - mdl_size += size_vel; - HuPrcVSleep(); - } - } - Hu3DModelAttrReset(modelid, 0x40000002); - BoardPlayerSizeSet(player, size); + s32 j; + s32 i; + s16 modelid; + s32 frame; + s16 model; + float mdl_size; + float frame_data[9]; + float steps[4]; + float player_sizes[] = { 1, 0.3, 2.5 }; + + mdl_size = player_sizes[BoardPlayerSizeGet(player)]; + steps[0] = mdl_size; + steps[1] = mdl_size + ((player_sizes[size] - mdl_size) / 3); + steps[2] = mdl_size + ((player_sizes[size] - mdl_size) / 1.5f); + steps[3] = player_sizes[size]; + frame_data[0] = steps[1]; + frame_data[1] = steps[0]; + frame_data[2] = steps[1]; + frame_data[3] = steps[2]; + frame_data[4] = steps[1]; + frame_data[5] = steps[2]; + frame_data[6] = steps[3]; + frame_data[7] = steps[2]; + frame_data[8] = steps[3]; + model = BoardPlayerModelGet(player); + modelid = BoardModelIDGet(model); + Hu3DModelAttrSet(modelid, 0x40000002); + frame = 0; + for (j = 0; j < 9; j++) { + float size_vel; + size_vel = (frame_data[frame++] - mdl_size) / 10.0f; + for (i = 0; i < 10; i++) { + BoardPlayerScaleSet(player, mdl_size, mdl_size, mdl_size); + mdl_size += size_vel; + HuPrcVSleep(); + } + } + Hu3DModelAttrReset(modelid, 0x40000002); + BoardPlayerSizeSet(player, size); } typedef struct mega_squish_work { - struct { - u8 kill : 1; - u8 no_coinchg : 1; - u8 played_snd : 1; - u8 gain_player : 2; - }; - s8 player; - s8 state; - s8 coinchg; - s8 loss; - s8 disappear_time; - s8 disappear_len; - u16 hide_time; + struct { + u8 kill : 1; + u8 no_coinchg : 1; + u8 played_snd : 1; + u8 gain_player : 2; + }; + s8 player; + s8 state; + s8 coinchg; + s8 loss; + s8 disappear_time; + s8 disappear_len; + u16 hide_time; } MegaSquishWork; static void MegaSquishFunc(omObjData *object) { - MegaSquishWork *work = OM_GET_WORK_PTR(object, MegaSquishWork); - Vec pos; - if(work->kill || BoardIsKill()) { - if(work->coinchg != -1) { - BoardCoinChgHide(work->coinchg); - } - megaSquishObj[work->player] = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - if(work->hide_time != 0) { - work->hide_time--; - return; - } - switch(work->state) { - case 1: - if(!work->played_snd) { - HuAudFXPlay(798); - HuAudFXPlay(megaSquishSfxTbl[GWPlayer[work->player].character]); - work->played_snd = 1; - } - BoardPlayerMotionStart(work->player, 10, 0); - BoardPlayerMotionSpeedSet(work->player, 2.0f); - work->state = 2; - break; - - case 2: - { - if(!BoardModelMotionTimeGet(BoardPlayerModelGet(work->player) >= 50.0f)) { - return; - } - BoardPlayerMotionSpeedSet(work->player, 0.0f); - BoardPlayerPosGet(work->player, &pos); - pos.y += 10.0f; - BoardPlayerPosSetV(work->player, &pos); - work->hide_time = 20; - work->state = 3; - work->coinchg = -1; - work->disappear_time = 0; - } - - break; - - case 3: - if(work->coinchg == -1) { - BoardPlayerPosGet(work->player, &pos); - - pos.y += 250.0f; - if(!work->no_coinchg) { - work->coinchg = BoardCoinChgCreate(&pos, -work->loss); - } else { - work->state = 4; - work->hide_time = work->disappear_len; - } - } - if(work->disappear_time++ < work->disappear_len) { - return; - } - work->disappear_time = 0; - if(work->loss <= 0) { - work->state = 4; - HuAudFXPlay(15); - } else { - work->loss--; - BoardPlayerCoinsAdd(work->player, -1); - HuAudFXPlay(14); - BoardPlayerCoinsAdd(work->gain_player, 1); - } - break; - - case 4: - BoardPlayerMotionSpeedSet(work->player, 2.0f); - BoardPlayerPosGet(work->player, &pos); - pos.y -= 10.0f; - BoardPlayerPosSetV(work->player, &pos); - work->state = 5; - break; - - case 5: - if(!BoardPlayerMotionEndCheck(work->player)) { - return; - } - BoardPlayerIdleSet(work->player); - work->kill = 1; - break; - - case 0: - break; - - default: - break; - } + MegaSquishWork *work = OM_GET_WORK_PTR(object, MegaSquishWork); + Vec pos; + if (work->kill || BoardIsKill()) { + if (work->coinchg != -1) { + BoardCoinChgHide(work->coinchg); + } + megaSquishObj[work->player] = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + if (work->hide_time != 0) { + work->hide_time--; + return; + } + switch (work->state) { + case 1: + if (!work->played_snd) { + HuAudFXPlay(798); + HuAudFXPlay(megaSquishSfxTbl[GWPlayer[work->player].character]); + work->played_snd = 1; + } + BoardPlayerMotionStart(work->player, 10, 0); + BoardPlayerMotionSpeedSet(work->player, 2.0f); + work->state = 2; + break; + + case 2: { + if (!BoardModelMotionTimeGet(BoardPlayerModelGet(work->player) >= 50.0f)) { + return; + } + BoardPlayerMotionSpeedSet(work->player, 0.0f); + BoardPlayerPosGet(work->player, &pos); + pos.y += 10.0f; + BoardPlayerPosSetV(work->player, &pos); + work->hide_time = 20; + work->state = 3; + work->coinchg = -1; + work->disappear_time = 0; + } + + break; + + case 3: + if (work->coinchg == -1) { + BoardPlayerPosGet(work->player, &pos); + + pos.y += 250.0f; + if (!work->no_coinchg) { + work->coinchg = BoardCoinChgCreate(&pos, -work->loss); + } + else { + work->state = 4; + work->hide_time = work->disappear_len; + } + } + if (work->disappear_time++ < work->disappear_len) { + return; + } + work->disappear_time = 0; + if (work->loss <= 0) { + work->state = 4; + HuAudFXPlay(15); + } + else { + work->loss--; + BoardPlayerCoinsAdd(work->player, -1); + HuAudFXPlay(14); + BoardPlayerCoinsAdd(work->gain_player, 1); + } + break; + + case 4: + BoardPlayerMotionSpeedSet(work->player, 2.0f); + BoardPlayerPosGet(work->player, &pos); + pos.y -= 10.0f; + BoardPlayerPosSetV(work->player, &pos); + work->state = 5; + break; + + case 5: + if (!BoardPlayerMotionEndCheck(work->player)) { + return; + } + BoardPlayerIdleSet(work->player); + work->kill = 1; + break; + + case 0: + break; + + default: + break; + } } static s32 MegaPlayerPassFunc(s32 player, s32 space) { - float temp_f30; - float temp_f29; - MegaSquishWork *temp_r31; - s32 temp_r29; - MegaSquishWork *temp_r28; - s32 temp_r27; - s32 temp_r26; - s32 temp_r24; - omObjData *temp_r23; - s32 spD0[4]; - Vec spC4; - Vec spB8; - Vec spAC; - Vec spA0; - float sp98[2]; - - - if(GWPlayer[player].bowser_suit) { - return MegaExecJump(player, space); - } - if(BoardPlayerSizeGet(player) != 2) { - return 0; - } - spD0[0] = spD0[1] = spD0[2] = -1; - for(temp_r26=temp_r29=0; temp_r29<4; temp_r29++) { - if(temp_r29 != player && GWPlayer[temp_r29].space_curr == space) { - spD0[temp_r26++] = temp_r29; - BoardPlayerPosGet(temp_r29, &spA0); - temp_r23 = omAddObjEx(boardObjMan, 256, 0, 0, -1, MegaSquishFunc); - megaSquishObj[temp_r29] = temp_r23; - temp_r31 = OM_GET_WORK_PTR(temp_r23, MegaSquishWork); - temp_r31->kill = 0; - temp_r31->player = temp_r29; - temp_r31->gain_player = player; - temp_r31->state = 0; - temp_r31->hide_time = 0; - temp_r31->loss = 0; - temp_r31->disappear_len = 3; - temp_r31->disappear_time = 0; - temp_r31->played_snd = 0; - if(BoardPlayerCoinsGet(temp_r31->player) <= 0) { - temp_r31->no_coinchg = 1; - } else { - temp_r31->no_coinchg = 0; - } - if(BoardPlayerCoinsGet(temp_r31->player) >= 10) { - temp_r31->loss = 10; - } else { - temp_r31->loss = BoardPlayerCoinsGet(temp_r31->player); - } - } - } - if(temp_r26 == 0) { - return 0; - } - if (_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) { + float temp_f30; + float temp_f29; + MegaSquishWork *temp_r31; + s32 temp_r29; + MegaSquishWork *temp_r28; + s32 temp_r27; + s32 temp_r26; + s32 temp_r24; + omObjData *temp_r23; + s32 spD0[4]; + Vec spC4; + Vec spB8; + Vec spAC; + Vec spA0; + float sp98[2]; + + if (GWPlayer[player].bowser_suit) { + return MegaExecJump(player, space); + } + if (BoardPlayerSizeGet(player) != 2) { + return 0; + } + spD0[0] = spD0[1] = spD0[2] = -1; + for (temp_r26 = temp_r29 = 0; temp_r29 < 4; temp_r29++) { + if (temp_r29 != player && GWPlayer[temp_r29].space_curr == space) { + spD0[temp_r26++] = temp_r29; + BoardPlayerPosGet(temp_r29, &spA0); + temp_r23 = omAddObjEx(boardObjMan, 256, 0, 0, -1, MegaSquishFunc); + megaSquishObj[temp_r29] = temp_r23; + temp_r31 = OM_GET_WORK_PTR(temp_r23, MegaSquishWork); + temp_r31->kill = 0; + temp_r31->player = temp_r29; + temp_r31->gain_player = player; + temp_r31->state = 0; + temp_r31->hide_time = 0; + temp_r31->loss = 0; + temp_r31->disappear_len = 3; + temp_r31->disappear_time = 0; + temp_r31->played_snd = 0; + if (BoardPlayerCoinsGet(temp_r31->player) <= 0) { + temp_r31->no_coinchg = 1; + } + else { + temp_r31->no_coinchg = 0; + } + if (BoardPlayerCoinsGet(temp_r31->player) >= 10) { + temp_r31->loss = 10; + } + else { + temp_r31->loss = BoardPlayerCoinsGet(temp_r31->player); + } + } + } + if (temp_r26 == 0) { + return 0; + } + if (_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) { BoardTutorialHookExec(24, 0); } - BoardPlayerPosGet(player, &spB8); - BoardSpacePosGet(0, space, &spC4); - sp98[0] = spB8.y; - if(spC4.y > spB8.y) { - spB8.y += 300.0f; - } else { - spB8.y += 200.0f; - } - VECSubtract(&spC4, &spB8, &spAC); - spAC.x /= 60.0f; - spAC.z /= 60.0f; - BoardPlayerRotYSet(player, 90.0-(180.0*(atan2(spAC.z, spAC.x)/M_PI))); - sp98[1] = BoardVecDistXZCalc(&spC4, &spB8); - BoardPlayerMotionShiftSet(player, 4, 0, 8, 0); - HuPrcSleep(8); - temp_r24 = 0; - for(temp_f30=0; temp_f30<60.0f; temp_f30++) { - temp_f29 = spB8.y; - spB8.x += spAC.x; - spB8.z += spAC.z; - spB8.y += 10.0f + (0.9f*(-0.020416668f * temp_f30 * temp_f30)); - if(temp_f29 > spB8.y) { - temp_r24 = 1; - } - if(spB8.y <= 200.0f+spC4.y && temp_r24) { - for(temp_r27=0; temp_r27<4; temp_r27++) { - if(megaSquishObj[temp_r27]) { - temp_r28 = OM_GET_WORK_PTR(megaSquishObj[temp_r27], MegaSquishWork); - if((s16)space == GWPlayer[temp_r28->player].space_curr && temp_r28->state != 1) { - temp_r28->state = 1; - } - } - } - } - if(spB8.y <= spC4.y) { - spB8.y = spC4.y; - BoardPlayerMotionShiftSet(player, 5, 0, 4, 0); - } - BoardPlayerPosSetV(player, &spB8); - HuPrcVSleep(); - } - BoardCameraQuakeSet(30, 500.0f); - omVibrate(0, 12, 4, 2); - omVibrate(1, 12, 4, 2); - omVibrate(2, 12, 4, 2); - omVibrate(3, 12, 4, 2); - BoardPlayerIdleSet(player); - HuPrcSleep(30); + BoardPlayerPosGet(player, &spB8); + BoardSpacePosGet(0, space, &spC4); + sp98[0] = spB8.y; + if (spC4.y > spB8.y) { + spB8.y += 300.0f; + } + else { + spB8.y += 200.0f; + } + VECSubtract(&spC4, &spB8, &spAC); + spAC.x /= 60.0f; + spAC.z /= 60.0f; + BoardPlayerRotYSet(player, 90.0 - (180.0 * (atan2(spAC.z, spAC.x) / M_PI))); + sp98[1] = BoardVecDistXZCalc(&spC4, &spB8); + BoardPlayerMotionShiftSet(player, 4, 0, 8, 0); + HuPrcSleep(8); + temp_r24 = 0; + for (temp_f30 = 0; temp_f30 < 60.0f; temp_f30++) { + temp_f29 = spB8.y; + spB8.x += spAC.x; + spB8.z += spAC.z; + spB8.y += 10.0f + (0.9f * (-0.020416668f * temp_f30 * temp_f30)); + if (temp_f29 > spB8.y) { + temp_r24 = 1; + } + if (spB8.y <= 200.0f + spC4.y && temp_r24) { + for (temp_r27 = 0; temp_r27 < 4; temp_r27++) { + if (megaSquishObj[temp_r27]) { + temp_r28 = OM_GET_WORK_PTR(megaSquishObj[temp_r27], MegaSquishWork); + if ((s16)space == GWPlayer[temp_r28->player].space_curr && temp_r28->state != 1) { + temp_r28->state = 1; + } + } + } + } + if (spB8.y <= spC4.y) { + spB8.y = spC4.y; + BoardPlayerMotionShiftSet(player, 5, 0, 4, 0); + } + BoardPlayerPosSetV(player, &spB8); + HuPrcVSleep(); + } + BoardCameraQuakeSet(30, 500.0f); + omVibrate(0, 12, 4, 2); + omVibrate(1, 12, 4, 2); + omVibrate(2, 12, 4, 2); + omVibrate(3, 12, 4, 2); + BoardPlayerIdleSet(player); + HuPrcSleep(30); } static s32 MegaExecJump(s32 player, s32 space) { - float temp_f30; - float temp_f29; - MegaSquishWork *temp_r31; - s32 temp_r29; - MegaSquishWork *temp_r28; - s32 temp_r27; - s32 temp_r26; - s32 temp_r25; - s32 temp_r24; - omObjData *temp_r23; - s32 spD0[4]; - Vec spC4; - Vec spB8; - Vec spAC; - Vec spA0; - float sp90[2]; - spD0[0] = spD0[1] = spD0[2] = -1; - for(temp_r26=temp_r29=0; temp_r29<4; temp_r29++) { - if(temp_r29 != player && GWPlayer[temp_r29].space_curr == space) { - spD0[temp_r26++] = temp_r29; - BoardPlayerPosGet(temp_r29, &spA0); - temp_r23 = omAddObjEx(boardObjMan, 256, 0, 0, -1, MegaSquishFunc); - megaSquishObj[temp_r29] = temp_r23; - temp_r31 = OM_GET_WORK_PTR(temp_r23, MegaSquishWork); - temp_r31->kill = 0; - temp_r31->player = temp_r29; - temp_r31->gain_player = player; - temp_r31->state = 0; - temp_r31->hide_time = 0; - temp_r31->loss = 0; - temp_r31->disappear_len = 3; - temp_r31->disappear_time = 0; - if(BoardPlayerCoinsGet(temp_r31->player) <= 0) { - temp_r31->no_coinchg = 1; - } else { - temp_r31->no_coinchg = 0; - } - if(BoardPlayerCoinsGet(temp_r31->player) >= 30) { - temp_r31->loss = 30; - } else { - temp_r31->loss = BoardPlayerCoinsGet(temp_r31->player); - } - } - } - if(temp_r26 == 0) { - return 0; - } - BoardPlayerPosGet(player, &spB8); - BoardSpacePosGet(0, space, &spC4); - sp90[0] = spB8.y; - if(spC4.y > spB8.y) { - spB8.y += 300.0f; - } else { - spB8.y += 200.0f; - } - VECSubtract(&spC4, &spB8, &spAC); - spAC.x /= 60.0f; - spAC.z /= 60.0f; - BoardPlayerRotYSet(player, 90.0-(180.0*(atan2(spAC.z, spAC.x)/M_PI))); - BoardPlayerIdleSet(player); - HuPrcSleep(10); - sp90[1] = BoardVecDistXZCalc(&spC4, &spB8); - BoardModelMotionShiftSet(suitMdl, bowserSuitMot[3], 0.0f, 8.0f, 0); - BoardModelMotionSpeedSet(suitMdl, 2.0f); - HuPrcSleep(8); - HuAudFXPlay(809); - temp_r24 = 0; - temp_r25 = 0; - for(temp_f30=0; temp_f30<60.0f; temp_f30++) { - temp_f29 = spB8.y; - spB8.x += spAC.x; - spB8.z += spAC.z; - spB8.y += 10.0f + (0.9f*(-0.020416668f * temp_f30 * temp_f30)); - if(temp_f29 > spB8.y) { - temp_r25 = 1; - } - if(spB8.y <= 200.0f+spC4.y && temp_r25) { - for(temp_r27=0; temp_r27<4; temp_r27++) { - if(megaSquishObj[temp_r27]) { - temp_r28 = OM_GET_WORK_PTR(megaSquishObj[temp_r27], MegaSquishWork); - if((s16)space == GWPlayer[temp_r28->player].space_curr && temp_r28->state != 1) { - temp_r28->state = 1; - } - } - } - } - if(spB8.y <= spC4.y) { - spB8.y = spC4.y; - if(!temp_r24) { - BoardPlayerIdleSet(player); - HuAudFXPlay(810); - temp_r24 = 1; - } - - } - BoardPlayerPosSetV(player, &spB8); - HuPrcVSleep(); - } - BoardCameraQuakeSet(30, 500.0f); - omVibrate(0, 12, 4, 2); - omVibrate(1, 12, 4, 2); - omVibrate(2, 12, 4, 2); - omVibrate(3, 12, 4, 2); - BoardPlayerIdleSet(player); - HuPrcSleep(30); + float temp_f30; + float temp_f29; + MegaSquishWork *temp_r31; + s32 temp_r29; + MegaSquishWork *temp_r28; + s32 temp_r27; + s32 temp_r26; + s32 temp_r25; + s32 temp_r24; + omObjData *temp_r23; + s32 spD0[4]; + Vec spC4; + Vec spB8; + Vec spAC; + Vec spA0; + float sp90[2]; + spD0[0] = spD0[1] = spD0[2] = -1; + for (temp_r26 = temp_r29 = 0; temp_r29 < 4; temp_r29++) { + if (temp_r29 != player && GWPlayer[temp_r29].space_curr == space) { + spD0[temp_r26++] = temp_r29; + BoardPlayerPosGet(temp_r29, &spA0); + temp_r23 = omAddObjEx(boardObjMan, 256, 0, 0, -1, MegaSquishFunc); + megaSquishObj[temp_r29] = temp_r23; + temp_r31 = OM_GET_WORK_PTR(temp_r23, MegaSquishWork); + temp_r31->kill = 0; + temp_r31->player = temp_r29; + temp_r31->gain_player = player; + temp_r31->state = 0; + temp_r31->hide_time = 0; + temp_r31->loss = 0; + temp_r31->disappear_len = 3; + temp_r31->disappear_time = 0; + if (BoardPlayerCoinsGet(temp_r31->player) <= 0) { + temp_r31->no_coinchg = 1; + } + else { + temp_r31->no_coinchg = 0; + } + if (BoardPlayerCoinsGet(temp_r31->player) >= 30) { + temp_r31->loss = 30; + } + else { + temp_r31->loss = BoardPlayerCoinsGet(temp_r31->player); + } + } + } + if (temp_r26 == 0) { + return 0; + } + BoardPlayerPosGet(player, &spB8); + BoardSpacePosGet(0, space, &spC4); + sp90[0] = spB8.y; + if (spC4.y > spB8.y) { + spB8.y += 300.0f; + } + else { + spB8.y += 200.0f; + } + VECSubtract(&spC4, &spB8, &spAC); + spAC.x /= 60.0f; + spAC.z /= 60.0f; + BoardPlayerRotYSet(player, 90.0 - (180.0 * (atan2(spAC.z, spAC.x) / M_PI))); + BoardPlayerIdleSet(player); + HuPrcSleep(10); + sp90[1] = BoardVecDistXZCalc(&spC4, &spB8); + BoardModelMotionShiftSet(suitMdl, bowserSuitMot[3], 0.0f, 8.0f, 0); + BoardModelMotionSpeedSet(suitMdl, 2.0f); + HuPrcSleep(8); + HuAudFXPlay(809); + temp_r24 = 0; + temp_r25 = 0; + for (temp_f30 = 0; temp_f30 < 60.0f; temp_f30++) { + temp_f29 = spB8.y; + spB8.x += spAC.x; + spB8.z += spAC.z; + spB8.y += 10.0f + (0.9f * (-0.020416668f * temp_f30 * temp_f30)); + if (temp_f29 > spB8.y) { + temp_r25 = 1; + } + if (spB8.y <= 200.0f + spC4.y && temp_r25) { + for (temp_r27 = 0; temp_r27 < 4; temp_r27++) { + if (megaSquishObj[temp_r27]) { + temp_r28 = OM_GET_WORK_PTR(megaSquishObj[temp_r27], MegaSquishWork); + if ((s16)space == GWPlayer[temp_r28->player].space_curr && temp_r28->state != 1) { + temp_r28->state = 1; + } + } + } + } + if (spB8.y <= spC4.y) { + spB8.y = spC4.y; + if (!temp_r24) { + BoardPlayerIdleSet(player); + HuAudFXPlay(810); + temp_r24 = 1; + } + } + BoardPlayerPosSetV(player, &spB8); + HuPrcVSleep(); + } + BoardCameraQuakeSet(30, 500.0f); + omVibrate(0, 12, 4, 2); + omVibrate(1, 12, 4, 2); + omVibrate(2, 12, 4, 2); + omVibrate(3, 12, 4, 2); + BoardPlayerIdleSet(player); + HuPrcSleep(30); } -void BoardPlayerCopyEyeMat(s32 arg0, s32 arg1) { - HsfMaterial* var_r29; +void BoardPlayerCopyEyeMat(s32 arg0, s32 arg1) +{ + HsfMaterial *var_r29; s32 var_r24; s32 var_r25; u32 var_r27; - HsfAttribute* temp_r26; - char** temp_r28; - HsfData* hsfData; - HsfMaterial* material; + HsfAttribute *temp_r26; + char **temp_r28; + HsfData *hsfData; + HsfMaterial *material; ModelData *model; s16 modelId = BoardModelIDGet(BoardPlayerModelGet(arg0)); model = &Hu3DData[modelId]; @@ -2849,9 +3052,9 @@ void BoardPlayerCopyEyeMat(s32 arg0, s32 arg1) { (void)temp_r28; for (var_r25 = 0; var_r25 < hsfData->materialCnt; var_r25++, material++, var_r29++) { var_r24 = 1; - + for (var_r27 = 0; var_r27 < material->numAttrs; var_r27++) { - temp_r26 = &hsfData->attribute[(s32) material->attrs[var_r27]]; + temp_r26 = &hsfData->attribute[(s32)material->attrs[var_r27]]; if ((strcmp(temp_r28[0], temp_r26->bitmap->name) == 0) || (strcmp(temp_r28[1], temp_r26->bitmap->name) == 0)) { var_r24 = 0; } @@ -2861,29 +3064,32 @@ void BoardPlayerCopyEyeMat(s32 arg0, s32 arg1) { material->color[0] *= 0.0f; material->color[1] *= 0.0f; material->color[2] *= 0.0f; - } else { + } + else { material->color[0] = var_r29->color[0]; material->color[1] = var_r29->color[1]; material->color[2] = var_r29->color[2]; } } } - } else { + } + else { memcpy(hsfData->material, var_r29, hsfData->materialCnt * 0x3C); } DCStoreRange(hsfData->material, hsfData->materialCnt * 0x3C); } -void BoardPlayerCopyMat(s32 arg0) { +void BoardPlayerCopyMat(s32 arg0) +{ s16 modelID; ModelData *model; - void* temp_r3; - HsfData* temp_r31; + void *temp_r3; + HsfData *temp_r31; modelID = BoardModelIDGet(BoardPlayerModelGet(arg0)); model = &Hu3DData[modelID]; temp_r31 = model->hsfData; - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, temp_r31->materialCnt * 0x3C, 0x10000000U); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, temp_r31->materialCnt * 0x3C, MEMORY_DEFAULT_NUM); memcpy(temp_r3, temp_r31->material, temp_r31->materialCnt * 0x3C); playerMatCopy[arg0] = temp_r3; } diff --git a/src/game/board/roll.c b/src/game/board/roll.c index 28866389..c58d40e1 100755 --- a/src/game/board/roll.c +++ b/src/game/board/roll.c @@ -110,16 +110,16 @@ static HsfanimStruct00 diceEffParam = { }; static s32 diceDigitMdlTbl[10] = { - 0x0007000C, - 0x0007000D, - 0x0007000E, - 0x0007000F, - 0x00070010, - 0x00070011, - 0x00070012, - 0x00070013, - 0x00070014, - 0x00070015 + DATA_MAKE_NUM(DATADIR_BOARD, 0x0C), + DATA_MAKE_NUM(DATADIR_BOARD, 0x0D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x0E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x0F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x10), + DATA_MAKE_NUM(DATADIR_BOARD, 0x11), + DATA_MAKE_NUM(DATADIR_BOARD, 0x12), + DATA_MAKE_NUM(DATADIR_BOARD, 0x13), + DATA_MAKE_NUM(DATADIR_BOARD, 0x14), + DATA_MAKE_NUM(DATADIR_BOARD, 0x15) }; s32 BoardRollExec(s32 arg0) { @@ -226,12 +226,12 @@ static void RollMain(void) { var_r27 += BoardPlayerItemCount(temp_r25); } if (BoardItemPrevGet() != -1 || var_r27 == 0 || _CheckFlag(FLAG_ID_MAKE(1, 9)) || BoardMegaDoubleDiceCheck()) { - var_r29 = 0x90004; + var_r29 = MAKE_MESSID(0x09, 0x04); } else { - var_r29 = 0x90002; + var_r29 = MAKE_MESSID(0x09, 0x02); } if (inputTimer != 0) { - var_r29 = 0x300025; + var_r29 = MAKE_MESSID(0x30, 0x25); } HuWinMesMaxSizeGet(1, sp8, var_r29); switch (GWGameStat.language) { @@ -313,10 +313,10 @@ static void DiceCreate(s32 arg0) { DiceWork *temp_r30; s32 sp8; s32 spC[4] = { - 0x00070018, - 0x00070019, - 0x0007001A, - 0x0007001B + DATA_MAKE_NUM(DATADIR_BOARD, 0x18), + DATA_MAKE_NUM(DATADIR_BOARD, 0x19), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1B) }; sp8 = 0; @@ -575,7 +575,7 @@ s16 BoardDiceEffectCreate(void) { AnimData *temp_r29; void *temp_r28; - temp_r28 = HuDataSelHeapReadNum(0x7006B, MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_BOARD, 0x6B), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r29 = HuSprAnimRead(temp_r28); temp_r31 = Hu3DParManCreate(temp_r29, 0x64, &diceEffParam); Hu3DParManAttrSet(temp_r31, 0x108); diff --git a/src/game/board/shop.c b/src/game/board/shop.c index 52a018e5..33a41420 100755 --- a/src/game/board/shop.c +++ b/src/game/board/shop.c @@ -115,15 +115,15 @@ static s8 defaultItemTbl[5] = { }; static s32 hostMessTbl[] = { - 0x000F0004, - 0x000F0007, - 0x000F000A, - 0x000F000D, - 0x000F0010, - 0x000F0013, - 0x000F0004, - 0x000F0024, - 0x000F0024 + MAKE_MESSID(0x0F, 0x04), + MAKE_MESSID(0x0F, 0x07), + MAKE_MESSID(0x0F, 0x0A), + MAKE_MESSID(0x0F, 0x0D), + MAKE_MESSID(0x0F, 0x10), + MAKE_MESSID(0x0F, 0x13), + MAKE_MESSID(0x0F, 0x04), + MAKE_MESSID(0x0F, 0x24), + MAKE_MESSID(0x0F, 0x24) }; static s8 itemPriceTbl[] = { @@ -134,15 +134,15 @@ static s8 itemPriceTbl[] = { }; static s32 shopMotTbl[9][3] = { - { 0x00020001, 0x00020003, 0x00020004 }, - { 0x00020009, 0x0002000B, 0x0002000C }, - { 0x0002000E, 0x00020010, 0x00020011 }, - { 0x00020018, 0x0002001A, 0x0002001B }, - { 0x0002001D, 0x0002001F, 0x00020020 }, - { 0x00020022, 0x00020024, 0x00020025 }, - { 0x00020009, 0x0002000B, 0x0002000C }, - { 0x0002002A, 0x0002002C, 0x0002002D }, - { 0x0002002A, 0x0002002C, 0x0002002D } + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x01), DATA_MAKE_NUM(DATADIR_BGUEST, 0x03), DATA_MAKE_NUM(DATADIR_BGUEST, 0x04) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x09), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0B), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0C) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x0E), DATA_MAKE_NUM(DATADIR_BGUEST, 0x10), DATA_MAKE_NUM(DATADIR_BGUEST, 0x11) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x18), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1A), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1B) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x1D), DATA_MAKE_NUM(DATADIR_BGUEST, 0x1F), DATA_MAKE_NUM(DATADIR_BGUEST, 0x20) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x22), DATA_MAKE_NUM(DATADIR_BGUEST, 0x24), DATA_MAKE_NUM(DATADIR_BGUEST, 0x25) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x09), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0B), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0C) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x2A), DATA_MAKE_NUM(DATADIR_BGUEST, 0x2C), DATA_MAKE_NUM(DATADIR_BGUEST, 0x2D) }, + { DATA_MAKE_NUM(DATADIR_BGUEST, 0x2A), DATA_MAKE_NUM(DATADIR_BGUEST, 0x2C), DATA_MAKE_NUM(DATADIR_BGUEST, 0x2D) } }; void BoardShopHostSet(s16 arg0) { @@ -234,13 +234,13 @@ static void ExecShop(void) { BoardPlayerIdleSet(shopPlayer); var_r30 = 0; if (BoardPlayerCoinsGet(shopPlayer) < 5) { - var_r30 = 0xF0003; + var_r30 = MAKE_MESSID(15, 3); } if (BoardPlayerItemCount(shopPlayer) == 3) { - var_r30 = 0xF0002; + var_r30 = MAKE_MESSID(15, 2); } if (GWSystem.turn == GWSystem.max_turn) { - var_r30 = 0xF0001; + var_r30 = MAKE_MESSID(15, 1); } if (var_r30 != 0) { BoardWinCreate(0, var_r30, -1); @@ -307,7 +307,7 @@ static void ExecShop(void) { BoardWinCreate(1, hostMessTbl[temp_r27] + 2, temp_r26); BoardWinPriSet(1000); for (i = 0; i < 5; i++) { - var_r30 = activeItemTbl[i] + 0xF0000; + var_r30 = MAKE_MESSID(15, activeItemTbl[i]); var_r30 += 0x16; BoardWinInsertMesSet(var_r30, i); var_r29 = itemPriceTbl[activeItemTbl[i]]; @@ -1003,7 +1003,7 @@ static void CreateShopItemChoice(s32 arg0, s32 arg1) { if (GWPlayer[arg0].com) { var_r31->unk01 = GWMessDelayGet(); } - BoardSpriteCreate(0x70055, 0x3DE, NULL, &spC); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x55), 0x3DE, NULL, &spC); HuSprGrpMemberSet(var_r31->unk06, 0, spC); HuSprAttrSet(var_r31->unk06, 0, 8); HuSprPosSet(var_r31->unk06, 0, temp_r30->trans.x, temp_r30->trans.y); diff --git a/src/game/board/start.c b/src/game/board/start.c index b07ae07a..2d8072a6 100755 --- a/src/game/board/start.c +++ b/src/game/board/start.c @@ -90,21 +90,21 @@ static s32 hitFX[4] = { }; static s32 startMesTbl[9][5] = { - { 0x00150001, 0x00150007, 0x0015000D, 0x00150016, 0x0015001C }, - { 0x00150002, 0x00150008, 0x0015000E, 0x00150017, 0x0015001D }, - { 0x00150003, 0x00150009, 0x0015000F, 0x00150018, 0x0015001E }, - { 0x00150004, 0x0015000A, 0x00150010, 0x00150019, 0x0015001F }, - { 0x00150005, 0x0015000B, 0x00150011, 0x0015001A, 0x00150020 }, - { 0x00150006, 0x0015000C, 0x00150012, 0x0015001B, 0x00150021 }, - { 0x00150001, 0x00150007, 0x0015000D, 0x00150016, 0x0015001C }, - { 0x00150033, 0x00150034, 0x00150035, 0x00150036, 0x00150037 }, - { 0x0015003B, 0x0015003C, 0x0015003D, 0x0015003E, 0x0015003F } + { MAKE_MESSID(0x15, 0x01), MAKE_MESSID(0x15, 0x07), MAKE_MESSID(0x15, 0x0D), MAKE_MESSID(0x15, 0x16), MAKE_MESSID(0x15, 0x1C) }, + { MAKE_MESSID(0x15, 0x02), MAKE_MESSID(0x15, 0x08), MAKE_MESSID(0x15, 0x0E), MAKE_MESSID(0x15, 0x17), MAKE_MESSID(0x15, 0x1D) }, + { MAKE_MESSID(0x15, 0x03), MAKE_MESSID(0x15, 0x09), MAKE_MESSID(0x15, 0x0F), MAKE_MESSID(0x15, 0x18), MAKE_MESSID(0x15, 0x1E) }, + { MAKE_MESSID(0x15, 0x04), MAKE_MESSID(0x15, 0x0A), MAKE_MESSID(0x15, 0x10), MAKE_MESSID(0x15, 0x19), MAKE_MESSID(0x15, 0x1F) }, + { MAKE_MESSID(0x15, 0x05), MAKE_MESSID(0x15, 0x0B), MAKE_MESSID(0x15, 0x11), MAKE_MESSID(0x15, 0x1A), MAKE_MESSID(0x15, 0x20) }, + { MAKE_MESSID(0x15, 0x06), MAKE_MESSID(0x15, 0x0C), MAKE_MESSID(0x15, 0x12), MAKE_MESSID(0x15, 0x1B), MAKE_MESSID(0x15, 0x21) }, + { MAKE_MESSID(0x15, 0x01), MAKE_MESSID(0x15, 0x07), MAKE_MESSID(0x15, 0x0D), MAKE_MESSID(0x15, 0x16), MAKE_MESSID(0x15, 0x1C) }, + { MAKE_MESSID(0x15, 0x33), MAKE_MESSID(0x15, 0x34), MAKE_MESSID(0x15, 0x35), MAKE_MESSID(0x15, 0x36), MAKE_MESSID(0x15, 0x37) }, + { MAKE_MESSID(0x15, 0x3B), MAKE_MESSID(0x15, 0x3C), MAKE_MESSID(0x15, 0x3D), MAKE_MESSID(0x15, 0x3E), MAKE_MESSID(0x15, 0x3F) } }; static s32 logoSprTbl[] = { - 0x00070057, 0x00070058, 0x00070059, - 0x0007005A, 0x0007005B, 0x0007005C, - 0x00070057, 0x0007005D, 0x0007005E + DATA_MAKE_NUM(DATADIR_BOARD, 0x57), DATA_MAKE_NUM(DATADIR_BOARD, 0x58), DATA_MAKE_NUM(DATADIR_BOARD, 0x59), + DATA_MAKE_NUM(DATADIR_BOARD, 0x5A), DATA_MAKE_NUM(DATADIR_BOARD, 0x5B), DATA_MAKE_NUM(DATADIR_BOARD, 0x5C), + DATA_MAKE_NUM(DATADIR_BOARD, 0x57), DATA_MAKE_NUM(DATADIR_BOARD, 0x5D), DATA_MAKE_NUM(DATADIR_BOARD, 0x5E) }; void BoardStartExec(void) { @@ -321,7 +321,7 @@ static void CreatePlayerStart(void) { var_r30->unk06 = 2; var_r30->unk04 = 1; var_r30->unk0E = 0x3C; - var_r30->unk08 = BoardModelCreate(0x70018, NULL, 0); + var_r30->unk08 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x18), NULL, 0); BoardModelVisibilitySet(var_r30->unk08, 0); BoardModelMotionSpeedSet(var_r30->unk08, 0.0f); OSs8tof32(&i, &temp_f30); @@ -460,15 +460,15 @@ static void PlayerDiceFall(omObjData *arg0, PlayerStartWork *arg1) { } static s32 digitMdlTbl[9] = { - 0x0007000D, 0x0007000E, 0x0007000F, - 0x00070010, 0x00070011, 0x00070012, - 0x00070013, 0x00070014, 0x00070015 + DATA_MAKE_NUM(DATADIR_BOARD, 0x0D), DATA_MAKE_NUM(DATADIR_BOARD, 0x0E), DATA_MAKE_NUM(DATADIR_BOARD, 0x0F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x10), DATA_MAKE_NUM(DATADIR_BOARD, 0x11), DATA_MAKE_NUM(DATADIR_BOARD, 0x12), + DATA_MAKE_NUM(DATADIR_BOARD, 0x13), DATA_MAKE_NUM(DATADIR_BOARD, 0x14), DATA_MAKE_NUM(DATADIR_BOARD, 0x15) }; static s32 playerOrderMesTbl[3] = { - 0x00150013, - 0x00150014, - 0x00150015 + MAKE_MESSID(0x15, 0x13), + MAKE_MESSID(0x15, 0x14), + MAKE_MESSID(0x15, 0x15) }; static void PlayerDiceRoll(omObjData *arg0, PlayerStartWork *arg1) { @@ -787,7 +787,7 @@ static void InitCamera(void) { camStartFocusPos.x -= 150.0f; break; } - camFocus = BoardModelCreate(0x7000A, NULL, 0); + camFocus = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 0); BoardModelVisibilitySet(camFocus, 0); BoardModelPosSetV(camFocus, &camStartFocusPos); if (_CheckFlag(FLAG_ID_MAKE(1, 11))) { @@ -838,7 +838,7 @@ static void CreateTapWin(void) { s32 var_r31; if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) { - var_r31 = 0x120014; + var_r31 = MAKE_MESSID(0x12, 0x14); HuWinMesMaxSizeGet(1, sp8, var_r31); var_f31 = -10000.0f; var_f30 = 368.0f; diff --git a/src/game/board/ui.c b/src/game/board/ui.c index 6fc886b5..3e472858 100755 --- a/src/game/board/ui.c +++ b/src/game/board/ui.c @@ -164,17 +164,17 @@ static s16 yourTurnSprGrp = -1; static UnkUiStatusStruct uiStatus[4] = { 0 }; static s32 statusSprTbl[11] = { - 0x00070027, - 0x00070026, - 0x00070029, - 0x00070028, - 0x00070028, - 0x00070028, - 0x0007002D, - 0x00070028, - 0x00070028, - 0x00070028, - 0x0007002C + DATA_MAKE_NUM(DATADIR_BOARD, 0x27), + DATA_MAKE_NUM(DATADIR_BOARD, 0x26), + DATA_MAKE_NUM(DATADIR_BOARD, 0x29), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x28), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2C) }; static s16 statusSprPrioTbl[12] = { @@ -231,20 +231,20 @@ static float statusItemPosTbl[6][2] = { }; static s32 itemMdlTbl[14] = { - 0x00070083, - 0x00070084, - 0x00070085, - 0x00070086, - 0x00070087, - 0x00070088, - 0x00070089, - 0x0007008A, - 0x0007008B, - 0x0007008C, - 0x0007008D, - 0x0007008E, - 0x0007008F, - 0x00070090 + DATA_MAKE_NUM(DATADIR_BOARD, 0x83), + DATA_MAKE_NUM(DATADIR_BOARD, 0x84), + DATA_MAKE_NUM(DATADIR_BOARD, 0x85), + DATA_MAKE_NUM(DATADIR_BOARD, 0x86), + DATA_MAKE_NUM(DATADIR_BOARD, 0x87), + DATA_MAKE_NUM(DATADIR_BOARD, 0x88), + DATA_MAKE_NUM(DATADIR_BOARD, 0x89), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8B), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8C), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x8F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x90) }; static Vec teamItemStatusPosTbl[2] = { @@ -254,20 +254,20 @@ static Vec teamItemStatusPosTbl[2] = { s32 BoardItemModelGet(s32 arg0) { s32 sp8[14] = { - 0x0007006D, - 0x0007006E, - 0x0007006F, - 0x00070070, - 0x00070071, - 0x00070072, - 0x00070073, - 0x00070074, - 0x00070076, - 0x00070077, - 0x00070078, - 0x00070079, - 0x0007007A, - 0x0007007B + DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x70), + DATA_MAKE_NUM(DATADIR_BOARD, 0x71), + DATA_MAKE_NUM(DATADIR_BOARD, 0x72), + DATA_MAKE_NUM(DATADIR_BOARD, 0x73), + DATA_MAKE_NUM(DATADIR_BOARD, 0x74), + DATA_MAKE_NUM(DATADIR_BOARD, 0x76), + DATA_MAKE_NUM(DATADIR_BOARD, 0x77), + DATA_MAKE_NUM(DATADIR_BOARD, 0x78), + DATA_MAKE_NUM(DATADIR_BOARD, 0x79), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7B) }; return sp8[arg0]; @@ -275,21 +275,21 @@ s32 BoardItemModelGet(s32 arg0) { s32 BoardItemNameGet(s32 arg0) { s32 sp8[15] = { - 0x00120000, - 0x00120001, - 0x00120002, - 0x00120003, - 0x00120004, - 0x00120005, - 0x00120006, - 0x00120007, - 0x00120008, - 0x00120009, - 0x0012000A, - 0x0012000B, - 0x0012000C, - 0x0012000D, - 0x0012000E + DATA_MAKE_NUM(DATADIR_EFFECT, 0x00), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x01), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x02), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x03), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x04), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x05), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x06), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x07), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x08), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x09), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x0A), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x0B), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x0C), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x0D), + DATA_MAKE_NUM(DATADIR_EFFECT, 0x0E) }; return sp8[arg0]; @@ -427,10 +427,10 @@ void BoardStatusHammerCreate(s32 arg0) { case 0: return; case 2: - var_r30 = 0x70093; + var_r30 = DATA_MAKE_NUM(DATADIR_BOARD, 0x93); break; case 1: - var_r30 = 0x70092; + var_r30 = DATA_MAKE_NUM(DATADIR_BOARD, 0x92); break; } if (!temp_r31->unk00_bit6) { @@ -524,14 +524,14 @@ static void CreateBoardStatusSprite(s32 arg0, UnkUiStatusStruct *arg1) { s32 temp_r27; s16 temp_r26; s32 spC[] = { - 0x0007002E, - 0x0007002F, - 0x00070030, - 0x00070031, - 0x00070032, - 0x00070033, - 0x00070034, - 0x00070035 + DATA_MAKE_NUM(DATADIR_BOARD, 0x2E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x30), + DATA_MAKE_NUM(DATADIR_BOARD, 0x31), + DATA_MAKE_NUM(DATADIR_BOARD, 0x32), + DATA_MAKE_NUM(DATADIR_BOARD, 0x33), + DATA_MAKE_NUM(DATADIR_BOARD, 0x34), + DATA_MAKE_NUM(DATADIR_BOARD, 0x35) }; s32 i; @@ -559,14 +559,14 @@ static void CreateBoardStatusSprite(s32 arg0, UnkUiStatusStruct *arg1) { var_f31 = statusSprPosTbl[11][0]; var_f30 = statusSprPosTbl[11][1]; HuSprPosSet(arg1->unk02, 11, var_f31, var_f30); - BoardSpriteCreate(0x7002A, 0x5DC, NULL, &sp8); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x2A), 0x5DC, NULL, &sp8); HuSprGrpMemberSet(arg1->unk02, 0xC, sp8); var_f31 = statusSprPosTbl[12][0]; var_f30 = statusSprPosTbl[12][1]; HuSprPosSet(arg1->unk02, 12, var_f31, var_f30); HuSprAttrSet(arg1->unk02, 0xC, 8); for (i = 0; i < 3; i++) { - BoardSpriteCreate(0x70091, 0x5DC, NULL, &sp8); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x91), 0x5DC, NULL, &sp8); HuSprGrpMemberSet(arg1->unk02, i + 0xD, sp8); HuSprAttrSet(arg1->unk02, i + 0xD, 1); HuSprAttrSet(arg1->unk02, i + 0xD, 8); @@ -704,14 +704,14 @@ void BoardPickerCreate(s32 arg0, s8 arg1, void *arg2, s8 arg3) { s32 temp_r28; s16 sp12; s32 sp14[] = { - 0x0007001E, - 0x0007001F, - 0x00070020, - 0x00070021, - 0x00070022, - 0x00070023, - 0x00070024, - 0x00070025 + DATA_MAKE_NUM(DATADIR_BOARD, 0x1E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x20), + DATA_MAKE_NUM(DATADIR_BOARD, 0x21), + DATA_MAKE_NUM(DATADIR_BOARD, 0x22), + DATA_MAKE_NUM(DATADIR_BOARD, 0x23), + DATA_MAKE_NUM(DATADIR_BOARD, 0x24), + DATA_MAKE_NUM(DATADIR_BOARD, 0x25) }; temp_r28 = GWPlayer[arg0].character; @@ -899,14 +899,14 @@ void BoardYourTurnExec(s32 arg0) { s32 temp_r29; UnkUiWork02 *temp_r31; s32 sp8[] = { - 0x00070043, - 0x00070044, - 0x00070045, - 0x00070046, - 0x00070047, - 0x00070048, - 0x00070049, - 0x0007004A + DATA_MAKE_NUM(DATADIR_BOARD, 0x43), + DATA_MAKE_NUM(DATADIR_BOARD, 0x44), + DATA_MAKE_NUM(DATADIR_BOARD, 0x45), + DATA_MAKE_NUM(DATADIR_BOARD, 0x46), + DATA_MAKE_NUM(DATADIR_BOARD, 0x47), + DATA_MAKE_NUM(DATADIR_BOARD, 0x48), + DATA_MAKE_NUM(DATADIR_BOARD, 0x49), + DATA_MAKE_NUM(DATADIR_BOARD, 0x4A) }; temp_r29 = GWPlayer[arg0].character; @@ -1086,10 +1086,10 @@ static void ItemUseProc(void) { itemTeamF = 0; BoardFilterFadeOut(0x1E); if (itemUsed == 0xA) { - var_r27 = 0x40000; + var_r27 = DATADIR_BKOOPASUIT; } if (itemUsed == 0xB) { - var_r27 = 0x90000; + var_r27 = DATADIR_BYOKODORI; } if (var_r27 != -1) { var_r24 = BoardDataDirReadAsync(var_r27); @@ -1177,8 +1177,8 @@ static void DestroyItemUse(void) { for (i = 0; i < 4; i++) { GWPlayer[i].show_next = 1; } - HuDataDirClose(0x40000); - HuDataDirClose(0x90000); + HuDataDirClose(DATADIR_BKOOPASUIT); + HuDataDirClose(DATADIR_BYOKODORI); itemUseProc = NULL; } @@ -1824,11 +1824,11 @@ static void CreateItemWindow(s32 arg0, s32 arg1) { HuWinCenterPosSet(temp_r31->unk12[i], 0.0f, 48.0f); HuWinMesSpeedSet(temp_r31->unk12[i], 0); HuWinMesSet(temp_r31->unk12[i], BoardItemNameGet(temp_r28)); - HuWinMesMaxSizeGet(1, sp8, temp_r28 + 0x8000E); + HuWinMesMaxSizeGet(1, sp8, temp_r28 + MAKE_MESSID(0x08, 0x0E)); temp_r31->unk1E[i] = HuWinCreate(temp_r31->unk2C[i].x, temp_r31->unk2C[i].y - (-94.0f), sp8[0], sp8[1], 0); HuWinDrawNoSet(temp_r31->unk1E[i], 0x40); HuWinMesSpeedSet(temp_r31->unk1E[i], 0); - HuWinMesSet(temp_r31->unk1E[i], temp_r28 + 0x8000E); + HuWinMesSet(temp_r31->unk1E[i], temp_r28 + MAKE_MESSID(0x08, 0x0E)); sp10.x = temp_r31->unk2C[i].x + 48.0f; sp10.y = temp_r31->unk2C[i].y; sp10.z = 400.0f; @@ -1964,9 +1964,9 @@ static void CreatePickerWindow(UnkUiWork01 *arg0, s32 arg1) { break; } if (arg1 != 0) { - var_r30 = 0x10001A; + var_r30 = MAKE_MESSID(0x10, 0x1A); } else { - var_r30 = 0x10001B; + var_r30 = MAKE_MESSID(0x10, 0x1B); } HuWinMesMaxSizeGet(1, spC, var_r30); var_f30 = -10000.0f; diff --git a/src/game/board/view.c b/src/game/board/view.c index a22e11d9..6a0859c6 100755 --- a/src/game/board/view.c +++ b/src/game/board/view.c @@ -356,7 +356,7 @@ static void SetTargetView(void) { Vec sp8; BoardCameraBackup(); - focusMdl = BoardModelCreate(0x7000A, 0, 0); + focusMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), 0, 0); BoardModelVisibilitySet(focusMdl, 0); BoardModelPosSetV(focusMdl, &focusPos); BoardCameraNearFarSet(10.0f, 30000.0f); @@ -399,10 +399,10 @@ static void CreateButtonWin(void) { s32 var_r31; if (viewControls != 2) { - var_r31 = 0x90005; + var_r31 = MAKE_MESSID(0x09, 0x05); var_f31 = 286.0f; } else { - var_r31 = 0x10004D; + var_r31 = MAKE_MESSID(0x10, 0x4D); var_f31 = 328.0f; } HuWinMesMaxSizeGet(1, sp8, var_r31); @@ -429,14 +429,14 @@ static void InitOverheadView(void) { float *temp_r30; s32 i; s32 sp1C[8] = { - 0x0007002E, - 0x0007002F, - 0x00070030, - 0x00070031, - 0x00070032, - 0x00070033, - 0x00070034, - 0x00070035 + DATA_MAKE_NUM(DATADIR_BOARD, 0x2E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x2F), + DATA_MAKE_NUM(DATADIR_BOARD, 0x30), + DATA_MAKE_NUM(DATADIR_BOARD, 0x31), + DATA_MAKE_NUM(DATADIR_BOARD, 0x32), + DATA_MAKE_NUM(DATADIR_BOARD, 0x33), + DATA_MAKE_NUM(DATADIR_BOARD, 0x34), + DATA_MAKE_NUM(DATADIR_BOARD, 0x35) }; temp_r26 = omAddObjEx(boardObjMan, 0x1000, 0, 0, -1, UpdateOverheadView); @@ -459,13 +459,13 @@ static void InitOverheadView(void) { } else { GWCharColorGet(GWPlayer[i].character, &spA); } - BoardSpriteCreate(0x7006C, 0x1770, 0, &sp8); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x6C), 0x1770, 0, &sp8); HuSprGrpMemberSet(temp_r31->unk02, i + 4, sp8); HuSprPosSet(temp_r31->unk02, i + 4, temp_r30[0], temp_r30[1]); HuSprColorSet(temp_r31->unk02, i + 4, spA.r, spA.g, spA.b); } temp_r30 = overhead2DPos[4]; - temp_r31->unk04 = BoardModelCreate(0x70008, NULL, 0); + temp_r31->unk04 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x08), NULL, 0); BoardModelMotionSpeedSet(temp_r31->unk04, 0.0f); BoardModelLayerSet(temp_r31->unk04, 6); BoardModelScaleSet(temp_r31->unk04, 0.4f, 0.4f, 0.4f); @@ -476,7 +476,7 @@ static void InitOverheadView(void) { spA.r = 0xF8; spA.g = 0xF0; spA.b = 0x80; - BoardSpriteCreate(0x7006C, 0x1770, 0, &sp8); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x6C), 0x1770, 0, &sp8); HuSprGrpMemberSet(temp_r31->unk02, 8, sp8); HuSprPosSet(temp_r31->unk02, 8, temp_r30[0], temp_r30[1]); HuSprColorSet(temp_r31->unk02, 8, spA.r, spA.g, spA.b); diff --git a/src/game/chrman.c b/src/game/chrman.c index c3d6f78e..9e953bea 100755 --- a/src/game/chrman.c +++ b/src/game/chrman.c @@ -100,122 +100,52 @@ static u8 lbl_801D3608[8] = { 0x0D, 0x00, 0x17, 0x69, 0x0D, 0x1E, 0x1D, 0x14 }; static u8 lbl_801D3610[8] = { 0x15, 0x1E, 0x16, 0x54, 0x0F, 0x62, 0x39, 0x0A }; static EffectData effectDataTbl[8] = { - { 0x00120006, 0x000A, 0x0000, 0x00000002 }, - { 0x00120005, 0x000A, 0x0000, 0x00000002 }, - { 0x00120002, 0x0096, 0x0001, 0x00000000 }, - { 0x00120003, 0x0046, 0x0000, 0x00000000 }, - { 0x00120000, 0x012C, 0x0001, 0x00000000 }, - { 0x00120001, 0x012C, 0x0001, 0x00000000 }, - { 0x00120004, 0x00C8, 0x0001, 0x00000000 }, - { 0x00120007, 0x000C, 0x0000, 0x00000002 } + { DATA_MAKE_NUM(DATADIR_EFFECT, 0x06), 0x000A, 0x0000, 0x00000002 }, + { DATA_MAKE_NUM(DATADIR_EFFECT, 0x05), 0x000A, 0x0000, 0x00000002 }, + { DATA_MAKE_NUM(DATADIR_EFFECT, 0x02), 0x0096, 0x0001, 0x00000000 }, + { DATA_MAKE_NUM(DATADIR_EFFECT, 0x03), 0x0046, 0x0000, 0x00000000 }, + { DATA_MAKE_NUM(DATADIR_EFFECT, 0x00), 0x012C, 0x0001, 0x00000000 }, + { DATA_MAKE_NUM(DATADIR_EFFECT, 0x01), 0x012C, 0x0001, 0x00000000 }, + { DATA_MAKE_NUM(DATADIR_EFFECT, 0x04), 0x00C8, 0x0001, 0x00000000 }, + { DATA_MAKE_NUM(DATADIR_EFFECT, 0x07), 0x000C, 0x0000, 0x00000002 }, }; static s32 charDirTbl[8][3] = { - { 0x005D0000, 0x005E0000, 0x005F0000 }, - { 0x00180000, 0x00190000, 0x001A0000 }, - { 0x006B0000, 0x006C0000, 0x006D0000 }, - { 0x00880000, 0x00890000, 0x008A0000 }, - { 0x00830000, 0x00840000, 0x00850000 }, - { 0x000F0000, 0x00100000, 0x00110000 }, - { 0x000B0000, 0x000C0000, 0x000D0000 }, - { 0x007F0000, 0x00800000, 0x00810000 } + { DATADIR_MARIOMDL0, DATADIR_MARIOMDL1, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00) }, + { DATADIR_LUIGIMDL0, DATADIR_LUIGIMDL1, DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00) }, + { DATADIR_PEACHMDL0, DATADIR_PEACHMDL1, DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00) }, + { DATADIR_YOSHIMDL0, DATADIR_YOSHIMDL1, DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00) }, + { DATADIR_WARIOMDL0, DATADIR_WARIOMDL1, DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00) }, + { DATADIR_DONKEYMDL0, DATADIR_DONKEYMDL1, DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00) }, + { DATADIR_DAISYMDL0, DATADIR_DAISYMDL1, DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00) }, + { DATADIR_WALUIGIMDL0, DATADIR_WALUIGIMDL1, DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00) }, }; -static EffectParamData effectDustParam = { - 0, - 0x80, 0x80, 0x80, 0xFF, - 0x40, 0x20, 0x00, 0xFF, - { 0.0f, 2.0f, 1.0f }, - 0.95f, 0.95f, 0.95f, - 0.0f, - 0x00000000, - 1.0f, - -5.0f, - 0.02f -}; +static EffectParamData effectDustParam + = { 0, 0x80, 0x80, 0x80, 0xFF, 0x40, 0x20, 0x00, 0xFF, { 0.0f, 2.0f, 1.0f }, 0.95f, 0.95f, 0.95f, 0.0f, 0x00000000, 1.0f, -5.0f, 0.02f }; -static EffectParamData effectDotParam = { - 0, - 0xFF, 0x40, 0x40, 0x80, - 0xFF, 0x40, 0x40, 0x80, - { 0.0f, 0.0f, 0.0f }, - 0.0f, 0.0f, 0.0f, - 0.0f, - 0x00000000, - -5.0f, - 0.0f, - 0.0f -}; +static EffectParamData effectDotParam + = { 0, 0xFF, 0x40, 0x40, 0x80, 0xFF, 0x40, 0x40, 0x80, { 0.0f, 0.0f, 0.0f }, 0.0f, 0.0f, 0.0f, 0.0f, 0x00000000, -5.0f, 0.0f, 0.0f }; -static EffectParamData effectStarParam = { - 0, - 0xFF, 0xFF, 0x00, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, - { 0.0f, 0.0f, 0.0f }, - 0.95f, 0.95f, 0.95f, - 0.0f, - 0x00000000, - -0.5f, - -10.0f, - 0.0f -}; +static EffectParamData effectStarParam + = { 0, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, { 0.0f, 0.0f, 0.0f }, 0.95f, 0.95f, 0.95f, 0.0f, 0x00000000, -0.5f, -10.0f, 0.0f }; -static EffectParamData effectWarnParam = { - 0, - 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, - { 0.0f, 20.0f, 0.0f }, - 0.95f, 0.85f, 0.95f, - 0.0f, - 0x00000000, - 1.0f, - -5.0f, - 0.0f -}; +static EffectParamData effectWarnParam + = { 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, { 0.0f, 20.0f, 0.0f }, 0.95f, 0.85f, 0.95f, 0.0f, 0x00000000, 1.0f, -5.0f, 0.0f }; -static EffectParamData effectSmokeParam = { - 0, - 0x80, 0x20, 0x20, 0xFF, - 0x00, 0x00, 0x00, 0xFF, - { 0.0f, 10.0f, 0.0f }, - 1.0f, 0.95f, 1.0f, - 0.0f, - 0x00000000, - 5.0f, - -13.0f, - 0.1f -}; +static EffectParamData effectSmokeParam + = { 0, 0x80, 0x20, 0x20, 0xFF, 0x00, 0x00, 0x00, 0xFF, { 0.0f, 10.0f, 0.0f }, 1.0f, 0.95f, 1.0f, 0.0f, 0x00000000, 5.0f, -13.0f, 0.1f }; -static s8 lbl_801309A0[32] = { - 10, 32, -1, -1, - 20, 40, -1, -1, - 12, 37, -1, -1, - 4, 25, -1, -1, - 5, 30, -1, -1, - 16, 1, 24, 39, - 23, 50, -1, -1, - 19, 39, -1, -1 -}; +static s8 lbl_801309A0[32] + = { 10, 32, -1, -1, 20, 40, -1, -1, 12, 37, -1, -1, 4, 25, -1, -1, 5, 30, -1, -1, 16, 1, 24, 39, 23, 50, -1, -1, 19, 39, -1, -1 }; -static s8 lbl_801309C0[32] = { - 15, 29, -1, -1, - 5, 19, -1, -1, - 5, 22, -1, -1, - 12, 28, -1, -1, - 18, 35, -1, -1, - 1, 8, 12, -1, - 0, 16, -1, -1, - 12, 28, -1, -1 -}; +static s8 lbl_801309C0[32] + = { 15, 29, -1, -1, 5, 19, -1, -1, 5, 22, -1, -1, 12, 28, -1, -1, 18, 35, -1, -1, 1, 8, 12, -1, 0, 16, -1, -1, 12, 28, -1, -1 }; -static s8 lbl_801309E0[16] = { - 5, 7, 6, 9, - 10, 11, 9, -1, - 9, 11, 9, -1, - 8, -1, 10, -1 -}; +static s8 lbl_801309E0[16] = { 5, 7, 6, 9, 10, 11, 9, -1, 9, 11, 9, -1, 8, -1, 10, -1 }; -void CharManInit(void) { +void CharManInit(void) +{ UnkCharInstanceStruct *temp_r29; s16 i; s16 j; @@ -230,7 +160,7 @@ void CharManInit(void) { temp_r29->unkC4 = NULL; } if (!effectAMemP) { - effectAMemP = (void*) HuAR_DVDtoARAM(0x120000); + effectAMemP = (void *)HuAR_DVDtoARAM(0x120000); } for (i = 0; i < 8; i++) { effectMdl[i] = -1; @@ -241,11 +171,13 @@ void CharManInit(void) { } } -void *CharAMemPtrGet(s16 character) { +void *CharAMemPtrGet(s16 character) +{ return charInstance[character].unkC0; } -void CharARAMOpen(s16 character) { +void CharARAMOpen(s16 character) +{ UnkCharInstanceStruct *temp_r31; if (character >= 8 || character < 0 || character == 0xFF) { @@ -253,28 +185,31 @@ void CharARAMOpen(s16 character) { } temp_r31 = &charInstance[character]; if (!temp_r31->unkC0) { - temp_r31->unkC0 = (void*) HuAR_DVDtoARAM(charDirTbl[character][2]); + temp_r31->unkC0 = (void *)HuAR_DVDtoARAM(charDirTbl[character][2]); } } -void CharARAMClose(s16 character) { +void CharARAMClose(s16 character) +{ UnkCharInstanceStruct *temp_r31; temp_r31 = &charInstance[character]; if (temp_r31->unkC0) { - HuARFree((u32) temp_r31->unkC0); + HuARFree((u32)temp_r31->unkC0); temp_r31->unkC0 = NULL; } } -void CharKill(s16 character) { +void CharKill(s16 character) +{ s16 i; if (character == -1) { for (i = 0; i < 8; i++) { CharKill(i); } - } else { + } + else { HuDataDirClose(charDirTbl[character][0]); HuDataDirClose(charDirTbl[character][1]); HuDataDirClose(charDirTbl[character][2]); @@ -282,14 +217,16 @@ void CharKill(s16 character) { } } -void CharKillAll(void) { +void CharKillAll(void) +{ CharModelKill(-1); CharKill(-1); - HuARFree((u32) effectAMemP); + HuARFree((u32)effectAMemP); effectAMemP = NULL; } -s16 CharModelCreate(s16 character, s16 lod) { +s16 CharModelCreate(s16 character, s16 lod) +{ s16 sp8 = 0; UnkCharInstanceStruct *temp_r31; void *var_r26; @@ -303,11 +240,14 @@ s16 CharModelCreate(s16 character, s16 lod) { } if (lod & 1) { var_r29 = charDirTbl[character][0]; - } else if (lod & 2) { + } + else if (lod & 2) { var_r29 = charDirTbl[character][1]; - } else if (lod & 4) { + } + else if (lod & 4) { var_r29 = charDirTbl[character][1] | 1; - } else { + } + else { var_r29 = charDirTbl[character][1] | 2; } var_r26 = HuDataSelHeapReadNum(var_r29, MEMORY_DEFAULT_NUM, HEAP_DATA); @@ -322,7 +262,8 @@ s16 CharModelCreate(s16 character, s16 lod) { return var_r25; } -static void UpdateChar(void) { +static void UpdateChar(void) +{ Vec sp8; s16 *temp_r28; UnkCharInstanceStruct *temp_r31; @@ -345,7 +286,8 @@ static void UpdateChar(void) { temp_r31->unk04 = temp_r31->unk4C[i]; UpdateCharAnim(*temp_r28, temp_r31->unk00, temp_r31->unk4C[i], temp_r31->unk8C[i], temp_r29->unk_64, &sp8); temp_r31->unk08 = temp_r31->unk4C[i]; - } else { + } + else { temp_r31->unk04 = -1; } if (temp_r29->unk_0C != -1) { @@ -360,10 +302,12 @@ static void UpdateChar(void) { temp_r31->unk06 = temp_r31->unk4C[i]; UpdateCharAnim(*temp_r28, temp_r31->unk00, temp_r31->unk4C[i], temp_r31->unk8C[i], temp_r29->unk_84, &sp8); temp_r31->unk0A = temp_r31->unk4C[i]; - } else { + } + else { temp_r31->unk06 = -1; } - } else if (var_r27 != 0) { + } + else if (var_r27 != 0) { CharModelTexAnimSet(*temp_r28); var_r27 = 0; } @@ -372,7 +316,8 @@ static void UpdateChar(void) { } } -static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, Vec *arg5) { +static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, Vec *arg5) +{ Vec sp1C; Vec sp10; ModelData *temp_r30; @@ -481,7 +426,8 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, if (arg2 == 7) { Hu3DModelObjMtxGet(arg1, CharModelHookNameGet(character, temp_r29->unk02, 0), sp28); var_r20 = 10; - } else { + } + else { Hu3DModelObjMtxGet(arg1, CharModelHookNameGet(character, temp_r29->unk02, 1), sp28); var_r20 = 13; } @@ -503,12 +449,13 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, var_r20 = 1; } for (i = 1; i <= var_r20; i++) { - sp10.x = arg5->x + (sp1C.x - arg5->x) * ((float) i / var_r20); - sp10.y = arg5->y + (sp1C.y - arg5->y) * ((float) i / var_r20); - sp10.z = arg5->z + (sp1C.z - arg5->z) * ((float) i / var_r20); + sp10.x = arg5->x + (sp1C.x - arg5->x) * ((float)i / var_r20); + sp10.y = arg5->y + (sp1C.y - arg5->y) * ((float)i / var_r20); + sp10.z = arg5->z + (sp1C.z - arg5->z) * ((float)i / var_r20); CreateEffectDot(arg1, sp10.x, sp10.y, sp10.z, 50.0f, &effectDotParam); } - } else { + } + else { CreateEffectDot(arg1, sp1C.x, sp1C.y, sp1C.z, 40.0f, &effectDotParam); } *arg5 = sp1C; @@ -521,13 +468,15 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, effectStarParam.unk0C.x = 10.0 * sind(45.0f * i) * temp_r30->scale.x; effectStarParam.unk0C.y = 0.0f; effectStarParam.unk0C.z = 10.0 * cosd(45.0f * i) * temp_r30->scale.x; - CreateEffectStar(arg1, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 40.0f, &effectStarParam); + CreateEffectStar( + arg1, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 40.0f, &effectStarParam); } for (i = 0; i < 8; i++) { effectDustParam.unk0C.x = 4.0 * sind(45.0f * i + 22.5) * temp_r30->scale.x; effectDustParam.unk0C.y = 0.0f; effectDustParam.unk0C.z = 4.0 * cosd(45.0f * i + 22.5) * temp_r30->scale.x; - CreateEffectDust(arg1, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 20.0f, &effectDustParam); + CreateEffectDust( + arg1, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 20.0f, &effectDustParam); } } PlayCharVoice(character, 0x119, arg3); @@ -550,9 +499,11 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, var_r27->unk08.x = arg1; if (character == 7) { var_r27->unk08.y = 190.0f; - } else if (character == 2 || character == 5 || character == 6) { + } + else if (character == 2 || character == 5 || character == 6) { var_r27->unk08.y = 140.0f; - } else { + } + else { var_r27->unk08.y = 120.0f; } var_r27->unk14.x = var_r27->unk14.z = 0.0f; @@ -563,7 +514,8 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, effectDustParam.unk0C.x = 4.0 * sind(45.0f * i + 22.5) * temp_r30->scale.x; effectDustParam.unk0C.y = 0.0f; effectDustParam.unk0C.z = 4.0 * cosd(45.0f * i + 22.5) * temp_r30->scale.x; - CreateEffectDust(arg1, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 20.0f, &effectDustParam); + CreateEffectDust( + arg1, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 20.0f, &effectDustParam); } } } @@ -584,9 +536,11 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, var_r27->unk08.x = arg1; if (character == 7) { var_r27->unk08.y = 150.0f; - } else if (character == 2 || character == 5 || character == 6) { + } + else if (character == 2 || character == 5 || character == 6) { var_r27->unk08.y = 120.0f; - } else { + } + else { var_r27->unk08.y = 100.0f; } var_r27->unk14.x = var_r27->unk14.z = 0.0f; @@ -599,7 +553,8 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, if (!(temp_r29->unkAC & 1) && !(temp_r29->unkAC & 0x10)) { PlayCharVoice(character, 0x11A, arg3); for (i = 0; i < 3; i++) { - var_r19 = CreateEffectBird(arg1, temp_r30->pos.x, temp_r30->pos.y + 100.0f * temp_r30->scale.x, temp_r30->pos.z, 1.0f, &effectWarnParam); + var_r19 = CreateEffectBird( + arg1, temp_r30->pos.x, temp_r30->pos.y + 100.0f * temp_r30->scale.x, temp_r30->pos.z, 1.0f, &effectWarnParam); if (var_r19 == -1) { break; } @@ -627,9 +582,11 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, if (arg4 == 0) { if (temp_r29->unkB0 == 4) { PlayCharVoice(character, 0x10A, arg3); - } else if (temp_r29->unkB0 == 5) { + } + else if (temp_r29->unkB0 == 5) { PlayCharVoice(character, 0x10C, arg3); - } else { + } + else { PlayCharVoice(character, 0x115, arg3); } } @@ -680,7 +637,8 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, PlayCharVoice(character, 0x124, arg3); temp_r29->unkAC |= 2; var_r22 |= 2; - } else if (omcurovl >= OVL_W01 && arg4 == lbl_801D35F8[character]) { + } + else if (omcurovl >= OVL_W01 && arg4 == lbl_801D35F8[character]) { PlayCharVoice(character, 0x122, arg3); temp_r29->unkAC |= 2; var_r22 |= 2; @@ -721,7 +679,8 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, } } -static s32 PlayCharVoice(s16 character, s16 arg1, u8 arg2) { +static s32 PlayCharVoice(s16 character, s16 arg1, u8 arg2) +{ UnkCharInstanceStruct *temp_r31; ModelData *temp_r29; @@ -732,12 +691,14 @@ static s32 PlayCharVoice(s16 character, s16 arg1, u8 arg2) { } if (temp_r31->unkAC & 8) { return HuAudCharVoicePlayPos(character, arg1, &temp_r29->pos); - } else { + } + else { return HuAudCharVoicePlay(character, arg1); } } -static void InitEffect(void) { +static void InitEffect(void) +{ HsfanimStruct01 *var_r29; ParticleData *temp_r30; void *temp_r26; @@ -772,11 +733,12 @@ static void InitEffect(void) { } } if (var_r27 != 0) { - HuDataDirClose(0x120000); + HuDataDirClose(DATADIR_EFFECT); } } -static s16 CreateEffectDust(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) { +static s16 CreateEffectDust(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) +{ ModelData *temp_r31; temp_r31 = &Hu3DData[arg0]; @@ -787,7 +749,8 @@ static s16 CreateEffectDust(s16 arg0, float arg1, float arg2, float arg3, float return CreateEffect(effectMdl[2], temp_r31->camera, arg1, arg2, arg3, arg4, arg5); } -static s16 CreateEffectSmoke(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) { +static s16 CreateEffectSmoke(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) +{ ModelData *temp_r31; temp_r31 = &Hu3DData[arg0]; @@ -798,7 +761,8 @@ static s16 CreateEffectSmoke(s16 arg0, float arg1, float arg2, float arg3, float return CreateEffect(effectMdl[3], temp_r31->camera, arg1, arg2, arg3, arg4, arg5); } -static s16 CreateEffectDot(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) { +static s16 CreateEffectDot(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) +{ ModelData *temp_r31; temp_r31 = &Hu3DData[arg0]; @@ -809,7 +773,8 @@ static s16 CreateEffectDot(s16 arg0, float arg1, float arg2, float arg3, float a return CreateEffect(effectMdl[6], temp_r31->camera, arg1, arg2, arg3, arg4, arg5); } -static s16 CreateEffectStar(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) { +static s16 CreateEffectStar(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) +{ ModelData *temp_r31; temp_r31 = &Hu3DData[arg0]; @@ -820,7 +785,8 @@ static s16 CreateEffectStar(s16 arg0, float arg1, float arg2, float arg3, float return CreateEffect(effectMdl[4], temp_r31->camera, arg1, arg2, arg3, arg4, arg5); } -static s16 CreateEffectWarn(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) { +static s16 CreateEffectWarn(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) +{ ModelData *temp_r31; temp_r31 = &Hu3DData[arg0]; @@ -831,7 +797,8 @@ static s16 CreateEffectWarn(s16 arg0, float arg1, float arg2, float arg3, float return CreateEffect(effectMdl[0], temp_r31->camera, arg1, arg2, arg3, arg4, arg5); } -static s16 CreateEffectBird(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) { +static s16 CreateEffectBird(s16 arg0, float arg1, float arg2, float arg3, float arg4, EffectParamData *arg5) +{ ModelData *temp_r31; temp_r31 = &Hu3DData[arg0]; @@ -842,7 +809,8 @@ static s16 CreateEffectBird(s16 arg0, float arg1, float arg2, float arg3, float return CreateEffect(effectMdl[7], temp_r31->camera, arg1, arg2, arg3, arg4, arg5); } -static s16 CreateEffect(s16 arg0, s16 arg1, float arg2, float arg3, float arg4, float arg5, EffectParamData *arg6) { +static s16 CreateEffect(s16 arg0, s16 arg1, float arg2, float arg3, float arg4, float arg5, EffectParamData *arg6) +{ ModelData *var_r28; ParticleData *temp_r30; EffectParamData *var_r27; @@ -882,13 +850,15 @@ static s16 CreateEffect(s16 arg0, s16 arg1, float arg2, float arg3, float arg4, var_r31->unk00 = 0; var_r31->unk02 = -1; temp_r30->unk_02 = i; - } else { + } + else { return -1; } return i; } -static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix) { +static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix) +{ EffectParamData *temp_r30; HsfanimStruct01 *var_r31; s16 var_r28; @@ -913,21 +883,24 @@ static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix) { var_r28 = var_r31->unk40.r + temp_r30[i].unk34 * (temp_r30[i].unk08 - temp_r30[i].unk04); if (var_r28 < 0) { var_r28 = 0; - } else if (var_r28 > 0xFF) { + } + else if (var_r28 > 0xFF) { var_r28 = 0xFF; } var_r31->unk40.r = var_r28; var_r28 = var_r31->unk40.g + temp_r30[i].unk34 * (temp_r30[i].unk09 - temp_r30[i].unk05); if (var_r28 < 0) { var_r28 = 0; - } else if (var_r28 > 0xFF) { + } + else if (var_r28 > 0xFF) { var_r28 = 0xFF; } var_r31->unk40.g = var_r28; var_r28 = var_r31->unk40.b + temp_r30[i].unk34 * (temp_r30[i].unk0A - temp_r30[i].unk06); if (var_r28 < 0) { var_r28 = 0; - } else if (var_r28 > 0xFF) { + } + else if (var_r28 > 0xFF) { var_r28 = 0xFF; } var_r31->unk40.b = var_r28; @@ -939,7 +912,8 @@ static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix) { if (var_r31->unk2C) { if (temp_r30[i].unk00 & 1) { var_r31->unk2C = var_r31->unk28 * (((var_r31->unk00_s16 + i) & 1) ? 1.0 : 0.5); - } else { + } + else { var_r31->unk2C = var_r31->unk28; } var_r31->unk28 += temp_r30[i].unk2C; @@ -948,7 +922,8 @@ static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix) { } } var_r31->unk00_s16++; - } else { + } + else { switch (var_r31->unk02) { case 0: RotateEffect(var_r31); @@ -966,17 +941,19 @@ static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix) { DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } -static void RotateEffect(HsfanimStruct01 *arg0) { +static void RotateEffect(HsfanimStruct01 *arg0) +{ ModelData *temp_r30; float var_f31; - temp_r30 = &Hu3DData[(s32) arg0->unk08.x]; + temp_r30 = &Hu3DData[(s32)arg0->unk08.x]; if (arg0->unk00_s16 < 8) { var_f31 = 0.3 + sind(40.0f + 10.0f * (arg0->unk00_s16 + 1)); arg0->unk2C = 50.0f * var_f31 * temp_r30->scale.x; arg0->unk40.a = 0xFF; var_f31 = 0.3 + sind(15.0f * (arg0->unk00_s16 + 1)); - } else { + } + else { var_f31 = 0.3 + sind(135); } var_f31 *= temp_r30->scale.x; @@ -993,14 +970,11 @@ static void RotateEffect(HsfanimStruct01 *arg0) { arg0->unk00_s16++; } -static float voiceParam[16] = { - 110.0f, 160.0f, 110.0f, 160.0f, - 150.0f, 180.0f, 130.0f, 160.0f, - 130.0f, 160.0f, 150.0f, 160.0f, - 150.0f, 180.0f, 120.0f, 210.0f -}; +static float voiceParam[16] + = { 110.0f, 160.0f, 110.0f, 160.0f, 150.0f, 180.0f, 130.0f, 160.0f, 130.0f, 160.0f, 150.0f, 160.0f, 150.0f, 180.0f, 120.0f, 210.0f }; -static void PlayEffectSound(HsfanimStruct01 *arg0) { +static void PlayEffectSound(HsfanimStruct01 *arg0) +{ ModelData *temp_r30; UnkCharInstanceStruct *temp_r29; s16 temp_r26; @@ -1016,7 +990,8 @@ static void PlayEffectSound(HsfanimStruct01 *arg0) { arg0->unk40.a = 0xFF; if (temp_r29->unk04 == 0x16 || temp_r29->unk06 == 0x16) { var_r25 = voiceParam[temp_r28 * 2]; - } else { + } + else { var_r25 = voiceParam[temp_r28 * 2 + 1]; } temp_r26 = (arg0->unk00_s16 * 5) % 360; @@ -1039,7 +1014,8 @@ static void PlayEffectSound(HsfanimStruct01 *arg0) { } } -s16 CharModelMotionCreate(s16 character, s32 data_num) { +s16 CharModelMotionCreate(s16 character, s32 data_num) +{ UnkCharInstanceStruct *temp_r31; s16 var_r28; s16 var_r30; @@ -1071,7 +1047,8 @@ s16 CharModelMotionCreate(s16 character, s32 data_num) { var_r27 = HuDataSelHeapReadNum(data_num | charDirTbl[character][2], MEMORY_DEFAULT_NUM, HEAP_DATA); } temp_r31->unk4C[var_r30] = data_num; - } else { + } + else { var_r27 = HuDataSelHeapReadNum(data_num, MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk4C[var_r30] = -1; } @@ -1080,7 +1057,8 @@ s16 CharModelMotionCreate(s16 character, s32 data_num) { return temp_r31->unk0C[var_r30]; } -void CharModelMotionIndexSet(s16 character, s16 arg1, s32 arg2) { +void CharModelMotionIndexSet(s16 character, s16 arg1, s32 arg2) +{ UnkCharInstanceStruct *temp_r30; s16 i; @@ -1095,7 +1073,8 @@ void CharModelMotionIndexSet(s16 character, s16 arg1, s32 arg2) { } } -void CharModelMotionKill(s16 character, u32 motion) { +void CharModelMotionKill(s16 character, u32 motion) +{ UnkCharInstanceStruct *temp_r30; s16 i; @@ -1109,36 +1088,41 @@ void CharModelMotionKill(s16 character, u32 motion) { Hu3DMotionKill(motion); } -void CharModelMotionDataClose(s16 character) { +void CharModelMotionDataClose(s16 character) +{ s16 i; if (character == -1) { for (i = 0; i < 8; i++) { CharModelMotionDataClose(i); } - } else { + } + else { HuDataDirClose(charDirTbl[character][2]); } } -void CharModelDataClose(s16 arg0) { +void CharModelDataClose(s16 arg0) +{ s16 i; if (arg0 == -1) { for (i = 0; i < 8; i++) { CharModelDataClose(i); // Required to match. - (void) i; - (void) arg0; + (void)i; + (void)arg0; } - } else { + } + else { HuDataDirClose(charDirTbl[arg0][0]); HuDataDirClose(charDirTbl[arg0][1]); HuDataDirClose(charDirTbl[arg0][2]); } } -void CharModelKill(s16 character) { +void CharModelKill(s16 character) +{ UnkCharInstanceStruct *temp_r29; s16 i; @@ -1189,7 +1173,8 @@ void CharModelKill(s16 character) { } } -void CharModelMotionSet(s16 character, s16 motion) { +void CharModelMotionSet(s16 character, s16 motion) +{ UnkCharInstanceStruct *temp_r31; MotionData *sp8; @@ -1199,7 +1184,8 @@ void CharModelMotionSet(s16 character, s16 motion) { Hu3DMotionSet(temp_r31->unk00, motion); } -void CharModelTexAnimSet(s16 character) { +void CharModelTexAnimSet(s16 character) +{ HsfAttribute *var_r31; HsfdrawStruct01 *temp_r30; ModelData *temp_r26; @@ -1231,26 +1217,16 @@ void CharModelTexAnimSet(s16 character) { } } -char *charTexNameTbl[64] = { - "s3c000m1_eyes", "s3c000m1_eyes", "s3c000m1_eyes", "s3c000m1_eyes", - "s3c000m2_eyes", "s3c000m2_eyes", "s3c000m3_eyes", "s3c000m3_eyes", - "S3c001m0_eye", "S3c001m0_eye", "S3c001m1_eye", "S3c001m1_eye", - "c001m3_eye", "c001m3_eye", "c001m3_eye", "c001m3_eye", - "s3c002m0_r_eye", "s3c002m0_l_eye", "s3c002m1_r_eye", "s3c002m1_l_eye", - "s3c002m2_r_eye", "s3c002m2_l_eye", "", "", - "eye1", "eye2", "S3c003m1", "S3c003m1", - "eye1", "eye2", "eye1", "eye2", - "GC-eyes", "GC-eyes", "s3c004m1_eye", "s3c004m1_eye", - "Clswario_eye_l1_AUTO12", "Clswario_eye_l1_AUTO13", "", "", - "m_donkey_eye4", "m_donkey_eye5", "S3donkey_eye", "S3donkey_eye", - "m_donkey_eye1", "m_donkey_eye2", "", "", - "GC-eyes", "GC-eyes", "s3c007m1_Eye_L", "s3c007m1_Eye_R", - "mat87", "mat89", "", "", - "clswaluigi_eye_l1_AUTO1", "clswaluigi_eye_l1_AUTO2", "s3c007_m1_eye", "s3c007_m1_eye", - "clswaluigi_eye_l1_AUTO9", "clswaluigi_eye_l1_AUTO10", "", "" -}; +char *charTexNameTbl[64] = { "s3c000m1_eyes", "s3c000m1_eyes", "s3c000m1_eyes", "s3c000m1_eyes", "s3c000m2_eyes", "s3c000m2_eyes", "s3c000m3_eyes", + "s3c000m3_eyes", "S3c001m0_eye", "S3c001m0_eye", "S3c001m1_eye", "S3c001m1_eye", "c001m3_eye", "c001m3_eye", "c001m3_eye", "c001m3_eye", + "s3c002m0_r_eye", "s3c002m0_l_eye", "s3c002m1_r_eye", "s3c002m1_l_eye", "s3c002m2_r_eye", "s3c002m2_l_eye", "", "", "eye1", "eye2", "S3c003m1", + "S3c003m1", "eye1", "eye2", "eye1", "eye2", "GC-eyes", "GC-eyes", "s3c004m1_eye", "s3c004m1_eye", "Clswario_eye_l1_AUTO12", + "Clswario_eye_l1_AUTO13", "", "", "m_donkey_eye4", "m_donkey_eye5", "S3donkey_eye", "S3donkey_eye", "m_donkey_eye1", "m_donkey_eye2", "", "", + "GC-eyes", "GC-eyes", "s3c007m1_Eye_L", "s3c007m1_Eye_R", "mat87", "mat89", "", "", "clswaluigi_eye_l1_AUTO1", "clswaluigi_eye_l1_AUTO2", + "s3c007_m1_eye", "s3c007_m1_eye", "clswaluigi_eye_l1_AUTO9", "clswaluigi_eye_l1_AUTO10", "", "" }; -char **CharModelTexNameGet(s16 arg0, s16 arg1) { +char **CharModelTexNameGet(s16 arg0, s16 arg1) +{ s16 var_r30; s16 i; @@ -1262,18 +1238,15 @@ char **CharModelTexNameGet(s16 arg0, s16 arg1) { return &charTexNameTbl[arg0 * 8 + i * 2]; } -static char *hookNameTbl[40] = { - "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", - "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", - "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", - "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", - "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", - "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", - "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", - "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body" -}; +static char *hookNameTbl[40] + = { "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", + "a-itemhook-fl", "a-itemhook-body", "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", "a-itemhook-r", + "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", + "a-itemhook-body", "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", "a-itemhook-r", "a-itemhook-l", + "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body", "a-itemhook-r", "a-itemhook-l", "a-itemhook-fr", "a-itemhook-fl", "a-itemhook-body" }; -char *CharModelHookNameGet(s16 arg0, s16 arg1, s16 arg2) { +char *CharModelHookNameGet(s16 arg0, s16 arg1, s16 arg2) +{ s16 i; s16 var_r30; @@ -1285,56 +1258,65 @@ char *CharModelHookNameGet(s16 arg0, s16 arg1, s16 arg2) { return hookNameTbl[arg0 * 5 + arg2]; } -void CharModelMotionTimeSet(s16 character, float time) { +void CharModelMotionTimeSet(s16 character, float time) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; Hu3DMotionTimeSet(temp_r31->unk00, time); } -float CharModelMotionTimeGet(s16 character) { +float CharModelMotionTimeGet(s16 character) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; return Hu3DMotionTimeGet(temp_r31->unk00); } -float CharModelMotionMaxTimeGet(s16 character) { +float CharModelMotionMaxTimeGet(s16 character) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; return Hu3DMotionMaxTimeGet(temp_r31->unk00); } -s32 CharModelMotionEndCheck(s16 character) { +s32 CharModelMotionEndCheck(s16 character) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; return Hu3DMotionEndCheck(temp_r31->unk00); } -s16 CharModelMotionShiftIDGet(s16 character) { +s16 CharModelMotionShiftIDGet(s16 character) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; return Hu3DMotionShiftIDGet(temp_r31->unk00); } -void CharModelMotionShiftSet(s16 character, s16 motion, float time, float shift_time, u32 attr) { +void CharModelMotionShiftSet(s16 character, s16 motion, float time, float shift_time, u32 attr) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; MotionData *sp18 = &Hu3DMotion[motion]; Hu3DMotionShiftSet(temp_r31->unk00, motion, time, shift_time, attr); } -float CharModelMotionShiftTimeGet(s16 character) { +float CharModelMotionShiftTimeGet(s16 character) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; return Hu3DMotionShiftTimeGet(temp_r31->unk00); } -void CharModelMotionSpeedSet(s16 character, float speed) { +void CharModelMotionSpeedSet(s16 character, float speed) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; Hu3DMotionSpeedSet(temp_r31->unk00, speed); } -void CharModelLayerSetAll(s16 arg0) { +void CharModelLayerSetAll(s16 arg0) +{ s16 i; for (i = 0; i < 8; i++) { @@ -1344,7 +1326,8 @@ void CharModelLayerSetAll(s16 arg0) { } } -static inline Process *CharModelItemHookCreateInlineFunc(void) { +static inline Process *CharModelItemHookCreateInlineFunc(void) +{ s16 i; for (i = 0; i < 32; i++) { @@ -1354,13 +1337,15 @@ static inline Process *CharModelItemHookCreateInlineFunc(void) { } if (i == 32) { return NULL; - } else { + } + else { itemHookProcess[i] = HuPrcCreate(UpdateItemHook, 0x64, 0x2000, 0); return itemHookProcess[i]; } } -void CharModelItemHookCreate(s16 character, char *arg1) { +void CharModelItemHookCreate(s16 character, char *arg1) +{ Mtx sp18; Vec spC; UnkCharInstanceStruct *temp_r31; @@ -1397,7 +1382,8 @@ void CharModelItemHookCreate(s16 character, char *arg1) { } } -static void UpdateItemHook(void) { +static void UpdateItemHook(void) +{ Mtx sp14; Vec sp8; ModelData *temp_r30; @@ -1448,20 +1434,11 @@ static void UpdateItemHook(void) { } } -static EffectParamData modelParticleParam = { - 0, - 0xFF, 0xFF, 0xFF, 0xFF, - 0x40, 0x20, 0x00, 0xFF, - { 0.0f, 2.0f, 1.0f }, - 0.95f, 0.95f, 0.95f, - 0.0f, - 0x00000000, - 1.0f, - -5.0f, - 0.02f -}; +static EffectParamData modelParticleParam + = { 0, 0xFF, 0xFF, 0xFF, 0xFF, 0x40, 0x20, 0x00, 0xFF, { 0.0f, 2.0f, 1.0f }, 0.95f, 0.95f, 0.95f, 0.0f, 0x00000000, 1.0f, -5.0f, 0.02f }; -void CharModelEffectCreate(s16 arg0, Vec *arg1) { +void CharModelEffectCreate(s16 arg0, Vec *arg1) +{ s16 temp_r28; s16 i; HsfanimStruct01 *var_r31; @@ -1518,7 +1495,8 @@ void CharModelEffectCreate(s16 arg0, Vec *arg1) { } } -static void OrbitEffect(HsfanimStruct01 *arg0) { +static void OrbitEffect(HsfanimStruct01 *arg0) +{ float temp_f31; float var_f30; s16 temp_r30; @@ -1542,27 +1520,19 @@ static void OrbitEffect(HsfanimStruct01 *arg0) { if (temp_r30 < 0) { arg0->unk40.a = 0; arg0->unk2C = 0.0f; - } else { + } + else { arg0->unk40.a = temp_r30; } } arg0->unk00_s16++; } -static EffectParamData coinParticleParam = { - 1, - 0xFF, 0xFF, 0x00, 0xFF, - 0xFF, 0xFF, 0x00, 0xFF, - { 0.0f, 2.0f, 1.0f }, - 0.95f, 1.0f, 0.95f, - -0.1f, - 0x00000000, - -0.2f, - -8.0f, - 0.0f -}; +static EffectParamData coinParticleParam + = { 1, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, { 0.0f, 2.0f, 1.0f }, 0.95f, 1.0f, 0.95f, -0.1f, 0x00000000, -0.2f, -8.0f, 0.0f }; -void CharModelCoinEffectCreate(s16 arg0, Vec *arg1) { +void CharModelCoinEffectCreate(s16 arg0, Vec *arg1) +{ s16 temp_r29; s16 var_r28; s16 i; @@ -1579,33 +1549,14 @@ void CharModelCoinEffectCreate(s16 arg0, Vec *arg1) { } } -static EffectParamData lbl_80131030 = { - 0, - 0xFF, 0xFF, 0x00, 0xFF, - 0xFF, 0x80, 0x00, 0xFF, - { 0.0f, 2.0f, 1.0f }, - 0.95f, 0.95f, 0.95f, - 0.0f, - 0x00000000, - -0.2f, - -16.0f, - 0.05f -}; +static EffectParamData lbl_80131030 + = { 0, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x80, 0x00, 0xFF, { 0.0f, 2.0f, 1.0f }, 0.95f, 0.95f, 0.95f, 0.0f, 0x00000000, -0.2f, -16.0f, 0.05f }; -static EffectParamData lbl_80131068 = { - 0, - 0xE0, 0x20, 0x20, 0xFF, - 0xE0, 0x20, 0x20, 0xFF, - { 0.0f, 2.0f, 1.0f }, - 1.0f, 1.0f, 1.0f, - 0.0f, - 0x00000000, - -0.2f, - -12.0f, - 0.05f -}; +static EffectParamData lbl_80131068 + = { 0, 0xE0, 0x20, 0x20, 0xFF, 0xE0, 0x20, 0x20, 0xFF, { 0.0f, 2.0f, 1.0f }, 1.0f, 1.0f, 1.0f, 0.0f, 0x00000000, -0.2f, -12.0f, 0.05f }; -void fn_8004EC74(s16 character) { +void fn_8004EC74(s16 character) +{ Mtx sp24; Vec sp18; Vec spC; @@ -1635,7 +1586,8 @@ void fn_8004EC74(s16 character) { } } -void fn_8004EDA4(s16 arg0, Vec *arg1, Vec *arg2) { +void fn_8004EDA4(s16 arg0, Vec *arg1, Vec *arg2) +{ Mtx sp2C; Vec sp20; Vec sp14; @@ -1669,38 +1621,19 @@ void fn_8004EDA4(s16 arg0, Vec *arg1, Vec *arg2) { } } -static EffectParamData lbl_801310BC = { - 0, - 0x20, 0x20, 0xFF, 0xFF, - 0x80, 0xFF, 0x20, 0xFF, - 0.0f, 2.0f, 1.0f, - 0.95f, 0.95f, 0.95f, - 0.0f, - 0x00000000, - -0.2f, - -16.0f, - 0.06f -}; +static EffectParamData lbl_801310BC + = { 0, 0x20, 0x20, 0xFF, 0xFF, 0x80, 0xFF, 0x20, 0xFF, 0.0f, 2.0f, 1.0f, 0.95f, 0.95f, 0.95f, 0.0f, 0x00000000, -0.2f, -16.0f, 0.06f }; -static EffectParamData lbl_801310F4 = { - 0, - 0x20, 0xE0, 0x20, 0xFF, - 0x20, 0xE0, 0x20, 0xFF, - 0.0f, 2.0f, 1.0f, - 1.0f, 1.0f, 1.0f, - 0.0f, - 0x00000000, - -0.2f, - -12.0f, - 0.05f -}; +static EffectParamData lbl_801310F4 + = { 0, 0x20, 0xE0, 0x20, 0xFF, 0x20, 0xE0, 0x20, 0xFF, 0.0f, 2.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0x00000000, -0.2f, -12.0f, 0.05f }; -void fn_8004F058(s16 character) { +void fn_8004F058(s16 character) +{ Mtx sp24; Vec sp18; Vec spC; - ModelData* temp_r31; - UnkCharInstanceStruct* temp_r30; + ModelData *temp_r31; + UnkCharInstanceStruct *temp_r30; temp_r30 = &charInstance[character]; temp_r31 = &Hu3DData[temp_r30->unk00]; @@ -1717,7 +1650,8 @@ void fn_8004F058(s16 character) { fn_8004F13C(temp_r31->camera, &sp18, &temp_r31->rot); } -void fn_8004F13C(s16 arg0, Vec *arg1, Vec *arg2) { +void fn_8004F13C(s16 arg0, Vec *arg1, Vec *arg2) +{ Mtx sp2C; Vec sp20; Vec sp14; @@ -1751,12 +1685,14 @@ void fn_8004F13C(s16 arg0, Vec *arg1, Vec *arg2) { } } -void CharModelLayerSetAll2(s16 arg0) { +void CharModelLayerSetAll2(s16 arg0) +{ CharModelLayerSetAll(arg0); } -void CharModelVoiceEnableSet(s16 character, s16 motion, s32 flag) { - UnkCharInstanceStruct* temp_r31 = &charInstance[character]; +void CharModelVoiceEnableSet(s16 character, s16 motion, s32 flag) +{ + UnkCharInstanceStruct *temp_r31 = &charInstance[character]; s16 i; if (temp_r31->unk00 == -1) { @@ -1770,42 +1706,49 @@ void CharModelVoiceEnableSet(s16 character, s16 motion, s32 flag) { if (i != 32) { if (flag == 0) { temp_r31->unk8C[i] |= 1; - } else { + } + else { temp_r31->unk8C[i] &= ~1; } } } -void fn_8004F52C(s16 character, s32 arg1) { +void fn_8004F52C(s16 character, s32 arg1) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; if (arg1 != 0) { temp_r31->unkAC |= 8; return; - } else { + } + else { temp_r31->unkAC &= ~8; } } -void CharModelEffectEnableSet(s16 character, s32 arg1) { +void CharModelEffectEnableSet(s16 character, s32 arg1) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; if (character >= 8) { if (arg1 == 0) { lbl_801975B0[character] |= 0x10; - } else { + } + else { lbl_801975B0[character] &= ~0x10; } return; } if (arg1 == 0) { temp_r31->unkAC |= 0x10; - } else { + } + else { temp_r31->unkAC &= ~0x10; } } -s32 CharModelEffectNpcInit(s16 arg0, s16 arg1, s16 arg2, s16 arg3) { +s32 CharModelEffectNpcInit(s16 arg0, s16 arg1, s16 arg2, s16 arg3) +{ Process *var_r24; Process *var_r27; s16 *var_r29; @@ -1823,89 +1766,47 @@ s32 CharModelEffectNpcInit(s16 arg0, s16 arg1, s16 arg2, s16 arg3) { } } -s32 CharModelEffectNpcInitSilent(s16 arg0, s16 arg1, s16 arg2) { +s32 CharModelEffectNpcInitSilent(s16 arg0, s16 arg1, s16 arg2) +{ s32 sp10; // ! - uninitialized CharModelEffectNpcInit(arg0, arg1, arg2, -1); return sp10; } -static s8 lbl_80131146[] = { - 0x07, 0x20, 0x10, 0x28, - 0x01, 0x1E, 0xE7, 0xE7, - 0x01, 0x1E, 0x01, 0x1A, - 0x01, 0x14, 0x13, 0x20, - 0x02, 0x13 -}; +static s8 lbl_80131146[] = { 0x07, 0x20, 0x10, 0x28, 0x01, 0x1E, 0xE7, 0xE7, 0x01, 0x1E, 0x01, 0x1A, 0x01, 0x14, 0x13, 0x20, 0x02, 0x13 }; static u16 lbl_80131158[] = { - 0x0051, 0x0053, - 0x0057, 0x0101, - 0x0059, 0x005B, - 0x0055, 0x0069, + 0x0051, + 0x0053, + 0x0057, + 0x0101, + 0x0059, + 0x005B, + 0x0055, + 0x0069, 0x006A, }; // Unused? -static s8 lbl_8013116A[] = { - 0x01, 0x20, 0x01, 0x15, - 0x0A, 0x1E, 0xE7, 0xE7, - 0x01, 0x1E, 0x01, 0x10, - 0x01, 0x11, 0xE7, 0xE7, - 0xE7, 0xE7 -}; +static s8 lbl_8013116A[] = { 0x01, 0x20, 0x01, 0x15, 0x0A, 0x1E, 0xE7, 0xE7, 0x01, 0x1E, 0x01, 0x10, 0x01, 0x11, 0xE7, 0xE7, 0xE7, 0xE7 }; -static u16 lbl_8013117C[] = { - 0x0052, 0x0054, - 0x0058, 0x0101, - 0x005A, 0x005C, - 0x0056, 0x0069, - 0x006A -}; +static u16 lbl_8013117C[] = { 0x0052, 0x0054, 0x0058, 0x0101, 0x005A, 0x005C, 0x0056, 0x0069, 0x006A }; -static s8 lbl_8013118E[] = { - 0x03, 0x37, 0xE7, 0xE7, - 0xE7, 0xE7, 0xE7, 0xE7, - 0xE7, 0xE7, 0x01, 0x1A, - 0xE7, 0xE7 -}; +static s8 lbl_8013118E[] = { 0x03, 0x37, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0x01, 0x1A, 0xE7, 0xE7 }; -static u16 lbl_8013119C[] = { - 0x0051, 0x0053, - 0x0057, 0x0101, - 0x0059, 0x0068, - 0x0055 -}; +static u16 lbl_8013119C[] = { 0x0051, 0x0053, 0x0057, 0x0101, 0x0059, 0x0068, 0x0055 }; -static s8 lbl_801311AA[] = { - 0x04, 0x11, 0xE7, 0xE7, - 0xE7, 0xE7, 0xE7, 0xE7, - 0xE7, 0xE7, 0x01, 0x10, - 0xE7, 0xE7 -}; +static s8 lbl_801311AA[] = { 0x04, 0x11, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0x01, 0x10, 0xE7, 0xE7 }; -static u16 lbl_801311B8[] = { - 0x0052, 0x0054, - 0x0058, 0x0101, - 0x005A, 0x0067, - 0x0056 -}; +static u16 lbl_801311B8[] = { 0x0052, 0x0054, 0x0058, 0x0101, 0x005A, 0x0067, 0x0056 }; -static s8 lbl_801311C6[] = { - 0x01, 0x17, 0xE7, 0xE7, - 0xE7, 0xE7, 0xE7, 0xE7, - 0xE7, 0xE7, 0xE7, 0xE7, - 0xE7, 0xE7 -}; +static s8 lbl_801311C6[] = { 0x01, 0x17, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7 }; -static u16 lbl_801311D4[] = { - 0x0051, 0x0053, - 0x0057, 0x0101, - 0x0059, 0x005B, - 0x0055 -}; +static u16 lbl_801311D4[] = { 0x0051, 0x0053, 0x0057, 0x0101, 0x0059, 0x005B, 0x0055 }; -static void UpdateNpcEffect(void) { +static void UpdateNpcEffect(void) +{ Vec sp2C; ModelData *temp_r30; s16 *temp_r27; @@ -2035,13 +1936,15 @@ static void UpdateNpcEffect(void) { effectStarParam.unk0C.x = 10.0 * sind(45.0f * i) * temp_r30->scale.x; effectStarParam.unk0C.y = 0.0f; effectStarParam.unk0C.z = 10.0 * cosd(45.0f * i) * temp_r30->scale.x; - CreateEffectStar(temp_r25, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 40.0f, &effectStarParam); + CreateEffectStar( + temp_r25, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 40.0f, &effectStarParam); } for (i = 0; i < 8; i++) { effectDustParam.unk0C.x = 4.0 * sind(45.0f * i + 22.5) * temp_r30->scale.x; effectDustParam.unk0C.y = 0.0f; effectDustParam.unk0C.z = 4.0 * cosd(45.0f * i + 22.5) * temp_r30->scale.x; - CreateEffectDust(temp_r25, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 20.0f, &effectDustParam); + CreateEffectDust( + temp_r25, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 20.0f, &effectDustParam); } if (temp_r28 != -1) { HuAudFXPlay(0x61); @@ -2051,13 +1954,15 @@ static void UpdateNpcEffect(void) { } } -void CharModelStepTypeSet(s16 character, s32 arg1) { +void CharModelStepTypeSet(s16 character, s32 arg1) +{ UnkCharInstanceStruct *temp_r31 = &charInstance[character]; temp_r31->unkB0 = arg1; } -static s32 PlayStepFX(s16 character, s16 arg1, u8 arg2) { +static s32 PlayStepFX(s16 character, s16 arg1, u8 arg2) +{ UnkCharInstanceStruct *temp_r31; ModelData *var_r28; @@ -2068,14 +1973,17 @@ static s32 PlayStepFX(s16 character, s16 arg1, u8 arg2) { } if (temp_r31->unkB0 == 4) { arg1 = 0x109; - } else if (temp_r31->unkB0 == 5) { + } + else if (temp_r31->unkB0 == 5) { arg1 = 0x10B; - } else { + } + else { arg1 += temp_r31->unkB0; } if (temp_r31->unkAC & 8) { return HuAudCharVoicePlayPos(character, arg1, &var_r28->pos); - } else { + } + else { return HuAudCharVoicePlay(character, arg1); } } diff --git a/src/game/minigame_seq.c b/src/game/minigame_seq.c index bc3d27ab..6d687b5c 100644 --- a/src/game/minigame_seq.c +++ b/src/game/minigame_seq.c @@ -3205,7 +3205,7 @@ static void PauseProc(void) HuWinDispOn(window[2]); HuWinMesSpeedSet(window[2], 0); HuWinAttrSet(window[2], 0x800); - HuWinMesSet(window[2], 0x3300A1); + HuWinMesSet(window[2], MAKE_MESSID(0x33, 0xA1)); } if(mgInfoTbl[mg].inst_mess[2]) { s16 insert_idx; @@ -3545,4 +3545,4 @@ void MGSeqPracticeExitCheck(omObjData *object) mgQuitExtraF = 1; omDelObjEx(HuPrcCurrentGet(), object); } -} \ No newline at end of file +} diff --git a/src/game/objsub.c b/src/game/objsub.c index 19e0b390..d982fff6 100644 --- a/src/game/objsub.c +++ b/src/game/objsub.c @@ -1,7 +1,9 @@ #include "game/objsub.h" +#include "game/data.h" #include "game/gamework_data.h" #include "game/object.h" -#include "game/data.h" +#include "game/window.h" + MgInfo mgInfoTbl[] = { { @@ -9,7 +11,7 @@ MgInfo mgInfoTbl[] = { 0, // type 3, // flag 255, // record_idx - 0x170001, // name_mess + MAKE_MESSID(0x17, 0x01), // name_mess DATADIR_M401, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 0), // inst_pic[0] 0, // inst_pic[1] @@ -17,17 +19,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 0), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210000, // inst_mess[0] - 0x210001, // inst_mess[1] + MAKE_MESSID(0x21, 0x00), // inst_mess[0] + MAKE_MESSID(0x21, 0x01), // inst_mess[1] 0, // inst_mess[2] - 0x210003, // inst_mess[3] + MAKE_MESSID(0x21, 0x03), // inst_mess[3] }, { OVL_M402, // ovl 0, // type 3, // flag 255, // record_idx - 0x170002, // name_mess + MAKE_MESSID(0x17, 0x02), // name_mess DATADIR_M402, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 1), // inst_pic[0] 0, // inst_pic[1] @@ -35,17 +37,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 1), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210004, // inst_mess[0] - 0x210005, // inst_mess[1] + MAKE_MESSID(0x21, 0x04), // inst_mess[0] + MAKE_MESSID(0x21, 0x05), // inst_mess[1] 0, // inst_mess[2] - 0x210007, // inst_mess[3] + MAKE_MESSID(0x21, 0x07), // inst_mess[3] }, { OVL_M403, // ovl 0, // type 3, // flag 255, // record_idx - 0x170003, // name_mess + MAKE_MESSID(0x17, 0x03), // name_mess DATADIR_M403, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 2), // inst_pic[0] 0, // inst_pic[1] @@ -53,17 +55,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 2), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210008, // inst_mess[0] - 0x210009, // inst_mess[1] + MAKE_MESSID(0x21, 0x08), // inst_mess[0] + MAKE_MESSID(0x21, 0x09), // inst_mess[1] 0, // inst_mess[2] - 0x21000B, // inst_mess[3] + MAKE_MESSID(0x21, 0x0B), // inst_mess[3] }, { OVL_M404, // ovl 4, // type 2, // flag 255, // record_idx - 0x170004, // name_mess + MAKE_MESSID(0x17, 0x04), // name_mess DATADIR_M404, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 3), // inst_pic[0] 0, // inst_pic[1] @@ -71,17 +73,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 3), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21000C, // inst_mess[0] - 0x21000D, // inst_mess[1] + MAKE_MESSID(0x21, 0x0C), // inst_mess[0] + MAKE_MESSID(0x21, 0x0D), // inst_mess[1] 0, // inst_mess[2] - 0x21000F, // inst_mess[3] + MAKE_MESSID(0x21, 0x0F), // inst_mess[3] }, { OVL_M405, // ovl 0, // type 2, // flag 0, // record_idx - 0x170005, // name_mess + MAKE_MESSID(0x17, 0x05), // name_mess DATADIR_M405, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 4), // inst_pic[0] 0, // inst_pic[1] @@ -89,17 +91,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 4), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210010, // inst_mess[0] - 0x210011, // inst_mess[1] + MAKE_MESSID(0x21, 0x10), // inst_mess[0] + MAKE_MESSID(0x21, 0x11), // inst_mess[1] 0, // inst_mess[2] - 0x210013, // inst_mess[3] + MAKE_MESSID(0x21, 0x13), // inst_mess[3] }, { OVL_M406, // ovl 0, // type 2, // flag 255, // record_idx - 0x170006, // name_mess + MAKE_MESSID(0x17, 0x06), // name_mess DATADIR_M406, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 5), // inst_pic[0] 0, // inst_pic[1] @@ -107,17 +109,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 5), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210014, // inst_mess[0] - 0x210015, // inst_mess[1] + MAKE_MESSID(0x21, 0x14), // inst_mess[0] + MAKE_MESSID(0x21, 0x15), // inst_mess[1] 0, // inst_mess[2] - 0x210017, // inst_mess[3] + MAKE_MESSID(0x21, 0x17), // inst_mess[3] }, { OVL_M407, // ovl 0, // type 3, // flag 1, // record_idx - 0x170007, // name_mess + MAKE_MESSID(0x17, 0x07), // name_mess DATADIR_M407, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 6), // inst_pic[0] 0, // inst_pic[1] @@ -125,17 +127,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 6), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210018, // inst_mess[0] - 0x210019, // inst_mess[1] + MAKE_MESSID(0x21, 0x18), // inst_mess[0] + MAKE_MESSID(0x21, 0x19), // inst_mess[1] 0, // inst_mess[2] - 0x21001B, // inst_mess[3] + MAKE_MESSID(0x21, 0x1B), // inst_mess[3] }, { OVL_M408, // ovl 0, // type 3, // flag 255, // record_idx - 0x170008, // name_mess + MAKE_MESSID(0x17, 0x08), // name_mess DATADIR_M408, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 7), // inst_pic[0] 0, // inst_pic[1] @@ -143,17 +145,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 7), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21001C, // inst_mess[0] - 0x21001D, // inst_mess[1] + MAKE_MESSID(0x21, 0x1C), // inst_mess[0] + MAKE_MESSID(0x21, 0x1D), // inst_mess[1] 0, // inst_mess[2] - 0x21001F, // inst_mess[3] + MAKE_MESSID(0x21, 0x1F), // inst_mess[3] }, { OVL_M409, // ovl 0, // type 3, // flag 255, // record_idx - 0x170009, // name_mess + MAKE_MESSID(0x17, 0x09), // name_mess DATADIR_M409, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 8), // inst_pic[0] 0, // inst_pic[1] @@ -161,17 +163,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 8), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210020, // inst_mess[0] - 0x210021, // inst_mess[1] + MAKE_MESSID(0x21, 0x20), // inst_mess[0] + MAKE_MESSID(0x21, 0x21), // inst_mess[1] 0, // inst_mess[2] - 0x210023, // inst_mess[3] + MAKE_MESSID(0x21, 0x23), // inst_mess[3] }, { OVL_M410, // ovl 0, // type 3, // flag 255, // record_idx - 0x17000A, // name_mess + MAKE_MESSID(0x17, 0x0A), // name_mess DATADIR_M410, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 9), // inst_pic[0] 0, // inst_pic[1] @@ -179,17 +181,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 9), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210024, // inst_mess[0] - 0x210025, // inst_mess[1] + MAKE_MESSID(0x21, 0x24), // inst_mess[0] + MAKE_MESSID(0x21, 0x25), // inst_mess[1] 0, // inst_mess[2] - 0x210027, // inst_mess[3] + MAKE_MESSID(0x21, 0x27), // inst_mess[3] }, { OVL_M411, // ovl 0, // type 3, // flag 255, // record_idx - 0x17000B, // name_mess + MAKE_MESSID(0x17, 0x0B), // name_mess DATADIR_M411, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 10), // inst_pic[0] DATA_MAKE_NUM(DATADIR_INSTPIC, 11), // inst_pic[1] @@ -197,17 +199,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 62), // mg_pic[0] DATA_MAKE_NUM(DATADIR_INSTPIC, 11), // mg_pic[1] DATA_MAKE_NUM(DATADIR_INSTPIC, 12), // mg_pic[2] - 0x210028, // inst_mess[0] - 0x210029, // inst_mess[1] + MAKE_MESSID(0x21, 0x28), // inst_mess[0] + MAKE_MESSID(0x21, 0x29), // inst_mess[1] 0, // inst_mess[2] - 0x21002B, // inst_mess[3] + MAKE_MESSID(0x21, 0x2B), // inst_mess[3] }, { OVL_M412, // ovl 0, // type 3, // flag 255, // record_idx - 0x17000C, // name_mess + MAKE_MESSID(0x17, 0x0C), // name_mess DATADIR_M412, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 13), // inst_pic[0] 0, // inst_pic[1] @@ -215,17 +217,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 13), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21002C, // inst_mess[0] - 0x21002D, // inst_mess[1] + MAKE_MESSID(0x21, 0x2C), // inst_mess[0] + MAKE_MESSID(0x21, 0x2D), // inst_mess[1] 0, // inst_mess[2] - 0x21002F, // inst_mess[3] + MAKE_MESSID(0x21, 0x2F), // inst_mess[3] }, { OVL_M413, // ovl 0, // type 2, // flag 255, // record_idx - 0x17000D, // name_mess + MAKE_MESSID(0x17, 0x0D), // name_mess DATADIR_M413, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 14), // inst_pic[0] 0, // inst_pic[1] @@ -233,17 +235,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 63), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210030, // inst_mess[0] - 0x210031, // inst_mess[1] + MAKE_MESSID(0x21, 0x30), // inst_mess[0] + MAKE_MESSID(0x21, 0x31), // inst_mess[1] 0, // inst_mess[2] - 0x210033, // inst_mess[3] + MAKE_MESSID(0x21, 0x33), // inst_mess[3] }, { OVL_M414, // ovl 0, // type 3, // flag 255, // record_idx - 0x17000E, // name_mess + MAKE_MESSID(0x17, 0x0E), // name_mess DATADIR_M414, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 15), // inst_pic[0] 0, // inst_pic[1] @@ -251,17 +253,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 15), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210034, // inst_mess[0] - 0x210035, // inst_mess[1] + MAKE_MESSID(0x21, 0x34), // inst_mess[0] + MAKE_MESSID(0x21, 0x35), // inst_mess[1] 0, // inst_mess[2] - 0x210037, // inst_mess[3] + MAKE_MESSID(0x21, 0x37), // inst_mess[3] }, { OVL_M415, // ovl 0, // type 3, // flag 255, // record_idx - 0x17000F, // name_mess + MAKE_MESSID(0x17, 0x0F), // name_mess DATADIR_M415, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 16), // inst_pic[0] 0, // inst_pic[1] @@ -269,17 +271,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 16), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210038, // inst_mess[0] - 0x210039, // inst_mess[1] + MAKE_MESSID(0x21, 0x38), // inst_mess[0] + MAKE_MESSID(0x21, 0x39), // inst_mess[1] 0, // inst_mess[2] - 0x21003B, // inst_mess[3] + MAKE_MESSID(0x21, 0x3B), // inst_mess[3] }, { OVL_M416, // ovl 1, // type 1, // flag 255, // record_idx - 0x170010, // name_mess + MAKE_MESSID(0x17, 0x10), // name_mess DATADIR_M416, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 17), // inst_pic[0] 0, // inst_pic[1] @@ -287,17 +289,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 17), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21003C, // inst_mess[0] - 0x21003D, // inst_mess[1] - 0x21003E, // inst_mess[2] - 0x21003F, // inst_mess[3] + MAKE_MESSID(0x21, 0x3C), // inst_mess[0] + MAKE_MESSID(0x21, 0x3D), // inst_mess[1] + MAKE_MESSID(0x21, 0x3E), // inst_mess[2] + MAKE_MESSID(0x21, 0x3F), // inst_mess[3] }, { OVL_M417, // ovl 1, // type 1, // flag 255, // record_idx - 0x170011, // name_mess + MAKE_MESSID(0x17, 0x11), // name_mess DATADIR_M417, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 18), // inst_pic[0] 0, // inst_pic[1] @@ -305,17 +307,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 18), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210040, // inst_mess[0] - 0x210041, // inst_mess[1] - 0x210042, // inst_mess[2] - 0x210043, // inst_mess[3] + MAKE_MESSID(0x21, 0x40), // inst_mess[0] + MAKE_MESSID(0x21, 0x41), // inst_mess[1] + MAKE_MESSID(0x21, 0x42), // inst_mess[2] + MAKE_MESSID(0x21, 0x43), // inst_mess[3] }, { OVL_M418, // ovl 1, // type 1, // flag 255, // record_idx - 0x170012, // name_mess + MAKE_MESSID(0x17, 0x12), // name_mess DATADIR_M418, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 19), // inst_pic[0] 0, // inst_pic[1] @@ -323,17 +325,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 19), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210044, // inst_mess[0] - 0x210045, // inst_mess[1] - 0x210046, // inst_mess[2] - 0x210047, // inst_mess[3] + MAKE_MESSID(0x21, 0x44), // inst_mess[0] + MAKE_MESSID(0x21, 0x45), // inst_mess[1] + MAKE_MESSID(0x21, 0x46), // inst_mess[2] + MAKE_MESSID(0x21, 0x47), // inst_mess[3] }, { OVL_M419, // ovl 1, // type 1, // flag 255, // record_idx - 0x170013, // name_mess + MAKE_MESSID(0x17, 0x13), // name_mess DATADIR_M419, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 20), // inst_pic[0] 0, // inst_pic[1] @@ -341,17 +343,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 20), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210048, // inst_mess[0] - 0x210049, // inst_mess[1] - 0x21004A, // inst_mess[2] - 0x21004B, // inst_mess[3] + MAKE_MESSID(0x21, 0x48), // inst_mess[0] + MAKE_MESSID(0x21, 0x49), // inst_mess[1] + MAKE_MESSID(0x21, 0x4A), // inst_mess[2] + MAKE_MESSID(0x21, 0x4B), // inst_mess[3] }, { OVL_M420, // ovl 1, // type 0, // flag 255, // record_idx - 0x170014, // name_mess + MAKE_MESSID(0x17, 0x14), // name_mess DATADIR_M420, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 21), // inst_pic[0] 0, // inst_pic[1] @@ -359,17 +361,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 21), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21004C, // inst_mess[0] - 0x21004D, // inst_mess[1] - 0x21004E, // inst_mess[2] - 0x21004F, // inst_mess[3] + MAKE_MESSID(0x21, 0x4C), // inst_mess[0] + MAKE_MESSID(0x21, 0x4D), // inst_mess[1] + MAKE_MESSID(0x21, 0x4E), // inst_mess[2] + MAKE_MESSID(0x21, 0x4F), // inst_mess[3] }, { OVL_M421, // ovl 1, // type 1, // flag 255, // record_idx - 0x170015, // name_mess + MAKE_MESSID(0x17, 0x15), // name_mess DATADIR_M421, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 22), // inst_pic[0] 0, // inst_pic[1] @@ -377,17 +379,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 22), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210050, // inst_mess[0] - 0x210051, // inst_mess[1] - 0x210052, // inst_mess[2] - 0x210053, // inst_mess[3] + MAKE_MESSID(0x21, 0x50), // inst_mess[0] + MAKE_MESSID(0x21, 0x51), // inst_mess[1] + MAKE_MESSID(0x21, 0x52), // inst_mess[2] + MAKE_MESSID(0x21, 0x53), // inst_mess[3] }, { OVL_M422, // ovl 1, // type 1, // flag 255, // record_idx - 0x170016, // name_mess + MAKE_MESSID(0x17, 0x16), // name_mess DATADIR_M422, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 23), // inst_pic[0] 0, // inst_pic[1] @@ -395,17 +397,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 23), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210054, // inst_mess[0] - 0x210055, // inst_mess[1] - 0x210056, // inst_mess[2] - 0x210057, // inst_mess[3] + MAKE_MESSID(0x21, 0x54), // inst_mess[0] + MAKE_MESSID(0x21, 0x55), // inst_mess[1] + MAKE_MESSID(0x21, 0x56), // inst_mess[2] + MAKE_MESSID(0x21, 0x57), // inst_mess[3] }, { OVL_M423, // ovl 1, // type 0, // flag 255, // record_idx - 0x170017, // name_mess + MAKE_MESSID(0x17, 0x17), // name_mess DATADIR_M423, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 24), // inst_pic[0] 0, // inst_pic[1] @@ -413,17 +415,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 24), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210058, // inst_mess[0] - 0x210059, // inst_mess[1] - 0x21005A, // inst_mess[2] - 0x21005B, // inst_mess[3] + MAKE_MESSID(0x21, 0x58), // inst_mess[0] + MAKE_MESSID(0x21, 0x59), // inst_mess[1] + MAKE_MESSID(0x21, 0x5A), // inst_mess[2] + MAKE_MESSID(0x21, 0x5B), // inst_mess[3] }, { OVL_M424, // ovl 1, // type 0, // flag 255, // record_idx - 0x170018, // name_mess + MAKE_MESSID(0x17, 0x18), // name_mess DATADIR_M424, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 25), // inst_pic[0] 0, // inst_pic[1] @@ -431,17 +433,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 25), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21005C, // inst_mess[0] - 0x21005D, // inst_mess[1] - 0x21005E, // inst_mess[2] - 0x21005F, // inst_mess[3] + MAKE_MESSID(0x21, 0x5C), // inst_mess[0] + MAKE_MESSID(0x21, 0x5D), // inst_mess[1] + MAKE_MESSID(0x21, 0x5E), // inst_mess[2] + MAKE_MESSID(0x21, 0x5F), // inst_mess[3] }, { OVL_M425, // ovl 2, // type 3, // flag 255, // record_idx - 0x170019, // name_mess + MAKE_MESSID(0x17, 0x19), // name_mess DATADIR_M425, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 26), // inst_pic[0] 0, // inst_pic[1] @@ -449,17 +451,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 26), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210060, // inst_mess[0] - 0x210061, // inst_mess[1] + MAKE_MESSID(0x21, 0x60), // inst_mess[0] + MAKE_MESSID(0x21, 0x61), // inst_mess[1] 0, // inst_mess[2] - 0x210063, // inst_mess[3] + MAKE_MESSID(0x21, 0x63), // inst_mess[3] }, { OVL_M426, // ovl 2, // type 3, // flag 255, // record_idx - 0x17001A, // name_mess + MAKE_MESSID(0x17, 0x1A), // name_mess DATADIR_M426, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 27), // inst_pic[0] 0, // inst_pic[1] @@ -467,17 +469,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 27), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210064, // inst_mess[0] - 0x210065, // inst_mess[1] + MAKE_MESSID(0x21, 0x64), // inst_mess[0] + MAKE_MESSID(0x21, 0x65), // inst_mess[1] 0, // inst_mess[2] - 0x210067, // inst_mess[3] + MAKE_MESSID(0x21, 0x67), // inst_mess[3] }, { OVL_M427, // ovl 2, // type 2, // flag 2, // record_idx - 0x17001B, // name_mess + MAKE_MESSID(0x17, 0x1B), // name_mess DATADIR_M427, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 28), // inst_pic[0] 0, // inst_pic[1] @@ -485,17 +487,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 28), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210068, // inst_mess[0] - 0x210069, // inst_mess[1] + MAKE_MESSID(0x21, 0x68), // inst_mess[0] + MAKE_MESSID(0x21, 0x69), // inst_mess[1] 0, // inst_mess[2] - 0x21006B, // inst_mess[3] + MAKE_MESSID(0x21, 0x6B), // inst_mess[3] }, { OVL_M428, // ovl 2, // type 3, // flag 255, // record_idx - 0x17001C, // name_mess + MAKE_MESSID(0x17, 0x1C), // name_mess DATADIR_M428, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 29), // inst_pic[0] 0, // inst_pic[1] @@ -503,17 +505,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 29), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21006C, // inst_mess[0] - 0x21006D, // inst_mess[1] + MAKE_MESSID(0x21, 0x6C), // inst_mess[0] + MAKE_MESSID(0x21, 0x6D), // inst_mess[1] 0, // inst_mess[2] - 0x21006F, // inst_mess[3] + MAKE_MESSID(0x21, 0x6F), // inst_mess[3] }, { OVL_M429, // ovl 2, // type 2, // flag 255, // record_idx - 0x17001D, // name_mess + MAKE_MESSID(0x17, 0x1D), // name_mess DATADIR_M429, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 30), // inst_pic[0] 0, // inst_pic[1] @@ -521,17 +523,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 64), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210070, // inst_mess[0] - 0x210071, // inst_mess[1] + MAKE_MESSID(0x21, 0x70), // inst_mess[0] + MAKE_MESSID(0x21, 0x71), // inst_mess[1] 0, // inst_mess[2] - 0x210073, // inst_mess[3] + MAKE_MESSID(0x21, 0x73), // inst_mess[3] }, { OVL_M430, // ovl 2, // type 3, // flag 255, // record_idx - 0x17001E, // name_mess + MAKE_MESSID(0x17, 0x1E), // name_mess DATADIR_M430, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 31), // inst_pic[0] 0, // inst_pic[1] @@ -539,17 +541,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 31), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210074, // inst_mess[0] - 0x210075, // inst_mess[1] - 0x210076, // inst_mess[2] - 0x210077, // inst_mess[3] + MAKE_MESSID(0x21, 0x74), // inst_mess[0] + MAKE_MESSID(0x21, 0x75), // inst_mess[1] + MAKE_MESSID(0x21, 0x76), // inst_mess[2] + MAKE_MESSID(0x21, 0x77), // inst_mess[3] }, { OVL_M431, // ovl 2, // type 3, // flag 255, // record_idx - 0x17001F, // name_mess + MAKE_MESSID(0x17, 0x1F), // name_mess DATADIR_M431, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 32), // inst_pic[0] 0, // inst_pic[1] @@ -557,17 +559,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 32), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210078, // inst_mess[0] - 0x210079, // inst_mess[1] + MAKE_MESSID(0x21, 0x78), // inst_mess[0] + MAKE_MESSID(0x21, 0x79), // inst_mess[1] 0, // inst_mess[2] - 0x21007B, // inst_mess[3] + MAKE_MESSID(0x21, 0x7B), // inst_mess[3] }, { OVL_M432, // ovl 2, // type 3, // flag 3, // record_idx - 0x170020, // name_mess + MAKE_MESSID(0x17, 0x20), // name_mess DATADIR_M432, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 33), // inst_pic[0] 0, // inst_pic[1] @@ -575,17 +577,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 33), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21007C, // inst_mess[0] - 0x21007D, // inst_mess[1] - 0x21007E, // inst_mess[2] - 0x21007F, // inst_mess[3] + MAKE_MESSID(0x21, 0x7C), // inst_mess[0] + MAKE_MESSID(0x21, 0x7D), // inst_mess[1] + MAKE_MESSID(0x21, 0x7E), // inst_mess[2] + MAKE_MESSID(0x21, 0x7F), // inst_mess[3] }, { OVL_M433, // ovl 7, // type 3, // flag 255, // record_idx - 0x170021, // name_mess + MAKE_MESSID(0x17, 0x21), // name_mess DATADIR_M433, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 34), // inst_pic[0] 0, // inst_pic[1] @@ -593,17 +595,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 34), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210080, // inst_mess[0] - 0x37001F, // inst_mess[1] + MAKE_MESSID(0x21, 0x80), // inst_mess[0] + MAKE_MESSID(0x37, 0x1F), // inst_mess[1] 0, // inst_mess[2] - 0x210083, // inst_mess[3] + MAKE_MESSID(0x21, 0x83), // inst_mess[3] }, { OVL_M434, // ovl 2, // type 2, // flag 255, // record_idx - 0x170022, // name_mess + MAKE_MESSID(0x17, 0x22), // name_mess DATADIR_M434, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 35), // inst_pic[0] 0, // inst_pic[1] @@ -611,17 +613,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 35), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210084, // inst_mess[0] - 0x210085, // inst_mess[1] + MAKE_MESSID(0x21, 0x84), // inst_mess[0] + MAKE_MESSID(0x21, 0x85), // inst_mess[1] 0, // inst_mess[2] - 0x210087, // inst_mess[3] + MAKE_MESSID(0x21, 0x87), // inst_mess[3] }, { OVL_M435, // ovl 3, // type 3, // flag 255, // record_idx - 0x170023, // name_mess + MAKE_MESSID(0x17, 0x23), // name_mess DATADIR_M435, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 36), // inst_pic[0] 0, // inst_pic[1] @@ -630,7 +632,7 @@ MgInfo mgInfoTbl[] = { 0, // mg_pic[1] 0, // mg_pic[2] 0, // inst_mess[0] - 0x210089, // inst_mess[1] + MAKE_MESSID(0x21, 0x89), // inst_mess[1] 0, // inst_mess[2] 0, // inst_mess[3] }, @@ -639,7 +641,7 @@ MgInfo mgInfoTbl[] = { 3, // type 3, // flag 255, // record_idx - 0x170024, // name_mess + MAKE_MESSID(0x17, 0x24), // name_mess DATADIR_M436, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 37), // inst_pic[0] 0, // inst_pic[1] @@ -648,7 +650,7 @@ MgInfo mgInfoTbl[] = { 0, // mg_pic[1] 0, // mg_pic[2] 0, // inst_mess[0] - 0x21008D, // inst_mess[1] + MAKE_MESSID(0x21, 0x8D), // inst_mess[1] 0, // inst_mess[2] 0, // inst_mess[3] }, @@ -657,7 +659,7 @@ MgInfo mgInfoTbl[] = { 3, // type 3, // flag 255, // record_idx - 0x170025, // name_mess + MAKE_MESSID(0x17, 0x25), // name_mess DATADIR_M437, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 38), // inst_pic[0] 0, // inst_pic[1] @@ -666,7 +668,7 @@ MgInfo mgInfoTbl[] = { 0, // mg_pic[1] 0, // mg_pic[2] 0, // inst_mess[0] - 0x210091, // inst_mess[1] + MAKE_MESSID(0x21, 0x91), // inst_mess[1] 0, // inst_mess[2] 0, // inst_mess[3] }, @@ -675,7 +677,7 @@ MgInfo mgInfoTbl[] = { 4, // type 3, // flag 255, // record_idx - 0x170026, // name_mess + MAKE_MESSID(0x17, 0x26), // name_mess DATADIR_M438, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 39), // inst_pic[0] 0, // inst_pic[1] @@ -683,17 +685,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 39), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210094, // inst_mess[0] - 0x210095, // inst_mess[1] + MAKE_MESSID(0x21, 0x94), // inst_mess[0] + MAKE_MESSID(0x21, 0x95), // inst_mess[1] 0, // inst_mess[2] - 0x210097, // inst_mess[3] + MAKE_MESSID(0x21, 0x97), // inst_mess[3] }, { OVL_M439, // ovl 4, // type 2, // flag 255, // record_idx - 0x170027, // name_mess + MAKE_MESSID(0x17, 0x27), // name_mess DATADIR_M439, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 40), // inst_pic[0] 0, // inst_pic[1] @@ -701,17 +703,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 40), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x210098, // inst_mess[0] - 0x210099, // inst_mess[1] + MAKE_MESSID(0x21, 0x98), // inst_mess[0] + MAKE_MESSID(0x21, 0x99), // inst_mess[1] 0, // inst_mess[2] - 0x21009B, // inst_mess[3] + MAKE_MESSID(0x21, 0x9B), // inst_mess[3] }, { OVL_M440, // ovl 4, // type 3, // flag 255, // record_idx - 0x170028, // name_mess + MAKE_MESSID(0x17, 0x28), // name_mess DATADIR_M440, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 41), // inst_pic[0] 0, // inst_pic[1] @@ -719,17 +721,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 41), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x21009C, // inst_mess[0] - 0x21009D, // inst_mess[1] + MAKE_MESSID(0x21, 0x9C), // inst_mess[0] + MAKE_MESSID(0x21, 0x9D), // inst_mess[1] 0, // inst_mess[2] - 0x21009F, // inst_mess[3] + MAKE_MESSID(0x21, 0x9F), // inst_mess[3] }, { OVL_M441, // ovl 4, // type 3, // flag 255, // record_idx - 0x170029, // name_mess + MAKE_MESSID(0x17, 0x29), // name_mess DATADIR_M441, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 42), // inst_pic[0] 0, // inst_pic[1] @@ -737,17 +739,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 42), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100A0, // inst_mess[0] - 0x2100A1, // inst_mess[1] + MAKE_MESSID(0x21, 0xA0), // inst_mess[0] + MAKE_MESSID(0x21, 0xA1), // inst_mess[1] 0, // inst_mess[2] - 0x2100A3, // inst_mess[3] + MAKE_MESSID(0x21, 0xA3), // inst_mess[3] }, { OVL_M442, // ovl 7, // type 3, // flag 255, // record_idx - 0x17002A, // name_mess + MAKE_MESSID(0x17, 0x2A), // name_mess DATADIR_M442, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 43), // inst_pic[0] 0, // inst_pic[1] @@ -755,17 +757,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 65), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100A4, // inst_mess[0] - 0x370010, // inst_mess[1] + MAKE_MESSID(0x21, 0xA4), // inst_mess[0] + MAKE_MESSID(0x37, 0x10), // inst_mess[1] 0, // inst_mess[2] - 0x2100A7, // inst_mess[3] + MAKE_MESSID(0x21, 0xA7), // inst_mess[3] }, { OVL_M443, // ovl 0, // type 2, // flag 5, // record_idx - 0x17002B, // name_mess + MAKE_MESSID(0x17, 0x2B), // name_mess DATADIR_M443, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 44), // inst_pic[0] 0, // inst_pic[1] @@ -773,17 +775,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 44), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100A8, // inst_mess[0] - 0x2100A9, // inst_mess[1] + MAKE_MESSID(0x21, 0xA8), // inst_mess[0] + MAKE_MESSID(0x21, 0xA9), // inst_mess[1] 0, // inst_mess[2] - 0x2100AB, // inst_mess[3] + MAKE_MESSID(0x21, 0xAB), // inst_mess[3] }, { OVL_M444, // ovl 5, // type 3, // flag 255, // record_idx - 0x17002C, // name_mess + MAKE_MESSID(0x17, 0x2C), // name_mess DATADIR_M444, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 45), // inst_pic[0] 0, // inst_pic[1] @@ -801,7 +803,7 @@ MgInfo mgInfoTbl[] = { 6, // type 0, // flag 255, // record_idx - 0x17002D, // name_mess + MAKE_MESSID(0x17, 0x2D), // name_mess DATADIR_M445, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 46), // inst_pic[0] 0, // inst_pic[1] @@ -809,17 +811,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 46), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100AC, // inst_mess[0] - 0x2100AD, // inst_mess[1] + MAKE_MESSID(0x21, 0xAC), // inst_mess[0] + MAKE_MESSID(0x21, 0xAD), // inst_mess[1] 0, // inst_mess[2] - 0x2100AF, // inst_mess[3] + MAKE_MESSID(0x21, 0xAF), // inst_mess[3] }, { OVL_M446, // ovl 6, // type 0, // flag 255, // record_idx - 0x17002E, // name_mess + MAKE_MESSID(0x17, 0x2E), // name_mess DATADIR_M446, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 47), // inst_pic[0] 0, // inst_pic[1] @@ -827,17 +829,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 47), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100B0, // inst_mess[0] - 0x2100B1, // inst_mess[1] + MAKE_MESSID(0x21, 0xB0), // inst_mess[0] + MAKE_MESSID(0x21, 0xB1), // inst_mess[1] 0, // inst_mess[2] - 0x2100B3, // inst_mess[3] + MAKE_MESSID(0x21, 0xB3), // inst_mess[3] }, { OVL_M447, // ovl 6, // type 0, // flag 255, // record_idx - 0x17002F, // name_mess + MAKE_MESSID(0x17, 0x2F), // name_mess DATADIR_M447, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 48), // inst_pic[0] 0, // inst_pic[1] @@ -845,17 +847,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 48), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100B4, // inst_mess[0] - 0x2100B5, // inst_mess[1] + MAKE_MESSID(0x21, 0xB4), // inst_mess[0] + MAKE_MESSID(0x21, 0xB5), // inst_mess[1] 0, // inst_mess[2] - 0x2100B7, // inst_mess[3] + MAKE_MESSID(0x21, 0xB7), // inst_mess[3] }, { OVL_M448, // ovl 6, // type 0, // flag 255, // record_idx - 0x170030, // name_mess + MAKE_MESSID(0x17, 0x30), // name_mess DATADIR_M448, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 49), // inst_pic[0] 0, // inst_pic[1] @@ -863,17 +865,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 49), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100B8, // inst_mess[0] - 0x2100B9, // inst_mess[1] + MAKE_MESSID(0x21, 0xB8), // inst_mess[0] + MAKE_MESSID(0x21, 0xB9), // inst_mess[1] 0, // inst_mess[2] - 0x2100BB, // inst_mess[3] + MAKE_MESSID(0x21, 0xBB), // inst_mess[3] }, { OVL_M449, // ovl 6, // type 0, // flag 255, // record_idx - 0x170031, // name_mess + MAKE_MESSID(0x17, 0x31), // name_mess DATADIR_M449, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // inst_pic[0] 0, // inst_pic[1] @@ -881,17 +883,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100BC, // inst_mess[0] - 0x2100BD, // inst_mess[1] + MAKE_MESSID(0x21, 0xBC), // inst_mess[0] + MAKE_MESSID(0x21, 0xBD), // inst_mess[1] 0, // inst_mess[2] - 0x2100BF, // inst_mess[3] + MAKE_MESSID(0x21, 0xBF), // inst_mess[3] }, { OVL_M450, // ovl 8, // type 0, // flag 255, // record_idx - 0x170032, // name_mess + MAKE_MESSID(0x17, 0x32), // name_mess DATADIR_M450, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 51), // inst_pic[0] 0, // inst_pic[1] @@ -899,17 +901,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 51), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100C0, // inst_mess[0] - 0x2100C1, // inst_mess[1] + MAKE_MESSID(0x21, 0xC0), // inst_mess[0] + MAKE_MESSID(0x21, 0xC1), // inst_mess[1] 0, // inst_mess[2] - 0x2100C3, // inst_mess[3] + MAKE_MESSID(0x21, 0xC3), // inst_mess[3] }, { OVL_M451, // ovl 7, // type 0, // flag 255, // record_idx - 0x170033, // name_mess + MAKE_MESSID(0x17, 0x33), // name_mess DATADIR_M451, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 52), // inst_pic[0] DATA_MAKE_NUM(DATADIR_INSTPIC, 53), // inst_pic[1] @@ -917,17 +919,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 52), // mg_pic[0] DATA_MAKE_NUM(DATADIR_INSTPIC, 53), // mg_pic[1] DATA_MAKE_NUM(DATADIR_INSTPIC, 54), // mg_pic[2] - 0x2100C4, // inst_mess[0] - 0x37000D, // inst_mess[1] + MAKE_MESSID(0x21, 0xC4), // inst_mess[0] + MAKE_MESSID(0x37, 0x0D), // inst_mess[1] 0, // inst_mess[2] - 0x2100C7, // inst_mess[3] + MAKE_MESSID(0x21, 0xC7), // inst_mess[3] }, { OVL_M450, // ovl 7, // type 0, // flag 255, // record_idx - 0x170033, // name_mess + MAKE_MESSID(0x17, 0x33), // name_mess DATADIR_M450, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 55), // inst_pic[0] 0, // inst_pic[1] @@ -945,7 +947,7 @@ MgInfo mgInfoTbl[] = { 7, // type 0, // flag 255, // record_idx - 0x170034, // name_mess + MAKE_MESSID(0x17, 0x34), // name_mess DATADIR_M450, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // inst_pic[0] 0, // inst_pic[1] @@ -953,17 +955,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100C8, // inst_mess[0] - 0x37000A, // inst_mess[1] + MAKE_MESSID(0x21, 0xC8), // inst_mess[0] + MAKE_MESSID(0x37, 0x0A), // inst_mess[1] 0, // inst_mess[2] - 0x2100CB, // inst_mess[3] + MAKE_MESSID(0x21, 0xCB), // inst_mess[3] }, { OVL_M450, // ovl 7, // type 0, // flag 255, // record_idx - 0x170033, // name_mess + MAKE_MESSID(0x17, 0x33), // name_mess DATADIR_M450, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 55), // inst_pic[0] 0, // inst_pic[1] @@ -981,7 +983,7 @@ MgInfo mgInfoTbl[] = { 4, // type 3, // flag 255, // record_idx - 0x170035, // name_mess + MAKE_MESSID(0x17, 0x35), // name_mess DATADIR_M455, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 56), // inst_pic[0] 0, // inst_pic[1] @@ -989,17 +991,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 56), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100CC, // inst_mess[0] - 0x2100CD, // inst_mess[1] + MAKE_MESSID(0x21, 0xCC), // inst_mess[0] + MAKE_MESSID(0x21, 0xCD), // inst_mess[1] 0, // inst_mess[2] - 0x2100CF, // inst_mess[3] + MAKE_MESSID(0x21, 0xCF), // inst_mess[3] }, { OVL_M456, // ovl 0, // type 3, // flag 255, // record_idx - 0x170036, // name_mess + MAKE_MESSID(0x17, 0x36), // name_mess DATADIR_M456, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 57), // inst_pic[0] 0, // inst_pic[1] @@ -1007,17 +1009,17 @@ MgInfo mgInfoTbl[] = { DATA_MAKE_NUM(DATADIR_INSTPIC, 57), // mg_pic[0] 0, // mg_pic[1] 0, // mg_pic[2] - 0x2100D0, // inst_mess[0] - 0x2100D1, // inst_mess[1] + MAKE_MESSID(0x21, 0xD0), // inst_mess[0] + MAKE_MESSID(0x21, 0xD1), // inst_mess[1] 0, // inst_mess[2] - 0x2100D3, // inst_mess[3] + MAKE_MESSID(0x21, 0xD3), // inst_mess[3] }, { OVL_M457, // ovl 8, // type 0, // flag 255, // record_idx - 0x170037, // name_mess + MAKE_MESSID(0x17, 0x37), // name_mess DATADIR_M457, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 58), // inst_pic[0] 0, // inst_pic[1] @@ -1035,7 +1037,7 @@ MgInfo mgInfoTbl[] = { 8, // type 0, // flag 255, // record_idx - 0x170038, // name_mess + MAKE_MESSID(0x17, 0x38), // name_mess DATADIR_M458, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 59), // inst_pic[0] 0, // inst_pic[1] @@ -1053,7 +1055,7 @@ MgInfo mgInfoTbl[] = { 7, // type 0, // flag 255, // record_idx - 0x170038, // name_mess + MAKE_MESSID(0x17, 0x38), // name_mess DATADIR_M458, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // inst_pic[0] 0, // inst_pic[1] @@ -1062,7 +1064,7 @@ MgInfo mgInfoTbl[] = { 0, // mg_pic[1] 0, // mg_pic[2] 0, // inst_mess[0] - 0x370013, // inst_mess[1] + MAKE_MESSID(0x37, 0x13), // inst_mess[1] 0, // inst_mess[2] 0, // inst_mess[3] }, @@ -1071,7 +1073,7 @@ MgInfo mgInfoTbl[] = { 7, // type 0, // flag 255, // record_idx - 0x170038, // name_mess + MAKE_MESSID(0x17, 0x38), // name_mess DATADIR_M458, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // inst_pic[0] 0, // inst_pic[1] @@ -1080,7 +1082,7 @@ MgInfo mgInfoTbl[] = { 0, // mg_pic[1] 0, // mg_pic[2] 0, // inst_mess[0] - 0x370016, // inst_mess[1] + MAKE_MESSID(0x37, 0x16), // inst_mess[1] 0, // inst_mess[2] 0, // inst_mess[3] }, @@ -1089,7 +1091,7 @@ MgInfo mgInfoTbl[] = { 7, // type 0, // flag 255, // record_idx - 0x170038, // name_mess + MAKE_MESSID(0x17, 0x38), // name_mess DATADIR_M458, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // inst_pic[0] 0, // inst_pic[1] @@ -1098,7 +1100,7 @@ MgInfo mgInfoTbl[] = { 0, // mg_pic[1] 0, // mg_pic[2] 0, // inst_mess[0] - 0x370019, // inst_mess[1] + MAKE_MESSID(0x37, 0x19), // inst_mess[1] 0, // inst_mess[2] 0, // inst_mess[3] }, @@ -1107,7 +1109,7 @@ MgInfo mgInfoTbl[] = { 7, // type 0, // flag 255, // record_idx - 0x170038, // name_mess + MAKE_MESSID(0x17, 0x38), // name_mess DATADIR_M458, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // inst_pic[0] 0, // inst_pic[1] @@ -1116,7 +1118,7 @@ MgInfo mgInfoTbl[] = { 0, // mg_pic[1] 0, // mg_pic[2] 0, // inst_mess[0] - 0x37001C, // inst_mess[1] + MAKE_MESSID(0x37, 0x1C), // inst_mess[1] 0, // inst_mess[2] 0, // inst_mess[3] }, @@ -1125,7 +1127,7 @@ MgInfo mgInfoTbl[] = { 7, // type 0, // flag 255, // record_idx - 0x170038, // name_mess + MAKE_MESSID(0x17, 0x38), // name_mess DATADIR_M458, // data_dir DATA_MAKE_NUM(DATADIR_INSTPIC, 50), // inst_pic[0] 0, // inst_pic[1] @@ -1134,7 +1136,7 @@ MgInfo mgInfoTbl[] = { 0, // mg_pic[1] 0, // mg_pic[2] 0, // inst_mess[0] - 0x370007, // inst_mess[1] + MAKE_MESSID(0x37, 0x07), // inst_mess[1] 0, // inst_mess[2] 0, // inst_mess[3] }, @@ -1158,7 +1160,7 @@ MgInfo mgInfoTbl[] = { }, }; -void MGSeqPracticeExitCheck(omObjData*); +void MGSeqPracticeExitCheck(omObjData *); s16 mgTypeCurr; s16 mgBattleStar[4]; @@ -1174,12 +1176,13 @@ s16 mgTicTacToeGrid[3][3]; u8 mgIndexList[256]; GameStat mgGameStatBackup; -s32 omMgIndexGet(s16 overlay) { +s32 omMgIndexGet(s16 overlay) +{ s32 i; MgInfo *info; info = mgInfoTbl; - + for (i = 0; info->ovl != ((u16)OVL_INVALID); i++) { if (info->ovl == overlay) { return (s16)i; @@ -1190,27 +1193,29 @@ s32 omMgIndexGet(s16 overlay) { return -1; } -void omGameSysInit(Process *objman) { +void omGameSysInit(Process *objman) +{ s32 i; - omObjData* obj; + omObjData *obj; omSystemKeyCheckSetup(objman); Hu3DCameraScissorSet(1, 0, 0, 0x280, 0x1E0); omSysPauseEnable(0); - + for (i = 0; i < 4; i++) { GWPlayerCoinWinSet(i, 0); GWPlayerCoinCollectSet(i, 0); } - + if (mgPracticeEnableF != 0) { obj = omAddObjEx(objman, 0x7FDC, 0, 0, -1, MGSeqPracticeExitCheck); omSetStatBit(obj, 0xA0U); } } -void omVibrate(s16 player, s16 duration, s16 off, s16 on) { - +void omVibrate(s16 player, s16 duration, s16 off, s16 on) +{ + if (GWRumbleGet() != 0 && GWPlayerCfg[player].iscom == 0) { HuPadRumbleSet(GWPlayerCfg[player].pad_idx, duration, off, on); } diff --git a/src/game/wipe.c b/src/game/wipe.c index f2429aa3..f3902d7e 100644 --- a/src/game/wipe.c +++ b/src/game/wipe.c @@ -324,4 +324,4 @@ static void WipeFrameStill(GXColor color) GXTexCoord2f32(0, 1); GXEnd(); GXSetChanMatColor(GX_COLOR0A0, colorN); -} \ No newline at end of file +} From a05b5db43e2741d032a8853b56422ed96729ef4b Mon Sep 17 00:00:00 2001 From: kabiskac Date: Fri, 9 Aug 2024 03:44:03 +0200 Subject: [PATCH 023/311] Matched m444dll/shadow.c --- config/GMPE01_00/rels/m444dll/symbols.txt | 224 +++++++++++----------- src/REL/m444dll/main.c | 29 ++- src/REL/m444dll/shadow.c | 59 ++++++ src/REL/ztardll/main.c | 14 +- src/game/code_8003FF68.c | 4 +- 5 files changed, 199 insertions(+), 131 deletions(-) create mode 100644 src/REL/m444dll/shadow.c diff --git a/config/GMPE01_00/rels/m444dll/symbols.txt b/config/GMPE01_00/rels/m444dll/symbols.txt index ca550b02..574073a6 100644 --- a/config/GMPE01_00/rels/m444dll/symbols.txt +++ b/config/GMPE01_00/rels/m444dll/symbols.txt @@ -38,108 +38,108 @@ fn_1_D9C8 = .text:0x0000D9C8; // type:function size:0x2C fn_1_D9F4 = .text:0x0000D9F4; // type:function size:0x42C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float @@ -219,16 +219,16 @@ lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data: lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 scope:local data:double -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 scope:local data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 scope:local data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x118 data:float lbl_1_data_118 = .data:0x00000118; // type:object size:0x28 lbl_1_data_140 = .data:0x00000140; // type:object size:0xC data:float diff --git a/src/REL/m444dll/main.c b/src/REL/m444dll/main.c index 653a5cc1..126a778e 100644 --- a/src/REL/m444dll/main.c +++ b/src/REL/m444dll/main.c @@ -40,8 +40,10 @@ CameraViewParams lbl_1_data_0[] = { { { -23, 0, 0 }, { 0, 65, -97 }, 1318 }, }; -DataListSprite lbl_1_data_118[] - = { { DATA_MAKE_NUM(DATADIR_M443, 0x22), 0, 10, 288, -200, { 255, 255, 255, 255 } }, { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } } }; +DataListSprite lbl_1_data_118[] = { + { DATA_MAKE_NUM(DATADIR_M444, 0x22), 0, 10, 288, -200, { 255, 255, 255, 255 } }, + { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, +}; float lbl_1_data_140[] = { 90, 250, 420 }; @@ -55,9 +57,16 @@ Vec lbl_1_data_14C[] = { s16 lbl_1_data_188[] = { 1, 1, 2, 2, 2 }; -s32 lbl_1_data_194[] = { DATA_MAKE_NUM(DATADIR_M443, 0x24), DATA_MAKE_NUM(DATADIR_M443, 0x25), DATA_MAKE_NUM(DATADIR_M443, 0x26), - DATA_MAKE_NUM(DATADIR_M443, 0x27), DATA_MAKE_NUM(DATADIR_M443, 0x28), DATA_MAKE_NUM(DATADIR_M443, 0x29), DATA_MAKE_NUM(DATADIR_M443, 0x2A), - DATA_MAKE_NUM(DATADIR_M443, 0x2B) }; +s32 lbl_1_data_194[] = { + DATA_MAKE_NUM(DATADIR_M444, 0x24), + DATA_MAKE_NUM(DATADIR_M444, 0x25), + DATA_MAKE_NUM(DATADIR_M444, 0x26), + DATA_MAKE_NUM(DATADIR_M444, 0x27), + DATA_MAKE_NUM(DATADIR_M444, 0x28), + DATA_MAKE_NUM(DATADIR_M444, 0x29), + DATA_MAKE_NUM(DATADIR_M444, 0x2A), + DATA_MAKE_NUM(DATADIR_M444, 0x2B), +}; omObjData *lbl_1_bss_30C; Process *lbl_1_bss_308; @@ -1241,7 +1250,7 @@ void fn_1_655C(void) up.y = 1; up.z = 0; Hu3DShadowPosSet(&pos, &up, &target); - Hu3DReflectMapSet(HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M443, 0x23), MEMORY_DEFAULT_NUM, HEAP_DATA)); + Hu3DReflectMapSet(HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M444, 0x23), MEMORY_DEFAULT_NUM, HEAP_DATA)); for (i = 0; i < 4; i++) { lbl_1_data_470[i + 47].datanum = lbl_1_data_470[i + 51].datanum = lbl_1_data_194[GWPlayerCfg[i].character]; } @@ -1266,8 +1275,8 @@ void fn_1_655C(void) lbl_1_bss_2D0 = model; lbl_1_bss_2C0[0] = CharModelMotionCreate(lbl_1_bss_2DA, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); lbl_1_bss_2C0[1] = CharModelMotionCreate(lbl_1_bss_2DA, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); - lbl_1_bss_2C0[2] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA + DATA_MAKE_NUM(DATADIR_M443, 0x45)); - lbl_1_bss_2C0[3] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA + DATA_MAKE_NUM(DATADIR_M443, 0x4D)); + lbl_1_bss_2C0[2] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA + DATA_MAKE_NUM(DATADIR_M444, 0x45)); + lbl_1_bss_2C0[3] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA + DATA_MAKE_NUM(DATADIR_M444, 0x4D)); CharModelMotionSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0]); Hu3DModelPosSet(model, 0, 0, 200); Hu3DModelAttrSet(model, 0x40000001); @@ -1298,7 +1307,7 @@ void fn_1_655C(void) fn_1_8424(); for (i = 0; i < 20; i++) { if (i == 0) { - model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 0x13)); + model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M444, 0x13)); } else { model = Hu3DModelLink(lbl_1_bss_148[0][0]); @@ -1311,7 +1320,7 @@ void fn_1_655C(void) } for (i = 0; i < 20; i++) { if (i == 0) { - model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 0x12)); + model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M444, 0x12)); } else { model = Hu3DModelLink(lbl_1_bss_8[0][0]); diff --git a/src/REL/m444dll/shadow.c b/src/REL/m444dll/shadow.c new file mode 100644 index 00000000..676458bf --- /dev/null +++ b/src/REL/m444dll/shadow.c @@ -0,0 +1,59 @@ +#include "game/hsfman.h" +#include "game/object.h" + +#include "game/window.h" + +#include "ext_math.h" + +void fn_1_D9F4(s16); + +void fn_1_D9C8(void) +{ + Hu3DLayerHookSet(7, fn_1_D9F4); +} + +void fn_1_D9F4(s16 arg0) +{ + Mtx44 sp64; + Mtx sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + GXColor spC; + CameraData *var_r31; + + var_r31 = &Hu3DCamera[0]; + C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->near, var_r31->far); + GXSetProjection(sp64, GX_PERSPECTIVE); + GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + GXSetScissor(0, 0, 0x280, 0x1E0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + spC.a = 0xFF; + GXSetTevColor(GX_TEVREG0, spC); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetCullMode(GX_CULL_NONE); + GXSetAlphaCompare(GX_GEQUAL, 0, GX_AOP_AND, GX_GEQUAL, 0); + GXSetZMode(GX_TRUE, GX_ALWAYS, GX_TRUE); + sp28.x = sp28.y = sp28.z = 0.0f; + sp1C.x = sp1C.y = 0.0f; + sp1C.z = -100.0f; + sp10.x = sp10.z = 0.0f; + sp10.y = 1.0f; + C_MTXLookAt(sp34, &sp28, &sp10, &sp1C); + GXLoadPosMtxImm(sp34, 0); + sp28.x = 1.2000000476837158 * (10000.0 * -sin(var_r31->fov / 2)); + sp28.y = 0.8333333134651184 * (10000.0 * -sin(var_r31->fov / 2)); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-sp28.x, -sp28.y, -10000.0f); + GXPosition3f32(sp28.x, -sp28.y, -10000.0f); + GXPosition3f32(sp28.x, sp28.y, -10000.0f); + GXPosition3f32(-sp28.x, sp28.y, -10000.0f); +} diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c index 2a32c2a5..6d6d3858 100644 --- a/src/REL/ztardll/main.c +++ b/src/REL/ztardll/main.c @@ -1479,26 +1479,26 @@ void fn_1_7414(ModelData *model, Mtx matrix) GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXInitTexObj(&spC, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 1, GX_CLAMP, GX_CLAMP, 0); - GXInitTexObjLOD(&spC, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1); + GXInitTexObj(&spC, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 1, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&spC, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); GXLoadTexObj(&spC, GX_TEXMAP0); PSMTXInverse(Hu3DCameraMtx, sp5C); PSMTXConcat(sp5C, matrix, sp8C); PSMTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp2C); PSMTXConcat(sp2C, sp8C, sp8C); GXLoadTexMtxImm(sp8C, 0x39, GX_MTX3x4); - GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x39, 0, 0x7D); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x39, GX_FALSE, 0x7D); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); GXSetNumTexGens(1); GXSetNumTevStages(1); GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0, 1, GX_SRC_REG, GX_SRC_VTX, 1, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanCtrl(GX_COLOR0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, 1, GX_DF_CLAMP, GX_AF_NONE); GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); - GXSetZMode(1, GX_LEQUAL, 0); + GXSetZMode(1, GX_LEQUAL, GX_FALSE); GXLoadPosMtxImm(matrix, 0); GXBegin(GX_QUADS, GX_VTXFMT0, 4); GXPosition3f32(-500.0f, 0.0f, -500.0f); diff --git a/src/game/code_8003FF68.c b/src/game/code_8003FF68.c index 0aa54036..bff84c12 100644 --- a/src/game/code_8003FF68.c +++ b/src/game/code_8003FF68.c @@ -169,7 +169,7 @@ void fn_80040374(s16 arg0, s16 arg1, s16 arg2, s16 arg3) { unkCode_8003FF68* temp_r3; process = HuPrcChildCreate(fn_8004040C, 1, 0x1000, 0, HuPrcCurrentGet()); - temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkCode_8003FF68), 0x10000000); + temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkCode_8003FF68), MEMORY_DEFAULT_NUM); process->user_data = temp_r3; temp_r3->unk0 = arg0; temp_r3->unk2 = arg1; @@ -203,4 +203,4 @@ void fn_8004040C(void) { } HuPrcVSleep(); } -} \ No newline at end of file +} From abff8d92302221641866395406a091db9a3c803c Mon Sep 17 00:00:00 2001 From: kabiskac Date: Fri, 9 Aug 2024 04:52:05 +0200 Subject: [PATCH 024/311] Fully matched instDll and cleaned up some types in ztardll --- include/REL/instDll.h | 8 + include/REL/ztardll.h | 13 +- src/REL/instDll/font.c | 317 +++++++++++++++++++++++++++++++++++++++ src/REL/instDll/main.c | 4 +- src/REL/ztardll/font.c | 15 +- src/REL/ztardll/main.c | 10 +- src/REL/ztardll/select.c | 270 +++++++++++++++++---------------- 7 files changed, 481 insertions(+), 156 deletions(-) create mode 100644 include/REL/instDll.h create mode 100644 src/REL/instDll/font.c diff --git a/include/REL/instDll.h b/include/REL/instDll.h new file mode 100644 index 00000000..e6e09e34 --- /dev/null +++ b/include/REL/instDll.h @@ -0,0 +1,8 @@ +#ifndef M401DLL_H +#define M401DLL_H + +#include "game/minigame_seq.h" + +s32 fn_1_5EA4(SeqWork *work, char *mess, s16 jp_flag); + +#endif diff --git a/include/REL/ztardll.h b/include/REL/ztardll.h index e8c81299..0d7327ec 100644 --- a/include/REL/ztardll.h +++ b/include/REL/ztardll.h @@ -1,20 +1,11 @@ #ifndef ZTARDLL_H #define ZTARDLL_H -#include "game/object.h" +#include "game/minigame_seq.h" #include "dolphin/types.h" -typedef struct ZtarDllUnkStruct { - char unk00[0x30]; - s16 unk_30; - s16 unk_32; - char unk34[6]; - s16 unk_3A[16]; - s16 unk_5A[16]; -} ZtarDllUnkStruct; /* size = 0x7A */ - -s32 fn_1_7754(ZtarDllUnkStruct *arg0, u8 *arg1); +s32 fn_1_7754(SeqWork *arg0, char *mess); void fn_1_7C00(void); void fn_1_7D6C(Process *arg0); s32 fn_1_97D0(s32 arg0, s32 arg1); diff --git a/src/REL/instDll/font.c b/src/REL/instDll/font.c new file mode 100644 index 00000000..af50f5d5 --- /dev/null +++ b/src/REL/instDll/font.c @@ -0,0 +1,317 @@ +#include "game/sprite.h" + +#include "REL/instDll.h" + +s32 lbl_1_data_150[0xC6] = { + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x26), + DATA_MAKE_NUM(DATADIR_INST, 0x27), + DATA_MAKE_NUM(DATADIR_INST, 0x28), + DATA_MAKE_NUM(DATADIR_INST, 0x29), + DATA_MAKE_NUM(DATADIR_INST, 0x2A), + DATA_MAKE_NUM(DATADIR_INST, 0x2B), + DATA_MAKE_NUM(DATADIR_INST, 0x2C), + DATA_MAKE_NUM(DATADIR_INST, 0x2D), + DATA_MAKE_NUM(DATADIR_INST, 0x2E), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x2F), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x34), + DATA_MAKE_NUM(DATADIR_INST, 0x35), + DATA_MAKE_NUM(DATADIR_INST, 0x36), + DATA_MAKE_NUM(DATADIR_INST, 0x37), + DATA_MAKE_NUM(DATADIR_INST, 0x38), + DATA_MAKE_NUM(DATADIR_INST, 0x39), + DATA_MAKE_NUM(DATADIR_INST, 0x3A), + DATA_MAKE_NUM(DATADIR_INST, 0x3B), + DATA_MAKE_NUM(DATADIR_INST, 0x3C), + DATA_MAKE_NUM(DATADIR_INST, 0x3D), + DATA_MAKE_NUM(DATADIR_INST, 0x3E), + DATA_MAKE_NUM(DATADIR_INST, 0x3F), + DATA_MAKE_NUM(DATADIR_INST, 0x40), + DATA_MAKE_NUM(DATADIR_INST, 0x41), + DATA_MAKE_NUM(DATADIR_INST, 0x42), + DATA_MAKE_NUM(DATADIR_INST, 0x43), + DATA_MAKE_NUM(DATADIR_INST, 0x44), + DATA_MAKE_NUM(DATADIR_INST, 0x45), + DATA_MAKE_NUM(DATADIR_INST, 0x46), + DATA_MAKE_NUM(DATADIR_INST, 0x47), + DATA_MAKE_NUM(DATADIR_INST, 0x48), + DATA_MAKE_NUM(DATADIR_INST, 0x49), + DATA_MAKE_NUM(DATADIR_INST, 0x4A), + DATA_MAKE_NUM(DATADIR_INST, 0x4B), + DATA_MAKE_NUM(DATADIR_INST, 0x4C), + DATA_MAKE_NUM(DATADIR_INST, 0x4D), + DATA_MAKE_NUM(DATADIR_INST, 0x42), + DATA_MAKE_NUM(DATADIR_INST, 0x32), + DATA_MAKE_NUM(DATADIR_INST, 0x42), + DATA_MAKE_NUM(DATADIR_INST, 0x42), + DATA_MAKE_NUM(DATADIR_INST, 0x42), + DATA_MAKE_NUM(DATADIR_INST, 0x42), + DATA_MAKE_NUM(DATADIR_INST, 0x4E), + DATA_MAKE_NUM(DATADIR_INST, 0x4F), + DATA_MAKE_NUM(DATADIR_INST, 0x50), + DATA_MAKE_NUM(DATADIR_INST, 0x51), + DATA_MAKE_NUM(DATADIR_INST, 0x52), + DATA_MAKE_NUM(DATADIR_INST, 0x53), + DATA_MAKE_NUM(DATADIR_INST, 0x54), + DATA_MAKE_NUM(DATADIR_INST, 0x55), + DATA_MAKE_NUM(DATADIR_INST, 0x56), + DATA_MAKE_NUM(DATADIR_INST, 0x57), + DATA_MAKE_NUM(DATADIR_INST, 0x58), + DATA_MAKE_NUM(DATADIR_INST, 0x59), + DATA_MAKE_NUM(DATADIR_INST, 0x5A), + DATA_MAKE_NUM(DATADIR_INST, 0x5B), + DATA_MAKE_NUM(DATADIR_INST, 0x5C), + DATA_MAKE_NUM(DATADIR_INST, 0x5D), + DATA_MAKE_NUM(DATADIR_INST, 0x5E), + DATA_MAKE_NUM(DATADIR_INST, 0x5F), + DATA_MAKE_NUM(DATADIR_INST, 0x60), + DATA_MAKE_NUM(DATADIR_INST, 0x61), + DATA_MAKE_NUM(DATADIR_INST, 0x62), + DATA_MAKE_NUM(DATADIR_INST, 0x63), + DATA_MAKE_NUM(DATADIR_INST, 0x64), + DATA_MAKE_NUM(DATADIR_INST, 0x65), + DATA_MAKE_NUM(DATADIR_INST, 0x66), + DATA_MAKE_NUM(DATADIR_INST, 0x67), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x2F), + DATA_MAKE_NUM(DATADIR_INST, 0x33), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x30), + DATA_MAKE_NUM(DATADIR_INST, 0x31), + DATA_MAKE_NUM(DATADIR_INST, 0x25), + DATA_MAKE_NUM(DATADIR_INST, 0x25), +}; + +s32 fn_1_5EA4(SeqWork *work, char *mess, s16 jp_flag) +{ + char *var_r31; + s16 var_r30; + s16 *var_r29; + s16 var_r28; + s32 *var_r27; + s16 var_r26; + s16 var_r25; + s32 var_r24; + s16 *var_r22; + AnimData **var_r21; + s16 var_r20; + s16 var_r19; + + var_r27 = lbl_1_data_150; + for (var_r25 = 0; var_r25 < 0x10; var_r25++) { + if (work->spr_grp[var_r25] == -1) { + break; + } + } + if (var_r25 == 0x10) { + return -1; + } + var_r21 = HuMemDirectMalloc(HEAP_SYSTEM, 0x190); + var_r22 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); + var_r29 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); + + for (var_r31 = mess, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) { + if (var_r31[0] == 0x20 || var_r31[0] == 0x10) { + var_r30 += 0xE; + } + else if (var_r31[0] < 0x30) { + } + else if (var_r31[0] == 0x80) { + } + else if (var_r31[0] == 0x81) { + } + else { + if (var_r31[1] == 0x80) { + if ((var_r31[0] >= 0x96) && (var_r31[0] <= 0xA4)) { + var_r24 = var_r27[var_r31[0] + 0x6A]; + } + else if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { + var_r24 = var_r27[var_r31[0] + 0x65]; + } + else if ((var_r31[0] >= 0xD6) && (var_r31[0] <= 0xE4)) { + var_r24 = var_r27[var_r31[0] + 0x43]; + } + else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { + var_r24 = var_r27[var_r31[0] + 0x3E]; + } + } + else if (var_r31[1] == 0x81) { + if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { + var_r24 = var_r27[var_r31[0] + 0x6A]; + } + else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { + var_r24 = var_r27[var_r31[0] + 0x43]; + } + } + else { + var_r24 = var_r27[var_r31[0]]; + } + var_r21[var_r28] = HuSprAnimReadFile(var_r24); + var_r22[var_r28] = var_r30; + if ((var_r31[0] >= 0x61) && (var_r31[0] <= 0x7A)) { + var_r29[var_r28] = 2; + var_r30 += 0x12; + } + else if ((var_r31[0] == 0xC2) || (var_r31[0] == 0xC3)) { + var_r29[var_r28] = 0; + var_r30 += 0x12; + } + else if (var_r31[0] == 0x5C || var_r31[0] == 0x85) { + var_r29[var_r28] = 0; + var_r30 += 8; + } + else if ((var_r31[0] >= 0x87) && (var_r31[0] <= 0x8F)) { + var_r29[var_r28] = 4; + var_r30 += 0x18; + } + else if ((var_r31[0] >= 0xC7) && (var_r31[0] <= 0xCF)) { + var_r29[var_r28] = 4; + var_r30 += 0x18; + } + else if ((var_r31[0] == 0x3D) || (var_r31[0] == 0x84)) { + var_r29[var_r28] = 0; + var_r30 += 0x14; + } + else { + var_r29[var_r28] = 0; + var_r30 += 0x1C; + } + var_r28++; + } + } + var_r20 = HuSprGrpCreate(var_r28); + work->spr_grp[var_r25] = var_r20; + work->alt_word_len = var_r30; + var_r30 = (var_r30 / 2) - 0xE; + for (var_r26 = 0; var_r26 < var_r28; var_r26++) { + var_r19 = HuSprCreate(var_r21[var_r26], 0, 0); + HuSprGrpMemberSet(var_r20, var_r26, var_r19); + HuSprPosSet(var_r20, var_r26, var_r22[var_r26] - var_r30, var_r29[var_r26]); + } + work->word_len = var_r28; + HuMemDirectFree(var_r21); + HuMemDirectFree(var_r22); + HuMemDirectFree(var_r29); + return var_r25; +} diff --git a/src/REL/instDll/main.c b/src/REL/instDll/main.c index 07ee15ac..dfc11906 100644 --- a/src/REL/instDll/main.c +++ b/src/REL/instDll/main.c @@ -23,6 +23,8 @@ #include "rel_sqrt_consts.h" +#include "REL/instDll.h" + static s16 lbl_1_data_0 = 1; static omObjData *lbl_1_bss_60; @@ -757,8 +759,6 @@ static float lbl_1_data_124[] = { 292 }; -s32 fn_1_5EA4(SeqWork *work, char *mess, s16 jp_flag); - static void fn_1_2FA0(void) { float temp_f31; diff --git a/src/REL/ztardll/font.c b/src/REL/ztardll/font.c index c2c073bd..fe081d17 100644 --- a/src/REL/ztardll/font.c +++ b/src/REL/ztardll/font.c @@ -1,4 +1,5 @@ #include "game/sprite.h" +#include "game/minigame_seq.h" #include "REL/ztardll.h" @@ -54,9 +55,9 @@ s32 lbl_1_data_B0[0xC6] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0B), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0C), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00) }; -s32 fn_1_7754(ZtarDllUnkStruct *arg0, u8 *arg1) +s32 fn_1_7754(SeqWork *work, char *mess) { - u8 *var_r31; + char *var_r31; s16 var_r30; s16 *var_r29; s16 var_r28; @@ -71,7 +72,7 @@ s32 fn_1_7754(ZtarDllUnkStruct *arg0, u8 *arg1) var_r27 = lbl_1_data_B0; for (var_r25 = 0; var_r25 < 0x10; var_r25++) { - if (arg0->unk_3A[var_r25] == -1) { + if (work->spr_grp[var_r25] == -1) { break; } } @@ -81,7 +82,7 @@ s32 fn_1_7754(ZtarDllUnkStruct *arg0, u8 *arg1) var_r21 = HuMemDirectMalloc(HEAP_SYSTEM, 0x190); var_r22 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); var_r29 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); - for (var_r31 = arg1, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) { + for (var_r31 = mess, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) { if (var_r31[0] == 0x20 || var_r31[0] == 0x10) { var_r30 += 0xE; } @@ -151,15 +152,15 @@ s32 fn_1_7754(ZtarDllUnkStruct *arg0, u8 *arg1) } } var_r20 = HuSprGrpCreate(var_r28); - arg0->unk_3A[var_r25] = var_r20; - arg0->unk_30 = var_r30; + work->spr_grp[var_r25] = var_r20; + work->alt_word_len = var_r30; var_r30 = (var_r30 / 2) - 0xE; for (var_r26 = 0; var_r26 < var_r28; var_r26++) { var_r19 = HuSprCreate(var_r21[var_r26], 0, 0); HuSprGrpMemberSet(var_r20, var_r26, var_r19); HuSprPosSet(var_r20, var_r26, var_r22[var_r26] - var_r30, var_r29[var_r26]); } - arg0->unk_32 = var_r28; + work->word_len = var_r28; HuMemDirectFree(var_r21); HuMemDirectFree(var_r22); HuMemDirectFree(var_r29); diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c index 6d6d3858..a142e25f 100644 --- a/src/REL/ztardll/main.c +++ b/src/REL/ztardll/main.c @@ -372,13 +372,13 @@ loop_19: void fn_1_1774(void) { - ZtarDllUnkStruct sp8; + SeqWork work; s16 var_r31; s16 var_r30; - u8 *var_r29; + char *var_r29; s16 var_r28; AnimData *var_r27; - u8 *var_r26; + char *var_r26; AnimData *var_r25; AnimData *var_r24; AnimData *var_r23; @@ -390,7 +390,7 @@ void fn_1_1774(void) HuSprGrpDrawNoSet(lbl_1_bss_48, 0x7F); HuSprGrpPosSet(lbl_1_bss_48, 288.0f, 240.0f); for (var_r30 = 0; var_r30 < 0x10; var_r30++) { - sp8.unk_5A[var_r30] = sp8.unk_3A[var_r30] = -1; + work.sprite[var_r30] = work.spr_grp[var_r30] = -1; } var_r29 = MessData_MesPtrGet(messDataPtr, MAKE_MESSID(0x17, 0x21)); for (var_r26 = var_r29; *var_r29 != 0; var_r29++) { @@ -398,7 +398,7 @@ void fn_1_1774(void) *var_r29 = 0x10; } } - lbl_1_bss_52 = sp8.unk_3A[fn_1_7754(&sp8, var_r26)]; + lbl_1_bss_52 = work.spr_grp[fn_1_7754(&work, var_r26)]; HuSprGrpPosSet(lbl_1_bss_52, 288.0f, -300.0f); HuSprGrpDrawNoSet(lbl_1_bss_52, 0x7F); var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 4)); diff --git a/src/REL/ztardll/select.c b/src/REL/ztardll/select.c index 4459c2e8..b092f9b5 100644 --- a/src/REL/ztardll/select.c +++ b/src/REL/ztardll/select.c @@ -67,10 +67,10 @@ void fn_1_C4B8(s32 arg0); void fn_1_C8EC(s32 arg0); void fn_1_CAF0(void); void fn_1_D280(omObjData *arg0, ZtarDllUnkStruct2 *arg1); -void fn_1_DD8C(struct ZtarDllUnkStruct2 *arg0); -void fn_1_E4AC(struct ZtarDllUnkStruct2 *arg0); +void fn_1_DD8C(ZtarDllUnkStruct2 *arg0); +void fn_1_E4AC(ZtarDllUnkStruct2 *arg0); void fn_1_E548(omObjData *arg0, ZtarDllUnkStruct2 *arg1); -s32 fn_1_F214(struct ZtarDllUnkStruct2 *arg0); +s32 fn_1_F214(ZtarDllUnkStruct2 *arg0); void fn_1_FB38(void); void fn_1_FD90(s32 arg0); @@ -2051,49 +2051,48 @@ void fn_1_D280(omObjData *arg0, ZtarDllUnkStruct2 *arg1) } if (arg1->unk_5C != var_r25) { if (lbl_1_bss_74 != 0) { - while(1) { - var_r25 = var_r30 + (var_r29 * 6); - for (var_r28 = 0; var_r28 < 4; var_r28++) { - if (((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_50 == 0) && (var_r25 == lbl_1_bss_8C[var_r28].unk_5C)) || (var_r25 == 0) - || (var_r25 == 5) || (var_r25 == 6) || (var_r25 == 0xB)) { - if ((var_r27 == 0) || (var_r26 == 0)) { - if (((var_r30 + var_r27) > 5) || ((var_r30 + var_r27) < 0)) { - var_r30 = var_r23; - } - else { - var_r30 += var_r27; - } - if (((var_r29 + var_r26) > 2) || ((var_r29 + var_r26) < 0)) { - var_r29 = var_r22; - } - else { - var_r29 += var_r26; - } - } - else if (((var_r30 + var_r27) <= 5) && ((var_r30 + var_r27) >= 0)) { - var_r30 += var_r27; - } - else if (((var_r29 + var_r26) <= 2) && ((var_r29 + var_r26) >= 0)) { - var_r29 += var_r26; - } - else { - var_r30 = var_r23; - var_r29 = var_r22; - } - break; - } - else { - - } - } - if(var_r28 == 4) { - break; - } - } + while (1) { + var_r25 = var_r30 + (var_r29 * 6); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if (((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_50 == 0) && (var_r25 == lbl_1_bss_8C[var_r28].unk_5C)) + || (var_r25 == 0) || (var_r25 == 5) || (var_r25 == 6) || (var_r25 == 0xB)) { + if ((var_r27 == 0) || (var_r26 == 0)) { + if (((var_r30 + var_r27) > 5) || ((var_r30 + var_r27) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r27; + } + if (((var_r29 + var_r26) > 2) || ((var_r29 + var_r26) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r26; + } + } + else if (((var_r30 + var_r27) <= 5) && ((var_r30 + var_r27) >= 0)) { + var_r30 += var_r27; + } + else if (((var_r29 + var_r26) <= 2) && ((var_r29 + var_r26) >= 0)) { + var_r29 += var_r26; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + } + break; + } + else { + } + } + if (var_r28 == 4) { + break; + } + } } else { - while(1) { - var_r25 = var_r30 + (var_r29 * 4); + while (1) { + var_r25 = var_r30 + (var_r29 * 4); for (var_r28 = 0; var_r28 < 4; var_r28++) { if ((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_50 == 0) && (var_r25 == lbl_1_bss_8C[var_r28].unk_5C)) { if ((var_r27 == 0) || (var_r26 == 0)) { @@ -2105,10 +2104,11 @@ void fn_1_D280(omObjData *arg0, ZtarDllUnkStruct2 *arg1) } if (((var_r29 + var_r26) > 1) || ((var_r29 + var_r26) < 0)) { var_r29 = var_r22; - } else { + } + else { var_r29 += var_r26; } - break; + break; } else if (((var_r30 + var_r27) <= 3) && ((var_r30 + var_r27) >= 0)) { var_r30 += var_r27; @@ -2128,10 +2128,10 @@ void fn_1_D280(omObjData *arg0, ZtarDllUnkStruct2 *arg1) continue; } } - if(var_r28 == 4) { - break; - } - } + if (var_r28 == 4) { + break; + } + } } if (lbl_1_bss_74 != 0) { var_r25 = var_r30 + (var_r29 * 6); @@ -2388,8 +2388,8 @@ void fn_1_E548(omObjData *arg0, ZtarDllUnkStruct2 *arg1) } if (arg1->unk_5C != var_r24) { if (lbl_1_bss_74 != 0) { - while(1) { - fn_1_10FBC(1); + while (1) { + fn_1_10FBC(1); var_r24 = var_r30 + (var_r29 * 6); for (var_r28 = 0; var_r28 < 4; var_r28++) { if (((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_08 == 1) && (var_r24 == lbl_1_bss_8C[var_r28].unk_5C)) @@ -2421,10 +2421,10 @@ void fn_1_E548(omObjData *arg0, ZtarDllUnkStruct2 *arg1) break; } } - if(var_r28 == 4) { - break; - } - } + if (var_r28 == 4) { + break; + } + } } else { do { @@ -2506,81 +2506,89 @@ s32 fn_1_F214(ZtarDllUnkStruct2 *arg0) var_r28 = 0; var_r29 = lbl_1_bss_26C[1]; - while(1) { - fn_1_10FBC(1); - var_r28 = 0; - var_r26 = arg0->unk_54; - if(HuPadStkX[lbl_1_bss_8C[0].unk_58] >= 5 || (HuPadBtn[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_RIGHT)) { - if(GWGameStat.field10E_bit4 == 1) { - arg0->unk_54++; - var_r28 = 1; - if(arg0->unk_54 > 3) { - arg0->unk_54 = 0; - } - } else { - arg0->unk_54++; - var_r28 = 1; - if(arg0->unk_54 > 2) { - arg0->unk_54 = 0; - } - } - } else if(HuPadStkX[lbl_1_bss_8C[0].unk_58] <= -5 || (HuPadBtn[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_LEFT)) { - if(GWGameStat.field10E_bit4 == 1) { - arg0->unk_54--; - var_r28 = -1; - if(arg0->unk_54 < 0) { - arg0->unk_54 = 3; - } - } else { - arg0->unk_54--; - var_r28 = -1; - if(arg0->unk_54 < 0) { - arg0->unk_54 = 2; - } - } - } else if(HuPadBtnDown[0] & PAD_BUTTON_A) { - var_r27 = 1; - break; - } else if(HuPadBtnDown[0] & PAD_BUTTON_B) { - var_r27 = 0; - HuAudFXPlay(3); - break; - } - if(arg0->unk_54 != var_r26) { - HuAudFXPlay(0); - for(var_r30=0; var_r30<=5; var_r30++) { - fn_1_10FBC(1); - if(lbl_1_bss_74) { - var_f31 = fn_1_10E38(lbl_1_data_584[arg0->unk_5C][0], lbl_1_data_584[arg0->unk_5C][0]+(var_r28*10), var_r30, 5.0f); - HuSprPosSet(var_r29, arg0->unk_48+46, var_f31, lbl_1_data_584[arg0->unk_5C][1]+35); - } else { - var_f31 = fn_1_10E38(lbl_1_data_4D4[arg0->unk_5C%4][0], lbl_1_data_4D4[arg0->unk_5C%4][0]+(var_r28*10), var_r30, 5.0f); - HuSprPosSet(var_r29, arg0->unk_48+46, var_f31, lbl_1_data_4D4[(arg0->unk_5C/4)*4][1]+35); - } - } - HuSprBankSet(var_r29, arg0->unk_48+46, arg0->unk_54); - for(var_r30=0; var_r30<=5; var_r30++) { - fn_1_10FBC(1); - if(lbl_1_bss_74) { - var_f31 = fn_1_10E38(lbl_1_data_584[arg0->unk_5C][0]+(var_r28*10), lbl_1_data_584[arg0->unk_5C][0], var_r30, 5.0f); - HuSprPosSet(var_r29, arg0->unk_48+46, var_f31, lbl_1_data_584[arg0->unk_5C][1]+35); - } else { - var_f31 = fn_1_10E38(lbl_1_data_4D4[arg0->unk_5C%4][0]+(var_r28*10), lbl_1_data_4D4[arg0->unk_5C%4][0], var_r30, 5.0f); - HuSprPosSet(var_r29, arg0->unk_48+46, var_f31, lbl_1_data_4D4[(arg0->unk_5C/4)*4][1]+35); - } - } - } - } - if(var_r27 == 1) { - if(lbl_1_bss_74) { - HuSprPosSet(var_r29, arg0->unk_48+50, lbl_1_data_584[arg0->unk_5C][0], lbl_1_data_584[arg0->unk_5C][1]+35); - } else { - HuSprPosSet(var_r29, arg0->unk_48+50, lbl_1_data_4D4[arg0->unk_5C%4][0], lbl_1_data_4D4[(arg0->unk_5C/4)*4][1]+35); - } - HuSprBankSet(var_r29, arg0->unk_48+50, arg0->unk_54); - HuSprAttrReset(var_r29, arg0->unk_48+50, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(var_r29, arg0->unk_48+46, HUSPR_ATTR_DISPOFF); - } + while (1) { + fn_1_10FBC(1); + var_r28 = 0; + var_r26 = arg0->unk_54; + if (HuPadStkX[lbl_1_bss_8C[0].unk_58] >= 5 || (HuPadBtn[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_RIGHT)) { + if (GWGameStat.field10E_bit4 == 1) { + arg0->unk_54++; + var_r28 = 1; + if (arg0->unk_54 > 3) { + arg0->unk_54 = 0; + } + } + else { + arg0->unk_54++; + var_r28 = 1; + if (arg0->unk_54 > 2) { + arg0->unk_54 = 0; + } + } + } + else if (HuPadStkX[lbl_1_bss_8C[0].unk_58] <= -5 || (HuPadBtn[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_LEFT)) { + if (GWGameStat.field10E_bit4 == 1) { + arg0->unk_54--; + var_r28 = -1; + if (arg0->unk_54 < 0) { + arg0->unk_54 = 3; + } + } + else { + arg0->unk_54--; + var_r28 = -1; + if (arg0->unk_54 < 0) { + arg0->unk_54 = 2; + } + } + } + else if (HuPadBtnDown[0] & PAD_BUTTON_A) { + var_r27 = 1; + break; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + var_r27 = 0; + HuAudFXPlay(3); + break; + } + if (arg0->unk_54 != var_r26) { + HuAudFXPlay(0); + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_10FBC(1); + if (lbl_1_bss_74) { + var_f31 = fn_1_10E38(lbl_1_data_584[arg0->unk_5C][0], lbl_1_data_584[arg0->unk_5C][0] + (var_r28 * 10), var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 46, var_f31, lbl_1_data_584[arg0->unk_5C][1] + 35); + } + else { + var_f31 = fn_1_10E38(lbl_1_data_4D4[arg0->unk_5C % 4][0], lbl_1_data_4D4[arg0->unk_5C % 4][0] + (var_r28 * 10), var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 46, var_f31, lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 35); + } + } + HuSprBankSet(var_r29, arg0->unk_48 + 46, arg0->unk_54); + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_10FBC(1); + if (lbl_1_bss_74) { + var_f31 = fn_1_10E38(lbl_1_data_584[arg0->unk_5C][0] + (var_r28 * 10), lbl_1_data_584[arg0->unk_5C][0], var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 46, var_f31, lbl_1_data_584[arg0->unk_5C][1] + 35); + } + else { + var_f31 = fn_1_10E38(lbl_1_data_4D4[arg0->unk_5C % 4][0] + (var_r28 * 10), lbl_1_data_4D4[arg0->unk_5C % 4][0], var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 46, var_f31, lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 35); + } + } + } + } + if (var_r27 == 1) { + if (lbl_1_bss_74) { + HuSprPosSet(var_r29, arg0->unk_48 + 50, lbl_1_data_584[arg0->unk_5C][0], lbl_1_data_584[arg0->unk_5C][1] + 35); + } + else { + HuSprPosSet(var_r29, arg0->unk_48 + 50, lbl_1_data_4D4[arg0->unk_5C % 4][0], lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 35); + } + HuSprBankSet(var_r29, arg0->unk_48 + 50, arg0->unk_54); + HuSprAttrReset(var_r29, arg0->unk_48 + 50, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r29, arg0->unk_48 + 46, HUSPR_ATTR_DISPOFF); + } return var_r27; } From a14d12b147e02d0c30c94b88fcb89709701c6875 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Fri, 9 Aug 2024 20:29:31 -0500 Subject: [PATCH 025/311] Do mgmodedll/record.c --- configure.py | 2 +- src/REL/mgmodedll/record.c | 222 +++++++++++++++++++++++++++++++++++++ 2 files changed, 223 insertions(+), 1 deletion(-) create mode 100644 src/REL/mgmodedll/record.c diff --git a/configure.py b/configure.py index 7a3274bc..367f53bb 100644 --- a/configure.py +++ b/configure.py @@ -1333,7 +1333,7 @@ config.libs = [ Object(Matching, "REL/executor.c"), Object(Matching, "REL/mgmodedll/mgmode.c"), Object(Matching, "REL/mgmodedll/free_play.c"), - Object(NonMatching, "REL/mgmodedll/record.c"), + Object(Matching, "REL/mgmodedll/record.c"), Object(NonMatching, "REL/mgmodedll/battle.c"), Object(NonMatching, "REL/mgmodedll/tictactoe.c"), Object(NonMatching, "REL/mgmodedll/main.c"), diff --git a/src/REL/mgmodedll/record.c b/src/REL/mgmodedll/record.c new file mode 100644 index 00000000..974cc66e --- /dev/null +++ b/src/REL/mgmodedll/record.c @@ -0,0 +1,222 @@ +#include "REL/mgmodedll.h" +#include "game/gamework.h" + +#include "game/audio.h" +#include "game/esprite.h" +#include "game/gamework_data.h" +#include "game/saveload.h" +#include "game/wipe.h" + +#include "ext_math.h" + +void fn_1_DE3C(void); +void fn_1_DFB8(void); +void fn_1_E02C(float x, float y, s16 recordNo); + +s16 lbl_1_bss_37C[6]; +s16 lbl_1_bss_370[6]; + +s16 lbl_1_data_120[6][3] = { + 0, 2, 13, + 1, 0, 15, + 2, 1, 35, + 3, 2, 40, + 5, 1, 51, + 10, 1, 62 +}; + +void fn_1_D8D0(void) +{ + s16 i; + float weight; + fn_1_DE3C(); + espAttrReset(lbl_1_bss_2C2C[3], HUSPR_ATTR_DISPOFF); + espTPLvlSet(lbl_1_bss_2C2C[3], 0); + for(i=0; i<=20; i++) { + espTPLvlSet(lbl_1_bss_2C2C[3], i/20.0); + HuPrcVSleep(); + } + for(i=0; i<=20; i++) { + weight = i/20.0; + espAttrReset(lbl_1_bss_2C2C[27], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[27], 288, -100.0+(164.0*sind(weight*90.0f))); + espAttrReset(lbl_1_bss_2C2C[28], HUSPR_ATTR_DISPOFF); + espTPLvlSet(lbl_1_bss_2C2C[28], weight); + espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[20], ((1-sind(weight*90.0f))*400)+288, 424); + HuPrcVSleep(); + } + for(i=0; i<6; i++) { + fn_1_E02C(288, (i*42)+150.0f, i); + HuPrcVSleep(); + } + while(1) { + if(HuPadBtnDown[0] & PAD_BUTTON_B) { + break; + } + HuPrcVSleep(); + } + HuAudFXPlay(3); + for(i=0; i<6; i++) { + fn_1_E02C(1288, 0, i); + HuPrcVSleep(); + } + fn_1_DFB8(); + for(i=0; i<=20; i++) { + weight = i/20.0; + espAttrReset(lbl_1_bss_2C2C[27], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[27], 288, -100.0+(164.0*cosd(weight*90.0f))); + espAttrReset(lbl_1_bss_2C2C[28], HUSPR_ATTR_DISPOFF); + espTPLvlSet(lbl_1_bss_2C2C[28], 1.0-weight); + espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_bss_2C2C[20], ((1-cosd(weight*90.0f))*400)+288, 424); + HuPrcVSleep(); + } + for(i=0; i<=10; i++) { + espTPLvlSet(lbl_1_bss_2C2C[3], 1-(i/10.0)); + HuPrcVSleep(); + } +} + +void fn_1_DE3C(void) +{ + AnimData *numAnim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 53), MEMORY_DEFAULT_NUM)); + s16 i; + for(i=0; i<6; i++) { + s16 window = HuWinCreate(0, (i*24), 268, 32, 0); + s16 j; + lbl_1_bss_37C[i] = window; + HuWinBGTPLvlSet(window, 0); + HuWinMesSpeedSet(window, 0); + HuWinDispOff(window); + lbl_1_bss_370[i] = HuSprGrpCreate(8); + for(j=0; j<8; j++) { + s16 sprite = HuSprCreate(numAnim, 10, 0); + HuSprGrpMemberSet(lbl_1_bss_370[i], j, sprite); + (void)sprite; + HuSprAttrSet(lbl_1_bss_370[i], j, HUSPR_ATTR_DISPOFF); + } + } +} + +void fn_1_DFB8(void) +{ + s16 i; + for(i=0; i<6; i++) { + HuWinKill(lbl_1_bss_37C[i]); + HuSprGrpKill(lbl_1_bss_370[i]); + } +} + +void fn_1_E02C(float x, float y, s16 recordNo) +{ + s32 sprGrpId = lbl_1_bss_370[recordNo]; + s32 value = GWMGRecordGet(lbl_1_data_120[recordNo][0]); + s32 i; + s16 mgNo; + float xOfs; + + if(lbl_1_data_120[recordNo][2] != -1) { + mgNo = omMgIndexGet(lbl_1_data_120[recordNo][2]); + if(!GWMGAvailGet(mgNo+401)) { + mgNo = -1; + } else { + HuWinMesSet(lbl_1_bss_37C[recordNo], mgInfoTbl[mgNo].name_mess); + } + } else { + mgNo = -1; + } + HuWinDispOn(lbl_1_bss_37C[recordNo]); + HuWinPosSet(lbl_1_bss_37C[recordNo], x-220, y-24); + if(mgNo == -1) { + HuWinMesSet(lbl_1_bss_37C[recordNo], MAKE_MESSID(35, 0)); + for(i=0; i<8; i++) { + HuSprBankSet(sprGrpId, i, 0); + HuSprPosSet(sprGrpId, i, i*16, 0); + HuSprAttrReset(sprGrpId, i, HUSPR_ATTR_DISPOFF); + } + xOfs = 128; + } else { + s32 memberNum; + s32 digitValue; + if(lbl_1_data_120[recordNo][1] == 0) { + memberNum = 0; + if(value > 9999) { + value = 9999; + } + digitValue = value/1000; + if(digitValue != 0) { + HuSprBankSet(sprGrpId, memberNum, digitValue); + value -= digitValue*1000; + memberNum++; + } + digitValue = value/100; + if(digitValue != 0 || memberNum != 0) { + HuSprBankSet(sprGrpId, memberNum, digitValue); + value -= digitValue*100; + memberNum++; + } + digitValue = value/10; + if(digitValue != 0 || memberNum != 0) { + HuSprBankSet(sprGrpId, memberNum, digitValue); + value -= digitValue*10; + memberNum++; + } + HuSprBankSet(sprGrpId, memberNum, value); + memberNum++; + for(i=0; i<8; i++) { + HuSprAttrSet(sprGrpId, i, HUSPR_ATTR_DISPOFF); + } + for(i=0; i Date: Fri, 9 Aug 2024 23:44:17 -0400 Subject: [PATCH 026/311] complete 90% of m415Dll/main.c --- include/REL/m415Dll.h | 200 +++++ src/REL/m415Dll/main.c | 1785 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1985 insertions(+) create mode 100644 include/REL/m415Dll.h create mode 100644 src/REL/m415Dll/main.c diff --git a/include/REL/m415Dll.h b/include/REL/m415Dll.h new file mode 100644 index 00000000..a8caee0f --- /dev/null +++ b/include/REL/m415Dll.h @@ -0,0 +1,200 @@ +#include "dolphin.h" + +#include "game/hsfformat.h" +#include "game/object.h" + +#define FABS(x) ((x < 0.0f) ? -(x) : (x)) + +// types +typedef struct _unkStruct { + s16 unk0[3]; + s16 unk6; + s16 unk8; +} unkStruct; // sizeof 0xC + +typedef struct _unkStruct2 { + char unk[0xE]; + s8 unkE; +} unkStruct2; + +typedef struct _unkStruct3 { + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; + char unk8[0x2]; + u8 unkA; + u8 unkB; + u8 unkC; + u8 unkD; + u8 unkE; + u8 unkF; + s16 unk10; + s16 unk12; + s16 unk14; + s16 unk16; + s16 unk18; + s16 unk1A; + f32 unk1C; + f32 unk20; + f32 unk24; + f32 unk28; + Vec unk2C; + Vec unk38; + Vec unk44; + Vec unk50; + u8 unk5C; + u8 unk5D; + union { + s32* unk60; + struct { + s16 unk60s; + s16 unk62s; + }; + }; + s16 unk64; + s16 unk66; + s16 unk68; + Vec unk6C; +} unkStruct3; + +typedef struct _unkStruct4 { + u8 unk0; + Vec unk4; + Vec unk10; + Vec unk1C; + Vec unk28; + Vec unk34; + Vec unk40; + Vec unk4C; + Vec unk58; + Vec unk64[3]; + Vec unk88[3]; + Vec unkAC[3]; + Vec unkD0[3]; + f32 unkF4[3]; + f32 unk100[3]; + f32 unk10C[3]; + f32 unk118[3]; + f32 unk124[3]; + f32 unk130; + f32 unk134; + f32 unk138; + f32 unk13C; + f32 unk140; + f32 unk144; + f32 unk148; +} unkStruct4; + +// taken from m438 +typedef struct _unkSubStruct { + Vec unk0; + char unkC[0xC]; + Vec unk18; + char unk24[0x2C]; + GXColor unk50; + char unk54[0x8]; + s8 unk5C; + char unk5D[0xB]; + Vec unk68; + char unk74[0x20]; +} unkSubStruct; /* size = 0x94 */ + +typedef struct _unkSubStruct2 { + s16 unk0; + s16 unk2; + char unk4[0x2C]; + void *unk30; // TODO type + char unk34[8]; + unkSubStruct *unk3C; + char unk40[0x20]; + u8 unk60; + char unk61[0x1A]; + s16 unk7C; + s16 unk7E; + float unk80; + float unk84; + float unk88; + float unk8C; + float unk90; + char unk94[0x28]; +} unkSubStruct2; /* size = 0xBC */ + +typedef struct _unkStruct5 { + /* 0x00 */ char unk00[0x36]; + s16 unk36; + s16 unk38; + s16 unk3A; + char unk3C[4]; + unkSubStruct2 *unk40; +} unkStruct5; /* size = */ + +// prototypes +void ObjectSetup(void); +void fn_1_43C(omObjData* object); +void fn_1_4B0(omObjData* object); +void fn_1_7D8(omObjData* object); +void fn_1_14C0(omObjData* object); +void fn_1_1524(s16, char*, f32, Mtx); +void fn_1_15D0(omObjData* object); +void fn_1_1960(omObjData* object); +void fn_1_1A60(unkStruct3*); +void fn_1_2B18(omObjData* object); +void fn_1_2C14(omObjData* object); +void fn_1_2E88(f32, Vec*, Vec*, f32); +void fn_1_2F28(f32, Vec*, Vec*, f32, Vec*, Vec*, f32); +void fn_1_31E0(f32); +void fn_1_3208(omObjData* object); +void fn_1_3640(omObjData* object); +void fn_1_3764(omObjData* object); +void fn_1_3B44(omObjData* object); +void fn_1_4660(omObjData* object); +void fn_1_5B20(unkSubStruct2*); +void fn_1_5FB0(omObjData* object); +void fn_1_6304(omObjData* object); +void fn_1_6368(void); +void* fn_1_63A8(s32); +void fn_1_6448(void*); +void fn_1_64DC(void); +void fn_1_6584(s16, char*, u8, u8, u8); +AnimBmpData* fn_1_668C(s16); +s16 fn_1_66AC(void); +s32 fn_1_679C(void); +f32 fn_1_67F0(f32, f32, f32); +void fn_1_6958(Mtx, f32, f32, f32); +void fn_1_6A78(Mtx, Vec*); +f32 fn_1_6D84(f32, f32, f32, f32); +void fn_1_6DFC(f32*, f32*, f32*, f32*, f32); +f32 fn_1_6F18(f32, f32, f32, f32); +void fn_1_6F90(f32*, f32*, f32*, f32*, f32); +void fn_1_7268(f32*, f32*, f32*, s32); +f32 fn_1_7520(f32, f32*, f32*, f32*, s32); +void fn_1_7674(f32*, Vec*, Vec*, s32); +// ... +void fn_1_7A54(f32, Vec*, f32*, Vec*, Vec*, s32); +void fn_1_8780(s32, s32); +AnimData** fn_1_9734(s16); // * +s16 fn_1_A2D0(s32, s32); +void fn_1_A800(s16); +s16 fn_1_A94C(s32, s16, s16); +void fn_1_ACF4(s16, s16, s16, s16, s16, s16); +void fn_1_AFC8(s16, s32, s32, s32, s32); +void fn_1_B038(s16, s32, s32); +void fn_1_B0B8(s16, s32, s16); +void fn_1_B634(void); +void fn_1_B864(s16, f32, f32, f32); +void fn_1_B8D0(s16, s16, f32, f32, f32); +void fn_1_BB4C(s16, f32, f32, f32); +void fn_1_BC9C(s16, f32, f32, f32); +void fn_1_BD08(s16, s16, f32, f32, f32); +void fn_1_BE30(s16, s16, s32); +void fn_1_C110(s16, s16, u8, u8, u8, u8); +void fn_1_C264(s16, s32); +void fn_1_C2D0(s16, s32, s32); +void fn_1_C410(s16, s16, u8, u8); +void fn_1_C58C(s16, s16, u8 , f32); +void fn_1_C81C(s16, s32); \ No newline at end of file diff --git a/src/REL/m415Dll/main.c b/src/REL/m415Dll/main.c new file mode 100644 index 00000000..522cdd98 --- /dev/null +++ b/src/REL/m415Dll/main.c @@ -0,0 +1,1785 @@ +#include "REL/m415Dll.h" + +#include "rel_sqrt_consts.h" +#include "math.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/EnvelopeExec.h" +#include "game/esprite.h" +#include "game/frand.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/wipe.h" + +// bss +unkStruct5 lbl_1_bss_36C; +omObjData* lbl_1_bss_368; +omObjData* lbl_1_bss_364; +omObjData* lbl_1_bss_360; +omObjData* lbl_1_bss_35C; +omObjData* lbl_1_bss_34C[4]; +u16 lbl_1_bss_34A; +s16 lbl_1_bss_348; +s16 lbl_1_bss_346; +s16 lbl_1_bss_344; +s16 lbl_1_bss_342; +s16 lbl_1_bss_33A[4]; +s16 lbl_1_bss_338; +u8* lbl_1_bss_334; +s32 lbl_1_bss_234[4][4][4]; +void* lbl_1_bss_34[0x80]; +unkStruct lbl_1_bss_4[4]; + +// data +Vec lbl_1_data_0 = { 0.0f, 3000.0f, 2000.0f }; +Vec lbl_1_data_C = { 0.0f, -0.7f, -0.6f }; +GXColor lbl_1_data_18 = { 0xFF, 0xFF, 0xFF, 0xFF }; +Vec lbl_1_data_1C = { 0.0f, 3000.0f, -2000.0f }; +Vec lbl_1_data_28 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_34 = { 0.0f, 0.0f, 0.0f }; + +void ObjectSetup(void) { + s32 var_r31; + Process* temp_r30; + omObjData* var_r29; + LightData* var_r28; + s32 temp_r27; + s32 var_r26; + + OSReport("******* M415ObjectSetup *********\n"); + Hu3DLighInit(); + var_r26 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_18); + Hu3DGLightInfinitytSet(var_r26); + var_r28 = &Hu3DGlobalLight[0]; + var_r28->unk_00 |= 0x8000; + temp_r30 = omInitObjMan(0x32, 0x2000); + temp_r27 = frand() & 0x1F; + + for (var_r31 = 0; var_r31 < temp_r27; var_r31++) { + fn_1_679C(); + } + + CRot.x = -55.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + Center.x = 0.0f; + Center.y = 200.0f; + Center.z = 200.0f; + CZoom = 1500.0f; + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, -1.0f, 5.0f, 10000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + lbl_1_bss_364 = omAddObjEx(temp_r30, 0x7FDA, 0, 0, -1, omOutView); + lbl_1_bss_368 = omAddObjEx(temp_r30, 0x10, 8, 0, -1, fn_1_43C); + lbl_1_bss_35C = omAddObjEx(temp_r30, 0x20, 0x10, 0, -1, fn_1_15D0); + lbl_1_bss_360 = omAddObjEx(temp_r30, 0x50, 0x10, 0, -1, fn_1_2B18); + omAddObjEx(temp_r30, 0x60, 0, 0, -1, fn_1_6304); + omMakeGroupEx(temp_r30, 0, 4); + omGetGroupMemberListEx(temp_r30, 0); + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_34C[var_r31] = var_r29 = omAddObjEx(temp_r30, 0x30, 6, 0xA, 0, fn_1_3208); + var_r29->work[0] = var_r31; + var_r29->work[1] = var_r31; + } + Hu3DShadowCreate(30.0f, 100.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.4f); + Hu3DShadowPosSet(&lbl_1_data_1C, &lbl_1_data_28, &lbl_1_data_34); + omGameSysInit(temp_r30); + HuAudSndGrpSet(0x28); + fn_1_6368(); + fn_1_8780(0x40, 0x40); +} + +void fn_1_43C(omObjData* object) { + CameraData* var_r31; + + var_r31 = &Hu3DCamera[0]; + lbl_1_bss_34A = 0; + WipeCreate(1, 0, 0x3C); + var_r31->fov = 45.0f; + object->func = fn_1_4B0; +} + +void fn_1_4B0(omObjData* object) { + Vec sp14; + Vec sp8; + s32 var_r31; + f32 var_f31; + + switch (lbl_1_bss_34A) { + case 0: + sp14.x = 0.0f; + sp14.y = 200.0f; + sp14.z = 200.0f; + sp8.x = -55.0f; + sp8.y = 0.0f; + sp8.z = 0.0f; + var_f31 = 1500.0f; + fn_1_2E88(1.0f, &sp14, &sp8, var_f31); + fn_1_A94C(0x2E000D, 0, 0); + HuDataDirClose(0x2E000D); + fn_1_A94C(0x2E000C, 0x40, 0x40); + HuDataDirClose(0x2E000C); + lbl_1_bss_342 = 0x78; + HuAudFXPlay(0x5AE); + lbl_1_bss_34A++; + break; + case 1: + if (72.0f == lbl_1_bss_342) { + HuAudFXPlay(0x5AF); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + omVibrate(var_r31, 0xC, 4, 2); + } + } + if (--lbl_1_bss_342 == 0) { + lbl_1_bss_34A++; + } + break; + case 2: + if (lbl_1_bss_342 == 0) { + lbl_1_bss_342 = 90; + } + if (--lbl_1_bss_342 == 0) { + lbl_1_bss_34A++; + } + break; + case 3: + lbl_1_bss_34A = 4; + lbl_1_bss_348 = lbl_1_bss_346 = -1; + object->func = fn_1_7D8; + HuSprAnimRead(HuDataReadNum(0x2E000D, 0x10000000)); + break; + } + if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { + WipeCreate(2, 0, 0x3C); + object->func = fn_1_14C0; + } +} + +extern s32 lbl_1_data_64 = -1; + +void fn_1_7D8(omObjData* object) { + GXColor sp18[4] = { + { 0xF0, 0x00, 0x00, 0xFF }, + { 0x30, 0x60, 0xF0, 0xFF }, + { 0xE0, 0xE0, 0x00, 0xFF }, + { 0xFF, 0x80, 0x80, 0xFF } + }; + s32 sp8[4]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + unkStruct2* var_r25; + s16 temp_r24; + s16 temp_r23; + s16 var_r22; + + switch (lbl_1_bss_34A) { + case 4: + if (lbl_1_bss_346 == -1) { + lbl_1_bss_344 = 0x708; + lbl_1_bss_346 = MGSeqCreate(3, 0); + MGSeqPosSet(lbl_1_bss_346, 320.0f, 240.0f); + } else { + if (MGSeqStatGet(lbl_1_bss_346) == 0) { + lbl_1_bss_346 = -1; + lbl_1_bss_34A++; + lbl_1_bss_342 = 0; + lbl_1_bss_348 = MGSeqCreate(1, lbl_1_bss_344 / 60, -1, -1); + } + } + if ((lbl_1_data_64 == -1) && ((MGSeqStatGet(lbl_1_bss_346) & 0x10) != 0)) { + lbl_1_data_64 = HuAudSeqPlay(0x45); + } + break; + case 5: + var_r27 = 0; + lbl_1_bss_344--; + MGSeqParamSet(lbl_1_bss_348, 1, ((lbl_1_bss_344 + 0x3B) / 60)); + if (lbl_1_bss_344 == 0) { + var_r27++; + } + if (var_r27 != 0) { + lbl_1_bss_34A += 1; + } + break; + case 6: + if (lbl_1_bss_346 == -1) { + lbl_1_bss_346 = MGSeqCreate(3, 1); + MGSeqPosSet(lbl_1_bss_346, 320.0f, 240.0f); + MGSeqParamSet(lbl_1_bss_348, 2, -1); + HuAudSeqFadeOut(lbl_1_data_64, 0x64); + } else if (MGSeqStatGet(lbl_1_bss_346) == 0) { + lbl_1_bss_346 = -1; + lbl_1_bss_34A++; + lbl_1_bss_342 = 0; + } + break; + case 7: + if (lbl_1_bss_342 == 0) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_4[var_r31].unk8 = espEntry(0x2E0010, 10, 0); + espColorSet(lbl_1_bss_4[var_r31].unk8, 0, 0, 0); + espTPLvlSet(lbl_1_bss_4[var_r31].unk8, 0.5f); + espPosSet(lbl_1_bss_4[var_r31].unk8, + 144.0f * (((var_r31 & 1) * 2) + 1), + 120.0f * (((s16)(((var_r31 < 0) + var_r31) >> 1) << 1) + 1) + ); + lbl_1_bss_4[var_r31].unk6 = espEntry(0x2E000F, 10, 0); + espPosSet(lbl_1_bss_4[var_r31].unk6, + 144.0f * (((var_r31 & 1) * 2) + 1), + 120.0f * (((s16)(((var_r31 < 0) + var_r31) >> 1) << 1) + 1) + ); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + lbl_1_bss_4[var_r31].unk0[var_r30] = espEntry(0x2E0011, 10, 0); + espPosSet(lbl_1_bss_4[var_r31].unk0[var_r30], + (32.0f * var_r30) + ((144.0f * (((var_r31 & 1) * 2) + 1)) - 32.0f), + (120.0f * (((s16)(((var_r31 < 0) + var_r31) >> 1) << 1) + 1)) + ); + espColorSet(lbl_1_bss_4[var_r31].unk0[var_r30], sp18[var_r31].r, sp18[var_r31].g, sp18[var_r31].b); + } + espBankSet(lbl_1_bss_4[var_r31].unk0[2], 10); + } + lbl_1_bss_342 = 0x3C; + HuAudFXPlay(0x5B4); + } else { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + for (var_r30 = 0; var_r30 < 2; var_r30++) { + espBankSet(lbl_1_bss_4[var_r31].unk0[var_r30], (s32)((fn_1_679C() / 65536.0f) * 10.0f)); + } + } + if (--lbl_1_bss_342 == 0) { + HuAudFXPlay(0x5B5); + var_r28 = 6; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + sp8[var_r29] = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + sp8[var_r29] += lbl_1_bss_234[var_r29][var_r31][var_r30]; + } + } + sp8[var_r29] = (0.99f + ((100.0f * sp8[var_r29]) / 360000.0f)); + if (var_r28 < sp8[var_r29]) { + var_r28 = sp8[var_r29]; + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + temp_r24 = sp8[var_r31]; + espBankSet(lbl_1_bss_4[var_r31].unk0[0], temp_r24 / 10); + espBankSet(lbl_1_bss_4[var_r31].unk0[1], temp_r24 % 10); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_33A[var_r31] = -1; + } + + var_r31 = 0; + var_r30 = 0; + for (;var_r31 < 4; var_r31++) { + if (sp8[var_r31] >= var_r28) { + var_r22 = GWPlayer[var_r31].coin_win; + temp_r23 = var_r22 + 10; + if (_CheckFlag(0x1000CU) == 0) { + GWPlayer[var_r31].coin_win = temp_r23; + } + lbl_1_bss_33A[var_r30++] = GWPlayerCfg[var_r31].character; + var_r25 = lbl_1_bss_34C[var_r31]->data; + var_r25->unkE = 1; + } + } + lbl_1_bss_342 = 0x3C; + lbl_1_bss_34A++; + } + } + break; + case 8: + if (lbl_1_bss_346 == -1) { + if (--lbl_1_bss_342 == 0) { + if (lbl_1_bss_33A[0] == -1) { + lbl_1_bss_346 = MGSeqCreate(3, 2); + HuAudSStreamPlay(4); + } else { + lbl_1_bss_346 = MGSeqCreate(5, 3, lbl_1_bss_33A[0], lbl_1_bss_33A[1], lbl_1_bss_33A[2], lbl_1_bss_33A[3]); + HuAudSStreamPlay(1); + } + lbl_1_bss_346 = -1; + lbl_1_bss_34A++; + lbl_1_bss_342 = 0xD2; + } + } + break; + case 9: + if (--lbl_1_bss_342 == 0) { + WipeCreate(2, 0, 0x3C); + object->func = fn_1_14C0; + } + break; + } + if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { + WipeCreate(2, 0, 0x3C); + object->func = fn_1_14C0; + } +} + +void fn_1_14C0(omObjData* object) { + if (WipeStatGet() == 0) { + CharModelKill(-1); + fn_1_B634(); + fn_1_64DC(); + MGSeqKill(lbl_1_bss_348); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_1524(s16 arg0, char* arg1, f32 arg8, Mtx arg2) { + ModelData* temp_r31; + + temp_r31 = &Hu3DData[arg0]; + if (temp_r31->unk_08 != -1) { + Hu3DMotionExec(arg0, temp_r31->unk_08, arg8, 0); + } + if (temp_r31->unk_0C != -1) { + Hu3DSubMotionExec(arg0); + } + if (temp_r31->hsfData->cenvCnt != 0) { + EnvelopeProc(temp_r31->hsfData); + } + Hu3DModelObjMtxGet(arg0, arg1, arg2); +} + +void fn_1_15D0(omObjData* object) { + Mtx sp20; + Vec sp14; + Vec sp8; + s32 var_r28; + s32 var_r27; + ModelData* var_r29; + f32 temp_f31; + s32 var_r31; + + object->model[0] = var_r31 = Hu3DModelCreateFile(0x2E0000); + Hu3DModelShadowSet(var_r31); + temp_f31 = Hu3DMotionMaxTimeGet(var_r31); + fn_1_1524(var_r31, "oekaki", temp_f31, sp20); + sp14.x = -sp20[0][3]; + sp14.y = -sp20[1][3]; + sp14.z = -sp20[2][3]; + fn_1_6A78(sp20, &sp8); + sp8.x = -(sp8.x - 90.0f); + sp8.y = -(sp8.y - 90.0f); + sp8.z = -(sp8.z - 90.0f); + Hu3DMotionTimeSet(var_r31, 0.0f); + Hu3DMotionSpeedSet(var_r31, 2.0f); + omSetTra(object, sp14.x, sp14.y, sp14.z); + omSetRot(object, sp8.x, sp8.y, sp8.z); + Hu3DModelPosSetV(var_r31, &sp14); + Hu3DModelRotSetV(var_r31, &sp8); + lbl_1_bss_338 = Hu3DAnimCreate(HuDataReadNum(0x2E000A, 0x10000000), var_r31, "dummy"); + var_r28 = 0x57E40; + lbl_1_bss_334 = HuMemDirectMallocNum(HEAP_DATA, var_r28, 0x10000000); + memset(lbl_1_bss_334, 0, var_r28); + (void)var_r28; + memset(&lbl_1_bss_234, 0, 0x100); + var_r31 = fn_1_A2D0(1, 2); + object->model[1] = var_r31; + fn_1_AFC8(var_r31, 0, 0x2E000B, 0x200, 0x200); + fn_1_B864(var_r31, 0.0f, -50.0f, 0.0f); + fn_1_BB4C(var_r31, -90.0f, 0.0f, 0.0f); + fn_1_BC9C(var_r31, 5.0f, 5.0f, 1.0f); + fn_1_C2D0(var_r31, 0, 0); + var_r27 = fn_1_66AC(); + object->model[2] = var_r27; + fn_1_C81C(var_r27, 4); + fn_1_B0B8(var_r31, 1, var_r27); + var_r31 = Hu3DModelCreateFile(0x2E0002); + object->model[3] = var_r31; + Hu3DModelShadowSet(var_r31); + Hu3DMotionSpeedSet(var_r31, 2.0f); + object->func = fn_1_1960; +} + +void fn_1_1960(omObjData* object) { + u32 temp_r29; + AnimData** temp_r3; + + switch (lbl_1_bss_34A) { + case 0: + break; + case 1: + GXDrawDone(); + temp_r3 = fn_1_9734(object->model[2]); + temp_r29 = Hu3DShadowData.unk_02 * Hu3DShadowData.unk_02; + memcpy((*temp_r3)->bmp->data, OSCachedToUncached(Hu3DShadowData.unk_04), temp_r29); + DCStoreRangeNoSync((*temp_r3)->bmp->data, temp_r29); + break; + case 2: + Hu3DModelShadowMapObjSet(object->model[0], "kyanbasu"); + Hu3DModelShadowReset(object->model[0]); + Hu3DModelShadowReset(object->model[3]); + break; + case 3: + case 4: + case 5: + break; + } + return; +} + +void fn_1_1A60(unkStruct3* arg0) { + Mtx sp118; + Mtx spE8; + Vec spB8[4]; + Vec sp88[4]; + GXColor sp68[8] = { + { 0xF0, 0x00, 0x00, 0xFF }, + { 0x00, 0x00, 0xF0, 0xFF }, + { 0xFF, 0x80, 0x80, 0xFF }, + { 0x00, 0xFF, 0x00, 0xFF }, + { 0x80, 0x00, 0xC0, 0xFF }, + { 0x80, 0x40, 0x00, 0xFF }, + { 0xE0, 0xE0, 0x00, 0xFF }, + { 0x00, 0x00, 0x00, 0xFF } + }; + GXColor sp48[8] = { + { 0xFF, 0x60, 0x60, 0xFF }, + { 0x60, 0x60, 0xFF, 0xFF }, + { 0xFF, 0xC0, 0xC0, 0xFF }, + { 0x40, 0xFF, 0x40, 0xFF }, + { 0xC0, 0x40, 0xFF, 0xFF }, + { 0xD0, 0x80, 0x40, 0xFF }, + { 0xFF, 0xFF, 0x20, 0xFF }, + { 0x80, 0x80, 0x80, 0xFF } + }; + GXColor sp38[4] = { + { 0xF0, 0x00, 0x00, 0xFF }, + { 0x00, 0x00, 0xF0, 0xFF }, + { 0xE0, 0xE0, 0x00, 0xFF }, + { 0xFF, 0x80, 0x80, 0xFF } + }; + GXColor sp28[4] = { + { 0xFF, 0x60, 0x60, 0xFF }, + { 0x60, 0x60, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0x20, 0xFF }, + { 0xFF, 0xC0, 0xC0, 0xFF } + }; + Vec sp1C; + s32 sp18; + s16 sp14; + s16 sp12; + s16 sp10; + s16 spE; + s16 spC; + s16 spA; + u8 sp8; + f32 var_f31; + f32 temp_f30; + f32 var_f29; + f32 var_f28; + s32 var_r31; + s16 var_r30; + s32 var_r29; + u8 temp_r28; + s16 var_r27; + s32 temp_r26; + s16 var_r24; + s16 var_r23; + u16* temp_r22; + u8 temp_r21; + AnimBmpData* var_r20; + s16 temp_r19; + s16 temp_r18; + s32 temp_r17; + + sp1C = arg0->unk2C; + temp_f30 = arg0->unk20; + sp8 = arg0->unk1; + temp_r28 = arg0->unk0; + sp14 = 0.5f * (600.0f + sp1C.x); + sp12 = 0.5f * (600.0f + sp1C.z); + var_r20 = fn_1_668C(lbl_1_bss_338); + temp_r22 = (u16*)var_r20->data; + var_r27 = 0x32; + var_r30 = var_r27 >> 1; + spC = 0x96; + spA = 0; + if ((s16)temp_f30 == ((s16)(temp_f30 / 90.0f) * 90)) { + spB8[0].x = -var_r30; + spB8[0].y = -var_r30; + spB8[1].x = -var_r30; + spB8[1].y = var_r30; + spB8[2].x = var_r30; + spB8[2].y = -var_r30; + spB8[3].x = var_r30; + spB8[3].y = var_r30; + spB8[0].z = spB8[1].z = spB8[2].z = spB8[3].z = 0.0f; + } else { + spB8[0].x = var_r27; + spB8[0].y = var_r27; + spB8[1].x = var_r27; + spB8[1].y = -var_r27; + spB8[2].x = -var_r27; + spB8[2].y = var_r27; + spB8[3].x = -var_r27; + spB8[3].y = -var_r27; + spB8[0].z = spB8[1].z = spB8[2].z = spB8[3].z = 0.0f; + for (var_r31 = -1; var_r31 < 2; var_r31+=2) { + for (var_r29 = -1; var_r29 < 2; var_r29+=2) { + MTXRotDeg(sp118, 0x59, temp_f30); + PSMTXTrans(spE8, (var_r30 * var_r31), 0.0f, (var_r30 * var_r29)); + PSMTXConcat(sp118, spE8, spE8); + if ((spB8[0].y > spE8[2][3]) || ((spB8[0].y == spE8[2][3]) && (spB8[0].x > spE8[0][3]))) { + spB8[0].x = spE8[0][3]; + spB8[0].y = spE8[2][3]; + } + if ((spB8[1].x > spE8[0][3]) || (spB8[1].x >= spE8[0][3]) && (spB8[1].y < spE8[2][3])) { + spB8[1].x = spE8[0][3]; + spB8[1].y = spE8[2][3]; + } + if ((spB8[2].x < spE8[0][3]) || (spB8[2].x <= spE8[0][3]) && (spB8[2].y > spE8[2][3])) { + spB8[2].x = spE8[0][3]; + spB8[2].y = spE8[2][3]; + } + if ((spB8[3].y <= spE8[2][3]) || (spB8[3].y <= spE8[2][3]) && (spB8[3].x < spE8[0][3])) { + spB8[3].x = spE8[0][3]; + spB8[3].y = spE8[2][3]; + } + } + } + } + VECSubtract(&spB8[1], &spB8[0], &sp88[0]); + VECSubtract(&spB8[2], &spB8[0], &sp88[1]); + VECSubtract(&spB8[3], &spB8[1], &sp88[2]); + VECSubtract(&spB8[3], &spB8[2], &sp88[3]); + temp_r17 = (1.5 * (var_r30 * var_r30)); + for (var_r31 = spB8[0].y; var_r31 < spB8[3].y; var_r31++) { + var_r23 = sp12 + var_r31; + if (var_r23 >= 0 && (!(var_r23 >= 600.0f))) { + temp_r18 = (var_r23 / 150.0f); + if (var_r31 <= spB8[1].y) { + var_f31 = ((var_r31 - spB8[0].y) / sp88[0].y); + var_f29 = var_f31 * sp88[0].x + spB8[0].x; + } else { + var_f31 = ((var_r31 - spB8[1].y) / sp88[2].y); + var_f29 = var_f31 * sp88[2].x + spB8[1].x; + } + if (var_r31 <= spB8[2].y) { + var_f31 = ((var_r31 - spB8[0].y) / sp88[1].y); + var_f28 = var_f31 * sp88[1].x + spB8[0].x; + } else { + var_f31 = ((var_r31 - spB8[2].y) / sp88[3].y); + var_f28 = var_f31 * sp88[3].x + spB8[2].x; + } + + for (var_r29 = var_f29; var_r29 < var_f28; var_r29++) { + var_r24 = sp14 + var_r29; + if (var_r24 >= 0 && (!(var_r24 >= 600.0f))) { + temp_r19 = (var_r24 / 150.0f); + temp_r26 = (600.0f * var_r23 + var_r24); + temp_r21 = lbl_1_bss_334[temp_r26]; + lbl_1_bss_334[temp_r26] = temp_r28 + 1; + sp10 = (var_r24 >> 2); + spE = (var_r23 >> 2); + temp_r26 = ((var_r23 % 4) * 4) + ((sp10 * 0x10) + (var_r24 % 4) + spE * ((spC * 0x10) + (spA * 4))); + sp18 = ((fn_1_679C() / 65536.0f) * (1.0f + ((6.0f * (temp_r17 - ((var_r31 * var_r31) + (var_r29 * var_r29)))) / temp_r17))); + if (sp18 == 0) { + if (temp_r21 != (temp_r28 + 1)) { + temp_r22[temp_r26] = ((sp28[temp_r28].r >> 3) << 10) | ((sp28[temp_r28].g >> 3) << 5) | (sp28[temp_r28].b >> 3) | 0x8000; + } + } else { + temp_r22[temp_r26] = ((sp38[temp_r28].r >> 3) << 10) | ((sp38[temp_r28].g >> 3) << 5) | (sp38[temp_r28].b >> 3) | 0x8000; + } + if (temp_r21 != (temp_r28 + 1)) { + lbl_1_bss_234[temp_r28][temp_r19][temp_r18]++; + if (temp_r21 != 0) { + lbl_1_bss_234[temp_r21 - 1][temp_r19][temp_r18]--; + } + } + } + } + } + } + DCStoreRange(temp_r22, 0xAFC80); +} + +void fn_1_2B18(omObjData* object) { + unkStruct4* var_r31; + + var_r31 = fn_1_63A8(0x14C); + object->data = var_r31; + var_r31->unk148 = var_r31->unk144 = 0.0f; + var_r31->unk140 = 1.0f; + var_r31->unk10.x = var_r31->unk28.x = -55.0f; + var_r31->unk10.y = var_r31->unk28.y = 0.0f; + var_r31->unk10.z = var_r31->unk28.z = 0.0f; + var_r31->unk4.x = var_r31->unk1C.x = 0.0f; + var_r31->unk4.y = var_r31->unk1C.y = 200.0f; + var_r31->unk4.z = var_r31->unk1C.z = 200.0f; + var_r31->unk130 = var_r31->unk134 = 1500.0f; + object->func = fn_1_2C14; +} + +void fn_1_2C14(omObjData* object) { + f32 temp_f31; + unkStruct4* temp_r31; + + temp_r31 = (unkStruct4*)object->data; + if (temp_r31->unk148 > 0.0f) { + temp_r31->unk148 -= temp_r31->unk140; + temp_f31 = ((temp_r31->unk144 - temp_r31->unk148) / temp_r31->unk144); + temp_f31 = sind(90.0f * temp_f31); + if (temp_r31->unk0 == 0) { + temp_r31->unk4.x = (temp_r31->unk1C.x + (temp_f31 * (temp_r31->unk34.x - temp_r31->unk1C.x))); + temp_r31->unk4.y = (temp_r31->unk1C.y + (temp_f31 * (temp_r31->unk34.y - temp_r31->unk1C.y))); + temp_r31->unk4.z = (temp_r31->unk1C.z + (temp_f31 * (temp_r31->unk34.z - temp_r31->unk1C.z))); + temp_r31->unk10.x = (temp_r31->unk28.x + (temp_f31 * (temp_r31->unk40.x - temp_r31->unk28.x))); + temp_r31->unk10.y = (temp_r31->unk28.y + (temp_f31 * (temp_r31->unk40.y - temp_r31->unk28.y))); + temp_r31->unk10.z = (temp_r31->unk28.z + (temp_f31 * (temp_r31->unk40.z - temp_r31->unk28.z))); + temp_r31->unk130 = (temp_r31->unk134 + (temp_f31 * (temp_r31->unk138 - temp_r31->unk134))); + } else { + fn_1_7A54(2.0f * temp_f31, &temp_r31->unk4, temp_r31->unkF4, temp_r31->unk64, temp_r31->unk88, 3); + fn_1_7A54(2.0f * temp_f31, &temp_r31->unk10, temp_r31->unk100, temp_r31->unkAC, temp_r31->unkD0, 3); + temp_r31->unk130 = fn_1_7520(2.0f * temp_f31, temp_r31->unk124, temp_r31->unk10C, temp_r31->unk118, 3); + } + } + CRot.x = temp_r31->unk10.x; + CRot.y = temp_r31->unk10.y; + CRot.z = temp_r31->unk10.z; + Center.x = temp_r31->unk4.x; + Center.y = temp_r31->unk4.y; + Center.z = temp_r31->unk4.z; + CZoom = temp_r31->unk130; +} + +void fn_1_2E88(f32 arg0, Vec* arg1, Vec* arg2, f32 arg3) { + unkStruct4* temp_r31; + + temp_r31 = lbl_1_bss_360->data; + temp_r31->unk0 = 0; + temp_r31->unk144 = arg0; + temp_r31->unk148 = arg0; + temp_r31->unk1C = temp_r31->unk4; + temp_r31->unk34.x = arg1->x; + temp_r31->unk34.y = arg1->y; + temp_r31->unk34.z = arg1->z; + temp_r31->unk28 = temp_r31->unk10; + temp_r31->unk40.x = arg2->x; + temp_r31->unk40.y = arg2->y; + temp_r31->unk40.z = arg2->z; + temp_r31->unk134 = temp_r31->unk130; + temp_r31->unk138 = arg3; +} + +void fn_1_2F28(f32 arg8, Vec* arg0, Vec* arg1, f32 arg9, Vec* arg2, Vec* arg3, f32 argA) { + unkStruct4* temp_r31; + + temp_r31 = lbl_1_bss_360->data; + temp_r31->unk0 = 1; + temp_r31->unk148 = temp_r31->unk144 = arg8; + temp_r31->unk1C = temp_r31->unk4; + temp_r31->unk34.x = arg0->x; + temp_r31->unk34.y = arg0->y; + temp_r31->unk34.z = arg0->z; + temp_r31->unk4C.x = arg2->x; + temp_r31->unk4C.y = arg2->y; + temp_r31->unk4C.z = arg2->z; + temp_r31->unk28 = temp_r31->unk10; + temp_r31->unk40.x = arg1->x; + temp_r31->unk40.y = arg1->y; + temp_r31->unk40.z = arg1->z; + temp_r31->unk58.x = arg3->x; + temp_r31->unk58.y = arg3->y; + temp_r31->unk58.z = arg3->z; + temp_r31->unk134 = temp_r31->unk130; + temp_r31->unk138 = arg9; + temp_r31->unk13C = argA; + temp_r31->unk64[0] = temp_r31->unk1C; + temp_r31->unk64[1] = temp_r31->unk4C; + temp_r31->unk64[2] = temp_r31->unk34; + temp_r31->unkAC[0] = temp_r31->unk28; + temp_r31->unkAC[1] = temp_r31->unk58; + temp_r31->unkAC[2] = temp_r31->unk40; + temp_r31->unk10C[0] = temp_r31->unk134; + temp_r31->unk10C[1] = temp_r31->unk13C; + temp_r31->unk10C[2] = temp_r31->unk138; + temp_r31->unk124[0] = 0.0f; + temp_r31->unk124[1] = ABS(temp_r31->unk10C[1] - temp_r31->unk10C[0]); + temp_r31->unk124[2] = (temp_r31->unk124[1] + ABS(temp_r31->unk10C[2] - temp_r31->unk10C[1])); + fn_1_7674(temp_r31->unkF4, temp_r31->unk64, temp_r31->unk88, 3); + fn_1_7674(temp_r31->unk100, temp_r31->unkAC, temp_r31->unkD0, 3); + fn_1_7268(temp_r31->unk124, temp_r31->unk10C, temp_r31->unk118, 3); +} + +void fn_1_31E0(f32 arg8) { + unkStruct4* data; + + data = (unkStruct4*)lbl_1_bss_360->data; + data->unk140 = arg8; +} + +s32 lbl_1_data_80[10] = { + 0, 3, 5, 6, + 0x2E0012, 0x2E001A, 0x2E0022, 0x2E001A, + 0x17, 0x72 +}; + +Vec lbl_1_data_A8[4] = { + { -200.0f, 1600.0f, -200.0f }, + { 200.0f, 1600.0f, -200.0f }, + { -200.0f, 1600.0f, 200.0f }, + { 200.0f, 1600.0f, 200.0f } +}; + +void fn_1_3208(omObjData* object) { + s32 var_r29; + s32 var_r28; + u32 temp_r27; + unkStruct3* var_r31; + + object->data = var_r31 = fn_1_63A8(0xA0); + var_r31->unk0 = object->work[0]; + var_r31->unk1 = GWPlayerCfg[var_r31->unk0].character; + var_r31->unk2 = (var_r31->unk0 >> 1); + var_r31->unk3 = (var_r31->unk0 & 1); + var_r31->unk4 = GWPlayerCfg[var_r31->unk0].pad_idx; + var_r31->unk5 = GWPlayerCfg[var_r31->unk0].iscom; + var_r31->unk6 = GWPlayerCfg[var_r31->unk0].diff; + var_r31->unk18 = var_r31->unk1A = 4; + var_r31->unk7 = 1; + var_r31->unkC = 1; + var_r31->unkD = 0; + var_r31->unkA = 0; + var_r31->unk5D = 0; + var_r31->unk5C = 0; + var_r31->unkE = 0; + + temp_r27 = object->work[1]; + var_r31->unk2C.x = lbl_1_data_A8[temp_r27].x; + var_r31->unk2C.y = lbl_1_data_A8[temp_r27].y + (400.0f * ((fn_1_679C() - 0x8000) / 32768.0f)); + var_r31->unk2C.z = lbl_1_data_A8[temp_r27].z; + var_r31->unk44.x = var_r31->unk44.y = var_r31->unk44.z = 0.0f; + var_r31->unk38.x = var_r31->unk38.y = var_r31->unk38.z = 0.0f; + var_r31->unk20 = var_r31->unk38.y; + var_r31->unk24 = 0.0f; + var_r31->unk1C = 0.0f; + var_r31->unk28 = 1.0f; + memset(&var_r31->unk60, 0, 0x40); + var_r29 = CharModelCreate(var_r31->unk1, 4); + object->model[0] = var_r29; + Hu3DModelAttrSet(var_r29, 0x40000001); + Hu3DModelShadowSet(var_r29); + + for (var_r28 = 0; var_r28 < 10; var_r28++) { + if ((lbl_1_data_80[var_r28] & 0xFFFF0000) != 0) { + object->motion[var_r28] = CharModelMotionCreate(var_r31->unk1, var_r31->unk1 + lbl_1_data_80[var_r28]); + } else { + object->motion[var_r28] = CharModelMotionCreate(var_r31->unk1, lbl_1_data_80[var_r28]); + } + } + CharModelMotionDataClose(var_r31->unk1); + CharModelMotionSet(var_r31->unk1, object->motion[var_r31->unk18]); + CharModelStepTypeSet(var_r31->unk1, 1); + CharModelVoiceEnableSet(var_r31->unk1, object->motion[2], 0); + object->model[2] = var_r29 = Hu3DModelCreateFile(var_r31->unk0 + 0x2E0003); + object->model[3] = Hu3DJointMotion(var_r29, HuDataSelHeapReadNum(0x2E0007, 0x10000000, HEAP_DATA)); + object->model[4] = Hu3DJointMotion(var_r29, HuDataSelHeapReadNum(0x2E0008, 0x10000000, HEAP_DATA)); + object->model[5] = Hu3DJointMotion(var_r29, HuDataSelHeapReadNum(0x2E0009, 0x10000000, HEAP_DATA)); + Hu3DModelPosSet(var_r29, var_r31->unk2C.x, var_r31->unk2C.y, var_r31->unk2C.z); + Hu3DModelHookSet(var_r29, "stamp00", object->model[0]); + Hu3DMotionSet(object->model[2], object->model[4]); + Hu3DModelShadowSet(var_r29); + object->func = fn_1_3640; +} + +void fn_1_3640(omObjData* object) { + s32 sp8; + unkStruct3* temp_r31; + + sp8 = object->model[0]; + temp_r31 = (unkStruct3*)object->data; + + temp_r31->unk10 = temp_r31->unk12 = 0; + temp_r31->unk14 = temp_r31->unk16 = 0; + switch (lbl_1_bss_34A) { + case 1: + break; + case 2: + if (lbl_1_bss_342 == 0) { + temp_r31->unk18 = 6; + temp_r31->unk44.y = 0.0f; + temp_r31->unkC = 0; + } + break; + case 4: + object->func = fn_1_3764; + break; + } + if (temp_r31->unk2C.y < 0.0f) { + omVibrate(temp_r31->unk0, 0xC, 6, 6); + HuAudFXPlay(0x5B0); + temp_r31->unk2C.y = 0.0f; + temp_r31->unkC = 1; + } + fn_1_3B44(object); +} + +void fn_1_3764(omObjData* object) { + s32 spC; + s32 sp8; + unkStruct3* temp_r31; + + spC = object->model[0]; + temp_r31 = (unkStruct3*)object->data; + if (temp_r31->unk7 != 0) { + if ((lbl_1_bss_34A == 5) && ((temp_r31->unk7 & 2) == 0)) { + if (temp_r31->unk5 != 0) { + fn_1_4660(object); + } else { + temp_r31->unk10 = HuPadStkX[temp_r31->unk4]; + temp_r31->unk12 = HuPadStkY[temp_r31->unk4]; + temp_r31->unk14 = HuPadBtnDown[temp_r31->unk4]; + temp_r31->unk16 = HuPadBtn[temp_r31->unk4]; + } + } else { + temp_r31->unk10 = temp_r31->unk12 = 0; + temp_r31->unk14 = temp_r31->unk16 = 0; + } + switch (lbl_1_bss_34A) { + case 4: + case 5: + break; + case 6: + if ((Hu3DModelAttrGet(object->model[2]) & 1) == 0) { + Hu3DModelHookReset(object->model[2]); + Hu3DModelAttrSet(object->model[2], 1); + omSetTra(object, temp_r31->unk2C.x, temp_r31->unk2C.y, temp_r31->unk2C.z); + omSetRot(object, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); + sp8 = fn_1_A2D0(1, 1); + fn_1_B038(lbl_1_bss_36C.unk36, 0, 0x2E000C); + fn_1_B8D0(lbl_1_bss_36C.unk36, lbl_1_bss_36C.unk38, temp_r31->unk2C.x, 50.0f + temp_r31->unk2C.y, temp_r31->unk2C.z); + fn_1_BD08(lbl_1_bss_36C.unk36, lbl_1_bss_36C.unk38, 3.0f, 3.0f, 1.0f); + fn_1_BE30(lbl_1_bss_36C.unk36, lbl_1_bss_36C.unk38, 0x80000000); + fn_1_C110(lbl_1_bss_36C.unk36, lbl_1_bss_36C.unk38, 0xFF, 0xFF, 0xFF, 0xFF); + fn_1_C410(lbl_1_bss_36C.unk36, lbl_1_bss_36C.unk38, lbl_1_bss_36C.unk3A, 0x11); + fn_1_C58C(lbl_1_bss_36C.unk36, lbl_1_bss_36C.unk38, lbl_1_bss_36C.unk3A, 0.5f); + if (temp_r31->unkC != 0) { + temp_r31->unkC = 0; + temp_r31->unkB = 1; + temp_r31->unk44.y = 26.766666f; + } + temp_r31->unk18 = 2; + temp_r31->unk2C.y += 100.65; + } + break; + case 7: + temp_r31->unk20 = fn_1_67F0(temp_r31->unk20, 0.0f, 0.9f); + break; + case 9: + if (temp_r31->unkE != 0) { + temp_r31->unk18 = 8; + } else { + temp_r31->unk18 = 9; + } + break; + } + if (temp_r31->unk2C.y <= 0.0f) { + temp_r31->unk2C.y = 0.0f; + temp_r31->unkC = 1; + } + fn_1_3B44(object); + } +} + +void fn_1_3B44(omObjData* object) { + s16 sp8; + unkStruct3* temp_r31; + s16 var_r29; + s16 var_r28; + s16 temp_r27; + s16 temp_r26; + s16 var_r25; + s16 temp_r24; + s32 temp_r23; + s32 var_r22; + + var_r25 = 0; + temp_r23 = object->model[0]; + temp_r31 = (unkStruct3*)object->data; + temp_r27 = temp_r31->unk10; + temp_r26 = temp_r31->unk12; + sp8 = temp_r31->unk14; + temp_r24 = temp_r31->unk16; + temp_r31->unk50 = temp_r31->unk2C; + var_r29 = temp_r31->unk18; + var_r28 = 0; + switch (temp_r31->unk18) { + case 0: + var_r28 = 1; + break; + case 1: + if (temp_r31->unk1C > 0.1f) { + var_r29 = 1; + var_r28 = 1; + temp_r31->unk20 = temp_r31->unk38.y; + temp_r31->unk24++; + if (temp_r31->unk24 >= (0.5f * temp_r31->unk28)) { + temp_r31->unk24 -= 0.5f * temp_r31->unk28; + } + temp_r31->unk1C *= 1.0 + (0.25 * cosd(90.0f * (temp_r31->unk24 / (0.5f * temp_r31->unk28)))); + } else { + temp_r31->unk24 = 0.0f; + temp_r31->unk1C = 0.0f; + var_r29 = 0; + var_r28 = 1; + } + break; + case 2: + temp_r31->unk44.y += -2.4333334f; + if (temp_r31->unkC != 0) { + var_r29 = 3; + var_r28 = 0; + temp_r31->unk44.y = 0.0f; + } + break; + case 3: + if (CharModelMotionEndCheck(temp_r31->unk1) != 0) { + var_r29 = 0; + var_r28 = 1; + } + break; + case 4: + temp_r31->unk44.y = -2.4333334f; + if (FABS(temp_r27) + FABS(temp_r26) > 8) { + temp_r31->unk20 = atan2d(temp_r27, -temp_r26); + } + if ((temp_r24 & 0x100) != 0) { + temp_r31->unkB = 0U; + var_r29 = 5; + var_r28 = 0; + var_r25 = 3; + if (FABS(temp_r27) + FABS(temp_r26) > 8) { + temp_r31->unk20 = atan2d(temp_r27, -temp_r26); + temp_r31->unk1C = 6.0f; + } + } + break; + case 5: + if (temp_r31->unkB < 0x20) { + temp_r31->unkB++; + } + if (FABS(temp_r27) + FABS(temp_r26) > 8) { + temp_r31->unk20 = atan2d(temp_r27, -temp_r26); + temp_r31->unk1C = 6.0f; + } else { + temp_r31->unk1C = 0.0f; + } + if ((temp_r24 & 0x100) == 0) { + temp_r31->unk44.y = (2.4333334f * (2.5f + (0.009f * temp_r31->unkB * temp_r31->unkB))); + var_r29 = 6; + var_r28 = 0; + var_r25 = 4; + if (temp_r31->unkB < 0xC) { + HuAudFXPlay(0x5B1); + } else if (temp_r31->unkB < 0x18) { + HuAudFXPlay(0x5B2); + } else { + HuAudFXPlay(0x5B3); + } + } + break; + case 6: + if ((Hu3DMotionEndCheck(object->model[2]) == 0) && (Hu3DMotionShiftIDGet(object->model[2]) >= 0)) { + temp_r31->unkC = 1; + } else { + if (temp_r31->unk44.y >= 0.0f) { + temp_r31->unkC = 0U; + } + temp_r31->unk44.y += -2.4333334f; + if (temp_r31->unkC != 0) { + if ((temp_r24 & 0x100) != 0) { + var_r29 = 4; + var_r28 = 1; + } else { + var_r29 = 7; + var_r28 = 0; + } + temp_r31->unk1C = 0.0f; + temp_r31->unk44.y = 0.0f; + var_r25 = 5; + fn_1_1A60(temp_r31); + var_r22 = fn_1_A2D0(0x28, 1); + fn_1_B038(var_r22, 0, 0x2E000D); + lbl_1_bss_36C.unk40[var_r22].unk30 = &fn_1_5B20; + fn_1_B864(var_r22, temp_r31->unk2C.x, temp_r31->unk2C.y, temp_r31->unk2C.z); + fn_1_C264(var_r22, 1); + } + } + break; + case 7: + if ((temp_r24 & 0x100) != 0) { + var_r29 = 4; + var_r28 = 1; + } else { + if (Hu3DMotionTimeGet(temp_r23) <= 0.0f) { + var_r29 = 4; + var_r28 = 1; + } else { + if ((Hu3DMotionTimeGet(temp_r23) >= 10.0f) && (Hu3DMotionShiftIDGet(temp_r23) < 0)) { + Hu3DModelAttrSet(temp_r23, 0x40000004); + } + } + } + break; + case 8: + case 9: + var_r28 = 0; + temp_r31->unk44.y = -2.4333334f; + break; + } + temp_r31->unk38.y = fn_1_67F0(temp_r31->unk38.y, temp_r31->unk20, 0.75f); + temp_r31->unk44.x = (temp_r31->unk1C * sind(temp_r31->unk20)); + temp_r31->unk44.z = (temp_r31->unk1C * cosd(temp_r31->unk20)); + if ((temp_r31->unkC == 0) || (var_r29 == 1)) { + temp_r31->unk2C.x += temp_r31->unk44.x; + temp_r31->unk2C.y += temp_r31->unk44.y; + temp_r31->unk2C.z += temp_r31->unk44.z; + } + temp_r31->unk18 = var_r29; + if (var_r29 != temp_r31->unk1A) { + temp_r31->unk1A = var_r29; + CharModelMotionShiftSet(temp_r31->unk1, object->motion[temp_r31->unk18], 0.0f, 8.0f, var_r28); + temp_r31->unk28 = CharModelMotionMaxTimeGet(temp_r31->unk1); + if (var_r25 != 0) { + Hu3DMotionShiftSet(object->model[2], object->model[var_r25], 0.0f, 8.0f, 0); + } + } + if ((Hu3DModelAttrGet(object->model[2]) & 1) != 0) { + omSetTra(object, temp_r31->unk2C.x, temp_r31->unk2C.y, temp_r31->unk2C.z); + omSetRot(object, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); + } else { + omSetTra(object, 0.0f, 0.0f, 0.0f); + omSetRot(object, 0.0f, 0.0f, 0.0f); + Hu3DModelPosSet(object->model[2], temp_r31->unk2C.x, temp_r31->unk2C.y, temp_r31->unk2C.z); + Hu3DModelRotSet(object->model[2], temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); + } +} + +void fn_1_4660(omObjData* object) { + s16 sp3C[3][3]; + Vec sp30; + Vec sp24; + Vec sp18; + s32 sp14; + s32 sp10; + s16 spC; + f32 var_f31; + f32 temp_f30; + f32 var_f29; + unkStruct3* temp_r31; + s32 var_r30; + s32 var_r29; + u8 temp_r28; + u8 temp_r27; + s32 var_r26; + s32 var_r25; + s16 var_r24; + s16 var_r23; + unkStruct3* temp_r22; + u8 var_r21; + u8 var_r20; + s16 var_r19; + s16 var_r18; + s16 temp_r17; + + temp_r31 = (unkStruct3*)object->data; + sp14 = object->model[0]; + spC = temp_r31->unk18; + temp_r17 = temp_r31->unk6; + var_r24 = var_r23 = var_r19 = var_r18 = 0; + switch (temp_r31->unk5D) { + case 0: + temp_r28 = ((0.5f * (600.0f + temp_r31->unk2C.x)) / 150.0f); + temp_r27 = ((0.5f * (600.0f + temp_r31->unk2C.z)) / 150.0f); + if (lbl_1_bss_234[temp_r31->unk0][temp_r28][temp_r27] < 16875.0f) { + temp_r31->unk60s = temp_r28; + temp_r31->unk62s = temp_r27; + temp_r31->unk5D++; + } else { + var_r26 = 0x57E4; + for (var_r30 = temp_r28 - 1; var_r30 <= (temp_r28 + 1); var_r30++) { + if ((var_r30 >= 0) && (var_r30 < 4)) { + for (var_r29 = temp_r27 - 1; var_r29 <= (temp_r27 + 1); var_r29++) { + if ((var_r29 >= 0) + && (var_r29 < 4) + && (lbl_1_bss_234[temp_r31->unk0][var_r30][var_r29] <= var_r26) + && ((var_r26 != lbl_1_bss_234[temp_r31->unk0][var_r30][var_r29]) + || ((fn_1_679C() & 1) == 0))) { + + var_r21 = var_r30; + var_r20 = var_r29; + var_r26 = lbl_1_bss_234[temp_r31->unk0][var_r30][var_r29]; + } + } + } + } + if (var_r26 < 16875.0f) { + temp_r31->unk60s = var_r21; + temp_r31->unk62s = var_r20; + temp_r31->unk5D++; + } else { + var_r26 = 0x57E4; + for (var_r30 = 0; var_r30 < 4; var_r30++) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (lbl_1_bss_234[temp_r31->unk0][var_r30][var_r29] <= var_r26) { + var_r21 = var_r30; + var_r20 = var_r29; + var_r26 = lbl_1_bss_234[temp_r31->unk0][var_r30][var_r29]; + } + } + } + temp_r31->unk60s = var_r21; + temp_r31->unk62s = var_r20; + temp_r31->unk5D++; + } + } + break; + case 1: + var_f29 = 360000.0f; + sp18 = temp_r31->unk2C; + sp18.x += 50.0f * sind(temp_r31->unk38.y); + sp18.z += 50.0f * cosd(temp_r31->unk38.y); + + for (var_r30 = 0; var_r30 < 3.0f; var_r30++) { + for (var_r29 = 0; var_r29 < 3.0f; var_r29++) { + sp3C[var_r30][var_r29] = 0; + } + } + + for (var_r30 = 0; var_r30 < 150.0f; var_r30++) { + for (var_r29 = 0; var_r29 < 150.0f; var_r29++) { + sp30.x = (150.0f * temp_r31->unk60s) + var_r30; + sp30.z = (150.0f * temp_r31->unk62s) + var_r29; + sp10 = (sp30.x + (600.0f * sp30.z)); + if ((temp_r31->unk0 + 1) != lbl_1_bss_334[sp10]) { + sp3C[(s16)(var_r30 / 50.0f)][(s16)(var_r29 / 50.0f)]++; + } + } + } + temp_r28 = (((0.5f * (600.0f + temp_r31->unk2C.x)) - (150.0f * temp_r31->unk60s)) / 50.0f); + temp_r27 = (((0.5f * (600.0f + temp_r31->unk2C.x)) - (150.0f * temp_r31->unk62s)) / 50.0f); + var_r25 = 0; + for (var_r30 = temp_r28 - 1; var_r30 <= (temp_r28 + 1); var_r30++) { + if (var_r30 >= 0) { + if (var_r30 >= 3.0f) continue; + for (var_r29 = temp_r27 - 1; var_r29 <= (temp_r27 + 1); var_r29++) { + if (var_r29 >= 0) { + if (var_r29 >= 3.0f) continue; + if (sp3C[var_r30][var_r29] < 1250.0f) continue; + if (sp3C[var_r30][var_r29] < var_r25) continue; + if ((var_r25 != sp3C[var_r30][var_r29]) || ((fn_1_679C() & 1) == 0)) { + var_r25 = sp3C[var_r30][var_r29]; + sp30.x = 25.0f + ((150.0f * temp_r31->unk60s) + (50.0f * var_r30)); + sp30.z = 25.0f + ((150.0f * temp_r31->unk62s) + (50.0f * var_r29)); + sp30.x = (2.0f * sp30.x) - 600.0f; + sp30.z = (2.0f * sp30.z) - 600.0f; + sp30.y = 0.0f; + temp_r31->unk6C.x = sp30.x; + temp_r31->unk6C.y = sp30.y; + temp_r31->unk6C.z = sp30.z; + } + } + } + } + } + if (var_r25 == 0) { + var_r25 = 0; + + for (var_r30 = 0; var_r30 < 3.0f; var_r30++) { + for (var_r29 = 0; var_r29 < 3.0f; var_r29++) { + if (sp3C[var_r30][var_r29] >= var_r25) { + sp30.x = 25.0f + ((150.0f * temp_r31->unk60s) + (50.0f * var_r30)); + sp30.z = 25.0f + ((150.0f * temp_r31->unk62s) + (50.0f * var_r29)); + sp30.x = (2.0f * sp30.x) - 600.0f; + sp30.z = (2.0f * sp30.z) - 600.0f; + sp30.y = 0.0f; + VECSubtract(&sp18, &sp30, &sp24); + temp_f30 = VECMag(&sp24); + if ((var_r25 != sp3C[var_r30][var_r29]) || !(temp_f30 > var_f29)) { + if (!(temp_f30 > var_f29) || !(sp3C[var_r30][var_r29] < (1.5f * var_r25))) { + temp_r31->unk6C.x = sp30.x; + temp_r31->unk6C.y = sp30.y; + temp_r31->unk6C.z = sp30.z; + var_r25 = sp3C[var_r30][var_r29]; + var_f29 = temp_f30; + } + } + } + } + } + } + temp_r31->unk64 = (1.0f + ((5 - temp_r17) * (fn_1_679C() / 65536.0f))); + temp_r31->unk68 = (1.0f + ((0x32 - (temp_r17 * 0x10)) * (fn_1_679C() / 65536.0f))); + temp_r31->unk5D++; + break; + case 2: + if (--temp_r31->unk68 == 0) { + VECSubtract(&temp_r31->unk6C, &temp_r31->unk2C, &sp24); + VECNormalize(&sp24, &sp24); + var_r24 = (32.0f * sp24.x); + var_r23 = (32.0f * -sp24.z); + var_r19 = var_r18 = 0x100; + temp_r31->unk66 = 0x18 + (s32)(((20 - (temp_r17 * 6)) * ((fn_1_679C() - 0x8000) / 32768.0f))); + temp_r31->unk5D++; + } + break; + case 3: + var_r24 = temp_r31->unk10; + var_r23 = temp_r31->unk12; + var_r19 = var_r18 = 0x100; + if (--temp_r31->unk66 == 0) { + temp_r31->unk5D++; + } + break; + case 4: + if (spC != 7) { + var_r24 = temp_r31->unk10; + var_r23 = temp_r31->unk12; + } else { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + temp_r22 = lbl_1_bss_34C[var_r30]->data; + if (temp_r22 == temp_r31) continue; + temp_r28 = ((0.5f * (600.0f + temp_r22->unk2C.x)) / 150.0f); + temp_r27 = ((0.5f * (600.0f + temp_r22->unk2C.z)) / 150.0f); + if (temp_r31->unk60s == temp_r28 && temp_r31->unk62s == temp_r27) break; + } + if (var_r30 != 4) { + var_r26 = 0x57E4; + for (var_r30 = 0; var_r30 < 4; var_r30++) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if ((lbl_1_bss_234[temp_r31->unk0][var_r30][var_r29] <= var_r26) && ((temp_r31->unk60s != var_r30) || (temp_r31->unk62s != var_r29))) { + var_r21 = var_r30; + var_r20 = var_r29; + var_r26 = lbl_1_bss_234[temp_r31->unk0][var_r30][var_r29]; + } + } + } + temp_r31->unk60s = var_r21; + temp_r31->unk62s = var_r20; + temp_r31->unk5D = 1; + } else { + var_r24 = (32.0 * sind(temp_r31->unk38.y)); + var_r23 = (32.0 * -cosd(temp_r31->unk38.y)); + var_f31 = 517.5f; + if ((temp_r31->unk2C.x > var_f31) || (temp_r31->unk2C.x < -var_f31)) { + var_r24 = -var_r24; + } + var_f31 = 517.5f; + if ((temp_r31->unk2C.z > var_f31) || (temp_r31->unk2C.z < -var_f31)) { + var_r23 = -var_r23; + } + if (--temp_r31->unk64 != 0) { + var_r19 = var_r18 = 0x100; + temp_r31->unk66 = 0x18 + (s32)(((20 - (temp_r17 * 6)) * ((fn_1_679C() - 0x8000) / 32768.0f))); + temp_r31->unk5D = 3; + } else { + temp_r28 = temp_r31->unk60s; + temp_r27 = temp_r31->unk62s; + if (lbl_1_bss_234[temp_r31->unk0][temp_r28][temp_r27] > 16875.0f) { + temp_r31->unk5D = 0; + } else { + temp_r31->unk5D = 1; + } + } + } + } + break; + } + temp_r31->unk10 = var_r24; + temp_r31->unk12 = var_r23; + temp_r31->unk14 = var_r19; + temp_r31->unk16 = var_r18; +} + +void fn_1_5B20(unkSubStruct2* arg0) { + s16 sp8; + f32 temp_f31; + f32 temp_f30; + f32 temp_f29; + f32 temp_f28; + s32 var_r29; + unkSubStruct* var_r31; + + sp8 = 0; + switch (arg0->unk60) { + case 0: + temp_f28 = 360.0f / arg0->unk2; + var_r31 = arg0->unk3C; + for (var_r29 = 0; var_r29 < arg0->unk2; var_r29++, var_r31++) { + var_r31->unk68.x = sind(temp_f28 * var_r29) * (0.5f + (0.1f * (1.2f * ((fn_1_679C() - 0x8000) / 32768.0f)))); + var_r31->unk68.y = 0.0f; + var_r31->unk68.z = cosd(temp_f28 * var_r29) * (0.5f + (0.1f * (1.2f * ((fn_1_679C() - 0x8000) / 32768.0f)))); + var_r31->unk0.x = 65.0f * var_r31->unk68.x; + var_r31->unk0.y = 6.0f; + var_r31->unk0.z = 65.0f * var_r31->unk68.z; + } + arg0->unk7C = 30; + arg0->unk60++; + case 1: + arg0->unk7C--; + temp_f31 = (30.0f - arg0->unk7C) / 30.0f; + temp_f29 = arg0->unk7C / 30.0f; + var_r31 = arg0->unk3C; + for (var_r29 = 0; var_r29 < arg0->unk2; var_r29++, var_r31++) { + var_r31->unk0.x += 5.0f * temp_f29 * var_r31->unk68.x; + var_r31->unk0.z += 5.0f * temp_f29 * var_r31->unk68.z; + temp_f30 = 0.4f + (1.2f * temp_f31); + var_r31->unk18.x = temp_f30; + var_r31->unk18.y = temp_f30; + var_r31->unk18.z = temp_f30; + var_r31->unk50.r = 0xFF; + var_r31->unk50.g = 0xFF; + var_r31->unk50.b = 0xFF; + var_r31->unk50.a = 96.0f * (1.0f - (temp_f31 * temp_f31)); + } + if (arg0->unk7C == 0) { + arg0->unk60++; + } + break; + case 2: + fn_1_A800(arg0->unk0); + return; + } +} + +void fn_1_5FB0(omObjData* arg0) { + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + f32 temp_f31; + f32 var_f30; + f32 temp_f29; + f32 var_f28; + f32 temp_f27; + s32 var_r29; + unkStruct3* temp_r30; + unkStruct3* temp_r31; + + temp_r31 = (unkStruct3*)arg0->data; + if (temp_r31->unk7 != 0) { + VECSubtract(&temp_r31->unk2C, &temp_r31->unk50, &sp2C); + var_f28 = VECMag(&sp2C); + if (var_f28 != 0.0f) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r29 != temp_r31->unk0) { + temp_r30 = (unkStruct3*)lbl_1_bss_34C[var_r29]->data; + if (temp_r30->unk7 != 0) { + sp14.x = temp_r31->unk2C.x; + sp14.y = temp_r31->unk2C.y; + sp14.z = temp_r31->unk2C.z; + sp14.y = 0.0f; + sp8.x = temp_r30->unk2C.x; + sp8.y = temp_r30->unk2C.y; + sp8.z = temp_r30->unk2C.z; + sp8.y = 0.0f; + VECSubtract(&sp14, &sp8, &sp2C); + temp_f31 = VECMag(&sp2C); + if (temp_f31 >= 109.45f) continue; + VECSubtract(&temp_r30->unk2C, &temp_r30->unk50, &sp2C); + temp_f27 = VECMag(&sp2C); + VECSubtract(&sp14, &sp8, &sp20); + VECNormalize(&sp20, &sp20); + temp_f31 = 110.0f - temp_f31; + temp_f29 = ((0.6f * temp_f27) + (0.4f * var_f28)) / (var_f28 + temp_f27); + temp_r31->unk2C.x += temp_f29 * (temp_f31 * sp20.x); + temp_r31->unk2C.y += temp_f29 * (temp_f31 * sp20.y); + temp_r31->unk2C.z += temp_f29 * (temp_f31 * sp20.z); + temp_f29 = ((0.6f * var_f28) + (0.4f * var_f28)) / (var_f28 + temp_f27); + temp_r30->unk2C.x += temp_f29 * (temp_f31 * -sp20.x); + temp_r30->unk2C.y += temp_f29 * (temp_f31 * -sp20.y); + temp_r30->unk2C.z += temp_f29 * (temp_f31 * -sp20.z); + fn_1_5FB0(lbl_1_bss_34C[var_r29]); + } + } + } + var_f30 = 555.0f; + if (temp_r31->unk2C.x > var_f30) { + temp_r31->unk2C.x = var_f30; + } + if (temp_r31->unk2C.x < -var_f30) { + temp_r31->unk2C.x = -var_f30; + } + + var_f30 = 555.0f; + if (temp_r31->unk2C.z > var_f30) { + temp_r31->unk2C.z = var_f30; + } + if (temp_r31->unk2C.z < -var_f30) { + temp_r31->unk2C.z = -var_f30; + } + } + } +} + +void fn_1_6304(omObjData* object) { + s32 var_r31; + + if (lbl_1_bss_34A >= 5) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_5FB0(lbl_1_bss_34C[var_r31]); + } + } +} + +void fn_1_6368(void) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x80; var_r31++) { + lbl_1_bss_34[var_r31] = NULL; + } +} + +void* fn_1_63A8(s32 arg0) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x80; var_r31++) { + if (!lbl_1_bss_34[var_r31]) break; + } + if (var_r31 == 0x80) { + return NULL; + } + lbl_1_bss_34[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, arg0, 0x10000000); + return lbl_1_bss_34[var_r31]; +} + +void fn_1_6448(void* arg0) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x80; var_r31++) { + if (lbl_1_bss_34[var_r31] == arg0) break; + } + if (var_r31 != 0x80) { + HuMemDirectFree(lbl_1_bss_34[var_r31]); + lbl_1_bss_34[var_r31] = NULL; + } +} + +void fn_1_64DC(void) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x80; var_r31++) { + if (lbl_1_bss_34[var_r31]) { + OSReport("adr %x\n", lbl_1_bss_34[var_r31]); + HuMemDirectFree(lbl_1_bss_34[var_r31]); + lbl_1_bss_34[var_r31] = NULL; + } + } +} + +void fn_1_6584(s16 arg0, char* arg1, u8 arg2, u8 arg3, u8 arg4) { + char sp13[0x100]; + HsfObject* var_r31; + HsfMaterial* temp_r30; + HsfData* temp_r29; + HsfBuffer* temp_r28; + HsfObject* var_r26; + s32 var_r25; + s32 var_r27; + + temp_r29 = Hu3DData[arg0].hsfData; + var_r26 = temp_r29->object; + strcpy(&sp13, MakeObjectName(arg1)); + + for (var_r25 = 0; var_r25 < temp_r29->objectCnt; var_r25++, var_r26++) { + var_r31 = var_r26; + temp_r28 = var_r31->data.face; + if (var_r31->constData && strcmp(&sp13, var_r31->name) == 0) { + + for (var_r27 = 0; var_r27 < temp_r28->count; var_r27++) { + temp_r30 = &var_r31->data.material[((HsfFace*)temp_r28->data)[var_r27].mat & 0xFFF]; + temp_r30->color[0] = arg2; + temp_r30->color[1] = arg3; + temp_r30->color[2] = arg4; + } + return; + } + } +} + +AnimBmpData* fn_1_668C(s16 arg0) { + return Hu3DTexAnimData[arg0].unk10->bmp; +} + +s16 fn_1_66AC(void) { + AnimBmpData* temp_r31; + s32 var_r30; + AnimData** var_r29; + s32 var_r28; + + var_r30 = fn_1_A94C(0xFFFF0000, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02); + fn_1_ACF4(var_r30, 7, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02); + var_r29 = fn_1_9734(var_r30); + temp_r31 = (*var_r29)->bmp; + var_r28 = temp_r31->sizeX * temp_r31->sizeY; + memcpy(temp_r31->data, Hu3DShadowData.unk_04, var_r28); + return var_r30; +} + +u32 lbl_1_data_110 = 0x41C64E6D; + +s32 fn_1_679C(void) { + lbl_1_data_110 *= 0x41C64E6D; + lbl_1_data_110 += 0x3039; + return lbl_1_data_110 >> 0x10; +} + +f32 fn_1_67F0(f32 arg0, f32 arg1, f32 arg2) { + f32 var_f31; + + if (arg0 > 180.0f) { + arg0 -= 360.0f; + } else if (arg0 <= -180.0f) { + arg0 += 360.0f; + } + if (arg1 > 180.0f) { + arg1 -= 360.0f; + } else if (arg1 <= -180.0f) { + arg1 += 360.0f; + } + var_f31 = arg0 - arg1; + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } else if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } + arg0 = arg1 + (var_f31 * arg2); + if (arg0 > 180.0f) { + return arg0 - 360.0f; + } + if (arg0 <= -180.0f) { + arg0 += 360.0f; + } + return arg0; +} + +void fn_1_6958(Mtx arg0, f32 arg8, f32 arg9, f32 argA) { + Mtx sp38; + Mtx sp8; + + if (argA != 0.0f) { + MTXRotDeg(arg0, 0x5A, argA); + } else { + PSMTXIdentity(arg0); + } + if (arg8 != 0.0f) { + MTXRotDeg(sp38, 0x58, arg8); + PSMTXConcat(sp38, arg0, arg0); + } + if (arg9 != 0.0f) { + MTXRotDeg(sp8, 0x59, arg9); + PSMTXConcat(sp8, arg0, arg0); + } +} + +void fn_1_6A78(Mtx arg0, Vec* arg1) { + f32 temp_f29; + f32 var_f28; + + arg1->x = atan2d(arg0[2][2], arg0[1][2]); + arg1->z = atan2d(arg0[0][0], arg0[0][1]); + temp_f29 = -arg0[0][2]; + var_f28 = sqrtf(ABS(1.0 - (temp_f29 * temp_f29))); + if ((arg1->x > 90.0f) && (arg1->x < 270.0f) && (arg1->z > 90.0f) && (arg1->z < 270.0f)) { + arg1->x = fmod((180.0f + arg1->x), 360.0); + arg1->z = fmod((180.0f + arg1->z), 360.0); + var_f28 = -var_f28; + } + arg1->y = atan2d(var_f28, temp_f29); +} + +f32 fn_1_6D84(f32 arg8, f32 arg9, f32 argA, f32 argB) { + f32 temp_f31; + f32 var_f30; + + temp_f31 = (1.0 - arg8); + var_f30 = (argB * (arg8 * arg8)) + ((arg9 * (temp_f31 * temp_f31)) + (2.0 * (argA * (temp_f31 * arg8)))); + return var_f30; +} + +void fn_1_6DFC(f32* arg0, f32* arg1, f32* arg2, f32* arg3, f32 arg8) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *arg3++ = fn_1_6D84(arg8, *arg0++, *arg1++, *arg2++); + } +} + +f32 fn_1_6F18(f32 arg8, f32 arg9, f32 argA, f32 argB) { + f32 var_f31; + + var_f31 = (2.0 * ((arg8 * argB) + (((arg8 - 1.0) * arg9) + ((1.0 - (2.0 * arg8)) * argA)))); + return var_f31; +} + +void fn_1_6F90(f32* arg0, f32* arg1, f32* arg2, f32* arg3, f32 arg8) { + f32 spC[3]; + f32 var_f29; + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + spC[var_r31] = fn_1_6F18(arg8, *arg0++, *arg1++, *arg2++); + } + var_f29 = sqrtf((spC[2] * spC[2]) + ((spC[0] * spC[0]) + (spC[1] * spC[1]))); + if (var_f29) { + var_f29 = (1.0 / var_f29); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *arg3++ = var_f29 * spC[var_r31]; + } + return; + } + *arg3++ = 0.0f; + *arg3++ = 0.0f; + *arg3++ = 1.0f; +} + +void fn_1_7268(f32* arg0, f32* arg1, f32* arg2, s32 arg3) { + f32 sp48[0x10]; + f32 sp8[0x10]; + f32 temp_f31; + s32 var_r31; + + arg2[0] = 0.0f; + arg2[arg3 - 1] = 0.0f; + + for (var_r31 = 0; var_r31 < arg3 - 1; var_r31++) { + sp48[var_r31] = arg0[var_r31 + 1] - arg0[var_r31]; + if (sp48[var_r31] == 0.0f) { + sp8[var_r31 + 1] = 0.0f; + } else { + sp8[var_r31 + 1] = (arg1[var_r31 + 1] - arg1[var_r31]) / sp48[var_r31]; + } + } + arg2[1] = (sp8[2] - sp8[1]); + sp8[1] = 2.0f * (arg0[2] - arg0[0]); + + for (var_r31 = 1; var_r31 < arg3 - 2; var_r31++) { + temp_f31 = sp48[var_r31] / sp8[var_r31]; + arg2[var_r31 + 1] = ((sp8[var_r31 + 2] - sp8[var_r31 + 1]) - (temp_f31 * (f64)arg2[var_r31])); + sp8[var_r31 + 1] = ((2.0f * (arg0[var_r31 + 2] - arg0[var_r31])) - (temp_f31 * (f64)sp48[var_r31])); + } + + arg2[arg3 - 2] -= sp48[arg3 - 2] * arg2[arg3 - 1]; + + for (var_r31 = arg3 - 2; var_r31 > 0; var_r31--) { + if (0.0f == sp8[var_r31]) { + arg2[var_r31] = 0.0f; + } else { + arg2[var_r31] = (arg2[var_r31] - (sp48[var_r31] * arg2[var_r31 + 1])) / sp8[var_r31]; + } + } +} + +f32 fn_1_7520(f32 arg0, f32* arg1, f32* arg2, f32* arg3, s32 arg4) { + f32 temp_f30; + f32 temp_f31; + f32 var_f29; + s32 temp_r31; + + temp_r31 = (s32)arg0; + arg0 -= temp_r31; + temp_f31 = arg1[temp_r31 + 1] - arg1[temp_r31]; + temp_f30 = temp_f31 * arg0; + var_f29 = arg2[temp_r31] + (temp_f30 * ((temp_f30 * ((3.0f * arg3[temp_r31]) + ((temp_f30 * (arg3[temp_r31 + 1] - arg3[temp_r31])) / temp_f31))) + (((arg2[temp_r31 + 1] - arg2[temp_r31]) / temp_f31) - (temp_f31 * (2.0f * arg3[temp_r31] + arg3[temp_r31 + 1]))))); + if (temp_f31 == 0.0f) { + var_f29 = arg2[temp_r31]; + } + return var_f29; +} + +void fn_1_7674(f32* arg0, Vec* arg1, Vec* arg2, s32 arg3) { + f32 spD4[0x10]; + f32 sp94[0x10]; + f32 sp54[0x10]; + f32 sp14[0x10]; + Vec sp8; + f32 temp_f31; + s32 var_r27; + s32 var_r30; + s32 var_r31; + + arg0[0] = 0.0f; + + for (var_r30 = 1; var_r30 < arg3; var_r30++) { + VECSubtract(&arg1[var_r30], &arg1[var_r30 - 1], &sp8); + arg0[var_r30] = arg0[var_r30 - 1] + VECMag(&sp8); + } + + for (var_r27 = 0; var_r27 < 3; var_r27++) { + for (var_r30 = 0; var_r30 < arg3; var_r30++) { + spD4[var_r30] = ((f32(*)[3])arg1)[var_r30][var_r27]; + } + sp94[0] = 0.0f; + sp94[arg3 - 1] = 0.0f; + + for (var_r31 = 0; var_r31 < (arg3 - 1); var_r31++) { + sp14[var_r31] = arg0[var_r31 + 1] - arg0[var_r31]; + if (sp14[var_r31] == 0.0f) { + sp54[var_r31 + 1] = 0.0f; + } else { + sp54[var_r31 + 1] = (spD4[var_r31 + 1] - spD4[var_r31]) / sp14[var_r31]; + } + } + sp94[1] = sp54[2] - sp54[1]; + sp54[1] = 2.0f * (arg0[2] - arg0[0]); + + for (var_r31 = 1; var_r31 < (arg3 - 2); var_r31++) { + temp_f31 = sp14[var_r31] / sp54[var_r31]; + sp94[var_r31 + 1] = ((sp54[var_r31 + 2] - sp54[var_r31 + 1]) - (temp_f31 * (f64)sp94[var_r31])); + sp54[var_r31 + 1] = ((2.0f * (arg0[var_r31 + 2] - arg0[var_r31])) - (temp_f31 * (f64)sp14[var_r31])); + } + sp94[arg3 - 2] -= sp14[arg3 - 2] * sp94[arg3 - 1]; + for (var_r31 = arg3 - 2; var_r31 > 0; var_r31--) { + if (sp54[var_r31] == 0.0f) { + sp94[var_r31] = 0.0f; + } else { + sp94[var_r31] = (sp94[var_r31] - (sp14[var_r31] * sp94[var_r31 + 1])) / sp54[var_r31]; + } + } + + for (var_r30 = 0; var_r30 < arg3; var_r30++) { + ((f32(*)[3])arg2)[var_r30][var_r27] = sp94[var_r30]; + (void)arg2; + } + } +} + +// https://decomp.me/scratch/QIpaI +// void fn_1_7A54(f32 arg0, Vec* arg1, f32* arg2, Vec* arg3, Vec* arg4, s32 arg5) { +// f32 sp48[0x10]; +// f32 sp8[0x10]; +// f32 temp_f29; +// f32 temp_f31; +// f32 var_f28; +// s32 temp_r31; +// s32 var_r29; +// s32 var_r30; + + +// for (var_r29 = 0; var_r29 < 3; var_r29++) { +// for (var_r30 = 0; var_r30 < arg5; var_r30++) { +// sp48[var_r30] = ((f32(*)[3])arg3)[var_r30][var_r29]; +// sp8[var_r30] = ((f32(*)[3])arg4)[var_r30][var_r29]; +// } + +// ((f32(*)[3])arg1)[0][var_r29] = fn_1_7520(arg0, arg2, sp48, sp8, 0); +// } +// } \ No newline at end of file From afa9c0a4b56abae96eb8dac23ab021cd1732ec7b Mon Sep 17 00:00:00 2001 From: CreateSource Date: Fri, 9 Aug 2024 23:53:58 -0400 Subject: [PATCH 027/311] rename PSVEC to VEC This is the correct name for the Vec functions for Dolphin. This also applies to PSMTX... --- src/REL/bootDll/main.c | 6 +- src/REL/instDll/main.c | 6 +- src/REL/m402Dll/main.c | 6 +- src/REL/m403Dll/main.c | 26 ++--- src/REL/m403Dll/scene.c | 40 ++++---- src/REL/m404Dll/main.c | 2 +- src/REL/m405Dll/main.c | 36 +++---- src/REL/m406Dll/main.c | 16 +-- src/REL/m406Dll/map.c | 80 +++++++-------- src/REL/m406Dll/player.c | 160 ++++++++++++++--------------- src/REL/m409Dll/main.c | 16 +-- src/REL/m410Dll/game.c | 104 +++++++++---------- src/REL/m410Dll/main.c | 12 +-- src/REL/m410Dll/player.c | 6 +- src/REL/m411Dll/main.c | 2 +- src/REL/m412Dll/main.c | 6 +- src/REL/m414Dll/main.c | 2 +- src/REL/m417Dll/player.c | 64 ++++++------ src/REL/m417Dll/sequence.c | 12 +-- src/REL/m417Dll/water.c | 64 ++++++------ src/REL/m426Dll/main.c | 32 +++--- src/REL/m429Dll/main.c | 2 +- src/REL/m438Dll/main.c | 92 ++++++++--------- src/REL/m440Dll/main.c | 24 ++--- src/REL/m441Dll/main.c | 2 +- src/REL/m442Dll/main.c | 82 +++++++-------- src/REL/m444dll/main.c | 6 +- src/REL/m447dll/player.c | 4 +- src/REL/messDll/main.c | 6 +- src/REL/mgmodedll/mgmode.c | 6 +- src/REL/modeltestDll/main.c | 6 +- src/REL/modeltestDll/modeltest00.c | 6 +- src/REL/modeltestDll/modeltest01.c | 2 +- src/REL/modeseldll/main.c | 6 +- src/REL/resultDll/main.c | 6 +- src/REL/w01Dll/main.c | 92 ++++++++--------- src/REL/w01Dll/mg_coin.c | 10 +- src/REL/w01Dll/mg_item.c | 20 ++-- src/REL/w02Dll/roulette.c | 22 ++-- src/REL/w03Dll/condor.c | 22 ++-- src/REL/w03Dll/mg_coin.c | 8 +- src/REL/w03Dll/mg_item.c | 12 +-- src/REL/w03Dll/river.c | 14 +-- src/REL/w03Dll/statue.c | 6 +- src/REL/w04Dll/boo_event.c | 38 +++---- src/REL/w04Dll/bridge.c | 6 +- src/REL/w04Dll/mg_coin.c | 42 ++++---- src/REL/w04Dll/mg_item.c | 30 +++--- src/REL/w05Dll/dolphin.c | 58 +++++------ src/REL/w05Dll/hotel.c | 24 ++--- src/REL/w05Dll/mg_coin.c | 14 +-- src/REL/w05Dll/mg_item.c | 12 +-- src/REL/w05Dll/monkey.c | 40 ++++---- src/REL/w06Dll/bowser.c | 30 +++--- src/REL/w06Dll/bridge.c | 2 +- src/REL/w06Dll/fire.c | 6 +- src/REL/w06Dll/mg_coin.c | 12 +-- src/REL/w06Dll/mg_item.c | 6 +- src/REL/ztardll/main.c | 12 +-- src/game/EnvelopeExec.c | 4 +- src/game/board/boo.c | 6 +- src/game/board/boo_house.c | 8 +- src/game/board/com.c | 2 +- src/game/board/item.c | 58 +++++------ src/game/board/lottery.c | 34 +++--- src/game/board/mg_setup.c | 8 +- src/game/board/mushroom.c | 6 +- src/game/board/pause.c | 4 +- src/game/board/player.c | 14 +-- src/game/board/roll.c | 8 +- src/game/board/shop.c | 8 +- src/game/board/star.c | 6 +- src/game/board/start.c | 4 +- src/game/board/ui.c | 40 ++++---- src/game/board/view.c | 10 +- src/game/chrman.c | 32 +++--- src/game/hsfanim.c | 56 +++++----- src/game/hsfdraw.c | 24 ++--- src/game/hsfex.c | 44 ++++---- src/game/hsfman.c | 20 ++-- src/game/hsfmotion.c | 6 +- src/game/mapspace.c | 48 ++++----- 82 files changed, 968 insertions(+), 968 deletions(-) diff --git a/src/REL/bootDll/main.c b/src/REL/bootDll/main.c index 9e9ccda2..6855ce34 100644 --- a/src/REL/bootDll/main.c +++ b/src/REL/bootDll/main.c @@ -432,15 +432,15 @@ void fn_1_152C(void) { + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); - PSVECCrossProduct(&dir, &offset, &offset); - PSVECNormalize(&offset, &offset); + VECCrossProduct(&dir, &offset, &offset); + VECNormalize(&offset, &offset); stick_pos = (HuPadSubStkX[0] & 0xF8); if (stick_pos != 0) { lbl_1_bss_24[0].x += 0.05f * (offset.x * stick_pos); lbl_1_bss_24[0].y += 0.05f * (offset.y * stick_pos); lbl_1_bss_24[0].z += 0.05f * (offset.z * stick_pos); } - PSVECNormalize(&y_offset, &offset); + VECNormalize(&y_offset, &offset); stick_pos = -(HuPadSubStkY[0] & 0xF8); if (stick_pos != 0) { lbl_1_bss_24[0].x += 0.05f * (offset.x * stick_pos); diff --git a/src/REL/instDll/main.c b/src/REL/instDll/main.c index dfc11906..a57a08af 100644 --- a/src/REL/instDll/main.c +++ b/src/REL/instDll/main.c @@ -1023,15 +1023,15 @@ static void fn_1_4528(omObjData *object) + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); - PSVECCrossProduct(&dir, &offset, &offset); - PSVECNormalize(&offset, &offset); + VECCrossProduct(&dir, &offset, &offset); + VECNormalize(&offset, &offset); stick_pos = (HuPadSubStkX[0] & 0xF8); if (stick_pos != 0) { lbl_1_bss_28[0].x += 0.05f * (offset.x * stick_pos); lbl_1_bss_28[0].y += 0.05f * (offset.y * stick_pos); lbl_1_bss_28[0].z += 0.05f * (offset.z * stick_pos); } - PSVECNormalize(&y_offset, &offset); + VECNormalize(&y_offset, &offset); stick_pos = -(HuPadSubStkY[0] & 0xF8); if (stick_pos != 0) { lbl_1_bss_28[0].x += 0.05f * (offset.x * stick_pos); diff --git a/src/REL/m402Dll/main.c b/src/REL/m402Dll/main.c index cdc19ce8..2373f657 100755 --- a/src/REL/m402Dll/main.c +++ b/src/REL/m402Dll/main.c @@ -778,7 +778,7 @@ static void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { var_r30 = 1; } } - PSVECAdd((Vec*) &arg0, &sp18, (Vec*) &arg0); + VECAdd((Vec*) &arg0, &sp18, (Vec*) &arg0); } #include "src/REL/executor.c" @@ -1501,7 +1501,7 @@ static void fn_1_70E4(omObjData *arg0) { PSMTXIdentity(sp18); mtxRot(sp18, temp_r31->unk24.x, temp_r31->unk24.y, 0.0f); PSMTXMultVec(sp18, &spC, &spC); - PSVECAdd(&spC, &temp_r31->unk00, &temp_r31->unk00); + VECAdd(&spC, &temp_r31->unk00, &temp_r31->unk00); omSetTra(arg0, temp_r31->unk00.x, temp_r31->unk00.y, temp_r31->unk00.z); Hu3DModelTPLvlSet(arg0->model[0], temp_r31->unk30); temp_r31->unk30 -= 0.02f; @@ -1883,7 +1883,7 @@ void ObjectSetup(void) { fn_1_8048(); Hu3DShadowCreate(30.0f, 20.0f, 20000.0f); Hu3DShadowTPLvlSet(0.5f); - PSVECNormalize(&lbl_1_data_60, &sp20); + VECNormalize(&lbl_1_data_60, &sp20); Hu3DShadowPosSet(&lbl_1_data_60, &sp20, &lbl_1_data_6C); omMakeGroupEx(lbl_1_bss_1E8, 0, 4); lbl_1_bss_54 = omGetGroupMemberListEx(lbl_1_bss_1E8, 0); diff --git a/src/REL/m403Dll/main.c b/src/REL/m403Dll/main.c index 3550b015..d40fbf68 100755 --- a/src/REL/m403Dll/main.c +++ b/src/REL/m403Dll/main.c @@ -934,8 +934,8 @@ static void fn_1_2598(omObjData *arg0) { case 4: temp_r24 = fn_1_82D0(&sp38[0]); for (i = 0; i < temp_r24; i++) { - PSVECSubtract(&sp38[i], &temp_r31->unk2C, &sp8); - sp20[i] = PSVECMag(&sp8); + VECSubtract(&sp38[i], &temp_r31->unk2C, &sp8); + sp20[i] = VECMag(&sp8); } for (i = 0; i < temp_r24 - 1; i++) { for (var_r29 = i + 1; var_r29 < temp_r24; var_r29++) { @@ -1127,14 +1127,14 @@ static s32 fn_1_3894(void) { for (j = i + 1; j < 4; j++) { temp_r27 = lbl_1_bss_34[j]->data; if (temp_r27->unk07 != 0) { - PSVECSubtract(&temp_r28->unk2C, &temp_r27->unk2C, &sp8); - var_f31 = PSVECMag(&sp8); + VECSubtract(&temp_r28->unk2C, &temp_r27->unk2C, &sp8); + var_f31 = VECMag(&sp8); if (var_f31 < 80.0f) { - PSVECNormalize(&sp8, &sp8); + VECNormalize(&sp8, &sp8); var_f30 = 0.0001f + 0.5f * (80.0f - var_f31); - PSVECScale(&sp8, &sp8, var_f30); - PSVECAdd(&sp14[i], &sp8, &sp14[i]); - PSVECSubtract(&sp14[j], &sp8, &sp14[j]); + VECScale(&sp8, &sp8, var_f30); + VECAdd(&sp14[i], &sp8, &sp14[i]); + VECSubtract(&sp14[j], &sp8, &sp14[j]); temp_r28->unk0E++; temp_r27->unk0E++; var_r26++; @@ -1147,7 +1147,7 @@ static s32 fn_1_3894(void) { temp_r25 = lbl_1_bss_34[i]; temp_r31 = temp_r25->data; if (temp_r31->unk07 != 0) { - PSVECAdd(&temp_r31->unk2C, &sp14[i], &temp_r31->unk2C); + VECAdd(&temp_r31->unk2C, &sp14[i], &temp_r31->unk2C); if (temp_r31->unk2C.x > 660.0f) { temp_r31->unk2C.x = 660.0f; } @@ -1204,8 +1204,8 @@ static void fn_1_3D6C(Vec *arg0, Vec *arg1) { temp_r30 = fn_1_8470(sp18); var_f31 = 2000.0f; for (i = 0; i < temp_r30; i++) { - PSVECSubtract(&sp18[i], arg0, &spC); - var_f30 = PSVECMag(&spC); + VECSubtract(&sp18[i], arg0, &spC); + var_f30 = VECMag(&spC); if (var_f30 >= var_f31) { continue; } @@ -1489,8 +1489,8 @@ static void fn_1_5400(float *arg0, Vec *arg1, float arg2[][3], s32 arg3) { arg0[0] = 0.0f; for (i = 1; i < arg3; i++) { - PSVECSubtract(&arg1[i], &arg1[i - 1], &sp8); - arg0[i] = arg0[i - 1] + PSVECMag(&sp8); + VECSubtract(&arg1[i], &arg1[i - 1], &sp8); + arg0[i] = arg0[i - 1] + VECMag(&sp8); } for (j = 0; j < 3; j++) { for (i = 0; i < arg3; i++) { diff --git a/src/REL/m403Dll/scene.c b/src/REL/m403Dll/scene.c index dfe0a620..ba268596 100755 --- a/src/REL/m403Dll/scene.c +++ b/src/REL/m403Dll/scene.c @@ -932,7 +932,7 @@ s32 fn_1_86A0(Vec *arg0, Vec *arg1) { if (temp_r28->rot.x > 0.0f || temp_r28->rot.x <= -90.0f) { return 0; } - PSVECSubtract(arg0, &temp_r28->trans, &sp3C); + VECSubtract(arg0, &temp_r28->trans, &sp3C); sp3C.z /= cosd(temp_r28->rot.x); temp_r17 = fn_1_7B20(arg0->x, arg0->z); temp_r24 = fn_1_7C20(temp_r18, temp_r17); @@ -941,50 +941,50 @@ s32 fn_1_86A0(Vec *arg0, Vec *arg1) { } temp_r24 -= 6; sp48 = lbl_1_data_A88[temp_r17]; - PSVECSubtract(&sp3C, &sp48, &sp3C); + VECSubtract(&sp3C, &sp48, &sp3C); temp_r30 = lbl_1_data_B74[temp_r24][0]; temp_r29 = lbl_1_data_B74[temp_r24][1]; temp_r21 = lbl_1_data_BA4[temp_r24]; for (i = 0; i < temp_r21; i++) { temp_r27 = (i + 1) % temp_r21; - PSVECSubtract(&temp_r30[temp_r27], &temp_r30[i], &sp24); - PSVECSubtract(&sp3C, &temp_r30[temp_r27], &sp18); - PSVECCrossProduct(&sp24, &sp18, &spC); + VECSubtract(&temp_r30[temp_r27], &temp_r30[i], &sp24); + VECSubtract(&sp3C, &temp_r30[temp_r27], &sp18); + VECCrossProduct(&sp24, &sp18, &spC); if (spC.y < 0.0f) { continue; } - PSVECSubtract(&temp_r29[temp_r27], &temp_r30[temp_r27], &sp24); - PSVECSubtract(&sp3C, &temp_r29[temp_r27], &sp18); - PSVECCrossProduct(&sp24, &sp18, &spC); + VECSubtract(&temp_r29[temp_r27], &temp_r30[temp_r27], &sp24); + VECSubtract(&sp3C, &temp_r29[temp_r27], &sp18); + VECCrossProduct(&sp24, &sp18, &spC); if (spC.y < 0.0f) { continue; } - PSVECSubtract(&temp_r29[i], &temp_r29[temp_r27], &sp24); - PSVECSubtract(&sp3C, &temp_r29[i], &sp18); - PSVECCrossProduct(&sp24, &sp18, &spC); + VECSubtract(&temp_r29[i], &temp_r29[temp_r27], &sp24); + VECSubtract(&sp3C, &temp_r29[i], &sp18); + VECCrossProduct(&sp24, &sp18, &spC); if (spC.y < 0.0f) { continue; } - PSVECSubtract(&temp_r30[i], &temp_r29[i], &sp24); - PSVECSubtract(&sp3C, &temp_r30[i], &sp18); - PSVECCrossProduct(&sp24, &sp18, &spC); + VECSubtract(&temp_r30[i], &temp_r29[i], &sp24); + VECSubtract(&sp3C, &temp_r30[i], &sp18); + VECCrossProduct(&sp24, &sp18, &spC); if (spC.y < 0.0f) { continue; } - PSVECSubtract(&temp_r30[temp_r27], &temp_r30[i], &sp24); + VECSubtract(&temp_r30[temp_r27], &temp_r30[i], &sp24); temp_f30 = (sp3C.x * sp24.x - sp24.x * temp_r30[i].x + sp3C.y * sp24.y - sp24.y * temp_r30[i].y + sp3C.z * sp24.z - sp24.z * temp_r30[i].z) / (sp24.x * sp24.x + sp24.y * sp24.y + sp24.z * sp24.z); sp30.x = temp_r30[i].x + temp_f30 * sp24.x; sp30.y = temp_r30[i].y + temp_f30 * sp24.y; sp30.z = temp_r30[i].z + temp_f30 * sp24.z; - PSVECSubtract(&sp30, &sp3C, &spC); - temp_f28 = PSVECMag(&spC); - PSVECSubtract(&temp_r29[temp_r27], &temp_r29[i], &sp18); + VECSubtract(&sp30, &sp3C, &spC); + temp_f28 = VECMag(&spC); + VECSubtract(&temp_r29[temp_r27], &temp_r29[i], &sp18); temp_f29 = (sp3C.x * sp18.x - sp18.x * temp_r29[i].x + sp3C.y * sp18.y - sp18.y * temp_r29[i].y + sp3C.z * sp18.z - sp18.z * temp_r29[i].z) / (sp18.x * sp18.x + sp18.y * sp18.y + sp18.z * sp18.z); sp30.x = temp_r29[i].x + temp_f29 * sp18.x; sp30.y = temp_r29[i].y + temp_f29 * sp18.y; sp30.z = temp_r29[i].z + temp_f29 * sp18.z; - PSVECSubtract(&sp30, &sp3C, &spC); - temp_f27 = PSVECMag(&spC); + VECSubtract(&sp30, &sp3C, &spC); + temp_f27 = VECMag(&spC); if (temp_f28 == 0.0f) { var_f31 = temp_f30; } else if (temp_f27 == 0.0f) { diff --git a/src/REL/m404Dll/main.c b/src/REL/m404Dll/main.c index bcfef460..b4f8dcce 100644 --- a/src/REL/m404Dll/main.c +++ b/src/REL/m404Dll/main.c @@ -250,7 +250,7 @@ void ObjectSetup(void) lbl_1_bss_10.x = lbl_1_data_77C.x - lbl_1_data_770.x; lbl_1_bss_10.y = lbl_1_data_77C.y - lbl_1_data_770.y; lbl_1_bss_10.z = lbl_1_data_77C.z - lbl_1_data_770.z; - PSVECNormalize(&lbl_1_bss_10, &lbl_1_bss_10); + VECNormalize(&lbl_1_bss_10, &lbl_1_bss_10); var_r29 = Hu3DGLightCreateV(&lbl_1_data_770, &lbl_1_bss_10, &lbl_1_data_788); Hu3DGLightInfinitytSet(var_r29); Hu3DGLightStaticSet(var_r29, 1); diff --git a/src/REL/m405Dll/main.c b/src/REL/m405Dll/main.c index 1950ce88..fc733b71 100755 --- a/src/REL/m405Dll/main.c +++ b/src/REL/m405Dll/main.c @@ -668,7 +668,7 @@ void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { var_r30 = 1; } } - PSVECAdd((Vec*) &arg0, &sp18, (Vec*) &arg0); + VECAdd((Vec*) &arg0, &sp18, (Vec*) &arg0); } s32 fn_1_23B4(Vec *arg0) { @@ -715,7 +715,7 @@ void fn_1_2508(UnkFn2480Struct *arg0) { var_r30 = arg0->unk30; for (i = 0; i < arg0->unk28; i++, var_r28++, var_r30++) { temp_r29 = &lbl_1_bss_5AC.unk00[*var_r28]; - PSVECSubtract(temp_r29, &arg0->unk0C, &spC); + VECSubtract(temp_r29, &arg0->unk0C, &spC); *var_r30 = VECMagXZ(&spC); if (arg0->unk2D == 0 && arg0->unk0C.z > temp_r29->z) { *var_r30 *= -1.0f; @@ -756,7 +756,7 @@ void fn_1_280C(omObjData *arg0) { var_r26 = lbl_1_bss_5AC.unk04; var_r25 = lbl_1_bss_5AC.unk14; for (i = 0; i < 900; i++) { - PSVECAdd(var_r27, var_r26, var_r25); + VECAdd(var_r27, var_r26, var_r25); var_r27++; var_r26++; var_r25++; @@ -766,23 +766,23 @@ void fn_1_280C(omObjData *arg0) { var_r30 = lbl_1_bss_5AC.unk18; memset(lbl_1_bss_5AC.unk18, 0, 900 * sizeof(*lbl_1_bss_5AC.unk18)); for (i = 0; i < 841; i++) { - PSVECSubtract(&temp_r28[(*var_r31)[1]], &temp_r28[(*var_r31)[0]], &sp2C); - PSVECSubtract(&temp_r28[(*var_r31)[3]], &temp_r28[(*var_r31)[0]], &sp20); - PSVECSubtract(&temp_r28[(*var_r31)[2]], &temp_r28[(*var_r31)[0]], &sp14); - PSVECCrossProduct(&sp2C, &sp20, &sp8); - PSVECNormalize(&sp8, &sp8); - PSVECAdd(&sp8, &var_r30[(*var_r31)[0]], &var_r30[(*var_r31)[0]]); - PSVECAdd(&sp8, &var_r30[(*var_r31)[1]], &var_r30[(*var_r31)[1]]); - PSVECAdd(&sp8, &var_r30[(*var_r31)[3]], &var_r30[(*var_r31)[3]]); - PSVECCrossProduct(&sp20, &sp14, &sp8); - PSVECNormalize(&sp8, &sp8); - PSVECAdd(&sp8, &var_r30[(*var_r31)[0]], &var_r30[(*var_r31)[0]]); - PSVECAdd(&sp8, &var_r30[(*var_r31)[3]], &var_r30[(*var_r31)[3]]); - PSVECAdd(&sp8, &var_r30[(*var_r31)[2]], &var_r30[(*var_r31)[2]]); + VECSubtract(&temp_r28[(*var_r31)[1]], &temp_r28[(*var_r31)[0]], &sp2C); + VECSubtract(&temp_r28[(*var_r31)[3]], &temp_r28[(*var_r31)[0]], &sp20); + VECSubtract(&temp_r28[(*var_r31)[2]], &temp_r28[(*var_r31)[0]], &sp14); + VECCrossProduct(&sp2C, &sp20, &sp8); + VECNormalize(&sp8, &sp8); + VECAdd(&sp8, &var_r30[(*var_r31)[0]], &var_r30[(*var_r31)[0]]); + VECAdd(&sp8, &var_r30[(*var_r31)[1]], &var_r30[(*var_r31)[1]]); + VECAdd(&sp8, &var_r30[(*var_r31)[3]], &var_r30[(*var_r31)[3]]); + VECCrossProduct(&sp20, &sp14, &sp8); + VECNormalize(&sp8, &sp8); + VECAdd(&sp8, &var_r30[(*var_r31)[0]], &var_r30[(*var_r31)[0]]); + VECAdd(&sp8, &var_r30[(*var_r31)[3]], &var_r30[(*var_r31)[3]]); + VECAdd(&sp8, &var_r30[(*var_r31)[2]], &var_r30[(*var_r31)[2]]); var_r31++; } for (i = 0; i < 900; i++, var_r30++) { - PSVECNormalize(var_r30, var_r30); + VECNormalize(var_r30, var_r30); } DCStoreRangeNoSync(lbl_1_bss_5AC.unk14, 900 * sizeof(*lbl_1_bss_5AC.unk14)); DCStoreRangeNoSync(lbl_1_bss_5AC.unk18, 900 * sizeof(*lbl_1_bss_5AC.unk18)); @@ -2410,7 +2410,7 @@ void ObjectSetup(void) { Hu3DGLightInfinitytSet(temp_r29); Hu3DShadowCreate(30.0f, 20.0f, 20000.0f); Hu3DShadowTPLvlSet(0.8f); - PSVECNormalize(&lbl_1_data_170, &sp8); + VECNormalize(&lbl_1_data_170, &sp8); Hu3DShadowPosSet(&lbl_1_data_170, &sp8, &lbl_1_data_17C); lbl_1_bss_90 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M405, 57)); HuSprAnimLock(lbl_1_bss_90); diff --git a/src/REL/m406Dll/main.c b/src/REL/m406Dll/main.c index dcd78522..826eb1a5 100644 --- a/src/REL/m406Dll/main.c +++ b/src/REL/m406Dll/main.c @@ -124,8 +124,8 @@ void ObjectSetup(void) sp14.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x))); sp14.y = Center.y + (CZoom * -sind(CRot.x)); sp14.z = Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x))); - PSVECSubtract(&Center, &sp14, &sp8); - PSVECNormalize(&sp8, &sp8); + VECSubtract(&Center, &sp14, &sp8); + VECNormalize(&sp8, &sp8); HuAudFXListnerSetEX(&sp14, &sp8, 100000.0f, 4166.6665f, 0.0f, 300.0f, 300.0f); Hu3DLightAllKill(); Hu3DLighInit(); @@ -287,8 +287,8 @@ void fn_1_40C(omObjData *object) sp14.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x))); sp14.y = Center.y + (CZoom * -sind(CRot.x)); sp14.z = Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x))); - PSVECSubtract(&Center, &sp14, &sp8); - PSVECNormalize(&sp8, &sp8); + VECSubtract(&Center, &sp14, &sp8); + VECNormalize(&sp8, &sp8); HuAudFXListnerUpdate(&sp14, &sp8); fn_1_6B5C(); fn_1_3064(1); @@ -462,8 +462,8 @@ void fn_1_15D0(float arg8) sp14.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x))); sp14.y = Center.y + (CZoom * -sind(CRot.x)); sp14.z = Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x))); - PSVECSubtract(&Center, &sp14, &sp8); - PSVECNormalize(&sp8, &sp8); + VECSubtract(&Center, &sp14, &sp8); + VECNormalize(&sp8, &sp8); HuAudFXListnerUpdate(&sp14, &sp8); } @@ -482,8 +482,8 @@ void fn_1_183C(float arg8) sp14.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x))); sp14.y = Center.y + (CZoom * -sind(CRot.x)); sp14.z = Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x))); - PSVECSubtract(&Center, &sp14, &sp8); - PSVECNormalize(&sp8, &sp8); + VECSubtract(&Center, &sp14, &sp8); + VECNormalize(&sp8, &sp8); HuAudFXListnerUpdate(&sp14, &sp8); } diff --git a/src/REL/m406Dll/map.c b/src/REL/m406Dll/map.c index 6ad24ea4..ef320c6a 100644 --- a/src/REL/m406Dll/map.c +++ b/src/REL/m406Dll/map.c @@ -1408,17 +1408,17 @@ void fn_1_6174(ModelData *arg0) var_r31 = arg0->unk_120; memset(var_r31->unk_88, 0, var_r31->unk_80 * sizeof(Vec)); for (var_r29 = 0, var_r30 = var_r31->unk_9C; var_r29 < var_r31->unk_98; var_r29++, var_r30++) { - PSVECSubtract(&var_r31->unk_84[(*var_r30)[1]], &var_r31->unk_84[(*var_r30)[0]], &sp14); - PSVECSubtract(&var_r31->unk_84[(*var_r30)[2]], &var_r31->unk_84[(*var_r30)[1]], &sp8); - PSVECCrossProduct(&sp14, &sp8, &sp20); + VECSubtract(&var_r31->unk_84[(*var_r30)[1]], &var_r31->unk_84[(*var_r30)[0]], &sp14); + VECSubtract(&var_r31->unk_84[(*var_r30)[2]], &var_r31->unk_84[(*var_r30)[1]], &sp8); + VECCrossProduct(&sp14, &sp8, &sp20); - PSVECAdd(&var_r31->unk_88[(*var_r30)[0]], &sp20, &var_r31->unk_88[(*var_r30)[0]]); - PSVECAdd(&var_r31->unk_88[(*var_r30)[1]], &sp20, &var_r31->unk_88[(*var_r30)[1]]); - PSVECAdd(&var_r31->unk_88[(*var_r30)[2]], &sp20, &var_r31->unk_88[(*var_r30)[2]]); - PSVECAdd(&var_r31->unk_88[(*var_r30)[3]], &sp20, &var_r31->unk_88[(*var_r30)[3]]); + VECAdd(&var_r31->unk_88[(*var_r30)[0]], &sp20, &var_r31->unk_88[(*var_r30)[0]]); + VECAdd(&var_r31->unk_88[(*var_r30)[1]], &sp20, &var_r31->unk_88[(*var_r30)[1]]); + VECAdd(&var_r31->unk_88[(*var_r30)[2]], &sp20, &var_r31->unk_88[(*var_r30)[2]]); + VECAdd(&var_r31->unk_88[(*var_r30)[3]], &sp20, &var_r31->unk_88[(*var_r30)[3]]); } for (var_r29 = 0, var_r28 = var_r31->unk_88; var_r29 < var_r31->unk_80; var_r29++) { - PSVECNormalize(var_r28, var_r28); + VECNormalize(var_r28, var_r28); } } @@ -1458,9 +1458,9 @@ void fn_1_64F8(UnkM406Struct2 *arg0) for (var_r30 = 0, var_r31 = arg0; var_r30 < lbl_1_bss_B4; var_r30++, var_r31++) { if (var_r30 < lbl_1_bss_B4 - 1) { var_r28 = &arg0[var_r30 + 1]; - PSVECSubtract(&var_r28->unk_14, &var_r31->unk_14, &var_r31->unk_08); - var_r31->unk_00 = PSVECMag(&var_r31->unk_08); - PSVECNormalize(&var_r31->unk_08, &var_r31->unk_08); + VECSubtract(&var_r28->unk_14, &var_r31->unk_14, &var_r31->unk_08); + var_r31->unk_00 = VECMag(&var_r31->unk_08); + VECNormalize(&var_r31->unk_08, &var_r31->unk_08); } else { var_r31->unk_00 = 100000.0f; @@ -1568,10 +1568,10 @@ s32 fn_1_6A44(Vec arg0) } var_r29 = &Hu3DData[lbl_1_data_7A4]; var_r31 = var_r29->unk_120; - PSVECAdd(&var_r31->unk_34, &var_r31->unk_40, &sp8); - PSVECScale(&sp8, &sp8, 0.5f); - PSVECSubtract(&var_r31->unk_34, &sp8, &sp20); - PSVECSubtract(&var_r31->unk_40, &sp8, &sp14); + VECAdd(&var_r31->unk_34, &var_r31->unk_40, &sp8); + VECScale(&sp8, &sp8, 0.5f); + VECSubtract(&var_r31->unk_34, &sp8, &sp20); + VECSubtract(&var_r31->unk_40, &sp8, &sp14); var_f31 = fn_1_D5CC(&sp20, &sp14, arg0.x - sp8.x, arg0.z - sp8.z); if (var_f31 <= 0.0f) { return 0; @@ -2979,27 +2979,27 @@ void fn_1_BC18(ModelData *arg0, float (*arg1)[4]) else if (!var_r29->unk_2C) { var_r27 = &sp98[0]; var_r24 = &sp38[0]; - PSVECScale(var_r24++, var_r27, var_r29->unk_28); - PSVECAdd(var_r27++, &var_r29->unk_30, var_r30++); - PSVECScale(var_r24++, var_r27, var_r29->unk_28); - PSVECAdd(var_r27++, &var_r29->unk_30, var_r30++); - PSVECScale(var_r24++, var_r27, var_r29->unk_28); - PSVECAdd(var_r27++, &var_r29->unk_30, var_r30++); - PSVECScale(var_r24++, var_r27, var_r29->unk_28); - PSVECAdd(var_r27++, &var_r29->unk_30, var_r30++); + VECScale(var_r24++, var_r27, var_r29->unk_28); + VECAdd(var_r27++, &var_r29->unk_30, var_r30++); + VECScale(var_r24++, var_r27, var_r29->unk_28); + VECAdd(var_r27++, &var_r29->unk_30, var_r30++); + VECScale(var_r24++, var_r27, var_r29->unk_28); + VECAdd(var_r27++, &var_r29->unk_30, var_r30++); + VECScale(var_r24++, var_r27, var_r29->unk_28); + VECAdd(var_r27++, &var_r29->unk_30, var_r30++); } else { - PSVECScale(lbl_1_data_8E0, &sp98[0], var_r29->unk_28); - PSVECScale(&lbl_1_data_8E0[1], &sp98[1], var_r29->unk_28); - PSVECScale(&lbl_1_data_8E0[2], &sp98[2], var_r29->unk_28); - PSVECScale(&lbl_1_data_8E0[3], &sp98[3], var_r29->unk_28); + VECScale(lbl_1_data_8E0, &sp98[0], var_r29->unk_28); + VECScale(&lbl_1_data_8E0[1], &sp98[1], var_r29->unk_28); + VECScale(&lbl_1_data_8E0[2], &sp98[2], var_r29->unk_28); + VECScale(&lbl_1_data_8E0[3], &sp98[3], var_r29->unk_28); PSMTXRotRad(spC8, 90, var_r29->unk_2C); PSMTXConcat(sp128, spC8, spF8); PSMTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); - PSVECAdd(&sp68[0], &var_r29->unk_30, var_r30++); - PSVECAdd(&sp68[1], &var_r29->unk_30, var_r30++); - PSVECAdd(&sp68[2], &var_r29->unk_30, var_r30++); - PSVECAdd(&sp68[3], &var_r29->unk_30, var_r30++); + VECAdd(&sp68[0], &var_r29->unk_30, var_r30++); + VECAdd(&sp68[1], &var_r29->unk_30, var_r30++); + VECAdd(&sp68[2], &var_r29->unk_30, var_r30++); + VECAdd(&sp68[3], &var_r29->unk_30, var_r30++); } } var_r29 = var_r31->unk_3C; @@ -3192,14 +3192,14 @@ void fn_1_C86C(ModelData *arg0, Mtx arg1) else { var_r28 = (Vec *)&sp6C; var_r27 = (Vec *)&sp3C; - PSVECScale(var_r27++, var_r28, var_r29->unk_28); - PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); - PSVECScale(var_r27++, var_r28, var_r29->unk_28); - PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); - PSVECScale(var_r27++, var_r28, var_r29->unk_28); - PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); - PSVECScale(var_r27++, var_r28, var_r29->unk_28); - PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); } } DCFlushRangeNoSync(var_r31->unk_40, var_r31->unk_26 * 0xC * 4); @@ -3352,7 +3352,7 @@ void fn_1_D13C(LightData *arg0, s16 arg1, Mtx arg2, Mtx arg3, float arg8) GXInitLightAttn(&sp30, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f); GXInitLightSpot(&sp30, 20.0f, GX_SP_COS); GXInitLightAttnK(&sp30, 1.0f, 0.0f, 0.0f); - PSVECScale(&arg0->unk_28, &arg0->unk_1C, -1000000.0f); + VECScale(&arg0->unk_28, &arg0->unk_1C, -1000000.0f); break; case 2: GXInitLightAttn(&sp30, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); diff --git a/src/REL/m406Dll/player.c b/src/REL/m406Dll/player.c index 9de7b554..e6852e93 100644 --- a/src/REL/m406Dll/player.c +++ b/src/REL/m406Dll/player.c @@ -595,17 +595,17 @@ void fn_1_E214(omObjData *object) if (var_r31->unk_58 == 5) { HuAudFXPlay(0x540); fn_1_117BC(var_r31->unk_14.x, 10.0f, &var_r31->unk_44, &sp1C); - PSVECAdd(&var_r31->unk_2C, &sp1C, &var_r31->unk_2C); + VECAdd(&var_r31->unk_2C, &sp1C, &var_r31->unk_2C); } } if (var_r31->unk_00_field2 == 0) { if (var_r31->unk_44.unk_08 == 1) { var_r31->unk_00_field2 = 1; var_r31->unk_60 = 0x14; - PSVECScale(&var_r31->unk_2C, &var_r31->unk_2C, 1.5f); - if (PSVECMag(&var_r31->unk_2C) > 50.0f) { - PSVECNormalize(&var_r31->unk_2C, &var_r31->unk_2C); - PSVECScale(&var_r31->unk_2C, &var_r31->unk_2C, 50.0f); + VECScale(&var_r31->unk_2C, &var_r31->unk_2C, 1.5f); + if (VECMag(&var_r31->unk_2C) > 50.0f) { + VECNormalize(&var_r31->unk_2C, &var_r31->unk_2C); + VECScale(&var_r31->unk_2C, &var_r31->unk_2C, 50.0f); } HuAudFXPlay(0x53E); HuAudFXVolSet(var_r31->unk_7C[0], 0); @@ -665,7 +665,7 @@ void fn_1_E214(omObjData *object) var_f30 = 1.0f; } Hu3DModelScaleSet(object->model[5], var_f30, var_f30, var_f30); - var_r31->unk_50 += PSVECMag(&var_r31->unk_2C) / 3.125f; + var_r31->unk_50 += VECMag(&var_r31->unk_2C) / 3.125f; PSMTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70); PSMTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50); PSMTXConcat(sp64, sp94, sp34); @@ -775,26 +775,26 @@ void fn_1_F194(omObjData *object) sp44.y = -0.27222222f; sp44.z = 0.0f; var_f28 = 0.27222222f * var_r31->unk_44.unk_00[3].y; - PSVECScale(&var_r31->unk_44.unk_00[3], &sp38, var_f28); - PSVECAdd(&sp44, &sp38, &sp2C); - PSVECAdd(&var_r31->unk_2C, &sp2C, &var_r31->unk_2C); + VECScale(&var_r31->unk_44.unk_00[3], &sp38, var_f28); + VECAdd(&sp44, &sp38, &sp2C); + VECAdd(&var_r31->unk_2C, &sp2C, &var_r31->unk_2C); sp20.x = sp20.y = sp20.z = 0.0f; sp14.x = sp14.y = sp14.z = 0.0f; - var_f29 = PSVECMag(&var_r31->unk_2C); + var_f29 = VECMag(&var_r31->unk_2C); if (var_f29 > 0.0f && fn_1_122C() == 4) { - PSVECNormalize(&var_r31->unk_2C, &sp8); + VECNormalize(&var_r31->unk_2C, &sp8); sp20.x = -sp8.x; sp20.y = -sp8.y; sp20.z = -sp8.z; if (var_r31->unk_62 < 120.0f) { - PSVECScale(&sp20, &sp20, var_f28 * var_f27); + VECScale(&sp20, &sp20, var_f28 * var_f27); } else { - PSVECScale(&sp20, &sp20, (0.15f * (var_r31->unk_62 / 240.0f)) + (var_f28 * var_f27)); + VECScale(&sp20, &sp20, (0.15f * (var_r31->unk_62 / 240.0f)) + (var_f28 * var_f27)); } if (!var_r31->unk_00_field3) { fn_1_117BC(var_r31->unk_14.x, 1.0f, &var_r31->unk_44, &sp44); - var_f30 = PSVECDotProduct(&sp44, &sp8); + var_f30 = VECDotProduct(&sp44, &sp8); var_f31 = 0.02f * var_f29; sp14.x = (-sp8.x * var_f31) - (var_f30 * (-sp44.x * var_f31)); sp14.y = (-sp8.y * var_f31) - (var_f30 * (-sp44.y * var_f31)); @@ -802,7 +802,7 @@ void fn_1_F194(omObjData *object) if ((var_f30 < 0.9f) && (var_f29 >= 20.0f)) { mtxRot(sp80, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); mtxTransCat(sp80, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); - PSVECCrossProduct(&sp44, &sp8, &sp44); + VECCrossProduct(&sp44, &sp8, &sp44); if (sp44.y >= 0.0f) { PSMTXTrans(sp50, -10.0f, 0.0f, 0.0f); PSMTXConcat(sp50, sp80, sp80); @@ -816,12 +816,12 @@ void fn_1_F194(omObjData *object) } } } - PSVECAdd(&sp20, &sp14, &sp2C); - if (PSVECMag(&sp2C) > var_f29) { + VECAdd(&sp20, &sp14, &sp2C); + if (VECMag(&sp2C) > var_f29) { var_r31->unk_2C.x = var_r31->unk_2C.y = var_r31->unk_2C.z = 0.0f; return; } - PSVECAdd(&var_r31->unk_2C, &sp2C, &var_r31->unk_2C); + VECAdd(&var_r31->unk_2C, &sp2C, &var_r31->unk_2C); return; } var_r31->unk_2C.y += -0.27222222f; @@ -859,14 +859,14 @@ void fn_1_F694(omObjData *object) sp2C.z += var_f30 * var_r31->unk_44.unk_00[3].z; if (!var_r31->unk_00_field3) { fn_1_117BC(var_r31->unk_14.x, 1.0f, &var_r31->unk_44, &sp20); - PSVECNormalize(&sp2C, &sp14); - var_f29 = PSVECDotProduct(&sp20, &sp14); + VECNormalize(&sp2C, &sp14); + var_f29 = VECDotProduct(&sp20, &sp14); var_f31 = var_f29 * var_f29; var_f31 *= var_f31; - if (var_f31 < 0.999f && PSVECMag(&var_r31->unk_2C) >= 10.0f) { + if (var_f31 < 0.999f && VECMag(&var_r31->unk_2C) >= 10.0f) { mtxRot(sp68, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); mtxTransCat(sp68, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); - PSVECCrossProduct(&sp20, &sp14, &sp8); + VECCrossProduct(&sp20, &sp14, &sp8); if (sp8.y >= 0.0f) { PSMTXTrans(sp38, -10.0f, 0.0f, 0.0f); PSMTXConcat(sp38, sp68, sp68); @@ -878,8 +878,8 @@ void fn_1_F694(omObjData *object) fn_1_94C0(sp68, 10, 1); } } - var_f28 = PSVECMag(&sp2C); - PSVECScale(&sp20, &sp20, var_f28); + var_f28 = VECMag(&sp2C); + VECScale(&sp20, &sp20, var_f28); var_r31->unk_2C.x = sp2C.x + (0.9f * (sp20.x - sp2C.x)); var_r31->unk_2C.y = sp2C.y + (0.9f * (sp20.y - sp2C.y)); var_r31->unk_2C.z = sp2C.z + (0.9f * (sp20.z - sp2C.z)); @@ -888,9 +888,9 @@ void fn_1_F694(omObjData *object) var_r31->unk_2C.x = sp2C.x; var_r31->unk_2C.y = sp2C.y; var_r31->unk_2C.z = sp2C.z; - PSVECScale(&var_r31->unk_2C, &var_r31->unk_2C, var_r31->unk_54); + VECScale(&var_r31->unk_2C, &var_r31->unk_2C, var_r31->unk_54); } - PSVECScale(&var_r31->unk_2C, &var_r31->unk_2C, 0.98f); + VECScale(&var_r31->unk_2C, &var_r31->unk_2C, 0.98f); } } @@ -980,14 +980,14 @@ void fn_1_FA50(ModelData *model, Mtx mtx) var_r30 = var_r28[var_r29]; var_r31 = var_r28[var_r29]->data; if (!var_r31->unk_00_field0) { - var_r31->unk_14.y = PSVECMag(&var_r31->unk_2C); + var_r31->unk_14.y = VECMag(&var_r31->unk_2C); if (!var_r31->unk_00_field3 && !var_r31->unk_00_field2 && (var_r31->unk_14.y > var_r31->unk_14.z)) { var_r31->unk_14.y = var_r31->unk_14.z; - PSVECNormalize(&var_r31->unk_2C, &var_r31->unk_2C); - PSVECScale(&var_r31->unk_2C, &var_r31->unk_2C, var_r31->unk_14.y); + VECNormalize(&var_r31->unk_2C, &var_r31->unk_2C); + VECScale(&var_r31->unk_2C, &var_r31->unk_2C, var_r31->unk_14.y); } var_f31 = var_r31->unk_14.y; - PSVECNormalize(&var_r31->unk_2C, &sp14); + VECNormalize(&var_r31->unk_2C, &sp14); while (var_f31 > 0.0f) { if (var_f31 < 50.0f) { @@ -1007,8 +1007,8 @@ void fn_1_FA50(ModelData *model, Mtx mtx) var_r30->trans.x = sp8.x; var_r30->trans.z = sp8.z; if (var_r31->unk_00_field2 == 0) { - PSVECNormalize(&var_r31->unk_2C, &sp14); - var_f26 = PSVECDotProduct(&sp14, &sp20); + VECNormalize(&var_r31->unk_2C, &sp14); + var_f26 = VECDotProduct(&sp14, &sp20); if (var_f26 < -0.2f && var_r31->unk_14.y >= 10.0f) { omVibrate(var_r31->unk_02, 12, 6, 6); } @@ -1079,8 +1079,8 @@ void fn_1_FA50(ModelData *model, Mtx mtx) sp20.x = sp2C[var_r27 - 1]->trans.x - lbl_1_bss_E0[1].x; sp20.y = sp2C[var_r27 - 1]->trans.y - lbl_1_bss_E0[1].y; sp20.z = sp2C[var_r27 - 1]->trans.z - lbl_1_bss_E0[1].z; - var_f29 = PSVECMag(&sp20); - PSVECNormalize(&sp20, &sp20); + var_f29 = VECMag(&sp20); + VECNormalize(&sp20, &sp20); if (var_f29 < 100.0f) { lbl_1_bss_E0[1].x = sp2C[var_r27 - 1]->trans.x; lbl_1_bss_E0[1].y = sp2C[var_r27 - 1]->trans.y; @@ -1373,7 +1373,7 @@ void fn_1_117BC(float arg8, float arg9, UnkM406PlayerStruct2 *arg0, Vec *arg1) sp10.z = var_r31->y * cosd((180.0f + arg8)); var_f30 = 1.0f - (var_r31->y * var_r31->y); sp10.y = -sqrtf(var_f30); - PSVECScale(&sp10, arg1, arg9); + VECScale(&sp10, arg1, arg9); } s32 fn_1_119E4(Vec *arg0, UnkM406PlayerStruct *arg1) { @@ -1566,9 +1566,9 @@ void fn_1_12270(omObjData *object) sp1C.z = -61000.0f; block_12270: - PSVECSubtract(&sp1C, &object->trans, &sp10); - if (PSVECMag(&sp10) > 0.0f) { - PSVECNormalize(&sp10, &sp10); + VECSubtract(&sp1C, &object->trans, &sp10); + if (VECMag(&sp10) > 0.0f) { + VECNormalize(&sp10, &sp10); var_r31->unk_06 = 72.0 * ((sp10.x * cosd(CRot.y)) - sp10.z * sind(CRot.y)); var_r31->unk_07 = 72.0 * -((sp10.x * sind(CRot.y)) + sp10.z * cosd(CRot.y)); } @@ -1623,14 +1623,14 @@ s32 fn_1_127B8(void) var_r25 = var_r29[var_r30]; var_r22 = var_r25->data; if (!var_r22->unk_00_field0) { - PSVECSubtract(&var_r26->trans, &var_r25->trans, &sp8); - var_f31 = PSVECMag(&sp8); + VECSubtract(&var_r26->trans, &var_r25->trans, &sp8); + var_f31 = VECMag(&sp8); if (var_f31 < 100.0f) { - PSVECNormalize(&sp8, &sp8); + VECNormalize(&sp8, &sp8); var_f30 = 0.01f + (0.5f * (100.0f - var_f31)); - PSVECScale(&sp8, &sp8, var_f30); - PSVECAdd(&sp14[var_r31], &sp8, &sp14[var_r31]); - PSVECSubtract(&sp14[var_r30], &sp8, &sp14[var_r30]); + VECScale(&sp8, &sp8, var_f30); + VECAdd(&sp14[var_r31], &sp8, &sp14[var_r31]); + VECSubtract(&sp14[var_r30], &sp8, &sp14[var_r30]); var_r27++; } } @@ -1641,7 +1641,7 @@ s32 fn_1_127B8(void) var_r28 = var_r29[var_r31]; var_r24 = var_r28->data; if (!var_r24->unk_00_field0) { - PSVECAdd(&var_r28->trans, &sp14[var_r31], &var_r28->trans); + VECAdd(&var_r28->trans, &sp14[var_r31], &var_r28->trans); } } return var_r27; @@ -1660,8 +1660,8 @@ s32 fn_1_129E4(omObjData *object) var_r30 = omGetGroupMemberListEx(HuPrcCurrentGet(), 3); for (var_r31 = 0; var_r31 < var_r30[0]->mdlcnt; var_r31++) { var_r29 = &Hu3DData[(*var_r30)->model[var_r31]]; - PSVECSubtract(&var_r29->pos, &object->trans, &spC); - var_f31 = PSVECMag(&spC); + VECSubtract(&var_r29->pos, &object->trans, &spC); + var_f31 = VECMag(&spC); if (var_f31 < 100.0f) { return 1; } @@ -1792,8 +1792,8 @@ void fn_1_12BC4(omObjData *object) sp84.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x))); sp84.y = Center.y + (CZoom * -sind(CRot.x)); sp84.z = Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x))); - PSVECSubtract(&Center, &sp84, &sp78); - PSVECNormalize(&sp78, &sp78); + VECSubtract(&Center, &sp84, &sp78); + VECNormalize(&sp78, &sp78); HuAudFXListnerUpdate(&sp84, &sp78); } } @@ -1916,7 +1916,7 @@ s32 fn_1_13C10(Vec *arg0, Vec *arg1) sp24.x = -var_r31->nbt.x; sp24.y = 0.0f; sp24.z = -var_r31->nbt.z; - PSVECNormalize(&sp24, &sp24); + VECNormalize(&sp24, &sp24); var_f31 = (var_f28 + (((-var_r31->nbt.x * arg0->x) - (var_r31->nbt.y * arg0->y)) - (var_r31->nbt.z * arg0->z))) / ((var_r31->nbt.x * sp24.x) + (var_r31->nbt.z * sp24.z)); if (var_f31 <= 0.0) { @@ -1925,18 +1925,18 @@ s32 fn_1_13C10(Vec *arg0, Vec *arg1) spC.x = arg0->x + (sp24.x * var_f31); spC.y = arg0->y; spC.z = arg0->z + (sp24.z * var_f31); - PSVECSubtract(sp48[1], sp48[0], &sp3C); - PSVECSubtract(&spC, sp48[1], &sp30); - PSVECCrossProduct(&sp3C, &sp30, &sp24); - if (!(PSVECDotProduct(&var_r31->nbt, &sp24) < 0.0f)) { - PSVECSubtract(sp48[2], sp48[1], &sp3C); - PSVECSubtract(&spC, sp48[2], &sp30); - PSVECCrossProduct(&sp3C, &sp30, &sp24); - if (!(PSVECDotProduct(&var_r31->nbt, &sp24) < 0.0f)) { - PSVECSubtract(sp48[0], sp48[2], &sp3C); - PSVECSubtract(&spC, sp48[0], &sp30); - PSVECCrossProduct(&sp3C, &sp30, &sp24); - if (!(PSVECDotProduct(&var_r31->nbt, &sp24) < 0.0f) && (var_f31 < var_f29)) { + VECSubtract(sp48[1], sp48[0], &sp3C); + VECSubtract(&spC, sp48[1], &sp30); + VECCrossProduct(&sp3C, &sp30, &sp24); + if (!(VECDotProduct(&var_r31->nbt, &sp24) < 0.0f)) { + VECSubtract(sp48[2], sp48[1], &sp3C); + VECSubtract(&spC, sp48[2], &sp30); + VECCrossProduct(&sp3C, &sp30, &sp24); + if (!(VECDotProduct(&var_r31->nbt, &sp24) < 0.0f)) { + VECSubtract(sp48[0], sp48[2], &sp3C); + VECSubtract(&spC, sp48[0], &sp30); + VECCrossProduct(&sp3C, &sp30, &sp24); + if (!(VECDotProduct(&var_r31->nbt, &sp24) < 0.0f) && (var_f31 < var_f29)) { var_f29 = var_f31; sp18 = spC; var_r28 = var_r31; @@ -1948,15 +1948,15 @@ s32 fn_1_13C10(Vec *arg0, Vec *arg1) if (var_r22 > 2) { var_r22 = 0; } - PSVECSubtract(sp48[var_r22], sp48[var_r29], &sp3C); + VECSubtract(sp48[var_r22], sp48[var_r29], &sp3C); if (sp3C.y != 0.0f) { var_f30 = (arg0->y - sp48[var_r29]->y) / sp3C.y; if ((var_f30 >= 0.0f) && (var_f30 < 1.0f)) { spC.x = sp48[var_r29]->x + (var_f30 * sp3C.x); spC.z = sp48[var_r29]->z + (var_f30 * sp3C.z); - PSVECSubtract(&spC, arg0, &sp3C); + VECSubtract(&spC, arg0, &sp3C); sp3C.y = 0.0f; - var_f31 = PSVECMag(&sp3C); + var_f31 = VECMag(&sp3C); if (var_f31 < var_f29) { var_f29 = var_f31; sp18 = spC; @@ -1972,9 +1972,9 @@ s32 fn_1_13C10(Vec *arg0, Vec *arg1) if ((sp30.y >= arg0->y) && (sp30.y < (150.0f + arg0->y))) { sp30.x = sp48[var_r29]->x + (var_f30 * sp3C.x); sp30.z = sp48[var_r29]->z + (var_f30 * sp3C.z); - PSVECSubtract(&sp30, arg0, &sp3C); + VECSubtract(&sp30, arg0, &sp3C); sp3C.y = 0.0f; - var_f31 = PSVECMag(&sp3C); + var_f31 = VECMag(&sp3C); if (var_f31 < var_f29) { var_f29 = var_f31; sp18 = sp30; @@ -1984,9 +1984,9 @@ s32 fn_1_13C10(Vec *arg0, Vec *arg1) } } if ((sp48[var_r29]->y >= arg0->y) && (sp48[var_r29]->y < (150.0f + arg0->y))) { - PSVECSubtract(arg0, sp48[var_r29], &sp3C); + VECSubtract(arg0, sp48[var_r29], &sp3C); sp3C.y = 0.0f; - var_f31 = PSVECMag(&sp3C); + var_f31 = VECMag(&sp3C); if (var_f31 < var_f29) { var_f29 = var_f31; sp18.x = sp48[var_r29]->x; @@ -1998,9 +1998,9 @@ s32 fn_1_13C10(Vec *arg0, Vec *arg1) } } if (var_f29 < 100.0f) { - PSVECSubtract(arg0, &sp18, &sp3C); + VECSubtract(arg0, &sp18, &sp3C); sp3C.y = 0.0f; - PSVECNormalize(&sp3C, &sp3C); + VECNormalize(&sp3C, &sp3C); arg0->x = sp18.x + (100.001f * sp3C.x); arg0->z = sp18.z + (100.001f * sp3C.z); arg1->x = var_r28->nbt.x; @@ -2052,21 +2052,21 @@ float fn_1_143F4(Vec *arg0, UnkM406PlayerStruct2 *arg1) sp34[0] = &((Vec *)var_r28->data)[var_r31->indices[0][0]]; sp34[1] = &((Vec *)var_r28->data)[var_r31->indices[1][0]]; sp34[2] = &((Vec *)var_r28->data)[var_r31->indices[2][0]]; - PSVECSubtract(sp34[1], sp34[0], &sp28); - PSVECSubtract(arg0, sp34[1], &sp1C); - PSVECCrossProduct(&sp28, &sp1C, &sp10); + VECSubtract(sp34[1], sp34[0], &sp28); + VECSubtract(arg0, sp34[1], &sp1C); + VECCrossProduct(&sp28, &sp1C, &sp10); if (sp10.y < 0.0f) { continue; } - PSVECSubtract(sp34[2], sp34[1], &sp28); - PSVECSubtract(arg0, sp34[2], &sp1C); - PSVECCrossProduct(&sp28, &sp1C, &sp10); + VECSubtract(sp34[2], sp34[1], &sp28); + VECSubtract(arg0, sp34[2], &sp1C); + VECCrossProduct(&sp28, &sp1C, &sp10); if (sp10.y < 0.0f) { continue; } - PSVECSubtract(sp34[0], sp34[2], &sp28); - PSVECSubtract(arg0, sp34[0], &sp1C); - PSVECCrossProduct(&sp28, &sp1C, &sp10); + VECSubtract(sp34[0], sp34[2], &sp28); + VECSubtract(arg0, sp34[0], &sp1C); + VECCrossProduct(&sp28, &sp1C, &sp10); if (sp10.y < 0.0f) { continue; } diff --git a/src/REL/m409Dll/main.c b/src/REL/m409Dll/main.c index bb73b325..805f5708 100644 --- a/src/REL/m409Dll/main.c +++ b/src/REL/m409Dll/main.c @@ -1410,20 +1410,20 @@ void fn_1_602C(ModelData *arg0, f32 (*arg1)[4]) else { if (var_r29->unk30 == 0.0f) { fn_1_6778(&sp68[0], &sp38, &var_r29->unk34, 4); - PSVECAdd(&sp38, &var_r29->unk40, var_r31++); - PSVECAdd(&sp44, &var_r29->unk40, var_r31++); - PSVECAdd(&sp50, &var_r29->unk40, var_r31++); - PSVECAdd(&sp5C, &var_r29->unk40, var_r31++); + VECAdd(&sp38, &var_r29->unk40, var_r31++); + VECAdd(&sp44, &var_r29->unk40, var_r31++); + VECAdd(&sp50, &var_r29->unk40, var_r31++); + VECAdd(&sp5C, &var_r29->unk40, var_r31++); } else { fn_1_6778(&temp_r30->unk2C, &sp38, &var_r29->unk34, 4); PSMTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk30); PSMTXConcat(sp128, spC8, sp98); PSMTXMultVecArray(sp98, &sp38, &sp8, 4); - PSVECAdd(&sp8, &var_r29->unk40, var_r31++); - PSVECAdd(&sp14, &var_r29->unk40, var_r31++); - PSVECAdd(&sp20, &var_r29->unk40, var_r31++); - PSVECAdd(&sp2C, &var_r29->unk40, var_r31++); + VECAdd(&sp8, &var_r29->unk40, var_r31++); + VECAdd(&sp14, &var_r29->unk40, var_r31++); + VECAdd(&sp20, &var_r29->unk40, var_r31++); + VECAdd(&sp2C, &var_r29->unk40, var_r31++); } if (var_r29->unk4C != -1) { fn_1_66D4(var_r26, temp_r30->unk5C, var_r29->unk4C, temp_r30->unk60, temp_r30->unk64); diff --git a/src/REL/m410Dll/game.c b/src/REL/m410Dll/game.c index 04cd0c6b..37a73771 100644 --- a/src/REL/m410Dll/game.c +++ b/src/REL/m410Dll/game.c @@ -369,7 +369,7 @@ void fn_1_3BE0(s16 arg0) // what happens with the argument? sp1B0[var_r29].unk_0C_unk->unk_40 = sp1B0[var_r29].unk_08; sp1B0[var_r29].unk_08->unk_3C++; sp1B0[var_r29].unk_08->unk_44 = 2; - if (PSVECMag(&sp1B0[var_r29].unk_08->unk_1C) > 10.0f) { + if (VECMag(&sp1B0[var_r29].unk_08->unk_1C) > 10.0f) { HuAudFXPlay(1377); } break; @@ -395,11 +395,11 @@ void fn_1_3BE0(s16 arg0) // what happens with the argument? } for (var_r29 = 0; var_r29 < var_r25; var_r29++) { var_r30 = spC0[var_r29]; - PSVECSubtract(&var_r30->unk_04, &var_r30->unk_10, &spB4); + VECSubtract(&var_r30->unk_04, &var_r30->unk_10, &spB4); var_r28 = lbl_1_bss_54->data; for (var_r26 = 0; var_r26 < 18; var_r26++, var_r28++) { - PSVECSubtract(&var_r28->unk_04, &var_r28->unk_10, &spA8); + VECSubtract(&var_r28->unk_04, &var_r28->unk_10, &spA8); if (fn_1_598C(&var_r30->unk_10, &spB4, var_r30->unk_28, &var_r28->unk_10, &spA8, var_r28->unk_28, var_r28->unk_2C) && !var_r30->unk_00_field1 && var_r28->unk_38 == NULL) { var_r30->unk_00_field1 = 1; @@ -490,9 +490,9 @@ float fn_1_4C04(Vec arg0, Vec arg1, float arg8, Vec arg2, Vec arg3, float arg9) float var_f22; float var_f21; - PSVECSubtract(&arg2, &arg0, &arg2); - PSVECSubtract(&arg3, &arg1, &arg3); - if (PSVECMag(&arg2) > arg9 + (arg8 + PSVECMag(&arg3))) { + VECSubtract(&arg2, &arg0, &arg2); + VECSubtract(&arg3, &arg1, &arg3); + if (VECMag(&arg2) > arg9 + (arg8 + VECMag(&arg3))) { return -1.0f; } var_f22 = (arg8 + arg9) * (arg8 + arg9); @@ -533,10 +533,10 @@ float fn_1_4FEC(Vec arg0, Vec arg1, float arg8, Vec arg2, Vec arg3, float arg9, float var_f21; float var_f18; - PSVECSubtract(&arg0, &arg2, &arg0); - PSVECSubtract(&arg1, &arg3, &arg1); + VECSubtract(&arg0, &arg2, &arg0); + VECSubtract(&arg1, &arg3, &arg1); - if (PSVECMag(&arg0) > (arg8) + PSVECMag(&arg1) + arg9 + argA) { + if (VECMag(&arg0) > (arg8) + VECMag(&arg1) + arg9 + argA) { return -1.0f; } arg8 += arg9; @@ -580,10 +580,10 @@ float fn_1_55C8(Vec arg0, Vec arg1, float arg8, Vec arg2, float arg9) float var_f22; float var_f21; - PSVECSubtract(&arg0, &arg2, &arg0); + VECSubtract(&arg0, &arg2, &arg0); arg0.y = 0.0f; arg1.y = 0.0f; - if (PSVECMag(&arg0) > arg8 + PSVECMag(&arg1) + arg9) { + if (VECMag(&arg0) > arg8 + VECMag(&arg1) + arg9) { return -1.0f; } var_f22 = (arg8 + arg9) * (arg8 + arg9); @@ -618,9 +618,9 @@ s32 fn_1_598C(Vec *arg0, Vec *arg1, float arg8, Vec *arg2, Vec *arg3, float arg9 Vec sp20; float var_f31; - PSVECSubtract(arg0, arg2, &sp38); - PSVECSubtract(arg1, arg3, &sp2C); - if (PSVECMag(&sp38) > arg8 + PSVECMag(&sp2C) + arg9 + argA) { + VECSubtract(arg0, arg2, &sp38); + VECSubtract(arg1, arg3, &sp2C); + if (VECMag(&sp38) > arg8 + VECMag(&sp2C) + arg9 + argA) { return 0; } if (sp2C.y < 0.0f) { @@ -629,7 +629,7 @@ s32 fn_1_598C(Vec *arg0, Vec *arg1, float arg8, Vec *arg2, Vec *arg3, float arg9 sp20.x = var_f31 * sp2C.x + sp38.x; sp20.y = var_f31 * sp2C.y + sp38.y; sp20.z = var_f31 * sp2C.z + sp38.z; - if (PSVECMag(&sp20) < argA) { + if (VECMag(&sp20) < argA) { return 1; } } @@ -675,17 +675,17 @@ void fn_1_5CA0(Vec arg0, Vec arg1, Vec arg2, Vec *arg3, Vec *arg4) float var_f28; sp34 = arg1; - var_f31 = PSVECMag(&sp34); + var_f31 = VECMag(&sp34); if (var_f31 < 0.001f) { arg3->x = arg3->y = arg3->z = 0.0f; arg4->x = arg4->y = arg4->z = 0.0f; return; } - PSVECNormalize(&sp34, &sp34); + VECNormalize(&sp34, &sp34); var_f31 *= 0.9f; - PSVECSubtract(&arg2, &arg0, &sp28); - PSVECNormalize(&sp28, &sp28); - var_f28 = PSVECDotProduct(&sp34, &sp28); + VECSubtract(&arg2, &arg0, &sp28); + VECNormalize(&sp28, &sp28); + var_f28 = VECDotProduct(&sp34, &sp28); if (var_f28 < 0.0f) { arg3->x = arg1.x; arg3->y = arg1.y; @@ -698,10 +698,10 @@ void fn_1_5CA0(Vec arg0, Vec arg1, Vec arg2, Vec *arg3, Vec *arg4) if (var_f30 < 0.001f) { arg3->x = arg3->y = arg3->z = 0.0f; } else { - PSVECCrossProduct(&sp34, &sp28, &sp10); - PSVECNormalize(&sp10, &sp10); - PSVECCrossProduct(&sp28, &sp10, &sp1C); - PSVECNormalize(&sp1C, &sp1C); + VECCrossProduct(&sp34, &sp28, &sp10); + VECNormalize(&sp10, &sp10); + VECCrossProduct(&sp28, &sp10, &sp1C); + VECNormalize(&sp1C, &sp1C); arg3->x = sp1C.x * var_f30; arg3->y = sp1C.y * var_f30; arg3->z = sp1C.z * var_f30; @@ -722,17 +722,17 @@ void fn_1_5EDC(UnkM410Struct2 *arg0, UnkM410Struct2 *arg1) arg0->unk_1C.x *= 0.9f; arg0->unk_1C.y *= 0.9f; arg0->unk_1C.z *= 0.9f; - PSVECSubtract(&arg0->unk_04, &arg1->unk_04, &sp14); - PSVECNormalize(&sp14, &sp8); - var_f30 = (arg0->unk_28 + arg1->unk_28) - PSVECMag(&sp14); + VECSubtract(&arg0->unk_04, &arg1->unk_04, &sp14); + VECNormalize(&sp14, &sp8); + var_f30 = (arg0->unk_28 + arg1->unk_28) - VECMag(&sp14); if (var_f30 > 0.001f) { - PSVECSubtract(&arg0->unk_1C, &arg1->unk_1C, &sp14); - if (PSVECMag(&sp14) < 0.001f) { + VECSubtract(&arg0->unk_1C, &arg1->unk_1C, &sp14); + if (VECMag(&sp14) < 0.001f) { arg0->unk_04.x += sp8.x * var_f30; arg0->unk_04.y += sp8.y * var_f30; arg0->unk_04.z += sp8.z * var_f30; } else { - PSVECNormalize(&sp14, &sp14); + VECNormalize(&sp14, &sp14); arg0->unk_04.x -= sp14.x * var_f30; arg0->unk_04.y -= sp14.y * var_f30; arg0->unk_04.z -= sp14.z * var_f30; @@ -744,13 +744,13 @@ void fn_1_5EDC(UnkM410Struct2 *arg0, UnkM410Struct2 *arg1) arg0->unk_1C.y += 2.0f * sp8.y * var_f31; arg0->unk_1C.z += 2.0f * sp8.z * var_f31; } - PSVECSubtract(&arg1->unk_1C, &arg0->unk_1C, &sp14); - var_f29 = PSVECMag(&sp14); + VECSubtract(&arg1->unk_1C, &arg0->unk_1C, &sp14); + var_f29 = VECMag(&sp14); if (var_f29 < 0.001f) { return; } - PSVECNormalize(&sp14, &sp14); - var_f31 = PSVECDotProduct(&sp8, &sp14); + VECNormalize(&sp14, &sp14); + var_f31 = VECDotProduct(&sp8, &sp14); if (var_f31 > 0.0f) { arg0->unk_1C.x += sp8.x * var_f31 * var_f29; arg0->unk_1C.y += sp8.y * var_f31 * var_f29; @@ -788,8 +788,8 @@ void fn_1_61DC(UnkM410Struct2 *arg0, UnkM410Struct2 *arg1) } fn_1_5CA0(arg0->unk_04, arg0->unk_1C, arg1->unk_04, &sp68, &sp74); fn_1_5CA0(arg1->unk_04, arg1->unk_1C, arg0->unk_04, &sp50, &sp5C); - PSVECAdd(&sp68, &sp5C, &arg0->unk_1C); - PSVECAdd(&sp74, &sp50, &arg1->unk_1C); + VECAdd(&sp68, &sp5C, &arg0->unk_1C); + VECAdd(&sp74, &sp50, &arg1->unk_1C); } void fn_1_6364(UnkM410Struct2 *arg0, UnkM410Struct2 *arg1) @@ -804,27 +804,27 @@ void fn_1_6364(UnkM410Struct2 *arg0, UnkM410Struct2 *arg1) arg0->unk_1C.x *= 0.7f; arg0->unk_1C.y *= 0.7f; arg0->unk_1C.z *= 0.7f; - PSVECSubtract(&arg0->unk_04, &arg1->unk_04, &sp14); + VECSubtract(&arg0->unk_04, &arg1->unk_04, &sp14); sp14.y = 0.0f; - PSVECNormalize(&sp14, &sp14); + VECNormalize(&sp14, &sp14); sp20.x = sp14.x * arg1->unk_2C + arg1->unk_04.x; sp20.y = arg1->unk_04.y; sp20.z = sp14.z * arg1->unk_2C + arg1->unk_04.z; - PSVECSubtract(&arg0->unk_04, &sp20, &sp14); - PSVECNormalize(&sp14, &sp8); - var_f31 = (arg0->unk_28 + arg1->unk_28) - PSVECMag(&sp14); + VECSubtract(&arg0->unk_04, &sp20, &sp14); + VECNormalize(&sp14, &sp8); + var_f31 = (arg0->unk_28 + arg1->unk_28) - VECMag(&sp14); if (var_f31 > 0.001f) { - PSVECSubtract(&arg0->unk_1C, &arg1->unk_1C, &sp14); - if (PSVECMag(&sp14) < 0.001f) { + VECSubtract(&arg0->unk_1C, &arg1->unk_1C, &sp14); + if (VECMag(&sp14) < 0.001f) { arg0->unk_04.x += sp8.x * var_f31; arg0->unk_04.y += sp8.y * var_f31; arg0->unk_04.z += sp8.z * var_f31; } else { - PSVECNormalize(&sp14, &sp14); + VECNormalize(&sp14, &sp14); arg0->unk_04.x -= sp14.x * var_f31; arg0->unk_04.y -= sp14.y * var_f31; arg0->unk_04.z -= sp14.z * var_f31; @@ -836,11 +836,11 @@ void fn_1_6364(UnkM410Struct2 *arg0, UnkM410Struct2 *arg1) arg0->unk_1C.y += 2.0f * sp8.y * var_f30; arg0->unk_1C.z += 2.0f * sp8.z * var_f30; } - PSVECSubtract(&arg1->unk_1C, &arg0->unk_1C, &sp14); - var_f31 = PSVECMag(&sp14); + VECSubtract(&arg1->unk_1C, &arg0->unk_1C, &sp14); + var_f31 = VECMag(&sp14); if (!(var_f31 < 0.001f)) { - PSVECNormalize(&sp14, &sp14); - var_f30 = PSVECDotProduct(&sp8, &sp14); + VECNormalize(&sp14, &sp14); + var_f30 = VECDotProduct(&sp8, &sp14); if (var_f30 > 0.0f) { arg0->unk_1C.x += sp8.x * var_f30 * var_f31; arg0->unk_1C.y += sp8.y * var_f30 * var_f31; @@ -854,9 +854,9 @@ void fn_1_66B8(UnkM410Struct2 *arg0, UnkM410Struct2 *arg1) // TODO maybe UnkM410 Vec spC; float var_f31; - PSVECSubtract(&arg0->unk_04, (Vec *)&arg1->unk_10.z, &spC); + VECSubtract(&arg0->unk_04, (Vec *)&arg1->unk_10.z, &spC); spC.y = 0.0f; - PSVECNormalize(&spC, &spC); + VECNormalize(&spC, &spC); var_f31 = -arg0->unk_1C.x * spC.x - arg0->unk_1C.z * spC.z; arg0->unk_1C.x += 2.0f * spC.x * var_f31; arg0->unk_1C.z += 2.0f * spC.z * var_f31; @@ -911,7 +911,7 @@ void fn_1_6968(omObjData *object) } if (var_r31->unk_00_field1) { Hu3DModelObjPosGet(var_r31->unk_38->unk_30, "i_hook", &sp8); - PSVECSubtract(&sp8, &var_r31->unk_04, &sp8); + VECSubtract(&sp8, &var_r31->unk_04, &sp8); if (var_r31->unk_36 != 0) { var_f31 = cosd(90.0f * var_r31->unk_36 / 10.0f); var_r31->unk_1C.x = var_f31 * sp8.x; @@ -936,7 +936,7 @@ void fn_1_6968(omObjData *object) sp8.x = var_r31->unk_1C.z; sp8.y = 0.0f; sp8.z = -var_r31->unk_1C.x; - var_f30 = PSVECMag(&sp8) / 30.000002f; + var_f30 = VECMag(&sp8) / 30.000002f; if (var_f30 >= 0.001f) { PSMTXRotAxisRad(sp14, &sp8, var_f30); var_r28 = &Hu3DData[object->model[var_r30]]; diff --git a/src/REL/m410Dll/main.c b/src/REL/m410Dll/main.c index 2b6b53a7..5b234c7b 100644 --- a/src/REL/m410Dll/main.c +++ b/src/REL/m410Dll/main.c @@ -347,17 +347,17 @@ void fn_1_1A7C(omObjData *object) } var_f31 = (float)object->work[0] / lbl_1_data_C4[object->work[1]]; - PSVECSubtract(&lbl_1_data_4C[object->work[1] + 1], &lbl_1_data_4C[object->work[1]], &sp8); - PSVECScale(&sp8, &sp8, var_f31); - PSVECAdd(&lbl_1_data_4C[object->work[1]], &sp8, &sp8); + VECSubtract(&lbl_1_data_4C[object->work[1] + 1], &lbl_1_data_4C[object->work[1]], &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&lbl_1_data_4C[object->work[1]], &sp8, &sp8); Center.x = sp8.x; Center.y = sp8.y; Center.z = sp8.z; - PSVECSubtract(&lbl_1_data_88[object->work[1] + 1], &lbl_1_data_88[object->work[1]], &sp8); - PSVECScale(&sp8, &sp8, var_f31); - PSVECAdd(&lbl_1_data_88[object->work[1]], &sp8, &sp8); + VECSubtract(&lbl_1_data_88[object->work[1] + 1], &lbl_1_data_88[object->work[1]], &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&lbl_1_data_88[object->work[1]], &sp8, &sp8); CRot.x = sp8.x; CRot.y = sp8.y; diff --git a/src/REL/m410Dll/player.c b/src/REL/m410Dll/player.c index 44ed28b2..fbfe99ec 100644 --- a/src/REL/m410Dll/player.c +++ b/src/REL/m410Dll/player.c @@ -503,8 +503,8 @@ void fn_1_9040(omObjData *object) if (sp20.y < 350.0f) { continue; } - PSVECSubtract(&sp20, &var_r31->unk_58, &sp2C); - var_f28 = PSVECMag(&sp2C); + VECSubtract(&sp20, &var_r31->unk_58, &sp2C); + var_f28 = VECMag(&sp2C); if (var_f28 < var_f30) { var_r28 = var_r29; var_f30 = var_f28; @@ -611,7 +611,7 @@ void fn_1_96F4(omObjData *object) var_r31->unk_44 = 0.0f; var_r31->unk_48 = 0.04f; } - PSVECAdd(&var_r31->unk_70, &var_r31->unk_7C, &var_r31->unk_70); + VECAdd(&var_r31->unk_70, &var_r31->unk_7C, &var_r31->unk_70); var_r31->unk_7C.y = var_r31->unk_7C.y + (0.0002777778f * var_f29); if ((var_r31->unk_7C.y < 0.0f) && (var_r31->unk_70.y <= var_f30)) { var_r31->unk_18 = 1; diff --git a/src/REL/m411Dll/main.c b/src/REL/m411Dll/main.c index 2f2dc72a..ec0249a3 100755 --- a/src/REL/m411Dll/main.c +++ b/src/REL/m411Dll/main.c @@ -1006,7 +1006,7 @@ void fn_1_34B0(ModelData* model, ParticleData* particle, Mtx matrix, s32 arg3) { if (var_r31->unk14.x == 0.0f) { continue; } - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); var_r31->unk08.x *= 0.95f; var_r31->unk08.y *= 0.95f; var_r31->unk14.y += 20.0f; diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c index 059cae2c..3c6cf951 100644 --- a/src/REL/m412Dll/main.c +++ b/src/REL/m412Dll/main.c @@ -156,7 +156,7 @@ void fn_1_7BC(void) for (var_r31 = 0; var_r31 < 0x168; var_r31++) { HuAudFXEmiterUpDate(temp_r30, &sp14); - PSVECAdd(&sp8, &sp14, &sp14); + VECAdd(&sp8, &sp14, &sp14); HuPrcVSleep(); } HuPrcKill(HuPrcCurrentGet()); @@ -2019,7 +2019,7 @@ void fn_1_A01C(ModelData *model, ParticleData *particle, f32 (*matrix)[4]) var_r31 = particle->unk_48; for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { if (var_r31->unk14.x != 0.0f) { - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); var_r31->unk08.x *= 0.95f; var_r31->unk08.z *= 0.95f; var_r31->unk08.y -= 0.2f; @@ -2100,7 +2100,7 @@ void fn_1_A618(ModelData *model, ParticleData *particle, f32 (*matrix)[4]) var_r31 = particle->unk_48; for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { if (0.0f != var_r31->unk14.x) { - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); var_r31->unk08.x *= 0.95f; var_r31->unk08.z *= 0.95f; var_r31->unk08.y -= 0.2f; diff --git a/src/REL/m414Dll/main.c b/src/REL/m414Dll/main.c index a906f552..b3484695 100644 --- a/src/REL/m414Dll/main.c +++ b/src/REL/m414Dll/main.c @@ -374,7 +374,7 @@ void fn_1_D54(ModelData *arg0, ParticleData *arg1, Mtx arg2, s32 arg3) var_r31 = arg1->unk_48; for (var_r28 = 0; var_r28 < arg1->unk_30; var_r28++, var_r31++) { if (0.0f != var_r31->unk14.x) { - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); if (var_r31->unk14.x > 10.0f) { var_r31->unk14.x = var_r31->unk14.x - 1.0f; } diff --git a/src/REL/m417Dll/player.c b/src/REL/m417Dll/player.c index 797b12a3..848dd784 100644 --- a/src/REL/m417Dll/player.c +++ b/src/REL/m417Dll/player.c @@ -434,7 +434,7 @@ void fn_1_8B0C(omObjData *object) case 0: sp8 = var_r31->unk_EC; sp8.y = 0.0f; - var_f31 = PSVECMag(&sp8); + var_f31 = VECMag(&sp8); if (var_f31 > 30.000002f) { var_r31->unk_20 = atan2d(-sp8.x, -sp8.z); var_r31->unk_24 = 0.01f * var_f31; @@ -525,15 +525,15 @@ void fn_1_8E44(omObjData *object) case 0: sp8 = var_r31->unk_14C; sp8.y = 0.0f; - if (PSVECMag(&sp8) > 0.0f) { - PSVECNormalize(&sp8, &sp8); + if (VECMag(&sp8) > 0.0f) { + VECNormalize(&sp8, &sp8); } else { sp8.x = 1.0f; sp8.z = 0.0f; } var_r31->unk_68 = atan2d(-sp8.x, -sp8.z); - PSVECScale(&sp8, &var_r31->unk_E0, 1.6666667f); + VECScale(&sp8, &var_r31->unk_E0, 1.6666667f); fn_1_B8A0(object, 5); Hu3DModelLayerSet(object->model[0], 0); Hu3DModelShadowReset(object->model[0]); @@ -547,17 +547,17 @@ void fn_1_8E44(omObjData *object) if (var_r31->unk_D4.y < -300.0f) { sp8 = var_r31->unk_D4; sp8.y = 0.0f; - if (PSVECMag(&sp8) > 0.0f) { - PSVECNormalize(&sp8, &sp8); + if (VECMag(&sp8) > 0.0f) { + VECNormalize(&sp8, &sp8); } else { sp8.x = 0.0f; sp8.z = 1.0f; } - PSVECScale(&sp8, &sp14, 250.0f); + VECScale(&sp8, &sp14, 250.0f); sp14.y = -100.0f; - PSVECSubtract(&sp14, &var_r31->unk_D4, &sp8); - PSVECScale(&sp8, &var_r31->unk_E0, 1.0f / 60.0f); + VECSubtract(&sp14, &var_r31->unk_D4, &sp8); + VECScale(&sp8, &var_r31->unk_E0, 1.0f / 60.0f); fn_1_B8A0(object, 6); var_r31->unk_50++; } @@ -576,7 +576,7 @@ void fn_1_8E44(omObjData *object) break; } - PSVECAdd(&var_r31->unk_D4, &var_r31->unk_E0, &var_r31->unk_D4); + VECAdd(&var_r31->unk_D4, &var_r31->unk_E0, &var_r31->unk_D4); fn_1_9FF0(object); fn_1_91E0(object); fn_1_AD24(object); @@ -623,7 +623,7 @@ void fn_1_9298(omObjData *object) sp14.x = sind(var_r31->unk_20); sp14.y = 0.0f; sp14.z = cosd(var_r31->unk_20); - var_f31 = PSVECDotProduct(&sp20, &sp14); + var_f31 = VECDotProduct(&sp20, &sp14); var_f31 *= (1.0f / 60.0f) * (30.0f * var_r31->unk_24); } var_r31->unk_B4.y += (0.1f * (var_f31 - var_r31->unk_B4.y)); @@ -832,15 +832,15 @@ void fn_1_9C14(omObjData *object) fn_1_B8A0(object, 0); } } - PSVECSubtract(&var_r31->unk_D4, &var_r31->unk_104, &sp1C); + VECSubtract(&var_r31->unk_D4, &var_r31->unk_104, &sp1C); if (fn_1_26F8() == 2) { sp1C.y += -5.8333335f * var_r31->unk_148; } PSMTXMultVec(var_r31->unk_224, &sp1C, &sp1C); - PSVECAdd(&sp1C, &var_r31->unk_E0, &sp1C); + VECAdd(&sp1C, &var_r31->unk_E0, &sp1C); sp10 = sp1C; sp10.y = 0.0f; - var_f31 = sp8 = PSVECMag(&sp10); + var_f31 = sp8 = VECMag(&sp10); if (var_f31 > 150.0f) { var_f31 = 150.0f / var_f31; sp1C.x = sp1C.x * var_f31; @@ -850,7 +850,7 @@ void fn_1_9C14(omObjData *object) var_r31->unk_EC = sp1C; spC = atan2d(sp1C.x, sp1C.z); PSMTXMultVec(var_r31->unk_1C4, &sp1C, &sp1C); - PSVECAdd(&sp1C, &var_r31->unk_F8, &var_r31->unk_D4); + VECAdd(&sp1C, &var_r31->unk_F8, &var_r31->unk_D4); if (var_r31->unk_13C >= 0.95f) { var_r31->unk_3C = 1; return; @@ -936,7 +936,7 @@ void fn_1_9FF0(omObjData *object) if (!var_r31->unk_40) { sp20 = var_r31->unk_EC; sp20.y = 0.0f; - var_f31 = (2.0f / 300.0f) * PSVECMag(&sp20); + var_f31 = (2.0f / 300.0f) * VECMag(&sp20); if (var_f31 <= 0.0f) { var_f31 = 0.0f; sp8.x = 1.0f; @@ -1002,7 +1002,7 @@ void fn_1_9FF0(omObjData *object) sp8.x = sind(var_f31); sp8.y = 0.0f; sp8.z = cosd(var_f31); - var_f29 = PSVECMag(&sp20); + var_f29 = VECMag(&sp20); if (var_f29 > 0.5f) { var_f29 = 0.5f; } @@ -1011,23 +1011,23 @@ void fn_1_9FF0(omObjData *object) if (fn_1_26F8() == 2) { sp20 = var_r31->unk_EC; sp20.y = 0.0f; - var_f31 = PSVECMag(&sp20); + var_f31 = VECMag(&sp20); var_f29 = 0.006666667f * var_f31; if (var_f31 > 0.0f) { - PSVECNormalize(&sp20, &sp20); + VECNormalize(&sp20, &sp20); } - PSVECSubtract(&sp20, &var_r31->unk_14C, &sp14); - if (PSVECMag(&sp14)) { - PSVECNormalize(&sp14, &sp14); + VECSubtract(&sp20, &var_r31->unk_14C, &sp14); + if (VECMag(&sp14)) { + VECNormalize(&sp14, &sp14); } - PSVECScale(&sp14, &sp14, (0.0033333336f * var_f29) + var_r31->unk_144); - PSVECAdd(&var_r31->unk_14C, &sp14, &var_r31->unk_14C); + VECScale(&sp14, &sp14, (0.0033333336f * var_f29) + var_r31->unk_144); + VECAdd(&var_r31->unk_14C, &sp14, &var_r31->unk_14C); } else { - PSVECScale(&var_r31->unk_14C, &var_r31->unk_14C, 0.98f); + VECScale(&var_r31->unk_14C, &var_r31->unk_14C, 0.98f); } var_r31->unk_14C.y = 0.0f; - var_f31 = PSVECMag(&var_r31->unk_14C); + var_f31 = VECMag(&var_r31->unk_14C); if (var_f31 > 1.0f) { var_f31 = 1.0f / var_f31; var_r31->unk_14C.x *= var_f31; @@ -1095,8 +1095,8 @@ void fn_1_ADC4(omObjData *object) sp28 = var_r31->unk_14C; sp28.y = 0.0f; var_f31 = 0.75f + (2.5f * (var_r31->unk_74 * var_r31->unk_74)); - PSVECScale(&sp28, &sp28, 150.0f * -var_f31); - var_f31 = PSVECMag(&sp28); + VECScale(&sp28, &sp28, 150.0f * -var_f31); + var_f31 = VECMag(&sp28); if (var_f31 > 150.0f) { var_f31 = 150.0f / var_f31; sp28.x *= var_f31; @@ -1106,8 +1106,8 @@ void fn_1_ADC4(omObjData *object) sp28.z += (100.0 * ((0.9f - (0.3f * var_r31->unk_74)) * ((0.002 * (float)frandmod(1000)) - 1.0))); sp1C = var_r31->unk_110; sp1C.y = 0.0f; - PSVECSubtract(&sp28, &sp1C, &sp10); - var_f31 = PSVECMag(&sp10); + VECSubtract(&sp28, &sp1C, &sp10); + var_f31 = VECMag(&sp10); if (var_f31 > (100.0f * (1.2f - (0.3f * var_r31->unk_74)))) { var_r31->unk_110 = sp28; } @@ -1120,8 +1120,8 @@ void fn_1_ADC4(omObjData *object) sp28.y = 0.0f; sp1C = var_r31->unk_EC; sp1C.y = 0.0f; - PSVECSubtract(&sp28, &sp1C, &sp10); - var_f31 = PSVECMag(&sp10); + VECSubtract(&sp28, &sp1C, &sp10); + var_f31 = VECMag(&sp10); if (var_r31->unk_48) { var_r30 = 1; } diff --git a/src/REL/m417Dll/sequence.c b/src/REL/m417Dll/sequence.c index 672218a7..ac2b93ca 100644 --- a/src/REL/m417Dll/sequence.c +++ b/src/REL/m417Dll/sequence.c @@ -60,15 +60,15 @@ void fn_1_BD9C(omObjData *object) } else { var_f31 = 0.0055555557f * (var_r31->unk_10 - var_r29); } - PSVECSubtract(&sp2C[1], &sp2C[0], &sp8); - PSVECScale(&sp8, &sp8, var_f31); - PSVECAdd(&sp2C[0], &sp8, &sp8); + VECSubtract(&sp2C[1], &sp2C[0], &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&sp2C[0], &sp8, &sp8); Center.x = sp8.x; Center.y = sp8.y; Center.z = sp8.z; - PSVECSubtract(&sp14[1], &sp14[0], &sp8); - PSVECScale(&sp8, &sp8, var_f31); - PSVECAdd(&sp14[0], &sp8, &sp8); + VECSubtract(&sp14[1], &sp14[0], &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&sp14[0], &sp8, &sp8); CRot.x = sp8.x; CRot.y = sp8.y; CRot.z = 0.0f; diff --git a/src/REL/m417Dll/water.c b/src/REL/m417Dll/water.c index 49e3af90..2bfef4b4 100644 --- a/src/REL/m417Dll/water.c +++ b/src/REL/m417Dll/water.c @@ -198,8 +198,8 @@ void fn_1_37A0(omObjData *object, UnkM417Struct3 *arg1) var_r29 = 1; } else { - PSVECSubtract(&arg1->unk_14, &arg1->unk_08, &sp8); - var_f31 = PSVECMag(&sp8); + VECSubtract(&arg1->unk_14, &arg1->unk_08, &sp8); + var_f31 = VECMag(&sp8); if (var_f31 < 50.0f) { var_r29 = 1; } @@ -214,7 +214,7 @@ void fn_1_37A0(omObjData *object, UnkM417Struct3 *arg1) arg1->unk_34 = 200.0f + frandmod(600); arg1->unk_24 = 0.0f; } - PSVECSubtract(&arg1->unk_14, &arg1->unk_08, &sp8); + VECSubtract(&arg1->unk_14, &arg1->unk_08, &sp8); arg1->unk_2C = atan2d(sp8.x, sp8.z); arg1->unk_28 = fn_1_2F08(arg1->unk_28, arg1->unk_2C, 0.05f); arg1->unk_24 += (0.05f * (300.0f - arg1->unk_24)); @@ -332,14 +332,14 @@ void fn_1_3D58(omObjData *object) var_r30 = 0; var_r29 = 1080; for (var_r31 = 0; var_r31 < 1080; var_r31++, var_r28++) { - var_f31 = PSVECMag(var_r28); + var_f31 = VECMag(var_r28); if (var_f31 > 850.0f) { var_r29--; lbl_1_bss_178.unk_28[var_r31] = 0; lbl_1_bss_178.unk_1C[var_r31] = var_r29; lbl_1_bss_178.unk_24[var_r29] = 0.0f; var_f31 = 850.0f / var_f31; - PSVECScale(var_r28, var_r28, var_f31); + VECScale(var_r28, var_r28, var_f31); } else { lbl_1_bss_178.unk_28[var_r31] = 1; @@ -391,8 +391,8 @@ void fn_1_3D58(omObjData *object) var_f28 = 500000.0f; var_r28 = lbl_1_bss_178.unk_2C; for (var_r30 = 0; var_r30 < lbl_1_bss_178.unk_18; var_r30++) { - PSVECSubtract(var_r28++, &lbl_1_bss_178.unk_3C[var_r31].unk_00, &spC); - var_f31 = PSVECMag(&spC); + VECSubtract(var_r28++, &lbl_1_bss_178.unk_3C[var_r31].unk_00, &spC); + var_f31 = VECMag(&spC); if (var_f31 < var_f28) { var_r29 = var_r30; var_f28 = var_f31; @@ -402,8 +402,8 @@ void fn_1_3D58(omObjData *object) var_r28 = lbl_1_bss_178.unk_2C; var_r26 = 0; for (var_r30 = 0; var_r30 < lbl_1_bss_178.unk_18; var_r30++) { - PSVECSubtract(var_r28++, &lbl_1_bss_178.unk_3C[var_r31].unk_00, &spC); - var_f31 = lbl_1_bss_178.unk_3C[var_r31].unk_10 * PSVECMag(&spC); + VECSubtract(var_r28++, &lbl_1_bss_178.unk_3C[var_r31].unk_00, &spC); + var_f31 = lbl_1_bss_178.unk_3C[var_r31].unk_10 * VECMag(&spC); lbl_1_bss_178.unk_3C[var_r31].unk_20[var_r26] = var_f31; for (var_r29 = 0; var_r29 <= var_r26; var_r29++) { var_f29 = lbl_1_bss_178.unk_3C[var_r31].unk_20[var_r29] - var_f31; @@ -519,21 +519,21 @@ void fn_1_4E64(omObjData *object) sp14.x = var_r31->unk_14 * sind(var_r31->unk_10); sp14.y = 0.0f; sp14.z = var_r31->unk_14 * cosd(var_r31->unk_10); - PSVECAdd(&var_r31->unk_04, &sp14, &var_r31->unk_04); + VECAdd(&var_r31->unk_04, &sp14, &var_r31->unk_04); if (var_r31->unk_2C >= 0) { HuAudFXEmiterUpDate(var_r31->unk_2C, &var_r31->unk_04); } - if (PSVECMag(&var_r31->unk_04) > 800.0f && var_r31->unk_00 >= 2 && (var_r31->unk_1C -= 0.033333335f, var_r31->unk_1C < 0.0f)) { + if (VECMag(&var_r31->unk_04) > 800.0f && var_r31->unk_00 >= 2 && (var_r31->unk_1C -= 0.033333335f, var_r31->unk_1C < 0.0f)) { var_r31->unk_00 = 0; } else { if (var_r31->unk_00 < 2) { - PSVECSubtract(&sp8, &var_r31->unk_04, &sp20); - if (PSVECDotProduct(&sp14, &sp20) <= 0.0f) { + VECSubtract(&sp8, &var_r31->unk_04, &sp20); + if (VECDotProduct(&sp14, &sp20) <= 0.0f) { var_r31->unk_00 = 2; } else { - var_f31 = 1.2f * (PSVECMag(&sp20) / (var_r31->unk_18 * var_r31->unk_28)); + var_f31 = 1.2f * (VECMag(&sp20) / (var_r31->unk_18 * var_r31->unk_28)); if (var_f31 < 1.2f) { if (var_f31 > 1.0f) { var_f31 = 5.0f * (1.2f - var_f31); @@ -545,13 +545,13 @@ void fn_1_4E64(omObjData *object) } } } - else if (var_r31->unk_00 == 2 && PSVECMag(&var_r31->unk_04) > ((800.0f - (100.0f * (2.0f * var_r31->unk_20))) - 30.000002f)) { + else if (var_r31->unk_00 == 2 && VECMag(&var_r31->unk_04) > ((800.0f - (100.0f * (2.0f * var_r31->unk_20))) - 30.000002f)) { var_r31->unk_00 = 3; fn_1_6D64(lbl_1_bss_58, 0, var_r31->unk_10, 20.0f + (40.0f * var_r31->unk_20), var_r31->unk_20); sp2C.x = sind(var_r31->unk_10); sp2C.y = 0.0f; sp2C.z = cosd(var_r31->unk_10); - PSVECScale(&sp2C, &sp2C, 800.0f); + VECScale(&sp2C, &sp2C, 800.0f); HuAudFXEmiterPlay(1481, &sp2C); if (var_r31->unk_2C >= 0) { var_r31->unk_2C = -1; @@ -584,7 +584,7 @@ void fn_1_4E64(omObjData *object) var_r27 = lbl_1_bss_178.unk_30; var_r28 = lbl_1_bss_178.unk_6CC[lbl_1_bss_178.unk_6B4]; for (var_r30 = 0; var_r30 < lbl_1_bss_178.unk_18; var_r30++, var_r26++, var_r27++) { - var_f31 = PSVECMag(var_r26); + var_f31 = VECMag(var_r26); if (!(var_f31 >= 1.0f)) { var_f30 = (1.0f - var_f31) * var_r31->unk_1C; var_f28 = var_r31->unk_24 * ((1.0f - var_f31) * (1.0f - var_f31)); @@ -655,7 +655,7 @@ void fn_1_57B0(omObjData *object) var_r24 = lbl_1_bss_178.unk_30; var_r25 = lbl_1_bss_178.unk_6BC[lbl_1_bss_178.unk_6B4]; for (var_r30 = 0; var_r30 < lbl_1_bss_178.unk_18; var_r23++, var_r24++, var_r25++, var_r30++) { - PSVECAdd(var_r23, var_r24, var_r25); + VECAdd(var_r23, var_r24, var_r25); } memset(lbl_1_bss_178.unk_30, 0, 30 * 36 * sizeof(Vec)); var_r28 = lbl_1_bss_178.unk_6C4[lbl_1_bss_178.unk_6B4]; @@ -663,22 +663,22 @@ void fn_1_57B0(omObjData *object) var_r27 = lbl_1_bss_178.unk_6BC[lbl_1_bss_178.unk_6B4]; var_r31 = lbl_1_bss_178.unk_38; for (var_r30 = 0; var_r30 < 1015; var_r31++, var_r30++) { - PSVECSubtract(&var_r27[(*var_r31)[1]], &var_r27[(*var_r31)[0]], &sp30); - PSVECSubtract(&var_r27[(*var_r31)[3]], &var_r27[(*var_r31)[0]], &sp24); - PSVECSubtract(&var_r27[(*var_r31)[2]], &var_r27[(*var_r31)[0]], &sp18); - PSVECCrossProduct(&sp30, &sp24, &spC); - PSVECNormalize(&spC, &spC); - PSVECAdd(&spC, &var_r28[(*var_r31)[0]], &var_r28[(*var_r31)[0]]); - PSVECAdd(&spC, &var_r28[(*var_r31)[1]], &var_r28[(*var_r31)[1]]); - PSVECAdd(&spC, &var_r28[(*var_r31)[3]], &var_r28[(*var_r31)[3]]); - PSVECCrossProduct(&sp24, &sp18, &spC); - PSVECNormalize(&spC, &spC); - PSVECAdd(&spC, &var_r28[(*var_r31)[0]], &var_r28[(*var_r31)[0]]); - PSVECAdd(&spC, &var_r28[(*var_r31)[3]], &var_r28[(*var_r31)[3]]); - PSVECAdd(&spC, &var_r28[(*var_r31)[2]], &var_r28[(*var_r31)[2]]); + VECSubtract(&var_r27[(*var_r31)[1]], &var_r27[(*var_r31)[0]], &sp30); + VECSubtract(&var_r27[(*var_r31)[3]], &var_r27[(*var_r31)[0]], &sp24); + VECSubtract(&var_r27[(*var_r31)[2]], &var_r27[(*var_r31)[0]], &sp18); + VECCrossProduct(&sp30, &sp24, &spC); + VECNormalize(&spC, &spC); + VECAdd(&spC, &var_r28[(*var_r31)[0]], &var_r28[(*var_r31)[0]]); + VECAdd(&spC, &var_r28[(*var_r31)[1]], &var_r28[(*var_r31)[1]]); + VECAdd(&spC, &var_r28[(*var_r31)[3]], &var_r28[(*var_r31)[3]]); + VECCrossProduct(&sp24, &sp18, &spC); + VECNormalize(&spC, &spC); + VECAdd(&spC, &var_r28[(*var_r31)[0]], &var_r28[(*var_r31)[0]]); + VECAdd(&spC, &var_r28[(*var_r31)[3]], &var_r28[(*var_r31)[3]]); + VECAdd(&spC, &var_r28[(*var_r31)[2]], &var_r28[(*var_r31)[2]]); } for (var_r30 = 0; var_r30 < 1080; var_r30++, var_r28++) { - PSVECNormalize(var_r28, var_r28); + VECNormalize(var_r28, var_r28); } var_r25 = lbl_1_bss_178.unk_6BC[lbl_1_bss_178.unk_6B4]; for (var_r30 = 0; var_r30 < lbl_1_bss_178.unk_18; var_r25++, var_r30++) { diff --git a/src/REL/m426Dll/main.c b/src/REL/m426Dll/main.c index 34badc03..40b4e7f6 100644 --- a/src/REL/m426Dll/main.c +++ b/src/REL/m426Dll/main.c @@ -3085,27 +3085,27 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1) if (!var_r29->unk_2C) { var_r28 = sp98; var_r27 = sp38; - PSVECScale(var_r27++, var_r28, var_r29->unk_28); - PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); - PSVECScale(var_r27++, var_r28, var_r29->unk_28); - PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); - PSVECScale(var_r27++, var_r28, var_r29->unk_28); - PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); - PSVECScale(var_r27++, var_r28, var_r29->unk_28); - PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); } else { - PSVECScale(&lbl_1_data_22C[0], &sp98[0], var_r29->unk_28); - PSVECScale(&lbl_1_data_22C[1], &sp98[1], var_r29->unk_28); - PSVECScale(&lbl_1_data_22C[2], &sp98[2], var_r29->unk_28); - PSVECScale(&lbl_1_data_22C[3], &sp98[3], var_r29->unk_28); + VECScale(&lbl_1_data_22C[0], &sp98[0], var_r29->unk_28); + VECScale(&lbl_1_data_22C[1], &sp98[1], var_r29->unk_28); + VECScale(&lbl_1_data_22C[2], &sp98[2], var_r29->unk_28); + VECScale(&lbl_1_data_22C[3], &sp98[3], var_r29->unk_28); PSMTXRotRad(spC8, 90, var_r29->unk_2C); PSMTXConcat(sp128, spC8, &spF8[0]); PSMTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); - PSVECAdd(&sp68[0], &var_r29->unk_30, var_r30++); - PSVECAdd(&sp68[1], &var_r29->unk_30, var_r30++); - PSVECAdd(&sp68[2], &var_r29->unk_30, var_r30++); - PSVECAdd(&sp68[3], &var_r29->unk_30, var_r30++); + VECAdd(&sp68[0], &var_r29->unk_30, var_r30++); + VECAdd(&sp68[1], &var_r29->unk_30, var_r30++); + VECAdd(&sp68[2], &var_r29->unk_30, var_r30++); + VECAdd(&sp68[3], &var_r29->unk_30, var_r30++); } var_r20 = var_r29->unk_40 & 3; var_r19 = (var_r29->unk_40 >> 2) & 3; diff --git a/src/REL/m429Dll/main.c b/src/REL/m429Dll/main.c index bbb553b2..8d48fad7 100644 --- a/src/REL/m429Dll/main.c +++ b/src/REL/m429Dll/main.c @@ -476,7 +476,7 @@ void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) var_r30 = 1; } } - PSVECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0); + VECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0); } typedef struct data_1340_sub_struct { diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index 23239a7c..84193a27 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -668,9 +668,9 @@ void fn_1_1204(omObjData *object) var_r31->unk_01 = var_r28 + 1; var_r31->unk_18 = lbl_1_data_68[var_r30][var_r29]; - PSVECSubtract(&lbl_1_data_68[var_r30][var_r29 + 1], &lbl_1_data_68[var_r30][var_r29], &var_r31->unk_24); - var_r31->unk_14 = PSVECMag(&var_r31->unk_24); - PSVECNormalize(&var_r31->unk_24, &var_r31->unk_24); + VECSubtract(&lbl_1_data_68[var_r30][var_r29 + 1], &lbl_1_data_68[var_r30][var_r29], &var_r31->unk_24); + var_r31->unk_14 = VECMag(&var_r31->unk_24); + VECNormalize(&var_r31->unk_24, &var_r31->unk_24); var_r31->unk_08 = var_r31->unk_0A = 0; var_r31->unk_06 = 0; var_r31->unk_0C = 0.0f; @@ -871,7 +871,7 @@ u8 fn_1_1D60(omObjData *object) s32 var_r29; var_r30 = object->data; - sp8 = PSVECMag(&var_r30->unk_84); + sp8 = VECMag(&var_r30->unk_84); for (var_r31 = lbl_1_bss_298, var_r29 = 0; var_r29 < 0x30; var_r29++, var_r31++) { if (var_r31->unk_00 > 2 && var_r31->unk_00 < 5) { spC.x = var_r31->unk_24.x * var_r31->unk_14; @@ -1223,7 +1223,7 @@ void fn_1_2E4C(omObjData *object) if (var_r31->unk_20 != 7) { sp30 = var_r31->unk_6C; sp30.y = 0.0f; - var_f30 = PSVECMag(&sp30); + var_f30 = VECMag(&sp30); if (var_f30 > 700.0f) { var_f29 = -100.0f; } @@ -1259,7 +1259,7 @@ void fn_1_2E4C(omObjData *object) if (sp30.z < 0.0f) { sp30.z *= 0.25f; } - var_f30 = PSVECMag(&sp30); + var_f30 = VECMag(&sp30); Hu3D3Dto2D(&var_r31->unk_6C, 1, &sp24); sp24.x = sp24.x - 288.0f; sp24.y -= 240.0f; @@ -1344,7 +1344,7 @@ void fn_1_35C0(omObjData *object) if (lbl_1_bss_DBA == 7) { var_r31->unk_38++; if (var_r31->unk_38 > var_r31->unk_34) { - PSVECSubtract(&var_r23->unk_34, &var_r31->unk_6C, &sp10); + VECSubtract(&var_r23->unk_34, &var_r31->unk_6C, &sp10); var_f29 = atan2d(sp10.x, sp10.z); if (fabs(fn_1_E5A4(var_r31->unk_7C, var_f29)) > 10.0) { var_r28 = 1; @@ -1511,10 +1511,10 @@ void fn_1_4374(omObjData *object) var_r31->unk_44 -= 0xB4; } if (var_r31->unk_64) { - PSVECSubtract(&var_r31->unk_58, &var_r31->unk_4C, &sp1C); - PSVECSubtract(&sp1C, &var_r31->unk_6C, &sp10); + VECSubtract(&var_r31->unk_58, &var_r31->unk_4C, &sp1C); + VECSubtract(&sp1C, &var_r31->unk_6C, &sp10); sp10.y = 0.0f; - var_f30 = PSVECMag(&sp10); + var_f30 = VECMag(&sp10); if (var_f30 > 10.0f) { if (var_f30 > 20.0f) { var_f30 = 20.0f; @@ -1729,7 +1729,7 @@ void fn_1_4724(omObjData *object) // if (var_r28 < 4) { // var_r29 = lbl_1_bss_DC4[var_r28]->data; // if ((var_r29->unk_07 != 0) && ((var_r29->unk_07 & 2) == 0)) { -// PSVECSubtract(var_r29 + 0x6C, var_r31 + 0x10, &sp18); +// VECSubtract(var_r29 + 0x6C, var_r31 + 0x10, &sp18); // temp_r3_2 = var_r26; // var_r26++; // (&sp8[0])[temp_r3_2] = atan2d(sp18, sp18.z); @@ -1815,7 +1815,7 @@ void fn_1_4724(omObjData *object) // sp18.y = var_r31->unk_14; // sp18.z = var_r31->unk_18; // sp18.y = 0.0f; -// var_f30 = PSVECMag(&sp18); +// var_f30 = VECMag(&sp18); // if (!(var_f30 <= 700.0f)) { // var_r31->unk_02 = 1; // if (fn_1_DA64(atan2d(sp18, sp18.z)) != 0) { @@ -1899,8 +1899,8 @@ void fn_1_4724(omObjData *object) // loop_72: // if (var_r28 < 4) { // var_r29 = lbl_1_bss_DC4[var_r28]->data; -// PSVECSubtract(var_r29 + 0x6C, var_r31 + 0x10, &sp18); -// var_f30 = PSVECMag(&sp18); +// VECSubtract(var_r29 + 0x6C, var_r31 + 0x10, &sp18); +// var_f30 = VECMag(&sp18); // if (!(var_f30 >= 200.0f) && (var_r29->unk_20 != 7)) { // omVibrate(var_r29->unk_00, 0xC, 4, 2); // var_r29->unk_07 = var_r29->unk_07 | 2; @@ -2441,8 +2441,8 @@ void fn_1_7858(omObjData *object) if (var_r31->unk_07 == 0 || (var_r31->unk_07 & 2) != 0) { return; } - PSVECSubtract(&var_r31->unk_6C, &var_r31->unk_90, &sp2C); - var_f29 = PSVECMag(&sp2C); + VECSubtract(&var_r31->unk_6C, &var_r31->unk_90, &sp2C); + var_f29 = VECMag(&sp2C); if (var_f29 == 0.0f) { return; } @@ -2463,15 +2463,15 @@ void fn_1_7858(omObjData *object) sp8.y = var_r30->unk_6C.y; sp8.z = var_r30->unk_6C.z; sp8.y = 0.0f; - PSVECSubtract(&sp14, &sp8, &sp2C); - var_f31 = PSVECMag(&sp2C); + VECSubtract(&sp14, &sp8, &sp2C); + var_f31 = VECMag(&sp2C); if (var_f31 >= 119.40001f) { continue; } - PSVECSubtract(&var_r30->unk_6C, &var_r30->unk_90, &sp2C); - var_f28 = PSVECMag(&sp2C); - PSVECSubtract(&sp14, &sp8, &sp20); - PSVECNormalize(&sp20, &sp20); + VECSubtract(&var_r30->unk_6C, &var_r30->unk_90, &sp2C); + var_f28 = VECMag(&sp2C); + VECSubtract(&sp14, &sp8, &sp20); + VECNormalize(&sp20, &sp20); var_f31 = 120.00001f - var_f31; var_f30 = ((0.6f * var_f28) + (0.4f * var_f29)) / (var_f29 + var_f28); var_r31->unk_6C.x = var_r31->unk_6C.x + (var_f30 * (var_f31 * sp20.x)); @@ -2928,8 +2928,8 @@ void fn_1_9040(float *arg0, Vec *arg1, float arg2[3][3], s32 arg3) arg0[0] = 0.0f; for (var_r30 = 1; var_r30 < arg3; var_r30++) { - PSVECSubtract(&arg1[var_r30], &arg1[var_r30 - 1], &sp8); - arg0[var_r30] = arg0[var_r30 - 1] + PSVECMag(&sp8); + VECSubtract(&arg1[var_r30], &arg1[var_r30 - 1], &sp8); + arg0[var_r30] = arg0[var_r30 - 1] + VECMag(&sp8); } for (var_r27 = 0; var_r27 < 3; var_r27++) { for (var_r30 = 0; var_r30 < arg3; var_r30++) { @@ -3371,9 +3371,9 @@ void fn_1_A688(omObjData *object) { } // if ((var_r30->unk_00 > 1) && (var_r30->unk_00 < 5)) { // var_f31 = 0.0f; // for (var_f31 = 0.0f; var_f31 < (35.416668f + var_r30->unk_14); var_f31 += 35.416668f) { -// PSVECScale(var_r30 + 0x24, &sp8, var_f31); -// PSVECAdd(var_r30 + 0x18, &sp8, &sp14); -// PSVECSubtract(&sp14, &lbl_1_data_514, &sp14); +// VECScale(var_r30 + 0x24, &sp8, var_f31); +// VECAdd(var_r30 + 0x18, &sp8, &sp14); +// VECSubtract(&sp14, &lbl_1_data_514, &sp14); // var_r24 = (0.028235294f * sp14.z) * 0x30; // var_r25 = (0.028235294f * sp14) + var_r24; // var_r25 += lbl_1_bss_DBC->data; @@ -3392,7 +3392,7 @@ void fn_1_A688(omObjData *object) { } // var_r31 = var_r27->data; // if ((var_r31 != NULL) && (var_r31->unk_68 != 0)) { // var_r31->unk_68 = 0; -// PSVECAdd(var_r31 + 0x6C, var_r31 + 0x4C, &sp14); +// VECAdd(var_r31 + 0x6C, var_r31 + 0x4C, &sp14); // var_r31->unk_64 = fn_1_AE18(var_r27->work[0], &sp14, var_r31 + 0x58); // } // } @@ -3429,11 +3429,11 @@ void fn_1_A688(omObjData *object) { } // var_r30 = 0; // var_r28 = 0; // var_f28 = 100.0f * (4.5f - (2.0f * var_f25)); -// var_f31 = PSVECMag(var_r29); +// var_f31 = VECMag(var_r29); // if (var_f31 > 280.0f) { // if (var_f31 > 560.0f) { // var_r28 = 1; -// PSVECNormalize(var_r29, &sp14); +// VECNormalize(var_r29, &sp14); // } // var_f31 -= 280.0f; // var_f31 *= 0.12987013f; @@ -3456,17 +3456,17 @@ void fn_1_A688(omObjData *object) { } // sp8 = sind(var_r31->unk_08); // spC = 0.0f; // sp10 = cosd(var_r31->unk_08); -// PSVECScale(&sp8, &sp20, 600.0f + (100.0f * (8.0f * var_f25))); +// VECScale(&sp8, &sp20, 600.0f + (100.0f * (8.0f * var_f25))); // var_f30 = fn_1_B440(var_r29, &sp2C, &sp20); // if ((var_f30 > -0.2f) && (var_f30 < 1.0f)) { -// PSVECScale(&sp20, &sp20, var_f30); -// PSVECAdd(&sp2C, &sp20, &sp2C); -// PSVECSubtract(&sp2C, var_r29, &sp20); -// var_f31 = PSVECMag(&sp20); +// VECScale(&sp20, &sp20, var_f30); +// VECAdd(&sp2C, &sp20, &sp2C); +// VECSubtract(&sp2C, var_r29, &sp20); +// var_f31 = VECMag(&sp20); // if (var_f31 < var_f28) { // var_f29 = 0.0f; // if (var_r28 != 0) { -// var_f29 = PSVECDotProduct(&sp14, &sp8); +// var_f29 = VECDotProduct(&sp14, &sp8); // var_f27 = fabs(var_f29); // var_f29 = 1.0 - var_f27; // var_f29 = var_f29; @@ -3488,8 +3488,8 @@ void fn_1_A688(omObjData *object) { } // } // else { // block_18: -// PSVECSubtract(var_r29, &sp2C, &sp20); -// var_f31 = PSVECMag(&sp20); +// VECSubtract(var_r29, &sp2C, &sp20); +// var_f31 = VECMag(&sp20); // if (var_f31 < 600.0f) { // var_f31 = 800.0f - var_f31; // var_f31 = 20.0f + (0.1f * var_f31); @@ -3571,7 +3571,7 @@ void fn_1_A688(omObjData *object) { } // var_r19 = 0x2710; // var_r18 = 0; // for (var_r30 = 0; var_r30 < 9; var_r30++) { -// PSVECAdd(&sp40, &lbl_1_data_60C[var_r30], &sp34); +// VECAdd(&sp40, &lbl_1_data_60C[var_r30], &sp34); // sp18 = var_r17 + lbl_1_data_5E8[var_r30]; // var_r21 = &lbl_1_bss_C[lbl_1_data_708[var_r30]] + 0x156; // var_f31 = 0.0f; @@ -3583,7 +3583,7 @@ void fn_1_A688(omObjData *object) { } // for (var_r23 = 0; var_r23 < 3; var_r23++) { // for (var_r28 = 0; var_r28 < 9; var_r28++) { // var_r24 = var_r22 + lbl_1_data_5E8[var_r28]; -// PSVECAdd(&sp28, &lbl_1_data_60C[var_r28], &sp4C); +// VECAdd(&sp28, &lbl_1_data_60C[var_r28], &sp4C); // if ((lbl_1_bss_DBC->data <= var_r24) && ((lbl_1_bss_DBC->data + 0x900) > var_r24)) { // var_f27 = sp4C; // var_f25 = fabs(var_f27); @@ -3606,9 +3606,9 @@ void fn_1_A688(omObjData *object) { } // for (var_r26 = 0; var_r26 < 4; var_r26++) { // if (var_r26 != sp8) { // var_r25 = lbl_1_bss_DC4[var_r26]->data; -// PSVECSubtract(&sp4C, var_r25 + 0x6C, &sp1C); +// VECSubtract(&sp4C, var_r25 + 0x6C, &sp1C); // sp1C.y = 0.0f; -// var_f30 = PSVECMag(&sp1C); +// var_f30 = VECMag(&sp1C); // if (var_f30 < var_f29) { // var_f30 = var_f29 - var_f30; // var_f30 *= 40.0f / var_f29; @@ -3631,7 +3631,7 @@ void fn_1_A688(omObjData *object) { } // } // } // } -// PSVECAdd(&sp28, &lbl_1_data_69C[var_r30], &sp28); +// VECAdd(&sp28, &lbl_1_data_69C[var_r30], &sp28); // var_r22 += lbl_1_data_678[var_r30]; // var_r21 = &var_r21[lbl_1_data_72C[var_r30]]; // var_f31 *= 2.0f; @@ -3667,9 +3667,9 @@ void fn_1_A688(omObjData *object) { } // sp8 = arg0; // spC = arg1; // var_r31 = arg2; -// PSVECSubtract(spC, sp8, &sp10); -// var_f31 = PSVECDotProduct(&sp10, var_r31); -// var_f30 = -PSVECSquareMag(var_r31); +// VECSubtract(spC, sp8, &sp10); +// var_f31 = VECDotProduct(&sp10, var_r31); +// var_f30 = -VECSquareMag(var_r31); // if (var_f30 != 0.0f) { // var_f31 /= var_f30; // } diff --git a/src/REL/m440Dll/main.c b/src/REL/m440Dll/main.c index 0ac4613e..85f9bd0b 100644 --- a/src/REL/m440Dll/main.c +++ b/src/REL/m440Dll/main.c @@ -1688,7 +1688,7 @@ void fn_1_71FC(unkStruct6 *arg0, Vec *arg1, s16 arg2, Vec arg3) sp1C.x = temp_r30->unk68[0]; sp1C.y = temp_r30->unk68[1]; sp1C.z = temp_r30->unk68[2]; - PSVECNormalize(&sp1C, &sp1C); + VECNormalize(&sp1C, &sp1C); var_f31 = var_f30 = var_f29 = 0.0f; for (var_r31 = 0; var_r31 < 3; var_r31++) { @@ -2051,7 +2051,7 @@ void fn_1_8AC4(Mtx arg0) if ((var_r29->unk_00 & 0x8000) != 0) { PSMTXMultVecSR(Hu3DCameraMtx, &sp34, &sp34); } - var_f30 = PSVECDotProduct(&sp34, &sp10); + var_f30 = VECDotProduct(&sp34, &sp10); var_f30 *= 10000.0f; OSf32tos16(&var_f30, &temp_r31); if (temp_r31 == -0x2710) { @@ -2067,8 +2067,8 @@ void fn_1_8AC4(Mtx arg0) PSMTXIdentity(sp40); } else { - PSVECCrossProduct(&sp28, &sp10, &sp1C); - var_f29 = acosf(PSVECDotProduct(&sp10, &sp28)); + VECCrossProduct(&sp28, &sp10, &sp1C); + var_f29 = acosf(VECDotProduct(&sp10, &sp28)); PSMTXRotAxisRad(sp40, &sp1C, var_f29); } PSMTXConcat(sp40, sp70, spA0); @@ -2483,20 +2483,20 @@ void fn_1_9C04(ModelData *arg0, Mtx arg1) else { if (0.0f == var_r29->unk44) { fn_1_A328((Vec *)&sp68[0], &sp38, &var_r29->unk48, 4); - PSVECAdd(&sp38, &var_r29->unk54, var_r31++); - PSVECAdd(&sp44, &var_r29->unk54, var_r31++); - PSVECAdd(&sp50, &var_r29->unk54, var_r31++); - PSVECAdd(&sp5C, &var_r29->unk54, var_r31++); + VECAdd(&sp38, &var_r29->unk54, var_r31++); + VECAdd(&sp44, &var_r29->unk54, var_r31++); + VECAdd(&sp50, &var_r29->unk54, var_r31++); + VECAdd(&sp5C, &var_r29->unk54, var_r31++); } else { fn_1_A328(&temp_r30->unk2C, &sp38, &var_r29->unk48, 4); PSMTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk44); PSMTXConcat(sp128, spC8, sp98); PSMTXMultVecArray(sp98, &sp38, &sp8, 4); - PSVECAdd(&sp8, &var_r29->unk54, var_r31++); - PSVECAdd(&sp14, &var_r29->unk54, var_r31++); - PSVECAdd(&sp20, &var_r29->unk54, var_r31++); - PSVECAdd(&sp2C, &var_r29->unk54, var_r31++); + VECAdd(&sp8, &var_r29->unk54, var_r31++); + VECAdd(&sp14, &var_r29->unk54, var_r31++); + VECAdd(&sp20, &var_r29->unk54, var_r31++); + VECAdd(&sp2C, &var_r29->unk54, var_r31++); } if (var_r29->unk60 != -1) { fn_1_A284(var_r27, temp_r30->unk5C, var_r29->unk60, temp_r30->unk60, temp_r30->unk64); diff --git a/src/REL/m441Dll/main.c b/src/REL/m441Dll/main.c index 6d3414e5..3bee3e76 100644 --- a/src/REL/m441Dll/main.c +++ b/src/REL/m441Dll/main.c @@ -476,7 +476,7 @@ void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) var_r30 = 1; } } - PSVECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0); + VECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0); } omObjData *lbl_1_bss_4C; diff --git a/src/REL/m442Dll/main.c b/src/REL/m442Dll/main.c index 4f3de7a0..267d7377 100644 --- a/src/REL/m442Dll/main.c +++ b/src/REL/m442Dll/main.c @@ -237,7 +237,7 @@ void ObjectSetup(void) lbl_1_bss_14.x = lbl_1_data_60.x - lbl_1_data_54.x; lbl_1_bss_14.y = lbl_1_data_60.y - lbl_1_data_54.y; lbl_1_bss_14.z = lbl_1_data_60.z - lbl_1_data_54.z; - PSVECNormalize(&lbl_1_bss_14, &lbl_1_bss_14); + VECNormalize(&lbl_1_bss_14, &lbl_1_bss_14); var_r29 = Hu3DGLightCreateV(&lbl_1_data_54, &lbl_1_bss_14, &lbl_1_data_6C); Hu3DGLightInfinitytSet(var_r29); Hu3DGLightStaticSet(var_r29, 1); @@ -597,8 +597,8 @@ void fn_1_1230(omObjData *object) var_r30 = object->data; var_f28 = 1.0f; - PSVECSubtract(&var_r30->unk_70, &object->trans, &sp18); - var_f30 = PSVECMag(&sp18); + VECSubtract(&var_r30->unk_70, &object->trans, &sp18); + var_f30 = VECMag(&sp18); if (var_f30 < 300.0f) { if (var_f30 < 140.0f) { if ((frand() & 1) == 0) { @@ -610,7 +610,7 @@ void fn_1_1230(omObjData *object) } else { var_f29 = 32.0f; - PSVECNormalize(&sp18, &sp18); + VECNormalize(&sp18, &sp18); var_r30->unk_06 = sp18.x * var_f29; var_r30->unk_07 = -sp18.z * var_f29; } @@ -627,8 +627,8 @@ void fn_1_1230(omObjData *object) var_r27 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); for (var_r28 = 0; var_r28 < 1; var_r28++) { if (var_r27[var_r28] != object) { - PSVECSubtract(&lbl_1_bss_C084[var_r31 + 1][var_r29 + 1].unk_00, &var_r27[var_r28]->trans, &sp18); - var_f30 = PSVECMag(&sp18); + VECSubtract(&lbl_1_bss_C084[var_r31 + 1][var_r29 + 1].unk_00, &var_r27[var_r28]->trans, &sp18); + var_f30 = VECMag(&sp18); if (var_f30 < 800.0f) { var_f31 = cosd(((90.0f * var_f30) / 800.0f)); var_f31 *= var_f31; @@ -642,8 +642,8 @@ void fn_1_1230(omObjData *object) for (var_r28 = 0; var_r28 < 15; var_r28++) { var_r19 = var_r27[var_r28]->data; if (var_r19->unk_00_field0) { - PSVECSubtract(&lbl_1_bss_C084[var_r31 + 1][var_r29 + 1].unk_00, &var_r27[var_r28]->trans, &sp18); - var_f30 = PSVECMag(&sp18); + VECSubtract(&lbl_1_bss_C084[var_r31 + 1][var_r29 + 1].unk_00, &var_r27[var_r28]->trans, &sp18); + var_f30 = VECMag(&sp18); if (var_f30 < 800.0f) { var_f31 = cosd(((90.0f * var_f30) / 800.0f)); var_f31 *= var_f31; @@ -735,8 +735,8 @@ void fn_1_1230(omObjData *object) } } } while (var_r22 != 0); - PSVECSubtract(&lbl_1_bss_C084[sp24[3] + 1][sp24[2] + 1].unk_00, &object->trans, &sp18); - var_f30 = PSVECMag(&sp18); + VECSubtract(&lbl_1_bss_C084[sp24[3] + 1][sp24[2] + 1].unk_00, &object->trans, &sp18); + var_f30 = VECMag(&sp18); var_f29 = 64.0f + (0.2f * (32.0f * var_r30->unk_12)); var_r30->unk_18 = fn_1_85E8(var_r30->unk_18, atan2d(sp18.x, sp18.z), 0.1f); var_r30->unk_06 = var_f29 * sind(var_r30->unk_18); @@ -1061,11 +1061,11 @@ s16 fn_1_31FC(omObjData *object) sp20.z = object->trans.z + (140.0f * sp8.z); if (sp20.x >= -800.0f && sp20.x < 800.0f && sp20.z >= -800.0f && sp20.z < 800.0f) { for (var_r27 = lbl_1_bss_C9F8, var_r28 = 0; var_r28 < lbl_1_bss_119F8; var_r28++, var_r27++) { - PSVECSubtract(&var_r27->unk_00, &sp20, &sp14); - var_f31 = PSVECMag(&sp14); - PSVECSubtract(&var_r27->unk_00, &object->trans, &sp14); - PSVECNormalize(&sp14, &sp14); - var_f29 = PSVECDotProduct(&sp14, &sp8); + VECSubtract(&var_r27->unk_00, &sp20, &sp14); + var_f31 = VECMag(&sp14); + VECSubtract(&var_r27->unk_00, &object->trans, &sp14); + VECNormalize(&sp14, &sp14); + var_f29 = VECDotProduct(&sp14, &sp8); if (var_f31 < var_f30 && var_f29 >= 0.0f) { var_f30 = var_f31; var_r29 = var_r28; @@ -1076,8 +1076,8 @@ s16 fn_1_31FC(omObjData *object) var_r26 = 1; } if (var_r29 >= 0 && lbl_1_bss_C9F8[var_r29].unk_0C < 3) { - PSVECSubtract(&object->trans, &lbl_1_bss_C9F8[var_r29].unk_00, &sp14); - PSVECNormalize(&sp14, &sp14); + VECSubtract(&object->trans, &lbl_1_bss_C9F8[var_r29].unk_00, &sp14); + VECNormalize(&sp14, &sp14); var_r31->unk_4C = (140.0f * sp14.x) + lbl_1_bss_C9F8[var_r29].unk_00.x; var_r31->unk_50 = 0.0f; var_r31->unk_54 = (140.0f * sp14.z) + lbl_1_bss_C9F8[var_r29].unk_00.z; @@ -1132,12 +1132,12 @@ void fn_1_3658(omObjData *object) for (var_r30 = 0; var_r30 < 15; var_r30++) { var_r28 = var_r29[var_r30]->data; if (var_r28->unk_00_field0) { - PSVECSubtract(&object->trans, &var_r29[var_r30]->trans, &spC); - var_f31 = PSVECMag(&spC); + VECSubtract(&object->trans, &var_r29[var_r30]->trans, &spC); + var_f31 = VECMag(&spC); if (var_f31 < 70.0f) { var_f30 = 70.0f - var_f31; if (var_f31 != 0.0f) { - PSVECNormalize(&spC, &spC); + VECNormalize(&spC, &spC); } else { spC.x = 0.0f; @@ -1169,12 +1169,12 @@ void fn_1_37B8(omObjData *object) var_r29 = var_r28[var_r30]; if (object != var_r29) { sp8 = var_r29->data; - PSVECSubtract(&object->trans, &var_r29->trans, &sp10); - var_f31 = PSVECMag(&sp10); + VECSubtract(&object->trans, &var_r29->trans, &sp10); + var_f31 = VECMag(&sp10); if (var_f31 < 100.0f) { var_f30 = 100.0f - var_f31; if (var_f31 != 0.0f) { - PSVECNormalize(&sp10, &sp10); + VECNormalize(&sp10, &sp10); } else { sp10.x = 0.0f; @@ -1210,12 +1210,12 @@ void fn_1_3908(omObjData *object) var_r31 = var_r28[var_r29]; if (object != var_r31) { var_r26 = var_r31->data; - PSVECSubtract(&object->trans, &var_r31->trans, &sp8); - var_f27 = PSVECMag(&sp8); + VECSubtract(&object->trans, &var_r31->trans, &sp8); + var_f27 = VECMag(&sp8); if (var_f27 < 100.0f) { var_f31 = 100.0f - var_f27; - var_f29 = PSVECMag(&var_r27->unk_24); - var_f26 = PSVECMag(&var_r26->unk_24); + var_f29 = VECMag(&var_r27->unk_24); + var_f26 = VECMag(&var_r26->unk_24); if (var_f29 + var_f26 == 0.0f) { var_f30 = var_f28 = 0.5f; } @@ -1223,7 +1223,7 @@ void fn_1_3908(omObjData *object) var_f30 = var_f29 / (var_f29 + var_f26); var_f28 = 1.0f - var_f30; } - PSVECNormalize(&sp8, &sp8); + VECNormalize(&sp8, &sp8); object->trans.x += var_f28 * (sp8.x * var_f31); object->trans.z += var_f28 * (sp8.z * var_f31); var_r31->trans.x += var_f30 * (-sp8.x * var_f31); @@ -1247,17 +1247,17 @@ s32 fn_1_3AE4(omObjData *object, Vec *arg1) s32 var_r28; sp8 = object->data; - PSVECSubtract(arg1, &object->trans, &spC); - PSVECNormalize(&spC, &spC); + VECSubtract(arg1, &object->trans, &spC); + VECNormalize(&spC, &spC); var_r30 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); var_r28 = 1; for (var_r31 = 0; var_r31 < 1; var_r31++) { if (object != var_r30[var_r31]) { - PSVECSubtract(&var_r30[var_r31]->trans, arg1, &sp18); - var_f30 = PSVECMag(&sp18); - PSVECSubtract(&var_r30[var_r31]->trans, &object->trans, &sp18); - PSVECNormalize(&sp18, &sp18); - var_f31 = PSVECDotProduct(&sp18, &spC); + VECSubtract(&var_r30[var_r31]->trans, arg1, &sp18); + var_f30 = VECMag(&sp18); + VECSubtract(&var_r30[var_r31]->trans, &object->trans, &sp18); + VECNormalize(&sp18, &sp18); + var_f31 = VECDotProduct(&sp18, &spC); if (var_f31 >= 0.0f && var_f30 < 80.0f) { var_r28 = 0; } @@ -1639,8 +1639,8 @@ s32 fn_1_59C0(Vec *arg0) s32 var_r31; for (var_r31 = 0; var_r31 < lbl_1_bss_119F8; var_r31++) { - PSVECSubtract(&lbl_1_bss_C9F8[var_r31].unk_00, arg0, &spC); - if (PSVECMag(&spC) < 50.0f) { + VECSubtract(&lbl_1_bss_C9F8[var_r31].unk_00, arg0, &spC); + if (VECMag(&spC) < 50.0f) { return var_r31; } } @@ -1804,7 +1804,7 @@ void fn_1_64B4(ModelData *model, ParticleData *particle, Mtx matrix) var_r31->unk08.x = 20.0f; var_r31->unk08.y = 100.0f; var_r31->unk08.z = 0.0f; - PSVECNormalize(&var_r31->unk08, &var_r31->unk08); + VECNormalize(&var_r31->unk08, &var_r31->unk08); var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = var_r31->unk40.a = 0xFF; } var_r31 = var_r29->unk_48; @@ -1840,7 +1840,7 @@ void fn_1_64B4(ModelData *model, ParticleData *particle, Mtx matrix) sp20.x = sp38.x + (2500.0f * sp8.x); sp20.y = sp38.y + (2500.0f * sp8.y); sp20.z = sp38.z + (2500.0f * sp8.z); - var_f31 = -PSVECDotProduct(&var_r31->unk08, &sp14); + var_f31 = -VECDotProduct(&var_r31->unk08, &sp14); if (var_f31 >= 0.0f) { espTPLvlSet(particle->unk_02, 0.5f * var_f31 * var_f31); } @@ -2016,8 +2016,8 @@ s32 fn_1_75DC(Vec *arg0) for (var_r30 = 0; var_r30 < 15; var_r30++) { var_r28 = var_r29[var_r30]->data; if (var_r28->unk_00_field0 == 0) { - PSVECSubtract(&var_r29[var_r30]->trans, arg0, &spC); - var_f31 = PSVECMag(&spC); + VECSubtract(&var_r29[var_r30]->trans, arg0, &spC); + var_f31 = VECMag(&spC); if (var_f31 < 100.0f) { return var_r30; } diff --git a/src/REL/m444dll/main.c b/src/REL/m444dll/main.c index 126a778e..2560908d 100644 --- a/src/REL/m444dll/main.c +++ b/src/REL/m444dll/main.c @@ -1439,15 +1439,15 @@ void fn_1_7290(omObjData *object) + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); - PSVECCrossProduct(&dir, &offset, &offset); - PSVECNormalize(&offset, &offset); + VECCrossProduct(&dir, &offset, &offset); + VECNormalize(&offset, &offset); stick_pos = (HuPadSubStkX[0] & 0xF8); if (stick_pos != 0) { lbl_1_bss_290[0].x += 0.05f * (offset.x * stick_pos); lbl_1_bss_290[0].y += 0.05f * (offset.y * stick_pos); lbl_1_bss_290[0].z += 0.05f * (offset.z * stick_pos); } - PSVECNormalize(&y_offset, &offset); + VECNormalize(&y_offset, &offset); stick_pos = -(HuPadSubStkY[0] & 0xF8); if (stick_pos != 0) { lbl_1_bss_290[0].x += 0.05f * (offset.x * stick_pos); diff --git a/src/REL/m447dll/player.c b/src/REL/m447dll/player.c index 6a311bff..20398245 100755 --- a/src/REL/m447dll/player.c +++ b/src/REL/m447dll/player.c @@ -528,7 +528,7 @@ void fn_1_5080(UnkM447Struct_04* arg0) { fn_1_7A6C(arg0); var_r30 = fn_1_7984(arg0); fn_1_1ED4(var_r30, &sp14); - PSVECSubtract(&sp14, &arg0->unk28, &sp8); + VECSubtract(&sp14, &arg0->unk28, &sp8); arg0->unk38 = fn_1_4F7C(arg0->unk38, atan2d(sp8.x, sp8.z), 1.0f); fn_1_71FC(arg0, 3, 0.0f, 8.0f, 0); arg0->unk20 = 1; @@ -695,7 +695,7 @@ void fn_1_5760(UnkM447Struct_04* arg0) { case 1: var_r30 = fn_1_7984(arg0); sp14 = lbl_1_bss_A4[var_r30]->unk10; - PSVECSubtract(&sp14, &arg0->unk28, &sp8); + VECSubtract(&sp14, &arg0->unk28, &sp8); arg0->unk38 = fn_1_4F7C(arg0->unk38, atan2d(sp8.x, sp8.z), 0.1f); if (arg0->unk60++ < 30) { break; diff --git a/src/REL/messDll/main.c b/src/REL/messDll/main.c index fe6119d4..9f861bf1 100755 --- a/src/REL/messDll/main.c +++ b/src/REL/messDll/main.c @@ -87,15 +87,15 @@ static void fn_1_300(omObjData *arg0) { sp8.z = sp14.x * (sp20.x * sp20.z * (1.0 - cosd(temp_f31)) - sp20.y * sind(temp_f31)) + sp14.y * (sp20.y * sp20.z * (1.0 - cosd(temp_f31)) + sp20.x * sind(temp_f31)) + sp14.z * (sp20.z * sp20.z + (1.0f - sp20.z * sp20.z) * cosd(temp_f31)); - PSVECCrossProduct(&sp14, &sp20, &sp20); - PSVECNormalize(&sp20, &sp20); + VECCrossProduct(&sp14, &sp20, &sp20); + VECNormalize(&sp20, &sp20); temp_r31 = HuPadSubStkX[0] & 0xF8; if (temp_r31 != 0) { Center.x += sp20.x * temp_r31 * 0.05f; Center.y += sp20.y * temp_r31 * 0.05f; Center.z += sp20.z * temp_r31 * 0.05f; } - PSVECNormalize(&sp8, &sp20); + VECNormalize(&sp8, &sp20); temp_r31 = -(HuPadSubStkY[0] & 0xF8); if (temp_r31 != 0) { Center.x += sp20.x * temp_r31 * 0.05f; diff --git a/src/REL/mgmodedll/mgmode.c b/src/REL/mgmodedll/mgmode.c index b4565103..110cbe9b 100644 --- a/src/REL/mgmodedll/mgmode.c +++ b/src/REL/mgmodedll/mgmode.c @@ -1232,15 +1232,15 @@ void fn_1_5974(omObjData *object) + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); - PSVECCrossProduct(&dir, &offset, &offset); - PSVECNormalize(&offset, &offset); + VECCrossProduct(&dir, &offset, &offset); + VECNormalize(&offset, &offset); stick_pos = (HuPadSubStkX[0] & 0xF8); if (stick_pos != 0) { lbl_1_bss_274[0].x += 0.05f * (offset.x * stick_pos); lbl_1_bss_274[0].y += 0.05f * (offset.y * stick_pos); lbl_1_bss_274[0].z += 0.05f * (offset.z * stick_pos); } - PSVECNormalize(&y_offset, &offset); + VECNormalize(&y_offset, &offset); stick_pos = -(HuPadSubStkY[0] & 0xF8); if (stick_pos != 0) { lbl_1_bss_274[0].x += 0.05f * (offset.x * stick_pos); diff --git a/src/REL/modeltestDll/main.c b/src/REL/modeltestDll/main.c index 85e6f2ad..6a31b39b 100644 --- a/src/REL/modeltestDll/main.c +++ b/src/REL/modeltestDll/main.c @@ -351,7 +351,7 @@ static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) Center.y += 0.05f * (sp30->y * temp_r28); Center.z += 0.05f * (sp30->z * temp_r28); } - PSVECNormalize(sp18, sp30); + VECNormalize(sp18, sp30); temp_r28 = -(HuPadSubStkY[0] & 0xF8); if (temp_r28 != 0) { Center.x += 0.05f * (sp30->x * temp_r28); @@ -489,8 +489,8 @@ void fn_1_F9C(struct om_obj_data *omData) + (sp24.x * (sp30.x * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) - sp30.y * sin((M_PI * temp_f31) / 180.0)) + sp24.y * (sp30.y * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) + sp30.x * sin((M_PI * temp_f31) / 180.0))); - PSVECCrossProduct(&sp24, &sp30, &sp30); - PSVECNormalize(&sp30, &sp30); + VECCrossProduct(&sp24, &sp30, &sp30); + VECNormalize(&sp30, &sp30); if (lbl_1_bss_C == 0) { HuControlCamCenter(&sp18, &sp30); diff --git a/src/REL/modeltestDll/modeltest00.c b/src/REL/modeltestDll/modeltest00.c index ac8d4e0a..2f5eb8e1 100644 --- a/src/REL/modeltestDll/modeltest00.c +++ b/src/REL/modeltestDll/modeltest00.c @@ -60,7 +60,7 @@ static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) { Center.y += 0.05f * (sp30->y * temp_r28); Center.z += 0.05f * (sp30->z * temp_r28); } - PSVECNormalize(sp18, sp30); + VECNormalize(sp18, sp30); temp_r28 = -(HuPadSubStkY[0] & 0xF8); if (temp_r28 != 0) { Center.x += 0.05f * (sp30->x * temp_r28); @@ -126,8 +126,8 @@ void fn_1_37DC(omObjData *) + (sp24.x * (sp30.x * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) - sp30.y * sin((M_PI * temp_f31) / 180.0)) + sp24.y * (sp30.y * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) + sp30.x * sin((M_PI * temp_f31) / 180.0))); - PSVECCrossProduct(&sp24, &sp30, &sp30); - PSVECNormalize(&sp30, &sp30); + VECCrossProduct(&sp24, &sp30, &sp30); + VECNormalize(&sp30, &sp30); HuControlCamCenter(&sp18, &sp30); } diff --git a/src/REL/modeltestDll/modeltest01.c b/src/REL/modeltestDll/modeltest01.c index 69dba59e..c76316a2 100644 --- a/src/REL/modeltestDll/modeltest01.c +++ b/src/REL/modeltestDll/modeltest01.c @@ -139,7 +139,7 @@ void fn_1_4DF8(omObjData *object) Center.y += 0.05f * (offset.y * temp_r31); Center.z += 0.05f * (offset.z * temp_r31); } - PSVECNormalize(&y_offset, &offset); + VECNormalize(&y_offset, &offset); temp_r31 = -(HuPadSubStkY[0] & 0xF8); if (temp_r31 != 0) { Center.x += 0.05f * (offset.x * temp_r31); diff --git a/src/REL/modeseldll/main.c b/src/REL/modeseldll/main.c index 84d5c977..7a9b949c 100644 --- a/src/REL/modeseldll/main.c +++ b/src/REL/modeseldll/main.c @@ -294,15 +294,15 @@ void fn_1_F40(omObjData *object) + (dir.x * (offset.x * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) - offset.y * sin((M_PI * z_rot) / 180.0)) + dir.y * (offset.y * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) + offset.x * sin((M_PI * z_rot) / 180.0))); - PSVECCrossProduct(&dir, &offset, &offset); - PSVECNormalize(&offset, &offset); + VECCrossProduct(&dir, &offset, &offset); + VECNormalize(&offset, &offset); stick_pos = (HuPadSubStkX[0] & 0xF8); if (stick_pos != 0) { lbl_1_bss_C[0].x += 0.05f * (offset.x * stick_pos); lbl_1_bss_C[0].y += 0.05f * (offset.y * stick_pos); lbl_1_bss_C[0].z += 0.05f * (offset.z * stick_pos); } - PSVECNormalize(&y_offset, &offset); + VECNormalize(&y_offset, &offset); stick_pos = -(HuPadSubStkY[0] & 0xF8); if (stick_pos != 0) { lbl_1_bss_C[0].x += 0.05f * (offset.x * stick_pos); diff --git a/src/REL/resultDll/main.c b/src/REL/resultDll/main.c index 52dcbd6a..7c27ee4c 100644 --- a/src/REL/resultDll/main.c +++ b/src/REL/resultDll/main.c @@ -1287,15 +1287,15 @@ void fn_1_5880(omObjData *object) + (dir.x * (offset.x * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) - offset.y * sin((M_PI * z_rot) / 180.0)) + dir.y * (offset.y * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) + offset.x * sin((M_PI * z_rot) / 180.0))); - PSVECCrossProduct(&dir, &offset, &offset); - PSVECNormalize(&offset, &offset); + VECCrossProduct(&dir, &offset, &offset); + VECNormalize(&offset, &offset); stick_pos = (HuPadSubStkX[0] & 0xF8); if (stick_pos != 0) { Center.x += 0.05f * (offset.x * stick_pos); Center.y += 0.05f * (offset.y * stick_pos); Center.z += 0.05f * (offset.z * stick_pos); } - PSVECNormalize(&y_offset, &offset); + VECNormalize(&y_offset, &offset); stick_pos = -(HuPadSubStkY[0] & 0xF8); if (stick_pos != 0) { Center.x += 0.05f * (offset.x * stick_pos); diff --git a/src/REL/w01Dll/main.c b/src/REL/w01Dll/main.c index 70dce0bd..b96e4e36 100755 --- a/src/REL/w01Dll/main.c +++ b/src/REL/w01Dll/main.c @@ -727,8 +727,8 @@ static void fn_1_1990(void) { temp_r3 = temp_r31; break; } - PSVECSubtract(&temp_r3->pos, &temp_r31->pos, &sp10); - var_f31 += PSVECMag(&sp10); + VECSubtract(&temp_r3->pos, &temp_r31->pos, &sp10); + var_f31 += VECMag(&sp10); if (var_f31 >= lbl_1_bss_640) { break; } @@ -755,11 +755,11 @@ static void fn_1_1B3C(void) { Vec spC; Mtx sp48; - PSVECSubtract(&lbl_1_bss_654, &lbl_1_bss_648, &sp30); + VECSubtract(&lbl_1_bss_654, &lbl_1_bss_648, &sp30); if (lbl_1_bss_6B3 != 0) { BoardModelPosGet(lbl_1_bss_6C4[1], &sp3C); - PSVECSubtract(&sp3C, &lbl_1_bss_654, &sp18); - PSVECNormalize(&sp18, &sp18); + VECSubtract(&sp3C, &lbl_1_bss_654, &sp18); + VECNormalize(&sp18, &sp18); sp24 = lbl_1_bss_648; spC = lbl_1_bss_654; BoardMTXCalcLookAt(sp48, &spC, &sp18, &sp24); @@ -811,10 +811,10 @@ static void fn_1_1FA4(void) { spC.x = lbl_1_bss_648.x; spC.y = lbl_1_bss_648.y + 200.0f; spC.z = lbl_1_bss_648.z; - PSVECSubtract(&spC, &lbl_1_bss_618, &spC); - PSVECScale(&spC, &spC, 0.08f); - PSVECAdd(&spC, &lbl_1_bss_618, &lbl_1_bss_618); - PSVECSubtract(&lbl_1_bss_654, &lbl_1_bss_648, &spC); + VECSubtract(&spC, &lbl_1_bss_618, &spC); + VECScale(&spC, &spC, 0.08f); + VECAdd(&spC, &lbl_1_bss_618, &lbl_1_bss_618); + VECSubtract(&lbl_1_bss_654, &lbl_1_bss_648, &spC); if (spC.x != 0.0f || spC.z != 0.0f) { temp_f29 = atan2f(spC.y, VECMagXZ(&spC)); temp_f28 = atan2f(-spC.x, -spC.z); @@ -836,9 +836,9 @@ static void fn_1_1FA4(void) { sp18.x = sp18.x + var_f27 * sin(1.4137166738510132); // TODO: should be sind(81) sp18.y = sp18.y + -150.0f; sp18.z = sp18.z + var_f27 * cos(1.4137166738510132); // TODO: should be cosd(81) - PSVECSubtract(&sp18, &lbl_1_bss_630, &spC); - PSVECScale(&spC, &spC, lbl_1_bss_66C); - PSVECAdd(&spC, &lbl_1_bss_630, &lbl_1_bss_630); + VECSubtract(&sp18, &lbl_1_bss_630, &spC); + VECScale(&spC, &spC, lbl_1_bss_66C); + VECAdd(&spC, &lbl_1_bss_630, &lbl_1_bss_630); } else { if (lbl_1_bss_66C < 0.08f) { lbl_1_bss_66C += 0.00066666666f; @@ -846,10 +846,10 @@ static void fn_1_1FA4(void) { spC.x = 400.0 * (sin(temp_f28) * cos(temp_f29)); spC.y = 400.0 * -sin(temp_f29); spC.z = 400.0 * (cos(temp_f28) * cos(temp_f29)); - PSVECAdd(&lbl_1_bss_618, &spC, &spC); - PSVECSubtract(&spC, &lbl_1_bss_630, &spC); - PSVECScale(&spC, &spC, lbl_1_bss_66C); - PSVECAdd(&spC, &lbl_1_bss_630, &lbl_1_bss_630); + VECAdd(&lbl_1_bss_618, &spC, &spC); + VECSubtract(&spC, &lbl_1_bss_630, &spC); + VECScale(&spC, &spC, lbl_1_bss_66C); + VECAdd(&spC, &lbl_1_bss_630, &lbl_1_bss_630); } } @@ -870,8 +870,8 @@ static float fn_1_2524(void) { for (i = 0; i < 24; i++) { if (lbl_1_bss_600[i] == 0) { BoardModelPosGet(lbl_1_bss_5D0[i], &sp18); - PSVECSubtract(&sp18, &sp24, &spC); - if (!(PSVECMag(&spC) > 400.0f)) { + VECSubtract(&sp18, &sp24, &spC); + if (!(VECMag(&spC) > 400.0f)) { break; } } @@ -879,7 +879,7 @@ static float fn_1_2524(void) { if (i == 24) { return 0.0f; } - PSVECSubtract(&sp18, &sp24, &spC); + VECSubtract(&sp18, &sp24, &spC); var_f30 = atan2d(spC.x, spC.z); if (var_f30 > 0.0f) { var_f30 = 45.0f; @@ -944,7 +944,7 @@ static void fn_1_2F18(void) { var_f29 -= 360.0f; } BoardModelPosGet(lbl_1_bss_6C4[0], &spC); - PSVECSubtract(&lbl_1_bss_654, &lbl_1_bss_648, &sp18); + VECSubtract(&lbl_1_bss_654, &lbl_1_bss_648, &sp18); if (sp18.z != 0.0f || sp18.x != 0.0f) { sp24.y = atan2d(sp18.x, sp18.z); sp24.x = -atan2d(sp18.y, VECMagXZ(&sp18)); @@ -961,7 +961,7 @@ static void fn_1_2F18(void) { sp30.x = spD8[0][3]; sp30.y = spD8[1][3]; sp30.z = spD8[2][3]; - PSVECAdd(&sp30, &spC, &sp30); + VECAdd(&sp30, &spC, &sp30); if (var_f29 < 27.000002f && var_f29 > -27.000002f) { return; } @@ -1004,8 +1004,8 @@ static void fn_1_3350(void) { lbl_1_bss_654.x = temp_r31->data.curr.pos.x; lbl_1_bss_654.y = temp_r31->data.curr.pos.y; lbl_1_bss_654.z = temp_r31->data.curr.pos.z; - PSVECSubtract(&lbl_1_bss_648, &lbl_1_bss_654, &sp8); - lbl_1_bss_640 += PSVECMag(&sp8); + VECSubtract(&lbl_1_bss_648, &lbl_1_bss_654, &sp8); + lbl_1_bss_640 += VECMag(&sp8); } static s32 lbl_1_data_594[8][2] = { @@ -1271,8 +1271,8 @@ static s32 fn_1_48B4(void) { temp_r28 = BoardSpaceLinkFlagSearch(0, temp_r30, 0x02000000); BoardSpacePosGet(0, temp_r30, &sp20); BoardSpacePosGet(0, temp_r28, &sp14); - PSVECSubtract(&sp14, &sp20, &sp8); - PSVECNormalize(&sp8, &sp8); + VECSubtract(&sp14, &sp20, &sp8); + VECNormalize(&sp8, &sp8); var_f31 = atan2d(-sp8.x, -sp8.z); BoardPlayerRotSet(lbl_1_bss_6B4, 0.0f, var_f31, 0.0f); BoardPlayerMoveBetween(lbl_1_bss_6B4, temp_r30, temp_r28); @@ -1329,8 +1329,8 @@ static s32 fn_1_48B4(void) { BoardWinKill(); } BoardCameraTargetPlayerSet(lbl_1_bss_6B4); - PSVECSubtract(&sp20, &sp14, &sp8); - PSVECNormalize(&sp8, &sp8); + VECSubtract(&sp20, &sp14, &sp8); + VECNormalize(&sp8, &sp8); var_f31 = atan2d(-sp8.x, -sp8.z); BoardPlayerRotSet(lbl_1_bss_6B4, 0.0f, var_f31, 0.0f); BoardPlayerMoveBetween(lbl_1_bss_6B4, temp_r28, temp_r30); @@ -1408,8 +1408,8 @@ static void fn_1_50D4(void) { var_r27 = var_r26; var_r29 = 0; } - PSVECSubtract(&sp14, &temp_r31->pos, &sp8); - PSVECNormalize(&sp8, &sp8); + VECSubtract(&sp14, &temp_r31->pos, &sp8); + VECNormalize(&sp8, &sp8); var_f31 = atan2d(sp8.z, sp8.x); if (var_r27 != 0) { var_f31 += 180.0f; @@ -1681,7 +1681,7 @@ static void fn_1_6194(Bss18Work *arg0, omObjData *arg1) { var_f30 = 1000000.0f; for (i = 0; i < 3; i++) { Hu3DModelObjPosGet(BoardModelIDGet(arg0->unk04), lbl_1_data_604[i], &sp8); - temp_f31 = PSVECSquareDistance(&sp8, &sp20); + temp_f31 = VECSquareDistance(&sp8, &sp20); if (temp_f31 < var_f30) { var_f30 = temp_f31; lbl_1_bss_28 = i; @@ -1691,7 +1691,7 @@ static void fn_1_6194(Bss18Work *arg0, omObjData *arg1) { Hu3DModelObjMtxGet(BoardModelIDGet(arg0->unk04), lbl_1_data_604[lbl_1_bss_28], sp38); Hu3DMtxRotGet(&sp38, &sp14); sp14.y = 180.0f; - PSVECSubtract(&sp2C, &sp20, &sp8); + VECSubtract(&sp2C, &sp20, &sp8); arg1->trans.x = sp8.x / 25.0f; arg1->trans.z = sp8.z / 25.0f; var_r28 = BoardPlayerRotYGet(GWSystem.player_curr); @@ -1772,7 +1772,7 @@ static void fn_1_6A14(Bss18Work *arg0, omObjData *arg1) { Hu3DModelObjPosGet(BoardModelIDGet(arg0->unk04), lbl_1_data_604[lbl_1_bss_28], &sp14); BoardPlayerPosSetV(GWSystem.player_curr, &sp14); BoardSpacePosGet(0, lbl_1_bss_24, &sp20); - PSVECSubtract(&sp20, &sp14, &sp8); + VECSubtract(&sp20, &sp14, &sp8); arg1->trans.x = sp8.x / 25.0f; arg1->trans.z = sp8.z / 25.0f; arg1->scale.x = sp20.x; @@ -1901,8 +1901,8 @@ static void fn_1_7528(s32 arg0, s32 arg1) { BoardSpacePosGet(0, arg1, &sp30); BoardModelPosGet(lbl_1_bss_6C4[23], &sp24); BoardModelPosGet(lbl_1_bss_6C4[28], &sp18); - temp_f31 = PSVECDistance(&sp24, &sp30); - temp_f30 = PSVECDistance(&sp18, &sp30); + temp_f31 = VECDistance(&sp24, &sp30); + temp_f30 = VECDistance(&sp18, &sp30); if (temp_f31 < temp_f30) { lbl_1_bss_29 = 0; } else { @@ -2156,7 +2156,7 @@ static void fn_1_8988(BssCData *arg0, omObjData *arg1) { } BoardModelPosGet(*lbl_1_bss_6C4, &sp20); BoardPlayerPosGet(arg0->unk01, &sp14); - PSVECSubtract(&sp20, &sp14, &sp8); + VECSubtract(&sp20, &sp14, &sp8); BoardPlayerRotYSet(arg0->unk01, atan2d(sp8.x, sp8.z)); arg0->unk00 = 1; } @@ -2198,7 +2198,7 @@ static void fn_1_8B6C(BssCData *arg0, omObjData *arg1) { BoardPlayerPosGet(arg0->unk01, &arg0->unk14); BoardModelPosGet(lbl_1_bss_6C4[0], &sp20); - PSVECSubtract(&sp20, &arg0->unk14, &sp14); + VECSubtract(&sp20, &arg0->unk14, &sp14); BoardPlayerRotYSet(arg0->unk01, -atan2d(sp14.x, sp14.z)); BoardPlayerMotionStart(arg0->unk01, 3, 0x40000001); BoardPlayerMotionSpeedSet(arg0->unk01, 2.0f); @@ -2217,7 +2217,7 @@ static void fn_1_8B6C(BssCData *arg0, omObjData *arg1) { sp14.x = sp8.x - var_r30->data.curr.pos.x; sp14.y = sp8.y - var_r30->data.curr.pos.y; sp14.z = sp8.z - var_r30->data.curr.pos.z; - var_f31 += PSVECMag(&sp14); + var_f31 += VECMag(&sp14); if (var_f31 >= arg0->unk10) { break; } @@ -2254,11 +2254,11 @@ static void fn_1_8DDC(BssCData *arg0, omObjData *arg1) { sp30.x = var_r30->data.curr.pos.x; sp30.y = var_r30->data.curr.pos.y; sp30.z = var_r30->data.curr.pos.z; - PSVECSubtract(&sp30, &arg0->unk14, &sp24); + VECSubtract(&sp30, &arg0->unk14, &sp24); if (fn_1_94A8(arg0) != 0) { BoardModelPosGet(lbl_1_bss_6C4[1], &sp18); - PSVECSubtract(&sp18, &sp30, &sp48); - PSVECNormalize(&sp48, &sp48); + VECSubtract(&sp18, &sp30, &sp48); + VECNormalize(&sp48, &sp48); var_r27 = &arg0->unk14; var_r26 = &sp30; BoardMTXCalcLookAt(sp54, var_r26, &sp48, var_r27); @@ -2295,7 +2295,7 @@ static void fn_1_918C(BssCData *arg0, omObjData *arg1) { BoardSpacePosGet(0, var_r30, &sp20); BoardPlayerPosGet(arg0->unk01, &sp14); BoardPlayerMtxSet(arg0->unk01, &arg0->unk20); - PSVECSubtract(&sp20, &sp14, &sp8); + VECSubtract(&sp20, &sp14, &sp8); BoardPlayerRotYSet(arg0->unk01, atan2d(-sp8.z, -sp8.x)); BoardPlayerPosLerpStart(arg0->unk01, &sp14, &sp20, 20); arg0->unk00 = 5; @@ -2344,7 +2344,7 @@ static void fn_1_932C(BssCData *arg0) { BoardSpaceFlagPosGet(0, 0x2000, &sp14); } for (i = 0; i < 2; i++) { - spC[i] = PSVECSquareDistance(&sp14, &sp20[i]); + spC[i] = VECSquareDistance(&sp14, &sp20[i]); } if (spC[0] < spC[1]) { arg0->unk06 = sp8[0]; @@ -2437,8 +2437,8 @@ static void fn_1_95F4(BssCData *arg0) { sp2C.x = var_r30->data.curr.pos.x; sp2C.y = var_r30->data.curr.pos.y; sp2C.z = var_r30->data.curr.pos.z; - PSVECSubtract(&sp2C, &sp20, &sp8); - var_f31 += PSVECMag(&sp8); + VECSubtract(&sp2C, &sp20, &sp8); + var_f31 += VECMag(&sp8); if (BoardVecMinDistCheck(&sp14, &sp2C, 150.0f)) { break; } @@ -2518,7 +2518,7 @@ static void fn_1_9A24(Bss20Work *arg0) { if (temp_r31->unk00 == -1) { temp_r31->unk00 = 10; Hu3DMtxTransGet(sp8, &temp_r31->unk08); - PSVECAdd(&lbl_1_bss_654, &temp_r31->unk08, &temp_r31->unk08); + VECAdd(&lbl_1_bss_654, &temp_r31->unk08, &temp_r31->unk08); temp_r31->unk14.x = 0.0f; temp_r31->unk14.y = 0.0f; temp_r31->unk14.z = 0.001f; @@ -2549,7 +2549,7 @@ static void fn_1_9BBC(Bss20Work *arg0) { if (temp_r31->unk00 <= 3) { temp_r31->unk04 = sind(30.0f * temp_r31->unk00); } - PSVECAdd(&temp_r31->unk08, &temp_r31->unk14, &temp_r31->unk08); + VECAdd(&temp_r31->unk08, &temp_r31->unk14, &temp_r31->unk08); BoardModelMtxSet(temp_r31->unk02, &lbl_1_bss_678); BoardModelPosSetV(temp_r31->unk02, &temp_r31->unk08); BoardModelScaleSet(temp_r31->unk02, temp_r31->unk04, temp_r31->unk04, temp_r31->unk04); diff --git a/src/REL/w01Dll/mg_coin.c b/src/REL/w01Dll/mg_coin.c index 9520710c..7d6eac1a 100755 --- a/src/REL/w01Dll/mg_coin.c +++ b/src/REL/w01Dll/mg_coin.c @@ -434,7 +434,7 @@ static void fn_1_A6E0(omObjData *arg0) { if (temp_r31->unk1C > 1.0f) { temp_r31->unk1C = 1.0f; } - PSVECAdd(&temp_r31->unk20, &temp_r31->unk2C, &temp_r31->unk20); + VECAdd(&temp_r31->unk20, &temp_r31->unk2C, &temp_r31->unk20); if (temp_r31->unk20.y >= 4.0f) { temp_r31->unk20.y = 4.0f; temp_r31->unk2C.y = -0.1f; @@ -870,8 +870,8 @@ static void fn_1_C894(omObjData *arg0) { } static void fn_1_C94C(Vec *arg0, Vec *arg1, Vec *arg2) { - PSVECSubtract(arg1, arg0, arg2); - PSVECNormalize(arg2, arg2); + VECSubtract(arg1, arg0, arg2); + VECNormalize(arg2, arg2); } static float fn_1_C998(Vec *arg0) { @@ -915,8 +915,8 @@ static u32 fn_1_CB44(Vec *arg0, float arg1) { float var_f31; BoardPlayerPosGet(lbl_1_bss_798, &sp18); - PSVECSubtract(arg0, &sp18, &sp24); - PSVECNormalize(&sp24, &sp24); + VECSubtract(arg0, &sp18, &sp24); + VECNormalize(&sp24, &sp24); var_f28 = fn_1_C998(&sp24); BoardPlayerRotGet(lbl_1_bss_798, &spC); var_f31 = spC.y; diff --git a/src/REL/w01Dll/mg_item.c b/src/REL/w01Dll/mg_item.c index a2c6333e..0a107490 100755 --- a/src/REL/w01Dll/mg_item.c +++ b/src/REL/w01Dll/mg_item.c @@ -292,19 +292,19 @@ static void fn_1_E44C(omObjData *arg0) { BoardAudSeqPause(0, 1, 1000); BoardPlayerPosGet(lbl_1_bss_7E4, &sp18); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[0], &spC); - var_f26 = PSVECSquareDistance(&sp18, &spC); + var_f26 = VECSquareDistance(&sp18, &spC); arg0->work[2] = 0; for (i = 1; i < 4; i++) { Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[i], &spC); - temp_f27 = PSVECSquareDistance(&sp18, &spC); + temp_f27 = VECSquareDistance(&sp18, &spC); if (temp_f27 < var_f26) { var_f26 = temp_f27; arg0->work[2] = i; } } Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[arg0->work[2]], &lbl_1_bss_7D8); - PSVECSubtract(&lbl_1_bss_7D8, &sp18, &spC); - PSVECNormalize(&spC, &spC); + VECSubtract(&lbl_1_bss_7D8, &sp18, &spC); + VECNormalize(&spC, &spC); arg0->trans.x = spC.x; arg0->trans.y = spC.y; arg0->trans.z = spC.z; @@ -455,8 +455,8 @@ static void fn_1_F3F8(omObjData *arg0) { return; } BoardPlayerPosGet(lbl_1_bss_7E4, &sp18); - PSVECSubtract(&lbl_1_bss_7C4, &sp18, &spC); - PSVECNormalize(&spC, &spC); + VECSubtract(&lbl_1_bss_7C4, &sp18, &spC); + VECNormalize(&spC, &spC); arg0->trans.x = spC.x; arg0->trans.y = spC.y; arg0->trans.z = spC.z; @@ -466,8 +466,8 @@ static void fn_1_F3F8(omObjData *arg0) { arg0->rot.z = sp18.y; arg0->scale.x = 0.0f; BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 4, 0.0f, 5.0f, 0); - PSVECSubtract(&lbl_1_bss_7C4, &sp18, &spC); - PSVECNormalize(&spC, &spC); + VECSubtract(&lbl_1_bss_7C4, &sp18, &spC); + VECNormalize(&spC, &spC); BoardPlayerRotSet(lbl_1_bss_7E4, 0.0f, fn_1_10EB8(&spC), 0.0f); arg0->func = fn_1_F6E8; } @@ -737,8 +737,8 @@ static void fn_1_10820(omObjData *arg0) { sp18.y = 0.0f; sp18.z = arg0->trans.z; sp24.y = 0.0f; - PSVECSubtract(&sp24, &sp18, &spC); - PSVECNormalize(&spC, &spC); + VECSubtract(&sp24, &sp18, &spC); + VECNormalize(&spC, &spC); var_f28 = VECDistanceXZ(&sp24, &sp18); if (var_f28 < 8.0f) { arg0->trans.x = sp24.x; diff --git a/src/REL/w02Dll/roulette.c b/src/REL/w02Dll/roulette.c index 0ff58995..332b54ea 100644 --- a/src/REL/w02Dll/roulette.c +++ b/src/REL/w02Dll/roulette.c @@ -291,15 +291,15 @@ s32 fn_1_C108(s32 arg0) { sp1C.y = var_f27 - (0.55833334f * (0.25f * (var_f31 * var_f31))); var_f31 += 1.0f; BoardModelPosGet(lbl_1_bss_30[6], &sp28); - PSVECAdd(&sp28, &sp1C, &sp28); + VECAdd(&sp28, &sp1C, &sp28); var_f25 = VECDistanceXZ(&sp28, &sp10); if (var_f25 >= 430.0f) { if (sp28.y <= (55.0f + sp10.y)) { - PSVECSubtract(&sp28, &sp10, (Vec* ) &sp1C); - PSVECNormalize((Vec* ) &sp1C, (Vec* ) &sp1C); + VECSubtract(&sp28, &sp10, (Vec* ) &sp1C); + VECNormalize((Vec* ) &sp1C, (Vec* ) &sp1C); sp1C.y = 0.0f; - PSVECScale((Vec* ) &sp1C, (Vec* ) &sp1C, 429.0f); - PSVECAdd((Vec* ) &sp1C, &sp10, (Vec* ) &sp1C); + VECScale((Vec* ) &sp1C, (Vec* ) &sp1C, 429.0f); + VECAdd((Vec* ) &sp1C, &sp10, (Vec* ) &sp1C); sp28.x = sp1C.x; sp28.z = sp1C.z; sp1C.x = -5.0f; @@ -328,8 +328,8 @@ s32 fn_1_C108(s32 arg0) { } HuAudFXPlay(0x41E); - PSVECSubtract(&sp28, &sp10, (Vec* ) &sp1C); - PSVECNormalize((Vec* ) &sp1C, (Vec* ) &sp1C); + VECSubtract(&sp28, &sp10, (Vec* ) &sp1C); + VECNormalize((Vec* ) &sp1C, (Vec* ) &sp1C); var_f31 = atan2d(-sp1C.z, sp1C.x); BoardModelRotGet(lbl_1_bss_30[4], &sp34); var_f31 = var_f31 - sp34.y; @@ -351,8 +351,8 @@ s32 fn_1_C108(s32 arg0) { var_f31 = (22.5f * var_r30) + sp34.y; // TODO: Update rodata for asm change sp1C.x = cosd(var_f31); sp1C.z = -sind(var_f31); - PSVECScale(&sp1C, &sp1C, 429.0f); - PSVECAdd(&sp1C, &sp10, &sp1C); + VECScale(&sp1C, &sp1C, 429.0f); + VECAdd(&sp1C, &sp10, &sp1C); sp28.x = sp1C.x; sp28.z = sp1C.z; BoardModelPosSetV(lbl_1_bss_30[6], &sp28); @@ -370,8 +370,8 @@ s32 fn_1_C108(s32 arg0) { var_f31 = (22.5f * (f32) var_r30) + sp34.y; sp1C.x = cosd(var_f31); sp1C.z = -sind(var_f31); - PSVECScale(&sp1C, &sp1C, 429.0f); - PSVECAdd((Vec* ) &sp1C, &sp10, (Vec* ) &sp1C); + VECScale(&sp1C, &sp1C, 429.0f); + VECAdd((Vec* ) &sp1C, &sp10, (Vec* ) &sp1C); sp28.x = sp1C.x; sp28.z = sp1C.z; BoardModelPosSetV(lbl_1_bss_30[6], (Vec* ) &sp28); diff --git a/src/REL/w03Dll/condor.c b/src/REL/w03Dll/condor.c index e71f2139..bf19b8b3 100644 --- a/src/REL/w03Dll/condor.c +++ b/src/REL/w03Dll/condor.c @@ -210,7 +210,7 @@ s32 fn_1_3478(s32 arg0) BoardPlayerPosGet(arg0, &sp2C); temp = BoardSpaceLinkFlagSearch(0, temp_r28, 0x02000000); BoardSpacePosGet(0, temp, &sp38); - PSVECSubtract(&sp38, &sp2C, &sp20); + VECSubtract(&sp38, &sp2C, &sp20); float_temp = atan2(sp20.x, sp20.z) / M_PI * 180.0f; BoardPlayerMotBlendSet(arg0, (float_temp), 0xF); @@ -339,9 +339,9 @@ void fn_1_3968(s32 arg0) Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_310), "itemhook_oya", &sp3C); BoardPlayerPosGet(arg0, &sp30); temp_f30 = BoardVecDistXZCalc(&sp3C, &sp30); - PSVECSubtract(&sp3C, &sp30, &sp24); - PSVECNormalize(&sp24, &sp24); - PSVECScale(&sp24, &sp24, temp_f30 / 45.0f); + VECSubtract(&sp3C, &sp30, &sp24); + VECNormalize(&sp24, &sp24); + VECScale(&sp24, &sp24, temp_f30 / 45.0f); BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 5.0f, 0); HuPrcSleep(5); @@ -354,7 +354,7 @@ void fn_1_3968(s32 arg0) while (1) { temp_f31 = __OSs16tof32(&sp8); sp24.y = temp_f28 + (-0.08166667f * (0.75f * (temp_f31 * temp_f31))); - PSVECAdd(&sp30, &sp24, &sp30); + VECAdd(&sp30, &sp24, &sp30); temp_f30 = BoardVecDistXZCalc(&sp3C, &sp30); if (temp_f30 < 5.0f) { @@ -583,10 +583,10 @@ void fn_1_4424(w03StructUnk2 *arg0) BoardSpaceFlagPosGet(0, 0x8000U, &sp60); if (lbl_1_bss_0->unk1 != 0) { - PSVECSubtract(&sp6C, &sp60, &sp3C); + VECSubtract(&sp6C, &sp60, &sp3C); } else { - PSVECSubtract(&sp60, &sp6C, &sp3C); + VECSubtract(&sp60, &sp6C, &sp3C); } sp10_2 = 180.0f * (atan2(-sp3C.x, -sp3C.z) / M_PI); @@ -717,7 +717,7 @@ void fn_1_4ABC(w03StructUnk2 *arg0) if (temp_r31->unk_00 == 1) { temp_r31->unk_04 += 1.0f; temp_f31 = 0.8f * (temp_r31->unk_04 * temp_r31->unk_04); - PSVECAdd(&temp_r31->unk_14, &temp_r31->unk_08, &temp_r31->unk_08); + VECAdd(&temp_r31->unk_14, &temp_r31->unk_08, &temp_r31->unk_08); temp_r31->unk_08.y += -0.0375f * temp_f31; if (temp_r31->unk_08.y < -300.0f) { temp_r31->unk_00 = -1; @@ -914,8 +914,8 @@ void fn_1_50D4(omObjData *arg0) if (i != GWSystem.player_curr) { BoardPlayerPosGet(i, &sp50); BoardModelPosGet(lbl_1_data_310, &sp44); - PSVECSubtract(&sp50, &sp44, &sp38); - if (PSVECMag(&sp38) >= 2000.0f) { + VECSubtract(&sp50, &sp44, &sp38); + if (VECMag(&sp38) >= 2000.0f) { BoardModelVisibilitySet(BoardPlayerModelGet(i), 0); } else { @@ -1058,7 +1058,7 @@ void fn_1_5C5C(omObjData *arg0, w03UnkStruct5 *arg1) Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_314), temp_r27, &sp44); if (0.0f != temp_r30->unk_64) { - PSVECSubtract(&sp38, &sp44, &sp2C); + VECSubtract(&sp38, &sp44, &sp2C); } else { sp2C.x = sp2C.y = sp2C.z = 0.0f; diff --git a/src/REL/w03Dll/mg_coin.c b/src/REL/w03Dll/mg_coin.c index 54c33285..2f039385 100644 --- a/src/REL/w03Dll/mg_coin.c +++ b/src/REL/w03Dll/mg_coin.c @@ -173,8 +173,8 @@ s32 fn_1_7D18(s32 arg0) temp_r28 = BoardSpaceLinkFlagSearch(0, space, 0x02000000); BoardPlayerPosGet(arg0, &sp2C); BoardSpacePosGet(0, temp_r28, &sp38); - PSVECSubtract(&sp38, &sp2C, &sp20); - PSVECNormalize(&sp20, &sp20); + VECSubtract(&sp38, &sp2C, &sp20); + VECNormalize(&sp20, &sp20); BoardPlayerRotYSet(arg0, 180.0 * (atan2(-sp20.x, -sp20.z) / M_PI)); HuPrcSleep(0x1E); model = BoardModelIDGet(lbl_1_bss_C[7]); @@ -196,7 +196,7 @@ s32 fn_1_7D18(s32 arg0) while (GWPlayer[arg0].moving != 0) { BoardModelPosGet(lbl_1_bss_C[10], &sp2C); BoardPlayerPosGet(arg0, &sp38); - PSVECSubtract(&sp38, &sp2C, &sp20); + VECSubtract(&sp38, &sp2C, &sp20); arctan = atan2(sp20.x, sp20.z) / M_PI * 180.0; BoardModelRotYSet(lbl_1_bss_C[10], arctan); HuPrcVSleep(); @@ -625,7 +625,7 @@ void fn_1_9230(s32 arg0) while (GWPlayer[arg0].moving != 0) { BoardModelPosGet(lbl_1_bss_C[10], &sp20); BoardPlayerPosGet(arg0, &sp14); - PSVECSubtract(&sp14, &sp20, &sp8); + VECSubtract(&sp14, &sp20, &sp8); rotY = atan2(sp8.x, sp8.z) / M_PI * 180.0; BoardModelRotYSet(lbl_1_bss_C[10], rotY); HuPrcVSleep(); diff --git a/src/REL/w03Dll/mg_item.c b/src/REL/w03Dll/mg_item.c index 0e0c6249..53e6d165 100644 --- a/src/REL/w03Dll/mg_item.c +++ b/src/REL/w03Dll/mg_item.c @@ -247,8 +247,8 @@ s32 fn_1_9CF4(s32 arg0) temp_r29 = BoardSpaceLinkFlagSearch(0, spaceCur, 0x02000000); BoardPlayerPosGet(arg0, &sp2C); BoardSpacePosGet(0, temp_r29, &sp38); - PSVECSubtract(&sp38, &sp2C, &sp20); - PSVECNormalize(&sp20, &sp20); + VECSubtract(&sp38, &sp2C, &sp20); + VECNormalize(&sp20, &sp20); BoardPlayerRotYSet(arg0, (f32)(180.0 * (atan2(-sp20.x, -sp20.z) / M_PI))); BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 0x14); @@ -285,7 +285,7 @@ void fn_1_9FE4(void) sp18.x = (-3179.800048828125 + (200.0 * sin(0.0))); sp18.z = (-907.7000122070313 + 200.0 * cos(0.0)); sp18.y = sp24.y; - PSVECSubtract(&sp18, &sp24, &spC); + VECSubtract(&sp18, &sp24, &spC); temp_f30 = (atan2(spC.z, spC.x) / M_PI * 180.0); sp8 = BoardModelRotYGet(lbl_1_bss_C[11]); BoardModelMotionShiftSet(lbl_1_bss_C[11], lbl_1_data_4DA, 0.0f, 10.0, 0x40000001); @@ -305,7 +305,7 @@ void fn_1_9FE4(void) var_f31 = 0.0f; while (var_f31 < 20.0f) { - PSVECAdd(&sp30, &spC, &sp30); + VECAdd(&sp30, &spC, &sp30); BoardModelPosSetV(lbl_1_bss_C[11], &sp30); HuPrcVSleep(); var_f31 += 1.0f; @@ -317,7 +317,7 @@ void fn_1_9FE4(void) BoardCameraQuakeSet(3, 100.0f); fn_1_B8E8(1); BoardModelMotionShiftSet(lbl_1_bss_C[11], lbl_1_data_4DC, 0.0f, 10.0, 0x40000005); - PSVECSubtract(&sp24, &sp30, &spC); + VECSubtract(&sp24, &sp30, &spC); spC.x /= 60.0f; spC.z /= 60.0f; @@ -325,7 +325,7 @@ void fn_1_9FE4(void) var_f31 = 0.0f; while (var_f31 < 60.0f) { - PSVECAdd(&sp30, &spC, &sp30); + VECAdd(&sp30, &spC, &sp30); BoardModelPosSetV(lbl_1_bss_C[11], &sp30); HuPrcVSleep(); var_f31 += 1.0f; diff --git a/src/REL/w03Dll/river.c b/src/REL/w03Dll/river.c index 115c33dd..ed9ca65c 100644 --- a/src/REL/w03Dll/river.c +++ b/src/REL/w03Dll/river.c @@ -166,7 +166,7 @@ s32 fn_1_6898(s32 arg0) { Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), "hei01", &sp20); BoardPlayerPosGet(arg0, &sp14); - PSVECSubtract(&sp20, &sp14, &sp8); + VECSubtract(&sp20, &sp14, &sp8); temp_f31 = 180.0 * (atan2(sp8.x, sp8.z) / M_PI); BoardCameraTargetModelSet(lbl_1_data_388); BoardPlayerMotBlendSet(arg0, temp_f31, 15); @@ -272,7 +272,7 @@ void fn_1_6B98(s32 arg0) { sp18.x = sp30.x + (400.0 * sin(M_PI / 2)); sp18.z = sp30.z + (400.0 * cos(M_PI / 2)); sp18.y = sp24.y; - PSVECSubtract(&sp18, &sp24, &spC); + VECSubtract(&sp18, &sp24, &spC); spC.x = spC.x / 120.0f; spC.y /= 120.0f; spC.z = spC.z / 120.0f; @@ -282,7 +282,7 @@ void fn_1_6B98(s32 arg0) { var_r31 = 0; for (i = 0; i < 0x78U; i++) { - PSVECAdd(&spC, &sp24, &sp24); + VECAdd(&spC, &sp24, &sp24); temp_f1 = BoardModelMotionTimeGet(lbl_1_data_38A); if ((temp_f1 >= 5.0f) && (temp_f1 < 15.0f) && ((s16) var_r31 == 0)) { @@ -332,7 +332,7 @@ void fn_1_6F9C(s32 arg0) { BoardPlayerPosGet(arg0, &sp14); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), "chara01", &sp20); - PSVECSubtract(&sp20, &sp14, &sp8); + VECSubtract(&sp20, &sp14, &sp8); sp8.x /= 60.0f; sp8.z /= 60.0f; @@ -352,7 +352,7 @@ void fn_1_6F9C(s32 arg0) { BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 10.0f, 0); for (var_r30 = 0, var_f31 = 0.0f; var_f31 < 60.0f; var_f31 += 1.0f) { - PSVECAdd(&sp14, &sp8, &sp14); + VECAdd(&sp14, &sp8, &sp14); sp14.y += 10.0f + var_f30 + (var_f29 * (-0.08166667f * var_f31 * var_f31)); if (sp14.y <= sp20.y) { sp14.y = sp20.y; @@ -394,7 +394,7 @@ void fn_1_735C(s32 arg0) { Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), "chara01", &sp14); BoardPlayerPosSetV(arg0, &sp14); BoardModelHookObjReset(lbl_1_data_388, "chara01"); - PSVECSubtract(&sp20, &sp14, &sp8); + VECSubtract(&sp20, &sp14, &sp8); sp8.x = sp8.x / 60.0f; sp8.z = sp8.z / 60.0f; @@ -409,7 +409,7 @@ void fn_1_735C(s32 arg0) { } for (var_r30 = 0, var_f31 = 0.0f; var_f31 < 60.0f; var_f31 += 1.0f) { - PSVECAdd(&sp14, &sp8, &sp14); + VECAdd(&sp14, &sp8, &sp14); sp14.y += 20.0f + (var_f30 * (-0.08166667f * var_f31 * var_f31)); if (sp14.y <= sp20.y && var_f31 > 48.0f) { sp14.y = sp20.y; diff --git a/src/REL/w03Dll/statue.c b/src/REL/w03Dll/statue.c index 82c73f4c..d9519b4f 100644 --- a/src/REL/w03Dll/statue.c +++ b/src/REL/w03Dll/statue.c @@ -154,7 +154,7 @@ s32 fn_1_1650(s32 arg0) { temp2 = BoardSpaceLinkFlagSearch(0, GWPlayer[arg0].space_curr, 0x02000000); BoardSpacePosGet(0, temp2, &sp38); BoardPlayerPosGet(arg0, &sp2C); - PSVECSubtract(&sp38, &sp2C, &sp20); + VECSubtract(&sp38, &sp2C, &sp20); temp = (atan2(-sp20.x, -sp20.z) / M_PI) * 180.0f; BoardPlayerRotYSet(arg0, temp); sp14.x = 0.0f; @@ -537,8 +537,8 @@ void fn_1_26E0(s32 arg0) { BoardSpacePosGet(0, GWPlayer[arg0].space_curr, &sp20); BoardPlayerPosGet(arg0, &sp14); - PSVECSubtract(&sp20, &sp14, &sp8); - PSVECNormalize(&sp8, &sp8); + VECSubtract(&sp20, &sp14, &sp8); + VECNormalize(&sp8, &sp8); temp = (180.0f * (atan2(-sp8.x, -sp8.z) / M_PI)); BoardPlayerRotYSet(arg0, temp); BoardCameraViewSet(1); diff --git a/src/REL/w04Dll/boo_event.c b/src/REL/w04Dll/boo_event.c index 3dadfc9d..8d3bde5c 100755 --- a/src/REL/w04Dll/boo_event.c +++ b/src/REL/w04Dll/boo_event.c @@ -211,10 +211,10 @@ static void fn_1_20EC(void) { while (fn_1_1130(lbl_1_bss_FA, atan2d(sp14.x - sp20.x, sp14.z - sp20.z), 2.0f) == 0) { HuPrcVSleep(); } - PSVECSubtract(&sp14, &sp20, &sp8); - PSVECScale(&sp8, &sp8, 0.022222223f); + VECSubtract(&sp14, &sp20, &sp8); + VECScale(&sp8, &sp8, 0.022222223f); for (i = 0; i < 45; i++) { - PSVECAdd(&sp20, &sp8, &sp20); + VECAdd(&sp20, &sp8, &sp20); BoardModelPosSetV(lbl_1_bss_FA, &sp20); HuPrcVSleep(); } @@ -293,12 +293,12 @@ static void fn_1_28BC(void) { BoardModelPosGet(lbl_1_bss_FA, &sp14); temp_f30 = atan2d(sp20.x - sp14.x, sp20.z - sp14.z); BoardModelRotYSet(lbl_1_bss_FA, temp_f30); - PSVECSubtract(&sp20, &sp14, &sp8); - PSVECScale(&sp8, &sp8, 0.022222223f); + VECSubtract(&sp20, &sp14, &sp8); + VECScale(&sp8, &sp8, 0.022222223f); *var_r26 = temp_f30 - 180.0f; fn_1_2EE8(3); for (i = 0; i < 45; i++) { - PSVECAdd(&sp8, &sp14, &sp14); + VECAdd(&sp8, &sp14, &sp14); BoardModelPosSetV(lbl_1_bss_FA, &sp14); fn_1_5018(); if (var_r29 != 0) { @@ -473,10 +473,10 @@ static void fn_1_30A4(void) { while (fn_1_1130(temp_r31->unk04, temp_f31, 5.0f) == 0) { HuPrcVSleep(); } - PSVECSubtract(&temp_r31->unk20, &sp20, &sp14); - PSVECScale(&sp14, &sp14, 0.016666668f); + VECSubtract(&temp_r31->unk20, &sp20, &sp14); + VECScale(&sp14, &sp14, 0.016666668f); for (i = 0; i < 60; i++) { - PSVECAdd(&sp14, &sp20, &sp20); + VECAdd(&sp14, &sp20, &sp20); BoardModelPosSetV(temp_r31->unk04, &sp20); HuPrcVSleep(); } @@ -533,8 +533,8 @@ static void fn_1_30A4(void) { if (temp_r31->unk08 != -1) { BoardPlayerRotYSet(temp_r31->unk08, temp_f31); } - PSVECSubtract(&temp_r31->unk20, &sp20, &sp14); - PSVECScale(&sp14, &sp14, 0.022222223f); + VECSubtract(&temp_r31->unk20, &sp20, &sp14); + VECScale(&sp14, &sp14, 0.022222223f); if (temp_r31->unk0C > 0) { var_r28 = BoardSpaceGet(0, temp_r31->unk0C); if (var_r28->flag & 1) { @@ -547,7 +547,7 @@ static void fn_1_30A4(void) { } } for (i = 0; i < 45; i++) { - PSVECAdd(&sp20, &sp14, &sp20); + VECAdd(&sp20, &sp14, &sp20); BoardModelPosSetV(temp_r31->unk04, &sp20); if (temp_r31->unk08 != -1) { BoardPlayerPosSetV(temp_r31->unk08, &sp20); @@ -610,14 +610,14 @@ static void fn_1_38D8(void) { BoardPlayerPosGet(temp_r31, &sp24); var_f28 = atan2d(sp18.x - sp24.x, sp18.z - sp24.z); BoardPlayerRotYSet(temp_r31, var_f28); - PSVECSubtract(&sp18, &sp24, &spC); - PSVECScale(&spC, &spC, 0.025f); + VECSubtract(&sp18, &sp24, &spC); + VECScale(&spC, &spC, 0.025f); temp_f26 = 12.0f; var_f29 = 0.0f; while (TRUE) { spC.y = temp_f26 - var_f29 * var_f29 * 0.25f * 0.075f; var_f29 += 1.0f; - PSVECAdd(&spC, &sp24, &sp24); + VECAdd(&spC, &sp24, &sp24); if (sp24.y <= sp18.y) { sp24.y = sp18.y; break; @@ -696,16 +696,16 @@ static s32 fn_1_3C9C(void) { for (i = 0; i < var_r29; i++) { BoardSpacePosGet(0, sp20[i], &sp44); sp50.y = sp44.y; - PSVECSubtract(&sp44, &sp50, &sp38); + VECSubtract(&sp44, &sp50, &sp38); var_f31 = atan2d(sp38.x, sp38.z); if (var_f31 < 0.0f) { var_f31 += 360.0f; } sp28[i] = var_f31; - PSVECNormalize(&sp38, &sp44); - PSVECScale(&sp44, &sp44, 110.0f); + VECNormalize(&sp38, &sp44); + VECScale(&sp44, &sp44, 110.0f); sp44.y += 200.0f; - PSVECAdd(&sp50, &sp44, &sp44); + VECAdd(&sp50, &sp44, &sp44); BoardModelPosSetV(lbl_1_bss_F4[i], &sp44); BoardModelRotYSet(lbl_1_bss_F4[i], var_f31); BoardModelVisibilitySet(lbl_1_bss_F4[i], 1); diff --git a/src/REL/w04Dll/bridge.c b/src/REL/w04Dll/bridge.c index 8198e5e7..97f7569a 100755 --- a/src/REL/w04Dll/bridge.c +++ b/src/REL/w04Dll/bridge.c @@ -262,8 +262,8 @@ static void fn_1_1E60(void) { while (TRUE) { BoardSpacePosGet(0, var_r29, &sp14); BoardSpacePosGet(0, var_r28, &sp8); - PSVECSubtract(&sp8, &sp14, &sp20); - PSVECScale(&sp20, &sp20, 0.008333334f); + VECSubtract(&sp8, &sp14, &sp20); + VECScale(&sp20, &sp20, 0.008333334f); temp_f31 = atan2d(sp8.x - sp14.x, sp8.z - sp14.z); BoardModelPosGet(temp_r31[1], &sp14); while (fn_1_1130(temp_r31[1], temp_f31, 2.5f) == 0) { @@ -280,7 +280,7 @@ static void fn_1_1E60(void) { } else { BoardModelAlphaSet(temp_r31[1], 0); } - PSVECAdd(&sp14, &sp20, &sp14); + VECAdd(&sp14, &sp20, &sp14); BoardModelPosSetV(temp_r31[1], &sp14); HuPrcVSleep(); } diff --git a/src/REL/w04Dll/mg_coin.c b/src/REL/w04Dll/mg_coin.c index 4be845b4..29557d44 100755 --- a/src/REL/w04Dll/mg_coin.c +++ b/src/REL/w04Dll/mg_coin.c @@ -137,11 +137,11 @@ void fn_1_C7D4(void) { BoardModelPosGet(lbl_1_bss_14[9], &sp8); sp14 = sp8; sp14.x = sp2C.x; - PSVECSubtract(&sp14, &sp8, &sp38); - PSVECScale(&sp38, &sp38, 0.022727273f); + VECSubtract(&sp14, &sp8, &sp38); + VECScale(&sp38, &sp38, 0.022727273f); for (i = 0; i < 44; i++) { BoardModelPosGet(lbl_1_bss_14[9], &sp8); - PSVECAdd(&sp8, &sp38, &sp8); + VECAdd(&sp8, &sp38, &sp8); BoardModelPosSetV(lbl_1_bss_14[9], &sp8); HuPrcVSleep(); } @@ -159,17 +159,17 @@ void fn_1_C7D4(void) { BoardPlayerMotionShiftSet(lbl_1_bss_324, 4, 0.0f, 5.0f, 0); var_f31 = 0.0f; temp_f30 = 8.0f; - PSVECSubtract(&sp2C, &sp20, &sp38); - PSVECScale(&sp38, &sp38, 0.05f); + VECSubtract(&sp2C, &sp20, &sp38); + VECScale(&sp38, &sp38, 0.05f); while (TRUE) { BoardPlayerPosGet(lbl_1_bss_324, &sp20); sp38.y = temp_f30 - var_f31 * var_f31 * 0.25f * 0.075f; var_f31 += 1.0f; - PSVECAdd(&sp38, &sp20, &sp20); + VECAdd(&sp38, &sp20, &sp20); sp14 = sp2C; sp14.y = sp20.y; - PSVECSubtract(&sp14, &sp20, &sp14); - var_f29 = PSVECMag(&sp14); + VECSubtract(&sp14, &sp20, &sp14); + var_f29 = VECMag(&sp14); if (var_f29 <= 1.0f) { sp38.x = sp38.z = 0.0f; sp20.x = sp2C.x; @@ -429,17 +429,17 @@ static void fn_1_D770(void) { temp_f29 = 8.0f; lbl_1_bss_308.z = sp18.z + 100.0f; lbl_1_bss_308.x = sp18.x + 50.0f; - PSVECSubtract(&lbl_1_bss_308, &sp18, &spC); - PSVECScale(&spC, &spC, 0.04f); + VECSubtract(&lbl_1_bss_308, &sp18, &spC); + VECScale(&spC, &spC, 0.04f); while (TRUE) { BoardPlayerPosGet(lbl_1_bss_324, &sp18); spC.y = temp_f29 - var_f30 * var_f30 * 0.25f * 0.075f; var_f30 += 1.0f; - PSVECAdd(&spC, &sp18, &sp18); + VECAdd(&spC, &sp18, &sp18); sp114[0] = lbl_1_bss_308; sp114[0].y = sp18.y; - PSVECSubtract(&sp114[0], &sp18, &sp114[0]); - var_f31 = PSVECMag(&sp114[0]); + VECSubtract(&sp114[0], &sp18, &sp114[0]); + var_f31 = VECMag(&sp114[0]); if (var_f31 <= 1.0f) { spC.x = spC.z = 0.0f; sp18.x = lbl_1_bss_308.x; @@ -472,11 +472,11 @@ static void fn_1_E004(void) { HuPrcVSleep(); } BoardModelPosGet(lbl_1_bss_14[9], &sp14); - PSVECSubtract(&lbl_1_bss_2FC, &sp14, &sp8); - PSVECScale(&sp8, &sp8, 0.1f); + VECSubtract(&lbl_1_bss_2FC, &sp14, &sp8); + VECScale(&sp8, &sp8, 0.1f); for (i = 0; i < 10; i++) { BoardModelPosGet(lbl_1_bss_14[9], &sp14); - PSVECAdd(&sp14, &sp8, &sp14); + VECAdd(&sp14, &sp8, &sp14); BoardModelPosSetV(lbl_1_bss_14[9], &sp14); HuPrcVSleep(); } @@ -540,8 +540,8 @@ static void fn_1_E374(omObjData *arg0) { if (temp_r3 >= 30 && temp_r3 <= 39) { Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[7]), lbl_1_data_5BC[arg0->work[1]], &sp14); BoardPlayerPosGet(lbl_1_bss_324, &sp20); - PSVECSubtract(&sp14, &sp20, &sp8); - PSVECScale(&sp8, &sp8, 0.04f); + VECSubtract(&sp14, &sp20, &sp8); + VECScale(&sp8, &sp8, 0.04f); arg0->trans.x = sp8.x; arg0->trans.z = sp8.z; arg0->trans.y = 5.0f; @@ -569,11 +569,11 @@ static void fn_1_E4C0(omObjData *arg0) { sp20.z = arg0->trans.z; sp20.y = arg0->trans.y - arg0->rot.x * arg0->rot.x * 0.25f * 0.075f; arg0->rot.x += 1.0f; - PSVECAdd(&sp2C, &sp20, &sp2C); + VECAdd(&sp2C, &sp20, &sp2C); sp8 = sp2C; sp8.y = sp14.y; - PSVECSubtract(&sp14, &sp8, &sp8); - var_f31 = PSVECMag(&sp8); + VECSubtract(&sp14, &sp8, &sp8); + var_f31 = VECMag(&sp8); if (var_f31 <= 1.0f) { arg0->trans.x = arg0->trans.z = 0.0f; sp2C.x = sp14.x; diff --git a/src/REL/w04Dll/mg_item.c b/src/REL/w04Dll/mg_item.c index 342d8f5c..9c747954 100755 --- a/src/REL/w04Dll/mg_item.c +++ b/src/REL/w04Dll/mg_item.c @@ -304,13 +304,13 @@ static void fn_1_A7E8(void) { var_f29 = 12.0f; sp3C = sp54[var_r30]; BoardPlayerPosGet(lbl_1_bss_2AC, &sp30); - PSVECSubtract(&sp3C, &sp30, &sp3C); - PSVECScale(&sp3C, &sp3C, 0.05f); + VECSubtract(&sp3C, &sp30, &sp3C); + VECScale(&sp3C, &sp3C, 0.05f); while (TRUE) { BoardPlayerPosGet(lbl_1_bss_2AC, &sp30); sp3C.y = var_f29 - var_f30 * var_f30 * 0.25f * 0.075f; var_f30 += 1.0f; - PSVECAdd(&sp3C, &sp30, &sp30); + VECAdd(&sp3C, &sp30, &sp30); if (sp30.y <= sp54[var_r30].y - 40.0f && sp3C.y < 0.0f) { sp30.y = sp54[var_r30].y - 40.0f; break; @@ -318,8 +318,8 @@ static void fn_1_A7E8(void) { BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30); sp48 = sp54[var_r30]; sp48.y = sp30.y = 0.0f; - PSVECSubtract(&sp48, &sp30, &sp30); - var_f31 = PSVECMag(&sp30); + VECSubtract(&sp48, &sp30, &sp30); + var_f31 = VECMag(&sp30); if (var_f31 <= 1.0f) { sp3C.x = sp3C.z = 0.0f; } @@ -379,13 +379,13 @@ static void fn_1_A7E8(void) { var_f30 = 0.0f; var_f29 = 12.0f; BoardPlayerPosGet(lbl_1_bss_2AC, &sp30); - PSVECSubtract(&sp18, &sp30, &sp3C); - PSVECScale(&sp3C, &sp3C, 0.05f); + VECSubtract(&sp18, &sp30, &sp3C); + VECScale(&sp3C, &sp3C, 0.05f); while (TRUE) { BoardPlayerPosGet(lbl_1_bss_2AC, &sp30); sp3C.y = var_f29 - var_f30 * var_f30 * 0.25f * 0.075f; var_f30 += 1.0f; - PSVECAdd(&sp3C, &sp30, &sp30); + VECAdd(&sp3C, &sp30, &sp30); if (sp30.y < sp18.y) { sp30.y = sp18.y; break; @@ -393,8 +393,8 @@ static void fn_1_A7E8(void) { BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30); sp48 = sp18; sp48.y = sp30.y = 0.0f; - PSVECSubtract(&sp48, &sp30, &sp30); - var_f31 = PSVECMag(&sp30); + VECSubtract(&sp48, &sp30, &sp30); + var_f31 = VECMag(&sp30); if (var_f31 <= 1.0f) { sp3C.x = sp3C.z = 0.0f; } @@ -406,11 +406,11 @@ static void fn_1_A7E8(void) { BoardModelPosGet(lbl_1_bss_298[temp_r29], &sp24); sp3C = sp24; sp3C.z += 100.0f; - PSVECSubtract(&sp3C, &sp24, &sp3C); - PSVECScale(&sp3C, &sp3C, 0.033333335f); + VECSubtract(&sp3C, &sp24, &sp3C); + VECScale(&sp3C, &sp3C, 0.033333335f); for (i = 0; i < 30; i++) { BoardModelPosGet(lbl_1_bss_298[temp_r29], &sp24); - PSVECAdd(&sp24, &sp3C, &sp24); + VECAdd(&sp24, &sp3C, &sp24); BoardModelPosSetV(lbl_1_bss_298[temp_r29], &sp24); HuPrcVSleep(); } @@ -538,8 +538,8 @@ void fn_1_BB00(s16 *arg0) { BoardModelPosGet(lbl_1_bss_14[10], &sp24); BoardModelPosSetV(lbl_1_bss_298[i], &sp24); BoardModelScaleSetV(lbl_1_bss_298[i], &sp18); - PSVECSubtract(&sp54[i], &sp24, &sp30[i]); - PSVECNormalize(&sp30[i], &sp30[i]); + VECSubtract(&sp54[i], &sp24, &sp30[i]); + VECNormalize(&sp30[i], &sp30[i]); spC[i] = 0.0f; } sp30[0].y = 16.0f; diff --git a/src/REL/w05Dll/dolphin.c b/src/REL/w05Dll/dolphin.c index 14f7d66b..c156f1ef 100644 --- a/src/REL/w05Dll/dolphin.c +++ b/src/REL/w05Dll/dolphin.c @@ -137,7 +137,7 @@ void fn_1_4034(s32 arg0) HuPrcSleep(8); lbl_1_bss_64 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W05, 0x26), lbl_1_data_244, 0); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_118), lbl_1_data_22C[arg0], &sp40); - PSVECAdd(&sp40, &lbl_1_data_2A4[arg0], &sp40); + VECAdd(&sp40, &lbl_1_data_2A4[arg0], &sp40); BoardModelMotionStart(lbl_1_bss_64, 4, 0); sp40.y = -50.0f; BoardModelPosSetV(lbl_1_bss_64, &sp40); @@ -188,9 +188,9 @@ void fn_1_4034(s32 arg0) BoardPlayerPosGet(lbl_1_bss_68, &sp28); var_f27 = sqrtf(((sp40.x - sp28.x) * (sp40.x - sp28.x)) + ((sp40.z - sp28.z) * (sp40.z - sp28.z))); - PSVECSubtract(&sp40, &sp28, &sp1C); - PSVECNormalize(&sp1C, &sp1C); - PSVECScale(&sp1C, &sp1C, var_f27 / 50.0f); + VECSubtract(&sp40, &sp28, &sp1C); + VECNormalize(&sp1C, &sp1C); + VECScale(&sp1C, &sp1C, var_f27 / 50.0f); BoardPlayerMotionStart(lbl_1_bss_68, 4, 0); var_f26 = 0.0f; temp_f22 = 15.0f; @@ -198,7 +198,7 @@ void fn_1_4034(s32 arg0) loop_37: sp1C.y = temp_f22 - (0.075f * (0.25f * (var_f26 * var_f26))); var_f26++; - PSVECAdd(&sp28, &sp1C, &sp28); + VECAdd(&sp28, &sp1C, &sp28); var_f27 = sqrtf(((sp40.x - sp28.x) * (sp40.x - sp28.x)) + ((sp40.z - sp28.z) * (sp40.z - sp28.z))); if (var_f27 < 5.0f) { sp1C.x = sp1C.z = 0.0f; @@ -319,9 +319,9 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec *arg3) temp_f23 = 10.0f; BoardModelPosGet(lbl_1_bss_64, &sp3C); arg3->y = sp3C.y; - PSVECSubtract(arg3, &sp3C, &sp24); - PSVECNormalize(&sp24, &sp24); - PSVECScale(&sp24, &sp24, temp_f23); + VECSubtract(arg3, &sp3C, &sp24); + VECNormalize(&sp24, &sp24); + VECScale(&sp24, &sp24, temp_f23); temp_r28 = HuAudFXPlay(0x47F); BoardModelPosGet(lbl_1_bss_64, &sp18); temp_r30 = fn_1_66C0(4, &sp18); @@ -338,7 +338,7 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec *arg3) break; } else { - PSVECAdd(&sp3C, &sp24, &sp3C); + VECAdd(&sp3C, &sp24, &sp3C); BoardModelPosSetV(lbl_1_bss_64, &sp3C); sp30 = sp3C; sp30.y += 20.0f; @@ -361,9 +361,9 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec *arg3) BoardPlayerPosGet(lbl_1_bss_68, &sp30); var_f28 = sqrtf(((sp3C.x - sp30.x) * (sp3C.x - sp30.x)) + ((sp3C.z - sp30.z) * (sp3C.z - sp30.z))); - PSVECSubtract(&sp3C, &sp30, &sp24); - PSVECNormalize(&sp24, &sp24); - PSVECScale(&sp24, &sp24, var_f28 / 45.0f); + VECSubtract(&sp3C, &sp30, &sp24); + VECNormalize(&sp24, &sp24); + VECScale(&sp24, &sp24, var_f28 / 45.0f); BoardPlayerMotionStart(lbl_1_bss_68, 4, 0); var_f24 = 0.0f; @@ -372,7 +372,7 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec *arg3) while (1) { sp24.y = temp_f19 - (0.075f * (0.25f * (var_f24 * var_f24))); var_f24++; - PSVECAdd(&sp30, &sp24, &sp30); + VECAdd(&sp30, &sp24, &sp30); var_f28 = sqrtf(((sp3C.x - sp30.x) * (sp3C.x - sp30.x)) + ((sp3C.z - sp30.z) * (sp3C.z - sp30.z))); if (var_f28 < 5.0f) { sp24.x = sp24.z = 0.0f; @@ -449,9 +449,9 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec *arg2) fn_1_62AC(arg0, arg2); temp_f22 = 10.0f; arg2->y = sp58.y; - PSVECSubtract(arg2, &sp58, &sp40); - PSVECNormalize(&sp40, &sp40); - PSVECScale(&sp40, &sp40, temp_f22); + VECSubtract(arg2, &sp58, &sp40); + VECNormalize(&sp40, &sp40); + VECScale(&sp40, &sp40, temp_f22); if (arg0 == 5) { var_r29 = 0x96; } @@ -483,7 +483,7 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec *arg2) break; } else { - PSVECAdd(&sp58, &sp40, &sp58); + VECAdd(&sp58, &sp40, &sp58); sp64 = sp58; if (var_r29 == 0) { sp58.y += 250.0 * sin((M_PI * var_f28) / 180.0); @@ -548,16 +548,16 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec *arg2) } BoardPlayerPosGet(lbl_1_bss_68, &sp4C); var_f27 = sqrtf(((sp58.x - sp4C.x) * (sp58.x - sp4C.x)) + ((sp58.z - sp4C.z) * (sp58.z - sp4C.z))); - PSVECSubtract(&sp58, &sp4C, &sp40); - PSVECNormalize(&sp40, &sp40); - PSVECScale(&sp40, &sp40, var_f27 / 45.0f); + VECSubtract(&sp58, &sp4C, &sp40); + VECNormalize(&sp40, &sp40); + VECScale(&sp40, &sp40, var_f27 / 45.0f); BoardPlayerMotionStart(lbl_1_bss_68, 4, 0); var_f23 = 0.0f; temp_f18 = 15.0f; while (1) { sp40.y = temp_f18 - (0.075f * (0.25f * (var_f23 * var_f23))); var_f23++; - PSVECAdd(&sp4C, &sp40, &sp4C); + VECAdd(&sp4C, &sp40, &sp4C); var_f27 = sqrtf(((sp58.x - sp4C.x) * (sp58.x - sp4C.x)) + ((sp58.z - sp4C.z) * (sp58.z - sp4C.z))); if (var_f27 < 5.0f) { sp40.x = sp40.z = 0.0f; @@ -591,19 +591,19 @@ void fn_1_62AC(s32 arg0, Vec *arg1) BoardModelPosGet(lbl_1_bss_64, &sp34); arg0 -= 4; arg1->y = sp34.y; - PSVECSubtract(arg1, &sp34, &sp28); - PSVECNormalize(&sp28, &sp28); + VECSubtract(arg1, &sp34, &sp28); + VECNormalize(&sp28, &sp28); var_f31 = 45.0f; var_r31 = 0; while (var_r31 < 3) { sp1C = sp28; sp10 = sp28; - PSVECScale(&sp1C, &sp1C, sp8[arg0]); + VECScale(&sp1C, &sp1C, sp8[arg0]); sp1C.y += (250.0 * sin((M_PI * var_f31) / 180.0)); var_f30 = (250.0 * -cos((M_PI * var_f31) / 180.0)); - PSVECScale(&sp10, &sp10, var_f30); - PSVECAdd(&sp10, &sp1C, &sp1C); - PSVECAdd(&sp1C, &sp34, &sp1C); + VECScale(&sp10, &sp10, var_f30); + VECAdd(&sp10, &sp1C, &sp1C); + VECAdd(&sp1C, &sp34, &sp1C); BoardModelPosSetV(lbl_1_bss_6C[var_r31], &sp1C); BoardModelVisibilitySet(lbl_1_bss_6C[var_r31], 1); var_f31 += 45.0f; @@ -623,8 +623,8 @@ void fn_1_64BC(void) for (var_r31 = 0; var_r31 < 3; var_r31++) { if (BoardModelVisibilityGet(lbl_1_bss_6C[var_r31]) != 0) { BoardModelPosGet(lbl_1_bss_6C[var_r31], &sp14); - PSVECSubtract(&sp14, &sp20, &sp8); - var_f31 = PSVECMag(&sp8); + VECSubtract(&sp14, &sp20, &sp8); + var_f31 = VECMag(&sp8); if (var_f31 < 60.0f) { CharModelCoinEffectCreate(1, &sp14); BoardModelVisibilitySet(lbl_1_bss_6C[var_r31], 0); diff --git a/src/REL/w05Dll/hotel.c b/src/REL/w05Dll/hotel.c index f3a00e24..8838a724 100644 --- a/src/REL/w05Dll/hotel.c +++ b/src/REL/w05Dll/hotel.c @@ -94,11 +94,11 @@ void fn_1_155C(void) { BoardModelRotYSet(lbl_1_bss_14[4], -90.0f); } BoardModelMotionStart(lbl_1_bss_14[4], temp_r28, 0x40000001); - PSVECSubtract(&sp28, &sp40, &sp34); - PSVECScale(&sp34, &sp34, 0.018518519f); + VECSubtract(&sp28, &sp40, &sp34); + VECScale(&sp34, &sp34, 0.018518519f); for (var_r31 = 0; var_r31 < 0x36; var_r31++) { - PSVECAdd(&sp40, &sp34, &sp40); + VECAdd(&sp40, &sp34, &sp40); BoardModelPosSetV(lbl_1_bss_14[4], &sp40); HuPrcVSleep(); } @@ -175,11 +175,11 @@ void fn_1_155C(void) { BoardModelRotYSet(lbl_1_bss_14[4], 90.0f); } BoardModelMotionStart(lbl_1_bss_14[4], temp_r28, 0x40000001); - PSVECSubtract(&sp28, &sp40, &sp34); - PSVECScale(&sp34, &sp34, 0.033333335f); + VECSubtract(&sp28, &sp40, &sp34); + VECScale(&sp34, &sp34, 0.033333335f); for (var_r31 = 0; var_r31 < 0x1E; var_r31++) { - PSVECAdd(&sp40, &sp34, &sp40); + VECAdd(&sp40, &sp34, &sp40); BoardModelPosSetV(lbl_1_bss_14[4], &sp40); HuPrcVSleep(); } @@ -257,11 +257,11 @@ void fn_1_1E44(void) { BoardModelRotYSet(lbl_1_bss_14[4], -90.0f); } BoardModelMotionStart(lbl_1_bss_14[4], sp8[0], 0x40000001); - PSVECSubtract(&sp2C, &sp5C, &sp44); - PSVECScale(&sp44, &sp44, 0.018518519f); + VECSubtract(&sp2C, &sp5C, &sp44); + VECScale(&sp44, &sp44, 0.018518519f); for (var_r31 = 0; var_r31 < 0x36U; var_r31++) { - PSVECAdd(&sp5C, &sp44, &sp5C); + VECAdd(&sp5C, &sp44, &sp5C); BoardModelPosSetV(lbl_1_bss_14[4], &sp5C); HuPrcVSleep(); } @@ -400,11 +400,11 @@ void fn_1_1E44(void) { BoardModelRotYSet(lbl_1_bss_14[4], 90.0f); } BoardModelMotionStart(lbl_1_bss_14[4], sp8[0], 0x40000001U); - PSVECSubtract(&sp38, &sp5C, &sp44); - PSVECScale(&sp44, &sp44, 0.055555556); + VECSubtract(&sp38, &sp5C, &sp44); + VECScale(&sp44, &sp44, 0.055555556); for (var_r31 = 0; var_r31 < 0x12U; var_r31++) { - PSVECAdd(&sp5C, &sp44, &sp5C); + VECAdd(&sp5C, &sp44, &sp5C); BoardModelPosSetV(lbl_1_bss_14[4], &sp5C); HuPrcVSleep(); } diff --git a/src/REL/w05Dll/mg_coin.c b/src/REL/w05Dll/mg_coin.c index 7818996c..7421e2e1 100644 --- a/src/REL/w05Dll/mg_coin.c +++ b/src/REL/w05Dll/mg_coin.c @@ -321,11 +321,11 @@ void fn_1_A5B0(omObjData *arg0) Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[1]), "fish", &sp14); BoardModelPosGet(lbl_1_bss_FE, &sp8); sp14.y = sp8.y; - PSVECSubtract(&sp14, &sp8, temp_r31); - var_f31 = PSVECMag(temp_r31); - PSVECNormalize(temp_r31, temp_r31); + VECSubtract(&sp14, &sp8, temp_r31); + var_f31 = VECMag(temp_r31); + VECNormalize(temp_r31, temp_r31); var_f31 /= 38.0f; - PSVECScale(temp_r31, temp_r31, var_f31); + VECScale(temp_r31, temp_r31, var_f31); temp_r31->y = 25.0f; temp_r29->trans.x = var_f31; BoardPlayerMotionStart(lbl_1_bss_C0, lbl_1_bss_102[2], 0); @@ -536,10 +536,10 @@ void fn_1_B3C4(omObjData *arg0) sp8.y = 180.0f; sp8.z = 0.0f; BoardModelRotSetV(lbl_1_bss_FE, &sp8); - PSVECAdd(&sp20, &sp2C, &sp20); + VECAdd(&sp20, &sp2C, &sp20); sp14.y = sp20.y; - PSVECSubtract(&sp14, &sp20, &sp14); - temp_f29 = PSVECMag(&sp14); + VECSubtract(&sp14, &sp20, &sp14); + temp_f29 = VECMag(&sp14); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[1]), "fish", &sp14); if (temp_f29 <= arg0->trans.x) { sp20.x = sp14.x; diff --git a/src/REL/w05Dll/mg_item.c b/src/REL/w05Dll/mg_item.c index f0cfd6a2..91159cae 100644 --- a/src/REL/w05Dll/mg_item.c +++ b/src/REL/w05Dll/mg_item.c @@ -85,7 +85,7 @@ void fn_1_6B7C(void) BoardModelHookSet(BoardPlayerModelGet(lbl_1_bss_B6), "a-itemhook-r", lbl_1_bss_A2); Hu3DModelObjPosGet(BoardModelIDGet(*lbl_1_bss_14), "chara1", &sp10); Hu3DModelObjPosGet(BoardModelIDGet(BoardPlayerModelGet(lbl_1_bss_B6)), "a-itemhook-r", &sp1C); - PSVECAdd(&sp1C, &sp10, &sp1C); + VECAdd(&sp1C, &sp10, &sp1C); sp1C.y += 25.0f; CharModelLayerSetAll(7); CharModelEffectCreate(-1, &sp1C); @@ -292,13 +292,13 @@ void fn_1_799C(void) temp_r31 = temp_r30->work[0]; BoardModelPosGet(lbl_1_bss_A4[temp_r31], &sp20); sp2C.y = sp20.y = 0.0f; - PSVECSubtract(&sp2C, &sp20, &sp14); - temp_f30 = PSVECMag(&sp14); - PSVECScale(&sp14, &sp14, 0.016666668); + VECSubtract(&sp2C, &sp20, &sp14); + temp_f30 = VECMag(&sp14); + VECScale(&sp14, &sp14, 0.016666668); for (var_r29 = 0; var_r29 < 0x3C; var_r29++) { BoardModelPosGet(lbl_1_bss_A4[temp_r31], &sp20); - PSVECAdd(&sp20, &sp14, &sp20); + VECAdd(&sp20, &sp14, &sp20); BoardModelPosSetV(lbl_1_bss_A4[temp_r31], &sp20); HuPrcVSleep(); } @@ -505,7 +505,7 @@ void fn_1_850C(omObjData *arg0) BoardPlayerMotionStart(lbl_1_bss_B6, lbl_1_bss_9E[0], 0x40000001); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_14[0]), "chara1", &sp8); Hu3DModelObjPosGet(BoardModelIDGet(BoardPlayerModelGet(lbl_1_bss_B6)), "a-itemhook-r", &sp14); - PSVECAdd(&sp14, &sp8, &sp14); + VECAdd(&sp14, &sp8, &sp14); sp14.y += 25.0f; CharModelLayerSetAll(7); CharModelEffectCreate(-1, &sp14); diff --git a/src/REL/w05Dll/monkey.c b/src/REL/w05Dll/monkey.c index 52c6f9db..860bec35 100644 --- a/src/REL/w05Dll/monkey.c +++ b/src/REL/w05Dll/monkey.c @@ -110,25 +110,25 @@ void fn_1_3044(void) { HuPrcSleep(0x88); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_4A), lbl_1_data_1C4[lbl_1_bss_48], &sp20); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_4E[lbl_1_bss_48]), "bakawa1", &sp14); - PSVECAdd(&sp20, &sp14, &sp14); + VECAdd(&sp20, &sp14, &sp14); BoardModelPosSetV(lbl_1_bss_44[0], &sp14); BoardModelVisibilitySet(lbl_1_bss_44[0], 1); BoardModelMotionTimeSet(lbl_1_bss_44[0], 0.0f); HuAudFXPlay(0x48C); - PSVECSubtract(&lbl_1_bss_38, &sp14, &sp8); + VECSubtract(&lbl_1_bss_38, &sp14, &sp8); sp8.y = 0.0f; - PSVECNormalize(&sp8, &sp8); - PSVECScale(&sp8, &sp8, 8.0f); + VECNormalize(&sp8, &sp8); + VECScale(&sp8, &sp8, 8.0f); temp_f30 = 11.0f; var_f31 = 0.0f; while (1) { sp8.y = (temp_f30 - (0.075 * (0.25f * (var_f31 * var_f31)))); var_f31 += 1.0f; - PSVECAdd(&sp14, &sp8, &sp14); - PSVECSubtract(&lbl_1_bss_38, &sp14, &sp20); + VECAdd(&sp14, &sp8, &sp14); + VECSubtract(&lbl_1_bss_38, &sp14, &sp20); sp20.y = 0.0f; - var_f29 = PSVECMag(&sp20); + var_f29 = VECMag(&sp20); if (var_f29 <= 8.0f) { sp14.x = lbl_1_bss_38.x; sp14.z = lbl_1_bss_38.z; @@ -179,19 +179,19 @@ void fn_1_3514(void) { BoardPlayerPosGet(lbl_1_bss_4C, &sp2C); BoardPlayerMotionShiftSet(lbl_1_bss_4C, 4, 0.0f, 5.0f, 0); - PSVECSubtract(&lbl_1_bss_38, &sp2C, &sp20); + VECSubtract(&lbl_1_bss_38, &sp2C, &sp20); sp20.y = 0.0f; - PSVECNormalize(&sp20, &sp20); - PSVECScale(&sp20, &sp20, 7.2f); + VECNormalize(&sp20, &sp20); + VECScale(&sp20, &sp20, 7.2f); var_f30 = 10.0f; var_f31 = 0.0f; while (1) { sp20.y = (var_f30 - (0.075f * (0.25f * (var_f31 * var_f31)))); var_f31 += 1.0f; - PSVECAdd(&sp2C, &sp20, &sp2C); - PSVECSubtract(&lbl_1_bss_38, &sp2C, &sp14); + VECAdd(&sp2C, &sp20, &sp2C); + VECSubtract(&lbl_1_bss_38, &sp2C, &sp14); sp14.y = 0.0f; - var_f29 = PSVECMag(&sp14); + var_f29 = VECMag(&sp14); if (var_f29 <= 7.2f) { sp2C.x = lbl_1_bss_38.x; sp2C.z = lbl_1_bss_38.z; @@ -218,19 +218,19 @@ void fn_1_3514(void) { var_r31 = BoardSpaceLinkFlagSearch(0, var_r31, 0x400); } BoardSpacePosGet(0, var_r31, &sp8); - PSVECSubtract(&sp8, &sp2C, &sp20); + VECSubtract(&sp8, &sp2C, &sp20); sp20.y = 0.0f; - PSVECNormalize(&sp20, &sp20); - PSVECScale(&sp20, &sp20, 10.0f); + VECNormalize(&sp20, &sp20); + VECScale(&sp20, &sp20, 10.0f); var_f30 = 9.0f; var_f31 = 0.0f; while (1) { sp20.y = var_f30 - (0.075f * (0.25f * (var_f31 * var_f31))); var_f31 += 1.0f; - PSVECAdd(&sp2C, &sp20, &sp2C); - PSVECSubtract(&sp8, &sp2C, &sp14); + VECAdd(&sp2C, &sp20, &sp2C); + VECSubtract(&sp8, &sp2C, &sp14); sp14.y = 0.0f; - var_f29 = PSVECMag(&sp14); + var_f29 = VECMag(&sp14); if (var_f29 <= 10.0f) { sp2C.x = sp8.x; sp2C.z = sp8.z; @@ -327,7 +327,7 @@ void fn_1_3E8C(void) { sp8.x = 25.0f; } for (i = 0; i < 60; i++) { - PSVECAdd(&sp14, &sp8, &sp14); + VECAdd(&sp14, &sp8, &sp14); sp8.y -= 0.625f; BoardModelPosSetV(lbl_1_bss_44[1], &sp14); HuPrcVSleep(); diff --git a/src/REL/w06Dll/bowser.c b/src/REL/w06Dll/bowser.c index c9215a5d..266b5ae3 100755 --- a/src/REL/w06Dll/bowser.c +++ b/src/REL/w06Dll/bowser.c @@ -250,8 +250,8 @@ static void fn_1_95AC(s32 arg0) { lbl_1_data_49C = BoardPlayerMotionCreate(arg0, lbl_1_data_510[GWPlayer[arg0].character]); BoardPlayerPosGet(arg0, &sp38); BoardModelPosGet(lbl_1_data_49A, &sp2C); - PSVECSubtract(&sp2C, &sp38, &sp20); - PSVECNormalize(&sp20, &sp20); + VECSubtract(&sp2C, &sp38, &sp20); + VECNormalize(&sp20, &sp20); BoardModelMotionShiftSet(lbl_1_data_498, 4, 0.0f, 8.0f, 0); HuPrcSleep(8); HuAudFXPlay(0x3C); @@ -300,8 +300,8 @@ static void fn_1_95AC(s32 arg0) { omVibrate(arg0, 12, 4, 2); BoardPlayerMotionStart(arg0, lbl_1_data_49C, 0x40000001); temp_r30 = BoardSpaceFlagPosGet(0, 0x8000, &sp2C); - PSVECSubtract(&sp2C, &sp38, &sp20); - PSVECNormalize(&sp20, &sp20); + VECSubtract(&sp2C, &sp38, &sp20); + VECNormalize(&sp20, &sp20); sp20.x = 500.0f * sp20.x / 90.0f; sp20.z = 500.0f * sp20.z / 90.0f; sp38.y += 150.0f; @@ -384,8 +384,8 @@ static void fn_1_9E5C(s32 arg0) { BoardPlayerPosGet(arg0, &sp38); BoardModelPosGet(lbl_1_data_49A, &sp2C); - PSVECSubtract(&sp2C, &sp38, &sp20); - PSVECNormalize(&sp20, &sp20); + VECSubtract(&sp2C, &sp38, &sp20); + VECNormalize(&sp20, &sp20); BoardModelMotionShiftSet(lbl_1_data_498, 4, 0.0f, 8.0f, 0); HuPrcSleep(8); HuAudFXPlay(0x3C); @@ -500,8 +500,8 @@ static void fn_1_A408(s32 arg0) { BoardPlayerPosGet(arg0, &sp38); BoardModelPosGet(lbl_1_data_49A, &sp2C); - PSVECSubtract(&sp2C, &sp38, &sp20); - PSVECNormalize(&sp20, &sp20); + VECSubtract(&sp2C, &sp38, &sp20); + VECNormalize(&sp20, &sp20); BoardModelMotionShiftSet(lbl_1_data_498, 4, 0.0f, 8.0f, 0); HuPrcSleep(8); HuAudFXPlay(0x3C); @@ -656,8 +656,8 @@ static void fn_1_AB4C(s32 arg0, s32 arg1) { BoardSpacePosGet(0, arg1, &sp3C); BoardPlayerPosSetV(arg0, &sp3C); BoardModelPosGet(lbl_1_data_49A, &sp30); - PSVECSubtract(&sp30, &sp3C, &sp24); - PSVECNormalize(&sp24, &sp24); + VECSubtract(&sp30, &sp3C, &sp24); + VECNormalize(&sp24, &sp24); BoardPlayerRotYSet(arg0, atan2d(sp24.x, sp24.z)); BoardPlayerSizeSet(arg0, 2); sp18.x = 0.0f; @@ -774,8 +774,8 @@ static void fn_1_B27C(s32 arg0) { BoardPlayerPosGet(arg0, &sp38); BoardModelPosGet(lbl_1_data_49A, &sp2C); - PSVECSubtract(&sp2C, &sp38, &sp20); - PSVECNormalize(&sp20, &sp20); + VECSubtract(&sp2C, &sp38, &sp20); + VECNormalize(&sp20, &sp20); BoardModelMotionShiftSet(lbl_1_data_498, 4, 0.0f, 8.0f, 0); HuPrcSleep(8); HuAudFXPlay(0x3C); @@ -960,7 +960,7 @@ static void fn_1_BD8C(s32 arg0) { OSs8tof32(&lbl_1_data_4A4[lbl_1_bss_0->unk04 - 1], &var_f25); BoardPlayerPosGet(arg0, &sp18); BoardModelPosGet(lbl_1_data_49A, &sp24); - PSVECSubtract(&sp18, &sp24, &spC); + VECSubtract(&sp18, &sp24, &spC); var_f26 = atan2d(spC.x, spC.z); BoardPlayerMotBlendSet(arg0, var_f26 + 180.0f, 0x14); fn_1_B6A0(var_f25, 20); @@ -1205,9 +1205,9 @@ void fn_1_CD0C(void) { BoardModelVisibilitySet(lbl_1_data_49A, 1); BoardModelPosGet(lbl_1_data_498, &sp20); BoardViewFocusGetPos(&sp2C); - PSVECSubtract(&sp2C, &sp20, &sp14); + VECSubtract(&sp2C, &sp20, &sp14); sp14.y = 0.0f; - temp_f30 = PSVECMag(&sp14); + temp_f30 = VECMag(&sp14); if (temp_f30 > 3000.0f) { var_r30 = 180; } else if (temp_f30 > 1500.0f) { diff --git a/src/REL/w06Dll/bridge.c b/src/REL/w06Dll/bridge.c index 9045bc1e..98e74c7d 100755 --- a/src/REL/w06Dll/bridge.c +++ b/src/REL/w06Dll/bridge.c @@ -226,7 +226,7 @@ static s32 fn_1_8490(s32 arg0, s8 arg1) { BoardPlayerPosGet(arg0, &sp18); BoardSpacePosGet(0, lbl_1_bss_E2, &sp24); - PSVECSubtract(&sp24, &sp18, &spC); + VECSubtract(&sp24, &sp18, &spC); temp_f30 = atan2d(spC.x, spC.z); BoardPlayerMotBlendSet(arg0, temp_f30, 0xF); while (!BoardPlayerMotBlendCheck(arg0)) { diff --git a/src/REL/w06Dll/fire.c b/src/REL/w06Dll/fire.c index be247094..794377cc 100755 --- a/src/REL/w06Dll/fire.c +++ b/src/REL/w06Dll/fire.c @@ -154,7 +154,7 @@ static void fn_1_72CC(s32 arg0) { } BoardPlayerPosGet(arg0, &sp18); BoardModelPosGet(lbl_1_bss_C0, &sp24); - PSVECSubtract(&sp24, &sp18, &spC); + VECSubtract(&sp24, &sp18, &spC); for (i = 0; i < 4; i++) { if (var_r30 & BoardSpaceFlagGet(0, GWPlayer[i].space_curr)) { lbl_1_bss_C2[i] = 1; @@ -265,11 +265,11 @@ static void fn_1_7760(s32 arg0) { } BoardModelPosGet(lbl_1_bss_C0, &sp20); BoardSpacePosGet(0, var_r29, &sp2C); - PSVECSubtract(&sp2C, &sp20, &sp8); + VECSubtract(&sp2C, &sp20, &sp8); sp8.x *= 0.4f; sp8.y *= 0.4f; sp8.z *= 0.4f; - PSVECAdd(&sp20, &sp8, &sp2C); + VECAdd(&sp20, &sp8, &sp2C); lbl_1_data_22A = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 0); BoardModelVisibilitySet(lbl_1_data_22A, 0); BoardModelPosSetV(lbl_1_data_22A, &sp2C); diff --git a/src/REL/w06Dll/mg_coin.c b/src/REL/w06Dll/mg_coin.c index 112ba588..daa0ac8b 100755 --- a/src/REL/w06Dll/mg_coin.c +++ b/src/REL/w06Dll/mg_coin.c @@ -203,8 +203,8 @@ static s32 fn_1_4BF8(s32 arg0) { BoardModelPosGet(lbl_1_bss_C[0], &sp38); sp38.x += 115.0 * sin(M_PI); sp38.z += 115.0 * cos(M_PI); - PSVECSubtract(&sp38, &sp2C, &sp20); - PSVECNormalize(&sp20, &sp20); + VECSubtract(&sp38, &sp2C, &sp20); + VECNormalize(&sp20, &sp20); BoardPlayerRotYSet(arg0, atan2d(-sp20.x, -sp20.z)); BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 40); BoardModelPosGet(lbl_1_bss_C[5], &sp2C); @@ -212,7 +212,7 @@ static s32 fn_1_4BF8(s32 arg0) { BoardModelMotionSpeedSet(lbl_1_bss_C[5], 2.0f); while (GWPlayer[arg0].moving) { BoardPlayerPosGet(arg0, &sp38); - PSVECSubtract(&sp38, &sp2C, &sp20); + VECSubtract(&sp38, &sp2C, &sp20); BoardModelRotYSet(lbl_1_bss_C[5], atan2d(sp20.x, sp20.z)); HuPrcVSleep(); } @@ -285,7 +285,7 @@ static void fn_1_519C(s32 arg0) { BoardModelMotionSpeedSet(lbl_1_bss_C[5], 2.0f); while (GWPlayer[arg0].moving) { BoardPlayerPosGet(arg0, &sp14); - PSVECSubtract(&sp14, &sp20, &sp8); + VECSubtract(&sp14, &sp20, &sp8); BoardModelRotYSet(lbl_1_bss_C[5], atan2d(sp8.x, sp8.z)); HuPrcVSleep(); } @@ -336,8 +336,8 @@ static void fn_1_5490(s32 arg0) { sp3C.x += 50.0f; BoardPlayerPosGet(arg0, &sp30); sp30.x -= 10.0f; - PSVECSubtract(&sp30, &sp3C, &sp24); - PSVECNormalize(&sp24, &sp18); + VECSubtract(&sp30, &sp3C, &sp24); + VECNormalize(&sp24, &sp18); temp_r3->trans.x = sp24.x / 60.0f; temp_r3->trans.y = sp24.y / 60.0f; temp_r3->trans.z = sp24.z / 60.0f; diff --git a/src/REL/w06Dll/mg_item.c b/src/REL/w06Dll/mg_item.c index 60400ef0..fa37e956 100755 --- a/src/REL/w06Dll/mg_item.c +++ b/src/REL/w06Dll/mg_item.c @@ -273,8 +273,8 @@ static s32 fn_1_12A0(s32 arg0) { lbl_1_bss_34 = BoardSpaceLinkFlagSearch(0, var_r30, 0x02000000); BoardPlayerPosGet(arg0, &sp2C); BoardSpacePosGet(0, lbl_1_bss_34, &sp38); - PSVECSubtract(&sp38, &sp2C, &sp20); - PSVECNormalize(&sp20, &sp20); + VECSubtract(&sp38, &sp2C, &sp20); + VECNormalize(&sp20, &sp20); BoardPlayerRotYSet(arg0, atan2d(-sp20.x, -sp20.z)); BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 20); while (GWPlayer[arg0].moving) { @@ -979,7 +979,7 @@ static void fn_1_3698(s8 arg0) { } else { var_f30 = 20.0f; } - PSVECSubtract(&sp18, &sp24, &spC); + VECSubtract(&sp18, &sp24, &spC); lbl_1_bss_28->trans.y = temp_f31 / var_f30; BoardModelRotYSet(lbl_1_bss_C[4], atan2d(spC.x, spC.z)); BoardModelMotionShiftSet(lbl_1_bss_C[4], temp_r31->unk08, 0.0f, 8.0f, 0x40000001); diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c index a142e25f..12c726e7 100644 --- a/src/REL/ztardll/main.c +++ b/src/REL/ztardll/main.c @@ -156,7 +156,7 @@ block_7: sp2C.y = 400.0f; sp2C.z = 100.0f; Hu3D2Dto3D(&sp2C, 1, &sp20); - PSVECSubtract(&sp8, &sp20, &sp14); + VECSubtract(&sp8, &sp20, &sp14); for (var_r31 = 0; var_r31 <= 0x1E; var_r31++) { if (var_r31 <= 0x14) { var_f31 = var_r31 / 20.0; @@ -166,8 +166,8 @@ block_7: HuSprGrpPosSet(lbl_1_bss_4C[1], 438.0 + (300.0 * (1.0 - sind((90.0f * var_f31)))), 240.0f); } var_f31 = var_r31 / 30.0; - PSVECScale(&sp14, &sp2C, var_f31); - PSVECAdd(&sp2C, &sp20, &sp2C); + VECScale(&sp14, &sp2C, var_f31); + VECAdd(&sp2C, &sp20, &sp2C); Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f); Hu3DModelPosSetV(lbl_1_bss_42, &sp2C); HuPrcVSleep(); @@ -1450,15 +1450,15 @@ void fn_1_6804(void) sp8.z = sp14.z * ((sp20.z * sp20.z) + ((1.0f - (sp20.z * sp20.z)) * cosd(var_f31))) + (sp14.x * (((sp20.x * sp20.z) * (1.0 - cosd(var_f31))) - sp20.y * sind(var_f31)) + sp14.y * (((sp20.y * sp20.z) * (1.0 - cosd(var_f31))) + sp20.x * sind(var_f31))); - PSVECCrossProduct(&sp14, &sp20, &sp20); - PSVECNormalize(&sp20, &sp20); + VECCrossProduct(&sp14, &sp20, &sp20); + VECNormalize(&sp20, &sp20); var_r31 = HuPadSubStkX[0] & 0xF8; if (var_r31 != 0) { Center.x += 0.05f * (sp20.x * var_r31); Center.y += 0.05f * (sp20.y * var_r31); Center.z += 0.05f * (sp20.z * var_r31); } - PSVECNormalize(&sp8, &sp20); + VECNormalize(&sp8, &sp20); var_r31 = -(HuPadSubStkY[0] & 0xF8); if (var_r31 != 0) { Center.x += 0.05f * (sp20.x * var_r31); diff --git a/src/game/EnvelopeExec.c b/src/game/EnvelopeExec.c index cf417b01..53a9d990 100644 --- a/src/game/EnvelopeExec.c +++ b/src/game/EnvelopeExec.c @@ -367,11 +367,11 @@ static void SetEnvelop(HsfCenv *arg0) { sp44.x = var_r25->value * (sp44.x - temp_r31->x); sp44.y = var_r25->value * (sp44.y - temp_r31->y); sp44.z = var_r25->value * (sp44.z - temp_r31->z); - PSVECAdd(&sp38, &sp44, &sp38); + VECAdd(&sp38, &sp44, &sp38); sp2C.x = var_r25->value * (sp2C.x - temp_r26->x); sp2C.y = var_r25->value * (sp2C.y - temp_r26->y); sp2C.z = var_r25->value * (sp2C.z - temp_r26->z); - PSVECAdd(&sp20, &sp2C, &sp20); + VECAdd(&sp20, &sp2C, &sp20); } temp_r28->x = temp_r31->x + sp38.x; temp_r28->y = temp_r31->y + sp38.y; diff --git a/src/game/board/boo.c b/src/game/board/boo.c index f8323694..b8f57490 100755 --- a/src/game/board/boo.c +++ b/src/game/board/boo.c @@ -1292,7 +1292,7 @@ static void TakeBallCoin(void) { var_r31->unk1C.x = 3.0f * (BoardRandFloat() - 0.5f); var_r31->unk1C.y = 3.0 * sin(BoardRandFloat()); var_r31->unk1C.z = 3.0f * (BoardRandFloat() - 0.5f); - PSVECScale(&var_r31->unk1C, &var_r31->unk1C, 4.0f); + VECScale(&var_r31->unk1C, &var_r31->unk1C, 4.0f); BoardModelPosSetV(var_r31->unk00, &var_r31->unk04); var_r31->unk10 = var_r31->unk1C; } @@ -1329,8 +1329,8 @@ static void TakeBallCoinPosSet(BallTakeCoinData *arg0, Vec *arg1) { arg0->unk00 = -1; return; } - PSVECAdd(&arg0->unk04, &arg0->unk10, &arg0->unk04); - PSVECAdd(&arg0->unk04, &arg0->unk1C, &arg0->unk04); + VECAdd(&arg0->unk04, &arg0->unk10, &arg0->unk04); + VECAdd(&arg0->unk04, &arg0->unk1C, &arg0->unk04); arg0->unk10.y += -0.98f; BoardModelPosSetV(arg0->unk00, &arg0->unk04); } diff --git a/src/game/board/boo_house.c b/src/game/board/boo_house.c index 544eabd6..447c3512 100644 --- a/src/game/board/boo_house.c +++ b/src/game/board/boo_house.c @@ -237,8 +237,8 @@ static void ExecBooHouse(void) temp_r29 = BoardSpaceLinkFlagSearch(0, var_r30, 0x02000000); BoardSpacePosGet(0, var_r30, &sp38); BoardSpacePosGet(0, temp_r29, &sp2C); - PSVECSubtract(&sp2C, &sp38, &sp20); - PSVECNormalize(&sp20, &sp20); + VECSubtract(&sp2C, &sp38, &sp20); + VECNormalize(&sp20, &sp20); temp_f31 = atan2d(-sp20.x, -sp20.z); sp14.x = -15.0f; sp14.y = temp_f31; @@ -837,8 +837,8 @@ void BoardBooHouseTutorialExec(void) temp_r28 = BoardSpaceLinkFlagSearch(0, temp_r29, 0x02000000); BoardSpacePosGet(0, temp_r29, &sp38); BoardSpacePosGet(0, temp_r28, &sp2C); - PSVECSubtract(&sp2C, &sp38, &sp20); - PSVECNormalize(&sp20, &sp20); + VECSubtract(&sp2C, &sp38, &sp20); + VECNormalize(&sp20, &sp20); temp_f31 = atan2d(-sp20.x, -sp20.z); sp14.x = -15.0f; sp14.y = temp_f31; diff --git a/src/game/board/com.c b/src/game/board/com.c index 00a66a66..ed7f1e3c 100755 --- a/src/game/board/com.c +++ b/src/game/board/com.c @@ -746,7 +746,7 @@ s32 BoardComJunctionInputGet(s32 item, Vec *input, s32 num_dirs, float *dirs) { } else { BoardSpacePosGet(0, space, &pos_junction); BoardSpacePosGet(0, space_next, &pos_next); - PSVECSubtract(&pos_next, &pos_junction, &dir); + VECSubtract(&pos_next, &pos_junction, &dir); angle = BoardDAngleCalc(90.0 - atan2d(dir.z, dir.x)); if (angle < 0.0f) { angle += 360.0f; diff --git a/src/game/board/item.c b/src/game/board/item.c index 76563ee2..682448db 100755 --- a/src/game/board/item.c +++ b/src/game/board/item.c @@ -326,7 +326,7 @@ static void ItemRotProc(void) { if (temp_r31->unk0C >= 360.0f) { temp_r31->unk0C -= 360.0f; } - PSVECAdd(&sp8, &temp_r31->unk10, &sp8); + VECAdd(&sp8, &temp_r31->unk10, &sp8); if (sp8.x < 0.0f) { sp8.x += 360.0f; } @@ -384,7 +384,7 @@ static inline void BoardUiInlineFunc01(Vec *arg0) { } sp3C.y -= var_f31; BoardModelPosSetV(suitMdl, &sp3C); - PSVECAdd(&sp48, arg0, &sp48); + VECAdd(&sp48, arg0, &sp48); for (i = 0; i < 3; i++) { if (((float*) &sp48)[i] < 0.0f) { ((float*) &sp48)[i] += 360.0f; @@ -896,8 +896,8 @@ static void ExecItemPipe(void) { temp_f28 = 19.0f; var_f29 = 0.0f; for (var_r31 = 0; var_r31 < 2; var_r31++) { - PSVECSubtract(&spE4[var_r31], &spCC[var_r31], &spB4[var_r31]); - PSVECScale(&spB4[var_r31], &spB4[var_r31], 0.03f); + VECSubtract(&spE4[var_r31], &spCC[var_r31], &spB4[var_r31]); + VECScale(&spB4[var_r31], &spB4[var_r31], 0.03f); BoardModelVisibilitySet(BoardPlayerModelGet(sp2C[var_r31]), 1); } HuAudPlayerVoicePlay(currItemRestore, 0x122); @@ -1035,7 +1035,7 @@ static void ExecItemSwap(void) { } BoardModelRotGet(suitMdl, &spA8); while (1) { - PSVECAdd(&spA8, &sp9C, &spA8); + VECAdd(&spA8, &sp9C, &spA8); for (var_r26 = 0; var_r26 < 3; var_r26++) { if (((float*) &spA8)[var_r26] < 0.0f) { ((float*) &spA8)[var_r26] += 360.0f; @@ -1092,8 +1092,8 @@ static void ExecItemSwap(void) { BoardItemGetDestPos(currItemRestore, &sp15C[0]); BoardItemGetDestPos(temp_r24, &sp138[0]); BoardModelPosGet(suitMdl, &sp90); - PSVECSubtract(&sp90, &Hu3DCamera->pos, &sp90); - temp_f29 = PSVECMag(&sp90); + VECSubtract(&sp90, &Hu3DCamera->pos, &sp90); + temp_f29 = VECMag(&sp90); for (var_r31 = 0; var_r31 < 3; var_r31++) { sp15C[var_r31].z = temp_f29; sp138[var_r31].z = temp_f29; @@ -1105,15 +1105,15 @@ static void ExecItemSwap(void) { sp1A4[var_r31] = sp180[var_r31] = spB4; Hu3D2Dto3D(&sp15C[var_r31], 1, &sp84); Hu3D2Dto3D(&sp138[var_r31], 1, &sp78); - PSVECSubtract(&sp84, &sp1A4[var_r31], &sp6C); - PSVECScale(&sp6C, &sp6C, 0.033333335f); - PSVECSubtract(&sp78, &sp180[var_r31], &sp60); - PSVECScale(&sp60, &sp60, 0.033333335f); + VECSubtract(&sp84, &sp1A4[var_r31], &sp6C); + VECScale(&sp6C, &sp6C, 0.033333335f); + VECSubtract(&sp78, &sp180[var_r31], &sp60); + VECScale(&sp60, &sp60, 0.033333335f); for (var_r30 = 0; var_r30 < 30; var_r30++) { BoardModelPosSetV(sp54[var_r31], &sp1A4[var_r31]); BoardModelPosSetV(sp54[var_r31 + 3], &sp180[var_r31]); - PSVECAdd(&sp1A4[var_r31], &sp6C, &sp1A4[var_r31]); - PSVECAdd(&sp180[var_r31], &sp60, &sp180[var_r31]); + VECAdd(&sp1A4[var_r31], &sp6C, &sp1A4[var_r31]); + VECAdd(&sp180[var_r31], &sp60, &sp180[var_r31]); HuPrcVSleep(); } sp1A4[var_r31] = sp84; @@ -1154,15 +1154,15 @@ static void ExecItemSwap(void) { } for (var_r31 = (var_r28 / 2) - 1; var_r31 >= 0; var_r31--) { HuAudFXPlay(0x32C); - PSVECSubtract(&spB4, &sp1A4[var_r31], &sp6C); - PSVECScale(&sp6C, &sp6C, 0.033333335f); - PSVECSubtract(&spB4, &sp180[var_r31], &sp60); - PSVECScale(&sp60, &sp60, 0.033333335f); + VECSubtract(&spB4, &sp1A4[var_r31], &sp6C); + VECScale(&sp6C, &sp6C, 0.033333335f); + VECSubtract(&spB4, &sp180[var_r31], &sp60); + VECScale(&sp60, &sp60, 0.033333335f); for (var_r30 = 0; var_r30 < 30; var_r30++) { BoardModelPosSetV(sp54[var_r31], &sp1A4[var_r31]); BoardModelPosSetV(sp54[var_r31 + 3], &sp180[var_r31]); - PSVECAdd(&sp1A4[var_r31], &sp6C, &sp1A4[var_r31]); - PSVECAdd(&sp180[var_r31], &sp60, &sp180[var_r31]); + VECAdd(&sp1A4[var_r31], &sp6C, &sp1A4[var_r31]); + VECAdd(&sp180[var_r31], &sp60, &sp180[var_r31]); HuPrcVSleep(); } BoardModelVisibilitySet(sp54[var_r31], 0); @@ -1174,7 +1174,7 @@ static void ExecItemSwap(void) { while (1) { BoardModelRotSetV(suitMdl, &spA8); BoardModelAlphaSet(suitMdl, var_f30); - PSVECAdd(&spA8, &sp9C, &spA8); + VECAdd(&spA8, &sp9C, &spA8); sp9C.y *= 1.02f; if (sp9C.y >= 35.0f) { if (var_r21 == 0) { @@ -1397,8 +1397,8 @@ static void ExecItemWhistle(void) { BoardPlayerPosGet(currItemRestore, &sp84); sp84.y += 200.0f; sp84.z += 100.0f; - PSVECSubtract(&sp84, &sp90, &sp78); - PSVECScale(&sp78, &sp78, 0.03448276f); + VECSubtract(&sp84, &sp90, &sp78); + VECScale(&sp78, &sp78, 0.03448276f); BoardPlayerMotionStart(currItemRestore, temp_r23, 0); BoardPlayerMotionTimeSet(currItemRestore, 1.0f); for (var_r31 = 0; var_r31 < 29; var_r31++) { @@ -1978,8 +1978,8 @@ static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx mat for (i = 0; i < particle->unk_30; i++, var_r31++) { if (var_r31->unk2C != 0.0f) { if (var_r31->unk00_s16 == 0) { - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); - PSVECScale(&var_r31->unk08, &var_r31->unk08, 0.95f); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECScale(&var_r31->unk08, &var_r31->unk08, 0.95f); var_r31->unk2C += 8.0f; var_r31->unk14.y -= 2.8333333f; if (var_r31->unk14.y <= 120.0f) { @@ -1992,7 +1992,7 @@ static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx mat } var_r31->unk40.a = var_r31->unk14.y; } else { - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk2C += 0.2f; var_r31->unk14.y -= 1.8214285f; if (var_r31->unk14.y <= 55.0f) { @@ -2034,8 +2034,8 @@ static void GenieParticleUpdate(ModelData *model, ParticleData *particle, Mtx ma for (i = 0; i < particle->unk_30; i++, var_r31++) { if (var_r31->unk2C != 0.0f) { var_r28++; - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); - PSVECScale(&var_r31->unk08, &var_r31->unk08, 0.995f); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECScale(&var_r31->unk08, &var_r31->unk08, 0.995f); var_r31->unk2C -= 0.2f; var_r31->unk14.y -= 1.59375f; if (var_r31->unk14.y <= 20.0f) { @@ -2216,8 +2216,8 @@ static void GenieSceneExec(void) { BoardPlayerCameraSet(currItemRestore, 2); BoardPlayerPosSetV(currItemRestore, &sp38); BoardModelVisibilitySet(BoardPlayerModelGet(currItemRestore), 1); - PSVECSubtract(&shadowUp, &shadowPos, &sp2C); - PSVECNormalize(&sp2C, &sp2C); + VECSubtract(&shadowUp, &shadowPos, &sp2C); + VECNormalize(&sp2C, &sp2C); temp_r20 = Hu3DGLightCreateV(&shadowPos, &sp2C, &sp1C); Hu3DShadowCreate(60.0f, 10.0f, 20000.0f); Hu3DModelShadowSet(BoardModelIDGet(BoardPlayerModelGet(currItemRestore))); diff --git a/src/game/board/lottery.c b/src/game/board/lottery.c index 9e307af2..c1fb5f7f 100755 --- a/src/game/board/lottery.c +++ b/src/game/board/lottery.c @@ -503,10 +503,10 @@ static void ExecLottery(void) { lotterySpace = BoardSpaceLinkFlagSearch(0, temp_r28, 0x02000000); BoardSpacePosGet(0, temp_r28, &sp38); BoardSpacePosGet(0, lotterySpace, &sp2C); - PSVECSubtract(&sp2C, &sp38, &sp20); + VECSubtract(&sp2C, &sp38, &sp20); if (GWBoardGet() == BOARD_ID_MAIN3 || GWBoardGet() == BOARD_ID_MAIN4) { - PSVECScale(&sp20, &sp20, 0.95f); - PSVECAdd(&sp20, &sp38, &sp2C); + VECScale(&sp20, &sp20, 0.95f); + VECAdd(&sp20, &sp38, &sp2C); } temp_r26 = atan2d(-sp20.x, -sp20.z); if (BoardPlayerSizeGet(temp_r31) == 1) { @@ -546,8 +546,8 @@ static void ExecLottery(void) { for (i = 0; i < 4; i++) { if (i != temp_r31) { BoardPlayerPosGet(i, &sp38); - PSVECSubtract(&sp2C, &sp38, &sp20); - PSVECNormalize(&sp20, &sp20); + VECSubtract(&sp2C, &sp38, &sp20); + VECNormalize(&sp20, &sp20); BoardPlayerMotBlendSet(i, atan2d(sp20.x, sp20.z), 7); } } @@ -620,7 +620,7 @@ static void DoMiniJumpUp(s32 arg0) { temp_f29 = BoardPlayerMotionMaxTimeGet(arg0); BoardPlayerPosGet(arg0, &sp1C); sp28.y += 52.5308f; - PSVECSubtract(&sp28, &sp1C, &sp10); + VECSubtract(&sp28, &sp1C, &sp10); sp10.x /= temp_f29; sp10.z /= temp_f29; sp10.y /= temp_f29; @@ -653,7 +653,7 @@ static void DoMiniJumpDown(s32 arg0) { BoardPlayerPosGet(arg0, &sp18); BoardSpacePosGet(0, lotterySpace, &sp24); - PSVECSubtract(&sp24, &sp18, &spC); + VECSubtract(&sp24, &sp18, &spC); BoardPlayerMotionStart(arg0, 4, 0); spC.x /= 30.0f; spC.z /= 30.0f; @@ -1049,7 +1049,7 @@ static void ExecBallPrize(void) { PSMTXTrans(sp3C, temp_r3->data.curr.pos.x, temp_r3->data.curr.pos.y + 210.0f, temp_r3->data.curr.pos.z + -40.0f); PSMTXConcat(sp6C, sp3C, sp3C); Hu3DMtxTransGet(sp3C, &spC); - PSVECAdd(&spC, &sp30, &sp30); + VECAdd(&spC, &sp30, &sp30); BoardModelVisibilitySet(temp_r29, 1); sp24.x = 10.5f; sp24.y = -3.0f; @@ -1065,7 +1065,7 @@ static void ExecBallPrize(void) { sp24.y -= temp_f26; sp24.x *= 0.92f; sp24.z *= 0.92f; - PSVECAdd(&sp24, &sp30, &sp30); + VECAdd(&sp24, &sp30, &sp30); var_f29 += sp24.z; if (sp30.y - 25.0f < temp_f28) { if (var_r28 == 0) { @@ -1294,13 +1294,13 @@ static void ExecScratchSpr(omObjData *arg0) { sp14.y = arg0->trans.y; sp20.x = arg0->rot.x; sp20.y = arg0->rot.y; - PSVECSubtract(&sp14, &sp20, &sp8); + VECSubtract(&sp14, &sp20, &sp8); if (ABS(sp8.x) < 1.0f && ABS(sp8.y) < 1.0f) { sp8 = sp14; temp_r30->unk00_field1 = 1; } else { - PSVECScale(&sp8, &sp8, 0.2f); - PSVECAdd(&sp20, &sp8, &sp8); + VECScale(&sp8, &sp8, 0.2f); + VECAdd(&sp20, &sp8, &sp8); temp_r30->unk00_field1 = 0; } HuSprPosSet(ticketSprGrp, temp_r30->unk00_field2, sp8.x, sp8.y); @@ -1589,16 +1589,16 @@ static s32 TicketUpdate(AnimBmpData *arg0, Vec *arg1, s32 arg2) { if (handUpdateF == 0) { handUpdateF = 1; } - PSVECNormalize(&sp48, &sp48); + VECNormalize(&sp48, &sp48); temp_f20 = atan2f(sp48.x, -sp48.y); sp48.x = sin(temp_f20); sp48.y = cos(temp_f20); - temp_f25 = 127.0f * PSVECMag(&sp48); + temp_f25 = 127.0f * VECMag(&sp48); OSf32tos8(&temp_f25, &spD); HuAudFXVolSet(arg2, spD); sp48.x *= 8.0f; sp48.y *= 8.0f; - PSVECAdd(&sp48, arg1, &sp3C); + VECAdd(&sp48, arg1, &sp3C); var_r18 = 0; if (sp3C.x < 192.0f) { sp3C.x = 192.0f; @@ -2027,8 +2027,8 @@ void BoardLotteryTutorialExec(void) { temp_r29 = BoardSpaceLinkFlagSearch(0, temp_r31, 0x02000000); BoardSpacePosGet(0, temp_r31, &sp38); BoardSpacePosGet(0, temp_r29, &sp2C); - PSVECSubtract(&sp2C, &sp38, &sp20); - PSVECNormalize(&sp20, &sp20); + VECSubtract(&sp2C, &sp38, &sp20); + VECNormalize(&sp20, &sp20); temp_r28 = atan2d(-sp20.x, -sp20.z); sp14.x = -3.0f; sp14.y = temp_r28; diff --git a/src/game/board/mg_setup.c b/src/game/board/mg_setup.c index 23e10108..1bca487c 100644 --- a/src/game/board/mg_setup.c +++ b/src/game/board/mg_setup.c @@ -837,8 +837,8 @@ static void FallMGType(bitcopy* arg0, omObjData* arg1) { temp_r31->unk_1C[1][temp_r30].y = -128.0f; arg0->unk_02 = 1; } - PSVECSubtract(&temp_r31->unk_1C[1][temp_r30], &temp_r31->unk_1C[0][temp_r30], &sp10); - if (PSVECMag(&sp10) <= 1.0f) { + VECSubtract(&temp_r31->unk_1C[1][temp_r30], &temp_r31->unk_1C[0][temp_r30], &sp10); + if (VECMag(&sp10) <= 1.0f) { temp_r31->unk_1C[0][temp_r30] = temp_r31->unk_1C[1][temp_r30]; temp_r29 = (bitcopy*) mgSetupObj->work; temp_r29->field00_bit1 = 7; @@ -846,8 +846,8 @@ static void FallMGType(bitcopy* arg0, omObjData* arg1) { temp_r29->unk_03 = 0; temp_r29->unk_04 = 0; } else { - PSVECScale(&sp10, &sp10, 0.1f); - PSVECAdd(&sp10, &temp_r31->unk_1C[0][temp_r30], &temp_r31->unk_1C[0][temp_r30]); + VECScale(&sp10, &sp10, 0.1f); + VECAdd(&sp10, &temp_r31->unk_1C[0][temp_r30], &temp_r31->unk_1C[0][temp_r30]); } HuSprPosSet(temp_r31->unk_00[0], temp_r30, temp_r31->unk_1C[0][temp_r30].x, temp_r31->unk_1C[0][temp_r30].y); } diff --git a/src/game/board/mushroom.c b/src/game/board/mushroom.c index 57aa85d6..74f73e0d 100644 --- a/src/game/board/mushroom.c +++ b/src/game/board/mushroom.c @@ -325,9 +325,9 @@ static void CenterBox(ItemGiveWork2* arg0, omObjData* arg1) { sp14.y = arg1->trans.y; sp14.z = arg1->trans.z; BoardPlayerPosGet(arg0->unk00_field5, &sp20); - PSVECSubtract(&sp20, &sp14, &sp8); - PSVECScale(&sp8, &sp8, 0.2f); - PSVECAdd(&sp8, &sp14, &sp14); + VECSubtract(&sp20, &sp14, &sp8); + VECScale(&sp8, &sp8, 0.2f); + VECAdd(&sp8, &sp14, &sp14); if (BoardVecMaxDistXZCheck(&sp20, &sp14, 3.0f) != 0) { arg1->trans.x = sp20.x; diff --git a/src/game/board/pause.c b/src/game/board/pause.c index 7c426ae9..4b5d5401 100755 --- a/src/game/board/pause.c +++ b/src/game/board/pause.c @@ -811,7 +811,7 @@ static void CreatePadConfig(omObjData *arg0, ConfigWork *arg1) { sp14.x = 96.0f; sp14.y = 176.0f; sp14.z = padBoxPos.z; - PSVECSubtract(&sp14, &padBoxPos, &sp8); + VECSubtract(&sp14, &padBoxPos, &sp8); arg0->scale.x = sp8.x / 20.0f; arg0->scale.y = sp8.y / 20.0f; arg1->unk01 = 1; @@ -996,7 +996,7 @@ static void ScrollOutPadConfig(omObjData *arg0, ConfigWork *arg1) { sp14.x = boxPosTbl[0][0]; sp14.y = boxPosTbl[0][1]; sp14.z = 700.0f; - PSVECSubtract(&sp14, &padBoxPos, &sp8); + VECSubtract(&sp14, &padBoxPos, &sp8); arg0->scale.x = sp8.x / 20.0f; arg0->scale.y = sp8.y / 20.0f; arg1->unk01 = 1; diff --git a/src/game/board/player.c b/src/game/board/player.c index e1388143..e309e8f0 100644 --- a/src/game/board/player.c +++ b/src/game/board/player.c @@ -1134,8 +1134,8 @@ static void InitJunction(s32 arg0, s32 arg1, f32 arg8) && ((temp_r25->flag & 0x04000000) == 0)) { if ((temp_r25->flag & BoardJunctionMaskGet()) == 0) { BoardSpacePosGet(0, temp_r26->link[var_r22], &sp50); - PSVECSubtract(&sp50, &sp68, &sp44); - PSVECNormalize(&sp44, &sp44); + VECSubtract(&sp50, &sp68, &sp44); + VECNormalize(&sp44, &sp44); angle = (180.0 * (atan2(sp44.x, sp44.z) / M_PI)); if (angle < 0.0f) { @@ -1339,7 +1339,7 @@ static s32 DoDebugMove(s32 arg0, s16 *arg1) spAC[var_r29] = 0; } else { - PSVECSubtract(&sp5C->pos, &sp88, &sp94); + VECSubtract(&sp5C->pos, &sp88, &sp94); var_f30 = 90.0 - (180.0 * (atan2(sp94.z, sp94.x) / M_PI)); OSf32tos16(&var_f30, &var_r26); if (var_r26 < 0) { @@ -1388,7 +1388,7 @@ static s32 DoDebugMove(s32 arg0, s16 *arg1) } RestoreJunction(var_f30, 1); sp50 = &boardCamera; - PSVECSubtract(&sp50->target, &sp50->pos, &sp7C); + VECSubtract(&sp50->target, &sp50->pos, &sp7C); var_f30 = (var_f30 + (90.0 - (180.0 * (atan2(-sp7C.z, -sp7C.x) / M_PI)))); if (var_f30 < 0.0f) { var_f30 += 360.0f; @@ -1519,7 +1519,7 @@ static s32 ExecJunction(s32 arg0, s16 *arg1) spD0[var_r28] = 0; } else { - PSVECSubtract(&sp88->pos, &spAC, &spB8); + VECSubtract(&sp88->pos, &spAC, &spB8); var_f29 = (90.0 - (180.0 * (atan2(spB8.z, spB8.x) / M_PI))); if (var_f29 < 0.0f) { var_f29 += 360.0f; @@ -1712,8 +1712,8 @@ void BoardPlayerPosLerpStart(s32 arg0, Vec *arg1, Vec *arg2, s16 arg3) BoardBowserSuitMotionSetWalk(); BoardModelMotionSpeedSet(suitMdl, 1.5f); } - PSVECSubtract(arg2, arg1, &sp18); - PSVECNormalize(&sp18, &sp18); + VECSubtract(arg2, arg1, &sp18); + VECNormalize(&sp18, &sp18); var_f26 = 90.0 - (180.0 * (atan2(sp18.z, sp18.x) / M_PI)); var_f30 = var_f26; if (var_f30 < 0.0f) { diff --git a/src/game/board/roll.c b/src/game/board/roll.c index c58d40e1..b233ffab 100755 --- a/src/game/board/roll.c +++ b/src/game/board/roll.c @@ -783,8 +783,8 @@ static void DiceDigitMove(DiceDigitWork *arg0, s32 arg1) { for (i = 0; i < 2; i++) { BoardModelPosGet(arg0->unk04[i], &sp30); Hu3D2Dto3D(&sp54[i], 1, &sp54[i]); - PSVECSubtract(&sp54[i], &sp30, &sp24); - if (PSVECMag(&sp24) < 0.01f) { + VECSubtract(&sp54[i], &sp30, &sp24); + if (VECMag(&sp24) < 0.01f) { arg0->unk00_field2 = 0; if (arg1 != 0 && arg0->unk00_field3 != 0) { BoardModelVisibilitySet(arg0->unk04[i], 0); @@ -792,8 +792,8 @@ static void DiceDigitMove(DiceDigitWork *arg0, s32 arg1) { } else { arg0->unk00_field2 = 1; } - PSVECScale(&sp24, &sp24, arg0->unk08); - PSVECAdd(&sp30, &sp24, &sp30); + VECScale(&sp24, &sp24, arg0->unk08); + VECAdd(&sp30, &sp24, &sp30); BoardModelPosSetV(arg0->unk04[i], &sp30); } } diff --git a/src/game/board/shop.c b/src/game/board/shop.c index 33a41420..f5636adc 100755 --- a/src/game/board/shop.c +++ b/src/game/board/shop.c @@ -260,8 +260,8 @@ static void ExecShop(void) { temp_r25 = BoardSpaceLinkFlagSearch(0, temp_r28, 0x02000000); BoardSpacePosGet(0, temp_r28, &sp38); BoardSpacePosGet(0, temp_r25, &sp2C); - PSVECSubtract(&sp2C, &sp38, &sp20); - PSVECNormalize(&sp20, &sp20); + VECSubtract(&sp2C, &sp38, &sp20); + VECNormalize(&sp20, &sp20); temp_f31 = atan2d(-sp20.x, -sp20.z); sp14.x = -10.0f; sp14.y = temp_f31; @@ -1135,8 +1135,8 @@ void BoardShopTutorialExec(s32 arg0) { temp_r27 = BoardSpaceLinkFlagSearch(0, arg0, 0x02000000); BoardSpacePosGet(0, arg0, &sp48); BoardSpacePosGet(0, temp_r27, &sp3C); - PSVECSubtract(&sp3C, &sp48, &sp30); - PSVECNormalize(&sp30, &sp30); + VECSubtract(&sp3C, &sp48, &sp30); + VECNormalize(&sp30, &sp30); temp_f31 = atan2d(-sp30.x, -sp30.z); sp24.x = -10.0f; sp24.y = temp_f31; diff --git a/src/game/board/star.c b/src/game/board/star.c index cbccef34..c9f7e6ea 100755 --- a/src/game/board/star.c +++ b/src/game/board/star.c @@ -206,7 +206,7 @@ static void ExecStar(void) { starDoneF = 0; var_r22 = BoardSpaceLinkFlagSearch(0, temp_r24, 0x04000000); BoardSpacePosGet(0, var_r22, &sp18); - PSVECSubtract(&sp18, &sp24, &spC); + VECSubtract(&sp18, &sp24, &spC); temp_f30 = 90.0 - atan2d(spC.z, spC.x); temp_f30 = 90.0f * ((temp_f30 + 3.0f) / 90.0f); temp_f29 = BoardPlayerRotYGet(temp_r31); @@ -696,9 +696,9 @@ void BoardStarShowNext(s32 arg0) { showNextObj->scale.z = sp50.z; BoardPlayerPosGet(arg0, &sp38); sp50.y = sp38.y; - PSVECSubtract(&sp50, &sp38, &sp20); + VECSubtract(&sp50, &sp38, &sp20); sp20.y = 0.0f; - temp_f31 = PSVECMag(&sp20); + temp_f31 = VECMag(&sp20); if (temp_f31 > 3000.0f) { var_r27 = 0xF0; } else if (temp_f31 > 1500.0f) { diff --git a/src/game/board/start.c b/src/game/board/start.c index 2d8072a6..ae88ff57 100755 --- a/src/game/board/start.c +++ b/src/game/board/start.c @@ -279,13 +279,13 @@ static void FocusStart(void) { sp20.x = spacePos.x + 150.0f; sp20.y = spacePos.y + 100.0f; sp20.z = spacePos.z + 150.0f; - PSVECSubtract(&sp20, &sp2C, &sp14); + VECSubtract(&sp20, &sp2C, &sp14); sp14.x /= 120.0f; sp14.y /= 120.0f; sp14.z /= 120.0f; HuAudSStreamFadeOut(streamStatus, 0x1388); for (var_r31 = 0; var_r31 < 120; var_r31++) { - PSVECAdd(&sp14, &sp2C, &sp2C); + VECAdd(&sp14, &sp2C, &sp2C); BoardModelPosSetV(camFocus, &sp2C); HuPrcVSleep(); } diff --git a/src/game/board/ui.c b/src/game/board/ui.c index 3e472858..0dd58fbf 100755 --- a/src/game/board/ui.c +++ b/src/game/board/ui.c @@ -650,15 +650,15 @@ static void MoveBoardStatus(s32 arg0) { float var_f30; Vec spC; - PSVECSubtract(&temp_r30->unk10, &temp_r30->unk04, &spC); + VECSubtract(&temp_r30->unk10, &temp_r30->unk04, &spC); if (ABS(spC.x) < 1.0f && ABS(spC.y) < 1.0f) { spC = temp_r30->unk10; temp_r30->unk00_bit2 = 0; } else { OSs8tof32(&temp_r30->unk01, &var_f30); var_f30 /= 32; - PSVECScale(&spC, &spC, var_f30); - PSVECAdd(&temp_r30->unk04, &spC, &spC); + VECScale(&spC, &spC, var_f30); + VECAdd(&temp_r30->unk04, &spC, &spC); temp_r30->unk00_bit2 = 1; } temp_r30->unk04.x = spC.x; @@ -833,15 +833,15 @@ static void MovePicker(UnkUiWork01 *arg0, omObjData *arg1) { sp14.x = arg1->trans.x; sp14.y = arg1->trans.y; sp14.z = arg1->trans.z; - PSVECSubtract(&sp8, &sp14, &sp8); - if (PSVECMag(&sp8) < 1.0f) { + VECSubtract(&sp8, &sp14, &sp8); + if (VECMag(&sp8) < 1.0f) { arg1->trans.x = arg1->rot.x; arg1->trans.y = arg1->rot.y; arg1->trans.z = arg1->rot.z; arg0->unk00_bit6 = 0; } else { - PSVECScale(&sp8, &sp8, temp_f31); - PSVECAdd(&sp14, &sp8, &sp8); + VECScale(&sp8, &sp8, temp_f31); + VECAdd(&sp14, &sp8, &sp8); arg1->trans.x = sp8.x; arg1->trans.y = sp8.y; arg1->trans.z = sp8.z; @@ -1444,7 +1444,7 @@ static void MakeItemPickSpace(UnkUiWork03 *arg0) { } for (i = 0; i < 4; i++) { for (j = 0; j < 6; j++) { - PSVECSubtract(&(temp_r28 + 4)[i][j], &temp_r28[i][j], &sp8); + VECSubtract(&(temp_r28 + 4)[i][j], &temp_r28[i][j], &sp8); if (ABS(sp8.x) < 1.0f && ABS(sp8.y) < 1.0f) { sp8 = (temp_r28 + 4)[i][j]; if (arg0->unk00_bit1 && arg0->unk03 == 0) { @@ -1452,8 +1452,8 @@ static void MakeItemPickSpace(UnkUiWork03 *arg0) { } } else { var_f29 = 0.3f; - PSVECScale(&sp8, &sp8, var_f29); - PSVECAdd(&temp_r28[i][j], &sp8, &sp8); + VECScale(&sp8, &sp8, var_f29); + VECAdd(&temp_r28[i][j], &sp8, &sp8); } temp_r28[i][j].x = sp8.x; temp_r28[i][j].y = sp8.y; @@ -1513,7 +1513,7 @@ void BoardItemGetDestPos(s32 arg0, Vec *arg1) { spC.y = statusPosTbl[arg0][1]; spC.z = 0.0f; for (i = 0; i < 3; i++) { - PSVECAdd((Vec*) &statusItemPosTbl[i + 2], &spC, &arg1[i]); + VECAdd((Vec*) &statusItemPosTbl[i + 2], &spC, &arg1[i]); } } @@ -1536,7 +1536,7 @@ static void ItemGetPos(s32 arg0, Vec *arg1) { } spC.z = 0.0f; for (i = 0; i < 3; i++) { - PSVECAdd((Vec*) statusItemPosTbl[i + 2], &spC, &arg1[i]); + VECAdd((Vec*) statusItemPosTbl[i + 2], &spC, &arg1[i]); } } @@ -1565,7 +1565,7 @@ void BoardItemStatusKill(s32 arg0) { } sp8.z = 0.0f; for (i = 0; i < 3; i++) { - PSVECAdd((Vec*) statusItemPosTbl[i + 2], &sp8, &sp68[i]); + VECAdd((Vec*) statusItemPosTbl[i + 2], &sp8, &sp68[i]); if (itemMdlId[arg0][i] != -1) { BoardModelRotGet(itemMdlId[arg0][i], &sp44[i]); BoardModelScaleGet(itemMdlId[arg0][i], &sp20[i]); @@ -1731,13 +1731,13 @@ static void UpdateItemPickup(omObjData *arg0) { Hu3D3Dto2D(&sp2C, 1, &sp2C); sp20.x = arg0->trans.x; sp20.y = arg0->trans.y; - PSVECSubtract(&sp2C, &sp20, &sp14); + VECSubtract(&sp2C, &sp20, &sp14); if (ABS(sp14.x) < 1.0f && ABS(sp14.y) < 1.0f) { HuSprAttrSet(temp_r31->unk04, 0, 4); temp_r31->unk00_bit3 = 6; } else { - PSVECScale(&sp14, &sp14, 0.1f); - PSVECAdd(&sp20, &sp14, &sp50); + VECScale(&sp14, &sp14, 0.1f); + VECAdd(&sp20, &sp14, &sp50); sp50.z = 3200.0f; arg0->trans.x = sp50.x; arg0->trans.y = sp50.y; @@ -1917,12 +1917,12 @@ static void UpdateItemWindow(omObjData *arg0) { var_r27 = 0; for (i = 0; i < temp_r29->unk02; i++) { if ((temp_r31->unk06[i] != -1) && (temp_r31->unk12[i] != -1)) { - PSVECSubtract(&temp_r31->unk74[i], &temp_r31->unk2C[i], &sp20); - if (PSVECMag(&sp20) <= 1.0f) { + VECSubtract(&temp_r31->unk74[i], &temp_r31->unk2C[i], &sp20); + if (VECMag(&sp20) <= 1.0f) { temp_r31->unk2C[i] = temp_r31->unk74[i]; } else { - PSVECScale(&sp20, &sp20, 0.3f); - PSVECAdd(&sp20, &temp_r31->unk2C[i], &temp_r31->unk2C[i]); + VECScale(&sp20, &sp20, 0.3f); + VECAdd(&sp20, &temp_r31->unk2C[i], &temp_r31->unk2C[i]); var_r27 = 1; } HuWinPosSet(temp_r31->unk12[i], temp_r31->unk2C[i].x, temp_r31->unk2C[i].y); diff --git a/src/game/board/view.c b/src/game/board/view.c index 6a0859c6..4e4de23a 100755 --- a/src/game/board/view.c +++ b/src/game/board/view.c @@ -249,7 +249,7 @@ static void ExecMapView(void) { spC.x = var_f29 * sin(temp_f28 * M_PI / 180.0); spC.z = var_f29 * cos(temp_f28 * M_PI / 180.0); } - PSVECAdd(&spC, &focusPos, &focusPos); + VECAdd(&spC, &focusPos, &focusPos); if (focusPos.x < temp_f26) { focusPos.x = temp_f26; } @@ -277,7 +277,7 @@ static void ExecStarView(void) { SetTargetView(); do { OSu16tof32(&focusTimer, &temp_f30); - PSVECSubtract(&focusPosTarget, &focusPos, &sp8); + VECSubtract(&focusPosTarget, &focusPos, &sp8); sp8.x /= temp_f30; sp8.y /= temp_f30; sp8.z /= temp_f30; @@ -287,7 +287,7 @@ static void ExecStarView(void) { } focusDestroyF = 0; while (focusTimer != 0) { - PSVECAdd(&sp8, &focusPos, &focusPos); + VECAdd(&sp8, &focusPos, &focusPos); BoardModelPosSetV(focusMdl, &focusPos); HuPrcVSleep(); focusTimer--; @@ -547,10 +547,10 @@ static void UpdateOverheadView(omObjData *arg0) { Hu3D3Dto2D(&sp14, 1, &sp14); sp14.x -= 288.0f; sp14.y -= 240.0f; - PSVECSubtract(&sp20, &sp14, &sp8); + VECSubtract(&sp20, &sp14, &sp8); sp8.z = 0.0f; temp_f30 = BoardDAngleCalc(180.0 * (atan2(sp8.y, sp8.x) / M_PI) - 90.0); - temp_f31 = PSVECMag(&sp8) / 32; + temp_f31 = VECMag(&sp8) / 32; if (i != 4) { var_r28 = i + 4; } else { diff --git a/src/game/chrman.c b/src/game/chrman.c index 9e953bea..e0599240 100755 --- a/src/game/chrman.c +++ b/src/game/chrman.c @@ -440,7 +440,7 @@ static void UpdateCharAnim(s16 character, s16 arg1, s16 arg2, u8 arg3, s16 arg4, sp1C.y = sp28[1][3]; sp1C.z = sp28[2][3]; if (arg4 != 0) { - PSVECSubtract(&sp1C, arg5, &sp10); + VECSubtract(&sp1C, arg5, &sp10); var_r20 = 0.2 * sqrtf(sp10.x * sp10.x + sp10.y * sp10.y + sp10.z * sp10.z); if (var_r20 > 5) { var_r20 = 5; @@ -878,7 +878,7 @@ static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix) var_r31->unk08.x *= temp_r30[i].unk18; var_r31->unk08.y *= temp_r30[i].unk1C; var_r31->unk08.z *= temp_r30[i].unk20; - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); var_r31->unk08.y += temp_r30[i].unk24; var_r28 = var_r31->unk40.r + temp_r30[i].unk34 * (temp_r30[i].unk08 - temp_r30[i].unk04); if (var_r28 < 0) { @@ -1580,8 +1580,8 @@ void fn_8004EC74(s16 character) spC.x = sp24[0][2]; spC.y = sp24[1][2]; spC.z = sp24[2][2]; - PSVECScale(&spC, &spC, 20.0f); - PSVECAdd(&sp18, &spC, &sp18); + VECScale(&spC, &spC, 20.0f); + VECAdd(&sp18, &spC, &sp18); fn_8004EDA4(temp_r31->camera, &sp18, &temp_r31->rot); } } @@ -1605,15 +1605,15 @@ void fn_8004EDA4(s16 arg0, Vec *arg1, Vec *arg2) sp14.x = sp20.x * sp20.y * (1.0 - cosd(temp_f31)) - sp20.z * sind(temp_f31); sp14.y = sp20.y * sp20.y + (1.0f - sp20.y * sp20.y) * cosd(temp_f31); sp14.z = sp20.y * sp20.z * (1.0 - cosd(temp_f31)) + sp20.x * sind(temp_f31); - PSVECNormalize(&sp14, &sp14); - PSVECScale(&sp14, &lbl_80131030.unk0C, 10.0f); + VECNormalize(&sp14, &sp14); + VECScale(&sp14, &lbl_80131030.unk0C, 10.0f); var_r28 = CreateEffect(effectMdl[4], arg0, arg1->x, arg1->y, arg1->z, 20.0f, &lbl_80131030); if (var_r28 == -1) { break; } - PSVECScale(&sp20, &sp8, -2.0 - 0.1 * frandmod(20)); - PSVECScale(&sp14, &sp14, 2.0f); - PSVECAdd(&sp14, &sp8, &lbl_80131068.unk0C); + VECScale(&sp20, &sp8, -2.0 - 0.1 * frandmod(20)); + VECScale(&sp14, &sp14, 2.0f); + VECAdd(&sp14, &sp8, &lbl_80131068.unk0C); var_r28 = CreateEffect(effectMdl[6], arg0, arg1->x, arg1->y, arg1->z, 20.0f, &lbl_80131068); if (var_r28 == -1) { break; @@ -1645,8 +1645,8 @@ void fn_8004F058(s16 character) spC.x = sp24[0][2]; spC.y = sp24[1][2]; spC.z = sp24[2][2]; - PSVECScale(&spC, &spC, 30.0f); - PSVECAdd(&sp18, &spC, &sp18); + VECScale(&spC, &spC, 30.0f); + VECAdd(&sp18, &spC, &sp18); fn_8004F13C(temp_r31->camera, &sp18, &temp_r31->rot); } @@ -1669,15 +1669,15 @@ void fn_8004F13C(s16 arg0, Vec *arg1, Vec *arg2) sp14.x = sp20.x * sp20.y * (1.0 - cosd(temp_f31)) - sp20.z * sind(temp_f31); sp14.y = sp20.y * sp20.y + (1.0f - sp20.y * sp20.y) * cosd(temp_f31); sp14.z = sp20.y * sp20.z * (1.0 - cosd(temp_f31)) + sp20.x * sind(temp_f31); - PSVECNormalize(&sp14, &sp14); - PSVECScale(&sp14, &lbl_801310BC.unk0C, 10.0f); + VECNormalize(&sp14, &sp14); + VECScale(&sp14, &lbl_801310BC.unk0C, 10.0f); var_r28 = CreateEffect(effectMdl[4], arg0, arg1->x, arg1->y, arg1->z, 20.0f, &lbl_801310BC); if (var_r28 == -1) { break; } - PSVECScale(&sp20, &sp8, -2.0 - 0.1 * frandmod(20)); - PSVECScale(&sp14, &sp14, 2.0f); - PSVECAdd(&sp14, &sp8, &lbl_801310F4.unk0C); + VECScale(&sp20, &sp8, -2.0 - 0.1 * frandmod(20)); + VECScale(&sp14, &sp14, 2.0f); + VECAdd(&sp14, &sp8, &lbl_801310F4.unk0C); var_r28 = CreateEffect(effectMdl[6], arg0, arg1->x, arg1->y, arg1->z, 20.0f, &lbl_801310F4); if (var_r28 == -1) { break; diff --git a/src/game/hsfanim.c b/src/game/hsfanim.c index 2293f23e..e8ffafbd 100755 --- a/src/game/hsfanim.c +++ b/src/game/hsfanim.c @@ -319,7 +319,7 @@ void Hu3DAnimExec(void) { mtxTransCat(var_r31->unk3C, var_r31->unk04.x, var_r31->unk04.y, var_r31->unk04.z); } else { if (var_r31->unk00 & 1) { - PSVECAdd(&var_r31->unk04, &var_r31->unk1C, &var_r31->unk04); + VECAdd(&var_r31->unk04, &var_r31->unk1C, &var_r31->unk04); if (var_r31->unk04.x > 1.0f) { var_r31->unk04.x -= 1.0f; } @@ -717,17 +717,17 @@ static void _Hu3DParticleAttrReset(ModelData *arg0, Mtx arg1) { var_r30->z = sp38[3].z * temp_f31 + var_r29->unk34.z; var_r30++; } else { - PSVECScale(&basePos[0], &sp98[0], var_r29->unk2C); - PSVECScale(&basePos[1], &sp98[1], var_r29->unk2C); - PSVECScale(&basePos[2], &sp98[2], var_r29->unk2C); - PSVECScale(&basePos[3], &sp98[3], var_r29->unk2C); + VECScale(&basePos[0], &sp98[0], var_r29->unk2C); + VECScale(&basePos[1], &sp98[1], var_r29->unk2C); + VECScale(&basePos[2], &sp98[2], var_r29->unk2C); + VECScale(&basePos[3], &sp98[3], var_r29->unk2C); PSMTXRotRad(spC8, 'Z', var_r29->unk30); PSMTXConcat(sp128, spC8, spF8); PSMTXMultVecArray(spF8, sp98, sp68, 4); - PSVECAdd(&sp68[0], &var_r29->unk34, var_r30++); - PSVECAdd(&sp68[1], &var_r29->unk34, var_r30++); - PSVECAdd(&sp68[2], &var_r29->unk34, var_r30++); - PSVECAdd(&sp68[3], &var_r29->unk34, var_r30++); + VECAdd(&sp68[0], &var_r29->unk34, var_r30++); + VECAdd(&sp68[1], &var_r29->unk34, var_r30++); + VECAdd(&sp68[2], &var_r29->unk34, var_r30++); + VECAdd(&sp68[3], &var_r29->unk34, var_r30++); } var_r19 = 1; } else { @@ -1117,10 +1117,10 @@ static void ParManFunc(void) { sp20.x = (s32) frandmod((u32) (temp_r30->unk08 * 2.0f)) - temp_r30->unk08; sp20.y = (s32) frandmod((u32) (temp_r30->unk08 * 2.0f)) - temp_r30->unk08; sp20.z = (s32) frandmod((u32) (temp_r30->unk08 * 2.0f)) - temp_r30->unk08; - PSVECNormalize(&sp20, &sp20); - PSVECScale(&sp20, &sp20, temp_r30->unk08); - PSVECAdd(&sp20, &var_r29->unk34, &var_r29->unk34); - PSVECNormalize(&temp_r31->unk18, &sp2C); + VECNormalize(&sp20, &sp20); + VECScale(&sp20, &sp20, temp_r30->unk08); + VECAdd(&sp20, &var_r29->unk34, &var_r29->unk34); + VECNormalize(&temp_r31->unk18, &sp2C); if (temp_r31->unk02 & 0x100) { var_f28 = var_f26 + (360.0f / temp_r30->unk04) * var_r26; var_f29 = temp_r30->unk0C; @@ -1145,9 +1145,9 @@ static void ParManFunc(void) { sp14.y = 1.0f; sp14.z = sp2C.z; } - PSVECCrossProduct(&sp14, &sp2C, &sp8); + VECCrossProduct(&sp14, &sp2C, &sp8); } - PSVECNormalize(&sp8, &sp8); + VECNormalize(&sp8, &sp8); temp_f31 = sind(var_f28); temp_f30 = cosd(var_f28); sp14.x = sp8.x * (sp2C.x * sp2C.x + temp_f30 * (1.0f - sp2C.x * sp2C.x)) @@ -1159,7 +1159,7 @@ static void ParManFunc(void) { sp14.z = sp8.x * (sp2C.x * sp2C.z * (1.0f - temp_f30) - sp2C.y * temp_f31) + sp8.y * (sp2C.y * sp2C.z * (1.0f - temp_f30) + sp2C.x * temp_f31) + sp8.z * (sp2C.z * sp2C.z + temp_f30 * (1.0f - sp2C.z * sp2C.z)); - PSVECCrossProduct(&sp14, &sp2C, &sp8); + VECCrossProduct(&sp14, &sp2C, &sp8); temp_f31 = sind(var_f29); temp_f30 = cosd(var_f29); sp14.x = sp2C.x * (sp8.x * sp8.x + temp_f30 * (1.0f - sp8.x * sp8.x)) @@ -1171,7 +1171,7 @@ static void ParManFunc(void) { sp14.z = sp2C.x * (sp8.x * sp8.z * (1.0f - temp_f30) - sp8.y * temp_f31) + sp2C.y * (sp8.y * sp8.z * (1.0f - temp_f30) + sp8.x * temp_f31) + sp2C.z * (sp8.z * sp8.z + temp_f30 * (1.0f - sp8.z * sp8.z)); - PSVECNormalize(&sp14, &sp14); + VECNormalize(&sp14, &sp14); temp_f31 = temp_r30->unk1C; if (temp_r31->unk02 & 2) { temp_f31 = temp_f31 * 0.9 + (s32) frandmod((u32) (temp_f31 * 0.1 * 1000.0)) / 1000.0f; @@ -1180,7 +1180,7 @@ static void ParManFunc(void) { } else if (temp_r31->unk02 & 8) { temp_f31 = (s32) frandmod((u32) (temp_f31 * 1000.0f)) / 1000.0f; } - PSVECScale(&sp14, &var_r29->unk08, temp_f31); + VECScale(&sp14, &var_r29->unk08, temp_f31); var_r29->unk14 = temp_r30->unk10; var_r29->unk20 = temp_r30->unk20; if (temp_r31->unk02 & 0x1000) { @@ -1245,17 +1245,17 @@ static void ParManHook(ModelData *model, ParticleData *particle, Mtx matrix) { var_r29->unk34.x += var_r29->unk08.x + var_r29->unk14.x; var_r29->unk34.y += var_r29->unk08.y + var_r29->unk14.y; var_r29->unk34.z += var_r29->unk08.z + var_r29->unk14.z; - PSVECScale(&var_r29->unk08, &var_r29->unk08, var_r29->unk20); - PSVECAdd(&temp_r26->unk10, &var_r29->unk14, &var_r29->unk14); + VECScale(&var_r29->unk08, &var_r29->unk08, var_r29->unk20); + VECAdd(&temp_r26->unk10, &var_r29->unk14, &var_r29->unk14); if (temp_r28->unk02 & 0x200) { - PSVECSubtract(&temp_r28->unk24, &var_r29->unk34, &sp1C); - PSVECNormalize(&sp1C, &sp1C); - PSVECScale(&sp1C, &sp1C, temp_r28->unk30); - PSVECAdd(&sp1C, &var_r29->unk14, &var_r29->unk14); - PSVECAdd(&var_r29->unk08, &var_r29->unk14, &sp1C); - PSVECSubtract(&temp_r28->unk24, &var_r29->unk34, &sp10); - temp_f29 = PSVECSquareMag(&sp1C); - if (PSVECSquareMag(&sp10) <= temp_f29) { + VECSubtract(&temp_r28->unk24, &var_r29->unk34, &sp1C); + VECNormalize(&sp1C, &sp1C); + VECScale(&sp1C, &sp1C, temp_r28->unk30); + VECAdd(&sp1C, &var_r29->unk14, &var_r29->unk14); + VECAdd(&var_r29->unk08, &var_r29->unk14, &sp1C); + VECSubtract(&temp_r28->unk24, &var_r29->unk34, &sp10); + temp_f29 = VECSquareMag(&sp1C); + if (VECSquareMag(&sp10) <= temp_f29) { var_r29->unk2C = 0.0f; continue; } diff --git a/src/game/hsfdraw.c b/src/game/hsfdraw.c index ab341258..ba1a9404 100755 --- a/src/game/hsfdraw.c +++ b/src/game/hsfdraw.c @@ -135,7 +135,7 @@ void Hu3DDraw(ModelData *arg0, Mtx arg1, Vec *arg2) { sp8.x = temp_r31->matrix[0][3]; sp8.y = temp_r31->matrix[1][3]; sp8.z = temp_r31->matrix[2][3]; - temp_f31 = PSVECMag(&sp8); + temp_f31 = VECMag(&sp8); temp_r31->z = temp_f31; temp_r31->model = arg0; DrawObjIdx++; @@ -308,7 +308,7 @@ static void objMesh(ModelData *arg0, HsfObject *arg1) { sp10.x = temp_r29->matrix[0][3]; sp10.y = temp_r29->matrix[1][3]; sp10.z = temp_r29->matrix[2][3]; - temp_f31 = PSVECMag(&sp10); + temp_f31 = VECMag(&sp10); if (temp_r25->flags & 0x10000) { temp_r29->z = -(900000.0f - temp_f31); } else { @@ -2152,7 +2152,7 @@ void Hu3DDrawPost(void) { if (temp_r22->unk_00 & 0x8000) { PSMTXMultVecSR(Hu3DCameraMtx, &sp30, &sp30); } - temp_f30 = PSVECDotProduct(&sp30, &sp54); + temp_f30 = VECDotProduct(&sp30, &sp54); temp_f30 *= 10000.0f; OSf32tos16(&temp_f30, &sp8); if (sp8 == -10000) { @@ -2169,8 +2169,8 @@ void Hu3DDrawPost(void) { if (sp8 == 10000) { PSMTXIdentity(spC0); } else { - PSVECCrossProduct(&sp3C, &sp54, &sp48); - temp_f28 = acosf(PSVECDotProduct(&sp54, &sp3C)); + VECCrossProduct(&sp3C, &sp54, &sp48); + temp_f28 = acosf(VECDotProduct(&sp54, &sp3C)); PSMTXRotAxisRad(spC0, &sp48, temp_f28); } PSMTXConcat(spC0, sp90, sp60); @@ -2291,7 +2291,7 @@ static void ObjDraw(HsfDrawObject *arg0) { if (temp_r24->unk_00 & 0x8000) { PSMTXMultVecSR(Hu3DCameraMtx, &sp20, &sp20); } - temp_f30 = PSVECDotProduct(&sp20, &sp44); + temp_f30 = VECDotProduct(&sp20, &sp44); temp_f30 *= 10000.0f; OSf32tos16(&temp_f30, &var_r21); if (var_r21 == -10000) { @@ -2308,8 +2308,8 @@ static void ObjDraw(HsfDrawObject *arg0) { if (var_r21 == 10000) { PSMTXIdentity(spB0); } else { - PSVECCrossProduct(&sp2C, &sp44, &sp38); - temp_f29 = acosf(PSVECDotProduct(&sp44, &sp2C)); + VECCrossProduct(&sp2C, &sp44, &sp38); + temp_f29 = acosf(VECDotProduct(&sp44, &sp2C)); PSMTXRotAxisRad(spB0, &sp38, temp_f29); } PSMTXConcat(spB0, sp80, sp50); @@ -2756,13 +2756,13 @@ static s32 MakeCalcNBT(HsfObject *arg0, HsfFace *arg1, s16 arg2, s16 arg3) { sp10.x = temp_r28[temp_r27][0]; sp10.y = temp_r28[temp_r27][1]; sp10.z = temp_r28[temp_r27][2]; - PSVECNormalize(&sp10, &sp10); + VECNormalize(&sp10, &sp10); } NBTB.x = temp_r31[temp_r25].x - temp_r31[temp_r24].x; NBTB.y = temp_r31[temp_r25].y - temp_r31[temp_r24].y; NBTB.z = temp_r31[temp_r25].z - temp_r31[temp_r24].z; - PSVECNormalize(&NBTB, &NBTB); - PSVECCrossProduct(&NBTB, &sp10, &NBTT); + VECNormalize(&NBTB, &NBTB); + VECCrossProduct(&NBTB, &sp10, &NBTT); GXPosition3s16(sp10.x * 256.0f, sp10.y * 256.0f, sp10.z * 256.0f); GXPosition3s16(NBTB.x * 256.0f, NBTB.y * 256.0f, NBTB.z * 256.0f); GXPosition3s16(NBTT.x * 256.0f, NBTT.y * 256.0f, NBTT.z * 256.0f); @@ -2787,7 +2787,7 @@ static s32 MakeNBT(HsfObject *arg0, HsfFace *arg1, s16 arg2, s16 arg3) { sp10.x = temp_r29[temp_r28][0]; sp10.y = temp_r29[temp_r28][1]; sp10.z = temp_r29[temp_r28][2]; - PSVECNormalize(&sp10, &sp10); + VECNormalize(&sp10, &sp10); } GXPosition3s16(sp10.x * 256.0f, sp10.y * 256.0f, sp10.z * 256.0f); GXPosition3s16(NBTB.x * 256.0f, NBTB.y * 256.0f, NBTB.z * 256.0f); diff --git a/src/game/hsfex.c b/src/game/hsfex.c index 7f72507c..a09129ec 100644 --- a/src/game/hsfex.c +++ b/src/game/hsfex.c @@ -105,8 +105,8 @@ void CamMotionEx(s16 arg0, s16 arg1, Vec *arg2, Vec *arg3, Vec *arg4, float arg5 var_r31->unk04 = 0.0f; var_f26 = 0.0f; for (var_f31 = var_f26; var_f31 < var_r29 - 1; var_f31 += 1.0f, var_r31++) { - PSVECSubtract(&var_r31[1].unk08, &var_r31[0].unk08, &sp3C); - var_r31[1].unk04 = PSVECMag(&sp3C); + VECSubtract(&var_r31[1].unk08, &var_r31[0].unk08, &sp3C); + var_r31[1].unk04 = VECMag(&sp3C); var_f26 += var_r31[1].unk04; } var_r31 = temp_r21; @@ -340,12 +340,12 @@ static void SetObjCamMotion(s16 arg0, HsfTrack *arg1, float arg2, HsfexStruct02 arg3->unk20.z = temp_r31->scale.z * (arg2 + temp_r31->pos.z); break; case 14: - PSVECSubtract(&arg3->unk08, &arg3->unk20, &spC); - PSVECNormalize(&spC, &spC); + VECSubtract(&arg3->unk08, &arg3->unk20, &spC); + VECNormalize(&spC, &spC); sp18.x = spC.x * spC.y * (1.0 - cos(M_PI * arg2 / 180.0)) - spC.z * sin(M_PI * arg2 / 180.0); sp18.y = spC.y * spC.y + (1.0f - spC.y * spC.y) * cos(M_PI * arg2 / 180.0); sp18.z = spC.y * spC.z * (1.0 - cos(M_PI * arg2 / 180.0)) + spC.x * sin(M_PI * arg2 / 180.0); - PSVECNormalize(&sp18, &arg3->unk14); + VECNormalize(&sp18, &arg3->unk14); break; } } @@ -541,30 +541,30 @@ void Hu3DMtxScaleGet(Mtx arg0, Vec *arg1) { sp2C.x = arg0[0][0]; sp2C.y = arg0[1][0]; sp2C.z = arg0[2][0]; - arg1->x = PSVECMag(&sp2C); - PSVECNormalize(&sp2C, &sp2C); + arg1->x = VECMag(&sp2C); + VECNormalize(&sp2C, &sp2C); sp20.x = arg0[0][1]; sp20.y = arg0[1][1]; sp20.z = arg0[2][1]; - sp38.x = PSVECDotProduct(&sp2C, &sp20); - PSVECScale(&sp2C, &sp8, sp38.x); - PSVECSubtract(&sp20, &sp8, &sp20); - arg1->y = PSVECMag(&sp20); - PSVECNormalize(&sp20, &sp20); + sp38.x = VECDotProduct(&sp2C, &sp20); + VECScale(&sp2C, &sp8, sp38.x); + VECSubtract(&sp20, &sp8, &sp20); + arg1->y = VECMag(&sp20); + VECNormalize(&sp20, &sp20); sp38.x /= arg1->y; sp14.x = arg0[0][2]; sp14.y = arg0[1][2]; sp14.z = arg0[2][2]; - sp38.z = PSVECDotProduct(&sp20, &sp14); - PSVECScale(&sp20, &sp8, sp38.z); - PSVECSubtract(&sp14, &sp8, &sp14); - sp38.y = PSVECDotProduct(&sp2C, &sp14); - PSVECScale(&sp2C, &sp8, sp38.y); - PSVECSubtract(&sp14, &sp8, &sp14); - arg1->z = PSVECMag(&sp14); - PSVECNormalize(&sp14, &sp14); - PSVECCrossProduct(&sp20, &sp14, &sp8); - if (PSVECDotProduct(&sp2C, &sp8) < 0.0) { + sp38.z = VECDotProduct(&sp20, &sp14); + VECScale(&sp20, &sp8, sp38.z); + VECSubtract(&sp14, &sp8, &sp14); + sp38.y = VECDotProduct(&sp2C, &sp14); + VECScale(&sp2C, &sp8, sp38.y); + VECSubtract(&sp14, &sp8, &sp14); + arg1->z = VECMag(&sp14); + VECNormalize(&sp14, &sp14); + VECCrossProduct(&sp20, &sp14, &sp8); + if (VECDotProduct(&sp2C, &sp8) < 0.0) { arg1->x *= -1.0; arg1->y *= -1.0; arg1->z *= -1.0; diff --git a/src/game/hsfman.c b/src/game/hsfman.c index f695dedf..1cbbe341 100644 --- a/src/game/hsfman.c +++ b/src/game/hsfman.c @@ -1276,12 +1276,12 @@ BOOL Hu3DModelCameraInfoSet(s16 arg0, u16 arg1) { temp_f31 = obj_copy->data.base.rot.x; cam->aspect_dupe = temp_f31; - PSVECSubtract((Point3d* ) &obj_copy->camera.target, (Point3d* ) &obj_copy->camera.pos, &sp8); + VECSubtract((Point3d* ) &obj_copy->camera.target, (Point3d* ) &obj_copy->camera.pos, &sp8); sp14.x = ((sp8.x * sp8.y * (1.0 - cosd(temp_f31))) - (sp8.z * sind(temp_f31))); sp14.y = ((sp8.y * sp8.y) + (1.0f - (sp8.y * sp8.y)) * cosd(temp_f31)); sp14.z = (((sp8.y * sp8.z) * (1.0 - cosd(temp_f31))) + (sp8.x * sind(temp_f31))); - PSVECNormalize(&sp14, &sp8); + VECNormalize(&sp14, &sp8); Hu3DCameraPosSet(arg1, obj_copy->camera.target.x, obj_copy->camera.target.y, obj_copy->camera.target.z, sp8.x, sp8.y, sp8.z, @@ -1386,7 +1386,7 @@ inline s16 Hu3DLightCreateV(LightData *light, Vec *arg0, Vec *arg1, GXColor *arg light->unk_34.x = light->unk_34.y = light->unk_34.z = 0.0f; light->unk_04 = 30.0f; light->unk_02 = 2; - PSVECNormalize(&light->unk_28, &light->unk_28); + VECNormalize(&light->unk_28, &light->unk_28); light->color = *arg2; } @@ -1584,7 +1584,7 @@ void Hu3DLLightColorSet(s16 dataIndex, s16 lightIndex, u8 r, u8 g, u8 b, u8 a) { inline void Hu3DLightPosSetV(LightData *light, Vec* pos, Vec* aim) { light->unk_1C = *pos; - PSVECNormalize(aim, &light->unk_28); + VECNormalize(aim, &light->unk_28); } void Hu3DGLightPosSetV(s16 index, Vec* pos, Vec* aim) { @@ -1609,7 +1609,7 @@ inline void Hu3DLightPosSet(LightData *light, f32 arg8, f32 arg9, f32 argA, f32 light->unk_28.x = argB; light->unk_28.y = argC; light->unk_28.z = argD; - PSVECNormalize(&light->unk_28, &light->unk_28); + VECNormalize(&light->unk_28, &light->unk_28); } void Hu3DGLightPosSet(s16 arg0, f32 arg8, f32 arg9, f32 argA, f32 argB, f32 argC, f32 argD) { @@ -1630,8 +1630,8 @@ void Hu3DLLightPosSet(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA, f32 argB inline void Hu3DLightPosAimSetV(LightData *light, Vec* pos, Vec* aim) { light->unk_1C = *pos; - PSVECSubtract(aim, pos, &light->unk_28); - PSVECNormalize(&light->unk_28, &light->unk_28); + VECSubtract(aim, pos, &light->unk_28); + VECNormalize(&light->unk_28, &light->unk_28); } void Hu3DGLightPosAimSetV(s16 index, Vec* pos, Vec* aim) { @@ -1816,7 +1816,7 @@ void lightSet(LightData* arg0, s16 arg1, Mtx *arg2, Mtx *arg3, f32 arg8) { GXInitLightAttn(&sp30, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f); GXInitLightSpot(&sp30, 20.0f, GX_SP_COS); GXInitLightAttnK(&sp30, 1.0f, 0.0f, 0.0f); - PSVECScale(&arg0->unk_28, &arg0->unk_1C, -1000000.0f); + VECScale(&arg0->unk_28, &arg0->unk_1C, -1000000.0f); break; case 2: GXInitLightAttn(&sp30, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); @@ -1885,7 +1885,7 @@ void Hu3DShadowCreate(f32 arg8, f32 arg9, f32 argA) { Hu3DShadowData.unk_2C.y = 1.0f; Hu3DShadowData.unk_2C.z = 0.0f; C_MTXLightPerspective(Hu3DShadowData.unk_68, arg8, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - PSVECNormalize(&Hu3DShadowData.unk_2C, &Hu3DShadowData.unk_2C); + VECNormalize(&Hu3DShadowData.unk_2C, &Hu3DShadowData.unk_2C); Hu3DShadowData.unk_00 = 0x80; Hu3DShadowF = 1; } @@ -2053,7 +2053,7 @@ s16 Hu3DProjectionCreate(void *arg0, f32 arg8, f32 arg9, f32 argA) { var_r31->unk_2C.y = 1.0f; var_r31->unk_2C.z = 0.0f; C_MTXLightPerspective(var_r31->unk_68, arg8, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - PSVECNormalize(&var_r31->unk_2C, &var_r31->unk_2C); + VECNormalize(&var_r31->unk_2C, &var_r31->unk_2C); var_r31->unk_00 = 0x80; Hu3DProjectionNum++; return var_r30; diff --git a/src/game/hsfmotion.c b/src/game/hsfmotion.c index 69ba3236..258e7103 100644 --- a/src/game/hsfmotion.c +++ b/src/game/hsfmotion.c @@ -1096,12 +1096,12 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) { case 14: for (i = 0, var_r30 = 1; i < 16; i++, var_r30 <<= 1) { if (var_r30 & temp_r28) { - PSVECSubtract(&Hu3DCamera[i].pos, &Hu3DCamera[i].target, &spC); - PSVECNormalize(&spC, &spC); + VECSubtract(&Hu3DCamera[i].pos, &Hu3DCamera[i].target, &spC); + VECNormalize(&spC, &spC); sp18.x = spC.x * spC.y * (1.0 - cosd(arg2)) - spC.z * sind(arg2); sp18.y = spC.y * spC.y + (1.0f - spC.y * spC.y) * cosd(arg2); sp18.z = spC.y * spC.z * (1.0 - cosd(arg2)) + spC.x * sind(arg2); - PSVECNormalize(&sp18, &Hu3DCamera[i].up); + VECNormalize(&sp18, &Hu3DCamera[i].up); Hu3DCamera[i].aspect_dupe = arg2; } } diff --git a/src/game/mapspace.c b/src/game/mapspace.c index 47c9293b..f04e7c16 100755 --- a/src/game/mapspace.c +++ b/src/game/mapspace.c @@ -762,39 +762,39 @@ static s32 PrecalcPntToTriangle(Vec *arg0, Vec *arg1, Vec *arg2, Vec* arg3, Vec temp_f30 = temp_f28 * (arg2->z * (arg3->y * sp14.x - arg3->x * sp14.y) + arg2->y * (arg3->x * sp14.z - arg3->z * sp14.x) + arg2->x * (arg3->z * sp14.y - arg3->y * sp14.z)); temp_f29 = temp_f28 * (arg1->z * (arg3->x * sp14.y - arg3->y * sp14.x) + arg1->y * (arg3->z * sp14.x - arg3->x * sp14.z) + arg1->x * (arg3->y * sp14.z - arg3->z * sp14.y)); if (temp_f30 > 0.0f && temp_f29 > 0.0f && temp_f30 + temp_f29 > 1.0f) { - PSVECSubtract(arg2, arg1, &sp14); - PSVECSubtract(arg4, arg1, &sp8); - temp_f31 = PSVECDotProduct(&sp14, &sp8) / PSVECDotProduct(&sp14, &sp14); + VECSubtract(arg2, arg1, &sp14); + VECSubtract(arg4, arg1, &sp8); + temp_f31 = VECDotProduct(&sp14, &sp8) / VECDotProduct(&sp14, &sp14); if (temp_f31 <= 0.0f) { arg5 = arg1; } else { if (temp_f31 >= 1.0f) { arg5 = arg2; } else { - PSVECScale(&sp14, &sp8, temp_f31); - PSVECAdd(arg1, &sp8, arg5); + VECScale(&sp14, &sp8, temp_f31); + VECAdd(arg1, &sp8, arg5); } } } else if (temp_f29 < 0.0f) { - temp_f31 = PSVECDotProduct(arg1, arg4) / PSVECDotProduct(arg1, arg1); + temp_f31 = VECDotProduct(arg1, arg4) / VECDotProduct(arg1, arg1); if (temp_f31 <= 0.0f) { HuSetVecF(arg5, 0.0, 0.0, 0.0); } else { if (temp_f31 >= 1.0f) { arg5 = arg1; } else { - PSVECScale(arg1, arg5, temp_f31); + VECScale(arg1, arg5, temp_f31); } } } else if (temp_f30 < 0.0f) { - temp_f31 = PSVECDotProduct(arg2, arg4) / PSVECDotProduct(arg2, arg2); + temp_f31 = VECDotProduct(arg2, arg4) / VECDotProduct(arg2, arg2); if (temp_f31 <= 0.0f) { HuSetVecF(arg5, 0.0, 0.0, 0.0); } else { if (temp_f31 >= 1.0f) { arg5 = arg2; } else { - PSVECScale(arg2, arg5, temp_f31); + VECScale(arg2, arg5, temp_f31); } } } else { @@ -815,13 +815,13 @@ BOOL Hitcheck_Triangle_with_Sphere(Vec *arg0, Vec *arg1, float arg2, Vec *arg3) sp48.x = arg0[0].x; sp48.y = arg0[0].y; sp48.z = arg0[0].z; - PSVECSubtract(&arg0[1], &arg0[0], &sp3C); - PSVECSubtract(&arg0[2], &arg0[0], &sp30); - PSVECCrossProduct(&sp3C, &sp30, &sp24); - PSVECSubtract(arg1, &arg0[0], &sp18); + VECSubtract(&arg0[1], &arg0[0], &sp3C); + VECSubtract(&arg0[2], &arg0[0], &sp30); + VECCrossProduct(&sp3C, &sp30, &sp24); + VECSubtract(arg1, &arg0[0], &sp18); PrecalcPntToTriangle(&sp48, &sp3C, &sp30, &sp24, &sp18, &spC); - PSVECAdd(&spC, &sp48, arg3); - var_f31 = PSVECDistance(arg3, arg1); + VECAdd(&spC, &sp48, arg3); + var_f31 = VECDistance(arg3, arg1); if (var_f31 > arg2) { return FALSE; } else { @@ -845,17 +845,17 @@ BOOL Hitcheck_Quadrangle_with_Sphere(Vec *arg0, Vec *arg1, float arg2, Vec *arg3 sp6C.x = arg0->x; sp6C.y = arg0->y; sp6C.z = arg0->z; - PSVECSubtract(&arg0[2], &arg0[0], &sp60); - PSVECSubtract(&arg0[3], &arg0[0], &sp54); - PSVECSubtract(&arg0[1], &arg0[0], &sp48); - PSVECCrossProduct(&sp60, &sp54, &sp3C); - PSVECSubtract(arg1, &arg0[0], &sp30); + VECSubtract(&arg0[2], &arg0[0], &sp60); + VECSubtract(&arg0[3], &arg0[0], &sp54); + VECSubtract(&arg0[1], &arg0[0], &sp48); + VECCrossProduct(&sp60, &sp54, &sp3C); + VECSubtract(arg1, &arg0[0], &sp30); PrecalcPntToTriangle(&sp6C, &sp60, &sp54, &sp3C, &sp30, &sp24); - PSVECAdd(&sp24, &sp6C, &sp18); + VECAdd(&sp24, &sp6C, &sp18); PrecalcPntToTriangle(&sp6C, &sp54, &sp48, &sp3C, &sp30, &sp24); - PSVECAdd(&sp24, &sp6C, &spC); - var_f31 = PSVECDistance(&sp18, arg1); - temp_f30 = PSVECDistance(&spC, arg1); + VECAdd(&sp24, &sp6C, &spC); + var_f31 = VECDistance(&sp18, arg1); + temp_f30 = VECDistance(&spC, arg1); if (temp_f30 > var_f31) { arg3->x = sp18.x; arg3->y = sp18.y; From 89607386585c54496c0bdef352a4a8ddc78dd224 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Sat, 10 Aug 2024 00:28:02 -0400 Subject: [PATCH 028/311] finish most of main.c --- src/REL/m415Dll/main.c | 82 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 81 insertions(+), 1 deletion(-) diff --git a/src/REL/m415Dll/main.c b/src/REL/m415Dll/main.c index 522cdd98..db4f6a8d 100644 --- a/src/REL/m415Dll/main.c +++ b/src/REL/m415Dll/main.c @@ -1782,4 +1782,84 @@ void fn_1_7674(f32* arg0, Vec* arg1, Vec* arg2, s32 arg3) { // ((f32(*)[3])arg1)[0][var_r29] = fn_1_7520(arg0, arg2, sp48, sp8, 0); // } -// } \ No newline at end of file +// } + +f32 fn_1_7C68(Vec* arg0) { + f32 temp_f29; + f32 temp_f30; + + temp_f30 = (arg0->z * arg0->z) + ((arg0->x * arg0->x) + (arg0->y * arg0->y)); + temp_f30 = sqrtf(temp_f30); + + if (temp_f30 != 0.0f) { + temp_f29 = 1.0f / temp_f30; + arg0->x *= temp_f29; + arg0->y *= temp_f29; + arg0->z *= temp_f29; + } else { + arg0->x = arg0->y = arg0->z = 0.0f; + } + return temp_f30; +} + +f32 fn_1_7E00(Vec arg0, Vec arg1, Vec* arg2, f32 arg8) { + if (arg8 <= 0.0f) { + arg2->x = arg0.x; + arg2->y = arg0.y; + arg2->z = arg0.z; + arg8 = 0.0f; + } else if (arg8 >= 1.0f) { + arg2->x = arg0.x + arg1.x; + arg2->y = arg0.y + arg1.y; + arg2->z = arg0.z + arg1.z; + arg8 = 1.0f; + } else { + arg2->x = arg0.x + (arg8 * arg1.x); + arg2->y = arg0.y + (arg8 * arg1.y); + arg2->z = arg0.z + (arg8 * arg1.z); + } + return arg8; +} + +f32 fn_1_7ED8(Vec arg0, Vec arg1, Vec arg2) { + f32 temp_f30; + f32 var_f31; + + var_f31 = (arg2.z * (arg1.z - arg0.z)) + ((arg2.x * (arg1.x - arg0.x)) + (arg2.y * (arg1.y - arg0.y))); + temp_f30 = -((arg2.z * arg2.z) + ((arg2.x * arg2.x) + (arg2.y * arg2.y))); + if (temp_f30 != 0.0f) { + var_f31 /= temp_f30; + } + return var_f31; +} + +f32 fn_1_7F94(Vec* arg0, Vec* arg1, Vec* arg2) { + Vec sp44; + f32 var_f30; + + if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + } + + var_f30 = fn_1_7ED8(*arg0, *arg1, *arg2); + fn_1_7E00(*arg1, *arg2, &sp44, var_f30); + return ((arg0->z - sp44.z) * (arg0->z - sp44.z)) + (((arg0->x - sp44.x) * (arg0->x - sp44.x)) + ((arg0->y - sp44.y) * (arg0->y - sp44.y))); +} + +f32 fn_1_82D0(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { + f32 var_f31; + f32 var_f30; + + if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + } else { + var_f30 = fn_1_7ED8(*arg0, *arg1, *arg2); + fn_1_7E00(*arg1, *arg2, arg3, var_f30); + } + + arg4->x = arg3->x - arg0->x; + arg4->y = arg3->y - arg0->y; + arg4->z = arg3->z - arg0->z; + + return fn_1_7C68(arg4); +} \ No newline at end of file From aeee5545ef2bca066ab9d6ee407fe4920faefe56 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Fri, 9 Aug 2024 23:33:53 -0500 Subject: [PATCH 029/311] Finish m415dll --- config/GMPE01_00/rels/m415Dll/symbols.txt | 3 +- configure.py | 2 +- src/REL/m415Dll/main.c | 38 ++++++++++++----------- 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/config/GMPE01_00/rels/m415Dll/symbols.txt b/config/GMPE01_00/rels/m415Dll/symbols.txt index d67685cf..47a384f7 100644 --- a/config/GMPE01_00/rels/m415Dll/symbols.txt +++ b/config/GMPE01_00/rels/m415Dll/symbols.txt @@ -215,7 +215,8 @@ lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x8 data:string jumptable_1_data_E0 = .data:0x000000E0; // type:object size:0x28 scope:local lbl_1_data_108 = .data:0x00000108; // type:object size:0x8 data:string lbl_1_data_110 = .data:0x00000110; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x30 +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x28 +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x200 lbl_1_bss_234 = .bss:0x00000234; // type:object size:0x100 lbl_1_bss_334 = .bss:0x00000334; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 367f53bb..35e04cd1 100644 --- a/configure.py +++ b/configure.py @@ -940,7 +940,7 @@ config.libs = [ "m415Dll", # Stamp Out! objects={ Object(Matching, "REL/executor.c"), - Object(NonMatching, "REL/m415Dll/main.c"), + Object(Matching, "REL/m415Dll/main.c"), Object(NonMatching, "REL/m415Dll/map.c"), }, ), diff --git a/src/REL/m415Dll/main.c b/src/REL/m415Dll/main.c index db4f6a8d..6863e2b5 100644 --- a/src/REL/m415Dll/main.c +++ b/src/REL/m415Dll/main.c @@ -34,7 +34,9 @@ s16 lbl_1_bss_338; u8* lbl_1_bss_334; s32 lbl_1_bss_234[4][4][4]; void* lbl_1_bss_34[0x80]; +s32 lbl_1_bss_2C[2]; unkStruct lbl_1_bss_4[4]; +static s32 pad_05_00000000_bss; // data Vec lbl_1_data_0 = { 0.0f, 3000.0f, 2000.0f }; @@ -1762,27 +1764,27 @@ void fn_1_7674(f32* arg0, Vec* arg1, Vec* arg2, s32 arg3) { } } -// https://decomp.me/scratch/QIpaI -// void fn_1_7A54(f32 arg0, Vec* arg1, f32* arg2, Vec* arg3, Vec* arg4, s32 arg5) { -// f32 sp48[0x10]; -// f32 sp8[0x10]; -// f32 temp_f29; -// f32 temp_f31; -// f32 var_f28; -// s32 temp_r31; -// s32 var_r29; -// s32 var_r30; + +void fn_1_7A54(f32 arg0, Vec* arg1, f32* arg2, Vec* arg3, Vec* arg4, s32 arg5) { + f32 sp48[0x10]; + f32 sp8[0x10]; + f32 temp_f29; + f32 temp_f31; + f32 var_f28; + s32 temp_r31; + s32 var_r29; + s32 var_r30; -// for (var_r29 = 0; var_r29 < 3; var_r29++) { -// for (var_r30 = 0; var_r30 < arg5; var_r30++) { -// sp48[var_r30] = ((f32(*)[3])arg3)[var_r30][var_r29]; -// sp8[var_r30] = ((f32(*)[3])arg4)[var_r30][var_r29]; -// } + for (var_r29 = 0; var_r29 < 3; var_r29++) { + for (var_r30 = 0; var_r30 < arg5; var_r30++) { + sp48[var_r30] = ((f32(*)[3])arg3)[var_r30][var_r29]; + sp8[var_r30] = ((f32(*)[3])arg4)[var_r30][var_r29]; + } -// ((f32(*)[3])arg1)[0][var_r29] = fn_1_7520(arg0, arg2, sp48, sp8, 0); -// } -// } + ((f32(*)[3])arg1)[0][var_r29] = fn_1_7520(arg0, arg2, sp48, sp8, 0); + } +} f32 fn_1_7C68(Vec* arg0) { f32 temp_f29; From 768ac3f144fe4a1afc34af5048b0280a8ba38c18 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Fri, 9 Aug 2024 23:24:10 -0700 Subject: [PATCH 030/311] Matched REL/m448Dll --- config/GMPE01_00/rels/m415Dll/symbols.txt | 178 +- config/GMPE01_00/rels/m448Dll/symbols.txt | 260 +-- configure.py | 4 +- include/game/hsfanim.h | 1 + src/REL/m448Dll/main.c | 1928 +++++++++++++++++++++ 5 files changed, 2150 insertions(+), 221 deletions(-) create mode 100755 src/REL/m448Dll/main.c diff --git a/config/GMPE01_00/rels/m415Dll/symbols.txt b/config/GMPE01_00/rels/m415Dll/symbols.txt index 47a384f7..3c3a6a5f 100644 --- a/config/GMPE01_00/rels/m415Dll/symbols.txt +++ b/config/GMPE01_00/rels/m415Dll/symbols.txt @@ -107,89 +107,89 @@ fn_1_C784 = .text:0x0000C784; // type:function size:0x98 fn_1_C81C = .text:0x0000C81C; // type:function size:0x40 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x10 data:byte -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x20 data:byte -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x20 data:byte -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x10 data:byte -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 data:byte -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x10 scope:local data:byte +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x20 scope:local data:byte +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x20 scope:local data:byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x10 scope:local data:byte +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 scope:local data:byte +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float @@ -204,16 +204,16 @@ lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC lbl_1_data_28 = .data:0x00000028; // type:object size:0xC lbl_1_data_34 = .data:0x00000034; // type:object size:0xC -lbl_1_data_40 = .data:0x00000040; // type:object size:0x23 data:string +lbl_1_data_40 = .data:0x00000040; // type:object size:0x23 scope:local data:string lbl_1_data_64 = .data:0x00000064; // type:object size:0x4 data:4byte -lbl_1_data_68 = .data:0x00000068; // type:object size:0x7 data:string -lbl_1_data_6F = .data:0x0000006F; // type:object size:0x6 data:string -lbl_1_data_75 = .data:0x00000075; // type:object size:0x9 data:string +lbl_1_data_68 = .data:0x00000068; // type:object size:0x7 scope:local data:string +lbl_1_data_6F = .data:0x0000006F; // type:object size:0x6 scope:local data:string +lbl_1_data_75 = .data:0x00000075; // type:object size:0x9 scope:local data:string lbl_1_data_80 = .data:0x00000080; // type:object size:0x28 lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x30 -lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x8 data:string +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x8 scope:local data:string jumptable_1_data_E0 = .data:0x000000E0; // type:object size:0x28 scope:local -lbl_1_data_108 = .data:0x00000108; // type:object size:0x8 data:string +lbl_1_data_108 = .data:0x00000108; // type:object size:0x8 scope:local data:string lbl_1_data_110 = .data:0x00000110; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x28 lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 diff --git a/config/GMPE01_00/rels/m448Dll/symbols.txt b/config/GMPE01_00/rels/m448Dll/symbols.txt index d04f9849..d53e0617 100644 --- a/config/GMPE01_00/rels/m448Dll/symbols.txt +++ b/config/GMPE01_00/rels/m448Dll/symbols.txt @@ -16,135 +16,135 @@ ObjectSetup = .text:0x0000965C; // type:function size:0x4A4 fn_1_9B00 = .text:0x00009B00; // type:function size:0x120 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x14 data:4byte -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x14 data:4byte -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x14 data:4byte -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x14 data:4byte -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x14 data:4byte -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x10 data:4byte -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x10 data:4byte -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0xC data:4byte -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x54 -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x10 data:4byte -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:4byte -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x50 -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x50 -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x50 -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x24 data:4byte -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x34 data:4byte -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x24 data:4byte -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x50 -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x50 -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x18 data:4byte -lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x18 data:4byte -lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x8 data:4byte -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x28 data:4byte -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x28 data:4byte -lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0xC data:4byte -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0xC data:4byte -lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x1 data:byte -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float -lbl_1_rodata_5EC = .rodata:0x000005EC; // type:object size:0x4 data:float -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float -lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 data:float -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x14 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x14 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x14 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x14 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x10 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x10 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x54 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x50 scope:local +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x50 scope:local +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x50 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x34 scope:local data:4byte +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x50 scope:local +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x50 scope:local +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x28 scope:local data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x28 scope:local data:4byte +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0xC scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0xC scope:local data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5EC = .rodata:0x000005EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x28 lbl_1_data_28 = .data:0x00000028; // type:object size:0x28 lbl_1_data_50 = .data:0x00000050; // type:object size:0x2C lbl_1_data_7C = .data:0x0000007C; // type:object size:0x2C lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xB data:byte -lbl_1_data_B3 = .data:0x000000B3; // type:object size:0xD +lbl_1_data_B3 = .data:0x000000B3; // type:object size:0xB data:byte lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x2C lbl_1_data_EC = .data:0x000000EC; // type:object size:0x2C data:4byte -lbl_1_data_118 = .data:0x00000118; // type:object size:0x58 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x2C lbl_1_data_170 = .data:0x00000170; // type:object size:0x8 data:4byte lbl_1_data_178 = .data:0x00000178; // type:object size:0x20 lbl_1_data_198 = .data:0x00000198; // type:object size:0x2 data:2byte @@ -154,10 +154,10 @@ lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x4 data:4byte lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x8 data:4byte lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x8 lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x8 -lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x20 +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x20 data:float lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x10 data:float -lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x9 data:string -lbl_1_data_1F5 = .data:0x000001F5; // type:object size:0x1B +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x9 scope:local data:string +lbl_1_data_1F5 = .data:0x000001F5; // type:object size:0x19 scope:local data:string jumptable_1_data_210 = .data:0x00000210; // type:object size:0x2C scope:local jumptable_1_data_23C = .data:0x0000023C; // type:object size:0x20 scope:local lbl_1_data_25C = .data:0x0000025C; // type:object size:0x4 data:4byte @@ -167,10 +167,10 @@ lbl_1_data_268 = .data:0x00000268; // type:object size:0x4 data:float lbl_1_data_26C = .data:0x0000026C; // type:object size:0x4 data:float jumptable_1_data_270 = .data:0x00000270; // type:object size:0x24 scope:local jumptable_1_data_294 = .data:0x00000294; // type:object size:0x20 scope:local -lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x19 data:string -lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x24 data:string +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x19 scope:local data:string +lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x24 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte @@ -178,9 +178,9 @@ lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:float lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x20 lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 35e04cd1..c0c914e7 100644 --- a/configure.py +++ b/configure.py @@ -1175,7 +1175,7 @@ config.libs = [ Object(NonMatching, "REL/m444dll/main.c"), Object(Matching, "REL/m444dll/pinball.c"), Object(Matching, "REL/m444dll/datalist.c"), - Object(NonMatching, "REL/m444dll/shadow.c"), + Object(Matching, "REL/m444dll/shadow.c"), }, ), Rel( @@ -1215,7 +1215,7 @@ config.libs = [ "m448Dll", # Goomba's Chip Flip objects={ Object(Matching, "REL/executor.c"), - Object(NonMatching, "REL/m448Dll/main.c"), + Object(Matching, "REL/m448Dll/main.c"), }, ), Rel( diff --git a/include/game/hsfanim.h b/include/game/hsfanim.h index 304bd51d..db94ac1e 100644 --- a/include/game/hsfanim.h +++ b/include/game/hsfanim.h @@ -123,6 +123,7 @@ void Hu3DParticleBlendModeSet(s16 arg0, u8 arg1); void Hu3DParticleHookSet(s16 arg0, ParticleHook arg1); void Hu3DParticleAttrSet(s16 arg0, u8 arg1); void Hu3DParticleAttrReset(s16 arg0, u8 arg1); +void Hu3DParticleCntSet(s16 arg0, s16 arg1); void Hu3DParticleAnimModeSet(s16 arg0, s16 arg1); void Hu3DParManInit(void); s16 Hu3DParManCreate(AnimData *arg0, s16 arg1, HsfanimStruct00 *arg2); diff --git a/src/REL/m448Dll/main.c b/src/REL/m448Dll/main.c new file mode 100755 index 00000000..08567764 --- /dev/null +++ b/src/REL/m448Dll/main.c @@ -0,0 +1,1928 @@ +#include "REL/executor.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "dolphin.h" +#include "ext_math.h" +#include "rel_sqrt_consts.h" + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ char unk14[4]; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ s32 unk28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s32 unk30; + /* 0x34 */ s32 unk34; + /* 0x38 */ s32 unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ float unk40; + /* 0x44 */ float unk44; + /* 0x48 */ float unk48; +} UnkM448Struct_00; // Size 0x4C + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ char unk14[4]; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; +} UnkM448Struct_01; // Size 0x24 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ float unk04[3]; +} UnkM448Struct_02; // Size 0x10 + +void fn_1_A0(void); +void fn_1_38C(void); +void fn_1_478(void); +void fn_1_4FC(ModelData* model, Mtx matrix); +void fn_1_1338(omObjData* arg0); +void fn_1_4310(omObjData* arg0); +void fn_1_6DAC(void); +void fn_1_7148(omObjData* arg0); +void fn_1_7DC4(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_81C0(omObjData* arg0); +void fn_1_8DD0(omObjData* arg0); +void fn_1_9508(omObjData* arg0); +void ObjectSetup(void); +void fn_1_9B00(omObjData* arg0); + +UnkM448Struct_01 lbl_1_bss_16C[20]; +UnkM448Struct_02 lbl_1_bss_9C[13]; +omObjData* lbl_1_bss_98; +omObjData* lbl_1_bss_94; +omObjData* lbl_1_bss_8C[2]; +omObjData* lbl_1_bss_88; +s32 lbl_1_bss_84; +s32 lbl_1_bss_80; +s32 lbl_1_bss_7C; +s32 lbl_1_bss_78; +s32 lbl_1_bss_74; +Process* lbl_1_bss_70; +s32 lbl_1_bss_6C; +s32 lbl_1_bss_68; +s32 lbl_1_bss_64; +s32 lbl_1_bss_60; +GXTexObj lbl_1_bss_40; +char lbl_1_bss_3C_pad[4]; +float lbl_1_bss_38; +s32 lbl_1_bss_34; +char lbl_1_bss_30_pad[4]; +void* lbl_1_bss_2C; +void* lbl_1_bss_28; +s32 lbl_1_bss_24; +s32 lbl_1_bss_20; +s32 lbl_1_bss_1C; +s32 lbl_1_bss_18; +s32 lbl_1_bss_14; +s32 lbl_1_bss_10; +char lbl_1_bss_8_pad[8]; +s32 lbl_1_bss_4; +s32 lbl_1_bss_0; + +s32 lbl_1_data_0[] = { + DATA_MAKE_NUM(DATADIR_MGCONST, 23), + DATA_MAKE_NUM(DATADIR_MGCONST, 22), + DATA_MAKE_NUM(DATADIR_MGCONST, 51), + DATA_MAKE_NUM(DATADIR_MGCONST, 51), + DATADIR_MGCONST, + DATA_MAKE_NUM(DATADIR_MGCONST, 23), + DATA_MAKE_NUM(DATADIR_MGCONST, 22), + DATA_MAKE_NUM(DATADIR_MGCONST, 51), + DATA_MAKE_NUM(DATADIR_MGCONST, 51), + DATADIR_MGCONST +}; + +s32 lbl_1_data_28[10] = { 0 }; + +s32 lbl_1_data_50[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 5), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 8), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 10), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 9), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 26), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) +}; + +s32 lbl_1_data_7C[] = { + DATA_MAKE_NUM(DATADIR_M448, 19), + DATA_MAKE_NUM(DATADIR_M448, 20), + DATA_MAKE_NUM(DATADIR_M448, 21), + DATA_MAKE_NUM(DATADIR_M448, 24), + DATA_MAKE_NUM(DATADIR_M448, 25), + DATA_MAKE_NUM(DATADIR_M448, 26), + DATA_MAKE_NUM(DATADIR_M448, 27), + DATA_MAKE_NUM(DATADIR_M448, 28), + DATA_MAKE_NUM(DATADIR_M448, 19), + DATA_MAKE_NUM(DATADIR_M448, 22), + DATA_MAKE_NUM(DATADIR_M448, 23) +}; + +u8 lbl_1_data_A8[11] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1 }; +u8 lbl_1_data_B3[11] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1 }; +s32 lbl_1_data_C0[11] = { 8, 8, 8, 0, 0, 0, 8, 8, 2, 8, 8 }; +s32 lbl_1_data_EC[11] = { 0, 0, 0, 3, 5, 0, 0, 0, 0, 0, 0 }; +s32 lbl_1_data_118[11] = { 8, 8, 8, 0, 2, 0, 0, 0, 0, 8, 8 }; +s32 lbl_1_data_144[11] = { 0 }; // unused +s32 lbl_1_data_170[2] = { 0 }; +s32 lbl_1_data_178[] = { 1, 1, 0, 0, 0, 1, 0, 0 }; +s16 lbl_1_data_198 = -1; +s16 lbl_1_data_19A = -1; +s16 lbl_1_data_19C = -1; +s32 lbl_1_data_1A0 = -1; +s32 lbl_1_data_1A4[2] = { 0 }; +s32 lbl_1_data_1AC[2] = { 0 }; +s32 lbl_1_data_1B4[2] = { 0 }; + +float lbl_1_data_1BC[][4] = { + { -90.0f, 2.0f, 525.0f, 180.0f }, + { 90.0f, 2.0f, 525.0f, 180.0f } +}; + +float lbl_1_data_1DC[] = { 0.0f, 0.0f, 0.0f, 1.0f }; + +void fn_1_A0(void) { + Center.x += 10.0 * (((HuPadBtn[0] & 2) != 0) - ((HuPadBtn[0] & 1) != 0)); + Center.z -= 10.0 * (((HuPadBtn[0] & 8) != 0) - ((HuPadBtn[0] & 4) != 0)); + Center.y += 30.0 * ((HuPadTrigL[0] - HuPadTrigR[0]) / 128.0); + CZoom += 25.0 * (((HuPadBtn[0] & 0x400) != 0) - ((HuPadBtn[0] & 0x800) != 0)); + CRot.y += HuPadSubStkX[0] / 16.0; + CRot.x += HuPadSubStkY[0] / -16.0; +} + +void fn_1_38C(void) { + lbl_1_bss_64 = GXGetTexBufferSize(640, 480, GX_TF_RGB565, GX_FALSE, 0); + lbl_1_bss_60 = GXGetTexBufferSize(160, 120, GX_TF_RGB565, GX_FALSE, 0); + lbl_1_bss_28 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_64, MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_28, 0, lbl_1_bss_64); + lbl_1_bss_2C = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_60, MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_2C, 0, lbl_1_bss_60); +} + +void fn_1_478(void) { + if (lbl_1_bss_28) { + HuMemDirectFree(lbl_1_bss_28); + } + lbl_1_bss_28 = NULL; + if (lbl_1_bss_2C) { + HuMemDirectFree(lbl_1_bss_2C); + } + lbl_1_bss_2C = NULL; +} + +void fn_1_4FC(ModelData* model, Mtx matrix) { + Mtx spC8; + Mtx sp98; + float temp_f31; + float temp_f29; + float temp_f30; + float temp_f28; + s32 sp10; + void* spC; + s32 var_r29; + s32 var_r20; + void* var_r28; + s32 i; + s32 j; + + sp10 = lbl_1_bss_64; + spC = lbl_1_bss_28; + if (!lbl_1_bss_28) { + return; + } + GXSetScissor(0, 0, 640, 480); + GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + C_MTXOrtho(sp98, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f); + GXSetProjection(sp98, GX_ORTHOGRAPHIC); + PSMTXIdentity(spC8); + GXLoadPosMtxImm(spC8, GX_PNMTX0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); + GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_MODULATE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_RASC, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_RASA); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_CLAMP, GX_AF_NONE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_ONE, GX_BL_ZERO, GX_LO_NOOP); + GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + for (i = 0; i < 0; i++) { + s32 sp84[5] = { 0, 1, 1, 0, 1 }; + float sp70[5] = { 1.0f, 2.0f, 2.5f, 0.0f, 0.0f }; + float sp5C[5] = { 1.0f, 4.0f, 5.0f, 1.0f, 5.0f }; + float sp48[5] = { 2.0f, 2.5f, 0.0f, 1.0f, 1.0f }; + float sp34[5] = { 0.5f, -0.5f, 0.0f, 0.0f, 0.0f }; + + var_r20 = (sp84[i] == 0) ? lbl_1_bss_64 : lbl_1_bss_60; + var_r28 = (sp84[i] == 0) ? lbl_1_bss_28 : lbl_1_bss_2C; + if (sp70[i] > 0.0f) { + GXSetTexCopySrc(0, 0, 640.0f / sp70[i], 480.0f / sp70[i]); + GXSetTexCopyDst( + (sp84[i] == 0 ? 640 : 320) / sp70[i], + (sp84[i] == 0 ? 480 : 240) / sp70[i], + GX_TF_RGB565, + sp84[i] == 0 ? GX_FALSE : GX_TRUE); + GXSetCopyClear(BGColor, 0xFFFFFF); + GXCopyTex(var_r28, GX_FALSE); + DCFlushRange(var_r28, var_r20); + GXPixModeSync(); + } + if (sp48[i] > 0.0f) { + GXInitTexObj(&lbl_1_bss_40, var_r28, 640.0f / sp5C[i], 480.0f / sp5C[i], GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXLoadTexObj(&lbl_1_bss_40, GX_TEXMAP0); + for (j = 0; j < (i != 4 ? 1 : 4); j++) { + float sp24[4] = { 16.5f, -8.5f, -16.5f, 8.5f }; + float sp14[4] = { -8.5f, -16.5f, 8.5f, 16.5f }; + + temp_f31 = 0.0015625 * (0.5 * sp24[j]); + temp_f29 = 0.0f; + temp_f30 = 0.0015625 * (0.6666666666666666 * sp14[j]); + temp_f28 = 0.0f; + var_r29 = 16 - j * 5; + var_r29 = (i != 4) ? 0xFF : 0xB1; + if (i != 4) { + temp_f31 = 0.0f; + temp_f30 = 0.0f; + } + if (i == 3) { + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_RASC, GX_CC_TEXC, GX_CC_ZERO); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ZERO, GX_LO_NOOP); + } else if (i == 4) { + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_SUBHALF, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetBlendMode(GX_BM_BLEND, GX_BL_ONE, GX_BL_ONE, GX_LO_NOOP); + } else { + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_RASC, GX_CC_TEXC, GX_CC_ZERO); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ZERO, GX_LO_NOOP); + } + temp_f31 = 0.0015625 * sp34[i]; + temp_f30 = 0.0015625 * sp34[i]; + temp_f31 = 0.0f; + temp_f30 = 0.0f; + temp_f29 += 0.5 * (1.0f / (640.0f / sp5C[i])); + temp_f28 += 0.5 * (1.0f / (640.0f / sp5C[i])); + temp_f31 = temp_f30 = temp_f29 = temp_f28 = 0.0f; + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32( + temp_f31 + 1.25 * (0.0f / sp48[i]), + temp_f30 + 1.25 * (0.0f / sp48[i]), + 0.0f); + GXColor4u8(0xFF, 0xFF, 0xFF, var_r29); + GXPosition2f32(temp_f29 + 0.0, temp_f28 + 0.0); + GXPosition3f32( + temp_f31 + 1.25 * (1.0f / sp48[i]), + temp_f30 + 1.25 * (0.0f / sp48[i]), + 0.0f); + GXColor4u8(0xFF, 0xFF, 0xFF, var_r29); + GXPosition2f32(temp_f29 + 1.25, temp_f28 + 0.0); + GXPosition3f32( + temp_f31 + 1.25 * (1.0f / sp48[i]), + temp_f30 + 1.25 * (1.0f / sp48[i]), + 0.0f); + GXColor4u8(0xFF, 0xFF, 0xFF, var_r29); + GXPosition2f32(temp_f29 + 1.25, temp_f28 + 1.25); + GXPosition3f32( + temp_f31 + 1.25 * (0.0f / sp48[i]), + temp_f30 + 1.25 * (1.0f / sp48[i]), + 0.0f); + GXColor4u8(0xFF, 0xFF, 0xFF, var_r29); + GXPosition2f32(temp_f29 + 0.0, temp_f28 + 1.25); + GXEnd(); + } + } + } +} + +const Vec lbl_1_rodata_100 = { 0.0f, 0.0f, 0.0f }; + +void fn_1_1338(omObjData* arg0) { + Mtx sp184; + Vec sp178; + s32 var_r24; + UnkM448Struct_00* temp_r31; + UnkM448Struct_00* sp11C; + UnkM448Struct_00* temp_r23; + UnkM448Struct_00* temp_r25; + UnkM448Struct_01* temp_r28; + UnkM448Struct_01* temp_r27; + float var_f29; + float var_f20; + float sp118; + float sp114; + float sp110; + float sp10C; + float sp108; + float sp104; + float sp100; + float spFC; + float spF8; + float spF4; + float spF0; + s32 var_r17; + s32 spEC; + float spE8; + s32 spE4; + float spE0; + float spDC; + float spD8; + float spD4; + float spD0; + float spCC; + float temp_f24; + float temp_f23; + float temp_f22; + float temp_f21; + float temp_f26; + float temp_f25; + float temp_f27; + float temp_f31; + float temp_f30; + float var_f28; + s16 var_r29; + s32 var_r21; + s32 var_r26; + s32 var_r20; + s32 var_r19; + s32 var_r18; + s32 var_r22; + + temp_r31 = arg0->data; + sp11C = lbl_1_bss_8C[1 - arg0->work[0]]->data; + var_f29 = 0.0f; + var_f20 = 0.0f; + sp118 = 0.0f; + sp114 = 0.0f; + sp110 = 0.0f; + var_r29 = -1; + if (temp_r31->unk20 != 3) { + temp_r31->unk40 = temp_r31->unk48 = 0.0f; + } + temp_r31->unk38++; + switch (temp_r31->unk34) { + case 0: + if (lbl_1_bss_80 == 1001 && lbl_1_bss_84 == 45 && temp_r31->unk08 != -1) { + var_r20 = 8; + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r20], lbl_1_data_EC[var_r20], 45.0f, + (lbl_1_data_A8[var_r20] != 0) ? 0 : 0x40000001); + temp_r31->unk20 = var_r20; + } + if (lbl_1_bss_80 == 1001 && lbl_1_bss_84 == 210 && temp_r31->unk08 != -1) { + var_r19 = 0; + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r19], lbl_1_data_EC[var_r19], 30.0f, + (lbl_1_data_A8[var_r19] != 0) ? 0 : 0x40000001); + temp_r31->unk20 = var_r19; + } + if (lbl_1_bss_80 == 1003 && temp_r31->unk08 != -1) { + arg0->rot.y = 0.9 * (arg0->rot.y - (temp_r31->unk00 == 0 ? 90 : -90)) + (temp_r31->unk00 == 0 ? 90 : -90); + } + if (lbl_1_bss_80 == 1005) { + temp_r31->unk34 = (lbl_1_bss_14 == temp_r31->unk00) ? 1 : 3; + } + break; + case 1: + if (temp_r31->unk38 == 1 && temp_r31->unk08 != -1) { + Hu3DMotionNoMotReset(arg0->model[0], "ske_head", + (lbl_1_data_178[temp_r31->unk08] != 0) ? 0x100 : 0x80); + } + sp118 = (lbl_1_bss_1C < 90) ? 0 : 0x48; + if (arg0->trans.z < 250.0f) { + temp_r31->unk34 = 2; + lbl_1_bss_0 = 600; + if (lbl_1_data_19A != -1) { + MGSeqKill(lbl_1_data_19A); + } + lbl_1_data_19A = MGSeqCreate(1, lbl_1_bss_0 / 60, -1, -1); + for (var_r17 = 0; var_r17 < 10; var_r17++) { + espDispOn(lbl_1_data_28[var_r17]); + } + if (temp_r31->unk0C == -1) { + var_r24 = 0; + temp_r31->unk18 = temp_r31->unk1C = -1; + for (var_r26 = 0; var_r26 < 20; var_r26++) { + var_r24 += (lbl_1_bss_16C[var_r26].unk18 != 9); + } + if (var_r24 != 0) { + var_r24 = rand8() % var_r24; + for (var_r26 = 0; var_r26 < 20; var_r26++) { + if (lbl_1_bss_16C[var_r26].unk18 != 9) { + if (var_r24 <= 0) { + temp_r31->unk18 = lbl_1_bss_16C[var_r26].unk00; + temp_r31->unk1C = lbl_1_bss_16C[var_r26].unk04; + break; + } + var_r24--; + } + } + } + } + } + break; + case 6: + var_f20 = 4.0f * (0.5f + lbl_1_data_1BC[temp_r31->unk00][0] - arg0->trans.x); + sp118 = 4.0f * -(0.5f + lbl_1_data_1BC[temp_r31->unk00][2] - arg0->trans.z); + if (lbl_1_bss_80 == 1005) { + var_f20 = 0.0f; + } + if (arg0->trans.z >= lbl_1_data_1BC[temp_r31->unk00][2]) { + temp_r31->unk34 = (lbl_1_bss_80 < 1005) ? 0 + : ((lbl_1_bss_68 == -1) ? 3 : 7); + temp_r31->unk38 = 0; + if (temp_r31->unk34 == 0) { + arg0->rot.y = 180.0f; + } + } + break; + case 2: + if (lbl_1_bss_14 != temp_r31->unk00) { + OSReport("m448 player turn error!\n"); + } + if (lbl_1_bss_0 > 0 && lbl_1_bss_18 < 18000) { + if (temp_r31->unk0C != -1) { + var_f20 = HuPadStkX[temp_r31->unk0C]; + sp118 = HuPadStkY[temp_r31->unk0C]; + sp114 = (HuPadBtn[temp_r31->unk0C] & 0x100) > 0; + sp110 = (HuPadBtnDown[temp_r31->unk0C] & (temp_r31->unk20 == 3 ? 320 : 256)) > 0; + sp178 = lbl_1_rodata_100; + sp178.x = var_f20; + sp178.z = -sp118; + PSMTXRotRad(sp184, 'y', MTXDegToRad(CRot.y)); + PSMTXMultVec(sp184, &sp178, &sp178); + var_f20 = sp178.x; + sp118 = -sp178.z; + } else { + if (temp_r31->unk20 == 3) { + if (temp_r31->unk44 < 0.0f && temp_r31->unk08 != -1) { + sp110 = sp114 = 1.0f; + } else { + sp114 = 1.0f; + } + } + if (temp_r31->unk18 != -1 && temp_r31->unk1C != -1) { + temp_f26 = 100.0 + 200.0 * (temp_r31->unk18 - 2.5) - arg0->trans.x; + temp_f25 = 100.0 + 200.0 * (temp_r31->unk1C - 2.0) - arg0->trans.z; + sp10C = sqrtf(temp_f26 * temp_f26 + temp_f25 * temp_f25); + if (temp_r31->unk08 != -1 && temp_r31->unk20 != 3) { + if (sp10C < 60.0f) { + sp110 = sp114 = 1.0f; + } else { + var_f20 = temp_f26; + sp118 = -temp_f25; + } + } else if (sp10C < 277.5) { + if (temp_r31->unk20 != 3) { + sp110 = sp114 = 1.0f; + } + var_f20 = (temp_f26 / 37.0) / 0.25; + sp118 = (-temp_f25 / 37.0) / 0.25; + } else { + var_f20 = temp_f26; + sp118 = -temp_f25; + } + } + } + } + arg0->trans.x = (arg0->trans.x < -450.0f) ? -450.0f + : (arg0->trans.x > 450.0f) ? 450.0f + : arg0->trans.x; + arg0->trans.z = (arg0->trans.z < -350.0f) ? -350.0f + : (arg0->trans.z > 350.0f) ? 350.0f + : arg0->trans.z; + if ((lbl_1_bss_0 <= 0 || lbl_1_bss_18 >= 18000) && temp_r31->unk20 == 0) { + temp_r31->unk34 = 5; + temp_r31->unk38 = 0; + lbl_1_bss_1C = 0; + if (lbl_1_bss_18 >= 18000) { + temp_r23 = lbl_1_bss_8C[1 - temp_r31->unk00]->data; + lbl_1_bss_68 = (temp_r31->unk08 == -1) ? temp_r31->unk00 + : (temp_r23->unk08 == -1) ? temp_r23->unk00 : 4; + temp_r23->unk34 = 7; + temp_r23->unk38 = 0; + } + } + break; + case 3: + spFC = (arg0->rot.y > 0.0f) ? -180 : 180; + sp104 = lbl_1_bss_8C[1 - temp_r31->unk00]->trans.x; + sp100 = lbl_1_bss_8C[1 - temp_r31->unk00]->trans.z; + sp108 = atan2d(sp104 - arg0->trans.x, sp100 - arg0->trans.z); + arg0->rot.y = 0.3 * (arg0->rot.y + spFC) - spFC; + if (temp_r31->unk08 != -1) { + Hu3DMotionForceSet(arg0->model[0], "ske_head", + (lbl_1_data_178[temp_r31->unk08] != 0) ? 0x100 : 0x80, + (lbl_1_data_178[temp_r31->unk08] != 0) ? 180.0f + -sp108 : 180.0f + sp108); + } + break; + case 5: + if (arg0->trans.z >= 400.0f) { + temp_r25 = lbl_1_bss_8C[1 - temp_r31->unk00]->data; + temp_r31->unk34 = 6; + temp_r31->unk38 = 0; + sp118 = -40.0f; + if (lbl_1_bss_68 == -1) { + temp_r25->unk34 = 1; + temp_r25->unk38 = 0; + if (temp_r25->unk08 != -1) { + Hu3DMotionForceSet(lbl_1_bss_8C[1 - temp_r31->unk00]->model[0], "ske_head", + (lbl_1_data_178[temp_r25->unk08] != 0) ? 0x100 : 0x80, 180.0f); + Hu3DMotionNoMotReset(lbl_1_bss_8C[1 - temp_r31->unk00]->model[0], "ske_head", + (lbl_1_data_178[temp_r25->unk08] != 0) ? 0x100 : 0x80); + } + } + lbl_1_bss_14 = 1 - lbl_1_bss_14; + } else { + spF8 = lbl_1_data_1BC[temp_r31->unk00][0] - arg0->trans.x; + spF4 = 400.0f - arg0->trans.z; + spF0 = atan2d(lbl_1_data_1BC[temp_r31->unk00][0] - arg0->trans.x, 400.0f - arg0->trans.z); + var_f20 = 10.0 * sind(spF0) / 0.25; + sp118 = 10.0 * -cosd(spF0) / 0.25; + if (fabs(var_f20) > fabs(4.0f * (lbl_1_data_1BC[temp_r31->unk00][0] - arg0->trans.x))) { + var_f20 = 4.0f * (lbl_1_data_1BC[temp_r31->unk00][0] - arg0->trans.x); + } + } + break; + case 7: + if (temp_r31->unk38 == 1 && temp_r31->unk08 != -1) { + Hu3DMotionForceSet(arg0->model[0], "ske_head", + (lbl_1_data_178[temp_r31->unk08] != 0) ? 0x100 : 0x80, 180.0f); + Hu3DMotionNoMotReset(arg0->model[0], "ske_head", + (lbl_1_data_178[temp_r31->unk08] != 0) ? 0x100 : 0x80); + } + arg0->rot.y *= 0.3; + if (lbl_1_bss_80 == 1007 && temp_r31->unk20 == 0) { + temp_r31->unk24 = (lbl_1_bss_68 == temp_r31->unk00) ? 9 : 10; + } + break; + } + switch (temp_r31->unk20) { + case 4: + case 7: + case 8: + if ((temp_r31->unk08 != -1) + ? CharModelMotionEndCheck(temp_r31->unk08) + : Hu3DMotionEndCheck(arg0->model[0])) + { + var_r29 = 0; + } + /* fallthrough */ + case 0: + case 1: + case 2: + temp_f31 = 0.25 * var_f20; + temp_f30 = 0.25 * -sp118; + var_f29 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30); + if (var_f29 >= 0.5f) { + if (var_f29 < 10.0f) { + temp_r31->unk40 = temp_f31; + temp_r31->unk48 += temp_f30; + } else { + temp_f31 = temp_f31 / var_f29; + temp_f30 = temp_f30 / var_f29; + var_f29 = 10.0f; + if (temp_r31->unk20 != 3) { + temp_r31->unk40 = temp_f31 * var_f29; + temp_r31->unk48 = temp_f30 * var_f29; + } else { + temp_r31->unk40 = 0.875 * temp_r31->unk40 + temp_f31 * var_f29 * 0.125; + temp_r31->unk48 = 0.875 * temp_r31->unk48 + temp_f30 * var_f29 * 0.125; + } + } + temp_r31->unk3C = var_f29; + arg0->rot.y = atan2d(temp_r31->unk40, temp_r31->unk48); + if (temp_r31->unk3C >= 8.0f) { + var_r29 = 2; + } else { + var_r29 = 1; + } + } else if (temp_r31->unk20 != 7 && temp_r31->unk20 != 4 && temp_r31->unk20 != 8) { + var_r29 = 0; + } + temp_r31->unk44 = 0.0f; + if (sp110) { + temp_r31->unk2C = 0; + temp_r31->unk28 = 1; + temp_r31->unk44 = 26.766666f; + var_r29 = 3; + } + break; + case 3: + if (temp_r31->unk08 != -1) { + temp_f31 = 0.25 * var_f20; + temp_f30 = 0.25 * -sp118; + var_f29 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30); + if (var_f29 >= 0.5f) { + if (var_f29 < 10.0f) { + temp_r31->unk40 = temp_f31; + temp_r31->unk48 = temp_f30; + } else { + temp_f31 = temp_f31 / var_f29; + temp_f30 = temp_f30 / var_f29; + var_f29 = 10.0f; + if (temp_r31->unk20 != 3) { + temp_r31->unk40 = temp_f31 * var_f29; + temp_r31->unk48 = temp_f30 * var_f29; + } else { + temp_r31->unk40 = 0.875 * temp_r31->unk40 + temp_f31 * var_f29 * 0.125; + temp_r31->unk48 = 0.875 * temp_r31->unk48 + temp_f30 * var_f29 * 0.125; + } + } + temp_r31->unk3C = var_f29; + arg0->rot.y = atan2d(temp_r31->unk40, temp_r31->unk48); + } else { + // Required to match. + 0.875 * temp_r31->unk40; + 0.875 * temp_r31->unk48; + } + } + if (temp_r31->unk28 != 0) { + if (sp114) { + if (++temp_r31->unk28 > 4) { + temp_r31->unk28 = 0; + } else { + temp_r31->unk44 += 4.866667f; + } + } else { + temp_r31->unk28 = 0; + } + } + temp_r31->unk44 += -2.4333334f; + if (temp_r31->unk2C != 0) { + temp_r31->unk44 = 0.0f; + temp_r31->unk2C = 1; + var_r29 = 4; + if (temp_r31->unk08 != -1) { + break; + } + temp_r31->unk44 = 9.733334f; + temp_r31->unk44 = 0.0f; + temp_r31->unk2C = 0; + var_r29 = 6; + if (temp_r31->unk34 != 2) { + break; + } + for (spEC = 0; spEC < 20; spEC++) { + temp_r28 = &lbl_1_bss_16C[spEC]; + temp_f24 = 100.0 + 200.0 * (temp_r28->unk00 - 2.5) - arg0->trans.x; + temp_f23 = 100.0 + 200.0 * (temp_r28->unk04 - 2.0) - arg0->trans.z; + spE8 = sqrtf(temp_f24 * temp_f24 + temp_f23 * temp_f23); + if (temp_r28->unk0C == -1 && spE8 <= 100.0) { + temp_r31->unk34 = 4; + temp_r31->unk38 = 0; + temp_r28->unk18 = 8; + temp_r28->unk1C = 0; + temp_r28->unk0C = temp_r31->unk00; + MGSeqParamSet(lbl_1_data_19A, 2, -1); + lbl_1_data_19A = -1; + lbl_1_bss_1C = 0; + } + } + } else if (sp110) { + temp_r31->unk44 = 0.0f; + temp_r31->unk30 = 0; + var_r29 = 5; + } + break; + case 5: + if ((Hu3DData[arg0->model[0]].unk_0C == -1 && temp_r31->unk08 != -1) + ? CharModelMotionEndCheck(temp_r31->unk08) + : Hu3DMotionEndCheck(arg0->model[0])) + { + temp_r31->unk44 += -2.4333334f; + } else { + temp_r31->unk44 = 0.0f; + } + if (temp_r31->unk44 < 0.0f && temp_r31->unk2C != 0) { + if (temp_r31->unk30 != 0) { + temp_r31->unk44 = 0.0f; + temp_r31->unk30 = 0; + var_r29 = 7; + } else { + temp_r31->unk44 = 9.733334f; + temp_r31->unk2C = 0; + var_r29 = 6; + if (temp_r31->unk0C != -1) { + omVibrate(temp_r31->unk04, 12, 6, 6); + } + if (temp_r31->unk34 == 2) { + for (spE4 = 0; spE4 < 20; spE4++) { + temp_r27 = &lbl_1_bss_16C[spE4]; + temp_f22 = 100.0 + 200.0 * (temp_r27->unk00 - 2.5) - arg0->trans.x; + temp_f21 = 100.0 + 200.0 * (temp_r27->unk04 - 2.0) - arg0->trans.z; + spE0 = sqrtf(temp_f22 * temp_f22 + temp_f21 * temp_f21); + if (temp_r27->unk0C == -1 && spE0 <= 100.0) { + temp_r31->unk34 = 4; + temp_r31->unk38 = 0; + temp_r27->unk18 = 8; + temp_r27->unk1C = 0; + temp_r27->unk0C = temp_r31->unk00; + MGSeqParamSet(lbl_1_data_19A, 2, -1); + lbl_1_data_19A = -1; + lbl_1_bss_1C = 0; + } + } + } + } + } + break; + case 6: + temp_r31->unk44 += -2.4333334f; + if (temp_r31->unk2C != 0) { + if ((temp_r31->unk08 != -1) + ? CharModelMotionEndCheck(temp_r31->unk08) + : Hu3DMotionEndCheck(arg0->model[0])) + { + var_r29 = 7; + } + } + break; + case 9: + case 10: + break; + } + arg0->trans.x += temp_r31->unk40; + if (temp_r31->unk2C == 0) { + arg0->trans.y += temp_r31->unk44; + } + arg0->trans.z += temp_r31->unk48; + for (var_r22 = 1; var_r22 < 2; var_r22++) { + temp_f27 = lbl_1_bss_8C[var_r22]->trans.x - arg0->trans.x; + var_f28 = lbl_1_bss_8C[var_r22]->trans.z - arg0->trans.z; + if (var_r22 != temp_r31->unk00) { + if (temp_f27 == 0.0f && var_f28 == 0.0f) { + var_f28 = -1.0f; + } + spDC = sqrtf(temp_f27 * temp_f27 + var_f28 * var_f28); + if (spDC < 100.0f) { + temp_f27 *= 100.0f / spDC; + var_f28 *= 100.0f / spDC; + arg0->trans.x = lbl_1_bss_8C[var_r22]->trans.x - temp_f27; + arg0->trans.z = lbl_1_bss_8C[var_r22]->trans.z - var_f28; + } + } + } + if (arg0->trans.y < 0.0f) { + arg0->trans.y = (temp_r31->unk34 == 7) ? 2.5f : 0.0f; + temp_r31->unk2C = 1; + } + if (temp_r31->unk24 >= 0) { + var_r29 = temp_r31->unk24; + } + if (var_r29 >= 0 && var_r29 != temp_r31->unk20) { + var_r18 = (temp_r31->unk08 == -1 && (var_r29 == 9 || var_r29 == 10)) ? 0 : var_r29; + if (temp_r31->unk08 != -1) { + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r18], lbl_1_data_EC[var_r18], lbl_1_data_C0[var_r18], + (lbl_1_data_A8[var_r18] != 0) ? 0 : 0x40000001); + } else { + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r29], lbl_1_data_EC[var_r29], lbl_1_data_118[var_r29], + (lbl_1_data_B3[var_r29] != 0) ? 0 : 0x40000001); + if (var_r29 == 3) { + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[5], 15.0f, 33.0f, 0x40000002); + } + } + temp_r31->unk20 = var_r29; + } + espBankSet(lbl_1_data_28[temp_r31->unk00 * 5 + 2], lbl_1_data_1A4[temp_r31->unk00] % 10); + espBankSet(lbl_1_data_28[temp_r31->unk00 * 5 + 3], (lbl_1_data_1A4[temp_r31->unk00] / 10) % 10); + lbl_1_data_1B4[temp_r31->unk00] += (lbl_1_data_1B4[temp_r31->unk00] < 256) ? 1 : 0; + if (lbl_1_data_1B4[temp_r31->unk00] <= 15) { + spD8 = 1.0 - lbl_1_data_1B4[temp_r31->unk00] / 15.0; + spD4 = 1.0f; + spD0 = 0.0f; + spCC = 0.0f; + for (var_r21 = 0; var_r21 < 2; var_r21++) { + if (lbl_1_data_1AC[temp_r31->unk00] > 0) { + float sp1B4[21] = { + 0.0f, 0.0f, 0.0f, 5.0f, 0.0f, 7.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 10.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 15.0f + }; + + spD8 = (lbl_1_data_1B4[temp_r31->unk00] < 10) + ? 1.0 - lbl_1_data_1B4[temp_r31->unk00] / 10.0 : 0.0; + spD4 = 1.0 + (spD8 * 0.5 + spD8 * spD8 * 0.5) * sp1B4[lbl_1_data_1AC[temp_r31->unk00]] / 10.0; + espScaleSet(lbl_1_data_28[(var_r21 == 0 ? 2 : 3) + temp_r31->unk00 * 5], spD4, spD4); + } else if (lbl_1_data_1AC[temp_r31->unk00] < 0) { + s32 sp168[4] = { 100, 485, 16, -4 }; + + spD0 = spD8 * lbl_1_data_1AC[temp_r31->unk00] * (rand8() / 255.0 - 0.5); + spCC = spD8 * lbl_1_data_1AC[temp_r31->unk00] * (rand8() / 255.0 - 0.5); + espPosSet(lbl_1_data_28[(var_r21 == 0 ? 2 : 3) + temp_r31->unk00 * 5], (&sp168[var_r21])[2] + sp168[temp_r31->unk00] + spD0, 72.0f + spCC); + } + } + } +} + +s32 lbl_1_data_25C = -1; +float lbl_1_data_260 = 2775.0f; +float lbl_1_data_264 = 314.0f; +float lbl_1_data_268 = -100.0f; +float lbl_1_data_26C = -38.75f; + +void fn_1_4310(omObjData* arg0) { + UnkM448Struct_00* spC8[2]; + float spB0; + float spAC; + float temp_f19; + float var_f18; + float spA8; + float spA4; + float spA0; + float sp9C; + float sp98; + float sp94; + float sp90; + float sp8C; + float sp88; + float sp84; + float sp80; + float sp7C; + float sp78; + float sp74; + float sp70; + float sp6C; + ModelData* temp_r23; + ModelData* temp_r22; + ModelData* temp_r26; + ModelData* temp_r29; + UnkM448Struct_01* temp_r31; + float temp_f21; + float temp_f20; + float temp_f26; + float temp_f30; + float temp_f29; + float var_f28; + float var_f27; + float var_f22; + float var_f23; + float var_f31; + s32 temp_r21; + s32 var_r25; + s32 var_r20; + s32 var_r19; + s32 var_r24; + s32 i; + + for (i = 0; i < 2; i++) { + spC8[i] = lbl_1_bss_8C[i]->data; + } + lbl_1_bss_4++; + lbl_1_bss_1C++; + if (lbl_1_bss_80 == 1005) { + lbl_1_bss_18++; + if (lbl_1_bss_18 == 16200) { + lbl_1_data_19C = MGSeqCreate(1, (18060 - lbl_1_bss_18) / 60, -1, -1); + MGSeqPosSet(lbl_1_data_19C, 288.0f, 400.0f); + } + if (lbl_1_data_19C != -1) { + MGSeqParamSet(lbl_1_data_19C, 1, (18060 - lbl_1_bss_18) / 60); + } + } + lbl_1_data_1DC[0] = lbl_1_data_1DC[1] = lbl_1_data_1DC[2] = 0.0f; + if (lbl_1_bss_80 == 1004 && lbl_1_bss_84 == 0) { + lbl_1_bss_84++; + lbl_1_bss_78 = 1; + lbl_1_bss_74 = 0; + for (i = 0; i < 20; i++) { + lbl_1_bss_16C[i].unk18 = 2; + lbl_1_bss_16C[i].unk1C = 0; + lbl_1_bss_16C[i].unk08 = rand8() % 16; + lbl_1_bss_16C[i].unk10 = -40.0f; + } + } + switch (lbl_1_bss_78) { + case 1: + lbl_1_bss_74++; + if (lbl_1_bss_74 == 1) { + spC8[0]->unk34 = spC8[1]->unk34 = 6; + spC8[0]->unk38 = spC8[1]->unk38 = 0; + } + var_r20 = 0; + for (i = 0; i < 20; i++) { + var_r20 += (lbl_1_bss_16C[i].unk10 == 0.0f); + } + if (var_r20 >= 20) { + lbl_1_bss_78 = 2; + lbl_1_bss_74 = 0; + } + break; + case 2: + lbl_1_bss_74++; + if (lbl_1_bss_74 >= 30) { + lbl_1_bss_78 = 0; + lbl_1_bss_74 = 0; + for (i = 0; i < 20; i++) { + lbl_1_bss_16C[i].unk18 = 3; + lbl_1_bss_16C[i].unk1C = 0; + } + if (lbl_1_bss_9C[8].unk00 < 3) { + lbl_1_bss_9C[8].unk04[lbl_1_bss_9C[8].unk00] = 0.0f; + lbl_1_bss_9C[8].unk00++; + } + } + break; + case 3: + lbl_1_bss_74++; + if (lbl_1_bss_74 == 1) { + s32 var_r27 = 0; + s32 sp170[20] = { 0 }; + + for (var_r27 = 0; var_r27 < 20; var_r27++) { + temp_r23 = &Hu3DData[arg0->model[var_r27 + 7]]; + temp_r22 = &Hu3DData[arg0->model[var_r27 + 27]]; + do { + do { + var_r25 = rand8(); + } while (var_r25 >= 240); + } while (sp170[var_r25 % 20] != 0); + sp170[var_r25 % 20] = 1; + lbl_1_bss_16C[var_r27].unk00 = (var_r25 % 20) % 5; + lbl_1_bss_16C[var_r27].unk04 = ((var_r25 % 20) / 5) % 4; + temp_r23->pos.x = temp_r22->pos.x = 100.0 + 200.0 * (lbl_1_bss_16C[var_r27].unk00 - 2.5); + temp_r23->pos.z = temp_r22->pos.z = 100.0 + 200.0 * (lbl_1_bss_16C[var_r27].unk04 - 2.0); + } + } + if (lbl_1_bss_74 >= 10) { + lbl_1_bss_78 = 4; + lbl_1_bss_74 = 0; + lbl_1_data_170[0] = 1; + } + break; + case 4: + if (lbl_1_bss_74 == 0 && lbl_1_bss_9C[0].unk00 < 3) { + lbl_1_bss_9C[0].unk04[lbl_1_bss_9C[0].unk00] = 0.0f; + lbl_1_bss_9C[0].unk00++; + } + lbl_1_bss_74++; + if (lbl_1_bss_74 % 4 == 1) { + spB0 = 10000.0f; + var_r24 = -1; + var_r19 = 0; + for (i = 0; i < 20; i++) { + var_r19 = (lbl_1_bss_16C[i].unk18 == 6 || !(lbl_1_bss_16C[i].unk00 == 0 && lbl_1_bss_16C[i].unk04 == 0)) ? 1 : var_r19; + if (lbl_1_bss_16C[i].unk18 != 6 && (lbl_1_bss_16C[i].unk00 != 0 || lbl_1_bss_16C[i].unk04 != 0)) { + temp_f20 = lbl_1_bss_16C[i].unk00 * lbl_1_bss_16C[i].unk00 + lbl_1_bss_16C[i].unk04 * lbl_1_bss_16C[i].unk04; + spAC = sqrtf(temp_f20) + (rand8() / 256.0) * 0.01; + if (spB0 > spAC) { + var_r24 = i; + spB0 = spAC; + } + } + } + if (var_r24 != -1) { + lbl_1_bss_16C[var_r24].unk18 = 6; + lbl_1_bss_16C[var_r24].unk1C = 0; + lbl_1_data_170[0]++; + lbl_1_bss_16C[var_r24].unk08 = lbl_1_data_170[0] - 1; + } + if (var_r19 == 0) { + lbl_1_bss_78 = 5; + lbl_1_bss_74 = 0; + } + } + break; + case 5: + lbl_1_bss_74++; + if (lbl_1_bss_74 == 5 && lbl_1_bss_9C[1].unk00 < 3) { + lbl_1_bss_9C[1].unk04[lbl_1_bss_9C[1].unk00] = 0.0f; + lbl_1_bss_9C[1].unk00++; + } + if (lbl_1_bss_74 == 5) { + s32 sp120[20] = { 0 }; + + for (i = 0; i < 20; i++) { + lbl_1_bss_16C[i].unk18 = 7; + lbl_1_bss_16C[i].unk1C = (19 - lbl_1_bss_16C[i].unk08) * 3; + do { + temp_r21 = rand8() % 20; + } while (sp120[temp_r21] != 0); + sp120[temp_r21] = 1; + lbl_1_bss_16C[i].unk00 = temp_r21 % 5; + lbl_1_bss_16C[i].unk04 = temp_r21 / 5; + } + } + if (lbl_1_bss_74 == 115 && lbl_1_data_1A0 != -1) { + HuAudSeqFadeOut(lbl_1_data_1A0, 1000); + lbl_1_data_1A0 = -1; + } + if (lbl_1_bss_74 == 145) { + lbl_1_bss_84++; + } + break; + } + for (i = 0; i < 20; i++) { + temp_r29 = &Hu3DData[arg0->model[i + 7]]; + temp_r26 = &Hu3DData[arg0->model[i + 27]]; + var_f18 = temp_r29->pos.x; + var_f31 = temp_r29->pos.y; + spA8 = temp_r29->pos.z; + var_f23 = temp_r29->rot.x; + spA4 = temp_r29->rot.y; + temp_r31 = &lbl_1_bss_16C[i]; + switch (lbl_1_bss_16C[i].unk18) { + case 2: + temp_r31->unk1C++; + temp_r31->unk08 -= (temp_r31->unk08 > 0); + var_f23 = 180.0f; + if (temp_r31->unk08 == 0) { + if (var_f31 > 0.0f && var_f31 + temp_r31->unk10 <= 0.0f && lbl_1_bss_9C[7].unk00 < 3) { + lbl_1_bss_9C[7].unk04[lbl_1_bss_9C[7].unk00] = 0.0f; + lbl_1_bss_9C[7].unk00++; + } + var_f31 += temp_r31->unk10; + } + if (var_f31 < 150.0 * sind(ABS(var_f23))) { + temp_r31->unk10 = 0.0f; + var_f31 = 150.0 * sind(ABS(var_f23)); + } + break; + case 3: + temp_r31->unk1C++; + var_f31 = 2.0 * (temp_r31->unk1C / 35.0) - 1.0; + var_f31 = 1.0f - var_f31 * var_f31; + var_f31 *= 200.0f; + var_f23 = 180.0 + 360.0 * (temp_r31->unk1C / 35.0) * 0.5; + if (temp_r31->unk1C >= 35) { + var_f31 = 0.0f; + temp_r31->unk18 = 4; + temp_r31->unk1C = 0; + } + break; + case 4: + temp_r31->unk1C++; + var_f23 = 0.0f; + if (lbl_1_bss_16C->unk18 == 4) { + temp_r31->unk1C = lbl_1_bss_16C->unk1C; + } + if (temp_r31->unk1C > 120) { + temp_r31->unk18++; + temp_r31->unk1C = 0; + } + break; + case 5: + if (i == 0 && temp_r31->unk1C == 0 && lbl_1_bss_9C[9].unk00 < 3) { + lbl_1_bss_9C[9].unk04[lbl_1_bss_9C[9].unk00] = 0.0f; + lbl_1_bss_9C[9].unk00++; + } + temp_r31->unk1C++; + var_f31 = 2.0 * (temp_r31->unk1C / 45.0) - 1.0; + var_f31 = 1.0f - var_f31 * var_f31; + var_f31 *= 200.0f; + var_f23 = 360.0 * (temp_r31->unk1C / 45.0) * 1.5; + if (temp_r31->unk1C >= 45) { + var_f31 = 0.0f; + lbl_1_bss_78 = 3; + lbl_1_bss_74 = 0; + temp_r31->unk18 = 0; + temp_r31->unk1C = 0; + } + break; + case 6: + temp_r31->unk1C++; + spA0 = 20.0f; + temp_f30 = 100.0 + 200.0 * (temp_r31->unk00 - 2.5); + temp_f29 = 100.0 + 200.0 * (temp_r31->unk04 - 2.0); + var_f28 = -400.0f; + var_f27 = -300.0f; + sp9C = sqrtf((temp_f30 - var_f28) * (temp_f30 - var_f28) + (temp_f29 - var_f27) * (temp_f29 - var_f27)); + temp_f19 = sp9C / spA0; + temp_f26 = temp_r31->unk1C * spA0; + temp_f26 = (temp_f26 >= sp9C) ? 1.0f : (temp_f26 / sp9C); + temp_f26 = 0.75 * temp_f26 + 0.25 * (1.0f - (1.0f - temp_f26) * (1.0f - temp_f26)); + sp98 = 1.0f - temp_f26; + var_f18 = temp_f30 * sp98 + var_f28 * temp_f26; + spA8 = temp_f29 * sp98 + var_f27 * temp_f26; + var_f31 = (temp_r31->unk08 * 10 < temp_r31->unk1C * spA0) + ? temp_r31->unk08 * 10 + : temp_r31->unk1C * spA0; + temp_f19 = 4.0f * (temp_r31->unk1C / temp_f19) - 2.0f; + temp_f19 = 4.0f - temp_f19 * temp_f19; + var_f31 = temp_f19 / 4.0 * temp_f26 * 0.5 * (temp_r31->unk08 * 10 + 100) + temp_f26 * temp_r31->unk08 * 10.0f; + if (temp_f26 >= 1.0f) { + temp_r31->unk18 = 0; + temp_r31->unk1C = 0; + temp_r31->unk00 = 0; + temp_r31->unk04 = 0; + var_f31 = temp_r31->unk08 * 10; + } + break; + case 7: + temp_r31->unk1C++; + if (temp_r31->unk1C == 60 && i != 0) { + lbl_1_data_170[0]--; + } + if (temp_r31->unk1C >= 60) { + sp94 = 100.0 + 200.0 * (temp_r31->unk00 - 2.5); + sp90 = 100.0 + 200.0 * (temp_r31->unk04 - 2.0); + sp8C = -400.0f; + sp88 = -300.0f; + temp_f21 = (temp_r31->unk1C - 60) / 50.0; + // Cast required to match. + temp_f21 = (double) (1.0f - (1.0f - temp_f21) * (1.0f - temp_f21)); + sp84 = 1.0f - temp_f21; + var_f18 = sp8C * sp84 + sp94 * temp_f21; + spA8 = sp88 * sp84 + sp90 * temp_f21; + var_f31 = temp_r31->unk08 * 10 * sp84; + if (temp_f21 >= 1.0f) { + temp_r31->unk18 = 0; + temp_r31->unk1C = 0; + temp_r31->unk08 = 0; + lbl_1_data_170[0] = 0; + } + } + break; + case 8: + if (temp_r31->unk1C == 0) { + if (lbl_1_bss_9C[(temp_r31->unk20 > 0) ? 3 : 4].unk00 < 3) { + lbl_1_bss_9C[(temp_r31->unk20 > 0) ? 3 : 4].unk04[lbl_1_bss_9C[(temp_r31->unk20 > 0) ? 3 : 4].unk00] = 0.0f; + lbl_1_bss_9C[(temp_r31->unk20 > 0) ? 3 : 4].unk00++; + } + } + temp_r31->unk1C++; + var_f31 = 2.0 * (temp_r31->unk1C / 75.0) - 1.0; + var_f31 = 1.0f - var_f31 * var_f31; + var_f31 *= 400.0f; + var_f23 = 360.0 * (temp_r31->unk1C / 75.0) * 3.0; + if (temp_r31->unk1C == 1) { + Hu3DParticleCntSet(lbl_1_bss_88->model[5], 0); + } + sp80 = 100.0 + 200.0 * (temp_r31->unk00 - 2.5); + sp7C = 100.0 + 200.0 * (temp_r31->unk04 - 2.0); + sp78 = (temp_r31->unk0C == 0) ? -640.0 : 640.0; + sp74 = (temp_r31->unk0C == 0) ? 0.0 : 0.0; + sp70 = temp_r31->unk1C / 75.0; + sp6C = 1.0f - sp70; + var_f31 += sp70 * (lbl_1_data_170[temp_r31->unk0C] * 10 + 33); + var_f18 = sp80 * sp6C + sp78 * sp70; + spA8 = sp7C * sp6C + sp74 * sp70; + lbl_1_data_1DC[0] = var_f18; + lbl_1_data_1DC[1] = var_f31; + lbl_1_data_1DC[2] = spA8; + if (temp_r31->unk1C >= 75) { + var_f31 = lbl_1_data_170[temp_r31->unk0C] * 10 + 33; + lbl_1_data_170[temp_r31->unk0C]++; + lbl_1_data_1A4[temp_r31->unk0C] += temp_r31->unk20; + lbl_1_data_1AC[temp_r31->unk0C] = temp_r31->unk20; + lbl_1_data_1B4[temp_r31->unk0C] = 0; + lbl_1_data_1A4[temp_r31->unk0C] = + (lbl_1_data_1A4[temp_r31->unk0C] < 0) ? 0 + : lbl_1_data_1A4[temp_r31->unk0C]; + spC8[temp_r31->unk0C]->unk34 = 5; + spC8[temp_r31->unk0C]->unk38 = 0; + temp_r31->unk18 = 9; + temp_r31->unk1C = 0; + if (lbl_1_bss_9C[(temp_r31->unk20) > 0 ? 5 : 6].unk00 < 3) { + lbl_1_bss_9C[(temp_r31->unk20) > 0 ? 5 : 6].unk04[lbl_1_bss_9C[(temp_r31->unk20) > 0 ? 5 : 6].unk00] = 0.0f; + lbl_1_bss_9C[(temp_r31->unk20) > 0 ? 5 : 6].unk00++; + } + if (lbl_1_data_1A4[temp_r31->unk0C] >= 50 || lbl_1_data_170[0] + lbl_1_data_170[1] >= 20) { + lbl_1_bss_68 = + (lbl_1_data_1A4[temp_r31->unk0C] >= 50) ? temp_r31->unk0C + : (lbl_1_data_1A4[0] > lbl_1_data_1A4[1]) ? 0 + : (lbl_1_data_1A4[0] < lbl_1_data_1A4[1]) ? 1: 4; + spC8[1 - temp_r31->unk0C]->unk34 = 7; + spC8[1 - temp_r31->unk0C]->unk38 = 0; + } + } + break; + } + temp_r29->pos.x = temp_r26->pos.x = var_f18; + temp_r29->pos.y = var_f31; + temp_r29->pos.z = temp_r26->pos.z = spA8; + temp_r29->rot.x = temp_r26->rot.x = var_f23; + temp_r29->rot.y = spA4; + if (temp_r29->pos.y <= 0.0f || temp_r31->unk18 == 9) { + Hu3DModelAttrSet(arg0->model[i + 7], 1); + Hu3DModelAttrReset(arg0->model[i + 27], 1); + temp_r26->pos.y = (temp_r31->unk18 != 9) ? 0.0f : temp_r29->pos.y; + } else { + Hu3DModelAttrReset(arg0->model[i + 7], 1); + Hu3DModelAttrSet(arg0->model[i + 27], 1); + } + } + { + s32 var_r18 = lbl_1_data_25C; + float spD0[][4] = { + { 2500.0f, 0.0f, -100.0f, -40.0f }, + { 2775.0f, 314.0f, -100.0f, -38.75f }, + { 875.0f, 116.0f, -100.0f, -15.0f }, + { 1625.0f, -416.0f, -340.0f, -30.25f }, + { 875.0f, 116.0f, -100.0f, -30.0f } + }; + + if (lbl_1_data_25C == -1) { + lbl_1_data_25C = 1; + lbl_1_bss_34 = 0; + lbl_1_bss_38 = 0.0f; + } + if (lbl_1_bss_80 == 1003 && lbl_1_bss_84 == 1) { + lbl_1_data_25C = 2; + lbl_1_bss_34 = 0; + lbl_1_bss_38 = 0.0f; + } + if (lbl_1_bss_80 == 1004 && lbl_1_data_25C != 0) { + lbl_1_data_25C = 0; + lbl_1_bss_34 = 1; + lbl_1_bss_38 = 0.0f; + } + if (lbl_1_bss_80 == 1007 && lbl_1_bss_84 == 1) { + lbl_1_data_25C = 3; + lbl_1_bss_34 = 0; + lbl_1_bss_38 = 0.0f; + } + if (var_r18 != lbl_1_data_25C && var_r18 != -1) { + lbl_1_data_260 = CZoom; + lbl_1_data_264 = Center.y; + lbl_1_data_268 = Center.z; + lbl_1_data_26C = CRot.x; + } + if (lbl_1_bss_38 < 1.0f) { + if (lbl_1_bss_34 == 0) { + lbl_1_bss_38 = 1.0 - 0.95 * (1.0f - lbl_1_bss_38); + var_f22 = lbl_1_bss_38; + } else { + lbl_1_bss_38 += 0.011111111111111112; + lbl_1_bss_38 = (lbl_1_bss_38 > 1.0f) ? 1.0f : lbl_1_bss_38; + var_f22 = 0.5 + -0.5 * cosd(180.0f * lbl_1_bss_38); + } + lbl_1_bss_38 = (lbl_1_bss_38 > 1.0f) ? 1.0f : lbl_1_bss_38; + CZoom = var_f22 * spD0[lbl_1_data_25C][0] + lbl_1_data_260 * (1.0f - var_f22); + Center.y = var_f22 * spD0[lbl_1_data_25C][1] + lbl_1_data_264 * (1.0f - var_f22); + Center.z = var_f22 * spD0[lbl_1_data_25C][2] + lbl_1_data_268 * (1.0f - var_f22); + CRot.x = var_f22 * spD0[lbl_1_data_25C][3] + lbl_1_data_26C * (1.0f - var_f22); + } + } +} + +const s32 lbl_1_rodata_408[] = { + MAKE_MESSID(43, 3), + MAKE_MESSID(43, 4), + MAKE_MESSID(43, 5), + MAKE_MESSID(43, 6), + MAKE_MESSID(43, 7), + MAKE_MESSID(43, 8), + MAKE_MESSID(43, 9), + MAKE_MESSID(43, 10), + 0 +}; + +void fn_1_6DAC(void) { + UnkM448Struct_00* sp8[2]; + s16 var_r29; + s16 temp_r31; + u32 temp_r26; + s32 i; + + var_r29 = 0; + for (i = 0; i < 2; i++) { + sp8[i] = lbl_1_bss_8C[i]->data; + } + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); + HuWinComKeyReset(); + temp_r31 = HuWinExCreateStyled(-10000.0f, 60.0f, 280, 120, -1, 1); + HuWinExAnimIn(temp_r31); + HuWinBGTPLvlSet(temp_r31, 0.8f); + HuWinMesSpeedSet(temp_r31, 1); + HuWinDisablePlayerSet(temp_r31, 0xF + & ((sp8[0]->unk0C != -1) ? ~(1 << sp8[0]->unk0C) : 0xF) + & ((sp8[1]->unk0C != -1) ? ~(1 << sp8[1]->unk0C) : 0xF)); + HuWinMesColSet(temp_r31, 0); + HuWinMesSet(temp_r31, MAKE_MESSID(43, 1)); + if (((sp8[0]->unk0C == -1) || (sp8[0]->unk08 == -1)) && ((sp8[1]->unk0C == -1) || (sp8[1]->unk08 == -1))) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); + } + HuWinMesWait(temp_r31); + if (sp8[0]->unk0C != -1 || sp8[1]->unk0C != -1) { + HuWinMesColSet(temp_r31, 0); + HuWinMesSet(temp_r31, MAKE_MESSID(43, 2)); + if (sp8[0]->unk0C == -1 && sp8[1]->unk0C == -1) { + HuPrcSleep(60); + var_r29 = 1; + } else { + var_r29 = HuWinChoiceGet(temp_r31, 0); + } + } else { + var_r29 = 1; + } + if (var_r29 == 0) { + i = 0; + while ((temp_r26 = lbl_1_rodata_408[i++]) != 0) { + HuWinMesColSet(temp_r31, 0); + HuWinMesSet(temp_r31, temp_r26); + if ((sp8[0]->unk0C == -1 || sp8[0]->unk08 == -1) && (sp8[1]->unk0C == -1 || sp8[1]->unk08 == -1)) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); + } + HuWinMesWait(temp_r31); + } + } else { + HuWinMesColSet(temp_r31, 0); + HuWinMesSet(temp_r31, MAKE_MESSID(43, 10)); + if ((sp8[0]->unk0C == -1 || sp8[0]->unk08 == -1) && (sp8[1]->unk0C == -1 || sp8[1]->unk08 == -1)) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); + } + HuWinMesWait(temp_r31); + } + HuWinExAnimOut(temp_r31); + HuWinExCleanup(temp_r31); + lbl_1_bss_10 = 0; + HuPrcEnd(); +} + +void fn_1_7148(omObjData* arg0) { + float temp_f31; + UnkM448Struct_00* spC[2]; + s32 sp8; + s32 temp_r28; + s32 i; + + for (i = 0; i < 13; i++) { + s32 sp14[] = { + 0x0000078E, + 0x0000078F, + 0x00000790, + 0x00000791, + 0x00000792, + 0x00000793, + 0x00000794, + 0x00000795, + 0x00000796, + 0x00000797, + 0x00000798, + 0x00000799, + 0x0000079A + }; + + if (lbl_1_bss_9C[i].unk00 > 3) { + lbl_1_bss_9C[i].unk00 = 3; + } + if (lbl_1_bss_9C[i].unk00 > 0) { + sp8 = HuAudFXPlay(sp14[i]); + lbl_1_bss_9C[i].unk00--; + } + } + for (i = 0; i < 2; i++) { + spC[i] = lbl_1_bss_8C[i]->data; + } + if (omSysExitReq != 0 && WipeStatGet() == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_9B00; + } + switch (lbl_1_bss_80) { + case 1000: + if (WipeStatGet() == 0) { + lbl_1_bss_80++; + lbl_1_bss_84 = 0; + } + break; + case 1001: + lbl_1_bss_84++; + if (lbl_1_bss_84 == 1) { + Hu3DModelAttrReset(lbl_1_bss_88->model[1], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_88->model[2], 0x40000002); + } + if (lbl_1_bss_84 > 0 && lbl_1_bss_84 <= 40 && lbl_1_bss_84 % 10 == 0 && lbl_1_bss_9C[12].unk00 < 3) { + lbl_1_bss_9C[12].unk04[lbl_1_bss_9C[12].unk00] = 0.0f; + lbl_1_bss_9C[12].unk00++; + } + if (lbl_1_bss_84 == 50 && lbl_1_bss_9C[10].unk00 < 3) { + lbl_1_bss_9C[10].unk04[lbl_1_bss_9C[10].unk00] = 0.0f; + lbl_1_bss_9C[10].unk00++; + } + if (lbl_1_bss_84 == 200 && lbl_1_bss_9C[11].unk00 < 3) { + lbl_1_bss_9C[11].unk04[lbl_1_bss_9C[11].unk00] = 0.0f; + lbl_1_bss_9C[11].unk00++; + } + if (lbl_1_bss_84 >= 210) { + temp_f31 = (lbl_1_bss_84 - 210) / 30.0; + Hu3DModelAmbSet(lbl_1_bss_8C[0]->model[0], temp_f31, temp_f31, temp_f31); + Hu3DModelAmbSet(lbl_1_bss_8C[1]->model[0], temp_f31, temp_f31, temp_f31); + } + if (lbl_1_bss_84 > 240) { + lbl_1_bss_80++; + lbl_1_bss_84 = 0; + Hu3DModelAttrSet(lbl_1_bss_88->model[1], 1); + Hu3DModelAttrSet(lbl_1_bss_88->model[2], 1); + Hu3DModelAttrReset(lbl_1_bss_88->model[0], 1); + Hu3DModelAmbSet(lbl_1_bss_8C[0]->model[0], 1.0f, 1.0f, 1.0f); + Hu3DModelAmbSet(lbl_1_bss_8C[1]->model[0], 1.0f, 1.0f, 1.0f); + } + break; + case 1002: + lbl_1_bss_84++; + if (lbl_1_bss_84 > 60) { + lbl_1_bss_80++; + if (spC[0]->unk08 != -1 && spC[1]->unk08 != -1) { + lbl_1_bss_80++; + } + lbl_1_bss_7C = 0; + lbl_1_bss_84 = 0; + if (lbl_1_data_1A0 == -1) { + lbl_1_data_1A0 = HuAudSeqPlay(0x3D); + } + } + break; + case 1003: + lbl_1_bss_84++; + if (lbl_1_bss_84 == 1) { + HuPrcChildCreate(fn_1_6DAC, 100, 0x2000, 0, HuPrcCurrentGet()); + lbl_1_bss_10 = 1; + } else if (lbl_1_bss_10 == 0) { + lbl_1_bss_80++; + lbl_1_bss_84 = 0; + } + break; + case 1004: + lbl_1_bss_84 += (lbl_1_bss_84 >= 2); + if (lbl_1_bss_84 == 5 && lbl_1_data_198 < 0) { + lbl_1_data_198 = MGSeqCreate(3, 0); + } + if (lbl_1_bss_84 >= 5 && lbl_1_data_1A0 == -1 && (MGSeqStatGet(lbl_1_data_198) & 0x10)) { + lbl_1_data_1A0 = HuAudSeqPlay(0x3E); + } + if (lbl_1_bss_84 >= 5 && MGSeqStatGet(lbl_1_data_198) == 0 && lbl_1_data_198 >= 0) { + lbl_1_bss_80++; + lbl_1_data_198 = -1; + lbl_1_bss_84 = 0; + } + break; + case 1005: + lbl_1_bss_84++; + if (lbl_1_data_19A != -1) { + MGSeqParamSet(lbl_1_data_19A, 1, ((lbl_1_bss_0 < 0 ? 0 : lbl_1_bss_0) + 59) / 60); + lbl_1_bss_0--; + if (lbl_1_bss_0 <= -30) { + MGSeqParamSet(lbl_1_data_19A, 2, -1); + lbl_1_data_19A = -1; + } + } + if (lbl_1_bss_68 != -1) { + lbl_1_bss_80 = 1006; + lbl_1_bss_84 = 0; + } + break; + case 1006: + lbl_1_bss_84++; + if (lbl_1_data_198 < 0 && lbl_1_bss_84 == 1) { + if (lbl_1_data_19A != -1) { + MGSeqParamSet(lbl_1_data_19A, 2, -1); + } + if (lbl_1_data_19C != -1) { + MGSeqParamSet(lbl_1_data_19C, 2, -1); + } + lbl_1_data_198 = MGSeqCreate(3, 1); + if (lbl_1_data_1A0 == -1) { + break; + } + HuAudSeqFadeOut(lbl_1_data_1A0, 100); + lbl_1_data_1A0 = -1; + } else if (MGSeqStatGet(lbl_1_data_198) == 0) { + lbl_1_bss_80++; + lbl_1_bss_84 = 0; + } + break; + case 1007: + lbl_1_bss_84++; + if (lbl_1_bss_84 == 1) { + if (lbl_1_bss_68 != 4) { + if (spC[lbl_1_bss_68]->unk08 != -1) { + HuAudSStreamPlay(1); + } else { + HuAudSStreamPlay(3); + } + temp_r28 = spC[lbl_1_bss_68]->unk04; + if (_CheckFlag(FLAG_ID_MAKE(1, 12)) == 0) { + GWPlayer[temp_r28].coin_win = 10; + } + } else if (lbl_1_bss_68 == 4) { + HuAudSStreamPlay(4); + } + } + if (210.0f < lbl_1_bss_84) { + lbl_1_data_198 = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_9B00; + } + break; + } +} + +void fn_1_7DC4(ModelData* model, ParticleData* particle, Mtx matrix) { + HsfanimStruct01* var_r31; + s16 i; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + var_r31->unk00_s16 = i * 2 + 100; + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + if (!var_r31->unk2C) { + break; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + if (var_r31->unk00_s16 == 100) { + var_r31->unk00_s16 = (lbl_1_data_1DC[0] == 0.0f && lbl_1_data_1DC[1] == 0.0f && lbl_1_data_1DC[2] == 0.0f) ? 0 : var_r31->unk00_s16; + var_r31->unk34.x = lbl_1_data_1DC[0] + 75.0 * (rand8() / 255.0); + var_r31->unk34.y = lbl_1_data_1DC[1] + 75.0 * (rand8() / 255.0); + var_r31->unk34.z = lbl_1_data_1DC[2] + 75.0 * (rand8() / 255.0); + var_r31->unk40.r = 0xFF; + var_r31->unk40.g = 0xF0; + var_r31->unk40.b = 0xA0; + var_r31->unk40.a = 0xFF; + var_r31->unk30 = 0.785f; + var_r31->unk2C = 40.0f; + } + if (var_r31->unk00_s16 <= 100) { + var_r31->unk34.y -= 3.0f; + var_r31->unk2C = ((var_r31->unk00_s16 > 50) ? (var_r31->unk00_s16 - 50) / 50.0 : 0.0) + * (rand8() * 80 / 255.0); + } + if (var_r31->unk00_s16 == 0) { + var_r31->unk2C = 0.0f; + } + var_r31->unk00_s16 -= (var_r31->unk00_s16 > 0); + } +} + +void fn_1_81C0(omObjData* arg0) { + UnkM448Struct_00* temp_r26; + UnkM448Struct_00* temp_r23; + s32 temp_r29; + s32 temp_r25; + s32 i, j, k; + s32 var_r27; + + memset(lbl_1_bss_16C, 0, sizeof(lbl_1_bss_16C)); + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M448, 0)); + Hu3DModelShadowMapSet(arg0->model[0]); + Hu3DModelAttrSet(arg0->model[0], 0x40000001); + Hu3DModelLayerSet(arg0->model[0], 0); + Hu3DMotionTimeSet(arg0->model[0], 20.0f); + Hu3DModelAttrSet(arg0->model[0], 1); + arg0->model[6] = Hu3DHookFuncCreate(fn_1_4FC); + Hu3DModelLayerSet(arg0->model[6], 6); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M448, 1)); + Hu3DModelShadowMapSet(arg0->model[1]); + Hu3DModelLayerSet(arg0->model[1], 0); + Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[1], 0x40000002); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M448, 2)); + Hu3DModelShadowMapSet(arg0->model[2]); + Hu3DModelLayerSet(arg0->model[2], 0); + Hu3DModelPosSet(arg0->model[2], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[2], 0x40000002); + { + s32 sp9C[] = { + DATA_MAKE_NUM(DATADIR_M448, 9), + DATA_MAKE_NUM(DATADIR_M448, 10), + DATA_MAKE_NUM(DATADIR_M448, 11), + DATA_MAKE_NUM(DATADIR_M448, 12), + DATA_MAKE_NUM(DATADIR_M448, 13), + DATA_MAKE_NUM(DATADIR_M448, 14), + DATA_MAKE_NUM(DATADIR_M448, 16), + DATA_MAKE_NUM(DATADIR_M448, 15), + DATA_MAKE_NUM(DATADIR_M448, 17) + }; + + for (i = 0; i < 2; i++) { + temp_r26 = lbl_1_bss_8C[i]->data; + arg0->model[i + 3] = Hu3DModelCreateFile(sp9C[(temp_r26->unk08 == -1) ? 8 : temp_r26->unk08]); + Hu3DModelShadowMapSet(arg0->model[i + 3]); + Hu3DModelLayerSet(arg0->model[i + 3], 0); + Hu3DModelRotSet(arg0->model[i + 3], 0.0f, (temp_r26->unk08 == -1) ? (1 - i) * 180 : i * 180, 0.0f); + } + } + { + s32 sp110[] = { + -10, -5, -5, 3, 3, 3, 3, 3, 5, 5, + 5, 5, 5, 10, 10, 10, 10, 10, 20, 20 + }; + s32 spC0[] = { + 0, 1, 1, 2, 2, 2, 2, 2, 3, 3, + 3, 3, 3, 4, 4, 4, 4, 4, 5, 5 + }; + s32 sp34[] = { + DATA_MAKE_NUM(DATADIR_M448, 3), + DATA_MAKE_NUM(DATADIR_M448, 4), + DATA_MAKE_NUM(DATADIR_M448, 5), + DATA_MAKE_NUM(DATADIR_M448, 6), + DATA_MAKE_NUM(DATADIR_M448, 7), + DATA_MAKE_NUM(DATADIR_M448, 8) + }; + s32 sp1C[] = { -1, -1, -1, -1, -1, -1 }; + + for (i = 0; i < 4; i++) { + for (j = 0; j < 5; j++) { + temp_r29 = j + i * 5; + lbl_1_bss_16C[temp_r29].unk00 = j; + lbl_1_bss_16C[temp_r29].unk04 = i; + lbl_1_bss_16C[temp_r29].unk08 = 0; + lbl_1_bss_16C[temp_r29].unk0C = -1; + lbl_1_bss_16C[temp_r29].unk18 = 1; + temp_r25 = 19 - temp_r29; + lbl_1_bss_16C[temp_r29].unk20 = sp110[temp_r25]; + sp110[temp_r25] = 0; + lbl_1_bss_16C[temp_r29].unk1C = 0; + for (k = 0; k < 2; k++) { + var_r27 = (k == 0) ? 7 : 27; + if (sp1C[spC0[temp_r25]] == -1) { + if (k == 1) { + sp1C[spC0[temp_r25]] = temp_r29; + } + arg0->model[var_r27 + temp_r29] = Hu3DModelCreateFile(sp34[spC0[temp_r25]]); + } else { + arg0->model[var_r27 + temp_r29] = Hu3DModelLink(arg0->model[var_r27 + sp1C[spC0[temp_r25]]]); + } + Hu3DModelPosSet(arg0->model[var_r27 + temp_r29], + 100.0 + 200.0 * (lbl_1_bss_16C[temp_r29].unk00 - 2.5), + (k == 0) ? 4000 : 0, + 100.0 + 200.0 * (lbl_1_bss_16C[temp_r29].unk04 - 2.0)); + if (k == 0) { + Hu3DModelShadowSet(arg0->model[var_r27 + temp_r29]); + } else { + Hu3DModelAttrSet(arg0->model[var_r27 + temp_r29], 1); + Hu3DModelShadowMapSet(arg0->model[var_r27 + temp_r29]); + } + } + } + } + } + arg0->model[5] = Hu3DParticleCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M448, 30), MEMORY_DEFAULT_NUM)), 70); + Hu3DModelPosSet(arg0->model[5], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[5], 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(arg0->model[5], 3); + Hu3DModelAttrReset(arg0->model[5], 1); + Hu3DParticleColSet(arg0->model[5], 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(arg0->model[5], 1.0f); + Hu3DParticleHookSet(arg0->model[5], fn_1_7DC4); + Hu3DParticleCntSet(arg0->model[5], 0); + Hu3DParticleBlendModeSet(arg0->model[5], 1); + for (i = 0; i < 10; i++) { + s32 sp14[] = { 100, 485 }; + s32 sp74[] = { 0, 0, 16, -4, -36, 0, 0, 16, -4, -36 }; + s32 sp4C[] = { 0, 0, 2, 2, -2, 0, 0, 2, 2, -2 }; + + if (lbl_1_data_0[i] == DATADIR_MGCONST) { + temp_r23 = lbl_1_bss_8C[i == 4 ? 0 : (i == 9 ? 1 : 0)]->data; + lbl_1_data_28[i] = espEntry((temp_r23->unk08 == -1) ? DATA_MAKE_NUM(DATADIR_M448, 29) : DATA_MAKE_NUM(lbl_1_data_0[i], temp_r23->unk08), 0, 0); + } else { + lbl_1_data_28[i] = espEntry(lbl_1_data_0[i], 0, 0); + } + espDrawNoSet(lbl_1_data_28[i], 0); + espAttrSet(lbl_1_data_28[i], 5); + espBankSet(lbl_1_data_28[i], 0); + espPriSet(lbl_1_data_28[i], 128 - i); + espPosSet(lbl_1_data_28[i], sp74[i] + sp14[i < 5 ? 0 : 1], sp4C[i] + 70); + if (((i >= 5) ? i - 5 : i) != 0) { + (void) 1; // Required to match. + } else { + espTPLvlSet(lbl_1_data_28[i], 0.5f); + espColorSet(lbl_1_data_28[i], 0, 0, 0); + } + } + arg0->func = fn_1_4310; +} + +void fn_1_8DD0(omObjData* arg0) { + s32 var_r28; + s32 var_r27; + UnkM448Struct_00* temp_r31; + UnkM448Struct_00* sp30; + s32 var_r26; + s32 i; + + var_r28 = -1; + var_r27 = -1; + temp_r31 = arg0->data; + sp30 = lbl_1_bss_8C[1 - arg0->work[0]]->data; + memset(temp_r31, 0, sizeof(*temp_r31)); + temp_r31->unk00 = arg0->work[0]; + if (GWPlayerCfg->character == 14 || GWPlayerCfg[1].character == 14 || GWPlayerCfg[2].character == 14 || GWPlayerCfg[3].character == 14) { + for (i = 0; i < 4; i++) { + if (GWPlayerCfg[i].character == 14) { + var_r28 = i; + } + } + var_r27 = (GWPlayerCfg[var_r28].group == 0) ? 1 : 0; + if (temp_r31->unk00 == 0) { + temp_r31->unk04 = var_r27; + var_r26 = var_r28; + } else { + temp_r31->unk04 = var_r28; + var_r26 = var_r27; + } + } else { + temp_r31->unk04 = (GWPlayerCfg[0].group == temp_r31->unk00) ? 0 + : GWPlayerCfg[1].group == temp_r31->unk00 ? 1 + : GWPlayerCfg[2].group == temp_r31->unk00 ? 2 + : GWPlayerCfg[3].group == temp_r31->unk00 ? 3 : 4; + var_r26 = (GWPlayerCfg[0].group == 1 - temp_r31->unk00) ? 0 + : (GWPlayerCfg[1].group == 1 - temp_r31->unk00) ? 1 + : (GWPlayerCfg[2].group == 1 - temp_r31->unk00) ? 2 + : (GWPlayerCfg[3].group == 1 - temp_r31->unk00) ? 3 : 4; + } + if (temp_r31->unk04 == 4) { + OSReport("m448:wrong player group\n"); + temp_r31->unk04 = temp_r31->unk00; + } + temp_r31->unk08 = (var_r28 != -1 && temp_r31->unk00 == 1) ? -1 + : GWPlayerCfg[temp_r31->unk04].character; + temp_r31->unk0C = (temp_r31->unk08 == -1 || GWPlayerCfg[temp_r31->unk04].iscom) ? -1 + : GWPlayerCfg[temp_r31->unk04].pad_idx; + temp_r31->unk10 = (temp_r31->unk0C != -1) ? 0 + : GWPlayerCfg[temp_r31->unk04].diff; + temp_r31->unk34 = 0; + if (temp_r31->unk08 != -1) { + arg0->model[0] = CharModelCreate(temp_r31->unk08, 2); + } else { + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M448, 18)); + } + Hu3DModelLayerSet(arg0->model[0], 0); + CharModelLayerSetAll2(1); + Hu3DModelShadowSet(arg0->model[0]); + Hu3DModelAmbSet(arg0->model[0], 0.0f, 0.0f, 0.0f); + for (i = 0; i < 11; i++) { + if (temp_r31->unk08 != -1) { + arg0->motion[i] = CharModelMotionCreate(temp_r31->unk08, lbl_1_data_50[i]); + } else { + arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_7C[i]); + } + } + temp_r31->unk20 = (temp_r31->unk08 != -1) ? 0 : 0; + temp_r31->unk24 = -1; + Hu3DMotionSet(arg0->model[0], arg0->motion[temp_r31->unk20]); + if (temp_r31->unk08 != -1) { + Hu3DMotionTimeSet(arg0->model[0], (temp_r31->unk00 == 0) ? 0 : 80); + Hu3DModelAttrSet(arg0->model[0], 0x40000001); + } else { + lbl_1_bss_20 = CharModelEffectNpcInit(arg0->model[0], arg0->motion[2], 1, 14); + lbl_1_bss_24 = CharModelEffectNpcInit(arg0->model[0], arg0->motion[6], 5, 14); + } + arg0->trans.x = lbl_1_data_1BC[temp_r31->unk00][0]; + arg0->trans.y = lbl_1_data_1BC[temp_r31->unk00][1]; + arg0->trans.z = 0.0f; + arg0->rot.y = (temp_r31->unk00 == 0) ? 90 : 270; + arg0->rot.y = (temp_r31->unk08 != -1) ? 0 + : (temp_r31->unk00 == 0) ? 90 : 270; + arg0->scale.x = arg0->scale.y = arg0->scale.z = 1.0f; + arg0->rot.x = arg0->rot.z = 0.0f; + arg0->func = fn_1_1338; +} + +void fn_1_9508(omObjData* arg0) { + lbl_1_bss_80 = 1000; + lbl_1_bss_84 = 0; + lbl_1_bss_78 = 0; + lbl_1_bss_74 = 0; + lbl_1_bss_64 = GXGetTexBufferSize(640, 480, GX_TF_RGB565, GX_FALSE, 0); + lbl_1_bss_60 = GXGetTexBufferSize(160, 120, GX_TF_RGB565, GX_FALSE, 0U); + lbl_1_bss_28 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_64, MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_28, 0, lbl_1_bss_64); + lbl_1_bss_2C = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_60, MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_2C, 0, lbl_1_bss_60); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_7148; +} + +void ObjectSetup(void) { + omObjData* var_r30; + s32 i; + + OSReport("******* M448 ObjectSetup *********\n"); + lbl_1_bss_70 = omInitObjMan(600, 0x2000); + omGameSysInit(lbl_1_bss_70); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 25000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + CZoom = 2500.0f; + Center.x = 0.0f; + Center.y = 0.0f; + Center.z = -100.0f; + CRot.x = -40.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + { + Vec sp3C = { 0.0f, 10000.0f, 0.0f }; + Vec sp30 = { 0.0f, -1.0f, 0.0f }; + GXColor sp8 = { 0xFF, 0xFF, 0xFF, 0xFF }; + + lbl_1_bss_6C = Hu3DGLightCreateV(&sp3C, &sp30, &sp8); + Hu3DGLightStaticSet(lbl_1_bss_6C, 1); + Hu3DGLightInfinitytSet(lbl_1_bss_6C); + lbl_1_bss_6C = Hu3DGLightCreateV(&sp3C, &sp30, &sp8); + Hu3DGLightStaticSet(lbl_1_bss_6C, 1); + Hu3DGLightInfinitytSet(lbl_1_bss_6C); + } + { + Vec sp24; + Vec sp18; + Vec spC; + + sp24.x = 0.0f; + sp24.y = 10000.0f; + sp24.z = 0.0f; + sp18.x = 0.0f; + sp18.y = 1.0f; + sp18.z = 0.0f; + spC.x = 0.0f; + spC.y = 0.0f; + spC.z = 0.5f; + Hu3DShadowCreate(8.0f, 9000.0f, 11500.0f); + Hu3DShadowTPLvlSet(0.75f); + Hu3DShadowPosSet(&sp24, &sp18, &spC); + } + lbl_1_data_198 = -1; + lbl_1_bss_68 = -1; + HuWinInit(1); + lbl_1_bss_88 = omAddObjEx(lbl_1_bss_70, 101, 47, 0, 1, fn_1_81C0); + for (i = 0; i < 2; i++) { + var_r30 = lbl_1_bss_8C[i] = omAddObjEx(lbl_1_bss_70, 100, 1, 11, 0, fn_1_8DD0); + var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM448Struct_00), MEMORY_DEFAULT_NUM); + var_r30->work[0] = i; + } + lbl_1_bss_94 = omAddObjEx(lbl_1_bss_70, 32730, 0, 0, -1, omOutView); + lbl_1_bss_98 = omAddObjEx(lbl_1_bss_70, 103, 0, 0, -1, fn_1_9508); +} + +void fn_1_9B00(omObjData* arg0) { + s32 i; + UnkM448Struct_00* temp_r30; + + if (WipeStatGet() != 0) { + return; + } + if (lbl_1_bss_28) { + HuMemDirectFree(lbl_1_bss_28); + } + lbl_1_bss_28 = NULL; + if (lbl_1_bss_2C) { + HuMemDirectFree(lbl_1_bss_2C); + } + lbl_1_bss_2C = NULL; + for (i = 0; i < 2; i++) { + temp_r30 = lbl_1_bss_8C[i]->data; + if (temp_r30->unk08 != -1) { + CharModelKill(temp_r30->unk08); + } + } + if (lbl_1_data_198 >= 0) { + MGSeqKill(lbl_1_data_198); + } + MGSeqKillAll(); + HuAudAllStop(); + omOvlReturnEx(1, 1); +} From 41ecf751ec1eb317c5207caa5edd16ff5a70409c Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sat, 10 Aug 2024 12:10:56 -0500 Subject: [PATCH 031/311] Match mgmodedll\battle.c --- config/GMPE01_00/rels/mgmodedll/symbols.txt | 4 +- configure.py | 2 +- include/REL/mgmodedll.h | 17 +- include/game/minigame_seq.h | 2 + src/REL/m448Dll/main.c | 6 +- src/REL/mgmodedll/battle.c | 920 ++++++++++++++++++++ src/REL/mgmodedll/minigame.c | 2 +- 7 files changed, 942 insertions(+), 11 deletions(-) create mode 100644 src/REL/mgmodedll/battle.c diff --git a/config/GMPE01_00/rels/mgmodedll/symbols.txt b/config/GMPE01_00/rels/mgmodedll/symbols.txt index b1285dd6..88495430 100644 --- a/config/GMPE01_00/rels/mgmodedll/symbols.txt +++ b/config/GMPE01_00/rels/mgmodedll/symbols.txt @@ -485,7 +485,7 @@ lbl_1_data_110 = .data:0x00000110; // type:object size:0xC lbl_1_data_120 = .data:0x00000120; // type:object size:0x28 lbl_1_data_148 = .data:0x00000148; // type:object size:0x2 data:2byte lbl_1_data_14A = .data:0x0000014A; // type:object size:0x8 -lbl_1_data_152 = .data:0x00000152; // type:object size:0x16 +lbl_1_data_152 = .data:0x00000152; // type:object size:0x10 data:4byte lbl_1_data_168 = .data:0x00000168; // type:object size:0x2 data:2byte lbl_1_data_16A = .data:0x0000016A; // type:object size:0x32 lbl_1_data_19C = .data:0x0000019C; // type:object size:0x10 @@ -555,7 +555,7 @@ lbl_1_bss_388 = .bss:0x00000388; // type:object size:0x2 data:2byte lbl_1_bss_38A = .bss:0x0000038A; // type:object size:0x2 data:2byte lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x8 lbl_1_bss_394 = .bss:0x00000394; // type:object size:0x2 data:2byte -lbl_1_bss_396 = .bss:0x00000396; // type:object size:0xA +lbl_1_bss_396 = .bss:0x00000396; // type:object size:0x8 lbl_1_bss_3A0 = .bss:0x000003A0; // type:object size:0x4 data:4byte lbl_1_bss_3A4 = .bss:0x000003A4; // type:object size:0x2 data:2byte lbl_1_bss_3A8 = .bss:0x000003A8; // type:object size:0x2 data:2byte diff --git a/configure.py b/configure.py index c0c914e7..5afb2ee6 100644 --- a/configure.py +++ b/configure.py @@ -1334,7 +1334,7 @@ config.libs = [ Object(Matching, "REL/mgmodedll/mgmode.c"), Object(Matching, "REL/mgmodedll/free_play.c"), Object(Matching, "REL/mgmodedll/record.c"), - Object(NonMatching, "REL/mgmodedll/battle.c"), + Object(Matching, "REL/mgmodedll/battle.c"), Object(NonMatching, "REL/mgmodedll/tictactoe.c"), Object(NonMatching, "REL/mgmodedll/main.c"), Object(Matching, "REL/mgmodedll/datalist.c"), diff --git a/include/REL/mgmodedll.h b/include/REL/mgmodedll.h index 8c0f4a18..0754f674 100644 --- a/include/REL/mgmodedll.h +++ b/include/REL/mgmodedll.h @@ -57,10 +57,21 @@ typedef struct struct_bss8 { extern s16 lbl_1_bss_2C80[13]; extern s16 lbl_1_bss_2C66[13]; extern s16 lbl_1_bss_2C2C[29]; +extern s16 lbl_1_bss_2C24[4]; +extern s16 lbl_1_bss_2C1C[4]; +extern s16 lbl_1_bss_2C14[4]; +extern s16 lbl_1_bss_2BC4[4][10]; + extern s16 lbl_1_bss_264C[10][70]; extern s16 lbl_1_bss_2638[10]; extern s16 lbl_1_bss_20C0[10][70]; extern s16 lbl_1_bss_20AC[10]; +extern s16 lbl_1_bss_20AA; + +extern Process *lbl_1_bss_2D8; + +extern s16 lbl_1_bss_2E4; + extern s16 lbl_1_bss_2A6; extern s16 lbl_1_bss_2A4; @@ -72,6 +83,7 @@ extern DataListModel lbl_1_data_490[]; extern DataListSprite lbl_1_data_768[]; s32 fn_1_6D28(void); +s32 fn_1_C0C8(s32 arg0); void fn_1_D8D0(void); s32 fn_1_E72C(void); s32 fn_1_13418(void); @@ -91,8 +103,9 @@ void fn_1_25E74(s32 arg0); void fn_1_267E8(DataListModel *model_list); void fn_1_26A78(DataListSprite *sprite_list); void fn_1_26C28(void); - -s32 fn_1_2783C(s16 evtno); +void fn_1_27080(void); +s16 fn_1_271B4(s16 mgNo, s16 x, s16 y); +void fn_1_27418(void); void fn_1_279FC(s32 coinSkipF); #endif \ No newline at end of file diff --git a/include/game/minigame_seq.h b/include/game/minigame_seq.h index d54895c9..8e443630 100644 --- a/include/game/minigame_seq.h +++ b/include/game/minigame_seq.h @@ -37,6 +37,8 @@ #define MGSeqWinCreate(player_1, player_2, player_3, player_4) MGSeqCreate(MG_SEQ_TYPE_WIN, MG_SEQ_WIN_TYPE_WIN, (player_1), (player_2), (player_3), (player_4)) #define MGSeqLoseCreate(player_1, player_2, player_3, player_4) MGSeqCreate(MG_SEQ_TYPE_WIN, MG_SEQ_WIN_TYPE_LOSE, (player_1), (player_2), (player_3), (player_4)) #define MGSeqChampionCreate(player_1, player_2, player_3, player_4) MGSeqCreate(MG_SEQ_TYPE_ALTWIN, MG_SEQ_WIN_TYPE_CHAMPION, (player_1), (player_2), (player_3), (player_4)) +#define MGSeqAltWinCreate(player_1, player_2, player_3, player_4) MGSeqCreate(MG_SEQ_TYPE_ALTWIN, MG_SEQ_WIN_TYPE_WIN, (player_1), (player_2), (player_3), (player_4)) + #define MGSeqRecordCreate(value) MGSeqCreate(MG_SEQ_TYPE_RECORD, (value)) diff --git a/src/REL/m448Dll/main.c b/src/REL/m448Dll/main.c index 08567764..e3f76e89 100755 --- a/src/REL/m448Dll/main.c +++ b/src/REL/m448Dll/main.c @@ -1380,7 +1380,6 @@ void fn_1_7148(omObjData* arg0) { float temp_f31; UnkM448Struct_00* spC[2]; s32 sp8; - s32 temp_r28; s32 i; for (i = 0; i < 13; i++) { @@ -1537,10 +1536,7 @@ void fn_1_7148(omObjData* arg0) { } else { HuAudSStreamPlay(3); } - temp_r28 = spC[lbl_1_bss_68]->unk04; - if (_CheckFlag(FLAG_ID_MAKE(1, 12)) == 0) { - GWPlayer[temp_r28].coin_win = 10; - } + GWPlayerCoinWinSet(spC[lbl_1_bss_68]->unk04, 10); } else if (lbl_1_bss_68 == 4) { HuAudSStreamPlay(4); } diff --git a/src/REL/mgmodedll/battle.c b/src/REL/mgmodedll/battle.c new file mode 100644 index 00000000..07ed0efd --- /dev/null +++ b/src/REL/mgmodedll/battle.c @@ -0,0 +1,920 @@ +#include "REL/mgmodedll.h" +#include "game/gamework.h" + +#include "game/audio.h" +#include "game/esprite.h" +#include "game/gamework_data.h" +#include "game/saveload.h" +#include "game/wipe.h" +#include "game/chrman.h" +#include "game/minigame_seq.h" + +#include "ext_math.h" + +s16 lbl_1_bss_3A4; +s32 lbl_1_bss_3A0; +s16 lbl_1_bss_396[4]; +s16 lbl_1_bss_394; +s16 lbl_1_bss_38C[4]; +s16 lbl_1_bss_38A; +s16 lbl_1_bss_388; + +s16 lbl_1_data_148 = -1; + +void fn_1_FF5C(void); +s32 fn_1_1129C(void); +s32 fn_1_11E68(void); +void fn_1_1222C(void); +void fn_1_2783C(s16 evtno); + +s32 fn_1_E72C(void) +{ + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s32 temp_r26; + ModelData *temp_r25; + float temp_f31; + float temp_f30; + Vec sp20; + Vec sp14; + Vec sp8; + temp_r29 = 0; + fn_1_279FC(0); + fn_1_FF5C(); + if(lbl_1_bss_4 == 3) { + mgTypeCurr = mgInfoTbl[GWSystem.mg_next].type; + if(mgTypeCurr >= 4) { + mgTypeCurr = 3; + } + HuSprGrpPosSet(lbl_1_bss_388, 288, 240); + HuSprGrpDrawNoSet(lbl_1_bss_388, 64); + Hu3DModelPosSet(lbl_1_bss_2C80[5], -350, 0, 680); + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, 20, 0); + fn_1_27418(); + for(temp_r31=0; temp_r31<4; temp_r31++) { + Hu3DModelPosSet(lbl_1_bss_2C14[temp_r31], (temp_r31*130)-195, 0, 750); + Hu3DMotionSet(lbl_1_bss_2C14[temp_r31], lbl_1_bss_2BC4[temp_r31][0]); + Hu3DModelAttrSet(lbl_1_bss_2C14[temp_r31], 0x40000001); + } + for(temp_r31=0; temp_r31<4; temp_r31++) { + HuSprAttrSet(lbl_1_bss_388, (temp_r31*2)+2, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(lbl_1_bss_388, (temp_r31*2)+3, HUSPR_ATTR_DISPOFF); + } + HuSprAttrReset(lbl_1_bss_388, mgTypeCurr+19, HUSPR_ATTR_DISPOFF); + HuSprPosSet(lbl_1_bss_388, mgTypeCurr+19, 0, -155); + HuSprPosSet(lbl_1_bss_388, 1, 0, -180); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + if(fn_1_1129C() && !fn_1_11E68()) { + return 1; + } + } else { + CharModelDataClose(-1); + if(HuDataReadChk(DATADIR_INSTPIC) == -1) { + temp_r26 = HuDataDirReadAsync(DATADIR_INSTPIC); + } else { + temp_r26 = -1; + } + for(temp_r31=0; temp_r31<=60; temp_r31++) { + if(temp_r31 <= 50) { + temp_f31 = temp_r31/50.0; + HuSprGrpPosSet(lbl_1_bss_388, 288, -400.0+(656.0*sind(temp_f31*90.0f))); + } else { + temp_f31 = (temp_r31-50)/10.0; + HuSprGrpPosSet(lbl_1_bss_388, 288, 240.0+(16.0*cosd(temp_f31*90.0f))); + } + HuPrcVSleep(); + } + for(temp_r31=0; temp_r31<=5; temp_r31++) { + for(temp_r30=0; temp_r30<4; temp_r30++) { + if(temp_r30 != temp_r29) { + HuSprTPLvlSet(lbl_1_bss_388, (temp_r30*2)+2, 1-(temp_r31/5.0)); + } + } + HuPrcVSleep(); + } + if(temp_r26 != -1) { + while(!HuDataGetAsyncStat(temp_r26)) { + HuPrcVSleep(); + } + } + repeat_mode: + if(lbl_1_bss_20AA == 0) { + HuPrcChildCreate(fn_1_27080, 100, 12288, 0, lbl_1_bss_2D8); + lbl_1_bss_20AA = 1; + } + lbl_1_bss_3A4 = fn_1_25CA8(0x1A0020); + if(lbl_1_data_148 == -1) { + lbl_1_data_148 = fn_1_2530C(0, 0, 0); + } + HuWinMesSpeedSet(lbl_1_data_148, 1); + fn_1_25838(lbl_1_data_148, 0x28000F, -1, -1); + while(1) { + temp_r28 = 0; + if((HuPadDStkRep[0] & PAD_BUTTON_UP) && temp_r29 > 0) { + temp_r28 = -1; + } else if((HuPadDStkRep[0] & PAD_BUTTON_DOWN) && temp_r29 < 3) { + temp_r28 = 1; + } + if(temp_r28 != 0) { + HuSprAttrReset(lbl_1_bss_388, (temp_r29*2)+3, HUSPR_ATTR_DISPOFF); + for(temp_r31=0; temp_r31<=10; temp_r31++) { + HuSprTPLvlSet(lbl_1_bss_388, (temp_r29*2)+2, 1-(temp_r31/10.0)); + if(temp_r31 == 5) { + HuAudFXPlay(0); + HuSprTPLvlSet(lbl_1_bss_388, ((temp_r29+temp_r28)*2)+2, 1); + HuSprAttrReset(lbl_1_bss_388, ((temp_r29+temp_r28)*2)+2, HUSPR_ATTR_DISPOFF); + } + HuPrcVSleep(); + } + temp_r29 += temp_r28; + } + if(HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + fn_1_25E74(lbl_1_bss_3A4); + fn_1_25584(lbl_1_data_148); + lbl_1_data_148 = -1; + for(temp_r31=0; temp_r31<=60; temp_r31++) { + if(temp_r31 <= 10) { + temp_f31 = temp_r31/10.0; + HuSprGrpPosSet(lbl_1_bss_388, 288, 240.0+(16.0*sind(temp_f31*90.0f))); + } else { + temp_f31 = (temp_r31-10)/50.0; + HuSprGrpPosSet(lbl_1_bss_388, 288, -400.0+(656.0*cosd(temp_f31*90.0f))); + } + HuPrcVSleep(); + } + HuSprGrpKill(lbl_1_bss_388); + lbl_1_bss_388 = 0; + return 0; + } + if(HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(1); + if(lbl_1_bss_20AC[lbl_1_data_A2[temp_r29]]) { + break; + } + fn_1_25838(lbl_1_data_148, 0x28002E, -1, -1); + fn_1_25838(lbl_1_data_148, 0x28000F, -1, -1); + continue; + } + HuPrcVSleep(); + } + fn_1_25E74(lbl_1_bss_3A4); + fn_1_25584(lbl_1_data_148); + lbl_1_data_148 = lbl_1_bss_3A4 = -1; + mgTypeCurr = temp_r29; + if(temp_r29 == 1 || temp_r29 == 2) { + if(fn_1_C0C8(1) == 0) { + goto repeat_mode; + } + } else { + for(temp_r31=0; temp_r31<4; temp_r31++) { + GWPlayerCfg[temp_r31].group = temp_r31; + } + } + for(temp_r31=0; temp_r31<=10; temp_r31++) { + for(temp_r30=0; temp_r30<4; temp_r30++) { + HuSprTPLvlSet(lbl_1_bss_388, (temp_r30*2)+3, 1-(temp_r31/10.0)); + } + HuPrcVSleep(); + } + Hu3DMotionTimeSet(lbl_1_bss_2C80[5], 0); + HuPrcVSleep(); + temp_r28 = (temp_r29*40)-110; + temp_r25 = &Hu3DData[lbl_1_bss_2C80[5]]; + sp20 = temp_r25->pos; + sp14.x = -350; + sp14.y = 0; + sp14.z = 680; + VECSubtract(&sp14, &sp20, &sp14); + temp_f30 = (180+atan2d(sp14.z, sp14.x))-360; + Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[7], 0, 8, 0x40000001); + for(temp_r31=0; temp_r31<=30; temp_r31++) { + if(temp_r31 <= 20) { + temp_f31 = temp_r31/20.0; + HuSprPosSet(lbl_1_bss_388, (temp_r29*2)+2, 0, (sind(temp_f31*90.0f)*(-150-temp_r28))+temp_r28); + } + temp_f31 = temp_r31/30.0; + VECScale(&sp14, &sp8, temp_f31); + VECAdd(&sp20, &sp8, &sp8); + Hu3DModelPosSetV(lbl_1_bss_2C80[5], &sp8); + if(temp_r31 <= 10) { + temp_f31 = temp_r31/10.0; + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f30*temp_f31, 0); + } + HuPrcVSleep(); + } + HuSprGrpDrawNoSet(lbl_1_bss_388, 64); + Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 8, 0x40000001); + for(temp_r31=0; temp_r31<=10; temp_r31++) { + temp_f31 = temp_r31/10.0; + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f30+((20-temp_f30)*temp_f31), 0); + HuPrcVSleep(); + } + while(lbl_1_bss_20AA) { + HuPrcVSleep(); + } + Hu3DMotionTimeSet(lbl_1_bss_2C80[5], 0); + HuPrcVSleep(); + fn_1_27418(); + for(temp_r31=0; temp_r31<4; temp_r31++) { + CharModelMotionSet(lbl_1_bss_2C24[temp_r31], lbl_1_bss_2BC4[temp_r31][2]); + Hu3DModelAttrSet(lbl_1_bss_2C14[temp_r31], 0x40000001); + Hu3DModelRotSet(lbl_1_bss_2C14[temp_r31], 0, -90, 0); + } + for(temp_r31=0; temp_r31<=30; temp_r31++) { + temp_f31 = temp_r31/30.0f; + for(temp_r30=0; temp_r30<4; temp_r30++) { + Hu3DModelPosSet(lbl_1_bss_2C14[temp_r30], (sind(temp_f31*90.0f)*(((temp_r30*130)-195)-((temp_r30*130)+400)))+((temp_r30*130)+400), 0, 750); + if((temp_r31+(temp_r30*2))%5 == 0) { + HuAudFXPlay(GWPlayerCfg[temp_r30].character+213); + } + } + HuPrcVSleep(); + } + for(temp_r31=0; temp_r31<4; temp_r31++) { + Hu3DMotionShiftSet(lbl_1_bss_2C14[temp_r31], lbl_1_bss_2BC4[temp_r31][0], 0, 10, 0x40000001); + } + for(temp_r31=0; temp_r31<=10; temp_r31++) { + temp_f31 = temp_r31/10.0f; + for(temp_r30=0; temp_r30<4; temp_r30++) { + Hu3DModelRotSet(lbl_1_bss_2C14[temp_r30], 0, -90.0*(1.0-temp_f31), 0); + } + HuPrcVSleep(); + } + for(temp_r31=0; temp_r31<4; temp_r31++) { + mgBattleStar[temp_r31] = 0; + } + } + if(lbl_1_data_148 == -1) { + lbl_1_data_148 = fn_1_2530C(0, 0, 0); + } + fn_1_25838(lbl_1_data_148, 0x280010, -1, -1); + HuSprTPLvlSet(lbl_1_bss_388, 10, 1); + for(temp_r30=0; temp_r30<35;) { + for(temp_r31=0; temp_r31= 35) { + break; + } + } + } + HuAudFXPlay(870); + lbl_1_bss_2E4 = lbl_1_bss_20C0[lbl_1_data_A2[mgTypeCurr]][frandmod(lbl_1_bss_20AC[lbl_1_data_A2[mgTypeCurr]])]; + fn_1_271B4(lbl_1_bss_2E4, 288, 210); + HuWinAttrSet(lbl_1_data_148, 0x10); + HuWinInsertMesSet(lbl_1_data_148, mgInfoTbl[lbl_1_bss_2E4].name_mess, 0); + fn_1_25838(lbl_1_data_148, 0x280011, -1, -1); + repeat_mess: + fn_1_25838(lbl_1_data_148, 0x280029, -1, -1); + temp_r27 = HuWinChoiceGet(lbl_1_data_148, 0); + if(temp_r27 == 0) { + _ClearFlag(11); + } else if(temp_r27 == 1) { + HuWinInsertMesSet(lbl_1_data_148, MAKE_MESSID(0x28, 39), 0); + fn_1_25838(lbl_1_data_148, 0x280026, -1, -1); + temp_r27 = HuWinChoiceGet(lbl_1_data_148, 1); + if(temp_r27 == 1) { + goto repeat_mess; + } + fn_1_271B4(-1, 0, 0); + for(temp_r31=1; temp_r31<=10; temp_r31++) { + HuSprTPLvlSet(lbl_1_bss_388, 10, 1-(temp_r31/10.0)); + HuPrcVSleep(); + } + fn_1_25584(lbl_1_data_148); + lbl_1_data_148 = lbl_1_bss_3A4 = -1; + fn_1_1222C(); + return 1; + } else { + _SetFlag(11); + } + GWSystem.mg_next = lbl_1_bss_2E4; + HuDataDirClose(DATADIR_INSTPIC); + fn_1_2783C(3); + while(1) { + HuPrcVSleep(); + } +} + +s16 lbl_1_data_14A[4] = { 0, 2, 1, 3 }; +GXColor lbl_1_data_152[4] = { + { 255, 64, 64, 255 }, + { 128, 255, 128, 255 }, + { 128, 255, 255, 255 }, + { 255, 255, 128, 255 }, +}; + +void fn_1_FF5C(void) +{ + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + AnimData *temp_r28; + s16 temp_r27; + AnimData *temp_r26; + if(lbl_1_bss_388 == 0) { + temp_r30 = HuSprGrpCreate(23); + lbl_1_bss_388 = temp_r30; + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 125), MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r28, 200, 0); + HuSprGrpMemberSet(temp_r30, 0, temp_r29); + HuSprTPLvlSet(temp_r30, 0, 0.8f); + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 54), MEMORY_DEFAULT_NUM)); + if(mgBattleStarMax == 3) { + temp_r27 = 0; + } else if(mgBattleStarMax == 5) { + temp_r27 = 1; + } else { + temp_r27 = 2; + } + temp_r29 = HuSprCreate(temp_r28, 190, temp_r27); + HuSprGrpMemberSet(temp_r30, 1, temp_r29); + HuSprPosSet(temp_r30, 1, 0, -180); + for(temp_r31=0; temp_r31<4; temp_r31++) { + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 55)+(lbl_1_data_14A[temp_r31]*3), MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r28, 190, 0); + HuSprGrpMemberSet(temp_r30, (2*temp_r31)+2, temp_r29); + HuSprPosSet(temp_r30, (2*temp_r31)+2, 0, (temp_r31*40)-110); + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 56)+(lbl_1_data_14A[temp_r31]*3), MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r28, 195, 0); + HuSprGrpMemberSet(temp_r30, (2*temp_r31)+3, temp_r29); + HuSprPosSet(temp_r30, (2*temp_r31)+3, 0, (temp_r31*40)-110); + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 57)+(lbl_1_data_14A[temp_r31]*3), MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r28, 195, 0); + HuSprGrpMemberSet(temp_r30, temp_r31+19, temp_r29); + } + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 37), MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r28, 195, 0); + HuSprGrpMemberSet(temp_r30, 10, temp_r29); + HuSprPosSet(temp_r30, 10, 0, -32); + HuSprScaleSet(temp_r30, 10, 0.9f, 0.9f); + HuSprTPLvlSet(temp_r30, 10, 0); + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 101), MEMORY_DEFAULT_NUM)); + temp_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 102), MEMORY_DEFAULT_NUM)); + for(temp_r31=0; temp_r31<4; temp_r31++) { + temp_r29 = HuSprCreate(temp_r28, 180, temp_r31); + HuSprGrpMemberSet(temp_r30, (temp_r31*2)+11, temp_r29); + HuSprPosSet(temp_r30, (temp_r31*2)+11, ((temp_r31%2)*350)-175, ((temp_r31/2)*220)-180); + temp_r29 = HuSprCreate(temp_r26, 190, temp_r31); + HuSprGrpMemberSet(temp_r30, (temp_r31*2)+12, temp_r29); + HuSprTPLvlSet(temp_r30, (temp_r31*2)+12, 0.5f); + HuSprPosSet(temp_r30, (temp_r31*2)+12, ((temp_r31%2)*350)-175, ((temp_r31/2)*220)-172); + } + } + for(temp_r31=0; temp_r31<4; temp_r31++) { + HuSprTPLvlSet(lbl_1_bss_388, (temp_r31*2)+2, 1); + HuSprAttrSet(lbl_1_bss_388, temp_r31+19, HUSPR_ATTR_DISPOFF); + } + HuSprGrpDrawNoSet(lbl_1_bss_388, 0); +} + +void fn_1_10564(void) +{ + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + AnimData *temp_r24; + s16 temp_r23; + AnimData *temp_r22; + s16 sp8[4]; + if(mgBattleStarMax == 3) { + temp_r25 = 0; + } else if(mgBattleStarMax == 5) { + temp_r25 = 1; + } else { + temp_r25 = 2; + } + temp_r30 = HuSprGrpCreate(35); + lbl_1_bss_38A = temp_r30; + temp_r24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 70)+temp_r25, MEMORY_DEFAULT_NUM)); + temp_r27 = HuSprCreate(temp_r24, 195, 0); + HuSprGrpMemberSet(temp_r30, 33, temp_r27); + HuSprAttrSet(temp_r30, 33, HUSPR_ATTR_DISPOFF); + temp_r27 = HuSprCreate(temp_r24, 195, 0); + HuSprGrpMemberSet(temp_r30, 34, temp_r27); + HuSprAttrSet(temp_r30, 34, HUSPR_ATTR_DISPOFF); + temp_r22 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 73), MEMORY_DEFAULT_NUM)); + temp_r28 = -(((mgBattleStarMax+1)*42)/2)+20; + temp_r26 = -64; + for(temp_r31=0; temp_r31<4; temp_r31++) { + temp_r24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 74)+lbl_1_bss_2C24[temp_r31], MEMORY_DEFAULT_NUM)); + temp_r27 = HuSprCreate(temp_r24, 190, 0); + HuSprGrpMemberSet(temp_r30, (temp_r31*8)+0, temp_r27); + HuSprPosSet(temp_r30, (temp_r31*8)+0, temp_r28, temp_r26+(temp_r31*42)); + for(temp_r29=0; temp_r29<7; temp_r29++) { + temp_r27 = HuSprCreate(temp_r22, 190, 0); + HuSprGrpMemberSet(temp_r30, 1+(temp_r31*8)+temp_r29, temp_r27); + HuSprPosSet(temp_r30, 1+(temp_r31*8)+temp_r29, 42+temp_r28+(temp_r29*42), temp_r26+(temp_r31*42)); + if(mgBattleStar[lbl_1_bss_2C1C[temp_r31]] <= temp_r29) { + HuSprScaleSet(temp_r30, 1+(temp_r31*8)+temp_r29, 0, 0); + } else { + HuSprScaleSet(temp_r30, 1+(temp_r31*8)+temp_r29, 1, 1); + } + if(mgTypeCurr == 1) { + if(temp_r31 > 2) { + HuSprAttrSet(temp_r30, 1+(temp_r31*8)+temp_r29, HUSPR_ATTR_DISPOFF); + } + if(temp_r31 == 1) { + HuSprPosSet(temp_r30, 1+(temp_r31*8)+temp_r29, 42+temp_r28+(temp_r29*42), temp_r26+84); + } + } else if(mgTypeCurr == 2) { + if(temp_r31%2 == 1) { + HuSprAttrSet(temp_r30, 1+(temp_r31*8)+temp_r29, HUSPR_ATTR_DISPOFF); + } + if(temp_r31 == 0) { + HuSprPosSet(temp_r30, 1+(temp_r31*8)+temp_r29, 42+temp_r28+(temp_r29*42), temp_r26+21); + } + if(temp_r31 == 2) { + HuSprPosSet(temp_r30, 1+(temp_r31*8)+temp_r29, 42+temp_r28+(temp_r29*42), temp_r26+105); + } + } + } + } + temp_r28 = -(((mgBattleStarMax+1)*42)/2)+22; + if(temp_r25 == 0) { + temp_r28 += 63; + } else if(temp_r25 == 1) { + temp_r28 += 105; + } else { + temp_r28 += 146; + } + if(mgTypeCurr == 1) { + HuSprPosSet(temp_r30, 33, temp_r28+21, temp_r26+63); + HuSprAttrReset(temp_r30, 33, HUSPR_ATTR_DISPOFF); + HuSprPosSet(temp_r30, 34, temp_r28+21, temp_r26+105); + HuSprAttrReset(temp_r30, 34, HUSPR_ATTR_DISPOFF); + } else if(mgTypeCurr == 2) { + HuSprPosSet(temp_r30, 33, temp_r28+21, temp_r26+21); + HuSprAttrReset(temp_r30, 33, HUSPR_ATTR_DISPOFF); + HuSprPosSet(temp_r30, 34, temp_r28+21, temp_r26+105); + HuSprAttrReset(temp_r30, 34, HUSPR_ATTR_DISPOFF); + } + temp_r24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 67)+temp_r25, MEMORY_DEFAULT_NUM)); + temp_r27 = HuSprCreate(temp_r24, 200, 0); + HuSprGrpMemberSet(temp_r30, 32, temp_r27); + HuSprGrpPosSet(temp_r30, 288, 185); + HuSprGrpDrawNoSet(temp_r30, 64); + HuSprGrpScaleSet(temp_r30, 1, 0); + for(temp_r31=0; temp_r31<4; temp_r31++) { + lbl_1_bss_38C[temp_r31] = 0; + } + switch(mgTypeCurr) { + case 0: + temp_r23 = -1; + for(temp_r31=0; temp_r31<4; temp_r31++) { + sp8[temp_r31] = GWPlayerCoinWinGet(temp_r31)+GWPlayerCoinCollectGet(temp_r31); + if(temp_r23 < sp8[temp_r31]) { + temp_r23 = sp8[temp_r31]; + } + } + lbl_1_bss_394 = 0; + if(temp_r23 != 0) { + for(temp_r31=0; temp_r31<4; temp_r31++) { + if(temp_r23 == sp8[temp_r31]) { + lbl_1_bss_396[lbl_1_bss_394] = temp_r31; + lbl_1_bss_38C[temp_r31] = 1; + lbl_1_bss_394++; + } + } + } + break; + + case 1: + case 2: + sp8[0] = sp8[1] = 0; + for(temp_r31=0; temp_r31<4; temp_r31++) { + sp8[GWPlayerCfg[temp_r31].group] += GWPlayerCoinWinGet(temp_r31)+GWPlayerCoinCollectGet(temp_r31); + } + if(mgInfoTbl[GWSystem.mg_next].ovl == OVL_M422) { + sp8[1] /= 3; + } + lbl_1_bss_394 = 0; + if(sp8[0] != 0 || sp8[1] != 0) { + if(sp8[0] != sp8[1]) { + if(sp8[0] > sp8[1]) { + temp_r29 = 0; + } else { + temp_r29 = 1; + } + for(temp_r31=0; temp_r31<4; temp_r31++) { + if(temp_r29 == GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].group) { + lbl_1_bss_396[lbl_1_bss_394] = temp_r31; + lbl_1_bss_38C[temp_r31] = 1; + lbl_1_bss_394++; + } + } + } else { + for(temp_r31=0; temp_r31<4; temp_r31++) { + lbl_1_bss_396[lbl_1_bss_394] = temp_r31; + lbl_1_bss_38C[temp_r31] = 1; + lbl_1_bss_394++; + } + } + } + break; + + case 3: + for(temp_r31=lbl_1_bss_394=0; temp_r31<4; temp_r31++) { + if(!GWPlayerCoinWinGet(lbl_1_bss_2C1C[temp_r31])) { + lbl_1_bss_396[lbl_1_bss_394] = temp_r31; + lbl_1_bss_38C[temp_r31] = 1; + lbl_1_bss_394++; + } + } + break; + + default: + break; + } +} + +void fn_1_12B64(s16 arg0); + +s32 fn_1_1129C(void) +{ + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + float temp_f31; + + s16 sp18[4]; + s16 sp10[4]; + s16 sp8[4]; + + HuSprTPLvlSet(lbl_1_bss_388, 10, 0); + while(WipeStatGet()) { + HuPrcVSleep(); + } + fn_1_10564(); + for(temp_r31=0; temp_r31<=30; temp_r31++) { + if(temp_r31 <= 20) { + temp_f31 = temp_r31/20.0f; + HuSprGrpScaleSet(lbl_1_bss_38A, 1, 1.1*sind(temp_f31*90.0f)); + } else { + temp_f31 = (temp_r31-20)/10.0f; + HuSprGrpScaleSet(lbl_1_bss_38A, 1, 1.0+(0.1*cosd(temp_f31*90.0f))); + } + HuPrcVSleep(); + } + HuPrcSleep(30); + if(lbl_1_data_148 == -1) { + lbl_1_data_148 = fn_1_2530C(0, 0, 0); + } + if(lbl_1_bss_394) { + for(temp_r31=0; temp_r31= mgBattleStarMax) { + sp18[temp_r29] = lbl_1_bss_396[temp_r30]; + sp10[lbl_1_bss_396[temp_r30]] = 1; + temp_r29++; + } + } + if(temp_r29 != 0) { + for(temp_r31=0; temp_r31pos; + posEnd.x = 0; + posEnd.y = 0; + posEnd.z = 640; + VECSubtract(&posEnd, &pos, &posEnd); + angle = atan2d(posEnd.z, posEnd.x)+180; + for(i=0; i<=30; i++) { + for(j=0; j<4; j++) { + if(i <= 10) { + weight = i/10.0; + Hu3DModelRotSet(lbl_1_bss_2C14[j], 0, weight*90.0f, 0); + } + weight = i/30.0; + Hu3DModelPosSet(lbl_1_bss_2C14[j], ((j*130)-195)+((1-cosd(weight*90.0f))*700.0), 0, 750); + if((i+(j*2))%5 == 0) { + HuAudFXPlay(GWPlayerCfg[j].character+213); + } + } + if(i == 20) { + Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[7], 0, 8, 0x40000001); + } + if(i >= 20) { + weight = (i-20)/10.0; + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, 20.0f+((angle-20.0f)*weight), 0); + } + HuPrcVSleep(); + } + for(i=0; i<4; i++) { + Hu3DMotionShiftSet(lbl_1_bss_2C14[i], lbl_1_bss_2BC4[i][0], 0, 10, 0x40000001); + } + for(i=0; i<=30; i++) { + weight = i/30.0; + VECScale(&posEnd, &posModel, weight); + VECAdd(&pos, &posModel, &posModel); + Hu3DModelPosSetV(lbl_1_bss_2C80[5], &posModel); + HuPrcVSleep(); + } + Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 10, 0x40000001); + for(i=0; i<=10; i++) { + weight = 1.0-(i/10.0); + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, angle*weight, 0); + HuPrcVSleep(); + } + for(i=0; i<=60; i++) { + if(i <= 10) { + weight = i/10.0; + HuSprGrpPosSet(lbl_1_bss_388, 288, 240.0+(16.0*sind(weight*90.0f))); + if(lbl_1_bss_38A) { + HuSprGrpPosSet(lbl_1_bss_38A, 288, 185.0+(16.0*sind(weight*90.0f))); + } + } else { + weight = (i-10)/50.0; + weight = (1-cosd(weight*90.0f))*400; + HuSprGrpPosSet(lbl_1_bss_388, 288, 256-weight); + if(lbl_1_bss_38A) { + HuSprGrpPosSet(lbl_1_bss_38A, 288, 201-weight); + } + } + + HuPrcVSleep(); + } + HuDataDirClose(DATADIR_INSTPIC); + if(lbl_1_bss_388) { + HuSprGrpKill(lbl_1_bss_388); + } + if(lbl_1_bss_38A) { + HuSprGrpKill(lbl_1_bss_38A); + } + lbl_1_bss_388 = lbl_1_bss_38A = 0; + for(i=0; i<4; i++) { + CharModelKill(GWPlayerCfg[i].character); + } +} + +void fn_1_12BEC(void); + +void fn_1_12B64(s16 arg0) +{ + Process *process; + s32 *data; + process = HuPrcChildCreate(fn_1_12BEC, 100, 12288, 0, lbl_1_bss_2D8); + data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(s32), MEMORY_DEFAULT_NUM); + process->user_data = data; + *data = arg0; + lbl_1_bss_3A0 = 1; + (void)process; +} + +void fn_1_12BEC(void) +{ + s16 temp_r31; + ModelData *temp_r30; + HsfMaterial *temp_r29; + s32 *temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + s16 temp_r23; + s16 temp_r22; + Process *temp_r21; + float temp_f31; + Vec sp44[30]; + s16 sp8[30]; + + temp_r21 = HuPrcCurrentGet(); + temp_r28 = temp_r21->user_data; + temp_r27 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MGMODE, 82)); + Hu3DModelLayerSet(temp_r27, 3); + Hu3DModelPosSet(temp_r27, (*temp_r28*130)-195, 300, 750); + Hu3DModelScaleSet(temp_r27, 0.8f, 0.8f, 0.8f); + for(temp_r31=0; temp_r31<30; temp_r31++) { + if(temp_r31 < 4) { + temp_r26 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MGMODE, 83)); + sp8[temp_r31] = temp_r26; + temp_r30 = &Hu3DData[temp_r26]; + temp_r29 = temp_r30->hsfData->material; + for(temp_r24=0; temp_r24hsfData->materialCnt; temp_r24++, temp_r29++) { + temp_r29->color[0] = lbl_1_data_152[temp_r31].r; + temp_r29->color[1] = lbl_1_data_152[temp_r31].g; + temp_r29->color[2] = lbl_1_data_152[temp_r31].b; + temp_r29->litColor[0] = lbl_1_data_152[temp_r31].r; + temp_r29->litColor[1] = lbl_1_data_152[temp_r31].g; + temp_r29->litColor[2] = lbl_1_data_152[temp_r31].b; + } + } else { + temp_r26 = Hu3DModelLink(sp8[temp_r31%4]); + sp8[temp_r31] = temp_r26; + } + Hu3DModelPosSet(temp_r26, (frandmod(50)-220+(*temp_r28*130)), (temp_r31*12)+350, 750); + Hu3DModelScaleSet(temp_r26, 2.0f, 2.0f, 2.0f); + Hu3DModelAttrSet(temp_r26, 1); + Hu3DModelLayerSet(temp_r26, 3); + sp44[temp_r31].x = (float)(frandmod(50)-25)*0.05; + sp44[temp_r31].z = (float)(frandmod(50)-25)*0.05; + } + HuPrcSleep(45); + temp_r25 = 0; + while(1) { + for(temp_r31=temp_r22=0; temp_r31<30; temp_r31++) { + temp_r30 = &Hu3DData[sp8[temp_r31]]; + if(temp_r30->pos.y > 350.0f) { + Hu3DModelAttrSet(sp8[temp_r31], 1); + } else { + Hu3DModelAttrReset(sp8[temp_r31], 1); + temp_r30->pos.x += sp44[temp_r31].x; + temp_r30->pos.z += sp44[temp_r31].z; + } + temp_r30->pos.y -= 3.0f; + temp_r30->rot.x += ((temp_r31%3)+1)*5; + temp_r30->rot.y += ((temp_r31%5)+1)*5; + if(temp_r30->pos.y < 0.0f) { + if(lbl_1_bss_3A0 == 0) { + Hu3DModelAttrSet(sp8[temp_r31], 1); + temp_r22++; + } else { + temp_r30->pos.y = 350; + temp_r23 = frandmod(50)-25; + temp_r30->pos.x = (-195+(*temp_r28*130))+temp_r23; + temp_r30->pos.z = 750; + sp44[temp_r31].x = ((float)frandmod(50)*0.02)*((temp_r23 < 0) ? -1 : (temp_r23 > 0) ? 1: 0); + sp44[temp_r31].z = (float)(frandmod(50)-25)*0.05; + } + } + } + if(lbl_1_bss_3A0 || temp_r22 != 30) { + if(lbl_1_bss_3A0 == 0 && temp_r25 <= 10) { + temp_f31 = 1-sind((temp_r25/10.0)*90.0); + if(0.0 == temp_f31) { + Hu3DModelAttrSet(temp_r27, 1); + } + Hu3DModelScaleSet(temp_r27, temp_f31, 1, 1); + temp_r25++; + } + HuPrcVSleep(); + } else { + break; + } + } + (void)temp_r28; + (void)temp_r28; + (void)temp_r27; + (void)temp_r27; + Hu3DModelKill(temp_r27); + HuPrcVSleep(); + HuPrcEnd(); + while(1) { + HuPrcVSleep(); + } +} \ No newline at end of file diff --git a/src/REL/mgmodedll/minigame.c b/src/REL/mgmodedll/minigame.c index 34a304a9..2c4fb825 100644 --- a/src/REL/mgmodedll/minigame.c +++ b/src/REL/mgmodedll/minigame.c @@ -200,7 +200,7 @@ void fn_1_27418(void) } } -s32 fn_1_2783C(s16 evtno) +void fn_1_2783C(s16 evtno) { s16 i; omOvlHisData *his; From e270d701142b44a03b5b483ecbe95d98a4b4e772 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sun, 11 Aug 2024 09:52:52 -0500 Subject: [PATCH 032/311] Attempt to decompile tictactoe.c --- config/GMPE01_00/rels/mgmodedll/symbols.txt | 10 +- src/REL/mgmodedll/tictactoe.c | 961 ++++++++++++++++++++ 2 files changed, 966 insertions(+), 5 deletions(-) create mode 100644 src/REL/mgmodedll/tictactoe.c diff --git a/config/GMPE01_00/rels/mgmodedll/symbols.txt b/config/GMPE01_00/rels/mgmodedll/symbols.txt index 88495430..182e3545 100644 --- a/config/GMPE01_00/rels/mgmodedll/symbols.txt +++ b/config/GMPE01_00/rels/mgmodedll/symbols.txt @@ -487,7 +487,7 @@ lbl_1_data_148 = .data:0x00000148; // type:object size:0x2 data:2byte lbl_1_data_14A = .data:0x0000014A; // type:object size:0x8 lbl_1_data_152 = .data:0x00000152; // type:object size:0x10 data:4byte lbl_1_data_168 = .data:0x00000168; // type:object size:0x2 data:2byte -lbl_1_data_16A = .data:0x0000016A; // type:object size:0x32 +lbl_1_data_16A = .data:0x0000016A; // type:object size:0x30 lbl_1_data_19C = .data:0x0000019C; // type:object size:0x10 lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x10 lbl_1_data_1BC = .data:0x000001BC; // type:object size:0xA data:string @@ -560,10 +560,10 @@ lbl_1_bss_3A0 = .bss:0x000003A0; // type:object size:0x4 data:4byte lbl_1_bss_3A4 = .bss:0x000003A4; // type:object size:0x2 data:2byte lbl_1_bss_3A8 = .bss:0x000003A8; // type:object size:0x2 data:2byte lbl_1_bss_3AA = .bss:0x000003AA; // type:object size:0x2 data:2byte -lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x2 data:2byte -lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x2 data:2byte -lbl_1_bss_3B4 = .bss:0x000003B4; // type:object size:0x2 data:2byte -lbl_1_bss_3B8 = .bss:0x000003B8; // type:object size:0x8 data:2byte +lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x4 data:2byte +lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x4 data:2byte +lbl_1_bss_3B4 = .bss:0x000003B4; // type:object size:0x4 data:2byte +lbl_1_bss_3B8 = .bss:0x000003B8; // type:object size:0x2 data:2byte lbl_1_bss_3C0 = .bss:0x000003C0; // type:object size:0x4 data:4byte lbl_1_bss_3C4 = .bss:0x000003C4; // type:object size:0x4 data:4byte lbl_1_bss_3C8 = .bss:0x000003C8; // type:object size:0x4 data:4byte diff --git a/src/REL/mgmodedll/tictactoe.c b/src/REL/mgmodedll/tictactoe.c new file mode 100644 index 00000000..4f58a89a --- /dev/null +++ b/src/REL/mgmodedll/tictactoe.c @@ -0,0 +1,961 @@ +#include "REL/mgmodedll.h" +#include "game/gamework.h" + +#include "game/audio.h" +#include "game/esprite.h" +#include "game/gamework_data.h" +#include "game/saveload.h" +#include "game/wipe.h" +#include "game/chrman.h" +#include "game/minigame_seq.h" + +#include "ext_math.h" + +s16 lbl_1_bss_3B8; +s16 lbl_1_bss_3B4[2]; +s16 lbl_1_bss_3B0[2]; +s16 lbl_1_bss_3AC[2]; +s16 lbl_1_bss_3AA; +s16 lbl_1_bss_3A8; + +s16 lbl_1_data_168 = -1; +s16 lbl_1_data_16A[] = { + 0, 1, 2, + 3, 4, 5, + 6, 7, 8, + 0, 3, 6, + 1, 4, 7, + 2, 5, 8, + 0, 4, 8, + 2, 4, 6 +}; + +float lbl_1_data_19C[4] = { + -80, + -38, + 38, + 80 +}; + +s16 lbl_1_data_1AC[8] = { + 4, + 4, + 4, + 4, + 0, + 2, + 6, + 8 +}; + +void fn_1_2783C(s16 evtno); + +void fn_1_14CFC(void); +s32 fn_1_15E98(s16 arg0, s32 arg1); + +void fn_1_16438(void); +s32 fn_1_16B30(void); +void fn_1_17A5C(void); +void fn_1_17BE0(void); + +s32 fn_1_13418(void) +{ + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + ModelData *temp_r27; + Vec sp24; + Vec sp18; + Vec spC; + s16 sp8[2]; + float temp_f31; + float temp_f30; + float temp_f29; + + fn_1_279FC(0); + if(lbl_1_bss_4 != 4) { + for(temp_r31=0; temp_r31<3; temp_r31++) { + for(temp_r30=0; temp_r30<3; temp_r30++) { + mgTicTacToeGrid[temp_r31][temp_r30] = 0; + } + } + } + fn_1_14CFC(); + if(lbl_1_bss_4 == 4) { + HuSprGrpPosSet(lbl_1_bss_3A8, 288, 240); + HuSprGrpPosSet(lbl_1_bss_3AA, 450, 65); + Hu3DModelPosSet(lbl_1_bss_2C80[5], -300, 0, 680); + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, 20, 0); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + while(WipeStatGet()) { + HuPrcVSleep(); + } + if(fn_1_16B30()) { + if(lbl_1_data_168 == -1) { + lbl_1_data_168 = fn_1_2530C(0, 0, 0); + } + HuWinAttrSet(lbl_1_data_168, 16); + fn_1_25838(lbl_1_data_168, 0x28000C, -1, -1); + temp_r29 = HuWinChoiceGet(lbl_1_data_168, 1); + if(temp_r29 == 0) { + fn_1_17A5C(); + } else { + fn_1_16438(); + return 0; + } + } + } else { + temp_r27 = &Hu3DData[lbl_1_bss_2C80[5]]; + sp24 = temp_r27->pos; + sp18.x = -300; + sp18.y = 0; + sp18.z = 680; + VECSubtract(&sp18, &sp24, &sp18); + temp_f29 = (180+atan2d(sp18.z, sp18.x))-360; + for(temp_r31=0; temp_r31<=60; temp_r31++) { + if(temp_r31 <= 50) { + temp_f31 = 1.0-sind((temp_r31/50.0)*90.0); + HuSprGrpPosSet(lbl_1_bss_3A8, 288, 256+(-400*temp_f31)); + } else { + temp_f31 = cosd(((temp_r31-50.0)/10.0)*90.0); + HuSprGrpPosSet(lbl_1_bss_3A8, 288, 240+(16*temp_f31)); + } + if(temp_r31 > 20 && temp_r31 <= 50) { + temp_f31 = 1.0-sind(((temp_r31-20)/30.0)*90.0); + HuSprGrpPosSet(lbl_1_bss_3AA, 434+(400*temp_f31), 65); + } else if(temp_r31 > 50) { + temp_f31 = cosd(((temp_r31-50.0)/10.0)*90.0); + HuSprGrpPosSet(lbl_1_bss_3AA, 450+(-16*temp_f31), 65); + } + if(temp_r31 == 30) { + Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[7], 0, 8, 0x40000001); + } + if(temp_r31 > 30) { + temp_f31 = (temp_r31-30.0)/30.0; + VECScale(&sp18, &spC, temp_f31); + VECAdd(&sp24, &spC, &spC); + Hu3DModelPosSetV(lbl_1_bss_2C80[5], &spC); + if(temp_r31 <= 40) { + temp_f31 = (temp_r31-20)/10.0; + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f29*temp_f31, 0); + } + } + HuPrcVSleep(); + } + Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 8, 0x40000001); + for(temp_r31=0; temp_r31<=10; temp_r31++) { + temp_f31 = temp_r31/10.0; + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f29+((20.0f-temp_f29)*temp_f31), 0); + HuPrcVSleep(); + } + for(temp_r31=0; temp_r31<3; temp_r31++) { + for(temp_r30=0; temp_r30<3; temp_r30++) { + mgTicTacToeGrid[temp_r31][temp_r30] = 0; + } + } + } + lbl_1_bss_3B8 = fn_1_25CA8(0x280019); + if(lbl_1_data_168 == -1) { + lbl_1_data_168 = fn_1_2530C(0, 0, 0); + } + fn_1_25838(lbl_1_data_168, 0x280015, -1, -1); + lbl_1_bss_3B4[0] = 0; + lbl_1_bss_3B4[1] = 2; + fn_1_17BE0(); + lbl_1_bss_3AC[0] = lbl_1_bss_3AC[1] = 30; + HuSprAttrReset(lbl_1_bss_3A8, 12, HUSPR_ATTR_DISPOFF); + HuSprTPLvlSet(lbl_1_bss_3A8, 12, 0.5f); + HuSprAttrReset(lbl_1_bss_3A8, 13, HUSPR_ATTR_DISPOFF); + HuSprTPLvlSet(lbl_1_bss_3A8, 13, 0.5f); + temp_f30 = 0; + sp8[0] = sp8[1] = 0; + for(temp_r31=0; temp_r31<9; temp_r31++) { + mgTicTacToeGrid[temp_r31%3][temp_r31/3] &= 0x3; + } + while(1) { + for(temp_r31=0; temp_r31<2; temp_r31++) { + if(sp8[temp_r31] == 0) { + sp8[temp_r31] = fn_1_15E98(temp_r31, 1); + if(sp8[temp_r31] == -1) { + sp8[temp_r31] = 0; + goto else_case; + } else if(sp8[temp_r31] == 1) { + HuSprAttrSet(lbl_1_bss_3A8, temp_r31+12, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(lbl_1_bss_3A8, temp_r31+14, HUSPR_ATTR_DISPOFF); + if(lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { + HuSprPosSet(lbl_1_bss_3A8, temp_r31+14, ((lbl_1_bss_3B4[temp_r31]%3)*56)-56, ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); + } else { + HuSprPosSet(lbl_1_bss_3A8, temp_r31+14, ((lbl_1_bss_3B4[temp_r31]%3)*56)-60+(temp_r31*8), ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); + } + } else { + else_case: + if(lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { + HuSprPosSet(lbl_1_bss_3A8, temp_r31+12, ((lbl_1_bss_3B4[temp_r31]%3)*56)-56, ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); + } else { + HuSprPosSet(lbl_1_bss_3A8, temp_r31+12, ((lbl_1_bss_3B4[temp_r31]%3)*56)-60+(temp_r31*8), ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); + } + HuSprTPLvlSet(lbl_1_bss_3A8, temp_r31+12, 0.7+(0.2*sind(temp_f30+(temp_r31*180)))); + HuSprPriSet(lbl_1_bss_3A8, temp_r31+12, 150); + } + } else { + sp8[temp_r31] = fn_1_15E98(temp_r31, 0); + if(sp8[temp_r31] == -1) { + sp8[temp_r31] = 0; + HuSprAttrReset(lbl_1_bss_3A8, temp_r31+12, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(lbl_1_bss_3A8, temp_r31+14, HUSPR_ATTR_DISPOFF); + if(lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { + HuSprPosSet(lbl_1_bss_3A8, temp_r31+12, ((lbl_1_bss_3B4[temp_r31]%3)*56)-56, ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); + } else { + HuSprPosSet(lbl_1_bss_3A8, temp_r31+12, ((lbl_1_bss_3B4[temp_r31]%3)*56)-60+(temp_r31*8), ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); + } + } else { + HuSprTPLvlSet(lbl_1_bss_3A8, temp_r31+12, 1.0f); + HuSprPriSet(lbl_1_bss_3A8, temp_r31+12, temp_r31+180); + if(lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { + HuSprPosSet(lbl_1_bss_3A8, temp_r31+14, ((lbl_1_bss_3B4[temp_r31]%3)*56)-56, ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); + } else { + HuSprPosSet(lbl_1_bss_3A8, temp_r31+14, ((lbl_1_bss_3B4[temp_r31]%3)*56)-60+(temp_r31*8), ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); + } + } + } + } + if(sp8[0] == 1 && sp8[1] == 1) { + HuSprTPLvlSet(lbl_1_bss_3A8, 12, 1.0f); + HuSprTPLvlSet(lbl_1_bss_3A8, 13, 1.0f); + break; + } else { + temp_f30 += 10.0f; + if(temp_f30 > 360.0f) { + temp_f30 -= 360.0f; + } + HuPrcVSleep(); + } + } + fn_1_25E74(lbl_1_bss_3B8); + lbl_1_bss_3B8 = -1; + fn_1_25838(lbl_1_data_168, 0x280010, -1, -1); + HuSprTPLvlSet(lbl_1_bss_3A8, 24, 1.0f); + mgTypeCurr = 2; + for(temp_r30=0; temp_r30<35;) { + for(temp_r31=0; temp_r31= 35) { + break; + } + } + } + HuAudFXPlay(870); + lbl_1_bss_2E4 = lbl_1_bss_20C0[lbl_1_data_A2[mgTypeCurr]][frandmod(lbl_1_bss_20AC[lbl_1_data_A2[mgTypeCurr]])]; + temp_r28 = fn_1_271B4(lbl_1_bss_2E4, 288, 240); + HuSprGrpDrawNoSet(temp_r28, 0); + HuWinInsertMesSet(lbl_1_data_168, mgInfoTbl[lbl_1_bss_2E4].name_mess, 0); + HuWinAttrSet(lbl_1_data_168, 16); + fn_1_25838(lbl_1_data_168, 0x280011, -1, -1); + repeat_mess: + fn_1_25838(lbl_1_data_168, 0x280029, -1, -1); + temp_r29 = HuWinChoiceGet(lbl_1_data_168, 0); + if(temp_r29 == 0) { + _ClearFlag(11); + } else if(temp_r29 == 1) { + HuWinInsertMesSet(lbl_1_data_168, MAKE_MESSID(0x28, 40), 0); + fn_1_25838(lbl_1_data_168, 0x280026, -1, -1); + temp_r29 = HuWinChoiceGet(lbl_1_data_168, 1); + if(temp_r29 == 1) { + goto repeat_mess; + } + fn_1_271B4(-1, 0, 0); + for(temp_r31=1; temp_r31<=10; temp_r31++) { + HuSprTPLvlSet(lbl_1_bss_3A8, 24, 1-(temp_r31/10.0)); + HuPrcVSleep(); + } + + fn_1_16438(); + return 1; + } else { + _SetFlag(11); + } + GWSystem.mg_next = lbl_1_bss_2E4; + HuDataDirClose(DATADIR_INSTPIC); + fn_1_2783C(4); + while(1) { + HuPrcVSleep(); + } +} + +void fn_1_14CFC(void) +{ + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + AnimData *temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + AnimData *temp_r23; + AnimData *temp_r22; + s16 temp_r21; + s32 temp_r20; + s16 sp8; + for(temp_r31=0; temp_r31<4; temp_r31++) { + lbl_1_bss_2C1C[temp_r31] = temp_r31; + } + for(temp_r31=0; temp_r31<4; temp_r31++) { + for(temp_r27=0; temp_r27<3-temp_r31; temp_r27++) { + if(GWPlayerCfg[lbl_1_bss_2C1C[temp_r27]].group > GWPlayerCfg[lbl_1_bss_2C1C[temp_r27+1]].group) { + temp_r24 = lbl_1_bss_2C1C[temp_r27]; + lbl_1_bss_2C1C[temp_r27] = lbl_1_bss_2C1C[temp_r27+1]; + lbl_1_bss_2C1C[temp_r27+1] = temp_r24; + } + } + } + if(lbl_1_bss_3A8 == 0) { + temp_r30 = HuSprGrpCreate(25); + lbl_1_bss_3A8 = temp_r30; + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 84), MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r28, 200, 0); + HuSprGrpMemberSet(temp_r30, 0, temp_r29); + HuSprTPLvlSet(temp_r30, 0, 0.8f); + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 85), MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r28, 190, 0); + HuSprGrpMemberSet(temp_r30, 1, temp_r29); + HuSprPosSet(temp_r30, 1, 0, -110); + temp_r26 = 0; + temp_r25 = 0; + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 86), MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r28, 190, 0); + HuSprGrpMemberSet(temp_r30, 2, temp_r29); + HuSprPosSet(temp_r30, 2, temp_r26, temp_r25); + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 87), MEMORY_DEFAULT_NUM)); + temp_r22 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 88), MEMORY_DEFAULT_NUM)); + for(temp_r31=temp_r27=0; temp_r31<9; temp_r31++) { + if(mgTicTacToeGrid[temp_r31%3][temp_r31/3] & 0xF) { + temp_r24 = mgTicTacToeGrid[temp_r31%3][temp_r31/3]; + if(temp_r24 & 0x4) { + temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 91), MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r23, 180, 0); + HuSprGrpMemberSet(temp_r30, 14, temp_r29); + if(temp_r24 & 0x8) { + HuSprPosSet(temp_r30, 14, temp_r26+((temp_r31%3)*56)-60, temp_r25+((temp_r31/3)*56)-56); + } else { + HuSprPosSet(temp_r30, 14, temp_r26+((temp_r31%3)*56)-56, temp_r25+((temp_r31/3)*56)-56); + } + temp_r27++; + } + if(temp_r24 & 0x8) { + temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 92), MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r23, 180, 0); + HuSprGrpMemberSet(temp_r30, 15, temp_r29); + if(temp_r24 & 0x4) { + HuSprPosSet(temp_r30, 15, temp_r26+((temp_r31%3)*56)-48, temp_r25+((temp_r31/3)*56)-56); + } else { + HuSprPosSet(temp_r30, 15, temp_r26+((temp_r31%3)*56)-56, temp_r25+((temp_r31/3)*56)-56); + } + temp_r27++; + } + if(temp_r24 & 0x3) { + if(mgTicTacToeGrid[temp_r31%3][temp_r31/3] & 0x1) { + temp_r29 = HuSprCreate(temp_r28, 180, 0); + } else { + temp_r29 = HuSprCreate(temp_r22, 180, 0); + } + HuSprGrpMemberSet(temp_r30, temp_r31+3, temp_r29); + HuSprPosSet(temp_r30, temp_r31+3, temp_r26+((temp_r31%3)*56)-56, temp_r25+((temp_r31/3)*56)-56); + } + } + } + if(temp_r27 == 0) { + temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 91), MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r23, 150, 0); + HuSprGrpMemberSet(temp_r30, 14, temp_r29); + HuSprPosSet(temp_r30, 14, temp_r26+((temp_r31%3)*56)-56, temp_r25+((temp_r31/3)*56)-56); + HuSprAttrSet(temp_r30, 14, HUSPR_ATTR_DISPOFF); + temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 92), MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r23, 150, 0); + HuSprGrpMemberSet(temp_r30, 15, temp_r29); + HuSprPosSet(temp_r30, 15, temp_r26+((temp_r31%3)*56)-56, temp_r25+((temp_r31/3)*56)-56); + HuSprAttrSet(temp_r30, 15, HUSPR_ATTR_DISPOFF); + } + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 89), MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r28, 150, 0); + HuSprGrpMemberSet(temp_r30, 12, temp_r29); + HuSprAttrSet(temp_r30, 12, HUSPR_ATTR_DISPOFF); + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 90), MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r28, 150, 0); + HuSprGrpMemberSet(temp_r30, 13, temp_r29); + HuSprAttrSet(temp_r30, 13, HUSPR_ATTR_DISPOFF); + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 101), MEMORY_DEFAULT_NUM)); + temp_r22 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 102), MEMORY_DEFAULT_NUM)); + for(temp_r31=0; temp_r31<4; temp_r31++) { + temp_r29 = HuSprCreate(temp_r28, 130, temp_r31); + HuSprGrpMemberSet(temp_r30, (temp_r31*2)+16, temp_r29); + HuSprPosSet(temp_r30, (temp_r31*2)+16, ((temp_r31%2)*314)-155, ((temp_r31/2)*185)-110); + temp_r29 = HuSprCreate(temp_r22, 135, temp_r31); + HuSprGrpMemberSet(temp_r30, (temp_r31*2)+17, temp_r29); + HuSprTPLvlSet(temp_r30, (temp_r31*2)+17, 0.5f); + HuSprPosSet(temp_r30, (temp_r31*2)+17, ((temp_r31%2)*314)-155, ((temp_r31/2)*185)-102); + } + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 37), MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r28, 150, 0); + HuSprGrpMemberSet(temp_r30, 24, temp_r29); + HuSprPosSet(temp_r30, 24, 0, 0); + HuSprScaleSet(temp_r30, 24, 0.9f, 0.9f); + HuSprTPLvlSet(temp_r30, 24, 0); + } + if(lbl_1_bss_3AA == 0) { + temp_r30 = HuSprGrpCreate(10); + lbl_1_bss_3AA = temp_r30; + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 15), MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r28, 200, 0); + HuSprGrpMemberSet(temp_r30, 0, temp_r29); + HuSprTPLvlSet(temp_r30, 0, 0.8f); + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 25), MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r28, 190, 0); + HuSprGrpMemberSet(temp_r30, 1, temp_r29); + HuSprPosSet(temp_r30, 1, 0, 0); + for(temp_r31=0; temp_r31<4; temp_r31++) { + temp_r20 = GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].character; + lbl_1_bss_2C24[temp_r31] = temp_r20; + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 16)+(s16)temp_r20, MEMORY_DEFAULT_NUM)); + temp_r29 = HuSprCreate(temp_r28, 190, 0); + HuSprGrpMemberSet(temp_r30, (temp_r31*2)+2, temp_r29); + HuSprPosSet(temp_r30, (temp_r31*2)+2, lbl_1_data_19C[temp_r31], 0); + if(sp8 = GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].iscom) { + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 39), MEMORY_DEFAULT_NUM)); + temp_r21 = GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].diff; + } else { + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 38), MEMORY_DEFAULT_NUM)); + temp_r21 = GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].pad_idx; + } + temp_r29 = HuSprCreate(temp_r28, 180, temp_r21); + HuSprGrpMemberSet(temp_r30, (temp_r31*2)+3, temp_r29); + HuSprPosSet(temp_r30, (temp_r31*2)+3, lbl_1_data_19C[temp_r31], 24); + } + HuSprGrpPosSet(temp_r30, 800, 240); + } +} + +s32 fn_1_15E98(s16 arg0, s32 arg1) +{ + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + s16 temp_r23; + temp_r28 = 4; + for(temp_r27=0; temp_r27<4; temp_r27++) { + if(arg0 == GWPlayerCfg[temp_r27].group && GWPlayerCfg[temp_r27].iscom == 0 && temp_r28 > GWPlayerCfg[temp_r27].pad_idx) { + temp_r28 = GWPlayerCfg[temp_r27].pad_idx; + } + } + if(temp_r28 == 4) { + if(arg1 == 0) { + return 1; + } + temp_r30 = lbl_1_bss_3B4[arg0]%3; + temp_r29 = lbl_1_bss_3B4[arg0]/3; + temp_r24 = lbl_1_bss_3B0[arg0]%3; + temp_r23 = lbl_1_bss_3B0[arg0]/3; + if(--lbl_1_bss_3AC[arg0] != 0) { + return 0; + } + if(temp_r30 == temp_r24 && temp_r29 == temp_r23) { + HuAudFXPlay(1); + mgTicTacToeGrid[temp_r24][temp_r23] |= 4 << arg0; + return 1; + } else { + lbl_1_bss_3AC[arg0] = 30; + temp_r26 = (temp_r24-temp_r30 < 0) ? -1 : (temp_r24-temp_r30 > 0) ? 1 : 0; + temp_r25 = (temp_r23-temp_r29 < 0) ? -1 : (temp_r23-temp_r29 > 0) ? 1 : 0; + lbl_1_bss_3B4[arg0] = temp_r30+temp_r26+((temp_r29+temp_r25)*3); + HuAudFXPlay(0); + return 0; + } + } else { + temp_r30 = lbl_1_bss_3B4[arg0]%3; + temp_r29 = lbl_1_bss_3B4[arg0]/3; + if(arg1 == 0) { + return 1; + } + if(HuPadBtnDown[temp_r28] & PAD_BUTTON_A) { + if((mgTicTacToeGrid[temp_r30][temp_r29] & 0x3) == 0) { + mgTicTacToeGrid[temp_r30][temp_r29] |= 4 << arg0; + HuAudFXPlay(1); + return 1; + } else { + HuAudFXPlay(4); + } + } + if(HuPadDStkRep[temp_r28] == 0) { + return 0; + } + temp_r26 = temp_r25 = 0; + if((HuPadDStkRep[temp_r28] & PAD_BUTTON_LEFT) && temp_r30 > 0) { + temp_r26 = -1; + } else if((HuPadDStkRep[temp_r28] & PAD_BUTTON_RIGHT) && temp_r30 < 2) { + temp_r26 = 1; + } + if((HuPadDStkRep[temp_r28] & PAD_BUTTON_UP) && temp_r29 > 0) { + temp_r25 = -1; + } else if((HuPadDStkRep[temp_r28] & PAD_BUTTON_DOWN) && temp_r29 < 2) { + temp_r25 = 1; + } + if(temp_r26 || temp_r25) { + HuAudFXPlay(0); + } + lbl_1_bss_3B4[arg0] = temp_r30+temp_r26+((temp_r29+temp_r25)*3); + return 0; + } + +} + +void fn_1_16438(void) +{ + s16 temp_r31; + ModelData *temp_r30; + Vec sp20; + Vec sp14; + Vec sp8; + float temp_f31; + float temp_f30; + + fn_1_25E74(lbl_1_bss_3B8); + fn_1_25584(lbl_1_data_168); + lbl_1_data_168 = lbl_1_bss_3B8 = -1; + temp_r30 = &Hu3DData[lbl_1_bss_2C80[5]]; + sp20 = temp_r30->pos; + sp14.x = 0; + sp14.y = 0; + sp14.z = 640; + VECSubtract(&sp14, &sp20, &sp14); + temp_f30 = 180+atan2d(sp14.z, sp14.x); + for(temp_r31=0; temp_r31<=60; temp_r31++) { + if(temp_r31 <= 10) { + temp_f31 = sind((temp_r31/10.0)*90.0); + HuSprGrpPosSet(lbl_1_bss_3A8, 288, 240+(16*temp_f31)); + } else { + temp_f31 = 1.0-cosd(((temp_r31-10.0)/50.0)*90.0); + HuSprGrpPosSet(lbl_1_bss_3A8, 288, 256+(-400*temp_f31)); + } + if(temp_r31 <= 10) { + temp_f31 = sind((temp_r31/10.0)*90.0); + HuSprGrpPosSet(lbl_1_bss_3AA, 450+(-16*temp_f31), 65); + } else if(temp_r31 < 30) { + temp_f31 = 1-cosd(((temp_r31-10.0)/20.0)*90.0); + HuSprGrpPosSet(lbl_1_bss_3AA, 434+(400*temp_f31), 65); + } + if(temp_r31 == 29) { + Hu3DMotionTimeSet(lbl_1_bss_2C80[5], 0); + } + if(temp_r31 == 30) { + Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[7], 0, 8, 0x40000001); + } + if(temp_r31 > 30) { + temp_f31 = (temp_r31-30.0)/30.0; + VECScale(&sp14, &sp8, temp_f31); + VECAdd(&sp20, &sp8, &sp8); + Hu3DModelPosSetV(lbl_1_bss_2C80[5], &sp8); + if(temp_r31 <= 40) { + temp_f31 = (temp_r31-30)/10.0; + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f30*temp_f31, 0); + } + } + HuPrcVSleep(); + } + Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 8, 0x40000001); + for(temp_r31=0; temp_r31<=10; temp_r31++) { + temp_f31 = 1.0-(temp_r31/10.0); + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f31*temp_f30, 0); + HuPrcVSleep(); + } + HuSprGrpKill(lbl_1_bss_3A8); + lbl_1_bss_3A8 = 0; + HuSprGrpKill(lbl_1_bss_3AA); + lbl_1_bss_3AA = 0; +} + +s32 fn_1_16B30(void) +{ + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + AnimData *temp_r23; + s16 temp_r22; + s16 temp_r21; + s16 temp_r20; + float temp_f31; + + s16 sp22[9]; + s16 sp1E[2]; + s16 sp1A[2]; + s16 sp16[2]; + s16 sp12[2]; + char spE[2][2]; + + for(temp_r31=0; temp_r31<9; temp_r31++) { + if(mgTicTacToeGrid[temp_r31%3][temp_r31/3] & 0x4) { + sp1E[0] = temp_r31; + } + if(mgTicTacToeGrid[temp_r31%3][temp_r31/3] & 0x8) { + sp1E[1] = temp_r31; + } + } + HuPrcSleep(60); + sp16[0] = sp16[1] = 0; + for(temp_r31=0; temp_r31<4; temp_r31++) { + sp16[temp_r31/2] += GWPlayerCoinWinGet(lbl_1_bss_2C1C[temp_r31])+GWPlayerCoinCollectGet(lbl_1_bss_2C1C[temp_r31]); + } + sp12[0] = sp12[1] = 0; + if(sp16[0] != sp16[1]) { + if(sp16[0] > sp16[1]) { + sp12[0] = 1; + } else { + sp12[1] = 1; + } + } + for(temp_r30=0, temp_r28=-1; temp_r30<2; temp_r30++) { + temp_r22 = sp1E[temp_r30]%3; + temp_r21 = sp1E[temp_r30]/3; + if(sp12[temp_r30] != 0) { + mgTicTacToeGrid[temp_r22][temp_r21] = (1 << temp_r30); + temp_r28 = temp_r30; + } else { + mgTicTacToeGrid[temp_r22][temp_r21] &= ~(4 << temp_r30); + } + } + if(lbl_1_data_168 == -1) { + lbl_1_data_168 = fn_1_2530C(0, 0, 0); + } + if(temp_r28 != -1) { + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[temp_r28*2], 0); + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28*2)+1], 1); + fn_1_25838(lbl_1_data_168, 0x280016, -1, -1); + } else { + fn_1_25838(lbl_1_data_168, 0x280013, -1, -1); + } + temp_r26 = espEntry(0x62005D, 100, 0); + espColorSet(temp_r26, 255, 255, 192); + espAttrSet(temp_r26, HUSPR_ATTR_ADDCOL|HUSPR_ATTR_DISPOFF|HUSPR_ATTR_LOOP); + for(temp_r31=0; temp_r31<=30; temp_r31++) { + for(temp_r30=0; temp_r30<2; temp_r30++) { + if(sp12[temp_r30]) { + if(temp_r31 == 0) { + temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 87)+temp_r30, MEMORY_DEFAULT_NUM)); + temp_r24 = HuSprCreate(temp_r23, 170, 0); + HuSprGrpMemberSet(lbl_1_bss_3A8, sp1E[temp_r30]+3, temp_r24); + HuSprPosSet(lbl_1_bss_3A8, sp1E[temp_r30]+3, ((sp1E[temp_r30]%3)*56)-56, ((sp1E[temp_r30]/3)*56)-56); + HuSprAttrSet(lbl_1_bss_3A8, sp1E[temp_r30]+3,HUSPR_ATTR_DISPOFF); + espAttrReset(temp_r26, HUSPR_ATTR_DISPOFF); + espPosSet(temp_r26, (((sp1E[temp_r30]%3)*56)+288.0f)-56, ((sp1E[temp_r30]/3)*56)+184); + HuAudFXPlay(825); + HuAudFXPlay(826); + } + if(temp_r31 == 8) { + HuSprAttrReset(lbl_1_bss_3A8, sp1E[temp_r30]+3,HUSPR_ATTR_DISPOFF); + } + if(temp_r31 == 14) { + espKill(temp_r26); + } + } else { + temp_f31 = 1-(temp_r31/30.0); + HuSprTPLvlSet(lbl_1_bss_3A8, temp_r30+14, temp_f31); + } + } + HuPrcVSleep(); + } + HuSprAttrSet(lbl_1_bss_3A8, 14, HUSPR_ATTR_DISPOFF); + HuSprTPLvlSet(lbl_1_bss_3A8, 14, 1.0f); + HuSprAttrSet(lbl_1_bss_3A8, 15, HUSPR_ATTR_DISPOFF); + HuSprTPLvlSet(lbl_1_bss_3A8, 15, 1.0f); + for(temp_r31=0; temp_r31<9; temp_r31++) { + sp22[temp_r31] = 0; + } + temp_r27 = 0; + for(temp_r30=0; temp_r30<2; temp_r30++) { + for(temp_r31=0; temp_r31<8; temp_r31++) { + temp_r29 = lbl_1_data_16A[temp_r31*3]; + if((1 << temp_r30) & mgTicTacToeGrid[temp_r29%3][temp_r29/3]) { + temp_r29 = lbl_1_data_16A[(temp_r31*3)+1]; + if((1 << temp_r30) & mgTicTacToeGrid[temp_r29%3][temp_r29/3]) { + temp_r29 = lbl_1_data_16A[(temp_r31*3)+2]; + if((1 << temp_r30) & mgTicTacToeGrid[temp_r29%3][temp_r29/3]) { + temp_r29 = lbl_1_data_16A[temp_r31*3]; + if(sp22[temp_r29] == 0) { + sp22[temp_r29]++; + temp_r27++; + } + temp_r29 = lbl_1_data_16A[(temp_r31*3)+1]; + if(sp22[temp_r29] == 0) { + sp22[temp_r29]++; + temp_r27++; + } + temp_r29 = lbl_1_data_16A[(temp_r31*3)+2]; + if(sp22[temp_r29] == 0) { + sp22[temp_r29]++; + temp_r27++; + } + } + } + } + } + } + if(temp_r27 == 0) { + sp1A[0] = sp1A[1] = 0; + for(temp_r31=0; temp_r31<3; temp_r31++) { + for(temp_r30=0; temp_r30<3; temp_r30++) { + temp_r20 = mgTicTacToeGrid[temp_r31][temp_r30]; + if(temp_r20 & 0x1) { + sp1A[0]++; + } + if(temp_r20 & 0x2) { + sp1A[1]++; + } + } + } + if(sp1A[0]+sp1A[1] >= 9) { + for(temp_r31=0; temp_r31<2; temp_r31++) { + spE[temp_r31][0] = sp1A[temp_r31]+'0'; + spE[temp_r31][1] = 0; + HuWinInsertMesSet(lbl_1_data_168, MAKE_MESSID_PTR(&spE[temp_r31][0]), (s32)temp_r31); + } + if(sp1A[0] > sp1A[1]) { + temp_r28 = 0; + } else { + temp_r28 = 1; + } + HuPrcSleep(30); + HuAudFXPlay(2175); + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28*2)+0], 2); + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28*2)+1], 3); + fn_1_25838(lbl_1_data_168, 0x280025, -1, -1); + fn_1_25584(lbl_1_data_168); + lbl_1_data_168 = -1; + return 1; + } else { + return 0; + } + } else { + temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 93), MEMORY_DEFAULT_NUM)); + temp_r25 = HuSprGrpCreate(temp_r27); + for(temp_r30=temp_r31=0; temp_r30<9; temp_r30++) { + if(sp22[temp_r30] == 0) { + continue; + } + temp_r24 = HuSprCreate(temp_r23, 100, 0); + HuSprGrpMemberSet(temp_r25, temp_r31, temp_r24); + HuSprPosSet(temp_r25, temp_r31, (((temp_r30%3)*56)+288.0f)-56, ((temp_r30/3)*56)+184); + HuSprAttrSet(temp_r25, temp_r31, HUSPR_ATTR_LOOP); + temp_r31++; + } + HuPrcSleep(14); + HuSprGrpKill(temp_r25); + HuAudFXPlay(2175); + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28*2)+0], 0); + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28*2)+1], 1); + fn_1_25838(lbl_1_data_168, 0x280017, -1, -1); + fn_1_25584(lbl_1_data_168); + lbl_1_data_168 = -1; + return 1; + } +} + +void fn_1_17A5C(void) +{ + HuSprGrp *gp = &HuSprGrpData[lbl_1_bss_3A8]; + s16 j; + s16 i; + for(j=0; j<=30; j++) { + float tplvl = 1.0-(j/30.0); + for(i=3; i<12; i++) { + if(gp->members[i] != -1) { + HuSprData[gp->members[i]].a = 255.0f*tplvl; + } + } + HuPrcVSleep(); + } + for(i=0; i<3; i++) { + for(j=0; j<3; j++) { + mgTicTacToeGrid[i][j] = 0; + } + } +} + +void fn_1_17BE0(void) +{ + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + s16 temp_r23; + s16 temp_r22; + s16 temp_r21; + + s16 sp2A[9]; + s16 sp18[9]; + s16 sp8[8]; + for(temp_r26=0; temp_r26<2; temp_r26++) { + for(temp_r31=0; temp_r31<8; temp_r31++) { + temp_r28 = 0; + temp_r25 = -1; + temp_r30 = lbl_1_data_16A[(temp_r31*3)+0]; + if((1 << temp_r26) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r28++; + } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + temp_r25 = temp_r30; + } + temp_r30 = lbl_1_data_16A[(temp_r31*3)+1]; + if((1 << temp_r26) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r28++; + } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + temp_r25 = temp_r30; + } + temp_r30 = lbl_1_data_16A[(temp_r31*3)+2]; + if((1 << temp_r26) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r28++; + } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + temp_r25 = temp_r30; + } + if(temp_r28 == 2 && temp_r25 != -1) { + OSReport("%d:LEACH\n", temp_r26); + lbl_1_bss_3B0[temp_r26] = temp_r25; + break; + } + } + if(temp_r31 != 8) { + continue; + } + if(frandmod(5) != 0) { + temp_r29 = temp_r26^1; + for(temp_r31=0; temp_r31<8; temp_r31++) { + temp_r28 = 0; + temp_r25 = -1; + temp_r30 = lbl_1_data_16A[(temp_r31*3)+0]; + if((1 << temp_r29) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r28++; + } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + temp_r25 = temp_r30; + } + temp_r30 = lbl_1_data_16A[(temp_r31*3)+1]; + if((1 << temp_r29) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r28++; + } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + temp_r25 = temp_r30; + } + temp_r30 = lbl_1_data_16A[(temp_r31*3)+2]; + if((1 << temp_r29) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r28++; + } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + temp_r25 = temp_r30; + } + if(temp_r28 == 2 && temp_r25 != -1) { + lbl_1_bss_3B0[temp_r26] = temp_r25; + break; + } + } + if(temp_r31 != 8) { + continue; + } + } + for(temp_r31=temp_r24=temp_r21=0; temp_r31<9; temp_r31++) { + if((1 << temp_r26) & mgTicTacToeGrid[temp_r31%3][temp_r31/3]) { + sp2A[temp_r24] = temp_r31; + temp_r24++; + } else if((mgTicTacToeGrid[temp_r31%3][temp_r31/3] & 0x3) == 0) { + sp18[temp_r21++] = temp_r31; + } + } + if(temp_r24 == 0) { + OSReport("%d:KOMA None\n", temp_r26); + for(temp_r31=0; temp_r31<50; temp_r31++) { + temp_r30 = lbl_1_data_1AC[frandmod(8)]; + if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + lbl_1_bss_3B0[temp_r26] = temp_r30; + break; + } + } + if(temp_r31 == 50) { + lbl_1_bss_3B0[temp_r26] = sp18[frandmod(temp_r21)]; + } + } else { + for(temp_r22=0; temp_r22<50; temp_r22++) { + temp_r29 = sp2A[frandmod(temp_r24)]; + temp_r27 = 0; + if((temp_r29%3) != 0 && (mgTicTacToeGrid[(temp_r29-1)%3][temp_r29/3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29-1; + } + if((temp_r29%3)!= 2 && (mgTicTacToeGrid[(temp_r29+1)%3][temp_r29/3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29+1; + } + if((temp_r29/3) != 0 && (mgTicTacToeGrid[temp_r29%3][(temp_r29-3)/3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29-3; + } + if((temp_r29/3) != 2 && (mgTicTacToeGrid[temp_r29%3][(temp_r29+3)/3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29+3; + } + if((temp_r29%3) != 0 && (temp_r29/3) != 0 && (mgTicTacToeGrid[(temp_r29-4)%3][(temp_r29-4)/3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29-4; + } + if((temp_r29%3) != 2 && (temp_r29/3) != 0 && (mgTicTacToeGrid[(temp_r29-2)%3][(temp_r29-2)/3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29-2; + } + if((temp_r29%3) != 0 && (temp_r29/3) != 2 && (mgTicTacToeGrid[(temp_r29+2)%3][(temp_r29+2)/3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29+2; + } + if((temp_r29%3) != 2 && (temp_r29/3) != 2 && (mgTicTacToeGrid[(temp_r29+4)%3][(temp_r29+4)/3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29+4; + } + if(temp_r27 != 0) { + temp_r23 = sp8[frandmod(temp_r27)]; + for(temp_r31=0; temp_r31<8; temp_r31++) { + temp_r28 = 0; + if(temp_r29 == lbl_1_data_16A[(temp_r31*3)+0] || temp_r29 == lbl_1_data_16A[(temp_r31*3)+1] || temp_r29 == lbl_1_data_16A[(temp_r31*3)+2]) { + temp_r28++; + } + if(temp_r23 == lbl_1_data_16A[(temp_r31*3)+0] || temp_r23 == lbl_1_data_16A[(temp_r31*3)+1] || temp_r23 == lbl_1_data_16A[(temp_r31*3)+2]) { + temp_r28++; + } + if(temp_r28 == 2) { + for(temp_r28=0; temp_r28<3; temp_r28++) { + if(temp_r29 != lbl_1_data_16A[(temp_r31*3)+temp_r28] && temp_r23 != lbl_1_data_16A[(temp_r31*3)+temp_r28]) { + break; + } + } + temp_r30 = lbl_1_data_16A[(temp_r31*3)+temp_r28]; + if(mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) { + temp_r30 = -1; + } + break; + } + } + if(temp_r31 == 8 || temp_r30 < 0) { + continue; + } + lbl_1_bss_3B0[temp_r26] = temp_r23; + break; + } + } + if(temp_r22 == 50) { + lbl_1_bss_3B0[temp_r26] = sp18[frandmod(temp_r21)]; + } + } + + } + OSReport("com %d,%d\n", lbl_1_bss_3B0[0], lbl_1_bss_3B0[1]); +} \ No newline at end of file From ec4b91a4d4f3108385b97f807db8c3a842becbec Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sun, 11 Aug 2024 10:16:30 -0500 Subject: [PATCH 033/311] Fully match m401dll/main_ex.c --- configure.py | 2 +- include/REL/m401Dll.h | 2 +- src/REL/m401Dll/main_ex.c | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/configure.py b/configure.py index 5afb2ee6..60bc7e7a 100644 --- a/configure.py +++ b/configure.py @@ -826,7 +826,7 @@ config.libs = [ objects={ Object(Matching, "REL/executor.c"), Object(Matching, "REL/m401Dll/main.c"), - Object(NonMatching, "REL/m401Dll/main_ex.c"), + Object(Matching, "REL/m401Dll/main_ex.c"), }, ), Rel( diff --git a/include/REL/m401Dll.h b/include/REL/m401Dll.h index 0f735435..b283cb6c 100644 --- a/include/REL/m401Dll.h +++ b/include/REL/m401Dll.h @@ -72,7 +72,7 @@ void fn_2_1041C(void); void fn_2_10710(void); void fn_2_1079C(void); -omObjData *fn_2_10A88(Vec *arg0, s16 arg1); +omObjData *fn_2_10A88(Vec *arg0, s32 arg1); omObjData *fn_2_141B0(void); omObjData *fn_2_14640(Process *objman); diff --git a/src/REL/m401Dll/main_ex.c b/src/REL/m401Dll/main_ex.c index 90dc47da..5d600e3e 100644 --- a/src/REL/m401Dll/main_ex.c +++ b/src/REL/m401Dll/main_ex.c @@ -160,7 +160,7 @@ void fn_2_1301C(ModelData *model, ParticleData *particle, Mtx matrix); void fn_2_1350C(ModelData *model, ParticleData *particle, Mtx matrix); void fn_2_13B7C(ModelData *model, ParticleData *particle, Mtx matrix); -omObjData *fn_2_10A88(Vec *arg0, s16 arg1) +omObjData *fn_2_10A88(Vec *arg0, s32 arg1) { omObjData *temp_r31; s32 temp_r30; @@ -172,7 +172,7 @@ omObjData *fn_2_10A88(Vec *arg0, s16 arg1) } { s16 temp_r22 = -1; - if (arg1 == 0) { + if ((s16)arg1 == 0) { temp_r22 = 1; } temp_r31 = omAddObjEx(HuPrcCurrentGet(), 0x514, 3, 0, temp_r22, NULL); @@ -187,7 +187,7 @@ omObjData *fn_2_10A88(Vec *arg0, s16 arg1) Hu3DParticleCntSet(temp_r31->model[temp_r30], 0); Hu3DParticleAnimModeSet(temp_r31->model[temp_r30], 0); Hu3DModelLayerSet(temp_r31->model[temp_r30], 1); - if (arg1 == 1) { + if ((s16)arg1 == 1) { temp_r31->unk10 = fn_2_10A08(); Hu3DModelAttrReset(temp_r31->unk10, 1); temp_r28->unk_44 = lbl_2_bss_220[1][temp_r30]; @@ -201,9 +201,9 @@ omObjData *fn_2_10A88(Vec *arg0, s16 arg1) } temp_r27->unk10 = 3; temp_r27->unk12 = temp_r24; - // I am not table to force arg1 to get reloaded without deleting code or serious temporary register allocation issues - (void)arg1; - switch ((temp_r27->unk18 = arg1)) { + temp_r27->unk18 = (s16)arg1; + + switch ((s16)arg1) { case 1: Hu3DModelPosSet(temp_r31->unk10, arg0->x, arg0->y, lbl_2_bss_60.z + arg0->z); From 4876ca62d94d4e6f956bf6fa273820c2a27864b7 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sun, 11 Aug 2024 10:18:39 -0500 Subject: [PATCH 034/311] Cleaner match that should work --- include/REL/m401Dll.h | 2 +- src/REL/m401Dll/main_ex.c | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/include/REL/m401Dll.h b/include/REL/m401Dll.h index b283cb6c..0f735435 100644 --- a/include/REL/m401Dll.h +++ b/include/REL/m401Dll.h @@ -72,7 +72,7 @@ void fn_2_1041C(void); void fn_2_10710(void); void fn_2_1079C(void); -omObjData *fn_2_10A88(Vec *arg0, s32 arg1); +omObjData *fn_2_10A88(Vec *arg0, s16 arg1); omObjData *fn_2_141B0(void); omObjData *fn_2_14640(Process *objman); diff --git a/src/REL/m401Dll/main_ex.c b/src/REL/m401Dll/main_ex.c index 5d600e3e..a21aa209 100644 --- a/src/REL/m401Dll/main_ex.c +++ b/src/REL/m401Dll/main_ex.c @@ -160,7 +160,7 @@ void fn_2_1301C(ModelData *model, ParticleData *particle, Mtx matrix); void fn_2_1350C(ModelData *model, ParticleData *particle, Mtx matrix); void fn_2_13B7C(ModelData *model, ParticleData *particle, Mtx matrix); -omObjData *fn_2_10A88(Vec *arg0, s32 arg1) +omObjData *fn_2_10A88(Vec *arg0, s16 arg1) { omObjData *temp_r31; s32 temp_r30; @@ -172,7 +172,7 @@ omObjData *fn_2_10A88(Vec *arg0, s32 arg1) } { s16 temp_r22 = -1; - if ((s16)arg1 == 0) { + if (arg1 == 0) { temp_r22 = 1; } temp_r31 = omAddObjEx(HuPrcCurrentGet(), 0x514, 3, 0, temp_r22, NULL); @@ -187,7 +187,7 @@ omObjData *fn_2_10A88(Vec *arg0, s32 arg1) Hu3DParticleCntSet(temp_r31->model[temp_r30], 0); Hu3DParticleAnimModeSet(temp_r31->model[temp_r30], 0); Hu3DModelLayerSet(temp_r31->model[temp_r30], 1); - if ((s16)arg1 == 1) { + if (arg1 == 1) { temp_r31->unk10 = fn_2_10A08(); Hu3DModelAttrReset(temp_r31->unk10, 1); temp_r28->unk_44 = lbl_2_bss_220[1][temp_r30]; @@ -201,9 +201,8 @@ omObjData *fn_2_10A88(Vec *arg0, s32 arg1) } temp_r27->unk10 = 3; temp_r27->unk12 = temp_r24; - temp_r27->unk18 = (s16)arg1; - - switch ((s16)arg1) { + temp_r27->unk18 = arg1; + switch (arg1) { case 1: Hu3DModelPosSet(temp_r31->unk10, arg0->x, arg0->y, lbl_2_bss_60.z + arg0->z); From 5e197e2710ad5d68547bc372bb4d51d4bc0dcdb7 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 12 Aug 2024 16:48:29 +0200 Subject: [PATCH 035/311] Fix instDll include guards and add missing ones --- include/REL/instDll.h | 4 ++-- include/REL/m407dll.h | 5 +++++ include/REL/m409Dll.h | 7 ++++++- include/REL/m412Dll.h | 7 ++++++- include/REL/m440Dll.h | 5 +++++ include/REL/m446Dll.h | 5 +++++ include/REL/w03Dll.h | 5 +++++ include/REL/w05Dll.h | 5 +++++ include/REL/w10Dll.h | 7 ++++++- include/msm/msmmem.h | 7 ++++++- 10 files changed, 51 insertions(+), 6 deletions(-) diff --git a/include/REL/instDll.h b/include/REL/instDll.h index e6e09e34..8b00303e 100644 --- a/include/REL/instDll.h +++ b/include/REL/instDll.h @@ -1,5 +1,5 @@ -#ifndef M401DLL_H -#define M401DLL_H +#ifndef INSTDLL_H +#define INSTDLL_H #include "game/minigame_seq.h" diff --git a/include/REL/m407dll.h b/include/REL/m407dll.h index 788ede40..a5dbf0fb 100644 --- a/include/REL/m407dll.h +++ b/include/REL/m407dll.h @@ -1,5 +1,10 @@ +#ifndef M407DLL_H +#define M407DLL_H + #include "game/object.h" #define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) typedef void (*ObjFuncs)(omObjData*); + +#endif diff --git a/include/REL/m409Dll.h b/include/REL/m409Dll.h index d1f5cce2..76459447 100644 --- a/include/REL/m409Dll.h +++ b/include/REL/m409Dll.h @@ -1,3 +1,6 @@ +#ifndef M409DLL_H +#define M409DLL_H + #include "dolphin.h" #include "game/object.h" @@ -362,4 +365,6 @@ void fn_1_F2F8(s16, s16, u8, f32); void fn_1_F370(s16, f32); void fn_1_F408(s16, s16, u8); void fn_1_F478(s16, s16, u8, u8); -void fn_1_F4F0(s16, u8); \ No newline at end of file +void fn_1_F4F0(s16, u8); + +#endif diff --git a/include/REL/m412Dll.h b/include/REL/m412Dll.h index aea02d47..2017123c 100644 --- a/include/REL/m412Dll.h +++ b/include/REL/m412Dll.h @@ -1,3 +1,6 @@ +#ifndef M412DLL_H +#define M412DLL_H + #include "dolphin.h" #include "game/object.h" @@ -113,4 +116,6 @@ void fn_1_A618(ModelData* model, ParticleData* particle, Mtx matrix); //... void fn_1_AA88(ModelData* model, ParticleData* particle, Mtx matrix); // * void fn_1_B160(void); // * -void fn_1_B1C0(void); // * \ No newline at end of file +void fn_1_B1C0(void); // * + +#endif diff --git a/include/REL/m440Dll.h b/include/REL/m440Dll.h index 181ce25b..071bc6a5 100644 --- a/include/REL/m440Dll.h +++ b/include/REL/m440Dll.h @@ -1,3 +1,6 @@ +#ifndef M440DLL_H +#define M440DLL_H + #include "dolphin/types.h" #include "game/hsfman.h" @@ -347,3 +350,5 @@ void fn_1_F228(void); u16 fn_1_F4C0(unkObjStruct*, u16); void fn_1_F4D4(unkObjStruct*, u16, u16); s32 fn_1_F4FC(s32); + +#endif diff --git a/include/REL/m446Dll.h b/include/REL/m446Dll.h index fc1e35ba..1f5a4c6a 100644 --- a/include/REL/m446Dll.h +++ b/include/REL/m446Dll.h @@ -1,3 +1,6 @@ +#ifndef M446DLL_H +#define M446DLL_H + #include "dolphin/types.h" #include "game/process.h" @@ -302,3 +305,5 @@ void fn_1_83F0(unkStruct9*); void fn_1_84AC(unkStruct9*); void fn_1_852C(unkStruct9*); void fn_1_860C(unkStruct9*); + +#endif diff --git a/include/REL/w03Dll.h b/include/REL/w03Dll.h index 36e741d7..022b6894 100644 --- a/include/REL/w03Dll.h +++ b/include/REL/w03Dll.h @@ -1,3 +1,6 @@ +#ifndef REL_W03_H +#define REL_W03_H + #include "game/gamework_data.h" #include "dolphin.h" #include "REL/executor.h" @@ -27,3 +30,5 @@ typedef struct w03State { extern w03State* lbl_1_bss_0; extern s16 lbl_1_bss_C[MAPOBJ_MAX]; + +#endif diff --git a/include/REL/w05Dll.h b/include/REL/w05Dll.h index a326cb65..be7b49db 100644 --- a/include/REL/w05Dll.h +++ b/include/REL/w05Dll.h @@ -1,3 +1,6 @@ +#ifndef REL_W05_H +#define REL_W05_H + #include "dolphin/types.h" #include "game/board/main.h" @@ -222,3 +225,5 @@ extern s32* lbl_1_bss_10; extern s16 lbl_1_bss_8[4]; extern Process* lbl_1_bss_4; extern bitcopy* lbl_1_bss_0; + +#endif diff --git a/include/REL/w10Dll.h b/include/REL/w10Dll.h index f5144a93..93342461 100644 --- a/include/REL/w10Dll.h +++ b/include/REL/w10Dll.h @@ -1,3 +1,6 @@ +#ifndef REL_W10_H +#define REL_W10_H + #include "game/gamework_data.h" #include "dolphin.h" #include "REL/executor.h" @@ -86,4 +89,6 @@ extern s16 tutorialExitWin; extern s16 boardStarHostMdl; extern s16 boardShopHostMdl; extern s16 boardLotteryHostMdl; -extern s16 boardBooHouseHostMdl; \ No newline at end of file +extern s16 boardBooHouseHostMdl; + +#endif diff --git a/include/msm/msmmem.h b/include/msm/msmmem.h index 7deab41a..ca14b0c9 100644 --- a/include/msm/msmmem.h +++ b/include/msm/msmmem.h @@ -1,5 +1,10 @@ +#ifndef MSMMEM_H +#define MSMMEM_H + #include "dolphin/types.h" void msmMemFree(void*); void* msmMemAlloc(s32); -void msmMemInit(void*, u32); \ No newline at end of file +void msmMemInit(void*, u32); + +#endif From 9165ed996ab571f6277745caed2d8e75266a6d91 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Tue, 13 Aug 2024 04:21:34 -0700 Subject: [PATCH 036/311] Matched REL/m445Dll --- config/GMPE01_00/rels/m401Dll/symbols.txt | 174 +- config/GMPE01_00/rels/m445Dll/symbols.txt | 228 +-- configure.py | 2 +- src/REL/m411Dll/main.c | 100 +- src/REL/m412Dll/main.c | 75 +- src/REL/m414Dll/main.c | 94 +- src/REL/m445Dll/main.c | 2055 +++++++++++++++++++++ 7 files changed, 2284 insertions(+), 444 deletions(-) create mode 100755 src/REL/m445Dll/main.c diff --git a/config/GMPE01_00/rels/m401Dll/symbols.txt b/config/GMPE01_00/rels/m401Dll/symbols.txt index 610f18c6..472746d7 100644 --- a/config/GMPE01_00/rels/m401Dll/symbols.txt +++ b/config/GMPE01_00/rels/m401Dll/symbols.txt @@ -338,93 +338,93 @@ lbl_2_rodata_438 = .rodata:0x00000438; // type:object size:0x8 scope:local data: lbl_2_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double lbl_2_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float lbl_2_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float -lbl_2_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_2_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_2_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_2_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_2_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_2_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_2_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double -lbl_2_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_2_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_2_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double -lbl_2_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double -lbl_2_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_2_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_2_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_2_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_2_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_2_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_2_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_2_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_2_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_2_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double -lbl_2_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double -lbl_2_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double -lbl_2_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double -lbl_2_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_2_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_2_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_2_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_2_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_2_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_2_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_2_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_2_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_2_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_2_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_2_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_2_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double -lbl_2_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double -lbl_2_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_2_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_2_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_2_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_2_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_2_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_2_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_2_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_2_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_2_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_2_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_2_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_2_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float -lbl_2_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float -lbl_2_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_2_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float -lbl_2_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double -lbl_2_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_2_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float -lbl_2_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:double -lbl_2_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float -lbl_2_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float -lbl_2_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_2_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float -lbl_2_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float -lbl_2_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float -lbl_2_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_2_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_2_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_2_rodata_590 = .rodata:0x00000590; // type:object size:0x8 data:double -lbl_2_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_2_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float -lbl_2_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float -lbl_2_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float -lbl_2_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_2_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_2_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_2_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_2_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 data:double -lbl_2_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float -lbl_2_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float -lbl_2_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float -lbl_2_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_2_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_2_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float -lbl_2_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float -lbl_2_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float -lbl_2_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_2_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_2_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_2_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_2_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_2_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_2_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_2_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_2_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_2_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_2_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:double +lbl_2_rodata_480 = .rodata:0x00000480; // type:object size:0x8 scope:local data:double +lbl_2_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_2_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_2_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_2_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_2_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 scope:local data:double +lbl_2_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 scope:local data:double +lbl_2_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 scope:local data:double +lbl_2_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 scope:local data:double +lbl_2_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_500 = .rodata:0x00000500; // type:object size:0x8 scope:local data:double +lbl_2_rodata_508 = .rodata:0x00000508; // type:object size:0x8 scope:local data:double +lbl_2_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_2_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_2_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_2_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_2_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_2_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_2_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_2_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_2_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_2_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_2_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_2_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_2_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_550 = .rodata:0x00000550; // type:object size:0x8 scope:local data:double +lbl_2_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_2_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_560 = .rodata:0x00000560; // type:object size:0x8 scope:local data:double +lbl_2_rodata_568 = .rodata:0x00000568; // type:object size:0x4 scope:local data:float +lbl_2_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_2_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +lbl_2_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float +lbl_2_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_2_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_2_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_2_rodata_590 = .rodata:0x00000590; // type:object size:0x8 scope:local data:double +lbl_2_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_2_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 scope:local data:double +lbl_2_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float lbl_2_data_0 = .data:0x00000000; // type:object size:0x4 data:float lbl_2_data_4 = .data:0x00000004; // type:object size:0x10 lbl_2_data_14 = .data:0x00000014; // type:object size:0xC diff --git a/config/GMPE01_00/rels/m445Dll/symbols.txt b/config/GMPE01_00/rels/m445Dll/symbols.txt index 0f826a14..81f152e7 100644 --- a/config/GMPE01_00/rels/m445Dll/symbols.txt +++ b/config/GMPE01_00/rels/m445Dll/symbols.txt @@ -37,132 +37,132 @@ fn_1_89B8 = .text:0x000089B8; // type:function size:0x60 fn_1_8A18 = .text:0x00008A18; // type:function size:0x33C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x40 +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 lbl_1_data_40 = .data:0x00000040; // type:object size:0x20 -lbl_1_data_60 = .data:0x00000060; // type:object size:0x18 -lbl_1_data_78 = .data:0x00000078; // type:object size:0x18 -lbl_1_data_90 = .data:0x00000090; // type:object size:0x40 -lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x40 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x18 data:float +lbl_1_data_78 = .data:0x00000078; // type:object size:0x18 data:float +lbl_1_data_90 = .data:0x00000090; // type:object size:0x40 data:float +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x40 data:float lbl_1_data_110 = .data:0x00000110; // type:object size:0x40 -lbl_1_data_150 = .data:0x00000150; // type:object size:0x12 data:string -lbl_1_data_162 = .data:0x00000162; // type:object size:0x12 data:string -lbl_1_data_174 = .data:0x00000174; // type:object size:0x13 data:string -lbl_1_data_187 = .data:0x00000187; // type:object size:0x13 data:string -lbl_1_data_19A = .data:0x0000019A; // type:object size:0x14 data:string -lbl_1_data_1AE = .data:0x000001AE; // type:object size:0x14 data:string -lbl_1_data_1C2 = .data:0x000001C2; // type:object size:0x10 data:string -lbl_1_data_1D2 = .data:0x000001D2; // type:object size:0x10 data:string -lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0x13 data:string -lbl_1_data_1F5 = .data:0x000001F5; // type:object size:0xF data:string -lbl_1_data_204 = .data:0x00000204; // type:object size:0xE data:string -lbl_1_data_212 = .data:0x00000212; // type:object size:0xE +lbl_1_data_150 = .data:0x00000150; // type:object size:0x12 scope:local data:string +lbl_1_data_162 = .data:0x00000162; // type:object size:0x12 scope:local data:string +lbl_1_data_174 = .data:0x00000174; // type:object size:0x13 scope:local data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x13 scope:local data:string +lbl_1_data_19A = .data:0x0000019A; // type:object size:0x14 scope:local data:string +lbl_1_data_1AE = .data:0x000001AE; // type:object size:0x14 scope:local data:string +lbl_1_data_1C2 = .data:0x000001C2; // type:object size:0x10 scope:local data:string +lbl_1_data_1D2 = .data:0x000001D2; // type:object size:0x10 scope:local data:string +lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0x13 scope:local data:string +lbl_1_data_1F5 = .data:0x000001F5; // type:object size:0xF scope:local data:string +lbl_1_data_204 = .data:0x00000204; // type:object size:0xE scope:local data:string +lbl_1_data_212 = .data:0x00000212; // type:object size:0xC scope:local data:string lbl_1_data_220 = .data:0x00000220; // type:object size:0x40 lbl_1_data_260 = .data:0x00000260; // type:object size:0x20 -lbl_1_data_280 = .data:0x00000280; // type:object size:0xF data:string -lbl_1_data_28F = .data:0x0000028F; // type:object size:0xB data:string +lbl_1_data_280 = .data:0x00000280; // type:object size:0xF scope:local data:string +lbl_1_data_28F = .data:0x0000028F; // type:object size:0xB scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:float lbl_1_bss_14 = .bss:0x00000014; // type:object size:0xC data:float lbl_1_bss_20 = .bss:0x00000020; // type:object size:0xC data:float -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x28 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x230 lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x300 data:2byte -lbl_1_bss_588 = .bss:0x00000588; // type:object size:0x13C data:4byte +lbl_1_bss_588 = .bss:0x00000588; // type:object size:0x138 data:4byte lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x4 data:4byte lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x4 data:4byte lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0xC data:4byte diff --git a/configure.py b/configure.py index 60bc7e7a..2599347a 100644 --- a/configure.py +++ b/configure.py @@ -1182,7 +1182,7 @@ config.libs = [ "m445Dll", # Bowser Bop objects={ Object(Matching, "REL/executor.c"), - Object(NonMatching, "REL/m445Dll/main.c"), + Object(Matching, "REL/m445Dll/main.c"), }, ), Rel( diff --git a/src/REL/m411Dll/main.c b/src/REL/m411Dll/main.c index ec0249a3..c2f5abfd 100755 --- a/src/REL/m411Dll/main.c +++ b/src/REL/m411Dll/main.c @@ -1696,46 +1696,12 @@ void fn_1_5910(void) { s8 fn_1_5D58(s32 arg0, s32 arg1) { UnkBss474Struct* temp_r31; s8 var_r30; - s8 var_r29; - s8 var_r28; temp_r31 = &lbl_1_bss_474[arg0]; if (!GWPlayerCfg[arg0].iscom) { - if (arg1 != 0) { - var_r29 = var_r30 = HuPadStkY[temp_r31->unk3C]; - } else { - var_r29 = var_r30 = HuPadStkX[temp_r31->unk3C]; - } - (void) 1; // Required to match. + (arg1 != 0) ? (var_r30 = HuPadStkY[temp_r31->unk3C]) : (var_r30 = HuPadStkX[temp_r31->unk3C]); } else { - if (arg1 != 0) { - var_r28 = var_r30 = temp_r31->unk255; - } else { - var_r28 = var_r30 = temp_r31->unk254; - } - } - return var_r30; -} - -static inline s8 fn_1_5D58_copy(s32 arg0, s32 arg1) { - UnkBss474Struct* temp_r31; - s8 var_r30; - s8 var_r29; - s8 var_r28; - - temp_r31 = &lbl_1_bss_474[arg0]; - if (!GWPlayerCfg[arg0].iscom) { - if (arg1 != 0) { - var_r30 = HuPadStkY[temp_r31->unk3C]; - } else { - var_r30 = HuPadStkX[temp_r31->unk3C]; - } - } else { - if (arg1 != 0) { - var_r30 = temp_r31->unk255; - } else { - var_r30 = temp_r31->unk254; - } + (arg1 != 0) ? (var_r30 = temp_r31->unk255) : (var_r30 = temp_r31->unk254); } return var_r30; } @@ -1743,47 +1709,12 @@ static inline s8 fn_1_5D58_copy(s32 arg0, s32 arg1) { u8 fn_1_5E10(s32 arg0, s32 arg1) { UnkBss474Struct* temp_r31; s8 var_r30; - s8 var_r29; - s8 var_r28; temp_r31 = &lbl_1_bss_474[arg0]; if (!GWPlayerCfg[arg0].iscom) { - if (arg1 != 0) { - var_r29 = var_r30 = HuPadTrigR[temp_r31->unk3C]; - } else { - var_r29 = var_r30 = HuPadTrigL[temp_r31->unk3C]; - } - (void) 1; // Required to match. + (arg1 != 0) ? (var_r30 = HuPadTrigR[temp_r31->unk3C]) : (var_r30 = HuPadTrigL[temp_r31->unk3C]); } else { - if (arg1 != 0) { - var_r28 = var_r30 = temp_r31->unk256; - } else { - var_r28 = var_r30 = temp_r31->unk257; - } - } - return var_r30; -} - - -static inline u8 fn_1_5E10_copy(s32 arg0, s32 arg1) { - UnkBss474Struct* temp_r31; - s8 var_r30; - s8 var_r29; - s8 var_r28; - - temp_r31 = &lbl_1_bss_474[arg0]; - if (!GWPlayerCfg[arg0].iscom) { - if (arg1 != 0) { - var_r30 = HuPadTrigR[temp_r31->unk3C]; - } else { - var_r30 = HuPadTrigL[temp_r31->unk3C]; - } - } else { - if (arg1 != 0) { - var_r30 = temp_r31->unk256; - } else { - var_r30 = temp_r31->unk257; - } + (arg1 != 0) ? (var_r30 = temp_r31->unk256) : (var_r30 = temp_r31->unk257); } return var_r30; } @@ -1793,10 +1724,6 @@ u16 fn_1_5ED0(s32 arg0) { u16 var_r30; temp_r31 = &lbl_1_bss_474[arg0]; - (void)temp_r31; - (void)temp_r31; - (void)temp_r31; - (void)temp_r31; if (!GWPlayerCfg[arg0].iscom) { var_r30 = HuPadBtnDown[temp_r31->unk3C]; } else { @@ -2214,7 +2141,7 @@ void fn_1_7680(void) { static inline void m411InlineFunc(UnkBss474Struct* temp_r31, UnkBss474DoublyInnerStruct6C* temp_r30) { Vec sp74; - Vec sp80; + Vec sp80; float var_f22; float var_f23; @@ -2340,10 +2267,10 @@ void fn_1_7738(void) { } if (sp70 == 0) { var_r23 = -1; - if (fn_1_5E10_copy(temp_r31->unk34, 0) > 20) { + if (fn_1_5E10(temp_r31->unk34, 0) > 20) { var_r23 = 1; } - if (fn_1_5E10_copy(temp_r31->unk34, 1) > 20) { + if (fn_1_5E10(temp_r31->unk34, 1) > 20) { var_r23 = 0; } if (var_r23 != -1) { @@ -2355,10 +2282,6 @@ void fn_1_7738(void) { spA4.unk08 = var_r23; spA4.unk0C = &sp70; } - (void)var_r23; - (void)var_r23; - (void)var_r23; - (void)var_r23; } if ((fn_1_5ED0(temp_r31->unk34) & 0x100) && sp70 == 0) { if (0.0f == temp_r30->unk14) { @@ -2378,10 +2301,10 @@ void fn_1_7738(void) { fn_1_6428(temp_r31, temp_r26); } temp_r31->unk60 = -1.0f; - if (SOME_MACRO(fn_1_5D58_copy(temp_r31->unk34, 0)) != 0 - || SOME_MACRO(fn_1_5D58_copy(temp_r31->unk34, 1)) != 0) + if (SOME_MACRO(fn_1_5D58(temp_r31->unk34, 0)) != 0 + || SOME_MACRO(fn_1_5D58(temp_r31->unk34, 1)) != 0) { - temp_r31->unk60 = atan2d(fn_1_5D58_copy(temp_r31->unk34, 0), fn_1_5D58_copy(temp_r31->unk34, 1)); + temp_r31->unk60 = atan2d(fn_1_5D58(temp_r31->unk34, 0), fn_1_5D58(temp_r31->unk34, 1)); } if (-1.0f != temp_r31->unk60) { temp_r30->unk00 += 5 * sind(temp_r31->unk60); @@ -2398,9 +2321,6 @@ void fn_1_7738(void) { while (TRUE) { HuPrcVSleep(); } - (void) var_r24; - (void) var_r24; - (void) var_r24; } void fn_1_8A80(float arg0, float arg1) { diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c index 3c6cf951..edea5f01 100644 --- a/src/REL/m412Dll/main.c +++ b/src/REL/m412Dll/main.c @@ -1106,28 +1106,14 @@ loop_1: s8 fn_1_4BE4(s32 arg0, s32 arg1) { s8 var_r30; - s8 var_r29; - s8 var_r28; unkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_4D4[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { - if (arg1 != 0) { - var_r29 = var_r30 = HuPadStkY[temp_r31->unk2C]; - } - else { - var_r29 = var_r30 = HuPadStkX[temp_r31->unk2C]; - } - - (void)var_r30; // used to make the else branch go here instead of returning + (arg1 != 0) ? (var_r30 = HuPadStkY[temp_r31->unk2C]) : (var_r30 = HuPadStkX[temp_r31->unk2C]); } else { - if (arg1 != 0) { - var_r28 = var_r30 = temp_r31->unk89; - } - else { - var_r28 = var_r30 = temp_r31->unk88; - } + (arg1 != 0) ? (var_r30 = temp_r31->unk89) : (var_r30 = temp_r31->unk88); } return var_r30; } @@ -1142,22 +1128,13 @@ void fn_1_4C9C(Vec *arg0, f32 arg8, f32 arg9) arg0->z = (temp_f29 * cosd(arg8)); } -static inline f32 unkInline(void) -{ - return 1.0f; // huh? -} - s8 fn_1_4E58(s32 arg0, s32 arg1) { Vec spC; - f32 sp8; f32 temp_f28; - f32 temp_f27; s8 var_r30; s8 temp_r29; s8 temp_r28; - s8 var_r27; - s8 var_r26; unkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_4D4[arg0]; @@ -1167,40 +1144,19 @@ s8 fn_1_4E58(s32 arg0, s32 arg1) temp_f28 = fn_1_1D08(atan2d(temp_r29, temp_r28)); temp_f28 -= lbl_1_bss_778; HuSetVecF(&spC, (f32)temp_r29, 0.0, (f32)temp_r28); - temp_f27 = sqrtf((spC.x * spC.x) + (spC.z * spC.z)); - temp_f27 *= unkInline(); - spC.x = (temp_f27 * sind(temp_f28)); - spC.z = (temp_f27 * cosd(temp_f28)); - if (arg1 != 0) { - var_r27 = var_r30 = spC.z; - } - else { - var_r27 = var_r30 = spC.x; - } - - (void)var_r30; // used to make the else branch go here instead of returning - } - else if (arg1 != 0) { - var_r26 = var_r30 = temp_r31->unk89; + fn_1_4C9C(&spC, temp_f28, 1.0f); + (arg1 != 0) ? (var_r30 = spC.z) : (var_r30 = spC.x); } else { - var_r26 = var_r30 = temp_r31->unk88; + (arg1 != 0) ? (var_r30 = temp_r31->unk89) : (var_r30 = temp_r31->unk88); } return var_r30; } -static inline void DummyInline2(Vec *arg0, float arg1, float arg2) -{ - arg1 *= unkInline(); - arg0->x = (arg1 * sind(arg2)); - arg0->z = (arg1 * cosd(arg2)); -} - static inline s8 fn_1_4E58_0(s32 arg0) { Vec spC; float temp; - f32 sp8; f32 temp_f28; f32 temp_f27; s8 var_r30; @@ -1216,7 +1172,7 @@ static inline s8 fn_1_4E58_0(s32 arg0) temp_f28 = fn_1_1D08(atan2d(temp_r29, temp_r28)); temp_f28 -= lbl_1_bss_778; HuSetVecF(&spC, (f32)temp_r29, 0.0, (f32)temp_r28); - DummyInline2(&spC, sqrtf((spC.x * spC.x) + (spC.z * spC.z)), temp_f28); + fn_1_4C9C(&spC, temp_f28, 1.0f); var_r30 = spC.x; } else { @@ -1229,7 +1185,6 @@ static inline s8 fn_1_4E58_1(s32 arg0) { Vec spC; float temp; - f32 sp8; f32 temp_f28; f32 temp_f27; s8 var_r30; @@ -1245,7 +1200,7 @@ static inline s8 fn_1_4E58_1(s32 arg0) temp_f28 = fn_1_1D08(atan2d(temp_r29, temp_r28)); temp_f28 -= lbl_1_bss_778; HuSetVecF(&spC, (f32)temp_r29, 0.0, (f32)temp_r28); - DummyInline2(&spC, sqrtf((spC.x * spC.x) + (spC.z * spC.z)), temp_f28); + fn_1_4C9C(&spC, temp_f28, 1.0f); var_r30 = spC.z; } else { @@ -1257,26 +1212,14 @@ static inline s8 fn_1_4E58_1(s32 arg0) u8 fn_1_525C(s32 arg0, s32 arg1) { s8 var_r30; - s8 var_r29; - s8 var_r28; unkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_4D4[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { - if (arg1 != 0) { - var_r29 = var_r30 = HuPadTrigR[temp_r31->unk2C]; - } - else { - var_r29 = var_r30 = HuPadTrigL[temp_r31->unk2C]; - } - - (void)var_r30; // used to make the else branch go here instead of returning - } - else if (arg1 != 0) { - var_r28 = var_r30 = temp_r31->unk8A; + (arg1 != 0) ? (var_r30 = HuPadTrigR[temp_r31->unk2C]) : (var_r30 = HuPadTrigL[temp_r31->unk2C]); } else { - var_r28 = var_r30 = temp_r31->unk8B; + (arg1 != 0) ? (var_r30 = temp_r31->unk8A) : (var_r30 = temp_r31->unk8B); } return var_r30; } diff --git a/src/REL/m414Dll/main.c b/src/REL/m414Dll/main.c index b3484695..777e8458 100644 --- a/src/REL/m414Dll/main.c +++ b/src/REL/m414Dll/main.c @@ -313,8 +313,6 @@ void fn_1_CD8(s32 arg0, s32 arg1, float arg8) var_r31->unk_00 = arg0; var_r31->unk_04 = arg1; var_r31->unk_08 = arg8; - (void)var_r31; - (void)var_r31; } void fn_1_D54(ModelData *arg0, ParticleData *arg1, Mtx arg2, s32 arg3) @@ -1389,50 +1387,14 @@ s8 fn_1_5554(s32 arg0, s32 arg1) // similar to m411Dll/main.c::fn_1_5D58 { UnkM414BssF0Struct *var_r31; s8 var_r30; - s8 var_r29; - s8 var_r28; var_r31 = &lbl_1_bss_F0[arg0]; var_r30 = 0; if (lbl_1_bss_98C < 4) { if (!GWPlayerCfg[arg0].iscom) { - if (arg1) { - var_r30 = HuPadStkY[var_r31->unk_4C]; - var_r29 = var_r30; - } else { - var_r30 = HuPadStkX[var_r31->unk_4C]; - var_r29 = var_r30; - } - (void)var_r31; - } else if (arg1) { - var_r30 = var_r31->unk_1FD; - var_r28 = var_r30; + (arg1) ? (var_r30 = HuPadStkY[var_r31->unk_4C]) : (var_r30 = HuPadStkX[var_r31->unk_4C]); } else { - var_r30 = var_r31->unk_1FC; - var_r28 = var_r30; - } - } - return var_r30; -} - - -static inline s8 fn_1_5554_inline(s32 arg0, s32 arg1) // similar to m411Dll/main.c::fn_1_5D58 -{ - UnkM414BssF0Struct *var_r31; - s8 var_r30; - var_r31 = &lbl_1_bss_F0[arg0]; - var_r30 = 0; - if (lbl_1_bss_98C < 4) { - if (!GWPlayerCfg[arg0].iscom) { - if (arg1) { - var_r30 = HuPadStkY[var_r31->unk_4C]; - } else { - var_r30 = HuPadStkX[var_r31->unk_4C]; - } - } else if (arg1) { - var_r30 = var_r31->unk_1FD; - } else { - var_r30 = var_r31->unk_1FC; + (arg1) ? (var_r30 = var_r31->unk_1FD) : (var_r30 = var_r31->unk_1FC); } } return var_r30; @@ -1442,46 +1404,14 @@ u8 fn_1_5624(s32 arg0, s32 arg1) { UnkM414BssF0Struct *var_r31; s8 var_r30; - s8 var_r29; - s8 var_r28; var_r31 = &lbl_1_bss_F0[arg0]; var_r30 = 0; if (lbl_1_bss_98C < 4) { if (!GWPlayerCfg[arg0].iscom) { - if (arg1) { - var_r29 = var_r30 = HuPadTrigR[var_r31->unk_4C]; - } else { - var_r29 = var_r30 = HuPadTrigL[var_r31->unk_4C]; - } - (void)var_r31; - } else if (arg1) { - var_r28 = var_r30 = var_r31->unk_1FE; + (arg1) ? (var_r30 = HuPadTrigR[var_r31->unk_4C]) : (var_r30 = HuPadTrigL[var_r31->unk_4C]); } else { - var_r28 = var_r30 = var_r31->unk_1FF; - } - } - return var_r30; -} - -static inline u8 fn_1_5624_inline(s32 arg0, s32 arg1) -{ - UnkM414BssF0Struct *var_r31; - s8 var_r30; - - var_r31 = &lbl_1_bss_F0[arg0]; - var_r30 = 0; - if (lbl_1_bss_98C < 4) { - if (!GWPlayerCfg[arg0].iscom) { - if (arg1) { - var_r30 = HuPadTrigR[var_r31->unk_4C]; - } else { - var_r30 = HuPadTrigL[var_r31->unk_4C]; - } - } else if (arg1) { - var_r30 = var_r31->unk_1FE; - } else { - var_r30 = var_r31->unk_1FF; + (arg1) ? (var_r30 = var_r31->unk_1FE) : (var_r30 = var_r31->unk_1FF); } } return var_r30; @@ -1501,10 +1431,6 @@ u16 fn_1_56FC(s32 arg0) var_r30 = var_r31->unk_200; } } - (void)var_r31; - (void)var_r31; - (void)var_r31; - (void)var_r31; return var_r30; } @@ -1738,8 +1664,6 @@ s32 fn_1_654C(s32 arg0, s32 arg1) if (var_r31 >= 16) { var_r31 = -1; } - (void)var_r31; - (void)var_r31; return var_r31; } @@ -1911,7 +1835,7 @@ void fn_1_6644(void) } } } - if (fn_1_5554_inline(var_r31->unk_44, 1) > 20 && (var_r31->unk_1F4 == 2 || var_r31->unk_1F4 == 0)) { // wrong + if (fn_1_5554(var_r31->unk_44, 1) > 20 && (var_r31->unk_1F4 == 2 || var_r31->unk_1F4 == 0)) { Hu3DModelAttrReset(var_r31->unk_20, 0x40000002); Hu3DModelAttrSet(var_r31->unk_20, 0x40000004); var_r31->unk_1F4 = 3; @@ -1919,7 +1843,7 @@ void fn_1_6644(void) Hu3DModelAttrSet(var_r31->unk_12, 0x40000004); Hu3DMotionSpeedSet(var_r31->unk_12, 2.0f); } - if (fn_1_5554_inline(var_r31->unk_44, 1) < -20 && (var_r31->unk_1F4 == 1 || var_r31->unk_1F4 == 0)) { // wrong + if (fn_1_5554(var_r31->unk_44, 1) < -20 && (var_r31->unk_1F4 == 1 || var_r31->unk_1F4 == 0)) { Hu3DModelAttrReset(var_r31->unk_20, 0x40000006); var_r31->unk_1F4 = 3; Hu3DModelAttrReset(var_r31->unk_12, 0x40000006); @@ -1927,10 +1851,10 @@ void fn_1_6644(void) } if (!var_r31->unk_58) { var_r28 = -1; - if (fn_1_5624_inline(var_r31->unk_44, 0) > 20 && var_r28 == -1) { // wrong + if (fn_1_5624(var_r31->unk_44, 0) > 20 && var_r28 == -1) { var_r28 = 1; } - if (fn_1_5624_inline(var_r31->unk_44, 1) > 20 && var_r28 == -1) { // wrong + if (fn_1_5624(var_r31->unk_44, 1) > 20 && var_r28 == -1) { var_r28 = 0; } if (var_r28 != -1) { @@ -1955,8 +1879,6 @@ void fn_1_6644(void) var_r30->user_data = &sp9C; sp9C.unk_00 = var_r31; sp9C.unk_04 = var_r28; - (void)var_r28; - (void)var_r28; } } var_r31->unk_60 = 37.0 * sind(var_r31->unk_70); diff --git a/src/REL/m445Dll/main.c b/src/REL/m445Dll/main.c new file mode 100755 index 00000000..481fed04 --- /dev/null +++ b/src/REL/m445Dll/main.c @@ -0,0 +1,2055 @@ +#include "REL/executor.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/mapspace.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "dolphin.h" +#include "ext_math.h" +#include "rel_sqrt_consts.h" + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02[3]; + /* 0x08 */ char unk08[4]; + /* 0x0C */ s16 unk0C; + /* 0x0E */ s16 unk0E; + /* 0x10 */ s16 unk10; + /* 0x12 */ char unk12[2]; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20[2]; + /* 0x28 */ s32 unk28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s32 unk30; + /* 0x34 */ s32 unk34; + /* 0x38 */ s32 unk38; + /* 0x3C */ s32 unk3C; + /* 0x40 */ s32 unk40; + /* 0x44 */ s32 unk44; + /* 0x48 */ float unk48; + /* 0x4C */ float unk4C; + /* 0x50 */ float unk50[2]; + /* 0x58 */ float unk58[2]; +} UnkM445Struct_00; // Size 0x60 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06; + /* 0x08 */ s16 unk08[16]; + /* 0x28 */ s16 unk28; + /* 0x2A */ char unk2A[2]; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s32 unk30; + /* 0x34 */ s32 unk34; +} UnkM445Struct_01; // Size 0x38 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06; + /* 0x08 */ s16 unk08[8]; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ s32 unk28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s32 unk30; + /* 0x34 */ float unk34; + /* 0x38 */ float unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ float unk40; + /* 0x44 */ float unk44; + /* 0x48 */ float unk48; + /* 0x4C */ float unk4C; + /* 0x50 */ float unk50; + /* 0x54 */ float unk54; + /* 0x58 */ float unk58; + /* 0x5C */ float unk5C; + /* 0x60 */ float unk60; + /* 0x64 */ char unk64[0xC]; + /* 0x70 */ Vec unk70; + /* 0x7C */ s8 unk7C; + /* 0x7D */ s8 unk7D; + /* 0x7E */ s8 unk7E; + /* 0x7F */ s8 unk7F; + /* 0x80 */ u16 unk80; + /* 0x82 */ u16 unk82; + /* 0x84 */ float unk84; + /* 0x88 */ float unk88; + /* 0x8C */ char unk8C[4]; + /* 0x90 */ s32 unk90; + /* 0x94 */ char unk94[4]; + /* 0x98 */ s32 unk98; +} UnkM445Struct_02; // Size 0x9C + +typedef struct { + /* 0x00 */ char unk00[0x18]; + /* 0x18 */ float unk18; + /* 0x1C */ char unk1C[4]; + /* 0x20 */ float unk20; +} UnkM445Struct_03; // Size unknown + +typedef struct { + /* 0x00 */ UnkM445Struct_03* unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; +} UnkM445Struct_04; // Size unknown + +void ObjectSetup(void); +void fn_1_4B8(float arg0, float arg1, s32 arg2); +void fn_1_50C(omObjData* arg0); +void fn_1_510(omObjData* arg0); +BOOL fn_1_520(s32 arg0); +void fn_1_550(void); +float fn_1_1858(float arg0); +UnkM445Struct_01* fn_1_18D8(void); +void fn_1_1934(void); +void fn_1_1968(void); +s32 fn_1_1AD0(s32 arg0); +void fn_1_1B0C(void); +void fn_1_1C64(void); +s8 fn_1_2BF4(s32 arg0, s32 arg1); +void fn_1_2CAC(Vec* arg0, float arg1, float arg2); +s8 fn_1_2E68(s32 arg0, s32 arg1); +u8 fn_1_2F38(s32 arg0, s32 arg1); +u16 fn_1_3010(s32 arg0); +u16 fn_1_3094(s32 arg0); +s32 fn_1_3114(UnkM445Struct_02* arg0, float arg1, float arg2, float arg3); +s32 fn_1_3334(UnkM445Struct_02* arg0, s32* arg1); +void fn_1_3548(UnkM445Struct_02* arg0); +float fn_1_42A0(float arg0, float arg1, float arg2); +BOOL fn_1_43A4(UnkM445Struct_02* arg0, float arg1, float arg2); +void fn_1_45D0(UnkM445Struct_02* arg0); +void fn_1_557C(void); +void fn_1_55F0(void); +void fn_1_5664(UnkM445Struct_02* arg0, s32 arg1); +void fn_1_5700(UnkM445Struct_02* arg0); +void fn_1_6268(void); +void fn_1_7FC0(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_8320(void); +void fn_1_8938(void); +void fn_1_89B8(void); +void fn_1_8A18(void); + +s16 lbl_1_bss_6E6; +char lbl_1_bss_6E4_pad[2]; // Unused. +s16 lbl_1_bss_6E2; +s16 lbl_1_bss_6E0; +s32 lbl_1_bss_6DC; +s32 lbl_1_bss_6D8; +s32 lbl_1_bss_6CC[3]; +s32 lbl_1_bss_6C8; +s32 lbl_1_bss_6C4; +char lbl_1_bss_6C0_pad[4]; // Unused. +UnkM445Struct_02 lbl_1_bss_588[2]; +UnkM445Struct_00 lbl_1_bss_288[8]; +UnkM445Struct_01 lbl_1_bss_58[10]; +Process* lbl_1_bss_54; +char lbl_1_bss_30_pad[0x24]; // Unused. +omObjData* lbl_1_bss_2C; +Vec lbl_1_bss_20; +Vec lbl_1_bss_14; +Vec lbl_1_bss_8; +s32 lbl_1_bss_4; +float lbl_1_bss_0; + +s32 lbl_1_data_0[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; + +// Unused. +s32 lbl_1_data_20[] = { + DATADIR_MARIOMOT, + DATADIR_LUIGIMOT, + DATADIR_PEACHMOT, + DATADIR_YOSHIMOT, + DATADIR_WARIOMOT, + DATADIR_DONKEYMOT, + DATADIR_DAISYMOT, + DATADIR_WALUIGIMOT +}; + +s32 lbl_1_data_40[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_M445, 0), + DATA_MAKE_NUM(DATADIR_M445, 8), + DATA_MAKE_NUM(DATADIR_M445, 16), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) +}; + +Vec lbl_1_data_60[] = { + { -100.0f, 75.0f, 60.0f }, + { 100.0f, 75.0f, -60.0f } +}; + +Vec lbl_1_data_78[] = { + { 0.0f, 0.0f, -79.5f }, + { 180.0f, 0.0f, -100.5f } +}; + +float lbl_1_data_90[][2] = { + { 471.0f, 280.0f }, + { -461.5f, 299.5f }, + { 271.7f, -482.6f }, + { -373.1f, -457.1f }, + { 462.8f, -128.5f }, + { 0.0f, -495.4f }, + { -40.8f, 632.3f }, + { -477.7f, -110.0f } +}; + +float lbl_1_data_D0[][2] = { + { 467.0f, 393.0f }, + { -461.5f, 395.5f }, + { 367.7f, -492.1f }, + { -268.9f, -467.0f }, + { 462.8f, -128.5f }, + { 0.0f, -495.4f }, + { -40.8f, 632.3f }, + { -477.7f, -110.0f } +}; + +s32 lbl_1_data_110[][2] = { + { 360, 306 }, + { -360, 341 }, + { 326, -360 }, + { -326, -360 }, + { 321, -122 }, + { 0, -332 }, + { -50, 500 }, + { -334, -110 } +}; + +char* lbl_1_data_220[][2] = { + { "tansu_w_itemhook1" , "tansu_w_itemhook2" }, + { "sidebord_itemhook1" , "sidebord_itemhook2" }, + { "pinkshelf_itemhook1", "pinkshelf_itemhook2" }, + { "green_itemhook1" , "green_itemhook2" }, + { "bookshelf_itemhook" , "bookshelf_itemhook" }, + { "clock_itemhook" , "clock_itemhook" }, + { "book_itemhook" , "book_itemhook" }, + { "tv_itemhook" , "tv_itemhook" } +}; + +s32 lbl_1_data_260[] = { 2, 2, 2, 2, 1, 1, 1, 1 }; + +void ObjectSetup(void) { + lbl_1_bss_54 = omInitObjMan(50, 0x2000); + omGameSysInit(lbl_1_bss_54); + HuWinInit(1); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 40.0f, 20.0f, 25000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 640, 480); + lbl_1_bss_2C = omAddObjEx(lbl_1_bss_54, 32730, 0, 0, -1, omOutViewMulti); + lbl_1_bss_2C->work[0] = 1; + CRotM[0].x = -12.5f; + CRotM[0].y = 0.0f; + CRotM[0].z = 0.0f; + CenterM[0].x = 0.0f; + CenterM[0].y = 345.0f; + CenterM[0].z = -250.0f; + CZoomM[0] = 520.0f; + Hu3DLighInit(); + lbl_1_bss_6E6 = Hu3DGLightCreate(10000.0f, 0.0f, 10000.0f, -1.0f, 0.0f, -1.0f, 0xFF, 0xFF, 0xFF); + Hu3DGLightPosAimSet(lbl_1_bss_6E6, 0.0f, 4330.13f, 2500.0f, 0.0f, 0.0f, 0.0f); + Hu3DGLightInfinitytSet(lbl_1_bss_6E6); + lbl_1_bss_20.x = -200.0f; + lbl_1_bss_20.y = 4000.0f; + lbl_1_bss_20.z = 0.0f; + lbl_1_bss_14.x = lbl_1_bss_14.z = 0.0f; + lbl_1_bss_14.y = 1.0f; + lbl_1_bss_8.x = 0.0f; + lbl_1_bss_8.y = 0.0f; + lbl_1_bss_8.z = 0.0f; + Hu3DShadowCreate(30.0f, 20.0f, 10000.0f); + Hu3DShadowTPLvlSet(0.3f); + Hu3DShadowPosSet(&lbl_1_bss_20, &lbl_1_bss_14, &lbl_1_bss_8); + Hu3DBGColorSet(0, 0, 0); + fn_1_550(); + HuPrcChildCreate(fn_1_8A18, 0x1000, 0x2000, 0, HuPrcCurrentGet()); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); +} + +void fn_1_4B8(float arg0, float arg1, s32 arg2) { + Vec sp14; + + sp14.x = arg0; + sp14.y = 0.0f; + sp14.z = arg1; + HuAudFXEmiterPlay(arg2, &sp14); +} + +void fn_1_50C(omObjData* arg0) { +} + +void fn_1_510(omObjData* arg0) { + arg0->func = fn_1_50C; +} + +BOOL fn_1_520(s32 arg0) { + return (GWPlayerCfg[arg0].character == 9); +} + +void fn_1_550(void) { + float var_f31; + float var_f30; + float var_f29; + UnkM445Struct_00* temp_r26; + UnkM445Struct_01* temp_r25; + UnkM445Struct_02* temp_r31; + omObjData* temp_r24; + Process* var_r22; + AnimData* var_r20; + AnimData* sp38[4]; + void* var_r29; + s16 var_r30; + s32 var_r23; + s32 var_r21; + Vec sp2C; + Vec sp20; + s32 i; + s32 j; + + nMap = 0; + HuAudSndGrpSet(0x47); + sp2C.x = 0.0f; + sp2C.y = 998.0f; + sp2C.z = 1551.0f; + sp20.x = 0.0f; + sp20.y = -0.5f; + sp20.z = -1.0f; + HuAudFXListnerSetEX(&sp2C, &sp20, 10000.0f, 0.5666667f, 0.0f, 300.0f, 300.0f); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 24), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + Hu3DModelLayerSet(var_r30, 0); + Hu3DModelShadowMapSet(var_r30); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 25), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + Hu3DModelAttrSet(var_r30, 1); + temp_r24 = omAddObjEx(lbl_1_bss_54, 0x100, 1, 0, -1, fn_1_510); + MapObject[nMap++] = temp_r24; + temp_r24->model[0] = var_r30; + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 26), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + Hu3DModelLayerSet(var_r30, 0); + Hu3DModelShadowSet(var_r30); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 27), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + Hu3DModelLayerSet(var_r30, 0); + Hu3DModelShadowMapSet(var_r30); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 28), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + Hu3DModelAttrSet(var_r30, 1); + temp_r24 = omAddObjEx(lbl_1_bss_54, 0x100, 1, 0, -1, fn_1_510); + MapObject[nMap++] = temp_r24; + temp_r24->model[0] = var_r30; + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 100), MEMORY_DEFAULT_NUM, HEAP_DATA); + lbl_1_bss_6E0 = Hu3DModelCreate(var_r29); + Hu3DModelAttrSet(lbl_1_bss_6E0, 1); + for (i = 0; i < 8; i++) { + temp_r26 = &lbl_1_bss_288[i]; + temp_r26->unk14 = i; + temp_r26->unk30 = 0; + var_r23 = DATA_MAKE_NUM(DATADIR_M445, 38 + i * 5); + var_r29 = HuDataSelHeapReadNum(var_r23, MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + temp_r26->unk00 = var_r30; + for (j = 0, var_r23++; j < 3; j++) { + var_r29 = HuDataSelHeapReadNum(var_r23++, MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r26->unk02[j] = Hu3DJointMotion(var_r30, var_r29); + } + Hu3DModelShadowSet(var_r30); + Hu3DMotionSet(var_r30, temp_r26->unk02[0]); + Hu3DModelAttrSet(var_r30, 0x40000001); + temp_r26->unk48 = lbl_1_data_110[i][0]; + temp_r26->unk4C = lbl_1_data_110[i][1]; + temp_r26->unk50[0] = lbl_1_data_90[i][0]; + temp_r26->unk58[0] = lbl_1_data_90[i][1]; + temp_r26->unk50[1] = lbl_1_data_D0[i][0]; + temp_r26->unk58[1] = lbl_1_data_D0[i][1]; + if (i == 5) { + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 81), MEMORY_DEFAULT_NUM, HEAP_DATA); + lbl_1_bss_6E2 = Hu3DJointMotion(var_r30, var_r29); + Hu3DMotionSet(var_r30, lbl_1_bss_6E2); + Hu3DMotionTimeSet(var_r30, 61.0f); + Hu3DModelAttrSet(var_r30, 0x40000002); + } + if (i == 6) { + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 78), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r26->unk0E = Hu3DJointMotion(var_r30, var_r29); + } + if (i == 7) { + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 79), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r26->unk0E = Hu3DJointMotion(var_r30, var_r29); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 80), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r26->unk10 = Hu3DJointMotion(var_r30, var_r29); + } + temp_r26->unk18 = nMap; + var_r29 = HuDataSelHeapReadNum(var_r23, MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + Hu3DModelAttrSet(var_r30, 1); + temp_r24 = MapObject[nMap++] = omAddObjEx(lbl_1_bss_54, 0x100, 1, 0, -1, fn_1_510); + temp_r24->model[0] = var_r30; + temp_r24->trans.x = temp_r26->unk48; + temp_r24->trans.y = 0.0f; + temp_r24->trans.z = temp_r26->unk4C; + var_r22 = HuPrcChildCreate(fn_1_1C64, 0x2000, 0x2000, 0, HuPrcCurrentGet()); + var_r22->user_data = temp_r26; + } + HuPrcChildCreate(fn_1_1B0C, 0x2000, 0x2000, 0, HuPrcCurrentGet()); + for (i = 0; i < 10; i++) { + temp_r25 = &lbl_1_bss_58[i]; + temp_r25->unk2C = i; + temp_r25->unk30 = -1; + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 82), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + temp_r25->unk00 = var_r30; + for (j = 0; j < 4; j++) { + var_r29 = HuDataSelHeapReadNum(j + DATA_MAKE_NUM(DATADIR_M445, 83), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r25->unk08[j] = Hu3DJointMotion(var_r30, var_r29); + } + Hu3DModelAttrSet(var_r30, 1); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 82), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + temp_r25->unk04 = var_r30; + for (j = 0; j < 4; j++) { + var_r29 = HuDataSelHeapReadNum(j + DATA_MAKE_NUM(DATADIR_M445, 87), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r25->unk08[j + 4] = Hu3DJointMotion(var_r30, var_r29); + } + Hu3DModelAttrSet(var_r30, 1); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 91), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + temp_r25->unk02 = var_r30; + for (j = 0; j < 4; j++) { + var_r29 = HuDataSelHeapReadNum(j + DATA_MAKE_NUM(DATADIR_M445, 92), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r25->unk08[j + 8] = Hu3DJointMotion(var_r30, var_r29); + } + Hu3DModelAttrSet(var_r30, 1); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 91), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + temp_r25->unk06 = var_r30; + for (j = 0; j < 4; j++) { + var_r29 = HuDataSelHeapReadNum(j + DATA_MAKE_NUM(DATADIR_M445, 96), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r25->unk08[j + 12] = Hu3DJointMotion(var_r30, var_r29); + } + Hu3DModelAttrSet(var_r30, 1); + } + for (i = 0; i < 2; i++) { + temp_r31 = &lbl_1_bss_588[i]; + temp_r31->unk18 = i; + temp_r31->unk1C = i; + temp_r31->unk20 = GWPlayerCfg[i].pad_idx; + if (fn_1_520(temp_r31->unk18) == FALSE) { + temp_r31->unk00 = CharModelCreate(lbl_1_data_0[GWPlayerCfg[i].character], 2); + } else { + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 29), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk00 = Hu3DModelCreate(var_r29); + } + Hu3DModelLayerSet(temp_r31->unk00, 0); + CharModelStepTypeSet(lbl_1_data_0[GWPlayerCfg[i].character], 1); + CharModelLayerSetAll(3); + temp_r31->unk48 = temp_r31->unk50 = 0.0f; + if (i != 0) { + var_f31 = temp_r31->unk4C = fn_1_1858(-90.0f); + } else { + temp_r31->unk4C = var_f31 = 90.0f; + } + temp_r31->unk60 = temp_r31->unk4C; + if (i != 0) { + var_f30 = temp_r31->unk34 = 160.0f; + } else { + var_f30 = temp_r31->unk34 = -160.0f; + } + temp_r31->unk38 = 0.0f; + if (i != 0) { + var_f29 = temp_r31->unk3C = -45.0f; + } else { + var_f29 = temp_r31->unk3C = 45.0f; + } + temp_r31->unk54 = 50.0f; + temp_r31->unk5C = temp_r31->unk58 = 0.0f; + HuSetVecF(&temp_r31->unk70, 0.0, 0.0, 0.0); + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk34, temp_r31->unk38, temp_r31->unk3C); + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk48, temp_r31->unk4C, temp_r31->unk50); + Hu3DModelShadowSet(temp_r31->unk00); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 37), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + temp_r31->unk06 = var_r30; + Hu3DModelLayerSet(var_r30, 0); + Hu3DModelShadowSet(var_r30); + Hu3DModelPosSet(var_r30, lbl_1_data_60[i].x, lbl_1_data_60[i].y, lbl_1_data_60[i].z); + Hu3DModelRotSet(var_r30, lbl_1_data_78[i].x, lbl_1_data_78[i].y, lbl_1_data_78[i].z); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 101), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + temp_r31->unk02 = var_r30; + Hu3DMotionSpeedSet(var_r30, 1.4f); + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, 1); + if (fn_1_520(temp_r31->unk18) == FALSE) { + for (j = 0; j < 8; j++) { + var_r21 = lbl_1_data_40[j]; + if ((var_r21 & ~0xFFFF) == DATADIR_M445) { + var_r21 += GWPlayerCfg[i].character; + } + temp_r31->unk08[j] = CharModelMotionCreate(lbl_1_data_0[GWPlayerCfg[i].character], var_r21); + } + CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[i].character], temp_r31->unk08[0]); + } else { + for (j = 0; j < 7; j++) { + var_r29 = HuDataSelHeapReadNum(j + DATA_MAKE_NUM(DATADIR_M445, 30), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk08[j] = Hu3DJointMotion(temp_r31->unk00, var_r29); + } + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk08[0]); + CharModelEffectNpcInit(temp_r31->unk00, temp_r31->unk08[1], 0, 9); + CharModelEffectNpcInit(temp_r31->unk00, temp_r31->unk08[2], 1, 9); + } + Hu3DModelAttrSet(temp_r31->unk00, 0x40000001); + if (i == 0) { + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 22), MEMORY_DEFAULT_NUM, HEAP_DATA); + sp38[0] = HuSprAnimRead(var_r29); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 23), MEMORY_DEFAULT_NUM, HEAP_DATA); + sp38[1] = HuSprAnimRead(var_r29); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 51), MEMORY_DEFAULT_NUM, HEAP_DATA); + sp38[3] = HuSprAnimRead(var_r29); + } + if (fn_1_520(temp_r31->unk18) == FALSE) { + var_r29 = HuDataSelHeapReadNum(GWPlayerCfg[i].character + DATADIR_MGCONST, MEMORY_DEFAULT_NUM, HEAP_DATA); + } else { + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 102), MEMORY_DEFAULT_NUM, HEAP_DATA); + } + sp38[2] = HuSprAnimRead(var_r29); + temp_r31->unk04 = HuSprGrpCreate(5); + var_r30 = HuSprCreate(sp38[0], 0x1000, 0); + HuSprGrpMemberSet(temp_r31->unk04, 0, var_r30); + HuSprPosSet(temp_r31->unk04, 0, 0.0f, 0.0f); + var_r30 = HuSprCreate(sp38[1], 0x1001, 0); + HuSprGrpMemberSet(temp_r31->unk04, 1, var_r30); + HuSprPosSet(temp_r31->unk04, 1, 0.0f, 0.0f); + HuSprTPLvlSet(temp_r31->unk04, 1, 0.5f); + HuSprColorSet(temp_r31->unk04, 1, 0, 0, 0); + var_r30 = HuSprCreate(sp38[2], 0x1000, 0); + HuSprGrpMemberSet(temp_r31->unk04, 2, var_r30); + HuSprPosSet(temp_r31->unk04, 2, -36.0f, -2.0f); + var_r30 = HuSprCreate(sp38[3], 0x1000, 0); + HuSprGrpMemberSet(temp_r31->unk04, 3, var_r30); + HuSprPosSet(temp_r31->unk04, 3, 16.0f, 2.0f); + var_r30 = HuSprCreate(sp38[3], 0x1000, 0); + HuSprGrpMemberSet(temp_r31->unk04, 4, var_r30); + HuSprPosSet(temp_r31->unk04, 4, -4.0f, 2.0f); + HuSprAttrSet(temp_r31->unk04, 4, 4); + HuSprGrpPosSet(temp_r31->unk04, i * 438 + 73, 61.0f); + temp_r31->unk30 = 0; + fn_1_5664(temp_r31, temp_r31->unk30); + fn_1_55F0(); + CharModelMotionDataClose(lbl_1_data_0[GWPlayerCfg[i].character]); + var_r22 = HuPrcChildCreate(fn_1_6268, 0x2000, 0x3000, 0, HuPrcCurrentGet()); + var_r22->user_data = temp_r31; + } + var_r20 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 3), MEMORY_DEFAULT_NUM)); + var_r30 = Hu3DParticleCreate(var_r20, 3); + Hu3DModelPosSet(var_r30, 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(var_r30, 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(var_r30, 4); + Hu3DParticleColSet(var_r30, 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(var_r30, 0.0f); + Hu3DParticleHookSet(var_r30, fn_1_7FC0); + HuDataDirClose(DATADIR_EFFECT); + lbl_1_bss_6C8 = 0; + lbl_1_bss_6CC[0] = frandmod(25); + lbl_1_bss_6CC[1] = frandmod(25) + 30; + lbl_1_bss_6CC[2] = 1000; + HuPrcChildCreate(fn_1_89B8, 0x1000, 0x1000, 0, HuPrcCurrentGet()); +} + +float fn_1_1858(float arg0) { + while (arg0 >= 360.0f || arg0 < 0.0f) { + if (arg0 >= 360.0f) { + arg0 -= 360.0f; + } + if (arg0 < 0.0f) { + arg0 += 360.0f; + } + } + return arg0; +} + +UnkM445Struct_01* fn_1_18D8(void) { + UnkM445Struct_01* var_r30; + s32 i; + + for (i = 0; i < 10; i++) { + var_r30 = &lbl_1_bss_58[i]; + if (var_r30->unk30 == -1) { + break; + } + } + if (i >= 10) { + var_r30 = NULL; + } + return var_r30; +} + +void fn_1_1934(void) { + UnkM445Struct_04* var_r31; + + var_r31 = HuPrcCurrentGet()->user_data; + HuMemDirectFree(var_r31); +} + +void fn_1_1968(void) { + float var_f31; + float var_f30; + UnkM445Struct_04* temp_r31; + s32 i; + + temp_r31 = HuPrcCurrentGet()->user_data; + HuPrcDestructorSet(fn_1_1934); + switch (temp_r31->unk04) { + case 0: + var_f31 = -140.0f / temp_r31->unk0C; + var_f30 = 0.0f / temp_r31->unk0C; + break; + default: + var_f31 = 0.0f; + var_f30 = 0.0f; + break; + } + for (i = temp_r31->unk0C; i != 0; i--) { + temp_r31->unk00->unk18 += var_f31; + temp_r31->unk00->unk20 += var_f30; + HuPrcVSleep(); + } + while (temp_r31->unk08 == 0) { + HuPrcVSleep(); + } + for (i = temp_r31->unk0C; i != 0; i--) { + temp_r31->unk00->unk18 -= var_f31; + temp_r31->unk00->unk20 -= var_f30; + HuPrcVSleep(); + } + HuPrcKill(HuPrcCurrentGet()); + while (TRUE) { + HuPrcVSleep(); + } +} + +s32 fn_1_1AD0(s32 arg0) { + s32 var_r31; + + if (arg0 < 20) { + var_r31 = 3; + } else if (arg0 < 40) { + var_r31 = 4; + } else { + var_r31 = 5; + } + return var_r31; +} + +void fn_1_1B0C(void) { + UnkM445Struct_00* temp_r30; + s32 spC; + s32 sp8; + s32 var_r29; + s32 var_r28; + s32 i; + + spC = -1; + sp8 = 0; + while (lbl_1_bss_6DC < 3) { + HuPrcVSleep(); + } + while (TRUE) { + if (lbl_1_bss_6DC >= 4) { + break; + } + for (i = 0, var_r28 = 0; i < 8; i++) { + temp_r30 = &lbl_1_bss_288[i]; + if (temp_r30->unk34 != 0) { + var_r28++; + } + } + if (var_r28 < fn_1_1AD0(lbl_1_bss_6D8 / 60)) { + var_r29 = frandmod(8) + 1; + i = 0; + while (TRUE) { + temp_r30 = &lbl_1_bss_288[i]; + if (temp_r30->unk34 == 0) { + var_r29--; + } + if (var_r29 == 0) { + break; + } + i++; + if (i >= 8) { + i = 0; + } + } + temp_r30->unk34 = 1; + HuPrcSleep(60); + } + HuPrcVSleep(); + } + HuPrcKill(HuPrcCurrentGet()); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_1C64(void) { + UnkM445Struct_00* temp_r31; + UnkM445Struct_01* var_r25; + UnkM445Struct_01* var_r29; + s32 var_r23; + s32 var_r26; + + temp_r31 = HuPrcCurrentGet()->user_data; + temp_r31->unk1C = 0; + temp_r31->unk34 = 0; + while (TRUE) { + while (temp_r31->unk34 == 0) { + HuPrcVSleep(); + } + temp_r31->unk20[0] = temp_r31->unk20[1] = 0; + temp_r31->unk0C = 0; + if (temp_r31->unk14 == 5 || temp_r31->unk14 == 7) { + temp_r31->unk0C = 4; + } + var_r25 = fn_1_18D8(); + var_r25->unk30 = temp_r31->unk14; + var_r25->unk34 = 0; + temp_r31->unk3C = var_r25->unk2C; + temp_r31->unk40 = -1; + if (lbl_1_bss_6CC[lbl_1_bss_6C8] < lbl_1_bss_6D8 / 60) { + temp_r31->unk38 = 1; + if (lbl_1_data_260[temp_r31->unk14] == 1) { + lbl_1_bss_6C8++; + } + if (temp_r31->unk14 == 5 || temp_r31->unk14 == 7) { + var_r25->unk28 = var_r25->unk04; + } else { + var_r25->unk28 = var_r25->unk00; + } + } else { + temp_r31->unk38 = 0; + if (temp_r31->unk14 == 5 || temp_r31->unk14 == 7) { + var_r25->unk28 = var_r25->unk06; + } else { + var_r25->unk28 = var_r25->unk02; + } + temp_r31->unk0C += 8; + } + Hu3DModelAttrReset(var_r25->unk28, 1); + Hu3DModelHookSet(temp_r31->unk00, lbl_1_data_220[temp_r31->unk14][0], var_r25->unk28); + Hu3DMotionSet(var_r25->unk28, var_r25->unk08[temp_r31->unk0C]); + if (lbl_1_data_260[temp_r31->unk14] > 1) { + var_r29 = fn_1_18D8(); + var_r29->unk30 = temp_r31->unk14; + var_r29->unk34 = 0; + temp_r31->unk40 = var_r29->unk2C; + if (lbl_1_bss_6CC[lbl_1_bss_6C8] < lbl_1_bss_6D8 / 60) { + lbl_1_bss_6C8++; + if (temp_r31->unk14 == 5 || temp_r31->unk14 == 7) { + var_r29->unk28 = var_r29->unk04; + } else { + var_r29->unk28 = var_r29->unk00; + } + } else { + if (temp_r31->unk14 == 5 || temp_r31->unk14 == 7) { + var_r29->unk28 = var_r29->unk06; + } else { + var_r29->unk28 = var_r29->unk02; + } + } + Hu3DModelAttrReset(var_r29->unk28, 1); + Hu3DModelHookSet(temp_r31->unk00, lbl_1_data_220[temp_r31->unk14][1], var_r29->unk28); + Hu3DMotionSet(var_r29->unk28, var_r29->unk08[temp_r31->unk0C]); + } + temp_r31->unk1C = 1; + temp_r31->unk44 = 0; + switch (temp_r31->unk14) { + case 0: + case 1: + case 3: + fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x751); + break; + case 6: + fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x753); + break; + default: + fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x752); + break; + } + if (temp_r31->unk14 == 7 && temp_r31->unk38 == 0) { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk0E); + } else { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk02[1]); + } + Hu3DModelAttrReset(temp_r31->unk00, 0x40000005); + while (!Hu3DMotionEndCheck(temp_r31->unk00)) { + temp_r31->unk44++; + HuPrcVSleep(); + } + if (lbl_1_bss_6DC >= 4) { + break; + } + if (temp_r31->unk14 == 7 && temp_r31->unk38 == 0) { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk10); + } else if (temp_r31->unk14 == 6 && temp_r31->unk38 == 0) { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk0E); + } else { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk02[2]); + } + var_r23 = 150; + Hu3DMotionSet(var_r25->unk28, var_r25->unk08[temp_r31->unk0C + 1]); + Hu3DModelAttrSet(var_r25->unk28, 0x40000002); + if (temp_r31->unk14 == 6) { + HuPrcSleep(12); + Hu3DModelAttrReset(var_r25->unk28, 0x40000006); + if (temp_r31->unk38 != 0) { + fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x758); + } else { + fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x757); + } + } + if (temp_r31->unk14 == 7) { + HuPrcSleep(11); + Hu3DModelAttrReset(var_r25->unk28, 0x40000006); + fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x754); + Hu3DModelAttrReset(lbl_1_bss_6E0, 1); + Hu3DMotionTimeSet(lbl_1_bss_6E0, 0.0f); + } + while (!Hu3DMotionEndCheck(temp_r31->unk00)) { + temp_r31->unk44++; + HuPrcVSleep(); + } + if (temp_r31->unk14 != 6) { + if (temp_r31->unk38 != 0) { + fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x758); + } else { + fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x757); + } + Hu3DModelAttrReset(var_r25->unk28, 0x40000006); + if (lbl_1_data_260[temp_r31->unk14] > 1) { + Hu3DMotionSet(var_r29->unk28, var_r29->unk08[temp_r31->unk0C + 1]); + Hu3DModelAttrReset(var_r29->unk28, 0x40000006); + } + } + while (!Hu3DMotionEndCheck(var_r25->unk28)) { + HuPrcVSleep(); + } + var_r25->unk34 = 1; + Hu3DMotionSet(var_r25->unk28, var_r25->unk08[temp_r31->unk0C + 2]); + Hu3DModelAttrSet(var_r25->unk28, 0x40000001); + if (lbl_1_data_260[temp_r31->unk14] > 1) { + var_r29->unk34 = 1; + Hu3DMotionSet(var_r29->unk28, var_r29->unk08[temp_r31->unk0C + 2]); + Hu3DModelAttrSet(var_r29->unk28, 0x40000001); + } + temp_r31->unk1C = 2; + var_r26 = var_r23; + while (TRUE) { + if (temp_r31->unk20[0] == 1) { + temp_r31->unk20[0] = 2; + Hu3DMotionSet(var_r25->unk28, var_r25->unk08[temp_r31->unk0C + 3]); + Hu3DModelAttrReset(var_r25->unk28, 0x40000001); + if (temp_r31->unk38 != 0) { + if (temp_r31->unk28 != 0) { + fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x75C); + } else { + fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x75A); + } + } else { + if (temp_r31->unk28 != 0) { + fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x75B); + } else { + fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x759); + } + } + } + if (temp_r31->unk20[1] == 1) { + temp_r31->unk20[1] = 2; + Hu3DMotionSet(var_r29->unk28, var_r29->unk08[temp_r31->unk0C + 3]); + Hu3DModelAttrReset(var_r29->unk28, 0x40000001); + if (temp_r31->unk38 != 0) { + if (temp_r31->unk2C != 0) { + fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x75C); + } else { + fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x75A); + } + } else { + if (temp_r31->unk2C != 0) { + fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x75B); + } else { + fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x759); + } + } + } + if (temp_r31->unk14 == 6 && temp_r31->unk20[0] == 2 && Hu3DMotionTimeGet(var_r25->unk28) == 12.0f) { + break; + } + if (lbl_1_data_260[temp_r31->unk14] > 1) { + if (var_r26 <= 0) { + break; + } + if (Hu3DMotionEndCheck(var_r25->unk28) && Hu3DMotionEndCheck(var_r29->unk28)) { + break; + } + } else { + if (var_r26 <= 0) { + break; + } + if (Hu3DMotionEndCheck(var_r25->unk28)) { + break; + } + } + HuPrcVSleep(); + var_r26--; + } + temp_r31->unk1C = 0; + var_r25->unk34 = 0; + if (temp_r31->unk14 != 6) { + if (temp_r31->unk20[0] == 0) { + Hu3DMotionSet(var_r25->unk28, var_r25->unk08[temp_r31->unk0C + 1]); + Hu3DMotionTimeSet(var_r25->unk28, Hu3DMotionMaxTimeGet(var_r25->unk28)); + Hu3DMotionSpeedSet(var_r25->unk28, 2.0f); + Hu3DModelAttrSet(var_r25->unk28, 0x40000004); + Hu3DModelAttrReset(var_r25->unk28, 0x40000001); + } + if (lbl_1_data_260[temp_r31->unk14] > 1 && temp_r31->unk20[1] == 0) { + var_r29->unk34 = 0; + Hu3DMotionSet(var_r29->unk28, var_r29->unk08[temp_r31->unk0C + 1]); + Hu3DMotionTimeSet(var_r29->unk28, Hu3DMotionMaxTimeGet(var_r29->unk28)); + Hu3DMotionSpeedSet(var_r29->unk28, 2.0f); + Hu3DModelAttrSet(var_r29->unk28, 0x40000004); + Hu3DModelAttrReset(var_r29->unk28, 0x40000001); + } + if (lbl_1_data_260[temp_r31->unk14] > 1) { + while (!Hu3DMotionEndCheck(var_r25->unk28) || !Hu3DMotionEndCheck(var_r29->unk28)) { + HuPrcVSleep(); + } + } else { + while (!Hu3DMotionEndCheck(var_r25->unk28)) { + HuPrcVSleep(); + } + } + } + Hu3DMotionSpeedSet(var_r25->unk28, 1.0f); + if (lbl_1_data_260[temp_r31->unk14] > 1) { + Hu3DMotionSpeedSet(var_r29->unk28, 1.0f); + } + Hu3DModelAttrSet(temp_r31->unk00, 0x40000004); + if (temp_r31->unk14 == 6 && temp_r31->unk20[0] == 0) { + HuPrcSleep(26); + Hu3DMotionSet(var_r25->unk28, var_r25->unk08[temp_r31->unk0C + 1]); + Hu3DMotionTimeSet(var_r25->unk28, Hu3DMotionMaxTimeGet(var_r25->unk28)); + Hu3DMotionSpeedSet(var_r25->unk28, 2.0f); + Hu3DModelAttrSet(var_r25->unk28, 0x40000004); + Hu3DModelAttrReset(var_r25->unk28, 0x40000001); + } + while (!Hu3DMotionEndCheck(temp_r31->unk00)) { + HuPrcVSleep(); + } + var_r25->unk30 = -1; + Hu3DModelAttrSet(var_r25->unk28, 1); + if (lbl_1_data_260[temp_r31->unk14] > 1) { + var_r29->unk30 = -1; + Hu3DModelAttrSet(var_r29->unk28, 1); + } + Hu3DModelHookReset(temp_r31->unk00); + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk02[0]); + Hu3DModelAttrSet(temp_r31->unk00, 0x40000001); + temp_r31->unk34 = 0; + HuPrcVSleep(); + } +} + +// identical to m411Dll/main.c::fn_1_5D58 +s8 fn_1_2BF4(s32 arg0, s32 arg1) { + UnkM445Struct_02* temp_r31; + s8 var_r30; + + temp_r31 = &lbl_1_bss_588[arg0]; + if (!GWPlayerCfg[arg0].iscom) { + (arg1 != 0) ? (var_r30 = HuPadStkY[temp_r31->unk20]) : (var_r30 = HuPadStkX[temp_r31->unk20]); + } else { + (arg1 != 0) ? (var_r30 = temp_r31->unk7D) : (var_r30 = temp_r31->unk7C); + } + return var_r30; +} + +void fn_1_2CAC(Vec* arg0, float arg1, float arg2) { + float temp_f29; + + temp_f29 = sqrtf(arg0->x * arg0->x + arg0->z * arg0->z); + temp_f29 *= arg2; + arg0->x = temp_f29 * sind(arg1); + arg0->z = temp_f29 * cosd(arg1); +} + +// similar to m414Dll/main.c::fn_1_5554 +// TODO: update other files (m414 and m411). +s8 fn_1_2E68(s32 arg0, s32 arg1) { + UnkM445Struct_02* temp_r31; + s8 var_r30; + + temp_r31 = &lbl_1_bss_588[arg0]; + var_r30 = 0; + if (!GWPlayerCfg[arg0].iscom && lbl_1_bss_6DC < 4) { + (arg1 != 0) ? (var_r30 = HuPadStkY[temp_r31->unk20]) : (var_r30 = HuPadStkX[temp_r31->unk20]); + } else { + (arg1 != 0) ? (var_r30 = temp_r31->unk7D) : (var_r30 = temp_r31->unk7C); + } + return var_r30; +} + +u8 fn_1_2F38(s32 arg0, s32 arg1) { + UnkM445Struct_02* temp_r31; + s8 var_r30; + + temp_r31 = &lbl_1_bss_588[arg0]; + var_r30 = 0; + if (lbl_1_bss_6DC < 4) { + if (!GWPlayerCfg[arg0].iscom) { + (arg1 != 0) ? (var_r30 = HuPadTrigR[temp_r31->unk20]) : (var_r30 = HuPadTrigL[temp_r31->unk20]); + } else { + (arg1 != 0) ? (var_r30 = temp_r31->unk7E) : (var_r30 = temp_r31->unk7F); + } + } + return var_r30; +} + +u16 fn_1_3010(s32 arg0) { + UnkM445Struct_02* temp_r31; + u16 var_r30; + + temp_r31 = &lbl_1_bss_588[arg0]; + var_r30 = 0; + if (lbl_1_bss_6DC < 4) { + if (!GWPlayerCfg[arg0].iscom) { + var_r30 = HuPadBtnDown[temp_r31->unk20]; + } else { + var_r30 = temp_r31->unk82; + } + } + return var_r30; +} + +u16 fn_1_3094(s32 arg0) { + UnkM445Struct_02* temp_r31; + u16 var_r30; + + temp_r31 = &lbl_1_bss_588[arg0]; + if (lbl_1_bss_6DC < 4) { + if (!GWPlayerCfg[arg0].iscom) { + var_r30 = HuPadBtn[temp_r31->unk20]; + } else { + var_r30 = temp_r31->unk80; + } + } + return var_r30; +} + +s32 fn_1_3114(UnkM445Struct_02* arg0, float arg1, float arg2, float arg3) { + Vec sp30; + Vec sp24; + Vec sp18; + s32 var_r28; + float var_f27; + float var_f28; + UnkM445Struct_02* temp_r31; + s32 i; + + var_r28 = -1; + for (i = 0, var_f28 = 10000.0f; i < 2; i++) { + if (i == arg0->unk18) { + continue; + } + temp_r31 = &lbl_1_bss_588[i]; + HuSetVecF(&sp30, arg1, arg2, arg3); + HuSetVecF(&sp24, temp_r31->unk34, temp_r31->unk38, temp_r31->unk3C); + HuSubVecF(&sp18, &sp30, &sp24); + if ((var_f27 = sqrtf(sp18.x * sp18.x + sp18.y * sp18.y + sp18.z * sp18.z)) < arg0->unk54 + temp_r31->unk54 && var_f27 < var_f28) { + var_f28 = var_f27; + var_r28 = i; + } + } + return var_r28; +} + +s32 fn_1_3334(UnkM445Struct_02* arg0, s32* arg1) { + Vec sp30; + Vec sp24; + Vec sp18; + float var_f27; + float var_f28; + UnkM445Struct_02* temp_r31; + s32 var_r27; + s32 var_r28; + s32 i; + + var_r27 = -1; + for (i = 0, var_f28 = 10000.0f, var_r28 = 0; i < 2; i++) { + if (i == arg0->unk18) { + continue; + } + temp_r31 = &lbl_1_bss_588[i]; + HuSetVecF(&sp30, arg0->unk34, arg0->unk38, arg0->unk3C); + HuSetVecF(&sp24, temp_r31->unk34, temp_r31->unk38, temp_r31->unk3C); + HuSubVecF(&sp18, &sp30, &sp24); + if ((var_f27 = sqrtf(sp18.x * sp18.x + sp18.y * sp18.y + sp18.z * sp18.z)) < arg0->unk54 + temp_r31->unk54) { + var_r28++; + if (var_f27 < var_f28) { + var_f28 = var_f27; + var_r27 = i; + } + } + } + *arg1 = var_r28; + return var_r27; +} + +void fn_1_3548(UnkM445Struct_02* arg0) { + Vec spA8; + Vec sp9C; + Vec sp90; + s32 sp68; + s32 var_r25; + s32 temp_r24; + float sp64; + float sp60; + float sp5C; + float sp58; + float sp54; + float sp50; + float sp4C; + float var_f20; + float var_f27; + float var_f26; + float var_f25; + UnkM445Struct_02* var_r30; + UnkM445Struct_02* temp_r27; + s32 i; + + temp_r24 = fn_1_3334(arg0, &sp68); + if (temp_r24 == -1) { + return; + } + var_f20 = fn_1_1858(atan2d(arg0->unk34 - arg0->unk40, arg0->unk3C - arg0->unk44)); + sp58 = var_f27 = arg0->unk40; + sp54 = var_f26 = arg0->unk44; + sp4C = 1.0f; + var_r25 = 1.0f + 10.0f / sp4C; + while (var_r25 != 0) { + var_f27 += sp4C * sind(var_f20); + var_f26 += sp4C * cosd(var_f20); + HuSetVecF(&spA8, var_f27, arg0->unk38, var_f26); + for (i = 0; i < 2; i++) { + if (i != arg0->unk18) { + var_r30 = &lbl_1_bss_588[i]; + HuSetVecF(&sp9C, var_r30->unk34, var_r30->unk38, var_r30->unk3C); + HuSubVecF(&sp90, &spA8, &sp9C); + if (sqrtf(sp90.x * sp90.x + sp90.y * sp90.y + sp90.z * sp90.z) < arg0->unk54 + var_r30->unk54) { + break; + } + } + } + if (i < 2) { + break; + } + AddX = 0.0f; + AddZ = 0.0f; + MapWall(arg0->unk54, var_f27, arg0->unk38 + arg0->unk54, var_f26); + if (AddX + AddZ != 0.0f) { + goto block_end; + } + sp58 = var_f27; + sp54 = var_f26; + var_r25--; + } + var_f20 = fn_1_1858(atan2d(arg0->unk34 - arg0->unk40, arg0->unk3C - arg0->unk44)); + var_f25 = fn_1_1858(atan2d(var_r30->unk34 - arg0->unk40, var_r30->unk3C - arg0->unk44)); + sp60 = var_f20 - var_f25; + if (sp60 > 0.0f) { + sp5C = -0.5f; + } else { + sp5C = 0.5f; + } + if (ABS_INV(var_f20 - var_f25) > 180.0f) { + sp5C = -sp5C; + } + var_f25 = fn_1_1858(atan2d(arg0->unk40 - var_r30->unk34, arg0->unk44 - var_r30->unk3C)); + sp50 = 0.8f * arg0->unk58; + temp_r24 = var_r30->unk18; + sp64 = arg0->unk54 + var_r30->unk54 + 1.0f; + while (TRUE) { + var_f27 = var_r30->unk34 + sp64 * sind(var_f25); + var_f26 = var_r30->unk3C + sp64 * cosd(var_f25); + HuSetVecF(&spA8, var_f27, 0.0, var_f26); + for (i = 0; i < 2; i++) { + if (i != arg0->unk18 && i != temp_r24) { + temp_r27 = &lbl_1_bss_588[i]; + HuSetVecF(&sp9C, temp_r27->unk34, 0.0, temp_r27->unk3C); + HuSubVecF(&sp90, &spA8, &sp9C); + if (sqrtf(sp90.x * sp90.x + sp90.z * sp90.z) < arg0->unk54 + temp_r27->unk54) { + break; + } + } + } + if (i < 2) { + break; + } + AddX = 0.0f; + AddZ = 0.0f; + MapWall(arg0->unk54, var_f27, arg0->unk38 + arg0->unk54, var_f26); + if (AddX + AddZ >= 5.0f) { + break; + } + sp58 = var_f27; + sp54 = var_f26; + HuSetVecF(&spA8, arg0->unk40, 0.0, arg0->unk44); + HuSetVecF(&sp9C, var_f27, 0.0, var_f26); + HuSubVecF(&sp90, &spA8, &sp9C); + if (sqrtf(sp90.x * sp90.x + sp90.z * sp90.z) > sp50) { + break; + } + var_f25 += sp5C; + } +block_end: + arg0->unk34 = sp58; + arg0->unk3C = sp54; +} + +float fn_1_42A0(float arg0, float arg1, float arg2) { + float var_f31; + float var_f30; + + var_f31 = fmod(arg1 - arg0, 360.0); + if (0.0f > var_f31) { + var_f31 += 360.0f; + } + if (180.0f < var_f31) { + var_f31 -= 360.0f; + } + var_f30 = fmod(arg0 + var_f31 * arg2, 360.0); + if (0.0f > var_f30) { + var_f30 += 360.0f; + } + return var_f30; +} + +BOOL fn_1_43A4(UnkM445Struct_02* arg0, float arg1, float arg2) { + Vec sp2C; + Vec sp20; + Vec sp14; + BOOL var_r30; + + var_r30 = FALSE; + HuSetVecF(&sp2C, arg0->unk34 + 120.0 * sind(arg0->unk4C), 0.0, arg0->unk3C + 120.0 * cosd(arg0->unk4C)); + HuSetVecF(&sp20, arg1, 0.0, arg2); + HuSubVecF(&sp14, &sp2C, &sp20); + if (sqrtf(sp14.x * sp14.x + sp14.z * sp14.z) < 80.0f) { + var_r30 = TRUE; + } + return var_r30; +} + +void fn_1_45D0(UnkM445Struct_02* arg0) { + Vec spC8; + Vec spBC; + Vec spB0; + float sp64; + float sp60; + float sp5C; + float sp58; + float sp54; + float var_f24; + UnkM445Struct_00* temp_r30; + UnkM445Struct_02* var_r28; + u32 var_r27; + s32 i; + + arg0->unk7C = arg0->unk7D = 0; + arg0->unk7F = arg0->unk7E = 0; + arg0->unk80 = arg0->unk82 = 0; + if (arg0->unk18 != 0) { + var_r28 = &lbl_1_bss_588[0]; + } else { + var_r28 = &lbl_1_bss_588[1]; + } + switch (GWPlayerCfg[arg0->unk18].diff) { + case 0: + var_r27 = 90; + sp58 = 90.0f; + sp54 = 0.4f; + break; + case 1: + var_r27 = 95; + sp58 = 60.0f; + sp54 = 0.6f; + break; + case 2: + var_r27 = 99; + sp58 = 30.0f; + sp54 = 0.8f; + break; + default: + var_r27 = 100; + sp58 = 10.0f; + sp54 = 1.0f; + break; + } + for (i = 0, sp5C = 10000.0f; i < 8; i++) { + temp_r30 = &lbl_1_bss_288[i]; + if (temp_r30->unk1C >= 1 && !(temp_r30->unk44 < sp58)) { + HuSetVecF(&spC8, arg0->unk34, 0.0, arg0->unk3C); + HuSetVecF(&spBC, temp_r30->unk48, 0.0, temp_r30->unk4C); + HuSubVecF(&spB0, &spC8, &spBC); + var_f24 = sqrtf(spB0.x * spB0.x + spB0.z * spB0.z); + sp60 = sqrtf(arg0->unk34 * arg0->unk34 + arg0->unk3C * arg0->unk3C); + if (sp60 < 200.0f) { + sp60 = 400.0f; + } else { + sp60 = 600.0f; + } + if (sp5C > var_f24 && var_f24 < sp60) { + HuSetVecF(&spC8, var_r28->unk34, 0.0, var_r28->unk3C); + HuSetVecF(&spBC, temp_r30->unk48, 0.0, temp_r30->unk4C); + HuSubVecF(&spB0, &spC8, &spBC); + if (sqrtf(spB0.x * spB0.x + spB0.z * spB0.z) > 50.0f) { + arg0->unk98 = i; + sp5C = var_f24; + } + } + } + } + if (arg0->unk98 == -1) { + for (i = 0, sp5C = 10000.0f; i < 8; i++) { + temp_r30 = &lbl_1_bss_288[i]; + HuSetVecF(&spC8, arg0->unk34, 0.0, arg0->unk3C); + HuSetVecF(&spBC, temp_r30->unk48, 0.0, temp_r30->unk4C); + HuSubVecF(&spB0, &spC8, &spBC); + var_f24 = sqrtf(spB0.x * spB0.x + spB0.z * spB0.z); + if (sp5C > var_f24 && var_f24 > 200.0f) { + arg0->unk98 = i; + sp5C = var_f24; + sp54 = 0.3f; + } + } + } + if (arg0->unk98 != -1) { + temp_r30 = &lbl_1_bss_288[arg0->unk98]; + arg0->unk84 = temp_r30->unk48; + arg0->unk88 = temp_r30->unk4C; + HuSetVecF(&spC8, arg0->unk34, 0.0, arg0->unk3C); + HuSetVecF(&spBC, arg0->unk84, 0.0, arg0->unk88); + HuSubVecF(&spB0, &spC8, &spBC); + var_f24 = sqrtf(spB0.x * spB0.x + spB0.z * spB0.z); + if (var_f24 > 20.0f) { + sp64 = atan2d(arg0->unk84 - arg0->unk34, arg0->unk88 - arg0->unk3C); + arg0->unk7C = 50.0 * sind(sp64) * sp54; + arg0->unk7D = -50.0 * cosd(sp64) * sp54; + } else { + if (temp_r30->unk1C == 2) { + for (i = 0; i < lbl_1_data_260[temp_r30->unk14]; i++) { + if (temp_r30->unk20[i] == 0) { + sp64 = atan2d(temp_r30->unk50[i] - arg0->unk34, temp_r30->unk58[i] - arg0->unk3C); + arg0->unk7C = 15.0 * sind(sp64); + arg0->unk7D = -15.0 * cosd(sp64); + } + } + } + if (frandmod(100) > var_r27) { + arg0->unk82 |= 0x100; + } + arg0->unk98 = -1; + } + if (temp_r30->unk1C == 2) { + if (fn_1_43A4(arg0, temp_r30->unk50[0], temp_r30->unk58[0]) && temp_r30->unk20[0] == 0) { + arg0->unk82 |= 0x100; + } + if (lbl_1_data_260[temp_r30->unk14] > 1 && fn_1_43A4(arg0, temp_r30->unk50[1], temp_r30->unk58[1]) && temp_r30->unk20[1] == 0) { + arg0->unk82 |= 0x100; + } + } + } +} + +void fn_1_557C(void) { + s32 j; + s32 i; + + for (i = 0; i < 2; i++) { + for (j = 0; j < 5; j++) { + HuSprAttrReset(lbl_1_bss_588[i].unk04, j, 4); + } + } +} + +void fn_1_55F0(void) { + s32 j; + s32 i; + + for (i = 0; i < 2; i++) { + for (j = 0; j < 5; j++) { + HuSprAttrSet(lbl_1_bss_588[i].unk04, j, 4); + } + } +} + +void fn_1_5664(UnkM445Struct_02* arg0, s32 arg1) { + HuSprBankSet(arg0->unk04, 3, arg1 % 10); + HuSprBankSet(arg0->unk04, 4, arg1 / 10); + HuSprAttrReset(arg0->unk04, 4, 4); +} + +void fn_1_5700(UnkM445Struct_02* arg0) { + Vec sp38; + Vec sp2C; + Vec sp20; + float temp_f27; + float var_f26; + float var_f21; + float var_f20; + UnkM445Struct_02* var_r27; + s32 i; + s32 var_r28; + + if (lbl_1_bss_6DC == 4) { + arg0->unk28 = 1; + for (i = 10, var_f21 = 1.0f; i != 0; i--, var_f21 -= 0.1f) { + Hu3DModelScaleSet(arg0->unk06, var_f21, var_f21, var_f21); + HuPrcVSleep(); + } + Hu3DModelAttrSet(arg0->unk06, 1); + arg0->unk06 = -1; + Hu3DMotionOverlayReset(arg0->unk00); + if (lbl_1_bss_588[0].unk06 == -1 && lbl_1_bss_588[1].unk06 == -1) { + lbl_1_bss_6DC = 5; + } + return; + } + Hu3DMotionOverlayReset(arg0->unk00); + arg0->unk7C = arg0->unk7D = 0; + arg0->unk7F = arg0->unk7E = 0; + arg0->unk80 = arg0->unk82 = 0; + var_r28 = 0; + if (arg0->unk18 == 0) { + if (arg0->unk34 <= -152.0f) { + arg0->unk84 = -230.0f; + arg0->unk88 = 45.0f; + var_r28 = 1; + } else if (arg0->unk3C > 203.0f || arg0->unk3C < -203.0f) { + arg0->unk84 = -170.0f; + arg0->unk88 = arg0->unk3C; + } else { + arg0->unk84 = arg0->unk34; + if (arg0->unk3C > 0.0f) { + arg0->unk88 = 210.0f; + } else { + arg0->unk88 = -210.0f; + } + } + } else { + if (arg0->unk34 >= 152.0f) { + arg0->unk84 = 230.0f; + arg0->unk88 = -45.0f; + var_r28 = 1; + } else if (arg0->unk3C > 203.0f || arg0->unk3C < -203.0f) { + arg0->unk84 = 170.0f; + arg0->unk88 = arg0->unk3C; + } else { + arg0->unk84 = arg0->unk34; + if (arg0->unk3C > 0.0f) { + arg0->unk88 = 210.0f; + } else { + arg0->unk88 = -210.0f; + } + } + } + var_r27 = (arg0->unk18 != 0) ? &lbl_1_bss_588[0] : &lbl_1_bss_588[1]; + HuSetVecF(&sp38, arg0->unk34, 0.0, arg0->unk3C); + HuSetVecF(&sp2C, var_r27->unk34, 0.0, var_r27->unk3C); + HuSubVecF(&sp20, &sp38, &sp2C); + var_f26 = sqrtf(sp20.x * sp20.x + sp20.z * sp20.z); + if (var_f26 <= 110.0f) { + var_f26 = sqrtf(arg0->unk34 * arg0->unk34 + arg0->unk3C * arg0->unk3C); + var_f20 = sqrtf(var_r27->unk34 * var_r27->unk34 + var_r27->unk3C * var_r27->unk3C); + if (lbl_1_bss_4 == -1) { + temp_f27 = atan2d(arg0->unk34, arg0->unk3C); + if (var_f26 < 400.0f) { + if (var_f26 > var_f20) { + lbl_1_bss_4 = arg0->unk18; + lbl_1_bss_0 = temp_f27; + arg0->unk84 = arg0->unk34 + 100.0 * sind(temp_f27); + arg0->unk88 = arg0->unk3C + 100.0 * cosd(temp_f27); + } + } else { + if (var_f26 < var_f20) { + temp_f27 += 180.0f; + lbl_1_bss_4 = arg0->unk18; + lbl_1_bss_0 = temp_f27; + arg0->unk84 = arg0->unk34 + 100.0 * sind(temp_f27); + arg0->unk88 = arg0->unk3C + 100.0 * cosd(temp_f27); + } + } + } else if (arg0->unk18 == lbl_1_bss_4) { + OSReport("pno %d dir %f\n", arg0->unk18, lbl_1_bss_0); + arg0->unk84 = arg0->unk34 + 100.0 * sind(lbl_1_bss_0); + arg0->unk88 = arg0->unk3C + 100.0 * cosd(lbl_1_bss_0); + } + } + HuSetVecF(&sp38, arg0->unk34, 0.0, arg0->unk3C); + HuSetVecF(&sp2C, arg0->unk84, 0.0, arg0->unk88); + HuSubVecF(&sp20, &sp38, &sp2C); + var_f26 = sqrtf(sp20.x * sp20.x + sp20.z * sp20.z); + if (var_f26 < 20.0f && var_r28 != 0) { + arg0->unk24 = 4; + } + temp_f27 = atan2d(arg0->unk84 - arg0->unk34, arg0->unk88 - arg0->unk3C); + arg0->unk7C = 50.0 * sind(temp_f27); + arg0->unk7D = -50.0 * cosd(temp_f27); +} + +void fn_1_6268(void) { + Vec sp1D8; + s32 sp120; + float sp11C; + float var_f19; + UnkM445Struct_02* temp_r31; + UnkM445Struct_00* temp_r30; + u32 var_r24; + s32 var_r26; + s32 var_r28; + s32 i; + + temp_r31 = HuPrcCurrentGet()->user_data; + temp_r31->unk24 = 0; + temp_r31->unk90 = 0; + temp_r31->unk98 = -1; + temp_r31->unk28 = 1; + lbl_1_bss_4 = -1; + while (lbl_1_bss_6DC == 0) { + HuPrcVSleep(); + } + lbl_1_bss_6DC = 2; + while (lbl_1_bss_6DC == 2) { + HuPrcVSleep(); + } + while (TRUE) { + temp_r31->unk40 = temp_r31->unk34; + temp_r31->unk44 = temp_r31->unk3C; + if (GWPlayerCfg[temp_r31->unk18].iscom == 1) { + fn_1_45D0(temp_r31); + } + if (lbl_1_bss_6DC >= 4) { + fn_1_5700(temp_r31); + } + switch (temp_r31->unk24) { + case 4: + goto block_exit_loop; + } + if (fn_1_3010(temp_r31->unk18) & 0x100) { + if (fn_1_520(temp_r31->unk18) == FALSE) { + Hu3DMotionOverlayReset(temp_r31->unk00); + CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[5]); + } else { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk08[4]); + Hu3DMotionSpeedSet(temp_r31->unk00, 1.0f); + } + Hu3DModelAttrReset(temp_r31->unk00, 0x40000001); + HuPrcSleep(15); + if (temp_r31->unk18 != 0) { + fn_1_4B8(temp_r31->unk34, temp_r31->unk3C, 0x75F); + } else { + fn_1_4B8(temp_r31->unk34, temp_r31->unk3C, 0x75E); + } + HuPrcSleep(15); + HuSetVecF(&sp1D8, temp_r31->unk34 + 120.0 * sind(temp_r31->unk4C), 0.0, temp_r31->unk3C + 120.0 * cosd(temp_r31->unk4C)); + for (i = 0; i < 8; i++) { + temp_r30 = &lbl_1_bss_288[i]; + if (temp_r30->unk1C == 2) { + sp120 = 0; + if (fn_1_43A4(temp_r31, temp_r30->unk50[0], temp_r30->unk58[0]) && temp_r30->unk20[0] == 0) { + sp120 = 1; + temp_r30->unk20[0] = 1; + temp_r30->unk28 = temp_r31->unk18; + if (temp_r31->unk18 != 0) { + fn_1_4B8(temp_r30->unk48, temp_r30->unk4C, 0x75D); + } else { + fn_1_4B8(temp_r30->unk48, temp_r30->unk4C, 0x750); + } + Hu3DModelAttrReset(temp_r31->unk02, 1); + Hu3DMotionTimeSet(temp_r31->unk02, 0.0f); + Hu3DModelPosSet(temp_r31->unk02, sp1D8.x, 160.0f, sp1D8.z + 100.0f); + if (temp_r30->unk38 != 0) { + temp_r31->unk30 += 2; + } else { + temp_r31->unk30++; + } + fn_1_5664(temp_r31, temp_r31->unk30); + } + if (lbl_1_data_260[temp_r30->unk14] > 1 && fn_1_43A4(temp_r31, temp_r30->unk50[1], temp_r30->unk58[1]) && temp_r30->unk20[1] == 0) { + temp_r30->unk20[1] = 1; + temp_r30->unk2C = temp_r31->unk18; + if (temp_r31->unk18 != 0) { + fn_1_4B8(temp_r30->unk48, temp_r30->unk4C, 0x75D); + } else { + fn_1_4B8(temp_r30->unk48, temp_r30->unk4C, 0x750); + } + Hu3DModelAttrReset(temp_r31->unk02, 1); + Hu3DMotionTimeSet(temp_r31->unk02, 0.0f); + Hu3DModelPosSet(temp_r31->unk02, sp1D8.x, 160.0f, sp1D8.z + 100.0f); + if (temp_r30->unk38 != 0) { + temp_r31->unk30 += 2; + } else { + temp_r31->unk30++; + } + fn_1_5664(temp_r31, temp_r31->unk30); + } + } + } + while (!Hu3DMotionEndCheck(temp_r31->unk00)) { + HuPrcVSleep(); + } + temp_r31->unk24 = 0; + if (fn_1_520(temp_r31->unk18) == FALSE) { + CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[0]); + Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); + if (lbl_1_bss_6DC < 5) { + Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); + Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); + } + } else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[0], 0.0f, 8.0f, 0x40000001); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 1.0f); + } + } else { + HuSetVecF(&sp1D8, fn_1_2E68(temp_r31->unk18, 0) / 4.0f, 0.0, -fn_1_2E68(temp_r31->unk18, 1) / 4.0f); + temp_r31->unk5C = sqrtf(sp1D8.x * sp1D8.x + sp1D8.y * sp1D8.y + sp1D8.z * sp1D8.z); + if (temp_r31->unk5C >= 0.5f) { + if (temp_r31->unk5C >= 10.0f) { + sp1D8.x /= temp_r31->unk5C; + sp1D8.z /= temp_r31->unk5C; + temp_r31->unk5C = 10.0f; + sp1D8.x = 10.0f * sp1D8.x; + sp1D8.z = 10.0f * sp1D8.z; + } + temp_r31->unk4C = fn_1_1858(fn_1_42A0(temp_r31->unk4C, atan2d(sp1D8.x, sp1D8.z), 0.4f)); + if (temp_r31->unk5C >= 8.0f) { + if (temp_r31->unk24 != 2) { + temp_r31->unk24 = 2; + if (fn_1_520(temp_r31->unk18) == FALSE) { + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[2], 0.0f, 8.0f, 0x40000001); + if (lbl_1_bss_6DC < 5) { + Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); + Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); + } + } else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[2], 0.0f, 8.0f, 0x40000001); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } + } + } else if (temp_r31->unk24 != 1) { + temp_r31->unk24 = 1; + if (fn_1_520(temp_r31->unk18) == FALSE) { + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[1], 0.0f, 8.0f, 0x40000001); + if (lbl_1_bss_6DC < 5) { + Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); + Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); + } + } else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[1], 0.0f, 8.0f, 0x40000001); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } + } + } else if (temp_r31->unk24 != 0) { + temp_r31->unk24 = 0; + if (fn_1_520(temp_r31->unk18) == FALSE) { + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[0], 0.0f, 0.0f, 0x40000001); + if (lbl_1_bss_6DC < 5) { + Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); + Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); + } + } else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[0], 0.0f, 0.0f, 0x40000001); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 1.0f); + } + } + temp_r31->unk70.x = sp1D8.x; + temp_r31->unk70.z = sp1D8.z; + temp_r31->unk58 = temp_r31->unk5C; + temp_r31->unk34 += temp_r31->unk70.x; + temp_r31->unk3C += temp_r31->unk70.z; + } + if ((temp_r31->unk2C = fn_1_3114(temp_r31, temp_r31->unk34, temp_r31->unk38, temp_r31->unk3C)) != -1) { + fn_1_3548(temp_r31); + } + AddX = 0.0f; + AddZ = 0.0f; + MapWall(temp_r31->unk54, temp_r31->unk34, temp_r31->unk38 + temp_r31->unk54, temp_r31->unk3C); + temp_r31->unk34 += AddX; + temp_r31->unk3C += AddZ; + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk34, temp_r31->unk38, temp_r31->unk3C); + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk48, temp_r31->unk4C, temp_r31->unk50); + HuPrcVSleep(); + } +block_exit_loop: + lbl_1_bss_6DC = 6; + if (fn_1_520(temp_r31->unk18) == FALSE) { + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[0], 0.0f, 2.0f, 0x40000001); + } else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[0], 0.0f, 0.0f, 0x40000001); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 1.0f); + } + var_f19 = 10.0f; + i = (360.0f - fn_1_1858(temp_r31->unk4C)) / var_f19; + if (temp_r31->unk4C < 180.0f) { + i = fn_1_1858(temp_r31->unk4C) / var_f19; + var_f19 = -var_f19; + } + for (; i != 0; i--) { + temp_r31->unk4C += var_f19; + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk48, temp_r31->unk4C, temp_r31->unk50); + HuPrcVSleep(); + } + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk48, 0.0f, temp_r31->unk50); + while (lbl_1_bss_6DC < 7) { + HuPrcVSleep(); + } + if (lbl_1_bss_588->unk30 == lbl_1_bss_588[1].unk30) { + var_r26 = -1; + } + if (lbl_1_bss_588->unk30 < lbl_1_bss_588[1].unk30) { + var_r26 = 1; + } + if (lbl_1_bss_588->unk30 > lbl_1_bss_588[1].unk30) { + var_r26 = 0; + } + var_r24 = 0; + if (temp_r31->unk18 != 0) { + if (fn_1_520(1) == FALSE) { + if (var_r26 != -1) { + HuAudSStreamPlay(1); + } else { + HuAudSStreamPlay(4); + } + } else { + if (var_r26 == 0) { + HuAudSStreamPlay(1); + } else { + HuAudSStreamPlay(3); + } + } + } + if (var_r26 == -1) { + if (fn_1_520(temp_r31->unk18) == FALSE) { + var_r28 = 7; + } else { + var_r28 = 6; + } + } else { + GWPlayerCoinWinSet(var_r26, 10); + if (var_r26 == temp_r31->unk18) { + var_r28 = 6; + } else { + var_r28 = 7; + } + } + if (fn_1_520(temp_r31->unk18) == FALSE) { + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[var_r28], 0.0f, 8.0f, var_r24); + } else { + if (var_r28 == 6) { + var_r28 = 5; + var_r24 = 0x40000001; + } else { + var_r28 = 6; + var_r24 = 0; + } + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[var_r28], 0.0f, 8.0f, var_r24); + if (var_r28 == 6) { + for (i = 10, sp11C = 30.0f / i; i != 0; i--) { + temp_r31->unk4C += sp11C; + Hu3DModelRotSet(temp_r31->unk00, 0.0f, temp_r31->unk4C, 0.0f); + HuPrcVSleep(); + } + } + } + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_7FC0(ModelData* model, ParticleData* particle, Mtx matrix) { + HsfanimStruct01* var_r31; + UnkM445Struct_02* temp_r29; + float var_f31; + s16 var_r27; + s16 var_r28; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + var_r31->unk14.x = var_r31->unk2C = 0.0f; + } + } + var_r31 = particle->unk_48; + for (var_r27 = 0; var_r27 < 2; var_r27++) { + temp_r29 = &lbl_1_bss_588[var_r27]; + if (temp_r29->unk28 != 0) { + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + if (var_r31->unk14.x == 0.0f) { + break; + } + } + if (var_r28 == particle->unk_30) { + break; + } + var_r31->unk34.x = temp_r29->unk34 + 50.0 * sind(temp_r29->unk4C - 90.0f); + var_r31->unk34.y = temp_r29->unk38 + 98.0f; + var_r31->unk34.z = temp_r29->unk3C + 50.0 * cosd(temp_r29->unk4C - 90.0f); + var_r31->unk14.x = 30.0f; + var_r31->unk2C = 100.0f; + var_r31->unk14.y = 10.0f; + var_r31->unk40.a = 200; + var_r31->unk14.z = 17.0f; + temp_r29->unk28 = 0; + } + } + var_r31 = particle->unk_48; + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + if (0.0f != var_r31->unk14.x) { + var_r31->unk2C += var_r31->unk14.y; + if (var_r31->unk14.y > 2.0f) { + var_r31->unk14.y -= 0.2f; + } + var_f31 = var_r31->unk40.a; + var_f31 -= var_r31->unk14.z; + if (var_r31->unk14.z > 3.0f) { + var_r31->unk14.z -= 1.0f; + } + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + var_r31->unk14.x = 0.0f; + } + var_r31->unk40.a = var_f31; + if (0.0f == var_r31->unk14.x) { + var_r31->unk2C = 0.0f; + } + } + } +} + +void fn_1_8320(void) { + float sp20[2]; + GXColor sp1C; + WindowData* var_r26; + UnkM445Struct_02* temp_r31; + s16 temp_r25; + s16 var_r29; + u32 var_r27; + s32 temp_r28; + s32 var_r24; + s32 i; + + HuPrcSleep(30); + HuAudFXPlay(0x755); + temp_r28 = lbl_1_bss_288[5].unk00; + Hu3DModelAttrReset(temp_r28, 0x40000003); + while (!Hu3DMotionEndCheck(temp_r28)) { + HuPrcVSleep(); + } + HuAudFXPlay(0x756); + Hu3DMotionSet(temp_r28, lbl_1_bss_288[5].unk02[0]); + Hu3DModelAttrSet(temp_r28, 0x40000001); + HuPrcSleep(30); + for (i = 30; i != 0; i--) { + CRotM[0].x += -0.55f; + CenterM[0].y += -11.5f; + CZoomM[0] += 51.333332f; + HuPrcVSleep(); + } + if (fn_1_520(1) == TRUE) { + temp_r25 = HuAudSeqPlay(0x3D); + HuWinMesMaxSizeGet(8, sp20, + MAKE_MESSID(41, 1), MAKE_MESSID(41, 2), MAKE_MESSID(41, 3), MAKE_MESSID(41, 4), + MAKE_MESSID(41, 5), MAKE_MESSID(41, 6), MAKE_MESSID(41, 7), MAKE_MESSID(41, 8)); + var_r29 = HuWinCreate(-10000.0f, 40.0f, sp20[0], sp20[1], 1); + HuWinPriSet(var_r29, 0x100); + sp1C.r = sp1C.g = sp1C.b = 0xFF; + HuWinBGColSet(var_r29, &sp1C); + HuWinBGTPLvlSet(var_r29, 0.9f); + HuWinMesColSet(var_r29, 0); + var_r26 = &winData[var_r29]; + var_r26->mess_shadow_color = 9; + HuWinMesSpeedSet(var_r29, 0); + HuWinDisablePlayerSet(var_r29, (1 << GWPlayerCfg->pad_idx) ^ 0xF); + HuWinExAnimIn(var_r29); + HuWinMesSet(var_r29, MAKE_MESSID(41, 1)); + HuWinMesWait(var_r29); + HuWinMesColSet(var_r29, 0); + HuWinMesSet(var_r29, MAKE_MESSID(41, 2)); + var_r24 = HuWinChoiceGet(var_r29, 0); + if (var_r24 == 0) { + i = 5; + var_r27 = MAKE_MESSID(41, 3); + } else { + i = 1; + var_r27 = MAKE_MESSID(41, 8); + } + for (; i != 0; i--) { + HuWinMesColSet(var_r29, 0); + HuWinMesSet(var_r29, var_r27++); + HuWinMesWait(var_r29); + } + HuAudSeqFadeOut(temp_r25, 1000); + HuWinExAnimOut(var_r29); + HuWinAllKill(); + } + for (i = 0; i < 2; i++) { + temp_r31 = &lbl_1_bss_588[i]; + if (fn_1_520(temp_r31->unk18) == FALSE) { + CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[i].character], temp_r31->unk08[3]); + } else { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk08[3]); + } + Hu3DModelAttrReset(temp_r31->unk00, 0x40000001); + } + HuPrcSleep(20); + for (i = 0; i < 2; i++) { + temp_r31 = &lbl_1_bss_588[i]; + Hu3DModelPosSet(temp_r31->unk06, 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(temp_r31->unk06, 0.0f, 0.0f, 0.0f); + if (fn_1_520(temp_r31->unk18) == FALSE) { + Hu3DModelHookSet(temp_r31->unk00, CharModelHookNameGet(GWPlayerCfg[i].character, 2, 0), temp_r31->unk06); + } else { + Hu3DModelHookSet(temp_r31->unk00, "itemhook_r", temp_r31->unk06); + } + } + HuPrcSleep(20); + for (i = 0; i < 2; i++) { + temp_r31 = &lbl_1_bss_588[i]; + if (fn_1_520(temp_r31->unk18) == FALSE) { + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[0], 0.0f, 8.0f, 0x40000001); + Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); + } else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[0], 0.0f, 8.0f, 0x40000001); + } + } +} + +void fn_1_8938(void) { + s32 i; + + while (lbl_1_bss_6DC < 6) { + HuPrcVSleep(); + } + for (i = 30; i != 0; i--) { + CZoomM[0] += -27.7f; + HuPrcVSleep(); + } +} + +void fn_1_89B8(void) { + while (TRUE) { + if (omSysExitReq == 1) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudFadeOut(1000); + HuPrcSleep(60); + MGSeqKillAll(); + omOvlReturnEx(1, 1); + while (TRUE) { + HuPrcVSleep(); + } + } + HuPrcVSleep(); + } +} + +void fn_1_8A18(void) { + s16 temp_r28; + s16 var_r31; + s16 temp_r26; + s32 var_r25; + s32 i; + + lbl_1_bss_6DC = 0; + fn_1_8320(); + HuPrcSleep(30); + lbl_1_bss_6DC = 1; + while (lbl_1_bss_6DC == 1) { + HuPrcVSleep(); + } + var_r25 = HuAudSeqPlay(0x3E); + temp_r28 = MGSeqStartCreate(); + while (MGSeqStatGet(temp_r28) != 0) { + HuPrcVSleep(); + } + fn_1_557C(); + var_r31 = 3659; + temp_r26 = MGSeqTimerCreate(var_r31 / 60); + lbl_1_bss_6DC = 3; + while (TRUE) { + if (var_r31 < 59) { + break; + } + MGSeqParamSet(temp_r26, 1, var_r31-- / 60); + lbl_1_bss_6D8++; + HuPrcVSleep(); + } + lbl_1_bss_6C4 = -1; + if (lbl_1_bss_588->unk30 != lbl_1_bss_588[1].unk30) { + lbl_1_bss_6C4 = 0; + if (lbl_1_bss_588->unk30 < lbl_1_bss_588[1].unk30) { + lbl_1_bss_6C4 = 1; + } + } + lbl_1_bss_6DC = 4; + HuAudSeqFadeOut(var_r25, 100); + MGSeqParamSet(temp_r26, 2, -1); + temp_r28 = MGSeqFinishCreate(); + while (MGSeqStatGet(temp_r28) != 0) { + HuPrcVSleep(); + } + while (lbl_1_bss_588->unk24 != 4 || lbl_1_bss_588[1].unk24 != 4) { + HuPrcVSleep(); + } + while (lbl_1_bss_6DC < 6) { + HuPrcVSleep(); + } + for (i = 30; i != 0; i--) { + CZoomM[0] += -27.7f; + HuPrcVSleep(); + } + lbl_1_bss_6DC = 7; + HuPrcSleep(210); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuPrcSleep(60); + HuAudFadeOut(1); + MGSeqKillAll(); + omOvlReturnEx(1, 1); + while (TRUE) { + HuPrcVSleep(); + } +} From c1f2b4270c5bc85cd1b5afc5a523cef4bfda8354 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Tue, 13 Aug 2024 23:31:39 -0700 Subject: [PATCH 037/311] Cleaned up some inlines in m412Dll --- src/REL/m412Dll/main.c | 122 +++-------------------------------------- 1 file changed, 7 insertions(+), 115 deletions(-) diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c index edea5f01..a26e3040 100644 --- a/src/REL/m412Dll/main.c +++ b/src/REL/m412Dll/main.c @@ -1153,62 +1153,6 @@ s8 fn_1_4E58(s32 arg0, s32 arg1) return var_r30; } -static inline s8 fn_1_4E58_0(s32 arg0) -{ - Vec spC; - float temp; - f32 temp_f28; - f32 temp_f27; - s8 var_r30; - s8 temp_r29; - s8 temp_r28; - - unkStruct3 *temp_r31; - - temp_r31 = &lbl_1_bss_4D4[arg0]; - if (GWPlayerCfg[arg0].iscom == 0) { - temp_r29 = HuPadStkX[temp_r31->unk2C]; - temp_r28 = HuPadStkY[temp_r31->unk2C]; - temp_f28 = fn_1_1D08(atan2d(temp_r29, temp_r28)); - temp_f28 -= lbl_1_bss_778; - HuSetVecF(&spC, (f32)temp_r29, 0.0, (f32)temp_r28); - fn_1_4C9C(&spC, temp_f28, 1.0f); - var_r30 = spC.x; - } - else { - var_r30 = temp_r31->unk88; - } - return var_r30; -} - -static inline s8 fn_1_4E58_1(s32 arg0) -{ - Vec spC; - float temp; - f32 temp_f28; - f32 temp_f27; - s8 var_r30; - s8 temp_r29; - s8 temp_r28; - - unkStruct3 *temp_r31; - - temp_r31 = &lbl_1_bss_4D4[arg0]; - if (GWPlayerCfg[arg0].iscom == 0) { - temp_r29 = HuPadStkX[temp_r31->unk2C]; - temp_r28 = HuPadStkY[temp_r31->unk2C]; - temp_f28 = fn_1_1D08(atan2d(temp_r29, temp_r28)); - temp_f28 -= lbl_1_bss_778; - HuSetVecF(&spC, (f32)temp_r29, 0.0, (f32)temp_r28); - fn_1_4C9C(&spC, temp_f28, 1.0f); - var_r30 = spC.z; - } - else { - var_r30 = temp_r31->unk89; - } - return var_r30; -} - u8 fn_1_525C(s32 arg0, s32 arg1) { s8 var_r30; @@ -1278,8 +1222,6 @@ s32 fn_1_53F4(unkStruct3 *arg0, f32 arg8, f32 arg9, f32 argA) var_f28 = var_f27; var_r28 = var_r30; arg0->unkA4 = 0; - (void)temp_r31; - (void)temp_r31; } } } @@ -1490,12 +1432,6 @@ void fn_1_6814(unkStruct3 *arg0) Vec sp104; Vec spF8; Vec spEC; - Vec spE0; - Vec spD4; - Vec spC8; - f32 spBC; - f32 spB0; - f32 spA4; volatile f32 spA0; f32 sp9C; f32 sp98; @@ -1656,24 +1592,6 @@ void fn_1_6814(unkStruct3 *arg0) } } -static inline DummyInline(Vec *arg0, Vec *arg1, Vec *arg2, float arg3, float arg4, float arg5) -{ - float spB8; - float spBC; - HuSetVecF(arg0, arg1->x, 0.0, arg1->z); - spBC = sqrtf((arg0->x * arg0->x) + (arg0->z * arg0->z)); - spBC *= (1.0f - arg3); - arg0->x = spBC * sind(arg4); - arg0->z = spBC * cosd(arg4); - HuSetVecF(arg2, arg0->x, 0.0, arg0->z); - HuSetVecF(arg0, arg1->x, 0.0, arg1->z); - spB8 = sqrtf((arg0->x * arg0->x) + (arg0->z * arg0->z)); - spB8 *= arg3; - arg0->x = spB8 * sind(arg5); - arg0->z = spB8 * cosd(arg5); - HuSetVecF(arg1, arg0->x, 0.0, arg0->z); -} - void fn_1_7C60(void) { Vec sp1A0; @@ -1689,35 +1607,6 @@ void fn_1_7C60(void) f32 sp134; f32 sp130; f32 sp12C; - f32 sp128; - f32 sp124; - s32 sp120; - f32 sp11C; - f32 sp118; - f32 sp114; - f32 sp110; - f32 sp10C; - f32 sp108; - f32 sp104; - f32 sp100; - f32 spFC; - f32 spF8; - f32 spF4; - f32 spF0; - s32 spEC; - f32 spE8; - f32 spE4; - s32 spE0; - f32 spDC; - f32 spD8; - f32 spD4; - f32 spD0; - f32 spCC; - f32 spC8; - f32 spC4; - f32 spC0; - f32 spBC; - f32 spB8; f32 temp_f20; f32 var_f21; f32 var_f31; @@ -1746,7 +1635,7 @@ loop_6: } switch (temp_r31->unk30) { default: - HuSetVecF(&sp1A0, fn_1_4E58_0(temp_r31->unk24) / 4.0f, 0.0, -fn_1_4E58_1(temp_r31->unk24) / 4.0f); + HuSetVecF(&sp1A0, fn_1_4E58(temp_r31->unk24, 0) / 4.0f, 0.0, -fn_1_4E58(temp_r31->unk24, 1) / 4.0f); temp_r31->unk60.z = sqrtf((sp1A0.z * sp1A0.z) + ((sp1A0.x * sp1A0.x) + (sp1A0.y * sp1A0.y))); if (temp_r31->unk60.z >= 0.5f) { if (temp_r31->unk60.z >= 10.0f) { @@ -1818,7 +1707,12 @@ loop_6: temp_f20 = fn_1_1D08(180.0f + temp_f20); temp_f20 = fn_1_1D08(var_f31 - (temp_f20 - var_f31)); var_f31 = fn_1_1D08(atan2d((temp_r30->unk40.x - temp_r31->unk40.x), (temp_r30->unk40.z - temp_r31->unk40.z))); - DummyInline(&sp1A0, &temp_r31->unk7C, &temp_r30->unk7C, sp138, var_f31, temp_f20); + HuSetVecF(&sp1A0, temp_r31->unk7C.x, 0.0, temp_r31->unk7C.z); + fn_1_4C9C(&sp1A0, var_f31, 1.0f - sp138); + HuSetVecF(&temp_r30->unk7C, sp1A0.x, 0.0, sp1A0.z); + HuSetVecF(&sp1A0, temp_r31->unk7C.x, 0.0, temp_r31->unk7C.z); + fn_1_4C9C(&sp1A0, temp_f20, sp138); + HuSetVecF(&temp_r31->unk7C, sp1A0.x, 0.0, sp1A0.z); } fn_1_5838(temp_r31); } @@ -1882,8 +1776,6 @@ loop_6: Hu3DModelRotSet(temp_r31->unk2, temp_r31->unk54.x, temp_r31->unk54.y, temp_r31->unk54.z); HuPrcVSleep(); } - (void)var_r27; - (void)var_r27; while (lbl_1_bss_794 < 5) { HuPrcVSleep(); } From 00765fdd24e571e70233559bf3a5399d5bfe1e84 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Sun, 18 Aug 2024 02:07:16 -0700 Subject: [PATCH 038/311] Matched REL/mgmodedll/main.c --- config/GMPE01_00/rels/mgmodedll/symbols.txt | 34 +- configure.py | 2 +- include/REL/mgmodedll.h | 82 +- src/REL/m409Dll/player.c | 4 +- src/REL/mgmodedll/main.c | 2639 +++++++++++++++++++ 5 files changed, 2701 insertions(+), 60 deletions(-) create mode 100755 src/REL/mgmodedll/main.c diff --git a/config/GMPE01_00/rels/mgmodedll/symbols.txt b/config/GMPE01_00/rels/mgmodedll/symbols.txt index 182e3545..d9b88ae2 100644 --- a/config/GMPE01_00/rels/mgmodedll/symbols.txt +++ b/config/GMPE01_00/rels/mgmodedll/symbols.txt @@ -381,7 +381,7 @@ lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data: lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0xC scope:local data:float lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 scope:local data:float @@ -431,9 +431,9 @@ lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x8 scope:local data: lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 scope:local data:float lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 scope:local data:float lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x4 scope:local data:float -lbl_1_rodata_6B4 = .rodata:0x000006B4; // type:object size:0xC scope:local data:4byte -lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0xC scope:local data:4byte -lbl_1_rodata_6CC = .rodata:0x000006CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_6B4 = .rodata:0x000006B4; // type:object size:0xC scope:local data:float +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0xC scope:local data:float +lbl_1_rodata_6CC = .rodata:0x000006CC; // type:object size:0xC scope:local data:float lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 scope:local data:float lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 scope:local data:float lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 scope:local data:float @@ -446,7 +446,7 @@ lbl_1_rodata_6F8 = .rodata:0x000006F8; // type:object size:0x4 scope:local data: lbl_1_rodata_6FC = .rodata:0x000006FC; // type:object size:0x4 scope:local data:float lbl_1_rodata_700 = .rodata:0x00000700; // type:object size:0x4 scope:local data:float lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x8 scope:local data:double -lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x8 scope:local data:float +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x4 scope:local data:float lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 scope:local data:float lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x8 scope:local data:double lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 scope:local data:float @@ -493,21 +493,21 @@ lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x10 lbl_1_data_1BC = .data:0x000001BC; // type:object size:0xA data:string lbl_1_data_1C6 = .data:0x000001C6; // type:object size:0xE data:string lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0xB data:string -lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x24 data:string -lbl_1_data_208 = .data:0x00000208; // type:object size:0x26 data:string -lbl_1_data_22E = .data:0x0000022E; // type:object size:0x27 data:string -lbl_1_data_255 = .data:0x00000255; // type:object size:0x1C data:string -lbl_1_data_271 = .data:0x00000271; // type:object size:0x1B data:string -lbl_1_data_28C = .data:0x0000028C; // type:object size:0x1C data:string -lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x1D data:string -lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0xC data:string -lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x1A data:string -lbl_1_data_2EB = .data:0x000002EB; // type:object size:0x1A data:string -lbl_1_data_305 = .data:0x00000305; // type:object size:0x27 +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x24 scope:local data:string +lbl_1_data_208 = .data:0x00000208; // type:object size:0x26 scope:local data:string +lbl_1_data_22E = .data:0x0000022E; // type:object size:0x27 scope:local data:string +lbl_1_data_255 = .data:0x00000255; // type:object size:0x1C scope:local data:string +lbl_1_data_271 = .data:0x00000271; // type:object size:0x1B scope:local data:string +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x1C scope:local data:string +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x1D scope:local data:string +lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0xC scope:local data:string +lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x1A scope:local data:string +lbl_1_data_2EB = .data:0x000002EB; // type:object size:0x1A scope:local data:string +lbl_1_data_305 = .data:0x00000305; // type:object size:0x26 scope:local data:string lbl_1_data_32C = .data:0x0000032C; // type:object size:0x40 data:4byte lbl_1_data_36C = .data:0x0000036C; // type:object size:0x60 lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x18 data:4byte -lbl_1_data_3E4 = .data:0x000003E4; // type:object size:0x64 +lbl_1_data_3E4 = .data:0x000003E4; // type:object size:0x64 data:float lbl_1_data_448 = .data:0x00000448; // type:object size:0x40 lbl_1_data_488 = .data:0x00000488; // type:object size:0x4 data:4byte lbl_1_data_490 = .data:0x00000490; // type:object size:0x2D8 diff --git a/configure.py b/configure.py index 2599347a..883c245d 100644 --- a/configure.py +++ b/configure.py @@ -1336,7 +1336,7 @@ config.libs = [ Object(Matching, "REL/mgmodedll/record.c"), Object(Matching, "REL/mgmodedll/battle.c"), Object(NonMatching, "REL/mgmodedll/tictactoe.c"), - Object(NonMatching, "REL/mgmodedll/main.c"), + Object(Matching, "REL/mgmodedll/main.c"), Object(Matching, "REL/mgmodedll/datalist.c"), Object(Matching, "REL/mgmodedll/minigame.c"), }, diff --git a/include/REL/mgmodedll.h b/include/REL/mgmodedll.h index 0754f674..3e8ef9c3 100644 --- a/include/REL/mgmodedll.h +++ b/include/REL/mgmodedll.h @@ -12,47 +12,51 @@ #include "game/pad.h" typedef struct datalist_model { - s32 datanum; - u32 attr; - s16 type; - s16 link; - s16 mot_link; - Vec pos; - Vec rot; - Vec scale; -} DataListModel; + s32 datanum; + u32 attr; + s16 type; + s16 link; + s16 mot_link; + Vec pos; + Vec rot; + Vec scale; +} DataListModel; // Size 0x34 typedef struct datalist_sprite { - u32 datanum; - s16 attr; - s16 prio; - float x; - float y; - GXColor color; -} DataListSprite; + u32 datanum; + s16 attr; + s16 prio; + float x; + float y; + GXColor color; +} DataListSprite; // Size 0x14 typedef struct struct_bss8_24 { - u8 unk0[0x5C]; - s32 unk5C; - s32 unk60; - s32 unk64; - s32 unk68; - s32 unk6C; - u8 unk70[0x20]; -} StructBss8_24; + omObjData *unk0; + void (*unk4)(omObjData*, ...); + u8 unk8[0x50]; + s32 unk58; + s32 unk5C; + s32 unk60; + s32 unk64; + s32 unk68; + s32 unk6C; + s32 unk70[4]; + s32 unk80[4]; +} StructBss8_24; // Size 0x90 typedef struct struct_bss8 { - s32 unk0; - s32 unk4; - s32 unk8; - s32 unkC; - s32 unk10; - s32 unk14; - s32 unk18; - s32 unk1C; - s32 unk20; - StructBss8_24 unk24[4]; -} StructBss8; + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + s32 unk20; + StructBss8_24 unk24[4]; +} StructBss8; // Size 0x264 extern s16 lbl_1_bss_2C80[13]; extern s16 lbl_1_bss_2C66[13]; @@ -93,11 +97,11 @@ void fn_1_18DF8(Process *arg0, StructBss8 *arg1); void fn_1_19018(void); s32 fn_1_194C8(s32 arg0); -void fn_1_25584(s16 arg0); s32 fn_1_2530C(s32 arg0, s32 arg1, s32 arg2); -void fn_1_25838(s16 arg0, u32 arg1, s32 arg2, s32 arg3); -s32 fn_1_2592C(u32 arg0, s32 arg1, s32 arg2); -s32 fn_1_25CA8(u32 arg0); +void fn_1_25584(s32 arg0); +void fn_1_25838(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +s32 fn_1_2592C(s32 arg0, s32 arg1, s32 arg2); +s32 fn_1_25CA8(s32 arg0); void fn_1_25E74(s32 arg0); void fn_1_267E8(DataListModel *model_list); diff --git a/src/REL/m409Dll/player.c b/src/REL/m409Dll/player.c index 743d0adf..5697557e 100644 --- a/src/REL/m409Dll/player.c +++ b/src/REL/m409Dll/player.c @@ -777,8 +777,7 @@ void fn_1_962C(omObjData* arg0) { lbl_1_bss_108++; break; case 3: - var_r26 = arg0->model[lbl_1_bss_106 + 1]; - Hu3DModelAttrReset(var_r26, 1); + Hu3DModelAttrReset(var_r26 = arg0->model[lbl_1_bss_106 + 1], 1); Hu3DModelHookSet(arg0->model[0], "g001mk-itemhook_r", var_r26); Hu3DMotionShiftSet(arg0->model[0], arg0->motion[1], 0.0f, 8.0f, 0); HuAudFXPlay(0x558); @@ -928,7 +927,6 @@ void fn_1_962C(omObjData* arg0) { if (lbl_1_bss_108 == 2 && var_r27 >= arg0->work[0]) { lbl_1_bss_108++; } - (void)var_r27; } s32 fn_1_A584(unkStruct10* arg0) { diff --git a/src/REL/mgmodedll/main.c b/src/REL/mgmodedll/main.c new file mode 100755 index 00000000..73c770f1 --- /dev/null +++ b/src/REL/mgmodedll/main.c @@ -0,0 +1,2639 @@ +#include "REL/mgmodedll.h" +#include "game/audio.h" +#include "game/wipe.h" + +#include "ext_math.h" + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ void (*unk04)(omObjData*, ...); + /* 0x08 */ s32 unk08[4]; + /* 0x18 */ char unk18[4]; + /* 0x1C */ s32 unk1C[4]; + /* 0x2C */ char unk2C[4]; + /* 0x30 */ s32 unk30; + /* 0x34 */ s32 unk34; + /* 0x38 */ char unk38[0xC]; + /* 0x44 */ s32 unk44[2]; +} StructBss2050; // Size unknown + +typedef struct { + /* 0x00 */ char unk00[8]; + /* 0x08 */ s32 unk08; + /* 0x0C */ char unk0C[0x10]; + /* 0x1C */ s32 unk1C; + /* 0x20 */ char unk20[0x10]; + /* 0x30 */ s32 unk30; +} UnkFunc1EE58Struct; // Size unknown + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ float unk20; + /* 0x24 */ float unk24; + /* 0x28 */ float unk28; + /* 0x2C */ float unk2C; +} StructBss3CC; // Size 0x30 + +void fn_1_19A30(StructBss8* arg0); +void fn_1_19B8C(void); +void fn_1_19D00(void); +void fn_1_19E94(void); +void fn_1_19F5C(omObjData* arg0); +void fn_1_1A564(void); +void fn_1_1A6A0(void); +void fn_1_1A8E8(void); +void fn_1_1AA28(void); +void fn_1_1AB58(void); +void fn_1_1AC88(StructBss2050* arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_1B260(s32 arg0); +void fn_1_1BCEC(void); +void fn_1_1BECC(void); +void fn_1_1C09C(StructBss2050* arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_1CB4C(void); +void fn_1_1CEB0(omObjData* arg0, StructBss8_24* arg1); +void fn_1_1D49C(StructBss8_24* arg0); +s32 fn_1_1D688(StructBss8_24* arg0); +void fn_1_1DD74(s32 arg0, StructBss8_24* arg1); +void fn_1_1E608(StructBss8_24* arg0); +void fn_1_1EB20(StructBss8_24* arg0); +void fn_1_1EBE8(void); +void fn_1_1ED20(void); +void fn_1_1EE58(s32 arg0, UnkFunc1EE58Struct* arg1); +void fn_1_1F32C(omObjData* arg0); +void fn_1_1FABC(void); +void fn_1_1FC44(s32 arg0); +void fn_1_20728(void); +s32 fn_1_20970(void); +void fn_1_20E84(s32 arg0); +void fn_1_20FD4(s32 arg0); +s32 fn_1_211B4(void); +s32 fn_1_214A4(void); +s32 fn_1_21CA4(void); +s32 fn_1_2228C(s32 arg0); +void fn_1_22728(void); +void fn_1_22C08(omObjData* arg0); +void fn_1_231F0(omObjData* arg0); +float fn_1_240E4(float arg0, float arg1, float arg2, float arg3); +float fn_1_2410C(float arg0, float arg1, float arg2); +float fn_1_2412C(float arg0, float arg1, float arg2, float arg3); +float fn_1_24204(float arg0, float arg1, float arg2, float arg3); +float fn_1_242CC(float arg0, float arg1, float arg2, float arg3); +void fn_1_24388(s32 arg0); +void fn_1_243B0(void); +void fn_1_243D0(void); +void fn_1_243E4(void); +void fn_1_244C0(s32 arg0); +void fn_1_245A8(void); +void fn_1_245CC(s32 arg0, float arg1, float arg2, s32 arg3); +s32 fn_1_25014(s32 arg0, s32 arg1, s32 arg2, s32 arg3, float arg4, float arg5, s32 arg6, s32 arg7, s32 arg8); +void fn_1_25524(s32 arg0, float arg1, float arg2); +void fn_1_255EC(s32 arg0, s32 arg1); +void fn_1_2567C(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +s32 fn_1_257B0(s32 arg0); +void fn_1_257F8(s32 arg0, s32 arg1, s32 arg2); +void fn_1_25EC8(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_26004(s32 arg0, Vec arg1, float arg2, float arg3, float arg4, s32 arg5, s32 arg6); +void fn_1_26790(s32 arg0, s32 arg1, float arg2, float arg3); + +char lbl_1_bss_209C_pad[8]; // Could be part of StructBss2050. +StructBss2050 lbl_1_bss_2050; +StructBss8_24 lbl_1_bss_1E10[4]; +omObjData* lbl_1_bss_1E0C; +StructBss3CC lbl_1_bss_3CC[140]; +s32 lbl_1_bss_3C8; +StructBss8* lbl_1_bss_3C4; +Process* lbl_1_bss_3C0; + +s32 lbl_1_data_1E0 = 1; // Unused. + +void fn_1_18DF8(Process* arg0, StructBss8* arg1) { + s32 i; + + lbl_1_bss_3C0 = arg0; + lbl_1_bss_3C4 = arg1; + fn_1_245A8(); + fn_1_243E4(); + fn_1_244C0(1); + Center.x = 0.0f; + Center.y = 0.0f; + Center.z = 0.0f; + CRot.x = -10.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + CZoom = 2900.0f; + Hu3DModelPosSet(lbl_1_bss_3C4->unkC, 0.0f, 0.0f, 460.0f); + fn_1_25EC8(lbl_1_bss_3C4->unkC, lbl_1_bss_3C4->unk10, 0, 1); + fn_1_25EC8(lbl_1_bss_3C4->unk0, lbl_1_bss_3C4->unk8, 0, 2); + lbl_1_bss_1E0C = omAddObjEx(lbl_1_bss_3C0, 0x1000, 141, 16, -1, fn_1_231F0); + HuPrcChildCreate(fn_1_19E94, 100, 0x2000, 0, HuPrcCurrentGet()); + for (i = 0; i < 4; i++) { + HuPrcChildCreate(fn_1_19D00, 100, 0x2000, 0, HuPrcCurrentGet()); + } +} + +void fn_1_19018(void) { + Vec sp14 = { 0.0f, 0.0f, 640.0f }; + float temp_f31; + s32 temp_r30; + s32 i; + + fn_1_243B0(); + for (i = 1; i < 140; i++) { + Hu3DModelAttrReset(lbl_1_bss_1E0C->model[i], 1); + } + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + for (i = 0; i < 240; i++) { + fn_1_243B0(); + temp_f31 = fn_1_24204(2900.0f, 1150.0f, i, 180.0f); + CZoom = fn_1_2410C(CZoom, temp_f31, 15.0f); + if (i == 90) { + fn_1_25EC8(lbl_1_bss_3C4->unk0, lbl_1_bss_3C4->unk8, 0, 0); + } + } + lbl_1_bss_1E0C->work[0] = 1; + temp_f31 = CZoom; + for (i = 0; i < 90; i++) { + fn_1_243B0(); + CZoom = fn_1_2410C(CZoom, fn_1_24204(temp_f31, 1600.0f, i, 60.0f), 10.0f); + Center.y = fn_1_2410C(Center.y, fn_1_24204(0.0f, 215.0f, i, 60.0f), 10.0f); + CRot.x = fn_1_2410C(CRot.x, fn_1_24204(-10.0f, 0.0f, i, 60.0f), 10.0f); + } + fn_1_25EC8(lbl_1_bss_3C4->unkC, lbl_1_bss_3C4->unk14, 0xF, 1); + fn_1_26004(lbl_1_bss_3C4->unkC, sp14, 0.0f, 3.0f, 0.0f, 1, 0); + fn_1_25EC8(lbl_1_bss_3C4->unkC, lbl_1_bss_3C4->unk10, 0xF, 1); + HuPrcSleep(30); + HuAudSeqPlay(44); + fn_1_25EC8(lbl_1_bss_3C4->unk0, lbl_1_bss_3C4->unk4, 0, 0); + fn_1_24388(60); + temp_r30 = fn_1_2530C(0, 0, 0); + fn_1_25EC8(lbl_1_bss_3C4->unkC, lbl_1_bss_3C4->unk18, 0xF, 1); + HuAudFXPlay(0x43); + fn_1_25838(temp_r30, MAKE_MESSID(40, 0), -1, -1); + fn_1_25EC8(lbl_1_bss_3C4->unkC, lbl_1_bss_3C4->unk10, 0xF, 1); + fn_1_25584(temp_r30); + fn_1_24388(60); +} + +s32 fn_1_194C8(s32 arg0) { + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 i; + + var_r30 = 10; + var_r29 = 0; + var_r28 = 0; + if (arg0 == 4) { + var_r28 = 1; + var_r30 = 0; + if (lbl_1_bss_3C4->unk1C == 0 || lbl_1_bss_3C4->unk1C == 3) { + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1E10[i].unk60 == 1) { + break; + } + } + if (i != 4) { + var_r29 = 2; + } else { + var_r29 = 1; + } + } else { + var_r29 = 3; + } + } else { + lbl_1_bss_3C4->unk1C = arg0; + fn_1_19B8C(); + } + while (TRUE) { + fn_1_243B0(); + switch (var_r30) { + case 10: + var_r30 = 0; + fn_1_20728(); + var_r29 = fn_1_20970(); + fn_1_20E84(lbl_1_bss_3C4->unk1C); + if (var_r29 == -99) { + var_r30 = -99; + } + break; + case 0: + var_r30 = 1; + fn_1_20FD4(lbl_1_bss_3C4->unk1C); + while (TRUE) { + fn_1_243B0(); + switch (var_r29) { + case 1: + var_r29 = fn_1_211B4(); + break; + case 2: + var_r29 = fn_1_214A4(); + break; + case 3: + if (lbl_1_bss_3C4->unk1C == 0 || lbl_1_bss_3C4->unk1C == 3) { + var_r29 = 5; + } else if (lbl_1_bss_3C4->unk1C == 2) { + var_r29 = fn_1_21CA4(); + } else { + var_r29 = fn_1_2228C(var_r28); + var_r28 = 0; + } + break; + } + if (var_r29 == 0) { + var_r30 = 10; + break; + } else if (var_r29 == 5) { + var_r30 = 99; + break; + } + } + fn_1_22728(); + break; + } + if (var_r30 == 99 || var_r30 == -99) { + break; + } + } + if (var_r30 == -99) { + var_r30 = 0; + } else { + for (i = 0; i < 4; i++) { + lbl_1_bss_3C4->unk24[i].unk5C = lbl_1_bss_1E10[i].unk5C; + lbl_1_bss_3C4->unk24[i].unk60 = lbl_1_bss_1E10[i].unk60; + lbl_1_bss_3C4->unk24[i].unk64 = lbl_1_bss_1E10[i].unk64; + lbl_1_bss_3C4->unk24[i].unk68 = lbl_1_bss_1E10[i].unk68; + lbl_1_bss_3C4->unk24[i].unk6C = lbl_1_bss_1E10[i].unk6C; + } + if (lbl_1_bss_3C4->unk1C == 1) { + switch (lbl_1_bss_2050.unk1C[0]) { + case 1: + lbl_1_bss_3C4->unk24[0].unk5C = lbl_1_bss_3C4->unk24[1].unk5C = 0; + lbl_1_bss_3C4->unk24[2].unk5C = lbl_1_bss_3C4->unk24[3].unk5C = 1; + break; + case 2: + lbl_1_bss_3C4->unk24[0].unk5C = lbl_1_bss_3C4->unk24[2].unk5C = 0; + lbl_1_bss_3C4->unk24[1].unk5C = lbl_1_bss_3C4->unk24[3].unk5C = 1; + break; + case 3: + lbl_1_bss_3C4->unk24[0].unk5C = lbl_1_bss_3C4->unk24[3].unk5C = 0; + lbl_1_bss_3C4->unk24[1].unk5C = lbl_1_bss_3C4->unk24[2].unk5C = 1; + break; + default: + OSReport("########## ERROR : TAGMODE TEAMSET\n"); + lbl_1_bss_3C4->unk24[0].unk5C = lbl_1_bss_3C4->unk24[1].unk5C = 0; + lbl_1_bss_3C4->unk24[2].unk5C = lbl_1_bss_3C4->unk24[3].unk5C = 1; + break; + } + } else if (lbl_1_bss_3C4->unk1C == 2) { + switch (lbl_1_bss_2050.unk1C[0]) { + case 0: + lbl_1_bss_3C4->unk20 = 3; + break; + case 1: + lbl_1_bss_3C4->unk20 = 5; + break; + case 2: + lbl_1_bss_3C4->unk20 = 7; + break; + default: + OSReport("########## ERROR : KNUKIMODE TURNSET\n"); + lbl_1_bss_3C4->unk20 = 3; + break; + } + } + var_r30 = 1; + } + return var_r30; +} + +void fn_1_19A30(StructBss8* arg0) { + s32 i; + + OSReport("\n\n>>>>>>>>>>>>>>>>>>>> ENTRANCE HELP\n\n"); + switch (arg0->unk1C) { + case 0: + OSReport("MG_MODE : FREE PLAY MODE!!\n"); + break; + case 1: + OSReport("MG_MODE : TAG PLAY MODE!!\n"); + break; + case 2: + OSReport("MG_MODE : NUKE PLAY MODE!!\n"); + break; + case 3: + OSReport("MG_MODE : BINGO PLAY MODE!!\n"); + break; + } + if (arg0->unk1C == 2) { + OSReport("\nTURN : %d\n", arg0->unk20); + } + OSReport("\nNO) GRP:COM:DIF:CHR:PAD\n"); + for (i = 0; i < 4; i++) { + OSReport("%2d) %3d:%3d:%3d:%3d:%3d\n", i, arg0->unk24[i].unk5C, arg0->unk24[i].unk60, arg0->unk24[i].unk64, arg0->unk24[i].unk68, arg0->unk24[i].unk6C); + } + OSReport("\n>>>>>>>>>>>>>>>>>>>> ENTRANCE HELP\n\n"); +} + +void fn_1_19B8C(void) { + s32 i; + s32 j; + + for (i = 0; i < 4; i++) { + lbl_1_bss_2050.unk1C[i] = lbl_1_bss_2050.unk08[i] = 0; + } + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + lbl_1_bss_1E10[i].unk80[j] = lbl_1_bss_1E10[i].unk70[j] = 0; + } + lbl_1_bss_1E10[i].unk58 = i; + lbl_1_bss_1E10[i].unk5C = 0; + lbl_1_bss_1E10[i].unk60 = i; + if (lbl_1_bss_1E10[i].unk60 > 0) { + lbl_1_bss_1E10[i].unk60 = 1; + } + lbl_1_bss_1E10[i].unk64 = 0; + lbl_1_bss_1E10[i].unk68 = i; + lbl_1_bss_1E10[i].unk6C = i; + } +} + +void fn_1_19D00(void) { + omObjData* temp_r30; + s32 temp_r31; + + temp_r31 = lbl_1_bss_3C8++; + temp_r30 = omAddObjEx(lbl_1_bss_3C0, 0x100, 16, 16, -1, NULL); + lbl_1_bss_1E10[temp_r31].unk0 = temp_r30; + lbl_1_bss_1E10[temp_r31].unk4 = NULL; + lbl_1_bss_1E10[temp_r31].unk58 = temp_r31; + lbl_1_bss_1E10[temp_r31].unk5C = 0; + lbl_1_bss_1E10[temp_r31].unk60 = temp_r31; + if (lbl_1_bss_1E10[temp_r31].unk60 > 0) { + lbl_1_bss_1E10[temp_r31].unk60 = 1; + } + lbl_1_bss_1E10[temp_r31].unk64 = 0; + lbl_1_bss_1E10[temp_r31].unk68 = temp_r31; + lbl_1_bss_1E10[temp_r31].unk6C = temp_r31; + while (TRUE) { + fn_1_243B0(); + if (lbl_1_bss_1E10[temp_r31].unk4 != NULL) { + lbl_1_bss_1E10[temp_r31].unk4(temp_r30, &lbl_1_bss_1E10[temp_r31]); + } + } +} + +void fn_1_19E94(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_3C0, 0x100, 16, 16, -1, NULL); + lbl_1_bss_2050.unk00 = temp_r3; + lbl_1_bss_2050.unk04 = NULL; + fn_1_1C09C(&lbl_1_bss_2050, 0, 0, 0); + fn_1_1AC88(&lbl_1_bss_2050, 0, 0, 0); + while (TRUE) { + fn_1_243B0(); + if (lbl_1_bss_2050.unk04 != NULL) { + lbl_1_bss_2050.unk04(temp_r3, &lbl_1_bss_2050); + } + } +} + +s32 lbl_1_data_32C[][4] = { + { 177, 104, 120, 55 }, + { 251, 104, 458, 55 }, + { 325, 104, 120, 142 }, + { 399, 104, 458, 142 } +}; + +s32 lbl_1_data_36C[][6] = { + { 168, 90, 120, 51, 112, 55 }, + { 248, 190, 458, 51, 466, 55 }, + { 328, 90, 120, 222, 112, 282 }, + { 408, 190, 458, 222, 466, 282 } +}; + +s32 lbl_1_data_3CC[] = { 224, 456, 272, 292, 468, 282 }; + +float lbl_1_data_3E4[][5] = { + { 262.0f, 119.0f, 1.3f, 227.0f, 455.0f }, + { 314.0f, 168.0f, 0.75f, 265.0f, 416.0f }, + { 366.0f, 204.0f, 0.75f, 230.0f, 450.0f }, + { 418.0f, 240.0f, 0.75f, 300.0f, 381.0f }, + { -1.0f, 289.0f, 1.3f, 220.0f, 460.0f } +}; + +s32 lbl_1_data_448[][4] = { + { 262, 262, 262, 262 }, + { 314, 307, 373, 373 }, + { 366, 373, 307, 418 }, + { 418, 418, 418, 307 } +}; + +s32 lbl_1_data_488 = -1; + +void fn_1_19F5C(omObjData* arg0) { + float var_f30; + float var_f31; + s32 temp_r28; + s32 var_r29; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 i; + s32 j; + + temp_r28 = lbl_1_bss_2050.unk34; + var_r29 = var_r27 = var_r26 = var_r25 = 0; + lbl_1_bss_2050.unk1C[0] = 0; + var_r29 = 1; + for (i = 1; i < 4; i++) { + if (lbl_1_bss_1E10[i].unk60 == 0) { + var_r29++; + } + } + var_r27 = 1; + for (i = 1; i < 4; i++) { + if (HuPadStatGet(i) != -1) { + var_r27++; + } + } + if (var_r27 >= 2) { + fn_1_1AA28(); + if (HuPadStkX[lbl_1_bss_1E10->unk6C] >= 5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 2)) { + var_r29++; + var_r26 = 1; + } else if (HuPadStkX[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 1)) { + var_r29--; + var_r26 = -1; + } + } else { + fn_1_1AB58(); + } + if (var_r29 < 1) { + var_r29 = var_r27; + } else if (var_r29 > var_r27) { + if (var_r26 == 0) { + var_r29 = var_r27; + var_r25 = 1; + } else { + var_r29 = 1; + } + } + if (var_r26 != 0 || var_r25 != 0) { + lbl_1_bss_2050.unk1C[0] = 1; + HuAudFXPlay(0); + for (i = 0; i <= 10; i++) { + if (i <= 5) { + var_f30 = fn_1_24204(0.0f, 10.0f, i, 5.0f); + var_f31 = fn_1_24204(1.0f, 0.0f, i, 5.0f); + } else { + var_f30 = fn_1_24204(10.0f, 0.0f, i - 5, 5.0f); + var_f31 = fn_1_24204(0.0f, 1.0f, i - 5, 5.0f); + } + if (var_r26 == 1) { + HuSprPosSet(temp_r28, 9, lbl_1_data_32C[3][0] + 50 + var_f30, lbl_1_data_32C[0][1]); + } else if (var_r26 == -1) { + HuSprPosSet(temp_r28, 8, lbl_1_data_32C[0][0] - 50 - var_f30, lbl_1_data_32C[0][1]); + } + for (j = 0; j < 4; j++) { + if (j < var_r29 && lbl_1_bss_1E10[j].unk60 == 1) { + lbl_1_bss_1E10[j].unk70[3] = 0; + HuSprScaleSet(temp_r28, j, var_f31, 1.0f); + HuSprScaleSet(temp_r28, j + 4, var_f31, 1.0f); + if (i == 5) { + HuSprBankSet(temp_r28, j, 0); + } + } else if (j >= var_r29 && lbl_1_bss_1E10[j].unk60 == 0) { + lbl_1_bss_1E10[j].unk70[3] = 1; + HuSprScaleSet(temp_r28, j, var_f31, 1.0f); + HuSprScaleSet(temp_r28, j + 4, var_f31, 1.0f); + if (i == 5) { + HuSprBankSet(temp_r28, j, 1); + } + } + } + fn_1_243B0(); + } + for (j = 0; j < 4; j++) { + if (j < var_r29) { + lbl_1_bss_1E10[j].unk60 = 0; + } else { + lbl_1_bss_1E10[j].unk60 = 1; + } + } + } + lbl_1_bss_2050.unk1C[0] = 0; +} + +void fn_1_1A564(void) { + s32 temp_r30; + s32 i; + + temp_r30 = lbl_1_bss_2050.unk34; + for (i = 0; i < 19; i++) { + HuSprAttrSet(temp_r30, i, HUSPR_ATTR_DISPOFF); + } + for (i = 0; i < 4; i++) { + HuSprBankSet(temp_r30, i, 0); + lbl_1_bss_1E10[i].unk70[3] = lbl_1_bss_1E10[i].unk60 = 0; + HuSprAttrReset(temp_r30, i, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(temp_r30, 4 + i, HUSPR_ATTR_DISPOFF); + } + HuSprAttrReset(temp_r30, 10, HUSPR_ATTR_DISPOFF); + for (i = 0; i < 4; i++) { + HuSprAttrReset(temp_r30, 11 + i, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(temp_r30, 15 + i, HUSPR_ATTR_DISPOFF); + } + HuSprGrpPosSet(temp_r30, 0.0f, -500.0f); +} + +void fn_1_1A6A0(void) { + float var_f31; + s32 temp_r28; + s32 i; + + temp_r28 = lbl_1_bss_2050.unk34; + fn_1_1A564(); + for (i = 0; i <= 60; i++) { + fn_1_243B0(); + if (i <= 50) { + var_f31 = fn_1_24204(-500.0f, 10.0f, i, 50.0f); + } else { + var_f31 = fn_1_2412C(10.0f, 2.06f, i - 50, 10.0f); + } + HuSprGrpPosSet(temp_r28, 0.0f, var_f31); + } +} + +void fn_1_1A8E8(void) { + float var_f31; + s32 spC; + s32 sp8; + s32 temp_r30; + s32 i; + + spC = 0; + sp8 = 0; + temp_r30 = lbl_1_bss_2050.unk34; + for (i = 0; i <= 60; i++) { + fn_1_243B0(); + if (i <= 10) { + var_f31 = fn_1_24204(2.06f, 10.0f, i, 10.0f); + } else { + var_f31 = fn_1_2412C(10.0f, -500.0f, i - 10, 50.0f); + } + HuSprGrpPosSet(temp_r30, 0.0f, var_f31); + } + fn_1_1B260(0); +} + +void fn_1_1AA28(void) { + s32 temp_r31; + + temp_r31 = lbl_1_bss_2050.unk34; + HuSprAttrReset(temp_r31, 8, HUSPR_ATTR_DISPOFF); + HuSprPosSet(temp_r31, 8, lbl_1_data_32C[0][0] - 50, lbl_1_data_32C[0][1]); + HuSprAttrReset(temp_r31, 9, HUSPR_ATTR_DISPOFF); + HuSprPosSet(temp_r31, 9, lbl_1_data_32C[3][0] + 50, lbl_1_data_32C[0][1]); +} + +void fn_1_1AB58(void) { + s32 temp_r31; + + temp_r31 = lbl_1_bss_2050.unk34; + HuSprAttrSet(temp_r31, 8, HUSPR_ATTR_DISPOFF); + HuSprPosSet(temp_r31, 8, lbl_1_data_32C[0][0] - 50, lbl_1_data_32C[0][1]); + HuSprAttrSet(temp_r31, 9, HUSPR_ATTR_DISPOFF); + HuSprPosSet(temp_r31, 9, lbl_1_data_32C[3][0] + 50, lbl_1_data_32C[0][1]); +} + +void fn_1_1AC88(StructBss2050* arg0, s32 arg1, s32 arg2, s32 arg3) { + AnimData* temp_r26; + AnimData* temp_r25; + s32 var_r29; + s32 var_r28; + s32 i; + + var_r29 = HuSprGrpCreate(19); + arg0->unk34 = var_r29; + temp_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 111)); + for (i = 0; i < 4; i++) { + var_r28 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 99)), 1000, 0); + HuSprGrpMemberSet(var_r29, i, var_r28); + HuSprPosSet(var_r29, i, lbl_1_data_32C[i % 4][0], lbl_1_data_32C[0][1]); + var_r28 = HuSprCreate(temp_r26, 1010, 0); + HuSprGrpMemberSet(var_r29, 4 + i, var_r28); + HuSprTPLvlSet(var_r29, 4 + i, 0.5f); + HuSprPosSet(var_r29, 4 + i, lbl_1_data_32C[i % 4][0] + 1, lbl_1_data_32C[0][1] + 2); + } + temp_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 137)); + for (i = 0; i < 2; i++) { + var_r28 = HuSprCreate(temp_r26, 0, 0); + HuSprGrpMemberSet(var_r29, 8 + i, var_r28); + HuSprBankSet(var_r29, 8 + i, i); + } + var_r28 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 98)), 2000, 0); + HuSprGrpMemberSet(var_r29, 10, var_r28); + HuSprTPLvlSet(var_r29, 10, 0.8f); + fn_1_26790(var_r29, 10, 288.0f, 240.0f); + temp_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 101)); + temp_r25 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 102)); + for (i = 0; i < 4; i++) { + var_r28 = HuSprCreate(temp_r26, 1980, 0); + HuSprGrpMemberSet(var_r29, 11 + i, var_r28); + HuSprBankSet(var_r29, 11 + i, i); + fn_1_26790(var_r29, 11 + i, lbl_1_data_32C[i][2], lbl_1_data_32C[i][3]); + var_r28 = HuSprCreate(temp_r25, 1990, 0); + HuSprGrpMemberSet(var_r29, 15 + i, var_r28); + HuSprBankSet(var_r29, 15 + i, i); + HuSprTPLvlSet(var_r29, 15 + i, 0.5f); + fn_1_26790(var_r29, 15 + i, lbl_1_data_32C[i][2] + 1, lbl_1_data_32C[i][3] + 6); + } + fn_1_1A564(); +} + +void fn_1_1B260(s32 arg0) { + s32 temp_r30; + s32 i; + + temp_r30 = lbl_1_bss_2050.unk30; + for (i = 0; i < 86; i++) { + HuSprAttrSet(temp_r30, i, HUSPR_ATTR_DISPOFF); + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1E10[i].unk60 != 0) { + HuSprAttrSet(temp_r30, 16 + lbl_1_bss_1E10[i].unk58, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(temp_r30, 20 + lbl_1_bss_1E10[i].unk58, HUSPR_ATTR_DISPOFF); + } else { + HuSprAttrReset(temp_r30, 16 + lbl_1_bss_1E10[i].unk58, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(temp_r30, 20 + lbl_1_bss_1E10[i].unk58, HUSPR_ATTR_DISPOFF); + } + HuSprPosSet(temp_r30, 16 + lbl_1_bss_1E10[i].unk58, + lbl_1_data_36C[lbl_1_bss_1E10[i].unk68 % 4][0], + lbl_1_data_36C[lbl_1_bss_1E10[i].unk68 / 4][1]); + HuSprPosSet(temp_r30, 20 + lbl_1_bss_1E10[i].unk58, + lbl_1_data_36C[lbl_1_bss_1E10[i].unk68 % 4][0], + lbl_1_data_36C[lbl_1_bss_1E10[i].unk68 / 4][1]); + } + for (i = 0; i < 8; i++) { + HuSprBankSet(temp_r30, i, 0); + HuSprAttrReset(temp_r30, i, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(temp_r30, 8 + i, HUSPR_ATTR_DISPOFF); + } + HuSprAttrReset(temp_r30, 40, HUSPR_ATTR_DISPOFF); + for (i = 0; i < 4; i++) { + HuSprBankSet(temp_r30, 16 + i, 0); + HuSprBankSet(temp_r30, 20 + i, 0); + HuSprAttrReset(temp_r30, 41 + i, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(temp_r30, 45 + i, HUSPR_ATTR_DISPOFF); + fn_1_26790(temp_r30, 41 + i, lbl_1_data_36C[i][2], lbl_1_data_36C[i][3]); + fn_1_26790(temp_r30, 45 + i, lbl_1_data_36C[i][2], lbl_1_data_36C[i][3] + 6); + } + HuWinDispOff(lbl_1_bss_2050.unk44[0]); + HuWinDispOff(lbl_1_bss_2050.unk44[1]); + if (arg0 == 1) { + HuSprAttrSet(temp_r30, 40, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(temp_r30, 53, HUSPR_ATTR_DISPOFF); + for (i = 0; i < 4; i++) { + fn_1_26790(temp_r30, 41 + i, lbl_1_data_36C[i][4], lbl_1_data_36C[i][5]); + fn_1_26790(temp_r30, 45 + i, lbl_1_data_36C[i][4] + 1, lbl_1_data_36C[i][5] + 6); + } + for (i = 0; i < 4; i++) { + HuSprAttrReset(temp_r30, 81 + i, HUSPR_ATTR_DISPOFF); + HuSprBankSet(temp_r30, 81 + i, lbl_1_bss_1E10[i].unk60); + HuSprPosSet(temp_r30, 81 + i, lbl_1_data_3E4[lbl_1_bss_1E10[i].unk58][0], lbl_1_data_3CC[2]); + HuSprScaleSet(temp_r30, 81 + i, 1.0f, 1.0f); + HuSprAttrReset(temp_r30, 65 + i, HUSPR_ATTR_DISPOFF); + HuSprPosSet(temp_r30, 65 + i, lbl_1_data_3E4[i][0] + 1.0f, lbl_1_data_3CC[2] + 2); + } + HuWinDispOn(lbl_1_bss_2050.unk44[0]); + } else if (arg0 == 2) { + HuSprAttrSet(temp_r30, 40, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(temp_r30, 53, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(temp_r30, 56, HUSPR_ATTR_DISPOFF); + HuSprBankSet(temp_r30, 56, 0); + for (i = 0; i < 4; i++) { + fn_1_26790(temp_r30, 41 + i, lbl_1_data_36C[i][4], lbl_1_data_36C[i][5]); + fn_1_26790(temp_r30, 45 + i, lbl_1_data_36C[i][4] + 1, lbl_1_data_36C[i][5] + 6); + } + HuWinDispOn(lbl_1_bss_2050.unk44[1]); + } + HuWinPosSet(lbl_1_bss_2050.unk44[0], 140.0f, lbl_1_data_3CC[2] - 519); + HuWinPosSet(lbl_1_bss_2050.unk44[1], 100.0f, lbl_1_data_3CC[2] - 519); + HuSprPosSet(temp_r30, 54, lbl_1_data_3CC[3], lbl_1_data_3CC[2]); + HuSprPosSet(temp_r30, 55, lbl_1_data_3CC[4], lbl_1_data_3CC[2]); + HuSprGrpPosSet(temp_r30, 0.0f, -500.0f); +} + +void fn_1_1BCEC(void) { + float var_f31; + s32 sp8; + s32 i; + + sp8 = lbl_1_bss_2050.unk30; + for (i = 0; i <= 60; i++) { + fn_1_243B0(); + if (i <= 50) { + var_f31 = fn_1_24204(-500.0f, 10.0f, i, 50.0f); + } else { + var_f31 = fn_1_2412C(10.0f, 2.06f, i - 50, 10.0f); + } + HuSprGrpPosSet(lbl_1_bss_2050.unk30, 0.0f, var_f31); + HuWinPosSet(lbl_1_bss_2050.unk44[0], 120.0f, lbl_1_data_3CC[2] - 19 + var_f31); + HuWinPosSet(lbl_1_bss_2050.unk44[1], 100.0f, lbl_1_data_3CC[2] - 19 + var_f31); + } +} + +void fn_1_1BECC(void) { + float var_f31; + s32 i; + + for (i = 0; i <= 60; i++) { + fn_1_243B0(); + if (i <= 10) { + var_f31 = fn_1_24204(2.06f, 10.0f, i, 10.0f); + } else { + var_f31 = fn_1_2412C(10.0f, -500.0f, i - 10, 50.0f); + } + HuSprGrpPosSet(lbl_1_bss_2050.unk30, 0.0f, var_f31); + HuWinPosSet(lbl_1_bss_2050.unk44[0], 120.0f, lbl_1_data_3CC[2] - 19 + var_f31); + HuWinPosSet(lbl_1_bss_2050.unk44[1], 100.0f, lbl_1_data_3CC[2] - 19 + var_f31); + } +} + +void fn_1_1C09C(StructBss2050* arg0, s32 arg1, s32 arg2, s32 arg3) { + AnimData* temp_r28; + AnimData* temp_r26; + AnimData* temp_r25; + AnimData* temp_r24; + AnimData* temp_r23; + s32 var_r29; + s32 var_r30; + s32 i; + + var_r29 = arg0->unk30 = HuSprGrpCreate(86); + temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 111)); + for (i = 0; i < 8; i++) { + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 103 + i)), 1000, 0); + HuSprGrpMemberSet(var_r29, i, var_r30); + HuSprPosSet(var_r29, i, lbl_1_data_36C[i % 4][0], lbl_1_data_36C[i / 4][1]); + var_r30 = HuSprCreate(temp_r28, 1010, 0); + HuSprGrpMemberSet(var_r29, 8 + i, var_r30); + HuSprTPLvlSet(var_r29, 8 + i, 0.5f); + HuSprPosSet(var_r29, 8 + i, lbl_1_data_36C[i % 4][0] + 1, (lbl_1_data_36C[i / 4][1] + 2)); + } + for (i = 0; i < 4; i++) { + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 112 + i)), 0, 0); + HuSprGrpMemberSet(var_r29, 16 + i, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 117 + i)), 10, 0); + HuSprGrpMemberSet(var_r29, 20 + i, var_r30); + } + temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 116)); + temp_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 121)); + temp_r25 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 122)); + temp_r24 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 124)); + temp_r23 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 123)); + for (i = 0; i < 4; i++) { + var_r30 = HuSprCreate(temp_r28, 0, 0); + HuSprGrpMemberSet(var_r29, 24 + i, var_r30); + var_r30 = HuSprCreate(temp_r26, 30, 0); + HuSprGrpMemberSet(var_r29, 28 + i, var_r30); + var_r30 = HuSprCreate(temp_r25, 10, 0); + HuSprGrpMemberSet(var_r29, 32 + i, var_r30); + var_r30 = HuSprCreate(temp_r24, 20, 0); + HuSprGrpMemberSet(var_r29, 36 + i, var_r30); + HuSprTPLvlSet(var_r29, 36 + i, 0.5f); + var_r30 = HuSprCreate(temp_r23, 20, 0); + HuSprGrpMemberSet(var_r29, 49 + i, var_r30); + } + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 100)), 2000, 0); + HuSprGrpMemberSet(var_r29, 40, var_r30); + HuSprTPLvlSet(var_r29, 40, 0.8f); + fn_1_26790(var_r29, 40, 288.0f, 240.0f); + temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 101)); + temp_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 102)); + for (i = 0; i < 4; i++) { + var_r30 = HuSprCreate(temp_r28, 1980, 0); + HuSprGrpMemberSet(var_r29, 41 + i, var_r30); + HuSprBankSet(var_r29, 41 + i, i); + fn_1_26790(var_r29, 41 + i, lbl_1_data_36C[i][2], lbl_1_data_36C[i][3]); + var_r30 = HuSprCreate(temp_r26, 1990, 0); + HuSprGrpMemberSet(var_r29, 45 + i, var_r30); + HuSprBankSet(var_r29, 45 + i, i); + HuSprTPLvlSet(var_r29, 45 + i, 0.5f); + fn_1_26790(var_r29, 45 + i, lbl_1_data_36C[i][2] + 1, lbl_1_data_36C[i][3] + 6); + } + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 125)), 2000, 0); + HuSprGrpMemberSet(var_r29, 53, var_r30); + HuSprTPLvlSet(var_r29, 53, 0.8f); + fn_1_26790(var_r29, 53, 288.0f, 240.0f); + temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 137)); + for (i = 0; i < 2; i++) { + var_r30 = HuSprCreate(temp_r28, 0, 0); + HuSprGrpMemberSet(var_r29, 54 + i, var_r30); + HuSprBankSet(var_r29, 54 + i, i); + } + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 139)), 1000, 0); + HuSprGrpMemberSet(var_r29, 56, var_r30); + HuSprPosSet(var_r29, 56, 380.0f, lbl_1_data_3CC[2]); + for (i = 0; i < 2; i++) { + arg0->unk44[i] = HuWinExCreateStyled(0.0f, 0.0f, 200, 200, -1, 1); + HuWinBGTPLvlSet(arg0->unk44[i], 0.0f); + HuWinMesSet(arg0->unk44[i], MAKE_MESSID(27, 48 + i)); + HuWinMesSpeedSet(arg0->unk44[i], 0); + HuWinDispOff(arg0->unk44[i]); + winData[arg0->unk44[i]].mess_shadow_color = 0; + } + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 138)), 990, 0); + HuSprGrpMemberSet(var_r29, 85, var_r30); + temp_r25 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 134)); + for (i = 0; i < 8; i++) { + temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 126 + i)); + var_r30 = HuSprCreate(temp_r28, 1000, 0); + HuSprGrpMemberSet(var_r29, 57 + i, var_r30); + var_r30 = HuSprCreate(temp_r25, 1010, 0); + HuSprGrpMemberSet(var_r29, 65 + i, var_r30); + } + temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 135)); + temp_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 136)); + for (i = 0; i < 4; i++) { + var_r30 = HuSprCreate(temp_r28, 990, 0); + HuSprGrpMemberSet(var_r29, 73 + i, var_r30); + var_r30 = HuSprCreate(temp_r26, 990, 0); + HuSprGrpMemberSet(var_r29, 77 + i, var_r30); + } + temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGMODE, 140)); + for (i = 0; i < 4; i++) { + var_r30 = HuSprCreate(temp_r28, 990, 0); + HuSprGrpMemberSet(var_r29, 81 + i, var_r30); + } + fn_1_1B260(0); +} + +void fn_1_1CB4C(void) { + StructBss8_24* temp_r30; + float temp_f31; + float temp_f30; + s32 temp_r29; + s32 i; + s32 j; + + temp_r29 = lbl_1_bss_2050.unk30; + for (i = 0; i < 8; i++) { + HuSprBankSet(temp_r29, i, 0); + } + for (i = 0; i < 4; i++) { + HuSprBankSet(temp_r29, 16 + i, 0); + HuSprBankSet(temp_r29, 20 + i, 0); + HuSprBankSet(temp_r29, 24 + i, 0); + HuSprBankSet(temp_r29, 28 + i, 0); + HuSprBankSet(temp_r29, 32 + i, 0); + } + for (i = 0; i <= 10; i++) { + fn_1_243B0(); + for (j = 0; j < 4; j++) { + temp_r30 = &lbl_1_bss_1E10[j]; + temp_f31 = fn_1_24204(lbl_1_data_36C[temp_r30->unk68 % 4][0], lbl_1_data_36C[temp_r30->unk58 % 4][0], i, 10.0f); + temp_f30 = fn_1_24204(lbl_1_data_36C[temp_r30->unk68 / 4][1], lbl_1_data_36C[temp_r30->unk58 / 4][1], i, 10.0f); + HuSprPosSet(temp_r29, 16 + temp_r30->unk58, temp_f31, temp_f30); + HuSprPosSet(temp_r29, 20 + temp_r30->unk58, temp_f31, temp_f30); + } + } + for (i = 0; i < 4; i++) { + lbl_1_bss_1E10[i].unk68 = lbl_1_bss_1E10[i].unk58; + lbl_1_bss_1E10[i].unk70[0] = 0; + } +} + +void fn_1_1CEB0(omObjData* arg0, StructBss8_24* arg1) { + float temp_f31; + float temp_f30; + s32 temp_r25; + s32 var_r27; + s32 var_r26; + s32 temp_r24; + s32 temp_r23; + s32 var_r30; + s32 var_r29; + s32 i; + + temp_r25 = lbl_1_bss_2050.unk30; + var_r27 = 0; + var_r26 = 0; + temp_r24 = var_r30 = arg1->unk68 % 4; + temp_r23 = var_r29 = arg1->unk68 / 4; + if (arg1->unk70[0] == 0) { + if (HuPadBtnDown[arg1->unk6C] & 0x100) { + arg1->unk70[0] = 1; + HuSprBankSet(temp_r25, arg1->unk68, 1); + HuSprBankSet(temp_r25, 16 + arg1->unk58, 1); + HuSprBankSet(temp_r25, 20 + arg1->unk58, 1); + HuAudFXPlay(0x6D + arg1->unk68); + } else { + if (HuPadStkX[arg1->unk6C] >= 5 || (HuPadBtn[arg1->unk6C] & 2)) { + var_r30++; + var_r27 = 1; + if (var_r30 > 3) { + var_r30 = 3; + } + } else if (HuPadStkX[arg1->unk6C] <= -5 || (HuPadBtn[arg1->unk6C] & 1)) { + var_r30--; + var_r27 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (HuPadStkY[arg1->unk6C] <= -5 || (HuPadBtn[arg1->unk6C] & 4)) { + var_r29++; + var_r26 = 1; + if (var_r29 > 1) { + var_r29 = 1; + } + } else if (HuPadStkY[arg1->unk6C] >= 5 || (HuPadBtn[arg1->unk6C] & 8)) { + var_r29--; + var_r26 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + } else if (HuPadBtnDown[arg1->unk6C] & 0x200) { + arg1->unk70[0] = 0; + HuSprBankSet(temp_r25, arg1->unk68, 0); + HuSprBankSet(temp_r25, 16 + arg1->unk58, 0); + HuSprBankSet(temp_r25, 20 + arg1->unk58, 0); + HuAudFXPlay(3); + } + if (arg1->unk68 != var_r30 + var_r29 * 4) { + do { + for (i = 0; i < 4; i++) { + if (i != arg1->unk58 && lbl_1_bss_1E10[i].unk60 == 0 && var_r30 + var_r29 * 4 == lbl_1_bss_1E10[i].unk68) { + if (var_r27 == 0 || var_r26 == 0) { + if (var_r30 + var_r27 > 3 || var_r30 + var_r27 < 0) { + var_r30 = temp_r24; + } else { + var_r30 += var_r27; + } + if (var_r29 + var_r26 > 1 || var_r29 + var_r26 < 0) { + var_r29 = temp_r23; + } else { + var_r29 += var_r26; + } + } else { + if (var_r30 + var_r27 <= 3 && var_r30 + var_r27 >= 0) { + var_r30 += var_r27; + } else if (var_r29 + var_r26 <= 1 && var_r29 + var_r26 >= 0) { + var_r29 += var_r26; + } else { + var_r30 = temp_r24; + var_r29 = temp_r23; + } + } + break; + } + } + } while (i != 4); + if (arg1->unk68 != var_r30 + var_r29 * 4) { + arg1->unk68 = var_r30 + var_r29 * 4; + HuAudFXPlay(0); + for (i = 0; i <= 10; i++) { + fn_1_243B0(); + temp_f31 = fn_1_24204(lbl_1_data_36C[temp_r24][0], lbl_1_data_36C[var_r30][0], i, 10.0f); + temp_f30 = fn_1_24204(lbl_1_data_36C[temp_r23][1], lbl_1_data_36C[var_r29][1], i, 10.0f); + HuSprPosSet(temp_r25, 16 + arg1->unk58, temp_f31, temp_f30); + HuSprPosSet(temp_r25, 20 + arg1->unk58, temp_f31, temp_f30); + } + } + } +} + +void fn_1_1D49C(StructBss8_24* arg0) { + s32 temp_r30; + + temp_r30 = lbl_1_bss_2050.unk30; + arg0->unk64 = 0; + HuSprBankSet(temp_r30, 32 + arg0->unk58, arg0->unk64); + HuSprPosSet(temp_r30, 32 + arg0->unk58, lbl_1_data_36C[arg0->unk68 % 4][0], lbl_1_data_36C[arg0->unk68 / 4][1] + 35); + HuSprPosSet(temp_r30, 36 + arg0->unk58, lbl_1_data_36C[arg0->unk68 % 4][0] + 1, lbl_1_data_36C[arg0->unk68 / 4][1] + 37); + HuSprAttrReset(temp_r30, 32 + arg0->unk58, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(temp_r30, 36 + arg0->unk58, HUSPR_ATTR_DISPOFF); +} + +s32 fn_1_1D688(StructBss8_24* arg0) { + float var_f31; + s32 i; + s32 temp_r29; + s32 var_r28; + s32 var_r26; + s32 var_r27; + + var_r28 = 0; + temp_r29 = lbl_1_bss_2050.unk30; + while (TRUE) { + fn_1_243B0(); + var_r28 = 0; + var_r26 = arg0->unk64; + if (HuPadStkX[lbl_1_bss_1E10->unk6C] >= 5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 2)) { + if (GWGameStat.field10E_bit4 == 1) { + arg0->unk64++; + var_r28 = 1; + if (arg0->unk64 > 3) { + arg0->unk64 = 0; + } + } else { + arg0->unk64++; + var_r28 = 1; + if (arg0->unk64 > 2) { + arg0->unk64 = 0; + } + } + } else if (HuPadStkX[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 1)) { + if (GWGameStat.field10E_bit4 == 1) { + arg0->unk64--; + var_r28 = -1; + if (arg0->unk64 < 0) { + arg0->unk64 = 3; + } + } else { + arg0->unk64--; + var_r28 = -1; + if (arg0->unk64 < 0) { + arg0->unk64 = 2; + } + } + } else if (HuPadBtnDown[0] & 0x100) { + var_r27 = 1; + HuAudFXPlay(2); + break; + } else if (HuPadBtnDown[0] & 0x200) { + var_r27 = 0; + HuAudFXPlay(3); + break; + } + if (arg0->unk64 != var_r26) { + HuAudFXPlay(0); + for (i = 0; i <= 5; i++) { + fn_1_243B0(); + var_f31 = fn_1_24204(lbl_1_data_36C[arg0->unk68 % 4][0], lbl_1_data_36C[arg0->unk68 % 4][0] + var_r28 * 10, i, 5.0f); + HuSprPosSet(temp_r29, 32 + arg0->unk58, var_f31, lbl_1_data_36C[arg0->unk68 / 4][1] + 35); + HuSprPosSet(temp_r29, 36 + arg0->unk58, var_f31 + 1.0f, lbl_1_data_36C[arg0->unk68 / 4][1] + 37); + } + HuSprBankSet(temp_r29, 32 + arg0->unk58, arg0->unk64); + for (i = 0; i <= 5; i++) { + fn_1_243B0(); + var_f31 = fn_1_24204(lbl_1_data_36C[arg0->unk68 % 4][0] + var_r28 * 10, lbl_1_data_36C[arg0->unk68 % 4][0], i, 5.0f); + HuSprPosSet(temp_r29, 32 + arg0->unk58, var_f31, lbl_1_data_36C[arg0->unk68 / 4][1] + 35); + HuSprPosSet(temp_r29, 36 + arg0->unk58, var_f31 + 1.0f, lbl_1_data_36C[arg0->unk68 / 4][1] + 37); + } + } + } + if (var_r27 == 1) { + HuSprPosSet(temp_r29, 49 + arg0->unk58, lbl_1_data_36C[arg0->unk68 % 4][0], lbl_1_data_36C[arg0->unk68 / 4][1] + 35); + HuSprBankSet(temp_r29, 49 + arg0->unk58, arg0->unk64); + HuSprAttrReset(temp_r29, 49 + arg0->unk58, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(temp_r29, 32 + arg0->unk58, HUSPR_ATTR_DISPOFF); + } + return var_r27; +} + +void fn_1_1DD74(s32 arg0, StructBss8_24* arg1) { + float temp_f31; + float var_f30; + s32 temp_r27; + s32 var_r26; + s32 var_r25; + s32 sp8; + s32 temp_r23; + s32 temp_r22; + s32 var_r30; + s32 var_r29; + s32 i; + + temp_r27 = lbl_1_bss_2050.unk30; + var_r26 = 0; + var_r25 = 0; + sp8 = arg1->unk64; + temp_r23 = var_r30 = arg1->unk68 % 4; + temp_r22 = var_r29 = arg1->unk68 / 4; + if (arg1->unk70[0] == 0) { + if (HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x100) { + arg1->unk70[0] = 1; + HuSprBankSet(temp_r27, arg1->unk68, 1); + HuSprBankSet(temp_r27, 24 + arg1->unk58, 1); + HuSprBankSet(temp_r27, 28 + arg1->unk58, 1); + HuAudFXPlay(0x6D + arg1->unk68); + fn_1_1D49C(arg1); + } else { + if (HuPadStkX[lbl_1_bss_1E10->unk6C] >= 5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 2)) { + var_r30++; + var_r26 = 1; + if (var_r30 > 3) { + var_r30 = 3; + } + } else if (HuPadStkX[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 1)) { + var_r30--; + var_r26 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (HuPadStkY[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 4)) { + var_r29++; + var_r25 = 1; + if (var_r29 > 1) { + var_r29 = 1; + } + } else if (HuPadStkY[lbl_1_bss_1E10->unk6C] >= 5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 8)) { + var_r29--; + var_r25 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + } else if (HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x200) { + arg1->unk70[0] = arg1->unk70[2] = 0; + HuSprBankSet(temp_r27, arg1->unk68, 0); + HuSprBankSet(temp_r27, 24 + arg1->unk58, 0); + HuSprBankSet(temp_r27, 28 + arg1->unk58, 0); + HuSprAttrSet(temp_r27, 32 + arg1->unk58, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(temp_r27, 36 + arg1->unk58, HUSPR_ATTR_DISPOFF); + HuAudFXPlay(3); + } + if (arg1->unk68 == var_r30 + var_r29 * 4) { + return; + } + do { + for (i = 0; i < 4; i++) { + if (i != arg1->unk58 && lbl_1_bss_1E10[i].unk70[0] == 1 && var_r30 + var_r29 * 4 == lbl_1_bss_1E10[i].unk68) { + if (var_r26 == 0 || var_r25 == 0) { + if (var_r30 + var_r26 > 3 || var_r30 + var_r26 < 0) { + var_r30 = temp_r23; + } else { + var_r30 += var_r26; + } + if (var_r29 + var_r25 > 1 || var_r29 + var_r25 < 0) { + var_r29 = temp_r22; + } else { + var_r29 += var_r25; + } + } else { + if (var_r30 + var_r26 <= 3 && var_r30 + var_r26 >= 0) { + var_r30 += var_r26; + } else if (var_r29 + var_r25 <= 1 && var_r29 + var_r25 >= 0) { + var_r29 += var_r25; + } else { + var_r30 = temp_r23; + var_r29 = temp_r22; + } + } + break; + } + } + } while (i != 4); + if (arg1->unk68 != var_r30 + var_r29 * 4) { + arg1->unk68 = var_r30 + var_r29 * 4; + HuAudFXPlay(0); + for (i = 0; i <= 10; i++) { + fn_1_243B0(); + temp_f31 = fn_1_24204(lbl_1_data_36C[temp_r23][0], lbl_1_data_36C[var_r30][0], i, 10.0f); + var_f30 = fn_1_24204(lbl_1_data_36C[temp_r22][1], lbl_1_data_36C[var_r29][1], i, 10.0f); + HuSprPosSet(temp_r27, 24 + arg1->unk58, temp_f31, var_f30); + HuSprPosSet(temp_r27, 28 + arg1->unk58, temp_f31, var_f30); + HuSprPosSet(temp_r27, 32 + arg1->unk58, temp_f31, 35.0f + var_f30); + HuSprPosSet(temp_r27, 36 + arg1->unk58, 1.0f + temp_f31, 37.0f + var_f30); + } + } +} + +void fn_1_1E608(StructBss8_24* arg0) { + s32 temp_r30; + s32 i; + + temp_r30 = lbl_1_bss_2050.unk30; + while (TRUE) { + for (i = 0; i < 4; i++) { + if (i != arg0->unk58 && lbl_1_bss_1E10[i].unk70[0] == 1 && arg0->unk68 == lbl_1_bss_1E10[i].unk68) { + arg0->unk68++; + break; + } + } + if (i == 4) { + break; + } + }; + arg0->unk64 = 0; + HuSprBankSet(temp_r30, arg0->unk68, 0); + HuSprBankSet(temp_r30, 24 + arg0->unk58, 0); + HuSprBankSet(temp_r30, 28 + arg0->unk58, 0); + HuSprBankSet(temp_r30, 32 + arg0->unk58, arg0->unk64); + HuSprBankSet(temp_r30, 49 + arg0->unk58, arg0->unk64); + HuSprPosSet(temp_r30, 24 + arg0->unk58, lbl_1_data_36C[arg0->unk68 % 4][0], lbl_1_data_36C[arg0->unk68 / 4][1]); + HuSprPosSet(temp_r30, 28 + arg0->unk58, lbl_1_data_36C[arg0->unk68 % 4][0], lbl_1_data_36C[arg0->unk68 / 4][1]); + HuSprPosSet(temp_r30, 32 + arg0->unk58, lbl_1_data_36C[arg0->unk68 % 4][0], lbl_1_data_36C[arg0->unk68 / 4][1] + 35); + HuSprPosSet(temp_r30, 36 + arg0->unk58, lbl_1_data_36C[arg0->unk68 % 4][0] + 1, lbl_1_data_36C[arg0->unk68 / 4][1] + 37); + HuSprPosSet(temp_r30, 49 + arg0->unk58, lbl_1_data_36C[arg0->unk68 % 4][0] + 1, lbl_1_data_36C[arg0->unk68 / 4][1] + 37); + arg0->unk70[2] = 0; + HuSprAttrReset(temp_r30, 24 + arg0->unk58, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(temp_r30, 28 + arg0->unk58, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(temp_r30, 32 + arg0->unk58, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(temp_r30, 36 + arg0->unk58, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(temp_r30, 49 + arg0->unk58, HUSPR_ATTR_DISPOFF); +} + +void fn_1_1EB20(StructBss8_24* arg0) { + s32 temp_r30; + + temp_r30 = lbl_1_bss_2050.unk30; + HuSprBankSet(temp_r30, arg0->unk68, 0); + HuSprAttrSet(temp_r30, 24 + arg0->unk58, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(temp_r30, 28 + arg0->unk58, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(temp_r30, 32 + arg0->unk58, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(temp_r30, 36 + arg0->unk58, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(temp_r30, 49 + arg0->unk58, HUSPR_ATTR_DISPOFF); +} + +void fn_1_1EBE8(void) { + s32 temp_r30; + s32 i; + + temp_r30 = lbl_1_bss_2050.unk30; + HuSprPosSet(temp_r30, 54, lbl_1_data_3CC[3], lbl_1_data_3CC[2]); + HuSprPosSet(temp_r30, 55, lbl_1_data_3CC[4], lbl_1_data_3CC[2]); + for (i = 0; i < 2; i++) { + HuSprAttrReset(temp_r30, 54 + i, HUSPR_ATTR_DISPOFF); + } +} + +void fn_1_1ED20(void) { + s32 temp_r30; + s32 i; + + temp_r30 = lbl_1_bss_2050.unk30; + HuSprPosSet(temp_r30, 54, lbl_1_data_3CC[3], lbl_1_data_3CC[2]); + HuSprPosSet(temp_r30, 55, lbl_1_data_3CC[4], lbl_1_data_3CC[2]); + for (i = 0; i < 2; i++) { + HuSprAttrSet(temp_r30, 54 + i, HUSPR_ATTR_DISPOFF); + } +} + +void fn_1_1EE58(s32 arg0, UnkFunc1EE58Struct* arg1) { + float var_f31; + float var_f30; + s32 temp_r29; + s32 var_r28; + s32 sp8; + s32 i; + + temp_r29 = arg1->unk30; + var_r28 = 0; + sp8 = arg1->unk08; + lbl_1_bss_2050.unk1C[3] = 0; + arg1->unk08 = 1; + if (HuPadStkX[lbl_1_bss_1E10->unk6C] >= 5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 2)) { + var_r28 = 1; + arg1->unk1C++; + if (arg1->unk1C > 2) { + arg1->unk1C = 0; + } + } else if (HuPadStkX[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 1)) { + var_r28 = -1; + arg1->unk1C--; + if (arg1->unk1C < 0) { + arg1->unk1C = 2; + } + } + if (var_r28 != 0) { + lbl_1_bss_2050.unk1C[3] = 1; + HuAudFXPlay(0); + for (i = 0; i <= 10; i++) { + fn_1_243B0(); + if (i <= 5) { + var_f31 = fn_1_24204(0.0f, 10.0f, i, 5.0f); + var_f30 = fn_1_24204(1.0f, 0.0f, i, 5.0f); + } else { + var_f31 = fn_1_24204(10.0f, 0.0f, i - 5, 5.0f); + var_f30 = fn_1_24204(0.0f, 1.0f, i - 5, 5.0f); + } + if (var_r28 == 1) { + HuSprPosSet(temp_r29, 55, lbl_1_data_3CC[4] + var_f31, lbl_1_data_3CC[2]); + HuSprPosSet(temp_r29, 56, 380.0f + var_f31, lbl_1_data_3CC[2]); + } else { + HuSprPosSet(temp_r29, 54, lbl_1_data_3CC[3] - var_f31, lbl_1_data_3CC[2]); + HuSprPosSet(temp_r29, 56, 380.0f - var_f31, lbl_1_data_3CC[2]); + } + HuSprScaleSet(temp_r29, 56, 1.0f, var_f30); + if (i == 6) { + HuSprBankSet(temp_r29, 56, arg1->unk1C); + } + } + } + lbl_1_bss_2050.unk1C[3] = 0; +} + +void fn_1_1F32C(omObjData* arg0) { + float var_f31; + float var_f30; + s32 temp_r29; + s32 var_r28; + s32 var_r27; + s32 j; + s32 i; + + var_r27 = 0; + temp_r29 = lbl_1_bss_2050.unk30; + lbl_1_bss_2050.unk1C[3] = 0; + var_r28 = lbl_1_bss_2050.unk1C[0] - var_r27; + if (var_r28 > 3) { + var_r28 = 0; + } else if (var_r28 < 0) { + var_r28 = 3; + } + if (HuPadStkX[lbl_1_bss_1E10->unk6C] >= 5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 2)) { + var_r27 = 1; + lbl_1_bss_2050.unk1C[3] = 1; + HuAudFXPlay(0); + lbl_1_bss_2050.unk1C[0]++; + if (lbl_1_bss_2050.unk1C[0] > 3) { + lbl_1_bss_2050.unk1C[0] = 1; + } + } else if (HuPadStkX[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 1)) { + var_r27 = -1; + lbl_1_bss_2050.unk1C[3] = 1; + HuAudFXPlay(0); + lbl_1_bss_2050.unk1C[0]--; + if (lbl_1_bss_2050.unk1C[0] < 1) { + lbl_1_bss_2050.unk1C[0] = 3; + } + } + if (var_r27 != 0) { + for (i = 0; i <= 10; i++) { + fn_1_243B0(); + if (i <= 5) { + var_f31 = fn_1_24204(0.0f, 10.0f, i, 5.0f); + var_f30 = fn_1_24204(1.0f, 0.0f, i, 5.0f); + } else { + var_f31 = fn_1_24204(10.0f, 0.0f, i - 5, 5.0f); + var_f30 = fn_1_24204(0.0f, 1.0f, i - 5, 5.0f); + } + if (var_r27 == 1) { + HuSprPosSet(temp_r29, 55, lbl_1_data_3CC[1] + var_f31, lbl_1_data_3CC[2]); + } else { + HuSprPosSet(temp_r29, 54, lbl_1_data_3CC[0] - var_f31, lbl_1_data_3CC[2]); + } + if (lbl_1_bss_2050.unk1C[0] != 0) { + var_f30 = fn_1_24204(0.0f, 1.0f, i, 10.0f); + } else { + var_f30 = fn_1_24204(1.0f, 0.0f, i, 10.0f); + } + HuSprScaleSet(temp_r29, 85, var_f30, var_f30); + for (j = 0; j < 4; j++) { + var_f31 = fn_1_24204(lbl_1_data_448[lbl_1_bss_1E10[j].unk58][var_r28], lbl_1_data_448[lbl_1_bss_1E10[j].unk58][lbl_1_bss_2050.unk1C[0]], i, 10.0f); + HuSprPosSet(temp_r29, 57 + lbl_1_bss_1E10[j].unk68, var_f31, lbl_1_data_3CC[2]); + HuSprPosSet(temp_r29, 65 + j, var_f31 + 1.0f, lbl_1_data_3CC[2] + 2); + if (lbl_1_bss_1E10[j].unk60 != 0) { + HuSprPosSet(temp_r29, 77 + j, var_f31, lbl_1_data_3CC[2] + 21); + } else { + HuSprPosSet(temp_r29, 73 + j, var_f31 - 8.0f, lbl_1_data_3CC[2] - 21); + } + } + } + } + lbl_1_bss_2050.unk1C[3] = 0; +} + +void fn_1_1FABC(void) { + s32 temp_r30; + s32 i; + + temp_r30 = lbl_1_bss_2050.unk30; + for (i = 0; i < 4; i++) { + HuSprAttrSet(temp_r30, 77 + i, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(temp_r30, 73 + i, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(temp_r30, 57 + lbl_1_bss_1E10[i].unk68, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(temp_r30, 85, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(temp_r30, 65 + lbl_1_bss_1E10[i].unk58, HUSPR_ATTR_DISPOFF); + HuSprScaleSet(temp_r30, 77 + i, 0.0f, 0.0f); + HuSprScaleSet(temp_r30, 73 + i, 0.0f, 0.0f); + HuSprScaleSet(temp_r30, 57 + lbl_1_bss_1E10[i].unk68, 0.0f, 0.0f); + HuSprScaleSet(temp_r30, 81 + i, 1.0f, 1.0f); + } +} + +void fn_1_1FC44(s32 arg0) { + float var_f31; + float var_f30; + s32 temp_r30; + s32 var_r27; + s32 i; + s32 j; + + temp_r30 = lbl_1_bss_2050.unk30; + if (arg0 == 2) { + for (i = 0; i < 2; i++) { + HuSprAttrSet(temp_r30, 54 + i, HUSPR_ATTR_DISPOFF); + } + return; + } + for (i = 0; i < 4; i++) { + HuSprAttrReset(temp_r30, 57 + lbl_1_bss_1E10[i].unk68, HUSPR_ATTR_DISPOFF); + HuSprPosSet(temp_r30, 57 + lbl_1_bss_1E10[i].unk68, lbl_1_data_3E4[lbl_1_bss_1E10[i].unk58][0], lbl_1_data_3CC[2]); + if (arg0 == 0) { + HuSprScaleSet(temp_r30, 57 + lbl_1_bss_1E10[i].unk68, 0.0f, 1.0f); + } else { + HuSprScaleSet(temp_r30, 57 + lbl_1_bss_1E10[i].unk68, 1.0f, 1.0f); + } + if (lbl_1_bss_1E10[i].unk60 != 0) { + HuSprAttrReset(temp_r30, 77 + i, HUSPR_ATTR_DISPOFF); + HuSprBankSet(temp_r30, 77 + i, lbl_1_bss_1E10[i].unk64); + HuSprPosSet(temp_r30, 77 + i, lbl_1_data_3E4[lbl_1_bss_1E10[i].unk58][0], lbl_1_data_3CC[2] + 21); + if (arg0 == 0) { + HuSprScaleSet(temp_r30, 77 + i, 0.0f, 1.0f); + } else { + HuSprScaleSet(temp_r30, 77 + i, 1.0f, 1.0f); + } + } else { + HuSprAttrReset(temp_r30, 73 + i, HUSPR_ATTR_DISPOFF); + HuSprBankSet(temp_r30, 73 + i, lbl_1_bss_1E10[i].unk58); + HuSprPosSet(temp_r30, 73 + i, lbl_1_data_3E4[lbl_1_bss_1E10[i].unk58][0] - 8.0f, lbl_1_data_3CC[2] - 21); + if (arg0 == 0) { + HuSprScaleSet(temp_r30, 73 + i, 0.0f, 1.0f); + } else { + HuSprScaleSet(temp_r30, 73 + i, 1.0f, 1.0f); + } + } + } + HuSprAttrReset(temp_r30, 85, HUSPR_ATTR_DISPOFF); + HuSprPosSet(temp_r30, 85, 340.0f, lbl_1_data_3CC[2]); + HuSprScaleSet(temp_r30, 85, 0.0f, 0.0f); + if (arg0 == 0) { + lbl_1_bss_2050.unk1C[0] = 1; + var_r27 = 0; + } else { + var_r27 = lbl_1_bss_2050.unk1C[0]; + lbl_1_bss_2050.unk1C[0] = 0; + } + for (i = 0; i <= 10; i++) { + if (i <= 5) { + var_f31 = fn_1_24204(1.0f, 0.0f, i, 5.0f); + } else { + var_f31 = fn_1_24204(0.0f, 1.0f, i - 5, 5.0f); + } + for (j = 0; j < 4; j++) { + HuSprScaleSet(temp_r30, 65 + j, var_f31, 1.0f); + if ((i > 5 && arg0 == 0) || (i <= 5 && arg0 == 1)) { + HuSprScaleSet(temp_r30, 57 + lbl_1_bss_1E10[j].unk68, var_f31, 1.0f); + if (lbl_1_bss_1E10[j].unk60 != 0) { + HuSprScaleSet(temp_r30, 77 + j, var_f31, 1.0f); + } else { + HuSprScaleSet(temp_r30, 73 + j, var_f31, 1.0f); + } + } else { + HuSprScaleSet(temp_r30, 81 + j, var_f31, 1.0f); + } + var_f30 = fn_1_24204(lbl_1_data_448[lbl_1_bss_1E10[j].unk58][var_r27], lbl_1_data_448[lbl_1_bss_1E10[j].unk58][lbl_1_bss_2050.unk1C[0]], i, 10.0f); + HuSprPosSet(temp_r30, 57 + lbl_1_bss_1E10[j].unk68, var_f30, lbl_1_data_3CC[2]); + HuSprPosSet(temp_r30, 65 + j, var_f30 + 1.0f, lbl_1_data_3CC[2] + 2); + if (lbl_1_bss_1E10[j].unk60 != 0) { + HuSprPosSet(temp_r30, 77 + j, var_f30, lbl_1_data_3CC[2] + 21); + } else { + HuSprPosSet(temp_r30, 73 + j, var_f30 - 8.0f, lbl_1_data_3CC[2] - 21); + } + } + if (lbl_1_bss_2050.unk1C[0] != 0) { + var_f31 = fn_1_24204(0.0f, 1.0f, i, 10.0f); + } else { + var_f31 = fn_1_24204(1.0f, 0.0f, i, 10.0f); + } + HuSprScaleSet(temp_r30, 85, var_f31, var_f31); + fn_1_243B0(); + } + HuSprPosSet(temp_r30, 54, lbl_1_data_3CC[0], lbl_1_data_3CC[2]); + HuSprPosSet(temp_r30, 55, lbl_1_data_3CC[1], lbl_1_data_3CC[2]); + if (arg0 == 0) { + for (i = 0; i < 2; i++) { + HuSprAttrReset(temp_r30, 54 + i, HUSPR_ATTR_DISPOFF); + } + } else { + for (i = 0; i < 2; i++) { + HuSprAttrSet(temp_r30, 54 + i, HUSPR_ATTR_DISPOFF); + } + } +} + +void fn_1_20728(void) { + fn_1_1A6A0(); +} + +s32 fn_1_20970(void) { + s32 var_r23; + s32 temp_r26; + s32 temp_r28; + s32 var_r24; + s32 var_r29; + s32 var_r30; + s32 var_r25; + s32 temp_r27; + s32 i; + + var_r23 = 0; + temp_r26 = fn_1_2530C(0, 0, 0); + fn_1_25EC8(lbl_1_bss_3C4->unkC, lbl_1_bss_3C4->unk18, 0xF, 1); + fn_1_25838(temp_r26, MAKE_MESSID(26, 5), -1, -1); + fn_1_25EC8(lbl_1_bss_3C4->unkC, lbl_1_bss_3C4->unk10, 0xF, 1); + fn_1_243B0(); + fn_1_25CA8(MAKE_MESSID(26, 33)); + temp_r28 = lbl_1_bss_2050.unk34; + HuSprAttrReset(temp_r28, 8, HUSPR_ATTR_DISPOFF); + HuSprPosSet(temp_r28, 8, lbl_1_data_32C[0][0] - 50, lbl_1_data_32C[0][1]); + HuSprAttrReset(temp_r28, 9, HUSPR_ATTR_DISPOFF); + HuSprPosSet(temp_r28, 9, lbl_1_data_32C[3][0] + 50, lbl_1_data_32C[0][1]); + lbl_1_bss_2050.unk04 = (void*) fn_1_19F5C; + var_r24 = 99; + var_r23 = 0; + while (TRUE) { + fn_1_243B0(); + var_r30 = 0; + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1E10[i].unk70[3] == 0) { + var_r30++; + } + } + if (var_r24 != var_r30) { + var_r24 = var_r30; + fn_1_25838(temp_r26, MAKE_MESSID(26, 27 + var_r30), -1, -999); + } + if (lbl_1_bss_2050.unk1C[0] != 0) { + continue; + } + if (HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x100) { + var_r29 = 1; + HuAudFXPlay(2); + lbl_1_bss_2050.unk04 = NULL; + fn_1_24388(2); + var_r30 = var_r25 = 0; + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1E10[i].unk60 == 0) { + var_r25++; + } + } + for (i = 0; i < 4; i++) { + if (var_r30 < var_r25) { + if (HuPadStatGet(i) != -1) { + var_r30++; + lbl_1_bss_1E10[i].unk60 = 0; + } else { + lbl_1_bss_1E10[i].unk60 = 1; + } + } + } + break; + } else if (HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x200) { + var_r29 = -99; + HuAudFXPlay(3); + break; + } + } + temp_r27 = lbl_1_bss_2050.unk34; + HuSprAttrSet(temp_r27, 8, HUSPR_ATTR_DISPOFF); + HuSprPosSet(temp_r27, 8, lbl_1_data_32C[0][0] - 50, lbl_1_data_32C[0][1]); + HuSprAttrSet(temp_r27, 9, HUSPR_ATTR_DISPOFF); + HuSprPosSet(temp_r27, 9, lbl_1_data_32C[3][0] + 50, lbl_1_data_32C[0][1]); + lbl_1_bss_2050.unk04 = NULL; + fn_1_25E74(0); + fn_1_25584(temp_r26); + if (var_r29 != -99) { + var_r30 = 0; + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1E10[i].unk60 == 0) { + var_r30++; + } + } + if (var_r30 == 0) { + var_r29 = 2; + } else { + var_r29 = 1; + } + } + return var_r29; +} + +void fn_1_20E84(s32 arg0) { + float var_f31; + s32 sp10; + s32 spC; + s32 temp_r30; + s32 i; + + spC = 0; + sp10 = 0; + temp_r30 = lbl_1_bss_2050.unk34; + for (i = 0; i <= 60; i++) { + fn_1_243B0(); + if (i <= 10) { + var_f31 = fn_1_24204(2.06f, 10.0f, i, 10.0f); + } else { + var_f31 = fn_1_2412C(10.0f, -500.0f, i - 10, 50.0f); + } + HuSprGrpPosSet(temp_r30, 0.0f, var_f31); + } + fn_1_1B260(0); + fn_1_1CB4C(); + fn_1_1B260(arg0); +} + +void fn_1_20FD4(s32 arg0) { + fn_1_1BCEC(); +} + +s32 fn_1_211B4(void) { + s32 var_r27; + s32 sp8; + s32 var_r29; + s32 var_r28; + s32 var_r30; + s32 i; + + var_r27 = 0; + sp8 = 0; + fn_1_1CB4C(); + var_r28 = fn_1_2530C(0, 0, 0); + HuWinPushKeySet(var_r28, 0x300); + fn_1_243B0(); + fn_1_25EC8(lbl_1_bss_3C4->unkC, lbl_1_bss_3C4->unk18, 0xF, 1); + fn_1_25838(var_r28, MAKE_MESSID(26, 9), -1, -1); + fn_1_25EC8(lbl_1_bss_3C4->unkC, lbl_1_bss_3C4->unk10, 0xF, 1); + fn_1_25CA8(MAKE_MESSID(26, 32)); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1E10[i].unk60 == 0) { + lbl_1_bss_1E10[i].unk4 = (void*) fn_1_1CEB0; + } + } + while (TRUE) { + fn_1_243B0(); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1E10[i].unk60 == 0 && (HuPadBtnDown[lbl_1_bss_1E10[i].unk6C] & 0x100)) { + var_r27 = 1; + } + } + if (lbl_1_bss_1E10->unk70[0] == 0 && (HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x200)) { + HuAudFXPlay(3); + var_r30 = 0; + break; + } else { + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1E10[i].unk60 == 0 && lbl_1_bss_1E10[i].unk70[0] != 1) { + break; + } + } + if (i == 4) { + var_r30 = 2; + break; + } + } + } + for (i = 0; i < 4; i++) { + lbl_1_bss_1E10[i].unk4 = NULL; + } + fn_1_25E74(0); + fn_1_25584(var_r28); + if (var_r30 == 2) { + var_r29 = 0; + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1E10[i].unk60 != 0) { + lbl_1_bss_1E10[i].unk68 = 0; + var_r29++; + } + } + if (var_r29 == 0) { + var_r30 = 3; + } else { + var_r30 = 2; + } + } else { + var_r30 = 0; + } + return var_r30; +} + +s32 fn_1_214A4(void) { + s32 var_r30; + s32 var_r24; + s32 var_r23; + s32 var_r21; + s32 sp8; + s32 temp_r22; + s32 var_r28; + s32 var_r29; + s32 i; + + var_r30 = -1; + var_r24 = -1; + var_r23 = -1; + var_r21 = -1; + sp8 = 0; + temp_r22 = fn_1_2530C(0, 0, 0); + while (TRUE) { + fn_1_243B0(); + var_r28 = 0; + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1E10[i].unk60 != 0 && lbl_1_bss_1E10[i].unk70[0] == 0) { + var_r28++; + } + } + HuWinInsertMesSet(temp_r22, MAKE_MESSID(26, 35 + var_r28), 1); + if (var_r23 == -1) { + fn_1_25EC8(lbl_1_bss_3C4->unkC, lbl_1_bss_3C4->unk18, 0xF, 1); + } + fn_1_25838(temp_r22, MAKE_MESSID(26, 40), -1, var_r23); + if (var_r23 == -1) { + fn_1_25EC8(lbl_1_bss_3C4->unkC, lbl_1_bss_3C4->unk10, 0xF, 1); + } + var_r23 = -999; + fn_1_25CA8(MAKE_MESSID(26, 32)); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1E10[i].unk60 != 0 && lbl_1_bss_1E10[i].unk70[0] == 0) { + var_r30 = i; + lbl_1_bss_1E10[i].unk70[1] = var_r24; + fn_1_1E608(&lbl_1_bss_1E10[i]); + lbl_1_bss_1E10[i].unk4 = (void*) fn_1_1DD74; + break; + } + } + while (TRUE) { + fn_1_243B0(); + if ((HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x200) && lbl_1_bss_1E10[var_r30].unk70[0] == 0) { + HuAudFXPlay(3); + if (var_r24 == -1) { + var_r29 = 0; + break; + } else { + var_r29 = 1; + break; + } + } else if (lbl_1_bss_1E10[var_r30].unk70[0] == 1) { + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1E10[i].unk70[0] == 0) { + lbl_1_bss_1E10[i].unk68 = 0; + } + } + lbl_1_bss_1E10[var_r30].unk4 = NULL; + fn_1_25838(temp_r22, MAKE_MESSID(26, 34), -1, -999); + fn_1_25CA8(MAKE_MESSID(26, 35)); + var_r29 = fn_1_1D688(&lbl_1_bss_1E10[var_r30]); + if (var_r29 == 1) { + lbl_1_bss_1E10[var_r30].unk70[2] = 1; + var_r29 = 4; + var_r24 = var_r30; + } else { + lbl_1_bss_1E10[var_r30].unk70[2] = 0; + var_r29 = 4; + lbl_1_bss_1E10[var_r30].unk70[0] = 0; + fn_1_1EB20(&lbl_1_bss_1E10[var_r30]); + fn_1_1E608(&lbl_1_bss_1E10[var_r30]); + } + break; + } + } + for (i = 0; i < 4; i++) { + lbl_1_bss_1E10[i].unk4 = NULL; + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1E10[i].unk70[0] == 0) { + break; + } + } + if (i == 4) { + var_r29 = 3; + break; + } else { + if (var_r29 == 1) { + fn_1_1E608(&lbl_1_bss_1E10[var_r30]); + fn_1_1EB20(&lbl_1_bss_1E10[var_r30]); + fn_1_1E608(&lbl_1_bss_1E10[lbl_1_bss_1E10[var_r30].unk70[1]]); + var_r24 = lbl_1_bss_1E10[lbl_1_bss_1E10[var_r30].unk70[1]].unk70[1]; + lbl_1_bss_1E10[lbl_1_bss_1E10[var_r30].unk70[1]].unk70[0] = 0; + } else if (var_r29 != 4) { + if (var_r29 == 0) { + fn_1_1EB20(&lbl_1_bss_1E10[var_r30]); + } + break; + } + } + var_r21 = -1; + } + fn_1_25E74(0); + fn_1_25584(temp_r22); + if (var_r29 == 0) { + var_r28 = 0; + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1E10[i].unk60 == 0) { + var_r28++; + } + } + if (var_r28 != 0) { + var_r29 = 1; + } else { + var_r29 = 0; + } + } + return var_r29; +} + +s32 fn_1_21CA4(void) { + s32 sp8; + s32 temp_r27; + s32 var_r22; + s32 var_r28; + s32 i; + s32 j; + + sp8 = 0; + temp_r27 = fn_1_2530C(0, 0, 0); + fn_1_25EC8(lbl_1_bss_3C4->unkC, lbl_1_bss_3C4->unk18, 0xF, 1); + fn_1_25838(temp_r27, MAKE_MESSID(40, 14), -1, -1); + fn_1_25EC8(lbl_1_bss_3C4->unkC, lbl_1_bss_3C4->unk10, 0xF, 1); + fn_1_243B0(); + fn_1_25CA8(MAKE_MESSID(26, 33)); + fn_1_1EBE8(); + lbl_1_bss_2050.unk04 = (void*) fn_1_1EE58; + var_r22 = 99; + while (TRUE) { + fn_1_243B0(); + if (var_r22 != lbl_1_bss_2050.unk1C[0]) { + var_r22 = lbl_1_bss_2050.unk1C[0]; + HuWinInsertMesSet(temp_r27, MAKE_MESSID(27, 52 + lbl_1_bss_2050.unk1C[0]), 0); + fn_1_25838(temp_r27, MAKE_MESSID(27, 51), -1, -999); + } + if (lbl_1_bss_2050.unk1C[3] != 0) { + continue; + } + if (HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x100) { + var_r28 = 5; + HuAudFXPlay(2); + break; + } else if (HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x200) { + var_r28 = -99; + HuAudFXPlay(3); + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + if (lbl_1_bss_1E10[i].unk60 == 1) { + lbl_1_bss_1E10[i].unk70[j] = 0; + lbl_1_bss_1E10[i].unk80[j] = 0; + fn_1_1EB20(&lbl_1_bss_1E10[i]); + lbl_1_bss_1E10[i].unk68 = 0; + } + } + } + break; + } + } + fn_1_1ED20(); + lbl_1_bss_2050.unk04 = NULL; + fn_1_25E74(0); + fn_1_25584(temp_r27); + if (var_r28 == -99) { + j = 0; + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1E10[i].unk60 == 1) { + j++; + } + } + if (j == 0) { + var_r28 = 1; + } else { + var_r28 = 2; + } + } + return var_r28; +} + +s32 fn_1_2228C(s32 arg0) { + s32 sp8; + s32 temp_r30; + s32 var_r26; + s32 var_r27; + s32 i; + s32 j; + + sp8 = 0; + temp_r30 = fn_1_2530C(0, 0, 0); + fn_1_25EC8(lbl_1_bss_3C4->unkC, lbl_1_bss_3C4->unk18, 0xF, 1); + fn_1_25838(temp_r30, MAKE_MESSID(40, 13), -1, -1); + fn_1_25EC8(lbl_1_bss_3C4->unkC, lbl_1_bss_3C4->unk10, 0xF, 1); + fn_1_243B0(); + fn_1_25CA8(MAKE_MESSID(26, 33)); + fn_1_1FC44(0); + lbl_1_bss_2050.unk04 = (void*) fn_1_1F32C; + var_r26 = 99; + while (TRUE) { + fn_1_243B0(); + if (var_r26 != lbl_1_bss_2050.unk1C[0]) { + var_r26 = lbl_1_bss_2050.unk1C[0]; + switch (lbl_1_bss_2050.unk1C[0]) { + case 1: + HuWinInsertMesSet(temp_r30, MAKE_MESSID(27, 30), 0); + HuWinInsertMesSet(temp_r30, MAKE_MESSID(27, 31), 1); + HuWinInsertMesSet(temp_r30, MAKE_MESSID(27, 32), 2); + break; + case 2: + HuWinInsertMesSet(temp_r30, MAKE_MESSID(27, 31), 0); + HuWinInsertMesSet(temp_r30, MAKE_MESSID(27, 30), 1); + HuWinInsertMesSet(temp_r30, MAKE_MESSID(27, 32), 2); + break; + case 3: + HuWinInsertMesSet(temp_r30, MAKE_MESSID(27, 32), 0); + HuWinInsertMesSet(temp_r30, MAKE_MESSID(27, 30), 1); + HuWinInsertMesSet(temp_r30, MAKE_MESSID(27, 31), 2); + break; + } + fn_1_25838(temp_r30, MAKE_MESSID(27, 50), -1, -999); + } + if (lbl_1_bss_2050.unk1C[3] != 0) { + continue; + } + if (HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x100) { + var_r27 = 5; + HuAudFXPlay(2); + break; + } else if (HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x200) { + var_r27 = -99; + HuAudFXPlay(3); + fn_1_1FC44(1); + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + if (lbl_1_bss_1E10[i].unk60 == 1) { + lbl_1_bss_1E10[i].unk70[j] = 0; + lbl_1_bss_1E10[i].unk80[j] = 0; + fn_1_1EB20(&lbl_1_bss_1E10[i]); + } + } + } + break; + } + } + fn_1_1FC44(2); + lbl_1_bss_2050.unk04 = NULL; + fn_1_25E74(0); + fn_1_25584(temp_r30); + if (var_r27 == -99) { + j = 0; + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1E10[i].unk60 == 1) { + j++; + } + } + if (j == 0) { + var_r27 = 1; + } else { + var_r27 = 2; + } + } + return var_r27; +} + +void fn_1_22728(void) { + s32 i; + s32 j; + + fn_1_1BECC(); + fn_1_1FABC(); + if (lbl_1_bss_3C4->unk1C == 0 || lbl_1_bss_3C4->unk1C == 3) { + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + if (lbl_1_bss_1E10[i].unk60 == 1) { + lbl_1_bss_1E10[i].unk70[j] = 0; + lbl_1_bss_1E10[i].unk80[j] = 0; + fn_1_1EB20(&lbl_1_bss_1E10[i]); + } + } + } + } +} + +void fn_1_22C08(omObjData* arg0) { + float var_f31; + s32 i; + + for (i = 1; i < 10; i++) { + if (CZoom <= 1200.0f || lbl_1_bss_3CC[i].unk1C == -200.0f) { + if (lbl_1_bss_3CC[i].unk1C >= -100.0f) { + lbl_1_bss_3CC[i].unk00 = 0; + lbl_1_bss_3CC[i].unk1C = -200.0f; + lbl_1_bss_3CC[i].unk24 = -99.0f; + lbl_1_bss_3CC[i].unk04 = rand8() + 180; + } + var_f31 = fn_1_2412C(lbl_1_bss_3CC[i].unk10, 1000.0f, lbl_1_bss_3CC[i].unk00++, lbl_1_bss_3CC[i].unk04); + Hu3DData[arg0->model[i]].pos.y = fn_1_2410C(Hu3DData[arg0->model[i]].pos.y, var_f31, 30.0f); + Hu3DData[arg0->model[i]].pos.x = fn_1_2410C(Hu3DData[arg0->model[i]].pos.x, lbl_1_bss_3CC[i].unk18 + Hu3DData[arg0->model[i]].pos.x, 5.0f); + } + } + for (i = 10; i < 140; i++) { + Hu3DData[arg0->model[i]].pos.y = fn_1_242CC(lbl_1_bss_3CC[i].unk10, lbl_1_bss_3CC[i].unk1C, lbl_1_bss_3CC[i].unk00++, lbl_1_bss_3CC[i].unk04); + if (lbl_1_bss_3CC[i].unk00 >= lbl_1_bss_3CC[i].unk04) { + lbl_1_bss_3CC[i].unk00 = 0; + } + } + for (i = 10; i < 140; i++) { + if (0.0f == lbl_1_bss_3CC[i].unk24 && lbl_1_bss_3CC[i].unk14 > CZoom - 400.0f && lbl_1_bss_3CC[i].unk0C < 200.0f && lbl_1_bss_3CC[i].unk0C > -200.0f) { + if (0.0f >= lbl_1_bss_3CC[i].unk0C) { + lbl_1_bss_3CC[i].unk24 = -300.0f; + } else { + lbl_1_bss_3CC[i].unk24 = 300.0f; + } + } + if (-99.0f != lbl_1_bss_3CC[i].unk24) { + Hu3DData[arg0->model[i]].pos.x = fn_1_2410C(Hu3DData[arg0->model[i]].pos.x, lbl_1_bss_3CC[i].unk0C + lbl_1_bss_3CC[i].unk24, 30.0f); + } + } + if (arg0->work[0] == 1) { + for (i = 10; i < 140; i++) { + Hu3DModelAttrSet(arg0->model[i], 1); + } + } +} + +void fn_1_231F0(omObjData* arg0) { + float temp_f31; + float temp_f30; + float temp_f29; + s32 var_r28; + s32 i; + s32 j; + + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MGMODE, 141)); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MGMODE, 142)); + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MGMODE, 143)); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MGMODE, 144)); + Hu3DModelLayerSet(arg0->model[1], 3); + Hu3DModelLayerSet(arg0->model[2], 3); + Hu3DModelLayerSet(arg0->model[3], 3); + Hu3DModelLayerSet(arg0->model[4], 3); + for (i = 5; i < 140; i++) { + arg0->model[i] = Hu3DModelLink(arg0->model[rand8() % 4 + 1]); + } + for (i = 1; i < 10; i++) { + var_r28 = 0; + do { + temp_f31 = Hu3DData[arg0->model[i]].pos.x = 50.0f + rand8(); + if (i % 2 != 0) { + lbl_1_bss_3CC[i].unk0C = Hu3DData[arg0->model[i]].pos.x *= -1.0f; + } + temp_f30 = Hu3DData[arg0->model[i]].pos.y = 50.0f + rand8(); + temp_f29 = Hu3DData[arg0->model[i]].pos.z = 750.0f + i * 5; + for (j = 1; j < 10; j++) { + if (i != j && lbl_1_bss_3CC[j].unk08 == 1) { + temp_f31 = Hu3DData[arg0->model[i]].pos.x - Hu3DData[arg0->model[j]].pos.x; + temp_f30 = Hu3DData[arg0->model[i]].pos.y - Hu3DData[arg0->model[j]].pos.y; + temp_f29 = Hu3DData[arg0->model[i]].pos.z - Hu3DData[arg0->model[j]].pos.z; + if (sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30) <= 100.0f) { + break; + } + } + } + var_r28++; + } while (j != 10 && var_r28 < 50); + lbl_1_bss_3CC[i].unk08 = 1; + lbl_1_bss_3CC[i].unk0C = lbl_1_bss_3CC[i].unk18 = Hu3DData[arg0->model[i]].pos.x; + lbl_1_bss_3CC[i].unk10 = lbl_1_bss_3CC[i].unk1C = Hu3DData[arg0->model[i]].pos.y; + lbl_1_bss_3CC[i].unk14 = lbl_1_bss_3CC[i].unk20 = Hu3DData[arg0->model[i]].pos.z; + lbl_1_bss_3CC[i].unk18 = 0.025f * lbl_1_bss_3CC[i].unk0C; + Hu3DModelScaleSet(arg0->model[i], 0.5f, 0.5f, 0.5f); + Hu3DModelLayerSet(arg0->model[i], 3); + } + for (i = 10; i < 140; i++) { + var_r28 = 0; + do { + temp_f31 = Hu3DData[arg0->model[i]].pos.x = rand8() * 2; + if (i % 2 != 0) { + Hu3DData[arg0->model[i]].pos.x *= -1.0f; + } + temp_f30 = Hu3DData[arg0->model[i]].pos.y = rand8() * 2 + 125; + temp_f29 = Hu3DData[arg0->model[i]].pos.z = 800.0f + i * 10; + for (j = 10; j < 140; j++) { + if (i != j && lbl_1_bss_3CC[j].unk08 == 1) { + temp_f31 = Hu3DData[arg0->model[i]].pos.x - Hu3DData[arg0->model[j]].pos.x; + temp_f30 = Hu3DData[arg0->model[i]].pos.y - Hu3DData[arg0->model[j]].pos.y; + temp_f29 = Hu3DData[arg0->model[i]].pos.z - Hu3DData[arg0->model[j]].pos.z; + if (sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30 + temp_f29 * temp_f29) <= 100.0f) { + break; + } + } + } + var_r28++; + } while (j != 140 && var_r28 < 50); + lbl_1_bss_3CC[i].unk08 = 1; + Hu3DModelLayerSet(arg0->model[i], 3); + lbl_1_bss_3CC[i].unk0C = lbl_1_bss_3CC[i].unk18 = Hu3DData[arg0->model[i]].pos.x; + lbl_1_bss_3CC[i].unk10 = lbl_1_bss_3CC[i].unk1C = Hu3DData[arg0->model[i]].pos.y; + lbl_1_bss_3CC[i].unk14 = lbl_1_bss_3CC[i].unk20 = Hu3DData[arg0->model[i]].pos.z; + if (rand8() % 2 == 0) { + lbl_1_bss_3CC[i].unk18 += rand8() % 30; + } else { + lbl_1_bss_3CC[i].unk18 -= rand8() % 30; + } + lbl_1_bss_3CC[i].unk1C += rand8() % 30 + 10; + if (rand8() % 2 == 0) { + lbl_1_bss_3CC[i].unk20 += rand8() % 30; + } else { + lbl_1_bss_3CC[i].unk20 -= rand8() % 30; + } + lbl_1_bss_3CC[i].unk24 = lbl_1_bss_3CC[i].unk28 = lbl_1_bss_3CC[i].unk2C = 0.0f; + lbl_1_bss_3CC[i].unk04 = 360 + (rand8() * 2) % 360; + lbl_1_bss_3CC[i].unk00 = rand8(); + } + for (i = 1; i < 140; i++) { + Hu3DModelAttrSet(arg0->model[i], 1); + } + arg0->func = fn_1_22C08; +} + +float fn_1_240E4(float arg0, float arg1, float arg2, float arg3) { + if (arg3 <= arg2) { + return arg1; + } + return arg0 + (arg2 / arg3) * (arg1 - arg0); +} + +float fn_1_2410C(float arg0, float arg1, float arg2) { + return (arg1 + arg0 * (arg2 - 1.0f)) / arg2; +} + +float fn_1_2412C(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * (1.0 - cosd((90.0f / arg3) * arg2)); +} + +float fn_1_24204(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * sind((90.0f / arg3) * arg2); +} + +float fn_1_242CC(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg0; + } + return arg0 + (arg1 - arg0) * sind((360.0f / arg3) * arg2); +} + +void fn_1_24388(s32 arg0) { + HuPrcSleep(arg0); +} + +void fn_1_243B0(void) { + HuPrcVSleep(); +} + +void fn_1_243D0(void) { + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_243E4(void) { + s32 var_r31; + + var_r31 = 0; + var_r31 = Hu3DGLightCreate(0.0f, 700.0f, 1200.0f, 0.0f, -1.0f, 0.0f, 0xFF, 0xFF, 0xFF); + Hu3DGLightPosAimSet(var_r31, 0.0f, 700.0f, 1200.0f, 0.0f, 0.0f, 640.0f); + Hu3DGLightInfinitytSet(var_r31); +} + +void fn_1_244C0(s32 arg0) { + Vec sp24 = { 0.0f, 3000.0f, 800.0f }; + Vec sp18 = { 0.0f, 0.0f, 640.0f }; + Vec spC = { 0.0f, 1.0f, 0.0f }; + + if (arg0 == 3) { + sp24.x = sp18.x = 1200.0f; + } + Hu3DShadowCreate(45.0f, 2000.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.8f); + Hu3DShadowPosSet(&sp24, &spC, &sp18); +} + +void fn_1_245A8(void) { + HuWinInit(1); +} + +void fn_1_245CC(s32 arg0, float arg1, float arg2, s32 arg3) { + WindowData* temp_r29; + float temp_f29; + float temp_f28; + float temp_f25; + float temp_f24; + float var_f31; + float var_f30; + float temp_f27; + float temp_f26; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + s32 i; + + temp_r29 = &winData[arg0]; + temp_f29 = temp_r29->pos_x; + temp_f28 = temp_r29->pos_y; + temp_f25 = temp_r29->w; + temp_f24 = temp_r29->h; + var_f31 = temp_f29 + temp_f25 * arg1; + temp_f27 = 4.0f / temp_f25; + if (var_f31 + 4.0f - (temp_f29 + temp_f25) >= 0.0f) { + var_f31 = temp_f29 + temp_f25 - 4.0f; + } else { + if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { + var_f31 = temp_f29; + } else { + var_f31 = var_f31 - 2.0f; + } + } + var_f30 = temp_f28 + temp_f24 * arg2; + temp_f26 = 4.0f / temp_f24; + if (var_f30 + 4.0f - (temp_f28 + temp_f24) >= 0.0f) { + var_f30 = temp_f28 + temp_f24 - 4.0f; + } else { + if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { + var_f30 = temp_f28; + } else { + var_f30 = var_f30 - 2.0f; + } + } + if (arg3 != 0) { + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + var_f23 = var_f31; + var_f21 = temp_f27; + var_f22 = var_f30; + var_f20 = temp_f26; + } else { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + var_f23 = temp_f29; + var_f21 = 1.0f; + var_f22 = temp_f28; + var_f20 = 1.0f; + } + HuWinDispOn(arg0); + for (i = 0; i <= 15; i++) { + HuPrcVSleep(); + if (arg3 != 0) { + if (i <= 10) { + var_f23 = fn_1_24204(var_f31, temp_f29, i, 10.0f); + var_f21 = fn_1_24204(temp_f27, 1.0f, i, 10.0f); + } else { + var_f22 = fn_1_24204(var_f30, temp_f28, i - 10, 5.0f); + var_f20 = fn_1_24204(temp_f26, 1.0f, i - 10, 5.0f); + } + } else { + if (i <= 10) { + var_f22 = fn_1_24204(temp_f28, var_f30, i, 10.0f); + var_f20 = fn_1_24204(1.0f, temp_f26, i, 10.0f); + } else { + var_f23 = fn_1_24204(temp_f29, var_f31, i - 10, 5.0f); + var_f21 = fn_1_24204(1.0f, temp_f27, i - 10, 5.0f); + } + } + HuWinPosSet(arg0, var_f23, var_f22); + HuWinScaleSet(arg0, var_f21, var_f20); + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + } else { + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + } + HuPrcVSleep(); +} + +s32 fn_1_25014(s32 arg0, s32 arg1, s32 arg2, s32 arg3, float arg4, float arg5, s32 arg6, s32 arg7, s32 arg8) { + float sp14[2]; + s32 temp_r30; + + if (arg6 % 2 == 0) { + arg2 = arg2 * 21 + 16; + arg3 = arg3 * 26 + 16; + arg1 = 445.0f - arg3; + switch (arg0) { + case -1: + arg0 = 16; + break; + case 0: + arg0 = 1.0f + (576.0f - arg2) / 2; + break; + case 1: + arg0 = 556.0f - arg2; + break; + } + } else { + HuWinMesMaxSizeGet(1, sp14, arg8); + arg2 = sp14[0]; + arg3 = sp14[1]; + arg0 = 556.0f - arg2; + arg1 = 445.0f - arg3; + } + temp_r30 = HuWinExCreateStyled(arg0, arg1, arg2, arg3, -1, 1); + if (arg6 == 1) { + HuWinAttrSet(temp_r30, 0x10); + } + HuWinMesPalSet(temp_r30, 7, 0, 0, 0); + winData[temp_r30].active_pad = 1; + fn_1_245CC(temp_r30, arg4, arg5, 1); + return temp_r30; +} + +s32 fn_1_2530C(s32 arg0, s32 arg1, s32 arg2) { + return fn_1_25014(arg0, 0, 21, 2, 0.5f, 0.5f, 0, 0, 0); +} + +void fn_1_25524(s32 arg0, float arg1, float arg2) { + HuWinMesSet(arg0, MAKE_MESSID(37, 4)); + HuPrcVSleep(); + fn_1_245CC(arg0, arg1, arg2, 0); + HuWinExCleanup(arg0); +} + +void fn_1_25584(s32 arg0) { + fn_1_25524(arg0, 0.5f, 0.5f); +} + +void fn_1_255EC(s32 arg0, s32 arg1) { + if (arg1 == -999 || arg1 == 0) { + return; + } + if (arg1 == -1000) { + do { + HuPrcVSleep(); + } while (HuWinStatGet(arg0) == 1); + return; + } + if (arg1 > 0) { + HuPrcSleep(arg1); + return; + } + HuWinComKeyReset(); + HuWinMesWait(arg0); + HuWinComKeyReset(); +} + +void fn_1_2567C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + s32 i; + s32 temp_r28; + s32 var_r30; + + temp_r28 = 0; + var_r30 = 0; + temp_r28 = HuWinKeyWaitNumGet(arg1); + if (arg2 == -1 || arg2 >= temp_r28 - 1) { + arg2 = temp_r28 - 1; + } + HuWinComKeyReset(); + for (i = 0; i < temp_r28; i++) { + var_r30 = 0; + do { + HuPrcVSleep(); + } while (HuWinStatGet(arg0) != 1); + if (i == arg2) { + HuWinAttrSet(arg0, 0x400); + var_r30 = 1; + } + while (TRUE) { + HuPrcVSleep(); + if (var_r30 != 0) { + if (var_r30 == 1 && HuWinStatGet(arg0) != 1) { + var_r30 = 2; + } else if (var_r30 == 2) { + HuPrcSleep(arg3); + HuWinAttrReset(arg0, 0x400); + HuWinKeyWaitEntry(arg0); + break; + } + } else if (HuWinStatGet(arg0) != 1) { + break; + } + } + } + fn_1_255EC(arg0, -1); // The second arg could be any negative value different from -999 or -1000. + HuWinComKeyReset(); +} + +s32 fn_1_257B0(s32 arg0) { + s32 temp_r31; + + HuWinComKeyReset(); + temp_r31 = HuWinChoiceGet(arg0, 0); + HuWinComKeyReset(); + return temp_r31; +} + +void fn_1_257F8(s32 arg0, s32 arg1, s32 arg2) { + HuWinInsertMesSet(arg0, arg1, arg2); +} + +void fn_1_25838(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + if (arg3 == -999) { + HuWinMesSpeedSet(arg0, 0); + } else { + HuWinMesSpeedSet(arg0, 1); + } + HuWinMesSet(arg0, arg1); + if (arg2 == -1) { + fn_1_255EC(arg0, arg3); + } else { + fn_1_2567C(arg0, arg1, arg2, arg3); + } +} + +s32 fn_1_2592C(s32 arg0, s32 arg1, s32 arg2) { + s32 var_r25; + s32 temp_r27; + + var_r25 = 0; + temp_r27 = fn_1_25014(0, 0, 0, 0, 0.5f, 0.5f, arg1, 0, arg0); + HuWinMesSet(temp_r27, arg0); + var_r25 = fn_1_257B0(temp_r27); + fn_1_25524(temp_r27, 0.5f, 0.5f); + return var_r25; +} + +s32 fn_1_25CA8(s32 arg0) { + float sp8[2]; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + s32 var_r31; + + HuWinMesMaxSizeGet(1, sp8, arg0); + temp_f31 = sp8[0]; + temp_f30 = sp8[1]; + temp_f29 = (576.0f - temp_f31) / 2; + temp_f28 = 385.0f - temp_f30; + if (lbl_1_data_488 == -1) { + var_r31 = lbl_1_data_488 = HuWinExCreateStyled(temp_f29, temp_f28, temp_f31, temp_f30, -1, 1); + } else { + fn_1_25E74(lbl_1_data_488); + var_r31 = lbl_1_data_488 = HuWinExCreateStyled(temp_f29, temp_f28, temp_f31, temp_f30, -1, 1); + } + HuWinBGTPLvlSet(lbl_1_data_488, 0.0f); + HuWinMesSet(lbl_1_data_488, arg0); + HuWinMesSpeedSet(lbl_1_data_488, 0); + HuWinDispOn(lbl_1_data_488); + return lbl_1_data_488; +} + +void fn_1_25E74(s32 arg0) { + if (lbl_1_data_488 != -1) { + HuWinExCleanup(lbl_1_data_488); + lbl_1_data_488 = -1; + } +} + +void fn_1_25EC8(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + switch (arg3) { + case 0: + Hu3DMotionShiftSet(arg0, arg1, 0.0f, arg2, 0); + break; + case 1: + Hu3DMotionShiftSet(arg0, arg1, 0.0f, arg2, 0x40000001); + break; + case 2: + Hu3DMotionShiftSet(arg0, arg1, 0.0f, arg2, 0x40000002); + break; + } +} + +void fn_1_26004(s32 arg0, Vec arg1, float arg2, float arg3, float arg4, s32 arg5, s32 arg6) { + Vec sp4C; + Vec sp40; + Vec sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + s32 var_r30; + s32 var_r29; + s32 i; + + var_r30 = 0; + var_r29 = 0; + sp40.x = Hu3DData[arg0].pos.x; + sp40.y = Hu3DData[arg0].pos.y; + sp40.z = Hu3DData[arg0].pos.z; + sp34.x = arg1.x; + sp34.y = arg1.y; + sp34.z = arg1.z; + sp1C.x = Hu3DData[arg0].rot.x; + sp1C.y = Hu3DData[arg0].rot.y; + sp1C.z = Hu3DData[arg0].rot.z; + sp10.x = 0.0f; + sp10.y = arg2; + sp10.z = 0.0f; + if (sp34.x - sp40.x >= 0.0f) { + var_r30 = 1; + } else { + var_r30 = 0; + } + if (sp34.z - sp40.z >= 0.0f) { + var_r29 = 1; + } else { + var_r29 = 0; + } + while (arg5 != 0) { + HuPrcVSleep(); + sp28.y = -(atan2d(sp34.z - sp40.z, sp34.x - sp40.x) - 90.0); + if (sp28.y < 0.0f) { + sp28.y += 360.0f; + } else if (sp28.y >= 360.0f) { + sp28.y -= 360.0f; + } + if (arg6 != 0) { + if (sp28.y >= 180.0f) { + if (sp1C.y - sp28.y >= 180.0f) { + sp1C.y -= 360.0f; + } + if (sp1C.y - sp28.y < -180.0f) { + sp1C.y += 360.0f; + } + } else { + if (sp1C.y - sp28.y > 180.0f) { + sp1C.y -= 360.0f; + } + if (sp1C.y - sp28.y <= -180.0f) { + sp1C.y += 360.0f; + } + } + } + sp4C.x = sp40.x += arg3 * sind(sp28.y); + sp4C.z = sp40.z += arg3 * cosd(sp28.y); + if (var_r30 == 1) { + if (sp40.x >= sp34.x) { + sp4C.x = sp40.x = sp34.x; + var_r30 = 2; + } + } else if (var_r30 == 0) { + if (sp40.x <= sp34.x) { + sp4C.x = sp40.x = sp34.x; + var_r30 = 2; + } + } + if (var_r29 == 1) { + if (sp40.z >= sp34.z) { + sp4C.z = sp40.z = sp34.z; + var_r29 = 2; + } + } else if (var_r29 == 0) { + if (sp40.z <= sp34.z) { + sp4C.z = sp40.z = sp34.z; + var_r29 = 2; + } + } + if (arg6 != 0) { + sp1C.y = fn_1_2410C(sp1C.y, sp28.y, arg4); + } + Hu3DModelPosSet(arg0, sp4C.x, sp40.y, sp4C.z); + Hu3DModelRotSet(arg0, sp1C.x, sp1C.y, sp1C.z); + if (var_r30 == 2 && var_r29 == 2) { + break; + } + } + sp1C.y = Hu3DData[arg0].rot.y; + if (arg6 != 0) { + for (i = 0; i <= arg4; i++) { + HuPrcVSleep(); + if (sp10.y >= 180.0f) { + if (sp1C.y - sp10.y >= 180.0f) { + sp1C.y -= 360.0f; + } + if (sp1C.y - sp10.y < -180.0f) { + sp1C.y += 360.0f; + } + } else { + if (sp1C.y - sp10.y > 180.0f) { + sp1C.y -= 360.0f; + } + if (sp1C.y - sp10.y <= -180.0f) { + sp1C.y += 360.0f; + } + } + sp10.z = fn_1_240E4(sp1C.y, sp10.y, i, arg4); + Hu3DModelRotSet(arg0, sp1C.x, sp10.z, sp1C.z); + } + } +} + +void fn_1_26790(s32 arg0, s32 arg1, float arg2, float arg3) { + HuSprPosSet(arg0, arg1, arg2, arg3 + 0.5f); +} From 61fb3214773d5d5e9d42abbbe959e4b91079fccd Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sun, 18 Aug 2024 07:59:47 -0500 Subject: [PATCH 039/311] Fix record value type to be unsigned --- include/game/gamework.h | 4 ++-- src/REL/m403Dll/main.c | 2 +- src/REL/m405Dll/main.c | 5 +---- src/REL/m442Dll/main.c | 7 +++---- src/game/gamework.c | 4 ++-- 5 files changed, 9 insertions(+), 13 deletions(-) diff --git a/include/game/gamework.h b/include/game/gamework.h index 081dd16b..0e3b4807 100644 --- a/include/game/gamework.h +++ b/include/game/gamework.h @@ -9,8 +9,8 @@ void GWInit(void); void GWGameStatReset(void); s32 GWMessSpeedGet(void); s32 GWMessDelayGet(void); -void GWMGRecordSet(s32 index, s32 value); -s32 GWMGRecordGet(s32 index); +void GWMGRecordSet(s32 index, u32 value); +u32 GWMGRecordGet(s32 index); void GWCharColorGet(s32 character, GXColor *color); void GWBoardPlayCountSet(s32 board, u8 value); void GWBoardPlayCountAdd(s32 board, u8 value); diff --git a/src/REL/m403Dll/main.c b/src/REL/m403Dll/main.c index d40fbf68..b3e32cfe 100755 --- a/src/REL/m403Dll/main.c +++ b/src/REL/m403Dll/main.c @@ -213,7 +213,7 @@ void ObjectSetup(void) { WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); HuAudSndGrpSet(0x1C); lbl_1_bss_2 = 0; - if (GWMGRecordGet(9) == 0U) { + if (GWMGRecordGet(9) == 0) { GWMGRecordSet(9, 5); } } diff --git a/src/REL/m405Dll/main.c b/src/REL/m405Dll/main.c index fc733b71..4c4484bf 100755 --- a/src/REL/m405Dll/main.c +++ b/src/REL/m405Dll/main.c @@ -2288,10 +2288,7 @@ void fn_1_9288(omObjData *arg0) { } if (lbl_1_bss_7C >= 0 && !GWPlayerCfg[lbl_1_bss_7C].iscom && lbl_1_bss_738 > lbl_1_bss_73C) { arg0->work[0] = 1007; - lbl_1_bss_728 = 0.0f; - lbl_1_bss_738 = lbl_1_bss_73C; - GWMGRecordSet(0, lbl_1_bss_738); - fn_1_580(lbl_1_bss_6E8, 7, lbl_1_bss_73C); + fn_1_798(0); } lbl_1_bss_736 = -1; lbl_1_bss_80 = 0.0f; diff --git a/src/REL/m442Dll/main.c b/src/REL/m442Dll/main.c index 267d7377..adad58c8 100644 --- a/src/REL/m442Dll/main.c +++ b/src/REL/m442Dll/main.c @@ -2,6 +2,8 @@ #include "ext_math.h" #include "game/audio.h" #include "game/chrman.h" +#include "game/gamework.h" + #include "game/gamework_data.h" #include "game/hsfdraw.h" #include "game/hsfmotion.h" @@ -123,9 +125,6 @@ typedef struct M442MainWork2 { /* 0x18 */ float unk_18; } M442MainWork2; /* size = 0x1C */ -void GWMGRecordSet(s32 index, s32 value); -u32 GWMGRecordGet(s32 index); - void fn_1_A30(omObjData *object); void fn_1_A90(Process *arg0); void fn_1_D9C(void); @@ -250,7 +249,7 @@ void ObjectSetup(void) fn_1_A90(var_r31); fn_1_3E64(var_r31); fn_1_6BB4(var_r31); - if (!GWMGRecordGet(4)) { + if (GWMGRecordGet(4) == 0) { GWMGRecordSet(4, 0); } fn_1_91AC(var_r31, GWMGRecordGet(4)); diff --git a/src/game/gamework.c b/src/game/gamework.c index 822bd129..371d8499 100644 --- a/src/game/gamework.c +++ b/src/game/gamework.c @@ -147,14 +147,14 @@ s32 GWMessDelayGet(void) return GWSystem.mess_delay; } -void GWMGRecordSet(s32 index, s32 value) +void GWMGRecordSet(s32 index, u32 value) { if(!_CheckFlag(FLAG_ID_MAKE(1, 12))) { GWGameStat.mg_record[index] = value; } } -s32 GWMGRecordGet(s32 index) +u32 GWMGRecordGet(s32 index) { return GWGameStat.mg_record[index]; } From d9e50622779259606fc43cd9a67b334f78c21182 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sun, 18 Aug 2024 08:01:00 -0500 Subject: [PATCH 040/311] Fix m403/main.c --- src/REL/m403Dll/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/REL/m403Dll/main.c b/src/REL/m403Dll/main.c index b3e32cfe..3d143917 100755 --- a/src/REL/m403Dll/main.c +++ b/src/REL/m403Dll/main.c @@ -401,7 +401,7 @@ static void fn_1_82C(omObjData *arg0) { lbl_1_bss_28 = 90; break; } - if (GWMGRecordGet(9) < lbl_1_bss_0 - 1) { + if ((s32)GWMGRecordGet(9) < lbl_1_bss_0 - 1) { GWMGRecordSet(9, lbl_1_bss_0 - 1); lbl_1_bss_30 = 8; break; From 5ed45bdf1b68db8f8b26b5e3c26480ed4f071eb0 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Sat, 24 Aug 2024 22:53:55 -0700 Subject: [PATCH 041/311] Matched most of REL/m437Dll (1 function missing: fn_1_65E0) --- config/GMPE01_00/rels/m437Dll/symbols.txt | 80 +- configure.py | 2 +- include/REL/m437Dll.h | 73 + include/game/gamework_data.h | 5 + src/REL/m437Dll/main.c | 3360 +++++++++++++++++++++ src/REL/m437Dll/sequence.c | 586 ++++ 6 files changed, 4065 insertions(+), 41 deletions(-) create mode 100755 include/REL/m437Dll.h create mode 100755 src/REL/m437Dll/main.c create mode 100755 src/REL/m437Dll/sequence.c diff --git a/config/GMPE01_00/rels/m437Dll/symbols.txt b/config/GMPE01_00/rels/m437Dll/symbols.txt index 8cd64fd3..2c062d3f 100644 --- a/config/GMPE01_00/rels/m437Dll/symbols.txt +++ b/config/GMPE01_00/rels/m437Dll/symbols.txt @@ -166,7 +166,7 @@ fn_1_108A4 = .text:0x000108A4; // type:function size:0x1EC _prolog = .text:0x00010A90; // type:function size:0x54 scope:global _epilog = .text:0x00010AE4; // type:function size:0x4C scope:global fn_1_10B30 = .text:0x00010B30; // type:function size:0x40C -fn_1_10F3C = .text:0x00010F3C; // type:function size:0x40C +ObjectSetup = .text:0x00010F3C; // type:function size:0x40C fn_1_11348 = .text:0x00011348; // type:function size:0x28 fn_1_11370 = .text:0x00011370; // type:function size:0x40 fn_1_113B0 = .text:0x000113B0; // type:function size:0xC8 @@ -235,9 +235,9 @@ lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:float lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float @@ -253,11 +253,11 @@ lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x78 -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x78 +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x78 data:float lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC8 -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x78 +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x78 data:float lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float @@ -269,7 +269,7 @@ lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x14 data:4byte lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x30 data:4byte +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x30 data:float lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float @@ -287,7 +287,7 @@ lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x30 data:4byte +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x30 data:float lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float @@ -314,7 +314,7 @@ lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x20 data:4byte lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:4byte lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x20 data:4byte lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:4byte -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x30 data:4byte +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x30 data:float lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float @@ -330,26 +330,26 @@ lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:4byte lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0xC data:4byte lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x8 data:4byte lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x8 data:4byte -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x30 data:4byte -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x18 data:4byte +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x30 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x18 data:float lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 data:float -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 data:double -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float -lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float -lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 scope:local data:float +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 scope:local data:double +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 scope:local data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 scope:local data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 scope:local data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0xA0 lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x4 data:4byte lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x4 data:4byte @@ -358,30 +358,30 @@ lbl_1_data_AC = .data:0x000000AC; // type:object size:0x1B data:string lbl_1_data_C7 = .data:0x000000C7; // type:object size:0x22 data:string lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x1A data:string lbl_1_data_103 = .data:0x00000103; // type:object size:0x1A data:string -lbl_1_data_11D = .data:0x0000011D; // type:object size:0xF +lbl_1_data_11D = .data:0x0000011D; // type:object size:0xE data:string lbl_1_data_12C = .data:0x0000012C; // type:object size:0x4 data:4byte lbl_1_data_130 = .data:0x00000130; // type:object size:0x16 data:string lbl_1_data_146 = .data:0x00000146; // type:object size:0x13 data:string lbl_1_data_159 = .data:0x00000159; // type:object size:0xE data:string lbl_1_data_167 = .data:0x00000167; // type:object size:0xE data:string -lbl_1_data_175 = .data:0x00000175; // type:object size:0x13 +lbl_1_data_175 = .data:0x00000175; // type:object size:0x12 data:string lbl_1_data_188 = .data:0x00000188; // type:object size:0x4 data:float lbl_1_data_18C = .data:0x0000018C; // type:object size:0x14 data:string jumptable_1_data_1A0 = .data:0x000001A0; // type:object size:0x20 scope:local -lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x14 +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x12 data:string jumptable_1_data_1D4 = .data:0x000001D4; // type:object size:0x30 scope:local lbl_1_data_204 = .data:0x00000204; // type:object size:0x78 lbl_1_data_27C = .data:0x0000027C; // type:object size:0x90 lbl_1_data_30C = .data:0x0000030C; // type:object size:0x18 jumptable_1_data_324 = .data:0x00000324; // type:object size:0x2C scope:local -lbl_1_data_350 = .data:0x00000350; // type:object size:0x10 data:string -lbl_1_data_360 = .data:0x00000360; // type:object size:0x10 data:string -lbl_1_data_370 = .data:0x00000370; // type:object size:0x10 data:string -lbl_1_data_380 = .data:0x00000380; // type:object size:0x10 data:string -lbl_1_data_390 = .data:0x00000390; // type:object size:0x10 data:string -lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x10 data:string -lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x10 data:string -lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x10 data:string +lbl_1_data_350 = .data:0x00000350; // type:object size:0x10 scope:local data:string +lbl_1_data_360 = .data:0x00000360; // type:object size:0x10 scope:local data:string +lbl_1_data_370 = .data:0x00000370; // type:object size:0x10 scope:local data:string +lbl_1_data_380 = .data:0x00000380; // type:object size:0x10 scope:local data:string +lbl_1_data_390 = .data:0x00000390; // type:object size:0x10 scope:local data:string +lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x10 scope:local data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x10 scope:local data:string +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x10 scope:local data:string lbl_1_data_3D0 = .data:0x000003D0; // type:object size:0x20 lbl_1_data_3F0 = .data:0x000003F0; // type:object size:0x40 lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 883c245d..7d4cf24a 100644 --- a/configure.py +++ b/configure.py @@ -1118,7 +1118,7 @@ config.libs = [ "m437Dll", # Balloon of Doom objects={ Object(NonMatching, "REL/m437Dll/main.c"), - Object(NonMatching, "REL/m437Dll/sequence.c"), + Object(Matching, "REL/m437Dll/sequence.c"), }, ), Rel( diff --git a/include/REL/m437Dll.h b/include/REL/m437Dll.h new file mode 100755 index 00000000..e96aeaea --- /dev/null +++ b/include/REL/m437Dll.h @@ -0,0 +1,73 @@ +#include "game/object.h" + +#include "dolphin.h" + +typedef struct { + /* 0x00 */ void (*unk00)(void); + /* 0x04 */ s32 (*unk04)(void); + /* 0x08 */ s32 unk08; +} StructData204; // Size 0xC + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ StructData204* unk04; + /* 0x08 */ void (*unk08)(void); + /* 0x0C */ s32 (*unk0C)(void); + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; +} StructBss50; // Size 0x18 + +typedef struct { + /* 0x00 */ void (*unk00)(void); + /* 0x04 */ void (*unk04)(void); + /* 0x08 */ float unk08; + /* 0x08 */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ float unk20; + /* 0x24 */ float unk24; + /* 0x28 */ float unk28; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ float unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ s32 unk40; + /* 0x44 */ s32 unk44[7]; + /* 0x60 */ float unk60[7]; +} StructBss160; // Size 0x7C + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ char unk04[128]; + /* 0x84 */ s32 unk84; + /* 0x88 */ s32 unk88; + /* 0x8C */ s32 unk8C; + /* 0x90 */ s32 unk90; + /* 0x94 */ s32 unk94[20]; + /* 0xE4 */ omObjData* unkE4; +} StructFn15CD0; // Size 0xE8 + +float fn_1_11348(float arg0, float arg1, float arg2, float arg3); +float fn_1_11370(float arg0, float arg1, float arg2); +float fn_1_113B0(float arg0, float arg1, float arg2, float arg3); +float fn_1_11478(float arg0, float arg1, float arg2, float arg3); +float fn_1_11540(float arg0, float arg1, float arg2, float arg3); +void fn_1_11668(StructBss50* arg0, StructData204* arg1); +s32 fn_1_116C4(StructBss50* arg0); +s32 fn_1_117C0(StructBss50* arg0, s32 arg1); +s32 fn_1_11854(StructBss50* arg0, s32 arg1); +s32 fn_1_11890(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_119A0(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_11B18(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +s32 fn_1_11CE0(omObjData* arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5, s32 arg6); +void fn_1_12ABC(StructBss160* arg0); +void fn_1_12E14(StructBss160* arg0, float arg1); +void fn_1_13658(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3, float arg4); +void fn_1_15544(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3, float arg4); +void fn_1_15CD0(StructFn15CD0* arg0, s32 arg1); +void fn_1_15DC8(StructFn15CD0* arg0); +void fn_1_164B0(Process* arg0, StructFn15CD0* arg1, s32 arg2, const char* arg3); +void fn_1_1660C(Process* arg0, StructFn15CD0* arg1, s32 arg2, s32 arg3); diff --git a/include/game/gamework_data.h b/include/game/gamework_data.h index 5376c63e..cad58011 100644 --- a/include/game/gamework_data.h +++ b/include/game/gamework_data.h @@ -274,6 +274,11 @@ static inline s32 GWBoardGet(void) return GWSystem.board; } +static inline s32 GWPlayerCurrGet(void) +{ + return GWSystem.player_curr; +} + static inline s32 GWPlayerTeamGet(s32 player) { return GWPlayer[player].team; diff --git a/src/REL/m437Dll/main.c b/src/REL/m437Dll/main.c new file mode 100755 index 00000000..27345907 --- /dev/null +++ b/src/REL/m437Dll/main.c @@ -0,0 +1,3360 @@ +#include "REL/m437Dll.h" +#include "game/process.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "dolphin.h" +#include "rel_sqrt_consts.h" +#include "string.h" + +typedef struct { + /* 0x000 */ omObjData* unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ char unk18[4]; + /* 0x01C */ s32 unk1C; + /* 0x020 */ s32 unk20; + /* 0x024 */ s32 unk24; + /* 0x028 */ s32 unk28; + /* 0x02C */ s32 unk2C; + /* 0x030 */ s32 unk30; + /* 0x034 */ s32 unk34; + /* 0x038 */ s32 unk38; + /* 0x03C */ s32 unk3C; + /* 0x040 */ s32 unk40; + /* 0x044 */ float unk44; + /* 0x048 */ float unk48; + /* 0x04C */ float unk4C; + /* 0x050 */ StructFn15CD0 unk50; +} StructBss1DC; // Size 0x138 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; +} StructBss920; // Size 0x24 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; +} StructFn3410; // Size 0x14 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; + /* 0x24 */ float unk24; +} StructBss8D4; // Size 0x28 + +typedef struct { + /* 0x000 */ omObjData* unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ s32 unk18; + /* 0x01C */ s32 unk1C; + /* 0x020 */ s32 unk20; + /* 0x024 */ StructFn15CD0 unk24; +} StructBss6BC; // Size 0x10C + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; +} StructBss8FC; // Size 0x24 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; + /* 0x24 */ float unk24[7]; + /* 0x40 */ char unk40[4]; + /* 0x44 */ float unk44[7]; + /* 0x60 */ char unk60[4]; + /* 0x64 */ float unk64[7]; + /* 0x80 */ char unk80[4]; + /* 0x84 */ float unk84[7]; + /* 0xA0 */ char unkA0[4]; + /* 0xA4 */ float unkA4[7]; + /* 0xC0 */ char unkC0[4]; + /* 0xC4 */ float unkC4[7]; + /* 0xE0 */ char unkE0[4]; +} StructBss68; // Size 0xE4 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; +} StructBss944; // Size 0x24 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ char unk08[0x38]; +} StructBss968; // Size 0x40 + +void fn_1_0(void); +void fn_1_1A8(void); +void fn_1_230(s32 arg0, s32 arg1, float arg2); +void fn_1_298(s32 arg0, float arg1); +float fn_1_304(s32 arg0); +void fn_1_434(void); +void fn_1_4C0(void); +void fn_1_8A4(void (*arg0)(void)); +void fn_1_8C4(void (*arg0)(void)); +void fn_1_8E4(omObjData* arg0); +void fn_1_F8C(void); +void fn_1_10C0(void); +void fn_1_1184(s32 arg0); +s32 fn_1_11BC(void); +void fn_1_11E0(void); +void fn_1_1218(omObjData* arg0); +void fn_1_13E8(void); +void fn_1_144C(s32 arg0, float arg1, float arg2, s32 arg3); +void fn_1_1A90(void); +void fn_1_1AB4(s32 arg0, float arg1, float arg2); +s32 fn_1_1F0C(float arg0, float arg1, float arg2, float arg3, s32 arg4); +s32 fn_1_20F8(float arg0, float arg1, float arg2, float arg3, s32 arg4); +void fn_1_22E4(s32 arg0, float arg1, float arg2); +void fn_1_273C(s32 arg0); +void fn_1_27A4(s32 arg0); +void fn_1_280C(s32 arg0, s32 arg1); +void fn_1_28F4(s32 arg0); +void fn_1_2A10(s32 arg0, s32 arg1); +void fn_1_2A94(float* arg0, s32 arg1); +void fn_1_2B04(omObjData* arg0); +void fn_1_2BAC(s32 arg0); +void fn_1_2BBC(omObjData* arg0); +void fn_1_3194(omObjData* arg0); +void fn_1_3260(StructBss920* arg0); +void fn_1_3410(omObjData* arg0); +float fn_1_3694(void); +float fn_1_36B4(void); +void fn_1_37D4(s32 arg0); +void fn_1_37E8(omObjData* arg0); +s32 fn_1_3990(void); +void fn_1_39C4(float arg0); +void fn_1_39E4(omObjData* arg0); +void fn_1_3B50(void); +void fn_1_3B64(omObjData* arg0); +void fn_1_3CB8(s32 arg0); +void fn_1_3D40(omObjData* arg0); +void fn_1_3F44(omObjData* arg0); +void fn_1_4538(StructBss8FC* arg0); +void fn_1_46C0(omObjData* arg0); +void fn_1_4928(s32 arg0); +void fn_1_4938(omObjData* arg0); +void fn_1_4AF8(s32 arg0); +void fn_1_4BAC(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_4C40(omObjData* arg0); +void fn_1_4E00(StructBss8D4* arg0); +void fn_1_4EE0(omObjData* arg0); +void fn_1_5148(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_51DC(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_5270(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_5304(s32 arg0); +void fn_1_532C(omObjData* arg0); +void fn_1_5658(omObjData* arg0); +void fn_1_5984(StructBss6BC* arg0); +void fn_1_5AD8(omObjData* arg0); +void fn_1_5FBC(void); +void fn_1_610C(s32 arg0, s32 arg1); +void fn_1_6134(omObjData* arg0); +void fn_1_6198(s32 arg0, s32 arg1); +void fn_1_6200(omObjData* arg0); +void fn_1_6580(s32 arg0, s32 arg1, s32 arg2); +void fn_1_65E0(omObjData* arg0); +void fn_1_70F8(s32 arg0, s32 arg1); +void fn_1_7134(omObjData* arg0); +void fn_1_72CC(omObjData* arg0); +void fn_1_74B0(StructBss1DC* arg0); +void fn_1_7678(omObjData* arg0); +void fn_1_79E0(void); +void fn_1_7A14(omObjData* arg0); +void fn_1_82E0(omObjData* arg0); +void fn_1_8308(StructBss68* arg0); +void fn_1_84C4(omObjData* arg0); +void fn_1_8684(void); +void fn_1_8734(void); +void fn_1_8824(void); +void fn_1_88D4(void); +void fn_1_8984(void); +void fn_1_8A34(void); +void fn_1_8B24(void); +void fn_1_8BD4(void); +void fn_1_8C84(s32 arg0); +void fn_1_8DA4(void); +void fn_1_9320(void); +void fn_1_96D8(void); +void fn_1_9B2C(s32 arg0); +void fn_1_9FA0(void); +void fn_1_A440(void); +void fn_1_A860(void); +s32 fn_1_A864(void); +void fn_1_A9E8(void); +s32 fn_1_AA24(void); +void fn_1_AA80(void); +s32 fn_1_AABC(void); +void fn_1_AB18(void); +s32 fn_1_AB68(void); +void fn_1_ABB0(void); +s32 fn_1_ABEC(void); +void fn_1_AC70(void); +s32 fn_1_ACCC(void); +void fn_1_AD28(void); +s32 fn_1_AD98(void); +void fn_1_ADE0(void); +s32 fn_1_AE1C(void); +void fn_1_AE78(void); +s32 fn_1_AF4C(void); +void fn_1_B194(void); +s32 fn_1_B1C4(void); +float fn_1_B250(void); +void fn_1_B270(void); +s32 fn_1_B3F0(s32 arg0); +float fn_1_B4F4(s32 arg0, s32 arg1); +void fn_1_B7E0(void); +void fn_1_B8D0(void); +void fn_1_BC18(void); +void fn_1_BCC8(void); +void fn_1_BDB8(s32 arg0); +void fn_1_BE80(void); +void fn_1_C248(void); +void fn_1_C610(void); +void fn_1_C9C4(void); +void fn_1_CD20(void); +void fn_1_D03C(void); +void fn_1_D3C0(void); +void fn_1_D754(void); +s32 fn_1_D930(void); +void fn_1_DCEC(void); +s32 fn_1_DEC4(void); +void fn_1_E2A8(void); +s32 fn_1_E598(void); +void fn_1_E634(void); +s32 fn_1_E944(void); +void fn_1_E9A0(void); +s32 fn_1_EAA4(void); +void fn_1_EB38(void); +s32 fn_1_EC10(void); +void fn_1_EDD4(void); +s32 fn_1_EEA0(void); +void fn_1_EFCC(void); +s32 fn_1_F0B8(void); +void fn_1_F0F8(void); +s32 fn_1_F144(void); +void fn_1_F18C(void); +s32 fn_1_F294(void); +void fn_1_F3D8(void); +s32 fn_1_F494(void); +void fn_1_F4D4(void); +s32 fn_1_F504(void); +void fn_1_F590(void); +s32 fn_1_F640(void); +void fn_1_F6EC(void); +s32 fn_1_F71C(void); +void fn_1_F7A8(omObjData* arg0); +s32 fn_1_F89C(void); +void fn_1_F8AC(void); +void fn_1_1043C(omObjData* arg0); +void fn_1_108A4(omObjData* arg0); +void fn_1_10B30(void); + +StructBss968 lbl_1_bss_968; +StructBss944 lbl_1_bss_944; +StructBss920 lbl_1_bss_920; +StructBss8FC lbl_1_bss_8FC; +StructBss8D4 lbl_1_bss_8D4; +StructBss6BC lbl_1_bss_6BC[2]; +StructBss1DC lbl_1_bss_1DC[4]; +StructBss160 lbl_1_bss_160; +float lbl_1_bss_15C; +float lbl_1_bss_158; +float lbl_1_bss_154; +float lbl_1_bss_150; +float lbl_1_bss_14C; +StructBss68 lbl_1_bss_68; +StructBss50 lbl_1_bss_50; +StructBss50 lbl_1_bss_38; +StructBss50 lbl_1_bss_20; +s32 lbl_1_bss_1C; +s32 lbl_1_bss_18; +float lbl_1_bss_14; +s32 lbl_1_bss_10; +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +Process* lbl_1_bss_0; + + +s32 lbl_1_data_0[][5] = { + { 91, 105, 126, 141, -1 }, + { 91, 105, 126, 141, -1 }, + { 124, 137, -1, -1, -1 }, + { 85, 100, 127, -1, -1 }, + { 124, 139, -1, -1, -1 }, + { 85, 97, 127, 139, -1 }, + { 127, 137, -1, -1, -1 }, + { 79, 95, 109, 127, -1 } +}; + +s32 lbl_1_data_A0 = -1; +s32 lbl_1_data_A4 = -1; +s32 lbl_1_data_A8 = -1; + +void fn_1_0(void) { + s32 i; + + while (TRUE) { + HuPrcVSleep(); + if (lbl_1_data_A0 == -1 || lbl_1_data_A4 == -1 || lbl_1_data_A8 == -1 || lbl_1_data_A4 != Hu3DMotionIDGet(lbl_1_data_A0)) { + continue; + } + for (i = 0; i < 5; i++) { + if (lbl_1_data_0[lbl_1_data_A8][i] != -1 && Hu3DMotionTimeGet(lbl_1_data_A0) >= lbl_1_data_0[lbl_1_data_A8][i]) { + OSReport("KE-System CHR:%d TIME:%d\n", lbl_1_data_A8, lbl_1_data_0[lbl_1_data_A8][i]); + HuAudFXPlay(0x6D8); + lbl_1_data_0[lbl_1_data_A8][i] = -1; + } + } + } +} + +void fn_1_1A8(void) { + s32 var_r31; + + var_r31 = Hu3DGLightCreate(0.0f, 1000.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0xFF, 0xFF, 0xFF); + Hu3DGLightInfinitytSet(var_r31); +} + +void fn_1_230(s32 arg0, s32 arg1, float arg2) { + StructBss160* var_r31; + + var_r31 = &lbl_1_bss_160; + var_r31->unk44[arg0] = arg1; + if (var_r31->unk60[arg0] < 0.0f) { + var_r31->unk60[arg0] = -arg2; + } else { + var_r31->unk60[arg0] = arg2; + } +} + +void fn_1_298(s32 arg0, float arg1) { + fn_1_230(arg0, -1, arg1); +} + +float fn_1_304(s32 arg0) { + StructBss160* var_r31; + + var_r31 = &lbl_1_bss_160; + if (var_r31->unk60[arg0] != 0.0f) { + var_r31->unk60[arg0] *= -0.9f; + if (var_r31->unk44[arg0] == -1) { + if (var_r31->unk60[arg0] >= -0.5f && var_r31->unk60[arg0] <= 0.5f) { + var_r31->unk60[arg0] = 0.0f; + } + } else { + var_r31->unk44[arg0]--; + if (var_r31->unk44[arg0] <= 0) { + var_r31->unk44[arg0] = 0; + var_r31->unk60[arg0] = 0.0f; + } + } + } + return var_r31->unk60[arg0]; +} + +void fn_1_434(void) { + StructBss160* var_r31; + + var_r31 = &lbl_1_bss_160; + var_r31->unk08 = 0.0f; + var_r31->unk0C = 225.0f; + var_r31->unk10 = 1740.0f; + var_r31->unk20 = -10.0f; + var_r31->unk24 = 0.0f; + var_r31->unk28 = 0.0f; + var_r31->unk38 = 300.0f; +} + +void fn_1_4C0(void) { + StructBss160* var_r31; + + var_r31 = &lbl_1_bss_160; + if (HuPadBtn[0] & 0x200) { + if (HuPadBtn[0] & 0x100) { + var_r31->unk10 -= HuPadStkY[0] / 10.0f; + } else { + var_r31->unk08 += HuPadStkX[0] / 10.0f; + var_r31->unk0C += HuPadStkY[0] / 10.0f; + } + } + if (HuPadBtn[0] & 0x800) { + var_r31->unk20 -= HuPadStkY[0] / 100.0f; + var_r31->unk24 += HuPadStkX[0] / 100.0f; + if (var_r31->unk20 < 0.0f) { + var_r31->unk20 += 360.0f; + } + if (var_r31->unk20 >= 360.0f) { + var_r31->unk20 -= 360.0f; + } + if (var_r31->unk24 < 0.0f) { + var_r31->unk24 += 360.0f; + } + if (var_r31->unk24 >= 360.0f) { + var_r31->unk24 -= 360.0f; + } + } + if (HuPadBtn[0] & 0x400) { + var_r31->unk38 -= HuPadStkY[0] / 10.0f; + } + print8(16, 100, 1.0f, ">>>>>>>>>> CAMERA TEST <<<<<<<<<<"); + print8(16, 110, 1.0f, "CENTER : %.2f, %.2f, %.2f", var_r31->unk08, var_r31->unk0C, var_r31->unk10); + print8(16, 120, 1.0f, "ROT : %.2f, %.2f, %.2f", var_r31->unk20, var_r31->unk24, var_r31->unk28); + print8(16, 130, 1.0f, "ZOOM : %.2f", var_r31->unk38); +} + +void fn_1_8A4(void (*arg0)(void)) { + StructBss160* var_r31; + + var_r31 = &lbl_1_bss_160; + var_r31->unk00 = arg0; +} + +void fn_1_8C4(void (*arg0)(void)) { + StructBss160* var_r31; + + var_r31 = &lbl_1_bss_160; + var_r31->unk04 = arg0; +} + +void fn_1_8E4(omObjData* arg0) { + StructBss160* var_r31; + + var_r31 = &lbl_1_bss_160; + if (var_r31->unk00 != NULL) { + var_r31->unk00(); + } + Center.x = var_r31->unk08 + fn_1_304(0); + Center.y = var_r31->unk0C + fn_1_304(1); + Center.z = var_r31->unk10 + fn_1_304(2); + CRot.x = var_r31->unk20 + fn_1_304(3); + CRot.y = var_r31->unk24 + fn_1_304(4); + CRot.z = var_r31->unk28 + fn_1_304(5); + CZoom = var_r31->unk38 + fn_1_304(6); +} + +void fn_1_F8C(void) { + Hu3DCameraCreate(1); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 45.0f, 0.1f, 10000.0f, 1.2f); + fn_1_8A4(fn_1_434); + fn_1_8C4(fn_1_4C0); + omAddObjEx(lbl_1_bss_0, 0x7FDA, 0, 0, -1, omOutView); + omAddObjEx(lbl_1_bss_0, 0x7FD9, 0, 0, -1, fn_1_8E4); +} + +void fn_1_10C0(void) { + Vec sp20 = { 0.0f, 3000.0f, 1.0f }; + Vec sp14 = { 0.0f, 0.0f, 0.0f }; + Vec sp8 = { 0.0f, 1.0f, 0.0f }; + + Hu3DShadowCreate(45.0f, 2000.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.8f); + Hu3DShadowPosSet(&sp20, &sp8, &sp14); +} + +void fn_1_1184(s32 arg0) { + if (lbl_1_bss_8 == 0) { + lbl_1_bss_8 = 1; + lbl_1_bss_4 = arg0 * 60; + } +} + +s32 fn_1_11BC(void) { + if (lbl_1_bss_8 == 3) { + return 1; + } else { + return 0; + } +} + +void fn_1_11E0(void) { + if (lbl_1_bss_8 == 2) { + lbl_1_bss_8 = 3; + lbl_1_bss_4 = 30; + } +} + +s32 lbl_1_data_12C = -1; + +void fn_1_1218(omObjData* arg0) { + switch (lbl_1_bss_8) { + case 1: + if (lbl_1_data_12C == -1) { + lbl_1_data_12C = MGSeqCreate(1, lbl_1_bss_4 / 60, -1, -1); + } + lbl_1_bss_8 = 2; + break; + case 2: + lbl_1_bss_4--; + if (lbl_1_data_12C != -1) { + MGSeqParamSet(lbl_1_data_12C, 1, (lbl_1_bss_4 + 59) / 60); + } + if (lbl_1_bss_4 <= 0) { + lbl_1_bss_4 = 30; + lbl_1_bss_8 = 3; + } + break; + case 3: + if (lbl_1_data_12C != -1) { + MGSeqParamSet(lbl_1_data_12C, 2, -1); + lbl_1_data_12C = -1; + } + lbl_1_bss_4 = 0; + lbl_1_bss_8 = 0; + break; + } +} + +void fn_1_13E8(void) { + lbl_1_bss_4 = 0; + lbl_1_bss_8 = 0; + omAddObjEx(lbl_1_bss_0, 0x2000, 0, 0, -1, fn_1_1218); +} + +// Identical to mgmodedll/main.c::fn_1_245CC +void fn_1_144C(s32 arg0, float arg1, float arg2, s32 arg3) { + WindowData* temp_r29; + float temp_f29; + float temp_f28; + float temp_f25; + float temp_f24; + float temp_f27; + float temp_f26; + float var_f31; + float var_f30; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + s32 i; + + temp_r29 = &winData[arg0]; + temp_f29 = temp_r29->pos_x; + temp_f28 = temp_r29->pos_y; + temp_f25 = temp_r29->w; + temp_f24 = temp_r29->h; + var_f31 = temp_f29 + temp_f25 * arg1; + temp_f27 = 4.0f / temp_f25; + if (var_f31 + 4.0f - (temp_f29 + temp_f25) >= 0.0f) { + var_f31 = temp_f29 + temp_f25 - 4.0f; + } else { + if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { + var_f31 = temp_f29; + } else { + var_f31 -= 2.0f; + } + } + var_f30 = temp_f28 + temp_f24 * arg2; + temp_f26 = 4.0f / temp_f24; + if (var_f30 + 4.0f - (temp_f28 + temp_f24) >= 0.0f) { + var_f30 = temp_f28 + temp_f24 - 4.0f; + } else { + if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { + var_f30 = temp_f28; + } else { + var_f30 -= 2.0f; + } + } + if (arg3 != 0) { + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + var_f23 = var_f31; + var_f21 = temp_f27; + var_f22 = var_f30; + var_f20 = temp_f26; + } else { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + var_f23 = temp_f29; + var_f21 = 1.0f; + var_f22 = temp_f28; + var_f20 = 1.0f; + } + HuWinDispOn(arg0); + for (i = 0; i <= 15; i++) { + HuPrcVSleep(); + if (arg3 != 0) { + if (i <= 10) { + var_f23 = fn_1_113B0(var_f31, temp_f29, i, 10.0f); + var_f21 = fn_1_113B0(temp_f27, 1.0f, i, 10.0f); + } else { + var_f22 = fn_1_113B0(var_f30, temp_f28, i - 10, 5.0f); + var_f20 = fn_1_113B0(temp_f26, 1.0f, i - 10, 5.0f); + } + } else { + if (i <= 10) { + var_f22 = fn_1_113B0(temp_f28, var_f30, i, 10.0f); + var_f20 = fn_1_113B0(1.0f, temp_f26, i, 10.0f); + } else { + var_f23 = fn_1_113B0(temp_f29, var_f31, i - 10, 5.0f); + var_f21 = fn_1_113B0(1.0f, temp_f27, i - 10, 5.0f); + } + } + HuWinPosSet(arg0, var_f23, var_f22); + HuWinScaleSet(arg0, var_f21, var_f20); + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + } else { + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + } + HuPrcVSleep(); +} + +void fn_1_1A90(void) { + HuWinInit(1); +} + +void fn_1_1AB4(s32 arg0, float arg1, float arg2) { + WindowData* temp_r31; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f24; + float var_f31; + float var_f30; + float temp_f23; + float temp_f22; + float temp_f21; + float temp_f20; + s32 i; + + temp_r31 = &winData[arg0]; + temp_f29 = temp_r31->pos_x; + temp_f28 = temp_r31->pos_y; + temp_f27 = temp_r31->w; + temp_f26 = temp_r31->h; + var_f31 = temp_f29 + temp_f27 * arg1; + temp_f25 = 4.0f / temp_f27; + if (var_f31 + 4.0f - (temp_f29 + temp_f27) >= 0.0f) { + var_f31 = temp_f29 + temp_f27 - 4.0f; + } else { + if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { + var_f31 = temp_f29; + } else { + var_f31 = var_f31 - 2.0f; + } + } + var_f30 = temp_f28 + temp_f26 * arg2; + temp_f24 = 4.0f / temp_f26; + if (var_f30 + 4.0f - (temp_f28 + temp_f26) >= 0.0f) { + var_f30 = temp_f28 + temp_f26 - 4.0f; + } else { + if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { + var_f30 = temp_f28; + } else { + var_f30 = var_f30 - 2.0f; + } + } + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f25, temp_f24); + HuPrcVSleep(); + for (i = 0; i < 10; i++) { + temp_f23 = fn_1_113B0(var_f31, temp_f29, i, 10.0f); + temp_f21 = fn_1_113B0(temp_f25, 1.0f, i, 10.0f); + temp_f22 = fn_1_113B0(var_f30, temp_f28, i, 10.0f); + temp_f20 = fn_1_113B0(temp_f24, 1.0f, i, 10.0f); + HuWinPosSet(arg0, temp_f23, temp_f22); + HuWinScaleSet(arg0, temp_f21, temp_f20); + HuPrcVSleep(); + } + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + HuPrcVSleep(); +} + +s32 fn_1_1F0C(float arg0, float arg1, float arg2, float arg3, s32 arg4) { + s32 var_r31; + s32 sp18[][6] = { + { 0xFF, 0xFF, 0xCC, 0x00, 0x09, 0x09 }, + { 0xCC, 0xFF, 0xFF, 0x00, 0x09, 0x09 }, + { 0xFF, 0xCC, 0xFF, 0x00, 0x09, 0x09 } + }; + + var_r31 = HuWinCreate(arg0, arg1, arg2, arg3, 1); + HuSprColorSet(winData[var_r31].group, 0, sp18[arg4][0], sp18[arg4][1], sp18[arg4][2]); + winData[var_r31].mess_color = sp18[arg4][3]; + winData[var_r31].mess_shadow_color = sp18[arg4][4]; + winData[var_r31].attr |= 0x80; + HuWinBGTPLvlSet(var_r31, sp18[arg4][5] / 10.0f); + winData[var_r31].active_pad = 0; + fn_1_144C(var_r31, 0.5f, 0.5f, 1); + return var_r31; +} + +s32 fn_1_20F8(float arg0, float arg1, float arg2, float arg3, s32 arg4) { + return fn_1_1F0C(arg0, arg1, arg2, arg3, arg4); +} + +void fn_1_22E4(s32 arg0, float arg1, float arg2) { + WindowData* temp_r31; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f24; + float var_f31; + float var_f30; + float temp_f23; + float temp_f22; + float temp_f21; + float temp_f20; + s32 i; + + temp_r31 = &winData[arg0]; + temp_f29 = temp_r31->pos_x; + temp_f28 = temp_r31->pos_y; + temp_f27 = temp_r31->w; + temp_f26 = temp_r31->h; + var_f31 = temp_f29 + temp_f27 * arg1; + temp_f25 = 4.0f / temp_f27; + if (var_f31 + 4.0f - (temp_f29 + temp_f27) >= 0.0f) { + var_f31 = temp_f29 + temp_f27 - 4.0f; + } else { + if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { + var_f31 = temp_f29; + } else { + var_f31 = var_f31 - 2.0f; + } + } + var_f30 = temp_f28 + temp_f26 * arg2; + temp_f24 = 4.0f / temp_f26; + if (var_f30 + 4.0f - (temp_f28 + temp_f26) >= 0.0f) { + var_f30 = temp_f28 + temp_f26 - 4.0f; + } else { + if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { + var_f30 = temp_f28; + } else { + var_f30 = var_f30 - 2.0f; + } + } + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + HuPrcVSleep(); + for (i = 0; i < 10; i++) { + temp_f23 = fn_1_11540(temp_f29, var_f31, i, 10.0f); + temp_f21 = fn_1_11540(1.0f, temp_f25, i, 10.0f); + temp_f22 = fn_1_11540(temp_f28, var_f30, i, 10.0f); + temp_f20 = fn_1_11540(1.0f, temp_f24, i, 10.0f); + HuWinPosSet(arg0, temp_f23, temp_f22); + HuWinScaleSet(arg0, temp_f21, temp_f20); + HuPrcVSleep(); + } + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f25, temp_f24); + HuPrcVSleep(); +} + +void fn_1_273C(s32 arg0) { + HuWinMesSet(arg0, MAKE_MESSID(29, 22)); + HuPrcVSleep(); + fn_1_144C(arg0, 0.5f, 0.5f, 0); + HuWinKill(arg0); +} + +void fn_1_27A4(s32 arg0) { + fn_1_273C(arg0); +} + +void fn_1_280C(s32 arg0, s32 arg1) { + s32 var_r30; + s32 temp_r28; + s32 i; + + var_r30 = 0; + temp_r28 = GWMessDelayGet(); + if (arg1 > 0) { + HuPrcSleep(arg1); + return; + } + HuWinComKeyReset(); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1DC[i].unk34 == 0) { + var_r30 = 1; + winData[arg0].active_pad = 0xF; + } + } + if (var_r30 == 0) { + winData[arg0].active_pad = 0xF; + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, temp_r28); + } + HuWinMesWait(arg0); + HuWinComKeyReset(); +} + +void fn_1_28F4(s32 arg0) { + s32 var_r31; + s32 temp_r28; + s32 i; + + var_r31 = 0; + temp_r28 = GWMessDelayGet(); + HuWinComKeyReset(); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1DC[i].unk34 == 0) { + var_r31 = 1; + winData[arg0].active_pad = 0xF; + } + } + if (var_r31 == 0) { + winData[arg0].active_pad = 0xF; + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, temp_r28); + } + var_r31 = HuWinChoiceGet(arg0, 1); + if (var_r31 == -1 || var_r31 == 1) { + lbl_1_bss_10 = 0; + } else { + lbl_1_bss_10 = 1; + } + HuWinComKeyReset(); +} + +void fn_1_2A10(s32 arg0, s32 arg1) { + winData[arg0].mess_color = 0; + winData[arg0].mess_shadow_color = 9; + winData[arg0].attr |= 0x80; + HuWinMesSet(arg0, arg1); +} + +void fn_1_2A94(float* arg0, s32 arg1) { + float spC[2]; + + HuWinMesMaxSizeGet(1, spC, arg1); + if (spC[0] > arg0[0]) { + arg0[0] = spC[0]; + } + if (spC[1] > arg0[1]) { + arg0[1] = spC[1]; + } +} + +void fn_1_2B04(omObjData* arg0) { + s32 i; + + for (i = 0; i < 3; i++) { + Hu3DData[arg0->model[i + 5]].rot.y += 360.0f / (2500.0f + 2500.0f * i); + } +} + +void fn_1_2BAC(s32 arg0) { + lbl_1_bss_920.unk04 = arg0; +} + +void fn_1_2BBC(omObjData* arg0) { + StructBss920* temp_r30; + + temp_r30 = arg0->data; + switch (temp_r30->unk04) { + case 2: + fn_1_119A0(arg0, 9, 9, 1, 0); + Hu3DModelAttrReset(arg0->model[9], 1); + temp_r30->unk1C = 0; + fn_1_230(1, 10, 4.0f); + HuAudFXPlay(0x6CF); + /* fallthrough */ + case 1: + fn_1_119A0(arg0, 0, 0, 1, 0); + fn_1_119A0(arg0, 3, 3, 1, 0); + fn_1_119A0(arg0, 4, 4, 1, 0); + fn_1_119A0(arg0, 5, 5, 1, 0); + fn_1_119A0(arg0, 6, 6, 1, 0); + fn_1_119A0(arg0, 7, 7, 1, 0); + if (temp_r30->unk04 == 1) { + HuAudFXPlay(0x6CE); + } + temp_r30->unk04 = 10; + break; + case 3: + temp_r30->unk04 = 30; + fn_1_119A0(arg0, 0, 0, 1, 0); + fn_1_119A0(arg0, 1, 1, 1, 0); + fn_1_119A0(arg0, 2, 2, 1, 0); + fn_1_119A0(arg0, 3, 3, 1, 0); + fn_1_119A0(arg0, 4, 4, 1, 0); + fn_1_119A0(arg0, 5, 5, 1, 0); + fn_1_119A0(arg0, 6, 6, 1, 0); + fn_1_119A0(arg0, 7, 7, 1, 0); + fn_1_119A0(arg0, 8, 8, 0, 0); + Hu3DModelAttrReset(arg0->model[8], 1); + Hu3DModelAttrReset(arg0->model[9], 1); + HuAudFXPlay(0x6D0); + break; + case 10: + if (Hu3DMotionEndCheck(arg0->model[3])) { + temp_r30->unk04 = 0; + fn_1_119A0(arg0, 3, 13, 1, 1); + fn_1_119A0(arg0, 4, 14, 1, 1); + Hu3DModelAttrSet(arg0->model[8], 1); + Hu3DModelAttrSet(arg0->model[9], 1); + } + break; + case 30: + fn_1_230(6, -1, 8.0f); + if (Hu3DMotionTimeGet(arg0->model[3]) >= 30.0f) { + temp_r30->unk04 = 10; + fn_1_230(6, -1, 128.0f); + HuAudFXPlay(0x6DA); + omVibrate(lbl_1_bss_1DC[0].unk2C, 12, 12, 0); + omVibrate(lbl_1_bss_1DC[1].unk2C, 12, 12, 0); + omVibrate(lbl_1_bss_1DC[2].unk2C, 12, 12, 0); + omVibrate(lbl_1_bss_1DC[3].unk2C, 12, 12, 0); + fn_1_37D4(1); + } + break; + } + if (Hu3DMotionTimeGet(arg0->model[9]) >= 25.0f && temp_r30->unk1C == 0) { + temp_r30->unk1C = 1; + fn_1_230(1, 10, 4.0f); + } else if (Hu3DMotionTimeGet(arg0->model[9]) >= 40.0f && temp_r30->unk1C == 1) { + temp_r30->unk1C = 2; + fn_1_230(1, 10, 4.0f); + } + if (temp_r30->unk04 == 0) { + if (temp_r30->unk14++ >= 300) { + temp_r30->unk14 = 0; + if (rand8() % 2 != 0) { + fn_1_2BAC(1); + } + } + } +} + +void fn_1_3194(omObjData* arg0) { + fn_1_2B04(arg0); + fn_1_2BBC(arg0); +} + +void fn_1_3260(StructBss920* arg0) { + omObjData* temp_r29 = arg0->unk00; + s32 sp80[][3] = { + { 2, -1, 0 }, + { 2, -1, 0 }, + { 2, -1, 0 }, + { 1, 1, 0 }, + { 1, 1, 0 }, + { 2, -1, 0 }, + { 2, -1, 0 }, + { 2, -1, 0 }, + { 2, -1, 1 }, + { 2, -1, 1 } + }; + Vec sp8[] = { + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, -680.0f }, + { 0.0f, 0.0f, -680.0f }, + { 525.0f, 0.0f, -1150.0f }, + { -525.0f, 0.0f, -1150.0f }, + { 0.0f, 150.0f, 50.0f }, + { 0.0f, 150.0f, 0.0f }, + { 0.0f, 150.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f } + }; + s32 i; + + for (i = 0; i < 10; i++) { + Hu3DModelPosSet(temp_r29->model[i], sp8[i].x, sp8[i].y, sp8[i].z); + if (sp80[i][2] == 1) { + Hu3DModelAttrSet(temp_r29->model[i], 1); + } + if (sp80[i][1] != -1) { + fn_1_119A0(temp_r29, i, i + 10, 1, sp80[i][1]); + } else { + fn_1_119A0(temp_r29, i, i, 1, sp80[i][1]); + } + } + temp_r29->work[0] = temp_r29->work[1] = temp_r29->work[2] = temp_r29->work[3] = 0; + arg0->unk14 = arg0->unk18 = arg0->unk1C = arg0->unk20 = 0; + arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; +} + +void fn_1_3410(omObjData* arg0) { + StructFn3410 sp80[] = { + { DATA_MAKE_NUM(DATADIR_M437, 36), 2, -1, 1, 0 }, + { DATA_MAKE_NUM(DATADIR_M437, 37), 2, -1, 1, 0 }, + { DATA_MAKE_NUM(DATADIR_M437, 38), 2, -1, 2, 0 }, + { DATA_MAKE_NUM(DATADIR_M437, 39), 1, DATA_MAKE_NUM(DATADIR_M437, 41), 2, 0 }, + { DATA_MAKE_NUM(DATADIR_M437, 40), 1, DATA_MAKE_NUM(DATADIR_M437, 42), 2, 0 }, + { DATA_MAKE_NUM(DATADIR_M437, 33), 2, -1, 0, 0 }, + { DATA_MAKE_NUM(DATADIR_M437, 34), 2, -1, 0, 0 }, + { DATA_MAKE_NUM(DATADIR_M437, 35), 2, -1, 0, 0 }, + { DATA_MAKE_NUM(DATADIR_M437, 43), 2, -1, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_M437, 44), 2, -1, 0, 1 } + }; + Vec sp8[] = { + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, -680.0f }, + { 0.0f, 0.0f, -680.0f }, + { 525.0f, 0.0f, -1150.0f }, + { -525.0f, 0.0f, -1150.0f }, + { 0.0f, 150.0f, 50.0f }, + { 0.0f, 150.0f, 0.0f }, + { 0.0f, 150.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f } + }; + s32 i; + + for (i = 0; i < 10; i++) { + arg0->model[i] = Hu3DModelCreateFile(sp80[i].unk00); + arg0->motion[i] = Hu3DMotionIDGet(arg0->model[i]); + if (sp80[i].unk08 != -1) { + arg0->motion[i + 10] = Hu3DJointMotionFile(arg0->model[i], sp80[i].unk08); + } + Hu3DModelPosSet(arg0->model[i], sp8[i].x, sp8[i].y, sp8[i].z); + if (sp80[i].unk0C == 1) { + Hu3DModelShadowMapSet(arg0->model[i]); + } else if (sp80[i].unk0C == 2) { + Hu3DModelShadowSet(arg0->model[i]); + } + if (sp80[i].unk10 == 1) { + Hu3DModelAttrSet(arg0->model[i], 1); + Hu3DModelLayerSet(arg0->model[i], 1); + } + if (sp80[i].unk08 != -1) { + fn_1_119A0(arg0, i, i + 10, 1, sp80[i].unk04); + } else { + fn_1_119A0(arg0, i, i, 1, sp80[i].unk04); + } + } + arg0->data = &lbl_1_bss_920; + arg0->func = fn_1_3194; +} + +float fn_1_3694(void) { + return lbl_1_bss_150 / lbl_1_bss_154; +} + +float fn_1_36B4(void) { + float temp_f31; + StructBss6BC* sp8; + + temp_f31 = lbl_1_bss_150 / lbl_1_bss_154; + sp8 = &lbl_1_bss_6BC[1]; + if (lbl_1_bss_8D4.unk08 == 0) { + if (temp_f31 > 0.875f) { + fn_1_4AF8(3); + fn_1_5304(3); + fn_1_5148(3, 5, 0, 0); + fn_1_5270(5, 10, 2, 1); + } else if (temp_f31 > 0.75f) { + fn_1_4AF8(2); + fn_1_5304(2); + } else if (temp_f31 > 0.5f) { + fn_1_4AF8(1); + fn_1_5304(1); + } else { + fn_1_4AF8(0); + fn_1_5304(0); + } + } + return temp_f31; +} + +void fn_1_37D4(s32 arg0) { + lbl_1_bss_8FC.unk04 = 1; +} + +void fn_1_37E8(omObjData* arg0) { + Mtx sp8; + StructBss8FC* var_r30; + + var_r30 = &lbl_1_bss_8FC; + switch (var_r30->unk04) { + case 1: + var_r30->unk04 = 2; + Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DModelAttrReset(arg0->model[1], 1); + Hu3DModelAttrReset(arg0->model[2], 1); + fn_1_119A0(arg0, 0, 3, 1, 0); + fn_1_119A0(arg0, 2, 10, 1, 0); + break; + case 2: + if (Hu3DMotionTimeGet(arg0->model[0]) >= 20.0f) { + arg0->trans.y -= 20.0f; + if (arg0->trans.y <= 0.0f) { + arg0->trans.y = 0.0f; + var_r30->unk04 = 3; + } + } + break; + case 3: + if (Hu3DMotionEndCheck(arg0->model[0])) { + var_r30->unk04 = 4; + Hu3DModelHookReset(arg0->model[2]); + Hu3DModelObjMtxGet(arg0->model[0], "m437a01-balloon-point", sp8); + Hu3DModelPosSet(arg0->model[1], sp8[0][3], 0.0f, -250.0f); + } + break; + } +} + +s32 fn_1_3990(void) { + if (lbl_1_bss_15C <= lbl_1_bss_158) { + return 1; + } else { + return 0; + } +} + +void fn_1_39C4(float arg0) { + lbl_1_bss_158 += arg0; +} + +void fn_1_39E4(omObjData* arg0) { + if (lbl_1_bss_15C > lbl_1_bss_158) { + lbl_1_bss_150 = lbl_1_bss_158 * (lbl_1_bss_154 / lbl_1_bss_15C); + lbl_1_bss_14C = fn_1_11370(lbl_1_bss_14C, lbl_1_bss_150, 5.0f); + Hu3DMotionTimeSet(arg0->model[1], lbl_1_bss_14C); + } else { + lbl_1_bss_158 = lbl_1_bss_15C; + lbl_1_bss_150 = lbl_1_bss_158 * (lbl_1_bss_154 / lbl_1_bss_15C); + lbl_1_bss_14C = fn_1_11370(lbl_1_bss_14C, lbl_1_bss_150, 5.0f); + Hu3DMotionTimeSet(arg0->model[1], lbl_1_bss_14C); + } +} + +void fn_1_3B50(void) { + lbl_1_bss_8FC.unk08 = 1; +} + +void fn_1_3B64(omObjData* arg0) { + Mtx sp8; + StructBss8FC* var_r30; + + var_r30 = &lbl_1_bss_8FC; + if (var_r30->unk08 == 1) { + var_r30->unk08 = 0; + Hu3DModelAttrReset(arg0->model[3], 1); + Hu3DModelAttrSet(arg0->model[1], 1); + Hu3DModelObjMtxGet(arg0->model[0], "m437a01-balloon-point", sp8); + Hu3DModelPosSet(arg0->model[3], sp8[0][3], 0.0f, -250.0f); + fn_1_119A0(arg0, 3, 6, 1, 0); + omVibrate(lbl_1_bss_1DC[0].unk2C, 12, 12, 0); + omVibrate(lbl_1_bss_1DC[1].unk2C, 12, 12, 0); + omVibrate(lbl_1_bss_1DC[2].unk2C, 12, 12, 0); + omVibrate(lbl_1_bss_1DC[3].unk2C, 12, 12, 0); + HuAudFXPlay(0x6F4); + HuAudSeqAllFadeOut(100); + } +} + +void fn_1_3CB8(s32 arg0) { + lbl_1_bss_14 += arg0; + if (lbl_1_bss_14 >= 3.0f) { + lbl_1_bss_14 = 3.0f; + } +} + +void fn_1_3D40(omObjData* arg0) { + float temp_f31; + StructBss8FC* sp8; + s32 temp_r31; + + sp8 = &lbl_1_bss_8FC; + temp_r31 = 100.0f * fn_1_3694(); + temp_f31 = fn_1_11478(0.0f, lbl_1_bss_14, lbl_1_bss_8FC.unk1C++, temp_r31); + if (lbl_1_bss_8FC.unk1C >= temp_r31) { + lbl_1_bss_8FC.unk1C = 0; + lbl_1_bss_14 -= 0.5f; + if (lbl_1_bss_14 <= 0.0f) { + lbl_1_bss_14 = 0.0f; + } + } + if (fn_1_3694() >= 0.2f) { + Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, temp_f31); + } +} + +void fn_1_3F44(omObjData* arg0) { + fn_1_37E8(arg0); + fn_1_39E4(arg0); + fn_1_3D40(arg0); + fn_1_3B64(arg0); +} + +void fn_1_4538(StructBss8FC* arg0) { + omObjData* temp_r31; + + temp_r31 = arg0->unk00; + omSetTra(temp_r31, 0.0f, 210.0f, -250.0f); + Hu3DModelAttrSet(temp_r31->model[0], 1); + Hu3DModelAttrSet(temp_r31->model[1], 1); + lbl_1_bss_150 = 0.0f; + lbl_1_bss_154 = Hu3DMotionMaxTimeGet(temp_r31->model[1]); + lbl_1_bss_14C = 0.0f; + lbl_1_bss_158 = 0.0f; + lbl_1_bss_15C = rand8() % 7 + 30; + Hu3DModelAttrSet(temp_r31->model[2], 1); + temp_r31->work[0] = temp_r31->work[1] = temp_r31->work[2] = temp_r31->work[3] = 0; + arg0->unk14 = arg0->unk18 = arg0->unk1C = arg0->unk20 = 0; + arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; +} + +void fn_1_46C0(omObjData* arg0) { + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 24)); + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 28)); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 29)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 30)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 31)); + Hu3DModelShadowMapSet(arg0->model[0]); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 26)); + arg0->motion[5] = Hu3DMotionIDGet(arg0->model[1]); + Hu3DModelLayerSet(arg0->model[1], 2); + fn_1_119A0(arg0, 1, 5, 1, 2); + lbl_1_bss_15C = Hu3DMotionMaxTimeGet(arg0->model[1]); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 25)); + arg0->motion[10] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 32)); + Hu3DModelShadowMapSet(arg0->model[0]); + Hu3DModelHookSet(arg0->model[0], "m437a01-balloon-point", arg0->model[2]); + Hu3DModelHookSet(arg0->model[2], "m437test04-b_point", arg0->model[1]); + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 27)); + arg0->motion[6] = Hu3DMotionIDGet(arg0->model[3]); + Hu3DModelLayerSet(arg0->model[3], 2); + Hu3DModelAttrSet(arg0->model[3], 1); + arg0->func = fn_1_3F44; +} + +void fn_1_4928(s32 arg0) { + lbl_1_bss_8D4.unk04 = arg0; +} + +void fn_1_4938(omObjData* arg0) { + float sp8; + StructBss8D4* temp_r31; + + sp8 = 0.0f; + temp_r31 = arg0->data; + switch (temp_r31->unk04) { + case 1: + temp_r31->unk04 = 2; + temp_r31->unk14 = temp_r31->unk18 = 0; + temp_r31->unk24 = 0.0f; + /* fallthrough */ + case 2: + temp_r31->unk24 = fn_1_11478(0.0f, 10.0f, temp_r31->unk14, 30.0f); + if (temp_r31->unk14++ >= 30) { + temp_r31->unk14 = 0; + temp_r31->unk18++; + if (temp_r31->unk18 >= 2) { + temp_r31->unk04 = 3; + } + } + break; + case 3: + temp_r31->unk24 = fn_1_11370(temp_r31->unk24, 0.0f, 5.0f); + if (temp_r31->unk14++ >= 15) { + temp_r31->unk04 = 0; + temp_r31->unk14 = temp_r31->unk18 = 0; + temp_r31->unk24 = 0.0f; + Hu3DMotionNoMotReset(arg0->model[0], "g000m0-ns_ago", 0x200); + } + break; + } + if (temp_r31->unk04 != 0) { + Hu3DMotionForceSet(arg0->model[0], "g000m0-ns_ago", 0x200, temp_r31->unk24); + } +} + +void fn_1_4AF8(s32 arg0) { + s32 sp8[] = { 4, 5, 6, 7, 8 }; + + if (arg0 <= 3) { + fn_1_11B18(lbl_1_bss_8D4.unk00, 0, sp8[arg0], 120, 1); + } else { + fn_1_11B18(lbl_1_bss_8D4.unk00, 0, sp8[arg0], 5, 0); + } +} + +void fn_1_4BAC(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + if (arg3 != 0) { + fn_1_119A0(lbl_1_bss_8D4.unk00, 0, arg0, arg1, arg2); + } else { + fn_1_11B18(lbl_1_bss_8D4.unk00, 0, arg0, arg1, arg2); + } +} + +void fn_1_4C40(omObjData* arg0) { + fn_1_4938(arg0); +} + +void fn_1_4E00(StructBss8D4* arg0) { + omObjData* temp_r30; + + temp_r30 = arg0->unk00; + omSetTra(temp_r30, 0.0f, 37.0f, -565.0f); + omSetSca(temp_r30, 1.5f, 1.5f, 1.5f); + fn_1_119A0(temp_r30, 0, 0, 1, 1); + temp_r30->work[0] = temp_r30->work[1] = temp_r30->work[2] = temp_r30->work[3] = 0; + arg0->unk14 = arg0->unk18 = arg0->unk1C = arg0->unk20 = 0; + arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; +} + +void fn_1_4EE0(omObjData* arg0) { + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 45)); + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 46)); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 47)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 48)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 49)); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 50)); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 51)); + arg0->motion[6] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 52)); + arg0->motion[7] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 53)); + arg0->motion[8] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 54)); + omSetTra(arg0, 0.0f, 37.0f, -565.0f); + omSetSca(arg0, 1.5f, 1.5f, 1.5f); + Hu3DModelShadowSet(arg0->model[0]); + fn_1_119A0(arg0, 0, 0, 1, 1); + arg0->data = &lbl_1_bss_8D4; + arg0->func = fn_1_4C40; +} + +void fn_1_5148(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + if (arg3 != 0) { + fn_1_119A0(lbl_1_bss_6BC[0].unk00, 0, arg0, arg1, arg2); + } else { + fn_1_11B18(lbl_1_bss_6BC[0].unk00, 0, arg0, arg1, arg2); + } +} + +void fn_1_51DC(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + if (arg3 != 0) { + fn_1_119A0(lbl_1_bss_6BC[1].unk00, 0, arg0, arg1, arg2); + } else { + fn_1_11B18(lbl_1_bss_6BC[1].unk00, 0, arg0, arg1, arg2); + } +} + +void fn_1_5270(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + if (arg3 != 0) { + fn_1_119A0(lbl_1_bss_6BC[0].unk00, 1, arg0, arg1, arg2); + } else { + fn_1_11B18(lbl_1_bss_6BC[0].unk00, 1, arg0, arg1, arg2); + } +} + +void fn_1_5304(s32 arg0) { + StructBss6BC* var_r31; + + var_r31 = &lbl_1_bss_6BC[1]; + var_r31->unk04 = arg0 + 1; +} + +void fn_1_532C(omObjData* arg0) { + StructBss6BC* temp_r31 = arg0->data; + Vec sp38[] = { + { 480.0f, 0.0f, -1250.0f }, + { 400.0f, 37.0f, -850.0f }, + { 400.0f, 37.0f, -600.0f }, + { 400.0f, 37.0f, -425.0f } + }; + + if (arg0->work[0] == 0) { + return; + } + if (temp_r31->unk04 == 7) { + temp_r31->unk08 = temp_r31->unk04; + } + if (temp_r31->unk04 != 4 || temp_r31->unk08 <= 4) { + temp_r31->unk08 = temp_r31->unk04; + } + switch (temp_r31->unk08) { + case 1: + case 2: + case 3: + fn_1_11CE0(arg0, sp38[4 - temp_r31->unk08], 0.0f, 6.0f, 10.0f, 10.0f, 1); + temp_r31->unk00->trans.x = 400.0f; + break; + case 4: + fn_1_11CE0(arg0, sp38[0], 0.0f, 6.0f, 10.0f, 10.0f, 1); + temp_r31->unk00->trans.x = 400.0f; + if (temp_r31->unk18++ >= 60) { + temp_r31->unk08 = 5; + temp_r31->unk18 = 0; + } + break; + case 5: + fn_1_11CE0(arg0, sp38[0], 0.0f, 6.0f, 10.0f, 10.0f, 1); + if (temp_r31->unk18++ >= 60) { + temp_r31->unk08 = 6; + temp_r31->unk18 = 0; + } + break; + case 6: + fn_1_11B18(arg0, 0, 6, 10, 0); + break; + case 7: + fn_1_11CE0(arg0, sp38[3], -15.0f, 6.0f, 10.0f, 10.0f, 1); + break; + } +} + +void fn_1_5658(omObjData* arg0) { + fn_1_532C(arg0); +} + +void fn_1_5984(StructBss6BC* arg0) { + s32 var_r29; + omObjData* temp_r30; + + var_r29 = arg0->unk00->work[0]; + temp_r30 = arg0->unk00; + if (var_r29 != 0) { + omSetTra(temp_r30, 400.0f, 37.0f, -425.0f); + omSetRot(temp_r30, 0.0f, -15.0f, 0.0f); + fn_1_119A0(temp_r30, 0, 0, 1, 1); + } else { + omSetTra(temp_r30, -400.0f, 37.0f, -425.0f); + fn_1_119A0(temp_r30, 0, 0, 1, 1); + fn_1_119A0(temp_r30, 1, 5, 1, 1); + } + temp_r30->work[1] = temp_r30->work[2] = temp_r30->work[3] = 0; + arg0->unk14 = arg0->unk18 = arg0->unk1C = arg0->unk20 = 0; + arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; +} + +void fn_1_5AD8(omObjData* arg0) { + StructBss6BC* temp_r29; + s32 temp_r30; + + temp_r30 = arg0->work[0]; + temp_r29 = &lbl_1_bss_6BC[temp_r30]; + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 57)); + if (temp_r30 != 0) { + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 58)); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 59)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 63)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 64)); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 65)); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 66)); + arg0->motion[6] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 67)); + arg0->motion[7] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 68)); + arg0->motion[8] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 69)); + arg0->motion[9] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 71)); + omSetTra(arg0, 400.0f, 37.0f, -425.0f); + omSetRot(arg0, 0.0f, -15.0f, 0.0f); + fn_1_119A0(arg0, 0, 0, 1, 1); + fn_1_164B0(lbl_1_bss_0, &temp_r29->unk24, arg0->model[0], "g007m0-skl_at"); + fn_1_15DC8(&temp_r29->unk24); + } else { + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 60)); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 61)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 62)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 70)); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 72)); + omSetTra(arg0, -400.0f, 37.0f, -425.0f); + fn_1_119A0(arg0, 0, 0, 1, 1); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 73)); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_M437, 74)); + arg0->motion[6] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_M437, 75)); + Hu3DModelHookSet(arg0->model[0], "g007m0-itemhook_r", arg0->model[1]); + Hu3DModelLayerSet(arg0->model[0], 2); + Hu3DModelLayerSet(arg0->model[1], 2); + fn_1_119A0(arg0, 1, 5, 1, 1); + } + Hu3DModelShadowSet(arg0->model[0]); + arg0->data = &lbl_1_bss_6BC[temp_r30]; + arg0->func = fn_1_5658; +} + +void fn_1_5FBC(void) { + StructBss1DC* temp_r31; + s32 sp8[4]; + s32 i; + + sp8[0] = GWPlayerCurrGet(); + for (i = 1; i < 4; i++) { + sp8[i] = sp8[i - 1] + 1; + if (sp8[i] >= 4) { + sp8[i] = 0; + } + } + for (i = 0; i < 4; i++) { + temp_r31 = &lbl_1_bss_1DC[i]; + temp_r31->unk2C = sp8[i]; + temp_r31->unk30 = GWPlayerCfg[temp_r31->unk2C].group; + temp_r31->unk34 = GWPlayerCfg[temp_r31->unk2C].iscom; + temp_r31->unk38 = GWPlayerCfg[temp_r31->unk2C].diff; + temp_r31->unk3C = GWPlayerCfg[temp_r31->unk2C].character; + temp_r31->unk40 = GWPlayerCfg[temp_r31->unk2C].pad_idx; + } +} + +void fn_1_610C(s32 arg0, s32 arg1) { + StructBss1DC* temp_r31; + + temp_r31 = &lbl_1_bss_1DC[arg0]; + temp_r31->unk04 = arg1; +} + +void fn_1_6134(omObjData* arg0) { + StructBss1DC* var_r30; + + var_r30 = arg0->data; + if (var_r30->unk04 != 0) { + Hu3DModelAttrReset(arg0->model[0], 1); + } else { + Hu3DModelAttrSet(arg0->model[0], 1); + } +} + +void fn_1_6198(s32 arg0, s32 arg1) { + StructBss1DC* temp_r31; + + temp_r31 = &lbl_1_bss_1DC[arg0]; + temp_r31->unk08 = arg1; + fn_1_15DC8(&temp_r31->unk50); + fn_1_11B18(temp_r31->unk00, 0, 2, 10, 0); +} + +void fn_1_6200(omObjData* arg0) { + StructBss1DC* temp_r30; + HsfMaterial* var_r31; + HsfData* temp_r28; + char** temp_r27; + s32 var_r23; + s32 i, j; + ModelData* temp_r25; + HsfAttribute* temp_r24; + + temp_r30 = &lbl_1_bss_1DC[arg0->work[0]]; + if (temp_r30->unk08 != 1) { + return; + } + var_r23 = 1; + temp_r25 = &Hu3DData[arg0->model[0]]; + temp_r28 = temp_r25->hsfData; + var_r31 = temp_r28->material; + if (temp_r30->unk3C == 3) { + for (i = 0; i < temp_r25->hsfData->materialCnt; i++, var_r31++) { + if (i == 1 || i == 2) { + continue; + } + var_r31->color[0] *= temp_r30->unk44; + if (var_r31->color[0] == 0) { + var_r31->color[0] = 0; + } + var_r31->color[1] *= temp_r30->unk44; + if (var_r31->color[1] == 0) { + var_r31->color[1] = 0; + } + var_r31->color[2] *= temp_r30->unk44; + if (var_r31->color[2] == 0) { + var_r31->color[2] = 0; + } + } + } else { + temp_r27 = CharModelTexNameGet(temp_r30->unk3C, 2); + for (i = 0; i < temp_r28->materialCnt; i++, var_r31++) { + var_r23 = 1; + for (j = 0; j < var_r31->numAttrs; j++) { + temp_r24 = &temp_r28->attribute[var_r31->attrs[j]]; + if (strcmp(temp_r27[0], temp_r24->bitmap->name) == 0 || strcmp(temp_r27[1], temp_r24->bitmap->name) == 0) { + var_r23 = 0; + } + } + if (var_r23 == 0) { + continue; + } + var_r31->color[0] *= temp_r30->unk44; + if (var_r31->color[0] == 0) { + var_r31->color[0] = 0; + } + var_r31->color[1] *= temp_r30->unk44; + if (var_r31->color[1] == 0) { + var_r31->color[1] = 0; + } + var_r31->color[2] *= temp_r30->unk44; + if (var_r31->color[2] == 0) { + var_r31->color[2] = 0; + } + } + } + temp_r30->unk44 -= 0.01; + if (temp_r30->unk44 < 0.0f) { + temp_r30->unk08 = 99; + temp_r30->unk44 = 0.0f; + } +} + +void fn_1_6580(s32 arg0, s32 arg1, s32 arg2) { + StructBss1DC* temp_r31; + + temp_r31 = &lbl_1_bss_1DC[arg0]; + if (temp_r31->unk0C == 0) { + temp_r31->unk0C = arg1; + temp_r31->unk10 = arg2; + temp_r31->unk28 = 0; + } else if (temp_r31->unk0C == 2) { + temp_r31->unk10 = 0; + temp_r31->unk28 = 1; + } +} + +float lbl_1_data_188 = -1.0f; + +// TODO: https://decomp.me/scratch/dek39 +void fn_1_65E0(omObjData* arg0) { + Mtx sp60; + StructBss1DC* temp_r31; + StructBss1DC* var_r26; + StructBss1DC* temp_r27; + StructBss8FC* var_r28; + StructBss8FC* spC; + s32 var_r29; + + temp_r31 = arg0->data; + switch (temp_r31->unk0C) { + case 1: + temp_r31->unk0C = 2; + temp_r31->unk48 = -1.5f; + lbl_1_data_188 = -1.0f; + fn_1_119A0(arg0, 0, 5, 15, 0); + break; + case 2: + if (temp_r31->unk48 >= 1.7f) { + temp_r31->unk48 = 1.7f; + } + arg0->trans.y += temp_r31->unk48 * temp_r31->unk48 * (temp_r31->unk48 >= 0.0f ? -25.0f : 25.0f); + if (temp_r31->unk28 != 0 && arg0->trans.y >= 25.0f + temp_r31->unk4C && temp_r31->unk10 == 0) { + temp_r31->unk0C = 5; + temp_r31->unk48 = 0.0f; + lbl_1_data_188 = arg0->trans.y - temp_r31->unk4C; + fn_1_11B18(arg0, 0, 7, 15, 0); + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r29 != arg0->work[0]) { + var_r26 = &lbl_1_bss_1DC[var_r29]; + var_r26->unk00->work[2] = rand8() % 10; + } + } + } + if (((!(HuPadBtn[temp_r31->unk40] & 0x100) && temp_r31->unk10 == 0) || temp_r31->unk10 == 2) && temp_r31->unk48 < -0.8f) { + temp_r31->unk48 = -0.8f; + } + if (arg0->trans.y <= temp_r31->unk4C && temp_r31->unk48 > 0.0f) { + arg0->trans.y = temp_r31->unk4C; + temp_r31->unk0C = 4; + temp_r31->unk48 = 0.0f; + fn_1_11B18(arg0, 0, 6, 5, 0); + } + temp_r31->unk48 += 0.09f; + break; + case 4: + if (temp_r31->unk48++ >= 15.0f) { + temp_r31->unk0C = 0; + temp_r31->unk28 = 0; + fn_1_11B18(arg0, 0, 0, 15, 1); + } + break; + case 5: + if (fn_1_36B4() > 0.75f) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r29 != arg0->work[0]) { + temp_r27 = &lbl_1_bss_1DC[var_r29]; + if (temp_r27->unk00->work[2]-- == 0) { + fn_1_11B18(temp_r27->unk00, 0, 11, 5, 0); + } + } + } + } + if (temp_r31->unk48++ >= 25.0f) { + temp_r31->unk0C = 6; + } + break; + case 6: + if (temp_r31->unk48 >= 1.7f) { + temp_r31->unk48 = 1.7f; + } + arg0->trans.y += temp_r31->unk48 * temp_r31->unk48 * (temp_r31->unk48 >= 0.0f ? -17.5f : 17.5f); + if (arg0->trans.y <= temp_r31->unk4C && temp_r31->unk48 > 0.0f) { + arg0->trans.y = temp_r31->unk4C; + temp_r31->unk0C = 7; + temp_r31->unk48 = 0.0f; + var_r28 = &lbl_1_bss_8FC; + if (lbl_1_data_188 <= 135.0f) { + fn_1_119A0(var_r28->unk00, 0, 2, 5, 0); + } else if (lbl_1_data_188 <= 245.0f) { + fn_1_119A0(var_r28->unk00, 0, 1, 5, 0); + } else { + fn_1_119A0(var_r28->unk00, 0, 0, 5, 0); + } + HuAudFXPlay(0x6F5); + omVibrate(temp_r31->unk2C, 12, 6, 6); + fn_1_11B18(arg0, 0, 8, 15, 0); + } + temp_r31->unk48 += 0.1f; + break; + case 7: + if (temp_r31->unk48++ >= 15.0f) { + spC = &lbl_1_bss_8FC; + if (lbl_1_data_188 <= 135.0f) { + fn_1_39C4(1.0f); + fn_1_3CB8(1.0f); + HuAudFXPlay(0x6F6); + } else if (lbl_1_data_188 <= 245.0f) { + fn_1_39C4(2.0f); + fn_1_3CB8(2.0f); + HuAudFXPlay(0x6F7); + } else { + fn_1_39C4(3.0f); + fn_1_3CB8(3.0f); + HuAudFXPlay(0x6F8); + } + fn_1_11B18(arg0, 0, 9, 15, 0); + temp_r31->unk48 = 0.0f; + temp_r31->unk0C = 4; + } + break; + } + if ((temp_r31->unk0C == 4 || temp_r31->unk0C == 7) && temp_r31->unk10 == 0) { + Hu3DModelObjMtxGet(lbl_1_bss_8FC.unk00->model[0], "m437a01-chara-point", sp60); + arg0->trans.y = sp60[1][3]; + } +} + +void fn_1_70F8(s32 arg0, s32 arg1) { + StructBss1DC* temp_r31; + + temp_r31 = &lbl_1_bss_1DC[arg0]; + temp_r31->unk14 = arg1; + temp_r31->unk24 = 15 - arg1 * 5; + temp_r31->unk28 = 0; +} + +void fn_1_7134(omObjData* arg0) { + StructBss1DC* temp_r31 = &lbl_1_bss_1DC[arg0->work[0]]; + Vec sp14[] = { + { 0.0f, 0.0f, 0.0f }, + { -1000.0f, 0.0f, 800.0f }, + { -200.0f, 0.0f, 800.0f }, + { 1000.0f, 0.0f, 800.0f } + }; + + if (temp_r31->unk14 < 1) { + return; + } + if (temp_r31->unk24-- <= 0) { + fn_1_11B18(arg0, 0, 4, 15, 1); + temp_r31->unk28 = 1; + } + if (temp_r31->unk28 != 0) { + fn_1_11CE0(arg0, sp14[temp_r31->unk14], -1.0f, temp_r31->unk0C + 7.0f, 30.0f, 5.0f, 0); + } +} + +void fn_1_72CC(omObjData* arg0) { + fn_1_6134(arg0); + fn_1_6200(arg0); + fn_1_65E0(arg0); + fn_1_7134(arg0); +} + +void fn_1_74B0(StructBss1DC* arg0) { + s32 var_r29; + omObjData* temp_r30; + + var_r29 = arg0->unk00->work[0]; + temp_r30 = arg0->unk00; + omSetTra(temp_r30, var_r29 * -150 - (rand8() % 100) * 2, 0.0f, (rand8() % 100) * 2 + 250); + omSetRot(temp_r30, 0.0f, 180.0f, 0.0f); + fn_1_119A0(temp_r30, 0, 0, 1, 1); + fn_1_15DC8(&arg0->unk50); + fn_1_15CD0(&arg0->unk50, lbl_1_bss_8FC.unk00->model[0]); + arg0->unk44 = 1.0f; + temp_r30->work[1] = temp_r30->work[2] = temp_r30->work[3] = 0; + arg0->unk1C = arg0->unk20 = arg0->unk24 = arg0->unk28 = 0; + arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; + arg0->unk14 = 0; +} + +void fn_1_7678(omObjData* arg0) { + StructBss1DC* temp_r30; + s32 temp_r29; + + temp_r29 = arg0->work[0]; + temp_r30 = &lbl_1_bss_1DC[temp_r29]; + arg0->model[0] = CharModelCreate(temp_r30->unk3C, 2); + arg0->motion[0] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + arg0->motion[1] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 3)); + arg0->motion[2] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 28)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, temp_r30->unk3C)); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 8 + temp_r30->unk3C)); + arg0->motion[5] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 5)); + arg0->motion[6] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 6)); + arg0->motion[7] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 8)); + arg0->motion[8] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 10)); + arg0->motion[9] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 9)); + arg0->motion[10] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 2)); + arg0->motion[11] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 78)); + arg0->motion[12] = CharModelMotionCreate(temp_r30->unk3C, DATA_MAKE_NUM(DATADIR_MARIOMOT, 27)); + omSetTra(arg0, temp_r29 * -150 + (rand8() % 100) * 5, 0.0f, (rand8() % 100) * 5 + 250); + omSetRot(arg0, 0.0f, 180.0f, 0.0f); + Hu3DModelShadowSet(arg0->model[0]); + fn_1_119A0(arg0, 0, 0, 1, 1); + CharModelMotionDataClose(temp_r30->unk3C); + fn_1_1660C(lbl_1_bss_0, &temp_r30->unk50, arg0->model[0], temp_r30->unk3C); + fn_1_15DC8(&temp_r30->unk50); + temp_r30->unk04 = 1; + arg0->data = &lbl_1_bss_1DC[temp_r29]; + arg0->func = fn_1_72CC; +} + +void fn_1_79E0(void) { + lbl_1_bss_68.unk04 = 1; + lbl_1_bss_68.unk08 = 1; + lbl_1_bss_68.unk14 = 0; +} + +void fn_1_7A14(omObjData* arg0) { + Mtx sp8; + StructBss68* temp_r31; + StructBss8D4* var_r29; + StructBss6BC* var_r25; + s32 var_r24; + s32 i; + + temp_r31 = arg0->data; + var_r29 = &lbl_1_bss_8D4; + switch (temp_r31->unk04) { + case 1: + temp_r31->unk04 = 2; + for (i = 1; i < 7; i++) { + Hu3DModelPosSet(arg0->model[i], 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(arg0->model[i], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[i], 0.0f, 0.0f, 0.0f); + temp_r31->unk24[i] = -1.0f + rand8() % 3; + temp_r31->unk44[i] = 0.0f; + temp_r31->unk64[i] = -(50.0f * (i - 1)); + temp_r31->unk84[i] = 0.0f; + temp_r31->unkA4[i] = 0.5f; + temp_r31->unkC4[i] = 0.0f; + } + fn_1_119A0(var_r29->unk00, 0, 3, 10, 0); + var_r25 = &lbl_1_bss_6BC[0]; + fn_1_119A0(var_r25->unk00, 0, 1, 60, 1); + fn_1_119A0(var_r25->unk00, 1, 6, 60, 1); + break; + case 2: + if (fn_1_11890(var_r29->unk00, 0, 3, 90, 1) != 0) { + temp_r31->unk04 = 3; + Hu3DMotionTimeSet(var_r29->unk00->model[0], 90.0f); + Hu3DMotionSpeedSet(var_r29->unk00->model[0], 0.0f); + HuAudCharVoicePlay(lbl_1_bss_1DC[lbl_1_bss_944.unk10].unk3C, 0x123); + HuAudFXPlay(0x6D5); + omVibrate(lbl_1_bss_1DC[lbl_1_bss_944.unk10].unk2C, 120, 12, 0); + } + break; + case 3: + Hu3DModelObjMtxGet(var_r29->unk00->model[0], "g000m0-itemhook_M", sp8); + var_r24 = lbl_1_bss_944.unk10; + fn_1_6198(var_r24, 1); + for (i = 1; i < 7; i++) { + if (temp_r31->unk08 == 1 || (temp_r31->unk08 == 0 && temp_r31->unk64[i] > 0.0f)) { + temp_r31->unk64[i] += 10.0f; + } + if (temp_r31->unk64[i] > 0.0f) { + temp_r31->unk84[i] += 0.1f; + temp_r31->unk24[i] += rand8() % 5 - 2; + temp_r31->unk44[i] -= rand8() % 5 - 2 + 2.5f; + if (temp_r31->unkC4[i] == 0.0f) { + fn_1_119A0(arg0, i, i, 1, 1); + } + if (temp_r31->unkC4[i] < 8.0f) { + temp_r31->unkA4[i] += 0.025f; + } else if (temp_r31->unkC4[i] < 23.0f) { + temp_r31->unkA4[i] = 0.7f; + } else if (temp_r31->unkC4[i] < 31.0f) { + temp_r31->unkA4[i] -= 0.1f; + if (temp_r31->unkA4[i] < 0.0f) { + temp_r31->unkA4[i] = 0.0f; + } + } + temp_r31->unkC4[i] += 1.0f; + } + Hu3DModelPosSet(arg0->model[i], sp8[0][3] + temp_r31->unk24[i], sp8[1][3] + temp_r31->unk44[i], sp8[2][3] + temp_r31->unk64[i]); + Hu3DModelScaleSet(arg0->model[i], 1.5f * temp_r31->unk84[i], 1.5f * temp_r31->unk84[i], 1.5f * temp_r31->unk84[i]); + Hu3DModelTPLvlSet(arg0->model[i], temp_r31->unkA4[i]); + if (temp_r31->unkC4[i] >= 31.0f) { + temp_r31->unk24[i] = 0.0f; + temp_r31->unk44[i] = 0.0f; + temp_r31->unk64[i] = 0.0f; + temp_r31->unk84[i] = 0.0f; + temp_r31->unkA4[i] = 0.5f; + temp_r31->unkC4[i] = 0.0f; + } + } + if (temp_r31->unk14++ == 120) { + temp_r31->unk08 = 0; + Hu3DMotionSpeedSet(var_r29->unk00->model[0], 1.0f); + } else if (temp_r31->unk14 >= 180) { + temp_r31->unk04 = 4; + } + break; + case 4: + temp_r31->unk04 = 0; + fn_1_119A0(var_r29->unk00, 0, 0, 30, 1); + break; + } + if (temp_r31->unk14 >= 10 && temp_r31->unk14 <= 120) { + fn_1_298(6, 8.0f); + } +} + +void fn_1_82E0(omObjData* arg0) { + fn_1_7A14(arg0); +} + +void fn_1_8308(StructBss68* arg0) { + omObjData* temp_r29; + s32 i; + + temp_r29 = arg0->unk00; + for (i = 1; i < 7; i++) { + Hu3DModelPosSet(temp_r29->model[i], 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(temp_r29->model[i], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(temp_r29->model[i], 0.0f, 0.0f, 0.0f); + fn_1_119A0(temp_r29, i, i, 1, 2); + arg0->unk24[i] = 0.0f; + arg0->unk44[i] = 0.0f; + arg0->unk64[i] = 0.0f; + arg0->unk84[i] = 0.0f; + arg0->unkA4[i] = 0.0f; + arg0->unkC4[i] = 0.0f; + } + arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; + arg0->unk14 = arg0->unk18 = arg0->unk1C = arg0->unk20 = 0; +} + +void fn_1_84C4(omObjData* arg0) { + s32 i; + + for (i = 1; i < 7; i++) { + if (i % 2 == 0) { + arg0->model[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 55)); + arg0->motion[i] = Hu3DMotionIDGet(arg0->model[i]); + } else { + arg0->model[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 56)); + arg0->motion[i] = Hu3DMotionIDGet(arg0->model[i]); + } + Hu3DModelPosSet(arg0->model[i], 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(arg0->model[i], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[i], 0.0f, 0.0f, 0.0f); + fn_1_119A0(arg0, i, i, 1, 2); + Hu3DModelLayerSet(arg0->model[i], 2); + } + arg0->data = &lbl_1_bss_68; + arg0->func = fn_1_82E0; +} + +void fn_1_8684(void) { + StructBss160* var_r31; + + var_r31 = &lbl_1_bss_160; + var_r31->unk14 = 0.0f; + var_r31->unk18 = 300.0f; + var_r31->unk1C = 1740.0f; + var_r31->unk2C = -10.0f; + var_r31->unk30 = 0.0f; + var_r31->unk34 = 0.0f; + var_r31->unk3C = 300.0f; + fn_1_12E14(var_r31, 200.0f); +} + +void fn_1_8734(void) { + StructBss160* var_r31; + StructBss160 sp8; + + var_r31 = &lbl_1_bss_160; + sp8.unk08 = 0.0f; + sp8.unk0C = 200.0f; + sp8.unk10 = -50.0f; + sp8.unk20 = 5.0f; + sp8.unk24 = 0.0f; + sp8.unk28 = 0.0f; + sp8.unk38 = 200.0f; + fn_1_15544(var_r31, &sp8, var_r31->unk40++, 30.0f, 5.0f); +} + +void fn_1_8824(void) { + StructBss160* var_r31; + + var_r31 = &lbl_1_bss_160; + var_r31->unk14 = 0.0f; + var_r31->unk18 = 200.0f; + var_r31->unk1C = -50.0f; + var_r31->unk2C = 5.0f; + var_r31->unk30 = 0.0f; + var_r31->unk34 = 0.0f; + var_r31->unk3C = 200.0f; + fn_1_12E14(var_r31, 200.0f); +} + +void fn_1_88D4(void) { + StructBss160* var_r31; + + var_r31 = &lbl_1_bss_160; + var_r31->unk14 = 0.0f; + var_r31->unk18 = 300.0f; + var_r31->unk1C = -550.0f; + var_r31->unk2C = -15.0f; + var_r31->unk30 = 0.0f; + var_r31->unk34 = 0.0f; + var_r31->unk3C = 1200.0f; + fn_1_12E14(var_r31, 45.0f); +} + +void fn_1_8984(void) { + StructBss160* var_r31; + + var_r31 = &lbl_1_bss_160; + var_r31->unk14 = 0.0f; + var_r31->unk18 = 150.0f; + var_r31->unk1C = -550.0f; + var_r31->unk2C = -15.0f; + var_r31->unk30 = 0.0f; + var_r31->unk34 = 0.0f; + var_r31->unk3C = 1200.0f; + fn_1_12E14(var_r31, 30.0f); +} + +void fn_1_8A34(void) { + StructBss160* var_r31; + StructBss160 sp8; + + var_r31 = &lbl_1_bss_160; + sp8.unk08 = 0.0f; + sp8.unk0C = 300.0f; + sp8.unk10 = 0.0f; + sp8.unk20 = 0.0f; + sp8.unk24 = 0.0f; + sp8.unk28 = 0.0f; + sp8.unk38 = 1200.0f; + fn_1_13658(var_r31, &sp8, var_r31->unk40++, 30.0f, 10.0f); +} + +void fn_1_8B24(void) { + StructBss160* var_r31; + + var_r31 = &lbl_1_bss_160; + var_r31->unk14 = 0.0f; + var_r31->unk18 = 150.0f; + var_r31->unk1C = -550.0f; + var_r31->unk2C = -15.0f; + var_r31->unk30 = 0.0f; + var_r31->unk34 = 0.0f; + var_r31->unk3C = 1200.0f; + fn_1_12E14(var_r31, 20.0f); +} + +void fn_1_8BD4(void) { + StructBss160* var_r31; + + var_r31 = &lbl_1_bss_160; + var_r31->unk14 = 0.0f; + var_r31->unk18 = 300.0f; + var_r31->unk1C = -550.0f; + var_r31->unk2C = -15.0f; + var_r31->unk30 = 0.0f; + var_r31->unk34 = 0.0f; + var_r31->unk3C = 1200.0f; + fn_1_12E14(var_r31, 20.0f); +} + +void fn_1_8C84(s32 arg0) { + StructBss160* var_r23; + + var_r23 = &lbl_1_bss_160; + fn_1_12ABC(var_r23); + switch (arg0) { + case 0: + fn_1_8A4(fn_1_8684); + break; + case 1: + fn_1_8A4(fn_1_8734); + break; + case 2: + fn_1_8A4(fn_1_8824); + break; + case 3: + fn_1_8A4(fn_1_88D4); + break; + case 4: + fn_1_8A4(fn_1_8984); + break; + case 5: + fn_1_8A4(fn_1_8A34); + break; + case 10: + fn_1_8A4(fn_1_8B24); + break; + case 11: + fn_1_8A4(fn_1_8BD4); + break; + } +} + +void fn_1_8DA4(void) { + float sp18[] = { 0.0f, 0.0f }; + s32 var_r31; + + lbl_1_bss_C = 0; + fn_1_2A94(sp18, MAKE_MESSID(29, 0)); + fn_1_2A94(sp18, MAKE_MESSID(29, 1)); + var_r31 = fn_1_20F8((580.0f - sp18[0]) / 2, 80.0f, sp18[0], sp18[1], 2); + HuAudFXPlay(0x6D1); + fn_1_4BAC(1, 10, 0, 1); + fn_1_2A10(var_r31, MAKE_MESSID(29, 0)); + fn_1_280C(var_r31, 0); + fn_1_4BAC(1, 10, 0, 1); + fn_1_2A10(var_r31, MAKE_MESSID(29, 1)); + fn_1_280C(var_r31, 0); + fn_1_4BAC(0, 10, 1, 1); + fn_1_27A4(var_r31); + lbl_1_bss_C = 1; + HuPrcEnd(); +} + +void fn_1_9320(void) { + float sp10[] = { 0.0f, 0.0f }; + s32 var_r31; + + lbl_1_bss_C = 0; + fn_1_2A94(sp10, MAKE_MESSID(29, 4)); + var_r31 = fn_1_20F8((580.0f - sp10[0]) / 2, 100.0f, sp10[0], sp10[1], 2); + HuAudFXPlay(0x6D2); + fn_1_4BAC(2, 10, 0, 1); + fn_1_2A10(var_r31, MAKE_MESSID(29, 4)); + fn_1_280C(var_r31, 60); + fn_1_2BAC(3); + fn_1_280C(var_r31, 60); + fn_1_4BAC(0, 30, 1, 1); + fn_1_27A4(var_r31); + lbl_1_bss_C = 1; + HuPrcEnd(); +} + +void fn_1_96D8(void) { + float sp10[] = { 0.0f, 0.0f }; + s32 var_r31; + + lbl_1_bss_C = 0; + fn_1_2A94(sp10, MAKE_MESSID(29, 64)); + var_r31 = fn_1_20F8(550.0f - sp10[0], 340.0f, sp10[0], sp10[1], 1); + HuAudFXPlayVolPan(0x65, 0x7F, 0x60); + fn_1_51DC(4, 10, 0, 1); + fn_1_2A10(var_r31, MAKE_MESSID(29, 64)); + fn_1_28F4(var_r31); + fn_1_51DC(0, 10, 1, 1); + fn_1_27A4(var_r31); + lbl_1_bss_C = 1; + HuPrcEnd(); +} + +void fn_1_9B2C(s32 arg0) { + float sp10[2] = { 0.0f, 0.0f }; + s32 sp18[] = { + MAKE_MESSID(29, 6), + MAKE_MESSID(29, 66), + MAKE_MESSID(29, 68), + MAKE_MESSID(29, 70), + MAKE_MESSID(29, 72), + MAKE_MESSID(29, 74), + MAKE_MESSID(29, 76), + -1 + }; + s32 var_r31; + + if (sp18[arg0] == -1) { + return; + } + fn_1_2A94(sp10, sp18[arg0]); + var_r31 = fn_1_20F8(20.0f, 360.0f, sp10[0], sp10[1], 0); + HuAudFXPlayVolPan(0x3E, 0x7F, 0x20); + fn_1_5148(2, 10, 0, 1); + fn_1_5270(5, 10, 2, 1); + fn_1_2A10(var_r31, sp18[arg0]); + fn_1_280C(var_r31, 0); + fn_1_5148(0, 10, 1, 1); + fn_1_5270(5, 10, 1, 1); + fn_1_27A4(var_r31); +} + +void fn_1_9FA0(void) { + float sp10[2] = { 0.0f, 0.0f }; + s32 sp18[] = { + MAKE_MESSID(29, 5), + MAKE_MESSID(29, 65), + MAKE_MESSID(29, 67), + MAKE_MESSID(29, 69), + MAKE_MESSID(29, 71), + MAKE_MESSID(29, 73), + MAKE_MESSID(29, 75), + MAKE_MESSID(29, 77) + }; + s32 i; + s32 var_r30; + + lbl_1_bss_C = 0; + for (i = 0; i < 8; i++) { + fn_1_2A94(sp10, sp18[i]); + } + var_r30 = fn_1_20F8(550.0f - sp10[0], 340.0f, sp10[0], sp10[1], 1); + HuAudFXPlayVolPan(0x65, 0x7F, 0x60); + for (i = 0; i < 8; i++) { + fn_1_51DC(4, 10, 0, 1); + fn_1_2A10(var_r30, sp18[i]); + fn_1_280C(var_r30, 0); + fn_1_51DC(0, 10, 1, 1); + fn_1_9B2C(i); + } + fn_1_27A4(var_r30); + lbl_1_bss_C = 1; + HuPrcEnd(); +} + +void fn_1_A440(void) { + float sp10[] = { 0.0f, 0.0f }; + s32 var_r31; + + lbl_1_bss_C = 0; + fn_1_2A94(sp10, MAKE_MESSID(29, 78)); + var_r31 = fn_1_20F8((580.0f - sp10[0]) / 2, 80.0f, sp10[0], sp10[1], 2); + HuAudFXPlay(0x6D2); + fn_1_4BAC(1, 10, 0, 1); + fn_1_2A10(var_r31, MAKE_MESSID(29, 78)); + fn_1_280C(var_r31, 0); + fn_1_4BAC(0, 10, 1, 1); + fn_1_27A4(var_r31); + lbl_1_bss_C = 1; + HuPrcEnd(); +} + +void fn_1_A860(void) { +} + +s32 fn_1_A864(void) { + if (fn_1_11854(&lbl_1_bss_50, 0) == 80) { + fn_1_8C84(1); + lbl_1_bss_968.unk00 = HuAudSeqPlay(6); + } + if (fn_1_11854(&lbl_1_bss_50, 0) == 115) { + fn_1_8C84(2); + } + if (fn_1_11854(&lbl_1_bss_50, 0) == 180) { + fn_1_8C84(3); + } + if (fn_1_11854(&lbl_1_bss_50, 0) == 0) { + fn_1_2BAC(2); + } + if (fn_1_11854(&lbl_1_bss_50, 0) == 150) { + fn_1_2BAC(1); + } + if (fn_1_11854(&lbl_1_bss_50, 1) != 0) { + return fn_1_116C4(&lbl_1_bss_50); + } + return 0; +} + +void fn_1_A9E8(void) { + HuPrcChildCreate(fn_1_8DA4, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_AA24(void) { + if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_50, 1) != 0) { + return fn_1_116C4(&lbl_1_bss_50); + } + return 0; +} + +void fn_1_AA80(void) { + HuPrcChildCreate(fn_1_9320, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_AABC(void) { + if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_50, 1) != 0) { + return fn_1_116C4(&lbl_1_bss_50); + } + return 0; +} + +void fn_1_AB18(void) { + fn_1_8C84(10); +} + +s32 fn_1_AB68(void) { + if (fn_1_11854(&lbl_1_bss_50, 1) != 0) { + return fn_1_116C4(&lbl_1_bss_50); + } + return 0; +} + +void fn_1_ABB0(void) { + HuPrcChildCreate(fn_1_96D8, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_ABEC(void) { + if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_50, 1) != 0) { + if (lbl_1_bss_10 != 0) { + return fn_1_116C4(&lbl_1_bss_50); + } else { + return fn_1_117C0(&lbl_1_bss_50, 6); + } + } + return 0; +} + +void fn_1_AC70(void) { + fn_1_4BAC(4, 60, 1, 1); + HuPrcChildCreate(fn_1_9FA0, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_ACCC(void) { + if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_50, 1) != 0) { + return fn_1_116C4(&lbl_1_bss_50); + } + return 0; +} + +void fn_1_AD28(void) { + fn_1_8C84(11); + fn_1_4BAC(0, 60, 1, 0); +} + +s32 fn_1_AD98(void) { + if (fn_1_11854(&lbl_1_bss_50, 1) != 0) { + return fn_1_116C4(&lbl_1_bss_50); + } + return 0; +} + +void fn_1_ADE0(void) { + HuPrcChildCreate(fn_1_A440, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_AE1C(void) { + if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_50, 1) != 0) { + return fn_1_116C4(&lbl_1_bss_50); + } + return 0; +} + +void fn_1_AE78(void) { + StructBss6BC* var_r30; + StructBss1DC* sp8; + StructBss8FC* var_r29; + s32 i; + + fn_1_8C84(5); + for (i = 0; i < 4; i++) { + fn_1_610C(i, 1); + } + var_r30 = &lbl_1_bss_6BC[1]; + sp8 = &lbl_1_bss_1DC[i]; + var_r29 = &lbl_1_bss_8FC; + fn_1_15DC8(&var_r30->unk24); + fn_1_15CD0(&var_r30->unk24, var_r29->unk00->model[2]); + HuAudSeqFadeOut(lbl_1_bss_968.unk00, 1000); +} + +s32 fn_1_AF4C(void) { + Vec sp20[] = { + { -200.0f, 0.0f, -250.0f }, + { -340.0f, 0.0f, -250.0f }, + { -490.0f, 0.0f, -250.0f }, + { -640.0f, 0.0f, -250.0f } + }; + s32 i; + + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1DC[i].unk3C == 7) { + fn_1_11CE0(lbl_1_bss_1DC[i].unk00, sp20[i], 90.0f, 9.0f, 30.0f, 15.0f, 3); + } else { + fn_1_11CE0(lbl_1_bss_1DC[i].unk00, sp20[i], 90.0f, 9.0f, 30.0f, 15.0f, 1); + } + } + if (fn_1_11854(&lbl_1_bss_50, 1) != 0) { + fn_1_4BAC(4, 60, 1, 1); + for (i = 0; i < 4; i++) { + fn_1_11B18(lbl_1_bss_1DC[i].unk00, 0, 0, 10, 1); + } + return fn_1_116C4(&lbl_1_bss_50); + } + return 0; +} + +StructData204 lbl_1_data_204[] = { + { fn_1_A860, fn_1_A864, 300 }, + { fn_1_A9E8, fn_1_AA24, 60 }, + { fn_1_AA80, fn_1_AABC, 60 }, + { fn_1_AB18, fn_1_AB68, 45 }, + { fn_1_ABB0, fn_1_ABEC, 60 }, + { fn_1_AC70, fn_1_ACCC, 60 }, + { fn_1_AD28, fn_1_AD98, 45 }, + { fn_1_ADE0, fn_1_AE1C, 60 }, + { fn_1_AE78, fn_1_AF4C, 120 }, + { NULL, NULL, -1 } +}; + +void fn_1_B194(void) { + fn_1_11668(&lbl_1_bss_50, lbl_1_data_204); +} + +s32 fn_1_B1C4(void) { + if (lbl_1_bss_50.unk08 != NULL) { + lbl_1_bss_50.unk08(); + lbl_1_bss_50.unk08 = NULL; + } + if (lbl_1_bss_50.unk0C != NULL) { + return lbl_1_bss_50.unk0C(); + } + return 0; +} + +float fn_1_B250(void) { + return lbl_1_bss_15C - lbl_1_bss_158; +} + +void fn_1_B270(void) { + StructBss944* var_r30; + StructBss1DC* temp_r31; + + var_r30 = &lbl_1_bss_944; + temp_r31 = &lbl_1_bss_1DC[var_r30->unk10]; + if (fn_1_B250() <= 3.0f) { + temp_r31->unk00->work[1] = fn_1_B250() - 1.0f; + if (temp_r31->unk00->work[1] == 0) { + temp_r31->unk00->work[1] = rand8() % 3 + 1; + } + } else { + temp_r31->unk00->work[1] = rand8() % 3 + 1; + } + temp_r31->unk00->work[2] = 0; + temp_r31->unk00->work[3] = rand8() % 60 + 60; +} + +s32 fn_1_B3F0(s32 arg0) { + StructBss944* var_r30; + StructBss1DC* temp_r31; + float temp_f31; + + var_r30 = &lbl_1_bss_944; + temp_r31 = &lbl_1_bss_1DC[var_r30->unk10]; + temp_f31 = temp_r31->unk00->trans.y - temp_r31->unk4C; + switch (arg0) { + case 1: + if (temp_f31 > 80.0f && temp_f31 <= 135.0f) { + return 1; + } + break; + case 2: + if (temp_f31 > 190.0f && temp_f31 <= 245.0f) { + return 1; + } + break; + case 3: + if (temp_f31 > 300.0f) { + return 1; + } + break; + } + return 0; +} + +float fn_1_B4F4(s32 arg0, s32 arg1) { + StructBss1DC* temp_r31; + + temp_r31 = &lbl_1_bss_1DC[arg0]; + if (temp_r31->unk34 != 0) { + if (arg1 > temp_r31->unk00->work[3]) { + if (temp_r31->unk00->work[2] == 0) { + temp_r31->unk00->work[2] = 1; + fn_1_6580(arg0, 1, 1); + } else if (fn_1_B3F0(temp_r31->unk00->work[1]) != 0) { + fn_1_6580(arg0, 1, 0); + } + } + } else if ((HuPadBtnDown[temp_r31->unk40] & 0x100) || ((HuPadBtnDown[temp_r31->unk40] & 0x40) && temp_r31->unk0C == 2)) { + fn_1_6580(arg0, 1, 0); + } + return temp_r31->unk0C; +} + +void fn_1_B7E0(void) { + StructBss160* var_r31; + StructBss160 sp8; + + var_r31 = &lbl_1_bss_160; + sp8.unk08 = 0.0f; + sp8.unk0C = 300.0f; + sp8.unk10 = 0.0f; + sp8.unk20 = 0.0f; + sp8.unk24 = 0.0f; + sp8.unk28 = 0.0f; + sp8.unk38 = 1200.0f; + fn_1_13658(var_r31, &sp8, var_r31->unk40++, 30.0f, 10.0f); +} + +void fn_1_B8D0(void) { + StructBss160* var_r31; + + var_r31 = &lbl_1_bss_160; + var_r31->unk14 = 0.0f; + var_r31->unk18 = 300.0f; + var_r31->unk1C = -350.0f + 450.0f * fn_1_36B4(); + var_r31->unk2C = 0.0f; + var_r31->unk30 = 0.0f; + var_r31->unk34 = 0.0f; + var_r31->unk3C = 1200.0f; + fn_1_12E14(var_r31, 10.0f); +} + +void fn_1_BC18(void) { + StructBss160* var_r31; + + var_r31 = &lbl_1_bss_160; + var_r31->unk14 = 0.0f; + var_r31->unk18 = 300.0f; + var_r31->unk1C = -50.0f; + var_r31->unk2C = -15.0f; + var_r31->unk30 = 0.0f; + var_r31->unk34 = 0.0f; + var_r31->unk3C = 1200.0f; + fn_1_12E14(var_r31, 5.0f); +} + +void fn_1_BCC8(void) { + StructBss160* var_r31; + StructBss160 sp8; + + var_r31 = &lbl_1_bss_160; + sp8.unk08 = 0.0f; + sp8.unk0C = 225.0f; + sp8.unk10 = -800.0f; + sp8.unk20 = 0.0f; + sp8.unk24 = 0.0f; + sp8.unk28 = 0.0f; + sp8.unk38 = 1200.0f; + fn_1_15544(var_r31, &sp8, var_r31->unk40++, 30.0f, 10.0f); +} + +void fn_1_BDB8(s32 arg0) { + StructBss160* var_r27; + + var_r27 = &lbl_1_bss_160; + fn_1_12ABC(var_r27); + switch (arg0) { + case 0: + fn_1_8A4(fn_1_B7E0); + break; + case 1: + fn_1_8A4(fn_1_B8D0); + break; + case 2: + fn_1_8A4(fn_1_BC18); + break; + case 3: + fn_1_8A4(fn_1_BCC8); + break; + } +} + +void fn_1_BE80(void) { + s32 sp1C[] = { + MAKE_MESSID(29, 79), + MAKE_MESSID(29, 80), + MAKE_MESSID(29, 81), + MAKE_MESSID(29, 82) + }; + float sp14[2] = { 0.0f, 0.0f }; + s32 temp_r27; + s32 var_r30; + + temp_r27 = rand8() % 4; + lbl_1_bss_C = 0; + fn_1_2A94(sp14, sp1C[temp_r27]); + var_r30 = fn_1_20F8((580.0f - sp14[0]) / 2, 100.0f, sp14[0], sp14[1], 2); + HuAudFXPlay(0x6D2); + fn_1_4928(1); + fn_1_2A10(var_r30, sp1C[temp_r27]); + fn_1_280C(var_r30, 60); + lbl_1_bss_C = 1; + fn_1_280C(var_r30, 60); + fn_1_27A4(var_r30); + HuPrcEnd(); +} + +void fn_1_C248(void) { + s32 sp1C[] = { + MAKE_MESSID(29, 83), + MAKE_MESSID(29, 84), + MAKE_MESSID(29, 85) + }; + float sp14[2] = { 0.0f, 0.0f }; + s32 temp_r27; + s32 var_r31; + + temp_r27 = rand8() % 3; + lbl_1_bss_C = 0; + fn_1_2A94(sp14, sp1C[temp_r27]); + var_r31 = fn_1_20F8((580.0f - sp14[0]) / 2, 100.0f, sp14[0], sp14[1], 2); + HuAudFXPlay(0x6D2); + fn_1_4928(1); + fn_1_2A10(var_r31, sp1C[temp_r27]); + fn_1_280C(var_r31, 60); + lbl_1_bss_C = 1; + fn_1_280C(var_r31, 60); + fn_1_27A4(var_r31); + HuPrcEnd(); +} + +void fn_1_C610(void) { + float sp14[2] = { 0.0f, 0.0f }; + s32 var_r31; + + lbl_1_bss_C = 0; + fn_1_2A94(sp14, MAKE_MESSID(29, 86)); + var_r31 = fn_1_20F8((580.0f - sp14[0]) / 2, 80.0f, sp14[0], sp14[1], 2); + HuAudFXPlay(0x6D2); + fn_1_4AF8(4); + lbl_1_bss_C = 1; + fn_1_2A10(var_r31, MAKE_MESSID(29, 86)); + fn_1_280C(var_r31, 30); + fn_1_27A4(var_r31); + lbl_1_bss_C = 2; + HuPrcEnd(); +} + +void fn_1_C9C4(void) { + float sp10[] = { 0.0f, 0.0f }; + s32 var_r31; + + fn_1_2A94(sp10, MAKE_MESSID(29, 87)); + var_r31 = fn_1_20F8(580.0f - sp10[0] - 40.0f, 200.0f, sp10[0], sp10[1], 1); + HuAudFXPlayVolPan(0x65, 0x7F, 0x60); + fn_1_51DC(9, 10, 0, 0); + fn_1_2A10(var_r31, MAKE_MESSID(29, 87)); + fn_1_280C(var_r31, 30); + fn_1_27A4(var_r31); + HuPrcEnd(); +} + +void fn_1_CD20(void) { + float sp10[] = { 0.0f, 0.0f }; + s32 var_r31; + + fn_1_2A94(sp10, MAKE_MESSID(29, 88)); + var_r31 = fn_1_20F8(40.0f, 200.0f, sp10[0], sp10[1], 0); + HuAudFXPlayVolPan(0x3E, 0x7F, 0x20); + fn_1_5148(4, 10, 0, 0); + fn_1_2A10(var_r31, MAKE_MESSID(29, 88)); + fn_1_280C(var_r31, 30); + fn_1_27A4(var_r31); + HuPrcEnd(); +} + +void fn_1_D03C(void) { + s32 sp18[] = { + MAKE_MESSID(29, 89), + MAKE_MESSID(29, 90), + MAKE_MESSID(29, 91) + }; + float sp10[2] = { 0.0f, 0.0f }; + s32 temp_r28; + s32 var_r31; + + temp_r28 = rand8() % 3; + fn_1_2A94(sp10, sp18[temp_r28]); + var_r31 = fn_1_20F8((580.0f - sp10[0]) / 2, 100.0f, sp10[0], sp10[1], 2); + HuAudFXPlay(0x6D6); + fn_1_2A10(var_r31, sp18[temp_r28]); + fn_1_280C(var_r31, 120); + fn_1_27A4(var_r31); + HuPrcEnd(); +} + +void fn_1_D3C0(void) { + float sp10[] = { 0.0f, 0.0f }; + s32 var_r31; + + lbl_1_bss_C = 0; + fn_1_2A94(sp10, MAKE_MESSID(29, 92)); + var_r31 = fn_1_20F8((580.0f - sp10[0]) / 2, 80.0f, sp10[0], sp10[1], 2); + HuAudFXPlay(0x6D6); + fn_1_4BAC(1, 10, 0, 1); + fn_1_2A10(var_r31, MAKE_MESSID(29, 92)); + fn_1_280C(var_r31, 120); + fn_1_4BAC(0, 30, 1, 1); + fn_1_27A4(var_r31); + lbl_1_bss_C = 1; + HuPrcEnd(); +} + +void fn_1_D754(void) { + Mtx sp8; + s32 var_r26; + s32 i; + StructBss944* var_r29; + StructBss8FC* var_r24; + StructBss1DC* temp_r27; + StructBss1DC* temp_r25; + StructBss1DC* var_r23; + + var_r29 = &lbl_1_bss_944; + var_r24 = &lbl_1_bss_8FC; + temp_r27 = &lbl_1_bss_1DC[var_r29->unk10]; + for (i = 0; i < 4; i++) { + if (i != var_r29->unk10) { + temp_r25 = &lbl_1_bss_1DC[i]; + fn_1_15DC8(&temp_r25->unk50); + fn_1_15CD0(&temp_r25->unk50, temp_r27->unk00->model[0]); + temp_r25->unk50.unkE4->trans.z = 10.0f; + } else { + fn_1_15DC8(&temp_r27->unk50); + } + } + if (var_r29->unk20 != 0) { + lbl_1_bss_38.unk14 = 180; + var_r26 = var_r29->unk10 - 1; + if (var_r26 < 0) { + var_r26 = 3; + } + var_r23 = &lbl_1_bss_1DC[var_r26]; + var_r23->unk4C = 0.0f; + fn_1_6580(var_r26, 1, 2); + } + Hu3DModelObjMtxGet(var_r24->unk00->model[0], "m437a01-chara-point", sp8); + temp_r27->unk4C = sp8[1][3]; + fn_1_6580(var_r29->unk10, 1, 1); +} + +s32 fn_1_D930(void) { + s32 var_r25 = 4; + StructBss944* var_r31 = &lbl_1_bss_944; + Vec sp5C[] = { + { 5.0f, 0.0f, -250.0f }, + { -175.0f, 0.0f, -250.0f }, + { -325.0f, 0.0f, -250.0f }, + { -490.0f, 0.0f, -250.0f } + }; + StructBss1DC* temp_r27; + StructBss1DC* temp_r30; + s32 var_r28; + s32 var_r26; + s32 i; + + var_r28 = var_r31->unk10; + if (var_r31->unk20 != 0) { + var_r25 = 3; + } + for (i = 0; i < var_r25; i++) { + temp_r27 = &lbl_1_bss_1DC[var_r28]; + if (i == 0) { + fn_1_11CE0(temp_r27->unk00, sp5C[i], 0.0f, 4.5f, 10.0f, 5.0f, 0); + } else if (fn_1_11854(&lbl_1_bss_38, 0) >= i * 5 + 10) { + fn_1_11CE0(temp_r27->unk00, sp5C[i], 90.0f, 9.0f, 30.0f, 15.0f, 2); + } + var_r28++; + if (var_r28 >= 4) { + var_r28 = 0; + } + } + if (var_r31->unk20 != 0) { + Vec sp44[] = { + { 0.0f, 0.0f, -50.0f }, + { -510.0f, 0.0f, -250.0f } + }; + + var_r26 = var_r31->unk10 - 1; + if (var_r26 < 0) { + var_r26 = 3; + } + temp_r30 = &lbl_1_bss_1DC[var_r26]; + if (fn_1_11854(&lbl_1_bss_38, 0) <= 60) { + fn_1_11CE0(temp_r30->unk00, sp44[0], -1.0f, 9.0f, 10.0f, 15.0f, 0); + } else if (temp_r30->unk3C == 7) { + fn_1_11CE0(temp_r30->unk00, sp44[1], 90.0f, 9.0f, 30.0f, 15.0f, 3); + } else { + fn_1_11CE0(temp_r30->unk00, sp44[1], 90.0f, 9.0f, 30.0f, 15.0f, 1); + } + } + if (fn_1_11854(&lbl_1_bss_38, 1) != 0) { + var_r31->unk20 = 1; + return fn_1_116C4(&lbl_1_bss_38); + } +} + +void fn_1_DCEC(void) { + fn_1_B270(); + fn_1_BDB8(1); + fn_1_1184(5); +} + +s32 fn_1_DEC4(void) { + StructBss944* var_r24; + + var_r24 = &lbl_1_bss_944; + fn_1_11854(&lbl_1_bss_38, 1); + if (fn_1_11854(&lbl_1_bss_38, 0) <= 10) { + return 0; + } + if (fn_1_11BC() != 0) { + return fn_1_117C0(&lbl_1_bss_38, 8); + } + if (fn_1_B4F4(var_r24->unk10, fn_1_11854(&lbl_1_bss_38, 0)) == 5.0f) { + fn_1_11E0(); + return fn_1_116C4(&lbl_1_bss_38); + } + return 0; +} + +void fn_1_E2A8(void) { + if (fn_1_36B4() < 0.75f) { + lbl_1_bss_38.unk14 = 60; + } else { + lbl_1_bss_38.unk14 = 120; + } +} + +s32 fn_1_E598(void) { + if (fn_1_11854(&lbl_1_bss_38, 1) != 0) { + if (fn_1_3990()) { + return fn_1_117C0(&lbl_1_bss_38, 5); + } else { + return fn_1_116C4(&lbl_1_bss_38); + } + } + return 0; +} + +void fn_1_E634(void) { + if (fn_1_36B4() < 0.75f) { + HuPrcChildCreate(fn_1_BE80, 100, 0x2000, 0, HuPrcCurrentGet()); + } else { + HuPrcChildCreate(fn_1_C248, 100, 0x2000, 0, HuPrcCurrentGet()); + } +} + +s32 fn_1_E944(void) { + if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_38, 1) != 0) { + return fn_1_116C4(&lbl_1_bss_38); + } + return 0; +} + +void fn_1_E9A0(void) { + StructBss944* var_r30; + StructBss1DC* temp_r29; + s32 i; + + var_r30 = &lbl_1_bss_944; + temp_r29 = &lbl_1_bss_1DC[var_r30->unk10]; + fn_1_BDB8(0); + for (i = 0; i < 4; i++) { + if (i != var_r30->unk10) { + StructBss1DC* var_r28 = &lbl_1_bss_1DC[i]; + + fn_1_15DC8(&temp_r29->unk50); + fn_1_15CD0(&temp_r29->unk50, var_r28->unk00->model[0]); + } + } + for (i = 0; i < 4; i++) { + if (i != temp_r29->unk00->work[0]) { + StructBss1DC* var_r27 = &lbl_1_bss_1DC[i]; + + fn_1_11B18(var_r27->unk00, 0, 0, 15, 0); + } + } +} + +s32 fn_1_EAA4(void) { + StructBss944* var_r30; + StructBss1DC* sp8; + + var_r30 = &lbl_1_bss_944; + sp8 = &lbl_1_bss_1DC[var_r30->unk10]; + if (fn_1_11854(&lbl_1_bss_38, 1) != 0) { + var_r30->unk10++; + if (var_r30->unk10 >= 4) { + var_r30->unk10 = 0; + } + return fn_1_117C0(&lbl_1_bss_38, 0); + } + return 0; +} + +void fn_1_EB38(void) { + StructBss8D4* sp8; + StructBss6BC* var_r31; + + lbl_1_bss_8D4.unk08 = 1; + var_r31 = &lbl_1_bss_6BC[1]; + var_r31->unk04 = 0; + var_r31->unk08 = 0; + var_r31->unk14 = 0; + lbl_1_bss_C = 0; + fn_1_3B50(); + HuPrcChildCreate(fn_1_C610, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_C9C4, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_CD20, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_EC10(void) { + StructBss1DC* var_r29; + StructBss8D4* var_r31; + s32 i; + + if (lbl_1_bss_C == 1) { + lbl_1_bss_C = 0; + for (i = 0; i < 4; i++) { + var_r29 = &lbl_1_bss_1DC[i]; + fn_1_119A0(var_r29->unk00, 0, 12, 1, 0); + } + } + var_r31 = &lbl_1_bss_8D4; + if (var_r31->unk00->motion[8] == Hu3DMotionIDGet(var_r31->unk00->model[0]) && Hu3DMotionTimeGet(var_r31->unk00->model[0]) >= 5.0f) { + Hu3DMotionTimeSet(var_r31->unk00->model[0], 5.0f); + Hu3DMotionSpeedSet(var_r31->unk00->model[0], 0.0f); + fn_1_5148(0, 30, 1, 0); + fn_1_51DC(0, 30, 1, 0); + fn_1_5270(5, 10, 1, 1); + } + if (lbl_1_bss_C == 2 && fn_1_11854(&lbl_1_bss_38, 1) != 0) { + return fn_1_116C4(&lbl_1_bss_38); + } + return 0; +} + +void fn_1_EDD4(void) { + StructBss944* var_r30; + StructBss8D4* var_r29; + StructBss1DC* temp_r31; + + var_r30 = &lbl_1_bss_944; + var_r29 = &lbl_1_bss_8D4; + temp_r31 = &lbl_1_bss_1DC[var_r30->unk10]; + fn_1_4BAC(0, 60, 1, 1); + Hu3DMotionSpeedSet(var_r29->unk00->model[0], 1.0f); + temp_r31->unk00->rot.y = 0.0f; + temp_r31->unk1C = 0; + fn_1_BDB8(3); +} + +s32 fn_1_EEA0(void) { + StructBss944* var_r30; + StructBss1DC* temp_r31; + + var_r30 = &lbl_1_bss_944; + temp_r31 = &lbl_1_bss_1DC[var_r30->unk10]; + if (temp_r31->unk1C++ == 0) { + fn_1_11B18(temp_r31->unk00, 0, 10, 30, 1); + } else if (temp_r31->unk1C > 0) { + temp_r31->unk00->rot.y = fn_1_11348(0.0f, 180.0f, temp_r31->unk1C, 30.0f); + if (temp_r31->unk1C >= 30) { + fn_1_11B18(temp_r31->unk00, 0, 0, 30, 1); + } + } + if (fn_1_11854(&lbl_1_bss_38, 1) != 0) { + return fn_1_116C4(&lbl_1_bss_38); + } + return 0; +} + +void fn_1_EFCC(void) { + StructBss944* var_r28; + s32 var_r29; + s32 i; + + fn_1_79E0(); + var_r28 = &lbl_1_bss_944; + var_r29 = var_r28->unk10; + for (i = 0; i < 4; i++) { + if (i >= 1) { + fn_1_70F8(var_r29, i); + } + var_r29++; + if (var_r29 >= 4) { + var_r29 = 0; + } + } + HuPrcChildCreate(fn_1_D03C, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_F0B8(void) { + if (fn_1_11854(&lbl_1_bss_38, 1) != 0) { + return 1; + } + return 0; +} + +void fn_1_F0F8(void) { + lbl_1_bss_8D4.unk08 = 1; + fn_1_4BAC(0, 60, 1, 1); +} + +s32 fn_1_F144(void) { + if (fn_1_11854(&lbl_1_bss_38, 1) != 0) { + return fn_1_116C4(&lbl_1_bss_38); + } + return 0; +} + +void fn_1_F18C(void) { + StructBss944* var_r30; + StructBss1DC* temp_r31; + + var_r30 = &lbl_1_bss_944; + temp_r31 = &lbl_1_bss_1DC[var_r30->unk10]; + HuPrcChildCreate(fn_1_D3C0, 100, 0x2000, 0, HuPrcCurrentGet()); + temp_r31->unk00->rot.y = 0.0f; + temp_r31->unk1C = 0; + fn_1_5148(0, 10, 1, 0); + fn_1_51DC(0, 10, 1, 0); + fn_1_5270(5, 10, 1, 1); + fn_1_BDB8(3); +} + +s32 fn_1_F294(void) { + StructBss944* var_r30; + StructBss1DC* temp_r31; + + var_r30 = &lbl_1_bss_944; + temp_r31 = &lbl_1_bss_1DC[var_r30->unk10]; + if (temp_r31->unk1C++ == 60) { + fn_1_11B18(temp_r31->unk00, 0, 10, 30, 1); + } else if (temp_r31->unk1C > 60) { + temp_r31->unk00->rot.y = fn_1_11348(0.0f, 180.0f, temp_r31->unk1C - 60, 30.0f); + if (temp_r31->unk1C >= 90) { + fn_1_11B18(temp_r31->unk00, 0, 0, 30, 1); + } + } + if (lbl_1_bss_C != 0 && (fn_1_11854(&lbl_1_bss_38, 1) != 0)) { + return fn_1_116C4(&lbl_1_bss_38); + } + return 0; +} + +void fn_1_F3D8(void) { + StructBss944* var_r28; + s32 var_r29; + s32 i; + + fn_1_79E0(); + var_r28 = &lbl_1_bss_944; + var_r29 = var_r28->unk10; + for (i = 0; i < 4; i++) { + if (i >= 1) { + fn_1_70F8(var_r29, i); + } + var_r29++; + if (var_r29 >= 4) { + var_r29 = 0; + } + } +} + +s32 fn_1_F494(void) { + if (fn_1_11854(&lbl_1_bss_38, 1) != 0) { + return 1; + } + return 0; +} + +StructData204 lbl_1_data_27C[] = { + { fn_1_D754, fn_1_D930, 60 }, + { fn_1_DCEC, fn_1_DEC4, 60 }, + { fn_1_E2A8, fn_1_E598, 60 }, + { fn_1_E634, fn_1_E944, 10 }, + { fn_1_E9A0, fn_1_EAA4, 30 }, + { fn_1_EB38, fn_1_EC10, 60 }, + { fn_1_EDD4, fn_1_EEA0, 60 }, + { fn_1_EFCC, fn_1_F0B8, 90 }, + { fn_1_F0F8, fn_1_F144, 60 }, + { fn_1_F18C, fn_1_F294, 60 }, + { fn_1_F3D8, fn_1_F494, 90 }, + { NULL, NULL, -1 } +}; + +void fn_1_F4D4(void) { + fn_1_11668(&lbl_1_bss_38, lbl_1_data_27C); +} + +s32 fn_1_F504(void) { + if (lbl_1_bss_38.unk08 != NULL) { + lbl_1_bss_38.unk08(); + lbl_1_bss_38.unk08 = NULL; + } + if (lbl_1_bss_38.unk0C != NULL) { + return lbl_1_bss_38.unk0C(); + } + return 0; +} + +void fn_1_F590(void) { + StructBss944* var_r30; + StructBss1DC* temp_r31; + + var_r30 = &lbl_1_bss_944; + temp_r31 = &lbl_1_bss_1DC[var_r30->unk10]; + var_r30->unk1C = 0; + lbl_1_data_A0 = temp_r31->unk00->model[0]; + lbl_1_data_A4 = temp_r31->unk00->motion[3]; + lbl_1_data_A8 = temp_r31->unk3C; + HuPrcChildCreate(fn_1_0, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_F640(void) { + StructBss944* var_r31; + StructBss1DC* temp_r30; + + var_r31 = &lbl_1_bss_944; + temp_r30 = &lbl_1_bss_1DC[var_r31->unk10]; + if (fn_1_11854(&lbl_1_bss_20, 0) == 120) { + fn_1_119A0(temp_r30->unk00, 0, 3, 30, 0); + HuAudSStreamPlay(3); + } + if (fn_1_11854(&lbl_1_bss_20, 1) != 0) { + return fn_1_116C4(&lbl_1_bss_20); + } + return 0; +} + +StructData204 lbl_1_data_30C[] = { + { fn_1_F590, fn_1_F640, 360 }, + { NULL, NULL, -1 } +}; + +void fn_1_F6EC(void) { + fn_1_11668(&lbl_1_bss_20, lbl_1_data_30C); +} + +s32 fn_1_F71C(void) { + if (lbl_1_bss_20.unk08 != NULL) { + lbl_1_bss_20.unk08(); + lbl_1_bss_20.unk08 = NULL; + } + if (lbl_1_bss_20.unk0C != NULL) { + return lbl_1_bss_20.unk0C(); + } + return 0; +} + +void fn_1_F7A8(omObjData* arg0) { + StructBss944* var_r30; + StructBss1DC* temp_r29; + s32 i; + + if (WipeStatGet() == 0) { + HuAudFadeOut(1); + CharModelKill(-1); + MGSeqKillAll(); + var_r30 = &lbl_1_bss_944; + temp_r29 = &lbl_1_bss_1DC[var_r30->unk10]; + for (i = 0; i < 4; i++) { + GWPlayerCoinWinSet(i, 0); + } + GWPlayerCoinWinSet(temp_r29->unk2C, 1); + omOvlReturnEx(1, 1); + arg0->func = NULL; + } +} + +s32 fn_1_F89C(void) { + return omSysExitReq; +} + +void fn_1_F8AC(void) { + StructBss944* var_r29; + s32 i; + + fn_1_3260(&lbl_1_bss_920); + fn_1_4538(&lbl_1_bss_8FC); + fn_1_4E00(&lbl_1_bss_8D4); + for (i = 0; i < 2; i++) { + fn_1_5984(&lbl_1_bss_6BC[i]); + } + for (i = 0; i < 4; i++) { + fn_1_74B0(&lbl_1_bss_1DC[i]); + } + fn_1_8308(&lbl_1_bss_68); + var_r29 = &lbl_1_bss_944; + var_r29->unk00 = var_r29->unk04 = var_r29->unk08 = var_r29->unk0C = 0; + var_r29->unk10 = var_r29->unk14 = var_r29->unk18 = var_r29->unk1C = 0; + fn_1_B194(); + fn_1_F4D4(); + fn_1_F6EC(); + fn_1_8C84(0); + HuAudFXPlay(0x6D7); +} + +void fn_1_1043C(omObjData* arg0) { + StructBss920* var_r30; + + switch (lbl_1_bss_18) { + case 0: + fn_1_F8AC(); + lbl_1_bss_18++; + break; + case 1: + if (WipeStatGet() == 0) { + lbl_1_bss_18++; + } + break; + case 2: + if (fn_1_B1C4() != 0) { + lbl_1_bss_18++; + } + break; + case 3: + lbl_1_bss_1C = MGSeqStartCreate(); + lbl_1_bss_18++; + lbl_1_bss_968.unk04 = -1; + break; + case 4: + if ((MGSeqStatGet(lbl_1_bss_1C) & 0x10) && lbl_1_bss_968.unk04 == -1) { + lbl_1_bss_968.unk04 = HuAudSeqPlay(0x4D); + } + if (MGSeqStatGet(lbl_1_bss_1C) == 0) { + lbl_1_bss_18++; + } + break; + case 5: + if (fn_1_F504() != 0) { + lbl_1_bss_18++; + } + break; + case 6: + lbl_1_bss_1C = MGSeqFinishCreate(); + lbl_1_bss_18++; + HuAudSeqPauseAll(0); + HuAudSeqAllFadeOut(0xFA); + break; + case 7: + if (MGSeqStatGet(lbl_1_bss_1C) == 0) { + lbl_1_bss_18++; + } + break; + case 8: + var_r30 = &lbl_1_bss_920; + var_r30->unk04 = 999; + if (fn_1_F71C() != 0) { + lbl_1_bss_18++; + } + break; + case 9: + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + arg0->func = fn_1_F7A8; + break; + case 10: + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + arg0->func = fn_1_F7A8; + break; + } + if (omSysExitReq != 0) { + HuAudSeqAllFadeOut(0xFA); + lbl_1_bss_18 = 10; + } +} + +void fn_1_108A4(omObjData* arg0) { + s32 i; + + lbl_1_bss_920.unk00 = omAddObjEx(lbl_1_bss_0, 0x100, 16, 16, -1, fn_1_3410); + lbl_1_bss_8FC.unk00 = omAddObjEx(lbl_1_bss_0, 0x200, 16, 16, -1, fn_1_46C0); + lbl_1_bss_8D4.unk00 = omAddObjEx(lbl_1_bss_0, 0x300, 16, 16, -1, fn_1_4EE0); + for (i = 0; i < 2; i++) { + lbl_1_bss_6BC[i].unk00 = omAddObjEx(lbl_1_bss_0, 0x400, 16, 16, -1, fn_1_5AD8); + lbl_1_bss_6BC[i].unk00->work[0] = i; + } + for (i = 0; i < 4; i++) { + lbl_1_bss_1DC[i].unk00 = omAddObjEx(lbl_1_bss_0, 0x500, 16, 16, -1, fn_1_7678); + lbl_1_bss_1DC[i].unk00->work[0] = i; + } + lbl_1_bss_68.unk00 = omAddObjEx(lbl_1_bss_0, 0x600, 16, 16, -1, fn_1_84C4); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + arg0->func = fn_1_1043C; +} + +#include "src/REL/executor.c" + +void fn_1_10B30(void) { + lbl_1_bss_0 = omInitObjMan(62, 0x2000); + omGameSysInit(lbl_1_bss_0); + fn_1_1A8(); + fn_1_F8C(); + fn_1_10C0(); + fn_1_13E8(); + fn_1_1A90(); + fn_1_5FBC(); + omAddObjEx(lbl_1_bss_0, 0x1000, 0, 0, -1, fn_1_108A4); +} + +void ObjectSetup(void) { + fn_1_10B30(); +} diff --git a/src/REL/m437Dll/sequence.c b/src/REL/m437Dll/sequence.c new file mode 100755 index 00000000..df17ce31 --- /dev/null +++ b/src/REL/m437Dll/sequence.c @@ -0,0 +1,586 @@ +#include "REL/m437Dll.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" + +#include "ext_math.h" +#include "string.h" + +void fn_1_11618(StructBss50* arg0); +s32 fn_1_1174C(StructBss50* arg0); +void fn_1_12494(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8); +void fn_1_12958(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6); +void fn_1_129B8(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6); +void fn_1_12A1C(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6); +void fn_1_12A80(StructBss160* arg0); +void fn_1_12B00(StructBss160* arg0, StructBss160* arg1, float arg2); +void fn_1_13128(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3); +void fn_1_133A4(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3); +void fn_1_13B88(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3); +void fn_1_13FDC(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3); +void fn_1_14468(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3, float arg4); +void fn_1_14B84(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3); +void fn_1_15048(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3); +void fn_1_15D3C(StructFn15CD0* arg0, s32 arg1); +void fn_1_15DA4(StructFn15CD0* arg0, s32 arg1); +void fn_1_15DB4(StructFn15CD0* arg0); +void fn_1_15DC0(StructFn15CD0* arg0, s32 arg1); +float fn_1_15E10(s32 arg0, s32 arg1, s32 arg2); +float fn_1_16154(s32 arg0, s32 arg1); +float fn_1_162E4(s32 arg0, float arg1, float arg2); +void fn_1_16348(omObjData* arg0); +void fn_1_1634C(Process* arg0, StructFn15CD0* arg1, s32 arg2, const char* arg3, s32 arg4, s32 arg5); + +const char* lbl_1_data_3D0[] = { + "c000m1-ske_head", + "c001m1-ske_head", + "c002m1-ske_head", + "c003m1-ske_head", + "c004m1-ske_head", + "c005m1-ske_head", + "c006m1-ske_head", + "c007m1-ske_head" +}; + +s32 lbl_1_data_3F0[][2] = { + { 0x100, 1 }, + { 0x100, 1 }, + { 0x80, 0 }, + { 0x80, 0 }, + { 0x80, 0 }, + { 0x100, 1 }, + { 0x80, 0 }, + { 0x80, 0 } +}; + +// Similar to mgmodedll/main.c::fn_1_240E4 (identical in behavior) +float fn_1_11348(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg2 / arg3) * (arg1 - arg0); +} + +float fn_1_11370(float arg0, float arg1, float arg2) { + if (arg2 <= 1.0f) { + return arg1; + } + return (arg1 + arg0 * (arg2 - 1.0f)) / arg2; +} + +// Identical to mgmodedll/main.c::fn_1_24204 +float fn_1_113B0(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * sind((90.0f / arg3) * arg2); +} + +// Identical to mgmodedll/main.c::fn_1_242CC +float fn_1_11478(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * sind((360.0f / arg3) * arg2); +} + +// Identical to mgmodedll/main.c::fn_1_2412C +float fn_1_11540(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * (1.0 - cosd((90.0f / arg3) * arg2)); +} + +void fn_1_11618(StructBss50* arg0) { + arg0->unk10 = 0; + arg0->unk14 = arg0->unk04[arg0->unk00].unk08; + arg0->unk08 = arg0->unk04[arg0->unk00].unk00; + arg0->unk0C = arg0->unk04[arg0->unk00].unk04; +} + +void fn_1_11668(StructBss50* arg0, StructData204* arg1) { + arg0->unk00 = 0; + arg0->unk04 = arg1; + fn_1_11618(arg0); +} + +s32 fn_1_116C4(StructBss50* arg0) { + arg0->unk00++; + fn_1_11618(arg0); + if (arg0->unk08 == NULL && arg0->unk0C == NULL) { + return 1; + } + return 0; +} + +s32 fn_1_1174C(StructBss50* arg0) { + arg0->unk00--; + if (arg0->unk00 < 0) { + return 1; + } + fn_1_11618(arg0); + return 0; +} + +s32 fn_1_117C0(StructBss50* arg0, s32 arg1) { + arg0->unk00 = arg1; + if (arg0->unk00 < 0) { + return 1; + } + fn_1_11618(arg0); + if (arg0->unk08 == NULL && arg0->unk0C == NULL) { + return 1; + } + return 0; +} + +s32 fn_1_11854(StructBss50* arg0, s32 arg1) { + if (arg1 != 0) { + arg0->unk10 += arg1; + if (arg0->unk10 >= arg0->unk14) { + return 1; + } + } else { + return arg0->unk10; + } + return 0; +} + +s32 fn_1_11890(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg0->motion[arg2] == Hu3DMotionIDGet(arg0->model[0])) { + if (arg4 != 0) { + if (Hu3DMotionTimeGet(arg0->model[arg1]) >= arg3) { + return 1; + } + } else if (Hu3DMotionTimeGet(arg0->model[arg1]) <= arg3) { + return 1; + } + } + return 0; +} + +void fn_1_119A0(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + switch (arg4) { + case 0: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0); + break; + case 1: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000001); + break; + case 2: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000002); + break; + } +} + +void fn_1_11B18(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg0->motion[arg2] != Hu3DMotionIDGet(arg0->model[arg1]) && arg0->motion[arg2] != Hu3DMotionShiftIDGet(arg0->model[arg1])) { + fn_1_119A0(arg0, arg1, arg2, arg3, arg4); + } +} + +s32 fn_1_11CE0(omObjData* arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5, s32 arg6) { + float var_f31; + float var_f30; + float var_f26; + float var_f27; + + var_f31 = arg1.x - arg0->trans.x; + var_f30 = arg0->trans.z - arg1.z; + var_f26 = 90.0 + atan2d(var_f30, var_f31); + var_f27 = sqrtf(var_f31 * var_f31 + var_f30 * var_f30); + if (var_f27 <= arg4) { + var_f31 = var_f30 = 0.0f; + } else { + var_f31 = 72.0f * (var_f31 / var_f27); + var_f30 = 72.0f * (var_f30 / var_f27); + } + var_f27 = arg3 * (sqrtf(var_f31 * var_f31 + var_f30 * var_f30) / 72.0f); + if (var_f27 >= arg3) { + var_f27 = arg3; + } else if (var_f27 <= 1.0f) { + var_f31 = var_f30 = var_f27 = 0.0f; + } + if (var_f31 != 0.0f || var_f30 != 0.0f || arg2 >= 0.0f) { + if (arg2 >= 0.0f && var_f31 == 0.0f && var_f30 == 0.0f) { + var_f26 = arg2; + } + if (var_f26 >= 180.0f) { + if (arg0->rot.y - var_f26 >= 180.0f) { + arg0->rot.y -= 360.0f; + } + if (arg0->rot.y - var_f26 < -180.0f) { + arg0->rot.y += 360.0f; + } + } else { + if (arg0->rot.y - var_f26 > 180.0f) { + arg0->rot.y -= 360.0f; + } + if (arg0->rot.y - var_f26 <= -180.0f) { + arg0->rot.y += 360.0f; + } + } + arg0->rot.y = (var_f26 + arg0->rot.y * (arg5 - 1.0f)) / arg5; + } + arg0->trans.x += var_f27 * sind(arg0->rot.y); + arg0->trans.z += var_f27 * cosd(arg0->rot.y); + if (arg6 != 0) { + if (var_f27 > 0.0f) { + if (arg6 == 1 || arg6 == 3) { + if (arg0->motion[1] != Hu3DMotionIDGet(arg0->model[0]) && arg0->motion[1] != Hu3DMotionShiftIDGet(arg0->model[0])) { + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[1], 0.0f, 10.0f, 0x40000001); + } + } else if (arg0->motion[10] != Hu3DMotionIDGet(arg0->model[0]) && arg0->motion[10] != Hu3DMotionShiftIDGet(arg0->model[0])) { + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[10], 0.0f, 10.0f, 0x40000001); + } + } else { + if (arg0->motion[0] != Hu3DMotionIDGet(arg0->model[0]) && arg0->motion[0] != Hu3DMotionShiftIDGet(arg0->model[0])) { + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 10.0f, 0x40000001); + } + return 1; + } + } + return 0; +} + +void fn_1_12494(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { + Vec sp2C; + Vec sp20; + Vec sp14; + float var_f31; + float var_f30; + float temp_f29; + float temp_f28; + + sp2C.x = arg2->x; + sp2C.y = arg2->y; + sp2C.z = arg2->z; + sp20.x = arg3->x; + sp20.y = arg3->y; + sp20.z = arg3->z; + var_f31 = Hu3DData[arg0->model[arg1]].rot.y; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } else if (var_f31 >= 360.0f) { + var_f31 -= 360.0f; + } + temp_f29 = arg5; + temp_f28 = arg6; + if (arg7 != 0) { + sp14.x = fn_1_11348(sp2C.x, sp20.x, temp_f29, temp_f28); + sp14.y = fn_1_11348(sp2C.y, sp20.y, temp_f29, temp_f28); + sp14.z = fn_1_11348(sp2C.z, sp20.z, temp_f29, temp_f28); + if (arg1 == 0) { + omSetTra(arg0, sp14.x, sp14.y, sp14.z); + } else { + Hu3DModelPosSet(arg0->model[arg1], sp14.x, sp14.y, sp14.z); + } + } + if (arg8 == 0) { + return; + } + var_f30 = -(atan2d(sp20.z - sp2C.z, sp20.x - sp2C.x) - 90.0); + if (var_f30 < 0.0f) { + var_f30 += 360.0f; + } else if (var_f30 >= 360.0f) { + var_f30 -= 360.0f; + } + if (var_f30 >= 180.0f) { + if (var_f31 - var_f30 >= 180.0f) { + var_f31 -= 360.0f; + } + if (var_f31 - var_f30 < -180.0f) { + var_f31 += 360.0f; + } + } else { + if (var_f31 - var_f30 > 180.0f) { + var_f31 -= 360.0f; + } + if (var_f31 - var_f30 <= -180.0f) { + var_f31 += 360.0f; + } + } + var_f31 = (var_f30 + var_f31 * (arg4 - 1)) / arg4; + if (arg1 == 0) { + arg0->rot.y = var_f31; + } else { + Hu3DData[arg0->model[arg1]].rot.y = var_f31; + } +} + +void fn_1_12958(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6) { + fn_1_12494(arg0, arg1, arg2, arg3, 0, arg5, arg6, 1, 0); +} + +void fn_1_129B8(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6) { + fn_1_12494(arg0, arg1, arg2, arg3, arg4, arg5, arg6, 0, 1); +} + +void fn_1_12A1C(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6) { + fn_1_12494(arg0, arg1, arg2, arg3, arg4, arg5, arg6, 1, 1); +} + +void fn_1_12A80(StructBss160* arg0) { + arg0->unk08 = arg0->unk14; + arg0->unk0C = arg0->unk18; + arg0->unk10 = arg0->unk1C; + arg0->unk20 = arg0->unk2C; + arg0->unk24 = arg0->unk30; + arg0->unk28 = arg0->unk34; + arg0->unk38 = arg0->unk3C; +} + +void fn_1_12ABC(StructBss160* arg0) { + arg0->unk40 = 0; + arg0->unk14 = arg0->unk08; + arg0->unk18 = arg0->unk0C; + arg0->unk1C = arg0->unk10; + arg0->unk2C = arg0->unk20; + arg0->unk30 = arg0->unk24; + arg0->unk34 = arg0->unk28; + arg0->unk3C = arg0->unk38; +} + +void fn_1_12B00(StructBss160* arg0, StructBss160* arg1, float arg2) { + arg0->unk08 = fn_1_11370(arg0->unk08, arg1->unk14, arg2); + arg0->unk0C = fn_1_11370(arg0->unk0C, arg1->unk18, arg2); + arg0->unk10 = fn_1_11370(arg0->unk10, arg1->unk1C, arg2); + arg0->unk20 = fn_1_11370(arg0->unk20, arg1->unk2C, arg2); + arg0->unk24 = fn_1_11370(arg0->unk24, arg1->unk30, arg2); + arg0->unk28 = fn_1_11370(arg0->unk28, arg1->unk34, arg2); + arg0->unk38 = fn_1_11370(arg0->unk38, arg1->unk3C, arg2); +} + +void fn_1_12E14(StructBss160* arg0, float arg1) { + fn_1_12B00(arg0, arg0, arg1); +} + +void fn_1_13128(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_11348(arg0->unk14, arg1->unk08, arg2, arg3); + arg1->unk18 = fn_1_11348(arg0->unk18, arg1->unk0C, arg2, arg3); + arg1->unk1C = fn_1_11348(arg0->unk1C, arg1->unk10, arg2, arg3); + arg1->unk2C = fn_1_11348(arg0->unk2C, arg1->unk20, arg2, arg3); + arg1->unk30 = fn_1_11348(arg0->unk30, arg1->unk24, arg2, arg3); + arg1->unk34 = fn_1_11348(arg0->unk34, arg1->unk28, arg2, arg3); + arg1->unk3C = fn_1_11348(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_133A4(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3) { + fn_1_13128(arg0, arg1, arg2, arg3); + arg0->unk08 = arg1->unk14; + arg0->unk0C = arg1->unk18; + arg0->unk10 = arg1->unk1C; + arg0->unk20 = arg1->unk2C; + arg0->unk24 = arg1->unk30; + arg0->unk28 = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_13658(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3, float arg4) { + fn_1_13128(arg0, arg1, arg2, arg3); + fn_1_12B00(arg0, arg1, arg4); +} + +void fn_1_13B88(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_113B0(arg0->unk14, arg1->unk08, arg2, arg3); + arg1->unk18 = fn_1_113B0(arg0->unk18, arg1->unk0C, arg2, arg3); + arg1->unk1C = fn_1_113B0(arg0->unk1C, arg1->unk10, arg2, arg3); + arg1->unk2C = fn_1_113B0(arg0->unk2C, arg1->unk20, arg2, arg3); + arg1->unk30 = fn_1_113B0(arg0->unk30, arg1->unk24, arg2, arg3); + arg1->unk34 = fn_1_113B0(arg0->unk34, arg1->unk28, arg2, arg3); + arg1->unk3C = fn_1_113B0(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_13FDC(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3) { + fn_1_13B88(arg0, arg1, arg2, arg3); + arg0->unk08 = arg1->unk14; + arg0->unk0C = arg1->unk18; + arg0->unk10 = arg1->unk1C; + arg0->unk20 = arg1->unk2C; + arg0->unk24 = arg1->unk30; + arg0->unk28 = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_14468(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3, float arg4) { + fn_1_13B88(arg0, arg1, arg2, arg3); + fn_1_12B00(arg0, arg1, arg4); +} + +void fn_1_14B84(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_11540(arg0->unk14, arg1->unk08, arg2, arg3); + arg1->unk18 = fn_1_11540(arg0->unk18, arg1->unk0C, arg2, arg3); + arg1->unk1C = fn_1_11540(arg0->unk1C, arg1->unk10, arg2, arg3); + arg1->unk2C = fn_1_11540(arg0->unk2C, arg1->unk20, arg2, arg3); + arg1->unk30 = fn_1_11540(arg0->unk30, arg1->unk24, arg2, arg3); + arg1->unk34 = fn_1_11540(arg0->unk34, arg1->unk28, arg2, arg3); + arg1->unk3C = fn_1_11540(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_15048(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3) { + fn_1_14B84(arg0, arg1, arg2, arg3); + arg0->unk08 = arg1->unk14; + arg0->unk0C = arg1->unk18; + arg0->unk10 = arg1->unk1C; + arg0->unk20 = arg1->unk2C; + arg0->unk24 = arg1->unk30; + arg0->unk28 = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_15544(StructBss160* arg0, StructBss160* arg1, float arg2, float arg3, float arg4) { + fn_1_14B84(arg0, arg1, arg2, arg3); + fn_1_12B00(arg0, arg1, arg4); +} + +void fn_1_15CD0(StructFn15CD0* arg0, s32 arg1) { + s32 var_r30; + s32 i; + + var_r30 = -1; + for (i = 0; i < 20; i++) { + if (arg0->unk94[i] == -1) { + var_r30 = i; + break; + } + } + if (var_r30 != -1) { + arg0->unk94[var_r30] = arg1; + arg0->unk00 = 1; + } +} + +void fn_1_15D3C(StructFn15CD0* arg0, s32 arg1) { + s32 i; + + for (i = 0; i < 20; i++) { + if (arg1 == -1) { + arg0->unk94[i] = -1; + } else if (arg0->unk94[i] == arg1) { + arg0->unk94[i] = -1; + } + } +} + +void fn_1_15DA4(StructFn15CD0* arg0, s32 arg1) { + arg0->unk90 = arg1; + arg0->unk00 = 1; +} + +void fn_1_15DB4(StructFn15CD0* arg0) { + arg0->unk90 = -1; +} + +void fn_1_15DC0(StructFn15CD0* arg0, s32 arg1) { + arg0->unk00 = arg1; +} + +void fn_1_15DC8(StructFn15CD0* arg0) { + fn_1_15DC0(arg0, 0); + fn_1_15D3C(arg0, -1); + fn_1_15DB4(arg0); +} + +float fn_1_15E10(s32 arg0, s32 arg1, s32 arg2) { + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + + sp20.x = Hu3DData[arg0].pos.x; + sp20.z = Hu3DData[arg0].pos.z; + sp14.x = Hu3DData[arg1].pos.x; + sp14.z = Hu3DData[arg1].pos.z; + sp8.x = sp14.x - sp20.x; + sp8.z = sp14.z - sp20.z; + var_f30 = Hu3DData[arg0].rot.y; + if (var_f30 >= 360.0f) { + var_f30 -= 360.0f; + } else if (var_f30 < 0.0f) { + var_f30 += 360.0f; + } + if (var_f30 >= 360.0f) { + var_f30 -= 360.0f; + } else if (var_f30 < 0.0f) { + var_f30 += 360.0f; + } + if (var_f30 >= 360.0f) { + var_f30 -= 360.0f; + } else if (var_f30 < 0.0f) { + var_f30 += 360.0f; + } + var_f31 = atan2d(sp8.z, sp8.x) - 90.0; + if (arg2 == 0) { + var_f31 *= -1.0f; + } + if (arg2 != 0) { + var_f31 += var_f30; + } else { + var_f31 -= var_f30; + } + if (var_f31 >= 180.0f) { + var_f31 -= 360.0f; + } else if (var_f31 < -180.0f) { + var_f31 += 360.0f; + } + if (var_f31 >= 180.0f) { + var_f31 -= 360.0f; + } else if (var_f31 < -180.0f) { + var_f31 += 360.0f; + } + if (var_f31 >= 180.0f) { + var_f31 -= 360.0f; + } else if (var_f31 < -180.0f) { + var_f31 += 360.0f; + } + return var_f31; +} + +float fn_1_16154(s32 arg0, s32 arg1) { + Vec sp24; + Vec sp18; + Vec spC; + + sp24.x = Hu3DData[arg0].pos.x; + sp24.z = Hu3DData[arg0].pos.z; + sp18.x = Hu3DData[arg1].pos.x; + sp18.z = Hu3DData[arg1].pos.z; + spC.x = sp18.x - sp24.x; + spC.z = sp18.z - sp24.z; + return sqrtf(spC.x * spC.x + spC.z * spC.z); +} + +float fn_1_162E4(s32 arg0, float arg1, float arg2) { + return (arg2 + arg1 * (arg0 - 1)) / arg0; +} + +void fn_1_16348(omObjData* arg0) { +} + +void fn_1_1634C(Process* arg0, StructFn15CD0* arg1, s32 arg2, const char* arg3, s32 arg4, s32 arg5) { + arg1->unk00 = 0; + arg1->unk84 = arg2; + strcpy(arg1->unk04, arg3); + arg1->unk88 = arg4; + arg1->unk8C = arg5; + arg1->unk90 = -1; + fn_1_15D3C(arg1, -1); + arg1->unkE4 = omAddObjEx(arg0, 0x3000, 0, 0, -1, fn_1_16348); + arg1->unkE4->data = arg1; + arg1->unkE4->trans.x = 10.0f; + arg1->unkE4->trans.y = 10000.0f; + arg1->unkE4->trans.z = 10.0f; + arg1->unkE4->rot.x = 0.0f; + arg1->unkE4->rot.y = 0.0f; + arg1->unkE4->rot.z = 0.0f; + arg1->unkE4->work[0] = arg1->unkE4->work[1] = arg1->unkE4->work[2] = arg1->unkE4->work[3] = 0; +} + +void fn_1_164B0(Process* arg0, StructFn15CD0* arg1, s32 arg2, const char* arg3) { + fn_1_1634C(arg0, arg1, arg2, arg3, 0x100, 0); +} + +void fn_1_1660C(Process* arg0, StructFn15CD0* arg1, s32 arg2, s32 arg3) { + fn_1_1634C(arg0, arg1, arg2, lbl_1_data_3D0[arg3], lbl_1_data_3F0[arg3][0], lbl_1_data_3F0[arg3][1]); +} From 818e52886f8088f89603595eb9c2e2f82074df09 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sun, 25 Aug 2024 15:48:46 -0500 Subject: [PATCH 042/311] Add attribute and camera defines Model attributes are prefixed with HU3D_ATTR_. Motion attributes are prefixed with HU3D_MOTATTR. Cluster attributes are prefixed with HU3D_CLUSTER_ATTR. Cameras are identified with a HU3D_CAM constant --- include/game/hsfman.h | 65 ++++++++++++++++++++++ src/game/hsfanim.c | 12 ++-- src/game/hsfdraw.c | 50 ++++++++--------- src/game/hsfman.c | 98 ++++++++++++++++---------------- src/game/hsfmotion.c | 126 ++++++++++++++++++++++-------------------- 5 files changed, 211 insertions(+), 140 deletions(-) diff --git a/include/game/hsfman.h b/include/game/hsfman.h index 0d20b256..031ca1ea 100644 --- a/include/game/hsfman.h +++ b/include/game/hsfman.h @@ -6,6 +6,71 @@ #include "game/memory.h" #include "game/data.h" +#define HU3D_MOTATTR 0x40000000 + +#define HU3D_MOTATTR_LOOP 0x40000001 +#define HU3D_MOTATTR_PAUSE 0x40000002 +#define HU3D_MOTATTR_REV 0x40000004 +#define HU3D_MOTATTR_SHIFT_LOOP 0x40000008 +#define HU3D_MOTATTR_SHIFT_PAUSE 0x40000010 +#define HU3D_MOTATTR_SHIFT_REV 0x40000020 +#define HU3D_MOTATTR_SHAPE_LOOP 0x40000040 +#define HU3D_MOTATTR_SHAPE_PAUSE 0x40000080 +#define HU3D_MOTATTR_SHAPE_REV 0x40000100 +#define HU3D_MOTATTR_OVL_LOOP 0x40000200 +#define HU3D_MOTATTR_OVL_PAUSE 0x40000400 +#define HU3D_MOTATTR_OVL_REV 0x40000800 + +#define HU3D_CLUSTER_ATTR ((s32)0xC0000000) +#define HU3D_CLUSTER_ATTR_LOOP ((s32)0xC0000001) +#define HU3D_CLUSTER_ATTR_PAUSE ((s32)0xC0000002) +#define HU3D_CLUSTER_ATTR_REV ((s32)0xC0000004) + + +#define HU3D_ATTR_NONE 0 + +#define HU3D_ATTR_DISPOFF 0x1 +#define HU3D_ATTR_ZWRITE_OFF 0x2 +#define HU3D_ATTR_SHADOW 0x4 +#define HU3D_ATTR_MOTION_OFF 0x8 +#define HU3D_ATTR_HOOKFUNC 0x10 +#define HU3D_ATTR_PARTICLE_KILL 0x20 +#define HU3D_ATTR_TEX_NEAR 0x40 +#define HU3D_ATTR_ENVELOPE_OFF 0x80 +#define HU3D_ATTR_MOT_SLOW 0x100 +#define HU3D_ATTR_TOON_MAP 0x200 +#define HU3D_ATTR_CLUSTER_ON 0x400 +#define HU3D_ATTR_MOT_EXEC 0x800 +#define HU3D_ATTR_LLIGHT 0x1000 +#define HU3D_ATTR_CAMERA_MOTON 0x2000 +#define HU3D_ATTR_NOCULL 0x4000 +#define HU3D_ATTR_HOOK 0x8000 +#define HU3D_ATTR_CAMERA 0x10000 +#define HU3D_ATTR_HILITE 0x20000 +#define HU3D_ATTR_TPLVL_SET 0x40000 +#define HU3D_ATTR_CURVE_MOTOFF 0x80000 +#define HU3D_ATTR_LINK 0x100000 +#define HU3D_ATTR_NOPAUSE 0x200000 +#define HU3D_ATTR_ZCMP_OFF 0x400000 +#define HU3D_ATTR_CULL_FRONT 0x800000 + +#define HU3D_CAM0 (1 << 0) +#define HU3D_CAM1 (1 << 1) +#define HU3D_CAM2 (1 << 2) +#define HU3D_CAM3 (1 << 3) +#define HU3D_CAM4 (1 << 4) +#define HU3D_CAM5 (1 << 5) +#define HU3D_CAM6 (1 << 6) +#define HU3D_CAM7 (1 << 7) +#define HU3D_CAM8 (1 << 8) +#define HU3D_CAM9 (1 << 9) +#define HU3D_CAM10 (1 << 10) +#define HU3D_CAM11 (1 << 11) +#define HU3D_CAM12 (1 << 12) +#define HU3D_CAM13 (1 << 13) +#define HU3D_CAM14 (1 << 14) +#define HU3D_CAM15 (1 << 15) + #define Hu3DModelCreateFile(data_id) (Hu3DModelCreate(HuDataSelHeapReadNum((data_id), MEMORY_DEFAULT_NUM, HEAP_DATA))) typedef struct particle_data ParticleData; diff --git a/src/game/hsfanim.c b/src/game/hsfanim.c index e8ffafbd..f0a98fcf 100755 --- a/src/game/hsfanim.c +++ b/src/game/hsfanim.c @@ -265,7 +265,7 @@ s32 Hu3DAnimSet(ModelData *arg0, HsfAttribute *arg1, s16 arg2) { temp_r31 = temp_r25->layer; temp_r28 = &temp_r27->bmp[temp_r31->bmpNo]; HuSprTexLoad(temp_r29->unk10, temp_r31->bmpNo, arg2, var_r23, var_r22, - (arg0->attr & 0x40) ? GX_NEAR : GX_LINEAR); + (arg0->attr & HU3D_ATTR_TEX_NEAR) ? GX_NEAR : GX_LINEAR); temp_r30->unk2C = (float) temp_r31->sizeX / temp_r28->sizeX; temp_r30->unk30 = (float) temp_r31->sizeY / temp_r28->sizeY; temp_r30->unk34.x = (float) temp_r31->startX / temp_r28->sizeX; @@ -689,7 +689,7 @@ static void _Hu3DParticleAttrReset(ModelData *arg0, Mtx arg1) { PSMTXIdentity(sp128); } PSMTXReorder(sp128, sp8); - if ((Hu3DPauseF == 0 || (arg0->attr & 0x200000)) && temp_r31->unk_54 && temp_r31->unk_38 != GlobalCounter) { + if ((Hu3DPauseF == 0 || (arg0->attr & HU3D_ATTR_NOPAUSE)) && temp_r31->unk_54 && temp_r31->unk_38 != GlobalCounter) { var_r17 = temp_r31->unk_54; var_r17(arg0, temp_r31, arg1); } @@ -758,7 +758,7 @@ static void _Hu3DParticleAttrReset(ModelData *arg0, Mtx arg1) { } else { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } - if (arg0->attr & 2) { + if (arg0->attr & HU3D_ATTR_ZWRITE_OFF) { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); } else { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); @@ -774,7 +774,7 @@ static void _Hu3DParticleAttrReset(ModelData *arg0, Mtx arg1) { var_r28 = &temp_r25->frame[temp_r31->unk_22]; temp_r21 = &temp_r22->pat[var_r28->pat]; HuSprTexLoad(temp_r31->unk_44, temp_r21->layer->bmpNo, 0, GX_CLAMP, GX_CLAMP, GX_LINEAR); - if (Hu3DPauseF == 0 || (arg0->attr & 0x200000)) { + if (Hu3DPauseF == 0 || (arg0->attr & HU3D_ATTR_NOPAUSE)) { for (i = 0; i < (s32) temp_r31->unk_24 * minimumVcount; i++) { temp_r31->unk_28 += 1.0f; if (temp_r31->unk_28 >= var_r28->time) { @@ -1079,7 +1079,7 @@ static void ParManFunc(void) { temp_r30 = temp_r31->unk3C; temp_r27 = &Hu3DData[temp_r31->unk00]; while (1) { - if (Hu3DPauseF != 0 && !(temp_r27->attr & 0x200000)) { + if (Hu3DPauseF != 0 && !(temp_r27->attr & HU3D_ATTR_NOPAUSE)) { HuPrcVSleep(); continue; } @@ -1229,7 +1229,7 @@ static void ParManHook(ModelData *model, ParticleData *particle, Mtx matrix) { s16 sp8; s16 i; - if (Hu3DPauseF == 0 || (model->attr & 0x200000)) { + if (Hu3DPauseF == 0 || (model->attr & HU3D_ATTR_NOPAUSE)) { var_r29 = particle->unk_48; for (i = 0; i < particle->unk_30; i++, var_r29++) { if (var_r29->unk2C) { diff --git a/src/game/hsfdraw.c b/src/game/hsfdraw.c index ba1a9404..bb7fff29 100755 --- a/src/game/hsfdraw.c +++ b/src/game/hsfdraw.c @@ -129,7 +129,7 @@ void Hu3DDraw(ModelData *arg0, Mtx arg1, Vec *arg2) { s16 i; temp_r28 = arg0->hsfData; - if (arg0->attr & 0x10) { + if (arg0->attr & HU3D_ATTR_HOOKFUNC) { temp_r31 = &DrawObjData[DrawObjIdx]; PSMTXCopy(arg1, temp_r31->matrix); sp8.x = temp_r31->matrix[0][3]; @@ -267,7 +267,7 @@ static void objMesh(ModelData *arg0, HsfObject *arg1) { PSMTXCopy(temp_r29->matrix, temp_r25->matrix); if (temp_r25->hook != -1) { temp_r31 = &Hu3DData[temp_r25->hook]; - if (!(temp_r31->attr & 1)) { + if (!(temp_r31->attr & HU3D_ATTR_DISPOFF)) { temp_r21 = attachMotionF; if (temp_r31->unk_08 != -1) { attachMotionF = 1; @@ -293,12 +293,12 @@ static void objMesh(ModelData *arg0, HsfObject *arg1) { attachMotionF = temp_r21; } } else { - if (arg0->attr & 0x4000) { + if (arg0->attr & HU3D_ATTR_NOCULL) { var_r19 = ObjCullCheck(arg0->hsfData, arg1, temp_r29->matrix); } else { var_r19 = 1; } - if ((temp_r25->flags & 0x2000) || (arg1->flags & 0x400)) { + if ((temp_r25->flags & 0x2000) || (arg1->flags & HU3D_ATTR_CLUSTER_ON)) { var_r19 = 0; } if (var_r19 != 0 && (var_r30->scale.x != 0.0f || var_r30->scale.y != 0.0f || var_r30->scale.z != 0.0f)) { @@ -319,7 +319,7 @@ static void objMesh(ModelData *arg0, HsfObject *arg1) { OSReport("Error: DrawObjIdx Over\n"); DrawObjIdx--; } - } else if (arg0->attr & 0x400000) { + } else if (arg0->attr & HU3D_ATTR_ZCMP_OFF) { temp_r29->z = -1000000.0f; DrawObjIdx++; if (DrawObjIdx > 0x200) { @@ -453,12 +453,12 @@ static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) { sp2C.b = temp_r30->color[2]; sp2C.a = 0xFF; GXSetChanMatColor(GX_COLOR0A0, sp2C); - if (temp_r29->attr & 0x400000) { + if (temp_r29->attr & HU3D_ATTR_ZCMP_OFF) { var_r31 = GX_FALSE; } else { var_r31 = GX_TRUE; } - if ((temp_r30->invAlpha != 0.0f || (temp_r30->pass & 0xF) || (temp_r20->flags & 0x800)) && !((temp_r29->attr & 2) | (temp_r19 & 0x1200))) { + if ((temp_r30->invAlpha != 0.0f || (temp_r30->pass & 0xF) || (temp_r20->flags & 0x800)) && !((temp_r29->attr & HU3D_ATTR_ZWRITE_OFF) | (temp_r19 & 0x1200))) { GXSetZMode(var_r31, GX_LEQUAL, GX_FALSE); } else { GXSetZMode(var_r31, GX_LEQUAL, GX_TRUE); @@ -468,7 +468,7 @@ static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) { } else { GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); } - if (temp_r29->attr & 0x800000) { + if (temp_r29->attr & HU3D_ATTR_CULL_FRONT) { GXSetCullMode(GX_CULL_FRONT); } else if (temp_r19 & 2) { GXSetCullMode(GX_CULL_NONE); @@ -522,7 +522,7 @@ static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) { SetShadowTex(); BmpPtrBak[1] = (HsfAttribute*) -1; } - if (temp_r29->attr & 0x200) { + if (temp_r29->attr & HU3D_ATTR_TOON_MAP) { toonMapNo = 2; HuSprTexLoad(toonAnim, 0, toonMapNo, GX_CLAMP, GX_CLAMP, GX_LINEAR); BmpPtrBak[2] = (HsfAttribute*) -1; @@ -540,7 +540,7 @@ static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) { } else { hiliteMapNo = 3; } - if ((temp_r29->attr & 0x20000) || (temp_r19 & 0x100)) { + if ((temp_r29->attr & HU3D_ATTR_HILITE) || (temp_r19 & 0x100)) { if (temp_r20->hiliteMap == 0) { if (temp_r30->flags != 0) { var_r18 = (temp_r30->pass >> 4) & 0xF; @@ -674,7 +674,7 @@ static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) { } else { toonMapNo = shadowMapNo; } - if (temp_r29->attr & 0x200) { + if (temp_r29->attr & HU3D_ATTR_TOON_MAP) { HuSprTexLoad(toonAnim, 0, toonMapNo, GX_CLAMP, GX_CLAMP, GX_LINEAR); BmpPtrBak[toonMapNo] = (HsfAttribute*) -1; projectionMapNo = toonMapNo + 1; @@ -692,7 +692,7 @@ static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) { } else { hiliteMapNo = projectionMapNo; } - if ((temp_r29->attr & 0x20000) || (temp_r19 & 0x100)) { + if ((temp_r29->attr & HU3D_ATTR_HILITE) || (temp_r19 & 0x100)) { if (temp_r20->hiliteMap == 0) { if (temp_r30->flags != 0) { var_r18 = (temp_r30->pass >> 4) & 0xF; @@ -761,7 +761,7 @@ static s32 SetTevStageNoTex(HsfDrawObject *arg0, HsfMaterial *arg1) { var_r22 = 0; } sp1C.a = 255.0f * (1.0f - arg1->invAlpha); - if (temp_r28->attr & 0x200) { + if (temp_r28->attr & HU3D_ATTR_TOON_MAP) { sp1C.r = arg1->color[0]; sp1C.g = arg1->color[1]; sp1C.b = arg1->color[2]; @@ -792,7 +792,7 @@ static s32 SetTevStageNoTex(HsfDrawObject *arg0, HsfMaterial *arg1) { var_r29++; } if (var_r26 != 0) { - if ((temp_r28->attr & 0x20000) || (sp18 & 0x100)) { + if ((temp_r28->attr & HU3D_ATTR_HILITE) || (sp18 & 0x100)) { GXSetTexCoordGen2(var_r29, GX_TG_MTX2x4, GX_TG_NRM, GX_TEXMTX7, GX_FALSE, GX_PTIDENTITY); GXSetTevOrder(var_r30, var_r29, hiliteMapNo, GX_COLOR0A0); GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_ONE, GX_CC_TEXC, GX_CC_CPREV); @@ -983,7 +983,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) { var_r31++; } else { GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0); - if (!(temp_r25->attr & 0x200)) { + if (!(temp_r25->attr & HU3D_ATTR_TOON_MAP)) { if (texCol[0].a == 1) { sp50 = texCol[0]; sp50.a = 0xFF; @@ -1030,7 +1030,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) { } else { GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); } - if (temp_r25->attr & 0x200) { + if (temp_r25->attr & HU3D_ATTR_TOON_MAP) { GXSetTexCoordGen2(var_r30, GX_TG_SRTG, GX_TG_COLOR0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); GXSetTevOrder(var_r31, var_r30, toonMapNo, GX_COLOR0A0); GXSetTevColorIn(var_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_CPREV, GX_CC_ZERO); @@ -1053,7 +1053,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) { var_r31++; } if (var_r21 != 0) { - if ((temp_r25->attr & 0x20000) || (sp40 & 0x100)) { + if ((temp_r25->attr & HU3D_ATTR_HILITE) || (sp40 & 0x100)) { GXSetTexCoordGen2(var_r30, GX_TG_MTX2x4, GX_TG_NRM, GX_TEXMTX7, GX_FALSE, GX_PTIDENTITY); GXSetTevOrder(var_r31, var_r30, hiliteMapNo, GX_COLOR0A0); GXSetTevColorIn(var_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ONE, GX_CC_CPREV); @@ -1270,7 +1270,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) { } var_r31++; } - if (temp_r25->attr & 0x200) { + if (temp_r25->attr & HU3D_ATTR_TOON_MAP) { GXSetTexCoordGen2(var_r30, GX_TG_SRTG, GX_TG_COLOR0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); GXSetTevOrder(var_r31, var_r30, toonMapNo, GX_COLOR0A0); GXSetTevColorIn(var_r31, GX_CC_ZERO, GX_CC_TEXC, GX_CC_CPREV, GX_CC_ZERO); @@ -1323,7 +1323,7 @@ static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1) { sp50.a = (1.0f - arg1->invAlpha) * 255.0f; GXSetTevColor(GX_TEVREG0, sp50); if (var_r21 != 0) { - if ((temp_r25->attr & 0x20000) || (sp40 & 0x100)) { + if ((temp_r25->attr & HU3D_ATTR_HILITE) || (sp40 & 0x100)) { var_f31 = (arg1->hilite_scale / 300.0f) * 6.0f; if (var_f31 < 0.1) { var_f31 = 0.1f; @@ -1835,7 +1835,7 @@ static s32 LoadTexture(ModelData *arg0, HsfBitmap *arg1, HsfAttribute *arg2, s16 TL32F = 1; break; } - if ((arg0->attr & 0x40) || (arg2->flag & 0x40)) { + if ((arg0->attr & HU3D_ATTR_TEX_NEAR) || (arg2->flag & 0x40)) { GXInitTexObjLOD(&sp1C, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); } else if (var_r20) { GXInitTexObjLOD(&sp1C, GX_LIN_MIP_LIN, GX_LINEAR, 0.0f, arg2->unk78, 0.0f, GX_FALSE, GX_TRUE, GX_ANISO_2); @@ -2107,7 +2107,7 @@ void Hu3DDrawPost(void) { GXSetCullMode(GX_CULL_BACK); for (var_r23 = 0; var_r23 < DrawObjIdx; var_r23++) { temp_r28 = &DrawObjData[DrawObjNum[var_r23]]; - if (temp_r28->model->attr & 0x10) { + if (temp_r28->model->attr & HU3D_ATTR_HOOKFUNC) { sp28 = (void*) temp_r28->model->hsfData; sp28(temp_r28->model, temp_r28->matrix); for (i = 0; i < 8; i++) { @@ -2145,7 +2145,7 @@ void Hu3DDrawPost(void) { } } } - if ((temp_r28->model->attr & 0x20000) || (Hu3DObjInfoP->flags & 0x8000)) { + if ((temp_r28->model->attr & HU3D_ATTR_HILITE) || (Hu3DObjInfoP->flags & 0x8000)) { sp54 = lbl_8011DD20; temp_r22 = &Hu3DGlobalLight[temp_r28->model->unk_03]; sp30 = temp_r22->unk_28; @@ -2284,7 +2284,7 @@ static void ObjDraw(HsfDrawObject *arg0) { } } } - if ((arg0->model->attr & 0x20000) || (Hu3DObjInfoP->flags & 0x8000)) { + if ((arg0->model->attr & HU3D_ATTR_HILITE) || (Hu3DObjInfoP->flags & 0x8000)) { sp44 = lbl_8011DD20; temp_r24 = &Hu3DGlobalLight[arg0->model->unk_03]; sp20 = temp_r24->unk_28; @@ -2379,7 +2379,7 @@ void MakeDisplayList(s16 arg0, u32 arg1) { faceNumBuf = HuMemDirectMallocNum(HEAP_DATA, 0x800 * sizeof(u16), mallocNo); MDObjCall(temp_r31, temp_r31->root); HuMemDirectFree(faceNumBuf); - if (var_r30->attr & 4) { + if (var_r30->attr & HU3D_ATTR_SHADOW) { Hu3DShadowCamBit++; } } @@ -3067,7 +3067,7 @@ void PGObjCalc(ModelData *arg0, HsfObject *arg1) { temp_r28 = arg1->constData; if (temp_r28 && temp_r28->hook != -1) { temp_r31 = &Hu3DData[temp_r28->hook]; - if (!(temp_r31->attr & 1)) { + if (!(temp_r31->attr & HU3D_ATTR_DISPOFF)) { var_r27 = attachMotionF; if (temp_r31->unk_08 != -1) { attachMotionF = 1; diff --git a/src/game/hsfman.c b/src/game/hsfman.c index 1cbbe341..1930e90b 100644 --- a/src/game/hsfman.c +++ b/src/game/hsfman.c @@ -113,7 +113,7 @@ void Hu3DPreProc(void) { data = &Hu3DData[0]; for (i = 0; i < 0x200; i++, data++) { if (data->hsfData != 0) { - data->attr &= ~0x800; + data->attr &= ~HU3D_ATTR_MOT_EXEC; } } totalPolyCnted = totalPolyCnt; @@ -123,6 +123,8 @@ void Hu3DPreProc(void) { totalPolyCnt = totalMatCnt = totalTexCnt = totalTexCacheCnt = 0; } +#define HU3D_ATTR_CAMERA_UPDATE (HU3D_ATTR_CAMERA_MOTON|HU3D_ATTR_DISPOFF) + void Hu3DExec(void) { GXColor unusedColor = {0, 0, 0, 0}; CameraData* camera; @@ -188,16 +190,16 @@ void Hu3DExec(void) { data = Hu3DData; for (i = 0, var_r23 = i; i < 0x200; i++, data++) { if (data->hsfData != 0) { - if ((data->attr & 0x10000) != 0) { + if ((data->attr & HU3D_ATTR_CAMERA) != 0) { Hu3DCameraMotionExec(i); } else { - if ((data->attr & 0x2001) == 0x2001 && data->unk_08 != -1) { + if ((data->attr & HU3D_ATTR_CAMERA_UPDATE) == HU3D_ATTR_CAMERA_UPDATE && data->unk_08 != -1) { Hu3DMotionExec(i, data->unk_08, data->unk_64, 0); } - if ((data->attr & 9) == 0 && (data->camera & temp_r22) != 0 && data->layer == j) { - if (((data->attr & 0x800) == 0 && (data->attr & 0x100) == 0) || ((data->attr & 0x100) != 0 && (data->unk_00 & 1) != 0)) { + if ((data->attr & (HU3D_ATTR_DISPOFF|HU3D_ATTR_MOTION_OFF)) == 0 && (data->camera & temp_r22) != 0 && data->layer == j) { + if (((data->attr & HU3D_ATTR_MOT_EXEC) == 0 && (data->attr & HU3D_ATTR_MOT_SLOW) == 0) || ((data->attr & HU3D_ATTR_MOT_SLOW) != 0 && (data->unk_00 & 1) != 0)) { var_r25 = 0; - data->motion_attr &= 0xBFFFFFFF; + data->motion_attr &= ~HU3D_MOTATTR; if (data->unk_08 != -1) { Hu3DMotionExec(i, data->unk_08, data->unk_64, 0); } @@ -207,7 +209,7 @@ void Hu3DExec(void) { if (data->unk_0A != -1) { Hu3DMotionExec(i, data->unk_0A, data->unk_74, 1); } - if ((data->attr & 0x400) != 0) { + if ((data->attr & HU3D_ATTR_CLUSTER_ON) != 0) { ClusterMotionExec(data); var_r25 = 1; } @@ -219,7 +221,7 @@ void Hu3DExec(void) { } var_r25 = 1; } - if ((data->attr & 0x90) == 0 && (data->motion_attr & 0x40000002) == 0) { + if ((data->attr & (HU3D_ATTR_ENVELOPE_OFF|HU3D_ATTR_HOOKFUNC)) == 0 && (data->motion_attr & HU3D_MOTATTR_PAUSE) == 0) { var_r25 = 1; InitVtxParm(data->hsfData); if (data->unk_0E != -1) { @@ -238,11 +240,11 @@ void Hu3DExec(void) { } data->attr |= 0x800; } - if (var_r24 != 0 && (data->attr & 0x10) != 0) { + if (var_r24 != 0 && (data->attr & HU3D_ATTR_HOOKFUNC) != 0) { GXWaitDrawDone(); var_r24 = 0; } - if ((data->attr & 0x8000) == 0 && (0.0f != data->scale.x || 0.0f != data->scale.y || 0.0f != data->scale.z)) { + if ((data->attr & HU3D_ATTR_HOOK) == 0 && (0.0f != data->scale.x || 0.0f != data->scale.y || 0.0f != data->scale.z)) { mtxRot(sp40, data->rot.x, data->rot.y, data->rot.z); mtxScaleCat(sp40, data->scale.x, data->scale.y, data->scale.z); mtxTransCat(sp40, data->pos.x, data->pos.y, data->pos.z); @@ -268,7 +270,7 @@ void Hu3DExec(void) { HuSprExec(0); data = Hu3DData; for (i = 0; i < 0x200; i++, data++) { - if (data->hsfData != 0 && (data->unk_08 != -1 || (data->attr & 0x400) != 0 || data->unk_0E != -1) && (Hu3DPauseF == 0 || (data->attr & 0x200000) != 0)) { + if (data->hsfData != 0 && (data->unk_08 != -1 || (data->attr & HU3D_ATTR_CLUSTER_ON) != 0 || data->unk_0E != -1) && (Hu3DPauseF == 0 || (data->attr & HU3D_ATTR_NOPAUSE) != 0)) { Hu3DMotionNext(i); } } @@ -345,8 +347,8 @@ s16 Hu3DModelCreate(void *arg0) { } var_r31->hsfData = LoadHSF(arg0); var_r31->unk_48 = Hu3DMallocNo = (u32)var_r31->hsfData; - var_r31->attr = 0; - var_r31->motion_attr = 0; + var_r31->attr = HU3D_ATTR_NONE; + var_r31->motion_attr = HU3D_ATTR_NONE; var_r31->unk_02 = 0; MakeDisplayList(var_r30, var_r31->unk_48); var_r31->unk_68 = 1.0f; @@ -433,7 +435,7 @@ s16 Hu3DModelLink(s16 arg0) { var_r31->hsfData->object = temp_r3_2; var_r31->unk_48 = temp_r30->unk_48; var_r31->attr = temp_r30->attr; - temp_r30->attr |= 0x100000; + temp_r30->attr |= HU3D_ATTR_LINK; var_r31->motion_attr = temp_r30->motion_attr; var_r31->pos.x = var_r31->pos.y = var_r31->pos.z = 0.0f; var_r31->rot.x = var_r31->rot.y = var_r31->rot.z = 0.0f; @@ -448,7 +450,7 @@ s16 Hu3DModelLink(s16 arg0) { var_r31->unk_10[i] = temp_r30->unk_10[i]; if (var_r31->unk_10[i] != -1) { ClusterAdjustObject(var_r31->hsfData, Hu3DMotion[var_r31->unk_10[i]].unk_04); - var_r31->attr |= 0x400; + var_r31->attr |= HU3D_ATTR_CLUSTER_ON; } } var_r31->unk_64 = temp_r30->unk_64; @@ -489,8 +491,8 @@ s16 Hu3DHookFuncCreate(ModelHookFunc hook) { } var_r31->hook = hook; var_r31->unk_48 = var_r29+10000; - var_r31->attr = 0x10; - var_r31->motion_attr = 0; + var_r31->attr = HU3D_ATTR_HOOKFUNC; + var_r31->motion_attr = HU3D_ATTR_NONE; var_r31->pos.x = var_r31->pos.y = var_r31->pos.z = 0.0f; var_r31->rot.x = var_r31->rot.y = var_r31->rot.z = 0.0f; var_r31->scale.x = var_r31->scale.y = var_r31->scale.z = 1.0f; @@ -531,14 +533,14 @@ void Hu3DModelKill(s16 arg0) { temp_r31 = &Hu3DData[arg0]; var_r28 = temp_r31->hsfData; if (var_r28 != 0) { - if ((temp_r31->attr & 4) != 0) { + if ((temp_r31->attr & HU3D_ATTR_SHADOW) != 0) { Hu3DShadowCamBit -= 1; } layerNum[temp_r31->layer] -= 1; - if ((temp_r31->attr & 0x10) != 0) { + if ((temp_r31->attr & HU3D_ATTR_HOOKFUNC) != 0) { HuMemDirectFreeNum(HEAP_DATA, temp_r31->unk_48); - if ((temp_r31->attr & 0x20) != 0) { + if ((temp_r31->attr & HU3D_ATTR_PARTICLE_KILL) != 0) { copy = temp_r31->unk_120; HuSprAnimKill(copy->unk_44); } @@ -548,7 +550,7 @@ void Hu3DModelKill(s16 arg0) { } return; } - if ((temp_r31->attr & 0x10000) != 0) { + if ((temp_r31->attr & HU3D_ATTR_CAMERA) != 0) { if (temp_r31->unk_08 != -1) { Hu3DMotionKill(temp_r31->unk_08); } @@ -685,8 +687,8 @@ void Hu3DModelAttrSet(s16 arg0, u32 arg1) { ModelData* temp_r31; temp_r31 = &Hu3DData[arg0]; - if ((arg1 & (1 << 30)) != 0) { - temp_r31->motion_attr |= arg1 & 0xBFFFFFFF; + if ((arg1 & HU3D_MOTATTR) != 0) { + temp_r31->motion_attr |= arg1 & ~HU3D_MOTATTR; } else { temp_r31->attr |= arg1; } @@ -696,7 +698,7 @@ void Hu3DModelAttrReset(s16 arg0, u32 arg1) { ModelData* temp_r31; temp_r31 = &Hu3DData[arg0]; - if ((arg1 & (1 << 30)) != 0) { + if ((arg1 & HU3D_MOTATTR) != 0) { temp_r31->motion_attr &= ~arg1; } else { temp_r31->attr &= ~arg1; @@ -805,7 +807,7 @@ void Hu3DModelTPLvlSet(s16 arg0, f32 arg8) { temp_r25->flags |= 1; } } - temp_r28->attr |= 0x40000; + temp_r28->attr |= HU3D_ATTR_TPLVL_SET; } void Hu3DModelHiliteMapSet(s16 arg0, AnimData *arg1) { @@ -859,10 +861,10 @@ void Hu3DModelShadowSet(s16 arg0) { temp_r31 = &Hu3DData[arg0]; temp_r30 = temp_r31->hsfData; - if ((temp_r31->attr & 4) == 0) { + if ((temp_r31->attr & HU3D_ATTR_SHADOW) == 0) { Hu3DShadowCamBit++; } - temp_r31->attr |= 4; + temp_r31->attr |= HU3D_ATTR_SHADOW; var_r27 = temp_r30->object; for (var_r28 = 0; var_r28 < temp_r30->objectCnt; var_r28++, var_r27++) { @@ -880,7 +882,7 @@ void Hu3DModelShadowReset(s16 arg0) { temp_r31 = &Hu3DData[(s16) arg0]; temp_r30 = temp_r31->hsfData; - temp_r31->attr &= ~4; + temp_r31->attr &= ~HU3D_ATTR_SHADOW; Hu3DShadowCamBit -= 1; var_r27 = temp_r30->object; for (var_r28 = 0; var_r28 < temp_r30->objectCnt; var_r28++, var_r27++) { @@ -892,14 +894,14 @@ void Hu3DModelShadowDispOn(s16 arg0) { ModelData* temp_r31; temp_r31 = &Hu3DData[arg0]; - temp_r31->attr |= 4; + temp_r31->attr |= HU3D_ATTR_SHADOW; } void Hu3DModelShadowDispOff(s16 arg0) { ModelData* temp_r31; temp_r31 = &Hu3DData[arg0]; - temp_r31->attr &= ~4; + temp_r31->attr &= ~HU3D_ATTR_SHADOW; } void Hu3DModelShadowMapSet(s16 arg0) { @@ -967,7 +969,7 @@ void Hu3DModelHookSet(s16 arg0, char *arg1, s16 arg2) { constData = copy->constData; constData->hook = arg2; data = &Hu3DData[arg2]; - data->attr |= 0x8000; + data->attr |= HU3D_ATTR_HOOK; (void)data; return; } @@ -994,7 +996,7 @@ void Hu3DModelHookReset(s16 arg0) { if (temp_r31->hook != -1) { temp_r0 = temp_r31->hook; temp_r28 = &Hu3DData[temp_r0]; - temp_r28->attr &= ~0x8000; + temp_r28->attr &= ~HU3D_ATTR_HOOK; temp_r31->hook = -1; (void)temp_r28; } @@ -1023,7 +1025,7 @@ void Hu3DModelHookObjReset(s16 arg0, char *arg1) { temp_r29 = copy->constData; temp_r0 = temp_r29->hook; temp_r28 = &Hu3DData[temp_r0]; - temp_r28->attr &= ~0x8000; + temp_r28->attr &= ~HU3D_ATTR_HOOK; temp_r29->hook = -1; (void)temp_r28; return; @@ -1291,7 +1293,7 @@ BOOL Hu3DModelCameraInfoSet(s16 arg0, u16 arg1) { temp_r28->unk_01 = arg1; temp_r24 = &Hu3DData[arg0]; - temp_r24->attr |= 0x2000; + temp_r24->attr |= HU3D_ATTR_CAMERA_MOTON; (void)temp_r24; return 1; } @@ -1306,7 +1308,7 @@ s16 Hu3DModelCameraCreate(s16 arg0, u16 arg1) { temp_r3 = Hu3DHookFuncCreate((ModelHookFunc)-1); temp_r31 = &Hu3DData[(s16) temp_r3]; temp_r31->attr &= ~0x10; - temp_r31->attr |= 0x10000 | 0x2000; + temp_r31->attr |= HU3D_ATTR_CAMERA | HU3D_ATTR_CAMERA_MOTON; temp_r31->unk_08 = arg0; temp_r31->unk_01 = arg1; return temp_r3; @@ -1319,7 +1321,7 @@ void Hu3DCameraMotionOn(s16 arg0, s8 arg1) { copy2 = &Hu3DData[arg0]; copy2->unk_01 = arg1; copy = &Hu3DData[arg0]; - copy->attr |= 0x2000; + copy->attr |= HU3D_ATTR_CAMERA_MOTON; } void Hu3DCameraMotionStart(s16 arg0, u16 arg1) { @@ -1332,9 +1334,9 @@ void Hu3DCameraMotionStart(s16 arg0, u16 arg1) { temp_r27 = &Hu3DData[arg0]; temp_r27->unk_01 = arg1; temp_r29 = &Hu3DData[arg0]; - temp_r29->attr |= 0x2000; + temp_r29->attr |= HU3D_ATTR_CAMERA_MOTON; temp_r30 = &Hu3DData[arg0]; - temp_r30->motion_attr &= ~0x40000002; + temp_r30->motion_attr &= ~HU3D_MOTATTR_PAUSE; Hu3DMotionStartEndSet(arg0, 0.0f, Hu3DMotionMotionMaxTimeGet(temp_r28->unk_08)); Hu3DMotionTimeSet(arg0, 0.0f); } @@ -1343,7 +1345,7 @@ void Hu3DCameraMotionOff(s16 arg0) { ModelData* temp_r31; temp_r31 = &Hu3DData[arg0]; - temp_r31->attr &= ~0x2000; + temp_r31->attr &= ~HU3D_ATTR_CAMERA_MOTON; } void Hu3DLighInit(void) { @@ -1456,7 +1458,7 @@ s16 Hu3DLLightCreateV(s16 arg0, Vec* arg1, Vec* arg2, GXColor* arg3) { return -1; } temp_r29->unk_38[var_r30] = var_r28; - temp_r29->attr |= 0x1000; + temp_r29->attr |= HU3D_ATTR_LLIGHT; return var_r30; } @@ -1544,7 +1546,7 @@ void Hu3DLLightKill(s16 dataIndex, s16 lightIndex) { } } if (var_r30 == 8) { - temp_r31->attr &= ~0x1000; + temp_r31->attr &= ~HU3D_ATTR_LLIGHT; } } @@ -1789,7 +1791,7 @@ s16 Hu3DLightSet(ModelData* arg0, Mtx *arg1, Mtx *arg2, f32 arg8) { var_r30 <<= 1; } } - if ((arg0->attr & 0x1000) != 0) { + if ((arg0->attr & HU3D_ATTR_LLIGHT) != 0) { for (i = 0; i < 8; i++) { if (arg0->unk_38[i] != -1) { var_r29 = &Hu3DLocalLight[arg0->unk_38[i]]; @@ -1940,8 +1942,8 @@ void Hu3DShadowExec(void) { GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, BGColor); for (var_r30 = 0; var_r30 < 0x200; var_r30++, var_r31++) { - if (var_r31->hsfData != 0 && (var_r31->attr & 4) != 0 && (var_r31->attr & 1) == 0 && (var_r31->attr & 0x8000) == 0) { - if ((var_r31->attr & 8) != 0) { + if (var_r31->hsfData != 0 && (var_r31->attr & HU3D_ATTR_SHADOW) != 0 && (var_r31->attr & HU3D_ATTR_DISPOFF) == 0 && (var_r31->attr & HU3D_ATTR_HOOK) == 0) { + if ((var_r31->attr & HU3D_ATTR_MOTION_OFF) != 0) { test2 = 0; if (var_r31->unk_08 != -1) { Hu3DMotionExec(var_r30, var_r31->unk_08, var_r31->unk_64, 0); @@ -1952,7 +1954,7 @@ void Hu3DShadowExec(void) { if (var_r31->unk_0A != -1) { Hu3DMotionExec(var_r30, var_r31->unk_0A, var_r31->unk_74, 1); } - if ((var_r31->attr & 0x400) != 0) { + if ((var_r31->attr & HU3D_ATTR_CLUSTER_ON) != 0) { ClusterMotionExec(var_r31); test2 = 1; } @@ -1963,13 +1965,13 @@ void Hu3DShadowExec(void) { Hu3DMotionExec(var_r30, var_r31->unk_0E, var_r31->unk_94, 1); } } - if ((var_r31->attr & 0x90) == 0 || (var_r31->motion_attr & 0x40000002) == 0) { + if ((var_r31->attr & (HU3D_ATTR_HOOKFUNC|HU3D_ATTR_ENVELOPE_OFF)) == 0 || (var_r31->motion_attr & HU3D_MOTATTR_PAUSE) == 0) { test2 = 1; InitVtxParm(var_r31->hsfData); if (var_r31->unk_0E != -1) { ShapeProc(var_r31->hsfData); } - if ((var_r31->attr & 0x400) != 0) { + if ((var_r31->attr & HU3D_ATTR_CLUSTER_ON) != 0) { ClusterProc(var_r31); } if (var_r31->hsfData->cenvCnt != 0) { @@ -1977,7 +1979,7 @@ void Hu3DShadowExec(void) { } PPCSync(); } - var_r31->attr |= 0x800; + var_r31->attr |= HU3D_ATTR_MOT_EXEC; } mtxRot(sp58, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); PSMTXScale(spB8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); diff --git a/src/game/hsfmotion.c b/src/game/hsfmotion.c index 258e7103..97859fb7 100644 --- a/src/game/hsfmotion.c +++ b/src/game/hsfmotion.c @@ -10,6 +10,10 @@ #include "ext_math.h" #include "string.h" +#define HU3D_MOTATTR_SHIFT_ALL (HU3D_MOTATTR_SHIFT_LOOP|HU3D_MOTATTR_SHIFT_PAUSE|HU3D_MOTATTR_SHIFT_REV) +#define HU3D_MOTATTR_NOSHIFT_ALL (HU3D_MOTATTR_LOOP|HU3D_MOTATTR_PAUSE|HU3D_MOTATTR_REV) +#define HU3D_MOTATTR_ALL (HU3D_MOTATTR_SHIFT_ALL|HU3D_MOTATTR_NOSHIFT_ALL) + static s32 SearchObjectIndex(HsfData *arg0, u32 arg1); static s32 SearchAttributeIndex(HsfData *arg0, u32 arg1); @@ -143,7 +147,7 @@ void Hu3DMotionShiftSet(s16 arg0, s16 arg1, float arg2, float arg3, u32 arg4) { MotionData *sp10 = &Hu3DMotion[arg1]; s32 var_r30; - arg4 &= ~0x40000000; + arg4 &= ~HU3D_MOTATTR; var_r30 = 0; if (temp_r31->unk_0C != -1) { temp_r31->unk_08 = temp_r31->unk_0C; @@ -151,20 +155,20 @@ void Hu3DMotionShiftSet(s16 arg0, s16 arg1, float arg2, float arg3, u32 arg4) { temp_r31->unk_68 = temp_r31->unk_88; temp_r31->unk_6C = temp_r31->unk_8C; temp_r31->unk_70 = temp_r31->unk_90; - if (arg4 & 0x40000008) { - var_r30 |= 0x40000000 | 1; + if (arg4 & HU3D_MOTATTR_SHIFT_LOOP) { + var_r30 |= HU3D_MOTATTR_LOOP; } - if (arg4 & 0x40000010) { - var_r30 |= 0x40000000 | 2; + if (arg4 & HU3D_MOTATTR_SHIFT_PAUSE) { + var_r30 |= HU3D_MOTATTR_PAUSE; } - if (arg4 & 0x40000020) { - var_r30 |= 0x40000000 | 4; + if (arg4 & HU3D_MOTATTR_SHIFT_REV) { + var_r30 |= HU3D_MOTATTR_REV; } - temp_r31->motion_attr &= ~0x4000003F; + temp_r31->motion_attr &= ~HU3D_MOTATTR_ALL; temp_r31->motion_attr |= var_r30; - temp_r31->motion_attr &= ~0x40000000; + temp_r31->motion_attr &= ~HU3D_MOTATTR; } else { - temp_r31->motion_attr &= ~0x40000038; + temp_r31->motion_attr &= ~HU3D_MOTATTR_SHIFT_ALL; } temp_r31->unk_0C = arg1; temp_r31->unk_84 = arg2; @@ -173,18 +177,18 @@ void Hu3DMotionShiftSet(s16 arg0, s16 arg1, float arg2, float arg3, u32 arg4) { temp_r31->unk_80 = arg3; temp_r31->unk_8C = 0.0f; temp_r31->unk_90 = Hu3DMotionShiftMaxTimeGet(arg0); - if (arg4 & 0x40000001) { - var_r30 |= 0x40000000 | 8; + if (arg4 & HU3D_MOTATTR_LOOP) { + var_r30 |= HU3D_MOTATTR_SHIFT_LOOP; } - if (arg4 & 0x40000002) { - var_r30 |= 0x40000000 | 0x10; + if (arg4 & HU3D_MOTATTR_PAUSE) { + var_r30 |= HU3D_MOTATTR_SHIFT_PAUSE; } - if (arg4 & 0x40000004) { - var_r30 |= 0x40000000 | 0x20; + if (arg4 & HU3D_MOTATTR_REV) { + var_r30 |= HU3D_MOTATTR_SHIFT_REV; } - arg4 &= ~0x40000007; + arg4 &= ~HU3D_MOTATTR_NOSHIFT_ALL; temp_r31->motion_attr |= var_r30 | arg4; - temp_r31->motion_attr &= ~0x40000000; + temp_r31->motion_attr &= ~HU3D_MOTATTR; } void Hu3DMotionShapeSet(s16 arg0, s16 arg1) { @@ -231,8 +235,8 @@ s16 Hu3DMotionClusterSet(s16 arg0, s16 arg1) { temp_r31->unk_10[i] = arg1; temp_r31->unk_A4[i] = 0.0f; temp_r31->unk_B4[i] = 1.0f; - temp_r31->cluster_attr[i] = 0; - temp_r31->attr |= 0x400; + temp_r31->cluster_attr[i] = HU3D_ATTR_NONE; + temp_r31->attr |= HU3D_ATTR_CLUSTER_ON; ClusterAdjustObject(temp_r31->hsfData, Hu3DMotion[arg1].unk_04); return i; } @@ -248,7 +252,7 @@ s16 Hu3DMotionClusterNoSet(s16 arg0, s16 arg1, s16 arg2) { temp_r31->unk_10[arg2] = arg1; temp_r31->unk_A4[arg2] = 0.0f; temp_r31->unk_B4[arg2] = 1.0f; - temp_r31->attr |= 0x400; + temp_r31->attr |= HU3D_ATTR_CLUSTER_ON; ClusterAdjustObject(temp_r31->hsfData, Hu3DMotion[arg1].unk_04); return arg2; } @@ -265,7 +269,7 @@ void Hu3DMotionClusterReset(s16 arg0, s16 arg1) { for (i = 0; i < 4; i++) { temp_r31->unk_10[i] = -1; } - temp_r31->attr &= ~0x400; + temp_r31->attr &= ~HU3D_ATTR_CLUSTER_ON; } else { temp_r31->unk_10[arg1] = -1; for (i = 0; i < 4; i++) { @@ -273,7 +277,7 @@ void Hu3DMotionClusterReset(s16 arg0, s16 arg1) { return; } } - temp_r31->attr &= ~0x400; + temp_r31->attr &= ~HU3D_ATTR_CLUSTER_ON; } } @@ -299,7 +303,7 @@ void Hu3DMotionTimeSet(s16 arg0, float arg1) { arg1 = 0.0f; } temp_r31->unk_64 = arg1; - if (temp_r31->hsfData != (HsfData*) -1 && temp_r31->hsfData->cenvCnt != 0 && (temp_r31->motion_attr & 0x40000002)) { + if (temp_r31->hsfData != (HsfData*) -1 && temp_r31->hsfData->cenvCnt != 0 && (temp_r31->motion_attr & HU3D_MOTATTR_PAUSE)) { Hu3DMotionExec(arg0, temp_r31->unk_08, arg1, 0); if (temp_r31->unk_0C != -1) { Hu3DSubMotionExec(arg0); @@ -378,7 +382,7 @@ void Hu3DMotionStartEndSet(s16 arg0, float arg1, float arg2) { } s32 Hu3DMotionEndCheck(s16 arg0) { - if (!(Hu3DData[arg0].motion_attr & 0x40000004)) { + if (!(Hu3DData[arg0].motion_attr & HU3D_MOTATTR_REV)) { return (Hu3DMotionMaxTimeGet(arg0) <= Hu3DMotionTimeGet(arg0)); } else { return (Hu3DMotionTimeGet(arg0) <= 0.0f); @@ -480,13 +484,13 @@ void Hu3DMotionNext(s16 arg0) { temp_r28 = temp_r31->motion_attr; if (temp_r31->unk_08 != -1) { temp_r27 = &Hu3DMotion[temp_r31->unk_08]; - if (!(temp_r28 & 0x40000002)) { - if (!(temp_r28 & 0x40000004)) { + if (!(temp_r28 & HU3D_MOTATTR_PAUSE)) { + if (!(temp_r28 & HU3D_MOTATTR_REV)) { temp_r31->unk_64 += temp_r31->unk_68 * minimumVcountf; } else { temp_r31->unk_64 -= temp_r31->unk_68 * minimumVcountf; } - if (temp_r28 & 0x40000001) { + if (temp_r28 & HU3D_MOTATTR_LOOP) { if (temp_r31->unk_64 < temp_r31->unk_6C) { temp_r31->unk_64 = temp_r31->unk_70 - (temp_r31->unk_6C - temp_r31->unk_64); } else if (temp_r31->unk_64 >= temp_r31->unk_70) { @@ -502,13 +506,13 @@ void Hu3DMotionNext(s16 arg0) { if (temp_r31->unk_0A != -1) { temp_r27 = &Hu3DMotion[temp_r31->unk_0A]; temp_r29 = temp_r27->unk_04->motion; - if (!(temp_r28 & 0x40000400)) { - if (!(temp_r28 & 0x40000800)) { + if (!(temp_r28 & HU3D_MOTATTR_OVL_PAUSE)) { + if (!(temp_r28 & HU3D_MOTATTR_OVL_REV)) { temp_r31->unk_74 += temp_r31->unk_78 * minimumVcountf; } else { temp_r31->unk_74 -= temp_r31->unk_78 * minimumVcountf; } - if (temp_r28 & 0x40000200) { + if (temp_r28 & HU3D_MOTATTR_OVL_LOOP) { if (temp_r31->unk_74 < 0.0f) { temp_r31->unk_74 = temp_r29->len; } else if (temp_r31->unk_74 >= temp_r29->len) { @@ -531,28 +535,28 @@ void Hu3DMotionNext(s16 arg0) { temp_r31->unk_70 = temp_r31->unk_90; temp_r31->unk_0C = -1; temp_r28 = 0; - if (temp_r31->motion_attr & 0x40000008) { - temp_r28 |= 0x40000000 | 1; + if (temp_r31->motion_attr & HU3D_MOTATTR_SHIFT_LOOP) { + temp_r28 |= HU3D_MOTATTR_LOOP; } - if (temp_r31->motion_attr & 0x40000010) { - temp_r28 |= 0x40000000 | 2; + if (temp_r31->motion_attr & HU3D_MOTATTR_SHIFT_PAUSE) { + temp_r28 |= HU3D_MOTATTR_PAUSE; } - if (temp_r31->motion_attr & 0x40000020) { - temp_r28 |= 0x40000000 | 4; + if (temp_r31->motion_attr & HU3D_MOTATTR_SHIFT_REV) { + temp_r28 |= HU3D_MOTATTR_REV; } - temp_r31->motion_attr &= ~0x4000003F; + temp_r31->motion_attr &= ~HU3D_MOTATTR_ALL; temp_r31->motion_attr |= temp_r28; - temp_r31->motion_attr &= ~0x40000000; + temp_r31->motion_attr &= ~HU3D_MOTATTR; return; } - if (!(temp_r31->motion_attr & 0x40000010)) { + if (!(temp_r31->motion_attr & HU3D_MOTATTR_SHIFT_PAUSE)) { temp_r27 = &Hu3DMotion[temp_r31->unk_0C]; - if (!(temp_r31->motion_attr & 0x40000020)) { + if (!(temp_r31->motion_attr & HU3D_MOTATTR_SHIFT_REV)) { temp_r31->unk_84 += temp_r31->unk_88 * minimumVcountf; } else { temp_r31->unk_84 -= temp_r31->unk_88 * minimumVcountf; } - if (temp_r31->motion_attr & 0x40000008) { + if (temp_r31->motion_attr & HU3D_MOTATTR_SHIFT_LOOP) { if (temp_r31->unk_84 < temp_r31->unk_8C) { temp_r31->unk_84 = temp_r31->unk_90; } else if (temp_r31->unk_84 >= temp_r31->unk_90) { @@ -565,15 +569,15 @@ void Hu3DMotionNext(s16 arg0) { } } } - if (temp_r31->unk_0E != -1 && !(temp_r28 & 0x40000080)) { + if (temp_r31->unk_0E != -1 && !(temp_r28 & HU3D_MOTATTR_SHAPE_PAUSE)) { temp_r27 = &Hu3DMotion[temp_r31->unk_0E]; temp_r29 = temp_r27->unk_04->motion; - if (!(temp_r28 & 0x40000100)) { + if (!(temp_r28 & HU3D_MOTATTR_SHAPE_REV)) { temp_r31->unk_94 += temp_r31->unk_98 * minimumVcountf; } else { temp_r31->unk_94 -= temp_r31->unk_98 * minimumVcountf; } - if (temp_r28 & 0x40000040) { + if (temp_r28 & HU3D_MOTATTR_SHAPE_LOOP) { if (temp_r31->unk_94 < temp_r31->unk_9C) { temp_r31->unk_94 = temp_r31->unk_A0; } else if (temp_r31->unk_94 >= temp_r31->unk_A0) { @@ -585,17 +589,17 @@ void Hu3DMotionNext(s16 arg0) { temp_r31->unk_94 = temp_r31->unk_A0; } } - if (temp_r31->attr & 0x400) { + if (temp_r31->attr & HU3D_ATTR_CLUSTER_ON) { for (i = 0; i < 4; i++) { - if (temp_r31->unk_10[i] != -1 && !(temp_r31->cluster_attr[i] & (s32) 0xC0000002)) { + if (temp_r31->unk_10[i] != -1 && !(temp_r31->cluster_attr[i] & HU3D_CLUSTER_ATTR_PAUSE)) { temp_r27 = &Hu3DMotion[temp_r31->unk_10[i]]; temp_r29 = temp_r27->unk_04->motion; - if (!(temp_r31->cluster_attr[i] & (s32) 0xC0000004)) { + if (!(temp_r31->cluster_attr[i] & HU3D_CLUSTER_ATTR_REV)) { temp_r31->unk_A4[i] += temp_r31->unk_B4[i] * minimumVcountf; } else { temp_r31->unk_A4[i] -= temp_r31->unk_B4[i] * minimumVcountf; } - if (temp_r31->cluster_attr[i] & (s32) 0xC0000001) { + if (temp_r31->cluster_attr[i] & HU3D_CLUSTER_ATTR_LOOP) { if (temp_r31->unk_A4[i] < 0.0f) { temp_r31->unk_A4[i] = temp_r29->len; } else if (temp_r31->unk_A4[i] >= temp_r29->len) { @@ -679,7 +683,7 @@ void Hu3DMotionExec(s16 arg0, s16 arg1, float arg2, s32 arg3) { if (var_r30->channel == 0x28) { temp_r31->data.mesh.baseMorph = GetCurve(var_r30, arg2); } else if (temp_r31->type == 7) { - if (temp_r27->attr & 0x2000) { + if (temp_r27->attr & HU3D_ATTR_CAMERA_MOTON) { SetObjCameraMotion(arg0, var_r30, GetCurve(var_r30, arg2)); } } else if (temp_r31->type == 8) { @@ -718,20 +722,20 @@ void Hu3DMotionExec(s16 arg0, s16 arg1, float arg2, s32 arg3) { } break; case 9: - if (!(temp_r27->attr & 0x80000)) { + if (!(temp_r27->attr & HU3D_ATTR_CURVE_MOTOFF)) { if (var_r30->param < temp_r29->materialCnt) { SetObjMatMotion(arg0, var_r30, GetCurve(var_r30, arg2)); } } break; case 5: - if (!(temp_r27->attr & 0x80000)) { + if (!(temp_r27->attr & HU3D_ATTR_CURVE_MOTOFF)) { var_r23 = &temp_r29->cluster[var_r30->target_s16]; var_r23->unk10 = GetClusterCurve(var_r30, arg2); } break; case 6: - if (!(temp_r27->attr & 0x80000)) { + if (!(temp_r27->attr & HU3D_ATTR_CURVE_MOTOFF)) { temp_r22 = var_r30; var_r23 = &temp_r29->cluster[temp_r22->target_s16]; var_r23->unk14[temp_r22->unk04] = GetClusterWeightCurve(temp_r22, arg2); @@ -739,7 +743,7 @@ void Hu3DMotionExec(s16 arg0, s16 arg1, float arg2, s32 arg3) { break; case 10: var_r26 = var_r30; - if (var_r26->target_s16 != -1 || !(temp_r27->attr & 0x80000)) { + if (var_r26->target_s16 != -1 || !(temp_r27->attr & HU3D_ATTR_CURVE_MOTOFF)) { if (var_r26->param != -1 && var_r26->param < temp_r29->attributeCnt) { SetObjAttrMotion(arg0, var_r26, GetCurve(var_r26, arg2)); } @@ -762,7 +766,7 @@ void Hu3DCameraMotionExec(s16 arg0) { temp_r27 = temp_r28->unk_04; temp_r29 = temp_r27->motion; var_r31 = temp_r29->track; - if (temp_r30->attr & 0x2000) { + if (temp_r30->attr & HU3D_ATTR_CAMERA_MOTON) { temp_r26 = &var_r31[temp_r29->numTracks]; for (; var_r31 < temp_r26; var_r31++) { if (var_r31->type == 2 && var_r31->param_u16 == 7) { @@ -928,7 +932,7 @@ void SetObjMatMotion(s16 arg0, HsfTrack *arg1, float arg2) { temp_r31->shadowColor[2] = var_f31 * 255.0f; break; case 0x39: - if (!(temp_r30->attr & 0x40000)) { + if (!(temp_r30->attr & HU3D_ATTR_TPLVL_SET)) { temp_r31->invAlpha = var_f31; } break; @@ -1357,7 +1361,7 @@ void JointModel_Motion(s16 arg0, s16 arg1) { void Hu3DMotionCalc(s16 arg0) { ModelData *temp_r31 = &Hu3DData[arg0]; - if ((temp_r31->attr & 1) || (temp_r31->attr & 0x8000)) { + if ((temp_r31->attr & HU3D_ATTR_DISPOFF) || (temp_r31->attr & HU3D_ATTR_HOOK)) { return; } if (temp_r31->unk_08 != -1) { @@ -1369,7 +1373,7 @@ void Hu3DMotionCalc(s16 arg0) { if (temp_r31->unk_0A != -1) { Hu3DMotionExec(arg0, temp_r31->unk_0A, temp_r31->unk_74, 1); } - if (temp_r31->attr & 0x400) { + if (temp_r31->attr & HU3D_ATTR_CLUSTER_ON) { ClusterMotionExec(temp_r31); } if (temp_r31->unk_0E != -1) { @@ -1379,12 +1383,12 @@ void Hu3DMotionCalc(s16 arg0) { Hu3DMotionExec(arg0, temp_r31->unk_0E, temp_r31->unk_94, 1); } } - if (!(temp_r31->attr & 0x90) || !(temp_r31->motion_attr & 0x40000002)) { + if (!(temp_r31->attr & (HU3D_ATTR_ENVELOPE_OFF|HU3D_ATTR_HOOKFUNC)) || !(temp_r31->motion_attr & HU3D_MOTATTR_PAUSE)) { InitVtxParm(temp_r31->hsfData); if (temp_r31->unk_0E != -1) { ShapeProc(temp_r31->hsfData); } - if (temp_r31->attr & 0x400) { + if (temp_r31->attr & HU3D_ATTR_CLUSTER_ON) { ClusterProc(temp_r31); } if (temp_r31->hsfData->cenvCnt != 0) { @@ -1392,7 +1396,7 @@ void Hu3DMotionCalc(s16 arg0) { } PPCSync(); } - temp_r31->attr |= 0x800; + temp_r31->attr |= HU3D_ATTR_MOT_EXEC; } static s32 SearchObjectIndex(HsfData *arg0, u32 arg1) { From a159b773c076b8a53fae3af9414da701f44dad54 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sun, 25 Aug 2024 16:08:24 -0500 Subject: [PATCH 043/311] Add HU3D limit defines --- include/game/hsfman.h | 7 +++++- src/game/hsfanim.c | 28 ++++++++++----------- src/game/hsfdraw.c | 4 +-- src/game/hsfex.c | 8 +++--- src/game/hsfman.c | 58 +++++++++++++++++++++---------------------- src/game/hsfmotion.c | 30 +++++++++++----------- 6 files changed, 70 insertions(+), 65 deletions(-) diff --git a/include/game/hsfman.h b/include/game/hsfman.h index 031ca1ea..ce2533fb 100644 --- a/include/game/hsfman.h +++ b/include/game/hsfman.h @@ -6,6 +6,11 @@ #include "game/memory.h" #include "game/data.h" +#define HU3D_MODEL_MAX 512 +#define HU3D_MOTION_MAX 256 +#define HU3D_TEXANIM_MAX 256 +#define HU3D_TEXSCROLL_MAX 16 + #define HU3D_MOTATTR 0x40000000 #define HU3D_MOTATTR_LOOP 0x40000001 @@ -26,7 +31,6 @@ #define HU3D_CLUSTER_ATTR_PAUSE ((s32)0xC0000002) #define HU3D_CLUSTER_ATTR_REV ((s32)0xC0000004) - #define HU3D_ATTR_NONE 0 #define HU3D_ATTR_DISPOFF 0x1 @@ -70,6 +74,7 @@ #define HU3D_CAM13 (1 << 13) #define HU3D_CAM14 (1 << 14) #define HU3D_CAM15 (1 << 15) +#define HU3D_CAM_MAX 16 #define Hu3DModelCreateFile(data_id) (Hu3DModelCreate(HuDataSelHeapReadNum((data_id), MEMORY_DEFAULT_NUM, HEAP_DATA))) diff --git a/src/game/hsfanim.c b/src/game/hsfanim.c index f0a98fcf..3ab18cf8 100755 --- a/src/game/hsfanim.c +++ b/src/game/hsfanim.c @@ -32,7 +32,7 @@ u32 frand(void); extern u32 GlobalCounter; -Hu3DTexAnimDataStruct Hu3DTexAnimData[256]; +Hu3DTexAnimDataStruct Hu3DTexAnimData[HU3D_TEXANIM_MAX]; Hu3DTexScrDataStruct Hu3DTexScrData[16]; static Process *parManProc[64]; @@ -42,11 +42,11 @@ void Hu3DAnimInit(void) { s16 i; var_r30 = Hu3DTexAnimData; - for (i = 0; i < 256; i++, var_r30++) { + for (i = 0; i < HU3D_TEXANIM_MAX; i++, var_r30++) { var_r30->unk06 = -1; } var_r29 = Hu3DTexScrData; - for (i = 0; i < 16; i++, var_r29++) { + for (i = 0; i < HU3D_TEXSCROLL_MAX; i++, var_r29++) { var_r29->unk02 = -1; } } @@ -61,12 +61,12 @@ s16 Hu3DAnimCreate(void *arg0, s16 arg1, char *arg2) { s16 var_r28; var_r31 = Hu3DTexAnimData; - for (var_r28 = 0; var_r28 < 256; var_r28++, var_r31++) { + for (var_r28 = 0; var_r28 < HU3D_TEXANIM_MAX; var_r28++, var_r31++) { if (var_r31->unk06 == -1) { break; } } - if (var_r28 == 256) { + if (var_r28 == HU3D_TEXANIM_MAX) { OSReport("Error: TexAnim Over\n"); return -1; } @@ -118,12 +118,12 @@ s16 Hu3DAnimLink(s16 arg0, s16 arg1, char *arg2) { s16 var_r25; var_r31 = Hu3DTexAnimData; - for (var_r28 = 0; var_r28 < 256; var_r28++, var_r31++) { + for (var_r28 = 0; var_r28 < HU3D_TEXANIM_MAX; var_r28++, var_r31++) { if (var_r31->unk06 == -1) { break; } } - if (var_r28 == 256) { + if (var_r28 == HU3D_TEXANIM_MAX) { OSReport("Error: TexAnim Over\n"); return -1; } @@ -190,7 +190,7 @@ void Hu3DAnimModelKill(s16 arg0) { Hu3DTexAnimDataStruct *var_r26 = &Hu3DTexAnimData[0]; s16 i; - for (i = 0; i < 256; i++, var_r26++) { + for (i = 0; i < HU3D_TEXANIM_MAX; i++, var_r26++) { if (var_r26->unk06 == arg0) { Hu3DAnimKill(i); } @@ -201,7 +201,7 @@ void Hu3DAnimAllKill(void) { Hu3DTexAnimDataStruct *var_r26 = &Hu3DTexAnimData[0]; s16 i; - for (i = 0; i < 256; i++, var_r26++) { + for (i = 0; i < HU3D_TEXANIM_MAX; i++, var_r26++) { if (var_r26->unk06 != -1) { Hu3DAnimKill(i); } @@ -283,7 +283,7 @@ void Hu3DAnimExec(void) { s16 i; var_r30 = Hu3DTexAnimData; - for (i = 0; i < 256; i++, var_r30++) { + for (i = 0; i < HU3D_TEXANIM_MAX; i++, var_r30++) { if (var_r30->unk06 != -1 && (Hu3DPauseF == 0 || (var_r30->unk00 & 0x20))) { var_r25 = var_r30->unk10; temp_r28 = &var_r25->bank[var_r30->unk02]; @@ -312,7 +312,7 @@ void Hu3DAnimExec(void) { } } var_r31 = Hu3DTexScrData; - for (i = 0; i < 16; i++, var_r31++) { + for (i = 0; i < HU3D_TEXSCROLL_MAX; i++, var_r31++) { if (var_r31->unk02 != -1) { if (Hu3DPauseF != 0 && !(var_r31->unk00 & 8)) { PSMTXRotRad(var_r31->unk3C, 'Z', MTXDegToRad(var_r31->unk34)); @@ -365,12 +365,12 @@ s16 Hu3DTexScrollCreate(s16 arg0, char *arg1) { s16 var_r28; var_r31 = Hu3DTexScrData; - for (var_r28 = 0; var_r28 < 16; var_r28++, var_r31++) { + for (var_r28 = 0; var_r28 < HU3D_TEXSCROLL_MAX; var_r28++, var_r31++) { if (var_r31->unk02 == -1) { break; } } - if (var_r28 == 16) { + if (var_r28 == HU3D_TEXSCROLL_MAX) { OSReport("Error: TexScroll Over\n"); return -1; } @@ -434,7 +434,7 @@ void Hu3DTexScrollAllKill(void) { s16 i; var_r27 = Hu3DTexScrData; - for (i = 0; i < 16; i++, var_r27++) { + for (i = 0; i < HU3D_TEXSCROLL_MAX; i++, var_r27++) { if (var_r27->unk02 != -1) { Hu3DTexScrollKill(i); } diff --git a/src/game/hsfdraw.c b/src/game/hsfdraw.c index bb7fff29..42d4a217 100755 --- a/src/game/hsfdraw.c +++ b/src/game/hsfdraw.c @@ -46,13 +46,13 @@ void GXResetWriteGatherPipe(void); static const Vec lbl_8011DD20 = { 0.0f, 0.0f, -1.0f }; -static HsfDrawObject DrawObjData[512]; +static HsfDrawObject DrawObjData[HU3D_MODEL_MAX]; static HsfAttribute *BmpPtrBak[8]; static Mtx MTXBuf[96]; static Vec scaleBuf[96]; static GXColor texCol[16]; static Mtx hiliteMtx; -static s16 DrawObjNum[512]; +static s16 DrawObjNum[HU3D_MODEL_MAX]; static Vec NBTB; static Vec NBTT; Vec PGMaxPos; diff --git a/src/game/hsfex.c b/src/game/hsfex.c index a09129ec..acf7f822 100644 --- a/src/game/hsfex.c +++ b/src/game/hsfex.c @@ -18,7 +18,7 @@ void CamMotionEx2(s16 arg0, s16 arg1, float arg2, s16 arg3) { CameraData *temp_r30; s16 i; - for (i = 0; i < 16; i++) { + for (i = 0; i < HU3D_CAM_MAX; i++) { if (arg1 & (1 << i)) { break; } @@ -57,7 +57,7 @@ void CamMotionEx(s16 arg0, s16 arg1, Vec *arg2, Vec *arg3, Vec *arg4, float arg5 temp_r22 = temp_r23->hsfData; temp_r18 = temp_r19->unk_04; temp_r26 = temp_r18->motion; - for (var_r25 = 0; var_r25 < 16; var_r25++) { + for (var_r25 = 0; var_r25 < HU3D_CAM_MAX; var_r25++) { if (arg1 & (1 << var_r25)) { break; } @@ -422,7 +422,7 @@ void Hu3D2Dto3D(Vec *arg0, s16 arg1, Vec *arg2) { s16 i; Mtx spC; - for (i = 0; i < 16; i++) { + for (i = 0; i < HU3D_CAM_MAX; i++) { if (arg1 & (1 << i)) { break; } @@ -449,7 +449,7 @@ void Hu3D3Dto2D(Vec *arg0, s16 arg1, Vec *arg2) { s16 i; Mtx sp1C; - for (i = 0; i < 16; i++) { + for (i = 0; i < HU3D_CAM_MAX; i++) { if (arg1 & (1 << i)) { break; } diff --git a/src/game/hsfman.c b/src/game/hsfman.c index 1930e90b..a9c2d84f 100644 --- a/src/game/hsfman.c +++ b/src/game/hsfman.c @@ -15,8 +15,8 @@ #include "math.h" #include "ext_math.h" -ModelData Hu3DData[0x200]; -CameraData Hu3DCamera[0x10]; +ModelData Hu3DData[HU3D_MODEL_MAX]; +CameraData Hu3DCamera[HU3D_CAM_MAX]; static s16 layerNum[8]; static void (*layerHook[8])(s16); AnimData *reflectAnim[5]; @@ -63,11 +63,11 @@ void Hu3DInit(void) { s16 i; data = Hu3DData; - for (i = 0; i < 0x200; i++, data++) { + for (i = 0; i < HU3D_MODEL_MAX; i++, data++) { data->hsfData = NULL; } camera = Hu3DCamera; - for (i = 0; i < 0x10; i++, camera++) { + for (i = 0; i < HU3D_CAM_MAX; i++, camera++) { camera->fov = -1.0f; } Hu3DMotionInit(); @@ -111,7 +111,7 @@ void Hu3DPreProc(void) { GXSetCopyClear(BGColor, 0xFFFFFF); data = &Hu3DData[0]; - for (i = 0; i < 0x200; i++, data++) { + for (i = 0; i < HU3D_MODEL_MAX; i++, data++) { if (data->hsfData != 0) { data->attr &= ~HU3D_ATTR_MOT_EXEC; } @@ -146,7 +146,7 @@ void Hu3DExec(void) { shadowModelDrawF = 0; HuSprBegin(); var_r24 = 0; - for (Hu3DCameraNo = 0; Hu3DCameraNo < 0x10; Hu3DCameraNo++, camera++) { + for (Hu3DCameraNo = 0; Hu3DCameraNo < HU3D_CAM_MAX; Hu3DCameraNo++, camera++) { if (-1.0f != camera->fov) { GXInvalidateVtxCache(); temp_r22 = (s16) (1 << Hu3DCameraNo); @@ -188,7 +188,7 @@ void Hu3DExec(void) { Hu3DCameraSet(Hu3DCameraNo, Hu3DCameraMtx); PSMTXInvXpose(Hu3DCameraMtx, Hu3DCameraMtxXPose); data = Hu3DData; - for (i = 0, var_r23 = i; i < 0x200; i++, data++) { + for (i = 0, var_r23 = i; i < HU3D_MODEL_MAX; i++, data++) { if (data->hsfData != 0) { if ((data->attr & HU3D_ATTR_CAMERA) != 0) { Hu3DCameraMotionExec(i); @@ -269,7 +269,7 @@ void Hu3DExec(void) { HuSprDispInit(); HuSprExec(0); data = Hu3DData; - for (i = 0; i < 0x200; i++, data++) { + for (i = 0; i < HU3D_MODEL_MAX; i++, data++) { if (data->hsfData != 0 && (data->unk_08 != -1 || (data->attr & HU3D_ATTR_CLUSTER_ON) != 0 || data->unk_0E != -1) && (Hu3DPauseF == 0 || (data->attr & HU3D_ATTR_NOPAUSE) != 0)) { Hu3DMotionNext(i); } @@ -336,12 +336,12 @@ s16 Hu3DModelCreate(void *arg0) { var_r31 = Hu3DData; - for (var_r30 = 0; var_r30 < 0x200; var_r30++, var_r31++) { + for (var_r30 = 0; var_r30 < HU3D_MODEL_MAX; var_r30++, var_r31++) { if (var_r31->hsfData == 0x0) { break; } } - if (var_r30 == 0x200) { + if (var_r30 == HU3D_MODEL_MAX) { OSReport("Error: Create Model Over!\n"); return -1; } @@ -418,12 +418,12 @@ s16 Hu3DModelLink(s16 arg0) { temp_r30 = &Hu3DData[arg0]; var_r31 = Hu3DData; - for (var_r28 = 0; var_r28 < 0x200; var_r28++, var_r31++) { + for (var_r28 = 0; var_r28 < HU3D_MODEL_MAX; var_r28++, var_r31++) { if (var_r31->hsfData == 0x0) { break; } } - if (var_r28 == 0x200) { + if (var_r28 == HU3D_MODEL_MAX) { return -1; } var_r31->unk_C8 = temp_r30->hsfData; @@ -481,12 +481,12 @@ s16 Hu3DHookFuncCreate(ModelHookFunc hook) { s16 i; var_r31 = Hu3DData; - for (var_r29 = 0; var_r29 < 0x200; var_r29++, var_r31++) { + for (var_r29 = 0; var_r29 < HU3D_MODEL_MAX; var_r29++, var_r31++) { if (var_r31->hsfData == 0) { break; } } - if (var_r29 == 0x200) { + if (var_r29 == HU3D_MODEL_MAX) { return -1; } var_r31->hook = hook; @@ -566,7 +566,7 @@ void Hu3DModelKill(s16 arg0) { temp_r31->hsfData = var_r28; } var_r30 = Hu3DData; - for (var_r27 = i = 0; i < 0x200; i++, var_r30++) { + for (var_r27 = i = 0; i < HU3D_MODEL_MAX; i++, var_r30++) { if ((var_r30->hsfData != 0) && (var_r30->hsfData == var_r28 || (var_r30->unk_24 != -1 && var_r30->unk_C8 == var_r28))) { var_r27++; } @@ -575,7 +575,7 @@ void Hu3DModelKill(s16 arg0) { temp_r31->hsfData = NULL; var_r30 = Hu3DData; if (temp_r31->unk_20 != -1) { - for (i = 0; i < 0x200; i++, var_r30++) { + for (i = 0; i < HU3D_MODEL_MAX; i++, var_r30++) { if (var_r30->hsfData != 0 && var_r30->unk_24 != -1 && var_r30->unk_C8 == var_r28) { Hu3DMotion[temp_r31->unk_20].unk_02 = i; break; @@ -620,7 +620,7 @@ void Hu3DModelAllKill(void) { modelKillAllF = 1; var_r30 = Hu3DData; - for (i = 0; i < 0x200; i++, var_r30++) { + for (i = 0; i < HU3D_MODEL_MAX; i++, var_r30++) { if (var_r30->hsfData != 0) { Hu3DModelKill(i); } @@ -1069,7 +1069,7 @@ void Hu3DModelHiliteTypeSet(s16 arg0, s16 arg1) { var_r31->flags |= 0x100; } temp_r29 = &Hu3DData[arg0]; - temp_r29->attr |= 0x20000; + temp_r29->attr |= HU3D_ATTR_HILITE; (void)temp_r29; } @@ -1103,7 +1103,7 @@ void Hu3DCameraCreate(s32 cam) { defCamera.scissor_h = RenderMode->efbHeight; Hu3DCameraExistF |= cam; - for (i = 0, mask = 1; i < 0x10; i++, mask <<= 1) { + for (i = 0, mask = 1; i < HU3D_CAM_MAX; i++, mask <<= 1) { if ((cam & mask) != 0) { cam_ptr = &Hu3DCamera[i]; *cam_ptr = defCamera; @@ -1116,7 +1116,7 @@ void Hu3DCameraPerspectiveSet(s32 cam, f32 fov, f32 near, f32 far, f32 aspect) { s16 i; CameraData* cam_ptr; - for (i = 0, mask = 1; i < 0x10; i++, mask <<= 1) { + for (i = 0, mask = 1; i < HU3D_CAM_MAX; i++, mask <<= 1) { if ((cam & mask) != 0) { cam_ptr = &Hu3DCamera[i]; cam_ptr->fov = fov; @@ -1132,7 +1132,7 @@ void Hu3DCameraViewportSet(s32 cam, f32 vx, f32 vy, f32 vw, f32 vh, f32 nz, f32 s16 i; CameraData* cam_ptr; - for (i = 0, mask = 1; i < 0x10; i++, mask <<= 1) { + for (i = 0, mask = 1; i < HU3D_CAM_MAX; i++, mask <<= 1) { if ((cam & mask) != 0) { cam_ptr = &Hu3DCamera[i]; cam_ptr->viewport_x = vx; @@ -1150,7 +1150,7 @@ void Hu3DCameraScissorSet(s32 cam, u32 x, u32 y, u32 w, u32 h) { s16 i; CameraData* cam_ptr; - for (i = 0, mask = 1; i < 0x10; i++, mask <<= 1) { + for (i = 0, mask = 1; i < HU3D_CAM_MAX; i++, mask <<= 1) { if ((cam & mask) != 0) { cam_ptr = &Hu3DCamera[i]; cam_ptr->scissor_x = x; @@ -1166,7 +1166,7 @@ void Hu3DCameraPosSet(s32 cam, f32 x, f32 y, f32 z, f32 ux, f32 uy, f32 uz, f32 s16 i; CameraData* cam_ptr; - for (i = 0, mask = 1; i < 0x10; i++, mask <<= 1) { + for (i = 0, mask = 1; i < HU3D_CAM_MAX; i++, mask <<= 1) { if ((cam & mask) != 0) { cam_ptr = &Hu3DCamera[i]; cam_ptr->pos.x = x; @@ -1187,7 +1187,7 @@ void Hu3DCameraPosSetV(s32 cam, Vec *pos, Vec *up, Vec *target) { s16 i; CameraData* cam_ptr; - for (i = 0, mask = 1; i < 0x10; i++, mask <<= 1) { + for (i = 0, mask = 1; i < HU3D_CAM_MAX; i++, mask <<= 1) { if ((cam & mask) != 0) { cam_ptr = &Hu3DCamera[i]; cam_ptr->pos = *pos; @@ -1202,7 +1202,7 @@ void Hu3DCameraKill(s32 cam) { s16 i; CameraData* cam_ptr; - for (i = 0, mask = 1; i < 0x10; i++, mask <<= 1) { + for (i = 0, mask = 1; i < HU3D_CAM_MAX; i++, mask <<= 1) { if ((cam & mask) != 0) { cam_ptr = &Hu3DCamera[i]; cam_ptr->fov = -1.0f; @@ -1219,9 +1219,9 @@ void Hu3DCameraAllKill(void) { s16 mask2; cam_ptr = &Hu3DCamera[0]; - for (i = 0, mask = 1; i < 0x10; i++, mask <<= 1, cam_ptr++) { + for (i = 0, mask = 1; i < HU3D_CAM_MAX; i++, mask <<= 1, cam_ptr++) { if (-1.0f != cam_ptr->fov) { - for (j = 0, mask2 = 1; j < 0x10; j++, mask2 <<= 1) { + for (j = 0, mask2 = 1; j < HU3D_CAM_MAX; j++, mask2 <<= 1) { if ((mask & mask2) != 0) { cam_ptr2 = &Hu3DCamera[j]; cam_ptr2->fov = -1.0f; @@ -1307,7 +1307,7 @@ s16 Hu3DModelCameraCreate(s16 arg0, u16 arg1) { temp_r3 = Hu3DHookFuncCreate((ModelHookFunc)-1); temp_r31 = &Hu3DData[(s16) temp_r3]; - temp_r31->attr &= ~0x10; + temp_r31->attr &= ~HU3D_ATTR_HOOKFUNC; temp_r31->attr |= HU3D_ATTR_CAMERA | HU3D_ATTR_CAMERA_MOTON; temp_r31->unk_08 = arg0; temp_r31->unk_01 = arg1; @@ -1941,7 +1941,7 @@ void Hu3DShadowExec(void) { GXInvalidateTexAll(); GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, BGColor); - for (var_r30 = 0; var_r30 < 0x200; var_r30++, var_r31++) { + for (var_r30 = 0; var_r30 < HU3D_MODEL_MAX; var_r30++, var_r31++) { if (var_r31->hsfData != 0 && (var_r31->attr & HU3D_ATTR_SHADOW) != 0 && (var_r31->attr & HU3D_ATTR_DISPOFF) == 0 && (var_r31->attr & HU3D_ATTR_HOOK) == 0) { if ((var_r31->attr & HU3D_ATTR_MOTION_OFF) != 0) { test2 = 0; diff --git a/src/game/hsfmotion.c b/src/game/hsfmotion.c index 97859fb7..e21ad90f 100644 --- a/src/game/hsfmotion.c +++ b/src/game/hsfmotion.c @@ -17,7 +17,7 @@ static s32 SearchObjectIndex(HsfData *arg0, u32 arg1); static s32 SearchAttributeIndex(HsfData *arg0, u32 arg1); -MotionData Hu3DMotion[256]; +MotionData Hu3DMotion[HU3D_MOTION_MAX]; static HsfBitmap *bitMapPtr; @@ -26,7 +26,7 @@ void Hu3DMotionInit(void) { s16 i; var_r31 = (MotionData*) Hu3DData; - for (i = 0; i < 256; i++, var_r31++) { + for (i = 0; i < HU3D_MOTION_MAX; i++, var_r31++) { var_r31->unk_04 = 0; } } @@ -36,12 +36,12 @@ s16 Hu3DMotionCreate(void *arg0) { s16 i; var_r31 = Hu3DMotion; - for (i = 0; i < 256; i++, var_r31++) { + for (i = 0; i < HU3D_MOTION_MAX; i++, var_r31++) { if (var_r31->unk_04 == 0) { break; } } - if (i == 256) { + if (i == HU3D_MOTION_MAX) { OSReport("Error: Create Motion Over!\n"); return -1; } @@ -57,12 +57,12 @@ s16 Hu3DMotionModelCreate(s16 arg0) { s16 i; var_r31 = Hu3DMotion; - for (i = 0; i < 256; i++, var_r31++) { + for (i = 0; i < HU3D_MOTION_MAX; i++, var_r31++) { if (var_r31->unk_04 == 0) { break; } } - if (i == 256) { + if (i == HU3D_MOTION_MAX) { OSReport("Error: Create Motion Over!\n"); return -1; } @@ -105,7 +105,7 @@ void Hu3DMotionAllKill(void) { s16 i; var_r27 = Hu3DMotion; - for (i = 0; i < 256; i++, var_r27++) { + for (i = 0; i < HU3D_MOTION_MAX; i++, var_r27++) { if (var_r27->unk_04) { Hu3DMotionKill(i); } @@ -1051,7 +1051,7 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) { switch (arg1->channel) { case 8: var_f30 = temp_r29->scale.x * (arg2 + temp_r29->pos.x); - for (i = 0, var_r30 = 1; i < 16; i++, var_r30 <<= 1) { + for (i = 0, var_r30 = 1; i < HU3D_CAM_MAX; i++, var_r30 <<= 1) { if (var_r30 & temp_r28) { Hu3DCamera[i].pos.x = var_f30; } @@ -1059,7 +1059,7 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) { break; case 9: var_f30 = temp_r29->scale.y * (arg2 + temp_r29->pos.y); - for (i = 0, var_r30 = 1; i < 16; i++, var_r30 <<= 1) { + for (i = 0, var_r30 = 1; i < HU3D_CAM_MAX; i++, var_r30 <<= 1) { if (var_r30 & temp_r28) { Hu3DCamera[i].pos.y = var_f30; } @@ -1067,7 +1067,7 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) { break; case 10: var_f30 = temp_r29->scale.z * (arg2 + temp_r29->pos.z); - for (i = 0, var_r30 = 1; i < 16; i++, var_r30 <<= 1) { + for (i = 0, var_r30 = 1; i < HU3D_CAM_MAX; i++, var_r30 <<= 1) { if (var_r30 & temp_r28) { Hu3DCamera[i].pos.z = var_f30; } @@ -1075,7 +1075,7 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) { break; case 11: var_f30 = temp_r29->scale.x * (arg2 + temp_r29->pos.x); - for (i = 0, var_r30 = 1; i < 16; i++, var_r30 <<= 1) { + for (i = 0, var_r30 = 1; i < HU3D_CAM_MAX; i++, var_r30 <<= 1) { if (var_r30 & temp_r28) { Hu3DCamera[i].target.x = var_f30; } @@ -1083,7 +1083,7 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) { break; case 12: var_f30 = temp_r29->scale.y * (arg2 + temp_r29->pos.y); - for (i = 0, var_r30 = 1; i < 16; i++, var_r30 <<= 1) { + for (i = 0, var_r30 = 1; i < HU3D_CAM_MAX; i++, var_r30 <<= 1) { if (var_r30 & temp_r28) { Hu3DCamera[i].target.y = var_f30; } @@ -1091,14 +1091,14 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) { break; case 13: var_f30 = temp_r29->scale.z * (arg2 + temp_r29->pos.z); - for (i = 0, var_r30 = 1; i < 16; i++, var_r30 <<= 1) { + for (i = 0, var_r30 = 1; i < HU3D_CAM_MAX; i++, var_r30 <<= 1) { if (var_r30 & temp_r28) { Hu3DCamera[i].target.z = var_f30; } } break; case 14: - for (i = 0, var_r30 = 1; i < 16; i++, var_r30 <<= 1) { + for (i = 0, var_r30 = 1; i < HU3D_CAM_MAX; i++, var_r30 <<= 1) { if (var_r30 & temp_r28) { VECSubtract(&Hu3DCamera[i].pos, &Hu3DCamera[i].target, &spC); VECNormalize(&spC, &spC); @@ -1111,7 +1111,7 @@ void SetObjCameraMotion(s16 arg0, HsfTrack *arg1, float arg2) { } break; case 15: - for (i = 0, var_r30 = 1; i < 16; i++, var_r30 <<= 1) { + for (i = 0, var_r30 = 1; i < HU3D_CAM_MAX; i++, var_r30 <<= 1) { if (var_r30 & temp_r28) { Hu3DCamera[i].fov = arg2; } From 27e67cb66c1b033be173053a57663a133de4fbde Mon Sep 17 00:00:00 2001 From: mrshigure Date: Mon, 26 Aug 2024 13:51:03 -0700 Subject: [PATCH 044/311] Applying HU3D defines across the board (1/?) --- include/REL/m437Dll.h | 7 ++- include/game/hsfman.h | 1 + src/REL/instDll/main.c | 4 +- src/REL/m401Dll/main.c | 22 ++++---- src/REL/m401Dll/main_ex.c | 2 +- src/REL/m402Dll/main.c | 36 ++++++------ src/REL/m404Dll/main.c | 6 +- src/REL/m405Dll/main.c | 6 +- src/REL/m406Dll/player.c | 14 ++--- src/REL/m407dll/player.c | 28 +++++----- src/REL/m407dll/whomp.c | 4 +- src/REL/m408Dll/main.c | 16 +++--- src/REL/m409Dll/player.c | 8 +-- src/REL/m410Dll/player.c | 20 +++---- src/REL/m411Dll/main.c | 58 +++++++++---------- src/REL/m412Dll/main.c | 36 ++++++------ src/REL/m414Dll/main.c | 8 +-- src/REL/m415Dll/main.c | 2 +- src/REL/m416Dll/main.c | 22 ++++---- src/REL/m417Dll/player.c | 22 ++++---- src/REL/m426Dll/main.c | 22 ++++---- src/REL/m429Dll/main.c | 12 ++-- src/REL/m431Dll/main.c | 12 ++-- src/REL/m431Dll/object.c | 6 +- src/REL/m434Dll/player.c | 18 +++--- src/REL/m437Dll/sequence.c | 12 ++-- src/REL/m439Dll/main.c | 16 +++--- src/REL/m440Dll/main.c | 6 +- src/REL/m440Dll/object.c | 38 ++++++------- src/REL/m441Dll/main.c | 24 ++++---- src/REL/m442Dll/main.c | 12 ++-- src/REL/m444dll/main.c | 90 +++++++++++++++--------------- src/REL/m444dll/pinball.c | 10 ++-- src/REL/m445Dll/main.c | 28 +++++----- src/REL/m446Dll/player.c | 12 ++-- src/REL/m447dll/player.c | 25 +++------ src/REL/m448Dll/main.c | 10 ++-- src/REL/mgmodedll/battle.c | 26 ++++----- src/REL/mgmodedll/main.c | 6 +- src/REL/mgmodedll/tictactoe.c | 8 +-- src/REL/modeltestDll/modeltest01.c | 6 +- src/REL/option/guide.c | 4 +- src/REL/present/common.c | 4 +- src/REL/resultDll/battle.c | 4 +- src/REL/w01Dll/main.c | 12 ++-- src/REL/w01Dll/mg_coin.c | 10 ++-- src/REL/w01Dll/mg_item.c | 12 ++-- src/REL/w02Dll/gamble.c | 2 +- src/REL/w02Dll/mg_coin.c | 6 +- src/REL/w02Dll/mg_item.c | 2 +- src/REL/w02Dll/roulette.c | 2 +- src/REL/w02Dll/shuffleboard.c | 4 +- src/REL/w03Dll/condor.c | 12 ++-- src/REL/w03Dll/mg_coin.c | 4 +- src/REL/w03Dll/mg_item.c | 14 ++--- src/REL/w03Dll/river.c | 18 +++--- src/REL/w03Dll/statue.c | 6 +- src/REL/w04Dll/big_boo.c | 10 ++-- src/REL/w04Dll/boo_event.c | 10 ++-- src/REL/w04Dll/bridge.c | 2 +- src/REL/w04Dll/mg_coin.c | 8 +-- src/REL/w04Dll/mg_item.c | 12 ++-- src/REL/w05Dll/dolphin.c | 4 +- src/REL/w05Dll/hotel.c | 16 +++--- src/REL/w05Dll/mg_coin.c | 2 +- src/REL/w05Dll/mg_item.c | 6 +- src/REL/w05Dll/monkey.c | 6 +- src/REL/w06Dll/bowser.c | 58 +++++++++---------- src/REL/w06Dll/bridge.c | 8 +-- src/REL/w06Dll/fire.c | 4 +- src/REL/w06Dll/mg_coin.c | 12 ++-- src/REL/w06Dll/mg_item.c | 12 ++-- src/REL/ztardll/main.c | 24 ++++---- src/game/board/basic_space.c | 4 +- src/game/board/battle.c | 2 +- src/game/board/block.c | 2 +- src/game/board/boo.c | 12 ++-- src/game/board/boo_house.c | 28 +++++----- src/game/board/bowser.c | 40 ++++++------- src/game/board/item.c | 32 +++++------ src/game/board/last5.c | 38 ++++++------- src/game/board/lottery.c | 20 +++---- src/game/board/main.c | 2 +- src/game/board/mushroom.c | 2 +- src/game/board/player.c | 22 ++++---- src/game/board/shop.c | 10 ++-- src/game/board/space.c | 2 +- src/game/board/star.c | 14 ++--- src/game/board/start.c | 8 +-- 89 files changed, 634 insertions(+), 635 deletions(-) diff --git a/include/REL/m437Dll.h b/include/REL/m437Dll.h index e96aeaea..7dd1f328 100755 --- a/include/REL/m437Dll.h +++ b/include/REL/m437Dll.h @@ -1,3 +1,6 @@ +#ifndef M437DLL_H +#define M437DLL_H + #include "game/object.h" #include "dolphin.h" @@ -21,7 +24,7 @@ typedef struct { /* 0x00 */ void (*unk00)(void); /* 0x04 */ void (*unk04)(void); /* 0x08 */ float unk08; - /* 0x08 */ float unk0C; + /* 0x0C */ float unk0C; /* 0x10 */ float unk10; /* 0x14 */ float unk14; /* 0x18 */ float unk18; @@ -71,3 +74,5 @@ void fn_1_15CD0(StructFn15CD0* arg0, s32 arg1); void fn_1_15DC8(StructFn15CD0* arg0); void fn_1_164B0(Process* arg0, StructFn15CD0* arg1, s32 arg2, const char* arg3); void fn_1_1660C(Process* arg0, StructFn15CD0* arg1, s32 arg2, s32 arg3); + +#endif diff --git a/include/game/hsfman.h b/include/game/hsfman.h index ce2533fb..87299d79 100644 --- a/include/game/hsfman.h +++ b/include/game/hsfman.h @@ -11,6 +11,7 @@ #define HU3D_TEXANIM_MAX 256 #define HU3D_TEXSCROLL_MAX 16 +#define HU3D_MOTATTR_NONE 0 #define HU3D_MOTATTR 0x40000000 #define HU3D_MOTATTR_LOOP 0x40000001 diff --git a/src/REL/instDll/main.c b/src/REL/instDll/main.c index a57a08af..6cc826f2 100644 --- a/src/REL/instDll/main.c +++ b/src/REL/instDll/main.c @@ -519,7 +519,7 @@ static void fn_1_17E4(void) CharModelMotionSet(char_tbl[j], mot_tbl[j][2]); } if(time == 30) { - CharModelMotionShiftSet(char_tbl[j], mot_tbl[j][0], 0, 10, 0x40000001); + CharModelMotionShiftSet(char_tbl[j], mot_tbl[j][0], 0, 10, HU3D_MOTATTR_LOOP); } if(time <= 20) { Hu3DModelPosSet(player_mdl[j], player_pos[j].x, player_pos[j].y+(1000.0*cos(M_PI*(time*4.5f)/180.0)), player_pos[j].z); @@ -635,7 +635,7 @@ static void fn_1_220C(void) Hu3DModelRotSet(model, 0.0f, 90-((i/10.0f)*70), 0); HuPrcVSleep(); } - Hu3DMotionShiftSet(model, motion[0], 0, 10, 0x40000001); + Hu3DMotionShiftSet(model, motion[0], 0, 10, HU3D_MOTATTR_LOOP); model_ptr = &Hu3DData[model]; while(1) { fontcolor = FONT_COLOR_RED; diff --git a/src/REL/m401Dll/main.c b/src/REL/m401Dll/main.c index 2e4c13d9..59196d4c 100644 --- a/src/REL/m401Dll/main.c +++ b/src/REL/m401Dll/main.c @@ -1138,7 +1138,7 @@ void fn_2_3F28(omObjData *object) case 0: if (--temp_r31->unk6E == 0) { temp_r31->unk0 = 1; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[4], 0, 20, 0); + CharModelMotionShiftSet(temp_r31->unk86, object->motion[4], 0, 20, HU3D_MOTATTR_NONE); temp_r31->unk58.x = 16; temp_r31->unk58.y = 0; } @@ -1164,7 +1164,7 @@ void fn_2_3F28(omObjData *object) temp_r27 = temp_r28->data; temp_r27->unkC = object; temp_r31->unk48 = temp_r28; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 80, 0x40000001); + CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 80, HU3D_MOTATTR_LOOP); temp_r31->unk30.x = object->trans.x; temp_r31->unk30.y = object->trans.y; temp_r31->unk30.z = object->trans.z; @@ -1256,7 +1256,7 @@ void fn_2_48A0(omObjData *object) switch (temp_r31->unk0) { case 5: if (temp_r31->unk6A == 1) { - CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); + CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, HU3D_MOTATTR_LOOP); temp_r31->unk6A = 0; } omSetRot(object, 0, 180, 0); @@ -1284,7 +1284,7 @@ void fn_2_48A0(omObjData *object) if (temp_r31->unk58.x <= 0.5f) { temp_r31->unk0 = 7; temp_r31->unk58.x = -0.5f; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[0], 0, 30, 0x40000001); + CharModelMotionShiftSet(temp_r31->unk86, object->motion[0], 0, 30, HU3D_MOTATTR_LOOP); temp_r31->unk80 = 0; temp_r31->unk6C = 0; } @@ -1426,7 +1426,7 @@ void fn_2_48A0(omObjData *object) if (object->trans.y <= 1030.0f && temp_f29 < 0) { temp_r31->unk0 = 12; object->trans.y = 1030 + temp_r29->unk4; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[2], 0, 15, 0x40000001); + CharModelMotionShiftSet(temp_r31->unk86, object->motion[2], 0, 15, HU3D_MOTATTR_LOOP); temp_r31->unk58.x = 0; } break; @@ -1446,7 +1446,7 @@ void fn_2_48A0(omObjData *object) temp_r31->unk58.x += 3.0f; if (temp_r31->unk58.x > 90.0f) { temp_r31->unk0 = 13; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[5], 0, 20, 0); + CharModelMotionShiftSet(temp_r31->unk86, object->motion[5], 0, 20, HU3D_MOTATTR_NONE); HuAudSStreamPlay(1); lbl_2_bss_C0 = MGSeqWinCreate(lbl_2_bss_AA[0], -1, -1, -1); lbl_2_bss_1A = 210; @@ -1570,7 +1570,7 @@ void fn_2_5CC0(omObjData *object) } if (temp_r31->unk84) { if (--temp_r31->unk84 == 0) { - CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); + CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, HU3D_MOTATTR_LOOP); temp_r31->unk6A = 0; } } @@ -1579,7 +1579,7 @@ void fn_2_5CC0(omObjData *object) temp_r31->unk84 = 0; if (--temp_r31->unk7A == 0) { sp10 = GWPlayerCfg[temp_r31->unk4].character; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); + CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, HU3D_MOTATTR_LOOP); temp_r31->unk78 = 0; temp_r31->unk6A = 0; } @@ -1606,12 +1606,12 @@ void fn_2_5CC0(omObjData *object) if (temp_r31->unk58.z > 0 || temp_r31->unk8C >= 5) { if (temp_r31->unk6A == 0) { temp_r31->unk6A = 1; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[3], 0, 8, 0x40000001); + CharModelMotionShiftSet(temp_r31->unk86, object->motion[3], 0, 8, HU3D_MOTATTR_LOOP); } } else { if (temp_r31->unk6A == 1) { - CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, 0x40000001); + CharModelMotionShiftSet(temp_r31->unk86, object->motion[1], 0, 8, HU3D_MOTATTR_LOOP); temp_r31->unk6A = 0; } } @@ -2038,7 +2038,7 @@ void fn_2_7C3C(omObjData *object) M401WorkPlayer *temp_r31 = object->data; temp_r31->unk78 = 1; temp_r31->unk7A = 120; - CharModelMotionShiftSet(temp_r31->unk86, object->motion[7], 0, 10, 0); + CharModelMotionShiftSet(temp_r31->unk86, object->motion[7], 0, 10, HU3D_MOTATTR_NONE); fn_2_A914(temp_r31->unk4); } diff --git a/src/REL/m401Dll/main_ex.c b/src/REL/m401Dll/main_ex.c index a21aa209..61f9a5ed 100644 --- a/src/REL/m401Dll/main_ex.c +++ b/src/REL/m401Dll/main_ex.c @@ -341,7 +341,7 @@ void fn_2_113AC(omObjData *object) } dist = VECDistanceXYZ(&object->trans, &temp_r27->trans); if (dist < 108.00001f) { - Hu3DMotionShiftSet(lbl_2_bss_118[temp_r29]->model[0], lbl_2_bss_118[temp_r29]->motion[6], 0, 10, 0); + Hu3DMotionShiftSet(lbl_2_bss_118[temp_r29]->model[0], lbl_2_bss_118[temp_r29]->motion[6], 0, 10, HU3D_MOTATTR_NONE); HuAudFXPlay(1288); if (temp_r30->unk18 == 0) { HuAudFXPlay(9); diff --git a/src/REL/m402Dll/main.c b/src/REL/m402Dll/main.c index 2373f657..1510c061 100755 --- a/src/REL/m402Dll/main.c +++ b/src/REL/m402Dll/main.c @@ -874,7 +874,7 @@ static void fn_1_2B30(UnkFn27A8Struct *arg0, omObjData *arg1, omObjData *arg2) { Hu3DMotionTimeSet(lbl_1_bss_54[arg0->unk54]->model[0], 0.0f); Hu3DMotionSpeedSet(arg1->model[0], 1.0f); Hu3DModelAttrReset(arg1->model[0], 0x40000003); - Hu3DMotionShiftSet(arg1->model[0], arg1->motion[7], 0.0f, 8.0f, 0); + Hu3DMotionShiftSet(arg1->model[0], arg1->motion[7], 0.0f, 8.0f, HU3D_MOTATTR_NONE); fn_1_2970(arg0, arg2, 1); HuAudCharVoicePlay(arg0->unk58, 0x123); } @@ -965,7 +965,7 @@ static void fn_1_3204(omObjData *arg0) { temp_r31->unk20 = 0.0f; temp_r31->unk24 = temp_r31->unk1C; HuAudFXPlay(0x50E); - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[5], 0.0f, 2.0f, 0x40000001); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[5], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); } } else { temp_r31->unk30 += 1.0f; @@ -992,7 +992,7 @@ static void fn_1_3204(omObjData *arg0) { temp_r31->unk60++; if (temp_r31->unk60 == 3) { Hu3DMotionSpeedSet(arg0->model[0], 0.83f); - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[6], 0.0f, 4.0f, 0x40000001); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[6], 0.0f, 4.0f, HU3D_MOTATTR_LOOP); } if (temp_r31->unk60 == 9) { Hu3DMotionSpeedSet(arg0->model[0], 1.0f); @@ -1042,7 +1042,7 @@ static void fn_1_3204(omObjData *arg0) { temp_r31->unk50 -= 1.0f; if (temp_r31->unk50 == 32) { Hu3DMotionSet(arg0->model[0], arg0->motion[9]); - Hu3DMotionShiftSet(temp_r29->model[0], temp_r29->motion[1], 0.0f, 20.0f, 0x40000002); + Hu3DMotionShiftSet(temp_r29->model[0], temp_r29->motion[1], 0.0f, 20.0f, HU3D_MOTATTR_PAUSE); } if (0.0f > temp_r31->unk50) { fn_1_2880(temp_r31, arg0); @@ -1102,7 +1102,7 @@ static void fn_1_43D8(omObjData *arg0) { case 2000: if (lbl_1_bss_58->work[0] == 1001) { temp_r31->unk4C++; - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[1], 0.0f, 10.0f, 0); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[1], 0.0f, 10.0f, HU3D_MOTATTR_NONE); } break; case 2001: @@ -1111,7 +1111,7 @@ static void fn_1_43D8(omObjData *arg0) { temp_r31->unk4C++; temp_r31->unk08 = 0.0f; temp_r31->unk04 = 2000.0f; - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[2], 0.0f, 10.0f, 0); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[2], 0.0f, 10.0f, HU3D_MOTATTR_NONE); Hu3DMotionSet(temp_r30->model[0], temp_r30->motion[0]); Hu3DModelAttrSet(temp_r30->model[0], 0x40000002); Hu3DModelAttrReset(temp_r30->model[0], 0x40000001); @@ -1130,7 +1130,7 @@ static void fn_1_43D8(omObjData *arg0) { if (temp_r31->unk54 == 0) { HuAudFXPlay(0x50D); } - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[3], 0.0f, 10.0f, 0); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[3], 0.0f, 10.0f, HU3D_MOTATTR_NONE); } break; case 2003: @@ -1152,7 +1152,7 @@ static void fn_1_43D8(omObjData *arg0) { temp_r31->unk50++; if (70.0f < temp_r31->unk50) { temp_r31->unk4C++; - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[4], 0.0f, 10.0f, 0); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[4], 0.0f, 10.0f, HU3D_MOTATTR_NONE); } break; case 2005: @@ -1171,8 +1171,8 @@ static void fn_1_43D8(omObjData *arg0) { temp_r31->unk4C++; temp_r31->unk50 = 0; temp_r31->unk0C = 0.0f; - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[5], 0.0f, 10.0f, 0x40000001); - Hu3DMotionShiftSet(temp_r30->model[0], temp_r30->motion[1], 0.0f, 10.0f, 0x40000002); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[5], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSet(temp_r30->model[0], temp_r30->motion[1], 0.0f, 10.0f, HU3D_MOTATTR_PAUSE); } break; case 2006: @@ -1213,7 +1213,7 @@ static void fn_1_43D8(omObjData *arg0) { temp_r31->unk50 -= 1.0f; if (temp_r31->unk50 == 32) { Hu3DMotionSet(arg0->model[0], arg0->motion[9]); - Hu3DMotionShiftSet(temp_r30->model[0], temp_r30->motion[1], 0.0f, 20.0f, 0x40000002); + Hu3DMotionShiftSet(temp_r30->model[0], temp_r30->motion[1], 0.0f, 20.0f, HU3D_MOTATTR_PAUSE); } if (0.0f > temp_r31->unk50) { lbl_1_bss_58->work[0]++; @@ -1227,9 +1227,9 @@ static void fn_1_43D8(omObjData *arg0) { temp_r31->unk4C = 2012; temp_r31->unk20 = 10.5f; Hu3DModelAttrReset(arg0->model[0], 0x40000003); - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[8], 0.0f, 20.0f, 0); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[8], 0.0f, 20.0f, HU3D_MOTATTR_NONE); Hu3DModelAttrReset(temp_r30->model[0], 0x40000003); - Hu3DMotionShiftSet(temp_r30->model[0], temp_r30->motion[2], 20.0f, 20.0f, 0); + Hu3DMotionShiftSet(temp_r30->model[0], temp_r30->motion[2], 20.0f, 20.0f, HU3D_MOTATTR_NONE); HuAudFXPlay(0x513); fn_1_4190(temp_r31->unk18); } else { @@ -1250,7 +1250,7 @@ static void fn_1_43D8(omObjData *arg0) { if (0.0f > temp_r31->unk20) { temp_r31->unk4C++; temp_r31->unk50 = 0; - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[9], 0.0f, 20.0f, 0); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[9], 0.0f, 20.0f, HU3D_MOTATTR_NONE); } if (4.5f <= temp_r31->unk20) { fn_1_4284(temp_r31->unk18); @@ -1281,7 +1281,7 @@ static void fn_1_43D8(omObjData *arg0) { temp_r31->unk50 -= 1.0f; if (temp_r31->unk50 == 32) { Hu3DMotionSet(arg0->model[0], arg0->motion[9]); - Hu3DMotionShiftSet(temp_r30->model[0], temp_r30->motion[1], 0.0f, 20.0f, 0x40000002); + Hu3DMotionShiftSet(temp_r30->model[0], temp_r30->motion[1], 0.0f, 20.0f, HU3D_MOTATTR_PAUSE); } if (0.0f > temp_r31->unk50) { temp_r31->unk4C = 2011; @@ -1415,7 +1415,7 @@ static void fn_1_6AB4(omObjData *arg0) { temp_r31->unk0C = 360.0f * frandf(); temp_r31->unk10 = 10.0f; HuAudFXPlay(0x512); - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 20.0f, 0); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 20.0f, HU3D_MOTATTR_NONE); } break; case 3001: @@ -1435,7 +1435,7 @@ static void fn_1_6AB4(omObjData *arg0) { temp_r31->unk18 = 3000; temp_r31->unk14 = 20.0f; temp_r31->unk04 = temp_r29->y; - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[1], 0.0f, 20.0f, 0); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[1], 0.0f, 20.0f, HU3D_MOTATTR_NONE); } break; } @@ -1781,7 +1781,7 @@ static void fn_1_8218(omObjData *arg0) { } else { lbl_1_bss_1AA = MGSeqCreate(5, 3, GWPlayerCfg[lbl_1_bss_26].character, -1, -1, -1); temp_r30 = lbl_1_bss_4C[lbl_1_bss_26]; - Hu3DMotionShiftSet(temp_r30->model[0], temp_r30->motion[10], 0.0f, 20.0f, 0); + Hu3DMotionShiftSet(temp_r30->model[0], temp_r30->motion[10], 0.0f, 20.0f, HU3D_MOTATTR_NONE); HuAudSStreamPlay(1); } } else { diff --git a/src/REL/m404Dll/main.c b/src/REL/m404Dll/main.c index b4f8dcce..3f4e4e85 100644 --- a/src/REL/m404Dll/main.c +++ b/src/REL/m404Dll/main.c @@ -1106,7 +1106,7 @@ void fn_1_44A0(omObjData *object) } if (var_r28 >= 0 && var_r28 != var_r31->unk_2C) { var_r31->unk_2C = var_r28; - CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_2C], 0.0f, 5.0f, 0x40000001); + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_2C], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); } } } @@ -1120,7 +1120,7 @@ void fn_1_4C7C(omObjData *object) object->trans.z = -450.0f + (300.0f * var_r30->unk_02); object->rot.y = 0.0f; var_r30->unk_2C = -1; - CharModelMotionShiftSet(var_r30->unk_0C, *object->motion, 0.0f, 5.0f, 0x40000001); + CharModelMotionShiftSet(var_r30->unk_0C, *object->motion, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); var_r30->unk_5A = 0; var_r30->unk_5C = fn_1_F70(object, 1.0f); var_r30->unk_5A = 0; @@ -1155,7 +1155,7 @@ void fn_1_4F4C(omObjData *object) else { var_r30->unk_2C = 4; } - CharModelMotionShiftSet(var_r30->unk_0C, object->motion[var_r30->unk_2C], 0.0f, 5.0f, 0); + CharModelMotionShiftSet(var_r30->unk_0C, object->motion[var_r30->unk_2C], 0.0f, 5.0f, HU3D_MOTATTR_NONE); } } diff --git a/src/REL/m405Dll/main.c b/src/REL/m405Dll/main.c index 4c4484bf..fe37d2d1 100755 --- a/src/REL/m405Dll/main.c +++ b/src/REL/m405Dll/main.c @@ -1683,7 +1683,7 @@ void fn_1_6BFC(omObjData *arg0) { temp_r31->unk100 = 2005; temp_r31->unk104 = 0; Hu3DModelAttrReset(arg0->model[0], 0x40000002); - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[temp_r31->unk104], 0.0f, 8.0f, 0x40000001); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[temp_r31->unk104], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionSpeedSet(arg0->model[0], 1.0f); for (i = 0; i < 5; i++) { Hu3DParManAttrSet(temp_r31->unkF0[i], 1); @@ -1802,7 +1802,7 @@ void fn_1_6BFC(omObjData *arg0) { var_r27 = temp_r31->unk94 + 5; temp_r31->unk104 = var_r27; Hu3DModelAttrReset(arg0->model[0], 0x40000003); - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[temp_r31->unk104], 0.0f, 8.0f, 0); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[temp_r31->unk104], 0.0f, 8.0f, HU3D_MOTATTR_NONE); temp_r31->unk94++; if (temp_r31->unk94 > lbl_1_bss_78) { lbl_1_bss_78 = temp_r31->unk94; @@ -1833,7 +1833,7 @@ void fn_1_6BFC(omObjData *arg0) { if (var_r27 != temp_r31->unk104) { temp_r31->unk104 = var_r27; Hu3DModelAttrReset(arg0->model[0], 0x40000002); - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[temp_r31->unk104], 0.0f, 30.0f, 0x40000001); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[temp_r31->unk104], 0.0f, 30.0f, HU3D_MOTATTR_LOOP); } if (temp_r31->unk104 >= 2 && temp_r31->unk104 <= 4) { temp_r31->unk60 = 0.5f * temp_r31->unk64; diff --git a/src/REL/m406Dll/player.c b/src/REL/m406Dll/player.c index e6852e93..abe01868 100644 --- a/src/REL/m406Dll/player.c +++ b/src/REL/m406Dll/player.c @@ -396,7 +396,7 @@ void fn_1_D90C(omObjData *object) var_r31->unk_58 = 0; var_r31->unk_14.y = 0.0f; var_r31->unk_14.z = 45.0f; - fn_1_DD7C(object, 0, 1.0f, 0x40000001); + fn_1_DD7C(object, 0, 1.0f, HU3D_MOTATTR_LOOP); object->trans.x = lbl_1_data_FF0[var_r31->unk_02]; object->trans.z = -500.0f; object->trans.y = fn_1_143F4(&object->trans, &var_r31->unk_44); @@ -538,7 +538,7 @@ void fn_1_E214(omObjData *object) if (fn_1_122C() >= 2) { if (var_r31->unk_00_field0 != 0) { - fn_1_DD7C(object, 9, 1.0f, 0); + fn_1_DD7C(object, 9, 1.0f, HU3D_MOTATTR_NONE); if ((var_r26->attr & 1) == 0) { Hu3D3Dto2D(&object->trans, 1, &sp28); if (sp28.x < 0.0 || sp28.x >= 576.0f || sp28.y < 0.0 || sp28.y >= 480.0f) { @@ -1165,7 +1165,7 @@ void fn_1_10744(omObjData *object) var_r29 = &Hu3DData[object->model[0]]; switch (var_r31->unk_12) { case 0: - fn_1_DD7C(object, 0, 1.0f, 0); + fn_1_DD7C(object, 0, 1.0f, HU3D_MOTATTR_NONE); if (--var_r31->unk_64 == 0) { fn_1_1284(); var_r31->unk_12++; @@ -1203,7 +1203,7 @@ void fn_1_10744(omObjData *object) object->motion[var_r24] = CharModelMotionCreate(var_r31->unk_0C, lbl_1_data_1078[var_r24]); } var_r31->unk_38 = -1; - fn_1_DD7C(object, 0, 1.0f, 0); + fn_1_DD7C(object, 0, 1.0f, HU3D_MOTATTR_NONE); Hu3DModelShadowSet(object->model[0]); return; } @@ -1214,7 +1214,7 @@ void fn_1_10744(omObjData *object) object->trans.y = 0.0f; var_r31->unk_12++; var_r31->unk_2C.y = 0.0f; - fn_1_DD7C(object, 2, 1.0f, 0); + fn_1_DD7C(object, 2, 1.0f, HU3D_MOTATTR_NONE); omVibrate(var_r31->unk_02, 0xC, 6, 6); var_r31->unk_7C[0] = HuAudFXPlay(0x53B); } @@ -1235,7 +1235,7 @@ void fn_1_10744(omObjData *object) var_r31->unk_2C.x = var_r31->unk_54 * (100.0 * (0.10000000149011612 * sind(180.0f + var_r31->unk_14.x))); var_r31->unk_2C.z = var_r31->unk_54 * (100.0 * (0.10000000149011612 * cosd(180.0f + var_r31->unk_14.x))); if (var_r31->unk_64 == 48.0f) { - fn_1_DD7C(object, 8, 1.0f, 0); + fn_1_DD7C(object, 8, 1.0f, HU3D_MOTATTR_NONE); } if (--var_r31->unk_64 == 0) { var_r31->unk_12 = -1; @@ -1277,7 +1277,7 @@ void fn_1_11058(omObjData *object) Hu3DModelScaleSet(object->model[var_r28], 1.0f, 1.0f, 1.0f); } Hu3DModelHookReset(object->model[0]); - fn_1_DD7C(object, 0, 1.0f, 0); + fn_1_DD7C(object, 0, 1.0f, HU3D_MOTATTR_NONE); var_r30->unk_00 = 0; var_r30->unk_12 = 0; var_r30->unk_00_field3 = 1; diff --git a/src/REL/m407dll/player.c b/src/REL/m407dll/player.c index 47a87f2d..5cd498bd 100644 --- a/src/REL/m407dll/player.c +++ b/src/REL/m407dll/player.c @@ -415,7 +415,7 @@ void fn_1_A8C(omObjData *arg0) } if (var_r29 != 0) { - CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[2], 0.0f, 0.0f, 0); + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[2], 0.0f, 0.0f, HU3D_MOTATTR_NONE); fn_1_4544(4, 0x10, 600.0f - (400.0f * temp_r31->unk_00), -20.0f, -450.0f); fn_1_26CC(temp_r31->unk_00); temp_r31->unk_34 = 1; @@ -423,7 +423,7 @@ void fn_1_A8C(omObjData *arg0) } if ((temp_r31->unk_34 != 0) && (Hu3DMotionEndCheck(arg0->model[0]) != 0)) { - CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[1], 0.0f, 0.0f, 0x40000001); + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[1], 0.0f, 0.0f, HU3D_MOTATTR_LOOP); temp_r31->unk_34 = 0; } } @@ -434,7 +434,7 @@ void fn_1_C58(omObjData *arg0) temp_r30 = arg0->data; if (Hu3DMotionEndCheck(arg0->model[0]) != 0) { - CharModelMotionShiftSet(temp_r30->unk_01, arg0->motion[1], 0.0f, 10.0f, 0x40000001); + CharModelMotionShiftSet(temp_r30->unk_01, arg0->motion[1], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); temp_r30->unk_34 = 0; SetDominationDataStuff(arg0, 0, 0); } @@ -446,7 +446,7 @@ void fn_1_CF4(omObjData *arg0) temp_r31 = arg0->data; if (temp_r31->unk_20 == 0) { - CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[1], 0.0f, 10.0f, 0x40000001); + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[1], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); CharModelItemHookCreate(temp_r31->unk_01, lbl_1_data_13C[temp_r31->unk_01]); } if (temp_r31->unk_20++ >= 30) { @@ -464,7 +464,7 @@ void fn_1_DB4(omObjData *arg0) if (temp_r31->unk_20 == 0) { CharModelVoiceEnableSet(temp_r31->unk_01, arg0->motion[3], 0); - CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[3], 0.0f, 10.0f, 0); + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[3], 0.0f, 10.0f, HU3D_MOTATTR_NONE); temp_r31->unk_24 = 0.0f; temp_r31->unk_20++; } @@ -480,7 +480,7 @@ void fn_1_DB4(omObjData *arg0) } temp_r31->unk_14 = 30.0f; - CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[4], 0.0f, 10.0f, 0); + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[4], 0.0f, 10.0f, HU3D_MOTATTR_NONE); SetDominationDataStuff(arg0, 0, 0); } @@ -494,12 +494,12 @@ void fn_1_F8C(omObjData *arg0) temp_r31 = arg0->data; if (temp_r31->unk_20 == 0) { - CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[5], 0.0f, 10.0f, 0); + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[5], 0.0f, 10.0f, HU3D_MOTATTR_NONE); HuAudFXPlay(lbl_1_rodata_70[temp_r31->unk_01]); } if (temp_r31->unk_20++ >= 120) { - CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[0], 0.0f, 10.0f, 0x40000001); + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); SetDominationDataStuff(arg0, 0, 0); } } @@ -511,7 +511,7 @@ void fn_1_1074(omObjData *arg0) temp_r31 = arg0->data; if (temp_r31->unk_20 == 0) { CharModelVoiceEnableSet(temp_r31->unk_01, arg0->motion[3], 0); - CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[3], 0.0f, 10.0f, 0); + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[3], 0.0f, 10.0f, HU3D_MOTATTR_NONE); temp_r31->unk_24 = 0.0f; temp_r31->unk_20 = 1; } @@ -520,7 +520,7 @@ void fn_1_1074(omObjData *arg0) temp_r31->unk_24 += 0.3f; if (!(temp_r31->unk_14 < 1000.0f)) { - CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[4], 0.0f, 10.0f, 0); + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[4], 0.0f, 10.0f, HU3D_MOTATTR_NONE); SetDominationDataStuff(arg0, 7, 0); } } @@ -533,7 +533,7 @@ void fn_1_11CC(omObjData *arg0) temp_r31 = arg0->data; if (temp_r31->unk_20 == 0) { CharModelVoiceEnableSet(temp_r31->unk_01, arg0->motion[3], 0); - CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[3], 0.0f, 10.0f, 0); + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[3], 0.0f, 10.0f, HU3D_MOTATTR_NONE); temp_r31->unk_14 = 1000.0f; temp_r31->unk_18 = 200.0f * (fn_1_28B8(temp_r31->unk_00) + 2); temp_r31->unk_24 = 0.0f; @@ -546,7 +546,7 @@ void fn_1_11CC(omObjData *arg0) if (!(temp_r31->unk_14 > 300.0f)) { temp_r31->unk_14 = 300.0f; CharModelVoiceEnableSet(temp_r31->unk_01, arg0->motion[4], 0); - CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[4], 0.0f, 10.0f, 0); + CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[4], 0.0f, 10.0f, HU3D_MOTATTR_NONE); temp = fn_1_28E4(temp_r31->unk_00); Hu3DModelHookSet(temp, "itemhook_c", arg0->model[0]); temp_r31->unk_10 = 0.0f; @@ -561,7 +561,7 @@ void fn_1_13E4(omObjData *arg0) unkDominationData *temp_r30; temp_r30 = arg0->data; - CharModelMotionShiftSet(temp_r30->unk_01, arg0->motion[6], 0.0f, 10.0f, 0); + CharModelMotionShiftSet(temp_r30->unk_01, arg0->motion[6], 0.0f, 10.0f, HU3D_MOTATTR_NONE); SetDominationDataStuff(arg0, 0, 0); } @@ -571,6 +571,6 @@ void fn_1_1460(omObjData *arg0) temp_r30 = arg0->data; CharModelVoiceEnableSet(temp_r30->unk_01, arg0->motion[7], 0); - CharModelMotionShiftSet(temp_r30->unk_01, arg0->motion[7], 0.0f, 10.0f, 0); + CharModelMotionShiftSet(temp_r30->unk_01, arg0->motion[7], 0.0f, 10.0f, HU3D_MOTATTR_NONE); SetDominationDataStuff(arg0, 0, 0); } diff --git a/src/REL/m407dll/whomp.c b/src/REL/m407dll/whomp.c index aeec5aab..25a5743a 100644 --- a/src/REL/m407dll/whomp.c +++ b/src/REL/m407dll/whomp.c @@ -447,7 +447,7 @@ void fn_1_34A4(omObjData *arg0) temp_r30->unk_2C++; if (Hu3DMotionEndCheck(arg0->model[0]) != 0) { - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[5], 0.0f, 10.0f, 0x40000001); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[5], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); switch (temp_r30->unk_28) { case 0: fn_1_290C(arg0, 0); @@ -464,7 +464,7 @@ void fn_1_36D0(omObjData *arg0) unkDominationData7 *sp8; sp8 = arg0->data; - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[2], 0.0f, 10.0f, 0x40000001); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[2], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); Hu3DMotionSet(arg0->model[1], arg0->motion[0]); Hu3DModelAttrSet(arg0->model[1], 0x40000001); Hu3DModelAttrReset(arg0->model[2], 1); diff --git a/src/REL/m408Dll/main.c b/src/REL/m408Dll/main.c index d1bceec4..afd909e9 100644 --- a/src/REL/m408Dll/main.c +++ b/src/REL/m408Dll/main.c @@ -641,7 +641,7 @@ void fn_1_26E4(omObjData *object) } } CharModelVoiceEnableSet(temp_r31->unk2, object->motion[1], 0); - CharModelMotionShiftSet(temp_r31->unk2, object->motion[0], 0, 0.2, 0x40000001); + CharModelMotionShiftSet(temp_r31->unk2, object->motion[0], 0, 0.2, HU3D_MOTATTR_LOOP); CharModelLayerSetAll(2); CharModelMotionDataClose(temp_r31->unk2); object->model[1] = Hu3DModelCreateFile(lbl_1_data_C8[temp_r31->unk2]); @@ -692,7 +692,7 @@ void fn_1_2FAC(omObjData *object) temp_r31->unk28.x = temp_r31->unk28.y = temp_r31->unk28.z = 0; object->trans.x -= 10.0 * (2.0 * sind(temp_r31->unk58.x)); object->trans.z -= 10.0 * (2.0 * cosd(temp_r31->unk58.x)); - CharModelMotionShiftSet(temp_r31->unk2, object->motion[4], 0, 0.2, 0x40000001); + CharModelMotionShiftSet(temp_r31->unk2, object->motion[4], 0, 0.2, HU3D_MOTATTR_LOOP); temp_r31->unk1C.x = temp_r31->unk94.x = object->trans.x; temp_r31->unk1C.y = temp_r31->unk94.y = object->trans.y; temp_r31->unk1C.z = temp_r31->unk94.z = object->trans.z; @@ -915,7 +915,7 @@ void fn_1_3E80(omObjData *object) temp_r31->unk28.z = temp_r31->unk40.z * temp_f29; temp_r31->unk34.x = temp_r31->unk28.x * (1.0f / 60.0f); temp_r31->unk34.z = temp_r31->unk28.z * (1.0f / 60.0f); - CharModelMotionShiftSet(temp_r31->unk2, object->motion[5], 0, 0.2f, 0); + CharModelMotionShiftSet(temp_r31->unk2, object->motion[5], 0, 0.2f, HU3D_MOTATTR_NONE); HuAudFXPlay(1358); omVibrate(object->work[0], 12, 4, 2); if (temp_r31->unk8) { @@ -930,7 +930,7 @@ void fn_1_3E80(omObjData *object) } } if (fn_1_6878() == 4 && (temp_r31->unk4 & 0x20) == 0) { - CharModelMotionShiftSet(temp_r31->unk2, object->motion[3], 0, 0.2f, 0); + CharModelMotionShiftSet(temp_r31->unk2, object->motion[3], 0, 0.2f, HU3D_MOTATTR_NONE); Hu3DModelShadowSet(object->model[0]); object->work[1] = 0; object->func = fn_1_5098; @@ -971,7 +971,7 @@ void fn_1_4A58(omObjData *object) temp_r31->unk10++; if (fn_1_6878() == 4) { temp_r26 = 0; - CharModelMotionShiftSet(temp_r31->unk2, object->motion[3], 0, 0.2f, 0); + CharModelMotionShiftSet(temp_r31->unk2, object->motion[3], 0, 0.2f, HU3D_MOTATTR_NONE); Hu3DModelShadowSet(object->model[0]); object->work[1] = 0; object->func = fn_1_5098; @@ -979,7 +979,7 @@ void fn_1_4A58(omObjData *object) else if (temp_r31->unk10 > 60) { temp_r26 = 0; temp_r31->unk4 &= ~0x3; - CharModelMotionShiftSet(temp_r31->unk2, object->motion[4], 0, 0.2f, 0x40000001); + CharModelMotionShiftSet(temp_r31->unk2, object->motion[4], 0, 0.2f, HU3D_MOTATTR_LOOP); object->func = fn_1_3E80; } if (temp_r26) { @@ -1048,12 +1048,12 @@ void fn_1_54E4(omObjData *object) if (!(temp_r30->unk4 & 0x8)) { temp_r30->unk4 |= 0x8; if (temp_r30->unk14 != 0) { - CharModelMotionShiftSet(temp_r30->unk2, object->motion[1], 0, 0.2f, 0); + CharModelMotionShiftSet(temp_r30->unk2, object->motion[1], 0, 0.2f, HU3D_MOTATTR_NONE); HuAudCharVoicePlay(temp_r30->unk2, 290); GWPlayerCoinCollectAdd(object->work[0], temp_r30->unk14); } else { - CharModelMotionShiftSet(temp_r30->unk2, object->motion[2], 0, 0.2f, 0); + CharModelMotionShiftSet(temp_r30->unk2, object->motion[2], 0, 0.2f, HU3D_MOTATTR_NONE); } object->work[1] = 0; } diff --git a/src/REL/m409Dll/player.c b/src/REL/m409Dll/player.c index 5697557e..584b118b 100644 --- a/src/REL/m409Dll/player.c +++ b/src/REL/m409Dll/player.c @@ -380,7 +380,7 @@ void fn_1_7344(omObjData* arg0) { } if (var_r28 != temp_r31->unk1C) { temp_r31->unk1C = var_r28; - CharModelMotionShiftSet(temp_r31->unk1, arg0->motion[temp_r31->unk1C], var_f31, 8.0f, (u32) var_r27); + CharModelMotionShiftSet(temp_r31->unk1, arg0->motion[temp_r31->unk1C], var_f31, 8.0f, var_r27); } omSetTra(arg0, temp_r31->unk24.x, temp_r31->unk24.y, temp_r31->unk24.z); omSetRot(arg0, temp_r31->unk3C.x, temp_r31->unk3C.y, temp_r31->unk3C.z); @@ -779,7 +779,7 @@ void fn_1_962C(omObjData* arg0) { case 3: Hu3DModelAttrReset(var_r26 = arg0->model[lbl_1_bss_106 + 1], 1); Hu3DModelHookSet(arg0->model[0], "g001mk-itemhook_r", var_r26); - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[1], 0.0f, 8.0f, 0); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[1], 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuAudFXPlay(0x558); lbl_1_bss_108++; for (var_r29 = 0; var_r29 < 4; var_r29++) { @@ -799,7 +799,7 @@ void fn_1_962C(omObjData* arg0) { } } arg0->work[3] = var_r28 * 10 + 10; - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[2], 0.0f, 8.0f, 0); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[2], 0.0f, 8.0f, HU3D_MOTATTR_NONE); if (lbl_1_bss_104 == 0) { fn_1_3840(); } @@ -808,7 +808,7 @@ void fn_1_962C(omObjData* arg0) { if (--arg0->work[3] == 0) { lbl_1_bss_108 = 0; Hu3DModelHookReset(arg0->model[0]); - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 8.0f, 0x40000001); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DModelAttrSet(arg0->model[lbl_1_bss_106 + 1], 1); } break; diff --git a/src/REL/m410Dll/player.c b/src/REL/m410Dll/player.c index fbfe99ec..dcbed261 100644 --- a/src/REL/m410Dll/player.c +++ b/src/REL/m410Dll/player.c @@ -45,16 +45,16 @@ u32 lbl_1_data_1AC[] = { }; UnkM410Struct10 lbl_1_data_1D4[] = { - { 0.0f, 0.0f, 12.0f, 0x40000001 }, - { 0.0f, 0.0f, 1.1999999, 0 }, - { 0.0f, 0.0f, 12.0f, 0x40000001 }, - { 0.0f, 0.0f, 6.0f, 0 }, - { 6.0f, 0.0f, 4.7999997f, 0 }, - { 0.0f, 0.0f, 1.1999999f, 0 }, - { 0.0f, 0.0f, 1.1999999f, 0 }, - { 0.0f, 0.0f, 1.1999999f, 0 }, - { 0.0f, 0.0f, 12.0f, 0 }, - { 0.0f, 0.0f, 12.0f, 0 }, + { 0.0f, 0.0f, 12.0f, HU3D_MOTATTR_LOOP }, + { 0.0f, 0.0f, 1.1999999f, HU3D_MOTATTR_NONE }, + { 0.0f, 0.0f, 12.0f, HU3D_MOTATTR_LOOP }, + { 0.0f, 0.0f, 6.0f, HU3D_MOTATTR_NONE }, + { 6.0f, 0.0f, 4.7999997f, HU3D_MOTATTR_NONE }, + { 0.0f, 0.0f, 1.1999999f, HU3D_MOTATTR_NONE }, + { 0.0f, 0.0f, 1.1999999f, HU3D_MOTATTR_NONE }, + { 0.0f, 0.0f, 1.1999999f, HU3D_MOTATTR_NONE }, + { 0.0f, 0.0f, 12.0f, HU3D_MOTATTR_NONE }, + { 0.0f, 0.0f, 12.0f, HU3D_MOTATTR_NONE }, }; s32 lbl_1_data_274[] = { diff --git a/src/REL/m411Dll/main.c b/src/REL/m411Dll/main.c index c2f5abfd..039d2e6b 100755 --- a/src/REL/m411Dll/main.c +++ b/src/REL/m411Dll/main.c @@ -1260,8 +1260,8 @@ void fn_1_4454(void) { } Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk1C.x, 0.0f, temp_r31->unk1C.z); Hu3DModelRotSet(var_r30->unk00, temp_r31->unk1C.x, 0.0f, temp_r31->unk1C.z); - Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk02[1], 0.0f, 5.0f, 0); - Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk02[1], 0.0f, 5.0f, 0); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk02[1], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk02[1], 0.0f, 5.0f, HU3D_MOTATTR_NONE); for (i = 0; i < 120; i++) { if (var_f31 > 180.0f) { temp_r31->unk10.x += 1.6666666f; @@ -1281,11 +1281,11 @@ void fn_1_4454(void) { HuPrcVSleep(); } if (temp_r31->unk0E == 0) { - Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk02[3], 0.0f, 5.0f, 0x40000001); - Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk02[3], 0.0f, 5.0f, 0x40000001); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk02[3], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk02[3], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); } else { - Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk02[4], 0.0f, 5.0f, 0x40000001); - Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk02[4], 0.0f, 5.0f, 0x40000001); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk02[4], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk02[4], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); } while (TRUE) { HuPrcVSleep(); @@ -1305,8 +1305,8 @@ void fn_1_4968(void) { Hu3DModelRotSet(var_r30->unk00, var_r31->unk1C.x, var_r31->unk1C.y, var_r31->unk1C.z); HuPrcVSleep(); } - Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[2], 0.0f, 5.0f, 0x40000001); - Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk02[2], 0.0f, 5.0f, 0x40000001); + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[2], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk02[2], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); for (i = 0; i < 60; i++) { var_r31->unk10.x += 2.5f; var_r31->unk10.z += 3.3333333f; @@ -1320,8 +1320,8 @@ void fn_1_4968(void) { Hu3DModelRotSet(var_r30->unk00, var_r31->unk1C.x, var_r31->unk1C.y, var_r31->unk1C.z); HuPrcVSleep(); } - Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[1], 0.0f, 10.0f, 0x40000001); - Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk02[1], 0.0f, 10.0f, 0x40000001); + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[1], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk02[1], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); while (TRUE) { if (lbl_1_bss_E98 >= 5) { break; @@ -1429,11 +1429,11 @@ void fn_1_4E8C(void) { Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z); HuPrcVSleep(); } - Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk02[1], 0.0f, 5.0f, 0); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk02[1], 0.0f, 5.0f, HU3D_MOTATTR_NONE); while (!Hu3DMotionEndCheck(temp_r31->unk00)) { HuPrcVSleep(); } - Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk02[2], 0.0f, 2.0f, 0x40000001); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk02[2], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); HuAudFXPlay(0x36); while (TRUE) { HuPrcVSleep(); @@ -1661,7 +1661,7 @@ void fn_1_5910(void) { HuPrcVSleep(); } var_r31 = &lbl_1_bss_138.unkE4[0]; - Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[1], 0.0f, 5.0f, 0); + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[1], 0.0f, 5.0f, HU3D_MOTATTR_NONE); for (var_f31 = 1.0f; var_f31 > 0.0f; var_f31 -= 0.033333335f) { lbl_1_bss_E24 = var_f31; Hu3DTexScrollPosMoveSet(lbl_1_bss_E9E, -0.01f * var_f31, 0.0f, 0.0f); @@ -1687,7 +1687,7 @@ void fn_1_5910(void) { Hu3DTexScrollPosMoveSet(lbl_1_bss_E9E, -0.01f, 0.0f, 0.0f); Hu3DTexScrollPosMoveSet(lbl_1_bss_E9C, -0.017f, 0.0f, 0.0f); HuAudFXPitchSet(lbl_1_bss_E2C[0], 0); - Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[0], 0.0f, 5.0f, 0x40000001); + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); while (TRUE) { HuPrcVSleep(); } @@ -2209,7 +2209,7 @@ void fn_1_7738(void) { } omVibrate(temp_r31->unk34, 12, 6, 6); HuPrcSleep(30); - CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[5], 0.0f, 5.0f, 0); + CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[5], 0.0f, 5.0f, HU3D_MOTATTR_NONE); HuPrcChildCreate(fn_1_75C8, 0x2000, 0x1000, 0, HuPrcCurrentGet()); if (temp_r31->unk34 == 0) { HuAudFXPlay(0x56B); @@ -2465,7 +2465,7 @@ void fn_1_9BC0(s32 arg0) { i++; } Hu3DModelPosSet(temp_r31->unk08, 0.0f, temp_r31->unk4C, temp_r31->unk50); - CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[0], 0.0f, 5.0f, 0x40000001); + CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); HuPrcSleep(10); for (i = 0; i < 9; i++) { temp_r31->unk58 -= 10.0f; @@ -2473,7 +2473,7 @@ void fn_1_9BC0(s32 arg0) { HuPrcVSleep(); } HuPrcSleep(20); - CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[3], 0.0f, 5.0f, 0); + CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[3], 0.0f, 5.0f, HU3D_MOTATTR_NONE); if (lbl_1_bss_E40 == 1) { var_f31 = -20.0f; } else { @@ -2537,8 +2537,8 @@ void fn_1_A120(s32 arg0) { temp_r31->unk4C -= var_f31; if (temp_r31->unk4C < 0.0f) { var_r29 = 1; - CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[4], 0.0f, 5.0f, 0); - Hu3DMotionShiftSet(temp_r31->unk20, temp_r31->unk22[4], 0.0f, 5.0f, 0); + CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + Hu3DMotionShiftSet(temp_r31->unk20, temp_r31->unk22[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); temp_r31->unk4C = 0.0f; break; } @@ -2558,12 +2558,12 @@ void fn_1_A120(s32 arg0) { while (!Hu3DMotionEndCheck(temp_r31->unk08)) { HuPrcVSleep(); } - CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[0], 0.0f, 5.0f, 0x40000001); + CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); HuPrcSleep(30); HuAudSStreamPlay(1); HuAudPlayerVoicePlay(temp_r31->unk34, 0x124); - CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[7], 0.0f, 5.0f, 0); - Hu3DMotionShiftSet(temp_r31->unk20, temp_r31->unk22[7], 0.0f, 5.0f, 0); + CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[7], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + Hu3DMotionShiftSet(temp_r31->unk20, temp_r31->unk22[7], 0.0f, 5.0f, HU3D_MOTATTR_NONE); HuPrcChildCreate(fn_1_A07C, 0x2000, 0x1000, 0, HuPrcCurrentGet()); } @@ -2586,7 +2586,7 @@ void fn_1_A4B4(s32 arg0) { temp_r31->unk4C -= var_f31; if (temp_r31->unk4C < 0.0f) { var_r29 = 1; - CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[2], 0.0f, 20.0f, 0x40000001); + CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[2], 0.0f, 20.0f, HU3D_MOTATTR_LOOP); temp_r31->unk4C = 0.0f; } } @@ -2598,14 +2598,14 @@ void fn_1_A4B4(s32 arg0) { Hu3DModelPosSet(temp_r31->unk08, temp_r31->unk48, temp_r31->unk4C, temp_r31->unk50); HuPrcVSleep(); } - CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[0], 0.0f, 5.0f, 0x40000001); + CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); for (i = 0; i < 30; i++) { temp_r31->unk58 += 6.0f; Hu3DModelRotSet(temp_r31->unk08, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C); HuPrcVSleep(); } HuAudSStreamPlay(1); - CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[8], 0.0f, 5.0f, 0); + CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[8], 0.0f, 5.0f, HU3D_MOTATTR_NONE); } void fn_1_A788(s32 arg0) { @@ -2631,7 +2631,7 @@ void fn_1_A788(s32 arg0) { temp_r31->unk4C -= var_f31; if (temp_r31->unk4C < 0.0f) { var_r28 = 1; - CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[2], 0.0f, 5.0f, 0x40000001U); + CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[2], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); temp_r31->unk4C = 0.0f; } } @@ -2644,14 +2644,14 @@ void fn_1_A788(s32 arg0) { Hu3DModelPosSet(temp_r31->unk08, temp_r31->unk48, temp_r31->unk4C, temp_r31->unk50); HuPrcVSleep(); } - CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[0], 0.0f, 5.0f, 0x40000001); + CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); HuPrcSleep(30); temp_f30 = (100.0f - temp_r31->unk48) / 30.0f; temp_f29 = -temp_r31->unk50 / 30.0f; var_f31 = 20.0f; - Hu3DMotionShiftSet(var_r29->unk00, var_r29->unk02[3], 0.0f, 5.0f, 0); + Hu3DMotionShiftSet(var_r29->unk00, var_r29->unk02[3], 0.0f, 5.0f, HU3D_MOTATTR_NONE); HuPrcSleep(10); - CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[6], 0.0f, 5.0f, 0); + CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[6], 0.0f, 5.0f, HU3D_MOTATTR_NONE); for (i = 0; i < 30; i++) { temp_r31->unk4C += var_f31; var_f31 -= 1.2f; diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c index a26e3040..63cafdee 100644 --- a/src/REL/m412Dll/main.c +++ b/src/REL/m412Dll/main.c @@ -850,8 +850,8 @@ loop_10: Hu3DModelPosSet(temp_r31->unk8, 0.0f, 0.0f, 0.0f); Hu3DModelHookSet(temp_r31->unk0, "itemhook", temp_r31->unk6); Hu3DModelHookSet(temp_r31->unk2, "itemhook", temp_r31->unk8); - Hu3DMotionShiftSet(temp_r31->unk0, temp_r31->unkC[2], 0.0f, 5.0f, 0); - Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unkC[2], 0.0f, 5.0f, 0); + Hu3DMotionShiftSet(temp_r31->unk0, temp_r31->unkC[2], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unkC[2], 0.0f, 5.0f, HU3D_MOTATTR_NONE); HuPrcSleep(10); while (Hu3DMotionTimeGet(temp_r31->unk0) < 18.0f) { HuPrcVSleep(); @@ -1002,8 +1002,8 @@ loop_1: Hu3DModelPosSet(temp_r31->unk8, 0.0f, 0.0f, 0.0f); Hu3DModelHookSet(temp_r31->unk0, "itemhook", temp_r31->unk6); Hu3DModelHookSet(temp_r31->unk2, "itemhook", temp_r31->unk8); - Hu3DMotionShiftSet(temp_r31->unk0, temp_r31->unkC[2], 0.0f, 5.0f, 0); - Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk16[2], 0.0f, 5.0f, 0); + Hu3DMotionShiftSet(temp_r31->unk0, temp_r31->unkC[2], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk16[2], 0.0f, 5.0f, HU3D_MOTATTR_NONE); HuPrcSleep(10); while (Hu3DMotionEndCheck(temp_r31->unk0) == 0) { @@ -1044,8 +1044,8 @@ loop_1: HuPrcVSleep(); } HuPrcSleep(30); - Hu3DMotionShiftSet(temp_r31->unk0, temp_r31->unkC[4], 0.0f, 5.0f, 0); - Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk16[4], 0.0f, 5.0f, 0); + Hu3DMotionShiftSet(temp_r31->unk0, temp_r31->unkC[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk16[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); HuPrcSleep(10); while (Hu3DMotionTimeGet(temp_r31->unk0) < 24.0f) { @@ -1649,14 +1649,14 @@ loop_6: if (temp_r31->unk60.z >= 8.0f) { if (temp_r31->unk30 != 2) { temp_r31->unk30 = 2; - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[2], 0.0f, 8.0f, 0x40000001U); - Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[2], 0.0f, 8.0f, 0x40000001U); + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } } else if (temp_r31->unk30 != 1) { temp_r31->unk30 = 1; - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[1], 0.0f, 8.0f, 0x40000001U); - Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[1], 0.0f, 8.0f, 0x40000001U); + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } temp_r31->unk7C.x += 0.1f * sp1A0.x; temp_r31->unk7C.z += 0.1f * sp1A0.z; @@ -1765,8 +1765,8 @@ loop_6: HuPrcVSleep(); } case 4: - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[0], 0.0f, 5.0f, 0x40000001U); - Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[0], 0.0f, 5.0f, 0x40000001); + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); var_r27 = 30; sp12C = fn_1_27C4(var_r27, lbl_1_bss_778, temp_r31->unk54.y); @@ -1779,8 +1779,8 @@ loop_6: while (lbl_1_bss_794 < 5) { HuPrcVSleep(); } - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[5], 0.0f, 5.0f, 0U); - Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[5], 0.0f, 5.0f, 0); + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[5], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[5], 0.0f, 5.0f, HU3D_MOTATTR_NONE); while (1) { HuPrcVSleep(); @@ -2053,8 +2053,8 @@ void fn_1_ADC8(void) if (var_f31 == 90.0f) { for (var_r31 = 0; var_r31 < 4; var_r31++) { temp_r30 = &lbl_1_bss_4D4[var_r31]; - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[var_r31].character], temp_r30->unkC[3], 0.0f, 5.0f, 0U); - Hu3DMotionShiftSet(temp_r30->unk2, temp_r30->unk18[3], 0.0f, 5.0f, 0U); + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[var_r31].character], temp_r30->unkC[3], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + Hu3DMotionShiftSet(temp_r30->unk2, temp_r30->unk18[3], 0.0f, 5.0f, HU3D_MOTATTR_NONE); } } HuPrcVSleep(); @@ -2064,8 +2064,8 @@ void fn_1_ADC8(void) for (var_r31 = 0; var_r31 < 4; var_r31++) { temp_r30 = &lbl_1_bss_4D4[var_r31]; HuAudPlayerVoicePlay(temp_r30->unk24, 0x128); - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[var_r31].character], temp_r30->unkC[4], 0.0f, 5.0f, 0U); - Hu3DMotionShiftSet(temp_r30->unk2, temp_r30->unk18[4], 0.0f, 5.0f, 0U); + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[var_r31].character], temp_r30->unkC[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + Hu3DMotionShiftSet(temp_r30->unk2, temp_r30->unk18[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); } } diff --git a/src/REL/m414Dll/main.c b/src/REL/m414Dll/main.c index 777e8458..708e82d9 100644 --- a/src/REL/m414Dll/main.c +++ b/src/REL/m414Dll/main.c @@ -1184,9 +1184,9 @@ void fn_1_42AC(void) } CharModelMotionSpeedSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], 1.0f); if (var_r30->unk_08) { - CharModelMotionShiftSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[1], 60.0f, 5.0f, 0); + CharModelMotionShiftSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[1], 60.0f, 5.0f, HU3D_MOTATTR_NONE); } else { - CharModelMotionShiftSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[1], 0.0f, 5.0f, 0); + CharModelMotionShiftSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[1], 0.0f, 5.0f, HU3D_MOTATTR_NONE); } HuPrcSleep(5); Hu3DModelAttrSet(var_r31->unk_12, 0x40000002); @@ -1981,7 +1981,7 @@ void fn_1_79A8(void) CharModelMotionSpeedSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], 1.0f); for (var_r30 = 0; var_r30 < 4; var_r30++) { var_r31 = &lbl_1_bss_F0[var_r30]; - CharModelMotionShiftSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[1], 0.0f, 5.0f, 0); + CharModelMotionShiftSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[1], 0.0f, 5.0f, HU3D_MOTATTR_NONE); } HuPrcSleep(5); for (var_r30 = 0; var_r30 < 4; var_r30++) { @@ -2084,7 +2084,7 @@ void fn_1_7FC8(s32 arg0) HuAudFXPlay(lbl_1_data_8C[lbl_1_bss_978]); for (var_r29 = 0; var_r29 < 4; var_r29++) { var_r31 = &lbl_1_bss_F0[var_r29]; - CharModelMotionShiftSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[0], 0.0f, 5.0f, 0x40000001); + CharModelMotionShiftSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); } HuPrcSleep(5); for (var_r29 = 0; var_r29 < 4; var_r29++) { diff --git a/src/REL/m415Dll/main.c b/src/REL/m415Dll/main.c index 6863e2b5..c4c917d7 100644 --- a/src/REL/m415Dll/main.c +++ b/src/REL/m415Dll/main.c @@ -1061,7 +1061,7 @@ void fn_1_3B44(omObjData* object) { CharModelMotionShiftSet(temp_r31->unk1, object->motion[temp_r31->unk18], 0.0f, 8.0f, var_r28); temp_r31->unk28 = CharModelMotionMaxTimeGet(temp_r31->unk1); if (var_r25 != 0) { - Hu3DMotionShiftSet(object->model[2], object->model[var_r25], 0.0f, 8.0f, 0); + Hu3DMotionShiftSet(object->model[2], object->model[var_r25], 0.0f, 8.0f, HU3D_MOTATTR_NONE); } } if ((Hu3DModelAttrGet(object->model[2]) & 1) != 0) { diff --git a/src/REL/m416Dll/main.c b/src/REL/m416Dll/main.c index af9d25ab..0f35575a 100644 --- a/src/REL/m416Dll/main.c +++ b/src/REL/m416Dll/main.c @@ -457,7 +457,7 @@ void fn_1_156C(omObjData *object) work->field_0_bit4 = 1; work->unk28 = 0; work->unk2C = -1; - work->unk34 = 0; + work->unk34 = HU3D_MOTATTR_NONE; work->unk38 = 50; if (!work->unk10) { fn_1_1964(object); @@ -659,12 +659,12 @@ void fn_1_1D84(omObjData *object) else { temp_r29 = 2; } - temp_r28 = 0x40000001; + temp_r28 = HU3D_MOTATTR_LOOP; } else { temp_r31->unk1C.x = temp_r31->unk1C.z = 0; temp_r29 = 0; - temp_r28 = 0x40000001; + temp_r28 = HU3D_MOTATTR_LOOP; } object->trans.x += temp_r31->unk1C.x; object->trans.z += temp_r31->unk1C.z; @@ -686,7 +686,7 @@ void fn_1_1D84(omObjData *object) else { temp_r29 = 0; } - temp_r28 = 0x40000001; + temp_r28 = HU3D_MOTATTR_LOOP; break; case 2: @@ -698,7 +698,7 @@ void fn_1_1D84(omObjData *object) temp_f28 = VECMag(&sp34); if (temp_f28 < 20 || temp_r31->unk40 == 0) { temp_r29 = 5; - temp_r28 = 0x40000001; + temp_r28 = HU3D_MOTATTR_LOOP; object->rot.y = fn_1_1C80(object->rot.y, 0, 0.2f); temp_r31->field_0_bit3 = 1; } @@ -730,7 +730,7 @@ void fn_1_1D84(omObjData *object) object->trans.x += temp_r31->unk1C.x; object->trans.z += temp_r31->unk1C.z; temp_r29 = 8; - temp_r28 = 0x40000001; + temp_r28 = HU3D_MOTATTR_LOOP; } if (temp_r31->unk40) { temp_r31->unk40--; @@ -741,7 +741,7 @@ void fn_1_1D84(omObjData *object) case 3: if (fn_1_1240() < 10) { temp_r29 = 0; - temp_r28 = 0x40000001; + temp_r28 = HU3D_MOTATTR_LOOP; } else { if ((!temp_r31->unk10 && lbl_1_bss_924 < 0) || (temp_r31->unk10 && lbl_1_bss_924 >= 0)) { @@ -750,7 +750,7 @@ void fn_1_1D84(omObjData *object) else { temp_r29 = 7; } - temp_r28 = 0; + temp_r28 = HU3D_MOTATTR_NONE; object->rot.y = fn_1_1C80(object->rot.y, 0, 0.2f); Hu3DModelAttrReset(object->model[0], 0x40000001); } @@ -820,7 +820,7 @@ void fn_1_29DC(omObjData *object) temp_r31->field_0_bit0 = 0; temp_r31->field_0_bit1 = 1; temp_r31->unk2C = 3; - temp_r31->unk34 = 0; + temp_r31->unk34 = HU3D_MOTATTR_NONE; temp_r31->unk46 = 60; temp_r31->unk60 = 30; omVibrate(temp_r31->unk02, 12, 6, 6); @@ -889,7 +889,7 @@ void fn_1_2EA4(omObjData *object) temp_r30->unk50 = 1; temp_r30->unk60 = 15; temp_r30->unk2C = 3; - temp_r30->unk34 = 0; + temp_r30->unk34 = HU3D_MOTATTR_NONE; HuAudFXEmiterPlay(1465, &object->trans); } break; @@ -926,7 +926,7 @@ void fn_1_2EA4(omObjData *object) case 2: if (--temp_r30->unk60 == 0) { temp_r30->unk2C = 4; - temp_r30->unk34 = 0; + temp_r30->unk34 = HU3D_MOTATTR_NONE; temp_r29->field_0_bit0 = 0; temp_r30->unk50 = 3; temp_r30->unk60 = 30; diff --git a/src/REL/m417Dll/player.c b/src/REL/m417Dll/player.c index 848dd784..cc740d0e 100644 --- a/src/REL/m417Dll/player.c +++ b/src/REL/m417Dll/player.c @@ -143,17 +143,17 @@ u32 lbl_1_data_90[11][3] = { }; UnkM417Struct8 lbl_1_data_114[11] = { - { 0, 0.2f, 0.0f, -1.0f, 0x40000001 }, - { 1, 0.2f, 0.0f, -1.0f, 0 }, - { 2, 0.2f, 0.0f, -1.0f, 0 }, - { 3, 0.2f, 0.0f, -1.0f, 0x40000001 }, - { 4, 0.2f, 0.0f, -1.0f, 0x40000001 }, - { 5, 0.5f, 0.0f, -1.0f, 0 }, - { 6, 0.2f, 0.0f, -1.0f, 0x40000001 }, - { 7, 0.03f, 0.0f, -1.0f, 0 }, - { 8, 0.0f, 0.0f, -1.0f, 0 }, - { 9, 0.2f, 0.0f, -1.0f, 0 }, - { 10, 0.0f, 0.0f, -1.0f, 0 }, + { 0, 0.2f, 0.0f, -1.0f, HU3D_MOTATTR_LOOP }, + { 1, 0.2f, 0.0f, -1.0f, HU3D_MOTATTR_NONE }, + { 2, 0.2f, 0.0f, -1.0f, HU3D_MOTATTR_NONE }, + { 3, 0.2f, 0.0f, -1.0f, HU3D_MOTATTR_LOOP }, + { 4, 0.2f, 0.0f, -1.0f, HU3D_MOTATTR_LOOP }, + { 5, 0.5f, 0.0f, -1.0f, HU3D_MOTATTR_NONE }, + { 6, 0.2f, 0.0f, -1.0f, HU3D_MOTATTR_LOOP }, + { 7, 0.03f, 0.0f, -1.0f, HU3D_MOTATTR_NONE }, + { 8, 0.0f, 0.0f, -1.0f, HU3D_MOTATTR_NONE }, + { 9, 0.2f, 0.0f, -1.0f, HU3D_MOTATTR_NONE }, + { 10, 0.0f, 0.0f, -1.0f, HU3D_MOTATTR_NONE }, }; s32 lbl_1_bss_8AC; // unused diff --git a/src/REL/m426Dll/main.c b/src/REL/m426Dll/main.c index 40b4e7f6..58c19263 100644 --- a/src/REL/m426Dll/main.c +++ b/src/REL/m426Dll/main.c @@ -894,10 +894,10 @@ void fn_1_16F8(omObjData *object) if (var_r26 != var_r31->unk_28) { var_r31->unk_28 = var_r26; if (var_r26 == 3) { - CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0); + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, HU3D_MOTATTR_NONE); } else { - CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0x40000001); + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } } if (var_r31->unk_94 == -1) { @@ -970,7 +970,7 @@ void fn_1_16F8(omObjData *object) var_r31->unk_2C = 0; var_r31->unk_24 = 2; var_r31->unk_28 = 9; - CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 8.0f, 8.0f, 0); + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 8.0f, 8.0f, HU3D_MOTATTR_NONE); } } else if (sp10 & 256) { @@ -998,7 +998,7 @@ void fn_1_16F8(omObjData *object) var_r31->unk_24 = 0; var_r31->unk_2C = 0; var_r31->unk_28 = 8; - CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0x40000001); + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } break; case 3: @@ -1037,7 +1037,7 @@ void fn_1_16F8(omObjData *object) var_r31->unk_2C = 0; HuAudCharVoicePlay(var_r31->unk_0C, 281); var_r31->unk_28 = 6; - CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0x40000001); + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } break; case 6: @@ -1049,12 +1049,12 @@ void fn_1_16F8(omObjData *object) } else if (var_r31->unk_2C == 60.0f) { var_r31->unk_28 = 7; - CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0); + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, HU3D_MOTATTR_NONE); } else if (var_r31->unk_2C >= 90.0f) { var_r31->unk_24 = 7; var_r31->unk_28 = 8; - CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0x40000001); + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } break; case 7: @@ -1090,7 +1090,7 @@ void fn_1_16F8(omObjData *object) } if (var_r26 != var_r31->unk_28) { var_r31->unk_28 = var_r26; - CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, 0); + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, HU3D_MOTATTR_NONE); } break; } @@ -1280,7 +1280,7 @@ void fn_1_2B74(Vec *arg0) } var_r31->unk_9C.y = 45.5f; var_r31->unk_28 = 5; - CharModelMotionShiftSet(var_r31->unk_0C, var_r30->motion[var_r31->unk_28], 0.0f, 8.0f, 0); + CharModelMotionShiftSet(var_r31->unk_0C, var_r30->motion[var_r31->unk_28], 0.0f, 8.0f, HU3D_MOTATTR_NONE); spC.x = var_r30->trans.x; spC.y = var_r30->trans.y; spC.z = var_r30->trans.z; @@ -2003,7 +2003,7 @@ void fn_1_5134(omObjData *object) if (lbl_1_bss_3C) { var_r31->unk_30 = 0; var_r31->unk_28 = 3; - Hu3DMotionShiftSet(var_r31->unk_00, var_r31->unk_0C, 0.0f, 8.0f, 0x40000001); + Hu3DMotionShiftSet(var_r31->unk_00, var_r31->unk_0C, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } else { var_r31->unk_48 = fn_1_770C(0.0f, var_r31->unk_48, 10.0f); @@ -2033,7 +2033,7 @@ void fn_1_5134(omObjData *object) } Hu3DMotionSpeedSet(var_r31->unk_00, 1.4f * (0.33333334f * var_r31->unk_34)); if (lbl_1_bss_3C == 0) { - Hu3DMotionShiftSet(var_r31->unk_00, var_r31->unk_08, 0.0f, 8.0f, 1073741825); + Hu3DMotionShiftSet(var_r31->unk_00, var_r31->unk_08, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); var_r31->unk_2C = 0; var_r31->unk_30 = 0; var_r31->unk_28 = 2; diff --git a/src/REL/m429Dll/main.c b/src/REL/m429Dll/main.c index 8d48fad7..ba063799 100644 --- a/src/REL/m429Dll/main.c +++ b/src/REL/m429Dll/main.c @@ -1332,7 +1332,7 @@ void fn_1_40C0(Work8F68 *arg0, omObjData *arg1, s32 arg2) s32 temp_r29; if (arg2 >= 0 && arg0->unkA8 != arg2) { arg0->unkA8 = arg2; - Hu3DMotionShiftSet(arg1->model[0], arg1->motion[arg0->unkA8], 0, 8, 0x40000001); + Hu3DMotionShiftSet(arg1->model[0], arg1->motion[arg0->unkA8], 0, 8, HU3D_MOTATTR_LOOP); temp_r29 = -1; temp_f31 = 1; if (arg0->unkA4 == 1) { @@ -1476,12 +1476,12 @@ void fn_1_50AC(Work8F68 *arg0, omObjData *arg1) Hu3DModelAttrReset(arg1->model[0], 0x40000001); if (!arg0->unkA4) { arg0->unkA8 = 5; - Hu3DMotionShiftSet(arg1->model[0], arg1->motion[5], 0, 10, 0); + Hu3DMotionShiftSet(arg1->model[0], arg1->motion[5], 0, 10, HU3D_MOTATTR_NONE); HuAudFXPlay(1642); } else { arg0->unkA8 = 6; - Hu3DMotionShiftSet(arg1->model[0], arg1->motion[6], 0, 10, 0); + Hu3DMotionShiftSet(arg1->model[0], arg1->motion[6], 0, 10, HU3D_MOTATTR_NONE); HuAudFXPlay(1643); } temp_r27 = lbl_1_bss_1A0[arg0->unkA0]; @@ -1929,13 +1929,13 @@ void fn_1_7D38(omObjData *object) } else { temp_r31->unk9C = 2008; - Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, 0); + Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, HU3D_MOTATTR_NONE); } } if (lbl_1_bss_1AC->work[0] == 1012) { temp_r31->unk9C = 2008; Hu3DMotionOverlayReset(object->model[0]); - Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, 0); + Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, HU3D_MOTATTR_NONE); } if (temp_r31->unk9C == 2008 && temp_r31->unkA0 >= 0) { Hu3DModelAttrSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], 1); @@ -2021,7 +2021,7 @@ void fn_1_7D38(omObjData *object) if ((temp_r31->unk110 & 0x1) < lbl_1_bss_20) { temp_r31->unk9C = 2008; Hu3DModelAttrReset(object->model[0], 0x40000004); - Hu3DMotionShiftSet(object->model[0], object->motion[3], 0, 8, 0); + Hu3DMotionShiftSet(object->model[0], object->motion[3], 0, 8, HU3D_MOTATTR_NONE); } break; diff --git a/src/REL/m431Dll/main.c b/src/REL/m431Dll/main.c index e95d89b0..6fe47c0a 100644 --- a/src/REL/m431Dll/main.c +++ b/src/REL/m431Dll/main.c @@ -1570,14 +1570,14 @@ void fn_1_5708(void) switch (temp_r31->unk10) { case 0: if (temp_r30->unk_08 != lbl_1_bss_2C->motion[0]) { - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[0], 0, 8, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[0], 0, 8, HU3D_MOTATTR_LOOP); } break; case 1: if (temp_r31->unk12 == 0) { temp_r31->unk12 = 1; - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[1], 0, 8, 0); + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[1], 0, 8, HU3D_MOTATTR_NONE); } else { if (temp_r30->unk_0C == -1) { @@ -1593,7 +1593,7 @@ void fn_1_5708(void) case 2: if (temp_r31->unk12 == 0) { temp_r31->unk12 = 1; - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[5], 0, 8, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[5], 0, 8, HU3D_MOTATTR_LOOP); } else { if (temp_r29->unkA < 180) { @@ -1606,7 +1606,7 @@ void fn_1_5708(void) case 3: if (temp_r31->unk12 == 0) { temp_r31->unk12 = 1; - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[2], 0, 8, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[2], 0, 8, HU3D_MOTATTR_LOOP); } else { if (temp_r30->unk_0C == -1) { @@ -1623,7 +1623,7 @@ void fn_1_5708(void) case 4: if (temp_r31->unk12 == 0) { temp_r31->unk12 = 1; - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[3], 0, 8, 0); + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[3], 0, 8, HU3D_MOTATTR_NONE); } else { if (temp_r30->unk_0C == -1) { @@ -1638,7 +1638,7 @@ void fn_1_5708(void) case 5: if (temp_r31->unk12 == 0) { temp_r31->unk12 = 1; - Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[6], 0, 8, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[6], 0, 8, HU3D_MOTATTR_LOOP); } break; } diff --git a/src/REL/m431Dll/object.c b/src/REL/m431Dll/object.c index 77dea701..59a2959c 100644 --- a/src/REL/m431Dll/object.c +++ b/src/REL/m431Dll/object.c @@ -1185,15 +1185,15 @@ void fn_1_B18C(omObjData *object) Hu3DModelAttrReset(object->model[0], 0x40000007); switch(temp_r31->unk0 & 0xC) { case 0: - temp_r28 = 0x40000002; + temp_r28 = HU3D_MOTATTR_PAUSE; break; case 4: - temp_r28 = 0; + temp_r28 = HU3D_MOTATTR_NONE; break; case 8: - temp_r28 = 0x40000001; + temp_r28 = HU3D_MOTATTR_LOOP; break; } if(temp_r31->unk0 & 0x2) { diff --git a/src/REL/m434Dll/player.c b/src/REL/m434Dll/player.c index 7d1988e9..71814f12 100644 --- a/src/REL/m434Dll/player.c +++ b/src/REL/m434Dll/player.c @@ -69,15 +69,15 @@ u32 lbl_1_data_1FC[10] = { }; Data224Struct lbl_1_data_224[9] = { - { 0, 4, 12, 0, 0x40000001 }, - { 1, 6, 6, 0, 0x40000001 }, - { 0, 8, 6, 0, 0 }, - { 0, 5, 6, 0, 0x40000001 }, - { 1, 5, 6, 0, 0x40000001 }, - { 0, 8, 6, 30, 0 }, - { 0, 9, 6, 0, 0 }, - { 2, 0, 12, 0, 0 }, - { 3, 0, 12, 0, 0 }, + { 0, 4, 12, 0, HU3D_MOTATTR_LOOP }, + { 1, 6, 6, 0, HU3D_MOTATTR_LOOP }, + { 0, 8, 6, 0, HU3D_MOTATTR_NONE }, + { 0, 5, 6, 0, HU3D_MOTATTR_LOOP }, + { 1, 5, 6, 0, HU3D_MOTATTR_LOOP }, + { 0, 8, 6, 30, HU3D_MOTATTR_NONE }, + { 0, 9, 6, 0, HU3D_MOTATTR_NONE }, + { 2, 0, 12, 0, HU3D_MOTATTR_NONE }, + { 3, 0, 12, 0, HU3D_MOTATTR_NONE }, }; void fn_1_4988(omObjData *object); diff --git a/src/REL/m437Dll/sequence.c b/src/REL/m437Dll/sequence.c index df17ce31..9159a819 100755 --- a/src/REL/m437Dll/sequence.c +++ b/src/REL/m437Dll/sequence.c @@ -162,13 +162,13 @@ s32 fn_1_11890(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { void fn_1_119A0(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { switch (arg4) { case 0: - Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0); + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_NONE); break; case 1: - Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000001); + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_LOOP); break; case 2: - Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000002); + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_PAUSE); break; } } @@ -228,14 +228,14 @@ s32 fn_1_11CE0(omObjData* arg0, Vec arg1, float arg2, float arg3, float arg4, fl if (var_f27 > 0.0f) { if (arg6 == 1 || arg6 == 3) { if (arg0->motion[1] != Hu3DMotionIDGet(arg0->model[0]) && arg0->motion[1] != Hu3DMotionShiftIDGet(arg0->model[0])) { - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[1], 0.0f, 10.0f, 0x40000001); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[1], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); } } else if (arg0->motion[10] != Hu3DMotionIDGet(arg0->model[0]) && arg0->motion[10] != Hu3DMotionShiftIDGet(arg0->model[0])) { - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[10], 0.0f, 10.0f, 0x40000001); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[10], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); } } else { if (arg0->motion[0] != Hu3DMotionIDGet(arg0->model[0]) && arg0->motion[0] != Hu3DMotionShiftIDGet(arg0->model[0])) { - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 10.0f, 0x40000001); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); } return 1; } diff --git a/src/REL/m439Dll/main.c b/src/REL/m439Dll/main.c index cb684c5b..dbc4a59b 100644 --- a/src/REL/m439Dll/main.c +++ b/src/REL/m439Dll/main.c @@ -436,7 +436,7 @@ void fn_1_D0C(omObjData *object) } Hu3DModelCameraSet(object->model[0], lbl_1_data_75E0[work->unk2]); work->unk2C = 0; - work->unk30 = 0x40000001; + work->unk30 = HU3D_MOTATTR_LOOP; for (i = 0; i < 7; i++) { object->motion[i] = CharModelMotionCreate(work->unkC, lbl_1_data_7694[i]); } @@ -964,7 +964,7 @@ void fn_1_2C84(omObjData *object) object->trans.y = 100 + (-2000.0f * (temp_f28 - 0.1f)) * (temp_f28 - 0.1f); object->trans.z = temp_r31->unk50.z + (temp_f28 * (temp_r31->unk5C.z - temp_r31->unk50.z)); temp_r28 = 3; - temp_r26 = 0; + temp_r26 = HU3D_MOTATTR_NONE; break; case 2: @@ -974,7 +974,7 @@ void fn_1_2C84(omObjData *object) object->trans.y = temp_r27->trans.y - 150; object->trans.z = temp_r27->trans.z; temp_r28 = 4; - temp_r26 = 0; + temp_r26 = HU3D_MOTATTR_NONE; } else { if (temp_r31->unk3E) { @@ -985,7 +985,7 @@ void fn_1_2C84(omObjData *object) object->trans.y = temp_r31->unk74.y - (temp_f28 * (temp_r31->unk74.y - temp_r31->unk68.y)); object->trans.z = temp_r31->unk74.z - (temp_f28 * (temp_r31->unk74.z - temp_r31->unk68.z)); temp_r28 = 0; - temp_r26 = 0x40000001; + temp_r26 = HU3D_MOTATTR_LOOP; } break; } @@ -1042,20 +1042,20 @@ void fn_1_3C1C(omObjData *object) object->rot.y = fn_1_1024(object->rot.y, 180.0f, 0.2f); temp_r29 = 1; temp_f29 = 1.0f; - temp_r28 = 0x40000001; + temp_r28 = HU3D_MOTATTR_LOOP; break; case 1: if (fn_1_374() >= 9) { temp_r29 = (temp_r31->unk0_field8) ? 5 : 6; temp_f29 = 1.0f; - temp_r28 = 0; + temp_r28 = HU3D_MOTATTR_NONE; } else { object->rot.y = fn_1_1024(object->rot.y, 0.0f, 0.2f); temp_r29 = 0; temp_f29 = 1.0f; - temp_r28 = 0x40000001; + temp_r28 = HU3D_MOTATTR_LOOP; } break; @@ -1065,7 +1065,7 @@ void fn_1_3C1C(omObjData *object) } temp_r29 = 0; temp_f29 = 1.0f; - temp_r28 = 0x40000001; + temp_r28 = HU3D_MOTATTR_LOOP; break; } if (temp_r31->unk0_field0) { diff --git a/src/REL/m440Dll/main.c b/src/REL/m440Dll/main.c index 85f9bd0b..0169ada7 100644 --- a/src/REL/m440Dll/main.c +++ b/src/REL/m440Dll/main.c @@ -315,7 +315,7 @@ u8 fn_1_1138(omObjData *object) switch (lbl_1_bss_6) { case 0: if (lbl_1_bss_8 == 0) { - Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[1], 0.0f, 7.0f, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[1], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); temp_r30->unk40 = temp_r30->unk34; } lbl_1_bss_8++; @@ -324,7 +324,7 @@ u8 fn_1_1138(omObjData *object) var_f30 = 1.0f; if (lbl_1_bss_B == 0) { lbl_1_bss_B = 1; - Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[0], 0.0f, 7.0f, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[0], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); } } temp_r30->unk34 = (temp_r30->unk40 + (var_f30 * (360.0f - temp_r30->unk40))); @@ -351,7 +351,7 @@ u8 fn_1_1138(omObjData *object) } break; case 1: - Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[5], 0.0f, 7.0f, 0); + Hu3DMotionShiftSet(lbl_1_bss_C0[temp_r29]->model[0], lbl_1_bss_C0[temp_r29]->motion[5], 0.0f, 7.0f, HU3D_MOTATTR_NONE); HuAudSStreamPlay(1); lbl_1_bss_6++; lbl_1_bss_8 = 0; diff --git a/src/REL/m440Dll/object.c b/src/REL/m440Dll/object.c index afeb8fe7..afc791c7 100644 --- a/src/REL/m440Dll/object.c +++ b/src/REL/m440Dll/object.c @@ -165,7 +165,7 @@ void fn_1_B3A4(omObjData* arg0) { fn_1_F228(); } else { fn_1_F4D4(var_r31, 15, 7); - Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[1], 0.0f, 7.0f, 0x40000001); + Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[1], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); } } var_r28 = (var_r31->unkA == -1) ? 0 : var_r31->unkA; @@ -186,7 +186,7 @@ void fn_1_B3A4(omObjData* arg0) { var_f31 = 1.0f; var_r31->unkC = 0; fn_1_F4D4(var_r31, 15, 8); - Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[0], 0.0f, 7.0f, 0x40000001); + Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[0], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); } var_r31->unk30.y = 90.0f + (lbl_1_data_21C[var_r31->unkA] - 90.0f) * var_f31; var_r31->unk3C = var_r31->unk30; @@ -323,7 +323,7 @@ void fn_1_B884(omObjData* arg0, unkObjStruct* arg1) { var_f31 = 1.0f; arg1->unkC = arg1->unkE = 0; lbl_1_bss_74++; - Hu3DMotionShiftSet(*arg0->model, *arg0->motion, 0.0f, 7.0f, 0x40000001U); + Hu3DMotionShiftSet(*arg0->model, *arg0->motion, 0.0f, 7.0f, HU3D_MOTATTR_LOOP); } var_f30 = 90.0f - lbl_1_data_0[arg1->unk60]; @@ -550,12 +550,12 @@ void fn_1_C944(omObjData* arg0, unkObjStruct* arg1) { arg1->unkC = arg1->unkE; var_f28 = 1.0f; if ((arg1->unk48 & 4) != 0) { - fn_1_ED88(arg0, 0, 0x40000001); + fn_1_ED88(arg0, 0, HU3D_MOTATTR_LOOP); } else { - fn_1_ED88(arg0, 2, 0x40000001); + fn_1_ED88(arg0, 2, HU3D_MOTATTR_LOOP); } } else { - fn_1_ED88(arg0, 2, 0x40000001); + fn_1_ED88(arg0, 2, HU3D_MOTATTR_LOOP); } if ((arg1->unk48 & 4) != 0) { arg1->unk30.y = fn_1_927C(arg1->unk6C, arg1->unk70, var_f28); @@ -664,14 +664,14 @@ void fn_1_D34C(omObjData* arg0, unkObjStruct* arg1) { temp_f30 = HuPadTrigR[arg1->unk6]; if ((temp_r30->unk_0C == -1) && (temp_r30->unk_08 == arg0->motion[0]) && ((arg1->unk48 & 8) == 0) && (temp_f30 > 10.0f)) { arg1->unk48 |= 8; - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[3], 0.0f, 7.0f, 0U); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[3], 0.0f, 7.0f, HU3D_MOTATTR_NONE); } if ((arg1->unk48 & 8) != 0) { if (temp_f30 <= 10.0f) { fn_1_4E00(arg1->unk4A, -1.0f); arg1->unk48 &= ~8; temp_r30->unk_68 = 1.0f; - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 7.0f, 0x40000001U); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); } else if (temp_f30 > 10.0f) { if ((HuPadBtn[arg1->unk6] & 0x20) != 0) { arg1->unk60 = 0; @@ -770,9 +770,9 @@ void fn_1_D7F8(omObjData* arg0, unkObjStruct* arg1) { arg1->unkC = 0; Hu3DMotionSpeedSet(arg0->model[0], 2.0f); if ((arg1->unk6C - arg1->unk68) > 0.0f) { - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[7], 64.0f, 7.0f, 0U); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[7], 64.0f, 7.0f, HU3D_MOTATTR_NONE); } else { - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[7], 4.0f, 7.0f, 0U); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[7], 4.0f, 7.0f, HU3D_MOTATTR_NONE); } Hu3DMotionShiftSpeedSet(arg0->model[0], 2.0f); arg1->unk60++; @@ -786,7 +786,7 @@ void fn_1_D7F8(omObjData* arg0, unkObjStruct* arg1) { if (var_f31 >= 1.0f) { arg1->unkC = 0; var_f31 = 1.0f; - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 7.0f, 0x40000001U); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); arg1->unk60++; } else if (((arg1->unk6C - arg1->unk68) < 0.0f) && (Hu3DMotionShiftIDGet(arg0->model[0]) < 0)) { if (Hu3DMotionTimeGet(arg0->model[0]) >= 60.0f) { @@ -842,13 +842,13 @@ void fn_1_E034(omObjData* arg0, unkObjStruct* arg1) { switch (arg1->unk60) { case 0: lbl_1_bss_84 = lbl_1_data_0[arg1->unk4A]; - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[4], 0.0f, 7.0f, 0x40000001); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[4], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); HuAudCharVoicePlay(arg1->unk8, 0x125); arg1->unk60++; break; case 1: if (temp_r27->unk_64 >= (Hu3DMotionMaxTimeGet(arg0->model[0]) - 1.0f)) { - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[2], 0.0f, 7.0f, 0x40000001U); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[2], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); arg1->unkC = arg1->unkE = 0; arg1->unk68 = arg1->unk30.y; @@ -960,13 +960,13 @@ u8 fn_1_E8AC(omObjData* arg0, unkObjStruct* arg1) { switch (arg1->unk60) { case 0: lbl_1_bss_70 = 0; - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[6], 0.0f, 7.0f, 0); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[6], 0.0f, 7.0f, HU3D_MOTATTR_NONE); HuAudCharVoicePlay(arg1->unk8, 0x12E); arg1->unk60++; break; case 1: if (fn_1_4EA8(7U) == 5) { - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 7.0f, 0x40000001); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); arg1->unkC = 0; arg1->unk68 = arg1->unk30.y; var_f31 = lbl_1_data_0[arg1->unk4A]; @@ -1032,7 +1032,7 @@ void fn_1_EE78(void) { for (var_r31 = 0; var_r31 < 4; var_r31++) { var_r30 = (unkObjStruct*)lbl_1_bss_C0[var_r31]->data; if (fn_1_F4C0(var_r30, 15) == 8) { - Hu3DMotionShiftSet(lbl_1_bss_C0[var_r31]->model[0], lbl_1_bss_C0[var_r31]->motion[6], 0.0f, 7.0f, 0); + Hu3DMotionShiftSet(lbl_1_bss_C0[var_r31]->model[0], lbl_1_bss_C0[var_r31]->motion[6], 0.0f, 7.0f, HU3D_MOTATTR_NONE); } } } @@ -1049,7 +1049,7 @@ void fn_1_EF50(void) { var_r28 = Hu3DData[lbl_1_bss_C0[var_r31]->model[0]].unk_08; var_r29 = Hu3DData[lbl_1_bss_C0[var_r31]->model[0]].unk_0C; if ((var_r29 != lbl_1_bss_C0[var_r31]->motion[0]) && (var_r28 != lbl_1_bss_C0[var_r31]->motion[0])) { - Hu3DMotionShiftSet(lbl_1_bss_C0[var_r31]->model[0], lbl_1_bss_C0[var_r31]->motion[0], 0.0f, 7.0f, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_C0[var_r31]->model[0], lbl_1_bss_C0[var_r31]->motion[0], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); } } } @@ -1075,7 +1075,7 @@ void fn_1_F168(void) { temp_r31 = lbl_1_bss_C0[lbl_1_bss_B8[var_r30]]; var_r29 = (unkObjStruct*)temp_r31->data; fn_1_F4D4(var_r29, 15, 1); - Hu3DMotionShiftSet(temp_r31->model[0], temp_r31->motion[2], 0.0f, 7.0f, 0x40000001); + Hu3DMotionShiftSet(temp_r31->model[0], temp_r31->motion[2], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); } } @@ -1128,7 +1128,7 @@ void fn_1_F228(void) { fn_1_F4D4(temp_r31, 15, 1); } if (temp_r30->motion[2] != Hu3DData[temp_r30->model[0]].unk_08) { - Hu3DMotionShiftSet(temp_r30->model[0], temp_r30->motion[2], 0.0f, 7.0f, 0x40000001U); + Hu3DMotionShiftSet(temp_r30->model[0], temp_r30->motion[2], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); } } } diff --git a/src/REL/m441Dll/main.c b/src/REL/m441Dll/main.c index 3bee3e76..1bc97759 100644 --- a/src/REL/m441Dll/main.c +++ b/src/REL/m441Dll/main.c @@ -834,7 +834,7 @@ void fn_1_2BD4(Work53E8 *arg0, omObjData *arg1, s32 arg2) } if (temp_r29 >= 0 && arg0->unk9C != temp_r29) { arg0->unk9C = temp_r29; - Hu3DMotionShiftSet(arg1->model[0], arg1->motion[arg0->unk9C], 0, 8, 0x40000001); + Hu3DMotionShiftSet(arg1->model[0], arg1->motion[arg0->unk9C], 0, 8, HU3D_MOTATTR_LOOP); } } @@ -936,7 +936,7 @@ void fn_1_3C00(omObjData *object) if (work->unk98 == 2004 && lbl_1_bss_4C->work[0] >= 1005) { work->unk98 = 2007; work->unk64.x = 20; - Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 20, 0x40000001); + Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 20, HU3D_MOTATTR_LOOP); object->func = fn_1_40A8; return; } @@ -960,7 +960,7 @@ void fn_1_3C00(omObjData *object) work->unk64.x = 10; work->unkE4 = 0; Hu3DModelAttrReset(object->model[0], 0x40000001); - Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, 0); + Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, HU3D_MOTATTR_NONE); Hu3DMotionSet(object->model[1], object->motion[11]); HuAudFXEmiterPlay(1814, &work->unk4); } @@ -969,7 +969,7 @@ void fn_1_3C00(omObjData *object) work->unk64.x = 10; work->unkE4 = 0; Hu3DModelAttrReset(object->model[0], 0x40000001); - Hu3DMotionShiftSet(object->model[0], object->motion[5], 0, 8, 0); + Hu3DMotionShiftSet(object->model[0], object->motion[5], 0, 8, HU3D_MOTATTR_NONE); Hu3DMotionSet(object->model[1], object->motion[11]); HuAudFXEmiterPlay(1814, &work->unk4); } @@ -991,7 +991,7 @@ void fn_1_3C00(omObjData *object) if (240.0f < work->unkE4 || Hu3DMotionEndCheck(object->model[0])) { work->unk98 = 2004; work->unk9C = 1; - Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 8, 0x40000001); + Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 8, HU3D_MOTATTR_LOOP); } break; @@ -1032,7 +1032,7 @@ void fn_1_40A8(omObjData *object) work->unk98++; work->unk64.x = 10.0f; Hu3DModelAttrReset(object->model[0], 0x40000003); - Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 10, 0); + Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 10, HU3D_MOTATTR_NONE); Hu3DMotionSet(object->model[1], object->motion[11]); HuAudFXEmiterPlay(1814, &work->unk4); } @@ -1043,7 +1043,7 @@ void fn_1_40A8(omObjData *object) if (0.0f > work->unk64.x && Hu3DMotionEndCheck(object->model[0])) { work->unk98++; work->unk64.x = 10.0f; - Hu3DMotionShiftSet(object->model[0], object->motion[5], 0, 10, 0); + Hu3DMotionShiftSet(object->model[0], object->motion[5], 0, 10, HU3D_MOTATTR_NONE); Hu3DMotionSet(object->model[1], object->motion[11]); HuAudFXEmiterPlay(1814, &work->unk4); } @@ -1053,7 +1053,7 @@ void fn_1_40A8(omObjData *object) work->unk64.x--; if (0.0f > work->unk64.x && Hu3DMotionEndCheck(object->model[0])) { work->unk98++; - Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 10, 0x40000001); + Hu3DMotionShiftSet(object->model[0], object->motion[1], 0, 10, HU3D_MOTATTR_LOOP); } break; @@ -1140,14 +1140,14 @@ void fn_1_40A8(omObjData *object) if (8.0f > ABS(angle)) { work->unkA0 = 0; Hu3DModelPosSet(object->model[2], 0, 0, -10); - Hu3DMotionShiftSet(object->model[0], object->motion[6], 0, 4, 0x40000001); + Hu3DMotionShiftSet(object->model[0], object->motion[6], 0, 4, HU3D_MOTATTR_LOOP); } } if (lbl_1_bss_4C->work[0] == 1007) { work->unk98++; work->unk64.x = 10.0f; Hu3DModelAttrReset(object->model[0], 0x40000001); - Hu3DMotionShiftSet(object->model[0], object->motion[8], 0, 8, 0); + Hu3DMotionShiftSet(object->model[0], object->motion[8], 0, 8, HU3D_MOTATTR_NONE); work->unk64.y = -90; fn_1_40A8InlineFunc(&pos3D, work->unk4.x, 250, work->unk4.z); Hu3D3Dto2D(&pos3D, 1, &pos2D); @@ -1263,10 +1263,10 @@ void fn_1_40A8(omObjData *object) if (60.0f < work->unk64.x && work->unkC0 >= 0) { work->unk98++; if (work->unkC0 == 1) { - Hu3DMotionShiftSet(object->model[0], object->motion[9], 0, 20, 0); + Hu3DMotionShiftSet(object->model[0], object->motion[9], 0, 20, HU3D_MOTATTR_NONE); } else { - Hu3DMotionShiftSet(object->model[0], object->motion[10], 0, 20, 0); + Hu3DMotionShiftSet(object->model[0], object->motion[10], 0, 20, HU3D_MOTATTR_NONE); } } break; diff --git a/src/REL/m442Dll/main.c b/src/REL/m442Dll/main.c index adad58c8..2e05e637 100644 --- a/src/REL/m442Dll/main.c +++ b/src/REL/m442Dll/main.c @@ -883,7 +883,7 @@ void fn_1_2254(omObjData *object) var_r29 = 0; var_f28 = 1.0f; } - var_r28 = 0x40000001; + var_r28 = HU3D_MOTATTR_LOOP; object->trans.x += var_r31->unk_24.x; object->trans.z += var_r31->unk_24.z; fn_1_37B8(object); @@ -954,7 +954,7 @@ void fn_1_2254(omObjData *object) } var_r29 = 8; var_f28 = 1.0f; - var_r28 = 0; + var_r28 = HU3D_MOTATTR_NONE; object->trans.x += 0.2f * (var_r31->unk_4C - object->trans.x); object->trans.z += 0.2f * (var_r31->unk_54 - object->trans.z); object->rot.y = fn_1_85E8(object->rot.y, var_r31->unk_58, 0.2f); @@ -969,7 +969,7 @@ void fn_1_2254(omObjData *object) } var_r29 = 8; var_f28 = var_r31->unk_3C < (var_r31->unk_3E / 2) ? 0.0f : 1.0f; - var_r28 = 0; + var_r28 = HU3D_MOTATTR_NONE; object->trans.x += 0.2f * (var_r31->unk_4C - object->trans.x); object->trans.z += 0.2f * (var_r31->unk_54 - object->trans.z); object->rot.y = fn_1_85E8(object->rot.y, var_r31->unk_58, 0.2f); @@ -1295,14 +1295,14 @@ void fn_1_3C94(omObjData *object) if (var_r27 < 11) { var_r29 = 0; var_f31 = 1.0f; - var_r28 = 0x40000001; + var_r28 = HU3D_MOTATTR_LOOP; } else { object->rot.y = fn_1_85E8(object->rot.y, 0.0f, 0.2f); if (lbl_1_bss_11EE8 != 0) { var_r29 = 5; var_f31 = 1.0f; - var_r28 = 0; + var_r28 = HU3D_MOTATTR_NONE; if (var_r31->unk_3C != 0) { if (--var_r31->unk_3C == 0) { HuAudCharVoicePlay(var_r31->unk_10, 0x125); @@ -1312,7 +1312,7 @@ void fn_1_3C94(omObjData *object) else { var_r29 = 6; var_f31 = 1.0f; - var_r28 = 0; + var_r28 = HU3D_MOTATTR_NONE; } } if ((var_r29 >= 0 && var_r29 != var_r31->unk_30) || var_r28 != var_r31->unk_34) { diff --git a/src/REL/m444dll/main.c b/src/REL/m444dll/main.c index 2560908d..0c11669f 100644 --- a/src/REL/m444dll/main.c +++ b/src/REL/m444dll/main.c @@ -202,12 +202,12 @@ void fn_1_470(void) Hu3DModelRotSet(lbl_1_bss_2D0, 0, (-(temp_r29 / 20.0f)) * 120.0f, 0); } if (temp_r31 == 10) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[19], 0, 16, 0x40000001); - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 8, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[19], 0, 16, HU3D_MOTATTR_LOOP); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 8, HU3D_MOTATTR_LOOP); } HuPrcVSleep(); } - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 8, 0x40000001); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 8, HU3D_MOTATTR_LOOP); HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1C, 0x00)); temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); HuWinExAnimIn(temp_r30); @@ -218,7 +218,7 @@ void fn_1_470(void) HuWinExAnimOut(temp_r30); HuWinExCleanup(temp_r30); HuWinComKeyReset(); - Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[20], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[20], 0, 10, HU3D_MOTATTR_LOOP); for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) { HuPrcVSleep(); } @@ -243,7 +243,7 @@ void fn_1_470(void) Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, (30.0 * (1.0 - (temp_r29 / 20.0f))) + 60.0, 0); } if (temp_r31 == 50) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[23], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[23], 0, 10, HU3D_MOTATTR_LOOP); } if (temp_r31 > 40) { temp_r29 = temp_r31 - 40; @@ -265,21 +265,21 @@ void fn_1_470(void) HuWinComKeyReset(); Hu3DModelAttrReset(lbl_1_bss_199C2[11], 0x40000002); HuAudFXPlay(1854); - Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24], 0, 10, HU3D_MOTATTR_LOOP); for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { temp_f31 = temp_r31 / 20.0f; Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, (150.0f * temp_f31) + 30.0f, 0); HuPrcVSleep(); } - Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[23], 0, 10, 0x40000001); - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[23], 0, 10, HU3D_MOTATTR_LOOP); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, HU3D_MOTATTR_LOOP); for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { temp_f31 = temp_r31 / 20.0f; Hu3DModelRotSet(lbl_1_bss_2D0, 0, -120.0f - (60.0f * temp_f31), 0); HuPrcVSleep(); } HuAudFXPlay(1855); - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, HU3D_MOTATTR_LOOP); while (Hu3DMotionEndCheck(lbl_1_bss_199C2[11]) == 0) { HuPrcVSleep(); } @@ -294,7 +294,7 @@ void fn_1_470(void) Hu3DMotionTimeSet(lbl_1_bss_199C2[9], lbl_1_data_140[0]); Hu3DModelAttrSet(lbl_1_bss_199C2[9], 0x40000002); HuPrcSleep(20); - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 8, 0x40000001); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 8, HU3D_MOTATTR_LOOP); sp1C.x = 124; sp1C.y = 0; sp1C.z = -180; @@ -325,20 +325,20 @@ void fn_1_470(void) HuPrcSleep(40); Hu3DModelAttrSet(lbl_1_bss_199C2[64], 1); fn_1_8180(9); - Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24], 0, 10, HU3D_MOTATTR_LOOP); for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { if (temp_r31 <= 10) { Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, (90.0 * (temp_r31 / 10.0)) + 180.0, 0); } if (temp_r31 == 10) { - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, HU3D_MOTATTR_LOOP); } if (temp_r31 > 10 && temp_r31 <= 25) { temp_r29 = temp_r31 - 10; Hu3DModelRotSet(lbl_1_bss_2D0, 0, (90.0 * (temp_r29 / 15.0)) + 180.0, 0); } if (temp_r31 == 25) { - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, HU3D_MOTATTR_LOOP); } Hu3DModelPosSet(lbl_1_bss_199C2[22], (-300.0 * (1.0 - cosd(3.0 * temp_r31))) + (-160.0), 0, 155); HuPrcVSleep(); @@ -350,7 +350,7 @@ void fn_1_470(void) for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { Hu3DModelPosSet(lbl_1_bss_199C2[26], (-300.0 * cosd(1.5 * temp_r31)) + (-160.0), 0, 155); if (temp_r31 == 50) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[27], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[27], 0, 10, HU3D_MOTATTR_LOOP); } HuPrcVSleep(); } @@ -365,23 +365,23 @@ void fn_1_470(void) HuWinExAnimOut(temp_r30); HuWinExCleanup(temp_r30); HuWinComKeyReset(); - Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28], 0, 10, HU3D_MOTATTR_LOOP); for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { temp_f31 = temp_r31 / 20.0f; Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, (temp_f31 * 90.0f) + 90.0f, 0); HuPrcVSleep(); } - Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[27], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[27], 0, 10, HU3D_MOTATTR_LOOP); fn_1_861C(1); Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); HuAudFXPlay(1862); - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, HU3D_MOTATTR_LOOP); for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { temp_f31 = 1.0 - (temp_r31 / 20.0f); Hu3DModelRotSet(lbl_1_bss_2D0, 0, (temp_f31 * 90.0f) + 180.0f, 0); HuPrcVSleep(); } - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, HU3D_MOTATTR_LOOP); while (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) < lbl_1_data_140[1]) { if (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) == 128.0f) { HuAudFXPlay(1850); @@ -408,20 +408,20 @@ void fn_1_470(void) HuPrcSleep(40); Hu3DModelAttrSet(lbl_1_bss_199C2[64], 1); fn_1_8180(9); - Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28], 0, 10, HU3D_MOTATTR_LOOP); for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { if (temp_r31 <= 10) { Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, (90.0 * (temp_r31 / 10.0)) + 180.0, 0); } if (temp_r31 == 10) { - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, HU3D_MOTATTR_LOOP); } if (temp_r31 > 10 && temp_r31 <= 25) { temp_r29 = temp_r31 - 10; Hu3DModelRotSet(lbl_1_bss_2D0, 0, (90.0 * (temp_r29 / 15.0)) + 180.0, 0); } if (temp_r31 == 25) { - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, HU3D_MOTATTR_LOOP); } Hu3DModelPosSet(lbl_1_bss_199C2[26], (-400.0 * (1.0 - cosd(3.0 * temp_r31))) + (-160.0), 0, 155); HuPrcVSleep(); @@ -433,7 +433,7 @@ void fn_1_470(void) for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { Hu3DModelPosSet(lbl_1_bss_199C2[30], (-400.0 * cosd(1.5 * temp_r31)) + (-160.0), 100, 155); if (temp_r31 == 50) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[31], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[31], 0, 10, HU3D_MOTATTR_LOOP); } HuPrcVSleep(); } @@ -449,23 +449,23 @@ void fn_1_470(void) HuWinExAnimOut(temp_r30); HuWinExCleanup(temp_r30); HuWinComKeyReset(); - Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32], 0, 10, HU3D_MOTATTR_LOOP); for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { temp_f31 = temp_r31 / 20.0f; Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, (temp_f31 * 90.0f) + 90.0f, 0); HuPrcVSleep(); } - Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[31], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[31], 0, 10, HU3D_MOTATTR_LOOP); fn_1_861C(2); Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); HuAudFXPlay(1862); - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, HU3D_MOTATTR_LOOP); for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { temp_f31 = 1.0 - (temp_r31 / 20.0f); Hu3DModelRotSet(lbl_1_bss_2D0, 0, (temp_f31 * 90.0f) + 180.0f, 0); HuPrcVSleep(); } - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, HU3D_MOTATTR_LOOP); while (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) < lbl_1_data_140[2]) { if (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) == 300.0f) { HuAudFXPlay(1850); @@ -492,20 +492,20 @@ void fn_1_470(void) HuPrcSleep(40); Hu3DModelAttrSet(lbl_1_bss_199C2[64], 1); fn_1_8180(9); - Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32], 0, 10, HU3D_MOTATTR_LOOP); for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { if (temp_r31 <= 10) { Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, (90.0 * (temp_r31 / 10.0)) + 180.0, 0); } if (temp_r31 == 10) { - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, HU3D_MOTATTR_LOOP); } if (temp_r31 > 10 && temp_r31 <= 25) { temp_r29 = temp_r31 - 10; Hu3DModelRotSet(lbl_1_bss_2D0, 0, (90.0 * (temp_r29 / 15.0)) + 180.0, 0); } if (temp_r31 == 25) { - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, HU3D_MOTATTR_LOOP); } Hu3DModelPosSet(lbl_1_bss_199C2[30], (-400.0 * (1.0 - cosd(3.0 * temp_r31))) + (-160.0), 100, 155); HuPrcVSleep(); @@ -535,10 +535,10 @@ void fn_1_470(void) Hu3DModelRotSet(lbl_1_bss_199C2[34], 0, (30.0 * (1.0 - (temp_r29 / 20.0f))) + 60.0, 0); } if (temp_r31 == 50) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[35], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[35], 0, 10, HU3D_MOTATTR_LOOP); } if (temp_r31 == 40) { - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, 0x40000001); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, HU3D_MOTATTR_LOOP); } if (temp_r31 >= 40) { temp_r29 = temp_r31 - 40; @@ -558,7 +558,7 @@ void fn_1_470(void) Hu3DModelPosSet(lbl_1_bss_2D0, (temp_f31 * sp1C.x) + sp10.x, (temp_f31 * sp1C.y) + sp10.y, (temp_f31 * sp1C.z) + sp10.z); HuPrcVSleep(); } - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, 0x40000001); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0], 0, 10, HU3D_MOTATTR_LOOP); BoardStatusShowSet(lbl_1_bss_2D6, 1); BoardStatusShowSet(lbl_1_bss_2D4, 1); sp1C.x = -112; @@ -716,7 +716,7 @@ void fn_1_3B7C(void) for (temp_r30 = 0; temp_r30 < 100; temp_r30++) { temp_r31 = temp_r30; if (temp_r31 == 0) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[36], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[36], 0, 10, HU3D_MOTATTR_LOOP); } if (temp_r31 <= 20) { Hu3DModelRotSet(lbl_1_bss_199C2[34], 0, (30.0 * (temp_r31 / 20.0)) + 60.0, 0); @@ -730,7 +730,7 @@ void fn_1_3B7C(void) Hu3DModelRotSet(lbl_1_bss_199C2[34], 0, (110.0 * (1.0 - (temp_r29 / 20.0))) + -20.0, 0); } if (temp_r31 == 70) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[35], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[35], 0, 10, HU3D_MOTATTR_LOOP); } temp_r31 = temp_r30; if (temp_r31 == 0) { @@ -748,7 +748,7 @@ void fn_1_3B7C(void) Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, temp_f31 * (1.0 - (temp_r29 / 20.0)), 0); } if (temp_r31 == 60) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[19], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[19], 0, 10, HU3D_MOTATTR_LOOP); } if (temp_r30 >= 20) { temp_r31 = temp_r30 - 20; @@ -767,7 +767,7 @@ void fn_1_3B7C(void) Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, (temp_f31 - 10.0f) * (1.0 - (temp_r29 / 20.0)) + 10.0, 0); } if (temp_r31 == 50) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[27], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[27], 0, 10, HU3D_MOTATTR_LOOP); } } if (temp_r30 >= 30) { @@ -787,7 +787,7 @@ void fn_1_3B7C(void) Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, (temp_f31 - -10.0f) * (1.0 - (temp_r29 / 20.0)) + -10.0, 0); } if (temp_r31 == 50) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[31], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[31], 0, 10, HU3D_MOTATTR_LOOP); } } if (temp_r30 >= 40) { @@ -807,19 +807,19 @@ void fn_1_3B7C(void) Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, (temp_f31 - 20.0f) * (1.0 - (temp_r29 / 20.0)) + 20.0, 0); } if (temp_r31 == 50) { - Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[23], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[23], 0, 10, HU3D_MOTATTR_LOOP); } } if (temp_r30 >= 30) { temp_r31 = temp_r30 - 30; if (temp_r31 == 0) { - Hu3DMotionShiftSet(lbl_1_bss_2D0, lbl_1_bss_2C0[1], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2D0, lbl_1_bss_2C0[1], 0, 10, HU3D_MOTATTR_LOOP); } if (temp_r31 <= 20) { Hu3DModelRotSet(lbl_1_bss_2D0, 0, -135.0 - (45.0 * (temp_r31 / 20.0)), 0); } if (temp_r31 == 20) { - Hu3DMotionShiftSet(lbl_1_bss_2D0, lbl_1_bss_2C0[0], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2D0, lbl_1_bss_2C0[0], 0, 10, HU3D_MOTATTR_LOOP); } } HuPrcVSleep(); @@ -839,14 +839,14 @@ void fn_1_3B7C(void) HuWinExAnimOut(temp_r28); HuWinExCleanup(temp_r28); HuWinComKeyReset(); - Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[21], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[21], 0, 10, HU3D_MOTATTR_LOOP); HuPrcSleep(5); - Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[25], 0, 10, 0x40000001); - Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[29], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[25], 0, 10, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[29], 0, 10, HU3D_MOTATTR_LOOP); HuPrcSleep(10); - Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[33], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[33], 0, 10, HU3D_MOTATTR_LOOP); HuPrcSleep(10); - Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[37], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[37], 0, 10, HU3D_MOTATTR_LOOP); } void fn_1_55B0(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s32 arg4); diff --git a/src/REL/m444dll/pinball.c b/src/REL/m444dll/pinball.c index b5d0c75c..d2ddb6bc 100644 --- a/src/REL/m444dll/pinball.c +++ b/src/REL/m444dll/pinball.c @@ -266,7 +266,7 @@ void fn_1_9418(s16 arg0) fn_1_8180(0); Hu3DModelPosSet(lbl_1_bss_2D0, 124, 0, 70); Hu3DModelRotSet(lbl_1_bss_2D0, 0, 180, 0); - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[3], 0, 4, 0x40000020); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[3], 0, 4, HU3D_MOTATTR_SHIFT_REV); HuPrcSleep(12); HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1C, 0x0F)); temp_r29 = HuWinCreate(-10000, 340, sp8[0], sp8[1], 1); @@ -356,7 +356,7 @@ void fn_1_9418(s16 arg0) HuPrcVSleep(); } } - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[3], 0, 8, 0x0); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[3], 0, 8, HU3D_MOTATTR_NONE); HuPrcSleep(4); temp_r24 = lbl_1_bss_788[arg0]/4; lbl_1_bss_1888.y = (-15-temp_r24)+(0.1*(float)frandmod(10)); @@ -608,11 +608,11 @@ void fn_1_ABD0(s16 arg0, s16 arg1) if(temp_r31[1] & 0x2) { if(temp_r31[0] == 85) { if(Hu3DMotionIDGet(temp_r29) != lbl_1_bss_1990E[45] && Hu3DMotionShiftIDGet(temp_r29) != lbl_1_bss_1990E[45]) { - Hu3DMotionShiftSet(temp_r29, lbl_1_bss_1990E[45], 0, 8, 0); + Hu3DMotionShiftSet(temp_r29, lbl_1_bss_1990E[45], 0, 8, HU3D_MOTATTR_NONE); } } else { if(Hu3DMotionIDGet(temp_r29) != lbl_1_bss_1990E[46] && Hu3DMotionShiftIDGet(temp_r29) != lbl_1_bss_1990E[46]) { - Hu3DMotionShiftSet(temp_r29, lbl_1_bss_1990E[46], 0, 8, 0x40000001); + Hu3DMotionShiftSet(temp_r29, lbl_1_bss_1990E[46], 0, 8, HU3D_MOTATTR_LOOP); } } temp_r31[0]--; @@ -624,7 +624,7 @@ void fn_1_ABD0(s16 arg0, s16 arg1) } else { if(temp_r31[1] & 0x4) { if(Hu3DMotionIDGet(temp_r29) != lbl_1_bss_1990E[43] && Hu3DMotionShiftIDGet(temp_r29) != lbl_1_bss_1990E[43]) { - Hu3DMotionShiftSet(temp_r29, lbl_1_bss_1990E[43], 0, 16, 0x40000001); + Hu3DMotionShiftSet(temp_r29, lbl_1_bss_1990E[43], 0, 16, HU3D_MOTATTR_LOOP); } temp_r31[0]--; if(temp_r31[0] <= 0) { diff --git a/src/REL/m445Dll/main.c b/src/REL/m445Dll/main.c index 481fed04..51193130 100755 --- a/src/REL/m445Dll/main.c +++ b/src/REL/m445Dll/main.c @@ -1642,7 +1642,7 @@ void fn_1_6268(void) { Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); } } else { - Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[0], 0.0f, 8.0f, 0x40000001); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 1.0f); } } else { @@ -1661,39 +1661,39 @@ void fn_1_6268(void) { if (temp_r31->unk24 != 2) { temp_r31->unk24 = 2; if (fn_1_520(temp_r31->unk18) == FALSE) { - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[2], 0.0f, 8.0f, 0x40000001); + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); if (lbl_1_bss_6DC < 5) { Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); } } else { - Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[2], 0.0f, 8.0f, 0x40000001); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); } } } else if (temp_r31->unk24 != 1) { temp_r31->unk24 = 1; if (fn_1_520(temp_r31->unk18) == FALSE) { - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[1], 0.0f, 8.0f, 0x40000001); + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); if (lbl_1_bss_6DC < 5) { Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); } } else { - Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[1], 0.0f, 8.0f, 0x40000001); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); } } } else if (temp_r31->unk24 != 0) { temp_r31->unk24 = 0; if (fn_1_520(temp_r31->unk18) == FALSE) { - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[0], 0.0f, 0.0f, 0x40000001); + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[0], 0.0f, 0.0f, HU3D_MOTATTR_LOOP); if (lbl_1_bss_6DC < 5) { Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); } } else { - Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[0], 0.0f, 0.0f, 0x40000001); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[0], 0.0f, 0.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 1.0f); } } @@ -1718,9 +1718,9 @@ void fn_1_6268(void) { block_exit_loop: lbl_1_bss_6DC = 6; if (fn_1_520(temp_r31->unk18) == FALSE) { - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[0], 0.0f, 2.0f, 0x40000001); + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[0], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); } else { - Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[0], 0.0f, 0.0f, 0x40000001); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[0], 0.0f, 0.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 1.0f); } var_f19 = 10.0f; @@ -1747,7 +1747,7 @@ block_exit_loop: if (lbl_1_bss_588->unk30 > lbl_1_bss_588[1].unk30) { var_r26 = 0; } - var_r24 = 0; + var_r24 = HU3D_MOTATTR_NONE; if (temp_r31->unk18 != 0) { if (fn_1_520(1) == FALSE) { if (var_r26 != -1) { @@ -1782,10 +1782,10 @@ block_exit_loop: } else { if (var_r28 == 6) { var_r28 = 5; - var_r24 = 0x40000001; + var_r24 = HU3D_MOTATTR_LOOP; } else { var_r28 = 6; - var_r24 = 0; + var_r24 = HU3D_MOTATTR_NONE; } Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[var_r28], 0.0f, 8.0f, var_r24); if (var_r28 == 6) { @@ -1951,10 +1951,10 @@ void fn_1_8320(void) { for (i = 0; i < 2; i++) { temp_r31 = &lbl_1_bss_588[i]; if (fn_1_520(temp_r31->unk18) == FALSE) { - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[0], 0.0f, 8.0f, 0x40000001); + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); } else { - Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[0], 0.0f, 8.0f, 0x40000001); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } } } diff --git a/src/REL/m446Dll/player.c b/src/REL/m446Dll/player.c index df2b9e3c..7613a306 100644 --- a/src/REL/m446Dll/player.c +++ b/src/REL/m446Dll/player.c @@ -605,10 +605,10 @@ void fn_1_5B48(unkStruct8 *arg0) switch (arg0->unk1C) { case 0: if (arg0->unk70 != 0) { - Hu3DMotionShiftSet(arg0->unk3C[0], arg0->unk40[2], 0.0f, 10.0f, 0); + Hu3DMotionShiftSet(arg0->unk3C[0], arg0->unk40[2], 0.0f, 10.0f, HU3D_MOTATTR_NONE); } else { - CharModelMotionShiftSet(arg0->unk64, arg0->unk40[2], 0.0f, 10.0f, 0); + CharModelMotionShiftSet(arg0->unk64, arg0->unk40[2], 0.0f, 10.0f, HU3D_MOTATTR_NONE); } arg0->unk1C = 1; break; @@ -630,10 +630,10 @@ void fn_1_5C24(unkStruct8 *arg0) switch (arg0->unk1C) { case 0: if (arg0->unk70 != 0) { - Hu3DMotionShiftSet(arg0->unk3C[0], arg0->unk40[3], 0.0f, 10.0f, 0); + Hu3DMotionShiftSet(arg0->unk3C[0], arg0->unk40[3], 0.0f, 10.0f, HU3D_MOTATTR_NONE); } else { - CharModelMotionShiftSet(arg0->unk64, arg0->unk40[3], 0.0f, 10.0f, 0); + CharModelMotionShiftSet(arg0->unk64, arg0->unk40[3], 0.0f, 10.0f, HU3D_MOTATTR_NONE); } arg0->unk1C = 1; break; @@ -659,10 +659,10 @@ void fn_1_5D00(unkStruct8 *arg0) case 0: Hu3DModelAmbSet(arg0->unk3C[0], 0.8f, 0.8f, 0.8f); if (arg0->unk70 != 0) { - Hu3DMotionShiftSet(arg0->unk3C[0], arg0->unk40[1], 0.0f, 10.0f, 0U); + Hu3DMotionShiftSet(arg0->unk3C[0], arg0->unk40[1], 0.0f, 10.0f, HU3D_MOTATTR_NONE); } else { - CharModelMotionShiftSet(arg0->unk64, arg0->unk40[1], 0.0f, 10.0f, 0x40000001U); + CharModelMotionShiftSet(arg0->unk64, arg0->unk40[1], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); Hu3DMotionStartEndSet(arg0->unk3C[0], 0.0f, 59.0f); } sp8.y = 0.0f; diff --git a/src/REL/m447dll/player.c b/src/REL/m447dll/player.c index 20398245..86d33628 100755 --- a/src/REL/m447dll/player.c +++ b/src/REL/m447dll/player.c @@ -496,7 +496,7 @@ void fn_1_4C84(UnkM447Struct_04* arg0) { break; } if (var_r30 >= 0 && arg0->unkA4 != var_r30) { - fn_1_71FC(arg0, var_r30, 0.0f, 8.0f, 0x40000001); + fn_1_71FC(arg0, var_r30, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } } @@ -530,7 +530,7 @@ void fn_1_5080(UnkM447Struct_04* arg0) { fn_1_1ED4(var_r30, &sp14); VECSubtract(&sp14, &arg0->unk28, &sp8); arg0->unk38 = fn_1_4F7C(arg0->unk38, atan2d(sp8.x, sp8.z), 1.0f); - fn_1_71FC(arg0, 3, 0.0f, 8.0f, 0); + fn_1_71FC(arg0, 3, 0.0f, 8.0f, HU3D_MOTATTR_NONE); arg0->unk20 = 1; /* fallthrough */ case 1: @@ -620,7 +620,7 @@ void fn_1_5520(UnkM447Struct_04* arg0) { switch (arg0->unk20) { case 0: - fn_1_71FC(arg0, 5, 0.0f, 8.0f, 0); + fn_1_71FC(arg0, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); arg0->unk60 = 0; arg0->unk20 = 1; /* fallthrough */ @@ -688,7 +688,7 @@ void fn_1_5760(UnkM447Struct_04* arg0) { switch (arg0->unk20) { case 0: Hu3DModelAttrReset(arg0->unk68, 0x40000001); - fn_1_71FC(arg0, 5, 0.0f, 8.0f, 0); + fn_1_71FC(arg0, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); arg0->unk60 = 0; arg0->unk20 = 1; /* fallthrough */ @@ -702,7 +702,7 @@ void fn_1_5760(UnkM447Struct_04* arg0) { } arg0->unk20 = 2; case 2: - fn_1_71FC(arg0, 0, 0.0f, 8.0f, 0x40000001); + fn_1_71FC(arg0, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); fn_1_43CC(arg0, 8); break; } @@ -743,7 +743,7 @@ void fn_1_59D8(UnkM447Struct_04* arg0) { } else { HuAudFXPlay(lbl_1_rodata_510[arg0->unk18]); } - fn_1_71FC(arg0, 6, 0.0f, 8.0f, 0); + fn_1_71FC(arg0, 6, 0.0f, 8.0f, HU3D_MOTATTR_NONE); arg0->unk20 = 1; /* fallthrough */ case 1: @@ -753,7 +753,7 @@ void fn_1_59D8(UnkM447Struct_04* arg0) { arg0->unk20 = 2; /* fallthrough */ case 2: - fn_1_71FC(arg0, 0, 0.0f, 8.0f, 0x40000001); + fn_1_71FC(arg0, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); fn_1_43CC(arg0, 0); fn_1_7AA4(arg0, 0, 60); break; @@ -761,19 +761,12 @@ void fn_1_59D8(UnkM447Struct_04* arg0) { } void fn_1_5AF0(UnkM447Struct_04* arg0) { - s32 var_r30; - switch (arg0->unk20) { case 0: if (arg0->unk1C != 0) { HuAudFXPlay(0x40); } - if (arg0->unk1C != 0) { - var_r30 = 0x40000001; - } else { - var_r30 = 0; - } - fn_1_71FC(arg0, 7, 0.0f, 8.0f, var_r30); + fn_1_71FC(arg0, 7, 0.0f, 8.0f, (arg0->unk1C != 0) ? HU3D_MOTATTR_LOOP : HU3D_MOTATTR_NONE); arg0->unk20 = 1; /* fallthrough */ case 1: @@ -791,7 +784,7 @@ void fn_1_5AF0(UnkM447Struct_04* arg0) { void fn_1_5BD0(UnkM447Struct_04* arg0) { switch (arg0->unk20) { case 0: - fn_1_71FC(arg0, 8, 0.0f, 8.0f, 0); + fn_1_71FC(arg0, 8, 0.0f, 8.0f, HU3D_MOTATTR_NONE); arg0->unk20 = 1; /* fallthrough */ case 1: diff --git a/src/REL/m448Dll/main.c b/src/REL/m448Dll/main.c index e3f76e89..8ea12e5f 100755 --- a/src/REL/m448Dll/main.c +++ b/src/REL/m448Dll/main.c @@ -413,13 +413,13 @@ void fn_1_1338(omObjData* arg0) { if (lbl_1_bss_80 == 1001 && lbl_1_bss_84 == 45 && temp_r31->unk08 != -1) { var_r20 = 8; Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r20], lbl_1_data_EC[var_r20], 45.0f, - (lbl_1_data_A8[var_r20] != 0) ? 0 : 0x40000001); + (lbl_1_data_A8[var_r20] != 0) ? HU3D_MOTATTR_NONE : HU3D_MOTATTR_LOOP); temp_r31->unk20 = var_r20; } if (lbl_1_bss_80 == 1001 && lbl_1_bss_84 == 210 && temp_r31->unk08 != -1) { var_r19 = 0; Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r19], lbl_1_data_EC[var_r19], 30.0f, - (lbl_1_data_A8[var_r19] != 0) ? 0 : 0x40000001); + (lbl_1_data_A8[var_r19] != 0) ? HU3D_MOTATTR_NONE : HU3D_MOTATTR_LOOP); temp_r31->unk20 = var_r19; } if (lbl_1_bss_80 == 1003 && temp_r31->unk08 != -1) { @@ -820,12 +820,12 @@ void fn_1_1338(omObjData* arg0) { var_r18 = (temp_r31->unk08 == -1 && (var_r29 == 9 || var_r29 == 10)) ? 0 : var_r29; if (temp_r31->unk08 != -1) { Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r18], lbl_1_data_EC[var_r18], lbl_1_data_C0[var_r18], - (lbl_1_data_A8[var_r18] != 0) ? 0 : 0x40000001); + (lbl_1_data_A8[var_r18] != 0) ? HU3D_MOTATTR_NONE : HU3D_MOTATTR_LOOP); } else { Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r29], lbl_1_data_EC[var_r29], lbl_1_data_118[var_r29], - (lbl_1_data_B3[var_r29] != 0) ? 0 : 0x40000001); + (lbl_1_data_B3[var_r29] != 0) ? HU3D_MOTATTR_NONE : HU3D_MOTATTR_LOOP); if (var_r29 == 3) { - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[5], 15.0f, 33.0f, 0x40000002); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[5], 15.0f, 33.0f, HU3D_MOTATTR_PAUSE); } } temp_r31->unk20 = var_r29; diff --git a/src/REL/mgmodedll/battle.c b/src/REL/mgmodedll/battle.c index 07ed0efd..75aa11b7 100644 --- a/src/REL/mgmodedll/battle.c +++ b/src/REL/mgmodedll/battle.c @@ -190,7 +190,7 @@ s32 fn_1_E72C(void) sp14.z = 680; VECSubtract(&sp14, &sp20, &sp14); temp_f30 = (180+atan2d(sp14.z, sp14.x))-360; - Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[7], 0, 8, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[7], 0, 8, HU3D_MOTATTR_LOOP); for(temp_r31=0; temp_r31<=30; temp_r31++) { if(temp_r31 <= 20) { temp_f31 = temp_r31/20.0; @@ -207,7 +207,7 @@ s32 fn_1_E72C(void) HuPrcVSleep(); } HuSprGrpDrawNoSet(lbl_1_bss_388, 64); - Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 8, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 8, HU3D_MOTATTR_LOOP); for(temp_r31=0; temp_r31<=10; temp_r31++) { temp_f31 = temp_r31/10.0; Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f30+((20-temp_f30)*temp_f31), 0); @@ -235,7 +235,7 @@ s32 fn_1_E72C(void) HuPrcVSleep(); } for(temp_r31=0; temp_r31<4; temp_r31++) { - Hu3DMotionShiftSet(lbl_1_bss_2C14[temp_r31], lbl_1_bss_2BC4[temp_r31][0], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2C14[temp_r31], lbl_1_bss_2BC4[temp_r31][0], 0, 10, HU3D_MOTATTR_LOOP); } for(temp_r31=0; temp_r31<=10; temp_r31++) { temp_f31 = temp_r31/10.0f; @@ -595,9 +595,9 @@ s32 fn_1_1129C(void) if(temp_r31 == 10) { for(temp_r30=0; temp_r30<4; temp_r30++) { if(lbl_1_bss_38C[temp_r30]) { - Hu3DMotionShiftSet(lbl_1_bss_2C14[temp_r30], lbl_1_bss_2BC4[temp_r30][3], 0, 5, 0); + Hu3DMotionShiftSet(lbl_1_bss_2C14[temp_r30], lbl_1_bss_2BC4[temp_r30][3], 0, 5, HU3D_MOTATTR_NONE); } else { - Hu3DMotionShiftSet(lbl_1_bss_2C14[temp_r30], lbl_1_bss_2BC4[temp_r30][4], 0, 5, 0); + Hu3DMotionShiftSet(lbl_1_bss_2C14[temp_r30], lbl_1_bss_2BC4[temp_r30][4], 0, 5, HU3D_MOTATTR_NONE); } } } @@ -638,10 +638,10 @@ s32 fn_1_1129C(void) HuAudFXPlay(2175); for(temp_r30=0; temp_r30<4; temp_r30++) { if(sp10[temp_r30]) { - Hu3DMotionShiftSet(lbl_1_bss_2C14[temp_r30], lbl_1_bss_2BC4[temp_r30][5], 0, 5, 0); + Hu3DMotionShiftSet(lbl_1_bss_2C14[temp_r30], lbl_1_bss_2BC4[temp_r30][5], 0, 5, HU3D_MOTATTR_NONE); fn_1_12B64(temp_r30); } else { - Hu3DMotionShiftSet(lbl_1_bss_2C14[temp_r30], lbl_1_bss_2BC4[temp_r30][6], 0, 5, 0); + Hu3DMotionShiftSet(lbl_1_bss_2C14[temp_r30], lbl_1_bss_2BC4[temp_r30][6], 0, 5, HU3D_MOTATTR_NONE); } } HuPrcSleep(120); @@ -649,7 +649,7 @@ s32 fn_1_1129C(void) } else { HuPrcSleep(30); for(temp_r30=0; temp_r30<4; temp_r30++) { - Hu3DMotionShiftSet(lbl_1_bss_2C14[temp_r30], lbl_1_bss_2BC4[temp_r30][0], 0, 5, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2C14[temp_r30], lbl_1_bss_2BC4[temp_r30][0], 0, 5, HU3D_MOTATTR_LOOP); } HuPrcSleep(30); } @@ -683,7 +683,7 @@ s32 fn_1_11E68(void) s16 j; float weight; for(i=0; i<4; i++) { - Hu3DMotionShiftSet(lbl_1_bss_2C14[i], lbl_1_bss_2BC4[i][0], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2C14[i], lbl_1_bss_2BC4[i][0], 0, 10, HU3D_MOTATTR_LOOP); } for(i=0; i<=20; i++) { weight = i/20.0f; @@ -725,7 +725,7 @@ void fn_1_1222C(void) Vec posEnd; Vec posModel; for(i=0; i<4; i++) { - Hu3DMotionShiftSet(lbl_1_bss_2C14[i], lbl_1_bss_2BC4[i][2], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2C14[i], lbl_1_bss_2BC4[i][2], 0, 10, HU3D_MOTATTR_LOOP); } model = &Hu3DData[lbl_1_bss_2C80[5]]; pos = model->pos; @@ -747,7 +747,7 @@ void fn_1_1222C(void) } } if(i == 20) { - Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[7], 0, 8, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[7], 0, 8, HU3D_MOTATTR_LOOP); } if(i >= 20) { weight = (i-20)/10.0; @@ -756,7 +756,7 @@ void fn_1_1222C(void) HuPrcVSleep(); } for(i=0; i<4; i++) { - Hu3DMotionShiftSet(lbl_1_bss_2C14[i], lbl_1_bss_2BC4[i][0], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2C14[i], lbl_1_bss_2BC4[i][0], 0, 10, HU3D_MOTATTR_LOOP); } for(i=0; i<=30; i++) { weight = i/30.0; @@ -765,7 +765,7 @@ void fn_1_1222C(void) Hu3DModelPosSetV(lbl_1_bss_2C80[5], &posModel); HuPrcVSleep(); } - Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 10, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 10, HU3D_MOTATTR_LOOP); for(i=0; i<=10; i++) { weight = 1.0-(i/10.0); Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, angle*weight, 0); diff --git a/src/REL/mgmodedll/main.c b/src/REL/mgmodedll/main.c index 73c770f1..0af8a0a6 100755 --- a/src/REL/mgmodedll/main.c +++ b/src/REL/mgmodedll/main.c @@ -2505,13 +2505,13 @@ void fn_1_25E74(s32 arg0) { void fn_1_25EC8(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { switch (arg3) { case 0: - Hu3DMotionShiftSet(arg0, arg1, 0.0f, arg2, 0); + Hu3DMotionShiftSet(arg0, arg1, 0.0f, arg2, HU3D_MOTATTR_NONE); break; case 1: - Hu3DMotionShiftSet(arg0, arg1, 0.0f, arg2, 0x40000001); + Hu3DMotionShiftSet(arg0, arg1, 0.0f, arg2, HU3D_MOTATTR_LOOP); break; case 2: - Hu3DMotionShiftSet(arg0, arg1, 0.0f, arg2, 0x40000002); + Hu3DMotionShiftSet(arg0, arg1, 0.0f, arg2, HU3D_MOTATTR_PAUSE); break; } } diff --git a/src/REL/mgmodedll/tictactoe.c b/src/REL/mgmodedll/tictactoe.c index 4f58a89a..f2d5ad25 100644 --- a/src/REL/mgmodedll/tictactoe.c +++ b/src/REL/mgmodedll/tictactoe.c @@ -129,7 +129,7 @@ s32 fn_1_13418(void) HuSprGrpPosSet(lbl_1_bss_3AA, 450+(-16*temp_f31), 65); } if(temp_r31 == 30) { - Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[7], 0, 8, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[7], 0, 8, HU3D_MOTATTR_LOOP); } if(temp_r31 > 30) { temp_f31 = (temp_r31-30.0)/30.0; @@ -143,7 +143,7 @@ s32 fn_1_13418(void) } HuPrcVSleep(); } - Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 8, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 8, HU3D_MOTATTR_LOOP); for(temp_r31=0; temp_r31<=10; temp_r31++) { temp_f31 = temp_r31/10.0; Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f29+((20.0f-temp_f29)*temp_f31), 0); @@ -556,7 +556,7 @@ void fn_1_16438(void) Hu3DMotionTimeSet(lbl_1_bss_2C80[5], 0); } if(temp_r31 == 30) { - Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[7], 0, 8, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[7], 0, 8, HU3D_MOTATTR_LOOP); } if(temp_r31 > 30) { temp_f31 = (temp_r31-30.0)/30.0; @@ -570,7 +570,7 @@ void fn_1_16438(void) } HuPrcVSleep(); } - Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 8, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 8, HU3D_MOTATTR_LOOP); for(temp_r31=0; temp_r31<=10; temp_r31++) { temp_f31 = 1.0-(temp_r31/10.0); Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f31*temp_f30, 0); diff --git a/src/REL/modeltestDll/modeltest01.c b/src/REL/modeltestDll/modeltest01.c index c76316a2..20e4cff3 100644 --- a/src/REL/modeltestDll/modeltest01.c +++ b/src/REL/modeltestDll/modeltest01.c @@ -446,9 +446,9 @@ void fn_1_5DA8(void) fn_1_69C8(temp_r28, sp16[0], 0); fn_1_69C8(temp_r28, sp16[1], 1); fn_1_69C8(temp_r28, sp16[2], 2); - Hu3DMotionShiftSet(sp16[0], sp40[0][0], 0, 16, 0x40000001); - Hu3DMotionShiftSet(sp16[1], sp40[1][0], 0, 16, 0x40000001); - Hu3DMotionShiftSet(sp16[2], sp40[2][0], 0, 16, 0x40000001); + Hu3DMotionShiftSet(sp16[0], sp40[0][0], 0, 16, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSet(sp16[1], sp40[1][0], 0, 16, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSet(sp16[2], sp40[2][0], 0, 16, HU3D_MOTATTR_LOOP); } temp_r24 = 0; } diff --git a/src/REL/option/guide.c b/src/REL/option/guide.c index 5b38fe10..44124475 100755 --- a/src/REL/option/guide.c +++ b/src/REL/option/guide.c @@ -74,7 +74,7 @@ omObjData *OptionGuideCreate(void) work->unk_60 = CharModelEffectNpcInit(object->model[0], object->motion[1], 0, 0xC); CharModelLayerSetAll(1); Hu3DModelShadowSet(object->model[0]); - Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 8.0f, 0x40000001); + Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); SetExecMode(object, MODE_DISABLED); UpdateGuide(object); return object; @@ -207,7 +207,7 @@ static void UpdateGuide(omObjData *object) work->pos.x += work->posDelta.x; work->pos.z += work->posDelta.z; if (work->motion != motion) { - Hu3DMotionShiftSet(*object->model, object->motion[motion], 0.0f, 8.0f, 0x40000001); + Hu3DMotionShiftSet(*object->model, object->motion[motion], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); work->motion = motion; } omSetTra(object, work->pos.x, work->pos.y, work->pos.z); diff --git a/src/REL/present/common.c b/src/REL/present/common.c index 0ecd4474..adaae0e2 100644 --- a/src/REL/present/common.c +++ b/src/REL/present/common.c @@ -58,7 +58,7 @@ omObjData *PresentGuideCreate(void) for (var_r29 = 0; var_r29 < 3; var_r29++) { object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], guideMotTbl[var_r29]); } - Hu3DMotionShiftSet(object->model[0], object->motion[work->motion = 0], 0.0f, 8.0f, 0x40000001); + Hu3DMotionShiftSet(object->model[0], object->motion[work->motion = 0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); work->unk_50 = CharModelEffectNpcInit(object->model[0], object->motion[2], 1, 10); work->unk_54 = CharModelEffectNpcInit(object->model[0], object->motion[1], 0, 10); CharModelLayerSetAll(1); @@ -204,7 +204,7 @@ static void UpdateGuide(omObjData *object) work->pos.x += work->posDelta.x; work->pos.z += work->posDelta.z; if (work->motion != motion) { - Hu3DMotionShiftSet(object->model[0], object->motion[work->motion = motion], 0.0f, 8.0f, 0x40000001); + Hu3DMotionShiftSet(object->model[0], object->motion[work->motion = motion], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } omSetTra(object, work->pos.x, work->pos.y, work->pos.z); omSetRot(object, work->rot.x, work->rot.y, work->rot.z); diff --git a/src/REL/resultDll/battle.c b/src/REL/resultDll/battle.c index 94e38485..41a977d4 100644 --- a/src/REL/resultDll/battle.c +++ b/src/REL/resultDll/battle.c @@ -467,11 +467,11 @@ void fn_1_7544(void) gains[lbl_1_bss_172] += gains[4]; for (i = 0; i < 4; i++) { if (gains[lbl_1_bss_19F0[i]]) { - CharModelMotionShiftSet(GWPlayerCfg[lbl_1_bss_19F0[i]].character, lbl_1_bss_1990[lbl_1_bss_19F0[i]][1], 0, 4, 0); + CharModelMotionShiftSet(GWPlayerCfg[lbl_1_bss_19F0[i]].character, lbl_1_bss_1990[lbl_1_bss_19F0[i]][1], 0, 4, HU3D_MOTATTR_NONE); HuAudPlayerVoicePlay(lbl_1_bss_19F0[i], 293); } else { - CharModelMotionShiftSet(GWPlayerCfg[lbl_1_bss_19F0[i]].character, lbl_1_bss_1990[lbl_1_bss_19F0[i]][2], 0, 4, 0); + CharModelMotionShiftSet(GWPlayerCfg[lbl_1_bss_19F0[i]].character, lbl_1_bss_1990[lbl_1_bss_19F0[i]][2], 0, 4, HU3D_MOTATTR_NONE); } } HuPrcSleep(20); diff --git a/src/REL/w01Dll/main.c b/src/REL/w01Dll/main.c index b96e4e36..350880e2 100755 --- a/src/REL/w01Dll/main.c +++ b/src/REL/w01Dll/main.c @@ -920,7 +920,7 @@ static void fn_1_276C(void) { BoardPlayerMotionStart(lbl_1_bss_6B4, lbl_1_bss_5CC[1], 0); BoardPlayerMotionTimeSet(lbl_1_bss_6B4, temp_f26); } else { - BoardPlayerMotionShiftSet(lbl_1_bss_6B4, lbl_1_bss_5CC[0], 0.0f, 10.0f, 0x40000001); + BoardPlayerMotionShiftSet(lbl_1_bss_6B4, lbl_1_bss_5CC[0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); } fn_1_2F18(); } @@ -1257,7 +1257,7 @@ static s32 fn_1_48B4(void) { lbl_1_bss_6B2 = 0; lbl_1_bss_6B4 = GWSystem.player_curr; temp_r30 = GWPlayer[lbl_1_bss_6B4].space_curr; - BoardPlayerMotionShiftSet(lbl_1_bss_6B4, 1, 0.0f, 14.0f, 0x40000001); + BoardPlayerMotionShiftSet(lbl_1_bss_6B4, 1, 0.0f, 14.0f, HU3D_MOTATTR_LOOP); BoardWinCreateChoice(0, MAKE_MESSID(13, 0), -1, 0); if (GWPlayer[lbl_1_bss_6B4].com) { fn_1_9D00(lbl_1_bss_6B4); @@ -1699,7 +1699,7 @@ static void fn_1_6194(Bss18Work *arg0, omObjData *arg1) { arg1->scale.x = sp2C.x; arg1->scale.y = sp2C.y; arg1->scale.z = sp2C.z; - BoardPlayerMotionShiftSet(GWSystem.player_curr, 4, 15.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(GWSystem.player_curr, 4, 15.0f, 5.0f, HU3D_MOTATTR_NONE); arg0->unk00_field1 = 2; arg0->unk01 = 0; } @@ -1731,7 +1731,7 @@ static void fn_1_63F0(Bss18Work *arg0, omObjData *arg1) { } if (arg0->unk01 == 25) { BoardPlayerPosSet(GWSystem.player_curr, arg1->scale.x, arg1->scale.y, arg1->scale.z); - BoardPlayerMotionShiftSet(GWSystem.player_curr, 5, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(GWSystem.player_curr, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); } if (arg0->unk01 < 25) { OSu8tof32(&arg0->unk01, &temp_f29); @@ -1778,7 +1778,7 @@ static void fn_1_6A14(Bss18Work *arg0, omObjData *arg1) { arg1->scale.x = sp20.x; arg1->scale.y = sp20.y; arg1->scale.z = sp20.z; - BoardPlayerMotionShiftSet(GWSystem.player_curr, 4, 15.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(GWSystem.player_curr, 4, 15.0f, 5.0f, HU3D_MOTATTR_NONE); BoardPlayerRotYSet(GWSystem.player_curr, atan2d(sp8.x, sp8.z)); arg0->unk00_field1 = 3; arg0->unk01 = 0; @@ -1804,7 +1804,7 @@ static void fn_1_6BC0(Bss18Work *arg0, omObjData *arg1) { } if (arg0->unk01 == 25) { BoardPlayerPosSet(GWSystem.player_curr, arg1->scale.x, arg1->scale.y, arg1->scale.z); - BoardPlayerMotionShiftSet(GWSystem.player_curr, 5, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(GWSystem.player_curr, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); } if (arg0->unk01 < 25) { OSu8tof32(&arg0->unk01, &temp_f29); diff --git a/src/REL/w01Dll/mg_coin.c b/src/REL/w01Dll/mg_coin.c index 7d6eac1a..db91a124 100755 --- a/src/REL/w01Dll/mg_coin.c +++ b/src/REL/w01Dll/mg_coin.c @@ -669,7 +669,7 @@ static void fn_1_BAF8(omObjData *arg0) { if ((temp_r31->unk20 += 1.0f) == 30.0f) { sp14.y = sp8.y + 5.0f; BoardPlayerPosSetV(lbl_1_bss_798, &sp14); - BoardPlayerMotionShiftSet(lbl_1_bss_798, 2, 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_798, 2, 0.0f, 10.0f, HU3D_MOTATTR_NONE); arg0->func = fn_1_BCDC; } BoardPlayerPosSetV(lbl_1_bss_798, &sp14); @@ -686,7 +686,7 @@ static void fn_1_BCDC(omObjData *arg0) { sp8 = sp14; sp8.z += 100.0f; if (fn_1_CB44(&sp8, 10.0f) == 1) { - BoardPlayerMotionShiftSet(lbl_1_bss_798, 1, 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_798, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); temp_r29->unk1C = 90; lbl_1_bss_710->work[0] = 1; lbl_1_bss_714[lbl_1_bss_730]->work[2] = 3; @@ -746,7 +746,7 @@ static void fn_1_C000(void) { temp_r31->unk10.y = 10.0f; temp_r31->unk10.z = 3.0f; temp_r31->unk20 = 0.0f; - BoardPlayerMotionShiftSet(lbl_1_bss_798, 4, 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_798, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); temp_r30->func = fn_1_C0FC; HuPrcKill(NULL); while (TRUE) { @@ -765,7 +765,7 @@ static void fn_1_C0FC(omObjData *arg0) { sp8.z += temp_r31->unk10.z; temp_r31->unk20 += 1.0f; if (sp8.y <= lbl_1_bss_738.y) { - BoardPlayerMotionShiftSet(lbl_1_bss_798, 1, 0.0f, 10.0f, 0x40000001); + BoardPlayerMotionShiftSet(lbl_1_bss_798, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); sp8.y = lbl_1_bss_738.y; lbl_1_bss_75C = HuPrcCreate(fn_1_C25C, 0x2004, 0x1000, 0); lbl_1_bss_75C->user_data = arg0; @@ -826,7 +826,7 @@ static void fn_1_C25C(void) { var_f31 = -20.0f; } if (var_r30 == lbl_1_bss_728) { - BoardPlayerMotionShiftSet(lbl_1_bss_798, 7, 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_798, 7, 0.0f, 10.0f, HU3D_MOTATTR_NONE); break; } HuPrcVSleep(); diff --git a/src/REL/w01Dll/mg_item.c b/src/REL/w01Dll/mg_item.c index 0a107490..e0dabf97 100755 --- a/src/REL/w01Dll/mg_item.c +++ b/src/REL/w01Dll/mg_item.c @@ -312,7 +312,7 @@ static void fn_1_E44C(omObjData *arg0) { arg0->rot.y = 10.0f; arg0->rot.z = sp18.y; arg0->scale.x = 0.0f; - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 4, 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); arg0->func = fn_1_E914; } BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], lbl_1_bss_7EC); @@ -338,7 +338,7 @@ static void fn_1_E914(omObjData *arg0) { for (i = 0; i < 4; i++) { lbl_1_bss_7FC[i]->func = fn_1_FED0; } - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, lbl_1_bss_7B8, 0.0f, 5.0f, 0x40000001); + BoardPlayerMotionShiftSet(lbl_1_bss_7E4, lbl_1_bss_7B8, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); lbl_1_bss_7D6 = MGSeqStartCreate(); BoardMusStart(1, 0xE, 0x7F, 0); arg0->func = fn_1_ECD4; @@ -465,7 +465,7 @@ static void fn_1_F3F8(omObjData *arg0) { arg0->rot.y = 0.016666668f * (arg0->scale.y / 2) * (arg0->scale.y / 2); arg0->rot.z = sp18.y; arg0->scale.x = 0.0f; - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 4, 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); VECSubtract(&lbl_1_bss_7C4, &sp18, &spC); VECNormalize(&spC, &spC); BoardPlayerRotSet(lbl_1_bss_7E4, 0.0f, fn_1_10EB8(&spC), 0.0f); @@ -494,7 +494,7 @@ static void fn_1_F890(omObjData *arg0) { BoardPlayerRotGet(lbl_1_bss_7E4, &sp8); if (sp8.y == 0.0f) { - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 1, 0.0f, 10.0f, 0x40000001); + BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); lbl_1_bss_7F0->work[0] = 0; lbl_1_bss_7F0->func = fn_1_10820; arg0->func = fn_1_FA1C; @@ -516,7 +516,7 @@ static void fn_1_F890(omObjData *arg0) { static void fn_1_FA1C(omObjData *arg0) { if (lbl_1_bss_7F0->work[0] == 1) { - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, lbl_1_bss_7BC, 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_7E4, lbl_1_bss_7BC, 0.0f, 10.0f, HU3D_MOTATTR_NONE); arg0->work[0] = 30; lbl_1_bss_7A4 = HuAudSStreamPlay(2); arg0->func = fn_1_FABC; @@ -546,7 +546,7 @@ static void fn_1_FB58(void) { BoardWinWait(); BoardWinKill(); temp_r31 = HuPrcCurrentGet()->user_data; - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 1, 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); lbl_1_bss_7F0->work[0] = 0; HuAudFXPlay(0x30D); HuAudFXFadeOut(lbl_1_bss_7AC, 1000); diff --git a/src/REL/w02Dll/gamble.c b/src/REL/w02Dll/gamble.c index 8c588fda..42804c58 100644 --- a/src/REL/w02Dll/gamble.c +++ b/src/REL/w02Dll/gamble.c @@ -218,7 +218,7 @@ void fn_1_2D04(void) } else { temp_r26 = GWPlayer[temp_r31].space_curr; BoardCameraTargetSpaceSet(temp_r26); - BoardPlayerMotionShiftSet(temp_r31, 6, 0, 5, 0x40000001); + BoardPlayerMotionShiftSet(temp_r31, 6, 0, 5, HU3D_MOTATTR_LOOP); HuPrcSleep(60); HuPrcSleep(30); BoardModelPosSetV(temp_r28, &spC); diff --git a/src/REL/w02Dll/mg_coin.c b/src/REL/w02Dll/mg_coin.c index 40c6649e..d8678d53 100644 --- a/src/REL/w02Dll/mg_coin.c +++ b/src/REL/w02Dll/mg_coin.c @@ -419,7 +419,7 @@ void fn_1_46E8(void) temp_f31 = -20.0f; } if (temp_r30 == lbl_1_bss_84) { - BoardPlayerMotionShiftSet(lbl_1_bss_86, 7, 0, 10, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_86, 7, 0, 10, HU3D_MOTATTR_NONE); break; } HuPrcVSleep(); @@ -511,7 +511,7 @@ void fn_1_53B8(omObjData *object) if ((temp_r29 & PAD_BUTTON_A) || temp_r31->unk18 < 0) { MGSeqParamSet(temp_r31->unk1C, 2, -1); HuWinKill(temp_r31->unk1E); - BoardPlayerMotionShiftSet(lbl_1_bss_86, 4, 0, 5, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_86, 4, 0, 5, HU3D_MOTATTR_NONE); temp_r31->unk0 = 10; temp_r31->unk4 = 0; if (lbl_1_bss_A4->work[0] & 0x1) { @@ -595,7 +595,7 @@ void fn_1_5868(omObjData *object) if (sp14.y == sp8.y) { BoardModelMotionTimeSet(lbl_1_bss_BC[temp_r31->unk8], 0); BoardModelAttrReset(lbl_1_bss_BC[temp_r31->unk8], 0x40000002); - BoardPlayerMotionShiftSet(lbl_1_bss_86, object->motion[1], 0, 5, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_86, object->motion[1], 0, 5, HU3D_MOTATTR_NONE); lbl_1_bss_A4->work[3] |= 1 << temp_r31->unk8; temp_r31->unk0 = 5; temp_r31->unk4 = 0; diff --git a/src/REL/w02Dll/mg_item.c b/src/REL/w02Dll/mg_item.c index dd5815d2..9429bc92 100644 --- a/src/REL/w02Dll/mg_item.c +++ b/src/REL/w02Dll/mg_item.c @@ -472,7 +472,7 @@ void fn_1_6EA8(void) BoardPlayerItemAdd(lbl_1_bss_196, lbl_1_bss_190[temp_r31]); omVibrate(lbl_1_bss_196, 12, 6, 6); temp_r28 = HuAudSStreamPlay(2); - BoardPlayerMotionShiftSet(lbl_1_bss_196, 7, 0, 5, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_196, 7, 0, 5, HU3D_MOTATTR_NONE); while (!BoardPlayerMotionEndCheck(lbl_1_bss_196)) { HuPrcVSleep(); } diff --git a/src/REL/w02Dll/roulette.c b/src/REL/w02Dll/roulette.c index 332b54ea..24797857 100644 --- a/src/REL/w02Dll/roulette.c +++ b/src/REL/w02Dll/roulette.c @@ -559,7 +559,7 @@ void fn_1_D3AC(void) temp_f31 = -40.0f; } if(temp_r30 == 20) { - BoardPlayerMotionShiftSet(lbl_1_bss_388, 7, 0, 10, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_388, 7, 0, 10, HU3D_MOTATTR_NONE); break; } HuPrcVSleep(); diff --git a/src/REL/w02Dll/shuffleboard.c b/src/REL/w02Dll/shuffleboard.c index 3443f20d..27b8a332 100644 --- a/src/REL/w02Dll/shuffleboard.c +++ b/src/REL/w02Dll/shuffleboard.c @@ -217,7 +217,7 @@ void fn_1_98D8(void) while(!BoardPlayerMotBlendCheck(lbl_1_bss_36E)) { HuPrcVSleep(); } - BoardPlayerMotionShiftSet(lbl_1_bss_36E, lbl_1_bss_1C0[0], 0, 10, 0x40000001); + BoardPlayerMotionShiftSet(lbl_1_bss_36E, lbl_1_bss_1C0[0], 0, 10, HU3D_MOTATTR_LOOP); HuPrcSleep(20); } @@ -483,7 +483,7 @@ void fn_1_A8E8(void) HuWinKill(lbl_1_bss_1AC); BoardPlayerMotionStart(lbl_1_bss_36E, lbl_1_bss_1C0[1], 0); BoardPlayerMotionEndWait(lbl_1_bss_36E); - BoardPlayerMotionShiftSet(lbl_1_bss_36E, 6, 0, 15, 0x40000001); + BoardPlayerMotionShiftSet(lbl_1_bss_36E, 6, 0, 15, HU3D_MOTATTR_LOOP); HuPrcSleep(40); BoardAudSeqFadeOut(1, 1000); HuPrcSleep(70); diff --git a/src/REL/w03Dll/condor.c b/src/REL/w03Dll/condor.c index bf19b8b3..15ea43a8 100644 --- a/src/REL/w03Dll/condor.c +++ b/src/REL/w03Dll/condor.c @@ -220,14 +220,14 @@ s32 fn_1_3478(s32 arg0) BoardPlayerIdleSet(arg0); HuAudFXPlay(0x447); - BoardModelMotionShiftSet(lbl_1_data_310, 4, 0.0f, 5.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_310, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); HuPrcSleep(6); while (BoardModelMotionEndCheck(lbl_1_data_310) == 0) { HuPrcVSleep(); } - BoardModelMotionShiftSet(lbl_1_data_310, 1, 0.0f, 5.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_data_310, 1, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); temp_r26 = BoardPlayerGetCharMess(arg0); BoardWinCreate(2, MAKE_MESSID(22, 16), 8); BoardWinInsertMesSet(temp_r26, 3); @@ -286,7 +286,7 @@ void fn_1_3814(s32 arg0) Vec sp8; f32 temp; - BoardModelMotionShiftSet(lbl_1_data_310, 2, 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_data_310, 2, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); temp = (180.0f + BoardPlayerRotYGet(arg0)); BoardPlayerMotBlendSet(arg0, temp, 0xF); @@ -342,7 +342,7 @@ void fn_1_3968(s32 arg0) VECSubtract(&sp3C, &sp30, &sp24); VECNormalize(&sp24, &sp24); VECScale(&sp24, &sp24, temp_f30 / 45.0f); - BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); HuPrcSleep(5); spC = BoardPlayerRotYGet(arg0); @@ -389,7 +389,7 @@ void fn_1_3968(s32 arg0) BoardModelHookSet(lbl_1_data_310, "itemhook_oya", BoardPlayerModelGet(arg0)); BoardPlayerMotionStart(arg0, lbl_1_data_312, 0x40000001); HuAudFXPlay(0x44F); - BoardModelMotionShiftSet(lbl_1_data_310, 5, 0.0f, 5.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_310, 5, 0.0f, 5.0f, HU3D_MOTATTR_NONE); sp18.x = -15.0f; sp18.y = 180.0f; @@ -821,7 +821,7 @@ void fn_1_4F24(w03StructUnk2 *arg0) } if (arg0->unk_02 != 0) { - BoardModelMotionShiftSet(lbl_1_bss_C[2], 0, 101.0f, 10.0f, 0); + BoardModelMotionShiftSet(lbl_1_bss_C[2], 0, 101.0f, 10.0f, HU3D_MOTATTR_NONE); } } } diff --git a/src/REL/w03Dll/mg_coin.c b/src/REL/w03Dll/mg_coin.c index 2f039385..0d0e6f64 100644 --- a/src/REL/w03Dll/mg_coin.c +++ b/src/REL/w03Dll/mg_coin.c @@ -583,7 +583,7 @@ void fn_1_9044(omObjData *arg0, someBits3 *arg1) if (arg0->trans.x <= 1.0f) { arg0->trans.y = 0.0f; BoardPlayerIdleSet(arg1->unk00_bit5); - BoardModelMotionShiftSet(lbl_1_bss_C[10], 1, 0.0f, 10.0f, 0x40000001U); + BoardModelMotionShiftSet(lbl_1_bss_C[10], 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); arg1->unk00_bit0 = 1; } } @@ -668,7 +668,7 @@ void fn_1_9474(s32 arg0) HuPrcVSleep(); } - BoardPlayerMotionShiftSet(arg0, 7, 0.0f, 8.0f, 0U); + BoardPlayerMotionShiftSet(arg0, 7, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(8); while (BoardPlayerMotionEndCheck(arg0) == 0) { diff --git a/src/REL/w03Dll/mg_item.c b/src/REL/w03Dll/mg_item.c index 53e6d165..349a7176 100644 --- a/src/REL/w03Dll/mg_item.c +++ b/src/REL/w03Dll/mg_item.c @@ -288,7 +288,7 @@ void fn_1_9FE4(void) VECSubtract(&sp18, &sp24, &spC); temp_f30 = (atan2(spC.z, spC.x) / M_PI * 180.0); sp8 = BoardModelRotYGet(lbl_1_bss_C[11]); - BoardModelMotionShiftSet(lbl_1_bss_C[11], lbl_1_data_4DA, 0.0f, 10.0, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_C[11], lbl_1_data_4DA, 0.0f, 10.0, HU3D_MOTATTR_LOOP); while (BoardDAngleCalcRange(&sp8, temp_f30, 10.0) == 0) { BoardModelRotYSet(lbl_1_bss_C[11], sp8); @@ -316,7 +316,7 @@ void fn_1_9FE4(void) HuAudFXPlay(0x362); BoardCameraQuakeSet(3, 100.0f); fn_1_B8E8(1); - BoardModelMotionShiftSet(lbl_1_bss_C[11], lbl_1_data_4DC, 0.0f, 10.0, 0x40000005); + BoardModelMotionShiftSet(lbl_1_bss_C[11], lbl_1_data_4DC, 0.0f, 10.0, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); VECSubtract(&sp24, &sp30, &spC); spC.x /= 60.0f; @@ -333,14 +333,14 @@ void fn_1_9FE4(void) temp_f30 = 0.0f; sp8 = BoardModelRotYGet(lbl_1_bss_C[11]); - BoardModelMotionShiftSet(lbl_1_bss_C[11], lbl_1_data_4DA, 0.0f, 10.0, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_C[11], lbl_1_data_4DA, 0.0f, 10.0, HU3D_MOTATTR_LOOP); while (BoardDAngleCalcRange(&sp8, temp_f30, 10.0) == 0) { BoardModelRotYSet(lbl_1_bss_C[11], sp8); HuPrcVSleep(); } - BoardModelMotionShiftSet(lbl_1_bss_C[11], 1, 0.0f, 10.0, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_C[11], 1, 0.0f, 10.0, HU3D_MOTATTR_LOOP); } void fn_1_A44C(s32 arg0) @@ -586,10 +586,10 @@ void fn_1_ACD8(s32 arg0) MGSeqParamSet(temp_r31->unk4, 2, -1U); temp_r31->unk4 = -1; } - BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 0xB, 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 0xB, 0.0f, 10.0f, HU3D_MOTATTR_NONE); return; case 3: - BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 7, 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(temp_r31->unk00_bit4, 7, 0.0f, 10.0f, HU3D_MOTATTR_NONE); break; } } @@ -811,7 +811,7 @@ void fn_1_B4AC(omObjData *arg0, someBits2 *arg1) HuAudFXPlay(0x30C); BoardModelHookObjReset(lbl_1_bss_C[9], lbl_1_data_508[arg1->unk2]); temp_f31 = BoardModelMotionTimeGet(lbl_1_bss_C[9]); - BoardModelMotionShiftSet(lbl_1_bss_C[9], 0, 15.0f, 10.0f, 0x40000004U); + BoardModelMotionShiftSet(lbl_1_bss_C[9], 0, 15.0f, 10.0f, HU3D_MOTATTR_REV); BoardModelMotionSpeedSet(lbl_1_bss_C[9], 0.5f); BoardModelMotionTimeSet(lbl_1_bss_C[9], temp_f31); BoardModelPosSetV(arg1->unk_06[arg1->unk2], &sp8); diff --git a/src/REL/w03Dll/river.c b/src/REL/w03Dll/river.c index ed9ca65c..98423294 100644 --- a/src/REL/w03Dll/river.c +++ b/src/REL/w03Dll/river.c @@ -254,7 +254,7 @@ void fn_1_6B98(s32 arg0) { s16 var_r31; s16 i; - BoardModelMotionShiftSet(lbl_1_data_38A, 2, 0.0f, 10.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_38A, 2, 0.0f, 10.0f, HU3D_MOTATTR_NONE); sp8 = BoardModelRotYGet(lbl_1_data_38A); temp_f31 = sp8 + 180.0f; @@ -277,7 +277,7 @@ void fn_1_6B98(s32 arg0) { spC.y /= 120.0f; spC.z = spC.z / 120.0f; BoardCameraTargetModelSet(lbl_1_data_388); - BoardModelMotionShiftSet(lbl_1_data_38A, 3, 0.0f, 4.0f, 0x40000001U); + BoardModelMotionShiftSet(lbl_1_data_38A, 3, 0.0f, 4.0f, HU3D_MOTATTR_LOOP); HuPrcSleep(4); var_r31 = 0; @@ -300,7 +300,7 @@ void fn_1_6B98(s32 arg0) { BoardModelPosSetV(lbl_1_data_388, &sp18); BoardCameraTargetModelSet(-1); - BoardModelMotionShiftSet(lbl_1_data_38A, 2, 0.0f, 10.0f, 0x40000004U); + BoardModelMotionShiftSet(lbl_1_data_38A, 2, 0.0f, 10.0f, HU3D_MOTATTR_REV); sp8 = BoardModelRotYGet(lbl_1_data_38A); temp_f31 = 0.0f; @@ -313,7 +313,7 @@ void fn_1_6B98(s32 arg0) { HuPrcVSleep(); } - BoardModelMotionShiftSet(lbl_1_data_38A, 1, 0.0f, 10.0f, 0x40000001U); + BoardModelMotionShiftSet(lbl_1_data_38A, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); } extern s32 lbl_1_data_368[]; @@ -349,7 +349,7 @@ void fn_1_6F9C(s32 arg0) { lbl_1_bss_124 = 1; HuAudFXPlay(lbl_1_data_368[GWPlayer[arg0].character]); - BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); for (var_r30 = 0, var_f31 = 0.0f; var_f31 < 60.0f; var_f31 += 1.0f) { VECAdd(&sp14, &sp8, &sp14); @@ -357,7 +357,7 @@ void fn_1_6F9C(s32 arg0) { if (sp14.y <= sp20.y) { sp14.y = sp20.y; if (var_r30 == 0) { - BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); var_r30 = 1; } } @@ -365,7 +365,7 @@ void fn_1_6F9C(s32 arg0) { HuPrcVSleep(); } - BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(10); BoardPlayerIdleSet(arg0); @@ -401,7 +401,7 @@ void fn_1_735C(s32 arg0) { sp8.y = 0.0f; HuAudFXPlay(lbl_1_data_368[GWPlayer[arg0].character]); - BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); if (lbl_1_bss_0->unk0 != 0) { var_f30 = 0.25f; } else { @@ -414,7 +414,7 @@ void fn_1_735C(s32 arg0) { if (sp14.y <= sp20.y && var_f31 > 48.0f) { sp14.y = sp20.y; if (var_r30 == 0) { - BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); var_r30 = 1; } } diff --git a/src/REL/w03Dll/statue.c b/src/REL/w03Dll/statue.c index d9519b4f..914ee853 100644 --- a/src/REL/w03Dll/statue.c +++ b/src/REL/w03Dll/statue.c @@ -278,7 +278,7 @@ void fn_1_19DC(s32 arg0, s32 arg1) { HuAudFXPlay(var_r29); BoardPlayerVoiceEnableSet(arg0, lbl_1_bss_6A, 0); - BoardPlayerMotionShiftSet(arg0, lbl_1_bss_6A, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(arg0, lbl_1_bss_6A, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(9); while (BoardPlayerMotionEndCheck(arg0) == 0) { @@ -289,7 +289,7 @@ void fn_1_19DC(s32 arg0, s32 arg1) { HuPrcSleep(60); if (arg1 != 0) { - BoardPlayerMotionShiftSet(arg0, lbl_1_bss_68, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(arg0, lbl_1_bss_68, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(9); while (BoardPlayerMotionEndCheck(arg0) == 0) { HuPrcVSleep(); @@ -306,7 +306,7 @@ void fn_1_19DC(s32 arg0, s32 arg1) { } BoardAudSeqPause(0, 1, 1000); - BoardPlayerMotionShiftSet(arg0, lbl_1_data_280, 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(arg0, lbl_1_data_280, 0.0f, 10.0f, HU3D_MOTATTR_NONE); HuPrcSleep(11); while (BoardPlayerMotionEndCheck(arg0) == 0) { diff --git a/src/REL/w04Dll/big_boo.c b/src/REL/w04Dll/big_boo.c index ff859078..ddc030bc 100755 --- a/src/REL/w04Dll/big_boo.c +++ b/src/REL/w04Dll/big_boo.c @@ -391,7 +391,7 @@ static void fn_1_6CF8(void) { HuPrcSleep(0x78); for (i = 0; i < 3; i++) { BoardPlayerModelAttrReset(sp8[i], 0x40000001); - BoardPlayerMotionShiftSet(sp8[i], lbl_1_bss_114[sp8[i]][1], 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(sp8[i], lbl_1_bss_114[sp8[i]][1], 0.0f, 5.0f, HU3D_MOTATTR_NONE); } BoardModelPosGet(lbl_1_bss_274, &sp10); var_r28 = 10; @@ -407,7 +407,7 @@ static void fn_1_6CF8(void) { HuPrcVSleep(); } for (i = 0; i < 3; i++) { - BoardPlayerMotionShiftSet(sp8[i], 1, 0.0f, 5.0f, 0x40000001); + BoardPlayerMotionShiftSet(sp8[i], 1, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); } } @@ -780,7 +780,7 @@ static void fn_1_7888(void) { var_f31 = -40.0f; } if (var_r28 == var_r27) { - BoardPlayerMotionShiftSet(lbl_1_bss_282, 7, 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_282, 7, 0.0f, 10.0f, HU3D_MOTATTR_NONE); break; } HuPrcVSleep(); @@ -977,7 +977,7 @@ static void fn_1_8A60(void) { } } temp_r27 = HuAudSStreamPlay(6); - BoardPlayerMotionShiftSet(lbl_1_bss_282, 7, 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_282, 7, 0.0f, 10.0f, HU3D_MOTATTR_NONE); while (!BoardPlayerMotionEndCheck(lbl_1_bss_282)) { HuPrcVSleep(); } @@ -1008,7 +1008,7 @@ static void fn_1_98A0(void) { BoardModelPosGet(lbl_1_bss_274, &sp14); var_f30 = BoardModelRotYGet(lbl_1_bss_274); - BoardModelMotionShiftSet(lbl_1_bss_274, 2, 0.0f, 25.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_274, 2, 0.0f, 25.0f, HU3D_MOTATTR_LOOP); for (i = 0; i < 25; i++) { var_f30 += 7.2f; BoardModelRotYSet(lbl_1_bss_274, var_f30); diff --git a/src/REL/w04Dll/boo_event.c b/src/REL/w04Dll/boo_event.c index 8d3bde5c..c3cc3e8f 100755 --- a/src/REL/w04Dll/boo_event.c +++ b/src/REL/w04Dll/boo_event.c @@ -187,7 +187,7 @@ static void fn_1_20EC(void) { HuPrcVSleep(); } BoardCameraMotionWait(); - BoardPlayerMotionShiftSet(temp_r30, lbl_1_bss_52[temp_r30][0], 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(temp_r30, lbl_1_bss_52[temp_r30][0], 0.0f, 5.0f, HU3D_MOTATTR_NONE); HuAudPlayerVoicePlay(temp_r30, 0x128); BoardModelPosGet(lbl_1_bss_14[3], &sp20); BoardModelPosSetV(lbl_1_bss_FA, &sp20); @@ -508,7 +508,7 @@ static void fn_1_30A4(void) { } BoardPlayerPosSetV(i, &sp14); BoardPlayerRotYSet(i, 0.0f); - BoardPlayerMotionShiftSet(i, lbl_1_bss_52[GWSystem.player_curr][1], 0.0f, 10.0f, 0x40000001); + BoardPlayerMotionShiftSet(i, lbl_1_bss_52[GWSystem.player_curr][1], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); temp_r31->unk08 = i; } if (temp_r31->unk06 == 0) { @@ -604,7 +604,7 @@ static void fn_1_38D8(void) { temp_r30 = HuPrcCurrentGet()->user_data; temp_r31 = temp_r30->unk08; temp_r30->unk08 = -1; - BoardPlayerMotionShiftSet(temp_r31, 4, 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(temp_r31, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); sp18 = lbl_1_bss_80[temp_r31]; GWPlayer[temp_r31].space_curr = lbl_1_bss_B0; BoardPlayerPosGet(temp_r31, &sp24); @@ -917,7 +917,7 @@ static void fn_1_4848(void) { } HuPrcVSleep(); } - BoardPlayerMotionShiftSet(temp_r30, lbl_1_bss_52[temp_r30][0], 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(temp_r30, lbl_1_bss_52[temp_r30][0], 0.0f, 5.0f, HU3D_MOTATTR_NONE); HuAudPlayerVoicePlay(temp_r30, 0x128); for (i = 0; i < 65; i++) { BoardModelPosGet(lbl_1_bss_FA, &sp14); @@ -927,7 +927,7 @@ static void fn_1_4848(void) { } HuPrcVSleep(); } - BoardPlayerMotionShiftSet(temp_r30, 1, 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(temp_r30, 1, 0.0f, 5.0f, HU3D_MOTATTR_NONE); BoardModelPosGet(lbl_1_bss_FA, &sp14); temp_f28 = VECDistanceXZ(&sp20, &sp14); if (temp_f28 > 200.0f) { diff --git a/src/REL/w04Dll/bridge.c b/src/REL/w04Dll/bridge.c index 97f7569a..005223a4 100755 --- a/src/REL/w04Dll/bridge.c +++ b/src/REL/w04Dll/bridge.c @@ -122,7 +122,7 @@ void fn_1_1618(void) { BoardWinWait(); BoardWinKill(); } - BoardPlayerMotionShiftSet(temp_r31, 1, 0.0f, 10.0f, 0x40000001); + BoardPlayerMotionShiftSet(temp_r31, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); BoardCameraViewSet(1); BoardCameraMotionWait(); BoardRollDispSet(1); diff --git a/src/REL/w04Dll/mg_coin.c b/src/REL/w04Dll/mg_coin.c index 29557d44..fb7f32c5 100755 --- a/src/REL/w04Dll/mg_coin.c +++ b/src/REL/w04Dll/mg_coin.c @@ -156,7 +156,7 @@ void fn_1_C7D4(void) { while (!BoardPlayerMotBlendCheck(lbl_1_bss_324)) { HuPrcVSleep(); } - BoardPlayerMotionShiftSet(lbl_1_bss_324, 4, 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_324, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); var_f31 = 0.0f; temp_f30 = 8.0f; VECSubtract(&sp2C, &sp20, &sp38); @@ -411,7 +411,7 @@ static void fn_1_D770(void) { var_f31 = -20.0f; } if (var_r29 == lbl_1_bss_314) { - BoardPlayerMotionShiftSet(lbl_1_bss_324, 7, 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_324, 7, 0.0f, 10.0f, HU3D_MOTATTR_NONE); break; } HuPrcVSleep(); @@ -424,7 +424,7 @@ static void fn_1_D770(void) { BoardWinKill(); temp_r3 = HuPrcCreate(fn_1_E004, 0x2004, 0x1000, 0); temp_r3->user_data = NULL; - BoardPlayerMotionShiftSet(lbl_1_bss_324, 4, 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_324, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); var_f30 = 0.0f; temp_f29 = 8.0f; lbl_1_bss_308.z = sp18.z + 100.0f; @@ -549,7 +549,7 @@ static void fn_1_E374(omObjData *arg0) { arg0->scale.x = sp14.x; arg0->scale.y = sp14.y; arg0->scale.z = sp14.z; - BoardPlayerMotionShiftSet(lbl_1_bss_324, 4, 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_324, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); arg0->func = fn_1_E4C0; } } diff --git a/src/REL/w04Dll/mg_item.c b/src/REL/w04Dll/mg_item.c index 9c747954..6f22fb6b 100755 --- a/src/REL/w04Dll/mg_item.c +++ b/src/REL/w04Dll/mg_item.c @@ -126,7 +126,7 @@ void fn_1_A1F0(void) { while (BoardModelMotionTimeGet(lbl_1_bss_14[10]) < BoardModelMotionMaxTimeGet(lbl_1_bss_14[10])) { HuPrcVSleep(); } - BoardModelMotionShiftSet(lbl_1_bss_14[10], 1, 0.0f, 5.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_14[10], 1, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); BoardAudSeqPause(0, 1, 1000); BoardModelMotionTimeSet(lbl_1_bss_14[6], 0.0f); BoardModelAttrReset(lbl_1_bss_14[6], 0x40000002); @@ -299,7 +299,7 @@ static void fn_1_A7E8(void) { } BoardModelVisibilitySet(var_r28, 0); BoardPlayerPosGet(lbl_1_bss_2AC, &sp18); - BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 4, 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); var_f30 = 0.0f; var_f29 = 12.0f; sp3C = sp54[var_r30]; @@ -330,7 +330,7 @@ static void fn_1_A7E8(void) { BoardModelMotionTimeSet(lbl_1_bss_29E[var_r30], 0.0f); BoardModelAttrReset(lbl_1_bss_29E[var_r30], 0x40000002); BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30); - BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 1, 0.0f, 5.0f, 0x40000001); + BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 1, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); while (BoardModelMotionTimeGet(lbl_1_bss_29E[var_r30]) < BoardModelMotionMaxTimeGet(lbl_1_bss_29E[var_r30])) { if (BoardModelMotionTimeGet(lbl_1_bss_29E[var_r30]) >= 13.0f) { BoardPlayerPosGet(lbl_1_bss_2AC, &sp30); @@ -375,7 +375,7 @@ static void fn_1_A7E8(void) { while (!BoardPlayerMotBlendCheck(lbl_1_bss_2AC)) { HuPrcVSleep(); } - BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 4, 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); var_f30 = 0.0f; var_f29 = 12.0f; BoardPlayerPosGet(lbl_1_bss_2AC, &sp30); @@ -402,7 +402,7 @@ static void fn_1_A7E8(void) { } omVibrate(lbl_1_bss_2AC, 12, 6, 6); BoardPlayerPosSetV(lbl_1_bss_2AC, &sp30); - BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 1, 0.0f, 5.0f, 0x40000001); + BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 1, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); BoardModelPosGet(lbl_1_bss_298[temp_r29], &sp24); sp3C = sp24; sp3C.z += 100.0f; @@ -460,7 +460,7 @@ static void fn_1_A7E8(void) { BoardPlayerItemAdd(lbl_1_bss_2AC, lbl_1_bss_2A6[temp_r29]); omVibrate(lbl_1_bss_2AC, 12, 6, 6); sp8 = HuAudSStreamPlay(2); - BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 7, 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_2AC, 7, 0.0f, 5.0f, HU3D_MOTATTR_NONE); while (!BoardPlayerMotionEndCheck(lbl_1_bss_2AC)) { HuPrcVSleep(); } diff --git a/src/REL/w05Dll/dolphin.c b/src/REL/w05Dll/dolphin.c index c156f1ef..6870e9c0 100644 --- a/src/REL/w05Dll/dolphin.c +++ b/src/REL/w05Dll/dolphin.c @@ -180,7 +180,7 @@ void fn_1_4034(s32 arg0) } Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_118), lbl_1_data_22C[var_r27], &sp34); temp_f25 = (180.0 * (atan2((sp34.x - sp40.x), (sp34.z - sp40.z)) / M_PI)); - BoardModelMotionShiftSet(lbl_1_bss_64, 2, 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_64, 2, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); while (fn_1_1208(lbl_1_bss_64, temp_f25, 10.0f) == 0) { HuPrcVSleep(); @@ -244,7 +244,7 @@ loop_37: } fn_1_66C0(1, &sp40); - BoardModelMotionShiftSet(lbl_1_bss_64, 5, 0.0f, 5.0f, 0); + BoardModelMotionShiftSet(lbl_1_bss_64, 5, 0.0f, 5.0f, HU3D_MOTATTR_NONE); var_r30 = 0; var_r31 = 0; diff --git a/src/REL/w05Dll/hotel.c b/src/REL/w05Dll/hotel.c index 8838a724..d05260b2 100644 --- a/src/REL/w05Dll/hotel.c +++ b/src/REL/w05Dll/hotel.c @@ -108,7 +108,7 @@ void fn_1_155C(void) { while (fn_1_1208(lbl_1_bss_14[4], temp_f31, 10.0f) == 0) { HuPrcVSleep(); } - BoardModelMotionShiftSet(lbl_1_bss_14[4], 0, 0.0f, 5.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_14[4], 0, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); var_r30 = BoardPlayerCoinsGet(lbl_1_bss_28); sprintf(sp18, "%d", lbl_1_bss_0->unk_00); if (var_r30 > 0) { @@ -188,7 +188,7 @@ void fn_1_155C(void) { while (fn_1_1208(lbl_1_bss_14[4], 0.0f, 15.0f) == 0) { HuPrcVSleep(); } - BoardModelMotionShiftSet(lbl_1_bss_14[4], 0, 0.0f, 5.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_14[4], 0, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); BoardCameraViewSet(1); while (BoardPlayerMotBlendCheck(lbl_1_bss_28) == 0) { @@ -271,7 +271,7 @@ void fn_1_1E44(void) { while (fn_1_1208(lbl_1_bss_14[4], temp_f31, 10.0f) == 0) { HuPrcVSleep(); } - BoardModelMotionShiftSet(lbl_1_bss_14[4], 0, 0.0f, 5.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_14[4], 0, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); temp_f31 = 180.0 * (atan2((sp2C.x - sp50.x), (sp2C.z - sp50.z)) / M_PI); BoardPlayerMotBlendSet(lbl_1_bss_28, temp_f31, 0xF); @@ -377,17 +377,17 @@ void fn_1_1E44(void) { BoardWinWait(); BoardWinKill(); HuPrcSleep(0x1E); - BoardModelMotionShiftSet(lbl_1_bss_14[4], sp8[3], 0.0f, 5.0f, 0U); + BoardModelMotionShiftSet(lbl_1_bss_14[4], sp8[3], 0.0f, 5.0f, HU3D_MOTATTR_NONE); for (var_r31 = 0; var_r31 < 4; var_r31++) { - BoardPlayerMotionShiftSet(var_r31, sp1C[var_r31][1], 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(var_r31, sp1C[var_r31][1], 0.0f, 5.0f, HU3D_MOTATTR_NONE); BoardPlayerVoiceEnableSet(var_r31, 6, 1); } HuPrcSleep(0x23); - BoardModelMotionShiftSet(lbl_1_bss_14[4], 0, 0.0f, 5.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_14[4], 0, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); for (var_r31 = 0; var_r31 < 4; var_r31++) { - BoardPlayerMotionShiftSet(var_r31, 1, 0.0f, 5.0f, 0x40000001); + BoardPlayerMotionShiftSet(var_r31, 1, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); } } BoardCameraViewSet(1); @@ -413,7 +413,7 @@ void fn_1_1E44(void) { while (fn_1_1208(lbl_1_bss_14[4], 0.0f, 15.0f) == 0) { HuPrcVSleep(); } - BoardModelMotionShiftSet(lbl_1_bss_14[4], 0, 0.0f, 5.0f, 0x40000001U); + BoardModelMotionShiftSet(lbl_1_bss_14[4], 0, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); for (var_r31 = 0; var_r31 < 4; var_r31++) { BoardModelMotionKill(lbl_1_bss_14[4], sp8[var_r31]); diff --git a/src/REL/w05Dll/mg_coin.c b/src/REL/w05Dll/mg_coin.c index 7421e2e1..36c2269a 100644 --- a/src/REL/w05Dll/mg_coin.c +++ b/src/REL/w05Dll/mg_coin.c @@ -449,7 +449,7 @@ void fn_1_AB24(void) var_f31 = -20.0f; } if (var_r29 == lbl_1_bss_C6) { - BoardPlayerMotionShiftSet(lbl_1_bss_C0, 7, 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_C0, 7, 0.0f, 10.0f, HU3D_MOTATTR_NONE); break; } else { diff --git a/src/REL/w05Dll/mg_item.c b/src/REL/w05Dll/mg_item.c index 91159cae..4a58d846 100644 --- a/src/REL/w05Dll/mg_item.c +++ b/src/REL/w05Dll/mg_item.c @@ -79,7 +79,7 @@ void fn_1_6B7C(void) BoardModelMotionStartEndSet(lbl_1_bss_14[0], 0x1E, 0x5A); BoardModelAttrReset(lbl_1_bss_14[0], 0x40000002); BoardMusStart(1, 0x22, 0x7F, 0); - BoardPlayerMotionShiftSet(lbl_1_bss_B6, lbl_1_bss_9E[0], 0.0f, 30.0f, 0x40000001); + BoardPlayerMotionShiftSet(lbl_1_bss_B6, lbl_1_bss_9E[0], 0.0f, 30.0f, HU3D_MOTATTR_LOOP); HuPrcSleep(0x1E); BoardModelVisibilitySet(lbl_1_bss_A2, 1); BoardModelHookSet(BoardPlayerModelGet(lbl_1_bss_B6), "a-itemhook-r", lbl_1_bss_A2); @@ -348,7 +348,7 @@ void fn_1_799C(void) BoardPlayerItemAdd(lbl_1_bss_B6, lbl_1_bss_B0[temp_r31]); omVibrate(lbl_1_bss_B6, 0xC, 6, 6); temp_r27 = HuAudSStreamPlay(2); - BoardPlayerMotionShiftSet(lbl_1_bss_B6, 7, 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_B6, 7, 0.0f, 5.0f, HU3D_MOTATTR_NONE); while (BoardPlayerMotionEndCheck(lbl_1_bss_B6) == 0) { HuPrcVSleep(); @@ -520,7 +520,7 @@ void fn_1_8668(omObjData *arg0) if (arg0->work[0] == 0) { BoardModelHookReset(BoardPlayerModelGet(lbl_1_bss_B6)); - BoardPlayerMotionShiftSet(lbl_1_bss_B6, 1, 0.0f, 5.0f, 0x40000001); + BoardPlayerMotionShiftSet(lbl_1_bss_B6, 1, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); arg0->func = NULL; lbl_1_bss_8C->func = fn_1_7928; BoardModelKill(lbl_1_bss_A2); diff --git a/src/REL/w05Dll/monkey.c b/src/REL/w05Dll/monkey.c index 860bec35..d7a9d431 100644 --- a/src/REL/w05Dll/monkey.c +++ b/src/REL/w05Dll/monkey.c @@ -153,7 +153,7 @@ void fn_1_3044(void) { void fn_1_3430(void) { if (GWPlayer[lbl_1_bss_4C].bowser_suit == 0) { - BoardPlayerMotionShiftSet(lbl_1_bss_4C, lbl_1_bss_30[2], 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_4C, lbl_1_bss_30[2], 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(8); while (BoardPlayerMotionEndCheck(lbl_1_bss_4C) == 0) { @@ -178,7 +178,7 @@ void fn_1_3514(void) { s32 var_r31; BoardPlayerPosGet(lbl_1_bss_4C, &sp2C); - BoardPlayerMotionShiftSet(lbl_1_bss_4C, 4, 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(lbl_1_bss_4C, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); VECSubtract(&lbl_1_bss_38, &sp2C, &sp20); sp20.y = 0.0f; VECNormalize(&sp20, &sp20); @@ -284,7 +284,7 @@ void fn_1_3514(void) { } HuPrcVSleep(); } else { - BoardPlayerMotionShiftSet(lbl_1_bss_4C, 6, 0.0f, 8.0f, 0x40000001U); + BoardPlayerMotionShiftSet(lbl_1_bss_4C, 6, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); break; } } diff --git a/src/REL/w06Dll/bowser.c b/src/REL/w06Dll/bowser.c index 266b5ae3..c2590736 100755 --- a/src/REL/w06Dll/bowser.c +++ b/src/REL/w06Dll/bowser.c @@ -252,7 +252,7 @@ static void fn_1_95AC(s32 arg0) { BoardModelPosGet(lbl_1_data_49A, &sp2C); VECSubtract(&sp2C, &sp38, &sp20); VECNormalize(&sp20, &sp20); - BoardModelMotionShiftSet(lbl_1_data_498, 4, 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_498, 4, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(8); HuAudFXPlay(0x3C); BoardMusStart(1, 6, 0x7F, 0); @@ -280,13 +280,13 @@ static void fn_1_95AC(s32 arg0) { while (!BoardModelMotionEndCheck(lbl_1_data_498)) { HuPrcVSleep(); } - BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); BoardWinCreate(2, MAKE_MESSID(48, 2), 5); BoardWinWait(); BoardWinKill(); BoardCameraMotionStartEx(-1, NULL, NULL, 2000.0f, -1.0f, 21); BoardCameraMotionWait(); - BoardModelMotionShiftSet(lbl_1_data_498, 5, 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_498, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(8); while (BoardModelMotionTimeGet(lbl_1_data_498) < 80.0f) { HuPrcVSleep(); @@ -386,7 +386,7 @@ static void fn_1_9E5C(s32 arg0) { BoardModelPosGet(lbl_1_data_49A, &sp2C); VECSubtract(&sp2C, &sp38, &sp20); VECNormalize(&sp20, &sp20); - BoardModelMotionShiftSet(lbl_1_data_498, 4, 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_498, 4, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(8); HuAudFXPlay(0x3C); BoardMusStart(1, 6, 0x7F, 0); @@ -414,7 +414,7 @@ static void fn_1_9E5C(s32 arg0) { while (!BoardModelMotionEndCheck(lbl_1_data_498)) { HuPrcVSleep(); } - BoardModelMotionShiftSet(lbl_1_data_498, 7, 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_498, 7, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(9); while (BoardModelMotionTimeGet(lbl_1_data_498) < 33.0f) { HuPrcVSleep(); @@ -459,8 +459,8 @@ static void fn_1_9E5C(s32 arg0) { while (!BoardModelMotionEndCheck(lbl_1_data_498)) { HuPrcVSleep(); } - BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, 0x40000001); - BoardPlayerMotionShiftSet(arg0, var_r25, 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + BoardPlayerMotionShiftSet(arg0, var_r25, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(10); while (!BoardPlayerMotionEndCheck(arg0)) { HuPrcVSleep(); @@ -470,7 +470,7 @@ static void fn_1_9E5C(s32 arg0) { } else { var_r29 = MAKE_MESSID(48, 6); } - BoardModelMotionShiftSet(lbl_1_data_498, 3, 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_498, 3, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuAudFXPlay(0x3A); BoardWinCreate(2, var_r29, 5); BoardWinWait(); @@ -481,7 +481,7 @@ static void fn_1_9E5C(s32 arg0) { BoardCameraMoveSet(1); BoardCameraViewSet(1); BoardCameraMotionWait(); - BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); fn_1_B6A0(0.0f, 20); BoardAudSeqPause(0, 0, 1000); } @@ -502,7 +502,7 @@ static void fn_1_A408(s32 arg0) { BoardModelPosGet(lbl_1_data_49A, &sp2C); VECSubtract(&sp2C, &sp38, &sp20); VECNormalize(&sp20, &sp20); - BoardModelMotionShiftSet(lbl_1_data_498, 4, 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_498, 4, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(8); HuAudFXPlay(0x3C); BoardMusStart(1, 6, 0x7F, 0); @@ -523,16 +523,16 @@ static void fn_1_A408(s32 arg0) { while (!BoardModelMotionEndCheck(lbl_1_data_498)) { HuPrcVSleep(); } - BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); BoardWinCreate(2, MAKE_MESSID(48, 7), 5); BoardWinWait(); BoardWinKill(); fn_1_BD08(0); BoardPlayerPosGet(arg0, &sp38); BoardAudSeqFadeOut(1, 1000); - BoardModelMotionShiftSet(lbl_1_data_498, 2, 0.0f, 10.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_498, 2, 0.0f, 10.0f, HU3D_MOTATTR_NONE); HuPrcSleep(55); - BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 5.0f, 0); + BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); HuPrcSleep(5); temp_r28 = HuAudFXPlay(0x3D); BoardPlayerPosGet(arg0, &sp20); @@ -684,7 +684,7 @@ static void fn_1_AB4C(s32 arg0, s32 arg1) { var_r26 = MAKE_MESSID(48, 10); var_r25 = 8; HuAudFXPlay(0x3A); - BoardModelMotionShiftSet(lbl_1_data_498, 3, 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_498, 3, 0.0f, 8.0f, HU3D_MOTATTR_NONE); } else { var_r26 = MAKE_MESSID(48, 8); var_r25 = 7; @@ -698,7 +698,7 @@ static void fn_1_AB4C(s32 arg0, s32 arg1) { HuPrcVSleep(); } if (var_r29 != 0) { - BoardModelMotionShiftSet(lbl_1_data_498, 7, 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_498, 7, 0.0f, 8.0f, HU3D_MOTATTR_NONE); temp_r23 = BoardPlayerCoinsGet(arg0); var_r30 = temp_r23 - (BoardPlayerCoinsGet(arg0) >> 1); if (var_r30 < 0) { @@ -718,7 +718,7 @@ static void fn_1_AB4C(s32 arg0, s32 arg1) { } HuAudFXPlay(0xF); } else { - BoardModelMotionShiftSet(lbl_1_data_498, 8, 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_498, 8, 0.0f, 8.0f, HU3D_MOTATTR_NONE); BoardWinCreate(2, MAKE_MESSID(48, 9), 5); BoardWinWait(); BoardWinKill(); @@ -743,7 +743,7 @@ static void fn_1_AB4C(s32 arg0, s32 arg1) { BoardSpaceTypeSet(0, var_r24, 1); BoardMusStartBoard(); } - BoardPlayerMotionShiftSet(arg0, var_r25, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(arg0, var_r25, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(8); BoardModelAttrSet(lbl_1_data_498, 0x40000004); while (!BoardModelMotionEndCheck(lbl_1_data_498)) { @@ -756,7 +756,7 @@ static void fn_1_AB4C(s32 arg0, s32 arg1) { BoardAudSeqFadeOut(1, 1000); } HuPrcSleep(48); - BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); BoardPlayerIdleSet(arg0); fn_1_B6A0(0.0f, 20); } @@ -776,7 +776,7 @@ static void fn_1_B27C(s32 arg0) { BoardModelPosGet(lbl_1_data_49A, &sp2C); VECSubtract(&sp2C, &sp38, &sp20); VECNormalize(&sp20, &sp20); - BoardModelMotionShiftSet(lbl_1_data_498, 4, 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_498, 4, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(8); HuAudFXPlay(0x3C); sp14.x = 0.0f; @@ -797,9 +797,9 @@ static void fn_1_B27C(s32 arg0) { while (!BoardModelMotionEndCheck(lbl_1_data_498)) { HuPrcVSleep(); } - BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); BoardMusStart(1, 6, 0x7F, 0); - BoardModelMotionShiftSet(lbl_1_data_498, 7, 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_498, 7, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(8); var_r29 = MAKE_MESSID(48, 38); var_r27 = 50; @@ -821,12 +821,12 @@ static void fn_1_B27C(s32 arg0) { HuPrcVSleep(); } var_r29 = MAKE_MESSID(48, 39); - BoardModelMotionShiftSet(lbl_1_data_498, 3, 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_498, 3, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuAudFXPlay(0x3A); BoardWinCreate(2, var_r29, 5); BoardWinWait(); BoardWinKill(); - BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); BoardAudSeqFadeOut(1, 1000); HuPrcSleep(24); BoardPlayerIdleSet(arg0); @@ -862,7 +862,7 @@ static void fn_1_B6A0(float arg0, s16 arg1) { BoardModelRotYSet(lbl_1_data_498, arg0); return; } - BoardModelMotionShiftSet(lbl_1_data_498, 6, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_data_498, 6, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); BoardModelMotionSpeedSet(lbl_1_data_498, 2.0f); while (arg1 > 0) { var_f27 = var_f25 + BoardModelRotYGet(lbl_1_data_498); @@ -871,7 +871,7 @@ static void fn_1_B6A0(float arg0, s16 arg1) { arg1--; } BoardModelRotYSet(lbl_1_data_498, arg0); - BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } static void fn_1_B8E0(omObjData *arg0) { @@ -972,7 +972,7 @@ static void fn_1_BD8C(s32 arg0) { void fn_1_C108(s32 arg0) { if (arg0 != 0) { - BoardModelMotionShiftSet(lbl_1_data_498, 2, 0.0f, 10.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_498, 2, 0.0f, 10.0f, HU3D_MOTATTR_NONE); BoardModelMotionSpeedSet(lbl_1_data_498, 2.0f); HuPrcSleep(30); lbl_1_bss_0->unk00_field4 = 1; @@ -989,7 +989,7 @@ void fn_1_C108(s32 arg0) { while (!BoardModelMotionEndCheck(lbl_1_data_498)) { HuPrcVSleep(); } - BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } } @@ -1058,7 +1058,7 @@ static void fn_1_C40C(void) { BoardWinWait(); BoardWinKill(); HuAudFXPlay(0x359); - BoardModelMotionShiftSet(lbl_1_data_498, 4, 0.0f, 10.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_498, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); HuPrcSleep(11); HuAudFXPlay(0x33F); HuAudFXPlay(0x3C); @@ -1077,7 +1077,7 @@ static void fn_1_C40C(void) { while (!BoardModelMotionEndCheck(lbl_1_data_498)) { HuPrcVSleep(); } - BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 10.0f, 0); + BoardModelMotionShiftSet(lbl_1_data_498, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); BoardWinCreate(0, MAKE_MESSID(48, 12), -1); BoardWinWait(); BoardWinKill(); diff --git a/src/REL/w06Dll/bridge.c b/src/REL/w06Dll/bridge.c index 98e74c7d..d1b18256 100755 --- a/src/REL/w06Dll/bridge.c +++ b/src/REL/w06Dll/bridge.c @@ -118,7 +118,7 @@ void fn_1_7BB0(void) { temp_r27 = BoardSpaceFlagPosGet(0, lbl_1_data_434[i][var_r28], &sp8); BoardModelPosSetV(lbl_1_bss_D0[i], &sp8); BoardModelRotYSet(lbl_1_bss_D0[i], lbl_1_data_41C[i][var_r28]); - BoardModelMotionShiftSet(lbl_1_bss_D0[i], 0, 60.0f * var_f29, 0.0f, 0); + BoardModelMotionShiftSet(lbl_1_bss_D0[i], 0, 60.0f * var_f29, 0.0f, HU3D_MOTATTR_NONE); HuPrcSleep(2); BoardModelMotionSpeedSet(lbl_1_bss_D0[i], 0.0f); lbl_1_bss_D6[i][var_r28] = temp_r27; @@ -157,7 +157,7 @@ void fn_1_7FA4(void) { temp_r29 = BoardSpaceFlagPosGet(0, lbl_1_data_434[var_r31][temp_r30], &sp8); BoardModelPosSetV(lbl_1_bss_D0[var_r31], &sp8); BoardModelRotYSet(lbl_1_bss_D0[var_r31], lbl_1_data_41C[var_r31][temp_r30]); - BoardModelMotionShiftSet(lbl_1_bss_D0[var_r31], 0, 60.0f * temp_f31, 0.0f, 0); + BoardModelMotionShiftSet(lbl_1_bss_D0[var_r31], 0, 60.0f * temp_f31, 0.0f, HU3D_MOTATTR_NONE); HuPrcSleep(2); BoardModelMotionSpeedSet(lbl_1_bss_D0[var_r31], 0.0f); lbl_1_bss_D6[var_r31][temp_r30] = temp_r29; @@ -249,7 +249,7 @@ static s32 fn_1_8490(s32 arg0, s8 arg1) { BoardPlayerIdleSet(arg0); HuPrcSleep(30); } else { - BoardPlayerMotionShiftSet(arg0, lbl_1_data_418, 0.0f, 6.0f, 0); + BoardPlayerMotionShiftSet(arg0, lbl_1_data_418, 0.0f, 6.0f, HU3D_MOTATTR_NONE); BoardPlayerMotionSpeedSet(arg0, 1.5f); HuPrcSleep(60); } @@ -262,7 +262,7 @@ static s32 fn_1_8490(s32 arg0, s8 arg1) { BoardPlayerIdleSet(arg0); HuPrcSleep(30); } else { - BoardPlayerMotionShiftSet(arg0, lbl_1_data_418, 0.0f, 6.0f, 0x40000001); + BoardPlayerMotionShiftSet(arg0, lbl_1_data_418, 0.0f, 6.0f, HU3D_MOTATTR_LOOP); BoardPlayerMotionSpeedSet(arg0, 3.0f); HuPrcSleep(60); } diff --git a/src/REL/w06Dll/fire.c b/src/REL/w06Dll/fire.c index 794377cc..2fcc6899 100755 --- a/src/REL/w06Dll/fire.c +++ b/src/REL/w06Dll/fire.c @@ -95,7 +95,7 @@ static void fn_1_6F80(void) { fn_1_72CC(temp_r31); fn_1_7760(temp_r31); BoardCameraMotionWait(); - BoardModelMotionShiftSet(lbl_1_bss_C0, 0, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_C0, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); HuPrcSleep(8); while (BoardModelMotionTimeGet(lbl_1_bss_C0) < 22.0f) { HuPrcVSleep(); @@ -113,7 +113,7 @@ static void fn_1_6F80(void) { if (lbl_1_bss_B8 != -1) { HuAudFXStop(lbl_1_bss_B8); } - BoardModelMotionShiftSet(lbl_1_bss_C0, 0, 60.0f, 8.0f, 0); + BoardModelMotionShiftSet(lbl_1_bss_C0, 0, 60.0f, 8.0f, HU3D_MOTATTR_NONE); fn_1_73EC(0.0f); fn_1_7574(); while (!BoardModelMotionEndCheck(lbl_1_bss_C0)) { diff --git a/src/REL/w06Dll/mg_coin.c b/src/REL/w06Dll/mg_coin.c index daa0ac8b..5734aa84 100755 --- a/src/REL/w06Dll/mg_coin.c +++ b/src/REL/w06Dll/mg_coin.c @@ -208,7 +208,7 @@ static s32 fn_1_4BF8(s32 arg0) { BoardPlayerRotYSet(arg0, atan2d(-sp20.x, -sp20.z)); BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 40); BoardModelPosGet(lbl_1_bss_C[5], &sp2C); - BoardModelMotionShiftSet(lbl_1_bss_C[5], lbl_1_data_1DA, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_C[5], lbl_1_data_1DA, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); BoardModelMotionSpeedSet(lbl_1_bss_C[5], 2.0f); while (GWPlayer[arg0].moving) { BoardPlayerPosGet(arg0, &sp38); @@ -216,7 +216,7 @@ static s32 fn_1_4BF8(s32 arg0) { BoardModelRotYSet(lbl_1_bss_C[5], atan2d(sp20.x, sp20.z)); HuPrcVSleep(); } - BoardModelMotionShiftSet(lbl_1_bss_C[5], 1, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_C[5], 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); BoardPlayerIdleSet(arg0); BoardPlayerRotYSet(arg0, -90.0f); BoardAudSeqPause(0, 1, 1000); @@ -255,7 +255,7 @@ static void fn_1_4FB8(s32 arg0) { while (lbl_1_bss_54) { HuPrcVSleep(); } - BoardPlayerMotionShiftSet(arg0, 7, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(arg0, 7, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(8); while (!BoardPlayerMotionEndCheck(arg0)) { HuPrcVSleep(); @@ -281,7 +281,7 @@ static void fn_1_519C(s32 arg0) { if (lbl_1_bss_8C == 0) { BoardPlayerPosLerpStart(arg0, &sp20, &sp14, 40); BoardModelPosGet(lbl_1_bss_C[5], &sp20); - BoardModelMotionShiftSet(lbl_1_bss_C[5], lbl_1_data_1DA, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_C[5], lbl_1_data_1DA, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); BoardModelMotionSpeedSet(lbl_1_bss_C[5], 2.0f); while (GWPlayer[arg0].moving) { BoardPlayerPosGet(arg0, &sp14); @@ -289,7 +289,7 @@ static void fn_1_519C(s32 arg0) { BoardModelRotYSet(lbl_1_bss_C[5], atan2d(sp8.x, sp8.z)); HuPrcVSleep(); } - BoardModelMotionShiftSet(lbl_1_bss_C[5], 1, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_C[5], 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } BoardModelRotYSet(lbl_1_bss_C[5], 0.0f); BoardCameraMotionWait(); @@ -446,7 +446,7 @@ static void fn_1_59D0(s32 arg0) { return; } if (arg0 == 4) { - BoardModelMotionShiftSet(temp_r31->unk04, 2, 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(temp_r31->unk04, 2, 0.0f, 8.0f, HU3D_MOTATTR_NONE); temp_r31->unk02 = 10; return; } diff --git a/src/REL/w06Dll/mg_item.c b/src/REL/w06Dll/mg_item.c index fa37e956..0c83a033 100755 --- a/src/REL/w06Dll/mg_item.c +++ b/src/REL/w06Dll/mg_item.c @@ -377,7 +377,7 @@ static void fn_1_15CC(s32 arg0) { } fn_1_2048(lbl_1_bss_33, 3); temp_r25 = HuAudSStreamPlay(2); - BoardPlayerMotionShiftSet(arg0, 7, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(arg0, 7, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(8); while (!BoardPlayerMotionEndCheck(arg0)) { HuPrcVSleep(); @@ -969,7 +969,7 @@ static void fn_1_3698(s8 arg0) { sp18.z = sp24.z; temp_f31 = sp18.x - sp24.x; if (ABS(temp_f31) < 1.0f) { - BoardModelMotionShiftSet(lbl_1_bss_C[4], 1, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_C[4], 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); lbl_1_bss_28->trans.y = 0.0f; return; } @@ -982,7 +982,7 @@ static void fn_1_3698(s8 arg0) { VECSubtract(&sp18, &sp24, &spC); lbl_1_bss_28->trans.y = temp_f31 / var_f30; BoardModelRotYSet(lbl_1_bss_C[4], atan2d(spC.x, spC.z)); - BoardModelMotionShiftSet(lbl_1_bss_C[4], temp_r31->unk08, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_C[4], temp_r31->unk08, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); BoardModelMotionSpeedSet(lbl_1_bss_C[4], 2.0f); } @@ -1037,11 +1037,11 @@ static void fn_1_3974(omObjData *arg0) { fn_1_3560(0); temp_r31->unk06 = 0; BoardModelRotYSet(lbl_1_bss_C[4], 0.0f); - BoardModelMotionShiftSet(lbl_1_bss_C[4], 1, 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_C[4], 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); break; case 2: if (temp_r31->unk06++ == 0) { - BoardModelMotionShiftSet(lbl_1_bss_C[4], temp_r31->unk0A, 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_C[4], temp_r31->unk0A, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); break; } if (temp_r31->unk06 < 50) { @@ -1053,7 +1053,7 @@ static void fn_1_3974(omObjData *arg0) { case 4: temp_r31->unk00_field3 = 0; lbl_1_bss_33 = temp_r31->unk01[temp_r31->unk00_field2]; - BoardModelMotionShiftSet(lbl_1_bss_C[4], 1, 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(lbl_1_bss_C[4], 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); fn_1_3560(0); break; case 5: diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c index 12c726e7..52cc07a9 100644 --- a/src/REL/ztardll/main.c +++ b/src/REL/ztardll/main.c @@ -570,12 +570,12 @@ void fn_1_2350(void) if (var_r31 == 0x14) { HuAudFXPlay(0x9A); if (mgBattleStarMax < 6) { - Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][2], 0.0f, 10.0f, 0); - Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][2], 0.0f, 10.0f, 0); + Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][2], 0.0f, 10.0f, HU3D_MOTATTR_NONE); + Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][2], 0.0f, 10.0f, HU3D_MOTATTR_NONE); } else { - Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][3], 0.0f, 10.0f, 0); - Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][3], 0.0f, 10.0f, 0); + Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][3], 0.0f, 10.0f, HU3D_MOTATTR_NONE); + Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][3], 0.0f, 10.0f, HU3D_MOTATTR_NONE); } } HuPrcVSleep(); @@ -601,8 +601,8 @@ void fn_1_2350(void) } } else { - Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][0], 0.0f, 10.0f, 0x40000001); - Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][0], 0.0f, 10.0f, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { var_f31 = 1.0 - (var_r31 / 10.0); HuSprScaleSet(lbl_1_bss_50, 1, var_f31, var_f31); @@ -613,8 +613,8 @@ void fn_1_2350(void) } } else { - Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][4], 0.0f, 10.0f, 0); - Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][4], 0.0f, 10.0f, 0); + Hu3DMotionShiftSet(lbl_1_bss_36[0], lbl_1_bss_E[0][4], 0.0f, 10.0f, HU3D_MOTATTR_NONE); + Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][4], 0.0f, 10.0f, HU3D_MOTATTR_NONE); HuPrcSleep(0xB4); WipeColorSet(0, 0, 0); WipeCreate(2, 0, 0x1E); @@ -640,8 +640,8 @@ void fn_1_2350(void) Hu3DModelPosSet(lbl_1_bss_36[2], 125.0f + (400.0f * var_f31), 0.0f, 0.0f); Hu3DModelPosSet(lbl_1_bss_36[3], 275.0f + (400.0f * var_f31), 0.0f, 0.0f); if (var_r31 == 0x19) { - Hu3DMotionShiftSet(lbl_1_bss_36[2], lbl_1_bss_E[2][0], 0.0f, 10.0f, 0x40000001); - Hu3DMotionShiftSet(lbl_1_bss_36[3], lbl_1_bss_E[3][0], 0.0f, 10.0f, 0x40000001); + Hu3DMotionShiftSet(lbl_1_bss_36[2], lbl_1_bss_E[2][0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSet(lbl_1_bss_36[3], lbl_1_bss_E[3][0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); } if ((GWPlayerCfg[2].character < 8) && ((var_r31 % 5) == 0)) { HuAudFXPlay(GWPlayerCfg[2].character + 0xD5); @@ -942,14 +942,14 @@ void fn_1_4374(void) if (GWPlayerCfg[spC[var_r31]].character >= 8) { HuAudFXPlay(lbl_1_data_4A[GWPlayerCfg[spC[var_r31]].character - 8]); } - Hu3DMotionShiftSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][3], 0.0f, 10.0f, 0); + Hu3DMotionShiftSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][3], 0.0f, 10.0f, HU3D_MOTATTR_NONE); var_r30++; } else { if (GWPlayerCfg[spC[var_r31]].character >= 8) { HuAudFXPlay(lbl_1_data_56[GWPlayerCfg[spC[var_r31]].character - 8]); } - Hu3DMotionShiftSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][4], 0.0f, 10.0f, 0); + Hu3DMotionShiftSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][4], 0.0f, 10.0f, HU3D_MOTATTR_NONE); } } HuSprAttrReset(lbl_1_bss_50, 1, 4); diff --git a/src/game/board/basic_space.c b/src/game/board/basic_space.c index 678ff3a6..70df8cf9 100644 --- a/src/game/board/basic_space.c +++ b/src/game/board/basic_space.c @@ -90,7 +90,7 @@ void BoardLandBlueExec(s32 player, s32 space) { coin_chg = BoardCoinChgCreate(&pos, coins); HuAudFXPlay(839); BoardCameraMotionWait(); - BoardPlayerMotionShiftSet(player, 12, 0.0f, 4.0f, 0); + BoardPlayerMotionShiftSet(player, 12, 0.0f, 4.0f, HU3D_MOTATTR_NONE); for (i = 0; i < coins; i++) { BoardPlayerCoinsAdd(player, 1); @@ -131,7 +131,7 @@ void BoardLandRedExec(s32 player, s32 space) { coin_chg = BoardCoinChgCreate(&pos, -coins); HuAudFXPlay(840); BoardCameraMotionWait(); - BoardPlayerMotionShiftSet(player, 13, 0.0f, 4.0f, 0); + BoardPlayerMotionShiftSet(player, 13, 0.0f, 4.0f, HU3D_MOTATTR_NONE); for (i = 0; i < coins; i++) { BoardPlayerCoinsAdd(player, -1); HuAudFXPlay(14); diff --git a/src/game/board/battle.c b/src/game/board/battle.c index 650a0132..2f17e557 100755 --- a/src/game/board/battle.c +++ b/src/game/board/battle.c @@ -454,7 +454,7 @@ static void UpdateExplode(omObjData *arg0) { if (currSpace == GWPlayer[i].space_curr) { temp_f31 = 20.0f * BoardRandFloat(); HuAudFXPlay(bombFXTbl[GWPlayer[i].character]); - BoardPlayerMotionShiftSet(i, 6, temp_f31, 8.0f, 0x40000001); + BoardPlayerMotionShiftSet(i, 6, temp_f31, 8.0f, HU3D_MOTATTR_LOOP); } } CharModelLayerSetAll(2); diff --git a/src/game/board/block.c b/src/game/board/block.c index 11e6ca9e..8a70b5c9 100644 --- a/src/game/board/block.c +++ b/src/game/board/block.c @@ -116,7 +116,7 @@ static void BlockProc(void) BoardWinCreate(0, 0x10000, -1); BoardWinWait(); BoardWinKill(); - BoardPlayerMotionShiftSet(player, 0xB, 0, 8.0, 0.0); + BoardPlayerMotionShiftSet(player, 0xB, 0, 8.0, HU3D_MOTATTR_NONE); HuPrcSleep(9); while (BoardPlayerMotionTimeGet(player) < 30.0f) { HuPrcVSleep(); diff --git a/src/game/board/boo.c b/src/game/board/boo.c index b8f57490..dc546aeb 100755 --- a/src/game/board/boo.c +++ b/src/game/board/boo.c @@ -931,7 +931,7 @@ static void BallPlayerScare(omObjData *arg0, BallPlayerWork *arg1) { temp_r29 = arg0->data; temp_f31 = -BoardPlayerRotYGet(stealTarget); if (stealType == 2) { - BoardPlayerMotionShiftSet(stealTarget, temp_r29->unk04[3], 0.0f, 10.0f, 0x40000001); + BoardPlayerMotionShiftSet(stealTarget, temp_r29->unk04[3], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); SetBallPlayerState(0); } else { BoardPlayerMotBlendSet(stealTarget, temp_f31, 15); @@ -1039,7 +1039,7 @@ static void BallPlayerCatch(omObjData *arg0, BallPlayerWork *arg1) { omVibrate(stealTarget, 12, 4, 2); TakeBallStar(); } - BoardPlayerMotionShiftSet(stealTarget, temp_r27->unk04[0], 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(stealTarget, temp_r27->unk04[0], 0.0f, 10.0f, HU3D_MOTATTR_NONE); arg1->unk02 = 1; } if (stealType == 0) { @@ -1124,7 +1124,7 @@ static void SetBallBooState(s32 arg0) { ballBooObj->rot.y = (sp8.y - ballBooObj->trans.y) / 30.0f; ballBooObj->rot.z = (sp8.z - ballBooObj->trans.z) / 30.0f; temp_r31->unk02 = 30; - BoardModelMotionShiftSet(temp_r31->unk04, 1, 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(temp_r31->unk04, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); } if (arg0 == 5) { HuAudFXPlay(0x64); @@ -1133,7 +1133,7 @@ static void SetBallBooState(s32 arg0) { if (arg0 == 7) { temp_r31->unk08 = -ballBooObj->scale.y; HuAudFXPlay(0x64); - BoardModelMotionShiftSet(temp_r31->unk04, 5, 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(temp_r31->unk04, 5, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); } if (arg0 == 3) { battleTimer = 0; @@ -1200,7 +1200,7 @@ static void BallBooChase(omObjData *arg0, BallBooWork *arg1) { } else { SetBallBooState(0); } - BoardModelMotionShiftSet(arg1->unk04, 1, 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(arg1->unk04, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); } } @@ -1255,7 +1255,7 @@ static void BallBooFlash(omObjData *arg0, BallBooWork *arg1) { if (BoardDAngleCalcRange(&arg0->scale.y, arg1->unk08, 8.0f) != 0) { SetBallBooState(6); - BoardModelMotionShiftSet(arg1->unk04, 3, 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(arg1->unk04, 3, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); temp_f31 = BoardPlayerRotYGet(stealTarget); BoardPlayerPosGet(stealTarget, &sp8); sp8.x += 500.0 * sind(-temp_f31); diff --git a/src/game/board/boo_house.c b/src/game/board/boo_house.c index 447c3512..b35cadfd 100644 --- a/src/game/board/boo_house.c +++ b/src/game/board/boo_house.c @@ -253,7 +253,7 @@ static void ExecBooHouse(void) BoardPlayerMoveBetween(currPlayer, var_r30, temp_r29); BoardPlayerIdleSet(currPlayer); BoardMusStart(1, 1, 0x7F, 0); - BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[0], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); BoardWinCreate(2, hostMesTbl[GWBoardGet()][0], BoardWinPortraitGet()); BoardWinWait(); @@ -295,7 +295,7 @@ repeatWindowView: BoardStatusShowSet(currPlayer, 0); HuPrcVSleep(); } - BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[1], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[1], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); CloseBooHouse(); BoardCameraViewSet(1); BoardCameraRotSet(0.0f, 0.0f); @@ -409,19 +409,19 @@ static void OpenBooHouse(void) while (BoardModelMotionTimeGet(houseMdl[0]) < 90.0f) { HuPrcVSleep(); } - BoardModelMotionShiftSet(houseMdl[0], houseShowMot, 0.0f, 10.0f, 0x40000001); - BoardModelMotionShiftSet(houseMdl[1], houseHideMot, 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(houseMdl[0], houseShowMot, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + BoardModelMotionShiftSet(houseMdl[1], houseHideMot, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); BoardModelHookObjReset(houseMdl[0], "yoko02"); SetBooBallPos(); - BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[2], 0.0f, 10.0f, 0); + BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[2], 0.0f, 10.0f, HU3D_MOTATTR_NONE); } static void CloseBooHouse(void) { BoardModelPosSet(ballMdl, 0.0f, 0.0f, 0.0f); BoardModelHookSet(houseMdl[0], "yoko02", ballMdl); - BoardModelMotionShiftSet(houseMdl[1], 0, 90.0f, 10.0f, 0); - BoardModelMotionShiftSet(houseMdl[0], 0, 90.0f, 10.0f, 0); + BoardModelMotionShiftSet(houseMdl[1], 0, 90.0f, 10.0f, HU3D_MOTATTR_NONE); + BoardModelMotionShiftSet(houseMdl[0], 0, 90.0f, 10.0f, HU3D_MOTATTR_NONE); HuPrcSleep(0xA); while (BoardModelMotionShiftIDGet(houseMdl[0]) != -1) { @@ -697,7 +697,7 @@ void ApplyCoinSteal(s16 arg0, s16 arg1) BoardWinKill(); BoardStatusShowSetForce(currPlayer); BoardStatusShowSet(currPlayer, 1); - BoardPlayerMotionShiftSet(currPlayer, 7, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(currPlayer, 7, 0.0f, 8.0f, HU3D_MOTATTR_NONE); for (var_r30 = 0; var_r30 < arg0; var_r30++) { BoardPlayerCoinsAdd(currPlayer, 1); @@ -721,7 +721,7 @@ void ApplyStarSteal(void) BoardAudSeqPause(1, 1, 0x3E8); HuPrcSleep(0x17); BoardPlayerVoiceEnableSet(currPlayer, 7, 0); - BoardPlayerMotionShiftSet(currPlayer, 7, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(currPlayer, 7, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuAudFXPlay(boardStarSndTbl[GWPlayer[currPlayer].character]); BoardPlayerStarsAdd(currPlayer, 1); HuAudFXPlay(8); @@ -742,7 +742,7 @@ void ApplyBooLight(void) BoardWinCreate(2, MAKE_MESSID(7, 11), 3); BoardWinWait(); BoardWinKill(); - BoardPlayerMotionShiftSet(currPlayer, 8, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(currPlayer, 8, 0.0f, 8.0f, HU3D_MOTATTR_NONE); while (BoardPlayerMotionEndCheck(currPlayer) == 0) { HuPrcVSleep(); } @@ -860,13 +860,13 @@ void BoardBooHouseTutorialExec(void) while (BoardModelMotionEndCheck(BoardBooHouseHostGet()) == 0) { HuPrcVSleep(); } - BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[0], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); BoardTutorialHookExec(0x1C, 0); - BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[1], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardBooHouseHostGet(), hostMot[1], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); BoardModelPosSet(ballMdl, 0.0f, 0.0f, 0.0f); BoardModelHookSet(houseMdl[0], "yoko02", ballMdl); - BoardModelMotionShiftSet(houseMdl[1], 0, 90.0f, 10.0f, 0); - BoardModelMotionShiftSet(houseMdl[0], 0, 90.0f, 10.0f, 0); + BoardModelMotionShiftSet(houseMdl[1], 0, 90.0f, 10.0f, HU3D_MOTATTR_NONE); + BoardModelMotionShiftSet(houseMdl[0], 0, 90.0f, 10.0f, HU3D_MOTATTR_NONE); HuPrcSleep(0xA); while (BoardModelMotionShiftIDGet(houseMdl[0]) != -1) { HuPrcVSleep(); diff --git a/src/game/board/bowser.c b/src/game/board/bowser.c index e228ccb9..fe5af9e3 100644 --- a/src/game/board/bowser.c +++ b/src/game/board/bowser.c @@ -220,12 +220,12 @@ static void ExecBowserMain(void) BoardCameraViewSet(3); BoardFilterFadeInit(30, 160); BoardCameraMotionWait(); - BoardPlayerMotionShiftSet(eventPlayer, jumpMot, 0.0f, 10.0f, 0x40000001); + BoardPlayerMotionShiftSet(eventPlayer, jumpMot, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); BoardPlayerMotionSpeedSet(eventPlayer, 2.0f); HuPrcSleep(120); ConfigBowserEvent(); HuAudFXPlay(scareFxTbl[GWPlayer[eventPlayer].character]); - BoardPlayerMotionShiftSet(eventPlayer, scareMot, 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(eventPlayer, scareMot, 0.0f, 10.0f, HU3D_MOTATTR_NONE); CreateMiniBowser(); while(!CheckMiniBowser()) { HuPrcVSleep(); @@ -241,7 +241,7 @@ static void ExecBowserMain(void) HuPrcSleep(30); } ExecBowserSpecial(); - BoardModelMotionShiftSet(bowserMdl, 3, 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(bowserMdl, 3, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(8); HuAudFXPlay(58); BoardWinCreate(2, MAKE_MESSID(3, 11), 5); @@ -288,7 +288,7 @@ static void ExecMGReturn(void) DoMGReturnEffect(); GWSystem.player_curr = player; BoardStatusShowSetAll(1); - BoardModelMotionShiftSet(bowserMdl, 3, 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(bowserMdl, 3, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(8); HuAudFXPlay(58); BoardWinCreate(2, MAKE_MESSID(3, 11), 5); @@ -357,7 +357,7 @@ static void ExecBowserSpecial(void) BoardWinWait(); BoardWinKill(); HuAudFXPlay(857); - BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, 0); + BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); for(i=0; i<4; i++) { omVibrate(i, 12, 12, 0); } @@ -376,7 +376,7 @@ static void ExecBowserSpecial(void) while(!BoardModelMotionEndCheck(bowserMdl)) { HuPrcVSleep(); } - BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, 0); + BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); StopBowserEvent(); switch(GWSystem.bowser_event) { case 0: @@ -422,7 +422,7 @@ static void ExecBowserGame(void) BoardWinCreate(2, mess, 5); BoardWinWait(); BoardWinKill(); - BoardModelMotionShiftSet(bowserMdl, 5, 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(bowserMdl, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(8); while(BoardModelMotionTimeGet(bowserMdl) < 80.0f) { HuPrcVSleep(); @@ -545,7 +545,7 @@ static void ExecBowserShuffle(void) player++; } HuAudFXPlay(857); - BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, 0); + BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); while(!BoardModelMotionEndCheck(bowserMdl)) { HuPrcVSleep(); } @@ -597,7 +597,7 @@ static void ExecBowserRevo(void) } coin /= 4; HuAudFXPlay(857); - BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, 0); + BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); while(!BoardModelMotionEndCheck(bowserMdl)) { HuPrcVSleep(); } @@ -622,11 +622,11 @@ static void ExecBowserRevo(void) static void ExecBowserSuit(void) { - BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, 0); + BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); BoardWinCreate(2, MAKE_MESSID(3, 18), 5); BoardWinWait(); HuAudFXPlay(857); - BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, 0); + BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); HuPrcSleep(10); StartSuitGive(); while(!CheckSuitGive()) { @@ -826,7 +826,7 @@ static void ExecBowserObj(omObjData *object) } if(work->mot_active && BoardModelMotionEndCheck(bowserMdl)) { work->mot_active = 0; - BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); } switch(work->state) { case 1: @@ -880,7 +880,7 @@ static void ExecBowserFall(BowserWork *work, omObjData *object) } if(BoardModelMotionEndCheck(bowserMdl)) { work->state = 0; - BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); return; } if(!work->fall_done && !(BoardModelMotionTimeGet(bowserMdl) < 140.0f)) { @@ -933,7 +933,7 @@ static void ExecBowserJump(BowserWork *work, omObjData *object) { switch(work->jump_state) { case 0: - BoardModelMotionShiftSet(bowserMdl, 2, 0.0f, 4.0f, 0); + BoardModelMotionShiftSet(bowserMdl, 2, 0.0f, 4.0f, HU3D_MOTATTR_NONE); work->jump_state = 1; break; @@ -1532,9 +1532,9 @@ static void MiniBowserTake(void) omVibrate(eventPlayer, 12, 6, 6); } if(coin_inc < 0) { - BoardPlayerMotionShiftSet(eventPlayer, 13, 0.0f, 4.0f, 0); + BoardPlayerMotionShiftSet(eventPlayer, 13, 0.0f, 4.0f, HU3D_MOTATTR_NONE); } else { - BoardPlayerMotionShiftSet(eventPlayer, 12, 0.0f, 4.0f, 0); + BoardPlayerMotionShiftSet(eventPlayer, 12, 0.0f, 4.0f, HU3D_MOTATTR_NONE); } for(i=0; i= 20) { @@ -1778,9 +1778,9 @@ static void SetMiniBowserMotion(s32 mot, u8 end, s32 pause) work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); models = work->models; if(pause) { - attr = 0x40000001; + attr = HU3D_MOTATTR_LOOP; } else { - attr = 0; + attr = HU3D_MOTATTR_NONE; } if(end) { OSu8tof32(&end, &shift_end); diff --git a/src/game/board/item.c b/src/game/board/item.c index 682448db..87d9a1ab 100755 --- a/src/game/board/item.c +++ b/src/game/board/item.c @@ -944,7 +944,7 @@ static void ExecItemPipe(void) { } HuPrcVSleep(); } - BoardPlayerMotionShiftSet(sp2C[1], 6, 0.0f, 8.0f, 0x40000001); + BoardPlayerMotionShiftSet(sp2C[1], 6, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); BoardModelVoiceEnableSet(BoardPlayerModelGet(sp2C[1]), 6, 0); CharModelLayerSetAll(2); BoardPlayerIdleSet(sp2C[0]); @@ -1480,7 +1480,7 @@ static void ExecItemWhistle(void) { } HuPrcVSleep(); } - BoardModelMotionShiftSet(temp_r28, temp_r20, 0.0f, 5.0f, 0x40000001); + BoardModelMotionShiftSet(temp_r28, temp_r20, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); HuAudFXPlay(0x322); for (var_r29 = 0; var_r29 < 180; var_r29++) { for (var_r31 = 0; var_r31 < 4; var_r31++) { @@ -1533,7 +1533,7 @@ static void ExecItemWhistle(void) { if (sp28[0] < 100.0f) { if (var_r27 == 0) { var_r27 = 1; - BoardModelMotionShiftSet(temp_r28, temp_r21, 0.0f, 3.0f, 0x40000001); + BoardModelMotionShiftSet(temp_r28, temp_r21, 0.0f, 3.0f, HU3D_MOTATTR_LOOP); HuAudFXPlay(forceMoveSfxTbl[GWBoardGet()]); } sp9C.y += var_f30; @@ -1619,18 +1619,18 @@ static void ExecItemBowser(void) { HuAudFXPlay(0x326); BoardModelVisibilitySet(temp_r31, 1); BoardModelHookSet(suitMdl, "itemhook_head", temp_r31); - BoardModelMotionShiftSet(suitMdl, suitMot[1], 0.0f, 5.0f, 0); - BoardModelMotionShiftSet(temp_r31, suitCommonMot[1], 0.0f, 5.0f, 0); + BoardModelMotionShiftSet(suitMdl, suitMot[1], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + BoardModelMotionShiftSet(temp_r31, suitCommonMot[1], 0.0f, 5.0f, HU3D_MOTATTR_NONE); while (!BoardModelMotionEndCheck(suitMdl)) { HuPrcVSleep(); } - BoardModelMotionShiftSet(suitMdl, suitMot[0], 0.0f, 5.0f, 0); - BoardModelMotionShiftSet(temp_r31, suitCommonMot[0], 0.0f, 5.0f, 0); + BoardModelMotionShiftSet(suitMdl, suitMot[0], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + BoardModelMotionShiftSet(temp_r31, suitCommonMot[0], 0.0f, 5.0f, HU3D_MOTATTR_NONE); HuPrcSleep(0x28); HuAudPlayerVoicePlay(currItemRestore, 0x129); omVibrate(currItemRestore, 12, 4, 2); HuPrcSleep(60); - BoardModelMotionShiftSet(suitMdl, 0, 0.0f, 5.0f, 0x40000001); + BoardModelMotionShiftSet(suitMdl, 0, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); HuPrcKill(NULL); while (1) { HuPrcVSleep(); @@ -1828,7 +1828,7 @@ static void ExecItemBooBall(void) { BoardWinKill(); BoardStatusShowSetAll(1); if (var_r29 != 0) { - BoardPlayerMotionShiftSet(currItemRestore, 7, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(currItemRestore, 7, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(30); for (var_r31 = 0; var_r31 < spC; var_r31++) { BoardPlayerCoinsAdd(currItemRestore, 1); @@ -1837,7 +1837,7 @@ static void ExecItemBooBall(void) { } BoardPlayerMotionEndWait(currItemRestore); HuPrcSleep(10); - BoardPlayerMotionShiftSet(currItemRestore, 1, 0.0f, 8.0f, 0x40000001); + BoardPlayerMotionShiftSet(currItemRestore, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } break; case 1: @@ -1874,7 +1874,7 @@ static void ExecItemBooBall(void) { if (var_r29 != 0) { BoardPlayerVoiceEnableSet(currItemRestore, 7, 0); sp18 = HuAudSStreamPlay(6); - BoardPlayerMotionShiftSet(currItemRestore, 7, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(currItemRestore, 7, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuAudFXPlay(boardStarSndTbl[GWPlayer[currItemRestore].character]); BoardPlayerStarsAdd(currItemRestore, 1); HuAudFXPlay(8); @@ -1885,7 +1885,7 @@ static void ExecItemBooBall(void) { HuPrcVSleep(); } } - BoardPlayerMotionShiftSet(currItemRestore, 1, 0.0f, 8.0f, 0x40000001); + BoardPlayerMotionShiftSet(currItemRestore, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); break; case 3: BoardViewMapExec(currItemRestore); @@ -2311,7 +2311,7 @@ static void GenieSceneExec(void) { temp_f30 = 40.0f - var_f31 * var_f31 * 0.25f * 0.0125f; if (temp_f30 <= 0.0f && var_r22 == 0) { var_r22 = 1; - BoardModelMotionShiftSet(temp_r28, 3, 0.0f, 4.0f, 0); + BoardModelMotionShiftSet(temp_r28, 3, 0.0f, 4.0f, HU3D_MOTATTR_NONE); } var_f31 += 1.0f; sp50.y += temp_f30; @@ -2668,7 +2668,7 @@ static void ExecItemBag(void) { } HuPrcChildWatch(); BoardPlayerItemAdd(currItemRestore, itemBagItems[var_r30]); - BoardPlayerMotionShiftSet(currItemRestore, 1, 0.0f, 10.0f, 0x40000001); + BoardPlayerMotionShiftSet(currItemRestore, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); HuPrcSleep(10); var_r30++; } @@ -2754,8 +2754,8 @@ static void RestoreItemBowser(void) { BoardModelAttrSet(temp_r31, 0x400000); suitMdl = BoardBowserSuitModelGet(); temp_r29 = BoardBowserSuitPlayerModelGet(); - BoardModelMotionShiftSet(suitMdl, suitMot[0], 0.0f, 5.0f, 0); - BoardModelMotionShiftSet(temp_r29, suitCommonMot[0], 0.0f, 5.0f, 0); + BoardModelMotionShiftSet(suitMdl, suitMot[0], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + BoardModelMotionShiftSet(temp_r29, suitCommonMot[0], 0.0f, 5.0f, HU3D_MOTATTR_NONE); HuPrcSleep(40); HuAudPlayerVoicePlay(currItemRestore, 0x129); HuPrcSleep(20); diff --git a/src/game/board/last5.c b/src/game/board/last5.c index 8e6a809c..9860861c 100644 --- a/src/game/board/last5.c +++ b/src/game/board/last5.c @@ -513,9 +513,9 @@ static void Last5Main(void) } BoardWinCreate(2, messBase+10, BoardWinPortraitGetStar()); BoardWinWait(); - BoardModelMotionShiftSet(hostMdl, hostMot[5], 0.0f, 4.0f, 0); + BoardModelMotionShiftSet(hostMdl, hostMot[5], 0.0f, 4.0f, HU3D_MOTATTR_NONE); HuPrcVSleep(8); - BoardModelMotionShiftSet(hostMdl, hostMot[6], 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(hostMdl, hostMot[6], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); for(temp_r31=0; temp_r31<4; temp_r31++) { temp_r30 = sp28[temp_r31]; temp_r27 = sp24[temp_r31]; @@ -581,7 +581,7 @@ static void Last5Main(void) } BoardModelMotionStart(hostMdl, hostMot[5], 0x40000004); HuPrcVSleep(8); - BoardModelMotionShiftSet(hostMdl, 1, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(hostMdl, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); BoardWinCreate(2, messBase+15, BoardWinPortraitGetStar()); BoardWinWait(); if((s32)GWSystem.team != 0) { @@ -619,7 +619,7 @@ static void Last5Main(void) while(!CheckHostMove()) { HuPrcVSleep(); } - BoardModelMotionShiftSet(hostMdl, 1, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(hostMdl, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); HuPrcSleep(8); if((s32)GWSystem.team != 0) { temp_r30 = last5Player; @@ -642,9 +642,9 @@ static void Last5Main(void) BoardWinCreate(2, messBase+16, BoardWinPortraitGetStar()); BoardWinInsertMesSet(BoardPlayerGetCharMess(temp_r30), 3); BoardWinWait(); - BoardModelMotionShiftSet(hostMdl, hostMot[5], 0.0f, 4.0f, 0); + BoardModelMotionShiftSet(hostMdl, hostMot[5], 0.0f, 4.0f, HU3D_MOTATTR_NONE); HuPrcVSleep(8); - BoardModelMotionShiftSet(hostMdl, hostMot[6], 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(hostMdl, hostMot[6], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); temp_r19 = 0; temp_r29 = 3; for(temp_f31=0; temp_r29>0; temp_f31++) { @@ -668,7 +668,7 @@ static void Last5Main(void) sp3C = sp48; BoardModelMotionStart(hostMdl, hostMot[5], 0x40000004); HuPrcVSleep(8); - BoardModelMotionShiftSet(hostMdl, 1, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(hostMdl, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); CreateLast5Roulette(); SetLast5RouletteFade(1); SetLast5RouletteState(2); @@ -722,15 +722,15 @@ static void Last5Main(void) BoardPlayerIdleSet(temp_r30); BoardModelVisibilitySet(BoardPlayerModelGet(temp_r30), 0); SetLast5RouletteFade(0); - BoardModelMotionShiftSet(hostMdl, 1, 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(hostMdl, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); BoardWinCreate(2, messBase+23, BoardWinPortraitGetStar()); BoardWinWait(); - BoardModelMotionShiftSet(hostMdl, hostMot[4], 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(hostMdl, hostMot[4], 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(8); while(!BoardModelMotionEndCheck(hostMdl)) { HuPrcVSleep(); } - BoardModelMotionShiftSet(hostMdl, hostMot[2], 0.0f, 8.0f, 0x40000001); + BoardModelMotionShiftSet(hostMdl, hostMot[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); SetLotteryDrawState(4); } @@ -1086,7 +1086,7 @@ static void ExecLotteryDraw(void) SetLotteryDrawWheelState(3); BoardWinCreate(2, 2+messBase+ticket, BoardWinPortraitGetStar()); BoardWinWait(); - BoardModelMotionShiftSet(hostMdl, hostMot[7], 0, 8, 0); + BoardModelMotionShiftSet(hostMdl, hostMot[7], 0, 8, HU3D_MOTATTR_NONE); HuPrcSleep(8); while(BoardModelMotionTimeGet(hostMdl) < 26.0f) { HuPrcVSleep(); @@ -1098,7 +1098,7 @@ static void ExecLotteryDraw(void) while(!BoardModelMotionEndCheck(hostMdl)) { HuPrcVSleep(); } - BoardModelMotionShiftSet(hostMdl, 1, 0, 8, 0x40000001); + BoardModelMotionShiftSet(hostMdl, 1, 0, 8, HU3D_MOTATTR_LOOP); while(GetLotteryDrawWheelState() != 0) { HuPrcVSleep(); } @@ -1133,7 +1133,7 @@ static void ExecLotteryDraw(void) } } else { BoardAudSeqPause(1, 1, 1000); - BoardModelMotionShiftSet(hostMdl, hostMot[3], 0, 8, 0x40000001); + BoardModelMotionShiftSet(hostMdl, hostMot[3], 0, 8, HU3D_MOTATTR_LOOP); stream = HuAudSStreamPlay(10); while(HuAudSStreamStatGet(stream)) { HuPrcVSleep(); @@ -1164,11 +1164,11 @@ static void ExecLotteryDraw(void) HuPrcVSleep(); } BoardPlayerIdleSet(player); - BoardModelMotionShiftSet(hostMdl, hostMot[0], 0, 8, 0x40000001); + BoardModelMotionShiftSet(hostMdl, hostMot[0], 0, 8, HU3D_MOTATTR_LOOP); while(!CheckHostMove()) { HuPrcVSleep(); } - BoardModelMotionShiftSet(hostMdl, 1, 0, 8, 0x40000001); + BoardModelMotionShiftSet(hostMdl, 1, 0, 8, HU3D_MOTATTR_LOOP); BoardStatusShowSetForce(player); BoardStatusShowSet(player, 1); BoardPlayerMotBlendSet(player, 0, 7); @@ -1178,7 +1178,7 @@ static void ExecLotteryDraw(void) BoardWinCreate(2, 6+messBase, BoardWinPortraitGetStar()); BoardWinWait(); BoardAudSeqPause(1, 1, 1000); - BoardModelMotionShiftSet(hostMdl, hostMot[1], 0, 8, 0); + BoardModelMotionShiftSet(hostMdl, hostMot[1], 0, 8, HU3D_MOTATTR_NONE); star_pos.x = host_start.x; star_pos.y = 60.0f+host_start.y; star_pos.z = host_start.z; @@ -1188,11 +1188,11 @@ static void ExecLotteryDraw(void) BoardStatusShowSet(player, 0); StartHostMove(&host_start, &host_end, 25); BoardPlayerPosLerpStart(player, &player_start, &player_end, 25); - BoardModelMotionShiftSet(hostMdl, hostMot[0], 0, 8, 0x40000001); + BoardModelMotionShiftSet(hostMdl, hostMot[0], 0, 8, HU3D_MOTATTR_LOOP); while(!CheckHostMove()) { HuPrcVSleep(); } - BoardModelMotionShiftSet(hostMdl, 1, 0, 8, 0x40000001); + BoardModelMotionShiftSet(hostMdl, 1, 0, 8, HU3D_MOTATTR_LOOP); while(GWPlayer[player].moving) { HuPrcVSleep(); } @@ -1514,7 +1514,7 @@ static void StartHostMove(Vec *from, Vec *to, s16 time) angle = 180.0*(atan2(object->rot.x, object->rot.z)/M_PI); work->angle = 0; OSf32tos16(&angle, &work->angle_end); - BoardModelMotionShiftSet(hostMdl, hostMot[0], 0, 8, 0x40000001); + BoardModelMotionShiftSet(hostMdl, hostMot[0], 0, 8, HU3D_MOTATTR_LOOP); BoardModelMotionSpeedSet(hostMdl, 3.0f); } diff --git a/src/game/board/lottery.c b/src/game/board/lottery.c index c1fb5f7f..72bffb14 100755 --- a/src/game/board/lottery.c +++ b/src/game/board/lottery.c @@ -533,7 +533,7 @@ static void ExecLottery(void) { while (!BoardModelMotionEndCheck(lotteryMdl[0])) { HuPrcVSleep(); } - BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[3], 0.0f, 10.0f, 0); + BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[3], 0.0f, 10.0f, HU3D_MOTATTR_NONE); BoardPlayerRotSet(temp_r31, 0.0f, temp_r26, 0.0f); BoardPlayerPosLerpStart(temp_r31, &sp38, &sp2C, 0x14); while (GWPlayer[temp_r31].moving) { @@ -556,7 +556,7 @@ static void ExecLottery(void) { while (!BoardStatusStopCheck(temp_r31)) { HuPrcVSleep(); } - BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[0], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); if (GWPlayer[temp_r31].draw_ticket == 0 && GWSystem.max_turn - GWSystem.turn >= 5) { SetupTicket(temp_r31); ShowTicket(); @@ -902,7 +902,7 @@ static void ExecBallGame(void) { BoardModelMotionTimeSet(lotteryMdl[1], 0.0f); BoardModelAttrSet(gripMdl[0], 0x40000001); BoardModelAttrSet(gripMdl[1], 0x40000001); - BoardPlayerMotionShiftSet(temp_r27, turnMot, 0.0f, 8.0f, 0x40000001); + BoardPlayerMotionShiftSet(temp_r27, turnMot, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); BoardPlayerMotionSpeedSet(temp_r27, 0.0f); temp_f24 = BoardModelMotionMaxTimeGet(lotteryMdl[1]); temp_f24 -= 4.0f; @@ -1878,7 +1878,7 @@ static void ExecPrize(void) { HuAudFXPlay(0x332); } if (var_r29 == 7) { - BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[1], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[1], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); } if (var_r26 != 0) { BoardPlayerPosGet(temp_r30, &sp8); @@ -1922,7 +1922,7 @@ static void ExecPrize(void) { HuAudFXPlay(loseSoundTbl[GWPlayer[temp_r30].character]); BoardPlayerVoiceEnableSet(temp_r30, var_r29, 0); } - BoardPlayerMotionShiftSet(temp_r30, var_r29, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(temp_r30, var_r29, 0.0f, 8.0f, HU3D_MOTATTR_NONE); switch (var_r31) { case 0: case 1: @@ -1951,7 +1951,7 @@ static void ExecPrize(void) { } else { var_r28 = lotteryMessBase + 8; } - BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[2], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[2], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); BoardWinCreate(2, var_r28, BoardWinPortraitGet()); BoardWinWait(); BoardWinKill(); @@ -1968,7 +1968,7 @@ static void ExecLose(s32 arg0) { temp_r30 = GWPlayer[arg0].character; loseMot = BoardPlayerMotionCreate(arg0, loseMotTbl[temp_r30]); - BoardPlayerMotionShiftSet(arg0, loseMot, 0.0f, 10.0f, 0); + BoardPlayerMotionShiftSet(arg0, loseMot, 0.0f, 10.0f, HU3D_MOTATTR_NONE); HuPrcSleep(10); while (!BoardPlayerMotionEndCheck(arg0)) { HuPrcVSleep(); @@ -2043,14 +2043,14 @@ void BoardLotteryTutorialExec(void) { while (!BoardModelMotionEndCheck(lotteryMdl[0])) { HuPrcVSleep(); } - BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[3], 0.0f, 10.0f, 0); + BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[3], 0.0f, 10.0f, HU3D_MOTATTR_NONE); HuPrcSleep(10); while (!BoardModelMotionEndCheck(BoardShopHostGet())) { HuPrcVSleep(); } - BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[0], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); BoardTutorialHookExec(0x1C, 0); - BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[2], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardLotteryHostGet(), lotteryMot[2], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); HuPrcSleep(30); BoardModelMotionStart(lotteryMdl[0], 0, 0x40000004); while (!BoardModelMotionEndCheck(lotteryMdl[0])) { diff --git a/src/game/board/main.c b/src/game/board/main.c index 9aaa66a1..446e91dc 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -1322,7 +1322,7 @@ static void ExecBoardMG(omObjData *object) return; } if(GWPlayer[GWSystem.player_curr].moving == 0) { - BoardPlayerMotionShiftSet(GWSystem.player_curr, 1, 0.0f, 10.0f, 0x40000001); + BoardPlayerMotionShiftSet(GWSystem.player_curr, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); if(!_CheckFlag(FLAG_ID_MAKE(1, 21))) { _SetFlag(FLAG_ID_MAKE(1, 20)); object->func = KillBoardMG; diff --git a/src/game/board/mushroom.c b/src/game/board/mushroom.c index 74f73e0d..328fc1fe 100644 --- a/src/game/board/mushroom.c +++ b/src/game/board/mushroom.c @@ -166,7 +166,7 @@ static void MushroomMain(void) { var_r27 = MAKE_MESSID(5, 2); } - BoardPlayerMotionShiftSet(curPlayer, 0xC, 0.0f, 4.0f, 0); + BoardPlayerMotionShiftSet(curPlayer, 0xC, 0.0f, 4.0f, HU3D_MOTATTR_NONE); HuPrcSleep(4); BoardWinCreate(0, var_r27, -1); BoardWinWait(); diff --git a/src/game/board/player.c b/src/game/board/player.c index e309e8f0..5972e41b 100644 --- a/src/game/board/player.c +++ b/src/game/board/player.c @@ -1703,7 +1703,7 @@ void BoardPlayerPosLerpStart(s32 arg0, Vec *arg1, Vec *arg2, s16 arg3) temp_r21 = BoardPlayerGet(arg0); if (playerMot[temp_r21->player_idx] != 3) { - var_r25 = BoardModelMotionShiftSet(BoardPlayerModelGet(arg0), 3, 0.0f, 4.0f, 0x40000001); + var_r25 = BoardModelMotionShiftSet(BoardPlayerModelGet(arg0), 3, 0.0f, 4.0f, HU3D_MOTATTR_LOOP); if (var_r25 == 0) { playerMot[temp_r21->player_idx] = 3; } @@ -1909,7 +1909,7 @@ void BoardPlayerIdleSet(s32 arg0) BoardBowserSuitMotionSetWait(); BoardBowserSuitPlayerModelKill(); } - BoardPlayerMotionShiftSet(arg0, 1, 0.0f, 8.0f, 0x40000001); + BoardPlayerMotionShiftSet(arg0, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } static void ExecMotBlend(omObjData *arg0); @@ -1992,7 +1992,7 @@ void BoardPlayerMotBlendSet(s32 arg0, s16 arg1, s16 arg2) } else if (var_f21 = 8.0f * temp_f26, abs(sp1C) > 45) { var_r22 = temp_r26->unk_04h; - BoardPlayerMotionShiftSet(arg0, var_r22, var_f24, var_f21, 0); + BoardPlayerMotionShiftSet(arg0, var_r22, var_f24, var_f21, HU3D_MOTATTR_NONE); BoardPlayerMotionSpeedSet(arg0, var_f27); } OSs16tof32(&arg2, &var_f27); @@ -2387,7 +2387,7 @@ void BoardBowserSuitMotionCreate(void) void BoardBowserSuitMotionSetWait(void) { if (suitCurrMot != 0) { - BoardModelMotionShiftSet(suitMdl, bowserSuitMot[0], 0.0f, 4.0f, 0x40000001); + BoardModelMotionShiftSet(suitMdl, bowserSuitMot[0], 0.0f, 4.0f, HU3D_MOTATTR_LOOP); suitCurrMot = 0; } } @@ -2402,13 +2402,13 @@ void BoardBowserSuitMotionSetWalk(void) void BoardBowserSuitMotionSetWin(void) { - BoardModelMotionShiftSet(suitMdl, bowserSuitMot[3], 0.0f, 4.0f, 0); + BoardModelMotionShiftSet(suitMdl, bowserSuitMot[3], 0.0f, 4.0f, HU3D_MOTATTR_NONE); suitCurrMot = 3; } void BoardBowserSuitMotionSetJump(void) { - BoardModelMotionShiftSet(suitMdl, bowserSuitMot[2], 0.0f, 4.0f, 0); + BoardModelMotionShiftSet(suitMdl, bowserSuitMot[2], 0.0f, 4.0f, HU3D_MOTATTR_NONE); suitCurrMot = 2; } @@ -2519,10 +2519,10 @@ static s32 DoSparkSpace(s32 player, s32 pause_cam) if (GWPlayer[i].space_curr == sp34) { sp124[sp134++] = i; sp15C[i] = BoardPlayerMotionCreate(i, sparkMotTbl[GWPlayer[i].character]); - BoardPlayerMotionShiftSet(i, sp15C[i], 0, 8, 0); + BoardPlayerMotionShiftSet(i, sp15C[i], 0, 8, HU3D_MOTATTR_NONE); HuAudFXPlay(boardSparkSfxTblAlt[GWPlayer[i].character]); if (GWPlayer[i].bowser_suit) { - BoardModelMotionShiftSet(suitMdl, bowserSuitMot[4], 0.0f, 4.0f, 0); + BoardModelMotionShiftSet(suitMdl, bowserSuitMot[4], 0.0f, 4.0f, HU3D_MOTATTR_NONE); sp128 = i; } } @@ -2883,7 +2883,7 @@ static s32 MegaPlayerPassFunc(s32 player, s32 space) spAC.z /= 60.0f; BoardPlayerRotYSet(player, 90.0 - (180.0 * (atan2(spAC.z, spAC.x) / M_PI))); sp98[1] = BoardVecDistXZCalc(&spC4, &spB8); - BoardPlayerMotionShiftSet(player, 4, 0, 8, 0); + BoardPlayerMotionShiftSet(player, 4, 0, 8, HU3D_MOTATTR_NONE); HuPrcSleep(8); temp_r24 = 0; for (temp_f30 = 0; temp_f30 < 60.0f; temp_f30++) { @@ -2906,7 +2906,7 @@ static s32 MegaPlayerPassFunc(s32 player, s32 space) } if (spB8.y <= spC4.y) { spB8.y = spC4.y; - BoardPlayerMotionShiftSet(player, 5, 0, 4, 0); + BoardPlayerMotionShiftSet(player, 5, 0, 4, HU3D_MOTATTR_NONE); } BoardPlayerPosSetV(player, &spB8); HuPrcVSleep(); @@ -2987,7 +2987,7 @@ static s32 MegaExecJump(s32 player, s32 space) BoardPlayerIdleSet(player); HuPrcSleep(10); sp90[1] = BoardVecDistXZCalc(&spC4, &spB8); - BoardModelMotionShiftSet(suitMdl, bowserSuitMot[3], 0.0f, 8.0f, 0); + BoardModelMotionShiftSet(suitMdl, bowserSuitMot[3], 0.0f, 8.0f, HU3D_MOTATTR_NONE); BoardModelMotionSpeedSet(suitMdl, 2.0f); HuPrcSleep(8); HuAudFXPlay(809); diff --git a/src/game/board/shop.c b/src/game/board/shop.c index f5636adc..f3dad21c 100755 --- a/src/game/board/shop.c +++ b/src/game/board/shop.c @@ -273,7 +273,7 @@ static void ExecShop(void) { HuAudFXPlay(0x330); HuAudFXPlay(0x32D); PopupShop(); - BoardModelMotionShiftSet(BoardShopHostGet(), shopMot[2], 0.0f, 4.0f, 0); + BoardModelMotionShiftSet(BoardShopHostGet(), shopMot[2], 0.0f, 4.0f, HU3D_MOTATTR_NONE); HuPrcSleep(4); BoardPlayerRotSet(shopPlayer, 0.0f, temp_f31, 0.0f); BoardPlayerMoveBetween(shopPlayer, temp_r28, temp_r25); @@ -366,7 +366,7 @@ static void ExecShop(void) { if (activeItemTbl[itemCurChoice] != 0xD) { BoardPlayerItemAdd(shopPlayer, activeItemTbl[itemCurChoice]); } - BoardPlayerMotionShiftSet(shopPlayer, 0xC, 0.0f, 4.0f, 0); + BoardPlayerMotionShiftSet(shopPlayer, 0xC, 0.0f, 4.0f, HU3D_MOTATTR_NONE); HuPrcSleep(5); BoardPlayerMotionEndWait(shopPlayer); HuPrcSleep(15); @@ -375,7 +375,7 @@ static void ExecShop(void) { } BoardAudSeqFadeOut(1, 1000); BoardModelVisibilitySet(itemMdl, 0); - BoardModelMotionShiftSet(BoardShopHostGet(), shopMot[1], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardShopHostGet(), shopMot[1], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); BoardStatusShowSet(shopPlayer, 0); BoardCameraTargetPlayerSet(shopPlayer); BoardCameraMotionWait(); @@ -1148,14 +1148,14 @@ void BoardShopTutorialExec(s32 arg0) { HuAudFXPlay(0x330); HuAudFXPlay(0x32D); PopupShop(); - BoardModelMotionShiftSet(BoardShopHostGet(), shopMot[2], 0.0f, 4.0f, 0); + BoardModelMotionShiftSet(BoardShopHostGet(), shopMot[2], 0.0f, 4.0f, HU3D_MOTATTR_NONE); HuPrcSleep(4); while (!BoardModelMotionEndCheck(BoardShopHostGet())) { HuPrcVSleep(); } BoardModelMotionStart(BoardShopHostGet(), shopMot[0], 0x40000001); BoardTutorialHookExec(0x1C, 0); - BoardModelMotionShiftSet(BoardShopHostGet(), shopMot[1], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(BoardShopHostGet(), shopMot[1], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); HuPrcSleep(30); CloseShop(); for (i = 0; i < 2; i++) { diff --git a/src/game/board/space.c b/src/game/board/space.c index 7dbd86bb..505f2678 100644 --- a/src/game/board/space.c +++ b/src/game/board/space.c @@ -734,7 +734,7 @@ static s32 ExecPipeSpace(s32 player, s32 space) if(pos.y <= pos_link.y) { pos.y = pos_link.y; if(!mot_disable) { - BoardPlayerMotionShiftSet(player, 3, 0, 4, 0x40000001); + BoardPlayerMotionShiftSet(player, 3, 0, 4, HU3D_MOTATTR_LOOP); break; } } else { diff --git a/src/game/board/star.c b/src/game/board/star.c index c9f7e6ea..ecdc6d88 100755 --- a/src/game/board/star.c +++ b/src/game/board/star.c @@ -233,7 +233,7 @@ static void ExecStar(void) { } if (var_r26 != 0) { var_f31 /= var_r25; - BoardModelMotionShiftSet(temp_r30, hostMot[1], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(temp_r30, hostMot[1], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); BoardModelMotionSpeedSet(temp_r30, 2.0f); } while (!BoardPlayerMotBlendCheck(temp_r31)) { @@ -243,7 +243,7 @@ static void ExecStar(void) { } HuPrcVSleep(); } - BoardModelMotionShiftSet(temp_r30, 1, 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(temp_r30, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); BoardCameraViewSet(3); BoardCameraMotionWait(); if (GWStarsGet(temp_r31) >= 999) { @@ -337,7 +337,7 @@ block_A: HuAudFXPlay(0xF); } _SetFlag(0x10017); - BoardModelMotionShiftSet(temp_r30, hostMot[0], 0.0f, 10.0f, 0); + BoardModelMotionShiftSet(temp_r30, hostMot[0], 0.0f, 10.0f, HU3D_MOTATTR_NONE); HuPrcSleep(30); starDoneF = 1; BoardAudSeqFadeOut(0, 1000); @@ -348,7 +348,7 @@ block_A: while (!BoardStatusStopCheck(temp_r31)) { HuPrcVSleep(); } - BoardModelMotionShiftSet(temp_r30, 1, 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(temp_r30, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); BoardStarShowNext(temp_r31); BoardMusStartBoard(); BoardModelRotYSet(temp_r30, 0.0f); @@ -358,7 +358,7 @@ block_B: var_f31 = -BoardModelRotYGet(temp_r30); if (var_r26 != 0) { var_f31 /= var_r25; - BoardModelMotionShiftSet(temp_r30, hostMot[1], 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(temp_r30, hostMot[1], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); BoardModelMotionSpeedSet(temp_r30, 3.0f); } BoardPlayerMotBlendSet(temp_r31, 0, var_r25); @@ -370,7 +370,7 @@ block_B: HuPrcVSleep(); } BoardModelRotYSet(temp_r30, 0.0f); - BoardModelMotionShiftSet(temp_r30, 1, 0.0f, 10.0f, 0x40000001); + BoardModelMotionShiftSet(temp_r30, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); if (!_CheckFlag(FLAG_ID_MAKE(1, 22))) { BoardCameraViewSet(1); BoardCameraTargetPlayerSet(temp_r31); @@ -622,7 +622,7 @@ void BoardStarGive(s32 arg0, Vec *arg1) { StarInlineFunc02(); StarInlineFunc01(); BoardPlayerVoiceEnableSet(arg0, 7, 0); - BoardPlayerMotionShiftSet(arg0, 7, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(arg0, 7, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuAudFXPlay(boardStarSndTbl[GWPlayer[arg0].character]); BoardPlayerStarsAdd(arg0, 1); HuAudFXPlay(8); diff --git a/src/game/board/start.c b/src/game/board/start.c index ae88ff57..0cb9e8bc 100755 --- a/src/game/board/start.c +++ b/src/game/board/start.c @@ -331,7 +331,7 @@ static void CreatePlayerStart(void) { var_r29->trans.y = spC.y + 700.0f; var_r29->trans.z = spC.z + 100.0f; BoardPlayerPosSet(playerOrderOld[var_r30->unk00_field2], var_r29->trans.x, var_r29->trans.y, var_r29->trans.z); - BoardPlayerMotionShiftSet(playerOrderOld[var_r30->unk00_field2], 4, 10.0f, 1.0f, 0); + BoardPlayerMotionShiftSet(playerOrderOld[var_r30->unk00_field2], 4, 10.0f, 1.0f, HU3D_MOTATTR_NONE); } if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) { BoardMusStart(0, 0xC, 0x7F, 0); @@ -400,7 +400,7 @@ static void PlayerFall(omObjData *arg0, PlayerStartWork *arg1) { if (arg0->trans.y < spacePos.y) { arg0->trans.y = spacePos.y; arg1->unk02 = 0; - BoardPlayerMotionShiftSet(playerOrderOld[arg1->unk00_field2], 5, 0.0f, 4.0f, 0); + BoardPlayerMotionShiftSet(playerOrderOld[arg1->unk00_field2], 5, 0.0f, 4.0f, HU3D_MOTATTR_NONE); arg1->unk01 = 0xC; arg1->unk00_field3 = 1; } @@ -704,7 +704,7 @@ static void ExecStartRoll(void) { } BoardStatusShowSet(i, 1); SetPlayerStartState(playerOrderOld[i], 6); - BoardPlayerMotionShiftSet(i, 7, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(i, 7, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(8); while (!BoardPlayerMotionEndCheck(i)) { HuPrcVSleep(); @@ -734,7 +734,7 @@ static void ExecStartRoll(void) { HuPrcSleep(var_r23); } for (i = 0; i < 4; i++) { - BoardPlayerMotionShiftSet(i, 7, 0.0f, 8.0f, 0); + BoardPlayerMotionShiftSet(i, 7, 0.0f, 8.0f, HU3D_MOTATTR_NONE); } HuAudFXPlay(0xF); while (1) { From 9543fa624fd0fb271105d9438844014edf734d65 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Thu, 29 Aug 2024 15:25:07 -0700 Subject: [PATCH 045/311] Matched REL/436Dll --- config/GMPE01_00/rels/m436Dll/symbols.txt | 302 +- configure.py | 4 +- include/REL/m436Dll.h | 65 + src/REL/m436Dll/main.c | 3184 +++++++++++++++++++++ src/REL/m436Dll/sequence.c | 308 ++ 5 files changed, 3710 insertions(+), 153 deletions(-) create mode 100755 include/REL/m436Dll.h create mode 100755 src/REL/m436Dll/main.c create mode 100755 src/REL/m436Dll/sequence.c diff --git a/config/GMPE01_00/rels/m436Dll/symbols.txt b/config/GMPE01_00/rels/m436Dll/symbols.txt index 4e82430a..96812393 100644 --- a/config/GMPE01_00/rels/m436Dll/symbols.txt +++ b/config/GMPE01_00/rels/m436Dll/symbols.txt @@ -131,7 +131,7 @@ fn_1_10670 = .text:0x00010670; // type:function size:0x1CC _prolog = .text:0x0001083C; // type:function size:0x54 scope:global _epilog = .text:0x00010890; // type:function size:0x4C scope:global fn_1_108DC = .text:0x000108DC; // type:function size:0x410 -fn_1_10CEC = .text:0x00010CEC; // type:function size:0x410 +ObjectSetup = .text:0x00010CEC; // type:function size:0x410 fn_1_110FC = .text:0x000110FC; // type:function size:0x40 fn_1_1113C = .text:0x0001113C; // type:function size:0x28 fn_1_11164 = .text:0x00011164; // type:function size:0xC8 @@ -164,164 +164,164 @@ fn_1_14828 = .text:0x00014828; // type:function size:0x4FC fn_1_14D24 = .text:0x00014D24; // type:function size:0x78C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x3C data:4byte -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC data:4byte -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x30 data:4byte -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:4byte -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:4byte -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:4byte -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x18 data:4byte -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:4byte -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:4byte -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:4byte -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x8 data:4byte -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0xC data:4byte -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:4byte -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:4byte -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:4byte -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x30 data:4byte -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x30 data:4byte -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x30 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x30 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x30 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 lbl_1_data_20 = .data:0x00000020; // type:object size:0x20 lbl_1_data_40 = .data:0x00000040; // type:object size:0xA0 lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x4 data:4byte lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x4 data:4byte lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x4 data:4byte -lbl_1_data_EC = .data:0x000000EC; // type:object size:0x1B data:string -lbl_1_data_107 = .data:0x00000107; // type:object size:0x22 data:string -lbl_1_data_129 = .data:0x00000129; // type:object size:0x1A data:string -lbl_1_data_143 = .data:0x00000143; // type:object size:0x1A data:string -lbl_1_data_15D = .data:0x0000015D; // type:object size:0xF +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x1B scope:local data:string +lbl_1_data_107 = .data:0x00000107; // type:object size:0x22 scope:local data:string +lbl_1_data_129 = .data:0x00000129; // type:object size:0x1A scope:local data:string +lbl_1_data_143 = .data:0x00000143; // type:object size:0x1A scope:local data:string +lbl_1_data_15D = .data:0x0000015D; // type:object size:0xE scope:local data:string lbl_1_data_16C = .data:0x0000016C; // type:object size:0x4 data:4byte -lbl_1_data_170 = .data:0x00000170; // type:object size:0x34 -lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x14 +lbl_1_data_170 = .data:0x00000170; // type:object size:0x12 scope:local data:string +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x12 scope:local data:string jumptable_1_data_1B8 = .data:0x000001B8; // type:object size:0x30 scope:local lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x6C -lbl_1_data_254 = .data:0x00000254; // type:object size:0x18 data:float -lbl_1_data_26C = .data:0x0000026C; // type:object size:0x12 data:string -lbl_1_data_27E = .data:0x0000027E; // type:object size:0x12 data:string +lbl_1_data_254 = .data:0x00000254; // type:object size:0xC data:float +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x12 scope:local data:string +lbl_1_data_27E = .data:0x0000027E; // type:object size:0x12 scope:local data:string lbl_1_data_290 = .data:0x00000290; // type:object size:0x9C lbl_1_data_32C = .data:0x0000032C; // type:object size:0x18 jumptable_1_data_344 = .data:0x00000344; // type:object size:0x28 scope:local @@ -332,7 +332,7 @@ lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:4byte lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC data:float lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x30 data:float diff --git a/configure.py b/configure.py index 7d4cf24a..9bcbef0b 100644 --- a/configure.py +++ b/configure.py @@ -1110,8 +1110,8 @@ config.libs = [ Rel( "m436Dll", # Fruits of Doom objects={ - Object(NonMatching, "REL/m436Dll/main.c"), - Object(NonMatching, "REL/m436Dll/sequence.c"), + Object(Matching, "REL/m436Dll/main.c"), + Object(Matching, "REL/m436Dll/sequence.c"), }, ), Rel( diff --git a/include/REL/m436Dll.h b/include/REL/m436Dll.h new file mode 100755 index 00000000..6f2d6aa4 --- /dev/null +++ b/include/REL/m436Dll.h @@ -0,0 +1,65 @@ +#ifndef M436DLL_H +#define M436DLL_H + +#include "game/object.h" + +#include "dolphin.h" + +// For future reference: m436 has many functions and structs in common with m437. + +typedef struct { + /* 0x00 */ void (*unk00)(void); + /* 0x04 */ s32 (*unk04)(void); + /* 0x08 */ s32 unk08; +} StructData1E8; // Size 0xC + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ StructData1E8* unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ void (*unk10)(void); + /* 0x14 */ s32 (*unk14)(void); +} StructBssC0; // Size 0x18 + +typedef struct { + /* 0x00 */ void (*unk00)(void); + /* 0x04 */ float unk04; + /* 0x08 */ float unk08; + /* 0x0C */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ float unk20; + /* 0x24 */ float unk24; + /* 0x28 */ float unk28; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ float unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ s32 unk40[7]; + /* 0x5C */ float unk5C[7]; +} StructBss32C; // Size 0x78 + +float fn_1_110FC(float arg0, float arg1, float arg2); +float fn_1_1113C(float arg0, float arg1, float arg2, float arg3); +float fn_1_11164(float arg0, float arg1, float arg2, float arg3); +float fn_1_1122C(float arg0, float arg1, float arg2, float arg3); +float fn_1_112F4(float arg0, float arg1, float arg2, float arg3); +void fn_1_113CC(omObjData* arg0, s32 arg1, omObjData* arg2, s32 arg3); +s32 fn_1_11708(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_11818(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_11990(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_11B18(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_11D18(StructBssC0* arg0, StructData1E8* arg1); +s32 fn_1_11D74(StructBssC0* arg0); +s32 fn_1_11E70(StructBssC0* arg0, s32 arg1); +s32 fn_1_11F04(StructBssC0* arg0, s32 arg1); +void fn_1_12294(StructBss32C* arg0); +void fn_1_125F4(StructBss32C* arg0, float arg1); +void fn_1_13C48(StructBss32C* arg0, StructBss32C* arg1, float arg2, float arg3, float arg4); +void fn_1_14D24(StructBss32C* arg0, StructBss32C* arg1, float arg2, float arg3, float arg4); + +#endif diff --git a/src/REL/m436Dll/main.c b/src/REL/m436Dll/main.c new file mode 100755 index 00000000..4e2523c2 --- /dev/null +++ b/src/REL/m436Dll/main.c @@ -0,0 +1,3184 @@ +#include "REL/m436Dll.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/process.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "ext_math.h" +#include "rel_sqrt_consts.h" + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ s32 unk28; + /* 0x2C */ float unk2C; +} StructBss3E4; // Size 0x30 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; +} StructBss4A4; // Size 0x10 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ float unk04; + /* 0x08 */ s32 unk08[15]; + /* 0x44 */ s32 unk44[15]; + /* 0x80 */ float unk80[15][2]; +} StructBss234; // Size 0xF8 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ char unk08[0xC]; +} StructBss220; // Size 0x14 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ Vec unk04[8]; +} StructBss1BC; // Size 0x64 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ float unk08[6]; + /* 0x20 */ char unk20[8]; + /* 0x28 */ float unk28[6]; + /* 0x40 */ char unk40[8]; + /* 0x48 */ float unk48[6]; + /* 0x60 */ char unk60[8]; + /* 0x68 */ float unk68[6]; + /* 0x80 */ char unk80[8]; + /* 0x88 */ float unk88[6]; + /* 0xA0 */ char unkA0[8]; +} StructBssD8; // Size 0xA8 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ char unk04[0x10]; +} StructBss1A8; // Size 0x14 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ char unk04[0x10]; +} StructBss180; // Size 0x14 + +typedef struct { + /* 0x00 */ char unk00[0x28]; + /* 0x28 */ s32 unk28; + /* 0x2C */ char unk2C[0xC]; +} StructBss3AC; // Size 0x38 + +s32 fn_1_538C(s32 arg0); + +StructBss4A4 lbl_1_bss_4A4; +StructBss3E4 lbl_1_bss_3E4[4]; +StructBss3AC lbl_1_bss_3AC; +s32 lbl_1_bss_3A4[2]; +StructBss32C lbl_1_bss_32C; +StructBss234 lbl_1_bss_234; +StructBss220 lbl_1_bss_220; +StructBss1BC lbl_1_bss_1BC; +StructBss1A8 lbl_1_bss_1A8; +StructBss180 lbl_1_bss_180[2]; +StructBssD8 lbl_1_bss_D8; +StructBssC0 lbl_1_bss_C0; +StructBssC0 lbl_1_bss_A8; +Mtx lbl_1_bss_78; +Mtx lbl_1_bss_48; +Vec lbl_1_bss_3C; +StructBssC0 lbl_1_bss_24; +s32 lbl_1_bss_20_pad; // unused +s32 lbl_1_bss_1C; +s32 lbl_1_bss_18; +s32 lbl_1_bss_14; +s32 lbl_1_bss_10; +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +Process* lbl_1_bss_0; + +s32 lbl_1_data_0[] = { + DATA_MAKE_NUM(DATADIR_M436, 13), + DATA_MAKE_NUM(DATADIR_M436, 14), + DATA_MAKE_NUM(DATADIR_M436, 15), + DATA_MAKE_NUM(DATADIR_M436, 16), + DATA_MAKE_NUM(DATADIR_M436, 17), + DATA_MAKE_NUM(DATADIR_M436, 18), + DATA_MAKE_NUM(DATADIR_M436, 19), + DATA_MAKE_NUM(DATADIR_M436, 20) +}; + +s32 lbl_1_data_20[] = { + MAKE_MESSID(29, 23), + MAKE_MESSID(29, 24), + MAKE_MESSID(29, 30), + MAKE_MESSID(29, 26), + MAKE_MESSID(29, 28), + MAKE_MESSID(29, 27), + MAKE_MESSID(29, 25), + MAKE_MESSID(29, 29) +}; + +s32 lbl_1_data_40[][5] = { + { 91, 105, 126, 141, -1 }, + { 91, 105, 126, 141, -1 }, + { 124, 137, -1, -1, -1 }, + { 85, 100, 127, -1, -1 }, + { 124, 139, -1, -1, -1 }, + { 85, 97, 127, 139, -1 }, + { 127, 137, -1, -1, -1 }, + { 79, 95, 109, 127, -1 } +}; + +s32 lbl_1_data_E0 = -1; +s32 lbl_1_data_E4 = -1; +s32 lbl_1_data_E8 = -1; + +void fn_1_0(void) { + s32 i; + + while (TRUE) { + HuPrcVSleep(); + if (lbl_1_data_E0 == -1 || lbl_1_data_E4 == -1 || lbl_1_data_E8 == -1 || lbl_1_data_E4 != Hu3DMotionIDGet(lbl_1_data_E0)) { + continue; + } + for (i = 0; i < 5; i++) { + if (lbl_1_data_40[lbl_1_data_E8][i] != -1 && Hu3DMotionTimeGet(lbl_1_data_E0) >= lbl_1_data_40[lbl_1_data_E8][i]) { + OSReport("KE-System CHR:%d TIME:%d\n", lbl_1_data_E8, lbl_1_data_40[lbl_1_data_E8][i]); + HuAudFXPlay(0x6D8); + lbl_1_data_40[lbl_1_data_E8][i] = -1; + } + } + } +} + +void fn_1_1A8(void) { + s32 var_r31; + + var_r31 = Hu3DGLightCreate(0.0f, 1000.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0xFF, 0xFF, 0xFF); + Hu3DGLightInfinitytSet(var_r31); +} + +void fn_1_230(void) { + StructBss32C* var_r31; + + var_r31 = &lbl_1_bss_32C; + if (HuPadBtn[0] & 0x200) { + if (HuPadBtn[0] & 0x100) { + var_r31->unk0C -= HuPadStkY[0] / 10.0f; + } else { + var_r31->unk04 += HuPadStkX[0] / 10.0f; + var_r31->unk08 += HuPadStkY[0] / 10.0f; + } + } + if (HuPadBtn[0] & 0x800) { + var_r31->unk1C -= HuPadStkY[0] / 100.0f; + var_r31->unk20 += HuPadStkX[0] / 100.0f; + } + if (HuPadBtn[0] & 0x400) { + var_r31->unk34 -= HuPadStkY[0] / 10.0f; + } + if (var_r31->unk1C >= 360.0f) { + var_r31->unk1C -= 360.0f; + } + if (var_r31->unk1C < 0.0f) { + var_r31->unk1C += 360.0f; + } + if (var_r31->unk20 >= 360.0f) { + var_r31->unk20 -= 360.0f; + } + if (var_r31->unk20 < 0.0f) { + var_r31->unk20 += 360.0f; + } + print8(16, 100, 1.0f, ">>>>>>>>>> CAMERA TEST <<<<<<<<<<"); + print8(16, 110, 1.0f, "CENTER : %.2f, %.2f, %.2f", var_r31->unk04, var_r31->unk08, var_r31->unk0C); + print8(16, 120, 1.0f, "ROT : %.2f, %.2f, %.2f", var_r31->unk1C, var_r31->unk20, var_r31->unk24); + print8(16, 130, 1.0f, "ZOOM : %.2f", var_r31->unk34); +} + +void fn_1_614(s32 arg0, s32 arg1, float arg2) { + StructBss32C* var_r31; + + var_r31 = &lbl_1_bss_32C; + var_r31->unk40[arg0] = arg1; + if (var_r31->unk5C[arg0] < 0.0f) { + var_r31->unk5C[arg0] = -arg2; + } else { + var_r31->unk5C[arg0] = arg2; + } +} + +void fn_1_67C(s32 arg0, float arg1) { + fn_1_614(arg0, -1, arg1); +} + +float fn_1_6E8(s32 arg0) { + StructBss32C* var_r31; + + var_r31 = &lbl_1_bss_32C; + if (var_r31->unk5C[arg0] != 0.0f) { + var_r31->unk5C[arg0] *= -0.9f; + if (var_r31->unk40[arg0] == -1) { + if (var_r31->unk5C[arg0] >= -0.5f && var_r31->unk5C[arg0] <= 0.5f) { + var_r31->unk5C[arg0] = 0.0f; + } + } else { + var_r31->unk40[arg0]--; + if (var_r31->unk40[arg0] <= 0) { + var_r31->unk40[arg0] = 0; + var_r31->unk5C[arg0] = 0.0f; + } + } + } + return var_r31->unk5C[arg0]; +} + +void fn_1_818(void) { + StructBss32C* var_r31; + + var_r31 = &lbl_1_bss_32C; + var_r31->unk04 = 0.0f; + var_r31->unk08 = 225.0f; + var_r31->unk0C = 1740.0f; + var_r31->unk1C = -10.0f; + var_r31->unk20 = 0.0f; + var_r31->unk24 = 0.0f; + var_r31->unk34 = 300.0f; +} + +void fn_1_8A4(void (*arg0)(void)) { + StructBss32C* var_r31; + + var_r31 = &lbl_1_bss_32C; + var_r31->unk00 = arg0; +} + +void fn_1_8C4(omObjData* arg0) { + StructBss32C* var_r31; + + var_r31 = &lbl_1_bss_32C; + if (var_r31->unk00 != NULL) { + var_r31->unk00(); + } + Center.x = var_r31->unk04 + fn_1_6E8(0); + Center.y = var_r31->unk08 + fn_1_6E8(1); + Center.z = var_r31->unk0C + fn_1_6E8(2); + CRot.x = var_r31->unk1C + fn_1_6E8(3); + CRot.y = var_r31->unk20 + fn_1_6E8(4); + CRot.z = var_r31->unk24 + fn_1_6E8(5); + CZoom = var_r31->unk34 + fn_1_6E8(6); +} + +void fn_1_F6C(void) { + Hu3DCameraCreate(1); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 45.0f, 0.1f, 10000.0f, 1.2f); + fn_1_8A4(fn_1_818); + omAddObjEx(lbl_1_bss_0, 0x7FDA, 0, 0, -1, omOutView); + omAddObjEx(lbl_1_bss_0, 0x7FD9, 0, 0, -1, fn_1_8C4); +} + +void fn_1_1084(void) { + Vec sp20 = { 0.0f, 2500.0f, 1.0f }; + Vec sp14 = { 0.0f, 0.0f, 0.0f }; + Vec sp8 = { 0.0f, 1.0f, 0.0f }; + + Hu3DShadowCreate(45.0f, 2000.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.8f); + Hu3DShadowPosSet(&sp20, &sp8, &sp14); +} + +void fn_1_1148(s32 arg0, float arg1, float arg2, s32 arg3) { + WindowData* temp_r29; + float temp_f29; + float temp_f28; + float temp_f25; + float temp_f24; + float temp_f27; + float temp_f26; + float var_f31; + float var_f30; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + s32 i; + + temp_r29 = &winData[arg0]; + temp_f29 = temp_r29->pos_x; + temp_f28 = temp_r29->pos_y; + temp_f25 = temp_r29->w; + temp_f24 = temp_r29->h; + var_f31 = temp_f29 + temp_f25 * arg1; + temp_f27 = 4.0f / temp_f25; + if (var_f31 + 4.0f - (temp_f29 + temp_f25) >= 0.0f) { + var_f31 = temp_f29 + temp_f25 - 4.0f; + } else { + if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { + var_f31 = temp_f29; + } else { + var_f31 -= 2.0f; + } + } + var_f30 = temp_f28 + temp_f24 * arg2; + temp_f26 = 4.0f / temp_f24; + if (var_f30 + 4.0f - (temp_f28 + temp_f24) >= 0.0f) { + var_f30 = temp_f28 + temp_f24 - 4.0f; + } else { + if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { + var_f30 = temp_f28; + } else { + var_f30 -= 2.0f; + } + } + if (arg3 != 0) { + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + var_f23 = var_f31; + var_f21 = temp_f27; + var_f22 = var_f30; + var_f20 = temp_f26; + } else { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + var_f23 = temp_f29; + var_f21 = 1.0f; + var_f22 = temp_f28; + var_f20 = 1.0f; + } + HuWinDispOn(arg0); + for (i = 0; i <= 15; i++) { + HuPrcVSleep(); + if (arg3 != 0) { + if (i <= 10) { + var_f23 = fn_1_11164(var_f31, temp_f29, i, 10.0f); + var_f21 = fn_1_11164(temp_f27, 1.0f, i, 10.0f); + } else { + var_f22 = fn_1_11164(var_f30, temp_f28, i - 10, 5.0f); + var_f20 = fn_1_11164(temp_f26, 1.0f, i - 10, 5.0f); + } + } else { + if (i <= 10) { + var_f22 = fn_1_11164(temp_f28, var_f30, i, 10.0f); + var_f20 = fn_1_11164(1.0f, temp_f26, i, 10.0f); + } else { + var_f23 = fn_1_11164(temp_f29, var_f31, i - 10, 5.0f); + var_f21 = fn_1_11164(1.0f, temp_f27, i - 10, 5.0f); + } + } + HuWinPosSet(arg0, var_f23, var_f22); + HuWinScaleSet(arg0, var_f21, var_f20); + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + } else { + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + } + HuPrcVSleep(); +} + +void fn_1_178C(void) { + HuWinInit(1); +} + +void fn_1_17B0(s32 arg0, float arg1, float arg2) { + WindowData* temp_r31; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f24; + float var_f31; + float var_f30; + float temp_f23; + float temp_f22; + float temp_f21; + float temp_f20; + s32 i; + + temp_r31 = &winData[arg0]; + temp_f29 = temp_r31->pos_x; + temp_f28 = temp_r31->pos_y; + temp_f27 = temp_r31->w; + temp_f26 = temp_r31->h; + var_f31 = temp_f29 + temp_f27 * arg1; + temp_f25 = 4.0f / temp_f27; + if (var_f31 + 4.0f - (temp_f29 + temp_f27) >= 0.0f) { + var_f31 = temp_f29 + temp_f27 - 4.0f; + } else { + if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { + var_f31 = temp_f29; + } else { + var_f31 = var_f31 - 2.0f; + } + } + var_f30 = temp_f28 + temp_f26 * arg2; + temp_f24 = 4.0f / temp_f26; + if (var_f30 + 4.0f - (temp_f28 + temp_f26) >= 0.0f) { + var_f30 = temp_f28 + temp_f26 - 4.0f; + } else { + if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { + var_f30 = temp_f28; + } else { + var_f30 = var_f30 - 2.0f; + } + } + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f25, temp_f24); + HuPrcVSleep(); + for (i = 0; i < 10; i++) { + temp_f23 = fn_1_11164(var_f31, temp_f29, i, 10.0f); + temp_f21 = fn_1_11164(temp_f25, 1.0f, i, 10.0f); + temp_f22 = fn_1_11164(var_f30, temp_f28, i, 10.0f); + temp_f20 = fn_1_11164(temp_f24, 1.0f, i, 10.0f); + HuWinPosSet(arg0, temp_f23, temp_f22); + HuWinScaleSet(arg0, temp_f21, temp_f20); + HuPrcVSleep(); + } + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + HuPrcVSleep(); +} + +void fn_1_1C08(s32 arg0, float arg1, float arg2) { + WindowData* temp_r31; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f24; + float var_f31; + float var_f30; + float temp_f23; + float temp_f22; + float temp_f21; + float temp_f20; + s32 i; + + temp_r31 = &winData[arg0]; + temp_f29 = temp_r31->pos_x; + temp_f28 = temp_r31->pos_y; + temp_f27 = temp_r31->w; + temp_f26 = temp_r31->h; + var_f31 = temp_f29 + temp_f27 * arg1; + temp_f25 = 4.0f / temp_f27; + if (var_f31 + 4.0f - (temp_f29 + temp_f27) >= 0.0f) { + var_f31 = temp_f29 + temp_f27 - 4.0f; + } else { + if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { + var_f31 = temp_f29; + } else { + var_f31 = var_f31 - 2.0f; + } + } + var_f30 = temp_f28 + temp_f26 * arg2; + temp_f24 = 4.0f / temp_f26; + if (var_f30 + 4.0f - (temp_f28 + temp_f26) >= 0.0f) { + var_f30 = temp_f28 + temp_f26 - 4.0f; + } else { + if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { + var_f30 = temp_f28; + } else { + var_f30 = var_f30 - 2.0f; + } + } + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + HuPrcVSleep(); + for (i = 0; i < 10; i++) { + temp_f23 = fn_1_112F4(temp_f29, var_f31, i, 10.0f); + temp_f21 = fn_1_112F4(1.0f, temp_f25, i, 10.0f); + temp_f22 = fn_1_112F4(temp_f28, var_f30, i, 10.0f); + temp_f20 = fn_1_112F4(1.0f, temp_f24, i, 10.0f); + HuWinPosSet(arg0, temp_f23, temp_f22); + HuWinScaleSet(arg0, temp_f21, temp_f20); + HuPrcVSleep(); + } + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f25, temp_f24); + HuPrcVSleep(); +} + +s32 fn_1_2060(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s32 arg4) { + s32 sp20[][5] = { + { 0xFF, 0xFF, 0xCC, 0x00, 0x09 }, + { 0xCC, 0xFF, 0xFF, 0x00, 0x09 }, + { 0xFF, 0xCC, 0xFF, 0x00, 0x09 } + }; + float sp14[] = { 0.9f, 0.9f, 0.9f }; + GXColor sp10; + s32 temp_r31; + + temp_r31 = HuWinCreate(arg0, arg1, arg2, arg3, 1); + sp10.r = sp20[arg4][0]; + sp10.g = sp20[arg4][1]; + sp10.b = sp20[arg4][2]; + HuWinBGColSet(temp_r31, &sp10); + HuWinBGTPLvlSet(temp_r31, sp14[arg4]); + fn_1_1148(temp_r31, 0.5f, 0.5f, 1); + return temp_r31; +} + +s32 fn_1_2230(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s32 arg4) { + return fn_1_2060(arg0, arg1, arg2, arg3, arg4); +} + +void fn_1_2400(s32 arg0) { + HuWinMesSet(arg0, MAKE_MESSID(29, 22)); + HuPrcVSleep(); + fn_1_1148(arg0, 0.5f, 0.5f, 0); + HuWinKill(arg0); +} + +void fn_1_2468(s32 arg0) { + fn_1_2400(arg0); +} + +void fn_1_24D0(s32 arg0, s32 arg1) { + s32 i; + s32 var_r30; + s32 temp_r28; + + var_r30 = 0; + temp_r28 = GWMessDelayGet(); + if (arg1 > 0) { + HuPrcSleep(arg1); + return; + } + HuWinComKeyReset(); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_3E4[i].unk0C == 0) { + var_r30 = 1; + winData[arg0].active_pad = 0xF; + } + } + if (var_r30 == 0) { + winData[arg0].active_pad = 0xF; + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, temp_r28); + } + HuWinMesWait(arg0); + HuWinComKeyReset(); +} + +void fn_1_25B8(s32 arg0) { + s32 var_r31; + s32 temp_r28; + s32 i; + + var_r31 = 0; + temp_r28 = GWMessDelayGet(); + HuWinComKeyReset(); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_3E4[i].unk0C == 0) { + var_r31 = 1; + winData[arg0].active_pad = 0xF; + } + } + if (var_r31 == 0) { + winData[arg0].active_pad = 0xF; + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, temp_r28); + } + var_r31 = HuWinChoiceGet(arg0, 1); + if (var_r31 == -1 || var_r31 == 1) { + lbl_1_bss_8 = 0; + } else { + lbl_1_bss_8 = 1; + } + HuWinComKeyReset(); +} + +void fn_1_26D4(float* arg0, s32 arg1) { + float spC[2]; + + HuWinMesMaxSizeGet(1, spC, arg1); + if (spC[0] > arg0[0]) { + arg0[0] = spC[0]; + } + if (spC[1] > arg0[1]) { + arg0[1] = spC[1]; + } +} + +void fn_1_2744(s32 arg0, s32 arg1) { + winData[arg0].mess_color = 0; + winData[arg0].mess_shadow_color = 9; + winData[arg0].attr |= 0x80; + HuWinMesSet(arg0, arg1); +} + +void fn_1_27C8(s32 arg0) { + if (lbl_1_bss_10 == 0) { + lbl_1_bss_10 = 1; + lbl_1_bss_C = arg0 * 60; + } +} + +s32 fn_1_2800(void) { + if (lbl_1_bss_10 == 3) { + return 1; + } else { + return 0; + } +} + +void fn_1_2824(void) { + if (lbl_1_bss_10 == 2) { + lbl_1_bss_10 = 3; + lbl_1_bss_C = 30; + } +} + +s32 lbl_1_data_16C = -1; + +void fn_1_285C(omObjData* arg0) { + switch (lbl_1_bss_10) { + case 1: + if (lbl_1_data_16C == -1) { + lbl_1_data_16C = MGSeqCreate(1, lbl_1_bss_C / 60, -1, -1); + } + lbl_1_bss_10 = 2; + break; + case 2: + lbl_1_bss_C--; + if (lbl_1_data_16C != -1) { + MGSeqParamSet(lbl_1_data_16C, 1, (lbl_1_bss_C + 59) / 60); + } + if (lbl_1_bss_C <= 0) { + lbl_1_bss_C = 30; + lbl_1_bss_10 = 3; + } + break; + case 3: + if (lbl_1_data_16C != -1) { + MGSeqParamSet(lbl_1_data_16C, 2, -1); + lbl_1_data_16C = -1; + } + lbl_1_bss_C = 0; + lbl_1_bss_10 = 0; + break; + } +} + +void fn_1_2A2C(void) { + lbl_1_bss_C = 0; + lbl_1_bss_10 = 0; + omAddObjEx(lbl_1_bss_0, 0x2000, 0, 0, -1, fn_1_285C); +} + +void fn_1_2A90(s32 arg0) { + float spC[2]; + float temp_f31; + float temp_f30; + float temp_f28; + float temp_f29; + WindowData* temp_r29; + StructBss234* var_r31; + s32 i; + + temp_r29 = &winData[arg0]; + var_r31 = &lbl_1_bss_234; + temp_f31 = temp_r29->pos_x; + temp_f30 = temp_r29->pos_y; + temp_f28 = temp_r29->h; + temp_f29 = temp_r29->w; + for (i = 0; i < var_r31->unk00; i++) { + HuWinMesMaxSizeGet(1, spC, lbl_1_data_20[var_r31->unk44[i]]); + var_r31->unk08[i] = HuWinCreate(temp_f31 + temp_f29 + 16.0f + var_r31->unk80[i][0], temp_f30 + 26.0f + var_r31->unk80[i][1], spC[0], spC[1], 1); + winData[var_r31->unk08[i]].mess_shadow_color = 9; + HuWinMesColSet(var_r31->unk08[i], 0); + HuWinScissorSet(var_r31->unk08[i], temp_f31 + 20.0f, temp_f30, temp_f29 + 20.0f, temp_f28); + HuWinBGTPLvlSet(var_r31->unk08[i], 0.0f); + HuPrcVSleep(); + fn_1_2744(var_r31->unk08[i], lbl_1_data_20[var_r31->unk44[i]]); + } + var_r31->unk04 = 4.0f; + HuPrcVSleep(); +} + +void fn_1_2D94(s32 arg0) { + float sp10[2]; + float temp_f31; + float temp_f29; + float spC; + float temp_f30; + WindowData* temp_r30; + StructBss234* var_r31; + s32 i; + + temp_r30 = &winData[arg0]; + var_r31 = &lbl_1_bss_234; + temp_f31 = temp_r30->pos_x; + temp_f29 = temp_r30->pos_y; + spC = temp_r30->h; + temp_f30 = temp_r30->w; + while (TRUE) { + for (i = 0; i < var_r31->unk00; i++) { + var_r31->unk80[i][0] -= var_r31->unk04; + HuWinPosSet(var_r31->unk08[i], temp_f31 + temp_f30 + 16.0f + var_r31->unk80[i][0], 26.0f + temp_f29 + var_r31->unk80[i][1]); + } + if (var_r31->unk00 >= 2) { + HuWinMesMaxSizeGet(1, sp10, lbl_1_data_20[var_r31->unk44[2]]); + if (temp_f31 + temp_f30 + 16.0f + var_r31->unk80[2][0] + sp10[0] <= temp_f31 + temp_f30 - 16.0f) { + var_r31->unk04 += 0.75f; + } + } + HuWinMesMaxSizeGet(1, sp10, lbl_1_data_20[var_r31->unk44[var_r31->unk00 - 1]]); + if (temp_f31 + temp_f30 + 16.0f + var_r31->unk80[var_r31->unk00 - 1][0] + sp10[0] <= temp_f31 - 16.0f) { + break; + } + HuPrcVSleep(); + } + HuPrcVSleep(); +} + +void fn_1_3020(void) { + s32 i; + StructBss234* var_r30; + + var_r30 = &lbl_1_bss_234; + for (i = 0; i < var_r30->unk00; i++) { + HuWinKill(var_r30->unk08[i]); + HuPrcVSleep(); + } + HuPrcVSleep(); +} + +void fn_1_3088(void) { + float sp8[2]; + StructBss234* var_r31; + s32 i; + + var_r31 = &lbl_1_bss_234; + var_r31->unk00 = rand8() % 2 + 10; + if (var_r31->unk00 >= 15) { + var_r31->unk00 = 15; + } + for (i = 0; i < 15; i++) { + var_r31->unk44[i] = -1; + } + for (i = 0; i < var_r31->unk00; i++) { + var_r31->unk44[i] = rand8() % 8; + } + var_r31->unk80[0][0] = 0.0f; + var_r31->unk80[0][1] = 0.0f; + for (i = 1; i < var_r31->unk00; i++) { + HuWinMesMaxSizeGet(1, sp8, lbl_1_data_20[var_r31->unk44[i - 1]]); + var_r31->unk80[i][0] = var_r31->unk80[i - 1][0] + sp8[0] + 8.0f; + var_r31->unk80[i][1] = var_r31->unk80[0][1]; + } +} + +void fn_1_31FC(omObjData* arg0) { + StructBss220* var_r29; + ModelData* temp_r30; + s32 i; + + var_r29 = &lbl_1_bss_220; + temp_r30 = &Hu3DData[arg0->model[8]]; + for (i = 0; i < 3; i++) { + Hu3DData[arg0->model[i + 5]].rot.y += 360.0f / (2500.0f + 2500.0f * i); + } + if (arg0->work[0] == 0 && arg0->work[2]++ >= 600) { + arg0->work[2] = 0; + if (rand8() % 2 == 0) { + arg0->work[0] = 1; + } + } + switch (arg0->work[0]) { + case 10: + var_r29->unk04 = 11; + fn_1_11818(arg0, 10, 12, 1, 0); + Hu3DModelAttrReset(arg0->model[10], HU3D_ATTR_DISPOFF); + fn_1_614(1, 10, 4.0f); + HuAudFXPlay(0x6CF); + /* fallthrough */ + case 1: + case 11: + fn_1_11818(arg0, 0, 0, 1, 0); + fn_1_11818(arg0, 3, 3, 1, 0); + fn_1_11818(arg0, 4, 4, 1, 0); + fn_1_11818(arg0, 5, 5, 1, 0); + fn_1_11818(arg0, 6, 6, 1, 0); + fn_1_11818(arg0, 7, 7, 1, 0); + if (arg0->work[0] == 1) { + HuAudFXPlay(0x6CE); + } + arg0->work[0] = 99; + break; + case 2: + arg0->work[0] = 3; + fn_1_11818(arg0, 0, 0, 1, 0); + fn_1_11818(arg0, 1, 1, 1, 0); + fn_1_11818(arg0, 2, 2, 1, 0); + fn_1_11818(arg0, 3, 3, 1, 0); + fn_1_11818(arg0, 4, 4, 1, 0); + fn_1_11818(arg0, 5, 5, 1, 0); + fn_1_11818(arg0, 6, 6, 1, 0); + fn_1_11818(arg0, 7, 7, 1, 0); + fn_1_11818(arg0, 9, 9, 1, 0); + Hu3DModelAttrReset(arg0->model[9], HU3D_ATTR_DISPOFF); + HuAudFXPlay(0x6D0); + break; + case 3: + fn_1_614(6, -1, 8.0f); + if (Hu3DMotionTimeGet(arg0->model[3]) >= 30.0f) { + arg0->work[0] = 99; + fn_1_11818(arg0, 8, 8, 0, 0); + fn_1_614(6, -1, 128.0f); + HuAudFXPlay(0x6DA); + omVibrate(fn_1_538C(0), 12, 12, 0); + omVibrate(fn_1_538C(1), 12, 12, 0); + omVibrate(fn_1_538C(2), 12, 12, 0); + omVibrate(fn_1_538C(3), 12, 12, 0); + Hu3DModelAttrReset(arg0->model[8], HU3D_ATTR_DISPOFF); + } + break; + case 99: + if (Hu3DMotionEndCheck(arg0->model[3]) != 0) { + arg0->work[0] = 0; + fn_1_11818(arg0, 3, 10, 1, 1); + fn_1_11818(arg0, 4, 11, 1, 1); + Hu3DModelAttrSet(arg0->model[9], HU3D_ATTR_DISPOFF); + } + break; + } + if (Hu3DMotionTimeGet(arg0->model[10]) >= 25.0f && var_r29->unk04 == 0) { + var_r29->unk04 = 1; + fn_1_614(1, 10, 4.0f); + } else if (Hu3DMotionTimeGet(arg0->model[10]) >= 40.0f && var_r29->unk04 == 1) { + var_r29->unk04 = 2; + fn_1_614(1, 10, 4.0f); + } + switch (arg0->work[1]) { + case 1: + if (arg0->work[3] >= 360.0f) { + arg0->work[3] = 0; + } + temp_r30->pos.y = fn_1_110FC(temp_r30->pos.y, fn_1_1122C(210.0f, 220.0f, arg0->work[3]++, 360.0f), 30.0f); + break; + case 2: + temp_r30->pos.y = fn_1_110FC(temp_r30->pos.y, 60.0f, 20.0f); + arg0->work[3] = 0; + break; + case 3: + temp_r30->pos.y = fn_1_110FC(temp_r30->pos.y, 260.0f, 20.0f); + arg0->work[3] = 0; + break; + } +} + +void fn_1_39B4(omObjData* arg0) { + fn_1_11818(arg0, 0, 0, 1, 2); + Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, -680.0f); + fn_1_11818(arg0, 1, 1, 1, 2); + Hu3DModelPosSet(arg0->model[2], 0.0f, 0.0f, -680.0f); + fn_1_11818(arg0, 2, 2, 1, 2); + Hu3DModelPosSet(arg0->model[3], 525.0f, 0.0f, -1150.0f); + fn_1_11818(arg0, 3, 10, 1, 1); + Hu3DModelPosSet(arg0->model[4], -525.0f, 0.0f, -1150.0f); + fn_1_11818(arg0, 4, 11, 1, 1); + fn_1_11818(arg0, 5, 5, 1, 2); + fn_1_11818(arg0, 6, 6, 1, 2); + fn_1_11818(arg0, 7, 7, 1, 2); + Hu3DModelPosSet(arg0->model[8], 0.0f, 210.0f, -320.0f); + Hu3DModelAttrSet(arg0->model[8], HU3D_ATTR_DISPOFF); + fn_1_11818(arg0, 8, 8, 1, 1); + Hu3DModelAttrSet(arg0->model[9], HU3D_ATTR_DISPOFF); + fn_1_11818(arg0, 9, 9, 1, 2); + arg0->work[0] = arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; +} + +void fn_1_3BF0(omObjData* arg0) { + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 21)); + arg0->motion[0] = Hu3DMotionIDGet(arg0->model[0]); + Hu3DModelShadowMapSet(arg0->model[0]); + fn_1_11818(arg0, 0, 0, 1, 2); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 22)); + arg0->motion[1] = Hu3DMotionIDGet(arg0->model[1]); + Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, -680.0f); + Hu3DModelShadowMapSet(arg0->model[1]); + fn_1_11818(arg0, 1, 1, 1, 2); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 23)); + arg0->motion[2] = Hu3DMotionIDGet(arg0->model[2]); + Hu3DModelPosSet(arg0->model[2], 0.0f, 0.0f, -680.0f); + Hu3DModelShadowSet(arg0->model[2]); + fn_1_11818(arg0, 2, 2, 1, 2); + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 24)); + arg0->motion[3] = Hu3DMotionIDGet(arg0->model[3]); + arg0->motion[10] = Hu3DJointMotionFile(arg0->model[3], DATA_MAKE_NUM(DATADIR_M436, 26)); + Hu3DModelPosSet(arg0->model[3], 525.0f, 0.0f, -1150.0f); + Hu3DModelShadowSet(arg0->model[3]); + fn_1_11818(arg0, 3, 10, 1, 1); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 25)); + arg0->motion[4] = Hu3DMotionIDGet(arg0->model[4]); + arg0->motion[11] = Hu3DJointMotionFile(arg0->model[4], DATA_MAKE_NUM(DATADIR_M436, 27)); + Hu3DModelPosSet(arg0->model[4], -525.0f, 0.0f, -1150.0f); + Hu3DModelShadowSet(arg0->model[4]); + fn_1_11818(arg0, 4, 11, 1, 1); + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 10)); + arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]); + Hu3DModelPosSet(arg0->model[5], 0.0f, 150.0f, 0.0f); + Hu3DModelLayerSet(arg0->model[5], 1); + fn_1_11818(arg0, 5, 5, 1, 2); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 11)); + arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]); + Hu3DModelPosSet(arg0->model[6], 0.0f, 150.0f, 0.0f); + fn_1_11818(arg0, 6, 6, 1, 2); + arg0->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 12)); + arg0->motion[7] = Hu3DMotionIDGet(arg0->model[7]); + Hu3DModelPosSet(arg0->model[7], 0.0f, 150.0f, 0.0f); + fn_1_11818(arg0, 7, 7, 1, 2); + arg0->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 8)); + arg0->motion[8] = Hu3DMotionIDGet(arg0->model[8]); + Hu3DModelPosSet(arg0->model[8], 0.0f, 210.0f, -320.0f); + Hu3DModelShadowSet(arg0->model[8]); + Hu3DModelAttrSet(arg0->model[8], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(arg0->model[8], 2); + fn_1_11818(arg0, 8, 8, 1, 1); + arg0->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 28)); + arg0->motion[9] = Hu3DMotionIDGet(arg0->model[9]); + Hu3DModelAttrSet(arg0->model[9], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(arg0->model[9], 2); + fn_1_11818(arg0, 9, 9, 1, 2); + arg0->model[10] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 29)); + arg0->motion[12] = Hu3DMotionIDGet(arg0->model[10]); + Hu3DModelAttrSet(arg0->model[10], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(arg0->model[10], 2); + fn_1_11818(arg0, 10, 12, 1, 2); + arg0->work[0] = arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; + arg0->func = fn_1_31FC; +} + +void fn_1_420C(omObjData* arg0) { + s32 i; + + switch (arg0->work[0]) { + case 1: + arg0->work[0] = 0; + for (i = 0; i < 8; i++) { + Hu3DModelAttrReset(arg0->model[i + 1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(arg0->model[i + 9], HU3D_ATTR_DISPOFF); + fn_1_11818(arg0, i + 1, i + 1, 1, 0); + } + break; + case 2: + arg0->work[0] = 0; + Hu3DModelAttrReset(arg0->model[arg0->work[1] + 1], HU3D_ATTR_DISPOFF); + fn_1_11818(arg0, arg0->work[1] + 1, arg0->work[1] + 1, 1, 0); + break; + } +} + +void fn_1_4304(omObjData* arg0) { + StructBss1BC* var_r30; + s32 i; + + var_r30 = &lbl_1_bss_1BC; + for (i = 0; i < 8; i++) { + var_r30->unk04[i].x = -2000.0 * cosd(287.5f - 5.0f * i); + var_r30->unk04[i].y = 0.0f; + var_r30->unk04[i].z = -2000.0 * sind(287.5f - 5.0f * i) - 1500.0; + } + for (i = 0; i < 8; i++) { + Hu3DModelPosSet(arg0->model[i + 1], var_r30->unk04[i].x, var_r30->unk04[i].y + 65.0f, var_r30->unk04[i].z); + Hu3DModelAttrSet(arg0->model[i + 1], HU3D_ATTR_DISPOFF); + fn_1_11818(arg0, i + 1, i + 1, 1, 2); + } + for (i = 0; i < 8; i++) { + Hu3DModelPosSet(arg0->model[i + 9], var_r30->unk04[i].x, var_r30->unk04[i].y, var_r30->unk04[i].z); + Hu3DModelAttrSet(arg0->model[i + 9], HU3D_ATTR_DISPOFF); + } + arg0->work[0] = arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; +} + +void fn_1_4594(omObjData* arg0) { + StructBss1BC* var_r30; + s32 i; + + var_r30 = &lbl_1_bss_1BC; + for (i = 0; i < 8; i++) { + var_r30->unk04[i].x = -2000.0 * cosd(287.5f - 5.0f * i); + var_r30->unk04[i].y = 0.0f; + var_r30->unk04[i].z = -2000.0 * sind(287.5f - 5.0f * i) - 1500.0; + } + for (i = 0; i < 8; i++) { + arg0->model[i + 1] = Hu3DModelCreateFile(lbl_1_data_0[i]); + arg0->motion[i + 1] = Hu3DMotionIDGet(arg0->model[i + 1]); + Hu3DModelPosSet(arg0->model[i + 1], var_r30->unk04[i].x, 65.0f + var_r30->unk04[i].y, var_r30->unk04[i].z); + Hu3DModelAttrSet(arg0->model[i + 1], HU3D_ATTR_DISPOFF); + fn_1_11818(arg0, i + 1, i + 1, 1, 2); + } + for (i = 0; i < 8; i++) { + arg0->model[i + 9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 9)); + Hu3DModelPosSet(arg0->model[i + 9], var_r30->unk04[i].x, var_r30->unk04[i].y, var_r30->unk04[i].z); + Hu3DModelShadowSet(arg0->model[i + 9]); + } + arg0->work[0] = arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; + arg0->func = fn_1_420C; +} + +void fn_1_48AC(omObjData* arg0) { + StructBss1A8* sp8; + + sp8 = &lbl_1_bss_1A8; + switch (arg0->work[3]) { + case 1: + arg0->work[3] = 0; + fn_1_11818(arg0, 0, 2, 5, 0); + break; + case 2: + arg0->work[3] = 0; + fn_1_11818(arg0, 0, 1, 30, 1); + break; + case 3: + arg0->work[3] = 0; + fn_1_11818(arg0, 0, 3, 5, 0); + break; + case 4: + arg0->work[3] = 0; + fn_1_11818(arg0, 0, 2, 5, 1); + break; + case 5: + arg0->work[3] = 0; + fn_1_11818(arg0, 0, 2, 5, 0); + break; + } + if (arg0->work[2] == 1) { + arg0->work[2] = 0; + fn_1_11818(arg0, 1, 11, 1, 0); + Hu3DModelAttrReset(arg0->model[1], HU3D_ATTR_DISPOFF); + } +} + +void fn_1_49FC(omObjData* arg0) { + omSetTra(arg0, 0.0f, 37.0f, -565.0f); + omSetSca(arg0, 1.5f, 1.5f, 1.5f); + Hu3DModelHookReset(arg0->model[0]); + fn_1_11818(arg0, 0, 1, 1, 1); + arg0->work[0] = arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; +} + +void fn_1_4AB4(s32 arg0) { + ModelData* var_r28; + HsfData* temp_r31; + HsfMaterial* var_r30; + s32 i; + + var_r28 = &Hu3DData[arg0]; + temp_r31 = var_r28->hsfData; + var_r30 = temp_r31->material; + for (i = 0; i < temp_r31->materialCnt; i++, var_r30++) { + var_r30->flags = 0x10; + } +} + +void fn_1_4B1C(omObjData* arg0) { + StructBss1A8* sp8; + + sp8 = &lbl_1_bss_1A8; + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 31)); + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 32)); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 33)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 34)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 35)); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 36)); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 37)); + arg0->motion[6] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 38)); + arg0->motion[7] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 39)); + arg0->motion[8] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 40)); + arg0->motion[9] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 41)); + arg0->motion[10] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 42)); + arg0->motion[12] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 43)); + omSetTra(arg0, 0.0f, 37.0f, -565.0f); + omSetSca(arg0, 1.5f, 1.5f, 1.5f); + Hu3DModelShadowSet(arg0->model[0]); + fn_1_11818(arg0, 0, 1, 1, 1); + arg0->work[0] = arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 30)); + arg0->motion[11] = Hu3DMotionIDGet(arg0->model[1]); + fn_1_11818(arg0, 0, 11, 1, 2); + Hu3DModelPosSet(arg0->model[1], 0.0f, 300.0f, -770.0f); + Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); + arg0->func = fn_1_48AC; +} + +void fn_1_4EA8(omObjData* arg0) { + switch (arg0->work[3]) { + case 1: + arg0->work[3] = 0; + if (arg0->work[0] == 0) { + fn_1_11818(arg0, 0, 2, 5, 0); + fn_1_11818(arg0, 1, 5, 5, 2); + } else { + fn_1_11818(arg0, 0, 3, 5, 0); + } + break; + case 2: + arg0->work[3] = 0; + if (arg0->work[0] == 0) { + fn_1_11818(arg0, 0, 0, 30, 1); + fn_1_11818(arg0, 1, 5, 30, 1); + } else { + fn_1_11818(arg0, 0, 0, 30, 1); + } + break; + } +} + +void fn_1_4FB0(omObjData* arg0) { + s32 temp_r30; + + temp_r30 = arg0->work[0]; + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 46)); + if (temp_r30 == 0) { + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 48)); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 49)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 50)); + omSetTra(arg0, -400.0f, 37.0f, -425.0f); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 58)); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_M436, 59)); + arg0->motion[6] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_M436, 60)); + Hu3DModelHookSet(arg0->model[0], "g007m0-itemhook_r", arg0->model[1]); + Hu3DModelLayerSet(arg0->model[0], 2); + Hu3DModelLayerSet(arg0->model[1], 2); + fn_1_11818(arg0, 0, 0, 1, 1); + fn_1_11818(arg0, 1, 5, 1, 1); + } else { + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 47)); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 51)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 52)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 53)); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 54)); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 55)); + arg0->motion[6] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 56)); + arg0->motion[7] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 57)); + omSetTra(arg0, 400.0f, 37.0f, -475.0f); + omSetRot(arg0, 0.0f, -15.0f, 0.0f); + fn_1_11818(arg0, 0, 0, 1, 1); + } + Hu3DModelShadowSet(arg0->model[0]); + arg0->func = fn_1_4EA8; +} + +s32 fn_1_538C(s32 arg0) { + StructBss3E4* temp_r31; + + temp_r31 = &lbl_1_bss_3E4[arg0]; + return temp_r31->unk04; +} + +s32 fn_1_53B4(void) { + StructBss3E4* temp_r29; + s32 var_r30; + s32 i; + + var_r30 = 0; + for (i = 0; i < 4; i++) { + temp_r29 = &lbl_1_bss_3E4[i]; + if (temp_r29->unk0C != 0) { + var_r30++; + } + } + return var_r30; +} + +s32 fn_1_5414(s32 arg0) { + StructBss3E4* temp_r31; + + temp_r31 = &lbl_1_bss_3E4[arg0]; + if (temp_r31->unk0C != 0) { + return 1; + } + return 0; +} + +s32 fn_1_5450(s32 arg0) { + StructBss3E4* temp_r31; + + temp_r31 = &lbl_1_bss_3E4[arg0]; + if (HuPadBtnDown[temp_r31->unk18] == 0x100) { + return 1; + } + return 0; +} + +void fn_1_54A0(void) { + StructBss3E4* temp_r31; + s32 sp8[4]; + s32 i; + + sp8[0] = GWPlayerCurrGet(); + for (i = 1; i < 4; i++) { + sp8[i] = sp8[i - 1] + 1; + if (sp8[i] >= 4) { + sp8[i] = 0; + } + } + for (i = 0; i < 4; i++) { + temp_r31 = &lbl_1_bss_3E4[i]; + temp_r31->unk04 = sp8[i]; + temp_r31->unk08 = GWPlayerCfg[temp_r31->unk04].group; + temp_r31->unk0C = GWPlayerCfg[temp_r31->unk04].iscom; + if (temp_r31->unk0C != 0) { + temp_r31->unk10 = GWPlayerCfg[temp_r31->unk04].diff; + } else { + temp_r31->unk10 = 0; + } + temp_r31->unk14 = GWPlayerCfg[temp_r31->unk04].character; + temp_r31->unk18 = GWPlayerCfg[temp_r31->unk04].pad_idx; + } +} + +s32 fn_1_5608(omObjData* arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5, s32 arg6) { + float var_f31; + float var_f30; + float var_f27; + float var_f26; + s32 var_r30; + StructBss3E4* sp18; + + var_r30 = 0; + sp18 = &lbl_1_bss_3E4[arg0->work[0]]; + var_f31 = arg1.x - arg0->trans.x; + var_f30 = arg0->trans.z - arg1.z; + var_f26 = 90.0 + atan2d(var_f30, var_f31); + var_f27 = sqrtf(var_f31 * var_f31 + var_f30 * var_f30); + if (var_f27 <= arg4) { + var_f31 = var_f30 = 0.0f; + var_r30 = 1; + } else { + var_f31 = 72.0f * (var_f31 / var_f27); + var_f30 = 72.0f * (var_f30 / var_f27); + } + var_f27 = arg3 * (sqrtf(var_f31 * var_f31 + var_f30 * var_f30) / 72.0f); + if (var_f27 >= arg3) { + var_f27 = arg3; + } else if (var_f27 <= 1.0f) { + var_f31 = var_f30 = var_f27 = 0.0f; + var_r30 = 1; + } + if (var_f31 != 0.0f || var_f30 != 0.0f || arg2 >= 0.0f) { + if (arg2 >= 0.0f && var_f31 == 0.0f && var_f30 == 0.0f) { + var_f26 = arg2; + } + if (var_f26 >= 180.0f) { + if (arg0->rot.y - var_f26 >= 180.0f) { + arg0->rot.y -= 360.0f; + } + if (arg0->rot.y - var_f26 < -180.0f) { + arg0->rot.y += 360.0f; + } + } else { + if (arg0->rot.y - var_f26 > 180.0f) { + arg0->rot.y -= 360.0f; + } + if (arg0->rot.y - var_f26 <= -180.0f) { + arg0->rot.y += 360.0f; + } + } + arg0->rot.y = (var_f26 + arg0->rot.y * (arg5 - 1.0f)) / arg5; + } + arg0->trans.x += var_f27 * sind(arg0->rot.y); + arg0->trans.z += var_f27 * cosd(arg0->rot.y); + if (arg6 == 0) { + if (var_f27 >= 6.75f) { + fn_1_11B18(arg0, 0, 2, 15, 1); + } else if (var_f27 > 0.0f) { + fn_1_11B18(arg0, 0, 1, 15, 1); + } else { + fn_1_11B18(arg0, 0, 0, 15, 1); + } + } + return var_r30; +} + +void fn_1_5CD0(omObjData* arg0) { + StructBss3E4* sp8; + char** temp_r26; + s32 var_r22; + s32 i, j; + ModelData* temp_r24; + HsfData* temp_r27; + HsfMaterial* var_r31; + StructBss3E4* temp_r30; + HsfAttribute* temp_r23; + + sp8 = &lbl_1_bss_3E4[arg0->work[0]]; + if (arg0->work[2] != 1) { + return; + } + var_r22 = 1; + temp_r24 = &Hu3DData[arg0->model[0]]; + temp_r27 = temp_r24->hsfData; + var_r31 = temp_r27->material; + temp_r30 = &lbl_1_bss_3E4[arg0->work[0]]; + if (temp_r30->unk14 == 3) { + for (i = 0; i < temp_r24->hsfData->materialCnt; i++, var_r31++) { + if (i != 1 && i != 2) { + var_r31->color[0] *= temp_r30->unk2C; + if (var_r31->color[0] == 0) { + var_r31->color[0] = 0; + } + var_r31->color[1] *= temp_r30->unk2C; + if (var_r31->color[1] == 0) { + var_r31->color[1] = 0; + } + var_r31->color[2] *= temp_r30->unk2C; + if (var_r31->color[2] == 0) { + var_r31->color[2] = 0; + } + } + } + } else { + temp_r26 = CharModelTexNameGet(temp_r30->unk14, 2); + for (i = 0; i < temp_r27->materialCnt; i++, var_r31++) { + var_r22 = 1; + for (j = 0; j < var_r31->numAttrs; j++) { + temp_r23 = &temp_r27->attribute[var_r31->attrs[j]]; + if (strcmp(temp_r26[0], temp_r23->bitmap->name) == 0 || strcmp(temp_r26[1], temp_r23->bitmap->name) == 0) { + var_r22 = 0; + } + } + if (var_r22 != 0) { + var_r31->color[0] *= temp_r30->unk2C; + if (var_r31->color[0] == 0) { + var_r31->color[0] = 0; + } + var_r31->color[1] *= temp_r30->unk2C; + if (var_r31->color[1] == 0) { + var_r31->color[1] = 0; + } + var_r31->color[2] *= temp_r30->unk2C; + if (var_r31->color[2] == 0) { + var_r31->color[2] = 0; + } + } + } + } + temp_r30->unk2C -= 0.01; + if (temp_r30->unk2C < 0.0f) { + temp_r30->unk2C = 0.0f; + } +} + +void fn_1_6060(omObjData* arg0) { + u32 temp_r29 = arg0->work[0]; + StructBss3E4* temp_r30 = &lbl_1_bss_3E4[temp_r29]; + Vec sp8[] = { + { -600.0f, 0.0f, 300.0f }, + { -600.0f, 0.0f, 150.0f }, + { -450.0f, 0.0f, 150.0f }, + { -300.0f, 0.0f, 150.0f } + }; + + arg0->model[0] = CharModelCreate(temp_r30->unk14, 2); + arg0->motion[0] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + arg0->motion[1] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 2)); + arg0->motion[2] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 3)); + arg0->motion[3] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 88)); + arg0->motion[4] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 89)); + arg0->motion[5] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 90)); + arg0->motion[6] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 72)); + arg0->motion[7] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 28)); + arg0->motion[8] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, temp_r30->unk14)); + Hu3DModelShadowSet(arg0->model[0]); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); + fn_1_11B18(arg0, 0, 0, 0, 1); + omSetTra(arg0, sp8[temp_r29].x, sp8[temp_r29].y, sp8[temp_r29].z); + CharModelMotionDataClose(temp_r30->unk14); + temp_r30->unk2C = 1.0f; + arg0->func = fn_1_5CD0; +} + +// unused +s16 gap_04_00000182_data[] = { + 0, 0x43, 0, 0x43, 1, 0x43, + 2, 0x43, 3, 0x43, 4, 0x43, + 5, 0x43, 6, 0x43, 7 +}; + +s32 fn_1_62C4(omObjData* arg0) { + Mtx sp8; + StructBss4A4* var_r25; + StructBssD8* var_r31; + StructBss1A8* var_r28; + StructBss3E4* temp_r27; + s32 i; + + var_r25 = &lbl_1_bss_4A4; + var_r31 = &lbl_1_bss_D8; + var_r28 = &lbl_1_bss_1A8; + temp_r27 = &lbl_1_bss_3E4[var_r25->unk00]; + if (arg0->work[3] == 1) { + arg0->work[3] = 0; + arg0->work[1] = 1; + arg0->work[2] = 0; + var_r31->unk04 = 1; + for (i = 0; i < 6; i++) { + var_r31->unk08[i] = -(50.0f * i); + } + } + switch (arg0->work[1]) { + case 1: + arg0->work[1] = 2; + fn_1_11818(var_r28->unk00, 0, 8, 5, 0); + break; + case 2: + if (Hu3DMotionTimeGet(var_r28->unk00->model[0]) == 90.0f) { + arg0->work[1] = 3; + fn_1_11818(temp_r27->unk00, 0, 7, 5, 0); + Hu3DMotionTimeSet(var_r28->unk00->model[0], 90.0f); + Hu3DMotionSpeedSet(var_r28->unk00->model[0], 0.0f); + HuAudCharVoicePlay(temp_r27->unk14, 0x123); + HuAudFXPlay(0x6D5); + omVibrate(temp_r27->unk04, 120, 12, 0); + } + break; + case 3: + Hu3DModelObjMtxGet(var_r28->unk00->model[0], "g000m0-itemhook_M", sp8); + temp_r27->unk00->work[2] = 1; + for (i = 0; i < 6; i++) { + if (var_r31->unk04 == 1 || (var_r31->unk04 == 0 && var_r31->unk08[i] > 0.0f)) { + var_r31->unk08[i] += 10.0f; + } + if (var_r31->unk08[i] > 0.0f) { + var_r31->unk48[i] += 0.1f; + var_r31->unk28[i] -= 5.0f; + if (var_r31->unk88[i] == 0.0f) { + fn_1_11818(arg0, i + 1, i + 1, 1, 1); + } + if (var_r31->unk88[i] < 8.0f) { + var_r31->unk68[i] += 0.025f; + } else if (var_r31->unk88[i] < 23.0f) { + var_r31->unk68[i] = 0.7f; + } else if (var_r31->unk88[i] < 31.0f) { + var_r31->unk68[i] -= 0.1f; + if (var_r31->unk68[i] < 0.0f) { + var_r31->unk68[i] = 0.0f; + } + } + var_r31->unk88[i] += 1.0f; + } + Hu3DModelPosSet(arg0->model[i + 1], sp8[0][3], sp8[1][3] + var_r31->unk28[i], sp8[2][3] + var_r31->unk08[i]); + Hu3DModelScaleSet(arg0->model[i + 1], 1.5f * var_r31->unk48[i], 1.5f * var_r31->unk48[i], 1.5f * var_r31->unk48[i]); + Hu3DModelTPLvlSet(arg0->model[i + 1], var_r31->unk68[i]); + if (var_r31->unk88[i] == 31.0f) { + var_r31->unk08[i] = 0.0f; + var_r31->unk28[i] = 0.0f; + var_r31->unk48[i] = 0.0f; + var_r31->unk68[i] = 0.5f; + var_r31->unk88[i] = 0.0f; + } + } + if (arg0->work[2]++ >= 120) { + var_r31->unk04 = 0; + Hu3DMotionSpeedSet(var_r28->unk00->model[0], 1.0f); + temp_r27->unk00->work[2] = 0; + } + if (arg0->work[2] >= 10 && arg0->work[2] <= 120) { + fn_1_67C(6, 8.0f); + } + break; + } +} + +void fn_1_68E8(omObjData* arg0) { + StructBss1A8* var_r30; + + var_r30 = &lbl_1_bss_1A8; + fn_1_11818(var_r30->unk00, 0, 8, 5, 0); + arg0->func = (void*) fn_1_62C4; // fn_1_62C4 must return s32 to match +} + +void fn_1_6944(omObjData* arg0) { + StructBssD8* var_r29; + s32 i; + + var_r29 = &lbl_1_bss_D8; + for (i = 0; i < 6; i++) { + if (i % 2 == 0) { + arg0->model[i + 1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 44)); + arg0->motion[i + 1] = Hu3DMotionIDGet(arg0->model[i + 1]); + } else { + arg0->model[i + 1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 45)); + arg0->motion[i + 1] = Hu3DMotionIDGet(arg0->model[i + 1]); + } + fn_1_11818(arg0, i + 1, i + 1, 5, 1); + Hu3DModelPosSet(arg0->model[i + 1], 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(arg0->model[i + 1], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[i + 1], 0.0f, 0.0f, 0.0f); + Hu3DModelLayerSet(arg0->model[i + 1], 2); + var_r29->unk08[i] = -(50.0f * i); + var_r29->unk28[i] = 0.0f; + var_r29->unk48[i] = 0.0f; + var_r29->unk68[i] = 0.5f; + var_r29->unk88[i] = 0.0f; + } + var_r29->unk04 = 1; + arg0->func = (void*) fn_1_62C4; // fn_1_62C4 must return s32 to match +} + +void fn_1_6BDC(void) { + StructBss32C* var_r31; + + var_r31 = &lbl_1_bss_32C; + var_r31->unk10 = 0.0f; + var_r31->unk14 = 300.0f; + var_r31->unk18 = 1740.0f; + var_r31->unk28 = -10.0f; + var_r31->unk2C = 0.0f; + var_r31->unk30 = 0.0f; + var_r31->unk38 = 300.0f; + fn_1_125F4(var_r31, 200.0f); +} + +void fn_1_6C8C(void) { + StructBss32C* var_r31; + StructBss32C sp8; + + var_r31 = &lbl_1_bss_32C; + sp8.unk04 = 0.0f; + sp8.unk08 = 200.0f; + sp8.unk0C = -50.0f; + sp8.unk1C = 5.0f; + sp8.unk20 = 0.0f; + sp8.unk24 = 0.0f; + sp8.unk34 = 200.0f; + fn_1_14D24(var_r31, &sp8, var_r31->unk3C++, 30.0f, 5.0f); +} + +void fn_1_6D64(void) { + StructBss32C* var_r31; + + var_r31 = &lbl_1_bss_32C; + var_r31->unk10 = 0.0f; + var_r31->unk14 = 200.0f; + var_r31->unk18 = -50.0f; + var_r31->unk28 = 5.0f; + var_r31->unk2C = 0.0f; + var_r31->unk30 = 0.0f; + var_r31->unk38 = 200.0f; + fn_1_125F4(var_r31, 200.0f); +} + +void fn_1_6E14(void) { + StructBss32C* var_r31; + + var_r31 = &lbl_1_bss_32C; + var_r31->unk10 = 0.0f; + var_r31->unk14 = 300.0f; + var_r31->unk18 = -550.0f; + var_r31->unk28 = -15.0f; + var_r31->unk2C = 0.0f; + var_r31->unk30 = 0.0f; + var_r31->unk38 = 1200.0f; + fn_1_125F4(var_r31, 45.0f); +} + +void fn_1_6EC4(void) { + StructBss32C* var_r31; + + var_r31 = &lbl_1_bss_32C; + var_r31->unk10 = 0.0f; + var_r31->unk14 = 150.0f; + var_r31->unk18 = -550.0f; + var_r31->unk28 = -15.0f; + var_r31->unk2C = 0.0f; + var_r31->unk30 = 0.0f; + var_r31->unk38 = 1200.0f; + fn_1_125F4(var_r31, 30.0f); +} + +void fn_1_6F74(void) { + StructBss32C* var_r31; + StructBss32C sp8; + + var_r31 = &lbl_1_bss_32C; + sp8.unk04 = 0.0f; + sp8.unk08 = 100.0f; + sp8.unk0C = -550.0f; + sp8.unk1C = -20.0f; + sp8.unk20 = 0.0f; + sp8.unk24 = 0.0f; + sp8.unk34 = 2400.0f; + fn_1_13C48(var_r31, &sp8, var_r31->unk3C++, 10.0f, 5.0f); +} + +void fn_1_704C(void) { + StructBss32C* var_r31; + + var_r31 = &lbl_1_bss_32C; + var_r31->unk10 = 0.0f; + var_r31->unk14 = 150.0f; + var_r31->unk18 = -550.0f; + var_r31->unk28 = -15.0f; + var_r31->unk2C = 0.0f; + var_r31->unk30 = 0.0f; + var_r31->unk38 = 1200.0f; + fn_1_125F4(var_r31, 20.0f); +} + +void fn_1_70FC(void) { + StructBss32C* var_r31; + + var_r31 = &lbl_1_bss_32C; + var_r31->unk10 = 0.0f; + var_r31->unk14 = 300.0f; + var_r31->unk18 = -550.0f; + var_r31->unk28 = -15.0f; + var_r31->unk2C = 0.0f; + var_r31->unk30 = 0.0f; + var_r31->unk38 = 1200.0f; + fn_1_125F4(var_r31, 20.0f); +} + +void fn_1_71AC(s32 arg0) { + StructBss32C* var_r23; + + var_r23 = &lbl_1_bss_32C; + fn_1_12294(var_r23); + switch (arg0) { + case 0: + fn_1_8A4(fn_1_6E14); + break; + case 1: + fn_1_8A4(fn_1_6EC4); + break; + case 2: + fn_1_8A4(fn_1_6F74); + break; + case 3: + fn_1_8A4(fn_1_6C8C); + break; + case 4: + fn_1_8A4(fn_1_6BDC); + break; + case 5: + fn_1_8A4(fn_1_6D64); + break; + case 10: + fn_1_8A4(fn_1_704C); + break; + case 11: + fn_1_8A4(fn_1_70FC); + break; + } +} + +void fn_1_72CC(void) { + float sp18[] = { 0.0f, 0.0f }; + StructBss1A8* var_r30; + s32 var_r31; + + var_r30 = &lbl_1_bss_1A8; + fn_1_26D4(sp18, MAKE_MESSID(29, 0)); + fn_1_26D4(sp18, MAKE_MESSID(29, 1)); + var_r31 = fn_1_2230((580.0f - sp18[0]) / 2, 80.0f, sp18[0], sp18[1], 2); + HuAudFXPlay(0x6D1); + var_r30->unk00->work[3] = 1; + fn_1_2744(var_r31, MAKE_MESSID(29, 0)); + fn_1_24D0(var_r31, 0); + var_r30->unk00->work[3] = 2; + var_r30->unk00->work[3] = 1; + fn_1_2744(var_r31, MAKE_MESSID(29, 1)); + fn_1_24D0(var_r31, 0); + var_r30->unk00->work[3] = 2; + fn_1_2468(var_r31); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_77F0(void) { + float sp18[] = { 0.0f, 0.0f }; + StructBss1A8* var_r30; + s32 var_r31; + + var_r30 = &lbl_1_bss_1A8; + fn_1_26D4(sp18, MAKE_MESSID(29, 3)); + var_r31 = fn_1_2230((580.0f - sp18[0]) / 2, 100.0f, sp18[0], sp18[1], 2); + HuAudFXPlay(0x6D2); + var_r30->unk00->work[3] = 3; + fn_1_2744(var_r31, MAKE_MESSID(29, 3)); + fn_1_24D0(var_r31, 60); + lbl_1_bss_4 = 2; + fn_1_24D0(var_r31, 60); + var_r30->unk00->work[3] = 2; + fn_1_2468(var_r31); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_7B58(s32 arg0) { + float sp10[2] = { 0.0f, 0.0f }; + StructBss180* var_r30 = &lbl_1_bss_180[0]; + s32 sp18[] = { + MAKE_MESSID(29, 6), + MAKE_MESSID(29, 8), + MAKE_MESSID(29, 10), + MAKE_MESSID(29, 12), + MAKE_MESSID(29, 15), + MAKE_MESSID(29, 17) + }; + s32 var_r31; + + var_r30->unk00->work[3] = 1; + HuPrcSleep(15); + fn_1_26D4(sp10, sp18[arg0]); + HuAudFXPlayVolPan(0x3E, 0x7F, 0x20); + var_r31 = fn_1_2230(20.0f, 360.0f, sp10[0], sp10[1], 0); + fn_1_2744(var_r31, sp18[arg0]); + fn_1_24D0(var_r31, 0); + var_r30->unk00->work[3] = 2; + fn_1_2468(var_r31); +} + +void fn_1_7F1C(void) { + float sp2D8[2] = { 0.0f, 0.0f }; + StructBss180* var_r30; + s32 var_r31; + + var_r30 = &lbl_1_bss_180[1]; + fn_1_26D4(sp2D8, MAKE_MESSID(29, 5)); + fn_1_26D4(sp2D8, MAKE_MESSID(29, 7)); + fn_1_26D4(sp2D8, MAKE_MESSID(29, 9)); + fn_1_26D4(sp2D8, MAKE_MESSID(29, 11)); + fn_1_26D4(sp2D8, MAKE_MESSID(29, 13)); + fn_1_26D4(sp2D8, MAKE_MESSID(29, 14)); + fn_1_26D4(sp2D8, MAKE_MESSID(29, 16)); + var_r31 = fn_1_2230(550.0f - sp2D8[0], 340.0f, sp2D8[0], sp2D8[1], 1); + HuAudFXPlayVolPan(0x65, 0x7F, 0x60); + var_r30->unk00->work[3] = 1; + fn_1_2744(var_r31, MAKE_MESSID(29, 5)); + fn_1_24D0(var_r31, 0); + var_r30->unk00->work[3] = 2; + fn_1_7B58(0); + var_r30->unk00->work[3] = 1; + fn_1_2744(var_r31, MAKE_MESSID(29, 7)); + fn_1_24D0(var_r31, 0); + var_r30->unk00->work[3] = 2; + fn_1_7B58(1); + var_r30->unk00->work[3] = 1; + fn_1_2744(var_r31, MAKE_MESSID(29, 9)); + fn_1_24D0(var_r31, 0); + var_r30->unk00->work[3] = 2; + fn_1_7B58(2); + var_r30->unk00->work[3] = 1; + fn_1_2744(var_r31, MAKE_MESSID(29, 11)); + fn_1_24D0(var_r31, 0); + var_r30->unk00->work[3] = 2; + fn_1_7B58(3); + var_r30->unk00->work[3] = 1; + fn_1_2744(var_r31, MAKE_MESSID(29, 13)); + fn_1_24D0(var_r31, 0); + var_r30->unk00->work[3] = 2; + var_r30->unk00->work[3] = 1; + fn_1_2744(var_r31, MAKE_MESSID(29, 14)); + fn_1_24D0(var_r31, 0); + var_r30->unk00->work[3] = 2; + fn_1_7B58(4); + var_r30->unk00->work[3] = 1; + fn_1_2744(var_r31, MAKE_MESSID(29, 16)); + fn_1_24D0(var_r31, 0); + var_r30->unk00->work[3] = 2; + fn_1_7B58(5); + var_r30->unk00->work[3] = 1; + fn_1_2744(var_r31, MAKE_MESSID(29, 18)); + fn_1_24D0(var_r31, 0); + var_r30->unk00->work[3] = 2; + fn_1_2468(var_r31); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_A5A8(void) { + float sp9C[2] = { 0.0f, 0.0f }; + StructBss220* sp68; + StructBss1A8* var_r28; + s32 var_r31; + + sp68 = &lbl_1_bss_220; + var_r28 = &lbl_1_bss_1A8; + fn_1_26D4(sp9C, MAKE_MESSID(29, 19)); + fn_1_26D4(sp9C, MAKE_MESSID(29, 20)); + fn_1_26D4(sp9C, MAKE_MESSID(29, 21)); + fn_1_26D4(sp9C, MAKE_MESSID(29, 22)); + fn_1_26D4(sp9C, MAKE_MESSID(29, 37)); + var_r31 = fn_1_2230((580.0f - sp9C[0]) / 2, 80.0f, sp9C[0], sp9C[1], 2); + HuAudFXPlay(0x6D2); + var_r28->unk00->work[3] = 1; + fn_1_2744(var_r31, MAKE_MESSID(29, 19)); + fn_1_24D0(var_r31, 0); + var_r28->unk00->work[3] = 2; + var_r28->unk00->work[3] = 1; + fn_1_2744(var_r31, MAKE_MESSID(29, 20)); + fn_1_24D0(var_r31, 0); + var_r28->unk00->work[3] = 2; + var_r28->unk00->work[3] = 1; + fn_1_2744(var_r31, MAKE_MESSID(29, 21)); + fn_1_24D0(var_r31, 180); + var_r28->unk00->work[3] = 2; + sp68->unk00->work[0] = 10; + fn_1_2744(var_r31, MAKE_MESSID(29, 22)); + fn_1_24D0(var_r31, 60); + var_r28->unk00->work[3] = 4; + fn_1_2A90(var_r31); + fn_1_2D94(var_r31); + fn_1_3020(); + var_r28->unk00->work[3] = 2; + HuPrcSleep(120); + var_r28->unk00->work[3] = 1; + fn_1_2744(var_r31, MAKE_MESSID(29, 37)); + fn_1_24D0(var_r31, 0); + var_r28->unk00->work[3] = 2; + fn_1_2468(var_r31); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_B3D4(void) { + float sp1C[2] = { 0.0f, 0.0f }; + StructBss180* var_r30; + s32 var_r31; + + var_r30 = &lbl_1_bss_180[1]; + lbl_1_bss_4 = 0; + fn_1_26D4(sp1C, MAKE_MESSID(29, 64)); + var_r31 = fn_1_2230(550.0f - sp1C[0], 340.0f, sp1C[0], sp1C[1], 1); + HuAudFXPlayVolPan(0x65, 0x7F, 0x60); + var_r30->unk00->work[3] = 1; + fn_1_2744(var_r31, MAKE_MESSID(29, 64)); + fn_1_25B8(var_r31); + var_r30->unk00->work[3] = 2; + fn_1_2468(var_r31); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_B7E0(void) { +} + +s32 fn_1_B7E4(void) { + StructBss220* var_r31; + + var_r31 = &lbl_1_bss_220; + if (fn_1_11F04(&lbl_1_bss_C0, 0) == 80) { + fn_1_71AC(3); + lbl_1_bss_3A4[0] = HuAudSeqPlay(6); + } + if (fn_1_11F04(&lbl_1_bss_C0, 0) == 115) { + fn_1_71AC(5); + } + if (fn_1_11F04(&lbl_1_bss_C0, 0) == 180) { + fn_1_71AC(0); + } + if (fn_1_11F04(&lbl_1_bss_C0, 0) == 0) { + var_r31->unk00->work[0] = 10; + } + if (fn_1_11F04(&lbl_1_bss_C0, 0) == 150) { + var_r31->unk00->work[0] = 1; + } + if (fn_1_11F04(&lbl_1_bss_C0, 1) != 0) { + return fn_1_11D74(&lbl_1_bss_C0); + } + return 0; +} + +void fn_1_B968(void) { + lbl_1_bss_4 = 0; + HuPrcChildCreate(fn_1_72CC, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_B9B4(void) { + if (lbl_1_bss_4 == 1 && fn_1_11F04(&lbl_1_bss_C0, 1) != 0) { + return fn_1_11D74(&lbl_1_bss_C0); + } + return 0; +} + +void fn_1_BA10(void) { + StructBss3E4* var_r30; + s32 i; + + lbl_1_bss_4 = 0; + HuPrcChildCreate(fn_1_77F0, 100, 0x2000, 0, HuPrcCurrentGet()); + for (i = 0; i < 4; i++) { + var_r30 = &lbl_1_bss_3E4[i]; + Hu3DModelAttrReset(var_r30->unk00->model[0], HU3D_ATTR_DISPOFF); + } +} + +s32 fn_1_BAA4(void) { + StructBss220* var_r31; + StructBss1BC* var_r30; + StructBss220* var_r29; + + var_r31 = &lbl_1_bss_220; + var_r30 = &lbl_1_bss_1BC; + if (lbl_1_bss_4 == 2) { + lbl_1_bss_4 = 0; + var_r31->unk00->work[0] = 2; + var_r30->unk00->work[0] = 1; + } + if (lbl_1_bss_4 == 1 && fn_1_11F04(&lbl_1_bss_C0, 0) == 0) { + var_r29 = &lbl_1_bss_220; + var_r29->unk00->work[1] = 1; + } + if (lbl_1_bss_4 == 1 && fn_1_11F04(&lbl_1_bss_C0, 1) != 0) { + return fn_1_11D74(&lbl_1_bss_C0); + } + return 0; +} + +void fn_1_BBA4(void) { + fn_1_71AC(10); +} + +s32 fn_1_BBF4(void) { + if (fn_1_11F04(&lbl_1_bss_C0, 1) != 0) { + return fn_1_11D74(&lbl_1_bss_C0); + } + return 0; +} + +void fn_1_BC3C(void) { + HuPrcChildCreate(fn_1_B3D4, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_BC78(void) { + if (lbl_1_bss_4 != 0 && fn_1_11F04(&lbl_1_bss_C0, 1) != 0) { + if (lbl_1_bss_8 != 0) { + return fn_1_11D74(&lbl_1_bss_C0); + } + fn_1_11E70(&lbl_1_bss_C0, 6); + } + return 0; +} + +void fn_1_BCF8(void) { + StructBss1A8* var_r31; + + var_r31 = &lbl_1_bss_1A8; + fn_1_11818(var_r31->unk00, 0, 12, 60, 1); + lbl_1_bss_4 = 0; + HuPrcChildCreate(fn_1_7F1C, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_BD6C(void) { + StructBss1A8* var_r31; + + var_r31 = &lbl_1_bss_1A8; + if (lbl_1_bss_4 == 1 && fn_1_11F04(&lbl_1_bss_C0, 0) == 0) { + fn_1_11818(var_r31->unk00, 0, 1, 60, 1); + } + if (lbl_1_bss_4 == 1 && fn_1_11F04(&lbl_1_bss_C0, 1) != 0) { + return fn_1_11D74(&lbl_1_bss_C0); + } + return 0; +} + +void fn_1_BE1C(void) { + fn_1_71AC(11); +} + +s32 fn_1_BE6C(void) { + if (fn_1_11F04(&lbl_1_bss_C0, 1) != 0) { + return fn_1_11D74(&lbl_1_bss_C0); + } + return 0; +} + +void fn_1_BEB4(void) { + lbl_1_bss_4 = 0; + HuPrcChildCreate(fn_1_A5A8, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_BF00(void) { + if (lbl_1_bss_4 == 1) { + lbl_1_bss_4 = 2; + HuAudSeqFadeOut(lbl_1_bss_3A4[0], 1000); + } + if (lbl_1_bss_4 != 0 && fn_1_11F04(&lbl_1_bss_C0, 1) != 0) { + fn_1_71AC(2); + return fn_1_11D74(&lbl_1_bss_C0); + } + return 0; +} + +StructData1E8 lbl_1_data_1E8[] = { + { fn_1_B7E0, fn_1_B7E4, 300 }, + { fn_1_B968, fn_1_B9B4, 60 }, + { fn_1_BA10, fn_1_BAA4, 60 }, + { fn_1_BBA4, fn_1_BBF4, 45 }, + { fn_1_BC3C, fn_1_BC78, 60 }, + { fn_1_BCF8, fn_1_BD6C, 60 }, + { fn_1_BE1C, fn_1_BE6C, 45 }, + { fn_1_BEB4, fn_1_BF00, 15 }, + { NULL, NULL, -1 } +}; + +void fn_1_BFC8(void) { + fn_1_11D18(&lbl_1_bss_C0, lbl_1_data_1E8); +} + +s32 fn_1_BFF8(void) { + s32 var_r31; + + var_r31 = 0; + if (lbl_1_bss_C0.unk10 != NULL) { + lbl_1_bss_C0.unk10(); + lbl_1_bss_C0.unk10 = NULL; + } + if (lbl_1_bss_C0.unk14 != NULL) { + var_r31 = lbl_1_bss_C0.unk14(); + } + return var_r31; +} + +s32 fn_1_C090(s32 arg0, s32 arg1, s32 arg2) { + StructBss4A4* var_r28; + StructBss3E4* temp_r31; + StructBss1BC* var_r27; + StructBss234* var_r26; + s32 var_r29; + s32 var_r30; + s32 spC; + s32 var_r23; + s32 temp_r22; + s32 i; + + var_r29 = 0; + var_r30 = arg1; + spC = arg1; + var_r28 = &lbl_1_bss_4A4; + temp_r31 = &lbl_1_bss_3E4[arg0]; + var_r27 = &lbl_1_bss_1BC; + var_r26 = &lbl_1_bss_234; + if (temp_r31->unk0C != 0) { + if (arg2 % 27 == 2 && temp_r31->unk24 == 0) { + switch (temp_r31->unk10) { + case 0: + if (arg2 <= 120) { + var_r29 = 0; + } else if (var_r28->unk04 <= 3) { + temp_r31->unk24 = var_r29 = 1; + } else { + var_r29 = 0; + } + break; + case 1: + if (arg2 <= 120) { + var_r29 = 0; + } else if (var_r28->unk04 <= 6) { + temp_r31->unk24 = var_r29 = 1; + } else { + var_r29 = 0; + } + break; + case 2: + if (arg2 <= 60) { + var_r29 = 0; + } else if (var_r28->unk04 <= 9) { + temp_r31->unk24 = var_r29 = 1; + } else { + var_r29 = 0; + } + break; + case 3: + if (arg2 <= 60) { + var_r29 = 0; + } else if (var_r28->unk04 <= 12) { + temp_r31->unk24 = var_r29 = 1; + } else { + var_r29 = 0; + } + break; + } + if (var_r29 == 0) { + temp_r31->unk28 = rand8() % 8; + } else { + var_r23 = 0; + for (i = 0; i <= temp_r31->unk10; i++) { + temp_r22 = rand8() % 10; + if (var_r26->unk44[temp_r22] != -1) { + temp_r31->unk28 = var_r26->unk44[temp_r22]; + var_r23 = 1; + break; + } + } + if (var_r23 == 0) { + temp_r31->unk28 = rand8() % 8; + } + } + } + if (temp_r31->unk24 == 1 && temp_r31->unk28 == var_r30) { + var_r30 = 99; + } else if (temp_r31->unk28 > var_r30 && temp_r31->unk00->trans.x >= var_r27->unk04[var_r30].x - 7.5f && var_r30 < 7) { + var_r30++; + } else if (temp_r31->unk28 < var_r30 && temp_r31->unk00->trans.x <= var_r27->unk04[var_r30].x + 7.5f && var_r30 > 0) { + var_r30--; + } + } else { + var_r30 = arg1; + if (HuPadStkX[temp_r31->unk18] > 20.0f && temp_r31->unk00->trans.x >= var_r27->unk04[var_r30].x - 7.5f && var_r30 < 7) { + var_r30++; + } else if (HuPadStkX[temp_r31->unk18] < -20.0f && temp_r31->unk00->trans.x <= var_r27->unk04[var_r30].x + 7.5f && var_r30 > 0) { + var_r30--; + } else if (HuPadBtnDown[temp_r31->unk18] & 0x100) { + var_r30 = 99; + } + } + return var_r30; +} + +void fn_1_C4E8(void) { + StructBss4A4* var_r29; + StructBss3E4* temp_r30; + StructBss1BC* var_r28; + StructBss32C* var_r31; + + var_r29 = &lbl_1_bss_4A4; + temp_r30 = &lbl_1_bss_3E4[var_r29->unk00]; + var_r28 = &lbl_1_bss_1BC; + var_r31 = &lbl_1_bss_32C; + var_r31->unk10 = temp_r30->unk00->trans.x; + var_r31->unk14 = temp_r30->unk00->trans.y + 75.0f; + var_r31->unk18 = var_r28->unk04[0].z - 100.0f; + var_r31->unk28 = -10.0f; + var_r31->unk2C = 0.0f; + var_r31->unk30 = 0.0f; + var_r31->unk38 = 750.0f; + fn_1_125F4(var_r31, 10.0f); +} + +void fn_1_C5E4(void) { + StructBss32C* var_r31; + + var_r31 = &lbl_1_bss_32C; + var_r31->unk10 = 0.0f; + var_r31->unk14 = 100.0f; + var_r31->unk18 = -550.0f; + var_r31->unk28 = -20.0f; + var_r31->unk2C = 0.0f; + var_r31->unk30 = 0.0f; + var_r31->unk38 = 2400.0f; + fn_1_125F4(var_r31, 360.0f); +} + +void fn_1_C694(void) { + StructBss32C* var_r31; + StructBss32C sp8; + + var_r31 = &lbl_1_bss_32C; + sp8.unk04 = 0.0f; + sp8.unk08 = 200.0f; + sp8.unk0C = -550.0f; + sp8.unk1C = -15.0f; + sp8.unk20 = 0.0f; + sp8.unk24 = 0.0f; + sp8.unk34 = 1200.0f; + fn_1_13C48(var_r31, &sp8, var_r31->unk3C++, 10.0f, 5.0f); +} + +void fn_1_C76C(void) { + StructBss32C* var_r31; + StructBss32C sp8; + + var_r31 = &lbl_1_bss_32C; + sp8.unk04 = 0.0f; + sp8.unk08 = 100.0f; + sp8.unk0C = -550.0f; + sp8.unk1C = -20.0f; + sp8.unk20 = 0.0f; + sp8.unk24 = 0.0f; + sp8.unk34 = 2400.0f; + fn_1_13C48(var_r31, &sp8, var_r31->unk3C++, 60.0f, 10.0f); +} + +void fn_1_C844(s32 arg0) { + StructBss32C* var_r27; + + var_r27 = &lbl_1_bss_32C; + fn_1_12294(var_r27); + switch (arg0) { + case 0: + fn_1_8A4(fn_1_C4E8); + break; + case 1: + fn_1_8A4(fn_1_C5E4); + break; + case 2: + fn_1_8A4(fn_1_C694); + break; + case 3: + fn_1_8A4(fn_1_C76C); + break; + } +} + +void fn_1_C90C(void) { + float sp28[] = { 0.0f, 0.0f }; + s32 var_r28; + s32 var_r31; + StructBss1A8* var_r27 = &lbl_1_bss_1A8; + s32 sp3C[] = { + MAKE_MESSID(29, 31), + MAKE_MESSID(29, 32), + MAKE_MESSID(29, 33) + }; + + var_r28 = rand8() % 3; + HuPrcSleep(70); + fn_1_26D4(sp28, sp3C[var_r28]); + var_r31 = fn_1_2230((580.0f - sp28[0]) / 2, 60.0f, sp28[0], sp28[1], 2); + var_r27->unk00->work[2] = 1; + HuAudFXPlay(0x6D2); + HuAudFXPlay(0x6E3); + fn_1_2744(var_r31, sp3C[var_r28]); + fn_1_24D0(var_r31, 120); + fn_1_2468(var_r31); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_CCA4(void) { + float sp2C[] = { 0.0f, 0.0f }; + s32 var_r28; + s32 var_r31; + s32 sp24[] = { + MAKE_MESSID(29, 34), + MAKE_MESSID(29, 35) + }; + + var_r28 = rand8() % 2; + HuPrcSleep(40); + fn_1_26D4(sp2C, sp24[var_r28]); + var_r31 = fn_1_2230((580.0f - sp2C[0]) / 2, 60.0f, sp2C[0], sp2C[1], 2); + HuAudFXPlay(0x6D6); + HuAudFXPlay(0x6D9); + HuAudSeqAllFadeOut(100); + fn_1_2744(var_r31, sp24[var_r28]); + fn_1_24D0(var_r31, 120); + fn_1_2468(var_r31); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_D018(void) { + float sp2C[] = { 0.0f, 0.0f }; + s32 var_r31; + + HuPrcSleep(40); + fn_1_26D4(sp2C, MAKE_MESSID(29, 36)); + var_r31 = fn_1_2230((580.0f - sp2C[0]) / 2, 60.0f, sp2C[0], sp2C[1], 2); + HuAudFXPlay(0x6D6); + HuAudFXPlay(0x6D9); + HuAudSeqAllFadeOut(100); + fn_1_2744(var_r31, MAKE_MESSID(29, 36)); + fn_1_24D0(var_r31, 120); + fn_1_2468(var_r31); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_D344(void) { + StructBss4A4* var_r30; + StructBss3E4* temp_r31; + StructBss1A8* var_r29; + + var_r30 = &lbl_1_bss_4A4; + temp_r31 = &lbl_1_bss_3E4[var_r30->unk00]; + temp_r31->unk1C = temp_r31->unk20 = temp_r31->unk24 = temp_r31->unk28 = 0; + var_r29 = &lbl_1_bss_1A8; + fn_1_11818(var_r29->unk00, 0, 12, 60, 1); + fn_1_C844(0); + fn_1_27C8(5); +} + +s32 fn_1_D418(void) { + Vec sp14; + StructBss4A4* var_r30; + StructBss3E4* temp_r31; + StructBss1BC* var_r28; + StructBss180* var_r26; + StructBss3E4* var_r25; + s32 var_r27; + s32 i; + + var_r27 = 0; + var_r30 = &lbl_1_bss_4A4; + temp_r31 = &lbl_1_bss_3E4[var_r30->unk00]; + var_r28 = &lbl_1_bss_1BC; + fn_1_11F04(&lbl_1_bss_A8, 1); + if (fn_1_11F04(&lbl_1_bss_A8, 0) < 10) { + return 0; + } + if (temp_r31->unk20 == 0) { + if (fn_1_2800()) { + temp_r31->unk20 = 1; + temp_r31->unk24 = 0; + } else { + var_r27 = fn_1_C090(var_r30->unk00, temp_r31->unk1C, fn_1_11F04(&lbl_1_bss_A8, 0)); + if (var_r27 == 99) { + temp_r31->unk20 = 1; + temp_r31->unk24 = 0; + fn_1_2824(); + } else { + temp_r31->unk1C = var_r27; + } + } + } else if (temp_r31->unk24++ >= 60) { + return fn_1_11D74(&lbl_1_bss_A8); + } + sp14.x = var_r28->unk04[temp_r31->unk1C].x; + sp14.y = temp_r31->unk00->trans.y; + sp14.z = var_r28->unk04[0].z - 100.0f; + fn_1_5608(temp_r31->unk00, sp14, 0.0f, 9.0f, 5.0f, 2.0f, 0); + if (temp_r31->unk00->trans.z > sp14.z) { + temp_r31->unk00->trans.z = sp14.z; + } + if (temp_r31->unk00->trans.z < sp14.z) { + temp_r31->unk00->trans.z = sp14.z; + } + var_r26 = &lbl_1_bss_180[1]; + fn_1_113CC(var_r26->unk00, 0, temp_r31->unk00, 0); + for (i = 0; i < 4; i++) { + if (var_r30->unk00 != i) { + var_r25 = &lbl_1_bss_3E4[i]; + fn_1_113CC(var_r25->unk00, 0, temp_r31->unk00, 0); + } + } + return 0; +} + +void fn_1_D6C0(void) { + StructBss4A4* var_r30; + + var_r30 = &lbl_1_bss_4A4; + var_r30->unk0C = 0; +} + +s32 fn_1_D6E4(void) { + StructBss4A4* var_r29; + StructBss3E4* temp_r31; + StructBss1BC* var_r30; + StructBss180* var_r26; + StructBss3E4* var_r25; + s32 i; + + var_r29 = &lbl_1_bss_4A4; + temp_r31 = &lbl_1_bss_3E4[var_r29->unk00]; + var_r30 = &lbl_1_bss_1BC; + if (fn_1_11F04(&lbl_1_bss_A8, 0) < 30) { + if (var_r30->unk04[temp_r31->unk1C].z - 100.0f > temp_r31->unk00->trans.z) { + temp_r31->unk00->trans.z += 9.0f; + fn_1_11B18(temp_r31->unk00, 0, 1, 10, 1); + if (var_r30->unk04[temp_r31->unk1C].z - 100.0f < temp_r31->unk00->trans.z) { + temp_r31->unk00->trans.z = var_r30->unk04[temp_r31->unk1C].z - 100.0f; + fn_1_11B18(temp_r31->unk00, 0, 0, 10, 1); + } + } else { + fn_1_11B18(temp_r31->unk00, 0, 0, 10, 1); + } + } else if (fn_1_11F04(&lbl_1_bss_A8, 0) == 30) { + fn_1_11990(temp_r31->unk00, 0, 5, 30, 0); + } else if (fn_1_11708(temp_r31->unk00, 0, 5, 35, 1) != 0 && var_r29->unk0C == 0) { + var_r29->unk0C = 1; + Hu3DModelHookSet(temp_r31->unk00->model[0], CharModelHookNameGet(temp_r31->unk14, 2, 0), var_r30->unk00->model[temp_r31->unk1C + 1]); + if (temp_r31->unk14 != 7) { + Hu3DModelPosSet(var_r30->unk00->model[temp_r31->unk1C + 1], 0.0f, 5.0f, 0.0f); + } else { + Hu3DModelPosSet(var_r30->unk00->model[temp_r31->unk1C + 1], 0.0f, -15.0f, 0.0f); + } + Hu3DModelScaleSet(var_r30->unk00->model[temp_r31->unk1C + 1], 0.75f, 0.75f, 0.75f); + omVibrate(temp_r31->unk04, 12, 4, 2); + } + var_r26 = &lbl_1_bss_180[1]; + fn_1_113CC(var_r26->unk00, 0, temp_r31->unk00, 0); + for (i = 0; i < 4; i++) { + if (var_r29->unk00 != i) { + var_r25 = &lbl_1_bss_3E4[i]; + fn_1_113CC(var_r25->unk00, 0, temp_r31->unk00, 0); + } + } + if (fn_1_11F04(&lbl_1_bss_A8, 1) != 0) { + return fn_1_11D74(&lbl_1_bss_A8); + } + // Required to match. + if (0) { + s32 var_r28 = 0; + (void) var_r28; + (void) var_r28; + (void) var_r28; + (void) var_r28; + (void) var_r28; + (void) var_r28; + } + return 0; +} + +void fn_1_DA60(void) { + StructBss4A4* var_r30; + StructBss1A8* sp8; + StructBss3E4* temp_r31; + + var_r30 = &lbl_1_bss_4A4; + temp_r31 = &lbl_1_bss_3E4[var_r30->unk00]; + sp8 = &lbl_1_bss_1A8; + var_r30->unk0C = 0; + temp_r31->unk20 = temp_r31->unk24 = temp_r31->unk28 = 0; + Hu3DMotionOverlaySet(temp_r31->unk00->model[0], temp_r31->unk00->motion[4]); + Hu3DModelAttrSet(temp_r31->unk00->model[0], HU3D_MOTATTR_OVL_LOOP); +} + +Vec lbl_1_data_254 = { 0.0f, 0.0f, 0.0f }; +Vec lbl_1_data_260 = { 0.0f, 0.0f, 0.0f }; // unused + +s32 fn_1_DB00(void) { + StructBss4A4* var_r30; + StructBss220* var_r28; + StructBss1BC* sp8; + StructBss3E4* temp_r31; + StructBss1A8* var_r27; + StructBss180* var_r26; + StructBss3E4* var_r25; + s32 i; + + var_r30 = &lbl_1_bss_4A4; + var_r28 = &lbl_1_bss_220; + sp8 = &lbl_1_bss_1BC; + var_r27 = &lbl_1_bss_1A8; + temp_r31 = &lbl_1_bss_3E4[var_r30->unk00]; + if (temp_r31->unk20 == 0 && fn_1_11F04(&lbl_1_bss_A8, 0) <= 180) { + lbl_1_data_254.x = 0.0f; + lbl_1_data_254.y = temp_r31->unk00->trans.y; + lbl_1_data_254.z = 300.0f; + } else if (temp_r31->unk20 == 1 && fn_1_11F04(&lbl_1_bss_A8, 0) <= 320) { + lbl_1_data_254.x = 0.0f; + lbl_1_data_254.y = temp_r31->unk00->trans.y; + lbl_1_data_254.z = -240.0f; + } + temp_r31->unk20 += fn_1_5608(temp_r31->unk00, lbl_1_data_254, 180.0f, 8.0f, 30.0f, 5.0f, 0); + if (temp_r31->unk20 == 1 && var_r30->unk0C == 0) { + var_r30->unk0C = 1; + fn_1_C844(1); + fn_1_11B18(var_r27->unk00, 0, 1, 60, 0); + var_r28->unk00->work[1] = 2; + } + var_r26 = &lbl_1_bss_180[1]; + fn_1_113CC(var_r26->unk00, 0, temp_r31->unk00, 0); + for (i = 0; i < 4; i++) { + if (var_r30->unk00 != i) { + var_r25 = &lbl_1_bss_3E4[i]; + fn_1_113CC(var_r25->unk00, 0, temp_r31->unk00, 0); + } + } + fn_1_11F04(&lbl_1_bss_A8, 1); + if (temp_r31->unk20 == 2) { + Hu3DModelAttrReset(*temp_r31->unk00->model, HU3D_MOTATTR_OVL_LOOP); + return fn_1_11D74(&lbl_1_bss_A8); + } + return 0; +} + +void fn_1_DDBC(void) { + StructBss4A4* var_r30; + StructBss1A8* var_r29; + StructBss3E4* temp_r31; + + var_r30 = &lbl_1_bss_4A4; + var_r29 = &lbl_1_bss_1A8; + temp_r31 = &lbl_1_bss_3E4[var_r30->unk00]; + var_r30->unk0C = 0; + var_r29->unk00->work[3] = 0; + Hu3DMotionSet(temp_r31->unk00->model[0], temp_r31->unk00->motion[5]); + Hu3DMotionTimeSet(temp_r31->unk00->model[0], 999.0f); + Hu3DModelAttrReset(temp_r31->unk00->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(temp_r31->unk00->model[0], HU3D_MOTATTR_REV); + Hu3DMotionOverlayReset(temp_r31->unk00->model[0]); + temp_r31->unk20 = temp_r31->unk24 = temp_r31->unk28 = 0; +} + +s32 fn_1_DEB0(void) { + StructBss4A4* var_r30; + StructBss220* var_r28; + StructBss1BC* var_r29; + StructBss3E4* temp_r31; + ModelData* temp_r27; + ModelData* temp_r26; + StructBss180* var_r25; + + var_r30 = &lbl_1_bss_4A4; + var_r28 = &lbl_1_bss_220; + var_r29 = &lbl_1_bss_1BC; + temp_r31 = &lbl_1_bss_3E4[var_r30->unk00]; + temp_r27 = &Hu3DData[var_r28->unk00->model[8]]; + if (fn_1_11708(temp_r31->unk00, 0, 5, 30, 0) != 0 && var_r30->unk0C == 0) { + Hu3DModelHookReset(temp_r31->unk00->model[0]); + Hu3DModelPosSet(var_r29->unk00->model[temp_r31->unk1C + 1], 0.0f, temp_r27->pos.y, -355.0f); + Hu3DModelScaleSet(var_r29->unk00->model[temp_r31->unk1C + 1], 1.0f, 1.0f, 1.0f); + var_r30->unk0C = temp_r31->unk20 = 1; + } + if (temp_r31->unk20 == 1 && temp_r31->unk24++ >= 60) { + temp_r26 = &Hu3DData[var_r29->unk00->model[temp_r31->unk1C + 1]]; + var_r28->unk00->work[1] = 3; + temp_r26->pos.y = temp_r27->pos.y; + if (var_r30->unk0C == 1) { + var_r30->unk0C = 2; + var_r25 = &lbl_1_bss_180[1]; + fn_1_11818(var_r25->unk00, 0, 6, 60, 1); + } + } + if (temp_r31->unk20 == 1 && fn_1_11F04(&lbl_1_bss_A8, 1) != 0) { + return fn_1_11D74(&lbl_1_bss_A8); + } + return 0; +} + +void fn_1_E0B0(void) { + StructBss4A4* var_r31; + StructBss1A8* var_r30; + StructBss3E4* var_r29; + + var_r31 = &lbl_1_bss_4A4; + var_r30 = &lbl_1_bss_1A8; + var_r29 = &lbl_1_bss_3E4[var_r31->unk00]; + var_r31->unk08 = var_r31->unk0C = 0; + fn_1_11990(var_r29->unk00, 0, 0, 30, 1); + fn_1_11818(var_r30->unk00, 0, 4, 1, 0); +} + +s32 fn_1_E144(void) { + StructBss4A4* var_r31; + StructBss220* var_r28; + StructBss1BC* var_r30; + StructBss1A8* var_r27; + StructBss3E4* temp_r29; + StructBss180* var_r25; + + var_r31 = &lbl_1_bss_4A4; + var_r28 = &lbl_1_bss_220; + var_r30 = &lbl_1_bss_1BC; + var_r27 = &lbl_1_bss_1A8; + temp_r29 = &lbl_1_bss_3E4[var_r31->unk00]; + if (fn_1_11708(var_r27->unk00, 0, 4, 80, 1) != 0 && var_r31->unk0C == 0) { + var_r31->unk0C = 1; + Hu3DModelHookSet(var_r27->unk00->model[0], "g000m0-itemhook_R", var_r30->unk00->model[temp_r29->unk1C + 1]); + Hu3DModelPosSet(var_r30->unk00->model[temp_r29->unk1C + 1], 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(var_r30->unk00->model[temp_r29->unk1C + 1], 0.0f, 90.0f, 0.0f); + Hu3DModelScaleSet(var_r30->unk00->model[temp_r29->unk1C + 1], 0.5f, 0.5f, 0.5f); + var_r28->unk00->work[1] = 1; + } + if (fn_1_11F04(&lbl_1_bss_A8, 0) == 180) { + fn_1_C844(2); + } + if (var_r31->unk0C == 1) { + var_r25 = &lbl_1_bss_180[1]; + var_r25->unk00->rot.y = fn_1_110FC(var_r25->unk00->rot.y, 280.0f, 10.0f); + } + if (fn_1_11F04(&lbl_1_bss_A8, 1) != 0) { + var_r28->unk00->work[0] = 10; + return fn_1_11D74(&lbl_1_bss_A8); + } + return 0; +} + +void fn_1_E38C(void) { + StructBss4A4* var_r31; + StructBss220* sp8; + StructBss1A8* var_r30; + + sp8 = &lbl_1_bss_220; + var_r31 = &lbl_1_bss_4A4; + var_r30 = &lbl_1_bss_1A8; + if (var_r31->unk08 == 0) { + var_r31->unk08 = 1; + if (var_r31->unk04 > 3) { + fn_1_11818(var_r30->unk00, 0, 9, 15, 0); + } + if (var_r31->unk04 > 3 && rand8() % 2 == 0) { + var_r31->unk08 = 2; + } + } else if (var_r31->unk08 == 2) { + var_r31->unk08 = 1; + fn_1_11818(var_r30->unk00, 0, 10, 15, 0); + if (var_r31->unk04 > 6 && rand8() % 2 == 0) { + var_r31->unk08 = 3; + } + } else if (var_r31->unk08 == 3) { + var_r31->unk08 = 1; + fn_1_11818(var_r30->unk00, 0, 10, 15, 0); + } +} + +s32 fn_1_E4CC(void) { + StructBss4A4* var_r31; + StructBss1A8* var_r30; + + var_r31 = &lbl_1_bss_4A4; + var_r30 = &lbl_1_bss_1A8; + if (Hu3DMotionEndCheck(var_r30->unk00->model[0]) && fn_1_11F04(&lbl_1_bss_A8, 1) != 0) { + if (var_r31->unk08 != 1) { + return fn_1_11E70(&lbl_1_bss_A8, 5); + } else { + return fn_1_11D74(&lbl_1_bss_A8); + } + } + return 0; +} + +void fn_1_E56C(void) { + StructBss4A4* var_r31; + StructBss234* var_r30; + StructBss3E4* var_r28; + s32 i; + + var_r31 = &lbl_1_bss_4A4; + var_r30 = &lbl_1_bss_234; + var_r28 = &lbl_1_bss_3E4[var_r31->unk00]; + var_r31->unk08 = 1; + for (i = 0; i < var_r30->unk00; i++) { + if (var_r30->unk44[i] == var_r28->unk1C) { + var_r31->unk08 = 0; + var_r30->unk44[i] = -1; + break; + } + } + if (var_r30->unk00 == var_r31->unk04) { + var_r31->unk08 = 2; + } +} + +s32 fn_1_E628(void) { + StructBss4A4* var_r31; + + var_r31 = &lbl_1_bss_4A4; + if (var_r31->unk08 != 0) { + fn_1_11E70(&lbl_1_bss_A8, 10); + } else { + fn_1_11D74(&lbl_1_bss_A8); + } +} + +void fn_1_E680(void) { + StructBss4A4* var_r31; + StructBss1A8* var_r30; + + var_r31 = &lbl_1_bss_4A4; + var_r30 = &lbl_1_bss_1A8; + var_r31->unk08 = var_r31->unk0C = 0; + fn_1_11818(var_r30->unk00, 0, 7, 15, 0); + lbl_1_bss_4 = 0; + HuPrcChildCreate(fn_1_C90C, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_E710(void) { + StructBss4A4* var_r29; + StructBss1A8* var_r28; + StructBss1BC* var_r31; + StructBss3E4* temp_r30; + StructBss180* var_r27; + + var_r29 = &lbl_1_bss_4A4; + var_r31 = &lbl_1_bss_1BC; + var_r28 = &lbl_1_bss_1A8; + temp_r30 = &lbl_1_bss_3E4[var_r29->unk00]; + if (fn_1_11708(var_r28->unk00, 0, 7, 30, 1) != 0 && var_r29->unk08 == 0) { + var_r29->unk08 = 1; + } + if (fn_1_11708(var_r28->unk00, 0, 7, 40, 1) != 0 && var_r29->unk0C == 0) { + var_r29->unk0C = 1; + var_r27 = &lbl_1_bss_180[1]; + fn_1_11818(var_r27->unk00, 0, 7, 10, 0); + Hu3DModelHookReset(var_r28->unk00->model[0]); + Hu3DModelPosSet(var_r31->unk00->model[temp_r30->unk1C + 1], var_r31->unk04[temp_r30->unk1C].x, var_r31->unk04[temp_r30->unk1C].y + 65.0f, var_r31->unk04[temp_r30->unk1C].z); + Hu3DModelRotSet(var_r31->unk00->model[temp_r30->unk1C + 1], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(var_r31->unk00->model[temp_r30->unk1C + 1], 1.0f, 1.0f, 1.0f); + } + if (lbl_1_bss_4 == 1) { + lbl_1_bss_4 = 2; + } + if (fn_1_11F04(&lbl_1_bss_A8, 1) != 0) { + return fn_1_11D74(&lbl_1_bss_A8); + } + return 0; +} + +void fn_1_E930(void) { + StructBss4A4* var_r29; + StructBss3E4* var_r28; + StructBss180* var_r31; + s32 var_r30; + + var_r29 = &lbl_1_bss_4A4; + var_r30 = var_r29->unk00 + 1; + if (var_r30 == 4) { + var_r30 = 0; + } + var_r28 = &lbl_1_bss_3E4[var_r30]; + fn_1_11990(var_r28->unk00, 0, 1, 15, 1); + var_r31 = &lbl_1_bss_180[1]; + fn_1_11818(var_r31->unk00, 0, 0, 1, 1); + Hu3DMotionSpeedSet(var_r31->unk00->model[0], 1.0f); + fn_1_C844(3); +} + +s32 fn_1_EA04(void) { + Vec sp14[] = { + { -600.0f, 0.0f, 300.0f }, + { -600.0f, 0.0f, 150.0f }, + { -450.0f, 0.0f, 150.0f }, + { -300.0f, 0.0f, 150.0f } + }; + StructBss4A4* var_r30; + StructBss1BC* var_r27; + StructBss3E4* temp_r31; + StructBss3E4* temp_r26; + s32 i; + s32 var_r28; + + var_r30 = &lbl_1_bss_4A4; + var_r27 = &lbl_1_bss_1BC; + var_r28 = var_r30->unk00 + 1; + if (var_r28 == 4) { + var_r28 = 0; + } + for (i = 0; i < 4; i++) { + temp_r31 = &lbl_1_bss_3E4[var_r28]; + if (i != 0) { + fn_1_5608(temp_r31->unk00, sp14[i], 0.0f, 9.0f, 10.0f, 8.0f, 0); + } else { + temp_r31->unk00->trans.x -= 1.0f; + temp_r31->unk00->trans.z += 5.0f; + temp_r31->unk00->rot.y = fn_1_110FC(temp_r31->unk00->rot.y, 0.0f, 10.0f); + if (temp_r31->unk00->trans.x <= -600.0f) { + temp_r31->unk00->trans.x = -600.0f; + } + if (temp_r31->unk00->trans.z >= var_r27->unk04[0].z - 100.0f) { + fn_1_11B18(temp_r31->unk00, 0, 0, 15, 1); + temp_r31->unk00->trans.z = var_r27->unk04[0].z - 100.0f; + } + } + if (i != 0 && i != 3) { + if (temp_r31->unk00->trans.z > 150.0f) { + temp_r31->unk00->trans.z = 150.0f; + } + if (temp_r31->unk00->trans.z < 150.0f) { + temp_r31->unk00->trans.z = 150.0f; + } + } + var_r28++; + if (var_r28 == 4) { + var_r28 = 0; + } + } + if (fn_1_11F04(&lbl_1_bss_A8, 1) != 0) { + temp_r26 = &lbl_1_bss_3E4[var_r30->unk00]; + temp_r26->unk00->rot.y = 0.0f; + var_r30->unk00++; + if (var_r30->unk00 == 4) { + var_r30->unk00 = 0; + } + var_r30->unk04++; + return fn_1_11E70(&lbl_1_bss_A8, 0); + } + return 0; +} + +void fn_1_ED4C(void) { + StructBss4A4* var_r31; + StructBss1A8* var_r30; + + var_r31 = &lbl_1_bss_4A4; + var_r30 = &lbl_1_bss_1A8; + fn_1_11818(var_r30->unk00, 0, 6, 1, 0); + lbl_1_bss_4 = 0; + if (var_r31->unk08 == 1) { + HuPrcChildCreate(fn_1_CCA4, 100, 0x2000, 0, HuPrcCurrentGet()); + } else { + HuPrcChildCreate(fn_1_D018, 100, 0x2000, 0, HuPrcCurrentGet()); + } + var_r31->unk04 = var_r31->unk08 = var_r31->unk0C = 0; +} + +s32 fn_1_EE10(void) { + StructBss4A4* var_r30; + StructBss220* var_r26; + StructBss1BC* var_r29; + StructBss1A8* var_r27; + StructBss180* var_r31; + StructBss3E4* temp_r28; + + var_r30 = &lbl_1_bss_4A4; + var_r26 = &lbl_1_bss_220; + var_r29 = &lbl_1_bss_1BC; + var_r27 = &lbl_1_bss_1A8; + var_r31 = &lbl_1_bss_180[1]; + temp_r28 = &lbl_1_bss_3E4[var_r30->unk00]; + lbl_1_bss_48[0][3] = 400.0f; + lbl_1_bss_48[1][3] = 91.0f; + lbl_1_bss_48[2][3] = -436.0f; + var_r31->unk00->rot.y = fn_1_110FC(var_r31->unk00->rot.y, 360.0f, 10.0f); + if (fn_1_11708(var_r27->unk00, 0, 6, 40, 1) != 0 && var_r30->unk0C == 0) { + var_r30->unk0C = 1; + Hu3DModelHookReset(var_r27->unk00->model[0]); + Hu3DModelObjMtxGet(var_r27->unk00->model[0], "g000m0-itemhook_R", lbl_1_bss_78); + Hu3DModelPosSet(var_r29->unk00->model[temp_r28->unk1C + 1], lbl_1_bss_78[0][3], lbl_1_bss_78[1][3], lbl_1_bss_78[2][3]); + Hu3DModelRotSet(var_r29->unk00->model[temp_r28->unk1C + 1], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(var_r29->unk00->model[temp_r28->unk1C + 1], 1.0f, 1.0f, 1.0f); + Hu3DMotionSpeedSet(var_r26->unk00->model[8], -1.0f); + var_r30->unk04 = 1; + HuAudFXPlay(0x6E0); + } + if (var_r30->unk04 == 1) { + lbl_1_bss_3C.x = fn_1_1113C(lbl_1_bss_78[0][3], lbl_1_bss_48[0][3], lbl_1_bss_14, 30.0f); + if (lbl_1_bss_14 < 13) { + lbl_1_bss_3C.y = fn_1_11164(lbl_1_bss_78[1][3], 500.0f, lbl_1_bss_14, 13.0f); + } else { + lbl_1_bss_3C.y = fn_1_112F4(500.0f, lbl_1_bss_48[1][3], lbl_1_bss_14 - 13, 17.0f); + } + lbl_1_bss_3C.z = fn_1_1113C(lbl_1_bss_78[2][3], lbl_1_bss_48[2][3], lbl_1_bss_14, 30.0f); + if (lbl_1_bss_14 == 10) { + fn_1_11818(var_r31->unk00, 0, 4, 1, 0); + Hu3DMotionSpeedSet(var_r31->unk00->model[0], 1.0f); + } + if (fn_1_11708(var_r31->unk00, 0, 4, 21, 1) != 0 && var_r30->unk08 == 0) { + var_r30->unk08 = 1; + Hu3DMotionSpeedSet(var_r31->unk00->model[0], 0.0f); + } else { + Hu3DModelPosSet(var_r29->unk00->model[temp_r28->unk1C + 1], lbl_1_bss_3C.x, lbl_1_bss_3C.y, lbl_1_bss_3C.z); + } + if (lbl_1_bss_14++ >= 30) { + var_r30->unk04 = 2; + } + } else if (var_r30->unk04 == 2) { + Hu3DModelHookSet(var_r31->unk00->model[0], "g007m0-itemhook_c", var_r29->unk00->model[temp_r28->unk1C + 1]); + Hu3DModelPosSet(var_r29->unk00->model[temp_r28->unk1C + 1], 0.0f, 0.0f, 0.0f); + Hu3DMotionSpeedSet(var_r31->unk00->model[0], 1.0f); + } + if (lbl_1_bss_4 == 1 && Hu3DMotionEndCheck(var_r31->unk00->model[0])) { + lbl_1_bss_14 = 0; + fn_1_11818(var_r31->unk00, 0, 5, 1, 0); + return fn_1_11D74(&lbl_1_bss_A8); + } + return 0; +} + +void fn_1_F404(void) { + StructBss4A4* var_r29; + StructBss1A8* spC; + StructBssD8* var_r28; + StructBss180* var_r31; + StructBss180* var_r30; + StructBss3E4* sp8; + + var_r29 = &lbl_1_bss_4A4; + spC = &lbl_1_bss_1A8; + var_r28 = &lbl_1_bss_D8; + var_r31 = &lbl_1_bss_180[1]; + var_r30 = &lbl_1_bss_180[0]; + sp8 = &lbl_1_bss_3E4[var_r29->unk00]; + var_r28->unk00->work[3] = 1; + var_r31->unk00->rot.y = 0.0f; + fn_1_11818(var_r31->unk00, 0, 5, 30, 1); + fn_1_11818(var_r30->unk00, 0, 1, 30, 1); + fn_1_11818(var_r30->unk00, 1, 6, 30, 1); +} + +s32 fn_1_F4F0(void) { + if (fn_1_11F04(&lbl_1_bss_A8, 1) != 0) { + return fn_1_11D74(&lbl_1_bss_A8); + } + return 0; +} + +StructData1E8 lbl_1_data_290[] = { + { fn_1_D344, fn_1_D418, 600 }, + { fn_1_D6C0, fn_1_D6E4, 90 }, + { fn_1_DA60, fn_1_DB00, 300 }, + { fn_1_DDBC, fn_1_DEB0, 150 }, + { fn_1_E0B0, fn_1_E144, 240 }, + { fn_1_E38C, fn_1_E4CC, 90 }, + { fn_1_E56C, fn_1_E628, 120 }, + { fn_1_E680, fn_1_E710, 120 }, + { fn_1_E930, fn_1_EA04, 120 }, + { NULL, NULL, -1 }, + { fn_1_ED4C, fn_1_EE10, -1 }, + { fn_1_F404, fn_1_F4F0, 60 }, + { NULL, NULL, -1 } +}; + +void fn_1_F538(void) { + fn_1_11D18(&lbl_1_bss_A8, lbl_1_data_290); +} + +s32 fn_1_F568(void) { + s32 var_r31; + + var_r31 = 0; + if (lbl_1_bss_A8.unk10 != NULL) { + lbl_1_bss_A8.unk10(); + lbl_1_bss_A8.unk10 = NULL; + } + if (lbl_1_bss_A8.unk14 != NULL) { + var_r31 = lbl_1_bss_A8.unk14(); + } + return var_r31; +} + +void fn_1_F600(void) { + StructBss4A4* var_r30; + StructBss3E4* temp_r31; + + var_r30 = &lbl_1_bss_4A4; + temp_r31 = &lbl_1_bss_3E4[var_r30->unk00]; + var_r30->unk0C = 0; + lbl_1_data_E0 = temp_r31->unk00->model[0]; + lbl_1_data_E4 = temp_r31->unk00->motion[8]; + lbl_1_data_E8 = temp_r31->unk14; + HuPrcChildCreate(fn_1_0, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_F6B0(void) { + StructBss4A4* var_r31; + StructBss3E4* temp_r30; + + var_r31 = &lbl_1_bss_4A4; + temp_r30 = &lbl_1_bss_3E4[var_r31->unk00]; + if (fn_1_11F04(&lbl_1_bss_24, 0) == 120) { + fn_1_11818(temp_r30->unk00, 0, 8, 30, 0); + HuAudSStreamPlay(3); + } + if (fn_1_11F04(&lbl_1_bss_24, 1) != 0) { + return fn_1_11D74(&lbl_1_bss_24); + } + return 0; +} + +StructData1E8 lbl_1_data_32C[] = { + { fn_1_F600, fn_1_F6B0, 360 }, + { NULL, NULL, -1 } +}; + +void fn_1_F75C(void) { + fn_1_11D18(&lbl_1_bss_24, lbl_1_data_32C); +} + +s32 fn_1_F78C(void) { + s32 var_r31; + + var_r31 = 0; + if (lbl_1_bss_24.unk10 != NULL) { + lbl_1_bss_24.unk10(); + lbl_1_bss_24.unk10 = NULL; + } + if (lbl_1_bss_24.unk14 != NULL) { + var_r31 = lbl_1_bss_24.unk14(); + } + return var_r31; +} + +void fn_1_F824(omObjData* arg0) { + StructBss1A8* sp8; + StructBss4A4* var_r30; + StructBss3E4* temp_r29; + s32 i; + + sp8 = &lbl_1_bss_1A8; + if (WipeStatGet() == 0) { + CharModelKill(-1); + MGSeqKillAll(); + HuAudFadeOut(1); + var_r30 = &lbl_1_bss_4A4; + temp_r29 = &lbl_1_bss_3E4[var_r30->unk00]; + for (i = 0; i < 4; i++) { + GWPlayerCoinWinSet(i, 0); + } + GWPlayerCoinWinSet(temp_r29->unk04, 1); + omOvlReturnEx(1, 1); + arg0->func = NULL; + } +} + +void fn_1_F924(omObjData* arg0) { + if (omSysExitReq == 1) { + HuAudSeqAllFadeOut(250); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + arg0->func = fn_1_F824; + } +} + +void fn_1_F984(void) { + StructBss180* var_r21; + StructBss4A4* var_r22; + StructBss3E4* temp_r25; + s32 i; + + fn_1_3088(); + fn_1_39B4(lbl_1_bss_220.unk00); + fn_1_4304(lbl_1_bss_1BC.unk00); + fn_1_49FC(lbl_1_bss_1A8.unk00); + var_r21 = &lbl_1_bss_180[1]; + Hu3DModelHookReset(var_r21->unk00->model[0]); + fn_1_11818(var_r21->unk00, 0, 0, 1, 1); + var_r22 = &lbl_1_bss_4A4; + var_r22->unk00 = var_r22->unk04 = var_r22->unk08 = var_r22->unk0C = 0; + { + StructBss1BC* var_r20 = &lbl_1_bss_1BC; + Vec sp18[] = { + { -600.0f, 0.0f, 300.0f }, + { -600.0f, 0.0f, 150.0f }, + { -450.0f, 0.0f, 150.0f }, + { -300.0f, 0.0f, 150.0f } + }; + + sp18[0].z = var_r20->unk04[0].z - 100.0f; + for (i = 0; i < 4; i++) { + temp_r25 = &lbl_1_bss_3E4[i]; + if (i == 0) { + sp18[i].z = var_r20->unk04[0].z - 100.0f; + } + omSetTra(temp_r25->unk00, sp18[i].x, sp18[i].y, sp18[i].z); + omSetRot(temp_r25->unk00, 0.0f, 0.0f, 0.0f); + omSetSca(temp_r25->unk00, 1.0f, 1.0f, 1.0f); + temp_r25->unk1C = temp_r25->unk20 = temp_r25->unk24 = temp_r25->unk28 = 0; + } + } + fn_1_BFC8(); + fn_1_F538(); + fn_1_F75C(); + fn_1_71AC(4); + lbl_1_bss_3AC.unk28 = HuAudFXPlay(0x6D7); +} + +void fn_1_1026C(omObjData* arg0) { + switch (lbl_1_bss_18) { + case 0: + fn_1_F984(); + lbl_1_bss_18 = 1; + break; + case 1: + if (WipeStatGet() == 0) { + lbl_1_bss_18 = 2; + } + break; + case 2: + if (fn_1_BFF8()) { + lbl_1_bss_18 = 3; + } + break; + case 3: + lbl_1_bss_1C = MGSeqStartCreate(); + lbl_1_bss_18 = 4; + lbl_1_bss_3A4[1] = -1; + break; + case 4: + if ((MGSeqStatGet(lbl_1_bss_1C) & 0x10) && lbl_1_bss_3A4[1] == -1) { + lbl_1_bss_3A4[1] = HuAudSeqPlay(0x4D); + } + if (MGSeqStatGet(lbl_1_bss_1C) == 0) { + lbl_1_bss_18 = 5; + } + break; + case 5: + if (fn_1_F568()) { + lbl_1_bss_18 = 6; + } + break; + case 6: + lbl_1_bss_1C = MGSeqFinishCreate(); + lbl_1_bss_18 = 7; + HuAudSeqPauseAll(0); + HuAudSeqAllFadeOut(250); + break; + case 7: + if (MGSeqStatGet(lbl_1_bss_1C) == 0) { + lbl_1_bss_18 = 8; + } + break; + case 8: + lbl_1_bss_220.unk00->work[0] = 999; + if (fn_1_F78C()) { + lbl_1_bss_18 = 9; + } + break; + case 9: + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + arg0->func = fn_1_F824; + HuAudFXFadeOut(lbl_1_bss_3AC.unk28, 500); + break; + } + fn_1_F924(arg0); +} + +void fn_1_10670(omObjData* arg0) { + StructBss220* var_r28; + StructBss1BC* var_r27; + StructBss1A8* var_r26; + StructBss180* temp_r30; + StructBss3E4* temp_r29; + StructBssD8* var_r25; + s32 i; + + var_r28 = &lbl_1_bss_220; + var_r28->unk00 = omAddObjEx(lbl_1_bss_0, 0x100, 16, 16, -1, fn_1_3BF0); + var_r27 = &lbl_1_bss_1BC; + var_r27->unk00 = omAddObjEx(lbl_1_bss_0, 0x200, 20, 20, -1, fn_1_4594); + var_r26 = &lbl_1_bss_1A8; + var_r26->unk00 = omAddObjEx(lbl_1_bss_0, 0x300, 16, 16, -1, fn_1_4B1C); + for (i = 0; i < 2; i++) { + temp_r30 = &lbl_1_bss_180[i]; + temp_r30->unk00 = omAddObjEx(lbl_1_bss_0, 0x400, 16, 16, -1, fn_1_4FB0); + temp_r30->unk00->work[0] = i; + } + for (i = 0; i < 4; i++) { + temp_r29 = &lbl_1_bss_3E4[i]; + temp_r29->unk00 = omAddObjEx(lbl_1_bss_0, 0x500, 16, 16, -1, fn_1_6060); + temp_r29->unk00->work[0] = i; + } + var_r25 = &lbl_1_bss_D8; + var_r25->unk00 = omAddObjEx(lbl_1_bss_0, 0x600, 16, 16, -1, fn_1_6944); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + arg0->func = fn_1_1026C; +} + +#include "src/REL/executor.c" + +void fn_1_108DC(void) { + lbl_1_bss_0 = omInitObjMan(62, 0x2000); + omGameSysInit(lbl_1_bss_0); + fn_1_1A8(); + fn_1_F6C(); + fn_1_1084(); + fn_1_178C(); + fn_1_2A2C(); + fn_1_54A0(); + omAddObjEx(lbl_1_bss_0, 0x1000, 0, 0, -1, fn_1_10670); +} + +void ObjectSetup(void) { + fn_1_108DC(); +} diff --git a/src/REL/m436Dll/sequence.c b/src/REL/m436Dll/sequence.c new file mode 100755 index 00000000..3bf58b80 --- /dev/null +++ b/src/REL/m436Dll/sequence.c @@ -0,0 +1,308 @@ +#include "REL/m436Dll.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" + +#include "ext_math.h" + +float fn_1_110FC(float arg0, float arg1, float arg2) { + if (arg2 <= 1.0f) { + return arg1; + } + return (arg1 + arg0 * (arg2 - 1.0f)) / arg2; +} + +float fn_1_1113C(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg2 / arg3) * (arg1 - arg0); +} + +float fn_1_11164(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * sind((90.0f / arg3) * arg2); +} + +float fn_1_1122C(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * sind((360.0f / arg3) * arg2); +} + +float fn_1_112F4(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * (1.0 - cosd((90.0f / arg3) * arg2)); +} + +void fn_1_113CC(omObjData* arg0, s32 arg1, omObjData* arg2, s32 arg3) { + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + + sp20.x = Hu3DData[arg0->model[arg1]].pos.x; + sp20.z = Hu3DData[arg0->model[arg1]].pos.z; + sp2C.x = Hu3DData[arg2->model[arg3]].pos.x; + sp2C.z = Hu3DData[arg2->model[arg3]].pos.z; + sp14.y = Hu3DData[arg0->model[arg1]].rot.y; + sp8.x = sp2C.x - sp20.x; + sp8.z = sp2C.z - sp20.z; + sp14.x = -(atan2d(sp8.z, sp8.x) - 90.0); + if (sp14.x >= 360.0f) { + sp14.x -= 360.0f; + } + if (sp14.x < 0.0f) { + sp14.x += 360.0f; + } + if (sp14.x >= 180.0f) { + if (sp14.y - sp14.x >= 180.0f) { + sp14.y -= 360.0f; + } + if (sp14.y - sp14.x < -180.0f) { + sp14.y += 360.0f; + } + } else { + if (sp14.y - sp14.x > 180.0f) { + sp14.y -= 360.0f; + } + if (sp14.y - sp14.x <= -180.0f) { + sp14.y += 360.0f; + } + } + sp14.y = (9.0f * sp14.y + sp14.x) / 10.0f; + if (arg1 == 0) { + arg0->rot.y = sp14.y; + } else { + Hu3DData[arg0->model[arg1]].rot.y = sp14.y; + } +} + +s32 fn_1_11708(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg0->motion[arg2] == Hu3DMotionIDGet(arg0->model[0])) { + if (arg4 != 0) { + if (Hu3DMotionTimeGet(arg0->model[arg1]) >= arg3) { + return 1; + } + } else if (Hu3DMotionTimeGet(arg0->model[arg1]) <= arg3) { + return 1; + } + } + return 0; +} + +void fn_1_11818(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + switch (arg4) { + case 0: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_NONE); + break; + case 1: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_LOOP); + break; + case 2: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_PAUSE); + break; + } +} + +void fn_1_11990(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + arg0->work[3] = arg0->motion[arg2]; + fn_1_11818(arg0, arg1, arg2, arg3, arg4); +} + +void fn_1_11B18(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg0->work[3] != arg0->motion[arg2]) { + arg0->work[3] = arg0->motion[arg2]; + fn_1_11990(arg0, arg1, arg2, arg3, arg4); + } +} + +void fn_1_11CC8(StructBssC0* arg0) { + arg0->unk08 = 0; + arg0->unk0C = arg0->unk04[arg0->unk00].unk08; + arg0->unk10 = arg0->unk04[arg0->unk00].unk00; + arg0->unk14 = arg0->unk04[arg0->unk00].unk04; +} + +void fn_1_11D18(StructBssC0* arg0, StructData1E8* arg1) { + arg0->unk00 = 0; + arg0->unk04 = arg1; + fn_1_11CC8(arg0); +} + +s32 fn_1_11D74(StructBssC0* arg0) { + arg0->unk00++; + fn_1_11CC8(arg0); + if (arg0->unk10 == NULL && arg0->unk14 == NULL) { + return 1; + } + return 0; +} + +s32 fn_1_11DFC(StructBssC0* arg0) { + arg0->unk00--; + if (arg0->unk00 < 0) { + return 1; + } + fn_1_11CC8(arg0); + return 0; +} + +s32 fn_1_11E70(StructBssC0* arg0, s32 arg1) { + arg0->unk00 = arg1; + if (arg0->unk00 < 0) { + return 1; + } + fn_1_11CC8(arg0); + if (arg0->unk10 == NULL && arg0->unk14 == NULL) { + return 1; + } + return 0; +} + +s32 fn_1_11F04(StructBssC0* arg0, s32 arg1) { + if (arg1 == 0) { + return arg0->unk08; + } + arg0->unk08 += arg1; + if (arg0->unk08 >= arg0->unk0C) { + return 1; + } + return 0; +} + +void fn_1_11F40(StructBss32C* arg0, float* arg1, float* arg2) { + float temp_f31; + float temp_f29; + float temp_f30; + float temp_f27; + + temp_f31 = arg1[0] - arg2[0]; + temp_f29 = arg1[1] - arg2[1]; + temp_f30 = arg1[2] - arg2[2]; + arg0->unk10 = arg2[0]; + arg0->unk14 = arg2[1]; + arg0->unk18 = arg2[2]; + arg0->unk38 = sqrtf(temp_f31 * temp_f31 + temp_f29 * temp_f29 + temp_f30 * temp_f30); + temp_f27 = atan2d(temp_f30, temp_f31); + arg0->unk28 = -(atan2d(temp_f29, temp_f31 * cosd(-temp_f27) + temp_f30 * -sind(-temp_f27))); + arg0->unk2C = -(temp_f27 - 90.0f); + arg0->unk30 = 0.0f; +} + +void fn_1_12258(StructBss32C* arg0) { + arg0->unk04 = arg0->unk10; + arg0->unk08 = arg0->unk14; + arg0->unk0C = arg0->unk18; + arg0->unk1C = arg0->unk28; + arg0->unk20 = arg0->unk2C; + arg0->unk24 = arg0->unk30; + arg0->unk34 = arg0->unk38; +} + +void fn_1_12294(StructBss32C* arg0) { + arg0->unk3C = 0.0f; + arg0->unk10 = arg0->unk04; + arg0->unk14 = arg0->unk08; + arg0->unk18 = arg0->unk0C; + arg0->unk28 = arg0->unk1C; + arg0->unk2C = arg0->unk20; + arg0->unk30 = arg0->unk24; + arg0->unk38 = arg0->unk34; +} + +void fn_1_122E0(StructBss32C* arg0, StructBss32C* arg1, float arg2) { + arg0->unk04 = fn_1_110FC(arg0->unk04, arg1->unk10, arg2); + arg0->unk08 = fn_1_110FC(arg0->unk08, arg1->unk14, arg2); + arg0->unk0C = fn_1_110FC(arg0->unk0C, arg1->unk18, arg2); + arg0->unk1C = fn_1_110FC(arg0->unk1C, arg1->unk28, arg2); + arg0->unk20 = fn_1_110FC(arg0->unk24, arg1->unk2C, arg2); + arg0->unk24 = fn_1_110FC(arg0->unk20, arg1->unk30, arg2); + arg0->unk34 = fn_1_110FC(arg0->unk34, arg1->unk38, arg2); +} + +void fn_1_125F4(StructBss32C* arg0, float arg1) { + fn_1_122E0(arg0, arg0, arg1); +} + +void fn_1_12908(StructBss32C* arg0, StructBss32C* arg1, float arg2, float arg3) { + arg1->unk10 = fn_1_1113C(arg0->unk10, arg1->unk04, arg2, arg3); + arg1->unk14 = fn_1_1113C(arg0->unk14, arg1->unk08, arg2, arg3); + arg1->unk18 = fn_1_1113C(arg0->unk18, arg1->unk0C, arg2, arg3); + arg1->unk28 = fn_1_1113C(arg0->unk28, arg1->unk1C, arg2, arg3); + arg1->unk2C = fn_1_1113C(arg0->unk30, arg1->unk20, arg2, arg3); + arg1->unk30 = fn_1_1113C(arg0->unk2C, arg1->unk24, arg2, arg3); + arg1->unk38 = fn_1_1113C(arg0->unk38, arg1->unk34, arg2, arg3); +} + +void fn_1_12B84(StructBss32C* arg0, StructBss32C* arg1, float arg2, float arg3) { + fn_1_12908(arg0, arg1, arg2, arg3); + arg0->unk04 = arg1->unk10; + arg0->unk08 = arg1->unk14; + arg0->unk0C = arg1->unk18; + arg0->unk1C = arg1->unk28; + arg0->unk20 = arg1->unk2C; + arg0->unk24 = arg1->unk30; + arg0->unk34 = arg1->unk38; +} + +void fn_1_12E38(StructBss32C* arg0, StructBss32C* arg1, float arg2, float arg3, float arg4) { + fn_1_12908(arg0, arg1, arg2, arg3); + fn_1_122E0(arg0, arg1, arg4); +} + +void fn_1_13368(StructBss32C* arg0, StructBss32C* arg1, float arg2, float arg3) { + arg1->unk10 = fn_1_11164(arg0->unk10, arg1->unk04, arg2, arg3); + arg1->unk14 = fn_1_11164(arg0->unk14, arg1->unk08, arg2, arg3); + arg1->unk18 = fn_1_11164(arg0->unk18, arg1->unk0C, arg2, arg3); + arg1->unk28 = fn_1_11164(arg0->unk28, arg1->unk1C, arg2, arg3); + arg1->unk2C = fn_1_11164(arg0->unk30, arg1->unk20, arg2, arg3); + arg1->unk30 = fn_1_11164(arg0->unk2C, arg1->unk24, arg2, arg3); + arg1->unk38 = fn_1_11164(arg0->unk38, arg1->unk34, arg2, arg3); +} + +void fn_1_137BC(StructBss32C* arg0, StructBss32C* arg1, float arg2, float arg3) { + fn_1_13368(arg0, arg1, arg2, arg3); + arg0->unk04 = arg1->unk10; + arg0->unk08 = arg1->unk14; + arg0->unk0C = arg1->unk18; + arg0->unk1C = arg1->unk28; + arg0->unk20 = arg1->unk2C; + arg0->unk24 = arg1->unk30; + arg0->unk34 = arg1->unk38; +} + +void fn_1_13C48(StructBss32C* arg0, StructBss32C* arg1, float arg2, float arg3, float arg4) { + fn_1_13368(arg0, arg1, arg2, arg3); + fn_1_122E0(arg0, arg1, arg4); +} + +void fn_1_14364(StructBss32C* arg0, StructBss32C* arg1, float arg2, float arg3) { + arg1->unk10 = fn_1_112F4(arg0->unk10, arg1->unk04, arg2, arg3); + arg1->unk14 = fn_1_112F4(arg0->unk14, arg1->unk08, arg2, arg3); + arg1->unk18 = fn_1_112F4(arg0->unk18, arg1->unk0C, arg2, arg3); + arg1->unk28 = fn_1_112F4(arg0->unk28, arg1->unk1C, arg2, arg3); + arg1->unk2C = fn_1_112F4(arg0->unk30, arg1->unk20, arg2, arg3); + arg1->unk30 = fn_1_112F4(arg0->unk2C, arg1->unk24, arg2, arg3); + arg1->unk38 = fn_1_112F4(arg0->unk38, arg1->unk34, arg2, arg3); +} + +void fn_1_14828(StructBss32C* arg0, StructBss32C* arg1, float arg2, float arg3) { + fn_1_14364(arg0, arg1, arg2, arg3); + arg0->unk04 = arg1->unk10; + arg0->unk08 = arg1->unk14; + arg0->unk0C = arg1->unk18; + arg0->unk1C = arg1->unk28; + arg0->unk20 = arg1->unk2C; + arg0->unk24 = arg1->unk30; + arg0->unk34 = arg1->unk38; +} + +void fn_1_14D24(StructBss32C* arg0, StructBss32C* arg1, float arg2, float arg3, float arg4) { + fn_1_14364(arg0, arg1, arg2, arg3); + fn_1_122E0(arg0, arg1, arg4); +} From e8f7421e2a563c87dc0369a81a9514254debf301 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Sat, 31 Aug 2024 00:12:45 -0700 Subject: [PATCH 046/311] Matched REL/m435Dll/sequence.c --- config/GMPE01_00/rels/m435Dll/symbols.txt | 34 +- configure.py | 2 +- include/REL/m435Dll.h | 84 ++++ src/REL/m435Dll/sequence.c | 540 ++++++++++++++++++++++ 4 files changed, 642 insertions(+), 18 deletions(-) create mode 100755 include/REL/m435Dll.h create mode 100755 src/REL/m435Dll/sequence.c diff --git a/config/GMPE01_00/rels/m435Dll/symbols.txt b/config/GMPE01_00/rels/m435Dll/symbols.txt index 6be340bb..42eb3002 100644 --- a/config/GMPE01_00/rels/m435Dll/symbols.txt +++ b/config/GMPE01_00/rels/m435Dll/symbols.txt @@ -393,23 +393,23 @@ lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x8 data:4byte lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x30 data:4byte lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x30 data:4byte lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x30 data:4byte -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x8 data:double -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 scope:local data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 lbl_1_data_60 = .data:0x00000060; // type:object size:0x10 data:string lbl_1_data_70 = .data:0x00000070; // type:object size:0x10 data:string diff --git a/configure.py b/configure.py index 9bcbef0b..60ec67c4 100644 --- a/configure.py +++ b/configure.py @@ -1104,7 +1104,7 @@ config.libs = [ "m435Dll", # Darts of Doom objects={ Object(NonMatching, "REL/m435Dll/main.c"), - Object(NonMatching, "REL/m435Dll/sequence.c"), + Object(Matching, "REL/m435Dll/sequence.c"), }, ), Rel( diff --git a/include/REL/m435Dll.h b/include/REL/m435Dll.h new file mode 100755 index 00000000..d4a7464c --- /dev/null +++ b/include/REL/m435Dll.h @@ -0,0 +1,84 @@ +#include "game/object.h" + +#include "dolphin.h" + +// For future reference: m435 has many functions and structs in common with m436 and m437. + +typedef struct { + /* 0x00 */ void (*unk00)(void); + /* 0x04 */ s32 (*unk04)(void); + /* 0x08 */ s32 unk08; +} StructData3A0; // Size 0xC + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ StructData3A0* unk0C; + /* 0x10 */ void (*unk10)(void); + /* 0x14 */ s32 (*unk14)(void); +} StructBss84; // Size unknown + +typedef struct { + /* 0x00 */ void (*unk00)(void); // inferred + /* 0x04 */ void (*unk04)(void); // inferred + /* 0x08 */ char unk08[4]; + /* 0x0C */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ float unk20; + /* 0x24 */ float unk24; + /* 0x28 */ float unk28; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ float unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ float unk40; + /* 0x44 */ float unk44; +} StructBssE08; // Size unknown + +typedef struct { + /* 0x000 */ omObjData* unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ char unk0C[4]; + /* 0x010 */ char unk10[1024]; // Actual char array (unsure about length) + /* 0x410 */ s32 unk410; + /* 0x414 */ s32 unk414[20]; + /* 0x464 */ s32 unk464; + /* 0x468 */ s32 unk468; + /* 0x46C */ s32 unk46C; + /* 0x470 */ float unk470; + /* 0x474 */ float unk474; + /* 0x478 */ float unk478; + /* 0x47C */ float unk47C; +} StructFn19894; // Size unknown + +float fn_1_1526C(float arg0, float arg1, float arg2, float arg3); +float fn_1_15294(float arg0, float arg1, float arg2); +float fn_1_152D4(float arg0, float arg1, float arg2, float arg3); +float fn_1_1539C(float arg0, float arg1, float arg2, float arg3); +void fn_1_154C4(StructBss84* arg0, StructData3A0* arg1); +s32 fn_1_15520(StructBss84* arg0); +void fn_1_1561C(StructBss84* arg0, s32 arg1); +s32 fn_1_15670(StructBss84* arg0, s32 arg1); +s32 fn_1_156AC(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_157BC(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_15934(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_15E50(StructBssE08* arg0); +void fn_1_161B0(StructBssE08* arg0, float arg1); +void fn_1_169F4(StructBssE08* arg0, StructBssE08* arg1, float arg2, float arg3, float arg4); +void fn_1_17804(StructBssE08* arg0, StructBssE08* arg1, float arg2, float arg3, float arg4); +void fn_1_188E0(StructBssE08* arg0, StructBssE08* arg1, float arg2, float arg3, float arg4); +void fn_1_19530(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6); +void fn_1_195F4(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6); +void fn_1_19658(omObjData* arg0, s32 arg1, s32 arg2, float arg3); +void fn_1_19894(StructFn19894* arg0, s32 arg1); +void fn_1_198F8(StructFn19894* arg0, s32 arg1); +void fn_1_19960(StructFn19894* arg0, s32 arg1); +void fn_1_19968(StructFn19894* arg0); +void fn_1_19974(StructFn19894* arg0, s32 arg1); +void fn_1_1A33C(Process* arg0, StructFn19894* arg1, s32 arg2, char* arg3, s32 arg4, s32 arg5); diff --git a/src/REL/m435Dll/sequence.c b/src/REL/m435Dll/sequence.c new file mode 100755 index 00000000..57b3db46 --- /dev/null +++ b/src/REL/m435Dll/sequence.c @@ -0,0 +1,540 @@ +#include "REL/m435Dll.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" + +#include "ext_math.h" +#include "string.h" + +float fn_1_1526C(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg2 / arg3) * (arg1 - arg0); +} + +float fn_1_15294(float arg0, float arg1, float arg2) { + if (arg2 <= 1.0f) { + return arg1; + } + return (arg1 + arg0 * (arg2 - 1.0f)) / arg2; +} + +float fn_1_152D4(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * sind((90.0f / arg3) * arg2); +} + +float fn_1_1539C(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * (1.0 - cosd((90.0f / arg3) * arg2)); +} + +void fn_1_15474(StructBss84* arg0) { + arg0->unk04 = 0; + arg0->unk08 = arg0->unk0C[arg0->unk00].unk08; + arg0->unk10 = arg0->unk0C[arg0->unk00].unk00; + arg0->unk14 = arg0->unk0C[arg0->unk00].unk04; +} + +void fn_1_154C4(StructBss84* arg0, StructData3A0* arg1) { + arg0->unk00 = 0; + arg0->unk0C = arg1; + fn_1_15474(arg0); +} + +s32 fn_1_15520(StructBss84* arg0) { + arg0->unk00++; + fn_1_15474(arg0); + if (arg0->unk10 == NULL && arg0->unk14 == NULL) { + return 1; + } + return 0; +} + +s32 fn_1_155A8(StructBss84* arg0) { + arg0->unk00--; + if (arg0->unk00 < 0) { + return 1; + } + fn_1_15474(arg0); + return 0; +} + +void fn_1_1561C(StructBss84* arg0, s32 arg1) { + arg0->unk00 = arg1; + fn_1_15474(arg0); +} + +s32 fn_1_15670(StructBss84* arg0, s32 arg1) { + if (arg1 == 0) { + return arg0->unk04; + } + arg0->unk04 += arg1; + if (arg0->unk04 >= arg0->unk08) { + return 1; + } + return 0; +} + +s32 fn_1_156AC(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg0->motion[arg2] == Hu3DMotionIDGet(arg0->model[0])) { + if (arg4 != 0) { + if (Hu3DMotionTimeGet(arg0->model[arg1]) >= arg3) { + return 1; + } + } else if (Hu3DMotionTimeGet(arg0->model[arg1]) <= arg3) { + return 1; + } + } + return 0; +} + +void fn_1_157BC(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + switch (arg4) { + case 0: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_NONE); + break; + case 1: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_LOOP); + break; + case 2: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_PAUSE); + break; + } +} + +void fn_1_15934(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg0->motion[arg2] != Hu3DMotionIDGet(arg0->model[arg1]) && arg0->motion[arg2] != Hu3DMotionShiftIDGet(arg0->model[arg1])) { + fn_1_157BC(arg0, arg1, arg2, arg3, arg4); + } +} + +void fn_1_15AFC(StructBssE08* arg0, Vec* arg1, Vec* arg2) { + float temp_f31; + float temp_f29; + float temp_f30; + float temp_f27; + + temp_f31 = arg1->x - arg2->x; + temp_f29 = arg1->y - arg2->y; + temp_f30 = arg1->z - arg2->z; + arg0->unk18 = arg2->x; + arg0->unk1C = arg2->y; + arg0->unk20 = arg2->z; + arg0->unk40 = sqrtf(temp_f31 * temp_f31 + temp_f29 * temp_f29 + temp_f30 * temp_f30); + temp_f27 = atan2d(temp_f30, temp_f31); + arg0->unk30 = -atan2d(temp_f29, temp_f31 * cosd(-temp_f27) + temp_f30 * -sind(-temp_f27)); + arg0->unk34 = -(temp_f27 - 90.0f); + arg0->unk38 = 0.0f; +} + +void fn_1_15E14(StructBssE08* arg0) { + arg0->unk0C = arg0->unk18; + arg0->unk10 = arg0->unk1C; + arg0->unk14 = arg0->unk20; + arg0->unk24 = arg0->unk30; + arg0->unk28 = arg0->unk34; + arg0->unk2C = arg0->unk38; + arg0->unk3C = arg0->unk40; +} + +void fn_1_15E50(StructBssE08* arg0) { + arg0->unk44 = 0.0f; + arg0->unk18 = arg0->unk0C; + arg0->unk1C = arg0->unk10; + arg0->unk20 = arg0->unk14; + arg0->unk30 = arg0->unk24; + arg0->unk34 = arg0->unk28; + arg0->unk38 = arg0->unk2C; + arg0->unk40 = arg0->unk3C; +} + +void fn_1_15E9C(StructBssE08* arg0, StructBssE08* arg1, float arg2) { + arg0->unk0C = fn_1_15294(arg0->unk0C, arg1->unk18, arg2); + arg0->unk10 = fn_1_15294(arg0->unk10, arg1->unk1C, arg2); + arg0->unk14 = fn_1_15294(arg0->unk14, arg1->unk20, arg2); + arg0->unk24 = fn_1_15294(arg0->unk24, arg1->unk30, arg2); + arg0->unk28 = fn_1_15294(arg0->unk28, arg1->unk34, arg2); + arg0->unk2C = fn_1_15294(arg0->unk2C, arg1->unk38, arg2); + arg0->unk3C = fn_1_15294(arg0->unk3C, arg1->unk40, arg2); +} + +void fn_1_161B0(StructBssE08* arg0, float arg1) { + fn_1_15E9C(arg0, arg0, arg1); +} + +void fn_1_164C4(StructBssE08* arg0, StructBssE08* arg1, float arg2, float arg3) { + arg1->unk18 = fn_1_1526C(arg0->unk18, arg1->unk0C, arg2, arg3); + arg1->unk1C = fn_1_1526C(arg0->unk1C, arg1->unk10, arg2, arg3); + arg1->unk20 = fn_1_1526C(arg0->unk20, arg1->unk14, arg2, arg3); + arg1->unk30 = fn_1_1526C(arg0->unk30, arg1->unk24, arg2, arg3); + arg1->unk34 = fn_1_1526C(arg0->unk34, arg1->unk28, arg2, arg3); + arg1->unk38 = fn_1_1526C(arg0->unk38, arg1->unk2C, arg2, arg3); + arg1->unk40 = fn_1_1526C(arg0->unk40, arg1->unk3C, arg2, arg3); +} + +void fn_1_16740(StructBssE08* arg0, StructBssE08* arg1, float arg2, float arg3) { + fn_1_164C4(arg0, arg1, arg2, arg3); + arg0->unk0C = arg1->unk18; + arg0->unk10 = arg1->unk1C; + arg0->unk14 = arg1->unk20; + arg0->unk24 = arg1->unk30; + arg0->unk28 = arg1->unk34; + arg0->unk2C = arg1->unk38; + arg0->unk3C = arg1->unk40; +} + +void fn_1_169F4(StructBssE08* arg0, StructBssE08* arg1, float arg2, float arg3, float arg4) { + fn_1_164C4(arg0, arg1, arg2, arg3); + fn_1_15E9C(arg0, arg1, arg4); +} + +void fn_1_16F24(StructBssE08* arg0, StructBssE08* arg1, float arg2, float arg3) { + arg1->unk18 = fn_1_152D4(arg0->unk18, arg1->unk0C, arg2, arg3); + arg1->unk1C = fn_1_152D4(arg0->unk1C, arg1->unk10, arg2, arg3); + arg1->unk20 = fn_1_152D4(arg0->unk20, arg1->unk14, arg2, arg3); + arg1->unk30 = fn_1_152D4(arg0->unk30, arg1->unk24, arg2, arg3); + arg1->unk34 = fn_1_152D4(arg0->unk34, arg1->unk28, arg2, arg3); + arg1->unk38 = fn_1_152D4(arg0->unk38, arg1->unk2C, arg2, arg3); + arg1->unk40 = fn_1_152D4(arg0->unk40, arg1->unk3C, arg2, arg3); +} + +void fn_1_17378(StructBssE08* arg0, StructBssE08* arg1, float arg2, float arg3) { + fn_1_16F24(arg0, arg1, arg2, arg3); + arg0->unk0C = arg1->unk18; + arg0->unk10 = arg1->unk1C; + arg0->unk14 = arg1->unk20; + arg0->unk24 = arg1->unk30; + arg0->unk28 = arg1->unk34; + arg0->unk2C = arg1->unk38; + arg0->unk3C = arg1->unk40; +} + +void fn_1_17804(StructBssE08* arg0, StructBssE08* arg1, float arg2, float arg3, float arg4) { + fn_1_16F24(arg0, arg1, arg2, arg3); + fn_1_15E9C(arg0, arg1, arg4); +} + +void fn_1_17F20(StructBssE08* arg0, StructBssE08* arg1, float arg2, float arg3) { + arg1->unk18 = fn_1_1539C(arg0->unk18, arg1->unk0C, arg2, arg3); + arg1->unk1C = fn_1_1539C(arg0->unk1C, arg1->unk10, arg2, arg3); + arg1->unk20 = fn_1_1539C(arg0->unk20, arg1->unk14, arg2, arg3); + arg1->unk30 = fn_1_1539C(arg0->unk30, arg1->unk24, arg2, arg3); + arg1->unk34 = fn_1_1539C(arg0->unk34, arg1->unk28, arg2, arg3); + arg1->unk38 = fn_1_1539C(arg0->unk38, arg1->unk2C, arg2, arg3); + arg1->unk40 = fn_1_1539C(arg0->unk40, arg1->unk3C, arg2, arg3); +} + +void fn_1_183E4(StructBssE08* arg0, StructBssE08* arg1, float arg2, float arg3) { + fn_1_17F20(arg0, arg1, arg2, arg3); + arg0->unk0C = arg1->unk18; + arg0->unk10 = arg1->unk1C; + arg0->unk14 = arg1->unk20; + arg0->unk24 = arg1->unk30; + arg0->unk28 = arg1->unk34; + arg0->unk2C = arg1->unk38; + arg0->unk3C = arg1->unk40; +} + +void fn_1_188E0(StructBssE08* arg0, StructBssE08* arg1, float arg2, float arg3, float arg4) { + fn_1_17F20(arg0, arg1, arg2, arg3); + fn_1_15E9C(arg0, arg1, arg4); +} + +void fn_1_1906C(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8) { + Vec sp2C; + Vec sp20; + Vec sp14; + float var_f31; + float var_f30; + float temp_f29; + float temp_f28; + + sp2C.x = arg2->x; + sp2C.y = arg2->y; + sp2C.z = arg2->z; + sp20.x = arg3->x; + sp20.y = arg3->y; + sp20.z = arg3->z; + var_f31 = Hu3DData[arg0->model[arg1]].rot.y; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } else if (var_f31 >= 360.0f) { + var_f31 -= 360.0f; + } + temp_f29 = arg5; + temp_f28 = arg6; + if (arg7 != 0) { + sp14.x = fn_1_1526C(sp2C.x, sp20.x, temp_f29, temp_f28); + sp14.y = fn_1_1526C(sp2C.y, sp20.y, temp_f29, temp_f28); + sp14.z = fn_1_1526C(sp2C.z, sp20.z, temp_f29, temp_f28); + if (arg1 == 0) { + omSetTra(arg0, sp14.x, sp14.y, sp14.z); + } else { + Hu3DModelPosSet(arg0->model[arg1], sp14.x, sp14.y, sp14.z); + } + } + if (arg8 == 0) { + return; + } + var_f30 = -(atan2d(sp20.z - sp2C.z, sp20.x - sp2C.x) - 90.0); + if (var_f30 < 0.0f) { + var_f30 += 360.0f; + } else if (var_f30 >= 360.0f) { + var_f30 -= 360.0f; + } + if (var_f30 >= 180.0f) { + if (var_f31 - var_f30 >= 180.0f) { + var_f31 -= 360.0f; + } + if (var_f31 - var_f30 < -180.0f) { + var_f31 += 360.0f; + } + } else { + if (var_f31 - var_f30 > 180.0f) { + var_f31 -= 360.0f; + } + if (var_f31 - var_f30 <= -180.0f) { + var_f31 += 360.0f; + } + } + var_f31 = (var_f30 + var_f31 * (arg4 - 1)) / arg4; + if (arg1 == 0) { + arg0->rot.y = var_f31; + } else { + Hu3DData[arg0->model[arg1]].rot.y = var_f31; + } +} + +void fn_1_19530(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6) { + fn_1_1906C(arg0, arg1, arg2, arg3, 0, arg5, arg6, 1, 0); +} + +void fn_1_19590(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6) { + fn_1_1906C(arg0, arg1, arg2, arg3, arg4, arg5, arg6, 0, 1); +} + +void fn_1_195F4(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6) { + fn_1_1906C(arg0, arg1, arg2, arg3, arg4, arg5, arg6, 1, 1); +} + +void fn_1_19658(omObjData* arg0, s32 arg1, s32 arg2, float arg3) { + float var_f31; + float var_f30; + + var_f31 = Hu3DData[arg0->model[arg1]].rot.y; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } else if (var_f31 >= 360.0f) { + var_f31 -= 360.0f; + } + var_f30 = arg3; + if (var_f30 < 0.0f) { + var_f30 += 360.0f; + } else if (var_f30 >= 360.0f) { + var_f30 -= 360.0f; + } + if (var_f30 >= 180.0f) { + if (var_f31 - var_f30 >= 180.0f) { + var_f31 -= 360.0f; + } + if (var_f31 - var_f30 < -180.0f) { + var_f31 += 360.0f; + } + } else { + if (var_f31 - var_f30 > 180.0f) { + var_f31 -= 360.0f; + } + if (var_f31 - var_f30 <= -180.0f) { + var_f31 += 360.0f; + } + } + var_f31 = (var_f30 + var_f31 * (arg2 - 1)) / arg2; + if (arg1 == 0) { + arg0->rot.y = var_f31; + } else { + Hu3DData[arg0->model[arg1]].rot.y = var_f31; + } +} + +void fn_1_19894(StructFn19894* arg0, s32 arg1) { + s32 var_r30; + s32 i; + + var_r30 = -1; + for (i = 0; i < 20; i++) { + if (arg0->unk414[i] == -1) { + var_r30 = i; + break; + } + } + if (var_r30 != -1) { + arg0->unk414[var_r30] = arg1; + } +} + +void fn_1_198F8(StructFn19894* arg0, s32 arg1) { + s32 i; + + for (i = 0; i < 20; i++) { + if (arg1 == -1) { + arg0->unk414[i] = -1; + } else if (arg0->unk414[i] == arg1) { + arg0->unk414[i] = -1; + } + } +} + +void fn_1_19960(StructFn19894* arg0, s32 arg1) { + arg0->unk464 = arg1; +} + +void fn_1_19968(StructFn19894* arg0) { + arg0->unk464 = -1; +} + +void fn_1_19974(StructFn19894* arg0, s32 arg1) { + arg0->unk04 = arg1; +} + +float fn_1_1997C(s32 arg0, s32 arg1, s32 arg2) { + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + + sp20.x = Hu3DData[arg0].pos.x; + sp20.z = Hu3DData[arg0].pos.z; + sp14.x = Hu3DData[arg1].pos.x; + sp14.z = Hu3DData[arg1].pos.z; + sp8.x = sp14.x - sp20.x; + sp8.z = sp14.z - sp20.z; + var_f30 = Hu3DData[arg0].rot.y; + if (var_f30 >= 360.0f) { + var_f30 -= 360.0f; + } else if (var_f30 < 0.0f) { + var_f30 += 360.0f; + } + if (var_f30 >= 360.0f) { + var_f30 -= 360.0f; + } else if (var_f30 < 0.0f) { + var_f30 += 360.0f; + } + if (var_f30 >= 360.0f) { + var_f30 -= 360.0f; + } else if (var_f30 < 0.0f) { + var_f30 += 360.0f; + } + var_f31 = atan2d(sp8.z, sp8.x) - 90.0; + if (arg2 == 0) { + var_f31 *= -1.0f; + } + if (arg2 != 0) { + var_f31 += var_f30; + } else { + var_f31 -= var_f30; + } + if (var_f31 >= 180.0f) { + var_f31 -= 360.0f; + } else if (var_f31 < -180.0f) { + var_f31 += 360.0f; + } + if (var_f31 >= 180.0f) { + var_f31 -= 360.0f; + } else if (var_f31 < -180.0f) { + var_f31 += 360.0f; + } + if (var_f31 >= 180.0f) { + var_f31 -= 360.0f; + } else if (var_f31 < -180.0f) { + var_f31 += 360.0f; + } + return var_f31; +} + +float fn_1_19CC0(s32 arg0, s32 arg1) { + Vec sp24; + Vec sp18; + Vec spC; + + sp24.x = Hu3DData[arg0].pos.x; + sp24.z = Hu3DData[arg0].pos.z; + sp18.x = Hu3DData[arg1].pos.x; + sp18.z = Hu3DData[arg1].pos.z; + spC.x = sp18.x - sp24.x; + spC.z = sp18.z - sp24.z; + return sqrtf(spC.x * spC.x + spC.z * spC.z); +} + +void fn_1_19E50(omObjData* arg0) { + StructFn19894* temp_r31; + float var_f30; + float var_f27; + float var_f28; + float var_f24; + s32 i; + + temp_r31 = arg0->data; + var_f30 = 0.0f; + var_f27 = 0.0f; + var_f28 = 0.0f; + var_f24 = temp_r31->unk474; + if (temp_r31->unk04 != 11) { + if (temp_r31->unk04 == 0 || temp_r31->unk04 == 10) { + temp_r31->unk04 = 10; + temp_r31->unk47C = fn_1_15294(temp_r31->unk47C, 0.0f, 5.0f); + Hu3DMotionForceSet(temp_r31->unk08, temp_r31->unk10, temp_r31->unk468, temp_r31->unk47C); + if (temp_r31->unk410++ >= 10) { + temp_r31->unk410 = 0; + temp_r31->unk04 = 11; + Hu3DMotionNoMotReset(temp_r31->unk08, temp_r31->unk10, temp_r31->unk468); + } + return; + } + if (temp_r31->unk464 >= 0) { + var_f30 = fn_1_1997C(temp_r31->unk08, temp_r31->unk464, temp_r31->unk46C); + if (var_f30 >= temp_r31->unk478 || var_f30 <= -temp_r31->unk478) { + var_f30 = 0.0f; + } + temp_r31->unk47C = fn_1_15294(temp_r31->unk47C, var_f30, temp_r31->unk470); + } else { + for (i = 0; i < 20; i++) { + if (temp_r31->unk414[i] < 0) { + continue; + } + var_f28 = fn_1_19CC0(temp_r31->unk08, temp_r31->unk414[i]); + if (var_f28 <= temp_r31->unk474) { + var_f30 = fn_1_1997C(temp_r31->unk08, temp_r31->unk414[i], temp_r31->unk46C); + if (var_f30 <= temp_r31->unk478 && var_f30 >= -temp_r31->unk478 && var_f28 <= var_f24) { + var_f27 = var_f30; + var_f24 = var_f28; + } + } + } + temp_r31->unk47C = fn_1_15294(temp_r31->unk47C, var_f27, temp_r31->unk470); + } + Hu3DMotionForceSet(temp_r31->unk08, temp_r31->unk10, temp_r31->unk468, temp_r31->unk47C); + } +} + +void fn_1_1A33C(Process* arg0, StructFn19894* arg1, s32 arg2, char* arg3, s32 arg4, s32 arg5) { + fn_1_19974(arg1, 1); + arg1->unk08 = arg2; + strcpy(arg1->unk10, arg3); + fn_1_19968(arg1); + fn_1_198F8(arg1, -1); + arg1->unk470 = 5.0f; + arg1->unk474 = 10000.0f; + arg1->unk478 = 90.0f; + arg1->unk410 = 0; + arg1->unk47C = 0.0f; + arg1->unk468 = arg4; + arg1->unk46C = arg5; + arg1->unk00 = omAddObjEx(arg0, 0x3000, 0, 0, -1, fn_1_19E50); + arg1->unk00->data = arg1; +} From 8d3dbb69be79f03ed4afdd83517dc34131283518 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sat, 31 Aug 2024 08:15:24 -0500 Subject: [PATCH 047/311] Bootstrap m432Dll, m450Dll, and m461Dll --- configure.py | 1 - src/REL/m432Dll/main.c | 480 +++++++++++++++++++++++++++++++++++++++++ src/REL/m450Dll/main.c | 480 +++++++++++++++++++++++++++++++++++++++++ src/REL/m461Dll/main.c | 480 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 1440 insertions(+), 1 deletion(-) create mode 100644 src/REL/m432Dll/main.c create mode 100644 src/REL/m450Dll/main.c create mode 100644 src/REL/m461Dll/main.c diff --git a/configure.py b/configure.py index 60ec67c4..5f6490b3 100644 --- a/configure.py +++ b/configure.py @@ -1296,7 +1296,6 @@ config.libs = [ Rel( "m461Dll", # Bob-omb X-ing objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m461Dll/main.c"), }, ), diff --git a/src/REL/m432Dll/main.c b/src/REL/m432Dll/main.c new file mode 100644 index 00000000..117d8d64 --- /dev/null +++ b/src/REL/m432Dll/main.c @@ -0,0 +1,480 @@ +#include "REL/executor.h" +#include "game/chrman.h" +#include "game/frand.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/wipe.h" + +#include "game/gamework_data.h" + +#include "game/mapspace.h" +#include "game/pad.h" +#include "game/printfunc.h" + +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" + +#include "game/esprite.h" +#include "game/sprite.h" + +#include "ext_math.h" +#include "rel_sqrt_consts.h" + +#undef ABS +#define ABS(x) ((0 > (x)) ? -(x) : (x)) + +typedef struct unk_bss_5D0_struct { + /* 0x00 */ u16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ struct unk_bss_5D0_struct *unk04; + /* 0x08 */ struct unk_bss_5D0_struct *unk08; +} UnkBss5D0Struct; // Size 0xC + +typedef struct unk_bss_5B8_struct { + /* 0x00 */ HsfanimStruct00 *unk00; + /* 0x04 */ s32 *unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ struct unk_bss_5B8_struct *unk10; + /* 0x14 */ struct unk_bss_5B8_struct *unk14; +} UnkBss5B8Struct; // Size 0x18 + +typedef struct { + /* 0x00 */ u32 unk00; + /* 0x04 */ s16 unk04; +} UnkBss428Struct; // Size 8 + +UnkBss5D0Struct lbl_1_bss_5D0; +UnkBss5B8Struct lbl_1_bss_5B8; +Process *lbl_1_bss_5B4; +Vec lbl_1_bss_5A8; +Vec lbl_1_bss_59C; +Vec lbl_1_bss_590; +Vec lbl_1_bss_584; +u32 lbl_1_bss_580; +s32 lbl_1_bss_57C; +u32 lbl_1_bss_578; +s16 lbl_1_bss_576; +s16 lbl_1_bss_574; +s32 lbl_1_bss_570; +s32 lbl_1_bss_56C; +float lbl_1_bss_568; +s32 lbl_1_bss_528[16]; +UnkBss428Struct lbl_1_bss_428[32]; + +void fn_1_0(void) +{ + lbl_1_bss_5D0.unk04 = NULL; + lbl_1_bss_5D0.unk08 = NULL; +} + +void fn_1_24(u16 arg0, s16 arg1) +{ + UnkBss5D0Struct *temp_r31; + UnkBss5D0Struct *temp_r30; + UnkBss5D0Struct *temp_r29; + + temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r31), MEMORY_DEFAULT_NUM); + temp_r31->unk00 = arg0; + temp_r31->unk02 = arg1; + temp_r30 = &lbl_1_bss_5D0; + temp_r29 = temp_r30->unk08; + temp_r30->unk08 = temp_r31; + if (NULL != temp_r29) { + temp_r29->unk04 = temp_r31; + } + temp_r31->unk04 = temp_r30; + temp_r31->unk08 = temp_r29; +} + +s16 fn_1_AC(s16 arg0) +{ + UnkBss5D0Struct *var_r31; + UnkBss5D0Struct *temp_r29; + UnkBss5D0Struct *temp_r30; + s16 temp_r28; + + var_r31 = lbl_1_bss_5D0.unk08; + while (NULL != var_r31) { + if (arg0 == var_r31->unk00) { + temp_r28 = var_r31->unk02; + temp_r29 = var_r31->unk04; + temp_r30 = var_r31->unk08; + temp_r29->unk08 = temp_r30; + if (NULL != temp_r30) { + temp_r30->unk04 = temp_r29; + } + HuMemDirectFree(var_r31); + return temp_r28; + } + var_r31 = var_r31->unk08; + } + return -1; +} + +void fn_1_150(void) +{ + lbl_1_bss_5B8.unk10 = NULL; + lbl_1_bss_5B8.unk14 = NULL; +} + +void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec *arg5, u8 arg6) +{ + UnkBss5B8Struct *temp_r27; + UnkBss5B8Struct *var_r31; + UnkBss5B8Struct *temp_r28; + s32 i; + + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*var_r31), MEMORY_DEFAULT_NUM); + var_r31->unk00 = arg1; + var_r31->unk08 = arg3; + var_r31->unk0C = arg4; + var_r31->unk04 = HuMemDirectMallocNum(HEAP_SYSTEM, arg4 * sizeof(*var_r31->unk04), MEMORY_DEFAULT_NUM); + for (i = 0; i < arg4; i++, arg5++) { + var_r31->unk04[i] = Hu3DParManLink(arg0, arg1); + if (var_r31->unk04[i] >= 0) { + Hu3DParManAttrReset(var_r31->unk04[i], 1); + Hu3DParManPosSet(var_r31->unk04[i], arg5->x, arg5->y, arg5->z); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(var_r31->unk04[i]), arg6); + Hu3DModelLayerSet(Hu3DParManModelIDGet(var_r31->unk04[i]), arg2); + } + } + temp_r28 = &lbl_1_bss_5B8; + temp_r27 = temp_r28->unk14; + temp_r28->unk14 = var_r31; + if (NULL != temp_r27) { + temp_r27->unk10 = var_r31; + } + var_r31->unk10 = temp_r28; + var_r31->unk14 = temp_r27; +} + +void fn_1_2D8(void) +{ + UnkBss5B8Struct *var_r31; + UnkBss5B8Struct *temp_r28; + UnkBss5B8Struct *temp_r29; + s32 i; + + var_r31 = lbl_1_bss_5B8.unk14; + while (NULL != var_r31) { + var_r31->unk08--; + if (var_r31->unk08 == 0) { + for (i = 0; i < var_r31->unk0C; i++) { + if (var_r31->unk04[i] >= 0) { + Hu3DParManAttrSet(var_r31->unk04[i], 1); + } + } + } + temp_r28 = var_r31->unk10; + temp_r29 = var_r31->unk14; + if (-var_r31->unk00->unk00 > var_r31->unk08) { + for (i = 0; i < var_r31->unk0C; i++) { + if (var_r31->unk04[i] >= 0) { + Hu3DParManKill(var_r31->unk04[i]); + } + } + temp_r28->unk14 = temp_r29; + if (NULL != temp_r29) { + temp_r29->unk10 = temp_r28; + } + HuMemDirectFree(var_r31->unk04); + HuMemDirectFree(var_r31); + } + var_r31 = temp_r29; + } +} + +void fn_1_414(void) +{ + s32 i; + + for (i = 0; i < 32; i++) { + lbl_1_bss_428[i].unk00 = 0; + lbl_1_bss_428[i].unk04 = -1; + } +} + +s16 fn_1_46C(s32 arg0) +{ + s32 i; + + for (i = 0; i < 32; i++) { + if (arg0 == lbl_1_bss_428[i].unk00) { + return Hu3DModelLink(lbl_1_bss_428[i].unk04); + } + } + for (i = 0; i < 32; i++) { + if (lbl_1_bss_428[i].unk00 == 0) { + lbl_1_bss_428[i].unk00 = arg0; + lbl_1_bss_428[i].unk04 = Hu3DModelCreateFile(arg0); + return lbl_1_bss_428[i].unk04; + } + } + return Hu3DModelCreateFile(arg0); +} + +void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) +{ + s32 var_r30; + + espBankSet(arg0[arg1 + 1], 10); + espBankSet(arg0[arg1 + 4], 11); + if (36000 <= arg2) { + arg2 = 35999; + } + var_r30 = arg2 / 3600; + arg2 -= var_r30 * 3600; + if (var_r30 > 9) { + var_r30 = 9; + } + espBankSet(arg0[arg1], var_r30); + var_r30 = arg2 / 60; + arg2 -= var_r30 * 60; + espBankSet(arg0[arg1 + 2], var_r30 / 10); + espBankSet(arg0[arg1 + 3], var_r30 % 10); + var_r30 = 101.5f * arg2 / 60.0f; + espBankSet(arg0[arg1 + 5], var_r30 / 10); + espBankSet(arg0[arg1 + 6], var_r30 % 10); +} + +void fn_1_798(s32 arg0) +{ + lbl_1_bss_568 = 0.0f; + lbl_1_bss_578 = lbl_1_bss_57C; + GWMGRecordSet(arg0, lbl_1_bss_578); + fn_1_580(lbl_1_bss_528, 7, lbl_1_bss_57C); +} + +void fn_1_9EC(void) +{ + s32 i; + + for (i = 0; i < 16; i++) { + espDispOn(lbl_1_bss_528[i]); + } +} + +void fn_1_A40(void) +{ + float temp_f31; + s32 i; + + if (0.0f <= lbl_1_bss_568) { + lbl_1_bss_568 += 16.0f; + temp_f31 = 1.0 + 0.2f * sind(lbl_1_bss_568); + for (i = 7; i <= 14; i++) { + espScaleSet(lbl_1_bss_528[i], temp_f31, temp_f31); + } + } +} + +void fn_1_B4C(float arg0, s32 arg1) +{ + float temp_f30; + float temp_f31; + s32 i; + + temp_f31 = 288.0f; + temp_f30 = arg0; + lbl_1_bss_528[15] = espEntry(arg1, 0, 0); + espTPLvlSet(lbl_1_bss_528[15], 0.5f); + espColorSet(lbl_1_bss_528[15], 0, 0, 0); + espPosSet(lbl_1_bss_528[15], temp_f31, temp_f30); + temp_f31 = 248.0f; + temp_f30 = arg0 - 8.0f; + lbl_1_bss_528[14] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 55), 0, 0); + espPosSet(lbl_1_bss_528[14], temp_f31 - 18.0f, temp_f30); + for (i = 7; i <= 13; i++) { + lbl_1_bss_528[i] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 48), 0, 0); + espPosSet(lbl_1_bss_528[i], temp_f31, temp_f30); + temp_f31 += 16.0f; + } + fn_1_580(lbl_1_bss_528, 7, lbl_1_bss_578); + temp_f31 = 248.0f; + temp_f30 = arg0 + 8.0f; + for (i = 0; i <= 6; i++) { + lbl_1_bss_528[i] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 49), 0, 0); + espPosSet(lbl_1_bss_528[i], temp_f31, temp_f30); + temp_f31 += 16.0f; + } + fn_1_580(lbl_1_bss_528, 0, 0); + for (i = 0; i < 16; i++) { + espDrawNoSet(lbl_1_bss_528[i], 0); + espDispOff(lbl_1_bss_528[i]); + espAttrSet(lbl_1_bss_528[i], HUSPR_ATTR_NOANIM); + espPriSet(lbl_1_bss_528[i], 0x80 + i); + } +} + +void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + float temp_f31; + + if (1.0f < arg0) { + arg0 = 1.0f; + } + temp_f31 = sind(90.0f * arg0) * sind(90.0f * arg0); + arg3->x = arg1->x + temp_f31 * (arg2->x - arg1->x); + arg3->y = arg1->y + temp_f31 * (arg2->y - arg1->y); + arg3->z = arg1->z + temp_f31 * (arg2->z - arg1->z); +} + +void fn_1_1350(Vec *arg0, Vec *arg1, Vec *arg2) +{ + Hu3DCameraPosSetV(1, arg0, arg1, arg2); + lbl_1_bss_5A8 = *arg0; + lbl_1_bss_590 = *arg2; +} + +s32 fn_1_13DC(float arg0, Vec *arg1) +{ + Vec sp18; + Vec spC; + + fn_1_11F4(arg0, &lbl_1_bss_5A8, &lbl_1_bss_59C, &sp18); + fn_1_11F4(arg0, &lbl_1_bss_590, &lbl_1_bss_584, &spC); + Hu3DCameraPosSetV(1, &sp18, arg1, &spC); + if (1.0f <= arg0) { + return 1; + } + else { + lbl_1_bss_56C = 1; + return 0; + } +} + +void fn_1_1710(float arg0, Vec *arg1) +{ + Vec sp18; + Vec spC; + + fn_1_11F4(arg0, &lbl_1_bss_5A8, &lbl_1_bss_59C, &sp18); + fn_1_11F4(arg0, &lbl_1_bss_590, &lbl_1_bss_584, &spC); + fn_1_1350(&sp18, arg1, &spC); + lbl_1_bss_56C = 1; +} + +void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) +{ + Mtx sp1C; + Vec sp10; + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f31; + CameraData *temp_r31; + s32 i; + + for (i = 0; i < 16; i++) { + if (arg1 & (1 << i)) { + break; + } + } + temp_r31 = &Hu3DCamera[i]; + MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target); + MTXMultVec(sp1C, arg0, &sp10); + temp_f30 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)) * temp_r31->aspect; + temp_f29 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)); + temp_f28 = 0.9f * temp_r31->viewport_x; + temp_f31 = 0.9f * temp_r31->viewport_w; + arg2->x = temp_f31 / 2 + sp10.x * ((temp_f31 / 2) / -temp_f30) + temp_f28; + arg2->y = temp_r31->viewport_h / 2 + sp10.y * ((temp_r31->viewport_h / 2) / temp_f29) + temp_r31->viewport_y; + arg2->z = 0.0f; +} + +void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) +{ + Mtx sp10; + + Hu3DModelObjMtxGet(arg0, arg1, sp10); + arg2->x = sp10[0][3]; + arg2->y = sp10[1][3]; + arg2->z = sp10[2][3]; +} + +void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) +{ + Mtx spC; + ModelData *var_r30; + + var_r30 = &Hu3DData[arg0]; + Hu3DModelObjMtxGet(arg0, arg1, spC); + PSMTXConcat(var_r30->unk_F0, spC, spC); + if (NULL != arg3) { + PSMTXCopy(spC, arg3); + } + arg2->x = spC[0][3]; + arg2->y = spC[1][3]; + arg2->z = spC[2][3]; +} + +float fn_1_1E20(float arg0, float arg1, float arg2) +{ + float var_f31; + float var_f30; + + var_f31 = fmod(arg1 - arg0, 360.0); + if (0.0f > var_f31) { + var_f31 += 360.0f; + } + if (180.0f < var_f31) { + var_f31 -= 360.0f; + } + var_f30 = fmod(arg0 + var_f31 * arg2, 360.0); + if (0.0f > var_f30) { + var_f30 += 360.0f; + } + return var_f30; +} + +void fn_1_1F24(s32 arg0) +{ + lbl_1_bss_570 = HuAudSeqPlay((s32)arg0); +} + +void fn_1_1F58(s32 arg0) +{ + if (lbl_1_bss_570 >= 0) { + if (arg0 < 0) { + arg0 = 1000; + } + HuAudSeqFadeOut(lbl_1_bss_570, arg0); + } + lbl_1_bss_570 = -1; +} + +void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) +{ + Vec sp18; + float var_f28; + s32 var_r30; + + sp18.x = 0.0f; + sp18.y = 0.0f; + sp18.z = 0.0f; + sp18.x = arg2 / 4.0f; + sp18.z = -(float)arg3 / 4.0f; + var_r30 = 0; + var_f28 = VECMagXZ(&sp18); + if (0.5f <= var_f28) { + if (10.0f <= var_f28) { + sp18.x /= var_f28; + sp18.z /= var_f28; + var_f28 = 10.0f; + sp18.x = 10.0f * sp18.x; + sp18.z = 10.0f * sp18.z; + } + *arg1 = fn_1_1E20(*arg1, atan2d(sp18.x, sp18.z), 0.4f); + if (8.0f <= var_f28) { + var_r30 = 2; + } + else { + var_r30 = 1; + } + } + VECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0); +} \ No newline at end of file diff --git a/src/REL/m450Dll/main.c b/src/REL/m450Dll/main.c new file mode 100644 index 00000000..c60c4a31 --- /dev/null +++ b/src/REL/m450Dll/main.c @@ -0,0 +1,480 @@ +#include "REL/executor.h" +#include "game/chrman.h" +#include "game/frand.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/wipe.h" + +#include "game/gamework_data.h" + +#include "game/mapspace.h" +#include "game/pad.h" +#include "game/printfunc.h" + +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" + +#include "game/esprite.h" +#include "game/sprite.h" + +#include "ext_math.h" +#include "rel_sqrt_consts.h" + +#undef ABS +#define ABS(x) ((0 > (x)) ? -(x) : (x)) + +typedef struct unk_bss_358_struct { + /* 0x00 */ u16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ struct unk_bss_358_struct *unk04; + /* 0x08 */ struct unk_bss_358_struct *unk08; +} UnkBss358Struct; // Size 0xC + +typedef struct unk_bss_340_struct { + /* 0x00 */ HsfanimStruct00 *unk00; + /* 0x04 */ s32 *unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ struct unk_bss_340_struct *unk10; + /* 0x14 */ struct unk_bss_340_struct *unk14; +} UnkBss340Struct; // Size 0x18 + +typedef struct { + /* 0x00 */ u32 unk00; + /* 0x04 */ s16 unk04; +} UnkBss1B0Struct; // Size 8 + +UnkBss358Struct lbl_1_bss_358; +UnkBss340Struct lbl_1_bss_340; +Process *lbl_1_bss_33C; +Vec lbl_1_bss_330; +Vec lbl_1_bss_324; +Vec lbl_1_bss_318; +Vec lbl_1_bss_30C; +u32 lbl_1_bss_308; +s32 lbl_1_bss_304; +u32 lbl_1_bss_300; +s16 lbl_1_bss_2FE; +s16 lbl_1_bss_2FC; +s32 lbl_1_bss_2F8; +s32 lbl_1_bss_2F4; +float lbl_1_bss_2F0; +s32 lbl_1_bss_2B0[16]; +UnkBss1B0Struct lbl_1_bss_1B0[32]; + +void fn_1_0(void) +{ + lbl_1_bss_358.unk04 = NULL; + lbl_1_bss_358.unk08 = NULL; +} + +void fn_1_24(u16 arg0, s16 arg1) +{ + UnkBss358Struct *temp_r31; + UnkBss358Struct *temp_r30; + UnkBss358Struct *temp_r29; + + temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r31), MEMORY_DEFAULT_NUM); + temp_r31->unk00 = arg0; + temp_r31->unk02 = arg1; + temp_r30 = &lbl_1_bss_358; + temp_r29 = temp_r30->unk08; + temp_r30->unk08 = temp_r31; + if (NULL != temp_r29) { + temp_r29->unk04 = temp_r31; + } + temp_r31->unk04 = temp_r30; + temp_r31->unk08 = temp_r29; +} + +s16 fn_1_AC(s16 arg0) +{ + UnkBss358Struct *var_r31; + UnkBss358Struct *temp_r29; + UnkBss358Struct *temp_r30; + s16 temp_r28; + + var_r31 = lbl_1_bss_358.unk08; + while (NULL != var_r31) { + if (arg0 == var_r31->unk00) { + temp_r28 = var_r31->unk02; + temp_r29 = var_r31->unk04; + temp_r30 = var_r31->unk08; + temp_r29->unk08 = temp_r30; + if (NULL != temp_r30) { + temp_r30->unk04 = temp_r29; + } + HuMemDirectFree(var_r31); + return temp_r28; + } + var_r31 = var_r31->unk08; + } + return -1; +} + +void fn_1_150(void) +{ + lbl_1_bss_340.unk10 = NULL; + lbl_1_bss_340.unk14 = NULL; +} + +void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec *arg5, u8 arg6) +{ + UnkBss340Struct *temp_r27; + UnkBss340Struct *var_r31; + UnkBss340Struct *temp_r28; + s32 i; + + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*var_r31), MEMORY_DEFAULT_NUM); + var_r31->unk00 = arg1; + var_r31->unk08 = arg3; + var_r31->unk0C = arg4; + var_r31->unk04 = HuMemDirectMallocNum(HEAP_SYSTEM, arg4 * sizeof(*var_r31->unk04), MEMORY_DEFAULT_NUM); + for (i = 0; i < arg4; i++, arg5++) { + var_r31->unk04[i] = Hu3DParManLink(arg0, arg1); + if (var_r31->unk04[i] >= 0) { + Hu3DParManAttrReset(var_r31->unk04[i], 1); + Hu3DParManPosSet(var_r31->unk04[i], arg5->x, arg5->y, arg5->z); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(var_r31->unk04[i]), arg6); + Hu3DModelLayerSet(Hu3DParManModelIDGet(var_r31->unk04[i]), arg2); + } + } + temp_r28 = &lbl_1_bss_340; + temp_r27 = temp_r28->unk14; + temp_r28->unk14 = var_r31; + if (NULL != temp_r27) { + temp_r27->unk10 = var_r31; + } + var_r31->unk10 = temp_r28; + var_r31->unk14 = temp_r27; +} + +void fn_1_2D8(void) +{ + UnkBss340Struct *var_r31; + UnkBss340Struct *temp_r28; + UnkBss340Struct *temp_r29; + s32 i; + + var_r31 = lbl_1_bss_340.unk14; + while (NULL != var_r31) { + var_r31->unk08--; + if (var_r31->unk08 == 0) { + for (i = 0; i < var_r31->unk0C; i++) { + if (var_r31->unk04[i] >= 0) { + Hu3DParManAttrSet(var_r31->unk04[i], 1); + } + } + } + temp_r28 = var_r31->unk10; + temp_r29 = var_r31->unk14; + if (-var_r31->unk00->unk00 > var_r31->unk08) { + for (i = 0; i < var_r31->unk0C; i++) { + if (var_r31->unk04[i] >= 0) { + Hu3DParManKill(var_r31->unk04[i]); + } + } + temp_r28->unk14 = temp_r29; + if (NULL != temp_r29) { + temp_r29->unk10 = temp_r28; + } + HuMemDirectFree(var_r31->unk04); + HuMemDirectFree(var_r31); + } + var_r31 = temp_r29; + } +} + +void fn_1_414(void) +{ + s32 i; + + for (i = 0; i < 32; i++) { + lbl_1_bss_1B0[i].unk00 = 0; + lbl_1_bss_1B0[i].unk04 = -1; + } +} + +s16 fn_1_46C(s32 arg0) +{ + s32 i; + + for (i = 0; i < 32; i++) { + if (arg0 == lbl_1_bss_1B0[i].unk00) { + return Hu3DModelLink(lbl_1_bss_1B0[i].unk04); + } + } + for (i = 0; i < 32; i++) { + if (lbl_1_bss_1B0[i].unk00 == 0) { + lbl_1_bss_1B0[i].unk00 = arg0; + lbl_1_bss_1B0[i].unk04 = Hu3DModelCreateFile(arg0); + return lbl_1_bss_1B0[i].unk04; + } + } + return Hu3DModelCreateFile(arg0); +} + +void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) +{ + s32 var_r30; + + espBankSet(arg0[arg1 + 1], 10); + espBankSet(arg0[arg1 + 4], 11); + if (36000 <= arg2) { + arg2 = 35999; + } + var_r30 = arg2 / 3600; + arg2 -= var_r30 * 3600; + if (var_r30 > 9) { + var_r30 = 9; + } + espBankSet(arg0[arg1], var_r30); + var_r30 = arg2 / 60; + arg2 -= var_r30 * 60; + espBankSet(arg0[arg1 + 2], var_r30 / 10); + espBankSet(arg0[arg1 + 3], var_r30 % 10); + var_r30 = 101.5f * arg2 / 60.0f; + espBankSet(arg0[arg1 + 5], var_r30 / 10); + espBankSet(arg0[arg1 + 6], var_r30 % 10); +} + +void fn_1_798(s32 arg0) +{ + lbl_1_bss_2F0 = 0.0f; + lbl_1_bss_300 = lbl_1_bss_304; + GWMGRecordSet(arg0, lbl_1_bss_300); + fn_1_580(lbl_1_bss_2B0, 7, lbl_1_bss_304); +} + +void fn_1_9EC(void) +{ + s32 i; + + for (i = 0; i < 16; i++) { + espDispOn(lbl_1_bss_2B0[i]); + } +} + +void fn_1_A40(void) +{ + float temp_f31; + s32 i; + + if (0.0f <= lbl_1_bss_2F0) { + lbl_1_bss_2F0 += 16.0f; + temp_f31 = 1.0 + 0.2f * sind(lbl_1_bss_2F0); + for (i = 7; i <= 14; i++) { + espScaleSet(lbl_1_bss_2B0[i], temp_f31, temp_f31); + } + } +} + +void fn_1_B4C(float arg0, s32 arg1) +{ + float temp_f30; + float temp_f31; + s32 i; + + temp_f31 = 288.0f; + temp_f30 = arg0; + lbl_1_bss_2B0[15] = espEntry(arg1, 0, 0); + espTPLvlSet(lbl_1_bss_2B0[15], 0.5f); + espColorSet(lbl_1_bss_2B0[15], 0, 0, 0); + espPosSet(lbl_1_bss_2B0[15], temp_f31, temp_f30); + temp_f31 = 248.0f; + temp_f30 = arg0 - 8.0f; + lbl_1_bss_2B0[14] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 55), 0, 0); + espPosSet(lbl_1_bss_2B0[14], temp_f31 - 18.0f, temp_f30); + for (i = 7; i <= 13; i++) { + lbl_1_bss_2B0[i] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 48), 0, 0); + espPosSet(lbl_1_bss_2B0[i], temp_f31, temp_f30); + temp_f31 += 16.0f; + } + fn_1_580(lbl_1_bss_2B0, 7, lbl_1_bss_300); + temp_f31 = 248.0f; + temp_f30 = arg0 + 8.0f; + for (i = 0; i <= 6; i++) { + lbl_1_bss_2B0[i] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 49), 0, 0); + espPosSet(lbl_1_bss_2B0[i], temp_f31, temp_f30); + temp_f31 += 16.0f; + } + fn_1_580(lbl_1_bss_2B0, 0, 0); + for (i = 0; i < 16; i++) { + espDrawNoSet(lbl_1_bss_2B0[i], 0); + espDispOff(lbl_1_bss_2B0[i]); + espAttrSet(lbl_1_bss_2B0[i], HUSPR_ATTR_NOANIM); + espPriSet(lbl_1_bss_2B0[i], 0x80 + i); + } +} + +void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + float temp_f31; + + if (1.0f < arg0) { + arg0 = 1.0f; + } + temp_f31 = sind(90.0f * arg0) * sind(90.0f * arg0); + arg3->x = arg1->x + temp_f31 * (arg2->x - arg1->x); + arg3->y = arg1->y + temp_f31 * (arg2->y - arg1->y); + arg3->z = arg1->z + temp_f31 * (arg2->z - arg1->z); +} + +void fn_1_1350(Vec *arg0, Vec *arg1, Vec *arg2) +{ + Hu3DCameraPosSetV(1, arg0, arg1, arg2); + lbl_1_bss_330 = *arg0; + lbl_1_bss_318 = *arg2; +} + +s32 fn_1_13DC(float arg0, Vec *arg1) +{ + Vec sp18; + Vec spC; + + fn_1_11F4(arg0, &lbl_1_bss_330, &lbl_1_bss_324, &sp18); + fn_1_11F4(arg0, &lbl_1_bss_318, &lbl_1_bss_30C, &spC); + Hu3DCameraPosSetV(1, &sp18, arg1, &spC); + if (1.0f <= arg0) { + return 1; + } + else { + lbl_1_bss_2F4 = 1; + return 0; + } +} + +void fn_1_1710(float arg0, Vec *arg1) +{ + Vec sp18; + Vec spC; + + fn_1_11F4(arg0, &lbl_1_bss_330, &lbl_1_bss_324, &sp18); + fn_1_11F4(arg0, &lbl_1_bss_318, &lbl_1_bss_30C, &spC); + fn_1_1350(&sp18, arg1, &spC); + lbl_1_bss_2F4 = 1; +} + +void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) +{ + Mtx sp1C; + Vec sp10; + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f31; + CameraData *temp_r31; + s32 i; + + for (i = 0; i < 16; i++) { + if (arg1 & (1 << i)) { + break; + } + } + temp_r31 = &Hu3DCamera[i]; + MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target); + MTXMultVec(sp1C, arg0, &sp10); + temp_f30 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)) * temp_r31->aspect; + temp_f29 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)); + temp_f28 = 0.9f * temp_r31->viewport_x; + temp_f31 = 0.9f * temp_r31->viewport_w; + arg2->x = temp_f31 / 2 + sp10.x * ((temp_f31 / 2) / -temp_f30) + temp_f28; + arg2->y = temp_r31->viewport_h / 2 + sp10.y * ((temp_r31->viewport_h / 2) / temp_f29) + temp_r31->viewport_y; + arg2->z = 0.0f; +} + +void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) +{ + Mtx sp10; + + Hu3DModelObjMtxGet(arg0, arg1, sp10); + arg2->x = sp10[0][3]; + arg2->y = sp10[1][3]; + arg2->z = sp10[2][3]; +} + +void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) +{ + Mtx spC; + ModelData *var_r30; + + var_r30 = &Hu3DData[arg0]; + Hu3DModelObjMtxGet(arg0, arg1, spC); + PSMTXConcat(var_r30->unk_F0, spC, spC); + if (NULL != arg3) { + PSMTXCopy(spC, arg3); + } + arg2->x = spC[0][3]; + arg2->y = spC[1][3]; + arg2->z = spC[2][3]; +} + +float fn_1_1E20(float arg0, float arg1, float arg2) +{ + float var_f31; + float var_f30; + + var_f31 = fmod(arg1 - arg0, 360.0); + if (0.0f > var_f31) { + var_f31 += 360.0f; + } + if (180.0f < var_f31) { + var_f31 -= 360.0f; + } + var_f30 = fmod(arg0 + var_f31 * arg2, 360.0); + if (0.0f > var_f30) { + var_f30 += 360.0f; + } + return var_f30; +} + +void fn_1_1F24(s32 arg0) +{ + lbl_1_bss_2F8 = HuAudSeqPlay((s32)arg0); +} + +void fn_1_1F58(s32 arg0) +{ + if (lbl_1_bss_2F8 >= 0) { + if (arg0 < 0) { + arg0 = 1000; + } + HuAudSeqFadeOut(lbl_1_bss_2F8, arg0); + } + lbl_1_bss_2F8 = -1; +} + +void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) +{ + Vec sp18; + float var_f28; + s32 var_r30; + + sp18.x = 0.0f; + sp18.y = 0.0f; + sp18.z = 0.0f; + sp18.x = arg2 / 4.0f; + sp18.z = -(float)arg3 / 4.0f; + var_r30 = 0; + var_f28 = VECMagXZ(&sp18); + if (0.5f <= var_f28) { + if (10.0f <= var_f28) { + sp18.x /= var_f28; + sp18.z /= var_f28; + var_f28 = 10.0f; + sp18.x = 10.0f * sp18.x; + sp18.z = 10.0f * sp18.z; + } + *arg1 = fn_1_1E20(*arg1, atan2d(sp18.x, sp18.z), 0.4f); + if (8.0f <= var_f28) { + var_r30 = 2; + } + else { + var_r30 = 1; + } + } + VECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0); +} diff --git a/src/REL/m461Dll/main.c b/src/REL/m461Dll/main.c new file mode 100644 index 00000000..4fe7f0b7 --- /dev/null +++ b/src/REL/m461Dll/main.c @@ -0,0 +1,480 @@ +#include "REL/executor.h" +#include "game/chrman.h" +#include "game/frand.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/wipe.h" + +#include "game/gamework_data.h" + +#include "game/mapspace.h" +#include "game/pad.h" +#include "game/printfunc.h" + +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" + +#include "game/esprite.h" +#include "game/sprite.h" + +#include "ext_math.h" +#include "rel_sqrt_consts.h" + +#undef ABS +#define ABS(x) ((0 > (x)) ? -(x) : (x)) + +typedef struct unk_bss_358_struct { + /* 0x00 */ u16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ struct unk_bss_358_struct *unk04; + /* 0x08 */ struct unk_bss_358_struct *unk08; +} UnkBss254Struct; // Size 0xC + +typedef struct unk_bss_340_struct { + /* 0x00 */ HsfanimStruct00 *unk00; + /* 0x04 */ s32 *unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ struct unk_bss_340_struct *unk10; + /* 0x14 */ struct unk_bss_340_struct *unk14; +} UnkBss23CStruct; // Size 0x18 + +typedef struct { + /* 0x00 */ u32 unk00; + /* 0x04 */ s16 unk04; +} UnkBssACStruct; // Size 8 + +UnkBss254Struct lbl_1_bss_254; +UnkBss23CStruct lbl_1_bss_23C; +Process *lbl_1_bss_238; +Vec lbl_1_bss_22C; +Vec lbl_1_bss_220; +Vec lbl_1_bss_214; +Vec lbl_1_bss_208; +u32 lbl_1_bss_204; +s32 lbl_1_bss_200; +u32 lbl_1_bss_1FC; +s16 lbl_1_bss_1FA; +s16 lbl_1_bss_1F8; +s32 lbl_1_bss_1F4; +s32 lbl_1_bss_1F0; +float lbl_1_bss_1EC; +s32 lbl_1_bss_1AC[16]; +UnkBssACStruct lbl_1_bss_AC[32]; + +void fn_1_0(void) +{ + lbl_1_bss_254.unk04 = NULL; + lbl_1_bss_254.unk08 = NULL; +} + +void fn_1_24(u16 arg0, s16 arg1) +{ + UnkBss254Struct *temp_r31; + UnkBss254Struct *temp_r30; + UnkBss254Struct *temp_r29; + + temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r31), MEMORY_DEFAULT_NUM); + temp_r31->unk00 = arg0; + temp_r31->unk02 = arg1; + temp_r30 = &lbl_1_bss_254; + temp_r29 = temp_r30->unk08; + temp_r30->unk08 = temp_r31; + if (NULL != temp_r29) { + temp_r29->unk04 = temp_r31; + } + temp_r31->unk04 = temp_r30; + temp_r31->unk08 = temp_r29; +} + +s16 fn_1_AC(s16 arg0) +{ + UnkBss254Struct *var_r31; + UnkBss254Struct *temp_r29; + UnkBss254Struct *temp_r30; + s16 temp_r28; + + var_r31 = lbl_1_bss_254.unk08; + while (NULL != var_r31) { + if (arg0 == var_r31->unk00) { + temp_r28 = var_r31->unk02; + temp_r29 = var_r31->unk04; + temp_r30 = var_r31->unk08; + temp_r29->unk08 = temp_r30; + if (NULL != temp_r30) { + temp_r30->unk04 = temp_r29; + } + HuMemDirectFree(var_r31); + return temp_r28; + } + var_r31 = var_r31->unk08; + } + return -1; +} + +void fn_1_150(void) +{ + lbl_1_bss_23C.unk10 = NULL; + lbl_1_bss_23C.unk14 = NULL; +} + +void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec *arg5, u8 arg6) +{ + UnkBss23CStruct *temp_r27; + UnkBss23CStruct *var_r31; + UnkBss23CStruct *temp_r28; + s32 i; + + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*var_r31), MEMORY_DEFAULT_NUM); + var_r31->unk00 = arg1; + var_r31->unk08 = arg3; + var_r31->unk0C = arg4; + var_r31->unk04 = HuMemDirectMallocNum(HEAP_SYSTEM, arg4 * sizeof(*var_r31->unk04), MEMORY_DEFAULT_NUM); + for (i = 0; i < arg4; i++, arg5++) { + var_r31->unk04[i] = Hu3DParManLink(arg0, arg1); + if (var_r31->unk04[i] >= 0) { + Hu3DParManAttrReset(var_r31->unk04[i], 1); + Hu3DParManPosSet(var_r31->unk04[i], arg5->x, arg5->y, arg5->z); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(var_r31->unk04[i]), arg6); + Hu3DModelLayerSet(Hu3DParManModelIDGet(var_r31->unk04[i]), arg2); + } + } + temp_r28 = &lbl_1_bss_23C; + temp_r27 = temp_r28->unk14; + temp_r28->unk14 = var_r31; + if (NULL != temp_r27) { + temp_r27->unk10 = var_r31; + } + var_r31->unk10 = temp_r28; + var_r31->unk14 = temp_r27; +} + +void fn_1_2D8(void) +{ + UnkBss23CStruct *var_r31; + UnkBss23CStruct *temp_r28; + UnkBss23CStruct *temp_r29; + s32 i; + + var_r31 = lbl_1_bss_23C.unk14; + while (NULL != var_r31) { + var_r31->unk08--; + if (var_r31->unk08 == 0) { + for (i = 0; i < var_r31->unk0C; i++) { + if (var_r31->unk04[i] >= 0) { + Hu3DParManAttrSet(var_r31->unk04[i], 1); + } + } + } + temp_r28 = var_r31->unk10; + temp_r29 = var_r31->unk14; + if (-var_r31->unk00->unk00 > var_r31->unk08) { + for (i = 0; i < var_r31->unk0C; i++) { + if (var_r31->unk04[i] >= 0) { + Hu3DParManKill(var_r31->unk04[i]); + } + } + temp_r28->unk14 = temp_r29; + if (NULL != temp_r29) { + temp_r29->unk10 = temp_r28; + } + HuMemDirectFree(var_r31->unk04); + HuMemDirectFree(var_r31); + } + var_r31 = temp_r29; + } +} + +void fn_1_414(void) +{ + s32 i; + + for (i = 0; i < 32; i++) { + lbl_1_bss_AC[i].unk00 = 0; + lbl_1_bss_AC[i].unk04 = -1; + } +} + +s16 fn_1_46C(s32 arg0) +{ + s32 i; + + for (i = 0; i < 32; i++) { + if (arg0 == lbl_1_bss_AC[i].unk00) { + return Hu3DModelLink(lbl_1_bss_AC[i].unk04); + } + } + for (i = 0; i < 32; i++) { + if (lbl_1_bss_AC[i].unk00 == 0) { + lbl_1_bss_AC[i].unk00 = arg0; + lbl_1_bss_AC[i].unk04 = Hu3DModelCreateFile(arg0); + return lbl_1_bss_AC[i].unk04; + } + } + return Hu3DModelCreateFile(arg0); +} + +void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) +{ + s32 var_r30; + + espBankSet(arg0[arg1 + 1], 10); + espBankSet(arg0[arg1 + 4], 11); + if (36000 <= arg2) { + arg2 = 35999; + } + var_r30 = arg2 / 3600; + arg2 -= var_r30 * 3600; + if (var_r30 > 9) { + var_r30 = 9; + } + espBankSet(arg0[arg1], var_r30); + var_r30 = arg2 / 60; + arg2 -= var_r30 * 60; + espBankSet(arg0[arg1 + 2], var_r30 / 10); + espBankSet(arg0[arg1 + 3], var_r30 % 10); + var_r30 = 101.5f * arg2 / 60.0f; + espBankSet(arg0[arg1 + 5], var_r30 / 10); + espBankSet(arg0[arg1 + 6], var_r30 % 10); +} + +void fn_1_798(s32 arg0) +{ + lbl_1_bss_1EC = 0.0f; + lbl_1_bss_1FC = lbl_1_bss_200; + GWMGRecordSet(arg0, lbl_1_bss_1FC); + fn_1_580(lbl_1_bss_1AC, 7, lbl_1_bss_200); +} + +void fn_1_9EC(void) +{ + s32 i; + + for (i = 0; i < 16; i++) { + espDispOn(lbl_1_bss_1AC[i]); + } +} + +void fn_1_A40(void) +{ + float temp_f31; + s32 i; + + if (0.0f <= lbl_1_bss_1EC) { + lbl_1_bss_1EC += 16.0f; + temp_f31 = 1.0 + 0.2f * sind(lbl_1_bss_1EC); + for (i = 7; i <= 14; i++) { + espScaleSet(lbl_1_bss_1AC[i], temp_f31, temp_f31); + } + } +} + +void fn_1_B4C(float arg0, s32 arg1) +{ + float temp_f30; + float temp_f31; + s32 i; + + temp_f31 = 288.0f; + temp_f30 = arg0; + lbl_1_bss_1AC[15] = espEntry(arg1, 0, 0); + espTPLvlSet(lbl_1_bss_1AC[15], 0.5f); + espColorSet(lbl_1_bss_1AC[15], 0, 0, 0); + espPosSet(lbl_1_bss_1AC[15], temp_f31, temp_f30); + temp_f31 = 248.0f; + temp_f30 = arg0 - 8.0f; + lbl_1_bss_1AC[14] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 55), 0, 0); + espPosSet(lbl_1_bss_1AC[14], temp_f31 - 18.0f, temp_f30); + for (i = 7; i <= 13; i++) { + lbl_1_bss_1AC[i] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 48), 0, 0); + espPosSet(lbl_1_bss_1AC[i], temp_f31, temp_f30); + temp_f31 += 16.0f; + } + fn_1_580(lbl_1_bss_1AC, 7, lbl_1_bss_1FC); + temp_f31 = 248.0f; + temp_f30 = arg0 + 8.0f; + for (i = 0; i <= 6; i++) { + lbl_1_bss_1AC[i] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 49), 0, 0); + espPosSet(lbl_1_bss_1AC[i], temp_f31, temp_f30); + temp_f31 += 16.0f; + } + fn_1_580(lbl_1_bss_1AC, 0, 0); + for (i = 0; i < 16; i++) { + espDrawNoSet(lbl_1_bss_1AC[i], 0); + espDispOff(lbl_1_bss_1AC[i]); + espAttrSet(lbl_1_bss_1AC[i], HUSPR_ATTR_NOANIM); + espPriSet(lbl_1_bss_1AC[i], 0x80 + i); + } +} + +void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + float temp_f31; + + if (1.0f < arg0) { + arg0 = 1.0f; + } + temp_f31 = sind(90.0f * arg0) * sind(90.0f * arg0); + arg3->x = arg1->x + temp_f31 * (arg2->x - arg1->x); + arg3->y = arg1->y + temp_f31 * (arg2->y - arg1->y); + arg3->z = arg1->z + temp_f31 * (arg2->z - arg1->z); +} + +void fn_1_1350(Vec *arg0, Vec *arg1, Vec *arg2) +{ + Hu3DCameraPosSetV(1, arg0, arg1, arg2); + lbl_1_bss_22C = *arg0; + lbl_1_bss_214 = *arg2; +} + +s32 fn_1_13DC(float arg0, Vec *arg1) +{ + Vec sp18; + Vec spC; + + fn_1_11F4(arg0, &lbl_1_bss_22C, &lbl_1_bss_220, &sp18); + fn_1_11F4(arg0, &lbl_1_bss_214, &lbl_1_bss_208, &spC); + Hu3DCameraPosSetV(1, &sp18, arg1, &spC); + if (1.0f <= arg0) { + return 1; + } + else { + lbl_1_bss_1F0 = 1; + return 0; + } +} + +void fn_1_1710(float arg0, Vec *arg1) +{ + Vec sp18; + Vec spC; + + fn_1_11F4(arg0, &lbl_1_bss_22C, &lbl_1_bss_220, &sp18); + fn_1_11F4(arg0, &lbl_1_bss_214, &lbl_1_bss_208, &spC); + fn_1_1350(&sp18, arg1, &spC); + lbl_1_bss_1F0 = 1; +} + +void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) +{ + Mtx sp1C; + Vec sp10; + float temp_f30; + float temp_f29; + float temp_f28; + float temp_f31; + CameraData *temp_r31; + s32 i; + + for (i = 0; i < 16; i++) { + if (arg1 & (1 << i)) { + break; + } + } + temp_r31 = &Hu3DCamera[i]; + MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target); + MTXMultVec(sp1C, arg0, &sp10); + temp_f30 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)) * temp_r31->aspect; + temp_f29 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)); + temp_f28 = 0.9f * temp_r31->viewport_x; + temp_f31 = 0.9f * temp_r31->viewport_w; + arg2->x = temp_f31 / 2 + sp10.x * ((temp_f31 / 2) / -temp_f30) + temp_f28; + arg2->y = temp_r31->viewport_h / 2 + sp10.y * ((temp_r31->viewport_h / 2) / temp_f29) + temp_r31->viewport_y; + arg2->z = 0.0f; +} + +void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) +{ + Mtx sp10; + + Hu3DModelObjMtxGet(arg0, arg1, sp10); + arg2->x = sp10[0][3]; + arg2->y = sp10[1][3]; + arg2->z = sp10[2][3]; +} + +void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) +{ + Mtx spC; + ModelData *var_r30; + + var_r30 = &Hu3DData[arg0]; + Hu3DModelObjMtxGet(arg0, arg1, spC); + PSMTXConcat(var_r30->unk_F0, spC, spC); + if (NULL != arg3) { + PSMTXCopy(spC, arg3); + } + arg2->x = spC[0][3]; + arg2->y = spC[1][3]; + arg2->z = spC[2][3]; +} + +float fn_1_1E20(float arg0, float arg1, float arg2) +{ + float var_f31; + float var_f30; + + var_f31 = fmod(arg1 - arg0, 360.0); + if (0.0f > var_f31) { + var_f31 += 360.0f; + } + if (180.0f < var_f31) { + var_f31 -= 360.0f; + } + var_f30 = fmod(arg0 + var_f31 * arg2, 360.0); + if (0.0f > var_f30) { + var_f30 += 360.0f; + } + return var_f30; +} + +void fn_1_1F24(s32 arg0) +{ + lbl_1_bss_1F4 = HuAudSeqPlay((s32)arg0); +} + +void fn_1_1F58(s32 arg0) +{ + if (lbl_1_bss_1F4 >= 0) { + if (arg0 < 0) { + arg0 = 1000; + } + HuAudSeqFadeOut(lbl_1_bss_1F4, arg0); + } + lbl_1_bss_1F4 = -1; +} + +void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) +{ + Vec sp18; + float var_f28; + s32 var_r30; + + sp18.x = 0.0f; + sp18.y = 0.0f; + sp18.z = 0.0f; + sp18.x = arg2 / 4.0f; + sp18.z = -(float)arg3 / 4.0f; + var_r30 = 0; + var_f28 = VECMagXZ(&sp18); + if (0.5f <= var_f28) { + if (10.0f <= var_f28) { + sp18.x /= var_f28; + sp18.z /= var_f28; + var_f28 = 10.0f; + sp18.x = 10.0f * sp18.x; + sp18.z = 10.0f * sp18.z; + } + *arg1 = fn_1_1E20(*arg1, atan2d(sp18.x, sp18.z), 0.4f); + if (8.0f <= var_f28) { + var_r30 = 2; + } + else { + var_r30 = 1; + } + } + VECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0); +} \ No newline at end of file From 2d5f99006033d0642562c557b936b57b458f12c5 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sat, 31 Aug 2024 12:47:50 -0500 Subject: [PATCH 048/311] Match first TU of m455dll --- config/GMPE01_00/rels/m455Dll/symbols.txt | 19 +- config/GMPE01_00/rels/m456Dll/splits.txt | 4 +- configure.py | 2 +- include/game/hsfmotion.h | 2 + src/REL/m455Dll/main.c | 811 ++++++++++++++++++++++ 5 files changed, 826 insertions(+), 12 deletions(-) create mode 100644 src/REL/m455Dll/main.c diff --git a/config/GMPE01_00/rels/m455Dll/symbols.txt b/config/GMPE01_00/rels/m455Dll/symbols.txt index 0038cefd..c0faaa70 100644 --- a/config/GMPE01_00/rels/m455Dll/symbols.txt +++ b/config/GMPE01_00/rels/m455Dll/symbols.txt @@ -225,25 +225,25 @@ lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float lbl_1_data_38 = .data:0x00000038; // type:object size:0xC data:float lbl_1_data_44 = .data:0x00000044; // type:object size:0xC data:float lbl_1_data_50 = .data:0x00000050; // type:object size:0x4 -lbl_1_data_54 = .data:0x00000054; // type:object size:0xC -lbl_1_data_60 = .data:0x00000060; // type:object size:0xC -lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC data:float +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC data:float +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x23 data:string lbl_1_data_90 = .data:0x00000090; // type:object size:0x2 data:2byte lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 data:4byte lbl_1_data_98 = .data:0x00000098; // type:object size:0x4 data:4byte jumptable_1_data_9C = .data:0x0000009C; // type:object size:0x28 scope:local lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x1C data:string lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x28 -lbl_1_data_108 = .data:0x00000108; // type:object size:0x30 -lbl_1_data_138 = .data:0x00000138; // type:object size:0x1C -lbl_1_data_154 = .data:0x00000154; // type:object size:0x10 -lbl_1_data_164 = .data:0x00000164; // type:object size:0xC -lbl_1_data_170 = .data:0x00000170; // type:object size:0x1 data:byte +lbl_1_data_108 = .data:0x00000108; // type:object size:0x30 data:float +lbl_1_data_138 = .data:0x00000138; // type:object size:0x19 data:string +lbl_1_data_154 = .data:0x00000154; // type:object size:0x10 data:float +lbl_1_data_164 = .data:0x00000164; // type:object size:0xC data:float +lbl_1_data_170 = .data:0x00000170; // type:object size:0x4 data:byte lbl_1_data_174 = .data:0x00000174; // type:object size:0x5 data:string lbl_1_data_179 = .data:0x00000179; // type:object size:0xB data:string lbl_1_data_184 = .data:0x00000184; // type:object size:0x8 data:float lbl_1_data_18C = .data:0x0000018C; // type:object size:0x10 -lbl_1_data_19C = .data:0x0000019C; // type:object size:0x3C +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x3C data:float lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x30 lbl_1_data_208 = .data:0x00000208; // type:object size:0x1 data:byte lbl_1_data_20C = .data:0x0000020C; // type:object size:0x50 @@ -265,6 +265,7 @@ lbl_1_data_694 = .data:0x00000694; // type:object size:0x8 data:byte lbl_1_data_69C = .data:0x0000069C; // type:object size:0x1 data:byte lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x10 lbl_1_data_6B0 = .data:0x000006B0; // type:object size:0x10 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:float lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte diff --git a/config/GMPE01_00/rels/m456Dll/splits.txt b/config/GMPE01_00/rels/m456Dll/splits.txt index 139bf5cd..a2e9bbaa 100644 --- a/config/GMPE01_00/rels/m456Dll/splits.txt +++ b/config/GMPE01_00/rels/m456Dll/splits.txt @@ -10,13 +10,13 @@ REL/executor.c: .text start:0x00000000 end:0x000000A0 REL/m456Dll/main.c: - .text start:0x000000A0 end:0x00002FAC + .text start:0x000000A0 end:0x00002DF4 .rodata start:0x00000000 end:0x000000F0 .data start:0x00000000 end:0x000002E8 .bss start:0x00000000 end:0x00000090 REL/m456Dll/stage.c: - .text start:0x00002FAC end:0x00009C68 + .text start:0x00002DF4 end:0x00009C68 .rodata start:0x000000F0 end:0x00000318 .data start:0x000002E8 end:0x000007D0 .bss start:0x00000090 end:0x000000BC diff --git a/configure.py b/configure.py index 5f6490b3..bbd9b2a0 100644 --- a/configure.py +++ b/configure.py @@ -1250,7 +1250,7 @@ config.libs = [ "m455Dll", # Rumble Fishing objects={ Object(Matching, "REL/executor.c"), - Object(NonMatching, "REL/m455Dll/main.c"), + Object(Matching, "REL/m455Dll/main.c"), Object(NonMatching, "REL/m455Dll/stage.c"), }, ), diff --git a/include/game/hsfmotion.h b/include/game/hsfmotion.h index 7ec10d4c..f820bd7f 100644 --- a/include/game/hsfmotion.h +++ b/include/game/hsfmotion.h @@ -4,6 +4,8 @@ #include "dolphin.h" #include "game/hsfformat.h" +#define Hu3DMotionCreateFile(data_id) (Hu3DMotionCreate(HuDataSelHeapReadNum((data_id), MEMORY_DEFAULT_NUM, HEAP_DATA))) + #define Hu3DJointMotionFile(model, data_id) (Hu3DJointMotion((model), HuDataSelHeapReadNum((data_id), MEMORY_DEFAULT_NUM, HEAP_DATA))) diff --git a/src/REL/m455Dll/main.c b/src/REL/m455Dll/main.c new file mode 100644 index 00000000..4fe5b14f --- /dev/null +++ b/src/REL/m455Dll/main.c @@ -0,0 +1,811 @@ +#include "game/object.h" +#include "game/objsub.h" +#include "game/hsfman.h" +#include "game/hsfdraw.h" + +#include "game/hsfmotion.h" +#include "game/pad.h" + +#include "game/wipe.h" +#include "game/frand.h" +#include "game/audio.h" +#include "game/minigame_seq.h" +#include "game/gamework_data.h" +#include "game/chrman.h" + +#include "ext_math.h" +#include "math.h" + +#include "rel_sqrt_consts.h" + +void fn_1_32C4(Process *objman); +void fn_1_340C(void); +void fn_1_6698(Vec *arg0, float arg1, float arg2, s32 arg3); +float fn_1_687C(void); +void fn_1_6CB0(Vec *arg0, float arg1); + +typedef struct camera_view_params { + float zoom; + Vec pos; + Vec rot; +} CameraViewParams; + +CameraViewParams lbl_1_data_0[2] = { { 500, { 0, 1000, 0 }, { 40, 0, 0 } }, { 1985, { 0, 300, 0 }, { -6, 0, 0 } } }; +Vec lbl_1_data_38 = { 700, 2500, -700 }; +Vec lbl_1_data_44 = { 0, 0, 0 }; +GXColor lbl_1_data_50 = { 255, 255, 255, 255 }; +Vec lbl_1_data_54 = { 200, 15000, -200 }; +Vec lbl_1_data_60 = { 0, 1, 0 }; + +omObjData *lbl_1_bss_40; +omObjData *lbl_1_bss_3C; +omObjData *lbl_1_bss_38; +s32 lbl_1_bss_34; +s32 lbl_1_bss_30; +s32 lbl_1_bss_2C; +s32 lbl_1_bss_28; +s16 lbl_1_bss_26; +s16 lbl_1_bss_24; +s16 lbl_1_bss_22; +s16 lbl_1_bss_20; +s16 lbl_1_bss_18[4]; +s16 lbl_1_bss_16; +s16 lbl_1_bss_14; +Vec lbl_1_bss_8; +s16 lbl_1_bss_4; +s32 lbl_1_bss_0; + + +void fn_1_330(omObjData *object); +void fn_1_B94(Process *objman); +void fn_1_2A90(Process *objman); + +void ObjectSetup(void) +{ + Process *objman; + CameraData *camera = &Hu3DCamera[0]; + s16 light; + OSReport("******* M455ObjectSetup *********\n"); + objman = omInitObjMan(50, 8192); + omGameSysInit(objman); + Hu3DCameraCreate(HU3D_CAM0); + Hu3DCameraPerspectiveSet(HU3D_CAM0, -1, 20, 25000, 1.2f); + Hu3DCameraViewportSet(HU3D_CAM0, 0, 0, 640, 480, 0, 1); + lbl_1_bss_3C = omAddObjEx(objman, 32730, 0, 0, -1, omOutView); + lbl_1_bss_8.x = lbl_1_data_44.x-lbl_1_data_38.x; + lbl_1_bss_8.y = lbl_1_data_44.y-lbl_1_data_38.y; + lbl_1_bss_8.z = lbl_1_data_44.z-lbl_1_data_38.z; + PSVECNormalize(&lbl_1_bss_8, &lbl_1_bss_8); + light = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50); + Hu3DGLightInfinitytSet(light); + Hu3DGLightStaticSet(light, 1); + Hu3DShadowCreate(10, camera->near, camera->far); + Hu3DShadowTPLvlSet(0.7f); + Hu3DShadowPosSet(&lbl_1_data_54, &lbl_1_data_60, &lbl_1_data_44); + HuAudSndGrpSet(77); + lbl_1_bss_38 = omAddObjEx(objman, 0, 0, 0, -1, fn_1_330); + fn_1_2A90(objman); + fn_1_B94(objman); + fn_1_32C4(objman); +} + +void fn_1_310(s32 arg0) +{ + lbl_1_bss_34 = arg0; +} + +s32 fn_1_320(void) +{ + return lbl_1_bss_34; +} + +void fn_1_478(omObjData *object); + +void fn_1_330(omObjData *object) +{ + CameraData *camera = &Hu3DCamera[0]; + lbl_1_bss_34 = 0; + lbl_1_bss_2C = 60; + lbl_1_bss_30 = -1; + lbl_1_bss_26 = 30; + lbl_1_bss_24 = 60; + lbl_1_bss_22 = -1; + lbl_1_bss_20 = 0; + lbl_1_bss_16 = ((frand16()*270.0f)/65536.0f)+30.0f; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + camera->fov = 30.0f; + object->func = fn_1_478; +} + +void fn_1_B38(omObjData *object); +void fn_1_C28(void); +s32 fn_1_C90(void); + +typedef struct m455_player { + u8 field0 : 1; + u8 field1 : 1; + u8 field2 : 1; + s16 unk2; + s16 unk4; + s8 unk6; + s8 unk7; + u16 unk8; + u16 unkA; + s32 unkC; + s16 unk10; + s16 unk12; + s16 unk14; + s16 unk16; + s32 unk18; + s32 unk1C; + u32 unk20; + s16 unk24; + s16 unk26; + s16 unk28; + s16 unk2A; + s16 unk2C; + s16 unk2E; + s16 unk30; + Vec unk34[2]; + Vec unk4C; + s16 unk58; + s32 unk5C[4]; +} M455Player; + +s16 lbl_1_data_90 = -1; +s32 lbl_1_data_94 = -1; +s32 lbl_1_data_98 = -1; + + + +void fn_1_478(omObjData *object) +{ + s32 i; + omObjData **playerList; + M455Player *player; + + switch(fn_1_320()) { + case 0: + if(lbl_1_data_98 < 0) { + lbl_1_data_98 = HuAudFXPlay(1985); + } + if(--lbl_1_bss_2C == 0) { + fn_1_310(1); + lbl_1_bss_2C = 120; + } + break; + + case 1: + if(--lbl_1_bss_2C == 0) { + fn_1_310(2); + lbl_1_bss_4 = MGSeqStartCreate(); + } + break; + + case 2: + if(!MGSeqStatGet(lbl_1_bss_4)) { + fn_1_310(3); + } + if(lbl_1_data_94 < 0 && (MGSeqStatGet(lbl_1_bss_4) & 0x10)) { + lbl_1_data_94 = HuAudSeqPlay(60); + } + break; + + case 3: + if(--lbl_1_bss_24 == 0) { + lbl_1_bss_26--; + if(lbl_1_data_90 >= 0) { + MGSeqParamSet(lbl_1_data_90, 1, lbl_1_bss_26); + } + lbl_1_bss_24 = 60; + if(lbl_1_bss_26 == 10) { + lbl_1_data_90 = MGSeqTimerCreate(10); + } + } + if(lbl_1_bss_16 >= 0) { + lbl_1_bss_16--; + } + if(lbl_1_bss_26 == 0 || fn_1_C90()) { + fn_1_310(4); + lbl_1_bss_4 = MGSeqFinishCreate(); + HuAudSeqFadeOut(lbl_1_data_94, 100); + } + break; + + case 4: + if(lbl_1_data_90 >= 0) { + MGSeqParamSet(lbl_1_data_90, 2, -1); + lbl_1_data_90 = -1; + } + if(!MGSeqStatGet(lbl_1_bss_4)) { + fn_1_310(7); + lbl_1_bss_2C = 120; + } + break; + + case 7: + if(--lbl_1_bss_2C == 0) { + fn_1_310(9); + if(lbl_1_bss_30 >= 0) { + HuAudSStreamPlay(1); + playerList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + for(i=0; i<4; i++) { + player = playerList[i]->data; + if(player->unk28 < 0) { + GWPlayerCoinWinSet(i, lbl_1_bss_22+1); + } + } + } else { + HuAudSStreamPlay(4); + for(i=0; i<4; i++) { + GWPlayerCoinWinSet(i, 3); + } + } + lbl_1_bss_2C = 210; + } + break; + + case 9: + if(--lbl_1_bss_2C == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudFXStop(lbl_1_data_98); + object->func = fn_1_B38; + } + break; + } + if(lbl_1_bss_20) { + if(lbl_1_bss_20 >= 2) { + for(i=0; i<100; i++){ + s32 srcIdx = (frand8()*lbl_1_bss_20) >> 8; + s32 dstIdx = (frand8()*lbl_1_bss_20) >> 8; + s32 temp = lbl_1_bss_18[srcIdx]; + lbl_1_bss_18[srcIdx] = lbl_1_bss_18[dstIdx]; + lbl_1_bss_18[dstIdx] = temp; + } + } + playerList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + for(i=0; idata; + player->unk28 = lbl_1_bss_22; + } + lbl_1_bss_20 = 0; + } + if(omSysExitReq && !WipeStatGet()) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_B38; + } +} + +void fn_1_B38(omObjData *object) +{ + if(WipeStatGet()) { + return; + } + fn_1_C28(); + fn_1_340C(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + OSReport("******* M455Exit *********\n"); +} + +void fn_1_D14(omObjData *object); + +void fn_1_B94(Process *objman) +{ + s32 i; + lbl_1_bss_28 = 0; + lbl_1_bss_14 = 3; + omMakeGroupEx(objman, 0, 4); + for(i=0; i<4; i++) { + omAddObjEx(objman, 5, 10, 50, 0, fn_1_D14); + + } +} + +void fn_1_2010(omObjData *object); + +void fn_1_C28(void) +{ + s32 i; + omObjData **playerList; + playerList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + if(playerList == NULL) { + return; + } + for(i=0; i<4; i++) { + fn_1_2010(playerList[i]); + } +} + +s32 fn_1_C90(void) +{ + s32 i; + omObjData **playerList; + playerList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + for(i=0; i<4; i++) { + M455Player *player = playerList[i]->data; + if(!player->field1) { + return 0; + } + } + return 1; +} + +s32 fn_1_3214(void); + +u32 lbl_1_data_E0[5][2] = { + 0x5F0000, 0, + 0x540024, 1, + 0x54001C, 1, + 0x5F0017, 0, + 0x5F0018, 0, +}; + +Vec lbl_1_data_108[4] = { + { -300, 0, -100 }, + { -100, 0, -100 }, + { 100, 0, -100 }, + { 300, 0, -100 }, +}; + +void fn_1_1444(omObjData *object); + +void fn_1_2060(ModelData *arg0, Mtx arg1); + +void fn_1_D14(omObjData *object) +{ + M455Player *player; + s32 charNo; + u32 i; + player = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M455Player), MEMORY_DEFAULT_NUM); + object->data = player; + memset(player, 0, sizeof(M455Player)); + player->unk2 = lbl_1_bss_28++; + player->unk4 = GWPlayerCfg[player->unk2].pad_idx; + player->unkC = fn_1_3214(); + charNo = GWPlayerCfg[player->unk2].character; + player->unk10 = charNo; + player->unk12 = GWPlayerCfg[player->unk2].diff; + player->unk14 = GWPlayerCfg[player->unk2].group; + object->model[0] = CharModelCreate(charNo, 8); + Hu3DModelShadowSet(object->model[0]); + Hu3DModelLayerSet(object->model[0], 3); + Hu3DModelCameraSet(object->model[0], HU3D_CAM0); + object->model[1] = Hu3DModelCreateFile(0x540002); + Hu3DModelHookSet(object->model[0], "test11_tex_we-itemhook-r", object->model[1]); + Hu3DModelAttrSet(object->model[1], HU3D_MOTATTR_SHAPE_PAUSE|HU3D_MOTATTR_PAUSE); + player->unk1C = 1; + for(i=0; i<5; i++) { + if(lbl_1_data_E0[i][1] == 0) { + object->motion[i] = CharModelMotionCreate(player->unk10, lbl_1_data_E0[i][0]); + } else { + object->motion[i] = CharModelMotionCreate(player->unk10, player->unk10+lbl_1_data_E0[i][0]); + } + } + Hu3DMotionSet(object->model[0], object->motion[player->unk1C]); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + object->trans.x = lbl_1_data_108[player->unk2].x; + object->trans.y = lbl_1_data_108[player->unk2].y; + object->trans.z = lbl_1_data_108[player->unk2].z; + player->unk2A = espEntry(0x54000C, 0x8000, 0); + espDispOff(player->unk2A); + object->model[3] = Hu3DHookFuncCreate(fn_1_2060); + Hu3DModelLayerSet(object->model[3], 3); + Hu3DModelCameraSet(object->model[3], HU3D_CAM0); + Hu3DData[object->model[3]].unk_120 = object; + object->model[4] = Hu3DModelCreateFile(0x54000A); + Hu3DModelLayerSet(object->model[4], 3); + Hu3DModelCameraSet(object->model[4], HU3D_CAM0); + Hu3DModelShadowSet(object->model[4]); + i = Hu3DMotionCreateFile(0x54000B); + Hu3DMotionSet(object->model[4], i); + Hu3DModelAttrSet(object->model[4], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[4], HU3D_MOTATTR_PAUSE); + player->unk4C.x = object->trans.x+(50.0f*((((s32)frand() & 0x1FF)-256.0f)/256.0f)); + player->unk4C.y = -200; + player->unk4C.z = -1500; + Hu3DModelPosSetV(object->model[4], &player->unk4C); + Hu3DModelAttrSet(object->model[4], HU3D_ATTR_DISPOFF); + player->unk34[0].x = object->trans.x; + player->unk34[0].y = 0; + player->unk34[0].z = -500; + player->unk34[1].x = object->trans.x; + player->unk34[1].y = -200; + player->unk34[1].z = -1000; + CharModelDataClose(player->unk10); + object->rot.y = 180; + if(((s32)frand() & 0x1F) < 4-player->unk12) { + player->unk58 = lbl_1_bss_16-(60.0f*(0.05f*(4-player->unk12)))-((frand8()/256.0f)*6.0f); + if(player->unk58 < 0) { + player->unk58 = 0; + } + } else { + player->unk58 = lbl_1_bss_16+(60.0f*(0.1f*(4-player->unk12)))+((frand8()/256.0f)*30.0f)+6.0f; + } + player->unk28 = -1; + object->func = fn_1_1444; +} + +void fn_1_1400(omObjData *object) +{ + M455Player *player = object->data; + if(player->unk58 != 0) { + player->unk58--; + } else { + player->unkA |= PAD_BUTTON_A; + } +} + +float lbl_1_data_154[4] = { + -350, + -170, + 170, + 350 +}; + +float lbl_1_data_164[3] = { + 1.5f, + 1.0f, + 0.5f +}; + +float fn_1_2390(float arg0, float arg1, float arg2); +s32 fn_1_24F0(Vec *arg0, Vec *arg1, float arg2); + +void fn_1_1444(omObjData *object) +{ + M455Player *temp_r31; + s32 temp_r29; + u32 temp_r28; + Vec sp24[3]; + Vec sp18; + Vec spC; + float temp_f31; + + + temp_r31 = object->data; + temp_r29 = temp_r31->unk1C; + temp_r28 = temp_r31->unk20; + object->trans.y = fn_1_687C(); + if(fn_1_320() < 3) { + return; + } + switch(temp_r31->unk16) { + case 0: + if(fn_1_320() == 4 || lbl_1_bss_14 == 0) { + temp_r31->field1 = 1; + temp_r31->unk16 = 2; + espDispOff(temp_r31->unk2A); + return; + } + if(!GWPlayerCfg[temp_r31->unk2].iscom) { + temp_r31->unk6 = HuPadStkX[temp_r31->unk4]; + temp_r31->unk7 = HuPadStkY[temp_r31->unk4]; + temp_r31->unk8 = HuPadBtn[temp_r31->unk4]; + temp_r31->unkA = HuPadBtnDown[temp_r31->unk4]; + } else { + temp_r31->unk8 = temp_r31->unkA = 0; + temp_r31->unk6 = temp_r31->unk7 = 0; + fn_1_1400(object); + } + if(lbl_1_bss_16 == 0) { + if(temp_r31->unkC) { + omVibrate(temp_r31->unk2, 12, 12, 0); + } else { + sp18.x = object->trans.x; + sp18.y = object->trans.y+300; + sp18.z = object->trans.z; + Hu3D3Dto2D(&sp18, HU3D_CAM0, &sp18); + espPosSet(temp_r31->unk2A, sp18.x, sp18.y); + espDispOn(temp_r31->unk2A); + temp_r31->unk30 = 0; + } + temp_r31->unk2C = temp_r31->unk2E = 30; + } + + if(temp_r31->unkA & PAD_BUTTON_A) { + temp_r31->unk16 = 1; + temp_r31->unk24 = temp_r31->unk26 = 90; + temp_r31->unk2C = -1; + if(lbl_1_bss_16 <= 0) { + lbl_1_bss_18[lbl_1_bss_20++] = temp_r31->unk2; + } + Hu3DModelAttrReset(object->model[1], HU3D_MOTATTR_SHAPE_PAUSE|HU3D_MOTATTR_PAUSE); + Hu3DMotionSpeedSet(object->model[1], 1.2f); + Hu3DMotionShapeSpeedSet(object->model[1], 1.2f); + HuAudFXPlay(1986); + + } + temp_r29 = 1; + temp_r28 = HU3D_MOTATTR_LOOP; + break; + + case 1: + temp_r29 = 2; + temp_r28 = HU3D_MOTATTR_NONE; + if(!temp_r31->field0) { + if(temp_r31->unk28 >= 0 && temp_r31->unk28 < 3) { + temp_r31->field0 = 1; + if(temp_r31->unk28 == 0) { + lbl_1_bss_30 = temp_r31->unk2; + } + temp_f31 = lbl_1_data_164[temp_r31->unk28]; + Hu3DModelScaleSet(object->model[4], temp_f31, temp_f31, temp_f31); + Hu3DModelAttrReset(object->model[4], HU3D_ATTR_DISPOFF); + } + } + temp_f31 = 1.0f-((float)temp_r31->unk24/temp_r31->unk26); + sp24[0].x = temp_r31->unk4C.x; + sp24[0].y = temp_r31->unk4C.y; + sp24[0].z = temp_r31->unk4C.z; + sp24[1].x = object->trans.x; + sp24[1].y = object->trans.y+1500; + sp24[1].z = object->trans.z-200; + sp24[2].x = lbl_1_data_154[temp_r31->unk2]; + sp24[2].y = 0; + sp24[2].z = 150; + fn_1_24F0(sp24, &sp18, temp_f31); + VECSubtract(&sp18, &Hu3DData[object->model[4]].pos, &spC); + Hu3DModelRotSet(object->model[4], atan2d(-spC.y, VECMagXZ(&spC)), atan2d(spC.x, spC.z), 0); + Hu3DModelPosSetV(object->model[4], &sp18); + if(sp18.y > 0.0f) { + if(!temp_r31->field2 && temp_r31->field0) { + fn_1_6CB0(&sp18, -1); + fn_1_6698(&sp18, -1, -1, -1); + temp_r31->field2 = 1; + } + } + temp_r31->unk34[0].x = temp_f31*(2.0f*lbl_1_data_154[temp_r31->unk2]); + temp_r31->unk34[0].y = -200.0f+(-400.0f*temp_f31); + temp_r31->unk34[0].z = -500.0f+(-1500.0f*temp_f31); + temp_r31->unk34[1].x = temp_f31*lbl_1_data_154[temp_r31->unk2]; + temp_r31->unk34[1].y = -200.0f+(400.0f*temp_f31); + temp_r31->unk34[1].z = -1000.0f+(750.0f*temp_f31); + if(--temp_r31->unk24 == 0) { + temp_r31->unk16 = 2; + temp_r31->field1 = 1; + if(temp_r31->field0) { + Hu3DModelAttrReset(object->model[4], HU3D_MOTATTR_PAUSE); + Hu3DModelRotSet(object->model[4], 0, 0, 0); + lbl_1_bss_14--; + } + } + break; + + case 2: + if(fn_1_320() == 7) { + temp_r31->unk16 = 3; + Hu3DModelObjPosGet(object->model[0], "test11_tex_we-itemhook-r", &sp18); + CharModelEffectCreate(1, &sp18); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); + } + break; + + case 3: + if(fn_1_320() < 9) { + temp_r29 = 0; + temp_r28 = HU3D_MOTATTR_LOOP; + } else { + object->rot.y = fn_1_2390(object->rot.y, 0, 0.2f); + if(temp_r31->unk2 == lbl_1_bss_30) { + temp_r29 = 3; + temp_r28 = HU3D_MOTATTR_NONE; + } else { + temp_r29 = 4; + temp_r28 = HU3D_MOTATTR_NONE; + } + } + break; + + default: + break; + } + if(temp_r31->unk2C) { + if(temp_r31->unk2C >= 0) { + temp_f31 = (0.5*sind((90.0f*(float)temp_r31->unk2C)/(float)temp_r31->unk2E))+0.5; + espScaleSet(temp_r31->unk2A, temp_f31, temp_f31); + if(--temp_r31->unk2C == 0) { + temp_r31->unk2C = temp_r31->unk2E; + } + temp_r31->unk30++; + } else { + if(temp_r31->unk30 > 30.0f) { + espDispOff(temp_r31->unk2A); + temp_r31->unk2C = 0; + } else { + temp_r31->unk30++; + } + } + } + if(temp_r31->unk16 >= 2 && temp_r31->unk16 <= 3 && temp_r31->field0) { + Hu3DData[object->model[4]].rot.y += 2.0f; + if(0.0f == Hu3DData[object->model[4]].unk_64) { + HuAudFXPlay(1987); + } + } + if ((temp_r29 >= 0 && temp_r29 != temp_r31->unk1C) || temp_r28 != temp_r31->unk20) { + temp_r31->unk1C = temp_r29; + temp_r31->unk20 = temp_r28; + CharModelMotionShiftSet(temp_r31->unk10, object->motion[temp_r31->unk1C], 0, 8, temp_r28); + } +} + +void fn_1_2010(omObjData *object) +{ + M455Player *player = object->data; + if(object->data != NULL) { + HuMemDirectFree(object->data); + object->data = NULL; + } +} + +GXColor lbl_1_data_170 = { 255, 255, 255, 255 }; + +void fn_1_27A0(Vec *arg0, Vec *arg1, float arg2); + +void fn_1_2060(ModelData *arg0, Mtx arg1) +{ + Vec vtxPos[4]; + Mtx mtxHook; + + Vec pos; + Vec itemHookPos; + s32 i; + omObjData *object = arg0->unk_120; + M455Player *player = object->data; + ModelData *modelPuku = &Hu3DData[object->model[4]]; + GXLoadPosMtxImm(arg1, GX_PNMTX0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_170); + GXSetNumTexGens(0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXSetNumTevStages(1); + GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + Hu3DModelObjMtxGet(object->model[0], "test11_tex_we-itemhook-r", mtxHook); + Hu3DModelObjPosGet(object->model[1], "hook", &pos); + MTXMultVec(mtxHook, &pos, &vtxPos[0]); + for(i=0; i<2; i++) { + vtxPos[i+1].x = player->unk34[i].x; + vtxPos[i+1].y = player->unk34[i].y; + vtxPos[i+1].z = player->unk34[i].z; + } + if(player->field0) { + Mtx hookMtx; + Vec hookPos; + Hu3DModelObjMtxGet(object->model[4], "itemhook_C", hookMtx); + hookPos.x = 0; + hookPos.y = -60.000004f; + hookPos.z = 35.0f; + MTXMultVec(hookMtx, &hookPos, &vtxPos[3]); + } else { + vtxPos[3].x = modelPuku->pos.x; + vtxPos[3].y = modelPuku->pos.y; + vtxPos[3].z = modelPuku->pos.z; + } + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 20); + for(i=0; i<20; i++) { + fn_1_27A0(vtxPos, &pos, i/19.0f); + GXPosition3f32(pos.x, pos.y, pos.z); + } + GXEnd(); +} + +float fn_1_2390(float arg0, float arg1, float arg2) +{ + float temp_f31 = fmod(arg1-arg0, 360); + float temp_f30; + if(temp_f31 < 0) { + temp_f31 += 360.0f; + } + if(temp_f31 > 180) { + temp_f31 -= 360.0f; + } + temp_f30 = fmod(arg0+(arg2*temp_f31), 360); + if(temp_f30 < 0) { + temp_f30 += 360.0f; + } + return temp_f30; +} + +float fn_1_2494(float arg0, float arg1, float arg2, float arg3) +{ + float temp_f31 = 1.0f-arg3; + return (arg0*(temp_f31*temp_f31))+((2.0f*temp_f31)*arg3*arg1)+(arg2*(arg3*arg3)); +} + +s32 fn_1_24F0(Vec *arg0, Vec *arg1, float arg2) +{ + arg1->x = fn_1_2494(arg0[0].x, arg0[1].x, arg0[2].x, arg2); + arg1->y = fn_1_2494(arg0[0].y, arg0[1].y, arg0[2].y, arg2); + arg1->z = fn_1_2494(arg0[0].z, arg0[1].z, arg0[2].z, arg2); +} + +float fn_1_26F8(float arg0, float arg1, float arg2, float arg3, float arg4) +{ + float temp_f31 = 1.0f-arg0; + float temp_f30 = temp_f31*temp_f31; + float temp_f29 = temp_f31*temp_f31*temp_f31; + return (arg4 * (arg0 * (arg0 * arg0))) + ((arg3 * (arg0 * (3.0f * temp_f31 * arg0))) + ((temp_f29 * arg1) + (arg2 * (3.0f * temp_f30 * arg0)))); +} + +void fn_1_27A0(Vec *arg0, Vec *arg1, float arg2) +{ + arg1->x = fn_1_26F8(arg2, arg0[0].x, arg0[1].x, arg0[2].x, arg0[3].x); + arg1->y = fn_1_26F8(arg2, arg0[0].y, arg0[1].y, arg0[2].y, arg0[3].y); + arg1->z = fn_1_26F8(arg2, arg0[0].z, arg0[1].z, arg0[2].z, arg0[3].z); +} + +float lbl_1_data_184[2] = {}; + +void fn_1_2AF4(s32 arg0, s32 arg1, float arg2); + +void fn_1_2D44(omObjData *object); + +void fn_1_2A90(Process *objman) +{ + fn_1_2AF4(0, 0, 0); + lbl_1_bss_40 = omAddObjEx(objman, 10, 0, 0, -1, fn_1_2D44); +} + +void fn_1_2AF4(s32 arg0, s32 arg1, float arg2) +{ + CZoom = lbl_1_data_0[arg0].zoom+(arg2*(lbl_1_data_0[arg1].zoom-lbl_1_data_0[arg0].zoom)); + Center.x = lbl_1_data_0[arg0].pos.x+(arg2*(lbl_1_data_0[arg1].pos.x-lbl_1_data_0[arg0].pos.x)); + Center.y = lbl_1_data_0[arg0].pos.y+(arg2*(lbl_1_data_0[arg1].pos.y-lbl_1_data_0[arg0].pos.y)); + Center.z = lbl_1_data_0[arg0].pos.z+(arg2*(lbl_1_data_0[arg1].pos.z-lbl_1_data_0[arg0].pos.z)); + CRot.x = lbl_1_data_0[arg0].rot.x+(arg2*(lbl_1_data_0[arg1].rot.x-lbl_1_data_0[arg0].rot.x)); + CRot.y = lbl_1_data_0[arg0].rot.y+(arg2*(lbl_1_data_0[arg1].rot.y-lbl_1_data_0[arg0].rot.y)); + CRot.z = lbl_1_data_0[arg0].rot.z+(arg2*(lbl_1_data_0[arg1].rot.z-lbl_1_data_0[arg0].rot.z)); +} + +void fn_1_2D44(omObjData *object) +{ + CameraData *camera = &Hu3DCamera[0]; + switch(fn_1_320()) { + case 1: + fn_1_2AF4(0, 1, sind(lbl_1_data_184[0]*90.0f)); + if(lbl_1_data_184[0] < 1.0f) { + lbl_1_data_184[0] += 1.0f/60.0f; + if(lbl_1_data_184[0] > 1.0f) { + lbl_1_data_184[0] = 1.0f; + } + } + break; + + case 6: + fn_1_2AF4(1, 1, 0); + break; + + case 4: + case 5: + case 7: + break; + } +} + +u32 lbl_1_data_18C[4] = { PAD_CHAN0_BIT, PAD_CHAN1_BIT, PAD_CHAN2_BIT, PAD_CHAN3_BIT }; +s32 fn_1_3214(void) +{ + s32 rumble = HuPadRumbleGet(); + s32 i; + for(i=0; i<4; i++) { + if(!GWPlayerCfg[i].iscom) { + if((rumble & lbl_1_data_18C[GWPlayerCfg[i].pad_idx]) == 0) { + return 0; + } + } + } + return GWGameStat.rumble; +} + +float lbl_1_data_19C[] = { 0,355,0,0,0,275,128,950,6,0,0,0,190,0,550 }; \ No newline at end of file From e17800bf79a5ae0431e39bd37c2c468da42422dc Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 2 Sep 2024 23:00:29 +0200 Subject: [PATCH 049/311] Nearly finished mentDll/main.c --- config/GMPE01_00/rels/mentDll/symbols.txt | 36 +- include/REL/mentDll.h | 57 + src/REL/mentDll/main.c | 6575 +++++++++++++++++++++ 3 files changed, 6650 insertions(+), 18 deletions(-) create mode 100644 include/REL/mentDll.h create mode 100644 src/REL/mentDll/main.c diff --git a/config/GMPE01_00/rels/mentDll/symbols.txt b/config/GMPE01_00/rels/mentDll/symbols.txt index 1c9c6ddd..a567448f 100644 --- a/config/GMPE01_00/rels/mentDll/symbols.txt +++ b/config/GMPE01_00/rels/mentDll/symbols.txt @@ -244,7 +244,7 @@ lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x1 data:byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:byte lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x1C data:4byte lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float @@ -254,32 +254,32 @@ lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0xC data:4byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0xC data:float lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x10 data:4byte lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x18 data:4byte -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0xC data:4byte -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0xC data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC data:float lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC data:4byte +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC data:float lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x18 data:4byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC data:4byte -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC data:4byte -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0xC data:4byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0xC data:float lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x1C data:4byte lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x10 data:4byte lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x18 data:4byte -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0xC data:4byte -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0xC data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0xC data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0xC data:float lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x1C data:4byte -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0xC data:4byte -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0xC data:4byte -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0xC data:4byte -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0xC data:4byte -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:4byte -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0xC data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0xC data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0xC data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0xC data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC data:float lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float @@ -392,7 +392,7 @@ lbl_1_data_245 = .data:0x00000245; // type:object size:0x1D data:string lbl_1_data_262 = .data:0x00000262; // type:object size:0x14 data:string lbl_1_data_276 = .data:0x00000276; // type:object size:0x15 data:string lbl_1_data_28B = .data:0x0000028B; // type:object size:0x14 data:string -lbl_1_data_29F = .data:0x0000029F; // type:object size:0x15 +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x15 data:string lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3C lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x4 data:4byte lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20 data:string @@ -408,7 +408,7 @@ lbl_1_data_413 = .data:0x00000413; // type:object size:0x2B data:string lbl_1_data_43E = .data:0x0000043E; // type:object size:0x29 data:string lbl_1_data_467 = .data:0x00000467; // type:object size:0x2B data:string lbl_1_data_492 = .data:0x00000492; // type:object size:0x20 data:string -lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x22 +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x22 data:string jumptable_1_data_4D4 = .data:0x000004D4; // type:object size:0x54 scope:local lbl_1_data_528 = .data:0x00000528; // type:object size:0x1B data:string lbl_1_data_543 = .data:0x00000543; // type:object size:0x1A data:string diff --git a/include/REL/mentDll.h b/include/REL/mentDll.h new file mode 100644 index 00000000..9167ed8e --- /dev/null +++ b/include/REL/mentDll.h @@ -0,0 +1,57 @@ +#ifndef MENTDLL_H +#define MENTDLL_H + +#include "game/object.h" + +typedef struct MentDllUnkBss64Struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s32 unk04; + /* 0x08 */ float unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ float unk_10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ float unk_20; + /* 0x24 */ float unk_24; + /* 0x28 */ float unk_28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s32 unk30; + /* 0x34 */ s32 unk34; + /* 0x38 */ float unk_38; + /* 0x3C */ s32 unk3C; + /* 0x40 */ s32 unk_40; +} MentDllUnkBss64Struct; /* size = 0x44 */ + +float fn_1_20C(float arg8, float arg9, float argA, float argB); +float fn_1_234(float arg8, float arg9, float argA); +float fn_1_254(float arg8, float arg9, float argA, float argB); +float fn_1_32C(float arg8, float arg9, float argA, float argB); +float fn_1_3F4(float arg8, float arg9, float argA, float argB); +void fn_1_4B0(s32 arg0); +void fn_1_4D8(void); +void fn_1_50C(void); +void fn_1_5E8(s32 arg0); +void fn_1_6D0(void); +s32 fn_1_1434(s32 arg0, s32 arg1, s32 arg2); +void fn_1_16AC(s32 arg0); +void fn_1_1968(s32 arg0, u32 arg1, s32 arg2, s32 arg3); +s32 fn_1_1A5C(u32 arg0, s32 arg1, s32 arg2); +s32 fn_1_1DD8(u32 arg0, s32 arg1, s32 arg2); +s32 fn_1_2154(u32 arg0); +void fn_1_2318(s32 arg0); +void fn_1_2808(void *arg0); +void fn_1_2844(Process *arg0, void *arg1); +void fn_1_4138(MentDllUnkBss64Struct *arg0, float *arg1, float arg8, float arg9, float argA); +void fn_1_5150(void *arg0, void *arg1, float arg8, float arg9, float argA); +void fn_1_5818(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_59A0(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_5C08(omObjData *arg0); +void fn_1_5CDC(omObjData *arg0, s32 arg1, s32 arg2); +void fn_1_5D38(omObjData *arg0, s32 arg1, Vec arg2, float arg8, float arg9, float argA, s32 arg3, s32 arg4); +void fn_1_6534(s32, s32, float, float); + +void fn_1_658C(Process *arg0); + +#endif diff --git a/src/REL/mentDll/main.c b/src/REL/mentDll/main.c new file mode 100644 index 00000000..c97cd7b7 --- /dev/null +++ b/src/REL/mentDll/main.c @@ -0,0 +1,6575 @@ +#include "game/board/main.h" +#include "ext_math.h" +#include "game/armem.h" +#include "game/chrman.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/saveload.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "REL/mentDll.h" + +typedef struct MentDllUnkBssE4Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ float unk_10; + /* 0x14 */ float unk_14; + /* 0x18 */ float unk_18; +} MentDllUnkBssE4Struct; /* size = 0x1C */ + +typedef struct MentDllUnkBss16C4Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ float unk_10; + /* 0x14 */ float unk_14; + /* 0x18 */ float unk_18; + /* 0x1C */ float unk_1C; + /* 0x20 */ float unk_20; + /* 0x24 */ float unk_24; + /* 0x28 */ float unk_28; + /* 0x2C */ float unk_2C; +} MentDllUnkBss16C4Struct; /* size = 0x30 */ + +typedef void (*MentDllUnkFunc)(omObjData *, ...); + +typedef struct MentDllUnkBss3114Struct { + /* 0x00 */ omObjData *unk_00; + /* 0x04 */ MentDllUnkFunc unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ char pad_10[0x48]; /* maybe part of unk_0C[0x13]? */ + /* 0x58 */ s32 unk_58; + /* 0x5C */ s32 unk_5C; + /* 0x60 */ s32 unk_60; + /* 0x64 */ s32 unk_64; + /* 0x68 */ s32 unk_68; + /* 0x6C */ s32 unk_6C; + /* 0x70 */ s32 unk_70[4]; + /* 0x80 */ s32 unk_80[4]; +} MentDllUnkBss3114Struct; /* size = 0x90 */ + +typedef struct MentDllUnkBss33ACStruct { // maybe the same as the other one? + /* 0x00 */ omObjData *unk_00; + /* 0x04 */ MentDllUnkFunc unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ char pad_10[0x20]; + /* 0x30 */ s32 unk_30; + /* 0x34 */ s32 unk_34; + /* 0x38 */ char pad_38[0x20]; +} MentDllUnkBss33ACStruct; /* size = 0x58 */ + +typedef struct MentDllUnkBss35BCStruct { + /* 0x00 */ omObjData *unk_00; + /* 0x04 */ MentDllUnkFunc unk_04; + /* 0x08 */ s32 unk_08[5]; + /* 0x1C */ s32 unk_1C[5]; + /* 0x30 */ s32 unk_30; + /* 0x34 */ s32 unk_34; + /* 0x38 */ s32 unk_38; + /* 0x3C */ s32 unk_3C; + /* 0x40 */ s32 unk_40; + /* 0x44 */ s32 unk_44[5]; +} MentDllUnkBss35BCStruct; /* size = 0x58 */ + +void fn_1_116F4(void); +void fn_1_1184C(omObjData *arg0, MentDllUnkBss35BCStruct *arg1); +void fn_1_11908(omObjData *arg0, s32 arg1); +void fn_1_121D8(void); +void fn_1_127FC(omObjData *arg0, MentDllUnkBss33ACStruct *arg1); +void fn_1_12E40(void); +void fn_1_134A8(void); +void fn_1_13970(void); +void fn_1_13D60(void); +void fn_1_13DEC(void); +void fn_1_13EDC(void); +void fn_1_13F68(void); +void fn_1_14058(void); +void fn_1_14148(void); +void fn_1_14238(void); +void fn_1_14328(void); +void fn_1_14418(void); +void fn_1_146D0(void); +void fn_1_147C0(void); +void fn_1_148B0(void); +void fn_1_149A0(void); +void fn_1_14A2C(void); +void fn_1_14AB8(void); +void fn_1_14BA8(void); +void fn_1_14CE0(void); +void fn_1_15098(void); +void fn_1_151B8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_15950(void); +void fn_1_15CB4(omObjData *arg0, MentDllUnkBss3114Struct *arg1); +s32 fn_1_1648C(MentDllUnkBss3114Struct *arg0); +void fn_1_16B68(omObjData *arg0, MentDllUnkBss3114Struct *arg1); +void fn_1_173FC(MentDllUnkBss3114Struct *arg0); +void fn_1_17914(MentDllUnkBss3114Struct *arg0); +void fn_1_179DC(void); +void fn_1_17CC8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_1811C(void); +void fn_1_1850C(void); +void fn_1_1872C(void); +void fn_1_18788(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_18A54(s32 arg0); +void fn_1_18DCC(void); +void fn_1_18F74(omObjData *arg0, MentDllUnkBss35BCStruct *arg1); +void fn_1_190E8(void); +void fn_1_19C98(omObjData *arg0, MentDllUnkBss35BCStruct *arg1); +void fn_1_1BB2C(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_1C554(void); +void fn_1_1C674(void); +void fn_1_1C754(void); +void fn_1_1C990(void); +void fn_1_1CF68(void); +void fn_1_1D4FC(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_1DED8(void); +void fn_1_1DF48(void); +void fn_1_1DFB8(void); +void fn_1_1E1B4(void); +void fn_1_1E404(omObjData *arg0, MentDllUnkBss3114Struct *arg1); +void fn_1_1E8A4(omObjData *arg0, MentDllUnkBss35BCStruct *arg1); +void fn_1_1F6B8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_1F868(void); +void fn_1_1FA34(void); +void fn_1_1FC54(void); +void fn_1_1FF4C(omObjData *arg0, MentDllUnkBss35BCStruct *arg1); +void fn_1_2055C(s32 arg0); +void fn_1_207BC(void); +void fn_1_208F4(void); +void fn_1_20A24(void); +void fn_1_20B54(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_21724(omObjData *object); +void fn_1_2342C(omObjData *object); +void fn_1_C174(s32 arg0); +void fn_1_E654(s32 arg0); +void fn_1_E71C(s32 arg0); + +s32 lbl_1_data_0[][4] = { + { 0x00000037, 0x00000038, 0x00000036, 0x00000039 }, + { 0x00000043, 0x00000045, 0x00000044, 0x00000043 }, + { 0x00000040, 0x00000042, 0x00000041, 0x00000040 }, + { 0x0000004B, 0x0000004D, 0x0000004C, 0x0000004B }, + { 0x00000046, 0x00000048, 0x00000047, 0x00000046 }, + { 0x0000003E, 0x0000003F, 0x0000003E, 0x0000003E }, + { 0x0000003A, 0x0000003B, 0x0000003C, 0xFFFFFFFF }, +}; + +s32 lbl_1_data_70 = -1; + +char lbl_1_data_74[] = ">>>>>>>>>> CAMERA DATA <<<<<<<<<<"; +char lbl_1_data_96[] = "CENTER : %.2f, %.2f, %.2f"; +char lbl_1_data_B0[] = "ROT : %.2f, %.2f, %.2f"; +char lbl_1_data_CA[] = "ZOOM : %.2f"; + +Vec lbl_1_data_D8[6] = { + { 0.0f, 0.0f, 460.0f }, + { -240.0f, 0.0f, 460.0f }, + { -120.0f, 0.0f, 460.0f }, + { 120.0f, 50.0f, 460.0f }, + { 240.0f, 0.0f, 460.0f }, + { 1200.0f, 0.0f, 460.0f }, +}; + +float lbl_1_data_120[6] = { 0.0f, 20.0f, 10.0f, -10.0f, -20.0f, 0.0f }; + +MentDllUnkBss35BCStruct lbl_1_bss_366C; +MentDllUnkBss35BCStruct lbl_1_bss_35BC[2]; +MentDllUnkBss33ACStruct lbl_1_bss_33AC[6]; +MentDllUnkBss33ACStruct lbl_1_bss_3354; +MentDllUnkBss3114Struct lbl_1_bss_3114[4]; +omObjData *lbl_1_bss_3108[3]; +omObjData *lbl_1_bss_3104; +MentDllUnkBss16C4Struct lbl_1_bss_16C4[0x8C]; +MentDllUnkBssE4Struct lbl_1_bss_E4[0xC8]; +s32 lbl_1_bss_E0; +s32 lbl_1_bss_DC; +s32 lbl_1_bss_D8; +s32 lbl_1_bss_D4; +s32 lbl_1_bss_D0; +s32 lbl_1_bss_CC; +Process *lbl_1_bss_C8; +s32 lbl_1_bss_A8[8]; +MentDllUnkBss64Struct lbl_1_bss_64; +s32 lbl_1_bss_24[16]; +s32 lbl_1_bss_14[4]; +s32 lbl_1_bss_0[5]; + +void fn_1_658C(Process *arg0) +{ + s32 var_r31; + + lbl_1_bss_C8 = arg0; + fn_1_6D0(); + fn_1_50C(); + fn_1_5E8(lbl_1_bss_A8[0]); + if (lbl_1_bss_A8[0] != 0xB) { + CharKill(-1); + } + lbl_1_bss_A8[4] = GWGameStat.open_w06; + lbl_1_bss_A8[5] = GWGameStat.field10E_bit4; + lbl_1_bss_A8[6] = GWGameStat.field10E_bit5; + switch (lbl_1_bss_A8[0]) { + case 0: + HuAudSndGrpSetSet(7); + if (lbl_1_bss_A8[1] == 0) { + fn_1_2844(lbl_1_bss_C8, fn_1_13D60); + } + else { + fn_1_2844(lbl_1_bss_C8, fn_1_13EDC); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuPrcChildCreate(fn_1_121D8, 0x64, 0x3000, 0, HuPrcCurrentGet()); + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + HuPrcChildCreate(fn_1_12E40, 0x64, 0x3000, 0, HuPrcCurrentGet()); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuPrcChildCreate(fn_1_13970, 0x64, 0x3000, 0, HuPrcCurrentGet()); + } + if (lbl_1_bss_A8[1] == 0) { + lbl_1_bss_3108[0] = omAddObjEx(lbl_1_bss_C8, 0x1000, 0x8D, 0x10, -1, fn_1_21724); + } + break; + case 1: + HuAudSndGrpSetSet(7); + if (lbl_1_bss_A8[1] == 0) { + fn_1_2844(lbl_1_bss_C8, fn_1_13D60); + } + else { + fn_1_2844(lbl_1_bss_C8, fn_1_13EDC); + } + HuPrcChildCreate(fn_1_121D8, 0x64, 0x3000, 0, HuPrcCurrentGet()); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + HuPrcChildCreate(fn_1_12E40, 0x64, 0x3000, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_13970, 0x64, 0x3000, 0, HuPrcCurrentGet()); + if (lbl_1_bss_A8[1] == 0) { + lbl_1_bss_3108[0] = omAddObjEx(lbl_1_bss_C8, 0x1000, 0x8D, 0x10, -1, fn_1_21724); + } + lbl_1_bss_3104 = omAddObjEx(lbl_1_bss_C8, 0x1000, 0xC9, 0x10, -1, fn_1_2342C); + break; + case 3: + HuAudSndCommonGrpSet(0x56, 1); + HuAudSndCommonGrpSet(0x6B, 0); + fn_1_2844(lbl_1_bss_C8, fn_1_13D60); + HuPrcChildCreate(fn_1_121D8, 0x64, 0x3000, 0, HuPrcCurrentGet()); + lbl_1_bss_D0 = 4; + HuPrcChildCreate(fn_1_12E40, 0x64, 0x3000, 0, HuPrcCurrentGet()); + lbl_1_bss_3108[0] = omAddObjEx(lbl_1_bss_C8, 0x1000, 0x8D, 0x10, -1, fn_1_21724); + break; + case 4: + HuAudSndGrpSetSet(3); + fn_1_2844(lbl_1_bss_C8, fn_1_13D60); + HuPrcChildCreate(fn_1_121D8, 0x64, 0x3000, 0, HuPrcCurrentGet()); + lbl_1_bss_D0 = 2; + HuPrcChildCreate(fn_1_12E40, 0x64, 0x3000, 0, HuPrcCurrentGet()); + lbl_1_bss_3108[0] = omAddObjEx(lbl_1_bss_C8, 0x1000, 0x8D, 0x10, -1, fn_1_21724); + break; + case 5: + fn_1_2844(lbl_1_bss_C8, fn_1_13D60); + HuPrcChildCreate(fn_1_121D8, 0x64, 0x3000, 0, HuPrcCurrentGet()); + lbl_1_bss_D0 = 3; + HuPrcChildCreate(fn_1_12E40, 0x64, 0x3000, 0, HuPrcCurrentGet()); + lbl_1_bss_3108[0] = omAddObjEx(lbl_1_bss_C8, 0x1000, 0x8D, 0x10, -1, fn_1_21724); + break; + case 10: + HuAudSndGrpSetSet(7); + fn_1_2844(lbl_1_bss_C8, fn_1_149A0); + HuPrcChildCreate(fn_1_121D8, 0x64, 0x3000, 0, HuPrcCurrentGet()); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + HuPrcChildCreate(fn_1_12E40, 0x64, 0x3000, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_13970, 0x64, 0x3000, 0, HuPrcCurrentGet()); + break; + case 11: + lbl_1_bss_CC = 1; + HuAudSndGrpSetSet(7); + fn_1_2844(lbl_1_bss_C8, fn_1_14A2C); + HuPrcChildCreate(fn_1_121D8, 0x64, 0x3000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_134A8, 0x64, 0x3000, 0, HuPrcCurrentGet()); + fn_1_4B0(2); + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_13970, 0x64, 0x3000, 0, HuPrcCurrentGet()); + break; + } + HuPrcChildCreate(fn_1_116F4, 0xC8, 0x3000, 0, HuPrcCurrentGet()); +} + +void fn_1_6C4C(void) +{ + s32 var_r31; + s32 var_r30 = 0x10; + s32 var_r29 = 0x28; + s32 var_r28 = 0; + { + GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; + while (TRUE) { + fn_1_4D8(); + if (HuPadBtnDown[0] & PAD_TRIGGER_R) { + var_r28++; + var_r28 = var_r28 % 2; + } + if (var_r28 == 0) { + continue; + } + printWin(var_r30, var_r29, 0xDC, 0x122, &sp10); + if (lbl_1_bss_366C.unk_04 == NULL) { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE"); + } + else { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE"); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (lbl_1_bss_35BC[var_r31].unk_04 == NULL) { + print8(var_r30, var_r29 + 0x14 + (var_r31 * 0xA), 1.0f, "PROC_MAP%d -> FALSE", var_r31); + } + else { + print8(var_r30, var_r29 + 0x14 + (var_r31 * 0xA), 1.0f, "PROC_MAP%d -> TRUE", var_r31); + } + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + if (lbl_1_bss_33AC[var_r31].unk_04 == NULL) { + print8(var_r30, var_r29 + 0x32 + (var_r31 * 0xA), 1.0f, "PROC_SUB%d -> FALSE", var_r31); + } + else { + print8(var_r30, var_r29 + 0x32 + (var_r31 * 0xA), 1.0f, "PROC_SUB%d -> TRUE", var_r31); + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_04 == NULL) { + print8(var_r30, var_r29 + 0x78 + (var_r31 * 0xA), 1.0f, "PROC_PLAYER%d -> FALSE", var_r31); + } + else { + print8(var_r30, var_r29 + 0x78 + (var_r31 * 0xA), 1.0f, "PROC_PLAYER%d -> TRUE", var_r31); + } + } + print8(var_r30, var_r29 + 0xAA, 1.0f, "MODE:%d MAP:%d", lbl_1_bss_A8[0], lbl_1_bss_A8[2]); + print8(var_r30, var_r29 + 0xBE, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + s32 spC; + s32 sp8 = lbl_1_bss_3114[var_r31].unk_6C; + spC = lbl_1_bss_3114[var_r31].unk_68; + print8(var_r30, var_r29 + 0xC8 + (var_r31 * 0xA), 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", var_r31, lbl_1_bss_3114[var_r31].unk_58, + lbl_1_bss_3114[var_r31].unk_5C, lbl_1_bss_3114[var_r31].unk_60, lbl_1_bss_3114[var_r31].unk_64); + } + print8(var_r30, var_r29 + 0xF0, 1.0f, "NO) FG0:FG1:FG2:FG3"); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + print8(var_r30, var_r29 + 0xFA + (var_r31 * 0xA), 1.0f, "%2d) %3d:%3d:%3d:%3d", var_r31, lbl_1_bss_3114[var_r31].unk_70[0], + lbl_1_bss_3114[var_r31].unk_70[1], lbl_1_bss_3114[var_r31].unk_70[2], lbl_1_bss_3114[var_r31].unk_70[3]); + } + } + } +} + +s32 fn_1_7124(void) +{ + s32 var_r31 = 0; + + if (_CheckFlag(FLAG_ID_MAKE(0, 2)) != 0) { + var_r31++; + } + if (_CheckFlag(FLAG_ID_MAKE(0, 3)) != 0) { + var_r31++; + } + if (_CheckFlag(FLAG_ID_MAKE(0, 4)) != 0) { + var_r31++; + } + if (_CheckFlag(FLAG_ID_MAKE(0, 5)) != 0) { + var_r31++; + } + if (_CheckFlag(FLAG_ID_MAKE(0, 6)) != 0) { + var_r31++; + } + if (_CheckFlag(FLAG_ID_MAKE(0, 7)) != 0) { + var_r31++; + } + OSReport("DIF OMAKASE MAP %d\n", var_r31); + var_r31 = var_r31 / 2; + if (var_r31 < 0) { + var_r31 = 0; + } + else if (var_r31 > 3) { + var_r31 = 3; + } + OSReport("DIF OMAKASE DIF %d\n", var_r31); + return var_r31; +} + +s32 lbl_1_data_2B4[0xF] = { + DATADIR_W01, + DATADIR_W02, + DATADIR_W03, + DATADIR_W04, + DATADIR_W05, + DATADIR_W06, + DATADIR_W10, + DATADIR_MARIOMDL1, + DATADIR_LUIGIMDL1, + DATADIR_PEACHMDL1, + DATADIR_YOSHIMDL1, + DATADIR_WARIOMDL1, + DATADIR_DONKEYMDL1, + DATADIR_DAISYMDL1, + DATADIR_WALUIGIMDL1, +}; + +void fn_1_7218(void) +{ + s32 var_r31 = HuDataDirReadAsync(DATADIR_BOARD); + + if (var_r31 != -1) { + while (HuDataGetAsyncStat(var_r31) == 0) { + HuPrcVSleep(); + } + } + HuAR_MRAMtoARAM(DATADIR_BOARD); + while (HuARDMACheck() != 0) { + HuPrcVSleep(); + } + HuDataDirClose(DATADIR_BOARD); + if (_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) { + var_r31 = HuDataDirReadAsync(DATADIR_W10); + } + else { + var_r31 = HuDataDirReadAsync(lbl_1_data_2B4[GWSystem.board]); + } + if (var_r31 != -1) { + while (HuDataGetAsyncStat(var_r31) == 0) { + HuPrcVSleep(); + } + } + lbl_1_bss_D8 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_7304(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + + for (var_r31 = 1; var_r31 < 4; var_r31++) { + lbl_1_bss_3114[var_r31].unk_68 = -1; + lbl_1_bss_3114[var_r31].unk_6C = var_r31; + lbl_1_bss_3114[var_r31].unk_60 = 1; + } + for (var_r31 = 1; var_r31 < 4; var_r31++) { + do { + lbl_1_bss_3114[var_r31].unk_68 = rand8() % 8; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if ((var_r31 != var_r29) && (lbl_1_bss_3114[var_r29].unk_68 != -1) + && (lbl_1_bss_3114[var_r31].unk_68 == lbl_1_bss_3114[var_r29].unk_68)) { + break; + } + } + } while (var_r29 != 4); + } + GWSystem.diff_story = lbl_1_bss_35BC[0].unk_1C[0]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_3114[var_r31].unk_64 = GWSystem.diff_story; + if (GWSystem.diff_story == 4) { + lbl_1_bss_3114[var_r31].unk_64 = fn_1_7124(); + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GWPlayerCfg[var_r31].character = lbl_1_bss_3114[var_r31].unk_68; + GWPlayerCfg[var_r31].pad_idx = lbl_1_bss_3114[var_r31].unk_6C; + GWPlayerCfg[var_r31].diff = lbl_1_bss_3114[var_r31].unk_64; + GWPlayerCfg[var_r31].group = 0; + GWPlayerCfg[var_r31].iscom = lbl_1_bss_3114[var_r31].unk_60; + } + BoardSaveInit(lbl_1_bss_A8[2]); + CharKill(-1); +} + +void fn_1_7684(void) +{ + s32 spC[7] = { 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F }; + WipeCreate(2, 0, -1); + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + CharModelKill(-1); + MGSeqKillAll(); + { + omOvlHisData *sp8 = omOvlHisGet(0); + } + omOvlHisChg(0, OVL_MSTORY3, 0, 0); + do { + fn_1_4D8(); + } while (lbl_1_bss_D8 != 1); + HuAudSeqAllFadeOut(0x3E8); + HuAudSStreamAllFadeOut(0x3E8); + CharARAMOpen(GWPlayerCfg[0].character); + CharARAMOpen(GWPlayerCfg[1].character); + CharARAMOpen(GWPlayerCfg[2].character); + CharARAMOpen(GWPlayerCfg[3].character); + omOvlCallEx(spC[GWSystem.board], 1, 0, 0); + while (TRUE) { + fn_1_4D8(); + } +} + +void fn_1_77C0(void) +{ + s32 var_r31; + + fn_1_2808(fn_1_13DEC); + fn_1_4B0(0xF0); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + } + lbl_1_bss_3108[0]->work[0] = 1; + fn_1_2808(fn_1_13F68); + fn_1_4B0(0x8C); +} + +void fn_1_7858(void) +{ + s32 var_r31; + + fn_1_4B0(0x3C); + lbl_1_bss_14[0] = HuAudSeqPlay(0x30); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + } + WipeCreate(1, 0, -1); + + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + fn_1_4B0(0x3C); +} + +void fn_1_7900(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = lbl_1_bss_DC; + sp8[3] = 60.0f; + sp8[4] = 0.0f; + sp8[8] = 0.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 850.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40++, 10.0f, 5.0f); +} + +s32 lbl_1_data_2F0 = -1; + +void fn_1_7A14(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + + _ClearFlag(2); + _ClearFlag(3); + _ClearFlag(4); + _ClearFlag(5); + _ClearFlag(6); + _ClearFlag(7); + _ClearFlag(1); + _ClearFlag(9); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + fn_1_59A0(lbl_1_bss_33AC[var_r31].unk_00, 1, 6, 5, 1); + } + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); + lbl_1_bss_3104->work[0] = 1; + var_r29 = -1; + var_r29 = HuAudFXPlay(0x43); + HuAudFXPanning(var_r29, 0x20); + var_r29 = HuAudFXPlay(0x40); + HuAudFXPanning(var_r29, 0x30); + var_r29 = HuAudFXPlay(0x37); + HuAudFXPanning(var_r29, 0x40); + var_r29 = HuAudFXPlay(0x4B); + HuAudFXPanning(var_r29, 0x4C); + var_r29 = HuAudFXPlay(0x46); + HuAudFXPanning(var_r29, 0x60); + HuAudFXPlay(0x9A); + HuAudFXPlay(0x306); + fn_1_4B0(0x96); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_4B0(0x1E); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + lbl_1_bss_33AC[var_r31].unk_04 = (MentDllUnkFunc)fn_1_127FC; + } + lbl_1_bss_33AC->unk_08 = 1; + fn_1_4B0(0x3C); + for (var_r31 = 1; var_r31 < 5; var_r31++) { + fn_1_59A0(lbl_1_bss_33AC[var_r31].unk_00, 1, 1, 0x1E, 1); + } + var_r30 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + HuWinInsertMesSet(var_r30, lbl_1_bss_3114->unk_68, 0); + fn_1_1968(var_r30, 0x1E005F, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r30); + fn_1_4B0(0x1E); + for (var_r31 = 1; var_r31 < 5; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC[3].unk_08 = 1; + lbl_1_bss_64.unk_40 = 0; + lbl_1_bss_DC = lbl_1_data_D8[3].x; + fn_1_2808(fn_1_7900); + fn_1_4B0(0x1E); + var_r30 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 6, 0xF, 1); + fn_1_1968(var_r30, 0x1E0060, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r30); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC[1].unk_08 = 1; + lbl_1_bss_64.unk_40 = 0; + lbl_1_bss_DC = lbl_1_data_D8[1].x; + fn_1_4B0(0x1E); + var_r30 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[1].unk_00, 1, 6, 0xF, 1); + fn_1_1968(var_r30, 0x1E0061, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[1].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r30); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC[4].unk_08 = 1; + lbl_1_bss_64.unk_40 = 0; + lbl_1_bss_DC = lbl_1_data_D8[4].x; + fn_1_4B0(0x1E); + var_r30 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[4].unk_00, 1, 6, 0xF, 1); + fn_1_1968(var_r30, 0x1E0062, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[4].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r30); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC[2].unk_08 = 1; + lbl_1_bss_64.unk_40 = 0; + lbl_1_bss_DC = lbl_1_data_D8[2].x; + fn_1_4B0(0x1E); + var_r30 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[2].unk_00, 1, 1, 0xF, 1); + fn_1_1968(var_r30, 0x1E0063, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[2].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r30); + lbl_1_bss_3104->work[0] = 3; + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC->unk_08 = 1; + fn_1_2808(fn_1_13F68); + fn_1_4B0(0x3C); + var_r30 = fn_1_1434(0, 0, 0); + lbl_1_data_2F0 = var_r30; + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r30, 0x1E0064, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_04 = NULL; + } +} + +void fn_1_81A8(omObjData *arg0, void *arg1, void *arg2) +{ + fn_1_1F868(); + lbl_1_bss_3114->unk_04 = NULL; +} + +void fn_1_81D8(void) +{ + lbl_1_bss_3114[0].unk_04 = (MentDllUnkFunc)fn_1_81A8; +} + +void fn_1_81F0(void) +{ + fn_1_4B0(0x3C); + HuAudSStreamPlay(0xC); + OSReport("########### ME_MainProcFunc000\n"); + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(1, 0, -1); +} + +void fn_1_824C(void) +{ + s32 var_r31; + + fn_1_4B0(0x3C); + lbl_1_bss_14[0] = HuAudSeqPlay(0x30); + if (lbl_1_bss_A8[0] == 0) { + for (var_r31 = 0; var_r31 < 6; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + } + } + else { + for (var_r31 = 0; var_r31 < 5; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + } + } + Hu3DModelPosSet(lbl_1_bss_33AC[0].unk_00->model[1], 0.0f, 0.0f, 560.0f); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 2, 0, 2); + Hu3DModelAttrSet(lbl_1_bss_35BC[0].unk_00->model[2], 1); + OSReport("########### ME_MainProcFunc400\n"); + WipeCreate(1, 0, -1); + + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + fn_1_4B0(0x3C); +} + +void fn_1_83CC(void) +{ + s32 var_r31; + + Vec sp14 = { 0.0f, 0.0f, 560.0f }; + fn_1_2808(fn_1_13DEC); + fn_1_4B0(0x5A); + if (lbl_1_bss_A8[0] == 0) { + for (var_r31 = 0; var_r31 < 6; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + } + } + else { + for (var_r31 = 0; var_r31 < 5; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + } + } + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); + fn_1_4B0(0x96); + lbl_1_bss_3108[0]->work[0] = 1; + fn_1_2808(fn_1_13F68); + fn_1_4B0(0x5A); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 2, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[0].unk_00, 1, sp14, 0.0f, 3.0f, 0.0f, 1, 0); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + Hu3DModelAttrSet(lbl_1_bss_35BC[0].unk_00->model[2], 1); + fn_1_4B0(0x1E); +} + +void fn_1_85C8(void) +{ + s32 var_r31; + s32 var_r30; + + lbl_1_bss_14[0] = HuAudSeqPlay(0x30); + var_r31 = fn_1_1434(0, 0, 0); + HuAudFXPlay(lbl_1_data_0[0][0]); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1A0000, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + saveExecF = 0; + if (GWGameStat.party_continue == 1) { + var_r31 = fn_1_1434(0, 0, 0); + while (TRUE) { + fn_1_4D8(); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1A0001, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r30 = fn_1_1A5C(0x1E0035, 3, 0); + if (var_r30 == -1) { + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1A0003, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r30 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r30 == 0) { + fn_1_16AC(var_r31); + fn_1_C174(0); + } + continue; + } + if (var_r30 == 0) { + HuAudFXPlay(lbl_1_data_0[0][3]); + saveExecF = 1; + SLLoadBoard(); + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); + fn_1_16AC(var_r31); + fn_1_C174(1); + continue; + } + if (var_r30 == 1) { + break; + } + } + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1A0002, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + } +} + +void fn_1_88A4(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = fn_1_1434(0, 0, 0); + HuAudFXPlay(lbl_1_data_0[0][3]); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r30, 0x1A0004, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r29 = fn_1_1DD8(0x1E0035, 3, 0); + fn_1_16AC(var_r30); + if (var_r29 == 0) { + s32 spC[4] = { 3, 0, 2, 4 }; + _SetFlag(0x1000B); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GWPlayerCfg[var_r31].character = spC[var_r31]; + GWPlayerCfg[var_r31].pad_idx = var_r31; + GWPlayerCfg[var_r31].diff = 0; + GWPlayerCfg[var_r31].group = 0; + GWPlayerCfg[var_r31].iscom = 1; + OSReport("ID-%d CHR-%d PAD-%d DIF-%d GRP-%d COM-%d\n", var_r31, GWPlayerCfg[var_r31].character, GWPlayerCfg[var_r31].pad_idx, + GWPlayerCfg[var_r31].diff, GWPlayerCfg[var_r31].group, GWPlayerCfg[var_r31].iscom); + } + BoardSaveInit(6); + GWSystem.max_turn = 0x14; + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); + { + omOvlHisData *sp8 = omOvlHisGet(0); + } + omOvlHisChg(0, OVL_MENT, 0, 1); + fn_1_C174(2); + } + else { + _ClearFlag(0x1000B); + } + fn_1_14BA8(); +} + +void fn_1_8B40(s32 arg0) +{ + fn_1_2055C(arg0); +} + +s32 fn_1_8B68(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r26; + s32 var_r27; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + var_r30 = 0; + var_r23 = 0; + var_r28 = 0; + if (lbl_1_bss_A8[0] == 5) { + var_r28 = 3; + } + var_r27 = fn_1_1434(0, 0, 0); + HuAudFXPlay(lbl_1_data_0[var_r28][2]); + while (TRUE) { + fn_1_4D8(); + fn_1_4D8(); + fn_1_5818(lbl_1_bss_33AC[var_r28].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r27, 0x1A0005, -1, -1); + fn_1_5818(lbl_1_bss_33AC[var_r28].unk_00, 1, 1, 0xF, 1); + fn_1_2154(0x1A0021); + fn_1_208F4(); + lbl_1_bss_35BC[0].unk_04 = (MentDllUnkFunc)fn_1_1FF4C; + var_r25 = 0x63; + var_r23 = 0; + while (TRUE) { + fn_1_4D8(); + var_r30 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_70[3] == 0) { + var_r30++; + } + } + if (var_r25 != var_r30) { + var_r25 = var_r30; + fn_1_1968(var_r27, var_r30 + 0x1A001B, -1, -0x3E7); + } + if (lbl_1_bss_35BC[0].unk_1C[0] != 0) { + continue; + } + if (HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_A) { + var_r29 = 1; + HuAudFXPlay(2); + lbl_1_bss_35BC[0].unk_04 = NULL; + fn_1_4B0(2); + var_r26 = 0; + var_r30 = var_r26; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 == 0) { + var_r26++; + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r30 < var_r26) { + if (HuPadStatGet(var_r31) != -1) { + var_r30++; + lbl_1_bss_3114[var_r31].unk_60 = 0; + } + else { + lbl_1_bss_3114[var_r31].unk_60 = 1; + } + } + } + break; + } + else if (HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B) { + var_r29 = 0; + HuAudFXPlay(3); + break; + } + } + fn_1_20A24(); + lbl_1_bss_35BC[0].unk_04 = NULL; + fn_1_2318(0); + if (var_r29 == 0) { + fn_1_59A0(lbl_1_bss_33AC[var_r28].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r27, 0x1A0003, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[var_r28].unk_00, 1, 1, 0xF, 1); + var_r24 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r24 == 0) { + fn_1_16AC(var_r27); + fn_1_C174(0); + } + } + else if (var_r29 == 1) { + break; + } + } + fn_1_16AC(var_r27); + var_r30 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 == 0) { + var_r30++; + } + } + if (var_r30 == 0) { + var_r29 = 2; + } + else { + var_r29 = 1; + } + return var_r29; +} + +void fn_1_8F44(void) +{ + s32 var_r31; + + fn_1_207BC(); + fn_1_15950(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_3114[var_r31].unk_68 = var_r31; + } +} + +void fn_1_8F98(void) +{ + fn_1_14CE0(); +} + +s32 fn_1_8FB8(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r26 = 0; + var_r29 = 0; + if (lbl_1_bss_A8[0] == 5) { + var_r29 = 3; + } + fn_1_15950(); + var_r27 = fn_1_1434(0, 0, 0); + HuWinPushKeySet(var_r27, 0x300); + HuAudFXPlay(lbl_1_data_0[var_r29][2]); + fn_1_4D8(); + fn_1_5818(lbl_1_bss_33AC[var_r29].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r27, 0x1A0009, -1, -1); + fn_1_5818(lbl_1_bss_33AC[var_r29].unk_00, 1, 1, 0xF, 1); + fn_1_2154(0x1A0020); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 == 0) { + lbl_1_bss_3114[var_r31].unk_04 = (MentDllUnkFunc)fn_1_15CB4; + } + } + while (TRUE) { + fn_1_4D8(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if ((lbl_1_bss_3114[var_r31].unk_60 == 0) && (HuPadBtnDown[lbl_1_bss_3114[var_r31].unk_6C] & PAD_BUTTON_A)) { + var_r26 = 1; + } + } + if ((lbl_1_bss_3114[0].unk_70[0] == 0) && (HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B)) { + HuAudFXPlay(3); + var_r30 = 0; + break; + } + else { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if ((lbl_1_bss_3114[var_r31].unk_60 == 0) && (lbl_1_bss_3114[var_r31].unk_70[0] != 1)) { + break; + } + } + if (var_r31 == 4) { + var_r30 = 2; + break; + } + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_3114[var_r31].unk_04 = NULL; + } + fn_1_2318(0); + fn_1_16AC(var_r27); + if (var_r30 == 2) { + var_r28 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 != 0) { + lbl_1_bss_3114[var_r31].unk_68 = 0; + var_r28++; + } + } + if (var_r28 == 0) { + var_r30 = 3; + } + else { + var_r30 = 2; + } + } + else { + var_r30 = 0; + } + return var_r30; +} + +s32 fn_1_92CC(void) +{ + s32 sp8; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + var_r30 = -1; + var_r26 = -1; + var_r24 = -1; + sp8 = 0; + var_r25 = 0; + if (lbl_1_bss_A8[0] == 5) { + var_r25 = 3; + } + var_r27 = fn_1_1434(0, 0, 0); + HuAudFXPlay(lbl_1_data_0[var_r25][3]); + var_r28 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 != 0) { + var_r28++; + } + } + HuWinInsertMesSet(var_r27, var_r28 + 0x1A0023, 1); + fn_1_59A0(lbl_1_bss_33AC[var_r25].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r27, 0x1A0007, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[var_r25].unk_00, 1, 1, 0xF, 1); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 != 0) { + lbl_1_bss_3114[var_r31].unk_68 = lbl_1_bss_3114[var_r31].unk_64 = 0; + } + } +loop_12: + fn_1_4D8(); + fn_1_2154(0x1A0020); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if ((lbl_1_bss_3114[var_r31].unk_60 != 0) && (lbl_1_bss_3114[var_r31].unk_70[0] == 0)) { + var_r30 = var_r31; + lbl_1_bss_3114[var_r31].unk_70[1] = var_r26; + fn_1_173FC(&lbl_1_bss_3114[var_r31]); + lbl_1_bss_3114[var_r31].unk_04 = (MentDllUnkFunc)fn_1_16B68; + } + } +loop_18: + fn_1_4D8(); + if ((var_r24 != lbl_1_bss_3114[var_r30].unk_68) && (lbl_1_bss_3114[var_r30].unk_70[0] == 0)) { + var_r24 = lbl_1_bss_3114[var_r30].unk_68; + fn_1_1968(var_r27, lbl_1_bss_3114[var_r30].unk_68 + 0x1B0008, -1, -0x3E7); + } + if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B) && (lbl_1_bss_3114[var_r30].unk_70[0] == 0)) { + HuAudFXPlay(3); + if (var_r26 == -1) { + var_r29 = 0; + } + else { + var_r29 = 1; + } + } + else if (lbl_1_bss_3114[var_r30].unk_70[0] == 1) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_70[0] == 0) { + lbl_1_bss_3114[var_r31].unk_68 = 0; + } + } + lbl_1_bss_3114[var_r30].unk_04 = NULL; + fn_1_1968(var_r27, 0x1A0022, -1, -0x3E7); + fn_1_2154(0x1A0023); + var_r29 = fn_1_1648C(&lbl_1_bss_3114[var_r30]); + if (var_r29 == 1) { + lbl_1_bss_3114[var_r30].unk_70[2] = 1; + var_r29 = 4; + var_r26 = var_r30; + } + else { + lbl_1_bss_3114[var_r30].unk_70[2] = 0; + var_r29 = 4; + lbl_1_bss_3114[var_r30].unk_70[0] = 0; + fn_1_17914(&lbl_1_bss_3114[var_r30]); + fn_1_173FC(&lbl_1_bss_3114[var_r30]); + } + } + else { + goto loop_18; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_3114[var_r31].unk_04 = NULL; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_70[0] == 0) { + break; + } + } + if (var_r31 == 4) { + var_r29 = 3; + } + else { + if (var_r29 == 1) { + fn_1_173FC(&lbl_1_bss_3114[var_r30]); + fn_1_17914(&lbl_1_bss_3114[var_r30]); + fn_1_173FC(&lbl_1_bss_3114[lbl_1_bss_3114[var_r30].unk_70[1]]); + var_r26 = lbl_1_bss_3114[lbl_1_bss_3114[var_r30].unk_70[1]].unk_70[1]; + lbl_1_bss_3114[lbl_1_bss_3114[var_r30].unk_70[1]].unk_70[0] = 0; + } + else if (var_r29 == 4) { + goto loop_12; + } + else if (var_r29 == 0) { + fn_1_17914(&lbl_1_bss_3114[var_r30]); + var_r24 = -1; + } + } + fn_1_2318(0); + fn_1_16AC(var_r27); + if (var_r29 == 0) { + var_r28 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 == 0) { + var_r28++; + } + } + if (var_r28 != 0) { + var_r29 = 1; + } + else { + var_r29 = 0; + } + } + return var_r29; +} + +void fn_1_98E4(void) +{ + s32 var_r31; + s32 var_r30; + + fn_1_15098(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (lbl_1_bss_3114[var_r31].unk_60 == 1) { + lbl_1_bss_3114[var_r31].unk_70[var_r30] = 0; + lbl_1_bss_3114[var_r31].unk_80[var_r30] = 0; + fn_1_17914(&lbl_1_bss_3114[var_r31]); + } + } + } +} + +void fn_1_99AC(void) +{ + fn_1_1811C(); +} + +s32 fn_1_99CC(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s16 var_r26; + + s32 sp8[6] = { + 0x00000001, + 0x00000002, + 0x00000000, + 0x00000003, + 0x00000004, + 0x00000005, + }; + var_r30 = 2; + var_r27 = fn_1_1434(0, 0, 0); +loop_1: + fn_1_4D8(); + var_r28 = 0; + lbl_1_bss_33AC->unk_34 = 1; + HuAudFXPlay(lbl_1_data_0[0][3]); + fn_1_59A0(lbl_1_bss_33AC[sp8[var_r30]].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r27, 0x1A0008, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[sp8[var_r30]].unk_00, 1, 1, 0xF, 1); + fn_1_2154(0x1A0020); + for (var_r31 = 0; var_r31 < 6; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + lbl_1_bss_33AC[var_r31].unk_04 = (MentDllUnkFunc)fn_1_127FC; + } + lbl_1_bss_33AC[sp8[var_r30]].unk_08 = 1; + lbl_1_bss_35BC[0].unk_04 = (MentDllUnkFunc)fn_1_18F74; +loop_5: + fn_1_4D8(); + for (var_r31 = 0; var_r31 < 6; var_r31++) { + if (lbl_1_bss_33AC[var_r31].unk_08 == 2) { + break; + } + } + if (var_r31 != 6) { + block_29: + if (var_r28 == 0) { + if (var_r30 != 5) { + fn_1_2808(fn_1_14058); + } + else { + fn_1_2808(fn_1_14148); + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC[sp8[var_r30]].unk_08 = 1; + } + var_r28++; + if ((var_r28 == 0x14) != 0) { + var_r28 = 0x15; + fn_1_18A54(sp8[var_r30]); + fn_1_1968(var_r27, sp8[var_r30] + 0x1B0001, -1, -0x3E7); + if (sp8[var_r30] != 0) { + HuAudFXPlay(lbl_1_data_0[sp8[var_r30]][0]); + } + else { + HuAudFXPlay(lbl_1_data_0[sp8[var_r30]][2]); + } + } + goto loop_5; + } + if (var_r28 < 0x15) { + goto block_29; + } + if (HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r29 = 0; + } + else if (HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_A) { + HuAudFXPlay(2); + var_r29 = 2; + } + else { + if ((HuPadStkX[lbl_1_bss_3114->unk_6C] >= 0x32) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 2) != 0)) { + if (lbl_1_bss_A8[4] == 1) { + var_r30++; + if (var_r30 > 5) { + var_r30 = 5; + } + else { + var_r28 = 0; + } + } + else { + var_r30++; + if (var_r30 > 4) { + var_r30 = 4; + } + else { + var_r28 = 0; + } + } + } + else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] <= -0x32) || (HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_LEFT)) { + var_r30--; + if (var_r30 < 0) { + var_r30 = 0; + } + else { + var_r28 = 0; + } + } + goto block_29; + } + fn_1_2318(0); + switch (var_r29) { + case 0: + fn_1_2808(fn_1_14058); + if (var_r30 != 2) { + var_r30 = 2; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC[sp8[2]].unk_08 = 1; + } + fn_1_18DCC(); + fn_1_4B0(0x1E); + break; + case 1: + fn_1_2808(fn_1_14058); + if (var_r30 != 2) { + var_r30 = 2; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC[sp8[2]].unk_08 = 1; + } + fn_1_18DCC(); + fn_1_4B0(0x1E); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r27, 0x1A0003, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r26 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r26 == 0) { + fn_1_16AC(var_r27); + fn_1_C174(0); + } + goto loop_1; + case 2: + for (var_r31 = 0; var_r31 < 6; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_04 = NULL; + } + lbl_1_bss_A8[2] = sp8[var_r30]; + break; + } + fn_1_16AC(var_r27); + if (var_r29 == 0) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 == 0) { } + } + if (var_r31 != 4) { + var_r29 = 2; + } + else { + var_r29 = 1; + } + } + else { + var_r29 = 3; + } + return var_r29; +} + +void fn_1_A0A4(void) +{ + fn_1_1850C(); +} + +void fn_1_A0C4(void) +{ + s32 var_r31; + + var_r31 = lbl_1_bss_A8[2]; + fn_1_1850C(); + HuAudFXPlay(lbl_1_data_0[var_r31][3]); + if (var_r31 != 5) { + Vec sp2C = { -350.0f, 0.0f, 800.0f }; + fn_1_2808(fn_1_14238); + fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[var_r31].unk_00, 1, sp2C, 30.0f, 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 1, 0xF, 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[0].unk_00->model[2], 1); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 2, 0, 0); + fn_1_5CDC(lbl_1_bss_35BC[0].unk_00, 2, 0); + } + else { + Vec sp20 = { 850.0f, 0.0f, 800.0f }; + fn_1_2808(fn_1_14328); + fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[var_r31].unk_00, 1, sp20, 30.0f, 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 1, 0xF, 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[1].unk_00->model[2], 1); + fn_1_5818(lbl_1_bss_35BC[1].unk_00, 2, 2, 0, 0); + fn_1_5CDC(lbl_1_bss_35BC[1].unk_00, 2, 0); + } +} + +void fn_1_A39C(void) +{ + fn_1_1C754(); +} + +s32 fn_1_A3BC(void) +{ + char sp8[10]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r27 = -1; + var_r26 = -1; + var_r30 = lbl_1_bss_A8[2]; + var_r31 = fn_1_1434(0, 0, 0); + if (var_r30 == 0) { + HuAudFXPlay(lbl_1_data_0[var_r30][2]); + } + else { + HuAudFXPlay(lbl_1_data_0[var_r30][0]); + } +loop_3: + fn_1_4D8(); + var_r27 = var_r26 = -1; + fn_1_59A0(lbl_1_bss_33AC[var_r30].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, var_r30 + 0x1A000A, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[var_r30].unk_00, 1, 1, 0xF, 1); + fn_1_2154(0x1A0021); + lbl_1_bss_35BC[0].unk_08[1] = 0; + fn_1_1C554(); + lbl_1_bss_35BC[1].unk_04 = (MentDllUnkFunc)fn_1_19C98; +loop_4: + fn_1_4D8(); + if ((var_r27 != lbl_1_bss_35BC[1].unk_08[0]) || var_r26 != lbl_1_bss_35BC[1].unk_1C[lbl_1_bss_35BC[1].unk_08[0]]) { + var_r27 = lbl_1_bss_35BC[1].unk_08[0]; + var_r26 = lbl_1_bss_35BC[1].unk_1C[lbl_1_bss_35BC[1].unk_08[0]]; + switch (lbl_1_bss_35BC[1].unk_08[0]) { + case 0: + switch (lbl_1_bss_35BC[1].unk_1C[0]) { + case 0: + fn_1_1968(var_r31, 0x1B0015, -1, -0x3E7); + break; + case 1: + HuWinInsertMesSet(var_r31, 0x1B001E, 0); + HuWinInsertMesSet(var_r31, 0x1B001F, 1); + HuWinInsertMesSet(var_r31, 0x1B0020, 2); + fn_1_1968(var_r31, 0x1B0016, -1, -0x3E7); + break; + case 2: + HuWinInsertMesSet(var_r31, 0x1B001F, 0); + HuWinInsertMesSet(var_r31, 0x1B001E, 1); + HuWinInsertMesSet(var_r31, 0x1B0020, 2); + fn_1_1968(var_r31, 0x1B0016, -1, -0x3E7); + break; + case 3: + HuWinInsertMesSet(var_r31, 0x1B0020, 0); + HuWinInsertMesSet(var_r31, 0x1B001E, 1); + HuWinInsertMesSet(var_r31, 0x1B001F, 2); + fn_1_1968(var_r31, 0x1B0016, -1, -0x3E7); + break; + } + break; + case 1: + sprintf(sp8, "%d", lbl_1_bss_35BC[1].unk_1C[1]); + HuWinInsertMesSet(var_r31, MAKE_MESSID_PTR(sp8), 0); + fn_1_1968(var_r31, 0x1B0017, -1, -0x3E7); + break; + case 2: + fn_1_1968(var_r31, lbl_1_bss_35BC[1].unk_1C[2] + 0x1B0018, -1, -0x3E7); + break; + case 3: + fn_1_1968(var_r31, lbl_1_bss_35BC[1].unk_1C[3] + 0x1B001B, -1, -0x3E7); + break; + case 4: + HuWinInsertMesSet(var_r31, lbl_1_bss_3114[lbl_1_bss_35BC[1].unk_1C[4]].unk_68, 0); + fn_1_1968(var_r31, 0x1B001D, -1, -0x3E7); + break; + } + } + if (lbl_1_bss_35BC[0].unk_08[3] != 0) { + goto loop_4; + } + if (lbl_1_bss_35BC[0].unk_08[1] == -1) { + fn_1_1C674(); + var_r29 = 0; + } + else if (lbl_1_bss_35BC[0].unk_08[1] == 1) { + fn_1_1C674(); + var_r29 = 2; + } + else { + goto loop_4; + } + fn_1_2318(0); + lbl_1_bss_35BC[1].unk_04 = NULL; + fn_1_1C674(); + if (var_r29 == 0) { + var_r29 = 1; + } + else if (var_r29 == 1) { + fn_1_59A0(lbl_1_bss_33AC[var_r30].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1A0003, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[var_r30].unk_00, 1, 1, 0xF, 1); + var_r28 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r28 == 0) { + fn_1_16AC(var_r31); + fn_1_C174(0); + } + goto loop_3; + } + else if (var_r29 == 2) { + HuAudFXPlay(lbl_1_data_0[var_r30][2]); + fn_1_1968(var_r31, 0x1B0000, -1, 5); + var_r28 = fn_1_1A5C(0x1E0035, 3, 0); + if (var_r28 == 0) { + var_r29 = 0x63; + } + else { + fn_1_1968(var_r31, 0x1B0007, -1, 5); + var_r28 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r28 == 0) { + var_r29 = 0; + } + else { + goto loop_3; + } + } + } + else { + goto loop_3; + } + fn_1_16AC(var_r31); + return var_r29; +} + +void fn_1_A990(void) +{ + fn_1_1C990(); +} + +void fn_1_A9B0(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r30 = lbl_1_bss_A8[2]; + { + Vec sp14 = { -120.0f, 0.0f, 670.0f }; + if (lbl_1_bss_A8[2] == 5) { + var_r31 = 1; + } + else { + var_r31 = 0; + } + for (var_r29 = 0; var_r29 < 6; var_r29++) { + Hu3DModelAttrSet(lbl_1_bss_33AC[var_r29].unk_00->model[1], 1); + } + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r30].unk_00->model[1], 1); + fn_1_11908(lbl_1_bss_35BC[var_r31].unk_00, lbl_1_bss_A8[2]); + Hu3DModelAttrReset(lbl_1_bss_35BC[var_r31].unk_00->model[4], 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[var_r31].unk_00->model[5], 1); + lbl_1_bss_35BC[var_r31].unk_04 = (MentDllUnkFunc)fn_1_1184C; + if (var_r30 == 5) { + sp14.x += 1200.0f; + } + fn_1_5818(lbl_1_bss_33AC[var_r30].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[var_r30].unk_00, 1, sp14, 5.0f, 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[var_r30].unk_00, 1, 1, 0xF, 1); + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); + fn_1_4B0(0x1E); + fn_1_5818(lbl_1_bss_35BC[var_r31].unk_00, 2, 3, 0, 0); + var_r28 = fn_1_1434(0, 0, 0); + HuAudFXPlay(lbl_1_data_0[var_r30][0]); + fn_1_59A0(lbl_1_bss_33AC[var_r30].unk_00, 1, 5, 0xF, 1); + fn_1_1968(var_r28, var_r30 + 0x1A0010, -1, -1); + fn_1_16AC(var_r28); + HuAudSeqFadeOut(lbl_1_bss_14[0], 0xBB8); + fn_1_5CDC(lbl_1_bss_35BC[var_r31].unk_00, 2, 0); + Hu3DModelAttrSet(lbl_1_bss_35BC[var_r31].unk_00->model[2], 1); + fn_1_2808(fn_1_14418); + fn_1_4B0(0xA); + HuAudFXPlay(GWPlayerCfg->character + 0x75); + HuAudFXPlay(GWPlayerCfg[1].character + 0x75); + HuAudFXPlay(GWPlayerCfg[2].character + 0x75); + HuAudFXPlay(GWPlayerCfg[3].character + 0x75); + fn_1_4B0(0x8C); + } +} + +void fn_1_AD78(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + s32 sp20[6] = { 1, 2, 0, 3, 4, 5 }; + var_r30 = lbl_1_bss_A8[2]; + var_r29 = lbl_1_bss_A8[2]; + if (var_r30 != 5) { + var_r28 = 0; + } + else { + var_r28 = 1; + } + fn_1_5818(lbl_1_bss_35BC[var_r28].unk_00, 2, 3, 0, 0); + fn_1_5CDC(lbl_1_bss_35BC[var_r28].unk_00, 2, 0); + Hu3DModelAttrSet(lbl_1_bss_35BC[0].unk_00->model[2], 1); + Hu3DModelAttrSet(lbl_1_bss_35BC[1].unk_00->model[2], 1); + if (var_r30 != 5) { + fn_1_2808(fn_1_146D0); + } + else { + fn_1_2808(fn_1_147C0); + } + { + Vec sp14 = { 0.0f, 0.0f, 560.0f }; + sp14.x = lbl_1_data_D8[var_r30].x; + fn_1_5818(lbl_1_bss_33AC[var_r30].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[var_r30].unk_00, 1, sp14, lbl_1_data_120[var_r30], 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[var_r30].unk_00, 1, 1, 0xF, 1); + for (var_r31 = 0; var_r31 < 6; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + lbl_1_bss_33AC[var_r31].unk_04 = (MentDllUnkFunc)fn_1_127FC; + } + lbl_1_bss_33AC[sp20[var_r29]].unk_08 = 1; + fn_1_2808(fn_1_14058); + if (var_r29 != 2) { + var_r29 = 2; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + lbl_1_bss_33AC[var_r31].unk_08 = 0; + } + lbl_1_bss_33AC[sp20[var_r29]].unk_08 = 1; + } + fn_1_18DCC(); + fn_1_4B0(0x1E); + } +} + +void fn_1_B084(void) +{ + s32 sp28; + s32 sp24; + s32 sp20; + s32 sp1C; + s32 sp18; + float sp14; + s32 sp10; + s32 spC; + s32 sp8; + s32 var_r31; + MentDllUnkBss3114Struct *var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + MentDllUnkBss3114Struct *var_r26; + MentDllUnkBss33ACStruct *var_r25; + MentDllUnkBss35BCStruct *var_r24; + + var_r28 = lbl_1_bss_A8[2]; + if (var_r28 != 5) { + var_r27 = 0; + } + else { + var_r27 = 1; + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + if (var_r31 != var_r28) { + Hu3DModelAttrSet(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + } + } + fn_1_5818(lbl_1_bss_35BC[var_r27].unk_00, 2, 3, 0, 0); + fn_1_5CDC(lbl_1_bss_35BC[var_r27].unk_00, 2, 0); + if (var_r28 != 5) { + fn_1_2808(fn_1_146D0); + } + else { + fn_1_2808(fn_1_147C0); + } + { + Vec sp2C = { 0.0f, 0.0f, 460.0f }; + + if (var_r28 == 5) { + sp2C.x = 1200.0f; + } + fn_1_5818(lbl_1_bss_33AC[var_r28].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[var_r28].unk_00, 1, sp2C, 0.0f, 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[var_r28].unk_00, 1, 1, 0xF, 1); + fn_1_5818(lbl_1_bss_35BC[var_r27].unk_00, 2, 2, 0, 0); + fn_1_5CDC(lbl_1_bss_35BC[var_r27].unk_00, 2, 0); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 2); + Hu3DModelAttrReset(lbl_1_bss_35BC[0].unk_00->model[2], 1); + if (var_r28 == 5) { + fn_1_2808(fn_1_14058); + } + fn_1_4B0(0x1E); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = &lbl_1_bss_3114[var_r31]; + var_r26 = &lbl_1_bss_3114[var_r31]; + var_r30->unk_58 = var_r31; + var_r30->unk_5C = 0; + var_r30->unk_60 = var_r30->unk_58; + if (var_r30->unk_60 > 0) { + var_r30->unk_60 = 1; + } + var_r30->unk_64 = 0; + var_r30->unk_68 = var_r30->unk_58; + var_r30->unk_6C = var_r30->unk_58; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r30->unk_70[0] = var_r30->unk_70[1] = 0; + } + for (var_r29 = 0; var_r29 < 5; var_r29++) { + var_r26->unk_08 = var_r26->unk_0C = 0; + } + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + var_r25 = &lbl_1_bss_33AC[var_r31]; + for (var_r29 = 0; var_r29 < 5; var_r29++) { + var_r25->unk_08 = var_r25->unk_0C = 0; + } + Hu3DModelPosSet(lbl_1_bss_33AC[var_r31].unk_00->model[1], lbl_1_data_D8[var_r31].x, lbl_1_data_D8[var_r31].y, lbl_1_data_D8[var_r31].z); + Hu3DModelRotSet(lbl_1_bss_33AC[var_r31].unk_00->model[1], 0.0f, lbl_1_data_120[var_r31], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r24 = &lbl_1_bss_35BC[var_r31]; + for (var_r29 = 0; var_r29 < 5; var_r29++) { + var_r24->unk_08[0] = var_r24->unk_08[1] = 0; + } + Hu3DModelAttrSet(lbl_1_bss_35BC[1].unk_00->model[2], 1); + } + fn_1_14BA8(); + fn_1_179DC(); + fn_1_1872C(); + fn_1_190E8(); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); + fn_1_5CDC(lbl_1_bss_35BC[0].unk_00, 2, 0); + Hu3DModelAttrSet(lbl_1_bss_35BC[0].unk_00->model[2], 1); + { + Vec sp20 = { 0.0f, 0.0f, 560.0f }; + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 2, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[0].unk_00, 1, sp20, 0.0f, 3.0f, 0.0f, 1, 0); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + } + } +} + +void fn_1_B654(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r22; + s32 var_r21; + s32 var_r20; + + var_r30 = 0xA; + var_r29 = 0; + if (lbl_1_bss_A8[1] == 0) { + fn_1_81F0(); + fn_1_83CC(); + fn_1_85C8(); + fn_1_88A4(); + } + else { + fn_1_824C(); + fn_1_88A4(); + } + do { + fn_1_4D8(); + switch (var_r30) { + case 10: + var_r30 = 0; + fn_1_2055C(var_r29); + var_r29 = fn_1_8B68(); + fn_1_8F44(); + break; + case 0: + var_r30 = 1; + fn_1_14CE0(); + while (TRUE) { + fn_1_4D8(); + switch (var_r29) { + case 1: + var_r29 = fn_1_8FB8(); + break; + case 2: + var_r29 = fn_1_92CC(); + break; + } + if (var_r29 == 0) { + var_r30 = 0xA; + break; + } + else if (var_r29 == 3) { + break; + } + } + fn_1_98E4(); + break; + case 1: + var_r30 = 2; + fn_1_1811C(); + var_r29 = fn_1_99CC(); + if (var_r29 != 3) { + fn_1_1850C(); + var_r30 = 0; + } + else { + fn_1_A0C4(); + } + break; + case 2: + fn_1_1C754(); + var_r30 = fn_1_A3BC(); + fn_1_1C990(); + switch (var_r30) { + case 0: + var_r30 = 0xA; + var_r29 = 0; + fn_1_B084(); + break; + case 1: + var_r30 = 1; + fn_1_AD78(); + break; + } + break; + } + } while (var_r30 != 0x63); + if (lbl_1_bss_35BC[1].unk_1C[0] == 0) { + var_r21 = 0; + } + else { + var_r21 = 1; + } + if (lbl_1_bss_35BC[1].unk_1C[3] == 0) { + var_r20 = 1; + } + else { + var_r20 = 0; + } + switch (lbl_1_bss_35BC[1].unk_1C[2]) { + case 0: + var_r22 = 0; + break; + case 1: + var_r22 = 1; + break; + case 2: + var_r22 = 2; + break; + default: + var_r22 = 0; + break; + } + { + s32 var_r19 = lbl_1_bss_35BC[1].unk_1C[1]; + s32 var_r18 = lbl_1_bss_35BC[1].unk_08[1]; + s32 var_r17 = lbl_1_bss_35BC[1].unk_08[2]; + s32 sp18 = lbl_1_bss_35BC[1].unk_08[3]; + s32 sp14 = lbl_1_bss_35BC[1].unk_08[4]; + BoardPartyConfigSet(var_r21, var_r20, var_r22, var_r19, var_r18, var_r17, sp18, sp14); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GWPlayerCfg[var_r31].character = lbl_1_bss_3114[var_r31].unk_68; + GWPlayerCfg[var_r31].pad_idx = lbl_1_bss_3114[var_r31].unk_6C; + GWPlayerCfg[var_r31].diff = lbl_1_bss_3114[var_r31].unk_64; + GWPlayerCfg[var_r31].group = 0; + GWPlayerCfg[var_r31].iscom = lbl_1_bss_3114[var_r31].unk_60; + } + if (var_r21 == 1) { + switch (lbl_1_bss_35BC[1].unk_1C[0]) { + case 1: + GWPlayerCfg[2].group = GWPlayerCfg[3].group = 1; + break; + case 2: + GWPlayerCfg[1].group = GWPlayerCfg[3].group = 1; + break; + case 3: + GWPlayerCfg[1].group = GWPlayerCfg[2].group = 1; + break; + default: + GWPlayerCfg[2].group = GWPlayerCfg[3].group = 1; + break; + } + } + BoardSaveInit(lbl_1_bss_A8[2]); + fn_1_A9B0(); + if (lbl_1_bss_A8[2] != 5) { + WipeColorSet(0xFF, 0xFF, 0xFF); + } + else { + WipeColorSet(0, 0, 0); + } + fn_1_C174(3); +} + +void fn_1_C174(s32 arg0) +{ + s32 spC[7] = { 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F }; + if (arg0 == 0 || arg0 == 1 || arg0 == 2) { + fn_1_4B0(0x3C); + HuAudSeqFadeOut(lbl_1_bss_14[0], 0x3E8); + } + WipeCreate(2, 0, -1); + + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + CharModelKill(-1); + MGSeqKillAll(); + + if (arg0 != 0) { + if (arg0 == 1 || arg0 == 3) { + omOvlHisData *sp8 = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY3, 0, 0); + } + do { + fn_1_4D8(); + } while (lbl_1_bss_D8 != 1); + CharARAMOpen(GWPlayerCfg[0].character); + CharARAMOpen(GWPlayerCfg[1].character); + CharARAMOpen(GWPlayerCfg[2].character); + CharARAMOpen(GWPlayerCfg[3].character); + HuAudSeqAllFadeOut(0x3E8); + HuAudSStreamAllFadeOut(0x3E8); + } + + switch (arg0) { + case 0: + omOvlReturnEx(1, 1); + break; + case 2: + omOvlCallEx(spC[6], 1, 0, 0); + break; + case 1: + case 3: + omOvlCallEx(spC[GWSystem.board], 1, 0, 0); + break; + } + while (TRUE) { + fn_1_4D8(); + } +} + +s32 fn_1_C354(s32 arg0) +{ + if (arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2)) != 0) { + return 1; + } + if (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3)) != 0) { + return 1; + } + if (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4)) != 0) { + return 1; + } + if (arg0 == 3 && _CheckFlag(FLAG_ID_MAKE(0, 5)) != 0) { + return 1; + } + if (arg0 == 4 && _CheckFlag(FLAG_ID_MAKE(0, 6)) != 0) { + return 1; + } + if (arg0 == 5 && _CheckFlag(FLAG_ID_MAKE(0, 7)) != 0) { + return 1; + } + return 0; +} + +s32 fn_1_C440(void) +{ + if ((_CheckFlag(FLAG_ID_MAKE(0, 2)) != 0) && (_CheckFlag(FLAG_ID_MAKE(0, 3)) != 0) && (_CheckFlag(FLAG_ID_MAKE(0, 4)) != 0) + && (_CheckFlag(FLAG_ID_MAKE(0, 5)) != 0) && (_CheckFlag(FLAG_ID_MAKE(0, 6)) != 0)) { + return 1; + } + return 0; +} + +void fn_1_C4B8(void) +{ + s32 var_r31; + s32 var_r28; + + var_r31 = fn_1_1434(0, 0, 0); + lbl_1_bss_14[0] = HuAudSeqPlay(0x30); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1E005C, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + saveExecF = 0; + if (GWGameStat.story_continue != 1) { + return; + } + var_r31 = fn_1_1434(0, 0, 0); + while (TRUE) { + fn_1_4D8(); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1E0001, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r28 = fn_1_1A5C(0x1E0035, 3, 0); + if (var_r28 == -1) { + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1E0003, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r28 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r28 == 0) { + fn_1_16AC(var_r31); + fn_1_C174(0); + } + continue; + } + if (var_r28 == 0) { + fn_1_16AC(var_r31); + SLLoadBoardStory(); + if (_CheckFlag(FLAG_ID_MAKE(0, 7)) != 0 && _CheckFlag(FLAG_ID_MAKE(0, 9)) != 0) { + OSReport("########## Next to Ending\n"); + fn_1_E654(1); + omOvlGotoEx(OVL_MSTORY2, 1, 4, 0); + } + else { + if (_CheckFlag(0x10000) != 0) { + OSReport("########### Next to Turn\n"); + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); + fn_1_4D8(); + fn_1_E71C(0); + } + else { + if (fn_1_C354(GWSystem.board) != 0) { + if (_CheckFlag(FLAG_ID_MAKE(0, 9)) != 0) { + if (fn_1_C440() != 0) { + OSReport("########## Next to MapSelect KoopaEvent\n"); + fn_1_E654(1); + omOvlGotoEx(OVL_MSTORY2, 1, 0, 0); + } + else { + OSReport("########## Next to MapSelect NormalEvent\n"); + fn_1_E654(1); + omOvlGotoEx(OVL_MENT, 1, 0xA, 0); + } + } + else if (GWSystem.board == 5) { + OSReport("########## Next to BoardClear KoopaEvent\n"); + fn_1_E654(0); + omOvlGotoEx(OVL_MSTORY2, 1, 1, 0); + } + else { + OSReport("########## Next to BoardClear NormalEvent\n"); + fn_1_E654(0); + omOvlGotoEx(OVL_MSTORY, 1, 0, 0); + } + } + else { + if (_CheckFlag(FLAG_ID_MAKE(0, 9)) != 0) { + if (GWSystem.board == 5) { + OSReport("########## Next to BoardMiss KoopaEvent\n"); + fn_1_E654(0); + omOvlGotoEx(OVL_MSTORY2, 1, 2, 0); + } + else { + OSReport("########### Next to BoardMiss NormalEvent\n"); + fn_1_E654(0); + omOvlGotoEx(OVL_MSTORY, 1, 1, 0); + } + } + else { + OSReport("########### Next to Turn\n"); + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); + fn_1_4D8(); + fn_1_E71C(0); + } + } + } + } + while (TRUE) { + fn_1_4D8(); + } + } + if (var_r28 == 1) { + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1E0002, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + break; + } + } +} + +void fn_1_CAE4(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r30, 0x1A0004, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r29 = fn_1_1DD8(0x1E0035, 3, 0); + fn_1_16AC(var_r30); + if (var_r29 == 0) { + s32 spC[4] = { 3, 0, 2, 4 }; + _SetFlag(0x1000B); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GWPlayerCfg[var_r31].character = spC[var_r31]; + GWPlayerCfg[var_r31].pad_idx = var_r31; + GWPlayerCfg[var_r31].diff = 0; + GWPlayerCfg[var_r31].group = 0; + GWPlayerCfg[var_r31].iscom = 1; + OSReport("ID-%d CHR-%d PAD-%d DIF-%d GRP-%d COM-%d\n", var_r31, GWPlayerCfg[var_r31].character, GWPlayerCfg[var_r31].pad_idx, + GWPlayerCfg[var_r31].diff, GWPlayerCfg[var_r31].group, GWPlayerCfg[var_r31].iscom); + } + BoardSaveInit(6); + GWSystem.max_turn = 0x14; + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); + { + omOvlHisData *sp8 = omOvlHisGet(0); + } + omOvlHisChg(0, OVL_MENT, 1, 1); + fn_1_C174(2); + } + else { + _ClearFlag(0x1000B); + } +} + +void fn_1_CD6C(void) +{ + fn_1_1DFB8(); +} + +s32 fn_1_CD8C(void) +{ + s32 sp8; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + sp8 = 0; + fn_1_1CF68(); + var_r31 = fn_1_1434(0, 0, 0); + while (TRUE) { + fn_1_4D8(); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1E005E, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_2154(0x1A0020); + lbl_1_bss_3114->unk_04 = (MentDllUnkFunc)fn_1_1E404; + while (TRUE) { + if (lbl_1_bss_3114->unk_70[0] == 1) { + var_r30 = 1; + break; + } + else if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B) != 0) { + HuAudFXPlay(3); + lbl_1_bss_3114->unk_04 = NULL; + var_r30 = 0; + break; + } + else { + fn_1_4D8(); + } + } + lbl_1_bss_3114->unk_04 = NULL; + fn_1_2318(0); + if (var_r30 != 0) { + break; + } + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1E0005, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r29 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r29 == 0) { + fn_1_16AC(var_r31); + fn_1_C174(0); + } + } + fn_1_16AC(var_r31); + fn_1_4B0(0x1E); + return var_r30; +} + +s32 fn_1_CF8C(void) +{ + s32 sp8; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + sp8 = 0; + var_r28 = -1; + var_r27 = -1; + var_r31 = fn_1_1434(0, 0, 0); + while (TRUE) { + fn_1_4D8(); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1E0009, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_2154(0x1A0021); + lbl_1_bss_35BC[1].unk_08[1] = 0; + fn_1_1DED8(); + lbl_1_bss_35BC[0].unk_04 = (MentDllUnkFunc)fn_1_1E8A4; + while (TRUE) { + fn_1_4D8(); + if ((var_r28 != lbl_1_bss_35BC[0].unk_08[0]) || (var_r27 != lbl_1_bss_35BC[0].unk_1C[lbl_1_bss_35BC[0].unk_08[0] - 1])) { + var_r28 = lbl_1_bss_35BC[0].unk_08[0]; + var_r27 = lbl_1_bss_35BC[0].unk_1C[lbl_1_bss_35BC[0].unk_08[0] - 1]; + switch (lbl_1_bss_35BC[0].unk_08[0]) { + case 1: + HuWinInsertMesSet(var_r31, lbl_1_bss_35BC[0].unk_1C[0] + 0x1B0028, 0); + fn_1_1968(var_r31, 0x1B0027, -1, -0x3E7); + break; + case 2: + fn_1_1968(var_r31, lbl_1_bss_35BC[0].unk_1C[1] + 0x1B0018, -1, -0x3E7); + break; + } + } + if (lbl_1_bss_35BC[0].unk_08[3] != 0) { + continue; + } + if (lbl_1_bss_35BC[1].unk_08[1] == 1) { + var_r30 = 2; + break; + } + else if (lbl_1_bss_35BC[1].unk_08[1] == -1) { + var_r30 = 0; + break; + } + } + fn_1_1DF48(); + lbl_1_bss_35BC[0].unk_04 = NULL; + fn_1_2318(0); + if (var_r30 == 1) { + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x1E0005, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + var_r29 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r29 == 0) { + fn_1_16AC(var_r31); + fn_1_C174(0); + } + } + else if (var_r30 == 2) { + fn_1_1968(var_r31, 0x1B0000, -1, 5); + var_r29 = fn_1_1A5C(0x1E0035, 3, 0); + if (var_r29 == 0) { + break; + } + fn_1_1968(var_r31, 0x1B0007, -1, 5); + var_r29 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r29 == 0) { + fn_1_1CF68(); + var_r30 = 0; + break; + } + else { + var_r28 = -1; + var_r27 = -1; + } + } + else { + var_r30 = 0; + break; + } + } + lbl_1_bss_E0 = lbl_1_bss_35BC[0].unk_1C[1]; + fn_1_16AC(var_r31); + return var_r30; +} + +void fn_1_D310(void) +{ + fn_1_1E1B4(); +} + +void fn_1_D330(void) +{ + fn_1_1F868(); +} + +void fn_1_D350(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + + fn_1_4B0(0x3C); + var_r29 = fn_1_1434(0, 0, 0); + lbl_1_bss_3104->work[0] = 1; + var_r31 = -1; + var_r31 = HuAudFXPlay(0x43); + HuAudFXPanning(var_r31, 0x20); + var_r31 = HuAudFXPlay(0x40); + HuAudFXPanning(var_r31, 0x30); + var_r31 = HuAudFXPlay(0x37); + HuAudFXPanning(var_r31, 0x40); + var_r31 = HuAudFXPlay(0x4B); + HuAudFXPanning(var_r31, 0x4C); + var_r31 = HuAudFXPlay(0x46); + HuAudFXPanning(var_r31, 0x60); + HuAudFXPlay(0x9A); + for (var_r30 = 0; var_r30 < 5; var_r30++) { + fn_1_59A0(lbl_1_bss_33AC[var_r30].unk_00, 1, 6, 5, 1); + } + HuWinInsertMesSet(var_r29, lbl_1_bss_3114->unk_68, 0); + fn_1_1968(var_r29, 0x1E0006, 0, 0xB4); + for (var_r30 = 0; var_r30 < 5; var_r30++) { + fn_1_59A0(lbl_1_bss_33AC[var_r30].unk_00, 1, 1, 0xF, 1); + } + fn_1_4B0(0x1E); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + HuWinInsertMesSet(var_r29, lbl_1_bss_3114->unk_68, 0); + fn_1_1968(var_r29, 0x1E0007, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_2808(fn_1_148B0); + HuAudFXPlay(0x39); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r29, 0x1E0008, 0, 0x78); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); + fn_1_2808(fn_1_13F68); + fn_1_16AC(var_r29); + fn_1_4B0(0x78); + lbl_1_bss_3104->func = NULL; + _ClearFlag(2); + _ClearFlag(3); + _ClearFlag(4); + _ClearFlag(5); + _ClearFlag(6); + _ClearFlag(7); + _ClearFlag(1); + _ClearFlag(9); +} + +void fn_1_D634(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + s32 sp8[6] = { 1, 2, 0, 3, 4, 5 }; + var_r28 = 0; + var_r31 = 2; + if (lbl_1_data_2F0 == -1) { + var_r29 = fn_1_1434(0, 0, 0); + } + else { + var_r29 = lbl_1_data_2F0; + lbl_1_data_2F0 = -1; + } + while (TRUE) { + fn_1_4D8(); + var_r28 = 0; + lbl_1_bss_33AC[0].unk_34 = 1; + HuAudFXPlay(lbl_1_data_0[0][3]); + fn_1_59A0(lbl_1_bss_33AC[sp8[var_r31]].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r29, 0x1A0008, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[sp8[var_r31]].unk_00, 1, 1, 0xF, 1); + fn_1_2154(0x1A0020); + for (var_r30 = 0; var_r30 < 5; var_r30++) { + lbl_1_bss_33AC[var_r30].unk_08 = 0; + lbl_1_bss_33AC[var_r30].unk_04 = (MentDllUnkFunc)fn_1_127FC; + } + lbl_1_bss_33AC[sp8[var_r31]].unk_08 = 1; + lbl_1_bss_35BC[0].unk_04 = (MentDllUnkFunc)fn_1_18F74; + loop_7: + fn_1_4D8(); + for (var_r30 = 0; var_r30 < 5; var_r30++) { + if (lbl_1_bss_33AC[var_r30].unk_08 == 2) { + (void)var_r30; + } + } + if (var_r30 != 5) { + block_27: + if (var_r28 == 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + lbl_1_bss_33AC[var_r30].unk_08 = 0; + } + lbl_1_bss_33AC[sp8[var_r31]].unk_08 = 1; + } + if (var_r28++ == 0x14) { + var_r28 = 0x15; + fn_1_18A54(sp8[var_r31]); + fn_1_1968(var_r29, sp8[var_r31] + 0x1B0001, -1, -0x3E7); + if (sp8[var_r31] != 0) { + HuAudFXPlay(lbl_1_data_0[sp8[var_r31]][0]); + } + else { + HuAudFXPlay(lbl_1_data_0[sp8[var_r31]][0]); + } + } + goto loop_7; + } + if (var_r28 < 0x15) { + goto block_27; + } + if ((HuPadBtnDown[lbl_1_bss_3114[0].unk_6C] & PAD_BUTTON_A) != 0) { + HuAudFXPlay(2); + var_r26 = 2; + } + else { + if ((HuPadStkX[lbl_1_bss_3114[0].unk_6C] >= 0x32) || ((HuPadBtn[lbl_1_bss_3114[0].unk_6C] & PAD_BUTTON_RIGHT) != 0)) { + var_r31++; + if (var_r31 > 4) { + var_r31 = 4; + } + else { + var_r28 = 0; + } + goto block_27; + } + if ((HuPadStkX[lbl_1_bss_3114[0].unk_6C] <= -0x32) || ((HuPadBtn[lbl_1_bss_3114[0].unk_6C] & PAD_BUTTON_LEFT) != 0)) { + var_r31--; + if (var_r31 < 0) { + var_r31 = 0; + } + else { + var_r28 = 0; + } + goto block_27; + } + if ((HuPadBtnDown[0] & PAD_BUTTON_B) != 0) { + var_r26 = 1; + } + else { + goto block_27; + } + } + fn_1_2318(0); + if (var_r26 == 1) { + fn_1_2808(fn_1_14058); + if (var_r31 != 2) { + var_r31 = 2; + for (var_r30 = 0; var_r30 < 5; var_r30++) { + lbl_1_bss_33AC[var_r30].unk_08 = 0; + } + lbl_1_bss_33AC[sp8[var_r31]].unk_08 = 1; + lbl_1_bss_33AC[sp8[var_r31]].unk_34 = 1; + } + fn_1_18DCC(); + fn_1_4B0(0x1E); + fn_1_1968(var_r29, 0x1E0005, -1, 5); + var_r27 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r27 == 0) { + fn_1_16AC(var_r29); + fn_1_C174(0); + } + continue; + } + if (var_r26 != 2) { + continue; + } + if (((sp8[var_r31] == 0) && (_CheckFlag(FLAG_ID_MAKE(0, 2)) != 0)) || ((sp8[var_r31] == 1) && (_CheckFlag(FLAG_ID_MAKE(0, 3)) != 0)) + || ((sp8[var_r31] == 2) && (_CheckFlag(FLAG_ID_MAKE(0, 4)) != 0)) || ((sp8[var_r31] == 3) && (_CheckFlag(FLAG_ID_MAKE(0, 5)) != 0)) + || ((sp8[var_r31] == 4) && (_CheckFlag(FLAG_ID_MAKE(0, 6)) != 0))) { + fn_1_59A0(lbl_1_bss_33AC[sp8[var_r31]].unk_00, 1, 4, 0xF, 1); + HuWinInsertMesSet(var_r29, sp8[var_r31] + 0x1B0021, 1); + fn_1_1968(var_r29, sp8[var_r31] + 0x1E0052, -1, -1); + fn_1_1968(var_r29, sp8[var_r31] + 0x1E0057, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[sp8[var_r31]].unk_00, 1, 1, 0xF, 1); + var_r27 = fn_1_1DD8(0x1E0035, 3, 0); + if (var_r27 == 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + lbl_1_bss_33AC[var_r30].unk_04 = NULL; + } + lbl_1_bss_A8[2] = sp8[var_r31]; + } + else { + if (var_r31 != 2) { + var_r31 = 2; + for (var_r30 = 0; var_r30 < 5; var_r30++) { + lbl_1_bss_33AC[var_r30].unk_08 = 0; + } + lbl_1_bss_33AC[sp8[var_r31]].unk_08 = 1; + lbl_1_bss_33AC[sp8[var_r31]].unk_34 = 1; + } + fn_1_18DCC(); + fn_1_4B0(0x1E); + continue; + } + } + else { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + lbl_1_bss_33AC[var_r30].unk_04 = NULL; + } + lbl_1_bss_A8[2] = sp8[var_r31]; + } + break; + } + fn_1_16AC(var_r29); +} + +void fn_1_DE60(void) +{ + s32 var_r31 = lbl_1_bss_A8[2]; + { + Vec sp14 = { -120.0f, 0.0f, 670.0f }; + + fn_1_1FA34(); + fn_1_2808(fn_1_14238); + fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[var_r31].unk_00, 1, sp14, 5.0f, 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 1, 0xF, 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[0].unk_00->model[2], 1); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 2, 0, 0); + fn_1_5CDC(lbl_1_bss_35BC[0].unk_00, 2, 0); + fn_1_4B0(0x3C); + } +} + +void fn_1_DFDC(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r31 = 0; + var_r29 = lbl_1_bss_A8[2]; + for (var_r30 = 0; var_r30 < 5; var_r30++) { + Hu3DModelAttrSet(lbl_1_bss_33AC[var_r30].unk_00->model[1], 1); + } + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r29].unk_00->model[1], 1); + fn_1_11908(lbl_1_bss_35BC[var_r31].unk_00, lbl_1_bss_A8[2]); + Hu3DModelAttrReset(lbl_1_bss_35BC[var_r31].unk_00->model[4], 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[var_r31].unk_00->model[5], 1); + lbl_1_bss_35BC[var_r31].unk_04 = (MentDllUnkFunc)fn_1_1184C; + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); + fn_1_5818(lbl_1_bss_35BC[var_r31].unk_00, 2, 3, 0, 0); + var_r28 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[var_r29].unk_00, 1, 5, 0xF, 1); + fn_1_1968(var_r28, var_r29 + 0x1E000C, -1, -1); + fn_1_16AC(var_r28); + fn_1_5CDC(lbl_1_bss_35BC[var_r31].unk_00, 2, 0); + Hu3DModelAttrSet(lbl_1_bss_35BC[var_r31].unk_00->model[2], 1); + HuAudSeqFadeOut(lbl_1_bss_14[0], 0xBB8); + fn_1_2808(fn_1_14418); + fn_1_4B0(0xA); + HuAudFXPlay(GWPlayerCfg->character + 0x75); + fn_1_4B0(0x8C); +} + +void fn_1_E244(void) +{ + lbl_1_bss_14[0] = HuAudSeqPlay(0x30); + OSReport("########### ME_MainProcFunc200\n"); + WipeCreate(1, 0, -1); + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + fn_1_4B0(0x3C); +} + +void fn_1_E2B4(void) +{ + Vec sp14 = { 0.0f, 0.0f, 560.0f }; + Hu3DModelAttrReset(lbl_1_bss_35BC[0].unk_00->model[2], 1); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); + fn_1_5CDC(lbl_1_bss_35BC[0].unk_00, 2, 0); + fn_1_D330(); + fn_1_2808(fn_1_146D0); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 2, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[0].unk_00, 1, sp14, 0.0f, 3.0f, 0.0f, 1, 0); + fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); +} + +void fn_1_E3FC(void) +{ + lbl_1_bss_14[0] = HuAudSeqPlay(6); + OSReport("########### ME_MainProcFunc300\n"); + WipeCreate(1, 0, -1); + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + fn_1_D330(); + lbl_1_bss_35BC[1].unk_04 = (MentDllUnkFunc)fn_1_18F74; + fn_1_18A54(5); + fn_1_4B0(0x3C); +} + +void fn_1_E48C(void) +{ + s32 var_r31; + + lbl_1_bss_A8[2] = 5; + var_r31 = fn_1_1434(0, 0, 0); + HuAudFXPlay(lbl_1_data_0[6][2]); + fn_1_1968(var_r31, 0x1F0008, 0, 0x3C); + fn_1_59A0(lbl_1_bss_3354.unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + fn_1_1FC54(); + fn_1_4B0(0x3C); + Hu3DModelAttrReset(lbl_1_bss_35BC[1].unk_00->model[4], 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[1].unk_00->model[5], 1); + fn_1_7304(); + HuDataDirClose(DATADIR_MENT); + HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); + fn_1_59A0(lbl_1_bss_3354.unk_00, 1, 2, 0xF, 1); + fn_1_5818(lbl_1_bss_35BC[1].unk_00, 2, 3, 0, 0); + fn_1_4B0(0x3C); + HuAudFXPlay(lbl_1_data_0[6][0]); + fn_1_5CDC(lbl_1_bss_35BC[1].unk_00, 2, 0); + Hu3DModelAttrSet(lbl_1_bss_35BC[1].unk_00->model[2], 1); + HuAudSeqFadeOut(lbl_1_bss_14[0], 0xBB8); + fn_1_2808(fn_1_14418); + fn_1_4B0(0xA); + fn_1_4B0(0x8C); +} + +void fn_1_E654(s32 arg0) +{ + fn_1_4B0(0x3C); + HuAudSeqFadeOut(lbl_1_bss_14[0], 0x3E8); + WipeCreate(2, 0, -1); + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + CharModelKill(-1); + MGSeqKillAll(); + HuAudAllStop(); + HuDataDirClose(DATADIR_MENT); + CharARAMOpen(GWPlayerCfg[0].character); + if (arg0 == 0) { + CharARAMOpen(GWPlayerCfg[1].character); + CharARAMOpen(GWPlayerCfg[2].character); + CharARAMOpen(GWPlayerCfg[3].character); + } +} + +void fn_1_E71C(s32 arg0) +{ + s32 spC[7] = { 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F }; + fn_1_4B0(0x3C); + HuAudSeqFadeOut(lbl_1_bss_14[0], 0x3E8); + WipeCreate(2, 0, -1); + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + CharModelKill(-1); + MGSeqKillAll(); + { + omOvlHisData *sp8 = omOvlHisGet(0); + } + omOvlHisChg(0, OVL_MSTORY3, 0, 0); + do { + fn_1_4D8(); + } while (lbl_1_bss_D8 != 1); + CharARAMOpen(GWPlayerCfg[0].character); + CharARAMOpen(GWPlayerCfg[1].character); + CharARAMOpen(GWPlayerCfg[2].character); + CharARAMOpen(GWPlayerCfg[3].character); + HuAudSeqAllFadeOut(0x3E8); + HuAudSStreamAllFadeOut(0x3E8); + omOvlCallEx(spC[GWSystem.board], 1, 0, 0); + while (TRUE) { + fn_1_4D8(); + } +} + +inline void fn_1_E874_inline(void) +{ + s32 sp18 = lbl_1_bss_3114[0].unk_68; + GWSystem.unk0B[1] = sp18; +} + +void fn_1_E874(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + s32 var_r31; + s32 var_r29; + s32 var_r27; + s32 var_r25; + s32 var_r24; + s32 var_r18; + + var_r25 = 0; + if (lbl_1_bss_A8[1] == 0) { + fn_1_81F0(); + fn_1_77C0(); + fn_1_C4B8(); + fn_1_CAE4(); + } + else { + fn_1_7858(); + fn_1_CAE4(); + } + fn_1_1DFB8(); + do { + fn_1_4D8(); + switch (var_r25) { + case 0: + var_r25 = fn_1_CD8C(); + break; + case 1: + var_r25 = fn_1_CF8C(); + break; + } + } while (var_r25 != 2); + fn_1_D310(); + fn_1_81D8(); + fn_1_7A14(); + fn_1_D634(); + fn_1_DE60(); + switch (lbl_1_bss_E0) { + case 0: + var_r24 = 0; + break; + case 1: + var_r24 = 1; + break; + case 2: + var_r24 = 2; + break; + default: + var_r24 = 0; + break; + } + if (lbl_1_bss_35BC[0].unk_1C[0] == 4) { + var_r18 = 1; + } + else { + var_r18 = 0; + } + BoardStoryConfigSet(var_r24, var_r18); + fn_1_E874_inline(); + // looks a bit similar to fn_1_7304 + for (var_r31 = 1; var_r31 < 4; var_r31++) { + lbl_1_bss_3114[var_r31].unk_68 = -1; + lbl_1_bss_3114[var_r31].unk_6C = var_r31; + lbl_1_bss_3114[var_r31].unk_60 = 1; + } + for (var_r31 = 1; var_r31 < 4; var_r31++) { + do { + lbl_1_bss_3114[var_r31].unk_68 = rand8() % 8; + for (var_r27 = 0; var_r27 < 4; var_r27++) { + if ((var_r31 != var_r27) && (lbl_1_bss_3114[var_r27].unk_68 != -1) + && (lbl_1_bss_3114[var_r31].unk_68 == lbl_1_bss_3114[var_r27].unk_68)) { + break; + } + } + } while (var_r27 != 4); + } + GWSystem.diff_story = lbl_1_bss_35BC[0].unk_1C[0]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_3114[var_r31].unk_64 = GWSystem.diff_story; + if (GWSystem.diff_story == 4) { + lbl_1_bss_3114[var_r31].unk_64 = fn_1_7124(); + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_3114[var_r31].unk_68; + GWPlayer[var_r31].port = GWPlayerCfg[var_r31].pad_idx = lbl_1_bss_3114[var_r31].unk_6C; + GWPlayer[var_r31].diff = GWPlayerCfg[var_r31].diff = lbl_1_bss_3114[var_r31].unk_64; + GWPlayerCfg[var_r31].group = 0; + GWPlayer[var_r31].com = GWPlayerCfg[var_r31].iscom = lbl_1_bss_3114[var_r31].unk_60; + } + BoardSaveInit(lbl_1_bss_A8[2]); + fn_1_DFDC(); + fn_1_E71C(0); +} + +void fn_1_F83C(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + _ClearFlag(FLAG_ID_MAKE(0, 9)); + lbl_1_bss_35BC[0].unk_1C[0] = GWSystem.diff_story; + fn_1_E244(); + fn_1_E2B4(); + fn_1_D634(); + fn_1_DE60(); + fn_1_7304(); + fn_1_DFDC(); + WipeColorSet(0xFF, 0xFF, 0xFF); + fn_1_7684(); +} + +void fn_1_FEAC(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + _ClearFlag(9); + lbl_1_bss_35BC[0].unk_1C[0] = GWSystem.diff_story; + fn_1_E3FC(); + fn_1_E48C(); + WipeColorSet(0, 0, 0); + fn_1_7684(); +} + +void fn_1_10234(void) +{ + s32 var_r31; + + Vec sp2C = { 0.0f, 0.0f, 560.0f }; + Vec sp20 = { -120.0f, 0.0f, 670.0f }; + fn_1_2808(fn_1_13DEC); + fn_1_4B0(0x5A); + Hu3DModelAttrReset(lbl_1_bss_33AC[4].unk_00->model[1], 1); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); + fn_1_4B0(0x96); + lbl_1_bss_3108[0]->work[0] = 1; + fn_1_2808(fn_1_13F68); + fn_1_4B0(0x5A); + fn_1_59A0(lbl_1_bss_33AC[4].unk_00, 1, 2, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[4].unk_00, 1, sp2C, 0.0f, 3.0f, 0.0f, 1, 0); + fn_1_59A0(lbl_1_bss_33AC[4].unk_00, 1, 1, 0xF, 1); + fn_1_4B0(0x1E); + HuAudSeqPlay(0x2D); + var_r31 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[4].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x2F0000, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[4].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + fn_1_5818(lbl_1_bss_33AC[4].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[4].unk_00, 1, sp20, 5.0f, 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[4].unk_00, 1, 1, 0xF, 1); + fn_1_4B0(0x1E); + fn_1_5818(lbl_1_bss_33AC[4].unk_00, 1, 5, 0xF, 1); + fn_1_2808(fn_1_14AB8); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 1, 0, 0, 0); +} + +void fn_1_1053C(void) +{ + fn_1_4B0(0x6E); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, -1); + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + CharModelKill(-1); + MGSeqKillAll(); + HuAudFXAllStop(); + HuAudSStreamAllStop(); + omOvlGotoEx(OVL_OPTION, 1, 0, 0); + while (TRUE) { + fn_1_4D8(); + } +} + +void fn_1_105B8(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + fn_1_81F0(); + fn_1_10234(); + fn_1_1053C(); +} + +void fn_1_10954(void) +{ + s32 var_r31; + + Vec sp2C = { 0.0f, 0.0f, 560.0f }; + Vec sp20 = { -120.0f, 0.0f, 670.0f }; + fn_1_2808(fn_1_13DEC); + fn_1_4B0(0x5A); + Hu3DModelAttrReset(lbl_1_bss_33AC[2].unk_00->model[1], 1); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); + fn_1_4B0(0x96); + lbl_1_bss_3108[0]->work[0] = 1; + fn_1_2808(fn_1_13F68); + fn_1_4B0(0x5A); + fn_1_59A0(lbl_1_bss_33AC[2].unk_00, 1, 2, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[2].unk_00, 1, sp2C, 0.0f, 3.0f, 0.0f, 1, 0); + fn_1_59A0(lbl_1_bss_33AC[2].unk_00, 1, 1, 0xF, 1); + fn_1_4B0(0x1E); + HuAudSeqPlay(0x2F); + var_r31 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[2].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x320000, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[2].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + fn_1_5818(lbl_1_bss_33AC[2].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[2].unk_00, 1, sp20, 5.0f, 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[2].unk_00, 1, 1, 0xF, 1); + fn_1_4B0(0x1E); + fn_1_5818(lbl_1_bss_33AC[2].unk_00, 1, 5, 0xF, 1); + fn_1_2808(fn_1_14AB8); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 1, 0, 0, 0); +} + +void fn_1_10C5C(void) +{ + fn_1_4B0(0x6E); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, -1); + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + CharModelKill(-1); + MGSeqKillAll(); + HuAudFXAllStop(); + HuAudSStreamAllStop(); + omOvlGotoEx(OVL_PRESENT, 1, 0, 0); + while (TRUE) { + fn_1_4D8(); + } +} + +void fn_1_10CD8(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + fn_1_81F0(); + fn_1_10954(); + fn_1_10C5C(); +} + +void fn_1_11074(void) +{ + s32 var_r31; + s32 var_r30; + + Vec sp14 = { 0.0f, 0.0f, 560.0f }; + fn_1_2808(fn_1_13DEC); + fn_1_4B0(0x5A); + Hu3DModelAttrReset(lbl_1_bss_33AC[3].unk_00->model[1], 1); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); + fn_1_4B0(0x96); + lbl_1_bss_3108[0]->work[0] = 1; + fn_1_2808(fn_1_13F68); + fn_1_4B0(0x5A); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 2, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[3].unk_00, 1, sp14, 0.0f, 3.0f, 0.0f, 1, 0); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 1, 0xF, 1); + fn_1_4B0(0x1E); + var_r31 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x330000, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + var_r31 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x330001, -1, 5); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 1, 0xF, 1); + var_r30 = fn_1_1A5C(0x1E0035, 3, 0); + fn_1_16AC(var_r31); + if (var_r30 == 0) { + var_r31 = fn_1_1434(0, 0, 0); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 4, 0xF, 1); + fn_1_1968(var_r31, 0x330002, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[3].unk_00, 1, 1, 0xF, 1); + fn_1_16AC(var_r31); + } +} + +void fn_1_11368(void) +{ + + Vec sp14 = { -120.0f, 0.0f, 670.0f }; + fn_1_5818(lbl_1_bss_33AC[3].unk_00, 1, 3, 0xF, 1); + fn_1_5D38(lbl_1_bss_33AC[3].unk_00, 1, sp14, 5.0f, 6.0f, 10.0f, 1, 1); + fn_1_5818(lbl_1_bss_33AC[3].unk_00, 1, 1, 0xF, 1); + fn_1_4B0(0x1E); + fn_1_5818(lbl_1_bss_33AC[3].unk_00, 1, 5, 0xF, 1); + fn_1_2808(fn_1_14AB8); + fn_1_5818(lbl_1_bss_35BC[0].unk_00, 1, 0, 0, 0); +} + +void fn_1_114A0(void) +{ + fn_1_4B0(0x6E); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, -1); + while (WipeStatGet() != 0) { + fn_1_4D8(); + } + CharModelKill(-1); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + while (TRUE) { + fn_1_4D8(); + } +} + +void fn_1_11514(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + s32 spC = 0xA; + s32 sp8 = 0; + fn_1_81F0(); + fn_1_11074(); + fn_1_11368(); + fn_1_114A0(); +} + +void fn_1_116F4(void) +{ + omObjData *var_r31; + + var_r31 = omAddObjEx(lbl_1_bss_C8, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_366C.unk_00 = var_r31; + switch (lbl_1_bss_A8[0]) { + case 0: + case 20: + lbl_1_bss_366C.unk_04 = (MentDllUnkFunc)fn_1_B654; + break; + case 1: + lbl_1_bss_366C.unk_04 = (MentDllUnkFunc)fn_1_E874; + break; + case 3: + lbl_1_bss_366C.unk_04 = (MentDllUnkFunc)fn_1_105B8; + break; + case 4: + lbl_1_bss_366C.unk_04 = (MentDllUnkFunc)fn_1_10CD8; + break; + case 5: + lbl_1_bss_366C.unk_04 = (MentDllUnkFunc)fn_1_11514; + break; + case 10: + lbl_1_bss_366C.unk_04 = (MentDllUnkFunc)fn_1_F83C; + break; + case 11: + lbl_1_bss_366C.unk_04 = (MentDllUnkFunc)fn_1_FEAC; + break; + } + while (TRUE) { + fn_1_4D8(); + if (lbl_1_bss_366C.unk_04 == NULL) { + continue; + } + lbl_1_bss_366C.unk_04(var_r31, &lbl_1_bss_366C); + } +} + +void fn_1_1184C(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + Hu3DData[arg0->model[4]].pos.y = fn_1_3F4(80.0f, 90.0f, arg1->unk_1C[0]++, 360.0f); + if (arg1->unk_1C[0] >= 0x168) { + arg1->unk_1C[0] = 0; + } +} + +void fn_1_11908(omObjData *arg0, s32 arg1) +{ + arg0->model[4] = Hu3DModelCreateFile(arg1 + DATA_MAKE_NUM(DATADIR_MENT, 0xD)); + if (arg1 != 5) { + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x13)); + } + else { + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x14)); + } + arg0->motion[4] = Hu3DMotionIDGet(arg0->model[4]); + arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]); + fn_1_59A0(arg0, 4, 4, 0, 2); + fn_1_59A0(arg0, 5, 5, 0, 2); + if (arg1 != 5) { + Hu3DModelPosSet(arg0->model[4], 0.0f, 80.0f, 460.0f); + Hu3DModelHookSet(arg0->model[4], "partybox_fix2-effect_fook1", arg0->model[5]); + } + else { + Hu3DModelPosSet(arg0->model[4], 1200.0f, 80.0f, 460.0f); + Hu3DModelHookSet(arg0->model[4], "koopabox_fix-effect_fook2", arg0->model[5]); + } + Hu3DModelAttrSet(arg0->model[4], 1); + Hu3DModelAttrSet(arg0->model[5], 1); + Hu3DModelShadowSet(arg0->model[4]); +} + +void fn_1_11AD0(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x61)); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x69)); + if (lbl_1_bss_A8[0] < 0xA) { + object->model[3] = Hu3DModelCreateFile(lbl_1_bss_A8[0] + DATA_MAKE_NUM(DATADIR_MENT, 0x63)); + } + else { + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x64)); + } + if ((lbl_1_bss_A8[4] == 1) && ((lbl_1_bss_A8[0] == 0) || (lbl_1_bss_A8[0] == 0x14))) { + object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x6C)); + Hu3DModelLayerSet(object->model[6], 2); + Hu3DModelPosSet(object->model[6], 50.0f, 0.0f, -100.0f); + object->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x6D)); + Hu3DModelLayerSet(object->model[7], 2); + Hu3DModelPosSet(object->model[7], 1150.0f, 0.0f, -100.0f); + } + object->motion[0] = Hu3DMotionIDGet(object->model[1]); + object->motion[1] = Hu3DMotionIDGet(object->model[3]); + object->motion[2] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MENT, 0x6A)); + object->motion[3] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MENT, 0x6B)); + if (lbl_1_bss_A8[0] == 0xA) { + fn_1_59A0(object, 2, 3, 0, 2); + } + else { + fn_1_59A0(object, 2, 3, 0, 2); + } + fn_1_59A0(object, 3, 1, 0, 1); + fn_1_59A0(object, 1, 0, 0, 2); + Hu3DModelShadowMapObjSet(object->model[1], "base_fix9-base"); +} + +void fn_1_11DA4(omObjData *object, s32 arg1, s32 arg2, s32 arg3) +{ + + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x62)); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x69)); + object->motion[1] = Hu3DMotionIDGet(object->model[1]); + object->motion[2] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MENT, 0x6A)); + object->motion[3] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MENT, 0x6B)); + if (lbl_1_bss_A8[0] == 0xB) { + fn_1_59A0(object, 2, 3, 0, 2); + } + else { + fn_1_59A0(object, 2, 2, 0, 2); + Hu3DModelAttrSet(object->model[2], 1); + } + fn_1_59A0(object, 1, 1, 0, 1); + Hu3DModelPosSet(object->model[1], 1200.0f, 0.0f, 0.0f); + Hu3DModelPosSet(object->model[2], 1200.0f, 0.0f, 0.0f); + if (lbl_1_bss_A8[0] == 3) { + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x12)); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x14)); + object->motion[4] = Hu3DMotionIDGet(object->model[4]); + object->motion[5] = Hu3DMotionIDGet(object->model[5]); + fn_1_59A0(object, 4, 4, 0, 2); + fn_1_59A0(object, 5, 5, 0, 2); + Hu3DModelPosSet(object->model[4], 1200.0f, 80.0f, 460.0f); + Hu3DModelHookSet(object->model[4], "koopabox_fix-effect_fook2", object->model[5]); + Hu3DModelAttrSet(object->model[4], 1); + Hu3DModelAttrSet(object->model[5], 1); + Hu3DModelShadowSet(object->model[4]); + Hu3DModelAttrReset(object->model[4], 1); + Hu3DModelAttrReset(object->model[5], 1); + lbl_1_bss_35BC[1].unk_04 = (MentDllUnkFunc)fn_1_1184C; + } + Hu3DModelShadowMapObjSet(object->model[1], "base_story-base"); + if (lbl_1_bss_A8[0] == 0xB) { + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x12)); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x14)); + object->motion[4] = Hu3DMotionIDGet(object->model[4]); + object->motion[5] = Hu3DMotionIDGet(object->model[5]); + fn_1_59A0(object, 4, 4, 0, 2); + fn_1_59A0(object, 5, 5, 0, 2); + Hu3DModelPosSet(object->model[4], 1200.0f, 80.0f, 460.0f); + Hu3DModelHookSet(object->model[4], "koopabox_fix-effect_fook2", object->model[5]); + Hu3DModelAttrSet(object->model[4], 1); + Hu3DModelAttrSet(object->model[5], 1); + Hu3DModelShadowSet(object->model[4]); + } +} + +void fn_1_121D8(void) +{ + omObjData *var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_bss_CC; + lbl_1_bss_CC = var_r30 + 1; + var_r31 = omAddObjEx(lbl_1_bss_C8, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_35BC[var_r30].unk_00 = var_r31; + lbl_1_bss_35BC[var_r30].unk_04 = NULL; + if (var_r30 == 0) { + fn_1_11AD0(var_r31); + switch (lbl_1_bss_A8[0]) { + case 0: + fn_1_20B54(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + fn_1_151B8(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + fn_1_17CC8(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + fn_1_18788(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + fn_1_1BB2C(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + break; + case 1: + fn_1_1D4FC(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + fn_1_1F6B8(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + fn_1_18788(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + break; + case 10: + if (GWSystem.mg_list == 3) { + GWSystem.mg_list = 0; + } + var_r29 = GWSystem.mg_list; + lbl_1_bss_35BC[0].unk_1C[1] = var_r29; + lbl_1_bss_35BC[0].unk_1C[0] = GWPlayerCfg[0].diff; + fn_1_1F6B8(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + fn_1_18788(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + break; + case 5: + fn_1_20B54(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + fn_1_151B8(&lbl_1_bss_35BC[var_r30], 0, 0, 0); + break; + } + } + else { + fn_1_11DA4(var_r31, 0, 0, 0); + if (lbl_1_bss_A8[0] == 0xB) { + fn_1_1F6B8(lbl_1_bss_35BC, 0, 0, 0); + fn_1_18788(lbl_1_bss_35BC, 0, 0, 0); + } + } + while (TRUE) { + fn_1_4D8(); + if (lbl_1_bss_35BC[var_r30].unk_04 == NULL) { + continue; + } + lbl_1_bss_35BC[var_r30].unk_04(var_r31, &lbl_1_bss_35BC[var_r30]); + } +} + +void fn_1_127FC(omObjData *arg0, MentDllUnkBss33ACStruct *arg1) +{ + float var_f31; + float var_f30; + + var_f31 = 0.0f; + var_f30 = 0.0f; + var_f31 = Hu3DData[arg0->model[1]].pos.z; + var_f30 = Hu3DData[arg0->model[1]].rot.y; + if (arg1->unk_08 == 1) { + if (var_f31 > 560.0f) { + arg1->unk_08 = 2; + fn_1_59A0(arg0, 1, 1, 0xF, 1); + } + else { + var_f31 += 5.0f; + fn_1_59A0(arg0, 1, 2, 0xF, 1); + var_f30 = fn_1_234(var_f30, 0.0f, 10.0f); + } + } + else if (arg1->unk_08 == 0) { + if (var_f31 <= 460.0f) { + arg1->unk_08 = 2; + fn_1_59A0(arg0, 1, 1, 0xF, 1); + } + else { + var_f31 -= 5.0f; + fn_1_59A0(arg0, 1, 2, 0xF, 1); + var_f30 = fn_1_234(var_f30, lbl_1_data_120[arg1->unk_30], 10.0f); + } + } + Hu3DData[arg0->model[1]].pos.z = var_f31; + Hu3DData[arg0->model[1]].rot.y = var_f30; +} + +void fn_1_12A0C(omObjData *object, s32 arg1) +{ + s32 sp20[6] = { + DATA_MAKE_NUM(DATADIR_MENT, 0x6E), + DATA_MAKE_NUM(DATADIR_MENT, 0x75), + DATA_MAKE_NUM(DATADIR_MENT, 0x7C), + DATA_MAKE_NUM(DATADIR_MENT, 0x83), + DATA_MAKE_NUM(DATADIR_MENT, 0x89), + DATA_MAKE_NUM(DATADIR_MENT, 0x90), + }; + s32 sp38[6][6] = { + DATA_MAKE_NUM(DATADIR_MENT, 0x6F), + DATA_MAKE_NUM(DATADIR_MENT, 0x70), + DATA_MAKE_NUM(DATADIR_MENT, 0x71), + DATA_MAKE_NUM(DATADIR_MENT, 0x72), + DATA_MAKE_NUM(DATADIR_MENT, 0x73), + DATA_MAKE_NUM(DATADIR_MENT, 0x74), + DATA_MAKE_NUM(DATADIR_MENT, 0x76), + DATA_MAKE_NUM(DATADIR_MENT, 0x77), + DATA_MAKE_NUM(DATADIR_MENT, 0x78), + DATA_MAKE_NUM(DATADIR_MENT, 0x79), + DATA_MAKE_NUM(DATADIR_MENT, 0x7A), + DATA_MAKE_NUM(DATADIR_MENT, 0x7B), + DATA_MAKE_NUM(DATADIR_MENT, 0x7D), + DATA_MAKE_NUM(DATADIR_MENT, 0x7E), + DATA_MAKE_NUM(DATADIR_MENT, 0x7F), + DATA_MAKE_NUM(DATADIR_MENT, 0x80), + DATA_MAKE_NUM(DATADIR_MENT, 0x81), + DATA_MAKE_NUM(DATADIR_MENT, 0x82), + DATA_MAKE_NUM(DATADIR_MENT, 0x84), + DATA_MAKE_NUM(DATADIR_MENT, 0x85), + DATA_MAKE_NUM(DATADIR_MENT, 0x85), + DATA_MAKE_NUM(DATADIR_MENT, 0x86), + DATA_MAKE_NUM(DATADIR_MENT, 0x87), + DATA_MAKE_NUM(DATADIR_MENT, 0x88), + DATA_MAKE_NUM(DATADIR_MENT, 0x8A), + DATA_MAKE_NUM(DATADIR_MENT, 0x8B), + DATA_MAKE_NUM(DATADIR_MENT, 0x8C), + DATA_MAKE_NUM(DATADIR_MENT, 0x8D), + DATA_MAKE_NUM(DATADIR_MENT, 0x8E), + DATA_MAKE_NUM(DATADIR_MENT, 0x8F), + DATA_MAKE_NUM(DATADIR_MENT, 0x91), + DATA_MAKE_NUM(DATADIR_MENT, 0x92), + DATA_MAKE_NUM(DATADIR_MENT, 0x93), + DATA_MAKE_NUM(DATADIR_MENT, 0x94), + DATA_MAKE_NUM(DATADIR_MENT, 0x95), + DATA_MAKE_NUM(DATADIR_MENT, 0x91), + }; + object->model[1] = Hu3DModelCreateFile(sp20[arg1]); + object->motion[1] = Hu3DJointMotionFile(object->model[1], sp38[arg1][0]); + object->motion[2] = Hu3DJointMotionFile(object->model[1], sp38[arg1][1]); + object->motion[3] = Hu3DJointMotionFile(object->model[1], sp38[arg1][2]); + object->motion[4] = Hu3DJointMotionFile(object->model[1], sp38[arg1][3]); + object->motion[5] = Hu3DJointMotionFile(object->model[1], sp38[arg1][4]); + object->motion[6] = Hu3DJointMotionFile(object->model[1], sp38[arg1][5]); + { + s32 sp8[6] = { 9, 14, 10, 11, 12, 13 }; + if (arg1 != 3) { + CharModelEffectNpcInit(object->model[1], object->motion[2], 0, sp8[arg1]); + CharModelEffectNpcInit(object->model[1], object->motion[3], 1, sp8[arg1]); + } + } + fn_1_59A0(object, 1, 1, 0, 1); + Hu3DModelPosSet(object->model[1], lbl_1_data_D8[arg1].x, lbl_1_data_D8[arg1].y, lbl_1_data_D8[arg1].z); + Hu3DModelRotSet(object->model[1], 0.0f, lbl_1_data_120[arg1], 0.0f); + if (lbl_1_bss_A8[0] >= 2 && lbl_1_bss_A8[0] < 0xA) { + Hu3DModelPosSet(object->model[1], lbl_1_data_D8[0].x, lbl_1_data_D8[0].y, lbl_1_data_D8[0].z); + Hu3DModelRotSet(object->model[1], 0.0f, 0.0f, 0.0f); + if (lbl_1_bss_A8[0] == 5) { + Hu3DModelPosSet(object->model[1], lbl_1_data_D8[0].x, 50.0f + lbl_1_data_D8[0].y, lbl_1_data_D8[0].z); + } + } + if (lbl_1_bss_A8[0] < 0xA) { + Hu3DModelAttrSet(object->model[1], 1); + } + Hu3DModelShadowSet(object->model[1]); + Hu3DModelLayerSet(object->model[1], 2); +} + +void fn_1_12E40(void) +{ + omObjData *var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_D0; + lbl_1_bss_D0 = var_r30 + 1; + var_r31 = omAddObjEx(lbl_1_bss_C8, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_33AC[var_r30].unk_00 = var_r31; + lbl_1_bss_33AC[var_r30].unk_04 = NULL; + lbl_1_bss_33AC[var_r30].unk_30 = var_r30; + fn_1_12A0C(var_r31, var_r30); + while (TRUE) { + fn_1_4D8(); + if (lbl_1_bss_33AC[var_r30].unk_04 != NULL) { + lbl_1_bss_33AC[var_r30].unk_04(var_r31, &lbl_1_bss_33AC[var_r30]); + } + if (var_r31->work[0] != 1) { + continue; + } + fn_1_5C08(var_r31); + } +} + +void fn_1_13348(omObjData *arg0) +{ + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x96)); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MENT, 0x97)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MENT, 0x98)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MENT, 0x99)); + fn_1_59A0(arg0, 1, 3, 0, 1); + Hu3DModelPosSet(arg0->model[1], 1020.0f, 0.0f, 800.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 60.0f, 0.0f); + Hu3DModelShadowSet(arg0->model[1]); + Hu3DModelLayerSet(arg0->model[1], 2); +} + +void fn_1_134A8(void) +{ + omObjData *var_r31; + + var_r31 = omAddObjEx(lbl_1_bss_C8, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_3354.unk_00 = var_r31; + lbl_1_bss_3354.unk_04 = NULL; + fn_1_13348(var_r31); + while (TRUE) { + fn_1_4D8(); + if (lbl_1_bss_3354.unk_04 != NULL) { + lbl_1_bss_3354.unk_04(var_r31, &lbl_1_bss_3354); + } + if (var_r31->work[0] != 1) { + continue; + } + fn_1_5C08(var_r31); + } +} + +void fn_1_1368C(omObjData *arg0, s32 arg1) +{ + MentDllUnkBss3114Struct *var_r31; + + var_r31 = &lbl_1_bss_3114[arg1]; + var_r31->unk_58 = arg1; + var_r31->unk_5C = 0; + var_r31->unk_60 = var_r31->unk_58; + if (var_r31->unk_60 > 0) { + var_r31->unk_60 = 1; + } + var_r31->unk_64 = 0; + var_r31->unk_68 = var_r31->unk_58; + var_r31->unk_6C = var_r31->unk_58; +} + +void fn_1_136F0(omObjData *arg0, s32 arg1) +{ + MentDllUnkBss3114Struct *var_r31; + + var_r31 = &lbl_1_bss_3114[arg1]; + var_r31->unk_58 = arg1; + var_r31->unk_5C = GWPlayerCfg[var_r31->unk_58].group; + var_r31->unk_60 = GWPlayerCfg[var_r31->unk_58].iscom; + var_r31->unk_64 = GWPlayerCfg[var_r31->unk_58].diff; + var_r31->unk_68 = GWPlayerCfg[var_r31->unk_58].character; + var_r31->unk_6C = GWPlayerCfg[var_r31->unk_58].pad_idx; +} + +void fn_1_137A4(omObjData *arg0, s32 arg1) +{ + MentDllUnkBss3114Struct *var_r31; + + var_r31 = &lbl_1_bss_3114[arg1]; + var_r31->unk_58 = arg1; + var_r31->unk_5C = GWPlayerCfg[var_r31->unk_58].group; + var_r31->unk_60 = GWPlayerCfg[var_r31->unk_58].iscom; + var_r31->unk_64 = GWPlayerCfg[var_r31->unk_58].diff; + var_r31->unk_68 = GWPlayerCfg[var_r31->unk_58].character; + var_r31->unk_6C = GWPlayerCfg[var_r31->unk_58].pad_idx; + arg0->model[1] = CharModelCreate(var_r31->unk_68, 1); + arg0->motion[1] = CharModelMotionCreate(var_r31->unk_68, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], var_r31->unk_68 + DATA_MAKE_NUM(DATADIR_MENT, 0x00)); + fn_1_59A0(arg0, 1, 2, 0, 1); + Hu3DModelPosSet(arg0->model[1], 1320.0f, 0.0f, 800.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, -60.0f, 0.0f); + Hu3DModelShadowSet(arg0->model[1]); + Hu3DModelLayerSet(arg0->model[1], 2); +} + +void fn_1_13970(void) +{ + MentDllUnkBss3114Struct *var_r28; + omObjData *var_r27; + s32 var_r26; + + var_r26 = lbl_1_bss_D4; + lbl_1_bss_D4 = var_r26 + 1; + var_r27 = omAddObjEx(lbl_1_bss_C8, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_3114[var_r26].unk_00 = var_r27; + lbl_1_bss_3114[var_r26].unk_04 = NULL; + if (lbl_1_bss_A8[0] <= 1) { + fn_1_1368C(var_r27, var_r26); + } + else if (lbl_1_bss_A8[0] == 0xA) { + fn_1_136F0(var_r27, 0); + } + else if (lbl_1_bss_A8[0] == 0xB) { + fn_1_137A4(var_r27, 0); + } + else { + fn_1_1368C(var_r27, var_r26); + } + while (TRUE) { + fn_1_4D8(); + if (lbl_1_bss_3114[var_r26].unk_04 == NULL) { + continue; + } + lbl_1_bss_3114[var_r26].unk_04(var_r27, &lbl_1_bss_3114[var_r26]); + } +} + +void fn_1_13D60(void) +{ + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + var_r31->unk_08 = 0.0f; + var_r31->unk_0C = 0.0f; + var_r31->unk_10 = 0.0f; + var_r31->unk_20 = -10.0f; + var_r31->unk_24 = 0.0f; + var_r31->unk_28 = 0.0f; + var_r31->unk_38 = 2900.0f; +} + +void fn_1_13DEC(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 0.0f; + sp8[3] = 0.0f; + sp8[4] = 0.0f; + sp8[8] = -10.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1150.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40++, 180.0f, 15.0f); +} + +void fn_1_13EDC(void) +{ + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + var_r31->unk_08 = 0.0f; + var_r31->unk_0C = 0.0f; + var_r31->unk_10 = 0.0f; + var_r31->unk_20 = -10.0f; + var_r31->unk_24 = 0.0f; + var_r31->unk_28 = 0.0f; + var_r31->unk_38 = 2900.0f; +} + +void fn_1_13F68(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 0.0f; + sp8[3] = 215.0f; + sp8[4] = 0.0f; + sp8[8] = 0.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1600.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40++, 60.0f, 10.0f); +} + +void fn_1_14058(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 0.0f; + sp8[3] = 215.0f; + sp8[4] = 0.0f; + sp8[8] = 0.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1600.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40++, 10.0f, 5.0f); +} + +void fn_1_14148(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 1200.0f; + sp8[3] = 215.0f; + sp8[4] = 0.0f; + sp8[8] = 0.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1600.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40++, 10.0f, 5.0f); +} + +void fn_1_14238(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 0.0f; + sp8[3] = 125.0f; + sp8[4] = 0.0f; + sp8[8] = -5.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1750.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40++, 30.0f, 10.0f); +} + +void fn_1_14328(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 1200.0f; + sp8[3] = 125.0f; + sp8[4] = 0.0f; + sp8[8] = -5.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1750.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40++, 30.0f, 10.0f); +} + +void fn_1_14418(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_A8[2] / 5; + var_r31 = &lbl_1_bss_64; + if (var_r31->unk_40 == 0x32) { + fn_1_5818(lbl_1_bss_35BC[var_r30].unk_00, 4, 4, 0, 0); + fn_1_5818(lbl_1_bss_35BC[var_r30].unk_00, 5, 5, 0, 0); + HuAudFXPlay(0x7D); + } + sp8[2] = 0.0f; + if (var_r30 == 1) { + sp8[2] = 1200.0f; + } + sp8[3] = 100.0f; + sp8[4] = 460.0f; + sp8[8] = 0.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 125.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40, 180.0f, 10.0f); + if (var_r31->unk_40++ >= 0x5A) { + if (var_r31->unk_40 == 0x5B) { + if (var_r30 == 0) { + lbl_1_bss_24[10] = HuAudFXPlay(0x22); + } + else { + lbl_1_bss_24[10] = HuAudFXPlay(0x23); + } + } + var_r31->unk_20 = fn_1_20C(var_r31->unk_20, -45.0f, var_r31->unk_40 - 0x5A, 90.0f); + Hu3DData[lbl_1_bss_35BC[var_r30].unk_00->model[4]].rot.x = fn_1_20C(0.0f, 45.0f, var_r31->unk_40 - 0x5A, 90.0f); + } +} + +void fn_1_146D0(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 0.0f; + sp8[3] = 215.0f; + sp8[4] = 0.0f; + sp8[8] = 0.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1600.0f; + fn_1_5150(var_r31, sp8, var_r31->unk_40++, 30.0f, 10.0f); +} + +void fn_1_147C0(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 1200.0f; + sp8[3] = 215.0f; + sp8[4] = 0.0f; + sp8[8] = 0.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1600.0f; + fn_1_5150(var_r31, sp8, var_r31->unk_40++, 30.0f, 10.0f); +} + +void fn_1_148B0(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 0.0f; + sp8[3] = 30.0f; + sp8[4] = 0.0f; + sp8[8] = -5.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 1100.0f; + fn_1_4138(var_r31, sp8, var_r31->unk_40++, 30.0f, 10.0f); +} + +void fn_1_149A0(void) +{ + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + var_r31->unk_08 = 0.0f; + var_r31->unk_0C = 125.0f; + var_r31->unk_10 = 0.0f; + var_r31->unk_20 = 5.0f; + var_r31->unk_24 = 0.0f; + var_r31->unk_28 = 0.0f; + var_r31->unk_38 = 1750.0f; +} + +void fn_1_14A2C(void) +{ + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + var_r31->unk_08 = 1200.0f; + var_r31->unk_0C = 125.0f; + var_r31->unk_10 = 0.0f; + var_r31->unk_20 = -4.0f; + var_r31->unk_24 = 0.0f; + var_r31->unk_28 = 0.0f; + var_r31->unk_38 = 1750.0f; +} + +void fn_1_14AB8(void) +{ + float sp8[18]; + MentDllUnkBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + sp8[2] = 0.0f; + sp8[3] = 125.0f; + sp8[4] = 0.0f; + sp8[8] = 0.0f; + sp8[9] = 0.0f; + sp8[10] = 0.0f; + sp8[14] = 125.0f; + fn_1_5150(var_r31, sp8, var_r31->unk_40++, 120.0f, 10.0f); +} + +void fn_1_14BA8(void) +{ + s32 var_r31; + s32 var_r30; + var_r30 = lbl_1_bss_35BC[0].unk_30; + for (var_r31 = 0; var_r31 < 0x35; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31, 0); + HuSprAttrReset(var_r30, var_r31, 4); + HuSprAttrReset(var_r30, var_r31 + 8, 4); + } + HuSprAttrReset(var_r30, 0x28, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 0x10, 0); + HuSprBankSet(var_r30, var_r31 + 0x14, 0); + HuSprAttrReset(var_r30, var_r31 + 0x29, 4); + HuSprAttrReset(var_r30, var_r31 + 0x2D, 4); + } + HuSprGrpPosSet(var_r30, 0.0f, -500.0f); +} + +s32 lbl_1_data_57C[4][4] = { + { 0xA8, 0x5A, 0x78, 0x33 }, + { 0xF8, 0xBE, 0x1CA, 0x33 }, + { 0x148, 0x5A, 0x78, 0xDE }, + { 0x198, 0xBE, 0x1CA, 0xDE }, +}; +s32 lbl_1_data_5BC[4][2] = { + { 0x1B, 0x18 }, + { 0x49, 0x18 }, + { 0x77, 0x18 }, + { 0xA5, 0x18 }, +}; +float lbl_1_data_5DC[5][5] = { + { 262.0f, 119.0f, 1.3f, 227.0f, 455.0f }, + { 314.0f, 168.0f, 0.75f, 265.0f, 416.0f }, + { 366.0f, 204.0f, 0.75f, 240.0f, 440.0f }, + { 418.0f, 240.0f, 0.75f, 300.0f, 381.0f }, + { -1.0f, 289.0f, 1.3f, 220.0f, 460.0f }, +}; +s32 lbl_1_data_640[4][5] = { + { 0xB4, 0x60, 0x87, 0, 0 }, + { 0xFC, 0xB8, 0xF6, 0xD4, 0x1D4 }, + { 0x144, 0x60, 0x11A, 0xE6, 0x1C2 }, + { 0x18C, 0xB8, 0, 0, 0 }, +}; +s32 lbl_1_data_690[4][4] = { + { 0xB1, 0x68, 0x78, 0x37 }, + { 0xFB, 0x68, 0x1CA, 0x37 }, + { 0x145, 0x68, 0x78, 0x8E }, + { 0x18F, 0x68, 0x1CA, 0x8E }, +}; + +void fn_1_14CE0(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_35BC[0].unk_30; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_60 != 0) { + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x10, 4); + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x14, 4); + } + else { + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x10, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x14, 4); + } + HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x10, lbl_1_data_57C[lbl_1_bss_3114[var_r31].unk_68 % 4][0], + lbl_1_data_57C[lbl_1_bss_3114[var_r31].unk_68 / 4][1]); + HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x14, lbl_1_data_57C[lbl_1_bss_3114[var_r31].unk_68 % 4][0], + lbl_1_data_57C[lbl_1_bss_3114[var_r31].unk_68 / 4][1]); + } + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0x32) { + var_f31 = fn_1_32C(-500.0f, 10.0f, var_r31, 50.0f); + } + else { + var_f31 = fn_1_254(10.0f, 2.06f, var_r31 - 0x32, 10.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_30, 0.0f, var_f31); + } +} + +void fn_1_15098(void) +{ + float var_f31; + s32 var_r31; + + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0xA) { + var_f31 = fn_1_32C(2.06f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_254(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_30, 0.0f, var_f31); + } +} + +void fn_1_151B8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + AnimData *var_r26; + AnimData *var_r25; + AnimData *var_r24; + AnimData *var_r23; + AnimData *var_r22; + + var_r30 = HuSprGrpCreate(0x35); + arg0->unk_30 = var_r30; + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x22)); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + var_r29 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MENT, 0x1A)), 0x3E8, 0); + HuSprGrpMemberSet(var_r30, var_r31, var_r29); + HuSprPosSet(var_r30, var_r31, lbl_1_data_57C[var_r31 % 4][0], lbl_1_data_57C[var_r31 / 4][1]); + var_r29 = HuSprCreate(var_r26, 0x3F2, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 8, var_r29); + HuSprTPLvlSet(var_r30, var_r31 + 8, 0.5f); + HuSprPosSet(var_r30, var_r31 + 8, lbl_1_data_57C[var_r31 % 4][0] + 1, lbl_1_data_57C[var_r31 / 4][1] + 2); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MENT, 0x23)), 0, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x10, var_r29); + var_r29 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MENT, 0x28)), 0xA, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x14, var_r29); + } + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x27)); + var_r25 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x2C)); + var_r24 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x2D)); + var_r23 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x2F)); + var_r22 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x2E)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = HuSprCreate(var_r26, 0, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x18, var_r29); + var_r29 = HuSprCreate(var_r25, 0x1E, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x1C, var_r29); + var_r29 = HuSprCreate(var_r24, 0xA, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x20, var_r29); + var_r29 = HuSprCreate(var_r23, 0x14, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x24, var_r29); + HuSprTPLvlSet(var_r30, var_r31 + 0x24, 0.5f); + var_r29 = HuSprCreate(var_r22, 0x14, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x31, var_r29); + } + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x17)), 0x7D0, 0); + HuSprGrpMemberSet(var_r30, 0x28, var_r29); + HuSprTPLvlSet(var_r30, 0x28, 0.8f); + fn_1_6534(var_r30, 0x28, 288.0f, 240.0f); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x18)); + var_r25 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x19)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = HuSprCreate(var_r26, 0x7BC, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x29, var_r29); + HuSprBankSet(var_r30, var_r31 + 0x29, var_r31); + fn_1_6534(var_r30, var_r31 + 0x29, lbl_1_data_57C[var_r31][2], lbl_1_data_57C[var_r31][3]); + var_r29 = HuSprCreate(var_r25, 0x7C6, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x2D, var_r29); + HuSprBankSet(var_r30, var_r31 + 0x2D, var_r31); + HuSprTPLvlSet(var_r30, var_r31 + 0x2D, 0.5f); + fn_1_6534(var_r30, var_r31 + 0x2D, lbl_1_data_57C[var_r31][2] + 1, lbl_1_data_57C[var_r31][3] + 6); + } + var_r27 = lbl_1_bss_35BC[0].unk_30; + for (var_r28 = 0; var_r28 < 0x35; var_r28++) { + HuSprAttrSet(var_r27, var_r28, 4); + } + for (var_r28 = 0; var_r28 < 8; var_r28++) { + HuSprBankSet(var_r27, var_r28, 0); + HuSprAttrReset(var_r27, var_r28, 4); + HuSprAttrReset(var_r27, var_r28 + 8, 4); + } + HuSprAttrReset(var_r27, 0x28, 4); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + HuSprBankSet(var_r27, var_r28 + 0x10, 0); + HuSprBankSet(var_r27, var_r28 + 0x14, 0); + HuSprAttrReset(var_r27, var_r28 + 0x29, 4); + HuSprAttrReset(var_r27, var_r28 + 0x2D, 4); + } + HuSprGrpPosSet(var_r27, 0.0f, -500.0f); +} + +void fn_1_15950(void) +{ + float var_f31; + float var_f30; + s32 var_r31; + MentDllUnkBss3114Struct *var_r30; + s32 var_r29; + s32 var_r28; + + var_r29 = lbl_1_bss_35BC[0].unk_30; + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r29, var_r31, 0); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprBankSet(var_r29, var_r31 + 0x10, 0); + HuSprBankSet(var_r29, var_r31 + 0x14, 0); + HuSprBankSet(var_r29, var_r31 + 0x18, 0); + HuSprBankSet(var_r29, var_r31 + 0x1C, 0); + HuSprBankSet(var_r29, var_r31 + 0x20, 0); + } + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + fn_1_4D8(); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + var_r30 = &lbl_1_bss_3114[var_r28]; + var_f31 = fn_1_32C(lbl_1_data_57C[var_r30->unk_68 % 4][0], lbl_1_data_57C[var_r30->unk_58 % 4][0], var_r31, 10.0f); + var_f30 = fn_1_32C(lbl_1_data_57C[var_r30->unk_68 / 4][1], lbl_1_data_57C[var_r30->unk_58 / 4][1], var_r31, 10.0f); + HuSprPosSet(var_r29, var_r30->unk_58 + 0x10, var_f31, var_f30); + HuSprPosSet(var_r29, var_r30->unk_58 + 0x14, var_f31, var_f30); + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_3114[var_r31].unk_68 = lbl_1_bss_3114[var_r31].unk_58; + lbl_1_bss_3114[var_r31].unk_70[0] = 0; + } +} + +void fn_1_15CB4(omObjData *arg0, MentDllUnkBss3114Struct *arg1) +{ + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + var_r25 = lbl_1_bss_35BC[0].unk_30; + var_r27 = 0; + var_r26 = 0; + var_r30 = arg1->unk_68 % 4; + var_r24 = var_r30; + var_r29 = arg1->unk_68 / 4; + var_r23 = var_r29; + if (arg1->unk_70[0] == 0) { + if ((HuPadBtnDown[arg1->unk_6C] & PAD_BUTTON_A) != 0) { + arg1->unk_70[0] = 1; + HuSprBankSet(var_r25, arg1->unk_68, 1); + HuSprBankSet(var_r25, arg1->unk_58 + 0x10, 1); + HuSprBankSet(var_r25, arg1->unk_58 + 0x14, 1); + HuAudFXPlay(arg1->unk_68 + 0x6D); + } + else { + if ((HuPadStkX[arg1->unk_6C] >= 5) || ((HuPadBtn[arg1->unk_6C] & 2) != 0)) { + var_r30++; + var_r27 = 1; + if (var_r30 > 3) { + var_r30 = 3; + } + } + else if ((HuPadStkX[arg1->unk_6C] <= -5) || ((HuPadBtn[arg1->unk_6C] & 1) != 0)) { + var_r30--; + var_r27 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if ((HuPadStkY[arg1->unk_6C] <= -5) || ((HuPadBtn[arg1->unk_6C] & 4) != 0)) { + var_r29++; + var_r26 = 1; + if (var_r29 > 1) { + var_r29 = 1; + } + } + else if ((HuPadStkY[arg1->unk_6C] >= 5) || ((HuPadBtn[arg1->unk_6C] & 8) != 0)) { + var_r29--; + var_r26 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + } + else if ((HuPadBtnDown[arg1->unk_6C] & PAD_BUTTON_B) != 0) { + arg1->unk_70[0] = 0; + HuSprBankSet(var_r25, arg1->unk_68, 0); + HuSprBankSet(var_r25, arg1->unk_58 + 0x10, 0); + HuSprBankSet(var_r25, arg1->unk_58 + 0x14, 0); + HuAudFXPlay(3); + } + if (arg1->unk_68 != (var_r30 + (var_r29 * 4))) { + do { + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if ((var_r28 != arg1->unk_58) && (lbl_1_bss_3114[var_r28].unk_60 == 0) + && ((var_r30 + (var_r29 * 4)) == lbl_1_bss_3114[var_r28].unk_68)) { + if ((var_r27 == 0) || (var_r26 == 0)) { + if (((var_r30 + var_r27) > 3) || ((var_r30 + var_r27) < 0)) { + var_r30 = var_r24; + } + else { + var_r30 += var_r27; + } + if (((var_r29 + var_r26) > 1) || ((var_r29 + var_r26) < 0)) { + var_r29 = var_r23; + } + else { + var_r29 += var_r26; + } + } + else if (((var_r30 + var_r27) <= 3) && ((var_r30 + var_r27) >= 0)) { + var_r30 += var_r27; + } + else if (((var_r29 + var_r26) <= 1) && ((var_r29 + var_r26) >= 0)) { + var_r29 += var_r26; + } + else { + var_r30 = var_r24; + var_r29 = var_r23; + } + break; + } + } + } while (var_r28 != 4); + if (arg1->unk_68 != (var_r30 + (var_r29 * 4))) { + arg1->unk_68 = var_r30 + (var_r29 * 4); + HuAudFXPlay(0); + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_4D8(); + var_f31 = fn_1_32C(lbl_1_data_57C[var_r24][0], lbl_1_data_57C[var_r30][0], var_r28, 10.0f); + var_f30 = fn_1_32C(lbl_1_data_57C[var_r23][1], lbl_1_data_57C[var_r29][1], var_r28, 10.0f); + HuSprPosSet(var_r25, arg1->unk_58 + 0x10, var_f31, var_f30); + HuSprPosSet(var_r25, arg1->unk_58 + 0x14, var_f31, var_f30); + } + } + } +} + +void fn_1_162A0(MentDllUnkBss3114Struct *arg0) +{ + s32 var_r30; + + var_r30 = lbl_1_bss_35BC[0].unk_30; + arg0->unk_64 = 0; + HuSprBankSet(var_r30, arg0->unk_58 + 0x20, arg0->unk_64); + HuSprPosSet(var_r30, arg0->unk_58 + 0x20, lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x23); + HuSprPosSet(var_r30, arg0->unk_58 + 0x24, lbl_1_data_57C[arg0->unk_68 % 4][0] + 1, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); + HuSprAttrReset(var_r30, arg0->unk_58 + 0x20, 4); + HuSprAttrReset(var_r30, arg0->unk_58 + 0x24, 4); +} + +s32 fn_1_1648C(MentDllUnkBss3114Struct *arg0) +{ + float var_f31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r28 = 0; + var_r29 = lbl_1_bss_35BC[0].unk_30; +loop_1: + fn_1_4D8(); + var_r28 = 0; + var_r26 = arg0->unk_64; + if (HuPadStkX[lbl_1_bss_3114->unk_6C] >= 5) { + block_3: + if (lbl_1_bss_A8[5] == 1) { + arg0->unk_64++; + var_r28 = 1; + if (arg0->unk_64 > 3) { + arg0->unk_64 = 0; + } + } + else { + arg0->unk_64++; + var_r28 = 1; + if (arg0->unk_64 > 2) { + arg0->unk_64 = 0; + } + } + block_19: + if (arg0->unk_64 != var_r26) { + HuAudFXPlay(0); + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_4D8(); + var_f31 = fn_1_32C(lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 % 4][0] + (var_r28 * 0xA), var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_58 + 0x20, var_f31, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x23); + HuSprPosSet(var_r29, arg0->unk_58 + 0x24, 1.0f + var_f31, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); + } + HuSprBankSet(var_r29, arg0->unk_58 + 0x20, arg0->unk_64); + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_4D8(); + var_f31 = fn_1_32C(lbl_1_data_57C[arg0->unk_68 % 4][0] + (var_r28 * 0xA), lbl_1_data_57C[arg0->unk_68 % 4][0], var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_58 + 0x20, var_f31, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x23); + HuSprPosSet(var_r29, arg0->unk_58 + 0x24, 1.0f + var_f31, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); + } + } + goto loop_1; + } + if ((HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_RIGHT) != 0) { + goto block_3; + } + if (HuPadStkX[lbl_1_bss_3114->unk_6C] <= -5) { + block_10: + if (lbl_1_bss_A8[5] == 1) { + arg0->unk_64--; + var_r28 = -1; + if (arg0->unk_64 < 0) { + arg0->unk_64 = 3; + } + } + else { + arg0->unk_64--; + var_r28 = -1; + if (arg0->unk_64 < 0) { + arg0->unk_64 = 2; + } + } + goto block_19; + } + if ((HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_LEFT) != 0) { + goto block_10; + } + if ((HuPadBtnDown[0] & PAD_BUTTON_A) != 0) { + var_r27 = 1; + HuAudFXPlay(2); + } + else if ((HuPadBtnDown[0] & PAD_BUTTON_B) != 0) { + var_r27 = 0; + HuAudFXPlay(3); + } + else { + goto block_19; + } + if (var_r27 == 1) { + HuSprPosSet(var_r29, arg0->unk_58 + 0x31, lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x23); + HuSprBankSet(var_r29, arg0->unk_58 + 0x31, arg0->unk_64); + HuSprAttrReset(var_r29, arg0->unk_58 + 0x31, 4); + HuSprAttrSet(var_r29, arg0->unk_58 + 0x20, 4); + } + return var_r27; +} + +void fn_1_16B68(omObjData *arg0, MentDllUnkBss3114Struct *arg1) +{ + s32 sp8; + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r23; + s32 var_r22; + + var_r27 = lbl_1_bss_35BC[0].unk_30; + var_r26 = 0; + var_r25 = 0; + sp8 = arg1->unk_64; + var_r23 = var_r30 = arg1->unk_68 % 4; + var_r29 = arg1->unk_68 / 4; + var_r22 = var_r29; + if (arg1->unk_70[0] == 0) { + if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_A) != 0) { + arg1->unk_70[0] = 1; + HuSprBankSet(var_r27, arg1->unk_68, 1); + HuSprBankSet(var_r27, arg1->unk_58 + 0x18, 1); + HuSprBankSet(var_r27, arg1->unk_58 + 0x1C, 1); + HuAudFXPlay(arg1->unk_68 + 0x6D); + fn_1_162A0(arg1); + } + else { + if ((HuPadStkX[lbl_1_bss_3114->unk_6C] >= 5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 2) != 0)) { + var_r30++; + var_r26 = 1; + if (var_r30 > 3) { + var_r30 = 3; + } + } + else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] <= -5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 1) != 0)) { + var_r30--; + var_r26 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if ((HuPadStkY[lbl_1_bss_3114->unk_6C] <= -5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 4) != 0)) { + var_r29++; + var_r25 = 1; + if (var_r29 > 1) { + var_r29 = 1; + } + } + else if ((HuPadStkY[lbl_1_bss_3114->unk_6C] >= 5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 8) != 0)) { + var_r29--; + var_r25 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + } + else if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B) != 0) { + arg1->unk_70[0] = arg1->unk_70[2] = 0; + HuSprBankSet(var_r27, arg1->unk_68, 0); + HuSprBankSet(var_r27, arg1->unk_58 + 0x18, 0); + HuSprBankSet(var_r27, arg1->unk_58 + 0x1C, 0); + HuSprAttrSet(var_r27, arg1->unk_58 + 0x20, 4); + HuSprAttrSet(var_r27, arg1->unk_58 + 0x24, 4); + HuAudFXPlay(3); + } + if (arg1->unk_68 != (var_r30 + (var_r29 * 4))) { + do { + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if ((var_r28 != arg1->unk_58) && (lbl_1_bss_3114[var_r28].unk_70[0] == 1) + && ((var_r30 + (var_r29 * 4)) == lbl_1_bss_3114[var_r28].unk_68)) { + if ((var_r26 == 0) || (var_r25 == 0)) { + if (((var_r30 + var_r26) > 3) || ((var_r30 + var_r26) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r26; + } + if (((var_r29 + var_r25) > 1) || ((var_r29 + var_r25) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r25; + } + } + else if (((var_r30 + var_r26) <= 3) && ((var_r30 + var_r26) >= 0)) { + var_r30 += var_r26; + } + else if (((var_r29 + var_r25) <= 1) && ((var_r29 + var_r25) >= 0)) { + var_r29 += var_r25; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + } + break; + } + } + } while (var_r28 != 4); + if (arg1->unk_68 != (var_r30 + (var_r29 * 4))) { + arg1->unk_68 = var_r30 + (var_r29 * 4); + HuAudFXPlay(0); + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_4D8(); + var_f31 = fn_1_32C(lbl_1_data_57C[var_r23][0], lbl_1_data_57C[var_r30][0], var_r28, 10.0f); + var_f30 = fn_1_32C(lbl_1_data_57C[var_r22][1], lbl_1_data_57C[var_r29][1], var_r28, 10.0f); + HuSprPosSet(var_r27, arg1->unk_58 + 0x18, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_58 + 0x1C, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_58 + 0x20, var_f31, 35.0f + var_f30); + HuSprPosSet(var_r27, arg1->unk_58 + 0x24, 1.0f + var_f31, 37.0f + var_f30); + } + } + } + (void)var_r30; +} + +void fn_1_173FC(MentDllUnkBss3114Struct *arg0) +{ + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_bss_35BC[0].unk_30; + do { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if ((var_r29 != arg0->unk_58) && (lbl_1_bss_3114[var_r29].unk_70[0] == 1) && (arg0->unk_68 == lbl_1_bss_3114[var_r29].unk_68)) { + arg0->unk_68++; + break; + } + } + } while (var_r29 != 4); + arg0->unk_64 = 0; + HuSprBankSet(var_r30, arg0->unk_68, 0); + HuSprBankSet(var_r30, arg0->unk_58 + 0x18, 0); + HuSprBankSet(var_r30, arg0->unk_58 + 0x1C, 0); + HuSprBankSet(var_r30, arg0->unk_58 + 0x20, arg0->unk_64); + HuSprBankSet(var_r30, arg0->unk_58 + 0x31, arg0->unk_64); + HuSprPosSet(var_r30, arg0->unk_58 + 0x18, lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 / 4][1]); + HuSprPosSet(var_r30, arg0->unk_58 + 0x1C, lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 / 4][1]); + HuSprPosSet(var_r30, arg0->unk_58 + 0x20, lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x23); + HuSprPosSet(var_r30, arg0->unk_58 + 0x24, lbl_1_data_57C[arg0->unk_68 % 4][0] + 1, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); + HuSprPosSet(var_r30, arg0->unk_58 + 0x31, lbl_1_data_57C[arg0->unk_68 % 4][0] + 1, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); + arg0->unk_70[2] = 0; + HuSprAttrReset(var_r30, arg0->unk_58 + 0x18, 4); + HuSprAttrReset(var_r30, arg0->unk_58 + 0x1C, 4); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x20, 4); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x24, 4); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x31, 4); +} + +void fn_1_17914(MentDllUnkBss3114Struct *arg0) +{ + s32 var_r30; + + var_r30 = lbl_1_bss_35BC[0].unk_30; + HuSprBankSet(var_r30, arg0->unk_68, 0); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x18, 4); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x1C, 4); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x20, 4); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x24, 4); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x31, 4); +} + +void fn_1_179DC(void) +{ + MentDllUnkBss3114Struct *var_r31; + s32 var_r29; + s32 var_r30; + + var_r30 = lbl_1_bss_35BC[0].unk_34; + for (var_r29 = 0; var_r29 < 0x11; var_r29++) { + HuSprAttrSet(var_r30, var_r29, 4); + } + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r31 = &lbl_1_bss_3114[var_r29]; + HuSprPosSet(var_r30, var_r31->unk_68, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1]); + HuSprAttrReset(var_r30, var_r31->unk_68, 4); + if (var_r31->unk_60 == 0) { + HuSprBankSet(var_r30, var_r31->unk_58 + 8, var_r31->unk_58); + HuSprPosSet(var_r30, var_r31->unk_58 + 8, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); + HuSprAttrReset(var_r30, var_r31->unk_58 + 8, 4); + } + else { + HuSprBankSet(var_r30, var_r31->unk_58 + 0xC, var_r31->unk_64); + HuSprPosSet(var_r30, var_r31->unk_58 + 0xC, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); + HuSprAttrReset(var_r30, var_r31->unk_58 + 0xC, 4); + } + } + HuSprAttrReset(var_r30, 0x10, 4); + HuSprGrpPosSet(var_r30, 16.0f, -500.0f); +} + +void fn_1_17CC8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + MentDllUnkBss3114Struct *var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + AnimData *var_r25; + AnimData *var_r24; + + var_r26 = HuSprGrpCreate(0x11); + arg0->unk_34 = var_r26; + for (var_r30 = 0; var_r30 < 8; var_r30++) { + var_r27 = HuSprCreate(HuSprAnimReadFile(var_r30 + DATA_MAKE_NUM(DATADIR_MENT, 0x31)), 0x3E8, 0); + HuSprGrpMemberSet(var_r26, var_r30, var_r27); + } + var_r25 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3A)); + var_r24 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3B)); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r27 = HuSprCreate(var_r25, 0x3DE, 0); + HuSprGrpMemberSet(var_r26, var_r30 + 8, var_r27); + var_r27 = HuSprCreate(var_r24, 0x3DE, 0); + HuSprGrpMemberSet(var_r26, var_r30 + 0xC, var_r27); + } + var_r27 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x30)), 0x7D0, 0); + HuSprGrpMemberSet(var_r26, 0x10, var_r27); + HuSprTPLvlSet(var_r26, 0x10, 0.8f); + HuSprPosSet(var_r26, 0x10, 96.0f, 32.0f); + var_r29 = lbl_1_bss_35BC[0].unk_34; + for (var_r28 = 0; var_r28 < 0x11; var_r28++) { + HuSprAttrSet(var_r29, var_r28, 4); + } + for (var_r28 = 0; var_r28 < 4; var_r28++) { + var_r31 = &lbl_1_bss_3114[var_r28]; + HuSprPosSet(var_r29, var_r31->unk_68, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1]); + HuSprAttrReset(var_r29, var_r31->unk_68, 4); + if (var_r31->unk_60 == 0) { + HuSprBankSet(var_r29, var_r31->unk_58 + 8, var_r31->unk_58); + HuSprPosSet(var_r29, var_r31->unk_58 + 8, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); + HuSprAttrReset(var_r29, var_r31->unk_58 + 8, 4); + } + else { + HuSprBankSet(var_r29, var_r31->unk_58 + 0xC, var_r31->unk_64); + HuSprPosSet(var_r29, var_r31->unk_58 + 0xC, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); + HuSprAttrReset(var_r29, var_r31->unk_58 + 0xC, 4); + } + } + HuSprAttrReset(var_r29, 0x10, 4); + HuSprGrpPosSet(var_r29, 16.0f, -500.0f); +} + +void fn_1_1811C(void) +{ + float var_f31; + MentDllUnkBss3114Struct *var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r30 = lbl_1_bss_35BC[0].unk_34; + for (var_r29 = 0; var_r29 < 0x11; var_r29++) { + HuSprAttrSet(var_r30, var_r29, 4); + } + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r31 = &lbl_1_bss_3114[var_r29]; + HuSprPosSet(var_r30, var_r31->unk_68, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1]); + HuSprAttrReset(var_r30, var_r31->unk_68, 4); + if (var_r31->unk_60 == 0) { + HuSprBankSet(var_r30, var_r31->unk_58 + 8, var_r31->unk_58); + HuSprPosSet(var_r30, var_r31->unk_58 + 8, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); + HuSprAttrReset(var_r30, var_r31->unk_58 + 8, 4); + } + else { + HuSprBankSet(var_r30, var_r31->unk_58 + 0xC, var_r31->unk_64); + HuSprPosSet(var_r30, var_r31->unk_58 + 0xC, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); + HuSprAttrReset(var_r30, var_r31->unk_58 + 0xC, 4); + } + } + HuSprAttrReset(var_r30, 0x10, 4); + HuSprGrpPosSet(var_r30, 16.0f, -500.0f); + for (var_r28 = 0; var_r28 <= 0x3C; var_r28++) { + fn_1_4D8(); + if (var_r28 <= 0x32) { + var_f31 = fn_1_32C(-500.0f, 50.0f, var_r28, 50.0f); + } + else { + var_f31 = fn_1_254(50.0f, 40.0f, var_r28 - 0x32, 10.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_34, 16.0f, var_f31); + } +} + +void fn_1_1850C(void) +{ + float var_f31; + s32 var_r31; + + lbl_1_bss_35BC[0].unk_08[0] = -1; + lbl_1_bss_35BC[0].unk_04 = NULL; + for (var_r31 = 0; var_r31 <= 0x4B; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0xA) { + var_f31 = fn_1_32C(40.0f, 50.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_254(50.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_34, 16.0f, var_f31); + if (var_r31 >= 0xF) { + var_f31 = fn_1_254(210.0f, -500.0f, var_r31 - 0xF, 60.0f); + HuSprGrpData[lbl_1_bss_35BC[0].unk_38].y = (s32)fn_1_234(HuSprGrpData[lbl_1_bss_35BC[0].unk_38].y, var_f31, 10.0f); + } + } +} + +void fn_1_1872C(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_35BC[0].unk_38; + for (var_r31 = 0; var_r31 < 7; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } +} + +void fn_1_18788(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r31 = HuSprGrpCreate(7); + arg0->unk_38 = var_r31; + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3C)), 0x7DA, 0); + HuSprGrpMemberSet(var_r31, 0, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3D)), 0x7C6, 0); + HuSprGrpMemberSet(var_r31, 1, var_r30); + HuSprPosSet(var_r31, 1, 0.0f, -80.0f); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3E)), 0x7D0, 0); + HuSprGrpMemberSet(var_r31, 2, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3F)), 0x7D0, 0); + HuSprGrpMemberSet(var_r31, 3, var_r30); + HuSprPosSet(var_r31, 3, 0.0f, -80.0f); + if (lbl_1_bss_A8[0] != 0) { + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x5A)), 0x7BC, 0); + HuSprGrpMemberSet(var_r31, 4, var_r30); + HuSprPosSet(var_r31, 4, -140.0f, -86.0f); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x5B)), 0x7BC, 0); + HuSprGrpMemberSet(var_r31, 5, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x5C)), 0x7D0, 0); + HuSprGrpMemberSet(var_r31, 6, var_r30); + HuSprScaleSet(var_r31, 6, 1.0f, 0.875f); + HuSprTPLvlSet(var_r31, 6, 0.5f); + } + HuSprExecLayerSet(0x40, 1); + HuSprGrpDrawNoSet(var_r31, 0x40); + var_r28 = lbl_1_bss_35BC[0].unk_38; + for (var_r29 = 0; var_r29 < 7; var_r29++) { + HuSprAttrSet(var_r28, var_r29, 4); + } +} + +void fn_1_18A54(s32 arg0) +{ + float var_f31; + float var_f30; + s32 var_r31; + + var_r31 = lbl_1_bss_35BC[0].unk_38; + if (arg0 != 5) { + HuSprBankSet(var_r31, 0, arg0); + HuSprBankSet(var_r31, 1, arg0); + HuSprAttrSet(var_r31, 2, 4); + HuSprAttrSet(var_r31, 3, 4); + HuSprAttrReset(var_r31, 0, 4); + HuSprAttrReset(var_r31, 1, 4); + if (lbl_1_bss_A8[0] != 0) { + if ((arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2)) != 0) || (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3)) != 0) + || (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4)) != 0) || (arg0 == 3 && (_CheckFlag(FLAG_ID_MAKE(0, 5)) != 0)) + || (arg0 == 4 && (_CheckFlag(FLAG_ID_MAKE(0, 6)) != 0))) { + HuSprAttrReset(var_r31, 4, 4); + HuSprAttrReset(var_r31, 5, 4); + HuSprTPLvlSet(var_r31, 5, 0.8f); + HuSprAttrReset(var_r31, 6, 4); + HuSprTPLvlSet(var_r31, 6, 0.5f); + } + else { + HuSprAttrSet(var_r31, 4, 4); + HuSprAttrSet(var_r31, 5, 4); + HuSprAttrSet(var_r31, 6, 4); + } + } + } + else { + HuSprAttrSet(var_r31, 0, 4); + HuSprAttrSet(var_r31, 1, 4); + HuSprAttrReset(var_r31, 2, 4); + HuSprAttrReset(var_r31, 3, 4); + } + lbl_1_bss_35BC[0].unk_08[0] = arg0; + lbl_1_bss_35BC[0].unk_1C[1] = (rand8() % 10) * 0x24; + HuSprGrpScaleSet(var_r31, 0.0f, 0.0f); + for (arg0 = 0; arg0 <= 0xF; arg0++) { + fn_1_4D8(); + if (arg0 <= 0xA) { + var_f31 = fn_1_32C(0.0f, 1.0f, arg0, 10.0f); + var_f30 = 0.01f; + } + else { + var_f31 = 1.0f; + var_f30 = fn_1_32C(0.01f, 1.0f, arg0 - 0xA, 5.0f); + } + HuSprGrpScaleSet(var_r31, var_f31, var_f30); + } +} + +void fn_1_18DCC(void) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r29 = lbl_1_bss_35BC[0].unk_38; + for (var_r31 = 0; var_r31 <= 0xF; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0xA) { + var_f31 = 1.0f; + var_f30 = fn_1_32C(1.0f, 0.01f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_32C(1.0f, 0.0f, var_r31 - 0xA, 5.0f); + var_f30 = 0.01f; + } + HuSprGrpScaleSet(var_r29, var_f31, var_f30); + } + var_r28 = lbl_1_bss_35BC[0].unk_38; + for (var_r30 = 0; var_r30 < 7; var_r30++) { + HuSprAttrSet(var_r28, var_r30, 4); + } + lbl_1_bss_35BC[0].unk_08[0] = -1; + lbl_1_bss_35BC[0].unk_04 = NULL; +} + +void fn_1_18F74(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + Vec sp14; + Vec sp8; + s32 var_r31; + + var_r31 = lbl_1_bss_35BC[0].unk_38; + if (lbl_1_bss_35BC[0].unk_08[0] != -1) { + sp14.x = lbl_1_data_D8[lbl_1_bss_35BC[0].unk_08[0]].x; + sp14.y = 0.0f; + sp14.z = lbl_1_data_D8[lbl_1_bss_35BC[0].unk_08[0]].z; + Hu3D3Dto2D(&sp14, 1, &sp8); + sp8.y = fn_1_3F4(210.0f, 220.0f, lbl_1_bss_35BC[0].unk_1C[1]++, 360.0f); + if (lbl_1_bss_35BC[0].unk_1C[1] >= 0x168) { + lbl_1_bss_35BC[0].unk_1C[1] = 0; + } + HuSprGrpPosSet(var_r31, sp8.x, (s32)sp8.y); + } +} + +void fn_1_190E8(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_35BC[0].unk_3C; + for (var_r31 = 0; var_r31 < 0x5B; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (lbl_1_bss_A8[2] != 5) { + HuSprBankSet(var_r30, 0, lbl_1_bss_A8[2]); + HuSprAttrReset(var_r30, 0, 4); + } + else { + HuSprAttrReset(var_r30, 1, 4); + } + HuSprAttrReset(var_r30, 2, 4); + HuSprPosSet(var_r30, 2, 288.0f, lbl_1_data_5DC[0][1]); + HuSprScaleSet(var_r30, 2, 1.0f, lbl_1_data_5DC[0][2]); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 3, 4); + HuSprPosSet(var_r30, var_r31 + 3, lbl_1_data_5DC[0][var_r31 + 3], lbl_1_data_5DC[0][1]); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 7, 4); + HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 7, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], lbl_1_data_5DC[0][1]); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0xF, 4); + HuSprPosSet( + var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0xF, 1.0f + lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 2.0f + lbl_1_data_5DC[0][1]); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 0x1F, 4); + HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 0x1F, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], lbl_1_data_5DC[4][1] - 9.0f); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x27, 4); + HuSprPosSet( + var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x27, 1.0f + lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], lbl_1_data_5DC[4][1] - 7.0f); + if (lbl_1_bss_3114[var_r31].unk_60 != 0) { + HuSprAttrReset(var_r30, var_r31 + 0x1B, 4); + HuSprBankSet(var_r30, var_r31 + 0x1B, lbl_1_bss_3114[var_r31].unk_64); + HuSprPosSet(var_r30, var_r31 + 0x1B, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 21.0f + lbl_1_data_5DC[0][1]); + } + else { + HuSprAttrReset(var_r30, var_r31 + 0x17, 4); + HuSprBankSet(var_r30, var_r31 + 0x17, lbl_1_bss_3114[var_r31].unk_58); + HuSprPosSet(var_r30, var_r31 + 0x17, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0] - 8.0f, lbl_1_data_5DC[0][1] - 21.0f); + } + HuSprPosSet(var_r30, var_r31 + 0x2F, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 20.0f + lbl_1_data_5DC[4][1]); + HuSprAttrReset(var_r30, var_r31 + 0x2F, 4); + HuSprPosSet(var_r30, var_r31 + 0x33, 10.0f + lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 21.0f + lbl_1_data_5DC[4][1]); + HuSprAttrReset(var_r30, var_r31 + 0x33, 4); + HuSprBankSet(var_r30, var_r31 + 0x33, 0); + HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 0x37, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], lbl_1_data_5DC[4][1] - 7.0f); + HuSprPosSet(var_r30, var_r31 + 0x3F, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 23.0f + lbl_1_data_5DC[4][1]); + HuSprPosSet(var_r30, var_r31 + 0x43, 14.0f + lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 24.0f + lbl_1_data_5DC[4][1]); + HuSprBankSet(var_r30, var_r31 + 0x43, 0); + } + HuSprPosSet(var_r30, 0x47, 340.0f, lbl_1_data_5DC[0][1]); + HuSprScaleSet(var_r30, 0x47, 0.0f, 0.0f); + HuSprAttrReset(var_r30, 0x47, 4); + HuSprAttrReset(var_r30, 0x48, 4); + HuSprPosSet(var_r30, 0x48, 366.0f, lbl_1_data_5DC[1][1]); + HuSprAttrReset(var_r30, 0x49, 4); + HuSprPosSet(var_r30, 0x49, 367.0f, 2.0f + lbl_1_data_5DC[1][1]); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 0x4A, 4); + HuSprPosSet(var_r30, var_r31 + 0x4A, 0x141 - (var_r31 * 0x1A), lbl_1_data_5DC[1][1]); + HuSprBankSet(var_r30, var_r31 + 0x4A, var_r31); + HuSprAttrReset(var_r30, var_r31 + 0x4C, 4); + HuSprPosSet(var_r30, var_r31 + 0x4C, 0x142 - (var_r31 * 0x1A), 2.0f + lbl_1_data_5DC[1][1]); + HuSprBankSet(var_r30, var_r31 + 0x4C, var_r31); + } + HuSprAttrReset(var_r30, 0x4E, 4); + HuSprPosSet(var_r30, 0x4E, 340.0f, lbl_1_data_5DC[2][1]); + HuSprBankSet(var_r30, 0x4E, 0); + HuSprAttrReset(var_r30, 0x4F, 4); + HuSprPosSet(var_r30, 0x4F, 341.0f, 2.0f + lbl_1_data_5DC[2][1]); + HuSprBankSet(var_r30, 0x4F, 0); + HuSprAttrReset(var_r30, 0x50, 4); + HuSprPosSet(var_r30, 0x50, 340.0f, lbl_1_data_5DC[3][1]); + HuSprBankSet(var_r30, 0x50, 0); + HuSprAttrReset(var_r30, 0x51, 4); + HuSprPosSet(var_r30, 0x51, 341.0f, 2.0f + lbl_1_data_5DC[3][1]); + HuSprBankSet(var_r30, 0x51, 0); + HuSprAttrReset(var_r30, 0x52, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 0x53, 4); + HuSprAttrReset(var_r30, var_r31 + 0x57, 4); + } + for (var_r31 = 0; var_r31 < 5; var_r31++) { + HuWinPosSet(lbl_1_bss_35BC[0].unk_44[var_r31], 100.0f, -500.0f + (lbl_1_data_5DC[var_r31][1] - 21.0f)); + } + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_35BC[1].unk_08[var_r31] = lbl_1_bss_35BC[1].unk_1C[var_r31] = 0; + } + lbl_1_bss_35BC[1].unk_1C[1] = 0x14; + HuSprBankSet(var_r30, 0x4A, 0); + HuSprBankSet(var_r30, 0x4C, 0); + HuSprBankSet(var_r30, 0x4B, 2); + HuSprBankSet(var_r30, 0x4D, 2); + HuSprGrpPosSet(var_r30, 0.0f, -500.0f); +} + +void fn_1_19C98(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + float sp8[2]; + float var_f31; + float var_f30; + float var_f29; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r26 = 0; + var_r30 = lbl_1_bss_35BC[0].unk_3C; + { + s32 sp10[4][4] = { + { 0x106, 0x106, 0x106, 0x106 }, + { 0x13A, 0x133, 0x175, 0x175 }, + { 0x16E, 0x175, 0x133, 0x1A2 }, + { 0x1A2, 0x1A2, 0x1A2, 0x133 }, + }; + lbl_1_bss_35BC[0].unk_08[3] = 0; + var_r27 = arg1->unk_08[0]; + sp8[0] = HuSprData[HuSprGrpData[var_r30].members[3]].x; + sp8[1] = HuSprData[HuSprGrpData[var_r30].members[4]].x; + if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_A) != 0) { + arg1->unk_08[0]++; + HuAudFXPlay(2); + if (arg1->unk_08[0] > 4) { + lbl_1_bss_35BC[0].unk_08[1] = 1; + arg1->unk_08[0] = 4; + fn_1_1C674(); + } + lbl_1_bss_35BC[0].unk_08[3] = 1; + } + else if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B) != 0) { + arg1->unk_08[0]--; + HuAudFXPlay(3); + if (arg1->unk_08[0] < 0) { + lbl_1_bss_35BC[0].unk_08[1] = -1; + arg1->unk_08[0] = 0; + fn_1_1C674(); + } + lbl_1_bss_35BC[0].unk_08[3] = 1; + } + else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] >= 5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_RIGHT) != 0)) { + var_r26 = 1; + lbl_1_bss_35BC[0].unk_08[3] = 1; + HuAudFXPlay(0); + switch (arg1->unk_08[0]) { + case 0: + arg1->unk_1C[0] += 1; + if (arg1->unk_1C[0] > 3) { + arg1->unk_1C[0] = 0; + } + break; + case 1: + arg1->unk_1C[1] += 5; + if (arg1->unk_1C[1] > 0x32) { + arg1->unk_1C[1] = 0xA; + } + break; + case 2: + if (lbl_1_bss_A8[6] == 1) { + arg1->unk_1C[2]++; + if (arg1->unk_1C[2] > 2) { + arg1->unk_1C[2] = 0; + } + } + else { + arg1->unk_1C[2]++; + if (arg1->unk_1C[2] > 1) { + arg1->unk_1C[2] = 0; + } + } + break; + case 3: + arg1->unk_1C[3]++; + if (arg1->unk_1C[3] > 1) { + arg1->unk_1C[3] = 0; + } + break; + case 4: + arg1->unk_1C[4] += 1; + if (arg1->unk_1C[4] > 3) { + arg1->unk_1C[4] = 0; + } + break; + } + } + else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] <= -5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_LEFT) != 0)) { + var_r26 = -1; + lbl_1_bss_35BC[0].unk_08[3] = 1; + HuAudFXPlay(0); + switch (arg1->unk_08[0]) { + case 0: + arg1->unk_1C[0] -= 1; + if (arg1->unk_1C[0] < 0) { + arg1->unk_1C[0] = 3; + } + break; + case 1: + arg1->unk_1C[1] -= 5; + if (arg1->unk_1C[1] < 0xA) { + arg1->unk_1C[1] = 0x32; + } + break; + case 2: + if (lbl_1_bss_A8[6] == 1) { + arg1->unk_1C[2]--; + if (arg1->unk_1C[2] < 0) { + arg1->unk_1C[2] = 2; + } + } + else { + arg1->unk_1C[2]--; + if (arg1->unk_1C[2] < 0) { + arg1->unk_1C[2] = 1; + } + } + break; + case 3: + arg1->unk_1C[3]--; + if (arg1->unk_1C[3] < 0) { + arg1->unk_1C[3] = 1; + } + break; + case 4: + arg1->unk_1C[4] -= 1; + if (arg1->unk_1C[4] < 0) { + arg1->unk_1C[4] = 3; + } + break; + } + } + else if (arg1->unk_08[0] == 4) { + if ((HuPadStkY[lbl_1_bss_3114->unk_6C] >= 0x1E) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_UP) != 0)) { + lbl_1_bss_35BC[0].unk_08[3] = 1; + HuAudFXPlay(0); + for (var_r29 = 0; var_r29 <= 0xA; var_r29++) { + fn_1_4D8(); + if (var_r29 <= 5) { + var_f29 = fn_1_32C(0.0f, 10.0f, var_r29, 5.0f); + } + else { + var_f29 = fn_1_32C(10.0f, 0.0f, var_r29 - 5, 5.0f); + } + HuSprPosSet(var_r30, 5, lbl_1_data_5DC[arg1->unk_1C[4]][0], (lbl_1_data_5DC[4][1] - 48.0f) - var_f29); + if (var_r29 == 3) { + arg1->unk_08[arg1->unk_1C[4] + 1]--; + if (arg1->unk_08[arg1->unk_1C[4] + 1] < 0) { + arg1->unk_08[arg1->unk_1C[4] + 1] = 9; + } + HuSprBankSet(var_r30, arg1->unk_1C[4] + 0x33, arg1->unk_08[arg1->unk_1C[4] + 1]); + HuSprBankSet(var_r30, arg1->unk_1C[4] + 0x43, arg1->unk_08[arg1->unk_1C[4] + 1]); + } + } + } + else if ((HuPadStkY[lbl_1_bss_3114->unk_6C] <= -0x1E) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 4) != 0)) { + lbl_1_bss_35BC[0].unk_08[3] = 1; + HuAudFXPlay(0); + for (var_r29 = 0; var_r29 <= 0xA; var_r29++) { + fn_1_4D8(); + if (var_r29 <= 5) { + var_f29 = fn_1_32C(0.0f, 10.0f, var_r29, 5.0f); + } + else { + var_f29 = fn_1_32C(10.0f, 0.0f, var_r29 - 5, 5.0f); + } + HuSprPosSet(var_r30, 6, lbl_1_data_5DC[arg1->unk_1C[4]][0], 49.0f + lbl_1_data_5DC[4][1] + var_f29); + if (var_r29 == 3) { + arg1->unk_08[arg1->unk_1C[4] + 1]++; + if (arg1->unk_08[arg1->unk_1C[4] + 1] > 9) { + arg1->unk_08[arg1->unk_1C[4] + 1] = 0; + } + HuSprBankSet(var_r30, arg1->unk_1C[4] + 0x33, arg1->unk_08[arg1->unk_1C[4] + 1]); + HuSprBankSet(var_r30, arg1->unk_1C[4] + 0x43, arg1->unk_08[arg1->unk_1C[4] + 1]); + } + } + } + } + if (var_r26 != 0) { + for (var_r29 = 0; var_r29 <= 0xA; var_r29++) { + fn_1_4D8(); + if (var_r29 <= 5) { + var_f31 = fn_1_32C(0.0f, 10.0f, var_r29, 5.0f); + var_f30 = fn_1_32C(1.0f, 0.0f, var_r29, 5.0f); + } + else { + var_f31 = fn_1_32C(10.0f, 0.0f, var_r29 - 5, 5.0f); + var_f30 = fn_1_32C(0.0f, 1.0f, var_r29 - 5, 5.0f); + } + if (arg1->unk_08[0] != 4) { + if (var_r26 == 1) { + HuSprPosSet(var_r30, 4, var_f31 + lbl_1_data_5DC[arg1->unk_08[0]][4], lbl_1_data_5DC[arg1->unk_08[0]][1]); + } + else { + HuSprPosSet(var_r30, 3, lbl_1_data_5DC[arg1->unk_08[0]][3] - var_f31, lbl_1_data_5DC[arg1->unk_08[0]][1]); + } + } + switch (arg1->unk_08[0]) { + case 0: + var_r27 = arg1->unk_1C[0] - var_r26; + if (var_r27 > 3) { + var_r27 = 0; + } + else if (var_r27 < 0) { + var_r27 = 3; + } + if (arg1->unk_1C[0] != 0) { + var_f30 = fn_1_32C(0.0f, 1.0f, var_r29, 10.0f); + } + else { + var_f30 = fn_1_32C(1.0f, 0.0f, var_r29, 10.0f); + } + HuSprScaleSet(var_r30, 0x47, var_f30, var_f30); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + var_f31 = fn_1_32C( + sp10[lbl_1_bss_3114[var_r28].unk_58][var_r27], sp10[lbl_1_bss_3114[var_r28].unk_58][arg1->unk_1C[0]], var_r29, 10.0f); + HuSprPosSet(var_r30, lbl_1_bss_3114[var_r28].unk_68 + 7, var_f31, lbl_1_data_5DC[0][1]); + HuSprPosSet(var_r30, lbl_1_bss_3114[var_r28].unk_68 + 0xF, 1.0f + var_f31, 2.0f + lbl_1_data_5DC[0][1]); + if (lbl_1_bss_3114[var_r28].unk_60 != 0) { + HuSprPosSet(var_r30, var_r28 + 0x1B, var_f31, 21.0f + lbl_1_data_5DC[0][1]); + } + else { + HuSprPosSet(var_r30, var_r28 + 0x17, var_f31 - 8.0f, lbl_1_data_5DC[0][1] - 21.0f); + } + } + break; + case 1: + if (var_r26 == 1) { + HuSprPosSet(var_r30, 0x48, 366.0f + var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x49, 367.0f + var_f31, 2.0f + lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4A, 321.0f + var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4C, 322.0f + var_f31, 2.0f + lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4B, 295.0f + var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4D, 296.0f + var_f31, 2.0f + lbl_1_data_5DC[1][1]); + } + else { + HuSprPosSet(var_r30, 0x48, 366.0f - var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x49, 367.0f - var_f31, 2.0f + lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4A, 321.0f - var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4C, 322.0f - var_f31, 2.0f + lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4B, 295.0f - var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4D, 296.0f - var_f31, 2.0f + lbl_1_data_5DC[1][1]); + } + HuSprScaleSet(var_r30, 0x48, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x49, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x4A, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x4C, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x4B, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x4D, 1.0f, var_f30); + break; + case 2: + if (var_r26 == 1) { + HuSprPosSet(var_r30, 0x4E, 340.0f + var_f31, lbl_1_data_5DC[2][1]); + HuSprPosSet(var_r30, 0x4F, 341.0f + var_f31, 2.0f + lbl_1_data_5DC[2][1]); + } + else { + HuSprPosSet(var_r30, 0x4E, 340.0f - var_f31, lbl_1_data_5DC[2][1]); + HuSprPosSet(var_r30, 0x4F, 341.0f - var_f31, 2.0f + lbl_1_data_5DC[2][1]); + } + HuSprScaleSet(var_r30, 0x4E, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x4F, 1.0f, var_f30); + break; + case 3: + if (var_r26 == 1) { + HuSprPosSet(var_r30, 0x50, 340.0f + var_f31, lbl_1_data_5DC[3][1]); + HuSprPosSet(var_r30, 0x51, 341.0f + var_f31, 2.0f + lbl_1_data_5DC[3][1]); + } + else { + HuSprPosSet(var_r30, 0x50, 340.0f - var_f31, lbl_1_data_5DC[3][1]); + HuSprPosSet(var_r30, 0x51, 341.0f - var_f31, 2.0f + lbl_1_data_5DC[3][1]); + } + HuSprScaleSet(var_r30, 0x50, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x51, 1.0f, var_f30); + break; + case 4: + var_f31 = fn_1_32C(sp8[0], lbl_1_data_5DC[arg1->unk_1C[4]][0] - 32.0f, var_r29, 10.0f); + HuSprPosSet(var_r30, 3, var_f31, lbl_1_data_5DC[4][1]); + var_f31 = fn_1_32C(sp8[1], 33.0f + lbl_1_data_5DC[arg1->unk_1C[4]][0], var_r29, 10.0f); + HuSprPosSet(var_r30, 4, var_f31, lbl_1_data_5DC[4][1]); + var_f31 = fn_1_32C(32.0f + sp8[0], lbl_1_data_5DC[arg1->unk_1C[4]][0], var_r29, 10.0f); + HuSprPosSet(var_r30, 5, var_f31, lbl_1_data_5DC[4][1] - 48.0f); + HuSprPosSet(var_r30, 6, var_f31, 49.0f + lbl_1_data_5DC[4][1]); + if (var_r29 == 3) { + for (var_r28 = 0; var_r28 < 4; var_r28++) { + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r28].unk_68 + 0x37, 4); + HuSprAttrSet(var_r30, var_r28 + 0x3F, 4); + HuSprAttrSet(var_r30, var_r28 + 0x43, 4); + } + HuSprAttrReset(var_r30, lbl_1_bss_3114[arg1->unk_1C[4]].unk_68 + 0x37, 4); + HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x3F, 4); + HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x43, 4); + } + break; + } + if (var_r29 == 6) { + switch (arg1->unk_08[0]) { + case 1: + HuSprBankSet(var_r30, 0x4A, arg1->unk_1C[1] % 10); + HuSprBankSet(var_r30, 0x4C, arg1->unk_1C[1] % 10); + HuSprBankSet(var_r30, 0x4B, arg1->unk_1C[1] / 10); + HuSprBankSet(var_r30, 0x4D, arg1->unk_1C[1] / 10); + break; + case 2: + HuSprBankSet(var_r30, 0x4E, arg1->unk_1C[2]); + HuSprBankSet(var_r30, 0x4F, arg1->unk_1C[2]); + break; + case 3: + HuSprBankSet(var_r30, 0x50, arg1->unk_1C[3]); + HuSprBankSet(var_r30, 0x51, arg1->unk_1C[3]); + break; + } + } + } + } + else if (var_r27 != arg1->unk_08[0]) { + for (var_r29 = 0; var_r29 <= 0xA; var_r29++) { + fn_1_4D8(); + var_f29 = fn_1_32C(lbl_1_data_5DC[var_r27][1], lbl_1_data_5DC[arg1->unk_08[0]][1], var_r29, 10.0f); + var_f30 = fn_1_32C(lbl_1_data_5DC[var_r27][2], lbl_1_data_5DC[arg1->unk_08[0]][2], var_r29, 10.0f); + HuSprPosSet(var_r30, 2, 288.0f, var_f29); + HuSprScaleSet(var_r30, 2, 1.0f, var_f30); + if (arg1->unk_08[0] != 4) { + var_f31 = fn_1_32C(sp8[0], lbl_1_data_5DC[arg1->unk_08[0]][3], var_r29, 10.0f); + HuSprPosSet(var_r30, 3, var_f31, var_f29); + var_f31 = fn_1_32C(sp8[1], lbl_1_data_5DC[arg1->unk_08[0]][4], var_r29, 10.0f); + HuSprPosSet(var_r30, 4, var_f31, var_f29); + var_f30 = fn_1_32C(1.0f, 0.0f, var_r29, 10.0f); + HuSprTPLvlSet(var_r30, 5, var_f30); + HuSprTPLvlSet(var_r30, 6, var_f30); + var_f29 = fn_1_32C(0.0f, 20.0f, var_r29, 10.0f); + HuSprPosSet(var_r30, 5, lbl_1_data_5DC[arg1->unk_1C[4]][0], (lbl_1_data_5DC[4][1] - var_f29) - 48.0f); + HuSprPosSet(var_r30, 6, lbl_1_data_5DC[arg1->unk_1C[4]][0], 49.0f + (lbl_1_data_5DC[4][1] + var_f29)); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r28].unk_68 + 0x37, 4); + HuSprAttrSet(var_r30, var_r28 + 0x3F, 4); + HuSprAttrSet(var_r30, var_r28 + 0x43, 4); + } + } + else { + var_f31 = fn_1_32C(sp8[0], lbl_1_data_5DC[arg1->unk_1C[4]][0] - 32.0f, var_r29, 10.0f); + HuSprPosSet(var_r30, 3, var_f31, var_f29); + var_f31 = fn_1_32C(sp8[1], 33.0f + lbl_1_data_5DC[arg1->unk_1C[4]][0], var_r29, 10.0f); + HuSprPosSet(var_r30, 4, var_f31, var_f29); + HuSprAttrReset(var_r30, 5, 4); + HuSprAttrReset(var_r30, 6, 4); + var_f30 = fn_1_32C(0.0f, 1.0f, var_r29, 10.0f); + HuSprTPLvlSet(var_r30, 5, var_f30); + HuSprTPLvlSet(var_r30, 6, var_f30); + var_f29 = fn_1_32C(20.0f, 0.0f, var_r29, 10.0f); + HuSprPosSet(var_r30, 5, lbl_1_data_5DC[arg1->unk_1C[4]][0], (lbl_1_data_5DC[4][1] - var_f29) - 48.0f); + HuSprPosSet(var_r30, 6, lbl_1_data_5DC[arg1->unk_1C[4]][0], 49.0f + (lbl_1_data_5DC[4][1] + var_f29)); + if (var_r29 == 3) { + HuSprAttrReset(var_r30, lbl_1_bss_3114[arg1->unk_1C[4]].unk_68 + 0x37, 4); + HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x3F, 4); + HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x43, 4); + } + } + } + if (arg1->unk_08[0] != 4) { + HuSprAttrSet(var_r30, 5, 4); + HuSprAttrSet(var_r30, 6, 4); + } + } + lbl_1_bss_35BC[0].unk_08[3] = 0; + } +} + +void fn_1_1BB2C(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + AnimData *var_r26; + AnimData *var_r25; + + s32 sp8[4][2] = { + { 0x00000070, 0x00000060 }, + { 0x000001D2, 0x00000060 }, + { 0x00000070, 0x0000012D }, + { 0x000001D2, 0x0000012D }, + }; + var_r29 = HuSprGrpCreate(0x5B); + arg0->unk_3C = var_r29; + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3D)), 0x7C6, 0); + HuSprGrpMemberSet(var_r29, 0, var_r30); + HuSprPosSet(var_r29, 0, 288.0f, 54.0f); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3F)), 0x7C6, 0); + HuSprGrpMemberSet(var_r29, 1, var_r30); + HuSprPosSet(var_r29, 1, 288.0f, 54.0f); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x41)), 0x7BC, 0); + HuSprGrpMemberSet(var_r29, 2, var_r30); + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x42)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 3, var_r30); + HuSprBankSet(var_r29, var_r31 + 3, var_r31); + } + var_r25 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x39)); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + var_r28 = HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MENT, 0x31)); + var_r26 = HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MENT, 0x4E)); + var_r30 = HuSprCreate(var_r28, 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 7, var_r30); + var_r30 = HuSprCreate(var_r25, 0x3F2, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0xF, var_r30); + var_r30 = HuSprCreate(var_r28, 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x1F, var_r30); + var_r30 = HuSprCreate(var_r25, 0x3F2, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x27, var_r30); + var_r30 = HuSprCreate(var_r26, 0x3DE, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x37, var_r30); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3A)); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x3B)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x3DE, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x17, var_r30); + var_r30 = HuSprCreate(var_r26, 0x3DE, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x1B, var_r30); + } + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x43)), 0x3DE, 0); + HuSprGrpMemberSet(var_r29, 0x47, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x44)), 0x3E8, 0); + HuSprGrpMemberSet(var_r29, 0x48, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x46)), 0x3F2, 0); + HuSprGrpMemberSet(var_r29, 0x49, var_r30); + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x45)); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x47)); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x4A, var_r30); + var_r30 = HuSprCreate(var_r26, 0x3F2, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x4C, var_r30); + } + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x48)), 0x3E8, 0); + HuSprGrpMemberSet(var_r29, 0x4E, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x49)), 0x3F2, 0); + HuSprGrpMemberSet(var_r29, 0x4F, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x4A)), 0x3E8, 0); + HuSprGrpMemberSet(var_r29, 0x50, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x4B)), 0x3F2, 0); + HuSprGrpMemberSet(var_r29, 0x51, var_r30); + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x4C)); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x4D)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x3DE, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x2F, var_r30); + var_r30 = HuSprCreate(var_r26, 0x3D4, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x33, var_r30); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x56)); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x57)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x3CA, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x3F, var_r30); + var_r30 = HuSprCreate(var_r26, 0x3C0, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x43, var_r30); + } + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x40)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, 0x52, var_r30); + HuSprTPLvlSet(var_r29, 0x52, 0.8f); + fn_1_6534(var_r29, 0x52, 288.0f, 240.0f); + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x18)); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x19)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x7BC, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x53, var_r30); + HuSprBankSet(var_r29, var_r31 + 0x53, var_r31); + fn_1_6534(var_r29, var_r31 + 0x53, sp8[var_r31][0], sp8[var_r31][1]); + var_r30 = HuSprCreate(var_r26, 0x7C6, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x57, var_r30); + HuSprBankSet(var_r29, var_r31 + 0x57, var_r31); + HuSprTPLvlSet(var_r29, var_r31 + 0x57, 0.5f); + fn_1_6534(var_r29, var_r31 + 0x57, sp8[var_r31][0] + 1, sp8[var_r31][1] + 6); + } + for (var_r31 = 0; var_r31 < 5; var_r31++) { + arg0->unk_44[var_r31] = HuWinExCreateStyled(0.0f, 0.0f, 0xC8, 0xC8, -1, 1); + HuWinBGTPLvlSet(arg0->unk_44[var_r31], 0.0f); + HuWinMesSet(arg0->unk_44[var_r31], var_r31 + 0x1B0010); + HuWinMesSpeedSet(arg0->unk_44[var_r31], 0); + HuWinDispOn(arg0->unk_44[var_r31]); + winData[arg0->unk_44[var_r31]].mess_shadow_color = 0; + } + fn_1_190E8(); +} + +void fn_1_1C554(void) +{ + s32 var_r31; + s32 var_r30; + MentDllUnkBss35BCStruct *var_r29; + + var_r30 = lbl_1_bss_35BC[0].unk_3C; + var_r29 = &lbl_1_bss_35BC[1]; + HuSprAttrReset(var_r30, 2, 4); + if (lbl_1_bss_35BC[1].unk_08[0] == 4) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 3, 4); + } + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r29->unk_1C[4]].unk_68 + 0x37, 4); + HuSprAttrReset(var_r30, var_r29->unk_1C[4] + 0x3F, 4); + HuSprAttrReset(var_r30, var_r29->unk_1C[4] + 0x43, 4); + return; + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 3, 4); + } +} + +void fn_1_1C674(void) +{ + MentDllUnkBss35BCStruct *var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_bss_35BC[0].unk_3C; + var_r31 = &lbl_1_bss_35BC[1]; + HuSprAttrSet(var_r30, 2, 4); + for (var_r29 = 0; var_r29 < 4; var_r29++) { + HuSprAttrSet(var_r30, var_r29 + 3, 4); + } + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31->unk_1C[4]].unk_68 + 0x37, 4); + HuSprAttrSet(var_r30, var_r31->unk_1C[4] + 0x3F, 4); + HuSprAttrSet(var_r30, var_r31->unk_1C[4] + 0x43, 4); +} + +void fn_1_1C754(void) +{ + float var_f31; + s32 var_r31; + MentDllUnkBss35BCStruct *var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + fn_1_190E8(); + var_r28 = lbl_1_bss_35BC[0].unk_3C; + var_r30 = &lbl_1_bss_35BC[1]; + HuSprAttrSet(var_r28, 2, 4); + for (var_r27 = 0; var_r27 < 4; var_r27++) { + HuSprAttrSet(var_r28, var_r27 + 3, 4); + } + HuSprAttrSet(var_r28, lbl_1_bss_3114[var_r30->unk_1C[4]].unk_68 + 0x37, 4); + HuSprAttrSet(var_r28, var_r30->unk_1C[4] + 0x3F, 4); + HuSprAttrSet(var_r28, var_r30->unk_1C[4] + 0x43, 4); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0x32) { + var_f31 = fn_1_32C(-500.0f, 10.0f, var_r31, 50.0f); + } + else { + var_f31 = fn_1_254(10.0f, 0.0f, var_r31 - 0x32, 10.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_3C, 0.0f, var_f31); + for (var_r29 = 0; var_r29 < 5; var_r29++) { + HuWinPosSet(lbl_1_bss_35BC->unk_44[var_r29], 100.0f, lbl_1_data_5DC[var_r29][1] - 21.0f + var_f31); + } + } +} + +void fn_1_1C990(void) +{ + float var_f31; + s32 var_r31; + MentDllUnkBss35BCStruct *var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r28 = lbl_1_bss_35BC[0].unk_3C; + var_r30 = &lbl_1_bss_35BC[1]; + HuSprAttrSet(var_r28, 2, 4); + for (var_r27 = 0; var_r27 < 4; var_r27++) { + HuSprAttrSet(var_r28, var_r27 + 3, 4); + } + HuSprAttrSet(var_r28, lbl_1_bss_3114[var_r30->unk_1C[4]].unk_68 + 0x37, 4); + HuSprAttrSet(var_r28, var_r30->unk_1C[4] + 0x3F, 4); + HuSprAttrSet(var_r28, var_r30->unk_1C[4] + 0x43, 4); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0xA) { + var_f31 = fn_1_32C(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_254(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_3C, 0.0f, var_f31); + for (var_r29 = 0; var_r29 < 5; var_r29++) { + HuWinPosSet(lbl_1_bss_35BC->unk_44[var_r29], 100.0f, lbl_1_data_5DC[var_r29][1] - 21.0f + var_f31); + } + } +} + +void fn_1_1CBC8(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_35BC[0].unk_30; + for (var_r31 = 0; var_r31 < 0x22; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 1, 4); + HuSprAttrReset(var_r30, var_r31 + 5, 4); + } + HuSprPosSet(var_r30, 0x1B, 288.0f, lbl_1_data_640[1][2]); + HuSprScaleSet(var_r30, 0x1B, 1.0f, 0.75f); + HuSprPosSet(var_r30, 0x1C, lbl_1_data_640[1][3], lbl_1_data_640[1][2]); + HuSprPosSet(var_r30, 0x1D, lbl_1_data_640[1][4], lbl_1_data_640[1][2]); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 9, 0); + HuSprAttrReset(var_r30, var_r31 + 9, 4); + HuSprAttrReset(var_r30, var_r31 + 0x11, 4); + } + HuSprAttrReset(var_r30, 0x19, 4); + HuSprAttrReset(var_r30, 0x1A, 4); + HuSprBankSet(var_r30, 0x1E, 0); + HuSprAttrReset(var_r30, 0x1E, 4); + HuSprBankSet(var_r30, 0x1F, 0); + HuSprAttrReset(var_r30, 0x1F, 4); + HuSprBankSet(var_r30, 0x20, 0); + HuSprAttrReset(var_r30, 0x20, 4); + HuSprBankSet(var_r30, 0x21, 0); + HuSprAttrReset(var_r30, 0x21, 4); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuWinPosSet(lbl_1_bss_35BC->unk_44[var_r31], 100.0f, lbl_1_data_640[var_r31][2] - 0x209); + } + lbl_1_bss_35BC[0].unk_08[0] = 1; + lbl_1_bss_35BC[0].unk_1C[0] = lbl_1_bss_35BC[0].unk_1C[0] = 0; + HuSprGrpPosSet(var_r30, 0.0f, -500.0f); +} + +void fn_1_1CF68(void) +{ + float var_f31; + float var_f30; + float var_f29; + s32 var_r31; + s32 var_r30; + + var_r31 = lbl_1_bss_35BC[0].unk_30; + for (var_r30 = 0; var_r30 < 8; var_r30++) { + HuSprBankSet(var_r31, var_r30 + 9, 0); + } + HuSprBankSet(var_r31, 0x19, 0); + HuSprBankSet(var_r31, 0x1A, 0); + HuSprPosSet(var_r31, 0x1B, 288.0f, lbl_1_data_640[1][2]); + HuSprScaleSet(var_r31, 0x1B, 1.0f, 0.75f); + HuSprPosSet(var_r31, 0x1C, lbl_1_data_640[1][3], lbl_1_data_640[1][2]); + HuSprPosSet(var_r31, 0x1D, lbl_1_data_640[1][4], lbl_1_data_640[1][2]); + for (var_r30 = 0; var_r30 <= 0xA; var_r30++) { + fn_1_4D8(); + if (var_r30 <= 5) { + var_f31 = fn_1_32C(1.0f, 0.0f, var_r30, 5.0f); + } + else { + var_f31 = fn_1_32C(0.0f, 1.0f, var_r30 - 5, 5.0f); + } + if (lbl_1_bss_3114->unk_68 != 0) { + var_f30 = fn_1_32C(lbl_1_data_640[lbl_1_bss_3114->unk_68 % 4][0], lbl_1_data_640[0][0], var_r30, 10.0f); + var_f29 = fn_1_32C(lbl_1_data_640[lbl_1_bss_3114->unk_68 / 4][1], lbl_1_data_640[0][1], var_r30, 10.0f); + HuSprPosSet(var_r31, 0x19, var_f30, var_f29); + HuSprPosSet(var_r31, 0x1A, var_f30, var_f29); + } + if (lbl_1_bss_35BC[0].unk_1C[0] != 0) { + HuSprScaleSet(var_r31, 0x1E, 1.0f, var_f31); + HuSprScaleSet(var_r31, 0x1F, 1.0f, var_f31); + } + if (lbl_1_bss_35BC[0].unk_1C[1] != 0) { + HuSprScaleSet(var_r31, 0x20, 1.0f, var_f31); + HuSprScaleSet(var_r31, 0x21, 1.0f, var_f31); + } + if (var_r30 == 6) { + HuSprBankSet(var_r31, 0x1E, 0); + HuSprBankSet(var_r31, 0x1F, 0); + HuSprBankSet(var_r31, 0x20, 0); + HuSprBankSet(var_r31, 0x21, 0); + } + } + lbl_1_bss_3114[0].unk_70[0] = lbl_1_bss_3114[0].unk_68 = 0; + lbl_1_bss_35BC[0].unk_08[0] = 1; + lbl_1_bss_35BC[0].unk_1C[0] = lbl_1_bss_35BC[0].unk_1C[1] = 0; +} + +void fn_1_1D4FC(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r27; + AnimData *var_r26; + + s32 sp8[4][2] = { + { 0x00000070, 0x00000037 }, + { 0x000001D2, 0x00000037 }, + { 0x00000070, 0x0000011A }, + { 0x000001D2, 0x0000011A }, + }; + arg0->unk_30 = var_r30 = HuSprGrpCreate(0x22); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x58)), 0x7D0, 0); + HuSprGrpMemberSet(var_r30, 0, var_r29); + HuSprTPLvlSet(var_r30, 0, 0.8f); + fn_1_6534(var_r30, 0, 288.0f, 240.0f); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x18)); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x19)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = HuSprCreate(var_r27, 0x7BC, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 1, var_r29); + HuSprBankSet(var_r30, var_r31 + 1, var_r31); + fn_1_6534(var_r30, var_r31 + 1, sp8[var_r31][0], sp8[var_r31][1]); + var_r29 = HuSprCreate(var_r26, 0x7C6, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 5, var_r29); + HuSprBankSet(var_r30, var_r31 + 5, var_r31); + HuSprTPLvlSet(var_r30, var_r31 + 5, 0.5f); + fn_1_6534(var_r30, var_r31 + 5, sp8[var_r31][0] + 1, sp8[var_r31][1] + 6); + } + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x41)), 0x7BC, 0); + HuSprGrpMemberSet(var_r30, 0x1B, var_r29); + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x42)); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r29 = HuSprCreate(var_r27, 0, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x1C, var_r29); + HuSprBankSet(var_r30, var_r31 + 0x1C, var_r31); + } + var_r27 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x22)); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + var_r29 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MENT, 0x1A)), 0x3E8, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 9, var_r29); + HuSprPosSet(var_r30, var_r31 + 9, lbl_1_data_640[var_r31 % 4][0], lbl_1_data_640[var_r31 / 4][1]); + var_r29 = HuSprCreate(var_r27, 0x3F2, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 0x11, var_r29); + HuSprTPLvlSet(var_r30, var_r31 + 0x11, 0.5f); + HuSprPosSet(var_r30, var_r31 + 0x11, lbl_1_data_640[var_r31 % 4][0] + 1, lbl_1_data_640[var_r31 / 4][1] + 2); + } + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x23)), 0, 0); + HuSprGrpMemberSet(var_r30, 0x19, var_r29); + HuSprPosSet(var_r30, 0x19, lbl_1_data_640[0][0], lbl_1_data_640[0][1]); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x28)), 0xA, 0); + HuSprGrpMemberSet(var_r30, 0x1A, var_r29); + HuSprPosSet(var_r30, 0x1A, lbl_1_data_640[0][0], lbl_1_data_640[0][1]); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x5D)), 0x3E8, 0); + HuSprGrpMemberSet(var_r30, 0x1E, var_r29); + HuSprPosSet(var_r30, 0x1E, 340.0f, lbl_1_data_640[1][2]); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x5E)), 0x3F2, 0); + HuSprGrpMemberSet(var_r30, 0x1F, var_r29); + HuSprTPLvlSet(var_r30, 0x1F, 0.5f); + HuSprPosSet(var_r30, 0x1F, 341.0f, lbl_1_data_640[1][2] + 2); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x48)), 0x3E8, 0); + HuSprGrpMemberSet(var_r30, 0x20, var_r29); + HuSprPosSet(var_r30, 0x20, 340.0f, lbl_1_data_640[2][2]); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x49)), 0x3F2, 0); + HuSprGrpMemberSet(var_r30, 0x21, var_r29); + HuSprTPLvlSet(var_r30, 0x21, 0.5f); + HuSprPosSet(var_r30, 0x21, 341.0f, lbl_1_data_640[2][2] + 2); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + arg0->unk_44[var_r31] = HuWinExCreateStyled(0.0f, 0.0f, 0xC8, 0xC8, -1, 1); + HuWinBGTPLvlSet(arg0->unk_44[var_r31], 0.0f); + HuWinMesSet(arg0->unk_44[var_r31], var_r31 + 0x1B002D); + HuWinMesSpeedSet(arg0->unk_44[var_r31], 0); + HuWinDispOn(arg0->unk_44[var_r31]); + if (var_r31 == 0) { + HuWinDispOff(arg0->unk_44[var_r31]); + } + winData[arg0->unk_44[var_r31]].mess_shadow_color = 0; + } + fn_1_1CBC8(); +} + +void fn_1_1DED8() +{ + s32 var_r30; + s32 var_r31; + + var_r30 = lbl_1_bss_35BC[0].unk_30; + HuSprAttrReset(var_r30, 0x1B, 4); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 0x1C, 4); + } +} + +void fn_1_1DF48(void) +{ + s32 var_r30; + s32 var_r31; + + var_r30 = lbl_1_bss_35BC[0].unk_30; + HuSprAttrSet(var_r30, 0x1B, 4); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrSet(var_r30, var_r31 + 0x1C, 4); + } +} + +void fn_1_1DFB8(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + fn_1_1CBC8(); + var_r28 = lbl_1_bss_35BC[0].unk_30; + HuSprAttrSet(var_r28, 0x1B, 4); + for (var_r29 = 0; var_r29 < 2; var_r29++) { + HuSprAttrSet(var_r28, var_r29 + 0x1C, 4); + } + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0x32) { + var_f31 = fn_1_32C(-500.0f, 10.0f, var_r31, 50.0f); + } + else { + var_f31 = fn_1_254(10.0f, 0.0f, var_r31 - 0x32, 10.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_30, 0.0f, var_f31); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + HuWinPosSet(lbl_1_bss_35BC[0].unk_44[var_r30], 100.0f, lbl_1_data_640[var_r30][2] - 0x15 + var_f31); + } + } +} + +void fn_1_1E1B4(void) +{ + float var_f31; + s32 var_r31; + MentDllUnkBss35BCStruct *var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r28 = lbl_1_bss_35BC[0].unk_3C; + var_r30 = &lbl_1_bss_35BC[1]; + HuSprAttrSet(var_r28, 2, 4); + for (var_r27 = 0; var_r27 < 4; var_r27++) { + HuSprAttrSet(var_r28, var_r27 + 3, 4); + } + HuSprAttrSet(var_r28, lbl_1_bss_3114[var_r30->unk_1C[4]].unk_68 + 0x37, 4); + HuSprAttrSet(var_r28, var_r30->unk_1C[4] + 0x3F, 4); + HuSprAttrSet(var_r28, var_r30->unk_1C[4] + 0x43, 4); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0xA) { + var_f31 = fn_1_32C(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_254(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_30, 0.0f, var_f31); + for (var_r29 = 0; var_r29 < 3; var_r29++) { + HuWinPosSet(lbl_1_bss_35BC->unk_44[var_r29], 100.0f, lbl_1_data_640[var_r29][2] - 0x15 + var_f31); + } + } +} + +void fn_1_1E404(omObjData *arg0, MentDllUnkBss3114Struct *arg1) +{ + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + var_r28 = lbl_1_bss_35BC[0].unk_30; + var_r26 = 0; + var_r25 = 0; + var_r30 = arg1->unk_68 % 4; + var_r24 = var_r30; + var_r29 = arg1->unk_68 / 4; + var_r23 = var_r29; + if (arg1->unk_70[0] == 0) { + if (HuPadBtnDown[arg1->unk_6C] & PAD_BUTTON_A) { + arg1->unk_70[0] = 1; + HuSprBankSet(var_r28, arg1->unk_68 + 9, 1); + HuSprBankSet(var_r28, 0x19, 1); + HuSprBankSet(var_r28, 0x1A, 1); + HuAudFXPlay(arg1->unk_68 + 0x6D); + } + else { + if ((HuPadStkX[arg1->unk_6C] >= 5) || ((HuPadBtn[arg1->unk_6C] & 2) != 0)) { + var_r30++; + var_r26 = 1; + if (var_r30 > 3) { + var_r30 = 3; + } + } + else if ((HuPadStkX[arg1->unk_6C] <= -5) || ((HuPadBtn[arg1->unk_6C] & 1) != 0)) { + var_r30--; + var_r26 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if ((HuPadStkY[arg1->unk_6C] <= -5) || ((HuPadBtn[arg1->unk_6C] & 4) != 0)) { + var_r29++; + var_r25 = 1; + if (var_r29 > 1) { + var_r29 = 1; + } + } + else if ((HuPadStkY[arg1->unk_6C] >= 5) || ((HuPadBtn[arg1->unk_6C] & 8) != 0)) { + var_r29--; + var_r25 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + } + else if ((HuPadBtnDown[arg1->unk_6C] & 0x200) != 0) { + arg1->unk_70[0] = 0; + HuSprBankSet(var_r28, arg1->unk_68 + 9, 0); + HuSprBankSet(var_r28, 0x19, 0); + HuSprBankSet(var_r28, 0x1A, 0); + HuAudFXPlay(3); + } + if (arg1->unk_68 != (var_r30 + (var_r29 * 4))) { + arg1->unk_68 = var_r30 + (var_r29 * 4); + HuAudFXPlay(0); + for (var_r27 = 0; var_r27 <= 0xA; var_r27++) { + fn_1_4D8(); + var_f31 = fn_1_32C(lbl_1_data_640[var_r24][0], lbl_1_data_640[var_r30][0], var_r27, 10.0f); + var_f30 = fn_1_32C(lbl_1_data_640[var_r23][1], lbl_1_data_640[var_r29][1], var_r27, 10.0f); + HuSprPosSet(var_r28, 0x19, var_f31, var_f30); + HuSprPosSet(var_r28, 0x1A, var_f31, var_f30); + } + } +} + +void fn_1_1E8A4(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + float var_f31; + float var_f30; + float var_f29; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + var_r30 = arg1->unk_30; + var_r28 = 0; + var_r27 = arg1->unk_08[0]; + lbl_1_bss_35BC[0].unk_08[3] = 0; + if (HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_A) { + lbl_1_bss_35BC[0].unk_08[3] = 1; + arg1->unk_08[0]++; + if (arg1->unk_08[0] > 2) { + arg1->unk_08[0] = 2; + lbl_1_bss_35BC[1].unk_08[1] = 1; + var_r24 = lbl_1_bss_35BC[0].unk_30; + HuSprAttrSet(var_r24, 0x1B, 4); + for (var_r26 = 0; var_r26 < 2; var_r26++) { + HuSprAttrSet(var_r24, var_r26 + 0x1C, 4); + } + } + HuAudFXPlay(2); + } + else if (HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B) { + lbl_1_bss_35BC[0].unk_08[3] = 1; + arg1->unk_08[0]--; + if (arg1->unk_08[0] < 1) { + arg1->unk_08[0] = 1; + lbl_1_bss_35BC[1].unk_08[1] = -1; + var_r23 = lbl_1_bss_35BC[0].unk_30; + HuSprAttrSet(var_r23, 0x1B, 4); + for (var_r25 = 0; var_r25 < 2; var_r25++) { + HuSprAttrSet(var_r23, var_r25 + 0x1C, 4); + } + } + HuAudFXPlay(3); + } + else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] >= 5) || (HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_RIGHT)) { + var_r28 = 1; + lbl_1_bss_35BC[0].unk_08[3] = 1; + switch (arg1->unk_08[0]) { + case 1: + if (lbl_1_bss_A8[5] == 1) { + arg1->unk_1C[0] += 1; + if (arg1->unk_1C[0] > 4) { + arg1->unk_1C[0] = 0; + } + } + else { + arg1->unk_1C[0] += 1; + if (arg1->unk_1C[0] > 4) { + arg1->unk_1C[0] = 0; + } + if (arg1->unk_1C[0] == 3) { + arg1->unk_1C[0] = 4; + } + } + break; + case 2: + if (lbl_1_bss_A8[6] == 1) { + arg1->unk_1C[1]++; + if (arg1->unk_1C[1] > 2) { + arg1->unk_1C[1] = 0; + } + } + else { + arg1->unk_1C[1]++; + if (arg1->unk_1C[1] > 1) { + arg1->unk_1C[1] = 0; + } + } + break; + } + HuAudFXPlay(0); + } + else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] <= -5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 1) != 0)) { + var_r28 = -1; + lbl_1_bss_35BC[0].unk_08[3] = 1; + switch (arg1->unk_08[0]) { + case 1: + if (lbl_1_bss_A8[5] == 1) { + arg1->unk_1C[0] -= 1; + if (arg1->unk_1C[0] < 0) { + arg1->unk_1C[0] = 4; + } + } + else { + arg1->unk_1C[0] -= 1; + if (arg1->unk_1C[0] < 0) { + arg1->unk_1C[0] = 4; + } + if (arg1->unk_1C[0] == 3) { + arg1->unk_1C[0] = 2; + } + } + break; + case 2: + if (lbl_1_bss_A8[6] == 1) { + arg1->unk_1C[1]--; + if (arg1->unk_1C[1] < 0) { + arg1->unk_1C[1] = 2; + } + } + else { + arg1->unk_1C[1]--; + if (arg1->unk_1C[1] < 0) { + arg1->unk_1C[1] = 1; + } + } + break; + } + HuAudFXPlay(0); + } + if (var_r27 != arg1->unk_08[0]) { + for (var_r29 = 0; var_r29 < 0xB; var_r29++) { + fn_1_4D8(); + var_f29 = fn_1_32C(lbl_1_data_640[var_r27][2], lbl_1_data_640[arg1->unk_08[0]][2], var_r29, 10.0f); + HuSprPosSet(var_r30, 0x1B, 288.0f, var_f29); + var_f31 = fn_1_32C(lbl_1_data_640[var_r27][3], lbl_1_data_640[arg1->unk_08[0]][3], var_r29, 10.0f); + HuSprPosSet(var_r30, 0x1C, var_f31, var_f29); + var_f31 = fn_1_32C(lbl_1_data_640[var_r27][4], lbl_1_data_640[arg1->unk_08[0]][4], var_r29, 10.0f); + HuSprPosSet(var_r30, 0x1D, var_f31, var_f29); + } + } + else if (var_r28 != 0) { + for (var_r29 = 0; var_r29 <= 0xA; var_r29++) { + fn_1_4D8(); + if (var_r29 <= 5) { + var_f31 = fn_1_32C(0.0f, 10.0f, var_r29, 5.0f); + var_f30 = fn_1_32C(1.0f, 0.0f, var_r29, 5.0f); + } + else { + var_f31 = fn_1_32C(10.0f, 0.0f, var_r29 - 5, 5.0f); + var_f30 = fn_1_32C(0.0f, 1.0f, var_r29 - 5, 5.0f); + } + if (var_r28 == 1) { + HuSprPosSet(var_r30, 0x1D, var_f31 + lbl_1_data_640[arg1->unk_08[0]][4], lbl_1_data_640[arg1->unk_08[0]][2]); + } + else { + HuSprPosSet(var_r30, 0x1C, lbl_1_data_640[arg1->unk_08[0]][3] - var_f31, lbl_1_data_640[arg1->unk_08[0]][2]); + } + switch (arg1->unk_08[0]) { + case 1: + if (var_r28 == 1) { + HuSprPosSet(var_r30, 0x1E, 340.0f + var_f31, lbl_1_data_640[1][2]); + HuSprPosSet(var_r30, 0x1F, 340.0f + var_f31, lbl_1_data_640[1][2] + 2); + } + else { + HuSprPosSet(var_r30, 0x1E, 341.0f - var_f31, lbl_1_data_640[1][2]); + HuSprPosSet(var_r30, 0x1F, 341.0f - var_f31, lbl_1_data_640[1][2] + 2); + } + HuSprScaleSet(var_r30, 0x1E, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x1F, 1.0f, var_f30); + break; + case 2: + if (var_r28 == 1) { + HuSprPosSet(var_r30, 0x20, 340.0f + var_f31, lbl_1_data_640[2][2]); + HuSprPosSet(var_r30, 0x21, 340.0f + var_f31, lbl_1_data_640[2][2] + 2); + } + else { + HuSprPosSet(var_r30, 0x20, 341.0f - var_f31, lbl_1_data_640[2][2]); + HuSprPosSet(var_r30, 0x21, 341.0f - var_f31, lbl_1_data_640[2][2] + 2); + } + HuSprScaleSet(var_r30, 0x20, 1.0f, var_f30); + HuSprScaleSet(var_r30, 0x21, 1.0f, var_f30); + break; + } + if (var_r29 == 6) { + switch (arg1->unk_08[0]) { + case 1: + HuSprBankSet(var_r30, 0x1E, arg1->unk_1C[0]); + HuSprBankSet(var_r30, 0x1F, arg1->unk_1C[0]); + break; + case 2: + HuSprBankSet(var_r30, 0x20, arg1->unk_1C[1]); + HuSprBankSet(var_r30, 0x21, arg1->unk_1C[1]); + break; + } + } + } + } + lbl_1_bss_35BC[0].unk_08[3] = 0; +} + +void fn_1_1F5F0(void) +{ + s32 var_r31; + s32 var_r30; + + var_r31 = lbl_1_bss_35BC[0].unk_34; + for (var_r30 = 0; var_r30 < 9; var_r30++) { + HuSprAttrSet(var_r31, var_r30, 4); + } + HuSprAttrReset(var_r31, 0, 4); + HuSprBankSet(var_r31, 0, lbl_1_bss_35BC[0].unk_1C[0]); + HuSprAttrReset(var_r31, lbl_1_bss_3114->unk_68 + 1, 4); + HuSprGrpPosSet(var_r31, 16.0f, -500.0f); +} + +void fn_1_1F6B8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r29 = HuSprGrpCreate(9); + arg0->unk_34 = var_r29; + var_r27 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x59)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, 0, var_r27); + fn_1_6534(var_r29, 0, 75.0f, 25.0f); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + var_r27 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MENT, 0x31)), 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 1, var_r27); + HuSprPosSet(var_r29, var_r31 + 1, 24.0f, 25.0f); + } + var_r30 = lbl_1_bss_35BC[0].unk_34; + for (var_r28 = 0; var_r28 < 9; var_r28++) { + HuSprAttrSet(var_r30, var_r28, 4); + } + HuSprAttrReset(var_r30, 0, 4); + HuSprBankSet(var_r30, 0, lbl_1_bss_35BC[0].unk_1C[0]); + HuSprAttrReset(var_r30, lbl_1_bss_3114->unk_68 + 1, 4); + HuSprGrpPosSet(var_r30, 16.0f, -500.0f); +} + +void fn_1_1F868(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_bss_35BC[0].unk_34; + for (var_r29 = 0; var_r29 < 9; var_r29++) { + HuSprAttrSet(var_r30, var_r29, 4); + } + HuSprAttrReset(var_r30, 0, 4); + HuSprBankSet(var_r30, 0, lbl_1_bss_35BC[0].unk_1C[0]); + HuSprAttrReset(var_r30, lbl_1_bss_3114->unk_68 + 1, 4); + HuSprGrpPosSet(var_r30, 16.0f, -500.0f); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0x32) { + var_f31 = fn_1_32C(-500.0f, 50.0f, var_r31, 50.0f); + } + else { + var_f31 = fn_1_254(50.0f, 40.0f, var_r31 - 0x32, 10.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_34, 16.0f, var_f31); + } +} + +void fn_1_1FA34(void) +{ + float var_f31; + s32 var_r31; + + lbl_1_bss_35BC[0].unk_08[0] = -1; + lbl_1_bss_35BC[0].unk_04 = NULL; + for (var_r31 = 0; var_r31 <= 0x4B; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0xA) { + var_f31 = fn_1_32C(40.0f, 50.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_254(50.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_34, 16.0f, var_f31); + if (var_r31 >= 0xF) { + var_f31 = fn_1_254(210.0f, -500.0f, var_r31 - 0xF, 60.0f); + HuSprGrpData[lbl_1_bss_35BC[0].unk_38].y = (s32)fn_1_234(HuSprGrpData[lbl_1_bss_35BC[0].unk_38].y, var_f31, 10.0f); + } + } +} + +void fn_1_1FC54(void) +{ + float var_f31; + s32 var_r31; + + lbl_1_bss_35BC[0].unk_08[0] = -1; + lbl_1_bss_35BC[0].unk_04 = NULL; + for (var_r31 = 0; var_r31 <= 0x28; var_r31++) { + fn_1_4D8(); + var_f31 = fn_1_254(40.0f, -500.0f, var_r31, 40.0f); + HuSprGrpPosSet(lbl_1_bss_35BC[0].unk_34, 16.0f, var_f31); + var_f31 = fn_1_254(210.0f, -500.0f, var_r31, 40.0f); + HuSprGrpData[lbl_1_bss_35BC[0].unk_38].y = (s32)fn_1_234(HuSprGrpData[lbl_1_bss_35BC[0].unk_38].y, var_f31, 10.0f); + } +} + +void fn_1_1FE08(void) +{ + s32 sp8; + s32 var_r31; + s32 var_r30; + + sp8 = 0; + var_r30 = lbl_1_bss_35BC[0].unk_40; + for (var_r31 = 0; var_r31 < 0x13; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprBankSet(var_r30, var_r31, 0); + lbl_1_bss_3114[var_r31].unk_70[3] = lbl_1_bss_3114[var_r31].unk_60 = 0; + HuSprAttrReset(var_r30, var_r31, 4); + HuSprAttrReset(var_r30, var_r31 + 4, 4); + } + HuSprAttrReset(var_r30, 0xA, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 0xB, 4); + HuSprAttrReset(var_r30, var_r31 + 0xF, 4); + } + HuSprGrpPosSet(var_r30, 0.0f, -500.0f); +} + +void fn_1_1FF4C(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) +{ + s32 sp8; + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + + sp8 = 0; + var_r28 = lbl_1_bss_35BC[0].unk_40; + var_r29 = var_r27 = var_r26 = var_r25 = 0; + lbl_1_bss_35BC[0].unk_1C[0] = 0; + var_r29 = 1; + for (var_r30 = 1; var_r30 < 4; var_r30++) { + if (lbl_1_bss_3114[var_r30].unk_60 == 0) { + var_r29++; + } + } + var_r27 = 1; + for (var_r30 = 1; var_r30 < 4; var_r30++) { + if (HuPadStatGet(var_r30) != -1) { + var_r27++; + } + } + if (var_r27 >= 2) { + fn_1_208F4(); + if ((HuPadStkX[lbl_1_bss_3114->unk_6C] >= 5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 2) != 0)) { + var_r29++; + var_r26 = 1; + } + else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] <= -5) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 1) != 0)) { + var_r29--; + var_r26 = -1; + } + } + else { + fn_1_20A24(); + } + if (var_r29 < 1) { + var_r29 = var_r27; + } + else if (var_r29 > var_r27) { + if (var_r26 == 0) { + var_r29 = var_r27; + var_r25 = 1; + } + else { + var_r29 = 1; + } + } + if ((var_r26 != 0) || (var_r25 != 0)) { + lbl_1_bss_35BC[0].unk_1C[0] = 1; + HuAudFXPlay(0); + for (var_r30 = 0; var_r30 <= 0xA; var_r30++) { + if (var_r30 <= 5) { + var_f30 = fn_1_32C(0.0f, 10.0f, var_r30, 5.0f); + var_f31 = fn_1_32C(1.0f, 0.0f, var_r30, 5.0f); + } + else { + var_f30 = fn_1_32C(10.0f, 0.0f, var_r30 - 5, 5.0f); + var_f31 = fn_1_32C(0.0f, 1.0f, var_r30 - 5, 5.0f); + } + if (var_r26 == 1) { + HuSprPosSet(var_r28, 9, (lbl_1_data_690[3][0] + 0x32) + var_f30, lbl_1_data_690[0][1]); + } + else if (var_r26 == -1) { + HuSprPosSet(var_r28, 8, (lbl_1_data_690[0][0] - 0x32) - var_f30, lbl_1_data_690[0][1]); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if ((var_r31 < var_r29) && (lbl_1_bss_3114[var_r31].unk_60 == 1)) { + lbl_1_bss_3114[var_r31].unk_70[3] = 0; + HuSprScaleSet(var_r28, var_r31, var_f31, 1.0f); + HuSprScaleSet(var_r28, var_r31 + 4, var_f31, 1.0f); + if (var_r30 == 5) { + HuSprBankSet(var_r28, var_r31, 0); + } + } + else if ((var_r31 >= var_r29) && (lbl_1_bss_3114[var_r31].unk_60 == 0)) { + lbl_1_bss_3114[var_r31].unk_70[3] = 1; + HuSprScaleSet(var_r28, var_r31, var_f31, 1.0f); + HuSprScaleSet(var_r28, var_r31 + 4, var_f31, 1.0f); + if (var_r30 == 5) { + HuSprBankSet(var_r28, var_r31, 1); + } + } + } + fn_1_4D8(); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r31 < var_r29) { + lbl_1_bss_3114[var_r31].unk_60 = 0; + } + else { + lbl_1_bss_3114[var_r31].unk_60 = 1; + } + } + } + lbl_1_bss_35BC[0].unk_1C[0] = 0; +} + +void fn_1_2055C(s32 arg0) +{ + s32 spC; + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_35BC[0].unk_40; + if (arg0 == 0) { + spC = 0; + var_r30 = lbl_1_bss_35BC[0].unk_40; + for (var_r31 = 0; var_r31 < 0x13; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprBankSet(var_r30, var_r31, 0); + lbl_1_bss_3114[var_r31].unk_70[3] = lbl_1_bss_3114[var_r31].unk_60 = 0; + HuSprAttrReset(var_r30, var_r31, 4); + HuSprAttrReset(var_r30, var_r31 + 4, 4); + } + HuSprAttrReset(var_r30, 0xA, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 0xB, 4); + HuSprAttrReset(var_r30, var_r31 + 0xF, 4); + } + HuSprGrpPosSet(var_r30, 0.0f, -500.0f); + } + for (var_r29 = 0; var_r29 <= 0x3C; var_r29++) { + fn_1_4D8(); + if (var_r29 <= 0x32) { + var_f31 = fn_1_32C(-500.0f, 10.0f, var_r29, 50.0f); + } + else { + var_f31 = fn_1_254(10.0f, 2.06f, var_r29 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r28, 0.0f, var_f31); + } +} + +void fn_1_207BC(void) +{ + s32 spC; + s32 sp8; + float var_f31; + s32 var_r31; + s32 var_r30; + + spC = 0; + sp8 = 0; + var_r30 = lbl_1_bss_35BC[0].unk_40; + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_4D8(); + if (var_r31 <= 0xA) { + var_f31 = fn_1_32C(2.06f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_254(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(var_r30, 0.0f, var_f31); + } +} + +void fn_1_208F4(void) +{ + s32 var_r31; + + var_r31 = lbl_1_bss_35BC[0].unk_40; + HuSprAttrReset(var_r31, 8, 4); + HuSprPosSet(var_r31, 8, lbl_1_data_690[0][0] - 0x32, lbl_1_data_690[0][1]); + HuSprAttrReset(var_r31, 9, 4); + HuSprPosSet(var_r31, 9, lbl_1_data_690[3][0] + 0x32, lbl_1_data_690[0][1]); +} + +void fn_1_20A24(void) +{ + s32 var_r31; + + var_r31 = lbl_1_bss_35BC[0].unk_40; + HuSprAttrSet(var_r31, 8, 4); + HuSprPosSet(var_r31, 8, lbl_1_data_690[0][0] - 0x32, lbl_1_data_690[0][1]); + HuSprAttrSet(var_r31, 9, 4); + HuSprPosSet(var_r31, 9, lbl_1_data_690[3][0] + 0x32, lbl_1_data_690[0][1]); +} + +void fn_1_20B54(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + s32 sp8; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + AnimData *var_r26; + AnimData *var_r25; + + var_r29 = HuSprGrpCreate(0x13); + arg0->unk_40 = var_r29; + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x22)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r28 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x16)), 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31, var_r28); + HuSprPosSet(var_r29, var_r31, lbl_1_data_690[var_r31 % 4][0], lbl_1_data_690[0][1]); + var_r28 = HuSprCreate(var_r26, 0x3F2, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 4, var_r28); + HuSprTPLvlSet(var_r29, var_r31 + 4, 0.5f); + HuSprPosSet(var_r29, var_r31 + 4, lbl_1_data_690[var_r31 % 4][0] + 1, lbl_1_data_690[0][1] + 2); + } + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x42)); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r28 = HuSprCreate(var_r26, 0, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 8, var_r28); + HuSprBankSet(var_r29, var_r31 + 8, var_r31); + } + var_r28 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x15)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, 0xA, var_r28); + HuSprTPLvlSet(var_r29, 0xA, 0.8f); + fn_1_6534(var_r29, 0xA, 288.0f, 240.0f); + var_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x18)); + var_r25 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x19)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r28 = HuSprCreate(var_r26, 0x7BC, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0xB, var_r28); + HuSprBankSet(var_r29, var_r31 + 0xB, var_r31); + fn_1_6534(var_r29, var_r31 + 0xB, lbl_1_data_690[var_r31][2], lbl_1_data_690[var_r31][3]); + var_r28 = HuSprCreate(var_r25, 0x7C6, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0xF, var_r28); + HuSprBankSet(var_r29, var_r31 + 0xF, var_r31); + HuSprTPLvlSet(var_r29, var_r31 + 0xF, 0.5f); + fn_1_6534(var_r29, var_r31 + 0xF, lbl_1_data_690[var_r31][2] + 1, lbl_1_data_690[var_r31][3] + 6); + } + sp8 = 0; + var_r27 = lbl_1_bss_35BC[0].unk_40; + for (var_r30 = 0; var_r30 < 0x13; var_r30++) { + HuSprAttrSet(var_r27, var_r30, 4); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + HuSprBankSet(var_r27, var_r30, 0); + lbl_1_bss_3114[var_r30].unk_70[3] = lbl_1_bss_3114[var_r30].unk_60 = 0; + HuSprAttrReset(var_r27, var_r30, 4); + HuSprAttrReset(var_r27, var_r30 + 4, 4); + } + HuSprAttrReset(var_r27, 0xA, 4); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + HuSprAttrReset(var_r27, var_r30 + 0xB, 4); + HuSprAttrReset(var_r27, var_r30 + 0xF, 4); + } + HuSprGrpPosSet(var_r27, 0.0f, -500.0f); +} + +void fn_1_21134(omObjData *object) +{ + float var_f31; + s32 var_r31; + MentDllUnkBss64Struct *var_r29; + + var_r29 = &lbl_1_bss_64; + for (var_r31 = 1; var_r31 < 0xA; var_r31++) { + if ((var_r29->unk_38 <= 1200.0f) || (lbl_1_bss_16C4[var_r31].unk_1C == -200.0f)) { + if (lbl_1_bss_16C4[var_r31].unk_1C >= -100.0f) { + lbl_1_bss_16C4[var_r31].unk_00 = 0; + lbl_1_bss_16C4[var_r31].unk_1C = -200.0f; + lbl_1_bss_16C4[var_r31].unk_24 = -99.0f; + lbl_1_bss_16C4[var_r31].unk_04 = rand8() + 0xB4; + } + var_f31 = fn_1_254(lbl_1_bss_16C4[var_r31].unk_10, 1000.0f, lbl_1_bss_16C4[var_r31].unk_00++, lbl_1_bss_16C4[var_r31].unk_04); + Hu3DData[object->model[var_r31]].pos.y = fn_1_234(Hu3DData[object->model[var_r31]].pos.y, var_f31, 30.0f); + Hu3DData[object->model[var_r31]].pos.x + = fn_1_234(Hu3DData[object->model[var_r31]].pos.x, lbl_1_bss_16C4[var_r31].unk_18 + Hu3DData[object->model[var_r31]].pos.x, 5.0f); + } + } + for (var_r31 = 0xA; var_r31 < 0x8C; var_r31++) { + Hu3DData[object->model[var_r31]].pos.y = fn_1_3F4( + lbl_1_bss_16C4[var_r31].unk_10, lbl_1_bss_16C4[var_r31].unk_1C, lbl_1_bss_16C4[var_r31].unk_00++, lbl_1_bss_16C4[var_r31].unk_04); + if (lbl_1_bss_16C4[var_r31].unk_00 >= lbl_1_bss_16C4[var_r31].unk_04) { + lbl_1_bss_16C4[var_r31].unk_00 = 0; + } + } + for (var_r31 = 0xA; var_r31 < 0x8C; var_r31++) { + if ((lbl_1_bss_16C4[var_r31].unk_24 == 0.0f) && (lbl_1_bss_16C4[var_r31].unk_14 > (var_r29->unk_38 - 400.0f)) + && (lbl_1_bss_16C4[var_r31].unk_0C < (200.0f + var_r29->unk_08)) && (lbl_1_bss_16C4[var_r31].unk_0C > (var_r29->unk_08 - 200.0f))) { + if (var_r29->unk_08 >= lbl_1_bss_16C4[var_r31].unk_0C) { + lbl_1_bss_16C4[var_r31].unk_24 = -300.0f; + } + else { + lbl_1_bss_16C4[var_r31].unk_24 = 300.0f; + } + } + if (lbl_1_bss_16C4[var_r31].unk_24 != -99.0f) { + Hu3DData[object->model[var_r31]].pos.x + = fn_1_234(Hu3DData[object->model[var_r31]].pos.x, lbl_1_bss_16C4[var_r31].unk_0C + lbl_1_bss_16C4[var_r31].unk_24, 30.0f); + } + } + if (object->work[0] == 1) { + for (var_r31 = 0xA; var_r31 < 0x8C; var_r31++) { + Hu3DModelAttrSet(object->model[var_r31], 1); + } + } +} + +void fn_1_21724(omObjData *object) +{ + float var_f31; + float var_f30; + float var_f29; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x08)); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x09)); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x0A)); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 0x0B)); + Hu3DModelLayerSet(object->model[1], 3); + Hu3DModelLayerSet(object->model[2], 3); + Hu3DModelLayerSet(object->model[3], 3); + Hu3DModelLayerSet(object->model[4], 3); + for (var_r30 = 5; var_r30 < 0x8C; var_r30++) { + object->model[var_r30] = Hu3DModelLink(object->model[rand8() % 4 + 1]); + } + for (var_r30 = 1; var_r30 < 0xA; var_r30++) { + var_r28 = 0; + do { + Hu3DData[object->model[var_r30]].pos.x = var_f31 = 50.0f + rand8(); + if ((var_r30 % 2) != 0) { + lbl_1_bss_16C4[var_r30].unk_0C = Hu3DData[object->model[var_r30]].pos.x *= -1.0f; + } + Hu3DData[object->model[var_r30]].pos.y = var_f30 = 50.0f + rand8(); + Hu3DData[object->model[var_r30]].pos.z = var_f29 = 750.0f + (var_r30 * 5); + for (var_r29 = 1; var_r29 < 0xA; var_r29++) { + if ((var_r30 != var_r29) && (lbl_1_bss_16C4[var_r29].unk_08 == 1)) { + var_f31 = Hu3DData[object->model[var_r30]].pos.x - Hu3DData[object->model[var_r29]].pos.x; + var_f30 = Hu3DData[object->model[var_r30]].pos.y - Hu3DData[object->model[var_r29]].pos.y; + var_f29 = Hu3DData[object->model[var_r30]].pos.z - Hu3DData[object->model[var_r29]].pos.z; + if (sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)) <= 100.0f) { + break; + } + } + } + var_r28++; + } while (var_r29 != 0xA && var_r28 < 0x32); + lbl_1_bss_16C4[var_r30].unk_08 = 1; + lbl_1_bss_16C4[var_r30].unk_0C = lbl_1_bss_16C4[var_r30].unk_18 = Hu3DData[object->model[var_r30]].pos.x; + lbl_1_bss_16C4[var_r30].unk_10 = lbl_1_bss_16C4[var_r30].unk_1C = Hu3DData[object->model[var_r30]].pos.y; + lbl_1_bss_16C4[var_r30].unk_14 = lbl_1_bss_16C4[var_r30].unk_20 = Hu3DData[object->model[var_r30]].pos.z; + lbl_1_bss_16C4[var_r30].unk_18 = 0.025f * lbl_1_bss_16C4[var_r30].unk_0C; + Hu3DModelScaleSet(object->model[var_r30], 0.5f, 0.5f, 0.5f); + Hu3DModelLayerSet(object->model[var_r30], 3); + } + for (var_r30 = 0xA; var_r30 < 0x8C; var_r30++) { + var_r28 = 0; + do { + Hu3DData[object->model[var_r30]].pos.x = var_f31 = rand8() * 2; + if ((var_r30 % 2) != 0) { + Hu3DData[object->model[var_r30]].pos.x *= -1.0f; + } + + Hu3DData[object->model[var_r30]].pos.y = var_f30 = (rand8() * 2) + 0x7D; + Hu3DData[object->model[var_r30]].pos.z = var_f29 = 800.0f + (var_r30 * 0xA); + for (var_r29 = 0xA; var_r29 < 0x8C; var_r29++) { + if ((var_r30 != var_r29) && (lbl_1_bss_16C4[var_r29].unk_08 == 1)) { + var_f31 = Hu3DData[object->model[var_r30]].pos.x - Hu3DData[object->model[var_r29]].pos.x; + var_f30 = Hu3DData[object->model[var_r30]].pos.y - Hu3DData[object->model[var_r29]].pos.y; + var_f29 = Hu3DData[object->model[var_r30]].pos.z - Hu3DData[object->model[var_r29]].pos.z; + if (sqrtf((var_f29 * var_f29) + ((var_f31 * var_f31) + (var_f30 * var_f30))) <= 100.0f) { + break; + } + } + } + var_r28++; + } while (var_r29 != 0x8C && var_r28 < 0x32); + + lbl_1_bss_16C4[var_r30].unk_08 = 1; + Hu3DModelLayerSet(object->model[var_r30], 3); + lbl_1_bss_16C4[var_r30].unk_0C = lbl_1_bss_16C4[var_r30].unk_18 = Hu3DData[object->model[var_r30]].pos.x; + lbl_1_bss_16C4[var_r30].unk_10 = lbl_1_bss_16C4[var_r30].unk_1C = Hu3DData[object->model[var_r30]].pos.y; + lbl_1_bss_16C4[var_r30].unk_14 = lbl_1_bss_16C4[var_r30].unk_20 = Hu3DData[object->model[var_r30]].pos.z; + if ((rand8() % 2) == 0) { + lbl_1_bss_16C4[var_r30].unk_18 += rand8() % 30; + } + else { + lbl_1_bss_16C4[var_r30].unk_18 -= rand8() % 30; + } + lbl_1_bss_16C4[var_r30].unk_1C += (rand8() % 30) + 0xA; + if ((rand8() % 2) == 0) { + lbl_1_bss_16C4[var_r30].unk_20 += rand8() % 30; + } + else { + lbl_1_bss_16C4[var_r30].unk_20 -= rand8() % 30; + } + lbl_1_bss_16C4[var_r30].unk_24 = lbl_1_bss_16C4[var_r30].unk_28 = lbl_1_bss_16C4[var_r30].unk_2C = 0.0f; + lbl_1_bss_16C4[var_r30].unk_04 = ((rand8() * 2) % 360) + 0x168; + lbl_1_bss_16C4[var_r30].unk_00 = rand8(); + } + object->func = fn_1_21134; +} + +void fn_1_225F4(omObjData *object) +{ + s32 var_r30; + + if (object->work[0] == 0) { + return; + } + for (var_r30 = 0; var_r30 < 0xC8; var_r30++) { + switch (lbl_1_bss_E4[var_r30].unk_04) { + case 0: + Hu3DData[object->model[var_r30]].pos.x = rand8() + rand8() % 50; + if ((var_r30 % 2) == 0) { + Hu3DData[object->model[var_r30]].pos.x *= -1.0f; + } + Hu3DData[object->model[var_r30]].pos.y = 500.0f + rand8() + rand8(); + Hu3DData[object->model[var_r30]].pos.z = 700.0f + rand8() % 128; + lbl_1_bss_E4[var_r30].unk_18 = 1.0f; + lbl_1_bss_E4[var_r30].unk_00 = (rand8() % 30) + 0x1E; + lbl_1_bss_E4[var_r30].unk_0C = 0.01f * (25.0f + (rand8() % 50)); + if ((rand8() % 2) == 0) { + lbl_1_bss_E4[var_r30].unk_0C *= -1.0f; + } + lbl_1_bss_E4[var_r30].unk_10 = rand8() % 2; + lbl_1_bss_E4[var_r30].unk_14 = 0.01f * ((rand8() % 100) - 0x32); + lbl_1_bss_E4[var_r30].unk_08 = (rand8() % 5) + 5; + if ((rand8() % 2) == 0) { + lbl_1_bss_E4[var_r30].unk_08 *= -1; + } + lbl_1_bss_E4[var_r30].unk_04 = 1; + break; + case 1: + if (Hu3DData[object->model[var_r30]].pos.y <= 0.5f) { + Hu3DData[object->model[var_r30]].pos.y = 0.5f; + if (lbl_1_bss_E4[var_r30].unk_10 > 0.0f) { + Hu3DData[object->model[var_r30]].rot.x = fn_1_234(Hu3DData[object->model[var_r30]].rot.x, 180.0f, 5.0f); + } + else { + Hu3DData[object->model[var_r30]].rot.x = fn_1_234(Hu3DData[object->model[var_r30]].rot.x, 0.0f, 5.0f); + } + Hu3DData[object->model[var_r30]].rot.z = fn_1_234(Hu3DData[object->model[var_r30]].rot.z, 0.0f, 5.0f); + lbl_1_bss_E4[var_r30].unk_18 -= 0.025f; + if (lbl_1_bss_E4[var_r30].unk_18 <= 0.0f) { + lbl_1_bss_E4[var_r30].unk_18 = 0.0f; + lbl_1_bss_E4[var_r30].unk_04 = 0; + if (object->work[0] == 3) { + lbl_1_bss_E4[var_r30].unk_04 = 2; + } + } + } + else { + if (lbl_1_bss_E4[var_r30].unk_00-- <= 0) { + lbl_1_bss_E4[var_r30].unk_00 = (rand8() % 30) + 0x1E; + lbl_1_bss_E4[var_r30].unk_0C = 0.01f * (25.0f + (rand8() % 50)); + if ((rand8() % 2) == 0) { + lbl_1_bss_E4[var_r30].unk_0C *= -1.0f; + } + lbl_1_bss_E4[var_r30].unk_10 = rand8() % 2; + lbl_1_bss_E4[var_r30].unk_14 = 0.01f * ((rand8() % 100) - 0x32); + lbl_1_bss_E4[var_r30].unk_08 = (rand8() % 5) + 5; + if ((rand8() % 2) == 0) { + lbl_1_bss_E4[var_r30].unk_08 *= -1; + } + } + Hu3DModelAttrReset(object->model[var_r30], 1); + Hu3DData[object->model[var_r30]].pos.x += lbl_1_bss_E4[var_r30].unk_0C; + Hu3DData[object->model[var_r30]].pos.y -= (var_r30 % 3) + 2; + Hu3DData[object->model[var_r30]].pos.z += lbl_1_bss_E4[var_r30].unk_14; + Hu3DData[object->model[var_r30]].rot.x += lbl_1_bss_E4[var_r30].unk_08; + Hu3DData[object->model[var_r30]].rot.y += lbl_1_bss_E4[var_r30].unk_08; + Hu3DData[object->model[var_r30]].rot.z += lbl_1_bss_E4[var_r30].unk_08; + if (Hu3DData[object->model[var_r30]].rot.x >= 360.0f) { + Hu3DData[object->model[var_r30]].rot.x -= 360.0f; + } + else if (Hu3DData[object->model[var_r30]].rot.x <= 0.0f) { + Hu3DData[object->model[var_r30]].rot.x += 360.0f; + } + if (Hu3DData[object->model[var_r30]].rot.y >= 360.0f) { + Hu3DData[object->model[var_r30]].rot.y -= 360.0f; + } + else if (Hu3DData[object->model[var_r30]].rot.y <= 0.0f) { + Hu3DData[object->model[var_r30]].rot.y += 360.0f; + } + if (Hu3DData[object->model[var_r30]].rot.z >= 360.0f) { + Hu3DData[object->model[var_r30]].rot.z -= 360.0f; + } + else if (Hu3DData[object->model[var_r30]].rot.z <= 0.0f) { + Hu3DData[object->model[var_r30]].rot.z += 360.0f; + } + } + break; + case 2: + Hu3DModelAttrSet(object->model[var_r30], 1); + break; + } + } +} + +void fn_1_2342C(omObjData *object) +{ + float var_f30; + float var_f31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MENT, 12)); + for (var_r30 = 0; var_r30 < 0xC8; var_r30++) { + object->model[var_r30] = Hu3DModelLink(object->model[0]); + } + for (var_r30 = 0; var_r30 < 0xC8; var_r30++) { + Hu3DModelAttrSet(object->model[var_r30], 1); + Hu3DData[object->model[var_r30]].pos.x = rand8() + rand8(); + if (rand8() == 0) { + Hu3DData[object->model[var_r30]].pos.x *= -1.0f; + } + Hu3DData[object->model[var_r30]].pos.y = 500.0f + rand8() + rand8(); + Hu3DData[object->model[var_r30]].pos.z = 700.0f + (rand8() % 128); + var_f31 = 1.0f + (0.1f * (rand8() % 5)); + Hu3DModelScaleSet(object->model[var_r30], var_f31, var_f31, var_f31); + lbl_1_bss_E4[var_r30].unk_0C = 0.01f * (25.0f + (rand8() % 50)); + if ((rand8() % 2) == 0) { + lbl_1_bss_E4[var_r30].unk_0C *= -1.0f; + } + lbl_1_bss_E4[var_r30].unk_10 = rand8() % 2; + lbl_1_bss_E4[var_r30].unk_14 = 0.01f * ((rand8() % 100) - 0x32); + lbl_1_bss_E4[var_r30].unk_08 = (rand8() % 5) + 5; + if ((rand8() % 2) == 0) { + lbl_1_bss_E4[var_r30].unk_08 *= -1; + } + var_r29 = rand8() % 4; + switch (var_r29) { + case 0: + Hu3DModelAmbSet(object->model[var_r30], 1.0f, 1.0f, 1.0f); + break; + case 1: + Hu3DModelAmbSet(object->model[var_r30], 1.0f, 0.0f, 0.0f); + break; + case 2: + Hu3DModelAmbSet(object->model[var_r30], 0.0f, 1.0f, 0.0f); + break; + case 3: + Hu3DModelAmbSet(object->model[var_r30], 0.0f, 0.0f, 1.0f); + break; + } + lbl_1_bss_E4[var_r30].unk_04 = 0; + } + object->func = fn_1_225F4; +} From 9e9c1388e437395aeffca9a6f5fd02688b131f3e Mon Sep 17 00:00:00 2001 From: Luke Street Date: Thu, 5 Sep 2024 00:33:43 -0600 Subject: [PATCH 050/311] Update to latest dtk-template --- .gitattributes | 2 +- .github/workflows/build.yml | 20 +- README.md | 39 +- config/GMPE01_00/splits.txt | 26 +- configure.py | 144 ++------ tools/decompctx.py | 4 +- tools/download_tool.py | 16 + tools/project.py | 685 ++++++++++++++++++++++++------------ 8 files changed, 549 insertions(+), 387 deletions(-) diff --git a/.gitattributes b/.gitattributes index 9545db5f..47d43017 100644 --- a/.gitattributes +++ b/.gitattributes @@ -9,5 +9,5 @@ *.sh text eol=lf *.sha1 text eol=lf -# DTK keeps these files with LF +# decomp-toolkit writes files with LF config/**/*.txt text eol=lf diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7c5f3917..4dfcd1c6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,15 +6,12 @@ on: jobs: build: - # This is a *private* build container. - # See docs/github_actions.md for more information. container: ghcr.io/rainchus/marioparty4-build:main runs-on: ubuntu-latest strategy: fail-fast: false matrix: - # Add game versions here version: [GMPE01_00] steps: @@ -38,17 +35,15 @@ jobs: run: | python configure.py --map --version ${{ matrix.version }} \ --binutils /binutils --compilers /compilers - ninja all_source build/${{ matrix.version }}/progress.json + ninja all_source build/${{ matrix.version }}/progress.json \ + build/${{ matrix.version }}/report.json # Upload progress if we're on the main branch - name: Upload progress - # If you're using a different branch, change this to match if: github.ref == 'refs/heads/main' continue-on-error: true env: - # Replace with your project slug PROGRESS_SLUG: marioparty4 - # Set the API key in your repository secrets PROGRESS_API_KEY: ${{ secrets.PROGRESS_API_KEY }} run: | python tools/upload_progress.py -b https://progress.decomp.club/ \ @@ -57,7 +52,14 @@ jobs: # Upload map files - name: Upload map - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ matrix.version }}_maps - path: build/${{ matrix.version }}/**/*.MAP \ No newline at end of file + path: build/${{ matrix.version }}/**/*.MAP + + # Upload progress report + - name: Upload report + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.version }}_report + path: build/${{ matrix.version }}/report.json diff --git a/README.md b/README.md index 53e82df1..bca1a5fb 100644 --- a/README.md +++ b/README.md @@ -2,32 +2,11 @@ Mario Party 4 [![Build Status]][actions] ![Progress] ![DOL Progress] ![RELs Progress] [![Discord Badge]][discord] ============= - [Build Status]: https://github.com/Rainchus/marioparty4/actions/workflows/build.yml/badge.svg [actions]: https://github.com/Rainchus/marioparty4/actions/workflows/build.yml - [Progress]: https://img.shields.io/endpoint?label=Code&url=https%3A%2F%2Fprogress.decomp.club%2Fdata%2Fmarioparty4%2FGMPE01_00%2Fall%2F%3Fmode%3Dshield%26measure%3Dcode - [DOL Progress]: https://img.shields.io/endpoint?label=DOL&url=https%3A%2F%2Fprogress.decomp.club%2Fdata%2Fmarioparty4%2FGMPE01_00%2Fdol%2F%3Fmode%3Dshield%26measure%3Dcode - [RELs Progress]: https://img.shields.io/endpoint?label=RELs&url=https%3A%2F%2Fprogress.decomp.club%2Fdata%2Fmarioparty4%2FGMPE01_00%2Fmodules%2F%3Fmode%3Dshield%26measure%3Dcode - [Discord Badge]: https://img.shields.io/discord/994839212618690590?color=%237289DA&logo=discord&logoColor=%23FFFFFF [discord]: https://discord.gg/T4faGveujK @@ -37,12 +16,12 @@ This repository does **not** contain any game assets or assembly whatsoever. An Supported versions: -- `GAMEID`: Rev 0 (USA) +- `GMPE01_00`: Rev 0 (USA) Dependencies ============ -Windows: +Windows -------- On Windows, it's **highly recommended** to use native tooling. WSL or msys2 are **not** required. @@ -53,7 +32,7 @@ When running under WSL, [objdiff](#diffing) is unable to get filesystem notifica - Download [ninja](https://github.com/ninja-build/ninja/releases) and add it to `%PATH%`. - Quick install via pip: `pip install ninja` -macOS: +macOS ------ - Install [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages): ``` @@ -69,29 +48,29 @@ After OS upgrades, if macOS complains about `Wine Crossover.app` being unverifie sudo xattr -rd com.apple.quarantine '/Applications/Wine Crossover.app' ``` -Linux: +Linux ------ - Install [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages). - For non-x86(_64) platforms: Install wine from your package manager. - - For x86(_64), [WiBo](https://github.com/decompals/WiBo), a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used. + - For x86(_64), [wibo](https://github.com/decompals/wibo), a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used. Building ======== - Clone the repository: ``` - git clone https://github.com/Rainchus/mp4-dtk.git + git clone https://github.com/Rainchus/marioparty4.git ``` -- Using [Dolphin Emulator](https://dolphin-emu.org/), extract your game to `orig/GMPE01`. +- Using [Dolphin Emulator](https://dolphin-emu.org/), extract your game to `orig/GMPE01_00`. ![](assets/dolphin-extract.png) - To save space, the only necessary files are the following. Any others can be deleted. - `sys/main.dol` - - `files/rels/*.rel` + - `files/dll/*.rel` - Configure: ``` python configure.py ``` - To use a version other than `GMPE01` (USA), specify it with `--version`. + To use a version other than `GMPE01_00` (USA), specify it with `--version`. - Build: ``` ninja diff --git a/config/GMPE01_00/splits.txt b/config/GMPE01_00/splits.txt index 47bd92ab..7eefd3c3 100644 --- a/config/GMPE01_00/splits.txt +++ b/config/GMPE01_00/splits.txt @@ -1,17 +1,17 @@ Sections: - .init type:code - extab type:rodata - extabindex type:rodata - .text type:code - .ctors type:rodata - .dtors type:rodata - .rodata type:rodata - .data type:data - .bss type:bss - .sdata type:data - .sbss type:bss - .sdata2 type:rodata - .sbss2 type:bss + .init type:code align:4 + extab type:rodata align:32 + extabindex type:rodata align:32 + .text type:code align:8 + .ctors type:rodata align:32 + .dtors type:rodata align:32 + .rodata type:rodata align:32 + .data type:data align:32 + .bss type:bss align:32 + .sdata type:data align:4 + .sbss type:bss align:8 + .sdata2 type:rodata align:32 + .sbss2 type:bss align:16 game/main.c: .text start:0x800057C0 end:0x80005A5C diff --git a/configure.py b/configure.py index bbd9b2a0..4f226ebb 100644 --- a/configure.py +++ b/configure.py @@ -12,17 +12,11 @@ # Append --help to see available options. ### -import sys import argparse - +import sys from pathlib import Path -from tools.project import ( - Object, - ProjectConfig, - calculate_progress, - generate_build, - is_windows, -) +from typing import Any, Dict, List +from tools.project import * # Game versions DEFAULT_VERSION = 0 @@ -30,27 +24,25 @@ VERSIONS = [ "GMPE01_00", # USA 1.0 ] -if len(VERSIONS) > 1: - versions_str = ", ".join(VERSIONS[:-1]) + f" or {VERSIONS[-1]}" -else: - versions_str = VERSIONS[0] - parser = argparse.ArgumentParser() parser.add_argument( "mode", + choices=["configure", "progress"], default="configure", - help="configure or progress (default: configure)", + help="script mode (default: configure)", nargs="?", ) parser.add_argument( + "-v", "--version", - dest="version", + choices=VERSIONS, + type=str.upper, default=VERSIONS[DEFAULT_VERSION], - help=f"version to build ({versions_str})", + help="version to build", ) parser.add_argument( "--build-dir", - dest="build_dir", + metavar="DIR", type=Path, default=Path("build"), help="base build directory (default: build)", @@ -63,31 +55,24 @@ parser.add_argument( ) parser.add_argument( "--compilers", - dest="compilers", + metavar="DIR", type=Path, help="path to compilers (optional)", ) parser.add_argument( "--map", - dest="map", action="store_true", help="generate map file(s)", ) -parser.add_argument( - "--no-asm", - action="store_true", - help="don't incorporate .s files from asm directory", -) parser.add_argument( "--debug", - dest="debug", action="store_true", help="build with debug info (non-matching)", ) if not is_windows(): parser.add_argument( "--wrapper", - dest="wrapper", + metavar="BINARY", type=Path, help="path to wibo or wine (optional)", ) @@ -97,15 +82,20 @@ parser.add_argument( type=Path, help="path to decomp-toolkit binary or source (optional)", ) +parser.add_argument( + "--objdiff", + metavar="BINARY | DIR", + type=Path, + help="path to objdiff-cli binary or source (optional)", +) parser.add_argument( "--sjiswrap", - dest="sjiswrap", + metavar="EXE", type=Path, help="path to sjiswrap.exe (optional)", ) parser.add_argument( "--verbose", - dest="verbose", action="store_true", help="print verbose output", ) @@ -118,14 +108,13 @@ parser.add_argument( args = parser.parse_args() config = ProjectConfig() -config.version = args.version.upper() -if config.version not in VERSIONS: - sys.exit(f"Invalid version '{config.version}', expected {versions_str}") +config.version = str(args.version) version_num = VERSIONS.index(config.version) # Apply arguments config.build_dir = args.build_dir config.dtk_path = args.dtk +config.objdiff_path = args.objdiff config.binutils_path = args.binutils config.compilers_path = args.compilers config.debug = args.debug @@ -134,13 +123,15 @@ config.non_matching = args.non_matching config.sjiswrap_path = args.sjiswrap if not is_windows(): config.wrapper = args.wrapper -if args.no_asm: +# Don't build asm unless we're --non-matching +if not config.non_matching: config.asm_dir = None # Tool versions config.binutils_tag = "2.42-1" -config.compilers_tag = "20231018" -config.dtk_tag = "v0.7.4" +config.compilers_tag = "20240706" +config.dtk_tag = "v0.9.6" +config.objdiff_tag = "v2.0.0-beta.6" config.sjiswrap_tag = "v1.1.1" config.wibo_tag = "0.6.11" @@ -329,8 +320,9 @@ def Rel(lib_name, objects): } -Matching = True -NonMatching = False +Matching = True # Object matches and should be linked +NonMatching = False # Object does not match and should not be linked +Equivalent = config.non_matching # Object should be linked when configured with --non-matching config.warn_missing_config = True config.warn_missing_source = False @@ -788,19 +780,18 @@ config.libs = [ "objects": [ Object(Matching, "REL/executor.c"), Object(Matching, "REL/empty.c"), # Must be marked as matching + Object(Matching, "REL/board_executor.c"), ], }, Rel( "_minigameDLL", objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/_minigameDLL/_minigameDLL.c"), }, ), Rel( "bootDll", objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/bootDll/main.c"), Object(Matching, "REL/bootDll/nintendo_data.c"), }, @@ -809,14 +800,12 @@ config.libs = [ "E3setupDLL", objects={ Object(Matching, "REL/E3setupDLL/mgselect.c"), - Object(Matching, "REL/executor.c"), Object(Matching, "REL/E3setupDLL/main.c"), }, ), Rel( "instDll", objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/instDll/main.c"), Object(NonMatching, "REL/instDll/font.c"), }, @@ -824,7 +813,6 @@ config.libs = [ Rel( "m401Dll", # Manta Rings objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m401Dll/main.c"), Object(Matching, "REL/m401Dll/main_ex.c"), }, @@ -838,7 +826,6 @@ config.libs = [ Rel( "m403Dll", # Booksquirm objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m403Dll/main.c"), Object(Matching, "REL/m403Dll/scene.c"), }, @@ -846,7 +833,6 @@ config.libs = [ Rel( "m404Dll", # Trace Race objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m404Dll/main.c"), }, ), @@ -859,7 +845,6 @@ config.libs = [ Rel( "m406Dll", # Avalanche! objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m406Dll/main.c"), Object(Matching, "REL/m406Dll/map.c"), Object(Matching, "REL/m406Dll/player.c"), @@ -868,7 +853,6 @@ config.libs = [ Rel( "m407dll", # Domination objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m407dll/player.c"), Object(Matching, "REL/m407dll/map.c"), Object(Matching, "REL/m407dll/camera.c"), @@ -882,7 +866,6 @@ config.libs = [ Rel( "m408Dll", # Paratrooper Plunge objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m408Dll/main.c"), Object(Matching, "REL/m408Dll/camera.c"), Object(Matching, "REL/m408Dll/stage.c"), @@ -892,7 +875,6 @@ config.libs = [ Rel( "m409Dll", # Toad's Quick Draw objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m409Dll/main.c"), Object(Matching, "REL/m409Dll/player.c"), Object(Matching, "REL/m409Dll/cursor.c"), @@ -901,7 +883,6 @@ config.libs = [ Rel( "m410Dll", # Three Throw objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m410Dll/main.c"), Object(Matching, "REL/m410Dll/stage.c"), Object(Matching, "REL/m410Dll/game.c"), @@ -911,35 +892,30 @@ config.libs = [ Rel( "m411Dll", # Photo Finish objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m411Dll/main.c"), }, ), Rel( "m412Dll", # Mr. Blizzard's Brigade objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m412Dll/main.c"), }, ), Rel( "m413Dll", # Bob-omb Breakers objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m413Dll/main.c"), }, ), Rel( "m414Dll", # Long Claw of the Law objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m414Dll/main.c"), }, ), Rel( "m415Dll", # Stamp Out! objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m415Dll/main.c"), Object(NonMatching, "REL/m415Dll/map.c"), }, @@ -947,7 +923,6 @@ config.libs = [ Rel( "m416Dll", # Candlelight Flight objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m416Dll/main.c"), Object(Matching, "REL/m416Dll/map.c"), }, @@ -955,7 +930,6 @@ config.libs = [ Rel( "m417Dll", # Makin' Waves objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m417Dll/main.c"), Object(Matching, "REL/m417Dll/water.c"), Object(Matching, "REL/m417Dll/player.c"), @@ -972,14 +946,12 @@ config.libs = [ Rel( "m419Dll", # Tree Stomp objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m419Dll/main.c"), }, ), Rel( "m420dll", # Fish n' Drips objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m420dll/main.c"), Object(NonMatching, "REL/m420dll/player.c"), Object(NonMatching, "REL/m420dll/map.c"), @@ -989,7 +961,6 @@ config.libs = [ Rel( "m421Dll", # Hop or Pop objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m421Dll/main.c"), Object(NonMatching, "REL/m421Dll/player.c"), Object(NonMatching, "REL/m421Dll/map.c"), @@ -998,21 +969,18 @@ config.libs = [ Rel( "m422Dll", # Money Belts objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m422Dll/main.c"), }, ), Rel( "m423Dll", # GOOOOOOOAL!! objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m423Dll/main.c"), }, ), Rel( "m424Dll", # Blame it on the Crane objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m424Dll/main.c"), Object(NonMatching, "REL/m424Dll/map.c"), Object(NonMatching, "REL/m424Dll/ball.c"), @@ -1022,7 +990,6 @@ config.libs = [ Rel( "m425Dll", # The Great Deflate objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m425Dll/main.c"), Object(NonMatching, "REL/m425Dll/thwomp.c"), }, @@ -1030,14 +997,12 @@ config.libs = [ Rel( "m426Dll", # Revers-a-Bomb objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m426Dll/main.c"), }, ), Rel( "m427Dll", # Right Oar Left? objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m427Dll/main.c"), Object(NonMatching, "REL/m427Dll/map.c"), Object(NonMatching, "REL/m427Dll/player.c"), @@ -1046,7 +1011,6 @@ config.libs = [ Rel( "m428Dll", # Cliffhangers objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m428Dll/main.c"), Object(NonMatching, "REL/m428Dll/map.c"), Object(NonMatching, "REL/m428Dll/player.c"), @@ -1061,7 +1025,6 @@ config.libs = [ Rel( "m430Dll", # Pair-a-sailing objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m430Dll/main.c"), Object(NonMatching, "REL/m430Dll/water.c"), Object(NonMatching, "REL/m430Dll/player.c"), @@ -1070,7 +1033,6 @@ config.libs = [ Rel( "m431Dll", # Order Up objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m431Dll/main.c"), Object(Matching, "REL/m431Dll/object.c"), }, @@ -1084,7 +1046,6 @@ config.libs = [ Rel( "m433Dll", # Beach Volley Folly objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m433Dll/main.c"), Object(NonMatching, "REL/m433Dll/map.c"), Object(NonMatching, "REL/m433Dll/player.c"), @@ -1093,7 +1054,6 @@ config.libs = [ Rel( "m434Dll", # Cheep Cheep Sweep objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m434Dll/main.c"), Object(Matching, "REL/m434Dll/map.c"), Object(NonMatching, "REL/m434Dll/player.c"), @@ -1124,7 +1084,6 @@ config.libs = [ Rel( "m438Dll", # Chain Chomp Fever objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m438Dll/main.c"), Object(NonMatching, "REL/m438Dll/map.c"), Object(NonMatching, "REL/m438Dll/fire.c"), @@ -1133,14 +1092,12 @@ config.libs = [ Rel( "m439Dll", # Paths of Peril objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m439Dll/main.c"), }, ), Rel( "m440Dll", # Bowser's Bigger Blast objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m440Dll/main.c"), Object(Matching, "REL/m440Dll/object.c"), }, @@ -1154,7 +1111,6 @@ config.libs = [ Rel( "m442Dll", # Barrel Baron objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m442Dll/main.c"), Object(Matching, "REL/m442Dll/score.c"), }, @@ -1162,7 +1118,6 @@ config.libs = [ Rel( "m443Dll", # Mario Speedwagons objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m443Dll/main.c"), Object(NonMatching, "REL/m443Dll/map.c"), Object(NonMatching, "REL/m443Dll/player.c"), @@ -1171,7 +1126,6 @@ config.libs = [ Rel( "m444dll", # Reversal of Fortune objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m444dll/main.c"), Object(Matching, "REL/m444dll/pinball.c"), Object(Matching, "REL/m444dll/datalist.c"), @@ -1181,14 +1135,12 @@ config.libs = [ Rel( "m445Dll", # Bowser Bop objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m445Dll/main.c"), }, ), Rel( "m446dll", # Mystic Match 'Em objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m446Dll/main.c"), Object(Matching, "REL/m446Dll/card.c"), Object(Matching, "REL/m446Dll/deck.c"), @@ -1202,7 +1154,6 @@ config.libs = [ Rel( "m447dll", # Archaeologuess objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m447dll/main.c"), Object(Matching, "REL/m447dll/stage.c"), Object(Matching, "REL/m447dll/camera.c"), @@ -1214,14 +1165,12 @@ config.libs = [ Rel( "m448Dll", # Goomba's Chip Flip objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m448Dll/main.c"), }, ), Rel( "m449Dll", # Kareening Koopa objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m449Dll/main.c"), }, ), @@ -1240,7 +1189,6 @@ config.libs = [ Rel( "m453Dll", # Challenge Booksquirm objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m453Dll/main.c"), Object(NonMatching, "REL/m453Dll/map.c"), Object(NonMatching, "REL/m453Dll/score.c"), @@ -1249,7 +1197,6 @@ config.libs = [ Rel( "m455Dll", # Rumble Fishing objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/m455Dll/main.c"), Object(NonMatching, "REL/m455Dll/stage.c"), }, @@ -1257,7 +1204,6 @@ config.libs = [ Rel( "m456Dll", # Take a Breather objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m456Dll/main.c"), Object(NonMatching, "REL/m456Dll/stage.c"), }, @@ -1265,28 +1211,24 @@ config.libs = [ Rel( "m457Dll", # Bowser Wrestling objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m457Dll/main.c"), }, ), Rel( "m458Dll", # Panels of Doom objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m458Dll/main.c"), }, ), Rel( "m459dll", # Mushroom Medic objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m459dll/main.c"), }, ), Rel( "m460Dll", # Doors of Doom objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m460Dll/main.c"), Object(NonMatching, "REL/m460Dll/player.c"), Object(NonMatching, "REL/m460Dll/map.c"), @@ -1302,7 +1244,6 @@ config.libs = [ Rel( "m462Dll", # Goomba Stomp objects={ - Object(Matching, "REL/executor.c"), Object(NonMatching, "REL/m462Dll/main.c"), }, ), @@ -1322,14 +1263,12 @@ config.libs = [ Rel( "messDll", objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/messDll/main.c"), }, ), Rel( "mgmodedll", objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/mgmodedll/mgmode.c"), Object(Matching, "REL/mgmodedll/free_play.c"), Object(Matching, "REL/mgmodedll/record.c"), @@ -1343,7 +1282,6 @@ config.libs = [ Rel( "modeltestDll", objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/modeltestDll/main.c"), Object(Matching, "REL/modeltestDll/modeltest00.c"), Object(Matching, "REL/modeltestDll/modeltest01.c"), @@ -1352,7 +1290,6 @@ config.libs = [ Rel( "modeseldll", objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/modeseldll/main.c"), Object(NonMatching, "REL/modeseldll/modesel.c"), Object(Matching, "REL/modeseldll/filesel.c"), @@ -1410,7 +1347,6 @@ config.libs = [ Rel( "option", objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/option/scene.c"), Object(Matching, "REL/option/camera.c"), Object(Matching, "REL/option/room.c"), @@ -1425,7 +1361,6 @@ config.libs = [ Rel( "present", objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/present/init.c"), Object(Matching, "REL/present/camera.c"), Object(Matching, "REL/present/present.c"), @@ -1436,7 +1371,6 @@ config.libs = [ Rel( "resultDll", objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/resultDll/main.c"), Object(Matching, "REL/resultDll/battle.c"), Object(Matching, "REL/resultDll/datalist.c"), @@ -1451,28 +1385,24 @@ config.libs = [ Rel( "selmenuDll", objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/selmenuDll/main.c"), }, ), Rel( "staffDll", objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/staffDll/main.c"), }, ), Rel( "subchrselDll", objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/subchrselDll/main.c"), }, ), Rel( "w01Dll", # Toad's Midway Madness objects={ - Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w01Dll/main.c"), Object(Matching, "REL/w01Dll/mg_coin.c"), Object(Matching, "REL/w01Dll/mg_item.c"), @@ -1481,7 +1411,6 @@ config.libs = [ Rel( "w02Dll", # Goomba's Greedy Gala objects={ - Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w02Dll/main.c"), Object(Matching, "REL/w02Dll/gendice.c"), Object(Matching, "REL/w02Dll/gamble.c"), @@ -1494,7 +1423,6 @@ config.libs = [ Rel( "w03Dll", # Shy Guy's Jungle Jam objects={ - Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w03Dll/main.c"), Object(Matching, "REL/w03Dll/statue.c"), Object(Matching, "REL/w03Dll/condor.c"), @@ -1507,7 +1435,6 @@ config.libs = [ Rel( "w04Dll", # Boo's Haunted Bash objects={ - Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w04Dll/main.c"), Object(Matching, "REL/w04Dll/bridge.c"), Object(Matching, "REL/w04Dll/boo_event.c"), @@ -1519,7 +1446,6 @@ config.libs = [ Rel( "w05Dll", # Koopa's Seaside Soiree objects={ - Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w05Dll/main.c"), Object(Matching, "REL/w05Dll/hotel.c"), Object(Matching, "REL/w05Dll/monkey.c"), @@ -1531,7 +1457,6 @@ config.libs = [ Rel( "w06Dll", # Bowser's Gnarly Party objects={ - Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w06Dll/main.c"), Object(Matching, "REL/w06Dll/mg_item.c"), Object(Matching, "REL/w06Dll/mg_coin.c"), @@ -1543,7 +1468,6 @@ config.libs = [ Rel( "w10Dll", # Tutorial board objects={ - Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w10Dll/main.c"), Object(Matching, "REL/w10Dll/host.c"), Object(Matching, "REL/w10Dll/scene.c"), @@ -1553,21 +1477,18 @@ config.libs = [ Rel( "w20Dll", # Mega Board Mayhem objects={ - Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w20Dll/main.c"), }, ), Rel( "w21Dll", # Mini Board Mad Dash objects={ - Object(Matching, "REL/board_executor.c"), Object(Matching, "REL/w21Dll/main.c"), }, ), Rel( "ztardll", objects={ - Object(Matching, "REL/executor.c"), Object(Matching, "REL/ztardll/main.c"), Object(Matching, "REL/ztardll/font.c"), Object(Matching, "REL/ztardll/select.c"), @@ -1575,12 +1496,15 @@ config.libs = [ ), ] +# Optional extra categories for progress tracking +config.progress_categories = [] +config.progress_each_module = args.verbose + if args.mode == "configure": # Write build.ninja and objdiff.json generate_build(config) elif args.mode == "progress": # Print progress and write progress.json - config.progress_each_module = args.verbose calculate_progress(config) else: sys.exit("Unknown mode: " + args.mode) diff --git a/tools/decompctx.py b/tools/decompctx.py index e86d5ef3..290946f1 100644 --- a/tools/decompctx.py +++ b/tools/decompctx.py @@ -23,8 +23,8 @@ include_dirs = [ # Add additional include directories here ] -include_pattern = re.compile(r'^#include\s*[<"](.+?)[>"]$') -guard_pattern = re.compile(r"^#ifndef\s+(.*)$") +include_pattern = re.compile(r'^#\s*include\s*[<"](.+?)[>"]$') +guard_pattern = re.compile(r"^#\s*ifndef\s+(.*)$") defines = set() diff --git a/tools/download_tool.py b/tools/download_tool.py index 7b386a4b..69ef96a7 100644 --- a/tools/download_tool.py +++ b/tools/download_tool.py @@ -55,6 +55,21 @@ def dtk_url(tag: str) -> str: repo = "https://github.com/encounter/decomp-toolkit" return f"{repo}/releases/download/{tag}/dtk-{system}-{arch}{suffix}" +def objdiff_cli_url(tag: str) -> str: + uname = platform.uname() + suffix = "" + system = uname.system.lower() + if system == "darwin": + system = "macos" + elif system == "windows": + suffix = ".exe" + arch = uname.machine.lower() + if arch == "amd64": + arch = "x86_64" + + repo = "https://github.com/encounter/objdiff" + return f"{repo}/releases/download/{tag}/objdiff-cli-{system}-{arch}{suffix}" + def sjiswrap_url(tag: str) -> str: repo = "https://github.com/encounter/sjiswrap" @@ -70,6 +85,7 @@ TOOLS: Dict[str, Callable[[str], str]] = { "binutils": binutils_url, "compilers": compilers_url, "dtk": dtk_url, + "objdiff-cli": objdiff_cli_url, "sjiswrap": sjiswrap_url, "wibo": wibo_url, } diff --git a/tools/project.py b/tools/project.py index 8f8c6e07..639f5a13 100644 --- a/tools/project.py +++ b/tools/project.py @@ -17,7 +17,7 @@ import os import platform import sys from pathlib import Path -from typing import Any, Dict, List, Optional, Set, Tuple, Union +from typing import Any, Dict, List, Optional, Set, Tuple, Union, cast from . import ninja_syntax from .ninja_syntax import serialize_path @@ -29,24 +29,78 @@ if sys.platform == "cygwin": f"\n(Current path: {sys.executable})" ) +Library = Dict[str, Any] + class Object: def __init__(self, completed: bool, name: str, **options: Any) -> None: self.name = name - self.base_name = Path(name).with_suffix("") self.completed = completed self.options: Dict[str, Any] = { - "add_to_all": True, + "add_to_all": None, "asflags": None, - "extra_asflags": None, + "asm_dir": None, "cflags": None, + "extra_asflags": None, "extra_cflags": None, + "host": None, + "lib": None, "mw_version": None, + "progress_category": None, "shift_jis": None, "source": name, + "src_dir": None, } self.options.update(options) + # Internal + self.src_path: Optional[Path] = None + self.asm_path: Optional[Path] = None + self.src_obj_path: Optional[Path] = None + self.asm_obj_path: Optional[Path] = None + self.host_obj_path: Optional[Path] = None + self.ctx_path: Optional[Path] = None + + def resolve(self, config: "ProjectConfig", lib: Library) -> "Object": + # Use object options, then library options + obj = Object(self.completed, self.name, **lib) + for key, value in self.options.items(): + if value is not None or key not in obj.options: + obj.options[key] = value + + # Use default options from config + def set_default(key: str, value: Any) -> None: + if obj.options[key] is None: + obj.options[key] = value + + set_default("add_to_all", True) + set_default("asflags", config.asflags) + set_default("asm_dir", config.asm_dir) + set_default("host", False) + set_default("mw_version", config.linker_version) + set_default("shift_jis", config.shift_jis) + set_default("src_dir", config.src_dir) + + # Resolve paths + build_dir = config.out_path() + obj.src_path = Path(obj.options["src_dir"]) / obj.options["source"] + if obj.options["asm_dir"] is not None: + obj.asm_path = ( + Path(obj.options["asm_dir"]) / obj.options["source"] + ).with_suffix(".s") + base_name = Path(self.name).with_suffix("") + obj.src_obj_path = build_dir / "src" / f"{base_name}.o" + obj.asm_obj_path = build_dir / "mod" / f"{base_name}.o" + obj.host_obj_path = build_dir / "host" / f"{base_name}.o" + obj.ctx_path = build_dir / "src" / f"{base_name}.ctx" + return obj + + +class ProgressCategory: + def __init__(self, id: str, name: str) -> None: + self.id = id + self.name = name + class ProjectConfig: def __init__(self) -> None: @@ -54,21 +108,26 @@ class ProjectConfig: self.build_dir: Path = Path("build") # Output build files self.src_dir: Path = Path("src") # C/C++/asm source files self.tools_dir: Path = Path("tools") # Python scripts - self.asm_dir: Path = Path("asm") # Override incomplete objects (for modding) + self.asm_dir: Optional[Path] = Path( + "asm" + ) # Override incomplete objects (for modding) # Tooling self.binutils_tag: Optional[str] = None # Git tag self.binutils_path: Optional[Path] = None # If None, download self.dtk_tag: Optional[str] = None # Git tag - self.build_dtk_path: Optional[Path] = None # If None, download + self.dtk_path: Optional[Path] = None # If None, download self.compilers_tag: Optional[str] = None # 1 self.compilers_path: Optional[Path] = None # If None, download self.wibo_tag: Optional[str] = None # Git tag self.wrapper: Optional[Path] = None # If None, download wibo on Linux self.sjiswrap_tag: Optional[str] = None # Git tag self.sjiswrap_path: Optional[Path] = None # If None, download + self.objdiff_tag: Optional[str] = None # Git tag + self.objdiff_path: Optional[Path] = None # If None, download # Project config + self.non_matching: bool = False self.build_rels: bool = True # Build REL files self.check_sha_path: Optional[Path] = None # Path to version.sha1 self.config_path: Optional[Path] = None # Path to config.yml @@ -76,7 +135,7 @@ class ProjectConfig: self.generate_map: bool = False # Generate map file(s) self.asflags: Optional[List[str]] = None # Assembler flags self.ldflags: Optional[List[str]] = None # Linker flags - self.libs: Optional[List[Dict[str, Any]]] = None # List of libraries + self.libs: Optional[List[Library]] = None # List of libraries self.linker_version: Optional[str] = None # mwld version self.version: Optional[str] = None # Version name self.warn_missing_config: bool = False # Warn on missing unit configuration @@ -88,13 +147,23 @@ class ProjectConfig: self.shift_jis = ( True # Convert source files from UTF-8 to Shift JIS automatically ) + self.reconfig_deps: Optional[List[Path]] = ( + None # Additional re-configuration dependency files + ) + self.custom_build_rules: Optional[List[Dict[str, Any]]] = ( + None # Custom ninja build rules + ) + self.custom_build_steps: Optional[Dict[str, List[Dict[str, Any]]]] = ( + None # Custom build steps, types are ["pre-compile", "post-compile", "post-link", "post-build"] + ) - # Progress output and progress.json config + # Progress output, progress.json and report.json config self.progress_all: bool = True # Include combined "all" category self.progress_modules: bool = True # Include combined "modules" category self.progress_each_module: bool = ( - True # Include individual modules, disable for large numbers of modules + False # Include individual modules, disable for large numbers of modules ) + self.progress_categories: List[ProgressCategory] = [] # Additional categories # Progress fancy printing self.progress_use_fancy: bool = False @@ -119,12 +188,17 @@ class ProjectConfig: if getattr(self, attr) is None: sys.exit(f"ProjectConfig.{attr} missing") - def find_object(self, name: str) -> Optional[Tuple[Dict[str, Any], Object]]: + # Creates a map of object names to Object instances + # Options are fully resolved from the library and object + def objects(self) -> Dict[str, Object]: + out = {} for lib in self.libs or {}: - for obj in lib["objects"]: - if obj.name == name: - return lib, obj - return None + objects: List[Object] = lib["objects"] + for obj in objects: + if obj.name in out: + sys.exit(f"Duplicate object name {obj.name}") + out[obj.name] = obj.resolve(self, lib) + return out def out_path(self) -> Path: return self.build_dir / str(self.version) @@ -160,7 +234,7 @@ def load_build_config( f = open(build_config_path, "r", encoding="utf-8") build_config: Dict[str, Any] = json.load(f) config_version = build_config.get("version") - if not config_version: + if config_version is None: # Invalid config.json f.close() os.remove(build_config_path) @@ -179,17 +253,19 @@ def load_build_config( # Generate build.ninja and objdiff.json def generate_build(config: ProjectConfig) -> None: + config.validate() + objects = config.objects() build_config = load_build_config(config, config.out_path() / "config.json") - generate_build_ninja(config, build_config) - generate_objdiff_config(config, build_config) + generate_build_ninja(config, objects, build_config) + generate_objdiff_config(config, objects, build_config) # Generate build.ninja def generate_build_ninja( - config: ProjectConfig, build_config: Optional[Dict[str, Any]] + config: ProjectConfig, + objects: Dict[str, Object], + build_config: Optional[Dict[str, Any]], ) -> None: - config.validate() - out = io.StringIO() n = ninja_syntax.Writer(out) n.variable("ninja_required_version", "1.3") @@ -213,7 +289,7 @@ def generate_build_ninja( if config.debug: ldflags += " -g" n.variable("ldflags", ldflags) - if not config.linker_version: + if config.linker_version is None: sys.exit("ProjectConfig.linker_version missing") n.variable("mw_version", Path(config.linker_version)) n.newline() @@ -225,6 +301,7 @@ def generate_build_ninja( build_path = config.out_path() progress_path = build_path / "progress.json" + report_path = build_path / "report.json" build_tools_path = config.build_dir / "tools" download_tool = config.tools_dir / "download_tool.py" n.rule( @@ -242,20 +319,32 @@ def generate_build_ninja( deps="gcc", ) - if config.build_dtk_path: + cargo_rule_written = False + + def write_cargo_rule(): + nonlocal cargo_rule_written + if not cargo_rule_written: + n.pool("cargo", 1) + n.rule( + name="cargo", + command="cargo build --release --manifest-path $in --bin $bin --target-dir $target", + description="CARGO $bin", + pool="cargo", + depfile=Path("$target") / "release" / "$bin.d", + deps="gcc", + ) + cargo_rule_written = True + + if config.dtk_path is not None and config.dtk_path.is_file(): + dtk = config.dtk_path + elif config.dtk_path is not None: dtk = build_tools_path / "release" / f"dtk{EXE}" - n.rule( - name="cargo", - command="cargo build --release --manifest-path $in --bin $bin --target-dir $target", - description="CARGO $bin", - depfile=Path("$target") / "release" / "$bin.d", - deps="gcc", - ) + write_cargo_rule() n.build( outputs=dtk, rule="cargo", - inputs=config.build_dtk_path / "Cargo.toml", - implicit=config.build_dtk_path / "Cargo.lock", + inputs=config.dtk_path / "Cargo.toml", + implicit=config.dtk_path / "Cargo.lock", variables={ "bin": "dtk", "target": build_tools_path, @@ -275,6 +364,35 @@ def generate_build_ninja( else: sys.exit("ProjectConfig.dtk_tag missing") + if config.objdiff_path is not None and config.objdiff_path.is_file(): + objdiff = config.objdiff_path + elif config.objdiff_path is not None: + objdiff = build_tools_path / "release" / f"objdiff-cli{EXE}" + write_cargo_rule() + n.build( + outputs=objdiff, + rule="cargo", + inputs=config.objdiff_path / "Cargo.toml", + implicit=config.objdiff_path / "Cargo.lock", + variables={ + "bin": "objdiff-cli", + "target": build_tools_path, + }, + ) + elif config.objdiff_tag: + objdiff = build_tools_path / f"objdiff-cli{EXE}" + n.build( + outputs=objdiff, + rule="download_tool", + implicit=download_tool, + variables={ + "tool": "objdiff-cli", + "tag": config.objdiff_tag, + }, + ) + else: + sys.exit("ProjectConfig.objdiff_tag missing") + if config.sjiswrap_path: sjiswrap = config.sjiswrap_path elif config.sjiswrap_tag: @@ -353,6 +471,17 @@ def generate_build_ninja( n.newline() + ### + # Helper rule for downloading all tools + ### + n.comment("Download all tools") + n.build( + outputs="tools", + rule="phony", + inputs=[dtk, sjiswrap, wrapper, compilers, binutils, objdiff], + ) + n.newline() + ### # Build rules ### @@ -435,6 +564,49 @@ def generate_build_ninja( ) n.newline() + if len(config.custom_build_rules or {}) > 0: + n.comment("Custom project build rules (pre/post-processing)") + for rule in config.custom_build_rules or {}: + n.rule( + name=cast(str, rule.get("name")), + command=cast(str, rule.get("command")), + description=rule.get("description", None), + depfile=rule.get("depfile", None), + generator=rule.get("generator", False), + pool=rule.get("pool", None), + restat=rule.get("restat", False), + rspfile=rule.get("rspfile", None), + rspfile_content=rule.get("rspfile_content", None), + deps=rule.get("deps", None), + ) + n.newline() + + def write_custom_step(step: str) -> List[str | Path]: + implicit: List[str | Path] = [] + if config.custom_build_steps and step in config.custom_build_steps: + n.comment(f"Custom build steps ({step})") + for custom_step in config.custom_build_steps[step]: + outputs = cast(List[str | Path], custom_step.get("outputs")) + + if isinstance(outputs, list): + implicit.extend(outputs) + else: + implicit.append(outputs) + + n.build( + outputs=outputs, + rule=cast(str, custom_step.get("rule")), + inputs=custom_step.get("inputs", None), + implicit=custom_step.get("implicit", None), + order_only=custom_step.get("order_only", None), + variables=custom_step.get("variables", None), + implicit_outputs=custom_step.get("implicit_outputs", None), + pool=custom_step.get("pool", None), + dyndep=custom_step.get("dyndep", None), + ) + n.newline() + return implicit + n.comment("Host build") n.variable("host_cflags", "-I include -Wno-trigraphs") n.variable( @@ -453,14 +625,13 @@ def generate_build_ninja( ) n.newline() + # Add all build steps needed before we compile (e.g. processing assets) + precompile_implicit = write_custom_step("pre-compile") + ### # Source files ### n.comment("Source files") - build_asm_path = build_path / "mod" - build_src_path = build_path / "src" - build_host_path = build_path / "host" - build_config_path = build_path / "config.json" def map_path(path: Path) -> Path: return path.parent / (path.name + ".MAP") @@ -503,16 +674,15 @@ def generate_build_ninja( outputs=elf_path, rule="link", inputs=self.inputs, - implicit=[self.ldscript, *mwld_implicit], + implicit=[ + *precompile_implicit, + self.ldscript, + *mwld_implicit, + *postcompile_implicit, + ], implicit_outputs=elf_map, variables={"ldflags": elf_ldflags}, ) - n.build( - outputs=dol_path, - rule="elf2dol", - inputs=elf_path, - implicit=dtk, - ) else: preplf_path = build_path / self.name / f"{self.name}.preplf" plf_path = build_path / self.name / f"{self.name}.plf" @@ -549,6 +719,7 @@ def generate_build_ninja( ) n.newline() + link_outputs: List[Path] = [] if build_config: link_steps: List[LinkStep] = [] used_compiler_versions: Set[str] = set() @@ -556,96 +727,85 @@ def generate_build_ninja( host_source_inputs: List[Path] = [] source_added: Set[Path] = set() - def c_build( - obj: Object, options: Dict[str, Any], lib_name: str, src_path: Path - ) -> Optional[Path]: - - cflags_str = make_flags_str(options["cflags"]) - if options["extra_cflags"] is not None: - extra_cflags_str = make_flags_str(options["extra_cflags"]) + def c_build(obj: Object, src_path: Path) -> Optional[Path]: + cflags_str = make_flags_str(obj.options["cflags"]) + if obj.options["extra_cflags"] is not None: + extra_cflags_str = make_flags_str(obj.options["extra_cflags"]) cflags_str += " " + extra_cflags_str - used_compiler_versions.add(options["mw_version"]) - - src_obj_path = build_src_path / f"{obj.base_name}.o" - src_base_path = build_src_path / obj.base_name + used_compiler_versions.add(obj.options["mw_version"]) # Avoid creating duplicate build rules - if src_obj_path in source_added: - return src_obj_path - source_added.add(src_obj_path) - - shift_jis = options["shift_jis"] - if shift_jis is None: - shift_jis = config.shift_jis + if obj.src_obj_path is None or obj.src_obj_path in source_added: + return obj.src_obj_path + source_added.add(obj.src_obj_path) # Add MWCC build rule + lib_name = obj.options["lib"] n.comment(f"{obj.name}: {lib_name} (linked {obj.completed})") n.build( - outputs=src_obj_path, - rule="mwcc_sjis" if shift_jis else "mwcc", + outputs=obj.src_obj_path, + rule="mwcc_sjis" if obj.options["shift_jis"] else "mwcc", inputs=src_path, variables={ - "mw_version": Path(options["mw_version"]), + "mw_version": Path(obj.options["mw_version"]), "cflags": cflags_str, - "basedir": os.path.dirname(src_base_path), - "basefile": src_base_path, + "basedir": os.path.dirname(obj.src_obj_path), + "basefile": obj.src_obj_path.with_suffix(""), }, - implicit=mwcc_sjis_implicit if shift_jis else mwcc_implicit, + implicit=( + mwcc_sjis_implicit if obj.options["shift_jis"] else mwcc_implicit + ), ) # Add ctx build rule - ctx_path = build_src_path / f"{obj.base_name}.ctx" - n.build( - outputs=ctx_path, - rule="decompctx", - inputs=src_path, - implicit=decompctx, - ) + if obj.ctx_path is not None: + n.build( + outputs=obj.ctx_path, + rule="decompctx", + inputs=src_path, + implicit=decompctx, + ) # Add host build rule - if options.get("host", False): - host_obj_path = build_host_path / f"{obj.base_name}.o" - host_base_path = build_host_path / obj.base_name + if obj.options["host"] and obj.host_obj_path is not None: n.build( - outputs=host_obj_path, + outputs=obj.host_obj_path, rule="host_cc" if src_path.suffix == ".c" else "host_cpp", inputs=src_path, variables={ - "basedir": os.path.dirname(host_base_path), - "basefile": host_base_path, + "basedir": os.path.dirname(obj.host_obj_path), + "basefile": obj.host_obj_path.with_suffix(""), }, ) - if options["add_to_all"]: - host_source_inputs.append(host_obj_path) + if obj.options["add_to_all"]: + host_source_inputs.append(obj.host_obj_path) n.newline() - if options["add_to_all"]: - source_inputs.append(src_obj_path) + if obj.options["add_to_all"]: + source_inputs.append(obj.src_obj_path) - return src_obj_path + return obj.src_obj_path def asm_build( - obj: Object, options: Dict[str, Any], lib_name: str, src_path: Path + obj: Object, src_path: Path, obj_path: Optional[Path] ) -> Optional[Path]: - asflags = options["asflags"] or config.asflags - if asflags is None: + if obj.options["asflags"] is None: sys.exit("ProjectConfig.asflags missing") - asflags_str = make_flags_str(asflags) - if options["extra_asflags"] is not None: - extra_asflags_str = make_flags_str(options["extra_asflags"]) + asflags_str = make_flags_str(obj.options["asflags"]) + if obj.options["extra_asflags"] is not None: + extra_asflags_str = make_flags_str(obj.options["extra_asflags"]) asflags_str += " " + extra_asflags_str - asm_obj_path = build_asm_path / f"{obj.base_name}.o" - # Avoid creating duplicate build rules - if asm_obj_path in source_added: - return asm_obj_path - source_added.add(asm_obj_path) + if obj_path is None or obj_path in source_added: + return obj_path + source_added.add(obj_path) # Add assembler build rule + lib_name = obj.options["lib"] n.comment(f"{obj.name}: {lib_name} (linked {obj.completed})") n.build( - outputs=asm_obj_path, + outputs=obj_path, rule="as", inputs=src_path, variables={"asflags": asflags_str}, @@ -653,54 +813,40 @@ def generate_build_ninja( ) n.newline() - if options["add_to_all"]: - source_inputs.append(asm_obj_path) + if obj.options["add_to_all"]: + source_inputs.append(obj_path) - return asm_obj_path + return obj_path def add_unit(build_obj, link_step: LinkStep): obj_path, obj_name = build_obj["object"], build_obj["name"] - result = config.find_object(obj_name) - if not result: + obj = objects.get(obj_name) + if obj is None: if config.warn_missing_config and not build_obj["autogenerated"]: print(f"Missing configuration for {obj_name}") link_step.add(obj_path) return - lib, obj = result - lib_name = lib["lib"] - - # Use object options, then library options - options = lib.copy() - for key, value in obj.options.items(): - if value is not None or key not in options: - options[key] = value - - unit_src_path = Path(lib.get("src_dir", config.src_dir)) / options["source"] - if config.asm_dir is not None: - unit_asm_path = ( - Path(lib.get("asm_dir", config.asm_dir)) / options["source"] - ).with_suffix(".s") - link_built_obj = obj.completed - if unit_src_path.exists(): - if unit_src_path.suffix in (".c", ".cp", ".cpp"): + built_obj_path: Optional[Path] = None + if obj.src_path is not None and obj.src_path.exists(): + if obj.src_path.suffix in (".c", ".cp", ".cpp"): # Add MWCC & host build rules - built_obj_path = c_build(obj, options, lib_name, unit_src_path) - elif unit_src_path.suffix == ".s": + built_obj_path = c_build(obj, obj.src_path) + elif obj.src_path.suffix == ".s": # Add assembler build rule - built_obj_path = asm_build(obj, options, lib_name, unit_src_path) + built_obj_path = asm_build(obj, obj.src_path, obj.src_obj_path) else: - sys.exit(f"Unknown source file type {unit_src_path}") + sys.exit(f"Unknown source file type {obj.src_path}") else: if config.warn_missing_source or obj.completed: - print(f"Missing source file {unit_src_path}") + print(f"Missing source file {obj.src_path}") link_built_obj = False # Assembly overrides - if unit_asm_path is not None and unit_asm_path.exists(): + if obj.asm_path is not None and obj.asm_path.exists(): link_built_obj = True - built_obj_path = asm_build(obj, options, lib_name, unit_asm_path) + built_obj_path = asm_build(obj, obj.asm_path, obj.asm_obj_path) if link_built_obj and built_obj_path is not None: # Use the source-built object @@ -709,7 +855,10 @@ def generate_build_ninja( # Use the original (extracted) object link_step.add(obj_path) else: - sys.exit(f"Missing object for {obj_name}: {unit_src_path} {lib} {obj}") + lib_name = obj.options["lib"] + sys.exit( + f"Missing object for {obj_name}: {obj.src_path} {lib_name} {obj}" + ) # Add DOL link step link_step = LinkStep(build_config) @@ -725,7 +874,7 @@ def generate_build_ninja( add_unit(unit, module_link_step) # Add empty object to empty RELs if len(module_link_step.inputs) == 0: - if not config.rel_empty_file: + if config.rel_empty_file is None: sys.exit("ProjectConfig.rel_empty_file missing") add_unit( { @@ -749,13 +898,30 @@ def generate_build_ninja( if config.compilers_path and not os.path.exists(mw_path): sys.exit(f"Linker {mw_path} does not exist") + # Add all build steps needed before we link and after compiling objects + postcompile_implicit = write_custom_step("post-compile") + ### # Link ### for step in link_steps: step.write(n) + link_outputs.append(step.output()) n.newline() + # Add all build steps needed after linking and before GC/Wii native format generation + postlink_implicit = write_custom_step("post-link") + + ### + # Generate DOL + ### + n.build( + outputs=link_steps[0].output(), + rule="elf2dol", + inputs=link_steps[0].partial_output(), + implicit=[*postlink_implicit, dtk], + ) + ### # Generate RELs ### @@ -770,7 +936,7 @@ def generate_build_ninja( rspfile="$rspfile", rspfile_content="$in_newline", ) - generated_rels = [] + generated_rels: List[str] = [] for idx, link in enumerate(build_config["links"]): # Map module names to link steps link_steps_local = list( @@ -818,6 +984,9 @@ def generate_build_ninja( ) n.newline() + # Add all build steps needed post-build (re-building archives and such) + postbuild_implicit = write_custom_step("post-build") + ### # Helper rule for building all source files ### @@ -855,7 +1024,7 @@ def generate_build_ninja( outputs=ok_path, rule="check", inputs=config.check_sha_path, - implicit=[dtk, *map(lambda step: step.output(), link_steps)], + implicit=[dtk, *link_outputs, *postbuild_implicit], ) n.newline() @@ -874,6 +1043,22 @@ def generate_build_ninja( implicit=[ok_path, configure_script, python_lib, config.config_path], ) + ### + # Generate progress report + ### + n.comment("Generate progress report") + n.rule( + name="report", + command=f"{objdiff} report generate -o $out", + description="REPORT", + ) + report_implicit: List[str | Path] = [objdiff, "all_source"] + n.build( + outputs=report_path, + rule="report", + implicit=report_implicit, + ) + ### # Helper tools ### @@ -920,6 +1105,7 @@ def generate_build_ninja( ### # Split DOL ### + build_config_path = build_path / "config.json" n.comment("Split DOL into relocatable objects") n.rule( name="split", @@ -955,6 +1141,7 @@ def generate_build_ninja( configure_script, python_lib, python_lib_dir / "ninja_syntax.py", + *(config.reconfig_deps or []), ], ) n.newline() @@ -964,7 +1151,10 @@ def generate_build_ninja( ### n.comment("Default rule") if build_config: - n.default(progress_path) + if config.non_matching: + n.default(link_outputs) + else: + n.default(progress_path) else: n.default(build_config_path) @@ -976,13 +1166,15 @@ def generate_build_ninja( # Generate objdiff.json def generate_objdiff_config( - config: ProjectConfig, build_config: Optional[Dict[str, Any]] + config: ProjectConfig, + objects: Dict[str, Object], + build_config: Optional[Dict[str, Any]], ) -> None: - if not build_config: + if build_config is None: return objdiff_config: Dict[str, Any] = { - "min_version": "1.0.0", + "min_version": "2.0.0-beta.5", "custom_make": "ninja", "build_target": False, "watch_patterns": [ @@ -998,6 +1190,7 @@ def generate_objdiff_config( "*.json", ], "units": [], + "progress_categories": [], } # decomp.me compiler name mapping @@ -1008,68 +1201,55 @@ def generate_objdiff_config( "GC/1.2.5": "mwcc_233_163", "GC/1.2.5e": "mwcc_233_163e", "GC/1.2.5n": "mwcc_233_163n", + "GC/1.3": "mwcc_242_53", "GC/1.3.2": "mwcc_242_81", "GC/1.3.2r": "mwcc_242_81r", "GC/2.0": "mwcc_247_92", "GC/2.5": "mwcc_247_105", "GC/2.6": "mwcc_247_107", "GC/2.7": "mwcc_247_108", - "GC/3.0": "mwcc_41_60831", - # "GC/3.0a3": "mwcc_41_51213", + "GC/3.0a3": "mwcc_41_51213", "GC/3.0a3.2": "mwcc_41_60126", - # "GC/3.0a3.3": "mwcc_41_60209", - # "GC/3.0a3.4": "mwcc_42_60308", - # "GC/3.0a5": "mwcc_42_60422", + "GC/3.0a3.3": "mwcc_41_60209", + "GC/3.0a3.4": "mwcc_42_60308", + "GC/3.0a5": "mwcc_42_60422", "GC/3.0a5.2": "mwcc_41_60831", + "GC/3.0": "mwcc_41_60831", + "Wii/1.0RC1": "mwcc_42_140", "Wii/0x4201_127": "mwcc_42_142", - # "Wii/1.0": "mwcc_43_145", - # "Wii/1.0RC1": "mwcc_42_140", "Wii/1.0a": "mwcc_42_142", + "Wii/1.0": "mwcc_43_145", "Wii/1.1": "mwcc_43_151", "Wii/1.3": "mwcc_43_172", - # "Wii/1.5": "mwcc_43_188", + "Wii/1.5": "mwcc_43_188", "Wii/1.6": "mwcc_43_202", "Wii/1.7": "mwcc_43_213", } - build_path = config.out_path() - - def add_unit(build_obj: Dict[str, Any], module_name: str) -> None: - if build_obj["autogenerated"]: - # Skip autogenerated objects - return - + def add_unit( + build_obj: Dict[str, Any], module_name: str, progress_categories: List[str] + ) -> None: obj_path, obj_name = build_obj["object"], build_obj["name"] base_object = Path(obj_name).with_suffix("") unit_config: Dict[str, Any] = { "name": Path(module_name) / base_object, "target_path": obj_path, + "metadata": { + "auto_generated": build_obj["autogenerated"], + "progress_categories": progress_categories, + }, } - result = config.find_object(obj_name) - if not result: + obj = objects.get(obj_name) + if obj is None: objdiff_config["units"].append(unit_config) return - lib, obj = result - src_dir = Path(lib.get("src_dir", config.src_dir)) - - # Use object options, then library options - options = lib.copy() - for key, value in obj.options.items(): - if value is not None or key not in options: - options[key] = value - - unit_src_path = src_dir / str(options["source"]) - - if not unit_src_path.exists(): - objdiff_config["units"].append(unit_config) - return - - cflags = options["cflags"] - src_obj_path = build_path / "src" / f"{obj.base_name}.o" - src_ctx_path = build_path / "src" / f"{obj.base_name}.ctx" + src_exists = obj.src_path is not None and obj.src_path.exists() + if src_exists: + unit_config["base_path"] = obj.src_obj_path + cflags = obj.options["cflags"] reverse_fn_order = False if type(cflags) is list: for flag in cflags: @@ -1088,35 +1268,86 @@ def generate_objdiff_config( cflags = list(filter(keep_flag, cflags)) # Add appropriate lang flag - if unit_src_path.suffix in (".cp", ".cpp"): - cflags.insert(0, "-lang=c++") - else: - cflags.insert(0, "-lang=c") + if obj.src_path is not None and not any( + flag.startswith("-lang") for flag in cflags + ): + if obj.src_path.suffix in (".cp", ".cpp"): + cflags.insert(0, "-lang=c++") + else: + cflags.insert(0, "-lang=c") - unit_config["base_path"] = src_obj_path - unit_config["reverse_fn_order"] = reverse_fn_order - unit_config["complete"] = obj.completed - compiler_version = COMPILER_MAP.get(options["mw_version"]) + compiler_version = COMPILER_MAP.get(obj.options["mw_version"]) if compiler_version is None: - print(f"Missing scratch compiler mapping for {options['mw_version']}") + print(f"Missing scratch compiler mapping for {obj.options['mw_version']}") else: + cflags_str = make_flags_str(cflags) + if obj.options["extra_cflags"] is not None: + extra_cflags_str = make_flags_str(obj.options["extra_cflags"]) + cflags_str += " " + extra_cflags_str unit_config["scratch"] = { "platform": "gc_wii", "compiler": compiler_version, - "c_flags": make_flags_str(cflags), - "ctx_path": src_ctx_path, - "build_ctx": True, + "c_flags": cflags_str, } + if src_exists: + unit_config["scratch"].update( + { + "ctx_path": obj.ctx_path, + "build_ctx": True, + } + ) + category_opt: List[str] | str = obj.options["progress_category"] + if isinstance(category_opt, list): + progress_categories.extend(category_opt) + elif category_opt is not None: + progress_categories.append(category_opt) + unit_config["metadata"].update( + { + "complete": obj.completed, + "reverse_fn_order": reverse_fn_order, + "source_path": obj.src_path, + "progress_categories": progress_categories, + } + ) objdiff_config["units"].append(unit_config) # Add DOL units for unit in build_config["units"]: - add_unit(unit, build_config["name"]) + progress_categories = [] + # Only include a "dol" category if there are any modules + # Otherwise it's redundant with the global report measures + if len(build_config["modules"]) > 0: + progress_categories.append("dol") + add_unit(unit, build_config["name"], progress_categories) # Add REL units for module in build_config["modules"]: for unit in module["units"]: - add_unit(unit, module["name"]) + progress_categories = [] + if config.progress_modules: + progress_categories.append("modules") + if config.progress_each_module: + progress_categories.append(module["name"]) + add_unit(unit, module["name"], progress_categories) + + # Add progress categories + def add_category(id: str, name: str): + objdiff_config["progress_categories"].append( + { + "id": id, + "name": name, + } + ) + + if len(build_config["modules"]) > 0: + add_category("dol", "DOL") + if config.progress_modules: + add_category("modules", "Modules") + if config.progress_each_module: + for module in build_config["modules"]: + add_category(module["name"], module["name"]) + for category in config.progress_categories: + add_category(category.id, category.name) # Write objdiff.json with open("objdiff.json", "w", encoding="utf-8") as w: @@ -1129,9 +1360,11 @@ def generate_objdiff_config( # Calculate, print and write progress to progress.json def calculate_progress(config: ProjectConfig) -> None: + config.validate() + objects = config.objects() out_path = config.out_path() build_config = load_build_config(config, out_path / "config.json") - if not build_config: + if build_config is None: return class ProgressUnit: @@ -1163,12 +1396,8 @@ def calculate_progress(config: ProjectConfig) -> None: # Skip autogenerated objects return - result = config.find_object(build_obj["name"]) - if not result: - return - - _, obj = result - if not obj.completed: + obj = objects.get(build_obj["name"]) + if obj is None or not obj.completed: return self.code_progress += build_obj["code_size"] @@ -1182,26 +1411,52 @@ def calculate_progress(config: ProjectConfig) -> None: def data_frac(self) -> float: return self.data_progress / self.data_total + progress_units: Dict[str, ProgressUnit] = {} + if config.progress_all: + progress_units["all"] = ProgressUnit("All") + progress_units["dol"] = ProgressUnit("DOL") + if len(build_config["modules"]) > 0: + if config.progress_modules: + progress_units["modules"] = ProgressUnit("Modules") + if len(config.progress_categories) > 0: + for category in config.progress_categories: + progress_units[category.id] = ProgressUnit(category.name) + if config.progress_each_module: + for module in build_config["modules"]: + progress_units[module["name"]] = ProgressUnit(module["name"]) + + def add_unit(id: str, unit: Dict[str, Any]) -> None: + progress = progress_units.get(id) + if progress is not None: + progress.add(unit) + # Add DOL units - all_progress = ProgressUnit("All") if config.progress_all else None - dol_progress = ProgressUnit("DOL") for unit in build_config["units"]: - if all_progress: - all_progress.add(unit) - dol_progress.add(unit) + add_unit("all", unit) + add_unit("dol", unit) + obj = objects.get(unit["name"]) + if obj is not None: + category_opt = obj.options["progress_category"] + if isinstance(category_opt, list): + for id in category_opt: + add_unit(id, unit) + elif category_opt is not None: + add_unit(category_opt, unit) # Add REL units - rels_progress = ProgressUnit("Modules") if config.progress_modules else None - modules_progress: List[ProgressUnit] = [] for module in build_config["modules"]: - progress = ProgressUnit(module["name"]) - modules_progress.append(progress) for unit in module["units"]: - if all_progress: - all_progress.add(unit) - if rels_progress: - rels_progress.add(unit) - progress.add(unit) + add_unit("all", unit) + add_unit("modules", unit) + add_unit(module["name"], unit) + obj = objects.get(unit["name"]) + if obj is not None: + category_opt = obj.options["progress_category"] + if isinstance(category_opt, list): + for id in category_opt: + add_unit(id, unit) + elif category_opt is not None: + add_unit(category_opt, unit) # Print human-readable progress print("Progress:") @@ -1219,7 +1474,7 @@ def calculate_progress(config: ProjectConfig) -> None: print(f" Data: {unit.data_progress} / {unit.data_total} bytes") if config.progress_use_fancy: print( - "\nYou have {} out of {} {} and collected {} out of {} {}.".format( + "\nYou have {} out of {} {} and {} out of {} {}.".format( math.floor(code_frac * unit.code_fancy_frac), unit.code_fancy_frac, unit.code_fancy_item, @@ -1229,15 +1484,8 @@ def calculate_progress(config: ProjectConfig) -> None: ) ) - if all_progress: - print_category(all_progress) - print_category(dol_progress) - module_count = len(build_config["modules"]) - if module_count > 0: - print_category(rels_progress) - if config.progress_each_module: - for progress in modules_progress: - print_category(progress) + for progress in progress_units.values(): + print_category(progress) # Generate and write progress.json progress_json: Dict[str, Any] = {} @@ -1250,14 +1498,7 @@ def calculate_progress(config: ProjectConfig) -> None: "data/total": unit.data_total, } - if all_progress: - add_category("all", all_progress) - add_category("dol", dol_progress) - if len(build_config["modules"]) > 0: - if rels_progress: - add_category("modules", rels_progress) - if config.progress_each_module: - for progress in modules_progress: - add_category(progress.name, progress) + for id, progress in progress_units.items(): + add_category(id, progress) with open(out_path / "progress.json", "w", encoding="utf-8") as w: json.dump(progress_json, w, indent=4) From 5650eb99057b4d2c893992e921ea2523d20f7cf4 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Mon, 9 Sep 2024 23:39:00 -0500 Subject: [PATCH 051/311] Start using display size defines --- include/game/disp.h | 18 ++++ orig/GMPE01_00 - Copy/.gitkeep | 0 src/game/board/main.c | 9 +- src/game/board/player.c | 13 +-- src/game/board/roll.c | 19 ++-- src/game/board/shop.c | 5 +- src/game/board/star.c | 4 +- src/game/board/ui.c | 25 ++--- src/game/board/view.c | 14 +-- src/game/board/warp.c | 6 +- src/game/board/window.c | 8 +- src/game/hsfdraw.c | 3 +- src/game/hsfex.c | 16 ++-- src/game/hsfman.c | 16 ++-- src/game/minigame_seq.c | 162 +++++++++++++++++---------------- src/game/printfunc.c | 33 ++++--- src/game/sprput.c | 9 +- src/game/window.c | 9 +- 18 files changed, 210 insertions(+), 159 deletions(-) create mode 100644 include/game/disp.h create mode 100644 orig/GMPE01_00 - Copy/.gitkeep diff --git a/include/game/disp.h b/include/game/disp.h new file mode 100644 index 00000000..11fd19e3 --- /dev/null +++ b/include/game/disp.h @@ -0,0 +1,18 @@ +#ifndef _GAME_DISP_H +#define _GAME_DISP_H + +#define HU_DISP_WIDTH 576 +#define HU_DISP_WIDTHF ((float)HU_DISP_WIDTH) +#define HU_DISP_HEIGHT 480 +#define HU_DISP_HEIGHTF ((float)HU_DISP_HEIGHT) +#define HU_DISP_ASPECT (HU_DISP_WIDTHF/HU_DISP_HEIGHTF) + +#define HU_DISP_CENTERXI (HU_DISP_WIDTH/2) +#define HU_DISP_CENTERX (HU_DISP_WIDTHF/2) +#define HU_DISP_CENTERYI (HU_DISP_HEIGHT/2) +#define HU_DISP_CENTERY (HU_DISP_HEIGHTF/2) + +#define HU_FB_WIDTH 640 +#define HU_FB_HEIGHT 480 + +#endif \ No newline at end of file diff --git a/orig/GMPE01_00 - Copy/.gitkeep b/orig/GMPE01_00 - Copy/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/src/game/board/main.c b/src/game/board/main.c index 446e91dc..1d77b332 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -19,6 +19,7 @@ #include "game/board/tutorial.h" #include "game/board/ui.h" #include "game/pad.h" +#include "game/disp.h" #include "game/msm.h" typedef struct camera_view { @@ -1135,7 +1136,7 @@ void BoardCameraInit(void) camera->fov = 25; camera->near = 100; camera->far = 13000; - camera->aspect = 1.2; + camera->aspect = HU_DISP_ASPECT; camera->viewport_x = 0; camera->viewport_y = 0; camera->viewport_h = 480; @@ -1638,9 +1639,9 @@ static void DrawFilter(ModelData *model, Mtx matrix) } work = OM_GET_WORK_PTR(filterObj, FilterWork); x1 = 0.0f; - x2 = 640.0f; + x2 = HU_FB_WIDTH; y1 = 0.0f; - y2 = 480.0f; + y2 = HU_FB_HEIGHT; MTXOrtho(proj, y1, y2, x1, x2, 0, 10); GXSetProjection(proj, GX_ORTHOGRAPHIC); MTXIdentity(modelview); @@ -2003,7 +2004,7 @@ void BoardLast5GfxInit(void) HuSprAttrSet(work->group, 1, HUSPR_ATTR_NOANIM); object->trans.x = 0.0f; HuSprGrpTPLvlSet(work->group, object->trans.x); - HuSprGrpPosSet(work->group, 288, 72); + HuSprGrpPosSet(work->group, HU_DISP_CENTERX, 72); HuAudFXPlay(838); work->time = 0; } diff --git a/src/game/board/player.c b/src/game/board/player.c index 5972e41b..792a65af 100644 --- a/src/game/board/player.c +++ b/src/game/board/player.c @@ -16,6 +16,8 @@ #include "game/hsfman.h" #include "game/objsub.h" #include "game/pad.h" +#include "game/disp.h" + #include "math.h" #include "stdlib.h" @@ -2084,7 +2086,7 @@ void BoardRollCreate(s32 arg0, s32 arg1) for (var_r30 = 0; var_r30 < 2; var_r30++) { BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x2B), 0x4B0, 0, &temp_r31->unk_06[var_r30]); HuSprGrpMemberSet(temp_r31->unk_04, var_r30, temp_r31->unk_06[var_r30]); - HuSprPosSet(temp_r31->unk_04, var_r30, 288.0f, 240.0f); + HuSprPosSet(temp_r31->unk_04, var_r30, HU_DISP_CENTERX, HU_DISP_CENTERY); HuSprAttrSet(temp_r31->unk_04, var_r30, 4); } rollObj = temp_r3; @@ -2131,7 +2133,7 @@ static void UpdateRollSprite(omObjData *arg0) { Vec sp1C; s32 sp14[2]; - f32 spC[2] = { 320.0f, 256.0f }; + f32 spC[2] = { HU_DISP_CENTERX+32, HU_DISP_CENTERX-32 }; s32 var_r30; s32 temp_r29; bitcopy3 *temp_r31; @@ -2152,12 +2154,11 @@ static void UpdateRollSprite(omObjData *arg0) } else { if ((sp14[1] == 0) && (var_r30 == 0)) { - sp1C.x = 288.0f; - } - else { + sp1C.x = HU_DISP_CENTERX; + } else { sp1C.x = spC[var_r30]; } - sp1C.y = 176.0f; + sp1C.y = (HU_DISP_HEIGHTF*176)/480; HuSprAttrReset(temp_r31->unk_04, var_r30, 4); HuSprBankSet(temp_r31->unk_04, var_r30, sp14[var_r30]); HuSprPosSet(temp_r31->unk_04, var_r30, sp1C.x, sp1C.y); diff --git a/src/game/board/roll.c b/src/game/board/roll.c index b233ffab..f2c80503 100755 --- a/src/game/board/roll.c +++ b/src/game/board/roll.c @@ -4,6 +4,7 @@ #include "game/hsfanim.h" #include "game/object.h" #include "game/pad.h" +#include "game/disp.h" #include "game/process.h" #include "game/window.h" #include "game/board/main.h" @@ -239,10 +240,10 @@ static void RollMain(void) { var_f31 = -10000.0f; break; case 1: - var_f31 = 288.0f - (sp8[0] / 2 - 16.0f); + var_f31 = HU_DISP_CENTERX- (sp8[0] / 2 - 16.0f); break; } - var_f30 = 304.0f; + var_f30 = HU_DISP_HEIGHT-176; rollWin = HuWinCreate(var_f31, var_f30, sp8[0], sp8[1], 0); HuWinBGTPLvlSet(rollWin, 0.0f); HuWinMesSpeedSet(rollWin, 0); @@ -735,17 +736,17 @@ static void DiceDigitMove(DiceDigitWork *arg0, s32 arg1) { Vec sp30; Vec sp24; Vec sp54[2]; - Vec sp18 = { 288.0f, 155.0f, 240.0f }; + Vec sp18 = { (HU_DISP_WIDTH/2), (HU_DISP_HEIGHT*155)/480, 240.0f }; Vec sp3C[2] = { - { 144.0f, 155.0f, 240.0f }, - { 432.0f, 155.0f, 240.0f } + { (HU_DISP_WIDTH*1)/4, (HU_DISP_HEIGHT*155)/480, 240.0f }, + { (HU_DISP_WIDTH*3)/4, (HU_DISP_HEIGHT*155)/480, 240.0f } }; Vec sp6C[3] = { - { 144.0f, 155.0f, 240.0f }, - { 432.0f, 155.0f, 240.0f }, - { 288.0f, 155.0f, 240.0f } + { (HU_DISP_WIDTH*1)/4, (HU_DISP_HEIGHT*155)/480, 240.0f }, + { (HU_DISP_WIDTH*3)/4, (HU_DISP_HEIGHT*155)/480, 240.0f }, + { (HU_DISP_WIDTH/2), (HU_DISP_HEIGHT*155)/480, 240.0f } }; - Vec spC = { 288.0f, 176.0f, 240.0f }; + Vec spC = { (HU_DISP_WIDTH/2), (HU_DISP_HEIGHT*176)/480, 240.0f }; Vec *var_r29; float var_f31; s16 var_r27; diff --git a/src/game/board/shop.c b/src/game/board/shop.c index f3dad21c..92198602 100755 --- a/src/game/board/shop.c +++ b/src/game/board/shop.c @@ -4,6 +4,7 @@ #include "game/gamework_data.h" #include "game/object.h" #include "game/objsub.h" +#include "game/disp.h" #include "game/pad.h" #include "game/process.h" #include "game/sprite.h" @@ -472,12 +473,12 @@ static void CreateShopWin(void) { var_r30->unk01 = 0xC; var_r30->unk04 = 0; shopWinObj = var_r31; - var_r30->unk06 = HuWinCreate(36.0f, 344.0f, 0x1F8, 0x60, 0); + var_r30->unk06 = HuWinCreate(36.0f, HU_DISP_HEIGHT-136, 0x1F8, 0x60, 0); HuWinMesSpeedSet(var_r30->unk06, 0); HuWinDrawNoSet(var_r30->unk06, 0x40); HuWinExAnimIn(var_r30->unk06); sp8.x = 84.0f; - sp8.y = 392.0f; + sp8.y = HU_DISP_HEIGHT-88; sp8.z = 400.0f; var_r31->scale.x = var_r31->scale.y = var_r31->scale.z = 0.25f; Hu3D2Dto3D(&sp8, 1, &sp8); diff --git a/src/game/board/star.c b/src/game/board/star.c index ecdc6d88..f4579aa8 100755 --- a/src/game/board/star.c +++ b/src/game/board/star.c @@ -1,6 +1,8 @@ #include "game/board/star.h" #include "game/audio.h" #include "game/data.h" +#include "game/disp.h" + #include "game/flag.h" #include "game/gamework.h" #include "game/gamework_data.h" @@ -708,7 +710,7 @@ void BoardStarShowNext(s32 arg0) { } BoardViewMoveStart(&sp38, &sp50, var_r27); showNextObj->trans.x = 68.0f; - showNextObj->trans.y = 430.0f; + showNextObj->trans.y = HU_DISP_HEIGHT-50; showNextObj->trans.z = 100.0f; sp44.x = showNextObj->trans.x; sp44.y = showNextObj->trans.y; diff --git a/src/game/board/ui.c b/src/game/board/ui.c index 0dd58fbf..d8f89499 100755 --- a/src/game/board/ui.c +++ b/src/game/board/ui.c @@ -17,6 +17,7 @@ #include "game/board/model.h" #include "game/board/player.h" #include "game/board/tutorial.h" +#include "game/disp.h" #include "ext_math.h" @@ -189,9 +190,9 @@ static float statusHideOfsTbl[4] = { static float statusPosTbl[4][2] = { { 114.0f, 84.0f }, - { 462.0f, 84.0f }, - { 114.0f, 396.0f }, - { 462.0f, 396.0f } + { HU_DISP_WIDTH-114, 84.0f }, + { 114.0f, HU_DISP_HEIGHT-84 }, + { HU_DISP_WIDTH-114, HU_DISP_HEIGHT-84 } }; static u8 statusColTbl[4][4] = { @@ -248,8 +249,8 @@ static s32 itemMdlTbl[14] = { }; static Vec teamItemStatusPosTbl[2] = { - { 190.0f, 116.0f, 0.0f }, - { 386.0f, 116.0f, 0.0f } + { HU_DISP_CENTERX-98, 116.0f, 0.0f }, + { HU_DISP_CENTERX+98, 116.0f, 0.0f } }; s32 BoardItemModelGet(s32 arg0) { @@ -923,7 +924,7 @@ void BoardYourTurnExec(s32 arg0) { HuSprAttrSet(yourTurnSprGrp, 0, 1); HuSprScaleSet(yourTurnSprGrp, 0, 0.001f, 0.001f); HuSprAttrSet(yourTurnSprGrp, 0, 8); - HuSprGrpPosSet(yourTurnSprGrp, 288.0f, 240.0f); + HuSprGrpPosSet(yourTurnSprGrp, HU_DISP_CENTERX, HU_DISP_CENTERY); HuAudFXPlay(0x307); while (yourTurnObj) { HuPrcVSleep(); @@ -1476,9 +1477,9 @@ static void SetItemUIStatus(s32 arg0) { var_f31 = statusPosTbl[i][0]; var_f30 = statusPosTbl[i][1]; for (j = 0; j < 6; j++) { - (temp_r28 + 4)[i][j].x = statusSprPosTbl[j + 0xB][0]; - (temp_r28 + 4)[i][j].y = statusSprPosTbl[j + 0xB][1]; - if (j + 0xB >= 0xD && j + 0xB <= 0xF) { + (temp_r28 + 4)[i][j].x = statusSprPosTbl[j + 11][0]; + (temp_r28 + 4)[i][j].y = statusSprPosTbl[j + 11][1]; + if (j + 11 >= 13 && j + 11 <= 15) { (temp_r28 + 4)[i][j].x += var_f31; (temp_r28 + 4)[i][j].y += var_f30; } @@ -1815,8 +1816,8 @@ static void CreateItemWindow(s32 arg0, s32 arg1) { = temp_r31->unk06[i] = temp_r31->unk00[i] = -1; } else { temp_r31->unk00[i] = temp_r28; - temp_r31->unk74[i].x = i * 576.0f + 36.0f; - temp_r31->unk74[i].y = var_f30 + 240.0f; + temp_r31->unk74[i].x = i * HU_DISP_WIDTHF + 36.0f; + temp_r31->unk74[i].y = var_f30 + HU_DISP_CENTERY; temp_r31->unk74[i].z = 0.0f; temp_r31->unk2C[i] = temp_r31->unk74[i]; temp_r31->unk12[i] = HuWinCreate(temp_r31->unk2C[i].x, temp_r31->unk2C[i].y, 0x1F8, 0x60, 0); @@ -1970,7 +1971,7 @@ static void CreatePickerWindow(UnkUiWork01 *arg0, s32 arg1) { } HuWinMesMaxSizeGet(1, spC, var_r30); var_f30 = -10000.0f; - var_f29 = var_f31 + 352.0f; + var_f29 = var_f31 + (HU_DISP_HEIGHT-128); arg0->unk06 = HuWinCreate(var_f30, var_f29, spC[0], spC[1], 0); HuWinBGTPLvlSet(arg0->unk06, 0.0f); HuWinMesSpeedSet(arg0->unk06, 0); diff --git a/src/game/board/view.c b/src/game/board/view.c index 4e4de23a..369f16f7 100755 --- a/src/game/board/view.c +++ b/src/game/board/view.c @@ -7,6 +7,8 @@ #include "game/pad.h" #include "game/sprite.h" #include "game/wipe.h" +#include "game/disp.h" + #include "game/board/main.h" #include "game/board/model.h" #include "game/board/player.h" @@ -52,10 +54,10 @@ static s16 focusMdl = -1; static float overhead2DPos[][2] = { { 48.0f, 72.0f }, - { 528.0f, 72.0f }, - { 48.0f, 408.0f }, - { 528.0f, 408.0f }, - { 288.0f, 72.0f } + { HU_DISP_WIDTH-48, 72.0f }, + { 48.0f, HU_DISP_HEIGHT-72 }, + { HU_DISP_WIDTH-48, HU_DISP_HEIGHT-72 }, + { HU_DISP_CENTERX, 72.0f } }; static float mapViewMinZ[] = { @@ -534,7 +536,7 @@ static void UpdateOverheadView(omObjData *arg0) { } for (i = 0; i < 5; i++) { var_r29 = overhead2DPos[i]; - sp20.x = var_r29[0] - 288.0f; + sp20.x = var_r29[0] - HU_DISP_CENTERX; sp20.y = var_r29[1] - 240.0f; sp20.z = 1000.0f; if (i != 4) { @@ -545,7 +547,7 @@ static void UpdateOverheadView(omObjData *arg0) { BoardSpacePosGet(0, BoardSpaceStarGetCurr(), &sp14); } Hu3D3Dto2D(&sp14, 1, &sp14); - sp14.x -= 288.0f; + sp14.x -= HU_DISP_CENTERX; sp14.y -= 240.0f; VECSubtract(&sp20, &sp14, &sp8); sp8.z = 0.0f; diff --git a/src/game/board/warp.c b/src/game/board/warp.c index 24099ae8..ddc92315 100644 --- a/src/game/board/warp.c +++ b/src/game/board/warp.c @@ -10,6 +10,8 @@ #include "game/hsfdraw.h" #include "game/hsfex.h" #include "game/objsub.h" +#include "game/disp.h" + #include "math.h" static void WarpInit(s32); @@ -212,8 +214,8 @@ static void WarpImpact(s32 player) { f32 angle; s16 i; - pos.x = 288.0f; - pos.y = 240.0f; + pos.x = HU_DISP_CENTERX; + pos.y = HU_DISP_CENTERY; pos.z = 700.0f; Hu3D2Dto3D(&pos, 1, &pos); BoardModelPosSetV(warpImpactMdl, &pos); diff --git a/src/game/board/window.c b/src/game/board/window.c index 1481738c..447f45e0 100644 --- a/src/game/board/window.c +++ b/src/game/board/window.c @@ -1,6 +1,8 @@ #include "game/board/window.h" #include "game/board/main.h" #include "game/board/player.h" +#include "game/disp.h" + #include "game/gamework_data.h" static s8 winChoice; @@ -82,9 +84,9 @@ static void ExecBoardWindow(void) { {432.0f, 96.0f}, }; f32 pos_all[7][2] = { - {96.0f, 328.0f}, {72.0f, 128.0f}, - {36.0f, 344.0f}, {128.0f, 312.0f}, - {144.0f, 144.0f}, {128.0f, 264.0f}, + {96.0f, HU_DISP_HEIGHT-152}, {72.0f, 128.0f}, + {36.0f, HU_DISP_HEIGHT-136}, {128.0f, HU_DISP_HEIGHT-168}, + {144.0f, HU_DISP_CENTERY-96 }, {128.0f, HU_DISP_HEIGHT-216}, {128.0f, 75.0f}, }; diff --git a/src/game/hsfdraw.c b/src/game/hsfdraw.c index 42d4a217..6ea8b724 100755 --- a/src/game/hsfdraw.c +++ b/src/game/hsfdraw.c @@ -3,6 +3,7 @@ #include "game/hsfformat.h" #include "game/hsfload.h" #include "game/sprite.h" +#include "game/disp.h" #include "ext_math.h" #include "string.h" @@ -396,7 +397,7 @@ s32 ObjCullCheck(HsfData *arg0, HsfObject *arg1, Mtx arg2) { } sp24 = sind(temp_r30->fov * 0.5) / cosd(temp_r30->fov * 0.5); temp_f27 = sp24 * temp_f18; - temp_f24 = 1.2f * temp_f27; + temp_f24 = HU_DISP_ASPECT * temp_f27; temp_f24 = temp_f21 + ABS(temp_f24); temp_f27 = temp_f21 + ABS(temp_f27); if (ABS(temp_f20) < temp_f24 && ABS(temp_f19) < temp_f27) { diff --git a/src/game/hsfex.c b/src/game/hsfex.c index acf7f822..63f3745e 100644 --- a/src/game/hsfex.c +++ b/src/game/hsfex.c @@ -1,9 +1,13 @@ #include "game/hsfex.h" #include "game/hsfman.h" #include "game/hsfmotion.h" +#include "game/disp.h" #include "math.h" +#define DISP_HALF_W (HU_DISP_WIDTH/2.0f) +#define DISP_HALF_H (HU_DISP_HEIGHT/2.0f) + typedef struct { /* 0x00 */ float unk00; /* 0x04 */ float unk04; @@ -430,9 +434,9 @@ void Hu3D2Dto3D(Vec *arg0, s16 arg1, Vec *arg2) { temp_r31 = &Hu3DCamera[i]; temp_f30 = sin((temp_r31->fov / 2) * M_PI / 180.0) / cos((temp_r31->fov / 2) * M_PI / 180.0); temp_f31 = temp_f30 * arg0->z * 2.0f; - temp_f29 = temp_f31 * 1.2f; - temp_f28 = arg0->x / 576.0f; - temp_f27 = arg0->y / 480.0f; + temp_f29 = temp_f31 * HU_DISP_ASPECT; + temp_f28 = arg0->x / HU_DISP_WIDTH; + temp_f27 = arg0->y / HU_DISP_HEIGHT; arg2->x = (temp_f28 - 0.5) * temp_f29; arg2->y = -(temp_f27 - 0.5) * temp_f31; arg2->z = -arg0->z; @@ -457,10 +461,10 @@ void Hu3D3Dto2D(Vec *arg0, s16 arg1, Vec *arg2) { temp_r31 = &Hu3DCamera[i]; C_MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target); PSMTXMultVec(sp1C, arg0, &sp10); - temp_f31 = (sin((temp_r31->fov / 2) * M_PI / 180.0) / cos((temp_r31->fov / 2) * M_PI / 180.0)) * sp10.z * 1.2f; + temp_f31 = (sin((temp_r31->fov / 2) * M_PI / 180.0) / cos((temp_r31->fov / 2) * M_PI / 180.0)) * sp10.z * HU_DISP_ASPECT; temp_f30 = (sin((temp_r31->fov / 2) * M_PI / 180.0) / cos((temp_r31->fov / 2) * M_PI / 180.0)) * sp10.z; - arg2->x = 288.0f + sp10.x * (288.0f / -temp_f31); - arg2->y = 240.0f + sp10.y * (240.0f / temp_f30); + arg2->x = DISP_HALF_W + sp10.x * (DISP_HALF_W / -temp_f31); + arg2->y = DISP_HALF_H + sp10.y * (DISP_HALF_H / temp_f30); arg2->z = 0.0f; } diff --git a/src/game/hsfman.c b/src/game/hsfman.c index a9c2d84f..e02c8edb 100644 --- a/src/game/hsfman.c +++ b/src/game/hsfman.c @@ -10,6 +10,8 @@ #include "game/perf.h" #include "game/ShapeExec.h" #include "game/sprite.h" +#include "game/disp.h" + #include "dolphin/gx/GXVert.h" #include "math.h" @@ -1083,12 +1085,12 @@ CameraData defCamera = { 20.0f, 5000.0f, 0.0f, - 1.2f, + HU_DISP_ASPECT, {0.0f, 0.0f, 100.0f}, {0.0f, 1.0f, 0.0f}, {0.0f, 0.0f, 0.0f}, - 0, 0, 640, 480, - 0.0f, 0.0f, 640.0f, 480.0f, + 0, 0, HU_FB_WIDTH, HU_FB_HEIGHT, + 0.0f, 0.0f, HU_FB_WIDTH, HU_FB_HEIGHT, 0.0f, 1.0f }; @@ -1289,7 +1291,7 @@ BOOL Hu3DModelCameraInfoSet(s16 arg0, u16 arg1) { sp8.x, sp8.y, sp8.z, obj_copy->camera.pos.x, obj_copy->camera.pos.y, obj_copy->camera.pos.z); - Hu3DCameraPerspectiveSet(arg1, obj_copy->camera.fov, obj_copy->camera.near, obj_copy->camera.far, 1.2f); + Hu3DCameraPerspectiveSet(arg1, obj_copy->camera.fov, obj_copy->camera.near, obj_copy->camera.far, HU_DISP_ASPECT); temp_r28->unk_01 = arg1; temp_r24 = &Hu3DData[arg0]; @@ -1886,7 +1888,7 @@ void Hu3DShadowCreate(f32 arg8, f32 arg9, f32 argA) { Hu3DShadowData.unk_2C.x = -1.0f; Hu3DShadowData.unk_2C.y = 1.0f; Hu3DShadowData.unk_2C.z = 0.0f; - C_MTXLightPerspective(Hu3DShadowData.unk_68, arg8, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + C_MTXLightPerspective(Hu3DShadowData.unk_68, arg8, HU_DISP_ASPECT, 0.5f, -0.5f, 0.5f, 0.5f); VECNormalize(&Hu3DShadowData.unk_2C, &Hu3DShadowData.unk_2C); Hu3DShadowData.unk_00 = 0x80; Hu3DShadowF = 1; @@ -1923,7 +1925,7 @@ void Hu3DShadowExec(void) { Hu3DDrawPreInit(); GXSetCopyClear(sp14, 0xFFFFFF); - C_MTXPerspective(sp18, Hu3DShadowData.unk_08.x, 1.2f, Hu3DShadowData.unk_08.y, Hu3DShadowData.unk_08.z); + C_MTXPerspective(sp18, Hu3DShadowData.unk_08.x, HU_DISP_ASPECT, Hu3DShadowData.unk_08.y, Hu3DShadowData.unk_08.z); GXSetProjection(sp18, GX_PERSPECTIVE); if (Hu3DShadowData.unk_02 <= 0xF0) { GXSetScissor(2, 2, Hu3DShadowData.unk_02 * 2 - 4, Hu3DShadowData.unk_02 * 2 - 4); @@ -2054,7 +2056,7 @@ s16 Hu3DProjectionCreate(void *arg0, f32 arg8, f32 arg9, f32 argA) { var_r31->unk_2C.x = -1.0f; var_r31->unk_2C.y = 1.0f; var_r31->unk_2C.z = 0.0f; - C_MTXLightPerspective(var_r31->unk_68, arg8, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + C_MTXLightPerspective(var_r31->unk_68, arg8, HU_DISP_ASPECT, 0.5f, -0.5f, 0.5f, 0.5f); VECNormalize(&var_r31->unk_2C, &var_r31->unk_2C); var_r31->unk_00 = 0x80; Hu3DProjectionNum++; diff --git a/src/game/minigame_seq.c b/src/game/minigame_seq.c index 6d687b5c..c2f02421 100644 --- a/src/game/minigame_seq.c +++ b/src/game/minigame_seq.c @@ -8,6 +8,8 @@ #include "game/window.h" #include "game/wipe.h" #include "game/pad.h" +#include "game/disp.h" + #include "game/minigame_seq.h" #include "math.h" @@ -59,23 +61,23 @@ static s32 SeqUpdateFlip(SeqWork *work); OverlayID mgSeqOvlPrev = OVL_INVALID; static SeqInfo seqInfoTbl[] = { - { NULL, NULL, 292.0f, 240.0f, 1.0f, 1.0f, 60 }, - { SeqInitTimer, SeqUpdateTimer, 292.0f, 64.0f, 1.0f, 1.0f, 60 }, - { SeqInitType2, SeqUpdateType2, 292.0f, 240.0f, 0.5f, 0.5f, 60 }, - { SeqInitMGBasic, SeqUpdateMGBasic, 292.0f, 240.0f, 1.0f, 1.0f, 180 }, - { SeqInitMGCommon, SeqUpdateMG1vs3, 292.0f, 240.0f, 1.0f, 1.0f, 180 }, - { SeqInitWin, SeqUpdateWin, 292.0f, 240.0f, 1.0f, 1.0f, 180 }, - { SeqInitMGCommon, SeqUpdateMGBattle, 292.0f, 240.0f, 1.0f, 1.0f, 180 }, - { SeqInitMGCommon, SeqUpdateMGStory, 292.0f, 240.0f, 1.0f, 1.0f, 180 }, - { SeqInitMGBasic, SeqUpdateMGBasic, 292.0f, 240.0f, 1.0f, 1.0f, 180 }, - { SeqInitMGCommon, SeqUpdateMG2vs2, 292.0f, 240.0f, 1.0f, 1.0f, 180 }, - { SeqInitFlip, SeqUpdateFlip, 292.0f, 240.0f, 1.0f, 1.0f, 180 }, - { SeqInitMGCommon, SeqUpdateMGBowser, 292.0f, 240.0f, 1.0f, 1.0f, 180 }, - { SeqInitWin, SeqUpdateWin, 292.0f, 240.0f, 1.0f, 1.0f, 180 }, - { SeqInitDraw, SeqUpdateDraw, 292.0f, 240.0f, 1.0f, 1.0f, 60 }, - { SeqInitRecord, SeqUpdateRecord, 292.0f, 240.0f, 1.0f, 1.0f, 180 }, - { NULL, NULL, 292.0f, 240.0f, 1.0f, 1.0f, 60 }, - { NULL, NULL, 292.0f, 240.0f, 1.0f, 1.0f, 60 }, + { NULL, NULL, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, + { SeqInitTimer, SeqUpdateTimer, HU_DISP_CENTERX+4, 64.0f, 1.0f, 1.0f, 60 }, + { SeqInitType2, SeqUpdateType2, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 0.5f, 0.5f, 60 }, + { SeqInitMGBasic, SeqUpdateMGBasic, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitMGCommon, SeqUpdateMG1vs3, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitWin, SeqUpdateWin, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitMGCommon, SeqUpdateMGBattle, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitMGCommon, SeqUpdateMGStory, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitMGBasic, SeqUpdateMGBasic, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitMGCommon, SeqUpdateMG2vs2, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitFlip, SeqUpdateFlip, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitMGCommon, SeqUpdateMGBowser, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitWin, SeqUpdateWin, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitDraw, SeqUpdateDraw, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, + { SeqInitRecord, SeqUpdateRecord, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { NULL, NULL, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, + { NULL, NULL, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, }; static s32 seqType2SprTbl[6] = { @@ -956,7 +958,7 @@ static s32 SeqInitMGBasic(SeqWork *work, va_list params) for(i=0; iword_len; i++) { HuSprTPLvlSet(work->spr_grp[word_grp], i, 1.0f); - HuSprPosSet(work->spr_grp[word_grp], i, -100.0f, 240.0f); + HuSprPosSet(work->spr_grp[word_grp], i, -100.0f, HU_DISP_CENTERY); } if(seqPauseF) { work->type = 2; @@ -1185,7 +1187,7 @@ static s32 SeqInitMGCommon(SeqWork *work, va_list params) HuSprGrpPosSet(work->spr_grp[word_grp], 0.0f, 0.0f); for(j=0; jword_len; j++) { HuSprTPLvlSet(work->spr_grp[word_grp], j, tp_lvl); - HuSprPosSet(work->spr_grp[word_grp], j, -100.0f, 240.0f); + HuSprPosSet(work->spr_grp[word_grp], j, -100.0f, HU_DISP_CENTERY); HuSprPriSet(work->spr_grp[word_grp], j, i+5); HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); } @@ -1299,11 +1301,11 @@ static s32 SeqUpdateMGBattle(SeqWork *work) discard_cnt = 0; scale_ang = 0.0f; for(idx=0; idx<40.0f-time; idx++) { - if(x+ofs_x > 576 || x+ofs_x < 0) { + if(x+ofs_x > HU_DISP_WIDTH || x+ofs_x < 0) { ofs_x = -ofs_x; discard_cnt++; } - if(y+ofs_y > 480 || y+ofs_y < 0) { + if(y+ofs_y > HU_DISP_HEIGHT || y+ofs_y < 0) { ofs_y = -ofs_y; discard_cnt++; } @@ -1376,12 +1378,12 @@ static s32 SeqUpdateMGBattle(SeqWork *work) time = work->time-80; for(j=0; jword_len; j++) { pos_x = (28.0f+(work->x-(0.5f*(work->word_len*56))))+(j*56); - HuSprPosSet(work->spr_grp[0], j, pos_x+((288.0f-pos_x)*(1.0-cos((M_PI*(time*6.0))/180.0))), work->y); + HuSprPosSet(work->spr_grp[0], j, pos_x+((HU_DISP_CENTERX-pos_x)*(1.0-cos((M_PI*(time*6.0))/180.0))), work->y); } if(time == 15.0f) { for(j=0; jword_len; j++) { HuSprAttrReset(work->spr_grp[1], j, HUSPR_ATTR_DISPOFF); - HuSprPosSet(work->spr_grp[1], j, 288.0f, work->y); + HuSprPosSet(work->spr_grp[1], j, HU_DISP_CENTERX, work->y); HuSprTPLvlSet(work->spr_grp[1], j, 1.0f); } } @@ -1397,9 +1399,9 @@ static s32 SeqUpdateMGBattle(SeqWork *work) if(scale < 0.0f) { scale = 0.0f; } - HuSprPosSet(work->spr_grp[0], j, 288.0f, work->y+((-100.0f-work->y)*(time/20.0f))); + HuSprPosSet(work->spr_grp[0], j, HU_DISP_CENTERX, work->y+((-100.0f-work->y)*(time/20.0f))); HuSprTPLvlSet(work->spr_grp[0], j, scale); - HuSprPosSet(work->spr_grp[1], j, 288.0f, work->y+((580.0f-work->y)*(time/20.0f))); + HuSprPosSet(work->spr_grp[1], j, HU_DISP_CENTERX, work->y+((580.0f-work->y)*(time/20.0f))); HuSprTPLvlSet(work->spr_grp[1], j, scale); } } @@ -1601,11 +1603,11 @@ static s32 SeqUpdateMG1vs3(SeqWork *work) if(time <= 20) { float pos_base = (28.0f+(work->x-(0.5f*(work->word_len*56))))+(j*56); pos_x = (28.0f+(work->x-(0.5f*(work->word_len*56))))+((work->word_len-j-1)*56); - HuSprPosSet(work->spr_grp[i], j, pos_base+((time/20.0f)*(pos_x-pos_base)), work->y+((440.0f-work->y)*(time/20.0f))); + HuSprPosSet(work->spr_grp[i], j, pos_base+((time/20.0f)*(pos_x-pos_base)), work->y+(((HU_DISP_HEIGHT-40)-work->y)*(time/20.0f))); } else { time -= 20.0f; pos_x = (28.0f+(work->x-(0.5f*(work->word_len*56))))+((work->word_len-j-1)*56); - pos_y = 440.0f; + pos_y = HU_DISP_HEIGHT-40; HuSprPosSet(work->spr_grp[i], j, pos_x, pos_y+((-40.0f-pos_y)*(time/20.0f))); } } @@ -1708,11 +1710,11 @@ static s32 SeqUpdateMGStory(SeqWork *work) continue; } pos_x = -50.0f; - HuSprPosSet(work->spr_grp[0], idx, pos_x+((288.0f-pos_x)*(time/15.0f)), work->y); + HuSprPosSet(work->spr_grp[0], idx, pos_x+((HU_DISP_CENTERX-pos_x)*(time/15.0f)), work->y); HuSprTPLvlSet(work->spr_grp[0], idx, 1.0f); HuSprZRotSet(work->spr_grp[0], idx, (1.0-(time/15.0f))*180.0); - pos_x = 626.0f; - HuSprPosSet(work->spr_grp[1], idx, pos_x+((288.0f-pos_x)*(time/15.0f)), work->y); + pos_x = HU_DISP_WIDTH+50; + HuSprPosSet(work->spr_grp[1], idx, pos_x+((HU_DISP_CENTERX-pos_x)*(time/15.0f)), work->y); HuSprTPLvlSet(work->spr_grp[1], idx, 1.0f); HuSprZRotSet(work->spr_grp[1], idx, (1.0-(time/15.0f))*-180.0); } @@ -1726,7 +1728,7 @@ static s32 SeqUpdateMGStory(SeqWork *work) time = work->time-35; for(idx=0; idxword_len; idx++) { pos_x = (work->x-(0.5f*(work->word_len*56)))+28.0f+(idx*56); - HuSprPosSet(work->spr_grp[0], idx, 288.0f+((pos_x-288.0f)*(time/10.0f)), work->y); + HuSprPosSet(work->spr_grp[0], idx, HU_DISP_CENTERX+((pos_x-HU_DISP_CENTERX)*(time/10.0f)), work->y); } } else { if(work->time > 55) { @@ -2358,7 +2360,7 @@ static s32 SeqUpdateMGBowser(SeqWork *work) pos_x = (28.0f+(0.5f*-(work->word_len*56)))+(idx*56); angle = 180.0*(atan2(pos_x, center_x)/M_PI); pos_x = work->x+(center_x*sin(M_PI*(angle+time_angle)/180.0)); - pos_y = work->y-(240.0*(1.0-(time/50.0f))); + pos_y = work->y-(HU_DISP_CENTERY*(1.0-(time/50.0f))); HuSprPosSet(work->spr_grp[0], idx, pos_x, pos_y); temp_f25 = 0.9+(0.1*cos(M_PI*(angle+time_angle)/180.0)); HuSprScaleSet(work->spr_grp[0], idx, temp_f25*cos(M_PI*(angle+time_angle)/180.0), temp_f25); @@ -2439,12 +2441,12 @@ static s32 SeqUpdateMGBowser(SeqWork *work) if(work->time > 80 && work->time <= 125) { static float letterOfs[] = { -30, -30, - 606, -30, - 340, 510, - 606, 510, - -30, 450, - 606, 120, - 450, -30, + HU_DISP_WIDTH+30, -30, + HU_DISP_CENTERX+52, HU_DISP_HEIGHT+30, + HU_DISP_WIDTH+30, HU_DISP_HEIGHT+30, + -30, HU_DISP_HEIGHT-30, + HU_DISP_WIDTH+30, 120, + HU_DISP_CENTERX+162, -30, }; for(i=0; i<4; i++) { time = work->time-80-i; @@ -2524,7 +2526,7 @@ static s32 SeqInitDraw(SeqWork *work, va_list params) word_grp = SeqMakeWord(work, wordMgTbl[2+word_ofs], word_flag); } - HuSprGrpPosSet(work->spr_grp[word_grp], 288.0f, 240.0f); + HuSprGrpPosSet(work->spr_grp[word_grp], HU_DISP_CENTERX, HU_DISP_CENTERY); work->param[0] = 3; return 1; } @@ -2790,27 +2792,27 @@ static s32 SeqInitWin(SeqWork *work, va_list params) if(num_winners == 1) { word_x = 32.0f+((float)winnerNameW[0]+(winnerNameW[1]*work->win_scale)); if(j == 0) { - word_x = (((576.0f-word_x)/2.0f)+(word_x-(winnerNameW[0]/2)))-288.0f; + word_x = (((HU_DISP_WIDTH-word_x)/2.0f)+(word_x-(winnerNameW[0]/2)))-HU_DISP_CENTERX; } else { - word_x = (((576.0f-word_x)/2.0f)+(winnerNameW[1]/2))-288.0f; + word_x = (((HU_DISP_WIDTH-word_x)/2.0f)+(winnerNameW[1]/2))-HU_DISP_CENTERX; } } else { - if(abs(winPosOfs[num_winners-1][j][0]) == 144.0f) { - if(winnerNameW[j]+32 < 288.0f) { - word_x = 176.0f; + if(abs(winPosOfs[num_winners-1][j][0]) == (HU_DISP_WIDTHF/4)) { + if(winnerNameW[j]+32 < HU_DISP_CENTERX) { + word_x = (HU_DISP_WIDTHF/4)+32.0f; } else { word_x = 32.0f+((winnerNameW[j]*work->win_scale)/2.0f); } if(winPosOfs[num_winners-1][j][0] < 0) { - word_x = -(288.0f-word_x); + word_x = -(HU_DISP_CENTERX-word_x); } else { - word_x = (576.0f-word_x)-288.0f; + word_x = (HU_DISP_WIDTH-word_x)-HU_DISP_CENTERX; } } else { word_x = winPosOfs[num_winners-1][j][0]; } } - HuSprGrpPosSet(work->spr_grp[j], 288.0f+word_x, 240.0f+winPosOfs[num_winners-1][j][1]); + HuSprGrpPosSet(work->spr_grp[j], HU_DISP_CENTERX+word_x, HU_DISP_CENTERY+winPosOfs[num_winners-1][j][1]); } if(seqPauseF) { work->type = 1; @@ -2896,24 +2898,24 @@ static s32 SeqUpdateWin(SeqWork *work) } if(work->word_len == 2) { pos_x = winnerNameW[1]+winnerNameW[0]+32; - pos_x = (((576.0f-pos_x)/2.0f)+(winnerNameW[1]/2))-288.0f; + pos_x = (((HU_DISP_WIDTH-pos_x)/2.0f)+(winnerNameW[1]/2))-HU_DISP_CENTERX; } else { - if(abs(winPosOfs[work->word_len-2][idx][0]) == 144.0f) { - if(winnerNameW[idx]+32 < 288.0f) { - pos_x = 176.0f; + if(abs(winPosOfs[work->word_len-2][idx][0]) == (HU_DISP_WIDTHF/4)) { + if(winnerNameW[idx]+32 < HU_DISP_CENTERX) { + pos_x = (HU_DISP_WIDTHF/4)+32; } else { pos_x = 32.0f+((winnerNameW[idx]*work->win_scale)/2.0f); } if(winPosOfs[work->word_len-2][idx][0] < 0) { - pos_x = -(288.0f-pos_x); + pos_x = -(HU_DISP_CENTERX-pos_x); } else { - pos_x = (576.0f-pos_x)-288.0f; + pos_x = (HU_DISP_WIDTH-pos_x)-HU_DISP_CENTERX; } } else { pos_x = winPosOfs[work->word_len-2][idx][0]; } } - HuSprGrpPosSet(work->spr_grp[idx], (288.0f+pos_x)+ofs[0], ofs[1]+(240.0f+winPosOfs[work->word_len-2][idx][1])); + HuSprGrpPosSet(work->spr_grp[idx], (HU_DISP_CENTERX+pos_x)+ofs[0], ofs[1]+(HU_DISP_CENTERY+winPosOfs[work->word_len-2][idx][1])); } } if(work->time == 125) { @@ -3058,7 +3060,7 @@ static s32 SeqInitRecord(SeqWork *work, va_list params) } } } - HuSprGrpPosSet(spr_grp, 288.0f, 240.0f); + HuSprGrpPosSet(spr_grp, HU_DISP_CENTERX, HU_DISP_CENTERY); work->param[0] = 3; return 1; } @@ -3159,6 +3161,10 @@ void MGSeqPauseInit(void) pauseWaitF = 0; } +#define PAUSE_WIN_X (HU_DISP_CENTERX-206) +#define PAUSE_WIN_DIST (HU_DISP_CENTERX+112) +#define PAUSE_EXIT_Y (HU_DISP_HEIGHT-80) + static void PauseProc(void) { s16 mg; @@ -3195,12 +3201,12 @@ static void PauseProc(void) if(mgInfoTbl[mg].inst_mess[1] == 0 && mgInfoTbl[mg].inst_mess[2] == 0) { for(i=1; i<=20; i++) { ratio = sin(M_PI*(i*4.5f)/180.0); - HuSprGrpPosSet(work.spr_grp[0], 288.0f, (ratio*290)-50.0f); + HuSprGrpPosSet(work.spr_grp[0], HU_DISP_CENTERX, (ratio*290)-50.0f); HuPrcVSleep(); } } else { if(mgPracticeEnableF && !_CheckFlag(FLAG_ID_MAKE(1, 12))) { - window[2] = HuWinExCreateStyled(-10000.0f, 400.0f, 412, 42, -1, 0); + window[2] = HuWinExCreateStyled(-10000.0f, PAUSE_EXIT_Y, 412, 42, -1, 0); HuWinPriSet(window[2], 0); HuWinDispOn(window[2]); HuWinMesSpeedSet(window[2], 0); @@ -3209,12 +3215,12 @@ static void PauseProc(void) } if(mgInfoTbl[mg].inst_mess[2]) { s16 insert_idx; - window[0] = HuWinExCreateStyled(-10000.0f, 140.0f, 412, 120, -1, 0); + window[0] = HuWinExCreateStyled(-10000.0f, HU_DISP_CENTERY-100, 412, 120, -1, 0); HuWinPriSet(window[0], 0); HuWinDispOn(window[0]); HuWinMesSpeedSet(window[0], 0); HuWinMesSet(window[0], mgInfoTbl[mg].inst_mess[1]); - window[1] = HuWinExCreateStyled(-10000.0f, 276.0f, 412, 120, -1, 0); + window[1] = HuWinExCreateStyled(-10000.0f, HU_DISP_CENTERY+36, 412, 120, -1, 0); HuWinPriSet(window[1], 0); HuWinDispOn(window[1]); HuWinMesSpeedSet(window[1], 0); @@ -3228,26 +3234,26 @@ static void PauseProc(void) } for(i=1; i<=20; i++) { ratio = sin(M_PI*(i*4.5f)/180.0); - HuSprGrpPosSet(work.spr_grp[0], 288.0f, (ratio*150)-50.0f); - HuWinPosSet(window[0], (482*ratio)-400, 140); - HuWinPosSet(window[1], 400+(ratio*-318), 272); + HuSprGrpPosSet(work.spr_grp[0], HU_DISP_CENTERX, (ratio*150)-50.0f); + HuWinPosSet(window[0], (PAUSE_WIN_DIST+PAUSE_WIN_X)*ratio-PAUSE_WIN_DIST, HU_DISP_CENTERY-100); + HuWinPosSet(window[1], -(PAUSE_WIN_DIST-PAUSE_WIN_X)*ratio+PAUSE_WIN_DIST, HU_DISP_CENTERY+32); if(window[2] != -1) { - HuWinPosSet(window[2], 82, 404+(100*(1.0-ratio))); + HuWinPosSet(window[2], PAUSE_WIN_X, (PAUSE_EXIT_Y+4)+(100*(1.0-ratio))); } HuPrcVSleep(); } } else { - window[0] = HuWinExCreateStyled(-10000.0f, 170.0f, 412, 120, -1, 0); + window[0] = HuWinExCreateStyled(-10000.0f, HU_DISP_CENTERY-70, 412, 120, -1, 0); HuWinPriSet(window[0], 0); HuWinDispOn(window[0]); HuWinMesSpeedSet(window[0], 0); HuWinMesSet(window[0], mgInfoTbl[mg].inst_mess[1]); for(i=1; i<=20; i++) { ratio = sin(M_PI*(i*4.5f)/180.0); - HuSprGrpPosSet(work.spr_grp[0], 288.0f, (ratio*150)-50.0f); - HuWinPosSet(window[0], (482*ratio)-400, 170); + HuSprGrpPosSet(work.spr_grp[0], HU_DISP_CENTERX, (ratio*150)-50.0f); + HuWinPosSet(window[0], (PAUSE_WIN_DIST+PAUSE_WIN_X)*ratio-PAUSE_WIN_DIST, HU_DISP_CENTERY-70); if(window[2] != -1) { - HuWinPosSet(window[2], 400+(ratio*-318), 404); + HuWinPosSet(window[2], -(PAUSE_WIN_DIST-PAUSE_WIN_X)*ratio+PAUSE_WIN_DIST, PAUSE_EXIT_Y+4); } HuPrcVSleep(); } @@ -3262,28 +3268,28 @@ static void PauseProc(void) if(window[0] == -1 && window[1] == -1) { for(i=1; i<=10; i++) { ratio = cos(M_PI*(i*9.0f)/180.0); - HuSprGrpPosSet(work.spr_grp[0], 288.0f, (ratio*290)-50.0f); + HuSprGrpPosSet(work.spr_grp[0], HU_DISP_CENTERX, (ratio*290)-50.0f); HuPrcVSleep(); } } else { if(window[1] != -1) { for(i=1; i<=10; i++) { ratio = cos(M_PI*(i*9.0f)/180.0); - HuSprGrpPosSet(work.spr_grp[0], 288.0f, (ratio*150)-50.0f); - HuWinPosSet(window[0], (482*ratio)-400, 140); - HuWinPosSet(window[1], 400+(ratio*-318), 272); + HuSprGrpPosSet(work.spr_grp[0], HU_DISP_CENTERX, (ratio*150)-50.0f); + HuWinPosSet(window[0], (PAUSE_WIN_DIST+PAUSE_WIN_X)*ratio-PAUSE_WIN_DIST, HU_DISP_CENTERY-100); + HuWinPosSet(window[1], -(PAUSE_WIN_DIST-PAUSE_WIN_X)*ratio+PAUSE_WIN_DIST, HU_DISP_CENTERY+32); if(window[2] != -1) { - HuWinPosSet(window[2], 82, 404+(100*(1.0-ratio))); + HuWinPosSet(window[2], PAUSE_WIN_X, (PAUSE_EXIT_Y+4)+(100*(1.0-ratio))); } HuPrcVSleep(); } } else { for(i=1; i<=10; i++) { ratio = cos(M_PI*(i*9.0f)/180.0); - HuSprGrpPosSet(work.spr_grp[0], 288.0f, (ratio*150)-50.0f); - HuWinPosSet(window[0], (482*ratio)-400, 170); + HuSprGrpPosSet(work.spr_grp[0], HU_DISP_CENTERX, (ratio*150)-50.0f); + HuWinPosSet(window[0], (PAUSE_WIN_DIST+PAUSE_WIN_X)*ratio-PAUSE_WIN_DIST, HU_DISP_CENTERY-70); if(window[2] != -1) { - HuWinPosSet(window[2], 400+(ratio*-318), 404); + HuWinPosSet(window[2], -(PAUSE_WIN_DIST-PAUSE_WIN_X)*ratio+PAUSE_WIN_DIST, PAUSE_EXIT_Y+4); } HuPrcVSleep(); } @@ -3398,8 +3404,8 @@ static void PracticeProc(void) float time; static float yPosTbl[] = { 53, - 424, - 240 + HU_DISP_HEIGHT-56, + HU_DISP_CENTERY }; time = 0.0f; for(i=0; practiceTbl[i][0] != OVL_INVALID; i++) { @@ -3413,7 +3419,7 @@ static void PracticeProc(void) anim = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 5))); sprite = HuSprCreate(anim, 1, 0); HuSprGrpMemberSet(group, 0, sprite); - HuSprPosSet(group, 0, 288.0f, yPosTbl[practice[1]]); + HuSprPosSet(group, 0, HU_DISP_CENTERX, yPosTbl[practice[1]]); do { if(!wipeFadeInF || WipeStatGet()) { HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF); diff --git a/src/game/printfunc.c b/src/game/printfunc.c index b1924299..4f85f5a9 100644 --- a/src/game/printfunc.c +++ b/src/game/printfunc.c @@ -1,6 +1,8 @@ #include "dolphin.h" #include "game/printfunc.h" #include "game/init.h" +#include "game/disp.h" + #include "stdio.h" #include "stdarg.h" @@ -140,7 +142,7 @@ void pfDrawFonts(void) if(saftyFrameF) { WireDraw(); } - MTXOrtho(proj, 0, 480, 0, 640, 0, 10); + MTXOrtho(proj, 0, HU_FB_HEIGHT, 0, HU_FB_WIDTH, 0, 10); GXSetProjection(proj, GX_ORTHOGRAPHIC); MTXIdentity(modelview); GXLoadPosMtxImm(modelview, GX_PNMTX0); @@ -289,7 +291,7 @@ void pfDrawFonts(void) GXEnd(); } x += char_w; - if(x > 640) { + if(x > HU_FB_WIDTH) { x = 0; y += char_h; } @@ -301,18 +303,21 @@ void pfDrawFonts(void) } } +#define SAFETY_W 16 +#define SAFETY_H 40 + static void WireDraw(void) { Mtx44 proj; Mtx modelview; - MTXOrtho(proj, 0, 480, 0, 576, 0, 10); + MTXOrtho(proj, 0, HU_DISP_HEIGHT, 0, HU_DISP_WIDTH, 0, 10); GXSetProjection(proj, GX_ORTHOGRAPHIC); if(RenderMode->field_rendering) { - GXSetViewportJitter(0, 0, 640, 480, 0, 1, VIGetNextField()); + GXSetViewportJitter(0, 0, HU_FB_WIDTH, HU_FB_HEIGHT, 0, 1, VIGetNextField()); } else { - GXSetViewport(0, 0, 640, 480, 0, 1); + GXSetViewport(0, 0, HU_FB_WIDTH, HU_FB_HEIGHT, 0, 1); } - GXSetScissor(0, 0, 640, 480); + GXSetScissor(0, 0, HU_FB_WIDTH, HU_FB_HEIGHT); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_F32, 0); @@ -331,21 +336,21 @@ static void WireDraw(void) MTXIdentity(modelview); GXLoadPosMtxImm(modelview, GX_PNMTX0); GXBegin(GX_LINES, 0, 8); - GXPosition2f32(16, 40); + GXPosition2f32(SAFETY_W, SAFETY_H); GXColor3u8(255, 0, 0); - GXPosition2f32(16, 440); + GXPosition2f32(SAFETY_W, HU_DISP_HEIGHT-SAFETY_H); GXColor3u8(255, 0, 0); - GXPosition2f32(16, 40); + GXPosition2f32(SAFETY_W, SAFETY_H); GXColor3u8(255, 0, 0); - GXPosition2f32(560, 40); + GXPosition2f32(HU_DISP_WIDTH-SAFETY_W, SAFETY_H); GXColor3u8(255, 0, 0); - GXPosition2f32(560, 440); + GXPosition2f32(HU_DISP_WIDTH-SAFETY_W, HU_DISP_HEIGHT-SAFETY_H); GXColor3u8(255, 0, 0); - GXPosition2f32(560, 40); + GXPosition2f32(HU_DISP_WIDTH-SAFETY_W, SAFETY_H); GXColor3u8(255, 0, 0); - GXPosition2f32(560, 440); + GXPosition2f32(HU_DISP_WIDTH-SAFETY_W, HU_DISP_HEIGHT-SAFETY_H); GXColor3u8(255, 0, 0); - GXPosition2f32(16, 440); + GXPosition2f32(SAFETY_W, HU_DISP_HEIGHT-SAFETY_H); GXColor3u8(255, 0, 0); GXEnd(); } diff --git a/src/game/sprput.c b/src/game/sprput.c index c3e50f2b..c2b061b1 100644 --- a/src/game/sprput.c +++ b/src/game/sprput.c @@ -1,6 +1,7 @@ #include "game/sprite.h" #include "game/hsfman.h" #include "game/init.h" +#include "game/disp.h" #include "dolphin/mtx.h" #include "dolphin/gx.h" #include "dolphin/vi.h" @@ -23,14 +24,14 @@ void HuSprDispInit(void) } bmpCCIdx = 0; GXInvalidateTexAll(); - MTXOrtho(proj, 0, 480, 0, 576, 0, 10); + MTXOrtho(proj, 0, HU_DISP_HEIGHT, 0, HU_DISP_WIDTH, 0, 10); GXSetProjection(proj, GX_ORTHOGRAPHIC); if(RenderMode->field_rendering) { - GXSetViewportJitter(0, 0, 640, 480, 0, 1, VIGetNextField()); + GXSetViewportJitter(0, 0, HU_FB_WIDTH, HU_FB_HEIGHT, 0, 1, VIGetNextField()); } else { - GXSetViewport(0, 0, 640, 480, 0, 1); + GXSetViewport(0, 0, HU_FB_WIDTH, HU_FB_HEIGHT, 0, 1); } - GXSetScissor(0, 0, 640, 480); + GXSetScissor(0, 0, HU_FB_WIDTH, HU_FB_HEIGHT); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); diff --git a/src/game/window.c b/src/game/window.c index 29f63d17..a2018b5d 100644 --- a/src/game/window.c +++ b/src/game/window.c @@ -9,6 +9,7 @@ #include "game/pad.h" #include "game/armem.h" #include "game/audio.h" +#include "game/disp.h" #include "ext_math.h" #include "stdarg.h" @@ -274,12 +275,12 @@ s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame) { w = (w + 15) & 0xFFF0; h = (h + 15) & 0xFFF0; if (x == -10000.0f) { - window->pos_x = (576.0f - w) / 2; + window->pos_x = (HU_DISP_WIDTHF - w) / 2; } else { window->pos_x = x; } if (y == -10000.0f) { - window->pos_y = (480.0f - h) / 2; + window->pos_y = (HU_DISP_HEIGHTF - h) / 2; } else { window->pos_y = y; } @@ -427,7 +428,7 @@ static void MesDispFunc(HuSprite *sprite) { if (window->num_chars != 0) { group = &HuSprGrpData[window->group]; GXInvalidateTexAll(); - C_MTXOrtho(proj, 0.0f, 480.0f, 0.0f, 576.0f, 0.0f, 10.0f); + C_MTXOrtho(proj, 0.0f, HU_DISP_HEIGHTF, 0.0f, HU_DISP_WIDTHF, 0.0f, 10.0f); GXSetProjection(proj, GX_ORTHOGRAPHIC); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); @@ -1819,7 +1820,7 @@ s16 HuWinExCreateStyled(float x, float y, s16 w, s16 h, s16 portrait, s16 frame) s16 window; if (portrait >= 0) { - h = (h < 0x54) ? 0x54 : h; + h = (h < 84) ? 84 : h; } window = HuWinCreate(x, y, w, h, frame); window_ptr = &winData[window]; From 4f960a37c67f7e6adb89b0ef425e0a0b311f2642 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Mon, 9 Sep 2024 23:40:48 -0500 Subject: [PATCH 052/311] Remove orig copy --- orig/GMPE01_00 - Copy/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 orig/GMPE01_00 - Copy/.gitkeep diff --git a/orig/GMPE01_00 - Copy/.gitkeep b/orig/GMPE01_00 - Copy/.gitkeep deleted file mode 100644 index e69de29b..00000000 From 56339253a82db83dbfe3695fa76b9c7bbdb8b16b Mon Sep 17 00:00:00 2001 From: Rainchus Date: Wed, 11 Sep 2024 09:03:39 -0500 Subject: [PATCH 053/311] remove m455 linker warnings --- config/GMPE01_00/rels/m455Dll/symbols.txt | 106 +++++++++++----------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/config/GMPE01_00/rels/m455Dll/symbols.txt b/config/GMPE01_00/rels/m455Dll/symbols.txt index c0faaa70..36dee25b 100644 --- a/config/GMPE01_00/rels/m455Dll/symbols.txt +++ b/config/GMPE01_00/rels/m455Dll/symbols.txt @@ -68,54 +68,54 @@ fn_1_9E00 = .text:0x00009E00; // type:function size:0x118 fn_1_9F18 = .text:0x00009F18; // type:function size:0x250 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:float lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float @@ -227,20 +227,20 @@ lbl_1_data_44 = .data:0x00000044; // type:object size:0xC data:float lbl_1_data_50 = .data:0x00000050; // type:object size:0x4 lbl_1_data_54 = .data:0x00000054; // type:object size:0xC data:float lbl_1_data_60 = .data:0x00000060; // type:object size:0xC data:float -lbl_1_data_6C = .data:0x0000006C; // type:object size:0x23 data:string +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x23 scope:local data:string lbl_1_data_90 = .data:0x00000090; // type:object size:0x2 data:2byte lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 data:4byte lbl_1_data_98 = .data:0x00000098; // type:object size:0x4 data:4byte jumptable_1_data_9C = .data:0x0000009C; // type:object size:0x28 scope:local -lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x1C data:string +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x1C scope:local data:string lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x28 lbl_1_data_108 = .data:0x00000108; // type:object size:0x30 data:float -lbl_1_data_138 = .data:0x00000138; // type:object size:0x19 data:string +lbl_1_data_138 = .data:0x00000138; // type:object size:0x19 scope:local data:string lbl_1_data_154 = .data:0x00000154; // type:object size:0x10 data:float lbl_1_data_164 = .data:0x00000164; // type:object size:0xC data:float lbl_1_data_170 = .data:0x00000170; // type:object size:0x4 data:byte -lbl_1_data_174 = .data:0x00000174; // type:object size:0x5 data:string -lbl_1_data_179 = .data:0x00000179; // type:object size:0xB data:string +lbl_1_data_174 = .data:0x00000174; // type:object size:0x5 scope:local data:string +lbl_1_data_179 = .data:0x00000179; // type:object size:0xB scope:local data:string lbl_1_data_184 = .data:0x00000184; // type:object size:0x8 data:float lbl_1_data_18C = .data:0x0000018C; // type:object size:0x10 lbl_1_data_19C = .data:0x0000019C; // type:object size:0x3C data:float From 208a179c13ccf38d7486fd2aa855e0449b05cc85 Mon Sep 17 00:00:00 2001 From: Rainchus Date: Wed, 11 Sep 2024 16:39:40 -0500 Subject: [PATCH 054/311] a few mentDll functions --- src/REL/mentDll/main.c | 502 ++++++++++++++++++++--------------------- 1 file changed, 240 insertions(+), 262 deletions(-) diff --git a/src/REL/mentDll/main.c b/src/REL/mentDll/main.c index c97cd7b7..b7016353 100644 --- a/src/REL/mentDll/main.c +++ b/src/REL/mentDll/main.c @@ -1108,84 +1108,86 @@ s32 fn_1_92CC(void) lbl_1_bss_3114[var_r31].unk_68 = lbl_1_bss_3114[var_r31].unk_64 = 0; } } -loop_12: - fn_1_4D8(); - fn_1_2154(0x1A0020); - for (var_r31 = 0; var_r31 < 4; var_r31++) { - if ((lbl_1_bss_3114[var_r31].unk_60 != 0) && (lbl_1_bss_3114[var_r31].unk_70[0] == 0)) { - var_r30 = var_r31; - lbl_1_bss_3114[var_r31].unk_70[1] = var_r26; - fn_1_173FC(&lbl_1_bss_3114[var_r31]); - lbl_1_bss_3114[var_r31].unk_04 = (MentDllUnkFunc)fn_1_16B68; - } - } -loop_18: - fn_1_4D8(); - if ((var_r24 != lbl_1_bss_3114[var_r30].unk_68) && (lbl_1_bss_3114[var_r30].unk_70[0] == 0)) { - var_r24 = lbl_1_bss_3114[var_r30].unk_68; - fn_1_1968(var_r27, lbl_1_bss_3114[var_r30].unk_68 + 0x1B0008, -1, -0x3E7); - } - if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B) && (lbl_1_bss_3114[var_r30].unk_70[0] == 0)) { - HuAudFXPlay(3); - if (var_r26 == -1) { - var_r29 = 0; - } - else { - var_r29 = 1; - } - } - else if (lbl_1_bss_3114[var_r30].unk_70[0] == 1) { + while (1) { + fn_1_4D8(); + fn_1_2154(0x1A0020); for (var_r31 = 0; var_r31 < 4; var_r31++) { - if (lbl_1_bss_3114[var_r31].unk_70[0] == 0) { - lbl_1_bss_3114[var_r31].unk_68 = 0; + if ((lbl_1_bss_3114[var_r31].unk_60 != 0) && (lbl_1_bss_3114[var_r31].unk_70[0] == 0)) { + var_r30 = var_r31; + lbl_1_bss_3114[var_r31].unk_70[1] = var_r26; + fn_1_173FC(&lbl_1_bss_3114[var_r31]); + lbl_1_bss_3114[var_r31].unk_04 = (MentDllUnkFunc)fn_1_16B68; + break; } } - lbl_1_bss_3114[var_r30].unk_04 = NULL; - fn_1_1968(var_r27, 0x1A0022, -1, -0x3E7); - fn_1_2154(0x1A0023); - var_r29 = fn_1_1648C(&lbl_1_bss_3114[var_r30]); - if (var_r29 == 1) { - lbl_1_bss_3114[var_r30].unk_70[2] = 1; - var_r29 = 4; - var_r26 = var_r30; + while (1) { + fn_1_4D8(); + if ((var_r24 != lbl_1_bss_3114[var_r30].unk_68) && (lbl_1_bss_3114[var_r30].unk_70[0] == 0)) { + var_r24 = lbl_1_bss_3114[var_r30].unk_68; + fn_1_1968(var_r27, lbl_1_bss_3114[var_r30].unk_68 + 0x1B0008, -1, -0x3E7); + } + if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B) && (lbl_1_bss_3114[var_r30].unk_70[0] == 0)) { + HuAudFXPlay(3); + if (var_r26 == -1) { + var_r29 = 0; + } + else { + var_r29 = 1; + } + break; + } else if (lbl_1_bss_3114[var_r30].unk_70[0] == 1) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_70[0] == 0) { + lbl_1_bss_3114[var_r31].unk_68 = 0; + } + } + lbl_1_bss_3114[var_r30].unk_04 = NULL; + fn_1_1968(var_r27, 0x1A0022, -1, -0x3E7); + fn_1_2154(0x1A0023); + var_r29 = fn_1_1648C(&lbl_1_bss_3114[var_r30]); + if (var_r29 == 1) { + lbl_1_bss_3114[var_r30].unk_70[2] = 1; + var_r29 = 4; + var_r26 = var_r30; + } + else { + lbl_1_bss_3114[var_r30].unk_70[2] = 0; + var_r29 = 4; + lbl_1_bss_3114[var_r30].unk_70[0] = 0; + fn_1_17914(&lbl_1_bss_3114[var_r30]); + fn_1_173FC(&lbl_1_bss_3114[var_r30]); + } + break; + } } - else { - lbl_1_bss_3114[var_r30].unk_70[2] = 0; - var_r29 = 4; - lbl_1_bss_3114[var_r30].unk_70[0] = 0; - fn_1_17914(&lbl_1_bss_3114[var_r30]); - fn_1_173FC(&lbl_1_bss_3114[var_r30]); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_3114[var_r31].unk_04 = NULL; } - } - else { - goto loop_18; - } - for (var_r31 = 0; var_r31 < 4; var_r31++) { - lbl_1_bss_3114[var_r31].unk_04 = NULL; - } - for (var_r31 = 0; var_r31 < 4; var_r31++) { - if (lbl_1_bss_3114[var_r31].unk_70[0] == 0) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_3114[var_r31].unk_70[0] == 0) { + break; + } + } + if (var_r31 == 4) { + var_r29 = 3; break; + } else { + if (var_r29 == 1) { + fn_1_173FC(&lbl_1_bss_3114[var_r30]); + fn_1_17914(&lbl_1_bss_3114[var_r30]); + fn_1_173FC(&lbl_1_bss_3114[lbl_1_bss_3114[var_r30].unk_70[1]]); + var_r26 = lbl_1_bss_3114[lbl_1_bss_3114[var_r30].unk_70[1]].unk_70[1]; + lbl_1_bss_3114[lbl_1_bss_3114[var_r30].unk_70[1]].unk_70[0] = 0; + } else if (var_r29 == 4) { + + } else if (var_r29 == 0) { + fn_1_17914(&lbl_1_bss_3114[var_r30]); + break; + } else { + break; + } } - } - if (var_r31 == 4) { - var_r29 = 3; - } - else { - if (var_r29 == 1) { - fn_1_173FC(&lbl_1_bss_3114[var_r30]); - fn_1_17914(&lbl_1_bss_3114[var_r30]); - fn_1_173FC(&lbl_1_bss_3114[lbl_1_bss_3114[var_r30].unk_70[1]]); - var_r26 = lbl_1_bss_3114[lbl_1_bss_3114[var_r30].unk_70[1]].unk_70[1]; - lbl_1_bss_3114[lbl_1_bss_3114[var_r30].unk_70[1]].unk_70[0] = 0; - } - else if (var_r29 == 4) { - goto loop_12; - } - else if (var_r29 == 0) { - fn_1_17914(&lbl_1_bss_3114[var_r30]); - var_r24 = -1; - } + var_r24 = -1; } fn_1_2318(0); fn_1_16AC(var_r27); @@ -1228,14 +1230,13 @@ void fn_1_99AC(void) fn_1_1811C(); } -s32 fn_1_99CC(void) -{ - s32 var_r31; - s32 var_r30; - s32 var_r29; +s32 fn_1_99CC(void) { + s32 var_r26; + s32 temp_r27; s32 var_r28; - s32 var_r27; - s16 var_r26; + s32 var_r29; + s32 var_r30; + s32 i; s32 sp8[6] = { 0x00000001, @@ -1245,155 +1246,147 @@ s32 fn_1_99CC(void) 0x00000004, 0x00000005, }; + var_r30 = 2; - var_r27 = fn_1_1434(0, 0, 0); -loop_1: - fn_1_4D8(); - var_r28 = 0; - lbl_1_bss_33AC->unk_34 = 1; - HuAudFXPlay(lbl_1_data_0[0][3]); - fn_1_59A0(lbl_1_bss_33AC[sp8[var_r30]].unk_00, 1, 4, 0xF, 1); - fn_1_1968(var_r27, 0x1A0008, -1, -1); - fn_1_59A0(lbl_1_bss_33AC[sp8[var_r30]].unk_00, 1, 1, 0xF, 1); - fn_1_2154(0x1A0020); - for (var_r31 = 0; var_r31 < 6; var_r31++) { - lbl_1_bss_33AC[var_r31].unk_08 = 0; - lbl_1_bss_33AC[var_r31].unk_04 = (MentDllUnkFunc)fn_1_127FC; - } - lbl_1_bss_33AC[sp8[var_r30]].unk_08 = 1; - lbl_1_bss_35BC[0].unk_04 = (MentDllUnkFunc)fn_1_18F74; -loop_5: - fn_1_4D8(); - for (var_r31 = 0; var_r31 < 6; var_r31++) { - if (lbl_1_bss_33AC[var_r31].unk_08 == 2) { - break; + temp_r27 = fn_1_1434(0, 0, 0); + while (1) { + fn_1_4D8(); + var_r28 = 0; + lbl_1_bss_33AC->unk_34 = 1; + HuAudFXPlay(lbl_1_data_0[0][3]); + fn_1_59A0(lbl_1_bss_33AC[sp8[var_r30]].unk_00, 1, 4, 0xF, 1); + fn_1_1968(temp_r27, 0x1A0008U, -1, -1); + fn_1_59A0(lbl_1_bss_33AC[sp8[var_r30]].unk_00, 1, 1, 0xF, 1); + fn_1_2154(0x1A0020U); + + for (i = 0; i < 6; i++) { + lbl_1_bss_33AC[i].unk_08 = 0; + lbl_1_bss_33AC[i].unk_04 = (void (*)(omObjData*, ...)) fn_1_127FC; } - } - if (var_r31 != 6) { - block_29: - if (var_r28 == 0) { - if (var_r30 != 5) { - fn_1_2808(fn_1_14058); - } - else { - fn_1_2808(fn_1_14148); - } - for (var_r31 = 0; var_r31 < 6; var_r31++) { - lbl_1_bss_33AC[var_r31].unk_08 = 0; - } - lbl_1_bss_33AC[sp8[var_r30]].unk_08 = 1; - } - var_r28++; - if ((var_r28 == 0x14) != 0) { - var_r28 = 0x15; - fn_1_18A54(sp8[var_r30]); - fn_1_1968(var_r27, sp8[var_r30] + 0x1B0001, -1, -0x3E7); - if (sp8[var_r30] != 0) { - HuAudFXPlay(lbl_1_data_0[sp8[var_r30]][0]); - } - else { - HuAudFXPlay(lbl_1_data_0[sp8[var_r30]][2]); - } - } - goto loop_5; - } - if (var_r28 < 0x15) { - goto block_29; - } - if (HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_B) { - HuAudFXPlay(3); - var_r29 = 0; - } - else if (HuPadBtnDown[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_A) { - HuAudFXPlay(2); - var_r29 = 2; - } - else { - if ((HuPadStkX[lbl_1_bss_3114->unk_6C] >= 0x32) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 2) != 0)) { - if (lbl_1_bss_A8[4] == 1) { - var_r30++; - if (var_r30 > 5) { - var_r30 = 5; - } - else { - var_r28 = 0; + + lbl_1_bss_33AC[sp8[var_r30]].unk_08 = 1; + lbl_1_bss_35BC->unk_04 = (void (*)(omObjData*, ...)) fn_1_18F74; + while (1) { + fn_1_4D8(); + for (i = 0; i < 6; i++) { + if (lbl_1_bss_33AC[i].unk_08 != 2) { + break; } } - else { - var_r30++; - if (var_r30 > 4) { - var_r30 = 4; + + if (i == 6 && var_r28 >= 0x15) { + if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & 0x200)) { + HuAudFXPlay(3); + var_r29 = 0; + break; + } else if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & 0x100)) { + HuAudFXPlay(2); + var_r29 = 2; + break; + } else { + if ((HuPadStkX[lbl_1_bss_3114->unk_6C] >= 50) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 2))) { + if (lbl_1_bss_A8[4] == 1) { + if (++var_r30 > 5) { + var_r30 = 5; + } else { + var_r28 = 0; + } + } else { + if (++var_r30 > 4) { + var_r30 = 4; + } else { + var_r28 = 0; + } + } + } else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] <= -50) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 1))) { + if (--var_r30 < 0) { + var_r30 = 0; + } else { + var_r28 = 0; + } + } } - else { - var_r28 = 0; + } + if (var_r28 == 0) { + if (var_r30 != 5) { + fn_1_2808(fn_1_14058); + } else { + fn_1_2808(fn_1_14148); + } + for (i = 0; i < 6; i++) { + lbl_1_bss_33AC[i].unk_08 = 0; + } + lbl_1_bss_33AC[sp8[var_r30]].unk_08 = 1; + } + if (var_r28++ == 0x14) { + var_r28 = 0x15; + fn_1_18A54(sp8[var_r30]); + fn_1_1968(temp_r27, sp8[var_r30] + 0x1B0001, -1, -999); + if ((s32) sp8[var_r30] != 0) { + HuAudFXPlay(lbl_1_data_0[sp8[var_r30]][0]); + } else { + HuAudFXPlay(lbl_1_data_0[sp8[var_r30]][2]); } } } - else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] <= -0x32) || (HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_LEFT)) { - var_r30--; - if (var_r30 < 0) { - var_r30 = 0; - } - else { - var_r28 = 0; - } - } - goto block_29; - } - fn_1_2318(0); - switch (var_r29) { - case 0: + fn_1_2318(0); + if (var_r29 == 0) { fn_1_2808(fn_1_14058); if (var_r30 != 2) { var_r30 = 2; - for (var_r31 = 0; var_r31 < 6; var_r31++) { - lbl_1_bss_33AC[var_r31].unk_08 = 0; + for (i = 0; i < 6; i++) { + lbl_1_bss_33AC[i].unk_08 = 0; } - lbl_1_bss_33AC[sp8[2]].unk_08 = 1; + + lbl_1_bss_33AC[sp8[var_r30]].unk_08 = 1; } fn_1_18DCC(); fn_1_4B0(0x1E); - break; - case 1: + } else if (var_r29 == 1) { fn_1_2808(fn_1_14058); if (var_r30 != 2) { var_r30 = 2; - for (var_r31 = 0; var_r31 < 6; var_r31++) { - lbl_1_bss_33AC[var_r31].unk_08 = 0; + for (i = 0; i < 6; i++) { + lbl_1_bss_33AC[i].unk_08 = 0; } - lbl_1_bss_33AC[sp8[2]].unk_08 = 1; + lbl_1_bss_33AC[sp8[var_r30]].unk_08 = 1; } fn_1_18DCC(); fn_1_4B0(0x1E); - fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); - fn_1_1968(var_r27, 0x1A0003, -1, 5); - fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); - var_r26 = fn_1_1DD8(0x1E0035, 3, 0); + fn_1_59A0(lbl_1_bss_33AC->unk_00, 1, 4, 0xF, 1); + fn_1_1968(temp_r27, 0x1A0003U, -1, 5); + fn_1_59A0(lbl_1_bss_33AC->unk_00, 1, 1, 0xF, 1); + var_r26 = fn_1_1DD8(0x1E0035U, 3, 0); if (var_r26 == 0) { - fn_1_16AC(var_r27); + fn_1_16AC(temp_r27); fn_1_C174(0); } - goto loop_1; - case 2: - for (var_r31 = 0; var_r31 < 6; var_r31++) { - lbl_1_bss_33AC[var_r31].unk_04 = NULL; + continue; + } else if (var_r29 == 2) { + for (i = 0; i < 6; i++) { + lbl_1_bss_33AC[i].unk_04 = NULL; } lbl_1_bss_A8[2] = sp8[var_r30]; - break; + } else { + continue; + } + break; } - fn_1_16AC(var_r27); + + fn_1_16AC(temp_r27); + if (var_r29 == 0) { - for (var_r31 = 0; var_r31 < 4; var_r31++) { - if (lbl_1_bss_3114[var_r31].unk_60 == 0) { } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_3114[i].unk_60 != 0) { + break; + } } - if (var_r31 != 4) { + if (i != 4) { var_r29 = 2; - } - else { + } else { var_r29 = 1; } - } - else { + } else { var_r29 = 3; } return var_r29; @@ -2380,7 +2373,7 @@ void fn_1_D350(void) void fn_1_D634(void) { s32 var_r31; - s32 var_r30; + s32 i; s32 var_r29; s32 var_r28; s32 var_r27; @@ -2389,14 +2382,14 @@ void fn_1_D634(void) s32 sp8[6] = { 1, 2, 0, 3, 4, 5 }; var_r28 = 0; var_r31 = 2; + if (lbl_1_data_2F0 == -1) { var_r29 = fn_1_1434(0, 0, 0); - } - else { + } else { var_r29 = lbl_1_data_2F0; lbl_1_data_2F0 = -1; } - while (TRUE) { + while (1) { fn_1_4D8(); var_r28 = 0; lbl_1_bss_33AC[0].unk_34 = 1; @@ -2405,24 +2398,48 @@ void fn_1_D634(void) fn_1_1968(var_r29, 0x1A0008, -1, -1); fn_1_59A0(lbl_1_bss_33AC[sp8[var_r31]].unk_00, 1, 1, 0xF, 1); fn_1_2154(0x1A0020); - for (var_r30 = 0; var_r30 < 5; var_r30++) { - lbl_1_bss_33AC[var_r30].unk_08 = 0; - lbl_1_bss_33AC[var_r30].unk_04 = (MentDllUnkFunc)fn_1_127FC; + for (i = 0; i < 5; i++) { + lbl_1_bss_33AC[i].unk_08 = 0; + lbl_1_bss_33AC[i].unk_04 = (MentDllUnkFunc)fn_1_127FC; } lbl_1_bss_33AC[sp8[var_r31]].unk_08 = 1; lbl_1_bss_35BC[0].unk_04 = (MentDllUnkFunc)fn_1_18F74; - loop_7: - fn_1_4D8(); - for (var_r30 = 0; var_r30 < 5; var_r30++) { - if (lbl_1_bss_33AC[var_r30].unk_08 == 2) { - (void)var_r30; + while (1) { + fn_1_4D8(); + for (i = 0; i < 5; i++) { + if (lbl_1_bss_33AC[i].unk_08 != 2) { + break; + } + } + if (i == 5 && var_r28 >= 0x15) { + if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & 0x100)) { + HuAudFXPlay(2); + var_r26 = 2; + break; + } + + if ((HuPadStkX[lbl_1_bss_3114[0].unk_6C] >= 0x32) || ((HuPadBtn[lbl_1_bss_3114[0].unk_6C] & PAD_BUTTON_RIGHT) != 0)) { + var_r31++; + if (var_r31 > 4) { + var_r31 = 4; + } else { + var_r28 = 0; + } + } else if ((HuPadStkX[lbl_1_bss_3114[0].unk_6C] <= -50) || ((HuPadBtn[lbl_1_bss_3114[0].unk_6C] & PAD_BUTTON_LEFT) != 0)) { + var_r31--; + if (var_r31 < 0) { + var_r31 = 0; + } else { + var_r28 = 0; + } + } else if ((HuPadBtnDown[0] & 0x200)) { + var_r26 = 1; + break; + } } - } - if (var_r30 != 5) { - block_27: if (var_r28 == 0) { - for (var_r30 = 0; var_r30 < 5; var_r30++) { - lbl_1_bss_33AC[var_r30].unk_08 = 0; + for (i = 0; i < 5; i++) { + lbl_1_bss_33AC[i].unk_08 = 0; } lbl_1_bss_33AC[sp8[var_r31]].unk_08 = 1; } @@ -2432,46 +2449,9 @@ void fn_1_D634(void) fn_1_1968(var_r29, sp8[var_r31] + 0x1B0001, -1, -0x3E7); if (sp8[var_r31] != 0) { HuAudFXPlay(lbl_1_data_0[sp8[var_r31]][0]); + } else { + HuAudFXPlay(lbl_1_data_0[sp8[var_r31]][2]); } - else { - HuAudFXPlay(lbl_1_data_0[sp8[var_r31]][0]); - } - } - goto loop_7; - } - if (var_r28 < 0x15) { - goto block_27; - } - if ((HuPadBtnDown[lbl_1_bss_3114[0].unk_6C] & PAD_BUTTON_A) != 0) { - HuAudFXPlay(2); - var_r26 = 2; - } - else { - if ((HuPadStkX[lbl_1_bss_3114[0].unk_6C] >= 0x32) || ((HuPadBtn[lbl_1_bss_3114[0].unk_6C] & PAD_BUTTON_RIGHT) != 0)) { - var_r31++; - if (var_r31 > 4) { - var_r31 = 4; - } - else { - var_r28 = 0; - } - goto block_27; - } - if ((HuPadStkX[lbl_1_bss_3114[0].unk_6C] <= -0x32) || ((HuPadBtn[lbl_1_bss_3114[0].unk_6C] & PAD_BUTTON_LEFT) != 0)) { - var_r31--; - if (var_r31 < 0) { - var_r31 = 0; - } - else { - var_r28 = 0; - } - goto block_27; - } - if ((HuPadBtnDown[0] & PAD_BUTTON_B) != 0) { - var_r26 = 1; - } - else { - goto block_27; } } fn_1_2318(0); @@ -2479,8 +2459,8 @@ void fn_1_D634(void) fn_1_2808(fn_1_14058); if (var_r31 != 2) { var_r31 = 2; - for (var_r30 = 0; var_r30 < 5; var_r30++) { - lbl_1_bss_33AC[var_r30].unk_08 = 0; + for (i = 0; i < 5; i++) { + lbl_1_bss_33AC[i].unk_08 = 0; } lbl_1_bss_33AC[sp8[var_r31]].unk_08 = 1; lbl_1_bss_33AC[sp8[var_r31]].unk_34 = 1; @@ -2508,16 +2488,15 @@ void fn_1_D634(void) fn_1_59A0(lbl_1_bss_33AC[sp8[var_r31]].unk_00, 1, 1, 0xF, 1); var_r27 = fn_1_1DD8(0x1E0035, 3, 0); if (var_r27 == 0) { - for (var_r30 = 0; var_r30 < 5; var_r30++) { - lbl_1_bss_33AC[var_r30].unk_04 = NULL; + for (i = 0; i < 5; i++) { + lbl_1_bss_33AC[i].unk_04 = NULL; } lbl_1_bss_A8[2] = sp8[var_r31]; - } - else { + } else { if (var_r31 != 2) { var_r31 = 2; - for (var_r30 = 0; var_r30 < 5; var_r30++) { - lbl_1_bss_33AC[var_r30].unk_08 = 0; + for (i = 0; i < 5; i++) { + lbl_1_bss_33AC[i].unk_08 = 0; } lbl_1_bss_33AC[sp8[var_r31]].unk_08 = 1; lbl_1_bss_33AC[sp8[var_r31]].unk_34 = 1; @@ -2526,10 +2505,9 @@ void fn_1_D634(void) fn_1_4B0(0x1E); continue; } - } - else { - for (var_r30 = 0; var_r30 < 5; var_r30++) { - lbl_1_bss_33AC[var_r30].unk_04 = NULL; + } else { + for (i = 0; i < 5; i++) { + lbl_1_bss_33AC[i].unk_04 = NULL; } lbl_1_bss_A8[2] = sp8[var_r31]; } From a6e227c6f3f37ddd8f57d12ac7be2ec962b6ef1d Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Wed, 11 Sep 2024 19:08:06 -0500 Subject: [PATCH 055/311] Finish m444dll --- configure.py | 2 +- src/REL/m444dll/main.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/configure.py b/configure.py index 4f226ebb..90602312 100644 --- a/configure.py +++ b/configure.py @@ -1126,7 +1126,7 @@ config.libs = [ Rel( "m444dll", # Reversal of Fortune objects={ - Object(NonMatching, "REL/m444dll/main.c"), + Object(Matching, "REL/m444dll/main.c"), Object(Matching, "REL/m444dll/pinball.c"), Object(Matching, "REL/m444dll/datalist.c"), Object(Matching, "REL/m444dll/shadow.c"), diff --git a/src/REL/m444dll/main.c b/src/REL/m444dll/main.c index 0c11669f..2617028a 100644 --- a/src/REL/m444dll/main.c +++ b/src/REL/m444dll/main.c @@ -88,6 +88,7 @@ Vec lbl_1_bss_290[2]; float lbl_1_bss_288[2]; s16 lbl_1_bss_148[20][8]; s16 lbl_1_bss_8[20][8]; +s16 lbl_1_bss_6; s16 lbl_1_bss_4; s32 lbl_1_bss_0; @@ -656,9 +657,9 @@ void fn_1_470(void) default: break; } - HuWinInsertMesSizeGet((u32)GWPlayerCfg[lbl_1_bss_2D6].character, 0); + HuWinInsertMesSizeGet((8+GWPlayerCfg[lbl_1_bss_2D6].character)-8, 0); HuWinInsertMesSizeGet(temp_r24, 1); - HuWinInsertMesSizeGet((u32)GWPlayerCfg[lbl_1_bss_2D4].character, 2); + HuWinInsertMesSizeGet((8+GWPlayerCfg[lbl_1_bss_2D4].character)-8, 2); HuWinMesMaxSizeGet(1, sp8, temp_r28); temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); HuWinExAnimIn(temp_r30); @@ -692,7 +693,7 @@ void fn_1_470(void) } for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) { for (temp_r27 = 0; temp_r27 < 3; temp_r27++) { - lbl_1_bss_34C[temp_r27].y = (180.0 * cosd(4.5 * temp_r29)) - 100.0; + lbl_1_bss_34C[temp_r27].y = (180.0 * cosd(4.5 * temp_r31)) - 100.0; } HuPrcVSleep(); } From 0ee6343c3f1484505bbbd1085d5c07c0bb59ab40 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Wed, 11 Sep 2024 22:47:33 -0500 Subject: [PATCH 056/311] Match ment main --- configure.py | 2 +- src/REL/mentDll/main.c | 139 ++++++++++++++++++----------------------- 2 files changed, 63 insertions(+), 78 deletions(-) diff --git a/configure.py b/configure.py index 90602312..1371ef6a 100644 --- a/configure.py +++ b/configure.py @@ -1257,7 +1257,7 @@ config.libs = [ "mentDll", objects={ Object(NonMatching, "REL/mentDll/common.c"), - Object(NonMatching, "REL/mentDll/main.c"), + Object(Matching, "REL/mentDll/main.c"), }, ), Rel( diff --git a/src/REL/mentDll/main.c b/src/REL/mentDll/main.c index b7016353..81ee860b 100644 --- a/src/REL/mentDll/main.c +++ b/src/REL/mentDll/main.c @@ -3506,12 +3506,12 @@ void fn_1_13EDC(void) var_r31 = &lbl_1_bss_64; var_r31->unk_08 = 0.0f; - var_r31->unk_0C = 0.0f; + var_r31->unk_0C = 215.0f; var_r31->unk_10 = 0.0f; - var_r31->unk_20 = -10.0f; + var_r31->unk_20 = 0.0f; var_r31->unk_24 = 0.0f; var_r31->unk_28 = 0.0f; - var_r31->unk_38 = 2900.0f; + var_r31->unk_38 = 1600.0f; } void fn_1_13F68(void) @@ -3677,7 +3677,7 @@ void fn_1_148B0(void) sp8[9] = 0.0f; sp8[10] = 0.0f; sp8[14] = 1100.0f; - fn_1_4138(var_r31, sp8, var_r31->unk_40++, 30.0f, 10.0f); + fn_1_4138(var_r31, sp8, var_r31->unk_40++, 10.0f, 5.0f); } void fn_1_149A0(void) @@ -3688,7 +3688,7 @@ void fn_1_149A0(void) var_r31->unk_08 = 0.0f; var_r31->unk_0C = 125.0f; var_r31->unk_10 = 0.0f; - var_r31->unk_20 = 5.0f; + var_r31->unk_20 = -5.0f; var_r31->unk_24 = 0.0f; var_r31->unk_28 = 0.0f; var_r31->unk_38 = 1750.0f; @@ -3702,7 +3702,7 @@ void fn_1_14A2C(void) var_r31->unk_08 = 1200.0f; var_r31->unk_0C = 125.0f; var_r31->unk_10 = 0.0f; - var_r31->unk_20 = -4.0f; + var_r31->unk_20 = -5.0f; var_r31->unk_24 = 0.0f; var_r31->unk_28 = 0.0f; var_r31->unk_38 = 1750.0f; @@ -3716,7 +3716,7 @@ void fn_1_14AB8(void) var_r31 = &lbl_1_bss_64; sp8[2] = 0.0f; sp8[3] = 125.0f; - sp8[4] = 0.0f; + sp8[4] = 460.0f; sp8[8] = 0.0f; sp8[9] = 0.0f; sp8[10] = 0.0f; @@ -4087,86 +4087,71 @@ s32 fn_1_1648C(MentDllUnkBss3114Struct *arg0) var_r28 = 0; var_r29 = lbl_1_bss_35BC[0].unk_30; -loop_1: - fn_1_4D8(); - var_r28 = 0; - var_r26 = arg0->unk_64; - if (HuPadStkX[lbl_1_bss_3114->unk_6C] >= 5) { - block_3: - if (lbl_1_bss_A8[5] == 1) { - arg0->unk_64++; - var_r28 = 1; - if (arg0->unk_64 > 3) { - arg0->unk_64 = 0; + while(1) { + fn_1_4D8(); + var_r28 = 0; + var_r26 = arg0->unk_64; + if(HuPadStkX[lbl_1_bss_3114->unk_6C] >= 5 || (HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_RIGHT)) { + if(lbl_1_bss_A8[5] == 1) { + arg0->unk_64++; + var_r28 = 1; + if(arg0->unk_64 > 3) { + arg0->unk_64 = 0; + } + } else { + arg0->unk_64++; + var_r28 = 1; + if(arg0->unk_64 > 2) { + arg0->unk_64 = 0; + } } - } - else { - arg0->unk_64++; - var_r28 = 1; - if (arg0->unk_64 > 2) { - arg0->unk_64 = 0; + } else if(HuPadStkX[lbl_1_bss_3114->unk_6C] <= -5 || (HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_LEFT)) { + if(lbl_1_bss_A8[5] == 1) { + arg0->unk_64--; + var_r28 = -1; + if(arg0->unk_64 < 0) { + arg0->unk_64 = 3; + } + } else { + arg0->unk_64--; + var_r28 = -1; + if(arg0->unk_64 < 0) { + arg0->unk_64 = 2; + } } + } else if(HuPadBtnDown[0] & PAD_BUTTON_A) { + var_r27 = 1; + HuAudFXPlay(2); + break; + } else if(HuPadBtnDown[0] & PAD_BUTTON_B) { + var_r27 = 0; + HuAudFXPlay(3); + break; } - block_19: - if (arg0->unk_64 != var_r26) { + if(arg0->unk_64 != var_r26) { HuAudFXPlay(0); - for (var_r30 = 0; var_r30 <= 5; var_r30++) { + for(var_r30=0; var_r30<=5; var_r30++) { fn_1_4D8(); - var_f31 = fn_1_32C(lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 % 4][0] + (var_r28 * 0xA), var_r30, 5.0f); - HuSprPosSet(var_r29, arg0->unk_58 + 0x20, var_f31, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x23); - HuSprPosSet(var_r29, arg0->unk_58 + 0x24, 1.0f + var_f31, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); + var_f31 = fn_1_32C(lbl_1_data_57C[arg0->unk_68%4][0], lbl_1_data_57C[arg0->unk_68%4][0]+(var_r28*10), var_r30, 5); + HuSprPosSet(var_r29, arg0->unk_58+32, var_f31, lbl_1_data_57C[arg0->unk_68/4][1]+35); + HuSprPosSet(var_r29, arg0->unk_58+36, 1+var_f31, lbl_1_data_57C[arg0->unk_68/4][1]+37); } - HuSprBankSet(var_r29, arg0->unk_58 + 0x20, arg0->unk_64); - for (var_r30 = 0; var_r30 <= 5; var_r30++) { + HuSprBankSet(var_r29, arg0->unk_58+32, arg0->unk_64); + for(var_r30=0; var_r30<=5; var_r30++) { fn_1_4D8(); - var_f31 = fn_1_32C(lbl_1_data_57C[arg0->unk_68 % 4][0] + (var_r28 * 0xA), lbl_1_data_57C[arg0->unk_68 % 4][0], var_r30, 5.0f); - HuSprPosSet(var_r29, arg0->unk_58 + 0x20, var_f31, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x23); - HuSprPosSet(var_r29, arg0->unk_58 + 0x24, 1.0f + var_f31, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); + var_f31 = fn_1_32C(lbl_1_data_57C[arg0->unk_68%4][0]+(var_r28*10), lbl_1_data_57C[arg0->unk_68%4][0], var_r30, 5); + HuSprPosSet(var_r29, arg0->unk_58+32, var_f31, lbl_1_data_57C[arg0->unk_68/4][1]+35); + HuSprPosSet(var_r29, arg0->unk_58+36, 1+var_f31, lbl_1_data_57C[arg0->unk_68/4][1]+37); } } - goto loop_1; } - if ((HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_RIGHT) != 0) { - goto block_3; - } - if (HuPadStkX[lbl_1_bss_3114->unk_6C] <= -5) { - block_10: - if (lbl_1_bss_A8[5] == 1) { - arg0->unk_64--; - var_r28 = -1; - if (arg0->unk_64 < 0) { - arg0->unk_64 = 3; - } - } - else { - arg0->unk_64--; - var_r28 = -1; - if (arg0->unk_64 < 0) { - arg0->unk_64 = 2; - } - } - goto block_19; - } - if ((HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_LEFT) != 0) { - goto block_10; - } - if ((HuPadBtnDown[0] & PAD_BUTTON_A) != 0) { - var_r27 = 1; - HuAudFXPlay(2); - } - else if ((HuPadBtnDown[0] & PAD_BUTTON_B) != 0) { - var_r27 = 0; - HuAudFXPlay(3); - } - else { - goto block_19; - } - if (var_r27 == 1) { - HuSprPosSet(var_r29, arg0->unk_58 + 0x31, lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x23); - HuSprBankSet(var_r29, arg0->unk_58 + 0x31, arg0->unk_64); - HuSprAttrReset(var_r29, arg0->unk_58 + 0x31, 4); - HuSprAttrSet(var_r29, arg0->unk_58 + 0x20, 4); + if(var_r27 == 1) { + HuSprPosSet(var_r29, arg0->unk_58+49, lbl_1_data_57C[arg0->unk_68%4][0], lbl_1_data_57C[arg0->unk_68/4][1]+35); + HuSprBankSet(var_r29, arg0->unk_58+49, arg0->unk_64); + HuSprAttrReset(var_r29, arg0->unk_58+49, 4); + HuSprAttrSet(var_r29, arg0->unk_58+32, 4); } + return var_r27; } @@ -5438,7 +5423,7 @@ void fn_1_1D4FC(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) { 0x00000070, 0x0000011A }, { 0x000001D2, 0x0000011A }, }; - arg0->unk_30 = var_r30 = HuSprGrpCreate(0x22); + arg0->unk_30 = var_r30 = (s16)HuSprGrpCreate(0x22); var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MENT, 0x58)), 0x7D0, 0); HuSprGrpMemberSet(var_r30, 0, var_r29); HuSprTPLvlSet(var_r30, 0, 0.8f); From c80c0379d892c987de4ebc8fd523de5a6dff017a Mon Sep 17 00:00:00 2001 From: Rainchus Date: Thu, 12 Sep 2024 04:09:36 -0500 Subject: [PATCH 057/311] fix linker warnings --- config/GMPE01_00/rels/m444dll/symbols.txt | 24 +- config/GMPE01_00/rels/mentDll/symbols.txt | 316 +++++++++++----------- 2 files changed, 170 insertions(+), 170 deletions(-) diff --git a/config/GMPE01_00/rels/m444dll/symbols.txt b/config/GMPE01_00/rels/m444dll/symbols.txt index 574073a6..6f2bcebd 100644 --- a/config/GMPE01_00/rels/m444dll/symbols.txt +++ b/config/GMPE01_00/rels/m444dll/symbols.txt @@ -235,19 +235,19 @@ lbl_1_data_140 = .data:0x00000140; // type:object size:0xC data:float lbl_1_data_14C = .data:0x0000014C; // type:object size:0x3C data:float lbl_1_data_188 = .data:0x00000188; // type:object size:0xC lbl_1_data_194 = .data:0x00000194; // type:object size:0x20 -lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 data:string -lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0xA data:string -lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0xA data:string -lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xA data:string -lbl_1_data_1F6 = .data:0x000001F6; // type:object size:0xD data:string -lbl_1_data_203 = .data:0x00000203; // type:object size:0xD data:string -lbl_1_data_210 = .data:0x00000210; // type:object size:0xD data:string -lbl_1_data_21D = .data:0x0000021D; // type:object size:0xD data:string -lbl_1_data_22A = .data:0x0000022A; // type:object size:0xB data:string -lbl_1_data_235 = .data:0x00000235; // type:object size:0xB data:string +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 scope:local data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0xA scope:local data:string +lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0xA scope:local data:string +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xA scope:local data:string +lbl_1_data_1F6 = .data:0x000001F6; // type:object size:0xD scope:local data:string +lbl_1_data_203 = .data:0x00000203; // type:object size:0xD scope:local data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0xD scope:local data:string +lbl_1_data_21D = .data:0x0000021D; // type:object size:0xD scope:local data:string +lbl_1_data_22A = .data:0x0000022A; // type:object size:0xB scope:local data:string +lbl_1_data_235 = .data:0x00000235; // type:object size:0xB scope:local data:string lbl_1_data_240 = .data:0x00000240; // type:object size:0x4 -lbl_1_data_244 = .data:0x00000244; // type:object size:0xA data:string -lbl_1_data_24E = .data:0x0000024E; // type:object size:0x4 data:string +lbl_1_data_244 = .data:0x00000244; // type:object size:0xA scope:local data:string +lbl_1_data_24E = .data:0x0000024E; // type:object size:0x4 scope:local data:string lbl_1_data_258 = .data:0x00000258; // type:object size:0xC lbl_1_data_264 = .data:0x00000264; // type:object size:0x3C lbl_1_data_2A0 = .data:0x000002A0; // type:object size:0x28 diff --git a/config/GMPE01_00/rels/mentDll/symbols.txt b/config/GMPE01_00/rels/mentDll/symbols.txt index a567448f..cf268b30 100644 --- a/config/GMPE01_00/rels/mentDll/symbols.txt +++ b/config/GMPE01_00/rels/mentDll/symbols.txt @@ -244,131 +244,131 @@ lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:byte -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x1C data:4byte -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0xC data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x10 data:4byte -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x18 data:4byte -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0xC data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x18 data:4byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0xC data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x1C data:4byte -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x10 data:4byte -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x18 data:4byte -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0xC data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0xC data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x1C data:4byte -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0xC data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0xC data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0xC data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0xC data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x18 data:4byte -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x90 -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x18 data:4byte -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x40 data:4byte -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x20 data:4byte -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x20 data:4byte -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0xC scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0xC scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0xC scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0xC scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0xC scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0xC scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0xC scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0xC scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0xC scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x90 scope:local +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 scope:local data:double +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte lbl_1_data_70 = .data:0x00000070; // type:object size:0x4 data:4byte lbl_1_data_74 = .data:0x00000074; // type:object size:0x22 data:string @@ -378,42 +378,42 @@ lbl_1_data_CA = .data:0x000000CA; // type:object size:0xE data:string lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x48 data:float lbl_1_data_120 = .data:0x00000120; // type:object size:0x18 jumptable_1_data_138 = .data:0x00000138; // type:object size:0x30 scope:local -lbl_1_data_168 = .data:0x00000168; // type:object size:0x16 data:string -lbl_1_data_17E = .data:0x0000017E; // type:object size:0x15 data:string -lbl_1_data_193 = .data:0x00000193; // type:object size:0x17 data:string -lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x16 data:string -lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x17 data:string -lbl_1_data_1D7 = .data:0x000001D7; // type:object size:0x16 data:string -lbl_1_data_1ED = .data:0x000001ED; // type:object size:0x17 data:string -lbl_1_data_204 = .data:0x00000204; // type:object size:0x16 data:string -lbl_1_data_21A = .data:0x0000021A; // type:object size:0xF data:string -lbl_1_data_229 = .data:0x00000229; // type:object size:0x1C data:string -lbl_1_data_245 = .data:0x00000245; // type:object size:0x1D data:string -lbl_1_data_262 = .data:0x00000262; // type:object size:0x14 data:string -lbl_1_data_276 = .data:0x00000276; // type:object size:0x15 data:string -lbl_1_data_28B = .data:0x0000028B; // type:object size:0x14 data:string -lbl_1_data_29F = .data:0x0000029F; // type:object size:0x15 data:string +lbl_1_data_168 = .data:0x00000168; // type:object size:0x16 scope:local data:string +lbl_1_data_17E = .data:0x0000017E; // type:object size:0x15 scope:local data:string +lbl_1_data_193 = .data:0x00000193; // type:object size:0x17 scope:local data:string +lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x16 scope:local data:string +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x17 scope:local data:string +lbl_1_data_1D7 = .data:0x000001D7; // type:object size:0x16 scope:local data:string +lbl_1_data_1ED = .data:0x000001ED; // type:object size:0x17 scope:local data:string +lbl_1_data_204 = .data:0x00000204; // type:object size:0x16 scope:local data:string +lbl_1_data_21A = .data:0x0000021A; // type:object size:0xF scope:local data:string +lbl_1_data_229 = .data:0x00000229; // type:object size:0x1C scope:local data:string +lbl_1_data_245 = .data:0x00000245; // type:object size:0x1D scope:local data:string +lbl_1_data_262 = .data:0x00000262; // type:object size:0x14 scope:local data:string +lbl_1_data_276 = .data:0x00000276; // type:object size:0x15 scope:local data:string +lbl_1_data_28B = .data:0x0000028B; // type:object size:0x14 scope:local data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x15 scope:local data:string lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3C lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x4 data:4byte -lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20 data:string -lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 data:string -lbl_1_data_334 = .data:0x00000334; // type:object size:0x2A data:string -lbl_1_data_35E = .data:0x0000035E; // type:object size:0x3 data:string -lbl_1_data_361 = .data:0x00000361; // type:object size:0x1B data:string -lbl_1_data_37C = .data:0x0000037C; // type:object size:0x1A data:string -lbl_1_data_396 = .data:0x00000396; // type:object size:0x29 data:string -lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x2A data:string -lbl_1_data_3E9 = .data:0x000003E9; // type:object size:0x2A data:string -lbl_1_data_413 = .data:0x00000413; // type:object size:0x2B data:string -lbl_1_data_43E = .data:0x0000043E; // type:object size:0x29 data:string -lbl_1_data_467 = .data:0x00000467; // type:object size:0x2B data:string -lbl_1_data_492 = .data:0x00000492; // type:object size:0x20 data:string -lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x22 data:string +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20 scope:local data:string +lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 scope:local data:string +lbl_1_data_334 = .data:0x00000334; // type:object size:0x2A scope:local data:string +lbl_1_data_35E = .data:0x0000035E; // type:object size:0x3 scope:local data:string +lbl_1_data_361 = .data:0x00000361; // type:object size:0x1B scope:local data:string +lbl_1_data_37C = .data:0x0000037C; // type:object size:0x1A scope:local data:string +lbl_1_data_396 = .data:0x00000396; // type:object size:0x29 scope:local data:string +lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x2A scope:local data:string +lbl_1_data_3E9 = .data:0x000003E9; // type:object size:0x2A scope:local data:string +lbl_1_data_413 = .data:0x00000413; // type:object size:0x2B scope:local data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x29 scope:local data:string +lbl_1_data_467 = .data:0x00000467; // type:object size:0x2B scope:local data:string +lbl_1_data_492 = .data:0x00000492; // type:object size:0x20 scope:local data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x22 scope:local data:string jumptable_1_data_4D4 = .data:0x000004D4; // type:object size:0x54 scope:local -lbl_1_data_528 = .data:0x00000528; // type:object size:0x1B data:string -lbl_1_data_543 = .data:0x00000543; // type:object size:0x1A data:string -lbl_1_data_55D = .data:0x0000055D; // type:object size:0xF data:string -lbl_1_data_56C = .data:0x0000056C; // type:object size:0x10 data:string +lbl_1_data_528 = .data:0x00000528; // type:object size:0x1B scope:local data:string +lbl_1_data_543 = .data:0x00000543; // type:object size:0x1A scope:local data:string +lbl_1_data_55D = .data:0x0000055D; // type:object size:0xF scope:local data:string +lbl_1_data_56C = .data:0x0000056C; // type:object size:0x10 scope:local data:string lbl_1_data_57C = .data:0x0000057C; // type:object size:0x40 lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x20 lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x64 data:float From fb58b7f7a66002d3a727125ba0a9a0d53bf817ca Mon Sep 17 00:00:00 2001 From: Rainchus Date: Thu, 12 Sep 2024 09:24:35 -0500 Subject: [PATCH 058/311] some of mentDll/common.c --- src/REL/mentDll/common.c | 275 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 275 insertions(+) create mode 100644 src/REL/mentDll/common.c diff --git a/src/REL/mentDll/common.c b/src/REL/mentDll/common.c new file mode 100644 index 00000000..77ee3df1 --- /dev/null +++ b/src/REL/mentDll/common.c @@ -0,0 +1,275 @@ +#include "REL/mentDll.h" +#include "game/wipe.h" +#include "game/board/tutorial.h" +#include "math.h" +#include "game/hsfman.h" +#include "game/window.h" + +Process* lbl_1_bss_0; + +extern s32 _prolog(); +extern void _epilog(); + +void fn_1_144(void); + +typedef void (*VoidFunc)(void); +extern const VoidFunc _ctors[]; +extern const VoidFunc _dtors[]; + +void fn_1_0(omObjData* arg0) { + if (WipeStatGet() == 0) { + arg0->func = NULL; + omOvlReturnEx(1, 1); + } +} + +void fn_1_4C(omObjData* object) { + if (omSysExitReq != 0) { + object->func = fn_1_0; + WipeCreate(2, 0, -1); + } +} + +s32 _prolog(void) { + const VoidFunc* ctors = _ctors; + while (*ctors != 0) { + (**ctors)(); + ctors++; + } + fn_1_144(); + return 0; +} + +void _epilog(void) { + const VoidFunc* dtors = _dtors; + while (*dtors != 0) { + (**dtors)(); + dtors++; + } +} + +// void fn_1_144(void) { +// _ClearFlag(0x1000BU); +// boardTutorialF = 0; +// lbl_1_bss_0 = omInitObjMan(0x3E, 0x2000); +// omGameSysInit(lbl_1_bss_0); +// lbl_1_bss_A8->unk0 = omovlevtno; +// lbl_1_bss_A8[1] = omovlstat; +// fn_1_658C(lbl_1_bss_0); +// omAddObjEx(lbl_1_bss_0, 0x2000, 0U, 0U, -1, fn_1_4C); +// } + +f32 fn_1_20C(f32 arg8, f32 arg9, f32 argA, f32 argB) { + if (argB <= argA) { + return arg9; + } + return arg8 + ((argA / argB) * (arg9 - arg8)); +} + +f32 fn_1_234(f32 arg8, f32 arg9, f32 argA) { + return (arg9 + (arg8 * (argA - 1.0f))) / argA; +} + +f32 fn_1_254(f32 arg8, f32 arg9, f32 argA, f32 argB) { + if (argA >= argB) { + return arg9; + } + return (arg8 + ((arg9 - arg8) * (1.0 - cos((M_PI * ((90.0f / argB) * argA)) / 180.0)))); +} + +f32 fn_1_32C(f32 arg8, f32 arg9, f32 argA, f32 argB) { + if (argA >= argB) { + return arg9; + } + return (arg8 + ((arg9 - arg8) * sin((M_PI * ((90.0f / argB) * argA)) / 180.0))); +} + +f32 fn_1_3F4(f32 arg8, f32 arg9, f32 argA, f32 argB) { + if (argA >= argB) { + return arg8; + } + return (arg8 + ((arg9 - arg8) * sin((M_PI * ((360.0f / argB) * argA)) / 180.0))); +} + +void fn_1_4B0(s32 arg0) { + HuPrcSleep(arg0); +} + +void fn_1_4D8(void) { + HuPrcVSleep(); +} + +void fn_1_4F8(void) { + while (1) { + HuPrcVSleep(); + } +} + +void fn_1_50C(void) { + s32 temp_r3 = 0; + + temp_r3 = Hu3DGLightCreate(0.0f, 700.0f, 1200.0f, 0.0f, -1.0f, 0.0f, 255, 255, 255); + Hu3DGLightPosAimSet(temp_r3, 0.0f, 700.0f, 1200.0f, 0.0f, 0.0f, 640.0f); + Hu3DGLightInfinitytSet(temp_r3); +} + +void fn_1_5E8(s32 arg0) { + Point3d sp24 = {0.0f, 3000.0f, 800.0f}; + Point3d sp18 = {0.0f, 0.0f, 640.0f}; + Point3d spC = {0.0f, 1.0f, 0.0f}; + + if (arg0 == 3) { + sp24.x = sp18.x = 1200.0f; + } + Hu3DShadowCreate(45.0f, 2000.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.8f); + Hu3DShadowPosSet(&sp24, &spC, &sp18); +} + +void fn_1_6D0(void) { + HuWinInit(1); +} + +void fn_1_6F4(s16 arg0, s32 arg1, f32 arg8, f32 arg9) { + f32 sp24; + f32 sp20; + f32 sp1C; + f32 sp18; + f32 sp14; + f32 sp10; + f32 spC; + f32 sp8; + WindowData* temp_r29; + f32 temp_f24; + f32 temp_f25; + f32 temp_f26; + f32 temp_f27; + f32 temp_f28; + f32 temp_f29; + f32 temp_f30; + f32 temp_f31; + f32 var_f18; + f32 var_f19; + f32 var_f20; + f32 var_f21; + f32 var_f22; + f32 var_f23; + f32 var_f30; + f32 var_f31; + s32 var_r31; + + sp8 = arg8; + spC = arg9; + temp_r29 = &winData[arg0]; + temp_f29 = temp_r29->pos_x; + temp_f28 = temp_r29->pos_y; + temp_f25 = (f32) temp_r29->w; + temp_f24 = (f32) temp_r29->h; + temp_f31 = temp_f29 + (temp_f25 * sp8); + temp_f27 = 4.0f / temp_f25; + if (((4.0f + temp_f31) - (temp_f29 + temp_f25)) >= 0.0f) { + var_f31 = (temp_f29 + temp_f25) - 4.0f; + } else { + if ((temp_f29 - (temp_f31 - 2.0f)) >= 0.0f) { + var_f31 = temp_f29; + } else { + var_f31 = temp_f31 - 2.0f; + } + } + temp_f30 = temp_f28 + (temp_f24 * spC); + temp_f26 = 4.0f / temp_f24; + + if (((4.0f + temp_f30) - (temp_f28 + temp_f24)) >= 0.0f) { + var_f30 = (temp_f28 + temp_f24) - 4.0f; + } else { + if ((temp_f28 - (temp_f30 - 2.0f)) >= 0.0f) { + var_f30 = temp_f28; + } else { + var_f30 = temp_f30 - 2.0f; + } + } + if (arg1 != 0) { + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + var_f23 = var_f31; + var_f21 = temp_f27; + var_f22 = var_f30; + var_f20 = temp_f26; + } else { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + var_f23 = temp_f29; + var_f21 = 1.0f; + var_f22 = temp_f28; + var_f20 = 1.0f; + } + HuWinDispOn(arg0); + for (var_r31 = 0; var_r31 <= 15; var_r31++) { + HuPrcVSleep(); + if (arg1 != 0) { + if (var_r31 <= 0xA) { + if ((f32) var_r31 >= 10.0f) { + var_f19 = temp_f29; + } else { + var_f19 = (var_f31 + ((temp_f29 - var_f31) * sin((M_PI * (9.0f * (f32) var_r31)) / 180.0))); + } + var_f23 = var_f19; + if ((f32) var_r31 >= 10.0f) { + var_f18 = 1.0f; + } else { + var_f18 = (temp_f27 + ((1.0f - temp_f27) * sin((M_PI * (9.0f * (f32) var_r31)) / 180.0))); + } + var_f21 = var_f18; + } else { + if ((f32) (var_r31 - 0xA) >= 5.0f) { + sp24 = temp_f28; + } else { + sp24 = (var_f30 + ((temp_f28 - var_f30) * sin((M_PI * (18.0f * (f32) (var_r31 - 0xA))) / 180.0))); + } + var_f22 = sp24; + if ((f32) (var_r31 - 0xA) >= 5.0f) { + sp20 = 1.0f; + } else { + sp20 = (temp_f26 + ((1.0f - temp_f26) * sin((M_PI * (18.0f * (f32) (var_r31 - 0xA))) / 180.0))); + } + var_f20 = sp20; + } + } else if (var_r31 <= 0xA) { + if ((f32) var_r31 >= 10.0f) { + sp1C = var_f30; + } else { + sp1C = (temp_f28 + ((var_f30 - temp_f28) * sin((M_PI * (9.0f * var_r31)) / 180.0))); + } + var_f22 = sp1C; + if ((f32) var_r31 >= 10.0f) { + sp18 = temp_f26; + } else { + sp18 = (f32) (1.0 + ((temp_f26 - 1.0f) * sin((M_PI * (9.0f * var_r31)) / 180.0))); + } + var_f20 = sp18; + } else { + if ((f32) (var_r31 - 0xA) >= 5.0f) { + sp14 = var_f31; + } else { + sp14 = (temp_f29 + ((var_f31 - temp_f29) * sin((M_PI * (18.0f * (var_r31 - 0xA))) / 180.0))); + } + var_f23 = sp14; + if ((f32) (var_r31 - 0xA)>= 5.0f) { + sp10 = temp_f27; + } else { + sp10 = (1.0 + ((temp_f27 - 1.0f) * sin((M_PI * (18.0f * (var_r31 - 0xA))) / 180.0))); + } + var_f21 = sp10; + } + HuWinPosSet(arg0, var_f23, var_f22); + HuWinScaleSet(arg0, var_f21, var_f20); + } + if (arg1 != 0) { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + } else { + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + } + HuPrcVSleep(); +} \ No newline at end of file From 9bdddbc7fe4711cb1034b4f0d8fc0362b2bb8229 Mon Sep 17 00:00:00 2001 From: Rainchus Date: Fri, 13 Sep 2024 15:56:44 -0500 Subject: [PATCH 059/311] more mentDll/common.c funcs --- src/REL/mentDll/common.c | 405 +++++++++++++++++++++++++++------------ 1 file changed, 278 insertions(+), 127 deletions(-) diff --git a/src/REL/mentDll/common.c b/src/REL/mentDll/common.c index 77ee3df1..63378eac 100644 --- a/src/REL/mentDll/common.c +++ b/src/REL/mentDll/common.c @@ -1,15 +1,16 @@ -#include "REL/mentDll.h" -#include "game/wipe.h" -#include "game/board/tutorial.h" #include "math.h" -#include "game/hsfman.h" +#include "ext_math.h" +#include "game/object.h" #include "game/window.h" +#include "game/hsfman.h" +#include "game/process.h" +#include "game/objsub.h" +#include "game/wipe.h" Process* lbl_1_bss_0; extern s32 _prolog(); extern void _epilog(); - void fn_1_144(void); typedef void (*VoidFunc)(void); @@ -130,146 +131,296 @@ void fn_1_6D0(void) { HuWinInit(1); } -void fn_1_6F4(s16 arg0, s32 arg1, f32 arg8, f32 arg9) { - f32 sp24; - f32 sp20; - f32 sp1C; - f32 sp18; - f32 sp14; - f32 sp10; - f32 spC; - f32 sp8; - WindowData* temp_r29; - f32 temp_f24; - f32 temp_f25; - f32 temp_f26; - f32 temp_f27; - f32 temp_f28; - f32 temp_f29; - f32 temp_f30; - f32 temp_f31; - f32 var_f18; - f32 var_f19; - f32 var_f20; - f32 var_f21; - f32 var_f22; - f32 var_f23; - f32 var_f30; - f32 var_f31; - s32 var_r31; +void fn_1_6F4(s32 window, f32 centerX, f32 centerY, s32 toSmallF) +{ + WindowData* winPtr; + f32 smallPosX; + f32 smallPosY; + f32 winPosX; + f32 winPosY; + f32 width; + f32 height; + f32 smallScaleX; + f32 smallScaleY; + f32 posX; + f32 posY; + f32 scaleX; + f32 scaleY; + s32 time; - sp8 = arg8; - spC = arg9; - temp_r29 = &winData[arg0]; - temp_f29 = temp_r29->pos_x; - temp_f28 = temp_r29->pos_y; - temp_f25 = (f32) temp_r29->w; - temp_f24 = (f32) temp_r29->h; - temp_f31 = temp_f29 + (temp_f25 * sp8); - temp_f27 = 4.0f / temp_f25; - if (((4.0f + temp_f31) - (temp_f29 + temp_f25)) >= 0.0f) { - var_f31 = (temp_f29 + temp_f25) - 4.0f; + winPtr = (WindowData *)&winData[window]; + winPosX = winPtr->pos_x; + winPosY = winPtr->pos_y; + width = winPtr->w; + height = winPtr->h; + smallPosX = winPosX + (width * centerX); + smallScaleX = 4.0f / width; + + // adjust horizontal position + if (((4.0f + smallPosX) - (winPosX + width)) >= 0.0f) { + smallPosX = (winPosX + width) - 4.0f; } else { - if ((temp_f29 - (temp_f31 - 2.0f)) >= 0.0f) { - var_f31 = temp_f29; + if ((winPosX - (smallPosX - 2.0f)) >= 0.0f) { + smallPosX = winPosX; } else { - var_f31 = temp_f31 - 2.0f; + smallPosX = smallPosX - 2.0f; } } - temp_f30 = temp_f28 + (temp_f24 * spC); - temp_f26 = 4.0f / temp_f24; - if (((4.0f + temp_f30) - (temp_f28 + temp_f24)) >= 0.0f) { - var_f30 = (temp_f28 + temp_f24) - 4.0f; + smallPosY = winPosY + (height * centerY); + smallScaleY = 4.0f / height; + + // adjust vertical position + if (((4.0f + smallPosY) - (winPosY + height)) >= 0.0f) { + smallPosY = (winPosY + height) - 4.0f; } else { - if ((temp_f28 - (temp_f30 - 2.0f)) >= 0.0f) { - var_f30 = temp_f28; + if ((winPosY - (smallPosY - 2.0f)) >= 0.0f) { + smallPosY = winPosY; } else { - var_f30 = temp_f30 - 2.0f; + smallPosY = smallPosY - 2.0f; } } - if (arg1 != 0) { - HuWinPosSet(arg0, var_f31, var_f30); - HuWinScaleSet(arg0, temp_f27, temp_f26); - var_f23 = var_f31; - var_f21 = temp_f27; - var_f22 = var_f30; - var_f20 = temp_f26; + + if (toSmallF != 0) { + HuWinPosSet(window, smallPosX, smallPosY); + HuWinScaleSet(window, smallScaleX, smallScaleY); + posX = smallPosX; + scaleX = smallScaleX; + posY = smallPosY; + scaleY = smallScaleY; } else { - HuWinPosSet(arg0, temp_f29, temp_f28); - HuWinScaleSet(arg0, 1.0f, 1.0f); - var_f23 = temp_f29; - var_f21 = 1.0f; - var_f22 = temp_f28; - var_f20 = 1.0f; + HuWinPosSet(window, winPosX, winPosY); + HuWinScaleSet(window, 1.0f, 1.0f); + posX = winPosX; + scaleX = 1.0f; + posY = winPosY; + scaleY = 1.0f; } - HuWinDispOn(arg0); - for (var_r31 = 0; var_r31 <= 15; var_r31++) { + HuWinDispOn(window); + + // animation loop + for (time = 0; time <= 15; ++time) { HuPrcVSleep(); - if (arg1 != 0) { - if (var_r31 <= 0xA) { - if ((f32) var_r31 >= 10.0f) { - var_f19 = temp_f29; - } else { - var_f19 = (var_f31 + ((temp_f29 - var_f31) * sin((M_PI * (9.0f * (f32) var_r31)) / 180.0))); - } - var_f23 = var_f19; - if ((f32) var_r31 >= 10.0f) { - var_f18 = 1.0f; - } else { - var_f18 = (temp_f27 + ((1.0f - temp_f27) * sin((M_PI * (9.0f * (f32) var_r31)) / 180.0))); - } - var_f21 = var_f18; + if (toSmallF != 0) { + if (time <= 0xA) { + posX = (time >= 10.0f) ? winPosX : (f32)(smallPosX + ((winPosX - smallPosX) * sind(9.0f * time))); + scaleX = (time >= 10.0f) ? 1.0f : (f32)(smallScaleX + ((1.0f - smallScaleX) * sind(9.0f * time))); } else { - if ((f32) (var_r31 - 0xA) >= 5.0f) { - sp24 = temp_f28; - } else { - sp24 = (var_f30 + ((temp_f28 - var_f30) * sin((M_PI * (18.0f * (f32) (var_r31 - 0xA))) / 180.0))); - } - var_f22 = sp24; - if ((f32) (var_r31 - 0xA) >= 5.0f) { - sp20 = 1.0f; - } else { - sp20 = (temp_f26 + ((1.0f - temp_f26) * sin((M_PI * (18.0f * (f32) (var_r31 - 0xA))) / 180.0))); - } - var_f20 = sp20; + posY = ((time - 0xA) >= 5.0f) ? winPosY : (f32)(smallPosY + ((winPosY - smallPosY) * sind(18.0f * (time - 0xA)))); + scaleY = ((time - 0xA) >= 5.0f) ? 1.0f : (f32)(smallScaleY + ((1.0f - smallScaleY) * sind(18.0f * (time - 0xA)))); } - } else if (var_r31 <= 0xA) { - if ((f32) var_r31 >= 10.0f) { - sp1C = var_f30; - } else { - sp1C = (temp_f28 + ((var_f30 - temp_f28) * sin((M_PI * (9.0f * var_r31)) / 180.0))); - } - var_f22 = sp1C; - if ((f32) var_r31 >= 10.0f) { - sp18 = temp_f26; - } else { - sp18 = (f32) (1.0 + ((temp_f26 - 1.0f) * sin((M_PI * (9.0f * var_r31)) / 180.0))); - } - var_f20 = sp18; + } else if (time <= 0xA) { + posY = (time >= 10.0f) ? smallPosY : (f32)(winPosY + ((smallPosY - winPosY) * sind(9.0f * time))); + scaleY = (time >= 10.0f) ? smallScaleY : (f32)(1.0 + ((smallScaleY - 1.0f) * sind(9.0f * time))); } else { - if ((f32) (var_r31 - 0xA) >= 5.0f) { - sp14 = var_f31; - } else { - sp14 = (temp_f29 + ((var_f31 - temp_f29) * sin((M_PI * (18.0f * (var_r31 - 0xA))) / 180.0))); - } - var_f23 = sp14; - if ((f32) (var_r31 - 0xA)>= 5.0f) { - sp10 = temp_f27; - } else { - sp10 = (1.0 + ((temp_f27 - 1.0f) * sin((M_PI * (18.0f * (var_r31 - 0xA))) / 180.0))); - } - var_f21 = sp10; + posX = ((time - 0xA) >= 5.0f) ? smallPosX : (f32)(winPosX + ((smallPosX - winPosX) * sind(18.0f * (time - 0xA)))); + scaleX = ((time - 0xA) >= 5.0f) ? smallScaleX : (f32)(1.0 + ((smallScaleX - 1.0f) * sind(18.0f * (time - 0xA)))); } - HuWinPosSet(arg0, var_f23, var_f22); - HuWinScaleSet(arg0, var_f21, var_f20); + HuWinPosSet(window, posX, posY); + HuWinScaleSet(window, scaleX, scaleY); } - if (arg1 != 0) { - HuWinPosSet(arg0, temp_f29, temp_f28); - HuWinScaleSet(arg0, 1.0f, 1.0f); + + if (toSmallF != 0) { + HuWinPosSet(window, winPosX, winPosY); + HuWinScaleSet(window, 1.0f, 1.0f); } else { - HuWinPosSet(arg0, var_f31, var_f30); - HuWinScaleSet(arg0, temp_f27, temp_f26); + HuWinPosSet(window, smallPosX, smallPosY); + HuWinScaleSet(window, smallScaleX, smallScaleY); } HuPrcVSleep(); -} \ No newline at end of file +} + +s32 fn_1_113C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, f32 arg8, f32 arg9, s32 arg6, s32 arg4, s32 arg5) { + f32 sp18; + f32 sp14; + s32 temp_r30; + + if (arg6 % 2 == 0) { + arg2 = (arg2 * 0x15) + 0x10; + arg3 = (arg3 * 0x1A) + 0x10; + arg1 = (445.0f - (f32) arg3); + switch (arg0) { + case -1: + arg0 = 0x10; + break; + case 0: + arg0 = (1.0f + ((576.0f - (f32) arg2) * 0.5f)); + break; + case 1: + arg0 = (556.0f - (f32) arg2); + break; + } + } else { + HuWinMesMaxSizeGet(1, &sp14, arg5); + arg2 = (s32) sp14; + arg3 = (s32) sp18; + arg0 = (s32) (556.0f - (f32) arg2); + arg1 = (s32) (445.0f - (f32) arg3); + } + temp_r30 = HuWinExCreateStyled((f32) arg0, (f32) arg1, arg2, arg3, -1, 1); + if (arg6 == 1) { + HuWinAttrSet(temp_r30, 0x10U); + } + HuWinMesPalSet(temp_r30, 7U, 0U, 0U, 0U); + winData[temp_r30].active_pad = 1; + fn_1_6F4(temp_r30, arg8, arg9, 1); + return temp_r30; +} + +//nonmatching +// s16 fn_1_1434(s32 arg0) { +// s16 temp_r29; +// s16 temp_r31; +// s16 temp_r3; + +// temp_r31 = (0x15 * 0x15) + 16; +// temp_r29 = (2 * 0x1A) + 16; +// switch (arg0) { +// case -1: +// arg0 = 16; +// break; +// case 0: +// arg0 = (s32) (1.0f + ((576.0f - (f32) temp_r31) * 0.5f)); +// break; +// case 1: +// arg0 = (s32) (556.0f - (f32) temp_r31); +// break; +// } +// temp_r3 = HuWinExCreateStyled(temp_r31, temp_r29, -1, 1, (f32) arg0, (f32) (s32) (445.0f - (f32) temp_r29)); +// HuWinMesPalSet(temp_r3, 7, 0, 0, 0); +// winData[temp_r3].active_pad = 1; +// fn_1_6F4(temp_r3, 1, 0.5f, 0.5f); +// return temp_r3; +// } + +void fn_1_164C(s32 arg0, f32 arg8, f32 arg9) { + HuWinMesSet(arg0, 0x250004); + HuPrcVSleep(); + fn_1_6F4(arg0, arg8, arg9, 0); + HuWinExCleanup(arg0); +} + +void fn_1_16AC(s32 arg0) { + HuWinMesSet(arg0, 0x250004); + HuPrcVSleep(); + fn_1_6F4(arg0, 0, 0.5f, 0.5f); + HuWinExCleanup(arg0); +} + +void fn_1_1714(s32 arg0, s32 arg1) { + if ((arg1 == -999) || (arg1 == 0)) { + return; + } + if (arg1 == -1000) { + do { + HuPrcVSleep(); + } while (HuWinStatGet(arg0) == 1); + return; + } + if (arg1 > 0) { + HuPrcSleep(arg1); + return; + } + HuWinComKeyReset(); + HuWinMesWait(arg0); + HuWinComKeyReset(); +} + +void fn_1_17A4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + s32 i; + s32 temp_r28 = 0; + s32 var_r30 = 0; + + (void)arg0; + + temp_r28 = HuWinKeyWaitNumGet(arg1); + if ((arg2 == -1) || (arg2 >= (s32) (temp_r28 - 1))) { + arg2 = temp_r28 - 1; + } + HuWinComKeyReset(); + for (i = 0; i < temp_r28; i++) { + var_r30 = 0; + do { + HuPrcVSleep(); + } while (HuWinStatGet(arg0) != 1); + + if (i == arg2) { + HuWinAttrSet(arg0, 0x400); + var_r30 = 1; + } + + while (1) { + HuPrcVSleep(); + //seems like this should be a switch, but I could not get even close to matching it with one + if (var_r30 == 0) { + goto label; + } + if (var_r30 == 1) { + if (HuWinStatGet(arg0) == 1) { + + } else { + var_r30 = 2; + continue; + } + } + if (var_r30 != 2) { + continue; + } else { + HuPrcSleep(arg3); + HuWinAttrReset(arg0, 0x400); + HuWinKeyWaitEntry(arg0); + break; + } + + label: + if (HuWinStatGet(arg0) != 1) { + break; + } + } + } + HuWinComKeyReset(); + HuWinMesWait(arg0); + HuWinComKeyReset(); + HuWinComKeyReset(); +} + +s32 fn_1_18D8(s32 arg0, s32 arg1) { + s32 temp_r31; + + HuWinComKeyReset(); + temp_r31 = HuWinChoiceGet(arg0, arg1); + HuWinComKeyReset(); + return temp_r31; +} + +void fn_1_1928(s32 arg0, s32 arg1, s32 arg2) { + HuWinInsertMesSet(arg0, arg1, arg2); +} + +void fn_1_1968(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + if (arg3 == -999) { + HuWinMesSpeedSet(arg0, 0); + } else { + HuWinMesSpeedSet(arg0, 1); + } + HuWinMesSet(arg0, arg1); + if (arg2 == -1) { + if ((arg3 != -999) && (arg3 != 0)) { + if (arg3 == -1000) { + do { + HuPrcVSleep(); + } while (HuWinStatGet(arg0) == 1); + return; + } + if (arg3 > 0) { + HuPrcSleep(arg3); + return; + } + HuWinComKeyReset(); + HuWinMesWait(arg0); + HuWinComKeyReset(); + } + } else { + fn_1_17A4(arg0, arg1, arg2, arg3); + } +} From cd6c81808c480feb3ece633520b829258d7b230c Mon Sep 17 00:00:00 2001 From: Rainchus Date: Fri, 13 Sep 2024 18:10:57 -0500 Subject: [PATCH 060/311] more mentDll/common.c funcs --- src/REL/mentDll/common.c | 113 ++++++++++++++++----------------------- 1 file changed, 46 insertions(+), 67 deletions(-) diff --git a/src/REL/mentDll/common.c b/src/REL/mentDll/common.c index 63378eac..4de4b585 100644 --- a/src/REL/mentDll/common.c +++ b/src/REL/mentDll/common.c @@ -6,9 +6,13 @@ #include "game/process.h" #include "game/objsub.h" #include "game/wipe.h" +#include "game/board/tutorial.h" Process* lbl_1_bss_0; +//TODO: unknown type +extern s32 lbl_1_bss_A8[]; + extern s32 _prolog(); extern void _epilog(); void fn_1_144(void); @@ -49,16 +53,16 @@ void _epilog(void) { } } -// void fn_1_144(void) { -// _ClearFlag(0x1000BU); -// boardTutorialF = 0; -// lbl_1_bss_0 = omInitObjMan(0x3E, 0x2000); -// omGameSysInit(lbl_1_bss_0); -// lbl_1_bss_A8->unk0 = omovlevtno; -// lbl_1_bss_A8[1] = omovlstat; -// fn_1_658C(lbl_1_bss_0); -// omAddObjEx(lbl_1_bss_0, 0x2000, 0U, 0U, -1, fn_1_4C); -// } +void fn_1_144(void) { + _ClearFlag(0x1000BU); + boardTutorialF = 0; + lbl_1_bss_0 = omInitObjMan(0x3E, 0x2000); + omGameSysInit(lbl_1_bss_0); + lbl_1_bss_A8[0] = omovlevtno; + lbl_1_bss_A8[1] = omovlstat; + fn_1_658C(lbl_1_bss_0); + omAddObjEx(lbl_1_bss_0, 0x2000, 0U, 0U, -1, fn_1_4C); +} f32 fn_1_20C(f32 arg8, f32 arg9, f32 argA, f32 argB) { if (argB <= argA) { @@ -231,33 +235,32 @@ void fn_1_6F4(s32 window, f32 centerX, f32 centerY, s32 toSmallF) } s32 fn_1_113C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, f32 arg8, f32 arg9, s32 arg6, s32 arg4, s32 arg5) { - f32 sp18; - f32 sp14; + f32 sp14[2]; s32 temp_r30; if (arg6 % 2 == 0) { arg2 = (arg2 * 0x15) + 0x10; arg3 = (arg3 * 0x1A) + 0x10; - arg1 = (445.0f - (f32) arg3); + arg1 = (445.0f - arg3); switch (arg0) { case -1: arg0 = 0x10; break; case 0: - arg0 = (1.0f + ((576.0f - (f32) arg2) * 0.5f)); + arg0 = (1.0f + ((576.0f - arg2) / 2)); break; case 1: - arg0 = (556.0f - (f32) arg2); + arg0 = (556.0f - arg2); break; } } else { - HuWinMesMaxSizeGet(1, &sp14, arg5); - arg2 = (s32) sp14; - arg3 = (s32) sp18; - arg0 = (s32) (556.0f - (f32) arg2); - arg1 = (s32) (445.0f - (f32) arg3); + HuWinMesMaxSizeGet(1, sp14, arg5); + arg2 = sp14[0]; + arg3 = sp14[1]; + arg0 = (556.0f - arg2); + arg1 = (445.0f - arg3); } - temp_r30 = HuWinExCreateStyled((f32) arg0, (f32) arg1, arg2, arg3, -1, 1); + temp_r30 = HuWinExCreateStyled(arg0, arg1, arg2, arg3, -1, 1); if (arg6 == 1) { HuWinAttrSet(temp_r30, 0x10U); } @@ -267,31 +270,9 @@ s32 fn_1_113C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, f32 arg8, f32 arg9, s32 ar return temp_r30; } -//nonmatching -// s16 fn_1_1434(s32 arg0) { -// s16 temp_r29; -// s16 temp_r31; -// s16 temp_r3; - -// temp_r31 = (0x15 * 0x15) + 16; -// temp_r29 = (2 * 0x1A) + 16; -// switch (arg0) { -// case -1: -// arg0 = 16; -// break; -// case 0: -// arg0 = (s32) (1.0f + ((576.0f - (f32) temp_r31) * 0.5f)); -// break; -// case 1: -// arg0 = (s32) (556.0f - (f32) temp_r31); -// break; -// } -// temp_r3 = HuWinExCreateStyled(temp_r31, temp_r29, -1, 1, (f32) arg0, (f32) (s32) (445.0f - (f32) temp_r29)); -// HuWinMesPalSet(temp_r3, 7, 0, 0, 0); -// winData[temp_r3].active_pad = 1; -// fn_1_6F4(temp_r3, 1, 0.5f, 0.5f); -// return temp_r3; -// } +s32 fn_1_1434(s32 arg0) { + return fn_1_113C(arg0, 0, 0x15, 2, 0.5f, 0.5f, 2, 0, 0); +} void fn_1_164C(s32 arg0, f32 arg8, f32 arg9) { HuWinMesSet(arg0, 0x250004); @@ -351,29 +332,16 @@ void fn_1_17A4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { while (1) { HuPrcVSleep(); - //seems like this should be a switch, but I could not get even close to matching it with one - if (var_r30 == 0) { - goto label; - } - if (var_r30 == 1) { - if (HuWinStatGet(arg0) == 1) { - - } else { + if (var_r30 != 0) { + if (var_r30 == 1 && HuWinStatGet(arg0) != 1) { var_r30 = 2; - continue; + } else if (var_r30 == 2) { + HuPrcSleep(arg3); + HuWinAttrReset(arg0, 0x400); + HuWinKeyWaitEntry(arg0); + break; } - } - if (var_r30 != 2) { - continue; - } else { - HuPrcSleep(arg3); - HuWinAttrReset(arg0, 0x400); - HuWinKeyWaitEntry(arg0); - break; - } - - label: - if (HuWinStatGet(arg0) != 1) { + } else if (HuWinStatGet(arg0) != 1) { break; } } @@ -424,3 +392,14 @@ void fn_1_1968(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { fn_1_17A4(arg0, arg1, arg2, arg3); } } + +s32 fn_1_1A5C(s32 arg0, s32 arg1) { + s32 var_r28; + s32 var_r25 = 0; + + var_r28 = fn_1_113C(0, 0, 0, 0, 0.5f, 0.5f, arg1, 0, arg0); + HuWinMesSet(var_r28, arg0); + var_r25 = fn_1_18D8(var_r28, 0); + fn_1_164C(var_r28, 0.5f, 0.5f); + return var_r25; +} \ No newline at end of file From 935e11886b135b9d886737ab7398299ab7c86fb0 Mon Sep 17 00:00:00 2001 From: Rainchus Date: Sun, 15 Sep 2024 09:25:10 -0500 Subject: [PATCH 061/311] almost all of mentDll/common.c --- config/GMPE01_00/rels/mentDll/splits.txt | 3 +- include/REL/mentDll.h | 46 ++- src/REL/mentDll/common.c | 429 ++++++++++++++++++++++- src/REL/mentDll/main.c | 354 +++++++++---------- 4 files changed, 613 insertions(+), 219 deletions(-) diff --git a/config/GMPE01_00/rels/mentDll/splits.txt b/config/GMPE01_00/rels/mentDll/splits.txt index 57db84a5..a1376ff8 100644 --- a/config/GMPE01_00/rels/mentDll/splits.txt +++ b/config/GMPE01_00/rels/mentDll/splits.txt @@ -9,9 +9,10 @@ Sections: REL/mentDll/common.c: .text start:0x00000000 end:0x0000658C .rodata start:0x00000000 end:0x000000E8 + .data start:0x00000000 end:0x000000D8 REL/mentDll/main.c: .text start:0x0000658C end:0x00023A38 .rodata start:0x000000E8 end:0x00000528 - .data start:0x00000000 end:0x000006D0 + .data start:0x000000D8 end:0x000006D0 .bss start:0x00000000 end:0x000036C4 diff --git a/include/REL/mentDll.h b/include/REL/mentDll.h index 9167ed8e..623bdc08 100644 --- a/include/REL/mentDll.h +++ b/include/REL/mentDll.h @@ -2,27 +2,21 @@ #define MENTDLL_H #include "game/object.h" +extern s32 lbl_1_data_0[][4]; +//the prev and current struct member might be vice versa typedef struct MentDllUnkBss64Struct { - /* 0x00 */ s16 unk00; - /* 0x02 */ s16 unk02; - /* 0x04 */ s32 unk04; - /* 0x08 */ float unk_08; - /* 0x0C */ float unk_0C; - /* 0x10 */ float unk_10; - /* 0x14 */ s32 unk14; - /* 0x18 */ s32 unk18; - /* 0x1C */ s32 unk1C; - /* 0x20 */ float unk_20; - /* 0x24 */ float unk_24; - /* 0x28 */ float unk_28; - /* 0x2C */ s32 unk2C; - /* 0x30 */ s32 unk30; - /* 0x34 */ s32 unk34; - /* 0x38 */ float unk_38; - /* 0x3C */ s32 unk3C; + /* 0x00 */ void (*func)(void); + /* 0x04 */ void (*func2)(f32 arg9); + /* 0x08 */ Vec center; + /* 0x14 */ Vec prevCenter; + /* 0x20 */ Vec rot; + /* 0x2C */ Vec prevRot; + /* 0x38 */ float zoom; + /* 0x3C */ f32 prevZoom; /* 0x40 */ s32 unk_40; } MentDllUnkBss64Struct; /* size = 0x44 */ +extern MentDllUnkBss64Struct lbl_1_bss_64; float fn_1_20C(float arg8, float arg9, float argA, float argB); float fn_1_234(float arg8, float arg9, float argA); @@ -36,22 +30,22 @@ void fn_1_5E8(s32 arg0); void fn_1_6D0(void); s32 fn_1_1434(s32 arg0, s32 arg1, s32 arg2); void fn_1_16AC(s32 arg0); -void fn_1_1968(s32 arg0, u32 arg1, s32 arg2, s32 arg3); -s32 fn_1_1A5C(u32 arg0, s32 arg1, s32 arg2); -s32 fn_1_1DD8(u32 arg0, s32 arg1, s32 arg2); -s32 fn_1_2154(u32 arg0); +void fn_1_1968(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +s32 fn_1_1A5C(s32 arg0, s32 arg1, s32 arg2); +s32 fn_1_1DD8(s32 arg0, s32 arg1, s32 arg2); +s32 fn_1_2154(s32 arg0); void fn_1_2318(s32 arg0); -void fn_1_2808(void *arg0); -void fn_1_2844(Process *arg0, void *arg1); -void fn_1_4138(MentDllUnkBss64Struct *arg0, float *arg1, float arg8, float arg9, float argA); -void fn_1_5150(void *arg0, void *arg1, float arg8, float arg9, float argA); +void fn_1_2808(void (*arg0)(void)); +void fn_1_2844(Process* arg0, void (*arg1)(void)); +void fn_1_29A0(MentDllUnkBss64Struct* arg0); +void fn_1_4138(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9, f32 argA); +void fn_1_5150(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9, f32 argA); void fn_1_5818(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); void fn_1_59A0(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); void fn_1_5C08(omObjData *arg0); void fn_1_5CDC(omObjData *arg0, s32 arg1, s32 arg2); void fn_1_5D38(omObjData *arg0, s32 arg1, Vec arg2, float arg8, float arg9, float argA, s32 arg3, s32 arg4); void fn_1_6534(s32, s32, float, float); - void fn_1_658C(Process *arg0); #endif diff --git a/src/REL/mentDll/common.c b/src/REL/mentDll/common.c index 4de4b585..d98adb7c 100644 --- a/src/REL/mentDll/common.c +++ b/src/REL/mentDll/common.c @@ -7,16 +7,36 @@ #include "game/objsub.h" #include "game/wipe.h" #include "game/board/tutorial.h" +#include "game/pad.h" +#include "REL/mentDll.h" +#include "game/printfunc.h" +#include "game/hsfmotion.h" Process* lbl_1_bss_0; - //TODO: unknown type extern s32 lbl_1_bss_A8[]; +s32 lbl_1_data_0[][4] = { + { 0x00000037, 0x00000038, 0x00000036, 0x00000039 }, + { 0x00000043, 0x00000045, 0x00000044, 0x00000043 }, + { 0x00000040, 0x00000042, 0x00000041, 0x00000040 }, + { 0x0000004B, 0x0000004D, 0x0000004C, 0x0000004B }, + { 0x00000046, 0x00000048, 0x00000047, 0x00000046 }, + { 0x0000003E, 0x0000003F, 0x0000003E, 0x0000003E }, + { 0x0000003A, 0x0000003B, 0x0000003C, 0xFFFFFFFF }, +}; + +s32 lbl_1_data_70 = -1; + +// char lbl_1_data_74[] = ">>>>>>>>>> CAMERA DATA <<<<<<<<<<"; +// char lbl_1_data_96[] = "CENTER : %.2f, %.2f, %.2f"; +// char lbl_1_data_B0[] = "ROT : %.2f, %.2f, %.2f"; +// char lbl_1_data_CA[] = "ZOOM : %.2f"; + extern s32 _prolog(); extern void _epilog(); void fn_1_144(void); - +void fn_1_2318(s32); typedef void (*VoidFunc)(void); extern const VoidFunc _ctors[]; extern const VoidFunc _dtors[]; @@ -75,14 +95,16 @@ f32 fn_1_234(f32 arg8, f32 arg9, f32 argA) { return (arg9 + (arg8 * (argA - 1.0f))) / argA; } -f32 fn_1_254(f32 arg8, f32 arg9, f32 argA, f32 argB) { +//fn_1_254 +f32 CosineEaseInOut(f32 arg8, f32 arg9, f32 argA, f32 argB) { if (argA >= argB) { return arg9; } return (arg8 + ((arg9 - arg8) * (1.0 - cos((M_PI * ((90.0f / argB) * argA)) / 180.0)))); } -f32 fn_1_32C(f32 arg8, f32 arg9, f32 argA, f32 argB) { +//fn_1_32C +f32 SinusoidalInterpolation(f32 arg8, f32 arg9, f32 argA, f32 argB) { if (argA >= argB) { return arg9; } @@ -270,7 +292,7 @@ s32 fn_1_113C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, f32 arg8, f32 arg9, s32 ar return temp_r30; } -s32 fn_1_1434(s32 arg0) { +s32 fn_1_1434(s32 arg0, s32 arg1, s32 arg2) { return fn_1_113C(arg0, 0, 0x15, 2, 0.5f, 0.5f, 2, 0, 0); } @@ -393,7 +415,7 @@ void fn_1_1968(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { } } -s32 fn_1_1A5C(s32 arg0, s32 arg1) { +s32 fn_1_1A5C(s32 arg0, s32 arg1, s32 arg2) { s32 var_r28; s32 var_r25 = 0; @@ -402,4 +424,399 @@ s32 fn_1_1A5C(s32 arg0, s32 arg1) { var_r25 = fn_1_18D8(var_r28, 0); fn_1_164C(var_r28, 0.5f, 0.5f); return var_r25; +} + +s32 fn_1_1DD8(s32 arg0, s32 arg1, s32 arg2) { + s32 var_r28; + s32 var_r25 = 0; + + var_r28 = fn_1_113C(0, 0, 0, 0, 0.5f, 0.5f, arg1, 0, arg0); + HuWinMesSet(var_r28, arg0); + var_r25 = fn_1_18D8(var_r28, 1); + fn_1_164C(var_r28, 0.5f, 0.5f); + return var_r25; +} + +s32 fn_1_2154(s32 arg0) { + f32 sp8[2]; + f32 temp_f29; + f32 temp_f28; + s32 ret; + f32 sizeX; + f32 sizeY; + + HuWinMesMaxSizeGet(1, sp8, arg0); + sizeX = sp8[0]; + sizeY = sp8[1]; + temp_f29 = (576.0f - sizeX) / 2; + temp_f28 = 385.0f - sizeY; + if (lbl_1_data_70 == -1) { + lbl_1_data_70 = ret = HuWinExCreateStyled(temp_f29, temp_f28, sizeX, sizeY, -1, 1); + } else { + fn_1_2318(0); + lbl_1_data_70 = ret = HuWinExCreateStyled(temp_f29, temp_f28, sizeX, sizeY, -1, 1); + } + HuWinBGTPLvlSet(lbl_1_data_70, 0.0f); + HuWinMesSet(lbl_1_data_70, arg0); + HuWinMesSpeedSet(lbl_1_data_70, 0); + HuWinDispOn(lbl_1_data_70); + return lbl_1_data_70; +} + +void fn_1_2318(s32 arg0) { + if (lbl_1_data_70 != -1) { + HuWinExCleanup(lbl_1_data_70); + lbl_1_data_70 = -1; + } +} + +void fn_1_236C(f32 arg9) { + MentDllUnkBss64Struct* temp = &lbl_1_bss_64; + + if ((HuPadBtn[0] & 0x200)) { + if ((HuPadBtn[0] & 0x20)) { + temp->center.z = temp->center.z - (HuPadStkY[0] / 10.0f); + } else { + temp->center.x += HuPadStkX[0] / 10.0f; + temp->center.y = temp->center.y + (HuPadStkY[0] / 10.0f); + } + } + if ((HuPadBtn[0] & 0x800)) { + temp->rot.x -= HuPadStkY[0] / 100.0f; + temp->rot.y = temp->rot.y + (HuPadStkX[0] / 100.0f); + if (temp->rot.x < 0.0f) { + temp->rot.x += 360.0f; + } + + if (temp->rot.x >= 360.0f) { + temp->rot.x -= 360.0f; + } + if (temp->rot.y < 0.0f) { + temp->rot.y += 360.0f; + } + if (temp->rot.y >= 360.0f) { + temp->rot.y -= 360.0f; + } + } + if ((HuPadBtn[0] & 0x400)) { + temp->zoom = temp->zoom - (HuPadStkY[0] / 10.0f); + } + print8(0x18, 0x28, 1.0f, ">>>>>>>>>> CAMERA DATA <<<<<<<<<<"); + print8(0x18, 0x32, 1.0f, "CENTER : %.2f, %.2f, %.2f", temp->center.x, temp->center.y, temp->center.z); + print8(0x18, 0x3C, 1.0f, "ROT : %.2f, %.2f, %.2f", temp->rot.x, temp->rot.y, temp->rot.z); + print8(0x18, 0x46, 1.0f, "ZOOM : %.2f", temp->zoom); +} + +void fn_1_2750(omObjData* obj) { + MentDllUnkBss64Struct* temp = &lbl_1_bss_64; + if (temp->func != NULL) { + temp->func(); + } + Center.x = temp->center.x; + Center.y = temp->center.y; + Center.z = temp->center.z; + CRot.x = temp->rot.x; + CRot.y = temp->rot.y; + CRot.z = temp->rot.z; + CZoom = temp->zoom; +} + +void fn_1_2808(void (*arg0)(void)) { + fn_1_29A0(&lbl_1_bss_64); + lbl_1_bss_64.func = arg0; +} + +void fn_1_2844(Process* arg0, void (*arg1)(void)) { + Hu3DCameraCreate(1); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 42.0f, 20.0f, 5000.0f, 1.2f); + lbl_1_bss_64.func = arg1; + lbl_1_bss_64.func2 = &fn_1_236C; + omAddObjEx(arg0, 0x7FDA, 0U, 0U, -1, omOutView); + omAddObjEx(arg0, 0x7FD9, 0U, 0U, -1, fn_1_2750); +} + +void fn_1_2964(MentDllUnkBss64Struct* arg0) { + arg0->center.x = arg0->prevCenter.x; + arg0->center.y = arg0->prevCenter.y; + arg0->center.z = arg0->prevCenter.z; + arg0->rot.x = arg0->prevRot.x; + arg0->rot.y = arg0->prevRot.y; + arg0->rot.z = arg0->prevRot.z; + arg0->zoom = arg0->prevZoom; +} + +void fn_1_29A0(MentDllUnkBss64Struct* arg0) { + arg0->unk_40 = 0.0f; + arg0->prevCenter.x = arg0->center.x; + arg0->prevCenter.y = arg0->center.y; + arg0->prevCenter.z = arg0->center.z; + arg0->prevRot.x = arg0->rot.x; + arg0->prevRot.y = arg0->rot.y; + arg0->prevRot.z = arg0->rot.z; + arg0->prevZoom = arg0->zoom; +} + +static inline f32 SmoothInterpolate(f32 arg0, f32 arg1, f32 arg2) { + return (arg1 + arg0 * (arg2 - 1.0f)) / arg2; +} + +void fn_1_29E4(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8) { + arg0->center.x = SmoothInterpolate(arg0->center.x, arg1->prevCenter.x, arg8); + arg0->center.y = SmoothInterpolate(arg0->center.y, arg1->prevCenter.y, arg8); + arg0->center.z = SmoothInterpolate(arg0->center.z, arg1->prevCenter.z, arg8); + arg0->rot.x = SmoothInterpolate(arg0->rot.x, arg1->prevRot.x, arg8); + arg0->rot.y = SmoothInterpolate(arg0->rot.y, arg1->prevRot.y, arg8); + arg0->rot.z = SmoothInterpolate(arg0->rot.z, arg1->prevRot.z, arg8); + arg0->zoom = SmoothInterpolate(arg0->zoom, arg1->prevZoom, arg8); +} + +void fn_1_2C50(MentDllUnkBss64Struct* arg0, f32 arg8) { + arg0->center.x = SmoothInterpolate(arg0->center.x, arg0->prevCenter.x, arg8); + arg0->center.y = SmoothInterpolate(arg0->center.y, arg0->prevCenter.y, arg8); + arg0->center.z = SmoothInterpolate(arg0->center.z, arg0->prevCenter.z, arg8); + arg0->rot.x = SmoothInterpolate(arg0->rot.x, arg0->prevRot.x, arg8); + arg0->rot.y = SmoothInterpolate(arg0->rot.y, arg0->prevRot.y, arg8); + arg0->rot.z = SmoothInterpolate(arg0->rot.z, arg0->prevRot.z, arg8); + arg0->zoom = SmoothInterpolate(arg0->zoom, arg0->prevZoom, arg8); +} + +inline f32 LinearInterpolation(f32 arg0, f32 arg1, f32 arg8, f32 arg9) { + if (arg9 <= arg8) { + return arg1; + } else { + return arg0 + ((arg8 / arg9) * (arg1 - arg0)); + } +} + +void fn_1_2EBC(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9) { + arg1->prevCenter.x = LinearInterpolation(arg0->prevCenter.x, arg1->center.x, arg8, arg9); + arg1->prevCenter.y = LinearInterpolation(arg0->prevCenter.y, arg1->center.y, arg8, arg9); + arg1->prevCenter.z = LinearInterpolation(arg0->prevCenter.z, arg1->center.z, arg8, arg9); + + arg1->prevRot.x = LinearInterpolation(arg0->prevRot.x, arg1->rot.x, arg8, arg9); + arg1->prevRot.y = LinearInterpolation(arg0->prevRot.y, arg1->rot.y, arg8, arg9); + arg1->prevRot.z = LinearInterpolation(arg0->prevRot.z, arg1->rot.z, arg8, arg9); + + arg1->prevZoom = LinearInterpolation(arg0->prevZoom, arg1->zoom, arg8, arg9); +} + +void fn_1_3138(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9) { + arg1->prevCenter.x = LinearInterpolation(arg0->prevCenter.x, arg1->center.x, arg8, arg9); + arg1->prevCenter.y = LinearInterpolation(arg0->prevCenter.y, arg1->center.y, arg8, arg9); + arg1->prevCenter.z = LinearInterpolation(arg0->prevCenter.z, arg1->center.z, arg8, arg9); + + arg1->prevRot.x = LinearInterpolation(arg0->prevRot.x, arg1->rot.x, arg8, arg9); + arg1->prevRot.y = LinearInterpolation(arg0->prevRot.y, arg1->rot.y, arg8, arg9); + arg1->prevRot.z = LinearInterpolation(arg0->prevRot.z, arg1->rot.z, arg8, arg9); + + arg1->prevZoom = LinearInterpolation(arg0->prevZoom, arg1->zoom, arg8, arg9); + + arg0->center.x = arg1->prevCenter.x; + arg0->center.y = arg1->prevCenter.y; + arg0->center.z = arg1->prevCenter.z; + arg0->rot.x = arg1->prevRot.x; + arg0->rot.y = arg1->prevRot.y; + arg0->rot.z = arg1->prevRot.z; + arg0->zoom = arg1->prevZoom; +} + +void fn_1_33EC(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9, f32 argA) { + arg1->prevCenter.x = LinearInterpolation(arg0->prevCenter.x, arg1->center.x, arg8, arg9); + arg1->prevCenter.y = LinearInterpolation(arg0->prevCenter.y, arg1->center.y, arg8, arg9); + arg1->prevCenter.z = LinearInterpolation(arg0->prevCenter.z, arg1->center.z, arg8, arg9); + + arg1->prevRot.x = LinearInterpolation(arg0->prevRot.x, arg1->rot.x, arg8, arg9); + arg1->prevRot.y = LinearInterpolation(arg0->prevRot.y, arg1->rot.y, arg8, arg9); + arg1->prevRot.z = LinearInterpolation(arg0->prevRot.z, arg1->rot.z, arg8, arg9); + + arg1->prevZoom = LinearInterpolation(arg0->prevZoom, arg1->zoom, arg8, arg9); + + arg0->center.x = SmoothInterpolate(arg0->center.x, arg1->prevCenter.x, argA); + arg0->center.y = SmoothInterpolate(arg0->center.y, arg1->prevCenter.y, argA); + arg0->center.z = SmoothInterpolate(arg0->center.z, arg1->prevCenter.z, argA); + + arg0->rot.x = SmoothInterpolate(arg0->rot.x, arg1->prevRot.x, argA); + arg0->rot.y = SmoothInterpolate(arg0->rot.y, arg1->prevRot.y, argA); + arg0->rot.z = SmoothInterpolate(arg0->rot.z, arg1->prevRot.z, argA); + + arg0->zoom = SmoothInterpolate(arg0->zoom, arg1->prevZoom, argA); +} + +void fn_1_3858(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9) { + arg1->prevCenter.x = SinusoidalInterpolation(arg0->prevCenter.x, arg1->center.x, arg8, arg9); + arg1->prevCenter.y = SinusoidalInterpolation(arg0->prevCenter.y, arg1->center.y, arg8, arg9); + arg1->prevCenter.z = SinusoidalInterpolation(arg0->prevCenter.z, arg1->center.z, arg8, arg9); + + arg1->prevRot.x = SinusoidalInterpolation(arg0->prevRot.x, arg1->rot.x, arg8, arg9); + arg1->prevRot.y = SinusoidalInterpolation(arg0->prevRot.y, arg1->rot.y, arg8, arg9); + arg1->prevRot.z = SinusoidalInterpolation(arg0->prevRot.z, arg1->rot.z, arg8, arg9); + + arg1->prevZoom = SinusoidalInterpolation(arg0->prevZoom, arg1->zoom, arg8, arg9); +} + +void fn_1_3CAC(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9) { + arg1->prevCenter.x = SinusoidalInterpolation(arg0->prevCenter.x, arg1->center.x, arg8, arg9); + arg1->prevCenter.y = SinusoidalInterpolation(arg0->prevCenter.y, arg1->center.y, arg8, arg9); + arg1->prevCenter.z = SinusoidalInterpolation(arg0->prevCenter.z, arg1->center.z, arg8, arg9); + + arg1->prevRot.x = SinusoidalInterpolation(arg0->prevRot.x, arg1->rot.x, arg8, arg9); + arg1->prevRot.y = SinusoidalInterpolation(arg0->prevRot.y, arg1->rot.y, arg8, arg9); + arg1->prevRot.z = SinusoidalInterpolation(arg0->prevRot.z, arg1->rot.z, arg8, arg9); + + arg1->prevZoom = SinusoidalInterpolation(arg0->prevZoom, arg1->zoom, arg8, arg9); + + arg0->center.x = arg1->prevCenter.x; + arg0->center.y = arg1->prevCenter.y; + arg0->center.z = arg1->prevCenter.z; + + arg0->rot.x = arg1->prevRot.x; + arg0->rot.y = arg1->prevRot.y; + arg0->rot.z = arg1->prevRot.z; + + arg0->zoom = arg1->prevZoom; +} + +void fn_1_4138(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9, f32 argA) { + arg1->prevCenter.x = SinusoidalInterpolation(arg0->prevCenter.x, arg1->center.x, arg8, arg9); + arg1->prevCenter.y = SinusoidalInterpolation(arg0->prevCenter.y, arg1->center.y, arg8, arg9); + arg1->prevCenter.z = SinusoidalInterpolation(arg0->prevCenter.z, arg1->center.z, arg8, arg9); + + arg1->prevRot.x = SinusoidalInterpolation(arg0->prevRot.x, arg1->rot.x, arg8, arg9); + arg1->prevRot.y = SinusoidalInterpolation(arg0->prevRot.y, arg1->rot.y, arg8, arg9); + arg1->prevRot.z = SinusoidalInterpolation(arg0->prevRot.z, arg1->rot.z, arg8, arg9); + + arg1->prevZoom = SinusoidalInterpolation(arg0->prevZoom, arg1->zoom, arg8, arg9); + + arg0->center.x = SmoothInterpolate(arg0->center.x, arg1->prevCenter.x, argA); + arg0->center.y = SmoothInterpolate(arg0->center.y, arg1->prevCenter.y, argA); + arg0->center.z = SmoothInterpolate(arg0->center.z, arg1->prevCenter.z, argA); + + arg0->rot.x = SmoothInterpolate(arg0->rot.x, arg1->prevRot.x, argA); + arg0->rot.y = SmoothInterpolate(arg0->rot.y, arg1->prevRot.y, argA); + arg0->rot.z = SmoothInterpolate(arg0->rot.z, arg1->prevRot.z, argA); + + arg0->zoom = SmoothInterpolate(arg0->zoom, arg1->prevZoom, argA); +} + +void fn_1_4790(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9) { + arg1->prevCenter.x = CosineEaseInOut(arg0->prevCenter.x, arg1->center.x, arg8, arg9); + arg1->prevCenter.y = CosineEaseInOut(arg0->prevCenter.y, arg1->center.y, arg8, arg9); + arg1->prevCenter.z = CosineEaseInOut(arg0->prevCenter.z, arg1->center.z, arg8, arg9); + + arg1->prevRot.x = CosineEaseInOut(arg0->prevRot.x, arg1->rot.x, arg8, arg9); + arg1->prevRot.y = CosineEaseInOut(arg0->prevRot.y, arg1->rot.y, arg8, arg9); + arg1->prevRot.z = CosineEaseInOut(arg0->prevRot.z, arg1->rot.z, arg8, arg9); + + arg1->prevZoom = CosineEaseInOut(arg0->prevZoom, arg1->zoom, arg8, arg9); +} + +void fn_1_4C54(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9) { + arg1->prevCenter.x = CosineEaseInOut(arg0->prevCenter.x, arg1->center.x, arg8, arg9); + arg1->prevCenter.y = CosineEaseInOut(arg0->prevCenter.y, arg1->center.y, arg8, arg9); + arg1->prevCenter.z = CosineEaseInOut(arg0->prevCenter.z, arg1->center.z, arg8, arg9); + + arg1->prevRot.x = CosineEaseInOut(arg0->prevRot.x, arg1->rot.x, arg8, arg9); + arg1->prevRot.y = CosineEaseInOut(arg0->prevRot.y, arg1->rot.y, arg8, arg9); + arg1->prevRot.z = CosineEaseInOut(arg0->prevRot.z, arg1->rot.z, arg8, arg9); + + arg1->prevZoom = CosineEaseInOut(arg0->prevZoom, arg1->zoom, arg8, arg9); + + arg0->center.x = arg1->prevCenter.x; + arg0->center.y = arg1->prevCenter.y; + arg0->center.z = arg1->prevCenter.z; + + arg0->rot.x = arg1->prevRot.x; + arg0->rot.y = arg1->prevRot.y; + arg0->rot.z = arg1->prevRot.z; + + arg0->zoom = arg1->prevZoom; +} + +void fn_1_5150(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9, f32 argA) { + arg1->prevCenter.x = CosineEaseInOut(arg0->prevCenter.x, arg1->center.x, arg8, arg9); + arg1->prevCenter.y = CosineEaseInOut(arg0->prevCenter.y, arg1->center.y, arg8, arg9); + arg1->prevCenter.z = CosineEaseInOut(arg0->prevCenter.z, arg1->center.z, arg8, arg9); + + arg1->prevRot.x = CosineEaseInOut(arg0->prevRot.x, arg1->rot.x, arg8, arg9); + arg1->prevRot.y = CosineEaseInOut(arg0->prevRot.y, arg1->rot.y, arg8, arg9); + arg1->prevRot.z = CosineEaseInOut(arg0->prevRot.z, arg1->rot.z, arg8, arg9); + + arg1->prevZoom = CosineEaseInOut(arg0->prevZoom, arg1->zoom, arg8, arg9); + + arg0->center.x = SmoothInterpolate(arg0->center.x, arg1->prevCenter.x, argA); + arg0->center.y = SmoothInterpolate(arg0->center.y, arg1->prevCenter.y, argA); + arg0->center.z = SmoothInterpolate(arg0->center.z, arg1->prevCenter.z, argA); + + arg0->rot.x = SmoothInterpolate(arg0->rot.x, arg1->prevRot.x, argA); + arg0->rot.y = SmoothInterpolate(arg0->rot.y, arg1->prevRot.y, argA); + arg0->rot.z = SmoothInterpolate(arg0->rot.z, arg1->prevRot.z, argA); + + arg0->zoom = SmoothInterpolate(arg0->zoom, arg1->prevZoom, argA); +} + +void fn_1_5818(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + switch (arg4) { + case 0: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0); + break; + case 1: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000001); + break; + case 2: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000002); + break; + } + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; +} + +void fn_1_59A0(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg0->work[3] != arg0->motion[arg2]) { + arg0->work[3] = arg0->motion[arg2]; + switch (arg4) { + case 0: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0); + break; + case 1: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000001); + break; + case 2: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000002); + break; + } + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + } +} + +void fn_1_5B50(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3) { + (void)arg1; + Hu3DMotionShiftSet(arg0->model[1], arg0->motion[arg1], 0.0f, arg3, 0); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + arg0->work[0] = 1; + arg0->work[1] = arg2; + arg0->work[2] = arg3 + 1; +} + +void fn_1_5C08(omObjData* arg0) { + s32 temp; + + if (arg0->work[0] != 0) { + if (arg0->work[2] != 0) { + arg0->work[2] -= 1; + return; + } + if ((arg0->work[2] == 0) && (Hu3DMotionEndCheck(arg0->model[1]) != 0)) { + temp = arg0->work[1]; + Hu3DMotionShiftSet(arg0->model[1], arg0->motion[temp], 0.0f, 15.0f, 0x40000001); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + } + } +} + +void fn_1_5CDC(omObjData* arg0, s32 arg1, s32 arg2) { + HuPrcSleep(arg2 + 1); + do { + HuPrcVSleep(); + } while (Hu3DMotionEndCheck(arg0->model[arg1]) == 0); } \ No newline at end of file diff --git a/src/REL/mentDll/main.c b/src/REL/mentDll/main.c index 81ee860b..b415f268 100644 --- a/src/REL/mentDll/main.c +++ b/src/REL/mentDll/main.c @@ -13,7 +13,6 @@ #include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" - #include "REL/mentDll.h" typedef struct MentDllUnkBssE4Struct { @@ -156,23 +155,6 @@ void fn_1_C174(s32 arg0); void fn_1_E654(s32 arg0); void fn_1_E71C(s32 arg0); -s32 lbl_1_data_0[][4] = { - { 0x00000037, 0x00000038, 0x00000036, 0x00000039 }, - { 0x00000043, 0x00000045, 0x00000044, 0x00000043 }, - { 0x00000040, 0x00000042, 0x00000041, 0x00000040 }, - { 0x0000004B, 0x0000004D, 0x0000004C, 0x0000004B }, - { 0x00000046, 0x00000048, 0x00000047, 0x00000046 }, - { 0x0000003E, 0x0000003F, 0x0000003E, 0x0000003E }, - { 0x0000003A, 0x0000003B, 0x0000003C, 0xFFFFFFFF }, -}; - -s32 lbl_1_data_70 = -1; - -char lbl_1_data_74[] = ">>>>>>>>>> CAMERA DATA <<<<<<<<<<"; -char lbl_1_data_96[] = "CENTER : %.2f, %.2f, %.2f"; -char lbl_1_data_B0[] = "ROT : %.2f, %.2f, %.2f"; -char lbl_1_data_CA[] = "ZOOM : %.2f"; - Vec lbl_1_data_D8[6] = { { 0.0f, 0.0f, 460.0f }, { -240.0f, 0.0f, 460.0f }, @@ -315,7 +297,7 @@ void fn_1_6C4C(void) s32 var_r28 = 0; { GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; - while (TRUE) { + while (1) { fn_1_4D8(); if (HuPadBtnDown[0] & PAD_TRIGGER_R) { var_r28++; @@ -452,7 +434,7 @@ void fn_1_7218(void) } lbl_1_bss_D8 = 1; HuPrcEnd(); - while (TRUE) { + while (1) { HuPrcVSleep(); } } @@ -520,7 +502,7 @@ void fn_1_7684(void) CharARAMOpen(GWPlayerCfg[2].character); CharARAMOpen(GWPlayerCfg[3].character); omOvlCallEx(spC[GWSystem.board], 1, 0, 0); - while (TRUE) { + while (1) { fn_1_4D8(); } } @@ -558,18 +540,18 @@ void fn_1_7858(void) void fn_1_7900(void) { - float sp8[18]; + MentDllUnkBss64Struct sp8; MentDllUnkBss64Struct *var_r31; var_r31 = &lbl_1_bss_64; - sp8[2] = lbl_1_bss_DC; - sp8[3] = 60.0f; - sp8[4] = 0.0f; - sp8[8] = 0.0f; - sp8[9] = 0.0f; - sp8[10] = 0.0f; - sp8[14] = 850.0f; - fn_1_4138(var_r31, sp8, var_r31->unk_40++, 10.0f, 5.0f); + sp8.center.x = lbl_1_bss_DC; + sp8.center.y = 60.0f; + sp8.center.z = 0.0f; + sp8.rot.x = 0.0f; + sp8.rot.y = 0.0f; + sp8.rot.z = 0.0f; + sp8.zoom = 850.0f; + fn_1_4138(var_r31, &sp8, var_r31->unk_40++, 10.0f, 5.0f); } s32 lbl_1_data_2F0 = -1; @@ -783,7 +765,7 @@ void fn_1_85C8(void) saveExecF = 0; if (GWGameStat.party_continue == 1) { var_r31 = fn_1_1434(0, 0, 0); - while (TRUE) { + while (1) { fn_1_4D8(); fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); fn_1_1968(var_r31, 0x1A0001, -1, 5); @@ -887,7 +869,7 @@ s32 fn_1_8B68(void) } var_r27 = fn_1_1434(0, 0, 0); HuAudFXPlay(lbl_1_data_0[var_r28][2]); - while (TRUE) { + while (1) { fn_1_4D8(); fn_1_4D8(); fn_1_5818(lbl_1_bss_33AC[var_r28].unk_00, 1, 4, 0xF, 1); @@ -898,7 +880,7 @@ s32 fn_1_8B68(void) lbl_1_bss_35BC[0].unk_04 = (MentDllUnkFunc)fn_1_1FF4C; var_r25 = 0x63; var_r23 = 0; - while (TRUE) { + while (1) { fn_1_4D8(); var_r30 = 0; for (var_r31 = 0; var_r31 < 4; var_r31++) { @@ -1021,7 +1003,7 @@ s32 fn_1_8FB8(void) lbl_1_bss_3114[var_r31].unk_04 = (MentDllUnkFunc)fn_1_15CB4; } } - while (TRUE) { + while (1) { fn_1_4D8(); for (var_r31 = 0; var_r31 < 4; var_r31++) { if ((lbl_1_bss_3114[var_r31].unk_60 == 0) && (HuPadBtnDown[lbl_1_bss_3114[var_r31].unk_6C] & PAD_BUTTON_A)) { @@ -1813,7 +1795,7 @@ void fn_1_B654(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) case 0: var_r30 = 1; fn_1_14CE0(); - while (TRUE) { + while (1) { fn_1_4D8(); switch (var_r29) { case 1: @@ -1974,7 +1956,7 @@ void fn_1_C174(s32 arg0) omOvlCallEx(spC[GWSystem.board], 1, 0, 0); break; } - while (TRUE) { + while (1) { fn_1_4D8(); } } @@ -2027,7 +2009,7 @@ void fn_1_C4B8(void) return; } var_r31 = fn_1_1434(0, 0, 0); - while (TRUE) { + while (1) { fn_1_4D8(); fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); fn_1_1968(var_r31, 0x1E0001, -1, 5); @@ -2108,7 +2090,7 @@ void fn_1_C4B8(void) } } } - while (TRUE) { + while (1) { fn_1_4D8(); } } @@ -2176,14 +2158,14 @@ s32 fn_1_CD8C(void) sp8 = 0; fn_1_1CF68(); var_r31 = fn_1_1434(0, 0, 0); - while (TRUE) { + while (1) { fn_1_4D8(); fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); fn_1_1968(var_r31, 0x1E005E, -1, -1); fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); fn_1_2154(0x1A0020); lbl_1_bss_3114->unk_04 = (MentDllUnkFunc)fn_1_1E404; - while (TRUE) { + while (1) { if (lbl_1_bss_3114->unk_70[0] == 1) { var_r30 = 1; break; @@ -2230,7 +2212,7 @@ s32 fn_1_CF8C(void) var_r28 = -1; var_r27 = -1; var_r31 = fn_1_1434(0, 0, 0); - while (TRUE) { + while (1) { fn_1_4D8(); fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 4, 0xF, 1); fn_1_1968(var_r31, 0x1E0009, -1, -1); @@ -2239,7 +2221,7 @@ s32 fn_1_CF8C(void) lbl_1_bss_35BC[1].unk_08[1] = 0; fn_1_1DED8(); lbl_1_bss_35BC[0].unk_04 = (MentDllUnkFunc)fn_1_1E8A4; - while (TRUE) { + while (1) { fn_1_4D8(); if ((var_r28 != lbl_1_bss_35BC[0].unk_08[0]) || (var_r27 != lbl_1_bss_35BC[0].unk_1C[lbl_1_bss_35BC[0].unk_08[0] - 1])) { var_r28 = lbl_1_bss_35BC[0].unk_08[0]; @@ -2679,7 +2661,7 @@ void fn_1_E71C(s32 arg0) HuAudSeqAllFadeOut(0x3E8); HuAudSStreamAllFadeOut(0x3E8); omOvlCallEx(spC[GWSystem.board], 1, 0, 0); - while (TRUE) { + while (1) { fn_1_4D8(); } } @@ -2855,7 +2837,7 @@ void fn_1_1053C(void) HuAudFXAllStop(); HuAudSStreamAllStop(); omOvlGotoEx(OVL_OPTION, 1, 0, 0); - while (TRUE) { + while (1) { fn_1_4D8(); } } @@ -2913,7 +2895,7 @@ void fn_1_10C5C(void) HuAudFXAllStop(); HuAudSStreamAllStop(); omOvlGotoEx(OVL_PRESENT, 1, 0, 0); - while (TRUE) { + while (1) { fn_1_4D8(); } } @@ -2988,7 +2970,7 @@ void fn_1_114A0(void) MGSeqKillAll(); HuAudFadeOut(1); omOvlReturnEx(1, 1); - while (TRUE) { + while (1) { fn_1_4D8(); } } @@ -3033,7 +3015,7 @@ void fn_1_116F4(void) lbl_1_bss_366C.unk_04 = (MentDllUnkFunc)fn_1_FEAC; break; } - while (TRUE) { + while (1) { fn_1_4D8(); if (lbl_1_bss_366C.unk_04 == NULL) { continue; @@ -3208,7 +3190,7 @@ void fn_1_121D8(void) fn_1_18788(lbl_1_bss_35BC, 0, 0, 0); } } - while (TRUE) { + while (1) { fn_1_4D8(); if (lbl_1_bss_35BC[var_r30].unk_04 == NULL) { continue; @@ -3343,7 +3325,7 @@ void fn_1_12E40(void) lbl_1_bss_33AC[var_r30].unk_04 = NULL; lbl_1_bss_33AC[var_r30].unk_30 = var_r30; fn_1_12A0C(var_r31, var_r30); - while (TRUE) { + while (1) { fn_1_4D8(); if (lbl_1_bss_33AC[var_r30].unk_04 != NULL) { lbl_1_bss_33AC[var_r30].unk_04(var_r31, &lbl_1_bss_33AC[var_r30]); @@ -3376,7 +3358,7 @@ void fn_1_134A8(void) lbl_1_bss_3354.unk_00 = var_r31; lbl_1_bss_3354.unk_04 = NULL; fn_1_13348(var_r31); - while (TRUE) { + while (1) { fn_1_4D8(); if (lbl_1_bss_3354.unk_04 != NULL) { lbl_1_bss_3354.unk_04(var_r31, &lbl_1_bss_3354); @@ -3461,7 +3443,7 @@ void fn_1_13970(void) else { fn_1_1368C(var_r27, var_r26); } - while (TRUE) { + while (1) { fn_1_4D8(); if (lbl_1_bss_3114[var_r26].unk_04 == NULL) { continue; @@ -3475,29 +3457,29 @@ void fn_1_13D60(void) MentDllUnkBss64Struct *var_r31; var_r31 = &lbl_1_bss_64; - var_r31->unk_08 = 0.0f; - var_r31->unk_0C = 0.0f; - var_r31->unk_10 = 0.0f; - var_r31->unk_20 = -10.0f; - var_r31->unk_24 = 0.0f; - var_r31->unk_28 = 0.0f; - var_r31->unk_38 = 2900.0f; + var_r31->center.x = 0.0f; + var_r31->center.y = 0.0f; + var_r31->center.z = 0.0f; + var_r31->rot.x = -10.0f; + var_r31->rot.y = 0.0f; + var_r31->rot.z = 0.0f; + var_r31->zoom = 2900.0f; } void fn_1_13DEC(void) { - float sp8[18]; + MentDllUnkBss64Struct sp8; MentDllUnkBss64Struct *var_r31; var_r31 = &lbl_1_bss_64; - sp8[2] = 0.0f; - sp8[3] = 0.0f; - sp8[4] = 0.0f; - sp8[8] = -10.0f; - sp8[9] = 0.0f; - sp8[10] = 0.0f; - sp8[14] = 1150.0f; - fn_1_4138(var_r31, sp8, var_r31->unk_40++, 180.0f, 15.0f); + sp8.center.x = 0.0f; + sp8.center.y = 0.0f; + sp8.center.z = 0.0f; + sp8.rot.x = -10.0f; + sp8.rot.y = 0.0f; + sp8.rot.z = 0.0f; + sp8.zoom = 1150.0f; + fn_1_4138(var_r31, &sp8, var_r31->unk_40++, 180.0f, 15.0f); } void fn_1_13EDC(void) @@ -3505,98 +3487,98 @@ void fn_1_13EDC(void) MentDllUnkBss64Struct *var_r31; var_r31 = &lbl_1_bss_64; - var_r31->unk_08 = 0.0f; - var_r31->unk_0C = 215.0f; - var_r31->unk_10 = 0.0f; - var_r31->unk_20 = 0.0f; - var_r31->unk_24 = 0.0f; - var_r31->unk_28 = 0.0f; - var_r31->unk_38 = 1600.0f; + var_r31->center.x = 0.0f; + var_r31->center.y = 215.0f; + var_r31->center.z = 0.0f; + var_r31->rot.x = 0.0f; + var_r31->rot.y = 0.0f; + var_r31->rot.z = 0.0f; + var_r31->zoom = 1600.0f; } void fn_1_13F68(void) { - float sp8[18]; + MentDllUnkBss64Struct sp8; MentDllUnkBss64Struct *var_r31; var_r31 = &lbl_1_bss_64; - sp8[2] = 0.0f; - sp8[3] = 215.0f; - sp8[4] = 0.0f; - sp8[8] = 0.0f; - sp8[9] = 0.0f; - sp8[10] = 0.0f; - sp8[14] = 1600.0f; - fn_1_4138(var_r31, sp8, var_r31->unk_40++, 60.0f, 10.0f); + sp8.center.x = 0.0f; + sp8.center.y = 215.0f; + sp8.center.z = 0.0f; + sp8.rot.x = 0.0f; + sp8.rot.y = 0.0f; + sp8.rot.z = 0.0f; + sp8.zoom = 1600.0f; + fn_1_4138(var_r31, &sp8, var_r31->unk_40++, 60.0f, 10.0f); } void fn_1_14058(void) { - float sp8[18]; + MentDllUnkBss64Struct sp8; MentDllUnkBss64Struct *var_r31; var_r31 = &lbl_1_bss_64; - sp8[2] = 0.0f; - sp8[3] = 215.0f; - sp8[4] = 0.0f; - sp8[8] = 0.0f; - sp8[9] = 0.0f; - sp8[10] = 0.0f; - sp8[14] = 1600.0f; - fn_1_4138(var_r31, sp8, var_r31->unk_40++, 10.0f, 5.0f); + sp8.center.x = 0.0f; + sp8.center.y = 215.0f; + sp8.center.z = 0.0f; + sp8.rot.x = 0.0f; + sp8.rot.y = 0.0f; + sp8.rot.z = 0.0f; + sp8.zoom = 1600.0f; + fn_1_4138(var_r31, &sp8, var_r31->unk_40++, 10.0f, 5.0f); } void fn_1_14148(void) { - float sp8[18]; + MentDllUnkBss64Struct sp8; MentDllUnkBss64Struct *var_r31; var_r31 = &lbl_1_bss_64; - sp8[2] = 1200.0f; - sp8[3] = 215.0f; - sp8[4] = 0.0f; - sp8[8] = 0.0f; - sp8[9] = 0.0f; - sp8[10] = 0.0f; - sp8[14] = 1600.0f; - fn_1_4138(var_r31, sp8, var_r31->unk_40++, 10.0f, 5.0f); + sp8.center.x = 1200.0f; + sp8.center.y = 215.0f; + sp8.center.z = 0.0f; + sp8.rot.x = 0.0f; + sp8.rot.y = 0.0f; + sp8.rot.z = 0.0f; + sp8.zoom = 1600.0f; + fn_1_4138(var_r31, &sp8, var_r31->unk_40++, 10.0f, 5.0f); } void fn_1_14238(void) { - float sp8[18]; + MentDllUnkBss64Struct sp8; MentDllUnkBss64Struct *var_r31; var_r31 = &lbl_1_bss_64; - sp8[2] = 0.0f; - sp8[3] = 125.0f; - sp8[4] = 0.0f; - sp8[8] = -5.0f; - sp8[9] = 0.0f; - sp8[10] = 0.0f; - sp8[14] = 1750.0f; - fn_1_4138(var_r31, sp8, var_r31->unk_40++, 30.0f, 10.0f); + sp8.center.x = 0.0f; + sp8.center.y = 125.0f; + sp8.center.z = 0.0f; + sp8.rot.x = -5.0f; + sp8.rot.y = 0.0f; + sp8.rot.z = 0.0f; + sp8.zoom = 1750.0f; + fn_1_4138(var_r31, &sp8, var_r31->unk_40++, 30.0f, 10.0f); } void fn_1_14328(void) { - float sp8[18]; + MentDllUnkBss64Struct sp8; MentDllUnkBss64Struct *var_r31; var_r31 = &lbl_1_bss_64; - sp8[2] = 1200.0f; - sp8[3] = 125.0f; - sp8[4] = 0.0f; - sp8[8] = -5.0f; - sp8[9] = 0.0f; - sp8[10] = 0.0f; - sp8[14] = 1750.0f; - fn_1_4138(var_r31, sp8, var_r31->unk_40++, 30.0f, 10.0f); + sp8.center.x = 1200.0f; + sp8.center.y = 125.0f; + sp8.center.z = 0.0f; + sp8.rot.x = -5.0f; + sp8.rot.y = 0.0f; + sp8.rot.z = 0.0f; + sp8.zoom = 1750.0f; + fn_1_4138(var_r31, &sp8, var_r31->unk_40++, 30.0f, 10.0f); } void fn_1_14418(void) { - float sp8[18]; + MentDllUnkBss64Struct sp8; MentDllUnkBss64Struct *var_r31; s32 var_r30; @@ -3607,19 +3589,19 @@ void fn_1_14418(void) fn_1_5818(lbl_1_bss_35BC[var_r30].unk_00, 5, 5, 0, 0); HuAudFXPlay(0x7D); } - sp8[2] = 0.0f; + sp8.center.x = 0.0f; if (var_r30 == 1) { - sp8[2] = 1200.0f; + sp8.center.x = 1200.0f; } - sp8[3] = 100.0f; - sp8[4] = 460.0f; - sp8[8] = 0.0f; - sp8[9] = 0.0f; - sp8[10] = 0.0f; - sp8[14] = 125.0f; - fn_1_4138(var_r31, sp8, var_r31->unk_40, 180.0f, 10.0f); - if (var_r31->unk_40++ >= 0x5A) { - if (var_r31->unk_40 == 0x5B) { + sp8.center.y = 100.0f; + sp8.center.z = 460.0f; + sp8.rot.x = 0.0f; + sp8.rot.y = 0.0f; + sp8.rot.z = 0.0f; + sp8.zoom = 125.0f; + fn_1_4138(var_r31, &sp8, var_r31->unk_40, 180.0f, 10.0f); + if (var_r31->unk_40++ >= 90) { + if (var_r31->unk_40 == 91) { if (var_r30 == 0) { lbl_1_bss_24[10] = HuAudFXPlay(0x22); } @@ -3627,57 +3609,57 @@ void fn_1_14418(void) lbl_1_bss_24[10] = HuAudFXPlay(0x23); } } - var_r31->unk_20 = fn_1_20C(var_r31->unk_20, -45.0f, var_r31->unk_40 - 0x5A, 90.0f); + var_r31->rot.x = fn_1_20C(var_r31->rot.x, -45.0f, var_r31->unk_40 - 0x5A, 90.0f); Hu3DData[lbl_1_bss_35BC[var_r30].unk_00->model[4]].rot.x = fn_1_20C(0.0f, 45.0f, var_r31->unk_40 - 0x5A, 90.0f); } } void fn_1_146D0(void) { - float sp8[18]; + MentDllUnkBss64Struct sp8; MentDllUnkBss64Struct *var_r31; var_r31 = &lbl_1_bss_64; - sp8[2] = 0.0f; - sp8[3] = 215.0f; - sp8[4] = 0.0f; - sp8[8] = 0.0f; - sp8[9] = 0.0f; - sp8[10] = 0.0f; - sp8[14] = 1600.0f; - fn_1_5150(var_r31, sp8, var_r31->unk_40++, 30.0f, 10.0f); + sp8.center.x = 0.0f; + sp8.center.y = 215.0f; + sp8.center.z = 0.0f; + sp8.rot.x = 0.0f; + sp8.rot.y = 0.0f; + sp8.rot.z = 0.0f; + sp8.zoom = 1600.0f; + fn_1_5150(var_r31, &sp8, var_r31->unk_40++, 30.0f, 10.0f); } void fn_1_147C0(void) { - float sp8[18]; + MentDllUnkBss64Struct sp8; MentDllUnkBss64Struct *var_r31; var_r31 = &lbl_1_bss_64; - sp8[2] = 1200.0f; - sp8[3] = 215.0f; - sp8[4] = 0.0f; - sp8[8] = 0.0f; - sp8[9] = 0.0f; - sp8[10] = 0.0f; - sp8[14] = 1600.0f; - fn_1_5150(var_r31, sp8, var_r31->unk_40++, 30.0f, 10.0f); + sp8.center.x = 1200.0f; + sp8.center.y = 215.0f; + sp8.center.z = 0.0f; + sp8.rot.x = 0.0f; + sp8.rot.y = 0.0f; + sp8.rot.z = 0.0f; + sp8.zoom = 1600.0f; + fn_1_5150(var_r31, &sp8, var_r31->unk_40++, 30.0f, 10.0f); } void fn_1_148B0(void) { - float sp8[18]; + MentDllUnkBss64Struct sp8; MentDllUnkBss64Struct *var_r31; var_r31 = &lbl_1_bss_64; - sp8[2] = 0.0f; - sp8[3] = 30.0f; - sp8[4] = 0.0f; - sp8[8] = -5.0f; - sp8[9] = 0.0f; - sp8[10] = 0.0f; - sp8[14] = 1100.0f; - fn_1_4138(var_r31, sp8, var_r31->unk_40++, 10.0f, 5.0f); + sp8.center.x = 0.0f; + sp8.center.y = 30.0f; + sp8.center.z = 0.0f; + sp8.rot.x = -5.0f; + sp8.rot.y = 0.0f; + sp8.rot.z = 0.0f; + sp8.zoom = 1100.0f; + fn_1_4138(var_r31, &sp8, var_r31->unk_40++, 10.0f, 5.0f); } void fn_1_149A0(void) @@ -3685,13 +3667,13 @@ void fn_1_149A0(void) MentDllUnkBss64Struct *var_r31; var_r31 = &lbl_1_bss_64; - var_r31->unk_08 = 0.0f; - var_r31->unk_0C = 125.0f; - var_r31->unk_10 = 0.0f; - var_r31->unk_20 = -5.0f; - var_r31->unk_24 = 0.0f; - var_r31->unk_28 = 0.0f; - var_r31->unk_38 = 1750.0f; + var_r31->center.x = 0.0f; + var_r31->center.y = 125.0f; + var_r31->center.z = 0.0f; + var_r31->rot.x = -5.0f; + var_r31->rot.y = 0.0f; + var_r31->rot.z = 0.0f; + var_r31->zoom = 1750.0f; } void fn_1_14A2C(void) @@ -3699,29 +3681,29 @@ void fn_1_14A2C(void) MentDllUnkBss64Struct *var_r31; var_r31 = &lbl_1_bss_64; - var_r31->unk_08 = 1200.0f; - var_r31->unk_0C = 125.0f; - var_r31->unk_10 = 0.0f; - var_r31->unk_20 = -5.0f; - var_r31->unk_24 = 0.0f; - var_r31->unk_28 = 0.0f; - var_r31->unk_38 = 1750.0f; + var_r31->center.x = 1200.0f; + var_r31->center.y = 125.0f; + var_r31->center.z = 0.0f; + var_r31->rot.x = -5.0f; + var_r31->rot.y = 0.0f; + var_r31->rot.z = 0.0f; + var_r31->zoom = 1750.0f; } void fn_1_14AB8(void) { - float sp8[18]; + MentDllUnkBss64Struct sp8; MentDllUnkBss64Struct *var_r31; var_r31 = &lbl_1_bss_64; - sp8[2] = 0.0f; - sp8[3] = 125.0f; - sp8[4] = 460.0f; - sp8[8] = 0.0f; - sp8[9] = 0.0f; - sp8[10] = 0.0f; - sp8[14] = 125.0f; - fn_1_5150(var_r31, sp8, var_r31->unk_40++, 120.0f, 10.0f); + sp8.center.x = 0.0f; + sp8.center.y = 125.0f; + sp8.center.z = 460.0f; + sp8.rot.x = 0.0f; + sp8.rot.y = 0.0f; + sp8.rot.z = 0.0f; + sp8.zoom = 125.0f; + fn_1_5150(var_r31, &sp8, var_r31->unk_40++, 120.0f, 10.0f); } void fn_1_14BA8(void) @@ -6249,7 +6231,7 @@ void fn_1_21134(omObjData *object) var_r29 = &lbl_1_bss_64; for (var_r31 = 1; var_r31 < 0xA; var_r31++) { - if ((var_r29->unk_38 <= 1200.0f) || (lbl_1_bss_16C4[var_r31].unk_1C == -200.0f)) { + if ((var_r29->zoom <= 1200.0f) || (lbl_1_bss_16C4[var_r31].unk_1C == -200.0f)) { if (lbl_1_bss_16C4[var_r31].unk_1C >= -100.0f) { lbl_1_bss_16C4[var_r31].unk_00 = 0; lbl_1_bss_16C4[var_r31].unk_1C = -200.0f; @@ -6270,9 +6252,9 @@ void fn_1_21134(omObjData *object) } } for (var_r31 = 0xA; var_r31 < 0x8C; var_r31++) { - if ((lbl_1_bss_16C4[var_r31].unk_24 == 0.0f) && (lbl_1_bss_16C4[var_r31].unk_14 > (var_r29->unk_38 - 400.0f)) - && (lbl_1_bss_16C4[var_r31].unk_0C < (200.0f + var_r29->unk_08)) && (lbl_1_bss_16C4[var_r31].unk_0C > (var_r29->unk_08 - 200.0f))) { - if (var_r29->unk_08 >= lbl_1_bss_16C4[var_r31].unk_0C) { + if ((lbl_1_bss_16C4[var_r31].unk_24 == 0.0f) && (lbl_1_bss_16C4[var_r31].unk_14 > (var_r29->zoom - 400.0f)) + && (lbl_1_bss_16C4[var_r31].unk_0C < (200.0f + var_r29->center.x)) && (lbl_1_bss_16C4[var_r31].unk_0C > (var_r29->center.x - 200.0f))) { + if (var_r29->center.x >= lbl_1_bss_16C4[var_r31].unk_0C) { lbl_1_bss_16C4[var_r31].unk_24 = -300.0f; } else { From 6b2f54d2c1f16f9ea8c392a4b18f16d17ca7635a Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sun, 15 Sep 2024 09:56:19 -0500 Subject: [PATCH 062/311] Finish mentdll/main.c --- config/GMPE01_00/rels/mentDll/splits.txt | 3 +- config/GMPE01_00/rels/mentDll/symbols.txt | 3 +- configure.py | 2 +- include/game/window.h | 2 - src/REL/mentDll/common.c | 216 +++++++++++++++++----- src/REL/mentDll/main.c | 2 +- 6 files changed, 177 insertions(+), 51 deletions(-) diff --git a/config/GMPE01_00/rels/mentDll/splits.txt b/config/GMPE01_00/rels/mentDll/splits.txt index a1376ff8..77b37cde 100644 --- a/config/GMPE01_00/rels/mentDll/splits.txt +++ b/config/GMPE01_00/rels/mentDll/splits.txt @@ -10,9 +10,10 @@ REL/mentDll/common.c: .text start:0x00000000 end:0x0000658C .rodata start:0x00000000 end:0x000000E8 .data start:0x00000000 end:0x000000D8 + .bss start:0x00000000 end:0x00000008 REL/mentDll/main.c: .text start:0x0000658C end:0x00023A38 .rodata start:0x000000E8 end:0x00000528 .data start:0x000000D8 end:0x000006D0 - .bss start:0x00000000 end:0x000036C4 + .bss start:0x00000008 end:0x000036C4 diff --git a/config/GMPE01_00/rels/mentDll/symbols.txt b/config/GMPE01_00/rels/mentDll/symbols.txt index cf268b30..bd1aad57 100644 --- a/config/GMPE01_00/rels/mentDll/symbols.txt +++ b/config/GMPE01_00/rels/mentDll/symbols.txt @@ -419,7 +419,8 @@ lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x20 lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x64 data:float lbl_1_data_640 = .data:0x00000640; // type:object size:0x50 data:4byte lbl_1_data_690 = .data:0x00000690; // type:object size:0x40 data:4byte -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x14 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:4byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x10 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x40 data:4byte lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x44 data:float diff --git a/configure.py b/configure.py index 1371ef6a..b71c3445 100644 --- a/configure.py +++ b/configure.py @@ -1256,7 +1256,7 @@ config.libs = [ Rel( "mentDll", objects={ - Object(NonMatching, "REL/mentDll/common.c"), + Object(Matching, "REL/mentDll/common.c"), Object(Matching, "REL/mentDll/main.c"), }, ), diff --git a/include/game/window.h b/include/game/window.h index 85be8616..a2ff8eb1 100644 --- a/include/game/window.h +++ b/include/game/window.h @@ -109,9 +109,7 @@ s16 HuWinChoiceGet(s16 window, s16 start_choice); s16 HuWinChoiceNumGet(s16 window); void HuWinChoiceDisable(s16 window, s16 choice); s16 HuWinChoiceNowGet(s16 window); -#ifndef HUWIN_USE_OLD_DEFS void HuWinMesWait(s16 window); -#endif s16 HuWinAnimSet(s16 window, AnimData *anim, s16 bank, float x, float y); s16 HuWinSprSet(s16 window, s16 sprite, float x, float y); void HuWinSprPosSet(s16 window, s16 index, float x, float y); diff --git a/src/REL/mentDll/common.c b/src/REL/mentDll/common.c index d98adb7c..63a3a0ef 100644 --- a/src/REL/mentDll/common.c +++ b/src/REL/mentDll/common.c @@ -11,6 +11,10 @@ #include "REL/mentDll.h" #include "game/printfunc.h" #include "game/hsfmotion.h" +#include "game/sprite.h" + +#include "rel_sqrt_consts.h" + Process* lbl_1_bss_0; //TODO: unknown type @@ -96,7 +100,7 @@ f32 fn_1_234(f32 arg8, f32 arg9, f32 argA) { } //fn_1_254 -f32 CosineEaseInOut(f32 arg8, f32 arg9, f32 argA, f32 argB) { +f32 fn_1_254(f32 arg8, f32 arg9, f32 argA, f32 argB) { if (argA >= argB) { return arg9; } @@ -104,7 +108,7 @@ f32 CosineEaseInOut(f32 arg8, f32 arg9, f32 argA, f32 argB) { } //fn_1_32C -f32 SinusoidalInterpolation(f32 arg8, f32 arg9, f32 argA, f32 argB) { +f32 fn_1_32C(f32 arg8, f32 arg9, f32 argA, f32 argB) { if (argA >= argB) { return arg9; } @@ -306,7 +310,7 @@ void fn_1_164C(s32 arg0, f32 arg8, f32 arg9) { void fn_1_16AC(s32 arg0) { HuWinMesSet(arg0, 0x250004); HuPrcVSleep(); - fn_1_6F4(arg0, 0, 0.5f, 0.5f); + fn_1_6F4(arg0, 0.5f, 0.5f, 0); HuWinExCleanup(arg0); } @@ -644,27 +648,27 @@ void fn_1_33EC(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg } void fn_1_3858(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9) { - arg1->prevCenter.x = SinusoidalInterpolation(arg0->prevCenter.x, arg1->center.x, arg8, arg9); - arg1->prevCenter.y = SinusoidalInterpolation(arg0->prevCenter.y, arg1->center.y, arg8, arg9); - arg1->prevCenter.z = SinusoidalInterpolation(arg0->prevCenter.z, arg1->center.z, arg8, arg9); + arg1->prevCenter.x = fn_1_32C(arg0->prevCenter.x, arg1->center.x, arg8, arg9); + arg1->prevCenter.y = fn_1_32C(arg0->prevCenter.y, arg1->center.y, arg8, arg9); + arg1->prevCenter.z = fn_1_32C(arg0->prevCenter.z, arg1->center.z, arg8, arg9); - arg1->prevRot.x = SinusoidalInterpolation(arg0->prevRot.x, arg1->rot.x, arg8, arg9); - arg1->prevRot.y = SinusoidalInterpolation(arg0->prevRot.y, arg1->rot.y, arg8, arg9); - arg1->prevRot.z = SinusoidalInterpolation(arg0->prevRot.z, arg1->rot.z, arg8, arg9); + arg1->prevRot.x = fn_1_32C(arg0->prevRot.x, arg1->rot.x, arg8, arg9); + arg1->prevRot.y = fn_1_32C(arg0->prevRot.y, arg1->rot.y, arg8, arg9); + arg1->prevRot.z = fn_1_32C(arg0->prevRot.z, arg1->rot.z, arg8, arg9); - arg1->prevZoom = SinusoidalInterpolation(arg0->prevZoom, arg1->zoom, arg8, arg9); + arg1->prevZoom = fn_1_32C(arg0->prevZoom, arg1->zoom, arg8, arg9); } void fn_1_3CAC(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9) { - arg1->prevCenter.x = SinusoidalInterpolation(arg0->prevCenter.x, arg1->center.x, arg8, arg9); - arg1->prevCenter.y = SinusoidalInterpolation(arg0->prevCenter.y, arg1->center.y, arg8, arg9); - arg1->prevCenter.z = SinusoidalInterpolation(arg0->prevCenter.z, arg1->center.z, arg8, arg9); + arg1->prevCenter.x = fn_1_32C(arg0->prevCenter.x, arg1->center.x, arg8, arg9); + arg1->prevCenter.y = fn_1_32C(arg0->prevCenter.y, arg1->center.y, arg8, arg9); + arg1->prevCenter.z = fn_1_32C(arg0->prevCenter.z, arg1->center.z, arg8, arg9); - arg1->prevRot.x = SinusoidalInterpolation(arg0->prevRot.x, arg1->rot.x, arg8, arg9); - arg1->prevRot.y = SinusoidalInterpolation(arg0->prevRot.y, arg1->rot.y, arg8, arg9); - arg1->prevRot.z = SinusoidalInterpolation(arg0->prevRot.z, arg1->rot.z, arg8, arg9); + arg1->prevRot.x = fn_1_32C(arg0->prevRot.x, arg1->rot.x, arg8, arg9); + arg1->prevRot.y = fn_1_32C(arg0->prevRot.y, arg1->rot.y, arg8, arg9); + arg1->prevRot.z = fn_1_32C(arg0->prevRot.z, arg1->rot.z, arg8, arg9); - arg1->prevZoom = SinusoidalInterpolation(arg0->prevZoom, arg1->zoom, arg8, arg9); + arg1->prevZoom = fn_1_32C(arg0->prevZoom, arg1->zoom, arg8, arg9); arg0->center.x = arg1->prevCenter.x; arg0->center.y = arg1->prevCenter.y; @@ -678,15 +682,15 @@ void fn_1_3CAC(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg } void fn_1_4138(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9, f32 argA) { - arg1->prevCenter.x = SinusoidalInterpolation(arg0->prevCenter.x, arg1->center.x, arg8, arg9); - arg1->prevCenter.y = SinusoidalInterpolation(arg0->prevCenter.y, arg1->center.y, arg8, arg9); - arg1->prevCenter.z = SinusoidalInterpolation(arg0->prevCenter.z, arg1->center.z, arg8, arg9); + arg1->prevCenter.x = fn_1_32C(arg0->prevCenter.x, arg1->center.x, arg8, arg9); + arg1->prevCenter.y = fn_1_32C(arg0->prevCenter.y, arg1->center.y, arg8, arg9); + arg1->prevCenter.z = fn_1_32C(arg0->prevCenter.z, arg1->center.z, arg8, arg9); - arg1->prevRot.x = SinusoidalInterpolation(arg0->prevRot.x, arg1->rot.x, arg8, arg9); - arg1->prevRot.y = SinusoidalInterpolation(arg0->prevRot.y, arg1->rot.y, arg8, arg9); - arg1->prevRot.z = SinusoidalInterpolation(arg0->prevRot.z, arg1->rot.z, arg8, arg9); + arg1->prevRot.x = fn_1_32C(arg0->prevRot.x, arg1->rot.x, arg8, arg9); + arg1->prevRot.y = fn_1_32C(arg0->prevRot.y, arg1->rot.y, arg8, arg9); + arg1->prevRot.z = fn_1_32C(arg0->prevRot.z, arg1->rot.z, arg8, arg9); - arg1->prevZoom = SinusoidalInterpolation(arg0->prevZoom, arg1->zoom, arg8, arg9); + arg1->prevZoom = fn_1_32C(arg0->prevZoom, arg1->zoom, arg8, arg9); arg0->center.x = SmoothInterpolate(arg0->center.x, arg1->prevCenter.x, argA); arg0->center.y = SmoothInterpolate(arg0->center.y, arg1->prevCenter.y, argA); @@ -700,27 +704,27 @@ void fn_1_4138(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg } void fn_1_4790(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9) { - arg1->prevCenter.x = CosineEaseInOut(arg0->prevCenter.x, arg1->center.x, arg8, arg9); - arg1->prevCenter.y = CosineEaseInOut(arg0->prevCenter.y, arg1->center.y, arg8, arg9); - arg1->prevCenter.z = CosineEaseInOut(arg0->prevCenter.z, arg1->center.z, arg8, arg9); + arg1->prevCenter.x = fn_1_254(arg0->prevCenter.x, arg1->center.x, arg8, arg9); + arg1->prevCenter.y = fn_1_254(arg0->prevCenter.y, arg1->center.y, arg8, arg9); + arg1->prevCenter.z = fn_1_254(arg0->prevCenter.z, arg1->center.z, arg8, arg9); - arg1->prevRot.x = CosineEaseInOut(arg0->prevRot.x, arg1->rot.x, arg8, arg9); - arg1->prevRot.y = CosineEaseInOut(arg0->prevRot.y, arg1->rot.y, arg8, arg9); - arg1->prevRot.z = CosineEaseInOut(arg0->prevRot.z, arg1->rot.z, arg8, arg9); + arg1->prevRot.x = fn_1_254(arg0->prevRot.x, arg1->rot.x, arg8, arg9); + arg1->prevRot.y = fn_1_254(arg0->prevRot.y, arg1->rot.y, arg8, arg9); + arg1->prevRot.z = fn_1_254(arg0->prevRot.z, arg1->rot.z, arg8, arg9); - arg1->prevZoom = CosineEaseInOut(arg0->prevZoom, arg1->zoom, arg8, arg9); + arg1->prevZoom = fn_1_254(arg0->prevZoom, arg1->zoom, arg8, arg9); } void fn_1_4C54(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9) { - arg1->prevCenter.x = CosineEaseInOut(arg0->prevCenter.x, arg1->center.x, arg8, arg9); - arg1->prevCenter.y = CosineEaseInOut(arg0->prevCenter.y, arg1->center.y, arg8, arg9); - arg1->prevCenter.z = CosineEaseInOut(arg0->prevCenter.z, arg1->center.z, arg8, arg9); + arg1->prevCenter.x = fn_1_254(arg0->prevCenter.x, arg1->center.x, arg8, arg9); + arg1->prevCenter.y = fn_1_254(arg0->prevCenter.y, arg1->center.y, arg8, arg9); + arg1->prevCenter.z = fn_1_254(arg0->prevCenter.z, arg1->center.z, arg8, arg9); - arg1->prevRot.x = CosineEaseInOut(arg0->prevRot.x, arg1->rot.x, arg8, arg9); - arg1->prevRot.y = CosineEaseInOut(arg0->prevRot.y, arg1->rot.y, arg8, arg9); - arg1->prevRot.z = CosineEaseInOut(arg0->prevRot.z, arg1->rot.z, arg8, arg9); + arg1->prevRot.x = fn_1_254(arg0->prevRot.x, arg1->rot.x, arg8, arg9); + arg1->prevRot.y = fn_1_254(arg0->prevRot.y, arg1->rot.y, arg8, arg9); + arg1->prevRot.z = fn_1_254(arg0->prevRot.z, arg1->rot.z, arg8, arg9); - arg1->prevZoom = CosineEaseInOut(arg0->prevZoom, arg1->zoom, arg8, arg9); + arg1->prevZoom = fn_1_254(arg0->prevZoom, arg1->zoom, arg8, arg9); arg0->center.x = arg1->prevCenter.x; arg0->center.y = arg1->prevCenter.y; @@ -734,15 +738,15 @@ void fn_1_4C54(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg } void fn_1_5150(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9, f32 argA) { - arg1->prevCenter.x = CosineEaseInOut(arg0->prevCenter.x, arg1->center.x, arg8, arg9); - arg1->prevCenter.y = CosineEaseInOut(arg0->prevCenter.y, arg1->center.y, arg8, arg9); - arg1->prevCenter.z = CosineEaseInOut(arg0->prevCenter.z, arg1->center.z, arg8, arg9); + arg1->prevCenter.x = fn_1_254(arg0->prevCenter.x, arg1->center.x, arg8, arg9); + arg1->prevCenter.y = fn_1_254(arg0->prevCenter.y, arg1->center.y, arg8, arg9); + arg1->prevCenter.z = fn_1_254(arg0->prevCenter.z, arg1->center.z, arg8, arg9); - arg1->prevRot.x = CosineEaseInOut(arg0->prevRot.x, arg1->rot.x, arg8, arg9); - arg1->prevRot.y = CosineEaseInOut(arg0->prevRot.y, arg1->rot.y, arg8, arg9); - arg1->prevRot.z = CosineEaseInOut(arg0->prevRot.z, arg1->rot.z, arg8, arg9); + arg1->prevRot.x = fn_1_254(arg0->prevRot.x, arg1->rot.x, arg8, arg9); + arg1->prevRot.y = fn_1_254(arg0->prevRot.y, arg1->rot.y, arg8, arg9); + arg1->prevRot.z = fn_1_254(arg0->prevRot.z, arg1->rot.z, arg8, arg9); - arg1->prevZoom = CosineEaseInOut(arg0->prevZoom, arg1->zoom, arg8, arg9); + arg1->prevZoom = fn_1_254(arg0->prevZoom, arg1->zoom, arg8, arg9); arg0->center.x = SmoothInterpolate(arg0->center.x, arg1->prevCenter.x, argA); arg0->center.y = SmoothInterpolate(arg0->center.y, arg1->prevCenter.y, argA); @@ -819,4 +823,126 @@ void fn_1_5CDC(omObjData* arg0, s32 arg1, s32 arg2) { do { HuPrcVSleep(); } while (Hu3DMotionEndCheck(arg0->model[arg1]) == 0); +} + +void fn_1_5D38(omObjData *arg0, s32 arg1, Vec arg2, float arg8, float arg9, float argA, s32 arg3, s32 arg4) +{ + s32 temp_r29 = 0; + s32 temp_r28 = 0; + + Vec sp4C; + Vec sp40; + Vec sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + sp40.x = Hu3DData[arg0->model[arg1]].pos.x; + sp40.y = Hu3DData[arg0->model[arg1]].pos.y; + sp40.z = Hu3DData[arg0->model[arg1]].pos.z; + sp34.x = arg2.x; + sp34.y = arg2.y; + sp34.z = arg2.z; + sp1C.x = Hu3DData[arg0->model[arg1]].rot.x; + sp1C.y = Hu3DData[arg0->model[arg1]].rot.y; + sp1C.z = Hu3DData[arg0->model[arg1]].rot.z; + sp10.x = 0; + sp10.y = arg8; + sp10.z = 0; + if(sp34.x-sp40.x >= 0.0f) { + temp_r29 = 1; + } else { + temp_r29 = 0; + } + if(sp34.z-sp40.z >= 0.0f) { + temp_r28 = 1; + } else { + temp_r28 = 0; + } + while(arg3) { + fn_1_4D8(); + sp28.y = -(atan2d(sp34.z-sp40.z, sp34.x-sp40.x)-90); + if(sp28.y < 0.0f) { + sp28.y += 360.0f; + } else if(sp28.y >= 360.0f) { + sp28.y -= 360.0f; + } + if(arg4) { + if(sp28.y >= 180.0f) { + if(sp1C.y-sp28.y >= 180.0f) { + sp1C.y -= 360.0f; + } + if(sp1C.y-sp28.y < -180.0f) { + sp1C.y += 360.0f; + } + } else { + if(sp1C.y-sp28.y > 180.0f) { + sp1C.y -= 360.0f; + } + if(sp1C.y-sp28.y <= -180.0f) { + sp1C.y += 360.0f; + } + } + } + sp4C.x = sp40.x = sp40.x+(arg9*sind(sp28.y)); + sp4C.z = sp40.z = sp40.z+(arg9*cosd(sp28.y)); + if(temp_r29 == 1) { + if(sp40.x >= sp34.x) { + sp4C.x = sp40.x = sp34.x; + temp_r29 = 2; + } + } else if(temp_r29 == 0) { + if(sp40.x <= sp34.x) { + sp4C.x = sp40.x = sp34.x; + temp_r29 = 2; + } + } + if(temp_r28 == 1) { + if(sp40.z >= sp34.z) { + sp4C.z = sp40.z = sp34.z; + temp_r28 = 2; + } + } else if(temp_r28 == 0) { + if(sp40.z <= sp34.z) { + sp4C.z = sp40.z = sp34.z; + temp_r28 = 2; + } + } + if(arg4) { + sp1C.y = fn_1_234(sp1C.y, sp28.y, argA); + } + Hu3DModelPosSet(arg0->model[arg1], sp4C.x, sp40.y, sp4C.z); + Hu3DModelRotSet(arg0->model[arg1], sp1C.x, sp1C.y, sp1C.z); + if(temp_r29 == 2 && temp_r28 == 2) { + break; + } + } + sp1C.y = Hu3DData[arg0->model[arg1]].rot.y; + if(arg4) { + s32 temp_r27; + for(temp_r27=0; temp_r27<=argA; temp_r27++) { + fn_1_4D8(); + if(sp10.y >= 180.0f) { + if(sp1C.y-sp10.y >= 180.0f) { + sp1C.y -= 360.0f; + } + if(sp1C.y-sp10.y < -180.0f) { + sp1C.y += 360.0f; + } + } else { + if(sp1C.y-sp10.y > 180.0f) { + sp1C.y -= 360.0f; + } + if(sp1C.y-sp10.y <= -180.0f) { + sp1C.y += 360.0f; + } + } + sp10.z = fn_1_20C(sp1C.y, sp10.y, temp_r27, argA); + Hu3DModelRotSet(arg0->model[arg1], sp1C.x, sp10.z, sp1C.z); + } + } +} + +void fn_1_6534(s32 grpId, s32 memberNo, float posX, float posY) +{ + HuSprPosSet(grpId, memberNo, posX, posY+0.5f); } \ No newline at end of file diff --git a/src/REL/mentDll/main.c b/src/REL/mentDll/main.c index b415f268..2fe946cc 100644 --- a/src/REL/mentDll/main.c +++ b/src/REL/mentDll/main.c @@ -186,7 +186,7 @@ s32 lbl_1_bss_A8[8]; MentDllUnkBss64Struct lbl_1_bss_64; s32 lbl_1_bss_24[16]; s32 lbl_1_bss_14[4]; -s32 lbl_1_bss_0[5]; +s32 lbl_1_bss_8[3]; void fn_1_658C(Process *arg0) { From 4b8bd84020de0408f69f996183f24027ec8e89fe Mon Sep 17 00:00:00 2001 From: Rainchus Date: Sun, 15 Sep 2024 10:02:43 -0500 Subject: [PATCH 063/311] fix linker warnings --- config/GMPE01_00/rels/mentDll/symbols.txt | 88 +++++++++++------------ 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/config/GMPE01_00/rels/mentDll/symbols.txt b/config/GMPE01_00/rels/mentDll/symbols.txt index bd1aad57..e29109dd 100644 --- a/config/GMPE01_00/rels/mentDll/symbols.txt +++ b/config/GMPE01_00/rels/mentDll/symbols.txt @@ -204,46 +204,46 @@ fn_1_225F4 = .text:0x000225F4; // type:function size:0xE38 fn_1_2342C = .text:0x0002342C; // type:function size:0x60C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC data:4byte -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0xC data:4byte -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:byte lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x1C scope:local data:4byte @@ -371,10 +371,10 @@ lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data: lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte lbl_1_data_70 = .data:0x00000070; // type:object size:0x4 data:4byte -lbl_1_data_74 = .data:0x00000074; // type:object size:0x22 data:string -lbl_1_data_96 = .data:0x00000096; // type:object size:0x1A data:string -lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x1A data:string -lbl_1_data_CA = .data:0x000000CA; // type:object size:0xE data:string +lbl_1_data_74 = .data:0x00000074; // type:object size:0x22 scope:local data:string +lbl_1_data_96 = .data:0x00000096; // type:object size:0x1A scope:local data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x1A scope:local data:string +lbl_1_data_CA = .data:0x000000CA; // type:object size:0xE scope:local data:string lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x48 data:float lbl_1_data_120 = .data:0x00000120; // type:object size:0x18 jumptable_1_data_138 = .data:0x00000138; // type:object size:0x30 scope:local From e501678f5d386753f7a24aba3295f2252dcf7eee Mon Sep 17 00:00:00 2001 From: Rainchus Date: Sun, 15 Sep 2024 11:32:49 -0500 Subject: [PATCH 064/311] match and link m420dll/rand.c --- configure.py | 2 +- src/REL/m420dll/rand.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 src/REL/m420dll/rand.c diff --git a/configure.py b/configure.py index b71c3445..68cdb5a6 100644 --- a/configure.py +++ b/configure.py @@ -955,7 +955,7 @@ config.libs = [ Object(NonMatching, "REL/m420dll/main.c"), Object(NonMatching, "REL/m420dll/player.c"), Object(NonMatching, "REL/m420dll/map.c"), - Object(NonMatching, "REL/m420dll/rand.c"), + Object(Matching, "REL/m420dll/rand.c"), }, ), Rel( diff --git a/src/REL/m420dll/rand.c b/src/REL/m420dll/rand.c new file mode 100644 index 00000000..883af017 --- /dev/null +++ b/src/REL/m420dll/rand.c @@ -0,0 +1,11 @@ +#include "dolphin/types.h" + +u32 lbl_1_bss_A48; + +void fn_1_8934 (u32 seed) { + lbl_1_bss_A48 = seed; +} + +s32 fn_1_8944(void) { + return (lbl_1_bss_A48 = (lbl_1_bss_A48 * 0x41C64E6D) + 0x3039) / 65536 & 0x7FFF; +} \ No newline at end of file From 5531601f99402e61adaac7ba844da1d8d6e48652 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Sun, 15 Sep 2024 18:28:32 -0400 Subject: [PATCH 065/311] start m409Dll/map.c --- include/REL/m415Dll.h | 103 ++++++++- src/REL/m415Dll/map.c | 523 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 614 insertions(+), 12 deletions(-) create mode 100644 src/REL/m415Dll/map.c diff --git a/include/REL/m415Dll.h b/include/REL/m415Dll.h index a8caee0f..f11e69b4 100644 --- a/include/REL/m415Dll.h +++ b/include/REL/m415Dll.h @@ -1,8 +1,10 @@ #include "dolphin.h" -#include "game/hsfformat.h" +#include "game/hsfman.h" #include "game/object.h" +extern u8 texMtxTbl[]; + #define FABS(x) ((x < 0.0f) ? -(x) : (x)) // types @@ -90,26 +92,56 @@ typedef struct _unkStruct4 { f32 unk148; } unkStruct4; +typedef struct _unkSubStruct4 { + s8 unk0; + s8 unk1; + char unk2[0x2]; + HsfVector2f unk4[4]; + u8 unk24; + char unk25[0x3]; + f32 unk28; + f32 unk2C; +} unkSubStruct4; + // taken from m438 typedef struct _unkSubStruct { Vec unk0; - char unkC[0xC]; + Vec unkC; Vec unk18; - char unk24[0x2C]; + char unk24[0xC]; + u8 unk30; + u8 unk31; + u8 unk32; + u8 unk33; + u32 unk34; + s16 unk38; + void* unk3C; + Vec* unk40; + GXColor* unk44; + Vec* unk48; + GXColor unk4C; GXColor unk50; - char unk54[0x8]; + unkSubStruct4* unk54; + char unk58[0x4]; s8 unk5C; char unk5D[0xB]; Vec unk68; char unk74[0x20]; } unkSubStruct; /* size = 0x94 */ +typedef void (*unkSubStruct2Func)(struct _unkSubStruct2*); + typedef struct _unkSubStruct2 { s16 unk0; s16 unk2; - char unk4[0x2C]; - void *unk30; // TODO type - char unk34[8]; + u8 unk4; + u32 unk8; + Vec unkC; + Vec unk18; + Vec unk24; + unkSubStruct2Func unk30; + s16* unk34; + char unk38[4]; unkSubStruct *unk3C; char unk40[0x20]; u8 unk60; @@ -124,16 +156,47 @@ typedef struct _unkSubStruct2 { char unk94[0x28]; } unkSubStruct2; /* size = 0xBC */ +typedef struct _unkSubStruct3 { + AnimData* unk0; + s16 unk4; + s16 unk6; + s32 unk8; + Vec unkC; + Mtx unk18; + GXColor unk48; + u8 unk4C; + u8 unk4D; + char unk4E[0x2]; + char unk50[0x8]; + f32 unk58; + char unk5C[0x4]; + f32 unk60; +} unkSubStruct3; /* size = 0x64 */ + typedef struct _unkStruct5 { - /* 0x00 */ char unk00[0x36]; + Mtx unk0; + s16 unk30; + s16 unk32; + s16 unk34; s16 unk36; s16 unk38; s16 unk3A; - char unk3C[4]; + unkSubStruct3 *unk3C; unkSubStruct2 *unk40; } unkStruct5; /* size = */ +typedef struct _unkStruct6 { + Vec unk0; + Vec unkC; + Vec unk18; + Vec unk24; +} unkStruct6; + +// bss +extern unkStruct5 lbl_1_bss_36C; + // prototypes +// main.c void ObjectSetup(void); void fn_1_43C(omObjData* object); void fn_1_4B0(omObjData* object); @@ -174,10 +237,26 @@ void fn_1_6F90(f32*, f32*, f32*, f32*, f32); void fn_1_7268(f32*, f32*, f32*, s32); f32 fn_1_7520(f32, f32*, f32*, f32*, s32); void fn_1_7674(f32*, Vec*, Vec*, s32); -// ... void fn_1_7A54(f32, Vec*, f32*, Vec*, Vec*, s32); -void fn_1_8780(s32, s32); -AnimData** fn_1_9734(s16); // * +f32 fn_1_7C68(Vec*); +f32 fn_1_7E00(Vec, Vec, Vec*, f32); +f32 fn_1_7ED8(Vec, Vec, Vec); +f32 fn_1_7F94(Vec*, Vec*, Vec*); +f32 fn_1_82D0(Vec*, Vec*, Vec*, Vec*, Vec*); +// map.c +void fn_1_8780(s16, s16); +void fn_1_95C0(ModelData*, Mtx); +unkSubStruct2* fn_1_96EC(s16); +unkSubStruct* fn_1_9708(s16, s16); +AnimData** fn_1_9734(s16); +void fn_1_9750(unkStruct6**, s16, f32, f32); +void fn_1_98D4(Vec**, s16, Vec*); +void fn_1_9974(GXColor**, s16, GXColor*); +void fn_1_9A1C(Vec**, s16, Vec*); +void fn_1_9AA8(HsfVector2f**, s16, HsfVector2f*); +void fn_1_9B40(unkSubStruct*); +void fn_1_9DC8(unkSubStruct2*); +// ... s16 fn_1_A2D0(s32, s32); void fn_1_A800(s16); s16 fn_1_A94C(s32, s16, s16); diff --git a/src/REL/m415Dll/map.c b/src/REL/m415Dll/map.c new file mode 100644 index 00000000..c4dec1ec --- /dev/null +++ b/src/REL/m415Dll/map.c @@ -0,0 +1,523 @@ +#include "REL/m415Dll.h" + +#include "game/hsfdraw.h" + +void fn_1_8780(s16 arg0, s16 arg1) { + s32 var_r31; + unkSubStruct2* var_r29; + unkSubStruct3* var_r30; + + lbl_1_bss_36C.unk34 = Hu3DHookFuncCreate(fn_1_95C0); + Hu3DModelLayerSet(lbl_1_bss_36C.unk34, 6); + lbl_1_bss_36C.unk30 = arg0; + lbl_1_bss_36C.unk40 = var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkSubStruct2), 0x10000000); + lbl_1_bss_36C.unk32 = arg1; + lbl_1_bss_36C.unk3C = var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkSubStruct3), 0x10000000); + + for (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) { + var_r29->unk8 = 0; + } + + for (var_r31 = 0; var_r31 < arg1; var_r31++, var_r30++) { + var_r30->unk6 = 0; + var_r30->unk8 = 0; + } + lbl_1_bss_36C.unk36 = lbl_1_bss_36C.unk38 = lbl_1_bss_36C.unk3A = 0; +} + +void fn_1_88B8(unkSubStruct2* arg0) { + ModelData sp120; + Mtx spF0; + Mtx spC0; + Mtx sp90; + Mtx sp60; + Mtx sp30; + GXColor sp2C; + s16 sp8; + s32 var_r25; + s32 var_r27; + s16 temp_r23; + s16 var_r28; + s16 var_r29; + s32 var_r24; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + unkSubStruct3* temp_r26; + unkSubStruct* var_r31; + + mtxRot(sp60, arg0->unk18.x, arg0->unk18.y, arg0->unk18.z); + MTXScale(sp90, arg0->unk24.x, arg0->unk24.y, arg0->unk24.z); + MTXConcat(sp60, sp90, sp90); + mtxTransCat(sp90, arg0->unkC.x, arg0->unkC.y, arg0->unkC.z); + MTXConcat(Hu3DCameraMtx, sp90, spC0); + var_r29 = 0; + var_r28 = 0; + sp8 = 0; + + for (var_r27 = GX_TEXMAP0; var_r27 < arg0->unk4; var_r27++) { + if (arg0->unk34[var_r27] != 0) { + temp_r26 = &lbl_1_bss_36C.unk3C[arg0->unk34[var_r27]]; + MTXCopy(temp_r26->unk18, sp30); + mtxTransCat(sp30, temp_r26->unkC.x, temp_r26->unkC.y, temp_r26->unkC.z); + switch (temp_r26->unk4) { + case 0: + GXLoadTexMtxImm(sp30, texMtxTbl[var_r28], GX_MTX2x4); + var_r22 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX2x4, var_r27 + 4, var_r22, 0, 0x7D); + GXSetTevOrder(var_r29, var_r28, var_r27, GX_COLOR0A0); + if (var_r27 == GX_TEXMAP0) { + if ((temp_r26->unk0->bmp->dataFmt == 7) || (temp_r26->unk0->bmp->dataFmt == 8)) { + GXSetTevColor(GX_TEVREG2, temp_r26->unk48); + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_C2, GX_CC_RASC, GX_CC_ZERO); + } else { + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + } + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + } else { + sp2C.a = temp_r26->unk48.a; + GXSetTevColor(GX_TEVREG2, sp2C); + GXSetTevColorIn(var_r29, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); + } + GXSetTevColorOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + break; + case 1: + GXLoadTexMtxImm(sp30, texMtxTbl[var_r28], GX_MTX2x4); + var_r21 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX2x4, var_r27 + 4, var_r21, 0, 0x7D); + GXSetTevOrder(var_r29, var_r28, var_r27, GX_COLOR0A0); + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_CPREV, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); + GXSetTevColorOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + break; + case 2: + sp2C.a = 0xE0; + GXSetTevColor(GX_TEVREG1, sp2C); + GXSetTexCoordGen2(var_r28 + 1, GX_TG_BUMP0, var_r28, 0x3C, 0, 0x7D); + GXSetTevOrder(var_r29, var_r28, var_r27, GX_COLOR0A0); + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_RASC); + GXSetTevColorOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV); + var_r29++; + GXSetTevOrder(var_r29, var_r28 + 1, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_CPREV); + GXSetTevColorOp(var_r29, GX_TEV_SUB, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV); + break; + case 3: + var_r28--; + GXLoadTexMtxImm(sp30, texMtxTbl[var_r28], GX_MTX2x4); + var_r20 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX2x4, var_r27 + 4, var_r20, 0, 0x7D); + GXSetTevOrder(var_r29, var_r28, var_r27, GX_COLOR0A0); + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_CPREV, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevColorOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + var_r28++; + break; + case 4: + mtxRot(sp60, arg0->unk18.x, arg0->unk18.y, arg0->unk18.z); + MTXScale(sp90, arg0->unk24.x, arg0->unk24.y, arg0->unk24.z); + MTXConcat(sp60, sp90, sp90); + mtxTransCat(sp90, arg0->unkC.x, arg0->unkC.y, arg0->unkC.z); + MTXConcat(Hu3DCameraMtx, sp90, sp30); + MTXInverse(Hu3DCameraMtx, sp60); + MTXConcat(sp60, sp30, sp60); + MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp90); + MTXConcat(sp90, sp60, sp30); + GXLoadTexMtxImm(sp30, texMtxTbl[var_r28], GX_MTX3x4); + var_r19 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX3x4, GX_TG_POS, var_r19, 0, 0x7D); + GXSetTevOrder(var_r29, var_r28, var_r27, GX_COLOR0A0); + if (var_r27 == GX_TEXMAP0) { + GXSetTevColorIn(var_r29, GX_CC_ONE, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + } else { + GXSetTevColorIn(var_r29, GX_CC_CPREV, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); + } + GXSetTevColorOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV); + break; + } + var_r29++; + var_r28++; + if (temp_r26->unk4D != 0) { + HuSprTexLoad(temp_r26->unk0, 0, var_r27, 1, 1, 1); + } else { + HuSprTexLoad(temp_r26->unk0, 0, var_r27, 0, 0, 1); + } + } + } + GXSetNumTevStages((s16)var_r29); + GXSetNumTexGens((s16)var_r28); + var_r31 = arg0->unk3C; + + for (var_r24 = 0; var_r24 < arg0->unk2; var_r24++, var_r31++) { + if ((var_r31->unk34 != 0) && ((var_r31->unk34 & 4) == 0)) { + switch (var_r31->unk30) { + case 0: + mtxRot(sp60, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); + if (var_r31->unk31 == 2) { + MTXConcat(lbl_1_bss_36C.unk0, sp60, sp60); + } else if (var_r31->unk31 == 1) { + MTXRotDeg(sp90, 0x59, CRot.y); + MTXConcat(sp90, sp60, sp60); + } + MTXScale(sp90, var_r31->unk18.x, var_r31->unk18.y, var_r31->unk18.z); + MTXConcat(sp60, sp90, sp90); + mtxTransCat(sp90, var_r31->unk0.x, var_r31->unk0.y, var_r31->unk0.z); + MTXConcat(Hu3DCameraMtx, sp90, spF0); + break; + case 1: + mtxRot(sp60, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); + if (var_r31->unk31 == 2) { + if (HmfInverseMtxF3X3(spC0, sp90) == 0) { + MTXIdentity(sp90); + } + MTXConcat(sp90, sp60, sp60); + } else if (var_r31->unk31 == 1) { + MTXRotDeg(sp90, 0x59, CRot.y); + MTXConcat(sp90, sp60, sp60); + } + MTXScale(sp90, var_r31->unk18.x, var_r31->unk18.y, var_r31->unk18.z); + MTXConcat(sp60, sp90, sp90); + mtxTransCat(sp90, var_r31->unk0.x, var_r31->unk0.y, var_r31->unk0.z); + MTXConcat(spC0, sp90, spF0); + break; + } + GXLoadPosMtxImm(spF0, 0); + MTXInverse(spF0, sp90); + MTXTranspose(sp90, sp60); + GXLoadNrmMtxImm(sp60, 0); + GXSetChanAmbColor(GX_COLOR0A0, var_r31->unk4C); + GXSetChanMatColor(GX_COLOR0A0, var_r31->unk50); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + if ((var_r31->unk34 & 0x10) != 0) { + GXSetZMode(0, GX_LEQUAL, 1); + } else { + GXSetZMode(1, GX_LEQUAL, 0); + } + sp120.attr = 0; + temp_r23 = Hu3DLightSet(&sp120, &Hu3DCameraMtx, &Hu3DCameraMtxXPose, 0.0f); + GXSetNumChans(1); + if ((var_r31->unk34 & 8) != 0) { + var_r25 = GX_SRC_VTX; + } else { + var_r25 = GX_SRC_REG; + } + switch (var_r31->unk32) { + case 0: + GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, var_r25, 0, GX_DF_CLAMP, GX_AF_NONE); + break; + case 1: + GXSetChanCtrl(GX_COLOR0A0, 1, GX_SRC_REG, var_r25, temp_r23, GX_DF_CLAMP, GX_AF_SPOT); + break; + case 2: + GXSetChanCtrl(GX_COLOR0A0, 1, GX_SRC_REG, var_r25, temp_r23, GX_DF_CLAMP, GX_AF_SPEC); + break; + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, var_r31->unk40, 0xC); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, var_r31->unk44, 4); + + for (var_r27 = 0; var_r27 < var_r31->unk33; var_r27++) { + GXSetVtxDesc(var_r27 + GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, var_r27 + GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(var_r27 + GX_VA_TEX0, var_r31->unk54[var_r27].unk4, 8); + } + GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGBA6, 0); + GXSetArray(GX_VA_NRM, var_r31->unk48, 0xC); + GXCallDisplayList(var_r31->unk3C, var_r31->unk38); + } + } +} + +void fn_1_95C0(ModelData* arg0, Mtx arg1) { + Mtx sp38; + Mtx sp8; + s32 var_r30; + unkSubStruct2* var_r31; + + var_r31 = lbl_1_bss_36C.unk40; + GXLoadPosMtxImm(arg1, 0); + PSMTXInverse(arg1, sp38); + PSMTXTranspose(sp38, sp8); + GXLoadNrmMtxImm(sp8, 0); + HmfInverseMtxF3X3(Hu3DCameraMtx, lbl_1_bss_36C.unk0); + + for (var_r30 = 0; var_r30 < lbl_1_bss_36C.unk30; var_r30++, var_r31++) { + if ((var_r31->unk8 != 0) && ((var_r31->unk8 & 2) != 0) && ((var_r31->unk8 & 4) == 0)) { + if ((u8)omPauseChk() == 0) { + if (var_r31->unk30) { + var_r31->unk30(var_r31); + } + if (var_r31->unk8 == 0) continue; + fn_1_9DC8(var_r31); + if (var_r31->unk8 == 0) continue; + } + fn_1_88B8(var_r31); + } + } +} + +unkSubStruct2* fn_1_96EC(s16 arg0) { + return &lbl_1_bss_36C.unk40[arg0]; +} + +unkSubStruct* fn_1_9708(s16 arg0, s16 arg1) { + return &lbl_1_bss_36C.unk40[arg0].unk3C[arg1]; +} + +AnimData** fn_1_9734(s16 arg0) { + return &lbl_1_bss_36C.unk3C[arg0].unk0; +} + +void fn_1_9750(unkStruct6** arg0, s16 arg1, f32 arg8, f32 arg9) { + s32 var_r30; + unkStruct6* var_r31; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct6), 0x10000000); + + for (var_r30 = 0; var_r30 < arg1; var_r31++, var_r30++) { + var_r31->unk0.x = (-0.5f * arg8); + var_r31->unk0.y = (0.5f * arg9); + var_r31->unk0.z = 0.0f; + var_r31->unkC.x = (0.5f * arg8); + var_r31->unkC.y = (0.5f * arg9); + var_r31->unkC.z = 0.0f; + var_r31->unk18.x = (0.5f * arg8); + var_r31->unk18.y = (-0.5f * arg9); + var_r31->unk18.z = 0.0f; + var_r31->unk24.x = (-0.5f * arg8); + var_r31->unk24.y = (-0.5f * arg9); + var_r31->unk24.z = 0.0f; + } +} + +void fn_1_98D4(Vec** arg0, s16 arg1, Vec* arg2) { + s32 var_r29; + s32 var_r28; + Vec* var_r31; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec[4]), MEMORY_DEFAULT_NUM); + + for (var_r29 = 0; var_r29 < arg1; var_r29++) { + for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { + var_r31->x = arg2->x; + var_r31->y = arg2->y; + var_r31->z = arg2->z; + } + } +} + +void fn_1_9974(GXColor** arg0, s16 arg1, GXColor* arg2) { + s32 var_r29; + s32 var_r28; + GXColor* var_r31; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(GXColor[4]), MEMORY_DEFAULT_NUM); + + for (var_r29 = 0; var_r29 < arg1; var_r29++) { + for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { + var_r31->r = arg2->r; + var_r31->g = arg2->g; + var_r31->b = arg2->b; + var_r31->a = arg2->a; + } + } +} + +void fn_1_9A1C(Vec** arg0, s16 arg1, Vec* arg2) { + s32 var_r29; + Vec* var_r31; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), MEMORY_DEFAULT_NUM); + + for (var_r29 = 0; var_r29 < arg1; var_r31++, arg2++, var_r29++) { + var_r31->x = arg2->x; + var_r31->y = arg2->y; + var_r31->z = arg2->z; + } +} + +void fn_1_9AA8(HsfVector2f** arg0, s16 arg1, HsfVector2f* arg2) { + s32 var_r28; + s32 var_r29; + HsfVector2f* var_r31; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(HsfVector2f[4]), MEMORY_DEFAULT_NUM); + + for (var_r28 = 0; var_r28 < arg1; var_r28++) { + for (var_r29 = 0; var_r29 < 4; var_r31++, arg2++, var_r29++) { + var_r31->x = arg2->x; + var_r31->y = arg2->y; + } + } +} + +void fn_1_9B40(unkSubStruct* arg0) { + void* sp8; + s32 var_r29; + s32 var_r31; + void* temp_r28; + + Vec sp1C[4] = { + { -50.0f, 50.0f, 0.0f }, + { 50.0f, 50.0f, 0.0f }, + { 50.0f, -50.0f, 0.0f }, + { -50.0f, -50.0f, 0.0f } + }; + GXColor spC[4] = { + { 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF } + }; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + arg0->unk40[var_r31] = sp1C[var_r31]; + } + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + arg0->unk44[var_r31] = spC[var_r31]; + } + arg0->unk48->x = 0.0f; + arg0->unk48->y = 0.0f; + arg0->unk48->z = 1.0; + temp_r28 = arg0->unk3C; + sp8 = temp_r28; + GXBeginDisplayList(temp_r28, 0x100U); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GXPosition1x16(var_r31); + GXNormal1x16(0); + GXColor1x16(var_r31); + for (var_r29 = 0; var_r29 < arg0->unk33; var_r29++) { + GXTexCoord1x16(var_r31); + } + } + arg0->unk38 = GXEndDisplayList(); +} + +void fn_1_9DC8(unkSubStruct2* arg0) { + s32 temp_r0; + s32 var_r25; + s32 var_r26; + s32 var_r27; + unkSubStruct* var_r28; + unkSubStruct3* temp_r30; + unkSubStruct4* var_r31; + + var_r27 = 0; + var_r28 = arg0->unk3C; + + for (var_r25 = 0; var_r25 < arg0->unk2; var_r25++, var_r28++) { + if ((var_r28->unk34 & 4) != 0) { + var_r27++; + } else { + var_r31 = var_r28->unk54; + + for (var_r26 = 0; var_r26 < var_r28->unk33; var_r26++, var_r31++) { + temp_r30 = &lbl_1_bss_36C.unk3C[arg0->unk34[var_r26]]; + var_r31->unk24 &= ~4; + switch (var_r31->unk24 & 0xF) { + case 1: + var_r31->unk2C += var_r31->unk28; + if (var_r31->unk2C >= 1.0f) { + var_r31->unk0++; + var_r31->unk2C--; + } + break; + case 2: + var_r31->unk2C += var_r31->unk28; + if (var_r31->unk2C >= 1.0f) { + var_r31->unk0--; + var_r31->unk2C--; + } + break; + } + if (var_r31->unk0 >= temp_r30->unk4C) { + if ((var_r31->unk24 & 0x10) != 0) { + var_r31->unk24 |= 8; + var_r31->unk0--; + } else if ((var_r31->unk24 & 0x40) != 0) { + var_r31->unk24 = (var_r31->unk24 & 0xF0) | 2; + var_r31->unk0 -= 2; + } else if ((var_r31->unk24 & 0x20) != 0) { + var_r31->unk0 = 0; + } + var_r31->unk24 |= 4; + } else if (var_r31->unk0 < 0) { + if ((var_r31->unk24 & 0x10) != 0) { + var_r31->unk24 |= 8; + var_r31->unk0 = 0; + } else if ((var_r31->unk24 & 0x20) != 0) { + if ((var_r31->unk24 & 0x40) != 0) { + var_r31->unk24 = (var_r31->unk24 & 0xF0) | 1; + var_r31->unk0 = 1; + } else { + var_r31->unk0 = temp_r30->unk4C - 1; + } + } else if ((var_r31->unk24 & 0x40) != 0) { + var_r31->unk24 |= 8; + var_r31->unk0 = 0; + } + var_r31->unk24 |= 4; + } else { + var_r31->unk24 &= ~8; + } + if (var_r31->unk0 != var_r31->unk1) { + var_r31->unk4[0].y = var_r31->unk0 * temp_r30->unk58; + var_r31->unk4[1].y = var_r31->unk0 * temp_r30->unk58; + var_r31->unk4[2].y = ((var_r31->unk0 + 1) * temp_r30->unk58); + var_r31->unk4[3].y = ((var_r31->unk0 + 1) * temp_r30->unk58); + if ((var_r31->unk0 + 1) < temp_r30->unk4C) { + var_r31->unk4[2].y -= temp_r30->unk60; + var_r31->unk4[3].y -= temp_r30->unk60; + } + var_r31->unk1 = var_r31->unk0; + } + if ((var_r31->unk24 & 8) != 0) { + if ((var_r28->unk34 & 0x40000000) != 0) { + var_r28->unk34 |= 4; + if ((var_r31->unk24 & 0x40) == 0) { + if (var_r31->unk0 <= 0) { + var_r31->unk0 = temp_r30->unk4C; + } else { + var_r31->unk0 = 0; + } + } + } else if ((var_r28->unk34 & 0x80000000) != 0) { + fn_1_A800(arg0->unk0); + } + var_r27++; + } + } + } + } + if (var_r27 >= arg0->unk2) { + if ((arg0->unk8 & 0x40000000) != 0) { + arg0->unk8 |= 4; + return; + } + if ((arg0->unk8 & 0x80000000) != 0) { + fn_1_A800(arg0->unk0); + } + } +} \ No newline at end of file From b3e563bdf06e6010f04729f5c7f6da7fb53d93f9 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 16 Sep 2024 01:17:04 +0200 Subject: [PATCH 066/311] Finished mpexDll/main.c --- config/GMPE01_00/rels/mpexDll/splits.txt | 5 +- config/GMPE01_00/rels/mpexDll/symbols.txt | 5 +- configure.py | 2 +- include/REL/mpexDll.h | 37 ++ src/REL/mpexDll/main.c | 501 ++++++++++++++++++++++ 5 files changed, 547 insertions(+), 3 deletions(-) create mode 100644 include/REL/mpexDll.h create mode 100644 src/REL/mpexDll/main.c diff --git a/config/GMPE01_00/rels/mpexDll/splits.txt b/config/GMPE01_00/rels/mpexDll/splits.txt index 965cdf04..c53e66f4 100644 --- a/config/GMPE01_00/rels/mpexDll/splits.txt +++ b/config/GMPE01_00/rels/mpexDll/splits.txt @@ -6,8 +6,11 @@ Sections: .data type:data align:8 .bss type:bss align:8 +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + REL/mpexDll/main.c: - .text start:0x00000000 end:0x00003044 + .text start:0x000000A0 end:0x00003044 .rodata start:0x00000000 end:0x000000A0 .data start:0x00000000 end:0x00000240 .bss start:0x00000000 end:0x000000A8 diff --git a/config/GMPE01_00/rels/mpexDll/symbols.txt b/config/GMPE01_00/rels/mpexDll/symbols.txt index 85a09fc4..6e74a99e 100644 --- a/config/GMPE01_00/rels/mpexDll/symbols.txt +++ b/config/GMPE01_00/rels/mpexDll/symbols.txt @@ -213,6 +213,8 @@ fn_1_1CB80 = .text:0x0001CB80; // type:function size:0x4AC fn_1_1D02C = .text:0x0001D02C; // type:function size:0x16C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float @@ -436,7 +438,8 @@ lbl_1_data_75C = .data:0x0000075C; // type:object size:0x20 lbl_1_data_77C = .data:0x0000077C; // type:object size:0x4 data:4byte lbl_1_data_780 = .data:0x00000780; // type:object size:0x8 data:4byte lbl_1_data_788 = .data:0x00000788; // type:object size:0x318 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x64 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x60 data:4byte lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x44 data:float lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 68cdb5a6..d3ccd104 100644 --- a/configure.py +++ b/configure.py @@ -1299,7 +1299,7 @@ config.libs = [ Rel( "mpexDll", objects={ - Object(NonMatching, "REL/mpexDll/main.c"), + Object(Matching, "REL/mpexDll/main.c"), Object(NonMatching, "REL/mpexDll/mpex.c"), Object(NonMatching, "REL/mpexDll/charsel.c"), Object(NonMatching, "REL/mpexDll/mgname.c"), diff --git a/include/REL/mpexDll.h b/include/REL/mpexDll.h new file mode 100644 index 00000000..cae66a15 --- /dev/null +++ b/include/REL/mpexDll.h @@ -0,0 +1,37 @@ +#ifndef MPEXDLL_H +#define MPEXDLL_H + +#include "game/object.h" + +typedef void (*MpexDllUnkFunc)(void); + +typedef struct MpexDllUnkStruct { + /* 0x00 */ MpexDllUnkFunc unk_00; + /* 0x04 */ void *unk_04; // func, unknown args + /* 0x08 */ Vec unk_08; + /* 0x14 */ Vec unk_14; + /* 0x20 */ Vec unk_20; + /* 0x2C */ Vec unk_2C; + /* 0x38 */ float unk_38; + /* 0x3C */ float unk_3C; + /* 0x40 */ s32 unk_40; +} MpexDllUnkStruct; /* size = 0x44 */ + +typedef struct MpexDllUnkStruct2 { + /* 0x00 */ char unk00[0x40]; + /* 0x40 */ s16 *unk_40; + /* 0x44 */ char unk44; + /* 0x48 */ s16 *unk_48; + /* 0x4C */ char unk_4C[0xC]; + /* 0x58 */ u32 unk_58; +} MpexDllUnkStruct2; /* size = unknown */ + +s32 fn_1_3044(Process *arg0); + +// s32 fn_1_1B52C(float, float, float, float); seems implicit in main.c +s32 fn_1_1B554(float, float, float); +s32 fn_1_1B574(float, float, float, float); +s32 fn_1_1B64C(float, float, float, float); +s32 fn_1_1B7D0(s32 arg0); + +#endif diff --git a/src/REL/mpexDll/main.c b/src/REL/mpexDll/main.c new file mode 100644 index 00000000..2c3a4094 --- /dev/null +++ b/src/REL/mpexDll/main.c @@ -0,0 +1,501 @@ +#include "ext_math.h" +#include "game/armem.h" +#include "game/audio.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/wipe.h" +#include "rel_sqrt_consts.h" + +#include "REL/mpexDll.h" + +void fn_1_230(); +void fn_1_A70(MpexDllUnkStruct *arg0); + +MpexDllUnkStruct lbl_1_bss_64; +s32 lbl_1_bss_4[0x18]; +Process *lbl_1_bss_0; // it's something bigger + +void fn_1_A0(void) +{ + if (HuPadBtnDown[0] & PAD_BUTTON_Y) { + OSReport("\n###################################################################### HEAP\n\n"); + HuMemHeapDump(HuMemHeapPtrGet(HEAP_SYSTEM), -1); + OSReport("\n###################################################################### SOUND\n\n"); + HuMemHeapDump(HuMemHeapPtrGet(HEAP_MUSIC), -1); + OSReport("\n###################################################################### MODEL\n\n"); + HuMemHeapDump(HuMemHeapPtrGet(HEAP_DATA), -1); + OSReport("\n###################################################################### DVD\n\n"); + HuMemHeapDump(HuMemHeapPtrGet(HEAP_DVD), -1); + OSReport("\n###################################################################### SPACE\n\n"); + HuMemHeapDump(HuMemHeapPtrGet(HEAP_MISC), -1); + OSReport("\n###################################################################### ARAM\n\n"); + HuAMemDump(); + } +} + +void fn_1_188(omObjData *object) +{ + if (WipeStatGet() == 0) { + omOvlReturnEx(1, 1); + } +} + +void fn_1_1C0(omObjData *object) +{ + if (omSysExitReq != 0) { + HuAudFadeOut(0x3E8); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, -1); + object->func = fn_1_188; + } +} + +void fn_1_230(void) +{ + mgPracticeEnableF = 0; + lbl_1_bss_0 = omInitObjMan(0x3E, 0x2000); + GWSystem.mg_next = 0xFFFF; + fn_1_3044(lbl_1_bss_0); +} + +void fn_1_298(void) +{ + s32 var_r31; + + var_r31 = -1; + var_r31 = Hu3DGLightCreate(0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0xFF, 0xFF, 0xFF); + Hu3DGLightPosAimSet(var_r31, 0.0f, 1000.0f, 1000.0f, 0.0f, 0.0f, 0.0f); + Hu3DGLightInfinitytSet(var_r31); +} + +void fn_1_374(void) +{ + Vec sp20 = { 0.0f, 3000.0f, 3000.0f }; + Vec sp14 = { 0.0f, 0.0f, 0.0f }; + Vec sp8 = { 0.0f, 1.0f, 0.0f }; + + Hu3DShadowCreate(45.0f, 2000.0f, 25000.0f); + Hu3DShadowPosSet(&sp20, &sp8, &sp14); + Hu3DShadowTPLvlSet(0.8f); +} + +void fn_1_438(void) +{ + MpexDllUnkStruct *var_r31 = &lbl_1_bss_64; + + if (HuPadBtn[0] & PAD_BUTTON_B) { + if (HuPadBtn[0] & 0x20) { + var_r31->unk_08.z -= (HuPadStkY[0] / 10.0f); + } + else { + var_r31->unk_08.x += HuPadStkX[0] / 10.0f; + var_r31->unk_08.y += (HuPadStkY[0] / 10.0f); + } + } + if (HuPadBtn[0] & PAD_BUTTON_Y) { + var_r31->unk_20.x -= HuPadStkY[0] / 100.0f; + var_r31->unk_20.y += (HuPadStkX[0] / 100.0f); + if (var_r31->unk_20.x < 0.0f) { + var_r31->unk_20.x += 360.0f; + } + if (var_r31->unk_20.x >= 360.0f) { + var_r31->unk_20.x -= 360.0f; + } + if (var_r31->unk_20.y < 0.0f) { + var_r31->unk_20.y += 360.0f; + } + if (var_r31->unk_20.y >= 360.0f) { + var_r31->unk_20.y -= 360.0f; + } + } + if (HuPadBtn[0] & PAD_BUTTON_X) { + var_r31->unk_38 -= (HuPadStkY[0] / 10.0f); + } + print8(0x18, 0x28, 1.0f, ">>>>>>>>>> CAMERA DATA <<<<<<<<<<"); + print8(0x18, 0x32, 1.0f, "CENTER : %.2f, %.2f, %.2f", var_r31->unk_08.x, var_r31->unk_08.y, var_r31->unk_08.z); + print8(0x18, 0x3C, 1.0f, "ROT : %.2f, %.2f, %.2f", var_r31->unk_20.x, var_r31->unk_20.y, var_r31->unk_20.z); + print8(0x18, 0x46, 1.0f, "ZOOM : %.2f", var_r31->unk_38); +} + +void fn_1_81C(omObjData *object) +{ + MpexDllUnkStruct *var_r31 = &lbl_1_bss_64; + if (var_r31->unk_00 != NULL) { + var_r31->unk_00(); + } + Center.x = var_r31->unk_08.x; + Center.y = var_r31->unk_08.y; + Center.z = var_r31->unk_08.z; + CRot.x = var_r31->unk_20.x; + CRot.y = var_r31->unk_20.y; + CRot.z = var_r31->unk_20.z; + CZoom = var_r31->unk_38; +} + +void fn_1_8D4(MpexDllUnkFunc arg0) +{ + lbl_1_bss_64.unk_00 = arg0; + fn_1_A70(&lbl_1_bss_64); +} + +void fn_1_910(MpexDllUnkFunc arg0) +{ + Hu3DCameraCreate(1); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 45.0f, 20.0f, 5000.0f, 1.2f); + lbl_1_bss_64.unk_00 = arg0; + lbl_1_bss_64.unk_04 = fn_1_438; + omAddObjEx(lbl_1_bss_0, 0x7FDA, 0, 0, -1, omOutView); + omAddObjEx(lbl_1_bss_0, 0x7FD9, 0, 0, -1, fn_1_81C); +} + +void fn_1_A34(MpexDllUnkStruct *arg0) +{ + arg0->unk_08.x = arg0->unk_14.x; + arg0->unk_08.y = arg0->unk_14.y; + arg0->unk_08.z = arg0->unk_14.z; + arg0->unk_20.x = arg0->unk_2C.x; + arg0->unk_20.y = arg0->unk_2C.y; + arg0->unk_20.z = arg0->unk_2C.z; + arg0->unk_38 = arg0->unk_3C; +} + +void fn_1_A70(MpexDllUnkStruct *arg0) +{ + arg0->unk_40 = 0; + arg0->unk_14.x = arg0->unk_08.x; + arg0->unk_14.y = arg0->unk_08.y; + arg0->unk_14.z = arg0->unk_08.z; + arg0->unk_2C.x = arg0->unk_20.x; + arg0->unk_2C.y = arg0->unk_20.y; + arg0->unk_2C.z = arg0->unk_20.z; + arg0->unk_3C = arg0->unk_38; +} + +void fn_1_AB4(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8) +{ + arg0->unk_08.x = fn_1_1B554(arg0->unk_08.x, arg1->unk_14.x, arg8); + arg0->unk_08.y = fn_1_1B554(arg0->unk_08.y, arg1->unk_14.y, arg8); + arg0->unk_08.z = fn_1_1B554(arg0->unk_08.z, arg1->unk_14.z, arg8); + arg0->unk_20.x = fn_1_1B554(arg0->unk_20.x, arg1->unk_2C.x, arg8); + arg0->unk_20.y = fn_1_1B554(arg0->unk_20.y, arg1->unk_2C.y, arg8); + arg0->unk_20.z = fn_1_1B554(arg0->unk_20.z, arg1->unk_2C.z, arg8); + arg0->unk_38 = fn_1_1B554(arg0->unk_38, arg1->unk_3C, arg8); +} + +void fn_1_C84(MpexDllUnkStruct *arg0, float arg8, float argB) +{ + arg0->unk_08.x = fn_1_1B554(arg0->unk_08.x, arg0->unk_14.x, arg8); + arg0->unk_08.y = fn_1_1B554(arg0->unk_08.y, arg0->unk_14.y, arg8); + arg0->unk_08.z = fn_1_1B554(arg0->unk_08.z, arg0->unk_14.z, arg8); + arg0->unk_20.x = fn_1_1B554(arg0->unk_20.x, arg0->unk_2C.x, arg8); + arg0->unk_20.y = fn_1_1B554(arg0->unk_20.y, arg0->unk_2C.y, arg8); + arg0->unk_20.z = fn_1_1B554(arg0->unk_20.z, arg0->unk_2C.z, arg8); + arg0->unk_38 = fn_1_1B554(arg0->unk_38, arg0->unk_3C, arg8); +} + +void fn_1_E48(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argC) +{ + arg1->unk_14.x = fn_1_1B52C(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9); + arg1->unk_14.y = fn_1_1B52C(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9); + arg1->unk_14.z = fn_1_1B52C(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9); + arg1->unk_2C.x = fn_1_1B52C(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9); + arg1->unk_2C.y = fn_1_1B52C(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9); + arg1->unk_2C.z = fn_1_1B52C(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9); + arg1->unk_3C = fn_1_1B52C(arg0->unk_3C, arg1->unk_38, arg8, arg9); +} + +void fn_1_1048(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argC) +{ + arg1->unk_14.x = fn_1_1B52C(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9); + arg1->unk_14.y = fn_1_1B52C(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9); + arg1->unk_14.z = fn_1_1B52C(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9); + arg1->unk_2C.x = fn_1_1B52C(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9); + arg1->unk_2C.y = fn_1_1B52C(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9); + arg1->unk_2C.z = fn_1_1B52C(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9); + arg1->unk_3C = fn_1_1B52C(arg0->unk_3C, arg1->unk_38, arg8, arg9); + arg0->unk_08.x = arg1->unk_14.x; + arg0->unk_08.y = arg1->unk_14.y; + arg0->unk_08.z = arg1->unk_14.z; + arg0->unk_20.x = arg1->unk_2C.x; + arg0->unk_20.y = arg1->unk_2C.y; + arg0->unk_20.z = arg1->unk_2C.z; + arg0->unk_38 = arg1->unk_3C; +} + +void fn_1_1280(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argA, float argC) +{ + arg1->unk_14.x = fn_1_1B52C(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9); + arg1->unk_14.y = fn_1_1B52C(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9); + arg1->unk_14.z = fn_1_1B52C(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9); + arg1->unk_2C.x = fn_1_1B52C(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9); + arg1->unk_2C.y = fn_1_1B52C(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9); + arg1->unk_2C.z = fn_1_1B52C(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9); + arg1->unk_3C = fn_1_1B52C(arg0->unk_3C, arg1->unk_38, arg8, arg9); + arg0->unk_08.x = fn_1_1B554(arg0->unk_08.x, arg1->unk_14.x, argA); + arg0->unk_08.y = fn_1_1B554(arg0->unk_08.y, arg1->unk_14.y, argA); + arg0->unk_08.z = fn_1_1B554(arg0->unk_08.z, arg1->unk_14.z, argA); + arg0->unk_20.x = fn_1_1B554(arg0->unk_20.x, arg1->unk_2C.x, argA); + arg0->unk_20.y = fn_1_1B554(arg0->unk_20.y, arg1->unk_2C.y, argA); + arg0->unk_20.z = fn_1_1B554(arg0->unk_20.z, arg1->unk_2C.z, argA); + arg0->unk_38 = fn_1_1B554(arg0->unk_38, arg1->unk_3C, argA); +} + +void fn_1_161C(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argC) +{ + arg1->unk_14.x = fn_1_1B64C(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9); + arg1->unk_14.y = fn_1_1B64C(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9); + arg1->unk_14.z = fn_1_1B64C(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9); + arg1->unk_2C.x = fn_1_1B64C(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9); + arg1->unk_2C.y = fn_1_1B64C(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9); + arg1->unk_2C.z = fn_1_1B64C(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9); + arg1->unk_3C = fn_1_1B64C(arg0->unk_3C, arg1->unk_38, arg8, arg9); +} + +void fn_1_181C(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argC) +{ + arg1->unk_14.x = fn_1_1B64C(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9); + arg1->unk_14.y = fn_1_1B64C(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9); + arg1->unk_14.z = fn_1_1B64C(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9); + arg1->unk_2C.x = fn_1_1B64C(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9); + arg1->unk_2C.y = fn_1_1B64C(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9); + arg1->unk_2C.z = fn_1_1B64C(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9); + arg1->unk_3C = fn_1_1B64C(arg0->unk_3C, arg1->unk_38, arg8, arg9); + arg0->unk_08.x = arg1->unk_14.x; + arg0->unk_08.y = arg1->unk_14.y; + arg0->unk_08.z = arg1->unk_14.z; + arg0->unk_20.x = arg1->unk_2C.x; + arg0->unk_20.y = arg1->unk_2C.y; + arg0->unk_20.z = arg1->unk_2C.z; + arg0->unk_38 = arg1->unk_3C; +} + +void fn_1_1A54(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argA, float argC) +{ + arg1->unk_14.x = fn_1_1B64C(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9); + arg1->unk_14.y = fn_1_1B64C(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9); + arg1->unk_14.z = fn_1_1B64C(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9); + arg1->unk_2C.x = fn_1_1B64C(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9); + arg1->unk_2C.y = fn_1_1B64C(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9); + arg1->unk_2C.z = fn_1_1B64C(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9); + arg1->unk_3C = fn_1_1B64C(arg0->unk_3C, arg1->unk_38, arg8, arg9); + arg0->unk_08.x = fn_1_1B554(arg0->unk_08.x, arg1->unk_14.x, argA); + arg0->unk_08.y = fn_1_1B554(arg0->unk_08.y, arg1->unk_14.y, argA); + arg0->unk_08.z = fn_1_1B554(arg0->unk_08.z, arg1->unk_14.z, argA); + arg0->unk_20.x = fn_1_1B554(arg0->unk_20.x, arg1->unk_2C.x, argA); + arg0->unk_20.y = fn_1_1B554(arg0->unk_20.y, arg1->unk_2C.y, argA); + arg0->unk_20.z = fn_1_1B554(arg0->unk_20.z, arg1->unk_2C.z, argA); + arg0->unk_38 = fn_1_1B554(arg0->unk_38, arg1->unk_3C, argA); +} + +void fn_1_1DF0(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argC) +{ + arg1->unk_14.x = fn_1_1B574(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9); + arg1->unk_14.y = fn_1_1B574(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9); + arg1->unk_14.z = fn_1_1B574(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9); + arg1->unk_2C.x = fn_1_1B574(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9); + arg1->unk_2C.y = fn_1_1B574(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9); + arg1->unk_2C.z = fn_1_1B574(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9); + arg1->unk_3C = fn_1_1B574(arg0->unk_3C, arg1->unk_38, arg8, arg9); +} + +void fn_1_1FF0(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argC) +{ + arg1->unk_14.x = fn_1_1B574(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9); + arg1->unk_14.y = fn_1_1B574(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9); + arg1->unk_14.z = fn_1_1B574(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9); + arg1->unk_2C.x = fn_1_1B574(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9); + arg1->unk_2C.y = fn_1_1B574(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9); + arg1->unk_2C.z = fn_1_1B574(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9); + arg1->unk_3C = fn_1_1B574(arg0->unk_3C, arg1->unk_38, arg8, arg9); + arg0->unk_08.x = arg1->unk_14.x; + arg0->unk_08.y = arg1->unk_14.y; + arg0->unk_08.z = arg1->unk_14.z; + arg0->unk_20.x = arg1->unk_2C.x; + arg0->unk_20.y = arg1->unk_2C.y; + arg0->unk_20.z = arg1->unk_2C.z; + arg0->unk_38 = arg1->unk_3C; +} + +void fn_1_2228(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg9, float argA, float argC) +{ + arg1->unk_14.x = fn_1_1B574(arg0->unk_14.x, arg1->unk_08.x, arg8, arg9); + arg1->unk_14.y = fn_1_1B574(arg0->unk_14.y, arg1->unk_08.y, arg8, arg9); + arg1->unk_14.z = fn_1_1B574(arg0->unk_14.z, arg1->unk_08.z, arg8, arg9); + arg1->unk_2C.x = fn_1_1B574(arg0->unk_2C.x, arg1->unk_20.x, arg8, arg9); + arg1->unk_2C.y = fn_1_1B574(arg0->unk_2C.y, arg1->unk_20.y, arg8, arg9); + arg1->unk_2C.z = fn_1_1B574(arg0->unk_2C.z, arg1->unk_20.z, arg8, arg9); + arg1->unk_3C = fn_1_1B574(arg0->unk_3C, arg1->unk_38, arg8, arg9); + arg0->unk_08.x = fn_1_1B554(arg0->unk_08.x, arg1->unk_14.x, argA); + arg0->unk_08.y = fn_1_1B554(arg0->unk_08.y, arg1->unk_14.y, argA); + arg0->unk_08.z = fn_1_1B554(arg0->unk_08.z, arg1->unk_14.z, argA); + arg0->unk_20.x = fn_1_1B554(arg0->unk_20.x, arg1->unk_2C.x, argA); + arg0->unk_20.y = fn_1_1B554(arg0->unk_20.y, arg1->unk_2C.y, argA); + arg0->unk_20.z = fn_1_1B554(arg0->unk_20.z, arg1->unk_2C.z, argA); + arg0->unk_38 = fn_1_1B554(arg0->unk_38, arg1->unk_3C, argA); +} + +void fn_1_25C4(MpexDllUnkStruct2 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) +{ + switch (arg4) { + case 0: + Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0); + break; + case 1: + Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0x40000001); + break; + case 2: + Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0x40000002); + break; + } +} + +void fn_1_273C(MpexDllUnkStruct2 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) +{ + if (arg0->unk_58 != arg0->unk_48[arg2]) { + arg0->unk_58 = arg0->unk_48[arg2]; + switch (arg4) { + case 0: + Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0); + break; + case 1: + Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0x40000001); + break; + case 2: + Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0x40000002); + break; + } + } +} + +void fn_1_28DC(void) { } + +void fn_1_28E0(MpexDllUnkStruct2 *arg0, s32 arg1, Vec *arg2, float arg8, float arg9, float argA, s32 arg3, s32 arg4) +{ + Vec sp4C; + Vec sp40; + Vec sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + + s32 var_r29 = 0; + s32 var_r28 = 0; + s32 var_r26; + + sp40.x = Hu3DData[arg0->unk_40[arg1]].pos.x; + sp40.y = Hu3DData[arg0->unk_40[arg1]].pos.y; + sp40.z = Hu3DData[arg0->unk_40[arg1]].pos.z; + + sp34.x = arg2->x; + sp34.y = arg2->y; + sp34.z = arg2->z; + + sp1C.x = Hu3DData[arg0->unk_40[arg1]].rot.x; + sp1C.y = Hu3DData[arg0->unk_40[arg1]].rot.y; + sp1C.z = Hu3DData[arg0->unk_40[arg1]].rot.z; + + sp10.x = 0.0f; + sp10.y = arg8; + sp10.z = 0.0f; + + if ((sp34.x - sp40.x) >= 0.0f) { + var_r29 = 1; + } + else { + var_r29 = 0; + } + if ((sp34.z - sp40.z) >= 0.0f) { + var_r28 = 1; + } + else { + var_r28 = 0; + } + while (arg3 != 0) { + fn_1_1B7D0(1); + sp28.y = -((atan2d(sp34.z - sp40.z, sp34.x - sp40.x)) - 90.0); + if (sp28.y < 0.0f) { + sp28.y += 360.0f; + } + else if (sp28.y >= 360.0f) { + sp28.y -= 360.0f; + } + if (arg4 != 0) { + if (sp28.y >= 180.0f) { + if ((sp1C.y - sp28.y) >= 180.0f) { + sp1C.y -= 360.0f; + } + if ((sp1C.y - sp28.y) < -180.0f) { + sp1C.y += 360.0f; + } + } + else { + if ((sp1C.y - sp28.y) > 180.0f) { + sp1C.y -= 360.0f; + } + if ((sp1C.y - sp28.y) <= -180.0f) { + sp1C.y += 360.0f; + } + } + } + sp4C.x = (sp40.x += (arg9 * sind(sp28.y))); + sp4C.z = (sp40.z += (arg9 * cosd(sp28.y))); + if (var_r29 == 1) { + if (sp40.x >= sp34.x) { + sp4C.x = sp40.x = sp34.x; + var_r29 = 2; + } + } + else if ((var_r29 == 0) && (sp40.x <= sp34.x)) { + sp4C.x = sp40.x = sp34.x; + var_r29 = 2; + } + if (var_r28 == 1) { + if (sp40.z >= sp34.z) { + sp4C.z = sp40.z = sp34.z; + var_r28 = 2; + } + } + else if ((var_r28 == 0) && (sp40.z <= sp34.z)) { + sp4C.z = sp40.z = sp34.z; + var_r28 = 2; + } + if (arg4 != 0) { + sp1C.y = fn_1_1B554(sp1C.y, sp28.y, argA); + } + Hu3DModelPosSet(arg0->unk_40[arg1], sp4C.x, sp40.y, sp4C.z); + Hu3DModelRotSet(arg0->unk_40[arg1], sp1C.x, sp1C.y, sp1C.z); + + if (var_r29 == 2 && var_r28 == 2) { + break; + } + }; + + sp1C.y = Hu3DData[arg0->unk_40[arg1]].rot.y; + if (arg4 != 0) { + for (var_r26 = 0; var_r26 <= argA; var_r26++) { + fn_1_1B7D0(1); + if (sp10.y >= 180.0f) { + if ((sp1C.y - sp10.y) >= 180.0f) { + sp1C.y -= 360.0f; + } + if ((sp1C.y - sp10.y) < -180.0f) { + sp1C.y += 360.0f; + } + } + else { + if ((sp1C.y - sp10.y) > 180.0f) { + sp1C.y -= 360.0f; + } + if ((sp1C.y - sp10.y) <= -180.0f) { + sp1C.y += 360.0f; + } + } + sp10.z = fn_1_1B52C(sp1C.y, sp10.y, var_r26, argA); + Hu3DModelRotSet(arg0->unk_40[arg1], sp1C.x, sp10.z, sp1C.z); + } + } +} From ce8b7d2667ce5069a15e8247c571fa5e52417b83 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 16 Sep 2024 01:30:57 +0200 Subject: [PATCH 067/311] Fixed mpexDll/main.c by making rodata local and adding ObjectSetup --- config/GMPE01_00/rels/mpexDll/symbols.txt | 340 +++++++++++----------- src/REL/mpexDll/main.c | 2 +- 2 files changed, 171 insertions(+), 171 deletions(-) diff --git a/config/GMPE01_00/rels/mpexDll/symbols.txt b/config/GMPE01_00/rels/mpexDll/symbols.txt index 6e74a99e..a291cf05 100644 --- a/config/GMPE01_00/rels/mpexDll/symbols.txt +++ b/config/GMPE01_00/rels/mpexDll/symbols.txt @@ -3,7 +3,7 @@ _epilog = .text:0x00000054; // type:function size:0x4C scope:global fn_1_A0 = .text:0x000000A0; // type:function size:0xE8 fn_1_188 = .text:0x00000188; // type:function size:0x38 fn_1_1C0 = .text:0x000001C0; // type:function size:0x70 -fn_1_230 = .text:0x00000230; // type:function size:0x68 +ObjectSetup = .text:0x00000230; // type:function size:0x68 fn_1_298 = .text:0x00000298; // type:function size:0xDC fn_1_374 = .text:0x00000374; // type:function size:0xC4 fn_1_438 = .text:0x00000438; // type:function size:0x3E4 @@ -213,175 +213,175 @@ fn_1_1CB80 = .text:0x0001CB80; // type:function size:0x4AC fn_1_1D02C = .text:0x0001D02C; // type:function size:0x16C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double -__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0xC data:4byte -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0xC data:4byte -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x78 -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0xC data:4byte -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0xC data:4byte -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0xC data:4byte -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC data:4byte -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC data:4byte -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0xC data:4byte -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC data:4byte -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC data:4byte -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC data:4byte -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:4byte -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0xB4 -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x6C -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x2C data:4byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0xB0 -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0xC data:4byte -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x18 data:4byte -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0xC data:4byte -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float -lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float -lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float -lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float -lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float -lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float -lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 data:double -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x8 data:double -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float -lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x38 data:4byte -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float -lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 scope:local data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 scope:local data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x78 scope:local +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0xB4 scope:local +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x6C scope:local +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x2C scope:local data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0xB0 scope:local +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 scope:local data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 scope:local data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 scope:local data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 scope:local data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 scope:local data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x38 scope:local data:4byte +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x4F data:string lbl_1_data_4F = .data:0x0000004F; // type:object size:0x50 data:string lbl_1_data_9F = .data:0x0000009F; // type:object size:0x50 data:string diff --git a/src/REL/mpexDll/main.c b/src/REL/mpexDll/main.c index 2c3a4094..599a30ef 100644 --- a/src/REL/mpexDll/main.c +++ b/src/REL/mpexDll/main.c @@ -53,7 +53,7 @@ void fn_1_1C0(omObjData *object) } } -void fn_1_230(void) +void ObjectSetup(void) { mgPracticeEnableF = 0; lbl_1_bss_0 = omInitObjMan(0x3E, 0x2000); From 0f7ed74a4ca7b35c4ca59a62c24286c8a6cc6e0c Mon Sep 17 00:00:00 2001 From: Rainchus Date: Sun, 15 Sep 2024 20:02:06 -0500 Subject: [PATCH 068/311] fix linker warnings --- config/GMPE01_00/rels/mpexDll/symbols.txt | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/config/GMPE01_00/rels/mpexDll/symbols.txt b/config/GMPE01_00/rels/mpexDll/symbols.txt index a291cf05..c49d50a3 100644 --- a/config/GMPE01_00/rels/mpexDll/symbols.txt +++ b/config/GMPE01_00/rels/mpexDll/symbols.txt @@ -382,16 +382,16 @@ lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x38 scope:local data lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 scope:local data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x4F data:string -lbl_1_data_4F = .data:0x0000004F; // type:object size:0x50 data:string -lbl_1_data_9F = .data:0x0000009F; // type:object size:0x50 data:string -lbl_1_data_EF = .data:0x000000EF; // type:object size:0x4E data:string -lbl_1_data_13D = .data:0x0000013D; // type:object size:0x50 data:string -lbl_1_data_18D = .data:0x0000018D; // type:object size:0x4F data:string -lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x22 data:string -lbl_1_data_1FE = .data:0x000001FE; // type:object size:0x1A data:string -lbl_1_data_218 = .data:0x00000218; // type:object size:0x1A data:string -lbl_1_data_232 = .data:0x00000232; // type:object size:0xE data:string +lbl_1_data_0 = .data:0x00000000; // type:object size:0x4F scope:local data:string +lbl_1_data_4F = .data:0x0000004F; // type:object size:0x50 scope:local data:string +lbl_1_data_9F = .data:0x0000009F; // type:object size:0x50 scope:local data:string +lbl_1_data_EF = .data:0x000000EF; // type:object size:0x4E scope:local data:string +lbl_1_data_13D = .data:0x0000013D; // type:object size:0x50 scope:local data:string +lbl_1_data_18D = .data:0x0000018D; // type:object size:0x4F scope:local data:string +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x22 scope:local data:string +lbl_1_data_1FE = .data:0x000001FE; // type:object size:0x1A scope:local data:string +lbl_1_data_218 = .data:0x00000218; // type:object size:0x1A scope:local data:string +lbl_1_data_232 = .data:0x00000232; // type:object size:0xE scope:local data:string lbl_1_data_240 = .data:0x00000240; // type:object size:0x54 lbl_1_data_294 = .data:0x00000294; // type:object size:0x4 data:4byte lbl_1_data_298 = .data:0x00000298; // type:object size:0x4 data:4byte From d9c4561633e849b3560be0e045d1d232caf206e0 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 16 Sep 2024 03:29:19 +0200 Subject: [PATCH 069/311] Finished mpexDll/mgname.c --- include/REL/mpexDll.h | 11 ++ src/REL/mpexDll/mgname.c | 377 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 388 insertions(+) create mode 100644 src/REL/mpexDll/mgname.c diff --git a/include/REL/mpexDll.h b/include/REL/mpexDll.h index cae66a15..89673303 100644 --- a/include/REL/mpexDll.h +++ b/include/REL/mpexDll.h @@ -26,6 +26,15 @@ typedef struct MpexDllUnkStruct2 { /* 0x58 */ u32 unk_58; } MpexDllUnkStruct2; /* size = unknown */ +typedef struct MpexDllUnkStruct3 { + /* 0x00 */ char unk00[0x30]; + /* 0x30 */ s16 unk_30; + /* 0x32 */ s16 unk_32; + /* 0x34 */ char unk34[6]; + /* 0x3A */ s16 unk_3A[0x10]; + /* 0x5A */ s16 unk_5A[0x10]; +} MpexDllUnkStruct3; /* size = unknown */ + s32 fn_1_3044(Process *arg0); // s32 fn_1_1B52C(float, float, float, float); seems implicit in main.c @@ -34,4 +43,6 @@ s32 fn_1_1B574(float, float, float, float); s32 fn_1_1B64C(float, float, float, float); s32 fn_1_1B7D0(s32 arg0); +extern u8 lbl_1_bss_6AC; + #endif diff --git a/src/REL/mpexDll/mgname.c b/src/REL/mpexDll/mgname.c new file mode 100644 index 00000000..9bfda4cb --- /dev/null +++ b/src/REL/mpexDll/mgname.c @@ -0,0 +1,377 @@ +#include "ext_math.h" +#include "game/armem.h" +#include "game/audio.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "REL/mpexDll.h" + +s32 lbl_1_data_788[0xC6] = { + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0x140025, + 0x140026, + 0x140027, + 0x140028, + 0x140029, + 0x14002A, + 0x14002B, + 0x14002C, + 0x14002D, + 0x14002E, + 0x140025, + 0x140025, + 0x140025, + 0x14002F, + 0x140025, + 0x140025, + 0x140025, + 0x140034, + 0x140035, + 0x140036, + 0x140037, + 0x140038, + 0x140039, + 0x14003A, + 0x14003B, + 0x14003C, + 0x14003D, + 0x14003E, + 0x14003F, + 0x140040, + 0x140041, + 0x140042, + 0x140043, + 0x140044, + 0x140045, + 0x140046, + 0x140047, + 0x140048, + 0x140049, + 0x14004A, + 0x14004B, + 0x14004C, + 0x14004D, + 0x140042, + 0x140032, + 0x140042, + 0x140042, + 0x140042, + 0x140042, + 0x14004E, + 0x14004F, + 0x140050, + 0x140051, + 0x140052, + 0x140053, + 0x140054, + 0x140055, + 0x140056, + 0x140057, + 0x140058, + 0x140059, + 0x14005A, + 0x14005B, + 0x14005C, + 0x14005D, + 0x14005E, + 0x14005F, + 0x140060, + 0x140061, + 0x140062, + 0x140063, + 0x140064, + 0x140065, + 0x140066, + 0x140067, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x14002F, + 0x140033, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140030, + 0x140031, + 0x140025, + 0x140025, +}; + +s32 fn_1_1CB80(MpexDllUnkStruct3 *arg0, u8 *arg1, s16 arg2) +{ + u8 *var_r31; + s16 var_r30; + s16 *var_r29; + s16 var_r28; + s32 *var_r27; + s16 var_r26; + s32 var_r25; + s16 var_r23; + s16 *var_r22; + AnimData **var_r21; + s16 var_r20; + s16 var_r19; + + var_r27 = lbl_1_data_788; + + for (var_r23 = 0; var_r23 < 0x10; var_r23++) { + if (arg0->unk_3A[var_r23] == -1) { + break; + } + } + if (var_r23 == 0x10) { + return -1; + } + var_r21 = HuMemDirectMalloc(HEAP_SYSTEM, 0x190); + var_r22 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); + var_r29 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); + + for (var_r31 = arg1, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) { + if (var_r31[0] == 0x20 || var_r31[0] == 0x10) { + var_r30 += 0xE; + } + else if (var_r31[0] < 0x30 || var_r31[0] == 0x80 || var_r31[0] == 0x81) { + continue; + } + else { + if (var_r31[1] == 0x80) { + if ((var_r31[0] >= 0x96) && (var_r31[0] <= 0xA4)) { + var_r25 = var_r27[var_r31[0] + 0x6A]; + } + else if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { + var_r25 = var_r27[var_r31[0] + 0x65]; + } + else if ((var_r31[0] >= 0xD6) && (var_r31[0] <= 0xE4)) { + var_r25 = var_r27[var_r31[0] + 0x43]; + } + else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { + var_r25 = var_r27[var_r31[0] + 0x3E]; + } + } + else if (var_r31[1] == 0x81) { + if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { + var_r25 = var_r27[var_r31[0] + 0x6A]; + } + else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { + var_r25 = var_r27[var_r31[0] + 0x43]; + } + } + else { + var_r25 = var_r27[var_r31[0]]; + } + var_r21[var_r28] = HuSprAnimReadFile(var_r25); + var_r22[var_r28] = var_r30; + if ((var_r31[0] >= 0x61) && (var_r31[0] <= 0x7A)) { + var_r29[var_r28] = 2; + var_r30 += 0x12; + } + else if ((var_r31[0] == 0xC2) || (var_r31[0] == 0xC3)) { + var_r29[var_r28] = 0; + var_r30 += 0x12; + } + else if (var_r31[0] == 0x5C) { + var_r29[var_r28] = 0; + var_r30 += 8; + } + else if ((var_r31[0] >= 0x87) && (var_r31[0] <= 0x8F)) { + var_r29[var_r28] = 4; + var_r30 += 0x18; + } + else if ((var_r31[0] >= 0xC7) && (var_r31[0] <= 0xCF)) { + var_r29[var_r28] = 4; + var_r30 += 0x18; + } + else if ((var_r31[0] == 0x3D) || (var_r31[0] == 0x84)) { + var_r29[var_r28] = 0; + var_r30 += 0x14; + } + else { + var_r29[var_r28] = 0; + var_r30 += 0x1C; + } + var_r28++; + } + } + var_r20 = HuSprGrpCreate(var_r28); + arg0->unk_3A[var_r23] = var_r20; + arg0->unk_30 = var_r30; + var_r30 = (var_r30 / 2) - 0xE; + for (var_r26 = 0; var_r26 < var_r28; var_r26++) { + var_r19 = HuSprCreate(var_r21[var_r26], 0, 0); + HuSprGrpMemberSet(var_r20, var_r26, var_r19); + HuSprPosSet(var_r20, var_r26, var_r22[var_r26] - var_r30, var_r29[var_r26]); + } + + arg0->unk_32 = var_r28; + HuMemDirectFree(var_r21); + HuMemDirectFree(var_r22); + HuMemDirectFree(var_r29); + return var_r20; +} + +s32 fn_1_1D02C(u32 arg0) +{ + MpexDllUnkStruct3 sp10; + s16 spC[2]; + + u8 *var_r31; + s32 var_r30; + s16 var_r29; + u8 *var_r28; + s32 var_r27; + s32 var_r26; + s16 var_r25; + + var_r25 = GWGameStat.language; + lbl_1_bss_6AC = var_r25; + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + sp10.unk_5A[var_r30] = sp10.unk_3A[var_r30] = -1; + } + var_r28 = MessData_MesPtrGet(messDataPtr, arg0); + var_r31 = var_r28; + var_r30 = 0; + var_r29 = 0; + + while (TRUE) { + if (var_r31[0] == 0 || var_r31[0] == 0xA) { + if (var_r31[0] == 0) { + var_r30 = 1; + } + var_r31[0] = 0; + if (lbl_1_bss_6AC == 0) { + var_r27 = 1; + } + else { + var_r27 = 0; + } + var_r26 = fn_1_1CB80(&sp10, var_r28, var_r27); + HuSprGrpPosSet(sp10.unk_3A[var_r29], 288.0f, 240.0f); + spC[var_r29] = sp10.unk_30; + var_r29++; + if (var_r30 == 0) { + var_r28 = var_r31 + 1; + } + else { + break; + } + } + var_r31++; + } + return var_r26; +} From 373e981f0d4424bd00820302d5957d631ef9ee8d Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 16 Sep 2024 03:29:19 +0200 Subject: [PATCH 070/311] Finished mpexDll/mgname.c --- include/REL/mpexDll.h | 11 ++ src/REL/mpexDll/mgname.c | 377 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 388 insertions(+) create mode 100644 src/REL/mpexDll/mgname.c diff --git a/include/REL/mpexDll.h b/include/REL/mpexDll.h index cae66a15..89673303 100644 --- a/include/REL/mpexDll.h +++ b/include/REL/mpexDll.h @@ -26,6 +26,15 @@ typedef struct MpexDllUnkStruct2 { /* 0x58 */ u32 unk_58; } MpexDllUnkStruct2; /* size = unknown */ +typedef struct MpexDllUnkStruct3 { + /* 0x00 */ char unk00[0x30]; + /* 0x30 */ s16 unk_30; + /* 0x32 */ s16 unk_32; + /* 0x34 */ char unk34[6]; + /* 0x3A */ s16 unk_3A[0x10]; + /* 0x5A */ s16 unk_5A[0x10]; +} MpexDllUnkStruct3; /* size = unknown */ + s32 fn_1_3044(Process *arg0); // s32 fn_1_1B52C(float, float, float, float); seems implicit in main.c @@ -34,4 +43,6 @@ s32 fn_1_1B574(float, float, float, float); s32 fn_1_1B64C(float, float, float, float); s32 fn_1_1B7D0(s32 arg0); +extern u8 lbl_1_bss_6AC; + #endif diff --git a/src/REL/mpexDll/mgname.c b/src/REL/mpexDll/mgname.c new file mode 100644 index 00000000..9bfda4cb --- /dev/null +++ b/src/REL/mpexDll/mgname.c @@ -0,0 +1,377 @@ +#include "ext_math.h" +#include "game/armem.h" +#include "game/audio.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "REL/mpexDll.h" + +s32 lbl_1_data_788[0xC6] = { + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0x140025, + 0x140026, + 0x140027, + 0x140028, + 0x140029, + 0x14002A, + 0x14002B, + 0x14002C, + 0x14002D, + 0x14002E, + 0x140025, + 0x140025, + 0x140025, + 0x14002F, + 0x140025, + 0x140025, + 0x140025, + 0x140034, + 0x140035, + 0x140036, + 0x140037, + 0x140038, + 0x140039, + 0x14003A, + 0x14003B, + 0x14003C, + 0x14003D, + 0x14003E, + 0x14003F, + 0x140040, + 0x140041, + 0x140042, + 0x140043, + 0x140044, + 0x140045, + 0x140046, + 0x140047, + 0x140048, + 0x140049, + 0x14004A, + 0x14004B, + 0x14004C, + 0x14004D, + 0x140042, + 0x140032, + 0x140042, + 0x140042, + 0x140042, + 0x140042, + 0x14004E, + 0x14004F, + 0x140050, + 0x140051, + 0x140052, + 0x140053, + 0x140054, + 0x140055, + 0x140056, + 0x140057, + 0x140058, + 0x140059, + 0x14005A, + 0x14005B, + 0x14005C, + 0x14005D, + 0x14005E, + 0x14005F, + 0x140060, + 0x140061, + 0x140062, + 0x140063, + 0x140064, + 0x140065, + 0x140066, + 0x140067, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x14002F, + 0x140033, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140025, + 0x140030, + 0x140031, + 0x140025, + 0x140025, +}; + +s32 fn_1_1CB80(MpexDllUnkStruct3 *arg0, u8 *arg1, s16 arg2) +{ + u8 *var_r31; + s16 var_r30; + s16 *var_r29; + s16 var_r28; + s32 *var_r27; + s16 var_r26; + s32 var_r25; + s16 var_r23; + s16 *var_r22; + AnimData **var_r21; + s16 var_r20; + s16 var_r19; + + var_r27 = lbl_1_data_788; + + for (var_r23 = 0; var_r23 < 0x10; var_r23++) { + if (arg0->unk_3A[var_r23] == -1) { + break; + } + } + if (var_r23 == 0x10) { + return -1; + } + var_r21 = HuMemDirectMalloc(HEAP_SYSTEM, 0x190); + var_r22 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); + var_r29 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); + + for (var_r31 = arg1, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) { + if (var_r31[0] == 0x20 || var_r31[0] == 0x10) { + var_r30 += 0xE; + } + else if (var_r31[0] < 0x30 || var_r31[0] == 0x80 || var_r31[0] == 0x81) { + continue; + } + else { + if (var_r31[1] == 0x80) { + if ((var_r31[0] >= 0x96) && (var_r31[0] <= 0xA4)) { + var_r25 = var_r27[var_r31[0] + 0x6A]; + } + else if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { + var_r25 = var_r27[var_r31[0] + 0x65]; + } + else if ((var_r31[0] >= 0xD6) && (var_r31[0] <= 0xE4)) { + var_r25 = var_r27[var_r31[0] + 0x43]; + } + else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { + var_r25 = var_r27[var_r31[0] + 0x3E]; + } + } + else if (var_r31[1] == 0x81) { + if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { + var_r25 = var_r27[var_r31[0] + 0x6A]; + } + else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { + var_r25 = var_r27[var_r31[0] + 0x43]; + } + } + else { + var_r25 = var_r27[var_r31[0]]; + } + var_r21[var_r28] = HuSprAnimReadFile(var_r25); + var_r22[var_r28] = var_r30; + if ((var_r31[0] >= 0x61) && (var_r31[0] <= 0x7A)) { + var_r29[var_r28] = 2; + var_r30 += 0x12; + } + else if ((var_r31[0] == 0xC2) || (var_r31[0] == 0xC3)) { + var_r29[var_r28] = 0; + var_r30 += 0x12; + } + else if (var_r31[0] == 0x5C) { + var_r29[var_r28] = 0; + var_r30 += 8; + } + else if ((var_r31[0] >= 0x87) && (var_r31[0] <= 0x8F)) { + var_r29[var_r28] = 4; + var_r30 += 0x18; + } + else if ((var_r31[0] >= 0xC7) && (var_r31[0] <= 0xCF)) { + var_r29[var_r28] = 4; + var_r30 += 0x18; + } + else if ((var_r31[0] == 0x3D) || (var_r31[0] == 0x84)) { + var_r29[var_r28] = 0; + var_r30 += 0x14; + } + else { + var_r29[var_r28] = 0; + var_r30 += 0x1C; + } + var_r28++; + } + } + var_r20 = HuSprGrpCreate(var_r28); + arg0->unk_3A[var_r23] = var_r20; + arg0->unk_30 = var_r30; + var_r30 = (var_r30 / 2) - 0xE; + for (var_r26 = 0; var_r26 < var_r28; var_r26++) { + var_r19 = HuSprCreate(var_r21[var_r26], 0, 0); + HuSprGrpMemberSet(var_r20, var_r26, var_r19); + HuSprPosSet(var_r20, var_r26, var_r22[var_r26] - var_r30, var_r29[var_r26]); + } + + arg0->unk_32 = var_r28; + HuMemDirectFree(var_r21); + HuMemDirectFree(var_r22); + HuMemDirectFree(var_r29); + return var_r20; +} + +s32 fn_1_1D02C(u32 arg0) +{ + MpexDllUnkStruct3 sp10; + s16 spC[2]; + + u8 *var_r31; + s32 var_r30; + s16 var_r29; + u8 *var_r28; + s32 var_r27; + s32 var_r26; + s16 var_r25; + + var_r25 = GWGameStat.language; + lbl_1_bss_6AC = var_r25; + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + sp10.unk_5A[var_r30] = sp10.unk_3A[var_r30] = -1; + } + var_r28 = MessData_MesPtrGet(messDataPtr, arg0); + var_r31 = var_r28; + var_r30 = 0; + var_r29 = 0; + + while (TRUE) { + if (var_r31[0] == 0 || var_r31[0] == 0xA) { + if (var_r31[0] == 0) { + var_r30 = 1; + } + var_r31[0] = 0; + if (lbl_1_bss_6AC == 0) { + var_r27 = 1; + } + else { + var_r27 = 0; + } + var_r26 = fn_1_1CB80(&sp10, var_r28, var_r27); + HuSprGrpPosSet(sp10.unk_3A[var_r29], 288.0f, 240.0f); + spC[var_r29] = sp10.unk_30; + var_r29++; + if (var_r30 == 0) { + var_r28 = var_r31 + 1; + } + else { + break; + } + } + var_r31++; + } + return var_r26; +} From 74bae4a2ff1064eef1af1b5fa3bf41cb43574544 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 16 Sep 2024 03:47:36 +0200 Subject: [PATCH 071/311] Adapted SeqWork into mpexDll/mgname.c --- configure.py | 2 +- include/REL/mpexDll.h | 9 --------- src/REL/mpexDll/mgname.c | 19 ++++++++++--------- 3 files changed, 11 insertions(+), 19 deletions(-) diff --git a/configure.py b/configure.py index d3ccd104..bc9efeb1 100644 --- a/configure.py +++ b/configure.py @@ -1302,7 +1302,7 @@ config.libs = [ Object(Matching, "REL/mpexDll/main.c"), Object(NonMatching, "REL/mpexDll/mpex.c"), Object(NonMatching, "REL/mpexDll/charsel.c"), - Object(NonMatching, "REL/mpexDll/mgname.c"), + Object(Matching, "REL/mpexDll/mgname.c"), }, ), Rel( diff --git a/include/REL/mpexDll.h b/include/REL/mpexDll.h index 89673303..3c4c3d78 100644 --- a/include/REL/mpexDll.h +++ b/include/REL/mpexDll.h @@ -26,15 +26,6 @@ typedef struct MpexDllUnkStruct2 { /* 0x58 */ u32 unk_58; } MpexDllUnkStruct2; /* size = unknown */ -typedef struct MpexDllUnkStruct3 { - /* 0x00 */ char unk00[0x30]; - /* 0x30 */ s16 unk_30; - /* 0x32 */ s16 unk_32; - /* 0x34 */ char unk34[6]; - /* 0x3A */ s16 unk_3A[0x10]; - /* 0x5A */ s16 unk_5A[0x10]; -} MpexDllUnkStruct3; /* size = unknown */ - s32 fn_1_3044(Process *arg0); // s32 fn_1_1B52C(float, float, float, float); seems implicit in main.c diff --git a/src/REL/mpexDll/mgname.c b/src/REL/mpexDll/mgname.c index 9bfda4cb..62e29ea7 100644 --- a/src/REL/mpexDll/mgname.c +++ b/src/REL/mpexDll/mgname.c @@ -3,6 +3,7 @@ #include "game/audio.h" #include "game/hsfman.h" #include "game/hsfmotion.h" +#include "game/minigame_seq.h" #include "game/objsub.h" #include "game/pad.h" #include "game/printfunc.h" @@ -213,7 +214,7 @@ s32 lbl_1_data_788[0xC6] = { 0x140025, }; -s32 fn_1_1CB80(MpexDllUnkStruct3 *arg0, u8 *arg1, s16 arg2) +s32 fn_1_1CB80(SeqWork *arg0, u8 *arg1, s16 arg2) { u8 *var_r31; s16 var_r30; @@ -231,7 +232,7 @@ s32 fn_1_1CB80(MpexDllUnkStruct3 *arg0, u8 *arg1, s16 arg2) var_r27 = lbl_1_data_788; for (var_r23 = 0; var_r23 < 0x10; var_r23++) { - if (arg0->unk_3A[var_r23] == -1) { + if (arg0->spr_grp[var_r23] == -1) { break; } } @@ -309,8 +310,8 @@ s32 fn_1_1CB80(MpexDllUnkStruct3 *arg0, u8 *arg1, s16 arg2) } } var_r20 = HuSprGrpCreate(var_r28); - arg0->unk_3A[var_r23] = var_r20; - arg0->unk_30 = var_r30; + arg0->spr_grp[var_r23] = var_r20; + arg0->alt_word_len = var_r30; var_r30 = (var_r30 / 2) - 0xE; for (var_r26 = 0; var_r26 < var_r28; var_r26++) { var_r19 = HuSprCreate(var_r21[var_r26], 0, 0); @@ -318,7 +319,7 @@ s32 fn_1_1CB80(MpexDllUnkStruct3 *arg0, u8 *arg1, s16 arg2) HuSprPosSet(var_r20, var_r26, var_r22[var_r26] - var_r30, var_r29[var_r26]); } - arg0->unk_32 = var_r28; + arg0->word_len = var_r28; HuMemDirectFree(var_r21); HuMemDirectFree(var_r22); HuMemDirectFree(var_r29); @@ -327,7 +328,7 @@ s32 fn_1_1CB80(MpexDllUnkStruct3 *arg0, u8 *arg1, s16 arg2) s32 fn_1_1D02C(u32 arg0) { - MpexDllUnkStruct3 sp10; + SeqWork sp10; s16 spC[2]; u8 *var_r31; @@ -341,7 +342,7 @@ s32 fn_1_1D02C(u32 arg0) var_r25 = GWGameStat.language; lbl_1_bss_6AC = var_r25; for (var_r30 = 0; var_r30 < 0x10; var_r30++) { - sp10.unk_5A[var_r30] = sp10.unk_3A[var_r30] = -1; + sp10.sprite[var_r30] = sp10.spr_grp[var_r30] = -1; } var_r28 = MessData_MesPtrGet(messDataPtr, arg0); var_r31 = var_r28; @@ -361,8 +362,8 @@ s32 fn_1_1D02C(u32 arg0) var_r27 = 0; } var_r26 = fn_1_1CB80(&sp10, var_r28, var_r27); - HuSprGrpPosSet(sp10.unk_3A[var_r29], 288.0f, 240.0f); - spC[var_r29] = sp10.unk_30; + HuSprGrpPosSet(sp10.spr_grp[var_r29], 288.0f, 240.0f); + spC[var_r29] = sp10.alt_word_len; var_r29++; if (var_r30 == 0) { var_r28 = var_r31 + 1; From 500527a39068c9915583c2adaf48b285fc5ff946 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sun, 15 Sep 2024 22:31:19 -0500 Subject: [PATCH 072/311] Finish m455/stage.c --- config/GMPE01_00/rels/m455Dll/symbols.txt | 36 +- configure.py | 2 +- include/REL/m455Dll.h | 12 + include/dolphin/gx/GXBump.h | 5 +- src/REL/m455Dll/main.c | 6 +- src/REL/m455Dll/stage.c | 1807 +++++++++++++++++++++ 6 files changed, 1843 insertions(+), 25 deletions(-) create mode 100644 include/REL/m455Dll.h create mode 100644 src/REL/m455Dll/stage.c diff --git a/config/GMPE01_00/rels/m455Dll/symbols.txt b/config/GMPE01_00/rels/m455Dll/symbols.txt index 36dee25b..93a213d8 100644 --- a/config/GMPE01_00/rels/m455Dll/symbols.txt +++ b/config/GMPE01_00/rels/m455Dll/symbols.txt @@ -244,27 +244,28 @@ lbl_1_data_179 = .data:0x00000179; // type:object size:0xB scope:local data:stri lbl_1_data_184 = .data:0x00000184; // type:object size:0x8 data:float lbl_1_data_18C = .data:0x0000018C; // type:object size:0x10 lbl_1_data_19C = .data:0x0000019C; // type:object size:0x3C data:float -lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x30 -lbl_1_data_208 = .data:0x00000208; // type:object size:0x1 data:byte +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x30 data:float +lbl_1_data_208 = .data:0x00000208; // type:object size:0x4 data:byte lbl_1_data_20C = .data:0x0000020C; // type:object size:0x50 lbl_1_data_25C = .data:0x0000025C; // type:object size:0x7 data:string lbl_1_data_263 = .data:0x00000263; // type:object size:0x7 data:string -lbl_1_data_26A = .data:0x0000026A; // type:object size:0x1 data:byte -lbl_1_data_26E = .data:0x0000026E; // type:object size:0x1 data:byte -lbl_1_data_272 = .data:0x00000272; // type:object size:0x6 data:byte -lbl_1_data_278 = .data:0x00000278; // type:object size:0x30 -lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x138 +lbl_1_data_26A = .data:0x0000026A; // type:object size:0x4 data:byte +lbl_1_data_26E = .data:0x0000026E; // type:object size:0x4 data:byte +lbl_1_data_272 = .data:0x00000272; // type:object size:0x4 data:byte +lbl_1_data_278 = .data:0x00000278; // type:object size:0x30 data:float +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x138 data:float lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x68 -lbl_1_data_448 = .data:0x00000448; // type:object size:0xD0 -lbl_1_data_518 = .data:0x00000518; // type:object size:0xD0 -lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0x18 -lbl_1_data_600 = .data:0x00000600; // type:object size:0x1 data:byte -lbl_1_data_604 = .data:0x00000604; // type:object size:0x6C +lbl_1_data_448 = .data:0x00000448; // type:object size:0xD0 data:float +lbl_1_data_518 = .data:0x00000518; // type:object size:0xD0 data:float +lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0x18 data:float +lbl_1_data_600 = .data:0x00000600; // type:object size:0x4 data:byte +lbl_1_data_604 = .data:0x00000604; // type:object size:0x6C data:float lbl_1_data_670 = .data:0x00000670; // type:object size:0x24 -lbl_1_data_694 = .data:0x00000694; // type:object size:0x8 data:byte -lbl_1_data_69C = .data:0x0000069C; // type:object size:0x1 data:byte -lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x10 -lbl_1_data_6B0 = .data:0x000006B0; // type:object size:0x10 +lbl_1_data_694 = .data:0x00000694; // type:object size:0x4 data:byte +lbl_1_data_698 = .data:0x00000698; // type:object size:0x4 data:byte +lbl_1_data_69C = .data:0x0000069C; // type:object size:0x4 data:byte +lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x10 data:float +lbl_1_data_6B0 = .data:0x000006B0; // type:object size:0x10 data:float lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:float @@ -282,7 +283,8 @@ lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0xC data:4byte lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index b71c3445..cf5bbdab 100644 --- a/configure.py +++ b/configure.py @@ -1198,7 +1198,7 @@ config.libs = [ "m455Dll", # Rumble Fishing objects={ Object(Matching, "REL/m455Dll/main.c"), - Object(NonMatching, "REL/m455Dll/stage.c"), + Object(Matching, "REL/m455Dll/stage.c"), }, ), Rel( diff --git a/include/REL/m455Dll.h b/include/REL/m455Dll.h new file mode 100644 index 00000000..af47ff3c --- /dev/null +++ b/include/REL/m455Dll.h @@ -0,0 +1,12 @@ +#ifndef M455DLL_H +#define M455DLL_H + +#include "game/object.h" + +void fn_1_32C4(Process *objman); +void fn_1_340C(void); +s32 fn_1_6698(Vec *arg0, float arg1, float arg2, s32 arg3); +float fn_1_687C(void); +s32 fn_1_6CB0(Vec *arg0, float arg1); + +#endif diff --git a/include/dolphin/gx/GXBump.h b/include/dolphin/gx/GXBump.h index 74aeffed..cc2cb976 100644 --- a/include/dolphin/gx/GXBump.h +++ b/include/dolphin/gx/GXBump.h @@ -19,8 +19,9 @@ void GXSetTevIndirect(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXIndTe GXIndTexBiasSel bias_sel, GXIndTexMtxID matrix_sel, GXIndTexWrap wrap_s, GXIndTexWrap wrap_t, GXBool add_prev, GXBool ind_lod, GXIndTexAlphaSel alpha_sel); -void GXSetTevIndWarp(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXBool signed_offsets, - GXBool replace_mode, GXIndTexMtxID matrix_sel); +//Must be implicit to match m455dll +//void GXSetTevIndWarp(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXBool signed_offsets, +// GXBool replace_mode, GXIndTexMtxID matrix_sel); void GXSetTevIndTile (GXTevStageID tev_stage, GXIndTexStageID ind_stage, u16 tilesize_s, u16 tilesize_t, diff --git a/src/REL/m455Dll/main.c b/src/REL/m455Dll/main.c index 4fe5b14f..3a41ee0b 100644 --- a/src/REL/m455Dll/main.c +++ b/src/REL/m455Dll/main.c @@ -12,17 +12,13 @@ #include "game/minigame_seq.h" #include "game/gamework_data.h" #include "game/chrman.h" +#include "REL/m455Dll.h" #include "ext_math.h" #include "math.h" #include "rel_sqrt_consts.h" -void fn_1_32C4(Process *objman); -void fn_1_340C(void); -void fn_1_6698(Vec *arg0, float arg1, float arg2, s32 arg3); -float fn_1_687C(void); -void fn_1_6CB0(Vec *arg0, float arg1); typedef struct camera_view_params { float zoom; diff --git a/src/REL/m455Dll/stage.c b/src/REL/m455Dll/stage.c new file mode 100644 index 00000000..c7873251 --- /dev/null +++ b/src/REL/m455Dll/stage.c @@ -0,0 +1,1807 @@ +#include "game/object.h" +#include "game/objsub.h" +#include "game/hsfman.h" +#include "game/hsfdraw.h" +#include "game/hsfanim.h" + +#include "game/hsfmotion.h" +#include "game/pad.h" + +#include "game/wipe.h" +#include "game/frand.h" +#include "game/audio.h" +#include "game/minigame_seq.h" +#include "game/gamework_data.h" +#include "game/chrman.h" +#include "game/sprite.h" + +#include "REL/m455Dll.h" + +#include "ext_math.h" +#include "math.h" + +Process *lbl_1_bss_70; +omObjData *lbl_1_bss_6C; +omObjData *lbl_1_bss_68; +omObjData *lbl_1_bss_64; +omObjData *lbl_1_bss_60; +omObjData *lbl_1_bss_5C; +omObjData *lbl_1_bss_58; +Vec lbl_1_bss_4C; + +typedef struct struct_bss48 { + AnimData *unk0[4]; + s32 unk10[4]; + Vec unk20; +} StructBss48; + +StructBss48 *lbl_1_bss_48; + +Vec lbl_1_data_1D8[4] = { + { -460, 0, 150 }, + { 460, 0, 150 }, + { -460, 0, -150 }, + { 460, 0, -150 }, +}; + +GXColor lbl_1_data_208 = { 255, 255, 255, 255 }; + +typedef struct struct_data20C { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + BOOL unk10; +} StructData20C; + +StructData20C lbl_1_data_20C[4] = { + { 400, 400, 400, 400, FALSE }, + { 640, 480, 320, 240, TRUE }, + { 640, 480, 640, 480, FALSE }, + { 640, 480, 320, 240, TRUE }, +}; + +void fn_1_8EAC(void); + +void fn_1_6914(omObjData *object); +void fn_1_7280(omObjData *object); +void fn_1_75C0(omObjData *object); +void fn_1_7C48(omObjData *object); +void fn_1_891C(omObjData *object); + +omObjData *fn_1_347C(void); + +void fn_1_32C4(Process *objman) +{ + lbl_1_bss_70 = objman; + fn_1_8EAC(); + lbl_1_bss_68 = omAddObjEx(lbl_1_bss_70, 50, 0, 0, -1, fn_1_6914); + lbl_1_bss_64 = omAddObjEx(lbl_1_bss_70, 50, 8, 0, -1, fn_1_7280); + lbl_1_bss_60 = omAddObjEx(lbl_1_bss_70, 50, 1, 0, -1, fn_1_75C0); + lbl_1_bss_5C = omAddObjEx(lbl_1_bss_70, 50, 0, 0, -1, fn_1_7C48); + lbl_1_bss_58 = omAddObjEx(lbl_1_bss_70, 50, 0, 0, -1, fn_1_891C); + lbl_1_bss_6C = fn_1_347C(); +} + +void fn_1_4104(omObjData *object); + +void fn_1_6C60(omObjData *object); +void fn_1_7430(omObjData *object); +void fn_1_7974(omObjData *object); +void fn_1_8474(omObjData *object); + +void fn_1_9168(void); + +void fn_1_340C(void) +{ + fn_1_4104(lbl_1_bss_6C); + fn_1_9168(); + fn_1_6C60(lbl_1_bss_68); + fn_1_7430(lbl_1_bss_64); + fn_1_7974(lbl_1_bss_60); + fn_1_8474(lbl_1_bss_5C); +} + +typedef struct work_347C_unk4 { + void *unk0; + u32 unk4; + BOOL unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; +} Work347CUnk4; + +typedef struct work_347C_unk74 { + Vec unk0; + Vec unkC; + float unk18; + u16 unk1C; + u16 unk1E; +} Work347CUnk74; + +typedef struct work_347C { + s32 unk0; + Work347CUnk4 unk4[4]; + Work347CUnk74 unk74[64]; + float unk874[26][2]; + float unk944[26][2]; + void *unkA14; + u32 unkA18; + AnimData *unkA1C[9]; + float unkA40; + float unkA44; + u32 unkA48; + u32 unkA4C; + u32 unkA50; + float unkA54; + float unkA58; +} Work347C; + +void fn_1_3DDC(omObjData *object); + +void fn_1_4180(ModelData *model, Mtx matrix); +void fn_1_49AC(ModelData *model, Mtx matrix); +void fn_1_4E64(ModelData *model, Mtx matrix); + +omObjData *fn_1_347C(void) +{ + omObjData *object = omAddObjEx(lbl_1_bss_70, 127, 15, 0, -1, fn_1_3DDC); + Work347C *work = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work347C), MEMORY_DEFAULT_NUM); + Work347C *work2 = work; + Work347CUnk74 *workUnk74 = &work->unk74[0]; + Work347CUnk4 *workUnk4; + s32 id; + ModelData *modelP; + s32 i; + + work->unkA40 = 0; + work->unkA44 = 0; + work->unkA48 = 0; + work->unkA4C = 0; + work->unkA50 = 0; + work->unkA54 = 0; + work->unkA58 = 0; + + object->model[0] = id = Hu3DHookFuncCreate(fn_1_4E64); + Hu3DModelCameraSet(id, HU3D_CAM0); + Hu3DModelLayerSet(id, 5); + modelP = &Hu3DData[id]; + modelP->unk_120 = work; + work->unkA1C[4] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M455, 21), MEMORY_DEFAULT_NUM)); + work->unkA1C[5] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M455, 22), MEMORY_DEFAULT_NUM)); + work->unkA1C[6] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M455, 23), MEMORY_DEFAULT_NUM)); + work->unkA1C[7] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M455, 24), MEMORY_DEFAULT_NUM)); + work->unkA1C[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M455, 17), MEMORY_DEFAULT_NUM)); + work->unkA1C[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M455, 18), MEMORY_DEFAULT_NUM)); + work->unkA1C[2] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M455, 19), MEMORY_DEFAULT_NUM)); + work->unkA1C[3] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M455, 20), MEMORY_DEFAULT_NUM)); + work->unkA1C[8] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M455, 25), MEMORY_DEFAULT_NUM)); + object->model[1] = id = Hu3DHookFuncCreate(fn_1_4180); + Hu3DModelCameraSet(id, HU3D_CAM0); + Hu3DModelLayerSet(id, 0); + modelP = &Hu3DData[id]; + modelP->unk_120 = work; + work2->unkA18 = 16384; + work2->unkA14 = HuMemDirectMallocNum(HEAP_SYSTEM, work2->unkA18, MEMORY_DEFAULT_NUM); + DCFlushRange(work2->unkA14, 16384); + GXBeginDisplayList(work2->unkA14, work2->unkA18); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition2f32(-0.5f, -0.5f); + GXTexCoord2f32(0, 0); + GXPosition2f32(0.5f, -0.5f); + GXTexCoord2f32(1, 0); + GXPosition2f32(0.5f, 0.5f); + GXTexCoord2f32(1, 1); + GXPosition2f32(-0.5f, 0.5f); + GXTexCoord2f32(0, 1); + work2->unkA18 = GXEndDisplayList(); + for(i=0; i<26; i++) { + work2->unk874[i][0] = 0; + work2->unk874[i][1] = 0; + work2->unk944[i][0] = 0; + work2->unk944[i][1] = 0; + } + + object->model[3] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M455, 5)); + Hu3DModelPosSet(id, 0, 0, -5000); + Hu3DModelScaleSet(id, 2, 2, 2); + Hu3DModelCameraSet(id, HU3D_CAM0); + Hu3DModelLayerSet(id, 1); + id = Hu3DTexScrollCreate(object->model[3], "S3TCsk"); + Hu3DTexScrollPosMoveSet(id, -0.00009166667f, 0, 0); + id = Hu3DTexScrollCreate(object->model[3], "pa_sk3"); + Hu3DTexScrollPosMoveSet(id, -0.00020833335f, 0, 0); + + object->model[4] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M455, 6)); + Hu3DModelPosSet(id, 0, 0, -3000); + Hu3DModelScaleSet(id, 1.2f, 1.2f, 1.2f); + Hu3DModelCameraSet(id, HU3D_CAM0); + Hu3DModelLayerSet(id, 1); + + object->model[8] = id = Hu3DHookFuncCreate(fn_1_49AC); + Hu3DModelCameraSet(id, HU3D_CAM0); + Hu3DModelLayerSet(id, 2); + modelP = &Hu3DData[id]; + modelP->unk_120 = work; + + object->model[10] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M455, 0)); + Hu3DModelPosSet(id, 0, 0, 0); + Hu3DModelCameraSet(id, HU3D_CAM0); + Hu3DModelLayerSet(id, 3); + Hu3DModelShadowMapSet(object->model[10]); + for(i=0; i<4; i++) { + + object->model[i+11] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M455, 1)); + Hu3DModelCameraSet(object->model[i+11], HU3D_CAM0); + Hu3DModelLayerSet(object->model[i+11], 3); + Hu3DModelPosSet(object->model[i+11], lbl_1_data_1D8[i].x, lbl_1_data_1D8[i].y, lbl_1_data_1D8[i].z); + Hu3DModelAttrSet(object->model[i+11], HU3D_MOTATTR_SHAPE_LOOP); + Hu3DMotionShapeTimeSet(object->model[i+11], (0.25*i)*Hu3DMotionShapeMaxTimeGet(object->model[i+11])); + } + modelP = &Hu3DData[object->model[0]]; + workUnk4 = &work2->unk4[0]; + for(i=0; i<4; i++, workUnk4++) { + workUnk4->unkC = lbl_1_data_20C[i].unk0; + workUnk4->unk10 = lbl_1_data_20C[i].unk4; + workUnk4->unk14 = lbl_1_data_20C[i].unk8; + workUnk4->unk18 = lbl_1_data_20C[i].unkC; + workUnk4->unk8 = lbl_1_data_20C[i].unk10; + workUnk4->unk4 = GXGetTexBufferSize(workUnk4->unk14, workUnk4->unk18, GX_TF_RGB565, GX_FALSE, GX_FALSE); + workUnk4->unk0 = HuMemDirectMallocNum(HEAP_DATA, workUnk4->unk4, modelP->unk_48); + memset(workUnk4->unk0, 0, workUnk4->unk4); + DCFlushRange(workUnk4->unk0, workUnk4->unk4); + } + for(i=0; i<64; i++, workUnk74++) { + workUnk74->unk0.x = workUnk74->unk0.y = workUnk74->unk0.z = 0; + workUnk74->unkC.x = 0; + workUnk74->unkC.y = 0; + workUnk74->unkC.z = 1; + workUnk74->unk18 = 0.016666668f; + workUnk74->unk1C = 60; + workUnk74->unk1E = 0; + } + return object; +} + +void fn_1_9CFC(float arg0); + +void fn_1_3DDC(omObjData *object) +{ + Work347C *work = object->data; + Work347C *work2 = work; + s32 i; + if((work->unkA50 = work->unkA50+(0.007874016f*((s32)frand() & 0x7F)*3.0f)) > 360) { + work->unkA50 -= 360; + } + work->unkA44 = (25+work->unkA40)+(5.0*sind(work->unkA50)); + Hu3DModelPosSet(object->model[10], 0, work->unkA44, 0); + for(i=0; i<4; i++) { + Hu3DModelPosSet(object->model[i+11], lbl_1_data_1D8[i].x, work->unkA44+lbl_1_data_1D8[i].y, lbl_1_data_1D8[i].z); + } + work->unkA54 += 0.001f; + work->unkA58 += 0.001f; + work->unkA48++; + work->unkA4C++; + if(work->unkA4C >= 60.0f && work->unkA4C <= 81.0f) { + float time = 1-((work->unkA4C-60.0f)/21.0f); + if(time < 0.0f) { + time = 0.0f; + } + fn_1_9CFC(time); + } +} + +void fn_1_4104(omObjData *object) +{ + Work347C *work = object->data; + HuSprAnimKill(work->unkA1C[0]); + HuSprAnimKill(work->unkA1C[1]); + HuSprAnimKill(work->unkA1C[2]); + HuSprAnimKill(work->unkA1C[3]); + HuSprAnimKill(work->unkA1C[6]); + HuSprAnimKill(work->unkA1C[7]); + HuSprAnimKill(work->unkA1C[4]); + HuSprAnimKill(work->unkA1C[5]); + HuSprAnimKill(work->unkA1C[8]); +} + +GXColor lbl_1_data_26A = { 255, 255, 255, 32 }; +GXColor lbl_1_data_26E = { 255, 255, 255, 10 }; +GXColor lbl_1_data_272 = { 0, 126, 126, 255 }; +Vec lbl_1_data_278[4] = { + -1000, 50, 1000, + -1000, 50, -1000, + 1000, 50, -1000, + 1000, 50, 1000 +}; + +Vec lbl_1_data_2A8[26] = { + -1500, 0, 1000, + -1400, 0, 1000, + 0, 0, 1000, + 1400, 0, 1000, + 1500, 0, 1000, + -1500, 0, -500, + -1400, 0, -500, + 0, 0, -500, + 1400, 0, -500, + 1500, 0, -500, + -1500, 0, -2000, + -1400, 0, -2000, + 0, 0, -2000, + 1400, 0, -2000, + 1500, 0, -2000, + -1500, 0, -5000, + -1400, 0, -5000, + 0, 0, -5000, + 1400, 0, -5000, + 1500, 0, -5000, + -2000, 0, -500, + -2500, 0, -2000, + -3000, 0, -5000, + 2000, 0, -500, + 2500, 0, -2000, + 3000, 0, -5000 +}; + +GXColor lbl_1_data_3E0[26] = { + { 96, 128, 255, 255 }, + { 128, 160, 255, 32 }, + { 128, 160, 255, 32 }, + { 128, 160, 255, 32 }, + { 96, 128, 255, 255 }, + { 24, 48, 255, 255 }, + { 96, 128, 255, 32 }, + { 128, 160, 255, 32 }, + { 96, 128, 255, 32 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 96, 128, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 8, 24, 143, 255 }, + { 8, 24, 143, 255 }, + { 8, 24, 143, 255 }, + { 8, 24, 143, 255 }, + { 8, 24, 143, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 } +}; + +float lbl_1_data_448[26][2] = { + 0, 1, + 0.033333335, 1, + 0.5, 1, + 0.96666664, 1, + 1, 1, + 0, 0.5, + 0.033333335, 0.5, + 0.5, 0.5, + 0.96666664, 0.5, + 1, 0.5, + 0, 0, + 0.033333335, 0, + 0.5, 0, + 0.96666664, 0, + 1, 0, + 0, 0, + 0.033333335, 0, + 0.5, 0, + 0.96666664, 0, + 1, 0, + -0.15, 0.5, + -0.33, 0, + -0.49, 0, + 1.15, 0.5, + 1.33, 0, + 1.49, 0 +}; + +float lbl_1_data_518[26][2] = { + 0, 30, + 0.5, 30, + 7.5, 30, + 14.5, 30, + 15, 30, + 0, 15, + 0.5, 15, + 7.5, 15, + 14.5, 15, + 15, 15, + 0, 7.5, + 0.5, 7.5, + 7.5, 7.5, + 14.5, 7.5, + 15, 7.5, + 0, 0, + 0.5, 0, + 7.5, 0, + 14.5, 0, + 15, 0, + -2.25, 15, + -4.9500003, 7.5, + -7.3500004, 0, + 17.25, 15, + 19.95, 7.5, + 22.35, 0 +}; + +float lbl_1_data_5E8[2][3] = { + 0, 0, 0.5, + 0, 0.5, 0 +}; + +GXColor lbl_1_data_600 = { 80, 80, 80, 80 }; + +Vec lbl_1_data_604[9] = { + -1500, 0, -5000, + 0, 0, -5000, + 1500, 0, -5000, + -1500, 0, -3000, + 0, 0, -3000, + 1500, 0, -3000, + -1500, 0, 1000, + 0, 0, 1000, + 1500, 0, 1000 +}; + +GXColor lbl_1_data_670[9] = { + { 255, 255, 255, 0 }, + { 255, 255, 255, 0 }, + { 255, 255, 255, 0 }, + { 255, 255, 255, 0 }, + { 255, 255, 255, 255 }, + { 255, 255, 255, 0 }, + { 255, 255, 255, 0 }, + { 255, 255, 255, 255 }, + { 255, 255, 255, 0 }, +}; + +GXColor lbl_1_data_694 = { 255, 165, 89, 178 }; +GXColor lbl_1_data_698 = { 153, 114, 89, 178 }; +GXColor lbl_1_data_69C = { 0, 0, 0, 255 }; + +void fn_1_6088(Work347CUnk4 *arg0, s32 arg1); + +void fn_1_4180(ModelData *model, Mtx matrix) +{ + Work347C *work = model->unk_120; + Work347C *work2 = work; + Work347CUnk74 *workUnk74 = &work2->unk74[0]; + Work347CUnk4 *workUnk4 = &work2->unk4[0]; + s32 i; + Mtx proj; + Mtx modelview; + MTXOrtho(proj, 0, 480, 0, 640, 0, 100); + GXSetProjection(proj, GX_ORTHOGRAPHIC); + MTXIdentity(modelview); + GXLoadPosMtxImm(modelview, GX_PNMTX0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_272); + GXSetTevColor(GX_TEVREG0, lbl_1_data_26E); + GXSetNumTexGens(1); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_RASC, GX_CC_TEXC, GX_CC_A0, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetScissor(0, 0, 400, 400); + HuSprTexLoad(work->unkA1C[4], 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_U16, 0); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition2u16(0, 0); + GXTexCoord2f32(work->unkA54, work->unkA58); + GXPosition2u16(400, 0); + GXTexCoord2f32(work->unkA54+7, work->unkA58); + GXPosition2u16(400, 400); + GXTexCoord2f32(work->unkA54+7, work->unkA58+7); + GXPosition2u16(0, 400); + GXTexCoord2f32(work->unkA54, work->unkA58+7); + GXEnd(); + GXSetNumTexGens(1); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + HuSprTexLoad(work->unkA1C[8], 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXClearVtxDesc(); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_F32, 0); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + workUnk74 = &work2->unk74[0]; + for(i=0; i<64; i++, workUnk74++) { + float scale; + float accel; + if(workUnk74->unk1E == 0) { + continue; + } + scale = 128*(workUnk74->unkC.x*(0.2f+cosd(workUnk74->unk1E*workUnk74->unk18*90.0f))); + accel = workUnk74->unk1E*workUnk74->unk18; + lbl_1_data_26A.a = workUnk74->unkC.z*sind((accel*accel)*90.0f)*255.0; + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_26A); + MTXScale(modelview, 0.5f*scale, 0.5f*scale, 1.0f); + mtxRotCat(modelview, 0, 0, workUnk74->unkC.y); + mtxTransCat(modelview, 400*(workUnk74->unk0.x+1500)/3000, 400*(workUnk74->unk0.z - -2000)/3000, 0); + GXLoadPosMtxImm(modelview, GX_PNMTX0); + GXCallDisplayList(work2->unkA14, work2->unkA18); + if(!omPauseChk()) { + workUnk74->unk1E--; + } + } + workUnk4 = &work2->unk4[0]; + fn_1_6088(workUnk4, 1); +} + +void fn_1_59A0(ModelData *model, Mtx matrix); + +void fn_1_49AC(ModelData *model, Mtx matrix) +{ + Work347C *work; + Work347C *work2; + Work347CUnk4 *workUnk4; + fn_1_59A0(model, matrix); + work = model->unk_120; + work2 = work; + workUnk4 = &work2->unk4[1]; + fn_1_6088(workUnk4, 0); +} + +void fn_1_6144(Work347CUnk4 *arg0, float arg1, float arg2, float arg3); + +void fn_1_4A14(ModelData *model, Mtx matrix) +{ + Work347C *work = model->unk_120; + Work347C *work2 = work; + Work347CUnk4 *workUnk4 = &work2->unk4[0]; + + fn_1_6144(workUnk4, 200, 0, 0.5f); + workUnk4 = &work2->unk4[1]; + fn_1_6144(workUnk4, 0, 0, 0.5f); + workUnk4 = &work2->unk4[2]; + fn_1_6144(workUnk4, 0, 150, 0.25f); + workUnk4 = &work2->unk4[3]; + fn_1_6144(workUnk4, 0, 300, 0.5f); +} + +void fn_1_6594(s16 arg0, Work347CUnk4 *arg1, GXTexWrapMode arg2, s32 arg3, BOOL arg4); + +void fn_1_4B1C(ModelData *model, Mtx matrix) +{ + CameraData *cameraP = &Hu3DCamera[Hu3DCameraNo]; + Work347C *work = model->unk_120; + Work347C *work2 = work; + Work347CUnk4 *workUnk4 = &work2->unk4[2]; + float fov; + Mtx proj; + Mtx texMtx; + Mtx projCamera; + s16 lightMask; + s16 i; + + fn_1_6088(workUnk4, 0); + GXLoadPosMtxImm(matrix, GX_PNMTX0); + fov = cameraP->fov; + if(fov <= 0.0f) { + fov = 45; + } + MTXLightPerspective(proj, fov, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + MTXInverse(Hu3DCameraMtx, texMtx); + MTXConcat(texMtx, Hu3DCameraMtx, texMtx); + MTXConcat(proj, Hu3DCameraMtx, projCamera); + MTXConcat(projCamera, texMtx, texMtx); + GXLoadTexMtxImm(texMtx, GX_TEXMTX0, GX_MTX3x4); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); + lightMask = Hu3DLightSet(model, &Hu3DCameraMtx, &Hu3DCameraMtxXPose, 4); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetNumChans(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_208); + GXSetZMode(GX_TRUE, GX_GREATER, GX_FALSE); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + workUnk4 = &work2->unk4[1]; + fn_1_6594(0, workUnk4, 0, 0, 0); + GXClearVtxDesc(); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetArray(GX_VA_POS, lbl_1_data_278, sizeof(Vec)); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + for(i=0; i<4; i++) { + GXPosition1x16(i); + } + GXEnd(); + workUnk4 = &work2->unk4[3]; + fn_1_6088(workUnk4, 0); + workUnk4 = &work2->unk4[2]; + fn_1_6594(0, workUnk4, 0, 0, 0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + for(i=0; i<4; i++) { + GXPosition1x16(i); + } + GXEnd(); +} + +void fn_1_4E64(ModelData *model, Mtx matrix) +{ + CameraData *cameraP = &Hu3DCamera[Hu3DCameraNo]; + Work347C *work = model->unk_120; + Work347C *work2 = work; + Work347CUnk4 *workUnk4 = &work2->unk4[2]; + Mtx invXPose; + Mtx proj; + Mtx texMtx; + Mtx projCamera; + float sp14; + float sp10; + float fov; + s16 i; + fn_1_4B1C(model, matrix); + sp14 = 1.5f; + sp10 = 0; + GXLoadPosMtxImm(matrix, GX_PNMTX0); + MTXInvXpose(matrix, invXPose); + GXLoadNrmMtxImm(invXPose, GX_PNMTX0); + fov = cameraP->fov; + if(fov <= 0.0f) { + fov = 45; + } + MTXLightPerspective(proj, fov, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + MTXInverse(Hu3DCameraMtx, texMtx); + MTXConcat(texMtx, Hu3DCameraMtx, texMtx); + MTXConcat(proj, Hu3DCameraMtx, projCamera); + MTXConcat(projCamera, texMtx, texMtx); + GXLoadTexMtxImm(texMtx, GX_TEXMTX0, GX_MTX3x4); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); + GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX1, GX_IDENTITY); + GXSetNumTevStages(2); + GXSetNumTexGens(3); + GXSetNumChans(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_RASC, GX_CC_RASA, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevColor(GX_TEVREG0, lbl_1_data_600); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_C0, GX_CC_TEXA, GX_CC_CPREV); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_VTX, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_208); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXSetBlendMode(GX_BM_NONE, GX_BL_ONE, GX_BL_ZERO, GX_LO_NOOP); + workUnk4 = &work2->unk4[3]; + fn_1_6594(0, workUnk4, 0, 0, 0); + HuSprTexLoad(work->unkA1C[3], 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + workUnk4 = &work2->unk4[0]; + fn_1_6594(2, workUnk4, 0, 0, 1); + GXSetTexCoordGen(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + GXSetNumIndStages(1); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD2, GX_TEXMAP2); + GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); + GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_1); + GXSetIndTexMtx(GX_ITM_1, lbl_1_data_5E8, -1); + for(i=0; i<26; i++) { + work2->unk944[i][0] -= 0.007874016f*((s32)frand() & 0x7F)*0.005f; + work2->unk944[i][1] += 0.007874016f*((s32)frand() & 0x7F)*0.005f; + work2->unk874[i][0] = work2->unk944[i][0]+lbl_1_data_518[i][0]; + work2->unk874[i][1] = work2->unk944[i][1]+lbl_1_data_518[i][1]; + } + DCFlushRange(&work2->unk874[0][0], sizeof(work2->unk874)); + GXClearVtxDesc(); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + + GXSetArray(GX_VA_POS, lbl_1_data_2A8, sizeof(Vec)); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, lbl_1_data_3E0, sizeof(GXColor)); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, lbl_1_data_448, sizeof(float)*2); + GXSetVtxDesc(GX_VA_TEX1, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX1, &work2->unk874[0][0], sizeof(float)*2); + GXBegin(GX_QUADS, GX_VTXFMT0, 48); + for(i=0; i<12; i++) { + s16 index; + if(i == 4) { + index = 12; + } else if(i == 9) { + index = 13; + } else { + index = i; + } + GXPosition1x16(index+0); + GXColor1x16(index+0); + GXTexCoord1x16(index+0); + GXTexCoord1x16(index+0); + GXPosition1x16(index+5); + GXColor1x16(index+5); + GXTexCoord1x16(index+5); + GXTexCoord1x16(index+5); + GXPosition1x16(index+6); + GXColor1x16(index+6); + GXTexCoord1x16(index+6); + GXTexCoord1x16(index+6); + GXPosition1x16(index+1); + GXColor1x16(index+1); + GXTexCoord1x16(index+1); + GXTexCoord1x16(index+1); + } + GXEnd(); + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 8); + GXPosition1x16(22); + GXColor1x16(22); + GXTexCoord1x16(22); + GXTexCoord1x16(22); + GXPosition1x16(15); + GXColor1x16(15); + GXTexCoord1x16(15); + GXTexCoord1x16(15); + GXPosition1x16(21); + GXColor1x16(21); + GXTexCoord1x16(21); + GXTexCoord1x16(21); + GXPosition1x16(10); + GXColor1x16(10); + GXTexCoord1x16(10); + GXTexCoord1x16(10); + GXPosition1x16(20); + GXColor1x16(20); + GXTexCoord1x16(20); + GXTexCoord1x16(20); + GXPosition1x16(5); + GXColor1x16(5); + GXTexCoord1x16(5); + GXTexCoord1x16(5); + GXPosition1x16(0); + GXColor1x16(0); + GXTexCoord1x16(0); + GXTexCoord1x16(0); + GXPosition1x16(0); + GXColor1x16(0); + GXTexCoord1x16(0); + GXTexCoord1x16(0); + GXEnd(); + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 8); + GXPosition1x16(19); + GXColor1x16(19); + GXTexCoord1x16(19); + GXTexCoord1x16(19); + GXPosition1x16(25); + GXColor1x16(25); + GXTexCoord1x16(25); + GXTexCoord1x16(25); + GXPosition1x16(14); + GXColor1x16(14); + GXTexCoord1x16(14); + GXTexCoord1x16(14); + GXPosition1x16(24); + GXColor1x16(24); + GXTexCoord1x16(24); + GXTexCoord1x16(24); + GXPosition1x16(9); + GXColor1x16(9); + GXTexCoord1x16(9); + GXTexCoord1x16(9); + GXPosition1x16(23); + GXColor1x16(23); + GXTexCoord1x16(23); + GXTexCoord1x16(23); + GXPosition1x16(4); + GXColor1x16(4); + GXTexCoord1x16(4); + GXTexCoord1x16(4); + GXPosition1x16(4); + GXColor1x16(4); + GXTexCoord1x16(4); + GXTexCoord1x16(4); + GXEnd(); + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); + GXSetTevDirect(GX_TEVSTAGE1); +} + +void fn_1_59A0(ModelData *model, Mtx matrix) +{ + s32 sp10 = 0; + Work347C *work = model->unk_120; + float scale = 1.5f; + float x = 0; + Mtx temp; + Mtx final; + MTXTrans(final, x, -300, 0); + GXSetTevColor(GX_TEVREG0, lbl_1_data_694); + MTXScale(temp, scale, 1, 1); + MTXConcat(final, temp, final); + MTXConcat(Hu3DCameraMtx, final, final); + GXLoadPosMtxImm(final, GX_PNMTX0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_208); + HuSprTexLoad(work->unkA1C[0], 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + HuSprTexLoad(work->unkA1C[1], 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetNumTexGens(2); + MTXRotDeg(final, 'X', 90.0f); + x = 0.004f*scale; + MTXScale(temp, x, -0.004f, 0.004f); + MTXConcat(final, temp, final); + MTXTrans(temp, (work->unkA48%1024)/(512.0f*x), 0, 1.2499999f*(work->unkA48%400)); + MTXConcat(final, temp, final); + GXLoadTexMtxImm(final, GX_TEXMTX0, GX_MTX2x4); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX0); + MTXRotDeg(final, 'X', 90.0f); + x = 0.004f*scale; + MTXScale(temp, x, -0.004f, 0.004f); + MTXConcat(final, temp, final); + MTXTrans(temp, (work->unkA48%300)/(150.0f*x), 0, 0); + MTXConcat(final, temp, final); + GXLoadTexMtxImm(final, GX_TEXMTX1, GX_MTX2x4); + GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX1); + GXSetNumTevStages(2); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_SET); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_POS, lbl_1_data_604, sizeof(Vec)); + GXSetArray(GX_VA_CLR0, lbl_1_data_670, sizeof(GXColor)); + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6); + GXPosition1x8(0); + GXColor1x8(0); + GXPosition1x8(1); + GXColor1x8(1); + GXPosition1x8(3); + GXColor1x8(3); + GXPosition1x8(4); + GXColor1x8(4); + GXPosition1x8(6); + GXColor1x8(6); + GXPosition1x8(7); + GXColor1x8(7); + GXEnd(); + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6); + GXPosition1x8(1); + GXColor1x8(1); + GXPosition1x8(2); + GXColor1x8(2); + GXPosition1x8(4); + GXColor1x8(4); + GXPosition1x8(5); + GXColor1x8(5); + GXPosition1x8(7); + GXColor1x8(7); + GXPosition1x8(8); + GXColor1x8(8); + GXEnd(); +} + +void fn_1_6088(Work347CUnk4 *arg0, s32 arg1) +{ + GXSetTexCopySrc(0, 0, arg0->unkC, arg0->unk10); + GXSetTexCopyDst(arg0->unk14, arg0->unk18, GX_TF_RGB565, arg0->unk8); + GXSetCopyClear(lbl_1_data_69C, GX_MAX_Z24); + GXCopyTex(arg0->unk0, arg1); + +} + +void fn_1_6144(Work347CUnk4 *fbWork, float x1, float y1, float scale) +{ + float x2 = x1+(fbWork->unk14*scale); + float y2 = y1+(fbWork->unk18*scale); + Mtx44 proj; + Mtx modelview; + GXTexObj texObj; + GXColor color; + GXInitTexObj(&texObj, fbWork->unk0, fbWork->unk14, fbWork->unk18, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&texObj, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXLoadTexObj(&texObj, GX_TEXMAP0); + MTXOrtho(proj, 0, 480, 0, 640, 0, 10); + GXSetProjection(proj, GX_ORTHOGRAPHIC); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + color.a = 255; + GXSetTevColor(GX_TEVREG0, color); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumTexGens(1); + GXSetNumTevStages(1); + MTXIdentity(modelview); + GXLoadPosMtxImm(modelview, GX_PNMTX0); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(x1, y1, 0); + GXTexCoord2f32(0, 0); + GXPosition3f32(x2, y1, 0); + GXTexCoord2f32(1, 0); + GXPosition3f32(x2, y2, 0); + GXTexCoord2f32(1, 1); + GXPosition3f32(x1, y2, 0); + GXTexCoord2f32(0, 1); + GXEnd(); +} + +void fn_1_6594(s16 arg0, Work347CUnk4 *arg1, GXTexWrapMode arg2, s32 arg3, BOOL arg4) +{ + GXTexObj texObj; + GXInitTexObj(&texObj, arg1->unk0, arg1->unk14, arg1->unk18, GX_TF_RGB565, arg2, arg2, FALSE); + if(arg4) { + GXInitTexObjLOD(&texObj, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + } else { + GXInitTexObjLOD(&texObj, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + } + GXLoadTexObj(&texObj, arg0); +} + +s32 fn_1_6698(Vec *arg0, float arg1, float arg2, s32 arg3) +{ + Work347C *work; + Work347C *work2; + Work347CUnk74 *workUnk74; + s32 i; + if(!lbl_1_bss_6C) { + return -1; + } + work = lbl_1_bss_6C->data; + work2 = work; + workUnk74 = &work->unk74[0]; + for(i=0; i<64; i++, workUnk74++) { + if(workUnk74->unk1E == 0) { + break; + } + } + if(i >= 64) { + return -1; + } + workUnk74->unk0 = *arg0; + if(arg1 < 0.0f) { + workUnk74->unkC.x = 1; + } else { + workUnk74->unkC.x = arg1; + } + if(arg2 < 0.0f) { + workUnk74->unkC.z = 1; + } else { + workUnk74->unkC.z = arg2; + } + if(arg3 < 0) { + workUnk74->unk1C = 60; + } else { + workUnk74->unk1C = arg3; + } + workUnk74->unkC.y = (s32)frand()%360; + workUnk74->unk1E = workUnk74->unk1C; + workUnk74->unk18 = 1.0f/workUnk74->unk1C; + return i; +} + +float fn_1_687C(void) +{ + if(!lbl_1_bss_6C) { + return 0; + } else { + Work347C *work = lbl_1_bss_6C->data; + return work->unkA44; + } +} + +float fn_1_68C8(void) +{ + if(!lbl_1_bss_6C) { + return 0; + } else { + Work347C *work = lbl_1_bss_6C->data; + return work->unkA40; + } +} + +typedef struct work6914 { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + AnimData *unk10; + Vec unk14; + Vec unk20; + Vec unk2C; +} Work6914; + +void fn_1_6A6C(omObjData *object); + +void fn_1_6914(omObjData *object) +{ + Work6914 *work; + s32 i; + AnimData *anim; + work = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work6914)*8, MEMORY_DEFAULT_NUM); + memset(work, 0, sizeof(Work6914)*8); + anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M455, 26), MEMORY_DEFAULT_NUM)); + for(i=0; i<8; i++, work++) { + work->unk10 = anim; + work->unk0 = i; + work->unk4 = Hu3DParticleCreate(work->unk10, 32); + Hu3DModelCameraSet(work->unk4, HU3D_CAM0); + Hu3DModelLayerSet(work->unk4, 6); + Hu3DModelAttrSet(work->unk4, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(work->unk4, HU3D_ATTR_PARTICLE_KILL); + work->unk8 = 0; + work->unkC = 0; + work->unk14.x = work->unk14.y = work->unk14.z = 0; + work->unk20.x = work->unk20.y = work->unk20.z = 0; + work->unk2C.x = work->unk2C.y = work->unk2C.z = 1; + } + object->func = fn_1_6A6C; +} + +void fn_1_6A6C(omObjData *object) +{ + Work6914 *work = object->data; + s32 i; + for(i=0; i<8; i++, work++) { + if(work->unk8 == 0) { + continue; + } + if(work->unkC > 1) { + ModelData *modelP = &Hu3DData[work->unk4]; + ParticleData *particleP = modelP->unk_120; + HsfanimStruct01 *data = particleP->unk_48; + s32 j; + for(j=0; junk_30; j++, data++) { + if(++data->unk00_s16 > data->unk02) { + s32 alpha = data->unk40.a-1; + if(alpha < 0) { + data->unk2C = 0; + } else { + data->unk40.a = alpha; + } + } + data->unk2C *= 0.975; + data->unk34.x += data->unk08.x; + data->unk34.y += data->unk08.y; + data->unk34.z += data->unk08.z; + data->unk08.y -= 0.3103333379576603; + } + } + if(++work->unkC > 90.0f) { + Hu3DModelAttrSet(work->unk4, HU3D_ATTR_DISPOFF); + work->unk8 = 0; + } else { + Hu3DModelPosSet(work->unk4, work->unk14.x, work->unk14.y, work->unk14.z); + Hu3DModelRotSet(work->unk4, work->unk20.x, work->unk20.y, work->unk20.z); + Hu3DModelScaleSet(work->unk4, work->unk2C.x, work->unk2C.y, work->unk2C.z); + } + } +} + +void fn_1_6C60(omObjData *object) +{ + Work6914 *work = object->data; + AnimData *anim = work->unk10; + anim->useNum = 0; + HuSprAnimKill(anim); +} + +s32 fn_1_6CB0(Vec *arg0, float arg1) +{ + Work6914 *work = lbl_1_bss_68->data; + s32 i; + ModelData *temp_r27; + ParticleData *temp_r28; + HsfanimStruct01 *temp_r30; + + for(i=0; i<8; i++, work++) { + if(work->unk8 == 0) { + break; + } + } + if(i >= 8) { + return -1; + } + Hu3DModelAttrReset(work->unk4, HU3D_ATTR_DISPOFF); + work->unk8 = 1; + work->unkC = 0; + temp_r27 = &Hu3DData[work->unk4]; + temp_r28 = temp_r27->unk_120; + temp_r28->unk_2C = 1; + temp_r30 = temp_r28->unk_48; + for(i=0; iunk_30; i++, temp_r30++) { + float temp_f30 = ((s32)frand()%20)+90; + float temp_f29 = (s32)frand()%360; + float temp_f26 = sind(temp_f30); + float temp_f28 = cosd(temp_f30); + float temp_f25 = 0.75f+0.15f*(0.007874016f*((s32)frand() & 0x7F)); + float temp_f31 = 0.15f; + temp_r30->unk08.x = temp_f31*(0.65f*(50.0*(temp_f28*sind(temp_f29)))); + temp_r30->unk08.z = temp_f31*(0.65f*(50.0*(temp_f28*cosd(temp_f29)))); + temp_r30->unk08.y = temp_f31*(50*temp_f26*temp_f25); + temp_r30->unk00_s16 = 0; + temp_r30->unk02 = ((s32)frand()%16)+45; + temp_r30->unk30 = (s32)frand()%360; + temp_r30->unk2C = 145; + temp_r30->unk34.x = 0.05f*(((s32)frand() & 0x7F)-64); + temp_r30->unk34.y = 0.65f*(((s32)frand() & 0x7F)-64); + temp_r30->unk34.z = 0.05f*(((s32)frand() & 0x7F)-64); + temp_r30->unk40.r = ((s32)frand()%64)+192; + temp_r30->unk40.g = ((s32)frand()%64)+192; + temp_r30->unk40.b = ((s32)frand()%64)+192; + temp_r30->unk40.a = 64; + } + if(arg1 < 0.0f) { + arg1 = 1.0f; + } + work->unk14 = *arg0; + work->unk20.x = work->unk20.y = work->unk20.z = 0; + work->unk2C.x = work->unk2C.y = work->unk2C.z = arg1; + Hu3DModelPosSet(work->unk4, work->unk14.x, work->unk14.y, work->unk14.z); + Hu3DModelRotSet(work->unk4, work->unk20.x, work->unk20.y, work->unk20.z); + Hu3DModelScaleSet(work->unk4, work->unk2C.x, work->unk2C.y, work->unk2C.z); + return i; +} + +void fn_1_7368(omObjData *object); + +void fn_1_7280(omObjData *object) +{ + s32 i; + for(i=0; imdlcnt; i++) { + if(i == 0) { + object->model[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M455, 9)); + } else { + object->model[i] = Hu3DModelLink(object->model[0]); + } + Hu3DModelCameraSet(object->model[i], HU3D_CAM0); + Hu3DModelLayerSet(object->model[i], 6); + Hu3DModelAttrSet(object->model[i], HU3D_ATTR_DISPOFF); + + } + object->stat |= 0x100; + object->func = fn_1_7368; +} + +void fn_1_7368(omObjData *object) +{ + s32 i; + for(i=0; imdlcnt; i++) { + ModelData *modelP = &Hu3DData[object->model[i]]; + if(!(modelP->attr & HU3D_ATTR_DISPOFF)) { + if(Hu3DMotionTimeGet(object->model[i]) >= Hu3DMotionMaxTimeGet(object->model[i])) { + Hu3DModelAttrSet(object->model[i], HU3D_ATTR_DISPOFF); + } + } + } +} + +void fn_1_7430(omObjData *object) +{ + +} + +s32 fn_1_7434(Vec *pos, float scale) +{ + s32 i; + for(i=0; imdlcnt; i++) { + ModelData *modelP = &Hu3DData[lbl_1_bss_64->model[i]]; + if(modelP->attr & HU3D_ATTR_DISPOFF) { + break; + } + } + if(i >= lbl_1_bss_64->mdlcnt) { + return -1; + } + Hu3DMotionTimeSet(lbl_1_bss_64->model[i], 0); + Hu3DMotionSpeedSet(lbl_1_bss_64->model[i], 1); + Hu3DModelPosSet(lbl_1_bss_64->model[i], pos->x, pos->y, pos->z); + Hu3DModelScaleSet(lbl_1_bss_64->model[i], scale, scale, scale); + Hu3DModelAttrReset(lbl_1_bss_64->model[i], HU3D_ATTR_DISPOFF); + return i; +} + +void fn_1_76B0(omObjData *object); + +void fn_1_75C0(omObjData *object) +{ + ParticleData *temp_r30; + HsfanimStruct01 *temp_r29; + s32 i; + ModelData *modelP; + AnimData *anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M455, 26), MEMORY_DEFAULT_NUM)); + + object->data = anim; + object->model[0] = Hu3DParticleCreate(anim, 64); + Hu3DModelCameraSet(object->model[0], HU3D_CAM0); + Hu3DModelLayerSet(object->model[0], 3); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_PARTICLE_KILL); + modelP = &Hu3DData[object->model[0]]; + temp_r30 = modelP->unk_120; + temp_r29 = temp_r30->unk_48; + temp_r30->unk_2C = 1; + for(i=0; iunk_30; i++, temp_r29++) { + temp_r29->unk2C = 0; + } + object->func = fn_1_76B0; +} + +void fn_1_76B0(omObjData *object) +{ + ModelData *modelP = &Hu3DData[object->model[0]]; + ParticleData *temp_r29 = modelP->unk_120; + HsfanimStruct01 *temp_r30 = temp_r29->unk_48; + s32 i; + for(i=0; iunk_30; i++, temp_r30++) { + if(temp_r30->unk2C <= 0.0f) { + continue; + } + if(++temp_r30->unk00_s16 > 360) { + temp_r30->unk00_s16 -= 360; + } + temp_r30->unk34.x += temp_r30->unk08.x*sind(2.0f*temp_r30->unk00_s16); + temp_r30->unk34.y += temp_r30->unk08.y; + if(temp_r30->unk34.y >= 0.0f) { + fn_1_6698(&temp_r30->unk34, 0.00625f*temp_r30->unk2C, 1, 15); + temp_r30->unk2C = 0; + } + + } +} + +void fn_1_7974(omObjData *object) +{ + AnimData *anim = object->data; + HuSprAnimKill(anim); + Hu3DModelKill(object->model[0]); + object->model[0] = -1; +} + +s32 fn_1_79C8(Vec *pos, float scale) +{ + s32 i; + ModelData *modelP = &Hu3DData[lbl_1_bss_60->model[0]]; + ParticleData *temp_r30 = modelP->unk_120; + HsfanimStruct01 *temp_r31 = temp_r30->unk_48; + for(i=0; iunk_30; i++, temp_r31++) { + if(temp_r31->unk2C <= 0.0f) { + break; + } + } + if(i >= temp_r30->unk_30) { + return -1; + } + if(scale <= 0.0f) { + scale = 1.0f; + } + temp_r31->unk34 = *pos; + temp_r31->unk08.x = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*0.5f; + temp_r31->unk08.z = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F)))); + temp_r31->unk08.y = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*2.0f; + temp_r31->unk00_s16 = (s32)frand()%360; + temp_r31->unk2C = 20*scale; + return i; +} + + +typedef struct work7C48 { + s32 unk0; + s32 unk4; + s32 unk8; + float unkC; + float unk10; + Vec unk14; + Vec unk20; +} Work7C48; + +void fn_1_8050(omObjData *object); + +void fn_1_7C48(omObjData *object) +{ + Work7C48 *workBase = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work7C48)*8, MEMORY_DEFAULT_NUM); + Work7C48 *workP = workBase; + s32 i; + memset(workP, 0, 8*sizeof(Work7C48)); + for(i=0; i<8; i++, workP++) { + switch(i) { + case 0: + workP->unk0 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M455, 10)); + break; + + case 1: + workP->unk0 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M455, 10)); + break; + + default: + if(i & 0x1) { + workP->unk0 = Hu3DModelLink(workBase[0].unk0); + } else { + workP->unk0 = Hu3DModelLink(workBase[1].unk0); + } + break; + } + Hu3DModelScaleSet(workP->unk0, 0.5f, 0.5f, 0.5f); + Hu3DModelCameraSet(workP->unk0, HU3D_CAM0); + Hu3DModelLayerSet(workP->unk0, 1); + workP->unk4 = 0; + workP->unk8 = 0; + workP->unkC = 2; + workP->unk10 = (s32)frand() % 360; + workP->unk14.x = 1500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk14.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk14.y = -250+(100*(0.3f*i)); + workP->unk20.x = 1500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.y = workP->unk14.y; + Hu3DModelPosSet(workP->unk0, workP->unk14.x, workP->unk14.y, workP->unk14.z); + Hu3DModelRotSet(workP->unk0, 0, workP->unk10, 0); + } + object->func = fn_1_8050; +} + +float fn_1_9F18(float start, float end, float weight); + +void fn_1_8050(omObjData *object) +{ + Work7C48 *workP = object->data; + s32 i; + for(i=0; i<8; i++, workP++) { + float dx; + float dz; + float vel; + float angle; + if(workP->unk4 == 0) { + vel = 1+(0.5*sind((workP->unk8*5)%180)); + } else { + vel = 3; + } + workP->unk14.x += vel*(workP->unkC*sind(workP->unk10)); + workP->unk14.z += vel*(workP->unkC*cosd(workP->unk10)); + dx = workP->unk20.x-workP->unk14.x; + dz = workP->unk20.z-workP->unk14.z; + angle = atan2d(dx, dz); + workP->unk10 = fn_1_9F18(angle, workP->unk10, 3.5f); + if((dx*dx)+(dz*dz) < 10000.0f) { + if(workP->unk4 == 0) { + workP->unk20.x = 2000*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.z = 700*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.y = workP->unk14.y; + } else { + if(workP->unk14.x < 0.0f) { + workP->unk20.x = -2500; + } else { + workP->unk20.x = 2500; + } + workP->unk20.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.y = workP->unk14.y; + } + } + Hu3DModelPosSet(workP->unk0, workP->unk14.x, workP->unk14.y, workP->unk14.z); + Hu3DModelRotSet(workP->unk0, 0, workP->unk10, 0); + workP->unk8 += frand()&0x3; + } +} + +void fn_1_8474(omObjData *object) +{ + +} + +void fn_1_8478(void) +{ + Work7C48 *workP = lbl_1_bss_5C->data; + s32 i; + for(i=0; i<8; i++, workP++) { + workP->unk4 = 1; + if(workP->unk14.x < 0.0f) { + workP->unk20.x = -2500; + } else { + workP->unk20.x = 2500; + } + workP->unk20.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.y = workP->unk14.y; + } +} + +typedef struct work891C { + s16 unk0; + s16 unk2[2]; + s16 unk6; + Vec unk8; + Vec unk14; + float unk20; + float unk24; + float unk28; + float unk2C; + float unk30; + float unk34; + float unk38; + float unk3C; +} Work891C; + +void fn_1_8578(omObjData *object, Work891C *workP) +{ + s32 num = workP[0].unk6; + float ofsZ = -2000; + s32 i; + for(i=0; iunk0, workP->unk8.x, workP->unk8.y, workP->unk8.z+ofsZ); + modelMtx = &Hu3DData[workP->unk0].unk_F0; + MTXRotDeg(*modelMtx, 'Y', workP->unk28); + MTXRotDeg(rotZ, 'Z', workP->unk38); + MTXConcat(*modelMtx, rotZ, *modelMtx); + Hu3DModelAttrReset(workP->unk0, HU3D_ATTR_DISPOFF); + } +} + +float fn_1_8D90(float start, float end, float weight); + +void fn_1_867C(omObjData *object) +{ + Work891C *workP = object->data; + s32 num = workP[0].unk6; + s32 i; + for(i=0; iunk14, &workP->unk8, &diff); + workP->unk2C = atan2d(diff.x, diff.z); + workP->unk28 = fn_1_8D90(workP->unk28, workP->unk2C+workP->unk3C, 0.08f); + workP->unk24 += 0.05f*(600.0f-workP->unk24); + workP->unk20 += 0.2f*(workP->unk24-workP->unk20); + workP->unk8.x += (workP->unk20*0.016666668f)*sind(workP->unk28); + workP->unk8.z += (workP->unk20*0.016666668f)*cosd(workP->unk28); + workP->unk30 += workP->unk20*0.016666668f; + } + fn_1_8578(object, object->data); + +} + +void fn_1_891C(omObjData *object) +{ + s16 num = 12; + Work891C *workBase; + s32 modelId; + Work891C *work; + float radius; + float angle; + float ofsZ; + s32 i; + object->data = workBase = HuMemDirectMallocNum(HEAP_SYSTEM, num*sizeof(Work891C), MEMORY_DEFAULT_NUM); + memset(workBase, 0, num*sizeof(Work891C)); + modelId = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M455, 8)); + ofsZ = 1500; + work = workBase; + for(i=0; iunk0 = Hu3DModelLink(modelId); + Hu3DModelLayerSet(work->unk0, 6); + Hu3DModelCameraSet(work->unk0, 1); + Hu3DModelScaleSet(work->unk0, 7, 7, 7); + work->unk14.x = ((s32)frandmod(1000)*4.0f)-2000; + work->unk14.z = ((s32)frandmod(1000))-500.0f; + work->unk14.y = ((s32)frandmod(1000)*0.8f)+300; + angle = (s32)frandmod(360); + radius = ((s32)frandmod(250))+200.0f; + work->unk8.x = radius*sind(angle); + work->unk8.y = 0; + work->unk8.z = radius*cosd(angle); + VECAdd(&work->unk14, &work->unk8, &work->unk8); + work->unk38 = 60-((6.0f/55.0f)*radius); + work->unk28 = (s32)frandmod(360); + + work->unk3C = ((s32)frandmod(1000) < 500) ? (-70.0f+((s32)frandmod(50)*0.1f)) : (70.0f-((s32)frandmod(50)*0.1f)); + if(work->unk3C < 0.0f) { + work->unk38 = -work->unk38; + } + work->unk30 = 1; + work->unk34 = 0; + ofsZ -= 50.0f; + work->unk6 = num; + } + Hu3DModelKill(modelId); + object->func = fn_1_867C; +} + +float fn_1_8D90(float start, float end, float weight) +{ + float angle = fmodf(end-start, 360); + if(angle < 0.0f) { + angle += 360.0f; + } + if(angle > 180.0f) { + angle -= 360.0f; + } + angle = fmodf(start+(weight*angle), 360); + if(angle < 0.0f) { + angle += 360.0f; + } + return angle; +} + +void fn_1_91B8(ModelData *model, ParticleData *particle, Mtx matrix); + +void fn_1_8EAC(void) +{ + StructBss48 *workP = lbl_1_bss_48 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(StructBss48), MEMORY_DEFAULT_NUM); + ParticleData *particle; + ModelData *modelP; + s16 *newWork; + s32 modelId; + memset(workP, 0, sizeof(StructBss48)); + workP->unk0[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M455, 13), MEMORY_DEFAULT_NUM)); + workP->unk0[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M455, 14), MEMORY_DEFAULT_NUM)); + workP->unk0[2] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M455, 15), MEMORY_DEFAULT_NUM)); + workP->unk0[3] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M455, 16), MEMORY_DEFAULT_NUM)); + workP->unk20.y = 1; + workP->unk20.z = 0; + workP->unk10[0] = modelId = Hu3DParticleCreate(workP->unk0[0], 1); + Hu3DModelLayerSet(modelId, 6); + modelP = &Hu3DData[modelId]; + particle = modelP->unk_120; + particle->unk_2C = 1; + particle->unk_54 = fn_1_91B8; + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); + memset(newWork, 0, 4*sizeof(s16)); + newWork[1] = 0; + workP->unk10[1] = modelId = Hu3DParticleCreate(workP->unk0[3], 10); + Hu3DModelLayerSet(modelId, 6); + modelP = &Hu3DData[modelId]; + particle = modelP->unk_120; + particle->unk_2C = 1; + particle->unk_54 = fn_1_91B8; + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); + memset(newWork, 0, 4*sizeof(s16)); + newWork[1] = 1; + workP->unk10[2] = modelId = Hu3DParticleCreate(workP->unk0[2], 4); + Hu3DModelLayerSet(modelId, 6); + modelP = &Hu3DData[modelId]; + particle = modelP->unk_120; + particle->unk_2C = 1; + particle->unk_54 = fn_1_91B8; + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); + memset(newWork, 0, 4*sizeof(s16)); + newWork[1] = 2; + workP->unk10[3] = modelId = Hu3DParticleCreate(workP->unk0[1], 6); + Hu3DModelLayerSet(modelId, 6); + modelP = &Hu3DData[modelId]; + particle = modelP->unk_120; + particle->unk_2C = 1; + particle->unk_54 = fn_1_91B8; + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); + memset(newWork, 0, 4*sizeof(s16)); + newWork[1] = 3; +} + +void fn_1_9168(void) +{ + StructBss48 *workP = lbl_1_bss_48; + HuSprAnimKill(workP->unk0[0]); + HuSprAnimKill(workP->unk0[1]); + HuSprAnimKill(workP->unk0[2]); + HuSprAnimKill(workP->unk0[3]); +} + +float lbl_1_data_6A0[4] = { + 1000, + 200, + 600, + 1200 +}; + +float lbl_1_data_6B0[4] = { + 1, + 0.6, + 0.3, + 0.425 +}; + +void fn_1_91B8(ModelData *model, ParticleData *particle, Mtx matrix) +{ + s16 unk8 = 0; + StructBss48 *workP = lbl_1_bss_48; + s16 *newWorkP = particle->unk_1C; + s32 unk14 = 0; + Vec pos = Center; + Vec rot = CRot; + float temp_f26; + float temp_f25; + float zoom = CZoom; + HsfanimStruct01 *temp_r31; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + float temp_f29; + float temp_f23; + s32 i; + switch(newWorkP[2]) { + case 0: + temp_r31 = particle->unk_48; + if(newWorkP[1]) { + sp18.x = 2000; + sp18.y = -300; + sp18.z = 500; + temp_f29 = 1/VECMagPoint(sp18.x, sp18.y, sp18.z); + sp18.x *= temp_f29; + sp18.y *= temp_f29; + sp18.z *= temp_f29; + temp_f23 = 3200.0f/particle->unk_30; + for(i=0; iunk_30; i++, temp_r31++) { + temp_f26 = 500.0+((temp_f23*i)+((0.25f*temp_f23)*((float)((s32)frand() & 0xFFFF)*0.0000152587890625))); + temp_f25 = temp_f26/3200; + temp_r31->unk14.x = temp_f26; + temp_r31->unk34.x = 1000+(temp_f26*sp18.x); + temp_r31->unk34.y = 4800+(temp_f26*sp18.y); + temp_r31->unk34.z = -3500+(temp_f26*sp18.z); + temp_r31->unk2C = ((0.7f*(temp_f25*temp_f25))+0.3f)*(lbl_1_data_6A0[newWorkP[1]]*(0.7f+(0.3f*((float)((s32)frand() & 0xFFFF)*0.0000152587890625)))); + temp_r31->unk40.r = (s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*160.0)+32; + temp_r31->unk40.g = (s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*96.0)+32; + temp_r31->unk40.b = (s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*128.0)+32; + temp_r31->unk40.a = (255*lbl_1_data_6B0[newWorkP[1]]*(1.0-(0.4*temp_f25)))-(s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*16.0); + temp_r31->unk14.z = temp_r31->unk40.a; + } + newWorkP[2]++; + } else { + temp_r31->unk34.x = 1000; + temp_r31->unk34.y = 4800; + temp_r31->unk34.z = -3500; + temp_r31->unk2C = 1000; + } + break; + + case 1: + sp3C.x = sind(rot.y)*cosd(rot.x); + sp3C.y = -sind(rot.x); + sp3C.z = cosd(rot.y)*cosd(rot.x); + sp30.x = 1000-(pos.x+(1.25f*(sp3C.x*zoom))); + sp30.y = 4800-(pos.y+(sp3C.y*zoom)); + sp30.z = -3500-(pos.z+(1.25f*(sp3C.z*zoom))); + temp_f29 = 1/VECMagPoint(sp30.x, sp30.y, sp30.z); + sp30.x *= temp_f29; + sp30.y *= temp_f29; + sp30.z *= temp_f29; + temp_f29 = -((-sp30.x*-sp3C.x)+(-sp30.y*-sp3C.y)+(-sp30.z*-sp3C.z)); + sp24.x = -sp3C.x+((-2.0f*sp30.x)*temp_f29); + sp24.y = -sp3C.y+((-2.0f*sp30.y)*temp_f29); + sp24.z = -sp3C.z+((-2.0f*sp30.z)*temp_f29); + temp_r31 = particle->unk_48; + for(i=0; iunk_30; i++, temp_r31++) { + temp_r31->unk34.x = 1000+(sp24.x*temp_r31->unk14.x); + temp_r31->unk34.y = 4800+(sp24.y*temp_r31->unk14.x); + temp_r31->unk34.z = -3500+(sp24.z*temp_r31->unk14.x); + temp_r31->unk40.a = temp_r31->unk14.z*workP->unk20.y; + } + break; + } + DCFlushRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + +} + +void fn_1_9CFC(float arg0) +{ + StructBss48 *workP = lbl_1_bss_48; + workP->unk20.y = arg0; + if(workP->unk20.y > 1.0f) { + workP->unk20.y = 1.0f; + } + if(workP->unk20.y <= 0.0f) { + Hu3DModelAttrSet(workP->unk10[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(workP->unk10[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(workP->unk10[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(workP->unk10[3], HU3D_ATTR_DISPOFF); + } else { + Hu3DModelAttrReset(workP->unk10[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(workP->unk10[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(workP->unk10[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(workP->unk10[3], HU3D_ATTR_DISPOFF); + } +} + +float fn_1_9E00(float start, float end) +{ + float angleDiff; + if(start >= 360.0f) { + start -= 360.0f; + } else if(start < 0.0f) { + start += 360.0f; + } + if(end >= 360.0f) { + end -= 360.0f; + } else if(end < 0.0f) { + end += 360.0f; + } + angleDiff = start-end; + if(angleDiff <= -180.0f) { + angleDiff += 360.0f; + } else if(angleDiff >= 180.0f) { + angleDiff -= 360.0f; + } + return angleDiff; +} + +float fn_1_9F18(float start, float end, float max) +{ + float angle; + float diff; + + if(start >= 360.0) { + start -= 360.0; + } else if(start < 0.0) { + start += 360.0; + } + if(end >= 360.0) { + end -= 360.0; + } else if(end < 0.0) { + end += 360.0; + } + diff = 360.0+(start-end); + if(fabs(diff) >= 360.0) { + diff = fmod(diff, 360.0); + } + if(diff < 180.0) { + if(diff <= max) { + angle = diff; + } else { + angle = max; + } + } else if(360.0-diff <= max) { + angle = -(360.0-diff); + } else { + angle = -max; + } + angle += end; + if(angle >= 360.0) { + angle -= 360.0; + } else if(angle < 0.0) { + angle += 360.0; + } + + return angle; +} \ No newline at end of file From fbf40378ac9fb1df882805e0a1c43e829466d5e1 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sun, 15 Sep 2024 22:50:31 -0500 Subject: [PATCH 073/311] Match m456dll/stage.c This was a near exact copy of m455Dll/stage.c --- config/GMPE01_00/rels/m456Dll/symbols.txt | 3 +- configure.py | 2 +- include/REL/m456Dll.h | 12 + src/REL/m456Dll/stage.c | 1805 +++++++++++++++++++++ 4 files changed, 1820 insertions(+), 2 deletions(-) create mode 100644 include/REL/m456Dll.h create mode 100644 src/REL/m456Dll/stage.c diff --git a/config/GMPE01_00/rels/m456Dll/symbols.txt b/config/GMPE01_00/rels/m456Dll/symbols.txt index 18fc4b5a..1f2502e9 100644 --- a/config/GMPE01_00/rels/m456Dll/symbols.txt +++ b/config/GMPE01_00/rels/m456Dll/symbols.txt @@ -272,7 +272,8 @@ lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte -lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x10 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0xC data:4byte lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index cf5bbdab..238dfd48 100644 --- a/configure.py +++ b/configure.py @@ -1205,7 +1205,7 @@ config.libs = [ "m456Dll", # Take a Breather objects={ Object(NonMatching, "REL/m456Dll/main.c"), - Object(NonMatching, "REL/m456Dll/stage.c"), + Object(Matching, "REL/m456Dll/stage.c"), }, ), Rel( diff --git a/include/REL/m456Dll.h b/include/REL/m456Dll.h new file mode 100644 index 00000000..749d8bd1 --- /dev/null +++ b/include/REL/m456Dll.h @@ -0,0 +1,12 @@ +#ifndef M456DLL_H +#define M456DLL_H + +#include "game/object.h" + +void fn_1_2DF4(Process *objman); +void fn_1_2F3C(void); +s32 fn_1_61C8(Vec *arg0, float arg1, float arg2, s32 arg3); +float fn_1_63AC(void); +s32 fn_1_67E0(Vec *arg0, float arg1); + +#endif diff --git a/src/REL/m456Dll/stage.c b/src/REL/m456Dll/stage.c new file mode 100644 index 00000000..a90d1b95 --- /dev/null +++ b/src/REL/m456Dll/stage.c @@ -0,0 +1,1805 @@ +#include "game/object.h" +#include "game/objsub.h" +#include "game/hsfman.h" +#include "game/hsfdraw.h" +#include "game/hsfanim.h" + +#include "game/hsfmotion.h" +#include "game/pad.h" + +#include "game/wipe.h" +#include "game/frand.h" +#include "game/audio.h" +#include "game/minigame_seq.h" +#include "game/gamework_data.h" +#include "game/chrman.h" +#include "game/sprite.h" + +#include "REL/m456Dll.h" + +#include "ext_math.h" +#include "math.h" + +Process *lbl_1_bss_B8; +omObjData *lbl_1_bss_B4; +omObjData *lbl_1_bss_B0; +omObjData *lbl_1_bss_AC; +omObjData *lbl_1_bss_A8; +omObjData *lbl_1_bss_A4; +omObjData *lbl_1_bss_A0; +Vec lbl_1_bss_94; + +typedef struct struct_bss90 { + AnimData *unk0[4]; + s32 unk10[4]; + Vec unk20; +} StructBss90; + +StructBss90 *lbl_1_bss_90; + +Vec lbl_1_data_2E8[4] = { + { -460, 0, 150 }, + { 460, 0, 150 }, + { -460, 0, -150 }, + { 460, 0, -150 }, +}; + +GXColor lbl_1_data_318 = { 255, 255, 255, 255 }; + +typedef struct struct_data31C { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + BOOL unk10; +} StructData31C; + +StructData31C lbl_1_data_31C[4] = { + { 400, 400, 400, 400, FALSE }, + { 640, 480, 320, 240, TRUE }, + { 640, 480, 640, 480, FALSE }, + { 640, 480, 320, 240, TRUE }, +}; + +void fn_1_89AC(void); + +void fn_1_6444(omObjData *object); +void fn_1_6DB0(omObjData *object); +void fn_1_70F0(omObjData *object); +void fn_1_7778(omObjData *object); +void fn_1_841C(omObjData *object); + +omObjData *fn_1_2FAC(void); + +void fn_1_2DF4(Process *objman) +{ + lbl_1_bss_B8 = objman; + fn_1_89AC(); + lbl_1_bss_B0 = omAddObjEx(lbl_1_bss_B8, 50, 0, 0, -1, fn_1_6444); + lbl_1_bss_AC = omAddObjEx(lbl_1_bss_B8, 50, 8, 0, -1, fn_1_6DB0); + lbl_1_bss_A8 = omAddObjEx(lbl_1_bss_B8, 50, 1, 0, -1, fn_1_70F0); + lbl_1_bss_A4 = omAddObjEx(lbl_1_bss_B8, 50, 0, 0, -1, fn_1_7778); + lbl_1_bss_A0 = omAddObjEx(lbl_1_bss_B8, 50, 0, 0, -1, fn_1_841C); + lbl_1_bss_B4 = fn_1_2FAC(); +} + +void fn_1_3C34(omObjData *object); + +void fn_1_6790(omObjData *object); +void fn_1_6F60(omObjData *object); +void fn_1_74A4(omObjData *object); +void fn_1_7F74(omObjData *object); + +void fn_1_8C68(void); + +void fn_1_2F3C(void) +{ + fn_1_3C34(lbl_1_bss_B4); + fn_1_8C68(); + fn_1_6790(lbl_1_bss_B0); + fn_1_6F60(lbl_1_bss_AC); + fn_1_74A4(lbl_1_bss_A8); + fn_1_7F74(lbl_1_bss_A4); +} + +typedef struct work_2FAC_unk4 { + void *unk0; + u32 unk4; + BOOL unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; +} Work2FACUnk4; + +typedef struct work_2FAC_unk74 { + Vec unk0; + Vec unkC; + float unk18; + u16 unk1C; + u16 unk1E; +} Work2FACUnk74; + +typedef struct work_2FAC { + s32 unk0; + Work2FACUnk4 unk4[4]; + Work2FACUnk74 unk74[64]; + float unk874[26][2]; + float unk944[26][2]; + void *unkA14; + u32 unkA18; + AnimData *unkA1C[9]; + float unkA40; + float unkA44; + u32 unkA48; + u32 unkA4C; + u32 unkA50; + float unkA54; + float unkA58; +} Work2FAC; + +void fn_1_390C(omObjData *object); + +void fn_1_3CB0(ModelData *model, Mtx matrix); +void fn_1_44DC(ModelData *model, Mtx matrix); +void fn_1_4994(ModelData *model, Mtx matrix); + +omObjData *fn_1_2FAC(void) +{ + omObjData *object = omAddObjEx(lbl_1_bss_B8, 127, 15, 0, -1, fn_1_390C); + Work2FAC *work = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work2FAC), MEMORY_DEFAULT_NUM); + Work2FAC *work2 = work; + Work2FACUnk74 *workUnk74 = &work->unk74[0]; + Work2FACUnk4 *workUnk4; + s32 id; + ModelData *modelP; + s32 i; + + work->unkA40 = 0; + work->unkA44 = 0; + work->unkA48 = 0; + work->unkA4C = 0; + work->unkA50 = 0; + work->unkA54 = 0; + work->unkA58 = 0; + + object->model[0] = id = Hu3DHookFuncCreate(fn_1_4994); + Hu3DModelCameraSet(id, HU3D_CAM0); + Hu3DModelLayerSet(id, 5); + modelP = &Hu3DData[id]; + modelP->unk_120 = work; + work->unkA1C[4] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 21), MEMORY_DEFAULT_NUM)); + work->unkA1C[5] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 22), MEMORY_DEFAULT_NUM)); + work->unkA1C[6] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 23), MEMORY_DEFAULT_NUM)); + work->unkA1C[7] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 24), MEMORY_DEFAULT_NUM)); + work->unkA1C[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 17), MEMORY_DEFAULT_NUM)); + work->unkA1C[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 18), MEMORY_DEFAULT_NUM)); + work->unkA1C[2] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 19), MEMORY_DEFAULT_NUM)); + work->unkA1C[3] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 20), MEMORY_DEFAULT_NUM)); + work->unkA1C[8] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 25), MEMORY_DEFAULT_NUM)); + object->model[1] = id = Hu3DHookFuncCreate(fn_1_3CB0); + Hu3DModelCameraSet(id, HU3D_CAM0); + Hu3DModelLayerSet(id, 0); + modelP = &Hu3DData[id]; + modelP->unk_120 = work; + work2->unkA18 = 16384; + work2->unkA14 = HuMemDirectMallocNum(HEAP_SYSTEM, work2->unkA18, MEMORY_DEFAULT_NUM); + DCFlushRange(work2->unkA14, 16384); + GXBeginDisplayList(work2->unkA14, work2->unkA18); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition2f32(-0.5f, -0.5f); + GXTexCoord2f32(0, 0); + GXPosition2f32(0.5f, -0.5f); + GXTexCoord2f32(1, 0); + GXPosition2f32(0.5f, 0.5f); + GXTexCoord2f32(1, 1); + GXPosition2f32(-0.5f, 0.5f); + GXTexCoord2f32(0, 1); + work2->unkA18 = GXEndDisplayList(); + for(i=0; i<26; i++) { + work2->unk874[i][0] = 0; + work2->unk874[i][1] = 0; + work2->unk944[i][0] = 0; + work2->unk944[i][1] = 0; + } + + object->model[3] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 5)); + Hu3DModelPosSet(id, 0, 0, -5000); + Hu3DModelScaleSet(id, 2, 2, 2); + Hu3DModelCameraSet(id, HU3D_CAM0); + Hu3DModelLayerSet(id, 1); + id = Hu3DTexScrollCreate(object->model[3], "S3TCsk"); + Hu3DTexScrollPosMoveSet(id, -0.00009166667f, 0, 0); + id = Hu3DTexScrollCreate(object->model[3], "pa_sk3"); + Hu3DTexScrollPosMoveSet(id, -0.00020833335f, 0, 0); + + object->model[4] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 6)); + Hu3DModelPosSet(id, 0, 0, -3000); + Hu3DModelScaleSet(id, 1.2f, 1.2f, 1.2f); + Hu3DModelCameraSet(id, HU3D_CAM0); + Hu3DModelLayerSet(id, 1); + + object->model[8] = id = Hu3DHookFuncCreate(fn_1_44DC); + Hu3DModelCameraSet(id, HU3D_CAM0); + Hu3DModelLayerSet(id, 2); + modelP = &Hu3DData[id]; + modelP->unk_120 = work; + + object->model[10] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 0)); + Hu3DModelPosSet(id, 0, 0, 0); + Hu3DModelCameraSet(id, HU3D_CAM0); + Hu3DModelLayerSet(id, 3); + Hu3DModelShadowMapSet(object->model[10]); + for(i=0; i<4; i++) { + + object->model[i+11] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 1)); + Hu3DModelCameraSet(object->model[i+11], HU3D_CAM0); + Hu3DModelLayerSet(object->model[i+11], 3); + Hu3DModelPosSet(object->model[i+11], lbl_1_data_2E8[i].x, lbl_1_data_2E8[i].y, lbl_1_data_2E8[i].z); + Hu3DModelAttrSet(object->model[i+11], HU3D_MOTATTR_SHAPE_LOOP); + Hu3DMotionShapeTimeSet(object->model[i+11], (0.25*i)*Hu3DMotionShapeMaxTimeGet(object->model[i+11])); + } + modelP = &Hu3DData[object->model[0]]; + workUnk4 = &work2->unk4[0]; + for(i=0; i<4; i++, workUnk4++) { + workUnk4->unkC = lbl_1_data_31C[i].unk0; + workUnk4->unk10 = lbl_1_data_31C[i].unk4; + workUnk4->unk14 = lbl_1_data_31C[i].unk8; + workUnk4->unk18 = lbl_1_data_31C[i].unkC; + workUnk4->unk8 = lbl_1_data_31C[i].unk10; + workUnk4->unk4 = GXGetTexBufferSize(workUnk4->unk14, workUnk4->unk18, GX_TF_RGB565, GX_FALSE, GX_FALSE); + workUnk4->unk0 = HuMemDirectMallocNum(HEAP_DATA, workUnk4->unk4, modelP->unk_48); + memset(workUnk4->unk0, 0, workUnk4->unk4); + DCFlushRange(workUnk4->unk0, workUnk4->unk4); + } + for(i=0; i<64; i++, workUnk74++) { + workUnk74->unk0.x = workUnk74->unk0.y = workUnk74->unk0.z = 0; + workUnk74->unkC.x = 0; + workUnk74->unkC.y = 0; + workUnk74->unkC.z = 1; + workUnk74->unk18 = 0.016666668f; + workUnk74->unk1C = 60; + workUnk74->unk1E = 0; + } + return object; +} + +void fn_1_97FC(float arg0); + +void fn_1_390C(omObjData *object) +{ + Work2FAC *work = object->data; + Work2FAC *work2 = work; + s32 i; + if((work->unkA50 = work->unkA50+(0.007874016f*((s32)frand() & 0x7F)*3.0f)) > 360) { + work->unkA50 -= 360; + } + work->unkA44 = (25+work->unkA40)+(5.0*sind(work->unkA50)); + Hu3DModelPosSet(object->model[10], 0, work->unkA44, 0); + for(i=0; i<4; i++) { + Hu3DModelPosSet(object->model[i+11], lbl_1_data_2E8[i].x, work->unkA44+lbl_1_data_2E8[i].y, lbl_1_data_2E8[i].z); + } + work->unkA54 += 0.001f; + work->unkA58 += 0.001f; + work->unkA48++; + work->unkA4C++; + if(work->unkA4C >= 60.0f && work->unkA4C <= 81.0f) { + float time = 1-((work->unkA4C-60.0f)/21.0f); + if(time < 0.0f) { + time = 0.0f; + } + fn_1_97FC(time); + } +} + +void fn_1_3C34(omObjData *object) +{ + Work2FAC *work = object->data; + HuSprAnimKill(work->unkA1C[0]); + HuSprAnimKill(work->unkA1C[1]); + HuSprAnimKill(work->unkA1C[2]); + HuSprAnimKill(work->unkA1C[3]); + HuSprAnimKill(work->unkA1C[6]); + HuSprAnimKill(work->unkA1C[7]); + HuSprAnimKill(work->unkA1C[4]); + HuSprAnimKill(work->unkA1C[5]); + HuSprAnimKill(work->unkA1C[8]); +} + +GXColor lbl_1_data_37A = { 255, 255, 255, 32 }; +GXColor lbl_1_data_37E = { 255, 255, 255, 10 }; +GXColor lbl_1_data_382 = { 0, 126, 126, 255 }; +Vec lbl_1_data_388[4] = { + -1000, 50, 1000, + -1000, 50, -1000, + 1000, 50, -1000, + 1000, 50, 1000 +}; + +Vec lbl_1_data_3B8[26] = { + -1500, 0, 1000, + -1400, 0, 1000, + 0, 0, 1000, + 1400, 0, 1000, + 1500, 0, 1000, + -1500, 0, -500, + -1400, 0, -500, + 0, 0, -500, + 1400, 0, -500, + 1500, 0, -500, + -1500, 0, -2000, + -1400, 0, -2000, + 0, 0, -2000, + 1400, 0, -2000, + 1500, 0, -2000, + -1500, 0, -5000, + -1400, 0, -5000, + 0, 0, -5000, + 1400, 0, -5000, + 1500, 0, -5000, + -2000, 0, -500, + -2500, 0, -2000, + -3000, 0, -5000, + 2000, 0, -500, + 2500, 0, -2000, + 3000, 0, -5000 +}; + +GXColor lbl_1_data_4F0[26] = { + { 96, 128, 255, 255 }, + { 128, 160, 255, 32 }, + { 128, 160, 255, 32 }, + { 128, 160, 255, 32 }, + { 96, 128, 255, 255 }, + { 24, 48, 255, 255 }, + { 96, 128, 255, 32 }, + { 128, 160, 255, 32 }, + { 96, 128, 255, 32 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 96, 128, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 8, 24, 143, 255 }, + { 8, 24, 143, 255 }, + { 8, 24, 143, 255 }, + { 8, 24, 143, 255 }, + { 8, 24, 143, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, + { 24, 48, 255, 255 } +}; + +float lbl_1_data_558[26][2] = { + 0, 1, + 0.033333335, 1, + 0.5, 1, + 0.96666664, 1, + 1, 1, + 0, 0.5, + 0.033333335, 0.5, + 0.5, 0.5, + 0.96666664, 0.5, + 1, 0.5, + 0, 0, + 0.033333335, 0, + 0.5, 0, + 0.96666664, 0, + 1, 0, + 0, 0, + 0.033333335, 0, + 0.5, 0, + 0.96666664, 0, + 1, 0, + -0.15, 0.5, + -0.33, 0, + -0.49, 0, + 1.15, 0.5, + 1.33, 0, + 1.49, 0 +}; + +float lbl_1_data_628[26][2] = { + 0, 30, + 0.5, 30, + 7.5, 30, + 14.5, 30, + 15, 30, + 0, 15, + 0.5, 15, + 7.5, 15, + 14.5, 15, + 15, 15, + 0, 7.5, + 0.5, 7.5, + 7.5, 7.5, + 14.5, 7.5, + 15, 7.5, + 0, 0, + 0.5, 0, + 7.5, 0, + 14.5, 0, + 15, 0, + -2.25, 15, + -4.9500003, 7.5, + -7.3500004, 0, + 17.25, 15, + 19.95, 7.5, + 22.35, 0 +}; + +float lbl_1_data_6F8[2][3] = { + 0, 0, 0.5, + 0, 0.5, 0 +}; + +GXColor lbl_1_data_710 = { 80, 80, 80, 80 }; + +Vec lbl_1_data_714[9] = { + -1500, 0, -5000, + 0, 0, -5000, + 1500, 0, -5000, + -1500, 0, -3000, + 0, 0, -3000, + 1500, 0, -3000, + -1500, 0, 1000, + 0, 0, 1000, + 1500, 0, 1000 +}; + +GXColor lbl_1_data_780[9] = { + { 255, 255, 255, 0 }, + { 255, 255, 255, 0 }, + { 255, 255, 255, 0 }, + { 255, 255, 255, 0 }, + { 255, 255, 255, 255 }, + { 255, 255, 255, 0 }, + { 255, 255, 255, 0 }, + { 255, 255, 255, 255 }, + { 255, 255, 255, 0 }, +}; + +GXColor lbl_1_data_7A4 = { 255, 165, 89, 178 }; +GXColor lbl_1_data_7A8 = { 153, 114, 89, 178 }; +GXColor lbl_1_data_7AC = { 0, 0, 0, 255 }; + +void fn_1_5BB8(Work2FACUnk4 *arg0, s32 arg1); + +void fn_1_3CB0(ModelData *model, Mtx matrix) +{ + Work2FAC *work = model->unk_120; + Work2FAC *work2 = work; + Work2FACUnk74 *workUnk74 = &work2->unk74[0]; + Work2FACUnk4 *workUnk4 = &work2->unk4[0]; + s32 i; + Mtx proj; + Mtx modelview; + MTXOrtho(proj, 0, 480, 0, 640, 0, 100); + GXSetProjection(proj, GX_ORTHOGRAPHIC); + MTXIdentity(modelview); + GXLoadPosMtxImm(modelview, GX_PNMTX0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_382); + GXSetTevColor(GX_TEVREG0, lbl_1_data_37E); + GXSetNumTexGens(1); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_RASC, GX_CC_TEXC, GX_CC_A0, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetScissor(0, 0, 400, 400); + HuSprTexLoad(work->unkA1C[4], 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_U16, 0); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition2u16(0, 0); + GXTexCoord2f32(work->unkA54, work->unkA58); + GXPosition2u16(400, 0); + GXTexCoord2f32(work->unkA54+7, work->unkA58); + GXPosition2u16(400, 400); + GXTexCoord2f32(work->unkA54+7, work->unkA58+7); + GXPosition2u16(0, 400); + GXTexCoord2f32(work->unkA54, work->unkA58+7); + GXEnd(); + GXSetNumTexGens(1); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + HuSprTexLoad(work->unkA1C[8], 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXClearVtxDesc(); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_F32, 0); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + workUnk74 = &work2->unk74[0]; + for(i=0; i<64; i++, workUnk74++) { + float scale; + float accel; + if(workUnk74->unk1E == 0) { + continue; + } + scale = 128*(workUnk74->unkC.x*(0.2f+cosd(workUnk74->unk1E*workUnk74->unk18*90.0f))); + accel = workUnk74->unk1E*workUnk74->unk18; + lbl_1_data_37A.a = workUnk74->unkC.z*sind((accel*accel)*90.0f)*255.0; + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_37A); + MTXScale(modelview, 0.5f*scale, 0.5f*scale, 1.0f); + mtxRotCat(modelview, 0, 0, workUnk74->unkC.y); + mtxTransCat(modelview, 400*(workUnk74->unk0.x+1500)/3000, 400*(workUnk74->unk0.z - -2000)/3000, 0); + GXLoadPosMtxImm(modelview, GX_PNMTX0); + GXCallDisplayList(work2->unkA14, work2->unkA18); + if(!omPauseChk()) { + workUnk74->unk1E--; + } + } + workUnk4 = &work2->unk4[0]; + fn_1_5BB8(workUnk4, 1); +} + +void fn_1_54D0(ModelData *model, Mtx matrix); + +void fn_1_44DC(ModelData *model, Mtx matrix) +{ + Work2FAC *work; + Work2FAC *work2; + Work2FACUnk4 *workUnk4; + fn_1_54D0(model, matrix); + work = model->unk_120; + work2 = work; + workUnk4 = &work2->unk4[1]; + fn_1_5BB8(workUnk4, 0); +} + +void fn_1_5C74(Work2FACUnk4 *arg0, float arg1, float arg2, float arg3); + +void fn_1_4544(ModelData *model, Mtx matrix) +{ + Work2FAC *work = model->unk_120; + Work2FAC *work2 = work; + Work2FACUnk4 *workUnk4 = &work2->unk4[0]; + + fn_1_5C74(workUnk4, 200, 0, 0.5f); + workUnk4 = &work2->unk4[1]; + fn_1_5C74(workUnk4, 0, 0, 0.5f); + workUnk4 = &work2->unk4[2]; + fn_1_5C74(workUnk4, 0, 150, 0.25f); + workUnk4 = &work2->unk4[3]; + fn_1_5C74(workUnk4, 0, 300, 0.5f); +} + +void fn_1_60C4(s16 arg0, Work2FACUnk4 *arg1, GXTexWrapMode arg2, s32 arg3, BOOL arg4); + +void fn_1_464C(ModelData *model, Mtx matrix) +{ + CameraData *cameraP = &Hu3DCamera[Hu3DCameraNo]; + Work2FAC *work = model->unk_120; + Work2FAC *work2 = work; + Work2FACUnk4 *workUnk4 = &work2->unk4[2]; + float fov; + Mtx proj; + Mtx texMtx; + Mtx projCamera; + s16 lightMask; + s16 i; + + fn_1_5BB8(workUnk4, 0); + GXLoadPosMtxImm(matrix, GX_PNMTX0); + fov = cameraP->fov; + if(fov <= 0.0f) { + fov = 45; + } + MTXLightPerspective(proj, fov, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + MTXInverse(Hu3DCameraMtx, texMtx); + MTXConcat(texMtx, Hu3DCameraMtx, texMtx); + MTXConcat(proj, Hu3DCameraMtx, projCamera); + MTXConcat(projCamera, texMtx, texMtx); + GXLoadTexMtxImm(texMtx, GX_TEXMTX0, GX_MTX3x4); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); + lightMask = Hu3DLightSet(model, &Hu3DCameraMtx, &Hu3DCameraMtxXPose, 4); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetNumChans(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_318); + GXSetZMode(GX_TRUE, GX_GREATER, GX_FALSE); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + workUnk4 = &work2->unk4[1]; + fn_1_60C4(0, workUnk4, 0, 0, 0); + GXClearVtxDesc(); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetArray(GX_VA_POS, lbl_1_data_388, sizeof(Vec)); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + for(i=0; i<4; i++) { + GXPosition1x16(i); + } + GXEnd(); + workUnk4 = &work2->unk4[3]; + fn_1_5BB8(workUnk4, 0); + workUnk4 = &work2->unk4[2]; + fn_1_60C4(0, workUnk4, 0, 0, 0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + for(i=0; i<4; i++) { + GXPosition1x16(i); + } + GXEnd(); +} + +void fn_1_4994(ModelData *model, Mtx matrix) +{ + CameraData *cameraP = &Hu3DCamera[Hu3DCameraNo]; + Work2FAC *work = model->unk_120; + Work2FAC *work2 = work; + Work2FACUnk4 *workUnk4 = &work2->unk4[2]; + Mtx invXPose; + Mtx proj; + Mtx texMtx; + Mtx projCamera; + float sp14; + float sp10; + float fov; + s16 i; + fn_1_464C(model, matrix); + sp14 = 1.5f; + sp10 = 0; + GXLoadPosMtxImm(matrix, GX_PNMTX0); + MTXInvXpose(matrix, invXPose); + GXLoadNrmMtxImm(invXPose, GX_PNMTX0); + fov = cameraP->fov; + if(fov <= 0.0f) { + fov = 45; + } + MTXLightPerspective(proj, fov, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + MTXInverse(Hu3DCameraMtx, texMtx); + MTXConcat(texMtx, Hu3DCameraMtx, texMtx); + MTXConcat(proj, Hu3DCameraMtx, projCamera); + MTXConcat(projCamera, texMtx, texMtx); + GXLoadTexMtxImm(texMtx, GX_TEXMTX0, GX_MTX3x4); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); + GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX1, GX_IDENTITY); + GXSetNumTevStages(2); + GXSetNumTexGens(3); + GXSetNumChans(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_RASC, GX_CC_RASA, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevColor(GX_TEVREG0, lbl_1_data_710); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_C0, GX_CC_TEXA, GX_CC_CPREV); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_VTX, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_318); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXSetBlendMode(GX_BM_NONE, GX_BL_ONE, GX_BL_ZERO, GX_LO_NOOP); + workUnk4 = &work2->unk4[3]; + fn_1_60C4(0, workUnk4, 0, 0, 0); + HuSprTexLoad(work->unkA1C[3], 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + workUnk4 = &work2->unk4[0]; + fn_1_60C4(2, workUnk4, 0, 0, 1); + GXSetTexCoordGen(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + GXSetNumIndStages(1); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD2, GX_TEXMAP2); + GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); + GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_1); + GXSetIndTexMtx(GX_ITM_1, lbl_1_data_6F8, -1); + for(i=0; i<26; i++) { + work2->unk944[i][0] -= 0.007874016f*((s32)frand() & 0x7F)*0.005f; + work2->unk944[i][1] += 0.007874016f*((s32)frand() & 0x7F)*0.005f; + work2->unk874[i][0] = work2->unk944[i][0]+lbl_1_data_628[i][0]; + work2->unk874[i][1] = work2->unk944[i][1]+lbl_1_data_628[i][1]; + } + DCFlushRange(&work2->unk874[0][0], sizeof(work2->unk874)); + GXClearVtxDesc(); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + + GXSetArray(GX_VA_POS, lbl_1_data_3B8, sizeof(Vec)); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, lbl_1_data_4F0, sizeof(GXColor)); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, lbl_1_data_558, sizeof(float)*2); + GXSetVtxDesc(GX_VA_TEX1, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX1, &work2->unk874[0][0], sizeof(float)*2); + GXBegin(GX_QUADS, GX_VTXFMT0, 48); + for(i=0; i<12; i++) { + s16 index; + if(i == 4) { + index = 12; + } else if(i == 9) { + index = 13; + } else { + index = i; + } + GXPosition1x16(index+0); + GXColor1x16(index+0); + GXTexCoord1x16(index+0); + GXTexCoord1x16(index+0); + GXPosition1x16(index+5); + GXColor1x16(index+5); + GXTexCoord1x16(index+5); + GXTexCoord1x16(index+5); + GXPosition1x16(index+6); + GXColor1x16(index+6); + GXTexCoord1x16(index+6); + GXTexCoord1x16(index+6); + GXPosition1x16(index+1); + GXColor1x16(index+1); + GXTexCoord1x16(index+1); + GXTexCoord1x16(index+1); + } + GXEnd(); + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 8); + GXPosition1x16(22); + GXColor1x16(22); + GXTexCoord1x16(22); + GXTexCoord1x16(22); + GXPosition1x16(15); + GXColor1x16(15); + GXTexCoord1x16(15); + GXTexCoord1x16(15); + GXPosition1x16(21); + GXColor1x16(21); + GXTexCoord1x16(21); + GXTexCoord1x16(21); + GXPosition1x16(10); + GXColor1x16(10); + GXTexCoord1x16(10); + GXTexCoord1x16(10); + GXPosition1x16(20); + GXColor1x16(20); + GXTexCoord1x16(20); + GXTexCoord1x16(20); + GXPosition1x16(5); + GXColor1x16(5); + GXTexCoord1x16(5); + GXTexCoord1x16(5); + GXPosition1x16(0); + GXColor1x16(0); + GXTexCoord1x16(0); + GXTexCoord1x16(0); + GXPosition1x16(0); + GXColor1x16(0); + GXTexCoord1x16(0); + GXTexCoord1x16(0); + GXEnd(); + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 8); + GXPosition1x16(19); + GXColor1x16(19); + GXTexCoord1x16(19); + GXTexCoord1x16(19); + GXPosition1x16(25); + GXColor1x16(25); + GXTexCoord1x16(25); + GXTexCoord1x16(25); + GXPosition1x16(14); + GXColor1x16(14); + GXTexCoord1x16(14); + GXTexCoord1x16(14); + GXPosition1x16(24); + GXColor1x16(24); + GXTexCoord1x16(24); + GXTexCoord1x16(24); + GXPosition1x16(9); + GXColor1x16(9); + GXTexCoord1x16(9); + GXTexCoord1x16(9); + GXPosition1x16(23); + GXColor1x16(23); + GXTexCoord1x16(23); + GXTexCoord1x16(23); + GXPosition1x16(4); + GXColor1x16(4); + GXTexCoord1x16(4); + GXTexCoord1x16(4); + GXPosition1x16(4); + GXColor1x16(4); + GXTexCoord1x16(4); + GXTexCoord1x16(4); + GXEnd(); + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); + GXSetTevDirect(GX_TEVSTAGE1); +} + +void fn_1_54D0(ModelData *model, Mtx matrix) +{ + s32 sp10 = 0; + Work2FAC *work = model->unk_120; + float scale = 1.5f; + float x = 0; + Mtx temp; + Mtx final; + MTXTrans(final, x, -300, 0); + GXSetTevColor(GX_TEVREG0, lbl_1_data_7A4); + MTXScale(temp, scale, 1, 1); + MTXConcat(final, temp, final); + MTXConcat(Hu3DCameraMtx, final, final); + GXLoadPosMtxImm(final, GX_PNMTX0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_318); + HuSprTexLoad(work->unkA1C[0], 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + HuSprTexLoad(work->unkA1C[1], 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetNumTexGens(2); + MTXRotDeg(final, 'X', 90.0f); + x = 0.004f*scale; + MTXScale(temp, x, -0.004f, 0.004f); + MTXConcat(final, temp, final); + MTXTrans(temp, (work->unkA48%1024)/(512.0f*x), 0, 1.2499999f*(work->unkA48%400)); + MTXConcat(final, temp, final); + GXLoadTexMtxImm(final, GX_TEXMTX0, GX_MTX2x4); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX0); + MTXRotDeg(final, 'X', 90.0f); + x = 0.004f*scale; + MTXScale(temp, x, -0.004f, 0.004f); + MTXConcat(final, temp, final); + MTXTrans(temp, (work->unkA48%300)/(150.0f*x), 0, 0); + MTXConcat(final, temp, final); + GXLoadTexMtxImm(final, GX_TEXMTX1, GX_MTX2x4); + GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX1); + GXSetNumTevStages(2); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_SET); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_POS, lbl_1_data_714, sizeof(Vec)); + GXSetArray(GX_VA_CLR0, lbl_1_data_780, sizeof(GXColor)); + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6); + GXPosition1x8(0); + GXColor1x8(0); + GXPosition1x8(1); + GXColor1x8(1); + GXPosition1x8(3); + GXColor1x8(3); + GXPosition1x8(4); + GXColor1x8(4); + GXPosition1x8(6); + GXColor1x8(6); + GXPosition1x8(7); + GXColor1x8(7); + GXEnd(); + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6); + GXPosition1x8(1); + GXColor1x8(1); + GXPosition1x8(2); + GXColor1x8(2); + GXPosition1x8(4); + GXColor1x8(4); + GXPosition1x8(5); + GXColor1x8(5); + GXPosition1x8(7); + GXColor1x8(7); + GXPosition1x8(8); + GXColor1x8(8); + GXEnd(); +} + +void fn_1_5BB8(Work2FACUnk4 *arg0, s32 arg1) +{ + GXSetTexCopySrc(0, 0, arg0->unkC, arg0->unk10); + GXSetTexCopyDst(arg0->unk14, arg0->unk18, GX_TF_RGB565, arg0->unk8); + GXSetCopyClear(lbl_1_data_7AC, GX_MAX_Z24); + GXCopyTex(arg0->unk0, arg1); +} + +void fn_1_5C74(Work2FACUnk4 *fbWork, float x1, float y1, float scale) +{ + float x2 = x1+(fbWork->unk14*scale); + float y2 = y1+(fbWork->unk18*scale); + Mtx44 proj; + Mtx modelview; + GXTexObj texObj; + GXColor color; + GXInitTexObj(&texObj, fbWork->unk0, fbWork->unk14, fbWork->unk18, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&texObj, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXLoadTexObj(&texObj, GX_TEXMAP0); + MTXOrtho(proj, 0, 480, 0, 640, 0, 10); + GXSetProjection(proj, GX_ORTHOGRAPHIC); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + color.a = 255; + GXSetTevColor(GX_TEVREG0, color); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumTexGens(1); + GXSetNumTevStages(1); + MTXIdentity(modelview); + GXLoadPosMtxImm(modelview, GX_PNMTX0); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(x1, y1, 0); + GXTexCoord2f32(0, 0); + GXPosition3f32(x2, y1, 0); + GXTexCoord2f32(1, 0); + GXPosition3f32(x2, y2, 0); + GXTexCoord2f32(1, 1); + GXPosition3f32(x1, y2, 0); + GXTexCoord2f32(0, 1); + GXEnd(); +} + +void fn_1_60C4(s16 arg0, Work2FACUnk4 *arg1, GXTexWrapMode arg2, s32 arg3, BOOL arg4) +{ + GXTexObj texObj; + GXInitTexObj(&texObj, arg1->unk0, arg1->unk14, arg1->unk18, GX_TF_RGB565, arg2, arg2, FALSE); + if(arg4) { + GXInitTexObjLOD(&texObj, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + } else { + GXInitTexObjLOD(&texObj, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + } + GXLoadTexObj(&texObj, arg0); +} + +s32 fn_1_61C8(Vec *arg0, float arg1, float arg2, s32 arg3) +{ + Work2FAC *work; + Work2FAC *work2; + Work2FACUnk74 *workUnk74; + s32 i; + if(!lbl_1_bss_B4) { + return -1; + } + work = lbl_1_bss_B4->data; + work2 = work; + workUnk74 = &work->unk74[0]; + for(i=0; i<64; i++, workUnk74++) { + if(workUnk74->unk1E == 0) { + break; + } + } + if(i >= 64) { + return -1; + } + workUnk74->unk0 = *arg0; + if(arg1 < 0.0f) { + workUnk74->unkC.x = 1; + } else { + workUnk74->unkC.x = arg1; + } + if(arg2 < 0.0f) { + workUnk74->unkC.z = 1; + } else { + workUnk74->unkC.z = arg2; + } + if(arg3 < 0) { + workUnk74->unk1C = 60; + } else { + workUnk74->unk1C = arg3; + } + workUnk74->unkC.y = (s32)frand()%360; + workUnk74->unk1E = workUnk74->unk1C; + workUnk74->unk18 = 1.0f/workUnk74->unk1C; + return i; +} + +float fn_1_63AC(void) +{ + if(!lbl_1_bss_B4) { + return 0; + } else { + Work2FAC *work = lbl_1_bss_B4->data; + return work->unkA44; + } +} + +float fn_1_63F8(void) +{ + if(!lbl_1_bss_B4) { + return 0; + } else { + Work2FAC *work = lbl_1_bss_B4->data; + return work->unkA40; + } +} + +typedef struct work6914 { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + AnimData *unk10; + Vec unk14; + Vec unk20; + Vec unk2C; +} Work6914; + +void fn_1_659C(omObjData *object); + +void fn_1_6444(omObjData *object) +{ + Work6914 *work; + s32 i; + AnimData *anim; + work = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work6914)*8, MEMORY_DEFAULT_NUM); + memset(work, 0, sizeof(Work6914)*8); + anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 26), MEMORY_DEFAULT_NUM)); + for(i=0; i<8; i++, work++) { + work->unk10 = anim; + work->unk0 = i; + work->unk4 = Hu3DParticleCreate(work->unk10, 32); + Hu3DModelCameraSet(work->unk4, HU3D_CAM0); + Hu3DModelLayerSet(work->unk4, 6); + Hu3DModelAttrSet(work->unk4, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(work->unk4, HU3D_ATTR_PARTICLE_KILL); + work->unk8 = 0; + work->unkC = 0; + work->unk14.x = work->unk14.y = work->unk14.z = 0; + work->unk20.x = work->unk20.y = work->unk20.z = 0; + work->unk2C.x = work->unk2C.y = work->unk2C.z = 1; + } + object->func = fn_1_659C; +} + +void fn_1_659C(omObjData *object) +{ + Work6914 *work = object->data; + s32 i; + for(i=0; i<8; i++, work++) { + if(work->unk8 == 0) { + continue; + } + if(work->unkC > 1) { + ModelData *modelP = &Hu3DData[work->unk4]; + ParticleData *particleP = modelP->unk_120; + HsfanimStruct01 *data = particleP->unk_48; + s32 j; + for(j=0; junk_30; j++, data++) { + if(++data->unk00_s16 > data->unk02) { + s32 alpha = data->unk40.a-1; + if(alpha < 0) { + data->unk2C = 0; + } else { + data->unk40.a = alpha; + } + } + data->unk2C *= 0.975; + data->unk34.x += data->unk08.x; + data->unk34.y += data->unk08.y; + data->unk34.z += data->unk08.z; + data->unk08.y -= 0.3103333379576603; + } + } + if(++work->unkC > 90.0f) { + Hu3DModelAttrSet(work->unk4, HU3D_ATTR_DISPOFF); + work->unk8 = 0; + } else { + Hu3DModelPosSet(work->unk4, work->unk14.x, work->unk14.y, work->unk14.z); + Hu3DModelRotSet(work->unk4, work->unk20.x, work->unk20.y, work->unk20.z); + Hu3DModelScaleSet(work->unk4, work->unk2C.x, work->unk2C.y, work->unk2C.z); + } + } +} + +void fn_1_6790(omObjData *object) +{ + Work6914 *work = object->data; + AnimData *anim = work->unk10; + anim->useNum = 0; + HuSprAnimKill(anim); +} + +s32 fn_1_67E0(Vec *arg0, float arg1) +{ + Work6914 *work = lbl_1_bss_B0->data; + s32 i; + ModelData *temp_r27; + ParticleData *temp_r28; + HsfanimStruct01 *temp_r30; + + for(i=0; i<8; i++, work++) { + if(work->unk8 == 0) { + break; + } + } + if(i >= 8) { + return -1; + } + Hu3DModelAttrReset(work->unk4, HU3D_ATTR_DISPOFF); + work->unk8 = 1; + work->unkC = 0; + temp_r27 = &Hu3DData[work->unk4]; + temp_r28 = temp_r27->unk_120; + temp_r28->unk_2C = 1; + temp_r30 = temp_r28->unk_48; + for(i=0; iunk_30; i++, temp_r30++) { + float temp_f30 = ((s32)frand()%20)+90; + float temp_f29 = (s32)frand()%360; + float temp_f26 = sind(temp_f30); + float temp_f28 = cosd(temp_f30); + float temp_f25 = 0.75f+0.15f*(0.007874016f*((s32)frand() & 0x7F)); + float temp_f31 = 0.15f; + temp_r30->unk08.x = temp_f31*(0.65f*(50.0*(temp_f28*sind(temp_f29)))); + temp_r30->unk08.z = temp_f31*(0.65f*(50.0*(temp_f28*cosd(temp_f29)))); + temp_r30->unk08.y = temp_f31*(50*temp_f26*temp_f25); + temp_r30->unk00_s16 = 0; + temp_r30->unk02 = ((s32)frand()%16)+45; + temp_r30->unk30 = (s32)frand()%360; + temp_r30->unk2C = 145; + temp_r30->unk34.x = 0.05f*(((s32)frand() & 0x7F)-64); + temp_r30->unk34.y = 0.65f*(((s32)frand() & 0x7F)-64); + temp_r30->unk34.z = 0.05f*(((s32)frand() & 0x7F)-64); + temp_r30->unk40.r = ((s32)frand()%64)+192; + temp_r30->unk40.g = ((s32)frand()%64)+192; + temp_r30->unk40.b = ((s32)frand()%64)+192; + temp_r30->unk40.a = 64; + } + if(arg1 < 0.0f) { + arg1 = 1.0f; + } + work->unk14 = *arg0; + work->unk20.x = work->unk20.y = work->unk20.z = 0; + work->unk2C.x = work->unk2C.y = work->unk2C.z = arg1; + Hu3DModelPosSet(work->unk4, work->unk14.x, work->unk14.y, work->unk14.z); + Hu3DModelRotSet(work->unk4, work->unk20.x, work->unk20.y, work->unk20.z); + Hu3DModelScaleSet(work->unk4, work->unk2C.x, work->unk2C.y, work->unk2C.z); + return i; +} + +void fn_1_6E98(omObjData *object); + +void fn_1_6DB0(omObjData *object) +{ + s32 i; + for(i=0; imdlcnt; i++) { + if(i == 0) { + object->model[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 9)); + } else { + object->model[i] = Hu3DModelLink(object->model[0]); + } + Hu3DModelCameraSet(object->model[i], HU3D_CAM0); + Hu3DModelLayerSet(object->model[i], 6); + Hu3DModelAttrSet(object->model[i], HU3D_ATTR_DISPOFF); + + } + object->stat |= 0x100; + object->func = fn_1_6E98; +} + +void fn_1_6E98(omObjData *object) +{ + s32 i; + for(i=0; imdlcnt; i++) { + ModelData *modelP = &Hu3DData[object->model[i]]; + if(!(modelP->attr & HU3D_ATTR_DISPOFF)) { + if(Hu3DMotionTimeGet(object->model[i]) >= Hu3DMotionMaxTimeGet(object->model[i])) { + Hu3DModelAttrSet(object->model[i], HU3D_ATTR_DISPOFF); + } + } + } +} + +void fn_1_6F60(omObjData *object) +{ + +} + +s32 fn_1_6F64(Vec *pos, float scale) +{ + s32 i; + for(i=0; imdlcnt; i++) { + ModelData *modelP = &Hu3DData[lbl_1_bss_AC->model[i]]; + if(modelP->attr & HU3D_ATTR_DISPOFF) { + break; + } + } + if(i >= lbl_1_bss_AC->mdlcnt) { + return -1; + } + Hu3DMotionTimeSet(lbl_1_bss_AC->model[i], 0); + Hu3DMotionSpeedSet(lbl_1_bss_AC->model[i], 1); + Hu3DModelPosSet(lbl_1_bss_AC->model[i], pos->x, pos->y, pos->z); + Hu3DModelScaleSet(lbl_1_bss_AC->model[i], scale, scale, scale); + Hu3DModelAttrReset(lbl_1_bss_AC->model[i], HU3D_ATTR_DISPOFF); + return i; +} + +void fn_1_71E0(omObjData *object); + +void fn_1_70F0(omObjData *object) +{ + ParticleData *temp_r30; + HsfanimStruct01 *temp_r29; + s32 i; + ModelData *modelP; + AnimData *anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 26), MEMORY_DEFAULT_NUM)); + + object->data = anim; + object->model[0] = Hu3DParticleCreate(anim, 64); + Hu3DModelCameraSet(object->model[0], HU3D_CAM0); + Hu3DModelLayerSet(object->model[0], 3); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_PARTICLE_KILL); + modelP = &Hu3DData[object->model[0]]; + temp_r30 = modelP->unk_120; + temp_r29 = temp_r30->unk_48; + temp_r30->unk_2C = 1; + for(i=0; iunk_30; i++, temp_r29++) { + temp_r29->unk2C = 0; + } + object->func = fn_1_71E0; +} + +void fn_1_71E0(omObjData *object) +{ + ModelData *modelP = &Hu3DData[object->model[0]]; + ParticleData *temp_r29 = modelP->unk_120; + HsfanimStruct01 *temp_r30 = temp_r29->unk_48; + s32 i; + for(i=0; iunk_30; i++, temp_r30++) { + if(temp_r30->unk2C <= 0.0f) { + continue; + } + if(++temp_r30->unk00_s16 > 360) { + temp_r30->unk00_s16 -= 360; + } + temp_r30->unk34.x += temp_r30->unk08.x*sind(2.0f*temp_r30->unk00_s16); + temp_r30->unk34.y += temp_r30->unk08.y; + if(temp_r30->unk34.y >= 0.0f) { + fn_1_61C8(&temp_r30->unk34, 0.00625f*temp_r30->unk2C, 1, 15); + temp_r30->unk2C = 0; + } + + } +} + +void fn_1_74A4(omObjData *object) +{ + AnimData *anim = object->data; + HuSprAnimKill(anim); + Hu3DModelKill(object->model[0]); + object->model[0] = -1; +} + +s32 fn_1_74F8(Vec *pos, float scale) +{ + s32 i; + ModelData *modelP = &Hu3DData[lbl_1_bss_A8->model[0]]; + ParticleData *temp_r30 = modelP->unk_120; + HsfanimStruct01 *temp_r31 = temp_r30->unk_48; + for(i=0; iunk_30; i++, temp_r31++) { + if(temp_r31->unk2C <= 0.0f) { + break; + } + } + if(i >= temp_r30->unk_30) { + return -1; + } + if(scale <= 0.0f) { + scale = 1.0f; + } + temp_r31->unk34 = *pos; + temp_r31->unk08.x = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*0.5f; + temp_r31->unk08.z = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F)))); + temp_r31->unk08.y = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*2.0f; + temp_r31->unk00_s16 = (s32)frand()%360; + temp_r31->unk2C = 20*scale; + return i; +} + + +typedef struct work7C48 { + s32 unk0; + s32 unk4; + s32 unk8; + float unkC; + float unk10; + Vec unk14; + Vec unk20; +} Work7C48; + +void fn_1_7B50(omObjData *object); + +void fn_1_7778(omObjData *object) +{ + Work7C48 *workBase = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work7C48)*8, MEMORY_DEFAULT_NUM); + Work7C48 *workP = workBase; + s32 i; + memset(workP, 0, 8*sizeof(Work7C48)); + for(i=0; i<8; i++, workP++) { + switch(i) { + case 0: + workP->unk0 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 3)); + break; + + case 1: + workP->unk0 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 4)); + break; + + default: + if(i & 0x1) { + workP->unk0 = Hu3DModelLink(workBase[0].unk0); + } else { + workP->unk0 = Hu3DModelLink(workBase[1].unk0); + } + break; + } + Hu3DModelCameraSet(workP->unk0, HU3D_CAM0); + Hu3DModelLayerSet(workP->unk0, 1); + workP->unk4 = 0; + workP->unk8 = 0; + workP->unkC = 2; + workP->unk10 = (s32)frand() % 360; + workP->unk14.x = 1500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk14.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk14.y = -250+(100*(0.3f*i)); + workP->unk20.x = 1500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.y = workP->unk14.y; + Hu3DModelPosSet(workP->unk0, workP->unk14.x, workP->unk14.y, workP->unk14.z); + Hu3DModelRotSet(workP->unk0, 0, workP->unk10, 0); + } + object->func = fn_1_7B50; +} + +float fn_1_9A18(float start, float end, float weight); + +void fn_1_7B50(omObjData *object) +{ + Work7C48 *workP = object->data; + s32 i; + for(i=0; i<8; i++, workP++) { + float dx; + float dz; + float vel; + float angle; + if(workP->unk4 == 0) { + vel = 1+(0.5*sind((workP->unk8*5)%180)); + } else { + vel = 3; + } + workP->unk14.x += vel*(workP->unkC*sind(workP->unk10)); + workP->unk14.z += vel*(workP->unkC*cosd(workP->unk10)); + dx = workP->unk20.x-workP->unk14.x; + dz = workP->unk20.z-workP->unk14.z; + angle = atan2d(dx, dz); + workP->unk10 = fn_1_9A18(angle, workP->unk10, 3.5f); + if((dx*dx)+(dz*dz) < 10000.0f) { + if(workP->unk4 == 0) { + workP->unk20.x = 2000*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.z = 700*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.y = workP->unk14.y; + } else { + if(workP->unk14.x < 0.0f) { + workP->unk20.x = -2500; + } else { + workP->unk20.x = 2500; + } + workP->unk20.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.y = workP->unk14.y; + } + } + Hu3DModelPosSet(workP->unk0, workP->unk14.x, workP->unk14.y, workP->unk14.z); + Hu3DModelRotSet(workP->unk0, 0, workP->unk10, 0); + workP->unk8 += frand()&0x3; + } +} + +void fn_1_7F74(omObjData *object) +{ + +} + +void fn_1_7F78(void) +{ + Work7C48 *workP = lbl_1_bss_A4->data; + s32 i; + for(i=0; i<8; i++, workP++) { + workP->unk4 = 1; + if(workP->unk14.x < 0.0f) { + workP->unk20.x = -2500; + } else { + workP->unk20.x = 2500; + } + workP->unk20.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.y = workP->unk14.y; + } +} + +typedef struct work891C { + s16 unk0; + s16 unk2[2]; + s16 unk6; + Vec unk8; + Vec unk14; + float unk20; + float unk24; + float unk28; + float unk2C; + float unk30; + float unk34; + float unk38; + float unk3C; +} Work891C; + +void fn_1_8078(omObjData *object, Work891C *workP) +{ + s32 num = workP[0].unk6; + float ofsZ = -2000; + s32 i; + for(i=0; iunk0, workP->unk8.x, workP->unk8.y, workP->unk8.z+ofsZ); + modelMtx = &Hu3DData[workP->unk0].unk_F0; + MTXRotDeg(*modelMtx, 'Y', workP->unk28); + MTXRotDeg(rotZ, 'Z', workP->unk38); + MTXConcat(*modelMtx, rotZ, *modelMtx); + Hu3DModelAttrReset(workP->unk0, HU3D_ATTR_DISPOFF); + } +} + +float fn_1_8890(float start, float end, float weight); + +void fn_1_817C(omObjData *object) +{ + Work891C *workP = object->data; + s32 num = workP[0].unk6; + s32 i; + for(i=0; iunk14, &workP->unk8, &diff); + workP->unk2C = atan2d(diff.x, diff.z); + workP->unk28 = fn_1_8890(workP->unk28, workP->unk2C+workP->unk3C, 0.08f); + workP->unk24 += 0.05f*(600.0f-workP->unk24); + workP->unk20 += 0.2f*(workP->unk24-workP->unk20); + workP->unk8.x += (workP->unk20*0.016666668f)*sind(workP->unk28); + workP->unk8.z += (workP->unk20*0.016666668f)*cosd(workP->unk28); + workP->unk30 += workP->unk20*0.016666668f; + } + fn_1_8078(object, object->data); + +} + +void fn_1_841C(omObjData *object) +{ + s16 num = 12; + Work891C *workBase; + s32 modelId; + Work891C *work; + float radius; + float angle; + float ofsZ; + s32 i; + object->data = workBase = HuMemDirectMallocNum(HEAP_SYSTEM, num*sizeof(Work891C), MEMORY_DEFAULT_NUM); + memset(workBase, 0, num*sizeof(Work891C)); + modelId = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 8)); + ofsZ = 1500; + work = workBase; + for(i=0; iunk0 = Hu3DModelLink(modelId); + Hu3DModelLayerSet(work->unk0, 6); + Hu3DModelCameraSet(work->unk0, 1); + Hu3DModelScaleSet(work->unk0, 7, 7, 7); + work->unk14.x = ((s32)frandmod(1000)*4.0f)-2000; + work->unk14.z = ((s32)frandmod(1000))-500.0f; + work->unk14.y = ((s32)frandmod(1000)*0.8f)+300; + angle = (s32)frandmod(360); + radius = ((s32)frandmod(250))+200.0f; + work->unk8.x = radius*sind(angle); + work->unk8.y = 0; + work->unk8.z = radius*cosd(angle); + VECAdd(&work->unk14, &work->unk8, &work->unk8); + work->unk38 = 60-((6.0f/55.0f)*radius); + work->unk28 = (s32)frandmod(360); + + work->unk3C = ((s32)frandmod(1000) < 500) ? (-70.0f+((s32)frandmod(50)*0.1f)) : (70.0f-((s32)frandmod(50)*0.1f)); + if(work->unk3C < 0.0f) { + work->unk38 = -work->unk38; + } + work->unk30 = 1; + work->unk34 = 0; + ofsZ -= 50.0f; + work->unk6 = num; + } + Hu3DModelKill(modelId); + object->func = fn_1_817C; +} + +float fn_1_8890(float start, float end, float weight) +{ + float angle = fmodf(end-start, 360); + if(angle < 0.0f) { + angle += 360.0f; + } + if(angle > 180.0f) { + angle -= 360.0f; + } + angle = fmodf(start+(weight*angle), 360); + if(angle < 0.0f) { + angle += 360.0f; + } + return angle; +} + +void fn_1_8CB8(ModelData *model, ParticleData *particle, Mtx matrix); + +void fn_1_89AC(void) +{ + StructBss90 *workP = lbl_1_bss_90 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(StructBss90), MEMORY_DEFAULT_NUM); + ParticleData *particle; + ModelData *modelP; + s16 *newWork; + s32 modelId; + memset(workP, 0, sizeof(StructBss90)); + workP->unk0[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 13), MEMORY_DEFAULT_NUM)); + workP->unk0[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 14), MEMORY_DEFAULT_NUM)); + workP->unk0[2] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 15), MEMORY_DEFAULT_NUM)); + workP->unk0[3] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 16), MEMORY_DEFAULT_NUM)); + workP->unk20.y = 1; + workP->unk20.z = 0; + workP->unk10[0] = modelId = Hu3DParticleCreate(workP->unk0[0], 1); + Hu3DModelLayerSet(modelId, 6); + modelP = &Hu3DData[modelId]; + particle = modelP->unk_120; + particle->unk_2C = 1; + particle->unk_54 = fn_1_8CB8; + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); + memset(newWork, 0, 4*sizeof(s16)); + newWork[1] = 0; + workP->unk10[1] = modelId = Hu3DParticleCreate(workP->unk0[3], 10); + Hu3DModelLayerSet(modelId, 6); + modelP = &Hu3DData[modelId]; + particle = modelP->unk_120; + particle->unk_2C = 1; + particle->unk_54 = fn_1_8CB8; + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); + memset(newWork, 0, 4*sizeof(s16)); + newWork[1] = 1; + workP->unk10[2] = modelId = Hu3DParticleCreate(workP->unk0[2], 4); + Hu3DModelLayerSet(modelId, 6); + modelP = &Hu3DData[modelId]; + particle = modelP->unk_120; + particle->unk_2C = 1; + particle->unk_54 = fn_1_8CB8; + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); + memset(newWork, 0, 4*sizeof(s16)); + newWork[1] = 2; + workP->unk10[3] = modelId = Hu3DParticleCreate(workP->unk0[1], 6); + Hu3DModelLayerSet(modelId, 6); + modelP = &Hu3DData[modelId]; + particle = modelP->unk_120; + particle->unk_2C = 1; + particle->unk_54 = fn_1_8CB8; + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); + memset(newWork, 0, 4*sizeof(s16)); + newWork[1] = 3; +} + +void fn_1_8C68(void) +{ + StructBss90 *workP = lbl_1_bss_90; + HuSprAnimKill(workP->unk0[0]); + HuSprAnimKill(workP->unk0[1]); + HuSprAnimKill(workP->unk0[2]); + HuSprAnimKill(workP->unk0[3]); +} + +float lbl_1_data_7B0[4] = { + 1000, + 200, + 600, + 1200 +}; + +float lbl_1_data_7C0[4] = { + 1, + 0.6, + 0.3, + 0.425 +}; + +void fn_1_8CB8(ModelData *model, ParticleData *particle, Mtx matrix) +{ + s16 unk8 = 0; + StructBss90 *workP = lbl_1_bss_90; + s16 *newWorkP = particle->unk_1C; + s32 unk14 = 0; + Vec pos = Center; + Vec rot = CRot; + float temp_f26; + float temp_f25; + float zoom = CZoom; + HsfanimStruct01 *temp_r31; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + float temp_f29; + float temp_f23; + s32 i; + switch(newWorkP[2]) { + case 0: + temp_r31 = particle->unk_48; + if(newWorkP[1]) { + sp18.x = 2000; + sp18.y = -300; + sp18.z = 500; + temp_f29 = 1/VECMagPoint(sp18.x, sp18.y, sp18.z); + sp18.x *= temp_f29; + sp18.y *= temp_f29; + sp18.z *= temp_f29; + temp_f23 = 3200.0f/particle->unk_30; + for(i=0; iunk_30; i++, temp_r31++) { + temp_f26 = 500.0+((temp_f23*i)+((0.25f*temp_f23)*((float)((s32)frand() & 0xFFFF)*0.0000152587890625))); + temp_f25 = temp_f26/3200; + temp_r31->unk14.x = temp_f26; + temp_r31->unk34.x = 1000+(temp_f26*sp18.x); + temp_r31->unk34.y = 4800+(temp_f26*sp18.y); + temp_r31->unk34.z = -3500+(temp_f26*sp18.z); + temp_r31->unk2C = ((0.7f*(temp_f25*temp_f25))+0.3f)*(lbl_1_data_7B0[newWorkP[1]]*(0.7f+(0.3f*((float)((s32)frand() & 0xFFFF)*0.0000152587890625)))); + temp_r31->unk40.r = (s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*160.0)+32; + temp_r31->unk40.g = (s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*96.0)+32; + temp_r31->unk40.b = (s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*128.0)+32; + temp_r31->unk40.a = (255*lbl_1_data_7C0[newWorkP[1]]*(1.0-(0.4*temp_f25)))-(s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*16.0); + temp_r31->unk14.z = temp_r31->unk40.a; + } + newWorkP[2]++; + } else { + temp_r31->unk34.x = 1000; + temp_r31->unk34.y = 4800; + temp_r31->unk34.z = -3500; + temp_r31->unk2C = 1000; + } + break; + + case 1: + sp3C.x = sind(rot.y)*cosd(rot.x); + sp3C.y = -sind(rot.x); + sp3C.z = cosd(rot.y)*cosd(rot.x); + sp30.x = 1000-(pos.x+(1.25f*(sp3C.x*zoom))); + sp30.y = 4800-(pos.y+(sp3C.y*zoom)); + sp30.z = -3500-(pos.z+(1.25f*(sp3C.z*zoom))); + temp_f29 = 1/VECMagPoint(sp30.x, sp30.y, sp30.z); + sp30.x *= temp_f29; + sp30.y *= temp_f29; + sp30.z *= temp_f29; + temp_f29 = -((-sp30.x*-sp3C.x)+(-sp30.y*-sp3C.y)+(-sp30.z*-sp3C.z)); + sp24.x = -sp3C.x+((-2.0f*sp30.x)*temp_f29); + sp24.y = -sp3C.y+((-2.0f*sp30.y)*temp_f29); + sp24.z = -sp3C.z+((-2.0f*sp30.z)*temp_f29); + temp_r31 = particle->unk_48; + for(i=0; iunk_30; i++, temp_r31++) { + temp_r31->unk34.x = 1000+(sp24.x*temp_r31->unk14.x); + temp_r31->unk34.y = 4800+(sp24.y*temp_r31->unk14.x); + temp_r31->unk34.z = -3500+(sp24.z*temp_r31->unk14.x); + temp_r31->unk40.a = temp_r31->unk14.z*workP->unk20.y; + } + break; + } + DCFlushRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); + +} + +void fn_1_97FC(float arg0) +{ + StructBss90 *workP = lbl_1_bss_90; + workP->unk20.y = arg0; + if(workP->unk20.y > 1.0f) { + workP->unk20.y = 1.0f; + } + if(workP->unk20.y <= 0.0f) { + Hu3DModelAttrSet(workP->unk10[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(workP->unk10[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(workP->unk10[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(workP->unk10[3], HU3D_ATTR_DISPOFF); + } else { + Hu3DModelAttrReset(workP->unk10[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(workP->unk10[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(workP->unk10[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(workP->unk10[3], HU3D_ATTR_DISPOFF); + } +} + +float fn_1_9900(float start, float end) +{ + float angleDiff; + if(start >= 360.0f) { + start -= 360.0f; + } else if(start < 0.0f) { + start += 360.0f; + } + if(end >= 360.0f) { + end -= 360.0f; + } else if(end < 0.0f) { + end += 360.0f; + } + angleDiff = start-end; + if(angleDiff <= -180.0f) { + angleDiff += 360.0f; + } else if(angleDiff >= 180.0f) { + angleDiff -= 360.0f; + } + return angleDiff; +} + +float fn_1_9A18(float start, float end, float max) +{ + float angle; + float diff; + + if(start >= 360.0) { + start -= 360.0; + } else if(start < 0.0) { + start += 360.0; + } + if(end >= 360.0) { + end -= 360.0; + } else if(end < 0.0) { + end += 360.0; + } + diff = 360.0+(start-end); + if(fabs(diff) >= 360.0) { + diff = fmod(diff, 360.0); + } + if(diff < 180.0) { + if(diff <= max) { + angle = diff; + } else { + angle = max; + } + } else if(360.0-diff <= max) { + angle = -(360.0-diff); + } else { + angle = -max; + } + angle += end; + if(angle >= 360.0) { + angle -= 360.0; + } else if(angle < 0.0) { + angle += 360.0; + } + + return angle; +} \ No newline at end of file From 47ef33b2d5dcb426d40bbd6482dd0fa05272a083 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 17 Sep 2024 23:56:06 +0200 Subject: [PATCH 074/311] Finished mpexDll/charsel.c --- config/GMPE01_00/rels/mpexDll/symbols.txt | 8 +- configure.py | 2 +- include/REL/mpexDll.h | 13 +- src/REL/mpexDll/charsel.c | 3107 +++++++++++++++++++++ src/REL/mpexDll/main.c | 2 +- src/REL/mpexDll/mgname.c | 2 +- 6 files changed, 3122 insertions(+), 12 deletions(-) create mode 100644 src/REL/mpexDll/charsel.c diff --git a/config/GMPE01_00/rels/mpexDll/symbols.txt b/config/GMPE01_00/rels/mpexDll/symbols.txt index c49d50a3..8b856ada 100644 --- a/config/GMPE01_00/rels/mpexDll/symbols.txt +++ b/config/GMPE01_00/rels/mpexDll/symbols.txt @@ -423,10 +423,10 @@ lbl_1_data_491 = .data:0x00000491; // type:object size:0x16 data:string lbl_1_data_4A7 = .data:0x000004A7; // type:object size:0x19 data:string lbl_1_data_4C0 = .data:0x000004C0; // type:object size:0x16 data:string lbl_1_data_4D6 = .data:0x000004D6; // type:object size:0x42 -lbl_1_data_518 = .data:0x00000518; // type:object size:0x3C data:string -lbl_1_data_554 = .data:0x00000554; // type:object size:0x19 data:string -lbl_1_data_56D = .data:0x0000056D; // type:object size:0x1A data:string -lbl_1_data_587 = .data:0x00000587; // type:object size:0x3D +lbl_1_data_518 = .data:0x00000518; // type:object size:0x3C scope:local data:string +lbl_1_data_554 = .data:0x00000554; // type:object size:0x19 scope:local data:string +lbl_1_data_56D = .data:0x0000056D; // type:object size:0x1A scope:local data:string +lbl_1_data_587 = .data:0x00000587; // type:object size:0x3D scope:local data:string lbl_1_data_5C4 = .data:0x000005C4; // type:object size:0x20 data:4byte lbl_1_data_5E4 = .data:0x000005E4; // type:object size:0x40 data:4byte lbl_1_data_624 = .data:0x00000624; // type:object size:0x70 diff --git a/configure.py b/configure.py index d04f0d54..0de9c77d 100644 --- a/configure.py +++ b/configure.py @@ -1301,7 +1301,7 @@ config.libs = [ objects={ Object(Matching, "REL/mpexDll/main.c"), Object(NonMatching, "REL/mpexDll/mpex.c"), - Object(NonMatching, "REL/mpexDll/charsel.c"), + Object(Matching, "REL/mpexDll/charsel.c"), Object(Matching, "REL/mpexDll/mgname.c"), }, ), diff --git a/include/REL/mpexDll.h b/include/REL/mpexDll.h index 3c4c3d78..c14b7b54 100644 --- a/include/REL/mpexDll.h +++ b/include/REL/mpexDll.h @@ -26,13 +26,16 @@ typedef struct MpexDllUnkStruct2 { /* 0x58 */ u32 unk_58; } MpexDllUnkStruct2; /* size = unknown */ +void fn_1_374(void); +void fn_1_298(void); +void fn_1_910(MpexDllUnkFunc arg0); +void fn_1_25C4(MpexDllUnkStruct2 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_28E0(MpexDllUnkStruct2 *arg0, s32 arg1, Vec *arg2, float arg8, float arg9, float argA, s32 arg3, s32 arg4); s32 fn_1_3044(Process *arg0); -// s32 fn_1_1B52C(float, float, float, float); seems implicit in main.c -s32 fn_1_1B554(float, float, float); -s32 fn_1_1B574(float, float, float, float); -s32 fn_1_1B64C(float, float, float, float); -s32 fn_1_1B7D0(s32 arg0); +void fn_1_1B7D0(s32 arg0); + +s32 fn_1_1D02C(s32 arg0); extern u8 lbl_1_bss_6AC; diff --git a/src/REL/mpexDll/charsel.c b/src/REL/mpexDll/charsel.c new file mode 100644 index 00000000..180626fa --- /dev/null +++ b/src/REL/mpexDll/charsel.c @@ -0,0 +1,3107 @@ +#include "ext_math.h" +#include "game/armem.h" +#include "game/audio.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "REL/mpexDll.h" + +typedef void (*MpexDllUnkFunc2)(omObjData *, ...); + +typedef struct MpexDllUnkStruct4 { + /* 0x00 */ omObjData *unk_00; + /* 0x04 */ MpexDllUnkFunc2 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ char pad_18[0x10]; /* maybe part of unk_14[5]? */ + /* 0x28 */ s32 unk_28; + /* 0x2C */ s32 unk_2C; + /* 0x30 */ s32 unk_30; + /* 0x34 */ s32 unk_34; + /* 0x38 */ char pad_38[0x10]; /* maybe part of unk_34[5]? */ + /* 0x48 */ s32 unk_48; + /* 0x4C */ s32 unk_4C; + /* 0x50 */ s32 unk_50; + /* 0x54 */ s32 unk_54; + /* 0x58 */ s32 unk_58; + /* 0x5C */ s32 unk_5C; +} MpexDllUnkStruct4; /* size = 0x60 */ + +void fn_1_1490C(void); +void fn_1_14B28(void); +void fn_1_14E54(void); +void fn_1_14EF0(void); +void fn_1_151C8(void); +void fn_1_154A4(void); +void fn_1_15774(void); +void fn_1_157C4(void); +void fn_1_15D48(void); +void fn_1_16320(void); +void fn_1_16600(s32 arg0); +void fn_1_16874(s32); +void fn_1_168F0(s32 arg0, s32 arg1); +void fn_1_16D3C(s32 arg0); +void fn_1_17170(s32); +void fn_1_17374(void); +void fn_1_17B04(omObjData *arg0, MpexDllUnkStruct4 *arg1); +void fn_1_18610(MpexDllUnkStruct4 *arg0); +void fn_1_18D30(MpexDllUnkStruct4 *arg0); +void fn_1_18DCC(omObjData *arg0, MpexDllUnkStruct4 *arg1); +s32 fn_1_19A98(MpexDllUnkStruct4 *arg0); +void fn_1_1A3BC(void); +void fn_1_1A5A4(s32 arg0); +void fn_1_1AEFC(s32); +void fn_1_1AF78(s32 arg0); +void fn_1_1B0DC(s32); +void fn_1_1B294(void); +void fn_1_1B338(void); +s32 fn_1_1B42C(s32 arg0); +s32 fn_1_1B4AC(s32 arg0); +float fn_1_1B52C(float, float, float, float); // seems implicit in main.c +float fn_1_1B554(float, float, float); // seems implicit in main.c +float fn_1_1B574(float, float, float, float); // seems implicit in main.c +float fn_1_1B64C(float, float, float, float); // seems implcit in main.c +void fn_1_1B834(void); +void fn_1_1B9F4(void); +void fn_1_1BA78(u32 arg0, s32 arg1, s32 arg2); +void fn_1_1BB4C(u32 arg0, s32 arg1); +void fn_1_1BF1C(u32 arg0); +void fn_1_1C120(void); +void fn_1_1C174(void); +void fn_1_1C478(void); +void fn_1_1C77C(void); +void fn_1_1CABC(s32 arg0); + +u8 lbl_1_bss_6AC; +s32 lbl_1_bss_63C[0x1C]; +MpexDllUnkStruct4 lbl_1_bss_5DC; +MpexDllUnkStruct4 lbl_1_bss_45C[4]; +s32 lbl_1_bss_448[5]; +s32 lbl_1_bss_444; +Process *lbl_1_bss_440; + +void fn_1_1264C(Process *arg0) +{ + s32 var_r31; + + lbl_1_bss_440 = arg0; + fn_1_1490C(); + fn_1_16320(); + fn_1_1A3BC(); + HuPrcChildCreate(fn_1_1B294, 0x3E8, 0x2000, 0, lbl_1_bss_440); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuPrcChildCreate(fn_1_1B338, 0x3E8, 0x2000, 0, lbl_1_bss_440); + } +} + +s32 fn_1_126EC(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r29 = -1; + fn_1_14EF0(); + fn_1_1B834(); + fn_1_1BA78(0x1A0005, -1, -1); + fn_1_1B7D0(1); + fn_1_1BF1C(0x330091); + lbl_1_bss_5DC.unk_04 = (MpexDllUnkFunc2)fn_1_157C4; + var_r29 = -1; + while (TRUE) { + fn_1_1B7D0(1); + var_r30 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_14 == 0) { + var_r30++; + } + } + if (var_r29 != var_r30) { + var_r29 = var_r30; + fn_1_1BA78(var_r30 + 0x1A001B, -1, 1); + } + if (lbl_1_bss_5DC.unk_28 != 0) { + continue; + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2); + var_r28 = 1; + break; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r28 = 0; + break; + } + } + fn_1_15774(); + lbl_1_bss_5DC.unk_04 = NULL; + fn_1_1C120(); + if (var_r28 == 1) { + var_r27 = 0; + var_r26 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + var_r27++; + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r26 < var_r27) { + if (HuPadStatGet(var_r31) != -1) { + lbl_1_bss_45C[var_r31].unk_50 = 0; + var_r26++; + } + else { + lbl_1_bss_45C[var_r31].unk_50 = 1; + } + } + else { + lbl_1_bss_45C[var_r31].unk_50 = 1; + } + } + } + fn_1_1B9F4(); + fn_1_154A4(); + return var_r28; +} + +s32 fn_1_12910(s32 arg0, s32 arg1) +{ + s32 sp10; + s32 spC; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r27; + + sp10 = 0; + spC = 0; + var_r30 = 0; + if (arg1 == 1) { + var_r30 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + lbl_1_bss_45C[var_r31].unk_50 = 1; + } + } + else { + var_r30 = 4; + } + fn_1_17374(); + if (arg0 == 0) { + fn_1_16D3C(0); + } + fn_1_1B834(); + fn_1_1B7D0(1); + if (arg1 == 1) { + fn_1_1BA78(0x1E005E, -1, -1); + } + else { + fn_1_1BA78(0x1A0009, -1, -1); + } + fn_1_1BF1C(0x330092); + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + lbl_1_bss_45C[var_r31].unk_04 = (MpexDllUnkFunc2)fn_1_17B04; + } + } + while (TRUE) { + fn_1_1B7D0(1); + if ((lbl_1_bss_45C->unk_08 == 0) && ((*HuPadBtnDown & 0x200) != 0)) { + HuAudFXPlay(3); + if (lbl_1_bss_5DC.unk_10 == 1) { + lbl_1_bss_5DC.unk_10 = 0; + continue; + } + var_r27 = 0; + break; + } + else { + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 == 0 && lbl_1_bss_45C[var_r31].unk_08 != 1) { + break; + } + } + if (var_r31 == var_r30) { + var_r27 = 2; + break; + } + } + } + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + lbl_1_bss_45C[var_r31].unk_04 = NULL; + } + fn_1_1C120(); + fn_1_1B9F4(); + if (var_r27 == 0) { + fn_1_17170(0); + return 0; + } + var_r29 = 0; + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 != 0) { + lbl_1_bss_45C[var_r31].unk_5C = 0; + var_r29++; + } + } + if ((var_r29 == 0) || ((arg1 == 2) && (var_r29 == 2))) { + fn_1_17170(0); + return 2; + } + if (arg1 == 2) { + lbl_1_bss_45C[1].unk_4C = 0; + } + return 1; +} + +void fn_1_12BEC(s32 arg0) +{ + fn_1_12910(arg0, 4); +} + +s32 fn_1_12C18(s32 arg0, s32 arg1) +{ + s32 spC; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + var_r30 = -1; + var_r27 = -1; + var_r26 = -1; + var_r24 = -1; + spC = 0; + if (arg0 != 0) { + if (arg1 == 2) { + fn_1_168F0(0, 2); + } + else { + fn_1_168F0(0, 1); + } + } + fn_1_1B834(); + while (TRUE) { + fn_1_1B7D0(1); + var_r25 = 0; + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + if ((lbl_1_bss_45C[var_r31].unk_50 != 0) && (lbl_1_bss_45C[var_r31].unk_08 == 0)) { + var_r25++; + } + } + if (var_r26 == -1) { + fn_1_1BB4C(var_r25 + 0x1A0023, 1); + fn_1_1BA78(0x1A0028, -1, var_r26); + } + else { + fn_1_1BB4C(var_r25 + 0x1A0023, 1); + fn_1_1BA78(0x1A0028, -1, var_r26); + } + var_r26 = 1; + fn_1_1BF1C(0x330092); + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + if ((lbl_1_bss_45C[var_r31].unk_50 != 0) && (lbl_1_bss_45C[var_r31].unk_08 == 0)) { + var_r30 = var_r31; + lbl_1_bss_45C[var_r31].unk_0C = var_r27; + fn_1_18610(&lbl_1_bss_45C[var_r31]); + lbl_1_bss_45C[var_r31].unk_04 = (MpexDllUnkFunc2)fn_1_18DCC; + break; + } + } + while (TRUE) { + fn_1_1B7D0(1); + if (((HuPadBtnDown[lbl_1_bss_45C->unk_58] & 0x200) != 0) && (lbl_1_bss_45C[var_r30].unk_08 == 0) && (lbl_1_bss_5DC.unk_30 == 0)) { + HuAudFXPlay(3); + if (var_r27 == -1) { + var_r29 = 0; + } + else { + var_r29 = 1; + } + break; + } + else if (lbl_1_bss_45C[var_r30].unk_08 == 1) { + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_08 == 0) { + lbl_1_bss_45C[var_r31].unk_5C = 0; + } + } + lbl_1_bss_45C[var_r30].unk_04 = NULL; + fn_1_1BA78(0x1A0022, -1, 1); + fn_1_1B7D0(1); + fn_1_1BF1C(0x330093); + var_r29 = fn_1_19A98(&lbl_1_bss_45C[var_r30]); + if (var_r29 == 1) { + HuAudFXPlay(2); + lbl_1_bss_45C[var_r30].unk_10 = 1; + var_r29 = 4; + var_r27 = var_r30; + } + else { + HuAudFXPlay(3); + lbl_1_bss_45C[var_r30].unk_10 = 0; + var_r29 = 4; + lbl_1_bss_45C[var_r30].unk_08 = 0; + fn_1_18D30(&lbl_1_bss_45C[var_r30]); + fn_1_18610(&lbl_1_bss_45C[var_r30]); + } + break; + } + } + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + lbl_1_bss_45C[var_r31].unk_04 = NULL; + } + for (var_r31 = 0; var_r31 < arg1; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_08 == 0) { + break; + } + } + if (var_r31 == arg1) { + var_r29 = 3; + break; + } + else { + if (var_r29 == 1) { + fn_1_18610(&lbl_1_bss_45C[var_r30]); + fn_1_18D30(&lbl_1_bss_45C[var_r30]); + fn_1_18610(&lbl_1_bss_45C[lbl_1_bss_45C[var_r30].unk_0C]); + var_r27 = lbl_1_bss_45C[lbl_1_bss_45C[var_r30].unk_0C].unk_0C; + lbl_1_bss_45C[lbl_1_bss_45C[var_r30].unk_0C].unk_08 = 0; + } + else if (var_r29 != 4) { + if (var_r29 == 0) { + fn_1_18D30(&lbl_1_bss_45C[var_r30]); + } + break; + } + } + var_r24 = -1; + } + fn_1_1C120(); + fn_1_1B9F4(); + if (var_r29 != 0) { + fn_1_17170(0); + } + return var_r29; +} + +void fn_1_13130(s32 arg0) +{ + fn_1_12C18(arg0, 4); +} + +void fn_1_1315C(void) +{ + fn_1_12910(0, 1); +} + +s32 fn_1_13184(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r26 = -1; + fn_1_151C8(); + fn_1_1B834(); + fn_1_1BA78(0x1A0005, -1, -1); + fn_1_1B7D0(1); + fn_1_1BF1C(0x330091); + lbl_1_bss_5DC.unk_04 = (MpexDllUnkFunc2)fn_1_15D48; + + while (TRUE) { + fn_1_1B7D0(1); + var_r30 = 0; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_14 == 0) { + var_r30++; + } + } + if (var_r26 != var_r30) { + var_r26 = var_r30; + fn_1_1BA78(var_r30 + 0x330093, -1, 1); + } + if (lbl_1_bss_5DC.unk_28 != 0) { + continue; + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2); + var_r28 = 1; + break; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r28 = 0; + break; + } + } + fn_1_15774(); + lbl_1_bss_5DC.unk_04 = NULL; + fn_1_1C120(); + if (var_r28 == 1) { + var_r29 = 0; + var_r27 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + var_r29++; + } + } + if (var_r29 >= 2) { + var_r29 = 2; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r27 < var_r29) { + if (HuPadStatGet(var_r31) != -1) { + lbl_1_bss_45C[var_r31].unk_50 = 0; + lbl_1_bss_45C[var_r31].unk_4C = 0; + var_r27++; + } + else { + lbl_1_bss_45C[var_r31].unk_50 = 1; + lbl_1_bss_45C[var_r31].unk_4C = 1; + } + } + else { + lbl_1_bss_45C[var_r31].unk_50 = 1; + lbl_1_bss_45C[var_r31].unk_4C = 1; + } + } + } + fn_1_1B9F4(); + fn_1_154A4(); + return var_r28; +} + +void fn_1_133F8(s32 arg0) +{ + fn_1_12910(arg0, 2); +} + +void fn_1_13424(s32 arg0) +{ + fn_1_12C18(arg0, 2); +} + +void fn_1_13450(void) +{ + fn_1_126EC(0); +} + +s32 fn_1_13474(s32 arg0) +{ + s32 spC[2]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + spC[1] = 0; + spC[0] = 0; + var_r30 = 4; + var_r28 = 4; + if (var_r28 == 1) { + var_r30 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + lbl_1_bss_45C[var_r31].unk_50 = 1; + } + } + else { + var_r30 = 4; + } + fn_1_17374(); + if (arg0 == 0) { + fn_1_16D3C(3); + } + fn_1_1B834(); + fn_1_1B7D0(1); + fn_1_1BA78(0x1A0009, -1, -1); + fn_1_1BF1C(0x330092); + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + lbl_1_bss_45C[var_r31].unk_04 = (MpexDllUnkFunc2)fn_1_17B04; + } + } + while (TRUE) { + fn_1_1B7D0(1); + if ((lbl_1_bss_45C->unk_08 == 0) && (HuPadBtnDown[0] & PAD_BUTTON_B)) { + HuAudFXPlay(3); + if (lbl_1_bss_5DC.unk_10 == 1) { + lbl_1_bss_5DC.unk_10 = 0; + continue; + } + var_r27 = 0; + break; + } + else { + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 == 0 && lbl_1_bss_45C[var_r31].unk_08 != 1) { + break; + } + } + if (var_r31 == var_r30) { + var_r27 = 2; + break; + } + } + } + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + lbl_1_bss_45C[var_r31].unk_04 = NULL; + } + fn_1_1C120(); + fn_1_1B9F4(); + if (var_r27 == 0) { + fn_1_17170(0); + return 0; + } + var_r29 = 0; + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 != 0) { + lbl_1_bss_45C[var_r31].unk_5C = 1; + var_r29++; + } + } + if ((var_r29 == 0) || ((var_r28 == 2) && (var_r29 == 2))) { + fn_1_17170(3); + return 2; + } + if (var_r28 == 2) { + lbl_1_bss_45C[1].unk_4C = 0; + } + return 1; +} + +s32 fn_1_13730(s32 arg0) +{ + s32 spC; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + var_r30 = -1; + var_r27 = -1; + var_r26 = -1; + var_r28 = 4; + var_r24 = -1; + spC = 0; + if (arg0 != 0) { + fn_1_168F0(3, 3); + } + fn_1_1B834(); + while (TRUE) { + fn_1_1B7D0(1); + var_r25 = 0; + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + if ((lbl_1_bss_45C[var_r31].unk_50 != 0) && (lbl_1_bss_45C[var_r31].unk_08 == 0)) { + var_r25++; + } + } + if (var_r26 == -1) { + fn_1_1BB4C(var_r25 + 0x1A0023, 1); + fn_1_1BA78(0x1A0028, -1, var_r26); + } + else { + fn_1_1BB4C(var_r25 + 0x1A0023, 1); + fn_1_1BA78(0x1A0028, -1, var_r26); + } + var_r26 = 1; + fn_1_1BF1C(0x330092); + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + if ((lbl_1_bss_45C[var_r31].unk_50 != 0) && (lbl_1_bss_45C[var_r31].unk_08 == 0)) { + var_r30 = var_r31; + lbl_1_bss_45C[var_r31].unk_0C = var_r27; + fn_1_18610(&lbl_1_bss_45C[var_r31]); + lbl_1_bss_45C[var_r31].unk_04 = (MpexDllUnkFunc2)fn_1_18DCC; + break; + } + } + while (TRUE) { + fn_1_1B7D0(1); + if (((HuPadBtnDown[lbl_1_bss_45C->unk_58] & PAD_BUTTON_B) != 0) && (lbl_1_bss_45C[var_r30].unk_08 == 0) && (lbl_1_bss_5DC.unk_30 == 0)) { + HuAudFXPlay(3); + if (var_r27 == -1) { + var_r29 = 0; + } + else { + var_r29 = 1; + } + break; + } + else if (lbl_1_bss_45C[var_r30].unk_08 == 1) { + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_08 == 0) { + lbl_1_bss_45C[var_r31].unk_5C = 1; + } + } + lbl_1_bss_45C[var_r30].unk_04 = NULL; + fn_1_1BA78(0x1A0022, -1, 1); + fn_1_1B7D0(1); + fn_1_1BF1C(0x330093); + var_r29 = fn_1_19A98(&lbl_1_bss_45C[var_r30]); + if (var_r29 == 1) { + HuAudFXPlay(2); + lbl_1_bss_45C[var_r30].unk_10 = 1; + var_r29 = 4; + var_r27 = var_r30; + } + else { + HuAudFXPlay(3); + lbl_1_bss_45C[var_r30].unk_10 = 0; + var_r29 = 4; + lbl_1_bss_45C[var_r30].unk_08 = 0; + fn_1_18D30(&lbl_1_bss_45C[var_r30]); + fn_1_18610(&lbl_1_bss_45C[var_r30]); + } + break; + } + } + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + lbl_1_bss_45C[var_r31].unk_04 = NULL; + } + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_08 == 0) { + break; + } + } + if (var_r31 == var_r28) { + var_r29 = 3; + break; + } + else { + if (var_r29 == 1) { + fn_1_18610(&lbl_1_bss_45C[var_r30]); + fn_1_18D30(&lbl_1_bss_45C[var_r30]); + fn_1_18610(&lbl_1_bss_45C[lbl_1_bss_45C[var_r30].unk_0C]); + var_r27 = lbl_1_bss_45C[lbl_1_bss_45C[var_r30].unk_0C].unk_0C; + lbl_1_bss_45C[lbl_1_bss_45C[var_r30].unk_0C].unk_08 = 0; + } + else if (var_r29 != 4) { + if (var_r29 == 0) { + fn_1_18D30(&lbl_1_bss_45C[var_r30]); + } + break; + } + var_r24 = -1; + } + } + fn_1_1C120(); + fn_1_1B9F4(); + if (var_r29 != 0) { + fn_1_17170(3); + } + return var_r29; +} + +void fn_1_13C30(s32 arg0) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GWPlayer[var_r31].team = GWPlayerCfg[var_r31].group = lbl_1_bss_45C[var_r31].unk_4C; + GWPlayer[var_r31].com = GWPlayerCfg[var_r31].iscom = lbl_1_bss_45C[var_r31].unk_50; + GWPlayer[var_r31].diff = GWPlayerCfg[var_r31].diff = lbl_1_bss_45C[var_r31].unk_54; + if (lbl_1_bss_444 != 0) { + if (lbl_1_bss_45C[var_r31].unk_5C <= 5) { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_45C[var_r31].unk_5C - 1; + } + else if (lbl_1_bss_45C[var_r31].unk_5C <= 0xB) { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_45C[var_r31].unk_5C - 3; + } + else { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = fn_1_1B4AC(lbl_1_bss_45C[var_r31].unk_5C - 4); + } + } + else if (arg0 == 1) { + if (var_r31 != 0) { + lbl_1_bss_45C[var_r31].unk_5C = lbl_1_bss_45C[var_r31 - 1].unk_5C + 1; + if (lbl_1_bss_45C[var_r31].unk_5C >= 8) { + lbl_1_bss_45C[var_r31].unk_5C = 0; + } + } + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_45C[var_r31].unk_5C; + } + else { + GWPlayer[var_r31].character = GWPlayerCfg[var_r31].character = lbl_1_bss_45C[var_r31].unk_5C; + } + GWPlayer[var_r31].port = GWPlayerCfg[var_r31].pad_idx = lbl_1_bss_45C[var_r31].unk_58; + } + OSReport("\n\n#################### SET PLAYERDATA ####################\n"); + OSReport("ID) GRP:COM:DIF:CHR:PAD\n"); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + OSReport("%2d) %3d:%3d:%3d:%3d:%3d\n", var_r31, GWPlayerCfg[var_r31].group, GWPlayerCfg[var_r31].iscom, GWPlayerCfg[var_r31].diff, + GWPlayerCfg[var_r31].character, GWPlayerCfg[var_r31].pad_idx); + } + OSReport("########################################################\n"); +} + +s32 fn_1_140B0(s32 arg0, s32 arg1) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + s32 var_r18; + + var_r30 = 0; + var_r27 = 0; + var_r26 = 0; + var_r29 = arg0; + if (arg0 == 3) { + lbl_1_bss_444 = 1; + } + else { + lbl_1_bss_444 = 0; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_45C[var_r31].unk_48 = var_r31; + lbl_1_bss_45C[var_r31].unk_4C = 0; + lbl_1_bss_45C[var_r31].unk_50 = 0; + lbl_1_bss_45C[var_r31].unk_54 = 0; + if (lbl_1_bss_444 != 0) { + lbl_1_bss_45C[var_r31].unk_5C = var_r31 + 1; + } + else { + lbl_1_bss_45C[var_r31].unk_5C = var_r31; + } + lbl_1_bss_45C[var_r31].unk_58 = var_r31; + } + if (arg1 == 1) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_45C[var_r31].unk_48 = var_r31; + lbl_1_bss_45C[var_r31].unk_4C = GWPlayerCfg[var_r31].group; + lbl_1_bss_45C[var_r31].unk_50 = GWPlayerCfg[var_r31].iscom; + lbl_1_bss_45C[var_r31].unk_54 = GWPlayerCfg[var_r31].diff; + lbl_1_bss_45C[var_r31].unk_5C = GWPlayerCfg[var_r31].character; + lbl_1_bss_45C[var_r31].unk_58 = GWPlayerCfg[var_r31].pad_idx; + lbl_1_bss_45C[var_r31].unk_08 = lbl_1_bss_45C[var_r31].unk_0C = lbl_1_bss_45C[var_r31].unk_10 = lbl_1_bss_45C[var_r31].unk_14 = 0; + lbl_1_bss_45C[var_r31].unk_28 = lbl_1_bss_45C[var_r31].unk_2C = lbl_1_bss_45C[var_r31].unk_30 = lbl_1_bss_45C[var_r31].unk_34 = 0; + + switch (arg0) { + case 0: + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + lbl_1_bss_45C[var_r31].unk_08 = 1; + } + else { + var_r27 = 1; + } + break; + case 2: + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + lbl_1_bss_45C[var_r31].unk_08 = 1; + var_r26++; + } + else { + var_r27 = 1; + } + break; + case 3: + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + lbl_1_bss_45C[var_r31].unk_08 = 1; + var_r26++; + } + else { + var_r27 = 1; + } + if (lbl_1_bss_45C[var_r31].unk_5C <= 3) { + lbl_1_bss_45C[var_r31].unk_5C += 1; + } + else if (lbl_1_bss_45C[var_r31].unk_5C <= 7) { + lbl_1_bss_45C[var_r31].unk_5C += 3; + } + else { + lbl_1_bss_45C[var_r31].unk_5C = fn_1_1B42C(lbl_1_bss_45C[var_r31].unk_5C) + 4; + } + break; + } + } + switch (arg0) { + case 0: + if (var_r27 == 1) { + var_r29 = 0x66; + var_r30 = 1; + } + else { + var_r29 = 0x65; + var_r30 = 0; + } + break; + case 1: + var_r29 = 0xC8; + break; + case 2: + if ((var_r27 == 1) && (var_r26 == 1)) { + var_r29 = 0x12E; + var_r30 = 1; + } + else { + var_r29 = 0x12D; + var_r30 = 0; + } + break; + case 3: + if (var_r27 == 1) { + var_r29 = 0x192; + var_r30 = 1; + } + else { + var_r29 = 0x191; + var_r30 = 0; + } + break; + } + } + while (TRUE) { + fn_1_1B7D0(1); + if (var_r28 == 0x3E7) { + break; + } + switch (var_r29) { + case 0x0: + var_r29 = 0x64; + break; + case 0x1: + var_r29 = 0xC8; + break; + case 0x2: + var_r29 = 0x12C; + break; + case 0x3: + var_r29 = 0x190; + break; + case 0x64: + var_r28 = fn_1_126EC(var_r30); + if (var_r28 != 0) { + var_r29 = 0x65; + var_r30 = 0; + } + else { + var_r29 = 0x385; + var_r30 = 1; + } + break; + case 0x65: + var_r23 = fn_1_12910(var_r30, 4); + var_r28 = var_r23; + if (var_r28 == 1) { + var_r29 = 0x66; + var_r30 = 0; + } + else if (var_r28 == 2) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x64; + var_r30 = 1; + } + break; + case 0x66: + var_r22 = fn_1_12C18(var_r30, 4); + var_r28 = var_r22; + if (var_r28 != 0) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x65; + var_r30 = 1; + } + break; + case 0xC8: + var_r21 = fn_1_12910(0, 1); + var_r28 = var_r21; + if (var_r28 != 0) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x385; + var_r30 = 1; + } + break; + case 0x12C: + var_r28 = fn_1_13184(); + if (var_r28 != 0) { + var_r29 = 0x12D; + var_r30 = 0; + } + else { + var_r29 = 0x385; + var_r30 = 1; + } + break; + case 0x12D: + var_r20 = fn_1_12910(var_r30, 2); + var_r28 = var_r20; + if (var_r28 == 1) { + var_r29 = 0x12E; + var_r30 = 0; + } + else if (var_r28 == 2) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x12C; + var_r30 = 1; + } + break; + case 0x12E: + var_r19 = fn_1_12C18(var_r30, 2); + var_r28 = var_r19; + if (var_r28 != 0) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x12D; + var_r30 = 1; + } + break; + case 0x190: + var_r18 = fn_1_126EC(0); + var_r28 = var_r18; + if (var_r28 != 0) { + var_r29 = 0x191; + var_r30 = 0; + } + else { + var_r29 = 0x385; + var_r30 = 1; + } + break; + case 0x191: + var_r28 = fn_1_13474(var_r30); + if (var_r28 == 1) { + var_r29 = 0x192; + var_r30 = 0; + } + else if (var_r28 == 2) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x190; + var_r30 = 1; + } + break; + case 0x192: + var_r28 = fn_1_13730(var_r30); + if (var_r28 != 0) { + var_r29 = 0x384; + var_r30 = 0; + } + else { + var_r29 = 0x191; + var_r30 = 1; + } + break; + case 0x384: + fn_1_13C30(arg0); + var_r24 = 1; + var_r28 = 0x3E7; + break; + case 0x385: + var_r24 = 0; + var_r28 = 0x3E7; + break; + } + } + return var_r24; +} + +void fn_1_148BC(s32 arg0) +{ + fn_1_1AF78(arg0); +} + +void fn_1_148E4(s32 arg0) +{ + fn_1_1B0DC(arg0); +} + +s32 lbl_1_data_5C4[4][2] = { { -0x69, 0 }, { -0x23, 0 }, { 0x23, 0 }, { 0x69, 0 } }; +s32 lbl_1_data_5E4[8][2] = { + { -0x7B, -0x34 }, + { -0x29, -0x34 }, + { 0x29, -0x34 }, + { 0x7B, -0x34 }, + { -0x7B, 0x34 }, + { -0x29, 0x34 }, + { 0x29, 0x34 }, + { 0x7B, 0x34 }, +}; +s32 lbl_1_data_624[0xE][2] = { + { -0x7B, -0x66 }, + { -0x29, -0x66 }, + { 0x29, -0x66 }, + { 0x7B, -0x66 }, + { -0x7B, 0 }, + { -0x29, 0 }, + { 0x29, 0 }, + { 0x7B, 0 }, + { -0xCD, 0x66 }, + { -0x7B, 0x66 }, + { -0x29, 0x66 }, + { 0x29, 0x66 }, + { 0x7B, 0x66 }, + { 0xCD, 0x66 }, +}; +s32 lbl_1_data_694[0x12][2] = { + { 0, 0 }, + { -0x7B, -0x66 }, + { -0x29, -0x66 }, + { 0x29, -0x66 }, + { 0x7B, -0x66 }, + { 0, 0 }, + { 0, 0 }, + { -0x7B, 0 }, + { -0x29, 0 }, + { 0x29, 0 }, + { 0x7B, 0 }, + { 0, 0 }, + { -0xCD, 0x66 }, + { -0x7B, 0x66 }, + { -0x29, 0x66 }, + { 0x29, 0x66 }, + { 0x7B, 0x66 }, + { 0xCD, 0x66 }, +}; +s32 lbl_1_data_724[4][2] = { { -0x45, -8 }, { -0x17, -8 }, { 0x17, -8 }, { 0x45, -8 } }; +s32 lbl_1_data_744[2] = { 0x00, 0xFFFFFFF8 }; +s32 lbl_1_data_74C[2][2] = { { -0x17, -8 }, { 0x17, -8 } }; +s32 lbl_1_data_75C[4][2] = { { -0x59, -8 }, { -0x2B, -8 }, { 0x2B, -8 }, { 0x59, -8 } }; +s32 lbl_1_data_77C = -1; +s32 lbl_1_data_780[2] = {-1, 0}; + +void fn_1_1490C(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + + var_r30 = HuSprGrpCreate(0xB); + *lbl_1_bss_63C = var_r30; + var_r29 = HuSprCreate(HuSprAnimReadFile(0x640046), 0xBB8, 0); + HuSprGrpMemberSet(var_r30, 0, var_r29); + HuSprPosSet(var_r30, 0, 0.0f, 0.0f); + var_r28 = HuSprAnimReadFile(0x640047); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r29 = HuSprCreate(var_r28, 0x3E8, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 1, var_r29); + HuSprBankSet(var_r30, var_r31 + 1, var_r31); + } + var_r28 = HuSprAnimReadFile(0x640048); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = HuSprCreate(var_r28, 0x76C, 0); + HuSprGrpMemberSet(var_r30, var_r31 + 3, var_r29); + HuSprPosSet(var_r30, var_r31 + 3, lbl_1_data_5C4[var_r31 % 4][0], lbl_1_data_5C4[0][1]); + HuSprBankSet(var_r30, var_r31 + 3, 0); + } + fn_1_14B28(); + fn_1_14E54(); +} + +void fn_1_14B28(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = *lbl_1_bss_63C; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 3, 4); + HuSprPosSet(var_r30, var_r31 + 3, lbl_1_data_5C4[var_r31 % 4][0], lbl_1_data_5C4[0][1]); + HuSprBankSet(var_r30, var_r31 + 3, 0); + } + HuSprGrpPosSet(var_r30, 288.0f, -390.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_45C[var_r31].unk_14 = lbl_1_bss_45C[var_r31].unk_50 = 0; + } +} + +void fn_1_14CBC(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = *lbl_1_bss_63C; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 3, 4); + HuSprPosSet(var_r30, var_r31 + 3, lbl_1_data_5C4[var_r31 % 4 + 1][0], lbl_1_data_5C4[0][1]); + HuSprBankSet(var_r30, var_r31 + 3, 0); + } + HuSprGrpPosSet(var_r30, 288.0f, -390.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_45C[var_r31].unk_14 = lbl_1_bss_45C[var_r31].unk_50 = 0; + } +} + +void fn_1_14E54(void) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = *lbl_1_bss_63C; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprGrpPosSet(var_r30, 288.0f, 110.0f); + HuSprGrpScaleSet(var_r30, 1.0f, 1.0f); +} + +void fn_1_14EF0(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = *lbl_1_bss_63C; + var_r29 = *lbl_1_bss_63C; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r29, var_r31, 4); + } + HuSprAttrReset(var_r29, 0, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r29, var_r31 + 3, 4); + HuSprPosSet(var_r29, var_r31 + 3, lbl_1_data_5C4[var_r31 % 4][0], lbl_1_data_5C4[0][1]); + HuSprBankSet(var_r29, var_r31 + 3, 0); + } + HuSprGrpPosSet(var_r29, 288.0f, -390.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_45C[var_r31].unk_14 = lbl_1_bss_45C[var_r31].unk_50 = 0; + } + for (var_r30 = 0; var_r30 <= 0x3C; var_r30++) { + fn_1_1B7D0(1); + if (var_r30 <= 0x32) { + var_f31 = fn_1_1B64C(-500.0f, 10.0f, var_r30, 50.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, 0.0f, var_r30 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f + var_f31); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f); + fn_1_1B7D0(0xA); +} + +void fn_1_151C8(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = *lbl_1_bss_63C; + var_r29 = *lbl_1_bss_63C; + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + HuSprAttrSet(var_r29, var_r31, 4); + } + HuSprAttrReset(var_r29, 0, 4); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrReset(var_r29, var_r31 + 3, 4); + HuSprPosSet(var_r29, var_r31 + 3, lbl_1_data_5C4[var_r31 % 4 + 1][0], lbl_1_data_5C4[0][1]); + HuSprBankSet(var_r29, var_r31 + 3, 0); + } + HuSprGrpPosSet(var_r29, 288.0f, -390.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_45C[var_r31].unk_14 = lbl_1_bss_45C[var_r31].unk_50 = 0; + } + for (var_r30 = 0; var_r30 <= 0x3C; var_r30++) { + fn_1_1B7D0(1); + if (var_r30 <= 0x32) { + var_f31 = fn_1_1B64C(-500.0f, 10.0f, var_r30, 50.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, 0.0f, var_r30 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f + var_f31); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f); + fn_1_1B7D0(0xA); +} + +void fn_1_154A4(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28 = *lbl_1_bss_63C; + + fn_1_1B7D0(0xA); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 0xA) { + var_f31 = fn_1_1B64C(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(var_r28, 288.0f, 110.0f + var_f31); + } + HuSprGrpPosSet(var_r28, 288.0f, -390.0f); + var_r29 = *lbl_1_bss_63C; + for (var_r30 = 0; var_r30 < 0xB; var_r30++) { + HuSprAttrSet(var_r29, var_r30, 4); + } + HuSprGrpPosSet(var_r29, 288.0f, 110.0f); + HuSprGrpScaleSet(var_r29, 1.0f, 1.0f); +} + +void fn_1_15684(s32 arg0) +{ + s32 var_r31; + + var_r31 = *lbl_1_bss_63C; + HuSprAttrReset(var_r31, 1, 4); + HuSprAttrReset(var_r31, 2, 4); + HuSprPosSet(var_r31, 1, -155.0f, 0.0f); + HuSprPosSet(var_r31, 2, 155.0f, 0.0f); + if (arg0 == 2) { + HuSprPosSet(var_r31, 1, -80.0f, 0.0f); + HuSprPosSet(var_r31, 2, 80.0f, 0.0f); + } +} + +void fn_1_15774(void) +{ + s32 var_r31; + + var_r31 = *lbl_1_bss_63C; + HuSprAttrSet(var_r31, 1, 4); + HuSprAttrSet(var_r31, 2, 4); +} + +void fn_1_157C4(void) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + var_r27 = lbl_1_bss_63C[0]; + var_r29 = var_r28 = var_r26 = var_r24 = 0; + lbl_1_bss_5DC.unk_28 = 0; + var_r29 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + var_r29++; + } + } + var_r28 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + if (HuPadStatGet(var_r31) != -1) { + var_r28++; + } + } + if (var_r28 >= 2) { + var_r25 = lbl_1_bss_63C[0]; + HuSprAttrReset(var_r25, 1, 4); + HuSprAttrReset(var_r25, 2, 4); + HuSprPosSet(var_r25, 1, -155.0f, 0.0f); + HuSprPosSet(var_r25, 2, 155.0f, 0.0f); + if (*HuPadStkX >= 5) { + var_r29++; + var_r26 = 1; + } + else if (*HuPadStkX <= -5) { + var_r29--; + var_r26 = -1; + } + } + else { + var_r23 = lbl_1_bss_63C[0]; + HuSprAttrSet(var_r23, 1, 4); + HuSprAttrSet(var_r23, 2, 4); + } + if (var_r29 < 1) { + var_r29 = var_r28; + } + else if (var_r29 > var_r28) { + if (var_r26 == 0) { + var_r29 = var_r28; + var_r24 = 1; + } + else { + var_r29 = 1; + } + } + if ((var_r26 != 0) || (var_r24 != 0)) { + lbl_1_bss_5DC.unk_28 = 1; + HuAudFXPlay(0); + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + if (var_r31 <= 5) { + var_f31 = fn_1_1B64C(0.0f, 10.0f, var_r31, 5.0f); + var_f30 = fn_1_1B64C(1.0f, 0.0f, var_r31, 5.0f); + } + else { + var_f31 = fn_1_1B64C(10.0f, 0.0f, var_r31 - 5, 5.0f); + var_f30 = fn_1_1B64C(0.0f, 1.0f, var_r31 - 5, 5.0f); + } + if (var_r26 == 1) { + HuSprPosSet(var_r27, 2, 3.0f + (155.0f + var_f31), 0.0f); + } + else if (var_r26 == -1) { + HuSprPosSet(var_r27, 1, (-155.0f - var_f31) - 3.0f, 0.0f); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if ((var_r30 < var_r29) && (lbl_1_bss_45C[var_r30].unk_50 == 1)) { + lbl_1_bss_45C[var_r30].unk_14 = 0; + HuSprScaleSet(var_r27, var_r30 + 3, var_f30, 1.0f); + if (var_r31 == 5) { + HuSprBankSet(var_r27, var_r30 + 3, 0); + } + } + else if ((var_r30 >= var_r29) && (lbl_1_bss_45C[var_r30].unk_50 == 0)) { + lbl_1_bss_45C[var_r30].unk_14 = 1; + HuSprScaleSet(var_r27, var_r30 + 3, var_f30, 1.0f); + if (var_r31 == 5) { + HuSprBankSet(var_r27, var_r30 + 3, 1); + } + } + } + fn_1_1B7D0(1); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r30 < var_r29) { + lbl_1_bss_45C[var_r30].unk_50 = 0; + } + else { + lbl_1_bss_45C[var_r30].unk_50 = 1; + } + } + } + lbl_1_bss_5DC.unk_28 = 0; +} + +void fn_1_15D48(void) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + var_r27 = lbl_1_bss_63C[0]; + var_r29 = var_r28 = var_r26 = var_r24 = 0; + lbl_1_bss_5DC.unk_28 = 0; + var_r29 = 1; + for (var_r31 = 1; var_r31 < 2; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_50 == 0) { + var_r29++; + } + } + var_r28 = 1; + for (var_r31 = 1; var_r31 < 4; var_r31++) { + if (HuPadStatGet(var_r31) != -1) { + var_r28++; + } + } + if (var_r28 > 2) { + var_r28 = 2; + } + if (var_r28 >= 2) { + var_r25 = lbl_1_bss_63C[0]; + HuSprAttrReset(var_r25, 1, 4); + HuSprAttrReset(var_r25, 2, 4); + HuSprPosSet(var_r25, 1, -155.0f, 0.0f); + HuSprPosSet(var_r25, 2, 155.0f, 0.0f); + HuSprPosSet(var_r25, 1, -80.0f, 0.0f); + HuSprPosSet(var_r25, 2, 80.0f, 0.0f); + if (*HuPadStkX >= 5) { + var_r29++; + var_r26 = 1; + } + else if (*HuPadStkX <= -5) { + var_r29--; + var_r26 = -1; + } + } + else { + var_r23 = lbl_1_bss_63C[0]; + HuSprAttrSet(var_r23, 1, 4); + HuSprAttrSet(var_r23, 2, 4); + } + if (var_r29 < 1) { + var_r29 = var_r28; + } + else if (var_r29 > var_r28) { + if (var_r26 == 0) { + var_r29 = var_r28; + var_r24 = 1; + } + else { + var_r29 = 1; + } + } + if ((var_r26 != 0) || (var_r24 != 0)) { + lbl_1_bss_5DC.unk_28 = 1; + HuAudFXPlay(0); + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + if (var_r31 <= 5) { + var_f31 = fn_1_1B64C(0.0f, 10.0f, var_r31, 5.0f); + var_f30 = fn_1_1B64C(1.0f, 0.0f, var_r31, 5.0f); + } + else { + var_f31 = fn_1_1B64C(10.0f, 0.0f, var_r31 - 5, 5.0f); + var_f30 = fn_1_1B64C(0.0f, 1.0f, var_r31 - 5, 5.0f); + } + if (var_r26 == 1) { + HuSprPosSet(var_r27, 2, 3.0f + (77.0f + var_f31), 0.0f); + } + else if (var_r26 == -1) { + HuSprPosSet(var_r27, 1, (-77.0f - var_f31) - 3.0f, 0.0f); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if ((var_r30 < var_r29) && (lbl_1_bss_45C[var_r30].unk_50 == 1)) { + lbl_1_bss_45C[var_r30].unk_14 = 0; + HuSprScaleSet(var_r27, var_r30 + 3, var_f30, 1.0f); + if (var_r31 == 5) { + HuSprBankSet(var_r27, var_r30 + 3, 0); + } + } + else if ((var_r30 >= var_r29) && (lbl_1_bss_45C[var_r30].unk_50 == 0)) { + lbl_1_bss_45C[var_r30].unk_14 = 1; + HuSprScaleSet(var_r27, var_r30 + 3, var_f30, 1.0f); + if (var_r31 == 5) { + HuSprBankSet(var_r27, var_r30 + 3, 1); + } + } + } + fn_1_1B7D0(1); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r30 < var_r29) { + lbl_1_bss_45C[var_r30].unk_50 = 0; + } + else { + lbl_1_bss_45C[var_r30].unk_50 = 1; + } + } + } + lbl_1_bss_5DC.unk_28 = 0; +} + +void fn_1_16320(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + AnimData *var_r27; + + var_r29 = HuSprGrpCreate(0x36); + lbl_1_bss_63C[1] = var_r29; + var_r30 = HuSprCreate(HuSprAnimReadFile(0x64004A), 0xBB8, 0); + HuSprGrpMemberSet(var_r29, 0, var_r30); + HuSprPosSet(var_r29, 0, 0.0f, 0.0f); + var_r28 = HuSprAnimReadFile(0x64005A); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + var_r30 = HuSprCreate(HuSprAnimReadFile(var_r31 + 0x64004C), 0x76C, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 2, var_r30); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(HuSprAnimReadFile(var_r31 + 0x64005B), 0x384, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x1E, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(var_r31 + 0x640060), 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x22, var_r30); + } + var_r28 = HuSprAnimReadFile(0x64005F); + var_r27 = HuSprAnimReadFile(0x640064); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x384, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x26, var_r30); + var_r30 = HuSprCreate(var_r27, 0x3E8, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x2A, var_r30); + } + var_r28 = HuSprAnimReadFile(0x640065); + var_r27 = HuSprAnimReadFile(0x640066); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x384, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x2E, var_r30); + var_r30 = HuSprCreate(var_r27, 0x320, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x32, var_r30); + } + fn_1_16600(0); + fn_1_16874(0); +} + +void fn_1_16600(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 < 0x36; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (arg0 != 3) { + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_5E4[var_r31][0], lbl_1_data_5E4[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + else { + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 2.0f, 0.0f); + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_624[var_r31][0], lbl_1_data_624[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + HuSprGrpPosSet(var_r30, 288.0f, -331.0f); +} + +void fn_1_16874(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 < 0x36; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprGrpPosSet(var_r30, 288.0f, -331.0f); +} + +void fn_1_168F0(s32 arg0, s32 arg1) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_63C[1]; + var_r30 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 < 0x36; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (arg0 != 3) { + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_5E4[var_r31][0], lbl_1_data_5E4[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + else { + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 2.0f, 0.0f); + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_624[var_r31][0], lbl_1_data_624[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + HuSprGrpPosSet(var_r30, 288.0f, -331.0f); + if (arg1 == 1) { + fn_1_1C174(); + } + if (arg1 == 2) { + fn_1_1C478(); + } + if (arg1 == 3) { + fn_1_1C77C(); + } + for (var_r29 = 0; var_r29 <= 0x3C; var_r29++) { + fn_1_1B7D0(1); + if (var_r29 <= 0x32) { + var_f31 = fn_1_1B64C(-500.0f, 10.0f, var_r29, 50.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, 0.0f, var_r29 - 0x32, 10.0f); + } + if (lbl_1_bss_444 != 0) { + HuSprGrpPosSet(var_r28, 288.0f, 20.0f + (169.0f + var_f31)); + } + else { + HuSprGrpPosSet(var_r28, 288.0f, 169.0f + var_f31); + } + } + if (lbl_1_bss_444 != 0) { + HuSprGrpPosSet(var_r28, 288.0f, 189.0f); + return; + } + HuSprGrpPosSet(var_r28, 288.0f, 169.0f); +} + +void fn_1_16D3C(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_63C[1]; + var_r30 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 < 0x36; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (arg0 != 3) { + HuSprAttrReset(var_r30, 0, 4); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_5E4[var_r31][0], lbl_1_data_5E4[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + else { + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 2.0f, 0.0f); + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + HuSprAttrReset(var_r30, var_r31 + 2, 4); + HuSprPosSet(var_r30, var_r31 + 2, lbl_1_data_624[var_r31][0], lbl_1_data_624[var_r31][1]); + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + HuSprGrpPosSet(var_r30, 288.0f, -331.0f); + for (var_r29 = 0; var_r29 <= 0x3C; var_r29++) { + fn_1_1B7D0(1); + if (var_r29 <= 0x32) { + var_f31 = fn_1_1B64C(-500.0f, 10.0f, var_r29, 50.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, 0.0f, var_r29 - 0x32, 10.0f); + } + if (lbl_1_bss_444 != 0) { + HuSprGrpPosSet(var_r28, 288.0f, 20.0f + (169.0f + var_f31)); + } + else { + HuSprGrpPosSet(var_r28, 288.0f, 169.0f + var_f31); + } + } + if (lbl_1_bss_444 != 0) { + HuSprGrpPosSet(var_r28, 288.0f, 189.0f); + return; + } + HuSprGrpPosSet(var_r28, 288.0f, 169.0f); +} + +void fn_1_17170(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r29 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 0xA) { + var_f31 = fn_1_1B64C(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + if (lbl_1_bss_444 != 0) { + HuSprGrpPosSet(var_r29, 288.0f, 20.0f + (169.0f + var_f31)); + } + else { + HuSprGrpPosSet(var_r29, 288.0f, 169.0f + var_f31); + } + } + HuSprGrpPosSet(var_r29, 288.0f, -331.0f); + var_r28 = lbl_1_bss_63C[1]; + for (var_r30 = 0; var_r30 < 0x36; var_r30++) { + HuSprAttrSet(var_r28, var_r30, 4); + } + HuSprGrpPosSet(var_r28, 288.0f, -331.0f); +} + +void fn_1_17374(void) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 0x1E, 0); + HuSprBankSet(var_r30, var_r31 + 0x22, 0); + HuSprBankSet(var_r30, var_r31 + 0x26, 0); + HuSprBankSet(var_r30, var_r31 + 0x2A, 0); + HuSprBankSet(var_r30, var_r31 + 0x2E, 0); + HuSprBankSet(var_r30, var_r31 + 0x32, 0); + } + if (lbl_1_bss_444 != 0) { + for (var_r31 = 0; var_r31 < 0xE; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + else { + for (var_r31 = 0; var_r31 < 8; var_r31++) { + HuSprBankSet(var_r30, var_r31 + 2, 0); + } + } + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + fn_1_1B7D0(1); + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (lbl_1_bss_444 != 0) { + var_f31 = fn_1_1B64C(lbl_1_data_694[lbl_1_bss_45C[var_r29].unk_5C][0], lbl_1_data_694[var_r29 + 1][0], var_r31, 10.0f); + var_f30 = fn_1_1B64C(lbl_1_data_694[lbl_1_bss_45C[var_r29].unk_5C][1], lbl_1_data_694[1][1], var_r31, 10.0f); + } + else { + var_f31 = fn_1_1B64C(lbl_1_data_5E4[lbl_1_bss_45C[var_r29].unk_5C % 4][0], lbl_1_data_5E4[var_r29][0], var_r31, 10.0f); + var_f30 = fn_1_1B64C(lbl_1_data_5E4[(lbl_1_bss_45C[var_r29].unk_5C / 4) * 4][1], lbl_1_data_5E4[0][1], var_r31, 10.0f); + } + HuSprPosSet(var_r30, var_r29 + 0x1E, var_f31, var_f30); + HuSprPosSet(var_r30, var_r29 + 0x22, var_f31, var_f30); + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_444 != 0) { + HuSprPosSet(var_r30, var_r31 + 0x1E, lbl_1_data_694[var_r31 + 1][0], lbl_1_data_694[var_r31 + 1][1]); + HuSprPosSet(var_r30, var_r31 + 0x22, lbl_1_data_694[var_r31 + 1][0], lbl_1_data_694[var_r31 + 1][1]); + lbl_1_bss_45C[var_r31].unk_5C = var_r31 + 1; + lbl_1_bss_45C[var_r31].unk_48 = var_r31; + lbl_1_bss_45C[var_r31].unk_08 = 0; + } + else { + HuSprPosSet(var_r30, var_r31 + 0x1E, lbl_1_data_5E4[var_r31][0], lbl_1_data_5E4[var_r31][1]); + HuSprPosSet(var_r30, var_r31 + 0x22, lbl_1_data_5E4[var_r31][0], lbl_1_data_5E4[var_r31][1]); + lbl_1_bss_45C[var_r31].unk_48 = var_r31; + lbl_1_bss_45C[var_r31].unk_5C = var_r31; + lbl_1_bss_45C[var_r31].unk_08 = 0; + } + } +} + +void fn_1_17B04(omObjData *arg0, MpexDllUnkStruct4 *arg1) +{ + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + + var_r24 = lbl_1_bss_63C[1]; + var_r27 = 0; + var_r26 = 0; + HuSprAttrReset(var_r24, arg1->unk_48 + 0x1E, 4); + HuSprAttrReset(var_r24, arg1->unk_48 + 0x22, 4); + if (lbl_1_bss_444 != 0) { + var_r30 = arg1->unk_5C % 6; + var_r23 = var_r30; + var_r29 = arg1->unk_5C / 6; + var_r22 = var_r29; + } + else { + var_r30 = arg1->unk_5C % 4; + var_r23 = var_r30; + var_r29 = arg1->unk_5C / 4; + var_r22 = var_r29; + } + if (arg1->unk_08 == 0) { + if (HuPadBtnDown[arg1->unk_48] & PAD_BUTTON_A) { + arg1->unk_08 = 1; + if (lbl_1_bss_444 != 0) { + var_r21 = 0; + if (arg1->unk_5C <= 5) { + var_r21 = arg1->unk_5C - 1; + } + else if (arg1->unk_5C <= 0xB) { + var_r21 = arg1->unk_5C - 3; + } + else { + var_r21 = arg1->unk_5C - 4; + } + fn_1_1CABC(var_r21); + HuSprBankSet(var_r24, var_r21 + 2, 1); + } + else { + fn_1_1CABC(arg1->unk_5C); + HuSprBankSet(var_r24, arg1->unk_5C + 2, 1); + } + HuSprBankSet(var_r24, arg1->unk_48 + 0x1E, 1); + HuSprBankSet(var_r24, arg1->unk_48 + 0x22, 1); + } + else if (lbl_1_bss_444 != 0) { + if (HuPadStkX[arg1->unk_48] >= 5) { + var_r30++; + var_r27 = 1; + if (var_r30 > 5) { + var_r30 = 5; + } + } + else if (HuPadStkX[arg1->unk_48] <= -5) { + var_r30--; + var_r27 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (HuPadStkY[arg1->unk_48] <= -5) { + var_r29++; + var_r26 = 1; + if (var_r29 > 2) { + var_r29 = 2; + } + } + else if (HuPadStkY[arg1->unk_48] >= 5) { + var_r29--; + var_r26 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + else { + if (HuPadStkX[arg1->unk_48] >= 5) { + var_r30++; + var_r27 = 1; + if (var_r30 > 3) { + var_r30 = 3; + } + } + else if (HuPadStkX[arg1->unk_48] <= -5) { + var_r30--; + var_r27 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (HuPadStkY[arg1->unk_48] <= -5) { + var_r29++; + var_r26 = 1; + if (var_r29 > 1) { + var_r29 = 1; + } + } + else if (HuPadStkY[arg1->unk_48] >= 5) { + var_r29--; + var_r26 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + } + else if (HuPadBtnDown[arg1->unk_48] & PAD_BUTTON_B) { + arg1->unk_08 = 0; + lbl_1_bss_5DC.unk_10 = 1; + HuAudFXPlay(3); + if (lbl_1_bss_444 != 0) { + var_r20 = 0; + if (arg1->unk_5C <= 5) { + var_r20 = arg1->unk_5C - 1; + } + else if (arg1->unk_5C <= 0xB) { + var_r20 = arg1->unk_5C - 3; + } + else { + var_r20 = arg1->unk_5C - 4; + } + HuSprBankSet(var_r24, var_r20 + 2, 0); + } + else { + HuSprBankSet(var_r24, arg1->unk_5C + 2, 0); + } + HuSprBankSet(var_r24, arg1->unk_48 + 0x1E, 0); + HuSprBankSet(var_r24, arg1->unk_48 + 0x22, 0); + } + if (lbl_1_bss_444 != 0) { + var_r25 = var_r30 + (var_r29 * 6); + } + else { + var_r25 = var_r30 + (var_r29 * 4); + } + if (arg1->unk_5C != var_r25) { + if (lbl_1_bss_444 != 0) { + while (TRUE) { + var_r25 = var_r30 + (var_r29 * 6); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if (((var_r28 != arg1->unk_48) && (lbl_1_bss_45C[var_r28].unk_50 == 0) && (var_r25 == lbl_1_bss_45C[var_r28].unk_5C)) + || (var_r25 == 0) || (var_r25 == 5) || (var_r25 == 6) || (var_r25 == 0xB)) { + if ((var_r27 == 0) || (var_r26 == 0)) { + if (((var_r30 + var_r27) > 5) || ((var_r30 + var_r27) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r27; + } + if (((var_r29 + var_r26) > 2) || ((var_r29 + var_r26) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r26; + } + } + else if (((var_r30 + var_r27) <= 5) && ((var_r30 + var_r27) >= 0)) { + var_r30 += var_r27; + } + else if (((var_r29 + var_r26) <= 2) && ((var_r29 + var_r26) >= 0)) { + var_r29 += var_r26; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + } + break; + } + } + if (var_r28 == 4) { + break; + } + } + } + else { + do { + var_r25 = var_r30 + (var_r29 * 4); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if ((var_r28 != arg1->unk_48) && (lbl_1_bss_45C[var_r28].unk_50 == 0) && (var_r25 == lbl_1_bss_45C[var_r28].unk_5C)) { + if ((var_r27 == 0) || (var_r26 == 0)) { + if (((var_r30 + var_r27) > 3) || ((var_r30 + var_r27) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r27; + } + if (((var_r29 + var_r26) > 1) || ((var_r29 + var_r26) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r26; + } + } + else if (((var_r30 + var_r27) <= 3) && ((var_r30 + var_r27) >= 0)) { + var_r30 += var_r27; + } + else if (((var_r29 + var_r26) <= 1) && ((var_r29 + var_r26) >= 0)) { + var_r29 += var_r26; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + } + break; + } + } + } while (var_r28 != 4); + } + if (lbl_1_bss_444 != 0) { + var_r25 = var_r30 + (var_r29 * 6); + } + else { + var_r25 = var_r30 + (var_r29 * 4); + } + if (arg1->unk_5C != var_r25) { + HuAudFXPlay(0); + var_r19 = arg1->unk_5C; + arg1->unk_5C = var_r25; + if (lbl_1_bss_444 != 0) { + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B64C(lbl_1_data_694[var_r19][0], lbl_1_data_694[var_r25][0], var_r28, 10.0f); + var_f30 = fn_1_1B64C(lbl_1_data_694[var_r19][1], lbl_1_data_694[var_r25][1], var_r28, 10.0f); + HuSprPosSet(var_r24, arg1->unk_48 + 0x1E, var_f31, var_f30); + HuSprPosSet(var_r24, arg1->unk_48 + 0x22, var_f31, var_f30); + } + return; + } + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B64C(*lbl_1_data_5E4[var_r23], *lbl_1_data_5E4[var_r30], var_r28, 10.0f); + var_f30 = fn_1_1B64C(lbl_1_data_5E4[var_r22 * 4][1], lbl_1_data_5E4[var_r29 * 4][1], var_r28, 10.0f); + HuSprPosSet(var_r24, arg1->unk_48 + 0x1E, var_f31, var_f30); + HuSprPosSet(var_r24, arg1->unk_48 + 0x22, var_f31, var_f30); + } + } + } +} + +void fn_1_18610(MpexDllUnkStruct4 *arg0) +{ + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r30 = lbl_1_bss_63C[1]; + do { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if ((var_r29 != arg0->unk_48) && (lbl_1_bss_45C[var_r29].unk_08 == 1) && (arg0->unk_5C == lbl_1_bss_45C[var_r29].unk_5C)) { + arg0->unk_5C += 1; + break; + } + } + } while (var_r29 != 4); + arg0->unk_54 = 0; + if (lbl_1_bss_444 != 0) { + var_r28 = 0; + if (arg0->unk_5C <= 5) { + var_r28 = arg0->unk_5C - 1; + } + else if (arg0->unk_5C <= 0xB) { + var_r28 = arg0->unk_5C - 3; + } + else { + var_r28 = arg0->unk_5C - 4; + } + HuSprBankSet(var_r30, var_r28 + 2, 0); + } + else { + HuSprBankSet(var_r30, arg0->unk_5C + 2, 0); + } + HuSprBankSet(var_r30, arg0->unk_48 + 0x26, 0); + HuSprBankSet(var_r30, arg0->unk_48 + 0x2A, 0); + HuSprBankSet(var_r30, arg0->unk_48 + 0x2E, arg0->unk_54); + HuSprBankSet(var_r30, arg0->unk_48 + 0x32, arg0->unk_54); + if (lbl_1_bss_444 != 0) { + HuSprPosSet(var_r30, arg0->unk_48 + 0x26, *lbl_1_data_694[arg0->unk_5C], lbl_1_data_694[arg0->unk_5C][1]); + HuSprPosSet(var_r30, arg0->unk_48 + 0x2A, *lbl_1_data_694[arg0->unk_5C], lbl_1_data_694[arg0->unk_5C][1]); + HuSprPosSet(var_r30, arg0->unk_48 + 0x2E, *lbl_1_data_694[arg0->unk_5C], lbl_1_data_694[arg0->unk_5C][1] + 0x23); + HuSprPosSet(var_r30, arg0->unk_48 + 0x32, *lbl_1_data_694[arg0->unk_5C], lbl_1_data_694[arg0->unk_5C][1] + 0x23); + } + else { + HuSprPosSet(var_r30, arg0->unk_48 + 0x26, *lbl_1_data_5E4[arg0->unk_5C % 4], lbl_1_data_5E4[(arg0->unk_5C / 4) * 4][1]); + HuSprPosSet(var_r30, arg0->unk_48 + 0x2A, *lbl_1_data_5E4[arg0->unk_5C % 4], lbl_1_data_5E4[(arg0->unk_5C / 4) * 4][1]); + HuSprPosSet(var_r30, arg0->unk_48 + 0x2E, *lbl_1_data_5E4[arg0->unk_5C % 4], lbl_1_data_5E4[(arg0->unk_5C / 4) * 4][1] + 0x23); + HuSprPosSet(var_r30, arg0->unk_48 + 0x32, *lbl_1_data_5E4[arg0->unk_5C % 4], lbl_1_data_5E4[(arg0->unk_5C / 4) * 4][1] + 0x23); + } + arg0->unk_10 = 0; + HuSprAttrReset(var_r30, arg0->unk_48 + 0x26, 4); + HuSprAttrReset(var_r30, arg0->unk_48 + 0x2A, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x2E, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x32, 4); +} + +void fn_1_18D30(struct MpexDllUnkStruct4 *arg0) +{ + s32 var_r30; + + var_r30 = lbl_1_bss_63C[1]; + HuSprAttrSet(var_r30, arg0->unk_48 + 0x26, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x2A, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x2E, 4); + HuSprAttrSet(var_r30, arg0->unk_48 + 0x32, 4); +} + +void fn_1_18DCC(omObjData *arg0, MpexDllUnkStruct4 *arg1) +{ + s32 sp8; + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + + var_r27 = lbl_1_bss_63C[1]; + var_r26 = 0; + var_r25 = 0; + sp8 = arg1->unk_54; + lbl_1_bss_5DC.unk_30 = 0; + if (lbl_1_bss_444 != 0) { + var_r30 = arg1->unk_5C % 6; + var_r23 = var_r30; + var_r29 = arg1->unk_5C / 6; + var_r22 = var_r29; + } + else { + var_r30 = arg1->unk_5C % 4; + var_r23 = var_r30; + var_r29 = arg1->unk_5C / 4; + var_r22 = var_r29; + } + if (arg1->unk_08 == 0) { + if (HuPadBtnDown[lbl_1_bss_45C->unk_58] & PAD_BUTTON_A) { + arg1->unk_08 = 1; + HuSprBankSet(var_r27, arg1->unk_48 + 0x26, 1); + HuSprBankSet(var_r27, arg1->unk_48 + 0x2A, 1); + if (lbl_1_bss_444 != 0) { + var_r21 = 0; + if (arg1->unk_5C <= 5) { + var_r21 = arg1->unk_5C - 1; + } + else if (arg1->unk_5C <= 0xB) { + var_r21 = arg1->unk_5C - 3; + } + else { + var_r21 = arg1->unk_5C - 4; + } + HuSprBankSet(var_r27, var_r21 + 2, 1); + fn_1_1CABC(var_r21); + } + else { + HuSprBankSet(var_r27, arg1->unk_5C + 2, 1); + fn_1_1CABC(arg1->unk_5C); + } + arg1->unk_54 = 0; + HuSprBankSet(var_r27, arg1->unk_48 + 0x2E, arg1->unk_54); + if (lbl_1_bss_444 != 0) { + HuSprPosSet(var_r27, arg1->unk_48 + 0x2E, lbl_1_data_694[arg1->unk_5C][0], lbl_1_data_694[arg1->unk_5C][1] + 0x23); + } + else { + HuSprPosSet(var_r27, arg1->unk_48 + 0x2E, lbl_1_data_5E4[arg1->unk_5C % 4][0], lbl_1_data_5E4[(arg1->unk_5C / 4) * 4][1] + 0x23); + } + HuSprAttrReset(var_r27, arg1->unk_48 + 0x2E, 4); + } + else if (lbl_1_bss_444 != 0) { + if (HuPadStkX[0] >= 5) { + var_r30++; + var_r26 = 1; + if (var_r30 > 5) { + var_r30 = 5; + } + } + else if (HuPadStkX[0] <= -5) { + var_r30--; + var_r26 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (HuPadStkY[0] <= -5) { + var_r29++; + var_r25 = 1; + if (var_r29 > 2) { + var_r29 = 2; + } + } + else if (HuPadStkY[0] >= 5) { + var_r29--; + var_r25 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + else { + if (HuPadStkX[0] >= 5) { + var_r30++; + var_r26 = 1; + if (var_r30 > 3) { + var_r30 = 3; + } + } + else if (HuPadStkX[0] <= -5) { + var_r30--; + var_r26 = -1; + if (var_r30 < 0) { + var_r30 = 0; + } + } + if (HuPadStkY[0] <= -5) { + var_r29++; + var_r25 = 1; + if (var_r29 > 1) { + var_r29 = 1; + } + } + else if (HuPadStkY[0] >= 5) { + var_r29--; + var_r25 = -1; + if (var_r29 < 0) { + var_r29 = 0; + } + } + } + } + else if (HuPadBtnDown[lbl_1_bss_45C->unk_58] & PAD_BUTTON_B) { + arg1->unk_08 = arg1->unk_10 = 0; + if (lbl_1_bss_444 != 0) { + var_r20 = 0; + if (arg1->unk_5C <= 5) { + var_r20 = arg1->unk_5C - 1; + } + else if (arg1->unk_5C <= 0xB) { + var_r20 = arg1->unk_5C - 3; + } + else { + var_r20 = arg1->unk_5C - 4; + } + HuSprBankSet(var_r27, var_r20 + 2, 0); + } + else { + HuSprBankSet(var_r27, arg1->unk_5C + 2, 0); + } + HuSprBankSet(var_r27, arg1->unk_48 + 0x26, 0); + HuSprBankSet(var_r27, arg1->unk_48 + 0x2A, 0); + HuSprAttrSet(var_r27, arg1->unk_48 + 0x2E, 4); + HuAudFXPlay(3); + } + if (lbl_1_bss_444 != 0) { + var_r24 = var_r30 + (var_r29 * 6); + } + else { + var_r24 = var_r30 + (var_r29 * 4); + } + if (arg1->unk_5C != var_r24) { + if (lbl_1_bss_444 != 0) { + while (TRUE) { + fn_1_1B7D0(1); + var_r24 = var_r30 + (var_r29 * 6); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if (((var_r28 != arg1->unk_48) && (lbl_1_bss_45C[var_r28].unk_08 == 1) && (var_r24 == lbl_1_bss_45C[var_r28].unk_5C)) + || (var_r24 == 0) || (var_r24 == 5) || (var_r24 == 6) || (var_r24 == 0xB)) { + if ((var_r26 == 0) || (var_r25 == 0)) { + if (((var_r30 + var_r26) > 5) || ((var_r30 + var_r26) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r26; + } + if (((var_r29 + var_r25) > 2) || ((var_r29 + var_r25) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r25; + } + } + else if (((var_r30 + var_r26) <= 5) && ((var_r30 + var_r26) >= 0)) { + var_r30 += var_r26; + } + else if (((var_r29 + var_r25) <= 2) && ((var_r29 + var_r25) >= 0)) { + var_r29 += var_r25; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + } + break; + } + } + if (var_r28 == 4) { + break; + } + } + } + else { + do { + var_r24 = var_r30 + (var_r29 * 4); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if ((var_r28 != arg1->unk_48) && (lbl_1_bss_45C[var_r28].unk_08 == 1) && (var_r24 == lbl_1_bss_45C[var_r28].unk_5C)) { + if ((var_r26 == 0) || (var_r25 == 0)) { + if (((var_r30 + var_r26) > 3) || ((var_r30 + var_r26) < 0)) { + var_r30 = var_r23; + } + else { + var_r30 += var_r26; + } + if (((var_r29 + var_r25) > 1) || ((var_r29 + var_r25) < 0)) { + var_r29 = var_r22; + } + else { + var_r29 += var_r25; + } + } + else if (((var_r30 + var_r26) <= 3) && ((var_r30 + var_r26) >= 0)) { + var_r30 += var_r26; + } + else if (((var_r29 + var_r25) <= 1) && ((var_r29 + var_r25) >= 0)) { + var_r29 += var_r25; + } + else { + var_r30 = var_r23; + var_r29 = var_r22; + } + break; + } + } + } while (var_r28 != 4); + } + if (lbl_1_bss_444 != 0) { + var_r24 = var_r30 + (var_r29 * 6); + } + else { + var_r24 = var_r30 + (var_r29 * 4); + } + if (arg1->unk_5C != var_r24) { + var_r19 = arg1->unk_5C; + arg1->unk_5C = var_r24; + HuAudFXPlay(0); + if (lbl_1_bss_444 != 0) { + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B64C(lbl_1_data_694[var_r19][0], lbl_1_data_694[var_r24][0], var_r28, 10.0f); + var_f30 = fn_1_1B64C(lbl_1_data_694[var_r19][1], lbl_1_data_694[var_r24][1], var_r28, 10.0f); + HuSprPosSet(var_r27, arg1->unk_48 + 0x26, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_48 + 0x2A, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_48 + 0x2E, var_f31, 35.0f + var_f30); + } + } + else { + for (var_r28 = 0; var_r28 <= 0xA; var_r28++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B64C(lbl_1_data_5E4[var_r23][0], lbl_1_data_5E4[var_r30][0], var_r28, 10.0f); + var_f30 = fn_1_1B64C(lbl_1_data_5E4[var_r22 * 4][1], lbl_1_data_5E4[var_r29 * 4][1], var_r28, 10.0f); + HuSprPosSet(var_r27, arg1->unk_48 + 0x26, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_48 + 0x2A, var_f31, var_f30); + HuSprPosSet(var_r27, arg1->unk_48 + 0x2E, var_f31, 35.0f + var_f30); + } + } + } + } + lbl_1_bss_5DC.unk_30 = 0; +} + +s32 fn_1_19A98(MpexDllUnkStruct4 *arg0) +{ + float var_f31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r28 = 0; + var_r29 = lbl_1_bss_63C[1]; + while (TRUE) { + fn_1_1B7D0(1); + var_r28 = 0; + var_r26 = arg0->unk_54; + if (HuPadStkX[lbl_1_bss_45C->unk_58] < 5) { + if ((HuPadBtn[lbl_1_bss_45C->unk_58] & PAD_BUTTON_RIGHT) == 0) { + // TODO remove gotos + goto block_2; + } + } + if (GWGameStat.field10E_bit4 == 1) { + arg0->unk_54++; + var_r28 = 1; + if (arg0->unk_54 > 3) { + arg0->unk_54 = 0; + } + } + else { + arg0->unk_54++; + var_r28 = 1; + if (arg0->unk_54 > 2) { + arg0->unk_54 = 0; + } + goto block_1; + block_2: + if (HuPadStkX[lbl_1_bss_45C->unk_58] <= -5 || HuPadBtn[lbl_1_bss_45C->unk_58] & PAD_BUTTON_LEFT) { + if (GWGameStat.field10E_bit4 == 1) { + arg0->unk_54--; + var_r28 = -1; + if (arg0->unk_54 < 0) { + arg0->unk_54 = 3; + } + } + else { + arg0->unk_54--; + var_r28 = -1; + if (arg0->unk_54 < 0) { + arg0->unk_54 = 2; + } + } + } + else if (HuPadBtnDown[0] & PAD_BUTTON_A) { + var_r27 = 1; + break; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + var_r27 = 0; + HuAudFXPlay(3); + break; + } + } + block_1: + if (arg0->unk_54 != var_r26) { + HuAudFXPlay(0); + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_1B7D0(1); + if (lbl_1_bss_444 != 0) { + var_f31 = fn_1_1B64C(lbl_1_data_694[arg0->unk_5C][0], lbl_1_data_694[arg0->unk_5C][0] + (var_r28 * 0xA), var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_694[arg0->unk_5C][1] + 0x23); + } + else { + var_f31 = fn_1_1B64C(lbl_1_data_5E4[arg0->unk_5C % 4][0], lbl_1_data_5E4[arg0->unk_5C % 4][0] + (var_r28 * 0xA), var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_5E4[(arg0->unk_5C / 4) * 4][1] + 0x23); + } + } + HuSprBankSet(var_r29, arg0->unk_48 + 0x2E, arg0->unk_54); + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_1B7D0(1); + if (lbl_1_bss_444 != 0) { + var_f31 = fn_1_1B64C(lbl_1_data_694[arg0->unk_5C][0] + (var_r28 * 0xA), lbl_1_data_694[arg0->unk_5C][0], var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_694[arg0->unk_5C][1] + 0x23); + } + else { + var_f31 = fn_1_1B64C(lbl_1_data_5E4[arg0->unk_5C % 4][0] + (var_r28 * 0xA), lbl_1_data_5E4[arg0->unk_5C % 4][0], var_r30, 5.0f); + HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_5E4[(arg0->unk_5C / 4) * 4][1] + 0x23); + } + } + } + } + if (var_r27 == 1) { + if (lbl_1_bss_444 != 0) { + HuSprPosSet(var_r29, arg0->unk_48 + 0x32, lbl_1_data_694[arg0->unk_5C][0], lbl_1_data_694[arg0->unk_5C][1] + 0x23); + } + else { + HuSprPosSet(var_r29, arg0->unk_48 + 0x32, lbl_1_data_5E4[arg0->unk_5C % 4][0], lbl_1_data_5E4[(arg0->unk_5C / 4) * 4][1] + 0x23); + } + HuSprBankSet(var_r29, arg0->unk_48 + 0x32, arg0->unk_54); + HuSprAttrReset(var_r29, arg0->unk_48 + 0x32, 4); + HuSprAttrSet(var_r29, arg0->unk_48 + 0x2E, 4); + } + return var_r27; +} + +void fn_1_1A3BC(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + AnimData *var_r27; + + var_r29 = HuSprGrpCreate(0x1B); + lbl_1_bss_63C[2] = var_r29; + var_r30 = HuSprCreate(HuSprAnimReadFile(0x640067), 0x64, 0); + HuSprGrpMemberSet(var_r29, 0, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(0x640069), 0x64, 0); + HuSprGrpMemberSet(var_r29, 2, var_r30); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + var_r30 = HuSprCreate(HuSprAnimReadFile(var_r31 + 0x64006B), 0x5A, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 4, var_r30); + } + var_r28 = HuSprAnimReadFile(0x640079); + var_r27 = HuSprAnimReadFile(0x64007A); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x50, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x12, var_r30); + var_r30 = HuSprCreate(var_r27, 0x50, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x16, var_r30); + } + var_r30 = HuSprCreate(HuSprAnimReadFile(0x64007B), 0x46, 0); + HuSprGrpMemberSet(var_r29, 0x1A, var_r30); + fn_1_1A5A4(0); + fn_1_1AEFC(0); +} + +void fn_1_1A5A4(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + + var_r30 = lbl_1_bss_63C[2]; + for (var_r31 = 0; var_r31 < 0x1B; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + switch (arg0) { + case 0: + HuSprAttrReset(var_r30, 2, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r28 = GWPlayerCfg[var_r31].character; + var_r25 = GWPlayerCfg[var_r31].diff; + HuSprAttrReset(var_r30, var_r28 + 4, 4); + HuSprPosSet(var_r30, var_r28 + 4, lbl_1_data_724[var_r31][0], lbl_1_data_724[var_r31][1]); + if (GWPlayerCfg[var_r31].iscom != 0) { + HuSprAttrReset(var_r30, var_r31 + 0x16, 4); + HuSprBankSet(var_r30, var_r31 + 0x16, var_r25); + HuSprPosSet(var_r30, var_r31 + 0x16, lbl_1_data_724[var_r31][0], lbl_1_data_724[var_r31][1] + 0x14); + } + else { + HuSprAttrReset(var_r30, var_r31 + 0x12, 4); + HuSprBankSet(var_r30, var_r31 + 0x12, var_r31); + HuSprPosSet(var_r30, var_r31 + 0x12, lbl_1_data_724[var_r31][0], lbl_1_data_724[var_r31][1] + 0x14); + } + } + break; + case 1: + HuSprAttrReset(var_r30, 0, 4); + var_r27 = GWPlayerCfg->character; + var_r24 = GWPlayerCfg->diff; + HuSprAttrReset(var_r30, var_r27 + 4, 4); + HuSprPosSet(var_r30, var_r27 + 4, 0.0f, lbl_1_data_744[1]); + if (GWPlayerCfg->iscom != 0) { + HuSprAttrReset(var_r30, 0x16, 4); + HuSprBankSet(var_r30, 0x16, var_r24); + HuSprPosSet(var_r30, var_r31 + 0x16, 0.0f, lbl_1_data_744[1] + 0x14); + } + else { + HuSprAttrReset(var_r30, 0x12, 4); + HuSprBankSet(var_r30, 0x12, 0); + HuSprPosSet(var_r30, 0x12, 0.0f, lbl_1_data_744[1] + 0x14); + } + break; + case 2: + HuSprAttrReset(var_r30, 1, 4); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r26 = GWPlayerCfg[var_r31].character; + var_r23 = GWPlayerCfg[var_r31].diff; + HuSprAttrReset(var_r30, var_r26 + 4, 4); + HuSprPosSet(var_r30, var_r26 + 4, lbl_1_data_74C[var_r31][0], lbl_1_data_74C[var_r31][1]); + if (GWPlayerCfg[var_r31].iscom != 0) { + HuSprAttrReset(var_r30, var_r31 + 0x16, 4); + HuSprBankSet(var_r30, var_r31 + 0x16, var_r23); + HuSprPosSet(var_r30, var_r31 + 0x16, lbl_1_data_74C[var_r31][0], lbl_1_data_74C[var_r31][1] + 0x19); + } + else { + HuSprAttrReset(var_r30, var_r31 + 0x12, 4); + HuSprBankSet(var_r30, var_r31 + 0x12, var_r31); + HuSprPosSet(var_r30, var_r31 + 0x12, lbl_1_data_74C[var_r31][0], lbl_1_data_74C[var_r31][1] + 0x19); + } + } + break; + case 3: + HuSprAttrReset(var_r30, 1, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = GWPlayerCfg[var_r31].character; + var_r22 = GWPlayerCfg[var_r31].diff; + var_r29 = fn_1_1B42C(var_r29); + HuSprAttrReset(var_r30, var_r29 + 4, 4); + HuSprPosSet(var_r30, var_r29 + 4, lbl_1_data_75C[var_r31][0], lbl_1_data_75C[var_r31][1]); + if (GWPlayerCfg[var_r31].iscom != 0) { + HuSprAttrReset(var_r30, var_r31 + 0x16, 4); + HuSprBankSet(var_r30, var_r31 + 0x16, var_r22); + HuSprPosSet(var_r30, var_r31 + 0x16, lbl_1_data_75C[var_r31][0], lbl_1_data_75C[var_r31][1] + 0x19); + } + else { + HuSprAttrReset(var_r30, var_r31 + 0x12, 4); + HuSprBankSet(var_r30, var_r31 + 0x12, var_r31); + HuSprPosSet(var_r30, var_r31 + 0x12, lbl_1_data_75C[var_r31][0], lbl_1_data_75C[var_r31][1] + 0x19); + } + } + HuSprAttrReset(var_r30, 0x1A, 4); + break; + } + HuSprGrpPosSet(var_r30, 112.0f, -428.0f); +} + +void fn_1_1AEFC(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_63C[2]; + for (var_r31 = 0; var_r31 < 0x1B; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprGrpPosSet(var_r30, 112.0f, -428.0f); +} + +void fn_1_1AF78(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_63C[2]; + fn_1_1A5A4(arg0); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 0x32) { + var_f31 = fn_1_1B64C(-500.0f, 10.0f, var_r31, 50.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, 0.0f, var_r31 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r30, 112.0f, 72.0f + var_f31); + } + HuSprGrpPosSet(var_r30, 112.0f, 72.0f); +} + +void fn_1_1B0DC(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r29 = lbl_1_bss_63C[2]; + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 0xA) { + var_f31 = fn_1_1B64C(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(var_r29, 112.0f, 72.0f + var_f31); + } + HuSprGrpPosSet(var_r29, 112.0f, -428.0f); + var_r28 = lbl_1_bss_63C[2]; + for (var_r30 = 0; var_r30 < 0x1B; var_r30++) { + HuSprAttrSet(var_r28, var_r30, 4); + } + HuSprGrpPosSet(var_r28, 112.0f, -428.0f); +} + +void fn_1_1B294(void) +{ + omObjData *var_r31; + + var_r31 = NULL; + var_r31 = omAddObjEx(lbl_1_bss_440, 0x1000, 8, 8, -1, NULL); + lbl_1_bss_5DC.unk_00 = var_r31; + lbl_1_bss_5DC.unk_04 = NULL; + while (TRUE) { + HuPrcVSleep(); + if (lbl_1_bss_5DC.unk_04 == NULL) { + continue; + } + lbl_1_bss_5DC.unk_04(lbl_1_bss_5DC.unk_00, &lbl_1_bss_5DC); + } +} + +void fn_1_1B338(void) +{ + s32 var_r31; + omObjData *var_r30; + + var_r31 = lbl_1_bss_448[0]; + lbl_1_bss_448[0] = var_r31 + 1; + var_r30 = NULL; + var_r30 = omAddObjEx(lbl_1_bss_440, 0x1000, 8, 8, -1, NULL); + lbl_1_bss_45C[var_r31].unk_00 = var_r30; + lbl_1_bss_45C[var_r31].unk_04 = NULL; + + while (TRUE) { + HuPrcVSleep(); + if (lbl_1_bss_45C[var_r31].unk_04 == NULL) { + continue; + } + lbl_1_bss_45C[var_r31].unk_04(lbl_1_bss_45C[var_r31].unk_00, &lbl_1_bss_45C[var_r31]); + } +} + +s32 fn_1_1B42C(s32 arg0) +{ + s32 var_r31; + + switch (arg0) { + case 9: + var_r31 = 8; + break; + case 10: + var_r31 = 9; + break; + case 11: + var_r31 = 0xA; + break; + case 12: + var_r31 = 0xB; + break; + case 13: + var_r31 = 0xC; + break; + case 8: + var_r31 = 0xD; + break; + default: + var_r31 = -1; + break; + } + return var_r31; +} + +s32 fn_1_1B4AC(s32 arg0) +{ + s32 var_r31; + + switch (arg0) { + case 8: + var_r31 = 9; + break; + case 9: + var_r31 = 0xA; + break; + case 10: + var_r31 = 0xB; + break; + case 11: + var_r31 = 0xC; + break; + case 12: + var_r31 = 0xD; + break; + case 13: + var_r31 = 8; + break; + default: + var_r31 = -1; + break; + } + return var_r31; +} + +float fn_1_1B52C(float arg8, float arg9, float argA, float argB) +{ + if (argB <= argA) { + return arg9; + } + return arg8 + ((argA / argB) * (arg9 - arg8)); +} + +float fn_1_1B554(float arg0, float arg1, float arg2) +{ + return (arg1 + (arg0 * (arg2 - 1.0f))) / arg2; +} + +float fn_1_1B574(float arg0, float arg1, float arg2, float arg3) +{ + if (arg2 >= arg3) { + return arg1; + } + return arg0 + ((arg1 - arg0) * (1.0 - cosd(((90.0f / arg3) * arg2)))); +} + +float fn_1_1B64C(float arg0, float arg1, float arg2, float arg3) +{ + if (arg2 >= arg3) { + return arg1; + } + return arg0 + ((arg1 - arg0) * sind(((90.0f / arg3) * arg2))); +} + +float fn_1_1B714(float arg8, float arg9, float argA, float argB) +{ + if (argA >= argB) { + return arg8; + } + return arg8 + ((arg9 - arg8) * sind(((360.0f / argB) * argA))); +} + +void fn_1_1B7D0(s32 arg0) +{ + if (arg0 <= 1) { + HuPrcVSleep(); + return; + } + HuPrcSleep(arg0); +} + +void fn_1_1B810(void) +{ + HuWinInit(1); +} + +void fn_1_1B834(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + if (lbl_1_data_77C == -1) { + var_r31 = 0x1C9; + var_r30 = 0x44; + var_r29 = 1.0f + ((576.0f - var_r31) / 2); + var_r28 = 445.0f - var_r30; + lbl_1_data_77C = HuWinExCreateStyled(var_r29, var_r28, var_r31, var_r30, -1, 1); + winData[lbl_1_data_77C].active_pad = 1; + HuWinMesPalSet(lbl_1_data_77C, 7, 0, 0, 0); + HuWinExAnimIn(lbl_1_data_77C); + } +} + +void fn_1_1B9F4(void) +{ + if (lbl_1_data_77C != -1) { + HuWinMesSet(lbl_1_data_77C, 0x250004); + HuWinExAnimOut(lbl_1_data_77C); + HuWinExCleanup(lbl_1_data_77C); + lbl_1_data_77C = -1; + } +} + +void fn_1_1BA78(u32 arg0, s32 arg1, s32 arg2) +{ + if (lbl_1_data_77C != -1) { + if (arg2 == 1) { + HuWinMesSpeedSet(lbl_1_data_77C, 0); + } + else { + HuWinMesSpeedSet(lbl_1_data_77C, 1); + } + HuWinMesSet(lbl_1_data_77C, arg0); + if (arg1 <= 0) { + HuWinMesWait(lbl_1_data_77C); + return; + } + if (arg1 <= 1) { + HuPrcVSleep(); + return; + } + HuPrcSleep(arg1); + } +} + +void fn_1_1BB4C(u32 arg0, s32 arg1) +{ + if (lbl_1_data_77C != -1) { + HuWinInsertMesSet(lbl_1_data_77C, arg0, arg1); + } +} + +s32 fn_1_1BBA4(s32 arg0) +{ + float spC[2]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + HuWinMesMaxSizeGet(1, spC, 0x1E0035); + var_r30 = spC[0]; + var_r29 = spC[1]; + var_r27 = 0x22C - var_r30; + var_r26 = 0x1BD - var_r29; + var_r31 = HuWinExCreateStyled(var_r27, var_r26, var_r30, var_r29, -1, 1); + winData[var_r31].active_pad = 1; + HuWinMesPalSet(var_r31, 7, 0, 0, 0); + HuWinExAnimIn(var_r31); + HuWinMesSpeedSet(var_r31, 0); + HuWinMesSet(var_r31, 0x1E0035); + var_r28 = HuWinChoiceGet(var_r31, arg0); + HuWinMesSet(var_r31, 0x250004); + HuWinExAnimOut(var_r31); + HuWinExCleanup(var_r31); + return var_r28; +} + +void fn_1_1BD00(u32 arg0, s32 arg1) +{ + float spC[2]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + HuWinMesMaxSizeGet(1, spC, arg0); + var_r29 = spC[0]; + var_r31 = spC[1]; + var_r28 = (0x240 - var_r29) / 2.0f; + if (arg1 == 1) { + var_r30 = 0x1BD - var_r31; + } + else { + var_r30 = 0x181 - var_r31; + } + if (lbl_1_data_780[0] != -1) { + fn_1_1C120(); + lbl_1_data_780[0] = HuWinExCreateStyled(var_r28, var_r30, var_r29, var_r31, -1, 1); + } + else { + lbl_1_data_780[0] = HuWinExCreateStyled(var_r28, var_r30, var_r29, var_r31, -1, 1); + } + HuWinBGTPLvlSet(lbl_1_data_780[0], 0.0f); + HuWinDispOn(lbl_1_data_780[0]); + HuWinMesSet(lbl_1_data_780[0], arg0); + HuWinMesSpeedSet(lbl_1_data_780[0], 0); +} + +void fn_1_1BF1C(u32 arg0) +{ + float sp8[2]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + HuWinMesMaxSizeGet(1, sp8, arg0); + var_r30 = sp8[0]; + var_r31 = sp8[1]; + var_r28 = (0x240 - var_r30) / 2.0f; + var_r29 = 0x181 - var_r31; + if (lbl_1_data_780[0] != -1) { + fn_1_1C120(); + lbl_1_data_780[0] = HuWinExCreateStyled(var_r28, var_r29, var_r30, var_r31, -1, 1); + } + else { + lbl_1_data_780[0] = HuWinExCreateStyled(var_r28, var_r29, var_r30, var_r31, -1, 1); + } + HuWinBGTPLvlSet(lbl_1_data_780[0], 0.0f); + HuWinDispOn(lbl_1_data_780[0]); + HuWinMesSet(lbl_1_data_780[0], arg0); + HuWinMesSpeedSet(lbl_1_data_780[0], 0); +} + +void fn_1_1C120(void) +{ + if (lbl_1_data_780[0] != -1) { + HuWinExCleanup(lbl_1_data_780[0]); + lbl_1_data_780[0] = -1; + } +} + +void fn_1_1C174(void) +{ + s32 var_r30; + s32 var_r31; + + var_r30 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_08 == 1) { + HuSprBankSet(var_r30, lbl_1_bss_45C[var_r31].unk_5C + 2, 1); + HuSprBankSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, 1); + HuSprBankSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, 1); + HuSprAttrReset(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, 4); + HuSprAttrReset(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, 4); + HuSprPosSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, lbl_1_data_5E4[lbl_1_bss_45C[var_r31].unk_5C % 4][0], + lbl_1_data_5E4[(lbl_1_bss_45C[var_r31].unk_5C / 4) * 4][1]); + HuSprPosSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, lbl_1_data_5E4[lbl_1_bss_45C[var_r31].unk_5C % 4][0], + lbl_1_data_5E4[(lbl_1_bss_45C[var_r31].unk_5C / 4) * 4][1]); + } + else { + lbl_1_bss_45C[var_r31].unk_5C = 0; + } + } +} + +void fn_1_1C478(void) +{ + s32 var_r30; + s32 var_r31; + + var_r30 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_08 == 1) { + HuSprBankSet(var_r30, lbl_1_bss_45C[var_r31].unk_5C + 2, 1); + HuSprBankSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, 1); + HuSprBankSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, 1); + HuSprAttrReset(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, 4); + HuSprAttrReset(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, 4); + HuSprPosSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, lbl_1_data_5E4[lbl_1_bss_45C[var_r31].unk_5C % 4][0], + lbl_1_data_5E4[(lbl_1_bss_45C[var_r31].unk_5C / 4) * 4][1]); + HuSprPosSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, lbl_1_data_5E4[lbl_1_bss_45C[var_r31].unk_5C % 4][0], + lbl_1_data_5E4[(lbl_1_bss_45C[var_r31].unk_5C / 4) * 4][1]); + } + else { + lbl_1_bss_45C[var_r31].unk_5C = 0; + } + } +} + +void fn_1_1C77C(void) +{ + s32 var_r29; + s32 var_r30; + s32 var_r31; + + var_r30 = lbl_1_bss_63C[1]; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_45C[var_r31].unk_08 == 1) { + if (lbl_1_bss_45C[var_r31].unk_5C <= 5) { + var_r29 = lbl_1_bss_45C[var_r31].unk_5C - 1; + } + else if (lbl_1_bss_45C[var_r31].unk_5C <= 0xB) { + var_r29 = lbl_1_bss_45C[var_r31].unk_5C - 3; + } + else { + var_r29 = lbl_1_bss_45C[var_r31].unk_5C - 4; + } + HuSprBankSet(var_r30, var_r29 + 2, 1); + HuSprBankSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, 1); + HuSprBankSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, 1); + HuSprAttrReset(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, 4); + HuSprAttrReset(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, 4); + HuSprPosSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x1E, lbl_1_data_694[lbl_1_bss_45C[var_r31].unk_5C][0], + lbl_1_data_694[lbl_1_bss_45C[var_r31].unk_5C][1]); + HuSprPosSet(var_r30, lbl_1_bss_45C[var_r31].unk_48 + 0x22, lbl_1_data_694[lbl_1_bss_45C[var_r31].unk_5C][0], + lbl_1_data_694[lbl_1_bss_45C[var_r31].unk_5C][1]); + } + else { + lbl_1_bss_45C[var_r31].unk_5C = 1; + } + } +} + +void fn_1_1CABC(s32 arg0) +{ + s32 sp8[] = { 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x39, 0x40, 0x4B, 0x46, 0x3E, 0x3A }; + + if ((arg0 < 0) || (arg0 > 0xD)) { + return; + } + HuAudFXPlay(sp8[arg0]); +} diff --git a/src/REL/mpexDll/main.c b/src/REL/mpexDll/main.c index 599a30ef..ed43b5c1 100644 --- a/src/REL/mpexDll/main.c +++ b/src/REL/mpexDll/main.c @@ -16,7 +16,7 @@ void fn_1_A70(MpexDllUnkStruct *arg0); MpexDllUnkStruct lbl_1_bss_64; s32 lbl_1_bss_4[0x18]; -Process *lbl_1_bss_0; // it's something bigger +Process *lbl_1_bss_0; void fn_1_A0(void) { diff --git a/src/REL/mpexDll/mgname.c b/src/REL/mpexDll/mgname.c index 62e29ea7..91f3d5b9 100644 --- a/src/REL/mpexDll/mgname.c +++ b/src/REL/mpexDll/mgname.c @@ -326,7 +326,7 @@ s32 fn_1_1CB80(SeqWork *arg0, u8 *arg1, s16 arg2) return var_r20; } -s32 fn_1_1D02C(u32 arg0) +s32 fn_1_1D02C(s32 arg0) { SeqWork sp10; s16 spC[2]; From 2500fda5192b840add00da9892c950bb25c1325c Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Wed, 18 Sep 2024 00:05:29 +0200 Subject: [PATCH 075/311] Fix data and rodata visibility in m455Dll --- config/GMPE01_00/rels/m455Dll/symbols.txt | 214 +++++++++++----------- 1 file changed, 107 insertions(+), 107 deletions(-) diff --git a/config/GMPE01_00/rels/m455Dll/symbols.txt b/config/GMPE01_00/rels/m455Dll/symbols.txt index 93a213d8..5cefea64 100644 --- a/config/GMPE01_00/rels/m455Dll/symbols.txt +++ b/config/GMPE01_00/rels/m455Dll/symbols.txt @@ -116,111 +116,111 @@ lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:d lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float lbl_1_data_38 = .data:0x00000038; // type:object size:0xC data:float lbl_1_data_44 = .data:0x00000044; // type:object size:0xC data:float @@ -247,8 +247,8 @@ lbl_1_data_19C = .data:0x0000019C; // type:object size:0x3C data:float lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x30 data:float lbl_1_data_208 = .data:0x00000208; // type:object size:0x4 data:byte lbl_1_data_20C = .data:0x0000020C; // type:object size:0x50 -lbl_1_data_25C = .data:0x0000025C; // type:object size:0x7 data:string -lbl_1_data_263 = .data:0x00000263; // type:object size:0x7 data:string +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x7 scope:local data:string +lbl_1_data_263 = .data:0x00000263; // type:object size:0x7 scope:local data:string lbl_1_data_26A = .data:0x0000026A; // type:object size:0x4 data:byte lbl_1_data_26E = .data:0x0000026E; // type:object size:0x4 data:byte lbl_1_data_272 = .data:0x00000272; // type:object size:0x4 data:byte From ffa12177c14567cac3201967d55ee8274c0aff65 Mon Sep 17 00:00:00 2001 From: Rainchus Date: Wed, 18 Sep 2024 17:13:34 -0500 Subject: [PATCH 076/311] fix divide by 0 errors in --verbose output of progress tracking --- tools/project.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/project.py b/tools/project.py index 639f5a13..502b2f4b 100644 --- a/tools/project.py +++ b/tools/project.py @@ -1406,9 +1406,13 @@ def calculate_progress(config: ProjectConfig) -> None: self.objects_progress += 1 def code_frac(self) -> float: + if self.code_total == 0: + return 1.0 return self.code_progress / self.code_total def data_frac(self) -> float: + if self.data_total == 0: + return 1.0 return self.data_progress / self.data_total progress_units: Dict[str, ProgressUnit] = {} From d247ec85bdbb96d3bf72cbcbdda8033e10d8683e Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Thu, 19 Sep 2024 11:40:48 -0500 Subject: [PATCH 077/311] Fix winner offset screen size --- src/game/minigame_seq.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/game/minigame_seq.c b/src/game/minigame_seq.c index c2f02421..ca883739 100644 --- a/src/game/minigame_seq.c +++ b/src/game/minigame_seq.c @@ -2797,9 +2797,9 @@ static s32 SeqInitWin(SeqWork *work, va_list params) word_x = (((HU_DISP_WIDTH-word_x)/2.0f)+(winnerNameW[1]/2))-HU_DISP_CENTERX; } } else { - if(abs(winPosOfs[num_winners-1][j][0]) == (HU_DISP_WIDTHF/4)) { + if(abs(winPosOfs[num_winners-1][j][0]) == 144.0f) { if(winnerNameW[j]+32 < HU_DISP_CENTERX) { - word_x = (HU_DISP_WIDTHF/4)+32.0f; + word_x = 176.0f; } else { word_x = 32.0f+((winnerNameW[j]*work->win_scale)/2.0f); } @@ -2900,9 +2900,9 @@ static s32 SeqUpdateWin(SeqWork *work) pos_x = winnerNameW[1]+winnerNameW[0]+32; pos_x = (((HU_DISP_WIDTH-pos_x)/2.0f)+(winnerNameW[1]/2))-HU_DISP_CENTERX; } else { - if(abs(winPosOfs[work->word_len-2][idx][0]) == (HU_DISP_WIDTHF/4)) { + if(abs(winPosOfs[work->word_len-2][idx][0]) == 144.0f) { if(winnerNameW[idx]+32 < HU_DISP_CENTERX) { - pos_x = (HU_DISP_WIDTHF/4)+32; + pos_x = 176.0f; } else { pos_x = 32.0f+((winnerNameW[idx]*work->win_scale)/2.0f); } From 1bb1ecd0b2583f3e11333de566e81910a679e9c7 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Sun, 29 Sep 2024 01:13:30 -0400 Subject: [PATCH 078/311] finish m415Dll --- include/REL/m415Dll.h | 121 +++--- src/REL/m409Dll/cursor.c | 2 +- src/REL/m415Dll/main.c | 10 +- src/REL/m415Dll/map.c | 913 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 979 insertions(+), 67 deletions(-) diff --git a/include/REL/m415Dll.h b/include/REL/m415Dll.h index f11e69b4..c202ca5b 100644 --- a/include/REL/m415Dll.h +++ b/include/REL/m415Dll.h @@ -8,6 +8,18 @@ extern u8 texMtxTbl[]; #define FABS(x) ((x < 0.0f) ? -(x) : (x)) // types +typedef struct _unkType2 { + char unk[0x10]; +} unkType2; + +typedef struct _unkType { + unkType2 unk[0x10]; +} unkType; + +typedef struct _unkType3 { + Vec unk[4]; +} unkType3; + typedef struct _unkStruct { s16 unk0[3]; s16 unk6; @@ -122,11 +134,14 @@ typedef struct _unkSubStruct { GXColor unk4C; GXColor unk50; unkSubStruct4* unk54; - char unk58[0x4]; - s8 unk5C; - char unk5D[0xB]; + u8 unk58; + char unk59[0x3]; + Vec unk5C; Vec unk68; - char unk74[0x20]; + s16 unk74[2]; + s16* unk78; + s16* unk7C; + char unk80[0x14]; } unkSubStruct; /* size = 0x94 */ typedef void (*unkSubStruct2Func)(struct _unkSubStruct2*); @@ -139,37 +154,53 @@ typedef struct _unkSubStruct2 { Vec unkC; Vec unk18; Vec unk24; - unkSubStruct2Func unk30; + void (*unk30)(struct _unkSubStruct2*); s16* unk34; - char unk38[4]; + s16 unk38; + char unk3A[2]; unkSubStruct *unk3C; - char unk40[0x20]; + char unk40[0x8]; + s16 unk48; + char* unk4C; + Vec* unk50; + GXColor* unk54; + Vec* unk58; + unkSubStruct4* unk5C; u8 unk60; - char unk61[0x1A]; - s16 unk7C; - s16 unk7E; - float unk80; - float unk84; - float unk88; - float unk8C; - float unk90; - char unk94[0x28]; + char unk61[0x3]; + Vec unk64; + Vec unk70; + union { + s16 unk7C[0x20]; + struct { + s16 unk7Cs; + s16 unk7Es; + float unk80; + float unk84; + float unk88; + float unk8C; + float unk90; + char unk94[0x28]; + }; + }; } unkSubStruct2; /* size = 0xBC */ typedef struct _unkSubStruct3 { AnimData* unk0; s16 unk4; s16 unk6; - s32 unk8; + u32 unk8; Vec unkC; Mtx unk18; GXColor unk48; u8 unk4C; u8 unk4D; - char unk4E[0x2]; - char unk50[0x8]; + s16 unk4E; + s16 unk50; + char unk52[0x2]; + f32 unk54; f32 unk58; - char unk5C[0x4]; + f32 unk5C; f32 unk60; } unkSubStruct3; /* size = 0x64 */ @@ -197,83 +228,51 @@ extern unkStruct5 lbl_1_bss_36C; // prototypes // main.c -void ObjectSetup(void); void fn_1_43C(omObjData* object); void fn_1_4B0(omObjData* object); void fn_1_7D8(omObjData* object); void fn_1_14C0(omObjData* object); -void fn_1_1524(s16, char*, f32, Mtx); void fn_1_15D0(omObjData* object); void fn_1_1960(omObjData* object); -void fn_1_1A60(unkStruct3*); void fn_1_2B18(omObjData* object); void fn_1_2C14(omObjData* object); void fn_1_2E88(f32, Vec*, Vec*, f32); -void fn_1_2F28(f32, Vec*, Vec*, f32, Vec*, Vec*, f32); -void fn_1_31E0(f32); void fn_1_3208(omObjData* object); void fn_1_3640(omObjData* object); void fn_1_3764(omObjData* object); void fn_1_3B44(omObjData* object); void fn_1_4660(omObjData* object); void fn_1_5B20(unkSubStruct2*); -void fn_1_5FB0(omObjData* object); void fn_1_6304(omObjData* object); void fn_1_6368(void); void* fn_1_63A8(s32); -void fn_1_6448(void*); void fn_1_64DC(void); -void fn_1_6584(s16, char*, u8, u8, u8); AnimBmpData* fn_1_668C(s16); s16 fn_1_66AC(void); s32 fn_1_679C(void); f32 fn_1_67F0(f32, f32, f32); -void fn_1_6958(Mtx, f32, f32, f32); void fn_1_6A78(Mtx, Vec*); -f32 fn_1_6D84(f32, f32, f32, f32); -void fn_1_6DFC(f32*, f32*, f32*, f32*, f32); -f32 fn_1_6F18(f32, f32, f32, f32); -void fn_1_6F90(f32*, f32*, f32*, f32*, f32); void fn_1_7268(f32*, f32*, f32*, s32); f32 fn_1_7520(f32, f32*, f32*, f32*, s32); void fn_1_7674(f32*, Vec*, Vec*, s32); void fn_1_7A54(f32, Vec*, f32*, Vec*, Vec*, s32); -f32 fn_1_7C68(Vec*); -f32 fn_1_7E00(Vec, Vec, Vec*, f32); -f32 fn_1_7ED8(Vec, Vec, Vec); -f32 fn_1_7F94(Vec*, Vec*, Vec*); -f32 fn_1_82D0(Vec*, Vec*, Vec*, Vec*, Vec*); // map.c -void fn_1_8780(s16, s16); void fn_1_95C0(ModelData*, Mtx); -unkSubStruct2* fn_1_96EC(s16); -unkSubStruct* fn_1_9708(s16, s16); AnimData** fn_1_9734(s16); -void fn_1_9750(unkStruct6**, s16, f32, f32); -void fn_1_98D4(Vec**, s16, Vec*); -void fn_1_9974(GXColor**, s16, GXColor*); -void fn_1_9A1C(Vec**, s16, Vec*); -void fn_1_9AA8(HsfVector2f**, s16, HsfVector2f*); -void fn_1_9B40(unkSubStruct*); void fn_1_9DC8(unkSubStruct2*); -// ... -s16 fn_1_A2D0(s32, s32); +s16 fn_1_A2D0(u8, u8); void fn_1_A800(s16); -s16 fn_1_A94C(s32, s16, s16); +s16 fn_1_A94C(u32, s16, s16); void fn_1_ACF4(s16, s16, s16, s16, s16, s16); -void fn_1_AFC8(s16, s32, s32, s32, s32); -void fn_1_B038(s16, s32, s32); -void fn_1_B0B8(s16, s32, s16); -void fn_1_B634(void); +void fn_1_AF48(s16); +u8 fn_1_AFC8(s16, u8, s32, s16, s16); +s32 fn_1_B0B8(s16, u8, s16); void fn_1_B864(s16, f32, f32, f32); -void fn_1_B8D0(s16, s16, f32, f32, f32); void fn_1_BB4C(s16, f32, f32, f32); void fn_1_BC9C(s16, f32, f32, f32); void fn_1_BD08(s16, s16, f32, f32, f32); -void fn_1_BE30(s16, s16, s32); -void fn_1_C110(s16, s16, u8, u8, u8, u8); -void fn_1_C264(s16, s32); -void fn_1_C2D0(s16, s32, s32); +void fn_1_C264(s16, u8); +void fn_1_C2D0(s16, s16, u8); void fn_1_C410(s16, s16, u8, u8); -void fn_1_C58C(s16, s16, u8 , f32); -void fn_1_C81C(s16, s32); \ No newline at end of file +void fn_1_C58C(s16, s16, u8, f32); +void fn_1_C81C(s16, u8); \ No newline at end of file diff --git a/src/REL/m409Dll/cursor.c b/src/REL/m409Dll/cursor.c index 0b6f1ca4..021bc823 100644 --- a/src/REL/m409Dll/cursor.c +++ b/src/REL/m409Dll/cursor.c @@ -1109,7 +1109,7 @@ void fn_1_F1F4(s16 arg0, u8 arg1) { if (arg0 != 0) { temp_r29 = &lbl_1_bss_F0.unk10[arg0]; - var_r31 = (unkStruct8Sub *)(&temp_r29->unk3C); + var_r31 = (unkStruct8Sub *)(&temp_r29->unk3C); //! BAD WHY (void)temp_r29; for (var_r28 = 0; var_r28 < temp_r29->unk2; var_r28++, var_r31++) { diff --git a/src/REL/m415Dll/main.c b/src/REL/m415Dll/main.c index c4c917d7..2fc185c3 100644 --- a/src/REL/m415Dll/main.c +++ b/src/REL/m415Dll/main.c @@ -1333,12 +1333,12 @@ void fn_1_5B20(unkSubStruct2* arg0) { var_r31->unk0.y = 6.0f; var_r31->unk0.z = 65.0f * var_r31->unk68.z; } - arg0->unk7C = 30; + arg0->unk7Cs = 30; arg0->unk60++; case 1: - arg0->unk7C--; - temp_f31 = (30.0f - arg0->unk7C) / 30.0f; - temp_f29 = arg0->unk7C / 30.0f; + arg0->unk7Cs--; + temp_f31 = (30.0f - arg0->unk7Cs) / 30.0f; + temp_f29 = arg0->unk7Cs / 30.0f; var_r31 = arg0->unk3C; for (var_r29 = 0; var_r29 < arg0->unk2; var_r29++, var_r31++) { var_r31->unk0.x += 5.0f * temp_f29 * var_r31->unk68.x; @@ -1352,7 +1352,7 @@ void fn_1_5B20(unkSubStruct2* arg0) { var_r31->unk50.b = 0xFF; var_r31->unk50.a = 96.0f * (1.0f - (temp_f31 * temp_f31)); } - if (arg0->unk7C == 0) { + if (arg0->unk7Cs == 0) { arg0->unk60++; } break; diff --git a/src/REL/m415Dll/map.c b/src/REL/m415Dll/map.c index c4dec1ec..c28e549d 100644 --- a/src/REL/m415Dll/map.c +++ b/src/REL/m415Dll/map.c @@ -1,6 +1,8 @@ +#define HUSPR_USE_OLD_DEFS #include "REL/m415Dll.h" #include "game/hsfdraw.h" +#include "game/sprite.h" void fn_1_8780(s16 arg0, s16 arg1) { s32 var_r31; @@ -520,4 +522,915 @@ void fn_1_9DC8(unkSubStruct2* arg0) { fn_1_A800(arg0->unk0); } } +} + +s16 fn_1_A2D0(u8 arg0, u8 arg1) { + s32 var_r29; + s32 var_r28; + unkSubStruct* var_r30; + unkSubStruct2* var_r31; + void* temp_r25; + + var_r31 = lbl_1_bss_36C.unk40 + 1; + + for (var_r29 = 1; var_r29 < lbl_1_bss_36C.unk30; var_r29++, var_r31++) { + if (var_r31->unk8 == 0) { + break; + } + } + if (var_r29 == lbl_1_bss_36C.unk30) { + return 0; + } + var_r31->unk0 = var_r29; + var_r31->unk8 = 1; + var_r31->unk30 = NULL; + var_r31->unk2 = arg0; + var_r31->unk4 = arg1; + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkSubStruct), 0x10000000); + var_r31->unk3C = var_r30; + var_r31->unk34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * 2, 0x10000000); + var_r31->unk48 = 0; + var_r31->unk4C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkType), 0x10000000); + var_r31->unk50 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec[4]), 0x10000000); + var_r31->unk54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkType2), 0x10000000); + var_r31->unk58 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), 0x10000000); + var_r31->unk5C = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (arg0 * sizeof(unkSubStruct4)), 0x10000000); + DCFlushRangeNoSync(var_r31->unk4C, arg0 << 8); + var_r31->unkC.x = var_r31->unkC.y = var_r31->unkC.z = 0.0f; + var_r31->unk18.x = var_r31->unk18.y = var_r31->unk18.z = 0.0f; + var_r31->unk24.x = var_r31->unk24.y = var_r31->unk24.z = 1.0f; + var_r31->unk70.x = var_r31->unk70.y = var_r31->unk70.z = 0.0f; + var_r31->unk64.x = var_r31->unk64.y = var_r31->unk64.z = 0.0f; + var_r31->unk60 = 0; + + for (var_r29 = 0; var_r29 < 0x20; var_r29++) { + var_r31->unk7C[var_r29] = 0; + } + for (var_r29 = 0; var_r29 < arg1; var_r29++) { + var_r31->unk34[var_r29] = 0; + } + for (var_r29 = 0; var_r29 < arg0; var_r29++, var_r30++) { + var_r30->unk34 = 1; + var_r30->unk33 = arg1; + var_r30->unk30 = 0; + var_r30->unk31 = 2; + var_r30->unk32 = 0; + + + var_r30->unk4C.r = var_r30->unk4C.g = var_r30->unk4C.b = 0; + var_r30->unk4C.a = 0xFF; + var_r30->unk50.r = var_r30->unk50.g = var_r30->unk50.b = 0xFF; + var_r30->unk50.a = 0xFF; + var_r30->unk54 = &var_r31->unk5C[var_r29 * arg1]; + for (var_r28 = 0; var_r28 < arg1; var_r28++) { + var_r30->unk54[var_r28].unk0 = var_r30->unk54[var_r28].unk1 = 0; + var_r30->unk54[var_r28].unk28 = 1.0f; + var_r30->unk54[var_r28].unk2C = 0.0f; + } + + var_r30->unk0.x = var_r30->unk0.y = var_r30->unk0.z = 0.0f; + var_r30->unkC.x = var_r30->unkC.y = var_r30->unkC.z = 0.0f; + var_r30->unk18.x = var_r30->unk18.y = var_r30->unk18.z = 1.0f; + var_r30->unk68.x = var_r30->unk68.y = var_r30->unk68.z = 0.0f; + var_r30->unk5C.x = var_r30->unk5C.y = var_r30->unk5C.z = 0.0f; + var_r30->unk58 = 0; + + for (var_r28 = 0; var_r28 < 0x10; var_r28++) { + var_r30->unk74[var_r28] = 0; + } + var_r30->unk40 = &var_r31->unk50[var_r29 * 4]; + var_r30->unk44 = &var_r31->unk54[var_r29 * 4]; + var_r30->unk48 = &var_r31->unk58[var_r29]; + var_r30->unk3C = var_r31->unk4C + var_r31->unk48; + fn_1_9B40(var_r30); + var_r31->unk48 += var_r30->unk38; + } + temp_r25 = var_r31->unk4C; + var_r31->unk4C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk48, 0x10000000); + memcpy(var_r31->unk4C, temp_r25, var_r31->unk48); + HuMemDirectFree(temp_r25); + DCFlushRangeNoSync(var_r31->unk50, arg0 * 0x30); + DCFlushRangeNoSync(var_r31->unk54, arg0 * 0x10); + DCFlushRangeNoSync(var_r31->unk58, arg0 * 0xC); + DCFlushRangeNoSync(var_r31->unk4C, var_r31->unk48); + var_r30 = var_r31->unk3C; + var_r31->unk48 = 0; + + for (var_r29 = 0; var_r29 < arg0; var_r29++, var_r30++) { + var_r30->unk3C = var_r31->unk4C + var_r31->unk48; + var_r31->unk48 += var_r30->unk38; + } + lbl_1_bss_36C.unk36 = var_r31->unk0; + lbl_1_bss_36C.unk38 = 0; + lbl_1_bss_36C.unk3A = 0; + return var_r31->unk0; +} + +void fn_1_A800(s16 arg0) { + s32 var_r30; + unkSubStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + if (temp_r31->unk8 != 0) { + if (temp_r31->unk50 != NULL) { + HuMemDirectFree(temp_r31->unk50); + } + if (temp_r31->unk54 != NULL) { + HuMemDirectFree(temp_r31->unk54); + } + if (temp_r31->unk58 != NULL) { + HuMemDirectFree(temp_r31->unk58); + } + if (temp_r31->unk4C != NULL) { + HuMemDirectFree(temp_r31->unk4C); + } + if (temp_r31->unk5C != NULL) { + HuMemDirectFree(temp_r31->unk5C); + } + + for (var_r30 = 0; var_r30 < temp_r31->unk4; var_r30++) { + fn_1_AF48(temp_r31->unk34[var_r30]); + } + HuMemDirectFree(temp_r31->unk3C); + HuMemDirectFree(temp_r31->unk34); + temp_r31->unk8 = 0; + } + } +} + +void fn_1_A920(s16 arg0, s16 arg1, u8 arg2) { + lbl_1_bss_36C.unk36 = arg0; + lbl_1_bss_36C.unk38 = arg1; + lbl_1_bss_36C.unk3A = arg2; +} + +s16 fn_1_A94C(u32 arg0, s16 arg1, s16 arg2) { + AnimData* var_r30; + f32 var_f31; + f32 var_f30; + s32 var_r29; + unkSubStruct3* var_r31; + + var_r31 = lbl_1_bss_36C.unk3C + 1; + for (var_r29 = 1; var_r29 < lbl_1_bss_36C.unk32; var_r29++, var_r31++) { + if ((var_r31->unk6 != 0) && (var_r31->unk8 == arg0)) { + break; + } + } + if (var_r29 < lbl_1_bss_36C.unk32) { + var_r31->unk6++; + return var_r29; + } + var_r31 = lbl_1_bss_36C.unk3C + 1; + for (var_r29 = 1; var_r29 < lbl_1_bss_36C.unk32; var_r29++, var_r31++) { + if (var_r31->unk6 == 0) { + break; + } + } + var_r31->unk8 = arg0; + var_r31->unk6 = 1; + if (((arg0 & 0xFFFF0000) + 0x10000) == 0U) { + var_r30 = HuSprAnimMake(arg1, arg2, 2); + var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg2 * (arg1 * 2), 0x10000000); + arg1 = arg2 = 0; + } else { + var_r30 = HuSprAnimRead(HuDataReadNum(arg0, 0x10000000)); + } + if ((arg1 == 0) || (arg2 == 0)) { + arg1 = var_r30->bmp->sizeX; + arg2 = var_r30->bmp->sizeY; + var_f31 = var_f30 = 1.0f; + } else { + var_f31 = arg1 / (f32) var_r30->bmp->sizeX; + var_f30 = arg2 / (f32) var_r30->bmp->sizeY; + } + var_r31->unk0 = var_r30; + var_r31->unk4E = arg1; + var_r31->unk50 = arg2; + var_r31->unk54 = var_f31; + var_r31->unk58 = var_f30; + var_r31->unk5C = 1.0f / var_r30->bmp->sizeX; + var_r31->unk60 = 1.0f / var_r30->bmp->sizeY; + var_r31->unk4 = 0; + var_r31->unk4C = (var_r30->bmp->sizeY / arg2); + if (var_r31->unk4C < 1) { + var_r31->unk4C = 1; + } + var_r31->unk4D = 0; + if ((arg1 > var_r30->bmp->sizeX) || (arg2 > var_r30->bmp->sizeY)) { + var_r31->unk4D = 1; + } + var_r31->unk48.r = var_r31->unk48.g = var_r31->unk48.b = 0xFF; + var_r31->unk48.a = 0xFF; + PSMTXIdentity(var_r31->unk18); + var_r31->unkC.x = var_r31->unkC.y = var_r31->unkC.z = 0.0f; + return var_r29; +} + +void fn_1_ACF4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) { + f32 var_f31; + f32 var_f30; + AnimData* var_r30; + unkSubStruct3* var_r31; + + var_r31 = &lbl_1_bss_36C.unk3C[arg0]; + HuSprAnimKill(var_r31->unk0); + var_r31->unk8 |= 0xFFFF0000; + var_r30 = HuSprAnimMake(arg2, arg3, arg1); + var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 * (var_r30->bmp->pixSize * arg2), 0x10000000U); + var_f31 = arg4 / (f32) var_r30->bmp->sizeX; + var_f30 = arg5 / (f32) var_r30->bmp->sizeY; + var_r31->unk0 = var_r30; + var_r31->unk4E = arg2; + var_r31->unk50 = arg3; + var_r31->unk54 = var_f31; + var_r31->unk58 = var_f30; + var_r31->unk5C = 1.0f / var_r30->bmp->sizeX; + var_r31->unk60 = 1.0f / var_r30->bmp->sizeY; + var_r31->unk4 = 0; + var_r31->unk4C = var_r30->bmp->sizeY / arg5; + var_r31->unk4D = 0; + var_r31->unk48.r = var_r31->unk48.g = var_r31->unk48.b = 0xFF; + var_r31->unk48.a = 0xFF; +} + +void fn_1_AF48(s16 arg0) { + unkSubStruct3* temp_r31; + + temp_r31 = &lbl_1_bss_36C.unk3C[arg0]; + if (temp_r31->unk8 != 0) { + if (temp_r31->unk6 != 0) { + temp_r31->unk6 -= 1; + } + if (temp_r31->unk6 == 0) { + HuSprAnimKill(temp_r31->unk0); + temp_r31->unk8 = 0; + } + } +} + +u8 fn_1_AFC8(s16 arg0, u8 arg1, s32 arg2, s16 arg3, s16 arg4) { + s32 temp_r3; + + temp_r3 = fn_1_A94C(arg2, arg3, arg4); + if (temp_r3 == 0) { + return 0; + } + fn_1_B0B8(arg0, arg1, temp_r3); + return temp_r3; +} + +u8 fn_1_B038(s16 arg0, u8 arg1, s32 arg2) { + u8 var_r31; + s32 var_r30; + u8 var_r29; + + if ((var_r30 = fn_1_A94C(arg2, 0, 0)) == 0) { + var_r31 = 0; + } else { + fn_1_B0B8(arg0, arg1, var_r30); + var_r31 = var_r30; + } + var_r29 = var_r31; + return var_r29; +} + +s32 fn_1_B0B8(s16 arg0, u8 arg1, s16 arg2) { + s32 var_r27; + unkSubStruct* var_r29; + unkSubStruct2* temp_r28; + unkSubStruct3* temp_r30; + unkSubStruct4* temp_r31; + + if (arg2 == 0) { + return 0; + } + if (arg0 == 0) { + return 0; + } + temp_r28 = &lbl_1_bss_36C.unk40[arg0]; + temp_r28->unk8 |= 2; + temp_r28->unk34[arg1] = arg2; + temp_r30 = &lbl_1_bss_36C.unk3C[arg2]; + var_r29 = temp_r28->unk3C; + + for (var_r27 = 0; var_r27 < temp_r28->unk2; var_r27++, var_r29++) { + if (arg1 == 0) { + var_r29->unk40[0].x = -0.5f * temp_r30->unk4E; + var_r29->unk40[0].y = 0.5f * temp_r30->unk50; + var_r29->unk40[1].x = (0.5f * temp_r30->unk4E); + var_r29->unk40[1].y = (0.5f * temp_r30->unk50); + var_r29->unk40[2].x = (0.5f * temp_r30->unk4E); + var_r29->unk40[2].y = (-0.5f * temp_r30->unk50); + var_r29->unk40[3].x = (-0.5f * temp_r30->unk4E); + var_r29->unk40[3].y = (-0.5f * temp_r30->unk50); + var_r29->unk40[0].z = var_r29->unk40[1].z = var_r29->unk40[2].z = var_r29->unk40[3].z = 0.0f; + } + temp_r31 = &var_r29->unk54[arg1]; + temp_r31->unk24 = 0; + temp_r31->unk0 = temp_r31->unk1 = 0; + temp_r31->unk28 = 1.0f; + temp_r31->unk2C = 0.0f; + temp_r31->unk4[0].x = temp_r31->unk0 * temp_r30->unk54; + temp_r31->unk4[0].y = temp_r31->unk0 * temp_r30->unk58; + temp_r31->unk4[1].x = (temp_r31->unk0 + 1) * temp_r30->unk54; + temp_r31->unk4[1].y = temp_r31->unk0 * temp_r30->unk58; + temp_r31->unk4[2].x = (temp_r31->unk0 + 1) * temp_r30->unk54; + temp_r31->unk4[2].y = (temp_r31->unk0 + 1) * temp_r30->unk58; + temp_r31->unk4[3].x = temp_r31->unk0 * temp_r30->unk54; + temp_r31->unk4[3].y = (temp_r31->unk0 + 1) * temp_r30->unk58; + if ((temp_r31->unk0 + 1) < temp_r30->unk4C) { + temp_r31->unk4[2].y -= temp_r30->unk60; + temp_r31->unk4[3].y -= temp_r30->unk60; + } + DCFlushRangeNoSync(temp_r31->unk4, 0x20); + } + lbl_1_bss_36C.unk36 = arg0; + lbl_1_bss_36C.unk3A = arg1; + return 1; +} + +void fn_1_B634(s32 arg0) { + s32 var_r28; + s32 var_r27; + s16 var_r26; + unkSubStruct2* temp_r31; + unkSubStruct3* temp_r30; + unkSubStruct3* temp_r29; + + for (var_r28 = 1; var_r28 < lbl_1_bss_36C.unk30; var_r28++) { + if ((s16)var_r28 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[(s16)var_r28]; + if (temp_r31->unk8 != 0) { + if (temp_r31->unk50 != NULL) { + HuMemDirectFree(temp_r31->unk50); + } + if (temp_r31->unk54 != NULL) { + HuMemDirectFree(temp_r31->unk54); + } + if (temp_r31->unk58 != NULL) { + HuMemDirectFree(temp_r31->unk58); + } + if (temp_r31->unk4C != NULL) { + HuMemDirectFree(temp_r31->unk4C); + } + if (temp_r31->unk5C != NULL) { + HuMemDirectFree(temp_r31->unk5C); + } + + for (var_r27 = 0; var_r27 < temp_r31->unk4; var_r27++) { + var_r26 = temp_r31->unk34[var_r27]; + temp_r29 = &lbl_1_bss_36C.unk3C[var_r26]; + if (temp_r29->unk8 != 0) { + if (temp_r29->unk6 != 0) { + temp_r29->unk6--; + } + if (temp_r29->unk6 == 0) { + HuSprAnimKill(temp_r29->unk0); + temp_r29->unk8 = 0; + } + } + } + HuMemDirectFree(temp_r31->unk3C); + HuMemDirectFree(temp_r31->unk34); + temp_r31->unk8 = 0; + } + } + } + + for (var_r28 = 1; var_r28 < lbl_1_bss_36C.unk32; var_r28++) { + temp_r30 = &lbl_1_bss_36C.unk3C[(s16)var_r28]; + if (temp_r30->unk8 != 0) { + if (temp_r30->unk6 != 0) { + temp_r30->unk6 -= 1; + } + if (temp_r30->unk6 == 0) { + HuSprAnimKill(temp_r30->unk0); + temp_r30->unk8 = 0; + } + } + } + HuMemDirectFree(lbl_1_bss_36C.unk40); + HuMemDirectFree(lbl_1_bss_36C.unk3C); + Hu3DModelKill(lbl_1_bss_36C.unk34); +} + +void fn_1_B864(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + unkSubStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + temp_r31->unkC.x = arg8; + temp_r31->unkC.y = arg9; + temp_r31->unkC.z = argA; + if (temp_r31->unk2 == 1) { + temp_r31->unk3C->unk0 = temp_r31->unkC; + } + } +} + +void fn_1_B8D0(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + unkSubStruct* temp_r31; + unkSubStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_36C.unk40[arg0]; + if (temp_r30->unk2 > arg1) { + temp_r31 = &temp_r30->unk3C[arg1]; + temp_r31->unk0.x = arg8; + temp_r31->unk0.y = arg9; + temp_r31->unk0.z = argA; + } + } +} + +void fn_1_B940(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + s32 var_r29; + unkSubStruct* var_r31; + unkSubStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_36C.unk40[arg0]; + var_r31 = temp_r30->unk3C; + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { + var_r31->unk0.x = arg8; + var_r31->unk0.y = arg9; + var_r31->unk0.z = argA; + } + } +} + +void fn_1_B9B4(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + unkSubStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + temp_r31->unkC.x += arg8; + temp_r31->unkC.y += arg9; + temp_r31->unkC.z += argA; + if (temp_r31->unk2 == 1) { + temp_r31->unk3C->unk0 = temp_r31->unkC; + } + } +} + +void fn_1_BA38(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + unkSubStruct* temp_r31; + unkSubStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_36C.unk40[arg0]; + if (temp_r30->unk2 > arg1) { + temp_r31 = &temp_r30->unk3C[arg1]; + temp_r31->unk0.x += arg8; + temp_r31->unk0.y += arg9; + temp_r31->unk0.z += argA; + } + } +} + +void fn_1_BAC0(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + s32 var_r29; + unkSubStruct* var_r31; + unkSubStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_36C.unk40[arg0]; + var_r31 = temp_r30->unk3C; + + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { + var_r31->unk0.x += arg8; + var_r31->unk0.y += arg9; + var_r31->unk0.z += argA; + } + } +} + +void fn_1_BB4C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + unkSubStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + temp_r31->unk18.x = arg8; + temp_r31->unk18.y = arg9; + temp_r31->unk18.z = argA; + if (temp_r31->unk2 == 1) { + temp_r31->unk3C->unkC = temp_r31->unk18; + } + } +} + +void fn_1_BBB8(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + unkSubStruct* temp_r31; + unkSubStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_36C.unk40[arg0]; + if (temp_r30->unk2 > arg1) { + temp_r31 = &temp_r30->unk3C[arg1]; + temp_r31->unkC.x = arg8; + temp_r31->unkC.y = arg9; + temp_r31->unkC.z = argA; + } + } +} + +void fn_1_BC28(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + s32 var_r29; + unkSubStruct* var_r31; + unkSubStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_36C.unk40[arg0]; + var_r31 = temp_r30->unk3C; + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { + var_r31->unkC.x = arg8; + var_r31->unkC.y = arg9; + var_r31->unkC.z = argA; + } + } +} + +void fn_1_BC9C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + unkSubStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + temp_r31->unk24.x = arg8; + temp_r31->unk24.y = arg9; + temp_r31->unk24.z = argA; + if (temp_r31->unk2 == 1) { + temp_r31->unk3C->unk18 = temp_r31->unk24; + } + } +} + +void fn_1_BD08(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + unkSubStruct* temp_r31; + unkSubStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_36C.unk40[arg0]; + if (temp_r30->unk2 > arg1) { + temp_r31 = &temp_r30->unk3C[arg1]; + temp_r31->unk18.x = arg8; + temp_r31->unk18.y = arg9; + temp_r31->unk18.z = argA; + } + } +} + +void fn_1_BD78(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + s32 var_r29; + unkSubStruct* var_r31; + unkSubStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_36C.unk40[arg0]; + var_r31 = temp_r30->unk3C; + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { + var_r31->unk18.x = arg8; + var_r31->unk18.y = arg9; + var_r31->unk18.z = argA; + } + } +} + +void fn_1_BDEC(s16 arg0, s32 arg1) { + unkSubStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + temp_r31->unk8 |= arg1; + } +} + +void fn_1_BE30(s16 arg0, s16 arg1, s32 arg2) { + unkSubStruct* temp_r30; + unkSubStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + if (temp_r31->unk2 > arg1) { + temp_r30 = &temp_r31->unk3C[arg1]; + temp_r30->unk34 |= arg2; + } + } +} + +void fn_1_BEA0(s16 arg0, s32 arg1) { + s32 var_r30; + unkSubStruct* temp_r29; + unkSubStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + temp_r29 = temp_r31->unk3C; + + for (var_r30 = 0; var_r30 < temp_r31->unk2; var_r30++) { + temp_r29->unk34 |= arg1; + } + } +} + +void fn_1_BF10(s16 arg0, u32 arg1) { + unkSubStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + temp_r31->unk8 &= ~arg1; + } +} + +void fn_1_BF54(s16 arg0, s16 arg1, u32 arg2) { + unkSubStruct* temp_r30; + unkSubStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + if (temp_r31->unk2 > arg1) { + temp_r30 = &temp_r31->unk3C[arg1]; + temp_r30->unk34 &= ~arg2; + } + } +} + +void fn_1_BFC4(s16 arg0, u32 arg1) { + s32 var_r30; + unkSubStruct* temp_r29; + unkSubStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + temp_r29 = temp_r31->unk3C; + + for (var_r30 = 0; var_r30 < temp_r31->unk2; var_r30++) { + temp_r29->unk34 &= ~arg1; + } + } +} + +s32 fn_1_C034(s16 arg0, s32 arg1) { + unkSubStruct2* temp_r31; + + if (arg0 == 0) { + return 0; + } + + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + if ((temp_r31->unk8 & arg1) != 0) { + return 1; + } + return 0; +} + +s16 fn_1_C090(s16 arg0, s16 arg1, s32 arg2) { + unkSubStruct* temp_r30; + unkSubStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + if (temp_r31->unk2 > arg1) { + temp_r30 = &temp_r31->unk3C[arg1]; + if ((temp_r30->unk34 & arg2) != 0) { + arg0 = 1; + } else { + arg0 = 0; + } + } + } + return arg0; +} + +void fn_1_C110(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) { + unkSubStruct* temp_r31; + unkSubStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_36C.unk40[arg0]; + if (temp_r30->unk2 > arg1) { + temp_r31 = &temp_r30->unk3C[arg1]; + temp_r31->unk50.r = arg2; + temp_r31->unk50.g = arg3; + temp_r31->unk50.b = arg4; + temp_r31->unk50.a = arg5; + } + } +} + +void fn_1_C184(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) { + s32 var_r29; + unkSubStruct* var_r31; + unkSubStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_36C.unk40[arg0]; + var_r31 = temp_r30->unk3C; + + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { + var_r31->unk50.r = arg1; + var_r31->unk50.g = arg2; + var_r31->unk50.b = arg3; + var_r31->unk50.a = arg4; + } + } +} + +void fn_1_C1FC(s16 arg0, s16 arg1, u8 arg2) { + unkSubStruct* temp_r30; + unkSubStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + if (temp_r31->unk2 > arg1) { + temp_r30 = &temp_r31->unk3C[arg1]; + temp_r30->unk30 = arg2; + } + } +} + +void fn_1_C264(s16 arg0, u8 arg1) { + s32 var_r29; + unkSubStruct2* temp_r31; + unkSubStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + var_r30 = temp_r31->unk3C; + + for (var_r29 = 0; var_r29 < temp_r31->unk2; var_r29++, var_r30++) { + var_r30->unk30 = arg1; + } + } +} + +void fn_1_C2D0(s16 arg0, s16 arg1, u8 arg2) { + unkSubStruct2* temp_r31; + unkSubStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + if (temp_r31->unk2 > arg1) { + var_r30 = &temp_r31->unk3C[arg1]; + var_r30->unk31 = arg2; + } + } +} + +void fn_1_C338(s16 arg0, u8 arg1) { + s32 var_r29; + unkSubStruct2* temp_r31; + unkSubStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + var_r30 = temp_r31->unk3C; + + for (var_r29 = 0; var_r29 < temp_r31->unk2; var_r29++, var_r30++) { + var_r30->unk31 = arg1; + } + } +} + +void fn_1_C3A4(s16 arg0, s16 arg1, u8 arg2) { + unkSubStruct2* temp_r31; + unkSubStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + if (temp_r31->unk2 > arg1) { + var_r30 = &temp_r31->unk3C[arg1]; + var_r30->unk54->unk24 = arg2; + } + } +} + +void fn_1_C410(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { + unkSubStruct2* temp_r31; + unkSubStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + if (temp_r31->unk2 > arg1) { + var_r30 = &temp_r31->unk3C[arg1]; + var_r30->unk54[arg2].unk24 = arg3; + } + } +} + +void fn_1_C488(s16 arg0, u8 arg1) { + s32 var_r28; + s32 var_r30; + unkSubStruct* var_r31; + unkSubStruct2* temp_r29; + + if (arg0 != 0) { + temp_r29 = &lbl_1_bss_36C.unk40[arg0]; + var_r31 = (unkSubStruct*)&temp_r29->unk3C; //! BAD WHY + (void)temp_r29; + + for (var_r28 = 0; var_r28 < temp_r29->unk2; var_r28++, var_r31++) { + for (var_r30 = 0; var_r30 < var_r31->unk33; var_r30++) { + var_r31->unk54[var_r30].unk24 = arg1; + } + } + } +} + +void fn_1_C520(s16 arg0, s16 arg1, f32 arg8) { + unkSubStruct2* temp_r31; + unkSubStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + if (temp_r31->unk2 > arg1) { + var_r30 = &temp_r31->unk3C[arg1]; + var_r30->unk54->unk28 = arg8; + } + } +} + +void fn_1_C58C(s16 arg0, s16 arg1, u8 arg2, f32 arg8) { + unkSubStruct2* temp_r31; + unkSubStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + if (temp_r31->unk2 > arg1) { + var_r30 = &temp_r31->unk3C[arg1]; + var_r30->unk54[arg2].unk28 = arg8; + } + } +} + +void fn_1_C604(s16 arg0, f32 arg8) { + unkSubStruct* volatile sp8; + s32 var_r29; + unkSubStruct2* temp_r31; + s32 var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + sp8 = temp_r31->unk3C; + + for (var_r29 = 0; var_r29 < temp_r31->unk2; var_r29++) { + for (var_r30 = 0; var_r30 < sp8->unk33; var_r30++) { + sp8->unk54[var_r30].unk28 = arg8; + } + } + } +} + +void fn_1_C69C(s16 arg0, s16 arg1, u8 arg2) { + unkSubStruct2* temp_r31; + unkSubStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + if (temp_r31->unk2 > arg1) { + var_r30 = &temp_r31->unk3C[arg1]; + var_r30->unk54->unk0 = arg2; + } + } +} + +void fn_1_C70C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { + unkSubStruct2* temp_r31; + unkSubStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + if (temp_r31->unk2 > arg1) { + var_r30 = &temp_r31->unk3C[arg1]; + var_r30->unk54[arg2].unk0 = arg3; + } + } +} + +// ... + +void fn_1_C784(s16 arg0, u8 arg1) { + unkSubStruct* volatile sp8; + s32 var_r29; + unkSubStruct2* temp_r31; + s32 var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_36C.unk40[arg0]; + sp8 = temp_r31->unk3C; + for (var_r29 = 0; var_r29 < temp_r31->unk2; var_r29++) { + for (var_r30 = 0; var_r30 < sp8->unk33; var_r30++) { + sp8->unk54[var_r30].unk0 = arg1; + } + } + } +} + +void fn_1_C81C(s16 arg0, u8 arg1) { + unkSubStruct3* var_r31; + if (arg0 != 0) { + var_r31 = &lbl_1_bss_36C.unk3C[arg0]; + var_r31->unk4 = arg1; + } } \ No newline at end of file From e430a302e23219f27df6c0cba5a38edfc6782db6 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Tue, 22 Oct 2024 17:18:13 -0400 Subject: [PATCH 079/311] start work on m443Dll --- include/REL/m443Dll.h | 6 ++++++ src/REL/m443Dll/main.c | 1 + src/REL/m443Dll/map.c | 1 + src/REL/m443Dll/player.c | 1 + 4 files changed, 9 insertions(+) create mode 100644 include/REL/m443Dll.h create mode 100644 src/REL/m443Dll/main.c create mode 100644 src/REL/m443Dll/map.c create mode 100644 src/REL/m443Dll/player.c diff --git a/include/REL/m443Dll.h b/include/REL/m443Dll.h new file mode 100644 index 00000000..41a9e3fb --- /dev/null +++ b/include/REL/m443Dll.h @@ -0,0 +1,6 @@ +#ifndef M443DLL_H +#define M443DLL_H + +#include "dolphin.h" + +#endif \ No newline at end of file diff --git a/src/REL/m443Dll/main.c b/src/REL/m443Dll/main.c new file mode 100644 index 00000000..eb768e83 --- /dev/null +++ b/src/REL/m443Dll/main.c @@ -0,0 +1 @@ +#include "m443Dll.h" \ No newline at end of file diff --git a/src/REL/m443Dll/map.c b/src/REL/m443Dll/map.c new file mode 100644 index 00000000..eb768e83 --- /dev/null +++ b/src/REL/m443Dll/map.c @@ -0,0 +1 @@ +#include "m443Dll.h" \ No newline at end of file diff --git a/src/REL/m443Dll/player.c b/src/REL/m443Dll/player.c new file mode 100644 index 00000000..eb768e83 --- /dev/null +++ b/src/REL/m443Dll/player.c @@ -0,0 +1 @@ +#include "m443Dll.h" \ No newline at end of file From 9d5e8cf129c9e34fc16cf060b6b663562ec71347 Mon Sep 17 00:00:00 2001 From: Luke Street Date: Tue, 22 Oct 2024 22:36:25 -0600 Subject: [PATCH 080/311] Update dtk-template & README.md --- .github/workflows/build.yml | 5 +- .gitignore | 40 +- .vscode.example/c_cpp_properties.json | 23 - .vscode.example/settings.json | 26 - .vscode/extensions.json | 12 + .vscode/settings.json | 33 ++ .vscode/tasks.json | 16 + README.md | 40 +- config/GMPE01_00/config.yml | 201 ++++---- configure.py | 34 +- tools/decompctx.py | 2 +- tools/download_tool.py | 1 + tools/project.py | 681 ++++++++++++++++++-------- 13 files changed, 726 insertions(+), 388 deletions(-) delete mode 100644 .vscode.example/c_cpp_properties.json delete mode 100644 .vscode.example/settings.json create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4dfcd1c6..91dcc72b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,7 +6,7 @@ on: jobs: build: - container: ghcr.io/rainchus/marioparty4-build:main + container: ghcr.io/mariopartyrd/mp-gc-build:main runs-on: ubuntu-latest strategy: @@ -15,11 +15,10 @@ jobs: version: [GMPE01_00] steps: - # Checkout the repository (shallow clone) + # Checkout the repository - name: Checkout uses: actions/checkout@v4 with: - fetch-depth: 0 submodules: recursive # Set Git config diff --git a/.gitignore b/.gitignore index 81558d47..275db754 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,35 @@ +# IDE folders +.idea/ +.vs/ + +# Caches __pycache__ -.idea -.vscode -.ninja_* -*.exe -build -build.ninja -objdiff.json +.mypy_cache +.cache/ + +# Original files orig/*/* !orig/*/.gitkeep +*.dol +*.rel +*.elf +*.o +*.map +*.MAP + +# Build files +build/ +.ninja_* +build.ninja + +# decompctx output +ctx.* +*.ctx + +# Generated configs +objdiff.json +compile_commands.json + +# Miscellaneous /*.txt -ctx.c -tools/output/* \ No newline at end of file +*.exe diff --git a/.vscode.example/c_cpp_properties.json b/.vscode.example/c_cpp_properties.json deleted file mode 100644 index 3bace88c..00000000 --- a/.vscode.example/c_cpp_properties.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/include/**", - "${workspaceFolder}/build/GMPE01_00/include/**" - ], - "cStandard": "c99", - "cppStandard": "c++98", - "intelliSenseMode": "linux-clang-x86", - "compilerPath": "", - "configurationProvider": "ms-vscode.makefile-tools", - "browse": { - "path": [ - "${workspaceFolder}/include" - ], - "limitSymbolsToIncludedHeaders": true - } - } - ], - "version": 4 -} diff --git a/.vscode.example/settings.json b/.vscode.example/settings.json deleted file mode 100644 index 60e7e27d..00000000 --- a/.vscode.example/settings.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "[c]": { - "files.encoding": "utf8", - "editor.defaultFormatter": "xaver.clang-format" - }, - "[cpp]": { - "files.encoding": "utf8", - "editor.defaultFormatter": "xaver.clang-format" - }, - "[python]": { - "editor.defaultFormatter": "ms-python.black-formatter" - }, - "files.insertFinalNewline": true, - "files.trimFinalNewlines": true, - "files.associations": { - "*.inc": "cpp" - }, - "search.useIgnoreFiles": false, - "search.exclude": { - "build/*/config.json": true, - "build/**/*.MAP": true, - "build.ninja": true, - ".ninja_*": true, - "objdiff.json": true - } -} \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..c20797ff --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,12 @@ +{ + "recommendations": [ + "llvm-vs-code-extensions.vscode-clangd", + "ms-python.black-formatter", + "ms-python.flake8", + ], + "unwantedRecommendations": [ + "ms-vscode.cmake-tools", + "ms-vscode.cpptools-extension-pack", + "ms-vscode.cpptools", + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..e0b63102 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,33 @@ +{ + "[c]": { + "files.encoding": "utf8", + "editor.defaultFormatter": "llvm-vs-code-extensions.vscode-clangd" + }, + "[cpp]": { + "files.encoding": "utf8", + "editor.defaultFormatter": "llvm-vs-code-extensions.vscode-clangd" + }, + "[python]": { + "editor.defaultFormatter": "ms-python.black-formatter" + }, + "files.insertFinalNewline": true, + "files.trimFinalNewlines": true, + "files.associations": { + "*.inc": "c", + ".clangd": "yaml" + }, + "search.useIgnoreFiles": false, + "search.exclude": { + "build/*/config.json": true, + "build/**/*.MAP": true, + "build.ninja": true, + ".ninja_*": true, + "objdiff.json": true, + "progress.json": true, + "report.json": true, + "compile_commands.json": true, + }, + // Disable C/C++ IntelliSense, use clangd instead + "C_Cpp.intelliSenseEngine": "disabled", + "cmake.ignoreCMakeListsMissing": true, +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 00000000..6dc12130 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,16 @@ +{ + // Use Ctrl+Shift+B to run build tasks. + // Or "Run Build Task" in the Command Palette. + "version": "2.0.0", + "tasks": [ + { + "label": "ninja", + "type": "shell", + "command": "ninja", + "group": { + "kind": "build", + "isDefault": true + } + }, + ] +} diff --git a/README.md b/README.md index bca1a5fb..af12d2d7 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,13 @@ Mario Party 4 -[![Build Status]][actions] ![Progress] ![DOL Progress] ![RELs Progress] [![Discord Badge]][discord] +[![Build Status]][actions] [![Progress]][progress site] [![DOL Progress]][progress site] [![RELs Progress]][progress site] [![Discord Badge]][discord] ============= -[Build Status]: https://github.com/Rainchus/marioparty4/actions/workflows/build.yml/badge.svg -[actions]: https://github.com/Rainchus/marioparty4/actions/workflows/build.yml -[Progress]: https://img.shields.io/endpoint?label=Code&url=https%3A%2F%2Fprogress.decomp.club%2Fdata%2Fmarioparty4%2FGMPE01_00%2Fall%2F%3Fmode%3Dshield%26measure%3Dcode -[DOL Progress]: https://img.shields.io/endpoint?label=DOL&url=https%3A%2F%2Fprogress.decomp.club%2Fdata%2Fmarioparty4%2FGMPE01_00%2Fdol%2F%3Fmode%3Dshield%26measure%3Dcode -[RELs Progress]: https://img.shields.io/endpoint?label=RELs&url=https%3A%2F%2Fprogress.decomp.club%2Fdata%2Fmarioparty4%2FGMPE01_00%2Fmodules%2F%3Fmode%3Dshield%26measure%3Dcode +[Build Status]: https://github.com/mariopartyrd/marioparty4/actions/workflows/build.yml/badge.svg +[actions]: https://github.com/mariopartyrd/marioparty4/actions/workflows/build.yml +[Progress]: https://decomp.dev/mariopartyrd/marioparty4.svg?mode=shield&measure=code&label=Code&category=all +[DOL Progress]: https://decomp.dev/mariopartyrd/marioparty4.svg?mode=shield&measure=code&label=DOL&category=dol +[RELs Progress]: https://decomp.dev/mariopartyrd/marioparty4.svg?mode=shield&measure=code&label=RELs&category=modules +[progress site]: https://decomp.dev/mariopartyrd/marioparty4 [Discord Badge]: https://img.shields.io/discord/994839212618690590?color=%237289DA&logo=discord&logoColor=%23FFFFFF [discord]: https://discord.gg/T4faGveujK @@ -59,28 +60,29 @@ Building - Clone the repository: ``` - git clone https://github.com/Rainchus/marioparty4.git + git clone https://github.com/mariopartyrd/marioparty4.git ``` -- Using [Dolphin Emulator](https://dolphin-emu.org/), extract your game to `orig/GMPE01_00`. -![](assets/dolphin-extract.png) - - To save space, the only necessary files are the following. Any others can be deleted. - - `sys/main.dol` - - `files/dll/*.rel` + +- Initialize and update submodules: + + ```sh + git submodule update --init --recursive + ``` + +- Copy your game's disc image to `orig/GMPE01_00`. + - Supported formats: ISO (GCM), RVZ, WIA, WBFS, CISO, NFS, GCZ, TGC + - After the initial build, the disc image can be deleted to save space. + - Configure: ``` python configure.py ``` - To use a version other than `GMPE01_00` (USA), specify it with `--version`. + - Build: ``` ninja ``` -Visual Studio Code -================== - -If desired, use the recommended Visual Studio Code settings by renaming the `.vscode.example` directory to `.vscode`. - Diffing ======= @@ -89,5 +91,3 @@ Once the initial build succeeds, an `objdiff.json` should exist in the project r Download the latest release from [encounter/objdiff](https://github.com/encounter/objdiff). Under project settings, set `Project directory`. The configuration should be loaded automatically. Select an object from the left sidebar to begin diffing. Changes to the project will rebuild automatically: changes to source files, headers, `configure.py`, `splits.txt` or `symbols.txt`. - -![](assets/objdiff.png) diff --git a/config/GMPE01_00/config.yml b/config/GMPE01_00/config.yml index 8e687a60..81fc8915 100644 --- a/config/GMPE01_00/config.yml +++ b/config/GMPE01_00/config.yml @@ -1,4 +1,5 @@ -object: orig/GMPE01_00/sys/main.dol +object_base: orig/GMPE01_00 +object: sys/main.dol hash: ff8d894776d37167e454ae3f0c9e644407c1e6b1 symbols: config/GMPE01_00/symbols.txt splits: config/GMPE01_00/splits.txt @@ -7,12 +8,12 @@ mw_comment_version: 10 # GC 2.6 linker force_active: [__register_global_object, lbl_801D40D0, _kerent] modules: -- object: orig/GMPE01_00/files/dll/_minigameDll.rel +- object: files/dll/_minigameDll.rel hash: 3fbbebc0440f0d91432ecd6a27ef68d5309b87b6 symbols: config/GMPE01_00/rels/_minigameDll/symbols.txt splits: config/GMPE01_00/rels/_minigameDll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/bootDll.rel +- object: files/dll/bootDll.rel hash: bdfca4f9bce60519badca0d2d0a5b71f6d99706f symbols: config/GMPE01_00/rels/bootDll/symbols.txt splits: config/GMPE01_00/rels/bootDll/splits.txt @@ -21,487 +22,487 @@ modules: - symbol: logoNintendoData binary: logoNintendoData.bin header: logoNintendoData.inc -- object: orig/GMPE01_00/files/dll/instDll.rel +- object: files/dll/instDll.rel hash: f09399fee83c63abfe2adb25341152adad959a93 symbols: config/GMPE01_00/rels/instDll/symbols.txt splits: config/GMPE01_00/rels/instDll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m302Dll.rel +- object: files/dll/m302Dll.rel hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 symbols: config/GMPE01_00/rels/m302Dll/symbols.txt splits: config/GMPE01_00/rels/m302Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m303Dll.rel +- object: files/dll/m303Dll.rel hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 symbols: config/GMPE01_00/rels/m303Dll/symbols.txt splits: config/GMPE01_00/rels/m303Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m330Dll.rel +- object: files/dll/m330Dll.rel hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 symbols: config/GMPE01_00/rels/m330Dll/symbols.txt splits: config/GMPE01_00/rels/m330Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m333Dll.rel +- object: files/dll/m333Dll.rel hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 symbols: config/GMPE01_00/rels/m333Dll/symbols.txt splits: config/GMPE01_00/rels/m333Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m402Dll.rel +- object: files/dll/m402Dll.rel hash: 136d192a1464e593cd0b767691dfa012c58730ed symbols: config/GMPE01_00/rels/m402Dll/symbols.txt splits: config/GMPE01_00/rels/m402Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m403Dll.rel +- object: files/dll/m403Dll.rel hash: b834eb5f8a2749f3be52aa9023cc81403075eba9 symbols: config/GMPE01_00/rels/m403Dll/symbols.txt splits: config/GMPE01_00/rels/m403Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m404Dll.rel +- object: files/dll/m404Dll.rel hash: c46b7814cefa8e5dee8dfd1883e369877ac78c0c symbols: config/GMPE01_00/rels/m404Dll/symbols.txt splits: config/GMPE01_00/rels/m404Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m405Dll.rel +- object: files/dll/m405Dll.rel hash: 7857e0822079d0c7bbfec756a7cf4206b754d100 symbols: config/GMPE01_00/rels/m405Dll/symbols.txt splits: config/GMPE01_00/rels/m405Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m406Dll.rel +- object: files/dll/m406Dll.rel hash: bea398ac8abe018dce80914e6b3d6d7578eb86bb symbols: config/GMPE01_00/rels/m406Dll/symbols.txt splits: config/GMPE01_00/rels/m406Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m407dll.rel +- object: files/dll/m407dll.rel hash: 6f63338c417ab62740a40f0968c03c570b440b8a symbols: config/GMPE01_00/rels/m407dll/symbols.txt splits: config/GMPE01_00/rels/m407dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m408Dll.rel +- object: files/dll/m408Dll.rel hash: 7a8ff34b4bcaff39037c9e2f717505cbc63d4230 symbols: config/GMPE01_00/rels/m408Dll/symbols.txt splits: config/GMPE01_00/rels/m408Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m409Dll.rel +- object: files/dll/m409Dll.rel hash: 984f031fc50121369d5b04d1ec2c54322efdf281 symbols: config/GMPE01_00/rels/m409Dll/symbols.txt splits: config/GMPE01_00/rels/m409Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m410Dll.rel +- object: files/dll/m410Dll.rel hash: 94e308e409038f7919177d190110ce589cc8a8e8 symbols: config/GMPE01_00/rels/m410Dll/symbols.txt splits: config/GMPE01_00/rels/m410Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m411Dll.rel +- object: files/dll/m411Dll.rel hash: 26ac81a3db9f3850bb43b23cdb7168dcddccaeea symbols: config/GMPE01_00/rels/m411Dll/symbols.txt splits: config/GMPE01_00/rels/m411Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m412Dll.rel +- object: files/dll/m412Dll.rel hash: 3ebb173a52aaea75acb414f73264e72a2943c6f8 symbols: config/GMPE01_00/rels/m412Dll/symbols.txt splits: config/GMPE01_00/rels/m412Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m413Dll.rel +- object: files/dll/m413Dll.rel hash: e59d4b66b1f57637c335b4745a696e3dbcb4bbe3 symbols: config/GMPE01_00/rels/m413Dll/symbols.txt splits: config/GMPE01_00/rels/m413Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m414Dll.rel +- object: files/dll/m414Dll.rel hash: f7fe1aa24c7b6b8ca2bb28922696c0392dc7d029 symbols: config/GMPE01_00/rels/m414Dll/symbols.txt splits: config/GMPE01_00/rels/m414Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m415Dll.rel +- object: files/dll/m415Dll.rel hash: 3c697b54ebdd01971b99af8c812b4850fa181f4f symbols: config/GMPE01_00/rels/m415Dll/symbols.txt splits: config/GMPE01_00/rels/m415Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m416Dll.rel +- object: files/dll/m416Dll.rel hash: d26526935455b26beb2b9eaed1bfae3f3f458c25 symbols: config/GMPE01_00/rels/m416Dll/symbols.txt splits: config/GMPE01_00/rels/m416Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m417Dll.rel +- object: files/dll/m417Dll.rel hash: b5c3805ec3cb023299ed09b782b92441085d0054 symbols: config/GMPE01_00/rels/m417Dll/symbols.txt splits: config/GMPE01_00/rels/m417Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m418Dll.rel +- object: files/dll/m418Dll.rel hash: 0d02610005c46ad4f47ff51f5e154f9b0d16a4f4 symbols: config/GMPE01_00/rels/m418Dll/symbols.txt splits: config/GMPE01_00/rels/m418Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m419Dll.rel +- object: files/dll/m419Dll.rel hash: bbceb138b8cc43e578179a7892801633892cb03c symbols: config/GMPE01_00/rels/m419Dll/symbols.txt splits: config/GMPE01_00/rels/m419Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m420dll.rel +- object: files/dll/m420dll.rel hash: 2ef4ee163bc2aa15f87c8c89afb4f28939f088c8 symbols: config/GMPE01_00/rels/m420dll/symbols.txt splits: config/GMPE01_00/rels/m420dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m421Dll.rel +- object: files/dll/m421Dll.rel hash: 216a99780a3915d7096385bbcddfc979ab3a4025 symbols: config/GMPE01_00/rels/m421Dll/symbols.txt splits: config/GMPE01_00/rels/m421Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m422Dll.rel +- object: files/dll/m422Dll.rel hash: 9ad72ba6c3ac277e521dca2fc1372a5d31c18930 symbols: config/GMPE01_00/rels/m422Dll/symbols.txt splits: config/GMPE01_00/rels/m422Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m423Dll.rel +- object: files/dll/m423Dll.rel hash: 377c6a56b3faf8f991ec4fccaf1972cb41910438 symbols: config/GMPE01_00/rels/m423Dll/symbols.txt splits: config/GMPE01_00/rels/m423Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m424Dll.rel +- object: files/dll/m424Dll.rel hash: 5814f59970268406bd86a86d0fee5a09359ab506 symbols: config/GMPE01_00/rels/m424Dll/symbols.txt splits: config/GMPE01_00/rels/m424Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m425Dll.rel +- object: files/dll/m425Dll.rel hash: ecaeae453393d228f2769aab9c022820bcdb58f1 symbols: config/GMPE01_00/rels/m425Dll/symbols.txt splits: config/GMPE01_00/rels/m425Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m426Dll.rel +- object: files/dll/m426Dll.rel hash: c240697a57cc08d34e27e89d8d3455454799e8b1 symbols: config/GMPE01_00/rels/m426Dll/symbols.txt splits: config/GMPE01_00/rels/m426Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m427Dll.rel +- object: files/dll/m427Dll.rel hash: c78a0857e9c44fb33bd4fdc3e392a15b4dec0431 symbols: config/GMPE01_00/rels/m427Dll/symbols.txt splits: config/GMPE01_00/rels/m427Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m428Dll.rel +- object: files/dll/m428Dll.rel hash: a1d5672d8ef0aac089dda00287fd68bf2bb67807 symbols: config/GMPE01_00/rels/m428Dll/symbols.txt splits: config/GMPE01_00/rels/m428Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m429Dll.rel +- object: files/dll/m429Dll.rel hash: d25f198ce04aa5ca7b54ada9de52f722bd751447 symbols: config/GMPE01_00/rels/m429Dll/symbols.txt splits: config/GMPE01_00/rels/m429Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m430Dll.rel +- object: files/dll/m430Dll.rel hash: 8bef3e2f51db3afa82dcaf64e209067a58c04bf9 symbols: config/GMPE01_00/rels/m430Dll/symbols.txt splits: config/GMPE01_00/rels/m430Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m431Dll.rel +- object: files/dll/m431Dll.rel hash: 7148ec21ca6e0aa8d213a1dce0aeb9d93a9b496c symbols: config/GMPE01_00/rels/m431Dll/symbols.txt splits: config/GMPE01_00/rels/m431Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m432Dll.rel +- object: files/dll/m432Dll.rel hash: 096f5a85bb837af68bd491e962eda7726d8d26a0 symbols: config/GMPE01_00/rels/m432Dll/symbols.txt splits: config/GMPE01_00/rels/m432Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m433Dll.rel +- object: files/dll/m433Dll.rel hash: c36f56264ab9cf74b882c2544cdb9b89f6a098cd symbols: config/GMPE01_00/rels/m433Dll/symbols.txt splits: config/GMPE01_00/rels/m433Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m434Dll.rel +- object: files/dll/m434Dll.rel hash: 55912c8441002b61701fc8c769f707c69e2740c1 symbols: config/GMPE01_00/rels/m434Dll/symbols.txt splits: config/GMPE01_00/rels/m434Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m435Dll.rel +- object: files/dll/m435Dll.rel hash: 56f1fc330e8b97fa426fac3d901b1feed946566e symbols: config/GMPE01_00/rels/m435Dll/symbols.txt splits: config/GMPE01_00/rels/m435Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m436Dll.rel +- object: files/dll/m436Dll.rel hash: e53f3d381bfb99351483e70b9d79c2e8676f73d5 symbols: config/GMPE01_00/rels/m436Dll/symbols.txt splits: config/GMPE01_00/rels/m436Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m437Dll.rel +- object: files/dll/m437Dll.rel hash: 404698b53acad1231e00d84d0196ddce8d9d9dd9 symbols: config/GMPE01_00/rels/m437Dll/symbols.txt splits: config/GMPE01_00/rels/m437Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m438Dll.rel +- object: files/dll/m438Dll.rel hash: 9bddf4b81b9a792260000abe2631da493a8b8564 symbols: config/GMPE01_00/rels/m438Dll/symbols.txt splits: config/GMPE01_00/rels/m438Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m439Dll.rel +- object: files/dll/m439Dll.rel hash: a2a18c9d26dedfa8e2ae003c3a2e1bdcc1cbd4cc symbols: config/GMPE01_00/rels/m439Dll/symbols.txt splits: config/GMPE01_00/rels/m439Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m440Dll.rel +- object: files/dll/m440Dll.rel hash: 227ca13bcd72059bdd506e9611d9b52f661af6c5 symbols: config/GMPE01_00/rels/m440Dll/symbols.txt splits: config/GMPE01_00/rels/m440Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m441Dll.rel +- object: files/dll/m441Dll.rel hash: d6cbf72115374e06ffea3f15001977c288a9c3fb symbols: config/GMPE01_00/rels/m441Dll/symbols.txt splits: config/GMPE01_00/rels/m441Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m442Dll.rel +- object: files/dll/m442Dll.rel hash: 347fcb836b5266dfe3d1088e1aa796c043b0fe60 symbols: config/GMPE01_00/rels/m442Dll/symbols.txt splits: config/GMPE01_00/rels/m442Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m443Dll.rel +- object: files/dll/m443Dll.rel hash: 77444c6739a4d9390f30ba56c5fcd82ee4efc0c2 symbols: config/GMPE01_00/rels/m443Dll/symbols.txt splits: config/GMPE01_00/rels/m443Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m444dll.rel +- object: files/dll/m444dll.rel hash: 76154b165cd86472ce3155028ea049ba0a0f3dcb symbols: config/GMPE01_00/rels/m444dll/symbols.txt splits: config/GMPE01_00/rels/m444dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m445Dll.rel +- object: files/dll/m445Dll.rel hash: d4d9f2aad53aa7f4e1c313438a0e3767f8e58eb9 symbols: config/GMPE01_00/rels/m445Dll/symbols.txt splits: config/GMPE01_00/rels/m445Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m446dll.rel +- object: files/dll/m446dll.rel hash: 4b16e5eff613eaf4cc98411809cd1f1578e33fd1 symbols: config/GMPE01_00/rels/m446dll/symbols.txt splits: config/GMPE01_00/rels/m446dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m447dll.rel +- object: files/dll/m447dll.rel hash: 775ca8f8b3be867ad67f91bc3b6ebcc8c3068d2b symbols: config/GMPE01_00/rels/m447dll/symbols.txt splits: config/GMPE01_00/rels/m447dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m448Dll.rel +- object: files/dll/m448Dll.rel hash: e6f7586dadbe3f5b5045c0bdf2fe618d42ef3a44 symbols: config/GMPE01_00/rels/m448Dll/symbols.txt splits: config/GMPE01_00/rels/m448Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m449Dll.rel +- object: files/dll/m449Dll.rel hash: e797c2ff132ab35e768be62cb62219592464ca9d symbols: config/GMPE01_00/rels/m449Dll/symbols.txt splits: config/GMPE01_00/rels/m449Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m450Dll.rel +- object: files/dll/m450Dll.rel hash: f2ea7da07cf8be4f449c97b829d3231911e158a0 symbols: config/GMPE01_00/rels/m450Dll/symbols.txt splits: config/GMPE01_00/rels/m450Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m451Dll.rel +- object: files/dll/m451Dll.rel hash: 3f82fd24071582b6494a9f99750c0bc3c10d502e symbols: config/GMPE01_00/rels/m451Dll/symbols.txt splits: config/GMPE01_00/rels/m451Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m453Dll.rel +- object: files/dll/m453Dll.rel hash: 49ef28c2862000fae4d8efd8fec0ff9b41f24461 symbols: config/GMPE01_00/rels/m453Dll/symbols.txt splits: config/GMPE01_00/rels/m453Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m455Dll.rel +- object: files/dll/m455Dll.rel hash: e0b21cfbe592955c84662ff50d8a33e147403906 symbols: config/GMPE01_00/rels/m455Dll/symbols.txt splits: config/GMPE01_00/rels/m455Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m456Dll.rel +- object: files/dll/m456Dll.rel hash: 97d5701b151c6ad8cf8cea6e776973daa95eea34 symbols: config/GMPE01_00/rels/m456Dll/symbols.txt splits: config/GMPE01_00/rels/m456Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m457Dll.rel +- object: files/dll/m457Dll.rel hash: d4a411f9ef850f52506afd1ad1de88d2d8de361b symbols: config/GMPE01_00/rels/m457Dll/symbols.txt splits: config/GMPE01_00/rels/m457Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m458Dll.rel +- object: files/dll/m458Dll.rel hash: 7ac361c5a04f83d46f516a13a43e43b59b929435 symbols: config/GMPE01_00/rels/m458Dll/symbols.txt splits: config/GMPE01_00/rels/m458Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m459dll.rel +- object: files/dll/m459dll.rel hash: 1aafc4f38ddfee64ea8f7dda7cbd7113e86997ba symbols: config/GMPE01_00/rels/m459dll/symbols.txt splits: config/GMPE01_00/rels/m459dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m460Dll.rel +- object: files/dll/m460Dll.rel hash: 5d28f1a87edee5216b9bb28d9cbff2b22d617747 symbols: config/GMPE01_00/rels/m460Dll/symbols.txt splits: config/GMPE01_00/rels/m460Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m461Dll.rel +- object: files/dll/m461Dll.rel hash: ab058151bd25600f05f8b6fedbec1c7448175123 symbols: config/GMPE01_00/rels/m461Dll/symbols.txt splits: config/GMPE01_00/rels/m461Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m462Dll.rel +- object: files/dll/m462Dll.rel hash: 78d6ab00677791ece684a0c149d1ae72efc52d1c symbols: config/GMPE01_00/rels/m462Dll/symbols.txt splits: config/GMPE01_00/rels/m462Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/m463Dll.rel +- object: files/dll/m463Dll.rel hash: 32010595b4fd0b75293fc46b9026c5613d0ea4c2 symbols: config/GMPE01_00/rels/m463Dll/symbols.txt splits: config/GMPE01_00/rels/m463Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/mentDll.rel +- object: files/dll/mentDll.rel hash: 9e63dd96943ffd2747be5aad924b95892d46051a symbols: config/GMPE01_00/rels/mentDll/symbols.txt splits: config/GMPE01_00/rels/mentDll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/messDll.rel +- object: files/dll/messDll.rel hash: 7e119de456b3557dcf514c70bd7ab81dc5f9cf54 symbols: config/GMPE01_00/rels/messDll/symbols.txt splits: config/GMPE01_00/rels/messDll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/mgmodedll.rel +- object: files/dll/mgmodedll.rel hash: 376c78e2d1b7d7a429959c532e9cb92c98f73b7e symbols: config/GMPE01_00/rels/mgmodedll/symbols.txt splits: config/GMPE01_00/rels/mgmodedll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/modeltestDll.rel +- object: files/dll/modeltestDll.rel hash: 8de28c0f254a2c574c4da9b6a3a17e5ad7ffe1f9 symbols: config/GMPE01_00/rels/modeltestDll/symbols.txt splits: config/GMPE01_00/rels/modeltestDll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/modeseldll.rel +- object: files/dll/modeseldll.rel hash: bdf8cd57fa23f07c429393817037ade04e2c6024 symbols: config/GMPE01_00/rels/modeseldll/symbols.txt splits: config/GMPE01_00/rels/modeseldll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/mpexDll.rel +- object: files/dll/mpexDll.rel hash: 4524e63b63510b42bca907f72e67affddec856f9 symbols: config/GMPE01_00/rels/mpexDll/symbols.txt splits: config/GMPE01_00/rels/mpexDll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/msetupDll.rel +- object: files/dll/msetupDll.rel hash: 86ff8288bb92472376d02cade1d3c9603b613c57 symbols: config/GMPE01_00/rels/msetupDll/symbols.txt splits: config/GMPE01_00/rels/msetupDll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/mstory2Dll.rel +- object: files/dll/mstory2Dll.rel hash: 7579ff7aa9638488d876dbb61d3e4b868974a040 symbols: config/GMPE01_00/rels/mstory2Dll/symbols.txt splits: config/GMPE01_00/rels/mstory2Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/mstory3Dll.rel +- object: files/dll/mstory3Dll.rel hash: 951f1951eac515fce1d3314059f27fdc7b39f035 symbols: config/GMPE01_00/rels/mstory3Dll/symbols.txt splits: config/GMPE01_00/rels/mstory3Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/mstory4Dll.rel +- object: files/dll/mstory4Dll.rel hash: 7f9cc4a18a137f861b2c326b099c02ba4e5bd94b symbols: config/GMPE01_00/rels/mstory4Dll/symbols.txt splits: config/GMPE01_00/rels/mstory4Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/mstoryDll.rel +- object: files/dll/mstoryDll.rel hash: 979a83f2d6f5200e2de4333ec8f943701a250131 symbols: config/GMPE01_00/rels/mstoryDll/symbols.txt splits: config/GMPE01_00/rels/mstoryDll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/nisDll.rel +- object: files/dll/nisDll.rel hash: d74a5147245a1877b140ee2af7f75b2b6c90892d symbols: config/GMPE01_00/rels/nisDll/symbols.txt splits: config/GMPE01_00/rels/nisDll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/option.rel +- object: files/dll/option.rel hash: 5c6973fe7e0271885a5a87d87d4e7164ef711abb symbols: config/GMPE01_00/rels/option/symbols.txt splits: config/GMPE01_00/rels/option/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/present.rel +- object: files/dll/present.rel hash: ddb8d8a825578a588276b9d4f65eceee26f91253 symbols: config/GMPE01_00/rels/present/symbols.txt splits: config/GMPE01_00/rels/present/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/resultDll.rel +- object: files/dll/resultDll.rel hash: 41a820438884ae8566f34f895198a186aae60305 symbols: config/GMPE01_00/rels/resultDll/symbols.txt splits: config/GMPE01_00/rels/resultDll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/safDll.rel +- object: files/dll/safDll.rel hash: f34c104078b41971412cb09b37c4dc9526be02e3 symbols: config/GMPE01_00/rels/safDll/symbols.txt splits: config/GMPE01_00/rels/safDll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/selmenuDll.rel +- object: files/dll/selmenuDll.rel hash: 81a00a71b8d1ab22bfd3df10d815c87ba618ec84 symbols: config/GMPE01_00/rels/selmenuDll/symbols.txt splits: config/GMPE01_00/rels/selmenuDll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/staffDll.rel +- object: files/dll/staffDll.rel hash: a6210fbcdf3d7f0063f3052e2ae525abacac08e7 symbols: config/GMPE01_00/rels/staffDll/symbols.txt splits: config/GMPE01_00/rels/staffDll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/subchrselDll.rel +- object: files/dll/subchrselDll.rel hash: 7488bc249dc7c656f60105e4d24c4011983c2ba2 symbols: config/GMPE01_00/rels/subchrselDll/symbols.txt splits: config/GMPE01_00/rels/subchrselDll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/w01Dll.rel +- object: files/dll/w01Dll.rel hash: d3de36269886995d959e1fd58d8ad806843c8819 symbols: config/GMPE01_00/rels/w01Dll/symbols.txt splits: config/GMPE01_00/rels/w01Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/w02Dll.rel +- object: files/dll/w02Dll.rel hash: 750c4d6cd6a49d290f5cc63432d4f65642fbd7e4 symbols: config/GMPE01_00/rels/w02Dll/symbols.txt splits: config/GMPE01_00/rels/w02Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/w03Dll.rel +- object: files/dll/w03Dll.rel hash: f9e8d9c4581d44488adaffa3d46d9bc835d4f9bd symbols: config/GMPE01_00/rels/w03Dll/symbols.txt splits: config/GMPE01_00/rels/w03Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/w04Dll.rel +- object: files/dll/w04Dll.rel hash: 821126eeb7054150744b925cc4cb06c751ddcefd symbols: config/GMPE01_00/rels/w04Dll/symbols.txt splits: config/GMPE01_00/rels/w04Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/w05Dll.rel +- object: files/dll/w05Dll.rel hash: d29f7ccadcba23c8446d05101c4efa5caba26dfd symbols: config/GMPE01_00/rels/w05Dll/symbols.txt splits: config/GMPE01_00/rels/w05Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/w06Dll.rel +- object: files/dll/w06Dll.rel hash: d11a7a6d44189ba8d1e3a7168ea640ea9f2152fe symbols: config/GMPE01_00/rels/w06Dll/symbols.txt splits: config/GMPE01_00/rels/w06Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/w10Dll.rel +- object: files/dll/w10Dll.rel hash: 54bb23228b04c5aaa6aa7c8ca1f846baec5a1f2c symbols: config/GMPE01_00/rels/w10Dll/symbols.txt splits: config/GMPE01_00/rels/w10Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/w20Dll.rel +- object: files/dll/w20Dll.rel hash: 98cc41456afa9e1ccbb8e03718b8d3cb64e4e86f symbols: config/GMPE01_00/rels/w20Dll/symbols.txt splits: config/GMPE01_00/rels/w20Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/w21Dll.rel +- object: files/dll/w21Dll.rel hash: b888f2c6703e680699ff8c59ad9200b9d78d30a1 symbols: config/GMPE01_00/rels/w21Dll/symbols.txt splits: config/GMPE01_00/rels/w21Dll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/ztardll.rel +- object: files/dll/ztardll.rel hash: 87d9fee70ed4f011e0b30e05156d087204cf686f symbols: config/GMPE01_00/rels/ztardll/symbols.txt splits: config/GMPE01_00/rels/ztardll/splits.txt links: [] -- object: orig/GMPE01_00/files/dll/E3setupDLL.rel +- object: files/dll/E3setupDLL.rel hash: 234e07cee1491c7060e30805681bf5f39150122d symbols: config/GMPE01_00/rels/E3setupDLL/symbols.txt splits: config/GMPE01_00/rels/E3setupDLL/splits.txt links: [_minigameDll] -- object: orig/GMPE01_00/files/dll/m300Dll.rel +- object: files/dll/m300Dll.rel hash: eba8a17e8b263bc9cd601b1aea7e698a8785416a symbols: config/GMPE01_00/rels/m300Dll/symbols.txt splits: config/GMPE01_00/rels/m300Dll/splits.txt links: [_minigameDll] -- object: orig/GMPE01_00/files/dll/m401Dll.rel +- object: files/dll/m401Dll.rel hash: f3ec526c25986a3fcf7dfbc8c463626839a3a801 symbols: config/GMPE01_00/rels/m401Dll/symbols.txt splits: config/GMPE01_00/rels/m401Dll/splits.txt diff --git a/configure.py b/configure.py index 0de9c77d..2fe8e8ee 100644 --- a/configure.py +++ b/configure.py @@ -16,7 +16,15 @@ import argparse import sys from pathlib import Path from typing import Any, Dict, List -from tools.project import * + +from tools.project import ( + Object, + ProgressCategory, + ProjectConfig, + calculate_progress, + generate_build, + is_windows, +) # Game versions DEFAULT_VERSION = 0 @@ -105,6 +113,12 @@ parser.add_argument( action="store_true", help="builds equivalent (but non-matching) or modded objects", ) +parser.add_argument( + "--no-progress", + dest="progress", + action="store_false", + help="disable progress calculation", +) args = parser.parse_args() config = ProjectConfig() @@ -117,10 +131,10 @@ config.dtk_path = args.dtk config.objdiff_path = args.objdiff config.binutils_path = args.binutils config.compilers_path = args.compilers -config.debug = args.debug config.generate_map = args.map config.non_matching = args.non_matching config.sjiswrap_path = args.sjiswrap +config.progress = args.progress if not is_windows(): config.wrapper = args.wrapper # Don't build asm unless we're --non-matching @@ -130,8 +144,8 @@ if not config.non_matching: # Tool versions config.binutils_tag = "2.42-1" config.compilers_tag = "20240706" -config.dtk_tag = "v0.9.6" -config.objdiff_tag = "v2.0.0-beta.6" +config.dtk_tag = "v1.1.4" +config.objdiff_tag = "v2.3.3" config.sjiswrap_tag = "v1.1.1" config.wibo_tag = "0.6.11" @@ -149,6 +163,10 @@ config.ldflags = [ "-fp hardware", "-nodefaults", ] +if args.debug: + config.ldflags.append("-g") +if args.map: + config.ldflags.append("-mapunused") # Base flags, common to most GC/Wii games. # Generally leave untouched, with overrides added below. @@ -178,7 +196,7 @@ cflags_base = [ ] # Debug flags -if config.debug: +if args.debug: cflags_base.extend(["-sym on", "-DDEBUG=1"]) else: cflags_base.append("-DNDEBUG=1") @@ -324,6 +342,12 @@ Matching = True # Object matches and should be linked NonMatching = False # Object does not match and should not be linked Equivalent = config.non_matching # Object should be linked when configured with --non-matching + +# Object is only matching for specific versions +def MatchingFor(*versions): + return config.version in versions + + config.warn_missing_config = True config.warn_missing_source = False config.libs = [ diff --git a/tools/decompctx.py b/tools/decompctx.py index 290946f1..87cfb7ef 100644 --- a/tools/decompctx.py +++ b/tools/decompctx.py @@ -23,7 +23,7 @@ include_dirs = [ # Add additional include directories here ] -include_pattern = re.compile(r'^#\s*include\s*[<"](.+?)[>"]$') +include_pattern = re.compile(r'^#\s*include\s*[<"](.+?)[>"]') guard_pattern = re.compile(r"^#\s*ifndef\s+(.*)$") defines = set() diff --git a/tools/download_tool.py b/tools/download_tool.py index 69ef96a7..f4512d01 100644 --- a/tools/download_tool.py +++ b/tools/download_tool.py @@ -55,6 +55,7 @@ def dtk_url(tag: str) -> str: repo = "https://github.com/encounter/decomp-toolkit" return f"{repo}/releases/download/{tag}/dtk-{system}-{arch}{suffix}" + def objdiff_cli_url(tag: str) -> str: uname = platform.uname() suffix = "" diff --git a/tools/project.py b/tools/project.py index 502b2f4b..b4469fcd 100644 --- a/tools/project.py +++ b/tools/project.py @@ -17,7 +17,7 @@ import os import platform import sys from pathlib import Path -from typing import Any, Dict, List, Optional, Set, Tuple, Union, cast +from typing import IO, Any, Dict, Iterable, List, Optional, Set, Tuple, Union, cast from . import ninja_syntax from .ninja_syntax import serialize_path @@ -41,8 +41,9 @@ class Object: "asflags": None, "asm_dir": None, "cflags": None, - "extra_asflags": None, - "extra_cflags": None, + "extra_asflags": [], + "extra_cflags": [], + "extra_clang_flags": [], "host": None, "lib": None, "mw_version": None, @@ -81,6 +82,20 @@ class Object: set_default("shift_jis", config.shift_jis) set_default("src_dir", config.src_dir) + # Validate progress categories + def check_category(category: str): + if not any(category == c.id for c in config.progress_categories): + sys.exit( + f"Progress category '{category}' missing from config.progress_categories" + ) + + progress_category = obj.options["progress_category"] + if isinstance(progress_category, list): + for category in progress_category: + check_category(category) + elif progress_category is not None: + check_category(progress_category) + # Resolve paths build_dir = config.out_path() obj.src_path = Path(obj.options["src_dir"]) / obj.options["source"] @@ -131,7 +146,6 @@ class ProjectConfig: self.build_rels: bool = True # Build REL files self.check_sha_path: Optional[Path] = None # Path to version.sha1 self.config_path: Optional[Path] = None # Path to config.yml - self.debug: bool = False # Build with debug info self.generate_map: bool = False # Generate map file(s) self.asflags: Optional[List[str]] = None # Assembler flags self.ldflags: Optional[List[str]] = None # Linker flags @@ -156,14 +170,22 @@ class ProjectConfig: self.custom_build_steps: Optional[Dict[str, List[Dict[str, Any]]]] = ( None # Custom build steps, types are ["pre-compile", "post-compile", "post-link", "post-build"] ) + self.generate_compile_commands: bool = ( + True # Generate compile_commands.json for clangd + ) + self.extra_clang_flags: List[str] = [] # Extra flags for clangd # Progress output, progress.json and report.json config + self.progress = True # Enable report.json generation and CLI progress output self.progress_all: bool = True # Include combined "all" category self.progress_modules: bool = True # Include combined "modules" category self.progress_each_module: bool = ( False # Include individual modules, disable for large numbers of modules ) self.progress_categories: List[ProgressCategory] = [] # Additional categories + self.print_progress_categories: Union[bool, List[str]] = ( + True # Print additional progress categories in the CLI progress output + ) # Progress fancy printing self.progress_use_fancy: bool = False @@ -200,9 +222,40 @@ class ProjectConfig: out[obj.name] = obj.resolve(self, lib) return out + # Gets the output path for build-related files. def out_path(self) -> Path: return self.build_dir / str(self.version) + # Gets the path to the compilers directory. + # Exits the program if neither `compilers_path` nor `compilers_tag` is provided. + def compilers(self) -> Path: + if self.compilers_path: + return self.compilers_path + elif self.compilers_tag: + return self.build_dir / "compilers" + else: + sys.exit("ProjectConfig.compilers_tag missing") + + # Gets the wrapper to use for compiler commands, if set. + def compiler_wrapper(self) -> Optional[Path]: + wrapper = self.wrapper + + if self.use_wibo(): + wrapper = self.build_dir / "tools" / "wibo" + if not is_windows() and wrapper is None: + wrapper = Path("wine") + + return wrapper + + # Determines whether or not to use wibo as the compiler wrapper. + def use_wibo(self) -> bool: + return ( + self.wibo_tag is not None + and sys.platform == "linux" + and platform.machine() in ("i386", "x86_64") + and self.wrapper is None + ) + def is_windows() -> bool: return os.name == "nt" @@ -214,11 +267,26 @@ CHAIN = "cmd /c " if is_windows() else "" EXE = ".exe" if is_windows() else "" -def make_flags_str(cflags: Union[str, List[str]]) -> str: - if isinstance(cflags, list): - return " ".join(cflags) - else: - return cflags +def file_is_asm(path: Path) -> bool: + return path.suffix.lower() == ".s" + + +def file_is_c(path: Path) -> bool: + return path.suffix.lower() == ".c" + + +def file_is_cpp(path: Path) -> bool: + return path.suffix.lower() in (".cc", ".cp", ".cpp", ".cxx") + + +def file_is_c_cpp(path: Path) -> bool: + return file_is_c(path) or file_is_cpp(path) + + +def make_flags_str(flags: Optional[List[str]]) -> str: + if flags is None: + return "" + return " ".join(flags) # Load decomp-toolkit generated config.json @@ -235,14 +303,14 @@ def load_build_config( build_config: Dict[str, Any] = json.load(f) config_version = build_config.get("version") if config_version is None: - # Invalid config.json + print("Invalid config.json, regenerating...") f.close() os.remove(build_config_path) return None dtk_version = str(config.dtk_tag)[1:] # Strip v if versiontuple(config_version) < versiontuple(dtk_version): - # Outdated config.json + print("Outdated config.json, regenerating...") f.close() os.remove(build_config_path) return None @@ -251,13 +319,14 @@ def load_build_config( return build_config -# Generate build.ninja and objdiff.json +# Generate build.ninja, objdiff.json and compile_commands.json def generate_build(config: ProjectConfig) -> None: config.validate() objects = config.objects() build_config = load_build_config(config, config.out_path() / "config.json") generate_build_ninja(config, objects, build_config) generate_objdiff_config(config, objects, build_config) + generate_compile_commands(config, objects, build_config) # Generate build.ninja @@ -283,12 +352,7 @@ def generate_build_ninja( # Variables ### n.comment("Variables") - ldflags = " ".join(config.ldflags or []) - if config.generate_map: - ldflags += " -mapunused" - if config.debug: - ldflags += " -g" - n.variable("ldflags", ldflags) + n.variable("ldflags", make_flags_str(config.ldflags)) if config.linker_version is None: sys.exit("ProjectConfig.linker_version missing") n.variable("mw_version", Path(config.linker_version)) @@ -409,16 +473,10 @@ def generate_build_ninja( else: sys.exit("ProjectConfig.sjiswrap_tag missing") + wrapper = config.compiler_wrapper() # Only add an implicit dependency on wibo if we download it - wrapper = config.wrapper wrapper_implicit: Optional[Path] = None - if ( - config.wibo_tag is not None - and sys.platform == "linux" - and platform.machine() in ("i386", "x86_64") - and config.wrapper is None - ): - wrapper = build_tools_path / "wibo" + if wrapper is not None and config.use_wibo(): wrapper_implicit = wrapper n.build( outputs=wrapper, @@ -429,15 +487,11 @@ def generate_build_ninja( "tag": config.wibo_tag, }, ) - if not is_windows() and wrapper is None: - wrapper = Path("wine") wrapper_cmd = f"{wrapper} " if wrapper else "" + compilers = config.compilers() compilers_implicit: Optional[Path] = None - if config.compilers_path: - compilers = config.compilers_path - elif config.compilers_tag: - compilers = config.build_dir / "compilers" + if config.compilers_path is None and config.compilers_tag is not None: compilers_implicit = compilers n.build( outputs=compilers, @@ -448,8 +502,6 @@ def generate_build_ninja( "tag": config.compilers_tag, }, ) - else: - sys.exit("ProjectConfig.compilers_tag missing") binutils_implicit = None if config.binutils_path: @@ -663,7 +715,6 @@ def generate_build_ninja( n.comment(f"Link {self.name}") if self.module_id == 0: elf_path = build_path / f"{self.name}.elf" - dol_path = build_path / f"{self.name}.dol" elf_ldflags = f"$ldflags -lcf {serialize_path(self.ldscript)}" if config.generate_map: elf_map = map_path(elf_path) @@ -728,17 +779,33 @@ def generate_build_ninja( source_added: Set[Path] = set() def c_build(obj: Object, src_path: Path) -> Optional[Path]: - cflags_str = make_flags_str(obj.options["cflags"]) - if obj.options["extra_cflags"] is not None: - extra_cflags_str = make_flags_str(obj.options["extra_cflags"]) - cflags_str += " " + extra_cflags_str - used_compiler_versions.add(obj.options["mw_version"]) - # Avoid creating duplicate build rules if obj.src_obj_path is None or obj.src_obj_path in source_added: return obj.src_obj_path source_added.add(obj.src_obj_path) + cflags = obj.options["cflags"] + extra_cflags = obj.options["extra_cflags"] + + # Add appropriate language flag if it doesn't exist already + # Added directly to the source so it flows to other generation tasks + if not any(flag.startswith("-lang") for flag in cflags) and not any( + flag.startswith("-lang") for flag in extra_cflags + ): + # Ensure extra_cflags is a unique instance, + # and insert into there to avoid modifying shared sets of flags + extra_cflags = obj.options["extra_cflags"] = list(extra_cflags) + if file_is_cpp(src_path): + extra_cflags.insert(0, "-lang=c++") + else: + extra_cflags.insert(0, "-lang=c") + + cflags_str = make_flags_str(cflags) + if len(extra_cflags) > 0: + extra_cflags_str = make_flags_str(extra_cflags) + cflags_str += " " + extra_cflags_str + used_compiler_versions.add(obj.options["mw_version"]) + # Add MWCC build rule lib_name = obj.options["lib"] n.comment(f"{obj.name}: {lib_name} (linked {obj.completed})") @@ -770,7 +837,7 @@ def generate_build_ninja( if obj.options["host"] and obj.host_obj_path is not None: n.build( outputs=obj.host_obj_path, - rule="host_cc" if src_path.suffix == ".c" else "host_cpp", + rule="host_cc" if file_is_c(src_path) else "host_cpp", inputs=src_path, variables={ "basedir": os.path.dirname(obj.host_obj_path), @@ -792,7 +859,7 @@ def generate_build_ninja( if obj.options["asflags"] is None: sys.exit("ProjectConfig.asflags missing") asflags_str = make_flags_str(obj.options["asflags"]) - if obj.options["extra_asflags"] is not None: + if len(obj.options["extra_asflags"]) > 0: extra_asflags_str = make_flags_str(obj.options["extra_asflags"]) asflags_str += " " + extra_asflags_str @@ -830,10 +897,10 @@ def generate_build_ninja( link_built_obj = obj.completed built_obj_path: Optional[Path] = None if obj.src_path is not None and obj.src_path.exists(): - if obj.src_path.suffix in (".c", ".cp", ".cpp"): + if file_is_c_cpp(obj.src_path): # Add MWCC & host build rules built_obj_path = c_build(obj, obj.src_path) - elif obj.src_path.suffix == ".s": + elif file_is_asm(obj.src_path): # Add assembler build rule built_obj_path = asm_build(obj, obj.src_path, obj.src_obj_path) else: @@ -1040,7 +1107,12 @@ def generate_build_ninja( n.build( outputs=progress_path, rule="progress", - implicit=[ok_path, configure_script, python_lib, config.config_path], + implicit=[ + ok_path, + configure_script, + python_lib, + report_path, + ], ) ### @@ -1153,8 +1225,10 @@ def generate_build_ninja( if build_config: if config.non_matching: n.default(link_outputs) - else: + elif config.progress: n.default(progress_path) + else: + n.default(ok_path) else: n.default(build_config_path) @@ -1173,6 +1247,13 @@ def generate_objdiff_config( if build_config is None: return + # Load existing objdiff.json + existing_units = {} + if Path("objdiff.json").is_file(): + with open("objdiff.json", "r", encoding="utf-8") as r: + existing_config = json.load(r) + existing_units = {unit["name"]: unit for unit in existing_config["units"]} + objdiff_config: Dict[str, Any] = { "min_version": "2.0.0-beta.5", "custom_make": "ninja", @@ -1194,7 +1275,6 @@ def generate_objdiff_config( } # decomp.me compiler name mapping - # Commented out versions have not been added to decomp.me yet COMPILER_MAP = { "GC/1.0": "mwcc_233_144", "GC/1.1": "mwcc_233_159", @@ -1231,15 +1311,27 @@ def generate_objdiff_config( ) -> None: obj_path, obj_name = build_obj["object"], build_obj["name"] base_object = Path(obj_name).with_suffix("") + name = str(Path(module_name) / base_object).replace(os.sep, "/") unit_config: Dict[str, Any] = { - "name": Path(module_name) / base_object, + "name": name, "target_path": obj_path, + "base_path": None, + "scratch": None, "metadata": { - "auto_generated": build_obj["autogenerated"], + "complete": None, + "reverse_fn_order": None, + "source_path": None, "progress_categories": progress_categories, + "auto_generated": build_obj["autogenerated"], }, + "symbol_mappings": None, } + # Preserve existing symbol mappings + existing_unit = existing_units.get(name) + if existing_unit is not None: + unit_config["symbol_mappings"] = existing_unit.get("symbol_mappings") + obj = objects.get(obj_name) if obj is None: objdiff_config["units"].append(unit_config) @@ -1248,40 +1340,31 @@ def generate_objdiff_config( src_exists = obj.src_path is not None and obj.src_path.exists() if src_exists: unit_config["base_path"] = obj.src_obj_path + unit_config["metadata"]["source_path"] = obj.src_path cflags = obj.options["cflags"] reverse_fn_order = False - if type(cflags) is list: - for flag in cflags: - if not flag.startswith("-inline "): - continue - for value in flag.split(" ")[1].split(","): - if value == "deferred": - reverse_fn_order = True - elif value == "nodeferred": - reverse_fn_order = False + for flag in cflags: + if not flag.startswith("-inline "): + continue + for value in flag.split(" ")[1].split(","): + if value == "deferred": + reverse_fn_order = True + elif value == "nodeferred": + reverse_fn_order = False - # Filter out include directories - def keep_flag(flag): - return not flag.startswith("-i ") and not flag.startswith("-I ") + # Filter out include directories + def keep_flag(flag): + return not flag.startswith("-i ") and not flag.startswith("-I ") - cflags = list(filter(keep_flag, cflags)) - - # Add appropriate lang flag - if obj.src_path is not None and not any( - flag.startswith("-lang") for flag in cflags - ): - if obj.src_path.suffix in (".cp", ".cpp"): - cflags.insert(0, "-lang=c++") - else: - cflags.insert(0, "-lang=c") + cflags = list(filter(keep_flag, cflags)) compiler_version = COMPILER_MAP.get(obj.options["mw_version"]) if compiler_version is None: print(f"Missing scratch compiler mapping for {obj.options['mw_version']}") else: cflags_str = make_flags_str(cflags) - if obj.options["extra_cflags"] is not None: + if len(obj.options["extra_cflags"]) > 0: extra_cflags_str = make_flags_str(obj.options["extra_cflags"]) cflags_str += " " + extra_cflags_str unit_config["scratch"] = { @@ -1305,7 +1388,6 @@ def generate_objdiff_config( { "complete": obj.completed, "reverse_fn_order": reverse_fn_order, - "source_path": obj.src_path, "progress_categories": progress_categories, } ) @@ -1349,160 +1431,357 @@ def generate_objdiff_config( for category in config.progress_categories: add_category(category.id, category.name) + def cleandict(d): + if isinstance(d, dict): + return {k: cleandict(v) for k, v in d.items() if v is not None} + elif isinstance(d, list): + return [cleandict(v) for v in d] + else: + return d + # Write objdiff.json with open("objdiff.json", "w", encoding="utf-8") as w: def unix_path(input: Any) -> str: return str(input).replace(os.sep, "/") if input else "" - json.dump(objdiff_config, w, indent=4, default=unix_path) + json.dump(cleandict(objdiff_config), w, indent=2, default=unix_path) + + +def generate_compile_commands( + config: ProjectConfig, + objects: Dict[str, Object], + build_config: Optional[Dict[str, Any]], +) -> None: + if build_config is None or not config.generate_compile_commands: + return + + # The following code attempts to convert mwcc flags to clang flags + # for use with clangd. + + # Flags to ignore explicitly + CFLAG_IGNORE: Set[str] = { + # Search order modifier + # Has a different meaning to Clang, and would otherwise + # be picked up by the include passthrough prefix + "-I-", + "-i-", + } + CFLAG_IGNORE_PREFIX: Tuple[str, ...] = ( + # Recursive includes are not supported by modern compilers + "-ir ", + ) + + # Flags to replace + CFLAG_REPLACE: Dict[str, str] = {} + CFLAG_REPLACE_PREFIX: Tuple[Tuple[str, str], ...] = ( + # Includes + ("-i ", "-I"), + ("-I ", "-I"), + ("-I+", "-I"), + # Defines + ("-d ", "-D"), + ("-D ", "-D"), + ("-D+", "-D"), + ) + + # Flags with a finite set of options + CFLAG_REPLACE_OPTIONS: Tuple[Tuple[str, Dict[str, Tuple[str, ...]]], ...] = ( + # Exceptions + ( + "-Cpp_exceptions", + { + "off": ("-fno-cxx-exceptions",), + "on": ("-fcxx-exceptions",), + }, + ), + # RTTI + ( + "-RTTI", + { + "off": ("-fno-rtti",), + "on": ("-frtti",), + }, + ), + # Language configuration + ( + "-lang", + { + "c": ("--language=c", "--std=c99"), + "c99": ("--language=c", "--std=c99"), + "c++": ("--language=c++", "--std=c++98"), + "cplus": ("--language=c++", "--std=c++98"), + }, + ), + # Enum size + ( + "-enum", + { + "min": ("-fshort-enums",), + "int": ("-fno-short-enums",), + }, + ), + # Common BSS + ( + "-common", + { + "off": ("-fno-common",), + "on": ("-fcommon",), + }, + ), + ) + + # Flags to pass through + CFLAG_PASSTHROUGH: Set[str] = set() + CFLAG_PASSTHROUGH_PREFIX: Tuple[str, ...] = ( + "-I", # includes + "-D", # defines + ) + + clangd_config = [] + + def add_unit(build_obj: Dict[str, Any]) -> None: + obj = objects.get(build_obj["name"]) + if obj is None: + return + + # Skip unresolved objects + if ( + obj.src_path is None + or obj.src_obj_path is None + or not file_is_c_cpp(obj.src_path) + ): + return + + # Gather cflags for source file + cflags: list[str] = [] + + def append_cflags(flags: Iterable[str]) -> None: + # Match a flag against either a set of concrete flags, or a set of prefixes. + def flag_match( + flag: str, concrete: Set[str], prefixes: Tuple[str, ...] + ) -> bool: + if flag in concrete: + return True + + for prefix in prefixes: + if flag.startswith(prefix): + return True + + return False + + # Determine whether a flag should be ignored. + def should_ignore(flag: str) -> bool: + return flag_match(flag, CFLAG_IGNORE, CFLAG_IGNORE_PREFIX) + + # Determine whether a flag should be passed through. + def should_passthrough(flag: str) -> bool: + return flag_match(flag, CFLAG_PASSTHROUGH, CFLAG_PASSTHROUGH_PREFIX) + + # Attempts replacement for the given flag. + def try_replace(flag: str) -> bool: + replacement = CFLAG_REPLACE.get(flag) + if replacement is not None: + cflags.append(replacement) + return True + + for prefix, replacement in CFLAG_REPLACE_PREFIX: + if flag.startswith(prefix): + cflags.append(flag.replace(prefix, replacement, 1)) + return True + + for prefix, options in CFLAG_REPLACE_OPTIONS: + if not flag.startswith(prefix): + continue + + # "-lang c99" and "-lang=c99" are both generally valid option forms + option = flag.removeprefix(prefix).removeprefix("=").lstrip() + replacements = options.get(option) + if replacements is not None: + cflags.extend(replacements) + + return True + + return False + + for flag in flags: + # Ignore flags first + if should_ignore(flag): + continue + + # Then find replacements + if try_replace(flag): + continue + + # Pass flags through last + if should_passthrough(flag): + cflags.append(flag) + continue + + append_cflags(obj.options["cflags"]) + append_cflags(obj.options["extra_cflags"]) + cflags.extend(config.extra_clang_flags) + cflags.extend(obj.options["extra_clang_flags"]) + + unit_config = { + "directory": Path.cwd(), + "file": obj.src_path, + "output": obj.src_obj_path, + "arguments": [ + "clang", + "-nostdinc", + "-fno-builtin", + "--target=powerpc-eabi", + *cflags, + "-c", + obj.src_path, + "-o", + obj.src_obj_path, + ], + } + clangd_config.append(unit_config) + + # Add DOL units + for unit in build_config["units"]: + add_unit(unit) + + # Add REL units + for module in build_config["modules"]: + for unit in module["units"]: + add_unit(unit) + + # Write compile_commands.json + with open("compile_commands.json", "w", encoding="utf-8") as w: + + def default_format(o): + if isinstance(o, Path): + return o.resolve().as_posix() + return str(o) + + json.dump(clangd_config, w, indent=2, default=default_format) # Calculate, print and write progress to progress.json def calculate_progress(config: ProjectConfig) -> None: config.validate() - objects = config.objects() out_path = config.out_path() - build_config = load_build_config(config, out_path / "config.json") - if build_config is None: - return + report_path = out_path / "report.json" + if not report_path.is_file(): + sys.exit(f"Report file {report_path} does not exist") - class ProgressUnit: - def __init__(self, name: str) -> None: - self.name: str = name - self.code_total: int = 0 - self.code_fancy_frac: int = config.progress_code_fancy_frac - self.code_fancy_item: str = config.progress_code_fancy_item - self.code_progress: int = 0 - self.data_total: int = 0 - self.data_fancy_frac: int = config.progress_data_fancy_frac - self.data_fancy_item: str = config.progress_data_fancy_item - self.data_progress: int = 0 - self.objects_progress: int = 0 - self.objects_total: int = 0 - self.objects: Set[Object] = set() + report_data: Dict[str, Any] = {} + with open(report_path, "r", encoding="utf-8") as f: + report_data = json.load(f) - def add(self, build_obj: Dict[str, Any]) -> None: - self.code_total += build_obj["code_size"] - self.data_total += build_obj["data_size"] + # Convert string numbers (u64) to int + def convert_numbers(data: Dict[str, Any]) -> None: + for key, value in data.items(): + if isinstance(value, str) and value.isdigit(): + data[key] = int(value) - # Avoid counting the same object in different modules twice - include_object = build_obj["name"] not in self.objects - if include_object: - self.objects.add(build_obj["name"]) - self.objects_total += 1 + convert_numbers(report_data["measures"]) + for category in report_data.get("categories", []): + convert_numbers(category["measures"]) - if build_obj["autogenerated"]: - # Skip autogenerated objects - return + # Output to GitHub Actions job summary, if available + summary_path = os.getenv("GITHUB_STEP_SUMMARY") + summary_file: Optional[IO[str]] = None + if summary_path: + summary_file = open(summary_path, "a", encoding="utf-8") + summary_file.write("```\n") - obj = objects.get(build_obj["name"]) - if obj is None or not obj.completed: - return - - self.code_progress += build_obj["code_size"] - self.data_progress += build_obj["data_size"] - if include_object: - self.objects_progress += 1 - - def code_frac(self) -> float: - if self.code_total == 0: - return 1.0 - return self.code_progress / self.code_total - - def data_frac(self) -> float: - if self.data_total == 0: - return 1.0 - return self.data_progress / self.data_total - - progress_units: Dict[str, ProgressUnit] = {} - if config.progress_all: - progress_units["all"] = ProgressUnit("All") - progress_units["dol"] = ProgressUnit("DOL") - if len(build_config["modules"]) > 0: - if config.progress_modules: - progress_units["modules"] = ProgressUnit("Modules") - if len(config.progress_categories) > 0: - for category in config.progress_categories: - progress_units[category.id] = ProgressUnit(category.name) - if config.progress_each_module: - for module in build_config["modules"]: - progress_units[module["name"]] = ProgressUnit(module["name"]) - - def add_unit(id: str, unit: Dict[str, Any]) -> None: - progress = progress_units.get(id) - if progress is not None: - progress.add(unit) - - # Add DOL units - for unit in build_config["units"]: - add_unit("all", unit) - add_unit("dol", unit) - obj = objects.get(unit["name"]) - if obj is not None: - category_opt = obj.options["progress_category"] - if isinstance(category_opt, list): - for id in category_opt: - add_unit(id, unit) - elif category_opt is not None: - add_unit(category_opt, unit) - - # Add REL units - for module in build_config["modules"]: - for unit in module["units"]: - add_unit("all", unit) - add_unit("modules", unit) - add_unit(module["name"], unit) - obj = objects.get(unit["name"]) - if obj is not None: - category_opt = obj.options["progress_category"] - if isinstance(category_opt, list): - for id in category_opt: - add_unit(id, unit) - elif category_opt is not None: - add_unit(category_opt, unit) + def progress_print(s: str) -> None: + print(s) + if summary_file: + summary_file.write(s + "\n") # Print human-readable progress - print("Progress:") + progress_print("Progress:") - def print_category(unit: Optional[ProgressUnit]) -> None: - if unit is None: - return + def print_category(name: str, measures: Dict[str, Any]) -> None: + total_code = measures.get("total_code", 0) + matched_code = measures.get("matched_code", 0) + matched_code_percent = measures.get("matched_code_percent", 0) + total_data = measures.get("total_data", 0) + matched_data = measures.get("matched_data", 0) + matched_data_percent = measures.get("matched_data_percent", 0) + total_functions = measures.get("total_functions", 0) + matched_functions = measures.get("matched_functions", 0) + complete_code_percent = measures.get("complete_code_percent", 0) + total_units = measures.get("total_units", 0) + complete_units = measures.get("complete_units", 0) - code_frac = unit.code_frac() - data_frac = unit.data_frac() - print( - f" {unit.name}: {code_frac:.2%} code, {data_frac:.2%} data ({unit.objects_progress} / {unit.objects_total} files)" + progress_print( + f" {name}: {matched_code_percent:.2f}% matched, {complete_code_percent:.2f}% linked ({complete_units} / {total_units} files)" + ) + progress_print( + f" Code: {matched_code} / {total_code} bytes ({matched_functions} / {total_functions} functions)" + ) + progress_print( + f" Data: {matched_data} / {total_data} bytes ({matched_data_percent:.2f}%)" ) - print(f" Code: {unit.code_progress} / {unit.code_total} bytes") - print(f" Data: {unit.data_progress} / {unit.data_total} bytes") - if config.progress_use_fancy: - print( - "\nYou have {} out of {} {} and {} out of {} {}.".format( - math.floor(code_frac * unit.code_fancy_frac), - unit.code_fancy_frac, - unit.code_fancy_item, - math.floor(data_frac * unit.data_fancy_frac), - unit.data_fancy_frac, - unit.data_fancy_item, - ) - ) - for progress in progress_units.values(): - print_category(progress) + print_category("All", report_data["measures"]) + for category in report_data.get("categories", []): + if config.print_progress_categories is True or ( + isinstance(config.print_progress_categories, list) + and category["id"] in config.print_progress_categories + ): + print_category(category["name"], category["measures"]) + + if config.progress_use_fancy: + measures = report_data["measures"] + total_code = measures.get("total_code", 0) + total_data = measures.get("total_data", 0) + if total_code == 0 or total_data == 0: + return + code_frac = measures.get("complete_code", 0) / total_code + data_frac = measures.get("complete_data", 0) / total_data + + progress_print( + "\nYou have {} out of {} {} and {} out of {} {}.".format( + math.floor(code_frac * config.progress_code_fancy_frac), + config.progress_code_fancy_frac, + config.progress_code_fancy_item, + math.floor(data_frac * config.progress_data_fancy_frac), + config.progress_data_fancy_frac, + config.progress_data_fancy_item, + ) + ) + + # Finalize GitHub Actions job summary + if summary_file: + summary_file.write("```\n") + summary_file.close() # Generate and write progress.json progress_json: Dict[str, Any] = {} - def add_category(category: str, unit: ProgressUnit) -> None: - progress_json[category] = { - "code": unit.code_progress, - "code/total": unit.code_total, - "data": unit.data_progress, - "data/total": unit.data_total, + def add_category(id: str, measures: Dict[str, Any]) -> None: + progress_json[id] = { + "code": measures.get("complete_code", 0), + "code/total": measures.get("total_code", 0), + "data": measures.get("complete_data", 0), + "data/total": measures.get("total_data", 0), + "matched_code": measures.get("matched_code", 0), + "matched_code/total": measures.get("total_code", 0), + "matched_data": measures.get("matched_data", 0), + "matched_data/total": measures.get("total_data", 0), + "matched_functions": measures.get("matched_functions", 0), + "matched_functions/total": measures.get("total_functions", 0), + "fuzzy_match": int(measures.get("fuzzy_match_percent", 0) * 100), + "fuzzy_match/total": 10000, + "units": measures.get("complete_units", 0), + "units/total": measures.get("total_units", 0), } - for id, progress in progress_units.items(): - add_category(id, progress) + if config.progress_all: + add_category("all", report_data["measures"]) + else: + # Support for old behavior where "dol" was the main category + add_category("dol", report_data["measures"]) + for category in report_data.get("categories", []): + add_category(category["id"], category["measures"]) + with open(out_path / "progress.json", "w", encoding="utf-8") as w: - json.dump(progress_json, w, indent=4) + json.dump(progress_json, w, indent=2) From 0035e3316689bf0b107bd95b4d8db78ad955bbcf Mon Sep 17 00:00:00 2001 From: Luke Street Date: Tue, 22 Oct 2024 22:36:42 -0600 Subject: [PATCH 081/311] Source fixes for clangd --- include/ctype.h | 23 +++++++++++++++-------- include/dolphin/os.h | 2 +- include/game/gamework.h | 2 +- include/math.h | 12 ++++++++---- include/stdlib.h | 4 ++++ 5 files changed, 29 insertions(+), 14 deletions(-) diff --git a/include/ctype.h b/include/ctype.h index 559e7278..46064191 100644 --- a/include/ctype.h +++ b/include/ctype.h @@ -1,6 +1,7 @@ #ifndef _CTYPE_H #define _CTYPE_H +#include "dolphin/types.h" extern unsigned char __ctype_map[256]; extern unsigned char __lower_map[256]; @@ -22,19 +23,25 @@ extern unsigned char __upper_map[256]; #define __whitespace (__motion_char | __space_char) #define __control (__motion_char | __control_char) +#ifdef __MWERKS__ +#define DECL_WEAK __declspec(weak) +#else +#define DECL_WEAK __attribute__((weak)) +#endif + #ifdef __cplusplus extern "C" { #endif - __declspec(weak) int isalpha(int __c); - __declspec(weak) int isdigit(int __c); - __declspec(weak) int isspace(int __c); - __declspec(weak) int isupper(int __c); - __declspec(weak) int isxdigit(int __c); + DECL_WEAK int isalpha(int __c); + DECL_WEAK int isdigit(int __c); + DECL_WEAK int isspace(int __c); + DECL_WEAK int isupper(int __c); + DECL_WEAK int isxdigit(int __c); - __declspec(weak) int tolower(int __c); - __declspec(weak) int toupper(int __c); + DECL_WEAK int tolower(int __c); + DECL_WEAK int toupper(int __c); // added underscore to avoid naming conflicts inline int _isalpha(int c) { return (int)(__ctype_map[(u8)c] & __letter); } @@ -48,4 +55,4 @@ extern "C" #ifdef __cplusplus } #endif -#endif \ No newline at end of file +#endif diff --git a/include/dolphin/os.h b/include/dolphin/os.h index d231c662..83f15519 100644 --- a/include/dolphin/os.h +++ b/include/dolphin/os.h @@ -19,7 +19,7 @@ extern "C" { #ifdef __MWERKS__ #define AT_ADDRESS(xyz) : (xyz) #else -#define AT_ADDRESS +#define AT_ADDRESS(xyz) #endif typedef s64 OSTime; typedef u32 OSTick; diff --git a/include/game/gamework.h b/include/game/gamework.h index 0e3b4807..869cfad1 100644 --- a/include/game/gamework.h +++ b/include/game/gamework.h @@ -7,7 +7,7 @@ void GWInit(void); void GWGameStatReset(void); -s32 GWMessSpeedGet(void); +// s32 GWMessSpeedGet(void); s32 GWMessDelayGet(void); void GWMGRecordSet(s32 index, u32 value); u32 GWMGRecordGet(s32 index); diff --git a/include/math.h b/include/math.h index 419d4d50..8549b25f 100644 --- a/include/math.h +++ b/include/math.h @@ -7,6 +7,7 @@ #define _MATH_INLINE static inline #endif +#ifdef __MWERKS__ extern inline float sqrtf(float x) { volatile float y; @@ -21,6 +22,9 @@ extern inline float sqrtf(float x) } return x; } +#else +float sqrtf(float x); +#endif double atan(double x); double copysign(double x, double y); @@ -38,15 +42,15 @@ double fmod(double x, double y); double log(double x); double pow(double x, double y); float tanf(float x); -float sinf(float x); -float cosf(float x); -float atan2f(float y, float x); -float acosf(float x); +#ifdef __MWERKS__ extern inline double fabs(double x) { return __fabs(x); } +#else +double fabs(double x); +#endif _MATH_INLINE float fabsf(float x) { return (float)fabs((double)x); } _MATH_INLINE float sinf(float x) { return (float)sin((double)x); } diff --git a/include/stdlib.h b/include/stdlib.h index c6e1d71d..aaf69e6d 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -1,6 +1,10 @@ #ifndef _STDLIB_H #define _STDLIB_H +#ifdef __MWERKS__ #define abs(x) __abs(x) +#else +int abs(int x); +#endif #endif From e34a300610e58191c4b90d0eff0e8e3c661c7646 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 27 Oct 2024 19:09:24 +0100 Subject: [PATCH 082/311] Almost finished m420dll --- config/GMPE01_00/rels/m420dll/splits.txt | 11 +- config/GMPE01_00/rels/m420dll/symbols.txt | 246 ++-- configure.py | 1 + include/REL/m420dll.h | 68 ++ src/REL/m420dll/camera.c | 144 +++ src/REL/m420dll/main.c | 251 +++++ src/REL/m420dll/map.c | 1235 +++++++++++++++++++++ src/REL/m420dll/player.c | 992 +++++++++++++++++ 8 files changed, 2823 insertions(+), 125 deletions(-) create mode 100644 include/REL/m420dll.h create mode 100644 src/REL/m420dll/camera.c create mode 100644 src/REL/m420dll/main.c create mode 100644 src/REL/m420dll/map.c create mode 100644 src/REL/m420dll/player.c diff --git a/config/GMPE01_00/rels/m420dll/splits.txt b/config/GMPE01_00/rels/m420dll/splits.txt index eb2fc2b9..9c77e32d 100644 --- a/config/GMPE01_00/rels/m420dll/splits.txt +++ b/config/GMPE01_00/rels/m420dll/splits.txt @@ -10,10 +10,15 @@ REL/executor.c: .text start:0x00000000 end:0x000000A0 REL/m420dll/main.c: - .text start:0x000000A0 end:0x00001B8C - .rodata start:0x00000000 end:0x000000F8 + .text start:0x000000A0 end:0x00000D98 + .rodata start:0x00000000 end:0x00000098 + .bss start:0x00000000 end:0x00000030 + +REL/m420dll/camera.c: + .text start:0x00000D98 end:0x00001B8C + .rodata start:0x00000098 end:0x000000F8 .data start:0x00000000 end:0x00000050 - .bss start:0x00000000 end:0x000000B0 + .bss start:0x00000030 end:0x000000B0 REL/m420dll/player.c: .text start:0x00001B8C end:0x00004964 diff --git a/config/GMPE01_00/rels/m420dll/symbols.txt b/config/GMPE01_00/rels/m420dll/symbols.txt index 415bc67d..8e6b2a20 100644 --- a/config/GMPE01_00/rels/m420dll/symbols.txt +++ b/config/GMPE01_00/rels/m420dll/symbols.txt @@ -83,127 +83,129 @@ fn_1_8934 = .text:0x00008934; // type:function size:0x10 fn_1_8944 = .text:0x00008944; // type:function size:0x34 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x54 -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 data:4byte -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x160 -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x60 -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x10 -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x1C -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x6C -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0xC data:4byte -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0xC data:4byte -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 data:double -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x30 data:4byte -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x30 data:4byte -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0xC data:4byte -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float -lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x1E data:string -lbl_1_data_1E = .data:0x0000001E; // type:object size:0x1E data:string -lbl_1_data_3C = .data:0x0000003C; // type:object size:0x11 +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x54 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x160 scope:local +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x60 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x10 scope:local +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x1C scope:local +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x6C scope:local +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0xC scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0xC scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 scope:local data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 scope:local data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 scope:local data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 scope:local data:double +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x30 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x30 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 scope:local data:double +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 scope:local data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1E scope:local data:string +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x1E scope:local data:string +lbl_1_data_3C = .data:0x0000003C; // type:object size:0x11 scope:local data:string lbl_1_data_50 = .data:0x00000050; // type:object size:0x80 lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x1B data:string lbl_1_data_EC = .data:0x000000EC; // type:object size:0x30 @@ -211,7 +213,7 @@ lbl_1_data_11C = .data:0x0000011C; // type:object size:0x19 data:string lbl_1_data_135 = .data:0x00000135; // type:object size:0x1 lbl_1_data_138 = .data:0x00000138; // type:object size:0x1C lbl_1_data_154 = .data:0x00000154; // type:object size:0x10 data:4byte -lbl_1_data_164 = .data:0x00000164; // type:object size:0xD data:string +lbl_1_data_164 = .data:0x00000164; // type:object size:0xD scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 2fe8e8ee..eeeb17a4 100644 --- a/configure.py +++ b/configure.py @@ -977,6 +977,7 @@ config.libs = [ "m420dll", # Fish n' Drips objects={ Object(NonMatching, "REL/m420dll/main.c"), + Object(Matching, "REL/m420dll/camera.c"), Object(NonMatching, "REL/m420dll/player.c"), Object(NonMatching, "REL/m420dll/map.c"), Object(Matching, "REL/m420dll/rand.c"), diff --git a/include/REL/m420dll.h b/include/REL/m420dll.h new file mode 100644 index 00000000..9d3dce97 --- /dev/null +++ b/include/REL/m420dll.h @@ -0,0 +1,68 @@ +#ifndef M420DLL_H +#define M420DLL_H + +#include "game/object.h" + +typedef struct M420DllUnkStruct { + /* 0x00 */ Vec unk_00; + /* 0x0C */ Vec unk_0C; + /* 0x18 */ float unk_18; +} M420DllUnkStruct; /* size = 0x1C */ // same as in m447dll/camera.c + +typedef struct M420DllPlayerStruct { + /* 0x00 */ struct { + s8 unk_00_field0 : 1; + s8 unk_00_field1 : 1; + s8 unk_00_field2 : 1; + }; + /* 0x04 */ s32 unk_04; + /* 0x08 */ u8 unk_08; + /* 0x0A */ s16 unk_0A; + /* 0x0C */ u8 unk_0C; + /* 0x10 */ Vec unk_10; + /* 0x1C */ Vec unk_1C; + /* 0x28 */ Vec unk_28; + /* 0x34 */ Vec unk_34; + /* 0x40 */ Process *unk_40; + /* 0x44 */ char unk44[4]; + /* 0x48 */ s32 unk_48; + /* 0x4C */ s32 unk_4C; + /* 0x50 */ s16 unk_50; + /* 0x52 */ char unk52[6]; + /* 0x58 */ s32 unk_58; + /* 0x5C */ s32 unk_5C[0xA]; + /* 0x84 */ s32 unk_84[0xA]; + /* 0xAC */ s16 unk_AC; + /* 0xAE */ s16 unk_AE[0xB]; + /* 0xC4 */ s16 unk_C4[0xA]; + /* 0xD8 */ s16 unk_D8; + /* 0xDC */ float unk_DC; + /* 0xE0 */ float unk_E0; + /* 0xE4 */ s32 unk_E4; + /* 0xE8 */ struct M420DllPlayerStruct *unk_E8; +} M420DllPlayerStruct; /* size = 0xEC */ + +void fn_1_1184(void); + +s32 fn_1_4964(void); +void fn_1_596C(void); +s32 fn_1_59F4(s32); +s32 fn_1_5AA8(s32 arg0, float arg1); +s32 fn_1_60F0(void); +void fn_1_6268(void); +void fn_1_636C(void); +void fn_1_63EC(void); +void fn_1_6554(void); +s16 fn_1_6660(void); +void fn_1_669C(s32 arg0); +void fn_1_6728(void); +s32 fn_1_67E8(s32); +s32 fn_1_6810(void); +void fn_1_8934(void); +s32 fn_1_8944(void); +M420DllPlayerStruct *fn_1_1B8C(s32, s32); +void fn_1_1E14(M420DllPlayerStruct *); + +extern Process *lbl_1_bss_4; + +#endif diff --git a/src/REL/m420dll/camera.c b/src/REL/m420dll/camera.c new file mode 100644 index 00000000..c587a69e --- /dev/null +++ b/src/REL/m420dll/camera.c @@ -0,0 +1,144 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/flag.h" +#include "game/hsfman.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/wipe.h" + +#include "REL/m420dll.h" + +Process *lbl_1_bss_A8; +M420DllUnkStruct lbl_1_bss_8C; +M420DllUnkStruct lbl_1_bss_70; +M420DllUnkStruct lbl_1_bss_54; +s32 lbl_1_bss_50; +s32 lbl_1_bss_4C; +s32 lbl_1_bss_48; +float lbl_1_bss_44; +float lbl_1_bss_40; +float lbl_1_bss_3C; +float lbl_1_bss_38; +float lbl_1_bss_34; +float lbl_1_bss_30; + +s32 fn_1_D98(void) +{ + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 30.0f, 10.0f, 8000.0f, 1.2f); + lbl_1_bss_8C.unk_00.x = 0.0f; + lbl_1_bss_8C.unk_00.y = 0.0f; + lbl_1_bss_8C.unk_00.z = 0.0f; + lbl_1_bss_8C.unk_0C.x = -10.0f; + lbl_1_bss_8C.unk_0C.y = 0.0f; + lbl_1_bss_8C.unk_0C.z = 0.0f; + lbl_1_bss_8C.unk_18 = 1000.0f; + lbl_1_bss_50 = 0; + lbl_1_bss_4C = 0; + lbl_1_bss_48 = 0; + lbl_1_bss_A8 = HuPrcChildCreate(fn_1_1184, 0x1F4, 0x2000, 0, lbl_1_bss_4); + return 1; +} + +void fn_1_F48(void) +{ + HuPrcKill(lbl_1_bss_A8); +} + +void fn_1_F74(const Vec *arg0, s32 arg1) +{ + lbl_1_bss_54.unk_00 = *arg0; + lbl_1_bss_70.unk_00 = lbl_1_bss_8C.unk_00; + lbl_1_bss_44 = 0.0f; + lbl_1_bss_38 = 1.0f / arg1; + lbl_1_bss_50 = 1; +} + +void fn_1_1030(const Vec *arg0, s32 arg1) +{ + lbl_1_bss_54.unk_0C = *arg0; + lbl_1_bss_70.unk_0C = lbl_1_bss_8C.unk_0C; + lbl_1_bss_40 = 0.0f; + lbl_1_bss_34 = 1.0f / arg1; + lbl_1_bss_4C = 1; +} + +void fn_1_10EC(float arg8, s32 arg0) +{ + lbl_1_bss_54.unk_18 = arg8; + lbl_1_bss_70.unk_18 = lbl_1_bss_8C.unk_18; + lbl_1_bss_3C = 0.0f; + lbl_1_bss_30 = 1.0f / arg0; + lbl_1_bss_48 = 1; +} + +void fn_1_1184(void) +{ + Vec sp28; + Vec sp1C; + Vec sp10; + float var_f31; + + while (TRUE) { + if (lbl_1_bss_50 != 0) { + var_f31 = sind((90.0f * lbl_1_bss_44)); + var_f31 *= var_f31; + lbl_1_bss_8C.unk_00.x = lbl_1_bss_70.unk_00.x + (var_f31 * (lbl_1_bss_54.unk_00.x - lbl_1_bss_70.unk_00.x)); + lbl_1_bss_8C.unk_00.y = lbl_1_bss_70.unk_00.y + (var_f31 * (lbl_1_bss_54.unk_00.y - lbl_1_bss_70.unk_00.y)); + lbl_1_bss_8C.unk_00.z = lbl_1_bss_70.unk_00.z + (var_f31 * (lbl_1_bss_54.unk_00.z - lbl_1_bss_70.unk_00.z)); + if ((lbl_1_bss_44 += lbl_1_bss_38) >= 1.0f) { + lbl_1_bss_8C.unk_00 = lbl_1_bss_54.unk_00; + lbl_1_bss_50 = 0; + } + } + if (lbl_1_bss_4C != 0) { + var_f31 = sind((90.0f * lbl_1_bss_40)); + var_f31 *= var_f31; + lbl_1_bss_8C.unk_0C.x = lbl_1_bss_70.unk_0C.x + (var_f31 * (lbl_1_bss_54.unk_0C.x - lbl_1_bss_70.unk_0C.x)); + lbl_1_bss_8C.unk_0C.y = lbl_1_bss_70.unk_0C.y + (var_f31 * (lbl_1_bss_54.unk_0C.y - lbl_1_bss_70.unk_0C.y)); + lbl_1_bss_8C.unk_0C.z = lbl_1_bss_70.unk_0C.z + (var_f31 * (lbl_1_bss_54.unk_0C.z - lbl_1_bss_70.unk_0C.z)); + if ((lbl_1_bss_40 += lbl_1_bss_34) >= 1.0f) { + lbl_1_bss_8C.unk_0C = lbl_1_bss_54.unk_0C; + lbl_1_bss_4C = 0; + } + } + if (lbl_1_bss_48 != 0) { + var_f31 = sind((90.0f * lbl_1_bss_3C)); + var_f31 *= var_f31; + lbl_1_bss_8C.unk_18 = lbl_1_bss_70.unk_18 + (var_f31 * (lbl_1_bss_54.unk_18 - lbl_1_bss_70.unk_18)); + if ((lbl_1_bss_3C += lbl_1_bss_30) >= 1.0f) { + lbl_1_bss_8C.unk_18 = lbl_1_bss_54.unk_18; + lbl_1_bss_48 = 0; + } + } + sp28.x = lbl_1_bss_8C.unk_00.x + (lbl_1_bss_8C.unk_18 * (sind(lbl_1_bss_8C.unk_0C.y) * cosd(lbl_1_bss_8C.unk_0C.x))); + sp28.y = lbl_1_bss_8C.unk_00.y + (lbl_1_bss_8C.unk_18 * -sind(lbl_1_bss_8C.unk_0C.x)); + sp28.z = lbl_1_bss_8C.unk_00.z + (lbl_1_bss_8C.unk_18 * (cosd(lbl_1_bss_8C.unk_0C.y) * cosd(lbl_1_bss_8C.unk_0C.x))); + sp10.x = sind(lbl_1_bss_8C.unk_0C.y) * sind(lbl_1_bss_8C.unk_0C.x); + sp10.y = cosd(lbl_1_bss_8C.unk_0C.x); + sp10.z = cosd(lbl_1_bss_8C.unk_0C.y) * sind(lbl_1_bss_8C.unk_0C.x); + sp1C = lbl_1_bss_8C.unk_00; + + Hu3DCameraPosSet(1, sp28.x, sp28.y, sp28.z, sp10.x, sp10.y, sp10.z, sp1C.x, sp1C.y, sp1C.z); + HuPrcVSleep(); + } +} + +void fn_1_189C(void) +{ + lbl_1_bss_8C.unk_00.x += (0.02f * *HuPadStkX); + lbl_1_bss_8C.unk_00.y += (0.02f * *HuPadStkY); + lbl_1_bss_8C.unk_0C.y -= (0.02f * *HuPadSubStkX); + lbl_1_bss_8C.unk_0C.x += (0.02f * *HuPadSubStkY); + lbl_1_bss_8C.unk_18 += (0.02f * *HuPadTrigL); + lbl_1_bss_8C.unk_18 -= (0.02f * *HuPadTrigR); +} + +void fn_1_1AB0(void) +{ + print8(0x20, 0x84, 1.5f, "LOOKAT : x=%.2f y=%.2f z=%.2f", lbl_1_bss_8C.unk_00.x, lbl_1_bss_8C.unk_00.y, lbl_1_bss_8C.unk_00.z); + print8(0x20, 0x94, 1.5f, "ANGLE : x=%.2f y=%.2f z=%.2f", lbl_1_bss_8C.unk_0C.x, lbl_1_bss_8C.unk_0C.y, lbl_1_bss_8C.unk_0C.z); + print8(0x20, 0xA4, 1.5f, "ZOOM : x=%.2f", lbl_1_bss_8C.unk_18); +} diff --git a/src/REL/m420dll/main.c b/src/REL/m420dll/main.c new file mode 100644 index 00000000..4bad4ddf --- /dev/null +++ b/src/REL/m420dll/main.c @@ -0,0 +1,251 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/flag.h" +#include "game/hsfman.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/wipe.h" +#include "rel_sqrt_consts.h" + +#include "REL/m420dll.h" + +s32 fn_1_198(void); +void fn_1_3D4(void); +void fn_1_43C(void); +void fn_1_D14(s32 arg0, s32 arg1); +s32 fn_1_D98(void); +void fn_1_F48(void); +void fn_1_F74(const Vec *arg0, s32 arg1); +void fn_1_1030(const Vec *arg0, s32 arg1); +void fn_1_10EC(float arg8, s32 arg0); +void fn_1_118(void); + +s32 lbl_1_bss_2C; +Process *lbl_1_bss_28; +M420DllPlayerStruct *lbl_1_bss_18[4]; +s16 lbl_1_bss_14; +s16 lbl_1_bss_12; +s16 lbl_1_bss_10; +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +Process *lbl_1_bss_4; +Process *lbl_1_bss_0; + +static const M420DllUnkStruct lbl_1_rodata_10[3] = { + { { 0.0f, 1040.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, 680.0f }, + { { 0.0f, 800.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, 680.0f }, + { { 0.0f, 310.0f, 0.0f }, { -10.0f, 0.0f, 0.0f }, 1950.0f }, +}; + +void ObjectSetup(void) +{ + lbl_1_bss_4 = omInitObjMan(1, 0x2000); + omGameSysInit(lbl_1_bss_4); + lbl_1_bss_0 = HuPrcChildCreate(fn_1_118, 0x3E8, 0x4000, 0, lbl_1_bss_4); + fn_1_198(); +} + +void fn_1_118(void) +{ + while (omSysExitReq == 0) { + HuPrcVSleep(); + } + WipeCreate(2, 0, 0x3C); + + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + HuAudFadeOut(0x64); + fn_1_3D4(); + HuPrcVSleep(); + omOvlReturnEx(1, 1); + HuPrcEnd(); +} + +s32 fn_1_198(void) +{ + s32 sp8[3]; + s32 var_r31; + s32 var_r30; + + Vec sp14[3] = { { 0.0f, 4000.0f, 100.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } }; + frand(); + fn_1_8934(); + fn_1_4964(); + fn_1_D98(); + fn_1_D14(0, 1); + Hu3DShadowCreate(30.0f, 20.0f, 10000.0f); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowPosSet(&sp14[0], &sp14[1], &sp14[2]); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + sp8[var_r31] = 0; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[var_r31].group == 0) { + lbl_1_bss_18[0] = fn_1_1B8C(var_r31, 0); + } + else { + do { + var_r30 = fn_1_8944() % 3; + } while (sp8[var_r30] != 0); + sp8[var_r30] = 1; + lbl_1_bss_18[var_r30 + 1] = fn_1_1B8C(var_r31, var_r30 + 1); + } + } + lbl_1_bss_18[1]->unk_E8 = NULL; + lbl_1_bss_18[2]->unk_E8 = lbl_1_bss_18[1]; + lbl_1_bss_18[3]->unk_E8 = lbl_1_bss_18[2]; + lbl_1_bss_28 = HuPrcChildCreate(fn_1_43C, 0x3E9, 0x4000, 0, lbl_1_bss_4); + return 1; +} + +void fn_1_3D4(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_1E14(lbl_1_bss_18[var_r31]); + } + fn_1_596C(); + fn_1_F48(); + HuPrcKill(lbl_1_bss_28); +} + +void fn_1_43C(void) +{ + s32 var_r31; + s32 var_r30; + + lbl_1_bss_C = 0; + WipeCreate(1, 0, 0x3C); + + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + fn_1_59F4(0); + fn_1_D14(1, 0x50); + HuPrcSleep(0x4E); + fn_1_D14(2, 0x3C); + HuPrcSleep(0xB4); + fn_1_59F4(2); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_18[var_r31]->unk_48 = 9; + } + lbl_1_bss_8 = HuAudSeqPlay(0x48); + lbl_1_bss_10 = MGSeqCreate(3, 0); + + while (MGSeqStatGet(lbl_1_bss_10) != 0) { + HuPrcVSleep(); + } + MGSeqKill(lbl_1_bss_10); + lbl_1_bss_12 = 0xE10; + lbl_1_bss_14 = MGSeqCreate(1, lbl_1_bss_12 / 60, -1, -1); + var_r30 = 1; + while (TRUE) { + if (lbl_1_bss_18[0]->unk_48 == 0) { + lbl_1_bss_18[0]->unk_48 = 1; + } + if ((lbl_1_bss_18[var_r30]->unk_48 == 0) && (lbl_1_bss_12 > 5)) { + lbl_1_bss_18[var_r30]->unk_48 = 3; + } + if ((lbl_1_bss_18[var_r30]->unk_00_field1) && (var_r30 != 1)) { + lbl_1_bss_18[var_r30 - 1]->unk_48 = 4; + } + if (lbl_1_bss_18[var_r30]->unk_48 == 6) { + var_r30++; + if (var_r30 > 3) { + var_r30 = 1; + lbl_1_bss_18[3]->unk_48 = 0; + } + } + if (lbl_1_bss_12 >= 0) { + if (((--lbl_1_bss_12) % 60) == 0) { + MGSeqParamSet(lbl_1_bss_14, 1, lbl_1_bss_12 / 60); + } + } + if ((fn_1_67E8(0) == 0) && (fn_1_67E8(1) == 0) && (lbl_1_bss_12 > 0)) { + HuPrcVSleep(); + } + else { + break; + } + } + if ((fn_1_67E8(0) != 0) && (fn_1_67E8(1) != 0)) { + lbl_1_bss_C = 3; + } + else if (fn_1_67E8(0) != 0) { + lbl_1_bss_C = 1; + } + else if (fn_1_67E8(1) != 0) { + lbl_1_bss_C = 2; + } + else { + lbl_1_bss_C = 3; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_18[var_r31]->unk_48 = 0xB; + } + HuPrcVSleep(); + MGSeqParamSet(lbl_1_bss_14, 2, -1); + HuAudSeqFadeOut(lbl_1_bss_8, 0x64); + lbl_1_bss_10 = MGSeqCreate(3, 1); + + while (MGSeqStatGet(lbl_1_bss_10) != 0) { + HuPrcVSleep(); + } + MGSeqKill(lbl_1_bss_10); + fn_1_6728(); + HuPrcSleep(0x3C); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_18[var_r31]->unk_48 = 0xA; + } + HuPrcSleep(0x3C); + if (lbl_1_bss_C == 3) { + lbl_1_bss_10 = MGSeqCreate(3, 2); + HuAudSStreamPlay(4); + lbl_1_bss_18[0]->unk_48 = 8; + lbl_1_bss_18[1]->unk_48 = 8; + lbl_1_bss_18[2]->unk_48 = 8; + lbl_1_bss_18[3]->unk_48 = 8; + } + else { + fn_1_59F4(1); + while (fn_1_6810() == 0) { + HuPrcVSleep(); + } + if (lbl_1_bss_C == 1) { + lbl_1_bss_10 = MGSeqCreate(5, 3, lbl_1_bss_18[0]->unk_0A, -1, -1, -1); + HuAudSStreamPlay(1); + lbl_1_bss_18[0]->unk_48 = 7; + lbl_1_bss_18[1]->unk_48 = 8; + lbl_1_bss_18[2]->unk_48 = 8; + lbl_1_bss_18[3]->unk_48 = 8; + GWPlayerCoinWinAdd(lbl_1_bss_18[0]->unk_04, 10); + } + else { + lbl_1_bss_10 = MGSeqCreate(5, 3, lbl_1_bss_18[1]->unk_0A, lbl_1_bss_18[2]->unk_0A, lbl_1_bss_18[3]->unk_0A, -1); + HuAudSStreamPlay(1); + lbl_1_bss_18[0]->unk_48 = 8; + lbl_1_bss_18[1]->unk_48 = 7; + lbl_1_bss_18[2]->unk_48 = 7; + lbl_1_bss_18[3]->unk_48 = 7; + GWPlayerCoinWinAdd(lbl_1_bss_18[1]->unk_04, 10); + GWPlayerCoinWinAdd(lbl_1_bss_18[2]->unk_04, 10); + GWPlayerCoinWinAdd(lbl_1_bss_18[3]->unk_04, 10); + } + } + HuPrcSleep(0xD2); + omSysExitReq = 1; + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_D14(s32 arg0, s32 arg1) +{ + fn_1_F74(&lbl_1_rodata_10[arg0].unk_00, arg1); + fn_1_1030(&lbl_1_rodata_10[arg0].unk_0C, arg1); + fn_1_10EC(lbl_1_rodata_10[arg0].unk_18, arg1); +} diff --git a/src/REL/m420dll/map.c b/src/REL/m420dll/map.c new file mode 100644 index 00000000..baf43997 --- /dev/null +++ b/src/REL/m420dll/map.c @@ -0,0 +1,1235 @@ +#include "ext_math.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" + +#include "REL/m420dll.h" + +typedef struct M420DllUnkMapStruct2 { + /* 0x00 */ struct { + s8 unk_00_field0 : 1; + s8 unk_00_field1 : 1; + s8 unk_00_field2 : 1; + s8 unk_00_field3 : 1; + s8 unk_00_field4 : 1; + s8 unk_00_field5 : 1; + s8 unk_00_field6 : 1; + s8 unk_00_field7 : 1; + }; + /* 0x04 */ s16 unk_02; + /* 0x04 */ Vec unk_04; + /* 0x10 */ Vec unk_10; + /* 0x1C */ Vec unk_1C; + /* 0x28 */ Vec unk_28; + /* 0x34 */ Vec unk_34; + /* 0x40 */ Vec unk_40; + /* 0x4C */ Vec unk_4C; + /* 0x58 */ Vec unk_58; + /* 0x64 */ Vec unk_64; + /* 0x70 */ float unk_70; + /* 0x74 */ float unk_74; + /* 0x78 */ s32 unk_78; + /* 0x7C */ float unk_7C; + /* 0x80 */ float unk_80; + /* 0x84 */ s32 unk_84; + /* 0x88 */ float unk_88; + /* 0x8C */ float unk_8C; + /* 0x90 */ s32 unk_90; +} M420DllUnkMapStruct2; /* size = 0x94 */ + +typedef struct M420DllUnkMapStruct { + /* 0x00 */ M420DllUnkMapStruct2 *unk_00; + /* 0x04 */ M420DllUnkMapStruct2 *unk_04; + /* 0x08 */ M420DllUnkMapStruct2 *unk_08; + /* 0x0C */ M420DllUnkMapStruct2 *unk_0C; + /* 0x10 */ M420DllUnkMapStruct2 *unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ char pad_18[4]; + /* 0x1C */ float unk_1C; + /* 0x20 */ float unk_20; + /* 0x24 */ float unk_24; + /* 0x28 */ float unk_28; + /* 0x2C */ float unk_2C; + /* 0x30 */ s32 unk_30; + /* 0x34 */ s32 unk_34; + /* 0x38 */ s32 unk_38; + /* 0x3C */ s32 unk_3C; +} M420DllUnkMapStruct; /* size = 0x40 */ + +typedef struct M420DllUnkMapStruct3 { + /* 0x00 */ Vec unk_00; + /* 0x0C */ Vec unk_0C; + /* 0x18 */ GXColor unk_18; +} M420DllUnkMapStruct3; /* size = 0x1C */ + +s32 fn_1_5A7C(s32 arg0); +void fn_1_6820(void); +void fn_1_6884(void); +void fn_1_6950(void); +void fn_1_6D0C(void); +void fn_1_6D5C(void); +void fn_1_6DF0(M420DllUnkMapStruct2 *arg0); +void fn_1_7230(M420DllUnkMapStruct2 *arg0, Vec *arg1, s32 arg2, s32 arg3); +void fn_1_7704(void); +void fn_1_7E24(void); +void fn_1_8240(void); +void fn_1_8414(void); + +M420DllUnkMapStruct3 lbl_1_data_138 = { + { 1000.0f, 2000.0f, 0.0f }, + { -0.5f, -0.5f, -0.5f }, + { 0xFF, 0xFF, 0xFF, 0xFF }, +}; +void (*lbl_1_data_154[4])() = { fn_1_7704, fn_1_7E24, fn_1_8240, fn_1_8414 }; + +static const s32 lbl_1_rodata_360[0x1B] = { + DATA_MAKE_NUM(DATADIR_M420, 0x00), + DATA_MAKE_NUM(DATADIR_M420, 0x14), + DATA_MAKE_NUM(DATADIR_M420, 0x07), + DATA_MAKE_NUM(DATADIR_M420, 0x08), + DATA_MAKE_NUM(DATADIR_M420, 0x01), + DATA_MAKE_NUM(DATADIR_M420, 0x02), + DATA_MAKE_NUM(DATADIR_M420, 0x03), + DATA_MAKE_NUM(DATADIR_M420, 0x04), + DATA_MAKE_NUM(DATADIR_M420, 0x05), + DATA_MAKE_NUM(DATADIR_M420, 0x06), + DATA_MAKE_NUM(DATADIR_M420, 0x15), + DATA_MAKE_NUM(DATADIR_M420, 0x16), + DATA_MAKE_NUM(DATADIR_M420, 0x17), + DATA_MAKE_NUM(DATADIR_M420, 0x09), + DATA_MAKE_NUM(DATADIR_M420, 0x09), + DATA_MAKE_NUM(DATADIR_M420, 0x0A), + DATA_MAKE_NUM(DATADIR_M420, 0x0B), + DATA_MAKE_NUM(DATADIR_M420, 0x0E), + DATA_MAKE_NUM(DATADIR_M420, 0x0F), + DATA_MAKE_NUM(DATADIR_M420, 0x0C), + DATA_MAKE_NUM(DATADIR_M420, 0x0D), + DATA_MAKE_NUM(DATADIR_M420, 0x12), + DATA_MAKE_NUM(DATADIR_M420, 0x11), + DATA_MAKE_NUM(DATADIR_M420, 0x10), + DATA_MAKE_NUM(DATADIR_M420, 0x10), + DATA_MAKE_NUM(DATADIR_M420, 0x13), + DATA_MAKE_NUM(DATADIR_M420, 0x13), +}; + +Process *lbl_1_bss_A40; +Process *lbl_1_bss_A3C; +Process *lbl_1_bss_A2C[4]; +s32 lbl_1_bss_A28; +s16 lbl_1_bss_9F0[0x1C]; +s16 lbl_1_bss_9EC; +M420DllUnkMapStruct2 lbl_1_bss_140[15]; +struct M420DllUnkMapStruct lbl_1_bss_C0[2]; +s32 lbl_1_bss_BC; +s32 lbl_1_bss_B8; +s32 lbl_1_bss_B4; +s32 lbl_1_bss_B0; + +s32 fn_1_4964(void) +{ + M420DllUnkMapStruct2 *var_r31; + M420DllUnkMapStruct *var_r30; + s32 var_r29; + + lbl_1_bss_A40 = HuPrcChildCreate(fn_1_6820, 0x3E9, 0x4000, 0, lbl_1_bss_4); + lbl_1_bss_A3C = HuPrcChildCreate(fn_1_6884, 0x3EA, 0x4000, 0, lbl_1_bss_4); + for (var_r29 = 0; var_r29 < 4; var_r29++) { + lbl_1_bss_A2C[var_r29] = NULL; + } + lbl_1_bss_A28 = 0; + fn_1_6D5C(); + fn_1_6950(); + + var_r31 = lbl_1_bss_140; + var_r31->unk_02 = lbl_1_bss_9F0[1]; + var_r31->unk_00_field3 = 1; + var_r31->unk_00_field0 = 0; + var_r31->unk_00_field1 = 0; + var_r31->unk_04.x = 0.0f; + var_r31->unk_04.y = 1000.0f; + var_r31->unk_04.z = 0.0f; + var_r31->unk_28.x = 0.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_4C.x = 1.0f; + var_r31->unk_4C.y = 1.0f; + var_r31->unk_4C.z = 1.0f; + fn_1_6DF0(var_r31); + + var_r31 = &lbl_1_bss_140[1]; + var_r31->unk_02 = lbl_1_bss_9F0[0xA]; + var_r31->unk_00_field3 = 1; + var_r31->unk_00_field0 = 0; + var_r31->unk_00_field1 = 0; + var_r31->unk_04.x = 0.0f; + var_r31->unk_04.y = 0.0f; + var_r31->unk_04.z = 0.0f; + var_r31->unk_28.x = 0.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_4C.x = 1.0f; + var_r31->unk_4C.y = 1.0f; + var_r31->unk_4C.z = 1.0f; + fn_1_6DF0(var_r31); + + var_r31 = &lbl_1_bss_140[2]; + var_r31->unk_02 = lbl_1_bss_9F0[0xC]; + var_r31->unk_00_field3 = 1; + var_r31->unk_00_field0 = 0; + var_r31->unk_00_field1 = 0; + var_r31->unk_04.x = 0.0f; + var_r31->unk_04.y = 0.0f; + var_r31->unk_04.z = 0.0f; + var_r31->unk_28.x = 0.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_4C.x = 1.0f; + var_r31->unk_4C.y = 1.0f; + var_r31->unk_4C.z = 1.0f; + fn_1_6DF0(var_r31); + + var_r31 = &lbl_1_bss_140[3]; + var_r31->unk_02 = lbl_1_bss_9F0[0xB]; + var_r31->unk_00_field3 = 1; + var_r31->unk_00_field0 = 0; + var_r31->unk_00_field1 = 0; + var_r31->unk_04.x = 0.0f; + var_r31->unk_04.y = 0.0f; + var_r31->unk_04.z = 0.0f; + var_r31->unk_28.x = 0.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_4C.x = 1.0f; + var_r31->unk_4C.y = 1.0f; + var_r31->unk_4C.z = 1.0f; + fn_1_6DF0(var_r31); + + var_r31 = &lbl_1_bss_140[4]; + var_r31->unk_02 = lbl_1_bss_9F0[0xD]; + var_r31->unk_00_field3 = 1; + var_r31->unk_00_field0 = 0; + var_r31->unk_00_field1 = 0; + var_r31->unk_04.x = -220.0f; + var_r31->unk_04.y = -60.0f; + var_r31->unk_04.z = 170.0f; + var_r31->unk_28.x = 0.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_4C.x = 1.0f; + var_r31->unk_4C.y = 1.0f; + var_r31->unk_4C.z = 1.0f; + fn_1_6DF0(var_r31); + + var_r31 = &lbl_1_bss_140[9]; + var_r31->unk_02 = lbl_1_bss_9F0[0x17]; + var_r31->unk_00_field3 = 1; + var_r31->unk_00_field0 = 0; + var_r31->unk_00_field1 = 0; + var_r31->unk_04.x = -170.0f; + var_r31->unk_04.y = 0.0f; + var_r31->unk_04.z = 170.0f; + var_r31->unk_28.x = 0.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_4C.x = 1.0f; + var_r31->unk_4C.y = 1.0f; + var_r31->unk_4C.z = 1.0f; + fn_1_6DF0(var_r31); + + var_r31 = &lbl_1_bss_140[11]; + var_r31->unk_02 = lbl_1_bss_9F0[0x19]; + var_r31->unk_00_field3 = 1; + var_r31->unk_00_field0 = 0; + var_r31->unk_00_field1 = 0; + var_r31->unk_04.x = -160.0f; + var_r31->unk_04.y = 0.0f; + var_r31->unk_04.z = 220.0f; + var_r31->unk_28.x = 0.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_4C.x = 1.0f; + var_r31->unk_4C.y = 1.0f; + var_r31->unk_4C.z = 1.0f; + fn_1_6DF0(var_r31); + + var_r31 = &lbl_1_bss_140[6]; + var_r31->unk_02 = lbl_1_bss_9F0[0x11]; + var_r31->unk_00_field3 = 1; + var_r31->unk_00_field0 = 0; + var_r31->unk_00_field1 = 0; + var_r31->unk_04.x = 0.0f; + var_r31->unk_04.y = -65.0f; + var_r31->unk_04.z = 0.0f; + var_r31->unk_28.x = 0.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_4C.x = 1.0f; + var_r31->unk_4C.y = 1.0f; + var_r31->unk_4C.z = 1.0f; + fn_1_6DF0(var_r31); + + var_r31 = &lbl_1_bss_140[5]; + var_r31->unk_02 = lbl_1_bss_9F0[0xE]; + var_r31->unk_00_field3 = 1; + var_r31->unk_00_field0 = 0; + var_r31->unk_00_field1 = 0; + var_r31->unk_04.x = 220.0f; + var_r31->unk_04.y = -60.0f; + var_r31->unk_04.z = 170.0f; + var_r31->unk_28.x = 0.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_4C.x = 1.0f; + var_r31->unk_4C.y = 1.0f; + var_r31->unk_4C.z = 1.0f; + fn_1_6DF0(var_r31); + + var_r31 = &lbl_1_bss_140[10]; + var_r31->unk_02 = lbl_1_bss_9F0[0x18]; + var_r31->unk_00_field3 = 1; + var_r31->unk_00_field0 = 0; + var_r31->unk_00_field1 = 0; + var_r31->unk_04.x = 190.0f; + var_r31->unk_04.y = 0.0f; + var_r31->unk_04.z = 170.0f; + var_r31->unk_28.x = 0.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_4C.x = 1.0f; + var_r31->unk_4C.y = 1.0f; + var_r31->unk_4C.z = 1.0f; + fn_1_6DF0(var_r31); + + var_r31 = &lbl_1_bss_140[12]; + var_r31->unk_02 = lbl_1_bss_9F0[0x1A]; + var_r31->unk_00_field3 = 1; + var_r31->unk_00_field0 = 0; + var_r31->unk_00_field1 = 0; + var_r31->unk_04.x = 185.0f; + var_r31->unk_04.y = 0.0f; + var_r31->unk_04.z = 220.0f; + var_r31->unk_28.x = 0.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_4C.x = 1.0f; + var_r31->unk_4C.y = 1.0f; + var_r31->unk_4C.z = 1.0f; + fn_1_6DF0(var_r31); + + var_r31 = &lbl_1_bss_140[7]; + var_r31->unk_02 = lbl_1_bss_9F0[0x12]; + var_r31->unk_00_field3 = 1; + var_r31->unk_00_field0 = 0; + var_r31->unk_00_field1 = 0; + var_r31->unk_04.x = 0.0f; + var_r31->unk_04.y = -65.0f; + var_r31->unk_04.z = 0.0f; + var_r31->unk_28.x = 0.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_4C.x = 1.0f; + var_r31->unk_4C.y = 1.0f; + var_r31->unk_4C.z = 1.0f; + fn_1_6DF0(var_r31); + + var_r31 = &lbl_1_bss_140[8]; + var_r31->unk_02 = lbl_1_bss_9F0[0x13]; + var_r31->unk_00_field3 = 1; + var_r31->unk_00_field0 = 0; + var_r31->unk_00_field1 = 0; + var_r31->unk_04.x = 0.0f; + var_r31->unk_04.y = 300.0f; + var_r31->unk_04.z = 0.0f; + var_r31->unk_28.x = 0.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_4C.x = 1.0f; + var_r31->unk_4C.y = 1.0f; + var_r31->unk_4C.z = 1.0f; + fn_1_6DF0(var_r31); + + var_r31 = &lbl_1_bss_140[13]; + var_r31->unk_02 = lbl_1_bss_9F0[3]; + var_r31->unk_00_field3 = 0; + var_r31->unk_00_field0 = 0; + var_r31->unk_00_field1 = 0; + var_r31->unk_04.x = 0.0f; + var_r31->unk_04.y = 0.0f; + var_r31->unk_04.z = 0.0f; + var_r31->unk_28.x = 0.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_4C.x = 1.0f; + var_r31->unk_4C.y = 1.0f; + var_r31->unk_4C.z = 1.0f; + fn_1_6DF0(var_r31); + + var_r31 = &lbl_1_bss_140[14]; + var_r31->unk_02 = lbl_1_bss_9F0[2]; + var_r31->unk_00_field3 = 0; + var_r31->unk_00_field0 = 0; + var_r31->unk_00_field1 = 0; + var_r31->unk_04.x = 0.0f; + var_r31->unk_04.y = 0.0f; + var_r31->unk_04.z = 0.0f; + var_r31->unk_28.x = 0.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_4C.x = 1.0f; + var_r31->unk_4C.y = 1.0f; + var_r31->unk_4C.z = 1.0f; + fn_1_6DF0(var_r31); + + for (var_r29 = 0; var_r29 < 2; var_r29++) { + var_r30 = &lbl_1_bss_C0[var_r29]; + var_r30->unk_14 = var_r29; + var_r30->unk_1C = 20.0f; + var_r30->unk_20 = 0.0f; + var_r30->unk_2C = 0.0f; + var_r30->unk_24 = 0.2f; + var_r30->unk_28 = 0.1f; + var_r30->unk_38 = 0; + var_r30->unk_3C = 0; + var_r30->unk_30 = 1; + var_r30->unk_00 = &lbl_1_bss_140[var_r29 + 13]; + var_r30->unk_04 = &lbl_1_bss_140[var_r29 + 4]; + var_r30->unk_08 = &lbl_1_bss_140[var_r29 + 6]; + var_r30->unk_0C = &lbl_1_bss_140[var_r29 + 9]; + var_r30->unk_10 = &lbl_1_bss_140[var_r29 + 11]; + } + lbl_1_bss_B8 = 0; + lbl_1_bss_B4 = 0; + lbl_1_bss_B0 = 0; + fn_1_6728(); + + { + Vec sp14 = { 0.0f, 0.0f, 0.0f }; + Vec sp8 = { 0.0f, 0.0f, -1.0f }; + HuAudFXListnerSetEX(&sp14, &sp8, 3000.0, 1000.0, 100.0, 300.0, 300.0); + HuAudFXPlay(0x5F0); + } + return 1; +} + +void fn_1_596C(void) +{ + Process *var_r30; + s32 var_r31; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = lbl_1_bss_A2C[var_r31]; + if (var_r30) { + HuPrcKill(var_r30); + } + } + fn_1_6D0C(); + HuPrcKill(lbl_1_bss_A3C); + HuPrcKill(lbl_1_bss_A40); +} + +s32 fn_1_59F4(s32 arg0) +{ + if (fn_1_5A7C(arg0) != 0) { + return 0; + } + lbl_1_bss_A2C[arg0] = HuPrcChildCreate(lbl_1_data_154[arg0], 0x3ED, 0x5000, 0, lbl_1_bss_4); + return 1; +} + +s32 fn_1_5A7C(s32 arg0) +{ + return lbl_1_bss_A2C[arg0] != NULL; +} + +s32 fn_1_5AA8(s32 arg0, float arg1) +{ + M420DllUnkMapStruct *var_r31; + s32 var_r29; + s32 var_r30; + + var_r31 = &lbl_1_bss_C0[arg0]; + if ((var_r31->unk_1C += arg1) >= 200.0f) { + var_r31->unk_1C = 200.0f; + } + var_r31->unk_38 = 1; + var_r31->unk_30 = (s32)(200.0f - var_r31->unk_1C) / 10.0f; + switch (arg0) { + case 0: + var_r29 = 3; + var_r30 = 0x15; + break; + case 1: + var_r29 = 2; + var_r30 = 0x16; + break; + } + if (var_r31->unk_1C >= 200.0f) { + if (lbl_1_bss_B0 == 0) { + var_r31->unk_3C = 1; + Hu3DMotionTimeSet(lbl_1_bss_9F0[var_r30], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_9F0[var_r30], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[var_r30], 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_9F0[var_r29], 1); + } + return 1; + } + return 0; +} + +void fn_1_5C8C(M420DllUnkMapStruct *arg0) +{ + Vec sp8; + + if (arg0->unk_38 != 0) { + if (arg0->unk_30 > 0) { + arg0->unk_30--; + } + if (arg0->unk_30 <= 0) { + sp8 = arg0->unk_04->unk_04; + sp8.y = -60.0f + arg0->unk_1C; + fn_1_7230(arg0->unk_04, &sp8, 0x1E, 0); + + sp8 = arg0->unk_08->unk_04; + sp8.y = -65.0f + arg0->unk_1C; + fn_1_7230(arg0->unk_08, &sp8, 0x1E, 0); + + sp8 = arg0->unk_0C->unk_04; + sp8.y = 40.0f + arg0->unk_1C; + fn_1_7230(arg0->unk_0C, &sp8, 0x1E, 1); + + Hu3DMotionTimeSet(arg0->unk_0C->unk_02, 0.0f); + Hu3DModelAttrReset(arg0->unk_0C->unk_02, 1); + + sp8 = arg0->unk_10->unk_04; + sp8.y = -50.0f + arg0->unk_1C; + fn_1_7230(arg0->unk_10, &sp8, 0x1E, 1); + + Hu3DMotionTimeSet(arg0->unk_10->unk_02, 0.0f); + Hu3DModelAttrReset(arg0->unk_10->unk_02, 1); + Hu3DMotionStartEndSet(arg0->unk_00->unk_02, 0.0f, 30.0f); + Hu3DMotionTimeSet(arg0->unk_00->unk_02, 0.0f); + Hu3DModelAttrReset(arg0->unk_00->unk_02, 0x40000002); + Hu3DModelAttrReset(arg0->unk_00->unk_02, 0x40000001); + arg0->unk_34 = 3; + arg0->unk_38 = 0; + arg0->unk_24 = 0.8f; + arg0->unk_28 = 0.3f; + arg0->unk_2C = 0.0f; + if (arg0->unk_14 == 0) { + HuAudFXPlay(0x5F7); + } + else { + HuAudFXPlay(0x5F8); + } + } + } + if ((Hu3DMotionEndCheck(arg0->unk_00->unk_02) != 0) && (arg0->unk_34 > 0)) { + if (--arg0->unk_34 > 0) { + Hu3DMotionTimeSet(arg0->unk_00->unk_02, 0.0f); + } + else { + Hu3DMotionStartEndSet(arg0->unk_00->unk_02, 0.0f, 1.0f); + Hu3DMotionTimeSet(arg0->unk_00->unk_02, 0.0f); + Hu3DModelAttrSet(arg0->unk_00->unk_02, 0x40000002); + } + } + if (arg0->unk_24 > 0.2f) { + if ((arg0->unk_24 -= 0.005f) <= 0.2f) { + arg0->unk_24 = 0.2f; + } + } + arg0->unk_04->unk_28.y += arg0->unk_24; + if (arg0->unk_28 > 0.05f) { + if ((arg0->unk_28 -= 0.003f) <= 0.05f) { + arg0->unk_28 = 0.05f; + } + } + arg0->unk_04->unk_4C.y = 1.0 + (arg0->unk_28 * sind((90.0f * arg0->unk_2C))); + arg0->unk_2C += 0.02f; +} + +s32 fn_1_60F0(void) +{ + float var_f31; + float var_f30; + s32 var_r31; + + if (lbl_1_bss_BC >= 6) { + return 1; + } + var_f31 = 5.0f * (6 - lbl_1_bss_BC); + var_f30 = var_f31 - 5.0f; + Hu3DMotionStartEndSet(lbl_1_bss_9F0[0xF], var_f30, var_f31); + Hu3DMotionTimeSet(lbl_1_bss_9F0[0xF], var_f31); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_9F0[0xF], 0x40000004); + lbl_1_bss_B8 = 5; + lbl_1_bss_BC += 1; + if (lbl_1_bss_BC == 6) { + var_r31 = 1; + } + else { + var_r31 = 0; + } + return var_r31; +} + +void fn_1_6268(void) +{ + float var_f31 = 0.0f; + float var_f30 = 30.0f; + + Hu3DMotionStartEndSet(lbl_1_bss_9F0[0xF], var_f31, var_f30); + Hu3DMotionTimeSet(lbl_1_bss_9F0[0xF], var_f31); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], 0x40000001); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], 0x40000004); + Hu3DMotionStartEndSet(lbl_1_bss_9F0[0x10], var_f31, var_f30); + Hu3DMotionTimeSet(lbl_1_bss_9F0[0x10], var_f31); + lbl_1_bss_BC = 0; +} + +void fn_1_636C(void) +{ + float var_f31 = 0.0f; + float var_f30 = 30.0f; + + Hu3DMotionStartEndSet(lbl_1_bss_9F0[0x14], var_f31, var_f30); + Hu3DMotionTimeSet(lbl_1_bss_9F0[0x14], var_f31); +} + +void fn_1_63EC(void) +{ + float var_f31 = 5.0f * (6 - lbl_1_bss_BC); + float var_f30 = 30.0f; + + Hu3DMotionStartEndSet(lbl_1_bss_9F0[0xF], var_f31, var_f30); + Hu3DMotionTimeSet(lbl_1_bss_9F0[0xF], var_f31); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], 0x40000001); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], 0x40000004); + lbl_1_bss_BC = 0; + lbl_1_bss_B8 = 0; +} + +s32 fn_1_650C(void) +{ + s32 var_r31 = 0; + + if ((lbl_1_bss_BC == 6) && (lbl_1_bss_B8 == 0)) { + var_r31 = 1; + } + return var_r31; +} + +void fn_1_6554(void) +{ + Vec sp8; + M420DllUnkMapStruct2 *var_r31; + + var_r31 = &lbl_1_bss_140[8]; + var_r31->unk_04.x = 480.0f; + var_r31->unk_04.y = 800.0f; + var_r31->unk_04.z = -314.0f; + var_r31->unk_28.x = 0.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + fn_1_6DF0(var_r31); + sp8.x = 480.0f; + sp8.y = 370.0f; + sp8.z = -314.0f; + Hu3DModelAttrReset(var_r31->unk_02, 1); + fn_1_7230(var_r31, &sp8, 0x14, 0); + Hu3DMotionTimeSet(fn_1_6660(), 0.0f); + Hu3DModelAttrSet(fn_1_6660(), 0x40000002); +} + +s16 fn_1_6660(void) +{ + return lbl_1_bss_140[8].unk_02; +} + +s32 fn_1_6670(void) +{ + M420DllUnkMapStruct2 *var_r31 = &lbl_1_bss_140[8]; + return var_r31->unk_00_field0; +} + +void fn_1_669C(s32 arg0) +{ + M420DllUnkMapStruct2 *var_r31 = &lbl_1_bss_140[8]; + if (arg0 == 0) { + var_r31->unk_04.x = 0.0f; + var_r31->unk_04.y = 0.0f; + var_r31->unk_04.z = 0.0f; + fn_1_6DF0(var_r31); + } + var_r31->unk_00_field3 = arg0; +} + +void fn_1_6728(void) +{ + M420DllUnkMapStruct2 *var_r31 = &lbl_1_bss_140[8]; + var_r31->unk_04.x = 0.0f; + var_r31->unk_04.y = 1000.0f; + var_r31->unk_04.z = 0.0f; + fn_1_6DF0(var_r31); + Hu3DModelAttrSet(lbl_1_bss_9F0[0x13], 1); +} + +s32 fn_1_67A4(s32 arg0) +{ + M420DllUnkMapStruct *var_r31 = &lbl_1_bss_C0[arg0]; + return var_r31->unk_1C >= 200.0f; +} + +s32 fn_1_67E8(s32 arg0) +{ + M420DllUnkMapStruct *var_r31 = &lbl_1_bss_C0[arg0]; + return var_r31->unk_3C; +} + +s32 fn_1_6810(void) +{ + return lbl_1_bss_B4; +} + +void fn_1_6820(void) +{ + while (TRUE) { + if (lbl_1_bss_B8 > 0) { + if (--lbl_1_bss_B8 <= 0) { + Hu3DModelAttrSet(lbl_1_bss_9F0[0xF], 0x40000002); + } + } + HuPrcVSleep(); + } +} + +void fn_1_6884(void) +{ + s32 var_r31; + M420DllUnkMapStruct *var_r30; + M420DllUnkMapStruct *var_r29; + + while (TRUE) { + for (var_r31 = 0; var_r31 < 0xF; var_r31++) { + fn_1_6DF0(&lbl_1_bss_140[var_r31]); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + fn_1_5C8C(&lbl_1_bss_C0[var_r31]); + } + var_r30 = lbl_1_bss_C0; + if ((var_r30->unk_1C >= 200.0f) || (var_r29 = &lbl_1_bss_C0[1], var_r29->unk_1C >= 200.0f)) { + lbl_1_bss_B0 = 1; + } + HuPrcVSleep(); + } +} + +void fn_1_6950(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x1B; var_r31++) { + lbl_1_bss_9F0[var_r31] = Hu3DModelCreateFile(lbl_1_rodata_360[var_r31]); + } + Hu3DModelAttrSet(lbl_1_bss_9F0[1], 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_9F0[0xA], 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_9F0[3], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_9F0[2], 0x40000002); + Hu3DModelPosSet(lbl_1_bss_9F0[0xF], -219.0f, 300.0f, -92.0f); + Hu3DModelRotSet(lbl_1_bss_9F0[0xF], 0.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_9F0[0x10], 0.0f, 0.0f, 0.0f); + Hu3DModelShadowMapSet(lbl_1_bss_9F0[0]); + Hu3DModelShadowMapSet(lbl_1_bss_9F0[0xD]); + Hu3DModelShadowMapSet(lbl_1_bss_9F0[0xE]); + Hu3DModelShadowSet(lbl_1_bss_9F0[0xF]); + Hu3DModelShadowSet(lbl_1_bss_9F0[1]); + Hu3DModelShadowSet(lbl_1_bss_9F0[0xA]); + Hu3DModelShadowSet(lbl_1_bss_9F0[0xB]); + Hu3DModelShadowSet(lbl_1_bss_9F0[0x10]); + Hu3DModelShadowSet(lbl_1_bss_9F0[0x14]); + Hu3DModelShadowSet(lbl_1_bss_9F0[0x13]); + Hu3DModelAttrSet(lbl_1_bss_9F0[4], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[5], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[6], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[7], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[8], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[9], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[0xB], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[0xC], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[0x15], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[0x16], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[0x17], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[0x18], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[0x19], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[0x1A], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[0xF], 0x40000002); + Hu3DMotionStartEndSet(lbl_1_bss_9F0[0xF], 30.0f, 30.0f); + Hu3DMotionTimeSet(lbl_1_bss_9F0[0xF], 30.0f); + Hu3DModelAttrSet(lbl_1_bss_9F0[0xF], 0x40000002); + Hu3DModelHookSet(lbl_1_bss_9F0[1], "itemhook_sao", lbl_1_bss_9F0[0xA]); +} + +void fn_1_6D0C(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x1B; var_r31++) { + Hu3DModelKill(lbl_1_bss_9F0[var_r31]); + } +} + +void fn_1_6D5C(void) +{ + LightData *var_r31; + + Hu3DLighInit(); + lbl_1_bss_9EC = Hu3DGLightCreateV(&lbl_1_data_138.unk_00, &lbl_1_data_138.unk_0C, &lbl_1_data_138.unk_18); + Hu3DGLightInfinitytSet(lbl_1_bss_9EC); + var_r31 = &Hu3DGlobalLight[lbl_1_bss_9EC]; + var_r31->unk_00 |= 0x8000; +} + +void fn_1_6DF0(M420DllUnkMapStruct2 *arg0) +{ + float var_f31; + + if (arg0->unk_00_field3) { + if (arg0->unk_00_field0) { + switch (arg0->unk_78) { + case 0: + var_f31 = arg0->unk_70; + break; + case 1: + var_f31 = sind((90.0f * arg0->unk_70)); + var_f31 *= var_f31; + break; + case 2: + var_f31 = sind((90.0f * arg0->unk_70)); + var_f31 *= var_f31 * var_f31; + break; + } + arg0->unk_04.x = arg0->unk_10.x + (var_f31 * (arg0->unk_1C.x - arg0->unk_10.x)); + arg0->unk_04.y = arg0->unk_10.y + (var_f31 * (arg0->unk_1C.y - arg0->unk_10.y)); + arg0->unk_04.z = arg0->unk_10.z + (var_f31 * (arg0->unk_1C.z - arg0->unk_10.z)); + if ((arg0->unk_70 += arg0->unk_74) >= 1.0f) { + arg0->unk_04 = arg0->unk_1C; + arg0->unk_00_field0 = 0; + } + } + Hu3DModelPosSet(arg0->unk_02, arg0->unk_04.x, arg0->unk_04.y, arg0->unk_04.z); + if (arg0->unk_00_field1) { + switch (arg0->unk_84) { + case 0: + var_f31 = arg0->unk_7C; + break; + case 1: + var_f31 = sind((90.0f * arg0->unk_7C)); + var_f31 *= var_f31; + break; + } + arg0->unk_28.x = arg0->unk_34.x + (var_f31 * (arg0->unk_40.x - arg0->unk_34.x)); + arg0->unk_28.y = arg0->unk_34.y + (var_f31 * (arg0->unk_40.y - arg0->unk_34.y)); + arg0->unk_28.z = arg0->unk_34.z + (var_f31 * (arg0->unk_40.z - arg0->unk_34.z)); + if ((arg0->unk_7C += arg0->unk_80) >= 1.0f) { + arg0->unk_28 = arg0->unk_40; + arg0->unk_00_field1 = 0; + } + } + Hu3DModelRotSet(arg0->unk_02, arg0->unk_28.x, arg0->unk_28.y, arg0->unk_28.z); + if (arg0->unk_00_field2) { + switch (arg0->unk_90) { + case 0: + var_f31 = arg0->unk_88; + break; + case 1: + var_f31 = sind((90.0f * arg0->unk_88)); + var_f31 *= var_f31; + break; + } + arg0->unk_4C.x = arg0->unk_58.x + (var_f31 * (arg0->unk_64.x - arg0->unk_58.x)); + arg0->unk_4C.y = arg0->unk_58.y + (var_f31 * (arg0->unk_64.y - arg0->unk_58.y)); + arg0->unk_4C.z = arg0->unk_58.z + (var_f31 * (arg0->unk_64.z - arg0->unk_58.z)); + if ((arg0->unk_88 += arg0->unk_8C) >= 1.0f) { + arg0->unk_4C = arg0->unk_64; + arg0->unk_00_field2 = 0; + } + } + Hu3DModelScaleSet(arg0->unk_02, arg0->unk_4C.x, arg0->unk_4C.y, arg0->unk_4C.z); + } +} + +void fn_1_7230(M420DllUnkMapStruct2 *arg0, Vec *arg1, s32 arg2, s32 arg3) +{ + arg0->unk_1C = *arg1; + arg0->unk_10 = arg0->unk_04; + arg0->unk_70 = 0.0f; + arg0->unk_74 = 1.0f / arg2; + arg0->unk_78 = arg3; + arg0->unk_00_field0 = 1; +} + +void fn_1_72C8(M420DllUnkMapStruct2 *arg0, Vec *arg1, s32 arg2, s32 arg3) +{ + arg0->unk_40 = *arg1; + arg0->unk_34 = arg0->unk_28; + arg0->unk_7C = 0.0f; + arg0->unk_80 = 1.0f / arg2; + arg0->unk_84 = arg3; + arg0->unk_00_field1 = 1; +} + +void fn_1_7360(M420DllUnkMapStruct2 *arg0, Vec *arg1, s32 arg2, s32 arg3) +{ + arg0->unk_64 = *arg1; + arg0->unk_58 = arg0->unk_4C; + arg0->unk_88 = 0.0f; + arg0->unk_8C = 1.0f / arg2; + arg0->unk_90 = arg3; + arg0->unk_00_field2 = 1; +} + +float fn_1_73F8(float arg8) +{ + float var_f31; + float var_f30; + + if (arg8 < 0.0f) { + arg8 = -arg8; + } + if (arg8 < 1.0f) { + var_f31 = (4.0f + ((arg8 * (3.0f * arg8 * arg8)) - (6.0f * arg8 * arg8))) / 6.0f; + } + else if (arg8 < 2.0f) { + var_f30 = arg8 - 2.0f; + var_f31 = (var_f30 * (-var_f30 * var_f30)) / 6.0f; + } + else { + var_f31 = 0.0f; + } + return var_f31; +} + +void fn_1_74F8(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r29 = 0xB; + var_f30 = 0.0f; + var_f29 = 0.0f; + for (var_r31 = -2; var_r31 <= var_r29 + 2; var_r31++) { + var_r30 = var_r31; + if (var_r31 < 0) { + var_r30 = 0; + } + if (var_r31 > var_r29) { + var_r30 = var_r29; + } + var_f31 = arg8 - var_r31; + if (var_f31 < 0.0f) { + var_f31 = -var_f31; + } + if (var_f31 < 1.0f) { + var_f27 = (4.0f + ((var_f31 * (3.0f * var_f31 * var_f31)) - (6.0f * var_f31 * var_f31))) / 6.0f; + } + else if (var_f31 < 2.0f) { + var_f28 = var_f31 - 2.0f; + var_f27 = (var_f28 * (-var_f28 * var_f28)) / 6.0f; + } + else { + var_f27 = 0.0f; + } + var_f25 = var_f27; + var_f26 = var_f25; + var_f30 += var_f26 * arg0[var_r30]; + var_f29 += var_f26 * arg1[var_r30]; + } + *arg2 = var_f30; + *arg3 = var_f29; +} + +void fn_1_7704(void) +{ + Vec sp20; + Vec sp14; + Vec sp8; + + M420DllUnkMapStruct2 *var_r31; + s32 var_r29; + s32 var_r28; + + var_r28 = 0; + var_r31 = &lbl_1_bss_140[0]; + sp20.x = 0.0f; + sp20.y = 1000.0f; + sp20.z = 0.0f; + + sp14.x = 0.0f; + sp14.y = 0.0f; + sp14.z = 0.0f; + + sp8.x = 1.0f; + sp8.y = 1.0f; + sp8.z = 1.0f; + + fn_1_7230(var_r31, &sp20, 1, 0); + fn_1_72C8(var_r31, &sp14, 1, 0); + var_r28 = HuAudFXEmiterPlay(0x5EF, &sp20); + sp20.y = 750.0f; + fn_1_7230(var_r31, &sp20, 80, 1); + HuPrcSleep(0x50); + { + float var_f30; + float sp5C[12] = { + 0.0f, + 50.0f, + 300.0f, + 350.0f, + 300.0f, + 0.0f, + -300.0f, + -350.0f, + -350.0f, + -300.0f, + -100.0f, + 0.0f, + }; + float sp2C[12] = { + 750.0f, + 700.0f, + 600.0f, + 500.0f, + 400.0f, + 300.0f, + 350.0f, + 400.0f, + 450.0f, + 500.0f, + 600.0f, + 900.0f, + }; + float var_f24 = 0.050000004f; + for (var_f30 = -1.0f; var_f30 < 12.0f; var_f30 += var_f24) { + fn_1_74F8(sp5C, sp2C, &sp20.x, &sp20.y, var_f30); + fn_1_7230(var_r31, &sp20, 1, 0); + HuAudFXEmiterUpDate(var_r28, &sp20); + HuPrcVSleep(); + } + } + for (var_r29 = 0; var_r29 < 0x1E; var_r29++) { + Hu3DModelTPLvlSet(lbl_1_bss_9F0[1], 1.0f - (0.033333335f * var_r29)); + Hu3DModelTPLvlSet(lbl_1_bss_9F0[0xA], 1.0f - (0.033333335f * var_r29)); + HuAudFXEmiterUpDate(var_r28, &sp20); + HuPrcSleep(1); + } + HuAudFXStop(var_r28); + sp20.x = 1000.0f; + sp20.y = 0.0f; + sp20.z = 0.0f; + fn_1_7230(var_r31, &sp20, 1, 0); + HuPrcSleep(1); + Hu3DModelTPLvlSet(lbl_1_bss_9F0[1], 1.0f); + Hu3DModelTPLvlSet(lbl_1_bss_9F0[0xA], 1.0f); + *lbl_1_bss_A2C = NULL; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_7E24(void) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + + M420DllUnkMapStruct2 *var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + M420DllUnkMapStruct *var_r27; + s32 var_r26; + s32 var_r25; + + var_r31 = &lbl_1_bss_140[0]; + { + Vec sp8 = { 0.0f, 0.0f, 0.0f }; + var_f29 = 800.0f; + var_f28 = 10.0f; + var_r29 = 0; + var_r28 = 0; + var_r30 = 0; + var_r31->unk_28.x = 0.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_f31 = 0.0f; + var_f26 = 0.005f; + var_r27 = &lbl_1_bss_C0[1]; + var_r26 = var_r27->unk_3C; + var_r25 = var_r26; + if (var_r25 != 0) { + var_f27 = 220.0f; + } + else { + var_f27 = -220.0f; + } + + for (var_f30 = var_f27; var_f31 < 1.0f; var_f31 += var_f26) { + sp8.x = (var_f29 * cosd((-180.0f * var_f31))) - (var_f28 * sind((-180.0f * var_f31))); + sp8.y = 1200.0 + ((var_f28 * cosd((-180.0f * var_f31))) + (var_f29 * sind((-180.0f * var_f31)))); + sp8.z = 0.0f; + if (var_f31 <= 0.0f) { + var_r30 = HuAudFXEmiterPlay(0x5EF, &sp8); + } + if ((sp8.x < (200.0f + var_f30)) && (var_r28 == 0)) { + Hu3DModelHookReset(lbl_1_bss_9F0[1]); + Hu3DModelAttrSet(lbl_1_bss_9F0[0xA], 1); + Hu3DModelHookSet(lbl_1_bss_9F0[1], "itemhook_sao", lbl_1_bss_9F0[0xC]); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xC], 1); + Hu3DMotionTimeSet(lbl_1_bss_9F0[0xC], 0.0f); + var_r28 = 1; + } + if ((sp8.x < var_f30) && (var_r29 == 0)) { + sp8.x = var_f30; + if (lbl_1_bss_A2C[3] == NULL) { + lbl_1_bss_A2C[3] = HuPrcChildCreate(lbl_1_data_154[3], 0x3ED, 0x5000, 0, lbl_1_bss_4); + } + var_r29 = 1; + } + fn_1_7230(var_r31, &sp8, 1, 0); + HuAudFXEmiterUpDate(var_r30, &sp8); + HuPrcVSleep(); + } + } + HuAudFXStop(var_r30); + lbl_1_bss_A2C[1] = NULL; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_8240(void) +{ + Hu3DModelAttrReset(lbl_1_bss_9F0[4], 1); + Hu3DMotionTimeSet(lbl_1_bss_9F0[4], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_9F0[6], 1); + Hu3DMotionTimeSet(lbl_1_bss_9F0[6], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_9F0[8], 1); + Hu3DMotionTimeSet(lbl_1_bss_9F0[8], 0.0f); + HuPrcSleep(0x78); + Hu3DModelAttrSet(lbl_1_bss_9F0[4], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[6], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[8], 1); + Hu3DModelAttrReset(lbl_1_bss_9F0[5], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[5], 0x40000001); + Hu3DMotionTimeSet(lbl_1_bss_9F0[5], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_9F0[7], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[7], 0x40000001); + Hu3DMotionTimeSet(lbl_1_bss_9F0[7], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_9F0[9], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[9], 0x40000001); + Hu3DMotionTimeSet(lbl_1_bss_9F0[9], 0.0f); + lbl_1_bss_A2C[2] = NULL; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_8414(void) +{ + Vec sp14; + Vec sp8; + + float var_f31; + float var_f30; + + M420DllUnkMapStruct2 *var_r31; + M420DllUnkMapStruct *var_r30; + M420DllUnkMapStruct2 *var_r29; + M420DllUnkMapStruct2 *var_r28; + M420DllUnkMapStruct2 *var_r27; + M420DllUnkMapStruct2 *var_r26; + s32 var_r25; + + var_r31 = &lbl_1_bss_140[2]; + var_r27 = &lbl_1_bss_140[3]; + var_r26 = &lbl_1_bss_140[0]; + Hu3DModelHookReset(lbl_1_bss_9F0[1]); + var_r31->unk_04 = var_r26->unk_04; + var_r31->unk_04.y -= 100.0f; + var_r31->unk_04.z += 148.0f; + fn_1_6DF0(var_r31); + + sp14 = var_r31->unk_04; + sp14.y = 80.0f; + sp14.z = 170.0f; + + sp8 = var_r31->unk_28; + sp8.x += 45.0f; + + fn_1_7230(var_r31, &sp14, 30, 0); + fn_1_72C8(var_r31, &sp8, 30, 0); + HuPrcSleep(0xA); + HuAudFXPlay(0x5F5); + var_r25 = fn_1_67A4(0) != 0 ? 0 : 1; + var_r30 = &lbl_1_bss_C0[var_r25]; + if (var_r25 == 0) { + var_f30 = -220.0f; + } + else { + var_f30 = 220.0f; + } + var_f31 = var_f30; + + sp14 = var_r30->unk_0C->unk_04; + sp14.y = 40.0f + var_r30->unk_1C; + sp14.x = var_f31; + + var_r29 = var_r30->unk_0C; + fn_1_7230(var_r29, &sp14, 30, 1); + + Hu3DMotionTimeSet(var_r30->unk_0C->unk_02, 0.0f); + Hu3DModelAttrReset(var_r30->unk_0C->unk_02, 1); + sp14 = var_r30->unk_10->unk_04; + sp14.y = -50.0f + var_r30->unk_1C; + sp14.x = var_f31; + var_r28 = var_r30->unk_10; + fn_1_7230(var_r28, &sp14, 30, 1); + Hu3DMotionTimeSet(var_r30->unk_10->unk_02, 0.0f); + Hu3DModelAttrReset(var_r30->unk_10->unk_02, 1); + HuPrcSleep(5); + lbl_1_bss_B4 = 1; + sp8.x = 0.0f; + fn_1_72C8(var_r31, &sp8, 15, 1); + HuPrcSleep(0xF); + var_r27->unk_04 = var_r31->unk_04; + Hu3DModelAttrSet(var_r31->unk_02, 1); + Hu3DModelAttrReset(var_r27->unk_02, 1); + Hu3DMotionTimeSet(var_r27->unk_02, 0.0f); + Hu3DModelAttrReset(var_r27->unk_02, 0x40000002); + Hu3DModelAttrSet(var_r27->unk_02, 0x40000001); + HuPrcSleep(0x78); + lbl_1_bss_A2C[3] = NULL; + HuPrcEnd(); + + while (TRUE) { + HuPrcVSleep(); + } +} diff --git a/src/REL/m420dll/player.c b/src/REL/m420dll/player.c new file mode 100644 index 00000000..2a749b74 --- /dev/null +++ b/src/REL/m420dll/player.c @@ -0,0 +1,992 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/esprite.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/wipe.h" + +#include "REL/m420dll.h" + +typedef void (*M420DllUnkFunc)(M420DllPlayerStruct *); + +typedef struct M420DllUnkStruct2 { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ s32 unk_18; + /* 0x1C */ s32 unk_1C; +} M420DllUnkStruct2; /* size = 0x20 */ + +void fn_1_1F14(void); +void fn_1_1F54(M420DllPlayerStruct *arg0); +void fn_1_1F94(M420DllPlayerStruct *arg0); +void fn_1_200C(M420DllPlayerStruct *arg0); +void fn_1_20EC(M420DllPlayerStruct *arg0); +void fn_1_211C(M420DllPlayerStruct *arg0); +void fn_1_2174(M420DllPlayerStruct *arg0); +void fn_1_2260(M420DllPlayerStruct *arg0); +void fn_1_22CC(M420DllPlayerStruct *arg0); +void fn_1_276C(M420DllPlayerStruct *arg0); +void fn_1_2CE0(M420DllPlayerStruct *arg0); +void fn_1_2D7C(M420DllPlayerStruct *arg0); +void fn_1_2EA8(M420DllPlayerStruct *arg0); +void fn_1_3098(M420DllPlayerStruct *arg0); +void fn_1_326C(M420DllPlayerStruct *arg0); +void fn_1_3450(M420DllPlayerStruct *arg0); +s32 fn_1_34AC(M420DllPlayerStruct *arg0); +void fn_1_355C(M420DllPlayerStruct *arg0); +void fn_1_36E4(M420DllPlayerStruct *arg0); +void fn_1_374C(M420DllPlayerStruct *arg0); +void fn_1_378C(M420DllPlayerStruct *arg0); +void fn_1_3854(void); +void fn_1_3970(M420DllPlayerStruct *arg0); +void fn_1_3F94(M420DllPlayerStruct *arg0); +void fn_1_4294(M420DllPlayerStruct *arg0); +void fn_1_4574(M420DllPlayerStruct *arg0); +void fn_1_476C(M420DllPlayerStruct *arg0); + +M420DllUnkStruct2 lbl_1_data_50[4] = { + { 0x19, 0x01, 0x2A, 0x08, 0x2D, 0x10, 0x01, 0x01 }, + { 0x19, 0x01, 0x22, 0x06, 0x22, 0x0C, 0x01, 0x01 }, + { 0x19, 0x01, 0x1B, 0x05, 0x14, 0x0A, 0x01, 0x01 }, + { 0x19, 0x01, 0x14, 0x04, 0x0A, 0x08, 0x01, 0x01 }, +}; + +// TODO MAKE_NUM +static const s32 lbl_1_rodata_F8[8][0xB] = { + { 0x5F0000, 0x5F0017, 0x5F0018, 0x5F0068, 0x5F0069, 0x5F006A, 0x5F0035, 0x5F006B, 0x5F006E, 0x5F0049, 0x33001B }, + { 0x1A0000, 0x1A0017, 0x1A0018, 0x1A0068, 0x1A0069, 0x1A006A, 0x1A0035, 0x1A006B, 0x1A006E, 0x1A0049, 0x33001C }, + { 0x6D0000, 0x6D0017, 0x6D0018, 0x6D0068, 0x6D0069, 0x6D006A, 0x6D0035, 0x6D006B, 0x6D006E, 0x6D0049, 0x33001D }, + { 0x8A0000, 0x8A0017, 0x8A0018, 0x8A0068, 0x8A0069, 0x8A006A, 0x8A0035, 0x8A006B, 0x8A006E, 0x8A0049, 0x33001E }, + { 0x850000, 0x850017, 0x850018, 0x850068, 0x850069, 0x85006A, 0x850035, 0x85006B, 0x85006E, 0x850049, 0x33001F }, + { 0x110000, 0x110017, 0x110018, 0x110068, 0x110069, 0x11006A, 0x110035, 0x11006B, 0x11006E, 0x110049, 0x330020 }, + { 0x0D0000, 0x0D0017, 0x0D0018, 0x0D0068, 0x0D0069, 0x0D006A, 0x0D0035, 0x0D006B, 0x0D006E, 0x0D0049, 0x330021 }, + { 0x810000, 0x810017, 0x810018, 0x810068, 0x810069, 0x81006A, 0x810035, 0x81006B, 0x81006E, 0x810049, 0x330022 }, +}; +static const Vec lbl_1_rodata_258[4][2] = { + { { -372.0f, 300.0f, -220.0f }, { 0.0f, 50.0f, 0.0f } }, + { { 435.0f, 300.0f, -260.0f }, { 0.0f, 140.0f, 0.0f } }, + { { 315.0f, 300.0f, -153.0f }, { 0.0f, 140.0f, 0.0f } }, + { { 195.0f, 300.0f, -46.0f }, { 0.0f, 140.0f, 0.0f } }, +}; + +M420DllPlayerStruct *fn_1_1B8C(s32 arg0, s32 arg1) +{ + M420DllPlayerStruct *var_r31; + s32 var_r30; + + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M420DllPlayerStruct), MEMORY_DEFAULT_NUM); + if (!var_r31) { + OSReport("M420PlayerCreate ERROR...\n"); + return NULL; + } + var_r31->unk_04 = arg0; + var_r31->unk_4C = arg1; + var_r31->unk_08 = GWPlayerCfg[arg0].diff; + var_r31->unk_00_field0 = GWPlayerCfg[arg0].iscom; + var_r31->unk_0A = GWPlayerCfg[arg0].character; + var_r31->unk_0C = GWPlayerCfg[arg0].pad_idx; + var_r31->unk_10 = lbl_1_rodata_258[arg1][0]; + var_r31->unk_1C = lbl_1_rodata_258[arg1][1]; + var_r31->unk_48 = 0; + var_r31->unk_50 = 0; + var_r31->unk_00_field2 = 0; + var_r31->unk_00_field1 = 0; + var_r31->unk_E8 = NULL; + for (var_r30 = 0; var_r30 < 0xA; var_r30++) { + var_r31->unk_84[var_r30] = 7; + } + fn_1_1F54(var_r31); + fn_1_1F94(var_r31); + + switch (arg1) { + case 0: + if (var_r31->unk_0A == 5) { + CharModelMotionSet(var_r31->unk_0A, var_r31->unk_AE[0xA]); + Hu3DMotionStartEndSet(var_r31->unk_AC, 0.0f, 1.0f); + Hu3DMotionTimeSet(var_r31->unk_AC, 0.0f); + } + else { + CharModelMotionSet(var_r31->unk_0A, var_r31->unk_AE[0]); + } + break; + case 1: + case 2: + case 3: + var_r31->unk_1C.y = 0.0f; + CharModelMotionSet(var_r31->unk_0A, var_r31->unk_AE[0]); + break; + default: + break; + } + + CharModelMotionDataClose(var_r31->unk_0A); + fn_1_200C(var_r31); + var_r31->unk_40 = HuPrcChildCreate(fn_1_1F14, 0x64, 0x5000, 0, lbl_1_bss_4); + var_r31->unk_40->user_data = var_r31; + return var_r31; +} + +void fn_1_1E14(M420DllPlayerStruct *arg0) +{ + fn_1_2174(arg0); + fn_1_211C(arg0); + fn_1_20EC(arg0); + HuPrcKill(arg0->unk_40); + HuMemDirectFree(arg0); +} + +void fn_1_1E64(M420DllPlayerStruct *arg0, s32 arg1, s32 arg2) +{ + switch (arg1) { + case 0: + omVibrate(arg0->unk_04, arg2, 6, 6); + break; + case 1: + omVibrate(arg0->unk_04, arg2, 4, 2); + break; + case 2: + omVibrate(arg0->unk_04, arg2, 0xC, 0); + break; + } +} + +M420DllUnkFunc lbl_1_data_EC[0xC] = { + fn_1_2260, + fn_1_22CC, + fn_1_2D7C, + fn_1_276C, + fn_1_2CE0, + fn_1_2EA8, + fn_1_2260, + fn_1_4574, + fn_1_476C, + fn_1_3F94, + fn_1_4294, + fn_1_3970, +}; + +void fn_1_1F14(void) +{ + M420DllPlayerStruct *var_r31 = HuPrcCurrentGet()->user_data; + while (TRUE) { + lbl_1_data_EC[var_r31->unk_48](var_r31); + } +} + +void fn_1_1F54(M420DllPlayerStruct *arg0) +{ + arg0->unk_AC = CharModelCreate(arg0->unk_0A, 2); + Hu3DModelShadowSet(arg0->unk_AC); +} + +void fn_1_1F94(M420DllPlayerStruct *arg0) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + arg0->unk_AE[var_r31] = CharModelMotionCreate(arg0->unk_0A, lbl_1_rodata_F8[arg0->unk_0A][var_r31]); + } +} + +void fn_1_200C(M420DllPlayerStruct *arg0) +{ + s32 var_r30; + + for (var_r30 = 0; var_r30 <= 9; var_r30++) { + arg0->unk_C4[var_r30] = espEntry(0x330018, 0, 0); + espDispOff(arg0->unk_C4[var_r30]); + } + switch (arg0->unk_4C) { + case 0: + arg0->unk_D8 = espEntry(0x330019, 1, 0); + break; + case 1: + case 2: + case 3: + arg0->unk_D8 = espEntry(0x33001A, 1, 0); + break; + default: + break; + } + espDispOff(arg0->unk_D8); + espTPLvlSet(arg0->unk_D8, 0.8f); +} + +void fn_1_20EC(M420DllPlayerStruct *arg0) +{ + CharModelKill(arg0->unk_0A); +} + +void fn_1_211C(M420DllPlayerStruct *arg0) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + CharModelMotionKill(arg0->unk_0A, arg0->unk_AE[var_r31]); + } +} + +void fn_1_2174(M420DllPlayerStruct *arg0) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0xB; var_r31++) { + espKill(arg0->unk_C4[var_r31]); + } +} + +void fn_1_21C8(M420DllPlayerStruct *arg0, Vec *arg1, s32 arg2, s32 arg3) +{ + arg0->unk_34 = *arg1; + arg0->unk_28 = arg0->unk_1C; + arg0->unk_DC = 0.0f; + arg0->unk_E0 = 1.0f / arg2; + arg0->unk_E4 = arg3; + arg0->unk_00_field2 = 1; +} + +void inline fn_1_2260_alt(M420DllPlayerStruct *arg0, s32 arg1) +{ + s32 var_r30; + s32 var_r29; + + for (var_r30 = 0; var_r30 < arg1; var_r30++) { + fn_1_355C(arg0); + var_r29 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r29) { + break; + } + } +} + +void fn_1_2260(M420DllPlayerStruct *arg0) +{ + s32 var_r30; + s32 var_r29; + + while (TRUE) { + for (var_r30 = 0; var_r30 < 1; var_r30++) { + fn_1_355C(arg0); + var_r29 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r29) { + return; + } + } + } +} + +void fn_1_22CC(M420DllPlayerStruct *arg0) +{ + float var_f31; + float var_f30; + M420DllUnkStruct2 *var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r26; + s32 var_r23; + s32 var_r21; + s32 var_r18; + + var_r30 = &lbl_1_data_50[arg0->unk_08]; + fn_1_3098(arg0); + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[8], 0.0f, 10.0f, 0x40000001); + arg0->unk_50 = 0; + arg0->unk_58 = var_r30->unk_00 + (fn_1_8944() % var_r30->unk_04); + + while (arg0->unk_50 < 6) { + fn_1_326C(arg0); + while (var_r29 == 0) { + if (arg0->unk_00_field0 == 0) { + var_r29 = fn_1_34AC(arg0); + } + else if (arg0->unk_58 > 0) { + arg0->unk_58--; + var_r29 = 0; + } + else if ((fn_1_8944() % 30) != 0) { + var_r29 = 1; + arg0->unk_58 = (var_r30->unk_08 - (var_r30->unk_0C / 2)) + (fn_1_8944() % var_r30->unk_0C); + } + else { + var_r29 = 2; + arg0->unk_58 = (var_r30->unk_08 - (var_r30->unk_0C / 2)) + (fn_1_8944() % var_r30->unk_0C); + } + switch (var_r29) { + case 0: + fn_1_2260(arg0); + break; + case 1: + var_f31 = 5.0f * arg0->unk_50; + var_f30 = 5.0f + var_f31; + CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[5]); + Hu3DMotionStartEndSet(arg0->unk_AC, var_f31, var_f30); + Hu3DMotionTimeSet(arg0->unk_AC, var_f31); + Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); + Hu3DModelAttrReset(arg0->unk_AC, 0x40000001); + Hu3DModelAttrReset(arg0->unk_AC, 0x40000004); + arg0->unk_5C[arg0->unk_50++] = 1; + HuAudFXPlay(0x5F4); + fn_1_60F0(); + fn_1_2260_alt(arg0, 5); + break; + case 2: + if (arg0->unk_50 <= 0) { + fn_1_2260(arg0); + } + else { + Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); + Hu3DModelAttrReset(arg0->unk_AC, 0x40000001); + Hu3DModelAttrSet(arg0->unk_AC, 0x40000004); + fn_1_63EC(); + fn_1_2260_alt(arg0, 1); + if (Hu3DMotionEndCheck(arg0->unk_AC) != 0) { + for (var_r28 = 0; var_r28 < 0xA; var_r28++) { + arg0->unk_5C[var_r28] = 0; + } + arg0->unk_50 = 0; + var_f31 = 0.0f; + var_f30 = 0.0f; + CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[5]); + Hu3DMotionStartEndSet(arg0->unk_AC, var_f31, var_f30); + Hu3DMotionTimeSet(arg0->unk_AC, var_f31); + Hu3DModelAttrReset(arg0->unk_AC, 0x40000001); + } + } + break; + default: + break; + } + } + } + fn_1_326C(arg0); + fn_1_2260_alt(arg0, 5); + fn_1_3450(arg0); + arg0->unk_48 = 2; +} + +void fn_1_276C(M420DllPlayerStruct *arg0) +{ + s32 sp8[4]; + + float var_f31; + float var_f30; + + s32 var_r30; + M420DllUnkStruct2 *var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + s32 var_r18; + s32 var_r17; + + var_r29 = &lbl_1_data_50[arg0->unk_08]; + if (arg0->unk_4C == 1) { + HuAudFXPlay(0x5F1); + fn_1_669C(1); + fn_1_6554(); + for (var_r28 = 0; var_r28 < 0xF; var_r28++) { + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[7], 0.0f, 6.0f, 0); + for (var_r27 = 0; var_r27 < 6; var_r27++) { + fn_1_669C(1); + fn_1_36E4(arg0); + HuAudFXPlay(0x5F2); + + fn_1_355C(arg0); + var_r19 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r19) { + break; + } + } + fn_1_355C(arg0); + var_r20 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r20) { + break; + } + } + } + else { + block_10: + fn_1_3098(arg0); + arg0->unk_50 = 0; + arg0->unk_58 = var_r29->unk_10 + (fn_1_8944() % var_r29->unk_14); + + while (arg0->unk_50 < 1) { + fn_1_326C(arg0); + for (var_r21 = 0; var_r21 < 0x12; var_r21++) { + fn_1_3450(arg0); + arg0->unk_48 = 6; + + fn_1_355C(arg0); + sp8[0] = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 == sp8[0]) { + break; + } + } + } + fn_1_326C(arg0); + loop_12: + if (arg0->unk_00_field0 == 0) { + var_r30 = fn_1_34AC(arg0); + } + else if (arg0->unk_58 > 0) { + arg0->unk_58 = arg0->unk_58 - 1; + var_r30 = 0; + } + else if ((fn_1_8944() % 30) != 0) { + var_r30 = 1; + } + else { + var_r30 = 2; + } + switch (var_r30) { + case 0: + for (var_r26 = 0; var_r26 < 1; var_r26++) { + fn_1_355C(arg0); + var_r18 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r18) { + break; + } + } + case 1: + if (arg0->unk_4C != 1) { + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[7], 0.0f, 6.0f, 0); + for (var_r25 = 0; var_r25 < 6; var_r25++) { + fn_1_374C(arg0->unk_E8); + fn_1_36E4(arg0); + HuAudFXPlay(0x5F2); + fn_1_355C(arg0); + var_r17 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 == var_r17) { + break; + } + } + } + block_36: + arg0->unk_5C[arg0->unk_50++] = 1; + switch (arg0->unk_4C) { + case 1: + case 2: + var_f31 = 0.0f; + var_f30 = 34.0f; + CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[4]); + Hu3DMotionStartEndSet(arg0->unk_AC, 0.0f, 34.0f); + Hu3DMotionTimeSet(arg0->unk_AC, 0.0f); + Hu3DMotionSpeedSet(arg0->unk_AC, 2.0f); + break; + } + arg0->unk_48 = 5; + break; + case 2: + switch (arg0->unk_4C) { + case 0: + break; + case 1: + var_f31 = 0.0f; + var_f30 = 10.0f; + CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[4]); + Hu3DMotionStartEndSet(arg0->unk_AC, 0.0f, 10.0f); + Hu3DMotionTimeSet(arg0->unk_AC, 0.0f); + Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); + for (var_r24 = 0; var_r24 < 0x1E; var_r24++) { + var_f31 = 60.0f; + var_f30 = 70.0f; + CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[4]); + Hu3DMotionStartEndSet(arg0->unk_AC, 60.0f, 70.0f); + Hu3DMotionTimeSet(arg0->unk_AC, 60.0f); + Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); + for (var_r23 = 0; var_r23 < 0x1E; var_r23++) { + fn_1_355C(arg0); + sp8[2] = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != sp8[2]) { + break; + } + } + fn_1_355C(arg0); + sp8[3] = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != sp8[3]) { + break; + } + } + case 2: + case 3: + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[9], 0.0f, 2.0f, 0); + for (var_r22 = 0; var_r22 < 0x3C; var_r22++) { + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[0], 0.0f, 8.0f, 0); + fn_1_355C(arg0); + sp8[1] = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != sp8[1]) { + break; + } + } + break; + } + break; + } + } +} + +void fn_1_2CE0(M420DllPlayerStruct *arg0) +{ + s32 var_r30; + s32 var_r29; + + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[0], 0.0f, 30.0f, 0x40000001); + + // fn_1_2260? + for (var_r30 = 0; var_r30 < 0x23; var_r30++) { + fn_1_355C(arg0); + var_r29 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r29) { + return; + } + } + arg0->unk_48 = 0; +} + +void fn_1_2D7C(M420DllPlayerStruct *arg0) +{ + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r29; + + var_f30 = 0.0f; + var_f31 = 30.0f; + Hu3DMotionStartEndSet(arg0->unk_AC, var_f30, var_f31); + Hu3DMotionTimeSet(arg0->unk_AC, var_f31); + Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); + Hu3DModelAttrReset(arg0->unk_AC, 0x40000001); + Hu3DModelAttrSet(arg0->unk_AC, 0x40000004); + HuAudFXPlay(0x5F6); + fn_1_6268(); + fn_1_5AA8(0, 22.5f); + fn_1_1E64(arg0, 1, 0x1E); + // fn_1_2260? + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + fn_1_355C(arg0); + var_r29 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r29) { + return; + } + } + arg0->unk_48 = 0; +} + +void fn_1_2EA8(M420DllPlayerStruct *arg0) +{ + s16 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + + fn_1_326C(arg0); + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[3], 0.0f, 1.0f, 0); + var_r30 = fn_1_6660(); + Hu3DModelAttrReset(var_r30, 0x40000002); + Hu3DModelAttrSet(var_r30, 0x40000001); + Hu3DMotionTimeSet(var_r30, 0.0f); + + for (var_r29 = 0; var_r29 < 0x18; var_r29++) { + HuAudFXPlay(0x5F7); + fn_1_636C(); + fn_1_1E64(arg0, 0x1E, 1); + Hu3DModelAttrSet(var_r30, 0x40000002); + fn_1_5AA8(1, 22.5f); + for (var_r28 = 0; var_r28 < 0x14; var_r28++) { + HuAudFXPlay(0x5F8); + fn_1_3450(arg0); + fn_1_378C(arg0); + for (var_r27 = 0; var_r27 < 0x14; var_r27++) { + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[0], 0.0f, 30.0f, 0x40000001); + for (var_r26 = 0; var_r26 < 0x19; var_r26++) { + arg0->unk_48 = 6; + + fn_1_355C(arg0); + var_r22 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r22) { + break; + } + } + fn_1_355C(arg0); + var_r23 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r23) { + break; + } + } + fn_1_355C(arg0); + var_r24 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r24) { + break; + } + } + fn_1_355C(arg0); + var_r25 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r25) { + break; + } + } +} + +void fn_1_3098(M420DllPlayerStruct *arg0) +{ + s32 var_r30; + s32 var_r29; + s32 var_r28; + + for (var_r30 = 0; var_r30 < 0xA; var_r30++) { + arg0->unk_5C[var_r30] = 0; + } + arg0->unk_50 = 0; + switch (arg0->unk_4C) { + case 0: + for (var_r29 = 0; var_r29 < 6;) { + arg0->unk_84[var_r29] = fn_1_8944() % 7; + if (arg0->unk_84[var_r29] == 6) { + arg0->unk_84[var_r29] = 0; + } + if ((var_r29 <= 0) || (arg0->unk_84[var_r29] != arg0->unk_84[var_r29 - 1])) { + for (var_r30 = 0, var_r28 = 0; var_r30 < var_r29; var_r30++) { + if (arg0->unk_84[var_r29] == arg0->unk_84[var_r30]) { + var_r28++; + } + } + if (var_r28 < 2) { + var_r29++; + } + } + } + break; + case 1: + case 2: + case 3: + for (var_r30 = 0; var_r30 < 0xA; var_r30++) { + arg0->unk_84[1] = arg0->unk_84[0]; + arg0->unk_84[0] = fn_1_8944() % 7; + if (arg0->unk_84[0] == 6) { + arg0->unk_84[0] = 0; + } + if (arg0->unk_84[0] != arg0->unk_84[1]) { + break; + } + } + break; + default: + break; + } +} + +static const s32 lbl_1_rodata_2F8[4] = { 6, 1, 1, 1 }; + +void fn_1_326C(M420DllPlayerStruct *arg0) +{ + Vec sp14; + Vec sp8; + + s32 var_r30; + s16 var_r29; + s32 var_r28; + s32 var_r26; + + sp14 = arg0->unk_10; + sp14.y += 300.0f; + Hu3D3Dto2D(&sp14, 1, &sp8); + + var_r26 = arg0->unk_4C == 0 ? -6 : 0; + espPosSet(arg0->unk_D8, sp8.x + var_r26, 6.0f + sp8.y); + espDispOn(arg0->unk_D8); + var_r28 = lbl_1_rodata_2F8[arg0->unk_4C]; + sp8.x -= (var_r28 / 2) * 0x1E; + for (var_r30 = 0; var_r30 < var_r28; var_r30++) { + var_r29 = arg0->unk_C4[var_r30]; + if (arg0->unk_5C[var_r30] != 0) { + espBankSet(var_r29, arg0->unk_84[var_r30] + 7); + } + else { + espBankSet(var_r29, arg0->unk_84[var_r30]); + } + espPosSet(var_r29, sp8.x + var_r30 * 0x20, sp8.y); + espDispOn(var_r29); + } +} + +void fn_1_3450(M420DllPlayerStruct *arg0) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0xA; var_r31++) { + espDispOff(arg0->unk_C4[var_r31]); + } + espDispOff(arg0->unk_D8); +} + +static const s32 lbl_1_rodata_30C[7] = { 0x100, 0x200, 0x40, 0x20, 0x800, 0x400, 0x10 }; + +s32 fn_1_34AC(M420DllPlayerStruct *arg0) +{ + s32 var_r31; + u16 var_r30; + u16 var_r29; + + var_r31 = 0; + var_r30 = HuPadBtnDown[arg0->unk_0C] & 0xF60; + var_r29 = lbl_1_rodata_30C[arg0->unk_84[arg0->unk_50]]; + if (var_r30 != 0) { + var_r31 = 2; + } + if (((var_r30 & var_r29) != 0) && ((var_r30 & ~var_r29) == 0)) { + var_r31 = 1; + } + return var_r31; +} + +void fn_1_355C(M420DllPlayerStruct *arg0) +{ + float var_f31; + + arg0 = HuPrcCurrentGet()->user_data; + Hu3DModelPosSet(arg0->unk_AC, arg0->unk_10.x, arg0->unk_10.y, arg0->unk_10.z); + if (arg0->unk_00_field2) { + switch (arg0->unk_E4) { + case 0: + var_f31 = arg0->unk_DC; + break; + case 1: + var_f31 = sind((90.0f * arg0->unk_DC)); + var_f31 *= var_f31; + break; + } + arg0->unk_1C.x = arg0->unk_28.x + (var_f31 * (arg0->unk_34.x - arg0->unk_28.x)); + arg0->unk_1C.y = arg0->unk_28.y + (var_f31 * (arg0->unk_34.y - arg0->unk_28.y)); + arg0->unk_1C.z = arg0->unk_28.z + (var_f31 * (arg0->unk_34.z - arg0->unk_28.z)); + if ((arg0->unk_DC += arg0->unk_E0) >= 1.0f) { + arg0->unk_1C = arg0->unk_34; + arg0->unk_00_field2 = 0; + } + } + Hu3DModelRotSet(arg0->unk_AC, arg0->unk_1C.x, arg0->unk_1C.y, arg0->unk_1C.z); +} + +void fn_1_36E4(M420DllPlayerStruct *arg0) +{ + Hu3DModelHookSet(arg0->unk_AC, "test11_tex_we-itemhook-r", fn_1_6660()); + arg0->unk_00_field1 = 1; + fn_1_1E64(arg0, 1, 0x14); +} + +void fn_1_374C(M420DllPlayerStruct *arg0) +{ + Hu3DModelHookReset(arg0->unk_AC); + arg0->unk_00_field1 = 0; +} + +void fn_1_378C(M420DllPlayerStruct *arg0) +{ + Mtx sp20; + Vec sp14; + Vec sp8; + + if (arg0->unk_00_field1) { + Hu3DModelObjMtxGet(arg0->unk_AC, "test11_tex_we-itemhook-r", sp20); + Hu3DModelHookObjReset(arg0->unk_AC, "test11_tex_we-itemhook-r"); + Hu3DMtxTransGet(sp20, &sp14); + Hu3DMtxRotGet(sp20, &sp8); + Hu3DModelPosSetV(fn_1_6660(), &sp14); + Hu3DModelRotSetV(fn_1_6660(), &sp8); + } + HuPrcChildCreate(fn_1_3854, 0x64, 0x2000, 0, lbl_1_bss_4); + arg0->unk_00_field1 = 0; +} + +char lbl_1_data_135[1] = { 0 }; + +void fn_1_3854(void) +{ + Mtx sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + + float var_f31; + s16 var_r31; + + var_r31 = fn_1_6660(); + Hu3DModelObjMtxGet(var_r31, lbl_1_data_135, sp2C); + Hu3DMtxRotGet(sp2C, &sp8); + Hu3DMtxTransGet(sp2C, &sp20); + var_f31 = 0.0f; + + while (var_f31 < 1.0f) { + sp14.x = cosd((90.0f * var_f31)); + sp14.y = sp14.z = sp14.x; + Hu3DModelScaleSet(var_r31, sp14.x, sp14.y, sp14.z); + var_f31 += 0.05f; + HuPrcVSleep(); + } + fn_1_6728(); + sp14.x = sp14.y = sp14.z = 1.0f; + Hu3DModelScaleSet(var_r31, sp14.x, sp14.y, sp14.z); + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_3970(M420DllPlayerStruct *arg0) +{ + Vec sp38; + + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + if (arg0->unk_00_field1) { + fn_1_378C(arg0); + } + else if (arg0->unk_4C == 1) { + fn_1_378C(arg0); + } + fn_1_3450(arg0); + if (arg0->unk_4C == 0) { + Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); + Hu3DModelAttrReset(arg0->unk_AC, 0x40000001); + Hu3DModelAttrSet(arg0->unk_AC, 0x40000004); + fn_1_63EC(); + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[6], 0.0f, 32.0f, 0); + Hu3DMotionShiftStartEndSet(arg0->unk_AC, 0.0f, 59.0f); + sp38 = arg0->unk_1C; + sp38.y = 0.0f; + fn_1_21C8(arg0, &sp38, 60, 1); + } + for (var_r27 = 0; var_r27 < 0x3C; var_r27++) { + fn_1_355C(arg0); + var_r25 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r25) { + return; + } + } + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[0], 0.0f, 16.0f, 0); + for (var_r26 = 0; var_r26 < 0x3C; var_r26++) { + fn_1_355C(arg0); + var_r24 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r24) { + return; + } + } + arg0->unk_48 = 0; +} + +void fn_1_3F94(M420DllPlayerStruct *arg0) +{ + Vec sp8; + s32 var_r29; + s32 var_r28; + + if (arg0->unk_4C != 0) { + CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[6]); + Hu3DMotionStartEndSet(arg0->unk_AC, 60.0f, 119.0f); + Hu3DMotionTimeSet(arg0->unk_AC, 60.0f); + sp8 = arg0->unk_1C; + sp8.y = lbl_1_rodata_258[arg0->unk_4C][1].y; + fn_1_21C8(arg0, &sp8, 60, 1); + while (arg0->unk_00_field2 != 0) { + for (var_r28 = 0; var_r28 < 1; var_r28++) { + fn_1_355C(arg0); + var_r29 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r29) { + return; + } + } + } + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[0], 0.0f, 4.0f, 0); + } + arg0->unk_48 = 0; +} + +void fn_1_4294(M420DllPlayerStruct *arg0) +{ + Vec sp8; + s32 var_r29; + s32 var_r28; + + if (arg0->unk_4C != 0) { + CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[6]); + Hu3DMotionStartEndSet(arg0->unk_AC, 0.0f, 59.0f); + sp8 = arg0->unk_1C; + sp8.y = 0.0f; + fn_1_21C8(arg0, &sp8, 60, 1); + while (arg0->unk_00_field2 != 0) { + for (var_r28 = 0; var_r28 < 1; var_r28++) { + fn_1_355C(arg0); + var_r29 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r29) { + return; + } + } + } + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[0], 0.0f, 8.0f, 0); + } + arg0->unk_48 = 0; +} + +void fn_1_4574(M420DllPlayerStruct *arg0) +{ + float var_f31; + M420DllPlayerStruct *var_r31; + s32 var_r29; + s32 var_r28; + + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[1], 0.0f, 4.0f, 0); + fn_1_2260(arg0); +} + +void fn_1_476C(M420DllPlayerStruct *arg0) +{ + float var_f31; + M420DllPlayerStruct *var_r31; + s32 var_r29; + s32 var_r28; + + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[2], 0.0f, 4.0f, 0); + fn_1_2260(arg0); +} From 76c369d3cd916ac18d369e7910a4e00ec4d10ed7 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sun, 27 Oct 2024 21:30:43 -0500 Subject: [PATCH 083/311] Decompile rest of m420dll --- configure.py | 6 +- src/REL/m420dll/main.c | 21 ++- src/REL/m420dll/map.c | 25 +-- src/REL/m420dll/player.c | 387 +++++++++++++++++---------------------- 4 files changed, 185 insertions(+), 254 deletions(-) diff --git a/configure.py b/configure.py index eeeb17a4..50b84a50 100644 --- a/configure.py +++ b/configure.py @@ -976,10 +976,10 @@ config.libs = [ Rel( "m420dll", # Fish n' Drips objects={ - Object(NonMatching, "REL/m420dll/main.c"), + Object(Matching, "REL/m420dll/main.c"), Object(Matching, "REL/m420dll/camera.c"), - Object(NonMatching, "REL/m420dll/player.c"), - Object(NonMatching, "REL/m420dll/map.c"), + Object(Matching, "REL/m420dll/player.c"), + Object(Matching, "REL/m420dll/map.c"), Object(Matching, "REL/m420dll/rand.c"), }, ), diff --git a/src/REL/m420dll/main.c b/src/REL/m420dll/main.c index 4bad4ddf..f97a3fd0 100644 --- a/src/REL/m420dll/main.c +++ b/src/REL/m420dll/main.c @@ -83,15 +83,18 @@ s32 fn_1_198(void) sp8[var_r31] = 0; } for (var_r31 = 0; var_r31 < 4; var_r31++) { - if (GWPlayerCfg[var_r31].group == 0) { - lbl_1_bss_18[0] = fn_1_1B8C(var_r31, 0); - } - else { - do { - var_r30 = fn_1_8944() % 3; - } while (sp8[var_r30] != 0); - sp8[var_r30] = 1; - lbl_1_bss_18[var_r30 + 1] = fn_1_1B8C(var_r31, var_r30 + 1); + switch(GWPlayerCfg[var_r31].group) { + case 0: + lbl_1_bss_18[0] = fn_1_1B8C(var_r31, 0); + break; + + default: + do { + var_r30 = fn_1_8944() % 3; + } while (sp8[var_r30] != 0); + sp8[var_r30] = 1; + lbl_1_bss_18[var_r30 + 1] = fn_1_1B8C(var_r31, var_r30 + 1); + break; } } lbl_1_bss_18[1]->unk_E8 = NULL; diff --git a/src/REL/m420dll/map.c b/src/REL/m420dll/map.c index baf43997..94df58f0 100644 --- a/src/REL/m420dll/map.c +++ b/src/REL/m420dll/map.c @@ -116,6 +116,7 @@ Process *lbl_1_bss_A3C; Process *lbl_1_bss_A2C[4]; s32 lbl_1_bss_A28; s16 lbl_1_bss_9F0[0x1C]; +s16 lbl_1_bss_9EE; s16 lbl_1_bss_9EC; M420DllUnkMapStruct2 lbl_1_bss_140[15]; struct M420DllUnkMapStruct lbl_1_bss_C0[2]; @@ -914,13 +915,9 @@ float fn_1_73F8(float arg8) void fn_1_74F8(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) { - float var_f31; float var_f30; float var_f29; - float var_f28; - float var_f27; float var_f26; - float var_f25; s32 var_r31; s32 var_r30; @@ -937,27 +934,13 @@ void fn_1_74F8(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) if (var_r31 > var_r29) { var_r30 = var_r29; } - var_f31 = arg8 - var_r31; - if (var_f31 < 0.0f) { - var_f31 = -var_f31; - } - if (var_f31 < 1.0f) { - var_f27 = (4.0f + ((var_f31 * (3.0f * var_f31 * var_f31)) - (6.0f * var_f31 * var_f31))) / 6.0f; - } - else if (var_f31 < 2.0f) { - var_f28 = var_f31 - 2.0f; - var_f27 = (var_f28 * (-var_f28 * var_f28)) / 6.0f; - } - else { - var_f27 = 0.0f; - } - var_f25 = var_f27; - var_f26 = var_f25; + var_f26 = fn_1_73F8(arg8 - var_r31); var_f30 += var_f26 * arg0[var_r30]; var_f29 += var_f26 * arg1[var_r30]; } *arg2 = var_f30; *arg3 = var_f29; + } void fn_1_7704(void) @@ -1233,3 +1216,5 @@ void fn_1_8414(void) HuPrcVSleep(); } } + +const float _pad = 0; \ No newline at end of file diff --git a/src/REL/m420dll/player.c b/src/REL/m420dll/player.c index 2a749b74..790c43e6 100644 --- a/src/REL/m420dll/player.c +++ b/src/REL/m420dll/player.c @@ -253,21 +253,6 @@ void fn_1_21C8(M420DllPlayerStruct *arg0, Vec *arg1, s32 arg2, s32 arg3) arg0->unk_00_field2 = 1; } -void inline fn_1_2260_alt(M420DllPlayerStruct *arg0, s32 arg1) -{ - s32 var_r30; - s32 var_r29; - - for (var_r30 = 0; var_r30 < arg1; var_r30++) { - fn_1_355C(arg0); - var_r29 = arg0->unk_48; - HuPrcVSleep(); - if (arg0->unk_48 != var_r29) { - break; - } - } -} - void fn_1_2260(M420DllPlayerStruct *arg0) { s32 var_r30; @@ -285,6 +270,20 @@ void fn_1_2260(M420DllPlayerStruct *arg0) } } +#define WAITMODECHG(player, maxTime) \ + do { \ + s32 time; \ + s32 mode; \ + for (time = 0; time < maxTime; time++) { \ + fn_1_355C(arg0); \ + mode = arg0->unk_48; \ + HuPrcVSleep(); \ + if (arg0->unk_48 != mode) { \ + return; \ + } \ + } \ + } while(0) + void fn_1_22CC(M420DllPlayerStruct *arg0) { float var_f31; @@ -305,7 +304,7 @@ void fn_1_22CC(M420DllPlayerStruct *arg0) while (arg0->unk_50 < 6) { fn_1_326C(arg0); - while (var_r29 == 0) { + do { if (arg0->unk_00_field0 == 0) { var_r29 = fn_1_34AC(arg0); } @@ -323,7 +322,7 @@ void fn_1_22CC(M420DllPlayerStruct *arg0) } switch (var_r29) { case 0: - fn_1_2260(arg0); + WAITMODECHG(arg0, 1); break; case 1: var_f31 = 5.0f * arg0->unk_50; @@ -337,39 +336,37 @@ void fn_1_22CC(M420DllPlayerStruct *arg0) arg0->unk_5C[arg0->unk_50++] = 1; HuAudFXPlay(0x5F4); fn_1_60F0(); - fn_1_2260_alt(arg0, 5); + WAITMODECHG(arg0, 5); break; case 2: if (arg0->unk_50 <= 0) { - fn_1_2260(arg0); - } - else { + WAITMODECHG(arg0, 1); + } else { Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); Hu3DModelAttrReset(arg0->unk_AC, 0x40000001); Hu3DModelAttrSet(arg0->unk_AC, 0x40000004); fn_1_63EC(); - fn_1_2260_alt(arg0, 1); - if (Hu3DMotionEndCheck(arg0->unk_AC) != 0) { - for (var_r28 = 0; var_r28 < 0xA; var_r28++) { - arg0->unk_5C[var_r28] = 0; - } - arg0->unk_50 = 0; - var_f31 = 0.0f; - var_f30 = 0.0f; - CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[5]); - Hu3DMotionStartEndSet(arg0->unk_AC, var_f31, var_f30); - Hu3DMotionTimeSet(arg0->unk_AC, var_f31); - Hu3DModelAttrReset(arg0->unk_AC, 0x40000001); + while(!Hu3DMotionEndCheck(arg0->unk_AC)) + WAITMODECHG(arg0, 1); + for (var_r28 = 0; var_r28 < 0xA; var_r28++) { + arg0->unk_5C[var_r28] = 0; } + arg0->unk_50 = 0; + var_f31 = 0.0f; + var_f30 = 0.0f; + CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[5]); + Hu3DMotionStartEndSet(arg0->unk_AC, var_f31, var_f30); + Hu3DMotionTimeSet(arg0->unk_AC, var_f31); + Hu3DModelAttrReset(arg0->unk_AC, 0x40000001); } break; default: break; } - } + } while (var_r29 == 0); } fn_1_326C(arg0); - fn_1_2260_alt(arg0, 5); + WAITMODECHG(arg0, 5); fn_1_3450(arg0); arg0->unk_48 = 2; } @@ -401,171 +398,102 @@ void fn_1_276C(M420DllPlayerStruct *arg0) HuAudFXPlay(0x5F1); fn_1_669C(1); fn_1_6554(); - for (var_r28 = 0; var_r28 < 0xF; var_r28++) { - CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[7], 0.0f, 6.0f, 0); - for (var_r27 = 0; var_r27 < 6; var_r27++) { - fn_1_669C(1); - fn_1_36E4(arg0); - HuAudFXPlay(0x5F2); - - fn_1_355C(arg0); - var_r19 = arg0->unk_48; - HuPrcVSleep(); - if (arg0->unk_48 != var_r19) { - break; - } - } - fn_1_355C(arg0); - var_r20 = arg0->unk_48; - HuPrcVSleep(); - if (arg0->unk_48 != var_r20) { - break; - } - } + WAITMODECHG(arg0, 15); + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[7], 0.0f, 6.0f, 0); + WAITMODECHG(arg0, 6); + fn_1_669C(0); + fn_1_36E4(arg0); + HuAudFXPlay(0x5F2); } - else { - block_10: - fn_1_3098(arg0); - arg0->unk_50 = 0; - arg0->unk_58 = var_r29->unk_10 + (fn_1_8944() % var_r29->unk_14); - - while (arg0->unk_50 < 1) { - fn_1_326C(arg0); - for (var_r21 = 0; var_r21 < 0x12; var_r21++) { - fn_1_3450(arg0); - arg0->unk_48 = 6; - - fn_1_355C(arg0); - sp8[0] = arg0->unk_48; - HuPrcVSleep(); - if (arg0->unk_48 == sp8[0]) { - break; - } - } - } + fn_1_3098(arg0); + arg0->unk_50 = 0; + arg0->unk_58 = var_r29->unk_10 + (fn_1_8944() % var_r29->unk_14); + while (arg0->unk_50 < 1) { fn_1_326C(arg0); - loop_12: - if (arg0->unk_00_field0 == 0) { - var_r30 = fn_1_34AC(arg0); - } - else if (arg0->unk_58 > 0) { - arg0->unk_58 = arg0->unk_58 - 1; - var_r30 = 0; - } - else if ((fn_1_8944() % 30) != 0) { - var_r30 = 1; - } - else { - var_r30 = 2; - } - switch (var_r30) { - case 0: - for (var_r26 = 0; var_r26 < 1; var_r26++) { - fn_1_355C(arg0); - var_r18 = arg0->unk_48; - HuPrcVSleep(); - if (arg0->unk_48 != var_r18) { - break; - } - } - case 1: - if (arg0->unk_4C != 1) { - CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[7], 0.0f, 6.0f, 0); - for (var_r25 = 0; var_r25 < 6; var_r25++) { + do { + if(arg0->unk_00_field0 == 0) { + var_r30 = fn_1_34AC(arg0); + } else if(arg0->unk_58 > 0) { + arg0->unk_58--; + var_r30 = 0; + } else if(fn_1_8944() % 30) { + var_r30 = 1; + } else { + var_r30 = 2; + } + switch (var_r30) { + case 0: + WAITMODECHG(arg0, 1); + break; + + case 1: + if(arg0->unk_4C != 1) { + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[7], 0.0f, 6.0f, 0); + WAITMODECHG(arg0, 6); fn_1_374C(arg0->unk_E8); fn_1_36E4(arg0); HuAudFXPlay(0x5F2); - fn_1_355C(arg0); - var_r17 = arg0->unk_48; - HuPrcVSleep(); - if (arg0->unk_48 == var_r17) { - break; - } } - } - block_36: - arg0->unk_5C[arg0->unk_50++] = 1; - switch (arg0->unk_4C) { - case 1: - case 2: - var_f31 = 0.0f; - var_f30 = 34.0f; - CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[4]); - Hu3DMotionStartEndSet(arg0->unk_AC, 0.0f, 34.0f); - Hu3DMotionTimeSet(arg0->unk_AC, 0.0f); - Hu3DMotionSpeedSet(arg0->unk_AC, 2.0f); - break; - } - arg0->unk_48 = 5; - break; - case 2: - switch (arg0->unk_4C) { - case 0: - break; - case 1: - var_f31 = 0.0f; - var_f30 = 10.0f; - CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[4]); - Hu3DMotionStartEndSet(arg0->unk_AC, 0.0f, 10.0f); - Hu3DMotionTimeSet(arg0->unk_AC, 0.0f); - Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); - for (var_r24 = 0; var_r24 < 0x1E; var_r24++) { + arg0->unk_5C[arg0->unk_50++] = 1; + switch(arg0->unk_4C) { + case 1: + case 2: + var_f31 = 0.0f; + var_f30 = 34.0f; + CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[4]); + Hu3DMotionStartEndSet(arg0->unk_AC, var_f31, var_f30); + Hu3DMotionTimeSet(arg0->unk_AC, var_f31); + Hu3DMotionSpeedSet(arg0->unk_AC, 2.0f); + break; + + case 3: + arg0->unk_48 = 5; + return; + } + break; + + case 2: + switch(arg0->unk_4C) { + case 1: + var_f31 = 0.0f; + var_f30 = 10.0f; + CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[4]); + Hu3DMotionStartEndSet(arg0->unk_AC, var_f31, var_f30); + Hu3DMotionTimeSet(arg0->unk_AC, var_f31); + Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); + WAITMODECHG(arg0, 30); var_f31 = 60.0f; var_f30 = 70.0f; CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[4]); - Hu3DMotionStartEndSet(arg0->unk_AC, 60.0f, 70.0f); - Hu3DMotionTimeSet(arg0->unk_AC, 60.0f); + Hu3DMotionStartEndSet(arg0->unk_AC, var_f31, var_f30); + Hu3DMotionTimeSet(arg0->unk_AC, var_f31); Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); - for (var_r23 = 0; var_r23 < 0x1E; var_r23++) { - fn_1_355C(arg0); - sp8[2] = arg0->unk_48; - HuPrcVSleep(); - if (arg0->unk_48 != sp8[2]) { - break; - } - } - fn_1_355C(arg0); - sp8[3] = arg0->unk_48; - HuPrcVSleep(); - if (arg0->unk_48 != sp8[3]) { - break; - } - } - case 2: - case 3: - CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[9], 0.0f, 2.0f, 0); - for (var_r22 = 0; var_r22 < 0x3C; var_r22++) { + WAITMODECHG(arg0, 30); + break; + + case 2: + case 3: + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[9], 0.0f, 2.0f, 0); + WAITMODECHG(arg0, 60); CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[0], 0.0f, 8.0f, 0); - fn_1_355C(arg0); - sp8[1] = arg0->unk_48; - HuPrcVSleep(); - if (arg0->unk_48 != sp8[1]) { - break; - } - } - break; - } - break; - } + break; + } + break; + } + } while(var_r30 == 0); + } + fn_1_326C(arg0); + WAITMODECHG(arg0, 18); + fn_1_3450(arg0); + arg0->unk_48 = 6; } void fn_1_2CE0(M420DllPlayerStruct *arg0) { - s32 var_r30; - s32 var_r29; - CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[0], 0.0f, 30.0f, 0x40000001); - - // fn_1_2260? - for (var_r30 = 0; var_r30 < 0x23; var_r30++) { - fn_1_355C(arg0); - var_r29 = arg0->unk_48; - HuPrcVSleep(); - if (arg0->unk_48 != var_r29) { - return; - } - } + + WAITMODECHG(arg0, 35); arg0->unk_48 = 0; } @@ -614,53 +542,68 @@ void fn_1_2EA8(M420DllPlayerStruct *arg0) fn_1_326C(arg0); CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[3], 0.0f, 1.0f, 0); var_r30 = fn_1_6660(); + Hu3DModelAttrReset(var_r30, 0x40000002); Hu3DModelAttrSet(var_r30, 0x40000001); Hu3DMotionTimeSet(var_r30, 0.0f); - - for (var_r29 = 0; var_r29 < 0x18; var_r29++) { - HuAudFXPlay(0x5F7); - fn_1_636C(); - fn_1_1E64(arg0, 0x1E, 1); - Hu3DModelAttrSet(var_r30, 0x40000002); - fn_1_5AA8(1, 22.5f); - for (var_r28 = 0; var_r28 < 0x14; var_r28++) { - HuAudFXPlay(0x5F8); - fn_1_3450(arg0); - fn_1_378C(arg0); - for (var_r27 = 0; var_r27 < 0x14; var_r27++) { - CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[0], 0.0f, 30.0f, 0x40000001); - for (var_r26 = 0; var_r26 < 0x19; var_r26++) { - arg0->unk_48 = 6; - - fn_1_355C(arg0); - var_r22 = arg0->unk_48; - HuPrcVSleep(); - if (arg0->unk_48 != var_r22) { - break; - } - } - fn_1_355C(arg0); - var_r23 = arg0->unk_48; - HuPrcVSleep(); - if (arg0->unk_48 != var_r23) { - break; - } - } + { + s32 var_r30; + s32 var_r29; + for (var_r30 = 0; var_r30 < 24; var_r30++) { fn_1_355C(arg0); - var_r24 = arg0->unk_48; + var_r29 = arg0->unk_48; HuPrcVSleep(); - if (arg0->unk_48 != var_r24) { - break; + if (arg0->unk_48 != var_r29) { + return; } } - fn_1_355C(arg0); - var_r25 = arg0->unk_48; - HuPrcVSleep(); - if (arg0->unk_48 != var_r25) { - break; - } } + HuAudFXPlay(0x5F7); + fn_1_636C(); + fn_1_1E64(arg0, 1, 0x1E); + Hu3DModelAttrSet(var_r30, 0x40000002); + fn_1_5AA8(1, 22.5f); + { + s32 var_r30; + s32 var_r29; + for (var_r30 = 0; var_r30 < 20; var_r30++) { + fn_1_355C(arg0); + var_r29 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r29) { + return; + } + } + } + HuAudFXPlay(0x5F8); + fn_1_3450(arg0); + fn_1_378C(arg0); + { + s32 var_r30; + s32 var_r29; + for (var_r30 = 0; var_r30 < 20; var_r30++) { + fn_1_355C(arg0); + var_r29 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r29) { + return; + } + } + } + CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[0], 0.0f, 30.0f, 0x40000001); + { + s32 var_r30; + s32 var_r29; + for (var_r30 = 0; var_r30 < 25; var_r30++) { + fn_1_355C(arg0); + var_r29 = arg0->unk_48; + HuPrcVSleep(); + if (arg0->unk_48 != var_r29) { + return; + } + } + } + arg0->unk_48 = 6; } void fn_1_3098(M420DllPlayerStruct *arg0) From 4aa17102434b1836a5bd5440ffb9839d00109117 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 28 Oct 2024 15:01:14 +0100 Subject: [PATCH 084/311] Did m443Dll/main.c and map.c Did the includes for m443Dll/player.c --- config/GMPE01_00/rels/m443Dll/splits.txt | 4 +- config/GMPE01_00/rels/m443Dll/symbols.txt | 404 +++---- configure.py | 4 +- include/REL/m443Dll.h | 51 + src/REL/m443Dll/main.c | 1164 +++++++++++++++++++++ src/REL/m443Dll/map.c | 183 ++++ src/REL/m443Dll/player.c | 16 + 7 files changed, 1621 insertions(+), 205 deletions(-) create mode 100644 include/REL/m443Dll.h create mode 100644 src/REL/m443Dll/main.c create mode 100644 src/REL/m443Dll/map.c create mode 100644 src/REL/m443Dll/player.c diff --git a/config/GMPE01_00/rels/m443Dll/splits.txt b/config/GMPE01_00/rels/m443Dll/splits.txt index ff3f7391..b9a84a24 100644 --- a/config/GMPE01_00/rels/m443Dll/splits.txt +++ b/config/GMPE01_00/rels/m443Dll/splits.txt @@ -17,11 +17,11 @@ REL/m443Dll/main.c: REL/m443Dll/map.c: .text start:0x00004A5C end:0x00005444 - .rodata start:0x000001F0 end:0x00000278 + .rodata start:0x000001F0 end:0x00000268 .data start:0x00000240 end:0x00000258 REL/m443Dll/player.c: .text start:0x00005444 end:0x00009638 - .rodata start:0x00000278 end:0x000004E0 + .rodata start:0x00000268 end:0x000004E0 .data start:0x00000258 end:0x000004F0 .bss start:0x00000078 end:0x000000A0 diff --git a/config/GMPE01_00/rels/m443Dll/symbols.txt b/config/GMPE01_00/rels/m443Dll/symbols.txt index 76a2059a..2c1f25ca 100644 --- a/config/GMPE01_00/rels/m443Dll/symbols.txt +++ b/config/GMPE01_00/rels/m443Dll/symbols.txt @@ -76,203 +76,205 @@ fn_1_8FFC = .text:0x00008FFC; // type:function size:0x5A8 fn_1_95A4 = .text:0x000095A4; // type:function size:0x94 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x50 -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x14 data:4byte -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x10 data:4byte -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x10 data:4byte -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC data:4byte -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x34 data:4byte -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x10 data:4byte -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x40 data:4byte -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x10 data:4byte -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x10 data:4byte -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x20 data:4byte -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x50 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x34 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x10 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 scope:local data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 scope:local data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 scope:local data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float @@ -280,15 +282,15 @@ lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float -lbl_1_data_4C = .data:0x0000004C; // type:object size:0x14 data:string +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x14 scope:local data:string lbl_1_data_60 = .data:0x00000060; // type:object size:0x48 lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x48 lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x18 lbl_1_data_108 = .data:0x00000108; // type:object size:0x80 lbl_1_data_188 = .data:0x00000188; // type:object size:0x80 -lbl_1_data_208 = .data:0x00000208; // type:object size:0x1 data:byte -lbl_1_data_20C = .data:0x0000020C; // type:object size:0x1A data:string -lbl_1_data_226 = .data:0x00000226; // type:object size:0x19 data:string +lbl_1_data_208 = .data:0x00000208; // type:object size:0x4 data:byte +lbl_1_data_20C = .data:0x0000020C; // type:object size:0x1A scope:local data:string +lbl_1_data_226 = .data:0x00000226; // type:object size:0x19 scope:local data:string lbl_1_data_240 = .data:0x00000240; // type:object size:0x14 lbl_1_data_264 = .data:0x00000258; // type:object size:0x20 lbl_1_data_284 = .data:0x00000284; // type:object size:0x40 diff --git a/configure.py b/configure.py index 50b84a50..8a5611e2 100644 --- a/configure.py +++ b/configure.py @@ -1143,8 +1143,8 @@ config.libs = [ Rel( "m443Dll", # Mario Speedwagons objects={ - Object(NonMatching, "REL/m443Dll/main.c"), - Object(NonMatching, "REL/m443Dll/map.c"), + Object(Matching, "REL/m443Dll/main.c"), + Object(Matching, "REL/m443Dll/map.c"), Object(NonMatching, "REL/m443Dll/player.c"), }, ), diff --git a/include/REL/m443Dll.h b/include/REL/m443Dll.h new file mode 100644 index 00000000..72b89689 --- /dev/null +++ b/include/REL/m443Dll.h @@ -0,0 +1,51 @@ +#ifndef M443DLL_H +#define M443DLL_H + +#include "game/object.h" + +typedef struct M443DllCameraStruct { + s32 unk_00; + s32 unk_04; + s32 unk_08; + u32 unk_0C; + float unk_10; + float unk_14; + float unk_18; + Vec unk_1C; + Vec unk_28; + float unk_34; + s32 unk_38; + s32 unk_3C; + float unk_40; + float unk_44; + float unk_48; + float unk_4C; + float unk_50; + char unk54[0x24]; + float unk_78; + float unk_7C; + float unk_80; + char unk84[0x1C]; + u32 unk_A0; +} M443DllCameraStruct; /* size = 0xA4 */ + +void fn_1_3FE8(u32 arg0); +u32 fn_1_3FFC(void); +M443DllCameraStruct *fn_1_40AC(s32 arg0); +M443DllCameraStruct *fn_1_4148(u32 arg0); +M443DllCameraStruct *fn_1_41B0(u32 arg0); +void fn_1_421C(s32 arg0, s32 arg1); +s32 fn_1_42CC(void); +u32 fn_1_42E4(void); +s32 fn_1_42FC(void); +void fn_1_4314(s32 arg0, float arg8); +s32 fn_1_4368(s32 arg0); +void fn_1_43AC(s32 arg0); +void fn_1_43DC(s32 arg0); +float fn_1_488C(float arg8, float arg9, float argA); +void fn_1_4A5C(Process *arg0); +void fn_1_4AB0(void); +void fn_1_5444(Process *arg0); +void fn_1_565C(void); + +#endif diff --git a/src/REL/m443Dll/main.c b/src/REL/m443Dll/main.c new file mode 100644 index 00000000..9c939016 --- /dev/null +++ b/src/REL/m443Dll/main.c @@ -0,0 +1,1164 @@ +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/flag.h" +#include "game/gamework.h" +#include "game/hsfman.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/wipe.h" +#include "math.h" +#include "rel_sqrt_consts.h" +#include "string.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#include "game/frand.h" +#endif + +#include "REL/m443Dll.h" + +typedef struct M443DllWork { + u32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + u32 unk_14; + u32 unk_18; + u32 unk_1C; + u32 unk_20; + char unk24[4]; + s32 unk_28; + u32 unk_2C; + s32 unk_30; + s32 unk_34[4]; + float unk_44[4]; + u32 unk_54; + u32 unk_58; + s32 unk_5C; +} M443DllWork; /* size = 0x60 */ + +typedef struct M443DllData108Struct { + u32 unk_00; + s32 unk_04; +} M443DllData108Struct; /* size = 0x08 */ + +typedef struct M443DllUnkStruct { + s32 unk_00; + s32 unk_04; + float unk_08; + float unk_0C; + u32 unk_10; + u32 unk_14; + u32 unk_18; + s16 unk_1C[0x10]; +} M443DllUnkStruct; /* size = 0x3C */ + +void fn_1_1294(omObjData *); +void fn_1_17D8(omObjData *arg0); +omObjFunc fn_1_1C98(Process *arg0, omObjData *arg1); +void fn_1_1D8C(omObjData *); +omObjFunc fn_1_2490(Process *arg0, omObjData *arg1); +void fn_1_25A4(omObjData *); +void fn_1_2DD8(M443DllUnkStruct *arg0); +void fn_1_2F54(M443DllUnkStruct *arg0); +void fn_1_32C0(Process *arg0); +void fn_1_3370(omObjData *object); +void fn_1_3710(omObjData *); +void fn_1_3770(omObjData *object); +void fn_1_3D78(ModelData *, float[3][4]); +void fn_1_420(omObjData *object); +void fn_1_584(omObjData *arg0); +void fn_1_6D0(omObjData *); +void fn_1_9B0(omObjData *); +void fn_1_CE0(omObjData *); +void fn_1_ECC(omObjData *); + +Vec lbl_1_data_0 = { 100.0f, 800.0f, -100.0f }; + +Vec lbl_1_data_C = { 0.3f, -0.8f, 0.3f }; + +Vec lbl_1_data_18 = { 10.0f, 45.0f, 3500.0f }; + +GXColor lbl_1_data_24 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +Vec lbl_1_data_28 = { 50.0f, 150000.0f, 50.0f }; + +Vec lbl_1_data_34 = { 0.0f, 1.0f, 0.0f }; + +Vec lbl_1_data_40 = { 0.0f, 0.0f, 0.0f }; + +Process *lbl_1_bss_74; +omObjData *lbl_1_bss_70; +omObjData *lbl_1_bss_6C; +omObjData *lbl_1_bss_68; +s16 lbl_1_bss_64; +s16 lbl_1_bss_5C[4]; +s16 lbl_1_bss_5A; +s16 lbl_1_bss_58; +s16 lbl_1_bss_56; +s16 lbl_1_bss_54; +s32 lbl_1_bss_50; +M443DllUnkStruct lbl_1_bss_14; +s16 lbl_1_bss_10[1]; // why only 1 long? +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +s32 lbl_1_bss_0; + +void ObjectSetup(void) +{ + Vec sp14; + Vec sp8; + Process *var_r31; + LightData *var_r30; + + HuAudSndGrpSet(0x45); + lbl_1_bss_C = lbl_1_bss_8 = -1; + lbl_1_bss_4 = lbl_1_bss_0 = -1; + lbl_1_bss_5C[0] = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24); + Hu3DGLightInfinitytSet(lbl_1_bss_5C[0]); + var_r30 = &Hu3DGlobalLight[lbl_1_bss_5C[0]]; + var_r30->unk_00 |= 0x8000; + + lbl_1_data_18.x = 55.74f; + lbl_1_data_18.y = 0.0f; + lbl_1_data_18.z = 3500.0f; + + sp14.x = sp14.y = sp14.z = 0.0f; + sp8.x = sp8.z = 0.0f; + sp8.y = lbl_1_data_18.z; + sp8.x = 0.0f; + sp8.y = 3480.0002f; + sp8.z = 900.00006f; + Hu3DGLightPosAimSetV(lbl_1_bss_5C[0], &sp8, &sp14); + + lbl_1_data_28.x = 100.0f; + lbl_1_data_28.y = 2000.0f; + lbl_1_data_28.z = 2000.0f; + lbl_1_data_34.x = 0.0f; + lbl_1_data_34.y = 1.0f; + lbl_1_data_34.z = 0.0f; + lbl_1_data_40.x = 0.0f; + lbl_1_data_40.y = 0.0f; + lbl_1_data_40.z = 700.0f; + Hu3DShadowCreate(30.0f, 20.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); + lbl_1_bss_5A = lbl_1_bss_58 = lbl_1_bss_56 = lbl_1_bss_54 = -1; + lbl_1_bss_50 = 0; + var_r31 = omInitObjMan(0x32, 0x2000); + lbl_1_bss_74 = var_r31; + omGameSysInit(var_r31); + fn_1_2DD8(&lbl_1_bss_14); + fn_1_32C0(var_r31); + lbl_1_bss_70 = omAddObjEx(var_r31, 0xA, 0, 0, -1, fn_1_420); + fn_1_4A5C(var_r31); + fn_1_5444(var_r31); +} + +void fn_1_420(omObjData *object) +{ + M443DllWork *var_r31; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M443DllWork), MEMORY_DEFAULT_NUM); + var_r31 = object->data; + memset(var_r31, 0, sizeof(M443DllWork)); + var_r31->unk_00 = 0; + var_r31->unk_04 = 0; + var_r31->unk_0C = 0; + var_r31->unk_10 = 0; + var_r31->unk_14 = 0; + var_r31->unk_18 = 0; + var_r31->unk_28 = 0; + var_r31->unk_2C = 0; + var_r31->unk_08 = 0; + var_r31->unk_54 = 2; + var_r31->unk_58 = 0; + var_r31->unk_5C = 0; + object->func = fn_1_6D0; +} + +void fn_1_4E4(omObjData *object) +{ + M443DllWork *var_r31; + + var_r31 = object->data; + var_r31->unk_04++; + var_r31->unk_10++; + var_r31->unk_18++; + var_r31->unk_2C++; + fn_1_2F54(&lbl_1_bss_14); + if ((omSysExitReq != 0) && (var_r31->unk_00 != 5)) { + var_r31->unk_00 = 4; + fn_1_584(object); + } +} + +void fn_1_584(omObjData *object) +{ + M443DllWork *var_r31 = object->data; + + if (var_r31->unk_08 == 0) { + switch (var_r31->unk_00) { + case 0: + WipeCreate(1, 0, 0x3C); + lbl_1_bss_14.unk_00 = 1; + var_r31->unk_00 = 1; + var_r31->unk_10 = 0; + object->func = fn_1_1C98(lbl_1_bss_74, object); + break; + case 1: + var_r31->unk_00 = 2; + var_r31->unk_18 = 0; + fn_1_3FE8(4); + object->func = fn_1_ECC; + break; + case 2: + var_r31->unk_00 = 3; + var_r31->unk_2C = 0; + object->func = fn_1_2490(lbl_1_bss_74, object); + break; + case 3: + case 4: + var_r31->unk_08 = 1; + var_r31->unk_00 = 5; + object->func = fn_1_9B0; + break; + case 5: + default: + var_r31->unk_00 = 5; + object->func = fn_1_CE0; + break; + } + var_r31->unk_04 = 0; + } +} + +void fn_1_6D0(omObjData *object) +{ + fn_1_4E4(object); + fn_1_584(object); +} + +void fn_1_9B0(omObjData *object) +{ + M443DllWork *var_r27 = object->data; + + fn_1_4E4(object); + + if (WipeStatGet() == 0) { + WipeCreate(2, 0, 0x3C); + if (lbl_1_bss_8 >= 0) { + HuAudFXStop(lbl_1_bss_8); + lbl_1_bss_8 = -1; + } + var_r27->unk_08 = 0; + fn_1_584(object); + } +} + +void fn_1_CE0(omObjData *object) +{ + fn_1_4E4(object); + + if (WipeStatGet() == 0) { + fn_1_565C(); + fn_1_4AB0(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_ECC(omObjData *object) +{ + M443DllWork *var_r29 = object->data; + + fn_1_4E4(object); + switch (var_r29->unk_14) { + case 0: + var_r29->unk_1C = 0x12C; + var_r29->unk_20 = 0x3C; + lbl_1_bss_5A = MGSeqCreate(3, 0); + MGSeqPosSet(lbl_1_bss_5A, 320.0f, 240.0f); + lbl_1_bss_64 = -1; + Center.x = 0.0f; + Center.y = 200.0f; + Center.z = 0.0f; + CRot.x = -30.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + CZoom = 1900.0f; + lbl_1_bss_14.unk_00 = 1; + var_r29->unk_14 = 1; + var_r29->unk_18 = 0; + break; + case 1: + if ((var_r29->unk_18 > 60.0f) && (lbl_1_bss_C >= 0)) { + HuAudFXFadeOut(lbl_1_bss_C, 0x1E); + lbl_1_bss_C = -1; + } + if ((MGSeqStatGet(lbl_1_bss_5A) == 0) && (var_r29->unk_08 == 0)) { + var_r29->unk_14 = 2; + var_r29->unk_18 = 0; + object->func = fn_1_1294; + } + break; + } +} + +void fn_1_1294(omObjData *object) +{ + s32 sp8[4]; + + float var_f31; + + s32 var_r30; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + M443DllWork *var_r31 = object->data; + var_r25 = 0; + fn_1_4E4(object); + lbl_1_bss_14.unk_14++; + if (--var_r31->unk_20 == 0) { + var_r31->unk_20 = 0x3C; + var_r31->unk_1C--; + if (var_r31->unk_1C == 0) { + var_r31->unk_54 = 0; + var_r25 = 1; + } + } + if (var_r31->unk_1C <= 5) { + if (lbl_1_bss_64 < 0) { + lbl_1_bss_64 = MGSeqCreate(1, var_r31->unk_1C, -1, -1); + } + MGSeqParamSet(lbl_1_bss_64, 1, var_r31->unk_1C); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r31->unk_44[var_r30] >= 40000.0f) { + var_r31->unk_54 = 1; + } + } + if (var_r31->unk_54 != 2) { + var_r25 = 1; + } + if (var_r25 != 0) { + if (var_r31->unk_54 == 1) { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + sp8[var_r30] = var_r30; + } + for (var_r24 = 0; var_r24 < 0xA; var_r24++) { + for (var_r30 = 0; var_r30 < 3; var_r30++) { + for (var_r26 = var_r30 + 1; var_r26 < 4; var_r26++) { + if ((var_r31->unk_44[var_r30] < var_r31->unk_44[var_r26]) + || ((var_r31->unk_44[var_r30] == var_r31->unk_44[var_r26]) && (frandmod(0x3E8) < 0x2BC))) { + var_f31 = var_r31->unk_44[var_r30]; + var_r31->unk_44[var_r30] = var_r31->unk_44[var_r26]; + var_r31->unk_44[var_r26] = var_f31; + var_r23 = sp8[var_r30]; + sp8[var_r30] = sp8[var_r26]; + sp8[var_r26] = var_r23; + } + } + } + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r31->unk_34[sp8[var_r30]] = var_r30; + } + var_r31->unk_30 = sp8[0]; + } + lbl_1_bss_58 = MGSeqCreate(3, 1); + MGSeqPosSet(lbl_1_bss_58, 320.0f, 240.0f); + if (GWPlayerCfg[var_r31->unk_30].iscom == 0) { + if (lbl_1_bss_14.unk_14 < lbl_1_bss_14.unk_10) { + GWMGRecordSet(5, lbl_1_bss_14.unk_14); + lbl_1_bss_50 = 1; + } + if (lbl_1_bss_14.unk_14 <= 0x258) { + GWGameStat.present[0x39] = 1; + OSReport("Present For You!!!\n"); + } + } + lbl_1_bss_8 = HuAudFXPlay(0x735); + fn_1_3FE8(3); + var_r31->unk_14 = 3; + var_r31->unk_18 = 0; + if (var_r31->unk_08 == 0) { + object->func = fn_1_17D8; + } + } +} + +void fn_1_17D8(omObjData *object) +{ + M443DllWork *var_r27 = object->data; + s32 var_r25 = 0; + + if (lbl_1_bss_64 >= 0) { + MGSeqParamSet(lbl_1_bss_64, 2, -1); + lbl_1_bss_64 = -1; + } + fn_1_4E4(object); + if (var_r27->unk_14 == 3) { + if (var_r27->unk_54 == 1) { + M443DllCameraStruct *var_r31 = fn_1_4148(var_r27->unk_30 + 1); + if (var_r31->unk_A0 == 0) { + var_r31->unk_78 = var_r31->unk_44; + var_r31->unk_7C = var_r31->unk_48; + var_r31->unk_80 = var_r31->unk_40; + var_r31->unk_04 = 0x3E8; + } + if (var_r31->unk_A0 <= 0x3C) { + float var_f31 = 0.016666668f * var_r31->unk_A0; + var_r31->unk_44 = var_r31->unk_78 + ((320.0f - var_r31->unk_78) * var_f31); + var_r31->unk_48 = var_r31->unk_7C + ((240.0f - var_r31->unk_7C) * var_f31); + var_r31->unk_40 = var_r31->unk_80 + ((2.0f - var_r31->unk_80) * var_f31); + } + else { + var_r25 = 1; + } + var_r31->unk_A0 = var_r31->unk_A0 + 1; + } + else { + var_r25 = 1; + } + if ((MGSeqStatGet(lbl_1_bss_58) == 0) && (var_r27->unk_58 == 0x1111) && (var_r25 != 0)) { + if (var_r27->unk_08 == 0) { + WipeCreate(2, 0, 0x3C); + } + var_r27->unk_14 = 4; + var_r27->unk_18 = 0; + } + } + else if (WipeStatGet() == 0) { + var_r27->unk_14 = 5; + var_r27->unk_18 = 0; + fn_1_584(object); + } +} + +omObjFunc fn_1_1C98(Process *process, omObjData *object) +{ + CRot.x = -80.5f; + CRot.y = CRot.z = 0.0f; + Center.x = 0.0f; + Center.y = 0.0f; + Center.z = 0.0f; + CZoom = 1000.0f; + object->work[0] = object->work[1] = 0; + fn_1_3FE8(1); + lbl_1_bss_C = HuAudFXPlay(0x734); + + return fn_1_1D8C; +} + +Vec lbl_1_data_60[6] = { + { -500.0f, 150.0f, 350.0f }, + { -500.0f, 150.0f, 350.0f }, + { 500.0f, 150.0f, 350.0f }, + { 500.0f, 150.0f, 350.0f }, + { 0.0f, 150.0f, 350.0f }, + { 0.0f, 150.0f, 350.0f }, +}; + +Vec lbl_1_data_A8[6] = { + { -1.5f, -40.0f, 880.0f }, + { -1.5f, -40.0f, 880.0f }, + { -20.0f, 40.0f, 1000.0f }, + { -40.0f, 130.0f, 1300.0f }, + { -40.0f, 180.0f, 1500.0f }, + { -40.0f, 180.0f, 1500.0f }, +}; + +s32 lbl_1_data_F0[6] = { 0x3C, 0x5A, 0x6C, 0x96, 0x6C, 0 }; + +void fn_1_1D8C(omObjData *object) +{ + Vec sp8; + + float var_f31; + M443DllCameraStruct *var_r27; + + M443DllWork *var_r26 = object->data; + fn_1_4E4(object); + var_r26->unk_0C = 1; + object->work[0]++; + if ((object->work[1] == 1) && (lbl_1_bss_4 < 0)) { + lbl_1_bss_4 = HuAudSStreamPlay(0xB); + } + var_f31 = (float)object->work[0] / lbl_1_data_F0[object->work[1]]; + PSVECSubtract(&lbl_1_data_60[object->work[1] + 1], &lbl_1_data_60[object->work[1]], &sp8); + PSVECScale(&sp8, &sp8, var_f31); + PSVECAdd(&lbl_1_data_60[object->work[1]], &sp8, &sp8); + Center.x = sp8.x; + Center.y = sp8.y; + Center.z = sp8.z; + PSVECSubtract(&lbl_1_data_A8[object->work[1] + 1], &lbl_1_data_A8[object->work[1]], &sp8); + PSVECScale(&sp8, &sp8, var_f31); + PSVECAdd(&lbl_1_data_A8[object->work[1]], &sp8, &sp8); + CRot.x = sp8.x; + CRot.y = sp8.y; + CRot.z = 0.0f; + CZoom = sp8.z; + var_r27 = fn_1_4148(0); + var_r27->unk_1C = Center; + var_r27->unk_28 = CRot; + var_r27->unk_34 = CZoom; + if (object->work[1] == 3) { + fn_1_3FE8(2); + } + if (var_f31 >= 1.0f) { + object->work[0] = 0; + object->work[1] += 1; + if (lbl_1_data_F0[object->work[1]] == 0) { + var_r26->unk_0C = 2; + fn_1_584(object); + } + } +} + +omObjFunc fn_1_2490(Process *process, omObjData *object) +{ + M443DllCameraStruct *var_r31; + M443DllWork *var_r30 = object->data; + + if (var_r30->unk_08 == 0) { + WipeCreate(1, 0, 0x3C); + } + fn_1_3FE8(1); + var_r31 = fn_1_4148(0); + if (var_r30->unk_54 == 1) { + var_r31->unk_1C.x = 70.0f; + var_r31->unk_1C.y = 250.0f; + var_r31->unk_1C.z = 500.0f; + } + else { + var_r31->unk_1C.x = 0.0f; + var_r31->unk_1C.y = 150.0f; + var_r31->unk_1C.z = 1000.0f; + } + var_r31->unk_28.x = -10.0f; + var_r31->unk_28.y = 0.0f; + + var_r31->unk_34 = 800.0f; + return fn_1_25A4; +} + +void fn_1_25A4(omObjData *object) +{ + M443DllWork *var_r28 = object->data; + s32 var_r22 = 1; + + fn_1_4E4(object); + if (lbl_1_bss_50 != 0) { + var_r22 = 0; + if (lbl_1_bss_56 < 0) { + lbl_1_bss_56 = MGSeqCreate(0xE, lbl_1_bss_14.unk_14); + lbl_1_bss_14.unk_04 = 1; + } + else if (MGSeqStatGet(lbl_1_bss_56) == 0) { + var_r22 = 1; + lbl_1_bss_50 = 0; + } + } + if ((WipeStatGet() != 0) || (var_r22 == 0)) { + var_r28->unk_2C = 0; + return; + } + var_r28->unk_28 = 1; + if (lbl_1_bss_0 < 0) { + if (var_r28->unk_54 == 1) { + lbl_1_bss_0 = HuAudSStreamPlay(1); + } + else { + lbl_1_bss_0 = HuAudSStreamPlay(4); + } + } + if (lbl_1_bss_54 < 0) { + if (var_r28->unk_54 == 1) { + lbl_1_bss_54 = MGSeqCreate(5, 3, GWPlayerCfg[var_r28->unk_30].character, -1, -1, -1); + GWPlayerCoinWinAdd(var_r28->unk_30, 10); + } + else { + lbl_1_bss_54 = MGSeqCreate(5, 2); + } + } + else if ((MGSeqStatGet(lbl_1_bss_54) == 0) && (var_r28->unk_2C >= 210.0f)) { + var_r28->unk_28 = 2; + fn_1_584(object); + } +} + +M443DllData108Struct lbl_1_data_108[0x10] = { + { 0x4A001F, 0x10E }, + { 0x610037, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, +}; + +void fn_1_2DD8(M443DllUnkStruct *arg0) +{ + s32 var_r30; + + memset(arg0, 0, sizeof(M443DllUnkStruct)); + arg0->unk_10 = GWMGRecordGet(5); + if (arg0->unk_10 == 0) { + arg0->unk_10 = 0xE10; + } + arg0->unk_08 = 320.0f; + arg0->unk_0C = 64.0f; + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + arg0->unk_1C[var_r30] = -1; + if (lbl_1_data_108[var_r30].unk_00 != 0) { + arg0->unk_1C[var_r30] = espEntry(lbl_1_data_108[var_r30].unk_00, lbl_1_data_108[var_r30].unk_04, 0); + espAttrSet(arg0->unk_1C[var_r30], 8); + espDispOff(arg0->unk_1C[var_r30]); + } + } + espColorSet(arg0->unk_1C[0], 0, 0, 0); + espTPLvlSet(arg0->unk_1C[0], 0.699999988079071); + espBankSet(arg0->unk_1C[7], 0xB); + espBankSet(arg0->unk_1C[8], 0xA); + espBankSet(arg0->unk_1C[14], 0xB); + espBankSet(arg0->unk_1C[15], 0xA); +} + +Vec2f lbl_1_data_188[0x10] = { + { 0.0f, 0.0f }, + { -52.0f, -9.0f }, + { 53.0f, -8.0f }, + { 35.0f, -8.0f }, + { 9.0f, -8.0f }, + { -9.0f, -8.0f }, + { -31.0f, -8.0f }, + { 23.0f, -8.0f }, + { -17.0f, -8.0f }, + { 53.0f, 8.0f }, + { 35.0f, 8.0f }, + { 9.0f, 8.0f }, + { -9.0f, 8.0f }, + { -31.0f, 8.0f }, + { 23.0f, 8.0f }, + { -17.0f, 8.0f }, +}; + +void fn_1_2F54(M443DllUnkStruct *arg0) +{ + u32 sp8[3]; + float var_f31; + + s32 var_r30; + u32 var_r29; + s32 var_r28; + s32 var_r27; + + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + if (arg0->unk_1C[var_r30] >= 0) { + if (arg0->unk_00 == 0) { + espDispOff(arg0->unk_1C[var_r30]); + } + else { + espDispOn(arg0->unk_1C[var_r30]); + espPosSet(arg0->unk_1C[var_r30], 0.9f * (arg0->unk_08 + lbl_1_data_188[var_r30].x), arg0->unk_0C + lbl_1_data_188[var_r30].y); + } + } + } + arg0->unk_18++; + if (arg0->unk_04 != 0) { + var_r29 = arg0->unk_14; + arg0->unk_10 = var_r29; + var_f31 = 1.100000023841858 + (0.10000000149011612 * sind((22.5f * (arg0->unk_18 & 0xF)))); + espScaleSet(arg0->unk_1C[1], var_f31, var_f31); + for (var_r30 = 2; var_r30 <= 6; var_r30++) { + espScaleSet(arg0->unk_1C[var_r30], var_f31, var_f31); + } + for (var_r30 = 7; var_r30 <= 8; var_r30++) { + espScaleSet(arg0->unk_1C[var_r30], var_f31, var_f31); + } + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + if (var_r30 != 0) { + var_r29 = arg0->unk_14; + var_r27 = 9; + } + else { + var_r29 = arg0->unk_10; + var_r27 = 2; + } + sp8[0] = var_r29 % 60; + var_r29 = (var_r29 - sp8[0]) / 60; + sp8[0] = 100.0f * (0.016666668f * sp8[0]); + sp8[1] = var_r29 % 60; + var_r29 = (var_r29 - sp8[1]) / 60; + sp8[2] = var_r29; + for (var_r28 = 0; var_r28 < 3; var_r28++) { + espBankSet(arg0->unk_1C[var_r27++], sp8[var_r28] % 10); + if (var_r28 < 2) { + espBankSet(arg0->unk_1C[var_r27++], sp8[var_r28] / 10); + } + } + } +} + +void fn_1_32C0(Process *process) +{ + Hu3DCameraCreate(0x1F); + lbl_1_bss_6C = omAddObjEx(process, 0x7FDA, 0, 0, -1, omOutViewMulti); + lbl_1_bss_6C->work[0] = 5; + lbl_1_bss_68 = omAddObjEx(process, 0xC, 1, 0, -1, fn_1_3370); + lbl_1_bss_68->work[0] = 0; +} + +void fn_1_3370(omObjData *object) +{ + M443DllCameraStruct *var_r31; + s32 var_r30; + M443DllCameraStruct *var_r28; + + float sp1C[5][4] = { + { 320.0f, 240.0f, 640.0f, 416.0f }, + { 160.0f, 136.0f, 320.0f, 208.0f }, + { 480.0f, 136.0f, 320.0f, 208.0f }, + { 160.0f, 344.0f, 320.0f, 208.0f }, + { 480.0f, 344.0f, 320.0f, 208.0f }, + }; + s32 sp8[5] = { 1, 2, 4, 8, 16 }; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 10 * sizeof(M443DllCameraStruct), MEMORY_DEFAULT_NUM); + var_r28 = object->data; + memset(var_r28, 0, 10 * sizeof(M443DllCameraStruct)); + object->model[0] = Hu3DHookFuncCreate(fn_1_3D78); + Hu3DModelLayerSet(*object->model, 0); + Hu3DModelCameraSet(*object->model, 0x1E); + for (var_r31 = var_r28, var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + var_r31->unk_00 = 1; + var_r31->unk_04 = var_r30 * 0x64; + var_r31->unk_10 = 41.5f; + var_r31->unk_14 = 100.0f; + var_r31->unk_18 = 60000.0f; + var_r31->unk_1C.x = 0.0f; + var_r31->unk_1C.y = 0.0f; + var_r31->unk_1C.z = 0.0f; + var_r31->unk_28.x = -15.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_34 = 1000.0f; + var_r31->unk_40 = 1.0f; + var_r31->unk_44 = sp1C[var_r30][0]; + var_r31->unk_48 = sp1C[var_r30][1]; + var_r31->unk_4C = sp1C[var_r30][2]; + var_r31->unk_50 = sp1C[var_r30][3]; + var_r31->unk_3C = var_r31->unk_0C = sp8[var_r30]; + var_r31->unk_08 = var_r30; + var_r31->unk_38 = var_r30; + } + object->work[1] = 0; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + lbl_1_bss_10[var_r30] = espEntry(0x4A001E, 0x12C, 0); + espPosSet(lbl_1_bss_10[var_r30], 288.0, 240.0); + if (var_r30 != 0) { + espScaleSet(lbl_1_bss_10[var_r30], 0.22499999403953552, 60.0); + } + else { + espScaleSet(lbl_1_bss_10[var_r30], 72.0, 0.25); + } + espColorSet(lbl_1_bss_10[var_r30], 0, 0, 0); + espTPLvlSet(lbl_1_bss_10[var_r30], 1.0); + espDispOff(lbl_1_bss_10[var_r30]); + } + object->work[0]++; + fn_1_3770(object); + object->func = fn_1_3710; +} + +void fn_1_3710(omObjData *arg0) +{ + M443DllWork *sp8 = arg0->data; + s32 spC[4] = { 0x100, 0x200, 0x400, 0x800 }; + fn_1_3770(arg0); +} + +void fn_1_3770(omObjData *arg0) +{ + float var_f31; + + M443DllCameraStruct *var_r31; + s32 var_r30; + s32 var_r29; + M443DllCameraStruct *var_r28; + omObjData *var_r27; + s32 var_r26; + u32 var_r25; + s32 var_r24; + s32 var_r23; + u32 var_r22; + u32 var_r21; + + var_r28 = arg0->data; + { + s32 sp40[4] = { 2, 4, 8, 16 }; + u32 sp30[4]; + s32 sp20[4]; + float sp18[2]; + float sp10[2]; + float sp8[2]; + + var_r24 = 0; + var_r26 = 0; + memcpy(&var_r28[5], var_r28, 5 * sizeof(M443DllCameraStruct)); + switch (arg0->work[1]) { + case 0: + break; + case 1: + var_r26 |= 1; + break; + case 2: + var_r26 |= 1; + case 3: + var_r24 = 1; + case 4: + var_r26 |= 0x1E; + break; + } + if (var_r24 != 0) { + Hu3DModelAttrReset(arg0->model[0], 1); + } + else { + Hu3DModelAttrSet(arg0->model[0], 1); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + sp30[var_r30] = var_r28[var_r30 + 6].unk_04; + sp20[var_r30] = var_r30; + } + for (var_r30 = 0; var_r30 < 3; var_r30++) { + for (var_r29 = var_r30 + 1; var_r29 < 4; var_r29++) { + if ((var_r30 != var_r29) && (sp30[var_r30] > sp30[var_r29])) { + var_r25 = sp30[var_r30]; + sp30[var_r30] = sp30[var_r29]; + sp30[var_r29] = var_r25; + var_r25 = sp20[var_r30]; + sp20[var_r30] = sp20[var_r29]; + sp20[var_r29] = var_r25; + } + } + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r28[sp20[var_r30] + 6].unk_3C = sp40[var_r30]; + var_r28[sp20[var_r30] + 6].unk_38 = var_r30 + 1; + } + Hu3DCamera[5].fov = -1.0f; + for (var_r31 = &var_r28[5], var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if ((var_r31->unk_00 == 0) || ((var_r26 & var_r31->unk_0C) == 0)) { + Hu3DCamera[var_r31->unk_38].fov = -1.0f; + } + else { + var_f31 = 1.2f * ((var_r31->unk_4C / 640.0f) / (var_r31->unk_50 / 480.0f)); + sp18[0] = var_r31->unk_4C * var_r31->unk_40; + sp18[1] = var_r31->unk_50 * var_r31->unk_40; + Hu3DCameraPerspectiveSet(var_r31->unk_3C, var_r31->unk_10, var_r31->unk_14, var_r31->unk_18, var_f31); + Hu3DCameraViewportSet( + var_r31->unk_3C, var_r31->unk_44 - (0.5f * sp18[0]), var_r31->unk_48 - (0.5f * sp18[1]), sp18[0], sp18[1], 0.0f, 1.0f); + sp10[0] = var_r31->unk_44 - (0.5f * sp18[0]); + sp10[1] = var_r31->unk_48 - (0.5f * sp18[1]); + sp8[0] = var_r31->unk_44 + (0.5f * sp18[0]); + sp8[1] = var_r31->unk_48 + (0.5f * sp18[1]); + if (sp10[0] < 0.0f) { + sp10[0] = 0.0f; + } + if (sp10[1] < 0.0f) { + sp10[1] = 0.0f; + } + if (sp8[0] > 640.0f) { + sp8[0] = 640.0f; + } + if (sp8[1] > 480.0f) { + sp8[1] = 480.0f; + } + sp8[0] -= sp10[0]; + sp8[1] -= sp10[1]; + Hu3DCameraScissorSet(var_r31->unk_3C, sp10[0], sp10[1], sp8[0], sp8[1]); + var_r29 = var_r31->unk_38; + CenterM[var_r29].x = var_r31->unk_1C.x; + CenterM[var_r29].y = var_r31->unk_1C.y; + CenterM[var_r29].z = var_r31->unk_1C.z; + CRotM[var_r29].x = var_r31->unk_28.x; + CRotM[var_r29].y = var_r31->unk_28.y; + CRotM[var_r29].z = var_r31->unk_28.z; + CZoomM[var_r29] = var_r31->unk_34; + } + } + } + if (arg0->work[1] == 4) { + espDispOn(lbl_1_bss_10[0]); + espDispOn(lbl_1_bss_10[1]); + return; + } + espDispOff(lbl_1_bss_10[0]); + espDispOff(lbl_1_bss_10[1]); +} + +GXColor lbl_1_data_208 = { 0x00, 0x00, 0x00, 0x00 }; + +void fn_1_3D78(ModelData *arg0, Mtx arg1) +{ + Mtx spC; + + PSMTXIdentity(spC); + GXLoadPosMtxImm(spC, 0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetTevColor(GX_TEVREG0, lbl_1_data_208); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetBlendMode(GX_BM_NONE, GX_BL_ONE, GX_BL_ZERO, GX_LO_SET); + GXSetZMode(GX_TRUE, GX_ALWAYS, GX_TRUE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-45000.0f, 30000.0f, -59900.0f); + GXPosition3f32(45000.0f, 30000.0f, -59900.0f); + GXPosition3f32(45000.0f, -30000.0f, -59900.0f); + GXPosition3f32(-45000.0f, -30000.0f, -59900.0f); +} + +void fn_1_3FE8(u32 arg0) +{ + lbl_1_bss_68->work[1] = arg0; +} + +u32 fn_1_3FFC(void) +{ + return lbl_1_bss_68->work[1]; +} + +M443DllCameraStruct *fn_1_4010(s32 arg0) +{ + M443DllCameraStruct *var_r31; + s32 var_r30; + M443DllCameraStruct *var_r29; + + var_r29 = lbl_1_bss_68->data; + for (var_r31 = var_r29, var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if (var_r31->unk_0C & arg0) { + break; + } + } + if (var_r30 >= 5) { + OSReport("M443:Camera Flag Error!!\n"); + return NULL; + } + return var_r31; +} + +M443DllCameraStruct *fn_1_40AC(s32 arg0) +{ + M443DllCameraStruct *var_r31; + s32 var_r30; + M443DllCameraStruct *var_r29; + + var_r29 = lbl_1_bss_68->data; + for (var_r31 = &var_r29[5], var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if (var_r31->unk_0C & arg0) { + break; + } + } + if (var_r30 >= 5) { + OSReport("M443:Camera Flag Error!!\n"); + return NULL; + } + return var_r31; +} + +// Get camera +M443DllCameraStruct *fn_1_4148(u32 arg0) +{ + M443DllCameraStruct *var_r31 = lbl_1_bss_68->data; + if (arg0 >= 5) { + OSReport("M443:Camera No. Error!!\n"); + return NULL; + } + return &var_r31[arg0]; +} + +M443DllCameraStruct *fn_1_41B0(u32 arg0) +{ + M443DllCameraStruct *var_r31 = lbl_1_bss_68->data; + if (arg0 >= 5) { + OSReport("M443:Camera No. Error!!\n"); + return NULL; + } + return &var_r31[arg0 + 5]; +} + +void fn_1_421C(s32 arg0, s32 arg1) +{ + M443DllCameraStruct *var_r31; + s32 var_r30; + M443DllCameraStruct *var_r28; + M443DllCameraStruct *var_r27; + + s32 var_r29 = 0; + if (arg0 >= 0) { + var_r27 = lbl_1_bss_68->data; + var_r28 = &var_r27[5]; + for (var_r31 = var_r28, var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if (var_r31->unk_0C & arg1) { + var_r29 |= var_r31->unk_3C; + } + } + Hu3DModelCameraSet(arg0, var_r29); + } +} + +s32 fn_1_42B4(void) +{ + return ((M443DllWork *)lbl_1_bss_70->data)->unk_00; +} + +s32 fn_1_42CC(void) +{ + return ((M443DllWork *)lbl_1_bss_70->data)->unk_0C; +} + +u32 fn_1_42E4(void) +{ + return ((M443DllWork *)lbl_1_bss_70->data)->unk_14; +} + +s32 fn_1_42FC(void) +{ + return ((M443DllWork *)lbl_1_bss_70->data)->unk_28; +} + +void fn_1_4314(s32 arg0, float arg8) +{ + M443DllWork *var_r31 = lbl_1_bss_70->data; + + if (fn_1_42E4() == 2) { + var_r31->unk_44[arg0] = arg8; + } +} + +s32 fn_1_4368(s32 arg0) +{ + M443DllWork *var_r31 = lbl_1_bss_70->data; + + if (var_r31->unk_54 == 1) { + return var_r31->unk_34[arg0]; + } + return -1; +} + +void fn_1_43AC(s32 arg0) +{ + ((M443DllWork *)lbl_1_bss_70->data)->unk_58 |= (1 << ((arg0 & 7) * 4)); +} + +void fn_1_43DC(s32 arg0) +{ + ((M443DllWork *)lbl_1_bss_70->data)->unk_5C |= (1 << ((arg0 & 3) * 4)); +} + +s32 fn_1_440C(void) +{ + return MGSeqStatGet(lbl_1_bss_58) == 0; +} + +void fn_1_4444(Vec *arg0, Vec *arg1) +{ + Vec sp10; + float var_f30; + + PSVECSubtract(arg1, arg0, &sp10); + Center = *arg1; + var_f30 = (sp10.x * sp10.x) + (sp10.z * sp10.z); + CRot.x = atan2d(sp10.y, sqrtf(var_f30)); + CRot.y = atan2d(-sp10.x, -sp10.z); + CRot.z = 0.0f; + CZoom = PSVECMag(&sp10); +} + +void fn_1_464C(float arg8, float arg9, float argA, float argB, float argC, float argD) +{ + Vec sp3C; + Vec sp30; + Vec sp24; + float var_f30; + + sp3C.x = arg8; + sp3C.y = arg9; + sp3C.z = argA; + sp30.x = argB; + sp30.y = argC; + sp30.z = argD; + PSVECSubtract(&sp30, &sp3C, &sp24); + Center = sp30; + var_f30 = (sp24.x * sp24.x) + (sp24.z * sp24.z); + CRot.x = atan2d(sp24.y, sqrtf(var_f30)); + CRot.y = atan2d(-sp24.x, -sp24.z); + CRot.z = 0.0f; + CZoom = PSVECMag(&sp24); +} + +float fn_1_488C(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + float var_f29; + + var_f30 = fmod(arg9 - arg8, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + var_f29 = fmod(arg8 + (argA * var_f31), 360.0); + var_f31 = var_f29; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + return var_f31; +} + +float fn_1_49A8(float arg8, float arg9) +{ + float var_f31; + float var_f30; + + var_f30 = fmod(arg9 - arg8, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} diff --git a/src/REL/m443Dll/map.c b/src/REL/m443Dll/map.c new file mode 100644 index 00000000..bab11988 --- /dev/null +++ b/src/REL/m443Dll/map.c @@ -0,0 +1,183 @@ +#include "datadir_enum.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" + +#include "REL/m443Dll.h" + +void fn_1_4AB4(omObjData *object); +void fn_1_4D14(omObjData *object); + +s32 lbl_1_data_240[5] = { 1, 2, 4, 8, 0x10 }; + +void fn_1_4A5C(Process *process) +{ + omObjData *var_r31 = omAddObjEx(process, 0x1E, 0xD, 0, -1, fn_1_4AB4); + var_r31->work[0] = 0; +} + +void fn_1_4AB0(void) { } + +void fn_1_4AB4(omObjData *object) +{ + s32 var_r30; + + omSetTra(object, 0.0f, 0.0f, 0.0f); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 0)); + Hu3DModelLayerSet(object->model[0], 2); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 2)); + Hu3DModelLayerSet(object->model[2], 2); + Hu3DModelAttrSet(object->model[2], 1); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 4)); + Hu3DModelLayerSet(object->model[3], 2); + Hu3DMotionSpeedSet(object->model[3], 0.0f); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 3)); + Hu3DModelLayerSet(object->model[4], 2); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + object->model[var_r30 + 5] = Hu3DModelLink(object->model[4]); + Hu3DModelLayerSet(object->model[var_r30 + 5], 2); + Hu3DModelScaleSet(object->model[var_r30 + 5], 0.93f, 0.93f, 0.93f); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + object->model[var_r30 + 9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 1)); + Hu3DModelLayerSet(object->model[var_r30 + 9], 2); + Hu3DMotionSpeedSet(object->model[var_r30 + 9], 0.0f); + } + object->work[0] = 0; + object->work[1] = 0; + object->work[2] = 0; + object->work[3] = 0; + object->func = fn_1_4D14; +} + +typedef struct M443DllMapUnkStruct { + Vec unk_00[4]; + float unk_30; +} M443DllMapUnkStruct; /* size = 0x34 */ + +void fn_1_4D14(omObjData *object) +{ + float var_f31; + float var_f30; + + M443DllCameraStruct *var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = 1; + { + Mtx sp5C; + Vec sp20; + Vec sp14; + Vec sp8 = { 0.0f, 0.0f, 0.0f }; + Vec sp2C[4] = { + { -50.0f, 0.0f, -150.0f }, + { 50.0f, 0.0f, -150.0f }, + { -50.0f, 0.0f, -150.0f }, + { 50.0f, 0.0f, -150.0f }, + }; + + for (var_r29 = 0; var_r29 < 5; var_r29++) { + var_r30 = fn_1_40AC(lbl_1_data_240[var_r29]); + sp20.x = var_r30->unk_1C.x + (var_r30->unk_34 * (sind(var_r30->unk_28.y) * cosd(var_r30->unk_28.x))); + sp20.y = var_r30->unk_1C.y + (var_r30->unk_34 * -sind(var_r30->unk_28.x)); + sp20.z = var_r30->unk_1C.z + (var_r30->unk_34 * (cosd(var_r30->unk_28.y) * cosd(var_r30->unk_28.x))); + Hu3DModelPosSetV(object->model[var_r29 + 4], &sp20); + fn_1_421C(object->model[var_r29 + 4], lbl_1_data_240[var_r29]); + } + object->work[1] += 1; + var_f31 = 150.0f; + switch (object->work[0]) { + case 0: + if (fn_1_3FFC() == 4) { + object->work[0] += 1; + object->work[1] = 0; + } + break; + case 1: + var_f30 = 1.0f - (0.016666668f * object->work[1]); + if (var_f30 <= 0.0f) { + object->work[0] += 1; + object->work[1] = 0; + var_f30 = 0.0f; + } + var_f31 = var_f31 * var_f30; + break; + case 2: + var_f31 = 0.0f; + if (fn_1_42E4() < 2) { + object->work[1] = 0; + } + if (object->work[1] >= 60.0f) { + object->work[0] += 1; + object->work[1] = 0; + } + break; + case 3: + var_f30 = 0.016666668f * object->work[1]; + if (var_f30 > 1.0f) { + object->work[0] += 1; + object->work[1] = 0; + var_r28 = 0; + } + var_f31 = var_f31 * var_f30; + break; + default: + var_r28 = 0; + break; + } + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r30 = fn_1_40AC(lbl_1_data_240[var_r29 + 1]); + mtxRot(sp5C, var_r30->unk_28.x, var_r30->unk_28.y, 0.0f); + sp8.z = var_r30->unk_34; + PSMTXMultVec(sp5C, &sp8, &sp14); + PSVECAdd(&var_r30->unk_1C, &sp14, &sp20); + sp2C[var_r29].y += var_f31; + PSMTXMultVec(sp5C, &sp2C[var_r29], &sp14); + PSVECAdd(&sp20, &sp14, &sp20); + Hu3DModelPosSetV(object->model[var_r29 + 9], &sp20); + Hu3DModelRotSet(object->model[var_r29 + 9], var_r30->unk_28.x, var_r30->unk_28.y, 0.0f); + Hu3DModelScaleSet(object->model[var_r29 + 9], 0.15f, 0.15f, 0.15f); + fn_1_421C(object->model[var_r29 + 9], lbl_1_data_240[var_r29 + 1]); + if (fn_1_42E4() >= 1) { + if (object->work[2] == 0) { + object->work[2] = 1; + object->work[3] = 0; + } + Hu3DMotionSpeedSet(object->model[var_r29 + 9], 0.95f); + if (var_r28 == 0) { + Hu3DModelAttrSet(object->model[var_r29 + 9], 1); + } + } + } + if (object->work[2] != 0) { + object->work[3] += 1; + if (object->work[3] >= 60.0f) { + switch (object->work[2]) { + case 1: + case 2: + HuAudFXPlay(0x725); + break; + case 3: + HuAudFXPlay(0x726); + break; + } + object->work[2] += 1; + object->work[3] = 0; + } + } + if (fn_1_42E4() == 2) { + Hu3DMotionSpeedSet(object->model[3], 1.0f); + } + else if (fn_1_42E4() == 5) { + Hu3DModelAttrSet(object->model[3], 1); + } + if (fn_1_42E4() == 5) { + Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelShadowMapSet(object->model[0]); + Hu3DModelShadowMapSet(object->model[2]); + } + } +} diff --git a/src/REL/m443Dll/player.c b/src/REL/m443Dll/player.c new file mode 100644 index 00000000..98e6f793 --- /dev/null +++ b/src/REL/m443Dll/player.c @@ -0,0 +1,16 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "string.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#include "game/frand.h" +#endif + +#include "REL/m443Dll.h" From 85f1363bcc1172a1f302b755ddffafd60a5f710c Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 29 Oct 2024 21:16:32 +0100 Subject: [PATCH 085/311] Got 99% on mpexDll/mpex.c --- config/GMPE01_00/rels/mpexDll/symbols.txt | 58 +- include/REL/mpexDll.h | 33 +- include/game/object.h | 4 +- include/game/objsub.h | 2 +- src/REL/mpexDll/main.c | 56 +- src/REL/mpexDll/mpex.c | 3500 +++++++++++++++++++++ src/game/objmain.c | 4 +- src/game/objsub.c | 2 +- 8 files changed, 3588 insertions(+), 71 deletions(-) create mode 100644 src/REL/mpexDll/mpex.c diff --git a/config/GMPE01_00/rels/mpexDll/symbols.txt b/config/GMPE01_00/rels/mpexDll/symbols.txt index 8b856ada..21ef6f1a 100644 --- a/config/GMPE01_00/rels/mpexDll/symbols.txt +++ b/config/GMPE01_00/rels/mpexDll/symbols.txt @@ -256,7 +256,7 @@ lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0xC scope:local data: lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0xC scope:local data:float lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double @@ -267,14 +267,14 @@ lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data: lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC scope:local data:4byte -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC scope:local data:4byte -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0xC scope:local data:float lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC scope:local data:4byte -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC scope:local data:4byte -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC scope:local data:float lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double @@ -395,34 +395,34 @@ lbl_1_data_232 = .data:0x00000232; // type:object size:0xE scope:local data:stri lbl_1_data_240 = .data:0x00000240; // type:object size:0x54 lbl_1_data_294 = .data:0x00000294; // type:object size:0x4 data:4byte lbl_1_data_298 = .data:0x00000298; // type:object size:0x4 data:4byte -lbl_1_data_29C = .data:0x0000029C; // type:object size:0x18 +lbl_1_data_29C = .data:0x0000029C; // type:object size:0x18 scope:local data:string lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x10 data:4byte lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x4 data:4byte -lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x3 data:string -lbl_1_data_2CB = .data:0x000002CB; // type:object size:0x5 data:string -lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x19 data:string -lbl_1_data_2E9 = .data:0x000002E9; // type:object size:0x12 data:string -lbl_1_data_2FB = .data:0x000002FB; // type:object size:0x29 +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x3 scope:local data:string +lbl_1_data_2CB = .data:0x000002CB; // type:object size:0x5 scope:local data:string +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x19 scope:local data:string +lbl_1_data_2E9 = .data:0x000002E9; // type:object size:0x12 scope:local data:string +lbl_1_data_2FB = .data:0x000002FB; // type:object size:0x29 scope:local data:string lbl_1_data_324 = .data:0x00000324; // type:object size:0x4 data:4byte lbl_1_data_328 = .data:0x00000328; // type:object size:0x4 data:4byte lbl_1_data_32C = .data:0x0000032C; // type:object size:0xC data:4byte -lbl_1_data_338 = .data:0x00000338; // type:object size:0x2B data:string -lbl_1_data_363 = .data:0x00000363; // type:object size:0x28 data:string -lbl_1_data_38B = .data:0x0000038B; // type:object size:0x5 data:string -lbl_1_data_390 = .data:0x00000390; // type:object size:0x4 data:string -lbl_1_data_394 = .data:0x00000394; // type:object size:0x4 +lbl_1_data_338 = .data:0x00000338; // type:object size:0x2B scope:local data:string +lbl_1_data_363 = .data:0x00000363; // type:object size:0x28 scope:local data:string +lbl_1_data_38B = .data:0x0000038B; // type:object size:0x5 scope:local data:string +lbl_1_data_390 = .data:0x00000390; // type:object size:0x4 scope:local data:string +lbl_1_data_394 = .data:0x00000394; // type:object size:0x4 scope:local data:string jumptable_1_data_398 = .data:0x00000398; // type:object size:0x2C scope:local -lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x3C data:string -lbl_1_data_400 = .data:0x00000400; // type:object size:0x16 data:string -lbl_1_data_416 = .data:0x00000416; // type:object size:0x1A data:string -lbl_1_data_430 = .data:0x00000430; // type:object size:0x1A data:string -lbl_1_data_44A = .data:0x0000044A; // type:object size:0x1A data:string -lbl_1_data_464 = .data:0x00000464; // type:object size:0x17 data:string -lbl_1_data_47B = .data:0x0000047B; // type:object size:0x16 data:string -lbl_1_data_491 = .data:0x00000491; // type:object size:0x16 data:string -lbl_1_data_4A7 = .data:0x000004A7; // type:object size:0x19 data:string -lbl_1_data_4C0 = .data:0x000004C0; // type:object size:0x16 data:string -lbl_1_data_4D6 = .data:0x000004D6; // type:object size:0x42 +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x3C scope:local data:string +lbl_1_data_400 = .data:0x00000400; // type:object size:0x16 scope:local data:string +lbl_1_data_416 = .data:0x00000416; // type:object size:0x1A scope:local data:string +lbl_1_data_430 = .data:0x00000430; // type:object size:0x1A scope:local data:string +lbl_1_data_44A = .data:0x0000044A; // type:object size:0x1A scope:local data:string +lbl_1_data_464 = .data:0x00000464; // type:object size:0x17 scope:local data:string +lbl_1_data_47B = .data:0x0000047B; // type:object size:0x16 scope:local data:string +lbl_1_data_491 = .data:0x00000491; // type:object size:0x16 scope:local data:string +lbl_1_data_4A7 = .data:0x000004A7; // type:object size:0x19 scope:local data:string +lbl_1_data_4C0 = .data:0x000004C0; // type:object size:0x16 scope:local data:string +lbl_1_data_4D6 = .data:0x000004D6; // type:object size:0x42 scope:local data:string lbl_1_data_518 = .data:0x00000518; // type:object size:0x3C scope:local data:string lbl_1_data_554 = .data:0x00000554; // type:object size:0x19 scope:local data:string lbl_1_data_56D = .data:0x0000056D; // type:object size:0x1A scope:local data:string diff --git a/include/REL/mpexDll.h b/include/REL/mpexDll.h index c14b7b54..58c6910d 100644 --- a/include/REL/mpexDll.h +++ b/include/REL/mpexDll.h @@ -17,26 +17,35 @@ typedef struct MpexDllUnkStruct { /* 0x40 */ s32 unk_40; } MpexDllUnkStruct; /* size = 0x44 */ -typedef struct MpexDllUnkStruct2 { - /* 0x00 */ char unk00[0x40]; - /* 0x40 */ s16 *unk_40; - /* 0x44 */ char unk44; - /* 0x48 */ s16 *unk_48; - /* 0x4C */ char unk_4C[0xC]; - /* 0x58 */ u32 unk_58; -} MpexDllUnkStruct2; /* size = unknown */ - void fn_1_374(void); void fn_1_298(void); void fn_1_910(MpexDllUnkFunc arg0); -void fn_1_25C4(MpexDllUnkStruct2 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); -void fn_1_28E0(MpexDllUnkStruct2 *arg0, s32 arg1, Vec *arg2, float arg8, float arg9, float argA, s32 arg3, s32 arg4); -s32 fn_1_3044(Process *arg0); +void fn_1_25C4(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_28E0(omObjData *arg0, s32 arg1, Vec arg2, float arg8, float arg9, float argA, s32 arg3, s32 arg4); +Process *fn_1_3044(Process *arg0); + +void fn_1_1264C(Process *arg0); +s32 fn_1_140B0(s32 arg0, s32 arg1); +void fn_1_148BC(s32 arg0); +void fn_1_148E4(s32 arg0); +void fn_1_1A5A4(s32 arg0); +float fn_1_1B714(float arg8, float arg9, float argA, float argB); +void fn_1_1B810(void); +void fn_1_1B834(void); +void fn_1_1B9F4(void); +void fn_1_1BA78(u32 arg0, s32 arg1, s32 arg2); +void fn_1_1BB4C(u32 arg0, s32 arg1); +s32 fn_1_1BBA4(s32 arg0); +void fn_1_1BD00(u32 arg0, s32 arg1); +void fn_1_1BF1C(u32 arg0); +void fn_1_1C120(void); void fn_1_1B7D0(s32 arg0); s32 fn_1_1D02C(s32 arg0); extern u8 lbl_1_bss_6AC; +extern s32 lbl_1_bss_63C[0x1C]; +extern MpexDllUnkStruct lbl_1_bss_64; #endif diff --git a/include/game/object.h b/include/game/object.h index 95061c52..69f4cb6b 100644 --- a/include/game/object.h +++ b/include/game/object.h @@ -117,7 +117,7 @@ extern s32 omcurdll; extern s32 omovlhisidx; extern s32 omovlevtno; extern s32 omnextovlevtno; -extern s32 omovlstat; +extern u32 omovlstat; extern char omUPauseFlag; extern s16 omSysExitReq; extern s16 omdispinfo; @@ -134,4 +134,4 @@ extern Vec CenterM[16]; extern float CZoomM[16]; extern s16 omDBGMenuButton; -#endif \ No newline at end of file +#endif diff --git a/include/game/objsub.h b/include/game/objsub.h index 2cc262d0..d42531e5 100644 --- a/include/game/objsub.h +++ b/include/game/objsub.h @@ -26,7 +26,7 @@ extern s16 mgTypeCurr; extern s16 mgBattleStar[4]; extern s16 mgBattleStarMax; extern u8 lbl_801D3E94; -extern s32 mgRecordExtra; +extern u32 mgRecordExtra; extern s32 mgQuitExtraF; extern s32 mgPracticeEnableF; extern s32 mgInstExitEnableF; diff --git a/src/REL/mpexDll/main.c b/src/REL/mpexDll/main.c index ed43b5c1..8e6bdafc 100644 --- a/src/REL/mpexDll/main.c +++ b/src/REL/mpexDll/main.c @@ -3,6 +3,7 @@ #include "game/audio.h" #include "game/hsfman.h" #include "game/hsfmotion.h" +#include "game/object.h" #include "game/objsub.h" #include "game/pad.h" #include "game/printfunc.h" @@ -11,6 +12,13 @@ #include "REL/mpexDll.h" +#ifndef __MWERKS__ +float fn_1_1B52C(float arg8, float arg9, float argA, float argB); +float fn_1_1B554(float, float, float); +float fn_1_1B574(float arg0, float arg1, float arg2, float arg3); +float fn_1_1B64C(float arg0, float arg1, float arg2, float arg3); +#endif + void fn_1_230(); void fn_1_A70(MpexDllUnkStruct *arg0); @@ -338,34 +346,34 @@ void fn_1_2228(MpexDllUnkStruct *arg0, MpexDllUnkStruct *arg1, float arg8, float arg0->unk_38 = fn_1_1B554(arg0->unk_38, arg1->unk_3C, argA); } -void fn_1_25C4(MpexDllUnkStruct2 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) +void fn_1_25C4(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { switch (arg4) { case 0: - Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0); + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0); break; case 1: - Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0x40000001); + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000001); break; case 2: - Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0x40000002); + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000002); break; } } -void fn_1_273C(MpexDllUnkStruct2 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) +void fn_1_273C(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { - if (arg0->unk_58 != arg0->unk_48[arg2]) { - arg0->unk_58 = arg0->unk_48[arg2]; + if (arg0->work[3] != arg0->motion[arg2]) { + arg0->work[3] = arg0->motion[arg2]; switch (arg4) { case 0: - Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0); + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0); break; case 1: - Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0x40000001); + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000001); break; case 2: - Hu3DMotionShiftSet(arg0->unk_40[arg1], arg0->unk_48[arg2], 0.0f, arg3, 0x40000002); + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000002); break; } } @@ -373,7 +381,7 @@ void fn_1_273C(MpexDllUnkStruct2 *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) void fn_1_28DC(void) { } -void fn_1_28E0(MpexDllUnkStruct2 *arg0, s32 arg1, Vec *arg2, float arg8, float arg9, float argA, s32 arg3, s32 arg4) +void fn_1_28E0(omObjData *arg0, s32 arg1, Vec arg2, float arg8, float arg9, float argA, s32 arg3, s32 arg4) { Vec sp4C; Vec sp40; @@ -386,17 +394,17 @@ void fn_1_28E0(MpexDllUnkStruct2 *arg0, s32 arg1, Vec *arg2, float arg8, float a s32 var_r28 = 0; s32 var_r26; - sp40.x = Hu3DData[arg0->unk_40[arg1]].pos.x; - sp40.y = Hu3DData[arg0->unk_40[arg1]].pos.y; - sp40.z = Hu3DData[arg0->unk_40[arg1]].pos.z; + sp40.x = Hu3DData[arg0->model[arg1]].pos.x; + sp40.y = Hu3DData[arg0->model[arg1]].pos.y; + sp40.z = Hu3DData[arg0->model[arg1]].pos.z; - sp34.x = arg2->x; - sp34.y = arg2->y; - sp34.z = arg2->z; + sp34.x = arg2.x; + sp34.y = arg2.y; + sp34.z = arg2.z; - sp1C.x = Hu3DData[arg0->unk_40[arg1]].rot.x; - sp1C.y = Hu3DData[arg0->unk_40[arg1]].rot.y; - sp1C.z = Hu3DData[arg0->unk_40[arg1]].rot.z; + sp1C.x = Hu3DData[arg0->model[arg1]].rot.x; + sp1C.y = Hu3DData[arg0->model[arg1]].rot.y; + sp1C.z = Hu3DData[arg0->model[arg1]].rot.z; sp10.x = 0.0f; sp10.y = arg8; @@ -466,15 +474,15 @@ void fn_1_28E0(MpexDllUnkStruct2 *arg0, s32 arg1, Vec *arg2, float arg8, float a if (arg4 != 0) { sp1C.y = fn_1_1B554(sp1C.y, sp28.y, argA); } - Hu3DModelPosSet(arg0->unk_40[arg1], sp4C.x, sp40.y, sp4C.z); - Hu3DModelRotSet(arg0->unk_40[arg1], sp1C.x, sp1C.y, sp1C.z); + Hu3DModelPosSet(arg0->model[arg1], sp4C.x, sp40.y, sp4C.z); + Hu3DModelRotSet(arg0->model[arg1], sp1C.x, sp1C.y, sp1C.z); if (var_r29 == 2 && var_r28 == 2) { break; } }; - sp1C.y = Hu3DData[arg0->unk_40[arg1]].rot.y; + sp1C.y = Hu3DData[arg0->model[arg1]].rot.y; if (arg4 != 0) { for (var_r26 = 0; var_r26 <= argA; var_r26++) { fn_1_1B7D0(1); @@ -495,7 +503,7 @@ void fn_1_28E0(MpexDllUnkStruct2 *arg0, s32 arg1, Vec *arg2, float arg8, float a } } sp10.z = fn_1_1B52C(sp1C.y, sp10.y, var_r26, argA); - Hu3DModelRotSet(arg0->unk_40[arg1], sp1C.x, sp10.z, sp1C.z); + Hu3DModelRotSet(arg0->model[arg1], sp1C.x, sp10.z, sp1C.z); } } } diff --git a/src/REL/mpexDll/mpex.c b/src/REL/mpexDll/mpex.c new file mode 100644 index 00000000..d8d8e422 --- /dev/null +++ b/src/REL/mpexDll/mpex.c @@ -0,0 +1,3500 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/board/main.h" +#include "game/chrman.h" +#include "game/esprite.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/saveload.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#ifndef __MWERKS__ +#include "game/hsfex.h" +#include "stdio.h" +#endif + +#include "REL/mpexDll.h" + +typedef void (*MpexDllUnkFunc2)(omObjData *, ...); + +typedef struct MpexDllUnkStruct3 { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; +} MpexDllUnkStruct3; /* size = 0x14 */ + +typedef struct MpexDllUnkStruct4 { + /* 0x00 */ omObjData *unk_00; + /* 0x04 */ MpexDllUnkFunc2 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ char unk14[0x14]; + /* 0x28 */ s32 unk_28; + /* 0x2C */ char unk2C[0x1C]; +} MpexDllUnkStruct4; /* size = 0x48 */ + +s32 rand8(void); +float fn_1_1B52C(float arg8, float arg9, float argA, float argB); +float fn_1_1B574(float arg0, float arg1, float arg2, float arg3); +float fn_1_1B64C(float arg0, float arg1, float arg2, float arg3); + +void fn_1_1015C(void); +void fn_1_10228(void); +void fn_1_10268(s32 arg0); +void fn_1_1045C(void); +void fn_1_107EC(void); +void fn_1_1085C(void); +void fn_1_10ABC(void); +void fn_1_10C30(void); +void fn_1_110F8(void); +void fn_1_114D4(void); +void fn_1_115A0(void); +void fn_1_115E0(s32 arg0); +void fn_1_117D4(void); +void fn_1_11930(void); +void fn_1_11984(void); +void fn_1_119E0(void); +void fn_1_11A3C(s32 arg0); +void fn_1_11E28(void); +void fn_1_11FC0(omObjData *object, MpexDllUnkStruct4 *arg1); +void fn_1_121E8(void); +void fn_1_125DC(float *arg0, s32 arg1); +void fn_1_32D8(void); +void fn_1_5D40(omObjData *arg0, MpexDllUnkStruct4 *arg1); +void fn_1_7D80(void); +void fn_1_7FC4(omObjData *arg0, MpexDllUnkStruct4 *arg1); +void fn_1_8320(void); +void fn_1_8ADC(void); +void fn_1_901C(omObjData *arg0, MpexDllUnkStruct4 *arg1); +void fn_1_9430(omObjData *arg0, MpexDllUnkStruct4 *arg1); +void fn_1_96B4(void); +void fn_1_A608(void); +void fn_1_AD34(void); +void fn_1_B004(void); +void fn_1_B210(void); +s32 fn_1_B248(s32 arg0, s32 arg1); +void fn_1_B2E4(s32 arg0); +void fn_1_B7F4(s32 arg0); +void fn_1_B870(s32 arg0); +void fn_1_B9A8(s32); +void fn_1_BC18(void); +void fn_1_BCD8(void); +u32 fn_1_BD10(s32 arg0, s32 arg1); +void fn_1_BD78(s32 arg0, s32 arg1); +void fn_1_C0DC(s32 arg0, s32); +void fn_1_C4D4(s32); +void fn_1_C544(void); +void fn_1_C860(void); +s32 fn_1_C898(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_CF10(s32 arg0); +void fn_1_D3AC(s32 arg0); +void fn_1_D468(s32 arg0); +void fn_1_D6AC(s32 arg0); +void fn_1_DBD0(s32 arg0); +void fn_1_E174(void); +void fn_1_E384(void); +void fn_1_E568(void); +void fn_1_EB1C(void); +void fn_1_ED78(s32 arg0, s32 arg1); +void fn_1_F0C0(void); +void fn_1_F40C(void); +void fn_1_F47C(void); +void fn_1_F730(void); +void fn_1_F8A4(void); +void fn_1_FDA0(void); + +s32 lbl_1_data_240[21] = { + 0x00000000, + 0x00000000, + 0x00000000, + 0xC37A0000, + 0x00000000, + 0x00000000, + 0x437A0000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x43FA0000, + 0x00000000, + 0xC47A0000, + 0x00000000, + 0x00000000, + 0x447A0000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x447A0000, + 0x00000000, +}; + +MpexDllUnkStruct4 lbl_1_bss_3F8; +MpexDllUnkStruct4 lbl_1_bss_3B0; +MpexDllUnkStruct4 lbl_1_bss_2D8[3]; +MpexDllUnkStruct4 lbl_1_bss_1B8[4]; +s32 lbl_1_bss_1B4; +s32 lbl_1_bss_1B0; +s32 lbl_1_bss_1AC; +s32 lbl_1_bss_180[0xB]; +MpexDllUnkStruct3 lbl_1_bss_130[4]; +char lbl_1_bss_120[16]; +char lbl_1_bss_118[8]; +char lbl_1_bss_110[8]; +s32 lbl_1_bss_10C; +s32 lbl_1_bss_108; +s32 lbl_1_bss_104; +char lbl_1_bss_FC[8]; +char lbl_1_bss_F4[8]; +char lbl_1_bss_EC[8]; +char lbl_1_bss_E4[8]; +s32 lbl_1_bss_E0; +s32 lbl_1_bss_C8[6]; +s32 lbl_1_bss_C4; +s32 lbl_1_bss_C0; +s32 lbl_1_bss_BC; +float lbl_1_bss_B8; +s32 lbl_1_bss_B4; +s32 lbl_1_bss_B0; +u32 lbl_1_bss_AC; +Process *lbl_1_bss_A8; + +Process *fn_1_3044(Process *arg0) +{ + s32 var_r31; + + lbl_1_bss_A8 = arg0; + if (omovlevtno == 0) { + mgGameStatBackup = GWGameStat; + } + fn_1_298(); + fn_1_374(); + fn_1_1B810(); + fn_1_910(fn_1_96B4); + lbl_1_bss_180[0] = 1; + lbl_1_bss_180[1] = 1; + lbl_1_bss_180[2] = GWMGAvailGet(omMgIndexGet(0x40) + 0x191); + lbl_1_bss_180[3] = GWMGAvailGet(omMgIndexGet(0xB) + 0x191); + lbl_1_bss_180[4] = GWMGAvailGet(omMgIndexGet(0x13) + 0x191); + lbl_1_bss_180[5] = 1; + lbl_1_bss_180[6] = 1; + lbl_1_bss_180[7] = 1; + lbl_1_bss_180[8] = 1; + lbl_1_bss_180[9] = GWMGAvailGet(omMgIndexGet(0x1B) + 0x191); + fn_1_121E8(); + for (var_r31 = 0; var_r31 < 0xA; var_r31++) { + if (lbl_1_bss_180[var_r31] == 0) { + break; + } + } + if (var_r31 == 0xA) { + lbl_1_bss_180[0xA] = 1; + } + else { + lbl_1_bss_180[0xA] = 0; + } + if (omovlevtno == 1) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuPrcChildCreate(fn_1_8320, 0x7D0, 0x2000, 0, HuPrcCurrentGet()); + } + } + HuPrcChildCreate(fn_1_7D80, 0x7D0, 0x2000, 0, HuPrcCurrentGet()); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuPrcChildCreate(fn_1_8ADC, 0x7D0, 0x2000, 0, HuPrcCurrentGet()); + } + fn_1_1264C(lbl_1_bss_A8); + + return HuPrcChildCreate(fn_1_32D8, 0x3E8, 0x2000, 0, HuPrcCurrentGet()); +} + +void fn_1_32D8(void) +{ + omObjData *var_r31; + + var_r31 = NULL; + var_r31 = omAddObjEx(lbl_1_bss_A8, 0x2000, 0x10, 0x10, -1, NULL); + lbl_1_bss_3F8.unk_00 = var_r31; + lbl_1_bss_3F8.unk_04 = (MpexDllUnkFunc2)fn_1_5D40; + while (TRUE) { + fn_1_1B7D0(1); + if (lbl_1_bss_3F8.unk_04 == NULL) { + continue; + } + lbl_1_bss_3F8.unk_04(lbl_1_bss_3F8.unk_00, &lbl_1_bss_3F8); + } +} + +void fn_1_3384(void) +{ + fn_1_1B7D0(0x1E); + HuAudFadeOut(0x3E8); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, -1); + + while (WipeStatGet() != 0) { + fn_1_1B7D0(1); + } + HuAudAllStop(); + omOvlReturnEx(1, 1); + + while (TRUE) { + fn_1_1B7D0(1); + } +} + +void fn_1_33F8(void) +{ + s16 var_r31; + + if (SLSaveFlagGet() != 0) { + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + espInit(); + HuPrcVSleep(); + var_r31 = espEntry(0x860020, 0x1388, 0); + espPosSet(var_r31, 288.0f, 240.0f); + espAttrReset(var_r31, 4); + Hu3DBGColorSet(0, 0, 0); + WipeCreate(1, 0, 0xA); + + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + SLCommonSet(); + if (SLSave() == 0) { + GWSystem.save_mode = 1; + } + WipeCreate(2, 0, 0x14); + + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + } +} + +void fn_1_3508(void) +{ + s16 var_r31; + + fn_1_1B7D0(0x1E); + HuAudFadeOut(0x3E8); + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, -1); + + while (WipeStatGet() != 0) { + fn_1_1B7D0(1); + } + + HuAudAllStop(); + CharModelKill(-1); + MGSeqKillAll(); + if (omovlevtno != 0) { + fn_1_1B7D0(0x3C); + fn_1_33F8(); + } + mgQuitExtraF = 0; + omOvlReturnEx(1, 1); + + while (TRUE) { + fn_1_1B7D0(1); + } +} + +void fn_1_36A4(void) +{ + omOvlHisData *sp8; + + fn_1_1B7D0(0x1E); + HuAudSStreamAllFadeOut(0x3E8); + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(2, 0, -1); + while (WipeStatGet() != 0) { + fn_1_1B7D0(1); + } + CharModelKill(-1); + MGSeqKillAll(); + sp8 = omOvlHisGet(0); + omOvlHisChg(0, OVL_MPEX, 2, 0); + mgQuitExtraF = 0; + omOvlCallEx(OVL_ZTAR, 1, 0, 0); + while (TRUE) { + fn_1_1B7D0(1); + } +} + +void fn_1_3758(s32 arg0, s32 arg1) +{ + s32 spC[10][3] = { + { 0x60, 0x01, 0x00 }, + { 0x61, 0x01, 0x01 }, + { 0x45, 0x01, 0x02 }, + { 0x3C, 0x01, 0x03 }, + { 0x3B, 0x01, 0x04 }, + { 0x32, 0x01, 0x05 }, + { 0x41, 0x01, 0x06 }, + { 0x42, 0x01, 0x07 }, + { 0x43, 0x01, 0x08 }, + { 0x44, 0x01, 0x09 }, + }; + omOvlHisData *sp8; + s32 var_r29; + + fn_1_1B7D0(0x1E); + HuAudSeqAllFadeOut(0x3E8); + HuAudSStreamAllFadeOut(0x3E8); + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(2, 0, -1); + while (WipeStatGet() != 0) { + fn_1_1B7D0(1); + } + if (arg0 == 0 || arg0 == 1) { + var_r29 = (arg1 * 0xA) + 0xA; + BoardPartyConfigSet(0, 0, 0, var_r29, 0, 0, 0, 0); + BoardSaveInit(arg0 + 7); + spC[arg0][2] += (arg1 * 0xA); + } + else if (arg0 == 4) { + GWSystem.mg_type = arg1; + spC[arg0][2] += (arg1 * 0xA); + } + + sp8 = omOvlHisGet(0); + omOvlHisChg(0, OVL_MPEX, spC[arg0][1], spC[arg0][2]); + HuDataDirClose(DATA_MAKE_NUM(DATADIR_MPEX, 0x00)); + HuDataDirClose(0x150000); + CharModelKill(-1); + CharKill(-1); + CharARAMOpen(GWPlayerCfg[0].character); + CharARAMOpen(GWPlayerCfg[1].character); + CharARAMOpen(GWPlayerCfg[2].character); + CharARAMOpen(GWPlayerCfg[3].character); + HuAudAllStop(); + if (arg0 > 1) { + mgPracticeEnableF = 1; + } + mgQuitExtraF = 0; + omOvlCallEx(spC[arg0][0], 1, 0, 0); + while (TRUE) { + fn_1_1B7D0(1); + } +} + +s32 lbl_1_data_294 = -1; +s32 lbl_1_data_298 = -1; + +void fn_1_397C(void) +{ + if (omovlevtno != 2) { + lbl_1_data_298 = HuAudSeqPlay(0x2E); + } + WipeCreate(1, 0, -1); + while (WipeStatGet() != 0) { + fn_1_1B7D0(1); + } + fn_1_1B7D0(0x3C); +} + +void fn_1_39F4(void) +{ + fn_1_1B834(); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(0x330000, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 1, 0xF, 1); + fn_1_1B9F4(); + fn_1_1B7D0(0x3C); + fn_1_1B834(); + fn_1_1BA78(0x330001, 5, -1); + if (fn_1_1BBA4(1) == 0) { + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(0x330002, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 1, 0xF, 1); + } + fn_1_1B9F4(); + fn_1_1B7D0(0x3C); +} + +void fn_1_3AF8(void) +{ + s16 var_r29; + s32 var_r30; + s32 var_r31; + + var_r31 = -1; + var_r30 = 0; + fn_1_1B834(); + while (TRUE) { + fn_1_1B7D0(1); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(0x330003, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 1, 0xF, 1); + fn_1_1BF1C(0x33004C); + var_r31 = -1; + lbl_1_bss_3B0.unk_08 = 0; + lbl_1_bss_3B0.unk_04 = (MpexDllUnkFunc2)fn_1_11FC0; + while (TRUE) { + fn_1_1B7D0(1); + if (var_r31 != lbl_1_bss_3B0.unk_08) { + HuAudFXPlay(0); + fn_1_11A3C(var_r31); + var_r31 = lbl_1_bss_3B0.unk_08; + switch (lbl_1_bss_3B0.unk_08) { + case 0: + fn_1_1BA78(0x330005, -1, 1); + break; + case 1: + fn_1_1BA78(0x330012, -1, 1); + break; + case 2: + fn_1_1BA78(0x330023, -1, 1); + break; + } + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2); + var_r30 = 1; + break; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r30 = 0; + break; + } + else { + if (lbl_1_bss_180[0xA] == 1) { + if (HuPadStkX[0] <= -0x1E) { + lbl_1_bss_3B0.unk_08 = 0; + } + else if (HuPadStkX[0] >= 0x1E) { + lbl_1_bss_3B0.unk_08 = 1; + } + else if (HuPadStkY[0] >= 0x1E) { + lbl_1_bss_3B0.unk_08 = 2; + } + else if ((HuPadStkY[0] <= -0x1E) && (lbl_1_bss_3B0.unk_08 == 2)) { + if (HuPadStkX[0] >= 5) { + lbl_1_bss_3B0.unk_08 = 1; + } + else { + lbl_1_bss_3B0.unk_08 = 0; + } + } + } + else if (HuPadStkX[0] <= -0x1E) { + lbl_1_bss_3B0.unk_08 = 0; + } + else if (HuPadStkX[0] >= 0x1E) { + lbl_1_bss_3B0.unk_08 = 1; + } + } + } + lbl_1_bss_3B0.unk_04 = NULL; + fn_1_1C120(); + if (var_r30 == 0) { + fn_1_11E28(); + fn_1_1BA78(0x330004, 5, -1); + if (fn_1_1BBA4(1) == 0) { + fn_1_1B9F4(); + fn_1_3508(); + } + continue; + } + break; + } + fn_1_11E28(); + fn_1_1B9F4(); + lbl_1_bss_1B4 = lbl_1_bss_3B0.unk_08; +} + +void fn_1_4014(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + lbl_1_bss_2D8[var_r31].unk_04 = (MpexDllUnkFunc2)fn_1_901C; + } + do { + fn_1_1B7D0(1); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + if (lbl_1_bss_2D8[var_r31].unk_04 != NULL) { + break; + } + } + } while (var_r31 != 3); +} + +void fn_1_40AC(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + lbl_1_bss_2D8[var_r31].unk_04 = (MpexDllUnkFunc2)fn_1_9430; + } + do { + fn_1_1B7D0(1); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + if (lbl_1_bss_2D8[var_r31].unk_04 != NULL) { + break; + } + } + } while (var_r31 != 3); +} + +s32 fn_1_4144(s32 arg0) +{ + s32 var_r31; + + var_r31 = 1; + var_r31 = fn_1_140B0(0, arg0); + return var_r31; +} + +s32 fn_1_4184(s32 arg0) +{ + s32 var_r31 = 0; + s32 var_r30 = -1; + if (arg0 == 0) { + fn_1_148BC(lbl_1_bss_1B4); + } + fn_1_F8A4(); + fn_1_1B834(); + if (lbl_1_data_294 == -1) { + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(0x330007, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 1, 0xF, 1); + } + else { + lbl_1_bss_3B0.unk_0C = lbl_1_data_294; + lbl_1_data_294 = -1; + } + fn_1_1B7D0(1); + fn_1_1BF1C(0x33004D); + fn_1_1015C(); + while (TRUE) { + fn_1_1B7D0(1); + if (var_r30 != lbl_1_bss_3B0.unk_0C) { + var_r30 = lbl_1_bss_3B0.unk_0C; + HuAudFXPlay(0); + if (lbl_1_bss_180[lbl_1_bss_3B0.unk_0C] == 1) { + fn_1_1BA78(lbl_1_bss_3B0.unk_0C + MAKE_MESSID(0x33, 0x08), -1, 1); + } + else { + fn_1_1BA78(0x33002E, -1, 1); + } + fn_1_1B7D0(1); + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + if (lbl_1_bss_180[lbl_1_bss_3B0.unk_0C] == 1) { + HuAudFXPlay(2); + lbl_1_data_294 = lbl_1_bss_3B0.unk_0C; + var_r31 = 1; + break; + } + else { + HuAudFXPlay(4); + } + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r31 = 0; + break; + } + else { + if (HuPadStkY[0] >= 0x1E) { + fn_1_10268(-1); + } + else if (HuPadStkY[0] <= -0x1E) { + fn_1_10268(1); + } + } + } + fn_1_10228(); + fn_1_1C120(); + fn_1_1B9F4(); + fn_1_FDA0(); + if (var_r31 == 0) { + fn_1_148E4(lbl_1_bss_1B4); + } + lbl_1_bss_1B0 = lbl_1_bss_3B0.unk_0C; + return var_r31; +} + +s32 fn_1_444C(s32 arg0) +{ + s32 var_r31; + + var_r31 = 1; + if (arg0 == 0) { + lbl_1_bss_3B0.unk_10 = 0; + fn_1_D6AC(lbl_1_bss_1B0); + } + while (TRUE) { + fn_1_1B7D0(1); + if (HuPadBtnDown[0] & PAD_BUTTON_START) { + HuAudFXPlay(2); + var_r31 = 1; + break; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r31 = 0; + break; + } + } + if (var_r31 == 0) { + fn_1_DBD0(lbl_1_bss_1B0); + } + return var_r31; +} + +s32 fn_1_4514(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r31 = 1; + var_r30 = lbl_1_bss_3B0.unk_10; + if ((lbl_1_bss_1B0 == 0) || (lbl_1_bss_1B0 == 1) || (lbl_1_bss_1B0 == 4)) { + if (lbl_1_bss_1B0 == 4) { + fn_1_E568(); + } + else { + fn_1_E174(); + } + while (TRUE) { + fn_1_1B7D0(1); + if (lbl_1_bss_3B0.unk_10 != var_r30) { + HuAudFXPlay(0); + fn_1_ED78(lbl_1_bss_3B0.unk_10, var_r30); + var_r30 = lbl_1_bss_3B0.unk_10; + } + if (HuPadStkY[0] <= -0x1E) { + lbl_1_bss_3B0.unk_10++; + if (lbl_1_bss_3B0.unk_10 > 2) { + lbl_1_bss_3B0.unk_10 = 0; + } + continue; + } + if (HuPadStkY[0] >= 0x1E) { + lbl_1_bss_3B0.unk_10--; + if (lbl_1_bss_3B0.unk_10 < 0) { + lbl_1_bss_3B0.unk_10 = 2; + } + continue; + } + if (HuPadBtnDown[0] & PAD_BUTTON_START) { + HuAudFXPlay(2); + var_r31 = 1; + break; + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r31 = 0; + break; + } + } + lbl_1_bss_1AC = lbl_1_bss_3B0.unk_10; + } + else { + var_r31 = 1; + } + if (var_r31 == 0) { + if (lbl_1_bss_1B0 == 4) { + fn_1_EB1C(); + } + else { + fn_1_E384(); + } + } + return var_r31; +} + +s32 fn_1_4730(s32 arg0) +{ + s32 var_r31; + + var_r31 = 1; + var_r31 = fn_1_140B0(1, arg0); + return var_r31; +} + +s32 fn_1_4770(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = -1; + if (arg0 == 0) { + fn_1_148BC(lbl_1_bss_1B4); + } + fn_1_10C30(); + fn_1_1B834(); + if (lbl_1_data_294 == -1) { + HuAudFXPlay(0x4A); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(0x330014, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 1, 0xF, 1); + } + else { + lbl_1_bss_3B0.unk_0C = lbl_1_data_294; + lbl_1_data_294 = -1; + } + fn_1_1B7D0(1); + fn_1_1BF1C(0x33004D); + fn_1_114D4(); + while (TRUE) { + fn_1_1B7D0(1); + if (var_r30 != lbl_1_bss_3B0.unk_0C) { + var_r30 = lbl_1_bss_3B0.unk_0C; + HuAudFXPlay(0); + if (lbl_1_bss_180[lbl_1_bss_3B0.unk_0C + 4] == 1) { + fn_1_1BA78(lbl_1_bss_3B0.unk_0C + 0x330015, -1, 1); + } + else { + fn_1_1BA78(0x33002E, -1, 1); + } + fn_1_1B7D0(1); + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + if (lbl_1_bss_180[lbl_1_bss_3B0.unk_0C + 4] == 1) { + HuAudFXPlay(2); + lbl_1_data_294 = lbl_1_bss_3B0.unk_0C; + var_r31 = 1; + break; + } + else { + HuAudFXPlay(4); + } + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + var_r31 = 0; + break; + } + else { + if (HuPadStkY[0] >= 0x1E) { + fn_1_115E0(-1); + } + else if (HuPadStkY[0] <= -0x1E) { + fn_1_115E0(1); + } + } + } + fn_1_115A0(); + fn_1_1C120(); + fn_1_1B9F4(); + fn_1_110F8(); + if (var_r31 == 0) { + fn_1_148E4(lbl_1_bss_1B4); + } + lbl_1_bss_1B0 = lbl_1_bss_3B0.unk_0C + (lbl_1_bss_1B4 * 4); + return var_r31; +} + +s32 fn_1_4A58(s32 arg0) +{ + s32 var_r31 = 1; + var_r31 = fn_1_444C(arg0); + return var_r31; +} + +s32 fn_1_4B3C(s32 arg0) +{ + s32 var_r31 = 1; + var_r31 = fn_1_4514(arg0); + return var_r31; +} + +s32 fn_1_4B78(s32 arg0) +{ + s32 var_r30; + + var_r30 = 1; + lbl_1_bss_1B0 = 0xA; + var_r30 = fn_1_444C(arg0); + return var_r30; +} + +void fn_1_4C6C(void) +{ + s32 var_r31; + + Hu3DModelPosSet(lbl_1_bss_2D8[0].unk_00->model[1], -400.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[1].unk_00->model[1], 1000.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[2].unk_00->model[1], 0.0f, 1000.0f, 0.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + Hu3DModelPosSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], -225.0f + (150.0f * var_r31), 0.0f, 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1B8[var_r31].unk_00->model[1], 1); + } +} + +void fn_1_4DF8(void) +{ + s32 var_r31; + + Hu3DModelPosSet(lbl_1_bss_2D8[0].unk_00->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[1].unk_00->model[1], 1000.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[2].unk_00->model[1], 0.0f, 1000.0f, 0.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + Hu3DModelPosSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], -225.0f + (150.0f * var_r31), 0.0f, 0.0f); + Hu3DModelAttrSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], 1); + } +} + +void fn_1_4F84(void) +{ + s32 var_r31; + s32 var_r30; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_130[var_r31].unk_00 = GWPlayerCfg[var_r31].group; + lbl_1_bss_130[var_r31].unk_04 = GWPlayerCfg[var_r31].iscom; + lbl_1_bss_130[var_r31].unk_08 = GWPlayerCfg[var_r31].diff; + lbl_1_bss_130[var_r31].unk_0C = GWPlayerCfg[var_r31].character; + lbl_1_bss_130[var_r31].unk_10 = GWPlayerCfg[var_r31].pad_idx; + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r30 == lbl_1_bss_130[var_r31].unk_10) { + GWPlayer[var_r30].team = GWPlayerCfg[var_r30].group = lbl_1_bss_130[var_r31].unk_00; + GWPlayer[var_r30].com = GWPlayerCfg[var_r30].iscom = lbl_1_bss_130[var_r31].unk_04; + GWPlayer[var_r30].diff = GWPlayerCfg[var_r30].diff = lbl_1_bss_130[var_r31].unk_08; + GWPlayer[var_r30].character = GWPlayerCfg[var_r30].character = lbl_1_bss_130[var_r31].unk_0C; + GWPlayer[var_r30].port = GWPlayerCfg[var_r30].pad_idx = lbl_1_bss_130[var_r31].unk_10; + break; + } + } + } +} + +s32 fn_1_5238(void) +{ + s32 var_r29 = 0; + if (lbl_1_bss_1B0 != 2) { + fn_1_A608(); + } + fn_1_4F84(); + fn_1_1B7D0(0x3C); + var_r29 = 0; + return var_r29; +} + +void fn_1_5530(void) +{ + Vec sp14 = { 0.0f, 0.0f, 0.0f }; + s32 var_r31; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1B8[var_r31].unk_04 = (MpexDllUnkFunc2)fn_1_7FC4; + } + do { + fn_1_1B7D0(1); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1B8[var_r31].unk_04 != NULL) { + break; + } + } + } while (var_r31 != 4); + Hu3DModelAttrReset(lbl_1_bss_3B0.unk_00->model[5], 0x40000002); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 2, 0xF, 1); + fn_1_28E0(lbl_1_bss_2D8[0].unk_00, 1, sp14, 0.0f, 9.0f, 0.0f, 1, 0); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 1, 0xF, 1); + fn_1_1B7D0(0x3C); +} + +void fn_1_56B8(void) +{ + Hu3DModelPosSet(lbl_1_bss_2D8[0].unk_00->model[1], -1000.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[1].unk_00->model[1], -400.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[2].unk_00->model[1], 0.0f, 1000.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_1B8[0].unk_00->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1B8[0].unk_00->model[1], 1); +} + +s32 fn_1_57E0(void) +{ + s32 var_r31 = 0; + fn_1_AD34(); + fn_1_1B7D0(0x3C); + var_r31 = 0; + return var_r31; +} + +// similar to fn_1_5530 +void fn_1_581C(void) +{ + Vec sp14 = { 0.0f, 0.0f, 0.0f }; + + lbl_1_bss_1B8[0].unk_04 = (MpexDllUnkFunc2)fn_1_7FC4; + + do { + fn_1_1B7D0(1); + } while (lbl_1_bss_1B8[0].unk_04 != NULL); + + Hu3DModelAttrReset(lbl_1_bss_3B0.unk_00->model[5], 0x40000002); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 2, 0xF, 1); + fn_1_28E0(lbl_1_bss_2D8[1].unk_00, 1, sp14, 0.0f, 9.0f, 0.0f, 1, 0); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 1, 0xF, 1); + fn_1_1B7D0(0x3C); +} + +void fn_1_595C(void) +{ + fn_1_3508(); +} + +void fn_1_5AF8(void) +{ + s32 var_r31; + + Hu3DModelPosSet(lbl_1_bss_2D8[0].unk_00->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[1].unk_00->model[1], 1000.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[2].unk_00->model[1], 0.0f, 1000.0f, 0.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + Hu3DModelAttrSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], 1); + } + fn_1_C544(); + fn_1_D468(lbl_1_bss_1B0); +} + +void fn_1_5C1C(void) +{ + s32 var_r31; + + Hu3DModelPosSet(lbl_1_bss_2D8[0].unk_00->model[1], -1000.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[1].unk_00->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_2D8[2].unk_00->model[1], 0.0f, 1000.0f, 0.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + Hu3DModelAttrSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], 1); + } + fn_1_C544(); + fn_1_D468(lbl_1_bss_1B0); +} + +void fn_1_5D40(omObjData *object, MpexDllUnkStruct4 *arg1) +{ + s32 var_r31 = 0; + s32 var_r29 = 0; + s32 var_r30 = 0; + + if (omovlevtno == 1) { + lbl_1_bss_1B0 = omovlstat % 10; + if (lbl_1_bss_1B0 <= 3) { + lbl_1_bss_1B4 = 0; + } + else { + lbl_1_bss_1B4 = 1; + } + lbl_1_bss_1AC = omovlstat / 10; + if (mgQuitExtraF == 1) { + mgQuitExtraF = 0; + Hu3DMotionTimeSet(lbl_1_bss_3B0.unk_00->model[5], Hu3DMotionMotionMaxTimeGet(lbl_1_bss_3B0.unk_00->model[5]) - 5.0f); + if (lbl_1_bss_1B0 <= 3) { + fn_1_4F84(); + lbl_1_data_294 = lbl_1_bss_1B0; + fn_1_5AF8(); + var_r31 = 0x320; + } + else { + lbl_1_data_294 = lbl_1_bss_1B0 - 4; + fn_1_5C1C(); + var_r31 = 0x384; + } + } + else if (lbl_1_bss_1B0 <= 3) { + lbl_1_data_294 = lbl_1_bss_1B0; + if (lbl_1_bss_1B0 == 2) { + Hu3DMotionTimeSet(lbl_1_bss_3B0.unk_00->model[5], Hu3DMotionMotionMaxTimeGet(lbl_1_bss_3B0.unk_00->model[5]) - 5.0f); + fn_1_4DF8(); + var_r31 = 0x1FE; + } + else { + Hu3DMotionTimeSet(lbl_1_bss_3B0.unk_00->model[5], 33.0f); + fn_1_4C6C(); + var_r31 = 0x1F4; + } + } + else { + lbl_1_data_294 = lbl_1_bss_1B0 - 4; + Hu3DMotionTimeSet(lbl_1_bss_3B0.unk_00->model[5], 33.0f); + fn_1_56B8(); + var_r31 = 0x258; + } + } + else if (omovlevtno == 2) { + lbl_1_bss_1B0 = 0; + lbl_1_bss_1B4 = 0; + var_r31 = 1; + } + else { + var_r31 = 0; + } + while (TRUE) { + fn_1_1B7D0(1); + switch (var_r31) { + case 0x0: + fn_1_397C(); + fn_1_25C4(lbl_1_bss_3B0.unk_00, 5, 5, 0, 0); + fn_1_1B7D0(0x3C); + fn_1_39F4(); + var_r31 = 0x64; + break; + case 0x1: + Hu3DMotionTimeSet(lbl_1_bss_3B0.unk_00->model[5], Hu3DMotionMotionMaxTimeGet(lbl_1_bss_3B0.unk_00->model[5]) - 5.0f); + fn_1_397C(); + var_r31 = 0x64; + break; + case 0x64: + fn_1_117D4(); + fn_1_3AF8(); + fn_1_11930(); + var_r30 = 0; + var_r31 = 0x65; + break; + case 0x65: + fn_1_4014(); + + if (lbl_1_bss_1B4 == 2) { + var_r31 = (lbl_1_bss_1B4 * 0x64) + 0xC9; + } + else { + var_r31 = (lbl_1_bss_1B4 * 0x64) + 0xC8; + } + break; + case 0x66: + fn_1_40AC(); + var_r31 = 0x64; + break; + case 0xC8: + var_r29 = fn_1_4144(var_r30); + if (var_r29 != 0) { + var_r30 = 0; + var_r31 = 0xC9; + } + else { + var_r30 = 1; + var_r31 = 0x66; + } + break; + case 0xC9: + fn_1_F0C0(); + var_r29 = fn_1_4184(var_r30); + fn_1_F40C(); + if (var_r29 != 0) { + fn_1_C544(); + var_r30 = 0; + var_r31 = 0xCA; + } + else { + var_r30 = 1; + var_r31 = 0x66; + } + break; + case 0xCA: + var_r29 = fn_1_444C(var_r30); + if (var_r29 != 0) { + var_r30 = 0; + var_r31 = 0xCB; + } + else { + fn_1_C860(); + var_r30 = 1; + var_r31 = 0xC9; + } + break; + case 0xCB: + var_r29 = fn_1_4514(var_r30); + if (var_r29 != 0) { + var_r30 = 0; + var_r31 = 0xCC; + } + else { + var_r30 = 1; + var_r31 = 0xCA; + } + break; + case 0xCC: + fn_1_3758(lbl_1_bss_1B0, lbl_1_bss_1AC); + var_r31 = -1; + break; + case 0x12C: + var_r29 = fn_1_4730(var_r30); + if (var_r29 != 0) { + var_r30 = 0; + var_r31 = 0x12D; + } + else { + var_r30 = 1; + var_r31 = 0x66; + } + break; + case 0x12D: + fn_1_1045C(); + var_r29 = fn_1_4770(var_r30); + fn_1_107EC(); + if (var_r29 != 0) { + fn_1_C544(); + var_r30 = 0; + var_r31 = 0x12E; + } + else { + var_r30 = 1; + var_r31 = 0x66; + } + break; + case 0x12E: + var_r29 = fn_1_4A58(var_r30); + if (var_r29 != 0) { + var_r30 = 0; + var_r31 = 0x12F; + } + else { + fn_1_C860(); + var_r30 = 1; + var_r31 = 0x12D; + } + break; + case 0x12F: + var_r29 = fn_1_4B3C(var_r30); + if (var_r29 != 0) { + var_r30 = 0; + var_r31 = 0x130; + } + else { + var_r30 = 1; + var_r31 = 0x12E; + } + break; + case 0x130: + fn_1_3758(lbl_1_bss_1B0, lbl_1_bss_1AC); + var_r31 = -1; + continue; + case 0x191: + fn_1_C544(); + var_r29 = fn_1_4B78(var_r30); + if (var_r29 != 0) { + var_r30 = 0; + var_r31 = 0x192; + } + else { + fn_1_C860(); + var_r30 = 1; + var_r31 = 0x66; + } + break; + case 0x192: + fn_1_36A4(); + case 0x1F4: + fn_1_397C(); + var_r29 = fn_1_5238(); + if (var_r29 == 1) { + var_r31 = 0xCC; + } + else if (var_r29 == 0) { + var_r31 = 0x1F5; + } + else { + var_r31 = 0x2BC; + } + break; + case 0x1F5: + fn_1_5530(); + var_r31 = 0xC9; + break; + case 0x1FE: + fn_1_397C(); + var_r31 = 0xC9; + break; + case 0x258: + fn_1_397C(); + var_r29 = fn_1_57E0(); + if (var_r29 == 1) { + var_r31 = 0x130; + } + else if (var_r29 == 0) { + var_r31 = 0x259; + } + else { + var_r31 = 0x2BC; + } + break; + case 0x259: + fn_1_581C(); + var_r31 = 0x12D; + break; + case 0x2BC: + fn_1_3508(); + case 0x320: + fn_1_397C(); + var_r31 = 0xCA; + var_r30 = 1; + break; + case 0x384: + fn_1_397C(); + var_r31 = 0x12E; + var_r30 = 1; + break; + default: + break; + } + } +} + +void fn_1_7BC8(omObjData *object) +{ + s32 var_r30; + + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x00)); + object->motion[1] = Hu3DMotionIDGet(object->model[1]); + Hu3DModelShadowMapObjSet(object->model[1], "extra_ent_fix0-obj41"); + fn_1_25C4(object, 1, 1, 0, 1); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + object->model[var_r30 + 1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x02)); + Hu3DModelAttrSet(object->model[var_r30 + 1], 1); + } + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x01)); + object->motion[5] = Hu3DMotionIDGet(object->model[5]); + Hu3DModelPosSet(object->model[5], 0.0f, 0.0f, 270.0f); + if (omovlevtno == 2) { + fn_1_25C4(object, 5, 5, 0, 0); + return; + } + if (omovlevtno == 1) { + Hu3DModelAttrSet(object->model[5], 0x40000002); + return; + } + fn_1_25C4(object, 5, 5, 0, 2); +} + +void fn_1_7D80(void) +{ + omObjData *var_r29; + omObjData *var_r31; + s32 var_r30; + + var_r29 = NULL; + var_r29 = omAddObjEx(lbl_1_bss_A8, 0x2000, 0x10, 0x10, -1, NULL); + lbl_1_bss_3B0.unk_00 = var_r29; + lbl_1_bss_3B0.unk_04 = NULL; + var_r31 = lbl_1_bss_3B0.unk_00; + fn_1_7BC8(var_r31); + while (TRUE) { + fn_1_1B7D0(1); + if (lbl_1_bss_3B0.unk_04 == NULL) { + continue; + } + lbl_1_bss_3B0.unk_04(lbl_1_bss_3B0.unk_00, &lbl_1_bss_3B0); + } +} + +void fn_1_7FC4(omObjData *object, MpexDllUnkStruct4 *arg1) +{ + Vec sp14 = { 700.0f, 0.0f, 0.0f }; + fn_1_1B7D0((4 - object->work[0]) * 5); + fn_1_25C4(object, 1, 2, 0xA, 1); + object->work[1] = 0; + while (object->work[1] <= 0xA) { + fn_1_1B7D0(1); + Hu3DData[object->model[1]].rot.y = fn_1_1B52C(0.0f, 90.0f, object->work[1], 10.0f); + object->work[1]++; + } + + fn_1_25C4(object, 1, 3, 0xA, 1); + fn_1_28E0(object, 1, sp14, 0.0f, 9.0f, 0.0f, 1, 0); + fn_1_25C4(object, 1, 1, 0xA, 1); + arg1->unk_04 = NULL; +} + +void fn_1_816C(omObjData *object, s32 arg1) +{ + s32 var_r30 = GWPlayerCfg[arg1].character; + object->model[1] = CharModelCreate(var_r30, 4); + object->motion[1] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + object->motion[2] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); + object->motion[3] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03)); + object->motion[4] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48)); + object->motion[5] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49)); + Hu3DModelPosSet(object->model[1], -150.0f + (100.0f * arg1), 0.0f, 0.0f); + Hu3DModelShadowSet(object->model[1]); + Hu3DModelAttrSet(object->model[1], 1); + CharModelLayerSetAll2(2); + fn_1_25C4(object, 1, 1, 0, 1); + CharKill(var_r30); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x02)); + Hu3DModelAttrSet(object->model[2], 1); +} + +void fn_1_8320(void) +{ + MpexDllUnkStruct4 *temp_r5; + omObjData *var_r28; + omObjData *var_r31; + s16 var_r29; + u32 var_r30; + + var_r30 = lbl_1_bss_AC; + lbl_1_bss_AC = var_r30 + 1; + var_r28 = NULL; + var_r28 = omAddObjEx(lbl_1_bss_A8, 0x2000, 0x10, 0x10, -1, NULL); + lbl_1_bss_1B8[var_r30].unk_00 = var_r28; + lbl_1_bss_1B8[var_r30].unk_04 = NULL; + lbl_1_bss_1B8[var_r30].unk_00->work[0] = var_r30; + var_r31 = lbl_1_bss_1B8[var_r30].unk_00; + fn_1_816C(var_r31, var_r30); + while (TRUE) { + fn_1_1B7D0(1); + if (lbl_1_bss_1B8[var_r30].unk_04 == NULL) { + continue; + } + lbl_1_bss_1B8[var_r30].unk_04(lbl_1_bss_1B8[var_r30].unk_00, &lbl_1_bss_1B8[var_r30]); + } +} + +void fn_1_85C4(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x03)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x04)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x06)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x06)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x07)); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x08)); + Hu3DModelPosSet(object->model[1], -200.0f, 0.0f, 0.0f); + Hu3DModelShadowSet(object->model[1]); + CharModelEffectNpcInit(object->model[1], object->motion[2], 0, 0xF); + fn_1_25C4(object, 1, 1, 0, 1); +} + +void fn_1_8758(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x09)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x0A)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x0B)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x0C)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x0D)); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x0E)); + Hu3DModelPosSet(object->model[1], 200.0f, 0.0f, 0.0f); + Hu3DModelShadowSet(object->model[1]); + CharModelEffectNpcInit(object->model[1], object->motion[2], 0, 0x10); + fn_1_25C4(object, 1, 1, 0, 1); +} + +void fn_1_88EC(omObjData *object) +{ + float var_f31; + + var_f31 = 0.0f; + var_f31 = fn_1_1B714(0.0f, 1.0f, object->work[3], 180.0f); + Hu3DData[object->model[1]].pos.y += var_f31; + if (object->work[3]++ >= 0xB4) { + object->work[3] -= 0xB4; + } +} + +void fn_1_89C4(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x0F)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x10)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x11)); + Hu3DModelPosSet(object->model[1], 0.0f, 400.0f, 0.0f); + if (lbl_1_bss_180[0xA] == 0) { + Hu3DModelAttrSet(object->model[1], 1); + } + fn_1_25C4(object, 1, 1, 0, 1); + object->func = fn_1_88EC; +} + +void fn_1_8ADC(void) +{ + omObjData *var_r31; + omObjData *var_r30; + omObjData *var_r29; + s32 var_r28; + omObjData *var_r27; + + var_r28 = lbl_1_bss_B0; + lbl_1_bss_B0 = var_r28 + 1; + var_r27 = NULL; + var_r27 = omAddObjEx(lbl_1_bss_A8, 0x2000, 0x10, 0x10, -1, NULL); + lbl_1_bss_2D8[var_r28].unk_00 = var_r27; + lbl_1_bss_2D8[var_r28].unk_04 = 0; + lbl_1_bss_2D8[var_r28].unk_00->work[0] = var_r28; + switch (var_r28) { + case 0: + var_r31 = lbl_1_bss_2D8[var_r28].unk_00; + fn_1_85C4(var_r31); + break; + case 1: + var_r30 = lbl_1_bss_2D8[var_r28].unk_00; + fn_1_8758(var_r30); + break; + case 2: + var_r29 = lbl_1_bss_2D8[var_r28].unk_00; + fn_1_89C4(var_r29); + break; + } + while (TRUE) { + fn_1_1B7D0(1); + if (lbl_1_bss_2D8[var_r28].unk_04 == NULL) { + continue; + } + lbl_1_bss_2D8[var_r28].unk_04(lbl_1_bss_2D8[var_r28].unk_00, &lbl_1_bss_2D8[var_r28]); + } +} + +void fn_1_901C(omObjData *object, MpexDllUnkStruct4 *arg1) +{ + float var_f31; + + s32 var_r30; + s32 *var_r29; + s32 *var_r28; + s32 *var_r27; + s32 *var_r26; + void *var_r25; + + Vec sp50 = { 0.0f, 0.0f, 0.0f }; + Vec sp44 = { -1000.0f, 0.0f, 0.0f }; + Vec sp38 = { 1000.0f, 0.0f, 0.0f }; + switch (object->work[0]) { + case 0: + fn_1_25C4(object, 1, 3, 0xF, 1); + if (lbl_1_bss_1B4 == 0) { + fn_1_28E0(object, 1, sp50, 0.0f, 9.0f, 0.0f, 1, 0); + } + else { + fn_1_28E0(object, 1, sp44, 0.0f, 9.0f, 0.0f, 1, 0); + } + fn_1_25C4(object, 1, 1, 0xF, 1); + break; + case 1: + fn_1_25C4(object, 1, 2, 0xF, 1); + if (lbl_1_bss_1B4 == 1) { + fn_1_28E0(object, 1, sp50, 0.0f, 9.0f, 0.0f, 1, 0); + } + else { + fn_1_28E0(object, 1, sp38, 0.0f, 9.0f, 0.0f, 1, 0); + } + fn_1_25C4(object, 1, 1, 0xF, 1); + break; + case 2: + if (lbl_1_bss_1B4 == 2) { + var_f31 = Hu3DData[object->model[1]].pos.y; + for (var_r30 = 0; var_r30 <= 0x78; var_r30++) { + fn_1_1B7D0(1); + Hu3DData[object->model[1]].pos.y = fn_1_1B64C(var_f31, 250.0f, var_r30, 120.0f); + } + } + else { + var_f31 = Hu3DData[object->model[1]].pos.y; + for (var_r30 = 0; var_r30 <= 0x78; var_r30++) { + fn_1_1B7D0(1); + Hu3DData[object->model[1]].pos.y = fn_1_1B64C(var_f31, 1000.0f, var_r30, 120.0f); + } + } + break; + } + arg1->unk_04 = 0; +} + +void fn_1_9430(omObjData *object, MpexDllUnkStruct4 *arg1) +{ + float var_f31; + s32 var_r30; + s32 *var_r29; + s32 *var_r28; + + Vec sp38 = { 0.0f, 0.0f, 0.0f }; + Vec sp2C = { -200.0f, 0.0f, 0.0f }; + Vec sp20 = { 200.0f, 0.0f, 0.0f }; + switch (object->work[0]) { + case 0: + fn_1_25C4(object, 1, 2, 0xF, 1); + fn_1_28E0(object, 1, sp2C, 0.0f, 9.0f, 0.0f, 1, 0); + fn_1_25C4(object, 1, 1, 0xF, 1); + break; + case 1: + fn_1_25C4(object, 1, 2, 0xF, 1); + fn_1_28E0(object, 1, sp20, 0.0f, 9.0f, 0.0f, 1, 0); + fn_1_25C4(object, 1, 1, 0xF, 1); + break; + case 2: + var_f31 = Hu3DData[object->model[1]].pos.y; + for (var_r30 = 0; var_r30 <= 0x78; var_r30++) { + fn_1_1B7D0(1); + Hu3DData[object->model[1]].pos.y = fn_1_1B574(var_f31, 400.0f, var_r30, 120.0f); + } + break; + } + arg1->unk_04 = 0; +} + +void fn_1_96B4(void) +{ + MpexDllUnkStruct *var_r31 = &lbl_1_bss_64; + var_r31->unk_08.x = 0.0f; + var_r31->unk_08.y = 165.0f; + var_r31->unk_08.z = 0.0f; + var_r31->unk_20.x = 0.0f; + var_r31->unk_20.y = 0.0f; + var_r31->unk_20.z = 0.0f; + var_r31->unk_38 = 1200.0f; +} + +s32 lbl_1_data_2B4[4] = { -1, -1, -1, -1 }; +s32 lbl_1_data_2C4 = -1; + +void fn_1_9740(s32 arg0) +{ + s32 spC[4]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r29 = 0; + var_r30 = 0; + lbl_1_bss_B4 = 0; + lbl_1_data_2B4[0] = lbl_1_data_2B4[1] = lbl_1_data_2B4[2] = lbl_1_data_2B4[3] = -1; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + spC[var_r31] = fn_1_B248(arg0, var_r31); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (spC[var_r31] >= var_r30) { + var_r30 = spC[var_r31]; + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r30 == spC[var_r31]) { + lbl_1_bss_B4++; + lbl_1_data_2B4[var_r29++] = var_r31; + } + } + lbl_1_data_2C4 = var_r30; +} + +void fn_1_9890(void) +{ + fn_1_1B834(); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(0x33000C, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 1, 0xF, 1); + fn_1_1B9F4(); +} + +void fn_1_9908(void) +{ + fn_1_1B834(); + HuAudFXPlay(0x4A); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(0x33001B, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 1, 0xF, 1); + fn_1_1B9F4(); +} + +void fn_1_9988(s32 arg0) +{ + s32 var_r31; + u32 var_r30; + u32 var_r29; + + fn_1_1B834(); + if (((mgRecordExtra == 0) && (arg0 != 4)) || ((mgRecordExtra >= 0x8CA0) && (arg0 == 4))) { + HuAudFXPlay(0x4A); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(arg0 + 0x330096, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 1, 0xF, 1); + } + else { + if ((arg0 == 4) || (arg0 == 8)) { + var_r31 = mgRecordExtra; + var_r30 = var_r31 / 36000; + var_r31 -= var_r30 * 36000; + var_r29 = var_r31 / 3600; + var_r31 -= var_r29 * 3600; + sprintf(lbl_1_bss_120, "%d", var_r29); + fn_1_1BB4C((u32)&lbl_1_bss_120, 0); + var_r30 = var_r31 / 600; + var_r31 -= var_r30 * 600; + var_r29 = var_r31 / 60; + var_r31 -= var_r29 * 60; + sprintf(lbl_1_bss_118, "%d%d", var_r30, var_r29); + fn_1_1BB4C((u32)lbl_1_bss_118, 1); + if (arg0 == 8) { + var_r31 = 1.6916666666666667 * (float)var_r31; + } + else { + var_r31 = 1.6666666666666667 * (float)var_r31; + } + var_r30 = var_r31 / 10; + var_r31 -= var_r30 * 0xA; + var_r29 = var_r31; + sprintf(lbl_1_bss_110, "%d%d", var_r30, var_r29); + fn_1_1BB4C((u32)lbl_1_bss_110, 2); + } + else { + sprintf(lbl_1_bss_110, "%d", mgRecordExtra); + fn_1_1BB4C((u32)lbl_1_bss_110, 0); + } + HuAudFXPlay(0x4A); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(arg0 + 0x330018, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 1, 0xF, 1); + } + fn_1_1B9F4(); +} + +void fn_1_9CD4(s32 arg0) +{ + fn_1_1B834(); + fn_1_1BB4C(fn_1_BD10(arg0, mgRecordExtra), 3); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(0x330090, -1, -1); + fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 1, 0xF, 1); + fn_1_1B9F4(); +} + +void fn_1_9D6C(void) +{ + fn_1_1B834(); + switch (lbl_1_bss_B4) { + case 1: + fn_1_1BB4C(GWPlayerCfg[lbl_1_data_2B4[0]].character, 0); + fn_1_1BA78(0x33000D, -1, -1); + break; + case 2: + fn_1_1BB4C(GWPlayerCfg[lbl_1_data_2B4[0]].character, 0); + fn_1_1BB4C(GWPlayerCfg[lbl_1_data_2B4[1]].character, 1); + fn_1_1BA78(0x33000E, -1, -1); + break; + case 3: + fn_1_1BB4C(GWPlayerCfg[lbl_1_data_2B4[0]].character, 0); + fn_1_1BB4C(GWPlayerCfg[lbl_1_data_2B4[1]].character, 1); + fn_1_1BB4C(GWPlayerCfg[lbl_1_data_2B4[2]].character, 2); + fn_1_1BA78(0x33000F, -1, -1); + break; + case 4: + fn_1_1BA78(0x330010, -1, -1); + break; + } + fn_1_1B9F4(); +} + +void fn_1_9F10(omObjData *object, MpexDllUnkStruct4 *arg1) +{ + float var_f31; + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_f31 = 30.0 * sind(8.0f * (lbl_1_bss_B8 + (var_r31 * 0x78))); + Hu3DModelPosSet(object->model[var_r31 + 1], -200.0f + (200.0f * var_r31), 850.0f, 0.0f); + Hu3DModelRotSet(object->model[var_r31 + 1], 0.0f, 0.0f, var_f31); + Hu3DModelScaleSet(object->model[var_r31 + 1], 1.5f, 2.0f, 1.5f); + } + lbl_1_bss_B8 += 0.5f; +} + +void fn_1_A0E4(omObjData *object, MpexDllUnkStruct4 *arg_1) +{ + float var_f31; + float var_f30; + s32 var_r30; + + Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelTPLvlSet(object->model[2], 0.0f); + for (var_r30 = 0; var_r30 <= 0xF; var_r30++) { + fn_1_1B7D0(1); + var_f30 = fn_1_1B52C(0.0f, 0.5f, var_r30, 15.0f); + var_f31 = fn_1_1B52C(0.0f, 1.5f, var_r30, 15.0f); + Hu3DModelPosSet(object->model[2], Hu3DData[object->model[1]].pos.x, 850.0f, Hu3DData[object->model[1]].pos.z); + Hu3DModelScaleSet(object->model[2], var_f31, 2.0f, var_f31); + Hu3DModelTPLvlSet(object->model[2], var_f30); + } + arg_1->unk_04 = NULL; +} + +void fn_1_A2AC(omObjData *object, MpexDllUnkStruct4 *arg1) +{ + float var_f31; + s32 var_r30; + + for (var_r30 = 0; var_r30 <= 0xF; var_r30++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B52C(0.5f, 0.0f, var_r30, 15.0f); + Hu3DModelTPLvlSet(object->model[2], var_f31); + } + Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelTPLvlSet(object->model[2], 0.0f); + arg1->unk_04 = NULL; +} + +void fn_1_A3A4(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + + lbl_1_bss_3B0.unk_04 = (MpexDllUnkFunc2)fn_1_9F10; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_3B0.unk_00->model[var_r31 + 1], 1); + Hu3DModelTPLvlSet(lbl_1_bss_3B0.unk_00->model[var_r31 + 1], 0.0f); + } + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B52C(0.0f, 0.5f, var_r31, 60.0f); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + Hu3DModelTPLvlSet(lbl_1_bss_3B0.unk_00->model[var_r30 + 1], var_f31); + } + } + fn_1_1B7D0(0x5A); + for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B52C(0.5f, 0.0f, var_r31, 60.0f); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + Hu3DModelTPLvlSet(lbl_1_bss_3B0.unk_00->model[var_r30 + 1], var_f31); + } + } + for (var_r31 = 0; var_r31 < 3; var_r31++) { + Hu3DModelAttrSet(lbl_1_bss_3B0.unk_00->model[var_r31 + 1], 1); + Hu3DModelTPLvlSet(lbl_1_bss_3B0.unk_00->model[var_r31 + 1], 0.0f); + } + lbl_1_bss_3B0.unk_04 = NULL; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_A608(void) +{ + s32 var_r31; + s32 var_r29; + + fn_1_9740(lbl_1_bss_1B0); + OSReport("CNT:%d, WIN:%d %d %d %d\n", lbl_1_bss_B4, lbl_1_data_2B4[0], lbl_1_data_2B4[1], lbl_1_data_2B4[2], lbl_1_data_2B4[3]); + fn_1_9890(); + if (lbl_1_data_298 != -1) { + HuAudSeqPause(lbl_1_data_298, 1, 0x1F4); + } + HuPrcChildCreate(fn_1_A3A4, 0x3E8, 0x1000, 0, HuPrcCurrentGet()); + fn_1_1B7D0(0xF); + HuAudFXPlay(0x9E); + fn_1_1B7D0(0xA5); + HuAudFXPlay(0x9F); + HuAudFXPlay(0xA8); + HuAudFXPlay(0x9A); + if (lbl_1_data_298 != -1) { + HuAudSeqPause(lbl_1_data_298, 0, 0x7D0); + } + if ((lbl_1_bss_B4 >= 1) && (lbl_1_data_2C4 != 0)) { + for (var_r31 = 0; var_r31 < lbl_1_bss_B4; var_r31++) { + lbl_1_bss_1B8[lbl_1_data_2B4[var_r31]].unk_04 = (MpexDllUnkFunc2)fn_1_A0E4; + OSReport("CNT:%d, WIN:%d %d %d %d\n", lbl_1_bss_B4, lbl_1_data_2B4[0], lbl_1_data_2B4[1], lbl_1_data_2B4[2], lbl_1_data_2B4[3]); + } + fn_1_9D6C(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r31 == lbl_1_data_2B4[var_r29]) { + fn_1_25C4(lbl_1_bss_1B8[var_r31].unk_00, 1, 4, 0xF, 0); + break; + } + } + if (var_r29 == 4) { + fn_1_25C4(lbl_1_bss_1B8[var_r31].unk_00, 1, 5, 0xF, 0); + } + } + } + else { + fn_1_1B834(); + fn_1_25C4(lbl_1_bss_2D8->unk_00, 1, 3, 0xF, 1); + fn_1_1BA78(lbl_1_bss_1B0 + MAKE_MESSID(0x33, 0x96), -1, -1); + fn_1_25C4(lbl_1_bss_2D8->unk_00, 1, 1, 0xF, 1); + fn_1_1B9F4(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_25C4(lbl_1_bss_1B8[var_r31].unk_00, 1, 5, 0xF, 0); + } + } + fn_1_1B7D0(0x3C); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_25C4(lbl_1_bss_1B8[var_r31].unk_00, 1, 1, 0xF, 1); + } + fn_1_B004(); + fn_1_1B7D0(1); + fn_1_B870(lbl_1_bss_1B0); + fn_1_1B7D0(0x3C); + fn_1_1B7D0(0x3C); + fn_1_1BD00(0x240007, 1); + do { + fn_1_1B7D0(1); + } while ((HuPadBtnDown[0] & 0x100) == 0); + HuAudFXPlay(2); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1B8[var_r31].unk_04 = (MpexDllUnkFunc2)fn_1_A2AC; + } + fn_1_1C120(); + fn_1_B9A8(lbl_1_bss_1B0); + fn_1_1B7D0(1); + fn_1_B210(); +} + +void fn_1_AD34(void) +{ + fn_1_9908(); + fn_1_1B7D0(0x3C); + fn_1_9988(lbl_1_bss_1B0); + if (lbl_1_data_298 != -1) { + HuAudSeqPause(lbl_1_data_298, 1, 0x1F4); + } + fn_1_1B7D0(0xF); + HuAudFXPlay(0x9E); + fn_1_1B7D0(0xA5); + lbl_1_bss_1B8[0].unk_04 = (MpexDllUnkFunc2)fn_1_A0E4; + if (((mgRecordExtra == 0) && (lbl_1_bss_1B0 != 4)) || ((mgRecordExtra >= 0x8CA0) && (lbl_1_bss_1B0 == 4))) { + fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 5, 0xF, 0); + } + else { + fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 4, 0xF, 0); + } + fn_1_BC18(); + fn_1_1B7D0(1); + HuAudFXPlay(0x9F); + HuAudFXPlay(0xA8); + HuAudFXPlay(0x9A); + if (lbl_1_data_298 != -1) { + HuAudSeqPause(lbl_1_data_298, 0, 0x7D0); + } + fn_1_C0DC(lbl_1_bss_1B0, rand8()); + fn_1_1B7D0(0x3C); + fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 1, 0xF, 1); + fn_1_9CD4(lbl_1_bss_1B0); + lbl_1_bss_1B8[0].unk_04 = (MpexDllUnkFunc2)fn_1_A2AC; + fn_1_C4D4(lbl_1_bss_1B0); + fn_1_1B7D0(1); + fn_1_BCD8(); +} + +void fn_1_B004(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + + var_r29 = HuSprGrpCreate(0x1B); + lbl_1_bss_10C = var_r29; + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x37)), 0xBB8, 0); + HuSprGrpMemberSet(var_r29, 0, var_r30); + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x38)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, 1, var_r30); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + var_r30 = HuSprCreate(HuSprAnimReadFile(var_r31 + DATA_MAKE_NUM(DATADIR_MPEX, 0x3E)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 2, var_r30); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x3B)); + for (var_r31 = 0; var_r31 < 0xC; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x384, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0xA, var_r30); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x3C)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = HuSprCreate(var_r28, 0x384, 0); + HuSprGrpMemberSet(var_r29, var_r31 + 0x16, var_r30); + } + var_r30 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x3D)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, 0x1A, var_r30); + fn_1_B2E4(0); + fn_1_B7F4(0); +} + +void fn_1_B210(void) +{ + s32 var_r31; + + var_r31 = lbl_1_bss_10C; + HuSprGrpKill(var_r31); +} + +s32 fn_1_B248(s32 arg0, s32 arg1) +{ + s32 var_r31 = 0; + if (lbl_1_bss_1B0 <= 1) { + var_r31 = GWPlayer[arg1].coins; + } + else { + var_r31 = GWPlayerCoinWinGet(arg1); + OSReport("########## %d:%d\n", arg1, var_r31); + } + return var_r31; +} + +void fn_1_B2E4(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r24; + + var_r30 = lbl_1_bss_10C; + for (var_r31 = 0; var_r31 < 0x1B; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (arg0 != -1) { + HuSprAttrReset(var_r30, 0, 4); + HuSprPosSet(var_r30, 0, 288.0f, 148.0f); + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 288.0f, 156.0f); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, GWPlayerCfg[var_r31].character + 2, 4); + HuSprPosSet(var_r30, GWPlayerCfg[var_r31].character + 2, 201.0f, (var_r31 * 0x2A) + 0x60); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + for (var_r29 = 0; var_r29 < 3; var_r29++) { + HuSprAttrReset(var_r30, 0xA + var_r29 + (var_r31 * 3), 4); + HuSprPosSet(var_r30, 0xA + var_r29 + (var_r31 * 3), (var_r29 * 0x1C) + 0xF7, (var_r31 * 0x2A) + 0x60); + } + var_r24 = fn_1_B248(0, var_r31); + var_r28 = var_r24 / 100; + if (var_r28 == 0) { + HuSprAttrSet(var_r30, (var_r31 * 3) + 0xA, 4); + } + HuSprBankSet(var_r30, (var_r31 * 3) + 0xA, var_r28); + var_r28 = (var_r24 % 100) / 10; + if ((var_r28 == 0) && ((var_r24 / 100) == 0)) { + HuSprAttrSet(var_r30, (var_r31 * 3) + 0xB, 4); + } + HuSprBankSet(var_r30, (var_r31 * 3) + 0xB, var_r28); + var_r28 = var_r24 % 10; + HuSprBankSet(var_r30, (var_r31 * 3) + 0xC, var_r28); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 0x16, 4); + HuSprPosSet(var_r30, var_r31 + 0x16, 358.0f, (var_r31 * 0x2A) + 0x60); + switch (arg0) { + case 0: + case 1: + HuSprBankSet(var_r30, var_r31 + 0x16, 0); + break; + case 3: + HuSprBankSet(var_r30, var_r31 + 0x16, 1); + break; + case 2: + break; + } + } + HuSprAttrReset(var_r30, 0x1A, 4); + HuSprPosSet(var_r30, 0x1A, 288.0f, 55.0f); + switch (arg0) { + case 2: + break; + case 0: + HuSprBankSet(var_r30, 0x1A, 0); + break; + case 1: + HuSprBankSet(var_r30, 0x1A, 1); + break; + case 3: + HuSprBankSet(var_r30, 0x1A, 2); + break; + } + HuSprGrpPosSet(var_r30, 0.0f, -500.0f); + } + (void)var_r29; +} + +void fn_1_B7F4(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_bss_10C; + for (var_r31 = 0; var_r31 < 0x1B; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprGrpPosSet(var_r30, 0.0f, -500.0f); +} + +void fn_1_B870(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30 = lbl_1_bss_10C; + + fn_1_B2E4(arg0); + for (var_r31 = 0; var_r31 < 0x3C; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 0x32) { + var_f31 = fn_1_1B64C(-500.0f, 10.0f, var_r31, 50.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, 0.0f, var_r31 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r30, 0.0f, var_f31); + } +} + +void fn_1_B9A8(s32 arg0) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_10C; + for (var_r31 = 0; var_r31 < 0x3C; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 0xA) { + var_f31 = fn_1_1B64C(0.0f, 10.0f, var_r31, 10.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, -500.0f, var_r31 - 0xA, 50.0f); + } + HuSprGrpPosSet(var_r28, 0.0f, var_f31); + } + var_r29 = lbl_1_bss_10C; + for (var_r30 = 0; var_r30 < 0x1B; var_r30++) { + HuSprAttrSet(var_r29, var_r30, 4); + } + HuSprGrpPosSet(var_r29, 0.0f, -500.0f); +} + +void fn_1_BB34(s32 arg0, s32 arg1) +{ + float sp10[2]; + s32 var_r31; + HuSprGrp *var_r30; + HuSprite *var_r29; + + var_r30 = &HuSprGrpData[winData[arg0].group]; + HuWinMesMaxSizeGet(1, sp10, arg1); + for (var_r31 = 0; var_r31 < var_r30->capacity; var_r31++) { + var_r29 = &HuSprData[var_r30->members[var_r31]]; + var_r29->x -= sp10[0] / 2; + var_r29->y -= 30.0f; + } +} + +void fn_1_BC18(void) +{ + s32 var_r31; + s32 var_r30 = HuSprGrpCreate(2); + + lbl_1_bss_108 = var_r30; + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x39)), 0xBB8, 0); + HuSprGrpMemberSet(var_r30, 0, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x3A)), 0x7D0, 0); + HuSprGrpMemberSet(var_r30, 1, var_r31); + fn_1_BD78(-1, 0); +} + +void fn_1_BCD8(void) +{ + s32 var_r31 = lbl_1_bss_108; + HuSprGrpKill(var_r31); +} + +u32 fn_1_BD10(s32 arg0, s32 arg1) +{ + s32 var_r31 = fn_1_C898(arg1, arg0, lbl_1_bss_1AC, 0); + return ((arg0 - 4) * 0xA) + MAKE_MESSID(0x33, 0x00) + var_r31 + 0x51; +} + +void fn_1_BD78(s32 arg0, s32 arg1) +{ + float sp10[2]; + s32 var_r31; + s32 var_r30; + u32 var_r25; + + var_r31 = lbl_1_bss_108; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + HuSprAttrSet(var_r31, var_r30, 4); + } + if (arg0 != -1) { + HuSprAttrReset(var_r31, 0, 4); + HuSprAttrReset(var_r31, 1, 4); + HuSprBankSet(var_r31, 1, arg0 - 4); + HuSprGrpPosSet(var_r31, 288.0f, 100.0f); + HuSprGrpScaleSet(var_r31, 0.0f, 0.0f); + OSReport("#################### SCORE(%d-%d) : %d\n", arg0, lbl_1_bss_1AC, mgRecordExtra); + var_r25 = fn_1_BD10(arg0, mgRecordExtra); + HuWinMesMaxSizeGet(1, sp10, var_r25); + lbl_1_bss_104 = HuWinCreate(0.0f, 0.0f, sp10[0], sp10[1], 0); + HuWinBGTPLvlSet(lbl_1_bss_104, 0.0f); + HuWinMesSpeedSet(lbl_1_bss_104, 0); + HuWinDispOn(lbl_1_bss_104); + fn_1_BB34(lbl_1_bss_104, var_r25); + HuWinMesSet(lbl_1_bss_104, var_r25); + HuWinPosSet(lbl_1_bss_104, 296.0f, 100.0f); + } +} + +void fn_1_C06C(void) +{ + s32 var_r31; + s32 var_r30 = lbl_1_bss_108; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuWinKill(lbl_1_bss_104); +} + +void fn_1_C0DC(s32 arg0, s32 arg1) +{ + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r24; + s32 var_r22; + + var_r30 = 0; + var_r22 = lbl_1_bss_108; + var_f30 = 1.5f; + fn_1_BD78(arg0, arg1); + for (var_r24 = 0; var_r24 < 0xA; var_r24++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B64C(var_f30, 1.0f, var_r30, 5.0f); + if (++var_r30 == 5) { + if (var_f30 > 1.0f) { + var_f30 -= 0.1f; + } + var_r30 = 0; + } + HuSprGrpScaleSet(var_r22, var_f31, var_f31); + HuWinScaleSet(lbl_1_bss_104, var_f31, var_f31); + } +} + +void fn_1_C4D4(s32 arg0) +{ + fn_1_C06C(); +} + +s32 lbl_1_data_324 = 0xFFFFFFFF; +s32 lbl_1_data_328 = -1; +s32 lbl_1_data_32C[3] = { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }; + +void fn_1_C544(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + AnimData *var_r28; + + var_r29 = HuSprGrpCreate(0x25); + lbl_1_data_324 = var_r29; + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x1B)), 0x1388, 0); + HuSprGrpMemberSet(var_r29, 0, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x1C)), 0x1388, 0); + HuSprGrpMemberSet(var_r29, 0x23, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x1D)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, 1, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x1E)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, 2, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x1F)), 0x7D0, 0); + HuSprGrpMemberSet(var_r29, 3, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x20)), 0x76C, 0); + HuSprGrpMemberSet(var_r29, 4, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x21)), 0x834, 0); + HuSprGrpMemberSet(var_r29, 6, var_r31); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + var_r31 = HuSprCreate(HuSprAnimReadFile(var_r30 + DATA_MAKE_NUM(DATADIR_MPEX, 0x2F)), 0xA, 0); + HuSprGrpMemberSet(var_r29, var_r30 + 7, var_r31); + } + for (var_r30 = 0; var_r30 < 3; var_r30++) { + var_r31 = HuSprCreate(HuSprAnimReadFile(var_r30 + DATA_MAKE_NUM(DATADIR_MPEX, 0x32)), 0xA, 0); + HuSprGrpMemberSet(var_r29, var_r30 + 0xA, var_r31); + } + var_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x35)); + for (var_r30 = 0; var_r30 < 0x15; var_r30++) { + var_r31 = HuSprCreate(var_r28, 9, 0); + HuSprGrpMemberSet(var_r29, var_r30 + 0xD, var_r31); + } + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x15)), 8, 0); + HuSprGrpMemberSet(var_r29, 0x22, var_r31); + fn_1_CF10(-1); + fn_1_D3AC(-1); +} + +void fn_1_C860(void) +{ + s32 var_r31 = lbl_1_data_324; + HuSprGrpKill(var_r31); +} + +s32 fn_1_C898(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +{ + s32 sp88[5][9] = { + { 0x64, 0xC8, 0x12C, 0x136, 0x140, 0x14A, 0x154, 0x15E, 0x168 }, + { 0x05, 0x0A, 0x0F, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x32 }, + { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 }, + { 0xE10, 0x1C20, 0x2A30, 0x3840, 0x4650, 0x5460, 0x6270, 0x7080, 0x7E90 }, + { 0x0A, 0x14, 0x1E, 0x23, 0x28, 0x2D, 0x32, 0x35, 0x37 }, + }; + s32 sp1C[3][9] = { + { 0x4650, 0x3840, 0x2A30, 0x1C20, 0x0E10, 0, 0, 0, 0 }, + { 0x4650, 0x3840, 0x2A30, 0x1C20, 0x1770, 0x12C0, 0x0E10, 0, 0 }, + { 0x4650, 0x3840, 0x2A30, 0x2328, 0x1C20, 0x19C8, 0x1770, 0x1644, 0x1518 }, + }; + s32 sp10[3]; + s32 var_r31; + s32 var_r30; + + if (arg1 >= 5) { + for (var_r31 = 0; var_r31 < 9; var_r31++) { + if (arg0 < sp88[arg1 - 5][var_r31]) { + break; + } + } + } + else if (arg3 != 0) { + for (var_r30 = 0; var_r30 < 3; var_r30++) { + OSReport("#################### HI-SCORE(%d-%d) : %d\n", arg1, var_r30, GWGameStat.mg_record[var_r30 + 6]); + arg0 = GWGameStat.mg_record[var_r30 + 6]; + for (var_r31 = 0; var_r31 < 9; var_r31++) { + if (arg0 >= sp1C[var_r30][var_r31]) { + break; + } + } + sp10[var_r30] = var_r31; + } + if (sp10[0] <= sp10[1]) { + var_r31 = sp10[1]; + } + else { + var_r31 = sp10[0]; + } + if (var_r31 <= sp10[2]) { + var_r31 = sp10[2]; + } + } + else { + for (var_r31 = 0; var_r31 < 9; var_r31++) { + if (arg0 >= sp1C[arg2][var_r31]) { + break; + } + } + } + return var_r31; +} + +void fn_1_CA98(s32 arg0, u32 arg1) +{ + s32 sp8[11] = { + 0xFFFFFFFF, + 0xFFFFFFFF, + 0xFFFFFFFF, + 0x00000009, + 0xFFFFFFFF, + 0x00000004, + 0x0000000B, + 0x0000000C, + 0x0000000D, + 0x0000000E, + 0xFFFFFFFF, + }; + s32 var_r31; + u32 var_r29; + u32 var_r28; + + switch (arg1) { + case 0: + case 1: + case 2: + case 10: + break; + case 4: + var_r31 = fn_1_C898(-1, arg1, 0, 1); + HuWinInsertMesSet(arg0, ((arg1 - 4) * 0xA) + 0x330000 + var_r31 + 0x51, 3); + break; + case 5: + case 6: + case 7: + case 9: + var_r31 = fn_1_C898(GWGameStat.mg_record[sp8[arg1]], arg1, 0, 0); + HuWinInsertMesSet(arg0, ((arg1 - 4) * 0xA) + 0x330000 + var_r31 + 0x51, 3); + case 3: + OSReport("#################### HI-SCORE(%d) : %d\n", arg1, GWGameStat.mg_record[sp8[arg1]]); + var_r31 = GWGameStat.mg_record[sp8[arg1]]; + if (var_r31 < 0xA) { + sprintf(lbl_1_bss_FC, " %d", var_r31); + } + else if (var_r31 < 0x64) { + sprintf(lbl_1_bss_FC, " %d", var_r31); + } + else { + sprintf(lbl_1_bss_FC, "%d", var_r31); + } + HuWinInsertMesSet(arg0, (u32)lbl_1_bss_FC, 0); + break; + case 8: + OSReport("#################### HI-SCORE(%d) : %d\n", arg1, GWGameStat.mg_record[sp8[arg1]]); + var_r31 = GWGameStat.mg_record[sp8[arg1]]; + var_r29 = var_r31 / 36000; + var_r31 -= var_r29 * 36000; + var_r28 = var_r31 / 3600; + var_r31 -= var_r28 * 3600; + sprintf(lbl_1_bss_F4, " %d", var_r28); + HuWinInsertMesSet(arg0, (u32)lbl_1_bss_F4, 0); + var_r29 = var_r31 / 600; + var_r31 -= var_r29 * 600; + var_r28 = var_r31 / 60; + var_r31 -= var_r28 * 60; + sprintf(lbl_1_bss_EC, "%d%d", var_r29, var_r28); + HuWinInsertMesSet(arg0, (u32)lbl_1_bss_EC, 1); + var_r31 = 1.6916666666666667 * (float)var_r31; + var_r29 = var_r31 / 10; + var_r31 -= var_r29 * 0xA; + var_r28 = var_r31; + if (GWGameStat.mg_record[sp8[arg1]] >= 0x8C9F) { + sprintf(lbl_1_bss_E4, "99"); + } + else { + sprintf(lbl_1_bss_E4, "%d%d", var_r29, var_r28); + } + HuWinInsertMesSet(arg0, (u32)lbl_1_bss_E4, 2); + var_r31 = fn_1_C898(GWGameStat.mg_record[sp8[arg1]], arg1, 0, 0); + HuWinInsertMesSet(arg0, ((arg1 - 4) * 0xA) + 0x330000 + var_r31 + 0x51, 3); + break; + default: + break; + } +} + +void fn_1_CF10(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + s32 var_r28; + + var_r31 = lbl_1_data_324; + for (var_r30 = 0; var_r30 < 0x25; var_r30++) { + HuSprAttrSet(var_r31, var_r30, 4); + } + if (arg0 != -1) { + s32 sp8[11][4] = { + { 0x00370000, 0x00370001, 0x00370002, 0x0017003E }, + { 0x00370003, 0x00370004, 0x00370005, 0x0017003F }, + { 0x00370006, 0x00370007, 0x00370008, 0x0017003D }, + { 0x00370009, 0x0037000A, 0x0037000B, 0x00170034 }, + { 0x0037000C, 0x0037000D, 0x0037000E, 0x00170033 }, + { 0x0037000F, 0x00370010, 0x00370011, 0x0017002A }, + { 0x00370012, 0x00370013, 0x00370014, 0x00170039 }, + { 0x00370015, 0x00370016, 0x00370017, 0x0017003A }, + { 0x00370018, 0x00370019, 0x0037001A, 0x0017003B }, + { 0x0037001B, 0x0037001C, 0x0037001D, 0x0017003C }, + { 0x0037001E, 0x0037001F, 0x00370020, 0x00170021 }, + }; + var_r28 = HuSprCreate(HuSprAnimReadFile(arg0 + DATA_MAKE_NUM(DATADIR_MPEX, 0x22)), 0x7D0, 0); + HuSprGrpMemberSet(var_r31, 5, var_r28); + lbl_1_data_328 = fn_1_1D02C(sp8[arg0][3]); + HuSprGrpPosSet(lbl_1_data_328, 288.0f, -437.0f); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + lbl_1_data_32C[var_r30] = HuWinCreate(0.0f, 0.0f, 0x136, 0x78, 0); + HuWinBGTPLvlSet(lbl_1_data_32C[var_r30], 0.0f); + HuWinMesSpeedSet(lbl_1_data_32C[var_r30], 0); + HuWinDispOn(lbl_1_data_32C[var_r30]); + if (sp8[arg0][var_r30] != -1) { + if (var_r30 == 2) { + fn_1_CA98(lbl_1_data_32C[2], arg0); + } + HuWinMesSet(lbl_1_data_32C[var_r30], sp8[arg0][var_r30]); + } + HuWinPosSet(lbl_1_data_32C[var_r30], -485.0f, (var_r30 << 7) + 0x70); + } + if (arg0 != 0xA) { + HuSprAttrReset(var_r31, 0, 4); + HuSprPosSet(var_r31, 0, 288.0f, 240.0f); + HuSprTPLvlSet(var_r31, 0, 0.0f); + } + else { + HuSprAttrReset(var_r31, 0x23, 4); + HuSprPosSet(var_r31, 0x23, 288.0f, 240.0f); + HuSprTPLvlSet(var_r31, 0x23, 0.0f); + } + HuSprAttrReset(var_r31, 1, 4); + HuSprPosSet(var_r31, 1, -331.0f, 272.0f); + HuSprAttrReset(var_r31, 2, 4); + HuSprPosSet(var_r31, 2, 452.0f, 911.0f); + HuSprAttrReset(var_r31, 3, 4); + HuSprPosSet(var_r31, 3, 288.0f, -437.0f); + HuSprAttrReset(var_r31, 4, 4); + HuSprPosSet(var_r31, 4, 952.0f, 212.0f); + HuSprAttrReset(var_r31, 5, 4); + HuSprPosSet(var_r31, 5, 952.0f, 212.0f); + HuSprScaleSet(var_r31, 5, 0.5f, 0.5f); + HuSprAttrReset(var_r31, 6, 4); + HuSprPosSet(var_r31, 6, 952.0f, 212.0f); + } +} + +void fn_1_D3AC(s32 arg0) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = lbl_1_data_324; + for (var_r31 = 0; var_r31 < 0x25; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + if (arg0 != -1) { + HuSprGrpMemberKill(var_r30, 5); + HuSprGrpKill(lbl_1_data_328); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuWinKill(lbl_1_data_32C[var_r31]); + } + } +} + +void fn_1_D468(s32 arg0) +{ + s32 var_r28; + s32 var_r30; + s32 var_r31; + + var_r31 = lbl_1_data_324; + fn_1_CF10(arg0); + if (arg0 != 0xA) { + HuSprTPLvlSet(var_r31, 0, 1.0f); + } + else { + HuSprTPLvlSet(var_r31, 0x23, 1.0f); + } + HuSprPosSet(var_r31, 3, 288.0f, 63.0f); + HuSprGrpPosSet(lbl_1_data_328, 288.0f, 63.0f); + HuSprPosSet(var_r31, 1, 169.0f, 272.0f); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + HuWinPosSet(lbl_1_data_32C[var_r30], 14.0f, (var_r30 << 7) + 0x70); + } + HuSprPosSet(var_r31, 4, 452.0f, 212.0f); + HuSprPosSet(var_r31, 5, 452.0f, 212.0f); + HuSprPosSet(var_r31, 6, 452.0f, 212.0f); + HuSprPosSet(var_r31, 2, 452.0f, 411.0f); + var_r28 = lbl_1_bss_63C[2]; + if (arg0 <= 3) { + fn_1_1A5A4(0); + } + else { + fn_1_1A5A4(1); + } + HuSprGrpPosSet(var_r28, 452.0f, 355.0f); +} + +void fn_1_D6AC(s32 arg0) +{ + float var_f31; + float var_f30; + float var_f29; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r26; + + var_r30 = lbl_1_data_324; + fn_1_CF10(arg0); + for (var_r31 = 0; var_r31 <= 0x1E; var_r31++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B64C(0.0f, 1.0f, var_r31, 30.0f); + if (arg0 != 0xA) { + HuSprTPLvlSet(var_r30, 0, var_f31); + } + else { + HuSprTPLvlSet(var_r30, 0x23, var_f31); + } + } + if (arg0 != 0xA) { + HuSprTPLvlSet(var_r30, 0, 1.0f); + } + else { + HuSprTPLvlSet(var_r30, 0x23, 1.0f); + } + for (var_r31 = 0; var_r31 <= 0x1E; var_r31++) { + fn_1_1B7D0(1); + var_r29 = fn_1_1B64C(-500.0f, 0.0f, var_r31, 30.0f); + HuSprPosSet(var_r30, 3, 288.0f, var_r29 + 0x3F); + HuSprGrpPosSet(lbl_1_data_328, 288.0f, var_r29 + 0x3F); + HuSprPosSet(var_r30, 1, var_r29 + 0xA9, 272.0f); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + HuWinPosSet(lbl_1_data_32C[var_r28], var_r29 + 0xE, (var_r28 << 7) + 0x70); + } + var_r29 = fn_1_1B64C(500.0f, 0.0f, var_r31, 30.0f); + HuSprPosSet(var_r30, 4, var_r29 + 0x1C4, 212.0f); + HuSprPosSet(var_r30, 5, var_r29 + 0x1C4, 212.0f); + HuSprPosSet(var_r30, 6, var_r29 + 0x1C4, 212.0f); + HuSprPosSet(var_r30, 2, 452.0f, var_r29 + 0x19B); + if (arg0 != 0xA) { + var_r26 = lbl_1_bss_63C[2]; + var_f30 = fn_1_1B64C(112.0f, 452.0f, var_r31, 30.0f); + var_f29 = fn_1_1B64C(72.0f, 355.0f, var_r31, 30.0f); + HuSprGrpPosSet(var_r26, var_f30, var_f29); + } + } +} + +void fn_1_DBD0(s32 arg0) +{ + float var_f31; + float var_f30; + float var_f29; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r25; + s32 var_r24; + + var_r30 = lbl_1_data_324; + for (var_r31 = 0; var_r31 <= 0x1E; var_r31++) { + fn_1_1B7D0(1); + var_r29 = fn_1_1B574(0.0f, -500.0f, var_r31, 30.0f); + HuSprPosSet(var_r30, 3, 288.0f, var_r29 + 0x3F); + HuSprGrpPosSet(lbl_1_data_328, 288.0f, var_r29 + 0x3F); + HuSprPosSet(var_r30, 1, var_r29 + 0xA9, 272.0f); + for (var_r27 = 0; var_r27 < 3; var_r27++) { + HuWinPosSet(lbl_1_data_32C[var_r27], var_r29 + 0xE, (var_r27 << 7) + 0x70); + } + var_r29 = fn_1_1B574(0.0f, 500.0f, var_r31, 30.0f); + HuSprPosSet(var_r30, 4, var_r29 + 0x1C4, 212.0f); + HuSprPosSet(var_r30, 5, var_r29 + 0x1C4, 212.0f); + HuSprPosSet(var_r30, 6, var_r29 + 0x1C4, 212.0f); + HuSprPosSet(var_r30, 2, 452.0f, var_r29 + 0x19B); + if (arg0 != 0xA) { + var_r24 = lbl_1_bss_63C[2]; + var_f30 = fn_1_1B574(452.0f, 112.0f, var_r31, 30.0f); + var_f29 = fn_1_1B574(355.0f, 72.0f, var_r31, 30.0f); + HuSprGrpPosSet(var_r24, var_f30, var_f29); + } + } + for (var_r31 = 0; var_r31 <= 0x1E; var_r31++) { + fn_1_1B7D0(1); + var_f31 = fn_1_1B574(1.0f, 0.0f, var_r31, 30.0f); + if (arg0 != 0xA) { + HuSprTPLvlSet(var_r30, 0, var_f31); + } + else { + HuSprTPLvlSet(var_r30, 0x23, var_f31); + } + } + if (arg0 != 0xA) { + HuSprTPLvlSet(var_r30, 0, 0.0f); + } + else { + HuSprTPLvlSet(var_r30, 0x23, 0.0f); + } + var_r25 = lbl_1_data_324; + for (var_r28 = 0; var_r28 < 0x25; var_r28++) { + HuSprAttrSet(var_r25, var_r28, 4); + } + if (arg0 != -1) { + HuSprGrpMemberKill(var_r25, 5); + HuSprGrpKill(lbl_1_data_328); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + HuWinKill(lbl_1_data_32C[var_r28]); + } + } +} + +void fn_1_E174(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_data_324; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrReset(var_r30, var_r31 + 7, 4); + HuSprPosSet(var_r30, var_r31 + 7, 788.0f, (var_r31 * 0x38) + 0xB8); + } + for (var_r29 = 0; var_r29 <= 0x3C; var_r29++) { + fn_1_1B7D0(1); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_f31 = fn_1_1B64C(1000.0f, 0.0f, var_r29, 0x3C - ((2 - var_r31) * 5)); + HuSprPosSet(var_r30, var_r31 + 7, 288.0f + var_f31, (var_r31 * 0x38) + 0xB8); + } + } + HuSprAttrReset(var_r30, 0x22, 4); + HuSprPosSet(var_r30, 0x22, 185.0f, (lbl_1_bss_3B0.unk_10 * 0x38) + 0xA0); +} + +void fn_1_E384(void) +{ + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_data_324; + HuSprAttrSet(var_r30, 0x22, 4); + HuSprPosSet(var_r30, 0x22, 125.0f, 190.0f); + for (var_r29 = 0; var_r29 <= 0x3C; var_r29++) { + fn_1_1B7D0(1); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_f31 = fn_1_1B574(0.0f, -1000.0f, var_r29, 0x3C - ((2 - var_r31) * 5)); + HuSprPosSet(var_r30, var_r31 + 7, 288.0f + var_f31, (var_r31 * 0x38) + 0xB8); + } + } + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r30, var_r31 + 7, 4); + HuSprPosSet(var_r30, var_r31 + 7, 288.0f, (var_r31 * 0x38) + 0xB8); + } +} + +void fn_1_E568(void) +{ + s32 sp10; + s32 spC; + s32 sp8; + float var_f31; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + u32 var_r27; + u32 var_r26; + s32 var_r25; + + var_r29 = lbl_1_data_324; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + sp10 = rand8() % 10; + spC = rand8() % 60; + sp8 = rand8() % 100; + HuSprAttrReset(var_r29, var_r31 + 0xA, 4); + HuSprPosSet(var_r29, var_r31 + 0xA, 1288.0f, (var_r31 * 0x38) + 0xB8); + for (var_r28 = 0; var_r28 < 7; var_r28++) { + HuSprAttrReset(var_r29, 0xD + var_r28 + (var_r31 * 7), 4); + HuSprPosSet(var_r29, 0x0D + var_r28 + (var_r31 * 7), (var_r28 * 0x14) + 0x512, (var_r31 * 0x38) + 0xBA); + } + var_r30 = GWGameStat.mg_record[var_r31 + 6]; + var_r27 = var_r30 / 36000; + var_r30 -= var_r27 * 36000; + var_r26 = var_r30 / 3600; + var_r30 -= var_r26 * 3600; + HuSprBankSet(var_r29, (var_r31 * 7) + 0xD, var_r26); + HuSprBankSet(var_r29, (var_r31 * 7) + 0xE, 0xA); + var_r27 = var_r30 / 600; + var_r30 -= var_r27 * 600; + var_r26 = var_r30 / 60; + var_r30 -= var_r26 * 60; + HuSprBankSet(var_r29, (var_r31 * 7) + 0xF, var_r27); + HuSprBankSet(var_r29, (var_r31 * 7) + 0x10, var_r26); + HuSprBankSet(var_r29, (var_r31 * 7) + 0x11, 0xB); + var_r30 = 1.6666666666666667 * (float)var_r30; + var_r27 = var_r30 / 10; + var_r30 -= var_r27 * 0xA; + var_r26 = var_r30; + if (GWGameStat.mg_record[var_r31 + 6] == 0x8C9F) { + HuSprBankSet(var_r29, (var_r31 * 7) + 0x12, 9); + HuSprBankSet(var_r29, (var_r31 * 7) + 0x13, 9); + } + else { + HuSprBankSet(var_r29, (var_r31 * 7) + 0x12, var_r27); + HuSprBankSet(var_r29, (var_r31 * 7) + 0x13, var_r26); + } + } + for (var_r25 = 0; var_r25 <= 0x3C; var_r25++) { + fn_1_1B7D0(1); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_f31 = fn_1_1B64C(1000.0f, 0.0f, var_r25, 0x3C - ((2 - var_r31) * 5)); + HuSprPosSet(var_r29, var_r31 + 0xA, 288.0f + var_f31, (var_r31 * 0x38) + 0xB8); + for (var_r28 = 0; var_r28 < 7; var_r28++) { + HuSprPosSet(var_r29, 0xD + var_r28 + (var_r31 * 7), var_f31 + ((var_r28 * 0x14) + 0x12A), (var_r31 * 0x38) + 0xBA); + } + } + } + HuSprAttrReset(var_r29, 0x22, 4); + HuSprPosSet(var_r29, 0x22, 110.0f, (lbl_1_bss_3B0.unk_10 * 0x38) + 0xA0); +} + +void fn_1_EB1C(void) +{ + float var_f31; + s32 var_r28; + s32 var_r29; + s32 var_r30; + s32 var_r31; + + var_r29 = lbl_1_data_324; + HuSprAttrSet(var_r29, 0x22, 4); + HuSprPosSet(var_r29, 0x22, 125.0f, 184.0f); + for (var_r28 = 0; var_r28 <= 0x3C; var_r28++) { + fn_1_1B7D0(1); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_f31 = fn_1_1B574(0.0f, -1000.0f, var_r28, 0x3C - ((2 - var_r31) * 5)); + HuSprPosSet(var_r29, var_r31 + 0xA, 288.0f + var_f31, (var_r31 * 0x38) + 0xB8); + for (var_r30 = 0; var_r30 < 7; var_r30++) { + HuSprPosSet(var_r29, 0xD + var_r30 + (var_r31 * 7), var_f31 + ((var_r30 * 0x14) + 0x12A), (var_r31 * 0x38) + 0xBA); + } + } + } + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r29, var_r31 + 0xA, 4); + for (var_r30 = 0; var_r30 < 7; var_r30++) { + HuSprAttrSet(var_r29, 0xD + var_r30 + (var_r31 * 7), 4); + } + } +} + +void fn_1_ED78(s32 arg0, s32 arg1) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = lbl_1_data_324; + { + s32 spC[3] = { 4, 11, 12 }; + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 5) { + var_f30 = fn_1_1B64C(1.0f, 0.0f, var_r31, 5.0f); + } + else { + var_f30 = fn_1_1B64C(0.0f, 1.0f, var_r31, var_r31 - 5); + } + if (lbl_1_bss_1B0 == 4) { + HuSprTPLvlSet(var_r30, 5, var_f30); + } + var_f31 = fn_1_1B64C((arg1 * 0x38) + 0xA0, (arg0 * 0x38) + 0xA0, var_r31, 10.0f); + if (lbl_1_bss_1B0 == 4) { + HuSprPosSet(var_r30, 0x22, 110.0f, var_f31); + } + else { + HuSprPosSet(var_r30, 0x22, 185.0f, var_f31); + } + if ((lbl_1_bss_1B0 == 4) && (var_r31 == 5)) { + HuSprGrpMemberKill(var_r30, 5); + var_r29 = HuSprCreate(HuSprAnimReadFile(spC[arg0] + DATA_MAKE_NUM(DATADIR_MPEX, 0x22)), 0x7D0, 0); + HuSprGrpMemberSet(var_r30, 5, var_r29); + HuSprPosSet(var_r30, 5, 452.0f, 212.0f); + HuSprScaleSet(var_r30, 5, 0.5f, 0.5f); + HuSprTPLvlSet(var_r30, 5, 0.0f); + } + } + } +} + +void fn_1_F0C0(void) +{ + float sp8[2]; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = HuSprGrpCreate(3); + lbl_1_bss_E0 = var_r30; + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x16)), 0xBB8, 0); + HuSprGrpMemberSet(var_r30, 0, var_r29); + HuSprPosSet(var_r30, 0, 0.0f, 88.0f); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x18)), 0x7D0, 0); + HuSprGrpMemberSet(var_r30, 1, var_r29); + HuSprPosSet(var_r30, 1, 0.0f, 25.0f); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x1A)), 0x3E8, 0); + HuSprGrpMemberSet(var_r30, 2, var_r29); + HuSprPosSet(var_r30, 2, 0.0f, 0.0f); + HuSprScaleSet(var_r30, 2, 0.9f, 0.65f); + HuSprTPLvlSet(var_r30, 2, 0.8f); + for (var_r31 = 0; var_r31 < 6; var_r31++) { + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x2F)); + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x30)); + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x31)); + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x32)); + lbl_1_bss_C8[var_r31] = HuWinCreate(0.0f, 0.0f, sp8[0], sp8[1], 0); + HuWinBGTPLvlSet(lbl_1_bss_C8[var_r31], 0.0f); + HuWinMesSpeedSet(lbl_1_bss_C8[var_r31], 0); + HuWinDispOff(lbl_1_bss_C8[var_r31]); + HuWinPosSet(lbl_1_bss_C8[var_r31], 304.0f, 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1F)) - 500.0f)); + } + fn_1_F47C(); + fn_1_F730(); +} + +void fn_1_F40C(void) +{ + s32 var_r31; + s32 var_r30 = lbl_1_bss_E0; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + HuWinKill(lbl_1_bss_C8[var_r31]); + } + HuSprGrpKill(var_r30); +} + +void fn_1_F47C(void) +{ + float sp8[2]; + s32 var_r31; + + s32 var_r30 = lbl_1_bss_E0; + lbl_1_bss_3B0.unk_0C = 0; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprAttrReset(var_r30, 0, 4); + HuSprPosSet(var_r30, 0, 0.0f, 92.0f); + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 0.0f, 25.0f); + lbl_1_bss_3B0.unk_0C = 0; + HuSprPosSet(var_r30, 2, -3.0f, (lbl_1_bss_3B0.unk_0C * 0x19) + 0x3C); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuWinDispOn(lbl_1_bss_C8[var_r31]); + if (lbl_1_bss_180[var_r31] == 1) { + HuWinMesSet(lbl_1_bss_C8[var_r31], var_r31 + MAKE_MESSID(0x33, 0x2F)); + } + else { + HuWinMesSet(lbl_1_bss_C8[var_r31], MAKE_MESSID(0x33, 0x2E)); + } + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x33, 0x30)); + HuWinPosSet(lbl_1_bss_C8[var_r31], 288.0f - (sp8[0] / 2), 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1F)) - 500.0f)); + } + HuSprGrpPosSet(var_r30, 288.0f, -460.0f); +} + +void fn_1_F730(void) +{ + float sp8[2]; + s32 var_r31; + + s32 var_r30 = lbl_1_bss_E0; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuWinDispOff(lbl_1_bss_C8[var_r31]); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x33, 0x30)); + HuWinPosSet(lbl_1_bss_C8[var_r31], 288.0f - (sp8[0] / 2), 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1F)) - 500.0f)); + } + HuSprGrpPosSet(var_r30, 288.0f, -460.0f); +} + +void fn_1_F8A4(void) +{ + float sp10[2]; + float sp8[2]; + float var_f31; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + s32 var_r27 = lbl_1_bss_E0; + sp10[0] = sp10[1] = 0.0f; + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x2E)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x2F)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x30)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x31)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x32)); + var_r30 = lbl_1_bss_E0; + lbl_1_bss_3B0.unk_0C = 0; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprAttrReset(var_r30, 0, 4); + HuSprPosSet(var_r30, 0, 0.0f, 92.0f); + HuSprAttrReset(var_r30, 1, 4); + HuSprPosSet(var_r30, 1, 0.0f, 25.0f); + lbl_1_bss_3B0.unk_0C = 0; + HuSprPosSet(var_r30, 2, -3.0f, (lbl_1_bss_3B0.unk_0C * 0x19) + 0x3C); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuWinDispOn(lbl_1_bss_C8[var_r31]); + if (lbl_1_bss_180[var_r31] == 1) { + HuWinMesSet(lbl_1_bss_C8[var_r31], var_r31 + MAKE_MESSID(0x33, 0x2F)); + } + else { + HuWinMesSet(lbl_1_bss_C8[var_r31], MAKE_MESSID(0x33, 0x2E)); + } + HuWinMesMaxSizeGet(1, sp8, 0x330030); + HuWinPosSet(lbl_1_bss_C8[var_r31], 288.0f - (sp8[0] / 2), 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1F)) - 500.0f)); + } + HuSprGrpPosSet(var_r30, 288.0f, -460.0f); + for (var_r29 = 0; var_r29 < 0x3C; var_r29++) { + fn_1_1B7D0(1); + if (var_r29 <= 0x32) { + var_f31 = fn_1_1B64C(-500.0f, 10.0f, var_r29, 50.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, 0.0f, var_r29 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r27, 288.0f, 64.0f + (40.0f + var_f31)); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + HuWinPosSet(lbl_1_bss_C8[var_r28], 288.0f - (sp10[0] / 2), 64.0f + (40.0f + (var_f31 + ((60.0f - (sp10[1] / 2)) + (var_r28 * 0x1F))))); + } + } +} + +void fn_1_FDA0(void) +{ + float sp10[2]; + float sp8[2]; + float var_f31; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + s32 var_r27 = lbl_1_bss_E0; + sp10[0] = sp10[1] = 0.0f; + + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x2E)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x2F)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x30)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x31)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x32)); + for (var_r30 = 0; var_r30 < 0x3C; var_r30++) { + fn_1_1B7D0(1); + if (var_r30 <= 0xA) { + var_f31 = fn_1_1B64C(0.0f, 10.0f, var_r30, 10.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, -500.0f, var_r30 - 0xA, 50.0f); + } + HuSprGrpPosSet(var_r27, 288.0f, 64.0f + (40.0f + var_f31)); + for (var_r29 = 0; var_r29 < 4; var_r29++) { + HuWinPosSet(lbl_1_bss_C8[var_r29], 288.0f - (sp10[0] / 2), 64.0f + (40.0f + (var_f31 + ((60.0f - (sp10[1] / 2)) + (var_r29 * 0x1F))))); + } + } + var_r28 = lbl_1_bss_E0; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r28, var_r31, 4); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuWinDispOff(lbl_1_bss_C8[var_r31]); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x33, 0x30)); + HuWinPosSet(lbl_1_bss_C8[var_r31], 288.0f - (sp8[0] / 2), 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1F)) - 500.0f)); + } + HuSprGrpPosSet(var_r28, 288.0f, -460.0f); +} + +void fn_1_1015C(void) +{ + float sp8[2]; + s32 var_r31 = lbl_1_bss_E0; + HuWinMesMaxSizeGet(1, sp8, 0x330030); + HuSprAttrReset(var_r31, 2, 4); + HuSprPosSet(var_r31, 2, 0.0f, 40.0f + ((60.0f - sp8[1]) + (lbl_1_bss_3B0.unk_0C * 0x1F))); +} + +void fn_1_10228(void) +{ + s32 var_r31 = lbl_1_bss_E0; + HuSprAttrSet(var_r31, 2, 4); +} + +void fn_1_10268(s32 arg0) +{ + float spC[2]; + float var_f31; + float var_f30; + float var_f29; + s32 var_r31; + s32 var_r30; + s32 var_r29; + + s32 var_r28 = lbl_1_bss_E0; + HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(0x33, 0x30)); + var_r29 = lbl_1_bss_3B0.unk_0C; + var_r31 = lbl_1_bss_3B0.unk_0C + arg0; + if (var_r31 > 3) { + var_r31 = 0; + } + else if (var_r31 < 0) { + var_r31 = 3; + } + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_1B7D0(1); + var_f31 = 40.0f + ((60.0f - spC[1]) + (var_r29 * 0x1F)); + var_f30 = 40.0f + ((60.0f - spC[1]) + (var_r31 * 0x1F)); + var_f29 = fn_1_1B64C(var_f31, var_f30, var_r30, 5.0f); + HuSprPosSet(var_r28, 2, -4.0f, var_f29); + } + lbl_1_bss_3B0.unk_0C = var_r31; +} + +void fn_1_1045C(void) +{ + float sp8[2]; + s32 var_r31; + s32 var_r29; + + s32 var_r30 = HuSprGrpCreate(3); + lbl_1_bss_C4 = var_r30; + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x17)), 0xBB8, 0); + HuSprGrpMemberSet(var_r30, 0, var_r29); + HuSprPosSet(var_r30, 0, 0.0f, 118.0f); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x19)), 0x7D0, 0); + HuSprGrpMemberSet(var_r30, 1, var_r29); + HuSprPosSet(var_r30, 1, 0.0f, 25.0f); + var_r29 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x1A)), 0x3E8, 0); + HuSprGrpMemberSet(var_r30, 2, var_r29); + HuSprPosSet(var_r30, 2, 0.0f, 0.0f); + HuSprPosSet(var_r30, 2, 0.0f, 0.0f); + HuSprScaleSet(var_r30, 2, 0.9f, 0.65f); + HuSprTPLvlSet(var_r30, 2, 0.8f); + for (var_r31 = 0; var_r31 < 6; var_r31++) { + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x33)); + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x34)); + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x35)); + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x36)); + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x37)); + fn_1_125DC(sp8, MAKE_MESSID(0x33, 0x38)); + lbl_1_bss_C8[var_r31] = HuWinCreate(0.0f, 0.0f, sp8[0], sp8[1], 0); + HuWinBGTPLvlSet(lbl_1_bss_C8[var_r31], 0.0f); + HuWinMesSpeedSet(lbl_1_bss_C8[var_r31], 0); + HuWinDispOff(lbl_1_bss_C8[var_r31]); + HuWinPosSet(lbl_1_bss_C8[var_r31], 304.0f, 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1D)) - 500.0f)); + } + fn_1_1085C(); + fn_1_10ABC(); + (void)var_r31; +} + +void fn_1_107EC(void) +{ + s32 var_r30; + s32 var_r31; + + var_r30 = lbl_1_bss_C4; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + HuWinKill(lbl_1_bss_C8[var_r31]); + } + HuSprGrpKill(var_r30); +} + +void fn_1_1085C(void) +{ + float sp8[2]; + s32 var_r31; + + s32 var_r30 = lbl_1_bss_C4; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + HuSprAttrReset(var_r30, 0, 4); + HuSprAttrReset(var_r30, 1, 4); + lbl_1_bss_3B0.unk_0C = 0; + HuSprPosSet(var_r30, 2, -3.0f, (lbl_1_bss_3B0.unk_0C * 0x19) + 0x3C); + for (var_r31 = 0; var_r31 < 6; var_r31++) { + HuWinDispOn(lbl_1_bss_C8[var_r31]); + if (lbl_1_bss_180[var_r31 + 4] == 1) { + HuWinMesSet(lbl_1_bss_C8[var_r31], var_r31 + MAKE_MESSID(0x33, 0x33)); + } + else { + HuWinMesSet(lbl_1_bss_C8[var_r31], MAKE_MESSID(0x33, 0x2E)); + } + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x33, 0x33)); + HuWinPosSet(lbl_1_bss_C8[var_r31], 288.0f - (sp8[0] / 2), 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1D)) - 500.0f)); + } + HuSprGrpPosSet(var_r30, 288.0f, -460.0f); +} + +void fn_1_10ABC(void) +{ + float sp8[2]; + s32 var_r31; + + s32 var_r30 = lbl_1_bss_C4; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + HuWinDispOff(lbl_1_bss_C8[var_r31]); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x33, 0x33)); + HuWinPosSet(lbl_1_bss_C8[var_r31], 288.0f - (sp8[0] / 2), 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1D)) - 500.0f)); + } + HuSprGrpPosSet(var_r30, 288.0f, -460.0f); +} + +void fn_1_10C30(void) +{ + float sp10[2]; + float sp8[2]; + float var_f31; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r27 = lbl_1_bss_C4; + sp10[0] = sp10[1] = 0.0f; + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x2E)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x33)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x34)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x35)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x36)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x37)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x38)); + var_r28 = lbl_1_bss_C4; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r28, var_r31, 4); + } + HuSprAttrReset(var_r28, 0, 4); + HuSprAttrReset(var_r28, 1, 4); + lbl_1_bss_3B0.unk_0C = 0; + HuSprPosSet(var_r28, 2, -3.0f, (lbl_1_bss_3B0.unk_0C * 0x19) + 0x3C); + for (var_r31 = 0; var_r31 < 6; var_r31++) { + HuWinDispOn(lbl_1_bss_C8[var_r31]); + if (lbl_1_bss_180[var_r31 + 4] == 1) { + HuWinMesSet(lbl_1_bss_C8[var_r31], var_r31 + MAKE_MESSID(0x33, 0x33)); + } + else { + HuWinMesSet(lbl_1_bss_C8[var_r31], MAKE_MESSID(0x33, 0x2E)); + } + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x33, 0x33)); + HuWinPosSet(lbl_1_bss_C8[var_r31], 288.0f - (sp8[0] / 2), 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1D)) - 500.0f)); + } + HuSprGrpPosSet(var_r28, 288.0f, -460.0f); + for (var_r30 = 0; var_r30 < 0x3C; var_r30++) { + fn_1_1B7D0(1); + if (var_r30 <= 0x32) { + var_f31 = fn_1_1B64C(-500.0f, 10.0f, var_r30, 50.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, 0.0f, var_r30 - 0x32, 10.0f); + } + HuSprGrpPosSet(var_r27, 288.0f, 64.0f + (40.0f + var_f31)); + for (var_r29 = 0; var_r29 < 6; var_r29++) { + HuWinPosSet(lbl_1_bss_C8[var_r29], 288.0f - (sp10[0] / 2), 64.0f + (40.0f + (var_f31 + ((60.0f - (sp10[1] / 2)) + (var_r29 * 0x1D))))); + } + } +} + +void fn_1_110F8(void) +{ + float sp10[2]; + float sp8[2]; + float var_f31; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r27 = lbl_1_bss_C4; + sp10[0] = sp10[1] = 0.0f; + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x2E)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x33)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x34)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x35)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x36)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x37)); + fn_1_125DC(sp10, MAKE_MESSID(0x33, 0x38)); + for (var_r30 = 0; var_r30 < 0x3C; var_r30++) { + fn_1_1B7D0(1); + if (var_r30 <= 0xA) { + var_f31 = fn_1_1B64C(0.0f, 10.0f, var_r30, 10.0f); + } + else { + var_f31 = fn_1_1B574(10.0f, -500.0f, var_r30 - 0xA, 50.0f); + } + HuSprGrpPosSet(var_r27, 288.0f, 64.0f + (40.0f + var_f31)); + for (var_r29 = 0; var_r29 < 6; var_r29++) { + HuWinPosSet(lbl_1_bss_C8[var_r29], 288.0f - (sp10[0] / 2), 64.0f + (40.0f + (var_f31 + ((60.0f - (sp10[1] / 2)) + (var_r29 * 0x1D))))); + } + } + var_r28 = lbl_1_bss_C4; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r28, var_r31, 4); + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + HuWinDispOff(lbl_1_bss_C8[var_r31]); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x33, 0x33)); + HuWinPosSet(lbl_1_bss_C8[var_r31], 288.0f - (sp8[0] / 2), 40.0f + (((60.0f - (sp8[1] / 2)) + (var_r31 * 0x1D)) - 500.0f)); + } + HuSprGrpPosSet(var_r28, 288.0f, -460.0f); +} + +void fn_1_114D4(void) +{ + float sp8[2]; + s32 var_r31 = lbl_1_bss_C4; + HuWinMesMaxSizeGet(1, sp8, 0x330033); + HuSprAttrReset(var_r31, 2, 4); + HuSprPosSet(var_r31, 2, 0.0f, 40.0f + ((60.0f - sp8[1]) + (lbl_1_bss_3B0.unk_0C * 0x1D))); +} + +void fn_1_115A0(void) +{ + s32 var_r31 = lbl_1_bss_C4; + HuSprAttrSet(var_r31, 2, 4); +} + +void fn_1_115E0(s32 arg0) +{ + float spC[2]; + float var_f31; + float var_f30; + float var_f29; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = lbl_1_bss_C4; + HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(0x33, 0x33)); + var_r29 = lbl_1_bss_3B0.unk_0C; + var_r31 = lbl_1_bss_3B0.unk_0C + arg0; + if (var_r31 > 5) { + var_r31 = 0; + } + else if (var_r31 < 0) { + var_r31 = 5; + } + for (var_r30 = 0; var_r30 <= 5; var_r30++) { + fn_1_1B7D0(1); + var_f31 = 40.0f + ((60.0f - spC[1]) + (var_r29 * 0x1D)); + var_f30 = 40.0f + ((60.0f - spC[1]) + (var_r31 * 0x1D)); + var_f29 = fn_1_1B64C(var_f31, var_f30, var_r30, 5.0f); + HuSprPosSet(var_r28, 2, -4.0f, var_f29); + } + lbl_1_bss_3B0.unk_0C = var_r31; +} + +void fn_1_117D4(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r30 = HuSprGrpCreate(3); + lbl_1_bss_C0 = var_r30; + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x12)), 0xBB8, 0); + HuSprGrpMemberSet(var_r30, 0, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x13)), 0xBB8, 0); + HuSprGrpMemberSet(var_r30, 1, var_r31); + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x14)), 0xBB8, 0); + HuSprGrpMemberSet(var_r30, 2, var_r31); + var_r29 = HuSprGrpCreate(1); + lbl_1_bss_BC = var_r29; + var_r31 = HuSprCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x15)), 0xBB8, 0); + HuSprGrpMemberSet(var_r29, 0, var_r31); + HuSprAttrSet(var_r29, 0, 4); + fn_1_11984(); + fn_1_119E0(); +} + +void fn_1_11930(void) +{ + s32 var_r31 = lbl_1_bss_C0; + s32 var_r30 = lbl_1_bss_BC; + HuSprGrpKill(var_r31); + HuSprGrpKill(var_r30); +} + +void fn_1_11984(void) +{ + s32 var_r31; + s32 var_r30 = lbl_1_bss_C0; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } +} + +void fn_1_119E0(void) +{ + s32 var_r31; + s32 var_r30 = lbl_1_bss_C0; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + HuSprAttrSet(var_r30, var_r31, 4); + } +} + +void fn_1_11A3C(s32 arg0) +{ + float var_f31; + float var_f30; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r26; + + var_r29 = lbl_1_bss_C0; + var_r28 = lbl_1_bss_BC; + { + s32 sp8[3][2] = { + { 0x72, 0xFA }, + { 0x144, 0xE1 }, + { 0xEF, 0x5A }, + }; + var_r26 = lbl_1_bss_C0; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + HuSprAttrSet(var_r26, var_r30, 4); + } + if (lbl_1_bss_3B0.unk_08 != 2) { + HuSprAttrReset(var_r29, lbl_1_bss_3B0.unk_08, 4); + } + HuSprGrpScaleSet(var_r29, 0.0f, 0.0f); + for (var_r31 = 0; var_r31 <= 0xF; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 0xA) { + var_f31 = fn_1_1B64C(0.0f, 1.0f, var_r31, 10.0f); + var_f30 = 0.01f; + } + else { + var_f31 = 1.0f; + var_f30 = fn_1_1B64C(0.01f, 1.0f, var_r31 - 0xA, 5.0f); + } + HuSprGrpScaleSet(var_r29, var_f31, var_f30); + if (arg0 != -1) { + var_f31 = fn_1_1B64C(sp8[arg0][0], sp8[lbl_1_bss_3B0.unk_08][0], var_r31, 15.0f); + var_f30 = fn_1_1B64C(sp8[arg0][1], sp8[lbl_1_bss_3B0.unk_08][1], var_r31, 15.0f); + HuSprGrpPosSet(var_r28, var_f31, var_f30); + } + } + HuSprAttrReset(var_r28, 0, 4); + if (arg0 == -1) { + HuSprGrpPosSet(var_r28, sp8[0][0], sp8[0][1]); + } + } +} + +void fn_1_11E28(void) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r29 = lbl_1_bss_C0; + var_r28 = lbl_1_bss_BC; + HuSprAttrSet(var_r28, 0, 4); + for (var_r31 = 0; var_r31 <= 0xF; var_r31++) { + fn_1_1B7D0(1); + if (var_r31 <= 0xA) { + var_f30 = fn_1_1B64C(1.0f, 0.01f, var_r31, 10.0f); + var_f31 = 1.0f; + } + else { + var_f30 = 0.01f; + var_f31 = fn_1_1B64C(1.0f, 0.01f, var_r31 - 0xA, 5.0f); + } + HuSprGrpScaleSet(var_r29, var_f31, var_f30); + } + var_r27 = lbl_1_bss_C0; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + HuSprAttrSet(var_r27, var_r30, 4); + } +} + +void fn_1_11FC0(omObjData *object, MpexDllUnkStruct4 *arg1) +{ + Vec sp20; + Vec sp14; + + s32 var_r31 = lbl_1_bss_C0; + s32 sp8[3] = { 0x64, 0x64, 0xE1 }; + sp20.x = Hu3DData[lbl_1_bss_2D8[lbl_1_bss_3B0.unk_08].unk_00->model[1]].pos.x; + sp20.y = 0.0f; + sp20.z = Hu3DData[lbl_1_bss_2D8[lbl_1_bss_3B0.unk_08].unk_00->model[1]].pos.z; + Hu3D3Dto2D(&sp20, 1, &sp14); + sp14.y = fn_1_1B714(sp8[lbl_1_bss_3B0.unk_08], 10.0f + sp8[lbl_1_bss_3B0.unk_08], lbl_1_bss_3B0.unk_28++, 360.0f); + if (lbl_1_bss_3B0.unk_28 >= 0x168) { + lbl_1_bss_3B0.unk_28 = 0; + } + HuSprGrpPosSet(var_r31, sp14.x, (s32)sp14.y); +} + +void fn_1_121E8(void) +{ + OSReport("\n\n####################### HI SCORE #######################\n"); + OSReport("HIScore 453(0-99):%d\n", GWGameStat.mg_record[9]); + if (GWGameStat.mg_record[9] == 0) { + GWGameStat.mg_record[9] = 0; + } + else if (GWGameStat.mg_record[9] >= 0x63) { + GWGameStat.mg_record[9] = 0x63; + } + OSReport("HIScore 451A(0-35999):%d\n", GWGameStat.mg_record[6]); + if (GWGameStat.mg_record[6] == 0) { + GWGameStat.mg_record[6] = 0; + } + else if (GWGameStat.mg_record[6] >= 0x8C9F) { + GWGameStat.mg_record[6] = 0x8C9F; + } + OSReport("HIScore 451B(0-35999):%d\n", GWGameStat.mg_record[7]); + if (GWGameStat.mg_record[7] == 0) { + GWGameStat.mg_record[7] = 0; + } + else if (GWGameStat.mg_record[7] >= 0x8C9F) { + GWGameStat.mg_record[7] = 0x8C9F; + } + OSReport("HIScore 451C(0-35999):%d\n", GWGameStat.mg_record[8]); + if (GWGameStat.mg_record[8] == 0) { + GWGameStat.mg_record[8] = 0; + } + else if (GWGameStat.mg_record[8] >= 0x8C9F) { + GWGameStat.mg_record[8] = 0x8C9F; + } + OSReport("HIScore 442(0-999):%d\n", GWGameStat.mg_record[4]); + if (GWGameStat.mg_record[4] == 0) { + GWGameStat.mg_record[4] = 0; + } + else if (GWGameStat.mg_record[4] >= 0x3E7) { + GWGameStat.mg_record[4] = 0x3E7; + } + OSReport("HIScore 459(0-99):%d\n", GWGameStat.mg_record[0xB]); + if (GWGameStat.mg_record[0xB] == 0) { + GWGameStat.mg_record[0xB] = 0; + } + else if (GWGameStat.mg_record[0xB] >= 0x63) { + GWGameStat.mg_record[0xB] = 0x63; + } + OSReport("HIScore 460(0-99):%d\n", GWGameStat.mg_record[0xC]); + if (GWGameStat.mg_record[0xC] == 0) { + GWGameStat.mg_record[0xC] = 0; + } + else if (GWGameStat.mg_record[0xC] >= 0x63) { + GWGameStat.mg_record[0xC] = 0x63; + } + OSReport("HIScore 461(0-35999):%d\n", GWGameStat.mg_record[0xD]); + if (GWGameStat.mg_record[0xD] == 0) { + GWGameStat.mg_record[0xD] = 0; + } + else if (GWGameStat.mg_record[0xD] >= 0x8C9F) { + GWGameStat.mg_record[0xD] = 0x8C9F; + } + OSReport("HIScore 462(0-99):%d\n", GWGameStat.mg_record[0xE]); + if (GWGameStat.mg_record[0xE] == 0) { + GWGameStat.mg_record[0xE] = 0; + } + else if (GWGameStat.mg_record[0xE] >= 0x63) { + GWGameStat.mg_record[0xE] = 0x63; + } + OSReport("########################################################\n\n"); +} + +void fn_1_125DC(float *arg0, s32 arg1) +{ + float spC[2]; + + HuWinMesMaxSizeGet(1, spC, arg1); + if (spC[0] > arg0[0]) { + arg0[0] = spC[0]; + } + if (spC[1] > arg0[1]) { + arg0[1] = spC[1]; + } +} diff --git a/src/game/objmain.c b/src/game/objmain.c index f802d287..39bc9e12 100644 --- a/src/game/objmain.c +++ b/src/game/objmain.c @@ -38,7 +38,7 @@ s32 omcurdll; s32 omovlhisidx; s32 omovlevtno; s32 omnextovlevtno; -s32 omovlstat; +u32 omovlstat; static s32 omnextovlstat; char omUPauseFlag; s16 omSysExitReq; @@ -568,4 +568,4 @@ char omPauseChk(void) OverlayID omCurrentOvlGet(void) { return omcurovl; -} \ No newline at end of file +} diff --git a/src/game/objsub.c b/src/game/objsub.c index d982fff6..b00631c4 100644 --- a/src/game/objsub.c +++ b/src/game/objsub.c @@ -1166,7 +1166,7 @@ s16 mgTypeCurr; s16 mgBattleStar[4]; s16 mgBattleStarMax; u8 lbl_801D3E94; -s32 mgRecordExtra; +u32 mgRecordExtra; s32 mgQuitExtraF; s32 mgPracticeEnableF; s32 mgInstExitEnableF; From ce005e042877dc67620b9501092403e92bfa7142 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 29 Oct 2024 21:21:54 +0100 Subject: [PATCH 086/311] Corrected the type of lbl_1_data_240 in mpexDll/mpex.c --- config/GMPE01_00/rels/mpexDll/symbols.txt | 2 +- src/REL/mpexDll/mpex.c | 44 +++++++++++------------ 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/config/GMPE01_00/rels/mpexDll/symbols.txt b/config/GMPE01_00/rels/mpexDll/symbols.txt index 21ef6f1a..bc7d5ab0 100644 --- a/config/GMPE01_00/rels/mpexDll/symbols.txt +++ b/config/GMPE01_00/rels/mpexDll/symbols.txt @@ -392,7 +392,7 @@ lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x22 scope:local data:str lbl_1_data_1FE = .data:0x000001FE; // type:object size:0x1A scope:local data:string lbl_1_data_218 = .data:0x00000218; // type:object size:0x1A scope:local data:string lbl_1_data_232 = .data:0x00000232; // type:object size:0xE scope:local data:string -lbl_1_data_240 = .data:0x00000240; // type:object size:0x54 +lbl_1_data_240 = .data:0x00000240; // type:object size:0x54 data:float lbl_1_data_294 = .data:0x00000294; // type:object size:0x4 data:4byte lbl_1_data_298 = .data:0x00000298; // type:object size:0x4 data:4byte lbl_1_data_29C = .data:0x0000029C; // type:object size:0x18 scope:local data:string diff --git a/src/REL/mpexDll/mpex.c b/src/REL/mpexDll/mpex.c index d8d8e422..7067c1c6 100644 --- a/src/REL/mpexDll/mpex.c +++ b/src/REL/mpexDll/mpex.c @@ -115,28 +115,28 @@ void fn_1_F730(void); void fn_1_F8A4(void); void fn_1_FDA0(void); -s32 lbl_1_data_240[21] = { - 0x00000000, - 0x00000000, - 0x00000000, - 0xC37A0000, - 0x00000000, - 0x00000000, - 0x437A0000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x43FA0000, - 0x00000000, - 0xC47A0000, - 0x00000000, - 0x00000000, - 0x447A0000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x447A0000, - 0x00000000, +float lbl_1_data_240[21] = { + 0.0f, + 0.0f, + 0.0f, + -250.0f, + 0.0f, + 0.0f, + 250.0f, + 0.0f, + 0.0f, + 0.0f, + 500.0f, + 0.0f, + -1000.0f, + 0.0f, + 0.0f, + 1000.0f, + 0.0f, + 0.0f, + 0.0f, + 1000.0f, + 0.0f, }; MpexDllUnkStruct4 lbl_1_bss_3F8; From 120cfa57a180ded1effe724fb71d220f291a3ac6 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Tue, 29 Oct 2024 15:39:57 -0500 Subject: [PATCH 087/311] Match mpex.c --- configure.py | 2 +- src/REL/mpexDll/mpex.c | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/configure.py b/configure.py index 8a5611e2..dd0f6cb2 100644 --- a/configure.py +++ b/configure.py @@ -1325,7 +1325,7 @@ config.libs = [ "mpexDll", objects={ Object(Matching, "REL/mpexDll/main.c"), - Object(NonMatching, "REL/mpexDll/mpex.c"), + Object(Matching, "REL/mpexDll/mpex.c"), Object(Matching, "REL/mpexDll/charsel.c"), Object(Matching, "REL/mpexDll/mgname.c"), }, diff --git a/src/REL/mpexDll/mpex.c b/src/REL/mpexDll/mpex.c index 7067c1c6..5931ebd8 100644 --- a/src/REL/mpexDll/mpex.c +++ b/src/REL/mpexDll/mpex.c @@ -1,5 +1,4 @@ #include "ext_math.h" -#include "game/audio.h" #include "game/board/main.h" #include "game/chrman.h" #include "game/esprite.h" From f14e4bf84b4e010a6689ec544925c142dda7cc90 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Tue, 29 Oct 2024 17:00:36 -0400 Subject: [PATCH 088/311] fix malloc convention --- src/REL/m415Dll/main.c | 4 ++-- src/REL/m415Dll/map.c | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/REL/m415Dll/main.c b/src/REL/m415Dll/main.c index 2fc185c3..cdf5850f 100644 --- a/src/REL/m415Dll/main.c +++ b/src/REL/m415Dll/main.c @@ -388,7 +388,7 @@ void fn_1_15D0(omObjData* object) { Hu3DModelRotSetV(var_r31, &sp8); lbl_1_bss_338 = Hu3DAnimCreate(HuDataReadNum(0x2E000A, 0x10000000), var_r31, "dummy"); var_r28 = 0x57E40; - lbl_1_bss_334 = HuMemDirectMallocNum(HEAP_DATA, var_r28, 0x10000000); + lbl_1_bss_334 = HuMemDirectMallocNum(HEAP_DATA, var_r28, MEMORY_DEFAULT_NUM); memset(lbl_1_bss_334, 0, var_r28); (void)var_r28; memset(&lbl_1_bss_234, 0, 0x100); @@ -1459,7 +1459,7 @@ void* fn_1_63A8(s32 arg0) { if (var_r31 == 0x80) { return NULL; } - lbl_1_bss_34[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, arg0, 0x10000000); + lbl_1_bss_34[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, arg0, MEMORY_DEFAULT_NUM); return lbl_1_bss_34[var_r31]; } diff --git a/src/REL/m415Dll/map.c b/src/REL/m415Dll/map.c index c28e549d..45a83c57 100644 --- a/src/REL/m415Dll/map.c +++ b/src/REL/m415Dll/map.c @@ -12,9 +12,9 @@ void fn_1_8780(s16 arg0, s16 arg1) { lbl_1_bss_36C.unk34 = Hu3DHookFuncCreate(fn_1_95C0); Hu3DModelLayerSet(lbl_1_bss_36C.unk34, 6); lbl_1_bss_36C.unk30 = arg0; - lbl_1_bss_36C.unk40 = var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkSubStruct2), 0x10000000); + lbl_1_bss_36C.unk40 = var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkSubStruct2), MEMORY_DEFAULT_NUM); lbl_1_bss_36C.unk32 = arg1; - lbl_1_bss_36C.unk3C = var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkSubStruct3), 0x10000000); + lbl_1_bss_36C.unk3C = var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkSubStruct3), MEMORY_DEFAULT_NUM); for (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) { var_r29->unk8 = 0; @@ -293,7 +293,7 @@ void fn_1_9750(unkStruct6** arg0, s16 arg1, f32 arg8, f32 arg9) { s32 var_r30; unkStruct6* var_r31; - var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct6), 0x10000000); + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct6), MEMORY_DEFAULT_NUM); for (var_r30 = 0; var_r30 < arg1; var_r31++, var_r30++) { var_r31->unk0.x = (-0.5f * arg8); @@ -546,15 +546,15 @@ s16 fn_1_A2D0(u8 arg0, u8 arg1) { var_r31->unk30 = NULL; var_r31->unk2 = arg0; var_r31->unk4 = arg1; - var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkSubStruct), 0x10000000); + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkSubStruct), MEMORY_DEFAULT_NUM); var_r31->unk3C = var_r30; - var_r31->unk34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * 2, 0x10000000); + var_r31->unk34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * 2, MEMORY_DEFAULT_NUM); var_r31->unk48 = 0; - var_r31->unk4C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkType), 0x10000000); - var_r31->unk50 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec[4]), 0x10000000); - var_r31->unk54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkType2), 0x10000000); - var_r31->unk58 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), 0x10000000); - var_r31->unk5C = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (arg0 * sizeof(unkSubStruct4)), 0x10000000); + var_r31->unk4C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkType), MEMORY_DEFAULT_NUM); + var_r31->unk50 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec[4]), MEMORY_DEFAULT_NUM); + var_r31->unk54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkType2), MEMORY_DEFAULT_NUM); + var_r31->unk58 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(Vec), MEMORY_DEFAULT_NUM); + var_r31->unk5C = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (arg0 * sizeof(unkSubStruct4)), MEMORY_DEFAULT_NUM); DCFlushRangeNoSync(var_r31->unk4C, arg0 << 8); var_r31->unkC.x = var_r31->unkC.y = var_r31->unkC.z = 0.0f; var_r31->unk18.x = var_r31->unk18.y = var_r31->unk18.z = 0.0f; @@ -606,7 +606,7 @@ s16 fn_1_A2D0(u8 arg0, u8 arg1) { var_r31->unk48 += var_r30->unk38; } temp_r25 = var_r31->unk4C; - var_r31->unk4C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk48, 0x10000000); + var_r31->unk4C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk48, MEMORY_DEFAULT_NUM); memcpy(var_r31->unk4C, temp_r25, var_r31->unk48); HuMemDirectFree(temp_r25); DCFlushRangeNoSync(var_r31->unk50, arg0 * 0x30); @@ -692,7 +692,7 @@ s16 fn_1_A94C(u32 arg0, s16 arg1, s16 arg2) { var_r31->unk6 = 1; if (((arg0 & 0xFFFF0000) + 0x10000) == 0U) { var_r30 = HuSprAnimMake(arg1, arg2, 2); - var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg2 * (arg1 * 2), 0x10000000); + var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg2 * (arg1 * 2), MEMORY_DEFAULT_NUM); arg1 = arg2 = 0; } else { var_r30 = HuSprAnimRead(HuDataReadNum(arg0, 0x10000000)); From daa833827f1bd768a3ac1a71a76809432f111dfe Mon Sep 17 00:00:00 2001 From: CreateSource Date: Tue, 29 Oct 2024 17:32:08 -0400 Subject: [PATCH 089/311] symbol fix --- config/GMPE01_00/rels/m456Dll/symbols.txt | 214 +++++++++++----------- 1 file changed, 107 insertions(+), 107 deletions(-) diff --git a/config/GMPE01_00/rels/m456Dll/symbols.txt b/config/GMPE01_00/rels/m456Dll/symbols.txt index 1f2502e9..4321bb34 100644 --- a/config/GMPE01_00/rels/m456Dll/symbols.txt +++ b/config/GMPE01_00/rels/m456Dll/symbols.txt @@ -110,111 +110,111 @@ lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float lbl_1_data_38 = .data:0x00000038; // type:object size:0xC data:float lbl_1_data_44 = .data:0x00000044; // type:object size:0xC data:float @@ -237,8 +237,8 @@ lbl_1_data_230 = .data:0x00000230; // type:object size:0xB8 lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x30 lbl_1_data_318 = .data:0x00000318; // type:object size:0x1 data:byte lbl_1_data_31C = .data:0x0000031C; // type:object size:0x50 -lbl_1_data_36C = .data:0x0000036C; // type:object size:0x7 data:string -lbl_1_data_373 = .data:0x00000373; // type:object size:0x7 data:string +lbl_1_data_36C = .data:0x0000036C; // type:object size:0x7 scope:local data:string +lbl_1_data_373 = .data:0x00000373; // type:object size:0x7 scope:local data:string lbl_1_data_37A = .data:0x0000037A; // type:object size:0x1 data:byte lbl_1_data_37E = .data:0x0000037E; // type:object size:0x1 data:byte lbl_1_data_382 = .data:0x00000382; // type:object size:0x6 data:byte From 513f0af5e1ffe3fe36846fca893f4cd8cefdf525 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Tue, 29 Oct 2024 21:28:20 -0400 Subject: [PATCH 090/311] start m443Dll --- .gitignore | 1 + .vscode/settings.json | 10 +- config/GMPE01_00/rels/m443Dll/symbols.txt | 3 +- include/REL/m443Dll.h | 48 +++++++ src/REL/m443Dll/player.c | 161 ++++++++++++++++++++++ 5 files changed, 219 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 275db754..c8875b51 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ # IDE folders .idea/ .vs/ +.vscode/ # Caches __pycache__ diff --git a/.vscode/settings.json b/.vscode/settings.json index e0b63102..3b7f3945 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,8 +13,14 @@ "files.insertFinalNewline": true, "files.trimFinalNewlines": true, "files.associations": { + "*.csv": "plaintext", + "*.s": "plaintext", + "*.json": "jsonc", + "*.c": "c", "*.inc": "c", - ".clangd": "yaml" + ".clangd": "yaml", + "m443dll.h": "c", + "object.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { @@ -27,7 +33,5 @@ "report.json": true, "compile_commands.json": true, }, - // Disable C/C++ IntelliSense, use clangd instead - "C_Cpp.intelliSenseEngine": "disabled", "cmake.ignoreCMakeListsMissing": true, } diff --git a/config/GMPE01_00/rels/m443Dll/symbols.txt b/config/GMPE01_00/rels/m443Dll/symbols.txt index 2c1f25ca..80477002 100644 --- a/config/GMPE01_00/rels/m443Dll/symbols.txt +++ b/config/GMPE01_00/rels/m443Dll/symbols.txt @@ -292,7 +292,8 @@ lbl_1_data_208 = .data:0x00000208; // type:object size:0x4 data:byte lbl_1_data_20C = .data:0x0000020C; // type:object size:0x1A scope:local data:string lbl_1_data_226 = .data:0x00000226; // type:object size:0x19 scope:local data:string lbl_1_data_240 = .data:0x00000240; // type:object size:0x14 -lbl_1_data_264 = .data:0x00000258; // type:object size:0x20 +lbl_1_data_258 = .data:0x00000258; // type:object size:0xB scope:local data:string +lbl_1_data_264 = .data:0x00000264; // type:object size:0x20 lbl_1_data_284 = .data:0x00000284; // type:object size:0x40 lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x10 lbl_1_data_2D4 = .data:0x000002D4; // type:object size:0x50 diff --git a/include/REL/m443Dll.h b/include/REL/m443Dll.h index 72b89689..ac7b9c58 100644 --- a/include/REL/m443Dll.h +++ b/include/REL/m443Dll.h @@ -29,6 +29,54 @@ typedef struct M443DllCameraStruct { u32 unk_A0; } M443DllCameraStruct; /* size = 0xA4 */ +typedef struct M443DllWorkStruct { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + char unk10[0xC]; + s32 unk1C; + s32 unk20; + s32 unk24; + char unk28[0xC]; + s16 unk34; + char unk3A[0x12]; + f32 unk48; + f32 unk4C; + f32 unk50; + f32 unk54; + f32 unk58; + f32 unk5C; + s32 unk60; + char unk64[0x4]; + s32 unk68; + char unk6C[0x14]; + s32 unk80; + char unk84[0x4]; + f32 unk88; + char unk8C[0x4]; + f32 unk90; + char unk94[0x4]; + f32 unk98; + f32 unk9C; + f32 unkA0; + f32 unkA4; + s32 unkA8; + s32 unkAC; + s32 unkB0; + s32 unkB4; + s32 unkB8; + f32 unkBC; + f32 unkC0; + Vec unkC4; + Vec unkD0; + Vec unkDC; + Vec unkE8; + char unkF4[0xC]; + M443DllCameraStruct* unk100; + M443DllCameraStruct* unk104; +} M443DllWorkStruct; /* size = 0x134 */ + void fn_1_3FE8(u32 arg0); u32 fn_1_3FFC(void); M443DllCameraStruct *fn_1_40AC(s32 arg0); diff --git a/src/REL/m443Dll/player.c b/src/REL/m443Dll/player.c index 98e6f793..0d5fda09 100644 --- a/src/REL/m443Dll/player.c +++ b/src/REL/m443Dll/player.c @@ -14,3 +14,164 @@ #endif #include "REL/m443Dll.h" + +s32 lbl_1_bss_78[6]; +omObjData* lbl_1_bss_90[4]; + +char* lbl_1_data_264[0x8] = { + "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", + "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r" +}; + +u32 lbl_1_data_284[8][2] = { + {0x4A0005, 0x4A0006}, {0x4A0007, 0x4A0008}, + {0x4A0009, 0x4A000A}, {0x4A000B, 0x4A000C}, + {0x4A000D, 0x4A000E}, {0x4A000F, 0x4A0010}, + {0x4A0011, 0x4A0012}, {0x4A0013, 0x4A0014}, +}; + +s32 lbl_1_data_2C4[4] = { + 0, 0x4A0020, 0x17, 0x72 +}; + +s32 lbl_1_data_324[4] = { + 0x727, 0x728, 0x729, 0x72A, +}; +s32 lbl_1_data_334[4] = { + 0x72B, 0x72C, 0x72D, 0x72E, +}; + +///// +void fn_1_5680(omObjData* object); +void fn_1_5BD4(omObjData*); +void fn_1_8508(omObjData*); +f32 fn_1_8C8C(s32, f32); +///// + +void fn_1_5444(Process* arg0) { + u32 sp18[4]; + u32 sp8[4]; + omObjData* var_r28; + u32 var_r29; + s16 var_r30; + s16 var_r31; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + sp18[var_r31] = GWPlayerCfg[var_r31].group; + sp8[var_r31] = var_r31; + } + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + for (var_r30 = var_r31 + 1; var_r30 < 4; var_r30++) { + if (sp18[var_r31] > sp18[var_r30]) { + var_r29 = sp18[var_r31]; + sp18[var_r31] = sp18[var_r30]; + sp18[var_r30] = var_r29; + var_r29 = sp8[var_r31]; + sp8[var_r31] = sp8[var_r30]; + sp8[var_r30] = var_r29; + } + } + } + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_78[sp8[var_r31]] = (s16)var_r31; + } + omMakeGroupEx(arg0, 0, 4); + omGetGroupMemberListEx(arg0, 0); + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r28 = lbl_1_bss_90[var_r31] = omAddObjEx(arg0, 0x28, 5, 4, 0, fn_1_5680); + var_r28->work[0] = var_r31; + } +} + +void fn_1_565C(void) { + CharModelKill(-1); +} + +void fn_1_5680(omObjData* object) { + f32 spC[4] = {0.25f, 0.5f, 0.75f, 1.0f}; + s32 sp8; + f32 temp_f0; + s32 temp_r27; + s32 temp_r3; + s32 var_r29; + u32 temp_r25; + M443DllWorkStruct* temp_r31; + HsfanimStruct01* var_r28; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x134, MEMORY_DEFAULT_NUM); + temp_r31 = object->data; + memset(temp_r31, 0, 0x134); + object->stat |= 0x100; + temp_r25 = object->work[0]; + temp_r27 = GWPlayerCfg[temp_r25].character; + temp_r31->unk0 = temp_r27; + sp8 = temp_r31->unk4 = 0; + temp_r31->unkC = lbl_1_bss_78[object->work[0]]; + temp_r31->unk5C = spC[GWPlayerCfg[temp_r25].diff & 3]; + temp_r31->unk24 = GWPlayerCfg[object->work[0]].iscom; + object->model[0] = CharModelCreate(temp_r27, 8); + Hu3DModelLayerSet(object->model[0], 4); + object->model[1] = Hu3DModelCreateFile(lbl_1_data_284[temp_r27][0]); + Hu3DModelLayerSet(object->model[1], 4); + Hu3DMotionSpeedSet(object->model[1], 0.0f); + object->model[2] = Hu3DModelCreateFile(lbl_1_data_284[temp_r27][1]); + Hu3DModelLayerSet(object->model[2], 4); + Hu3DMotionSpeedSet(object->model[2], 0.0f); + Hu3DModelAttrSet(object->model[2], 1); + + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (lbl_1_data_2C4[var_r29] < 0x10000) { + object->motion[var_r29] = CharModelMotionCreate(temp_r27, lbl_1_data_2C4[var_r29]); + } else { + object->motion[var_r29] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(temp_r27 + lbl_1_data_2C4[var_r29], 0x10000000, HEAP_DATA)); + } + } + CharModelMotionDataClose(temp_r27); + temp_r3 = Hu3DParticleCreate(HuSprAnimReadFile(0x4A001D), 0xC8); + object->model[3] = temp_r3; + Hu3DModelLayerSet(temp_r3, 4); + var_r28 = ((ParticleData*)Hu3DData[temp_r3].unk_120)->unk_48; + + for (var_r29 = 0; var_r29 < 0xC8; var_r29++, var_r28++) { + var_r28->unk2C = 0.0f; + var_r28->unk40.a = 0; + var_r28->unk00 = 0; + } + + + object->trans.x = temp_r31->unkC4.x = temp_r31->unkDC.x = (100.0f * (4.0f * object->work[0])) - 600.0f; + object->trans.y = temp_r31->unkC4.y = temp_r31->unkDC.y = 0.0f; + object->trans.z = temp_r31->unkC4.z = temp_r31->unkDC.z = 0.0f; + + temp_r31->unkD0.x = temp_r31->unkD0.y = temp_r31->unkD0.z = 0.0f; + temp_r31->unkE8.x = temp_r31->unkE8.y = temp_r31->unkE8.z = 0.0f; + temp_r31->unk48 = temp_r31->unk4C = 0.0f; + temp_r31->unk50 = 0.0f; + temp_r31->unk54 = 0.02f; + temp_r31->unk58 = 180.0f; + temp_r31->unkC0 = 50.0f; + temp_r31->unkBC = 350.0f; + temp_r31->unk8 = -1; + temp_r31->unk1C = 1; + temp_r31->unk20 = 0; + temp_r31->unk9C = 1.0f; + temp_r31->unk98 = 0.0f; + temp_r31->unkA0 = 0.0f; + temp_r31->unkA4 = 0.0f; + temp_r31->unk88 = 1000.0f; + temp_r31->unk90 = fn_1_8C8C(temp_r31->unk80, temp_r31->unk88); + temp_r31->unkA8 = temp_r31->unkAC = -1; + temp_r31->unkB0 = temp_r31->unkB4 = temp_r31->unkB8 = -1; + temp_r31->unkB4 = HuAudFXPlay(lbl_1_data_334[object->work[0]]); + temp_r31->unk68 = -1; + temp_r31->unk60 = 0; + temp_r31->unk100 = fn_1_4148(object->work[0] + 1); + temp_r31->unk104 = fn_1_41B0(object->work[0] + 1); + temp_r31->unk100->unk_00 = 0; + fn_1_8508(object); + temp_r31->unk34 = 0; + object->func = fn_1_5BD4; +} From 561f0ac1c569507d5c833d2bcc3a4c8709c2ff87 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Thu, 31 Oct 2024 15:41:09 +0100 Subject: [PATCH 091/311] Matched m453Dll --- config/GMPE01_00/rels/m453Dll/splits.txt | 4 +- config/GMPE01_00/rels/m453Dll/symbols.txt | 278 ++-- configure.py | 6 +- include/REL/m453Dll.h | 22 + src/REL/m453Dll/main.c | 1771 +++++++++++++++++++++ src/REL/m453Dll/map.c | 1091 +++++++++++++ src/REL/m453Dll/score.c | 188 +++ 7 files changed, 3217 insertions(+), 143 deletions(-) create mode 100644 include/REL/m453Dll.h create mode 100644 src/REL/m453Dll/main.c create mode 100644 src/REL/m453Dll/map.c create mode 100644 src/REL/m453Dll/score.c diff --git a/config/GMPE01_00/rels/m453Dll/splits.txt b/config/GMPE01_00/rels/m453Dll/splits.txt index 918d68a7..fcf25f98 100644 --- a/config/GMPE01_00/rels/m453Dll/splits.txt +++ b/config/GMPE01_00/rels/m453Dll/splits.txt @@ -17,12 +17,12 @@ REL/m453Dll/main.c: REL/m453Dll/map.c: .text start:0x000064E8 end:0x00008F48 - .rodata start:0x00000198 end:0x00000248 + .rodata start:0x00000198 end:0x00000240 .data start:0x00000158 end:0x00000BC0 .bss start:0x00000060 end:0x000000C0 REL/m453Dll/score.c: .text start:0x00008F48 end:0x00009674 - .rodata start:0x00000248 end:0x00000278 + .rodata start:0x00000240 end:0x00000278 .data start:0x00000BC0 end:0x00000BCC .bss start:0x000000C0 end:0x000000C8 diff --git a/config/GMPE01_00/rels/m453Dll/symbols.txt b/config/GMPE01_00/rels/m453Dll/symbols.txt index 19f422d2..518e286d 100644 --- a/config/GMPE01_00/rels/m453Dll/symbols.txt +++ b/config/GMPE01_00/rels/m453Dll/symbols.txt @@ -83,135 +83,137 @@ fn_1_9484 = .text:0x00009484; // type:function size:0x8C fn_1_9510 = .text:0x00009510; // type:function size:0x164 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x9 data:byte -lbl_1_rodata_8D = .rodata:0x0000008D; // type:object size:0xB data:byte -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x9 scope:local data:byte +lbl_1_rodata_8D = .rodata:0x0000008D; // type:object size:0xB scope:local data:byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte lbl_1_data_4 = .data:0x00000004; // type:object size:0xC lbl_1_data_10 = .data:0x00000010; // type:object size:0xC lbl_1_data_1C = .data:0x0000001C; // type:object size:0x28 -lbl_1_data_44 = .data:0x00000044; // type:object size:0x24 +lbl_1_data_44 = .data:0x00000044; // type:object size:0x24 scope:local data:string lbl_1_data_68 = .data:0x00000068; // type:object size:0x24 data:4byte jumptable_1_data_8C = .data:0x0000008C; // type:object size:0x1C scope:local jumptable_1_data_A8 = .data:0x000000A8; // type:object size:0x1C scope:local @@ -220,18 +222,18 @@ lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x30 lbl_1_data_114 = .data:0x00000114; // type:object size:0x20 lbl_1_data_134 = .data:0x00000134; // type:object size:0x20 lbl_1_data_154 = .data:0x00000154; // type:object size:0x4 data:4byte -lbl_1_data_158 = .data:0x00000158; // type:object size:0xC0 -lbl_1_data_218 = .data:0x00000218; // type:object size:0xC0 -lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x78 -lbl_1_data_350 = .data:0x00000350; // type:object size:0x78 -lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0xC0 -lbl_1_data_488 = .data:0x00000488; // type:object size:0xC0 -lbl_1_data_548 = .data:0x00000548; // type:object size:0x78 -lbl_1_data_5C0 = .data:0x000005C0; // type:object size:0x78 -lbl_1_data_638 = .data:0x00000638; // type:object size:0x108 -lbl_1_data_740 = .data:0x00000740; // type:object size:0x108 -lbl_1_data_848 = .data:0x00000848; // type:object size:0x108 -lbl_1_data_950 = .data:0x00000950; // type:object size:0x108 +lbl_1_data_158 = .data:0x00000158; // type:object size:0xC0 data:float +lbl_1_data_218 = .data:0x00000218; // type:object size:0xC0 data:float +lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x78 data:float +lbl_1_data_350 = .data:0x00000350; // type:object size:0x78 data:float +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0xC0 data:float +lbl_1_data_488 = .data:0x00000488; // type:object size:0xC0 data:float +lbl_1_data_548 = .data:0x00000548; // type:object size:0x78 data:float +lbl_1_data_5C0 = .data:0x000005C0; // type:object size:0x78 data:float +lbl_1_data_638 = .data:0x00000638; // type:object size:0x108 data:float +lbl_1_data_740 = .data:0x00000740; // type:object size:0x108 data:float +lbl_1_data_848 = .data:0x00000848; // type:object size:0x108 data:float +lbl_1_data_950 = .data:0x00000950; // type:object size:0x108 data:float lbl_1_data_A58 = .data:0x00000A58; // type:object size:0x30 lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x48 lbl_1_data_AD0 = .data:0x00000AD0; // type:object size:0xC data:4byte @@ -247,7 +249,7 @@ lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x6 data:2byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:4byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:2byte lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x2 data:2byte lbl_1_bss_1E = .bss:0x0000001E; // type:object size:0x14 data:2byte lbl_1_bss_32 = .bss:0x00000032; // type:object size:0x2 data:2byte diff --git a/configure.py b/configure.py index dd0f6cb2..0e09d5e4 100644 --- a/configure.py +++ b/configure.py @@ -1214,9 +1214,9 @@ config.libs = [ Rel( "m453Dll", # Challenge Booksquirm objects={ - Object(NonMatching, "REL/m453Dll/main.c"), - Object(NonMatching, "REL/m453Dll/map.c"), - Object(NonMatching, "REL/m453Dll/score.c"), + Object(Matching, "REL/m453Dll/main.c"), + Object(Matching, "REL/m453Dll/map.c"), + Object(Matching, "REL/m453Dll/score.c"), }, ), Rel( diff --git a/include/REL/m453Dll.h b/include/REL/m453Dll.h new file mode 100644 index 00000000..661b2e99 --- /dev/null +++ b/include/REL/m453Dll.h @@ -0,0 +1,22 @@ +#ifndef M453DLL_H +#define M453DLL_H + +#include "game/object.h" + +s32 fn_1_639C(void); +void fn_1_64E8(Process *arg0); +void fn_1_6748(void); +void fn_1_7C0C(float arg8); +void fn_1_7C2C(s32 arg0); +void fn_1_7C3C(void); +float fn_1_7F54(float arg8, float arg9); +float fn_1_80B0(Vec *arg0, float arg8); +s32 fn_1_8240(void); +s32 fn_1_82AC(Vec *arg0); +s32 fn_1_844C(Vec *arg0); +void fn_1_864C(s32 arg0); +s32 fn_1_867C(Vec *arg0, Vec *arg1); +void fn_1_8F48(Process *arg0, s16 arg1); +void fn_1_924C(s32 arg0); + +#endif diff --git a/src/REL/m453Dll/main.c b/src/REL/m453Dll/main.c new file mode 100644 index 00000000..586fc75a --- /dev/null +++ b/src/REL/m453Dll/main.c @@ -0,0 +1,1771 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/flag.h" +#include "game/frand.h" +#include "game/gamework.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/wipe.h" +#include "rel_sqrt_consts.h" +#include "string.h" + +#include "REL/m453Dll.h" + +typedef struct M453DllWork { + /* 0x00 */ u8 unk_00; + /* 0x04 */ Vec unk_04; + /* 0x10 */ Vec unk_10; + /* 0x1C */ Vec unk_1C; + /* 0x28 */ Vec unk_28; + /* 0x34 */ Vec unk_34; + /* 0x40 */ Vec unk_40; + /* 0x4C */ Vec unk_4C; + /* 0x58 */ Vec unk_58; + /* 0x64 */ Vec unk_64[3]; + /* 0x88 */ Vec unk_88[3]; + /* 0xAC */ Vec unk_AC[3]; + /* 0xD0 */ Vec unk_D0[3]; + /* 0xF4 */ float unk_F4[3]; + /* 0x100 */ float unk_100[3]; + /* 0x10C */ float unk_10C[3]; + /* 0x118 */ float unk_118[3]; + /* 0x124 */ float unk_124[3]; + /* 0x130 */ float unk_130; + /* 0x134 */ float unk_134; + /* 0x138 */ float unk_138; + /* 0x13C */ float unk_13C; + /* 0x140 */ float unk_140; + /* 0x144 */ float unk_144; + /* 0x148 */ float unk_148; +} M453DllWork; /* size 0x14C */ + +typedef struct M453DllUnkStruct { + s16 unk_00; + s16 unk_02; + float unk_04; + float unk_08; + char unk0C[0x34]; +} M453DllUnkStruct; /* 0x40 */ + +typedef struct M453DllWork2 { + u8 unk_00; + u8 unk_01; + u8 unk_02; + u8 unk_03; + u8 unk_04; + u8 unk_05; + u8 unk_06; + u8 unk_07; + char unk08[2]; + u8 unk_0A; + char unk0B; + u8 unk_0C; + u8 unk_0D; + u8 unk_0E; + s16 unk_10; + s16 unk_12; + s16 unk_14; + s16 unk_16; + s16 unk_18; + s16 unk_1A; + float unk_1C; + float unk_20; + float unk_24; + float unk_28; + Vec unk_2C; + Vec unk_38; + float unk_44; + float unk_48; + float unk_4C; + Vec unk_50; + M453DllUnkStruct unk_5C; + u8 unk_9C; + s32 unk_A0; +} M453DllWork2; /* size 0xA4 */ + +void fn_1_440(omObjData *object); +void fn_1_460(omObjData *object); +void fn_1_848(omObjData *object); +void fn_1_FFC(omObjData *object); +void fn_1_105C(omObjData *object); +void fn_1_1248(omObjData *object); +void fn_1_14F8(omObjData *object); +void fn_1_15FC(omObjData *object); +void fn_1_1870(float arg8, Vec *arg0, Vec *arg1, float arg9); +void fn_1_1910(float arg8, Vec *arg0, Vec *arg1, float arg9, Vec *arg2, Vec *arg3, float argA); +void fn_1_1BF0(omObjData *object); +void fn_1_1FA0(omObjData *object); +void fn_1_20EC(omObjData *object); +void fn_1_23E0(omObjData *object); +void fn_1_2E24(omObjData *object); +s32 fn_1_36DC(void); +void fn_1_39C8(omObjData *object); +void fn_1_3C94(omObjData *object); +s16 fn_1_3E9C(s32 arg0, s16 arg1, ParticleHook); +void fn_1_3F38(ModelData *model, ParticleData *particle, Mtx matrix); +s32 fn_1_43B8(void); +float fn_1_440C(float arg8, float arg9, float argA); +void fn_1_4E84(float *arg0, float *arg1, float *arg2, s32 arg3); +float fn_1_513C(float arg8, float *arg0, float *arg1, float *arg2, s32 arg3); +void fn_1_5290(float *arg0, float (*arg1)[3], float (*arg2)[3], s32 arg3); +void fn_1_5670(float arg8, float *arg0, float *arg1, float (*arg2)[3], float (*arg3)[3], s32 arg4); +float fn_1_5884(Vec *arg0); +s32 fn_1_63AC(void); +void fn_1_6448(void); + +s16 lbl_1_data_0 = -1; + +Vec lbl_1_data_4 = { 0.0f, 4000.0f, 4000.0f }; + +Vec lbl_1_data_10 = { 0.0f, -0.7f, -0.6f }; + +GXColor lbl_1_data_1C[0xA] = { + { 0xFF, 0xFF, 0xFF, 0xFF }, + { 0, 0, 0, 0 }, + { 0x45, 0x7A, 0, 0 }, + { 0xC4, 0xFA, 0, 0 }, + { 0, 0, 0, 0 }, + { 0x3F, 0x80, 0, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, +}; + +omObjData *lbl_1_bss_58; +omObjData *lbl_1_bss_54; +omObjData *lbl_1_bss_50; +omObjData *lbl_1_bss_4C; +omObjData *lbl_1_bss_3C[4]; +u16 lbl_1_bss_3A; +s16 lbl_1_bss_38; +s16 lbl_1_bss_36; +s16 lbl_1_bss_34; +s16 lbl_1_bss_32; +s16 lbl_1_bss_1E[0xA]; +s16 lbl_1_bss_1C; +s16 lbl_1_bss_18[2]; +s32 lbl_1_bss_14; +s32 lbl_1_bss_8[3]; +s16 lbl_1_bss_2[3]; +s16 lbl_1_bss_0; + +void ObjectSetup(void) +{ + Process *var_r31; + s32 var_r30; + omObjData *var_r29; + LightData *var_r28; + s32 var_r27; + s32 var_r26; + + OSReport("******* M453ObjectSetup *********\n"); + Hu3DLighInit(); + var_r26 = Hu3DGLightCreateV(&lbl_1_data_4, &lbl_1_data_10, lbl_1_data_1C); + Hu3DGLightInfinitytSet(var_r26); + var_r28 = Hu3DGlobalLight; + var_r28->unk_00 |= 0x8000; + var_r31 = omInitObjMan(0x32, 0x2000); + var_r27 = frand() & 0x1F; + for (var_r30 = 0; var_r30 < var_r27; var_r30++) { + fn_1_43B8(); + } + CRot.x = -23.5f; + CRot.y = 0.0f; + CRot.z = 0.0f; + Center.x = 0.0f; + Center.y = 320.0f; + Center.z = 147.0f; + CZoom = 1720.0f; + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 45.0f, 400.0f, 10000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + lbl_1_bss_54 = omAddObjEx(var_r31, 0x7FDA, 0, 0, -1, omOutView); + lbl_1_bss_58 = omAddObjEx(var_r31, 0x10, 8, 0, -1, fn_1_440); + lbl_1_bss_4C = omAddObjEx(var_r31, 0x20, 0x10, 0, -1, fn_1_105C); + lbl_1_bss_50 = omAddObjEx(var_r31, 0x50, 0x10, 0, -1, fn_1_14F8); + omAddObjEx(var_r31, 0x60, 0, 0, -1, fn_1_39C8); + fn_1_64E8(var_r31); + fn_1_7C2C(3); + omMakeGroupEx(var_r31, 0, 4); + omGetGroupMemberListEx(var_r31, 0); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r29 = omAddObjEx(var_r31, 0x30, 2, 8, 0, fn_1_1BF0); + lbl_1_bss_3C[var_r30] = var_r29; + var_r29->work[0] = var_r30; + var_r29->work[1] = var_r30; + } + omGameSysInit(var_r31); + WipeCreate(1, 0, 0x3C); + HuAudSndGrpSet(0x1C); + lbl_1_bss_2[0] = 1; + if (GWMGRecordGet(9) == 0) { + GWMGRecordSet(9, 0); + } + fn_1_8F48(var_r31, GWMGRecordGet(9)); + fn_1_924C(0); +} + +void fn_1_440(omObjData *object) +{ + lbl_1_bss_3A = 0; + object->func = fn_1_460; +} + +void fn_1_460(omObjData *object) +{ + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + + float var_f31; + float var_f30; + + switch (lbl_1_bss_3A) { + case 0: + sp2C.x = 0.0f; + sp2C.y = 0.0f; + sp2C.z = -50.0f; + sp20.x = -90.0f; + sp20.y = 90.0f; + sp20.z = 0.0f; + var_f31 = 2200.0f; + fn_1_1870(1.0f, &sp2C, &sp20, var_f31); + lbl_1_bss_32 = 0x3C; + lbl_1_bss_3A += 1; + break; + case 1: + if (--lbl_1_bss_32 == 0) { + lbl_1_bss_3A += 1; + } + break; + case 2: + if (lbl_1_bss_32 == 0) { + fn_1_7C3C(); + lbl_1_bss_32 = 0x5A; + sp2C.x = 200.0f; + sp2C.y = 100.0f; + sp2C.z = -50.0f; + sp20.x = -50.0f; + sp20.y = 90.0f; + sp20.z = 0.0f; + var_f31 = 2000.0f; + sp14.x = 0.0f; + sp14.y = 320.0f; + sp14.z = 147.0f; + sp8.x = -23.5f; + sp8.y = 0.0f; + sp8.z = 0.0f; + var_f30 = 1720.0f; + fn_1_1910(180.0f, &sp14, &sp8, var_f30, &sp2C, &sp20, var_f31); + } + if (--lbl_1_bss_32 == 0) { + lbl_1_bss_3A += 1; + } + break; + case 3: + if (lbl_1_bss_32 == 0) { + lbl_1_bss_32 = 0x5A; + } + if (--lbl_1_bss_32 == 0) { + lbl_1_bss_3A += 1; + } + break; + case 4: + lbl_1_bss_3A = 5; + lbl_1_bss_38 = lbl_1_bss_36 = -1; + object->func = fn_1_848; + HuSprAnimRead(HuDataReadNum(0x220013, 0x10000000)); + break; + } + if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { + WipeCreate(2, 0, 0x3C); + object->func = fn_1_FFC; + } +} + +s32 lbl_1_data_68[9] = { + -1, + 0x610000, + 0x610001, + 0x610002, + 0x610003, + 0x610004, + 0x610005, + 0x610006, + 0x610007, +}; + +void fn_1_848(omObjData *object) +{ + Vec sp1C; + Vec sp10; + s16 sp8[4]; + float var_f31; + + s32 var_r31; + s32 var_r30; + s32 var_r28; + + switch (lbl_1_bss_3A) { + case 5: + if (lbl_1_bss_36 == -1) { + lbl_1_bss_34 = 0x708; + lbl_1_bss_36 = MGSeqCreate(3, 0); + MGSeqPosSet(lbl_1_bss_36, 320.0f, 240.0f); + } + else if (MGSeqStatGet(lbl_1_bss_36) == 0) { + lbl_1_bss_36 = -1; + lbl_1_bss_3A += 1; + lbl_1_bss_32 = 0; + lbl_1_data_0 = 4; + } + if ((lbl_1_data_68[0] == -1) && ((MGSeqStatGet(lbl_1_bss_36) & 0x10) != 0)) { + lbl_1_data_68[0] = HuAudSeqPlay(0x48); + } + break; + case 6: + var_r30 = 0; + if ((lbl_1_data_0 == 0) && (fn_1_8240() == 0)) { + var_r30++; + } + if (var_r30 != 0) { + lbl_1_bss_3A += 1; + } + break; + case 7: + if (lbl_1_bss_36 == -1) { + lbl_1_bss_36 = MGSeqCreate(3, 1); + MGSeqPosSet(lbl_1_bss_36, 320.0f, 240.0f); + MGSeqKill(lbl_1_bss_38); + HuAudSeqFadeOut(lbl_1_data_68[0], 0x64); + } + else if (MGSeqStatGet(lbl_1_bss_36) == 0) { + lbl_1_bss_36 = -1; + if (lbl_1_bss_2[0] == 0) { + if (lbl_1_data_0 != 0) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (((M453DllWork2 *)lbl_1_bss_3C[var_r31]->data)->unk_07 != 0) { + break; + } + } + sp1C.x = lbl_1_bss_3C[var_r31]->trans.x; + sp1C.y = 100.0f; + sp1C.z = lbl_1_bss_3C[var_r31]->trans.z; + sp10.x = -18.0f; + sp10.y = 0.0f; + sp10.z = 0.0f; + var_f31 = 600.0f; + fn_1_1870(45.0f, &sp1C, &sp10, var_f31); + } + lbl_1_bss_3A = 9; + lbl_1_bss_32 = 0x5A; + } + else { + if ((lbl_1_bss_14 != 0) && (lbl_1_bss_0 >= 0xF)) { + GWGameStat.present[0x31] = 1; + } + if ((lbl_1_bss_14 != 0) && ((s32)GWMGRecordGet(9) < lbl_1_bss_0)) { + GWMGRecordSet(9, lbl_1_bss_0); + lbl_1_bss_3A = 8; + fn_1_924C(1); + } + else { + lbl_1_bss_36 = -1; + lbl_1_bss_3A = 9; + lbl_1_bss_32 = 0x5A; + } + fn_1_6448(); + } + } + break; + case 8: + if (lbl_1_bss_36 == -1) { + lbl_1_bss_36 = MGSeqCreate(0xE, lbl_1_bss_0); + } + else if (MGSeqStatGet(lbl_1_bss_36) == 0) { + lbl_1_bss_36 = -1; + lbl_1_bss_32 = 0x5A; + lbl_1_bss_3A = 9; + } + break; + case 9: + if (--lbl_1_bss_32 == 0) { + lbl_1_bss_3A += 1; + } + break; + case 10: + if (lbl_1_bss_2[0] == 0) { + if (lbl_1_bss_36 == -1) { + if (lbl_1_data_0 == 0) { + lbl_1_bss_36 = MGSeqCreate(3, 2); + HuAudSStreamPlay(4); + } + else { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + sp8[var_r31] = -1; + } + for (var_r31 = 0, var_r28 = 0; var_r31 < 4; var_r31++) { + if (((M453DllWork2 *)lbl_1_bss_3C[var_r31]->data)->unk_07 != 0) { + sp8[var_r28++] = GWPlayerCfg[var_r31].character; + } + } + lbl_1_bss_36 = MGSeqCreate(5, 3, sp8[0], sp8[1], sp8[2], sp8[3]); + HuAudSStreamPlay(1); + } + } + lbl_1_bss_36 = -1; + lbl_1_bss_32 = 0xD2; + lbl_1_bss_3A += 1; + } + else { + if (lbl_1_data_0 != 0) { + HuAudSStreamPlay(1); + } + else { + HuAudSStreamPlay(4); + } + lbl_1_bss_36 = -1; + lbl_1_bss_32 = 0xD2; + lbl_1_bss_3A += 1; + } + break; + case 11: + if (--lbl_1_bss_32 == 0) { + WipeCreate(2, 0, 0x3C); + object->func = fn_1_FFC; + } + break; + } + if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { + WipeCreate(2, 0, 0x3C); + object->func = fn_1_FFC; + } +} + +void fn_1_FFC(omObjData *object) +{ + if (WipeStatGet() == 0) { + fn_1_6748(); + CharModelKill(-1); + MGSeqKill(lbl_1_bss_38); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_105C(omObjData *object) +{ + Hu3DLightAllKill(); + lbl_1_bss_18[0] = Hu3DGLightCreateV(&lbl_1_data_4, &lbl_1_data_10, lbl_1_data_1C); + Hu3DGLightStaticSet(lbl_1_bss_18[0], 1); + Hu3DGLightInfinitytSet(lbl_1_bss_18[0]); + lbl_1_bss_18[1] = Hu3DGLightCreate(0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0, 0, 0); + Hu3DGLightStaticSet(lbl_1_bss_18[1], 1); + Hu3DGLightPointSet(lbl_1_bss_18[1], 0.0f, 0.0f, 3); + Hu3DGLightColorSet(lbl_1_bss_18[0], 0, 0, 0, 0xFF); + Hu3DGLightPosSet(lbl_1_bss_18[1], -1470.0f, 800.0f, -2000.0f, 0.0f, -1.0f, 0.0f); + Hu3DGLightColorSet(lbl_1_bss_18[1], 0, 0, 0, 0xFF); + Hu3DGLightPointSet(lbl_1_bss_18[1], 1200.0f, 0.6f, 3); + object->func = fn_1_1248; +} + +void fn_1_1248(omObjData *object) +{ + s32 var_r30; + + s8 sp11[9] = { 0x01, 0x00, 0x02, 0x01, 0x00, 0x03, 0x02, 0x01, 0x00 }; + s8 sp8[9] = { 0x01, 0x01, 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03 }; + + switch (lbl_1_bss_3A) { + case 0: + break; + case 1: + Hu3DGLightColorSet(lbl_1_bss_18[0], 0xF0, 0xF0, 0xF0, 0xFF); + break; + case 3: + Hu3DGLightColorSet(lbl_1_bss_18[1], 0xFF, 0xE0, 0xD0, 0xFF); + break; + case 5: + object->work[0] = 0x1E; + object->work[1] = 0x11; + lbl_1_bss_8[0] = 1; + break; + case 6: + if (fn_1_8240() == 0) { + if (lbl_1_bss_8[0] == 0) { + lbl_1_bss_8[0] = 0x1E; + lbl_1_bss_0++; + lbl_1_bss_14 = fn_1_63AC(); + if (lbl_1_bss_0 == 0x63) { + lbl_1_bss_3A = 7; + return; + } + } + lbl_1_bss_8[0]--; + if (lbl_1_bss_8[0] == 0) { + var_r30 = (object->work[1] - 2) >> 1; + if (var_r30 < 0) { + var_r30 = 0; + } + fn_1_864C(sp11[var_r30]); + fn_1_7C2C(sp8[var_r30]); + fn_1_7C0C(0.01f * object->work[0]); + object->work[0] += 5; + if (object->work[1] > 2) { + object->work[1] -= 1; + } + } + } + break; + } +} + +void fn_1_14F8(omObjData *object) +{ + M453DllWork *var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M453DllWork), MEMORY_DEFAULT_NUM); + object->data = var_r31; + var_r31->unk_148 = var_r31->unk_144 = 0.0f; + var_r31->unk_140 = 1.0f; + var_r31->unk_10.x = var_r31->unk_28.x = -23.5f; + var_r31->unk_10.y = var_r31->unk_28.y = 0.0f; + var_r31->unk_10.z = var_r31->unk_28.z = 0.0f; + var_r31->unk_04.x = var_r31->unk_1C.x = 0.0f; + var_r31->unk_04.y = var_r31->unk_1C.y = 320.0f; + var_r31->unk_04.z = var_r31->unk_1C.z = 147.0f; + var_r31->unk_130 = var_r31->unk_134 = 1720.0f; + object->func = fn_1_15FC; +} + +void fn_1_15FC(omObjData *object) +{ + float var_f31; + M453DllWork *var_r31 = object->data; + + if (var_r31->unk_148 > 0.0f) { + var_r31->unk_148 = var_r31->unk_148 - var_r31->unk_140; + var_f31 = (var_r31->unk_144 - var_r31->unk_148) / var_r31->unk_144; + var_f31 = sind((90.0f * var_f31)); + if (var_r31->unk_00 == 0) { + var_r31->unk_04.x = var_r31->unk_1C.x + (var_f31 * (var_r31->unk_34.x - var_r31->unk_1C.x)); + var_r31->unk_04.y = var_r31->unk_1C.y + (var_f31 * (var_r31->unk_34.y - var_r31->unk_1C.y)); + var_r31->unk_04.z = var_r31->unk_1C.z + (var_f31 * (var_r31->unk_34.z - var_r31->unk_1C.z)); + var_r31->unk_10.x = var_r31->unk_28.x + (var_f31 * (var_r31->unk_40.x - var_r31->unk_28.x)); + var_r31->unk_10.y = var_r31->unk_28.y + (var_f31 * (var_r31->unk_40.y - var_r31->unk_28.y)); + var_r31->unk_10.z = var_r31->unk_28.z + (var_f31 * (var_r31->unk_40.z - var_r31->unk_28.z)); + var_r31->unk_130 = var_r31->unk_134 + (var_f31 * (var_r31->unk_138 - var_r31->unk_134)); + } + else { + fn_1_5670(2.0f * var_f31, (float *)&var_r31->unk_04, var_r31->unk_F4, (float(*)[3])var_r31->unk_64, (float(*)[3])var_r31->unk_88, 3); + fn_1_5670(2.0f * var_f31, (float *)&var_r31->unk_10, var_r31->unk_100, (float(*)[3])var_r31->unk_AC, (float(*)[3])var_r31->unk_D0, 3); + var_r31->unk_130 = fn_1_513C(2.0f * var_f31, var_r31->unk_124, var_r31->unk_10C, var_r31->unk_118, 3); + } + } + CRot.x = var_r31->unk_10.x; + CRot.y = var_r31->unk_10.y; + CRot.z = var_r31->unk_10.z; + Center.x = var_r31->unk_04.x; + Center.y = var_r31->unk_04.y; + Center.z = var_r31->unk_04.z; + CZoom = var_r31->unk_130; +} + +void fn_1_1870(float arg8, Vec *arg0, Vec *arg1, float arg9) +{ + M453DllWork *var_r31; + + var_r31 = lbl_1_bss_50->data; + var_r31->unk_00 = 0; + var_r31->unk_144 = arg8; + var_r31->unk_148 = arg8; + var_r31->unk_1C = var_r31->unk_04; + var_r31->unk_34.x = arg0->x; + var_r31->unk_34.y = arg0->y; + var_r31->unk_34.z = arg0->z; + var_r31->unk_28 = var_r31->unk_10; + var_r31->unk_40.x = arg1->x; + var_r31->unk_40.y = arg1->y; + var_r31->unk_40.z = arg1->z; + var_r31->unk_134 = var_r31->unk_130; + var_r31->unk_138 = arg9; +} + +void fn_1_1910(float arg8, Vec *arg0, Vec *arg1, float arg9, Vec *arg2, Vec *arg3, float argA) +{ + float var_f31; + float var_f30; + M453DllWork *var_r31 = lbl_1_bss_50->data; + + var_r31->unk_00 = 1; + var_r31->unk_148 = var_r31->unk_144 = arg8; + var_r31->unk_1C = var_r31->unk_04; + var_r31->unk_34.x = arg0->x; + var_r31->unk_34.y = arg0->y; + var_r31->unk_34.z = arg0->z; + var_r31->unk_4C.x = arg2->x; + var_r31->unk_4C.y = arg2->y; + var_r31->unk_4C.z = arg2->z; + var_r31->unk_28 = var_r31->unk_10; + var_r31->unk_40.x = arg1->x; + var_r31->unk_40.y = arg1->y; + var_r31->unk_40.z = arg1->z; + var_r31->unk_58.x = arg3->x; + var_r31->unk_58.y = arg3->y; + var_r31->unk_58.z = arg3->z; + var_r31->unk_134 = var_r31->unk_130; + var_r31->unk_138 = arg9; + var_r31->unk_13C = argA; + var_r31->unk_64[0] = var_r31->unk_1C; + var_r31->unk_64[1] = var_r31->unk_4C; + var_r31->unk_64[2] = var_r31->unk_34; + var_r31->unk_AC[0] = var_r31->unk_28; + var_r31->unk_AC[1] = var_r31->unk_58; + var_r31->unk_AC[2] = var_r31->unk_40; + var_r31->unk_10C[0] = var_r31->unk_134; + var_r31->unk_10C[1] = var_r31->unk_13C; + var_r31->unk_10C[2] = var_r31->unk_138; + var_r31->unk_124[0] = 0.0f; + if ((var_r31->unk_10C[1] - var_r31->unk_10C[0]) < 0.0f) { + var_f31 = -(var_r31->unk_10C[1] - var_r31->unk_10C[0]); + } + else { + var_f31 = var_r31->unk_10C[1] - var_r31->unk_10C[0]; + } + var_r31->unk_124[1] = var_f31; + if ((var_r31->unk_10C[2] - var_r31->unk_10C[1]) < 0.0f) { + var_f30 = -(var_r31->unk_10C[2] - var_r31->unk_10C[1]); + } + else { + var_f30 = var_r31->unk_10C[2] - var_r31->unk_10C[1]; + } + var_r31->unk_124[2] = var_r31->unk_124[1] + var_f30; + fn_1_5290(var_r31->unk_F4, (float(*)[3])var_r31->unk_64, (float(*)[3])var_r31->unk_88, 3); + fn_1_5290(var_r31->unk_100, (float(*)[3])var_r31->unk_AC, (float(*)[3])var_r31->unk_D0, 3); + fn_1_4E84(var_r31->unk_124, var_r31->unk_10C, var_r31->unk_118, 3); +} + +void fn_1_1BC8(float arg8) +{ + M453DllWork *var_r31 = lbl_1_bss_50->data; + var_r31->unk_140 = arg8; +} + +s32 lbl_1_data_C4[8] = { 0, 2, 3, 8, 0xA, 9, 0x17, 0x18 }; + +Vec lbl_1_data_E4[4] = { + { -300.0f, 2200.0f, 0.0f }, + { -100.0f, 2200.0f, 0.0f }, + { 100.0f, 2200.0f, 0.0f }, + { 300.0f, 2200.0f, 0.0f }, +}; + +void fn_1_1BF0(omObjData *object) +{ + M453DllWork2 *var_r31; + s32 var_r29; + s32 var_r28; + u32 var_r27; + + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M453DllWork2), MEMORY_DEFAULT_NUM); + object->data = var_r31; + var_r31->unk_00 = object->work[0]; + var_r31->unk_01 = GWPlayerCfg[var_r31->unk_00].character; + var_r31->unk_02 = var_r31->unk_00 >> 1; + var_r31->unk_03 = var_r31->unk_00 & 1; + var_r31->unk_04 = GWPlayerCfg[var_r31->unk_00].pad_idx; + var_r31->unk_05 = GWPlayerCfg[var_r31->unk_00].iscom; + var_r31->unk_06 = GWPlayerCfg[var_r31->unk_00].diff; + var_r31->unk_18 = var_r31->unk_1A = 0; + var_r31->unk_07 = 1; + var_r31->unk_0C = 1; + var_r31->unk_0D = 0; + var_r31->unk_0E = 0; + var_r31->unk_0A = 0; + var_r31->unk_9C = 0; + var_r27 = object->work[1]; + var_r31->unk_2C.x = lbl_1_data_E4[var_r27].x; + var_r31->unk_2C.y = lbl_1_data_E4[var_r27].y + (100.0f * ((fn_1_43B8() - 0x8000) / 32768.0f)); + var_r31->unk_2C.z = lbl_1_data_E4[var_r27].z; + var_r31->unk_44 = var_r31->unk_48 = var_r31->unk_4C = 0.0f; + var_r31->unk_38.x = var_r31->unk_38.y = var_r31->unk_38.z = 0.0f; + var_r31->unk_20 = var_r31->unk_38.y; + var_r31->unk_24 = 0.0f; + var_r31->unk_1C = 0.0f; + var_r31->unk_28 = 1.0f; + memset(&var_r31->unk_5C, 0, sizeof(M453DllUnkStruct)); + var_r31->unk_A0 = 1; + if ((lbl_1_bss_2[0] != 0) && (var_r31->unk_05 == 0)) { + lbl_1_bss_1E[lbl_1_bss_1C++] = var_r31->unk_00; + } + var_r28 = CharModelCreate(var_r31->unk_01, 4); + object->model[0] = var_r28; + Hu3DModelAttrSet(var_r28, 0x40000001); + Hu3DModelShadowSet(var_r28); + for (var_r29 = 0; var_r29 < 8; var_r29++) { + object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_01, lbl_1_data_C4[var_r29]); + } + CharModelMotionDataClose(var_r31->unk_01); + CharModelMotionSet(var_r31->unk_01, object->motion[var_r31->unk_18]); + omSetTra(object, var_r31->unk_2C.x, var_r31->unk_2C.y, var_r31->unk_2C.z); + Hu3DModelPosSet(var_r28, var_r31->unk_2C.x, var_r31->unk_2C.y, var_r31->unk_2C.z); + Hu3DModelRotSet(var_r28, 0.0f, 30.0f, 0.0f); + CharModelStepTypeSet(var_r31->unk_01, 1); + CharModelVoiceEnableSet(var_r31->unk_01, object->motion[3], 0); + object->func = fn_1_1FA0; +} + +void fn_1_1FA0(omObjData *object) +{ + s32 sp8 = *object->model; + M453DllWork2 *var_r31 = object->data; + var_r31->unk_10 = var_r31->unk_12 = 0; + var_r31->unk_14 = var_r31->unk_16 = 0; + switch (lbl_1_bss_3A) { + case 3: + break; + case 2: + if (!(lbl_1_bss_32 < 60.0f)) { + case 1: + var_r31->unk_18 = 3; + var_r31->unk_48 = 0.0f; + var_r31->unk_0C = 0; + } + break; + case 5: + object->func = fn_1_20EC; + break; + } + if (var_r31->unk_2C.y < 10.0f) { + omVibrate(var_r31->unk_00, 0xC, 6, 6); + var_r31->unk_2C.y = 10.0f; + var_r31->unk_0C = 1; + } + fn_1_2E24(object); +} + +void fn_1_20EC(omObjData *object) +{ + M453DllWork2 *var_r31; + s32 var_r29; + s32 var_r28; + + var_r29 = object->model[0]; + var_r31 = object->data; + if (var_r31->unk_07 != 0) { + if ((lbl_1_bss_3A == 6) && ((var_r31->unk_07 & 2) == 0)) { + if (var_r31->unk_05 != 0) { + fn_1_23E0(object); + } + else { + var_r31->unk_10 = HuPadStkX[var_r31->unk_04]; + var_r31->unk_12 = HuPadStkY[var_r31->unk_04]; + var_r31->unk_14 = HuPadBtnDown[var_r31->unk_04]; + var_r31->unk_16 = HuPadBtn[var_r31->unk_04]; + } + } + else { + var_r31->unk_10 = var_r31->unk_12 = 0; + var_r31->unk_14 = var_r31->unk_16 = 0; + } + switch (lbl_1_bss_3A) { + case 5: + case 6: + case 8: + break; + case 7: + case 9: + object->scale.y += 0.2f * (1.0f - object->scale.y); + var_r31->unk_38.y = fn_1_440C(var_r31->unk_38.y, 0.0f, 0.9f); + break; + case 10: + if (var_r31->unk_18 != 6) { + var_r31->unk_18 = 6; + } + break; + } + if ((var_r31->unk_07 & 2) != 0) { + var_r31->unk_10 = var_r31->unk_12 = 0; + var_r31->unk_14 = var_r31->unk_16 = 0; + if (object->scale.y < 0.2f) { + omVibrate(var_r31->unk_00, 0xC, 4, 2); + HuAudFXPlay(0x523); + var_r31->unk_07 = 0; + Hu3DModelShadowReset(var_r29); + Hu3DModelAttrSet(var_r29, 1); + lbl_1_data_0--; + var_r28 = fn_1_3E9C(0x220013, 0x64, fn_1_3F38); + Hu3DModelPosSet(var_r28, var_r31->unk_2C.x, var_r31->unk_2C.y, var_r31->unk_2C.z); + Hu3DModelLayerSet(var_r28, 2); + } + } + if (fn_1_8240() != 0) { + var_r31->unk_A0 = 0; + } + else if (((var_r31->unk_07 & 2) == 0) && (var_r31->unk_A0 == 0)) { + omVibrate(var_r31->unk_00, 0xC, 6, 6); + var_r31->unk_A0 = 1; + } + fn_1_2E24(object); + } +} + +void fn_1_23E0(omObjData *object) +{ + Vec sp38[6]; + float sp20[6]; + Vec sp14; + Vec sp8; + + float var_f31; + float var_f30; + float var_f29; + float var_f28; + + M453DllWork2 *var_r31; + s32 var_r30; + s32 var_r29; + s16 var_r28; + s16 var_r27; + s16 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s16 var_r21; + s16 var_r20; + + var_r22 = 0; + var_r30 = 0; + var_r29 = 0; + for (; var_r30 < 4; var_r30++) { + var_r31 = lbl_1_bss_3C[var_r30]->data; + if ((var_r31->unk_05 == 0) && (var_r31->unk_07 != 0)) { + break; + } + } + var_r31 = object->data; + if ((var_r30 >= 4) && (var_r31->unk_9C == 0)) { + var_r22 = 1; + } + var_r28 = var_r31->unk_06; + var_r27 = var_r26 = var_r21 = var_r20 = 0; + switch (var_r31->unk_5C.unk_00) { + case 0: + if (fn_1_8240() != 0) { + var_r31->unk_5C.unk_00 = 1; + } + break; + case 1: + var_r31->unk_5C.unk_00 = 2; + var_r31->unk_5C.unk_02 = (s32)(60.0f * (1.2f - (0.2f * var_r28)) * (fn_1_43B8() / 65536.0f)); + var_r31->unk_5C.unk_04 = 500.0f * ((fn_1_43B8() - 0x8000) / 32768.0f); + var_r31->unk_5C.unk_08 = 200.0f * ((fn_1_43B8() - 0x8000) / 32768.0f); + var_r27 = var_r31->unk_10; + var_r26 = var_r31->unk_12; + break; + case 2: + sp8.x = var_r31->unk_5C.unk_04 - var_r31->unk_2C.x; + sp8.y = 0.0f; + sp8.z = var_r31->unk_5C.unk_08 - var_r31->unk_2C.z; + var_f31 = fn_1_5884(&sp8); + if (var_f31 < 20.0f) { + var_r31->unk_5C.unk_00 = 3; + } + else { + if (var_f31 >= 100.0f) { + var_f28 = 0.8f; + } + else { + var_f28 = 0.4f; + } + var_f30 = fn_1_440C(var_r31->unk_38.y, atan2d(sp8.x, sp8.z), var_f28); + var_f29 = 48.0f + (4.0f * var_r28); + var_r27 = var_f29 * sind(var_f30); + var_r26 = var_f29 * -cosd(var_f30); + if (fn_1_8240() == 0) { + var_r31->unk_5C.unk_00 = 0; + if (var_r31->unk_5C.unk_02 == 0) { + var_r31->unk_5C.unk_02 = -1; + } + } + else if (var_r31->unk_5C.unk_02 >= 0) { + if (var_r31->unk_5C.unk_02 == 0) { + if ((var_f31 < 150.0f) && (var_r31->unk_0E != 0)) { + var_r31->unk_5C.unk_00 = 3; + } + else if (((s32)((var_r28 + 2) * (fn_1_43B8() / 65536.0f)) != 0) && (var_r22 == 0)) { + var_r31->unk_5C.unk_00 = 4; + } + else { + var_r31->unk_5C.unk_00 = 1; + } + } + else { + var_r31->unk_5C.unk_02--; + } + } + } + break; + case 3: + sp8.x = var_r31->unk_5C.unk_04 - var_r31->unk_2C.x; + sp8.y = 0.0f; + sp8.z = var_r31->unk_5C.unk_08 - var_r31->unk_2C.z; + if ((fn_1_5884(&sp8) >= 30.000002f) && (var_r31->unk_0E == 0)) { + var_r31->unk_5C.unk_00 = 2; + } + else if (fn_1_8240() == 0) { + var_r31->unk_5C.unk_00 = 0; + } + else { + if (var_r31->unk_5C.unk_02 > 0) { + var_r31->unk_5C.unk_02--; + } + if (var_r31->unk_5C.unk_02 == 0) { + if (((s32)((var_r28 + 2) * (fn_1_43B8() / 65536.0f)) != 0) && (var_r22 == 0)) { + var_r31->unk_5C.unk_00 = 4; + } + else { + var_r31->unk_5C.unk_00 = 1; + } + } + } + break; + case 4: + var_r24 = fn_1_82AC(sp38); + for (var_r30 = 0; var_r30 < var_r24; var_r30++) { + PSVECSubtract(&sp38[var_r30], &var_r31->unk_2C, &sp8); + sp20[var_r30] = PSVECMag(&sp8); + } + for (var_r30 = 0; var_r30 < (var_r24 - 1); var_r30++) { + for (var_r29 = var_r30 + 1; var_r29 < var_r24; var_r29++) { + if (sp20[var_r30] > sp20[var_r29]) { + sp14 = sp38[var_r30]; + sp38[var_r30] = sp38[var_r29]; + sp38[var_r29] = sp14; + var_f31 = sp20[var_r30]; + sp20[var_r30] = sp20[var_r29]; + sp20[var_r29] = var_f31; + } + } + } + var_r25 = 0x3E8; + var_r23 = var_r25 * (fn_1_43B8() / 65536.0f); + for (var_r30 = 0; var_r30 < (var_r24 - 1); var_r30++) { + var_r25 = 0.1f * (var_r25 * (5.0f + var_r28)); + var_r23 -= var_r25; + if (var_r23 < 0) { + break; + } + } + var_r31->unk_5C.unk_04 = sp38[var_r30].x + (100.0f * (0.5f - (0.15f * var_r28)) * ((fn_1_43B8() - 0x8000) / 32768.0f)); + var_r31->unk_5C.unk_08 = sp38[var_r30].z + (100.0f * (0.5f - (0.15f * var_r28)) * ((fn_1_43B8() - 0x8000) / 32768.0f)); + var_r31->unk_5C.unk_00 = 2; + var_r31->unk_5C.unk_02 = -1; + var_r27 = var_r31->unk_10; + var_r26 = var_r31->unk_12; + break; + } + var_r31->unk_10 = var_r27; + var_r31->unk_12 = var_r26; + var_r31->unk_14 = var_r21; + var_r31->unk_16 = var_r20; +} + +void fn_1_2E24(omObjData *object) +{ + s16 spA; + s16 sp8; + float var_f29; + + M453DllWork2 *var_r31; + s16 var_r30; + s16 var_r29; + s16 var_r28; + s16 var_r27; + s32 var_r25; + + var_r31 = object->data; + var_r25 = object->model[0]; + var_r28 = var_r31->unk_18; + var_r31->unk_50 = var_r31->unk_2C; + var_r30 = var_r31->unk_10; + var_r29 = var_r31->unk_12; + spA = var_r31->unk_14; + sp8 = var_r31->unk_16; + switch (var_r31->unk_18) { + case 0: + case 1: + case 2: + var_r31->unk_1C = 0.14f * sqrtf((var_r30 * var_r30) + (var_r29 * var_r29)); + if (var_r31->unk_1C > 0.1f) { + if (var_r31->unk_1C >= 6.0f) { + var_r28 = 2; + var_r27 = 1; + } + else { + var_r28 = 1; + var_r27 = 1; + } + var_f29 = atan2d(var_r30, -var_r29); + var_r31->unk_38.y = fn_1_440C(var_r31->unk_38.y, var_f29, 0.5f); + var_r31->unk_20 = var_r31->unk_38.y; + var_r31->unk_24 += 1.0f; + if (var_r31->unk_24 >= (0.5f * var_r31->unk_28)) { + var_r31->unk_24 = var_r31->unk_24 - (0.5f * var_r31->unk_28); + } + var_r31->unk_1C = var_r31->unk_1C * (1.0 + (0.25 * cosd((90.0f * (var_r31->unk_24 / (0.5f * var_r31->unk_28)))))); + } + else { + var_r31->unk_24 = 0.0f; + var_r31->unk_1C = 0.0f; + var_r28 = 0; + var_r27 = 1; + } + var_r31->unk_48 = -2.4333334f; + break; + case 3: + var_r27 = 0; + if ((Hu3DData[var_r25].unk_0C == -1) && (CharModelMotionEndCheck(var_r31->unk_01) != 0)) { + var_r31->unk_48 += -2.4333334f; + } + else { + var_r31->unk_48 = 0.0f; + } + if (var_r31->unk_0C != 0) { + if (var_r31->unk_0D != 0) { + var_r31->unk_48 = 0.0f; + var_r31->unk_0D = 0; + var_r28 = 5; + var_r27 = 0; + } + else { + var_r31->unk_48 *= -0.1f; + var_r31->unk_0C = 0; + var_r28 = 4; + var_r27 = 0; + } + } + break; + case 4: + var_r31->unk_48 += -2.4333334f; + if ((var_r31->unk_0C != 0) && (CharModelMotionEndCheck(var_r31->unk_01) != 0)) { + var_r28 = 5; + var_r27 = 0; + } + break; + case 5: + if (CharModelMotionEndCheck(var_r31->unk_01) != 0) { + var_r28 = 0; + var_r27 = 1; + } + break; + case 6: + case 7: + var_r27 = 0; + var_r31->unk_48 = -2.4333334f; + break; + } + if (var_r31->unk_07 & 4) { + if (var_r31->unk_0A & 2) { + Hu3DModelAttrSet(var_r25, 1); + } + else { + Hu3DModelAttrReset(var_r25, 1); + } + if (--var_r31->unk_0A == 0) { + var_r31->unk_07 = var_r31->unk_07 & 0xFFFFFFFB; + } + } + var_r31->unk_44 = var_r31->unk_1C * sind(var_r31->unk_20); + var_r31->unk_4C = var_r31->unk_1C * cosd(var_r31->unk_20); + var_r31->unk_2C.x += var_r31->unk_44; + if (var_r31->unk_0C == 0) { + var_r31->unk_2C.y = var_r31->unk_2C.y + var_r31->unk_48; + } + var_r31->unk_2C.z += var_r31->unk_4C; + if (var_r28 != var_r31->unk_1A) { + var_r31->unk_1A = var_r28; + var_r31->unk_18 = var_r28; + CharModelMotionShiftSet(var_r31->unk_01, object->motion[var_r31->unk_18], 0.0f, 8.0f, var_r27); + var_r31->unk_28 = CharModelMotionMaxTimeGet(var_r31->unk_01); + } + omSetTra(object, var_r31->unk_2C.x, var_r31->unk_2C.y, var_r31->unk_2C.z); + omSetRot(object, var_r31->unk_38.x, var_r31->unk_38.y, var_r31->unk_38.z); +} + +void fn_1_3648(void) +{ + s32 var_r31; + M453DllWork2 *var_r30; + s32 var_r29; + + var_r29 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = lbl_1_bss_3C[var_r31]->data; + if (var_r30->unk_07 != 0) { + var_r30->unk_0E = 0; + } + } + while ((fn_1_36DC() != 0) && (var_r29 < 0x32)) { + var_r29++; + } +} + +s32 fn_1_36DC(void) +{ + Vec sp14[4]; + Vec sp8; + float var_f30; + float var_f31; + + M453DllWork2 *var_r31; + s32 var_r30; + s32 var_r29; + M453DllWork2 *var_r28; + M453DllWork2 *var_r27; + s32 var_r26; + omObjData *var_r25; + + var_r26 = 0; + for (var_r30 = 0; var_r30 < 4; var_r30++) { + sp14[var_r30].x = sp14[var_r30].y = sp14[var_r30].z = 0.0f; + } + for (var_r30 = 0; var_r30 < 3; var_r30++) { + var_r28 = lbl_1_bss_3C[var_r30]->data; + if (var_r28->unk_07 != 0) { + for (var_r29 = var_r30 + 1; var_r29 < 4; var_r29++) { + var_r27 = lbl_1_bss_3C[var_r29]->data; + if (var_r27->unk_07 != 0) { + PSVECSubtract(&var_r28->unk_2C, &var_r27->unk_2C, &sp8); + var_f31 = PSVECMag(&sp8); + if (var_f31 < 80.0f) { + PSVECNormalize(&sp8, &sp8); + var_f30 = 0.0001f + (0.5f * (80.0f - var_f31)); + PSVECScale(&sp8, &sp8, var_f30); + PSVECAdd(&sp14[var_r30], &sp8, &sp14[var_r30]); + PSVECSubtract(&sp14[var_r29], &sp8, &sp14[var_r29]); + var_r28->unk_0E++; + var_r27->unk_0E++; + var_r26++; + } + } + } + } + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r25 = lbl_1_bss_3C[var_r30]; + var_r31 = var_r25->data; + if (var_r31->unk_07 != 0) { + PSVECAdd(&var_r31->unk_2C, &sp14[var_r30], &var_r31->unk_2C); + if (var_r31->unk_2C.x > 660.0f) { + var_r31->unk_2C.x = 660.0f; + } + if (var_r31->unk_2C.x < -660.0f) { + var_r31->unk_2C.x = -660.0f; + } + if (var_r31->unk_2C.z > 360.0f) { + var_r31->unk_2C.z = 360.0f; + } + if (var_r31->unk_2C.z < -360.0f) { + var_r31->unk_2C.z = -360.0f; + } + omSetTra(var_r25, var_r31->unk_2C.x, var_r31->unk_2C.y, var_r31->unk_2C.z); + } + } + return var_r26; +} + +void fn_1_39C8(omObjData *object) +{ + s32 sp8[4]; + + s32 var_r31; + s32 var_r30; + M453DllWork2 *var_r29; + s32 var_r28; + s32 var_r27; + + if (lbl_1_bss_3A >= 6) { + if (fn_1_8240() != 0) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_3C94(lbl_1_bss_3C[var_r31]); + } + } + else { + for (var_r31 = 0, var_r30 = 0; var_r31 < 4; var_r31++) { + ((M453DllWork2 *)lbl_1_bss_3C[var_r31]->data)->unk_9C = 0; + if (((M453DllWork2 *)lbl_1_bss_3C[var_r31]->data)->unk_07 != 0) { + sp8[var_r30++] = var_r31; + } + } + if (var_r30 != 0) { + var_r31 = sp8[(s32)(var_r30 * (fn_1_43B8() / 65536.0f))]; + ((M453DllWork2 *)lbl_1_bss_3C[var_r31]->data)->unk_9C = 1; + } + } + var_r27 = 0; + for (var_r28 = 0; var_r28 < 4; var_r28++) { + var_r29 = lbl_1_bss_3C[var_r28]->data; + if (var_r29->unk_07 != 0) { + var_r29->unk_0E = 0; + } + } + while ((fn_1_36DC() != 0) && (var_r27 < 0x32)) { + var_r27++; + } + } +} + +void fn_1_3BB4(Vec *arg0, Vec *arg1) +{ + Vec sp18[6]; + Vec spC; + float var_f31; + float var_f30; + + s32 var_r31; + s32 var_r30; + + var_r30 = fn_1_844C(sp18); + var_f31 = 2000.0f; + for (var_r31 = 0; var_r31 < var_r30; var_r31++) { + PSVECSubtract(&sp18[var_r31], arg0, &spC); + var_f30 = PSVECMag(&spC); + if (!(var_f30 >= var_f31)) { + var_f31 = var_f30; + *arg1 = sp18[var_r31]; + } + } +} + +float lbl_1_data_114[8] = { 40.0f, 40.0f, 40.0f, 40.0f, 40.0f, 100.0f, 40.0f, 80.0f }; + +float lbl_1_data_134[8] = { 160.0f, 160.0f, 180.0f, 160.0f, 160.0f, 180.0f, 180.0f, 200.0f }; + +void fn_1_3C94(omObjData *object) +{ + Vec sp8; + float var_f31; + float var_f30; + + M453DllWork2 *var_r31; + s32 var_r29; + s16 var_r28; + + var_r31 = object->data; + if (var_r31->unk_07 != 0) { + var_f30 = fn_1_80B0(&var_r31->unk_2C, lbl_1_data_114[var_r31->unk_01]) - 10.0f; + if (var_f30 < 0.0f) { + var_f30 = 0.0f; + } + if ((var_r31->unk_07 & 2) == 0) { + var_f31 = 1.0f; + if (var_f30 < lbl_1_data_134[var_r31->unk_01]) { + if (fn_1_867C(&var_r31->unk_2C, &sp8) != 0) { + var_r31->unk_2C.x = sp8.x; + var_r31->unk_2C.z = sp8.z; + } + else { + if ((fn_1_7F54(var_r31->unk_2C.x, var_r31->unk_2C.z) - 10.0f) < 100.0f) { + var_r31->unk_07 = var_r31->unk_07 | 2; + var_r28 = lbl_1_bss_0; + var_r29 = var_r31->unk_00; + GWPlayerCoinWinSet(var_r29, var_r28); + } + var_f31 = var_f30 / lbl_1_data_134[var_r31->unk_01]; + } + } + } + else { + var_f31 = var_f30 / lbl_1_data_134[var_r31->unk_01]; + } + if (object->scale.y < var_f31) { + var_f31 = object->scale.y + (0.2f * (var_f31 - object->scale.y)); + } + object->scale.y = var_f31; + } +} + +s16 fn_1_3E9C(s32 arg0, s16 arg1, ParticleHook arg2) +{ + ParticleData *var_r31; + s32 var_r30; + AnimData *var_r29; + + var_r29 = HuSprAnimRead(HuDataReadNum(arg0, 0x10000000)); + var_r30 = Hu3DParticleCreate(var_r29, arg1); + Hu3DParticleHookSet(var_r30, arg2); + var_r31 = Hu3DData[var_r30].unk_120; + var_r31->unk_2E = var_r30; + var_r31->unk_00 = var_r31->unk_02 = 0; + return var_r30; +} + +void fn_1_3F38(ModelData *model, ParticleData *particle, Mtx matrix) +{ + s16 sp8 = 0; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + + HsfanimStruct01 *var_r31; + s32 var_r29; + + switch (particle->unk_00) { + case 0: + var_f29 = 360.0f / particle->unk_30; + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + var_r31->unk08.x = sind((var_f29 * var_r29)) * (1.0f + (0.1f * (6.0f * ((fn_1_43B8() - 0x8000) / 32768.0f)))); + var_r31->unk08.y = 0.0f; + var_r31->unk08.z = cosd((var_f29 * var_r29)) * (1.0f + (0.1f * (6.0f * ((fn_1_43B8() - 0x8000) / 32768.0f)))); + var_r31->unk34.x = 0.0f; + var_r31->unk34.y = 0.0f; + var_r31->unk34.z = 0.0f; + } + particle->unk_02 = 0x1E; + particle->unk_00++; + case 1: + particle->unk_02--; + var_f31 = (30.0f - particle->unk_02) / 30.0f; + var_f30 = particle->unk_02 / 30.0f; + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + var_r31->unk34.x += 5.0f * var_f30 * var_r31->unk08.x; + var_r31->unk34.y = 20.0f; + var_r31->unk34.z += 5.0f * var_f30 * var_r31->unk08.z; + var_r31->unk2C = 20.0f + (60.0f * var_f31); + var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = 0xFF; + var_r31->unk40.a = 64.0f * (1.0f - (var_f31 * var_f31)); + } + if (particle->unk_02 == 0) { + particle->unk_00++; + } + break; + case 2: + Hu3DModelKill(particle->unk_2E); + return; + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); +} + +u32 lbl_1_data_154 = 0x41C64E6D; + +s32 fn_1_43B8(void) +{ + lbl_1_data_154 *= 0x41C64E6D; + lbl_1_data_154 += 0x3039; + return lbl_1_data_154 >> 0x10; +} + +float fn_1_440C(float arg8, float arg9, float argA) +{ + float var_f31; + + if (arg8 > 180.0f) { + arg8 -= 360.0f; + } + else if (arg8 <= -180.0f) { + arg8 += 360.0f; + } + if (arg9 > 180.0f) { + arg9 -= 360.0f; + } + else if (arg9 <= -180.0f) { + arg9 += 360.0f; + } + var_f31 = arg8 - arg9; + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + else if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } + arg8 = arg9 + (var_f31 * argA); + if (arg8 > 180.0f) { + return arg8 - 360.0f; + } + if (arg8 <= -180.0f) { + arg8 += 360.0f; + } + return arg8; +} + +void fn_1_4574(Mtx arg0, float arg8, float arg9, float argA) +{ + Mtx sp38; + Mtx sp8; + if (argA != 0.0f) { + PSMTXRotRad(arg0, 0x5A, 0.017453292f * argA); + } + else { + PSMTXIdentity(arg0); + } + if (arg8 != 0.0f) { + PSMTXRotRad(sp38, 0x58, 0.017453292f * arg8); + PSMTXConcat(sp38, arg0, arg0); + } + if (arg9 != 0.0f) { + PSMTXRotRad(sp8, 0x59, 0.017453292f * arg9); + PSMTXConcat(sp8, arg0, arg0); + } +} +// TODO figue out type of arg0 +void fn_1_4694(float *arg0, Vec *arg1) +{ + float var_f29; + float var_f28; + + arg1->x = atan2d(arg0[10], arg0[6]); + arg1->z = atan2d(arg0[0], arg0[1]); + var_f29 = -arg0[2]; + var_f28 = sqrtf((1.0 - (var_f29 * var_f29)) < 0.0 ? -(1.0 - (var_f29 * var_f29)) : 1.0 - (var_f29 * var_f29)); + if ((arg1->x > 90.0f) && (arg1->x < 270.0f) && (arg1->z > 90.0f) && (arg1->z < 270.0f)) { + arg1->x = fmod(180.0f + arg1->x, 360.0); + arg1->z = fmod(180.0f + arg1->z, 360.0); + var_f28 = -var_f28; + } + arg1->y = atan2d(var_f28, var_f29); +} + +float fn_1_49A0(float arg8, float arg9, float argA, float argB) +{ + float var_f31; + float var_f30; + + var_f31 = 1.0 - arg8; + var_f30 = (argB * (arg8 * arg8)) + ((arg9 * (var_f31 * var_f31)) + (2.0 * (argA * (var_f31 * arg8)))); + return var_f30; +} + +void fn_1_4A18(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) +{ + s32 i; + + for (i = 0; i < 3; i++) { + *arg3 = fn_1_49A0(arg8, *arg0++, *arg1++, *arg2++); + arg3++; + } +} + +float fn_1_4B34(float arg8, float arg9, float argA, float argB) +{ + float var_f31 = 2.0 * ((arg8 * argB) + (((arg8 - 1.0) * arg9) + ((1.0 - (2.0 * arg8)) * argA))); + return var_f31; +} + +void fn_1_4BAC(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) +{ + float spC[3]; + float sp8; + float var_f31; + float var_f30; + float var_f28; + float var_f29; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + spC[var_r31] = fn_1_4B34(arg8, *arg0++, *arg1++, *arg2++); + } + + var_f30 = (spC[2] * spC[2]) + ((spC[0] * spC[0]) + (spC[1] * spC[1])); + var_f29 = sqrtf(var_f30); + if (var_f29) { + var_f29 = 1.0 / var_f29; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *arg3 = var_f29 * spC[var_r31]; + arg3++; + } + return; + } + *arg3++ = 0.0f; + *arg3++ = 0.0f; + *arg3++ = 1.0f; +} + +void fn_1_4E84(float *arg0, float *arg1, float *arg2, s32 arg3) +{ + float sp48[16]; + float sp8[16]; + double var_f31; + + s32 var_r31; + + arg2[0] = 0.0f; + arg2[arg3 - 1] = 0.0f; + for (var_r31 = 0; var_r31 < (arg3 - 1); var_r31++) { + sp48[var_r31] = arg0[var_r31 + 1] - arg0[var_r31]; + if (sp48[var_r31] == 0.0f) { + sp8[var_r31 + 1] = 0.0f; + } + else { + sp8[var_r31 + 1] = (arg1[var_r31 + 1] - arg1[var_r31]) / sp48[var_r31]; + } + } + arg2[1] = sp8[2] - sp8[1]; + sp8[1] = 2.0f * (arg0[2] - arg0[0]); + for (var_r31 = 1; var_r31 < (arg3 - 2); var_r31++) { + var_f31 = sp48[var_r31] / sp8[var_r31]; + arg2[var_r31 + 1] = (sp8[var_r31 + 2] - sp8[var_r31 + 1]) - (var_f31 * arg2[var_r31]); + sp8[var_r31 + 1] = (2.0f * (arg0[var_r31 + 2] - arg0[var_r31])) - (var_f31 * sp48[var_r31]); + } + arg2[arg3 - 2] -= sp48[arg3 - 2] * arg2[arg3 - 1]; + for (var_r31 = arg3 - 2; var_r31 > 0; var_r31--) { + if (sp8[var_r31] == 0.0f) { + arg2[var_r31] = 0.0f; + } + else { + arg2[var_r31] = (arg2[var_r31] - (sp48[var_r31] * arg2[var_r31 + 1])) / sp8[var_r31]; + } + } +} + +float fn_1_513C(float arg8, float *arg0, float *arg1, float *arg2, s32 arg3) +{ + float var_f31; + float var_f30; + float var_f29; + + s32 var_r31 = arg8; + arg8 = arg8 - var_r31; + var_f31 = arg0[var_r31 + 1] - arg0[var_r31]; + var_f30 = var_f31 * arg8; + var_f29 = arg1[var_r31] + + (var_f30 + * ((var_f30 * ((3.0f * arg2[var_r31]) + ((var_f30 * (arg2[var_r31 + 1] - arg2[var_r31])) / var_f31))) + + (((arg1[var_r31 + 1] - arg1[var_r31]) / var_f31) - (var_f31 * ((2.0f * arg2[var_r31]) + arg2[var_r31 + 1]))))); + if (var_f31 == 0.0f) { + var_f29 = arg1[var_r31]; + } + return var_f29; +} + +void fn_1_5290(float *arg0, float (*arg1)[3], float (*arg2)[3], s32 arg3) +{ + float spD4[16]; + float sp94[16]; + float sp54[16]; + float sp14[16]; + Vec sp8; + double var_f31; + + s32 var_r31; + s32 var_r30; + s32 var_r27; + + arg0[0] = 0.0f; + for (var_r30 = 1; var_r30 < arg3; var_r30++) { + PSVECSubtract((Vec *)&arg1[var_r30], (Vec *)&arg1[var_r30 - 1], &sp8); + arg0[var_r30] = arg0[var_r30 - 1] + PSVECMag(&sp8); + } + for (var_r27 = 0; var_r27 < 3; var_r27++) { + for (var_r30 = 0; var_r30 < arg3; var_r30++) { + spD4[var_r30] = arg1[var_r30][var_r27]; + } + sp94[0] = 0.0f; + sp94[arg3 - 1] = 0.0f; + for (var_r31 = 0; var_r31 < (arg3 - 1); var_r31++) { + sp14[var_r31] = arg0[var_r31 + 1] - arg0[var_r31]; + if (sp14[var_r31] == 0.0f) { + sp54[var_r31 + 1] = 0.0f; + } + else { + sp54[var_r31 + 1] = (spD4[var_r31 + 1] - spD4[var_r31]) / sp14[var_r31]; + } + } + sp94[1] = sp54[2] - sp54[1]; + sp54[1] = 2.0f * (arg0[2] - arg0[0]); + for (var_r31 = 1; var_r31 < (arg3 - 2); var_r31++) { + var_f31 = sp14[var_r31] / sp54[var_r31]; + sp94[var_r31 + 1] = (sp54[var_r31 + 2] - sp54[var_r31 + 1]) - (var_f31 * sp94[var_r31]); + sp54[var_r31 + 1] = (2.0f * (arg0[var_r31 + 2] - arg0[var_r31])) - (var_f31 * sp14[var_r31]); + } + sp94[arg3 - 2] -= sp14[arg3 - 2] * sp94[arg3 - 1]; + for (var_r31 = arg3 - 2; var_r31 > 0; var_r31--) { + if (sp54[var_r31] == 0.0f) { + sp94[var_r31] = 0.0f; + } + else { + sp94[var_r31] = (sp94[var_r31] - (sp14[var_r31] * sp94[var_r31 + 1])) / sp54[var_r31]; + } + } + for (var_r30 = 0; var_r30 < arg3; var_r30++) { + arg2[var_r30][var_r27] = sp94[var_r30]; + } + } +} + +void fn_1_5670(float arg8, float *arg0, float *arg1, float (*arg2)[3], float (*arg3)[3], s32 arg4) +{ + float sp48[16]; + float sp8[16]; + + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + + for (var_r29 = 0; var_r29 < 3; var_r29++) { + for (var_r30 = 0; var_r30 < arg4; var_r30++) { + sp48[var_r30] = arg2[var_r30][var_r29]; + sp8[var_r30] = arg3[var_r30][var_r29]; + } + var_f30 = arg8; + var_r31 = var_f30; + var_f30 -= var_r31; + var_f31 = arg1[var_r31 + 1] - arg1[var_r31]; + var_f29 = var_f31 * var_f30; + var_f28 = sp48[var_r31] + + (var_f29 + * ((var_f29 * ((3.0f * sp8[var_r31]) + ((var_f29 * (sp8[var_r31 + 1] - sp8[var_r31])) / var_f31))) + + (((sp48[var_r31 + 1] - sp48[var_r31]) / var_f31) - (var_f31 * ((2.0f * sp8[var_r31]) + sp8[var_r31 + 1]))))); + if (var_f31 == 0.0f) { + var_f28 = sp48[var_r31]; + } + var_f27 = var_f28; + arg0[var_r29] = var_f27; + } +} + +float fn_1_5884(Vec *arg0) +{ + float sp8; + float var_f30; + float var_f29; + + var_f30 = (arg0->z * arg0->z) + ((arg0->x * arg0->x) + (arg0->y * arg0->y)); + var_f30 = sqrtf(var_f30); + if (var_f30 != 0.0f) { + var_f29 = 1.0f / var_f30; + arg0->x *= var_f29; + arg0->y *= var_f29; + arg0->z *= var_f29; + } + else { + arg0->x = arg0->y = arg0->z = 0.0f; + } + return var_f30; +} + +float fn_1_5A1C(Vec arg0, Vec arg1, Vec *arg2, float arg8) +{ + if (arg8 <= 0.0f) { + arg2->x = arg0.x; + arg2->y = arg0.y; + arg2->z = arg0.z; + arg8 = 0.0f; + return arg8; + } + if (arg8 >= 1.0f) { + arg2->x = arg0.x + arg1.x; + arg2->y = arg0.y + arg1.y; + arg2->z = arg0.z + arg1.z; + arg8 = 1.0f; + return arg8; + } + arg2->x = arg0.x + (arg8 * arg1.x); + arg2->y = arg0.y + (arg8 * arg1.y); + arg2->z = arg0.z + (arg8 * arg1.z); + return arg8; +} + +float fn_1_5AF4(Vec arg0, Vec arg1, Vec arg2) +{ + float var_f31 = (arg2.z * (arg1.z - arg0.z)) + ((arg2.x * (arg1.x - arg0.x)) + (arg2.y * (arg1.y - arg0.y))); + float var_f30 = -((arg2.z * arg2.z) + ((arg2.x * arg2.x) + (arg2.y * arg2.y))); + if (var_f30 != 0.0f) { + var_f31 /= var_f30; + } + return var_f31; +} + +float fn_1_5BB0(Vec *arg0, Vec *arg1, Vec *arg2) +{ + Vec sp44; + float var_f28; + + if (((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y))) == 0.0f) { + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + } + var_f28 = fn_1_5AF4(*arg0, *arg1, *arg2); + fn_1_5A1C(*arg1, *arg2, &sp44, var_f28); + return ((arg0->z - sp44.z) * (arg0->z - sp44.z)) + (((arg0->x - sp44.x) * (arg0->x - sp44.x)) + ((arg0->y - sp44.y) * (arg0->y - sp44.y))); +} + +float fn_1_5EEC(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ + float var_f30; + if (((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y))) == 0.0f) { + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + } + var_f30 = fn_1_5AF4(*arg0, *arg1, *arg2); + fn_1_5A1C(*arg1, *arg2, arg3, var_f30); + + arg4->x = arg3->x - arg0->x; + arg4->y = arg3->y - arg0->y; + arg4->z = arg3->z - arg0->z; + + return fn_1_5884(arg4); +} + +s32 fn_1_639C(void) +{ + return lbl_1_bss_0; +} + +s32 fn_1_63AC(void) +{ + s32 var_r31; + omObjData **var_r30; + M453DllWork2 *var_r29; + + var_r30 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + for (var_r31 = 0; var_r31 < lbl_1_bss_1C; var_r31++) { + var_r29 = var_r30[lbl_1_bss_1E[var_r31]]->data; + if (var_r29->unk_07 != 0) { + return 1; + } + } + return 0; +} + +void fn_1_6448(void) +{ + s32 var_r31; + M453DllWork2 *var_r30; + omObjData **var_r29; + s32 var_r28; + s16 var_r27; + + var_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = var_r29[var_r31]->data; + if (var_r30->unk_07 != 0) { + var_r27 = lbl_1_bss_0; + var_r28 = var_r30->unk_00; + GWPlayerCoinWinSet(var_r28, var_r27); + } + } +} diff --git a/src/REL/m453Dll/map.c b/src/REL/m453Dll/map.c new file mode 100644 index 00000000..60b92749 --- /dev/null +++ b/src/REL/m453Dll/map.c @@ -0,0 +1,1091 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/flag.h" +#include "game/frand.h" +#include "game/gamework.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/wipe.h" +#include "math.h" +#include "string.h" + +#include "REL/m453Dll.h" + +typedef struct M453MapUnkStruct { + struct { + u8 unk_00_field0 : 1; + }; + s32 unk_04; + float unk_08; + s32 unk_0C[6]; + s32 unk_24[0xC]; +} M453MapUnkStruct; /* size = 0x54 */ + +void fn_1_6768(omObjData *object); +void fn_1_67EC(omObjData *object); +void fn_1_67F0(omObjData *object); +void fn_1_695C(omObjData *object); +void fn_1_6C74(omObjData *object); +void fn_1_6EB4(omObjData *object); +void fn_1_6FC4(omObjData *object); +void fn_1_73C4(omObjData *object); +void fn_1_7978(void); +void fn_1_7A74(s16 arg0); + +Vec lbl_1_data_158[0x10] = { + { 92.39f, 0.0f, 38.27f }, + { 100.0f, 0.0f, 0.0f }, + { 92.39f, 0.0f, -38.27f }, + { 70.71f, 0.0f, -70.71f }, + { 38.27f, 0.0f, -92.39f }, + { 0.0f, 0.0f, -100.0f }, + { -38.27f, 0.0f, -92.39f }, + { -70.71f, 0.0f, -70.71f }, + { -92.39f, 0.0f, -38.27f }, + { -100.0f, 0.0f, 0.0f }, + { -92.39f, 0.0f, 38.27f }, + { -70.71f, 0.0f, 70.71f }, + { -38.27f, 0.0f, 92.39f }, + { 0.0f, 0.0f, 100.0f }, + { 38.27f, 0.0f, 92.39f }, + { 70.71f, 0.0f, 70.71f }, +}; + +Vec lbl_1_data_218[0x10] = { + { 55.43f, 0.0f, 22.96f }, + { 60.0f, 0.0f, 0.0f }, + { 55.43f, 0.0f, -22.96f }, + { 42.43f, 0.0f, -42.43f }, + { 22.96f, 0.0f, -55.43f }, + { 0.0f, 0.0f, -60.0f }, + { -22.96f, 0.0f, -55.43f }, + { -42.43f, 0.0f, -42.43f }, + { -55.43f, 0.0f, -22.96f }, + { -60.0f, 0.0f, 0.0f }, + { -55.43f, 0.0f, 22.96f }, + { -42.43f, 0.0f, 42.43f }, + { -22.96f, 0.0f, 55.43f }, + { 0.0f, 0.0f, 60.0f }, + { 22.96f, 0.0f, 55.43f }, + { 42.43f, 0.0f, 42.43f }, +}; + +Vec lbl_1_data_2D8[0xA] = { + { 38.79f, 0.0f, -53.4f }, + { 0.0f, 0.0f, -120.0f }, + { -38.79f, 0.0f, -53.4f }, + { -114.13f, 0.0f, -37.08f }, + { -62.77f, 0.0f, 20.4f }, + { -70.53f, 0.0f, 97.08f }, + { 0.0f, 0.0f, 66.0f }, + { 70.53f, 0.0f, 97.08f }, + { 62.77f, 0.0f, 20.4f }, + { 114.13f, 0.0f, -37.08f }, +}; + +Vec lbl_1_data_350[0xA] = { + { 21.34f, 0.0f, -29.37f }, + { 0.0f, 0.0f, -66.0f }, + { -21.34f, 0.0f, -29.37f }, + { -62.77f, 0.0f, -20.4f }, + { -34.52f, 0.0f, 11.22f }, + { -38.79f, 0.0f, 53.4f }, + { 0.0f, 0.0f, 36.3f }, + { 38.79f, 0.0f, 53.4f }, + { 34.52f, 0.0f, 11.22f }, + { 62.77f, 0.0f, -20.4f }, +}; + +Vec lbl_1_data_3C8[0x10] = { + { 110.87f, 0.0f, 45.92f }, + { 120.0f, 0.0f, 0.0f }, + { 110.87f, 0.0f, -45.92f }, + { 84.85f, 0.0f, -84.85f }, + { 45.92f, 0.0f, -110.87f }, + { 0.0f, 0.0f, -120.0f }, + { -45.92f, 0.0f, -110.87f }, + { -84.85f, 0.0f, -84.85f }, + { -110.87f, 0.0f, -45.92f }, + { -120.0f, 0.0f, 0.0f }, + { -110.87f, 0.0f, 45.92f }, + { -84.85f, 0.0f, 84.85f }, + { -45.92f, 0.0f, 110.87f }, + { 0.0f, 0.0f, 120.0f }, + { 45.92f, 0.0f, 110.87f }, + { 84.85f, 0.0f, 84.85f }, +}; + +Vec lbl_1_data_488[0x10] = { + { 73.17f, 0.0f, 30.31f }, + { 79.2f, 0.0f, 0.0f }, + { 73.17f, 0.0f, -30.31f }, + { 56.0f, 0.0f, -56.0f }, + { 30.31f, 0.0f, -73.17f }, + { 0.0f, 0.0f, -79.2f }, + { -30.31f, 0.0f, -73.17f }, + { -56.0f, 0.0f, -56.0f }, + { -73.17f, 0.0f, -30.31f }, + { -79.2f, 0.0f, 0.0f }, + { -73.17f, 0.0f, 30.31f }, + { -56.0f, 0.0f, 56.0f }, + { -30.31f, 0.0f, 73.17f }, + { 0.0f, 0.0f, 79.2f }, + { 30.31f, 0.0f, 73.17f }, + { 56.0f, 0.0f, 56.0f }, +}; + +Vec lbl_1_data_548[0xA] = { + { 48.49f, 0.0f, -66.74f }, + { 0.0f, 0.0f, -150.0f }, + { -48.49f, 0.0f, -66.74f }, + { -142.66f, 0.0f, -46.35f }, + { -78.46f, 0.0f, 25.49f }, + { -88.17f, 0.0f, 121.35f }, + { 0.0f, 0.0f, 82.5f }, + { 88.17f, 0.0f, 121.35f }, + { 78.46f, 0.0f, 25.49f }, + { 142.66f, 0.0f, -46.35f }, +}; + +Vec lbl_1_data_5C0[0xA] = { + { 29.09f, 0.0f, -40.05f }, + { 0.0f, 0.0f, -90.0f }, + { -29.09f, 0.0f, -40.05f }, + { -85.59f, 0.0f, -27.81f }, + { -47.08f, 0.0f, 15.3f }, + { -52.9f, 0.0f, 72.81f }, + { 0.0f, 0.0f, 49.5f }, + { 52.9f, 0.0f, 72.81f }, + { 47.08f, 0.0f, 15.3f }, + { 85.59f, 0.0f, -27.81f }, +}; + +Vec lbl_1_data_638[0x16] = { + { 129.1f, 0.0f, 54.6f }, + { 140.0f, 0.0f, 0.0f }, + { 129.3f, 0.0f, -53.6f }, + { 99.0f, 0.0f, -99.0f }, + { 53.6f, 0.0f, -129.3f }, + { 0.0f, 0.0f, -140.0f }, + { -53.6f, 0.0f, -129.3f }, + { -99.0f, 0.0f, -99.0f }, + { -129.4f, 0.0f, -53.5f }, + { -140.0f, 0.0f, 0.0f }, + { -136.0f, 0.0f, 20.4f }, + { -102.1f, 0.0f, -7.6f }, + { -70.0f, 0.0f, -14.0f }, + { -37.8f, 0.0f, -7.6f }, + { -10.6f, 0.0f, 10.6f }, + { 7.6f, 0.0f, 37.8f }, + { 14.0f, 0.0f, 70.0f }, + { 7.6f, 0.0f, 102.2f }, + { -20.4f, 0.0f, 136.0f }, + { 0.1f, 0.0f, 140.1f }, + { 53.9f, 0.0f, 129.5f }, + { 99.5f, 0.0f, 99.0f }, +}; + +Vec lbl_1_data_740[0x16] = { + { 95.9f, 0.0f, 42.9f }, + { 106.6f, 0.0f, 0.4f }, + { 98.4f, 0.0f, -37.2f }, + { 81.7f, 0.0f, -65.9f }, + { 55.4f, 0.0f, -89.6f }, + { 11.5f, 0.0f, -101.7f }, + { -24.5f, 0.0f, -99.9f }, + { -60.9f, 0.0f, -88.6f }, + { -98.7f, 0.0f, -64.4f }, + { -110.4f, 0.0f, -41.5f }, + { -110.4f, 0.0f, -30.8f }, + { -90.4f, 0.0f, -42.3f }, + { -53.8f, 0.0f, -48.5f }, + { -14.6f, 0.0f, -40.5f }, + { 17.1f, 0.0f, -16.3f }, + { 35.8f, 0.0f, 28.2f }, + { 35.8f, 0.0f, 65.6f }, + { 24.7f, 0.0f, 101.6f }, + { 19.6f, 0.0f, 114.6f }, + { 34.9f, 0.0f, 114.5f }, + { 62.9f, 0.0f, 99.0f }, + { 83.0f, 0.0f, 73.2f }, +}; + +Vec lbl_1_data_848[0x16] = { + { 110.9f, 0.0f, 45.9f }, + { 120.0f, 0.0f, 0.0f }, + { 110.9f, 0.0f, -45.8f }, + { 84.8f, 0.0f, -84.9f }, + { 45.9f, 0.0f, -110.9f }, + { 0.0f, 0.0f, -120.0f }, + { -45.9f, 0.0f, -110.9f }, + { -84.9f, 0.0f, -84.8f }, + { -110.9f, 0.0f, -45.9f }, + { -120.0f, 0.0f, 0.0f }, + { -116.5f, 0.0f, 17.5f }, + { -87.6f, 0.0f, -6.6f }, + { -60.0f, 0.0f, -12.0f }, + { -32.4f, 0.0f, -6.5f }, + { -9.1f, 0.0f, 9.1f }, + { 6.5f, 0.0f, 32.5f }, + { 12.0f, 0.0f, 60.0f }, + { 6.5f, 0.0f, 87.6f }, + { -17.5f, 0.0f, 116.5f }, + { 0.0f, 0.0f, 120.0f }, + { 45.9f, 0.0f, 110.9f }, + { 84.8f, 0.0f, 84.9f }, +}; + +Vec lbl_1_data_950[0x16] = { + { 80.0f, 0.0f, 31.0f }, + { 83.9f, 0.0f, -0.1f }, + { 77.2f, 0.0f, -31.7f }, + { 60.4f, 0.0f, -56.8f }, + { 35.6f, 0.0f, -77.4f }, + { -0.5f, 0.0f, -84.1f }, + { -31.5f, 0.0f, -82.9f }, + { -58.9f, 0.0f, -71.4f }, + { -86.3f, 0.0f, -49.4f }, + { -91.5f, 0.0f, -36.4f }, + { -91.5f, 0.0f, -27.3f }, + { -82.1f, 0.0f, -29.8f }, + { -54.7f, 0.0f, -36.2f }, + { -21.9f, 0.0f, -30.9f }, + { 13.3f, 0.0f, -10.2f }, + { 28.3f, 0.0f, 18.3f }, + { 33.4f, 0.0f, 58.4f }, + { 28.0f, 0.0f, 81.6f }, + { 20.7f, 0.0f, 93.3f }, + { 30.4f, 0.0f, 93.3f }, + { 55.4f, 0.0f, 82.2f }, + { 70.4f, 0.0f, 59.3f }, +}; + +s32 lbl_1_data_A58[0xC] = { + 0x220004, + 0x220005, + 0x220006, + 0x220009, + 0x22000C, + 0x22000F, + 0x220007, + 0x220008, + 0x22000A, + 0x22000B, + 0x22000D, + 0x22000E, +}; + +Vec lbl_1_data_A88[6] = { + { -400.0f, 0.0f, 300.0f }, + { 0.0f, 0.0f, 300.0f }, + { 400.0f, 0.0f, 300.0f }, + { -400.0f, 0.0f, 700.0f }, + { 0.0f, 0.0f, 700.0f }, + { 400.0f, 0.0f, 700.0f }, +}; + +s32 lbl_1_data_AD0[3] = { 6, 8, 0xA }; + +s32 lbl_1_data_ADC[3] = { 7, 9, 0xB }; + +s32 lbl_1_data_AE8[5] = { 1, 2, 3, 4, 5 }; + +Vec *lbl_1_data_AFC[6] = { + lbl_1_data_3C8, + lbl_1_data_158, + lbl_1_data_548, + lbl_1_data_2D8, + lbl_1_data_638, + lbl_1_data_848, +}; + +s32 lbl_1_data_B14[6] = { 0x10, 0x10, 0xA, 0xA, 0x16, 0x16 }; + +Vec lbl_1_data_B2C[6] = { + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, -20.0f }, + { 0.0f, 0.0f, -20.0f }, + { 40.0f, 0.0f, -20.0f }, + { 40.0f, 0.0f, -20.0f }, +}; + +Vec *lbl_1_data_B74[6][2] = { + { lbl_1_data_3C8, lbl_1_data_488 }, + { lbl_1_data_158, lbl_1_data_218 }, + { lbl_1_data_548, lbl_1_data_5C0 }, + { lbl_1_data_2D8, lbl_1_data_350 }, + { lbl_1_data_638, lbl_1_data_740 }, + { lbl_1_data_848, lbl_1_data_950 }, +}; + +s32 lbl_1_data_BA4[6] = { 0x10, 0x10, 0xA, 0xA, 0x16, 0x16 }; + +omObjData *lbl_1_bss_BC; +omObjData *lbl_1_bss_B8; +omObjData *lbl_1_bss_A4[5]; +s32 lbl_1_bss_A0; +s32 lbl_1_bss_9C; +s32 lbl_1_bss_98; +s32 lbl_1_bss_94; +s32 lbl_1_bss_90; +s32 lbl_1_bss_8C; +float lbl_1_bss_88; +s32 lbl_1_bss_84; +s32 lbl_1_bss_80; +s32 lbl_1_bss_7C; +s32 lbl_1_bss_78; +s32 lbl_1_bss_60[6]; + +void fn_1_64E8(Process *process) +{ + Vec sp20; + Vec sp14; + Vec sp8; + s32 var_r31; + + sp20.x = 0.0f; + sp20.y = 3000.0f; + sp20.z = 50.0f; + sp14.x = 0.0f; + sp14.y = 1.0f; + sp14.z = 0.0f; + sp8.x = 0.0f; + sp8.y = 0.0f; + sp8.z = 0.0f; + lbl_1_bss_BC = omAddObjEx(process, 0xA, 2, 0, -1, fn_1_6768); + lbl_1_bss_B8 = omAddObjEx(process, 0xC, 4, 0, -1, fn_1_67F0); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_A4[var_r31] = omAddObjEx(process, 0xE, 7, 0, -1, fn_1_6C74); + } + Hu3DShadowCreate(30.0f, 20.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.65f); + Hu3DShadowPosSet(&sp20, &sp14, &sp8); + lbl_1_bss_A0 = 0; + lbl_1_bss_9C = lbl_1_bss_98 = 2; + lbl_1_bss_8C = 0; + lbl_1_bss_90 = 0; + lbl_1_bss_88 = 0.75f; + lbl_1_bss_7C = 3; + lbl_1_bss_78 = 0; + lbl_1_bss_84 = 0; + lbl_1_bss_80 = 0; + memset(lbl_1_bss_60, 0, 0x18); +} + +void fn_1_6748(void) +{ + fn_1_7978(); +} + +void fn_1_6768(omObjData *object) +{ + object->stat |= 0x100; + object->model[0] = Hu3DModelCreateFile(0x220010); + object->model[1] = Hu3DModelCreateFile(0x220011); + object->func = fn_1_67EC; +} + +void fn_1_67EC(omObjData *object) { } + +void fn_1_67F0(omObjData *object) +{ + object->stat |= 0x100; + object->model[0] = Hu3DModelCreateFile(0x220000); + object->model[1] = Hu3DModelCreateFile(0x220003); + object->model[2] = Hu3DModelCreateFile(0x220001); + object->model[3] = Hu3DModelCreateFile(0x220002); + Hu3DMotionSpeedSet(object->model[2], 0.0f); + Hu3DModelShadowSet(object->model[1]); + Hu3DModelPosSet(object->model[1], 0.0f, 0.0f, -500.0f); + Hu3DData[object->model[3]].unk_94 = 0.0f; + Hu3DData[object->model[3]].unk_98 = 2.0f; + object->work[3] = 0x1E; + object->func = fn_1_695C; +} + +void fn_1_695C(omObjData *object) +{ + ModelData *var_r30; + M453MapUnkStruct *var_r29; + + if (lbl_1_bss_84 != 0) { + if (lbl_1_bss_80 == 0) { + if (object->work[0] < 60.0f) { + object->work[0] += 1; + var_r30 = &Hu3DData[object->model[1]]; + var_r30->rot.x = (-120.0f * object->work[0]) / 60.0f; + } + else { + lbl_1_bss_80 ^= 1; + lbl_1_bss_84 = 0; + } + } + else if (object->work[0] != 0) { + object->work[0] -= 1; + var_r30 = &Hu3DData[object->model[1]]; + var_r30->rot.x = (-120.0f * object->work[0]) / 60.0f; + } + else { + lbl_1_bss_80 ^= 1; + lbl_1_bss_84 = 0; + } + } + var_r29 = lbl_1_bss_A4[lbl_1_bss_9C]->data; + if (lbl_1_bss_94 != 0) { + lbl_1_bss_94 = 0; + lbl_1_bss_90 = 1; + } + if (lbl_1_bss_9C != lbl_1_bss_98) { + lbl_1_bss_90 = 0; + lbl_1_bss_8C = 0; + } + lbl_1_bss_98 = lbl_1_bss_9C; + if (var_r29->unk_00_field0) { + lbl_1_bss_9C = (lbl_1_bss_9C + 1) % 5; + lbl_1_bss_8C = 1; + } + if (object->work[3] != 0) { + if (--object->work[3] == 0) { + HuAudFXPlay(0x521); + } + } +} + +void fn_1_6C74(omObjData *object) +{ + s32 var_r31; + M453MapUnkStruct *var_r29; + + var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, 0x10000000); + object->data = var_r29; + memset(object->data, 0, 0x54); + for (var_r31 = 0; var_r31 < 0xC; var_r31++) { + var_r29->unk_24[var_r31] = -1; + } + for (var_r31 = 0; (u32)var_r31 < 0xC; var_r31++) { + var_r29->unk_24[var_r31] = Hu3DModelCreateFile(lbl_1_data_A58[var_r31]); + Hu3DModelAttrSet(var_r29->unk_24[var_r31], 1); + } + object->model[0] = var_r29->unk_24[0]; + Hu3DModelAttrReset(object->model[0], 1); + var_r29->unk_00_field0 = 0; + var_r29->unk_04 = 4 - lbl_1_bss_A0; + fn_1_6FC4(object); + object->trans.y = 5.0f; + object->trans.z = -500.0f; + switch (var_r29->unk_04) { + case 0: + case 1: + break; + case 2: + for (var_r31 = 0; var_r31 < 7; var_r31++) { + Hu3DModelShadowSet(object->model[var_r31]); + } + break; + case 3: + for (var_r31 = 0; var_r31 < 7; var_r31++) { + Hu3DModelShadowMapSet(object->model[var_r31]); + } + object->trans.y = 2.5f; + break; + case 4: + for (var_r31 = 0; var_r31 < 7; var_r31++) { + Hu3DModelShadowMapSet(object->model[var_r31]); + } + object->trans.y = 0.0f; + break; + } + fn_1_6EB4(object); + lbl_1_bss_A0++; + object->func = fn_1_73C4; +} + +void fn_1_6EB4(omObjData *object) +{ + Mtx sp38; + Mtx sp8; + s32 var_r30; + + PSMTXTrans(sp38, object->trans.x, object->trans.y, object->trans.z); + mtxRot(sp8, object->rot.x, object->rot.y, object->rot.z); + PSMTXConcat(sp38, sp8, sp38); + for (var_r30 = 0; var_r30 < 6; var_r30++) { + PSMTXTrans(sp8, lbl_1_data_A88[var_r30].x, lbl_1_data_A88[var_r30].y, lbl_1_data_A88[var_r30].z); + PSMTXConcat(sp38, sp8, sp8); + Hu3DModelPosSet(object->model[var_r30 + 1], sp8[0][3], sp8[1][3], sp8[2][3]); + Hu3DModelRotSet(object->model[var_r30 + 1], object->rot.x, object->rot.y, object->rot.z); + } +} + +void fn_1_6FC4(omObjData *object) +{ + s32 sp8[6]; + + s32 var_r31; + M453MapUnkStruct *var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + var_r30 = object->data; + for (var_r31 = 0; var_r31 < 0x64; var_r31++) { + var_r29 = ((u8)frand() * 3) >> 8; + var_r28 = ((u8)frand() * 3) >> 8; + var_r26 = lbl_1_data_AD0[var_r29]; + lbl_1_data_AD0[var_r29] = lbl_1_data_AD0[var_r28]; + lbl_1_data_AD0[var_r28] = var_r26; + var_r29 = ((u8)frand() * 3) >> 8; + var_r28 = ((u8)frand() * 3) >> 8; + var_r26 = lbl_1_data_ADC[var_r29]; + lbl_1_data_ADC[var_r29] = lbl_1_data_ADC[var_r28]; + lbl_1_data_ADC[var_r28] = var_r26; + var_r29 = ((u8)frand() * 5) >> 8; + var_r28 = ((u8)frand() * 5) >> 8; + var_r26 = lbl_1_data_AE8[var_r29]; + lbl_1_data_AE8[var_r29] = lbl_1_data_AE8[var_r28]; + lbl_1_data_AE8[var_r28] = var_r26; + } + var_r25 = 0; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + if (lbl_1_bss_60[var_r31] < 6) { + sp8[var_r25++] = var_r31; + } + } + for (var_r31 = 0; var_r31 < 0x64; var_r31++) { + var_r29 = (var_r25 * (u8)frand()) >> 8; + var_r28 = (var_r25 * (u8)frand()) >> 8; + var_r26 = sp8[var_r29]; + sp8[var_r29] = sp8[var_r28]; + sp8[var_r28] = var_r26; + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + var_r30->unk_0C[var_r31] = 0; + } + for (var_r31 = 0; var_r31 < lbl_1_bss_78; var_r31++) { + var_r30->unk_0C[sp8[var_r31]] = lbl_1_data_ADC[var_r31]; + } + while (var_r31 < lbl_1_bss_7C) { + var_r30->unk_0C[sp8[var_r31]] = lbl_1_data_AD0[var_r31]; + var_r31++; + } + var_r24 = 0; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + if (var_r30->unk_0C[var_r31] == 0) { + var_r30->unk_0C[var_r31] = lbl_1_data_AE8[var_r24++]; + } + } + memcpy(lbl_1_bss_60, &var_r30->unk_0C, 0x18); + for (var_r31 = 0; var_r31 < 6; var_r31++) { + if (object->model[var_r31 + 1] >= 0) { + Hu3DModelAttrSet(object->model[var_r31 + 1], 1); + } + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + object->model[var_r31 + 1] = var_r30->unk_24[var_r30->unk_0C[var_r31]]; + Hu3DModelAttrReset(object->model[var_r31 + 1], 1); + } +} + +void fn_1_73C4(omObjData *object) +{ + Mtx sp38; + Mtx sp8; + M453MapUnkStruct *var_r30; + s32 var_r29; + s32 var_r28; + ModelData *var_r27; + + var_r30 = object->data; + if (lbl_1_bss_90 == 0) { + if ((lbl_1_bss_84 != 0) && (var_r30->unk_04 < 3)) { + var_r27 = &Hu3DData[lbl_1_bss_B8->model[1]]; + object->rot.x = var_r27->rot.x; + switch (var_r30->unk_04) { + case 0: + object->trans.z = -500.0f + ((2.5f * lbl_1_bss_B8->work[0]) / 60.0f); + break; + case 1: + object->trans.z = -500.0f + ((5.0f * lbl_1_bss_B8->work[0]) / 60.0f); + break; + case 2: + object->trans.z = -500.0f + ((7.5f * lbl_1_bss_B8->work[0]) / 60.0f); + break; + } + } + else { + return; + } + } + else { + switch (var_r30->unk_04) { + case 0: + if (lbl_1_bss_8C != 0) { + object->trans.z = -495.0f; + var_r30->unk_04++; + } + break; + case 1: + if (lbl_1_bss_8C != 0) { + object->trans.z = -492.5f; + var_r30->unk_00_field0 = 0; + var_r30->unk_04++; + var_r30->unk_08 = 0.0f; + for (var_r29 = 0; var_r29 < 7; var_r29++) { + Hu3DModelShadowSet(object->model[var_r29]); + } + } + break; + case 2: + if (lbl_1_bss_8C != 0) { + var_r30->unk_04 = var_r30->unk_04 + 1; + object->trans.y = 2.5f; + for (var_r29 = 0; var_r29 < 7; var_r29++) { + Hu3DModelShadowReset(object->model[var_r29]); + Hu3DModelShadowMapSet(object->model[var_r29]); + } + } + else { + var_r30->unk_08 = var_r30->unk_08 + lbl_1_bss_88; + if (var_r30->unk_08 > 90.0f) { + var_r30->unk_00_field0 = 1; + var_r30->unk_08 = 90.0f; + HuAudFXPlay(0x522); + } + object->rot.x = -120.0 * cosd(var_r30->unk_08); + object->trans.z = -500.0 + (7.5 * cosd(var_r30->unk_08)); + } + break; + case 3: + if (lbl_1_bss_8C != 0) { + var_r30->unk_04++; + object->trans.y = 0.0f; + } + break; + case 4: + if (lbl_1_bss_8C != 0) { + var_r30->unk_04 = 0; + object->trans.y = 5.0f; + object->trans.z = -497.5f; + object->rot.x = -120.0f; + for (var_r29 = 0; var_r29 < 7; var_r29++) { + fn_1_7A74(object->model[var_r29]); + } + fn_1_6FC4(object); + } + break; + } + } + PSMTXTrans(sp8, object->trans.x, object->trans.y, object->trans.z); + mtxRot(sp38, object->rot.x, object->rot.y, object->rot.z); + PSMTXConcat(sp8, sp38, sp8); + for (var_r28 = 0; var_r28 < 6; var_r28++) { + PSMTXTrans(sp38, lbl_1_data_A88[var_r28].x, lbl_1_data_A88[var_r28].y, lbl_1_data_A88[var_r28].z); + PSMTXConcat(sp8, sp38, sp38); + Hu3DModelPosSet(object->model[var_r28 + 1], sp38[0][3], sp38[1][3], sp38[2][3]); + Hu3DModelRotSet(object->model[var_r28 + 1], object->rot.x, object->rot.y, object->rot.z); + } +} + +void fn_1_7978(void) +{ + s32 var_r31; + omObjData *var_r30; + M453MapUnkStruct *var_r29; + s32 var_r28; + + for (var_r31 = 0; var_r31 < 5; var_r31++) { + var_r30 = lbl_1_bss_A4[var_r31]; + var_r29 = var_r30->data; + if (var_r29 != NULL) { + for (var_r28 = 0; var_r28 < 0xC; var_r28++) { + if (var_r29->unk_24[var_r28] >= 0) { + Hu3DModelKill(var_r29->unk_24[var_r28]); + } + } + HuMemDirectFree(var_r29); + lbl_1_bss_A4[var_r31]->data = NULL; + } + for (var_r31 = 0; var_r31 < var_r30->mdlcnt; var_r31++) { + var_r30->model[var_r31] = -1; + } + } +} + +void fn_1_7A74(s16 arg0) +{ + HsfData *var_r31; + HsfObject *var_r30; + s16 var_r29; + HsfObject *var_r28; + HsfConstData *var_r27; + + var_r31 = Hu3DData[arg0].hsfData; + for (var_r28 = var_r31->object, var_r29 = 0; var_r29 < var_r31->objectCnt; var_r29++, var_r28++) { + var_r30 = var_r28; + if (var_r30->constData) { + var_r27 = var_r30->constData; + var_r27->flags &= 0xFFFFFFF7; + } + } +} + +s32 fn_1_7AFC(float arg8, float arg9) +{ + s32 var_r31; + s32 var_r30; + + var_r31 = (600.0f + arg8) / 400.0f; + var_r30 = (400.0f + arg9) / 400.0f; + if (var_r31 < 0) { + var_r31 = 0; + } + else if (var_r31 > 2) { + var_r31 = 2; + } + if (var_r30 < 0) { + var_r30 = 0; + } + else if (var_r30 > 1) { + var_r30 = 1; + } + return var_r31 + (var_r30 * 3); +} + +void fn_1_7BB0(s32 arg0, Vec *arg1) +{ + arg1->x = lbl_1_data_A88[arg0].x; + arg1->y = lbl_1_data_A88[arg0].y; + arg1->z = lbl_1_data_A88[arg0].z; +} + +s32 fn_1_7BFC(M453MapUnkStruct *arg0, s32 arg1) +{ + return arg0->unk_0C[arg1]; +} + +void fn_1_7C0C(float arg8) +{ + lbl_1_bss_94 = 1; + lbl_1_bss_88 = arg8; +} + +void fn_1_7C2C(s32 arg0) +{ + lbl_1_bss_7C = arg0; +} + +void fn_1_7C3C(void) +{ + float var_f31; + float var_f30; + + lbl_1_bss_84 = 1; + if (lbl_1_bss_80 == 0) { + var_f31 = 1.6666666f; + } + else { + var_f31 = -1.6666666f; + } + var_f30 = var_f31; + Hu3DMotionSpeedSet(lbl_1_bss_B8->model[2], var_f30); + HuAudFXPlay(0x524); +} + +s32 fn_1_7CE0(float arg8, float arg9, Vec *arg0) +{ + Mtx sp4C; + Mtx sp1C; + Vec sp10; + + omObjData *var_r31; + Vec *var_r30; + s32 var_r28; + s32 var_r27; + s32 var_r24; + s32 var_r23; + M453MapUnkStruct *var_r22; + + var_r31 = lbl_1_bss_A4[lbl_1_bss_9C]; + var_r22 = var_r31->data; + var_r27 = fn_1_7AFC(arg8, arg9); + var_r28 = fn_1_7BFC(var_r22, var_r27); + if (var_r28 < 6) { + return 0; + } + var_r28 -= 6; + fn_1_7BB0(var_r27, &sp10); + sp10 = lbl_1_data_A88[var_r27]; + PSMTXTrans(sp4C, var_r31->trans.x, var_r31->trans.y, var_r31->trans.z); + mtxRot(sp1C, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); + PSMTXConcat(sp4C, sp1C, sp4C); + PSMTXTrans(sp1C, sp10.x, sp10.y, sp10.z); + PSMTXConcat(sp4C, sp1C, sp4C); + var_r30 = lbl_1_data_AFC[var_r28]; + var_r23 = lbl_1_data_B14[var_r28]; + for (var_r24 = 0; var_r24 < var_r23; var_r24++) { + PSMTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z); + PSMTXConcat(sp4C, sp1C, sp1C); + arg0->x = sp1C[0][3]; + arg0->y = sp1C[1][3]; + arg0->z = sp1C[2][3]; + arg0++; + var_r30++; + } + return var_r23; +} + +float fn_1_7F54(float arg8, float arg9) +{ + float var_f31; + + omObjData *var_r31 = lbl_1_bss_A4[lbl_1_bss_9C]; + float var_f30 = -(arg9 - var_r31->trans.z); + if (cosd(var_r31->rot.x) <= 0.0) { + var_f31 = 9999.0f; + } + else { + var_f31 = (var_f30 * sind(var_r31->rot.x)) / cosd(var_r31->rot.x); + if (var_f31 > 9999.0f) { + var_f31 = 9999.0f; + } + } + return var_f31; +} + +float fn_1_80B0(Vec *arg0, float arg8) +{ + return fn_1_7F54(0.0f, arg0->z - arg8); +} + +s32 fn_1_8230(void) +{ + return lbl_1_bss_84; +} + +s32 fn_1_8240(void) +{ + return lbl_1_bss_90; +} + +s32 fn_1_8250(M453MapUnkStruct *arg0, s32 *arg1) +{ + s32 var_r31; + s32 var_r30; + + var_r30 = 0; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + if (arg0->unk_0C[var_r31] >= 6) { + arg1[var_r30++] = var_r31; + } + } + return var_r30; +} + +s32 fn_1_82AC(Vec *arg0) +{ + s32 sp8[6]; + + omObjData *var_r31; + s32 var_r30; + M453MapUnkStruct *var_r28; + s32 var_r27; + s32 var_r24; + + var_r31 = lbl_1_bss_A4[lbl_1_bss_9C]; + var_r28 = var_r31->data; + var_r24 = fn_1_8250(var_r28, sp8); + for (var_r30 = 0; var_r30 < var_r24; var_r30++) { + fn_1_7BB0(sp8[var_r30], arg0); + var_r27 = fn_1_7BFC(var_r28, sp8[var_r30]) - 6; + arg0->x += var_r31->trans.x + lbl_1_data_B2C[var_r27].x; + arg0->y += var_r31->trans.y + lbl_1_data_B2C[var_r27].y; + arg0->z += var_r31->trans.z + lbl_1_data_B2C[var_r27].z; + arg0++; + } + return var_r24; +} + +s32 fn_1_844C(Vec *arg0) +{ + Mtx sp50; + Mtx sp20; + s32 sp8[6]; + + omObjData *var_r30; + s32 var_r29; + M453MapUnkStruct *var_r27; + s32 var_r26; + s32 var_r23; + + var_r30 = lbl_1_bss_A4[lbl_1_bss_9C]; + var_r27 = var_r30->data; + var_r23 = fn_1_8250(var_r27, sp8); + PSMTXTrans(sp50, var_r30->trans.x, var_r30->trans.y, var_r30->trans.z); + mtxRot(sp20, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); + PSMTXConcat(sp50, sp20, sp50); + for (var_r29 = 0; var_r29 < var_r23; var_r29++) { + fn_1_7BB0(sp8[var_r29], arg0); + var_r26 = fn_1_7BFC(var_r27, sp8[var_r29]) - 6; + arg0->x += lbl_1_data_B2C[var_r26].x; + arg0->y += lbl_1_data_B2C[var_r26].y; + arg0->z += lbl_1_data_B2C[var_r26].z; + PSMTXTrans(sp20, arg0->x, arg0->y, arg0->z); + PSMTXConcat(sp50, sp20, sp20); + arg0->x = sp20[0][3]; + arg0->y = sp20[1][3]; + arg0->z = sp20[2][3]; + arg0++; + } + return var_r23; +} + +void fn_1_864C(s32 arg0) +{ + if (arg0 > lbl_1_bss_7C) { + arg0 = lbl_1_bss_7C; + } + lbl_1_bss_78 = arg0; +} + +s32 fn_1_867C(Vec *arg0, Vec *arg1) +{ + Vec sp48; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + + s32 var_r31; + Vec *var_r30; + Vec *var_r29; + omObjData *var_r28; + s32 var_r27; + s32 var_r24; + s32 var_r21; + s32 var_r20; + s32 var_r19; + M453MapUnkStruct *var_r18; + + var_r28 = lbl_1_bss_A4[lbl_1_bss_9C]; + var_r18 = var_r28->data; + if ((var_r28->rot.x > 0.0f) || (var_r28->rot.x <= -90.0f)) { + return 0; + } + PSVECSubtract(arg0, &var_r28->trans, &sp3C); + sp3C.z = sp3C.z / cosd(var_r28->rot.x); + var_f24 = arg0->z; + var_f25 = arg0->x; + var_r19 = fn_1_7AFC(var_f25, var_f24); + var_r24 = fn_1_7BFC(var_r18, var_r19); + if (var_r24 < 6) { + return 0; + } + var_r24 -= 6; + sp48 = lbl_1_data_A88[var_r19]; + PSVECSubtract(&sp3C, &sp48, &sp3C); + var_r30 = lbl_1_data_B74[var_r24][0]; + var_r29 = lbl_1_data_B74[var_r24][1]; + var_r21 = lbl_1_data_BA4[var_r24]; + for (var_r31 = 0; var_r31 < var_r21; var_r31++) { + var_r27 = (var_r31 + 1) % var_r21; + PSVECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24); + PSVECSubtract(&sp3C, var_r30 + var_r27, &sp18); + PSVECCrossProduct(&sp24, &sp18, &spC); + if (!(spC.y < 0.0f)) { + PSVECSubtract(var_r29 + var_r27, var_r30 + var_r27, &sp24); + PSVECSubtract(&sp3C, var_r29 + var_r27, &sp18); + PSVECCrossProduct(&sp24, &sp18, &spC); + if (!(spC.y < 0.0f)) { + PSVECSubtract(var_r29 + var_r31, var_r29 + var_r27, &sp24); + PSVECSubtract(&sp3C, var_r29 + var_r31, &sp18); + PSVECCrossProduct(&sp24, &sp18, &spC); + if (!(spC.y < 0.0f)) { + PSVECSubtract(var_r30 + var_r31, var_r29 + var_r31, &sp24); + PSVECSubtract(&sp3C, var_r30 + var_r31, &sp18); + PSVECCrossProduct(&sp24, &sp18, &spC); + if (!(spC.y < 0.0f)) { + PSVECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24); + var_f30 = (((sp3C.z * sp24.z) + + (((sp3C.y * sp24.y) + ((sp3C.x * sp24.x) - (sp24.x * var_r30[var_r31].x))) - (sp24.y * var_r30[var_r31].y))) + - (sp24.z * var_r30[var_r31].z)) + / ((sp24.z * sp24.z) + ((sp24.x * sp24.x) + (sp24.y * sp24.y))); + sp30.x = var_r30[var_r31].x + (var_f30 * sp24.x); + sp30.y = var_r30[var_r31].y + (var_f30 * sp24.y); + sp30.z = var_r30[var_r31].z + (var_f30 * sp24.z); + PSVECSubtract(&sp30, &sp3C, &spC); + var_f28 = PSVECMag(&spC); + PSVECSubtract(var_r29 + var_r27, var_r29 + var_r31, &sp18); + var_f29 = (((sp3C.z * sp18.z) + + (((sp3C.y * sp18.y) + ((sp3C.x * sp18.x) - (sp18.x * var_r29[var_r31].x))) - (sp18.y * var_r29[var_r31].y))) + - (sp18.z * var_r29[var_r31].z)) + / ((sp18.z * sp18.z) + ((sp18.x * sp18.x) + (sp18.y * sp18.y))); + sp30.x = var_r29[var_r31].x + (var_f29 * sp18.x); + sp30.y = var_r29[var_r31].y + (var_f29 * sp18.y); + sp30.z = var_r29[var_r31].z + (var_f29 * sp18.z); + PSVECSubtract(&sp30, &sp3C, &spC); + var_f27 = PSVECMag(&spC); + if (var_f28 == 0.0f) { + var_f31 = var_f30; + } + else if (var_f27 == 0.0f) { + var_f31 = var_f29; + } + else { + var_f26 = 1.0f - (var_f28 / (var_f28 + var_f27)); + var_f31 = (var_f30 * var_f26) + (var_f29 * (1.0f - var_f26)); + } + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + else if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + sp3C.x = var_r29[var_r31].x + (var_f31 * sp18.x); + sp3C.y = var_r29[var_r31].y + (var_f31 * sp18.y); + sp3C.z = var_r29[var_r31].z + (var_f31 * sp18.z); + arg1->x = sp3C.x + (var_r28->trans.x + sp48.x); + arg1->y = sp3C.y + (var_r28->trans.y + sp48.y); + arg1->z = var_r28->trans.z + ((sp48.z + sp3C.z) * cosd(var_r28->rot.x)); + return 1; + } + } + } + } + } + var_r20 = 0; + for (var_r31 = 0; var_r31 < var_r21; var_r31++) { + var_r27 = (var_r31 + 1) % var_r21; + var_f31 = (sp3C.z - var_r30[var_r31].z) / (var_r30[var_r27].z - var_r30[var_r31].z); + spC.x = var_r30[var_r31].x + (var_f31 * (var_r30[var_r27].x - var_r30[var_r31].x)); + if ((var_f31 >= 0.0f) && (var_f31 < 1.0f) && (spC.x > sp3C.x)) { + var_r20++; + } + } + if ((var_r20 & 1) != 0) { + arg1->x = arg0->x; + arg1->y = arg0->y; + arg1->z = arg0->z; + return 1; + } + return 0; +} diff --git a/src/REL/m453Dll/score.c b/src/REL/m453Dll/score.c new file mode 100644 index 00000000..a588ca07 --- /dev/null +++ b/src/REL/m453Dll/score.c @@ -0,0 +1,188 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/frand.h" +#include "game/gamework.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/wipe.h" + +#include "REL/m453Dll.h" + +typedef struct M453ScoreUnkStruct { + s32 unk_00; + s32 unk_04; + s16 unk_08; + s16 unk_0A; + s16 unk_0C[4]; + s16 unk_14; + s16 unk_16; + s32 unk_18; + float unk_1C; +} M453ScoreUnkStruct; /* size = 0x20 */ + +typedef void (*M453ScoreUnkFunc)(void); + +void fn_1_92C0(s32 arg0); +void fn_1_92F0(omObjData *object); +void fn_1_940C(void); +void fn_1_9484(void); +void fn_1_9510(void); + +M453ScoreUnkFunc lbl_1_data_BC0[3] = { fn_1_940C, fn_1_9484, fn_1_9510 }; + +Process *lbl_1_bss_C4; +omObjData *lbl_1_bss_C0; + +void fn_1_8F48(Process *arg0, s16 arg1) +{ + M453ScoreUnkStruct *var_r31; + u32 var_r30; + + lbl_1_bss_C4 = arg0; + lbl_1_bss_C0 = omAddObjEx(lbl_1_bss_C4, 0x800, 0, 0, 7, fn_1_92F0); + lbl_1_bss_C0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M453ScoreUnkStruct), MEMORY_DEFAULT_NUM); + var_r31 = lbl_1_bss_C0->data; + var_r31->unk_08 = arg1; + var_r31->unk_0A = 0; + var_r31->unk_14 = espEntry(0x530000, 2, 0); + espTPLvlSet(var_r31->unk_14, 0.5f); + espPosSet(var_r31->unk_14, 520.0f, 64.0f); + espColorSet(var_r31->unk_14, 0, 0, 0); + var_r31->unk_16 = espEntry(0x610037, 1, 0); + espPosSet(var_r31->unk_16, 501.0f, 55.0f); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r31->unk_0C[var_r30] = espEntry(0x610030, 0, 0); + espPosSet(var_r31->unk_0C[var_r30], (var_r30 * 0x12) + 0x20A, 56.0f); + espDispOff(var_r31->unk_0C[var_r30]); + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r31->unk_0C[var_r30 + 2] = espEntry(0x610031, 1, 0); + espPosSet(var_r31->unk_0C[var_r30 + 2], (var_r30 * 0x12) + 0x20A, 72.0f); + } + for (var_r30 = 0; var_r30 < 6; var_r30++) { + espDispOff(var_r31->unk_0C[var_r30]); + } + HuDataDirClose(0x530000); + HuDataDirClose(0x610000); + fn_1_92C0(0); +} + +void fn_1_91D8(void) +{ + s32 var_r31; + M453ScoreUnkStruct *var_r30 = lbl_1_bss_C0->data; + + for (var_r31 = 0; var_r31 < 7; var_r31++) { + espKill(var_r30->unk_0C[var_r31]); + } + HuMemDirectFree(lbl_1_bss_C0->data); +} + +void fn_1_924C(s32 arg0) +{ + switch (arg0) { + case 0: + fn_1_92C0(1); + break; + case 1: + fn_1_92C0(2); + break; + } +} + +void fn_1_929C(void) +{ + fn_1_92C0(0); +} + +void fn_1_92C0(s32 arg0) +{ + M453ScoreUnkStruct *var_r31 = lbl_1_bss_C0->data; + + var_r31->unk_00 = arg0; + var_r31->unk_04 = 0; +} + +void fn_1_92F0(omObjData *arg0) +{ + s16 var_r30; + + M453ScoreUnkStruct *var_r31 = lbl_1_bss_C0->data; + + lbl_1_data_BC0[var_r31->unk_00](); + var_r30 = var_r31->unk_08; + espBankSet(var_r31->unk_0C[0], var_r30 / 10); + var_r30 -= (var_r30 / 10) * 10; + espBankSet(var_r31->unk_0C[1], var_r30); + var_r30 = var_r31->unk_0A; + espBankSet(var_r31->unk_0C[2], var_r30 / 10); + var_r30 -= (var_r30 / 10) * 10; + espBankSet(var_r31->unk_0C[3], var_r30); +} + +void fn_1_940C(void) +{ + s32 var_r30; + + M453ScoreUnkStruct *var_r31 = lbl_1_bss_C0->data; + if (var_r31->unk_04 == 0) { + for (var_r30 = 0; var_r30 < 6; var_r30++) { + espDispOff(var_r31->unk_0C[var_r30]); + } + var_r31->unk_04 = var_r31->unk_04 + 1; + } +} + +void fn_1_9484(void) +{ + s16 var_r30; + M453ScoreUnkStruct *var_r31 = lbl_1_bss_C0->data; + + if (var_r31->unk_04 == 0) { + for (var_r30 = 0; var_r30 < 6; var_r30++) { + espDispOn(var_r31->unk_0C[var_r30]); + } + var_r31->unk_04 = var_r31->unk_04 + 1; + } + var_r31->unk_0A = fn_1_639C(); +} + +void fn_1_9510(void) +{ + s32 var_r30; + M453ScoreUnkStruct *var_r31 = lbl_1_bss_C0->data; + + if (var_r31->unk_04 == 0) { + var_r31->unk_18 = 0; + var_r31->unk_1C = 1.0f; + if (var_r31->unk_0A > var_r31->unk_08) { + var_r31->unk_08 = var_r31->unk_0A; + } + var_r31->unk_04 = var_r31->unk_04 + 1; + } + if (var_r31->unk_18 == 0) { + if ((var_r31->unk_1C += 0.02f) >= 1.2f) { + var_r31->unk_1C = 1.2f; + var_r31->unk_18 = 1; + } + } + else { + if ((var_r31->unk_1C -= 0.04f) <= 1.0f) { + var_r31->unk_1C = 1.0f; + var_r31->unk_18 = 0; + } + } + for (var_r30 = 0; var_r30 <= 1; var_r30++) { + espScaleSet(var_r31->unk_0C[var_r30], var_r31->unk_1C, var_r31->unk_1C); + } + espScaleSet(var_r31->unk_16, var_r31->unk_1C, var_r31->unk_1C); +} From 7289b7aaeda187573fd5ab73da65cad556a4bfad Mon Sep 17 00:00:00 2001 From: CreateSource Date: Thu, 31 Oct 2024 13:19:45 -0400 Subject: [PATCH 092/311] continued player.c --- .vscode/settings.json | 2 + include/REL/m443Dll.h | 58 +---- src/REL/m443Dll/main.c | 4 +- src/REL/m443Dll/player.c | 500 ++++++++++++++++++++++++++++++++++++++- 4 files changed, 500 insertions(+), 64 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 3b7f3945..b4546cc9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -34,4 +34,6 @@ "compile_commands.json": true, }, "cmake.ignoreCMakeListsMissing": true, + "editor.fontFamily": "Fira Code", + "editor.fontLigatures": true } diff --git a/include/REL/m443Dll.h b/include/REL/m443Dll.h index ac7b9c58..ba09dc8a 100644 --- a/include/REL/m443Dll.h +++ b/include/REL/m443Dll.h @@ -21,7 +21,11 @@ typedef struct M443DllCameraStruct { float unk_48; float unk_4C; float unk_50; - char unk54[0x24]; + Vec unk_54; + char unk_60[0xC]; + float unk_6C; + float unk_70; + char unk74[0x4]; float unk_78; float unk_7C; float unk_80; @@ -29,63 +33,15 @@ typedef struct M443DllCameraStruct { u32 unk_A0; } M443DllCameraStruct; /* size = 0xA4 */ -typedef struct M443DllWorkStruct { - s32 unk0; - s32 unk4; - s32 unk8; - s32 unkC; - char unk10[0xC]; - s32 unk1C; - s32 unk20; - s32 unk24; - char unk28[0xC]; - s16 unk34; - char unk3A[0x12]; - f32 unk48; - f32 unk4C; - f32 unk50; - f32 unk54; - f32 unk58; - f32 unk5C; - s32 unk60; - char unk64[0x4]; - s32 unk68; - char unk6C[0x14]; - s32 unk80; - char unk84[0x4]; - f32 unk88; - char unk8C[0x4]; - f32 unk90; - char unk94[0x4]; - f32 unk98; - f32 unk9C; - f32 unkA0; - f32 unkA4; - s32 unkA8; - s32 unkAC; - s32 unkB0; - s32 unkB4; - s32 unkB8; - f32 unkBC; - f32 unkC0; - Vec unkC4; - Vec unkD0; - Vec unkDC; - Vec unkE8; - char unkF4[0xC]; - M443DllCameraStruct* unk100; - M443DllCameraStruct* unk104; -} M443DllWorkStruct; /* size = 0x134 */ - void fn_1_3FE8(u32 arg0); u32 fn_1_3FFC(void); M443DllCameraStruct *fn_1_40AC(s32 arg0); M443DllCameraStruct *fn_1_4148(u32 arg0); M443DllCameraStruct *fn_1_41B0(u32 arg0); void fn_1_421C(s32 arg0, s32 arg1); -s32 fn_1_42CC(void); +u32 fn_1_42CC(void); u32 fn_1_42E4(void); -s32 fn_1_42FC(void); +u32 fn_1_42FC(void); void fn_1_4314(s32 arg0, float arg8); s32 fn_1_4368(s32 arg0); void fn_1_43AC(s32 arg0); diff --git a/src/REL/m443Dll/main.c b/src/REL/m443Dll/main.c index 9c939016..f949fe1f 100644 --- a/src/REL/m443Dll/main.c +++ b/src/REL/m443Dll/main.c @@ -1040,7 +1040,7 @@ s32 fn_1_42B4(void) return ((M443DllWork *)lbl_1_bss_70->data)->unk_00; } -s32 fn_1_42CC(void) +u32 fn_1_42CC(void) { return ((M443DllWork *)lbl_1_bss_70->data)->unk_0C; } @@ -1050,7 +1050,7 @@ u32 fn_1_42E4(void) return ((M443DllWork *)lbl_1_bss_70->data)->unk_14; } -s32 fn_1_42FC(void) +u32 fn_1_42FC(void) { return ((M443DllWork *)lbl_1_bss_70->data)->unk_28; } diff --git a/src/REL/m443Dll/player.c b/src/REL/m443Dll/player.c index 0d5fda09..2ccd186f 100644 --- a/src/REL/m443Dll/player.c +++ b/src/REL/m443Dll/player.c @@ -10,11 +10,84 @@ #ifndef __MWERKS__ #include "game/esprite.h" -#include "game/frand.h" #endif #include "REL/m443Dll.h" +typedef struct M443DllWorkStruct { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + f32 unk18; + s32 unk1C; + s32 unk20; + s32 unk24; + char unk28[0xC]; + u16 unk34; + s32 unk38; + char unk3C[0x4]; + s16 unk40; + f32 unk44; + f32 unk48; + f32 unk4C; + f32 unk50; + f32 unk54; + f32 unk58; + f32 unk5C; + s32 unk60; + f32 unk64; + u32 unk68; + f32 unk6C; + f32 unk70; + u32 unk74; + f32 unk78; + f32 unk7C; + s32 unk80; + char unk84[0x4]; + f32 unk88; + char unk8C[0x4]; + f32 unk90; + char unk94[0x4]; + f32 unk98; + f32 unk9C; + f32 unkA0; + f32 unkA4; + s32 unkA8; + s32 unkAC; + s32 unkB0; + s32 unkB4; + s32 unkB8; + f32 unkBC; + f32 unkC0; + Vec unkC4; + Vec unkD0; + Vec unkDC; + Vec unkE8; + char unkF4[0xC]; + M443DllCameraStruct* unk100; + M443DllCameraStruct* unk104; + s32 unk108; + char unk10C[0x28]; +} M443DllWorkStruct; /* size = 0x134 */ + +void fn_1_5680(omObjData* object); +void fn_1_5BD4(omObjData* object); +void fn_1_6458(omObjData* object); +void fn_1_6674(omObjData* object); +void fn_1_6750(omObjData* object); +void fn_1_69B4(omObjData* object); +void fn_1_6DA8(omObjData* object); +void fn_1_7130(omObjData* object); +void fn_1_7340(omObjData* object); +void fn_1_8138(omObjData*, s32); +s32 fn_1_82C4(omObjData* object); +void fn_1_8508(omObjData*); +f32 fn_1_8C8C(s32, f32); +void fn_1_95A4(u32); + s32 lbl_1_bss_78[6]; omObjData* lbl_1_bss_90[4]; @@ -22,15 +95,13 @@ char* lbl_1_data_264[0x8] = { "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r" }; - u32 lbl_1_data_284[8][2] = { {0x4A0005, 0x4A0006}, {0x4A0007, 0x4A0008}, {0x4A0009, 0x4A000A}, {0x4A000B, 0x4A000C}, {0x4A000D, 0x4A000E}, {0x4A000F, 0x4A0010}, {0x4A0011, 0x4A0012}, {0x4A0013, 0x4A0014}, }; - -s32 lbl_1_data_2C4[4] = { +u32 lbl_1_data_2C4[4] = { 0, 0x4A0020, 0x17, 0x72 }; @@ -40,13 +111,30 @@ s32 lbl_1_data_324[4] = { s32 lbl_1_data_334[4] = { 0x72B, 0x72C, 0x72D, 0x72E, }; - -///// -void fn_1_5680(omObjData* object); -void fn_1_5BD4(omObjData*); -void fn_1_8508(omObjData*); -f32 fn_1_8C8C(s32, f32); -///// +s32 lbl_1_data_344[4] = { + 0x72F, 0x730, 0x731, 0x732, +}; +s32 lbl_1_data_354[4] = { + 0x736, 0x737, 0x738, 0x739, +}; +Vec lbl_1_data_364[4] = { + { 0.0f, 180.0f, 500.0f }, + { -150.0f, 110.0f, 500.0f }, + { 170.0f, 80.0f, 500.0f }, + { 350.0f, 0.0f, 500.0f } +}; +Vec lbl_1_data_394[4] = { + { -225.0f, 0.0f, 1000.0f }, + { -75.0f, 0.0f, 1000.0f }, + { 75.0f, 0.0f, 1000.0f }, + { 225.0f, 0.0f, 1000.0f } +}; +Vec lbl_1_data_3C4[4] = { + { 250.0f, 0.0f, -1000.0f }, + { -350.0f, 0.0f, -1700.0f }, + { 450.0f, 0.0f, -2200.0f }, + { 0.0f, 0.0f, -3000.0f } +}; void fn_1_5444(Process* arg0) { u32 sp18[4]; @@ -175,3 +263,393 @@ void fn_1_5680(omObjData* object) { temp_r31->unk34 = 0; object->func = fn_1_5BD4; } + +void fn_1_5BD4(omObjData* object) { + Vec sp8; + f32 var_f29; + f32 var_f30; + f32 var_f31; + M443DllWorkStruct* temp_r31; + + temp_r31 = object->data; + temp_r31->unk10 = 0; + temp_r31->unk14 = 0; + temp_r31->unk18 = 0.0f; + if (temp_r31->unk108 != 0) { + if (temp_r31->unk24 != 0) { + fn_1_6DA8(object); + } else { + temp_r31->unk14 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx]; + temp_r31->unk10 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx]; + var_f29 = HuPadTrigR[GWPlayerCfg[object->work[0]].pad_idx]; + if (var_f29 > 140.0f) { + var_f29 = 140.0f; + } + temp_r31->unk18 = (1.0f / 140.0f) * var_f29; + } + } + switch (temp_r31->unk34) { + case 0: + temp_r31->unk100->unk_1C = temp_r31->unkDC; + temp_r31->unk100->unk_54.y = 150.0f; + temp_r31->unk100->unk_1C.y += temp_r31->unk100->unk_54.y; + temp_r31->unk100->unk_28.x = -30.0f; + temp_r31->unk100->unk_28.y = 90.0f; + temp_r31->unk100->unk_34 = 500.0f; + temp_r31->unk100->unk_6C = -20.0f - frandmod(10); + temp_r31->unk100->unk_70 = 160.0f + frandmod(0x28); + temp_r31->unk100->unk_78 = temp_r31->unk100->unk_44; + temp_r31->unk100->unk_7C = temp_r31->unk100->unk_48; + temp_r31->unk100->unk_80 = temp_r31->unk100->unk_40; + if ((temp_r31->unk40 < 120.0f) && ((temp_r31->unk40 % 60) > 10)) { + temp_r31->unk18 = 1.0f; + } + if (fn_1_3FFC() == 2) { + temp_r31->unk34++; + temp_r31->unk40 = 0; + temp_r31->unkB0 = HuAudFXPlay(lbl_1_data_324[object->work[0]]); + } + break; + case 1: + temp_r31->unk100->unk_00 = 1; + var_f31 = (5.0f / 600.0f) * temp_r31->unk40; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + var_f30 = 2.0f * (var_f31 - 0.5f); + if (var_f30 < 0.0f) { + var_f30 = 0.0f; + } + var_f30 = var_f30 * var_f30; + sp8.x = 320.0 + (160.0 * (var_f31 * cos(M_PI * ((450.0f * var_f31) + (90.0f * object->work[0])) / 180.0))); + sp8.y = 240.0 + (120.0 * (var_f31 * sin(M_PI * ((450.0f * var_f31) + (90.0f * object->work[0])) / 180.0))); + temp_r31->unk100->unk_44 = sp8.x + (var_f30 * (temp_r31->unk100->unk_78 - sp8.x)); + temp_r31->unk100->unk_48 = sp8.y + (var_f30 * (temp_r31->unk100->unk_7C - sp8.y)); + temp_r31->unk100->unk_40 = 0.01f + ((temp_r31->unk100->unk_80 - 0.01f) * var_f31); + temp_r31->unk100->unk_28.y = 90.0f + ((temp_r31->unk100->unk_70 - 90.0f) * var_f31); + temp_r31->unk100->unk_34 = 500.0f + (-200.0f * var_f30); + if (var_f31 >= 1.0f) { + temp_r31->unk108 = 1; + if (temp_r31->unk40 >= 150.0f) { + fn_1_3FE8(4); + temp_r31->unk34++; + temp_r31->unk40 = 0; + } + } + break; + case 2: + var_f31 = (5.0f / 600.0f) * temp_r31->unk40; + if (var_f31 > 0.2f) { + var_f31 = 0.2f; + } + temp_r31->unk100->unk_28.x = fn_1_488C(temp_r31->unk100->unk_28.x, -12.0f, var_f31); + temp_r31->unk100->unk_28.y = fn_1_488C(temp_r31->unk100->unk_28.y, 0.0f, var_f31); + temp_r31->unk100->unk_34 += ((1000.0f - temp_r31->unk100->unk_34) * (0.5f * var_f31)); + break; + } + fn_1_7340(object); + PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); + fn_1_7130(object); + fn_1_69B4(object); + + if (fn_1_42CC() == 2) { + temp_r31->unk100->unk_1C = temp_r31->unkDC; + temp_r31->unk100->unk_1C.y += 150.0f; + temp_r31->unk100->unk_54.y = 150.0f; + temp_r31->unk100->unk_28.x = -12.0f; + temp_r31->unk100->unk_28.y = 0.0f; + temp_r31->unk100->unk_34 = 1000.0f; + temp_r31->unk34 = 0; + object->func = &fn_1_6458; + } +} + +void fn_1_6458(omObjData* object) { + f32 var_f31; + s32 var_r29; + M443DllWorkStruct* temp_r31; + void* temp_r4; + + temp_r31 = object->data; + var_r29 = 0; + temp_r31->unk10 = 0; + temp_r31->unk14 = 0; + temp_r31->unk18 = 0.0f; + if (temp_r31->unk24 != 0) { + fn_1_6DA8(object); + } else { + temp_r31->unk14 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx]; + temp_r31->unk10 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx]; + var_f31 = HuPadTrigR[GWPlayerCfg[object->work[0]].pad_idx]; + if (var_f31 > 140.0f) { + var_f31 = 140.0f; + } + temp_r31->unk18 = (1.0f / 140.0f) * var_f31; + } + switch (temp_r31->unk34) { + case 0: + fn_1_8138(object, 1); + var_r29 = 1; + } + fn_1_7340(object); + PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); + fn_1_7130(object); + fn_1_69B4(object); + temp_r31->unk100->unk_1C = temp_r31->unkDC; + PSVECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C); + if ((fn_1_42E4() == 3) && (var_r29 != 0)) { + fn_1_43AC(object->work[0]); + temp_r31->unk108 = 0; + temp_r31->unk34 = 0; + object->func = fn_1_6674; + } +} + +void fn_1_6674(omObjData* object) { + M443DllWorkStruct* temp_r31; + void* temp_r4; + + temp_r31 = object->data; + temp_r31->unk10 = 0; + temp_r31->unk14 = 0; + temp_r31->unk18 = 0.0f; + fn_1_7340(object); + PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); + fn_1_7130(object); + fn_1_69B4(object); + temp_r31->unk100->unk_1C = temp_r31->unkDC; + PSVECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C); + if (fn_1_42E4() == 5) { + temp_r31->unk1C = 0; + temp_r31->unk34 = 0; + object->func = fn_1_6750; + } +} + +void fn_1_6750(omObjData* object) { + M443DllWorkStruct* temp_r31; + + temp_r31 = object->data; + PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); + fn_1_7130(object); + fn_1_69B4(object); + switch (temp_r31->unk34) { + case 0: + Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[3], 1); + fn_1_95A4(object->work[0]); + Hu3DModelShadowSet(object->model[0]); + temp_r31->unk8 = -1; + fn_1_8138(object, 0); + if (fn_1_4368(object->work[0]) >= 0) { + temp_r31->unkC4 = lbl_1_data_364[fn_1_4368(object->work[0])]; + temp_r31->unkDC = lbl_1_data_3C4[fn_1_4368(object->work[0])]; + temp_r31->unk58 = 30.0f; + } else { + Hu3DModelAttrSet(object->model[1], 1); + temp_r31->unkC4 = lbl_1_data_394[object->work[0]]; + } + temp_r31->unk34++; + break; + case 1: + temp_r31->unk4C = 0.0f; + temp_r31->unk50 = 0.15f; + temp_r31->unk54 = 0.0f; + temp_r31->unkD0.x = temp_r31->unkD0.y = temp_r31->unkD0.z = 0.0f; + fn_1_43AC(object->work[0]); + temp_r31->unk34++; + break; + case 2: + if (fn_1_42FC() == 1) { + if (fn_1_4368(object->work[0]) == 0) { + fn_1_8138(object, 2); + } else { + fn_1_8138(object, 3); + } + temp_r31->unk34++; + } + break; + case 3: + if (fn_1_82C4(object) != 0) { + fn_1_43DC(object->work[0]); + temp_r31->unk34++; + } + break; + } +} + +void fn_1_69B4(omObjData* object) { + M443DllWorkStruct* temp_r31; + + temp_r31 = object->data; + temp_r31->unk40++; + temp_r31->unk38++; + object->trans.x = temp_r31->unkC4.x; + object->trans.y = temp_r31->unkC4.y; + object->trans.z = temp_r31->unkC4.z; + temp_r31->unk50 += temp_r31->unk54; + if (temp_r31->unk50 > 0.45f) { + temp_r31->unk50 = 0.45f; + } + temp_r31->unk48 = fn_1_488C(temp_r31->unk48, temp_r31->unk4C, temp_r31->unk50); + object->rot.y = temp_r31->unk48; + if (temp_r31->unk1C != 0) { + if (temp_r31->unk20 == 0) { + Hu3DModelHookSet(object->model[1], "hook", object->model[0]); + } + + temp_r31->unkDC.z = temp_r31->unkC4.z= -(temp_r31->unk78 - temp_r31->unkBC); + fn_1_8138(object, 1); + } else { + if (temp_r31->unk20 != 0) { + Hu3DModelHookReset(object->model[1]); + } + Hu3DModelPosSetV(object->model[0], &temp_r31->unkC4); + Hu3DModelRotSet(object->model[0], 0.0f, temp_r31->unk48, 0.0f); + } + temp_r31->unk20 = temp_r31->unk1C; + Hu3DModelPosSetV(object->model[1], &temp_r31->unkDC); + Hu3DModelRotSet(object->model[1], 0.0f, temp_r31->unk58, 0.0f); + Hu3DModelPosSetV(object->model[2], &temp_r31->unkDC); + Hu3DModelRotSet(object->model[2], 0.0f, temp_r31->unk58, 0.0f); +} + +void fn_1_6B90(omObjData* object) { + M443DllWorkStruct* temp_r29; + M443DllWorkStruct* temp_r27 = object->data; + s32 sp28[4][4] = { + { 0, 1, 2, 3 }, + { 1, 0, 1, 2 }, + { 2, 1, 0, 1 }, + { 3, 2, 1, 0 }, + }; + f32 sp18[4] = { + 0.0f, -700.0f, 600.0f, 1200.0f + }; + s32 sp14; + s32 sp10; + s32 spC; + s32 sp8[4] = { 2, 4, 8, 16 }; + f32 var_f31; + s32 var_r28; + u32 var_r30; + + var_r28 = sp8[object->work[0]] | 1; + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r30 != object->work[0]) { + temp_r29 = lbl_1_bss_90[var_r30]->data; + var_f31 = temp_r29->unk78; + if (temp_r29->unk74 != temp_r27->unk74) { + var_f31 += 1.6666667f * temp_r29->unk7C; + } + var_f31 = temp_r27->unk78 - var_f31; + if (var_f31 > sp18[sp28[object->work[0]][var_r30]]) { + var_r28 |= sp8[var_r30]; + } + } + } + fn_1_421C(object->model[0], var_r28); + fn_1_421C(object->model[1], var_r28); + fn_1_421C(object->model[2], var_r28); + fn_1_421C(object->model[3], var_r28); +} + +void fn_1_6DA8(omObjData* object) { + f32 var_f31; + M443DllWorkStruct* temp_r31; + + temp_r31 = object->data; + switch (temp_r31->unk60) { + case 0: + var_f31 = 1.25f - temp_r31->unk5C; + var_f31 *= 0.6f + (0.00040000002f * frandmod(0x3E8)); + if (frandmod(0x3E8) < 0x1F4) { + var_f31 *= -1.0f; + } + temp_r31->unk64 = (3000.0f + (2000.0f * var_f31)); + temp_r31->unk60++; + /* fallthrough */ + case 1: + if (temp_r31->unk88 < temp_r31->unk64) { + temp_r31->unk18 = 1.0f; + } + if (temp_r31->unkA0 >= 1.0f) { + temp_r31->unk60 = (s32) (temp_r31->unk60 + 1); + } + break; + case 2: + temp_r31->unk18 = 1.0f; + if (temp_r31->unk80 != temp_r31->unk68) { + temp_r31->unk6C = temp_r31->unk70 = 0.0f; + if (frandmod(0x3E8) < 0x1F4) { + var_f31 = 1.2f - temp_r31->unk5C; + var_f31 *= (0.5f + 0.0005f * frandmod(0x3E8)); + temp_r31->unk6C = 8000.0f - 1500.0f * var_f31; + } else { + var_f31 = 1.2f - temp_r31->unk5C; + var_f31 *= (0.5f + 0.0005f * frandmod(0x3E8)); + temp_r31->unk70 = 0.016666668f + var_f31; + } + } + temp_r31->unk68 = temp_r31->unk80; + if (temp_r31->unk6C > 0.0f) { + if (temp_r31->unk88 > temp_r31->unk6C) { + temp_r31->unk10 = (s32) (temp_r31->unk10 | 0x100); + temp_r31->unk6C = 0.0f; + break; + } + } else if (temp_r31->unk70 > 0.0f) { + if (temp_r31->unk88 >= 8000.0f) { + temp_r31->unk70 = (temp_r31->unk70 - 0.016666668f); + if (temp_r31->unk70 <= 0.0f) { + temp_r31->unk10 = (s32) (temp_r31->unk10 | 0x100); + temp_r31->unk70 = 0.0f; + } + } + } + break; + } +} + +void fn_1_7130(omObjData* object) { + Vec sp8; + f32 var_f31; + s32 var_r27; + s32 var_r29; + s32 var_r28; + M443DllWorkStruct* temp_r30; + M443DllWorkStruct* temp_r31; + + + for (var_r27 = 0; var_r27 < 2; var_r27++) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + temp_r31 = lbl_1_bss_90[var_r29]->data; + + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if (var_r29 != var_r28) { + temp_r30 = lbl_1_bss_90[var_r28]->data; + PSVECSubtract(&temp_r31->unkC4, &temp_r30->unkC4, &sp8); + sp8.y = 0.0f; + var_f31 = PSVECMag(&sp8); + if (var_f31 < (temp_r31->unkC0 + temp_r30->unkC0)) { + if (var_f31 > 0.0f) { + var_f31 = 0.5f * ((temp_r31->unkC0 + temp_r30->unkC0) - var_f31); + } else { + var_f31 = 0.5f * (temp_r31->unkC0 + temp_r30->unkC0); + sp8.x = (frandmod(0x3E8) - 0x1F4); + sp8.z = (frandmod(0x3E8) - 0x1F4); + } + PSVECNormalize(&sp8, &sp8); + PSVECScale(&sp8, &sp8, var_f31); + PSVECAdd(&temp_r31->unkC4, &sp8, &temp_r31->unkC4); + PSVECSubtract(&temp_r30->unkC4, &sp8, &temp_r30->unkC4); + } + } + } + if (temp_r31->unkC4.y < 0.0f) { + temp_r31->unkC4.y = 0.0f; + } + } + } +} From 30d9177c650146c017fd80e5e698b2d1d1221b83 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Fri, 1 Nov 2024 09:53:04 -0500 Subject: [PATCH 093/311] Match m461dll --- config/GMPE01_00/rels/m461Dll/symbols.txt | 9 +- configure.py | 2 +- src/REL/m461Dll/main.c | 1852 +++++++++++++++++++++ 3 files changed, 1858 insertions(+), 5 deletions(-) diff --git a/config/GMPE01_00/rels/m461Dll/symbols.txt b/config/GMPE01_00/rels/m461Dll/symbols.txt index 02cf6c76..04ac5e69 100644 --- a/config/GMPE01_00/rels/m461Dll/symbols.txt +++ b/config/GMPE01_00/rels/m461Dll/symbols.txt @@ -70,7 +70,7 @@ fn_1_ADDC = .text:0x0000ADDC; // type:function size:0x458 fn_1_B234 = .text:0x0000B234; // type:function size:0x7F8 fn_1_BA2C = .text:0x0000BA2C; // type:function size:0xF44 fn_1_C970 = .text:0x0000C970; // type:function size:0x240 -fn_1_CBB0 = .text:0x0000CBB0; // type:function size:0xB5C +ObjectSetup = .text:0x0000CBB0; // type:function size:0xB5C fn_1_D70C = .text:0x0000D70C; // type:function size:0xD0 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte @@ -157,7 +157,7 @@ lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 -lbl_1_data_80 = .data:0x00000080; // type:object size:0x20 +lbl_1_data_80 = .data:0x00000080; // type:object size:0x1F data:string lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC data:4byte lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC lbl_1_data_B8 = .data:0x000000B8; // type:object size:0xC data:4byte @@ -184,7 +184,7 @@ lbl_1_data_343 = .data:0x00000343; // type:object size:0x9 data:string lbl_1_data_34C = .data:0x0000034C; // type:object size:0x6 data:string lbl_1_data_352 = .data:0x00000352; // type:object size:0x1D data:string lbl_1_data_36F = .data:0x0000036F; // type:object size:0x1D data:string -lbl_1_data_38C = .data:0x0000038C; // type:object size:0x1C +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x1B data:string jumptable_1_data_3A8 = .data:0x000003A8; // type:object size:0x20 scope:local lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x24 data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float @@ -199,7 +199,8 @@ lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x10 -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x10 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x50 lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index dd0f6cb2..f2843a6e 100644 --- a/configure.py +++ b/configure.py @@ -1263,7 +1263,7 @@ config.libs = [ Rel( "m461Dll", # Bob-omb X-ing objects={ - Object(NonMatching, "REL/m461Dll/main.c"), + Object(Matching, "REL/m461Dll/main.c"), }, ), Rel( diff --git a/src/REL/m461Dll/main.c b/src/REL/m461Dll/main.c index 4fe7f0b7..b5b0bfd0 100644 --- a/src/REL/m461Dll/main.c +++ b/src/REL/m461Dll/main.c @@ -5,6 +5,7 @@ #include "game/object.h" #include "game/objsub.h" #include "game/wipe.h" +#include "game/gamework.h" #include "game/gamework_data.h" @@ -477,4 +478,1855 @@ void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) } } VECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0); +} + +typedef void (*PlayerOldHook)(omObjData *obj); +typedef Vec *(*PlayerOldPosHook)(omObjData *obj); + +typedef struct work_playerold { + omObjData *unk0; + PlayerOldHook unk4; + PlayerOldPosHook unk8; + PlayerOldHook unkC; + PlayerOldHook unk10; + s32 *unk14; + s32 unk18; + s32 unk1C; + s32 unk20; + s32 unk24; + s32 unk28; + s32 unk2C; + s32 unk30; + s32 unk34; + s32 unk38; + s32 unk3C; + s32 unk40; + s32 unk44; + s32 unk48; + s32 unk4C; + Vec *unk50; + Vec unk54; + float unk60; + s32 unk64; + Vec *unk68; + Vec unk6C; + Vec unk78; + Vec unk84; + Vec unk90; + float unk9C; + float unkA0; + float unkA4; + float unkA8; + Vec unkAC; + float unkB8; + float unkBC; + float unkC0; +} WorkPlayerOld; + +typedef WorkPlayerOld *(*PlayerOldFind)(int no); + +PlayerOldFind lbl_1_bss_A8; +float lbl_1_bss_A4; +omObjData *lbl_1_bss_A0; +omObjData *lbl_1_bss_9C; +omObjData *lbl_1_bss_4C[20]; +int lbl_1_bss_48; +int lbl_1_bss_3C[3]; +int lbl_1_bss_2C[4]; +s32 lbl_1_bss_28; +s32 lbl_1_bss_24; +s32 lbl_1_bss_20; +float lbl_1_bss_1C; +BOOL lbl_1_bss_18; +BOOL lbl_1_bss_14; +s32 lbl_1_bss_10; +s32 lbl_1_bss_C; +float lbl_1_bss_8; +float lbl_1_bss_4; +float lbl_1_bss_0; + +s16 lbl_1_data_0[8] = { + 0, 1, 2, 3, 4, 5, 6, 7 +}; + +s32 lbl_1_data_10[8] = { + 0, 1, 2, 3, 4, 5, 6, 7 +}; + +float lbl_1_data_30[10] = { + 70, 70, 70, 70, 70, 70, 70, 70, 70, 100 +}; + +float lbl_1_data_58[10] = { + 150, 170, 190, 170, 160, 150, 180, 200, 150, 200 +}; + +void fn_1_23B4(WorkPlayerOld *player) +{ + s32 i; + for(i=0; i<8; i++) { + if(player->unk44 == player->unk14[i]) { + player->unk40 = lbl_1_data_10[i]; + return; + } + } + player->unk40 = -1; +} + +void fn_1_2418(float *minDist, s32 *state, s32 stateNew, Vec *posA, float aYOfs, Vec *posB, float bYOfs) +{ + Vec pointA = *posA; + Vec pointB = *posB; + float dist; + pointA.y += aYOfs; + pointB.y += bYOfs; + dist = VECDistance(&pointA, &pointB); + if(*minDist > dist) { + *minDist = dist; + *state = stateNew; + } +} + +void fn_1_24F8(WorkPlayerOld *player1, WorkPlayerOld *player2, float *minDist, s32 *state) +{ + *minDist = 10*(player1->unkBC+player2->unkBC); + fn_1_2418(minDist, state, 0, &player1->unk6C, player1->unkBC, &player2->unk6C, player2->unkBC); + fn_1_2418(minDist, state, 1, &player1->unk6C, player1->unkC0-player1->unkBC, &player2->unk6C, player2->unkC0-player2->unkBC); + fn_1_2418(minDist, state, 2, &player1->unk6C, player1->unkBC, &player2->unk6C, player2->unkC0-player2->unkBC); + fn_1_2418(minDist, state, 3, &player1->unk6C, player1->unkC0-player1->unkBC, &player2->unk6C, player2->unkBC); +} + +s32 fn_1_2824(WorkPlayerOld *player, WorkPlayerOld *player2) +{ + Vec dir; + Vec dir2; + float dist; + + player->unk3C |= 0x1; + player->unk90.x = player->unk20/4.0f; + player->unk90.z = -(float)player->unk24/4.0f; + if(player->unk90.x != 0.0f || player->unk90.z != 0.0f) { + return; + } + VECSubtract(&player->unk6C, &player2->unk6C, &dir); + dist = VECMagXZ(&dir); + if(0.0f == dist) { + dir.x = 0; + dir.z = -1; + } else { + dir.x /= dist; + dir.z /= dist; + } + VECSubtract(&player->unk6C, &player->unk78, &dir2); + dist = VECMagXZ(&dir2); + if(5 > dist) { + dist = 5; + } + player->unk90.x = dir.x*dist; + player->unk90.z = dir.z*dist; +} + +void fn_1_2BD0(WorkPlayerOld *player, float arg1, float arg2) +{ + player->unk38 = 1; + player->unk84.y = arg1; + player->unkA4 = arg2; + if(player->unk3C & 0x2) { + player->unk3C &= ~0x2; + } +} + +void fn_1_2C00(PlayerOldFind find, float yDist) +{ + lbl_1_bss_A8 = find; + lbl_1_bss_A4 = yDist; +} + +void fn_1_2C1C(WorkPlayerOld *player, omObjData *obj, s32 arg2, s32 arg3, s32 *arg4, s32 arg5, Vec *pos, float arg7) +{ + player->unk0 = obj; + player->unk18 = arg2; + player->unk1C = arg3; + player->unk14 = arg4; + player->unk4 = NULL; + player->unk8 = NULL; + player->unkC = NULL; + player->unk10 = NULL; + player->unk50 = NULL; + player->unk64 = 0; + player->unk68 = 0; + player->unk38 = 0; + player->unk3C = 0; + player->unk44 = arg5; + player->unk48 = 0; + player->unk4C = 0; + fn_1_23B4(player); + player->unk9C = arg7; + player->unk6C = *pos; + player->unk78 = *pos; + player->unk84.x = 0; + player->unk84.y = 0; + player->unk84.z = 0; + player->unkB8 = 1; + player->unkA8 = 0; + player->unkBC = lbl_1_data_30[player->unk1C]; + player->unkC0 = lbl_1_data_58[player->unk1C]; +} + +void fn_1_2DA8(WorkPlayerOld *player, PlayerOldHook func) +{ + player->unk4 = func; +} + +void fn_1_2DB0(WorkPlayerOld *player, PlayerOldPosHook func) +{ + player->unk8 = func; +} + +void fn_1_2DB8(WorkPlayerOld *player, PlayerOldHook func) +{ + player->unkC = func; +} + +void fn_1_2DC0(WorkPlayerOld *player, PlayerOldHook func) +{ + player->unk10 = func; +} + +void fn_1_2DC8(WorkPlayerOld *player, s32 count, Vec *data) +{ + player->unk64 = count; + player->unk68 = data; +} + +void fn_1_2DD4(WorkPlayerOld *player) +{ + omSetTra(player->unk0, player->unk6C.x, player->unk6C.y, player->unk6C.z); + omSetRot(player->unk0, 0, player->unk9C, 0); +} + +void fn_1_2E34(WorkPlayerOld *player) +{ + BOOL addTime; + s32 i; + player->unk3C &= ~0x100; + if(player->unk3C & 0x8) { + return; + } + if(NULL == lbl_1_bss_A8) { + return; + } + addTime = FALSE; + for(i=0; i<4; i++) { + WorkPlayerOld *player2 = lbl_1_bss_A8(i); + BOOL fixPos; + float minDist; + s32 state; + if(player == player2) { + continue; + } + if(player2->unk3C & 0x8) { + continue; + } + fixPos = FALSE; + fn_1_24F8(player, player2, &minDist, &state); + if(minDist < player->unkBC+player2->unkBC) { + if(state < 2) { + fixPos = TRUE; + if(player->unk38 == 1) { + fn_1_2824(player, player2); + } + } else { + if(state == 2 && player->unk38 == 1) { + fn_1_2824(player, player2); + player->unk3C |= 0x100; + player->unkA4 = 0; + if(!(player2->unk3C & 0x100)) { + player->unk84.y = 26.766666f; + } + } + if(state == 3) { + fixPos = TRUE; + if(player->unk38 == 1) { + if(0.0f < player->unk84.y) { + player->unk84.y = 0.0f; + } + player->unkA4 = 0; + } + } + } + } + if(fixPos) { + Vec dir; + addTime = TRUE; + VECSubtract(&player->unk6C, &player2->unk6C, &dir); + if(0.0f == minDist) { + dir.x = 0; + dir.z = -1; + } else { + dir.x /= minDist; + dir.z /= minDist; + } + player->unk6C.x = player2->unk6C.x+(dir.x*(player->unkBC+player2->unkBC)); + player->unk6C.z = player2->unk6C.z+(dir.z*(player->unkBC+player2->unkBC)); + } + } + if(addTime) { + player->unk4C++; + } else { + player->unk4C = 0; + } +} + +float fn_1_39C4(WorkPlayerOld *player, float arg2) +{ + Vec *pos; + s32 i; + AddX = 0; + AddZ = 0; + if(NULL != player->unk68) { + for(pos=player->unk68, i=0; iunk64; i++, pos += 2) { + int num = 0; + if(pos[0].x == pos[1].x || pos[0].x > player->unk6C.x || pos[1].x < player->unk6C.x) { + num++; + } + if(pos[0].y == pos[1].y || pos[0].y > player->unk6C.y || pos[1].y < player->unk6C.y) { + num++; + } + if(pos[0].z == pos[1].z || pos[0].z > player->unk6C.z || pos[1].z < player->unk6C.z) { + num++; + } + if(num == 3) { + if(pos[0].x != pos[1].x) { + if(pos[0].x > player->unk6C.x) { + player->unk6C.x = pos[0].x+player->unkBC; + } + if(pos[1].x < player->unk6C.x) { + player->unk6C.x = pos[1].x-player->unkBC; + } + } + if(pos[0].y != pos[1].y) { + if(pos[0].y > player->unk6C.y) { + player->unk6C.y = pos[0].y; + } + if(pos[1].y < player->unk6C.y) { + player->unk6C.y = pos[1].y; + } + } + if(pos[0].z != pos[1].z) { + if(pos[0].z > player->unk6C.z) { + player->unk6C.z = pos[0].z+player->unkBC; + } + if(pos[1].z < player->unk6C.z) { + player->unk6C.z = pos[1].z-player->unkBC; + } + } + } + } + } + return ABS(AddX)+ABS(AddZ); +} + +void fn_1_3C74(WorkPlayerOld *player, s32 *state, u32 *motAttr) +{ + *motAttr = HU3D_MOTATTR_LOOP; + *state = 0; + if(0.5f <= player->unkA0) { + if(7.0f <= player->unkA0) { + *state = 2; + } else { + *state = 1; + } + } + + if(player->unk14[3] >= 0 && (player->unk28 & 0x100)) { + player->unk38 = 1; + player->unk84.y = 26.766666f; + player->unkA4 = 1; + if(player->unk3C & 0x2) { + player->unk3C &= ~0x2; + } + *motAttr = HU3D_MOTATTR_NONE; + *state = 3; + } +} + +void fn_1_3D4C(WorkPlayerOld *player, s32 *state, u32 *motAttr) +{ + if(0.0f < player->unkA4) { + if(player->unk2C & 0x100) { + player->unkA4++; + if(4.0f < player->unkA4) { + player->unkA4 = 0; + } else { + player->unk84.y += 3.65f; + } + } else { + player->unkA4 = 0; + } + } + player->unk84.y += -2.4333334f; + if(player->unk14[5] >= 0 && (player->unk28 & 0x140)) { + player->unk38 = 3; + player->unk84.y = 0; + player->unk3C &= ~0x3; + player->unk3C |= 0x4; + *motAttr = HU3D_MOTATTR_NONE; + *state = 5; + } +} + +void fn_1_3E60(WorkPlayerOld *player, s32 *state, u32 *motAttr) +{ + if((player->unk3C & 0x1000) || Hu3DMotionEndCheck(player->unk0->model[0])) { + player->unk3C &= ~0x3; + if(player->unk40 == 6) { + player->unk38 = 4; + *motAttr = HU3D_MOTATTR_NONE; + *state = 7; + } else { + player->unk38 = 0; + *motAttr = HU3D_MOTATTR_LOOP; + *state = 0; + } + } +} + +void fn_1_3F18(WorkPlayerOld *player, s32 *state, u32 *motAttr) +{ + if(Hu3DMotionShiftIDGet(player->unk0->model[0]) < 0 && Hu3DMotionEndCheck(player->unk0->model[0])) { + player->unk38 = 1; + player->unk84.y = 0; + player->unkA4 = 0; + if(player->unk3C & 0x2) { + player->unk3C &= ~0x2; + } + } +} + + +void fn_1_3FB8(WorkPlayerOld *player, s32 *state, u32 *motAttr) +{ + if(Hu3DMotionShiftIDGet(player->unk0->model[0]) < 0 && Hu3DMotionEndCheck(player->unk0->model[0])) { + player->unk3C &= ~0x4; + player->unk38 = 0; + *motAttr = HU3D_MOTATTR_LOOP; + *state = 0; + } +} + +void fn_1_4054(WorkPlayerOld *player) +{ + u32 motAttr = HU3D_MOTATTR_NONE; + s32 state = -1; + float temp_f28; + float temp_f23; + float temp_f22; + Vec *pos; + BOOL temp_r27; + if(player->unk3C & 0x1) { + player->unk84.x = player->unk90.x; + player->unk84.z = player->unk90.z; + } else { + player->unk84.x = player->unk20/4.0f; + player->unk84.z = -(float)player->unk24/4.0f; + if(player->unk38 == 1 && 0.0f == player->unk84.x && 0.0f == player->unk84.z) { + player->unk84.x = 0.98f*(player->unk6C.x-player->unk78.x); + player->unk84.z = 0.98f*(player->unk6C.z-player->unk78.z); + } + if(player->unk3C & 0x14) { + player->unk84.x = 0; + player->unk84.z = 0; + player->unk28 = 0; + } + } + player->unk78 = player->unk6C; + player->unkA0 = VECMagXZ(&player->unk84); + if(0.5f <= player->unkA0) { + if(10.0f <= player->unkA0) { + player->unk84.x /= player->unkA0; + player->unk84.z /= player->unkA0; + player->unkA0 = 10; + player->unk84.x = 10*player->unk84.x; + player->unk84.z = 10*player->unk84.z; + } + } else { + player->unk84.x = 0; + player->unk84.z = 0; + player->unkA0 = 0; + } + player->unk84.x *= player->unkB8; + player->unk84.z *= player->unkB8; + player->unkA0 *= player->unkB8; + if(player->unk3C & 0x800) { + player->unk28 |= 0x100; + player->unk2C |= 0x100; + if(player->unk38 == 1) { + if(0.0f == player->unkA4) { + player->unk3C &= ~0x800; + } + } + } + switch(player->unk38) { + case 0: + fn_1_3C74(player, &state, &motAttr); + break; + + case 1: + fn_1_3D4C(player, &state, &motAttr); + break; + + case 2: + fn_1_3E60(player, &state, &motAttr); + break; + + case 3: + fn_1_3F18(player, &state, &motAttr); + break; + + case 4: + fn_1_3FB8(player, &state, &motAttr); + break; + + default: + OSReport("*** player action error(%d)!!\n", player->unk38); + break; + } + if(player->unk3C & 0x2000) { + player->unk84.y = 0; + } + temp_f28 = 0; + if(50.0f < ABS(player->unk84.y)) { + player->unk84.y = 50.0f*((0.0f > player->unk84.y) ? -1 : 1); + } + if(player->unk3C & 0x2) { + Mtx rotMtx; + MTXRotDeg(rotMtx, 'y', player->unk50[2].x-player->unk60); + MTXMultVec(rotMtx, &player->unk54, &player->unk54); + VECAdd(&player->unk54, &player->unk50[0], &player->unk6C); + player->unk9C += player->unk50[2].x-player->unk60; + } + temp_f22 = player->unk6C.y; + VECAdd(&player->unk6C, &player->unk84, &player->unk6C); + if((player->unk3C & 0x1) == 0 && (0.0f != player->unk84.x || 0.0f != player->unk84.z)) { + player->unk9C = fn_1_1E20(player->unk9C, atan2d(player->unk84.x, player->unk84.z), 0.4f*player->unkB8); + } + temp_f28 += fn_1_39C4(player, temp_f22); + if(nMap == 0) { + player->unkA8 = lbl_1_bss_A4; + } else { + player->unkA8 = MapPos(player->unk6C.x, player->unk6C.y, player->unk6C.z, player->unkC0, &player->unkAC); + } + temp_r27 = FALSE; + if(NULL != player->unk8) { + pos = player->unk8(player->unk0); + if(NULL != pos) { + if(player->unkA8 < pos[1].y) { + temp_r27 = TRUE; + player->unk50 = pos; + player->unkA8 = pos[1].y; + } + } + } + if(!temp_r27 && (player->unk3C & 0x2)) { + player->unk3C &= ~0x2; + } + if(player->unk38 == 1 && player->unkA8 >= player->unk6C.y) { + player->unk38 = 2; + player->unk3C &= ~0x3; + player->unk6C.y = player->unkA8; + player->unk84.y = 0; + motAttr = HU3D_MOTATTR_NONE; + state = 4; + if(player->unk40 == 5) { + state = 6; + if(NULL != player->unk10) { + player->unk10(player->unk0); + } + if(player->unk18 < 4) { + omVibrate(player->unk18, 12, 4, 2); + } + } + if(player->unk3C & 0x200) { + state = -1; + if(NULL != player->unkC) { + player->unkC(player->unk0); + } + } + if(temp_r27) { + player->unk3C |= 0x2; + } + } + temp_f23 = player->unk6C.y-player->unkA8; + if(player->unk38 == 0 && 10.0f < temp_f23) { + if(!(player->unk3C & 0x2000) && (player->unk3C & 0x400)) { + player->unk3C |= 0x800; + } + } else if(temp_r27) { + if(!(player->unk3C & 0x2)) { + player->unk6C.y = player->unkA8; + player->unk3C |= 0x2; + } + } + fn_1_2E34(player); + if(NULL != player->unk4) { + player->unk4(player->unk0); + } + temp_f28 += fn_1_39C4(player, player->unk6C.y); + if(player->unk3C & 0x2) { + player->unk60 = player->unk50[2].x; + VECSubtract(&player->unk6C, &player->unk50[0], &player->unk54); + } + if(0.0f != temp_f28) { + player->unk48++; + } else { + player->unk48 = 0; + } + if(state >= 0 && player->unk40 != state) { + player->unk40 = state; + player->unk44 = player->unk14[player->unk40]; + if(player->unk44 >= 0 && !(player->unk3C & 0x20)) { + Hu3DMotionShiftSet(player->unk0->model[0], player->unk0->motion[player->unk44], 0, 8, motAttr); + } + } +} + +void fn_1_4E1C(WorkPlayerOld *player, s32 motNo) +{ + s32 i; + player->unk44 = motNo; + player->unk38 = 0; + player->unk3C &= 0x1400; + player->unk78 = player->unk6C; + player->unk84.x = 0; + player->unk84.y = 0; + player->unk84.z = 0; + fn_1_23B4(player); + if(player->unk40 == 3) { + Hu3DModelAttrReset(player->unk0->model[0], HU3D_MOTATTR_LOOP|HU3D_MOTATTR_PAUSE); + Hu3DMotionSet(player->unk0->model[0], player->unk0->motion[player->unk44]); + Hu3DMotionTimeSet(player->unk0->model[0], Hu3DMotionMaxTimeGet(player->unk0->model[0])-1); + } else if(player->unk40 == 5) { + player->unk38 = 3; + player->unk3C |= 0x4; + Hu3DModelAttrReset(player->unk0->model[0], HU3D_MOTATTR_LOOP|HU3D_MOTATTR_PAUSE); + Hu3DMotionSet(player->unk0->model[0], player->unk0->motion[player->unk44]); + Hu3DMotionTimeSet(player->unk0->model[0], Hu3DMotionMaxTimeGet(player->unk0->model[0])-1); + } else { + Hu3DModelAttrReset(player->unk0->model[0], HU3D_MOTATTR_PAUSE); + Hu3DMotionShiftSet(player->unk0->model[0], player->unk0->motion[player->unk44], 0, 8, HU3D_MOTATTR_LOOP); + } +} + +void fn_1_506C(WorkPlayerOld *player, s32 attr) +{ + player->unk3C |= attr; +} + +void fn_1_507C(WorkPlayerOld *player, s32 attr) +{ + player->unk3C &= ~attr; +} + +#include "src/REL/executor.c" + +Vec lbl_1_data_A0 = { 0, 600, 600 }; +Vec lbl_1_data_AC = { 0, 1, 0 }; +Vec lbl_1_data_B8 = { 0, 100, 0 }; + +Vec lbl_1_data_C4 = { 0, 2300, 2200 }; +Vec lbl_1_data_D0 = { 0, 1, 0 }; +Vec lbl_1_data_DC = { 0, 0, 0 }; + +Vec lbl_1_data_E8 = { -1500, 4000, 1500 }; +Vec lbl_1_data_F4 = { 1.5, -4, -1.5 }; +GXColor lbl_1_data_100 = { 255, 255, 255, 255 }; + + +Vec lbl_1_data_104 = { -1500, 4000, 1500 }; +Vec lbl_1_data_110 = { 0, 0, 0 }; +Vec lbl_1_data_11C = { 0, 1, 0 }; + +s32 lbl_1_data_128[8][5] = { + 0x005F0000, 0x005F0002, 0x005F0003, 0x005F0014, 0x005F0017, + 0x001A0000, 0x001A0002, 0x001A0003, 0x001A0014, 0x001A0017, + 0x006D0000, 0x006D0002, 0x006D0003, 0x006D0014, 0x006D0017, + 0x008A0000, 0x008A0002, 0x008A0003, 0x008A0014, 0x008A0017, + 0x00850000, 0x00850002, 0x00850003, 0x00850014, 0x00850017, + 0x00110000, 0x00110002, 0x00110003, 0x00110014, 0x00110017, + 0x000D0000, 0x000D0002, 0x000D0003, 0x000D0014, 0x000D0017, + 0x00810000, 0x00810002, 0x00810003, 0x00810014, 0x00810017 +}; + +s32 lbl_1_data_1C8[3] = { + 0x005A0002, + 0x005A0003, + 0x005A0008 +}; + +s32 lbl_1_data_1D4[4] = { + 0x005A0004, + 0x005A0005, + 0x005A0006, + 0x005A0007 +}; + +float lbl_1_data_1E4[3] = { + 0.3f, + 0.5f, + 0.9f +}; + +float lbl_1_data_1F0[10][2] = { + 0, 60, + 1860, 60, + 3660, 50, + 5460, 50, + 7260, 40, + 9060, 40, + 10860, 30, + 12660, 20, + 14460, 10, + -1, 10 +}; + +Vec lbl_1_data_240[3] = { + { 0, 0, 2800 }, + { 2800, 0, 0 }, + { -2800, 0, 0 } +}; + +s32 lbl_1_data_264[3] = { + 70, 30, 0 +}; + +typedef struct data270_struct { + Vec unk0; + float unkC; +} Data270Struct; + +Data270Struct lbl_1_data_270[8] = { + {{ 200, 0, 1400 }, 180 }, + {{ -200, 0, 1400 }, 180 }, + {{ 200, 0, -1400 }, 0 }, + {{ -200, 0, -1400 }, 0 }, + {{ 1400, 0, 200 }, 270 }, + {{ 1400, 0, -200 }, 270 }, + {{ -1400, 0, 200 }, 90 }, + {{ -1400, 0, -200}, 90 } +}; + +Vec lbl_1_data_2F0[4] = { + { 600, 0, 600 }, + { 600, 0, -600 }, + { -600, 0, 600 }, + { -600, 0, -600 } +}; + +void fn_1_512C(void) +{ + if(HuPadBtn[0] & PAD_BUTTON_X) { + lbl_1_bss_200 = 35999; + } + print8(24, 32, 1.5f, "COUNT:%d MODE:%d MES:%d %d/%d %02x", lbl_1_bss_204, lbl_1_bss_A0->work[0], lbl_1_bss_1FA, lbl_1_bss_20, lbl_1_bss_24, lbl_1_bss_28); + print8(24, 48, 1.5f, "%f %f %f", lbl_1_bss_0, lbl_1_bss_8, lbl_1_bss_4); + print8(24, 64, 1.5f, "%x %x", HuMemHeapSizeGet(HEAP_SYSTEM) - HuMemUsedMallocSizeGet(HEAP_SYSTEM), + HuMemHeapSizeGet(HEAP_DATA) - HuMemUsedMallocSizeGet(HEAP_DATA)); + lbl_1_bss_4 -= HuPadSubStkX[0] / 59.0f; + lbl_1_bss_8 -= 4.0f * (HuPadSubStkY[0] / 59.0f); + lbl_1_bss_0 -= (HuPadTrigL[0] / 150.0f) * 4.0f; + lbl_1_bss_0 += (HuPadTrigR[0] / 150.0f) * 4.0f; +} + +typedef struct work_player { + Vec unk0; + Vec unkC; + Vec unk18; + Vec unk24; + Vec unk30; + Vec unk3C; + float unk48; + s32 unk4C; + s32 unk50; + s32 unk54; + s32 unk58; + s32 unk5C; + s32 unk60; +} WorkPlayer; + +typedef struct work_bomhei { + Vec unk0; + Vec unkC; + Vec unk18; + float unk24; + s32 unk28; + s32 unk2C; + s32 unk30; + s32 unk34; +} WorkBomhei; + +void fn_1_5438(Vec *pos) +{ + float dist = VECDistance(pos, &((WorkPlayer *)lbl_1_bss_9C->data)->unk0); + if(2000 < dist) { + return; + } + if(1000 < dist) { + omVibrate(lbl_1_bss_18, 12, 6, 6); + } else if(300 < dist) { + omVibrate(lbl_1_bss_18, 12, 4, 2); + } else { + omVibrate(lbl_1_bss_18, 12, 12, 0); + } +} + +BOOL fn_1_5528(Vec *pos, float offset) +{ + BOOL result = FALSE; + float ofs = 700-offset; + Mtx rotMtx; + + if(ofs < pos->x) { + pos->x = ofs; + } + if(ofs < pos->z) { + pos->z = ofs; + } + if(-ofs > pos->x) { + pos->x = -ofs; + } + if(-ofs > pos->z) { + pos->z = -ofs; + } + if(ofs == ABS(pos->x) || ofs == ABS(pos->z)) { + result = TRUE; + } + MTXRotDeg(rotMtx, 'Y', 45); + MTXMultVec(rotMtx, pos, pos); + ofs = (550*sqrtf(2))-offset; + if(ofs < pos->x) { + pos->x = ofs; + } + if(ofs < pos->z) { + pos->z = ofs; + } + if(-ofs > pos->x) { + pos->x = -ofs; + } + if(-ofs > pos->z) { + pos->z = -ofs; + } + if(ofs == ABS(pos->x) || ofs == ABS(pos->z)) { + result = TRUE; + } + MTXRotDeg(rotMtx, 'Y', -45); + MTXMultVec(rotMtx, pos, pos); + return result; +} + +void fn_1_5894(Vec *pos1, Vec *pos2, float radius1, float radius2) +{ + float dx = pos1->x-pos2->x; + float dz = pos1->z-pos2->z; + float dist = sqrtf((dx*dx)+(dz*dz)); + if(radius1+radius2 > dist) { + if(0.0f == dist) { + dx = 0; + dz = -1; + } else { + dx /= dist; + dz /= dist; + } + pos1->x = pos2->x+(dx*(radius1+radius2)); + pos1->z = pos2->z+(dz*(radius1+radius2)); + } +} + +void fn_1_5A7C(WorkPlayer *player, omObjData *obj) +{ + float distMin; + s32 i; + player->unk58 = 2002; + Hu3DMotionShiftSet(obj->model[0], obj->motion[3], 0, 8, HU3D_MOTATTR_NONE); + distMin = 100000; + for(i=0; i<3; i++) { + float dist = VECDistance(&lbl_1_data_240[i], &player->unk0); + if(distMin > dist) { + distMin = dist; + player->unk3C = lbl_1_data_240[i]; + } + } + player->unk24 = player->unk0; + player->unk30 = player->unk0; + player->unk48 = 15; + lbl_1_bss_10 = HuAudFXEmiterPlay(2084, &player->unk0); + lbl_1_bss_C = HuAudCharVoicePlayPos(player->unk5C, 291, &player->unk0); +} + +void fn_1_5BF4(WorkPlayer *player, omObjData *obj) +{ + s32 i; + s32 action; + player->unkC.x = 0; + player->unkC.y = 0; + player->unkC.z = 0; + player->unkC.x = player->unk4C/4.0f; + player->unkC.z = -(float)player->unk50/4.0f; + action = 0; + player->unk18.z = VECMagXZ(&player->unkC); + if(0.5f <= player->unk18.z) { + if(10.0f <= player->unk18.z) { + player->unkC.x /= player->unk18.z; + player->unkC.z /= player->unk18.z; + player->unk18.z = 10; + player->unkC.x = 10*player->unkC.x; + player->unkC.z = 10*player->unkC.z; + } + player->unk18.y = fn_1_1E20(player->unk18.y, atan2d(player->unkC.x, player->unkC.z), 0.4f); + if(7.0f <= player->unk18.z) { + action = 2; + } else { + action = 1; + } + } + VECAdd(&player->unk0, &player->unkC, &player->unk0); + fn_1_5528(&player->unk0, 70); + for(i=0; i<20; i++) { + WorkBomhei *bomhei; + if(NULL == lbl_1_bss_4C[i]) { + continue; + } + bomhei = lbl_1_bss_4C[i]->data; + if(bomhei->unk34 == 3004 && 30 > Hu3DMotionTimeGet(lbl_1_bss_4C[i]->model[2])) { + float dx = player->unk0.x-bomhei->unk0.x; + float dz = player->unk0.z-bomhei->unk0.z; + if(200 > sqrtf((dx*dx)+(dz*dz))) { + lbl_1_bss_14 = 1; + } + } else { + fn_1_5894(&player->unk0, &bomhei->unk0, 70, 70); + } + } + fn_1_5528(&player->unk0, 70); + if(player->unk54 != action) { + player->unk54 = action; + Hu3DMotionShiftSet(obj->model[0], obj->motion[player->unk54], 0, 8, HU3D_MOTATTR_LOOP); + } +} + +void fn_1_6A00(omObjData *obj) +{ + WorkPlayer *player = obj->data; + float dx; + float dz; + float dist; + switch(player->unk58) { + case 2000: + if(lbl_1_bss_A0->work[0] >= 1004) { + player->unk58++; + } + break; + + case 2001: + player->unk4C = HuPadStkX[player->unk60]; + player->unk50 = HuPadStkY[player->unk60]; + fn_1_5BF4(player, obj); + if(lbl_1_bss_A0->work[0] >= 1005) { + if(lbl_1_bss_14) { + fn_1_5A7C(player, obj); + } else { + player->unk58 = 2003; + Hu3DMotionShiftSet(obj->model[0], obj->motion[0], 0, 8, HU3D_MOTATTR_LOOP); + } + } + break; + + case 2002: + dx = player->unk3C.x-player->unk0.x; + dz = player->unk3C.z-player->unk0.z; + dist = sqrtf((dx*dx)+(dz*dz)); + if(player->unk48 < dist) { + dx = player->unk48*(dx/dist); + dz = player->unk48*(dz/dist); + } + player->unk18.x -= player->unk48; + if(0.0f > player->unk18.x) { + player->unk18.x += 360; + } + player->unk18.y = fn_1_1E20(player->unk18.y, atan2d(dx, dz)+180.0, 0.4f); + player->unk0.x += dx; + player->unk0.z += dz; + dist = VECDistance(&player->unk3C, &player->unk0)/VECDistance(&player->unk3C, &player->unk30); + player->unk0.y = 500*sind(dist*180); + player->unk48 *= 1.05f; + if(lbl_1_bss_10 >= 0) { + HuAudFXEmiterUpDate(lbl_1_bss_10, &player->unk0); + } + if(lbl_1_bss_C >= 0) { + HuAudFXEmiterUpDate(lbl_1_bss_C, &player->unk0); + } + fn_1_5438(&player->unk24); + if(lbl_1_bss_A0->work[0] >= 1007) { + player->unk58 = 2005; + HuAudSStreamPlay(4); + } + break; + + case 2003: + if(lbl_1_bss_A0->work[0] >= 1007) { + player->unk58 = 2004; + HuAudSStreamPlay(1); + Hu3DMotionShiftSet(obj->model[0], obj->motion[4], 0, 8, HU3D_MOTATTR_NONE); + } + break; + + case 2004: + player->unk18.y = fn_1_1E20(player->unk18.y, 0, 0.4f); + break; + + case 2005: + break; + + default: + OSReport("*** player mode error(%d)!!\n", player->unk58); + break; + } + omSetTra(obj, player->unk0.x, player->unk0.y, player->unk0.z); + omSetRot(obj, player->unk18.x, player->unk18.y, 0); +} + +void fn_1_7328(omObjData *obj) +{ + WorkPlayer *player; + s32 i; + obj->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkPlayer), MEMORY_DEFAULT_NUM); + player = obj->data; + player->unk5C = GWPlayerCfg[lbl_1_bss_18].character; + player->unk60 = GWPlayerCfg[lbl_1_bss_18].pad_idx; + player->unk58 = 2000; + player->unk54 = 0; + obj->model[0] = CharModelCreate(lbl_1_data_0[player->unk5C], 2); + CharModelStepTypeSet(lbl_1_data_0[player->unk5C], 0); + for(i=0; i<5; i++) { + obj->motion[i] = CharModelMotionCreate(lbl_1_data_0[player->unk5C], lbl_1_data_128[player->unk5C][i]); + CharModelMotionSet(lbl_1_data_0[player->unk5C], obj->motion[i]); + } + Hu3DModelAttrSet(obj->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(obj->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelLayerSet(obj->model[0], 2); + Hu3DMotionSet(obj->model[0], obj->motion[0]); + Hu3DModelShadowSet(obj->model[0]); + player->unk18.x = 0; + player->unk18.y = 0; + player->unk0.x = 0; + player->unk0.y = 0; + player->unk0.z = 0; + omSetTra(obj, player->unk0.x, player->unk0.y, player->unk0.z); + omSetRot(obj, player->unk18.x, player->unk18.y, 0); + Hu3DModelAttrReset(obj->model[0], HU3D_ATTR_DISPOFF); + CharModelLayerSetAll2(6); + CharModelMotionDataClose(lbl_1_data_0[player->unk5C]); + obj->func = fn_1_6A00; +} + +void fn_1_75B0(WorkBomhei *bomhei, omObjData *obj) +{ + float *data1F0; + bomhei->unk34 = 3003; + bomhei->unk24 = 10; + for(data1F0=&lbl_1_data_1F0[0][0]; 0.0f<=data1F0[0]; data1F0 += 2) { + if(data1F0[0] <= lbl_1_bss_200) { + bomhei->unk24 = data1F0[1]; + } + } + Hu3DModelAttrSet(obj->model[1], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(obj->model[1], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(obj->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(obj->model[0], HU3D_ATTR_DISPOFF); + HuAudFXEmiterPlay(2087, &bomhei->unk0); +} + +BOOL fn_1_76CC(WorkBomhei *bomhei) +{ + if(bomhei->unk34 == 3002) { + if(fn_1_5528(&bomhei->unk0, 70)) { + return TRUE; + } + } else { + float ofs = 700-70; + + if(ofs > bomhei->unk0.x && -ofs < bomhei->unk0.x) { + if(ofs > bomhei->unk0.z && -ofs < bomhei->unk0.z) { + if(bomhei->unk28 >= 0) { + lbl_1_bss_28 = lbl_1_bss_28 & ~(u32)(1 << bomhei->unk28); + bomhei->unk28 = -1; + } + + } + } + } + return FALSE; +} + +void fn_1_7AD8(WorkBomhei *bomhei, omObjData *obj) +{ + float radius = 10*lbl_1_data_1E4[bomhei->unk30]; + Vec playerOfs; + Vec angle; + + s32 i; + s32 state; + BOOL temp_r25; + + angle.x = bomhei->unkC.y; + if(bomhei->unk34 == 3002) { + switch(bomhei->unk30) { + case 0: + bomhei->unk18.x--; + if(0.0f > bomhei->unk18.x) { + radius = 0; + if(-bomhei->unk18.y > bomhei->unk18.x) { + bomhei->unk18.y = frandmod(120)+120; + bomhei->unk18.x = frandmod(120)+120; + } + } else { + bomhei->unk18.z--; + if(0.0f > bomhei->unk18.z) { + bomhei->unk18.z = frandmod(120)+120; + bomhei->unkC.z = frandf()*360; + } + } + angle.x = bomhei->unkC.z; + break; + + case 1: + case 2: + VECSubtract(&((WorkPlayer *)lbl_1_bss_9C->data)->unk0, &bomhei->unk0, &playerOfs); + angle.x = atan2d(playerOfs.x, playerOfs.z); + break; + } + } + bomhei->unkC.y = fn_1_1E20(bomhei->unkC.y, angle.x, 0.05f); + angle.z = radius*sind(bomhei->unkC.y); + angle.y = radius*cosd(bomhei->unkC.y); + bomhei->unk0.x += angle.z; + bomhei->unk0.z += angle.y; + if(0.0f < radius) { + bomhei->unkC.x = fn_1_1E20(bomhei->unkC.x, atan2d(angle.z, angle.y), 0.2f); + } + state = 0; + if(0.5f <= radius) { + if(7.0f <= radius) { + state = 2; + } else { + state = 1; + } + } + temp_r25 = FALSE; + if(fn_1_76CC(bomhei)) { + temp_r25 = TRUE; + } + fn_1_5894(&bomhei->unk0, &((WorkPlayer *)lbl_1_bss_9C->data)->unk0, 70, 70); + for(i=0; i<20; i++) { + WorkBomhei *bomhei2; + if(NULL == lbl_1_bss_4C[i]) { + continue; + } + if(obj == lbl_1_bss_4C[i]) { + continue; + } + bomhei2 = lbl_1_bss_4C[i]->data; + if(bomhei2->unk34 != 3004) { + fn_1_5894(&bomhei->unk0, &bomhei2->unk0, 70, 70); + } + } + if(fn_1_76CC(bomhei)) { + temp_r25 = TRUE; + } + if(temp_r25 && bomhei->unk30 == 0) { + float radius = frandf()*350; + float angle2 = frandf()*360; + bomhei->unkC.z = atan2d((radius*sind(angle2))-bomhei->unk0.x, (radius*cosd(angle2))-bomhei->unk0.z); + bomhei->unk18.z = frandmod(120)+120; + } + if(bomhei->unk2C != state) { + bomhei->unk2C = state; + Hu3DMotionShiftSet(obj->model[0], obj->motion[bomhei->unk2C], 0, 8, HU3D_MOTATTR_LOOP); + } +} + +void fn_1_9724(omObjData *obj); + +void fn_1_8D08(omObjData *obj) +{ + WorkBomhei *bomhei = obj->data; + s32 i; + switch(bomhei->unk34) { + case 3000: + if(lbl_1_bss_A0->work[0] >= 1004) { + bomhei->unk34 = 3002; + } + break; + + case 3001: + fn_1_7AD8(bomhei, obj); + if(bomhei->unk28 < 0) { + bomhei->unk34 = 3002; + } + break; + + case 3002: + fn_1_7AD8(bomhei, obj); + bomhei->unk24--; + if(0.0f > bomhei->unk24) { + fn_1_75B0(bomhei, obj); + } + break; + + case 3003: + bomhei->unk24--; + if(0.0f > bomhei->unk24) { + bomhei->unk34++; + Hu3DModelAttrSet(obj->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(obj->model[2], HU3D_MOTATTR_PAUSE|HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(obj->model[2], HU3D_ATTR_DISPOFF); + HuAudFXEmiterPlay(2082, &bomhei->unk0); + fn_1_5438(&bomhei->unk0); + } + break; + + case 3004: + if(Hu3DMotionEndCheck(obj->model[2])) { + fn_1_9724(obj); + return; + } + break; + + case 3005: + break; + + default: + OSReport("*** bomhei mode error(%d)!!\n", bomhei->unk34); + break; + } + if(bomhei->unk34 != 3004 && lbl_1_bss_A0->work[0] >= 1005) { + bomhei->unk34 = 3005; + Hu3DMotionShiftSet(obj->model[0], obj->motion[0], 0, 8, HU3D_MOTATTR_LOOP); + } + omSetTra(obj, bomhei->unk0.x, bomhei->unk0.y, bomhei->unk0.z); + omSetRot(obj, 0, bomhei->unkC.x, 0); + for(i=0; i<3; i++) { + Hu3DModelPosSet(obj->model[i], bomhei->unk0.x, bomhei->unk0.y, bomhei->unk0.z); + Hu3DModelRotSet(obj->model[i], 0, bomhei->unkC.x, 0); + } +} + +void fn_1_9164(omObjData *obj) +{ + WorkBomhei *bomhei = obj->data; + s32 modelId; + s32 i; + omSetTra(obj, bomhei->unk0.x, bomhei->unk0.y, bomhei->unk0.z); + omSetRot(obj, 0, bomhei->unkC.x, 0); + modelId = fn_1_AC(0x1000); + if(modelId < 0) { + obj->model[0] = Hu3DModelLink(lbl_1_bss_3C[0]); + } else { + obj->model[0] = modelId; + } + modelId = fn_1_AC(0x2000); + if(modelId < 0) { + obj->model[1] = Hu3DModelLink(lbl_1_bss_3C[1]); + } else { + obj->model[1] = modelId; + } + modelId = fn_1_AC(0x3000); + if(modelId < 0) { + obj->model[2] = Hu3DModelLink(lbl_1_bss_3C[2]); + } else { + obj->model[2] = modelId; + } + for(i=0; i<4; i++) { + obj->motion[i] = lbl_1_bss_2C[i]; + } + for(i=0; i<3; i++) { + Hu3DModelAttrSet(obj->model[i], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(obj->model[i], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(obj->model[i], HU3D_MOTATTR_PAUSE); + Hu3DModelLayerSet(obj->model[i], 3); + Hu3DMotionTimeSet(obj->model[i], 0); + Hu3DModelPosSet(obj->model[i], bomhei->unk0.x, bomhei->unk0.y, bomhei->unk0.z); + Hu3DModelRotSet(obj->model[i], 0, bomhei->unkC.x, 0); + } + Hu3DModelLayerSet(obj->model[2], 4); + Hu3DModelShadowSet(obj->model[0]); + Hu3DModelShadowSet(obj->model[1]); + for(i=0; i<20; i++) { + if(NULL == lbl_1_bss_4C[i]) { + lbl_1_bss_4C[i] = obj; + break; + } + } + Hu3DMotionSet(obj->model[0], obj->motion[0]); + Hu3DModelAttrSet(obj->model[2], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(obj->model[0], HU3D_ATTR_DISPOFF); + obj->func = fn_1_8D08; +} + +void fn_1_956C(Vec *pos, float rotY, s32 type, s32 mode, s32 time) +{ + WorkBomhei *bomhei; + omObjData *obj; + lbl_1_bss_20++; + obj = omAddObjEx(lbl_1_bss_238, 101, 3, 4, -1, fn_1_9164); + obj->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkBomhei), MEMORY_DEFAULT_NUM); + bomhei = obj->data; + bomhei->unk0 = *pos; + bomhei->unkC.x = rotY; + bomhei->unk30 = type; + bomhei->unk34 = mode; + bomhei->unk28 = time; + bomhei->unkC.y = bomhei->unkC.x; + bomhei->unkC.z = bomhei->unkC.x; + bomhei->unk18.x = frandmod(120)+120; + bomhei->unk18.y = frandmod(120)+120; + bomhei->unk18.z = frandmod(120)+120; + bomhei->unk24 = frandmod(300)+180; + bomhei->unk2C = 0; +} + +void fn_1_9724(omObjData *obj) +{ + s32 i; + lbl_1_bss_20--; + for(i=0; i<20; i++) { + if(obj == lbl_1_bss_4C[i]) { + lbl_1_bss_4C[i] = NULL; + break; + } + } + for(i=0; i<3; i++) { + Hu3DModelAttrSet(obj->model[i], HU3D_ATTR_DISPOFF); + fn_1_24((i*4096)+4096, obj->model[i]); + } + omDelObjEx(lbl_1_bss_238, obj); +} + +typedef struct work_bomhei2 { + omObjData *unk0; + omObjData *unk4; + Vec unk8; + Vec unk14; + Vec unk20; + float unk2C; + float unk30; + float unk34; + BOOL unk38; + s32 unk3C; + s32 unk40; + s32 unk44; + float unk48; +} WorkBomhei2; + +void fn_1_9854(void) +{ + if(lbl_1_bss_200 % 900 == 0) { + if(++lbl_1_bss_24 >= 20) { + lbl_1_bss_24 = 20; + } + } + if(lbl_1_bss_200 % 1800 == 0) { + if(lbl_1_data_264[2] < 40) { + lbl_1_data_264[2] += 10; + if(lbl_1_data_264[2] > 100) { + lbl_1_data_264[2] = 100; + } + lbl_1_data_264[1] -= 5; + if(lbl_1_data_264[1] < 0) { + lbl_1_data_264[1] = 0; + lbl_1_data_264[0] -= 5; + } + lbl_1_data_264[0] -= 5; + if(lbl_1_data_264[0] < 0) { + lbl_1_data_264[0] = 0; + } + } + } + if(lbl_1_bss_24 > lbl_1_bss_20) { + Data270Struct *data270 = NULL; + s32 bitNum = frandmod(8); + s32 i; + for(i=0; i<8; i++) { + if(((1 << bitNum) & lbl_1_bss_28) == 0) { + data270 = &lbl_1_data_270[bitNum]; + lbl_1_bss_28 |= (1 << bitNum); + (void)i; + break; + } + bitNum++; + if(bitNum >= 8) { + bitNum -= 8; + } + } + if(NULL != data270) { + s32 type = 2; + s32 chance = frandmod(100); + Vec pos; + for(i=0; i<3; i++) { + if(lbl_1_data_264[i] > chance) { + type = i; + break; + } + chance -= lbl_1_data_264[i]; + } + pos.x = data270->unk0.x; + pos.y = data270->unk0.y; + pos.z = data270->unk0.z; + fn_1_956C(&pos, data270->unkC, type, 3001, bitNum); + } + } +} + +WorkBomhei2 *fn_1_9CAC(omObjFunc func, s32 prio) +{ + omObjData *obj = omAddObjEx(lbl_1_bss_238, prio, 1, 4, -1, func); + WorkBomhei2 *bomhei; + s32 i; + s32 modelId; + obj->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkBomhei2), MEMORY_DEFAULT_NUM); + bomhei = obj->data; + bomhei->unk38 = 1; + bomhei->unk3C = 0; + bomhei->unk0 = obj; + bomhei->unk4 = NULL; + bomhei->unk2C = 0; + bomhei->unk8.x = 0; + bomhei->unk8.y = 10; + bomhei->unk8.z = 0; + modelId = fn_1_AC(0x1000); + if(modelId < 0) { + obj->model[0] = Hu3DModelLink(lbl_1_bss_3C[0]); + } else { + obj->model[0] = modelId; + } + for(i=0; i<4; i++) { + obj->motion[i] = lbl_1_bss_2C[i]; + } + omSetTra(obj, bomhei->unk8.x, bomhei->unk8.y, bomhei->unk8.z); + omSetRot(obj, 0, bomhei->unk2C, 0); + Hu3DModelAttrSet(obj->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(obj->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(obj->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelLayerSet(obj->model[0], 3); + Hu3DMotionSet(obj->model[0], obj->motion[0]); + Hu3DModelShadowSet(obj->model[0]); + return bomhei; +} + +void fn_1_9EF4(omObjData *obj) +{ + float dist; + WorkBomhei2 *bomhei = obj->data; + WorkBomhei2 *parent = bomhei->unk4->data; + float vel = 3; + float dx; + float dz; + + s32 state; + switch(bomhei->unk44) { + case 0: + if(bomhei->unk3C != 1) { + bomhei->unk3C = 1; + Hu3DMotionShiftSet(obj->model[0], obj->motion[bomhei->unk3C], 0, 8, HU3D_MOTATTR_LOOP); + } + dx = bomhei->unk14.x-bomhei->unk8.x; + dz = bomhei->unk14.z-bomhei->unk8.z; + dist = sqrtf((dx*dx)+(dz*dz)); + if(vel < dist) { + dx = vel*(dx/dist); + dz = vel*(dz/dist); + } + bomhei->unk8.x += dx; + bomhei->unk8.z += dz; + bomhei->unk2C = fn_1_1E20(bomhei->unk2C, atan2d(dx, dz), 0.4f); + bomhei->unk30 = bomhei->unk2C; + if(vel > dist) { + switch(bomhei->unk40) { + case 1: + case 2: + bomhei->unk44 = 1; + bomhei->unk34 = 0; + bomhei->unk3C = 0; + Hu3DMotionShiftSet(obj->model[0], obj->motion[bomhei->unk3C], 0, 8, HU3D_MOTATTR_LOOP); + break; + + default: + bomhei->unk44 = 3; + break; + } + } + break; + + case 1: + bomhei->unk2C = fn_1_1E20(bomhei->unk2C, atan2d(parent->unk8.x-bomhei->unk8.x, parent->unk8.z-bomhei->unk8.z), 0.05f); + bomhei->unk30 = bomhei->unk2C; + parent->unk2C = fn_1_1E20(parent->unk2C, atan2d(bomhei->unk8.x-parent->unk8.x, bomhei->unk8.z-parent->unk8.z), 0.05f); + parent->unk30 = parent->unk2C; + bomhei->unk34++; + if(180.0f < bomhei->unk34) { + bomhei->unk44 = 3; + if(bomhei->unk40 == 2) { + bomhei->unk44 = 2; + } + } + break; + + case 2: + { + Vec temp = parent->unk8; + float tempAngle = parent->unk2C; + parent->unk20 = parent->unk8; + parent->unk8 = bomhei->unk8; + parent->unk2C = bomhei->unk2C; + bomhei->unk8 = temp; + bomhei->unk2C = tempAngle; + bomhei->unk30 = tempAngle; + bomhei->unk34 = 0; + bomhei->unk44 = 3; + } + break; + + case 3: + bomhei->unk30 = fn_1_1E20(bomhei->unk30, atan2d(bomhei->unk20.x-bomhei->unk14.x, bomhei->unk20.z-bomhei->unk14.z), 0.2f); + bomhei->unk2C = bomhei->unk30; + bomhei->unk8.x += vel*sind(bomhei->unk30); + bomhei->unk8.z += vel*cosd(bomhei->unk30); + if(bomhei->unk3C != 1) { + bomhei->unk3C = 1; + Hu3DMotionShiftSet(obj->model[0], obj->motion[bomhei->unk3C], 0, 8, HU3D_MOTATTR_LOOP); + } + parent->unk2C = fn_1_1E20(parent->unk2C, atan2d(-parent->unk8.x, -parent->unk8.z), 0.05f); + bomhei->unk34++; + if(bomhei->unk40 == 2 && 60.0f < bomhei->unk34) { + dx = parent->unk20.x-parent->unk8.x; + dz = parent->unk20.z-parent->unk8.z; + dist = sqrtf((dx*dx)+(dz*dz)); + if(vel < dist) { + dx = vel*(dx/dist); + dz = vel*(dz/dist); + } + parent->unk8.x += dx; + parent->unk8.z += dz; + state = 0; + if(0.0f < dist) { + state = 1; + } + if(state != parent->unk3C) { + parent->unk3C = state; + Hu3DMotionShiftSet(parent->unk0->model[0], parent->unk0->motion[parent->unk3C], 0, 8, HU3D_MOTATTR_LOOP); + } + } + if(1750 < VECMagXZ(&bomhei->unk8)) { + parent->unk4 = NULL; + Hu3DModelAttrSet(obj->model[0], HU3D_ATTR_DISPOFF); + fn_1_24(0x1000, obj->model[0]); + omDelObjEx(lbl_1_bss_238, obj); + return; + } + break; + } + omSetTra(obj, bomhei->unk8.x, bomhei->unk8.y, bomhei->unk8.z); + omSetRot(obj, 0, bomhei->unk2C, 0); + if(bomhei->unk38) { + bomhei->unk38 = 0; + Hu3DMotionTimeSet(obj->model[0], Hu3DMotionMaxTimeGet(obj->model[0])*frandf()); + Hu3DModelAttrReset(obj->model[0], HU3D_ATTR_DISPOFF); + } +} + +s32 fn_1_ADDC(WorkBomhei2 *parent, WorkBomhei2 *bomhei) +{ + parent->unk4 = bomhei->unk0; + bomhei->unk4 = parent->unk0; + bomhei->unk40 = frandmod(3); + bomhei->unk44 = 0; + bomhei->unk14.x = 750.0f*((0 > parent->unk8.x) ? -1 : 1); + bomhei->unk14.z = 750.0f*((0 > parent->unk8.z) ? -1 : 1); + if(lbl_1_bss_204 & 0x1) { + bomhei->unk8.x = 1400.0f*((0 > parent->unk8.x) ? -1 : 1); + bomhei->unk8.z = 750.0f*((0 > parent->unk8.z) ? -1 : 1); + bomhei->unk20.x = 750.0f*((0 > parent->unk8.x) ? -1 : 1); + bomhei->unk20.z = 1400.0f*((0 > parent->unk8.z) ? -1 : 1); + } else { + bomhei->unk8.x = 750.0f*((0 > parent->unk8.x) ? -1 : 1); + bomhei->unk8.z = 1400.0f*((0 > parent->unk8.z) ? -1 : 1); + bomhei->unk20.x = 1400.0f*((0 > parent->unk8.x) ? -1 : 1); + bomhei->unk20.z = 750.0f*((0 > parent->unk8.z) ? -1 : 1); + } + bomhei->unk2C = atan2d(bomhei->unk14.x-bomhei->unk8.x, bomhei->unk14.z-bomhei->unk8.z); + bomhei->unk30 = bomhei->unk2C; +} + +void fn_1_B234(omObjData *obj) +{ + WorkBomhei2 *bomhei = obj->data; + if(NULL == bomhei->unk4) { + bomhei->unk2C = atan2d(-bomhei->unk8.x, -bomhei->unk8.z); + bomhei->unk48--; + if(0.0f > bomhei->unk48) { + WorkBomhei2 *bomheiNew; + bomhei->unk48 = frandmod(1200)+300; + bomheiNew = fn_1_9CAC(fn_1_9EF4, 102); + fn_1_ADDC(bomhei, bomheiNew); + } + } + omSetTra(obj, bomhei->unk8.x, bomhei->unk8.y, bomhei->unk8.z); + omSetRot(obj, 0, bomhei->unk2C, 0); + if(bomhei->unk38) { + bomhei->unk38 = 0; + Hu3DMotionTimeSet(obj->model[0], Hu3DMotionMaxTimeGet(obj->model[0])*frandf()); + Hu3DModelAttrReset(obj->model[0], HU3D_ATTR_DISPOFF); + } +} + +void fn_1_D70C(omObjData *obj); + +void fn_1_BA2C(omObjData *obj) +{ + if(omSysExitReq) { + fn_1_1F58(-1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + obj->func = fn_1_D70C; + } + lbl_1_bss_204++; + switch(obj->work[0]) { + case 1000: + if(!WipeStatGet()) { + Vec dir; + obj->work[0]++; + lbl_1_bss_1C = 0; + lbl_1_bss_220 = lbl_1_data_C4; + lbl_1_bss_208 = lbl_1_data_DC; + VECSubtract(&lbl_1_bss_208, &lbl_1_bss_220, &dir); + VECNormalize(&dir, &dir); + HuAudFXListnerSetEX(&lbl_1_bss_220, &dir, 14000.0, 36000.0, 1000.0, 300.0, 300.0); + } + + break; + + case 1001: + lbl_1_bss_1C++; + if(30.0f < lbl_1_bss_1C) { + obj->work[0]++; + lbl_1_bss_1C = 0; + } + break; + + case 1002: + lbl_1_bss_1C++; + fn_1_13DC(lbl_1_bss_1C/120, &lbl_1_data_D0); + if(120.0f <= lbl_1_bss_1C) { + obj->work[0]++; + lbl_1_bss_1C = 0; + fn_1_1350(&lbl_1_data_C4, &lbl_1_data_D0, &lbl_1_data_DC); + } + break; + + case 1003: + if(lbl_1_bss_1FA < 0) { + lbl_1_bss_1FA = MGSeqStartCreate(); + } else { + if(lbl_1_bss_1F4 < 0 && (MGSeqStatGet(lbl_1_bss_1FA) & 0x10)) { + fn_1_1F24(70); + } + if(MGSeqStatGet(lbl_1_bss_1FA) == 0) { + obj->work[0]++; + lbl_1_bss_1FA = -1; + } + } + break; + + case 1004: + lbl_1_bss_200++; + fn_1_580(lbl_1_bss_1AC, 0, lbl_1_bss_200); + if(lbl_1_bss_14 || 35999 <= lbl_1_bss_200) { + obj->work[0] = 1005; + lbl_1_bss_1C = 0; + } + fn_1_9854(); + break; + + case 1005: + if(lbl_1_bss_1FA < 0) { + lbl_1_bss_1FA = MGSeqFinishCreate(); + fn_1_1F58(100); + mgRecordExtra = lbl_1_bss_200; + } else { + lbl_1_bss_1C++; + if(60.0f < lbl_1_bss_1C && !MGSeqStatGet(lbl_1_bss_1FA)) { + obj->work[0] = 1007; + if(lbl_1_bss_1FC < lbl_1_bss_200) { + obj->work[0] = 1006; + fn_1_798(13); + } + lbl_1_bss_1FA = -1; + lbl_1_bss_1C = 0; + } + } + break; + + case 1006: + if(lbl_1_bss_1FA < 0) { + lbl_1_bss_1FA = MGSeqRecordCreate(lbl_1_bss_1FC); + } else { + if(!MGSeqStatGet(lbl_1_bss_1FA)) { + obj->work[0]++; + lbl_1_bss_1C = 0; + lbl_1_bss_1FA = -1; + } + } + break; + + case 1007: + lbl_1_bss_1C++; + if(210.0f < lbl_1_bss_1C) { + fn_1_1F58(-1); + lbl_1_bss_1FA = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + obj->func = fn_1_D70C; + } + break; + + default: + OSReport("*** main mode error(%d)!!\n", obj->work[0]); + break; + } + fn_1_A40(); +} + +void fn_1_C970(omObjData *obj) +{ + s32 i; + obj->model[0] = Hu3DModelCreateFile(0x5A0000); + Hu3DModelAttrSet(obj->model[0], HU3D_ATTR_NOCULL|HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(obj->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelLayerSet(obj->model[0], 0); + Hu3DModelShadowMapSet(obj->model[0]); + omSetTra(obj, 0, 0, 0); + omSetRot(obj, 0, 0, 0); + obj->model[1] = Hu3DModelCreateFile(0x5A0001); + Hu3DModelAttrSet(obj->model[1], HU3D_ATTR_NOCULL|HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(obj->model[1], HU3D_MOTATTR_PAUSE); + Hu3DModelLayerSet(obj->model[1], 1); + Hu3DModelShadowSet(obj->model[1]); + Hu3DModelPosSet(obj->model[1], 0, 0, 0); + Hu3DModelRotSet(obj->model[1], 0, 0, 0); + fn_1_B4C(64, 0x5A0009); + fn_1_9EC(); + for(i=0; i<2; i++) { + Hu3DModelAttrReset(obj->model[i], HU3D_ATTR_DISPOFF); + } + HuAudFXPlay(2085); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + obj->func = fn_1_BA2C; +} + +void ObjectSetup(void) +{ + s32 i; + s32 light; + float angle; + float radius; + float radiusPrev; + OSReport("******* M461 ObjectSetup *********\n"); + lbl_1_bss_238 = omInitObjMan(200, 8192); + omGameSysInit(lbl_1_bss_238); + lbl_1_bss_14 = FALSE; + lbl_1_bss_18 = FALSE; + lbl_1_bss_204 = 0; + lbl_1_bss_1FA = -1; + lbl_1_bss_1F8 = -1; + lbl_1_bss_1F4 = -1; + lbl_1_bss_10 = -1; + lbl_1_bss_C = -1; + lbl_1_bss_4 = 0; + lbl_1_bss_8 = 2200; + lbl_1_bss_0 = 2300; + lbl_1_bss_200 = 0; + lbl_1_bss_1FC = GWMGRecordGet(13); + lbl_1_bss_1EC = -1; + Hu3DCameraViewportSet(HU3D_CAM0, 0, 0, 640, 480, 0, 1); + Hu3DCameraPerspectiveSet(HU3D_CAM0, 30, 20, 30000, 1.2f); + fn_1_1350(&lbl_1_data_A0, &lbl_1_data_AC, &lbl_1_data_B8); + light = Hu3DGLightCreateV(&lbl_1_data_E8, &lbl_1_data_F4, &lbl_1_data_100); + Hu3DGLightStaticSet(light, 1); + Hu3DGLightInfinitytSet(light); + Hu3DShadowCreate(30, 20, 30000); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowPosSet(&lbl_1_data_104, &lbl_1_data_11C, &lbl_1_data_110); + fn_1_0(); + for(i=0; i<20; i++) { + s32 modelId; + lbl_1_bss_4C[i] = NULL; + modelId = Hu3DModelCreateFile(0x5A0008); + Hu3DModelAttrSet(modelId, HU3D_ATTR_DISPOFF); + fn_1_24(12288, modelId); + } + for(i=0; i<3; i++) { + lbl_1_bss_3C[i] = Hu3DModelCreateFile(lbl_1_data_1C8[i]); + Hu3DModelAttrSet(lbl_1_bss_3C[i], HU3D_ATTR_NOCULL|HU3D_ATTR_DISPOFF); + } + for(i=0; i<4; i++) { + lbl_1_bss_2C[i] = Hu3DJointMotionFile(lbl_1_bss_3C[0], lbl_1_data_1D4[i]); + } + lbl_1_bss_28 = 0; + lbl_1_bss_20 = 0; + lbl_1_bss_24 = 10; + angle = 360.0f*frandf(); + radiusPrev = -1; + for(i=0; iunk8 = lbl_1_data_2F0[i]; + bomhei2->unk2C = atan2d(-bomhei2->unk8.x, -bomhei2->unk8.z); + bomhei2->unk48 = frandmod(1200)+300; + } + lbl_1_bss_9C = omAddObjEx(lbl_1_bss_238, 100, 1, 5, -1, fn_1_7328); + lbl_1_bss_A0 = omAddObjEx(lbl_1_bss_238, 104, 2, 0, -1, fn_1_C970); + lbl_1_bss_A0->work[0] = 1000; + lbl_1_bss_1C = 0; +} + +void fn_1_D70C(omObjData *obj) +{ + s32 i; + if(WipeStatGet()) { + return; + } + if(lbl_1_bss_1FA >= 0) { + MGSeqKill(lbl_1_bss_1FA); + } + if(lbl_1_bss_1F8 >= 0) { + MGSeqKill(lbl_1_bss_1F8); + } + MGSeqKillAll(); + HuAudAllStop(); + for(i=0; i<4; i++) { + CharModelKill(lbl_1_data_0[GWPlayerCfg[i].character]); + } + omOvlReturnEx(1, 1); } \ No newline at end of file From 3eb6855600a3135a8240b5b955696d9255a5c44a Mon Sep 17 00:00:00 2001 From: CreateSource Date: Fri, 1 Nov 2024 21:54:27 -0400 Subject: [PATCH 094/311] Complete m443/player.c --- config/GMPE01_00/rels/m443Dll/symbols.txt | 8 +- configure.py | 2 +- src/REL/m443Dll/player.c | 554 +++++++++++++++++++++- 3 files changed, 551 insertions(+), 13 deletions(-) diff --git a/config/GMPE01_00/rels/m443Dll/symbols.txt b/config/GMPE01_00/rels/m443Dll/symbols.txt index 80477002..66c15dad 100644 --- a/config/GMPE01_00/rels/m443Dll/symbols.txt +++ b/config/GMPE01_00/rels/m443Dll/symbols.txt @@ -304,10 +304,10 @@ lbl_1_data_354 = .data:0x00000354; // type:object size:0x10 lbl_1_data_364 = .data:0x00000364; // type:object size:0x30 lbl_1_data_394 = .data:0x00000394; // type:object size:0x30 lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x30 -lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x5 data:string -lbl_1_data_3F9 = .data:0x000003F9; // type:object size:0x7 data:string -lbl_1_data_400 = .data:0x00000400; // type:object size:0x7 data:string -lbl_1_data_407 = .data:0x00000407; // type:object size:0x9 +lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x5 scope:local data:string +lbl_1_data_3F9 = .data:0x000003F9; // type:object size:0x7 scope:local data:string +lbl_1_data_400 = .data:0x00000400; // type:object size:0x7 scope:local data:string +lbl_1_data_407 = .data:0x00000407; // type:object size:0x9 scope:local data:string lbl_1_data_410 = .data:0x00000410; // type:object size:0x58 lbl_1_data_468 = .data:0x00000468; // type:object size:0x20 lbl_1_data_488 = .data:0x00000488; // type:object size:0x58 diff --git a/configure.py b/configure.py index 0e09d5e4..4b8c9979 100644 --- a/configure.py +++ b/configure.py @@ -1145,7 +1145,7 @@ config.libs = [ objects={ Object(Matching, "REL/m443Dll/main.c"), Object(Matching, "REL/m443Dll/map.c"), - Object(NonMatching, "REL/m443Dll/player.c"), + Object(Matching, "REL/m443Dll/player.c"), }, ), Rel( diff --git a/src/REL/m443Dll/player.c b/src/REL/m443Dll/player.c index 2ccd186f..a251d1bd 100644 --- a/src/REL/m443Dll/player.c +++ b/src/REL/m443Dll/player.c @@ -14,12 +14,20 @@ #include "REL/m443Dll.h" +typedef struct M443DllUnkStruct { + s32 unk0; + s32 unk4; + s32 unk8; + Vec2f unkC; + s16 unk14[11]; +} M443DllUnkStruct; + typedef struct M443DllWorkStruct { s32 unk0; s32 unk4; s32 unk8; s32 unkC; - s32 unk10; + u32 unk10; s32 unk14; f32 unk18; s32 unk1C; @@ -45,12 +53,12 @@ typedef struct M443DllWorkStruct { u32 unk74; f32 unk78; f32 unk7C; - s32 unk80; - char unk84[0x4]; + u32 unk80; + u32 unk84; f32 unk88; char unk8C[0x4]; f32 unk90; - char unk94[0x4]; + f32 unk94; f32 unk98; f32 unk9C; f32 unkA0; @@ -69,27 +77,48 @@ typedef struct M443DllWorkStruct { char unkF4[0xC]; M443DllCameraStruct* unk100; M443DllCameraStruct* unk104; - s32 unk108; - char unk10C[0x28]; + union { + M443DllUnkStruct unk108s; + struct { + s32 unk108; + s32 unk10C; + }; + }; } M443DllWorkStruct; /* size = 0x134 */ +typedef struct M443DllStruct8 { + u16 unk0; + f32 unk4; + f32 unk8; + f32 unkC; + u32 unk10; +} M443DllStruct8; // copy of UnkM417Struct8 + void fn_1_5680(omObjData* object); void fn_1_5BD4(omObjData* object); void fn_1_6458(omObjData* object); void fn_1_6674(omObjData* object); void fn_1_6750(omObjData* object); void fn_1_69B4(omObjData* object); +void fn_1_6B90(omObjData* object); void fn_1_6DA8(omObjData* object); void fn_1_7130(omObjData* object); void fn_1_7340(omObjData* object); -void fn_1_8138(omObjData*, s32); +void fn_1_8138(omObjData*, u32); s32 fn_1_82C4(omObjData* object); void fn_1_8508(omObjData*); +void fn_1_8680(omObjData* object); +f32 fn_1_8AC8(u32, f32); +f32 fn_1_8C68(f32); f32 fn_1_8C8C(s32, f32); +f32 fn_1_8D00(u32, f32); +f32 fn_1_8D74(f32); +void fn_1_8E34(s32); +void fn_1_8FFC(u32, Vec*, f32, f32); void fn_1_95A4(u32); -s32 lbl_1_bss_78[6]; omObjData* lbl_1_bss_90[4]; +s32 lbl_1_bss_78[6]; char* lbl_1_data_264[0x8] = { "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", @@ -105,6 +134,13 @@ u32 lbl_1_data_2C4[4] = { 0, 0x4A0020, 0x17, 0x72 }; +M443DllStruct8 lbl_1_data_2D4[4] = { + { 0x0, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 0x1, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 0x2, 0.2f, 0.0f, -1.0f, 0x0 }, + { 0x3, 0.2f, 0.0f, -1.0f, 0x0 } +}; + s32 lbl_1_data_324[4] = { 0x727, 0x728, 0x729, 0x72A, }; @@ -653,3 +689,505 @@ void fn_1_7130(omObjData* object) { } } } + +void fn_1_7340(omObjData* object) { + M443DllWorkStruct* temp_r31 = object->data; + HsfObject* var_r29; + f32 sp28[8] = { + 0.0f, 40.0f, 0.0f, 0.0f, + -16.0f, 40.0f, -16.0f, 0.0f + }; + f32 var_f31; + f32 var_f29; + u32 temp_r24; + + temp_r24 = temp_r31->unk80; + if (temp_r31->unk88 > 3300.0f) { + if (fn_1_42E4() == 2) { + temp_r31->unk10C = 0; + if (temp_r31->unk84 == 0) { + if ((temp_r31->unk10 & 0x100) != 0) { + if (temp_r31->unk80 < 3) { + temp_r31->unk80++; + temp_r31->unk84 = 30; + } + } else { + if (temp_r31->unk88 >= 8000.0f) { + temp_r31->unk10C = 1; + } + } + } else { + temp_r31->unk84--; + } + } + } else if ((temp_r31->unk88 < 1500.0f) && (temp_r31->unk80 != 0)) { + temp_r31->unk80--; + temp_r31->unk84 = 30; + } + if (temp_r31->unk80 != temp_r24) { + temp_r31->unk88 = fn_1_8D00(temp_r31->unk80, temp_r31->unk90); + omVibrate(object->work[0], 0xC, 4, 2); + } + var_f31 = (1.5f * temp_r31->unk18) - 0.5f; + if (var_f31 < -0.4f) { + var_f31 = -1.0f; + } + var_f29 = 0.75f; + if ((var_f31 > -0.5f) && (temp_r31->unkA0 < 1.0f)) { + var_f29 += 0.25f * (1.0f - temp_r31->unkA0); + } + var_f31 = var_f31 * fn_1_8AC8(temp_r31->unk80, temp_r31->unk88); + var_f31 -= temp_r31->unkA0 * fn_1_8D74(fn_1_8C8C(temp_r31->unk80, temp_r31->unk88)); + var_f31 = var_f29 * fn_1_8C68(var_f31); + temp_r31->unk90 += 0.016666668f * var_f31; + temp_r31->unk7C += temp_r31->unkA0 * (temp_r31->unk90 - temp_r31->unk7C); + var_f31 = temp_r31->unk90 + temp_r31->unkA0 * (temp_r31->unk7C - temp_r31->unk90); + temp_r31->unk88 = fn_1_8D00(temp_r31->unk80, var_f31); + if (fn_1_42E4() <= 2) { + if (fn_1_42E4() == 2) { + if (temp_r31->unk18 <= 0.0f) { + temp_r31->unk90 *= 0.98f; + } + } + if ((temp_r31->unk88 > 8000.0f) && ((temp_r31->unk40 & 0xF) == 0)) { + omVibrate(object->work[0], 0xC, 6, 6); + } + } + if (temp_r31->unk88 > 9500.0f) { + temp_r31->unk88 = 9000.0f; + temp_r31->unk90 = fn_1_8C8C(temp_r31->unk80, temp_r31->unk88); + } else if (temp_r31->unk88 < 1000.0f) { + temp_r31->unk88 = 1000.0f; + temp_r31->unk90 = fn_1_8C8C(temp_r31->unk80, temp_r31->unk88); + } + temp_r31->unk94 = (0.31206876f * temp_r31->unk90); + if (temp_r31->unkA0 < 1.0f) { + var_f31 = temp_r31->unk90 - temp_r31->unk7C; + if (var_f31 > 2.0f) { + var_f31 = 1.0f - (0.02f * var_f31); + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + var_f31 = (1.0f - var_f31 * var_f31); + temp_r31->unkA0 += (1.0f / 3000.0f) * (1.0f - 1.5f * var_f31); + if (temp_r31->unkA0 > 0.9f) { + temp_r31->unkA0 = 1.0f; + } + if (temp_r31->unkA0 < 0.0001f) { + temp_r31->unkA0 = 0.0001f; + } + } else { + temp_r31->unkA0 = 1.0f; + } + } + temp_r31->unk78 += 1.6666667f * temp_r31->unk7C; + if (fn_1_42E4() < 2) { + temp_r31->unk7C = 0.0f; + temp_r31->unk78 = 0.0f; + temp_r31->unkA0 = 0.0f; + } + if (temp_r31->unk78 >= 40000.0f) { + if (temp_r31->unk7C >= 30.0f) { + Hu3DMotionSpeedSet(object->model[2], 1.0f); + Hu3DModelAttrReset(object->model[2], 1U); + if (fn_1_42E4() == 2) { + HuAudFXPlay(0x733); + } + } + } + fn_1_8680(object); + temp_r31->unk74 = 1 - temp_r31->unk74; + var_f31 = 22.5f * (temp_r31->unk40 & 0xF); + var_r29 = Hu3DModelObjPtrGet(object->model[2], "ballon"); + var_r29->data.base.rot.z = var_f31; + var_r29 = Hu3DModelObjPtrGet(object->model[1], "r_tire"); + if ((temp_r31->unk7C <= 0.0f) && (temp_r31->unk94 < 1.5f)) { + temp_r31->unk94 = 0.0f; + } + var_r29->data.base.rot.x += 6.0000005f * temp_r31->unk94; + var_r29->data.base.rot.x = fmod(var_r29->data.base.rot.x, 360.0); + var_r29 = Hu3DModelObjPtrGet(object->model[1], "f_tire"); + var_r29->data.base.rot.x += 6.0000005f * (0.003978877f * (100.0f * temp_r31->unk7C)); + var_r29->data.base.rot.x = fmod(var_r29->data.base.rot.x, 360.0); + var_f31 = 0.110999994f * temp_r31->unk94; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + Hu3DMotionTimeSet(object->model[1], 30.0f * var_f31); + fn_1_4314(object->work[0], temp_r31->unk78); + fn_1_6B90(object); + if (temp_r31->unkA0 < 1.0f) { + var_f31 = (320.4422f * temp_r31->unk94) - (100.0f * temp_r31->unk7C); + if (var_f31 > 0.0f) { + var_f31 *= 0.0002f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + fn_1_8FFC(object->work[0], &temp_r31->unkDC, var_f31, 100.0f * temp_r31->unk7C); + } + } + fn_1_8E34(object->model[3]); + if (temp_r31->unkB4 >= 0) { + HuAudFXPitchSet(temp_r31->unkB4, (8191.0f * (0.0001f * temp_r31->unk88))); + if (fn_1_42E4() >= 5) { + HuAudFXFadeOut(temp_r31->unkB4, 0x3C); + temp_r31->unkB4 = -1; + } + } + if (fn_1_42E4() < 2) { + if (temp_r31->unkA8 < 0) { + temp_r31->unkA8 = HuAudFXPlay(lbl_1_data_344[object->work[0]]); + } + if (temp_r31->unkA8 >= 0) { + var_f31 = fn_1_8C8C(temp_r31->unk80, 10000.0f); + var_f31 = (1.0f / (0.31206876f * var_f31)); + HuAudFXPitchSet(temp_r31->unkA8, (8191.0f * (temp_r31->unk94 * var_f31))); + var_f31 = 127.0f; + if (temp_r31->unk94 < 0.1f) { + var_f31 = 0.0f; + } + HuAudFXVolSet(temp_r31->unkA8, var_f31); + } + } else if (fn_1_42E4() <= 2) { + if (temp_r31->unkA8 < 0) { + temp_r31->unkA8 = HuAudFXPlay(lbl_1_data_344[object->work[0]]); + } + if (temp_r31->unkA8 >= 0) { + HuAudFXPitchSet(temp_r31->unkA8, (8191.0f * (0.0001f * temp_r31->unk88) * (1.0f - temp_r31->unkA0))); + var_f31 = 127.0f; + if (temp_r31->unkA0 >= 1.0f) { + var_f31 = 0.0f; + } + HuAudFXVolSet(temp_r31->unkA8, var_f31); + } + } else if (temp_r31->unkA8 >= 0) { + HuAudFXStop(temp_r31->unkA8); + temp_r31->unkA8 = -1; + } + if ((fn_1_42E4() >= 1) && (temp_r31->unkB0 >= 0)) { + HuAudFXFadeOut(temp_r31->unkB0, 30); + temp_r31->unkB0 = -1; + } + if ((fn_1_42E4() == 2) && (temp_r31->unkB8 < 0)) { + temp_r31->unkB8 = HuAudFXPlay(lbl_1_data_354[object->work[0]]); + } + if (temp_r31->unkB8 >= 0) { + var_f31 = 0.012048192f * temp_r31->unk7C; + HuAudFXPitchSet(temp_r31->unkB8, ((2.0f * (8191.0f * var_f31)) - 8191.0f)); + HuAudFXVolSet(temp_r31->unkB8, (127.0f * var_f31)); + if (fn_1_42E4() >= 5U) { + HuAudFXFadeOut(temp_r31->unkB8, 0x3C); + temp_r31->unkB8 = -1; + } + } +} + +void fn_1_8138(omObjData* object, u32 arg1) { // near replica of fn_1_B8A0 of m417Dll + f32 var_f31; + M443DllWorkStruct* temp_r30; + + temp_r30 = object->data; + if ((temp_r30->unk8 != arg1) && (arg1 < 4)) { + var_f31 = 60.0f * lbl_1_data_2D4[arg1].unk4; + if (temp_r30->unk8 < 0) { + var_f31 = 0.0f; + } + temp_r30->unk8 = arg1; + CharModelMotionShiftSet(temp_r30->unk0, object->motion[lbl_1_data_2D4[arg1].unk0], 60.0f * lbl_1_data_2D4[arg1].unk8, var_f31, lbl_1_data_2D4[arg1].unk10); + if (lbl_1_data_2D4[arg1].unkC >= 0.0f) { + Hu3DMotionShiftStartEndSet(object->model[0], 60.0f * lbl_1_data_2D4[arg1].unk8, 60.0f * lbl_1_data_2D4[arg1].unkC); + } + } +} + +s32 fn_1_82C4(omObjData* object) { + s32 var_r30; + M443DllWorkStruct* temp_r31; + + temp_r31 = object->data; + var_r30 = 0; + if ((CharModelMotionEndCheck(temp_r31->unk0) != 0) && (CharModelMotionShiftIDGet(temp_r31->unk0) < 0)) { + var_r30 = 1; + } + return var_r30; +} + +s32 fn_1_8338(omObjData* object, u32 arg1) { + s32 var_r27; + s32 var_r26; + M443DllWorkStruct* temp_r31; + + var_r27 = 0; + temp_r31 = object->data; + var_r26 = 0; + if ((CharModelMotionEndCheck(temp_r31->unk0) != 0) && (CharModelMotionShiftIDGet(temp_r31->unk0) < 0)) { + var_r26 = 1; + } + + if (var_r26 != 0) { + fn_1_8138(object, arg1); + var_r27 = 1; + } + return var_r27; +} + +u32 lbl_1_data_410[11][2] = { + { 0x4A0015, 0xFA }, + { 0x4A0016, 0xF0 }, + { 0x4A0017, 0xE6 }, + { 0x4A0018, 0xF0 }, + { 0x4A0019, 0xF0 }, + { 0x4A001A, 0xF0 }, + { 0x4A001B, 0xF0 }, + { 0x61002E, 0xF0 }, + { 0x61002E, 0xF0 }, + { 0x61002E, 0xF0 }, + { 0x4A001C, 0xF0 }, +}; + +Vec2f lbl_1_data_468[4] = { + { 64.0f, 54.0f }, + { 46.0f, 54.0f }, + { 64.0f, 44.0f }, + { 46.0f, 44.0f }, +}; + +void fn_1_8508(omObjData* object) { + s32 var_r30; + M443DllWorkStruct* temp_r28; + M443DllUnkStruct* temp_r31; + f32* temp_r4; + + temp_r28 = object->data; + temp_r31 = &temp_r28->unk108s; + + for (var_r30 = 0; var_r30 < 11; var_r30++) { + temp_r31->unk14[var_r30] = -1; + if (lbl_1_data_410[var_r30][0] != 0) { + temp_r31->unk14[var_r30] = espEntry(lbl_1_data_410[var_r30][0], lbl_1_data_410[var_r30][1], 0); + espAttrSet(temp_r31->unk14[var_r30], 8); + espDispOff(temp_r31->unk14[var_r30]); + } + } + espColorSet(temp_r31->unk14[0], 0, 0, 0); + espTPLvlSet(temp_r31->unk14[0], 0.5); + espScaleSet(temp_r31->unk14[1], 0.75, 0.75); + espScaleSet(temp_r31->unk14[2], 0.75, 0.75); + temp_r31->unkC = lbl_1_data_468[object->work[0]]; +} + +f32 lbl_1_data_488[][2] = { + { 20.0f, 4.0f }, + { 18.0f, 6.0f }, + { 46.0f, 33.0f }, + { 72.0f, 32.0f }, + { 72.0f, 14.0f }, + { 72.0f, -4.0f }, + { 72.0f, -22.0f }, + { -140.0f, 32.0f }, + { -158.0f, 32.0f }, + { -176.0f, 32.0f }, + { -96.0f, 32.0f }, +}; + +void fn_1_8680(omObjData* object) { + f32 var_f31; + s32 var_r27; + s32 var_r30; + u32 var_r28; + M443DllWorkStruct* temp_r29; + M443DllUnkStruct* temp_r31; + + temp_r29 = object->data; + temp_r31 = &temp_r29->unk108s; + temp_r31->unk8++; + + for (var_r30 = 0; var_r30 < 11; var_r30++) { + if (temp_r31->unk14[var_r30] >= 0) { + if (temp_r31->unk0 == 0) { + espDispOff(temp_r31->unk14[var_r30]); + } else { + espDispOn(temp_r31->unk14[var_r30]); + espPosSet( + temp_r31->unk14[var_r30], + 0.9f * (temp_r29->unk104->unk_44 + temp_r31->unkC.x + lbl_1_data_488[var_r30][0]), + temp_r29->unk104->unk_48 + temp_r31->unkC.y + lbl_1_data_488[var_r30][1] + ); + } + } + } + var_f31 = 0.0f; + if (temp_r29->unk88 > 8000.0f) { + var_f31 = (0.004f * frandmod(0x3E8)) - 2.0f; + } + espZRotSet(temp_r31->unk14[2], (90.0f * (0.0001f * temp_r29->unk88)) + var_f31); + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r27 = 0; + if (temp_r29->unk80 == var_r30) { + var_r27 = 2; + } else if (((temp_r29->unk80 + 1) == var_r30) && (temp_r31->unk4 != 0)) { + var_r27 += (temp_r31->unk8 >> 1) & 1; + } + espBankSet(temp_r31->unk14[var_r30 + 3], var_r27); + } + var_r28 = (3.6f * temp_r29->unk7C); + var_r30 = var_r28 % 10; + espBankSet(temp_r31->unk14[7], var_r30); + var_r28 = (var_r28 - var_r30) / 10; + var_r30 = var_r28 % 10; + espBankSet(temp_r31->unk14[8], var_r30); + var_r28 = (var_r28 - var_r30) / 10; + var_r30 = var_r28 % 10; + espBankSet(temp_r31->unk14[9], var_r30); +} + +f32 lbl_1_data_4E0[4] = { + 18.5f, 9.25f, 6.66f, 5.55f +}; + +f32 fn_1_8958(u32 arg0) { + if (arg0 >= 4) { + if (arg0 >= 4) { + } + } + return lbl_1_data_4E0[arg0]; +} + +f32 fn_1_8990(f32 arg8) { + f32 var_f30; + f32 var_f31; + + var_f30 = 0.8f * (0.00016666666f * (6000.0f - arg8)); + var_f30 = 0.6f * (1.0f - (var_f30 * var_f30)); + var_f31 = 0.000400000002f * (6500.0f - arg8); + var_f31 = 0.4f * (1.0f - (var_f31 * var_f31)); + if (var_f31 > 0.0f) { + var_f30 += var_f31; + } + var_f31 = arg8 - 8000.0f; + if (var_f31 > 0.0f) { + var_f31 = 1.0f - (0.00033333333f * var_f31); + var_f30 = var_f31 * (var_f30 * var_f31); + } + return 55.0f * var_f30; +} + +f32 fn_1_8AC8(u32 arg0, f32 arg1) { + return 1.7647059f * (fn_1_8990(arg1) * fn_1_8958(arg0)); +} + +f32 fn_1_8C68(f32 arg0) { + return 9.8f * (0.0012820513f * arg0); +} + +f32 fn_1_8C8C(s32 arg0, f32 arg1) { + return 3.204422f * ((0.016666668f * arg1) / fn_1_8958(arg0)); +} + +f32 fn_1_8D00(u32 arg0, f32 arg1) { + return 0.31206876f * (60.0f * arg1) * fn_1_8958(arg0); +} + +f32 fn_1_8D74(f32 arg0) { + return 0.024899999f * (arg0 * arg0); +} + +f32 fn_1_8D8C(u32 arg0, f32 arg8) { + return arg8 / fn_1_8958(arg0); +} +f32 fn_1_8DE0(u32 arg0, f32 arg8) { + return arg8 * fn_1_8958(arg0); +} + +void fn_1_8E34(s32 arg0) { + s32 var_r29; + ParticleData* temp_r30; + HsfanimStruct01* var_r31; + + temp_r30 = Hu3DData[arg0].unk_120; + var_r31 = temp_r30->unk_48; + + for (var_r29 = 0; var_r29 < temp_r30->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00_s16 != 0) { + PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + var_r31->unk08.z -= 0.3f; + var_r31->unk2C += 2.0f; + var_r31->unk40.a *= 0.98f; + if (var_r31->unk00_s16 < 24.0f) { + var_r31->unk40.a = var_r31->unk40.a * 0.9f; + } + if (--var_r31->unk00_s16 == 0) { + var_r31->unk00 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + } + } + DCStoreRange(temp_r30->unk_48, temp_r30->unk_30 * 0x44); +} + +static inline f32 isEven(u32 arg) { + if ((arg & 1) != 0) { + return 1.0f; + } else { + return -1.0f; + } +} + +void fn_1_8FFC(u32 arg0, Point3d* arg1, f32 arg2, f32 arg3) { + f32 temp_f31; + f32 var_f29; + ParticleData* temp_r29; + s32 var_r28; + u32 var_r27; + HsfanimStruct01* var_r31; + + temp_r29 = Hu3DData[lbl_1_bss_90[arg0]->model[3]].unk_120; + if (frandmod(0x3E8) > 1000.0f * arg2) return; + + var_r27 = 2; + var_r31 = temp_r29->unk_48; + + for (var_r28 = 0; var_r28 < temp_r29->unk_30; var_r28++, var_r31++) { + if (var_r31->unk00_s16 != 0) continue; + + var_r31->unk00_s16 = (60.0f * (0.6f + (0.0005f * frandmod(0x3E8)))); + var_f29 = isEven(var_r27); + temp_f31 = 0.030000001f * frandmod(0x3E8); + var_r31->unk34.x = arg1->x + var_f29 * (70.0f + (0.07f * frandmod(0x3E8))); + var_r31->unk34.y = 10.0f + (arg1->y + (0.02f * frandmod(0x3E8))); + var_r31->unk34.z = (250.0f + arg1->z); + temp_f31 = 0.8333334f + 0.0016666667f * frandmod(0x3E8); + temp_f31 *= 1.0f + arg2; + var_r31->unk08.x = (0.0025f * frandmod(0x3E8) - 1.25f); + var_r31->unk08.y = (3.3333335f + 0.0016666667f * frandmod(0x3E8)); + var_r31->unk08.z = ((4.166667f + (0.0016666667f * frandmod(0x3E8))) - (0.016666668f * (0.5f * arg3))); + var_r31->unk30 = frandmod(0x168); + temp_f31 = 0.001f * frandmod(0x3E8); + var_r31->unk2C = (50.0f + (100.0f * temp_f31)); + var_r31->unk40.a = (70.0f + (80.0f * (1.0f - temp_f31))); + var_r31->unk40.r = (50.0f + (145.0f * temp_f31)); + var_r31->unk40.g = (55.0f + (140.0f * temp_f31)); + var_r31->unk40.b = (70.0f + (125.0f * temp_f31)); + if (--var_r27 < 1) break; + } +} + +void fn_1_95A4(u32 arg0) { + s32 var_r29; + ParticleData* temp_r30; + HsfanimStruct01* var_r31; + + temp_r30 = Hu3DData[lbl_1_bss_90[arg0]->model[3]].unk_120; + var_r31 = temp_r30->unk_48; + + for (var_r29 = 0; var_r29 < temp_r30->unk_30; var_r29++, var_r31++) { + var_r31->unk00 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } +} From 12c93762c9c6f6f1daa7c462f4dddee4fc4b687c Mon Sep 17 00:00:00 2001 From: CreateSource Date: Fri, 1 Nov 2024 21:57:05 -0400 Subject: [PATCH 095/311] fix symbol processing in m641Dll --- config/GMPE01_00/rels/m461Dll/symbols.txt | 174 +++++++++++----------- 1 file changed, 87 insertions(+), 87 deletions(-) diff --git a/config/GMPE01_00/rels/m461Dll/symbols.txt b/config/GMPE01_00/rels/m461Dll/symbols.txt index 04ac5e69..27492436 100644 --- a/config/GMPE01_00/rels/m461Dll/symbols.txt +++ b/config/GMPE01_00/rels/m461Dll/symbols.txt @@ -74,90 +74,90 @@ ObjectSetup = .text:0x0000CBB0; // type:function size:0xB5C fn_1_D70C = .text:0x0000D70C; // type:function size:0xD0 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 -lbl_1_data_80 = .data:0x00000080; // type:object size:0x1F data:string +lbl_1_data_80 = .data:0x00000080; // type:object size:0x1F scope:local data:string lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC data:4byte lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC lbl_1_data_B8 = .data:0x000000B8; // type:object size:0xC data:4byte @@ -179,14 +179,14 @@ lbl_1_data_240 = .data:0x00000240; // type:object size:0x24 lbl_1_data_264 = .data:0x00000264; // type:object size:0xC data:4byte lbl_1_data_270 = .data:0x00000270; // type:object size:0x80 lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x30 -lbl_1_data_320 = .data:0x00000320; // type:object size:0x23 data:string -lbl_1_data_343 = .data:0x00000343; // type:object size:0x9 data:string -lbl_1_data_34C = .data:0x0000034C; // type:object size:0x6 data:string -lbl_1_data_352 = .data:0x00000352; // type:object size:0x1D data:string -lbl_1_data_36F = .data:0x0000036F; // type:object size:0x1D data:string -lbl_1_data_38C = .data:0x0000038C; // type:object size:0x1B data:string +lbl_1_data_320 = .data:0x00000320; // type:object size:0x23 scope:local data:string +lbl_1_data_343 = .data:0x00000343; // type:object size:0x9 scope:local data:string +lbl_1_data_34C = .data:0x0000034C; // type:object size:0x6 scope:local data:string +lbl_1_data_352 = .data:0x00000352; // type:object size:0x1D scope:local data:string +lbl_1_data_36F = .data:0x0000036F; // type:object size:0x1D scope:local data:string +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x1B scope:local data:string jumptable_1_data_3A8 = .data:0x000003A8; // type:object size:0x20 scope:local -lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x24 data:string +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x24 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float From 99916550a77a49a35fab383a1d8e214b320a90ca Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 3 Nov 2024 22:35:25 +0100 Subject: [PATCH 096/311] Matched m450Dll --- config/GMPE01_00/rels/m450Dll/symbols.txt | 479 +- configure.py | 2 +- src/REL/m450Dll/main.c | 7299 ++++++++++++++++++++- 3 files changed, 7539 insertions(+), 241 deletions(-) diff --git a/config/GMPE01_00/rels/m450Dll/symbols.txt b/config/GMPE01_00/rels/m450Dll/symbols.txt index 8f6a0e14..6adc8754 100644 --- a/config/GMPE01_00/rels/m450Dll/symbols.txt +++ b/config/GMPE01_00/rels/m450Dll/symbols.txt @@ -184,204 +184,206 @@ fn_1_23330 = .text:0x00023330; // type:function size:0x440 fn_1_23770 = .text:0x00023770; // type:function size:0x530 fn_1_23CA0 = .text:0x00023CA0; // type:function size:0x980 fn_1_24620 = .text:0x00024620; // type:function size:0x4A0C -fn_1_2902C = .text:0x0002902C; // type:function size:0x8C0 +ObjectSetup = .text:0x0002902C; // type:function size:0x8C0 fn_1_298EC = .text:0x000298EC; // type:function size:0xD0 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x1 data:byte -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:4byte -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x58 -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:4byte -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x58 -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:4byte -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x8 data:4byte -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:4byte -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x58 scope:local +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x58 scope:local +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 -lbl_1_data_80 = .data:0x00000080; // type:object size:0x1F data:string -lbl_1_data_9F = .data:0x0000009F; // type:object size:0xD +lbl_1_data_80 = .data:0x00000080; // type:object size:0x1F scope:local data:string +lbl_1_data_9F = .data:0x0000009F; // type:object size:0xC data:byte lbl_1_data_AC = .data:0x000000AC; // type:object size:0x8 lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4C lbl_1_data_100 = .data:0x00000100; // type:object size:0x14 -lbl_1_data_114 = .data:0x00000114; // type:object size:0x3C -lbl_1_data_150 = .data:0x00000150; // type:object size:0x3C -lbl_1_data_18C = .data:0x0000018C; // type:object size:0x20 -lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x20 -lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x10 -lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x28 -lbl_1_data_204 = .data:0x00000204; // type:object size:0x30 -lbl_1_data_234 = .data:0x00000234; // type:object size:0x20 -lbl_1_data_254 = .data:0x00000254; // type:object size:0x14 -lbl_1_data_268 = .data:0x00000268; // type:object size:0x14 -lbl_1_data_27C = .data:0x0000027C; // type:object size:0x14 -lbl_1_data_290 = .data:0x00000290; // type:object size:0x14 -lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x12 data:string -lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x13 data:string -lbl_1_data_2C9 = .data:0x000002C9; // type:object size:0x14 data:string -lbl_1_data_2DD = .data:0x000002DD; // type:object size:0x1C data:string -lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0x12 data:string -lbl_1_data_30B = .data:0x0000030B; // type:object size:0x11 +lbl_1_data_114 = .data:0x00000114; // type:object size:0x3C data:4byte +lbl_1_data_150 = .data:0x00000150; // type:object size:0x3C data:4byte +lbl_1_data_18C = .data:0x0000018C; // type:object size:0x20 data:4byte +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x20 data:4byte +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x10 data:4byte +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x28 data:float +lbl_1_data_204 = .data:0x00000204; // type:object size:0x30 data:float +lbl_1_data_234 = .data:0x00000234; // type:object size:0x20 data:float +lbl_1_data_254 = .data:0x00000254; // type:object size:0x14 data:float +lbl_1_data_268 = .data:0x00000268; // type:object size:0x14 data:float +lbl_1_data_27C = .data:0x0000027C; // type:object size:0x14 data:float +lbl_1_data_290 = .data:0x00000290; // type:object size:0x14 data:float +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x12 scope:local data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x13 scope:local data:string +lbl_1_data_2C9 = .data:0x000002C9; // type:object size:0x14 scope:local data:string +lbl_1_data_2DD = .data:0x000002DD; // type:object size:0x1C scope:local data:string +lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0x12 scope:local data:string +lbl_1_data_30B = .data:0x0000030B; // type:object size:0x11 scope:local data:string jumptable_1_data_31C = .data:0x0000031C; // type:object size:0x60 scope:local -lbl_1_data_37C = .data:0x0000037C; // type:object size:0x12 data:string -lbl_1_data_38E = .data:0x0000038E; // type:object size:0x12 data:string -lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x13 data:string -lbl_1_data_3B3 = .data:0x000003B3; // type:object size:0x14 data:string -lbl_1_data_3C7 = .data:0x000003C7; // type:object size:0x14 data:string -lbl_1_data_3DB = .data:0x000003DB; // type:object size:0x13 data:string -lbl_1_data_3EE = .data:0x000003EE; // type:object size:0x1E +lbl_1_data_37C = .data:0x0000037C; // type:object size:0x12 scope:local data:string +lbl_1_data_38E = .data:0x0000038E; // type:object size:0x12 scope:local data:string +lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x13 scope:local data:string +lbl_1_data_3B3 = .data:0x000003B3; // type:object size:0x14 scope:local data:string +lbl_1_data_3C7 = .data:0x000003C7; // type:object size:0x14 scope:local data:string +lbl_1_data_3DB = .data:0x000003DB; // type:object size:0x13 scope:local data:string +lbl_1_data_3EE = .data:0x000003EE; // type:object size:0x1E scope:local data:string jumptable_1_data_40C = .data:0x0000040C; // type:object size:0x44 scope:local -lbl_1_data_450 = .data:0x00000450; // type:object size:0x14 +lbl_1_data_450 = .data:0x00000450; // type:object size:0x14 scope:local data:string lbl_1_data_464 = .data:0x00000464; // type:object size:0xC data:4byte lbl_1_data_470 = .data:0x00000470; // type:object size:0xC lbl_1_data_47C = .data:0x0000047C; // type:object size:0xC data:4byte lbl_1_data_488 = .data:0x00000488; // type:object size:0xC data:4byte lbl_1_data_494 = .data:0x00000494; // type:object size:0xC data:4byte -lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0xC data:4byte +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0xC data:float lbl_1_data_4AC = .data:0x000004AC; // type:object size:0xC data:4byte lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0xC data:4byte lbl_1_data_4C4 = .data:0x000004C4; // type:object size:0xC data:4byte @@ -393,41 +395,41 @@ lbl_1_data_500 = .data:0x00000500; // type:object size:0x4 lbl_1_data_504 = .data:0x00000504; // type:object size:0xC lbl_1_data_510 = .data:0x00000510; // type:object size:0xC lbl_1_data_51C = .data:0x0000051C; // type:object size:0x30 -lbl_1_data_54C = .data:0x0000054C; // type:object size:0x10 data:string -lbl_1_data_55C = .data:0x0000055C; // type:object size:0x10 data:string -lbl_1_data_56C = .data:0x0000056C; // type:object size:0x10 data:string -lbl_1_data_57C = .data:0x0000057C; // type:object size:0x10 data:string -lbl_1_data_58C = .data:0x0000058C; // type:object size:0x10 data:string -lbl_1_data_59C = .data:0x0000059C; // type:object size:0x10 data:string -lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x10 data:string -lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x10 data:string +lbl_1_data_54C = .data:0x0000054C; // type:object size:0x10 scope:local data:string +lbl_1_data_55C = .data:0x0000055C; // type:object size:0x10 scope:local data:string +lbl_1_data_56C = .data:0x0000056C; // type:object size:0x10 scope:local data:string +lbl_1_data_57C = .data:0x0000057C; // type:object size:0x10 scope:local data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x10 scope:local data:string +lbl_1_data_59C = .data:0x0000059C; // type:object size:0x10 scope:local data:string +lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x10 scope:local data:string +lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x10 scope:local data:string lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x80 lbl_1_data_64C = .data:0x0000064C; // type:object size:0x2E0 lbl_1_data_92C = .data:0x0000092C; // type:object size:0x20 -lbl_1_data_94C = .data:0x0000094C; // type:object size:0xA0 +lbl_1_data_94C = .data:0x0000094C; // type:object size:0xA0 data:float lbl_1_data_9EC = .data:0x000009EC; // type:object size:0x20 lbl_1_data_A0C = .data:0x00000A0C; // type:object size:0x38 data:4byte -lbl_1_data_A44 = .data:0x00000A44; // type:object size:0x13 data:string -lbl_1_data_A57 = .data:0x00000A57; // type:object size:0x13 data:string -lbl_1_data_A6A = .data:0x00000A6A; // type:object size:0x16 +lbl_1_data_A44 = .data:0x00000A44; // type:object size:0x13 scope:local data:string +lbl_1_data_A57 = .data:0x00000A57; // type:object size:0x13 scope:local data:string +lbl_1_data_A6A = .data:0x00000A6A; // type:object size:0x16 scope:local data:string lbl_1_data_A80 = .data:0x00000A80; // type:object size:0x18C -lbl_1_data_C0C = .data:0x00000C0C; // type:object size:0x13 data:string -lbl_1_data_C1F = .data:0x00000C1F; // type:object size:0x13 data:string -lbl_1_data_C32 = .data:0x00000C32; // type:object size:0x13 data:string -lbl_1_data_C45 = .data:0x00000C45; // type:object size:0x13 data:string +lbl_1_data_C0C = .data:0x00000C0C; // type:object size:0x13 scope:local data:string +lbl_1_data_C1F = .data:0x00000C1F; // type:object size:0x13 scope:local data:string +lbl_1_data_C32 = .data:0x00000C32; // type:object size:0x13 scope:local data:string +lbl_1_data_C45 = .data:0x00000C45; // type:object size:0x13 scope:local data:string lbl_1_data_C58 = .data:0x00000C58; // type:object size:0x1B8 -lbl_1_data_E10 = .data:0x00000E10; // type:object size:0x11 data:string -lbl_1_data_E21 = .data:0x00000E21; // type:object size:0x11 data:string -lbl_1_data_E32 = .data:0x00000E32; // type:object size:0x11 data:string -lbl_1_data_E43 = .data:0x00000E43; // type:object size:0x11 data:string -lbl_1_data_E54 = .data:0x00000E54; // type:object size:0x14 +lbl_1_data_E10 = .data:0x00000E10; // type:object size:0x11 scope:local data:string +lbl_1_data_E21 = .data:0x00000E21; // type:object size:0x11 scope:local data:string +lbl_1_data_E32 = .data:0x00000E32; // type:object size:0x11 scope:local data:string +lbl_1_data_E43 = .data:0x00000E43; // type:object size:0x11 scope:local data:string +lbl_1_data_E54 = .data:0x00000E54; // type:object size:0x14 scope:local data:string lbl_1_data_E68 = .data:0x00000E68; // type:object size:0x14 lbl_1_data_E7C = .data:0x00000E7C; // type:object size:0x84 lbl_1_data_F00 = .data:0x00000F00; // type:object size:0x5C lbl_1_data_F5C = .data:0x00000F5C; // type:object size:0x10 lbl_1_data_F6C = .data:0x00000F6C; // type:object size:0x18 -lbl_1_data_F84 = .data:0x00000F84; // type:object size:0x14 -lbl_1_data_F98 = .data:0x00000F98; // type:object size:0x14 +lbl_1_data_F84 = .data:0x00000F84; // type:object size:0x14 data:float +lbl_1_data_F98 = .data:0x00000F98; // type:object size:0x14 data:float lbl_1_data_FAC = .data:0x00000FAC; // type:object size:0x18 lbl_1_data_FC4 = .data:0x00000FC4; // type:object size:0x14 lbl_1_data_FD8 = .data:0x00000FD8; // type:object size:0x14 @@ -451,47 +453,47 @@ lbl_1_data_1210 = .data:0x00001210; // type:object size:0xC lbl_1_data_121C = .data:0x0000121C; // type:object size:0xC lbl_1_data_1228 = .data:0x00001228; // type:object size:0xC lbl_1_data_1234 = .data:0x00001234; // type:object size:0x20 -lbl_1_data_1254 = .data:0x00001254; // type:object size:0x13 data:string -lbl_1_data_1267 = .data:0x00001267; // type:object size:0x13 data:string -lbl_1_data_127A = .data:0x0000127A; // type:object size:0x13 data:string -lbl_1_data_128D = .data:0x0000128D; // type:object size:0x13 data:string +lbl_1_data_1254 = .data:0x00001254; // type:object size:0x13 scope:local data:string +lbl_1_data_1267 = .data:0x00001267; // type:object size:0x13 scope:local data:string +lbl_1_data_127A = .data:0x0000127A; // type:object size:0x13 scope:local data:string +lbl_1_data_128D = .data:0x0000128D; // type:object size:0x13 scope:local data:string lbl_1_data_12A0 = .data:0x000012A0; // type:object size:0x10 -lbl_1_data_12B0 = .data:0x000012B0; // type:object size:0x13 data:string -lbl_1_data_12C3 = .data:0x000012C3; // type:object size:0x13 data:string -lbl_1_data_12D6 = .data:0x000012D6; // type:object size:0x13 data:string -lbl_1_data_12E9 = .data:0x000012E9; // type:object size:0x13 data:string -lbl_1_data_12FC = .data:0x000012FC; // type:object size:0x13 data:string -lbl_1_data_130F = .data:0x0000130F; // type:object size:0x13 data:string -lbl_1_data_1322 = .data:0x00001322; // type:object size:0x13 data:string -lbl_1_data_1335 = .data:0x00001335; // type:object size:0x13 data:string -lbl_1_data_1348 = .data:0x00001348; // type:object size:0x14 +lbl_1_data_12B0 = .data:0x000012B0; // type:object size:0x13 scope:local data:string +lbl_1_data_12C3 = .data:0x000012C3; // type:object size:0x13 scope:local data:string +lbl_1_data_12D6 = .data:0x000012D6; // type:object size:0x13 scope:local data:string +lbl_1_data_12E9 = .data:0x000012E9; // type:object size:0x13 scope:local data:string +lbl_1_data_12FC = .data:0x000012FC; // type:object size:0x13 scope:local data:string +lbl_1_data_130F = .data:0x0000130F; // type:object size:0x13 scope:local data:string +lbl_1_data_1322 = .data:0x00001322; // type:object size:0x13 scope:local data:string +lbl_1_data_1335 = .data:0x00001335; // type:object size:0x13 scope:local data:string +lbl_1_data_1348 = .data:0x00001348; // type:object size:0x14 scope:local data:string lbl_1_data_135C = .data:0x0000135C; // type:object size:0x24 lbl_1_data_1380 = .data:0x00001380; // type:object size:0x38 data:4byte lbl_1_data_13B8 = .data:0x000013B8; // type:object size:0x38 data:4byte -lbl_1_data_13F0 = .data:0x000013F0; // type:object size:0x13 data:string -lbl_1_data_1403 = .data:0x00001403; // type:object size:0x13 data:string -lbl_1_data_1416 = .data:0x00001416; // type:object size:0x13 data:string -lbl_1_data_1429 = .data:0x00001429; // type:object size:0x13 data:string -lbl_1_data_143C = .data:0x0000143C; // type:object size:0x14 +lbl_1_data_13F0 = .data:0x000013F0; // type:object size:0x13 scope:local data:string +lbl_1_data_1403 = .data:0x00001403; // type:object size:0x13 scope:local data:string +lbl_1_data_1416 = .data:0x00001416; // type:object size:0x13 scope:local data:string +lbl_1_data_1429 = .data:0x00001429; // type:object size:0x13 scope:local data:string +lbl_1_data_143C = .data:0x0000143C; // type:object size:0x14 scope:local data:string lbl_1_data_1450 = .data:0x00001450; // type:object size:0xB4 lbl_1_data_1504 = .data:0x00001504; // type:object size:0x50 -lbl_1_data_1554 = .data:0x00001554; // type:object size:0x13 data:string -lbl_1_data_1567 = .data:0x00001567; // type:object size:0x13 data:string -lbl_1_data_157A = .data:0x0000157A; // type:object size:0x13 data:string -lbl_1_data_158D = .data:0x0000158D; // type:object size:0x13 data:string -lbl_1_data_15A0 = .data:0x000015A0; // type:object size:0x13 data:string -lbl_1_data_15B3 = .data:0x000015B3; // type:object size:0x12 data:string -lbl_1_data_15C5 = .data:0x000015C5; // type:object size:0x25 data:string -lbl_1_data_15EA = .data:0x000015EA; // type:object size:0x22 data:string -lbl_1_data_160C = .data:0x0000160C; // type:object size:0x9 data:string -lbl_1_data_1615 = .data:0x00001615; // type:object size:0xA data:string -lbl_1_data_161F = .data:0x0000161F; // type:object size:0xE data:string -lbl_1_data_162D = .data:0x0000162D; // type:object size:0x6 data:string -lbl_1_data_1633 = .data:0x00001633; // type:object size:0x1D data:string +lbl_1_data_1554 = .data:0x00001554; // type:object size:0x13 scope:local data:string +lbl_1_data_1567 = .data:0x00001567; // type:object size:0x13 scope:local data:string +lbl_1_data_157A = .data:0x0000157A; // type:object size:0x13 scope:local data:string +lbl_1_data_158D = .data:0x0000158D; // type:object size:0x13 scope:local data:string +lbl_1_data_15A0 = .data:0x000015A0; // type:object size:0x13 scope:local data:string +lbl_1_data_15B3 = .data:0x000015B3; // type:object size:0x12 scope:local data:string +lbl_1_data_15C5 = .data:0x000015C5; // type:object size:0x25 scope:local data:string +lbl_1_data_15EA = .data:0x000015EA; // type:object size:0x22 scope:local data:string +lbl_1_data_160C = .data:0x0000160C; // type:object size:0x9 scope:local data:string +lbl_1_data_1615 = .data:0x00001615; // type:object size:0xA scope:local data:string +lbl_1_data_161F = .data:0x0000161F; // type:object size:0xE scope:local data:string +lbl_1_data_162D = .data:0x0000162D; // type:object size:0x6 scope:local data:string +lbl_1_data_1633 = .data:0x00001633; // type:object size:0x1D scope:local data:string jumptable_1_data_1650 = .data:0x00001650; // type:object size:0x70 scope:local -lbl_1_data_16C0 = .data:0x000016C0; // type:object size:0x1C +lbl_1_data_16C0 = .data:0x000016C0; // type:object size:0x1C scope:local data:string jumptable_1_data_16DC = .data:0x000016DC; // type:object size:0xC4 scope:local -lbl_1_data_17A0 = .data:0x000017A0; // type:object size:0x24 data:string +lbl_1_data_17A0 = .data:0x000017A0; // type:object size:0x24 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte @@ -528,7 +530,8 @@ lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x4 data:4byte lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:4byte lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x4 data:float -lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x8 data:float +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x4 data:float +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4 data:float lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x4 data:4byte lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 86b02def..933a7b2b 100644 --- a/configure.py +++ b/configure.py @@ -1202,7 +1202,7 @@ config.libs = [ Rel( "m450Dll", # The Final Battle! objects={ - Object(NonMatching, "REL/m450Dll/main.c"), + Object(Matching, "REL/m450Dll/main.c"), }, ), Rel( diff --git a/src/REL/m450Dll/main.c b/src/REL/m450Dll/main.c index c60c4a31..6876625f 100644 --- a/src/REL/m450Dll/main.c +++ b/src/REL/m450Dll/main.c @@ -1,11 +1,21 @@ #include "REL/executor.h" +#include "datadir_enum.h" +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/gx/GXVert.h" +#include "dolphin/mtx/GeoTypes.h" +#include "dolphin/pad.h" +#include "dolphin/types.h" #include "game/chrman.h" +#include "game/data.h" #include "game/frand.h" +#include "game/memory.h" #include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" #include "game/wipe.h" +#include "game/gamework.h" #include "game/gamework_data.h" #include "game/mapspace.h" @@ -23,6 +33,16 @@ #include "ext_math.h" #include "rel_sqrt_consts.h" +#include "game/window.h" +#include "string.h" + +#ifndef __MWERKS__ +#include "game/audio.h" +#include "game/hsfex.h" + +void HuSysVWaitSet(s16 vcount); +#endif + #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) @@ -403,9 +423,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) var_r30 = &Hu3DData[arg0]; Hu3DModelObjMtxGet(arg0, arg1, spC); - PSMTXConcat(var_r30->unk_F0, spC, spC); + MTXConcat(var_r30->unk_F0, spC, spC); if (NULL != arg3) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); } arg2->x = spC[0][3]; arg2->y = spC[1][3]; @@ -478,3 +498,7278 @@ void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) } VECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0); } + +typedef struct UnkData1380Struct { + /* 0x00 */ char **unk_00; + /* 0x04 */ float unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ s32 unk_18; + /* 0x1C */ s32 unk_1C; + /* 0x20 */ s32 unk_20; + /* 0x24 */ s32 *unk_24; + /* 0x28 */ s32 *unk_28; + /* 0x2C */ s32 *unk_2C; + /* 0x30 */ Vec *unk_30; + /* 0x34 */ Vec *unk_34; +} UnkData1380Struct; /* size = 0x38 */ + +typedef struct UnkData1450Struct { + /* 0x00 */ char *unk_00; + /* 0x04 */ Vec unk_04; + /* 0x10 */ float unk_10; + /* 0x14 */ float unk_14; + /* 0x18 */ s32 unk_18; + /* 0x1C */ s32 unk_1C; + /* 0x20 */ s32 unk_20; +} UnkData1450Struct; /* size = 0x24 */ + +typedef struct UnkData5CCStruct { + /* 0x00 */ char *unk_00; + /* 0x04 */ u32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ float unk_0C; +} UnkData5CCStruct; /* size = 0x10 */ + +typedef struct UnkDataA0CStruct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ s32 *unk_18; +} UnkDataA0CStruct; /* size = 0x1C */ + +typedef struct UnkData94CStruct { + /* 0x00 */ s32 unk_00; + /* 0x00 */ float unk_04; + /* 0x00 */ float unk_08; + /* 0x00 */ float unk_0C; + /* 0x00 */ u32 unk_10; +} UnkData94CStruct; /* size = 0x14 */ + +typedef struct UnkDataA80Struct { + char *unk_00; + Vec unk_04; + s32 unk_10; + float unk_14; + Vec unk_18; + s32 unk_24; + s32 unk_28; +} UnkDataA80Struct; /* size = 0x2C */ + +typedef struct UnkData204Struct { + float unk_00; + s32 unk_04; +} UnkData204Struct; /* size = 0x08 */ + +// these are copied from m461Dll/main.c +typedef void (*PlayerOldHook)(omObjData *obj); +typedef Vec *(*PlayerOldPosHook)(omObjData *obj); + +typedef struct work_playerold { + omObjData *unk_00; + PlayerOldHook unk_04; + PlayerOldPosHook unk_08; + PlayerOldHook unk_0C; + PlayerOldHook unk_10; + s32 *unk_14; + s32 unk_18; + s32 unk_1C; + s32 unk_20; + s32 unk_24; + s32 unk_28; + s32 unk_2C; + s32 unk_30; + s32 unk_34; + s32 unk_38; + s32 unk_3C; + s32 unk_40; + s32 unk_44; + s32 unk_48; + s32 unk_4C; + Vec *unk_50; + Vec unk_54; + float unk_60; + s32 unk_64; + Vec *unk_68; + Vec unk_6C; + Vec unk_78; + Vec unk_84; + Vec unk_90; + float unk_9C; + float unk_A0; + float unk_A4; + float unk_A8; + Vec unk_AC; + float unk_B8; + float unk_BC; + float unk_C0; +} WorkPlayerOld; + +typedef WorkPlayerOld *(*PlayerOldFind)(int no); + +typedef struct UnkM450Struct5 { + WorkPlayerOld unk_00; + UnkData94CStruct *unk_C4; + float unk_C8; + float unk_CC; + Vec unk_D0; + Vec unk_DC; + float unk_E8; + float unk_EC; + s32 unk_F0; + s32 unk_F4; + float unk_F8; + u32 unk_FC; + s32 unk_100; + s32 unk_104; + s32 unk_108; + s32 unk_10C; + s32 unk_110; + s32 unk_114; + s32 unk_118; + s32 unk_11C; + s32 unk_120; +} UnkM450Struct5; /* size = 0x124 */ + +typedef struct UnkM450Struct4 { + Vec unk_00; + Vec unk_0C; + Vec unk_18; + Vec unk_24; + Vec unk_30; + float unk_3C; + float unk_40; + float unk_44; + float unk_48; + float unk_4C; + float unk_50; + s32 unk_54; + s32 unk_58; + float unk_5C; + float unk_60; + Vec unk_64; + s32 unk_70; + s32 unk_74; + s32 unk_78; + s32 unk_7C; +} UnkM450Struct4; /* size = 0x80 */ + +typedef struct UnkM450Struct3 { + WorkPlayerOld unk_00; + UnkData204Struct *unk_C4; + Vec2f *unk_C8; + char *unk_CC; + float *unk_D0; + Vec unk_D4; + float unk_E0; + float unk_E4; + float unk_E8; + float unk_EC; + float unk_F0; + float unk_F4; + s32 unk_F8; + s32 unk_FC; + float unk_100; + float unk_104; + float unk_108; + s32 unk_10C; + s32 unk_110; + Vec unk_114; + Vec unk_120; + s32 unk_12C; + s32 unk_130; + s32 unk_134; + s32 unk_138; + s32 unk_13C; + s32 unk_140; + float unk_144; + s32 unk_148; + s32 unk_14C; + s32 unk_150; + u32 unk_154; +} UnkM450Struct3; /* size = 0x158 */ + +typedef struct UnkM450Struct2 { + s32 unk_00; + Vec unk_04; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + float unk_20; + float unk_24; + float unk_28; + float unk_2C; + Vec unk_30; + s16 unk_3C; + s16 unk_3E; +} UnkM450Struct2; /* size = 0x40 */ + +typedef void (*UnkM450ModelFunc)(ModelData *, struct UnkM450Struct *, Mtx); + +typedef struct UnkM450Struct { + UnkM450ModelFunc unk_00; + AnimData *unk_04; + Vec *unk_08; + float *unk_0C; + UnkM450Struct2 *unk_10; + Vec *unk_14; + Vec2f *unk_18; + Vec2f *unk_1C; + GXColor *unk_20; + void *unk_24; + Vec unk_28; + float unk_34; + float unk_38; + float unk_3C; + float unk_40; + float unk_44; + float unk_48; + float unk_4C; + float unk_50; + float unk_54; + u32 unk_58; + float unk_5C; + float unk_60; + s16 unk_64; + s16 unk_66; + s16 unk_68; + u8 unk_6A; + u8 unk_6B; +} UnkM450Struct; /* size = 0x6C */ + +s32 fn_1_125C0(s32 arg0, s32 arg1); +s32 fn_1_13B90(s32 arg0); +Vec *fn_1_16314(s32 arg0); +void fn_1_16BC4(Vec *arg0, Vec *arg1, s32 arg2); +void fn_1_17360(Vec *arg0, float arg8); +void fn_1_17970(s32 arg0, s32 arg1, float arg8); +void fn_1_18424(s32 arg0, Vec *arg1); +void fn_1_186A8(); +s32 fn_1_1964C(Vec *arg0, Vec *arg1); +s32 fn_1_19798(); +s32 fn_1_19A10(WorkPlayerOld *arg0, Vec *arg1); +s32 fn_1_1B4C8(UnkM450Struct5 *arg0); +void fn_1_1B510(s32 arg0); +s32 fn_1_1C39C(UnkM450Struct5 *arg0); +void fn_1_20170(omObjData *object); +void fn_1_2902C(); +void fn_1_298EC(omObjData *object); +void fn_1_A968(s32 arg0, float arg8, u32 arg1, s32 arg2, float arg9); +s32 fn_1_E0E8(s32 arg0, s32 arg1); +s32 fn_1_E178(s32 arg0, s32 arg1); +void fn_1_E1A8(s32 arg0, s32 arg1, float arg8, u32 arg2, s32 arg3, float arg9); + +s16 lbl_1_data_0[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; + +s32 lbl_1_data_10[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; + +float lbl_1_data_30[0xA] = { 70.0f, 70.0f, 70.0f, 70.0f, 70.0f, 70.0f, 70.0f, 70.0f, 70.0f, 100.0f }; + +float lbl_1_data_58[0xA] = { + 150.0f, + 170.0f, + 190.0f, + 170.0f, + 160.0f, + 150.0f, + 180.0f, + 200.0f, + 150.0f, + 200.0f, +}; + +PlayerOldFind lbl_1_bss_1AC; +float lbl_1_bss_1A8; +omObjData *lbl_1_bss_1A4; +omObjData *lbl_1_bss_1A0; +omObjData *lbl_1_bss_144[0x17]; +omObjData **lbl_1_bss_140; +omObjData **lbl_1_bss_13C; +// data: UnkM450Struct5 +omObjData *lbl_1_bss_138; +// data: UnkM450Struct3 +omObjData *lbl_1_bss_134; +// data: UnkM450Struct3 +omObjData **lbl_1_bss_130; +float lbl_1_bss_12C; +float lbl_1_bss_128; +float lbl_1_bss_124; +s32 lbl_1_bss_120; +s32 lbl_1_bss_11C; +s32 lbl_1_bss_118; +s32 lbl_1_bss_114; +s32 lbl_1_bss_110; +s32 lbl_1_bss_10C; +s32 lbl_1_bss_108; +UnkDataA80Struct *lbl_1_bss_104; +s32 lbl_1_bss_100; +UnkData1380Struct *lbl_1_bss_FC; +s32 lbl_1_bss_F8; +Vec lbl_1_bss_EC; +void *lbl_1_bss_E8[1]; +UnkM450Struct4 *lbl_1_bss_E4[1]; +UnkM450Struct4 *lbl_1_bss_DC[2]; +s32 lbl_1_bss_D8; +Vec lbl_1_bss_CC; +float lbl_1_bss_C8; +s32 lbl_1_bss_C4; +s32 lbl_1_bss_B8[3]; +Mtx lbl_1_bss_88; +Vec lbl_1_bss_4C[5]; +Vec lbl_1_bss_34[2]; +s16 lbl_1_bss_2C[4]; +AnimData *lbl_1_bss_28; +s16 lbl_1_bss_24; +s32 lbl_1_bss_20; +s32 lbl_1_bss_1C; +s32 lbl_1_bss_18; +AnimData *lbl_1_bss_14; +s32 lbl_1_bss_10; +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +s32 lbl_1_bss_0; + +void fn_1_23B4(WorkPlayerOld *player) +{ + s32 i; + for (i = 0; i < 8; i++) { + if (player->unk_44 == player->unk_14[i]) { + player->unk_40 = lbl_1_data_10[i]; + return; + } + } + player->unk_40 = -1; +} + +void fn_1_2418(float *minDist, s32 *state, s32 stateNew, Vec *posA, float aYOfs, Vec *posB, float bYOfs) +{ + Vec pointA = *posA; + Vec pointB = *posB; + float dist; + pointA.y += aYOfs; + pointB.y += bYOfs; + dist = VECDistance(&pointA, &pointB); + if (*minDist > dist) { + *minDist = dist; + *state = stateNew; + } +} + +void fn_1_24F8(WorkPlayerOld *player1, WorkPlayerOld *player2, float *minDist, s32 *state) +{ + *minDist = 10 * (player1->unk_BC + player2->unk_BC); + fn_1_2418(minDist, state, 0, &player1->unk_6C, player1->unk_BC, &player2->unk_6C, player2->unk_BC); + fn_1_2418(minDist, state, 1, &player1->unk_6C, player1->unk_C0 - player1->unk_BC, &player2->unk_6C, player2->unk_C0 - player2->unk_BC); + fn_1_2418(minDist, state, 2, &player1->unk_6C, player1->unk_BC, &player2->unk_6C, player2->unk_C0 - player2->unk_BC); + fn_1_2418(minDist, state, 3, &player1->unk_6C, player1->unk_C0 - player1->unk_BC, &player2->unk_6C, player2->unk_BC); +} + +s32 fn_1_2824(WorkPlayerOld *player, WorkPlayerOld *player2) +{ + Vec dir; + Vec dir2; + float dist; + + player->unk_3C |= 0x1; + player->unk_90.x = player->unk_20 / 4.0f; + player->unk_90.z = -(float)player->unk_24 / 4.0f; + if (player->unk_90.x != 0.0f || player->unk_90.z != 0.0f) { + return; + } + VECSubtract(&player->unk_6C, &player2->unk_6C, &dir); + dist = VECMagXZ(&dir); + if (0.0f == dist) { + dir.x = 0; + dir.z = -1; + } + else { + dir.x /= dist; + dir.z /= dist; + } + VECSubtract(&player->unk_6C, &player->unk_78, &dir2); + dist = VECMagXZ(&dir2); + if (5 > dist) { + dist = 5; + } + player->unk_90.x = dir.x * dist; + player->unk_90.z = dir.z * dist; +} + +void fn_1_2BD0(WorkPlayerOld *player, float arg1, float arg2) +{ + player->unk_38 = 1; + player->unk_84.y = arg1; + player->unk_A4 = arg2; + if (player->unk_3C & 0x2) { + player->unk_3C &= ~0x2; + } +} + +void fn_1_2C00(PlayerOldFind find, float yDist) +{ + lbl_1_bss_1AC = find; + lbl_1_bss_1A8 = yDist; +} + +void fn_1_2C1C(WorkPlayerOld *player, omObjData *obj, s32 arg2, s32 arg3, s32 *arg4, s32 arg5, Vec *pos, float arg7) +{ + player->unk_00 = obj; + player->unk_18 = arg2; + player->unk_1C = arg3; + player->unk_14 = arg4; + player->unk_04 = NULL; + player->unk_08 = NULL; + player->unk_0C = NULL; + player->unk_10 = NULL; + player->unk_50 = NULL; + player->unk_64 = 0; + player->unk_68 = 0; + player->unk_38 = 0; + player->unk_3C = 0; + player->unk_44 = arg5; + player->unk_48 = 0; + player->unk_4C = 0; + fn_1_23B4(player); + player->unk_9C = arg7; + player->unk_6C = *pos; + player->unk_78 = *pos; + player->unk_84.x = 0; + player->unk_84.y = 0; + player->unk_84.z = 0; + player->unk_B8 = 1; + player->unk_A8 = 0; + player->unk_BC = lbl_1_data_30[player->unk_1C]; + player->unk_C0 = lbl_1_data_58[player->unk_1C]; +} + +void fn_1_2DA8(WorkPlayerOld *player, PlayerOldHook func) +{ + player->unk_04 = func; +} + +void fn_1_2DB0(WorkPlayerOld *player, PlayerOldPosHook func) +{ + player->unk_08 = func; +} + +void fn_1_2DB8(WorkPlayerOld *player, PlayerOldHook func) +{ + player->unk_0C = func; +} + +void fn_1_2DC0(WorkPlayerOld *player, PlayerOldHook func) +{ + player->unk_10 = func; +} + +void fn_1_2DC8(WorkPlayerOld *player, s32 count, Vec *data) +{ + player->unk_64 = count; + player->unk_68 = data; +} + +void fn_1_2DD4(WorkPlayerOld *player) +{ + omSetTra(player->unk_00, player->unk_6C.x, player->unk_6C.y, player->unk_6C.z); + omSetRot(player->unk_00, 0, player->unk_9C, 0); +} + +void fn_1_2E34(WorkPlayerOld *player) +{ + BOOL addTime; + s32 i; + player->unk_3C &= ~0x100; + if (player->unk_3C & 0x8) { + return; + } + if (NULL == lbl_1_bss_1AC) { + return; + } + addTime = FALSE; + for (i = 0; i < 4; i++) { + WorkPlayerOld *player2 = lbl_1_bss_1AC(i); + BOOL fixPos; + float minDist; + s32 state; + if (player == player2) { + continue; + } + if (player2->unk_3C & 0x8) { + continue; + } + fixPos = FALSE; + fn_1_24F8(player, player2, &minDist, &state); + if (minDist < player->unk_BC + player2->unk_BC) { + if (state < 2) { + fixPos = TRUE; + if (player->unk_38 == 1) { + fn_1_2824(player, player2); + } + } + else { + if (state == 2 && player->unk_38 == 1) { + fn_1_2824(player, player2); + player->unk_3C |= 0x100; + player->unk_A4 = 0; + if (!(player2->unk_3C & 0x100)) { + player->unk_84.y = 26.766666f; + } + } + if (state == 3) { + fixPos = TRUE; + if (player->unk_38 == 1) { + if (0.0f < player->unk_84.y) { + player->unk_84.y = 0.0f; + } + player->unk_A4 = 0; + } + } + } + } + if (fixPos) { + Vec dir; + addTime = TRUE; + VECSubtract(&player->unk_6C, &player2->unk_6C, &dir); + if (0.0f == minDist) { + dir.x = 0; + dir.z = -1; + } + else { + dir.x /= minDist; + dir.z /= minDist; + } + player->unk_6C.x = player2->unk_6C.x + (dir.x * (player->unk_BC + player2->unk_BC)); + player->unk_6C.z = player2->unk_6C.z + (dir.z * (player->unk_BC + player2->unk_BC)); + } + } + if (addTime) { + player->unk_4C++; + } + else { + player->unk_4C = 0; + } +} + +float fn_1_39C4(WorkPlayerOld *player, float arg2) +{ + Vec *pos; + s32 i; + AddX = 0.0f; + AddZ = 0.0f; + MapWall(player->unk_BC, player->unk_6C.x, arg2 + player->unk_BC, player->unk_6C.z); + player->unk_6C.x += AddX; + player->unk_6C.z += AddZ; + if (NULL != player->unk_68) { + for (pos = player->unk_68, i = 0; i < player->unk_64; i++, pos += 2) { + int num = 0; + if (pos[0].x == pos[1].x || pos[0].x > player->unk_6C.x || pos[1].x < player->unk_6C.x) { + num++; + } + if (pos[0].y == pos[1].y || pos[0].y > player->unk_6C.y || pos[1].y < player->unk_6C.y) { + num++; + } + if (pos[0].z == pos[1].z || pos[0].z > player->unk_6C.z || pos[1].z < player->unk_6C.z) { + num++; + } + if (num == 3) { + if (pos[0].x != pos[1].x) { + if (pos[0].x > player->unk_6C.x) { + player->unk_6C.x = pos[0].x + player->unk_BC; + } + if (pos[1].x < player->unk_6C.x) { + player->unk_6C.x = pos[1].x - player->unk_BC; + } + } + if (pos[0].y != pos[1].y) { + if (pos[0].y > player->unk_6C.y) { + player->unk_6C.y = pos[0].y; + } + if (pos[1].y < player->unk_6C.y) { + player->unk_6C.y = pos[1].y; + } + } + if (pos[0].z != pos[1].z) { + if (pos[0].z > player->unk_6C.z) { + player->unk_6C.z = pos[0].z + player->unk_BC; + } + if (pos[1].z < player->unk_6C.z) { + player->unk_6C.z = pos[1].z - player->unk_BC; + } + } + } + } + } + return ABS(AddX) + ABS(AddZ); +} + +void fn_1_3CE0(WorkPlayerOld *player, s32 *state, u32 *motAttr) +{ + *motAttr = HU3D_MOTATTR_LOOP; + *state = 0; + if (0.5f <= player->unk_A0) { + if (7.0f <= player->unk_A0) { + *state = 2; + } + else { + *state = 1; + } + } + + if (player->unk_14[3] >= 0 && (player->unk_28 & 0x100)) { + player->unk_38 = 1; + player->unk_84.y = 26.766666f; + player->unk_A4 = 1; + if (player->unk_3C & 0x2) { + player->unk_3C &= ~0x2; + } + *motAttr = HU3D_MOTATTR_NONE; + *state = 3; + } +} + +void fn_1_3DB8(WorkPlayerOld *player, s32 *state, u32 *motAttr) +{ + if (0.0f < player->unk_A4) { + if (player->unk_2C & 0x100) { + player->unk_A4++; + if (4.0f < player->unk_A4) { + player->unk_A4 = 0; + } + else { + player->unk_84.y += 3.65f; + } + } + else { + player->unk_A4 = 0; + } + } + player->unk_84.y += -2.4333334f; + if (player->unk_14[5] >= 0 && (player->unk_28 & 0x140)) { + player->unk_38 = 3; + player->unk_84.y = 0; + player->unk_3C &= ~0x3; + player->unk_3C |= 0x4; + *motAttr = HU3D_MOTATTR_NONE; + *state = 5; + } +} + +void fn_1_3ECC(WorkPlayerOld *player, s32 *state, u32 *motAttr) +{ + if ((player->unk_3C & 0x1000) || Hu3DMotionEndCheck(player->unk_00->model[0])) { + player->unk_3C &= ~0x3; + if (player->unk_40 == 6) { + player->unk_38 = 4; + *motAttr = HU3D_MOTATTR_NONE; + *state = 7; + } + else { + player->unk_38 = 0; + *motAttr = HU3D_MOTATTR_LOOP; + *state = 0; + } + } +} + +void fn_1_3F84(WorkPlayerOld *player, s32 *state, u32 *motAttr) +{ + if (Hu3DMotionShiftIDGet(player->unk_00->model[0]) < 0 && Hu3DMotionEndCheck(player->unk_00->model[0])) { + player->unk_38 = 1; + player->unk_84.y = 0; + player->unk_A4 = 0; + if (player->unk_3C & 0x2) { + player->unk_3C &= ~0x2; + } + } +} + +void fn_1_4024(WorkPlayerOld *player, s32 *state, u32 *motAttr) +{ + if (Hu3DMotionShiftIDGet(player->unk_00->model[0]) < 0 && Hu3DMotionEndCheck(player->unk_00->model[0])) { + player->unk_3C &= ~0x4; + player->unk_38 = 0; + *motAttr = HU3D_MOTATTR_LOOP; + *state = 0; + } +} + +void fn_1_40C0(WorkPlayerOld *player) +{ + u32 motAttr = HU3D_MOTATTR_NONE; + s32 state = -1; + float temp_f28; + float temp_f23; + float temp_f22; + Vec *pos; + BOOL temp_r27; + if (player->unk_3C & 0x1) { + player->unk_84.x = player->unk_90.x; + player->unk_84.z = player->unk_90.z; + } + else { + player->unk_84.x = player->unk_20 / 4.0f; + player->unk_84.z = -(float)player->unk_24 / 4.0f; + if (player->unk_38 == 1 && 0.0f == player->unk_84.x && 0.0f == player->unk_84.z) { + player->unk_84.x = 0.98f * (player->unk_6C.x - player->unk_78.x); + player->unk_84.z = 0.98f * (player->unk_6C.z - player->unk_78.z); + } + if (player->unk_3C & 0x14) { + player->unk_84.x = 0; + player->unk_84.z = 0; + player->unk_28 = 0; + } + } + player->unk_78 = player->unk_6C; + player->unk_A0 = VECMagXZ(&player->unk_84); + if (0.5f <= player->unk_A0) { + if (10.0f <= player->unk_A0) { + player->unk_84.x /= player->unk_A0; + player->unk_84.z /= player->unk_A0; + player->unk_A0 = 10; + player->unk_84.x = 10 * player->unk_84.x; + player->unk_84.z = 10 * player->unk_84.z; + } + } + else { + player->unk_84.x = 0; + player->unk_84.z = 0; + player->unk_A0 = 0; + } + player->unk_84.x *= player->unk_B8; + player->unk_84.z *= player->unk_B8; + player->unk_A0 *= player->unk_B8; + if (player->unk_3C & 0x800) { + player->unk_28 |= 0x100; + player->unk_2C |= 0x100; + if (player->unk_38 == 1) { + if (0.0f == player->unk_A4) { + player->unk_3C &= ~0x800; + } + } + } + switch (player->unk_38) { + case 0: + fn_1_3CE0(player, &state, &motAttr); + break; + + case 1: + fn_1_3DB8(player, &state, &motAttr); + break; + + case 2: + fn_1_3ECC(player, &state, &motAttr); + break; + + case 3: + fn_1_3F84(player, &state, &motAttr); + break; + + case 4: + fn_1_4024(player, &state, &motAttr); + break; + + default: + OSReport("*** player action error(%d)!!\n", player->unk_38); + break; + } + if (player->unk_3C & 0x2000) { + player->unk_84.y = 0; + } + temp_f28 = 0; + if (50.0f < ABS(player->unk_84.y)) { + player->unk_84.y = 50.0f * ((0.0f > player->unk_84.y) ? -1 : 1); + } + if (player->unk_3C & 0x2) { + Mtx rotMtx; + MTXRotDeg(rotMtx, 'y', player->unk_50[2].x - player->unk_60); + MTXMultVec(rotMtx, &player->unk_54, &player->unk_54); + VECAdd(&player->unk_54, &player->unk_50[0], &player->unk_6C); + player->unk_9C += player->unk_50[2].x - player->unk_60; + } + temp_f22 = player->unk_6C.y; + VECAdd(&player->unk_6C, &player->unk_84, &player->unk_6C); + if ((player->unk_3C & 0x1) == 0 && (0.0f != player->unk_84.x || 0.0f != player->unk_84.z)) { + player->unk_9C = fn_1_1E20(player->unk_9C, atan2d(player->unk_84.x, player->unk_84.z), 0.4f * player->unk_B8); + } + temp_f28 += fn_1_39C4(player, temp_f22); + if (nMap == 0) { + player->unk_A8 = lbl_1_bss_1A8; + } + else { + player->unk_A8 = MapPos(player->unk_6C.x, player->unk_6C.y, player->unk_6C.z, player->unk_C0, &player->unk_AC); + } + temp_r27 = FALSE; + if (NULL != player->unk_08) { + pos = player->unk_08(player->unk_00); + if (NULL != pos) { + if (player->unk_A8 < pos[1].y) { + temp_r27 = TRUE; + player->unk_50 = pos; + player->unk_A8 = pos[1].y; + } + } + } + if (!temp_r27 && (player->unk_3C & 0x2)) { + player->unk_3C &= ~0x2; + } + if (player->unk_38 == 1 && player->unk_A8 >= player->unk_6C.y) { + player->unk_38 = 2; + player->unk_3C &= ~0x3; + player->unk_6C.y = player->unk_A8; + player->unk_84.y = 0; + motAttr = HU3D_MOTATTR_NONE; + state = 4; + if (player->unk_40 == 5) { + state = 6; + if (NULL != player->unk_10) { + player->unk_10(player->unk_00); + } + if (player->unk_18 < 4) { + omVibrate(player->unk_18, 12, 4, 2); + } + } + if (player->unk_3C & 0x200) { + state = -1; + if (NULL != player->unk_0C) { + player->unk_0C(player->unk_00); + } + } + if (temp_r27) { + player->unk_3C |= 0x2; + } + } + temp_f23 = player->unk_6C.y - player->unk_A8; + if (player->unk_38 == 0 && 10.0f < temp_f23) { + if ((player->unk_3C & 0x2000) == 0) { + if ((player->unk_3C & 0x400) != 0) { + player->unk_3C |= 0x800; + } + else { + player->unk_38 = 1; + player->unk_84.y = 0.0f; + player->unk_A4 = 0.0f; + if ((player->unk_3C & 2) != 0) { + player->unk_3C &= ~2; + } + motAttr = HU3D_MOTATTR_NONE; + state = 3; + } + } + } + else if (temp_r27) { + if (!(player->unk_3C & 0x2)) { + player->unk_6C.y = player->unk_A8; + player->unk_3C |= 0x2; + } + } + fn_1_2E34(player); + if (NULL != player->unk_04) { + player->unk_04(player->unk_00); + } + temp_f28 += fn_1_39C4(player, player->unk_6C.y); + if (player->unk_3C & 0x2) { + player->unk_60 = player->unk_50[2].x; + VECSubtract(&player->unk_6C, &player->unk_50[0], &player->unk_54); + } + if (0.0f != temp_f28) { + player->unk_48++; + } + else { + player->unk_48 = 0; + } + if (state >= 0 && player->unk_40 != state) { + player->unk_40 = state; + player->unk_44 = player->unk_14[player->unk_40]; + if (player->unk_44 >= 0 && !(player->unk_3C & 0x20)) { + Hu3DMotionShiftSet(player->unk_00->model[0], player->unk_00->motion[player->unk_44], 0, 8, motAttr); + } + } +} + +void fn_1_4ED8(WorkPlayerOld *player, s32 motNo) +{ + s32 i; + player->unk_44 = motNo; + player->unk_38 = 0; + player->unk_3C &= 0x1400; + player->unk_78 = player->unk_6C; + player->unk_84.x = 0; + player->unk_84.y = 0; + player->unk_84.z = 0; + fn_1_23B4(player); + if (player->unk_40 == 3) { + Hu3DModelAttrReset(player->unk_00->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); + Hu3DMotionSet(player->unk_00->model[0], player->unk_00->motion[player->unk_44]); + Hu3DMotionTimeSet(player->unk_00->model[0], Hu3DMotionMaxTimeGet(player->unk_00->model[0]) - 1); + } + else if (player->unk_40 == 5) { + player->unk_38 = 3; + player->unk_3C |= 0x4; + Hu3DModelAttrReset(player->unk_00->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); + Hu3DMotionSet(player->unk_00->model[0], player->unk_00->motion[player->unk_44]); + Hu3DMotionTimeSet(player->unk_00->model[0], Hu3DMotionMaxTimeGet(player->unk_00->model[0]) - 1); + } + else { + Hu3DModelAttrReset(player->unk_00->model[0], HU3D_MOTATTR_PAUSE); + Hu3DMotionShiftSet(player->unk_00->model[0], player->unk_00->motion[player->unk_44], 0, 8, HU3D_MOTATTR_LOOP); + } +} + +void fn_1_5128(WorkPlayerOld *player, s32 attr) +{ + player->unk_3C |= attr; +} + +void fn_1_5138(WorkPlayerOld *player, s32 attr) +{ + player->unk_3C &= ~attr; +} + +void fn_1_5148(ModelData *model, UnkM450Struct *arg1, Mtx matrix) +{ + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + + UnkM450Struct2 *var_r31; + WorkPlayerOld *var_r29; + GXColor *var_r28; + s16 var_r27; + UnkM450Struct5 *var_r26; + + var_r26 = lbl_1_bss_138->data; + var_r29 = &var_r26->unk_00; + var_r31 = arg1->unk_10; + var_r28 = arg1->unk_20; + arg1->unk_66 = 0; + for (var_r27 = 0; var_r27 < arg1->unk_64; var_r27++, var_r31++, var_r28++) { + if (var_r31->unk_3E >= 0) { + var_r31->unk_10 += var_r31->unk_1C; + if (var_r31->unk_20 < var_r31->unk_10) { + var_r31->unk_3E = -1; + } + else { + arg1->unk_66++; + if (NULL != arg1->unk_08) { + var_r31->unk_04 = *arg1->unk_08; + } + if (NULL != arg1->unk_0C) { + var_r31->unk_14 = *arg1->unk_0C; + } + var_r31->unk_30.x = var_r31->unk_04.x + (var_r31->unk_10 * sind((var_r31->unk_14 + var_r31->unk_18))); + var_r31->unk_30.y = var_r31->unk_30.y + (0.03f * (var_r31->unk_24 - var_r31->unk_30.y)); + var_r31->unk_30.z = var_r31->unk_04.z + (var_r31->unk_10 * cosd((var_r31->unk_14 + var_r31->unk_18))); + var_f31 = var_r31->unk_10 / var_r31->unk_20; + var_f29 = 512.0 * cosd((90.0f * var_f31)); + var_r28->a = 255.0f < var_f29 ? 255.0f : var_f29; + var_r31->unk_3C = arg1->unk_68 * var_f31; + if (arg1->unk_68 <= var_r31->unk_3C) { + var_r31->unk_3C = arg1->unk_68 - 1; + } + var_f31 *= 2.0f; + if (1.0f < var_f31) { + var_f31 = 1.0f; + } + var_r31->unk_2C = sind((100.0f * var_f31)); + var_f30 = (26.666666f * var_r31->unk_2C) + var_r29->unk_BC; + sp14 = var_r29->unk_6C; + sp14.y += var_f30; + sp8 = var_r29->unk_6C; + sp8.y += var_r29->unk_C0 - var_f30; + if ((var_r31->unk_3C < 0xC) + && ((var_f30 > VECDistance(&sp14, &var_r31->unk_30)) || (var_f30 > VECDistance(&sp8, &var_r31->unk_30)))) { + var_r26->unk_FC |= 0x20; + } + } + } + } +} +void fn_1_5548(Vec *arg0, float *arg1) +{ + arg1[0] = arg0[0].x; + arg1[4] = arg0[0].y; + arg1[8] = arg0[0].z; + arg1[1] = arg0[1].y; + arg1[5] = arg0[1].z; + arg1[9] = arg0[2].x; + arg1[2] = arg0[2].z; + arg1[6] = arg0[3].x; + arg1[10] = arg0[3].y; + arg1[3] = 0.0f; + arg1[7] = 0.0f; + arg1[11] = 0.0f; +} + +void fn_1_55C4(Vec *arg0, Vec *arg1, s16 arg2, float arg8) +{ + s16 var_r31; + for (var_r31 = 0; var_r31 < arg2; var_r31++, arg0++, arg1++) { + arg1->x = arg0->x * arg8; + arg1->y = arg0->y * arg8; + arg1->z = arg0->z * arg8; + } +} + +void fn_1_5620(Vec2f *arg0, Vec2f *arg1, s16 arg2, float arg8, float arg9) +{ + arg0[0].x = arg1[arg2].x; + arg0[0].y = arg1[arg2].y; + arg0[1].x = arg8 + arg1[arg2].x; + arg0[1].y = arg1[arg2].y; + arg0[2].x = arg8 + arg1[arg2].x; + arg0[2].y = arg9 + arg1[arg2].y; + arg0[3].x = arg1[arg2].x; + arg0[3].y = arg9 + arg1[arg2].y; +} + +void fn_1_56C4(ModelData *arg0, Mtx arg1) +{ + Mtx sp130; + ROMtx sp100; + Mtx spD0; + Mtx spA0; + Vec sp70[4]; + Vec sp64; + Vec sp58; + Vec sp4C; + Vec sp40; + Vec sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + UnkM450ModelFunc spC; + s16 sp8; + + UnkM450Struct *var_r31; + Vec *var_r30; + UnkM450Struct2 *var_r29; + Vec2f *var_r27; + s16 var_r19; + + var_r31 = arg0->unk_120; + if ((var_r31->unk_6B == 0) || (var_r31->unk_66 != 0)) { + GXLoadPosMtxImm(arg1, 0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + sp8 = var_r31->unk_04->bmp->dataFmt & 0xF; + if ((sp8 == 8) || (sp8 == 7)) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXA, GX_CC_RASC, GX_CC_ZERO); + } + else { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + } + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + if ((arg0->attr & 2) != 0) { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + } + else { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + } + HuSprTexLoad(var_r31->unk_04, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(GX_FALSE); + switch (var_r31->unk_6A) { + case 0: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + break; + case 1: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + break; + case 2: + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + break; + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, var_r31->unk_14, 0xC); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, var_r31->unk_20, 4); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, var_r31->unk_18, 8); + sp130[0][0] = arg1[0][0]; + sp130[1][0] = arg1[0][1]; + sp130[2][0] = arg1[0][2]; + sp130[0][1] = arg1[1][0]; + sp130[1][1] = arg1[1][1]; + sp130[2][1] = arg1[1][2]; + sp130[0][2] = arg1[2][0]; + sp130[1][2] = arg1[2][1]; + sp130[2][2] = arg1[2][2]; + sp130[0][3] = 0.0f; + sp130[1][3] = 0.0f; + sp130[2][3] = 0.0f; + PSMTXReorder(sp130, sp100); + if ((omPauseChk() == 0) && (var_r31->unk_00)) { + spC = var_r31->unk_00; + spC(arg0, var_r31, arg1); + } + var_r29 = var_r31->unk_10; + var_r30 = var_r31->unk_14; + var_r27 = var_r31->unk_18; + PSMTXROMultVecArray(sp100, &var_r31->unk_28, sp70, 4); + for (var_r19 = 0; var_r19 < var_r31->unk_64; var_r19++, var_r29++, var_r27 += 4) { + if (var_r29->unk_3E < 0) { + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + } + else { + if (var_r29->unk_28 == 0.0f) { + fn_1_55C4(sp70, &sp40, 4, var_r29->unk_2C); + VECAdd(&sp40, &var_r29->unk_30, var_r30++); + VECAdd(&sp4C, &var_r29->unk_30, var_r30++); + VECAdd(&sp58, &var_r29->unk_30, var_r30++); + VECAdd(&sp64, &var_r29->unk_30, var_r30++); + } + else { + fn_1_55C4(&var_r31->unk_28, &sp40, 4, var_r29->unk_2C); + MTXRotRad(spD0, 0x5A, 0.017453292f * var_r29->unk_28); + MTXConcat(sp130, spD0, spA0); + MTXMultVecArray(spA0, &sp40, &sp10, 4); + VECAdd(&sp10, &var_r29->unk_30, var_r30++); + VECAdd(&sp1C, &var_r29->unk_30, var_r30++); + VECAdd(&sp28, &var_r29->unk_30, var_r30++); + VECAdd(&sp34, &var_r29->unk_30, var_r30++); + } + if (var_r29->unk_3C != -1) { + fn_1_5620(var_r27, var_r31->unk_1C, var_r29->unk_3C, var_r31->unk_5C, var_r31->unk_60); + } + } + } + DCFlushRangeNoSync(var_r31->unk_14, var_r31->unk_64 * 0xC * 4); + DCFlushRangeNoSync(var_r31->unk_18, var_r31->unk_64 * 8 * 4); + GXCallDisplayList(var_r31->unk_24, var_r31->unk_58); + } +} + +void fn_1_5E0C(Vec2f *arg0, s16 arg1, s16 arg2, float arg8, float arg9) +{ + s16 var_r31; + s16 var_r30; + s16 var_r29; + + (void)arg9; + (void)arg9; + (void)arg9; + (void)arg8; + (void)arg8; + (void)arg8; + + for (var_r31 = 0; var_r31 < arg1; var_r31++, arg0++) { + var_r30 = var_r31 % arg2; + var_r29 = var_r31 / arg2; + arg0->x = var_r30 * arg8; + arg0->y = var_r29 * arg9; + } +} + +s16 fn_1_5ED8(AnimData *arg0, Vec *arg1, float *arg2, s16 arg3, float arg8, s16 arg4, s16 arg5) +{ + void *sp1C; + + UnkM450Struct *var_r31; + s16 var_r30; + Vec2f *var_r29; + ModelData *var_r28; + GXColor *var_r26; + Vec *var_r25; + UnkM450Struct2 *var_r24; + s16 var_r21; + void *var_r19; + s16 var_r18; + s16 var_r17; + + var_r18 = Hu3DHookFuncCreate(fn_1_56C4); + var_r28 = &Hu3DData[var_r18]; + var_r28->unk_120 = HuMemDirectMallocNum(HEAP_DATA, sizeof(UnkM450Struct), var_r28->unk_48); + var_r31 = var_r28->unk_120; + arg0->useNum++; + var_r31->unk_04 = arg0; + var_r31->unk_08 = arg1; + var_r31->unk_0C = arg2; + var_r31->unk_64 = arg3; + var_r31->unk_6A = 0; + var_r31->unk_00 = 0; + var_r31->unk_66 = arg3; + var_r31->unk_6B = 0; + var_r31->unk_10 = HuMemDirectMallocNum(HEAP_DATA, arg3 * 0x40, var_r28->unk_48); + for (var_r24 = var_r31->unk_10, var_r30 = 0; var_r30 < arg3; var_r30++, var_r24++) { + var_r24->unk_3E = -1; + var_r24->unk_3C = -1; + } + var_r31->unk_14 = HuMemDirectMallocNum(HEAP_DATA, arg3 * sizeof(Vec) * 4, var_r28->unk_48); + for (var_r25 = var_r31->unk_14, var_r30 = 0; var_r30 < (arg3 * 4); var_r30++, var_r25++) { + var_r25->x = 0.0f; + var_r25->y = 0.0f; + var_r25->z = 0.0f; + } + var_r31->unk_20 = HuMemDirectMallocNum(HEAP_DATA, arg3 * sizeof(GXColor), var_r28->unk_48); + for (var_r26 = var_r31->unk_20, var_r30 = 0; var_r30 < arg3; var_r30++, var_r26++) { + var_r26->r = 0xFF; + var_r26->g = 0xFF; + var_r26->b = 0xFF; + var_r26->a = 0xFF; + } + var_r31->unk_18 = HuMemDirectMallocNum(HEAP_DATA, arg3 * sizeof(Vec2f) * 4, var_r28->unk_48); + var_r29 = var_r31->unk_18; + for (var_r30 = 0; var_r30 < arg3; var_r30++) { + var_r29->x = 0.0f; + var_r29->y = 0.0f; + var_r29++; + var_r29->x = 1.0f; + var_r29->y = 0.0f; + var_r29++; + var_r29->x = 1.0f; + var_r29->y = 1.0f; + var_r29++; + var_r29->x = 0.0f; + var_r29->y = 1.0f; + var_r29++; + } + if ((arg4 != 0) || (arg5 != 0)) { + var_r21 = arg0->bmp->sizeX / arg4; + var_r17 = arg0->bmp->sizeY / arg5; + var_r31->unk_68 = var_r21 * var_r17; + var_r31->unk_5C = 1.0f / var_r21; + var_r31->unk_60 = 1.0f / var_r17; + } + else { + var_r21 = 1; + var_r31->unk_68 = 1; + var_r31->unk_5C = 1.0f; + var_r31->unk_60 = 1.0f; + } + var_r31->unk_1C = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_68 * sizeof(Vec2f), var_r28->unk_48); + fn_1_5E0C(var_r31->unk_1C, var_r31->unk_68, var_r21, var_r31->unk_5C, var_r31->unk_60); + var_r31->unk_28.x = var_r31->unk_4C = var_r31->unk_44 = var_r31->unk_50 = -arg8; + var_r31->unk_38 = arg8; + var_r31->unk_28.y = arg8; + var_r31->unk_40 = arg8; + var_r31->unk_34 = arg8; + var_r31->unk_28.z = var_r31->unk_3C = var_r31->unk_48 = var_r31->unk_54 = 0.0f; + var_r19 = HuMemDirectMallocNum(HEAP_DATA, 0x20000, var_r28->unk_48); + sp1C = var_r19; + GXBeginDisplayList(sp1C, 0x20000); + GXBegin(GX_QUADS, GX_VTXFMT0, arg3 * 4); + for (var_r30 = 0; var_r30 < arg3; var_r30++) { + // TODO is this right? + GXPosition1x16(var_r30 * 4); + GXPosition1x16(var_r30); + GXPosition1x16(var_r30 * 4); + + GXPosition1x16(var_r30 * 4 + 1); + GXPosition1x16(var_r30); + GXPosition1x16(var_r30 * 4 + 1); + + GXPosition1x16(var_r30 * 4 + 2); + GXPosition1x16(var_r30); + GXPosition1x16(var_r30 * 4 + 2); + + GXPosition1x16(var_r30 * 4 + 3); + GXPosition1x16(var_r30); + GXPosition1x16(var_r30 * 4 + 3); + } + var_r31->unk_58 = GXEndDisplayList(); + DCFlushRangeNoSync(var_r19, var_r31->unk_58); + var_r31->unk_24 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_58, var_r28->unk_48); + memcpy(var_r31->unk_24, var_r19, var_r31->unk_58); + DCFlushRangeNoSync(var_r31->unk_24, var_r31->unk_58); + HuMemDirectFree(var_r19); + return var_r18; +} + +UnkM450Struct2 *fn_1_6530(s16 arg0, Vec *arg1, GXColor *arg2, float arg8, float arg9) +{ + UnkM450Struct2 *var_r31; + UnkM450Struct *var_r30; + s16 var_r29; + ModelData *var_r28; + + var_r28 = &Hu3DData[arg0]; + var_r30 = var_r28->unk_120; + if (var_r30->unk_6B != 0) { + return NULL; + } + + for (var_r29 = 0, var_r31 = var_r30->unk_10; var_r29 < var_r30->unk_64; var_r29++, var_r31++) { + if (var_r31->unk_3E < 0) { + break; + } + } + if (var_r29 == var_r30->unk_64) { + return NULL; + } + var_r30->unk_20[var_r29] = *arg2; + var_r31->unk_30 = *arg1; + var_r31->unk_2C = arg8; + var_r31->unk_28 = arg9; + var_r31->unk_3C = 0; + var_r31->unk_00 = 0; + var_r31->unk_3E = var_r29; + return var_r31; +} + +void fn_1_6638(s16 arg0, UnkM450ModelFunc arg1) +{ + ModelData *var_r31 = &Hu3DData[arg0]; + UnkM450Struct *var_r30 = var_r31->unk_120; + var_r30->unk_00 = arg1; +} + +void fn_1_6670(s16 arg0, u8 arg1) +{ + ModelData *var_r31 = &Hu3DData[arg0]; + ((UnkM450Struct *)var_r31->unk_120)->unk_6A = arg1; +} + +void fn_1_66A0(s16 arg0) +{ + ModelData *var_r31 = &Hu3DData[arg0]; + UnkM450Struct *var_r30 = var_r31->unk_120; + var_r30->unk_6B = 1; +} + +s32 fn_1_66DC(s16 arg0) +{ + ModelData *var_r30 = &Hu3DData[arg0]; + UnkM450Struct *var_r31 = var_r30->unk_120; + + if ((var_r31->unk_6B != 0) && (var_r31->unk_66 == 0)) { + HuMemDirectFree(var_r31->unk_10); + HuMemDirectFree(var_r31->unk_14); + HuMemDirectFree(var_r31->unk_20); + HuMemDirectFree(var_r31->unk_18); + HuMemDirectFree(var_r31->unk_1C); + HuMemDirectFree(var_r31->unk_24); + HuSprAnimKill(var_r31->unk_04); + HuMemDirectFree(var_r30->unk_120); + Hu3DModelKill(arg0); + return 1; + } + return 0; +} + +void fn_1_6798(s16 arg0, s16 arg1, Vec *arg2, float arg8, float arg9, float argA) +{ + UnkM450Struct2 *var_r31; + s16 var_r27; + + GXColor sp18 = { 0xFF, 0xFF, 0xFF, 0xFF }; + for (var_r27 = 0; var_r27 < arg1; var_r27++) { + var_r31 = fn_1_6530(arg0, arg2, &sp18, 0.0f, 0.0f); + if (!var_r31) { + break; + } + var_r31->unk_04 = *arg2; + var_r31->unk_10 = 0.0f; + var_r31->unk_14 = arg8; + var_r31->unk_1C = 5.0f; + var_r31->unk_20 = arg9; + var_r31->unk_24 = argA; + var_r31->unk_18 = (20.0f * frandf()) - 10.0f; + var_r31->unk_1C = var_r31->unk_1C * (0.8f + (0.4f * frandf())); + var_r31->unk_20 = var_r31->unk_20 * (0.9f + (0.3f * frandf())); + } +} + +s16 fn_1_69F8(Vec *arg0, float *arg1, s16 arg2) +{ + s16 var_r31; + void *var_r30; + ModelData *var_r29; + ModelData *var_r28; + + var_r31 = fn_1_5ED8(lbl_1_bss_14, arg0, arg1, arg2, 80.0f, 0x40, 0x40); + fn_1_6638(var_r31, fn_1_5148); + fn_1_6670(var_r31, 1); + Hu3DModelLayerSet(var_r31, 5); + return var_r31; +} + +float fn_1_6AC8(float arg8, float arg9, float argA, float argB) +{ + if (argA >= argB) { + return arg9; + } + return arg8 + ((arg9 - arg8) * sind(((90.0f / argB) * argA))); +} + +float fn_1_6B90(float arg8, float arg9, float argA, float argB) +{ + if (argA >= argB) { + return arg9; + } + return arg8 + ((arg9 - arg8) * (1.0 - cosd(((90.0f / argB) * argA)))); +} + +void fn_1_6C68(s32 arg0) +{ + lbl_1_bss_10 = 0; + lbl_1_bss_C = arg0; + HuWinInit(1); +} + +void fn_1_6CB0(void (*arg0)(), s32 arg1) +{ + if ((arg1 < 0) || (fn_1_13B90(arg1) == 0)) { + lbl_1_bss_10++; + HuPrcChildCreate(arg0, 0x64, 0x2000, 0, HuPrcCurrentGet()); + } +} + +void fn_1_6D2C(void) +{ + lbl_1_bss_10--; + HuPrcEnd(); +} + +void fn_1_6D68(float *arg0, s32 arg1) +{ + float spC[2]; + + HuWinMesMaxSizeGet(1, spC, arg1); + if (spC[0] > arg0[0]) { + arg0[0] = spC[0]; + } + if (spC[1] > arg0[1]) { + arg0[1] = spC[1]; + } +} + +GXColor lbl_1_data_9F[3] = { + { 0xFF, 0xFF, 0xCC, 0xE6 }, + { 0xCC, 0xFF, 0xFF, 0xE6 }, + { 0xFF, 0xCC, 0xFF, 0xE6 }, +}; + +s32 lbl_1_data_AC[2] = { DATA_MAKE_NUM(DATADIR_M450, 0x2C), DATA_MAKE_NUM(DATADIR_M450, 0x2D) }; + +s32 lbl_1_data_B4[0x13] = { + DATA_MAKE_NUM(DATADIR_M450, 0x2E), + DATA_MAKE_NUM(DATADIR_M450, 0x2F), + DATA_MAKE_NUM(DATADIR_M450, 0x30), + DATA_MAKE_NUM(DATADIR_M450, 0x31), + DATA_MAKE_NUM(DATADIR_M450, 0x32), + DATA_MAKE_NUM(DATADIR_M450, 0x33), + DATA_MAKE_NUM(DATADIR_M450, 0x34), + DATA_MAKE_NUM(DATADIR_M450, 0x35), + DATA_MAKE_NUM(DATADIR_M450, 0x36), + DATA_MAKE_NUM(DATADIR_M450, 0x37), + DATA_MAKE_NUM(DATADIR_M450, 0x38), + DATA_MAKE_NUM(DATADIR_M450, 0x39), + DATA_MAKE_NUM(DATADIR_M450, 0x3A), + DATA_MAKE_NUM(DATADIR_M450, 0x3B), + DATA_MAKE_NUM(DATADIR_M450, 0x3C), + DATA_MAKE_NUM(DATADIR_M450, 0x3D), + DATA_MAKE_NUM(DATADIR_M450, 0x3E), + DATA_MAKE_NUM(DATADIR_M450, 0x3F), + DATA_MAKE_NUM(DATADIR_M450, 0x40), +}; + +s32 lbl_1_data_100[5] = { + DATA_MAKE_NUM(DATADIR_M450, 0x41), + DATA_MAKE_NUM(DATADIR_M450, 0x42), + DATA_MAKE_NUM(DATADIR_M450, 0x43), + DATA_MAKE_NUM(DATADIR_M450, 0x44), + DATA_MAKE_NUM(DATADIR_M450, 0x45), +}; +s32 lbl_1_data_114[0xF] = { + DATA_MAKE_NUM(DATADIR_M450, 0x46), + DATA_MAKE_NUM(DATADIR_M450, 0x47), + DATA_MAKE_NUM(DATADIR_M450, 0x47), + DATA_MAKE_NUM(DATADIR_M450, 0x49), + DATA_MAKE_NUM(DATADIR_M450, 0x4A), + DATA_MAKE_NUM(DATADIR_M450, 0x4B), + DATA_MAKE_NUM(DATADIR_M450, 0x4C), + DATA_MAKE_NUM(DATADIR_M450, 0x4D), + DATA_MAKE_NUM(DATADIR_M450, 0x4E), + DATA_MAKE_NUM(DATADIR_M450, 0x4F), + DATA_MAKE_NUM(DATADIR_M450, 0x50), + DATA_MAKE_NUM(DATADIR_M450, 0x51), + DATA_MAKE_NUM(DATADIR_M450, 0x52), + DATA_MAKE_NUM(DATADIR_M450, 0x53), + DATA_MAKE_NUM(DATADIR_M450, 0x54), +}; +s32 lbl_1_data_150[0xF] = { + DATA_MAKE_NUM(DATADIR_M450, 0x55), + DATA_MAKE_NUM(DATADIR_M450, 0x56), + DATA_MAKE_NUM(DATADIR_M450, 0x56), + DATA_MAKE_NUM(DATADIR_M450, 0x58), + DATA_MAKE_NUM(DATADIR_M450, 0x59), + DATA_MAKE_NUM(DATADIR_M450, 0x5A), + DATA_MAKE_NUM(DATADIR_M450, 0x5B), + DATA_MAKE_NUM(DATADIR_M450, 0x55), + DATA_MAKE_NUM(DATADIR_M450, 0x5C), + DATA_MAKE_NUM(DATADIR_M450, 0x5D), + DATA_MAKE_NUM(DATADIR_M450, 0x5E), + DATA_MAKE_NUM(DATADIR_M450, 0x5F), + DATA_MAKE_NUM(DATADIR_M450, 0x60), + DATA_MAKE_NUM(DATADIR_M450, 0x61), + DATA_MAKE_NUM(DATADIR_M450, 0x62), +}; +s32 lbl_1_data_18C[8] = { 0, 1, 2, 1, 1, -1, -1, -1 }; +s32 lbl_1_data_1AC[8] = { 0, 1, 2, 1, 1, -1, -1, -1 }; +s32 lbl_1_data_1CC[4] = { 0x3E, 0x65, 0x3F, 0x66 }; +UnkData204Struct lbl_1_data_1DC[5] = { + { 510.0f, 0 }, + { 300.0f, 1 }, + { 300.0f, 0 }, + { 300.0f, 1 }, + { 0.0f, 0 }, +}; +UnkData204Struct lbl_1_data_204[6] = { + { 210.0f, 0 }, + { 300.0f, 1 }, + { 300.0f, 0 }, + { 300.0f, 1 }, + { 300.0f, 0 }, + { 0.0f, 0 }, +}; +Vec2f lbl_1_data_234[4] = { + { 300.0f, 300.0f }, + { 300.0f, 240.0f }, + { 300.0f, 210.0f }, + { 300.0f, 180.0f }, +}; +float lbl_1_data_254[5] = { 0.4f, 0.35f, 0.3f, 0.25f, 0.2f }; +float lbl_1_data_268[5] = { 0.45f, 0.4f, 0.35f, 0.3f, 0.25f }; +float lbl_1_data_27C[5] = { 0.5f, 0.45f, 0.4f, 0.35f, 0.3f }; +float lbl_1_data_290[5] = { 0.55f, 0.5f, 0.45f, 0.4f, 0.35f }; + +s32 fn_1_6DD8(float arg8, float arg9, float argA, float argB, s32 arg0) +{ + float spC[2]; + + float var_f30; + float var_f29; + float var_f25; + float var_f24; + float var_f19; + float var_f18; + + s32 var_r31; + WindowData *var_r30; + GXColor *var_r29; + s32 var_r28; + + if (555.0f < (arg8 + argA)) { + arg8 = 555.0f - argA; + } + if (21.0f > arg8) { + arg8 = 21.0f; + } + lbl_1_bss_10++; + var_r28 = HuWinCreate(arg8, arg9, argA, argB, 1); + var_r30 = &winData[var_r28]; + var_r29 = &lbl_1_data_9F[arg0]; + HuWinBGTPLvlSet(var_r28, var_r29->a / 255.0f); + HuSprColorSet(var_r30->group, 0, var_r29->r, var_r29->g, var_r29->b); + var_r30->mess_color = 0; + var_r30->mess_shadow_color = 9; + var_r30->attr |= 0x80; + var_r30->active_pad = 0; + var_f30 = arg8 + (0.5f * argA); + var_f25 = 4.0f / argA; + if (((4.0f + var_f30) - (arg8 + argA)) >= 0.0f) { + var_f30 = (arg8 + argA) - 4.0f; + } + else if ((arg8 - (var_f30 - 2.0f)) >= 0.0f) { + var_f30 = arg8; + } + else { + var_f30 -= 2.0f; + } + var_f29 = arg9 + (0.5f * argB); + var_f24 = 4.0f / argB; + if (((4.0f + var_f29) - (arg9 + argB)) >= 0.0f) { + var_f29 = (arg9 + argB) - 4.0f; + } + else if ((arg9 - (var_f29 - 2.0f)) >= 0.0f) { + var_f29 = arg9; + } + else { + var_f29 -= 2.0f; + } + for (var_r31 = 0; var_r31 < 0xA; var_r31++) { + var_f19 = fn_1_6AC8(var_f30, arg8, var_r31, 10.0f); + spC[1] = fn_1_6AC8(var_f25, 1.0f, var_r31, 10.0f); + var_f18 = fn_1_6AC8(var_f29, arg9, var_r31, 10.0f); + spC[0] = fn_1_6AC8(var_f24, 1.0f, var_r31, 10.0f); + HuWinPosSet(var_r28, var_f19, var_f18); + HuWinScaleSet(var_r28, spC[1], spC[0]); + HuPrcVSleep(); + } + HuWinPosSet(var_r28, arg8, arg9); + HuWinScaleSet(var_r28, 1.0f, 1.0f); + HuPrcVSleep(); + return var_r28; +} + +void fn_1_74EC(s32 arg0) +{ + float sp8[2]; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f25; + float var_f26; + float var_f24; + float var_f19; + float var_f18; + + s32 var_r31; + WindowData *var_r30; + + HuWinMesSet(arg0, 0x1D0016); + HuPrcVSleep(); + var_r30 = &winData[arg0]; + var_f29 = var_r30->pos_x; + var_f28 = var_r30->pos_y; + var_f27 = var_r30->w; + var_f26 = var_r30->h; + var_f31 = var_f29 + (0.5f * var_f27); + var_f25 = 4.0f / var_f27; + if (((4.0f + var_f31) - (var_f29 + var_f27)) >= 0.0f) { + var_f31 = (var_f29 + var_f27) - 4.0f; + } + else if ((var_f29 - (var_f31 - 2.0f)) >= 0.0f) { + var_f31 = var_f29; + } + else { + var_f31 -= 2.0f; + } + var_f30 = var_f28 + (0.5f * var_f26); + var_f24 = 4.0f / var_f26; + if (((4.0f + var_f30) - (var_f28 + var_f26)) >= 0.0f) { + var_f30 = (var_f28 + var_f26) - 4.0f; + } + else if ((var_f28 - (var_f30 - 2.0f)) >= 0.0f) { + var_f30 = var_f28; + } + else { + var_f30 -= 2.0f; + } + for (var_r31 = 0; var_r31 < 0xA; var_r31++) { + var_f19 = fn_1_6B90(var_f29, var_f31, var_r31, 10.0f); + sp8[1] = fn_1_6B90(1.0f, var_f25, var_r31, 10.0f); + var_f18 = fn_1_6B90(var_f28, var_f30, var_r31, 10.0f); + sp8[0] = fn_1_6B90(1.0f, var_f24, var_r31, 10.0f); + HuWinPosSet(arg0, var_f19, var_f18); + HuWinScaleSet(arg0, sp8[1], sp8[0]); + HuPrcVSleep(); + } + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, var_f25, var_f24); + HuPrcVSleep(); + HuWinKill(arg0); + lbl_1_bss_10--; +} + +void fn_1_7B90(s32 arg0, u32 arg1) +{ + winData[arg0].mess_color = 0; + winData[arg0].mess_shadow_color = 9; + winData[arg0].attr |= 0x80; + HuWinMesSet(arg0, arg1); +} + +void fn_1_7C14(s32 arg0, s32 arg1) +{ + HuWinComKeyReset(); + if (arg1 > 0) { + HuPrcSleep(arg1); + } + else { + winData[arg0].active_pad = 1 << lbl_1_bss_C; + HuWinMesWait(arg0); + } + HuWinComKeyReset(); +} + +void fn_1_7C98(s32 arg0) +{ + s32 var_r31; + + HuWinComKeyReset(); + winData[arg0].active_pad = 1 << lbl_1_bss_C; + var_r31 = HuWinChoiceGet(arg0, 1); + if ((var_r31 == -1) || (var_r31 == 1)) { + lbl_1_bss_8 = 0; + } + else { + lbl_1_bss_8 = 1; + } + HuWinComKeyReset(); +} + +void fn_1_7D40(void) +{ + Vec sp18; + float var_f31; + float var_f30; + float var_f29; + + s32 var_r31; + + float sp10[2] = { 0.0f, 0.0f }; + s32 sp24[22] = { + 0x002D0003, + 0x0000003E, + 0x002D0009, + 0x0000003E, + 0x002D000B, + 0x0000003E, + 0x002D000D, + 0x0000003E, + 0x002D000F, + 0x0000003E, + 0x002D0011, + 0x0000003E, + 0x002D0013, + 0x0000003E, + 0x002D0015, + 0x0000003E, + 0x002D0017, + 0x0000003E, + 0x002D0019, + 0x0000003E, + 0x002D001B, + 0x0000003F, + }; + fn_1_E178(0, 1); + fn_1_6D68(sp10, sp24[lbl_1_bss_4 * 2]); + sp18 = lbl_1_bss_34[0]; + sp18.y += 200.0f; + Hu3D3Dto2D(&sp18, 1, &sp18); + if (sp24[(lbl_1_bss_4 * 2) + 1] >= 0) { + var_f30 = 32.0f + (64.0f * (sp18.x / 576.0f)); + if (32.0f > var_f30) { + var_f30 = 32.0f; + } + if (96.0f < var_f30) { + var_f30 = 96.0f; + } + HuAudFXPanning(fn_1_E0E8(0, sp24[(lbl_1_bss_4 * 2) + 1]), (s32)var_f30); + } + var_f31 = sp18.x - (sp10[0] / 2); + var_f29 = 72.0f; + if (lbl_1_bss_4 >= 5) { + if (var_f29 > var_f31) { + var_f31 = var_f29; + } + if ((576.0f - var_f29) < (var_f31 + sp10[0])) { + var_f31 = (576.0f - var_f29) - sp10[0]; + } + } + var_r31 = fn_1_6DD8(var_f31, sp18.y - sp10[1], sp10[0], sp10[1], 0); + fn_1_7B90(var_r31, sp24[lbl_1_bss_4 * 2]); + fn_1_7C14(var_r31, lbl_1_bss_0); + fn_1_74EC(var_r31); + fn_1_E178(0, 0); + fn_1_6D2C(); +} + +void fn_1_8120(void) +{ + Vec sp18; + + float var_f31; + float var_f30; + float var_f29; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + + float sp10[2] = { 0.0f, 0.0f }; + s32 sp24[22] = { + 0x002D0002, + 0x0000003E, + 0x002D0008, + 0x0000003E, + 0x002D000A, + 0x0000003E, + 0x002D000C, + 0x0000003E, + 0x002D000E, + 0x0000003E, + 0x002D0010, + 0x0000003E, + 0x002D0012, + 0x0000003E, + 0x002D0014, + 0x0000003E, + 0x002D0016, + 0x0000003E, + 0x002D0018, + 0x0000003F, + 0x002D001A, + 0x0000003F, + }; + fn_1_E178(1, 1); + fn_1_6D68(sp10, sp24[lbl_1_bss_4 * 2]); + sp18 = lbl_1_bss_34[1]; + sp18.y += 200.0f; + Hu3D3Dto2D(&sp18, 1, &sp18); + if (sp24[(lbl_1_bss_4 * 2) + 1] >= 0) { + var_f30 = 32.0f + (64.0f * (sp18.x / 576.0f)); + if (32.0f > var_f30) { + var_f30 = 32.0f; + } + if (96.0f < var_f30) { + var_f30 = 96.0f; + } + HuAudFXPanning(fn_1_E0E8(1, sp24[(lbl_1_bss_4 * 2) + 1]), (s32)var_f30); + } + var_f31 = sp18.x - (sp10[0] / 2); + var_f29 = 72.0f; + if (lbl_1_bss_4 >= 5) { + if (var_f29 > var_f31) { + var_f31 = var_f29; + } + if ((576.0f - var_f29) < (var_f31 + sp10[0])) { + var_f31 = (576.0f - var_f29) - sp10[0]; + } + } + var_r31 = fn_1_6DD8(var_f31, sp18.y - sp10[1], sp10[0], sp10[1], 1); + fn_1_7B90(var_r31, sp24[lbl_1_bss_4 * 2]); + fn_1_7C14(var_r31, lbl_1_bss_0); + fn_1_74EC(var_r31); + fn_1_E178(1, 0); + fn_1_6D2C(); +} + +void fn_1_8500(void) +{ + float sp28; + float sp20; + float sp18; + float sp10; + float sp8; + + s32 var_r31; + + float sp30[2] = { 0.0f, 0.0f }; + fn_1_6D68(sp30, 0x2D0001); + fn_1_6D68(sp30, 0x2D0004); + fn_1_6D68(sp30, 0x2D0005); + fn_1_6D68(sp30, 0x2D0006); + fn_1_6D68(sp30, 0x2D0007); + var_r31 = fn_1_6DD8((576.0f - sp30[0]) / 2, 48.0f, sp30[0], sp30[1], 2); + HuAudFXPlay(0x3A); + fn_1_A968(3, 8.0f, 0, 0, 0.0f); + fn_1_7B90(var_r31, 0x2D0001); + fn_1_7C14(var_r31, -1); + lbl_1_bss_4 = 0; + lbl_1_bss_0 = 0x78; + fn_1_E1A8(0, 8, 8.0f, 0, 7, 0.0f); + fn_1_E1A8(1, 8, 8.0f, 0, 7, 0.0f); + fn_1_6CB0(fn_1_7D40, -1); + fn_1_6CB0(fn_1_8120, -1); + + while (lbl_1_bss_10 > 2) { + HuPrcVSleep(); + } + HuAudFXPlay(0x3B); + fn_1_A968(4, 8.0f, 0, 0, 60.0f); + fn_1_E1A8(0, 9, 8.0f, 0, 7, 60.0f); + fn_1_E1A8(1, 9, 8.0f, 0, 7, 60.0f); + fn_1_7B90(var_r31, 0x2D0004); + fn_1_7C14(var_r31, -1); + HuAudFXPlay(0x3C); + fn_1_7B90(var_r31, 0x2D0005); + fn_1_7C14(var_r31, -1); + fn_1_7B90(var_r31, 0x2D0006); + fn_1_7C14(var_r31, -1); + HuAudFXPlay(0x3A); + fn_1_7B90(var_r31, 0x2D0007); + fn_1_7C14(var_r31, -1); + fn_1_74EC(var_r31); + fn_1_6D2C(); +} + +void fn_1_8BDC(void) +{ + s32 var_r31; + + lbl_1_bss_4 = 2; + lbl_1_bss_0 = -1; + fn_1_E1A8(1, 0xD, 8.0f, 0x40000001, -1, 0.0f); + fn_1_6CB0(fn_1_8120, -1); + + while (lbl_1_bss_10 > 1) { + HuPrcVSleep(); + } + fn_1_E1A8(1, 0, 8.0f, 0x40000001, -1, 0.0f); + fn_1_E1A8(0, 0xD, 8.0f, 0x40000001, -1, 0.0f); + fn_1_6CB0(fn_1_7D40, -1); + while (lbl_1_bss_10 > 1) { + HuPrcVSleep(); + } + fn_1_E1A8(0, 0, 8.0f, 0x40000001, -1, 0.0f); + lbl_1_bss_4 = 3; + lbl_1_bss_0 = -1; + fn_1_E1A8(1, 0xD, 8.0f, 0x40000001, -1, 0.0f); + fn_1_6CB0(fn_1_8120, -1); + while (lbl_1_bss_10 > 1) { + HuPrcVSleep(); + } + fn_1_E1A8(1, 0, 8.0f, 0x40000001, -1, 0.0f); + fn_1_E1A8(0, 0xD, 8.0f, 0x40000001, -1, 0.0f); + fn_1_6CB0(fn_1_7D40, -1); + while (lbl_1_bss_10 > 1) { + HuPrcVSleep(); + } + HuPrcSleep(0x1E); + fn_1_1F58(0x3E8); + lbl_1_bss_4 = 4; + lbl_1_bss_0 = 0x1E; + fn_1_E1A8(0, 0xC, 8.0f, 0x40000001, -1, 0.0f); + fn_1_E1A8(1, 0xC, 8.0f, 0x40000001, -1, 0.0f); + fn_1_6CB0(fn_1_7D40, -1); + fn_1_6CB0(fn_1_8120, -1); + while (lbl_1_bss_10 > 1) { + HuPrcVSleep(); + } + fn_1_6D2C(); +} + +void fn_1_9074(void) +{ + lbl_1_bss_4 = 5; + lbl_1_bss_0 = 0x1E; + fn_1_6CB0(fn_1_7D40, -1); + fn_1_6CB0(fn_1_8120, -1); + while (lbl_1_bss_10 > 1) { + HuPrcVSleep(); + } + lbl_1_bss_4 = 6; + lbl_1_bss_0 = -1; + fn_1_E1A8(1, 0xD, 8.0f, 0x40000001, -1, 0.0f); + fn_1_6CB0(fn_1_8120, -1); + while (lbl_1_bss_10 > 1) { + HuPrcVSleep(); + } + fn_1_E1A8(1, 0, 8.0f, 0x40000001, -1, 0.0f); + fn_1_E1A8(0, 0xD, 8.0f, 0x40000001, -1, 0.0f); + fn_1_6CB0(fn_1_7D40, -1); + while (lbl_1_bss_10 > 1) { + HuPrcVSleep(); + } + fn_1_E1A8(0, 0, 8.0f, 0x40000001, -1, 0.0f); + lbl_1_bss_4 = 7; + lbl_1_bss_0 = -1; + fn_1_E1A8(1, 0xD, 8.0f, 0x40000001, -1, 0.0f); + fn_1_6CB0(fn_1_8120, -1); + while (lbl_1_bss_10 > 1) { + HuPrcVSleep(); + } + fn_1_E1A8(1, 0, 8.0f, 0x40000001, -1, 0.0f); + fn_1_E1A8(0, 0xD, 8.0f, 0x40000001, -1, 0.0f); + fn_1_6CB0(fn_1_7D40, -1); + while (lbl_1_bss_10 > 1) { + HuPrcVSleep(); + } + fn_1_E1A8(0, 0, 8.0f, 0x40000001, -1, 0.0f); + lbl_1_bss_4 = 8; + lbl_1_bss_0 = -1; + fn_1_E1A8(1, 0xE, 8.0f, 0, -1, 0.0f); + fn_1_6CB0(fn_1_8120, -1); + while (lbl_1_bss_10 > 1) { + HuPrcVSleep(); + } + fn_1_E1A8(1, 0, 8.0f, 0x40000001, -1, 0.0f); + fn_1_E1A8(0, 0xE, 8.0f, 0, -1, 0.0f); + fn_1_6CB0(fn_1_7D40, -1); + while (lbl_1_bss_10 > 1) { + HuPrcVSleep(); + } + fn_1_E1A8(0, 0, 8.0f, 0x40000001, -1, 0.0f); + lbl_1_bss_4 = 9; + lbl_1_bss_0 = 0x1E; + fn_1_6CB0(fn_1_7D40, -1); + fn_1_6CB0(fn_1_8120, -1); + while (lbl_1_bss_10 > 1) { + HuPrcVSleep(); + } + fn_1_6D2C(); +} + +void fn_1_96C0(void) +{ + lbl_1_bss_4 = 0xA; + lbl_1_bss_0 = -1; + fn_1_E1A8(1, 4, 8.0f, 0, -1, 0.0f); + fn_1_6CB0(fn_1_8120, -1); + while (lbl_1_bss_10 > 1) { + HuPrcVSleep(); + } + fn_1_E1A8(0, 4, 8.0f, 0, -1, 0.0f); + fn_1_6CB0(fn_1_7D40, -1); + while (lbl_1_bss_10 > 1) { + HuPrcVSleep(); + } + fn_1_6D2C(); +} + +void fn_1_9824(void) +{ + s32 var_r31; + + float sp20[2] = { 0.0f, 0.0f }; + fn_1_6D68(sp20, 0x2D001C); + fn_1_6D68(sp20, 0x2D001D); + fn_1_6D68(sp20, 0x2D001E); + var_r31 = fn_1_6DD8((576.0f - sp20[0]) / 2, 132.0f, sp20[0], sp20[1], 2); + fn_1_A968(8, 8.0f, 0, 7, 0.0f); + HuAudFXPlay(0x3C); + fn_1_7B90(var_r31, 0x2D001C); + fn_1_7C14(var_r31, -1); + fn_1_7B90(var_r31, 0x2D001D); + fn_1_7C14(var_r31, -1); + HuAudFXPlay(0x3C); + fn_1_7B90(var_r31, 0x2D001E); + fn_1_7C14(var_r31, -1); + fn_1_74EC(var_r31); + fn_1_6D2C(); +} + +void fn_1_9BA4(void) +{ + s32 var_r31; + float sp20[2] = { 0.0f, 0.0f }; + + fn_1_6D68(sp20, 0x2D001F); + fn_1_6D68(sp20, 0x2D0020); + fn_1_6D68(sp20, 0x2D0021); + var_r31 = fn_1_6DD8((576.0f - sp20[0]) / 2, 48.0f, sp20[0], sp20[1], 2); + HuAudFXPlay(0x3C); + fn_1_7B90(var_r31, 0x2D001F); + fn_1_7C14(var_r31, -1); + fn_1_A968(5, 8.0f, 0, 6, 0.0f); + fn_1_7B90(var_r31, 0x2D0020); + fn_1_7C14(var_r31, -1); + HuAudFXPlay(0x3C); + fn_1_7B90(var_r31, 0x2D0021); + fn_1_7C14(var_r31, -1); + fn_1_A968(0, 8.0f, 0, -1, 0.0f); + fn_1_74EC(var_r31); + fn_1_6D2C(); +} + +void fn_1_9F4C(UnkM450Struct3 *arg0, s32 arg1, Vec *arg2, s8 arg3) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + + s32 var_r29; + s32 var_r28; + s32 var_r27; + + if (90.0f <= arg0->unk_E4) { + arg0->unk_00.unk_6C.y -= 10.0f; + return; + } + var_r29 = 1; + if (arg3 == 0x78) { + if (arg2->x > arg0->unk_00.unk_6C.x) { + var_r29 = 0; + } + } + else if (arg2->z < arg0->unk_00.unk_6C.z) { + var_r29 = 0; + } + if (var_r29 != 0) { + arg0->unk_E4 += 5.0f; + if (0.0f > arg2->x) { + var_f30 = -arg2->x; + } + else { + var_f30 = arg2->x; + } + var_f31 = var_f30; + if (0.0f > arg2->y) { + var_f29 = -arg2->y; + } + else { + var_f29 = arg2->y; + } + if (var_f31 < var_f29) { + if (0.0f > arg2->y) { + var_f28 = -arg2->y; + } + else { + var_f28 = arg2->y; + } + var_f31 = var_f28; + } + if (0.0f > arg2->z) { + var_f27 = -arg2->z; + } + else { + var_f27 = arg2->z; + } + if (var_f31 < var_f27) { + if (0.0f > arg2->z) { + var_f26 = -arg2->z; + } + else { + var_f26 = arg2->z; + } + var_f31 = var_f26; + } + var_f31 = 1500.0f - var_f31; + if (arg3 == 0x78) { + if (0.0f > arg2->x) { + var_r28 = -1; + } + else { + var_r28 = 1; + } + arg0->unk_00.unk_6C.x = arg2->x + ((var_f31 * var_r28) * sind(arg0->unk_E4)); + } + else { + if (0.0f > arg2->z) { + var_r27 = -1; + } + else { + var_r27 = 1; + } + arg0->unk_00.unk_6C.z = arg2->z + ((var_f31 * var_r27) * sind(arg0->unk_E4)); + } + MTXRotRad(Hu3DData[arg1].unk_F0, 0x58, 0.017453292f * arg0->unk_E4); + arg0->unk_00.unk_6C.y = arg2->y + (var_f31 * cosd(arg0->unk_E4)); + return; + } + if (arg3 == 0x78) { + arg0->unk_00.unk_20 = 0x48; + } + else { + arg0->unk_00.unk_24 = 0x48; + } + if (arg0->unk_154 & 0x200) { + var_f31 = arg0->unk_F0 - arg0->unk_00.unk_6C.x; + if (0.0f > var_f31) { + var_f25 = -var_f31; + } + else { + var_f25 = var_f31; + } + if (10.0f > var_f25) { + arg0->unk_154 &= ~0x200; + } + if (0.0f <= var_f31) { + arg0->unk_00.unk_20 = 0x48; + } + else { + arg0->unk_00.unk_20 = -0x48; + } + } + fn_1_40C0(&arg0->unk_00); +} + +void fn_1_A3C4(omObjData *object, Vec *arg1, s32 arg2) +{ + s32 var_r31; + + if (1495.0f > arg1->y) { + for (var_r31 = 0; var_r31 < arg2; var_r31++) { + Hu3DModelShadowDispOff(object->model[var_r31]); + } + return; + } + for (var_r31 = 0; var_r31 < arg2; var_r31++) { + Hu3DModelShadowDispOn(object->model[var_r31]); + } +} + +void fn_1_A470(UnkM450Struct3 *arg0, omObjData *arg1, char *arg2, s32 arg3) +{ + s32 var_r30; + + arg0->unk_CC = arg2; + arg0->unk_154 |= 1; + omSetTra(arg1, 0.0f, 0.0f, 0.0f); + omSetRot(arg1, 0.0f, 0.0f, 0.0f); + omSetSca(arg1, 1.0f, 1.0f, 1.0f); + for (var_r30 = 0; var_r30 < arg3; var_r30++) { + Hu3DModelPosSet(arg1->model[var_r30], 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(arg1->model[var_r30], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg1->model[var_r30], 1.0f, 1.0f, 1.0f); + } +} + +void fn_1_A600(UnkM450Struct3 *arg0, omObjData *arg1, char *arg2, s32 arg3) +{ + s32 var_r29; + + arg0->unk_CC = arg2; + arg0->unk_154 &= ~1; + fn_1_1D70(lbl_1_bss_1A0->model[0], arg0->unk_CC, &arg0->unk_00.unk_6C, NULL); + omSetTra(arg1, 0.0f, 0.0f, 0.0f); + omSetRot(arg1, 0.0f, 0.0f, 0.0f); + for (var_r29 = 0; var_r29 < arg3; var_r29++) { + MTXIdentity(Hu3DData[arg1->model[var_r29]].unk_F0); + Hu3DModelPosSet(arg1->model[var_r29], 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(arg1->model[var_r29], 0.0f, 0.0f, 0.0f); + } +} + +s32 fn_1_A7CC(UnkM450Struct3 *arg0) +{ + if (fn_1_19A10(&arg0->unk_00, &arg0->unk_D4) != 0) { + arg0->unk_150 += 1; + return 1; + } + fn_1_40C0(&arg0->unk_00); + return 0; +} + +void fn_1_A828(UnkM450Struct3 *arg0, float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + + arg0->unk_E0 += 1.0f; + var_f31 = arg0->unk_E0 / arg8; + if (1.0f < var_f31) { + var_f31 = 1.0f; + } + var_f30 = sind((90.0f * var_f31)) * sind((90.0f * var_f31)); + arg0->unk_00.unk_6C.y = arg9 + ((var_f30) * (argA - arg9)); +} + +void fn_1_A968(s32 arg0, float arg8, u32 arg1, s32 arg2, float arg9) +{ + UnkM450Struct3 *var_r31; + + if (arg8 == 0.0f) { + Hu3DMotionSet(lbl_1_bss_134->model[0], lbl_1_bss_134->motion[arg0]); + } + else { + Hu3DMotionShiftSet(lbl_1_bss_134->model[0], lbl_1_bss_134->motion[arg0], 0.0f, arg8, arg1); + } + var_r31 = lbl_1_bss_134->data; + var_r31->unk_140 = -1; + var_r31->unk_154 &= ~0x2100; + if (arg2 >= 0) { + var_r31->unk_140 = arg2; + var_r31->unk_144 = arg9; + var_r31->unk_154 |= 0x100; + if (arg0 == 4 || arg0 == 5) { + var_r31->unk_154 |= 0x2000; + } + } +} + +s32 lbl_1_data_F6C[6]; +UnkDataA0CStruct lbl_1_data_A0C[2]; + +void fn_1_AAB0(UnkM450Struct3 *arg0, Vec2f *arg1, s32 arg2) +{ + float var_f30; + float var_f31 = 1.0f; + if (arg2 != 0) { + var_f31 = arg0->unk_F4; + if ((lbl_1_data_F6C[lbl_1_bss_118] - lbl_1_bss_304) > 0xE10) { + arg0->unk_F4 = arg0->unk_F4 - 0.1f; + if (0.0f > arg0->unk_F4) { + arg0->unk_F4 = 0.0f; + } + } + } + var_f30 = arg1->x - arg1->y; + arg0->unk_100 = arg1->y + (var_f30 * var_f31); +} + +float fn_1_AB88(UnkM450Struct3 *arg0) +{ + s32 var_r31 = lbl_1_data_A0C[1].unk_14 - 1; + if (var_r31 > 4) { + var_r31 = 4; + } + if (var_r31 < 0) { + var_r31 = 0; + } + return arg0->unk_D0[var_r31]; +} + +void fn_1_ABD0(omObjData *object) +{ + float var_f29; + UnkM450Struct3 *var_r31 = object->data; + + var_r31->unk_138 = 0; + var_f29 = sqrtf((var_r31->unk_00.unk_6C.x * var_r31->unk_00.unk_6C.x) + (var_r31->unk_00.unk_6C.z * var_r31->unk_00.unk_6C.z)); + if (680.0f < var_f29) { + var_r31->unk_138 = 1; + var_r31->unk_00.unk_6C.x = 680.0f * (var_r31->unk_00.unk_6C.x / var_f29); + var_r31->unk_00.unk_6C.z = 680.0f * (var_r31->unk_00.unk_6C.z / var_f29); + } +} + +void fn_1_AD58(omObjData *object) +{ + Mtx sp1F8; + Vec spFC; + Vec spF0; + Vec spE4; + Vec spD8; + float spCC; + float spC8; + + UnkM450Struct3 *var_r31; + Vec2f *var_r25; + s32 var_r20; + + var_r20 = 0; + spE4 = ((UnkM450Struct5 *)lbl_1_bss_138->data)->unk_00.unk_6C; + var_r31 = object->data; + var_r31->unk_00.unk_20 = 0; + var_r31->unk_00.unk_24 = 0; + var_r31->unk_00.unk_28 = 0; + var_r31->unk_00.unk_2C = 0; + var_r31->unk_00.unk_30 = 0; + var_r31->unk_00.unk_34 = 0; + switch (var_r31->unk_150) { + case 0xBB8: + if (lbl_1_bss_1A4->work[0] >= 0x3EF) { + var_r31->unk_150++; + var_r31->unk_E4 = 0.0f; + var_r31->unk_154 = var_r31->unk_154 & 0xFFFFFEFF; + } + break; + case 0xBB9: + fn_1_9F4C(var_r31, object->model[0], lbl_1_bss_4C, 0x7A); + if (1000.0f > var_r31->unk_00.unk_6C.y) { + var_r31->unk_150++; + Hu3DModelAttrSet(object->model[0], 1); + } + break; + case 0xBBA: + if (lbl_1_bss_1A4->work[0] >= 0x402) { + var_r31->unk_150++; + var_r31->unk_E0 = 0.0f; + var_r31->unk_00.unk_9C = 270.0f; + fn_1_A470(var_r31, object, "m450mex06-s4kuppa", 2); + fn_1_4ED8(&var_r31->unk_00, 0); + Hu3DModelAttrReset(object->model[0], 1); + } + break; + case 0xBBB: + if (lbl_1_bss_1A4->work[0] >= 0x403) { + var_r31->unk_E0 += 1.0f; + if (30.0f < var_r31->unk_E0) { + var_r31->unk_150++; + var_r31->unk_E4 = 0.0f; + fn_1_A600(var_r31, object, "m450mex06-s4kuppa", 2); + omSetSca(object, 1.5f, 1.5f, 1.5f); + var_r31->unk_00.unk_9C = 270.0f; + var_r31->unk_00.unk_6C.y = 1505.0f; + } + } + break; + case 0xBBC: + fn_1_9F4C(var_r31, object->model[0], &lbl_1_bss_4C[3], 0x78); + if (1000.0f > var_r31->unk_00.unk_6C.y) { + var_r31->unk_150++; + Hu3DModelAttrSet(object->model[0], 1); + lbl_1_bss_1A4->work[0] = 0x404; + lbl_1_bss_128 = 0.0f; + } + break; + case 0xBBD: + if (lbl_1_bss_1A4->work[0] >= 0x409) { + var_r31->unk_150++; + var_r31->unk_E0 = 0.0f; + var_r31->unk_E8 = 360.0f * frandf(); + var_r31->unk_154 |= 2; + MTXIdentity(Hu3DData[object->model[0]].unk_F0); + omSetSca(object, 1.0f, 1.0f, 1.0f); + Hu3DModelScaleSet(object->model[1], 1.5f, 1.5f, 1.5f); + Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelAttrReset(object->model[1], 0x40000002); + Hu3DModelHookSet(object->model[1], "g000i00-itemhook_A", object->model[0]); + var_r31->unk_00.unk_6C.x = 0.0f; + var_r31->unk_00.unk_6C.y = 3000.0f; + var_r31->unk_00.unk_6C.z = 0.0f; + var_r31->unk_00.unk_9C = 270.0f; + fn_1_4ED8(&var_r31->unk_00, 0); + var_r31->unk_00.unk_3C |= 0x2020; + Hu3DMotionSet(object->model[0], object->motion[7]); + Hu3DModelAttrReset(object->model[0], 1); + } + break; + case 0xBBE: + fn_1_A828(var_r31, 120.0f, 3000.0f, 1605.0f); + if (lbl_1_bss_1A4->work[0] >= 0x40B) { + var_r31->unk_150++; + var_r31->unk_E0 = 0.0f; + var_r31->unk_D4.x = 1200.0f; + var_r31->unk_D4.y = var_r31->unk_00.unk_6C.y; + var_r31->unk_D4.z = 0.0f; + } + break; + case 0xBBF: + fn_1_A828(var_r31, 60.0f, var_r31->unk_D4.y, 1605.0f); + if ((fn_1_A7CC(var_r31) != 0) && (lbl_1_bss_1A4->work[0] < 0x40C)) { + lbl_1_bss_1A4->work[0] = 0x40C; + lbl_1_bss_128 = 0.0f; + } + break; + case 0xBC0: + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, 270.0f, 0.05f); + if (lbl_1_bss_1A4->work[0] >= 0x40D) { + var_r31->unk_150++; + var_r31->unk_EC = 0.0f; + var_r31->unk_104 = 0.0f; + fn_1_AAB0(var_r31, var_r31->unk_C8, 0); + var_r31->unk_D4 = var_r31->unk_00.unk_6C; + Hu3DMotionShiftSet(object->model[0], object->motion[9], 0.0f, 8.0f, 0x40000001); + } + break; + case 0xBC1: + if ((var_r31->unk_154 & 0x80) != 0) { + var_r31->unk_100 += 1.0f; + if ((Hu3DMotionShiftIDGet(object->model[0]) < 0) && (Hu3DMotionEndCheck(object->model[0]) != 0)) { + var_r31->unk_154 = var_r31->unk_154 & 0xFFFFFF7F; + Hu3DMotionShiftSet(object->model[0], object->motion[9], 0.0f, 8.0f, 0x40000001); + } + } + else if ((var_r31->unk_134 > lbl_1_data_A0C[0].unk_14) || (lbl_1_data_A0C[0].unk_14 <= 0)) { + var_r31->unk_100 += 1.0f; + var_r31->unk_154 |= 0x80; + Hu3DMotionShiftSet(object->model[0], object->motion[8], 0.0f, 8.0f, 0); + } + VECSubtract(&((UnkM450Struct5 *)lbl_1_bss_138->data)->unk_00.unk_6C, &var_r31->unk_00.unk_6C, &spF0); + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, atan2d(spF0.x, spF0.z), 0.4f); + var_r31->unk_100 -= 1.0f; + if (0.0f > var_r31->unk_100) { + var_r31->unk_150 = 0xBC2; + var_r31->unk_154 |= 0x10; + fn_1_AAB0(var_r31, var_r31->unk_C8, 0); + fn_1_17970(object->model[0], object->model[1], var_r31->unk_00.unk_9C - 45.0f); + Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DMotionShiftSet(object->model[0], object->motion[10], 0.0f, 8.0f, 0); + } + var_r31->unk_EC += 0.5f; + if (360.0f <= var_r31->unk_EC) { + var_r31->unk_EC -= 360.0f; + } + var_r31->unk_00.unk_6C.x + = var_r31->unk_D4.x - (400.0 * (1.0 - (0.0 > cosd(var_r31->unk_EC) ? -cosd(var_r31->unk_EC) : cosd(var_r31->unk_EC)))); + var_r31->unk_00.unk_6C.z = var_r31->unk_D4.z + (800.0 * sind(var_r31->unk_EC)); + if ((var_r31->unk_150 == 0xBC1) && (lbl_1_bss_1A4->work[0] >= 0x40E)) { + var_r31->unk_150 = 0xBC3; + var_r31->unk_D4 = var_r31->unk_00.unk_6C; + var_r31->unk_D4.z = -1800.0f; + Hu3DMotionShiftSet(object->model[0], object->motion[7], 0.0f, 8.0f, 0x40000001); + } + break; + case 0xBC2: + var_r31->unk_154 &= ~0x80; + if (((var_r31->unk_154 & 0x20) == 0) && (Hu3DMotionShiftIDGet(object->model[0]) < 0) && (Hu3DMotionEndCheck(object->model[0]) != 0)) { + var_r31->unk_154 |= 0x20; + Hu3DMotionShiftSet(object->model[0], object->motion[7], 0.0f, 8.0f, 0x40000001); + } + var_r31->unk_100 -= 1.0f; + if (0.0f > var_r31->unk_100) { + var_r31->unk_150 = 0xBC1; + var_r31->unk_154 &= ~0x30; + Hu3DMotionShiftSet(object->model[0], object->motion[9], 0.0f, 8.0f, 0x40000001); + fn_1_AAB0(var_r31, var_r31->unk_C8, 1); + } + break; + case 0xBC3: + if (lbl_1_bss_1A4->work[0] >= 0x40F) { + if ((var_r31->unk_154 & 0x1000) == 0) { + var_r31->unk_154 |= 0x1000; + HuAudFXPlay(0x3B); + } + if (fn_1_19A10(&var_r31->unk_00, &var_r31->unk_D4) != 0) { + var_r31->unk_150++; + var_r31->unk_154 &= ~2; + Hu3DModelHookObjReset(object->model[1], "g000i00-itemhook_A"); + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[1], 1); + lbl_1_bss_1A4->work[0] = 0x410; + lbl_1_bss_128 = 0.0f; + } + fn_1_40C0(&var_r31->unk_00); + } + break; + case 0xBC4: + if (lbl_1_bss_1A4->work[0] >= 0x411) { + var_r31->unk_150++; + var_r31->unk_00.unk_9C = 0.0f; + fn_1_A470(var_r31, object, "m450mex06-s6kuppa01", 2); + fn_1_4ED8(&var_r31->unk_00, 0); + Hu3DModelAttrReset(object->model[0], 1); + } + break; + case 0xBC5: + if (lbl_1_bss_1A4->work[0] >= 0x415) { + var_r31->unk_150 = 0xBC7; + var_r31->unk_E0 = 0.0f; + fn_1_A600(var_r31, object, "m450mex06-s6kuppa01", 2); + omSetSca(object, 1.5f, 1.5f, 1.5f); + var_r31->unk_00.unk_9C = 0.0f; + var_r31->unk_00.unk_6C.y = 1505.0f; + fn_1_4ED8(&var_r31->unk_00, 0); + var_r31->unk_00.unk_04 = fn_1_ABD0; + } + break; + case 0xBC6: + var_r31->unk_E0 += 1.0f; + if (120.0f < var_r31->unk_E0) { + var_r31->unk_150++; + var_r31->unk_E0 = 0.0f; + var_r31->unk_00.unk_3C &= ~0x20; + fn_1_4ED8(&var_r31->unk_00, 0); + } + break; + case 0xBC7: + var_r31->unk_00.unk_B8 = fn_1_AB88(var_r31); + fn_1_19A10(&var_r31->unk_00, &spE4); + fn_1_40C0(&var_r31->unk_00); + var_r31->unk_E0 += 1.0f; + spC8 = (60.0f * (3.0f + lbl_1_data_A0C[1].unk_14)); + if (spC8 < var_r31->unk_E0) { + var_r31->unk_150++; + var_r31->unk_154 &= ~0x70; + var_r31->unk_E0 = 0.0f; + var_r31->unk_114 = spE4; + if (frandmod(0x64) < 0x1E) { + var_r31->unk_110 = 0xBC9; + } + else if (500.0f > VECDistance(&var_r31->unk_00.unk_6C, &spE4)) { + var_r31->unk_110 = 0xBCA; + if (lbl_1_data_A0C[1].unk_14 <= 2) { + var_r31->unk_110 = 0xBCB; + } + } + else { + var_r31->unk_110 = 0xBCC; + } + fn_1_4ED8(&var_r31->unk_00, 0); + } + break; + case 0xBC8: + VECSubtract(&var_r31->unk_114, &var_r31->unk_00.unk_6C, &spF0); + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, atan2d(spF0.x, spF0.z), 0.4f); + var_r31->unk_E0 += 1.0f; + var_r31->unk_114 = spE4; + if (60.0f < var_r31->unk_E0) { + var_r31->unk_150 = var_r31->unk_110; + var_r31->unk_154 &= ~0x30; + var_r31->unk_E0 = 0.0f; + var_r31->unk_00.unk_3C |= 0x20; + } + break; + case 0xBC9: + if ((var_r31->unk_154 & 0x10) == 0) { + var_r31->unk_154 |= 0x10; + Hu3DMotionShiftSet(object->model[0], object->motion[15], 0.0f, 8.0f, 0x40000001); + } + else { + var_r31->unk_00.unk_B8 = 1.5f; + if ((fn_1_19A10(&var_r31->unk_00, &var_r31->unk_114) != 0) || (var_r31->unk_00.unk_48 > 0)) { + var_r31->unk_150 = 0xBC6; + var_r31->unk_E0 = 0.0f; + var_r31->unk_154 |= 0x20; + Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 8.0f, 0x40000001); + } + else { + fn_1_40C0(&var_r31->unk_00); + } + } + break; + case 0xBCA: + if ((var_r31->unk_154 & 0x10) == 0) { + var_r31->unk_154 |= 0x10; + var_r31->unk_12C = fn_1_69F8(NULL, NULL, 0x200); + var_r31->unk_130 = HuAudFXPlay(0x7BC); + Hu3DMotionShiftSet(object->model[0], object->motion[12], 0.0f, 8.0f, 0); + } + else if (Hu3DMotionShiftIDGet(object->model[0]) < 0) { + if (45.0f < Hu3DMotionTimeGet(object->model[0])) { + var_r20 = 1; + } + if (var_r20 != 0) { + if ((Hu3DMotionShiftIDGet(object->model[0]) < 0) && (Hu3DMotionEndCheck(object->model[0]) != 0)) { + Hu3DMotionTimeSet(object->model[0], 50.0f); + } + var_r31->unk_E0 += 1.0f; + if (180.0f < var_r31->unk_E0) { + var_r31->unk_150 = 0xBC6; + var_r31->unk_E0 = 0.0f; + var_r31->unk_154 |= 0x20; + Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 30.0f, 0x40000001); + fn_1_66A0(var_r31->unk_12C); + if (var_r31->unk_130 >= 0) { + HuAudFXStop(var_r31->unk_130); + var_r31->unk_130 = -1; + } + } + } + } + break; + case 0xBCB: + if ((var_r31->unk_154 & 0x10) == 0) { + var_r31->unk_154 |= 0x10; + var_r31->unk_12C = fn_1_69F8(NULL, NULL, 0x200); + var_r31->unk_130 = HuAudFXPlay(0x7BC); + Hu3DMotionShiftSet(object->model[0], object->motion[13], 0.0f, 8.0f, 0); + } + else if ((var_r31->unk_154 & 0x40) == 0) { + if (Hu3DMotionShiftIDGet(object->model[0]) < 0) { + if (52.0f < Hu3DMotionTimeGet(object->model[0])) { + var_r20 = 1; + } + if (Hu3DMotionEndCheck(object->model[0]) != 0) { + var_r31->unk_154 |= 0x40; + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DMotionSet(object->model[0], object->motion[14]); + } + } + } + else { + var_r20 = 1; + var_r31->unk_00.unk_B8 = 0.25f; + fn_1_19A10(&var_r31->unk_00, &spE4); + fn_1_40C0(&var_r31->unk_00); + var_r31->unk_E0 += 1.0f; + if (180.0f < var_r31->unk_E0) { + var_r31->unk_150 = 0xBC6; + var_r31->unk_E0 = 0.0f; + var_r31->unk_154 |= 0x20; + Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 8.0f, 0x40000001); + fn_1_66A0(var_r31->unk_12C); + if (var_r31->unk_130 >= 0) { + HuAudFXStop(var_r31->unk_130); + var_r31->unk_130 = -1; + } + } + } + break; + case 0xBCC: + if ((var_r31->unk_154 & 0x10) == 0) { + var_r31->unk_154 |= 0x10; + fn_1_18424(object->model[0], &var_r31->unk_114); + Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DMotionSet(object->model[0], object->motion[11]); + } + else if (((var_r31->unk_154 & 0x20) == 0) && (Hu3DMotionShiftIDGet(object->model[0]) < 0) + && (Hu3DMotionEndCheck(object->model[0]) != 0)) { + var_r31->unk_150 = 0xBC6; + var_r31->unk_E0 = 0.0f; + var_r31->unk_154 |= 0x20; + Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 8.0f, 0x40000001); + if (((var_r31->unk_154 & 0x40) == 0) && (lbl_1_data_A0C[1].unk_14 <= 2)) { + var_r31->unk_150 = 0xBCD; + var_r31->unk_154 |= 0x40; + } + } + break; + case 0xBCD: + var_r31->unk_E0 += 1.0f; + if (10.0f < var_r31->unk_E0) { + var_r31->unk_150 = 0xBC8; + var_r31->unk_110 = 0xBCC; + var_r31->unk_114 = spE4; + var_r31->unk_154 &= ~0x30; + var_r31->unk_E0 = 0.0f; + } + break; + case 0xBCE: + if ((Hu3DMotionShiftIDGet(object->model[0]) < 0) && (Hu3DMotionEndCheck(object->model[0]) != 0)) { + var_r31->unk_150 = 0xBC6; + var_r31->unk_E0 = 0.0f; + var_r31->unk_154 &= ~0x8000; + Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 8.0f, 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], 1); + } + break; + case 0xBCF: + if ((var_r31->unk_154 & 0x2000) && (Hu3DMotionShiftIDGet(object->model[0]) < 0) && (128.0f < Hu3DMotionTimeGet(object->model[0]))) { + var_r31->unk_154 &= ~0x2000; + HuAudFXPlay(0x7BD); + } + break; + default: + OSReport("*** kuppa mode error(%d)!!\n", var_r31->unk_150); + break; + } + + if ((var_r31->unk_150 >= 0xBC6) && (var_r31->unk_150 <= 0xBCD)) { + if (var_r31->unk_154 & 0x8000) { + var_r31->unk_E0 = 0.0f; + if (var_r31->unk_12C >= 0) { + fn_1_66A0(var_r31->unk_12C); + } + if (var_r31->unk_130 >= 0) { + HuAudFXStop(var_r31->unk_130); + var_r31->unk_130 = -1; + } + if (fn_1_125C0(1, 1) <= 0) { + var_r31->unk_150 = 0xBCF; + var_r31->unk_154 |= 0x2000; + Hu3DMotionShiftSet(object->model[0], object->motion[17], 0.0f, 8.0f, 0); + HuAudFXPlay(0x3B); + } + else { + var_r31->unk_150 = 0xBCE; + Hu3DMotionShiftSet(object->model[0], object->motion[16], 0.0f, 8.0f, 0); + HuAudFXPlay(0x3B); + Hu3DModelPosSet(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], var_r31->unk_00.unk_6C.x, var_r31->unk_00.unk_6C.y, + 150.0f + var_r31->unk_00.unk_6C.z); + Hu3DModelScaleSet(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], 2.0f, 2.0f, 2.0f); + Hu3DMotionTimeSet(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], 0.0f); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], 0x40000001); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], 1); + } + } + if (var_r31->unk_150 != 0xBCF) { + if ((var_r31->unk_150 < 0xBCE) && ((lbl_1_data_A0C[0].unk_14 <= 0) || (((UnkM450Struct5 *)lbl_1_bss_138->data)->unk_118 >= 0x7EB))) { + var_r31->unk_150 = 0xBCF; + Hu3DMotionShiftSet(object->model[0], object->motion[3], 0.0f, 8.0f, 0x40000001); + HuAudFXPlay(0x3A); + if (var_r31->unk_12C >= 0) { + fn_1_66A0(var_r31->unk_12C); + } + if (var_r31->unk_130 >= 0) { + HuAudFXStop(var_r31->unk_130); + var_r31->unk_130 = -1; + } + } + else if (((var_r31->unk_138 != 0) || (fn_1_19798() != 0)) && (var_r31->unk_150 == 0xBC9)) { + var_r31->unk_150 = 0xBC6; + var_r31->unk_E0 = 0.0f; + Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 8.0f, 0x40000001); + } + } + } + if ((var_r31->unk_154 & 0x100) && (Hu3DMotionShiftIDGet(object->model[0]) < 0) && (Hu3DMotionEndCheck(object->model[0]) != 0)) { + if (var_r31->unk_154 & 0x2000) { + var_r31->unk_154 &= ~0x2000; + HuAudFXPlay(0x7BE); + } + var_r31->unk_144 -= 1.0f; + if (0.0f > var_r31->unk_144) { + var_r31->unk_154 &= ~0x100; + Hu3DMotionShiftSet(object->model[0], object->motion[var_r31->unk_140], 0.0f, 8.0f, 0x40000001); + } + } + if (var_r31->unk_12C >= 0) { + if (var_r20 != 0) { + fn_1_1D18(object->model[0], "g000m0-itemhook_M", &spFC); + fn_1_1D18(object->model[0], "g000m0-ns_hed", &spD8); + VECSubtract(&spFC, &spD8, &spF0); + fn_1_6798(var_r31->unk_12C, 1, &spFC, atan2d(spF0.x, spF0.z), 700.0f, 1550.0f); + } + if (fn_1_66DC(var_r31->unk_12C) != 0) { + var_r31->unk_12C = -1; + } + } + var_r31->unk_134 = lbl_1_data_A0C[0].unk_14; + spFC = var_r31->unk_00.unk_6C; + if (var_r31->unk_154 & 2) { + var_r31->unk_E8 += 4.0f; + if (360.0f <= var_r31->unk_E8) { + var_r31->unk_E8 -= 360.0f; + } + spCC = var_r31->unk_00.unk_6C.y + (8.0 * sind(var_r31->unk_E8)); + omSetTra(object, 0.0f, 0.0f, 0.0f); + omSetRot(object, 0.0f, 0.0f, 0.0f); + Hu3DModelPosSet(object->model[1], var_r31->unk_00.unk_6C.x, spCC, var_r31->unk_00.unk_6C.z); + Hu3DModelRotSet(object->model[1], 0.0f, var_r31->unk_00.unk_9C, 0.0f); + } + else if (var_r31->unk_154 & 1) { + fn_1_1D70(lbl_1_bss_1A0->model[0], var_r31->unk_CC, &spFC, Hu3DData[object->model[0]].unk_F0); + MTXScale(sp1F8, 1.5f, 1.5f, 1.5f); + MTXConcat(Hu3DData[object->model[0]].unk_F0, sp1F8, Hu3DData[object->model[0]].unk_F0); + } + else { + omSetTra(var_r31->unk_00.unk_00, var_r31->unk_00.unk_6C.x, var_r31->unk_00.unk_6C.y, var_r31->unk_00.unk_6C.z); + omSetRot(var_r31->unk_00.unk_00, 0.0f, var_r31->unk_00.unk_9C, 0.0f); + } + fn_1_A3C4(object, &spFC, 2); +} + +void fn_1_DBF0(omObjData *object) +{ + Vec sp8; + + UnkM450Struct3 *var_r31; + s32 var_r29; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM450Struct3), MEMORY_DEFAULT_NUM); + var_r31 = object->data; + var_r31->unk_150 = 0xBB8; + var_r31->unk_154 = 0; + var_r31->unk_14C = 0; + var_r31->unk_12C = -1; + var_r31->unk_130 = -1; + sp8.x = 0.0f; + sp8.y = 1500.0f; + sp8.z = -800.0f; + fn_1_2C1C(&var_r31->unk_00, object, 4, 9, lbl_1_data_18C, 0, &sp8, 0.0f); + for (var_r29 = 0; var_r29 < 2; var_r29++) { + object->model[var_r29] = Hu3DModelCreateFile(lbl_1_data_AC[var_r29]); + Hu3DModelAttrSet(object->model[var_r29], 0x4001); + Hu3DModelAttrSet(object->model[var_r29], 0x40000001); + Hu3DModelAttrReset(object->model[var_r29], 0x40000002); + Hu3DModelLayerSet(object->model[var_r29], 3); + Hu3DModelShadowSet(object->model[var_r29]); + } + for (var_r29 = 0; var_r29 < 0x13; var_r29++) { + object->motion[var_r29] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(lbl_1_data_B4[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA)); + } + Hu3DMotionSet(object->model[0], object->motion[0]); + CharModelEffectNpcInit(object->model[0], object->motion[1], 2, 8); + CharModelEffectNpcInit(object->model[0], object->motion[2], 1, 8); + CharModelEffectNpcInit(object->model[0], object->motion[15], 3, 8); + var_r31->unk_F4 = 1.0f; + switch (GWPlayerCfg[lbl_1_bss_120].diff) { + case 0: + var_r31->unk_C8 = &lbl_1_data_234[0]; + var_r31->unk_D0 = lbl_1_data_254; + break; + case 1: + var_r31->unk_C8 = &lbl_1_data_234[1]; + var_r31->unk_D0 = lbl_1_data_268; + break; + case 2: + var_r31->unk_C8 = &lbl_1_data_234[2]; + var_r31->unk_D0 = lbl_1_data_27C; + break; + case 3: + default: + var_r31->unk_C8 = &lbl_1_data_234[3]; + var_r31->unk_D0 = lbl_1_data_290; + break; + } + omSetTra(var_r31->unk_00.unk_00, var_r31->unk_00.unk_6C.x, var_r31->unk_00.unk_6C.y, var_r31->unk_00.unk_6C.z); + omSetRot(var_r31->unk_00.unk_00, 0.0f, var_r31->unk_00.unk_9C, 0.0f); + omSetSca(object, 1.5f, 1.5f, 1.5f); + Hu3DModelAttrReset(*object->model, 1); + object->func = (omObjFunc)fn_1_AD58; +} + +s32 fn_1_E0E8(s32 arg0, s32 arg1) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (arg1 == lbl_1_data_1CC[var_r31 * 2]) { + return HuAudFXPlay(lbl_1_data_1CC[arg0 + (var_r31 * 2)]); + } + } + + return -1; +} + +s32 fn_1_E178(s32 arg0, s32 arg1) +{ + UnkM450Struct3 *var_r31 = lbl_1_bss_130[arg0]->data; + var_r31->unk_14C = arg1; + return arg0; +} + +void fn_1_E1A8(s32 arg0, s32 arg1, float arg8, u32 arg2, s32 arg3, float arg9) +{ + UnkM450Struct3 *var_r31; + omObjData *var_r30; + + var_r30 = lbl_1_bss_130[arg0]; + if (arg8 == 0.0f) { + Hu3DMotionSet(var_r30->model[0], var_r30->motion[arg1]); + } + else { + Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[arg1], 0.0f, arg8, arg2); + } + var_r31 = var_r30->data; + var_r31->unk_140 = -1; + var_r31->unk_154 &= ~0x100; + if (arg3 >= 0) { + var_r31->unk_140 = arg3; + var_r31->unk_144 = arg9; + var_r31->unk_154 |= 0x100; + } + var_r31->unk_148 = arg1; +} + +void fn_1_E2BC(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +{ + lbl_1_bss_4 = arg0; + lbl_1_bss_0 = arg1; + if (arg2 == 0) { + fn_1_6CB0(fn_1_7D40, arg3); + } + else { + fn_1_6CB0(fn_1_8120, arg3); + } +} + +void fn_1_E3C8(UnkM450Struct3 *arg0, omObjData *arg1, s32 arg2) +{ + s32 var_r30; + if (arg2 != 0) { + if (arg1->work[0] == 0) { + Hu3DModelAttrReset(arg1->model[1], 1); + } + Hu3DModelAttrReset(arg1->model[0], 1); + } + else { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + Hu3DModelAttrSet(arg1->model[var_r30], 1); + } + } + arg0->unk_00.unk_3C &= ~0xC00; +} + +UnkData1380Struct lbl_1_data_1380; +UnkData1380Struct lbl_1_data_13B8; + +void fn_1_E478(UnkM450Struct3 *arg0, omObjData *arg1) +{ + s32 var_r29; + float var_f31; + UnkData1380Struct *var_r30 = &lbl_1_data_1380; + float var_f30; + + arg0->unk_F8 = -1; + arg0->unk_154 &= ~0x30; + arg0->unk_120.x = 0.0f; + arg0->unk_120.y = 0.0f; + arg0->unk_120.z = 0.0f; + if (arg1->work[0] != 0) { + var_r29 = frandmod(var_r30->unk_08); + while (var_r30->unk_24[var_r29] < 0) { + var_r29 = (var_r29 + 1) % var_r30->unk_08; + } + arg0->unk_F8 = var_r30->unk_24[var_r29]; + var_f31 = 200.0f * frandf(); + var_f30 = 360.0f * frandf(); + arg0->unk_120.x = var_f31 * sind(var_f30); + arg0->unk_120.z = var_f31 * cosd(var_f30); + } +} + +void fn_1_E604(UnkM450Struct3 *arg0, omObjData *arg1) +{ + Vec spC; + float sp8; + + arg0->unk_D4 = ((UnkM450Struct5 *)lbl_1_bss_138->data)->unk_00.unk_6C; + if (((arg0->unk_154 & 0x10) != 0) && ((arg0->unk_154 & 0x20) == 0)) { + if ((Hu3DMotionShiftIDGet(arg1->model[0]) < 0) && (20.0f < Hu3DMotionTimeGet(arg1->model[0]))) { + arg0->unk_154 |= 0x20; + spC = arg0->unk_00.unk_6C; + spC.x += (200.0 * sind(arg0->unk_00.unk_9C)); + spC.y += 100.0f; + spC.z += (200.0 * cosd(arg0->unk_00.unk_9C)); + fn_1_17360(&spC, arg0->unk_00.unk_9C); + } + } + else { + fn_1_19A10(&arg0->unk_00, &arg0->unk_D4); + fn_1_40C0(&arg0->unk_00); + VECSubtract(&arg0->unk_00.unk_6C, &arg0->unk_D4, &spC); + if ((300.0f > sqrtf((spC.x * spC.x) + (spC.z * spC.z))) && ((arg0->unk_154 & 0x10) == 0)) { + arg0->unk_154 |= 0x10; + Hu3DMotionShiftSet(arg1->model[0], arg1->motion[5], 0.0f, 8.0f, 0); + } + } +} + +void fn_1_E918(UnkM450Struct3 *arg0, omObjData *arg1) +{ + arg0->unk_D4 = *fn_1_16314(arg0->unk_F8); + VECAdd(&arg0->unk_120, &arg0->unk_D4, &arg0->unk_D4); + if ((arg0->unk_154 & 0x10) && ((arg0->unk_154 & 0x20) == 0) && (Hu3DMotionShiftIDGet(arg1->model[0]) < 0) + && (Hu3DMotionEndCheck(*arg1->model) != 0)) { + arg0->unk_154 |= 0x20; + fn_1_16BC4(&arg0->unk_00.unk_6C, &arg0->unk_120, arg0->unk_F8); + } + if (fn_1_19A10(&arg0->unk_00, &arg0->unk_D4) != 0) { + if ((arg0->unk_154 & 0x10) == 0) { + arg0->unk_154 |= 0x10; + Hu3DMotionShiftSet(*arg1->model, arg1->motion[5], 0.0f, 8.0f, 0); + } + } + else { + fn_1_40C0(&arg0->unk_00); + } +} + +void fn_1_EA50(UnkM450Struct3 *arg0, omObjData *arg1) +{ + arg0->unk_150 = 0xFAD; + arg0->unk_E0 = 0.0f; + Hu3DMotionShiftSet(*arg1->model, *arg1->motion, 0.0f, 8.0f, 0); + fn_1_1D70(lbl_1_bss_1A0->model[0], arg1->work[0] == 0 ? "m450mex06-s3mini2" : "m450mex06-s3mini1", &arg0->unk_D4, NULL); +} + +HsfanimStruct00 lbl_1_data_1504; + +void fn_1_EB6C(UnkM450Struct3 *arg0, omObjData *arg1) +{ + s32 var_r29; + s16 var_r28; + u32 var_r27; + + fn_1_1D18(arg1->model[4], "g007i03-itemhook_M", &arg0->unk_00.unk_6C); + Hu3DModelHookObjReset(arg1->model[4], "g007i03-itemhook_M"); + Hu3DModelAttrSet(arg1->model[4], 1); + arg0->unk_150 = 0xFAE; + arg0->unk_154 &= 0xFFFFFFFD; + arg0->unk_108 = 19.6f; + arg0->unk_E0 = 0.0f; + Hu3DMotionSet(arg1->model[0], arg1->motion[6]); + Hu3DModelAttrReset(arg1->model[0], 0x40000001); + Hu3DModelAttrSet(arg1->model[0], 0x40000002); + Hu3DMotionTimeSet(arg1->model[0], 1.0f); + arg0->unk_13C = Hu3DParManLink(lbl_1_bss_24, &lbl_1_data_1504); + Hu3DParManPosSet(arg0->unk_13C, arg0->unk_00.unk_6C.x, arg0->unk_00.unk_6C.y, arg0->unk_00.unk_6C.z); + Hu3DParManAttrReset(arg0->unk_13C, 1); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(arg0->unk_13C), 1); + Hu3DModelLayerSet(Hu3DParManModelIDGet(arg0->unk_13C), 5); + fn_1_E0E8(arg1->work[0], 0x3F); +} + +void fn_1_ED4C(omObjData *object) +{ + Vec spEC; + float spDC; + + UnkM450Struct3 *var_r31; + Vec *var_r29; + UnkM450Struct3 *var_r18; + + var_r18 = lbl_1_bss_130[object->work[0] ^ 1]->data; + var_r31 = object->data; + var_r31->unk_00.unk_20 = 0; + var_r31->unk_00.unk_24 = 0; + var_r31->unk_00.unk_28 = 0; + var_r31->unk_00.unk_2C = 0; + var_r31->unk_00.unk_30 = 0; + var_r31->unk_00.unk_34 = 0; + + switch (var_r31->unk_150) { + case 0xFA0: + if ((lbl_1_bss_1A4->work[0] >= 0x3EF) && (30.0f < lbl_1_bss_128)) { + var_r31->unk_150++; + var_r31->unk_E4 = 0.0f; + var_r31->unk_154 &= ~0x100; + var_r31->unk_154 |= 0x200; + var_r31->unk_F0 = var_r31->unk_00.unk_6C.x - (100.0f * (0.0f > var_r31->unk_00.unk_6C.x ? -1 : 1)); + } + if ((object->work[0] == 0) && (var_r31->unk_148 == 7)) { + var_r31->unk_00.unk_9C = 0.0f; + } + else { + VECSubtract(&((UnkM450Struct5 *)lbl_1_bss_138->data)->unk_00.unk_6C, &var_r31->unk_00.unk_6C, &spEC); + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, atan2d(spEC.x, spEC.z), 0.4f); + } + break; + case 0xFA1: + fn_1_9F4C(var_r31, object->model[0], lbl_1_bss_4C, 0x7A); + if (-1100.0f > var_r31->unk_00.unk_6C.z) { + var_r31->unk_150++; + fn_1_E2BC(1, 0x1E, object->work[0], 0); + fn_1_E1A8(object->work[0], 12, 8.0f, 0, 1, 0.0f); + } + break; + case 0xFA2: + if (lbl_1_bss_10 == 0) { + fn_1_9F4C(var_r31, object->model[0], lbl_1_bss_4C, 0x7A); + if (1000.0f > var_r31->unk_00.unk_6C.y) { + var_r31->unk_150++; + var_r31->unk_154 &= ~0x200; + fn_1_E3C8(var_r31, object, 0); + } + } + else { + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, 0.0f, 0.4f); + } + break; + case 0xFA3: + if (((UnkM450Struct5 *)lbl_1_bss_138->data)->unk_118 >= 0x7D5) { + var_r31->unk_150++; + fn_1_A470(var_r31, object, object->work[0] == 0 ? "m450mex06-s2kuppa01" : "m450mex06-s2kuppa02", 5); + fn_1_4ED8(&var_r31->unk_00, 0); + fn_1_E3C8(var_r31, object, 1); + } + break; + case 0xFA4: + if (lbl_1_bss_1A4->work[0] >= 0x3F2) { + var_r31->unk_150 = var_r31->unk_150 + 1; + var_r31->unk_00.unk_9C = 0.0f; + fn_1_A600(var_r31, object, object->work[0] == 0 ? "m450mex06-s2kuppa01" : "m450mex06-s2kuppa02", 5); + var_r31->unk_00.unk_6C.y = 1505.0f; + var_r31->unk_00.unk_3C |= 0x400; + fn_1_1D70(lbl_1_bss_1A0->model[0], "m450mex06-s2hook04", &var_r31->unk_D4, NULL); + var_r31->unk_D4.x += (-100.0f + (300.0f * (object->work[0] ^ 1))); + var_r31->unk_D4.z += (100.0f - (200.0f * (object->work[0] ^ 1))); + } + break; + case 0xFA5: + if (fn_1_A7CC(var_r31) != 0) { + var_r31->unk_D4.x = 1200.0f; + var_r31->unk_D4.z = 150.0f - (300.0f * (object->work[0] ^ 1)); + } + break; + case 0xFA6: + if (fn_1_A7CC(var_r31)) { + fn_1_E3C8(var_r31, object, 0); + } + break; + case 0xFA7: + if (lbl_1_bss_1A4->work[0] >= 0x3F7) { + var_r31->unk_150++; + var_r31->unk_E0 = 0.0f; + var_r31->unk_E8 = 360.0f * frandf(); + var_r31->unk_154 |= 2; + Hu3DModelAttrReset(object->model[4], 1); + Hu3DModelAttrReset(object->model[4], 0x40000002); + Hu3DModelHookSet(object->model[4], "g007i03-itemhook_M", object->model[0]); + var_r31->unk_00.unk_6C.x = 0.0f; + var_r31->unk_00.unk_6C.y = 3000.0f; + var_r31->unk_00.unk_6C.z = -300.0f + (600.0f * object->work[0]); + var_r31->unk_00.unk_9C = 270.0f; + fn_1_4ED8(&var_r31->unk_00, 0); + var_r31->unk_00.unk_3C |= 0x2020; + fn_1_E3C8(var_r31, object, 1); + } + break; + case 0xFA8: + fn_1_A828(var_r31, 120.0f, 3000.0f, 1605.0f); + if (lbl_1_bss_1A4->work[0] >= 0x3F9) { + var_r31->unk_150 = var_r31->unk_150 + 1; + var_r31->unk_E0 = 0.0f; + var_r31->unk_D4.x = 800.0f; + var_r31->unk_D4.y = var_r31->unk_00.unk_6C.y; + var_r31->unk_D4.z = -400.0f + (800.0f * object->work[0]); + } + break; + case 0xFA9: + fn_1_A828(var_r31, 60.0f, var_r31->unk_D4.y, 2055.0f); + if ((fn_1_A7CC(var_r31) != 0) && (lbl_1_bss_1A4->work[0] < 0x3FA)) { + lbl_1_bss_1A4->work[0] = 0x3FA; + lbl_1_bss_128 = 0.0f; + } + break; + case 0xFAA: + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, 270.0f, 0.05f); + if (lbl_1_bss_1A4->work[0] >= 0x3FB) { + var_r31->unk_150++; + var_r31->unk_FC = 0; + var_r31->unk_100 = var_r31->unk_C4[var_r31->unk_FC].unk_00; + var_r31->unk_D4 = var_r31->unk_00.unk_6C; + Hu3DMotionShiftSet(object->model[0], object->motion[10], 0.0f, 8.0f, 0x40000001); + } + break; + case 0xFAB: + if (var_r31->unk_154 & 0x80) { + var_r31->unk_100 += 1.0f; + if ((Hu3DMotionShiftIDGet(object->model[0]) < 0) && (Hu3DMotionEndCheck(object->model[0]) != 0)) { + var_r31->unk_154 = var_r31->unk_154 & 0xFFFFFF7F; + Hu3DMotionShiftSet(object->model[0], object->motion[10], 0.0f, 8.0f, 0x40000001); + } + } + else if ((var_r31->unk_134 > lbl_1_data_A0C[0].unk_14) || (lbl_1_data_A0C[0].unk_14 <= 0)) { + var_r31->unk_100 += 1.0f; + if (lbl_1_data_A0C[0].unk_14 > 0) { + var_r31->unk_154 |= 0x80; + Hu3DMotionShiftSet(object->model[0], object->motion[11], 0.0f, 8.0f, 0); + } + else { + var_r31->unk_150 = 0xFB0; + Hu3DMotionShiftSet(object->model[0], object->motion[3], 0.0f, 8.0f, 0); + } + } + var_r31->unk_154 &= ~4; + var_r31->unk_100 -= 1.0f; + if ((var_r18->unk_154 & 4) && (0.0f > var_r31->unk_100)) { + var_r31->unk_FC++; + if (var_r31->unk_C4[var_r31->unk_FC].unk_00 == 0.0f) { + var_r31->unk_FC -= 2; + } + var_r31->unk_100 = var_r31->unk_C4[var_r31->unk_FC].unk_00; + if (var_r31->unk_C4[var_r31->unk_FC].unk_04) { + var_r31->unk_150 = 0xFAC; + fn_1_E478(var_r31, object); + Hu3DMotionShiftSet(object->model[0], object->motion[10], 0.0f, 8.0f, 0); + } + } + else if (fn_1_19A10(&var_r31->unk_00, &var_r31->unk_D4) != 0) { + var_r31->unk_154 |= 4; + VECSubtract(&((UnkM450Struct5 *)lbl_1_bss_138->data)->unk_00.unk_6C, &var_r31->unk_00.unk_6C, &spEC); + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, atan2d(spEC.x, spEC.z), 0.4f); + } + else { + fn_1_40C0(&var_r31->unk_00); + } + if (lbl_1_bss_1A4->work[0] >= 0x3FC) { + fn_1_EA50(var_r31, object); + } + break; + case 0xFAC: + var_r31->unk_154 &= ~0x84; + var_r31->unk_100 -= 1.0f; + if (0.0f > var_r31->unk_100) { + var_r31->unk_FC++; + if (var_r31->unk_C4[var_r31->unk_FC].unk_00 == 0.0f) { + var_r31->unk_FC -= 2; + } + var_r31->unk_100 = var_r31->unk_C4[var_r31->unk_FC].unk_00; + if (var_r31->unk_C4[var_r31->unk_FC].unk_04 == 0) { + var_r31->unk_150 = 0xFAB; + Hu3DMotionShiftSet(object->model[0], object->motion[10], 0.0f, 8.0f, 0x40000001); + var_r31->unk_D4.x = 800.0f; + if (0.0f > var_r18->unk_00.unk_6C.z) { + var_r31->unk_D4.z = 200.0f; + } + else { + var_r31->unk_D4.z = -200.0f; + } + var_r31->unk_D4.z += var_r31->unk_D4.z * frandf(); + } + } + else { + if (object->work[0] == 0) { + fn_1_E604(var_r31, object); + } + else { + fn_1_E918(var_r31, object); + } + if ((((var_r31->unk_154 & 0x10) == 0) || (var_r31->unk_154 & 0x20)) && (lbl_1_bss_1A4->work[0] == 0x3E8)) { + var_r31->unk_100 = 0.0f; + } + } + if (lbl_1_bss_1A4->work[0] >= 0x3FC) { + fn_1_EA50(var_r31, object); + } + break; + case 0xFAD: + if (lbl_1_bss_1A4->work[0] >= 0x3FD) { + if (fn_1_19A10(&var_r31->unk_00, &var_r31->unk_D4) != 0) { + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, 270.0f, 0.4f); + if ((object->work[0] + 0x3FE) == lbl_1_bss_1A4->work[0]) { + lbl_1_bss_1A4->work[0] += 1; + lbl_1_bss_128 = 0; + } + if (lbl_1_bss_1A4->work[0] > 0x3FF) { + fn_1_EB6C(var_r31, object); + } + } + fn_1_40C0(&var_r31->unk_00); + } + break; + case 0xFAE: + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, 270.0f, 0.4f); + var_r31->unk_00.unk_6C.x += 0.1f * (var_r31->unk_D4.x - var_r31->unk_00.unk_6C.x); + var_r31->unk_00.unk_6C.z += 0.1f * (var_r31->unk_D4.z - var_r31->unk_00.unk_6C.z); + if (1505.0f < var_r31->unk_00.unk_6C.y) { + var_r31->unk_00.unk_6C.y += var_r31->unk_108; + var_r31->unk_108 = var_r31->unk_108 - 0.98f; + if (1505.0f >= var_r31->unk_00.unk_6C.y) { + var_r31->unk_00.unk_6C.y = 1505.0f; + Hu3DModelAttrReset(object->model[0], 0x40000002); + } + } + else if (((var_r31->unk_154 & 0x400) == 0) && (Hu3DMotionEndCheck(object->model[0]) != 0)) { + var_r31->unk_154 |= 0x400; + Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 8.0f, 0x40000001); + } + if (lbl_1_bss_1A4->work[0] >= 0x402) { + var_r31->unk_150 = var_r31->unk_150 + 1; + var_r31->unk_E0 = 0.0f; + var_r31->unk_00.unk_3C &= ~0x2020; + fn_1_A470(var_r31, object, object->work[0] == 0 ? "m450mex06-s3mini2" : "m450mex06-s3mini1", 5); + } + var_r31->unk_E0 += 1.0f; + if (var_r31->unk_E0 == 10.0f) { + Hu3DParManAttrSet(var_r31->unk_13C, 1); + } + break; + case 0xFAF: + if (lbl_1_bss_1A4->work[0] >= 0x403) { + var_r31->unk_150 = var_r31->unk_150 + 1; + Hu3DModelAttrSet(object->model[0], 1); + } + break; + case 0xFB0: + break; + default: + OSReport("*** minik mode error(%d)!!\n", var_r31->unk_150); + break; + } + + if ((var_r31->unk_154 & 0x100) && (Hu3DMotionShiftIDGet(object->model[0]) < 0) && (Hu3DMotionEndCheck(object->model[0]) != 0)) { + var_r31->unk_144 -= 1.0f; + if (0.0f > var_r31->unk_144) { + var_r31->unk_154 &= ~0x100; + var_r31->unk_148 = var_r31->unk_140; + Hu3DMotionShiftSet(object->model[0], object->motion[var_r31->unk_140], 0.0f, 8.0f, 0x40000001); + } + } + var_r31->unk_134 = lbl_1_data_A0C[0].unk_14; + var_r29 = &lbl_1_bss_34[object->work[0]]; + if (var_r31->unk_154 & 2) { + *var_r29 = var_r31->unk_00.unk_6C; + var_r29->y += 100.0f; + var_r31->unk_E8 += 4.0f; + if (360.0f <= var_r31->unk_E8) { + var_r31->unk_E8 -= 360.0f; + } + spDC = var_r31->unk_00.unk_6C.y + (8.0 * sind(var_r31->unk_E8)); + omSetTra(object, 0.0f, 0.0f, 0.0f); + omSetRot(object, 0.0f, 0.0f, 0.0f); + Hu3DModelPosSet(object->model[4], var_r31->unk_00.unk_6C.x, spDC, var_r31->unk_00.unk_6C.z); + Hu3DModelRotSet(object->model[4], 0.0f, var_r31->unk_00.unk_9C, 0.0f); + } + else if ((var_r31->unk_154 & 1) != 0) { + fn_1_1D70(lbl_1_bss_1A0->model[0], var_r31->unk_CC, var_r29, Hu3DData[object->model[0]].unk_F0); + } + else { + *var_r29 = var_r31->unk_00.unk_6C; + omSetTra(var_r31->unk_00.unk_00, var_r31->unk_00.unk_6C.x, var_r31->unk_00.unk_6C.y, var_r31->unk_00.unk_6C.z); + omSetRot(var_r31->unk_00.unk_00, 0.0f, var_r31->unk_00.unk_9C, 0.0f); + } + fn_1_A3C4(object, var_r29, 5); + if (var_r31->unk_14C != 0) { + lbl_1_bss_D8++; + VECAdd(&lbl_1_bss_CC, &var_r31->unk_00.unk_6C, &lbl_1_bss_CC); + } +} + +void fn_1_11D5C(omObjData *object) +{ + Vec sp8; + + UnkM450Struct3 *var_r31; + s32 var_r29; + s32 var_r27; + s32 *var_r26; + + (void)var_r27; + (void)var_r27; + (void)var_r27; + (void)var_r27; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM450Struct3), MEMORY_DEFAULT_NUM); + var_r31 = object->data; + var_r31->unk_150 = 0xFA0; + var_r31->unk_154 = 0; + var_r31->unk_14C = 0; + var_r31->unk_13C = -1; + var_r31->unk_148 = 7; + sp8.x = -300.0f + (600.0f * object->work[0]); + sp8.y = 1500.0f; + sp8.z = -600.0f; + fn_1_2C1C(&var_r31->unk_00, object, 4, 8, lbl_1_data_1AC, 0, &sp8, 0.0f); + var_r31->unk_00.unk_3C |= 0x1000; + for (var_r29 = 0; var_r29 < 5; var_r29++) { + object->model[var_r29] = Hu3DModelCreateFile(lbl_1_data_100[var_r29]); + Hu3DModelAttrSet(object->model[var_r29], 0x4001); + Hu3DModelAttrSet(object->model[var_r29], 0x40000003); + Hu3DModelLayerSet(object->model[var_r29], 3); + Hu3DModelShadowSet(object->model[var_r29]); + } + var_r31->unk_F4 = 1.0f; + var_r31->unk_C4 = lbl_1_data_204; + var_r26 = lbl_1_data_150; + if (object->work[0] == 0) { + var_r31->unk_C4 = lbl_1_data_1DC; + var_r26 = lbl_1_data_114; + Hu3DModelHookSet(object->model[0], "g007m0-itemhook_r", object->model[1]); + } + for (var_r29 = 0; var_r29 < 0xF; var_r29++) { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], var_r26[var_r29]); + } + Hu3DMotionSet(object->model[0], object->motion[7]); + Hu3DModelAttrReset(object->model[0], 0x40000002); + if (object->work[0] == 0) { + CharModelEffectNpcInit(object->model[0], object->motion[1], 0, 0xD); + CharModelEffectNpcInit(object->model[0], object->motion[2], 1, 0xD); + } + else { + CharModelEffectNpcInit(object->model[0], object->motion[1], 2, 0xD); + CharModelEffectNpcInit(object->model[0], object->motion[2], 3, 0xD); + } + omSetTra(var_r31->unk_00.unk_00, var_r31->unk_00.unk_6C.x, var_r31->unk_00.unk_6C.y, var_r31->unk_00.unk_6C.z); + omSetRot(var_r31->unk_00.unk_00, 0.0f, var_r31->unk_00.unk_9C, 0.0f); + if (object->work[0] == 0) { + Hu3DModelAttrReset(object->model[1], 1); + } + Hu3DModelAttrReset(object->model[0], 1); + var_r31->unk_00.unk_3C &= ~0xC00; + object->func = (omObjFunc)fn_1_ED4C; +} + +Vec lbl_1_data_464 = { 7000.0f, 7000.0f, 7000.0f }; +Vec lbl_1_data_470 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_47C = { 0.0f, 0.0f, 0.0f }; +Vec lbl_1_data_488 = { 0.0f, 2200.0f, 1500.0f }; +Vec lbl_1_data_494 = { 0.0f, 1800.0f, 0.0f }; +Vec lbl_1_data_4A0 = { 0.0f, 1800.f, 650.0f }; +Vec lbl_1_data_4AC = { 0.0f, 1700.0f, -650.0f }; +Vec lbl_1_data_4B8 = { 0.0f, 1850.0f, 450.0f }; +Vec lbl_1_data_4C4 = { 0.0f, 1775.0f, -50.0f }; +Vec lbl_1_data_4D0 = { 0.0f, 1850.0f, 550.0f }; +Vec lbl_1_data_4DC = { 0.0f, 1775.0f, -50.0f }; +Vec lbl_1_data_4E8 = { 0.0f, 3000.0f, 1000.0f }; +Vec lbl_1_data_4F4 = { 0.0f, -3.0f, -1.0f }; +GXColor lbl_1_data_500 = { 0xFF, 0xFF, 0xFF, 0xFF }; +Vec lbl_1_data_504 = { 0.0f, 8000.0f, 1000.0f }; +Vec lbl_1_data_510 = { 0.0f, 0.0f, 0.0f }; +Vec lbl_1_data_51C[4] = { + { 1500.0f, 700.0f, 300.0f }, + { 1500.0f, 1200.0f, 200.0f }, + { 2400.0f, 1400.0f, 400.0f }, + { 2500.0f, 800.0f, -200.0f }, +}; + +s32 lbl_1_data_9EC[8]; + +void fn_1_12234(void) +{ + UnkDataA0CStruct *var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + lbl_1_data_A0C[0].unk_0C = lbl_1_data_9EC[GWPlayerCfg[lbl_1_bss_120].character]; + for (var_r31 = lbl_1_data_A0C, var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) { + var_r27 = var_r31->unk_10 + 3; + var_r31->unk_18 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r27 * 4, MEMORY_DEFAULT_NUM); + var_r31->unk_18[0] = espEntry(var_r31->unk_00, 0, 0); + var_r31->unk_18[1] = espEntry(var_r31->unk_04, 0, 0); + var_r31->unk_18[2] = espEntry(var_r31->unk_0C, 0, 0); + for (var_r30 = 3; var_r30 < var_r27; var_r30++) { + var_r31->unk_18[var_r30] = espEntry(var_r31->unk_08, 0, 0); + } + var_r28 = 0x30; + if (var_r29 != 0) { + var_r28 = 0x210; + } + for (var_r30 = 0; var_r30 < var_r27; var_r30++) { + espDrawNoSet(var_r31->unk_18[var_r30], 0); + espDispOff(var_r31->unk_18[var_r30]); + espAttrSet(var_r31->unk_18[var_r30], 1); + espBankSet(var_r31->unk_18[var_r30], 0); + espPriSet(var_r31->unk_18[var_r30], 0x80 - var_r29); + espPosSet(var_r31->unk_18[var_r30], var_r28, 225.0f); + } + espTPLvlSet(var_r31->unk_18[0], 0.5f); + espColorSet(var_r31->unk_18[0], 0, 0, 0); + espPosSet(var_r31->unk_18[2], var_r28 - 2, 83.0f); + for (var_r30 = 3; var_r30 < var_r27; var_r30++) { + espPosSet(var_r31->unk_18[var_r30], var_r28 - 1, ((var_r30 - 3) * 0x1A) + 0x7B); + } + } +} + +void fn_1_12540(s32 arg0) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < (lbl_1_data_A0C[arg0].unk_10 + 3); var_r31++) { + espDispOn(lbl_1_data_A0C[arg0].unk_18[var_r31]); + } +} + +s32 fn_1_125C0(s32 arg0, s32 arg1) +{ + UnkDataA0CStruct *var_r31; + s32 var_r30; + + var_r31 = &lbl_1_data_A0C[arg0]; + if (arg1 == 0) { + arg1 = var_r31->unk_10 + 1; + } + var_r31->unk_14 -= arg1; + arg1 = var_r31->unk_14; + if (var_r31->unk_14 < 0) { + var_r31->unk_14 = 0; + } + for (var_r30 = 0; var_r30 < var_r31->unk_10; var_r30++) { + if (var_r31->unk_14 <= var_r30) { + espBankSet(var_r31->unk_18[var_r30 + 3], 1); + } + } + return arg1; +} + +void fn_1_12688(omObjData *object) +{ + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + + CameraData *var_r30; + + var_f30 = 1.0f; + var_f31 = 1.0f; + if (lbl_1_bss_1A4->work[0] > 0x3EC) { + var_f30 = 0.8f; + var_f31 = 0.4f; + } + if (object->work[0] != 0) { + if (lbl_1_bss_1A4->work[0] <= 0x3EB) { + object->work[0] = object->work[0] - (3.0f - (lbl_1_bss_128 / 120.0f)); + if (object->work[0] > 0x258) { + object->work[0] = 1; + } + } + if (--object->work[0] == 0) { + var_r30 = Hu3DCamera; + VECSubtract(&var_r30->pos, &var_r30->target, &sp8); + var_f29 = (atan2d(sp8.x, sp8.z)) + ((90.0f * frandf()) - 45.0f); + omSetRot(object, 0.0f, var_f29, 0.0f); + omSetSca(object, var_f31, var_f30, var_f31); + Hu3DMotionTimeSet(object->model[0], 0.0f); + Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], 0x40000002); + HuAudFXPlay(0x7C0); + } + } + else if (Hu3DMotionEndCheck(object->model[0]) != 0) { + object->work[0] = frandmod(0x258); + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], 0x40000002); + } +} + +void fn_1_1291C(omObjData *object) +{ + object->work[0] = frandmod(0x258); + omSetTra(object, 0.0f, 0.0f, 0.0f); + omSetRot(object, 0.0f, 0.0f, 0.0f); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M450, 0x22)); + Hu3DModelAttrSet(object->model[0], 0x4001); + Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DModelLayerSet(object->model[0], 1); + object->func = fn_1_12688; +} + +UnkData5CCStruct lbl_1_data_5CC[8] = { + { "c000m1-ske_head", 0x100, 1, 183.0f }, + { "c001m1-ske_head", 0x100, 1, 183.0f }, + { "c002m1-ske_head", 0x80, 0, 100.0f }, + { "c003m1-ske_head", 0x80, 0, 90.0f }, + { "c004m1-ske_head", 0x80, 0, 83.0f }, + { "c005m1-ske_head", 0x80, 0, 112.0f }, + { "c006m1-ske_head", 0x80, 0, 100.0f }, + { "c007m1-ske_head", 0x80, 0, 70.0f }, +}; +s32 lbl_1_data_64C[8][0x17] = { + { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x08), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x0A), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x09), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x13), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x16), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x19), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1A), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x36), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x6D), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1F), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1C), + DATA_MAKE_NUM(DATADIR_M450, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x0D), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x0E), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x10), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x11), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x7F), + }, + { + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x05), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x06), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x08), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x0A), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x09), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x13), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x16), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x19), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x1A), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x36), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x6D), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x1F), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x1C), + DATA_MAKE_NUM(DATADIR_M450, 0x01), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x0D), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x0E), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x10), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x11), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x7F), + }, + { + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x02), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x03), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x05), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x06), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x08), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x0A), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x09), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x13), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x16), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x19), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x1A), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x36), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x6D), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x1F), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x1C), + DATA_MAKE_NUM(DATADIR_M450, 0x02), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x0D), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x0E), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x10), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x11), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x17), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x7F), + }, + { + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x05), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x06), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x08), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x0A), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x09), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x13), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x16), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x19), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x1A), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x36), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x6D), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x1F), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x1C), + DATA_MAKE_NUM(DATADIR_M450, 0x03), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x0D), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x0E), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x10), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x11), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x7F), + }, + { + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x05), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x06), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x08), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x0A), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x09), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x13), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x16), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x19), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x1A), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x36), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x6D), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x1F), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x1C), + DATA_MAKE_NUM(DATADIR_M450, 0x04), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x0D), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x0E), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x10), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x11), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x7F), + }, + { + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x02), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x03), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x05), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x06), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x08), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x0A), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x09), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x13), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x16), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x19), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x1A), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x36), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x6D), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x1F), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x1C), + DATA_MAKE_NUM(DATADIR_M450, 0x05), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x0D), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x0E), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x10), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x11), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x7F), + }, + { + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x02), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x03), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x05), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x06), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x08), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x0A), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x09), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x13), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x16), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x19), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x1A), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x36), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x6D), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x1F), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x1C), + DATA_MAKE_NUM(DATADIR_M450, 0x06), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x0D), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x0E), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x10), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x11), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x7F), + }, + { + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x05), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x06), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x08), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x0A), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x09), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x13), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x16), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x19), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x1A), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x36), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x6D), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x1F), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x1C), + DATA_MAKE_NUM(DATADIR_M450, 0x07), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x0D), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x0E), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x10), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x11), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x7F), + }, +}; +s32 lbl_1_data_92C[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +UnkData94CStruct lbl_1_data_94C[8] = { + { 9, 1.0f, 8.0f, 0.0f, 0 }, + { 0xA, 1.0f, 0.0f, 0.0f, 0 }, + { 0xB, 2.5f, 8.0f, 0.0f, 0 }, + { 0xC, 1.0f, 8.0f, 61.0f, 0x40000002 }, + { -1, 1.0f, 0.0f, 0.0f, 0 }, + { 0xD, 1.0f, 8.0f, 0.0f, 0 }, + { 0, 1.0f, 16.0f, 0.0f, 0x40000001 }, + { -1, 1.0f, 0.0f, 0.0f, 0 }, +}; +s32 lbl_1_data_9EC[8] = { + 0x610000, + 0x610001, + 0x610002, + 0x610003, + 0x610004, + 0x610005, + 0x610006, + 0x610007, +}; +UnkDataA0CStruct lbl_1_data_A0C[2] = { + { 0x00510065, DATA_MAKE_NUM(DATADIR_M450, 0x64), DATA_MAKE_NUM(DATADIR_M450, 0x68), DATA_MAKE_NUM(DATADIR_M450, 0x6B), 0xA, 0xA, NULL }, + { 0x00510067, DATA_MAKE_NUM(DATADIR_M450, 0x66), DATA_MAKE_NUM(DATADIR_M450, 0x69), DATA_MAKE_NUM(DATADIR_M450, 0x6A), 5, 5, NULL }, +}; +UnkDataA80Struct lbl_1_data_A80[9] = { + { "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, 0.6f, 350.0f }, -1, 0 }, + { "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, 0.6f, 350.0f }, -2, 0 }, + { "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -0.6f, 350.0f }, -1, 0 }, + { "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -0.6f, 350.0f }, -2, 0 }, + { "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 0.6f, 350.0f }, -1, 0 }, + { "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 0.6f, 350.0f }, -2, 0 }, + { "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 0.6f, 350.0f }, -2, 0 }, + { "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 0.6f, 300.0f }, -1, 0 }, + { "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, 0.6f, 300.0f }, -2, 0 }, +}; +UnkDataA80Struct lbl_1_data_C58[0xA] = { + { "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 60.0f, -0.6f, 300.0f }, -1, 0 }, + { "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, -0.6f, 300.0f }, -2, 0 }, + { "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 300.0f, -0.6f, 300.0f }, -2, 0 }, + { "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, -1.2f, 300.0f }, -1, 0 }, + { "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, -1.2f, 300.0f }, -2, 0 }, + { "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -0.6f, 300.0f }, -1, 0 }, + { "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -0.6f, 300.0f }, -2, 0 }, + { "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 1.2f, 300.0f }, -1, 0 }, + { "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 1.2f, 300.0f }, -2, 0 }, + { "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 1.2f, 300.0f }, -2, 0 }, +}; +char *lbl_1_data_E68[5] = { + "m450m01-from1to2", + "m450m01-from2to3", + "m450m01-from3to4", + "m450m01-from4to5", + "m450m01-from5to6", +}; +s32 lbl_1_data_E7C[0x21] = { + DATA_MAKE_NUM(DATADIR_M450, 0x10), + DATA_MAKE_NUM(DATADIR_M450, 0x11), + DATA_MAKE_NUM(DATADIR_M450, 0x12), + DATA_MAKE_NUM(DATADIR_M450, 0x13), + DATA_MAKE_NUM(DATADIR_M450, 0x14), + DATA_MAKE_NUM(DATADIR_M450, 0x15), + DATA_MAKE_NUM(DATADIR_M450, 0x16), + DATA_MAKE_NUM(DATADIR_M450, 0x16), + DATA_MAKE_NUM(DATADIR_M450, 0x17), + DATA_MAKE_NUM(DATADIR_M450, 0x18), + DATA_MAKE_NUM(DATADIR_M450, 0x19), + DATA_MAKE_NUM(DATADIR_M450, 0x1A), + DATA_MAKE_NUM(DATADIR_M450, 0x1B), + DATA_MAKE_NUM(DATADIR_M450, 0x1C), + DATA_MAKE_NUM(DATADIR_M450, 0x1D), + DATA_MAKE_NUM(DATADIR_M450, 0x1E), + DATA_MAKE_NUM(DATADIR_M450, 0x1F), + DATA_MAKE_NUM(DATADIR_M450, 0x16), + DATA_MAKE_NUM(DATADIR_M450, 0x16), + DATA_MAKE_NUM(DATADIR_M450, 0x20), + DATA_MAKE_NUM(DATADIR_M450, 0x21), + DATA_MAKE_NUM(DATADIR_M450, 0x21), + DATA_MAKE_NUM(DATADIR_M450, 0x21), + DATA_MAKE_NUM(DATADIR_M450, 0x21), + DATA_MAKE_NUM(DATADIR_M450, 0x21), + DATA_MAKE_NUM(DATADIR_M450, 0x28), + DATA_MAKE_NUM(DATADIR_M450, 0x28), + DATA_MAKE_NUM(DATADIR_M450, 0x28), + DATA_MAKE_NUM(DATADIR_M450, 0x29), + DATA_MAKE_NUM(DATADIR_M450, 0x2A), + DATA_MAKE_NUM(DATADIR_M450, 0x2A), + DATA_MAKE_NUM(DATADIR_M450, 0x2B), + DATA_MAKE_NUM(DATADIR_M450, 0x2B), +}; +s32 lbl_1_data_F00[0x17] = { + DATA_MAKE_NUM(DATADIR_M450, 0x08), + DATA_MAKE_NUM(DATADIR_M450, 0x09), + DATA_MAKE_NUM(DATADIR_M450, 0x0B), + DATA_MAKE_NUM(DATADIR_M450, 0x0C), + DATA_MAKE_NUM(DATADIR_M450, 0x0E), + DATA_MAKE_NUM(DATADIR_M450, 0x0A), + DATA_MAKE_NUM(DATADIR_M450, 0x0A), + DATA_MAKE_NUM(DATADIR_M450, 0x0A), + DATA_MAKE_NUM(DATADIR_M450, 0x0A), + DATA_MAKE_NUM(DATADIR_M450, 0x0D), + DATA_MAKE_NUM(DATADIR_M450, 0x0D), + DATA_MAKE_NUM(DATADIR_M450, 0x0D), + DATA_MAKE_NUM(DATADIR_M450, 0x0D), + DATA_MAKE_NUM(DATADIR_M450, 0x0D), + DATA_MAKE_NUM(DATADIR_M450, 0x0D), + DATA_MAKE_NUM(DATADIR_M450, 0x0D), + DATA_MAKE_NUM(DATADIR_M450, 0x0D), + DATA_MAKE_NUM(DATADIR_M450, 0x0D), + DATA_MAKE_NUM(DATADIR_M450, 0x0F), + DATA_MAKE_NUM(DATADIR_M450, 0x0F), + DATA_MAKE_NUM(DATADIR_M450, 0x0F), + DATA_MAKE_NUM(DATADIR_M450, 0x0F), + DATA_MAKE_NUM(DATADIR_M450, 0x0F), +}; +s32 lbl_1_data_F5C[4] = { DATA_MAKE_NUM(DATADIR_M450, 0x24), DATA_MAKE_NUM(DATADIR_M450, 0x25), DATA_MAKE_NUM(DATADIR_M450, 0x26), DATA_MAKE_NUM(DATADIR_M450, 0x27) }; +s32 lbl_1_data_F6C[6] = { 0, 0xE10, 0x4650, 0xE10, 0x4650, 0x4650 }; +float lbl_1_data_F84[5] = { 1200.0f, 1500.0f, 0.0f, 200.0f, 300.0f }; +float lbl_1_data_F98[5] = { 1200.0f, 1500.0f, 0.0f, 200.0f, 300.0f }; +float *lbl_1_data_FAC[6] = { NULL, lbl_1_data_F84, NULL, lbl_1_data_F98, NULL, NULL }; +s32 lbl_1_data_FC4[5] = { 5, 4, 3, 2, 0 }; +s32 lbl_1_data_FD8[5] = { 3, 4, 5, 2, 2 }; +s32 lbl_1_data_FEC[5] = { 3, 4, 2, 5, 3 }; +s32 lbl_1_data_1000[5] = { 4, 2, 3, 5, 3 }; +s32 lbl_1_data_1014[0xA] = { 9, 0x10, 0xA, 8, 0xC, 0xD, 0xB, 0xE, 0xF, 1 }; +s32 lbl_1_data_103C[0xA] = { 9, 0x10, 0xA, 8, 0xB, 0xC, 0xE, 0xF, 0xD, 1 }; +s32 lbl_1_data_1064[0xA] = { 8, 0xC, 9, 0xB, 0xA, 0x10, 0xE, 0xF, 0xD, 5 }; +s32 lbl_1_data_108C[0xA] = { 8, 0xC, 9, 0xB, 0xF, 0xA, 0x10, 0xE, 0xD, 6 }; +s32 lbl_1_data_10B4[0xA] = { 8, 0xA, 0x10, 0xC, 9, 0xD, 0xB, 0xE, 0xF, 2 }; +s32 lbl_1_data_10DC[0xA] = { 8, 0xA, 0xC, 0xB, 9, 0xD, 0xE, 0xF, 0x10, 8 }; +s32 lbl_1_data_1104[0xA] = { 8, 0xC, 9, 0x10, 0xF, 0xA, 0xB, 0xE, 0xD, 3 }; +s32 lbl_1_data_112C[0xA] = { 0xB, 8, 0xA, 9, 0xD, 0x10, 0xE, 0xC, 0xF, 5 }; +s32 lbl_1_data_1154[0xA] = { 9, 0xC, 0xA, 8, 0xD, 0x10, 0xB, 0xE, 0xF, 5 }; +s32 lbl_1_data_117C[0xA] = { 9, 0xB, 0xA, 8, 0xF, 0xC, 0x10, 0xE, 0xD, 6 }; +s32 lbl_1_data_11A4[0xA] = { 8, 9, 0x10, 0xE, 0xD, 0xA, 0xC, 0xB, 0xF, 2 }; +s32 lbl_1_data_11CC[0xA] = { 0xB, 8, 0xA, 0xE, 9, 0xD, 0xC, 0xF, 0x10, 8 }; +s32 *lbl_1_data_11F4[4] = { lbl_1_data_FC4, lbl_1_data_FD8, lbl_1_data_FEC, lbl_1_data_1000 }; +s32 *lbl_1_data_1204[3] = { lbl_1_data_1014, lbl_1_data_103C, lbl_1_data_1064 }; +s32 *lbl_1_data_1210[3] = { lbl_1_data_108C, lbl_1_data_10B4, lbl_1_data_10DC }; +s32 *lbl_1_data_121C[3] = { lbl_1_data_1104, lbl_1_data_112C, lbl_1_data_1154 }; +s32 *lbl_1_data_1228[3] = { lbl_1_data_117C, lbl_1_data_11A4, lbl_1_data_11CC }; +s32 lbl_1_data_1234[8] = { 0xFFFFFFFF, 0, 1, 0, 0, 0xFFFFFFFF, 0, 1 }; + +char *lbl_1_data_12A0[4] = { + "m450mex06-s3hook01", + "m450mex06-s3hook02", + "m450mex06-s3hook03", + "m450mex06-s3hook04", +}; + +char *lbl_1_data_135C[9] = { + "m450mex06-s5hook03", + "m450mex06-s5hook02", + "m450mex06-s5hook01", + "m450mex06-s5hook06", + "m450mex06-s5hook05", + "m450mex06-s5hook04", + "m450mex06-s5hook09", + "m450mex06-s5hook08", + "m450mex06-s5hook07", +}; +UnkData1380Struct lbl_1_data_1380 = { lbl_1_data_12A0, 300.0f, 4, 2, -1, 0, 1, 0, 2, NULL, NULL, NULL, NULL, NULL }; +UnkData1380Struct lbl_1_data_13B8 = { lbl_1_data_135C, 200.0f, 9, 3, -1, 0, 1, 0, 8, NULL, NULL, NULL, NULL, NULL }; +UnkData1450Struct lbl_1_data_1450[5] = { + { "m450mex06-s6hook01", { 0.0f, 0.0f, 0.0f }, 0.0f, 0.0f, 0, 0, 0 }, + { "m450mex06-s6hook02", { 0.0f, 0.0f, 0.0f }, 0.0f, 0.0f, 0, 0, 0 }, + { "m450mex06-s6hook03", { 0.0f, 0.0f, 0.0f }, 0.0f, 0.0f, 0, 0, 0 }, + { "m450mex06-s6hook04", { 0.0f, 0.0f, 0.0f }, 0.0f, 0.0f, 0, 0, 0 }, + { "m450mex06-s6hook05", { 0.0f, 0.0f, 0.0f }, 0.0f, 0.0f, 0, 0, 0 }, +}; + +HsfanimStruct00 lbl_1_data_1504 = { + 0x1E, + { 0, 0 }, + 1.0f, + 30.0f, + 360.0f, + { 0.0f, 0.1f, 0.0f }, + 1.0f, + 1.0f, + 50.0f, + 1.08f, + 1, + { + { 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF }, + }, + { + { 0xFF, 0xFF, 0xFF, 0 }, + { 0xFF, 0xFF, 0xFF, 0 }, + { 0xFF, 0xFF, 0xFF, 0 }, + { 0xFF, 0xFF, 0xFF, 0 }, + }, +}; + +void fn_1_12A1C(omObjData *object) +{ + float var_f31; + float var_f30; + + if (object->work[0] != 0) { + if (lbl_1_bss_108 != 0) { + if (--object->work[0] == 0) { + var_f31 = (1500.0f * frandf()) - 750.0f; + var_f30 = (1500.0f * frandf()) - 750.0f; + omSetTra(object, var_f31, 1380.0f, var_f30); + Hu3DMotionTimeSet(object->model[0], 0.0f); + Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], 0x40000002); + } + } + } + else if (Hu3DMotionEndCheck(object->model[0]) != 0) { + object->work[0] = frandmod(0xB4); + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], 0x40000002); + } +} + +void fn_1_12B80(omObjData *object) +{ + s32 var_r30; + s16 var_r29; + + object->work[0] = frandmod(0xB4); + omSetTra(object, 0.0f, 0.0f, 0.0f); + omSetRot(object, 0.0f, 0.0f, 0.0f); + + object->model[0] = fn_1_46C(DATA_MAKE_NUM(DATADIR_M450, 0x23)); + Hu3DModelAttrSet(object->model[0], 0x4001); + Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DModelLayerSet(object->model[0], 1); + object->func = fn_1_12A1C; +} + +void fn_1_12D78(omObjData *object) { } + +void fn_1_12D7C(omObjData *object) +{ + omSetTra(object, 0.0f, 0.0f, 0.0f); + omSetRot(object, 0.0f, 0.0f, 0.0f); + object->model[0] = Hu3DModelCreateFile(lbl_1_data_F00[object->work[0]]); + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], 0x40000002); + object->func = fn_1_12D78; +} + +void fn_1_12E5C(s32 var_r30, s32 var_r29, s32 var_r31) +{ + Vec sp8 = lbl_1_data_1450[var_r30].unk_04; + + VECAdd(&lbl_1_data_1450[var_r29].unk_04, &sp8, &sp8); + VECScale(&sp8, &sp8, 0.5f); + sp8.y = 1501.0f; + Hu3DModelPosSet(lbl_1_bss_1A0->model[var_r31], sp8.x, sp8.y, sp8.z); + Hu3DModelRotSet( + lbl_1_bss_1A0->model[var_r31], 0.0f, atan2d(lbl_1_data_1450[var_r30].unk_04.x - sp8.x, lbl_1_data_1450[var_r30].unk_04.z - sp8.z), 0.0f); + Hu3DModelScaleSet( + lbl_1_bss_1A0->model[var_r31], 1.0f, 1.0f, VECDistance(&lbl_1_data_1450[var_r30].unk_04, &lbl_1_data_1450[var_r29].unk_04) / 1000.0f); + Hu3DMotionTimeSet(lbl_1_bss_1A0->model[var_r31], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31], 0x40000003); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31], 1); +} + +void fn_1_130A4(Vec *arg0, s32 var_r30) +{ + Hu3DModelPosSet(lbl_1_bss_1A0->model[var_r30], arg0->x, arg0->y, arg0->z); + Hu3DMotionTimeSet(lbl_1_bss_1A0->model[var_r30], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r30], 0x40000003); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r30], 1); + HuAudFXPlay(0x7B7); +} + +void fn_1_13174(UnkData1380Struct *arg0) +{ + s32 var_r30; + s32 var_r27; + + if (arg0->unk_14 != 0) { + arg0->unk_14 = 0; + arg0->unk_18 = 0; + for (var_r30 = 0; var_r30 < arg0->unk_08; var_r30++) { + if (arg0->unk_24[var_r30] >= 0) { + var_r27 = lbl_1_bss_1A0->model[arg0->unk_24[var_r30]]; + MTXIdentity(Hu3DData[var_r27].unk_F0); + if (arg0->unk_08 == 4) { + Hu3DModelRotSet(lbl_1_bss_1A0->model[arg0->unk_24[var_r30]], 0.0f, 90.0f, 0.0f); + } + else { + Hu3DModelRotSet(lbl_1_bss_1A0->model[arg0->unk_24[var_r30]], 0.0f, -90.0f, 0.0f); + } + } + } + } + for (var_r30 = 0; var_r30 < arg0->unk_08; var_r30++) { + if (arg0->unk_18 != 0) { + if (arg0->unk_24[var_r30] < 0) { + fn_1_1D70(lbl_1_bss_1A0->model[0], arg0->unk_00[var_r30], &arg0->unk_30[var_r30], NULL); + } + else { + var_r27 = lbl_1_bss_1A0->model[arg0->unk_24[var_r30]]; + fn_1_1D70(lbl_1_bss_1A0->model[0], arg0->unk_00[var_r30], &arg0->unk_30[var_r30], Hu3DData[var_r27].unk_F0); + } + } + else if (arg0->unk_24[var_r30] >= 0) { + Hu3DModelPosSet(lbl_1_bss_1A0->model[arg0->unk_24[var_r30]], arg0->unk_30[var_r30].x, arg0->unk_30[var_r30].y, arg0->unk_30[var_r30].z); + } + } + for (var_r30 = 0; var_r30 < arg0->unk_08; var_r30++) { + if (arg0->unk_28[var_r30] >= 0) { + omSetTra(lbl_1_bss_144[arg0->unk_28[var_r30]], arg0->unk_30[var_r30].x, arg0->unk_30[var_r30].y, arg0->unk_30[var_r30].z); + } + } +} + +void fn_1_13560(UnkData1380Struct *arg0, s32 *arg1, s32 arg2) +{ + s32 var_r30; + Vec *var_r28; + + arg0->unk_30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0->unk_08 * sizeof(Vec), MEMORY_DEFAULT_NUM); + arg0->unk_34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0->unk_08 * sizeof(Vec), MEMORY_DEFAULT_NUM); + arg0->unk_24 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0->unk_08 * sizeof(s32), MEMORY_DEFAULT_NUM); + arg0->unk_28 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0->unk_08 * sizeof(s32), MEMORY_DEFAULT_NUM); + arg0->unk_2C = arg1; + for (var_r30 = 0; var_r30 < arg0->unk_08; var_r30++) { + arg0->unk_24[var_r30] = *arg1++; + arg0->unk_28[var_r30] = arg2++; + var_r28 = &arg0->unk_34[var_r30]; + var_r28->x = 0.0f; + var_r28->y = 0.0f; + var_r28->z = 0.0f; + } + arg0->unk_10 = arg0->unk_24[*arg1]; + arg0->unk_24[*arg1] = -1; + arg0->unk_28[*arg1] = -1; + fn_1_13174(arg0); + for (var_r30 = 0; var_r30 < arg0->unk_08; var_r30++) { + if (arg0->unk_24[var_r30] >= 0) { + Hu3DModelAttrReset(lbl_1_bss_1A0->model[arg0->unk_24[var_r30]], 1); + } + } +} + +void fn_1_13714(void) +{ + Vec sp8; + s32 var_r31; + s32 var_r30; + + if ((0 > lbl_1_bss_F8) || (NULL == lbl_1_bss_FC)) { + return; + } + VECSubtract(&lbl_1_bss_EC, &lbl_1_bss_FC->unk_30[lbl_1_bss_F8], &sp8); + if (10.0f < VECMag(&sp8)) { + VECNormalize(&sp8, &sp8); + VECScale(&sp8, &sp8, 10.0f); + } + lbl_1_bss_FC->unk_34[lbl_1_bss_F8] = sp8; + VECAdd(&sp8, &lbl_1_bss_FC->unk_30[lbl_1_bss_F8], &lbl_1_bss_FC->unk_30[lbl_1_bss_F8]); + if ((sp8.x == 0.0f) && (sp8.z == 0.0f)) { + for (var_r30 = lbl_1_bss_FC->unk_20, var_r31 = 0; var_r31 < lbl_1_bss_FC->unk_08; var_r31++, var_r30++) { + if ((lbl_1_bss_FC->unk_24[var_r31] >= 0) && (var_r30 != lbl_1_bss_FC->unk_24[var_r31])) { + break; + } + } + if (lbl_1_bss_FC->unk_08 == var_r31) { + lbl_1_bss_FC->unk_1C = 1; + } + lbl_1_bss_FC->unk_30[lbl_1_bss_F8] = lbl_1_bss_EC; + lbl_1_bss_F8 = -1; + lbl_1_bss_FC = NULL; + HuAudFXPlay(0x7B9); + } +} + +void fn_1_139B0(UnkData1380Struct *arg0, s32 arg1) +{ + s32 var_r30; + s32 var_r28; + + arg0->unk_18 = 1; + arg0->unk_24[arg0->unk_08 - 1] = arg1; + for (var_r30 = 0; var_r30 < arg0->unk_08; var_r30++) { + var_r28 = lbl_1_bss_1A0->model[arg0->unk_24[var_r30]]; + fn_1_1D70(lbl_1_bss_1A0->model[0], arg0->unk_00[var_r30], &arg0->unk_30[var_r30], Hu3DData[var_r28].unk_F0); + Hu3DModelPosSet(var_r28, 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(var_r28, 0.0f, 0.0f, 0.0f); + } +} + +void fn_1_13B4C(UnkData1380Struct *arg0) +{ + arg0->unk_14 = 1; +} + +void fn_1_13B58(s32 arg0) +{ + if (arg0 > GWMGTypeGet()) { + GWMGTypeSet(arg0); + } +} + +s32 fn_1_13B90(s32 arg0) +{ + if (arg0 > GWMGTypeGet()) { + return 0; + } + return 1; +} + +void fn_1_13BC4(s32 arg0) +{ + s32 var_r31; + UnkData1380Struct *var_r30; + s16 var_r29; + + nMap = 0; + lbl_1_bss_118 = arg0; + lbl_1_bss_F8 = -1; + lbl_1_bss_FC = NULL; + lbl_1_bss_110 = 1; + lbl_1_bss_304 = lbl_1_data_F6C[arg0]; + var_r30 = NULL; + switch (arg0) { + case 1: + MapObject[nMap++] = lbl_1_bss_144[0]; + break; + case 2: + lbl_1_bss_110 = 2; + var_r30 = &lbl_1_data_1380; + lbl_1_data_1380.unk_14 = 1; + MapObject[nMap++] = lbl_1_bss_144[1]; + break; + case 3: + MapObject[nMap++] = lbl_1_bss_144[2]; + break; + case 4: + lbl_1_bss_110 = 2; + var_r30 = &lbl_1_data_13B8; + lbl_1_data_13B8.unk_14 = 1; + MapObject[nMap++] = lbl_1_bss_144[3]; + break; + case 5: + lbl_1_bss_110 = 3; + MapObject[nMap++] = lbl_1_bss_144[4]; + for (var_r31 = 0; var_r31 < 5; var_r31++) { + MapObject[nMap++] = lbl_1_bss_144[var_r31 + 0x12]; + } + break; + } + fn_1_13B58(arg0); + if (NULL != var_r30) { + for (var_r31 = 0; var_r31 < var_r30->unk_08; var_r31++) { + if (var_r30->unk_28[var_r31] >= 0) { + MapObject[nMap++] = lbl_1_bss_144[var_r30->unk_28[var_r31]]; + } + } + } +} + +void fn_1_13F28(omObjData *object) +{ + Vec sp30; + float var_f31; + + UnkData1450Struct *var_r31; + s32 var_r29; + s32 var_r28; + Vec *var_r27; + Vec *var_r26; + + for (var_r29 = 0; var_r29 < lbl_1_data_1380.unk_08; var_r29++) { + var_r27 = &lbl_1_data_1380.unk_34[var_r29]; + var_r27->x = 0.0f; + var_r27->y = 0.0f; + var_r27->z = 0.0f; + } + for (var_r29 = 0; var_r29 < lbl_1_data_13B8.unk_08; var_r29++) { + var_r26 = &lbl_1_data_13B8.unk_34[var_r29]; + var_r26->x = 0.0f; + var_r26->y = 0.0f; + var_r26->z = 0.0f; + } + fn_1_13714(); + fn_1_13174(&lbl_1_data_1380); + fn_1_13174(&lbl_1_data_13B8); + var_r28 = object->model[6]; + fn_1_1D70(object->model[0], "m450mex06-s3hook06", &sp30, Hu3DData[var_r28].unk_F0); + var_r28 = object->model[7]; + fn_1_1D70(object->model[0], "m450mex06-s3hook05", &sp30, Hu3DData[var_r28].unk_F0); + var_r28 = object->model[17]; + fn_1_1D70(object->model[0], "m450mex06-s5hook11", &sp30, Hu3DData[var_r28].unk_F0); + var_r28 = object->model[18]; + fn_1_1D70(object->model[0], "m450mex06-s5hook10", &sp30, Hu3DData[var_r28].unk_F0); + var_r28 = object->model[19]; + fn_1_1D70(object->model[0], "m450m01-from5to6", &sp30, Hu3DData[var_r28].unk_F0); + for (var_r29 = 0; var_r29 < 5; var_r29++) { + var_r31 = &lbl_1_data_1450[var_r29]; + var_r31->unk_10 = var_r31->unk_04.y; + var_r28 = object->model[var_r29 + 0x14]; + fn_1_1D70(object->model[0], var_r31->unk_00, &var_r31->unk_04, Hu3DData[var_r28].unk_F0); + fn_1_1D18(object->model[var_r29 + 0x14], "m450_s6a1-s6a1hook", &sp30); + VECAdd(&sp30, &var_r31->unk_04, &var_r31->unk_04); + if (1560.0f > var_r31->unk_04.y) { + var_r31->unk_04.y = 1560.0f; + } + omSetTra(lbl_1_bss_144[var_r29 + 0x12], var_r31->unk_04.x, var_r31->unk_04.y, var_r31->unk_04.z); + var_r31->unk_10 = var_r31->unk_04.y - var_r31->unk_10; + if (var_r31->unk_18 != 0) { + if (var_r31->unk_1C != 0) { + var_f31 = Hu3DMotionTimeGet(object->model[var_r29 + 0x14]); + if ((10.0f <= var_f31) && (40.0f >= var_f31)) { + var_r31->unk_10 = 0.0f; + } + if (40.0f <= var_f31) { + Hu3DMotionTimeSet(object->model[var_r29 + 0x14], 10.0f); + if (var_r31->unk_20 != 0) { + var_r31->unk_20 = 0; + } + } + if (((UnkM450Struct5 *)lbl_1_bss_138->data)->unk_10C < 3) { + var_r31->unk_14 += 1.0f; + if (1200.0f < var_r31->unk_14) { + var_r31->unk_1C = 0; + fn_1_1B510(var_r29); + } + } + } + else if (Hu3DMotionEndCheck(object->model[var_r29 + 0x14]) != 0) { + var_r31->unk_18 = 0; + } + } + } +} + +void fn_1_148B0(float arg8, s8 arg0) +{ + Mtx spC; + ModelData *var_r30; + s32 var_r31; + + if (lbl_1_bss_114 == 0) { + if (arg0 == 0x78) { + MTXRotRad(spC, 0x5A, 0.017453292f * arg8); + } + else { + MTXRotRad(spC, 0x58, 0.017453292f * arg8); + } + MTXConcat(spC, lbl_1_bss_88, spC); + for (var_r31 = 0; var_r31 <= 1; var_r31++) { + var_r30 = &Hu3DData[lbl_1_bss_1A0->model[var_r31]]; + MTXCopy(spC, var_r30->unk_F0); + } + fn_1_13F28(lbl_1_bss_1A0); + } +} + +void fn_1_149C0(s8 arg0) +{ + Mtx spC; + s32 var_r31; + ModelData *var_r30; + + lbl_1_bss_114 = 1; + if (arg0 == 0x78) { + MTXRotRad(spC, 0x5A, 1.5707964f); + } + else { + MTXRotRad(spC, 0x58, 1.5707964f); + } + MTXConcat(spC, lbl_1_bss_88, lbl_1_bss_88); + for (var_r31 = 0; var_r31 <= 1; var_r31++) { + var_r30 = &Hu3DData[lbl_1_bss_1A0->model[var_r31]]; + MTXCopy(lbl_1_bss_88, var_r30->unk_F0); + } + fn_1_13F28(lbl_1_bss_1A0); +} + +void fn_1_14AB8(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 5; var_r31++) { + fn_1_1D70(lbl_1_bss_1A0->model[0], lbl_1_data_E68[var_r31], &lbl_1_bss_4C[var_r31], NULL); + } +} + +void fn_1_14BC8(UnkDataA80Struct *arg0, s32 arg1) +{ + s32 var_r31; + + lbl_1_bss_104 = arg0; + lbl_1_bss_100 = arg1; + for (var_r31 = 0; var_r31 < lbl_1_bss_100; var_r31++, arg0++) { + arg0->unk_10 = -1; + arg0->unk_28 = 1; + } +} + +void fn_1_14C28(void) +{ + UnkDataA80Struct *var_r31; + s32 var_r30; + + if (NULL != lbl_1_bss_104) { + for (var_r31 = lbl_1_bss_104, var_r30 = 0; var_r30 < lbl_1_bss_100; var_r30++, var_r31++) { + if (var_r31->unk_10 >= 0) { + fn_1_66A0(var_r31->unk_10); + } + if (var_r31->unk_24 >= 0) { + HuAudFXStop(var_r31->unk_24); + var_r31->unk_24 = -2; + } + } + } +} + +void fn_1_14CE8(omObjData *object) +{ + UnkDataA80Struct *var_r31; + s32 var_r25; + s32 var_r22; + s32 var_r19; + s32 var_r18; + + if (NULL != lbl_1_bss_104) { + var_r19 = 1; + var_r18 = 1; + var_r25 = 0; + for (var_r31 = lbl_1_bss_104, var_r22 = 0; var_r22 < lbl_1_bss_100; var_r22++, var_r31++) { + if ((var_r18 != 0) && (var_r31->unk_28 != 0)) { + var_r25++; + var_r18 = 0; + var_r31->unk_28 = 0; + var_r31->unk_14 = var_r31->unk_18.x; + fn_1_1D70(lbl_1_bss_1A0->model[0], var_r31->unk_00, &var_r31->unk_04, NULL); + var_r31->unk_10 = fn_1_69F8(NULL, &var_r31->unk_14, 0x40); + } + else if (var_r31->unk_10 >= 0) { + var_r25++; + var_r31->unk_14 += var_r31->unk_18.y; + if (0.0f > var_r31->unk_14) { + var_r31->unk_14 += 360.0f; + } + if (360.0f <= var_r31->unk_14) { + var_r31->unk_14 -= 360.0f; + } + if ((lbl_1_bss_308 & 1) == 0) { + fn_1_6798(var_r31->unk_10, 1, &var_r31->unk_04, 0.0f, var_r31->unk_18.z, var_r31->unk_04.y); + if ((var_r19 != 0) && (var_r31->unk_24 < 0) && (var_r31->unk_24 > -2)) { + var_r19 = 0; + var_r31->unk_24 = HuAudFXEmiterPlay(var_r31->unk_18.z == 350.0f ? 0x7BF : 0x7AD, &var_r31->unk_04); + } + } + if (fn_1_66DC(var_r31->unk_10) != 0) { + var_r31->unk_10 = -1; + } + } + } + if (var_r25 == 0) { + lbl_1_bss_104 = NULL; + } + } + fn_1_13F28(object); + fn_1_186A8(); +} + +void fn_1_15308(omObjData *object) +{ + s32 var_r30; + s32 **var_r22; + + lbl_1_bss_104 = NULL; + MTXIdentity(lbl_1_bss_88); + omSetTra(object, 0.0f, 0.0f, 0.0f); + omSetRot(object, 0.0f, 0.0f, 0.0f); + for (var_r30 = 0; var_r30 < 0x21; var_r30++) { + object->model[var_r30] = Hu3DModelCreateFile(lbl_1_data_E7C[var_r30]); + Hu3DModelAttrSet(object->model[var_r30], 0x4001); + Hu3DModelAttrSet(object->model[var_r30], 0x40000001); + Hu3DModelAttrReset(object->model[var_r30], 0x40000002); + Hu3DModelLayerSet(object->model[var_r30], 0); + Hu3DModelPosSet(object->model[var_r30], 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(object->model[var_r30], 0.0f, 0.0f, 0.0f); + if (var_r30 != 1) { + Hu3DModelShadowMapSet(object->model[var_r30]); + } + } + Hu3DMotionSpeedSet(object->model[1], 0.1f); + switch (GWPlayerCfg[lbl_1_bss_120].diff) { + case 0: + var_r22 = lbl_1_data_1204; + break; + case 1: + var_r22 = lbl_1_data_1210; + break; + case 2: + var_r22 = lbl_1_data_121C; + break; + case 3: + default: + var_r22 = lbl_1_data_1228; + break; + } + fn_1_13560(&lbl_1_data_1380, lbl_1_data_11F4[frandmod(4)], 5); + fn_1_13560(&lbl_1_data_13B8, var_r22[frandmod(3)], 9); + fn_1_14AB8(); + + for (var_r30 = 0; var_r30 <= 1; var_r30++) { + Hu3DModelAttrReset(object->model[var_r30], 1); + } + Hu3DModelAttrReset(object->model[6], 1); + Hu3DModelAttrReset(object->model[17], 1); + Hu3DModelAttrReset(object->model[19], 1); + for (var_r30 = 0; var_r30 < 5; var_r30++) { + Hu3DModelAttrSet(object->model[var_r30 + 0x14], 0x40000002); + Hu3DModelAttrReset(object->model[var_r30 + 0x14], 0x40000001); + Hu3DModelAttrReset(object->model[var_r30 + 0x14], 1); + } + object->func = fn_1_14CE8; +} + +float fn_1_15B48(s32 arg0, float arg8, float arg9) +{ + return (arg9 + (arg8 * (arg0 - 1))) / arg0; +} + +void fn_1_15BAC(Vec *arg0, Vec *arg1, float arg8, s32 arg2, float *arg3, float *arg4) +{ + Vec sp14; + + VECSubtract(arg1, arg0, &sp14); + if (360.0f <= arg8) { + arg8 -= 360.0f; + } + else if (0.0f > arg8) { + arg8 += 360.0f; + } + if (360.0f <= arg8) { + arg8 -= 360.0f; + } + else if (0.0f > arg8) { + arg8 += 360.0f; + } + if (360.0f <= arg8) { + arg8 -= 360.0f; + } + else if (0.0f > arg8) { + arg8 += 360.0f; + } + *arg3 = (atan2d(sp14.z, sp14.x)) - 90.0; + *arg4 = atan2d(sp14.y, sqrtf((sp14.x * sp14.x) + (sp14.z * sp14.z))); + if (arg2 == 0) { + *arg3 *= -1.0f; + } + if (arg2 != 0) { + *arg3 += arg8; + } + else { + *arg3 -= arg8; + } + if (180.0f <= *arg3) { + *arg3 -= 360.0f; + } + else if (-180.0f > *arg3) { + *arg3 += 360.0f; + } + if (180.0f <= *arg3) { + *arg3 -= 360.0f; + } + else if (-180.0f > *arg3) { + *arg3 += 360.0f; + } + if (180.0f <= *arg3) { + *arg3 -= 360.0f; + } + else if (-180.0f > *arg3) { + *arg3 += 360.0f; + } + if (60.0f <= *arg3) { + *arg3 = 60.0f; + } + if (-60.0f >= *arg3) { + *arg3 = -60.0f; + } + if (45.0f <= *arg4) { + *arg4 = 45.0f; + } + if (-45.0f >= *arg4) { + *arg4 = -45.0f; + } +} + +void fn_1_160AC(UnkM450Struct5 *arg0, omObjData *object, Vec *arg2) +{ + float spC; + float sp8; + UnkData5CCStruct *var_r30; + + arg0->unk_FC |= 0x8000; + var_r30 = &lbl_1_data_5CC[arg0->unk_11C]; + if (NULL == arg2) { + spC = 0.0f; + sp8 = 0.0f; + } + else { + fn_1_15BAC(&arg0->unk_00.unk_6C, arg2, arg0->unk_00.unk_9C, var_r30->unk_08, &spC, &sp8); + } + arg0->unk_C8 = fn_1_15B48(10, arg0->unk_C8, spC); + arg0->unk_CC = fn_1_15B48(10, arg0->unk_CC, sp8); + Hu3DMotionForceSet(object->model[0], var_r30->unk_00, var_r30->unk_04, arg0->unk_C8); + Hu3DMotionForceSet(object->model[0], var_r30->unk_00, 0x200, var_r30->unk_0C - arg0->unk_CC); +} + +void fn_1_16280(UnkM450Struct5 *arg0, omObjData *object) +{ + UnkData5CCStruct *var_r31; + + if (arg0->unk_FC & 0x8000) { + arg0->unk_FC &= ~0x8000; + var_r31 = &lbl_1_data_5CC[arg0->unk_11C]; + Hu3DMotionNoMotReset(object->model[0], var_r31->unk_00, var_r31->unk_04); + Hu3DMotionNoMotReset(object->model[0], var_r31->unk_00, 0x200); + } +} + +Vec *fn_1_16314(s32 arg0) +{ + UnkData1380Struct *var_r31; + s32 var_r30; + + var_r31 = &lbl_1_data_1380; + for (var_r30 = 0; var_r30 < var_r31->unk_08; var_r30++) { + if (arg0 == var_r31->unk_24[var_r30]) { + return &var_r31->unk_30[var_r30]; + } + } + return var_r31->unk_30; +} + +void fn_1_16378(omObjData *object) +{ + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + + UnkM450Struct4 *var_r31; + s32 var_r30; + + var_r31 = object->data; + var_r31->unk_48 += 0.98f; + if (1555.0f < var_r31->unk_00.y) { + var_r31->unk_00.y -= var_r31->unk_48; + } + if (1555.0f >= var_r31->unk_00.y) { + if (10.0f < var_r31->unk_48) { + var_r31->unk_48 = 10.0f; + } + var_r31->unk_00.y = 1555.0f; + if (0.0f > (var_r31->unk_48 / 1.5f)) { + var_f30 = -(var_r31->unk_48 / 1.5f); + } + else { + var_f30 = var_r31->unk_48 / 1.5f; + } + var_r31->unk_48 = -var_f30; + if (0.0f > var_r31->unk_48) { + var_f29 = -var_r31->unk_48; + } + else { + var_f29 = var_r31->unk_48; + } + if (1.0f < var_f29) { + var_r31->unk_00.y += 1.0f; + } + if (var_r31->unk_74 != 0) { + var_r31->unk_74 = 0; + omVibrate(lbl_1_bss_120, 0xC, 4, 2); + HuAudFXPlay(0x7AE); + } + } + if (Hu3DMotionEndCheck(object->model[0]) != 0) { + var_r31->unk_78 = 1; + } + if ((var_r31->unk_74 == 0) && (lbl_1_bss_1A4->work[0] > 0x3FB)) { + var_r31->unk_78 = 1; + } + if ((var_r31->unk_74 == 0) && (lbl_1_bss_1A4->work[0] == 0x3E8)) { + var_r31->unk_78 = 1; + } + if (var_r31->unk_78 != 0) { + var_r31->unk_50 = var_r31->unk_50 - 1.0f; + if ((lbl_1_bss_308 & 1) != 0) { + for (var_r30 = 0; var_r30 < 2; var_r30++) { + Hu3DModelAttrSet(object->model[var_r30], 1); + } + } + else { + for (var_r30 = 0; var_r30 < 2; var_r30++) { + Hu3DModelAttrReset(object->model[var_r30], 1); + } + } + if (0.0f > var_r31->unk_50) { + Hu3DModelShadowReset(object->model[0]); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + Hu3DModelAttrSet(object->model[var_r30], 1); + } + fn_1_24(0x1000, object->model[0]); + fn_1_24(0x2000, object->model[1]); + omDelObjEx(lbl_1_bss_33C, object); + return; + } + } + if (var_r31->unk_78 == 0) { + for (var_r30 = 0; var_r30 < 1; var_r30++) { + if (NULL == lbl_1_bss_E8[var_r30]) { + lbl_1_bss_E8[var_r30] = var_r31; + break; + } + } + } + var_f31 = (var_r31->unk_00.y - 1555.0f) / 300.0f; + if (1.0f < var_f31) { + var_f31 = 1.0f; + } + var_f31 = 1.0f - var_f31; + var_f31 = 1.0f; + sp8 = *fn_1_16314(var_r31->unk_70); + VECAdd(&var_r31->unk_64, &sp8, &sp8); + var_r31->unk_00.x += var_f31 * (sp8.x - var_r31->unk_00.x); + var_r31->unk_00.z += var_f31 * (sp8.z - var_r31->unk_00.z); + omSetTra(object, var_r31->unk_00.x, var_r31->unk_00.y, var_r31->unk_00.z); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + Hu3DModelPosSet(object->model[var_r30], var_r31->unk_00.x, var_r31->unk_00.y, var_r31->unk_00.z); + } +} + +void fn_1_16910(omObjData *object) +{ + UnkM450Struct4 *var_r30; + s32 var_r27; + s32 var_r26; + + var_r30 = object->data; + var_r30->unk_48 = 0.0f; + var_r30->unk_50 = 30.0f; + var_r26 = fn_1_AC(0x1000); + if (var_r26 < 0) { + object->model[0] = Hu3DModelLink(lbl_1_bss_2C[0]); + } + else { + object->model[0] = var_r26; + } + var_r26 = fn_1_AC(0x2000); + if (var_r26 < 0) { + object->model[1] = Hu3DModelLink(lbl_1_bss_2C[1]); + } + else { + object->model[1] = var_r26; + } + for (var_r27 = 0; var_r27 < 2; var_r27++) { + Hu3DModelAttrSet(object->model[var_r27], 1); + Hu3DModelAttrReset(object->model[var_r27], 0x40000003); + Hu3DModelLayerSet(object->model[var_r27], 4); + Hu3DMotionTimeSet(object->model[var_r27], 0.0f); + Hu3DModelPosSet(object->model[var_r27], var_r30->unk_00.x, var_r30->unk_00.y, var_r30->unk_00.z); + Hu3DModelRotSet(object->model[var_r27], 0.0f, 0.0f, 0.0f); + } + omSetTra(object, var_r30->unk_00.x, var_r30->unk_00.y, var_r30->unk_00.z); + omSetRot(object, 0.0f, 0.0f, 0.0f); + Hu3DModelShadowSet(object->model[0]); + Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[1], 1); + object->func = fn_1_16378; +} + +void fn_1_16BC4(Vec *arg0, Vec *arg1, s32 arg2) +{ + UnkData1380Struct *spC; + + UnkM450Struct4 *var_r31; + s32 var_r30; + omObjData *var_r29; + + for (var_r30 = 0; var_r30 < 2; var_r30++) { + if (lbl_1_data_1CC[var_r30 * 2] == 0x3E) { + HuAudFXPlay(lbl_1_data_1CC[(var_r30 * 2) + 1]); + break; + } + } + var_r29 = omAddObjEx(lbl_1_bss_33C, 0x6A, 2, 0, -1, fn_1_16910); + var_r29->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM450Struct4), MEMORY_DEFAULT_NUM); + spC = &lbl_1_data_1380; + var_r31 = var_r29->data; + var_r31->unk_74 = 1; + var_r31->unk_78 = 0; + var_r31->unk_7C = 0; + var_r31->unk_70 = arg2; + var_r31->unk_00 = *arg0; + var_r31->unk_64 = *arg1; +} + +void fn_1_16CF4(omObjData *object) +{ + float spC; + float sp8; + + UnkM450Struct4 *var_r31 = object->data; + UnkM450Struct5 *var_r30 = lbl_1_bss_138->data; + spC = var_r30->unk_00.unk_6C.x - var_r31->unk_00.x; + sp8 = var_r30->unk_00.unk_6C.z - var_r31->unk_00.z; + var_r31->unk_00.y += (0.1f * (1505.0f - var_r31->unk_00.y)); + if ((lbl_1_bss_1A4->work[0] > 0x3FB) || (lbl_1_bss_1A4->work[0] == 0x3E8)) { + var_r31->unk_78 = 1; + } + if (var_r31->unk_78 != 0) { + var_r31->unk_40 = var_r31->unk_40 - 0.1f; + if (0.0f > var_r31->unk_40) { + Hu3DModelAttrSet(*object->model, 1); + fn_1_24(0x3000, object->model[0]); + omDelObjEx(lbl_1_bss_33C, object); + return; + } + } + else { + var_r31->unk_50 += 1.0f; + if (var_r31->unk_7C != 0) { + if (60.0f < var_r31->unk_50) { + var_r31->unk_78 = 1; + } + var_r31->unk_00.x += (0.1f * (var_r30->unk_00.unk_6C.x - var_r31->unk_00.x)); + var_r31->unk_00.z += (0.1f * (var_r30->unk_00.unk_6C.z - var_r31->unk_00.z)); + var_r31->unk_44 *= 1.01f; + } + else { + if (240.0f < var_r31->unk_50) { + var_r31->unk_78 = 1; + } + var_r31->unk_00.x += (11.0 * sind(var_r31->unk_3C)); + var_r31->unk_00.z += (11.0 * cosd(var_r31->unk_3C)); + var_r31->unk_3C = fn_1_1E20( + var_r31->unk_3C, atan2d(var_r30->unk_00.unk_6C.x - var_r31->unk_00.x, var_r30->unk_00.unk_6C.z - var_r31->unk_00.z), 0.05f); + } + } + if ((var_r31->unk_78 == 0) && (1605.0f > var_r31->unk_00.y)) { + s32 var_r27; + for (var_r27 = 0; var_r27 < 1; var_r27++) { + if (NULL == lbl_1_bss_E4[var_r27]) { + lbl_1_bss_E4[var_r27] = var_r31; + break; + } + } + } + Hu3DModelTPLvlSet(object->model[0], var_r31->unk_40); + omSetTra(object, var_r31->unk_00.x, var_r31->unk_00.y, var_r31->unk_00.z); + omSetSca(object, var_r31->unk_44, var_r31->unk_44, var_r31->unk_44); +} + +void fn_1_171C4(omObjData *object) +{ + UnkM450Struct4 *var_r29; + s16 var_r26; + + var_r29 = object->data; + var_r29->unk_40 = 1.0f; + var_r29->unk_44 = 1.0f; + var_r29->unk_50 = 0.0f; + var_r26 = fn_1_AC(0x3000); + if (var_r26 < 0) { + object->model[0] = Hu3DModelLink(lbl_1_bss_2C[2]); + } + else { + object->model[0] = var_r26; + } + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrReset(object->model[0], 0x40000002); + Hu3DModelLayerSet(object->model[0], 4); + omSetTra(object, var_r29->unk_00.x, var_r29->unk_00.y, var_r29->unk_00.z); + omSetRot(object, 0.0f, 0.0f, 0.0f); + Hu3DModelAttrReset(object->model[0], 1); + object->func = fn_1_16CF4; +} + +void fn_1_17360(Vec *arg0, float arg8) +{ + omObjData *var_r29; + s32 var_r30; + UnkM450Struct4 *var_r31; + + for (var_r30 = 0; var_r30 < 2; var_r30++) { + if (lbl_1_data_1CC[var_r30 * 2] == 0x3E) { + HuAudFXPlay(lbl_1_data_1CC[var_r30 * 2]); + break; + } + } + var_r29 = omAddObjEx(lbl_1_bss_33C, 0x6B, 1, 0, -1, fn_1_171C4); + var_r29->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM450Struct4), MEMORY_DEFAULT_NUM); + var_r31 = var_r29->data; + var_r31->unk_78 = 0; + var_r31->unk_7C = 0; + var_r31->unk_00 = *arg0; + var_r31->unk_3C = arg8; + HuAudFXPlay(0x7AF); +} + +void fn_1_17474(omObjData *object) +{ + Mtx spB0; + Mtx sp80; + Mtx sp50; + Vec sp14; + Vec sp8; + float var_f31; + + UnkM450Struct4 *var_r31 = object->data; + if (var_r31->unk_74 != 0) { + fn_1_1D18(var_r31->unk_54, "g000m0-itemhook_R", &sp8); + if (Hu3DMotionShiftIDGet(var_r31->unk_54) < 0) { + Hu3DModelAttrReset(object->model[0], 1); + if (165.0f <= Hu3DMotionTimeGet(var_r31->unk_54)) { + HuAudFXPlay(0x7B0); + var_r31->unk_74 = 0; + var_r31->unk_3C = 0.0f; + var_r31->unk_4C = VECDistance(&sp8, &var_r31->unk_0C); + Hu3DModelObjMtxGet(var_r31->unk_58, "g000i00-itemhook_A", sp80); + Hu3DModelObjMtxGet(var_r31->unk_54, "g000m0-itemhook_R", sp50); + MTXConcat(sp80, sp50, sp80); + var_r31->unk_00.x = sp80[0][3]; + var_r31->unk_00.y = sp80[1][3]; + var_r31->unk_00.z = sp80[2][3]; + Hu3DModelHookObjReset(var_r31->unk_54, "g000m0-itemhook_R"); + MTXIdentity(Hu3DData[object->model[0]].unk_F0); + Hu3DModelAttrReset(object->model[0], 0x8000); + } + } + var_r31->unk_0C = sp8; + } + if (var_r31->unk_74 == 0) { + if (lbl_1_bss_1A4->work[0] > 0x40D) { + var_r31->unk_40 = var_r31->unk_40 - 0.05f; + } + var_f31 = var_r31->unk_4C; + sp14.x = 0.0f; + sp14.y = 0.0f; + sp14.z = var_f31; + MTXRotRad(spB0, 0x59, 0.017453292f * (var_r31->unk_5C + var_r31->unk_60)); + MTXMultVec(spB0, &sp14, &sp14); + VECAdd(&var_r31->unk_00, &sp14, &var_r31->unk_00); + var_r31->unk_00.y += 0.1f * (1575.0f - var_r31->unk_00.y); + var_r31->unk_4C += 0.05f * (30.0f - var_r31->unk_4C); + var_r31->unk_3C += var_r31->unk_4C; + var_r31->unk_60 += 0.08f * var_r31->unk_4C; + if (360.0f <= var_r31->unk_60) { + var_r31->unk_60 = 360.0f; + } + sp14.x = 0.0f; + sp14.y = 1575.0f; + sp14.z = 0.0f; + if ((360.0f <= var_r31->unk_60) && (1500.0f < VECDistance(&sp14, &var_r31->unk_00))) { + var_r31->unk_40 = var_r31->unk_40 - 0.05f; + if (0.0f > var_r31->unk_40) { + Hu3DModelShadowReset(object->model[0]); + Hu3DModelAttrSet(object->model[0], 1); + fn_1_24(0x4000, object->model[0]); + omDelObjEx(lbl_1_bss_33C, object); + return; + } + } + if (1.0f <= var_r31->unk_40) { + s32 var_r28; + for (var_r28 = 0; var_r28 < 2; var_r28++) { + if (NULL == lbl_1_bss_DC[var_r28]) { + lbl_1_bss_DC[var_r28] = var_r31; + break; + } + } + } + omSetTra(object, var_r31->unk_00.x, var_r31->unk_00.y, var_r31->unk_00.z); + omSetRot(object, 0.0f, var_r31->unk_3C, 0.0f); + } + Hu3DModelShadowDispOn(object->model[0]); + Hu3DModelTPLvlSet(object->model[0], var_r31->unk_40); +} + +void fn_1_17970(s32 arg0, s32 arg1, float arg8) +{ + omObjData *var_r31; + UnkM450Struct4 *var_r30; + s16 var_r26; + + HuAudFXPlay(0x3A); + var_r31 = omAddObjEx(lbl_1_bss_33C, 0x6C, 1, 0, -1, fn_1_17474); + var_r31->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM450Struct4), MEMORY_DEFAULT_NUM); + var_r30 = var_r31->data; + var_r30->unk_40 = 1.0f; + var_r30->unk_50 = 0.0f; + var_r30->unk_74 = 1; + var_r30->unk_78 = 0; + var_r30->unk_7C = 0; + var_r30->unk_54 = arg0; + var_r30->unk_58 = arg1; + var_r30->unk_5C = arg8; + var_r30->unk_60 = 0.0f; + + var_r26 = fn_1_AC(0x4000); + if (var_r26 < 0) { + var_r31->model[0] = Hu3DModelLink(lbl_1_bss_2C[3]); + } + else { + var_r31->model[0] = var_r26; + } + Hu3DModelAttrSet(var_r31->model[0], 1); + Hu3DModelAttrSet(var_r31->model[0], 0x40000001); + Hu3DModelAttrReset(var_r31->model[0], 0x40000002); + Hu3DModelLayerSet(var_r31->model[0], 4); + omSetTra(var_r31, 0.0f, 0.0f, 0.0f); + omSetRot(var_r31, 0.0f, 0.0f, 0.0f); + Hu3DModelHookSet(var_r30->unk_54, "g000m0-itemhook_R", var_r31->model[0]); + Hu3DModelShadowSet(var_r31->model[0]); + Hu3DModelShadowDispOff(var_r31->model[0]); +} + +void fn_1_17BBC(omObjData *object) +{ + Mtx sp84; + Vec sp18; + Vec spC; + float sp8; + float var_f31; + float var_f30; + float var_f28; + + UnkM450Struct4 *var_r31; + s32 var_r27; + UnkM450Struct3 *var_r22; + + var_r31 = object->data; + var_r22 = lbl_1_bss_134->data; + if (var_r31->unk_74 != 0) { + fn_1_1D18(var_r31->unk_54, "g000m0-itemhook_R", &spC); + if ((Hu3DMotionShiftIDGet(var_r31->unk_54) < 0) && (165.0f <= Hu3DMotionTimeGet(var_r31->unk_54))) { + HuAudFXPlay(0x7B0); + var_r31->unk_74 = 0; + var_r31->unk_3C = 0.0f; + var_r31->unk_4C = VECDistance(&spC, &var_r31->unk_0C); + fn_1_1D18(var_r31->unk_54, "g000m0-itemhook_R", &var_r31->unk_00); + Hu3DModelHookObjReset(var_r31->unk_54, "g000m0-itemhook_R"); + MTXIdentity(Hu3DData[*object->model].unk_F0); + Hu3DModelAttrReset(*object->model, 0x8000); + var_f31 = var_r31->unk_00.x - var_r31->unk_24.x; + var_f30 = var_r31->unk_00.z - var_r31->unk_24.z; + var_r31->unk_30.x = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)) / 2; + var_r31->unk_30.z = 150.0f + var_r31->unk_00.y; + VECAdd(&var_r31->unk_00, &var_r31->unk_24, &var_r31->unk_24); + VECScale(&var_r31->unk_24, &var_r31->unk_24, 0.5f); + var_r31->unk_24.y = var_r31->unk_00.y; + var_r31->unk_30.y = atan2d(var_r31->unk_00.x - var_r31->unk_24.x, var_r31->unk_00.z - var_r31->unk_24.z); + } + var_r31->unk_0C = spC; + if ((var_r31->unk_74 != 0) && (var_r22->unk_150 >= 0xBCE)) { + Hu3DModelShadowReset(object->model[0]); + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelHookObjReset(var_r31->unk_54, "g000m0-itemhook_R"); + fn_1_24(0x4000, object->model[0]); + omDelObjEx(lbl_1_bss_33C, object); + return; + } + } + if (var_r31->unk_74 == 0) { + if (lbl_1_bss_1A4->work[0] > 0x415) { + var_r31->unk_40 = var_r31->unk_40 - 0.05f; + } + var_f28 = 1575.0f; + if (180.0f < var_r31->unk_60) { + var_f28 = var_r31->unk_30.z; + } + var_r31->unk_00.y += (0.05f * (var_f28 - var_r31->unk_00.y)); + var_r31->unk_4C += 0.05f * (30.0f - var_r31->unk_4C); + var_r31->unk_3C += var_r31->unk_4C; + var_r31->unk_60 += 0.08f * var_r31->unk_4C; + if (360.0f <= var_r31->unk_60) { + var_r31->unk_60 = 360.0f; + VECAdd(&var_r31->unk_18, &var_r31->unk_00, &var_r31->unk_00); + } + else { + spC = var_r31->unk_00; + sp18.x = (0.6666667f * var_r31->unk_30.x) * sind(var_r31->unk_60); + sp18.z = var_r31->unk_30.x * cosd(var_r31->unk_60); + MTXRotRad(sp84, 0x59, 0.017453292f * var_r31->unk_30.y); + MTXMultVec(sp84, &sp18, &sp18); + var_r31->unk_00.x = var_r31->unk_24.x + sp18.x; + var_r31->unk_00.z = var_r31->unk_24.z + sp18.z; + VECSubtract(&var_r31->unk_00, &spC, &var_r31->unk_18); + } + sp18.x = 0.0f; + sp18.y = 1575.0f; + sp18.z = 0.0f; + if ((360.0f <= var_r31->unk_60) && (1500.0f < VECDistance(&sp18, &var_r31->unk_00))) { + var_r31->unk_40 = var_r31->unk_40 - 0.05f; + if (0.0f > var_r31->unk_40) { + Hu3DModelShadowReset(*object->model); + Hu3DModelAttrSet(*object->model, 1); + fn_1_24(0x4000, object->model[0]); + omDelObjEx(lbl_1_bss_33C, object); + return; + } + } + if (1.0f <= var_r31->unk_40) { + for (var_r27 = 0; var_r27 < 2; var_r27++) { + if (NULL == lbl_1_bss_DC[var_r27]) { + lbl_1_bss_DC[var_r27] = var_r31; + break; + } + } + } + omSetTra(object, var_r31->unk_00.x, var_r31->unk_00.y, var_r31->unk_00.z); + omSetRot(object, 0.0f, var_r31->unk_3C, 0.0f); + omSetSca(object, 1.0f, 1.0f, 1.0f); + } + Hu3DModelShadowDispOn(object->model[0]); + Hu3DModelTPLvlSet(object->model[0], var_r31->unk_40); +} + +void fn_1_18424(s32 arg0, Vec *arg1) +{ + UnkBss358Struct *var_r27; + UnkBss358Struct *var_r28; + UnkBss358Struct *var_r29; + omObjData *var_r31; + s16 var_r24; + s16 var_r25; + s16 var_r26; + UnkM450Struct4 *var_r30; + + var_r31 = omAddObjEx(lbl_1_bss_33C, 0x6C, 1, 0, -1, fn_1_17BBC); + var_r31->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM450Struct4), MEMORY_DEFAULT_NUM); + var_r30 = var_r31->data; + var_r30->unk_54 = arg0; + var_r30->unk_40 = 1.0f; + var_r30->unk_50 = 0.0f; + var_r30->unk_74 = 1; + var_r30->unk_78 = 0; + var_r30->unk_7C = 0; + var_r30->unk_60 = 0.0f; + var_r30->unk_24 = *arg1; + + var_r26 = fn_1_AC(0x4000); + if (var_r26 < 0) { + var_r31->model[0] = Hu3DModelLink(lbl_1_bss_2C[3]); + } + else { + var_r31->model[0] = var_r26; + } + Hu3DModelAttrSet(var_r31->model[0], 1); + Hu3DModelAttrSet(var_r31->model[0], 0x40000001); + Hu3DModelAttrReset(var_r31->model[0], 0x40000002); + Hu3DModelLayerSet(var_r31->model[0], 4); + omSetTra(var_r31, 0.0f, 0.0f, 0.0f); + omSetRot(var_r31, 0.0f, 0.0f, 0.0f); + omSetSca(var_r31, 1.0f, 1.0f, 1.0f); + Hu3DModelHookSet(var_r30->unk_54, "g000m0-itemhook_R", var_r31->model[0]); + Hu3DModelAttrReset(var_r31->model[0], 1); + Hu3DModelShadowSet(var_r31->model[0]); + Hu3DModelShadowDispOff(var_r31->model[0]); +} + +void fn_1_186A8(void) +{ + Vec sp14[3]; + Vec sp8; + float var_f31; + + s32 var_r31; + UnkM450Struct5 *var_r30; + UnkM450Struct3 *var_r29; + HsfBuffer *var_r28; + s32 var_r27; + ModelData *var_r26; + HsfObject *var_r25; + + if (lbl_1_bss_C4 >= 0) { + var_r30 = lbl_1_bss_138->data; + var_r29 = lbl_1_bss_134->data; + switch (lbl_1_bss_C4) { + case 0x1388: + for (var_r31 = 0x19; var_r31 <= 0x1B; var_r31++) { + if (Hu3DMotionEndCheck(lbl_1_bss_1A0->model[var_r31]) == 0) { + return; + } + } + lbl_1_bss_C4++; + lbl_1_bss_C8 = 0.0f; + Hu3DModelPosSet(lbl_1_bss_1A0->model[28], 0.0f, 1501.0f, 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[28], 1); + Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[28], 0.0f); + var_r26 = &Hu3DData[lbl_1_bss_1A0->model[28]]; + var_r25 = var_r26->hsfData->object; + var_r28 = var_r25->data.vertex; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + ((Vec *)var_r28->data)[var_r31].x = lbl_1_data_1450[lbl_1_bss_B8[var_r31]].unk_04.x; + ((Vec *)var_r28->data)[var_r31].z = lbl_1_data_1450[lbl_1_bss_B8[var_r31]].unk_04.z; + DCFlushRange(&((Vec *)var_r28->data)[var_r31], sizeof(Vec)); + } + + break; + case 0x1389: + var_f31 = lbl_1_bss_C8 / 30.0f; + if (1.0f < var_f31) { + var_f31 = 1.0f; + } + Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[28], var_f31); + lbl_1_bss_C8 += 1.0f; + if ((120.0f < lbl_1_bss_C8) && (var_r30->unk_00.unk_38 == 0)) { + lbl_1_bss_C4++; + lbl_1_bss_C8 = 0.0f; + var_r27 = 0; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + sp14[var_r31] = lbl_1_data_1450[lbl_1_bss_B8[var_r31]].unk_04; + } + if ((fn_1_1C39C(var_r30) != 0) && (fn_1_1964C(&var_r30->unk_00.unk_6C, sp14) != 0)) { + var_r27++; + var_r30->unk_110 = 0x1D; + var_r30->unk_FC |= 0x20000; + fn_1_130A4(&var_r30->unk_00.unk_6C, 29); + } + if (fn_1_1964C(&var_r29->unk_00.unk_6C, sp14) != 0) { + var_r27++; + var_r29->unk_10C = 0x1E; + var_r29->unk_154 |= 0x8000; + fn_1_130A4(&var_r29->unk_00.unk_6C, 30); + } + if (var_r27 == 0) { + sp8.x = 0.0f; + sp8.y = 0.0f; + sp8.z = 0.0f; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + VECAdd(&sp14[var_r31], &sp8, &sp8); + } + VECScale(&sp8, &sp8, 0.33333334f); + fn_1_130A4(&sp8, 29); + return; + } + } + break; + case 0x138A: + if (45.0f < lbl_1_bss_C8) { + var_f31 = (lbl_1_bss_C8 - 45.0f) / 15.0f; + if (1.0f < var_f31) { + var_f31 = 1.0f; + } + Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[28], 1.0f - var_f31); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[var_r31 + 0x19], 1.0f - var_f31); + } + } + lbl_1_bss_C8 += 1.0f; + if (60.0f <= lbl_1_bss_C8) { + lbl_1_bss_C4 = -1; + Hu3DModelAttrSet(lbl_1_bss_1A0->model[28], 1); + Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[28], 1.0f); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[29], 1); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[30], 1); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + lbl_1_data_1450[lbl_1_bss_B8[0]].unk_1C = 0; + fn_1_1B510(lbl_1_bss_B8[0]); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31 + 0x19], 1); + Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[var_r31 + 0x19], 1.0f); + } + fn_1_1B4C8(var_r30); + return; + } + break; + default: + OSReport("*** thunder attack mode error(%d)!!\n", lbl_1_bss_C4); + break; + } + } +} + +void fn_1_18F30(UnkM450Struct5 *arg0, Vec *arg1) +{ + Vec sp18; + Vec spC; + float var_f31; + float var_f30; + float var_f28; + float var_f27; + + if (NULL != arg1) { + sp18 = *arg1; + var_f27 = arg0->unk_00.unk_C0; + if ((arg0->unk_00.unk_38 == 3) || (arg0->unk_00.unk_38 == 4)) { + var_f27 *= 0.5f; + } + var_f31 = arg0->unk_00.unk_6C.x - sp18.x; + var_f30 = arg0->unk_00.unk_6C.z - sp18.z; + var_f28 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (((sp18.y - 50.0f) < (arg0->unk_00.unk_6C.y + var_f27)) && (arg0->unk_00.unk_BC > var_f28)) { + if (var_f28 == 0.0f) { + var_f31 = 0.0f; + var_f30 = -1.0f; + } + else { + var_f31 /= var_f28; + var_f30 /= var_f28; + } + arg0->unk_00.unk_6C.x = sp18.x + (var_f31 * arg0->unk_00.unk_BC); + arg0->unk_00.unk_6C.z = sp18.z + (var_f30 * arg0->unk_00.unk_BC); + } + if ((arg0->unk_FC & 0x220) == 0) { + spC = arg0->unk_00.unk_6C; + spC.y += var_f27 - arg0->unk_00.unk_BC; + var_f28 = VECDistance(&spC, &sp18); + if ((spC.y < sp18.y) && ((50.0f + arg0->unk_00.unk_BC) > var_f28)) { + arg0->unk_FC |= 0x200; + return; + } + spC = arg0->unk_00.unk_6C; + spC.y += arg0->unk_00.unk_BC; + var_f28 = VECDistance(&spC, &sp18); + if ((50.0f + arg0->unk_00.unk_BC) > var_f28) { + arg0->unk_FC |= 0x20; + } + } + } +} + +void fn_1_192AC(UnkM450Struct5 *arg0, UnkM450Struct4 *arg1) +{ + Vec sp8; + float var_f31; + + if ((NULL != arg1) && (arg0->unk_00.unk_38 == 0) && ((arg0->unk_FC & 0x2000) == 0)) { + sp8 = arg0->unk_00.unk_6C; + sp8.y += arg0->unk_00.unk_BC; + var_f31 = VECDistance(&sp8, &arg1->unk_00); + if ((50.0f + arg0->unk_00.unk_BC) > var_f31) { + arg0->unk_FC |= 0x2000; + arg1->unk_7C = 1; + arg1->unk_50 = 0.0f; + } + } +} + +void fn_1_19390(UnkM450Struct5 *var_r31, UnkM450Struct4 *var_r30) +{ + Vec sp8; + float var_f31; + + if ((NULL != var_r30) && ((var_r31->unk_FC & 0x20) == 0)) { + sp8 = var_r31->unk_00.unk_6C; + sp8.y += var_r31->unk_00.unk_BC; + var_f31 = VECDistance(&sp8, &var_r30->unk_00); + if ((70.0f + var_r31->unk_00.unk_BC) > var_f31) { + var_r31->unk_FC |= 0x20; + } + } +} + +void fn_1_19450(UnkM450Struct5 *var_r31) +{ + s32 var_r30; + + for (var_r30 = 0; var_r30 < 1; var_r30++) { + fn_1_18F30(var_r31, lbl_1_bss_E8[var_r30]); + } + for (var_r30 = 0; var_r30 < 1; var_r30++) { + fn_1_192AC(var_r31, lbl_1_bss_E4[var_r30]); + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + fn_1_19390(var_r31, lbl_1_bss_DC[var_r30]); + } +} + +s32 fn_1_1964C(Vec *arg0, Vec *arg1) +{ + Vec sp74; + Vec sp68; + Vec sp5C; + Vec sp50; + Vec sp44; + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + + VECSubtract(&arg1[1], &arg1[0], &sp74); + VECSubtract(&arg1[2], &arg1[1], &sp68); + VECSubtract(&arg1[0], &arg1[2], &sp5C); + VECCrossProduct(&sp74, &sp68, &sp50); + VECSubtract(arg0, &arg1[0], &sp44); + VECSubtract(arg0, &arg1[1], &sp38); + VECSubtract(arg0, &arg1[2], &sp2C); + VECCrossProduct(&sp74, &sp50, &sp20); + VECCrossProduct(&sp68, &sp50, &sp14); + VECCrossProduct(&sp5C, &sp50, &sp8); + if ((0.0f >= VECDotProduct(&sp20, &sp44)) && (0.0f >= VECDotProduct(&sp14, &sp38)) && (0.0f >= VECDotProduct(&sp8, &sp2C))) { + return 1; + } + return 0; +} + +s32 fn_1_19798(void) +{ + float sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + + UnkM450Struct5 *var_r31 = lbl_1_bss_138->data; + UnkM450Struct3 *var_r30 = lbl_1_bss_134->data; + + var_f31 = var_r31->unk_00.unk_6C.x - var_r30->unk_00.unk_6C.x; + var_f30 = var_r31->unk_00.unk_6C.z - var_r30->unk_00.unk_6C.z; + var_f28 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if ((150.0f + var_r31->unk_00.unk_BC) > var_f28) { + if (var_f28 == 0.0f) { + var_f31 = 0.0f; + var_f30 = -1.0f; + } + else { + var_f31 /= var_f28; + var_f30 /= var_f28; + } + var_r31->unk_FC |= 0x200000; + if (var_r30->unk_150 != 0xBC9) { + var_r31->unk_FC |= 4; + } + var_r31->unk_00.unk_6C.x = var_r30->unk_00.unk_6C.x + (var_f31 * (150.0f + var_r31->unk_00.unk_BC)); + var_r31->unk_00.unk_6C.z = var_r30->unk_00.unk_6C.z + (var_f30 * (150.0f + var_r31->unk_00.unk_BC)); + return 1; + } + return 0; +} + +s32 fn_1_19A10(WorkPlayerOld *arg0, Vec *arg1) +{ + float var_f31; + float var_f30; + float var_f28; + + var_f31 = arg1->x - arg0->unk_6C.x; + var_f30 = arg1->z - arg0->unk_6C.z; + var_f28 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (10.0f <= var_f28) { + var_f31 /= var_f28; + var_f30 /= var_f28; + } + else { + var_f31 = 0.0f; + var_f30 = 0.0f; + return 1; + } + arg0->unk_20 = 72.0f * var_f31; + arg0->unk_24 = 72.0f * -var_f30; + return 0; +} + +void fn_1_19C18(omObjData *object) +{ + UnkM450Struct5 *var_r31 = object->data; + + if ((var_r31->unk_FC & 1) != 0) { + if (1250.0f < var_r31->unk_00.unk_6C.x) { + var_r31->unk_00.unk_6C.x = 1250.0f; + } + if (-1250.0f > var_r31->unk_00.unk_6C.x) { + var_r31->unk_00.unk_6C.x = -1250.0f; + } + if (1250.0f < var_r31->unk_00.unk_6C.z) { + var_r31->unk_00.unk_6C.z = 1250.0f; + } + if (-1250.0f > var_r31->unk_00.unk_6C.z) { + var_r31->unk_00.unk_6C.z = -1250.0f; + } + } +} + +void fn_1_19CE0(omObjData *object) +{ + UnkM450Struct5 *var_r31 = object->data; + + if (var_r31->unk_FC & 0x10) { + var_r31->unk_FC |= 0x42; + Hu3DMotionShiftSet(object->model[0], object->motion[10], 0.0f, 8.0f, 0x40000002); + } + if (var_r31->unk_FC & 0x100) { + var_r31->unk_FC |= 0x402; + Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DMotionSet(object->model[0], object->motion[14]); + Hu3DMotionTimeSet(object->model[0], 48.0f); + } + if (var_r31->unk_FC & 0x1000) { + var_r31->unk_FC |= 0x4002; + Hu3DMotionShiftSet(object->model[0], object->motion[9], 0.0f, 8.0f, 0); + } + if (var_r31->unk_FC & 0x10000) { + var_r31->unk_FC |= 0x40002; + Hu3DMotionShiftSet(object->model[0], object->motion[16], 0.0f, 8.0f, 0); + Hu3DModelPosSet( + lbl_1_bss_1A0->model[var_r31->unk_110 + 2], var_r31->unk_00.unk_6C.x, var_r31->unk_00.unk_6C.y, 50.0f + var_r31->unk_00.unk_6C.z); + Hu3DMotionTimeSet(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], 0.0f); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], 0x40000001); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], 1); + } + if (var_r31->unk_FC & 0x100000) { + var_r31->unk_FC |= 0x400002; + Hu3DMotionShiftSet(object->model[0], object->motion[9], 0.0f, 8.0f, 0); + } + var_r31->unk_FC &= ~0x30; + var_r31->unk_FC &= ~0x300; + var_r31->unk_FC &= ~0x3000; + var_r31->unk_FC &= ~0x30000; + var_r31->unk_FC &= ~0x300000; + var_r31->unk_100 = 0x78; + var_r31->unk_F8 = 0.0f; + var_r31->unk_00.unk_3C &= ~0x210; +} + +void fn_1_1A014(omObjData *arg0) +{ + UnkM450Struct5 *var_r31 = arg0->data; + + if (var_r31->unk_FC & 0x555550) { + var_r31->unk_FC &= ~0x800; + return; + } + var_r31->unk_FC |= 0x800; +} + +void fn_1_1A060(void) +{ + Vec sp8; + + Vec *var_r31; + UnkM450Struct5 *var_r30 = lbl_1_bss_138->data; + + sp8 = var_r30->unk_00.unk_6C; + if (lbl_1_bss_10C == 0) { + sp8.y = 1500.0f; + } + lbl_1_bss_324 = sp8; + lbl_1_bss_30C = sp8; + var_r31 = &lbl_1_data_51C[lbl_1_bss_110]; + lbl_1_bss_324.x += (var_r31->x * sind((180.0f + var_r30->unk_00.unk_9C))); + lbl_1_bss_324.z += (var_r31->x * cosd((180.0f + var_r30->unk_00.unk_9C))); + lbl_1_bss_324.y += var_r31->y; + lbl_1_bss_30C.y += var_r31->z; +} + +void fn_1_1A21C(float var_f30, float var_f31) +{ + Vec sp8; + Vec *var_r31; + UnkM450Struct5 *var_r30 = lbl_1_bss_138->data; + + sp8 = var_r30->unk_00.unk_6C; + if (lbl_1_bss_10C == 0) { + sp8.y = 1500.0f; + } + if (var_f31 != 0.0f) { + sp8.y = var_f31; + } + lbl_1_bss_324 = sp8; + lbl_1_bss_30C = sp8; + var_r31 = &lbl_1_data_51C[lbl_1_bss_110]; + lbl_1_bss_324.x += var_r31->x * sind(var_f30); + lbl_1_bss_324.z += var_r31->x * cosd(var_f30); + lbl_1_bss_324.y += var_r31->y; + lbl_1_bss_30C.y += var_r31->z; +} + +void fn_1_1A3F0(void) +{ + float var_f31; + float var_f30; + float var_f28; + UnkM450Struct5 *var_r31 = lbl_1_bss_138->data; + UnkM450Struct3 *var_r30 = lbl_1_bss_134->data; + + var_f31 = var_r31->unk_00.unk_6C.x - var_r30->unk_00.unk_6C.x; + var_f30 = var_r31->unk_00.unk_6C.z - var_r30->unk_00.unk_6C.z; + var_f28 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + var_f31 = 800.0f * (var_f31 / var_f28); + var_f30 = 800.0f * (var_f30 / var_f28); + lbl_1_bss_324 = var_r31->unk_00.unk_6C; + lbl_1_bss_30C = var_r31->unk_00.unk_6C; + lbl_1_bss_324.x += var_f31; + lbl_1_bss_324.y += 350.0f; + lbl_1_bss_324.z += var_f30; + lbl_1_bss_30C.y += 150.0f; +} + +#include "src/REL/executor.c" + +void fn_1_1A714(void) +{ + UnkM450Struct5 *var_r31; + + HuSysVWaitSet(1); + if (HuPadBtn[0] & PAD_BUTTON_X) { + lbl_1_bss_304 = -1; + } + print8(0x18, 0x20, 1.5f, "%d COUNT:%d MODE:%d MES:%d CAM:%d", GWMGTypeGet(), lbl_1_bss_308, lbl_1_bss_1A4->work[0], lbl_1_bss_2FE, lbl_1_bss_110); + print8(0x18, 0x30, 1.5f, "%f %f %f", lbl_1_bss_330.x, lbl_1_bss_330.y, lbl_1_bss_330.z); + print8(0x18, 0x40, 1.5f, "%f %f %f", lbl_1_bss_318.x, lbl_1_bss_318.y, lbl_1_bss_318.z); + print8(0x18, 0x50, 1.5f, "H:%x M:%x", HuMemHeapSizeGet(HEAP_SYSTEM) - HuMemUsedMallocSizeGet(HEAP_SYSTEM), + HuMemHeapSizeGet(HEAP_DATA) - HuMemUsedMallocSizeGet(HEAP_DATA)); + var_r31 = lbl_1_bss_138->data; + print8(0x18, 0x60, 1.5f, "%f (%f %f %f)", var_r31->unk_00.unk_A8, var_r31->unk_00.unk_6C.x, var_r31->unk_00.unk_6C.y, var_r31->unk_00.unk_6C.z); + print8(0x18, 0x70, 1.5f, "%d %d", var_r31->unk_104, var_r31->unk_108); +} + +void fn_1_1A940(UnkM450Struct5 *var_r30, Vec *var_r31, s8 var_r27) +{ + Mtx spD0; + float var_f31; + + s32 var_r23; + + nMap = 0; + var_r23 = 1; + lbl_1_bss_10C = 1; + if (var_r30->unk_E8 == 0.0f) { + lbl_1_bss_114 = 0; + if (var_r27 == 0x78) { + if (var_r31->x > var_r30->unk_00.unk_6C.x) { + var_r23 = 0; + } + } + else if (var_r31->z < var_r30->unk_00.unk_6C.z) { + var_r23 = 0; + } + } + if (var_r23 != 0) { + CharModelEffectEnableSet(var_r30->unk_11C, 0); + var_r30->unk_E8 += 1.0f; + var_f31 = 0.0f > var_r31->x ? -var_r31->x : var_r31->x; + if (var_f31 < (0.0f > var_r31->y ? -var_r31->y : var_r31->y)) { + var_f31 = 0.0f > var_r31->y ? -var_r31->y : var_r31->y; + } + if (var_f31 < (0.0f > var_r31->z ? -var_r31->z : var_r31->z)) { + var_f31 = 0.0f > var_r31->z ? -var_r31->z : var_r31->z; + } + var_f31 = 1505.0f - var_f31; + if (var_r27 == 0x78) { + fn_1_148B0(var_r30->unk_E8, var_r27); + MTXRotRad(spD0, 0x5A, 0.017453292f * var_r30->unk_E8); + var_r30->unk_00.unk_6C.x = var_r31->x + ((var_f31 * (0.0f > var_r31->x ? -1 : 1)) * sind(var_r30->unk_E8)); + } + else { + fn_1_148B0(var_r30->unk_E8, var_r27); + MTXRotRad(spD0, 0x58, 0.017453292f * var_r30->unk_E8); + var_r30->unk_00.unk_6C.z = var_r31->z + ((var_f31 * (0.0f > var_r31->z ? -1 : 1)) * sind(var_r30->unk_E8)); + } + var_r30->unk_00.unk_6C.y = var_r31->y + (var_f31 * cosd(var_r30->unk_E8)); + MTXMultVec(&spD0[0], &var_r30->unk_00.unk_6C, &var_r30->unk_00.unk_6C); + } + else { + if (var_r27 == 0x78) { + var_r30->unk_00.unk_20 = 0x48; + } + else { + var_r30->unk_00.unk_24 = 0x48; + } + fn_1_40C0(&var_r30->unk_00); + } + if (90.0f <= var_r30->unk_E8) { + if (lbl_1_bss_114 == 0) { + fn_1_149C0(var_r27); + } + fn_1_14AB8(); + } +} + +s32 fn_1_1B0C4(float *arg0, UnkM450Struct5 *arg1) +{ + if (arg1->unk_00.unk_38 != 0) { + return 0; + } + if (((arg0[0] - arg0[3]) <= arg1->unk_00.unk_6C.x) && ((arg0[0] + arg0[3]) >= arg1->unk_00.unk_6C.x) + && ((arg0[2] - arg0[4]) <= arg1->unk_00.unk_6C.z) && ((arg0[2] + arg0[4]) >= arg1->unk_00.unk_6C.z)) { + return 1; + } + return 0; +} + +void fn_1_1B158(UnkM450Struct5 *arg0, UnkData1380Struct *arg1) +{ + s32 var_r31; + + arg0->unk_104 = -1; + if (NULL != arg1) { + if ((arg0->unk_00.unk_38 == 1) || (arg0->unk_00.unk_38 == 3)) { + return; + } + if ((!(1505.0f < arg0->unk_00.unk_6C.y) && !(1495.0f > arg0->unk_00.unk_6C.y)) || (arg0->unk_00.unk_38 == 1) || (arg0->unk_00.unk_38 == 3)) { + for (var_r31 = 0; var_r31 < arg1->unk_08; var_r31++) { + if ((0 <= arg1->unk_24[var_r31]) && ((arg1->unk_30[var_r31].x - arg1->unk_04) <= arg0->unk_00.unk_6C.x) + && ((arg1->unk_04 + arg1->unk_30[var_r31].x) >= arg0->unk_00.unk_6C.x) + && ((arg1->unk_30[var_r31].z - arg1->unk_04) <= arg0->unk_00.unk_6C.z) + && ((arg1->unk_04 + arg1->unk_30[var_r31].z) >= arg0->unk_00.unk_6C.z)) { + arg0->unk_104 = var_r31; + } + } + } + } +} + +void fn_1_1B2AC(UnkM450Struct5 *var_r30, UnkData1380Struct *var_r31) +{ + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + if ((var_r30->unk_FC & 0x800) != 0) { + if ((NULL == var_r31) || (var_r30->unk_104 < 0) || (lbl_1_bss_F8 >= 0) || (var_r31->unk_1C != 0)) { + return; + } + var_r25 = var_r30->unk_104 % var_r31->unk_0C; + var_r24 = var_r30->unk_104 / var_r31->unk_0C; + for (var_r28 = 0; var_r28 < 4; var_r28++) { + var_r27 = var_r25 + lbl_1_data_1234[var_r28 * 2]; + var_r26 = var_r24 + lbl_1_data_1234[(var_r28 * 2) + 1]; + if ((var_r27 >= 0) && (var_r31->unk_0C > var_r27) && (var_r26 >= 0) && (var_r31->unk_0C > var_r26)) { + var_r29 = var_r27 + (var_r26 * var_r31->unk_0C); + if (var_r31->unk_24[var_r29] < 0) { + lbl_1_bss_FC = var_r31; + lbl_1_bss_F8 = var_r29; + var_r31->unk_24[var_r29] = var_r31->unk_24[var_r30->unk_104]; + var_r31->unk_24[var_r30->unk_104] = -1; + var_r31->unk_28[var_r29] = var_r31->unk_28[var_r30->unk_104]; + var_r31->unk_28[var_r30->unk_104] = -1; + lbl_1_bss_EC = var_r31->unk_30[var_r29]; + var_r31->unk_30[var_r29] = var_r31->unk_30[var_r30->unk_104]; + HuAudFXPlay(0x7B8); + return; + } + } + } + } +} + +s32 fn_1_1B4C8(UnkM450Struct5 *arg0) +{ + s32 var_r31; + + arg0->unk_10C = 0; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + lbl_1_bss_B8[var_r31] = -1; + } +} + +void fn_1_1B510(s32 sp8) +{ + s32 var_r31; + s32 var_r30; + UnkM450Struct5 *var_r29 = lbl_1_bss_138->data; + + for (var_r30 = 0; var_r30 < 3; var_r30++) { + if (sp8 == lbl_1_bss_B8[var_r30]) { + var_r29->unk_10C--; + lbl_1_bss_B8[var_r30] = -1; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31 + 0x19], 1); + } + for (var_r31 = var_r30; var_r31 < 2; var_r31++) { + lbl_1_bss_B8[var_r31] = lbl_1_bss_B8[var_r31 + 1]; + lbl_1_bss_B8[var_r31 + 1] = -1; + } + } + } +} + +void fn_1_1B644(UnkM450Struct5 *arg0) +{ + s32 var_r31; + + arg0->unk_108 = -1; + if (lbl_1_bss_118 == 5) { + if ((arg0->unk_00.unk_38 == 1) || (arg0->unk_00.unk_38 == 3)) { + return; + } + for (var_r31 = 0; var_r31 < 5; var_r31++) { + float var_f31; + float var_f30; + UnkData1450Struct *var_r30 = &lbl_1_data_1450[var_r31]; + var_f31 = arg0->unk_00.unk_6C.x - var_r30->unk_04.x; + var_f30 = arg0->unk_00.unk_6C.z - var_r30->unk_04.z; + if (100.0f > sqrtf((var_f31 * var_f31) + (var_f30 * var_f30))) { + arg0->unk_108 = var_r31; + } + } + } +} + +void fn_1_1B830(UnkM450Struct5 *arg0) +{ + s32 var_r30; + + if (arg0->unk_FC & 0x800) { + if ((lbl_1_bss_118 != 5) || (arg0->unk_108 < 0)) { + return; + } + if ((arg0->unk_10C < 3) && (lbl_1_data_1450[arg0->unk_108].unk_18 == 0)) { + for (var_r30 = 0; var_r30 < arg0->unk_10C; var_r30++) { + if (arg0->unk_108 == lbl_1_bss_B8[var_r30]) { + return; + } + } + lbl_1_data_1450[arg0->unk_108].unk_14 = 0.0f; + lbl_1_data_1450[arg0->unk_108].unk_18 = 1; + lbl_1_data_1450[arg0->unk_108].unk_1C = 1; + lbl_1_data_1450[arg0->unk_108].unk_20 = 1; + lbl_1_bss_B8[arg0->unk_10C++] = arg0->unk_108; + Hu3DMotionTimeSet(lbl_1_bss_1A0->model[arg0->unk_108 + 0x14], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[arg0->unk_108 + 0x14], 0x40000003); + if (arg0->unk_10C == 2) { + fn_1_12E5C(lbl_1_bss_B8[0], lbl_1_bss_B8[1], 25); + HuAudFXPlay(0x7B4); + } + if (arg0->unk_10C == 3) { + lbl_1_bss_C8 = 0.0f; + lbl_1_bss_C4 = 0x1388; + fn_1_12E5C(lbl_1_bss_B8[0], lbl_1_bss_B8[2], 26); + fn_1_12E5C(lbl_1_bss_B8[1], lbl_1_bss_B8[2], 27); + HuAudFXPlay(0x7B5); + HuAudFXPlay(0x7B6); + } + } + } +} + +void fn_1_1C060(UnkM450Struct5 *arg0) +{ + UnkData1450Struct *var_r31; + + fn_1_1B644(arg0); + if (arg0->unk_108 >= 0) { + var_r31 = &lbl_1_data_1450[arg0->unk_108]; + if ((arg0->unk_00.unk_38 != 1) && (arg0->unk_00.unk_38 != 3) && (1560.0f > arg0->unk_00.unk_6C.y)) { + arg0->unk_00.unk_6C.y = 1565.0f; + arg0->unk_00.unk_78.y = 1565.0f; + } + if (0.0f != var_r31->unk_10) { + arg0->unk_00.unk_6C.y = 5.0f + var_r31->unk_04.y; + arg0->unk_00.unk_78.y = 5.0f + var_r31->unk_04.y; + } + } +} + +s32 fn_1_1C2D4(UnkM450Struct5 *arg0) +{ + if ((arg0->unk_FC & 0x50) != 0) { + return 0; + } + if ((arg0->unk_FC & 0x500) != 0) { + return 0; + } + if ((arg0->unk_FC & 0x5000) != 0) { + return 0; + } + if ((arg0->unk_FC & 0x50000) != 0) { + return 0; + } + if ((arg0->unk_FC & 0x500000) != 0) { + return 0; + } + if (lbl_1_data_A0C[0].unk_14 <= 0) { + return 0; + } + if ((arg0->unk_FC & 0x80000) != 0) { + return 0; + } + if (arg0->unk_00.unk_38 != 0) { + return 0; + } + return 1; +} + +s32 fn_1_1C39C(UnkM450Struct5 *arg0) +{ + if ((arg0->unk_FC & 0x50) != 0) { + return 0; + } + if ((arg0->unk_FC & 0x500) != 0) { + return 0; + } + if ((arg0->unk_FC & 0x5000) != 0) { + return 0; + } + if ((arg0->unk_FC & 0x50000) != 0) { + return 0; + } + if ((arg0->unk_FC & 0x500000) != 0) { + return 0; + } + if ((arg0->unk_FC & 2) != 0) { + return 0; + } + return 1; +} + +void fn_1_1C434(UnkM450Struct5 *arg0, omObjData *arg1) +{ + s32 var_r30; + + arg0->unk_118++; + lbl_1_bss_1A4->work[0] += 1; + lbl_1_bss_128 = 0.0f; + fn_1_4ED8(&arg0->unk_00, 0); + Hu3DModelAttrReset(arg1->model[0], 1); + arg1->func = fn_1_20170; +} + +void fn_1_1C6E4(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 1; var_r31++) { + lbl_1_bss_E8[var_r31] = NULL; + } + for (var_r31 = 0; var_r31 < 1; var_r31++) { + lbl_1_bss_E4[var_r31] = NULL; + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + lbl_1_bss_DC[var_r31] = NULL; + } +} + +void fn_1_1C77C(UnkM450Struct5 *arg0) +{ + Mtx sp20; + Vec sp14; + Vec sp8; + UnkM450Struct3 *var_r30 = lbl_1_bss_134->data; + + sp14.x = 0.0f; + sp14.y = 0.0f; + sp14.z = 1.0f; + MTXRotRad(sp20, 0x59, 0.017453292f * arg0->unk_00.unk_9C); + MTXMultVec(sp20, &sp14, &sp14); + VECNormalize(&sp14, &sp14); + VECSubtract(&arg0->unk_00.unk_6C, &var_r30->unk_00.unk_6C, &arg0->unk_DC); + VECNormalize(&arg0->unk_DC, &arg0->unk_DC); + VECSubtract(&var_r30->unk_00.unk_6C, &arg0->unk_00.unk_6C, &sp8); + VECNormalize(&sp8, &sp8); + if (0.0f <= VECDotProduct(&sp14, &sp8)) { + arg0->unk_114 = 0x11; + return; + } + arg0->unk_114 = 0x13; +} + +s32 fn_1_1C898(UnkM450Struct5 *var_r31, omObjData *var_r30) +{ + s32 sp3C; + float var_f31; + + if (var_r31->unk_FC & 2) { + if (var_r31->unk_FC & 0x40) { + var_r31->unk_F8 += 1.0f; + if (var_r31->unk_F8 == 15.0f) { + Hu3DModelAttrReset(var_r30->model[0], 0x40000002); + } + if ((15.0f < var_r31->unk_F8) && (Hu3DMotionEndCheck(var_r30->model[0]) != 0)) { + var_r31->unk_FC &= ~0x40; + fn_1_4ED8(&var_r31->unk_00, 0); + } + return 0; + } + if (var_r31->unk_FC & 0x400) { + var_r31->unk_F8 += 1.0f; + if (var_r31->unk_F8 == 15.0f) { + Hu3DModelAttrReset(var_r30->model[0], 0x40000003); + } + if ((15.0f < var_r31->unk_F8) && (Hu3DMotionEndCheck(var_r30->model[0]) != 0)) { + var_r31->unk_FC &= ~0x400; + fn_1_4ED8(&var_r31->unk_00, 0); + } + return 0; + } + if (var_r31->unk_FC & 0x4000) { + var_r31->unk_F8 += 1.0f; + if (120.0f < var_r31->unk_F8) { + var_r31->unk_FC &= ~0x4000; + fn_1_4ED8(&var_r31->unk_00, 0); + } + return 0; + } + if (var_r31->unk_FC & 0x40000) { + var_r31->unk_F8 += 1.0f; + if (120.0f < var_r31->unk_F8) { + var_r31->unk_FC &= ~0x40000; + fn_1_4ED8(&var_r31->unk_00, 0); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], 1); + } + return 0; + } + if (var_r31->unk_FC & 0x400000) { + if ((Hu3DMotionShiftIDGet(var_r30->model[0]) < 0) && (Hu3DMotionEndCheck(var_r30->model[0]) != 0)) { + if (var_r31->unk_F8 == 0.0f) { + var_r31->unk_F8 = 1.0f; + Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[var_r31->unk_114 + 1], 0.0f, 8.0f, 0); + } + else { + var_r31->unk_FC &= ~0x400000; + fn_1_4ED8(&var_r31->unk_00, 0); + } + } + return 0; + } + if ((var_r31->unk_100 & 1) == 0) { + Hu3DModelAttrSet(var_r30->model[0], 1); + } + else { + Hu3DModelAttrReset(var_r30->model[0], 1); + } + if (--var_r31->unk_100 < 0) { + var_r31->unk_FC &= ~0x70; + var_r31->unk_FC &= ~0x700; + var_r31->unk_FC &= ~0x7000; + var_r31->unk_FC &= ~0x70000; + var_r31->unk_FC &= ~0x700004; + var_r31->unk_FC &= ~0x2; + Hu3DModelAttrReset(var_r30->model[0], 1); + } + return 1; + } + if (var_r31->unk_FC & 0x110) { + fn_1_40C0(&var_r31->unk_00); + return 0; + } + if ((var_r31->unk_FC & 0x1000) != 0) { + if ((Hu3DMotionShiftIDGet(var_r30->model[0]) < 0) && (Hu3DMotionEndCheck(var_r30->model[0]) != 0)) { + var_r31->unk_00.unk_9C += (10.0 + (8.0 * sind((180.0f * (var_r31->unk_F8 / 60.0f))))); + if (360.0f <= var_r31->unk_00.unk_9C) { + var_r31->unk_00.unk_9C -= 360.0f; + } + var_r31->unk_F8 += 1.0f; + if (60.0f < var_r31->unk_F8) { + fn_1_19CE0(var_r30); + } + } + return 0; + } + if (var_r31->unk_FC & 0x10000) { + fn_1_19CE0(var_r30); + return 0; + } + if (var_r31->unk_FC & 0x100000) { + var_r31->unk_00.unk_20 = 72.0f * var_r31->unk_DC.x; + var_r31->unk_00.unk_24 = -(72.0f * var_r31->unk_DC.z); + fn_1_40C0(&var_r31->unk_00); + return 0; + } + if ((var_r31->unk_FC & 0x20) != 0) { + if (lbl_1_bss_118 < 4) { + omVibrate(lbl_1_bss_120, 0xC, 4, 2); + } + else { + omVibrate(lbl_1_bss_120, 0xC, 0xC, 0); + } + HuAudCharVoicePlay(var_r31->unk_11C, 0x123); + var_r31->unk_FC |= 0x10; + var_r31->unk_00.unk_3C |= 0x210; + var_r31->unk_00.unk_38 = 1; + var_r31->unk_00.unk_84.y = 48.179996f; + var_r31->unk_00.unk_A4 = 0.0f; + if (var_r31->unk_00.unk_3C & 2) { + var_r31->unk_00.unk_3C &= ~0x2; + } + Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[8], 0.0f, 8.0f, 0); + if (fn_1_125C0(0, 1) <= 0) { + var_r31->unk_FC |= 0x80000; + } + return 0; + } + if (var_r31->unk_FC & 0x200) { + omVibrate(lbl_1_bss_120, 0xC, 4, 2); + HuAudCharVoicePlay(var_r31->unk_11C, 0x123); + var_r31->unk_FC |= 0x100; + var_r31->unk_00.unk_3C |= 0x210; + var_r31->unk_00.unk_38 = 1; + var_r31->unk_00.unk_84.y = 0.0f; + var_r31->unk_00.unk_A4 = 0.0f; + if (var_r31->unk_00.unk_3C & 2) { + var_r31->unk_00.unk_3C &= ~0x2; + } + if (fn_1_125C0(0, 1) <= 0) { + var_r31->unk_FC |= 0x80000; + } + return 0; + } + if (var_r31->unk_FC & 0x2000) { + omVibrate(lbl_1_bss_120, 0xC, 4, 2); + HuAudCharVoicePlay(var_r31->unk_11C, 0x123); + var_r31->unk_F8 = 0.0f; + var_r31->unk_FC |= 0x1000; + var_r31->unk_00.unk_3C |= 0x10; + Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[15], 0.0f, 8.0f, 0); + if (fn_1_125C0(0, 1) <= 0) { + var_r31->unk_FC |= 0x80000; + } + return 0; + } + if (var_r31->unk_FC & 0x20000) { + omVibrate(lbl_1_bss_120, 0xC, 4, 2); + HuAudCharVoicePlay(var_r31->unk_11C, 0x123); + var_r31->unk_F8 = 0.0f; + var_r31->unk_FC |= 0x10000; + var_r31->unk_00.unk_3C |= 0x10; + if (fn_1_125C0(0, 1) <= 0) { + var_r31->unk_FC |= 0x80000; + } + return 0; + } + if ((var_r31->unk_FC & 0x200000) != 0) { + omVibrate(lbl_1_bss_120, 0xC, 0xC, 0); + HuAudCharVoicePlay(var_r31->unk_11C, 0x123); + var_r31->unk_F8 = 0.0f; + var_r31->unk_FC |= 0x100000; + var_r31->unk_00.unk_3C |= 0x200; + var_r31->unk_00.unk_3C &= ~0x10; + var_f31 = 40.15f; + if (var_r31->unk_FC & 4) { + var_f31 = var_f31 / 2; + } + fn_1_1C77C(var_r31); + fn_1_2BD0(&var_r31->unk_00, var_f31, 0.0f); + Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[var_r31->unk_114], 0.0f, 8.0f, 0); + sp3C = 1; + if ((var_r31->unk_FC & 4) != 0) { + sp3C = 1; + } + if (fn_1_125C0(0, sp3C) <= 0) { + var_r31->unk_FC |= 0x80000; + } + return 0; + } + return 1; +} + +void fn_1_1E150(omObjData *var_r29) +{ + s32 sp70; + float var_f20; + + UnkM450Struct5 *var_r31 = var_r29->data; + UnkData1380Struct *var_r30; + + var_r31->unk_FC |= 1; + var_r31->unk_FC &= 0xFFFFF7FF; + fn_1_1C060(var_r31); + sp70 = 1; + var_r31->unk_00.unk_20 = 0; + var_r31->unk_00.unk_24 = 0; + var_r31->unk_00.unk_28 = 0; + var_r31->unk_00.unk_2C = 0; + var_r31->unk_00.unk_30 = 0; + var_r31->unk_00.unk_34 = 0; + if (lbl_1_bss_118 == 5) { + fn_1_19798(); + } + sp70 = fn_1_1C898(var_r31, var_r29); + if (sp70 != 0) { + if (((var_r31->unk_FC & 0x80000) || (lbl_1_bss_304 < 0)) && (var_r31->unk_00.unk_38 == 0)) { + var_r31->unk_118 = 0x7EB; + Hu3DModelAttrReset(*var_r29->model, 0x40000003); + Hu3DMotionShiftSet(*var_r29->model, var_r29->motion[22], 0.0f, 8.0f, 0); + Hu3DModelAttrReset(*var_r29->model, 1); + var_r29->func = fn_1_20170; + return; + } + if (NULL != lbl_1_data_FAC[lbl_1_bss_118]) { + if (fn_1_1B0C4(lbl_1_data_FAC[lbl_1_bss_118], var_r31) != 0) { + if (fn_1_1C2D4(var_r31) != 0) { + fn_1_1C434(var_r31, var_r29); + return; + } + } + } + var_r31->unk_00.unk_20 = HuPadStkX[var_r31->unk_120]; + var_r31->unk_00.unk_24 = HuPadStkY[var_r31->unk_120]; + var_r31->unk_00.unk_28 = HuPadBtnDown[var_r31->unk_120]; + var_r31->unk_00.unk_2C = HuPadBtn[var_r31->unk_120]; + var_r31->unk_00.unk_30 = HuPadTrigL[var_r31->unk_120]; + var_r31->unk_00.unk_34 = HuPadTrigR[var_r31->unk_120]; + if ((lbl_1_bss_118 >= 2) && (lbl_1_bss_118 <= 4)) { + var_r31->unk_00.unk_20 = HuPadStkY[var_r31->unk_120]; + var_r31->unk_00.unk_24 = -HuPadStkX[var_r31->unk_120]; + } + fn_1_40C0(&var_r31->unk_00); + } + if ((1490.0f > var_r31->unk_00.unk_6C.y) && (var_r31->unk_00.unk_38 != 1) && (var_r31->unk_00.unk_38 != 3)) { + omVibrate(lbl_1_bss_120, 0xC, 4, 2); + HuAudCharVoicePlay(var_r31->unk_11C, 0x123); + var_r31->unk_FC |= 0x800000; + var_r31->unk_118 = 0x7EB; + var_r31->unk_00.unk_38 = 1; + var_r31->unk_00.unk_84.y = 53.533333f; + var_r31->unk_00.unk_A4 = 0.0f; + if (var_r31->unk_00.unk_3C & 2) { + var_r31->unk_00.unk_3C &= ~0x2; + } + Hu3DMotionSet(var_r29->model[0], var_r29->motion[8]); + Hu3DModelAttrReset(var_r29->model[0], 1); + fn_1_125C0(0, 0); + var_r29->func = fn_1_20170; + return; + } + fn_1_19450(var_r31); + + var_r30 = NULL; + if (lbl_1_bss_118 == 2) { + var_r30 = &lbl_1_data_1380; + } + if (lbl_1_bss_118 == 4) { + var_r30 = &lbl_1_data_13B8; + } + fn_1_1B158(var_r31, var_r30); + fn_1_1B2AC(var_r31, var_r30); + if (NULL != var_r30) { + if ((var_r31->unk_104 >= 0) && (((var_r30->unk_34[var_r31->unk_104].x) != 0.0f) || (var_r30->unk_34[var_r31->unk_104].z != 0.0f))) { + VECAdd(&var_r30->unk_34[var_r31->unk_104], &var_r31->unk_00.unk_6C, &var_r31->unk_00.unk_6C); + var_r31->unk_00.unk_78 = var_r31->unk_00.unk_6C; + } + if (var_r30->unk_1C != 0) { + if (fn_1_1C2D4(var_r31) != 0) { + fn_1_1C434(var_r31, var_r29); + return; + } + } + } + if ((lbl_1_bss_118 == 5) && (lbl_1_data_A0C[1].unk_14 <= 0)) { + if (fn_1_1C2D4(var_r31) != 0) { + lbl_1_bss_11C = lbl_1_bss_120; + fn_1_1C434(var_r31, var_r29); + fn_1_1F58(0x3E8); + return; + } + } + fn_1_1B644(var_r31); + fn_1_1B830(var_r31); + if (lbl_1_bss_118 < 5) { + var_f20 = 0.0; + if ((lbl_1_bss_118 >= 2) && (lbl_1_bss_118 <= 4)) { + var_f20 = 270.0f; + } + fn_1_1A21C(var_f20, 1500.0f); + fn_1_1710(0.5f, &lbl_1_data_470); + } + omSetTra(var_r31->unk_00.unk_00, var_r31->unk_00.unk_6C.x, var_r31->unk_00.unk_6C.y, var_r31->unk_00.unk_6C.z); + omSetRot(var_r31->unk_00.unk_00, 0.0f, var_r31->unk_00.unk_9C, 0.0f); + fn_1_1C6E4(); +} + +void fn_1_200BC(UnkM450Struct5 *arg0, omObjData *object) +{ + s32 var_r31; + + arg0->unk_118++; + arg0->unk_FC &= ~0x802; + arg0->unk_FC &= ~0x70; + arg0->unk_FC &= ~0x700; + arg0->unk_FC &= ~0x7000; + arg0->unk_FC &= ~0x70000; + arg0->unk_FC &= ~0x700004; + fn_1_1B4C8(arg0); + object->func = fn_1_1E150; +} + +void fn_1_20170(omObjData *var_r30) +{ + Vec sp1CC; + float sp1C8; + float sp1C4; + float var_f31; + float var_f30; + + UnkM450Struct5 *var_r31; + UnkM450Struct5 *var_r29; + UnkData94CStruct *var_r28; + s32 var_r25; + + var_r31 = var_r30->data; + var_r31->unk_FC &= 0xFFFFFFFE; + var_r31->unk_00.unk_20 = 0; + var_r31->unk_00.unk_24 = 0; + var_r31->unk_00.unk_28 = 0; + var_r31->unk_00.unk_2C = 0; + var_r31->unk_00.unk_30 = 0; + var_r31->unk_00.unk_34 = 0; + CharModelEffectEnableSet(var_r31->unk_11C, 1); + lbl_1_bss_10C = 0; + switch (var_r31->unk_118) { + case 0x7D0: + if (lbl_1_bss_1A4->work[0] > 0x3EC) { + var_r31->unk_118++; + Hu3DModelShadowSet(var_r30->model[0]); + if (fn_1_13B90(0) != 0) { + var_r31->unk_00.unk_9C = 180.0f; + fn_1_4ED8(&var_r31->unk_00, 0); + } + else { + var_r31->unk_00.unk_9C = 0.0f; + fn_1_4ED8(&var_r31->unk_00, 5); + } + var_r31->unk_00.unk_3C |= 0x20; + } + break; + case 0x7D1: + fn_1_40C0(&var_r31->unk_00); + if (var_r31->unk_00.unk_38 == 2) { + var_r31->unk_118++; + var_r31->unk_F0 = 0; + var_r31->unk_F4 = -1; + var_r31->unk_C4 = lbl_1_data_94C; + var_r31->unk_EC = 360.0f; + omVibrate(lbl_1_bss_120, 0xC, 0xC, 0); + if (fn_1_13B90(0) != 0) { + var_r31->unk_118 = 0x7D4; + var_r31->unk_E8 = 0.0f; + fn_1_4ED8(&var_r31->unk_00, 0); + } + var_r31->unk_00.unk_3C &= ~0x20; + } + break; + case 0x7D2: + case 0x7DA: + if (var_r31->unk_EC != 360.0f) { + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, var_r31->unk_EC, 0.05f); + } + if (var_r31->unk_F4 < 0) { + var_r31->unk_F4 = var_r31->unk_F0; + var_r31->unk_F0++; + var_r28 = &var_r31->unk_C4[var_r31->unk_F4]; + if (var_r28->unk_08 == 0.0f) { + Hu3DMotionSet(var_r30->model[0], var_r30->motion[var_r28->unk_00]); + Hu3DMotionTimeSet(var_r30->model[0], var_r28->unk_0C); + } + else { + Hu3DMotionShiftSet( + var_r30->model[0], var_r30->motion[var_r28->unk_00], var_r28->unk_0C, var_r28->unk_08, var_r28->unk_10 & 0xBFFFFFFD); + } + Hu3DMotionSpeedSet(var_r30->model[0], var_r28->unk_04); + Hu3DMotionShiftSpeedSet(var_r30->model[0], var_r28->unk_04); + if (var_r28->unk_10 & 0x40000003) { + var_r31->unk_118++; + Hu3DMotionSpeedSet(var_r30->model[0], 1.0f); + Hu3DMotionShiftSpeedSet(var_r30->model[0], 1.0f); + } + } + else if ((Hu3DMotionShiftIDGet(var_r30->model[0]) < 0) && (Hu3DMotionEndCheck(var_r30->model[0]) != 0)) { + var_r31->unk_F4 = -1; + if (var_r31->unk_C4[var_r31->unk_F0].unk_00 < 0) { + var_r31->unk_118++; + Hu3DMotionSpeedSet(var_r30->model[0], 1.0f); + Hu3DMotionShiftSpeedSet(var_r30->model[0], 1.0f); + } + } + break; + case 0x7D3: + if (Hu3DMotionShiftIDGet(var_r30->model[0]) < 0) { + sp1C4 = Hu3DMotionTimeGet(var_r30->model[0]) / Hu3DMotionMaxTimeGet(var_r30->model[0]); + if (0.5f > sp1C4) { + sp1C4 = 0.5f; + } + var_r31->unk_00.unk_9C = 180.0f * (2.0f * (sp1C4 - 0.5f)); + if (Hu3DMotionEndCheck(var_r30->model[0]) != 0) { + var_r31->unk_118++; + var_r31->unk_E8 = 0.0f; + fn_1_4ED8(&var_r31->unk_00, 0); + Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[0], 0.0f, 8.0f, 0x40000001); + } + } + break; + case 0x7D4: + if ((lbl_1_bss_1A4->work[0] >= 0x3EF) && (120.0f < lbl_1_bss_128)) { + var_r31->unk_118++; + } + break; + case 0x7D5: + if (90.0f > var_r31->unk_E8) { + fn_1_1A940(var_r31, lbl_1_bss_4C, 0x7A); + } + else { + if (lbl_1_bss_1A4->work[0] < 0x3F0) { + lbl_1_bss_1A4->work[0] = 0x3F0; + lbl_1_bss_128 = 0.0f; + lbl_1_bss_324 = lbl_1_data_4B8; + lbl_1_bss_30C = lbl_1_data_4C4; + } + if ((lbl_1_bss_4C->z - 100.0f) < var_r31->unk_00.unk_6C.z) { + var_r31->unk_00.unk_24 = 0x48; + fn_1_40C0(&var_r31->unk_00); + } + else { + var_r31->unk_118++; + fn_1_4ED8(&var_r31->unk_00, 0); + } + } + break; + case 0x7D6: + if (lbl_1_bss_1A4->work[0] >= 0x3F3) { + fn_1_200BC(var_r31, var_r30); + } + break; + case 0x7D8: + var_r31->unk_D0.x = 1200.0f; + var_r31->unk_D0.z = 0.0f; + if (fn_1_19A10(&var_r31->unk_00, &var_r31->unk_D0) != 0) { + if (lbl_1_bss_1A4->work[0] >= 0x3F5) { + var_r31->unk_118++; + var_r31->unk_E8 = 0.0f; + var_r31->unk_00.unk_6C.z = 0.0f; + } + else { + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, 90.0f, 0.4f); + var_r31->unk_00.unk_6C.z = 0.0f; + } + } + fn_1_40C0(&var_r31->unk_00); + break; + case 0x7D9: + if (90.0f > var_r31->unk_E8) { + fn_1_1A940(var_r31, &lbl_1_bss_4C[1], 0x78); + } + else { + if ((-1000.0f < var_r31->unk_00.unk_6C.x) && (lbl_1_bss_1A4->work[0] < 0x3F6)) { + lbl_1_bss_1A4->work[0] = 0x3F6; + lbl_1_bss_128 = 0.0f; + } + if (lbl_1_bss_1A4->work[0] >= 0x3F7) { + var_r31->unk_118 = 0x7DB; + fn_1_4ED8(&var_r31->unk_00, 0); + } + if (lbl_1_data_1380.unk_24[2] >= 0) { + var_r31->unk_D0 = lbl_1_data_1380.unk_30[2]; + } + else { + var_r31->unk_D0 = lbl_1_data_1380.unk_30[3]; + } + var_r31->unk_D0.z *= 0.5f; + fn_1_19A10(&var_r31->unk_00, &var_r31->unk_D0); + fn_1_40C0(&var_r31->unk_00); + } + break; + case 0x7DB: + if ((lbl_1_bss_1A4->work[0] <= 0x3F9) && (Hu3DMotionShiftIDGet(var_r30->model[0]) < 0) && (lbl_1_bss_D8 > 0)) { + VECScale(&lbl_1_bss_CC, &lbl_1_bss_CC, 1.0f / lbl_1_bss_D8); + fn_1_160AC(var_r31, var_r30, &lbl_1_bss_CC); + } + if (lbl_1_bss_1A4->work[0] >= 0x3FA) { + fn_1_160AC(var_r31, var_r30, NULL); + } + if (lbl_1_bss_1A4->work[0] >= 0x3FB) { + fn_1_16280(var_r31, var_r30); + fn_1_200BC(var_r31, var_r30); + } + break; + case 0x7DD: + var_r31->unk_D0.x = 300.0f; + var_r31->unk_D0.z = 0.0f; + if (lbl_1_bss_1A4->work[0] >= 0x3FD) { + if (fn_1_19A10(&var_r31->unk_00, &var_r31->unk_D0) != 0) { + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, 90.0f, 0.4f); + if (lbl_1_bss_1A4->work[0] <= 0x3FD) { + lbl_1_bss_1A4->work[0] += 1; + lbl_1_bss_128 = 0.0f; + } + if (lbl_1_bss_1A4->work[0] >= 0x402) { + var_r31->unk_118++; + var_r31->unk_E8 = 0.0f; + } + } + fn_1_40C0(&var_r31->unk_00); + } + break; + case 0x7DE: + if (90.0f > var_r31->unk_E8) { + fn_1_1A940(var_r31, &lbl_1_bss_4C[2], 0x78); + } + else if ((100.0f + lbl_1_bss_4C[2].x) > var_r31->unk_00.unk_6C.x) { + var_r31->unk_00.unk_20 = 0x48; + fn_1_40C0(&var_r31->unk_00); + } + else { + var_r31->unk_118++; + fn_1_4ED8(&var_r31->unk_00, 0); + lbl_1_bss_1A4->work[0] = 0x403; + lbl_1_bss_128 = 0.0f; + } + break; + case 0x7DF: + if (lbl_1_bss_1A4->work[0] >= 0x405) { + fn_1_200BC(var_r31, var_r30); + } + break; + case 0x7E1: + var_r31->unk_D0.x = 1200.0f; + var_r31->unk_D0.z = 0.0f; + if (fn_1_19A10(&var_r31->unk_00, &var_r31->unk_D0) != 0) { + if (lbl_1_bss_1A4->work[0] >= 0x407) { + var_r31->unk_118++; + var_r31->unk_E8 = 0.0f; + var_r31->unk_00.unk_6C.z = 0.0f; + } + else { + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, 90.0f, 0.4f); + var_r31->unk_00.unk_6C.z = 0.0f; + } + } + fn_1_40C0(&var_r31->unk_00); + break; + case 0x7E2: + if (90.0f > var_r31->unk_E8) { + fn_1_1A940(var_r31, &lbl_1_bss_4C[3], 0x78); + } + else { + if ((-1000.0f < var_r31->unk_00.unk_6C.x) && (lbl_1_bss_1A4->work[0] < 0x408)) { + lbl_1_bss_1A4->work[0] = 0x408; + lbl_1_bss_128 = 0.0f; + } + if (lbl_1_bss_1A4->work[0] >= 0x409) { + var_r31->unk_118++; + } + var_r31->unk_D0 = lbl_1_data_13B8.unk_30[7]; + + fn_1_19A10(&var_r31->unk_00, &var_r31->unk_D0); + fn_1_40C0(&var_r31->unk_00); + } + break; + case 0x7E3: + if (lbl_1_bss_1A4->work[0] >= 0x40D) { + fn_1_200BC(var_r31, var_r30); + } + break; + case 0x7E5: + var_r31->unk_D0.x = 0.0f; + var_r31->unk_D0.z = -400.0f; + if (lbl_1_bss_1A4->work[0] >= 0x410) { + if (fn_1_19A10(&var_r31->unk_00, &var_r31->unk_D0) != 0) { + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, 180.0f, 0.4f); + if ((lbl_1_bss_1A4->work[0] <= 0x410) && (120.0f <= lbl_1_bss_128)) { + lbl_1_bss_1A4->work[0] += 1; + lbl_1_bss_128 = 0.0f; + var_r31->unk_118++; + var_r31->unk_E8 = 0.0f; + + fn_1_139B0(&lbl_1_data_13B8, 0x10); + fn_1_1F58(0x3E8); + } + } + fn_1_40C0(&var_r31->unk_00); + } + break; + case 0x7E6: + if (90.0f > var_r31->unk_E8) { + fn_1_1A940(var_r31, &lbl_1_bss_4C[4], 0x7A); + } + else { + if (lbl_1_bss_1A4->work[0] <= 0x411) { + lbl_1_bss_1A4->work[0] = 0x412; + lbl_1_bss_128 = 0.0f; + fn_1_1350(&lbl_1_bss_324, &lbl_1_data_470, &lbl_1_bss_30C); + lbl_1_bss_324 = lbl_1_data_4D0; + lbl_1_bss_30C = lbl_1_data_4DC; + } + var_r31->unk_D0.x = 0.0f; + var_r31->unk_D0.z = 600.0f; + if (fn_1_19A10(&var_r31->unk_00, &var_r31->unk_D0) != 0) { + ++var_r31->unk_118; + fn_1_4ED8(&var_r31->unk_00, 0); + } + else { + fn_1_40C0(&var_r31->unk_00); + } + } + break; + case 0x7E7: + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, 180.0f, 0.4f); + if (lbl_1_bss_1A4->work[0] >= 0x415) { + fn_1_200BC(var_r31, var_r30); + } + break; + case 0x7E9: + if (lbl_1_bss_1A4->work[0] >= 0x417) { + if (100.0f < lbl_1_bss_128) { + var_r31->unk_118++; + GWPlayerCoinWinSet(lbl_1_bss_120, 10); + Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[21], 0.0f, 8.0f, 0); + lbl_1_bss_18 = HuAudSStreamPlay(0xD); + } + } + if ((lbl_1_bss_1A4->work[0] == 0x416) && (240.0f < lbl_1_bss_128)) { + lbl_1_bss_1A4->work[0] += 1; + lbl_1_bss_128 = 0.0f; + } + break; + case 0x7EA: + VECSubtract(&((UnkM450Struct3 *)lbl_1_bss_134->data)->unk_00.unk_6C, &var_r31->unk_00.unk_6C, &sp1CC); + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, 180.0 + (atan2d(sp1CC.x, sp1CC.z)), 0.4f); + break; + case 0x7EB: + if (var_r31->unk_FC & 0x800000) { + // inline? + var_r29 = var_r31; + var_r29->unk_00.unk_84.y += -2.4333334f; + var_r29->unk_00.unk_6C.y += var_r29->unk_00.unk_84.y; + var_r29->unk_00.unk_A8 = MapPos( + var_r29->unk_00.unk_6C.x, var_r29->unk_00.unk_6C.y, var_r29->unk_00.unk_6C.z, var_r29->unk_00.unk_C0, &var_r29->unk_00.unk_AC); + if (var_r29->unk_00.unk_A8 > var_r29->unk_00.unk_6C.y) { + var_r31->unk_00.unk_38 = 1; + var_r31->unk_00.unk_84.y = 53.533333f; + var_r31->unk_00.unk_A4 = 0.0f; + if (var_r31->unk_00.unk_3C & 2) { + var_r31->unk_00.unk_3C &= ~2; + } + } + var_f31 = var_r29->unk_00.unk_6C.x; + var_f30 = var_r29->unk_00.unk_6C.z; + sp1C8 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (sp1C8 == 0.0f) { + var_f31 = 0.0f; + var_f30 = -1.0f; + } + else { + var_f31 /= sp1C8; + var_f30 /= sp1C8; + } + var_r29->unk_00.unk_84.x = 72.0f * var_f31 / 4; + var_r29->unk_00.unk_84.z = 72.0f * var_f30 / 4; + var_r29->unk_00.unk_6C.x += var_r29->unk_00.unk_84.x; + var_r29->unk_00.unk_6C.z += var_r29->unk_00.unk_84.z; + var_r29->unk_00.unk_9C = fn_1_1E20(var_r29->unk_00.unk_9C, atan2d(var_r29->unk_00.unk_84.x, var_r29->unk_00.unk_84.z), 0.4f); + } + break; + default: + OSReport("*** player mode error(%d)!!\n", var_r31->unk_118); + break; + } + if ((var_r31->unk_118 >= 0x7E9) && (var_r31->unk_118 <= 0x7EA)) { + fn_1_1C060(var_r31); + } + if (1495.0f > var_r31->unk_00.unk_6C.y) { + for (var_r25 = 0; var_r25 < 1; var_r25++) { + Hu3DModelShadowDispOff(var_r30->model[var_r25]); + } + } + else { + for (var_r25 = 0; var_r25 < 1; var_r25++) { + Hu3DModelShadowDispOn(var_r30->model[var_r25]); + } + } + omSetTra(var_r31->unk_00.unk_00, var_r31->unk_00.unk_6C.x, var_r31->unk_00.unk_6C.y, var_r31->unk_00.unk_6C.z); + omSetRot(var_r31->unk_00.unk_00, 0.0f, var_r31->unk_00.unk_9C, 0.0f); +} + +void fn_1_23330(omObjData *object) +{ + Vec sp8; + UnkM450Struct5 *var_r31; + s32 var_r29; + s32 var_r27; + s32 var_r26; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM450Struct5), MEMORY_DEFAULT_NUM); + var_r31 = object->data; + var_r31->unk_FC = 0; + var_r31->unk_11C = GWPlayerCfg[lbl_1_bss_120].character; + var_r31->unk_120 = GWPlayerCfg[lbl_1_bss_120].pad_idx; + var_r31->unk_118 = 0x7D0; + var_r31->unk_C8 = 0.0f; + var_r31->unk_CC = 0.0f; + sp8.x = 0.0f; + sp8.y = 4000.0f; + sp8.z = 0.0f; + var_r26 = var_r31->unk_11C; + var_r27 = lbl_1_bss_120; + fn_1_2C1C(&var_r31->unk_00, object, var_r27, var_r26, lbl_1_data_92C, 0, &sp8, 0.0f); + var_r31->unk_00.unk_04 = fn_1_19C18; + var_r31->unk_00.unk_0C = fn_1_19CE0; + var_r31->unk_00.unk_10 = fn_1_1A014; + object->model[0] = CharModelCreate(lbl_1_data_0[var_r31->unk_11C], 2); + CharModelStepTypeSet(lbl_1_data_0[var_r31->unk_11C], 0); + for (var_r29 = 0; var_r29 < 0x17; var_r29++) { + object->motion[var_r29] = CharModelMotionCreate(lbl_1_data_0[var_r31->unk_11C], lbl_1_data_64C[var_r31->unk_11C][var_r29]); + CharModelMotionSet(lbl_1_data_0[var_r31->unk_11C], object->motion[var_r29]); + } + Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelLayerSet(object->model[0], 2); + Hu3DMotionSet(object->model[0], *object->motion); + omSetTra(var_r31->unk_00.unk_00, var_r31->unk_00.unk_6C.x, var_r31->unk_00.unk_6C.y, var_r31->unk_00.unk_6C.z); + omSetRot(var_r31->unk_00.unk_00, 0.0f, var_r31->unk_00.unk_9C, 0.0f); + Hu3DModelAttrReset(object->model[0], 1); + CharModelLayerSetAll2(6); + CharModelMotionDataClose(lbl_1_data_0[var_r31->unk_11C]); + object->func = fn_1_20170; +} + +void fn_1_23770(omObjData *object, s32 arg1) +{ + lbl_1_bss_108 = 1; + lbl_1_bss_128 += 1.0f; + if ((fn_1_13DC(lbl_1_bss_128 / 120.0f, &lbl_1_data_470) != 0) && (MGSeqStatGet(lbl_1_bss_2FE) == 0)) { + lbl_1_bss_2FE = -1; + object->work[0] += 1; + fn_1_1350(&lbl_1_bss_324, &lbl_1_data_470, &lbl_1_bss_30C); + fn_1_12540(0); + if (lbl_1_bss_118 == 5) { + fn_1_12540(1); + } + } + if ((arg1 >= 0) && (lbl_1_bss_2F8 < 0) && ((MGSeqStatGet(lbl_1_bss_2FE) & 0x10) != 0)) { + fn_1_1F24(arg1); + } +} + +void fn_1_23CA0(omObjData *arg0, float arg8, float arg9) +{ + lbl_1_bss_108 = 0; + lbl_1_bss_110 = 0; + if (lbl_1_bss_2FE < 0) { + nMap = 0; + fn_1_14C28(); + MGSeqParamSet(lbl_1_bss_2FC, 2, -1); + lbl_1_bss_128 = 0.0f; + lbl_1_bss_2FC = -1; + lbl_1_bss_2FE = MGSeqCreate(3, 1); + return; + } + lbl_1_bss_128 += 1.0f; + if (lbl_1_bss_118 < 5) { + fn_1_1A21C(arg8, 1500.0f); + } + else { + fn_1_1A3F0(); + } + fn_1_13DC(lbl_1_bss_128 / arg9, &lbl_1_data_470); + + if ((arg9 < lbl_1_bss_128) && (MGSeqStatGet(lbl_1_bss_2FE) == 0)) { + arg0->work[0] += 1; + lbl_1_bss_128 = 0.0f; + lbl_1_bss_124 = 0.0f; + lbl_1_bss_2FE = -1; + fn_1_1350(&lbl_1_bss_324, &lbl_1_data_470, &lbl_1_bss_30C); + } +} + +void fn_1_24620(omObjData *var_r31) +{ + Vec sp280; + s32 sp120; + s32 sp11C; + CameraData *sp118; + float var_f31; + UnkData1380Struct *var_r30; + + if (omSysExitReq != 0) { + fn_1_1F58(0x64); + WipeCreate(2, 0, 0x3C); + var_r31->func = fn_1_298EC; + } + lbl_1_bss_308++; + switch (var_r31->work[0]) { + case 0x3E8: + if (lbl_1_bss_2FE < 0) { + fn_1_1F58(0x64); + MGSeqParamSet(lbl_1_bss_2FC, 2, -1); + lbl_1_bss_2FC = -1; + lbl_1_bss_2FE = MGSeqCreate(3, 1); + lbl_1_bss_1C = -1; + } + else { + lbl_1_bss_128 += 1.0f; + sp11C = 0; + if (lbl_1_bss_1C < 0) { + if (120.0f < lbl_1_bss_128) { + lbl_1_bss_1C = HuAudSStreamPlay(3); + } + } + else if (HuAudSStreamStatGet(lbl_1_bss_1C) == 0) { + sp11C = 1; + } + if ((sp11C != 0) || (1200.0f < lbl_1_bss_128)) { + fn_1_1F58(0x64); + lbl_1_bss_2FE = -1; + WipeColorSet(0, 0, 0); + WipeCreate(2, 0, 0x3C); + var_r31->func = fn_1_298EC; + } + } + break; + case 0x3E9: + lbl_1_bss_128 += 1.0f; + if (60.0f < lbl_1_bss_128) { + var_r31->work[0] += 1; + WipeCreate(1, 0, 0x3C); + HuAudFXPlay(0x7B2); + } + break; + case 0x3EA: + if (WipeStatGet() == 0) { + var_r31->work[0] += 1; + lbl_1_bss_128 = 0.0f; + } + break; + case 0x3EB: + lbl_1_bss_128 += 1.0f; + if (120.0f < lbl_1_bss_128) { + var_r31->work[0] += 1; + lbl_1_bss_128 = 0.0f; + lbl_1_bss_324 = lbl_1_data_488; + lbl_1_bss_30C = lbl_1_data_494; + fn_1_1F24(0x41); + } + break; + case 0x3EC: + lbl_1_bss_128 += 1.0f; + if (fn_1_13DC(lbl_1_bss_128 / 120.0f, &lbl_1_data_470) != 0) { + var_r31->work[0] += 1; + lbl_1_bss_128 = 0; + fn_1_1350(&lbl_1_bss_324, &lbl_1_data_470, &lbl_1_bss_30C); + lbl_1_bss_324 = lbl_1_data_4A0; + lbl_1_bss_30C = lbl_1_data_4AC; + } + break; + case 0x3ED: + if (((UnkM450Struct5 *)lbl_1_bss_138->data)->unk_118 >= 0x7D3) { + lbl_1_bss_128 += 1.0f; + if (fn_1_13DC(lbl_1_bss_128 / 120.0f, &lbl_1_data_470) != 0) { + var_r31->work[0] += 1; + fn_1_1350(&lbl_1_bss_324, &lbl_1_data_470, &lbl_1_bss_30C); + fn_1_6CB0(fn_1_8500, 0); + } + } + break; + case 0x3EE: + case 0x3F1: + case 0x3F8: + case 0x401: + case 0x40A: + case 0x413: + if (lbl_1_bss_10 == 0) { + var_r31->work[0] += 1; + lbl_1_bss_128 = 0.0f; + } + break; + case 0x3EF: + lbl_1_bss_128 += 1.0f; + if (120.0f < lbl_1_bss_128) { + fn_1_1A060(); + fn_1_1710((lbl_1_bss_128 - 120.0f) / 240.0f, &lbl_1_data_470); + } + break; + case 0x3F0: + lbl_1_bss_128 += 1.0f; + if (fn_1_13DC(lbl_1_bss_128 / 120.0f, &lbl_1_data_470) != 0) { + var_r31->work[0] += 1; + fn_1_1350(&lbl_1_bss_324, &lbl_1_data_470, &lbl_1_bss_30C); + fn_1_6CB0(fn_1_8BDC, 1); + } + if (fn_1_13B90(1) != 0) { + fn_1_1F58(0x3E8); + } + break; + case 0x3F2: + if (lbl_1_bss_2FE < 0) { + lbl_1_bss_128 = 0.0f; + lbl_1_bss_2FE = MGSeqCreate(3, 0); + fn_1_14BC8(&lbl_1_data_A80[0], 9); + fn_1_13BC4(1); + fn_1_1A060(); + } + else { + fn_1_23770(var_r31, 0x40); + } + break; + case 0x3F3: + case 0x3FB: + case 0x405: + case 0x40D: + case 0x415: + if (lbl_1_bss_2FC >= 0) { + MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + 0x3B) / 60); + } + else { + sp120 = 0; + if ((lbl_1_bss_118 == 2) || (lbl_1_bss_118 == 4) || (lbl_1_bss_118 == 5)) { + if (lbl_1_bss_304 < 0x708) { + sp120 = 1; + } + } + else { + sp120 = 1; + } + if (sp120 != 0) { + lbl_1_bss_2FC = MGSeqCreate(1, lbl_1_bss_304 / 60, -1, -1); + } + } + lbl_1_bss_304--; + if (((UnkM450Struct5 *)lbl_1_bss_138->data)->unk_118 >= 0x7EB) { + var_r31->work[0] = 0x3E8; + lbl_1_bss_128 = 0.0f; + } + break; + case 0x3F4: + fn_1_23CA0(var_r31, 270.0f, 120.0f); + break; + case 0x3F5: + lbl_1_bss_128 += 1.0f; + fn_1_1A21C(270.0f, 0.0f); + fn_1_13DC(1.0f, &lbl_1_data_470); + break; + case 0x3F6: + lbl_1_bss_128 += 1.0f; + if (90.0f < lbl_1_bss_128) { + var_r31->work[0] += 1; + lbl_1_bss_128 = 0.0f; + } + fn_1_1350(&lbl_1_bss_324, &lbl_1_data_470, &lbl_1_bss_30C); + lbl_1_bss_20 = -1; + break; + case 0x3F7: + if (lbl_1_bss_20 < 0) { + lbl_1_bss_20 = HuAudFXPlay(0x7B1); + } + omVibrate(lbl_1_bss_120, 0xC, 6, 6); + lbl_1_bss_128 += 1.0f; + Hu3DModelPosSet(lbl_1_bss_1A0->model[6], 0.0f, -(2.0f * lbl_1_bss_128), 0.0f); + if (120.0f < lbl_1_bss_128) { + var_r31->work[0] += 1; + fn_1_6CB0(fn_1_9074, 2); + HuAudFXPlay(0x7BB); + } + break; + case 0x3F9: + break; + case 0x3FA: + if (lbl_1_bss_2FE < 0) { + lbl_1_bss_128 = 0.0f; + lbl_1_bss_2FE = MGSeqCreate(3, 0); + fn_1_13BC4(2); + fn_1_1A21C(270.0f, 0.0f); + } + else { + fn_1_23770(var_r31, -1); + } + break; + case 0x3FC: + var_f31 = lbl_1_bss_128 / 120.0f; + if (1.0f < var_f31) { + var_f31 = 1.0f; + } + var_r30 = &lbl_1_data_1380; + Hu3DModelAttrReset(lbl_1_bss_1A0->model[5], 1); + Hu3DModelRotSet(lbl_1_bss_1A0->model[5], 0.0f, 90.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_1A0->model[5], var_r30->unk_30[3].x, var_r30->unk_30[3].y, var_r30->unk_30[3].z); + Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[5], var_f31); + fn_1_23CA0(var_r31, 270.0f, 120.0f); + break; + case 0x3FD: + case 0x3FE: + case 0x3FF: + lbl_1_bss_124 += 1.0f; + fn_1_1A21C(270.0f, 0.0f); + fn_1_1710(lbl_1_bss_124 / 120.0f, &lbl_1_data_470); + lbl_1_bss_20 = -1; + break; + case 0x400: + lbl_1_bss_124 += 1.0f; + fn_1_1A21C(270.0f, 0.0f); + fn_1_1710(lbl_1_bss_124 / 120.0f, &lbl_1_data_470); + if (lbl_1_bss_20 < 0) { + lbl_1_bss_20 = HuAudFXPlay(0x7B1); + } + omVibrate(lbl_1_bss_120, 0xC, 6, 6); + lbl_1_bss_128 += 1.0f; + Hu3DModelAttrReset(lbl_1_bss_1A0->model[7], 1); + Hu3DModelPosSet(lbl_1_bss_1A0->model[7], 0.0f, -(60.0f - (lbl_1_bss_128 / 2)), 0.0f); + if (120.0f < lbl_1_bss_128) { + var_r31->work[0] += 1; + lbl_1_bss_128 = 0; + fn_1_6CB0(fn_1_96C0, -1); + fn_1_139B0(&lbl_1_data_1380, 5); + fn_1_1350(&lbl_1_bss_324, &lbl_1_data_470, &lbl_1_bss_30C); + HuAudFXPlay(0x7BB); + } + break; + case 0x402: + lbl_1_bss_128 += 1.0f; + fn_1_1A21C(270.0f, 0.0f); + fn_1_13DC(1.0f, &lbl_1_data_470); + break; + case 0x403: + fn_1_1350(&lbl_1_bss_324, &lbl_1_data_470, &lbl_1_bss_30C); + break; + case 0x404: + if (lbl_1_bss_2FE < 0) { + lbl_1_bss_128 = 0.0f; + lbl_1_bss_2FE = MGSeqCreate(3, 0); + fn_1_14BC8(&lbl_1_data_C58[0], 10); + fn_1_13BC4(3); + fn_1_1A21C(270.0f, 0.0f); + } + else { + fn_1_23770(var_r31, -1); + } + break; + case 0x406: + fn_1_23CA0(var_r31, 270.0f, 120.0f); + break; + case 0x407: + lbl_1_bss_128 += 1.0f; + fn_1_1A21C(270.0f, 0.0f); + fn_1_13DC(1.0f, &lbl_1_data_470); + break; + case 0x408: + lbl_1_bss_128 += 1.0f; + if (90.0f < lbl_1_bss_128) { + var_r31->work[0] += 1; + lbl_1_bss_128 = 0.0f; + } + fn_1_1350(&lbl_1_bss_324, &lbl_1_data_470, &lbl_1_bss_30C); + lbl_1_bss_20 = -1; + break; + case 0x409: + if (lbl_1_bss_20 < 0) { + lbl_1_bss_20 = HuAudFXPlay(0x7B1); + } + omVibrate(lbl_1_bss_120, 0xC, 6, 6); + lbl_1_bss_128 += 1.0f; + Hu3DModelPosSet(lbl_1_bss_1A0->model[17], 0.0f, -(2.0f * lbl_1_bss_128), 0.0f); + if (120.0f < lbl_1_bss_128) { + var_r31->work[0] += 1; + fn_1_6CB0(fn_1_9824, 4); + HuAudFXPlay(0x7BB); + } + break; + case 0x40B: + break; + case 0x40C: + if (lbl_1_bss_2FE < 0) { + lbl_1_bss_128 = 0.0f; + lbl_1_bss_2FE = MGSeqCreate(3, 0); + fn_1_13BC4(4); + fn_1_1A21C(270.0f, 0.0f); + } + else { + fn_1_23770(var_r31, -1); + } + break; + case 0x40E: + var_f31 = lbl_1_bss_128 / 120.0f; + if (1.0f < var_f31) { + var_f31 = 1.0f; + } + var_r30 = &lbl_1_data_13B8; + Hu3DModelAttrReset(lbl_1_bss_1A0->model[16], 1); + Hu3DModelRotSet(lbl_1_bss_1A0->model[16], 0.0f, -90.0f, 0.0f); + Hu3DModelPosSet(lbl_1_bss_1A0->model[16], var_r30->unk_30[8].x, var_r30->unk_30[8].y, var_r30->unk_30[8].z); + Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[16], var_f31); + fn_1_23CA0(var_r31, 270.0f, 120.0f); + break; + case 0x40F: + lbl_1_bss_20 = -1; + break; + case 0x410: + if (lbl_1_bss_20 < 0) { + lbl_1_bss_20 = HuAudFXPlay(0x7B1); + } + omVibrate(lbl_1_bss_120, 0xC, 6, 6); + lbl_1_bss_128 += 1.0f; + if (120.0f <= lbl_1_bss_128) { + lbl_1_bss_128 = 120.0f; + } + Hu3DModelAttrReset(lbl_1_bss_1A0->model[18], 1); + Hu3DModelPosSet(lbl_1_bss_1A0->model[18], 0.0f, -(60.0f - (lbl_1_bss_128 / 2)), 0.0f); + fn_1_1A21C(0.0f, 0.0f); + fn_1_1710(lbl_1_bss_128 / 120.0f, &lbl_1_data_470); + break; + case 0x411: + if (lbl_1_bss_20 >= 0) { + lbl_1_bss_20 = -1; + HuAudFXPlay(0x7BB); + } + lbl_1_bss_128 += 1.0f; + fn_1_1A060(); + fn_1_13DC(1.0f, &lbl_1_data_470); + break; + case 0x412: + lbl_1_bss_128 += 1.0f; + if (fn_1_13DC(lbl_1_bss_128 / 120.0f, &lbl_1_data_470) != 0) { + var_r31->work[0] += 1; + fn_1_1350(&lbl_1_bss_324, &lbl_1_data_470, &lbl_1_bss_30C); + fn_1_6CB0(fn_1_9BA4, 5); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[19], 1); + } + break; + case 0x414: + if (lbl_1_bss_2FE < 0) { + lbl_1_bss_128 = 0.0f; + lbl_1_bss_2FE = MGSeqCreate(3, 0); + fn_1_13BC4(5); + fn_1_1A21C(0.0f, 2000.0f); + fn_1_1F24(0x42); + } + else { + fn_1_23770(var_r31, -1); + } + break; + case 0x416: + lbl_1_bss_128 += 1.0f; + break; + case 0x417: + fn_1_23CA0(var_r31, 0.0f, 120.0f); + break; + case 0x418: + lbl_1_bss_128 += 1.0f; + sp11C = 0; + if (HuAudSStreamStatGet(lbl_1_bss_18) == 0) { + sp11C = 1; + } + if ((sp11C != 0) || (1200.0f < lbl_1_bss_128)) { + fn_1_1F58(0x64); + lbl_1_bss_2FE = -1; + WipeCreate(2, 0, 0x3C); + var_r31->func = fn_1_298EC; + } + break; + default: + OSReport("*** main mode error(%d)!!\n", var_r31->work[0]); + break; + } + + sp118 = Hu3DCamera; + VECSubtract(&sp118->target, &sp118->pos, &sp280); + VECNormalize(&sp280, &sp280); + HuAudFXListnerUpdate(&sp118->pos, &sp280); + lbl_1_bss_D8 = 0; + lbl_1_bss_CC.x = 0.0f; + lbl_1_bss_CC.y = 0.0f; + lbl_1_bss_CC.z = 0.0f; +} + +void ObjectSetup(void) +{ + Vec sp14; + Vec sp8; + s32 var_r31; + s32 var_r29; + omObjData *var_r28; + s32 var_r27; + + OSReport("******* M450 ObjectSetup *********\n"); + lbl_1_bss_33C = omInitObjMan(0x3E8, 0x2000); + omGameSysInit(lbl_1_bss_33C); + nMap = 0; + nChar = 0; + lbl_1_bss_120 = 0; + lbl_1_bss_11C = -1; + lbl_1_bss_118 = 0; + lbl_1_bss_110 = 0; + lbl_1_bss_10C = 0; + lbl_1_bss_108 = 0; + lbl_1_bss_308 = 0; + lbl_1_bss_2FE = -1; + lbl_1_bss_2FC = -1; + lbl_1_bss_2F8 = -1; + lbl_1_bss_1C = -1; + lbl_1_bss_18 = -1; + lbl_1_bss_D8 = 0; + lbl_1_bss_F8 = -1; + lbl_1_bss_FC = NULL; + lbl_1_bss_C4 = -1; + fn_1_1C6E4(); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 30000.0f, 1.2f); + fn_1_1350(&lbl_1_data_464, &lbl_1_data_470, &lbl_1_data_47C); + VECSubtract(&lbl_1_data_47C, &lbl_1_data_464, &sp8); + VECNormalize(&sp8, &sp8); + HuAudFXListnerSetEX(&lbl_1_data_464, &sp8, 5800.0, 1000.0, 100.0, 300.0, 300.0); + var_r27 = Hu3DGLightCreateV(&lbl_1_data_4E8, &lbl_1_data_4F4, &lbl_1_data_500); + Hu3DGLightStaticSet(var_r27, 1); + Hu3DGLightInfinitytSet(var_r27); + Hu3DShadowCreate(30.0f, 20.0f, 30000.0f); + Hu3DShadowTPLvlSet(0.5f); + VECNormalize(&lbl_1_data_504, &sp14); + Hu3DShadowPosSet(&lbl_1_data_504, &sp14, &lbl_1_data_510); + fn_1_6C68(lbl_1_bss_120); + lbl_1_bss_14 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M450, 0x63), 0x10000000)); + HuSprAnimLock(lbl_1_bss_14); + fn_1_12234(); + for (var_r29 = 0; var_r29 < 0x20; var_r29++) { + lbl_1_bss_1B0[var_r29].unk00 = 0; + lbl_1_bss_1B0[var_r29].unk04 = -1; + } + lbl_1_bss_1A0 = omAddObjEx(lbl_1_bss_33C, 0x64, 0x21, 0, -1, fn_1_15308); + for (var_r31 = 0; var_r31 < 0x17; var_r31++) { + lbl_1_bss_144[var_r31] = omAddObjEx(lbl_1_bss_33C, 0x65, 1, 0, -1, fn_1_12D7C); + lbl_1_bss_144[var_r31]->work[0] = var_r31; + } + omMakeGroupEx(lbl_1_bss_33C, 0, 1); + lbl_1_bss_140 = omGetGroupMemberListEx(lbl_1_bss_33C, 0); + for (var_r31 = 0; var_r31 < 1; var_r31++) { + var_r28 = omAddObjEx(lbl_1_bss_33C, 0x66, 1, 0, 0, fn_1_1291C); + } + omMakeGroupEx(lbl_1_bss_33C, 1, 0xA); + lbl_1_bss_13C = omGetGroupMemberListEx(lbl_1_bss_33C, 1); + for (var_r31 = 0; var_r31 < 0xA; var_r31++) { + var_r28 = omAddObjEx(lbl_1_bss_33C, 0x67, 1, 0, 1, fn_1_12B80); + } + fn_1_2C00(NULL, 1505.0f); + lbl_1_bss_138 = omAddObjEx(lbl_1_bss_33C, 0x6D, 1, 0x17, -1, fn_1_23330); + lbl_1_bss_134 = omAddObjEx(lbl_1_bss_33C, 0x68, 2, 0x13, -1, fn_1_DBF0); + omMakeGroupEx(lbl_1_bss_33C, 2, 2); + lbl_1_bss_130 = omGetGroupMemberListEx(lbl_1_bss_33C, 2); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r28 = omAddObjEx(lbl_1_bss_33C, 0x69, 5, 0xF, 2, fn_1_11D5C); + var_r28->work[0] = var_r31; + } + lbl_1_bss_358.unk04 = NULL; + lbl_1_bss_358.unk08 = NULL; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_2C[var_r31] = Hu3DModelCreateFile(lbl_1_data_F5C[var_r31]); + Hu3DModelAttrSet(lbl_1_bss_2C[var_r31], 1); + Hu3DModelAttrSet(lbl_1_bss_2C[var_r31], 0x40000003); + } + lbl_1_bss_28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M450, 0x6C)); + HuSprAnimLock(lbl_1_bss_28); + lbl_1_bss_24 = Hu3DParManCreate(lbl_1_bss_28, 0x14, &lbl_1_data_1504); + Hu3DParManAttrSet(lbl_1_bss_24, 1); + lbl_1_bss_1A4 = omAddObjEx(lbl_1_bss_33C, 0x6E, 0, 0, -1, fn_1_24620); + lbl_1_bss_1A4->work[0] = 0x3E9; + lbl_1_bss_128 = 0.0f; +} + +void fn_1_298EC(omObjData *object) +{ + s32 var_r31; + + if (WipeStatGet() == 0) { + if (lbl_1_bss_2FE >= 0) { + MGSeqKill(lbl_1_bss_2FE); + } + if (lbl_1_bss_2FC >= 0) { + MGSeqKill(lbl_1_bss_2FC); + } + MGSeqKillAll(); + HuAudAllStop(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + CharModelKill(lbl_1_data_0[GWPlayerCfg[var_r31].character]); + } + omOvlReturnEx(1, 1); + } +} From c9f46f9418ee4cdde626fe4c7b9c16c46557657a Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 3 Nov 2024 23:53:45 +0100 Subject: [PATCH 097/311] Applied some Attr defines --- src/REL/bootDll/main.c | 866 +++++----- src/REL/instDll/main.c | 2011 ++++++++++++----------- src/REL/m401Dll/main.c | 162 +- src/REL/m401Dll/main_ex.c | 22 +- src/REL/m402Dll/main.c | 494 +++--- src/REL/m403Dll/main.c | 312 ++-- src/REL/m403Dll/scene.c | 469 ++---- src/REL/m404Dll/main.c | 6 +- src/REL/m405Dll/main.c | 542 +++---- src/REL/m406Dll/map.c | 98 +- src/REL/m406Dll/player.c | 26 +- src/REL/m407dll/effect.c | 130 +- src/REL/m407dll/map.c | 6 +- src/REL/m407dll/player.c | 2 +- src/REL/m407dll/whomp.c | 38 +- src/REL/m408Dll/camera.c | 12 +- src/REL/m408Dll/main.c | 22 +- src/REL/m408Dll/object.c | 46 +- src/REL/m408Dll/stage.c | 52 +- src/REL/m409Dll/main.c | 36 +- src/REL/m409Dll/player.c | 386 ++--- src/REL/m410Dll/game.c | 246 +-- src/REL/m410Dll/player.c | 8 +- src/REL/m410Dll/stage.c | 4 +- src/REL/m411Dll/main.c | 708 +++++---- src/REL/m412Dll/main.c | 89 +- src/REL/m413Dll/main.c | 21 +- src/REL/m414Dll/main.c | 272 ++-- src/REL/m415Dll/main.c | 582 +++---- src/REL/m416Dll/main.c | 40 +- src/REL/m417Dll/water.c | 2 +- src/REL/m420dll/map.c | 101 +- src/REL/m420dll/player.c | 71 +- src/REL/m426Dll/main.c | 94 +- src/REL/m429Dll/main.c | 58 +- src/REL/m431Dll/main.c | 14 +- src/REL/m431Dll/object.c | 2164 ++++++++++++------------- src/REL/m434Dll/fish.c | 1382 ++++++++-------- src/REL/m434Dll/main.c | 9 +- src/REL/m434Dll/map.c | 4 +- src/REL/m434Dll/player.c | 1142 +++++++------ src/REL/m437Dll/main.c | 1221 +++++++------- src/REL/m438Dll/main.c | 14 +- src/REL/m439Dll/main.c | 40 +- src/REL/m440Dll/main.c | 42 +- src/REL/m440Dll/object.c | 295 ++-- src/REL/m441Dll/main.c | 50 +- src/REL/m442Dll/main.c | 28 +- src/REL/m443Dll/main.c | 7 +- src/REL/m443Dll/map.c | 8 +- src/REL/m443Dll/player.c | 443 +++--- src/REL/m444dll/main.c | 70 +- src/REL/m444dll/pinball.c | 2162 ++++++++++++------------- src/REL/m445Dll/main.c | 561 ++++--- src/REL/m446Dll/card.c | 199 ++- src/REL/m446Dll/cursor.c | 12 +- src/REL/m446Dll/player.c | 16 +- src/REL/m446Dll/stage.c | 106 +- src/REL/m447dll/block.c | 181 +-- src/REL/m447dll/player.c | 462 +++--- src/REL/m447dll/stage.c | 186 +-- src/REL/m448Dll/main.c | 545 +++---- src/REL/m450Dll/main.c | 179 +-- src/REL/m451Dll/m451.c | 16 +- src/REL/m453Dll/main.c | 8 +- src/REL/m453Dll/map.c | 8 +- src/REL/mentDll/main.c | 288 ++-- src/REL/mgmodedll/battle.c | 689 ++++---- src/REL/mgmodedll/main.c | 662 +++++--- src/REL/mgmodedll/mgmode.c | 2389 ++++++++++++++-------------- src/REL/modeltestDll/modeltest01.c | 1216 +++++++------- src/REL/modeseldll/filesel.c | 85 +- src/REL/modeseldll/main.c | 4 +- src/REL/modeseldll/modesel.c | 22 +- src/REL/mpexDll/mpex.c | 30 +- src/REL/option/record.c | 61 +- src/REL/option/rumble.c | 24 +- src/REL/option/scene.c | 9 +- src/REL/option/sound.c | 43 +- src/REL/present/common.c | 8 +- src/REL/present/init.c | 5 +- src/REL/present/present.c | 28 +- src/REL/resultDll/battle.c | 19 +- src/REL/resultDll/main.c | 38 +- src/REL/selmenuDll/main.c | 4 +- src/REL/w01Dll/mg_coin.c | 325 ++-- src/REL/w01Dll/mg_item.c | 217 +-- src/REL/w04Dll/boo_event.c | 201 +-- src/REL/ztardll/main.c | 10 +- src/game/board/item.c | 545 ++++--- src/game/board/lottery.c | 2 +- src/game/board/model.c | 1813 +++++++++++---------- src/game/board/player.c | 12 +- src/game/board/roll.c | 252 +-- src/game/board/space.c | 1745 ++++++++++---------- src/game/chrman.c | 4 +- src/game/hsfanim.c | 2 +- src/game/hsfdraw.c | 2 +- src/game/thpmain.c | 67 +- 99 files changed, 15333 insertions(+), 15096 deletions(-) diff --git a/src/REL/bootDll/main.c b/src/REL/bootDll/main.c index 6855ce34..85c5e263 100644 --- a/src/REL/bootDll/main.c +++ b/src/REL/bootDll/main.c @@ -1,19 +1,19 @@ -#include "game/gamework_data.h" -#include "game/process.h" +#include "ext_math.h" +#include "game/audio.h" #include "game/chrman.h" #include "game/data.h" -#include "game/sprite.h" -#include "game/object.h" -#include "game/audio.h" -#include "game/memory.h" +#include "game/gamework_data.h" #include "game/hsfman.h" -#include "game/wipe.h" -#include "game/pad.h" -#include "game/window.h" -#include "game/thpmain.h" +#include "game/memory.h" #include "game/msm.h" +#include "game/object.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/thpmain.h" +#include "game/window.h" +#include "game/wipe.h" #include "math.h" -#include "ext_math.h" #include "rel_sqrt_consts.h" @@ -50,352 +50,360 @@ void *logoReadNintendo(void); void ObjectSetup(void) { - omOvlHisData *history; - OSReport("******* Boot ObjectSetup *********\n"); - objman[0] = omInitObjMan(50, 8192); - lbl_1_bss_3C[0].x = -67; - lbl_1_bss_3C[0].y = 40; - lbl_1_bss_3C[0].z = 0; - lbl_1_bss_24[0].x = 260; - lbl_1_bss_24[0].y = -103; - lbl_1_bss_24[0].z = -18; - lbl_1_bss_1C[0] = 2885; - Hu3DCameraCreate(1); - Hu3DCameraPerspectiveSet(1, 30, 20, 15000, 1.2); - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - HuPrcCreate(BootProc, 100, 12288, 0); - Hu3DBGColorSet(0, 0, 0); - history = omOvlHisGet(0); - omOvlHisChg(0, history->overlay, 1, history->stat); + omOvlHisData *history; + OSReport("******* Boot ObjectSetup *********\n"); + objman[0] = omInitObjMan(50, 8192); + lbl_1_bss_3C[0].x = -67; + lbl_1_bss_3C[0].y = 40; + lbl_1_bss_3C[0].z = 0; + lbl_1_bss_24[0].x = 260; + lbl_1_bss_24[0].y = -103; + lbl_1_bss_24[0].z = -18; + lbl_1_bss_1C[0] = 2885; + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30, 20, 15000, 1.2); + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + HuPrcCreate(BootProc, 100, 12288, 0); + Hu3DBGColorSet(0, 0, 0); + history = omOvlHisGet(0); + omOvlHisChg(0, history->overlay, 1, history->stat); } static void BootProc(void) { - AnimData *data; - s16 group; - s16 sprite_nintendo; - s16 sprite_hudson; - s16 i; - OSTick tick_prev; - Process *curr = HuPrcCurrentGet(); - if(omovlevtno == 0) { - ProgressiveProc(); - } - group = HuSprGrpCreate(2); - data = HuSprAnimRead(logoReadNintendo()); - sprite_nintendo = HuSprCreate(data, 0, 0); - HuSprGrpMemberSet(group, 0, sprite_nintendo); - HuSprPosSet(group, 0, 288, 240); - HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF); - if(omovlevtno != 0) { - HuAudSndGrpSetSet(0); - data = HuSprAnimReadFile(TITLE_HUDSON_ANM); - sprite_hudson = HuSprCreate(data, 0, 0); - HuSprGrpMemberSet(group, 1, sprite_hudson); - HuSprPosSet(group, 1, 288, 240); - HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); - HuWinInit(1); - TitleInit(); - SystemInitF = 1; - } else { - s16 group_thp; - BOOL skip_wait; - float win_size[2]; - s16 sprite_thp; - for(i=0; i<4; i++) { - GWPlayerCfg[i].pad_idx = i; - } - repeat: - HuSprAttrReset(group, 0, HUSPR_ATTR_DISPOFF); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - while(WipeStatGet()) { - HuPrcVSleep(); - } - WipeColorSet(255, 255, 255); - if(!SystemInitF) { - tick_prev = OSGetTick(); - CharManInit(); - HuWindowInit(); - MGSeqInit(); - HuWinInit(1); - TitleInit(); - data = HuSprAnimReadFile(TITLE_HUDSON_ANM); - sprite_hudson = HuSprCreate(data, 0, 0); - HuSprGrpMemberSet(group, 1, sprite_hudson); - HuSprPosSet(group, 1, 288, 240); - HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); - while(OSTicksToMilliseconds(OSGetTick()-tick_prev) < 3000) { - HuPrcVSleep(); - } - } else { - for(i=0; i<180; i++) { - if(HuPadBtnDown[0] & (PAD_BUTTON_START|PAD_BUTTON_A)) { - break; - } - HuPrcVSleep(); - } - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - while(WipeStatGet()) { - HuPrcVSleep(); - } - HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF); - HuSprAttrReset(group, 1, HUSPR_ATTR_DISPOFF); - HuPrcSleep(60); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - while(WipeStatGet()) { - HuPrcVSleep(); - } - if(!SystemInitF) { - void *group_samp; - tick_prev = OSGetTick(); - group_samp = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(0)); - msmSysLoadGroup(0, group_samp, 0); - HuMemDirectFree(group_samp); - while(OSTicksToMilliseconds(OSGetTick()-tick_prev) < 3000) { - HuPrcVSleep(); - } - } else { - for(i=0; i<180; i++) { - if(HuPadBtnDown[0] & (PAD_BUTTON_START|PAD_BUTTON_A)) { - break; - } - HuPrcVSleep(); - } - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - while(WipeStatGet()) { - HuPrcVSleep(); - } - tick_prev = OSGetTick(); - if(!SystemInitF) { - HuAudSndGrpSetSet(0); - SystemInitF = 1; - } - while(OSTicksToMilliseconds(OSGetTick()-tick_prev) < 1000) { - HuPrcVSleep(); - } - HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); - group_thp = HuSprGrpCreate(1); - sprite_thp = HuTHPSprCreateVol("movie/opmov_a00.thp", 0, 100, 122); - HuSprGrpMemberSet(group_thp, 0, sprite_thp); - HuSprPosSet(group_thp, 0, 288, 240); - HuWinMesMaxSizeBetGet(win_size, MAKE_MESSID(54, 0), MAKE_MESSID(54, 4)); - demoWin = HuWinCreate(-10000, 448-win_size[1], win_size[0], win_size[1], 0); - HuWinMesSpeedSet(demoWin, 0); - HuWinBGTPLvlSet(demoWin, 0); - HuWinPriSet(demoWin, 10); - HuWinAttrSet(demoWin, 0x800); - HuPrcSleep(5); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); - while(WipeStatGet()) { - HuPrcVSleep(); - } - skip_wait = FALSE; - while(!HuTHPEndCheck()) { - UpdateDemoMess(); - if(HuPadBtnDown[0] & (PAD_BUTTON_START|PAD_BUTTON_A)) { - skip_wait = TRUE; - break; - } - HuPrcVSleep(); - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - while(WipeStatGet()) { - HuPrcVSleep(); - } - HuWinKill(demoWin); - HuTHPClose(); - HuPrcVSleep(); - HuSprGrpKill(group_thp); - if(!skip_wait) { - HuPrcSleep(60); - } - skip_wait = FALSE; - } - if(!TitleProc()) { - HuPrcSleep(60); - goto repeat; - } - WipeColorSet(255, 255, 255); - HuAudSStreamAllFadeOut(500); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - while(WipeStatGet()) { - HuPrcVSleep(); - } - HuPrcVSleep(); - if(omSysExitReq) { - omOvlReturnEx(1, 1); - } else { - omOvlCallEx(OVL_MODESEL, 1, 0, 0); - } - for(i=0; i<4; i++) { - GWPlayerCfg[i].character = -1; - } - HuPrcEnd(); - do { - HuPrcVSleep(); - } while(1); + AnimData *data; + s16 group; + s16 sprite_nintendo; + s16 sprite_hudson; + s16 i; + OSTick tick_prev; + Process *curr = HuPrcCurrentGet(); + if (omovlevtno == 0) { + ProgressiveProc(); + } + group = HuSprGrpCreate(2); + data = HuSprAnimRead(logoReadNintendo()); + sprite_nintendo = HuSprCreate(data, 0, 0); + HuSprGrpMemberSet(group, 0, sprite_nintendo); + HuSprPosSet(group, 0, 288, 240); + HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF); + if (omovlevtno != 0) { + HuAudSndGrpSetSet(0); + data = HuSprAnimReadFile(TITLE_HUDSON_ANM); + sprite_hudson = HuSprCreate(data, 0, 0); + HuSprGrpMemberSet(group, 1, sprite_hudson); + HuSprPosSet(group, 1, 288, 240); + HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); + HuWinInit(1); + TitleInit(); + SystemInitF = 1; + } + else { + s16 group_thp; + BOOL skip_wait; + float win_size[2]; + s16 sprite_thp; + for (i = 0; i < 4; i++) { + GWPlayerCfg[i].pad_idx = i; + } + repeat: + HuSprAttrReset(group, 0, HUSPR_ATTR_DISPOFF); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + WipeColorSet(255, 255, 255); + if (!SystemInitF) { + tick_prev = OSGetTick(); + CharManInit(); + HuWindowInit(); + MGSeqInit(); + HuWinInit(1); + TitleInit(); + data = HuSprAnimReadFile(TITLE_HUDSON_ANM); + sprite_hudson = HuSprCreate(data, 0, 0); + HuSprGrpMemberSet(group, 1, sprite_hudson); + HuSprPosSet(group, 1, 288, 240); + HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); + while (OSTicksToMilliseconds(OSGetTick() - tick_prev) < 3000) { + HuPrcVSleep(); + } + } + else { + for (i = 0; i < 180; i++) { + if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) { + break; + } + HuPrcVSleep(); + } + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(group, 1, HUSPR_ATTR_DISPOFF); + HuPrcSleep(60); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + if (!SystemInitF) { + void *group_samp; + tick_prev = OSGetTick(); + group_samp = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(0)); + msmSysLoadGroup(0, group_samp, 0); + HuMemDirectFree(group_samp); + while (OSTicksToMilliseconds(OSGetTick() - tick_prev) < 3000) { + HuPrcVSleep(); + } + } + else { + for (i = 0; i < 180; i++) { + if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) { + break; + } + HuPrcVSleep(); + } + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + tick_prev = OSGetTick(); + if (!SystemInitF) { + HuAudSndGrpSetSet(0); + SystemInitF = 1; + } + while (OSTicksToMilliseconds(OSGetTick() - tick_prev) < 1000) { + HuPrcVSleep(); + } + HuSprAttrSet(group, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); + group_thp = HuSprGrpCreate(1); + sprite_thp = HuTHPSprCreateVol("movie/opmov_a00.thp", 0, 100, 122); + HuSprGrpMemberSet(group_thp, 0, sprite_thp); + HuSprPosSet(group_thp, 0, 288, 240); + HuWinMesMaxSizeBetGet(win_size, MAKE_MESSID(54, 0), MAKE_MESSID(54, 4)); + demoWin = HuWinCreate(-10000, 448 - win_size[1], win_size[0], win_size[1], 0); + HuWinMesSpeedSet(demoWin, 0); + HuWinBGTPLvlSet(demoWin, 0); + HuWinPriSet(demoWin, 10); + HuWinAttrSet(demoWin, 0x800); + HuPrcSleep(5); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); + while (WipeStatGet()) { + HuPrcVSleep(); + } + skip_wait = FALSE; + while (!HuTHPEndCheck()) { + UpdateDemoMess(); + if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) { + skip_wait = TRUE; + break; + } + HuPrcVSleep(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuWinKill(demoWin); + HuTHPClose(); + HuPrcVSleep(); + HuSprGrpKill(group_thp); + if (!skip_wait) { + HuPrcSleep(60); + } + skip_wait = FALSE; + } + if (!TitleProc()) { + HuPrcSleep(60); + goto repeat; + } + WipeColorSet(255, 255, 255); + HuAudSStreamAllFadeOut(500); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuPrcVSleep(); + if (omSysExitReq) { + omOvlReturnEx(1, 1); + } + else { + omOvlCallEx(OVL_MODESEL, 1, 0, 0); + } + for (i = 0; i < 4; i++) { + GWPlayerCfg[i].character = -1; + } + HuPrcEnd(); + do { + HuPrcVSleep(); + } while (1); } static s16 demoTimingTbl[] = { - 1686, 1785, - 1850, 1936, - 1993, 2097, - 2135, 2245, - 2258, 2320, - -1, -1, + 1686, + 1785, + 1850, + 1936, + 1993, + 2097, + 2135, + 2245, + 2258, + 2320, + -1, + -1, }; static void UpdateDemoMess(void) { - int frame = HuTHPFrameGet(); - int i; - for(i=0; demoTimingTbl[i*2] != -1; i++) { - if(frame == demoTimingTbl[i*2]) { - HuWinMesSet(demoWin, MAKE_MESSID(54, i)); - } - if(frame == demoTimingTbl[(i*2)+1]) { - HuWinHomeClear(demoWin); - } - } + int frame = HuTHPFrameGet(); + int i; + for (i = 0; demoTimingTbl[i * 2] != -1; i++) { + if (frame == demoTimingTbl[i * 2]) { + HuWinMesSet(demoWin, MAKE_MESSID(54, i)); + } + if (frame == demoTimingTbl[(i * 2) + 1]) { + HuWinHomeClear(demoWin); + } + } } -static u16 progressivePosTbl[] = { - 236, 313, - 353, 313 -}; +static u16 progressivePosTbl[] = { 236, 313, 353, 313 }; static void ProgressiveProc(void) { - s16 i; - s16 option; - s16 group; - s16 sprite; - AnimData *data; - option = 0; - if(OSGetResetCode() != OS_RESET_RESTART) { - return; - } - if(VIGetDTVStatus() != VI_NON_INTERLACE) { - OSSetProgressiveMode(OS_PROGRESSIVE_MODE_OFF); - return; - } - if(OSGetProgressiveMode() == OS_PROGRESSIVE_MODE_OFF && !(HU_PAD_BTN_ALL & PAD_BUTTON_B)) { - return; - } - if(OSGetProgressiveMode() == OS_PROGRESSIVE_MODE_ON) { - VIConfigure(&GXNtsc480IntDf); - VIFlush(); - } - group = HuSprGrpCreate(3); - data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CHOOSE_ANM); - sprite = HuSprCreate(data, 0, 0); - HuSprGrpMemberSet(group, 0, sprite); - HuSprPosSet(group, 0, 288, 240); - data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_ON_ANM); - sprite = HuSprCreate(data, 0, 0); - HuSprGrpMemberSet(group, 1, sprite); - HuSprPosSet(group, 1, progressivePosTbl[option*2], progressivePosTbl[(option*2)+1]); - data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_OFF_ANM); - sprite = HuSprCreate(data, 0, 0); - HuSprGrpMemberSet(group, 2, sprite); - HuSprPosSet(group, 2, progressivePosTbl[option*2], progressivePosTbl[(option*2)+1]); - HuSprAttrSet(group, 2, HUSPR_ATTR_DISPOFF); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - while(WipeStatGet()) { - HuPrcVSleep(); - } - for(i=0; i<600; i++) { - if(HU_PAD_DSTK_ALL & (PAD_BUTTON_LEFT | PAD_BUTTON_RIGHT)) { - option ^= 1; - HuSprPosSet(group, 1, progressivePosTbl[option*2], progressivePosTbl[(option*2)+1]); - i=0; - } - if(HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) { - HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); - HuSprPosSet(group, 2, progressivePosTbl[option*2], progressivePosTbl[(option*2)+1]); - HuSprAttrReset(group, 2, HUSPR_ATTR_DISPOFF); - break; - } - HuPrcVSleep(); - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); - while(WipeStatGet()) { - HuPrcVSleep(); - } - if(!option) { - OSSetProgressiveMode(OS_PROGRESSIVE_MODE_ON); - VIConfigure(&GXNtsc480Prog); - VIFlush(); - HuPrcSleep(100); - } else { - OSSetProgressiveMode(OS_PROGRESSIVE_MODE_OFF); - } - HuSprGrpKill(group); - group = HuSprGrpCreate(1); - if(!option) { - data = HuSprAnimReadFile(TITLE_PROGRESSIVE_ON_ANM); - } else { - data = HuSprAnimReadFile(TITLE_PROGRESSIVE_OFF_ANM); - } - sprite = HuSprCreate(data, 0, 0); - HuSprGrpMemberSet(group, 0, sprite); - HuSprPosSet(group, 0, 288, 240); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); - while(WipeStatGet()) { - HuPrcVSleep(); - } - HuPrcSleep(60); - for(i=0; i<180; i++) { - if(HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) { - break; - } - HuPrcVSleep(); - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - while(WipeStatGet()) { - HuPrcVSleep(); - } - HuSprGrpKill(group); - HuPrcSleep(30); + s16 i; + s16 option; + s16 group; + s16 sprite; + AnimData *data; + option = 0; + if (OSGetResetCode() != OS_RESET_RESTART) { + return; + } + if (VIGetDTVStatus() != VI_NON_INTERLACE) { + OSSetProgressiveMode(OS_PROGRESSIVE_MODE_OFF); + return; + } + if (OSGetProgressiveMode() == OS_PROGRESSIVE_MODE_OFF && !(HU_PAD_BTN_ALL & PAD_BUTTON_B)) { + return; + } + if (OSGetProgressiveMode() == OS_PROGRESSIVE_MODE_ON) { + VIConfigure(&GXNtsc480IntDf); + VIFlush(); + } + group = HuSprGrpCreate(3); + data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CHOOSE_ANM); + sprite = HuSprCreate(data, 0, 0); + HuSprGrpMemberSet(group, 0, sprite); + HuSprPosSet(group, 0, 288, 240); + data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_ON_ANM); + sprite = HuSprCreate(data, 0, 0); + HuSprGrpMemberSet(group, 1, sprite); + HuSprPosSet(group, 1, progressivePosTbl[option * 2], progressivePosTbl[(option * 2) + 1]); + data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_OFF_ANM); + sprite = HuSprCreate(data, 0, 0); + HuSprGrpMemberSet(group, 2, sprite); + HuSprPosSet(group, 2, progressivePosTbl[option * 2], progressivePosTbl[(option * 2) + 1]); + HuSprAttrSet(group, 2, HUSPR_ATTR_DISPOFF); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + for (i = 0; i < 600; i++) { + if (HU_PAD_DSTK_ALL & (PAD_BUTTON_LEFT | PAD_BUTTON_RIGHT)) { + option ^= 1; + HuSprPosSet(group, 1, progressivePosTbl[option * 2], progressivePosTbl[(option * 2) + 1]); + i = 0; + } + if (HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) { + HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); + HuSprPosSet(group, 2, progressivePosTbl[option * 2], progressivePosTbl[(option * 2) + 1]); + HuSprAttrReset(group, 2, HUSPR_ATTR_DISPOFF); + break; + } + HuPrcVSleep(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet()) { + HuPrcVSleep(); + } + if (!option) { + OSSetProgressiveMode(OS_PROGRESSIVE_MODE_ON); + VIConfigure(&GXNtsc480Prog); + VIFlush(); + HuPrcSleep(100); + } + else { + OSSetProgressiveMode(OS_PROGRESSIVE_MODE_OFF); + } + HuSprGrpKill(group); + group = HuSprGrpCreate(1); + if (!option) { + data = HuSprAnimReadFile(TITLE_PROGRESSIVE_ON_ANM); + } + else { + data = HuSprAnimReadFile(TITLE_PROGRESSIVE_OFF_ANM); + } + sprite = HuSprCreate(data, 0, 0); + HuSprGrpMemberSet(group, 0, sprite); + HuSprPosSet(group, 0, 288, 240); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuPrcSleep(60); + for (i = 0; i < 180; i++) { + if (HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) { + break; + } + HuPrcVSleep(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuSprGrpKill(group); + HuPrcSleep(30); } -u16 lbl_1_data_58[] = { - 1, 2 -}; +u16 lbl_1_data_58[] = { 1, 2 }; void fn_1_1178(void) { - s16 i; - for(i=0; i<1; i++) { - Vec pos, target, up; - float x, y, z; - - x = lbl_1_bss_3C[i].x; - y = lbl_1_bss_3C[i].y; - z = lbl_1_bss_3C[i].z; - - pos.x = (((sind(y)*cosd(x))*lbl_1_bss_1C[i])+lbl_1_bss_24[i].x); - pos.y = (-sind(x)*lbl_1_bss_1C[i])+lbl_1_bss_24[i].y; - pos.z = ((cosd(y)*cosd(x))*lbl_1_bss_1C[i])+lbl_1_bss_24[i].z; - target.x = lbl_1_bss_24[i].x; - target.y = lbl_1_bss_24[i].y; - target.z = lbl_1_bss_24[i].z; - up.x = sind(y)*sind(x); - up.y = cosd(x); - up.z = cosd(y)*sind(x); - Hu3DCameraPosSet(lbl_1_data_58[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); - } + s16 i; + for (i = 0; i < 1; i++) { + Vec pos, target, up; + float x, y, z; + + x = lbl_1_bss_3C[i].x; + y = lbl_1_bss_3C[i].y; + z = lbl_1_bss_3C[i].z; + + pos.x = (((sind(y) * cosd(x)) * lbl_1_bss_1C[i]) + lbl_1_bss_24[i].x); + pos.y = (-sind(x) * lbl_1_bss_1C[i]) + lbl_1_bss_24[i].y; + pos.z = ((cosd(y) * cosd(x)) * lbl_1_bss_1C[i]) + lbl_1_bss_24[i].z; + target.x = lbl_1_bss_24[i].x; + target.y = lbl_1_bss_24[i].y; + target.z = lbl_1_bss_24[i].z; + up.x = sind(y) * sind(x); + up.y = cosd(x); + up.z = cosd(y) * sind(x); + Hu3DCameraPosSet(lbl_1_data_58[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); + } } -void fn_1_152C(void) { +void fn_1_152C(void) +{ Vec pos; Vec offset; Vec dir; Vec y_offset; - + f32 z_rot; s8 stick_pos; @@ -421,16 +429,16 @@ void fn_1_152C(void) { dir.z = (cosd(lbl_1_bss_3C[0].y) * sind(lbl_1_bss_3C[0].x)); z_rot = lbl_1_bss_3C[0].z; y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot)) - + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) - + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); + + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) + + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot)) - + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) - + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); - + + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) + + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); + y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot)) - + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) - + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); + + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) + + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); VECCrossProduct(&dir, &offset, &offset); VECNormalize(&offset, &offset); @@ -452,100 +460,100 @@ void fn_1_152C(void) { static void TitleInit(void) { - s16 model; - s16 sprite; - AnimData *sprite_data; - titleModel[0] = model = Hu3DModelCreateFile(TITLE_CHAR_HSF); - Hu3DModelAttrSet(model, 1); - Hu3DModelAttrSet(model, 0x40000001); - titleModel[1] = model = Hu3DModelCreateFile(TITLE_CUBE_HSF); - Hu3DModelAttrSet(model, 1); - Hu3DModelAttrSet(model, 0x40000001); - titleModel[2] = model = Hu3DModelCreateFile(TITLE_SKY_HSF); - Hu3DModelAttrSet(model, 1); - Hu3DModelAttrSet(model, 0x40000001); - Hu3DModelCameraInfoSet(model, 1); - Hu3DModelLightInfoSet(model, 1); - titleGroup = HuSprGrpCreate(4); - sprite_data = HuSprAnimReadFile(TITLE_BG_ANM); - sprite = HuSprCreate(sprite_data, 0, 0); - HuSprGrpMemberSet(titleGroup, 0, sprite); - HuSprAttrSet(titleGroup, 0, HUSPR_ATTR_DISPOFF); - HuSprDrawNoSet(titleGroup, 0, 127); - HuSprPosSet(titleGroup, 0, 288, 240); - sprite_data = HuSprAnimReadFile(TITLE_COPYRIGHT_ANM); - sprite = HuSprCreate(sprite_data, 1, 0); - HuSprGrpMemberSet(titleGroup, 1, sprite); - HuSprAttrSet(titleGroup, 1, HUSPR_ATTR_DISPOFF); - HuSprPosSet(titleGroup, 1, 288, 420); - sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_ANM); - sprite = HuSprCreate(sprite_data, 2, 0); - HuSprGrpMemberSet(titleGroup, 2, sprite); - HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF|HUSPR_ATTR_LINEAR); - HuSprPosSet(titleGroup, 2, 288, 380); - sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM); - sprite = HuSprCreate(sprite_data, 0, 0); - HuSprGrpMemberSet(titleGroup, 3, sprite); - HuSprAttrSet(titleGroup, 3, HUSPR_ATTR_DISPOFF|HUSPR_ATTR_LINEAR); - HuSprPosSet(titleGroup, 3, 288, 200); + s16 model; + s16 sprite; + AnimData *sprite_data; + titleModel[0] = model = Hu3DModelCreateFile(TITLE_CHAR_HSF); + Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP); + titleModel[1] = model = Hu3DModelCreateFile(TITLE_CUBE_HSF); + Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP); + titleModel[2] = model = Hu3DModelCreateFile(TITLE_SKY_HSF); + Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP); + Hu3DModelCameraInfoSet(model, 1); + Hu3DModelLightInfoSet(model, 1); + titleGroup = HuSprGrpCreate(4); + sprite_data = HuSprAnimReadFile(TITLE_BG_ANM); + sprite = HuSprCreate(sprite_data, 0, 0); + HuSprGrpMemberSet(titleGroup, 0, sprite); + HuSprAttrSet(titleGroup, 0, HUSPR_ATTR_DISPOFF); + HuSprDrawNoSet(titleGroup, 0, 127); + HuSprPosSet(titleGroup, 0, 288, 240); + sprite_data = HuSprAnimReadFile(TITLE_COPYRIGHT_ANM); + sprite = HuSprCreate(sprite_data, 1, 0); + HuSprGrpMemberSet(titleGroup, 1, sprite); + HuSprAttrSet(titleGroup, 1, HUSPR_ATTR_DISPOFF); + HuSprPosSet(titleGroup, 1, 288, 420); + sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_ANM); + sprite = HuSprCreate(sprite_data, 2, 0); + HuSprGrpMemberSet(titleGroup, 2, sprite); + HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); + HuSprPosSet(titleGroup, 2, 288, 380); + sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM); + sprite = HuSprCreate(sprite_data, 0, 0); + HuSprGrpMemberSet(titleGroup, 3, sprite); + HuSprAttrSet(titleGroup, 3, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); + HuSprPosSet(titleGroup, 3, 288, 200); } static BOOL TitleProc(void) { - float scale; - float scale_time; - s32 y_offset[32]; - s16 i; - Hu3DModelAttrReset(titleModel[0], 1); - Hu3DModelAttrReset(titleModel[1], 1); - HuSprAttrReset(titleGroup, 0, HUSPR_ATTR_DISPOFF); - HuSprAttrReset(titleGroup, 1, HUSPR_ATTR_DISPOFF); - OSReport(">>>>>>>>MSM_SE_SEL_01 %d\n", msmSeGetEntryID(2092, y_offset)); - OSReport(">>>>>>>>SE Num %d\n", msmSeGetNumPlay(0)); - HuAudSStreamPlay(20); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - while(WipeStatGet()) { - HuPrcVSleep(); - } - HuSprAttrReset(titleGroup, 3, HUSPR_ATTR_DISPOFF); - for(i=1; i<=50; i++) { - scale = (cosd(i*1.8)*10.0)+1.0; - HuSprScaleSet(titleGroup, 3, scale, scale); - HuSprTPLvlSet(titleGroup, 3, i/50.0); - HuPrcVSleep(); - } - HuSprAttrReset(titleGroup, 2, HUSPR_ATTR_DISPOFF); - for(i=scale_time=0; i<1800; i++) { - if(i <= 10) { - HuSprTPLvlSet(titleGroup, 2, i/10.0); - } - if(HuPadBtnDown[0] & PAD_BUTTON_START) { - s32 ret = HuAudFXPlay(2092); - if(ret < 0) { - OSReport(">>>>>Error %d\n", ret); - } - HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF); - return 1; - } - scale = (sind(i*scale_time)*0.1)+0.9; - scale_time += 0.05; - if(scale_time > 5) { - scale_time = 5; - } - HuSprScaleSet(titleGroup, 2, scale, scale); - HuPrcVSleep(); - } - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - while(WipeStatGet()) { - HuPrcVSleep(); - } - Hu3DModelAttrSet(titleModel[0], 1); - Hu3DModelAttrSet(titleModel[1], 1); - Hu3DModelAttrSet(titleModel[2], 1); - HuSprAttrSet(titleGroup, 0, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(titleGroup, 1, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(titleGroup, 3, HUSPR_ATTR_DISPOFF); - return 0; + float scale; + float scale_time; + s32 y_offset[32]; + s16 i; + Hu3DModelAttrReset(titleModel[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(titleModel[1], HU3D_ATTR_DISPOFF); + HuSprAttrReset(titleGroup, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(titleGroup, 1, HUSPR_ATTR_DISPOFF); + OSReport(">>>>>>>>MSM_SE_SEL_01 %d\n", msmSeGetEntryID(2092, y_offset)); + OSReport(">>>>>>>>SE Num %d\n", msmSeGetNumPlay(0)); + HuAudSStreamPlay(20); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuSprAttrReset(titleGroup, 3, HUSPR_ATTR_DISPOFF); + for (i = 1; i <= 50; i++) { + scale = (cosd(i * 1.8) * 10.0) + 1.0; + HuSprScaleSet(titleGroup, 3, scale, scale); + HuSprTPLvlSet(titleGroup, 3, i / 50.0); + HuPrcVSleep(); + } + HuSprAttrReset(titleGroup, 2, HUSPR_ATTR_DISPOFF); + for (i = scale_time = 0; i < 1800; i++) { + if (i <= 10) { + HuSprTPLvlSet(titleGroup, 2, i / 10.0); + } + if (HuPadBtnDown[0] & PAD_BUTTON_START) { + s32 ret = HuAudFXPlay(2092); + if (ret < 0) { + OSReport(">>>>>Error %d\n", ret); + } + HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF); + return 1; + } + scale = (sind(i * scale_time) * 0.1) + 0.9; + scale_time += 0.05; + if (scale_time > 5) { + scale_time = 5; + } + HuSprScaleSet(titleGroup, 2, scale, scale); + HuPrcVSleep(); + } + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + Hu3DModelAttrSet(titleModel[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(titleModel[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(titleModel[2], HU3D_ATTR_DISPOFF); + HuSprAttrSet(titleGroup, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(titleGroup, 1, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(titleGroup, 3, HUSPR_ATTR_DISPOFF); + return 0; } diff --git a/src/REL/instDll/main.c b/src/REL/instDll/main.c index 6cc826f2..7de22da9 100644 --- a/src/REL/instDll/main.c +++ b/src/REL/instDll/main.c @@ -1,25 +1,28 @@ +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" #include "game/object.h" #include "game/objsub.h" #include "game/pad.h" -#include "game/gamework_data.h" -#include "game/hsfman.h" -#include "game/hsfdraw.h" #include "game/printfunc.h" -#include "game/frand.h" + #include "game/hsfmotion.h" -#include "game/wipe.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" #include "game/flag.h" #include "game/minigame_seq.h" -#include "game/data.h" -#include "game/audio.h" -#include "game/window.h" #include "game/sprite.h" -#include "game/chrman.h" +#include "game/window.h" +#include "game/wipe.h" + -#include "math.h" #include "ext_math.h" +#include "math.h" + #include "rel_sqrt_consts.h" @@ -54,144 +57,126 @@ static void fn_1_4528(omObjData *object); void ObjectSetup(void) { - s32 i; - omOvlHisData *his; - s32 light; - OSReport("******* INST ObjectSetup *********\n"); - lbl_1_bss_58 = omInitObjMan(50, 8192); - omGameSysInit(lbl_1_bss_58); - lbl_1_bss_8 = GWLanguageGet(); - lbl_1_bss_14 = GWSystem.mg_next; - lbl_1_bss_10 = 0; - lbl_1_bss_4 = 0; - _ClearFlag(0x1000C); - for(i=0; HuSndGrpTbl[i].ovl != OVL_INVALID; i++) { - if(HuSndGrpTbl[i].ovl == mgInfoTbl[lbl_1_bss_14].ovl) { - break; - } - } - if(HuSndGrpTbl[i].ovl != OVL_INVALID) { - HuAudSndGrpSetSet(HuSndGrpTbl[i].grpset); - } - if(mgInfoTbl[lbl_1_bss_14].ovl == OVL_M411) { - if(GWMGTypeGet() == -1) { - GWMGTypeSet(frandmod(3)); - } - } else { - GWMGTypeSet(-1); - } - HuDataDirClose(mgInfoTbl[lbl_1_bss_14].data_dir); - his = omOvlHisGet(0); - omOvlHisChg(0, OVL_RESULT, his->event, his->stat); - if(omovlevtno == 0 && mgInfoTbl[lbl_1_bss_14].ovl == OVL_M430) { - s32 team_cnt[2]; - s32 team_players[2][2]; - team_cnt[0] = team_cnt[1] = 0; - for(i=0; i<4; i++) { - team_players[GWPlayerCfg[i].group][team_cnt[GWPlayerCfg[i].group]++] = i; - } - if(frandBool()) { - GWPlayerCfg[team_players[0][0]].group = 0; - GWPlayerCfg[team_players[0][1]].group = 1; - } else { - GWPlayerCfg[team_players[0][0]].group = 1; - GWPlayerCfg[team_players[0][1]].group = 0; - } - if(frandBool()) { - GWPlayerCfg[team_players[1][0]].group = 2; - GWPlayerCfg[team_players[1][1]].group = 3; - } else { - GWPlayerCfg[team_players[1][0]].group = 3; - GWPlayerCfg[team_players[1][1]].group = 2; - } - } - if(mgInfoTbl[lbl_1_bss_14].type == 3 - || mgInfoTbl[lbl_1_bss_14].type == 5 - || mgInfoTbl[lbl_1_bss_14].type == 6 - || mgInfoTbl[lbl_1_bss_14].type == 8 - || !_CheckFlag(FLAG_ID_MAKE(0, 11))) { - HuDataDirClose(DATADIR_INST); - omSysPauseEnable(1); - omOvlCallEx(mgInfoTbl[lbl_1_bss_14].ovl, 1, 0, 0); - return; - } - lbl_1_bss_40[0].x = -67.0f; - lbl_1_bss_40[0].y = 40.0f; - lbl_1_bss_40[0].z = 0.0f; - lbl_1_bss_28[0].x = 260.0f; - lbl_1_bss_28[0].y = -103.0f; - lbl_1_bss_28[0].z = -18.0f; - lbl_1_bss_20[0] = 2885.0f; - lbl_1_bss_C = 20.0f; - lbl_1_bss_12 = GWSystem.board; - if(mgBoardHostEnableF) { - lbl_1_bss_12 = 1; - } - lbl_1_bss_40[1].x = lbl_1_bss_40[1].y = lbl_1_bss_40[1].z = 0.0f; - lbl_1_bss_28[1].x = lbl_1_bss_28[1].y = lbl_1_bss_28[1].z = 0.0f; - lbl_1_bss_20[1] = 1000.0f; - omSysPauseEnable(0); - Hu3DCameraCreate(3); - Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 15000.0f, 1.2f); - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - Hu3DCameraPerspectiveSet(2, 30.0f, 20.0f, 15000.0f, 1.2f); - Hu3DCameraViewportSet(2, 0, 0, 640, 480, 0, 1); - light = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); - Hu3DGLightInfinitytSet(light); - HuPrcChildCreate(fn_1_994, 100, 12288, 0, lbl_1_bss_58); - HuPrcChildCreate(fn_1_17E4, 100, 12288, 0, lbl_1_bss_58); - HuPrcChildCreate(fn_1_220C, 100, 12288, 0, lbl_1_bss_58); - HuPrcChildCreate(fn_1_2804, 100, 12288, 0, lbl_1_bss_58); - HuPrcChildCreate(fn_1_2FA0, 100, 12288, 0, lbl_1_bss_58); - lbl_1_bss_5C = omAddObjEx(lbl_1_bss_58, 32730, 0, 0, -1, fn_1_4174); - omAddObjEx(lbl_1_bss_58, 0, 32, 32, -1, fn_1_4528); - HuAudSeqPlay(59); - Hu3DBGColorSet(0, 0, 0); - HuWinInit(1); + s32 i; + omOvlHisData *his; + s32 light; + OSReport("******* INST ObjectSetup *********\n"); + lbl_1_bss_58 = omInitObjMan(50, 8192); + omGameSysInit(lbl_1_bss_58); + lbl_1_bss_8 = GWLanguageGet(); + lbl_1_bss_14 = GWSystem.mg_next; + lbl_1_bss_10 = 0; + lbl_1_bss_4 = 0; + _ClearFlag(0x1000C); + for (i = 0; HuSndGrpTbl[i].ovl != OVL_INVALID; i++) { + if (HuSndGrpTbl[i].ovl == mgInfoTbl[lbl_1_bss_14].ovl) { + break; + } + } + if (HuSndGrpTbl[i].ovl != OVL_INVALID) { + HuAudSndGrpSetSet(HuSndGrpTbl[i].grpset); + } + if (mgInfoTbl[lbl_1_bss_14].ovl == OVL_M411) { + if (GWMGTypeGet() == -1) { + GWMGTypeSet(frandmod(3)); + } + } + else { + GWMGTypeSet(-1); + } + HuDataDirClose(mgInfoTbl[lbl_1_bss_14].data_dir); + his = omOvlHisGet(0); + omOvlHisChg(0, OVL_RESULT, his->event, his->stat); + if (omovlevtno == 0 && mgInfoTbl[lbl_1_bss_14].ovl == OVL_M430) { + s32 team_cnt[2]; + s32 team_players[2][2]; + team_cnt[0] = team_cnt[1] = 0; + for (i = 0; i < 4; i++) { + team_players[GWPlayerCfg[i].group][team_cnt[GWPlayerCfg[i].group]++] = i; + } + if (frandBool()) { + GWPlayerCfg[team_players[0][0]].group = 0; + GWPlayerCfg[team_players[0][1]].group = 1; + } + else { + GWPlayerCfg[team_players[0][0]].group = 1; + GWPlayerCfg[team_players[0][1]].group = 0; + } + if (frandBool()) { + GWPlayerCfg[team_players[1][0]].group = 2; + GWPlayerCfg[team_players[1][1]].group = 3; + } + else { + GWPlayerCfg[team_players[1][0]].group = 3; + GWPlayerCfg[team_players[1][1]].group = 2; + } + } + if (mgInfoTbl[lbl_1_bss_14].type == 3 || mgInfoTbl[lbl_1_bss_14].type == 5 || mgInfoTbl[lbl_1_bss_14].type == 6 + || mgInfoTbl[lbl_1_bss_14].type == 8 || !_CheckFlag(FLAG_ID_MAKE(0, 11))) { + HuDataDirClose(DATADIR_INST); + omSysPauseEnable(1); + omOvlCallEx(mgInfoTbl[lbl_1_bss_14].ovl, 1, 0, 0); + return; + } + lbl_1_bss_40[0].x = -67.0f; + lbl_1_bss_40[0].y = 40.0f; + lbl_1_bss_40[0].z = 0.0f; + lbl_1_bss_28[0].x = 260.0f; + lbl_1_bss_28[0].y = -103.0f; + lbl_1_bss_28[0].z = -18.0f; + lbl_1_bss_20[0] = 2885.0f; + lbl_1_bss_C = 20.0f; + lbl_1_bss_12 = GWSystem.board; + if (mgBoardHostEnableF) { + lbl_1_bss_12 = 1; + } + lbl_1_bss_40[1].x = lbl_1_bss_40[1].y = lbl_1_bss_40[1].z = 0.0f; + lbl_1_bss_28[1].x = lbl_1_bss_28[1].y = lbl_1_bss_28[1].z = 0.0f; + lbl_1_bss_20[1] = 1000.0f; + omSysPauseEnable(0); + Hu3DCameraCreate(3); + Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 15000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + Hu3DCameraPerspectiveSet(2, 30.0f, 20.0f, 15000.0f, 1.2f); + Hu3DCameraViewportSet(2, 0, 0, 640, 480, 0, 1); + light = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); + Hu3DGLightInfinitytSet(light); + HuPrcChildCreate(fn_1_994, 100, 12288, 0, lbl_1_bss_58); + HuPrcChildCreate(fn_1_17E4, 100, 12288, 0, lbl_1_bss_58); + HuPrcChildCreate(fn_1_220C, 100, 12288, 0, lbl_1_bss_58); + HuPrcChildCreate(fn_1_2804, 100, 12288, 0, lbl_1_bss_58); + HuPrcChildCreate(fn_1_2FA0, 100, 12288, 0, lbl_1_bss_58); + lbl_1_bss_5C = omAddObjEx(lbl_1_bss_58, 32730, 0, 0, -1, fn_1_4174); + omAddObjEx(lbl_1_bss_58, 0, 32, 32, -1, fn_1_4528); + HuAudSeqPlay(59); + Hu3DBGColorSet(0, 0, 0); + HuWinInit(1); } -static s8 lbl_1_data_26[] = { - 3, 2, 1, 0, - 1, 1, 1, 0, - 1, 1, 0, 0, - 0, 1, 2, 3, - 3, 2, 1, 0, - 0, -1, -1, -1, - 0, -1, -1, -1, - 3, 2, 1, 0 -}; +static s8 lbl_1_data_26[] = { 3, 2, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 2, 3, 3, 2, 1, 0, 0, -1, -1, -1, 0, -1, -1, -1, 3, 2, 1, 0 }; -static s8 lbl_1_data_46[] = { - 4, - 4, - 4, - 4, - 4, - 1, - 1, - 4 -}; +static s8 lbl_1_data_46[] = { 4, 4, 4, 4, 4, 1, 1, 4 }; static s32 lbl_1_data_50[] = { - DATA_MAKE_NUM(DATADIR_INST, 0), - DATA_MAKE_NUM(DATADIR_INST, 1), - DATA_MAKE_NUM(DATADIR_INST, 2), - DATA_MAKE_NUM(DATADIR_INST, 3), - DATA_MAKE_NUM(DATADIR_INST, 4), - DATA_MAKE_NUM(DATADIR_INST, 0), - DATA_MAKE_NUM(DATADIR_INST, 5), - DATA_MAKE_NUM(DATADIR_INST, 0), + DATA_MAKE_NUM(DATADIR_INST, 0), + DATA_MAKE_NUM(DATADIR_INST, 1), + DATA_MAKE_NUM(DATADIR_INST, 2), + DATA_MAKE_NUM(DATADIR_INST, 3), + DATA_MAKE_NUM(DATADIR_INST, 4), + DATA_MAKE_NUM(DATADIR_INST, 0), + DATA_MAKE_NUM(DATADIR_INST, 5), + DATA_MAKE_NUM(DATADIR_INST, 0), }; static s32 lbl_1_data_70[] = { - DATA_MAKE_NUM(DATADIR_INST, 9), - DATA_MAKE_NUM(DATADIR_INST, 10), - DATA_MAKE_NUM(DATADIR_INST, 11), - DATA_MAKE_NUM(DATADIR_INST, 12), - DATA_MAKE_NUM(DATADIR_INST, 13), - DATA_MAKE_NUM(DATADIR_INST, 14), - DATA_MAKE_NUM(DATADIR_INST, 14), - DATA_MAKE_NUM(DATADIR_INST, 9), + DATA_MAKE_NUM(DATADIR_INST, 9), + DATA_MAKE_NUM(DATADIR_INST, 10), + DATA_MAKE_NUM(DATADIR_INST, 11), + DATA_MAKE_NUM(DATADIR_INST, 12), + DATA_MAKE_NUM(DATADIR_INST, 13), + DATA_MAKE_NUM(DATADIR_INST, 14), + DATA_MAKE_NUM(DATADIR_INST, 14), + DATA_MAKE_NUM(DATADIR_INST, 9), }; static void fn_1_50B0(ModelData *model, Mtx mtx); @@ -199,797 +184,768 @@ static void fn_1_5B64(ModelData *model, Mtx mtx); static void fn_1_994(void) { - - Vec pos; - Vec target; - Vec up; - - Vec spC; - Process *process; - - s16 i; - s16 model; - s16 num_coms; - s16 j; - s16 btns; - s32 status; - s32 done; - s16 group; - s32 pic; - omOvlHisData *his; - s16 sprite; - AnimData *anim; - float pos_z; - float time; - float fov_vel; - float rot_x; - - - process = HuPrcCurrentGet(); - status = -1; - group = HuSprGrpCreate(1); - anim = HuSprAnimRead(HuDataReadNum(lbl_1_data_70[mgInfoTbl[lbl_1_bss_14].type], MEMORY_DEFAULT_NUM)); - sprite = HuSprCreate(anim, 0, 0); - HuSprGrpMemberSet(group, 0, sprite); - HuSprGrpDrawNoSet(group, 127); - HuSprPosSet(group, 0, 288, 240); - if(GWMGTypeGet() == -1) { - pic = mgInfoTbl[lbl_1_bss_14].inst_pic[0]; - } else { - pic = mgInfoTbl[lbl_1_bss_14].inst_pic[GWMGTypeGet()]; - } - lbl_1_bss_18 = HuSprAnimRead(HuDataReadNumHeapShortForce(pic, MEMORY_DEFAULT_NUM, HEAP_DATA)); - Hu3DShadowCreate(20, 500, 8000); - Hu3DShadowTPLvlSet(0); - Hu3DShadowSizeSet(192); - target.x = target.y = target.z = 0; - pos.x = pos.z = 100.0f; - pos.y = 7000.0f; - up.x = up.y = 0.0f; - up.z = 1.0f; - Hu3DShadowPosSet(&pos, &up, &target); - model = Hu3DModelCreateFile(lbl_1_data_50[mgInfoTbl[lbl_1_bss_14].type]); - lbl_1_bss_1C = model; - Hu3DModelPosSet(model, 0, 2000, 0); - Hu3DModelAttrSet(model, 0x40000002); - Hu3DModelCameraSet(model, 1); - Hu3DModelShadowSet(model); - i = Hu3DHookFuncCreate(fn_1_5B64); - Hu3DModelPosSet(i, 0, -200, 0); - Hu3DModelCameraSet(i, 1); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); - while(WipeStatGet()) { - HuPrcVSleep(); - } - pos_z = -500.0f; - for(i=0; i<=50; i++) { - Hu3DModelPosSet(model, 0.0f, 2500.0*cosd(i*1.8f)-200.0, pos_z); - Hu3DModelRotSet(model, 0, 0, 45.0f*(1.0f-(i/50.0f))); - pos_z += 50.0/7.0; - Hu3DShadowTPLvlSet(0.5*(i/50.0f)); - HuPrcVSleep(); - } - HuAudFXPlay(1211); - Hu3DModelAttrReset(model, 0x40000002); - for(i=1; i<=20; i++) { - Hu3DModelPosSet(model, 0.0f, (200.0*(sind(i*2.25f)*(1.0/sind(45))))-200.0, pos_z); - rot_x = (20-i)*cosd(i*13.5f); - Hu3DModelRotSet(model, rot_x, 0.0f, 0.0f); - pos_z += 50.0/7.0; - HuPrcVSleep(); - } - Hu3DModelPosSet(model, 0.0f, 0.0f, 0.0f); - Hu3DModelAttrSet(model, 0x40000002); - HuPrcSleep(10); - HuAudFXPlay(1212); - Hu3DModelAttrReset(model, 0x40000002); - i = Hu3DHookFuncCreate(fn_1_50B0); - - Hu3DModelCameraSet(i, 1); - Hu3DModelPosSet(i, 0, 415, 0); - lbl_1_data_0 = 0; - while(Hu3DMotionTimeGet(model) < 80.0f) { - if(Hu3DMotionTimeGet(model) > 30.0f) { - lbl_1_data_0 = 2; - } - HuPrcVSleep(); - } - Hu3DModelAttrSet(model, 0x40000002); - HuDataDirClose(DATADIR_INST); - status = HuDataDirReadAsync(mgInfoTbl[lbl_1_bss_14].data_dir); - while(lbl_1_data_0 != 1) { - HuPrcVSleep(); - } - done = 0; - for(i=num_coms=0; i<4; i++) { - if(GWPlayerCfg[i].iscom) { - num_coms++; - } - } - i=0; - while(1) { - if(!done) { - for(btns=j=0; j<4; j++) { - if(!GWPlayerCfg[j].iscom) { - btns |= HuPadBtnDown[GWPlayerCfg[j].pad_idx]; - } - } - if((btns == PAD_BUTTON_START) || omSysExitReq || (num_coms == 4 && i > 60)) { - HuAudFXPlay(2); - done = 1; - } - if(btns == PAD_TRIGGER_Z) { - HuAudFXPlay(1); - done = 1; - his = omOvlHisGet(0); - omOvlHisChg(0, OVL_INST, 1, his->stat); - _SetFlag(0x1000C); - } - if(mgInstExitEnableF && (btns & PAD_BUTTON_B)) { - HuAudFXPlay(3); - if(status != -1) { - while(!HuDataGetAsyncStat(status)) { - HuPrcVSleep(); - } - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - HuAudSeqAllFadeOut(500); - while(WipeStatGet()) { - HuPrcVSleep(); - } - HuDataDirClose(mgInfoTbl[lbl_1_bss_14].data_dir); - if(mgInfoTbl[lbl_1_bss_14].ovl == OVL_M430) { - for(num_coms=0; num_coms<4; num_coms++) { - GWPlayerCfg[num_coms].group = GWPlayerCfg[num_coms].group/2; - } - } - omOvlReturnEx(1, 1); - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } - } - } - if(!lbl_1_bss_4 || !done) { - HuPrcVSleep(); - i++; - continue; - } else { - break; - } - } - if(status != -1) { - while(!HuDataGetAsyncStat(status)) { - HuPrcVSleep(); - } - } - spC = lbl_1_bss_40[0]; - pos = lbl_1_bss_28[0]; - pos_z = lbl_1_bss_20[0]; - WipeColorSet(255, 255, 255); - lbl_1_data_0 = 3; - HuPrcSleep(20); - lbl_1_data_0 = 4; - HuPrcSleep(10); - - Hu3DModelAttrReset(model, 0x40000002); - HuPrcSleep(10); - fov_vel = 0; - for(i=0; i<=60; i++) { - time = i/60.0f; - lbl_1_bss_40[0].x = spC.x+((-65.0f-spC.x)*time); - lbl_1_bss_40[0].y = spC.y+((8.0f-spC.y)*time); - lbl_1_bss_40[0].z = spC.z+(-spC.z)*time; - lbl_1_bss_28[0].x = pos.x+((17.0f-pos.x)*time); - lbl_1_bss_28[0].y = pos.y+((5.0f-pos.y)*time); - lbl_1_bss_28[0].z = pos.z+((-188.0f-pos.z)*time); - lbl_1_bss_20[0] = pos_z+((1173.0f-pos_z)*time); - if(i == 30) { - HuAudFXPlay(1210); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - HuAudSeqAllFadeOut(1000); - } - if(i == 40) { - Hu3DModelAttrSet(model, 0x40000002); - } - if(i > 20) { - lbl_1_bss_C += fov_vel; - fov_vel += 0.04; - } - HuPrcVSleep(); - } - while(WipeStatGet()) { - lbl_1_bss_C += fov_vel; - fov_vel += 0.04; - HuPrcVSleep(); - } - lbl_1_data_0 = 6; - HuPrcVSleep(); - omSysPauseEnable(1); - if(omSysExitReq) { - HuDataDirClose(mgInfoTbl[lbl_1_bss_14].data_dir); - omOvlReturnEx(1, 1); - } else { - omOvlCallEx(mgInfoTbl[lbl_1_bss_14].ovl, 1, 0, 0); - } - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } + + Vec pos; + Vec target; + Vec up; + + Vec spC; + Process *process; + + s16 i; + s16 model; + s16 num_coms; + s16 j; + s16 btns; + s32 status; + s32 done; + s16 group; + s32 pic; + omOvlHisData *his; + s16 sprite; + AnimData *anim; + float pos_z; + float time; + float fov_vel; + float rot_x; + + process = HuPrcCurrentGet(); + status = -1; + group = HuSprGrpCreate(1); + anim = HuSprAnimRead(HuDataReadNum(lbl_1_data_70[mgInfoTbl[lbl_1_bss_14].type], MEMORY_DEFAULT_NUM)); + sprite = HuSprCreate(anim, 0, 0); + HuSprGrpMemberSet(group, 0, sprite); + HuSprGrpDrawNoSet(group, 127); + HuSprPosSet(group, 0, 288, 240); + if (GWMGTypeGet() == -1) { + pic = mgInfoTbl[lbl_1_bss_14].inst_pic[0]; + } + else { + pic = mgInfoTbl[lbl_1_bss_14].inst_pic[GWMGTypeGet()]; + } + lbl_1_bss_18 = HuSprAnimRead(HuDataReadNumHeapShortForce(pic, MEMORY_DEFAULT_NUM, HEAP_DATA)); + Hu3DShadowCreate(20, 500, 8000); + Hu3DShadowTPLvlSet(0); + Hu3DShadowSizeSet(192); + target.x = target.y = target.z = 0; + pos.x = pos.z = 100.0f; + pos.y = 7000.0f; + up.x = up.y = 0.0f; + up.z = 1.0f; + Hu3DShadowPosSet(&pos, &up, &target); + model = Hu3DModelCreateFile(lbl_1_data_50[mgInfoTbl[lbl_1_bss_14].type]); + lbl_1_bss_1C = model; + Hu3DModelPosSet(model, 0, 2000, 0); + Hu3DModelAttrSet(model, HU3D_MOTATTR_PAUSE); + Hu3DModelCameraSet(model, 1); + Hu3DModelShadowSet(model); + i = Hu3DHookFuncCreate(fn_1_5B64); + Hu3DModelPosSet(i, 0, -200, 0); + Hu3DModelCameraSet(i, 1); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); + while (WipeStatGet()) { + HuPrcVSleep(); + } + pos_z = -500.0f; + for (i = 0; i <= 50; i++) { + Hu3DModelPosSet(model, 0.0f, 2500.0 * cosd(i * 1.8f) - 200.0, pos_z); + Hu3DModelRotSet(model, 0, 0, 45.0f * (1.0f - (i / 50.0f))); + pos_z += 50.0 / 7.0; + Hu3DShadowTPLvlSet(0.5 * (i / 50.0f)); + HuPrcVSleep(); + } + HuAudFXPlay(1211); + Hu3DModelAttrReset(model, 0x40000002); + for (i = 1; i <= 20; i++) { + Hu3DModelPosSet(model, 0.0f, (200.0 * (sind(i * 2.25f) * (1.0 / sind(45)))) - 200.0, pos_z); + rot_x = (20 - i) * cosd(i * 13.5f); + Hu3DModelRotSet(model, rot_x, 0.0f, 0.0f); + pos_z += 50.0 / 7.0; + HuPrcVSleep(); + } + Hu3DModelPosSet(model, 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(model, HU3D_MOTATTR_PAUSE); + HuPrcSleep(10); + HuAudFXPlay(1212); + Hu3DModelAttrReset(model, 0x40000002); + i = Hu3DHookFuncCreate(fn_1_50B0); + + Hu3DModelCameraSet(i, 1); + Hu3DModelPosSet(i, 0, 415, 0); + lbl_1_data_0 = 0; + while (Hu3DMotionTimeGet(model) < 80.0f) { + if (Hu3DMotionTimeGet(model) > 30.0f) { + lbl_1_data_0 = 2; + } + HuPrcVSleep(); + } + Hu3DModelAttrSet(model, HU3D_MOTATTR_PAUSE); + HuDataDirClose(DATADIR_INST); + status = HuDataDirReadAsync(mgInfoTbl[lbl_1_bss_14].data_dir); + while (lbl_1_data_0 != 1) { + HuPrcVSleep(); + } + done = 0; + for (i = num_coms = 0; i < 4; i++) { + if (GWPlayerCfg[i].iscom) { + num_coms++; + } + } + i = 0; + while (1) { + if (!done) { + for (btns = j = 0; j < 4; j++) { + if (!GWPlayerCfg[j].iscom) { + btns |= HuPadBtnDown[GWPlayerCfg[j].pad_idx]; + } + } + if ((btns == PAD_BUTTON_START) || omSysExitReq || (num_coms == 4 && i > 60)) { + HuAudFXPlay(2); + done = 1; + } + if (btns == PAD_TRIGGER_Z) { + HuAudFXPlay(1); + done = 1; + his = omOvlHisGet(0); + omOvlHisChg(0, OVL_INST, 1, his->stat); + _SetFlag(0x1000C); + } + if (mgInstExitEnableF && (btns & PAD_BUTTON_B)) { + HuAudFXPlay(3); + if (status != -1) { + while (!HuDataGetAsyncStat(status)) { + HuPrcVSleep(); + } + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + HuAudSeqAllFadeOut(500); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuDataDirClose(mgInfoTbl[lbl_1_bss_14].data_dir); + if (mgInfoTbl[lbl_1_bss_14].ovl == OVL_M430) { + for (num_coms = 0; num_coms < 4; num_coms++) { + GWPlayerCfg[num_coms].group = GWPlayerCfg[num_coms].group / 2; + } + } + omOvlReturnEx(1, 1); + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } + } + } + if (!lbl_1_bss_4 || !done) { + HuPrcVSleep(); + i++; + continue; + } + else { + break; + } + } + if (status != -1) { + while (!HuDataGetAsyncStat(status)) { + HuPrcVSleep(); + } + } + spC = lbl_1_bss_40[0]; + pos = lbl_1_bss_28[0]; + pos_z = lbl_1_bss_20[0]; + WipeColorSet(255, 255, 255); + lbl_1_data_0 = 3; + HuPrcSleep(20); + lbl_1_data_0 = 4; + HuPrcSleep(10); + + Hu3DModelAttrReset(model, 0x40000002); + HuPrcSleep(10); + fov_vel = 0; + for (i = 0; i <= 60; i++) { + time = i / 60.0f; + lbl_1_bss_40[0].x = spC.x + ((-65.0f - spC.x) * time); + lbl_1_bss_40[0].y = spC.y + ((8.0f - spC.y) * time); + lbl_1_bss_40[0].z = spC.z + (-spC.z) * time; + lbl_1_bss_28[0].x = pos.x + ((17.0f - pos.x) * time); + lbl_1_bss_28[0].y = pos.y + ((5.0f - pos.y) * time); + lbl_1_bss_28[0].z = pos.z + ((-188.0f - pos.z) * time); + lbl_1_bss_20[0] = pos_z + ((1173.0f - pos_z) * time); + if (i == 30) { + HuAudFXPlay(1210); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + HuAudSeqAllFadeOut(1000); + } + if (i == 40) { + Hu3DModelAttrSet(model, HU3D_MOTATTR_PAUSE); + } + if (i > 20) { + lbl_1_bss_C += fov_vel; + fov_vel += 0.04; + } + HuPrcVSleep(); + } + while (WipeStatGet()) { + lbl_1_bss_C += fov_vel; + fov_vel += 0.04; + HuPrcVSleep(); + } + lbl_1_data_0 = 6; + HuPrcVSleep(); + omSysPauseEnable(1); + if (omSysExitReq) { + HuDataDirClose(mgInfoTbl[lbl_1_bss_14].data_dir); + omOvlReturnEx(1, 1); + } + else { + omOvlCallEx(mgInfoTbl[lbl_1_bss_14].ovl, 1, 0, 0); + } + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } -static char *lbl_1_data_B0[] = { - "p_pos_a", - "p_pos_b", - "p_pos_c", - "p_pos_d" -}; +static char *lbl_1_data_B0[] = { "p_pos_a", "p_pos_b", "p_pos_c", "p_pos_d" }; -static u8 lbl_1_data_C0[] = { - 8, - 0, - 12, - 4 -}; +static u8 lbl_1_data_C0[] = { 8, 0, 12, 4 }; static void fn_1_17E4(void) { - float tplvl; - s16 i; - s16 j; - s16 time; - s16 player_cnt; - s16 order; - s16 type; - s16 group_type; - s16 group; - ModelData *model; - s16 player_mdl[4]; - s16 char_tbl[4]; - s16 platform_mdl[4]; - s16 player_order[4]; - s16 mot_tbl[4][3]; - Vec player_pos[4]; - - type = mgInfoTbl[lbl_1_bss_14].type; - player_cnt = lbl_1_data_46[type]; - for(i=0; i= 0) { - tplvl = 0.1*time; - Hu3DModelTPLvlSet(platform_mdl[j], 0.5*tplvl); - Hu3DModelScaleSet(platform_mdl[j], tplvl, tplvl, tplvl); - } - } - } - HuPrcVSleep(); - } - model = &Hu3DData[player_mdl[0]]; - while(lbl_1_data_0 != 4) { - HuPrcVSleep(); - } - for(i=0; i<=45; i++) { - for(j=0; j= 0) { + tplvl = 0.1 * time; + Hu3DModelTPLvlSet(platform_mdl[j], 0.5 * tplvl); + Hu3DModelScaleSet(platform_mdl[j], tplvl, tplvl, tplvl); + } + } + } + HuPrcVSleep(); + } + model = &Hu3DData[player_mdl[0]]; + while (lbl_1_data_0 != 4) { + HuPrcVSleep(); + } + for (i = 0; i <= 45; i++) { + for (j = 0; j < player_cnt; j++) { + time = i - lbl_1_data_C0[j]; + if (time < 0) { + continue; + } + if (time == 0) { + Hu3DModelAttrReset(player_mdl[j], 0x40000001); + CharModelVoiceEnableSet(char_tbl[i], mot_tbl[i][1], 1); + CharModelMotionSet(char_tbl[j], mot_tbl[j][1]); + } + if (time <= 30) { + Hu3DModelPosSet(player_mdl[j], player_pos[j].x, player_pos[j].y + (300.0 * sind(time * 9.0f)), player_pos[j].z - (time * 20)); + if (time <= 10) { + tplvl = 1 - (0.1 * time); + Hu3DModelTPLvlSet(platform_mdl[j], 0.5 * tplvl); + Hu3DModelScaleSet(platform_mdl[j], tplvl, tplvl, tplvl); + } + } + } + HuPrcVSleep(); + } + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } static s32 lbl_1_data_C4[] = { - DATA_MAKE_NUM(DATADIR_INST, 19), - DATA_MAKE_NUM(DATADIR_INST, 20), - DATA_MAKE_NUM(DATADIR_INST, 21), - DATA_MAKE_NUM(DATADIR_INST, 22), - DATA_MAKE_NUM(DATADIR_INST, 23), - DATA_MAKE_NUM(DATADIR_INST, 24), - DATA_MAKE_NUM(DATADIR_INST, 25), - DATA_MAKE_NUM(DATADIR_INST, 26), - DATA_MAKE_NUM(DATADIR_INST, 27), - DATA_MAKE_NUM(DATADIR_INST, 28), - DATA_MAKE_NUM(DATADIR_INST, 29), - DATA_MAKE_NUM(DATADIR_INST, 30), - DATA_MAKE_NUM(DATADIR_INST, 31), - DATA_MAKE_NUM(DATADIR_INST, 32), - DATA_MAKE_NUM(DATADIR_INST, 33), - DATA_MAKE_NUM(DATADIR_INST, 34), - DATA_MAKE_NUM(DATADIR_INST, 35), - DATA_MAKE_NUM(DATADIR_INST, 36), + DATA_MAKE_NUM(DATADIR_INST, 19), + DATA_MAKE_NUM(DATADIR_INST, 20), + DATA_MAKE_NUM(DATADIR_INST, 21), + DATA_MAKE_NUM(DATADIR_INST, 22), + DATA_MAKE_NUM(DATADIR_INST, 23), + DATA_MAKE_NUM(DATADIR_INST, 24), + DATA_MAKE_NUM(DATADIR_INST, 25), + DATA_MAKE_NUM(DATADIR_INST, 26), + DATA_MAKE_NUM(DATADIR_INST, 27), + DATA_MAKE_NUM(DATADIR_INST, 28), + DATA_MAKE_NUM(DATADIR_INST, 29), + DATA_MAKE_NUM(DATADIR_INST, 30), + DATA_MAKE_NUM(DATADIR_INST, 31), + DATA_MAKE_NUM(DATADIR_INST, 32), + DATA_MAKE_NUM(DATADIR_INST, 33), + DATA_MAKE_NUM(DATADIR_INST, 34), + DATA_MAKE_NUM(DATADIR_INST, 35), + DATA_MAKE_NUM(DATADIR_INST, 36), }; -static u16 lbl_1_data_10C[] = { - 55, - 57, - 68, - 67, - 64, - 65, - 75, - 76, - 70, - 71, - 62, - 62 -}; +static u16 lbl_1_data_10C[] = { 55, 57, 68, 67, 64, 65, 75, 76, 70, 71, 62, 62 }; static void fn_1_220C(void) { - float ofs_x; - s16 i; - s16 model; - s16 motion[2]; - ModelData *model_ptr; - model = Hu3DModelCreateFile(lbl_1_data_C4[lbl_1_bss_12*3]); - motion[0] = Hu3DJointMotionFile(model, lbl_1_data_C4[(lbl_1_bss_12*3)+1]); - motion[1] = Hu3DJointMotionFile(model, lbl_1_data_C4[(lbl_1_bss_12*3)+2]); - Hu3DMotionSet(model, motion[1]); - if(lbl_1_bss_12 == 3) { - ofs_x = 50; - } else { - ofs_x = 0; - } - Hu3DModelPosSet(model, -353.0f+ofs_x, -150, 356); - Hu3DModelRotSet(model, 0, 90, 0); - Hu3DModelCameraSet(model, 2); - while(lbl_1_data_0 != 2) { - HuPrcVSleep(); - } - HuPrcSleep(30); - Hu3DMotionTimeSet(model, 40); - HuAudFXPlay(lbl_1_data_10C[lbl_1_bss_12*2]); - for(i=0; i<=20; i++) { - Hu3DModelPosSet(model, -153.0f-(100.0f-(100.0f*(i/20.0f))), (100.0*sind(i*9.0f)) + -150.0 + ofs_x, 356.0f); - HuPrcVSleep(); - } - for(i=0; i<=10; i++) { - Hu3DModelPosSet(model, -153.0f, (15.0*sind(i*18.0f)) + -150.f + ofs_x, 356.0f); - Hu3DModelRotSet(model, 0.0f, 90-((i/10.0f)*70), 0); - HuPrcVSleep(); - } - Hu3DMotionShiftSet(model, motion[0], 0, 10, HU3D_MOTATTR_LOOP); - model_ptr = &Hu3DData[model]; - while(1) { - fontcolor = FONT_COLOR_RED; - if(lbl_1_data_0 == 3) { - break; - } - HuPrcVSleep(); - } - Hu3DMotionSet(model, motion[1]); - HuPrcSleep(20); - HuAudFXPlay(lbl_1_data_10C[(lbl_1_bss_12*2)+1]); - for(i=0; i<=30; i++) { - Hu3DModelPosSet(model, (i*5)-153, (50.0*sind(i*9.0f)) + -150.0 + ofs_x, (i*20)+356); - HuPrcVSleep(); - } - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } + float ofs_x; + s16 i; + s16 model; + s16 motion[2]; + ModelData *model_ptr; + model = Hu3DModelCreateFile(lbl_1_data_C4[lbl_1_bss_12 * 3]); + motion[0] = Hu3DJointMotionFile(model, lbl_1_data_C4[(lbl_1_bss_12 * 3) + 1]); + motion[1] = Hu3DJointMotionFile(model, lbl_1_data_C4[(lbl_1_bss_12 * 3) + 2]); + Hu3DMotionSet(model, motion[1]); + if (lbl_1_bss_12 == 3) { + ofs_x = 50; + } + else { + ofs_x = 0; + } + Hu3DModelPosSet(model, -353.0f + ofs_x, -150, 356); + Hu3DModelRotSet(model, 0, 90, 0); + Hu3DModelCameraSet(model, 2); + while (lbl_1_data_0 != 2) { + HuPrcVSleep(); + } + HuPrcSleep(30); + Hu3DMotionTimeSet(model, 40); + HuAudFXPlay(lbl_1_data_10C[lbl_1_bss_12 * 2]); + for (i = 0; i <= 20; i++) { + Hu3DModelPosSet(model, -153.0f - (100.0f - (100.0f * (i / 20.0f))), (100.0 * sind(i * 9.0f)) + -150.0 + ofs_x, 356.0f); + HuPrcVSleep(); + } + for (i = 0; i <= 10; i++) { + Hu3DModelPosSet(model, -153.0f, (15.0 * sind(i * 18.0f)) + -150.f + ofs_x, 356.0f); + Hu3DModelRotSet(model, 0.0f, 90 - ((i / 10.0f) * 70), 0); + HuPrcVSleep(); + } + Hu3DMotionShiftSet(model, motion[0], 0, 10, HU3D_MOTATTR_LOOP); + model_ptr = &Hu3DData[model]; + while (1) { + fontcolor = FONT_COLOR_RED; + if (lbl_1_data_0 == 3) { + break; + } + HuPrcVSleep(); + } + Hu3DMotionSet(model, motion[1]); + HuPrcSleep(20); + HuAudFXPlay(lbl_1_data_10C[(lbl_1_bss_12 * 2) + 1]); + for (i = 0; i <= 30; i++) { + Hu3DModelPosSet(model, (i * 5) - 153, (50.0 * sind(i * 9.0f)) + -150.0 + ofs_x, (i * 20) + 356); + HuPrcVSleep(); + } + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } static void fn_1_2804(void) { - float pos_x; - s16 i; - s16 window; - s16 window_other; - s16 j; - s16 insert_idx; - s16 rtrig; - s16 groupCnt[4]; - s16 charTbl[4][4]; - - window = HuWinExCreateStyled(640, 320, 412, 120, -1, 1); - while(lbl_1_data_0 != 0) { - HuPrcVSleep(); - } - HuWinDispOn(window); - HuWinMesSet(window, mgInfoTbl[lbl_1_bss_14].inst_mess[0]); - HuWinMesPalSet(window, 7, 0, 0, 192); - HuWinMesSpeedSet(window, 0); - window_other = HuWinExCreateStyled(640, 320, 412, 120, -1, 1); - HuWinDispOn(window_other); - HuWinMesSpeedSet(window_other, 0); - HuWinPosSet(window_other, 142.0f, 640.0f); - lbl_1_bss_6 = 0; - for(i=0; i<4; i++) { - groupCnt[i] = 0; - } - - for(i=0; i<4; i++) { - charTbl[GWPlayerCfg[i].group][groupCnt[GWPlayerCfg[i].group]] = GWPlayerCfg[i].character; - groupCnt[GWPlayerCfg[i].group]++; - } - for(i=insert_idx=0; i<4; i++) { - for(j=0; j= 4) { - lbl_1_bss_6 = 0; - } - HuWinMesSet(window, mgInfoTbl[lbl_1_bss_14].inst_mess[lbl_1_bss_6]); - HuWinMesPalSet(window, 7, 0, 0, 192); - HuWinPosSet(window_other, 142.0f, 320.0f); - for(i=0; i<=10; i++) { - HuWinPosSet(window_other, 30.0*sind(i*9.0f)+142.0, 160.0*(1.0-cosd(i*9.0f))+320.0); - HuPrcVSleep(); - } - HuPrcSleep(5); - } - lbl_1_bss_4 = 1; - HuPrcVSleep(); - } - for(i=0; i<=20; i++) { - pos_x = 500.0*(1.0-cosd(i*4.5f))+142.0; - HuWinPosSet(window, pos_x, 320); - HuPrcVSleep(); - } - HuWinAllKill(); - HuPrcEnd(); - while(1) { - HuPrcVSleep(); - } + float pos_x; + s16 i; + s16 window; + s16 window_other; + s16 j; + s16 insert_idx; + s16 rtrig; + s16 groupCnt[4]; + s16 charTbl[4][4]; + + window = HuWinExCreateStyled(640, 320, 412, 120, -1, 1); + while (lbl_1_data_0 != 0) { + HuPrcVSleep(); + } + HuWinDispOn(window); + HuWinMesSet(window, mgInfoTbl[lbl_1_bss_14].inst_mess[0]); + HuWinMesPalSet(window, 7, 0, 0, 192); + HuWinMesSpeedSet(window, 0); + window_other = HuWinExCreateStyled(640, 320, 412, 120, -1, 1); + HuWinDispOn(window_other); + HuWinMesSpeedSet(window_other, 0); + HuWinPosSet(window_other, 142.0f, 640.0f); + lbl_1_bss_6 = 0; + for (i = 0; i < 4; i++) { + groupCnt[i] = 0; + } + + for (i = 0; i < 4; i++) { + charTbl[GWPlayerCfg[i].group][groupCnt[GWPlayerCfg[i].group]] = GWPlayerCfg[i].character; + groupCnt[GWPlayerCfg[i].group]++; + } + for (i = insert_idx = 0; i < 4; i++) { + for (j = 0; j < groupCnt[i]; j++) { + HuWinInsertMesSet(window, charTbl[i][j], (s16)insert_idx); + insert_idx++; + } + } + while (lbl_1_data_0 != 2) { + HuPrcVSleep(); + } + HuPrcSleep(40); + for (i = 0; i <= 20; i++) { + pos_x = 500.0 * cosd(i * 4.5f) + 142.0; + HuWinPosSet(window, pos_x, 320); + HuPrcVSleep(); + } + lbl_1_data_0 = 1; + while (lbl_1_data_0 != 3) { + for (i = rtrig = 0; i < 4; i++) { + if (!GWPlayerCfg[i].iscom) { + rtrig |= HuPadTrigR[GWPlayerCfg[i].pad_idx] & 0xC0; + } + } + if (rtrig) { + HuAudFXPlay(1213); + lbl_1_bss_4 = 0; + HuWinMesSet(window_other, mgInfoTbl[lbl_1_bss_14].inst_mess[lbl_1_bss_6]); + HuWinMesPalSet(window_other, 7, 0, 0, 192); + lbl_1_bss_6++; + if (mgInfoTbl[lbl_1_bss_14].inst_mess[lbl_1_bss_6] == 0) { + lbl_1_bss_6++; + } + if (lbl_1_bss_6 >= 4) { + lbl_1_bss_6 = 0; + } + HuWinMesSet(window, mgInfoTbl[lbl_1_bss_14].inst_mess[lbl_1_bss_6]); + HuWinMesPalSet(window, 7, 0, 0, 192); + HuWinPosSet(window_other, 142.0f, 320.0f); + for (i = 0; i <= 10; i++) { + HuWinPosSet(window_other, 30.0 * sind(i * 9.0f) + 142.0, 160.0 * (1.0 - cosd(i * 9.0f)) + 320.0); + HuPrcVSleep(); + } + HuPrcSleep(5); + } + lbl_1_bss_4 = 1; + HuPrcVSleep(); + } + for (i = 0; i <= 20; i++) { + pos_x = 500.0 * (1.0 - cosd(i * 4.5f)) + 142.0; + HuWinPosSet(window, pos_x, 320); + HuPrcVSleep(); + } + HuWinAllKill(); + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } -static float lbl_1_data_124[] = { - 420, - 70, - 488, - 186, - 476, - 242, - 400, - 292 -}; +static float lbl_1_data_124[] = { 420, 70, 488, 186, 476, 242, 400, 292 }; static void fn_1_2FA0(void) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - s16 temp_r31; - s16 temp_r30; - char *temp_r29; - AnimData *temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - s16 temp_r24; - s16 temp_r23; - s16 temp_r22; - u16 temp_r21; - char *temp_r20; - s16 temp_r17; - s16 spA; - s16 sp8; - - s16 spC[2]; - s16 sp10[4]; - SeqWork work; - temp_r21 = 0; - for(temp_r31=0; temp_r31<16; temp_r31++) { - work.sprite[temp_r31] = work.spr_grp[temp_r31] = -1; - } - temp_r20 = MessData_MesPtrGet(messDataPtr, mgInfoTbl[lbl_1_bss_14].name_mess); - temp_r29 = temp_r20; - temp_r31 = 0; - temp_r26 = 0; - while(1) { - if(*temp_r29 == 0 || *temp_r29 == 10) { - if(*temp_r29 == 0) { - temp_r31 = 1; - } - *temp_r29 = 0; - fn_1_5EA4(&work, temp_r20, (lbl_1_bss_8 == 0) ? 1 : 0); - HuSprGrpPosSet(work.spr_grp[temp_r26], 288.0f, 240.0f); - spC[temp_r26] = work.alt_word_len; - temp_r26++; - if(temp_r31) { - break; - } - temp_r20 = temp_r29+1; - } - - temp_r29++; - } - if(temp_r26 == 1) { - temp_r22 = spC[0]; - temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18)); - temp_f29 = ((576.0f-temp_r22)-24.0f)-16.0f+227.0f; - temp_f28 = 78; - temp_f27 = 0.5f; - } else { - temp_r22 = (spC[0] > spC[1]) ? spC[0] : spC[1]; - temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 15)); - temp_f29 = ((576.0f-temp_r22)-24.0f)-16.0f+172.0f; - temp_f28 = 84; - temp_f27 = 1.0f; - } - temp_r25 = HuSprGrpCreate(1); - temp_r17 = HuSprCreate(temp_r28, 0, 0); - HuSprGrpMemberSet(temp_r25, 0, temp_r17); - HuSprPriSet(temp_r25, 0, 100); - HuSprGrpPosSet(temp_r25, 10000, 70); - HuSprScaleSet(temp_r25, 0, 1.0f, temp_f27); - for(temp_r31=0; temp_r31 0.0f) { - if(temp_f30 <= 20.0f) { - temp_f31 = 300.0*cosd(4.5f*temp_f30)+lbl_1_data_124[2]; - HuSprGrpPosSet(temp_r24, temp_f31, 186.0f); - temp_f31 = 300.0*cosd(4.5f*temp_f30)+(lbl_1_data_124[2]-88.0f); - HuWinPosSet(sp10[0], 16.0f+temp_f31, 168.0f); - } - } - temp_f30 = temp_r31-6; - if(temp_f30 > 0.0f) { - if(temp_f30 <= 20.0f) { - temp_f31 = 300.0*cosd(4.5f*temp_f30)+lbl_1_data_124[4]; - HuSprGrpPosSet(temp_r23, temp_f31, 242.0f); - temp_f31 = 300.0*cosd(4.5f*temp_f30)+(lbl_1_data_124[4]-100.0f); - HuWinPosSet(sp10[1], 16.0f+temp_f31, 224.0f); - } - } - temp_f30 = temp_r31-9; - if(temp_f30 > 0.0f) { - if(temp_f30 <= 20.0f) { - temp_f31 = 300.0*cosd(4.5f*temp_f30)+(lbl_1_data_124[6]-217.0f); - HuWinPosSet(sp10[2], 16.0f+temp_f31, 274.0f); - } - } - HuPrcVSleep(); - } - while(lbl_1_data_0 != 3) { - if(temp_r21 != lbl_1_bss_6) { - temp_f31 = 16.0f+(lbl_1_data_124[6]-217.0f); - HuWinMesSet(temp_r27, MAKE_MESSID(0x24, 0x02)+lbl_1_bss_10+temp_r21); - temp_r21 = lbl_1_bss_6; - if(lbl_1_bss_6 == 1) { - if(mgInfoTbl[lbl_1_bss_14].inst_mess[2]) { - HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02)+lbl_1_bss_10+lbl_1_bss_6); - } else { - HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x06)+lbl_1_bss_10); - } - } else { - HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02)+lbl_1_bss_10+lbl_1_bss_6); - } - for(temp_r31=0; temp_r31<=10; temp_r31++) { - HuWinPosSet(temp_r27, 30.0*sind(temp_r31*9.0f)+temp_f31, 200.0*(1.0-cosd(temp_r31*9.0f))+274.0); - HuPrcVSleep(); - } - } - HuPrcVSleep(); - } - for(temp_r31=0; temp_r31<20; temp_r31++) { - temp_f30 = 1.0-cosd(temp_r31*4.5f); - temp_f31 = temp_f29+(500.0f*temp_f30); - HuSprGrpPosSet(temp_r25, temp_f31, temp_f28); - temp_f31 = ((576.0f-(work.alt_word_len/2))-24.0f)+(500.0f*temp_f30); - for(temp_r30=0; temp_r30 spC[1]) ? spC[0] : spC[1]; + temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 15)); + temp_f29 = ((576.0f - temp_r22) - 24.0f) - 16.0f + 172.0f; + temp_f28 = 84; + temp_f27 = 1.0f; + } + temp_r25 = HuSprGrpCreate(1); + temp_r17 = HuSprCreate(temp_r28, 0, 0); + HuSprGrpMemberSet(temp_r25, 0, temp_r17); + HuSprPriSet(temp_r25, 0, 100); + HuSprGrpPosSet(temp_r25, 10000, 70); + HuSprScaleSet(temp_r25, 0, 1.0f, temp_f27); + for (temp_r31 = 0; temp_r31 < temp_r26; temp_r31++) { + HuSprGrpPosSet(work.spr_grp[temp_r31], 1000, 70); + } + temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 16)); + temp_r24 = HuSprGrpCreate(1); + spA = HuSprCreate(temp_r28, 0, 0); + HuSprGrpMemberSet(temp_r24, 0, spA); + HuSprGrpPosSet(temp_r24, 1000, 186); + HuSprPriSet(temp_r24, 0, 1000); + sp10[0] = HuWinCreate(1000, 186, 456, 42, 0); + HuWinMesSet(sp10[0], MAKE_MESSID(0x24, lbl_1_bss_10)); + HuWinBGTPLvlSet(sp10[0], 0.0f); + temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 17)); + temp_r23 = HuSprGrpCreate(1); + sp8 = HuSprCreate(temp_r28, 0, 0); + HuSprGrpMemberSet(temp_r23, 0, sp8); + HuSprGrpPosSet(temp_r23, 1000, 242); + HuSprPriSet(temp_r23, 0, 1000); + sp10[1] = HuWinCreate(1000, 242, 456, 42, 0); + HuWinMesSet(sp10[1], lbl_1_bss_10 + MAKE_MESSID(0x24, 0x01)); + HuWinBGTPLvlSet(sp10[1], 0.0f); + temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18)); + sp10[2] = HuWinCreate(1000, 292, 456, 42, 0); + HuWinMesSet(sp10[2], lbl_1_bss_10 + MAKE_MESSID(0x24, 0x02)); + HuWinBGTPLvlSet(sp10[2], 0.0f); + HuWinMesSpeedSet(sp10[2], 0); + temp_r31 = HuWinAnimSet(sp10[2], temp_r28, 0, 201, 18); + HuWinSprPriSet(sp10[2], temp_r31, 1000); + temp_r27 = HuWinCreate(1000, 292, 456, 42, 0); + HuWinBGTPLvlSet(temp_r27, 0.0f); + HuWinMesSpeedSet(temp_r27, 0); + HuWinMesSet(temp_r27, lbl_1_bss_10 + MAKE_MESSID(0x24, 0x02)); + temp_r31 = HuWinAnimSet(temp_r27, temp_r28, 0, 201, 18); + HuWinPriSet(temp_r27, 10); + HuWinSprPriSet(temp_r27, temp_r31, 11); + while (lbl_1_data_0 != 0) { + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 < 36; temp_r31++) { + temp_f30 = temp_r31; + if (temp_f30 <= 20.0f) { + temp_f31 = 300.0 * cosd(4.5f * temp_f30) + temp_f29; + HuSprGrpPosSet(temp_r25, temp_f31, temp_f28); + temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (576.0f - (temp_r22 / 2) - 24.0f); + for (temp_r30 = 0; temp_r30 < temp_r26; temp_r30++) { + HuSprGrpPosSet(work.spr_grp[temp_r30], temp_f31, (temp_r30 * 28) + 70); + } + } + temp_f30 = temp_r31 - 3; + if (temp_f30 > 0.0f) { + if (temp_f30 <= 20.0f) { + temp_f31 = 300.0 * cosd(4.5f * temp_f30) + lbl_1_data_124[2]; + HuSprGrpPosSet(temp_r24, temp_f31, 186.0f); + temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (lbl_1_data_124[2] - 88.0f); + HuWinPosSet(sp10[0], 16.0f + temp_f31, 168.0f); + } + } + temp_f30 = temp_r31 - 6; + if (temp_f30 > 0.0f) { + if (temp_f30 <= 20.0f) { + temp_f31 = 300.0 * cosd(4.5f * temp_f30) + lbl_1_data_124[4]; + HuSprGrpPosSet(temp_r23, temp_f31, 242.0f); + temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (lbl_1_data_124[4] - 100.0f); + HuWinPosSet(sp10[1], 16.0f + temp_f31, 224.0f); + } + } + temp_f30 = temp_r31 - 9; + if (temp_f30 > 0.0f) { + if (temp_f30 <= 20.0f) { + temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (lbl_1_data_124[6] - 217.0f); + HuWinPosSet(sp10[2], 16.0f + temp_f31, 274.0f); + } + } + HuPrcVSleep(); + } + while (lbl_1_data_0 != 3) { + if (temp_r21 != lbl_1_bss_6) { + temp_f31 = 16.0f + (lbl_1_data_124[6] - 217.0f); + HuWinMesSet(temp_r27, MAKE_MESSID(0x24, 0x02) + lbl_1_bss_10 + temp_r21); + temp_r21 = lbl_1_bss_6; + if (lbl_1_bss_6 == 1) { + if (mgInfoTbl[lbl_1_bss_14].inst_mess[2]) { + HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02) + lbl_1_bss_10 + lbl_1_bss_6); + } + else { + HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x06) + lbl_1_bss_10); + } + } + else { + HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02) + lbl_1_bss_10 + lbl_1_bss_6); + } + for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { + HuWinPosSet(temp_r27, 30.0 * sind(temp_r31 * 9.0f) + temp_f31, 200.0 * (1.0 - cosd(temp_r31 * 9.0f)) + 274.0); + HuPrcVSleep(); + } + } + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + temp_f30 = 1.0 - cosd(temp_r31 * 4.5f); + temp_f31 = temp_f29 + (500.0f * temp_f30); + HuSprGrpPosSet(temp_r25, temp_f31, temp_f28); + temp_f31 = ((576.0f - (work.alt_word_len / 2)) - 24.0f) + (500.0f * temp_f30); + for (temp_r30 = 0; temp_r30 < temp_r26; temp_r30++) { + HuSprGrpPosSet(work.spr_grp[temp_r30], temp_f31, (temp_r30 * 28) + 70); + } + temp_f31 = lbl_1_data_124[2] + (300.0f * temp_f30); + HuSprGrpPosSet(temp_r24, temp_f31, 186.0f); + temp_f31 = (lbl_1_data_124[2] - 88.0f) + (300.0f * temp_f30); + HuWinPosSet(sp10[0], 16.0f + temp_f31, 168); + temp_f31 = lbl_1_data_124[4] + (300.0f * temp_f30); + HuSprGrpPosSet(temp_r23, temp_f31, 242.0f); + temp_f31 = (lbl_1_data_124[4] - 100.0f) + (300.0f * temp_f30); + HuWinPosSet(sp10[1], 16.0f + temp_f31, 224); + temp_f31 = (lbl_1_data_124[6] - 184.0f) + (400.0f * temp_f30); + HuWinPosSet(sp10[2], 16.0f + temp_f31, 274); + HuPrcVSleep(); + } + MGSeqSprKill(&work); + HuPrcEnd(); + while (1) { + HuPrcVSleep(); + } } -static u16 lbl_1_data_144[2] = { - 1, - 2 -}; +static u16 lbl_1_data_144[2] = { 1, 2 }; static void fn_1_4174(omObjData *object) { - s16 i; - for(i=0; i<2; i++) { - Vec pos, target, up; - float x, y, z; - - x = lbl_1_bss_40[i].x; - y = lbl_1_bss_40[i].y; - z = lbl_1_bss_40[i].z; - - pos.x = (((sind(y)*cosd(x))*lbl_1_bss_20[i])+lbl_1_bss_28[i].x); - pos.y = (-sind(x)*lbl_1_bss_20[i])+lbl_1_bss_28[i].y; - pos.z = ((cosd(y)*cosd(x))*lbl_1_bss_20[i])+lbl_1_bss_28[i].z; - target.x = lbl_1_bss_28[i].x; - target.y = lbl_1_bss_28[i].y; - target.z = lbl_1_bss_28[i].z; - up.x = sind(y)*sind(x); - up.y = cosd(x); - up.z = cosd(y)*sind(x); - Hu3DCameraPosSet(lbl_1_data_144[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); - } -} + s16 i; + for (i = 0; i < 2; i++) { + Vec pos, target, up; + float x, y, z; + x = lbl_1_bss_40[i].x; + y = lbl_1_bss_40[i].y; + z = lbl_1_bss_40[i].z; + + pos.x = (((sind(y) * cosd(x)) * lbl_1_bss_20[i]) + lbl_1_bss_28[i].x); + pos.y = (-sind(x) * lbl_1_bss_20[i]) + lbl_1_bss_28[i].y; + pos.z = ((cosd(y) * cosd(x)) * lbl_1_bss_20[i]) + lbl_1_bss_28[i].z; + target.x = lbl_1_bss_28[i].x; + target.y = lbl_1_bss_28[i].y; + target.z = lbl_1_bss_28[i].z; + up.x = sind(y) * sind(x); + up.y = cosd(x); + up.z = cosd(y) * sind(x); + Hu3DCameraPosSet(lbl_1_data_144[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); + } +} static void fn_1_4528(omObjData *object) { - Vec pos; + Vec pos; Vec offset; Vec dir; Vec y_offset; - + f32 z_rot; s8 stick_pos; @@ -1001,7 +957,7 @@ static void fn_1_4528(omObjData *object) if (lbl_1_bss_20[0] < 100.0f) { lbl_1_bss_20[0] = 100.0f; } - pos.x = lbl_1_bss_28[0].x + (lbl_1_bss_20[0] * (sind(lbl_1_bss_40[0].y) * cosd(lbl_1_bss_40[0].x))); + pos.x = lbl_1_bss_28[0].x + (lbl_1_bss_20[0] * (sind(lbl_1_bss_40[0].y) * cosd(lbl_1_bss_40[0].x))); pos.y = (lbl_1_bss_28[0].y + (lbl_1_bss_20[0] * -sind(lbl_1_bss_40[0].x))); pos.z = (lbl_1_bss_28[0].z + (lbl_1_bss_20[0] * (cosd(lbl_1_bss_40[0].y) * cosd(lbl_1_bss_40[0].x)))); offset.x = lbl_1_bss_28[0].x - pos.x; @@ -1012,16 +968,16 @@ static void fn_1_4528(omObjData *object) dir.z = (cosd(lbl_1_bss_40[0].y) * sind(lbl_1_bss_40[0].x)); z_rot = lbl_1_bss_40[0].z; y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot)) - + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) - + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); + + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) + + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot)) - + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) - + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); - + + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) + + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); + y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot)) - + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) - + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); + + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) + + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); VECCrossProduct(&dir, &offset, &offset); VECNormalize(&offset, &offset); @@ -1046,133 +1002,134 @@ static float lbl_1_data_14C = 34; static void fn_1_50B0(ModelData *model, Mtx mtx) { - Mtx final; - Mtx inv_camera; - Mtx lookatlight; - Mtx light; - Mtx lookat; - Vec pos; - Vec up; - Vec target; + Mtx final; + Mtx inv_camera; + Mtx lookatlight; + Mtx light; + Mtx lookat; + Vec pos; + Vec up; + Vec target; - s32 x; - s32 y; - u8 r; - u8 g; - u8 b; - s16 row; - - s32 sp8 = 0; - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGB, GX_RGB8, 0); - GXSetVtxDesc(GX_VA_NRM, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); - target.x = target.z = 0.0f; - target.x = lbl_1_data_14C*sind(lbl_1_bss_40[0].y); - target.z = lbl_1_data_14C*cosd(lbl_1_bss_40[0].y); - target.y = 415.0f; - pos.x = (sind(lbl_1_bss_40[0].y)*cosd(lbl_1_bss_40[0].x)*lbl_1_bss_20[0])+lbl_1_bss_28[0].x; - pos.y = (-sind(lbl_1_bss_40[0].x)*lbl_1_bss_20[0])+lbl_1_bss_28[0].y; - pos.z = (cos(M_PI*lbl_1_bss_40[0].y/180.0)*cosd(lbl_1_bss_40[0].x)*lbl_1_bss_20[0])+lbl_1_bss_28[0].z; - up.x = -sind(lbl_1_bss_40[0].y); - up.z = -cosd(lbl_1_bss_40[0].y); - up.y = 0; - MTXLookAt(lookat, &pos, &up, &target); - MTXLightPerspective(light, lbl_1_bss_C, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - HuSprTexLoad(lbl_1_bss_18, 0, 0, GX_CLAMP, GX_CLAMP, GX_NEAR); - MTXInverse(Hu3DCameraMtx, inv_camera); - MTXConcat(inv_camera, mtx, final); - MTXConcat(light, lookat, lookatlight); - MTXConcat(lookatlight, final, final); - GXLoadTexMtxImm(final, GX_TEXMTX0, GX_MTX3x4); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); - GXSetNumTexGens(1); - GXSetNumTevStages(1); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT0, GX_DF_CLAMP, GX_AF_NONE); - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); - GXLoadPosMtxImm(mtx, GX_PNMTX0); - MTXInvXpose(mtx, final); - GXLoadNrmMtxImm(final, GX_PNMTX0); - GXBegin(GX_TRIANGLES, GX_VTXFMT0, 2400); - row = 0; - for(y=-310; y<310; y += 31) { - for(x=-310; x<310; x += 31) { - if(row++ & 0x1) { - r = g = 0; - b = 255; - } else { - r = 255; - g = b = 0; - } - GXPosition3f32(x, 0.0f, y); - GXPosition3f32(0.0f, 1.0f, 0.0f); - GXColor3u8(r, g, b); - GXPosition3f32(x+31, 0.0f, y); - GXPosition3f32(0.0f, 1.0f, 0.0f); - GXColor3u8(r, g, b); - GXPosition3f32(x+31, 0.0f, y+31); - GXPosition3f32(0.0f, 1.0f, 0.0f); - GXColor3u8(r, g, b); - GXPosition3f32(x, 0.0f, y); - GXPosition3f32(0.0f, 1.0f, 0.0f); - GXColor3u8(r, g, b); - GXPosition3f32(x+31, 0.0f, y+31); - GXPosition3f32(0.0f, 1.0f, 0.0f); - GXColor3u8(r, g, b); - GXPosition3f32(x, 0.0f, y+31); - GXPosition3f32(0.0f, 1.0f, 0.0f); - GXColor3u8(r, g, b); - } - row++; - } - GXEnd(); + s32 x; + s32 y; + u8 r; + u8 g; + u8 b; + s16 row; + + s32 sp8 = 0; + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGB, GX_RGB8, 0); + GXSetVtxDesc(GX_VA_NRM, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + target.x = target.z = 0.0f; + target.x = lbl_1_data_14C * sind(lbl_1_bss_40[0].y); + target.z = lbl_1_data_14C * cosd(lbl_1_bss_40[0].y); + target.y = 415.0f; + pos.x = (sind(lbl_1_bss_40[0].y) * cosd(lbl_1_bss_40[0].x) * lbl_1_bss_20[0]) + lbl_1_bss_28[0].x; + pos.y = (-sind(lbl_1_bss_40[0].x) * lbl_1_bss_20[0]) + lbl_1_bss_28[0].y; + pos.z = (cos(M_PI * lbl_1_bss_40[0].y / 180.0) * cosd(lbl_1_bss_40[0].x) * lbl_1_bss_20[0]) + lbl_1_bss_28[0].z; + up.x = -sind(lbl_1_bss_40[0].y); + up.z = -cosd(lbl_1_bss_40[0].y); + up.y = 0; + MTXLookAt(lookat, &pos, &up, &target); + MTXLightPerspective(light, lbl_1_bss_C, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + HuSprTexLoad(lbl_1_bss_18, 0, 0, GX_CLAMP, GX_CLAMP, GX_NEAR); + MTXInverse(Hu3DCameraMtx, inv_camera); + MTXConcat(inv_camera, mtx, final); + MTXConcat(light, lookat, lookatlight); + MTXConcat(lookatlight, final, final); + GXLoadTexMtxImm(final, GX_TEXMTX0, GX_MTX3x4); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + GXSetNumTexGens(1); + GXSetNumTevStages(1); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT0, GX_DF_CLAMP, GX_AF_NONE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXLoadPosMtxImm(mtx, GX_PNMTX0); + MTXInvXpose(mtx, final); + GXLoadNrmMtxImm(final, GX_PNMTX0); + GXBegin(GX_TRIANGLES, GX_VTXFMT0, 2400); + row = 0; + for (y = -310; y < 310; y += 31) { + for (x = -310; x < 310; x += 31) { + if (row++ & 0x1) { + r = g = 0; + b = 255; + } + else { + r = 255; + g = b = 0; + } + GXPosition3f32(x, 0.0f, y); + GXPosition3f32(0.0f, 1.0f, 0.0f); + GXColor3u8(r, g, b); + GXPosition3f32(x + 31, 0.0f, y); + GXPosition3f32(0.0f, 1.0f, 0.0f); + GXColor3u8(r, g, b); + GXPosition3f32(x + 31, 0.0f, y + 31); + GXPosition3f32(0.0f, 1.0f, 0.0f); + GXColor3u8(r, g, b); + GXPosition3f32(x, 0.0f, y); + GXPosition3f32(0.0f, 1.0f, 0.0f); + GXColor3u8(r, g, b); + GXPosition3f32(x + 31, 0.0f, y + 31); + GXPosition3f32(0.0f, 1.0f, 0.0f); + GXColor3u8(r, g, b); + GXPosition3f32(x, 0.0f, y + 31); + GXPosition3f32(0.0f, 1.0f, 0.0f); + GXColor3u8(r, g, b); + } + row++; + } + GXEnd(); } static void fn_1_5B64(ModelData *model, Mtx mtx) { - s32 sp8 = 0; - GXTexObj tex; - Mtx final; - Mtx inv_camera; - Mtx shadow; - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXInitTexObj(&tex, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_TF_I8, GX_CLAMP, GX_CLAMP, GX_FALSE); - GXInitTexObjLOD(&tex, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + s32 sp8 = 0; + GXTexObj tex; + Mtx final; + Mtx inv_camera; + Mtx shadow; + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXInitTexObj(&tex, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_TF_I8, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&tex, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); GXLoadTexObj(&tex, 0); - MTXInverse(Hu3DCameraMtx, inv_camera); - MTXConcat(inv_camera, mtx, final); - MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, shadow); - MTXConcat(shadow, final, final); - GXLoadTexMtxImm(final, GX_TEXMTX9, GX_MTX3x4); - GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX9); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); - GXSetNumTexGens(1); - GXSetNumTevStages(1); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT0, GX_DF_CLAMP, GX_AF_NONE); - GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); - GXLoadPosMtxImm(mtx, GX_PNMTX0); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32(-2000.0f, 0, -2000.0f); - GXPosition3f32(2000.0f, 0, -2000.0f); - GXPosition3f32(2000.0f, 0, 2000.0f); - GXPosition3f32(-2000.0f, 0, 2000.0f); - GXEnd(); + MTXInverse(Hu3DCameraMtx, inv_camera); + MTXConcat(inv_camera, mtx, final); + MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, shadow); + MTXConcat(shadow, final, final); + GXLoadTexMtxImm(final, GX_TEXMTX9, GX_MTX3x4); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX9); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + GXSetNumTexGens(1); + GXSetNumTevStages(1); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT0, GX_DF_CLAMP, GX_AF_NONE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXLoadPosMtxImm(mtx, GX_PNMTX0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-2000.0f, 0, -2000.0f); + GXPosition3f32(2000.0f, 0, -2000.0f); + GXPosition3f32(2000.0f, 0, 2000.0f); + GXPosition3f32(-2000.0f, 0, 2000.0f); + GXEnd(); } diff --git a/src/REL/m401Dll/main.c b/src/REL/m401Dll/main.c index 59196d4c..09b7a1cf 100644 --- a/src/REL/m401Dll/main.c +++ b/src/REL/m401Dll/main.c @@ -606,7 +606,7 @@ void fn_2_20B0(omObjData *object) Vec sp8; HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[4]); temp_r30->type = 2; - Hu3DModelAttrReset(object->model[7], 1); + Hu3DModelAttrReset(object->model[7], HU3D_ATTR_DISPOFF); sp8.x = 0; sp8.y = -370; sp8.z = -43000; @@ -617,8 +617,8 @@ void fn_2_20B0(omObjData *object) sp8.z = -32000; lbl_2_bss_CC = fn_2_10A88(&sp8, 3); lbl_2_bss_90[2] = HuAudFXEmiterPlay(1291, &sp8); - Hu3DModelAttrReset(object->model[2], 1); - Hu3DModelAttrSet(object->model[2], 0xC0000001); + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[2], HU3D_CLUSTER_ATTR_LOOP); } void fn_2_21F8(omObjData *object) @@ -631,11 +631,11 @@ void fn_2_21F8(omObjData *object) HsfObject *temp_r29 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[0]); s32 temp_r28; temp_r29->type = 2; - Hu3DModelAttrReset(object->model[0], 1); - Hu3DModelAttrReset(object->model[1], 1); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DModelAttrSet(object->model[1], 0x40000001); - Hu3DModelAttrReset(object->model[3], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[1], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(object->model[3], HU3D_ATTR_DISPOFF); lbl_2_bss_44.x = 0; lbl_2_bss_44.y = 100; lbl_2_bss_44.z = 0; @@ -663,8 +663,8 @@ void fn_2_21F8(omObjData *object) sp14.z = -4720; lbl_2_bss_D4 = fn_2_10A88(&sp14, 3); lbl_2_bss_90[1] = HuAudFXEmiterPlay(1291, &sp14); - Hu3DModelAttrReset(object->model[2], 1); - Hu3DModelAttrSet(object->model[2], 0xC0000001); + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[2], HU3D_CLUSTER_ATTR_LOOP); temp_r28 = 4; for (temp_r30 = 0; temp_r30 < temp_r28; temp_r30++) { sp8.x = -340.0f + ((1.0f / 255.0f) * (680.0f * frandu8())); @@ -690,13 +690,13 @@ void fn_2_26E0(omObjData *object) Vec sp8; Work2FA4 *temp_r30; s32 temp_r29; - Hu3DModelAttrReset(object->model[4], 1); + Hu3DModelAttrReset(object->model[4], HU3D_ATTR_DISPOFF); Hu3DModelClusterAttrSet(object->model[4], 0, 0xC0000001); - Hu3DModelAttrReset(object->model[8], 1); - Hu3DModelAttrSet(object->model[8], 0x40000001); - Hu3DModelAttrSet(object->model[4], 0x40000001); + Hu3DModelAttrReset(object->model[8], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[8], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[4], HU3D_MOTATTR_LOOP); Hu3DModelShadowMapSet(object->model[4]); - Hu3DModelAttrReset(object->model[5], 1); + Hu3DModelAttrReset(object->model[5], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(object->model[4], 0, 0, 0); Hu3DModelAmbSet(object->model[4], 1, 1, 1); Hu3DModelPosSet(object->model[5], 0, 0, 0); @@ -711,7 +711,7 @@ void fn_2_26E0(omObjData *object) temp_r30->unk14[1].z = -50; for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { Hu3DModelPosSet(object->model[temp_r29 + 9], temp_r30->unk14[temp_r29].x, temp_r30->unk14[temp_r29].y, temp_r30->unk14[temp_r29].z); - Hu3DModelAttrReset(object->model[temp_r29 + 9], 1); + Hu3DModelAttrReset(object->model[temp_r29 + 9], HU3D_ATTR_DISPOFF); } Hu3DMotionSet(object->model[10], object->motion[0]); Hu3DMotionSet(object->model[9], object->motion[2]); @@ -725,18 +725,18 @@ void fn_2_26E0(omObjData *object) temp_r30->unk14[1].z = -50; for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { Hu3DModelPosSet(object->model[temp_r29 + 9], temp_r30->unk14[temp_r29].x, temp_r30->unk14[temp_r29].y, temp_r30->unk14[temp_r29].z); - Hu3DModelAttrReset(object->model[temp_r29 + 9], 1); + Hu3DModelAttrReset(object->model[temp_r29 + 9], HU3D_ATTR_DISPOFF); } Hu3DMotionSet(object->model[10], object->motion[1]); Hu3DMotionSet(object->model[9], object->motion[2]); } - Hu3DModelAttrSet(object->model[9], 0x40000001); - Hu3DModelAttrSet(object->model[10], 0x40000001); + Hu3DModelAttrSet(object->model[9], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[10], HU3D_MOTATTR_LOOP); Hu3DModelRotSet(object->model[9], 0, 90, 0); Hu3DModelPosSet(object->model[11], 210, 1018, 0); Hu3DModelRotSet(object->model[11], 0, 90, 0); - Hu3DModelAttrReset(object->model[11], 1); - Hu3DModelAttrSet(object->model[11], 0x40000001); + Hu3DModelAttrReset(object->model[11], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[11], HU3D_MOTATTR_LOOP); sp2C.x = 0; sp2C.y = 1300; sp2C.z = 1300; @@ -760,9 +760,9 @@ void fn_2_2CBC(omObjData *object) { HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[0]); temp_r30->type = -1; - Hu3DModelAttrSet(object->model[3], 1); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); lbl_2_bss_D8->work[0] = 1; - Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); HuAudFXStop(lbl_2_bss_90[0]); HuAudFXStop(lbl_2_bss_90[1]); } @@ -784,8 +784,8 @@ void fn_2_2E20(omObjData *object) { HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[3]); temp_r30->type = -1; - Hu3DModelAttrSet(lbl_2_bss_100[0]->model[0], 1); - Hu3DModelAttrSet(lbl_2_bss_100[1]->model[0], 1); + Hu3DModelAttrSet(lbl_2_bss_100[0]->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_2_bss_100[1]->model[0], HU3D_ATTR_DISPOFF); lbl_2_bss_D0->work[0] = 1; HuAudFXStop(lbl_2_bss_90[0]); } @@ -794,11 +794,11 @@ void fn_2_2ED0(omObjData *object) { HsfObject *temp_r30 = Hu3DModelObjPtrGet(object->model[0], lbl_2_data_124[4]); temp_r30->type = -1; - Hu3DModelAttrSet(object->model[7], 1); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[7], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); lbl_2_bss_8->work[0] = 1; lbl_2_bss_CC->work[0] = 1; - Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); HuAudFXStop(lbl_2_bss_90[1]); HuAudFXStop(lbl_2_bss_90[2]); } @@ -823,31 +823,31 @@ void fn_2_2FA4(omObjData *object) temp_r30->unk8.z = 0; temp_r30->unk2C = 0; object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x00)); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x01)); - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x07)); - Hu3DModelAttrSet(object->model[2], 1); - Hu3DModelAttrSet(object->model[2], 0x40000001); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[2], HU3D_MOTATTR_LOOP); object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x1F)); - Hu3DModelAttrSet(object->model[3], 1); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x20)); - Hu3DModelAttrSet(object->model[4], 1); + Hu3DModelAttrSet(object->model[4], HU3D_ATTR_DISPOFF); object->model[11] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x2C)); - Hu3DModelAttrSet(object->model[11], 1); + Hu3DModelAttrSet(object->model[11], HU3D_ATTR_DISPOFF); object->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x03)); - Hu3DModelAttrSet(object->model[7], 1); + Hu3DModelAttrSet(object->model[7], HU3D_ATTR_DISPOFF); object->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x23)); - Hu3DModelAttrSet(object->model[8], 1); + Hu3DModelAttrSet(object->model[8], HU3D_ATTR_DISPOFF); object->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x28)); - Hu3DModelAttrSet(object->model[9], 1); + Hu3DModelAttrSet(object->model[9], HU3D_ATTR_DISPOFF); object->model[10] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x28)); - Hu3DModelAttrSet(object->model[10], 1); + Hu3DModelAttrSet(object->model[10], HU3D_ATTR_DISPOFF); Hu3DModelShadowSet(object->model[10]); object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x21)); - Hu3DModelAttrSet(object->model[5], 1); + Hu3DModelAttrSet(object->model[5], HU3D_ATTR_DISPOFF); object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x22)); - Hu3DModelAttrSet(object->model[6], 1); + Hu3DModelAttrSet(object->model[6], HU3D_ATTR_DISPOFF); object->motion[0] = Hu3DJointMotionFile(object->model[10], DATA_MAKE_NUM(DATADIR_M401, 0x29)); object->motion[1] = Hu3DJointMotionFile(object->model[10], DATA_MAKE_NUM(DATADIR_M401, 0x2A)); object->motion[2] = Hu3DJointMotionFile(object->model[9], DATA_MAKE_NUM(DATADIR_M401, 0x2B)); @@ -1080,16 +1080,16 @@ void fn_2_3B24(omObjData *object) object->model[2] = Hu3DModelLink(lbl_2_bss_118[0]->model[2]); object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x27)); } - Hu3DModelAttrSet(object->model[3], 0x40000002); + Hu3DModelAttrSet(object->model[3], HU3D_MOTATTR_PAUSE); Hu3DModelClusterAttrSet(object->model[3], 0, 0xC0000002); Hu3DModelLayerSet(object->model[3], 7); for (temp_r28 = 0; temp_r28 < 10; temp_r28++) { object->motion[temp_r28] = CharModelMotionCreate(lbl_2_data_4[temp_r27], lbl_2_data_158[temp_r27][temp_r28]); } CharModelMotionSet(temp_r31->unk86, object->motion[2]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DModelAttrSet(object->model[2], 1); - Hu3DModelAttrSet(object->model[2], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[2], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(object->model[2], 2); Hu3DModelAmbSet(object->model[0], 1, 1, 1); Hu3DModelShadowSet(object->model[0]); @@ -1168,7 +1168,7 @@ void fn_2_3F28(omObjData *object) temp_r31->unk30.x = object->trans.x; temp_r31->unk30.y = object->trans.y; temp_r31->unk30.z = object->trans.z; - Hu3DModelAttrReset(object->model[3], 1); + Hu3DModelAttrReset(object->model[3], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(object->model[3], 0x40000002); Hu3DModelClusterAttrReset(object->model[3], 0, 0xC0000002); Hu3DModelPosSet(object->model[3], object->trans.x, 100, 100 + object->trans.z); @@ -1269,8 +1269,8 @@ void fn_2_48A0(omObjData *object) if (object->trans.y >= 910.0f) { if (temp_r31->unk6C == 0) { temp_r31->unk6C = 1; - Hu3DModelAttrReset(object->model[2], 1); - Hu3DModelAttrSet(object->model[2], 0x40000001); + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[2], HU3D_MOTATTR_LOOP); Hu3DModelPosSet(object->model[2], object->trans.x, 950, 30 + object->trans.z); Hu3DModelScaleSet(object->model[2], 1, 1, 1); Hu3DMotionTimeSet(object->model[2], 0); @@ -1328,7 +1328,7 @@ void fn_2_48A0(omObjData *object) temp_r31->unk80 -= 360.0f; } if (temp_r31->unk6E == 13) { - Hu3DModelAttrReset(lbl_2_bss_10C->model[6], 1); + Hu3DModelAttrReset(lbl_2_bss_10C->model[6], HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(lbl_2_bss_10C->model[6], 0); } else if (temp_r31->unk6E == 50) { @@ -1383,14 +1383,14 @@ void fn_2_48A0(omObjData *object) if (temp_r31->unk6C == 0) { temp_r31->unk6C = 1; omVibrate(temp_r31->unk4, 12, 4, 2); - Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(object->model[2], 0x40000002); - Hu3DModelAttrSet(object->model[2], 0x40000001); + Hu3DModelAttrSet(object->model[2], HU3D_MOTATTR_LOOP); Hu3DModelPosSet(object->model[2], object->trans.x, 950, 30 + object->trans.z); Hu3DModelScaleSet(object->model[2], 1, 1, 1); Hu3DMotionTimeSet(object->model[2], 0); Hu3DModelAttrReset(object->model[3], 0x40000002); - Hu3DModelAttrReset(object->model[3], 1); + Hu3DModelAttrReset(object->model[3], HU3D_ATTR_DISPOFF); Hu3DModelClusterAttrReset(object->model[3], 0, 0xC0000002); Hu3DModelPosSet(object->model[3], object->trans.x, 0, 30 + object->trans.z); Hu3DMotionTimeSet(object->model[3], 0); @@ -1584,10 +1584,10 @@ void fn_2_5CC0(omObjData *object) temp_r31->unk6A = 0; } if (temp_r31->unk7A & 0x1) { - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); } } if (temp_f29 != 0) { @@ -2075,7 +2075,7 @@ void fn_2_7CB4(omObjData *object) temp_r31->unk28 = 0; object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x0B)); Hu3DModelClusterAttrSet(object->model[0], 0, 0xC0000001); - Hu3DModelAttrSet(object->model[0], 0x1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAmbSet(object->model[0], 0.6f, 0.6f, 0.6f); Hu3DModelShadowSet(object->model[0]); temp_r31->unk0 = 0; @@ -2243,7 +2243,7 @@ void fn_2_8868(omObjData *object) Work7CB4 *temp_r31; temp_r31 = object->data; if (lbl_2_bss_60.z < -20800.0f) { - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); temp_r31->unk2C = 0; temp_r31->unk2E = 0; temp_r31->unk30 = 0; @@ -2265,7 +2265,7 @@ void fn_2_8968(omObjData *object) temp_r29->unk1E = ((frand() % 15) + 22) * 0.43478262f; } if (fn_2_8450(object)) { - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); object->func = fn_2_8B58; } } @@ -2277,7 +2277,7 @@ void fn_2_8B58(omObjData *object) Work7CB4 *temp_r31; temp_r31 = object->data; if (lbl_2_bss_60.z < -30500.0f) { - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); temp_r31->unk2C = 1; temp_r31->unk2E = 0; temp_r31->unk30 = 0; @@ -2299,7 +2299,7 @@ void fn_2_8C58(omObjData *object) temp_r29->unk1E = ((frand() % 15) + lbl_2_data_424[lbl_2_bss_14++]) * 0.43478262f; } if (fn_2_8450(object)) { - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); object->func = NULL; } } @@ -2326,8 +2326,8 @@ void fn_2_8E74(omObjData *object) object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x0D)); object->motion[0] = Hu3DJointMotionFile(object->model[0], DATA_MAKE_NUM(DATADIR_M401, 0x10)); Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); omSetTra(object, -1000, 0, -23000); omSetRot(object, 0, 90, 0); temp_r31->unkC.x = 1000.0f - object->trans.x; @@ -2349,7 +2349,7 @@ void fn_2_91AC(omObjData *object, Vec *pos) temp_r30 = object->data; temp_r30->unk18 = *pos; temp_r30->unk34.z = (1.0f / 255.0f) * (360.0f * frandu8()); - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); omSetTra(object, pos->x, pos->y, pos->z); object->work[2] = HuAudFXEmiterPlay(1284, &pos); object->func = fn_2_9298; @@ -2377,7 +2377,7 @@ void fn_2_9298(omObjData *object) spC.z = object->trans.z; HuAudFXEmiterUpDate(object->work[2], &spC); if (object->trans.z > lbl_2_bss_6C.z - 220.0f) { - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); HuAudFXStop(object->work[2]); object->func = NULL; } @@ -2393,8 +2393,8 @@ void fn_2_95E4(omObjData *object) omSetTra(object, 3000, 0, -37000); omSetRot(object, 0, 270, 0); Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x1); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); object->work[3] = 3; Hu3DModelShadowSet(object->model[0]); object->func = fn_2_979C; @@ -2403,10 +2403,10 @@ void fn_2_95E4(omObjData *object) void fn_2_9734(s32 flag) { if (flag) { - Hu3DModelAttrReset(lbl_2_bss_FC->model[0], 1); + Hu3DModelAttrReset(lbl_2_bss_FC->model[0], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrSet(lbl_2_bss_FC->model[0], 1); + Hu3DModelAttrSet(lbl_2_bss_FC->model[0], HU3D_ATTR_DISPOFF); } } @@ -2419,7 +2419,7 @@ void fn_2_979C(omObjData *object) omSetTra(object, -2500, -800, -21000); omSetRot(object, 0, 125, 0); Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); object->func = fn_2_988C; } } @@ -2447,7 +2447,7 @@ void fn_2_99A4(omObjData *object) omSetTra(object, 3000, temp_f31, -37000); omSetRot(object, 0, 270, 0); Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); object->func = fn_2_9B90; lbl_2_bss_78.x = object->trans.x; lbl_2_bss_78.y = object->trans.y; @@ -2490,7 +2490,7 @@ void fn_2_9D00(Process *objman) for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { temp_r31->motion[temp_r30] = Hu3DJointMotionFile(temp_r31->model[0], lbl_2_data_42C[temp_r30]); } - Hu3DModelAttrSet(temp_r31->model[0], 1); + Hu3DModelAttrSet(temp_r31->model[0], HU3D_ATTR_DISPOFF); temp_r31->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(WorkA318), MEMORY_DEFAULT_NUM); Hu3DModelShadowSet(temp_r31->model[0]); temp_r31->work[3] = 1; @@ -2510,12 +2510,12 @@ void fn_2_9E28(float arg1, float arg2) temp_f31 = arg1; for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { temp_r30 = lbl_2_bss_E4[temp_r31]->data; - Hu3DModelAttrReset(lbl_2_bss_E4[temp_r31]->model[0], 1); + Hu3DModelAttrReset(lbl_2_bss_E4[temp_r31]->model[0], HU3D_ATTR_DISPOFF); temp_f29 = -400.0f + ((1.0f / 255.0f) * (800.0f * frandu8())); temp_r30->unk0.x = -250.0f + ((1.0f / 255.0f) * (500.0f * frandu8())); omSetTra(lbl_2_bss_E4[temp_r31], temp_f29, temp_r30->unk0.x + lbl_2_bss_60.y, temp_f31); Hu3DMotionSet(lbl_2_bss_E4[temp_r31]->model[0], lbl_2_bss_E4[temp_r31]->motion[0]); - Hu3DModelAttrSet(lbl_2_bss_E4[temp_r31]->model[0], 0x40000001); + Hu3DModelAttrSet(lbl_2_bss_E4[temp_r31]->model[0], HU3D_MOTATTR_LOOP); temp_f31 += temp_f30; temp_r30->unkC = (frand() % 30) + 30; temp_r30->unk0.z = 0; @@ -2583,7 +2583,7 @@ void fn_2_A318(omObjData *object) temp_r30->unk0.z = 0; temp_r30->unkC = (frand() % 30) + 25; Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); } } if (temp_r30->unk0.x < -300.0f) { @@ -2600,7 +2600,7 @@ void fn_2_A318(omObjData *object) } omSetTra(object, object->trans.x, temp_r30->unk0.x + lbl_2_bss_60.y, object->trans.z); if (object->trans.z > lbl_2_bss_6C.z - 160.0f) { - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); object->func = NULL; } } @@ -2927,12 +2927,12 @@ void fn_2_CAB0(omObjData *object) Hu3DGLightColorSet(lbl_2_bss_A8, temp_r28, temp_r28, temp_r28, 255); if (lbl_2_bss_60.z < -26600.0f && lbl_2_bss_60.z > -27500.0f) { for (temp_r31 = 0; temp_r31 < 9; temp_r31++) { - Hu3DModelAttrSet(object->model[temp_r31], 1); + Hu3DModelAttrSet(object->model[temp_r31], HU3D_ATTR_DISPOFF); } } else { for (temp_r31 = 0; temp_r31 < 9; temp_r31++) { - Hu3DModelAttrReset(object->model[temp_r31], 1); + Hu3DModelAttrReset(object->model[temp_r31], HU3D_ATTR_DISPOFF); } } } @@ -3082,8 +3082,8 @@ void fn_2_DBCC(s16 arg0) } temp_f31 = 0.5f + ((1.0f / 255.0f) * (0.5f * frandu8())); Hu3DModelScaleSet(temp_r31->model[temp_r30], temp_f31, temp_f31, temp_f31); - Hu3DModelAttrSet(temp_r31->model[temp_r30], 1); - Hu3DModelAttrSet(temp_r31->model[temp_r30], 0x40000001); + Hu3DModelAttrSet(temp_r31->model[temp_r30], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(temp_r31->model[temp_r30], HU3D_MOTATTR_LOOP); Hu3DMotionTimeSet(temp_r31->model[temp_r30], (1.0f / 255.0f) * (Hu3DMotionMaxTimeGet(temp_r31->model[temp_r30]) * frandu8())); temp_r28[temp_r30] = 0; } @@ -3174,7 +3174,7 @@ void fn_2_E24C(omObjData *object) temp_r28 = lbl_2_bss_C4->data; for (temp_r30 = 0; temp_r30 < temp_r31->unk0; temp_r30++) { temp_r28[temp_r31->unk30[temp_r30]] = 0; - Hu3DModelAttrSet(object->model[temp_r30], 1); + Hu3DModelAttrSet(object->model[temp_r30], HU3D_ATTR_DISPOFF); } fn_2_DE1C(temp_r31); omDelObjEx(HuPrcCurrentGet(), object); @@ -3188,13 +3188,13 @@ void fn_2_E364(omObjData *object, s16 arg1) WorkE6E8 *temp_r29 = object->data; if (arg1 == 1) { for (temp_r31 = 0; temp_r31 < temp_r29->unk0; temp_r31++) { - Hu3DModelAttrReset(object->model[temp_r31], 1); + Hu3DModelAttrReset(object->model[temp_r31], HU3D_ATTR_DISPOFF); } object->func = fn_2_E6E8; } else { for (temp_r31 = 0; temp_r31 < temp_r29->unk0; temp_r31++) { - Hu3DModelAttrSet(object->model[temp_r31], 1); + Hu3DModelAttrSet(object->model[temp_r31], HU3D_ATTR_DISPOFF); } object->func = NULL; } diff --git a/src/REL/m401Dll/main_ex.c b/src/REL/m401Dll/main_ex.c index 61f9a5ed..34dc3dab 100644 --- a/src/REL/m401Dll/main_ex.c +++ b/src/REL/m401Dll/main_ex.c @@ -78,8 +78,8 @@ void fn_2_1041C(void) lbl_2_bss_220[1][2] = lbl_2_bss_238; for (i = 0; i < 4; i++) { lbl_2_bss_136[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M401, 0x17)); - Hu3DModelAttrSet(lbl_2_bss_136[i], 1); - Hu3DModelAttrSet(lbl_2_bss_136[i], 0x40000001); + Hu3DModelAttrSet(lbl_2_bss_136[i], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_2_bss_136[i], HU3D_MOTATTR_LOOP); Hu3DModelScaleSet(lbl_2_bss_136[i], 1.5f, 1.5f, 1.0f); Hu3DModelLayerSet(lbl_2_bss_136[i], 2); } @@ -104,9 +104,9 @@ void fn_2_1079C(void) lbl_2_bss_13E[i].unk2[0] = Hu3DParticleCreate(lbl_2_bss_250, 80); lbl_2_bss_13E[i].unk2[1] = Hu3DParticleCreate(lbl_2_bss_24C, 80); lbl_2_bss_13E[i].unk2[2] = Hu3DParticleCreate(lbl_2_bss_248, 80); - Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[0], 1); - Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[1], 1); - Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[2], 1); + Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_2_bss_13E[i].unk2[2], HU3D_ATTR_DISPOFF); } lbl_2_bss_134 = 0; } @@ -118,7 +118,7 @@ s16 fn_2_108C8(void) for (i = 0; i < 28; i++) { if (!lbl_2_bss_13E[i].unk0) { for (j = 0; j < 3; j++) { - Hu3DModelAttrReset(lbl_2_bss_13E[i].unk2[j], 1); + Hu3DModelAttrReset(lbl_2_bss_13E[i].unk2[j], HU3D_ATTR_DISPOFF); } lbl_2_bss_13E[i].unk0 = 1; return i; @@ -132,7 +132,7 @@ void fn_2_10980(s16 arg0) s32 i; lbl_2_bss_13E[arg0].unk0 = 0; for (i = 0; i < 3; i++) { - Hu3DModelAttrSet(lbl_2_bss_13E[arg0].unk2[i], 1); + Hu3DModelAttrSet(lbl_2_bss_13E[arg0].unk2[i], HU3D_ATTR_DISPOFF); } } @@ -189,7 +189,7 @@ omObjData *fn_2_10A88(Vec *arg0, s16 arg1) Hu3DModelLayerSet(temp_r31->model[temp_r30], 1); if (arg1 == 1) { temp_r31->unk10 = fn_2_10A08(); - Hu3DModelAttrReset(temp_r31->unk10, 1); + Hu3DModelAttrReset(temp_r31->unk10, HU3D_ATTR_DISPOFF); temp_r28->unk_44 = lbl_2_bss_220[1][temp_r30]; temp_r27->unk1C = 1.0f; temp_r31->work[3] = 45; @@ -382,7 +382,7 @@ void fn_2_113AC(omObjData *object) } if (temp_r30->unk10 == 0) { if (object->unk10) { - Hu3DModelAttrSet(object->unk10, 1); + Hu3DModelAttrSet(object->unk10, HU3D_ATTR_DISPOFF); } fn_2_10980(temp_r30->unk12); omDelObjEx(HuPrcCurrentGet(), object); @@ -413,7 +413,7 @@ void fn_2_118B0(omObjData *object) if (temp_r30->unk10 == 0) { if (object->unk10) { - Hu3DModelAttrSet(object->unk10, 1); + Hu3DModelAttrSet(object->unk10, HU3D_ATTR_DISPOFF); } fn_2_10980(temp_r30->unk12); omDelObjEx(HuPrcCurrentGet(), object); @@ -1059,7 +1059,7 @@ void fn_2_14738(omObjData *object) { omSetTra(object, lbl_2_bss_6C.x, lbl_2_bss_6C.y, lbl_2_bss_6C.z); if (object->work[0] == 1) { - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); omDelObjEx(HuPrcCurrentGet(), object); } } diff --git a/src/REL/m402Dll/main.c b/src/REL/m402Dll/main.c index 1510c061..745a4197 100755 --- a/src/REL/m402Dll/main.c +++ b/src/REL/m402Dll/main.c @@ -203,9 +203,7 @@ static float lbl_1_bss_8; static float lbl_1_bss_4; static u8 lbl_1_bss_0[4]; -static s16 lbl_1_data_0[] = { - 0, 1, 2, 3, 4, 5, 6, 7 -}; +static s16 lbl_1_data_0[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; static Vec lbl_1_data_10 = { 0.0f, 2500.0f, 2200.0f }; static Vec lbl_1_data_1C = { 0.0f, 1.0f, 0.0f }; @@ -220,185 +218,64 @@ static u8 lbl_1_data_5C_unused[] = { 0xFF, 0xFF, 0xFF, 0xFF }; static Vec lbl_1_data_60 = { 0.0f, 4000.0f, 1000.0f }; static Vec lbl_1_data_6C = { 0.0f, 0.0f, 0.0f }; -static s32 lbl_1_data_78[8][11] = { - { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 28), - DATA_MAKE_NUM(DATADIR_M402, 16), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 62), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), - DATA_MAKE_NUM(DATADIR_M402, 8), - DATA_MAKE_NUM(DATADIR_M402, 0), - DATA_MAKE_NUM(DATADIR_M402, 24), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 117), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 76) - }, - { - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 2), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 28), - DATA_MAKE_NUM(DATADIR_M402, 17), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 62), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 3), - DATA_MAKE_NUM(DATADIR_M402, 9), - DATA_MAKE_NUM(DATADIR_M402, 1), - DATA_MAKE_NUM(DATADIR_M402, 25), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 117), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 76) - }, - { - DATA_MAKE_NUM(DATADIR_PEACHMOT, 0), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 2), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 28), - DATA_MAKE_NUM(DATADIR_M402, 18), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 62), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 3), - DATA_MAKE_NUM(DATADIR_M402, 10), - DATA_MAKE_NUM(DATADIR_M402, 2), - DATA_MAKE_NUM(DATADIR_M402, 26), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 117), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 76) - }, - { - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 2), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 28), - DATA_MAKE_NUM(DATADIR_M402, 19), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 62), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 3), - DATA_MAKE_NUM(DATADIR_M402, 11), - DATA_MAKE_NUM(DATADIR_M402, 3), - DATA_MAKE_NUM(DATADIR_M402, 27), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 117), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 76) - }, - { - DATA_MAKE_NUM(DATADIR_WARIOMOT, 0), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 2), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 28), - DATA_MAKE_NUM(DATADIR_M402, 20), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 62), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 3), - DATA_MAKE_NUM(DATADIR_M402, 12), - DATA_MAKE_NUM(DATADIR_M402, 4), - DATA_MAKE_NUM(DATADIR_M402, 28), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 117), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 76) - }, - { - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 2), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 28), - DATA_MAKE_NUM(DATADIR_M402, 21), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 62), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 3), - DATA_MAKE_NUM(DATADIR_M402, 13), - DATA_MAKE_NUM(DATADIR_M402, 5), - DATA_MAKE_NUM(DATADIR_M402, 29), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 117), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 76) - }, - { - DATA_MAKE_NUM(DATADIR_DAISYMOT, 0), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 2), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 28), - DATA_MAKE_NUM(DATADIR_M402, 22), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 62), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 3), - DATA_MAKE_NUM(DATADIR_M402, 14), - DATA_MAKE_NUM(DATADIR_M402, 6), - DATA_MAKE_NUM(DATADIR_M402, 30), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 117), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 76) - }, - { - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 2), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 28), - DATA_MAKE_NUM(DATADIR_M402, 23), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 62), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 3), - DATA_MAKE_NUM(DATADIR_M402, 15), - DATA_MAKE_NUM(DATADIR_M402, 7), - DATA_MAKE_NUM(DATADIR_M402, 31), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 117), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 76) - } -}; +static s32 lbl_1_data_78[8][11] = { { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), DATA_MAKE_NUM(DATADIR_MARIOMOT, 28), + DATA_MAKE_NUM(DATADIR_M402, 16), DATA_MAKE_NUM(DATADIR_MARIOMOT, 62), DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_M402, 8), DATA_MAKE_NUM(DATADIR_M402, 0), DATA_MAKE_NUM(DATADIR_M402, 24), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 117), DATA_MAKE_NUM(DATADIR_MARIOMOT, 76) }, + { DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 2), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 28), DATA_MAKE_NUM(DATADIR_M402, 17), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 62), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 3), DATA_MAKE_NUM(DATADIR_M402, 9), DATA_MAKE_NUM(DATADIR_M402, 1), + DATA_MAKE_NUM(DATADIR_M402, 25), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 117), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 76) }, + { DATA_MAKE_NUM(DATADIR_PEACHMOT, 0), DATA_MAKE_NUM(DATADIR_PEACHMOT, 2), DATA_MAKE_NUM(DATADIR_PEACHMOT, 28), DATA_MAKE_NUM(DATADIR_M402, 18), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 62), DATA_MAKE_NUM(DATADIR_PEACHMOT, 3), DATA_MAKE_NUM(DATADIR_M402, 10), DATA_MAKE_NUM(DATADIR_M402, 2), + DATA_MAKE_NUM(DATADIR_M402, 26), DATA_MAKE_NUM(DATADIR_PEACHMOT, 117), DATA_MAKE_NUM(DATADIR_PEACHMOT, 76) }, + { DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 2), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 28), DATA_MAKE_NUM(DATADIR_M402, 19), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 62), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 3), DATA_MAKE_NUM(DATADIR_M402, 11), DATA_MAKE_NUM(DATADIR_M402, 3), + DATA_MAKE_NUM(DATADIR_M402, 27), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 117), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 76) }, + { DATA_MAKE_NUM(DATADIR_WARIOMOT, 0), DATA_MAKE_NUM(DATADIR_WARIOMOT, 2), DATA_MAKE_NUM(DATADIR_WARIOMOT, 28), DATA_MAKE_NUM(DATADIR_M402, 20), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 62), DATA_MAKE_NUM(DATADIR_WARIOMOT, 3), DATA_MAKE_NUM(DATADIR_M402, 12), DATA_MAKE_NUM(DATADIR_M402, 4), + DATA_MAKE_NUM(DATADIR_M402, 28), DATA_MAKE_NUM(DATADIR_WARIOMOT, 117), DATA_MAKE_NUM(DATADIR_WARIOMOT, 76) }, + { DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 2), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 28), DATA_MAKE_NUM(DATADIR_M402, 21), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 62), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 3), DATA_MAKE_NUM(DATADIR_M402, 13), DATA_MAKE_NUM(DATADIR_M402, 5), + DATA_MAKE_NUM(DATADIR_M402, 29), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 117), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 76) }, + { DATA_MAKE_NUM(DATADIR_DAISYMOT, 0), DATA_MAKE_NUM(DATADIR_DAISYMOT, 2), DATA_MAKE_NUM(DATADIR_DAISYMOT, 28), DATA_MAKE_NUM(DATADIR_M402, 22), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 62), DATA_MAKE_NUM(DATADIR_DAISYMOT, 3), DATA_MAKE_NUM(DATADIR_M402, 14), DATA_MAKE_NUM(DATADIR_M402, 6), + DATA_MAKE_NUM(DATADIR_M402, 30), DATA_MAKE_NUM(DATADIR_DAISYMOT, 117), DATA_MAKE_NUM(DATADIR_DAISYMOT, 76) }, + { DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 2), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 28), + DATA_MAKE_NUM(DATADIR_M402, 23), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 62), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 3), DATA_MAKE_NUM(DATADIR_M402, 15), + DATA_MAKE_NUM(DATADIR_M402, 7), DATA_MAKE_NUM(DATADIR_M402, 31), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 117), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 76) } }; -static s32 lbl_1_data_1D8[] = { - DATA_MAKE_NUM(DATADIR_M402, 38), - DATA_MAKE_NUM(DATADIR_M402, 40), - DATA_MAKE_NUM(DATADIR_M402, 37), - DATA_MAKE_NUM(DATADIR_M402, 39) -}; +static s32 lbl_1_data_1D8[] + = { DATA_MAKE_NUM(DATADIR_M402, 38), DATA_MAKE_NUM(DATADIR_M402, 40), DATA_MAKE_NUM(DATADIR_M402, 37), DATA_MAKE_NUM(DATADIR_M402, 39) }; -static s32 lbl_1_data_1E8[] = { - DATA_MAKE_NUM(DATADIR_M402, 41), - DATA_MAKE_NUM(DATADIR_M402, 42), - DATA_MAKE_NUM(DATADIR_M402, 43) -}; +static s32 lbl_1_data_1E8[] = { DATA_MAKE_NUM(DATADIR_M402, 41), DATA_MAKE_NUM(DATADIR_M402, 42), DATA_MAKE_NUM(DATADIR_M402, 43) }; static s32 lbl_1_data_1F4 = DATA_MAKE_NUM(DATADIR_M402, 44); -static s32 lbl_1_data_1F8[] = { - DATA_MAKE_NUM(DATADIR_M402, 45), - DATA_MAKE_NUM(DATADIR_M402, 46) -}; +static s32 lbl_1_data_1F8[] = { DATA_MAKE_NUM(DATADIR_M402, 45), DATA_MAKE_NUM(DATADIR_M402, 46) }; -static Vec lbl_1_data_200[] = { - { 450.0f, 290.0f, 0.0f }, - { -450.0f, 290.0f, 0.0f } -}; +static Vec lbl_1_data_200[] = { { 450.0f, 290.0f, 0.0f }, { -450.0f, 290.0f, 0.0f } }; -static s32 lbl_1_data_218[] = { - DATA_MAKE_NUM(DATADIR_M402, 48), - DATA_MAKE_NUM(DATADIR_M402, 50), - DATA_MAKE_NUM(DATADIR_M402, 47), - DATA_MAKE_NUM(DATADIR_M402, 49), - DATA_MAKE_NUM(DATADIR_M402, 51), - DATA_MAKE_NUM(DATADIR_M402, 52), - DATA_MAKE_NUM(DATADIR_M402, 53) -}; +static s32 lbl_1_data_218[] = { DATA_MAKE_NUM(DATADIR_M402, 48), DATA_MAKE_NUM(DATADIR_M402, 50), DATA_MAKE_NUM(DATADIR_M402, 47), + DATA_MAKE_NUM(DATADIR_M402, 49), DATA_MAKE_NUM(DATADIR_M402, 51), DATA_MAKE_NUM(DATADIR_M402, 52), DATA_MAKE_NUM(DATADIR_M402, 53) }; -static UnkData234Struct lbl_1_data_234[] = { - { 0.0f, 0.0f, 0.0f, 0.0f, -1 }, - { 2.0f, 2.0f, 0.1f, 0.125f, 0x514 }, - { 2.0f, 2.0f, 0.2f, 0.25f, -1 }, - { 3.0f, 4.0f, 0.3f, 0.35f, 0x515 }, - { 3.0f, 4.0f, 0.4f, 0.45f, -1 }, - { 3.0f, 6.0f, 0.45f, 0.5125f, 0x516 }, - { 3.0f, 6.0f, 0.5f, 0.575f, -1 }, - { 3.0f, 6.0f, 0.55f, 0.6375f, -1 }, - { 3.0f, 6.0f, 0.6f, 0.7f, -1 }, - { 4.0f, 8.0f, 0.65f, 0.75f, 0x517 }, - { 4.0f, 8.0f, 0.7f, 0.8f, -1 }, - { 4.0f, 8.0f, 0.75f, 0.85f, -1 }, - { 4.0f, 8.0f, 0.8f, 0.9f, -1 }, - { 4.0f, 10.0f, 0.83f, 0.9166f, 0x518 }, - { 4.0f, 10.0f, 0.86f, 0.9333f, -1 }, - { 4.0f, 10.0f, 0.9f, 0.95f, -1 }, - { 4.0f, 10.0f, 0.93f, 0.9666f, -1 }, - { 4.0f, 10.0f, 0.96f, 0.9833f, -1 }, - { 4.0f, 10.0f, 1.0f, 1.0f, -1 }, - { 1.0f, 10.0f, 1.0f, 1.0f, -1 } -}; +static UnkData234Struct lbl_1_data_234[] = { { 0.0f, 0.0f, 0.0f, 0.0f, -1 }, { 2.0f, 2.0f, 0.1f, 0.125f, 0x514 }, { 2.0f, 2.0f, 0.2f, 0.25f, -1 }, + { 3.0f, 4.0f, 0.3f, 0.35f, 0x515 }, { 3.0f, 4.0f, 0.4f, 0.45f, -1 }, { 3.0f, 6.0f, 0.45f, 0.5125f, 0x516 }, { 3.0f, 6.0f, 0.5f, 0.575f, -1 }, + { 3.0f, 6.0f, 0.55f, 0.6375f, -1 }, { 3.0f, 6.0f, 0.6f, 0.7f, -1 }, { 4.0f, 8.0f, 0.65f, 0.75f, 0x517 }, { 4.0f, 8.0f, 0.7f, 0.8f, -1 }, + { 4.0f, 8.0f, 0.75f, 0.85f, -1 }, { 4.0f, 8.0f, 0.8f, 0.9f, -1 }, { 4.0f, 10.0f, 0.83f, 0.9166f, 0x518 }, { 4.0f, 10.0f, 0.86f, 0.9333f, -1 }, + { 4.0f, 10.0f, 0.9f, 0.95f, -1 }, { 4.0f, 10.0f, 0.93f, 0.9666f, -1 }, { 4.0f, 10.0f, 0.96f, 0.9833f, -1 }, { 4.0f, 10.0f, 1.0f, 1.0f, -1 }, + { 1.0f, 10.0f, 1.0f, 1.0f, -1 } }; -static s32 lbl_1_data_3C4[] = { - 0x00000514, - 0x00000515, - 0x00000516, - 0x00000517, - 0x00000518 -}; +static s32 lbl_1_data_3C4[] = { 0x00000514, 0x00000515, 0x00000516, 0x00000517, 0x00000518 }; -static void fn_1_0(void) { +static void fn_1_0(void) +{ lbl_1_bss_204.unk04 = NULL; lbl_1_bss_204.unk08 = NULL; } -static void fn_1_24(u16 arg0, s16 arg1) { +static void fn_1_24(u16 arg0, s16 arg1) +{ UnkBss204Struct *temp_r31; UnkBss204Struct *temp_r30; UnkBss204Struct *temp_r29; @@ -416,7 +293,8 @@ static void fn_1_24(u16 arg0, s16 arg1) { temp_r31->unk08 = temp_r29; } -static s16 fn_1_AC(s16 arg0) { +static s16 fn_1_AC(s16 arg0) +{ UnkBss204Struct *var_r31; UnkBss204Struct *temp_r29; UnkBss204Struct *temp_r30; @@ -440,12 +318,14 @@ static s16 fn_1_AC(s16 arg0) { return -1; } -static void fn_1_150(void) { +static void fn_1_150(void) +{ lbl_1_bss_1EC.unk10 = NULL; lbl_1_bss_1EC.unk14 = NULL; } -static void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec *arg5, u8 arg6) { +static void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec *arg5, u8 arg6) +{ UnkBss1ECStruct *temp_r27; UnkBss1ECStruct *var_r31; UnkBss1ECStruct *temp_r28; @@ -475,7 +355,8 @@ static void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 ar var_r31->unk14 = temp_r27; } -static void fn_1_2D8(void) { +static void fn_1_2D8(void) +{ UnkBss1ECStruct *var_r31; UnkBss1ECStruct *temp_r28; UnkBss1ECStruct *temp_r29; @@ -510,7 +391,8 @@ static void fn_1_2D8(void) { } } -static void fn_1_414(void) { +static void fn_1_414(void) +{ s32 i; for (i = 0; i < 32; i++) { @@ -519,7 +401,8 @@ static void fn_1_414(void) { } } -static s16 fn_1_46C(s32 arg0) { +static s16 fn_1_46C(s32 arg0) +{ s32 i; for (i = 0; i < 32; i++) { @@ -537,7 +420,8 @@ static s16 fn_1_46C(s32 arg0) { return Hu3DModelCreateFile(arg0); } -static void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) { +static void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) +{ s32 var_r30; espBankSet(arg0[arg1 + 1], 10); @@ -560,14 +444,16 @@ static void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) { espBankSet(arg0[arg1 + 6], var_r30 % 10); } -static void fn_1_798(s32 arg0) { +static void fn_1_798(s32 arg0) +{ lbl_1_bss_19C = 0.0f; lbl_1_bss_1AC = lbl_1_bss_1B0; GWMGRecordSet(arg0, lbl_1_bss_1AC); fn_1_580(lbl_1_bss_15C, 7, lbl_1_bss_1B0); } -static void fn_1_9EC(void) { +static void fn_1_9EC(void) +{ s32 i; for (i = 0; i < 16; i++) { @@ -575,7 +461,8 @@ static void fn_1_9EC(void) { } } -static void fn_1_A40(void) { +static void fn_1_A40(void) +{ float temp_f31; s32 i; @@ -588,7 +475,8 @@ static void fn_1_A40(void) { } } -static void fn_1_B4C(float arg0, s32 arg1) { +static void fn_1_B4C(float arg0, s32 arg1) +{ float temp_f30; float temp_f31; s32 i; @@ -625,7 +513,8 @@ static void fn_1_B4C(float arg0, s32 arg1) { } } -static void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) { +static void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ float temp_f31; if (1.0f < arg0) { @@ -637,13 +526,15 @@ static void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) { arg3->z = arg1->z + temp_f31 * (arg2->z - arg1->z); } -static void fn_1_1350(Vec *arg0, Vec *arg1, Vec *arg2) { +static void fn_1_1350(Vec *arg0, Vec *arg1, Vec *arg2) +{ Hu3DCameraPosSetV(1, arg0, arg1, arg2); lbl_1_bss_1DC = *arg0; lbl_1_bss_1C4 = *arg2; } -static s32 fn_1_13DC(float arg0, Vec *arg1) { +static s32 fn_1_13DC(float arg0, Vec *arg1) +{ Vec sp18; Vec spC; @@ -652,13 +543,15 @@ static s32 fn_1_13DC(float arg0, Vec *arg1) { Hu3DCameraPosSetV(1, &sp18, arg1, &spC); if (1.0f <= arg0) { return 1; - } else { + } + else { lbl_1_bss_1A0 = 1; return 0; } } -static void fn_1_1710(float arg0, Vec *arg1) { +static void fn_1_1710(float arg0, Vec *arg1) +{ Vec sp18; Vec spC; @@ -668,7 +561,8 @@ static void fn_1_1710(float arg0, Vec *arg1) { lbl_1_bss_1A0 = 1; } -static void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) { +static void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) +{ Mtx sp1C; Vec sp10; float temp_f30; @@ -695,7 +589,8 @@ static void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) { arg2->z = 0.0f; } -static void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) { +static void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) +{ Mtx sp10; Hu3DModelObjMtxGet(arg0, arg1, sp10); @@ -704,7 +599,8 @@ static void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) { arg2->z = sp10[2][3]; } -static void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) { +static void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) +{ Mtx spC; ModelData *var_r30; @@ -719,7 +615,8 @@ static void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) { arg2->z = spC[2][3]; } -static float fn_1_1E20(float arg0, float arg1, float arg2) { +static float fn_1_1E20(float arg0, float arg1, float arg2) +{ float var_f31; float var_f30; @@ -737,11 +634,13 @@ static float fn_1_1E20(float arg0, float arg1, float arg2) { return var_f30; } -static void fn_1_1F24(s32 arg0) { +static void fn_1_1F24(s32 arg0) +{ lbl_1_bss_1A4 = HuAudSeqPlay(arg0); } -static void fn_1_1F58(s32 arg0) { +static void fn_1_1F58(s32 arg0) +{ if (lbl_1_bss_1A4 >= 0) { if (arg0 < 0) { arg0 = 1000; @@ -751,7 +650,8 @@ static void fn_1_1F58(s32 arg0) { lbl_1_bss_1A4 = -1; } -static void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { +static void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) +{ Vec sp18; float var_f28; s32 var_r30; @@ -760,7 +660,7 @@ static void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { sp18.y = 0.0f; sp18.z = 0.0f; sp18.x = arg2 / 4.0f; - sp18.z = -(float) arg3 / 4.0f; + sp18.z = -(float)arg3 / 4.0f; var_r30 = 0; var_f28 = VECMagXZ(&sp18); if (0.5f <= var_f28) { @@ -774,37 +674,42 @@ static void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { *arg1 = fn_1_1E20(*arg1, atan2d(sp18.x, sp18.z), 0.4f); if (8.0f <= var_f28) { var_r30 = 2; - } else { + } + else { var_r30 = 1; } } - VECAdd((Vec*) &arg0, &sp18, (Vec*) &arg0); + VECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0); } #include "src/REL/executor.c" -static void fn_1_2454(void) { +static void fn_1_2454(void) +{ HuSysVWaitSet(1); if (HuPadBtnDown[0] & 0x400) { lbl_1_bss_1B0 = -1; } print8(24, 32, 1.5f, "%f COUNT:%d MES:%d WIN:%d", lbl_1_bss_38, lbl_1_bss_1B4, lbl_1_bss_1AA, lbl_1_bss_26); print8(24, 48, 1.5f, "%f %f %f", lbl_1_bss_4, lbl_1_bss_C, lbl_1_bss_8); - print8(24, 64, 1.5f, "%x %x", HuMemHeapSizeGet(HEAP_SYSTEM) - HuMemUsedMallocSizeGet(HEAP_SYSTEM), HuMemHeapSizeGet(HEAP_DATA) - HuMemUsedMallocSizeGet(HEAP_DATA)); + print8(24, 64, 1.5f, "%x %x", HuMemHeapSizeGet(HEAP_SYSTEM) - HuMemUsedMallocSizeGet(HEAP_SYSTEM), + HuMemHeapSizeGet(HEAP_DATA) - HuMemUsedMallocSizeGet(HEAP_DATA)); lbl_1_bss_8 -= HuPadSubStkX[0] / 59.0f; lbl_1_bss_C -= (HuPadSubStkY[0] / 59.0f) * 4.0f; lbl_1_bss_4 -= (HuPadTrigL[0] / 150.0f) * 4.0f; lbl_1_bss_4 += (HuPadTrigR[0] / 150.0f) * 4.0f; } -static void fn_1_2744(s16 arg0, GXColor *arg1) { +static void fn_1_2744(s16 arg0, GXColor *arg1) +{ s16 var_r30; var_r30 = Hu3DLLightCreateV(arg0, &lbl_1_data_34, &lbl_1_data_40, arg1); Hu3DLLightStaticSet(arg0, var_r30, 1); } -static u16 fn_1_27A8(UnkFn27A8Struct *arg0) { +static u16 fn_1_27A8(UnkFn27A8Struct *arg0) +{ u16 var_r30; var_r30 = 0; @@ -823,13 +728,15 @@ static u16 fn_1_27A8(UnkFn27A8Struct *arg0) { arg0->unk40 = 0; var_r30 = 0x100; } - } else { + } + else { arg0->unk40 = 0; } return var_r30; } -static void fn_1_2880(UnkFn27A8Struct *arg0, omObjData *arg1) { +static void fn_1_2880(UnkFn27A8Struct *arg0, omObjData *arg1) +{ arg0->unk4C = 2016; arg0->unk60 = 0; arg0->unk2C = 0.0f; @@ -841,11 +748,12 @@ static void fn_1_2880(UnkFn27A8Struct *arg0, omObjData *arg1) { arg0->unk0C = 0.0f; arg0->unk10 = arg0->unk0C; Hu3DModelAttrReset(arg1->model[0], 0x40000002); - Hu3DModelAttrSet(arg1->model[0], 0x40000001); + Hu3DModelAttrSet(arg1->model[0], HU3D_MOTATTR_LOOP); Hu3DMotionSet(arg1->model[0], arg1->motion[0]); } -static void fn_1_2970(UnkFn27A8Struct *arg0, omObjData *arg1, u8 arg2) { +static void fn_1_2970(UnkFn27A8Struct *arg0, omObjData *arg1, u8 arg2) +{ Vec sp18; Vec spC; float temp_f31; @@ -867,7 +775,8 @@ static void fn_1_2970(UnkFn27A8Struct *arg0, omObjData *arg1, u8 arg2) { } } -static void fn_1_2B30(UnkFn27A8Struct *arg0, omObjData *arg1, omObjData *arg2) { +static void fn_1_2B30(UnkFn27A8Struct *arg0, omObjData *arg1, omObjData *arg2) +{ arg0->unk50 = 0; arg0->unk20 = (770.0f - arg0->unk1C) / 18.0f; arg0->unk0C = Hu3DMotionTimeGet(arg2->model[0]); @@ -879,7 +788,8 @@ static void fn_1_2B30(UnkFn27A8Struct *arg0, omObjData *arg1, omObjData *arg2) { HuAudCharVoicePlay(arg0->unk58, 0x123); } -static u8 fn_1_2DBC(UnkFn27A8Struct *arg0, omObjData *arg1) { +static u8 fn_1_2DBC(UnkFn27A8Struct *arg0, omObjData *arg1) +{ Vec sp20; float var_f30; float var_f29; @@ -904,7 +814,8 @@ static u8 fn_1_2DBC(UnkFn27A8Struct *arg0, omObjData *arg1) { return 0; } -static void fn_1_313C(UnkFn27A8Struct *arg0, omObjData *arg1) { +static void fn_1_313C(UnkFn27A8Struct *arg0, omObjData *arg1) +{ Vec sp8; arg0->unk1C += arg0->unk20; @@ -915,7 +826,8 @@ static void fn_1_313C(UnkFn27A8Struct *arg0, omObjData *arg1) { arg0->unk28 = sp8.y - arg0->unk14 + 388.0f; } -static void fn_1_3204(omObjData *arg0) { +static void fn_1_3204(omObjData *arg0) +{ Vec sp48; Vec sp3C; Vec sp24; @@ -951,7 +863,8 @@ static void fn_1_3204(omObjData *arg0) { if (temp_r31->unk60 < 19) { if (GWPlayerCfg[temp_r31->unk54].iscom) { var_r26 = fn_1_27A8(temp_r31); - } else { + } + else { var_r26 = HuPadBtnDown[temp_r31->unk5C]; } if (temp_r31->unk60 == 0) { @@ -967,7 +880,8 @@ static void fn_1_3204(omObjData *arg0) { HuAudFXPlay(0x50E); Hu3DMotionShiftSet(arg0->model[0], arg0->motion[5], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); } - } else { + } + else { temp_r31->unk30 += 1.0f; } switch (temp_r31->unk4C) { @@ -1006,7 +920,8 @@ static void fn_1_3204(omObjData *arg0) { temp_r31->unk08 = 0.0f; if (lbl_1_bss_26 < 0) { lbl_1_bss_26 = temp_r31->unk54; - } else if (frandmod(100) > 50) { + } + else if (frandmod(100) > 50) { lbl_1_bss_26 = temp_r31->unk54; } } @@ -1015,7 +930,8 @@ static void fn_1_3204(omObjData *arg0) { if (60.0f <= temp_r31->unk30) { temp_r31->unk4C = 2017; fn_1_2B30(temp_r31, arg0, temp_r29); - } else { + } + else { if (temp_r31->unk1C > temp_r31->unk24) { temp_r31->unk1C += temp_r31->unk20; if (temp_r31->unk1C <= temp_r31->unk24) { @@ -1060,7 +976,8 @@ static void fn_1_3204(omObjData *arg0) { } } -static void fn_1_4190(float arg0) { +static void fn_1_4190(float arg0) +{ Vec sp8; s32 i; @@ -1073,7 +990,8 @@ static void fn_1_4190(float arg0) { } } -static void fn_1_4284(float arg0) { +static void fn_1_4284(float arg0) +{ Vec sp8; s32 i; @@ -1088,7 +1006,8 @@ static void fn_1_4284(float arg0) { } } -static void fn_1_43D8(omObjData *arg0) { +static void fn_1_43D8(omObjData *arg0) +{ Vec spE8; float temp_f31; float temp_f23; @@ -1113,9 +1032,9 @@ static void fn_1_43D8(omObjData *arg0) { temp_r31->unk04 = 2000.0f; Hu3DMotionShiftSet(arg0->model[0], arg0->motion[2], 0.0f, 10.0f, HU3D_MOTATTR_NONE); Hu3DMotionSet(temp_r30->model[0], temp_r30->motion[0]); - Hu3DModelAttrSet(temp_r30->model[0], 0x40000002); + Hu3DModelAttrSet(temp_r30->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(temp_r30->model[0], 0x40000001); - Hu3DModelAttrReset(temp_r30->model[0], 1); + Hu3DModelAttrReset(temp_r30->model[0], HU3D_ATTR_DISPOFF); } break; case 2002: @@ -1187,7 +1106,7 @@ static void fn_1_43D8(omObjData *arg0) { if (670.0f > temp_r31->unk1C) { temp_f31 = (670.0f - temp_r31->unk1C) / 450.0f; Hu3DMotionTimeSet(lbl_1_bss_54[temp_r31->unk54]->model[0], 10.0f * temp_f31); - temp_r28 = (s32) (10.0f * temp_f31) >> 1; + temp_r28 = (s32)(10.0f * temp_f31) >> 1; if (temp_r28 < 5 && temp_r31->unk44 != lbl_1_data_3C4[temp_r28]) { temp_r31->unk44 = lbl_1_data_3C4[temp_r28]; HuAudFXPlay(temp_r31->unk44); @@ -1197,7 +1116,8 @@ static void fn_1_43D8(omObjData *arg0) { temp_r31->unk4C++; temp_r31->unk1C = 470.0f; fn_1_2B30(temp_r31, arg0, temp_r30); - } else { + } + else { temp_r31->unk0C += 0.7f; Hu3DMotionTimeSet(temp_r30->model[0], temp_r31->unk0C); } @@ -1232,7 +1152,8 @@ static void fn_1_43D8(omObjData *arg0) { Hu3DMotionShiftSet(temp_r30->model[0], temp_r30->motion[2], 20.0f, 20.0f, HU3D_MOTATTR_NONE); HuAudFXPlay(0x513); fn_1_4190(temp_r31->unk18); - } else { + } + else { temp_r31->unk4C = 2014; fn_1_2B30(temp_r31, arg0, temp_r30); } @@ -1262,7 +1183,8 @@ static void fn_1_43D8(omObjData *arg0) { temp_f31 = sind(temp_f23) * sind(temp_f23); if (180.0f > temp_r31->unk18) { temp_r31->unk24 = temp_r31->unk18 + -temp_r31->unk18 * temp_f31; - } else { + } + else { temp_r31->unk24 = temp_r31->unk18 + (360.0f - temp_r31->unk18) * temp_f31; } omSetRot(arg0, 0.0f, temp_r31->unk24, 0.0f); @@ -1303,7 +1225,8 @@ static void fn_1_43D8(omObjData *arg0) { } } -static void fn_1_63C8(omObjData *arg0) { +static void fn_1_63C8(omObjData *arg0) +{ UnkFn27A8Struct *temp_r31; s16 temp_r28; s16 var_r27; @@ -1336,8 +1259,8 @@ static void fn_1_63C8(omObjData *arg0) { temp_r28 = arg0->model[0]; var_r27 = Hu3DLLightCreateV(temp_r28, &lbl_1_data_34, &lbl_1_data_40, &lbl_1_data_4C); Hu3DLLightStaticSet(temp_r28, var_r27, 1); - Hu3DModelAttrSet(arg0->model[0], 1); - Hu3DModelAttrSet(arg0->model[0], 0x40000001); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(arg0->model[0], 3); Hu3DMotionSet(arg0->model[0], arg0->motion[0]); temp_r31->unk18 = 135.0f + 90.0f * temp_r31->unk54; @@ -1345,7 +1268,7 @@ static void fn_1_63C8(omObjData *arg0) { omSetTra(arg0, temp_r31->unk1C * sind(180.0f + temp_r31->unk18), temp_r31->unk28, temp_r31->unk1C * cosd(180.0f + temp_r31->unk18)); omSetRot(arg0, 0.0f, temp_r31->unk18, 0.0f); Hu3DModelShadowSet(arg0->model[0]); - Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); if (GWPlayerCfg[temp_r31->unk54].iscom) { switch (GWPlayerCfg[temp_r31->unk54].diff) { case 0: @@ -1372,10 +1295,10 @@ static void fn_1_63C8(omObjData *arg0) { arg0->func = fn_1_43D8; } -static void fn_1_6858(omObjData *arg0) { -} +static void fn_1_6858(omObjData *arg0) { } -static void fn_1_685C(omObjData *arg0) { +static void fn_1_685C(omObjData *arg0) +{ float temp_f31; float temp_f29; float temp_f30; @@ -1387,20 +1310,21 @@ static void fn_1_685C(omObjData *arg0) { for (i = 0; i < 3; i++) { arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_1E8[i]); } - Hu3DModelAttrSet(arg0->model[0], 1); - Hu3DModelAttrSet(arg0->model[0], 0x40000002); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(arg0->model[0], 4); Hu3DMotionSet(arg0->model[0], arg0->motion[0]); - temp_f31 = ((UnkFn27A8Struct*) lbl_1_bss_4C[temp_r29]->data)->unk18; - temp_f29 = ((UnkFn27A8Struct*) lbl_1_bss_4C[temp_r29]->data)->unk04; - temp_f30 = ((UnkFn27A8Struct*) lbl_1_bss_4C[temp_r29]->data)->unk00; + temp_f31 = ((UnkFn27A8Struct *)lbl_1_bss_4C[temp_r29]->data)->unk18; + temp_f29 = ((UnkFn27A8Struct *)lbl_1_bss_4C[temp_r29]->data)->unk04; + temp_f30 = ((UnkFn27A8Struct *)lbl_1_bss_4C[temp_r29]->data)->unk00; omSetTra(arg0, temp_f30 * sind(180.0f + temp_f31), temp_f29, temp_f30 * cosd(180.0f + temp_f31)); omSetRot(arg0, 0.0f, temp_f31, 0.0f); Hu3DModelShadowSet(arg0->model[0]); arg0->func = fn_1_6858; } -static void fn_1_6AB4(omObjData *arg0) { +static void fn_1_6AB4(omObjData *arg0) +{ Vec *temp_r29; UnkFn6AB4Struct *temp_r31; float temp_f31; @@ -1443,7 +1367,8 @@ static void fn_1_6AB4(omObjData *arg0) { omSetRot(arg0, 0.0f, temp_r31->unk0C, 0.0f); } -static void fn_1_6E64(omObjData *arg0) { +static void fn_1_6E64(omObjData *arg0) +{ Vec *temp_r29; UnkFn6AB4Struct *temp_r30; s32 i; @@ -1454,7 +1379,7 @@ static void fn_1_6E64(omObjData *arg0) { for (i = 0; i < 2; i++) { arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_1F8[i]); } - Hu3DModelAttrSet(arg0->model[0], 1); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); Hu3DModelLayerSet(arg0->model[0], 5); Hu3DMotionSet(arg0->model[0], arg0->motion[1]); temp_r30->unk18 = 3000; @@ -1467,18 +1392,20 @@ static void fn_1_6E64(omObjData *arg0) { omSetRot(arg0, 0.0f, temp_r30->unk0C, 0.0f); Hu3DModelShadowSet(arg0->model[0]); Hu3DModelAttrReset(arg0->model[0], 0x40000002); - Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); arg0->func = fn_1_6AB4; } -static void fn_1_7020(omObjData *arg0) { - Hu3DModelAttrSet(arg0->model[0], 1); +static void fn_1_7020(omObjData *arg0) +{ + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); fn_1_24(arg0->work[0], arg0->model[0]); omDelObjEx(lbl_1_bss_1E8, arg0); lbl_1_bss_24--; } -static void fn_1_70E4(omObjData *arg0) { +static void fn_1_70E4(omObjData *arg0) +{ Mtx sp18; Vec spC; float var_f27; @@ -1571,7 +1498,8 @@ static void fn_1_70E4(omObjData *arg0) { } } -static void fn_1_7950(omObjData *arg0) { +static void fn_1_7950(omObjData *arg0) +{ UnkFn70E4Struct *temp_r30; s16 var_r25; @@ -1581,22 +1509,24 @@ static void fn_1_7950(omObjData *arg0) { var_r25 = fn_1_AC(arg0->work[0]); if (var_r25 < 0) { arg0->model[0] = Hu3DModelLink(lbl_1_bss_16[arg0->work[0]]); - } else { + } + else { arg0->model[0] = var_r25; } Hu3DMotionTimeSet(arg0->model[0], 0.0f); - Hu3DModelAttrSet(arg0->model[0], 1); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); Hu3DModelLayerSet(arg0->model[0], 2); omSetTra(arg0, temp_r30->unk00.x, temp_r30->unk00.y, temp_r30->unk00.z); omSetRot(arg0, temp_r30->unk0C, temp_r30->unk10, temp_r30->unk14); omSetSca(arg0, temp_r30->unk18, temp_r30->unk1C, temp_r30->unk20); Hu3DModelAttrReset(arg0->model[0], 0x40000003); - Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); arg0->func = fn_1_70E4; } } -static void fn_1_7AEC(s32 arg0, Vec *arg1, Vec *arg2) { +static void fn_1_7AEC(s32 arg0, Vec *arg1, Vec *arg2) +{ omObjData *temp_r3; UnkFn70E4Struct *temp_r31; @@ -1643,46 +1573,48 @@ static void fn_1_7AEC(s32 arg0, Vec *arg1, Vec *arg2) { } } -static void fn_1_7D48(omObjData *arg0) { -} +static void fn_1_7D48(omObjData *arg0) { } -static void fn_1_7D4C(omObjData *arg0) { +static void fn_1_7D4C(omObjData *arg0) +{ arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M402, 35)); - Hu3DModelAttrSet(arg0->model[0], 1); - Hu3DModelAttrSet(arg0->model[0], 0x40000002); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(arg0->model[0], 0); omSetTra(arg0, 0.0f, 0.0f, 0.0f); omSetRot(arg0, 0.0f, 270.0f + 90.0f * arg0->work[0], 0.0f); Hu3DModelShadowMapSet(arg0->model[0]); - Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); arg0->func = fn_1_7D48; } -static void fn_1_7E80(omObjData *arg0) { -} +static void fn_1_7E80(omObjData *arg0) { } -static void fn_1_7E84(omObjData *arg0) { +static void fn_1_7E84(omObjData *arg0) +{ float temp_f31; arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M402, 36)); - Hu3DModelAttrSet(arg0->model[0], 1); - Hu3DModelAttrSet(arg0->model[0], 0x40000001); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(arg0->model[0], 0x40000002); Hu3DModelLayerSet(arg0->model[0], 1); temp_f31 = 135.0f + 90.0f * arg0->work[0]; omSetTra(arg0, 155.5 * sind(temp_f31), 0.0f, 155.5 * cosd(temp_f31)); omSetRot(arg0, 0.0f, 0.0f, 0.0f); - Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); arg0->func = fn_1_7E80; } -static inline void fn_1_8048InlineFunc(Vec *arg0, float arg1, float arg2, float arg3) { +static inline void fn_1_8048InlineFunc(Vec *arg0, float arg1, float arg2, float arg3) +{ arg0->x = arg1; arg0->y = arg2; arg0->z = arg3; } -static void fn_1_8048(void) { +static void fn_1_8048(void) +{ Vec sp14; Vec sp8; @@ -1700,7 +1632,8 @@ static void fn_1_8048(void) { Hu3DGLightPosSetV(lbl_1_bss_14, &sp14, &sp8); } -static void fn_1_8218(omObjData *arg0) { +static void fn_1_8218(omObjData *arg0) +{ Vec sp38; float temp_f26; omObjData *temp_r30; @@ -1725,7 +1658,8 @@ static void fn_1_8218(omObjData *arg0) { case 1005: if (lbl_1_bss_1AA < 0) { lbl_1_bss_1AA = MGSeqCreate(3, 0); - } else { + } + else { if (lbl_1_bss_1A4 < 0 && (MGSeqStatGet(lbl_1_bss_1AA) & 0x10)) { lbl_1_bss_1A4 = HuAudSeqPlay(0x46); } @@ -1761,7 +1695,8 @@ static void fn_1_8218(omObjData *arg0) { lbl_1_bss_1A8 = -1; lbl_1_bss_1AA = MGSeqCreate(3, 1); fn_1_1F58(100); - } else { + } + else { lbl_1_bss_2C += 1.0f; if (90.0f >= lbl_1_bss_2C) { fn_1_13DC(lbl_1_bss_2C / 90.0f, &lbl_1_data_1C); @@ -1778,18 +1713,20 @@ static void fn_1_8218(omObjData *arg0) { if (lbl_1_bss_26 < 0) { lbl_1_bss_1AA = MGSeqCreate(3, 2); HuAudSStreamPlay(4); - } else { + } + else { lbl_1_bss_1AA = MGSeqCreate(5, 3, GWPlayerCfg[lbl_1_bss_26].character, -1, -1, -1); temp_r30 = lbl_1_bss_4C[lbl_1_bss_26]; Hu3DMotionShiftSet(temp_r30->model[0], temp_r30->motion[10], 0.0f, 20.0f, HU3D_MOTATTR_NONE); HuAudSStreamPlay(1); } - } else { + } + else { lbl_1_bss_2C += 1.0f; if (lbl_1_bss_26 >= 0 && 110.0f == lbl_1_bss_2C) { - Hu3DModelAttrSet(arg0->model[1], 1); + Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(arg0->model[2], 0x40000002); - Hu3DModelAttrReset(arg0->model[2], 1); + Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(arg0->model[2], 0.0f); Hu3DMotionSpeedSet(arg0->model[2], 3.0f); } @@ -1807,9 +1744,9 @@ static void fn_1_8218(omObjData *arg0) { } lbl_1_bss_30 -= 1.0f; if (0.0f == lbl_1_bss_30) { - Hu3DModelAttrSet(arg0->model[1], 1); + Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(arg0->model[2], 0x40000002); - Hu3DModelAttrReset(arg0->model[2], 1); + Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(arg0->model[2], 0.0f); Hu3DMotionSpeedSet(arg0->model[2], 3.0f); } @@ -1817,13 +1754,14 @@ static void fn_1_8218(omObjData *arg0) { lbl_1_bss_30 = -1.0f; fn_1_8048(); if (Hu3DMotionEndCheck(arg0->model[2])) { - Hu3DModelAttrReset(arg0->model[1], 1); - Hu3DModelAttrSet(arg0->model[2], 1); + Hu3DModelAttrReset(arg0->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); } } } -static void fn_1_9058(omObjData *arg0) { +static void fn_1_9058(omObjData *arg0) +{ s16 temp_r29; s16 temp_r28; s32 i; @@ -1833,8 +1771,8 @@ static void fn_1_9058(omObjData *arg0) { arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M402, 33)); arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M402, 34)); for (i = 0; i < 3; i++) { - Hu3DModelAttrSet(arg0->model[i], 1); - Hu3DModelAttrSet(arg0->model[i], 0x40000002); + Hu3DModelAttrSet(arg0->model[i], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[i], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(arg0->model[i], 0); Hu3DModelPosSet(arg0->model[i], 0.0f, 0.0f, 0.0f); } @@ -1844,15 +1782,16 @@ static void fn_1_9058(omObjData *arg0) { temp_r29 = arg0->model[0]; temp_r28 = Hu3DLLightCreateV(temp_r29, &lbl_1_data_34, &lbl_1_data_40, &lbl_1_data_4C); Hu3DLLightStaticSet(temp_r29, temp_r28, 1); - Hu3DModelAttrReset(arg0->model[0], 1); - Hu3DModelAttrReset(arg0->model[1], 1); + Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(arg0->model[1], HU3D_ATTR_DISPOFF); Hu3DModelShadowMapSet(arg0->model[0]); HuAudFXPlay(0x519); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); arg0->func = fn_1_8218; } -void ObjectSetup(void) { +void ObjectSetup(void) +{ Vec sp20; omObjData *temp_r30; s32 i; @@ -1923,13 +1862,14 @@ void ObjectSetup(void) { lbl_1_bss_40 = omGetGroupMemberListEx(lbl_1_bss_1E8, 5); for (i = 0; i < 7; i++) { lbl_1_bss_16[i] = Hu3DModelCreateFile(lbl_1_data_218[i]); - Hu3DModelAttrSet(lbl_1_bss_16[i], 1); - Hu3DModelAttrSet(lbl_1_bss_16[i], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_16[i], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_16[i], HU3D_MOTATTR_PAUSE); } lbl_1_bss_58 = omAddObjEx(lbl_1_bss_1E8, 106, 3, 1, -1, fn_1_9058); } -static void fn_1_9AF4(omObjData *arg0) { +static void fn_1_9AF4(omObjData *arg0) +{ s32 i; if (WipeStatGet() == 0) { diff --git a/src/REL/m403Dll/main.c b/src/REL/m403Dll/main.c index 3d143917..d0f9003a 100755 --- a/src/REL/m403Dll/main.c +++ b/src/REL/m403Dll/main.c @@ -1,5 +1,5 @@ -#include "REL/m403Dll.h" #include "REL/executor.h" +#include "REL/m403Dll.h" #include "game/audio.h" #include "game/chrman.h" #include "game/data.h" @@ -165,7 +165,8 @@ static Vec lbl_1_data_20_unused = { 0.0f, 4000.0f, -2000.0f }; static Vec lbl_1_data_2C_unused = { 0.0f, 1.0f, 0.0f }; static u8 lbl_1_data_38_unused[0xC] = { 0 }; -void ObjectSetup(void) { +void ObjectSetup(void) +{ LightData *var_r28; Process *temp_r31; omObjData *var_r29; @@ -218,12 +219,14 @@ void ObjectSetup(void) { } } -static void fn_1_424(omObjData *arg0) { +static void fn_1_424(omObjData *arg0) +{ lbl_1_bss_30 = 0; arg0->func = fn_1_444; } -static void fn_1_444(omObjData *arg0) { +static void fn_1_444(omObjData *arg0) +{ Vec sp2C; Vec sp20; Vec sp14; @@ -296,18 +299,12 @@ static void fn_1_444(omObjData *arg0) { static s32 lbl_1_data_68 = -1; -s32 lbl_1_data_6C[] = { - DATA_MAKE_NUM(DATADIR_MGCONST, 0), - DATA_MAKE_NUM(DATADIR_MGCONST, 1), - DATA_MAKE_NUM(DATADIR_MGCONST, 2), - DATA_MAKE_NUM(DATADIR_MGCONST, 3), - DATA_MAKE_NUM(DATADIR_MGCONST, 4), - DATA_MAKE_NUM(DATADIR_MGCONST, 5), - DATA_MAKE_NUM(DATADIR_MGCONST, 6), - DATA_MAKE_NUM(DATADIR_MGCONST, 7) -}; +s32 lbl_1_data_6C[] = { DATA_MAKE_NUM(DATADIR_MGCONST, 0), DATA_MAKE_NUM(DATADIR_MGCONST, 1), DATA_MAKE_NUM(DATADIR_MGCONST, 2), + DATA_MAKE_NUM(DATADIR_MGCONST, 3), DATA_MAKE_NUM(DATADIR_MGCONST, 4), DATA_MAKE_NUM(DATADIR_MGCONST, 5), DATA_MAKE_NUM(DATADIR_MGCONST, 6), + DATA_MAKE_NUM(DATADIR_MGCONST, 7) }; -static void fn_1_82C(omObjData *arg0) { +static void fn_1_82C(omObjData *arg0) +{ Vec sp1C; Vec sp10; float var_f31; @@ -323,7 +320,8 @@ static void fn_1_82C(omObjData *arg0) { lbl_1_bss_2A = 1800; lbl_1_bss_2C = MGSeqStartCreate(); MGSeqPosSet(lbl_1_bss_2C, 320.0f, 240.0f); - } else if (MGSeqStatGet(lbl_1_bss_2C) == 0) { + } + else if (MGSeqStatGet(lbl_1_bss_2C) == 0) { lbl_1_bss_2C = -1; lbl_1_bss_30++; lbl_1_bss_28 = 0; @@ -357,10 +355,11 @@ static void fn_1_82C(omObjData *arg0) { case 6: var_r29 = 0; if (lbl_1_bss_2 != 0) { - if (((Unkm403Struct_01*) lbl_1_bss_34[lbl_1_bss_4]->data)->unk07 == 0 && fn_1_8264() == 0) { + if (((Unkm403Struct_01 *)lbl_1_bss_34[lbl_1_bss_4]->data)->unk07 == 0 && fn_1_8264() == 0) { var_r29++; } - } else if (lbl_1_data_0 <= 1 && fn_1_8264() == 0) { + } + else if (lbl_1_data_0 <= 1 && fn_1_8264() == 0) { var_r29++; } if (lbl_1_bss_2 != 0) { @@ -384,7 +383,7 @@ static void fn_1_82C(omObjData *arg0) { if (lbl_1_bss_2 == 0) { if (lbl_1_data_0 != 0) { for (i = 0; i < 4; i++) { - if (((Unkm403Struct_01*) lbl_1_bss_34[i]->data)->unk07 != 0) { + if (((Unkm403Struct_01 *)lbl_1_bss_34[i]->data)->unk07 != 0) { break; } } @@ -432,12 +431,13 @@ static void fn_1_82C(omObjData *arg0) { if (lbl_1_data_0 == 0) { lbl_1_bss_2C = MGSeqDrawCreate(); HuAudSStreamPlay(4); - } else { + } + else { for (i = 0; i < 4; i++) { sp8[i] = -1; } for (i = 0, var_r27 = 0; i < 4; i++) { - if (((Unkm403Struct_01*) lbl_1_bss_34[i]->data)->unk07 != 0) { + if (((Unkm403Struct_01 *)lbl_1_bss_34[i]->data)->unk07 != 0) { GWPlayerCoinWinAdd(i, 10); sp8[var_r27++] = GWPlayerCfg[i].character; } @@ -463,7 +463,8 @@ static void fn_1_82C(omObjData *arg0) { } } -static void fn_1_1214(omObjData *arg0) { +static void fn_1_1214(omObjData *arg0) +{ if (WipeStatGet() == 0) { fn_1_676C(); CharModelKill(-1); @@ -474,7 +475,8 @@ static void fn_1_1214(omObjData *arg0) { } } -static void fn_1_1274(omObjData *arg0) { +static void fn_1_1274(omObjData *arg0) +{ Hu3DLightAllKill(); lbl_1_bss_18[0] = Hu3DGLightCreateV(&lbl_1_data_4, &lbl_1_data_10, &lbl_1_data_1C); Hu3DGLightStaticSet(lbl_1_bss_18[0], 1); @@ -489,7 +491,8 @@ static void fn_1_1274(omObjData *arg0) { arg0->func = fn_1_1460; } -static void fn_1_1460(omObjData *arg0) { +static void fn_1_1460(omObjData *arg0) +{ s8 sp11[] = { 1, 0, 2, 1, 0, 3, 2, 1, 0 }; s8 sp8[] = { 1, 1, 2, 2, 2, 3, 3, 3, 3 }; s32 var_r30; @@ -538,7 +541,8 @@ static void fn_1_1460(omObjData *arg0) { } } -static void fn_1_16D8(omObjData *arg0) { +static void fn_1_16D8(omObjData *arg0) +{ Unkm403Struct_00 *temp_r3; temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r3), MEMORY_DEFAULT_NUM); @@ -555,7 +559,8 @@ static void fn_1_16D8(omObjData *arg0) { arg0->func = fn_1_17DC; } -static void fn_1_17DC(omObjData *arg0) { +static void fn_1_17DC(omObjData *arg0) +{ Unkm403Struct_00 *temp_r31; float temp_f31; @@ -572,7 +577,8 @@ static void fn_1_17DC(omObjData *arg0) { temp_r31->unk10.y = temp_r31->unk28.y + temp_f31 * (temp_r31->unk40.y - temp_r31->unk28.y); temp_r31->unk10.z = temp_r31->unk28.z + temp_f31 * (temp_r31->unk40.z - temp_r31->unk28.z); temp_r31->unk130 = temp_r31->unk134 + temp_f31 * (temp_r31->unk138 - temp_r31->unk134); - } else { + } + else { fn_1_57E0(2.0f * temp_f31, &temp_r31->unk04, temp_r31->unkF4, &temp_r31->unk64, temp_r31->unk88, 3); fn_1_57E0(2.0f * temp_f31, &temp_r31->unk10, temp_r31->unk100, &temp_r31->unkAC, temp_r31->unkD0, 3); temp_r31->unk130 = fn_1_52AC(2.0f * temp_f31, temp_r31->unk124, temp_r31->unk10C, temp_r31->unk118, 3); @@ -587,7 +593,8 @@ static void fn_1_17DC(omObjData *arg0) { CZoom = temp_r31->unk130; } -static void fn_1_1A50(float arg0, Vec *arg1, Vec *arg2, float arg3) { +static void fn_1_1A50(float arg0, Vec *arg1, Vec *arg2, float arg3) +{ Unkm403Struct_00 *temp_r31; temp_r31 = lbl_1_bss_48->data; @@ -606,7 +613,8 @@ static void fn_1_1A50(float arg0, Vec *arg1, Vec *arg2, float arg3) { temp_r31->unk138 = arg3; } -static void fn_1_1AF0(float arg0, Vec *arg1, Vec *arg2, float arg3, Vec *arg4, Vec *arg5, float arg6) { +static void fn_1_1AF0(float arg0, Vec *arg1, Vec *arg2, float arg3, Vec *arg4, Vec *arg5, float arg6) +{ Unkm403Struct_00 *temp_r31; temp_r31 = lbl_1_bss_48->data; @@ -646,37 +654,26 @@ static void fn_1_1AF0(float arg0, Vec *arg1, Vec *arg2, float arg3, Vec *arg4, V fn_1_4FF4(temp_r31->unk124, temp_r31->unk10C, temp_r31->unk118, 3); } -static void fn_1_1DA8(float arg0) { +static void fn_1_1DA8(float arg0) +{ Unkm403Struct_00 *temp_r31; temp_r31 = lbl_1_bss_48->data; temp_r31->unk140 = arg0; } -static s32 lbl_1_data_C4[] = { - 0, 2, 3, 8, 10, 9, 23, 24 -}; +static s32 lbl_1_data_C4[] = { 0, 2, 3, 8, 10, 9, 23, 24 }; -static Vec lbl_1_data_E4[] = { - { -300.0f, 2200.0f, 0.0f }, - { -100.0f, 2200.0f, 0.0f }, - { 100.0f, 2200.0f, 0.0f }, - { 300.0f, 2200.0f, 0.0f } -}; +static Vec lbl_1_data_E4[] = { { -300.0f, 2200.0f, 0.0f }, { -100.0f, 2200.0f, 0.0f }, { 100.0f, 2200.0f, 0.0f }, { 300.0f, 2200.0f, 0.0f } }; -static float lbl_1_data_114[] = { - 40.0f, 40.0f, 40.0f, 40.0f, - 40.0f, 100.0f, 40.0f, 80.0f -}; +static float lbl_1_data_114[] = { 40.0f, 40.0f, 40.0f, 40.0f, 40.0f, 100.0f, 40.0f, 80.0f }; -static float lbl_1_data_134[] = { - 160.0f, 160.0f, 180.0f, 160.0f, - 160.0f, 180.0f, 180.0f, 200.0f -}; +static float lbl_1_data_134[] = { 160.0f, 160.0f, 180.0f, 160.0f, 160.0f, 180.0f, 180.0f, 200.0f }; static u32 lbl_1_data_154 = 0x41C64E6D; -static void fn_1_1DD0(omObjData *arg0) { +static void fn_1_1DD0(omObjData *arg0) +{ Unkm403Struct_01 *temp_r3; s32 temp_r27; s32 i; @@ -715,7 +712,7 @@ static void fn_1_1DD0(omObjData *arg0) { } temp_r28 = CharModelCreate(temp_r3->unk01, 4); arg0->model[0] = temp_r28; - Hu3DModelAttrSet(temp_r28, 0x40000001); + Hu3DModelAttrSet(temp_r28, HU3D_MOTATTR_LOOP); Hu3DModelShadowSet(temp_r28); for (i = 0; i < 8; i++) { arg0->motion[i] = CharModelMotionCreate(temp_r3->unk01, lbl_1_data_C4[i]); @@ -730,7 +727,8 @@ static void fn_1_1DD0(omObjData *arg0) { arg0->func = fn_1_2158; } -static void fn_1_2158(omObjData *arg0) { +static void fn_1_2158(omObjData *arg0) +{ Unkm403Struct_01 *temp_r31; s32 sp8; @@ -747,9 +745,9 @@ static void fn_1_2158(omObjData *arg0) { } /* fallthrough */ case 1: - temp_r31->unk18 = 3; - temp_r31->unk48 = 0.0f; - temp_r31->unk0C = 0; + temp_r31->unk18 = 3; + temp_r31->unk48 = 0.0f; + temp_r31->unk0C = 0; break; case 5: arg0->func = fn_1_22A4; @@ -763,7 +761,8 @@ static void fn_1_2158(omObjData *arg0) { fn_1_2FDC(arg0); } -static void fn_1_22A4(omObjData *arg0) { +static void fn_1_22A4(omObjData *arg0) +{ Unkm403Struct_01 *temp_r31; s32 temp_r29; s32 temp_r28; @@ -774,13 +773,15 @@ static void fn_1_22A4(omObjData *arg0) { if (lbl_1_bss_30 == 6 && !(temp_r31->unk07 & 2)) { if (temp_r31->unk05 != 0) { fn_1_2598(arg0); - } else { + } + else { temp_r31->unk10 = HuPadStkX[temp_r31->unk04]; temp_r31->unk12 = HuPadStkY[temp_r31->unk04]; temp_r31->unk14 = HuPadBtnDown[temp_r31->unk04]; temp_r31->unk16 = HuPadBtn[temp_r31->unk04]; } - } else { + } + else { temp_r31->unk10 = temp_r31->unk12 = 0; temp_r31->unk14 = temp_r31->unk16 = 0; } @@ -807,7 +808,7 @@ static void fn_1_22A4(omObjData *arg0) { HuAudFXPlay(0x523); temp_r31->unk07 = 0; Hu3DModelShadowReset(temp_r29); - Hu3DModelAttrSet(temp_r29, 1); + Hu3DModelAttrSet(temp_r29, HU3D_ATTR_DISPOFF); lbl_1_data_0--; temp_r28 = fn_1_400C(DATA_MAKE_NUM(DATADIR_M403, 19), 100, fn_1_40A8); Hu3DModelPosSet(temp_r28, temp_r31->unk2C.x, temp_r31->unk2C.y, temp_r31->unk2C.z); @@ -816,7 +817,8 @@ static void fn_1_22A4(omObjData *arg0) { } if (fn_1_8264() != 0) { temp_r31->unkA0 = 0; - } else if (!(temp_r31->unk07 & 2) && temp_r31->unkA0 == 0) { + } + else if (!(temp_r31->unk07 & 2) && temp_r31->unkA0 == 0) { omVibrate(temp_r31->unk00, 12, 6, 6); temp_r31->unkA0 = 1; } @@ -824,7 +826,8 @@ static void fn_1_22A4(omObjData *arg0) { } } -static void fn_1_2598(omObjData *arg0) { +static void fn_1_2598(omObjData *arg0) +{ Vec sp38[6]; Vec sp14; Vec sp8; @@ -867,7 +870,7 @@ static void fn_1_2598(omObjData *arg0) { break; case 1: temp_r31->unk5C = 2; - temp_r31->unk5E = (s32) (60.0f * (1.2f - 0.2f * temp_r28) * (fn_1_4528() / 65536.0f)); + temp_r31->unk5E = (s32)(60.0f * (1.2f - 0.2f * temp_r28) * (fn_1_4528() / 65536.0f)); temp_r31->unk60 = 500.0f * ((fn_1_4528() - 0x8000) / 32768.0f); temp_r31->unk64 = 200.0f * ((fn_1_4528() - 0x8000) / 32768.0f); var_r27 = temp_r31->unk10; @@ -880,10 +883,12 @@ static void fn_1_2598(omObjData *arg0) { var_f31 = fn_1_59F4(&sp8); if (var_f31 < 20.0f) { temp_r31->unk5C = 3; - } else { + } + else { if (var_f31 >= 100.0f) { var_f28 = 0.8f; - } else { + } + else { var_f28 = 0.4f; } var_f30 = fn_1_457C(temp_r31->unk3C, atan2d(sp8.x, sp8.z), var_f28); @@ -895,16 +900,20 @@ static void fn_1_2598(omObjData *arg0) { if (temp_r31->unk5E == 0) { temp_r31->unk5E = -1; } - } else if (temp_r31->unk5E >= 0) { + } + else if (temp_r31->unk5E >= 0) { if (temp_r31->unk5E == 0) { if (var_f31 < 150.0f && temp_r31->unk0E != 0) { temp_r31->unk5C = 3; - } else if ((s32) ((temp_r28 + 2) * (fn_1_4528() / 65536.0f)) != 0 && var_r22 == 0) { + } + else if ((s32)((temp_r28 + 2) * (fn_1_4528() / 65536.0f)) != 0 && var_r22 == 0) { temp_r31->unk5C = 4; - } else { + } + else { temp_r31->unk5C = 1; } - } else { + } + else { temp_r31->unk5E--; } } @@ -916,16 +925,19 @@ static void fn_1_2598(omObjData *arg0) { sp8.z = temp_r31->unk64 - temp_r31->unk2C.z; if (fn_1_59F4(&sp8) >= 30.000002f && temp_r31->unk0E == 0) { temp_r31->unk5C = 2; - } else if (fn_1_8264() == 0) { + } + else if (fn_1_8264() == 0) { temp_r31->unk5C = 0; - } else { + } + else { if (temp_r31->unk5E > 0) { temp_r31->unk5E--; } if (temp_r31->unk5E == 0) { - if ((s32) ((temp_r28 + 2) * (fn_1_4528() / 65536.0f)) != 0 && var_r22 == 0) { + if ((s32)((temp_r28 + 2) * (fn_1_4528() / 65536.0f)) != 0 && var_r22 == 0) { temp_r31->unk5C = 4; - } else { + } + else { temp_r31->unk5C = 1; } } @@ -972,7 +984,8 @@ static void fn_1_2598(omObjData *arg0) { temp_r31->unk16 = var_r20; } -static void fn_1_2FDC(omObjData *arg0) { +static void fn_1_2FDC(omObjData *arg0) +{ float var_f29; Unkm403Struct_01 *temp_r31; s32 temp_r25; @@ -1000,7 +1013,8 @@ static void fn_1_2FDC(omObjData *arg0) { if (temp_r31->unk1C >= 6.0f) { var_r28 = 2; var_r27 = 1; - } else { + } + else { var_r28 = 1; var_r27 = 1; } @@ -1012,7 +1026,8 @@ static void fn_1_2FDC(omObjData *arg0) { temp_r31->unk24 -= 0.5f * temp_r31->unk28; } temp_r31->unk1C *= 1.0 + 0.25 * cosd(90.0f * (temp_r31->unk24 / (0.5f * temp_r31->unk28))); - } else { + } + else { temp_r31->unk24 = 0.0f; temp_r31->unk1C = 0.0f; var_r28 = 0; @@ -1024,7 +1039,8 @@ static void fn_1_2FDC(omObjData *arg0) { var_r27 = 0; if (Hu3DData[temp_r25].unk_0C == -1 && CharModelMotionEndCheck(temp_r31->unk01)) { temp_r31->unk48 += -2.4333334f; - } else { + } + else { temp_r31->unk48 = 0.0f; } if (temp_r31->unk0C != 0) { @@ -1033,7 +1049,8 @@ static void fn_1_2FDC(omObjData *arg0) { temp_r31->unk0D = 0; var_r28 = 5; var_r27 = 0; - } else { + } + else { temp_r31->unk48 *= -0.1f; temp_r31->unk0C = 0; var_r28 = 4; @@ -1062,9 +1079,10 @@ static void fn_1_2FDC(omObjData *arg0) { } if (temp_r31->unk07 & 4) { if (temp_r31->unk0A & 2) { - Hu3DModelAttrSet(temp_r25, 1); - } else { - Hu3DModelAttrReset(temp_r25, 1); + Hu3DModelAttrSet(temp_r25, HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrReset(temp_r25, HU3D_ATTR_DISPOFF); } if (--temp_r31->unk0A == 0) { temp_r31->unk07 &= ~4; @@ -1087,7 +1105,8 @@ static void fn_1_2FDC(omObjData *arg0) { omSetRot(arg0, temp_r31->unk38, temp_r31->unk3C, temp_r31->unk40); } -static void fn_1_3800(void) { +static void fn_1_3800(void) +{ s32 var_r29; s32 i; Unkm403Struct_01 *temp_r30; @@ -1104,13 +1123,14 @@ static void fn_1_3800(void) { } } -static s32 fn_1_3894(void) { +static s32 fn_1_3894(void) +{ Vec sp14[4]; Vec sp8; float var_f31; float var_f30; s32 var_r26; - omObjData* temp_r25; + omObjData *temp_r25; Unkm403Struct_01 *temp_r28; Unkm403Struct_01 *temp_r27; Unkm403Struct_01 *temp_r31; @@ -1166,7 +1186,8 @@ static s32 fn_1_3894(void) { return var_r26; } -static void fn_1_3B80(omObjData *arg0) { +static void fn_1_3B80(omObjData *arg0) +{ s32 sp8[4]; s32 var_r30; s32 i; @@ -1178,22 +1199,24 @@ static void fn_1_3B80(omObjData *arg0) { for (i = 0; i < 4; i++) { fn_1_3E4C(lbl_1_bss_34[i]); } - } else { + } + else { for (i = 0, var_r30 = 0; i < 4; i++) { - ((Unkm403Struct_01*) lbl_1_bss_34[i]->data)->unk9C = 0; - if (((Unkm403Struct_01*) lbl_1_bss_34[i]->data)->unk07 != 0) { + ((Unkm403Struct_01 *)lbl_1_bss_34[i]->data)->unk9C = 0; + if (((Unkm403Struct_01 *)lbl_1_bss_34[i]->data)->unk07 != 0) { sp8[var_r30++] = i; } } if (var_r30 != 0) { - i = sp8[(s32) (var_r30 * (fn_1_4528() / 65536.0f))]; - ((Unkm403Struct_01*) lbl_1_bss_34[i]->data)->unk9C = 1; + i = sp8[(s32)(var_r30 * (fn_1_4528() / 65536.0f))]; + ((Unkm403Struct_01 *)lbl_1_bss_34[i]->data)->unk9C = 1; } } fn_1_3800(); } -static void fn_1_3D6C(Vec *arg0, Vec *arg1) { +static void fn_1_3D6C(Vec *arg0, Vec *arg1) +{ Vec sp18[6]; Vec spC; float var_f31; @@ -1214,7 +1237,8 @@ static void fn_1_3D6C(Vec *arg0, Vec *arg1) { } } -static void fn_1_3E4C(omObjData *arg0) { +static void fn_1_3E4C(omObjData *arg0) +{ Vec sp8; float var_f30; float var_f31; @@ -1232,14 +1256,16 @@ static void fn_1_3E4C(omObjData *arg0) { if (fn_1_86A0(&temp_r31->unk2C, &sp8) != 0) { temp_r31->unk2C.x = sp8.x; temp_r31->unk2C.z = sp8.z; - } else { + } + else { if (fn_1_7F78(temp_r31->unk2C.x, temp_r31->unk2C.z) - 10.0f < 100.0f) { temp_r31->unk07 |= 2; } var_f31 = var_f30 / lbl_1_data_134[temp_r31->unk01]; } } - } else { + } + else { var_f31 = var_f30 / lbl_1_data_134[temp_r31->unk01]; } if (arg0->scale.y < var_f31) { @@ -1249,7 +1275,8 @@ static void fn_1_3E4C(omObjData *arg0) { } } -static s16 fn_1_400C(s32 arg0, s16 arg1, ParticleHook arg2) { +static s16 fn_1_400C(s32 arg0, s16 arg1, ParticleHook arg2) +{ AnimData *var_r29; ParticleData *temp_r31; s32 temp_r30; @@ -1263,7 +1290,8 @@ static s16 fn_1_400C(s32 arg0, s16 arg1, ParticleHook arg2) { return temp_r30; } -static void fn_1_40A8(ModelData *model, ParticleData *particle, Mtx matrix) { +static void fn_1_40A8(ModelData *model, ParticleData *particle, Mtx matrix) +{ float temp_f31; float temp_f30; float temp_f29; @@ -1311,47 +1339,55 @@ static void fn_1_40A8(ModelData *model, ParticleData *particle, Mtx matrix) { DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } -static s32 fn_1_4528(void) { +static s32 fn_1_4528(void) +{ lbl_1_data_154 *= 0x41C64E6D; lbl_1_data_154 += 0x3039; return lbl_1_data_154 >> 16; } -static float fn_1_457C(float arg0, float arg1, float arg2) { +static float fn_1_457C(float arg0, float arg1, float arg2) +{ float var_f31; if (arg0 > 180.0f) { arg0 -= 360.0f; - } else if (arg0 <= -180.0f) { + } + else if (arg0 <= -180.0f) { arg0 += 360.0f; } if (arg1 > 180.0f) { arg1 -= 360.0f; - } else if (arg1 <= -180.0f) { + } + else if (arg1 <= -180.0f) { arg1 += 360.0f; } var_f31 = arg0 - arg1; if (var_f31 > 180.0f) { var_f31 -= 360.0f; - } else if (var_f31 <= -180.0f) { + } + else if (var_f31 <= -180.0f) { var_f31 += 360.0f; } arg0 = arg1 + var_f31 * arg2; if (arg0 > 180.0f) { arg0 -= 360.0f; - } else if (arg0 <= -180.0f) { + } + else if (arg0 <= -180.0f) { arg0 += 360.0f; } return arg0; } -static void fn_1_46E4(Mtx arg0, float arg1, float arg2, float arg3) { +static void fn_1_46E4(Mtx arg0, float arg1, float arg2, float arg3) +{ Mtx sp38; Mtx sp8; if (arg3 != 0.0f) { PSMTXRotRad(arg0, 'Z', MTXDegToRad(arg3)); - } else { + } + else { PSMTXIdentity(arg0); } if (arg1 != 0.0f) { @@ -1364,7 +1400,8 @@ static void fn_1_46E4(Mtx arg0, float arg1, float arg2, float arg3) { } } -static void fn_1_4804(float *arg0, float *arg1) { +static void fn_1_4804(float *arg0, float *arg1) +{ float temp_f29; float var_f28; double var_f30; @@ -1374,7 +1411,8 @@ static void fn_1_4804(float *arg0, float *arg1) { temp_f29 = -arg0[2]; if (1.0 - temp_f29 * temp_f29 < 0.0) { var_f30 = -(1.0 - temp_f29 * temp_f29); - } else { + } + else { var_f30 = 1.0 - temp_f29 * temp_f29; } var_f28 = sqrtf(var_f30); @@ -1386,7 +1424,8 @@ static void fn_1_4804(float *arg0, float *arg1) { arg1[1] = atan2d(var_f28, temp_f29); } -static float fn_1_4B10(float arg0, float arg1, float arg2, float arg3) { +static float fn_1_4B10(float arg0, float arg1, float arg2, float arg3) +{ float temp_f31; float var_f30; @@ -1395,7 +1434,8 @@ static float fn_1_4B10(float arg0, float arg1, float arg2, float arg3) { return var_f30; } -static void fn_1_4B88(float *arg0, float *arg1, float *arg2, float *arg3, float arg4) { +static void fn_1_4B88(float *arg0, float *arg1, float *arg2, float *arg3, float arg4) +{ s32 i; for (i = 0; i < 3; i++) { @@ -1403,12 +1443,14 @@ static void fn_1_4B88(float *arg0, float *arg1, float *arg2, float *arg3, float } } -static float fn_1_4CA4(float arg0, float arg1, float arg2, float arg3) { +static float fn_1_4CA4(float arg0, float arg1, float arg2, float arg3) +{ float var_f31 = 2.0 * ((arg0 - 1.0) * arg1 + (1.0 - 2.0 * arg0) * arg2 + arg0 * arg3); return var_f31; } -static void fn_1_4D1C(float *arg0, float *arg1, float *arg2, float *arg3, float arg4) { +static void fn_1_4D1C(float *arg0, float *arg1, float *arg2, float *arg3, float arg4) +{ float spC[3]; float var_f29; s32 i; @@ -1422,14 +1464,16 @@ static void fn_1_4D1C(float *arg0, float *arg1, float *arg2, float *arg3, float for (i = 0; i < 3; i++) { *(arg3++) = var_f29 * spC[i]; } - } else { + } + else { *(arg3++) = 0.0f; *(arg3++) = 0.0f; *(arg3++) = 1.0f; } } -static void fn_1_4FF4(float *arg0, float *arg1, float *arg2, s32 arg3) { +static void fn_1_4FF4(float *arg0, float *arg1, float *arg2, s32 arg3) +{ float sp48[16]; float sp8[16]; double temp_f31; @@ -1441,7 +1485,8 @@ static void fn_1_4FF4(float *arg0, float *arg1, float *arg2, s32 arg3) { sp48[i] = arg0[i + 1] - arg0[i]; if (sp48[i] == 0.0f) { sp8[i + 1] = 0.0f; - } else { + } + else { sp8[i + 1] = (arg1[i + 1] - arg1[i]) / sp48[i]; } } @@ -1456,13 +1501,15 @@ static void fn_1_4FF4(float *arg0, float *arg1, float *arg2, s32 arg3) { for (i = arg3 - 2; i > 0; i--) { if (sp8[i] == 0.0f) { arg2[i] = 0.0f; - } else { + } + else { arg2[i] = (arg2[i] - sp48[i] * arg2[i + 1]) / sp8[i]; } } } -static float fn_1_52AC(float arg0, float *arg1, float *arg2, float *arg3, s32 arg4) { +static float fn_1_52AC(float arg0, float *arg1, float *arg2, float *arg3, s32 arg4) +{ float temp_f31; float temp_f30; float var_f29; @@ -1472,14 +1519,18 @@ static float fn_1_52AC(float arg0, float *arg1, float *arg2, float *arg3, s32 ar arg0 -= temp_r31; temp_f31 = arg1[temp_r31 + 1] - arg1[temp_r31]; temp_f30 = temp_f31 * arg0; - var_f29 = arg2[temp_r31] + temp_f30 * (temp_f30 * (3.0f * arg3[temp_r31] + temp_f30 * (arg3[temp_r31 + 1] - arg3[temp_r31]) / temp_f31) + ((arg2[temp_r31 + 1] - arg2[temp_r31]) / temp_f31 - temp_f31 * (2.0f * arg3[temp_r31] + arg3[temp_r31 + 1]))); + var_f29 = arg2[temp_r31] + + temp_f30 + * (temp_f30 * (3.0f * arg3[temp_r31] + temp_f30 * (arg3[temp_r31 + 1] - arg3[temp_r31]) / temp_f31) + + ((arg2[temp_r31 + 1] - arg2[temp_r31]) / temp_f31 - temp_f31 * (2.0f * arg3[temp_r31] + arg3[temp_r31 + 1]))); if (temp_f31 == 0.0f) { var_f29 = arg2[temp_r31]; } return var_f29; } -static void fn_1_5400(float *arg0, Vec *arg1, float arg2[][3], s32 arg3) { +static void fn_1_5400(float *arg0, Vec *arg1, float arg2[][3], s32 arg3) +{ Vec sp8; float temp_f31; float spD4[16]; @@ -1494,7 +1545,7 @@ static void fn_1_5400(float *arg0, Vec *arg1, float arg2[][3], s32 arg3) { } for (j = 0; j < 3; j++) { for (i = 0; i < arg3; i++) { - spD4[i] = ((float*) &arg1[i])[j]; + spD4[i] = ((float *)&arg1[i])[j]; } fn_1_4FF4(arg0, spD4, sp94, arg3); for (i = 0; i < arg3; i++) { @@ -1503,7 +1554,8 @@ static void fn_1_5400(float *arg0, Vec *arg1, float arg2[][3], s32 arg3) { } } -static void fn_1_57E0(float arg0, Vec *arg1, float *arg2, Vec *arg3, float arg4[][3], s32 arg5) { +static void fn_1_57E0(float arg0, Vec *arg1, float *arg2, Vec *arg3, float arg4[][3], s32 arg5) +{ float sp48[16]; float sp8[16]; s32 i; @@ -1511,14 +1563,15 @@ static void fn_1_57E0(float arg0, Vec *arg1, float *arg2, Vec *arg3, float arg4[ for (i = 0; i < 3; i++) { for (j = 0; j < arg5; j++) { - sp48[j] = ((float*) &arg3[j])[i]; + sp48[j] = ((float *)&arg3[j])[i]; sp8[j] = arg4[j][i]; } - ((float*) arg1)[i] = fn_1_52AC(arg0, arg2, sp48, sp8, arg5); + ((float *)arg1)[i] = fn_1_52AC(arg0, arg2, sp48, sp8, arg5); } } -static float fn_1_59F4(Vec *arg0) { +static float fn_1_59F4(Vec *arg0) +{ float var_f30; float var_f29; @@ -1529,31 +1582,36 @@ static float fn_1_59F4(Vec *arg0) { arg0->x *= var_f29; arg0->y *= var_f29; arg0->z *= var_f29; - } else { + } + else { arg0->x = arg0->y = arg0->z = 0.0f; } return var_f30; } -static void fn_1_5B8C(Vec arg0, Vec arg1, Vec *arg2, float arg3) { +static void fn_1_5B8C(Vec arg0, Vec arg1, Vec *arg2, float arg3) +{ if (arg3 <= 0.0f) { arg2->x = arg0.x; arg2->y = arg0.y; arg2->z = arg0.z; arg3 = 0.0f; - } else if (arg3 >= 1.0f) { + } + else if (arg3 >= 1.0f) { arg2->x = arg0.x + arg1.x; arg2->y = arg0.y + arg1.y; arg2->z = arg0.z + arg1.z; arg3 = 1.0f; - } else { + } + else { arg2->x = arg0.x + arg3 * arg1.x; arg2->y = arg0.y + arg3 * arg1.y; arg2->z = arg0.z + arg3 * arg1.z; } } -static float fn_1_5C64(Vec arg0, Vec arg1, Vec arg2) { +static float fn_1_5C64(Vec arg0, Vec arg1, Vec arg2) +{ float var_f31; float temp_f30; @@ -1565,7 +1623,8 @@ static float fn_1_5C64(Vec arg0, Vec arg1, Vec arg2) { return var_f31; } -static float fn_1_5D20(Vec *arg0, Vec *arg1, Vec *arg2) { +static float fn_1_5D20(Vec *arg0, Vec *arg1, Vec *arg2) +{ Vec sp44; float var_f31; @@ -1577,7 +1636,8 @@ static float fn_1_5D20(Vec *arg0, Vec *arg1, Vec *arg2) { return (arg0->x - sp44.x) * (arg0->x - sp44.x) + (arg0->y - sp44.y) * (arg0->y - sp44.y) + (arg0->z - sp44.z) * (arg0->z - sp44.z); } -static float fn_1_605C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) { +static float fn_1_605C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ float var_f27; if (arg2->x * arg2->x + arg2->y * arg2->y + arg2->z * arg2->z == 0.0f) { diff --git a/src/REL/m403Dll/scene.c b/src/REL/m403Dll/scene.c index ba268596..e87fd648 100755 --- a/src/REL/m403Dll/scene.c +++ b/src/REL/m403Dll/scene.c @@ -1,8 +1,8 @@ #include "REL/m403Dll.h" #include "game/audio.h" #include "game/frand.h" -#include "game/hsfman.h" #include "game/hsfdraw.h" +#include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/memory.h" #include "game/object.h" @@ -53,298 +53,92 @@ static s32 lbl_1_bss_74; static s32 lbl_1_bss_70; static s32 lbl_1_bss_58[6]; -static Vec lbl_1_data_158[] = { - { 92.39f, 0.0f, 38.27f }, - { 100.0f, 0.0f, 0.0f }, - { 92.39f, 0.0f, -38.27f }, - { 70.71f, 0.0f, -70.71f }, - { 38.27f, 0.0f, -92.39f }, - { 0.0f, 0.0f, -100.0f }, - { -38.27f, 0.0f, -92.39f }, - { -70.71f, 0.0f, -70.71f }, - { -92.39f, 0.0f, -38.27f }, - { -100.0f, 0.0f, 0.0f }, - { -92.39f, 0.0f, 38.27f }, - { -70.71f, 0.0f, 70.71f }, - { -38.27f, 0.0f, 92.39f }, - { 0.0f, 0.0f, 100.0f }, - { 38.27f, 0.0f, 92.39f }, - { 70.71f, 0.0f, 70.71f } -}; +static Vec lbl_1_data_158[] = { { 92.39f, 0.0f, 38.27f }, { 100.0f, 0.0f, 0.0f }, { 92.39f, 0.0f, -38.27f }, { 70.71f, 0.0f, -70.71f }, + { 38.27f, 0.0f, -92.39f }, { 0.0f, 0.0f, -100.0f }, { -38.27f, 0.0f, -92.39f }, { -70.71f, 0.0f, -70.71f }, { -92.39f, 0.0f, -38.27f }, + { -100.0f, 0.0f, 0.0f }, { -92.39f, 0.0f, 38.27f }, { -70.71f, 0.0f, 70.71f }, { -38.27f, 0.0f, 92.39f }, { 0.0f, 0.0f, 100.0f }, + { 38.27f, 0.0f, 92.39f }, { 70.71f, 0.0f, 70.71f } }; -static Vec lbl_1_data_218[] = { - { 55.43f, 0.0f, 22.96f }, - { 60.0f, 0.0f, 0.0f }, - { 55.43f, 0.0f, -22.96f }, - { 42.43f, 0.0f, -42.43f }, - { 22.96f, 0.0f, -55.43f }, - { 0.0f, 0.0f, -60.0f }, - { -22.96f, 0.0f, -55.43f }, - { -42.43f, 0.0f, -42.43f }, - { -55.43f, 0.0f, -22.96f }, - { -60.0f, 0.0f, 0.0f }, - { -55.43f, 0.0f, 22.96f }, - { -42.43f, 0.0f, 42.43f }, - { -22.96f, 0.0f, 55.43f }, - { 0.0f, 0.0f, 60.0f }, - { 22.96f, 0.0f, 55.43f }, - { 42.43f, 0.0f, 42.43f } -}; +static Vec lbl_1_data_218[] = { { 55.43f, 0.0f, 22.96f }, { 60.0f, 0.0f, 0.0f }, { 55.43f, 0.0f, -22.96f }, { 42.43f, 0.0f, -42.43f }, + { 22.96f, 0.0f, -55.43f }, { 0.0f, 0.0f, -60.0f }, { -22.96f, 0.0f, -55.43f }, { -42.43f, 0.0f, -42.43f }, { -55.43f, 0.0f, -22.96f }, + { -60.0f, 0.0f, 0.0f }, { -55.43f, 0.0f, 22.96f }, { -42.43f, 0.0f, 42.43f }, { -22.96f, 0.0f, 55.43f }, { 0.0f, 0.0f, 60.0f }, + { 22.96f, 0.0f, 55.43f }, { 42.43f, 0.0f, 42.43f } }; -static Vec lbl_1_data_2D8[] = { - { 38.79f, 0.0f, -53.4f }, - { 0.0f, 0.0f, -120.0f }, - { -38.79f, 0.0f, -53.4f }, - { -114.13f, 0.0f, -37.08f }, - { -62.77f, 0.0f, 20.4f }, - { -70.53f, 0.0f, 97.08f }, - { 0.0f, 0.0f, 66.0f }, - { 70.53f, 0.0f, 97.08f }, - { 62.77f, 0.0f, 20.4f }, - { 114.13f, 0.0f, -37.08f } -}; +static Vec lbl_1_data_2D8[] + = { { 38.79f, 0.0f, -53.4f }, { 0.0f, 0.0f, -120.0f }, { -38.79f, 0.0f, -53.4f }, { -114.13f, 0.0f, -37.08f }, { -62.77f, 0.0f, 20.4f }, + { -70.53f, 0.0f, 97.08f }, { 0.0f, 0.0f, 66.0f }, { 70.53f, 0.0f, 97.08f }, { 62.77f, 0.0f, 20.4f }, { 114.13f, 0.0f, -37.08f } }; -static Vec lbl_1_data_350[] = { - { 21.34f, 0.0f, -29.37f }, - { 0.0f, 0.0f, -66.0f }, - { -21.34f, 0.0f, -29.37f }, - { -62.77f, 0.0f, -20.4f }, - { -34.52f, 0.0f, 11.22f }, - { -38.79f, 0.0f, 53.4f }, - { 0.0f, 0.0f, 36.3f }, - { 38.79f, 0.0f, 53.4f }, - { 34.52f, 0.0f, 11.22f }, - { 62.77f, 0.0f, -20.4f } -}; +static Vec lbl_1_data_350[] + = { { 21.34f, 0.0f, -29.37f }, { 0.0f, 0.0f, -66.0f }, { -21.34f, 0.0f, -29.37f }, { -62.77f, 0.0f, -20.4f }, { -34.52f, 0.0f, 11.22f }, + { -38.79f, 0.0f, 53.4f }, { 0.0f, 0.0f, 36.3f }, { 38.79f, 0.0f, 53.4f }, { 34.52f, 0.0f, 11.22f }, { 62.77f, 0.0f, -20.4f } }; -static Vec lbl_1_data_3C8[] = { - { 110.87f, 0.0f, 45.92f }, - { 120.0f, 0.0f, 0.0f }, - { 110.87f, 0.0f, -45.92f }, - { 84.85f, 0.0f, -84.85f }, - { 45.92f, 0.0f, -110.87f }, - { 0.0f, 0.0f, -120.0f }, - { -45.92f, 0.0f, -110.87f }, - { -84.85f, 0.0f, -84.85f }, - { -110.87f, 0.0f, -45.92f }, - { -120.0f, 0.0f, 0.0f }, - { -110.87f, 0.0f, 45.92f }, - { -84.85f, 0.0f, 84.85f }, - { -45.92f, 0.0f, 110.87f }, - { 0.0f, 0.0f, 120.0f }, - { 45.92f, 0.0f, 110.87f }, - { 84.85f, 0.0f, 84.85f } -}; +static Vec lbl_1_data_3C8[] = { { 110.87f, 0.0f, 45.92f }, { 120.0f, 0.0f, 0.0f }, { 110.87f, 0.0f, -45.92f }, { 84.85f, 0.0f, -84.85f }, + { 45.92f, 0.0f, -110.87f }, { 0.0f, 0.0f, -120.0f }, { -45.92f, 0.0f, -110.87f }, { -84.85f, 0.0f, -84.85f }, { -110.87f, 0.0f, -45.92f }, + { -120.0f, 0.0f, 0.0f }, { -110.87f, 0.0f, 45.92f }, { -84.85f, 0.0f, 84.85f }, { -45.92f, 0.0f, 110.87f }, { 0.0f, 0.0f, 120.0f }, + { 45.92f, 0.0f, 110.87f }, { 84.85f, 0.0f, 84.85f } }; -static Vec lbl_1_data_488[] = { - { 73.17f, 0.0f, 30.31f }, - { 79.2f, 0.0f, 0.0f }, - { 73.17f, 0.0f, -30.31f }, - { 56.0f, 0.0f, -56.0f }, - { 30.31f, 0.0f, -73.17f }, - { 0.0f, 0.0f, -79.2f }, - { -30.31f, 0.0f, -73.17f }, - { -56.0f, 0.0f, -56.0f }, - { -73.17f, 0.0f, -30.31f }, - { -79.2f, 0.0f, 0.0f }, - { -73.17f, 0.0f, 30.31f }, - { -56.0f, 0.0f, 56.0f }, - { -30.31f, 0.0f, 73.17f }, - { 0.0f, 0.0f, 79.2f }, - { 30.31f, 0.0f, 73.17f }, - { 56.0f, 0.0f, 56.0f } -}; +static Vec lbl_1_data_488[] = { { 73.17f, 0.0f, 30.31f }, { 79.2f, 0.0f, 0.0f }, { 73.17f, 0.0f, -30.31f }, { 56.0f, 0.0f, -56.0f }, + { 30.31f, 0.0f, -73.17f }, { 0.0f, 0.0f, -79.2f }, { -30.31f, 0.0f, -73.17f }, { -56.0f, 0.0f, -56.0f }, { -73.17f, 0.0f, -30.31f }, + { -79.2f, 0.0f, 0.0f }, { -73.17f, 0.0f, 30.31f }, { -56.0f, 0.0f, 56.0f }, { -30.31f, 0.0f, 73.17f }, { 0.0f, 0.0f, 79.2f }, + { 30.31f, 0.0f, 73.17f }, { 56.0f, 0.0f, 56.0f } }; -static Vec lbl_1_data_548[] = { - { 48.49f, 0.0f, -66.74f }, - { 0.0f, 0.0f, -150.0f }, - { -48.49f, 0.0f, -66.74f }, - { -142.66f, 0.0f, -46.35f }, - { -78.46f, 0.0f, 25.49f }, - { -88.17f, 0.0f, 121.35f }, - { 0.0f, 0.0f, 82.5f }, - { 88.17f, 0.0f, 121.35f }, - { 78.46f, 0.0f, 25.49f }, - { 142.66f, 0.0f, -46.35f } -}; +static Vec lbl_1_data_548[] + = { { 48.49f, 0.0f, -66.74f }, { 0.0f, 0.0f, -150.0f }, { -48.49f, 0.0f, -66.74f }, { -142.66f, 0.0f, -46.35f }, { -78.46f, 0.0f, 25.49f }, + { -88.17f, 0.0f, 121.35f }, { 0.0f, 0.0f, 82.5f }, { 88.17f, 0.0f, 121.35f }, { 78.46f, 0.0f, 25.49f }, { 142.66f, 0.0f, -46.35f } }; -static Vec lbl_1_data_5C0[] = { - { 29.09f, 0.0f, -40.05f }, - { 0.0f, 0.0f, -90.0f }, - { -29.09f, 0.0f, -40.05f }, - { -85.59f, 0.0f, -27.81f }, - { -47.08f, 0.0f, 15.3f }, - { -52.9f, 0.0f, 72.81f }, - { 0.0f, 0.0f, 49.5f }, - { 52.9f, 0.0f, 72.81f }, - { 47.08f, 0.0f, 15.3f }, - { 85.59f, 0.0f, -27.81f } -}; +static Vec lbl_1_data_5C0[] + = { { 29.09f, 0.0f, -40.05f }, { 0.0f, 0.0f, -90.0f }, { -29.09f, 0.0f, -40.05f }, { -85.59f, 0.0f, -27.81f }, { -47.08f, 0.0f, 15.3f }, + { -52.9f, 0.0f, 72.81f }, { 0.0f, 0.0f, 49.5f }, { 52.9f, 0.0f, 72.81f }, { 47.08f, 0.0f, 15.3f }, { 85.59f, 0.0f, -27.81f } }; -static Vec lbl_1_data_638[] = { - { 129.1f, 0.0f, 54.6f }, - { 140.0f, 0.0f, 0.0f }, - { 129.3f, 0.0f, -53.6f }, - { 99.0f, 0.0f, -99.0f }, - { 53.6f, 0.0f, -129.3f }, - { 0.0f, 0.0f, -140.0f }, - { -53.6f, 0.0f, -129.3f }, - { -99.0f, 0.0f, -99.0f }, - { -129.4f, 0.0f, -53.5f }, - { -140.0f, 0.0f, 0.0f }, - { -136.0f, 0.0f, 20.4f }, - { -102.1f, 0.0f, -7.6f }, - { -70.0f, 0.0f, -14.0f }, - { -37.8f, 0.0f, -7.6f }, - { -10.6f, 0.0f, 10.6f }, - { 7.6f, 0.0f, 37.8f }, - { 14.0f, 0.0f, 70.0f }, - { 7.6f, 0.0f, 102.2f }, - { -20.4f, 0.0f, 136.0f }, - { 0.1f, 0.0f, 140.1f }, - { 53.9f, 0.0f, 129.5f }, - { 99.5f, 0.0f, 99.0f } -}; +static Vec lbl_1_data_638[] = { { 129.1f, 0.0f, 54.6f }, { 140.0f, 0.0f, 0.0f }, { 129.3f, 0.0f, -53.6f }, { 99.0f, 0.0f, -99.0f }, + { 53.6f, 0.0f, -129.3f }, { 0.0f, 0.0f, -140.0f }, { -53.6f, 0.0f, -129.3f }, { -99.0f, 0.0f, -99.0f }, { -129.4f, 0.0f, -53.5f }, + { -140.0f, 0.0f, 0.0f }, { -136.0f, 0.0f, 20.4f }, { -102.1f, 0.0f, -7.6f }, { -70.0f, 0.0f, -14.0f }, { -37.8f, 0.0f, -7.6f }, + { -10.6f, 0.0f, 10.6f }, { 7.6f, 0.0f, 37.8f }, { 14.0f, 0.0f, 70.0f }, { 7.6f, 0.0f, 102.2f }, { -20.4f, 0.0f, 136.0f }, { 0.1f, 0.0f, 140.1f }, + { 53.9f, 0.0f, 129.5f }, { 99.5f, 0.0f, 99.0f } }; -static Vec lbl_1_data_740[] = { - { 95.9f, 0.0f, 42.9f }, - { 106.6f, 0.0f, 0.4f }, - { 98.4f, 0.0f, -37.2f }, - { 81.7f, 0.0f, -65.9f }, - { 55.4f, 0.0f, -89.6f }, - { 11.5f, 0.0f, -101.7f }, - { -24.5f, 0.0f, -99.9f }, - { -60.9f, 0.0f, -88.6f }, - { -98.7f, 0.0f, -64.4f }, - { -110.4f, 0.0f, -41.5f }, - { -110.4f, 0.0f, -30.8f }, - { -90.4f, 0.0f, -42.3f }, - { -53.8f, 0.0f, -48.5f }, - { -14.6f, 0.0f, -40.5f }, - { 17.1f, 0.0f, -16.3f }, - { 35.8f, 0.0f, 28.2f }, - { 35.8f, 0.0f, 65.6f }, - { 24.7f, 0.0f, 101.6f }, - { 19.6f, 0.0f, 114.6f }, - { 34.9f, 0.0f, 114.5f }, - { 62.9f, 0.0f, 99.0f }, - { 83.0f, 0.0f, 73.2f } -}; +static Vec lbl_1_data_740[] = { { 95.9f, 0.0f, 42.9f }, { 106.6f, 0.0f, 0.4f }, { 98.4f, 0.0f, -37.2f }, { 81.7f, 0.0f, -65.9f }, + { 55.4f, 0.0f, -89.6f }, { 11.5f, 0.0f, -101.7f }, { -24.5f, 0.0f, -99.9f }, { -60.9f, 0.0f, -88.6f }, { -98.7f, 0.0f, -64.4f }, + { -110.4f, 0.0f, -41.5f }, { -110.4f, 0.0f, -30.8f }, { -90.4f, 0.0f, -42.3f }, { -53.8f, 0.0f, -48.5f }, { -14.6f, 0.0f, -40.5f }, + { 17.1f, 0.0f, -16.3f }, { 35.8f, 0.0f, 28.2f }, { 35.8f, 0.0f, 65.6f }, { 24.7f, 0.0f, 101.6f }, { 19.6f, 0.0f, 114.6f }, + { 34.9f, 0.0f, 114.5f }, { 62.9f, 0.0f, 99.0f }, { 83.0f, 0.0f, 73.2f } }; -static Vec lbl_1_data_848[] = { - { 110.9f, 0.0f, 45.9f }, - { 120.0f, 0.0f, 0.0f }, - { 110.9f, 0.0f, -45.8f }, - { 84.8f, 0.0f, -84.9f }, - { 45.9f, 0.0f, -110.9f }, - { 0.0f, 0.0f, -120.0f }, - { -45.9f, 0.0f, -110.9f }, - { -84.9f, 0.0f, -84.8f }, - { -110.9f, 0.0f, -45.9f }, - { -120.0f, 0.0f, 0.0f }, - { -116.5f, 0.0f, 17.5f }, - { -87.6f, 0.0f, -6.6f }, - { -60.0f, 0.0f, -12.0f }, - { -32.4f, 0.0f, -6.5f }, - { -9.1f, 0.0f, 9.1f }, - { 6.5f, 0.0f, 32.5f }, - { 12.0f, 0.0f, 60.0f }, - { 6.5f, 0.0f, 87.6f }, - { -17.5f, 0.0f, 116.5f }, - { 0.0f, 0.0f, 120.0f }, - { 45.9f, 0.0f, 110.9f }, - { 84.8f, 0.0f, 84.9f } -}; +static Vec lbl_1_data_848[] = { { 110.9f, 0.0f, 45.9f }, { 120.0f, 0.0f, 0.0f }, { 110.9f, 0.0f, -45.8f }, { 84.8f, 0.0f, -84.9f }, + { 45.9f, 0.0f, -110.9f }, { 0.0f, 0.0f, -120.0f }, { -45.9f, 0.0f, -110.9f }, { -84.9f, 0.0f, -84.8f }, { -110.9f, 0.0f, -45.9f }, + { -120.0f, 0.0f, 0.0f }, { -116.5f, 0.0f, 17.5f }, { -87.6f, 0.0f, -6.6f }, { -60.0f, 0.0f, -12.0f }, { -32.4f, 0.0f, -6.5f }, + { -9.1f, 0.0f, 9.1f }, { 6.5f, 0.0f, 32.5f }, { 12.0f, 0.0f, 60.0f }, { 6.5f, 0.0f, 87.6f }, { -17.5f, 0.0f, 116.5f }, { 0.0f, 0.0f, 120.0f }, + { 45.9f, 0.0f, 110.9f }, { 84.8f, 0.0f, 84.9f } }; -static Vec lbl_1_data_950[] = { - { 80.0f, 0.0f, 31.0f }, - { 83.9f, 0.0f, -0.1f }, - { 77.2f, 0.0f, -31.7f }, - { 60.4f, 0.0f, -56.8f }, - { 35.6f, 0.0f, -77.4f }, - { -0.5f, 0.0f, -84.1f }, - { -31.5f, 0.0f, -82.9f }, - { -58.9f, 0.0f, -71.4f }, - { -86.3f, 0.0f, -49.4f }, - { -91.5f, 0.0f, -36.4f }, - { -91.5f, 0.0f, -27.3f }, - { -82.1f, 0.0f, -29.8f }, - { -54.7f, 0.0f, -36.2f }, - { -21.9f, 0.0f, -30.9f }, - { 13.3f, 0.0f, -10.2f }, - { 28.3f, 0.0f, 18.3f }, - { 33.4f, 0.0f, 58.4f }, - { 28.0f, 0.0f, 81.6f }, - { 20.7f, 0.0f, 93.3f }, - { 30.4f, 0.0f, 93.3f }, - { 55.4f, 0.0f, 82.2f }, - { 70.4f, 0.0f, 59.3f } -}; +static Vec lbl_1_data_950[] = { { 80.0f, 0.0f, 31.0f }, { 83.9f, 0.0f, -0.1f }, { 77.2f, 0.0f, -31.7f }, { 60.4f, 0.0f, -56.8f }, + { 35.6f, 0.0f, -77.4f }, { -0.5f, 0.0f, -84.1f }, { -31.5f, 0.0f, -82.9f }, { -58.9f, 0.0f, -71.4f }, { -86.3f, 0.0f, -49.4f }, + { -91.5f, 0.0f, -36.4f }, { -91.5f, 0.0f, -27.3f }, { -82.1f, 0.0f, -29.8f }, { -54.7f, 0.0f, -36.2f }, { -21.9f, 0.0f, -30.9f }, + { 13.3f, 0.0f, -10.2f }, { 28.3f, 0.0f, 18.3f }, { 33.4f, 0.0f, 58.4f }, { 28.0f, 0.0f, 81.6f }, { 20.7f, 0.0f, 93.3f }, { 30.4f, 0.0f, 93.3f }, + { 55.4f, 0.0f, 82.2f }, { 70.4f, 0.0f, 59.3f } }; -static s32 lbl_1_data_A58[] = { - DATA_MAKE_NUM(DATADIR_M403, 4), - DATA_MAKE_NUM(DATADIR_M403, 5), - DATA_MAKE_NUM(DATADIR_M403, 6), - DATA_MAKE_NUM(DATADIR_M403, 9), - DATA_MAKE_NUM(DATADIR_M403, 12), - DATA_MAKE_NUM(DATADIR_M403, 15), - DATA_MAKE_NUM(DATADIR_M403, 7), - DATA_MAKE_NUM(DATADIR_M403, 8), - DATA_MAKE_NUM(DATADIR_M403, 10), - DATA_MAKE_NUM(DATADIR_M403, 11), - DATA_MAKE_NUM(DATADIR_M403, 13), - DATA_MAKE_NUM(DATADIR_M403, 14) -}; +static s32 lbl_1_data_A58[] + = { DATA_MAKE_NUM(DATADIR_M403, 4), DATA_MAKE_NUM(DATADIR_M403, 5), DATA_MAKE_NUM(DATADIR_M403, 6), DATA_MAKE_NUM(DATADIR_M403, 9), + DATA_MAKE_NUM(DATADIR_M403, 12), DATA_MAKE_NUM(DATADIR_M403, 15), DATA_MAKE_NUM(DATADIR_M403, 7), DATA_MAKE_NUM(DATADIR_M403, 8), + DATA_MAKE_NUM(DATADIR_M403, 10), DATA_MAKE_NUM(DATADIR_M403, 11), DATA_MAKE_NUM(DATADIR_M403, 13), DATA_MAKE_NUM(DATADIR_M403, 14) }; -static Vec lbl_1_data_A88[] = { - { -400.0f, 0.0f, 300.0f }, - { 0.0f, 0.0f, 300.0f }, - { 400.0f, 0.0f, 300.0f }, - { -400.0f, 0.0f, 700.0f }, - { 0.0f, 0.0f, 700.0f }, - { 400.0f, 0.0f, 700.0f } -}; +static Vec lbl_1_data_A88[] = { { -400.0f, 0.0f, 300.0f }, { 0.0f, 0.0f, 300.0f }, { 400.0f, 0.0f, 300.0f }, { -400.0f, 0.0f, 700.0f }, + { 0.0f, 0.0f, 700.0f }, { 400.0f, 0.0f, 700.0f } }; static s32 lbl_1_data_AD0[] = { 6, 8, 10 }; static s32 lbl_1_data_ADC[] = { 7, 9, 11 }; static s32 lbl_1_data_AE8[] = { 1, 2, 3, 4, 5 }; -static Vec *lbl_1_data_AFC[] = { - lbl_1_data_3C8, - lbl_1_data_158, - lbl_1_data_548, - lbl_1_data_2D8, - lbl_1_data_638, - lbl_1_data_848 -}; +static Vec *lbl_1_data_AFC[] = { lbl_1_data_3C8, lbl_1_data_158, lbl_1_data_548, lbl_1_data_2D8, lbl_1_data_638, lbl_1_data_848 }; -static s32 lbl_1_data_B14[] = { - 16, 16, 10, 10, 22, 22 -}; +static s32 lbl_1_data_B14[] = { 16, 16, 10, 10, 22, 22 }; -static Vec lbl_1_data_B2C[] = { - { 0.0f, 0.0f, 0.0f }, - { 0.0f, 0.0f, 0.0f }, - { 0.0f, 0.0f, -20.0f }, - { 0.0f, 0.0f, -20.0f }, - { 40.0f, 0.0f, -20.0f }, - { 40.0f, 0.0f, -20.0f } -}; +static Vec lbl_1_data_B2C[] = { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, -20.0f }, { 0.0f, 0.0f, -20.0f }, { 40.0f, 0.0f, -20.0f }, + { 40.0f, 0.0f, -20.0f } }; -static Vec *lbl_1_data_B74[][2] = { - { lbl_1_data_3C8, lbl_1_data_488 }, - { lbl_1_data_158, lbl_1_data_218 }, - { lbl_1_data_548, lbl_1_data_5C0 }, - { lbl_1_data_2D8, lbl_1_data_350 }, - { lbl_1_data_638, lbl_1_data_740 }, - { lbl_1_data_848, lbl_1_data_950 } -}; +static Vec *lbl_1_data_B74[][2] = { { lbl_1_data_3C8, lbl_1_data_488 }, { lbl_1_data_158, lbl_1_data_218 }, { lbl_1_data_548, lbl_1_data_5C0 }, + { lbl_1_data_2D8, lbl_1_data_350 }, { lbl_1_data_638, lbl_1_data_740 }, { lbl_1_data_848, lbl_1_data_950 } }; -static s32 lbl_1_data_BA4[] = { - 16, 16, 10, 10, 22, 22 -}; +static s32 lbl_1_data_BA4[] = { 16, 16, 10, 10, 22, 22 }; -void fn_1_650C(Process *arg0) { +void fn_1_650C(Process *arg0) +{ Vec sp20; Vec sp14; Vec sp8; @@ -379,21 +173,23 @@ void fn_1_650C(Process *arg0) { memset(lbl_1_bss_58, 0, sizeof(lbl_1_bss_58)); } -void fn_1_676C(void) { +void fn_1_676C(void) +{ fn_1_799C(); } -static void fn_1_678C(omObjData *arg0) { +static void fn_1_678C(omObjData *arg0) +{ arg0->stat |= 0x100; arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M403, 16)); arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M403, 17)); arg0->func = fn_1_6810; } -static void fn_1_6810(omObjData *arg0) { -} +static void fn_1_6810(omObjData *arg0) { } -static void fn_1_6814(omObjData *arg0) { +static void fn_1_6814(omObjData *arg0) +{ arg0->stat |= 0x100; arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M403, 0)); arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M403, 3)); @@ -408,7 +204,8 @@ static void fn_1_6814(omObjData *arg0) { arg0->func = fn_1_6980; } -static void fn_1_6980(omObjData *arg0) { +static void fn_1_6980(omObjData *arg0) +{ ModelData *var_r30; UnkBss9CData *var_r29; @@ -418,15 +215,18 @@ static void fn_1_6980(omObjData *arg0) { arg0->work[0]++; var_r30 = &Hu3DData[arg0->model[1]]; var_r30->rot.x = -120.0f * arg0->work[0] / 60.0f; - } else { + } + else { lbl_1_bss_78 ^= 1; lbl_1_bss_7C = 0; } - } else if (arg0->work[0] != 0) { + } + else if (arg0->work[0] != 0) { arg0->work[0]--; var_r30 = &Hu3DData[arg0->model[1]]; var_r30->rot.x = -120.0f * arg0->work[0] / 60.0f; - } else { + } + else { lbl_1_bss_78 ^= 1; lbl_1_bss_7C = 0; } @@ -452,7 +252,8 @@ static void fn_1_6980(omObjData *arg0) { } } -static void fn_1_6C98(omObjData *arg0) { +static void fn_1_6C98(omObjData *arg0) +{ UnkBss9CData *var_r29; s32 i; @@ -464,10 +265,10 @@ static void fn_1_6C98(omObjData *arg0) { } for (i = 0; i < 12U; i++) { var_r29->unk24[i] = Hu3DModelCreateFile(lbl_1_data_A58[i]); - Hu3DModelAttrSet(var_r29->unk24[i], 1); + Hu3DModelAttrSet(var_r29->unk24[i], HU3D_ATTR_DISPOFF); } arg0->model[0] = var_r29->unk24[0]; - Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); var_r29->unk00_field0 = 0; var_r29->unk04 = 4 - lbl_1_bss_98; fn_1_6FE8(arg0); @@ -500,7 +301,8 @@ static void fn_1_6C98(omObjData *arg0) { arg0->func = fn_1_73E8; } -static void fn_1_6ED8(omObjData *arg0) { +static void fn_1_6ED8(omObjData *arg0) +{ Mtx sp38; Mtx sp8; s32 i; @@ -516,7 +318,8 @@ static void fn_1_6ED8(omObjData *arg0) { } } -static void fn_1_6FE8(omObjData *arg0) { +static void fn_1_6FE8(omObjData *arg0) +{ UnkBss9CData *temp_r30; s32 temp_r29; s32 temp_r28; @@ -575,16 +378,17 @@ static void fn_1_6FE8(omObjData *arg0) { memcpy(lbl_1_bss_58, &temp_r30->unk0C, sizeof(temp_r30->unk0C)); for (i = 0; i < 6; i++) { if (arg0->model[i + 1] >= 0) { - Hu3DModelAttrSet(arg0->model[i + 1], 1); + Hu3DModelAttrSet(arg0->model[i + 1], HU3D_ATTR_DISPOFF); } } for (i = 0; i < 6; i++) { arg0->model[i + 1] = temp_r30->unk24[temp_r30->unk0C[i]]; - Hu3DModelAttrReset(arg0->model[i + 1], 1); + Hu3DModelAttrReset(arg0->model[i + 1], HU3D_ATTR_DISPOFF); } } -static void fn_1_73E8(omObjData *arg0) { +static void fn_1_73E8(omObjData *arg0) +{ UnkBss9CData *temp_r30; ModelData *var_r27; s32 i; @@ -605,10 +409,12 @@ static void fn_1_73E8(omObjData *arg0) { arg0->trans.z = -500.0f + 7.5f * lbl_1_bss_B0->work[0] / 60.0f; break; } - } else { + } + else { return; } - } else { + } + else { switch (temp_r30->unk04) { case 0: if (lbl_1_bss_84 != 0) { @@ -635,7 +441,8 @@ static void fn_1_73E8(omObjData *arg0) { Hu3DModelShadowReset(arg0->model[i]); Hu3DModelShadowMapSet(arg0->model[i]); } - } else { + } + else { temp_r30->unk08 += lbl_1_bss_80; if (temp_r30->unk08 > 90.0f) { temp_r30->unk00_field0 = 1; @@ -669,8 +476,9 @@ static void fn_1_73E8(omObjData *arg0) { fn_1_6ED8(arg0); } -static void fn_1_799C(void) { - omObjData* temp_r30; +static void fn_1_799C(void) +{ + omObjData *temp_r30; UnkBss9CData *temp_r29; s32 i; s32 j; @@ -693,7 +501,8 @@ static void fn_1_799C(void) { } } -static void fn_1_7A98(s16 arg0) { +static void fn_1_7A98(s16 arg0) +{ s16 i; HsfData *temp_r31; HsfObject *var_r28; @@ -711,7 +520,8 @@ static void fn_1_7A98(s16 arg0) { } } -static s32 fn_1_7B20(float arg0, float arg1) { +static s32 fn_1_7B20(float arg0, float arg1) +{ s32 var_r31; s32 var_r30; @@ -719,37 +529,44 @@ static s32 fn_1_7B20(float arg0, float arg1) { var_r30 = (arg1 + 400.0f) / 400.0f; if (var_r31 < 0) { var_r31 = 0; - } else if (var_r31 > 2) { + } + else if (var_r31 > 2) { var_r31 = 2; } if (var_r30 < 0) { var_r30 = 0; - } else if (var_r30 > 1) { + } + else if (var_r30 > 1) { var_r30 = 1; } return var_r31 + var_r30 * 3; } -static void fn_1_7BD4(s32 arg0, Vec *arg1) { +static void fn_1_7BD4(s32 arg0, Vec *arg1) +{ arg1->x = lbl_1_data_A88[arg0].x; arg1->y = lbl_1_data_A88[arg0].y; arg1->z = lbl_1_data_A88[arg0].z; } -static s32 fn_1_7C20(UnkBss9CData *arg0, s32 arg1) { +static s32 fn_1_7C20(UnkBss9CData *arg0, s32 arg1) +{ return arg0->unk0C[arg1]; } -void fn_1_7C30(float arg0) { +void fn_1_7C30(float arg0) +{ lbl_1_bss_8C = 1; lbl_1_bss_80 = arg0; } -void fn_1_7C50(s32 arg0) { +void fn_1_7C50(s32 arg0) +{ lbl_1_bss_74 = arg0; } -void fn_1_7C60(void) { +void fn_1_7C60(void) +{ float var_f30; lbl_1_bss_7C = 1; @@ -758,7 +575,8 @@ void fn_1_7C60(void) { HuAudFXPlay(0x524); } -static s32 fn_1_7D04(float arg0, float arg1, Vec *arg2) { +static s32 fn_1_7D04(float arg0, float arg1, Vec *arg2) +{ Mtx sp4C; Mtx sp1C; Vec sp10; @@ -799,7 +617,8 @@ static s32 fn_1_7D04(float arg0, float arg1, Vec *arg2) { return temp_r23; } -float fn_1_7F78(float arg0, float arg1) { +float fn_1_7F78(float arg0, float arg1) +{ float temp_f30; float var_f31; omObjData *temp_r31; @@ -808,7 +627,8 @@ float fn_1_7F78(float arg0, float arg1) { temp_f30 = -(arg1 - temp_r31->trans.z); if (cosd(temp_r31->rot.x) <= 0.0) { var_f31 = 9999.0f; - } else { + } + else { var_f31 = temp_f30 * sind(temp_r31->rot.x) / cosd(temp_r31->rot.x); if (var_f31 > 9999.0f) { var_f31 = 9999.0f; @@ -817,19 +637,23 @@ float fn_1_7F78(float arg0, float arg1) { return var_f31; } -float fn_1_80D4(Vec *arg0, float arg1) { +float fn_1_80D4(Vec *arg0, float arg1) +{ return fn_1_7F78(0.0f, arg0->z - arg1); } -static s32 fn_1_8254(void) { +static s32 fn_1_8254(void) +{ return lbl_1_bss_7C; } -s32 fn_1_8264(void) { +s32 fn_1_8264(void) +{ return lbl_1_bss_88; } -static s32 fn_1_8274(UnkBss9CData *arg0, s32 *arg1) { +static s32 fn_1_8274(UnkBss9CData *arg0, s32 *arg1) +{ s32 var_r30; s32 i; @@ -842,7 +666,8 @@ static s32 fn_1_8274(UnkBss9CData *arg0, s32 *arg1) { return var_r30; } -s32 fn_1_82D0(Vec *arg0) { +s32 fn_1_82D0(Vec *arg0) +{ omObjData *temp_r31; UnkBss9CData *temp_r28; s32 sp8[6]; @@ -864,10 +689,11 @@ s32 fn_1_82D0(Vec *arg0) { return var_r26; } -s32 fn_1_8470(Vec *arg0) { +s32 fn_1_8470(Vec *arg0) +{ Mtx sp50; Mtx sp20; - omObjData* temp_r30; + omObjData *temp_r30; UnkBss9CData *temp_r27; s32 sp8[6]; s32 temp_r26; @@ -896,14 +722,16 @@ s32 fn_1_8470(Vec *arg0) { return var_r25; } -void fn_1_8670(s32 arg0) { +void fn_1_8670(s32 arg0) +{ if (arg0 > lbl_1_bss_74) { arg0 = lbl_1_bss_74; } lbl_1_bss_70 = arg0; } -s32 fn_1_86A0(Vec *arg0, Vec *arg1) { +s32 fn_1_86A0(Vec *arg0, Vec *arg1) +{ Vec sp48; Vec sp3C; Vec sp30; @@ -972,14 +800,16 @@ s32 fn_1_86A0(Vec *arg0, Vec *arg1) { continue; } VECSubtract(&temp_r30[temp_r27], &temp_r30[i], &sp24); - temp_f30 = (sp3C.x * sp24.x - sp24.x * temp_r30[i].x + sp3C.y * sp24.y - sp24.y * temp_r30[i].y + sp3C.z * sp24.z - sp24.z * temp_r30[i].z) / (sp24.x * sp24.x + sp24.y * sp24.y + sp24.z * sp24.z); + temp_f30 = (sp3C.x * sp24.x - sp24.x * temp_r30[i].x + sp3C.y * sp24.y - sp24.y * temp_r30[i].y + sp3C.z * sp24.z - sp24.z * temp_r30[i].z) + / (sp24.x * sp24.x + sp24.y * sp24.y + sp24.z * sp24.z); sp30.x = temp_r30[i].x + temp_f30 * sp24.x; sp30.y = temp_r30[i].y + temp_f30 * sp24.y; sp30.z = temp_r30[i].z + temp_f30 * sp24.z; VECSubtract(&sp30, &sp3C, &spC); temp_f28 = VECMag(&spC); VECSubtract(&temp_r29[temp_r27], &temp_r29[i], &sp18); - temp_f29 = (sp3C.x * sp18.x - sp18.x * temp_r29[i].x + sp3C.y * sp18.y - sp18.y * temp_r29[i].y + sp3C.z * sp18.z - sp18.z * temp_r29[i].z) / (sp18.x * sp18.x + sp18.y * sp18.y + sp18.z * sp18.z); + temp_f29 = (sp3C.x * sp18.x - sp18.x * temp_r29[i].x + sp3C.y * sp18.y - sp18.y * temp_r29[i].y + sp3C.z * sp18.z - sp18.z * temp_r29[i].z) + / (sp18.x * sp18.x + sp18.y * sp18.y + sp18.z * sp18.z); sp30.x = temp_r29[i].x + temp_f29 * sp18.x; sp30.y = temp_r29[i].y + temp_f29 * sp18.y; sp30.z = temp_r29[i].z + temp_f29 * sp18.z; @@ -987,15 +817,18 @@ s32 fn_1_86A0(Vec *arg0, Vec *arg1) { temp_f27 = VECMag(&spC); if (temp_f28 == 0.0f) { var_f31 = temp_f30; - } else if (temp_f27 == 0.0f) { + } + else if (temp_f27 == 0.0f) { var_f31 = temp_f29; - } else { + } + else { temp_f26 = 1.0f - temp_f28 / (temp_f28 + temp_f27); var_f31 = temp_f30 * temp_f26 + temp_f29 * (1.0f - temp_f26); } if (var_f31 < 0.0f) { var_f31 = 0.0f; - } else if (var_f31 > 1.0f) { + } + else if (var_f31 > 1.0f) { var_f31 = 1.0f; } sp3C.x = temp_r29[i].x + var_f31 * sp18.x; diff --git a/src/REL/m404Dll/main.c b/src/REL/m404Dll/main.c index 3f4e4e85..a5d68eb8 100644 --- a/src/REL/m404Dll/main.c +++ b/src/REL/m404Dll/main.c @@ -477,7 +477,7 @@ void fn_1_7E0(omObjData *object) } espDispOff(var_r31->unk_02[var_r30]); espDrawNoSet(var_r31->unk_02[var_r30], 0); - espAttrSet(var_r31->unk_02[var_r30], 1); + espAttrSet(var_r31->unk_02[var_r30], HUSPR_ATTR_NOANIM); espPosSet(var_r31->unk_02[var_r30], lbl_1_data_84C[var_r29][0] + lbl_1_data_81C[var_r30][0], lbl_1_data_84C[var_r29][1] + lbl_1_data_81C[var_r30][1]); } @@ -1070,7 +1070,7 @@ void fn_1_44A0(omObjData *object) var_r28 = 1; CharModelMotionSpeedSet(var_r31->unk_0C, 1.0f); Hu3DMotionOverlayReset(object->model[0]); - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); if (var_r31->unk_74 >= 0) { HuAudFXStop(var_r31->unk_74); var_r31->unk_74 = -1; @@ -1230,7 +1230,7 @@ void fn_1_55F4(omObjData *object) object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M404, 0x09)); object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M404, 0x0A)); - Hu3DModelAttrSet(object->model[1], 0x40000001); + Hu3DModelAttrSet(object->model[1], HU3D_MOTATTR_LOOP); object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M404, 0x00)); Hu3DModelShadowMapSet(object->model[2]); diff --git a/src/REL/m405Dll/main.c b/src/REL/m405Dll/main.c index fe37d2d1..7e48a2eb 100755 --- a/src/REL/m405Dll/main.c +++ b/src/REL/m405Dll/main.c @@ -2,10 +2,10 @@ #include "game/chrman.h" #include "game/data.h" #include "game/esprite.h" -#include "game/gamework.h" -#include "game/gamework_data.h" #include "game/flag.h" #include "game/frand.h" +#include "game/gamework.h" +#include "game/gamework_data.h" #include "game/hsfanim.h" #include "game/hsfdraw.h" #include "game/hsfman.h" @@ -249,46 +249,26 @@ Vec lbl_1_bss_0[2]; s16 lbl_1_data_0[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; -UnkBss10Struct lbl_1_data_10[] = { - { NULL, 0, 640, 480, GX_FALSE }, - { NULL, 0, 640, 480, GX_FALSE }, - { NULL, 0, 320, 240, GX_TRUE } -}; +UnkBss10Struct lbl_1_data_10[] = { { NULL, 0, 640, 480, GX_FALSE }, { NULL, 0, 640, 480, GX_FALSE }, { NULL, 0, 320, 240, GX_TRUE } }; -Vec lbl_1_data_40[] = { - { -450.0f, 0.0f, 0.0f }, - { -450.0f, 0.0f, 0.0f }, - { -150.0f, 0.0f, 0.0f }, - { -150.0f, 0.0f, 0.0f }, - { 150.0f, 0.0f, 0.0f }, - { 150.0f, 0.0f, 0.0f }, - { 450.0f, 0.0f, 0.0f }, - { 450.0f, 0.0f, 0.0f } -}; +Vec lbl_1_data_40[] = { { -450.0f, 0.0f, 0.0f }, { -450.0f, 0.0f, 0.0f }, { -150.0f, 0.0f, 0.0f }, { -150.0f, 0.0f, 0.0f }, { 150.0f, 0.0f, 0.0f }, + { 150.0f, 0.0f, 0.0f }, { 450.0f, 0.0f, 0.0f }, { 450.0f, 0.0f, 0.0f } }; -float lbl_1_data_A0[] = { - -600.0f, 300.0f, - -600.0f, 300.0f, - -300.0f, 300.0f, - -300.0f, 300.0f, - 0.0f, 300.0f, - 0.0f, 300.0f, - 300.0f, 300.0f, - 300.0f, 300.0f -}; +float lbl_1_data_A0[] + = { -600.0f, 300.0f, -600.0f, 300.0f, -300.0f, 300.0f, -300.0f, 300.0f, 0.0f, 300.0f, 0.0f, 300.0f, 300.0f, 300.0f, 300.0f, 300.0f }; -u8 lbl_1_data_E0_unused[] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0x08, 0x08, 0xFF -}; +u8 lbl_1_data_E0_unused[] = { 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0x08, 0x08, 0xFF }; GXColor lbl_1_data_E8 = { 0xD8, 0xE2, 0xE5, 0x10 }; -void fn_1_0(void) { +void fn_1_0(void) +{ lbl_1_bss_790.unk04 = NULL; lbl_1_bss_790.unk08 = NULL; } -void fn_1_24(u16 arg0, s16 arg1) { +void fn_1_24(u16 arg0, s16 arg1) +{ UnkBss790Struct *temp_r31; UnkBss790Struct *temp_r30; UnkBss790Struct *temp_r29; @@ -306,7 +286,8 @@ void fn_1_24(u16 arg0, s16 arg1) { temp_r31->unk08 = temp_r29; } -s16 fn_1_AC(s16 arg0) { +s16 fn_1_AC(s16 arg0) +{ UnkBss790Struct *var_r31; UnkBss790Struct *temp_r29; UnkBss790Struct *temp_r30; @@ -330,12 +311,14 @@ s16 fn_1_AC(s16 arg0) { return -1; } -void fn_1_150(void) { +void fn_1_150(void) +{ lbl_1_bss_778.unk10 = NULL; lbl_1_bss_778.unk14 = NULL; } -void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec *arg5, u8 arg6) { +void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec *arg5, u8 arg6) +{ UnkBss778Struct *temp_r27; UnkBss778Struct *var_r31; UnkBss778Struct *temp_r28; @@ -365,7 +348,8 @@ void fn_1_174(s16 arg0, HsfanimStruct00 *arg1, s32 arg2, s32 arg3, s32 arg4, Vec var_r31->unk14 = temp_r27; } -void fn_1_2D8(void) { +void fn_1_2D8(void) +{ UnkBss778Struct *var_r31; UnkBss778Struct *temp_r28; UnkBss778Struct *temp_r29; @@ -400,7 +384,8 @@ void fn_1_2D8(void) { } } -void fn_1_414(void) { +void fn_1_414(void) +{ s32 i; for (i = 0; i < 32; i++) { @@ -409,7 +394,8 @@ void fn_1_414(void) { } } -s16 fn_1_46C(s32 arg0) { +s16 fn_1_46C(s32 arg0) +{ s32 i; for (i = 0; i < 32; i++) { @@ -427,7 +413,8 @@ s16 fn_1_46C(s32 arg0) { return Hu3DModelCreateFile(arg0); } -void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) { +void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) +{ s32 var_r30; espBankSet(arg0[arg1 + 1], 10); @@ -450,14 +437,16 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) { espBankSet(arg0[arg1 + 6], var_r30 % 10); } -void fn_1_798(s32 arg0) { +void fn_1_798(s32 arg0) +{ lbl_1_bss_728 = 0.0f; lbl_1_bss_738 = lbl_1_bss_73C; GWMGRecordSet(arg0, lbl_1_bss_738); fn_1_580(lbl_1_bss_6E8, 7, lbl_1_bss_73C); } -void fn_1_9EC(void) { +void fn_1_9EC(void) +{ s32 i; for (i = 0; i < 16; i++) { @@ -465,7 +454,8 @@ void fn_1_9EC(void) { } } -void fn_1_A40(void) { +void fn_1_A40(void) +{ float temp_f31; s32 i; @@ -478,7 +468,8 @@ void fn_1_A40(void) { } } -void fn_1_B4C(float arg0, s32 arg1) { +void fn_1_B4C(float arg0, s32 arg1) +{ float temp_f30; float temp_f31; s32 i; @@ -515,7 +506,8 @@ void fn_1_B4C(float arg0, s32 arg1) { } } -void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) { +void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ float temp_f31; if (1.0f < arg0) { @@ -527,13 +519,15 @@ void fn_1_11F4(float arg0, Vec *arg1, Vec *arg2, Vec *arg3) { arg3->z = arg1->z + temp_f31 * (arg2->z - arg1->z); } -void fn_1_1350(Vec *arg0, Vec *arg1, Vec *arg2) { +void fn_1_1350(Vec *arg0, Vec *arg1, Vec *arg2) +{ Hu3DCameraPosSetV(1, arg0, arg1, arg2); lbl_1_bss_768 = *arg0; lbl_1_bss_750 = *arg2; } -s32 fn_1_13DC(float arg0, Vec *arg1) { +s32 fn_1_13DC(float arg0, Vec *arg1) +{ Vec sp18; Vec spC; @@ -542,13 +536,15 @@ s32 fn_1_13DC(float arg0, Vec *arg1) { Hu3DCameraPosSetV(1, &sp18, arg1, &spC); if (1.0f <= arg0) { return 1; - } else { + } + else { lbl_1_bss_72C = 1; return 0; } } -void fn_1_1710(float arg0, Vec *arg1) { +void fn_1_1710(float arg0, Vec *arg1) +{ Vec sp18; Vec spC; @@ -558,7 +554,8 @@ void fn_1_1710(float arg0, Vec *arg1) { lbl_1_bss_72C = 1; } -void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) { +void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) +{ Mtx sp1C; Vec sp10; float temp_f30; @@ -585,7 +582,8 @@ void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) { arg2->z = 0.0f; } -void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) { +void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) +{ Mtx sp10; Hu3DModelObjMtxGet(arg0, arg1, sp10); @@ -594,7 +592,8 @@ void fn_1_1D18(s16 arg0, char *arg1, Vec *arg2) { arg2->z = sp10[2][3]; } -void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) { +void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) +{ Mtx spC; ModelData *var_r30; @@ -609,7 +608,8 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) { arg2->z = spC[2][3]; } -float fn_1_1E20(float arg0, float arg1, float arg2) { +float fn_1_1E20(float arg0, float arg1, float arg2) +{ float var_f31; float var_f30; @@ -627,11 +627,13 @@ float fn_1_1E20(float arg0, float arg1, float arg2) { return var_f30; } -void fn_1_1F24(s32 arg0) { +void fn_1_1F24(s32 arg0) +{ lbl_1_bss_730 = HuAudSeqPlay(arg0); } -void fn_1_1F58(s32 arg0) { +void fn_1_1F58(s32 arg0) +{ if (lbl_1_bss_730 >= 0) { if (arg0 < 0) { arg0 = 1000; @@ -641,7 +643,8 @@ void fn_1_1F58(s32 arg0) { lbl_1_bss_730 = -1; } -void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { +void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) +{ Vec sp18; float var_f28; s32 var_r30; @@ -650,7 +653,7 @@ void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { sp18.y = 0.0f; sp18.z = 0.0f; sp18.x = arg2 / 4.0f; - sp18.z = -(float) arg3 / 4.0f; + sp18.z = -(float)arg3 / 4.0f; var_r30 = 0; var_f28 = VECMagXZ(&sp18); if (0.5f <= var_f28) { @@ -664,14 +667,16 @@ void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) { *arg1 = fn_1_1E20(*arg1, atan2d(sp18.x, sp18.z), 0.4f); if (8.0f <= var_f28) { var_r30 = 2; - } else { + } + else { var_r30 = 1; } } - VECAdd((Vec*) &arg0, &sp18, (Vec*) &arg0); + VECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0); } -s32 fn_1_23B4(Vec *arg0) { +s32 fn_1_23B4(Vec *arg0) +{ float var_f31; float var_f30; s32 var_r31; @@ -684,7 +689,8 @@ s32 fn_1_23B4(Vec *arg0) { return var_r31 + var_r30 * 30; } -void fn_1_2480(UnkFn2480Struct *arg0, float arg1, float arg2) { +void fn_1_2480(UnkFn2480Struct *arg0, float arg1, float arg2) +{ Vec *var_r31; s32 i; @@ -698,10 +704,11 @@ void fn_1_2480(UnkFn2480Struct *arg0, float arg1, float arg2) { } } -void fn_1_2508(UnkFn2480Struct *arg0) { +void fn_1_2508(UnkFn2480Struct *arg0) +{ Vec spC; Vec *temp_r29; - float* var_r30; + float *var_r30; u16 *var_r28; u32 i; @@ -726,7 +733,8 @@ void fn_1_2508(UnkFn2480Struct *arg0) { } } -void fn_1_2714(u8 arg0, s32 arg1) { +void fn_1_2714(u8 arg0, s32 arg1) +{ GXColor sp14 = { 0x1E, 0x66, 0xA2, 0xFF }; UnkBss10Struct *temp_r31; @@ -739,7 +747,8 @@ void fn_1_2714(u8 arg0, s32 arg1) { DCFlushRange(temp_r31->unk00, temp_r31->unk04); } -void fn_1_280C(omObjData *arg0) { +void fn_1_280C(omObjData *arg0) +{ Vec sp2C; Vec sp20; Vec sp14; @@ -749,7 +758,7 @@ void fn_1_280C(omObjData *arg0) { Vec *var_r25; Vec *temp_r28; Vec *var_r30; - u16 (*var_r31)[4]; + u16(*var_r31)[4]; s32 i; var_r27 = lbl_1_bss_5AC.unk00; @@ -790,12 +799,13 @@ void fn_1_280C(omObjData *arg0) { DCStoreRangeNoSync(lbl_1_bss_5AC.unk20, 900 * sizeof(*lbl_1_bss_5AC.unk20)); } -void fn_1_2AAC(omObjData *arg0) { +void fn_1_2AAC(omObjData *arg0) +{ Vec sp28; Vec *var_r25; UnkBss10Struct *temp_r26; UnkFn2480Struct *var_r31; - u16 (*var_r28)[4]; + u16(*var_r28)[4]; s32 temp_r27; s32 i; s32 j; @@ -838,7 +848,8 @@ void fn_1_2AAC(omObjData *arg0) { (*var_r28)[1] = temp_r27 + 30; (*var_r28)[2] = temp_r27 + 1; (*var_r28)[3] = temp_r27 + 31; - } else { + } + else { temp_r27 = j + i * 30; (*var_r28)[1] = temp_r27; (*var_r28)[3] = temp_r27 + 30; @@ -906,7 +917,8 @@ void fn_1_2AAC(omObjData *arg0) { } } -void fn_1_37A4(ModelData *arg0, Mtx arg1) { +void fn_1_37A4(ModelData *arg0, Mtx arg1) +{ Mtx spEC; Mtx spBC; Mtx sp8C; @@ -964,12 +976,12 @@ void fn_1_37A4(ModelData *arg0, Mtx arg1) { GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD2, GX_TEXMAP2); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); PSMTXScale(spBC, -0.2f, -0.2f, 0.2f); - GXSetIndTexMtx(GX_ITM_0, (float (*)[3]) spBC, -2); + GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spBC, -2); GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD3, GX_TEXMAP3); GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); PSMTXScale(spBC, 0.5f, 0.5f, 0.5f); - GXSetIndTexMtx(GX_ITM_1, (float (*)[3]) spBC, 0); + GXSetIndTexMtx(GX_ITM_1, (float(*)[3])spBC, 0); GXSetTevIndWarp(GX_TEVSTAGE1, GX_INDTEXSTAGE1, GX_TRUE, GX_FALSE, GX_ITM_1); GXSetNumTevStages(2); lbl_1_data_E8.a = lbl_1_bss_A8; @@ -999,15 +1011,18 @@ void fn_1_37A4(ModelData *arg0, Mtx arg1) { GXSetTevDirect(GX_TEVSTAGE1); } -void fn_1_3F1C(ModelData *arg0, Mtx arg1) { +void fn_1_3F1C(ModelData *arg0, Mtx arg1) +{ fn_1_280C(NULL); } -void fn_1_3F40(ModelData *arg0, Mtx arg1) { +void fn_1_3F40(ModelData *arg0, Mtx arg1) +{ fn_1_2714(2, GX_FALSE); } -void fn_1_4024(ModelData *arg0, Mtx arg1) { +void fn_1_4024(ModelData *arg0, Mtx arg1) +{ Mtx sp98; Mtx sp68; Mtx sp38; @@ -1065,7 +1080,8 @@ void fn_1_4024(ModelData *arg0, Mtx arg1) { GXEnd(); } -void fn_1_4700(ModelData *arg0, Mtx arg1) { +void fn_1_4700(ModelData *arg0, Mtx arg1) +{ Mtx sp60; Mtx44 sp20; float temp_f31; @@ -1149,7 +1165,8 @@ void fn_1_4700(ModelData *arg0, Mtx arg1) { fn_1_2714(0, GX_TRUE); } -void fn_1_4F28(omObjData *arg0) { +void fn_1_4F28(omObjData *arg0) +{ Vec spC; float temp_f27; float var_f29; @@ -1200,7 +1217,8 @@ void fn_1_4F28(omObjData *arg0) { } } -void fn_1_5404(omObjData *arg0) { +void fn_1_5404(omObjData *arg0) +{ lbl_1_bss_A8 = 0; omSetTra(arg0, 0.0f, 0.0f, 0.0f); fn_1_2AAC(arg0); @@ -1217,7 +1235,8 @@ void fn_1_5404(omObjData *arg0) { arg0->func = fn_1_4F28; } -void fn_1_5530(Vec *arg0, s32 arg1) { +void fn_1_5530(Vec *arg0, s32 arg1) +{ UnkBssACStruct *temp_r31; temp_r31 = &lbl_1_bss_AC[arg1]; @@ -1225,7 +1244,8 @@ void fn_1_5530(Vec *arg0, s32 arg1) { temp_r31->unk0C = 1.0f; } -void fn_1_557C(Vec *arg0, float arg1, s32 arg2, s32 arg3) { +void fn_1_557C(Vec *arg0, float arg1, s32 arg2, s32 arg3) +{ UnkFn2480Struct *temp_r31; temp_r31 = &lbl_1_bss_5AC.unk10[arg2 + (arg3 ^ 1)]; @@ -1247,7 +1267,8 @@ void fn_1_557C(Vec *arg0, float arg1, s32 arg2, s32 arg3) { } } -float fn_1_5664(Vec *arg0) { +float fn_1_5664(Vec *arg0) +{ return lbl_1_bss_5AC.unk04[fn_1_23B4(arg0)].y; } @@ -1266,191 +1287,58 @@ GXColor lbl_1_data_16C = { 0xFF, 0xFF, 0xFF, 0xFF }; Vec lbl_1_data_170 = { 0.0f, 8000.0f, 1000.0f }; Vec lbl_1_data_17C = { 0.0f, 0.0f, 0.0f }; -s32 lbl_1_data_188[8][8] = { - { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 42), - DATA_MAKE_NUM(DATADIR_M405, 0), - DATA_MAKE_NUM(DATADIR_M405, 8), - DATA_MAKE_NUM(DATADIR_M405, 16), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 43), - DATA_MAKE_NUM(DATADIR_M405, 24), - DATA_MAKE_NUM(DATADIR_M405, 32), - DATA_MAKE_NUM(DATADIR_M405, 40) - }, - { - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 42), - DATA_MAKE_NUM(DATADIR_M405, 1), - DATA_MAKE_NUM(DATADIR_M405, 9), - DATA_MAKE_NUM(DATADIR_M405, 17), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 43), - DATA_MAKE_NUM(DATADIR_M405, 25), - DATA_MAKE_NUM(DATADIR_M405, 33), - DATA_MAKE_NUM(DATADIR_M405, 41) - }, - { - DATA_MAKE_NUM(DATADIR_PEACHMOT, 42), - DATA_MAKE_NUM(DATADIR_M405, 2), - DATA_MAKE_NUM(DATADIR_M405, 10), - DATA_MAKE_NUM(DATADIR_M405, 18), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 43), - DATA_MAKE_NUM(DATADIR_M405, 26), - DATA_MAKE_NUM(DATADIR_M405, 34), - DATA_MAKE_NUM(DATADIR_M405, 42) - }, - { - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 42), - DATA_MAKE_NUM(DATADIR_M405, 3), - DATA_MAKE_NUM(DATADIR_M405, 11), - DATA_MAKE_NUM(DATADIR_M405, 19), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 43), - DATA_MAKE_NUM(DATADIR_M405, 27), - DATA_MAKE_NUM(DATADIR_M405, 35), - DATA_MAKE_NUM(DATADIR_M405, 43) - }, - { - DATA_MAKE_NUM(DATADIR_WARIOMOT, 42), - DATA_MAKE_NUM(DATADIR_M405, 4), - DATA_MAKE_NUM(DATADIR_M405, 12), - DATA_MAKE_NUM(DATADIR_M405, 20), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 43), - DATA_MAKE_NUM(DATADIR_M405, 28), - DATA_MAKE_NUM(DATADIR_M405, 36), - DATA_MAKE_NUM(DATADIR_M405, 44) - }, - { - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 42), - DATA_MAKE_NUM(DATADIR_M405, 5), - DATA_MAKE_NUM(DATADIR_M405, 13), - DATA_MAKE_NUM(DATADIR_M405, 21), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 43), - DATA_MAKE_NUM(DATADIR_M405, 29), - DATA_MAKE_NUM(DATADIR_M405, 37), - DATA_MAKE_NUM(DATADIR_M405, 45) - }, - { - DATA_MAKE_NUM(DATADIR_DAISYMOT, 42), - DATA_MAKE_NUM(DATADIR_M405, 6), - DATA_MAKE_NUM(DATADIR_M405, 14), - DATA_MAKE_NUM(DATADIR_M405, 22), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 43), - DATA_MAKE_NUM(DATADIR_M405, 30), - DATA_MAKE_NUM(DATADIR_M405, 38), - DATA_MAKE_NUM(DATADIR_M405, 46) - }, - { - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 42), - DATA_MAKE_NUM(DATADIR_M405, 7), - DATA_MAKE_NUM(DATADIR_M405, 15), - DATA_MAKE_NUM(DATADIR_M405, 23), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 43), - DATA_MAKE_NUM(DATADIR_M405, 31), - DATA_MAKE_NUM(DATADIR_M405, 39), - DATA_MAKE_NUM(DATADIR_M405, 47) - } -}; +s32 lbl_1_data_188[8][8] = { { DATA_MAKE_NUM(DATADIR_MARIOMOT, 42), DATA_MAKE_NUM(DATADIR_M405, 0), DATA_MAKE_NUM(DATADIR_M405, 8), + DATA_MAKE_NUM(DATADIR_M405, 16), DATA_MAKE_NUM(DATADIR_MARIOMOT, 43), DATA_MAKE_NUM(DATADIR_M405, 24), + DATA_MAKE_NUM(DATADIR_M405, 32), DATA_MAKE_NUM(DATADIR_M405, 40) }, + { DATA_MAKE_NUM(DATADIR_LUIGIMOT, 42), DATA_MAKE_NUM(DATADIR_M405, 1), DATA_MAKE_NUM(DATADIR_M405, 9), DATA_MAKE_NUM(DATADIR_M405, 17), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 43), DATA_MAKE_NUM(DATADIR_M405, 25), DATA_MAKE_NUM(DATADIR_M405, 33), DATA_MAKE_NUM(DATADIR_M405, 41) }, + { DATA_MAKE_NUM(DATADIR_PEACHMOT, 42), DATA_MAKE_NUM(DATADIR_M405, 2), DATA_MAKE_NUM(DATADIR_M405, 10), DATA_MAKE_NUM(DATADIR_M405, 18), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 43), DATA_MAKE_NUM(DATADIR_M405, 26), DATA_MAKE_NUM(DATADIR_M405, 34), DATA_MAKE_NUM(DATADIR_M405, 42) }, + { DATA_MAKE_NUM(DATADIR_YOSHIMOT, 42), DATA_MAKE_NUM(DATADIR_M405, 3), DATA_MAKE_NUM(DATADIR_M405, 11), DATA_MAKE_NUM(DATADIR_M405, 19), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 43), DATA_MAKE_NUM(DATADIR_M405, 27), DATA_MAKE_NUM(DATADIR_M405, 35), DATA_MAKE_NUM(DATADIR_M405, 43) }, + { DATA_MAKE_NUM(DATADIR_WARIOMOT, 42), DATA_MAKE_NUM(DATADIR_M405, 4), DATA_MAKE_NUM(DATADIR_M405, 12), DATA_MAKE_NUM(DATADIR_M405, 20), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 43), DATA_MAKE_NUM(DATADIR_M405, 28), DATA_MAKE_NUM(DATADIR_M405, 36), DATA_MAKE_NUM(DATADIR_M405, 44) }, + { DATA_MAKE_NUM(DATADIR_DONKEYMOT, 42), DATA_MAKE_NUM(DATADIR_M405, 5), DATA_MAKE_NUM(DATADIR_M405, 13), DATA_MAKE_NUM(DATADIR_M405, 21), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 43), DATA_MAKE_NUM(DATADIR_M405, 29), DATA_MAKE_NUM(DATADIR_M405, 37), DATA_MAKE_NUM(DATADIR_M405, 45) }, + { DATA_MAKE_NUM(DATADIR_DAISYMOT, 42), DATA_MAKE_NUM(DATADIR_M405, 6), DATA_MAKE_NUM(DATADIR_M405, 14), DATA_MAKE_NUM(DATADIR_M405, 22), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 43), DATA_MAKE_NUM(DATADIR_M405, 30), DATA_MAKE_NUM(DATADIR_M405, 38), DATA_MAKE_NUM(DATADIR_M405, 46) }, + { DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 42), DATA_MAKE_NUM(DATADIR_M405, 7), DATA_MAKE_NUM(DATADIR_M405, 15), DATA_MAKE_NUM(DATADIR_M405, 23), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 43), DATA_MAKE_NUM(DATADIR_M405, 31), DATA_MAKE_NUM(DATADIR_M405, 39), DATA_MAKE_NUM(DATADIR_M405, 47) } }; -s32 lbl_1_data_288[] = { - DATA_MAKE_NUM(DATADIR_M405, 55), - DATA_MAKE_NUM(DATADIR_M405, 56) -}; +s32 lbl_1_data_288[] = { DATA_MAKE_NUM(DATADIR_M405, 55), DATA_MAKE_NUM(DATADIR_M405, 56) }; -s32 lbl_1_data_290[] = { - DATA_MAKE_NUM(DATADIR_MGCONST, 0), - DATA_MAKE_NUM(DATADIR_MGCONST, 1), - DATA_MAKE_NUM(DATADIR_MGCONST, 2), - DATA_MAKE_NUM(DATADIR_MGCONST, 3), - DATA_MAKE_NUM(DATADIR_MGCONST, 4), - DATA_MAKE_NUM(DATADIR_MGCONST, 5), - DATA_MAKE_NUM(DATADIR_MGCONST, 6), - DATA_MAKE_NUM(DATADIR_MGCONST, 7) -}; +s32 lbl_1_data_290[] = { DATA_MAKE_NUM(DATADIR_MGCONST, 0), DATA_MAKE_NUM(DATADIR_MGCONST, 1), DATA_MAKE_NUM(DATADIR_MGCONST, 2), + DATA_MAKE_NUM(DATADIR_MGCONST, 3), DATA_MAKE_NUM(DATADIR_MGCONST, 4), DATA_MAKE_NUM(DATADIR_MGCONST, 5), DATA_MAKE_NUM(DATADIR_MGCONST, 6), + DATA_MAKE_NUM(DATADIR_MGCONST, 7) }; s32 lbl_1_data_2B0[] = { -224, -128, 128, 224 }; -s32 lbl_1_data_2C0[] = { - 0, 0, - 0, 0, - -20, -18, - 19, -18, - 0, 0, - 0, 0, - 0, 0, - 0, 0, - 0, 0, - 0, 0 -}; +s32 lbl_1_data_2C0[] = { 0, 0, 0, 0, -20, -18, 19, -18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; s32 lbl_1_data_310[] = { -24, 17, 24, 17, 0, 17 }; s32 lbl_1_data_328[] = { 1, 0, 3, 2, 4 }; -u8 lbl_1_data_33C[][3] = { - { 1, 0, 1 }, - { 2, 3, 0 }, - { 1, 0, 0 } -}; +u8 lbl_1_data_33C[][3] = { { 1, 0, 1 }, { 2, 3, 0 }, { 1, 0, 0 } }; -u16 lbl_1_data_346[] = { - 0x0100, 0x0200, 0x0040, 0x0020, 0x0000 -}; +u16 lbl_1_data_346[] = { 0x0100, 0x0200, 0x0040, 0x0020, 0x0000 }; UnkBssA4InnerStruct lbl_1_data_350 = { 3570.0f, 2 }; UnkBssA4InnerStruct lbl_1_data_358 = { 3330.0f, 2 }; UnkBssA4InnerStruct lbl_1_data_360 = { 3180.0f, 2 }; UnkBssA4InnerStruct lbl_1_data_368 = { 3060.0f, 6 }; -HsfanimStruct00 lbl_1_data_370 = { - 0x0014, - { 0x00, 0x00 }, // padding? - 1.0f, - 30.0f, - 0.0f, - { 0.0f, 0.05f, 0.0f }, - 1.0f, - 0.999f, - 30.0f, - 1.03f, - 0x0004, - { - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF } - }, - { - { 0xFF, 0xFF, 0xFF, 0x00 }, - { 0xFF, 0xFF, 0xFF, 0x00 }, - { 0xFF, 0xFF, 0xFF, 0x00 }, - { 0xFF, 0xFF, 0xFF, 0x00 } - } -}; +HsfanimStruct00 lbl_1_data_370 = { 0x0014, { 0x00, 0x00 }, // padding? + 1.0f, 30.0f, 0.0f, { 0.0f, 0.05f, 0.0f }, 1.0f, 0.999f, 30.0f, 1.03f, 0x0004, + { { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 } } }; -HsfanimStruct00 lbl_1_data_3C0 = { - 0x0014, - { 0x00, 0x00 }, // padding? - 1.0f, - 10.0f, - 360.0f, - { 0.0f, 0.1f, 0.0f }, - 1.0f, - 1.0f, - 50.0f, - 1.05f, - 0x0001, - { - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF } - }, - { - { 0xFF, 0xFF, 0xFF, 0x00 }, - { 0xFF, 0xFF, 0xFF, 0x00 }, - { 0xFF, 0xFF, 0xFF, 0x00 }, - { 0xFF, 0xFF, 0xFF, 0x00 } - } -}; +HsfanimStruct00 lbl_1_data_3C0 = { 0x0014, { 0x00, 0x00 }, // padding? + 1.0f, 10.0f, 360.0f, { 0.0f, 0.1f, 0.0f }, 1.0f, 1.0f, 50.0f, 1.05f, 0x0001, + { { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 } } }; -void fn_1_57FC(void) { +void fn_1_57FC(void) +{ UnkBssA4Data *temp_r31; s32 i; @@ -1461,7 +1349,8 @@ void fn_1_57FC(void) { } } -void fn_1_58A0(omObjData *arg0) { +void fn_1_58A0(omObjData *arg0) +{ Vec sp8; s16 var_r30; @@ -1491,7 +1380,7 @@ void fn_1_58A0(omObjData *arg0) { arg0->work[0]++; Hu3DMotionSet(arg0->model[0], arg0->motion[0]); Hu3DModelAttrReset(arg0->model[0], 0x40000002); - Hu3DModelAttrSet(arg0->model[0], 0x40000001); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); } break; case 2: @@ -1499,7 +1388,8 @@ void fn_1_58A0(omObjData *arg0) { } } -void fn_1_5B28(omObjData *arg0) { +void fn_1_5B28(omObjData *arg0) +{ s32 i; arg0->work[0] = 0; @@ -1511,7 +1401,7 @@ void fn_1_5B28(omObjData *arg0) { arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_288[i]); } for (i = 0; i < 2; i++) { - Hu3DModelAttrSet(arg0->model[i], 1); + Hu3DModelAttrSet(arg0->model[i], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(arg0->model[i], 0x40000003); Hu3DModelLayerSet(arg0->model[i], 5); Hu3DModelShadowSet(arg0->model[i]); @@ -1521,17 +1411,19 @@ void fn_1_5B28(omObjData *arg0) { Hu3DModelHookSet(arg0->model[0], "g001m1_021-itemhook_r", arg0->model[1]); Hu3DMotionTimeSet(arg0->model[1], 1.0f); for (i = 0; i < 2; i++) { - Hu3DModelAttrReset(arg0->model[i], 1); + Hu3DModelAttrReset(arg0->model[i], HU3D_ATTR_DISPOFF); } arg0->func = fn_1_58A0; } -void fn_1_5D3C(UnkBssA4Data *arg0, Vec *arg1) { +void fn_1_5D3C(UnkBssA4Data *arg0, Vec *arg1) +{ fn_1_5530(arg1, arg0->unk98 + arg0->unk108 * 20); arg0->unk98 = (arg0->unk98 + 1) % 20; } -void fn_1_5DCC(UnkBssA4Data *arg0) { +void fn_1_5DCC(UnkBssA4Data *arg0) +{ Vec sp8; float var_f31; UnkFn2480Struct *temp_r31; @@ -1551,7 +1443,8 @@ void fn_1_5DCC(UnkBssA4Data *arg0) { fn_1_557C(&sp8, var_f31, (3 - arg0->unk108) * 2, arg0->unk94 & 1); } -void fn_1_6040(UnkBssA4Data *arg0, omObjData *arg1) { +void fn_1_6040(UnkBssA4Data *arg0, omObjData *arg1) +{ Vec sp44[5]; s32 var_r27; s32 var_r26; @@ -1575,7 +1468,8 @@ void fn_1_6040(UnkBssA4Data *arg0, omObjData *arg1) { Hu3DParManPosSet(arg0->unkF0[i], arg0->unkA0[i].x, arg0->unkA0[i].y, arg0->unkA0[i].z); if (--arg0->unkDC[i] <= 0) { Hu3DParManAttrSet(arg0->unkF0[i], 1); - } else { + } + else { Hu3DParManAttrReset(arg0->unkF0[i], 1); } } @@ -1592,7 +1486,8 @@ void fn_1_6040(UnkBssA4Data *arg0, omObjData *arg1) { } } -void fn_1_65BC(UnkBssA4Data *arg0) { +void fn_1_65BC(UnkBssA4Data *arg0) +{ u8 *temp_r30; s32 i; @@ -1608,19 +1503,22 @@ void fn_1_65BC(UnkBssA4Data *arg0) { espDispOn(arg0->unk0C[temp_r30[2] + 4]); } -void fn_1_6828(UnkBssA4Data *arg0) { +void fn_1_6828(UnkBssA4Data *arg0) +{ s32 temp_r30; temp_r30 = (113.0f - arg0->unk68) / 10.0f - 1.0f; if (temp_r30 > 9) { espDispOff(arg0->unk0C[3]); - } else { + } + else { espDispOn(arg0->unk0C[3]); espBankSet(arg0->unk0C[3], temp_r30); } } -u16 fn_1_68CC(UnkBssA4Data *arg0) { +u16 fn_1_68CC(UnkBssA4Data *arg0) +{ u16 var_r29; u8 *temp_r30; @@ -1643,14 +1541,17 @@ u16 fn_1_68CC(UnkBssA4Data *arg0) { } if (arg0->unk44 >= 2 && 70.0f < arg0->unk68) { arg0->unk3C = 8.0f; - } else if (0.0f != arg0->unk40) { + } + else if (0.0f != arg0->unk40) { arg0->unk3C = arg0->unk40; - } else if (arg0->unk48 > 0) { + } + else if (arg0->unk48 > 0) { if ((arg0->unk48 & 1) == 1) { arg0->unk38 += 40.0f * (arg0->unk44 + 1); arg0->unk3C = 8.0f; arg0->unk48--; - } else if (frandmod(10) == 0) { + } + else if (frandmod(10) == 0) { arg0->unk3C = 8.0f; arg0->unk48--; } @@ -1662,13 +1563,15 @@ u16 fn_1_68CC(UnkBssA4Data *arg0) { if (30.0f < arg0->unk68) { arg0->unk40 = 0.0f; } - } else if (10.0f > arg0->unk68) { + } + else if (10.0f > arg0->unk68) { arg0->unk40 = 20.0f; } return var_r29; } -void fn_1_6BFC(omObjData *arg0) { +void fn_1_6BFC(omObjData *arg0) +{ float var_f31; float var_f30; UnkBssA4Data *temp_r31; @@ -1699,7 +1602,8 @@ void fn_1_6BFC(omObjData *arg0) { } if (GWPlayerCfg[temp_r31->unk108].iscom) { temp_r31->unk78 = fn_1_68CC(temp_r31); - } else { + } + else { temp_r31->unk78 |= HuPadBtnDown[temp_r31->unk110]; } var_r27 = temp_r31->unk104; @@ -1708,7 +1612,8 @@ void fn_1_6BFC(omObjData *arg0) { temp_r28 = lbl_1_data_33C[temp_r31->unk94]; if (temp_r28[2] == 1) { var_r24 = lbl_1_data_346[temp_r28[0]] | lbl_1_data_346[temp_r28[1]]; - } else { + } + else { var_r24 = lbl_1_data_346[temp_r28[temp_r31->unk90 & 1]]; } temp_r31->unk6C += 1.0f; @@ -1718,7 +1623,8 @@ void fn_1_6BFC(omObjData *arg0) { if (5.0f < temp_r31->unk74) { temp_r31->unk74 -= 1.0f; } - } else { + } + else { temp_r31->unk74 = 7.0f; } temp_r31->unk6C = 0.0f; @@ -1743,7 +1649,8 @@ void fn_1_6BFC(omObjData *arg0) { } if (temp_r31->unk94 == 1) { var_f30 = 1.0f; - } else { + } + else { var_f30 = -1.0f; } temp_r31->unk5C += var_f31 * var_f30; @@ -1769,7 +1676,8 @@ void fn_1_6BFC(omObjData *arg0) { temp_r31->unk8C = 0; } } - } else { + } + else { temp_r31->unk78 = 0; } if (1.0f > ABS(temp_r31->unk5C - temp_r31->unk4C.z)) { @@ -1777,7 +1685,8 @@ void fn_1_6BFC(omObjData *arg0) { if (30.0f == temp_r31->unk7C) { var_r27 = 0; } - } else { + } + else { temp_r31->unk7C = 0; var_r27 = temp_r31->unk94 + 2; var_f31 = 0.1f * (temp_r31->unk5C - temp_r31->unk4C.z); @@ -1789,11 +1698,13 @@ void fn_1_6BFC(omObjData *arg0) { temp_r31->unk4C.z = 1150.0f * (0.0f > temp_r31->unk4C.z ? -1 : 1); if (lbl_1_bss_7C < 0) { lbl_1_bss_7C = temp_r31->unk108; - } else if (frandmod(100) > 50) { + } + else if (frandmod(100) > 50) { lbl_1_bss_7C = temp_r31->unk108; } } - } else { + } + else { if (1150.0f < ABS(temp_r31->unk4C.z)) { temp_r31->unk100 = 2004; temp_r31->unkFC = 10.0f; @@ -1843,7 +1754,8 @@ void fn_1_6BFC(omObjData *arg0) { if (2.0f < temp_r31->unk60) { temp_r31->unk60 = 2.0f; } - } else { + } + else { temp_r31->unk60 = 1.0f; temp_r31->unk64 = 0.0f; } @@ -1854,7 +1766,8 @@ void fn_1_6BFC(omObjData *arg0) { omSetRot(arg0, 0.0f, temp_r31->unk58, 0.0f); } -void fn_1_798C(omObjData *arg0) { +void fn_1_798C(omObjData *arg0) +{ UnkBssA4Data *temp_r31; s32 i; @@ -1874,8 +1787,9 @@ void fn_1_798C(omObjData *arg0) { espDispOn(temp_r31->unk0C[i]); } fn_1_65BC(temp_r31); - } else if (30.0f == Hu3DMotionTimeGet(arg0->model[0])) { - Hu3DModelAttrSet(arg0->model[0], 0x40000002); + } + else if (30.0f == Hu3DMotionTimeGet(arg0->model[0])) { + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_PAUSE); } break; case 2002: @@ -1884,7 +1798,7 @@ void fn_1_798C(omObjData *arg0) { temp_r31->unk4C.z = 900.0f; temp_r31->unk5C = temp_r31->unk4C.z; temp_r31->unk104 = 2; - Hu3DModelAttrSet(arg0->model[0], 0x40000001); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(arg0->model[0], 0x40000002); Hu3DMotionSet(arg0->model[0], arg0->motion[temp_r31->unk104]); Hu3DMotionCalc(arg0->model[0]); @@ -1898,7 +1812,8 @@ void fn_1_798C(omObjData *arg0) { if (lbl_1_bss_7C == temp_r31->unk108) { temp_r31->unk58 = fn_1_1E20(temp_r31->unk58, 0.0f, 0.1f); } - if (lbl_1_bss_98->work[0] >= 1008 && temp_r31->unk104 == 0 && lbl_1_bss_7C == temp_r31->unk108 && 1.0f == Hu3DMotionTimeGet(arg0->model[0])) { + if (lbl_1_bss_98->work[0] >= 1008 && temp_r31->unk104 == 0 && lbl_1_bss_7C == temp_r31->unk108 + && 1.0f == Hu3DMotionTimeGet(arg0->model[0])) { temp_r31->unk104 = 7; Hu3DMotionOverlaySet(arg0->model[0], arg0->motion[temp_r31->unk104]); Hu3DMotionOverlayTimeSet(arg0->model[0], 0.0f); @@ -1922,7 +1837,8 @@ void fn_1_798C(omObjData *arg0) { omSetRot(arg0, 0.0f, temp_r31->unk58, 0.0f); } -void fn_1_81B4(omObjData *arg0) { +void fn_1_81B4(omObjData *arg0) +{ float var_f31; UnkBssA4Data *temp_r31; s32 i; @@ -1957,9 +1873,9 @@ void fn_1_81B4(omObjData *arg0) { arg0->motion[i] = CharModelMotionCreate(lbl_1_data_0[temp_r31->unk10C], lbl_1_data_188[temp_r31->unk10C][i]); CharModelMotionSet(lbl_1_data_0[temp_r31->unk10C], arg0->motion[i]); } - Hu3DModelAttrSet(arg0->model[0], 1); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(arg0->model[0], 0x40000001); - Hu3DModelAttrSet(arg0->model[0], 0x40000002); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(arg0->model[0], 3); Hu3DMotionSet(arg0->model[0], arg0->motion[1]); Hu3DMotionTimeSet(arg0->model[0], 1.0f); @@ -1971,7 +1887,7 @@ void fn_1_81B4(omObjData *arg0) { omSetTra(arg0, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); omSetRot(arg0, 0.0f, temp_r31->unk58, 0.0f); for (i = 0; i < 1; i++) { - Hu3DModelAttrReset(arg0->model[i], 1); + Hu3DModelAttrReset(arg0->model[i], HU3D_ATTR_DISPOFF); } temp_r31->unk04 = 288.0f + lbl_1_data_2B0[temp_r31->unk108]; temp_r31->unk08 = 80; @@ -1990,7 +1906,7 @@ void fn_1_81B4(omObjData *arg0) { for (i = 0; i < 10; i++) { espDrawNoSet(temp_r31->unk0C[i], 0); espDispOff(temp_r31->unk0C[i]); - espAttrSet(temp_r31->unk0C[i], 1); + espAttrSet(temp_r31->unk0C[i], HUSPR_ATTR_NOANIM); espBankSet(temp_r31->unk0C[i], 0); espPriSet(temp_r31->unk0C[i], 128 - i); espPosSet(temp_r31->unk0C[i], temp_r31->unk04 + lbl_1_data_2C0[i * 2], temp_r31->unk08 + lbl_1_data_2C0[i * 2 + 1]); @@ -2040,7 +1956,8 @@ void fn_1_81B4(omObjData *arg0) { arg0->func = fn_1_798C; } -void fn_1_8AF0(void) { +void fn_1_8AF0(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -2088,7 +2005,8 @@ void fn_1_8AF0(void) { sp14.x += 0.02f * (-1500.0f - sp14.x); sp14.y += 0.02f * (700.0f - sp14.y); sp14.z += 0.04f * (sp8.z - sp14.z); - } else { + } + else { var_f31 = 0.05f * (288.0f - (var_f29 + var_f30) / 2); if (0.0f < var_f31) { sp14.z -= var_f31; @@ -2133,7 +2051,8 @@ void fn_1_8AF0(void) { sp14.x -= 0.2f * var_f31; sp8.x += 0.01f * var_f31; } - } else { + } + else { sp14.y += 2.0f * var_f31; sp14.x -= 0.5f * var_f31; sp8.x += 0.01f * var_f31; @@ -2143,13 +2062,15 @@ void fn_1_8AF0(void) { fn_1_1350(&sp14, &lbl_1_data_100, &sp8); } -static inline void fn_1_9288_InlineFunc(Vec *arg0, float arg1, float arg2, float arg3) { +static inline void fn_1_9288_InlineFunc(Vec *arg0, float arg1, float arg2, float arg3) +{ arg0->x = arg1; arg0->y = arg2; arg0->z = arg3; } -void fn_1_9288(omObjData *arg0) { +void fn_1_9288(omObjData *arg0) +{ Vec sp18; Vec spC; float var_f27; @@ -2184,7 +2105,8 @@ void fn_1_9288(omObjData *arg0) { if (90.0f >= lbl_1_bss_80) { var_r30 = 1; var_f27 = lbl_1_bss_80; - } else { + } + else { var_r30 = 0; var_f27 = lbl_1_bss_80 - 90.0f; } @@ -2231,7 +2153,8 @@ void fn_1_9288(omObjData *arg0) { lbl_1_bss_73C++; if (lbl_1_bss_734 >= 0) { MGSeqParamSet(lbl_1_bss_734, 1, (18059 - lbl_1_bss_73C) / 60); - } else if (lbl_1_bss_73C > 16200) { + } + else if (lbl_1_bss_73C > 16200) { lbl_1_bss_734 = MGSeqTimerCreate((18059 - lbl_1_bss_73C) / 60); MGSeqPosSet(lbl_1_bss_734, 288.0f, 400.0f); } @@ -2258,7 +2181,8 @@ void fn_1_9288(omObjData *arg0) { if (lbl_1_bss_78 == 2) { fn_1_1350(&lbl_1_data_13C, &lbl_1_data_100, &lbl_1_data_148); } - } else { + } + else { fn_1_8AF0(); } lbl_1_bss_74 = lbl_1_bss_78; @@ -2274,7 +2198,8 @@ void fn_1_9288(omObjData *arg0) { if (lbl_1_bss_7C >= 0) { lbl_1_bss_60 = HuAudFXPlay(0x538); } - } else { + } + else { lbl_1_bss_80 += 1.0f; if (lbl_1_bss_7C >= 0) { fn_1_11F4(lbl_1_bss_80 / 60.0f, &lbl_1_bss_48[0], &lbl_1_bss_30[0], &sp18); @@ -2311,11 +2236,13 @@ void fn_1_9288(omObjData *arg0) { if (lbl_1_bss_7C < 0) { lbl_1_bss_736 = MGSeqDrawCreate(); HuAudSStreamPlay(4); - } else { + } + else { lbl_1_bss_736 = MGSeqWinCreate(GWPlayerCfg[lbl_1_bss_7C].character, -1, -1, -1); HuAudSStreamPlay(1); } - } else { + } + else { lbl_1_bss_80 += 1.0f; 0 <= lbl_1_bss_7C; if (210.0f < lbl_1_bss_80 && MGSeqStatGet(lbl_1_bss_736) == 0) { @@ -2333,7 +2260,8 @@ void fn_1_9288(omObjData *arg0) { fn_1_A40(); } -void fn_1_AD10(omObjData *arg0) { +void fn_1_AD10(omObjData *arg0) +{ s32 i; arg0->work[0] = 1000; @@ -2343,41 +2271,42 @@ void fn_1_AD10(omObjData *arg0) { omSetTra(arg0, 0.0f, 0.0f, 0.0f); arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M405, 48)); Hu3DModelAttrSet(arg0->model[0], 0x4001); - Hu3DModelAttrSet(arg0->model[0], 0x40000002); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(arg0->model[0], 5); arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M405, 49)); Hu3DModelAttrSet(arg0->model[1], 0x4001); - Hu3DModelAttrSet(arg0->model[1], 0x40000002); + Hu3DModelAttrSet(arg0->model[1], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(arg0->model[1], 6); Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 0.0f); arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M405, 50)); - Hu3DModelAttrSet(arg0->model[2], 1); - Hu3DModelAttrSet(arg0->model[2], 0x40000002); + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[2], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(arg0->model[2], 1); Hu3DModelPosSet(arg0->model[2], 0.0f, 0.0f, 0.0f); Hu3DModelShadowMapSet(arg0->model[2]); arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M405, 51)); - Hu3DModelAttrSet(arg0->model[3], 1); - Hu3DModelAttrSet(arg0->model[3], 0x40000002); + Hu3DModelAttrSet(arg0->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[3], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(arg0->model[3], 1); Hu3DModelPosSet(arg0->model[3], 0.0f, -4.0f, 0.0f); Hu3DModelTPLvlSet(arg0->model[3], 0.4f); arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M405, 52)); Hu3DModelAttrSet(arg0->model[4], 0x4001); - Hu3DModelAttrSet(arg0->model[4], 0x40000002); + Hu3DModelAttrSet(arg0->model[4], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(arg0->model[4], 6); Hu3DModelPosSet(arg0->model[4], 0.0f, 0.0f, 0.0f); fn_1_B4C(80.0f, DATA_MAKE_NUM(DATADIR_M405, 72)); fn_1_9EC(); for (i = 0; i < 5; i++) { - Hu3DModelAttrReset(arg0->model[i], 1); + Hu3DModelAttrReset(arg0->model[i], HU3D_ATTR_DISPOFF); } lbl_1_bss_68 = HuAudFXPlay(0x537); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); arg0->func = fn_1_9288; } -void ObjectSetup(void) { +void ObjectSetup(void) +{ Vec sp8; s32 temp_r29; s32 i; @@ -2430,7 +2359,8 @@ void ObjectSetup(void) { lbl_1_bss_98 = omAddObjEx(lbl_1_bss_774, 104, 5, 0, -1, fn_1_AD10); } -void fn_1_B5C8(omObjData *arg0) { +void fn_1_B5C8(omObjData *arg0) +{ s32 i; if (lbl_1_bss_68 >= 0) { diff --git a/src/REL/m406Dll/map.c b/src/REL/m406Dll/map.c index ef320c6a..7abe5b76 100644 --- a/src/REL/m406Dll/map.c +++ b/src/REL/m406Dll/map.c @@ -478,7 +478,7 @@ omObjData *fn_1_2308(Process *arg0) for (var_r31 = 0; var_r31 < 7; var_r31++) { var_r30 = lbl_1_bss_CC->model[var_r31] = Hu3DModelCreateFile(lbl_1_data_7A8[var_r31]); Hu3DModelShadowMapSet(var_r30); - Hu3DModelAttrSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); if (var_r31 < 6) { fn_1_CDD8(var_r30, 1.25f, 1.05f, 1.0f, 1.0f); } @@ -491,19 +491,19 @@ omObjData *fn_1_2308(Process *arg0) lbl_1_bss_CC->model[var_r31 + 7] = var_r30; } if (var_r30 != -1) { - Hu3DModelAttrSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); Hu3DModelLayerSet(var_r30, 5); } } var_r30 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 54)); lbl_1_bss_CC->model[14] = var_r30; Hu3DModelPosSet(var_r30, 0.0f, 10.0f, 0.0f); - Hu3DModelAttrSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); Hu3DModelLayerSet(var_r30, 5); lbl_1_bss_C8 = omAddObjEx(arg0, 0x7D, 6, 0, 2, NULL); for (var_r31 = 0; var_r31 < 6; var_r31++) { lbl_1_bss_C8->model[var_r31] = Hu3DModelCreateFile(lbl_1_data_7E0[var_r31]); - Hu3DModelAttrSet(lbl_1_bss_C8->model[var_r31], 1); + Hu3DModelAttrSet(lbl_1_bss_C8->model[var_r31], HU3D_ATTR_DISPOFF); } lbl_1_bss_C4 = omAddObjEx(arg0, 0x7D, 3, 0, 3, NULL); lbl_1_bss_C4->trans.x = lbl_1_data_780->x; @@ -588,20 +588,20 @@ void fn_1_2C24(omObjData *object) var_f31 = -(5000.0f + (10000.0f * var_r30)); if (fabs(Center.z - var_f31) > 10000.0 || !lbl_1_bss_BC) { if (object->model[var_r30] != -1) { - Hu3DModelAttrSet(object->model[var_r30], 1); + Hu3DModelAttrSet(object->model[var_r30], HU3D_ATTR_DISPOFF); } var_r29 = var_r30 + 7; if (object->model[var_r29] != -1) { - Hu3DModelAttrSet(object->model[var_r29], 1); + Hu3DModelAttrSet(object->model[var_r29], HU3D_ATTR_DISPOFF); } } else { if (object->model[var_r30] != -1) { - Hu3DModelAttrReset(object->model[var_r30], 1); + Hu3DModelAttrReset(object->model[var_r30], HU3D_ATTR_DISPOFF); } var_r29 = var_r30 + 7; if (object->model[var_r29] != -1) { - Hu3DModelAttrReset(object->model[var_r29], 1); + Hu3DModelAttrReset(object->model[var_r29], HU3D_ATTR_DISPOFF); } } } @@ -609,41 +609,41 @@ void fn_1_2C24(omObjData *object) if (object->model[var_r29] != -1) { var_f31 = 25000.0f; if (fabs(Center.z - var_f31) < 15000.0) { - Hu3DModelAttrSet(object->model[var_r29], 1); + Hu3DModelAttrSet(object->model[var_r29], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrReset(object->model[var_r29], 1); + Hu3DModelAttrReset(object->model[var_r29], HU3D_ATTR_DISPOFF); } } var_r29 = 6; if (object->model[var_r29] != -1) { - Hu3DModelAttrSet(object->model[var_r29], 1); + Hu3DModelAttrSet(object->model[var_r29], HU3D_ATTR_DISPOFF); } for (var_r30 = 0; var_r30 < 3; var_r30++) { if (fabs(Center.z - lbl_1_data_780[var_r30].z) > 10000.0) { - Hu3DModelAttrSet(lbl_1_bss_C4->model[var_r30], 1); + Hu3DModelAttrSet(lbl_1_bss_C4->model[var_r30], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrReset(lbl_1_bss_C4->model[var_r30], 1); + Hu3DModelAttrReset(lbl_1_bss_C4->model[var_r30], HU3D_ATTR_DISPOFF); } } return; } for (var_r30 = 0; var_r30 < 6; var_r30++) { if (object->model[var_r30] != -1) { - Hu3DModelAttrSet(object->model[var_r30], 1); + Hu3DModelAttrSet(object->model[var_r30], HU3D_ATTR_DISPOFF); } var_r29 = var_r30 + 7; if (object->model[var_r29] != -1) { - Hu3DModelAttrSet(object->model[var_r29], 1); + Hu3DModelAttrSet(object->model[var_r29], HU3D_ATTR_DISPOFF); } } var_r29 = 6; if (object->model[var_r29] != -1) { - Hu3DModelAttrReset(object->model[var_r29], 1); + Hu3DModelAttrReset(object->model[var_r29], HU3D_ATTR_DISPOFF); } for (var_r30 = 0; var_r30 < 3; var_r30++) { - Hu3DModelAttrSet(lbl_1_bss_C4->model[var_r30], 1); + Hu3DModelAttrSet(lbl_1_bss_C4->model[var_r30], HU3D_ATTR_DISPOFF); } } @@ -1340,7 +1340,7 @@ void fn_1_4964(ModelData *arg0) } } else { - Hu3DModelAttrSet(var_r31->unk_00, 1); + Hu3DModelAttrSet(var_r31->unk_00, HU3D_ATTR_DISPOFF); var_r31->unk_08 = -1; var_r31->unk_0C--; } @@ -1351,10 +1351,10 @@ void fn_1_4964(ModelData *arg0) fn_1_D488(sp38, &lbl_1_data_F0[var_r24], &lbl_1_data_F0[var_r24 + 1], &spB8); fn_1_D488(sp38, &lbl_1_data_438[var_r24], &lbl_1_data_438[var_r24 + 1], &spAC); fn_1_D488(var_r31->unk_10, &spB8, &spAC, &var_r31->unk_3C); - Hu3DModelAttrReset(var_r31->unk_00, 1); + Hu3DModelAttrReset(var_r31->unk_00, HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrSet(var_r31->unk_00, 1); + Hu3DModelAttrSet(var_r31->unk_00, HU3D_ATTR_DISPOFF); var_r31->unk_08 = -1; continue; } @@ -1506,7 +1506,7 @@ void fn_1_67CC(ModelData *arg0) var_r31 = var_r29->unk_30; for (var_r30 = 0; var_r30 < 12; var_r30++, var_r31++) { if (var_r31->unk_04 != 3 || var_r31->unk_0C > 0) { - Hu3DModelAttrSet(var_r31->unk_00, 1); + Hu3DModelAttrSet(var_r31->unk_00, HU3D_ATTR_DISPOFF); var_r31->unk_0C--; } else { @@ -1517,9 +1517,9 @@ void fn_1_67CC(ModelData *arg0) var_r31->unk_30.y -= 0.49f; Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_3C.x, var_r31->unk_3C.y, var_r31->unk_3C.z); Hu3DModelRotSet(var_r31->unk_00, var_r31->unk_20, var_r31->unk_24, 0.0f); - Hu3DModelAttrReset(var_r31->unk_00, 1); + Hu3DModelAttrReset(var_r31->unk_00, HU3D_ATTR_DISPOFF); if (++var_r31->unk_08 >= 600.0f) { - Hu3DModelAttrSet(var_r31->unk_00, 1); + Hu3DModelAttrSet(var_r31->unk_00, HU3D_ATTR_DISPOFF); var_r31->unk_04 = 0; var_r31->unk_08 = 0; } @@ -1646,10 +1646,10 @@ void fn_1_6FFC(void) var_r30 = lbl_1_bss_B0; if (var_r30->unk_04 <= 0) { - Hu3DModelAttrSet(var_r30->unk_00, 1); + Hu3DModelAttrSet(var_r30->unk_00, HU3D_ATTR_DISPOFF); return; } - Hu3DModelAttrReset(var_r30->unk_00, 1); + Hu3DModelAttrReset(var_r30->unk_00, HU3D_ATTR_DISPOFF); var_r27 = &Hu3DData[var_r30->unk_00]; var_r29 = var_r27->unk_120; var_r31 = var_r29->unk_3C; @@ -1680,7 +1680,7 @@ void fn_1_717C(void) UnkM406Struct10 *var_r31; var_r31 = lbl_1_bss_B0; - Hu3DModelAttrSet(var_r31->unk_00, 1); + Hu3DModelAttrSet(var_r31->unk_00, HU3D_ATTR_DISPOFF); HuSprAnimKill(var_r31->unk_08); } @@ -1805,10 +1805,10 @@ void fn_1_77F0(void) var_r30 = lbl_1_bss_AC; if (var_r30->unk_04 <= 0) { - Hu3DModelAttrSet(var_r30->unk_00, 1); + Hu3DModelAttrSet(var_r30->unk_00, HU3D_ATTR_DISPOFF); return; } - Hu3DModelAttrReset(var_r30->unk_00, 1); + Hu3DModelAttrReset(var_r30->unk_00, HU3D_ATTR_DISPOFF); var_r27 = &Hu3DData[var_r30->unk_00]; var_r29 = var_r27->unk_120; var_r31 = var_r29->unk_3C; @@ -1846,7 +1846,7 @@ void fn_1_79B0(void) UnkM406Struct10 *var_r31; var_r31 = lbl_1_bss_AC; - Hu3DModelAttrSet(var_r31->unk_00, 1); + Hu3DModelAttrSet(var_r31->unk_00, HU3D_ATTR_DISPOFF); HuSprAnimKill(var_r31->unk_08); } @@ -1939,10 +1939,10 @@ void fn_1_7C4C(void) var_r30 = lbl_1_bss_A8; if (var_r30->unk_04 <= 0) { - Hu3DModelAttrSet(var_r30->unk_00, 1); + Hu3DModelAttrSet(var_r30->unk_00, HU3D_ATTR_DISPOFF); return; } - Hu3DModelAttrReset(var_r30->unk_00, 1); + Hu3DModelAttrReset(var_r30->unk_00, HU3D_ATTR_DISPOFF); var_r27 = &Hu3DData[var_r30->unk_00]; var_r29 = var_r27->unk_120; var_r31 = var_r29->unk_3C; @@ -2031,10 +2031,10 @@ void fn_1_7F80(void) var_r30 = lbl_1_bss_A4; if (var_r30->unk_04 <= 0) { - Hu3DModelAttrSet(var_r30->unk_00, 1); + Hu3DModelAttrSet(var_r30->unk_00, HU3D_ATTR_DISPOFF); return; } - Hu3DModelAttrReset(var_r30->unk_00, 1); + Hu3DModelAttrReset(var_r30->unk_00, HU3D_ATTR_DISPOFF); var_r27 = &Hu3DData[var_r30->unk_00]; var_r29 = var_r27->unk_120; var_r31 = var_r29->unk_3C; @@ -2235,7 +2235,7 @@ void fn_1_8F98(void) var_r31->unk_04 = Hu3DModelLink(lbl_1_bss_A0->unk_04); } Hu3DModelLayerSet(var_r31->unk_04, 3); - Hu3DModelAttrSet(var_r31->unk_04, 1); + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); } for (var_r30 = 0, var_r31 = &lbl_1_bss_A0[64]; var_r30 < 64; var_r30++, var_r31++) { @@ -2254,7 +2254,7 @@ void fn_1_8F98(void) var_r31->unk_04 = Hu3DModelLink(lbl_1_bss_A0[64].unk_04); } Hu3DModelLayerSet(var_r31->unk_04, 3); - Hu3DModelAttrSet(var_r31->unk_04, 1); + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); } } @@ -2285,7 +2285,7 @@ void fn_1_91E0(void) var_r30->unk_F0[2][3] = var_r31->unk_1C[2][3]; Hu3DModelTPLvlSet(var_r31->unk_04, 1.0f - var_f30); if ((var_r31->unk_0C += var_r31->unk_10) >= var_r31->unk_14) { - Hu3DModelAttrSet(var_r31->unk_04, 1); + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); var_r31->unk_00 = 0; var_r31->unk_0C = 0.0f; } @@ -2306,7 +2306,7 @@ void fn_1_91E0(void) var_r30->unk_F0[2][3] = var_r31->unk_1C[2][3]; Hu3DModelTPLvlSet(var_r31->unk_04, 1.0f - var_f30); if ((var_r31->unk_0C += var_r31->unk_10) >= var_r31->unk_14) { - Hu3DModelAttrSet(var_r31->unk_04, 1); + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); var_r31->unk_00 = 0; var_r31->unk_0C = 0.0f; } @@ -2431,7 +2431,7 @@ s32 fn_1_94C0(Mtx arg0, s32 arg1, s32 arg2) Hu3DModelPosSet(var_r31->unk_04, 0.0f, 0.0f, 0.0f); Hu3DModelRotSet(var_r31->unk_04, 0.0f, 0.0f, 0.0f); Hu3DModelScaleSet(var_r31->unk_04, 1.0f, 1.0f, 1.0f); - Hu3DModelAttrReset(var_r31->unk_04, 1); + Hu3DModelAttrReset(var_r31->unk_04, HU3D_ATTR_DISPOFF); (void)var_r31; return var_r28; } @@ -2614,7 +2614,7 @@ void fn_1_ADB4(ModelData *arg0, float (*arg1)[4]) var_r31 = &Hu3DCamera[0]; var_r30 = lbl_1_bss_9C; if (var_r30->unk_28 <= 0.0f) { - Hu3DModelAttrSet(var_r30->unk_20, 1); + Hu3DModelAttrSet(var_r30->unk_20, HU3D_ATTR_DISPOFF); return; } GXSetScissor(var_r31->scissor_x, var_r31->scissor_y, var_r31->scissor_w, var_r31->scissor_h); @@ -2653,16 +2653,16 @@ void fn_1_B104(float arg8) var_r31 = lbl_1_bss_9C; var_r31->unk_24 = arg8; if (var_r31->unk_24 <= 0.0f) { - Hu3DModelAttrSet(var_r31->unk_10, 1); - Hu3DModelAttrSet(var_r31->unk_14, 1); - Hu3DModelAttrSet(var_r31->unk_18, 1); - Hu3DModelAttrSet(var_r31->unk_1C, 1); + Hu3DModelAttrSet(var_r31->unk_10, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk_14, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk_18, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk_1C, HU3D_ATTR_DISPOFF); return; } - Hu3DModelAttrReset(var_r31->unk_10, 1); - Hu3DModelAttrReset(var_r31->unk_14, 1); - Hu3DModelAttrReset(var_r31->unk_18, 1); - Hu3DModelAttrReset(var_r31->unk_1C, 1); + Hu3DModelAttrReset(var_r31->unk_10, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->unk_14, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->unk_18, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->unk_1C, HU3D_ATTR_DISPOFF); } void fn_1_B1E0(float arg8) @@ -2672,10 +2672,10 @@ void fn_1_B1E0(float arg8) var_r31 = lbl_1_bss_9C; var_r31->unk_28 = arg8; if (var_r31->unk_28 <= 0.0f) { - Hu3DModelAttrSet(var_r31->unk_20, 1); + Hu3DModelAttrSet(var_r31->unk_20, HU3D_ATTR_DISPOFF); return; } - Hu3DModelAttrReset(var_r31->unk_20, 1); + Hu3DModelAttrReset(var_r31->unk_20, HU3D_ATTR_DISPOFF); } void fn_1_B25C(void) diff --git a/src/REL/m406Dll/player.c b/src/REL/m406Dll/player.c index abe01868..b484169b 100644 --- a/src/REL/m406Dll/player.c +++ b/src/REL/m406Dll/player.c @@ -380,15 +380,15 @@ void fn_1_D90C(omObjData *object) CharModelLayerSetAll(Hu3DData[object->model[0]].layer + 1); object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 32)); Hu3DModelHookSet(object->model[0], "test11_tex_we-itemhook-body", object->model[5]); - Hu3DModelAttrSet(object->model[5], 1); + Hu3DModelAttrSet(object->model[5], HU3D_ATTR_DISPOFF); fn_1_13A88(object->model[0], "test11_tex_we-itemhook-body", sp8); var_r31->unk_68 = sp8[0][3]; var_r31->unk_6C = sp8[1][3]; var_r31->unk_70 = sp8[2][3]; object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 33)); - Hu3DModelAttrSet(object->model[6], 1); + Hu3DModelAttrSet(object->model[6], HU3D_ATTR_DISPOFF); object->model[7] = Hu3DModelCreateFile(lbl_1_data_1120[var_r31->unk_0C]); - Hu3DModelAttrSet(object->model[7], 1); + Hu3DModelAttrSet(object->model[7], HU3D_ATTR_DISPOFF); for (var_r29 = 0; var_r29 < 10U; var_r29++) { object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_0C, lbl_1_data_1078[var_r29]); } @@ -542,7 +542,7 @@ void fn_1_E214(omObjData *object) if ((var_r26->attr & 1) == 0) { Hu3D3Dto2D(&object->trans, 1, &sp28); if (sp28.x < 0.0 || sp28.x >= 576.0f || sp28.y < 0.0 || sp28.y >= 480.0f) { - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); } } return; @@ -653,7 +653,7 @@ void fn_1_E214(omObjData *object) } break; case 2: - Hu3DModelAttrReset(object->model[5], 1); + Hu3DModelAttrReset(object->model[5], HU3D_ATTR_DISPOFF); if (var_r31->unk_5A < 20) { var_r31->unk_54 = var_r31->unk_5A / 20.0f; } @@ -703,11 +703,11 @@ void fn_1_E214(omObjData *object) var_r31->unk_00_field3 = 0; var_r31->unk_12 = 0; var_r31->unk_5C = 0; - Hu3DModelAttrSet(object->model[5], 1); + Hu3DModelAttrSet(object->model[5], HU3D_ATTR_DISPOFF); Hu3DData[object->model[6]].unk_64 = 0.0f; Hu3DModelPosSet(object->model[6], object->trans.x + var_r31->unk_68, object->trans.y + var_r31->unk_6C, object->trans.z + var_r31->unk_70); - Hu3DModelAttrReset(object->model[6], 1); + Hu3DModelAttrReset(object->model[6], HU3D_ATTR_DISPOFF); PSMTXIdentity(var_r26->unk_F0); fn_1_117BC(var_r31->unk_14.x, 25.0f, &var_r31->unk_44, &var_r31->unk_2C); } @@ -719,7 +719,7 @@ void fn_1_E214(omObjData *object) break; } if (Hu3DMotionEndCheck(object->model[6])) { - Hu3DModelAttrSet(object->model[6], 1); + Hu3DModelAttrSet(object->model[6], HU3D_ATTR_DISPOFF); } fn_1_DD7C(object, var_r27, var_f31, var_r25); fn_1_F194(object); @@ -950,7 +950,7 @@ void fn_1_FA50(ModelData *model, Mtx mtx) else { var_r30->func = fn_1_11058; } - Hu3DModelAttrSet(*var_r30->model, 1); + Hu3DModelAttrSet(*var_r30->model, HU3D_ATTR_DISPOFF); for (var_r26 = 0; var_r26 < 2; var_r26++) { if (var_r31->unk_7C[var_r26] >= 0) { HuAudFXStop(var_r31->unk_7C[var_r26]); @@ -1146,7 +1146,7 @@ void fn_1_1065C(omObjData *object) var_r31->unk_2C.z = -20.0f; Hu3DModelShadowReset(object->model[0]); fn_1_6BB4(&object->trans); - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); object->func = fn_1_10744; } @@ -1271,7 +1271,7 @@ void fn_1_11058(omObjData *object) var_r30->unk_64 = 90.0f + (frand() & 0x1F); } for (var_r28 = 0; var_r28 < 8; var_r28++) { - Hu3DModelAttrSet(object->model[var_r28], 1); + Hu3DModelAttrSet(object->model[var_r28], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(object->model[var_r28], 0.0f, 0.0f, 0.0f); Hu3DModelRotSet(object->model[var_r28], 0.0f, 0.0f, 0.0f); Hu3DModelScaleSet(object->model[var_r28], 1.0f, 1.0f, 1.0f); @@ -1313,8 +1313,8 @@ void fn_1_114A0(omObjData *object) case 1: if (var_r31->unk_64 != 0) { if (--var_r31->unk_64 == 0) { - Hu3DModelAttrReset(object->model[5], 1); - Hu3DModelAttrReset(object->model[7], 1); + Hu3DModelAttrReset(object->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[7], HU3D_ATTR_DISPOFF); } else { return; diff --git a/src/REL/m407dll/effect.c b/src/REL/m407dll/effect.c index cb0dd7fc..ebe9e273 100644 --- a/src/REL/m407dll/effect.c +++ b/src/REL/m407dll/effect.c @@ -1,48 +1,44 @@ -#include "game/process.h" -#include "game/object.h" -#include "game/hsfmotion.h" #include "game/hsfdraw.h" +#include "game/hsfmotion.h" +#include "game/object.h" +#include "game/process.h" #include "REL/m407dll.h" typedef struct unkDominationData4 { -/* 0x00 */ u32 unk_00; -/* 0x04 */ u32 unk_04; -/* 0x08 */ s32 unk_08; -/* 0x0C */ s32 unk_0C; -/* 0x10 */ f32 unk_10; -/* 0x14 */ f32 unk_14; -/* 0x18 */ f32 unk_18; -/* 0x1C */ s32 unk_1C; -} unkDominationData4; //size of 0x20 + /* 0x00 */ u32 unk_00; + /* 0x04 */ u32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ f32 unk_10; + /* 0x14 */ f32 unk_14; + /* 0x18 */ f32 unk_18; + /* 0x1C */ s32 unk_1C; +} unkDominationData4; // size of 0x20 -//function signatures -void fn_1_4858(omObjData* arg0); -void fn_1_485C(omObjData* arg0); -void fn_1_46EC(omObjData* arg0); -void fn_1_465C(omObjData* arg0, s32 arg1); -void fn_1_4808(omObjData* arg0); +// function signatures +void fn_1_4858(omObjData *arg0); +void fn_1_485C(omObjData *arg0); +void fn_1_46EC(omObjData *arg0); +void fn_1_465C(omObjData *arg0, s32 arg1); +void fn_1_4808(omObjData *arg0); -//bss -Process* lbl_1_bss_3970; -omObjData* lbl_1_bss_37E0[100]; +// bss +Process *lbl_1_bss_3970; +omObjData *lbl_1_bss_37E0[100]; -//data -s32 lbl_1_data_288[] = { - DATA_MAKE_NUM(DATADIR_M407, 0x15), - DATA_MAKE_NUM(DATADIR_M407, 0x16), - DATA_MAKE_NUM(DATADIR_M407, 0x17), - DATA_MAKE_NUM(DATADIR_M407, 0x18), - DATA_MAKE_NUM(DATADIR_M407, 0x19) -}; +// data +s32 lbl_1_data_288[] = { DATA_MAKE_NUM(DATADIR_M407, 0x15), DATA_MAKE_NUM(DATADIR_M407, 0x16), DATA_MAKE_NUM(DATADIR_M407, 0x17), + DATA_MAKE_NUM(DATADIR_M407, 0x18), DATA_MAKE_NUM(DATADIR_M407, 0x19) }; ObjFuncs lbl_1_data_29C[] = { fn_1_4858, fn_1_485C, }; -void fn_1_41CC(Process* arg0) { - Process* sp8; +void fn_1_41CC(Process *arg0) +{ + Process *sp8; u32 i; u32 temp_r30; @@ -60,15 +56,15 @@ void fn_1_41CC(Process* arg0) { for (i = 0; i < 4; i++) { lbl_1_bss_37E0[temp_r30 + i] = omAddObjEx(lbl_1_bss_3970, 0x800, 1, 0, 5, fn_1_46EC); lbl_1_bss_37E0[temp_r30 + i]->work[0] = temp_r30 + i; - lbl_1_bss_37E0[temp_r30 + i]->work[1] = 1; + lbl_1_bss_37E0[temp_r30 + i]->work[1] = 1; } - + temp_r30 += i; for (i = 0; i < 30; i++) { lbl_1_bss_37E0[temp_r30 + i] = omAddObjEx(lbl_1_bss_3970, 0x800, 1, 0, 5, fn_1_46EC); lbl_1_bss_37E0[temp_r30 + i]->work[0] = temp_r30 + i; - lbl_1_bss_37E0[temp_r30 + i]->work[1] = 2; + lbl_1_bss_37E0[temp_r30 + i]->work[1] = 2; } temp_r30 += i; @@ -76,19 +72,20 @@ void fn_1_41CC(Process* arg0) { for (i = 0; i < 4; i++) { lbl_1_bss_37E0[temp_r30 + i] = omAddObjEx(lbl_1_bss_3970, 0x800, 1, 0, 5, fn_1_46EC); lbl_1_bss_37E0[temp_r30 + i]->work[0] = temp_r30 + i; - lbl_1_bss_37E0[temp_r30 + i]->work[1] = 3; + lbl_1_bss_37E0[temp_r30 + i]->work[1] = 3; } - + temp_r30 += i; for (i = 0; i < 22; i++) { lbl_1_bss_37E0[temp_r30 + i] = omAddObjEx(lbl_1_bss_3970, 0x800, 1, 0, 5, fn_1_46EC); lbl_1_bss_37E0[temp_r30 + i]->work[0] = temp_r30 + i; - lbl_1_bss_37E0[temp_r30 + i]->work[1] = 4; + lbl_1_bss_37E0[temp_r30 + i]->work[1] = 4; } } -void fn_1_44F4(void) { +void fn_1_44F4(void) +{ u32 i; for (i = 0; i < ARRAY_COUNT(lbl_1_bss_37E0); i++) { @@ -96,9 +93,10 @@ void fn_1_44F4(void) { } } -void fn_1_4544(s32 arg0, s32 arg1, f32 arg2, f32 arg3, f32 arg4) { - omObjData* temp_r29; - unkDominationData4* temp_r31; +void fn_1_4544(s32 arg0, s32 arg1, f32 arg2, f32 arg3, f32 arg4) +{ + omObjData *temp_r29; + unkDominationData4 *temp_r31; u32 i; if ((arg4 < (Center.z - 2000.0f)) || (arg4 > (2000.0f + Center.z))) { @@ -119,24 +117,27 @@ void fn_1_4544(s32 arg0, s32 arg1, f32 arg2, f32 arg3, f32 arg4) { } } -void fn_1_465C(omObjData* arg0, s32 arg1) { - unkDominationData4* temp_r31; +void fn_1_465C(omObjData *arg0, s32 arg1) +{ + unkDominationData4 *temp_r31; temp_r31 = arg0->data; temp_r31->unk_0C = arg1; temp_r31->unk_1C = 0; } -void fn_1_4680(omObjData* arg0) { - unkDominationData4* temp_r31; +void fn_1_4680(omObjData *arg0) +{ + unkDominationData4 *temp_r31; temp_r31 = arg0->data; lbl_1_data_29C[temp_r31->unk_0C](arg0); omSetTra(arg0, temp_r31->unk_10, temp_r31->unk_14, temp_r31->unk_18); } -void fn_1_46EC(omObjData* arg0) { - unkDominationData4* temp_r30; +void fn_1_46EC(omObjData *arg0) +{ + unkDominationData4 *temp_r30; arg0->func = fn_1_4680; arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkDominationData4), MEMORY_DEFAULT_NUM); @@ -145,19 +146,20 @@ void fn_1_46EC(omObjData* arg0) { temp_r30->unk_08 = arg0->work[1]; temp_r30->unk_1C = 0; arg0->model[0] = Hu3DModelCreateFile(lbl_1_data_288[temp_r30->unk_08]); - Hu3DModelAttrSet(arg0->model[0], 0x4000); - Hu3DModelAttrSet(arg0->model[0], 0x40000002); - Hu3DModelAttrSet(arg0->model[0], 1); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_NOCULL); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); temp_r30->unk_10 = 0.0f; temp_r30->unk_14 = 0.0f; temp_r30->unk_18 = 0.0f; fn_1_465C(arg0, 0); } -void fn_1_4808(omObjData* arg0) { - unkDominationData4* sp8; +void fn_1_4808(omObjData *arg0) +{ + unkDominationData4 *sp8; sp8 = arg0->data; - + Hu3DModelKill(arg0->model[0]); if (arg0->data) { @@ -165,31 +167,31 @@ void fn_1_4808(omObjData* arg0) { } } -void fn_1_4858(omObjData* arg0) { +void fn_1_4858(omObjData *arg0) { } -} - -void fn_1_485C(omObjData* arg0) { - unkDominationData4* temp_r30; +void fn_1_485C(omObjData *arg0) +{ + unkDominationData4 *temp_r30; temp_r30 = arg0->data; if (temp_r30->unk_04 != 0) { temp_r30->unk_04--; } - + if (temp_r30->unk_1C == 0) { Hu3DMotionTimeSet(*arg0->model, 0.0f); - Hu3DModelAttrReset(*arg0->model, 1); + Hu3DModelAttrReset(*arg0->model, HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(*arg0->model, 0x40000002); - Hu3DModelAttrSet(*arg0->model, 0x40000001); + Hu3DModelAttrSet(*arg0->model, HU3D_MOTATTR_LOOP); temp_r30->unk_1C++; - } else if (temp_r30->unk_1C == 1) { + } + else if (temp_r30->unk_1C == 1) { Hu3DModelAttrReset(arg0->model[0], 0x40000001); temp_r30->unk_1C++; } - + if (Hu3DMotionEndCheck(*arg0->model) != 0) { - Hu3DModelAttrSet(*arg0->model, 1); + Hu3DModelAttrSet(*arg0->model, HU3D_ATTR_DISPOFF); fn_1_465C(arg0, 0); } } diff --git a/src/REL/m407dll/map.c b/src/REL/m407dll/map.c index 806579cc..3586f39a 100644 --- a/src/REL/m407dll/map.c +++ b/src/REL/m407dll/map.c @@ -76,7 +76,7 @@ void fn_1_162C(omObjData *arg0) Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f); arg0->model[1] = Hu3DModelCreateFile(lbl_1_data_198[3]); Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f); - Hu3DModelAttrSet(arg0->model[1], 1); + Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); for (i = 0; i < ARRAY_COUNT(GWPlayerCfg); i++) { arg0->model[i + 2] = Hu3DModelCreateFile(lbl_1_data_198[GWPlayerCfg[i].character + 4]); Hu3DModelAmbSet(arg0->model[i + 2], 1.0f, 1.0f, 1.0f); @@ -107,11 +107,11 @@ void fn_1_162C(omObjData *arg0) Hu3DModelPosSet(arg0->model[11], 0.0f, 0.0f, -3900.0f); Hu3DModelPosSet(arg0->model[12], 0.0f, 0.0f, 0.0f); - Hu3DModelAttrSet(arg0->model[12], 0x40000001); + Hu3DModelAttrSet(arg0->model[12], HU3D_MOTATTR_LOOP); if (lbl_1_bss_20 > 0) { Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 200.0f * (f32)lbl_1_bss_20); - Hu3DModelAttrReset(arg0->model[1], 1); + Hu3DModelAttrReset(arg0->model[1], HU3D_ATTR_DISPOFF); } } diff --git a/src/REL/m407dll/player.c b/src/REL/m407dll/player.c index 5cd498bd..394f2885 100644 --- a/src/REL/m407dll/player.c +++ b/src/REL/m407dll/player.c @@ -363,7 +363,7 @@ void fn_1_64C(omObjData *arg0) Hu3DModelShadowSet(arg0->model[1]); CharModelMotionDataClose(temp_r31->unk_01); CharModelMotionSet(temp_r31->unk_01, arg0->motion[1]); - Hu3DModelAttrSet(arg0->model[0], 0x40000001); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); Hu3DModelHookSet(arg0->model[0], lbl_1_data_13C[temp_r31->unk_01], arg0->model[1]); temp_r31->unk_10 = (600.0f - (400.0f * temp_r29)); temp_r31->unk_14 = 0.0f; diff --git a/src/REL/m407dll/whomp.c b/src/REL/m407dll/whomp.c index 25a5743a..90ef5e88 100644 --- a/src/REL/m407dll/whomp.c +++ b/src/REL/m407dll/whomp.c @@ -229,10 +229,10 @@ void fn_1_2930(omObjData *arg0) } if ((temp_r31->unk_08.y < 0.0f) || (temp_r31->unk_08.z < (Center.z - 2000.0f))) { - Hu3DModelAttrSet(arg0->model[0], 1); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); } omSetTra(arg0, temp_r31->unk_08.x, temp_r31->unk_08.y, temp_r31->unk_08.z); @@ -271,7 +271,7 @@ void fn_1_2B7C(omObjData *arg0) temp_r30->unk_14.z = 0.0f; if (temp_r30->unk_00 < 80) { arg0->model[0] = Hu3DModelCreateFile(lbl_1_data_228[1]); - Hu3DModelAttrSet(arg0->model[0], 0x4000); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_NOCULL); Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f); if (temp_r30->unk_00 == 0) { arg0->motion[5] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[5]); @@ -292,7 +292,7 @@ void fn_1_2B7C(omObjData *arg0) lbl_1_bss_68[temp_r30->unk_00][i] = arg0->motion[i]; } Hu3DMotionSet(arg0->model[0], arg0->motion[5]); - Hu3DModelAttrSet(arg0->model[0], 0x40000001); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); temp_r30->unk_04 = 1; } else { @@ -306,8 +306,8 @@ void fn_1_2B7C(omObjData *arg0) arg0->model[0] = Hu3DModelCreateFile(lbl_1_data_228[0]); arg0->model[1] = Hu3DModelCreateFile(lbl_1_data_228[2]); arg0->model[2] = Hu3DModelCreateFile(lbl_1_data_228[3]); - Hu3DModelAttrSet(arg0->model[0], 0x4000); - Hu3DModelAttrSet(arg0->model[1], 0x4000); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_NOCULL); + Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_NOCULL); Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f); Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f); arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_238[2]); @@ -318,11 +318,11 @@ void fn_1_2B7C(omObjData *arg0) Hu3DModelHookSet(arg0->model[0], "itemhook_r", arg0->model[1]); Hu3DModelShadowSet(arg0->model[0]); Hu3DModelShadowSet(arg0->model[1]); - Hu3DModelAttrSet(arg0->model[0], 1); - Hu3DModelAttrSet(arg0->model[1], 1); - Hu3DModelAttrSet(arg0->model[2], 1); - Hu3DModelAttrSet(arg0->model[2], 0x40000002); - Hu3DModelAttrSet(arg0->model[2], 0x40000001); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[2], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(arg0->model[2], HU3D_MOTATTR_LOOP); temp_r30->unk_04 = 1; break; } @@ -403,7 +403,7 @@ void fn_1_3364(omObjData *arg0) } temp_r31->unk_08.y = -300.0f; - Hu3DModelAttrSet(arg0->model[0], 1); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); fn_1_290C(arg0, 0); } @@ -414,11 +414,11 @@ void fn_1_34A4(omObjData *arg0) temp_r30 = arg0->data; if (temp_r30->unk_2C == 0) { if (temp_r30->unk_28 == 1) { - Hu3DModelAttrReset(arg0->model[0], 1); - Hu3DModelAttrReset(arg0->model[1], 1); + Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(arg0->model[1], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); } Hu3DMotionSet(arg0->model[0], arg0->motion[3]); Hu3DModelAttrReset(arg0->model[0], 0x40000001); @@ -466,10 +466,10 @@ void fn_1_36D0(omObjData *arg0) sp8 = arg0->data; Hu3DMotionShiftSet(arg0->model[0], arg0->motion[2], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); Hu3DMotionSet(arg0->model[1], arg0->motion[0]); - Hu3DModelAttrSet(arg0->model[1], 0x40000001); - Hu3DModelAttrReset(arg0->model[2], 1); + Hu3DModelAttrSet(arg0->model[1], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(arg0->model[2], 0x40000002); - Hu3DModelAttrSet(arg0->model[2], 0x40000001); + Hu3DModelAttrSet(arg0->model[2], HU3D_MOTATTR_LOOP); fn_1_290C(arg0, 0); } @@ -481,7 +481,7 @@ void fn_1_37B0(omObjData *arg0) if (temp_r31->unk_2C == 0) { temp_r31->unk_14.x = 0.0f; temp_r31->unk_08.y = 0.0f; - Hu3DModelAttrSet(arg0->model[0], 0x40000002); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_PAUSE); temp_r31->unk_2C++; } temp_r31->unk_14.x -= 4.0f; diff --git a/src/REL/m408Dll/camera.c b/src/REL/m408Dll/camera.c index e2b5ba0c..d0f693ea 100644 --- a/src/REL/m408Dll/camera.c +++ b/src/REL/m408Dll/camera.c @@ -191,8 +191,8 @@ void fn_1_8FAC(omObjData *object) Center.z + (cosd(CRot.y) * cosd(CRot.x) * CZoom)); fn_1_BDE0(); if (lbl_1_bss_10C == 5) { - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); lbl_1_bss_10C = 5; object->func = fn_1_9514; } @@ -208,7 +208,7 @@ void fn_1_9514(omObjData *object) object->work[2] = 0; } if (fn_1_6878() >= 4) { - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); } omSetTra(object, Center.x + (sind(CRot.y) * cosd(CRot.x) * CZoom), Center.y + (-sind(CRot.x) * CZoom) - 1000, Center.z + (cosd(CRot.y) * cosd(CRot.x) * CZoom)); @@ -235,7 +235,7 @@ void fn_1_9770(omObjData *object) object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work99C8), MEMORY_DEFAULT_NUM); temp_r31 = object->data; object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x0A)); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); Hu3DMotionSpeedSet(object->model[0], 3.0f); Hu3DModelShadowSet(object->model[0]); object->func = fn_1_99C8; @@ -429,8 +429,8 @@ void fn_1_99C8(omObjData *object) void fn_1_A334(omObjData *object) { - Hu3DModelAttrSet(object->model[1], 1); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); } void fn_1_A37C(ModelData *model, ParticleData *particle, Mtx matrix) diff --git a/src/REL/m408Dll/main.c b/src/REL/m408Dll/main.c index afd909e9..32571be7 100644 --- a/src/REL/m408Dll/main.c +++ b/src/REL/m408Dll/main.c @@ -647,7 +647,7 @@ void fn_1_26E4(omObjData *object) object->model[1] = Hu3DModelCreateFile(lbl_1_data_C8[temp_r31->unk2]); Hu3DModelLayerSet(object->model[1], 6); Hu3DModelScaleSet(object->model[1], 0.1f * temp_r31->unk8, 0.1f * temp_r31->unk8, 0.1f * temp_r31->unk8); - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); temp_r31->unk94.x = temp_r31->unk94.y = temp_r31->unk94.z = 0; temp_r31->unkA0.x = temp_r31->unkA0.y = temp_r31->unkA0.z = 0; fn_1_1BE8(object, 1.0f); @@ -725,7 +725,7 @@ void fn_1_2FAC(omObjData *object) temp_r31->unk1C.y = object->trans.y; temp_r31->unk1C.z = object->trans.z; omSetRot(object, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); - Hu3DModelAttrReset(object->model[1], 0x1); + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); temp_r31->unkC += 0.2f * (1.0f - temp_r31->unkC); if (object->trans.y < 11940) { object->work[1]++; @@ -739,7 +739,7 @@ void fn_1_2FAC(omObjData *object) object->trans.y = temp_r31->unk1C.y = temp_r31->unk94.y = lbl_1_bss_54; object->trans.z = temp_r31->unk1C.z = temp_r31->unk94.z = lbl_1_data_104[temp_r31->unk0][1]; object->rot.y = temp_r31->unk58.x = atan2d(object->trans.x, object->trans.z) + 180.0; - Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); ((ParticleData *)Hu3DData[object->model[2]].unk_120)->unk_00 = 0; object->func = fn_1_3E80; } @@ -983,15 +983,15 @@ void fn_1_4A58(omObjData *object) object->func = fn_1_3E80; } if (temp_r26) { - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); for (temp_r28 = 0; temp_r28 < temp_r31->unk8; temp_r28++) { - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); } } else { - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); for (temp_r28 = 0; temp_r28 < temp_r31->unk8; temp_r28++) { - Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); } } } @@ -1088,20 +1088,20 @@ void fn_1_5684(omObjData *object) if (fn_1_6878() >= 4) { GWPlayerCoinCollectAdd(object->work[0], temp_r31->unk14); if (lbl_1_bss_48) { - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); CharModelMotionSet(temp_r31->unk2, object->motion[6]); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); object->trans.x = lbl_1_data_144[object->work[0]].x; object->trans.y = 0; object->trans.z = lbl_1_data_144[object->work[0]].z; object->rot.x = object->rot.y = object->rot.z = 0; } else { - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); } for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); } object->func = fn_1_5AA0; } diff --git a/src/REL/m408Dll/object.c b/src/REL/m408Dll/object.c index 817bdfce..817ec9e3 100644 --- a/src/REL/m408Dll/object.c +++ b/src/REL/m408Dll/object.c @@ -219,7 +219,7 @@ void fn_1_11960(omObjData *object) if (temp_r27 < 0) { temp_r27 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); temp_r23 = Hu3DJointMotionFile(temp_r27, lbl_1_data_1C4[temp_r31->unk0]); - Hu3DModelAttrSet(temp_r27, 0x40000001); + Hu3DModelAttrSet(temp_r27, HU3D_MOTATTR_LOOP); Hu3DMotionSet(temp_r27, temp_r23); temp_r28 = temp_r27; } @@ -233,7 +233,7 @@ void fn_1_11960(omObjData *object) if (temp_r26 < 0) { temp_r26 = Hu3DModelCreateFile(lbl_1_data_1A0[temp_r31->unk0]); temp_r22 = Hu3DJointMotionFile(temp_r26, lbl_1_data_1C4[temp_r31->unk0]); - Hu3DModelAttrSet(temp_r26, 0x40000001); + Hu3DModelAttrSet(temp_r26, HU3D_MOTATTR_LOOP); Hu3DMotionSet(temp_r26, temp_r22); temp_r28 = temp_r26; } @@ -270,15 +270,15 @@ void fn_1_11960(omObjData *object) Hu3DModelRotSetV(object->model[temp_r29], &temp_r31->unk34); Hu3DModelScaleSet(object->model[temp_r29], 0.15f, 0.15f, 0.15f); Hu3DModelCameraSet(object->model[temp_r29], 1); - Hu3DModelAttrSet(object->model[temp_r29], 1); + Hu3DModelAttrSet(object->model[temp_r29], HU3D_ATTR_DISPOFF); if (temp_r31->unk0 < 7) { - Hu3DModelAttrSet(object->model[temp_r29], 0x40000001); + Hu3DModelAttrSet(object->model[temp_r29], HU3D_MOTATTR_LOOP); } } for (temp_r29 = lbl_1_bss_DA0; temp_r29 < lbl_1_bss_DA0 + lbl_1_bss_D9C; temp_r29++) { temp_r28 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x18)), 32); object->model[temp_r29] = temp_r28; - Hu3DModelAttrSet(temp_r28, 1); + Hu3DModelAttrSet(temp_r28, HU3D_ATTR_DISPOFF); Hu3DModelLayerSet(temp_r28, 6); Hu3DParticleColSet(temp_r28, 255, 255, 255); Hu3DParticleHookSet(temp_r28, fn_1_15658); @@ -403,10 +403,10 @@ void fn_1_123C8(omObjData *object) Hu3DModelRotSetV(object->model[temp_r29], &temp_r31->unk34); Hu3DModelScaleSet(object->model[temp_r29], 0.15f * temp_r31->unk4C, 0.15f * temp_r31->unk4C, 0.15f * temp_r31->unk4C); if (temp_r31->unkC.y > fn_1_6888() - 1000 && temp_r31->unkC.y < fn_1_6888() + 200) { - Hu3DModelAttrReset(object->model[temp_r29], 1); + Hu3DModelAttrReset(object->model[temp_r29], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrSet(object->model[temp_r29], 1); + Hu3DModelAttrSet(object->model[temp_r29], HU3D_ATTR_DISPOFF); } if (temp_r31->unk0 == 7 || temp_r31->unk0 == 8) { if (temp_r31->unkC.y > fn_1_6888() - 150 && temp_r31->unkC.y < fn_1_6888() + 10) { @@ -415,13 +415,13 @@ void fn_1_123C8(omObjData *object) } } else { - Hu3DModelAttrSet(object->model[temp_r29], 1); + Hu3DModelAttrSet(object->model[temp_r29], HU3D_ATTR_DISPOFF); } } temp_r28 = fn_1_6878(); if (temp_r28 == 5) { for (temp_r29 = 0; temp_r29 < lbl_1_bss_DA0; temp_r29++, temp_r31++) { - Hu3DModelAttrSet(object->model[temp_r29], 1); + Hu3DModelAttrSet(object->model[temp_r29], HU3D_ATTR_DISPOFF); } object->func = fn_1_12670; } @@ -567,7 +567,7 @@ void fn_1_12C6C(StructBssDA4 *arg0) if (arg0->unkC.y - 15.0f > Center.y + CZoom) { arg0->unk54 = 4; arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], HU3D_ATTR_DISPOFF); } break; @@ -646,7 +646,7 @@ void fn_1_1305C(StructBssDA4 *arg0) if (arg0->unkC.y - 15.0f > Center.y + CZoom) { arg0->unk54 = 4; arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], HU3D_ATTR_DISPOFF); } break; @@ -709,7 +709,7 @@ void fn_1_134D8(StructBssDA4 *arg0) if (arg0->unkC.y - 15.0f > Center.y + CZoom) { arg0->unk54 = 4; arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], HU3D_ATTR_DISPOFF); } break; @@ -784,7 +784,7 @@ void fn_1_13820(StructBssDA4 *arg0) arg0->unk5C = 1; arg0->unk54 = 4; arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], HU3D_ATTR_DISPOFF); break; case 4: @@ -833,7 +833,7 @@ void fn_1_13D88(StructBssDA4 *arg0) } if (arg0->unk5C == 1 && arg0->unkC.y - 15.0f > Center.y + CZoom) { arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], HU3D_ATTR_DISPOFF); } if (arg0->unk34.y > 360.0f) { arg0->unk34.y -= 360.0f; @@ -911,7 +911,7 @@ void fn_1_1406C(StructBssDA4 *arg0) break; case 3: - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], HU3D_ATTR_DISPOFF); arg0->unk5C = 1; arg0->unk50 = 0; arg0->unk54++; @@ -1018,7 +1018,7 @@ void fn_1_144D0(StructBssDA4 *arg0) } else { arg0->unk54 = 4; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], HU3D_ATTR_DISPOFF); } temp_f27 = 0; temp_f29 = 50 + (40 * temp_f27); @@ -1046,7 +1046,7 @@ void fn_1_144D0(StructBssDA4 *arg0) case 4: if (arg0->unk5C == 1 && arg0->unkC.y - 15.0f > Center.y + CZoom) { arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], HU3D_ATTR_DISPOFF); } break; } @@ -1086,7 +1086,7 @@ void fn_1_14DB4(StructBssDA4 *arg0) arg0->unk54 = 4; arg0->unk60 = 0; temp_r30 = lbl_1_bss_75A8->model[arg0->unk8]; - Hu3DModelAttrReset(temp_r30, 1); + Hu3DModelAttrReset(temp_r30, HU3D_ATTR_DISPOFF); fn_1_15B50(temp_r30); fn_1_155E0(temp_r30, 1); fn_1_15618(temp_r30, arg0->unkC.x, arg0->unkC.y, arg0->unkC.z); @@ -1122,7 +1122,7 @@ void fn_1_14DB4(StructBssDA4 *arg0) } else { arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], HU3D_ATTR_DISPOFF); } break; } @@ -1172,7 +1172,7 @@ void fn_1_151A4(StructBssDA4 *arg0) arg0->unk54 = 4; arg0->unk60 = 0; temp_r30 = lbl_1_bss_75A8->model[arg0->unk8]; - Hu3DModelAttrReset(temp_r30, 1); + Hu3DModelAttrReset(temp_r30, HU3D_ATTR_DISPOFF); fn_1_15B50(temp_r30); fn_1_155E0(temp_r30, 1); fn_1_15618(temp_r30, arg0->unkC.x, arg0->unkC.y, arg0->unkC.z); @@ -1205,7 +1205,7 @@ void fn_1_151A4(StructBssDA4 *arg0) } else { arg0->unk50 = 0; - Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], 1); + Hu3DModelAttrSet(lbl_1_bss_75A8->model[arg0->unk4], HU3D_ATTR_DISPOFF); } break; } @@ -1368,7 +1368,7 @@ void fn_1_15BCC(omObjData *object) for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { temp_r30 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M408, 0x19)), 9); object->model[temp_r29] = temp_r30; - Hu3DModelAttrSet(temp_r30, 1); + Hu3DModelAttrSet(temp_r30, HU3D_ATTR_DISPOFF); Hu3DModelLayerSet(temp_r30, 7); Hu3DParticleColSet(temp_r30, 255, 255, 255); Hu3DParticleHookSet(temp_r30, fn_1_15D64); @@ -1391,7 +1391,7 @@ void fn_1_15CA4(omObjData *object) temp_r29 = object->model[temp_r31]; temp_r28 = &Hu3DData[temp_r29]; temp_r27 = temp_r28->unk_120; - Hu3DModelAttrReset(temp_r29, 1); + Hu3DModelAttrReset(temp_r29, HU3D_ATTR_DISPOFF); Hu3DModelPosSet(temp_r29, lbl_1_bss_D6C[temp_r31].x, lbl_1_bss_D6C[temp_r31].y, lbl_1_bss_D6C[temp_r31].z); temp_r27->unk_34 = 0; } diff --git a/src/REL/m408Dll/stage.c b/src/REL/m408Dll/stage.c index 90225c17..fcf59452 100644 --- a/src/REL/m408Dll/stage.c +++ b/src/REL/m408Dll/stage.c @@ -95,12 +95,12 @@ void fn_1_C530(omObjData *object) omSetSca(object, 0.1f, 0.1f, 0.1f); temp_r31 = object->model[0]; Hu3DModelLayerSet(temp_r31, 1); - Hu3DModelAttrSet(temp_r31, 1); + Hu3DModelAttrSet(temp_r31, HU3D_ATTR_DISPOFF); object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x1E)); temp_r31 = object->model[4]; Hu3DModelLayerSet(temp_r31, 1); Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); - Hu3DModelAttrSet(temp_r31, 1); + Hu3DModelAttrSet(temp_r31, HU3D_ATTR_DISPOFF); object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x20)); temp_r31 = object->model[5]; Hu3DModelLayerSet(temp_r31, 1); @@ -110,13 +110,13 @@ void fn_1_C530(omObjData *object) Hu3DModelLayerSet(temp_r31, 1); Hu3DModelPosSet(temp_r31, -20, -10, -150); Hu3DModelScaleSet(temp_r31, 0.14500001f, 0.14500001f, 0.14500001f); - Hu3DModelAttrSet(temp_r31, 1); + Hu3DModelAttrSet(temp_r31, HU3D_ATTR_DISPOFF); object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x1D)); temp_r31 = object->model[3]; Hu3DModelPosSet(temp_r31, 0, -50, -500); Hu3DModelScaleSet(temp_r31, 0.15f, 0.15f, 0.15f); Hu3DModelLayerSet(temp_r31, 0); - Hu3DModelAttrSet(temp_r31, 1); + Hu3DModelAttrSet(temp_r31, HU3D_ATTR_DISPOFF); sp8 = fn_1_F4B0(temp_r31, temp_r31); object->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x1C)); temp_r31 = object->model[9]; @@ -124,19 +124,19 @@ void fn_1_C530(omObjData *object) Hu3DModelScaleSet(temp_r31, 0.11000001f, 0.1f, 0.11000001f); Hu3DModelPosSet(temp_r31, 0, 10000, 0); Hu3DModelLayerSet(temp_r31, 1); - Hu3DModelAttrSet(temp_r31, 1); + Hu3DModelAttrSet(temp_r31, HU3D_ATTR_DISPOFF); object->model[11] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x1F)); temp_r31 = object->model[11]; Hu3DModelPosSet(temp_r31, 0, 10000, 0); Hu3DModelLayerSet(temp_r31, 1); Hu3DModelScaleSet(temp_r31, 0.105f, 0.1f, 0.105f); - Hu3DModelAttrSet(temp_r31, 1); + Hu3DModelAttrSet(temp_r31, HU3D_ATTR_DISPOFF); object->model[12] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M408, 0x23)); temp_r31 = object->model[12]; Hu3DModelLayerSet(temp_r31, 3); Hu3DModelPosSet(temp_r31, 0, 5000, 0); Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); - Hu3DModelAttrSet(temp_r31, 1); + Hu3DModelAttrSet(temp_r31, HU3D_ATTR_DISPOFF); Hu3DMotionSpeedSet(temp_r31, 0); object->model[19] = temp_r31 = fn_1_D978(lbl_1_bss_14C[0], 80, fn_1_E310); Hu3DModelLayerSet(temp_r31, 1); @@ -153,13 +153,13 @@ void fn_1_C530(omObjData *object) Hu3DModelLayerSet(temp_r31, 3); Hu3DModelRotSet(temp_r31, 0, frandmod(360), 0); Hu3DModelScaleSet(temp_r31, 0.1f, 0.1f, 0.1f); - Hu3DModelAttrSet(temp_r31, 1); + Hu3DModelAttrSet(temp_r31, HU3D_ATTR_DISPOFF); Hu3DMotionSpeedSet(temp_r31, 0); } object->model[6] = temp_r31 = fn_1_D978(lbl_1_bss_14C[4], 1, fn_1_EEF8); Hu3DModelPosSet(temp_r31, 0, 5000, 0); Hu3DModelLayerSet(temp_r31, 3); - Hu3DModelAttrReset(temp_r31, 1); + Hu3DModelAttrReset(temp_r31, HU3D_ATTR_DISPOFF); Hu3DParticleBlendModeSet(temp_r31, 1); temp_r29 = ((ParticleData *)Hu3DData[temp_r31].unk_120)->unk_1C; temp_r29[1] = 800; @@ -243,18 +243,18 @@ void fn_1_CEEC(void) return; } lbl_1_bss_140 = 2; - Hu3DModelAttrSet(temp_r31->model[5], 1); - Hu3DModelAttrSet(temp_r31->model[9], 1); - Hu3DModelAttrSet(temp_r31->model[11], 1); - Hu3DModelAttrSet(temp_r31->model[12], 1); - Hu3DModelAttrSet(temp_r31->model[19], 1); + Hu3DModelAttrSet(temp_r31->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(temp_r31->model[9], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(temp_r31->model[11], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(temp_r31->model[12], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(temp_r31->model[19], HU3D_ATTR_DISPOFF); for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { - Hu3DModelAttrSet(temp_r31->model[temp_r30 + 14], 1); + Hu3DModelAttrSet(temp_r31->model[temp_r30 + 14], HU3D_ATTR_DISPOFF); } - Hu3DModelAttrReset(temp_r31->model[0], 1); - Hu3DModelAttrReset(temp_r31->model[4], 1); - Hu3DModelAttrReset(temp_r31->model[2], 1); - Hu3DModelAttrReset(temp_r31->model[3], 1); + Hu3DModelAttrReset(temp_r31->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(temp_r31->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(temp_r31->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(temp_r31->model[3], HU3D_ATTR_DISPOFF); } void fn_1_D6F0(omObjData *object); @@ -276,14 +276,14 @@ void fn_1_D004(omObjData *object) temp_f28 = 7000; switch (temp_r30[0]) { case 2: - Hu3DModelAttrReset(object->model[9], 1); - Hu3DModelAttrReset(object->model[11], 1); - Hu3DModelAttrReset(object->model[12], 1); - Hu3DModelAttrReset(object->model[19], 1); + Hu3DModelAttrReset(object->model[9], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[11], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[12], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[19], HU3D_ATTR_DISPOFF); for (temp_r26 = 0; temp_r26 < 4; temp_r26++) { - Hu3DModelAttrReset(object->model[temp_r26 + 14], 1); + Hu3DModelAttrReset(object->model[temp_r26 + 14], HU3D_ATTR_DISPOFF); } - Hu3DModelAttrReset(object->model[6], 1); + Hu3DModelAttrReset(object->model[6], HU3D_ATTR_DISPOFF); if (lbl_1_bss_134 < 0) { lbl_1_bss_134 = HuAudFXPlay(1363); } @@ -405,7 +405,7 @@ s16 fn_1_D978(AnimData *arg0, s16 arg1, ParticleHook arg2) HsfanimStruct01 *temp_r27; temp_r28 = Hu3DParticleCreate(arg0, arg1); Hu3DParticleHookSet(temp_r28, arg2); - Hu3DModelAttrSet(temp_r28, 1); + Hu3DModelAttrSet(temp_r28, HU3D_ATTR_DISPOFF); temp_r29 = Hu3DData[temp_r28].unk_120; temp_r27 = temp_r29->unk_48; for (temp_r31 = 0; temp_r31 < temp_r29->unk_30; temp_r31++, temp_r27++) { diff --git a/src/REL/m409Dll/main.c b/src/REL/m409Dll/main.c index 805f5708..f3a5e532 100644 --- a/src/REL/m409Dll/main.c +++ b/src/REL/m409Dll/main.c @@ -142,7 +142,7 @@ s8 fn_1_524(void) CRot.y = fn_1_4120(var_r31[0].rot.y, var_r31[1].rot.y, var_r31[2].rot.y, temp_f31); CRot.z = fn_1_4120(var_r31[0].rot.z, var_r31[1].rot.z, var_r31[2].rot.z, temp_f31); if (var_f30 > 0.65f) { - Hu3DModelAttrSet(lbl_1_bss_DC->model[1], 1U); + Hu3DModelAttrSet(lbl_1_bss_DC->model[1], HU3D_ATTR_DISPOFF); } temp_f29 = var_r31[0].rot.x + (-var_r31[0].rot.x * temp_f31); Hu3DModelRotSet(lbl_1_bss_DC->model[2], 0.2f * temp_f29, 0.85f * CRot.y, 0.0f); @@ -453,7 +453,7 @@ void fn_1_2098(omObjData *object) lbl_1_bss_18 += 0.008f; if (lbl_1_bss_18 >= 1.0f) { fn_1_2414(0x60, 0x40); - Hu3DModelAttrSet(lbl_1_bss_DC->model[4], 1U); + Hu3DModelAttrSet(lbl_1_bss_DC->model[4], HU3D_ATTR_DISPOFF); lbl_1_bss_18 = 1.0f; } var_f31 = sin((M_PI * (90.0f * lbl_1_bss_18)) / 180.0); @@ -499,8 +499,8 @@ static inline void unkInline(unkStruct4 *var_r31, s16 var_r29, s16 *var_r28, s16 { var_r31[var_r29].unk2 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x02)); var_r31[var_r29].unk4 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x03)); - Hu3DModelAttrSet(var_r31[var_r29].unk2, 0x40000001); - Hu3DModelAttrSet(var_r31[var_r29].unk4, 0x40000002); + Hu3DModelAttrSet(var_r31[var_r29].unk2, HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(var_r31[var_r29].unk4, HU3D_MOTATTR_PAUSE); if (arg3) { Hu3DModelAttrSet(var_r31[var_r29].unk2, 0x00000001); Hu3DModelAttrSet(var_r31[var_r29].unk4, 0x00000001); @@ -508,7 +508,7 @@ static inline void unkInline(unkStruct4 *var_r31, s16 var_r29, s16 *var_r28, s16 var_r31[var_r29].unk6 = Hu3DModelCreateFile(0x2001C); var_r31[var_r29].unk8 = Hu3DJointMotionFile(var_r31[var_r29].unk6, DATA_MAKE_NUM(DATADIR_M409, 11)); var_r31[var_r29].unkA = Hu3DJointMotionFile(var_r31[var_r29].unk6, DATA_MAKE_NUM(DATADIR_M409, 12)); - Hu3DModelAttrSet(var_r31[var_r29].unk6, 0x40000001); + Hu3DModelAttrSet(var_r31[var_r29].unk6, HU3D_MOTATTR_LOOP); Hu3DMotionSet(var_r31[var_r29].unk6, var_r31[var_r29].unk8); var_r31[var_r29].unkC = var_r29 + 3; if (arg3) { @@ -549,7 +549,7 @@ void fn_1_2484(omObjData *object) var_r29 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x0A)); Hu3DModelLayerSet(var_r29, 0); object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x07)); - Hu3DModelAttrSet(object->model[6], 2); + Hu3DModelAttrSet(object->model[6], HU3D_ATTR_ZWRITE_OFF); Hu3DModelScaleSet(object->model[6], 1.1f, 1.0f, 1.0f); Hu3DModelRotSet(object->model[6], 0.2f * lbl_1_data_4C->rot.x, 0.85f * lbl_1_data_4C->rot.y, 0.0f); Hu3DModelLayerSet(object->model[6], 1); @@ -557,11 +557,11 @@ void fn_1_2484(omObjData *object) lbl_1_bss_24.unk14 = 0.0f; object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x01)); object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x04)); - Hu3DModelAttrSet(object->model[4], 0x40000001); + Hu3DModelAttrSet(object->model[4], HU3D_MOTATTR_LOOP); Hu3DModelPosSet(object->model[4], 1660.0f, 0.0f, -1200.0f); Hu3DModelPosSet(object->model[1], 1660.0f, 0.0f, -1200.0f); Hu3DModelLayerSet(object->model[1], 6); - Hu3DModelAttrSet(object->model[1], 0x40000002); + Hu3DModelAttrSet(object->model[1], HU3D_MOTATTR_PAUSE); unkInline(var_r31, 0, &var_r28, 0); for (var_r29 = 1; var_r29 < 4; var_r29++) { @@ -626,8 +626,8 @@ void fn_1_2DCC(omObjData *object) temp_f29 = Hu3DMotionMaxTimeGet(var_r31->unk4); if (Hu3DMotionTimeGet(var_r31->unk4) >= temp_f29) { Hu3DMotionSet(var_r31->unk6, var_r31->unk8); - Hu3DModelAttrSet(var_r31->unk6, 0x40000001); - Hu3DModelAttrSet(var_r31->unk4, 0x40000002); + Hu3DModelAttrSet(var_r31->unk6, HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(var_r31->unk4, HU3D_MOTATTR_PAUSE); fn_1_2414(24, 8); lbl_1_bss_24.unk1 = 0; } @@ -652,9 +652,9 @@ void fn_1_2DCC(omObjData *object) if (Hu3DMotionTimeGet(var_r31->unk4) <= 0.0f) { Hu3DMotionSet(var_r31->unk6, var_r31->unk8); Hu3DMotionSpeedSet(var_r31->unk6, 1.0f); - Hu3DModelAttrSet(var_r31->unk6, 0x40000001); + Hu3DModelAttrSet(var_r31->unk6, HU3D_MOTATTR_LOOP); Hu3DMotionSpeedSet(var_r31->unk4, 1.0f); - Hu3DModelAttrSet(var_r31->unk4, 0x40000002); + Hu3DModelAttrSet(var_r31->unk4, HU3D_MOTATTR_PAUSE); fn_1_2414(24, 0); } break; @@ -695,9 +695,9 @@ void fn_1_2DCC(omObjData *object) } var_r27 = var_r31->unkC - 1; if (var_r27 == -3) { - Hu3DModelAttrSet(var_r31->unk2, 1); - Hu3DModelAttrSet(var_r31->unk4, 1); - Hu3DModelAttrSet(var_r31->unk6, 1); + Hu3DModelAttrSet(var_r31->unk2, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk4, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk6, HU3D_ATTR_DISPOFF); var_r31->unkC = 2; var_r27 = 1; } @@ -794,9 +794,9 @@ void fn_1_3988(unkStruct4 *arg0, s16 arg1, s16 arg2) arg0->unk1C = ((850.0f * arg2) - 370.0f); arg0->unkC = arg2; if ((arg0->unkC >= 2) && (fn_1_2454(7) != 2)) { - Hu3DModelAttrSet(arg0->unk2, 1U); - Hu3DModelAttrSet(arg0->unk4, 1U); - Hu3DModelAttrSet(arg0->unk6, 1U); + Hu3DModelAttrSet(arg0->unk2, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->unk4, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->unk6, HU3D_ATTR_DISPOFF); } } diff --git a/src/REL/m409Dll/player.c b/src/REL/m409Dll/player.c index 584b118b..fcf6a8c1 100644 --- a/src/REL/m409Dll/player.c +++ b/src/REL/m409Dll/player.c @@ -1,17 +1,17 @@ #include "REL/m409Dll.h" -#include "math.h" -#include "ext_math.h" #include "ext_math.h" #include "game/audio.h" #include "game/chrman.h" #include "game/gamework_data.h" -#include "game/pad.h" #include "game/hsfmotion.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "math.h" // bss -omObjData* lbl_1_bss_3A0[4]; -omObjData* lbl_1_bss_39C; +omObjData *lbl_1_bss_3A0[4]; +omObjData *lbl_1_bss_39C; s32 lbl_1_bss_38C[4]; unkStruct10 lbl_1_bss_10C[8]; s16 lbl_1_bss_108; @@ -22,39 +22,26 @@ unkStruct9 lbl_1_bss_F0; // data u32 lbl_1_data_138 = 0xFFFF0000; s32 lbl_1_data_13C[7] = { 0x30, 0x2D, 0x3A, 0x2E, DATA_MAKE_NUM(DATADIR_M409, 0x32), 0x17, 0x18 }; -GXColor lbl_1_data_158[8] = { - { 0xFF, 0x00, 0x00, 0xFF }, - { 0x00, 0x00, 0xFF, 0xFF }, - { 0xFF, 0x80, 0x80, 0xFF }, - { 0x00, 0xFF, 0x00, 0xFF }, - { 0x80, 0x00, 0xC0, 0xFF }, - { 0x90, 0x30, 0x00, 0xFF }, - { 0xFF, 0xFF, 0x00, 0xFF }, - { 0x00, 0x00, 0x00, 0xFF } -}; +GXColor lbl_1_data_158[8] = { { 0xFF, 0x00, 0x00, 0xFF }, { 0x00, 0x00, 0xFF, 0xFF }, { 0xFF, 0x80, 0x80, 0xFF }, { 0x00, 0xFF, 0x00, 0xFF }, + { 0x80, 0x00, 0xC0, 0xFF }, { 0x90, 0x30, 0x00, 0xFF }, { 0xFF, 0xFF, 0x00, 0xFF }, { 0x00, 0x00, 0x00, 0xFF } }; HsfVector2f lbl_1_data_178[4] = { - { 72.0f, 80.0f }, { 504.0f, 80.0f }, - { 72.0f, 400.0f }, { 504.0f, 400.0f }, -}; -GXColor lbl_1_data_198[8] = { - { 0xD0, 0x00, 0x00, 0xFF }, - { 0x00, 0x00, 0xFF, 0xFF }, - { 0x00, 0xA0, 0x00, 0xFF }, - { 0xFF, 0xFF, 0x00, 0xFF }, - { 0xA0, 0x00, 0xFF, 0xFF }, - { 0xFF, 0x80, 0x40, 0xFF }, - { 0xFF, 0xA0, 0xF0, 0xFF }, - { 0x00, 0xFF, 0x40, 0xFF } + { 72.0f, 80.0f }, + { 504.0f, 80.0f }, + { 72.0f, 400.0f }, + { 504.0f, 400.0f }, }; +GXColor lbl_1_data_198[8] = { { 0xD0, 0x00, 0x00, 0xFF }, { 0x00, 0x00, 0xFF, 0xFF }, { 0x00, 0xA0, 0x00, 0xFF }, { 0xFF, 0xFF, 0x00, 0xFF }, + { 0xA0, 0x00, 0xFF, 0xFF }, { 0xFF, 0x80, 0x40, 0xFF }, { 0xFF, 0xA0, 0xF0, 0xFF }, { 0x00, 0xFF, 0x40, 0xFF } }; -void fn_1_67E0(Process* arg0) { +void fn_1_67E0(Process *arg0) +{ s32 var_r31; s32 temp_r28; - omObjData* var_r30; + omObjData *var_r30; omMakeGroupEx(arg0, 0, 4); omGetGroupMemberListEx(arg0, 0); - + for (var_r31 = 0; var_r31 < 4; var_r31++) { lbl_1_bss_3A0[var_r31] = var_r30 = omAddObjEx(arg0, 0x30, 3, 7, 0, fn_1_6928); var_r30->work[0] = var_r31; @@ -63,38 +50,27 @@ void fn_1_67E0(Process* arg0) { fn_1_BF88(0x40, 0x40); fn_1_DF20(DATA_MAKE_NUM(DATADIR_M409, 0x2C), 0x40, 0x40); temp_r28 = (u8)frand(); - + for (var_r31 = 0; var_r31 < (temp_r28 + 1); var_r31++) { fn_1_ABB4(); } } -void fn_1_6900(void) { +void fn_1_6900(void) +{ CharModelKill(-1); fn_1_C0C0(); } -void fn_1_6928(omObjData* arg0) { - Vec sp8[4] = { - { -185.0f, 35.0f, 100.0f }, - { -62.5f, 35.0f, 100.0f }, - { 62.5f, 35.0f, 100.0f }, - { 185.0f, 35.0f, 100.0f } - }; - s8 sp38[8][32] = { - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r" - }; - unkStruct7* var_r31; +void fn_1_6928(omObjData *arg0) +{ + Vec sp8[4] = { { -185.0f, 35.0f, 100.0f }, { -62.5f, 35.0f, 100.0f }, { 62.5f, 35.0f, 100.0f }, { 185.0f, 35.0f, 100.0f } }; + s8 sp38[8][32] = { "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", + "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r" }; + unkStruct7 *var_r31; s32 var_r30; s32 var_r28; - + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkStruct7), MEMORY_DEFAULT_NUM); arg0->data = var_r31; var_r31->unk0 = arg0->work[0]; @@ -118,12 +94,13 @@ void fn_1_6928(omObjData* arg0) { var_r31->unk3C.x = var_r31->unk3C.z = 0.0f; var_r30 = CharModelCreate(var_r31->unk1, 4); arg0->model[0] = var_r30; - Hu3DModelAttrSet(var_r30, 0x40000001); - + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + for (var_r28 = 0; var_r28 < 7; var_r28++) { if ((lbl_1_data_13C[var_r28] & 0xFFFF0000) != 0) { arg0->motion[var_r28] = CharModelMotionCreate(var_r31->unk1, var_r31->unk1 + lbl_1_data_13C[var_r28]); - } else { + } + else { arg0->motion[var_r28] = CharModelMotionCreate(var_r31->unk1, lbl_1_data_13C[var_r28]); } } @@ -134,12 +111,13 @@ void fn_1_6928(omObjData* arg0) { Hu3DModelRotSet(var_r30, 0.0f, 30.0f, 0.0f); CharModelStepTypeSet(var_r31->unk1, 0); arg0->model[1] = var_r30 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M409, 0x12)); - Hu3DModelHookSet(arg0->model[0], (char*)sp38[var_r31->unk1], arg0->model[1]); + Hu3DModelHookSet(arg0->model[0], (char *)sp38[var_r31->unk1], arg0->model[1]); var_r30 = fn_1_DA48(2, 1); var_r31->unk57 = var_r30; lbl_1_bss_F0.unk10[var_r30].unk30 = fn_1_8838; fn_1_E2A8(var_r30, 0, DATA_MAKE_NUM(DATADIR_M409, 0x2B), 0x40, 0x40); - fn_1_F098(var_r30, lbl_1_data_158[var_r31->unk1].r, lbl_1_data_158[var_r31->unk1].g, lbl_1_data_158[var_r31->unk1].b, lbl_1_data_158[var_r31->unk1].a); + fn_1_F098( + var_r30, lbl_1_data_158[var_r31->unk1].r, lbl_1_data_158[var_r31->unk1].g, lbl_1_data_158[var_r31->unk1].b, lbl_1_data_158[var_r31->unk1].a); fn_1_F024(var_r30, 1, lbl_1_data_158[var_r31->unk1].r, lbl_1_data_158[var_r31->unk1].g, lbl_1_data_158[var_r31->unk1].b, 0x98); fn_1_E85C(var_r30, 0, var_r31->unk24.x, 100.0f + var_r31->unk24.y, -1200.0f); fn_1_ED44(var_r30, 0, 0x10); @@ -163,30 +141,31 @@ void fn_1_6928(omObjData* arg0) { espColorSet(var_r30, 0, 0, 0); espTPLvlSet(var_r30, 0.5); espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x, lbl_1_data_178[var_r31->unk0].y); - espAttrSet(var_r30, 4); + espAttrSet(var_r30, HUSPR_ATTR_DISPOFF); var_r30 = espEntry(DATA_MAKE_NUM(DATADIR_M409, 0x30), 1, 0); var_r31->unk54 = var_r30; espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x, lbl_1_data_178[var_r31->unk0].y); - espAttrSet(var_r30, 4); + espAttrSet(var_r30, HUSPR_ATTR_DISPOFF); var_r30 = espEntry(var_r31->unk1 + DATA_MAKE_NUM(DATADIR_MGCONST, 0x00), 1, 0); var_r31->unk56 = var_r30; espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x - 27.0f, lbl_1_data_178[var_r31->unk0].y - 20.0f); - espAttrSet(var_r30, 4); - + espAttrSet(var_r30, HUSPR_ATTR_DISPOFF); + for (var_r28 = 0; var_r28 < 3; var_r28++) { var_r30 = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x0A), 0, 0); var_r31->unk5A[var_r28][0] = var_r30; - espAttrSet(var_r30, 4); + espAttrSet(var_r30, HUSPR_ATTR_DISPOFF); espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x - 32.0f + (var_r28 * 0x1E), 16.0f + lbl_1_data_178[var_r31->unk0].y); var_r30 = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x0B), 0, 0); var_r31->unk5A[var_r28][1] = var_r30; - espAttrSet(var_r30, 4); + espAttrSet(var_r30, HUSPR_ATTR_DISPOFF); espPosSet(var_r30, lbl_1_data_178[var_r31->unk0].x - 32.0f + (var_r28 * 0x1E), 16.0f + lbl_1_data_178[var_r31->unk0].y); } arg0->func = fn_1_7344; } -void fn_1_7344(omObjData* arg0) { +void fn_1_7344(omObjData *arg0) +{ s16 sp8; f32 temp_f28; f32 temp_f29; @@ -206,17 +185,18 @@ void fn_1_7344(omObjData* arg0) { s16 var_r28; s32 var_r24; s32 temp_r23; - unkStruct8Sub* temp_r30; - unkStruct7* temp_r31; + unkStruct8Sub *temp_r30; + unkStruct7 *temp_r31; var_f31 = 0.0f; - temp_r31 = (unkStruct7*)arg0->data; + temp_r31 = (unkStruct7 *)arg0->data; temp_r19 = arg0->model[0]; temp_r31->unk48 = temp_r31->unk24; var_r28 = temp_r31->unk1C; if (temp_r31->unk5 != 0) { fn_1_7FE8(arg0); - } else { + } + else { temp_r31->unkA = HuPadStkX[temp_r31->unk4]; temp_r31->unkC = HuPadStkY[temp_r31->unk4]; temp_r31->unkE = HuPadBtnDown[temp_r31->unk4]; @@ -231,14 +211,15 @@ void fn_1_7344(omObjData* arg0) { temp_r30 = fn_1_CCCC(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8); if (fn_1_2454(7) != 3) { fn_1_ED00(temp_r31->unk57, 4); - } else { - espAttrReset(temp_r31->unk54, 4); - espAttrReset(temp_r31->unk55, 4); - + } + else { + espAttrReset(temp_r31->unk54, HUSPR_ATTR_DISPOFF); + espAttrReset(temp_r31->unk55, HUSPR_ATTR_DISPOFF); + for (var_r24 = 0; var_r24 < 3; var_r24++) { - espAttrReset(temp_r31->unk5A[var_r24][0], 4); + espAttrReset(temp_r31->unk5A[var_r24][0], HUSPR_ATTR_DISPOFF); } - espAttrReset(temp_r31->unk56, 4); + espAttrReset(temp_r31->unk56, HUSPR_ATTR_DISPOFF); fn_1_EE24(temp_r31->unk57, 4); temp_f28 = (ABS(temp_r26) + ABS(temp_r25)); temp_f30 = 0.008f * (temp_f28 * temp_r26); @@ -283,7 +264,7 @@ void fn_1_7344(omObjData* arg0) { case 6: fn_1_ED44(temp_r31->unk57, 0, 4); Hu3DModelHookReset(temp_r19); - Hu3DModelAttrSet(arg0->model[1], 1); + Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); temp_r23 = fn_1_DA48(1, 1); fn_1_DEF4(temp_r23, 0, 0); fn_1_E7C8(lbl_1_bss_F0.unk6, 0, DATA_MAKE_NUM(DATADIR_M409, 0x2C)); @@ -299,7 +280,8 @@ void fn_1_7344(omObjData* arg0) { if (fn_1_2454(0x80) == 0x80) { if (temp_r31->unk59 >= 3) { var_r28 = 5; - } else { + } + else { var_r28 = 6; } var_r27 = 0; @@ -334,7 +316,8 @@ void fn_1_7344(omObjData* arg0) { if (CharModelMotionEndCheck(temp_r31->unk1) != 0) { if (CharModelMotionTimeGet(temp_r31->unk1) <= 0.0f) { var_r28 = 0; - } else { + } + else { var_r28 = 2; } var_r27 = 1; @@ -351,7 +334,8 @@ void fn_1_7344(omObjData* arg0) { var_r27 = 0; var_f31 = 0.0f; } - } else if (CharModelMotionEndCheck(temp_r31->unk1) != 0) { + } + else if (CharModelMotionEndCheck(temp_r31->unk1) != 0) { var_r28 = 2; var_r27 = 1; var_f31 = 0.0f; @@ -370,7 +354,8 @@ void fn_1_7344(omObjData* arg0) { temp_r31->unk60 = 0; temp_r31->unk18 = -1; } - } else { + } + else { temp_r31->unk3C.y = 0.0f; } break; @@ -386,14 +371,15 @@ void fn_1_7344(omObjData* arg0) { omSetRot(arg0, temp_r31->unk3C.x, temp_r31->unk3C.y, temp_r31->unk3C.z); } -void fn_1_7FE8(omObjData* arg0) { +void fn_1_7FE8(omObjData *arg0) +{ Vec sp20; Vec sp14; s32 sp10; f32 spC; s16 sp8; - unkStruct10* var_r30; - unkStruct8Sub* temp_r29; + unkStruct10 *var_r30; + unkStruct8Sub *temp_r29; f32 temp_f0; f32 temp_f0_2; f32 temp_f1; @@ -401,21 +387,22 @@ void fn_1_7FE8(omObjData* arg0) { f32 temp_f30; f32 var_f28; s32 var_r28; - unkStruct7* temp_r31; + unkStruct7 *temp_r31; - temp_r31 = (unkStruct7*)arg0->data; + temp_r31 = (unkStruct7 *)arg0->data; sp10 = arg0->model[0]; sp8 = temp_r31->unk1C; temp_r31->unkE = temp_r31->unk10 = 0; temp_r29 = fn_1_CCCC(temp_r31->unk57, 0); sp20.x = sp20.y = sp20.z = 0.0f; - switch (lbl_1_bss_108) { /* irregular */ + switch (lbl_1_bss_108) { /* irregular */ case 2: if (temp_r31->unk61 == 0) { var_r30 = &lbl_1_bss_10C[0]; - + for (var_r28 = 0; var_r28 < 8; var_r28++, var_r30++) { - if (var_r30->unk2 == 0) break; + if (var_r30->unk2 == 0) + break; sp20.x += var_r30->unkC.x; sp20.y += var_r30->unkC.y; sp20.z += var_r30->unkC.z; @@ -423,13 +410,15 @@ void fn_1_7FE8(omObjData* arg0) { sp20.x /= var_r28; sp20.y /= var_r28; sp20.z /= var_r28; - } else { + } + else { var_r30 = &lbl_1_bss_10C[temp_r31->unk62]; if (var_r30->unk2 != 0) { sp20.x = var_r30->unkC.x; sp20.y = var_r30->unkC.y; sp20.z = var_r30->unkC.z; - } else { + } + else { sp20.x = 0.0f; sp20.y = 800.0f; sp20.z = -1200.0f; @@ -458,7 +447,9 @@ void fn_1_7FE8(omObjData* arg0) { sp20.z = var_r30->unkC.z; temp_f29 = 100.0f * (0.5f * (4 - temp_r31->unk6)); temp_f29 = 20.0f + (temp_f29 * (fn_1_ABB4() / 65536.0f)); - temp_f30 = ((var_r30->unkC.z - temp_r29->unk0.z) * (var_r30->unkC.z - temp_r29->unk0.z)) + (((var_r30->unkC.x - temp_r29->unk0.x) * (var_r30->unkC.x - temp_r29->unk0.x)) + ((var_r30->unkC.y - temp_r29->unk0.y) * (var_r30->unkC.y - temp_r29->unk0.y))); + temp_f30 = ((var_r30->unkC.z - temp_r29->unk0.z) * (var_r30->unkC.z - temp_r29->unk0.z)) + + (((var_r30->unkC.x - temp_r29->unk0.x) * (var_r30->unkC.x - temp_r29->unk0.x)) + + ((var_r30->unkC.y - temp_r29->unk0.y) * (var_r30->unkC.y - temp_r29->unk0.y))); if ((sqrtf(temp_f30) < temp_f29) && ((s32)((0x20 - (temp_r31->unk6 * 8)) * (fn_1_ABB4() / 65536.0f)) == 0)) { temp_r31->unkE = (temp_r31->unkE | 0x100); } @@ -488,17 +479,18 @@ void fn_1_7FE8(omObjData* arg0) { temp_r31->unk63--; } -void fn_1_8838(unkStruct8* arg0) { +void fn_1_8838(unkStruct8 *arg0) +{ Vec sp18; Vec spC; f32 sp8; f32 temp_f30; f32 temp_f31; - unkStruct8Sub* temp_r30; - Vec* var_r26; + unkStruct8Sub *temp_r30; + Vec *var_r26; s32 var_r28; - unkStruct10* temp_r29; - unkStruct8Sub* temp_r31; + unkStruct10 *temp_r29; + unkStruct8Sub *temp_r31; temp_r30 = &arg0->unk3C[0]; if (temp_r30->unk0.x < -600.0f) { @@ -576,7 +568,8 @@ void fn_1_8838(unkStruct8* arg0) { temp_r31->unk18.x = (temp_r31->unk78 + (temp_r31->unk7C * temp_f31)); temp_r31->unk18.y = (temp_r31->unk78 + (temp_r31->unk7C * temp_f31)); temp_r31->unk18.z = 1.0f; - } else { + } + else { temp_r31->unk0.x = temp_r29->unkC.x; temp_r31->unk0.y = temp_r29->unkC.y; temp_r31->unk0.z = temp_r29->unkC.z; @@ -584,25 +577,27 @@ void fn_1_8838(unkStruct8* arg0) { temp_r31->unk34 &= ~4; } -s8 fn_1_8D08(u8 arg0) { - unkStruct7* data; - unkStruct8Sub* var_r30; +s8 fn_1_8D08(u8 arg0) +{ + unkStruct7 *data; + unkStruct8Sub *var_r30; - data = (unkStruct7*)lbl_1_bss_3A0[arg0]->data; + data = (unkStruct7 *)lbl_1_bss_3A0[arg0]->data; var_r30 = fn_1_CCCC(data->unk57, 1); return var_r30->unk70[0]; } -void fn_1_8D6C(unkStruct8* arg0) { +void fn_1_8D6C(unkStruct8 *arg0) +{ Vec sp20; Vec sp14; Vec sp8; s32 temp_r28; s32 var_r27; f32 var_f31; - unkStruct10* var_r29; - unkStruct7* temp_r30; - unkStruct8Sub* temp_r31; + unkStruct10 *var_r29; + unkStruct7 *temp_r30; + unkStruct8Sub *temp_r31; temp_r31 = &arg0->unk3C[0]; if ((temp_r31->unk34 & 4) == 0) { @@ -641,19 +636,20 @@ void fn_1_8D6C(unkStruct8* arg0) { if (!(var_f31 >= 2250.0f) && (var_r29->unk2 == 3)) { var_r29->unk2 = 4; temp_r31->unk34 |= 4; - temp_r30 = (unkStruct7*)lbl_1_bss_3A0[temp_r31->unk70[0]]->data; + temp_r30 = (unkStruct7 *)lbl_1_bss_3A0[temp_r31->unk70[0]]->data; if (var_r29->unk48 == lbl_1_bss_106) { - espAttrSet(temp_r30->unk5A[temp_r30->unk59][0], 4); - espAttrReset(temp_r30->unk5A[temp_r30->unk59][1], 4); + espAttrSet(temp_r30->unk5A[temp_r30->unk59][0], HUSPR_ATTR_DISPOFF); + espAttrReset(temp_r30->unk5A[temp_r30->unk59][1], HUSPR_ATTR_DISPOFF); HuAudFXPlay(9); temp_r30->unk59++; omVibrate(temp_r30->unk0, 0xC, 6, 6); if (temp_r30->unk59 < 3) { temp_r30->unk60++; } - } else if (temp_r30->unk59 != 0) { - espAttrReset(temp_r30->unk5A[temp_r30->unk59][0], 4); - espAttrSet(temp_r30->unk5A[temp_r30->unk59][1], 4); + } + else if (temp_r30->unk59 != 0) { + espAttrReset(temp_r30->unk5A[temp_r30->unk59][0], HUSPR_ATTR_DISPOFF); + espAttrSet(temp_r30->unk5A[temp_r30->unk59][1], HUSPR_ATTR_DISPOFF); } } } @@ -682,35 +678,36 @@ void fn_1_8D6C(unkStruct8* arg0) { } } -void fn_1_91C0(omObjData* arg0) { +void fn_1_91C0(omObjData *arg0) +{ s32 var_r28; s32 var_r30; - unkStruct10* var_r31; + unkStruct10 *var_r31; lbl_1_bss_108 = 0; var_r28 = Hu3DModelCreateFile(0x20000); arg0->model[0] = var_r28; - Hu3DModelAttrSet(var_r28, 0x40000001); + Hu3DModelAttrSet(var_r28, HU3D_MOTATTR_LOOP); for (var_r30 = 0; var_r30 < 3; var_r30++) { - arg0->motion[var_r30] = Hu3DJointMotion(var_r28, HuDataSelHeapReadNum(var_r30 + DATA_MAKE_NUM(DATADIR_M409, 0x0F), MEMORY_DEFAULT_NUM, HEAP_DATA)); + arg0->motion[var_r30] + = Hu3DJointMotion(var_r28, HuDataSelHeapReadNum(var_r30 + DATA_MAKE_NUM(DATADIR_M409, 0x0F), MEMORY_DEFAULT_NUM, HEAP_DATA)); } Hu3DMotionSet(var_r28, arg0->motion[0]); omSetTra(arg0, 419.99997f, 250.0f, -180.0f); omSetRot(arg0, 0.0f, -30.0f, 0.0f); - + for (var_r30 = 0; var_r30 < 4; var_r30++) { arg0->work[var_r30] = 0; } - + for (var_r30 = 0; var_r30 < 8; var_r30++) { var_r28 = Hu3DModelCreateFile(var_r30 + DATA_MAKE_NUM(DATADIR_M409, 0x1B)); arg0->model[var_r30 + 1] = var_r28; - Hu3DModelAttrSet(var_r28, 1); + Hu3DModelAttrSet(var_r28, HU3D_ATTR_DISPOFF); } lbl_1_bss_104 = 0; - - + for (var_r31 = lbl_1_bss_10C, var_r30 = 0; var_r30 < 8; var_r30++, var_r31++) { var_r28 = Hu3DModelCreateFile(var_r30 + DATA_MAKE_NUM(DATADIR_M409, 0x13)); var_r31->unk0 = var_r28; @@ -738,15 +735,16 @@ void fn_1_91C0(omObjData* arg0) { arg0->func = fn_1_962C; } -void fn_1_962C(omObjData* arg0) { +void fn_1_962C(omObjData *arg0) +{ s32 sp8[7]; - unkStruct10* var_r31; + unkStruct10 *var_r31; s32 var_r29; s32 var_r28; s32 var_r27; s32 var_r26; f32 var_f31; - + var_r27 = 0; var_r31 = &lbl_1_bss_10C[0]; @@ -756,11 +754,14 @@ void fn_1_962C(omObjData* arg0) { lbl_1_bss_108++; } for (var_r29 = 0; var_r29 < 4; var_r29++) { - if (lbl_1_bss_38C[var_r29] == 0) break; + if (lbl_1_bss_38C[var_r29] == 0) + break; } - if (var_r29 < 4) break; - if (lbl_1_bss_104 == 0) break; - + if (var_r29 < 4) + break; + if (lbl_1_bss_104 == 0) + break; + lbl_1_bss_108 = 6; break; case 1: @@ -777,7 +778,7 @@ void fn_1_962C(omObjData* arg0) { lbl_1_bss_108++; break; case 3: - Hu3DModelAttrReset(var_r26 = arg0->model[lbl_1_bss_106 + 1], 1); + Hu3DModelAttrReset(var_r26 = arg0->model[lbl_1_bss_106 + 1], HU3D_ATTR_DISPOFF); Hu3DModelHookSet(arg0->model[0], "g001mk-itemhook_r", var_r26); Hu3DMotionShiftSet(arg0->model[0], arg0->motion[1], 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuAudFXPlay(0x558); @@ -809,12 +810,12 @@ void fn_1_962C(omObjData* arg0) { lbl_1_bss_108 = 0; Hu3DModelHookReset(arg0->model[0]); Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); - Hu3DModelAttrSet(arg0->model[lbl_1_bss_106 + 1], 1); + Hu3DModelAttrSet(arg0->model[lbl_1_bss_106 + 1], HU3D_ATTR_DISPOFF); } break; case 6: fn_1_2414(7, 4); - fn_1_23EC(lbl_1_bss_104- 1); + fn_1_23EC(lbl_1_bss_104 - 1); lbl_1_bss_108++; break; case 7: @@ -827,7 +828,7 @@ void fn_1_962C(omObjData* arg0) { switch (var_r31->unk2) { case 0: - Hu3DModelAttrSet(var_r31->unk0, 1); + Hu3DModelAttrSet(var_r31->unk0, HU3D_ATTR_DISPOFF); var_r31->unkC.x = var_r31->unkC.y = var_r31->unkC.z = 0.0f; continue; case 1: @@ -835,7 +836,7 @@ void fn_1_962C(omObjData* arg0) { var_r31->unkC.y = (fn_1_ABB4() / 65536.0f) * 100.0f; var_r31->unkC.z = -1200.0f; Hu3DModelPosSet(var_r31->unk0, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); - Hu3DModelAttrSet(var_r31->unk0, 1); + Hu3DModelAttrSet(var_r31->unk0, HU3D_ATTR_DISPOFF); fn_1_EC1C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 2.0f, 2.0f, 1.0f); var_r31->unk18.z = ((fn_1_ABB4() - 0x8000) / 32768.0f) * 60.0f; var_r31->unk4 = ((100.0f - var_r31->unkC.y) * 0.5f); @@ -843,7 +844,8 @@ void fn_1_962C(omObjData* arg0) { var_r31->unk4C = ((fn_1_ABB4() - 0x8000) / 32768.0f) * 360.0f; var_r31->unk2++; case 2: - if (--var_r31->unk4 != 0) break; + if (--var_r31->unk4 != 0) + break; var_r31->unk4 = 1; var_r31->unk2++; case 3: @@ -852,7 +854,8 @@ void fn_1_962C(omObjData* arg0) { if (var_r31->unk18.z >= 0.0f) { var_r31->unk18.z = 0.0f; } - } else { + } + else { var_r31->unk18.z -= 0.08f; if (var_r31->unk18.z <= 0.0f) { var_r31->unk18.z = 0.0f; @@ -864,7 +867,7 @@ void fn_1_962C(omObjData* arg0) { var_r31->unkC.x += sind(var_r31->unk18.z) * var_r31->unk8; var_r31->unkC.y += cosd(var_r31->unk18.z) * var_r31->unk8; if (var_r31->unkC.y >= 200.0) { - Hu3DModelAttrReset(var_r31->unk0, 1); + Hu3DModelAttrReset(var_r31->unk0, HU3D_ATTR_DISPOFF); } if (var_r31->unkC.x >= 550.0f) { var_r31->unk18.z = -((fn_1_ABB4() / 65536.0f) * 20.0f); @@ -877,13 +880,15 @@ void fn_1_962C(omObjData* arg0) { } break; case 4: - if (--var_r31->unk4 != 0) break; - Hu3DModelAttrSet(var_r31->unk0, 1); + if (--var_r31->unk4 != 0) + break; + Hu3DModelAttrSet(var_r31->unk0, HU3D_ATTR_DISPOFF); fn_1_E85C(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); fn_1_EE68(lbl_1_bss_F0.unk6, lbl_1_bss_F0.unk8, 4); if (lbl_1_bss_106 == var_r31->unk48) { HuAudFXPlay(0x557); - } else { + } + else { HuAudFXPlay(0x55A); } if (var_r31->unk48 == arg0->work[1]) { @@ -913,7 +918,8 @@ void fn_1_962C(omObjData* arg0) { if (var_r31->unkC.x <= -150.0f) { var_r31->unkC.x = -150.0f; } - } else { + } + else { var_r27++; } @@ -921,15 +927,17 @@ void fn_1_962C(omObjData* arg0) { Hu3DModelPosSet(var_r31->unk0, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); var_f31 = sin((var_r31->unk4C * M_PI) / 180.0); var_r31->unk4C += 3.0f; - Hu3DModelRotSet(var_r31->unk0, 8.0 * sin((var_r31->unk4C * 0.3 * M_PI) / 180.0), var_r31->unk4C * 0.05f, (-var_r31->unk18.z * 0.25f) + (var_f31 * 8.0f)); + Hu3DModelRotSet( + var_r31->unk0, 8.0 * sin((var_r31->unk4C * 0.3 * M_PI) / 180.0), var_r31->unk4C * 0.05f, (-var_r31->unk18.z * 0.25f) + (var_f31 * 8.0f)); } - + if (lbl_1_bss_108 == 2 && var_r27 >= arg0->work[0]) { lbl_1_bss_108++; } } -s32 fn_1_A584(unkStruct10* arg0) { +s32 fn_1_A584(unkStruct10 *arg0) +{ s32 sp20[8]; Vec sp14; Vec sp8; @@ -938,7 +946,7 @@ s32 fn_1_A584(unkStruct10* arg0) { f32 var_f31; s32 var_r28; s32 var_r29; - unkStruct10* var_r31; + unkStruct10 *var_r31; if ((arg0->unk2 == 0) || (arg0->unk2 >= 4U)) { return 0; @@ -947,7 +955,7 @@ s32 fn_1_A584(unkStruct10* arg0) { var_r28 = 0; sp14.x = sp14.y = sp14.z = 0.0f; var_r31 = lbl_1_bss_10C; - + for (var_r29 = 0; var_r29 < 8; var_r29++, var_r31++) { if ((var_r31->unk2 != 0) && (var_r31->unk2 < 4U) && (var_r31 != arg0)) { sp8.x = arg0->unkC.x - var_r31->unkC.x; @@ -981,7 +989,7 @@ s32 fn_1_A584(unkStruct10* arg0) { } arg0->unk18.z = var_f31 = fn_1_AD40(arg0->unk18.z, var_f31, 0.5f); var_r31 = lbl_1_bss_10C; - + for (var_r29 = 0; var_r29 < 8; var_r29++, var_r31++) { if ((var_r31 != arg0) && (var_r31->unk2 != 0) && (var_r31->unk2 < 4U)) { sp8.x = var_r31->unkC.x - arg0->unkC.x; @@ -1009,23 +1017,25 @@ s32 fn_1_A584(unkStruct10* arg0) { return 1; } -s8 fn_1_A9C0(Vec* arg0, f32* arg1) { +s8 fn_1_A9C0(Vec *arg0, f32 *arg1) +{ f32 sp8; f32 temp_f29; f32 var_f30; f32 var_f28; s32 var_r27; s32 var_r29; - unkStruct10* var_r31; + unkStruct10 *var_r31; var_r27 = -1; var_r31 = lbl_1_bss_10C; var_f30 = *arg1; var_f30 *= var_f30; - + for (var_r29 = 0; var_r29 < 8; var_r29++, var_r31++) { if (((Hu3DModelAttrGet(var_r31->unk0) & 1) == 0) && !(var_r31->unkC.y < 300.0f)) { - temp_f29 = ((arg0->z - var_r31->unkC.z) * (arg0->z - var_r31->unkC.z)) + (((arg0->x - var_r31->unkC.x) * (arg0->x - var_r31->unkC.x)) + ((arg0->y - var_r31->unkC.y) * (arg0->y - var_r31->unkC.y))); + temp_f29 = ((arg0->z - var_r31->unkC.z) * (arg0->z - var_r31->unkC.z)) + + (((arg0->x - var_r31->unkC.x) * (arg0->x - var_r31->unkC.x)) + ((arg0->y - var_r31->unkC.y) * (arg0->y - var_r31->unkC.y))); if (!(temp_f29 > var_f30)) { var_r27 = var_r29; var_f30 = temp_f29; @@ -1038,21 +1048,23 @@ s8 fn_1_A9C0(Vec* arg0, f32* arg1) { u32 lbl_1_data_1EC = 0x41C64E6D; -s32 fn_1_ABB4(void) { +s32 fn_1_ABB4(void) +{ lbl_1_data_1EC *= 0x41C64E6D; lbl_1_data_1EC += 0x3039; return (lbl_1_data_1EC >> 0x10); } -void fn_1_AC08(s32* arg0, s32 arg1) { +void fn_1_AC08(s32 *arg0, s32 arg1) +{ s32 temp_r29; s32 temp_r30; s32 var_r31; - + for (var_r31 = 0; var_r31 < arg1; var_r31++) { arg0[var_r31] = var_r31; } - + for (var_r31 = 0; var_r31 < arg1; var_r31++) { temp_r30 = (arg1 * (fn_1_ABB4() / 65536.0f)); temp_r29 = arg0[var_r31]; @@ -1061,7 +1073,8 @@ void fn_1_AC08(s32* arg0, s32 arg1) { } } -f32 fn_1_AD40(f32 arg0, f32 arg1, f32 arg2) { +f32 fn_1_AD40(f32 arg0, f32 arg1, f32 arg2) +{ f32 var_f31; f32 var_f30; f32 var_f29; @@ -1083,7 +1096,8 @@ f32 fn_1_AD40(f32 arg0, f32 arg1, f32 arg2) { return var_f31; } -f32 fn_1_AE94(f32 arg8, f32 arg9, f32 argA, f32 argB) { +f32 fn_1_AE94(f32 arg8, f32 arg9, f32 argA, f32 argB) +{ f32 temp_f31; f32 var_f30; @@ -1092,7 +1106,8 @@ f32 fn_1_AE94(f32 arg8, f32 arg9, f32 argA, f32 argB) { return var_f30; } -void fn_1_AF0C(f32* arg0, f32* arg1, f32* arg2, f32* arg3, f32 arg8) { +void fn_1_AF0C(f32 *arg0, f32 *arg1, f32 *arg2, f32 *arg3, f32 arg8) +{ s32 var_r31; for (var_r31 = 0; var_r31 < 3; var_r31++) { @@ -1101,14 +1116,16 @@ void fn_1_AF0C(f32* arg0, f32* arg1, f32* arg2, f32* arg3, f32 arg8) { } } -f32 fn_1_B028(f32 arg8, f32 arg9, f32 argA, f32 argB) { +f32 fn_1_B028(f32 arg8, f32 arg9, f32 argA, f32 argB) +{ f32 var_f31; var_f31 = (2.0 * ((arg8 * argB) + (((arg8 - 1.0) * arg9) + ((1.0 - (2.0 * arg8)) * argA)))); return var_f31; } -void fn_1_B0A0(f32* arg0, f32* arg1, f32* arg2, f32* arg3, f32 arg8) { +void fn_1_B0A0(f32 *arg0, f32 *arg1, f32 *arg2, f32 *arg3, f32 arg8) +{ f32 spC[3]; f32 var_f29; s32 var_r31; @@ -1116,22 +1133,24 @@ void fn_1_B0A0(f32* arg0, f32* arg1, f32* arg2, f32* arg3, f32 arg8) { for (var_r31 = 0; var_r31 < 3; var_r31++) { spC[var_r31] = fn_1_B028(arg8, *arg0++, *arg1++, *arg2++); } - + var_f29 = sqrtf((spC[2] * spC[2]) + ((spC[0] * spC[0]) + (spC[1] * spC[1]))); - + if (var_f29) { var_f29 = (1.0 / var_f29); for (var_r31 = 0; var_r31 < 3; var_r31++) { *arg3++ = var_f29 * spC[var_r31]; } - } else { + } + else { *arg3++ = 0.0f; *arg3++ = 0.0f; *arg3++ = 1.0f; } } -f32 fn_1_B378(Vec* arg0) { +f32 fn_1_B378(Vec *arg0) +{ f32 var_f30; f32 var_f29; @@ -1142,24 +1161,28 @@ f32 fn_1_B378(Vec* arg0) { arg0->x *= var_f29; arg0->y *= var_f29; arg0->z *= var_f29; - } else { + } + else { arg0->x = arg0->y = arg0->z = 0.0f; } return var_f30; } -f32 fn_1_B510(Vec arg0, Vec arg1, Vec* arg2, f32 arg8) { +f32 fn_1_B510(Vec arg0, Vec arg1, Vec *arg2, f32 arg8) +{ if (arg8 <= 0.0f) { arg2->x = arg0.x; arg2->y = arg0.y; arg2->z = arg0.z; arg8 = 0.0f; - } else if (arg8 >= 1.0f) { + } + else if (arg8 >= 1.0f) { arg2->x = (arg0.x + arg1.x); arg2->y = (arg0.y + arg1.y); arg2->z = (arg0.z + arg1.z); arg8 = 1.0f; - } else { + } + else { arg2->x = (arg0.x + (arg8 * arg1.x)); arg2->y = (arg0.y + (arg8 * arg1.y)); arg2->z = (arg0.z + (arg8 * arg1.z)); @@ -1167,7 +1190,8 @@ f32 fn_1_B510(Vec arg0, Vec arg1, Vec* arg2, f32 arg8) { return arg8; } -f32 fn_1_B5E8(Vec arg0, Vec arg1, Vec arg2) { +f32 fn_1_B5E8(Vec arg0, Vec arg1, Vec arg2) +{ f32 temp_f30; f32 var_f31; @@ -1179,25 +1203,31 @@ f32 fn_1_B5E8(Vec arg0, Vec arg1, Vec arg2) { return var_f31; } -f32 fn_1_B6A4(Vec* arg0, Vec* arg1, Vec* arg2) { +f32 fn_1_B6A4(Vec *arg0, Vec *arg1, Vec *arg2) +{ Vec sp44; f32 var_f31; if (((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y))) == 0.0f) { - return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); - } else { + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + } + else { var_f31 = fn_1_B5E8(*arg0, *arg1, *arg2); fn_1_B510(*arg1, *arg2, &sp44, var_f31); return ((arg0->z - sp44.z) * (arg0->z - sp44.z)) + (((arg0->x - sp44.x) * (arg0->x - sp44.x)) + ((arg0->y - sp44.y) * (arg0->y - sp44.y))); } } -f32 fn_1_B9E0(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { +f32 fn_1_B9E0(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ f32 var_f31; - + if (((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y))) == 0.0f) { - return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); - } else { + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + } + else { var_f31 = fn_1_B5E8(*arg0, *arg1, *arg2); fn_1_B510(*arg1, *arg2, arg3, var_f31); } @@ -1207,9 +1237,10 @@ f32 fn_1_B9E0(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { return fn_1_B378(arg4); } -void fn_1_BE90(ModelData *model, ParticleData *particle, Mtx matrix) { +void fn_1_BE90(ModelData *model, ParticleData *particle, Mtx matrix) +{ s32 var_r29; - HsfanimStruct01* var_r31; + HsfanimStruct01 *var_r31; var_r31 = particle->unk_48; for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { @@ -1221,9 +1252,10 @@ void fn_1_BE90(ModelData *model, ParticleData *particle, Mtx matrix) { DCFlushRange(particle->unk_48, particle->unk_30 * 0x44); } -f32 fn_1_BF38(s16 arg0) { - MotionData* motionData; - HsfMotion* hsfMotionData; +f32 fn_1_BF38(s16 arg0) +{ + MotionData *motionData; + HsfMotion *hsfMotionData; f32 length; motionData = &Hu3DMotion[arg0]; diff --git a/src/REL/m410Dll/game.c b/src/REL/m410Dll/game.c index 37a73771..8a0010a8 100644 --- a/src/REL/m410Dll/game.c +++ b/src/REL/m410Dll/game.c @@ -78,7 +78,8 @@ void fn_1_34C0(omObjData *object) for (var_r30 = 0; var_r30 < 3; var_r30++) { if (!var_r30) { object->model[var_r30] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M410, 12)); - } else { + } + else { object->model[var_r30] = Hu3DModelLink(*object->model); } Hu3DModelPosSet(object->model[var_r30], 0.0f, 140.0f + (140.0f * var_r30), -790.0f); @@ -98,43 +99,44 @@ void fn_1_3614(omObjData *object) s16 var_r28; switch (object->work[0]) { - case 0: - if (fn_1_2804() == 1) { - object->work[0]++; - object->work[1] = 256; - } - break; - case 1: - if (!--object->work[1]) { - object->work[0]++; - object->work[1] = 90; - lbl_1_bss_50 = 0.0f; - lbl_1_bss_4C = -10.000001f; - lbl_1_bss_48 = 2.0000002f; - lbl_1_bss_34 = HuAudFXPlay(1381); - } - break; - case 2: - if (!--object->work[1]) { - object->work[0]++; - lbl_1_bss_4C = 0.0f; - lbl_1_bss_48 = 0.40000007f; - } - break; - case 3: - if (fn_1_281C() == 2) { - object->work[0]++; - lbl_1_bss_4C = -2.0000002f; - lbl_1_bss_48 = 0.05000001f; - } - break; + case 0: + if (fn_1_2804() == 1) { + object->work[0]++; + object->work[1] = 256; + } + break; + case 1: + if (!--object->work[1]) { + object->work[0]++; + object->work[1] = 90; + lbl_1_bss_50 = 0.0f; + lbl_1_bss_4C = -10.000001f; + lbl_1_bss_48 = 2.0000002f; + lbl_1_bss_34 = HuAudFXPlay(1381); + } + break; + case 2: + if (!--object->work[1]) { + object->work[0]++; + lbl_1_bss_4C = 0.0f; + lbl_1_bss_48 = 0.40000007f; + } + break; + case 3: + if (fn_1_281C() == 2) { + object->work[0]++; + lbl_1_bss_4C = -2.0000002f; + lbl_1_bss_48 = 0.05000001f; + } + break; } if (fn_1_281C() == 2) { if (!--lbl_1_data_D8) { lbl_1_bss_4C = -lbl_1_bss_4C; lbl_1_data_D8 = 900; } - } else if (fn_1_281C() > 2) { + } + else if (fn_1_281C() > 2) { lbl_1_bss_4C = 0.0f; } if (lbl_1_bss_50 != lbl_1_bss_4C) { @@ -143,7 +145,8 @@ void fn_1_3614(omObjData *object) if (lbl_1_bss_50 > lbl_1_bss_4C) { lbl_1_bss_50 = lbl_1_bss_4C; } - } else { + } + else { lbl_1_bss_50 -= lbl_1_bss_48; if (lbl_1_bss_50 < lbl_1_bss_4C) { lbl_1_bss_50 = lbl_1_bss_4C; @@ -159,7 +162,8 @@ void fn_1_3614(omObjData *object) var_f31 = (0.5 * (16384.0 * fabs(lbl_1_bss_50))) - 8191.0; if (var_f31 < -8191.0f) { var_f31 = -8191.0f; - } else if (var_f31 > 8191.0f) { + } + else if (var_f31 > 8191.0f) { var_f31 = 8191.0f; } HuAudFXPitchSet(lbl_1_bss_34, var_f31); @@ -169,7 +173,8 @@ void fn_1_3614(omObjData *object) var_r30 = &Hu3DData[object->model[var_r29]]; if (var_r29 & 1) { var_f29 = lbl_1_bss_50; - } else { + } + else { var_f29 = -lbl_1_bss_50; } var_f30 = var_f29; @@ -178,7 +183,8 @@ void fn_1_3614(omObjData *object) if (var_r30->pos.x <= -40.0f) { var_r30->pos.x += 40.0f; } - } else { + } + else { if (var_r30->pos.x >= 40.0f) { var_r30->pos.x -= 40.0f; } @@ -212,7 +218,7 @@ void fn_1_3BE0(s16 arg0) // what happens with the argument? var_r24 = 0; if (omPauseChk()) { - + return; } @@ -310,7 +316,8 @@ void fn_1_3BE0(s16 arg0) // what happens with the argument? for (var_r26 = 0; var_r26 < 18; var_r26++, var_r28++) { if (var_r30->unk_40 != var_r28 || var_r28->unk_40 != var_r30) { - var_f31 = fn_1_4FEC(var_r30->unk_04, var_r30->unk_1C, var_r30->unk_28, var_r28->unk_04, var_r28->unk_1C, var_r28->unk_28, var_r28->unk_2C); + var_f31 = fn_1_4FEC( + var_r30->unk_04, var_r30->unk_1C, var_r30->unk_28, var_r28->unk_04, var_r28->unk_1C, var_r28->unk_28, var_r28->unk_2C); if (var_f31 >= 0.0f && var_f31 < var_f30) { var_r30->unk_00_field5 = 0; if (var_f31 <= var_f29) { @@ -346,40 +353,40 @@ void fn_1_3BE0(s16 arg0) // what happens with the argument? } for (var_r29 = 0; var_r29 < var_r27; var_r29++) { switch (sp1B0[var_r29].unk_00) { - case 0: - fn_1_5AF4(sp1B0[var_r29].unk_08, sp1B0[var_r29].unk_04); - sp1B0[var_r29].unk_08->unk_40 = NULL; - sp1B0[var_r29].unk_08->unk_3C++; - break; - case 1: - fn_1_61DC(sp1B0[var_r29].unk_08, sp1B0[var_r29].unk_0C_unk); - sp1B0[var_r29].unk_08->unk_40 = sp1B0[var_r29].unk_0C_unk; - sp1B0[var_r29].unk_0C_unk->unk_40 = sp1B0[var_r29].unk_08; - sp1B0[var_r29].unk_08->unk_3C++; - sp1B0[var_r29].unk_0C_unk->unk_3C++; - break; - case 2: - fn_1_66B8(sp1B0[var_r29].unk_08, sp1B0[var_r29].unk_0C_unk); - sp1B0[var_r29].unk_08->unk_40 = sp1B0[var_r29].unk_0C_unk; - sp1B0[var_r29].unk_08->unk_3C++; - break; - case 3: - fn_1_6364(sp1B0[var_r29].unk_08, sp1B0[var_r29].unk_0C_unk); - sp1B0[var_r29].unk_08->unk_40 = sp1B0[var_r29].unk_0C_unk; - sp1B0[var_r29].unk_0C_unk->unk_40 = sp1B0[var_r29].unk_08; - sp1B0[var_r29].unk_08->unk_3C++; - sp1B0[var_r29].unk_08->unk_44 = 2; - if (VECMag(&sp1B0[var_r29].unk_08->unk_1C) > 10.0f) { - HuAudFXPlay(1377); - } - break; + case 0: + fn_1_5AF4(sp1B0[var_r29].unk_08, sp1B0[var_r29].unk_04); + sp1B0[var_r29].unk_08->unk_40 = NULL; + sp1B0[var_r29].unk_08->unk_3C++; + break; + case 1: + fn_1_61DC(sp1B0[var_r29].unk_08, sp1B0[var_r29].unk_0C_unk); + sp1B0[var_r29].unk_08->unk_40 = sp1B0[var_r29].unk_0C_unk; + sp1B0[var_r29].unk_0C_unk->unk_40 = sp1B0[var_r29].unk_08; + sp1B0[var_r29].unk_08->unk_3C++; + sp1B0[var_r29].unk_0C_unk->unk_3C++; + break; + case 2: + fn_1_66B8(sp1B0[var_r29].unk_08, sp1B0[var_r29].unk_0C_unk); + sp1B0[var_r29].unk_08->unk_40 = sp1B0[var_r29].unk_0C_unk; + sp1B0[var_r29].unk_08->unk_3C++; + break; + case 3: + fn_1_6364(sp1B0[var_r29].unk_08, sp1B0[var_r29].unk_0C_unk); + sp1B0[var_r29].unk_08->unk_40 = sp1B0[var_r29].unk_0C_unk; + sp1B0[var_r29].unk_0C_unk->unk_40 = sp1B0[var_r29].unk_08; + sp1B0[var_r29].unk_08->unk_3C++; + sp1B0[var_r29].unk_08->unk_44 = 2; + if (VECMag(&sp1B0[var_r29].unk_08->unk_1C) > 10.0f) { + HuAudFXPlay(1377); + } + break; } } var_f30 *= 1.0f - var_f29; var_r24++; } while (var_r24 < 100); - (void)var_r24; - + (void)var_r24; + for (var_r29 = 0; var_r29 < var_r25; var_r29++) { var_r31 = spC0[var_r29]; var_r31->unk_04.x += var_r31->unk_1C.x * var_f30; @@ -434,7 +441,8 @@ float fn_1_48D8(UnkM410Struct2 *arg0, u8 *arg1) if (0.0f != arg0->unk_1C.x) { if (arg0->unk_1C.x < 0.0f) { var_f29 = (-500.0f - arg0->unk_04.x + arg0->unk_28) / arg0->unk_1C.x; - } else { + } + else { var_f29 = (500.0f - arg0->unk_04.x - arg0->unk_28) / arg0->unk_1C.x; } var_f31 = var_f29; @@ -454,7 +462,8 @@ float fn_1_48D8(UnkM410Struct2 *arg0, u8 *arg1) if (var_f31 >= 0.0f && var_f31 < 1.0f) { if (var_f31 == var_f30) { *arg1 |= 2; - } else if (var_f31 < var_f30) { + } + else if (var_f31 < var_f30) { var_f30 = var_f31; *arg1 = 2; } @@ -468,7 +477,8 @@ float fn_1_48D8(UnkM410Struct2 *arg0, u8 *arg1) if (var_f31 >= 0.0f && var_f31 < 1.0f) { if (var_f31 == var_f30) { *arg1 |= 4; - } else if (var_f31 < var_f30) { + } + else if (var_f31 < var_f30) { *arg1 = 4; var_f30 = var_f31; } @@ -650,7 +660,8 @@ void fn_1_5AF4(UnkM410Struct2 *arg0, u8 arg1) if (fabs(arg0->unk_1C.y) > 10.0) { if (arg0->unk_04.z < -400.0f) { HuAudFXPlay(1380); - } else { + } + else { HuAudFXPlay(1379); } } @@ -697,7 +708,8 @@ void fn_1_5CA0(Vec arg0, Vec arg1, Vec arg2, Vec *arg3, Vec *arg4) var_f30 = var_f31 - var_f29; if (var_f30 < 0.001f) { arg3->x = arg3->y = arg3->z = 0.0f; - } else { + } + else { VECCrossProduct(&sp34, &sp28, &sp10); VECNormalize(&sp10, &sp10); VECCrossProduct(&sp28, &sp10, &sp1C); @@ -731,7 +743,8 @@ void fn_1_5EDC(UnkM410Struct2 *arg0, UnkM410Struct2 *arg1) arg0->unk_04.x += sp8.x * var_f30; arg0->unk_04.y += sp8.y * var_f30; arg0->unk_04.z += sp8.z * var_f30; - } else { + } + else { VECNormalize(&sp14, &sp14); arg0->unk_04.x -= sp14.x * var_f30; arg0->unk_04.y -= sp14.y * var_f30; @@ -781,7 +794,8 @@ void fn_1_61DC(UnkM410Struct2 *arg0, UnkM410Struct2 *arg1) if (arg0->unk_00_field1 || arg1->unk_00_field1) { if (arg0->unk_00_field1) { fn_1_5EDC(arg1, arg0); - } else { + } + else { fn_1_5EDC(arg0, arg1); } return; @@ -823,7 +837,8 @@ void fn_1_6364(UnkM410Struct2 *arg0, UnkM410Struct2 *arg1) arg0->unk_04.x += sp8.x * var_f31; arg0->unk_04.y += sp8.y * var_f31; arg0->unk_04.z += sp8.z * var_f31; - } else { + } + else { VECNormalize(&sp14, &sp14); arg0->unk_04.x -= sp14.x * var_f31; arg0->unk_04.y -= sp14.y * var_f31; @@ -882,11 +897,12 @@ void fn_1_67D4(omObjData *arg0) if ((var_r30 % 15) == 0) { arg0->model[var_r30] = Hu3DModelCreateFile(lbl_1_data_DC[GWPlayerCfg[var_r29->unk_34].character]); var_r28 = arg0->model[var_r30]; - } else { + } + else { arg0->model[var_r30] = Hu3DModelLink(var_r28); } var_r29->unk_30 = arg0->model[var_r30]; - Hu3DModelAttrSet(arg0->model[var_r30], 1); + Hu3DModelAttrSet(arg0->model[var_r30], HU3D_ATTR_DISPOFF); Hu3DModelShadowSet(arg0->model[var_r30]); } arg0->func = fn_1_6968; @@ -906,7 +922,7 @@ void fn_1_6968(omObjData *object) for (var_r30 = 0; var_r30 < 60; var_r30++, var_r31++) { if (!var_r31->unk_00_field0) { - Hu3DModelAttrSet(var_r31->unk_30, 1); + Hu3DModelAttrSet(var_r31->unk_30, HU3D_ATTR_DISPOFF); continue; } if (var_r31->unk_00_field1) { @@ -918,10 +934,12 @@ void fn_1_6968(omObjData *object) var_r31->unk_1C.y = var_f31 * sp8.y; var_r31->unk_1C.z = var_f31 * sp8.z; var_r31->unk_36--; - } else { + } + else { var_r31->unk_1C = sp8; } - } else { + } + else { var_r31->unk_1C.y += -0.95277786f; if (var_r31->unk_00_field3 && (fn_1_281C() != 4 || (fn_1_281C() == 4 && var_r31->unk_36 < 15))) { if (--var_r31->unk_36 == 0) { @@ -943,14 +961,16 @@ void fn_1_6968(omObjData *object) PSMTXConcat(sp14, var_r28->unk_F0, var_r28->unk_F0); } } - } else { + } + else { var_r31->unk_44--; } } if (var_r31->unk_00_field2) { - Hu3DModelAttrReset(var_r31->unk_30, 1); - } else { - Hu3DModelAttrSet(var_r31->unk_30, 1); + Hu3DModelAttrReset(var_r31->unk_30, HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrSet(var_r31->unk_30, HU3D_ATTR_DISPOFF); } Hu3DModelPosSet(object->model[var_r30], var_r31->unk_04.x, var_r31->unk_04.y, var_r31->unk_04.z); } @@ -960,12 +980,12 @@ void fn_1_6968(omObjData *object) for (var_r30 = 0; var_r30 < 60; var_r30++, var_r31++) { if (var_r31->unk_00_field0) { fn_1_7520(&var_r31->unk_04); - Hu3DModelAttrSet(var_r31->unk_30, 1); + Hu3DModelAttrSet(var_r31->unk_30, HU3D_ATTR_DISPOFF); var_r31->unk_00_field0 = 0; } } lbl_1_bss_58->func = NULL; - Hu3DModelAttrReset(lbl_1_bss_38, 1); + Hu3DModelAttrReset(lbl_1_bss_38, HU3D_ATTR_DISPOFF); fn_1_287C(4); } } @@ -992,8 +1012,8 @@ void fn_1_6DB4(omObjData *object) var_r31->unk_34 = var_r29 / 6; object->model[var_r29] = Hu3DModelCreateFile(lbl_1_data_104[var_r31->unk_34]); var_r28 = object->model[var_r29]; - (void)var_r28; - Hu3DModelAttrSet(object->model[var_r29], 0x40000002); + (void)var_r28; + Hu3DModelAttrSet(object->model[var_r29], HU3D_MOTATTR_PAUSE); Hu3DData[object->model[var_r29]].cluster_attr[0] = 0; var_r31->unk_30 = object->model[var_r29]; var_r31->unk_32 = var_r29; @@ -1010,15 +1030,16 @@ void fn_1_6DB4(omObjData *object) if (!var_r29) { object->model[var_r29 + 0x12] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M410, 10)); - } else { + } + else { object->model[var_r29 + 0x12] = Hu3DModelLink(object->model[18]); } Hu3DModelShadowMapSet(object->model[var_r29 + 18]); Hu3DModelPosSet(object->model[var_r29 + 18], var_r31->unk_04.x, var_r31->unk_04.y, var_r31->unk_04.z); if (!var_r29) { object->model[var_r29 + 36] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M410, 11)); - - } else { + } + else { object->model[var_r29 + 36] = Hu3DModelLink(object->model[36]); } Hu3DModelPosSet(object->model[var_r29 + 0x24], 20.0f + var_r31->unk_04.x, -10.0f + var_r31->unk_04.y, var_r31->unk_04.z); @@ -1037,7 +1058,8 @@ void fn_1_7138(omObjData *object) for (var_r29 = 0; var_r29 < 18; var_r29++, var_r31++) { if (var_r31->unk_34 & 1) { var_f31 = lbl_1_bss_50; - } else { + } + else { var_f31 = -lbl_1_bss_50; } var_r31->unk_1C.x = var_f31; @@ -1054,7 +1076,8 @@ void fn_1_7138(omObjData *object) var_r31->unk_04.x += 1500.0f; var_r31->unk_00_field6 = 1; } - } else if (var_r31->unk_04.x > 750.0f) { + } + else if (var_r31->unk_04.x > 750.0f) { var_r31->unk_04.x -= 1500.0f; var_r31->unk_00_field6 = 1; } @@ -1085,7 +1108,7 @@ void fn_1_7494(void) var_r31 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 2), MEMORY_DEFAULT_NUM)); lbl_1_bss_38 = Hu3DParticleCreate(var_r31, 60); Hu3DParticleHookSet(lbl_1_bss_38, fn_1_75A0); - Hu3DModelAttrSet(lbl_1_bss_38, 1); + Hu3DModelAttrSet(lbl_1_bss_38, HU3D_ATTR_DISPOFF); } void fn_1_7520(Vec *arg0) @@ -1120,10 +1143,10 @@ void fn_1_75A0(ModelData *model, ParticleData *particle, Mtx matrix) var_r30 = particle->unk_48; for (var_r29 = 0; var_r29 < particle->unk_02; var_r29++, var_r30++) { - var_r30->unk40.a = var_r28; // 43? + var_r30->unk40.a = var_r28; // 43? } if (--lbl_1_data_110 == 0) { - model->attr |= 1; + model->attr |= 1; } DCStoreRange(particle->unk_48, particle->unk_30 * 0x44); } @@ -1134,20 +1157,20 @@ s32 fn_1_76B8(Vec arg0, Vec arg1, u16 arg2) s32 var_r30; var_r31 = &var_r31[arg2 * 15]; - for(var_r30=0; var_r30<15; var_r30++, var_r31++) { - if (!var_r31->unk_00_field0) { - *(s16 *)var_r31 = 0; - var_r31->unk_00_field0 = 1; - var_r31->unk_00_field2 = 1; - var_r31->unk_04 = arg0; - var_r31->unk_1C = arg1; - var_r31->unk_28 = 30.000002f; - var_r31->unk_38 = NULL; - var_r31->unk_36 = 0; - return 1; - } - } - return 0; + for (var_r30 = 0; var_r30 < 15; var_r30++, var_r31++) { + if (!var_r31->unk_00_field0) { + *(s16 *)var_r31 = 0; + var_r31->unk_00_field0 = 1; + var_r31->unk_00_field2 = 1; + var_r31->unk_04 = arg0; + var_r31->unk_1C = arg1; + var_r31->unk_28 = 30.000002f; + var_r31->unk_38 = NULL; + var_r31->unk_36 = 0; + return 1; + } + } + return 0; } void fn_1_77A4(u16 arg0, u16 arg1, u16 arg2) @@ -1193,7 +1216,8 @@ void fn_1_7888(u16 arg0, u16 arg1, Vec *arg2) while (sp8.x < -750.0f) { sp8.x += 1500.0f; } - } else { + } + else { while (sp8.x > 750.0f) { sp8.x -= 1500.0f; } diff --git a/src/REL/m410Dll/player.c b/src/REL/m410Dll/player.c index dcbed261..133a5762 100644 --- a/src/REL/m410Dll/player.c +++ b/src/REL/m410Dll/player.c @@ -326,7 +326,7 @@ void fn_1_88D8(omObjData *object) case 1: if (fn_1_2834() == 1) { Hu3DModelHookReset(object->model[0]); - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); if ((1 << object->work[0]) & fn_1_2864()) { fn_1_9E0C(object, 8); } @@ -597,7 +597,7 @@ void fn_1_96F4(omObjData *object) if (var_r31->unk_14 && var_r31->unk_28) { var_r31->unk_14 = 0; var_r31->unk_28 = 0; - Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); var_r31->unk_36 = 0; var_r31->unk_70.x = object->trans.x; var_r31->unk_70.y = 100.0f + object->trans.y; @@ -647,7 +647,7 @@ s32 fn_1_9A90(omObjData *object) return var_r29; } if (!var_r31->unk_18) { - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); } if (var_r31->unk_18 && !var_r31->unk_1C && var_r31->unk_2C) { var_r31->unk_1C = 1; @@ -695,7 +695,7 @@ s32 fn_1_9C84(omObjData *object) var_r31 = object->data; var_r29 = 0; if (!var_r31->unk_18) { - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); } if (!var_r31->unk_20 && var_r31->unk_18 && !var_r31->unk_1C && var_r31->unk_30) { fn_1_9E0C(object, 3); diff --git a/src/REL/m410Dll/stage.c b/src/REL/m410Dll/stage.c index f4b8ac21..b7bbb218 100644 --- a/src/REL/m410Dll/stage.c +++ b/src/REL/m410Dll/stage.c @@ -22,9 +22,9 @@ void fn_1_31FC(omObjData *object) object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M410, 14)); object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M410, 15)); object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M410, 16)); - Hu3DModelAttrSet(object->model[3], 0x40000001); + Hu3DModelAttrSet(object->model[3], HU3D_MOTATTR_LOOP); object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M410, 17)); - Hu3DModelAttrSet(object->model[4], 0x40000001); + Hu3DModelAttrSet(object->model[4], HU3D_MOTATTR_LOOP); object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M410, 18)); object->func = fn_1_3350; } diff --git a/src/REL/m411Dll/main.c b/src/REL/m411Dll/main.c index 039d2e6b..0c45c86f 100755 --- a/src/REL/m411Dll/main.c +++ b/src/REL/m411Dll/main.c @@ -96,12 +96,12 @@ typedef struct { /* 0x060 */ float unk60; /* 0x064 */ float unk64; /* 0x068 */ float unk68; - /* 0x06C */ UnkBss474InnerStruct6C* unk6C[10]; - /* 0x094 */ UnkBss474InnerStruct6C* unk94[10]; - /* 0x0BC */ UnkBss474InnerStruct6C* unkBC[10]; + /* 0x06C */ UnkBss474InnerStruct6C *unk6C[10]; + /* 0x094 */ UnkBss474InnerStruct6C *unk94[10]; + /* 0x0BC */ UnkBss474InnerStruct6C *unkBC[10]; /* 0x0E4 */ UnkBss474InnerStructE4 unkE4[10]; - /* 0x24C */ AnimData* unk24C; - /* 0x250 */ AnimData* unk250; + /* 0x24C */ AnimData *unk24C; + /* 0x250 */ AnimData *unk250; /* 0x254 */ s8 unk254; /* 0x255 */ s8 unk255; /* 0x256 */ s8 unk256; @@ -113,13 +113,13 @@ typedef struct { } UnkBss474Struct; // Size 0x26C typedef struct { - /* 0x00 */ UnkBss474Struct* unk00; + /* 0x00 */ UnkBss474Struct *unk00; /* 0x04 */ s32 unk04; /* 0x08 */ s32 unk08; - /* 0x0C */ s32* unk0C; + /* 0x0C */ s32 *unk0C; } UnkFn64A3Struct; // Size unknown -void fn_1_E80(omObjData* arg0); +void fn_1_E80(omObjData *arg0); void fn_1_F8C(float arg0); void fn_1_1074(void); void fn_1_1498(s16 layer); @@ -127,11 +127,11 @@ s32 fn_1_1520(void); s32 fn_1_1C4C(void); s32 fn_1_20C8(void); void fn_1_25D0(void); -void fn_1_34B0(ModelData* model, ParticleData* particle, Mtx matrix, s32 arg3); -void fn_1_3A60(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_3A9C(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_3AD8(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_3B14(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_34B0(ModelData *model, ParticleData *particle, Mtx matrix, s32 arg3); +void fn_1_3A60(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_3A9C(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_3AD8(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_3B14(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_3B50(void); void fn_1_3F34(void); void fn_1_4218(void); @@ -148,14 +148,14 @@ void fn_1_5910(void); s8 fn_1_5D58(s32 arg0, s32 arg1); u8 fn_1_5E10(s32 arg0, s32 arg1); u16 fn_1_5ED0(s32 arg0); -void fn_1_5F3C(UnkBss474Struct* arg0, s32 arg1); -void fn_1_6428(UnkBss474Struct* arg0, s32 arg1); -void fn_1_6820(UnkBss474Struct* arg0, s32 arg1, s32 arg2); +void fn_1_5F3C(UnkBss474Struct *arg0, s32 arg1); +void fn_1_6428(UnkBss474Struct *arg0, s32 arg1); +void fn_1_6820(UnkBss474Struct *arg0, s32 arg1, s32 arg2); void fn_1_6A3C(void); void fn_1_6CF4(void); -void fn_1_6DD8(UnkBss474Struct* arg0, s32 arg1); +void fn_1_6DD8(UnkBss474Struct *arg0, s32 arg1); void fn_1_6E9C(s32 arg0, s32 arg1); -void fn_1_6F48(UnkBss474Struct* arg0, s32 arg1, s32 arg2); +void fn_1_6F48(UnkBss474Struct *arg0, s32 arg1, s32 arg2); void fn_1_75C8(void); void fn_1_7680(void); void fn_1_7738(void); @@ -186,102 +186,53 @@ s32 lbl_1_bss_E28; float lbl_1_bss_E24; UnkBss474Struct lbl_1_bss_474[4]; UnkBss138Struct lbl_1_bss_138; -omObjData* lbl_1_bss_134; -Process* lbl_1_bss_124[4]; +omObjData *lbl_1_bss_134; +Process *lbl_1_bss_124[4]; Vec lbl_1_bss_C4[8]; Vec lbl_1_bss_64[8]; Vec lbl_1_bss_4[8]; -void* lbl_1_bss_0; +void *lbl_1_bss_0; -float lbl_1_data_0[][7] = { - { -10.0f, 0.0f, 0.0f, 0.0f, 0.0f, -3375.0f, 7460.0f }, - { -9.5f, 0.0f, 0.0f, 0.0f, 0.0f, -510.0f, 1860.0f }, - { -5.0f, 0.0f, 0.0f, 0.0f, 0.0f, -2870.0f, 5060.0f } -}; +float lbl_1_data_0[][7] = { { -10.0f, 0.0f, 0.0f, 0.0f, 0.0f, -3375.0f, 7460.0f }, { -9.5f, 0.0f, 0.0f, 0.0f, 0.0f, -510.0f, 1860.0f }, + { -5.0f, 0.0f, 0.0f, 0.0f, 0.0f, -2870.0f, 5060.0f } }; -s32 lbl_1_data_54[] = { - DATA_MAKE_NUM(DATADIR_M411, 9), - DATA_MAKE_NUM(DATADIR_M411, 11), - DATA_MAKE_NUM(DATADIR_M411, 10) -}; +s32 lbl_1_data_54[] = { DATA_MAKE_NUM(DATADIR_M411, 9), DATA_MAKE_NUM(DATADIR_M411, 11), DATA_MAKE_NUM(DATADIR_M411, 10) }; -char* lbl_1_data_6C[] = { - "puzzle00", "puzzle00", "puzzle00" -}; +char *lbl_1_data_6C[] = { "puzzle00", "puzzle00", "puzzle00" }; -char* lbl_1_data_1C8[][10] = { - { - "puzzle_B1-p01", "puzzle_B1-p02", "puzzle_B1-p03", "puzzle_B1-p04", - "puzzle_B1-p05", "puzzle_B1-p06", "puzzle_B1-p07", "puzzle_B1-p08" - }, - { - "puzzle_B2-p01", "puzzle_B2-p02", "puzzle_B2-p03", "puzzle_B2-p04", - "puzzle_B2-p05", "puzzle_B2-p06", "puzzle_B2-p07", "puzzle_B2-p08" - }, - { - "puzzle_B3-p01", "puzzle_B3-p02", "puzzle_B3-p03", "puzzle_B3-p04", - "puzzle_B3-p05", "puzzle_B3-p06", "puzzle_B3-p07", "puzzle_B3-p08" - } -}; +char *lbl_1_data_1C8[][10] = { { "puzzle_B1-p01", "puzzle_B1-p02", "puzzle_B1-p03", "puzzle_B1-p04", "puzzle_B1-p05", "puzzle_B1-p06", + "puzzle_B1-p07", "puzzle_B1-p08" }, + { "puzzle_B2-p01", "puzzle_B2-p02", "puzzle_B2-p03", "puzzle_B2-p04", "puzzle_B2-p05", "puzzle_B2-p06", "puzzle_B2-p07", "puzzle_B2-p08" }, + { "puzzle_B3-p01", "puzzle_B3-p02", "puzzle_B3-p03", "puzzle_B3-p04", "puzzle_B3-p05", "puzzle_B3-p06", "puzzle_B3-p07", "puzzle_B3-p08" } }; s32 lbl_1_data_240[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; -s32 lbl_1_data_260[8] = { - DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0), - DATA_MAKE_NUM(DATADIR_LUIGIMDL1, 0), - DATA_MAKE_NUM(DATADIR_PEACHMDL1, 0), - DATA_MAKE_NUM(DATADIR_YOSHIMDL1, 0), - DATA_MAKE_NUM(DATADIR_WARIOMDL1, 0), - DATA_MAKE_NUM(DATADIR_DONKEYMDL1, 0), - DATA_MAKE_NUM(DATADIR_DAISYMDL1, 0), - DATA_MAKE_NUM(DATADIR_WALUIGIMDL1, 0) -}; +s32 lbl_1_data_260[8] = { DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0), DATA_MAKE_NUM(DATADIR_LUIGIMDL1, 0), DATA_MAKE_NUM(DATADIR_PEACHMDL1, 0), + DATA_MAKE_NUM(DATADIR_YOSHIMDL1, 0), DATA_MAKE_NUM(DATADIR_WARIOMDL1, 0), DATA_MAKE_NUM(DATADIR_DONKEYMDL1, 0), + DATA_MAKE_NUM(DATADIR_DAISYMDL1, 0), DATA_MAKE_NUM(DATADIR_WALUIGIMDL1, 0) }; -s32 lbl_1_data_280[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 1), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 5), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 32), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 33), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 23) -}; +s32 lbl_1_data_280[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_MAKE_NUM(DATADIR_MARIOMOT, 1), DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 5), DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), DATA_MAKE_NUM(DATADIR_MARIOMOT, 32), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 33), DATA_MAKE_NUM(DATADIR_MARIOMOT, 23) }; -s32 lbl_1_data_2A4[8] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 0), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 0), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 0), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0) -}; +s32 lbl_1_data_2A4[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0), DATA_MAKE_NUM(DATADIR_DAISYMOT, 0), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0) }; -s32 lbl_1_data_2C4[] = { - DATA_MAKE_NUM(DATADIR_M411, 27), - DATA_MAKE_NUM(DATADIR_M411, 28), - DATA_MAKE_NUM(DATADIR_M411, 23) -}; +s32 lbl_1_data_2C4[] = { DATA_MAKE_NUM(DATADIR_M411, 27), DATA_MAKE_NUM(DATADIR_M411, 28), DATA_MAKE_NUM(DATADIR_M411, 23) }; -s32 lbl_1_data_2D0[] = { - DATA_MAKE_NUM(DATADIR_M411, 30), - DATA_MAKE_NUM(DATADIR_M411, 31), - DATA_MAKE_NUM(DATADIR_M411, 32), - DATA_MAKE_NUM(DATADIR_M411, 33), - DATA_MAKE_NUM(DATADIR_M411, 34) -}; +s32 lbl_1_data_2D0[] = { DATA_MAKE_NUM(DATADIR_M411, 30), DATA_MAKE_NUM(DATADIR_M411, 31), DATA_MAKE_NUM(DATADIR_M411, 32), + DATA_MAKE_NUM(DATADIR_M411, 33), DATA_MAKE_NUM(DATADIR_M411, 34) }; -void ObjectSetup(void) { +void ObjectSetup(void) +{ Vec sp24; Vec sp18; Vec spC; float temp_f31; float temp_f30; float sp8; - Process* temp_r3; + Process *temp_r3; s32 var_r29; s32 i; @@ -319,7 +270,8 @@ void ObjectSetup(void) { Hu3DCameraScissorSet(0x10, 0x142, 0xF2, 0x13E, 0xEE); if (lbl_1_bss_E40 == 0) { lbl_1_bss_134 = omAddObjEx(temp_r3, 0x7FDA, 0, 0, -1, fn_1_E80); - } else { + } + else { lbl_1_bss_134 = omAddObjEx(temp_r3, 0x7FDA, 0, 0, -1, omOutViewMulti); } lbl_1_bss_134->work[0] = 5; @@ -397,29 +349,33 @@ void ObjectSetup(void) { WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); } -void fn_1_E80(omObjData* arg0) { +void fn_1_E80(omObjData *arg0) +{ s32 i; for (i = 0; i < arg0->work[0]; i++) { - Hu3DCameraPosSet(1 << i, lbl_1_bss_C4[i].x, lbl_1_bss_C4[i].y, lbl_1_bss_C4[i].z, lbl_1_bss_4[i].x, lbl_1_bss_4[i].y, lbl_1_bss_4[i].z, lbl_1_bss_64[i].x, lbl_1_bss_64[i].y, lbl_1_bss_64[i].z); + Hu3DCameraPosSet(1 << i, lbl_1_bss_C4[i].x, lbl_1_bss_C4[i].y, lbl_1_bss_C4[i].z, lbl_1_bss_4[i].x, lbl_1_bss_4[i].y, lbl_1_bss_4[i].z, + lbl_1_bss_64[i].x, lbl_1_bss_64[i].y, lbl_1_bss_64[i].z); } } -void fn_1_F8C(float arg0) { +void fn_1_F8C(float arg0) +{ lbl_1_bss_E24 = arg0; Hu3DTexScrollPosMoveSet(lbl_1_bss_E9E, -0.01f * arg0, 0.0f, 0.0f); Hu3DTexScrollPosMoveSet(lbl_1_bss_E9C, -0.017f * arg0, 0.0f, 0.0f); HuAudFXPitchSet(lbl_1_bss_E2C[0], -8191.0f * (1.0f - arg0)); } -void fn_1_1074(void) { +void fn_1_1074(void) +{ Mtx44 sp64; Mtx sp34; Vec sp28; Vec sp1C; Vec sp10; GXColor spC; - CameraData* var_r31; + CameraData *var_r31; var_r31 = &Hu3DCamera[0]; C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->near, var_r31->far); @@ -458,7 +414,8 @@ void fn_1_1074(void) { GXEnd(); } -void fn_1_1498(s16 layer) { +void fn_1_1498(s16 layer) +{ if (Hu3DCameraNo == 1) { GXSetTexCopySrc(0, 0, 320, 240); GXSetTexCopyDst(320, 240, GX_TF_RGB5A3, GX_FALSE); @@ -468,12 +425,13 @@ void fn_1_1498(s16 layer) { } } -s32 fn_1_1520(void) { - UnkBss138Struct* var_r30; - UnkBss138InnerStruct00* var_r31; - UnkBss138InnerStruct00* temp_r28; - Process* var_r23; - void* var_r26; +s32 fn_1_1520(void) +{ + UnkBss138Struct *var_r30; + UnkBss138InnerStruct00 *var_r31; + UnkBss138InnerStruct00 *temp_r28; + Process *var_r23; + void *var_r26; s16 var_r27; s16 var_r24; s16 var_r22; @@ -498,35 +456,37 @@ s32 fn_1_1520(void) { var_r31 = &var_r30->unkE4[0]; var_r26 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 17), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r31->unk00 = var_r27 = Hu3DModelCreate(var_r26); - Hu3DModelAttrSet(var_r27, 1); + Hu3DModelAttrSet(var_r27, HU3D_ATTR_DISPOFF); Hu3DModelCameraSet(var_r27, 1); var_r26 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 18), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r31->unk0C = var_r24 = Hu3DModelCreate(var_r26); - Hu3DModelAttrSet(var_r24, 1); + Hu3DModelAttrSet(var_r24, HU3D_ATTR_DISPOFF); Hu3DModelCameraSet(var_r24, 1); for (i = 1; i < 5; i++) { var_r31 = &var_r30->unkE4[i]; var_r31->unk00 = Hu3DModelLink(var_r27); - Hu3DModelAttrSet(var_r31->unk00, 1); + Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); Hu3DModelCameraSet(var_r31->unk00, 1); if (i == 1) { var_r26 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 19), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r31->unk0C = var_r22 = Hu3DModelCreate(var_r26); - } else if (i & 1) { + } + else if (i & 1) { var_r31->unk0C = Hu3DModelLink(var_r22); - } else { + } + else { var_r31->unk0C = Hu3DModelLink(var_r24); } - Hu3DModelAttrSet(var_r31->unk0C, 1); + Hu3DModelAttrSet(var_r31->unk0C, HU3D_ATTR_DISPOFF); Hu3DModelCameraSet(var_r31->unk0C, 1); } var_r26 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 17), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30->unk274[0].unk00 = var_r27 = Hu3DModelCreate(var_r26); - Hu3DModelAttrSet(var_r27, 1); + Hu3DModelAttrSet(var_r27, HU3D_ATTR_DISPOFF); Hu3DModelCameraSet(var_r27, 1); for (i = 1; i < 5; i++) { var_r30->unk274[i].unk00 = Hu3DModelLink(var_r27); - Hu3DModelAttrSet(var_r30->unk274[i].unk00, 1); + Hu3DModelAttrSet(var_r30->unk274[i].unk00, HU3D_ATTR_DISPOFF); Hu3DModelCameraSet(var_r30->unk274[i].unk00, 1); } var_r31 = &var_r30->unk1C[1]; @@ -546,7 +506,7 @@ s32 fn_1_1520(void) { var_r31->unk02[i] = Hu3DJointMotion(var_r27, var_r26); } Hu3DMotionSet(var_r27, var_r31->unk02[0]); - Hu3DModelAttrSet(var_r27, 0x40000001); + Hu3DModelAttrSet(var_r27, HU3D_MOTATTR_LOOP); Hu3DModelShadowSet(var_r27); temp_r28 = &var_r30->unk1C[2]; temp_r28->unk00 = Hu3DModelLink(var_r27); @@ -557,8 +517,8 @@ s32 fn_1_1520(void) { var_r26 = HuDataSelHeapReadNum(lbl_1_data_2C4[i], MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r28->unk02[i] = Hu3DJointMotion(var_r27, var_r26); } - Hu3DModelAttrSet(temp_r28->unk00, 0x800000); - Hu3DModelAttrSet(temp_r28->unk00, 0x40000001); + Hu3DModelAttrSet(temp_r28->unk00, HU3D_ATTR_CULL_FRONT); + Hu3DModelAttrSet(temp_r28->unk00, HU3D_MOTATTR_LOOP); Hu3DModelScaleSet(temp_r28->unk00, 1.0f, -1.0f, 1.0f); for (i = 0; i < 2; i++) { var_r31 = &var_r30->unk1AC[i]; @@ -572,7 +532,7 @@ s32 fn_1_1520(void) { var_r31->unk02[j] = Hu3DJointMotion(var_r27, var_r26); } Hu3DMotionSet(var_r27, var_r31->unk02[0]); - Hu3DModelAttrSet(var_r27, 0x40000001); + Hu3DModelAttrSet(var_r27, HU3D_MOTATTR_LOOP); var_r31->unk10.x = 200.0f; var_r31->unk10.y = 0.0f; var_r31->unk10.z = -930.0f; @@ -588,8 +548,8 @@ s32 fn_1_1520(void) { temp_r28->unk02[j] = Hu3DJointMotion(temp_r28->unk00, var_r26); } Hu3DModelCameraSet(temp_r28->unk00, 1); - Hu3DModelAttrSet(temp_r28->unk00, 0x800000); - Hu3DModelAttrSet(temp_r28->unk00, 0x40000001); + Hu3DModelAttrSet(temp_r28->unk00, HU3D_ATTR_CULL_FRONT); + Hu3DModelAttrSet(temp_r28->unk00, HU3D_MOTATTR_LOOP); Hu3DModelPosSet(temp_r28->unk00, var_r31->unk10.x, var_r31->unk10.y, var_r31->unk10.z); Hu3DModelScaleSet(temp_r28->unk00, 1.0f, -1.0f, 1.0f); } @@ -597,14 +557,15 @@ s32 fn_1_1520(void) { var_r23->user_data = var_r30; } -s32 fn_1_1C4C(void) { - UnkBss138Struct* var_r30; - UnkBss138InnerStruct00* var_r29; +s32 fn_1_1C4C(void) +{ + UnkBss138Struct *var_r30; + UnkBss138InnerStruct00 *var_r29; s16 var_r31; s16 sp8; s16 temp_r27; - Process* var_r26; - void* var_r28; + Process *var_r26; + void *var_r28; var_r30 = &lbl_1_bss_138; var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 35), MEMORY_DEFAULT_NUM, HEAP_DATA); @@ -619,7 +580,7 @@ s32 fn_1_1C4C(void) { var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 36), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r29->unk00 = var_r31 = Hu3DModelCreate(var_r28); Hu3DModelCameraSet(var_r31, 1); - Hu3DModelAttrSet(var_r31, 0x40000001); + Hu3DModelAttrSet(var_r31, HU3D_MOTATTR_LOOP); Hu3DModelShadowSet(var_r31); var_r29 = &var_r30->unk1C[1]; var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 38), MEMORY_DEFAULT_NUM, HEAP_DATA); @@ -628,7 +589,7 @@ s32 fn_1_1C4C(void) { Hu3DModelCameraSet(var_r31, 1); var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 39), MEMORY_DEFAULT_NUM, HEAP_DATA); Hu3DMotionSet(var_r31, Hu3DJointMotion(var_r31, var_r28)); - Hu3DModelAttrSet(var_r31, 0x40000001); + Hu3DModelAttrSet(var_r31, HU3D_MOTATTR_LOOP); Hu3DModelShadowSet(var_r31); var_r29 = &var_r30->unk1C[2]; var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 38), MEMORY_DEFAULT_NUM, HEAP_DATA); @@ -636,7 +597,7 @@ s32 fn_1_1C4C(void) { Hu3DModelCameraSet(var_r31, 1); var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 40), MEMORY_DEFAULT_NUM, HEAP_DATA); Hu3DMotionSet(var_r31, Hu3DJointMotion(var_r31, var_r28)); - Hu3DModelAttrSet(var_r31, 0x40000001); + Hu3DModelAttrSet(var_r31, HU3D_MOTATTR_LOOP); Hu3DModelPosSet(var_r31, 0.0f, 60.0f, -70.0f); Hu3DModelShadowSet(var_r31); var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 37), MEMORY_DEFAULT_NUM, HEAP_DATA); @@ -652,8 +613,8 @@ s32 fn_1_1C4C(void) { var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 45), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r29->unk02[2] = Hu3DJointMotion(var_r31, var_r28); Hu3DMotionSet(var_r31, var_r29->unk02[0]); - Hu3DModelAttrSet(var_r31, 1); - Hu3DModelAttrSet(var_r31, 0x40000001); + Hu3DModelAttrSet(var_r31, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31, HU3D_MOTATTR_LOOP); Hu3DModelHookSet(var_r31, "itemhook_r", temp_r27); Hu3DModelShadowSet(var_r31); var_r29 = &var_r30->unkE4[1]; @@ -667,19 +628,20 @@ s32 fn_1_1C4C(void) { var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 46), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r29->unk02[2] = Hu3DJointMotion(var_r31, var_r28); Hu3DMotionSet(var_r31, var_r29->unk02[0]); - Hu3DModelAttrSet(var_r31, 1); - Hu3DModelAttrSet(var_r31, 0x40000001); + Hu3DModelAttrSet(var_r31, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31, HU3D_MOTATTR_LOOP); Hu3DModelHookSet(var_r31, "itemhook_l", temp_r27); Hu3DModelShadowSet(var_r31); var_r26 = HuPrcChildCreate(fn_1_5384, 0x2000, 0x2000, 0, HuPrcCurrentGet()); var_r26->user_data = var_r30; } -s32 fn_1_20C8(void) { - UnkBss138Struct* var_r31; - UnkBss138InnerStruct00* temp_r29; - Process* var_r26; - void* var_r28; +s32 fn_1_20C8(void) +{ + UnkBss138Struct *var_r31; + UnkBss138InnerStruct00 *temp_r29; + Process *var_r26; + void *var_r28; s16 var_r30; s16 var_r25; s32 i; @@ -709,7 +671,7 @@ s32 fn_1_20C8(void) { Hu3DModelCameraSet(var_r30, 1); Hu3DModelPosSet(var_r30, var_r31->unk04.x, var_r31->unk04.y, var_r31->unk04.z); Hu3DModelRotSet(var_r30, var_r31->unk10.x, var_r31->unk10.y, var_r31->unk10.z); - Hu3DModelAttrSet(var_r30, 0x40000001); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); Hu3DMotionTimeSet(var_r30, Hu3DMotionMaxTimeGet(var_r30) / 4); temp_r29 = &var_r31->unk1C[1]; var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 49), MEMORY_DEFAULT_NUM, HEAP_DATA); @@ -718,14 +680,15 @@ s32 fn_1_20C8(void) { Hu3DModelCameraSet(var_r30, 1); Hu3DModelPosSet(var_r30, var_r31->unk04.x, var_r31->unk04.y, var_r31->unk04.z); Hu3DModelRotSet(var_r30, var_r31->unk10.x, var_r31->unk10.y, var_r31->unk10.z); - Hu3DModelAttrSet(var_r30, 0x40000001); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); Hu3DMotionTimeSet(var_r30, Hu3DMotionMaxTimeGet(var_r30) / 4); for (i = 0; i < 3; i++) { temp_r29 = &var_r31->unk1C[i + 2]; if (i == 0) { var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 50), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r29->unk00 = var_r30 = var_r25 = Hu3DModelCreate(var_r28); - } else { + } + else { temp_r29->unk00 = Hu3DModelLink(var_r25); } var_r30 = temp_r29->unk00; @@ -744,7 +707,7 @@ s32 fn_1_20C8(void) { temp_r29->unk10.x = temp_r29->unk10.y = temp_r29->unk10.z = 0.0f; Hu3DModelPosSet(var_r30, temp_r29->unk10.x, temp_r29->unk10.y, temp_r29->unk10.z); Hu3DModelRotSet(var_r30, 0.0f, -90.0f, 0.0f); - Hu3DModelAttrSet(var_r30, 0x40000001); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); Hu3DModelShadowSet(var_r30); Hu3DMotionSet(var_r30, temp_r29->unk02[0]); temp_r29 = &var_r31->unk1AC[0]; @@ -752,27 +715,23 @@ s32 fn_1_20C8(void) { var_r30 = Hu3DModelCreate(var_r28); temp_r29->unk00 = var_r30; Hu3DModelCameraSet(var_r30, 1); - Hu3DModelAttrSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); var_r26 = HuPrcChildCreate(fn_1_5910, 0x2000, 0x2000, 0, HuPrcCurrentGet()); var_r26->user_data = var_r31; } -ParticleHook lbl_1_data_30C[] = { - fn_1_3A60, - fn_1_3A9C, - fn_1_3AD8, - fn_1_3B14 -}; +ParticleHook lbl_1_data_30C[] = { fn_1_3A60, fn_1_3A9C, fn_1_3AD8, fn_1_3B14 }; -void fn_1_25D0(void) { +void fn_1_25D0(void) +{ u32 temp_r24; - UnkBss474Struct* temp_r31; - void* var_r28; - UnkBss474InnerStructE4* temp_r27; - UnkBss474DoublyInnerStruct6C* temp_r26; - AnimData* var_r21; - AnimData* var_r20; - Process* var_r23; + UnkBss474Struct *temp_r31; + void *var_r28; + UnkBss474InnerStructE4 *temp_r27; + UnkBss474DoublyInnerStruct6C *temp_r26; + AnimData *var_r21; + AnimData *var_r20; + Process *var_r23; s16 temp_r25; s32 var_r22; s32 i; @@ -832,9 +791,9 @@ void fn_1_25D0(void) { Hu3DModelPosSet(temp_r31->unk06, 0.0f, 0.0f, 0.0f); Hu3DModelRotSet(temp_r31->unk06, 0.0f, 0.0f, 0.0f); Hu3DModelTPLvlSet(temp_r31->unk06, 128.0f); - Hu3DModelAttrSet(temp_r31->unk06, 0x4000); + Hu3DModelAttrSet(temp_r31->unk06, HU3D_ATTR_NOCULL); for (j = 0; j < lbl_1_bss_E38; j++) { - temp_r31->unk6C[j] = (void*) Hu3DModelObjPtrGet(temp_r31->unk00, lbl_1_data_1C8[lbl_1_bss_E3C][j]); + temp_r31->unk6C[j] = (void *)Hu3DModelObjPtrGet(temp_r31->unk00, lbl_1_data_1C8[lbl_1_bss_E3C][j]); if (!temp_r31->unk6C[j]) { OSReport("objname %s\n", lbl_1_data_1C8[lbl_1_bss_E3C][j]); OSPanic("m411.c", 908, "ObjPtr"); @@ -850,12 +809,12 @@ void fn_1_25D0(void) { temp_r27->unk18 = temp_r26->unk18; temp_r27->unk1C = temp_r26->unk1C; temp_r27->unk20 = temp_r26->unk20; - temp_r31->unk94[j] = (void*) Hu3DModelObjPtrGet(temp_r31->unk06, lbl_1_data_1C8[lbl_1_bss_E3C][j]); + temp_r31->unk94[j] = (void *)Hu3DModelObjPtrGet(temp_r31->unk06, lbl_1_data_1C8[lbl_1_bss_E3C][j]); if (!temp_r31->unk94[j]) { OSReport("objname %s\n", lbl_1_data_1C8[lbl_1_bss_E3C][j]); OSPanic("m411.c", 919, "ObjPtr"); } - temp_r31->unkBC[j] = (void*) Hu3DModelObjPtrGet(temp_r31->unk04, lbl_1_data_1C8[lbl_1_bss_E3C][j]); + temp_r31->unkBC[j] = (void *)Hu3DModelObjPtrGet(temp_r31->unk04, lbl_1_data_1C8[lbl_1_bss_E3C][j]); if (!temp_r31->unkBC[j]) { OSReport("objname %s\n", lbl_1_data_1C8[lbl_1_bss_E3C][j]); OSPanic("m411.c", 925, "ObjPtr"); @@ -900,19 +859,19 @@ void fn_1_25D0(void) { temp_r31->unk58 = 180.0f; Hu3DModelPosSet(temp_r31->unk08, temp_r31->unk48, temp_r31->unk4C, temp_r31->unk50); Hu3DModelRotSet(temp_r31->unk08, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C); - Hu3DModelAttrSet(temp_r31->unk08, 1); + Hu3DModelAttrSet(temp_r31->unk08, HU3D_ATTR_DISPOFF); for (j = 0; j < 9; j++) { temp_r31->unk0E[j] = CharModelMotionCreate(lbl_1_data_240[GWPlayerCfg[i].character], lbl_1_data_280[j]); } CharModelMotionSet(lbl_1_data_240[GWPlayerCfg[i].character], temp_r31->unk0E[0]); - Hu3DModelAttrSet(temp_r31->unk08, 0x40000001); + Hu3DModelAttrSet(temp_r31->unk08, HU3D_MOTATTR_LOOP); if (lbl_1_bss_E40 == 0) { var_r28 = HuDataSelHeapReadNum(lbl_1_data_260[GWPlayerCfg[i].character], MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk20 = Hu3DModelCreate(var_r28); Hu3DModelAttrSet(temp_r31->unk20, 0x800001); Hu3DModelCameraSet(temp_r31->unk20, 1); for (j = 0; j < 9; j++) { - var_r28 = HuDataSelHeapReadNum((u8) lbl_1_data_280[j] + lbl_1_data_2A4[GWPlayerCfg[i].character], MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r28 = HuDataSelHeapReadNum((u8)lbl_1_data_280[j] + lbl_1_data_2A4[GWPlayerCfg[i].character], MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk22[j] = Hu3DJointMotion(temp_r31->unk20, var_r28); } Hu3DMotionSet(temp_r31->unk20, temp_r31->unk22[3]); @@ -948,13 +907,14 @@ void fn_1_25D0(void) { HuPrcChildCreate(fn_1_ACB0, 0x1000, 0x1000, 0, HuPrcCurrentGet()); } -void fn_1_34B0(ModelData* model, ParticleData* particle, Mtx matrix, s32 arg3) { +void fn_1_34B0(ModelData *model, ParticleData *particle, Mtx matrix, s32 arg3) +{ float var_f30; float temp_f28; float var_f31; float temp_f29; - HsfanimStruct01* var_r31; - UnkBss474Struct* temp_r28; + HsfanimStruct01 *var_r31; + UnkBss474Struct *temp_r28; s16 i; s16 j; s16 k; @@ -1032,70 +992,67 @@ void fn_1_34B0(ModelData* model, ParticleData* particle, Mtx matrix, s32 arg3) { PPCSync(); } -void fn_1_3A60(ModelData* model, ParticleData* particle, Mtx matrix) { +void fn_1_3A60(ModelData *model, ParticleData *particle, Mtx matrix) +{ fn_1_34B0(model, particle, matrix, 0); } -void fn_1_3A9C(ModelData* model, ParticleData* particle, Mtx matrix) { +void fn_1_3A9C(ModelData *model, ParticleData *particle, Mtx matrix) +{ fn_1_34B0(model, particle, matrix, 1); } -void fn_1_3AD8(ModelData* model, ParticleData* particle, Mtx matrix) { +void fn_1_3AD8(ModelData *model, ParticleData *particle, Mtx matrix) +{ fn_1_34B0(model, particle, matrix, 2); } -void fn_1_3B14(ModelData* model, ParticleData* particle, Mtx matrix) { +void fn_1_3B14(ModelData *model, ParticleData *particle, Mtx matrix) +{ fn_1_34B0(model, particle, matrix, 3); } -void fn_1_3B50(void) { +void fn_1_3B50(void) +{ float temp_f31; float temp_f30; - UnkBss138InnerStruct00* temp_r31; + UnkBss138InnerStruct00 *temp_r31; s16 temp_r30; temp_r31 = HuPrcCurrentGet()->user_data; temp_r30 = temp_r31->unk0C; Hu3DModelRotSet(temp_r30, 0.0f, 0.0f, 0.0f); - Hu3DModelAttrReset(temp_r30, 1); + Hu3DModelAttrReset(temp_r30, HU3D_ATTR_DISPOFF); temp_f31 = -15.0f; temp_f30 = -15.0f; - Hu3DModelPosSet(temp_r30, - temp_r31->unk10.x + 2.0 * sind(temp_r31->unk1C.y) + temp_f31, - temp_r31->unk10.y + temp_f30, + Hu3DModelPosSet(temp_r30, temp_r31->unk10.x + 2.0 * sind(temp_r31->unk1C.y) + temp_f31, temp_r31->unk10.y + temp_f30, temp_r31->unk10.z + 2.0 * cosd(temp_r31->unk1C.y)); HuPrcVSleep(); - Hu3DModelAttrSet(temp_r30, 1); + Hu3DModelAttrSet(temp_r30, HU3D_ATTR_DISPOFF); HuPrcSleep(4); - Hu3DModelAttrReset(temp_r30, 1); + Hu3DModelAttrReset(temp_r30, HU3D_ATTR_DISPOFF); temp_f31 = 15.0f; temp_f30 = -15.0f; - Hu3DModelPosSet(temp_r30, - temp_r31->unk10.x + 2.0 * sind(temp_r31->unk1C.y) + temp_f31, - temp_r31->unk10.y + temp_f30, + Hu3DModelPosSet(temp_r30, temp_r31->unk10.x + 2.0 * sind(temp_r31->unk1C.y) + temp_f31, temp_r31->unk10.y + temp_f30, temp_r31->unk10.z + 2.0 * cosd(temp_r31->unk1C.y)); HuPrcVSleep(); - Hu3DModelAttrSet(temp_r30, 1); + Hu3DModelAttrSet(temp_r30, HU3D_ATTR_DISPOFF); HuPrcSleep(4); - Hu3DModelAttrReset(temp_r30, 1); + Hu3DModelAttrReset(temp_r30, HU3D_ATTR_DISPOFF); temp_f31 = -15.0f; temp_f30 = 15.0f; - Hu3DModelPosSet(temp_r30, - temp_r31->unk10.x + 2.0 * sind(temp_r31->unk1C.y) + temp_f31, - temp_r31->unk10.y + temp_f30, + Hu3DModelPosSet(temp_r30, temp_r31->unk10.x + 2.0 * sind(temp_r31->unk1C.y) + temp_f31, temp_r31->unk10.y + temp_f30, temp_r31->unk10.z + 2.0 * cosd(temp_r31->unk1C.y)); HuPrcVSleep(); - Hu3DModelAttrSet(temp_r30, 1); + Hu3DModelAttrSet(temp_r30, HU3D_ATTR_DISPOFF); HuPrcSleep(4); - Hu3DModelAttrReset(temp_r30, 1); + Hu3DModelAttrReset(temp_r30, HU3D_ATTR_DISPOFF); temp_f31 = 15.0f; temp_f30 = 15.0f; - Hu3DModelPosSet(temp_r30, - temp_r31->unk10.x + 2.0 * sind(temp_r31->unk1C.y) + temp_f31, - temp_r31->unk10.y + temp_f30, + Hu3DModelPosSet(temp_r30, temp_r31->unk10.x + 2.0 * sind(temp_r31->unk1C.y) + temp_f31, temp_r31->unk10.y + temp_f30, temp_r31->unk10.z + 2.0 * cosd(temp_r31->unk1C.y)); HuPrcVSleep(); - Hu3DModelAttrSet(temp_r30, 1); + Hu3DModelAttrSet(temp_r30, HU3D_ATTR_DISPOFF); HuPrcSleep(4); HuPrcKill(HuPrcCurrentGet()); while (TRUE) { @@ -1103,20 +1060,21 @@ void fn_1_3B50(void) { } } -void fn_1_3F34(void) { +void fn_1_3F34(void) +{ float temp_f28; float var_f31; float temp_f30; float var_f29; - UnkBss138InnerStruct00* temp_r31; - Process* var_r30; + UnkBss138InnerStruct00 *temp_r31; + Process *var_r30; temp_r31 = HuPrcCurrentGet()->user_data; temp_r31->unk10.x = -500.0f + 1000.0f * frandf(); temp_r31->unk10.y = 1200.0f; temp_r31->unk10.z = 0.0f; temp_r31->unk1C.x = temp_r31->unk1C.y = temp_r31->unk1C.z = 0.0f; - Hu3DModelAttrReset(temp_r31->unk00, 1); + Hu3DModelAttrReset(temp_r31->unk00, HU3D_ATTR_DISPOFF); temp_f28 = temp_r31->unk10.x; var_f31 = 0.0f; temp_f30 = 1.0f + 2.0f * frandf(); @@ -1148,14 +1106,15 @@ void fn_1_3F34(void) { } HuPrcVSleep(); } - HuPrcCurrentGet()->user_data = (void*) 10000; + HuPrcCurrentGet()->user_data = (void *)10000; HuPrcKill(HuPrcCurrentGet()); while (TRUE) { HuPrcVSleep(); } } -void fn_1_4218(void) { +void fn_1_4218(void) +{ float temp_f28; float var_f29; float temp_f26; @@ -1166,14 +1125,14 @@ void fn_1_4218(void) { float temp_f23; float temp_f27; float temp_f22; - UnkBss138InnerStruct00* temp_r31; + UnkBss138InnerStruct00 *temp_r31; temp_r31 = HuPrcCurrentGet()->user_data; temp_f28 = -600.0f + 1200.0f * frandf(); var_f29 = 1200.0f; temp_f26 = -2900.0f; temp_f25 = var_f31 = temp_f24 = 0.0f; - Hu3DModelAttrReset(temp_r31->unk00, 1); + Hu3DModelAttrReset(temp_r31->unk00, HU3D_ATTR_DISPOFF); temp_f23 = temp_f28; var_f30 = 0.0f; temp_f27 = 1.0f + 2.0f * frandf(); @@ -1197,27 +1156,29 @@ void fn_1_4218(void) { Hu3DModelRotSet(temp_r31->unk00, temp_f25, var_f31, temp_f24); HuPrcVSleep(); } - HuPrcCurrentGet()->user_data = (void*) 10000; + HuPrcCurrentGet()->user_data = (void *)10000; HuPrcKill(HuPrcCurrentGet()); while (TRUE) { HuPrcVSleep(); } } -void fn_1_4454(void) { +void fn_1_4454(void) +{ float temp_f30; float sp8; float temp_f29; float var_f31; - UnkBss138InnerStruct00* temp_r31; - UnkBss138InnerStruct00* var_r30; + UnkBss138InnerStruct00 *temp_r31; + UnkBss138InnerStruct00 *var_r30; s32 i; temp_r31 = HuPrcCurrentGet()->user_data; if (temp_r31->unk0E == 0) { var_f31 = 0.0f; var_r30 = &lbl_1_bss_138.unk1AC[2]; - } else { + } + else { var_f31 = 180.0f; var_r30 = &lbl_1_bss_138.unk1AC[3]; } @@ -1266,7 +1227,8 @@ void fn_1_4454(void) { if (var_f31 > 180.0f) { temp_r31->unk10.x += 1.6666666f; temp_r31->unk10.z += 0.8333333f; - } else { + } + else { temp_r31->unk10.z += 0.8333333f; } Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z); @@ -1283,7 +1245,8 @@ void fn_1_4454(void) { if (temp_r31->unk0E == 0) { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk02[3], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk02[3], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk02[4], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk02[4], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); } @@ -1292,9 +1255,10 @@ void fn_1_4454(void) { } } -void fn_1_4968(void) { - UnkBss138InnerStruct00* var_r31; - UnkBss138InnerStruct00* var_r30; +void fn_1_4968(void) +{ + UnkBss138InnerStruct00 *var_r31; + UnkBss138InnerStruct00 *var_r30; s32 i; var_r31 = &lbl_1_bss_138.unk1C[1]; @@ -1336,11 +1300,12 @@ void fn_1_4968(void) { } } -void fn_1_4BB0(void) { - UnkBss138Struct* temp_r28; - Process* sp24[5]; - Process* sp10[5]; - Process* sp8[2]; +void fn_1_4BB0(void) +{ + UnkBss138Struct *temp_r28; + Process *sp24[5]; + Process *sp10[5]; + Process *sp8[2]; s32 var_r30; s32 var_r29; s32 var_r27; @@ -1367,7 +1332,8 @@ void fn_1_4BB0(void) { break; } } - } else { + } + else { var_r30--; } if (var_r29 == 0) { @@ -1379,7 +1345,8 @@ void fn_1_4BB0(void) { break; } } - } else { + } + else { var_r29--; } if (lbl_1_bss_E98 == 4 && var_r27 == 0) { @@ -1391,23 +1358,24 @@ void fn_1_4BB0(void) { } HuPrcVSleep(); for (i = 0; i < 5; i++) { - if (sp24[i] && sp24[i]->user_data == (void*) 10000) { + if (sp24[i] && sp24[i]->user_data == (void *)10000) { sp24[i] = NULL; } - if (sp10[i] && sp10[i]->user_data == (void*) 10000) { + if (sp10[i] && sp10[i]->user_data == (void *)10000) { sp10[i] = NULL; } } } } -void fn_1_4E8C(void) { +void fn_1_4E8C(void) +{ float var_f31; - UnkBss138InnerStruct00* temp_r31; + UnkBss138InnerStruct00 *temp_r31; s32 temp_r29; s32 i; - temp_r29 = (s32) HuPrcCurrentGet()->user_data; + temp_r29 = (s32)HuPrcCurrentGet()->user_data; temp_r31 = &lbl_1_bss_138.unkE4[temp_r29 - 1]; temp_r31->unk10.y = 0.0f; temp_r31->unk10.z = 200.0f; @@ -1416,13 +1384,14 @@ void fn_1_4E8C(void) { temp_r31->unk1C.x = temp_r31->unk1C.z = 0.0f; temp_r31->unk1C.y = -90.0f; var_f31 = (120.0f - temp_r31->unk10.x) / 60.0f; - } else { + } + else { temp_r31->unk10.x = -500.0f; temp_r31->unk1C.x = temp_r31->unk1C.z = 0.0f; temp_r31->unk1C.y = 90.0f; var_f31 = (-120.0f - temp_r31->unk10.x) / 60.0f; } - Hu3DModelAttrReset(temp_r31->unk00, 1); + Hu3DModelAttrReset(temp_r31->unk00, HU3D_ATTR_DISPOFF); Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk1C.x, temp_r31->unk1C.y, temp_r31->unk1C.z); for (i = 0; i < 60; i++) { temp_r31->unk10.x += var_f31; @@ -1440,13 +1409,14 @@ void fn_1_4E8C(void) { } } -void fn_1_507C(void) { +void fn_1_507C(void) +{ float temp_f31; s32 var_r28; s32 var_r29; - UnkBss138Struct* temp_r27; - UnkBss138InnerStruct00* temp_r31; - UnkBss138InnerStruct00* temp_r30; + UnkBss138Struct *temp_r27; + UnkBss138InnerStruct00 *temp_r31; + UnkBss138InnerStruct00 *temp_r30; temp_r27 = HuPrcCurrentGet()->user_data; temp_r31 = &temp_r27->unk1C[0]; @@ -1511,16 +1481,17 @@ void fn_1_507C(void) { HuPrcVSleep(); } } - Hu3DModelAttrSet(temp_r31->unk00, 1); - Hu3DModelAttrSet(temp_r30->unk00, 1); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(temp_r30->unk00, HU3D_ATTR_DISPOFF); while (TRUE) { HuPrcVSleep(); } } -void fn_1_5384(void) { - UnkBss138Struct* temp_r30; - Process* var_r31; +void fn_1_5384(void) +{ + UnkBss138Struct *temp_r30; + Process *var_r31; temp_r30 = HuPrcCurrentGet()->user_data; var_r31 = HuPrcChildCreate(fn_1_507C, 0x2000, 0x2000, 0, HuPrcCurrentGet()); @@ -1530,19 +1501,20 @@ void fn_1_5384(void) { } HuPrcSleep(0x122); var_r31 = HuPrcChildCreate(fn_1_4E8C, 0x2000, 0x2000, 0, HuPrcCurrentGet()); - var_r31->user_data = (void*) 1; + var_r31->user_data = (void *)1; var_r31 = HuPrcChildCreate(fn_1_4E8C, 0x2000, 0x2000, 0, HuPrcCurrentGet()); - var_r31->user_data = (void*) 2; + var_r31->user_data = (void *)2; while (TRUE) { HuPrcVSleep(); } } -void fn_1_544C(void) { - UnkBss138InnerStruct00* temp_r31; +void fn_1_544C(void) +{ + UnkBss138InnerStruct00 *temp_r31; s32 temp_r30; - temp_r30 = (s32) HuPrcCurrentGet()->user_data; + temp_r30 = (s32)HuPrcCurrentGet()->user_data; temp_r31 = &lbl_1_bss_138.unk1C[temp_r30 + 2]; switch (temp_r30) { case 0: @@ -1556,7 +1528,7 @@ void fn_1_544C(void) { break; } while (TRUE) { - Hu3DModelAttrSet(temp_r31->unk00, 0x40000001); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_LOOP); temp_r31->unk10.x += 2.0f * lbl_1_bss_E24; if (temp_r31->unk10.x > 650.0f) { temp_r31->unk10.x -= 1300.0f; @@ -1566,7 +1538,8 @@ void fn_1_544C(void) { } } -void fn_1_5554(void) { +void fn_1_5554(void) +{ float var_f28; float temp_f25; float temp_f27; @@ -1577,14 +1550,14 @@ void fn_1_5554(void) { float sp8; float temp_f24; UnkBss138InnerStruct00 spC; - UnkBss138InnerStruct00* var_r31; - UnkBss138InnerStruct00* var_r30; + UnkBss138InnerStruct00 *var_r31; + UnkBss138InnerStruct00 *var_r30; var_r31 = &spC; var_r30 = &lbl_1_bss_138.unk1AC[0]; var_r31->unk00 = Hu3DModelLink(var_r30->unk00); Hu3DModelCameraSet(var_r31->unk00, 1); - Hu3DModelAttrReset(var_r31->unk00, 1); + Hu3DModelAttrReset(var_r31->unk00, HU3D_ATTR_DISPOFF); var_r31->unk10.x = -500.0f + 100.0f * frandf(); var_r31->unk10.y = var_f26 = 200.0f + 500.0f * frandf(); var_r31->unk10.z = 400.0f; @@ -1630,7 +1603,8 @@ void fn_1_5554(void) { } } -void fn_1_58BC(void) { +void fn_1_58BC(void) +{ while (TRUE) { if (lbl_1_bss_E98 == 4) { break; @@ -1643,19 +1617,20 @@ void fn_1_58BC(void) { } } -void fn_1_5910(void) { +void fn_1_5910(void) +{ float var_f31; - UnkBss138Struct* spC; - Process* var_r29; - UnkBss138InnerStruct00* var_r31; - UnkBss474Struct* sp8; + UnkBss138Struct *spC; + Process *var_r29; + UnkBss138InnerStruct00 *var_r31; + UnkBss474Struct *sp8; s32 i; spC = HuPrcCurrentGet()->user_data; HuPrcChildCreate(fn_1_58BC, 0x2000, 0x2000, 0, HuPrcCurrentGet()); for (i = 0; i < 3; i++) { var_r29 = HuPrcChildCreate(fn_1_544C, 0x2000, 0x2000, 0, HuPrcCurrentGet()); - var_r29->user_data = (void*) i; + var_r29->user_data = (void *)i; } while (lbl_1_bss_E98 != 4) { HuPrcVSleep(); @@ -1693,46 +1668,53 @@ void fn_1_5910(void) { } } -s8 fn_1_5D58(s32 arg0, s32 arg1) { - UnkBss474Struct* temp_r31; +s8 fn_1_5D58(s32 arg0, s32 arg1) +{ + UnkBss474Struct *temp_r31; s8 var_r30; temp_r31 = &lbl_1_bss_474[arg0]; if (!GWPlayerCfg[arg0].iscom) { (arg1 != 0) ? (var_r30 = HuPadStkY[temp_r31->unk3C]) : (var_r30 = HuPadStkX[temp_r31->unk3C]); - } else { + } + else { (arg1 != 0) ? (var_r30 = temp_r31->unk255) : (var_r30 = temp_r31->unk254); } return var_r30; } -u8 fn_1_5E10(s32 arg0, s32 arg1) { - UnkBss474Struct* temp_r31; +u8 fn_1_5E10(s32 arg0, s32 arg1) +{ + UnkBss474Struct *temp_r31; s8 var_r30; temp_r31 = &lbl_1_bss_474[arg0]; if (!GWPlayerCfg[arg0].iscom) { (arg1 != 0) ? (var_r30 = HuPadTrigR[temp_r31->unk3C]) : (var_r30 = HuPadTrigL[temp_r31->unk3C]); - } else { + } + else { (arg1 != 0) ? (var_r30 = temp_r31->unk256) : (var_r30 = temp_r31->unk257); } return var_r30; } -u16 fn_1_5ED0(s32 arg0) { - UnkBss474Struct* temp_r31; +u16 fn_1_5ED0(s32 arg0) +{ + UnkBss474Struct *temp_r31; u16 var_r30; temp_r31 = &lbl_1_bss_474[arg0]; if (!GWPlayerCfg[arg0].iscom) { var_r30 = HuPadBtnDown[temp_r31->unk3C]; - } else { + } + else { var_r30 = temp_r31->unk258; } return var_r30; } -void fn_1_5F3C(UnkBss474Struct* arg0, s32 arg1) { +void fn_1_5F3C(UnkBss474Struct *arg0, s32 arg1) +{ Vec sp2C; Vec sp20; Vec sp14; @@ -1744,10 +1726,10 @@ void fn_1_5F3C(UnkBss474Struct* arg0, s32 arg1) { float var_f27; float var_f26; float var_f25; - UnkBss474DoublyInnerStruct6C* temp_r31; - UnkBss474DoublyInnerStruct6C* temp_r29; - UnkBss474DoublyInnerStruct6C* temp_r27; - UnkBss474InnerStructE4* temp_r28; + UnkBss474DoublyInnerStruct6C *temp_r31; + UnkBss474DoublyInnerStruct6C *temp_r29; + UnkBss474DoublyInnerStruct6C *temp_r27; + UnkBss474InnerStructE4 *temp_r28; s32 var_r25; s32 i; @@ -1782,7 +1764,8 @@ void fn_1_5F3C(UnkBss474Struct* arg0, s32 arg1) { temp_r27->unk08 += 10.0f; if (i < 14) { var_r25 += 17; - } else if (i < 28) { + } + else if (i < 28) { var_r25 -= 17; } Hu3DModelTPLvlSet(arg0->unk04, 255 - var_r25); @@ -1802,11 +1785,12 @@ void fn_1_5F3C(UnkBss474Struct* arg0, s32 arg1) { temp_r27->unk00 = 5000.0f; } -void fn_1_6428(UnkBss474Struct* arg0, s32 arg1) { +void fn_1_6428(UnkBss474Struct *arg0, s32 arg1) +{ float var_f31; - UnkBss474DoublyInnerStruct6C* temp_r31; - UnkBss474DoublyInnerStruct6C* temp_r29; - UnkBss474InnerStructE4* temp_r30; + UnkBss474DoublyInnerStruct6C *temp_r31; + UnkBss474DoublyInnerStruct6C *temp_r29; + UnkBss474InnerStructE4 *temp_r30; temp_r31 = &arg0->unk6C[arg1]->unk1C; temp_r29 = &arg0->unk94[arg1]->unk1C; @@ -1837,9 +1821,10 @@ void fn_1_6428(UnkBss474Struct* arg0, s32 arg1) { temp_r29->unk20 = 0.8f * temp_r31->unk20; } -void fn_1_6820(UnkBss474Struct* arg0, s32 arg1, s32 arg2) { - UnkBss474DoublyInnerStruct6C* temp_r30; - UnkBss474DoublyInnerStruct6C* temp_r31; +void fn_1_6820(UnkBss474Struct *arg0, s32 arg1, s32 arg2) +{ + UnkBss474DoublyInnerStruct6C *temp_r30; + UnkBss474DoublyInnerStruct6C *temp_r31; float temp_f30; float temp_f29; float temp_f28; @@ -1879,13 +1864,14 @@ void fn_1_6820(UnkBss474Struct* arg0, s32 arg1, s32 arg2) { HuSprAttrReset(arg0->unk0C, 0, HUSPR_ATTR_REVERSE); } -void fn_1_6A3C(void) { +void fn_1_6A3C(void) +{ float var_f31; float var_f30; float temp_f29; - UnkFn64A3Struct* temp_r30; - UnkBss474DoublyInnerStruct6C* temp_r31; - UnkBss474DoublyInnerStruct6C* temp_r28; + UnkFn64A3Struct *temp_r30; + UnkBss474DoublyInnerStruct6C *temp_r31; + UnkBss474DoublyInnerStruct6C *temp_r28; s32 var_r27; s32 i; @@ -1895,7 +1881,8 @@ void fn_1_6A3C(void) { HuAudFXPlay(0x56C); if (temp_r30->unk08 != 0) { var_f30 = temp_r31->unk14 + 90.0f; - } else { + } + else { var_f30 = temp_r31->unk14 - 90.0f; } if (var_f30 >= 360.0f) { @@ -1909,7 +1896,8 @@ void fn_1_6A3C(void) { for (i = 0, var_r27 = 15; i < var_r27; i++) { if (temp_r30->unk08 != 0) { temp_r31->unk14 = temp_f29 + 100.0 * sind(var_f31); - } else { + } + else { temp_r31->unk14 = temp_f29 - 100.0 * sind(var_f31); } temp_r28->unk14 = temp_r31->unk14; @@ -1921,7 +1909,8 @@ void fn_1_6A3C(void) { var_f31 -= 8.333333f; if (temp_r30->unk08 != 0) { temp_r31->unk14 = temp_f29 + 100.0 * sind(var_f31); - } else { + } + else { temp_r31->unk14 = temp_f29 - 100.0 * sind(var_f31); } temp_r28->unk14 = temp_r31->unk14; @@ -1936,10 +1925,11 @@ void fn_1_6A3C(void) { } } -void fn_1_6CF4(void) { +void fn_1_6CF4(void) +{ float temp_f30; float var_f31; - UnkBss474DoublyInnerStruct6C* temp_r31; + UnkBss474DoublyInnerStruct6C *temp_r31; temp_r31 = HuPrcCurrentGet()->user_data; HuPrcSleep(frandmod(30)); @@ -1964,8 +1954,9 @@ void fn_1_6CF4(void) { } } -void fn_1_6DD8(UnkBss474Struct* arg0, s32 arg1) { - UnkBss474DoublyInnerStruct6C* temp_r31; +void fn_1_6DD8(UnkBss474Struct *arg0, s32 arg1) +{ + UnkBss474DoublyInnerStruct6C *temp_r31; temp_r31 = &arg0->unk6C[arg1]->unk1C; if (temp_r31->unk00 > 220.0f) { @@ -1982,7 +1973,8 @@ void fn_1_6DD8(UnkBss474Struct* arg0, s32 arg1) { } } -void fn_1_6E9C(s32 arg0, s32 arg1) { +void fn_1_6E9C(s32 arg0, s32 arg1) +{ switch (GWPlayerCfg[arg0].diff) { case 0: arg1 *= 8; @@ -1999,18 +1991,20 @@ void fn_1_6E9C(s32 arg0, s32 arg1) { } if (arg1 <= 1) { HuPrcVSleep(); - } else { + } + else { HuPrcSleep(arg1 + frandmod(arg1 / 2)); } } -void fn_1_6F48(UnkBss474Struct* arg0, s32 arg1, s32 arg2) { +void fn_1_6F48(UnkBss474Struct *arg0, s32 arg1, s32 arg2) +{ Vec sp24; Vec sp18; Vec spC; float temp_f29; - UnkBss474DoublyInnerStruct6C* temp_r30; - UnkBss474InnerStructE4* temp_r25; + UnkBss474DoublyInnerStruct6C *temp_r30; + UnkBss474InnerStructE4 *temp_r25; s32 var_r27; s32 var_r23; @@ -2039,7 +2033,8 @@ void fn_1_6F48(UnkBss474Struct* arg0, s32 arg1, s32 arg2) { if (arg0->unk264 == -1) { if (frandmod(100) < var_r27 || lbl_1_bss_E38 == arg2 + 1) { arg0->unk264 = arg1; - } else { + } + else { var_r23 = frandmod(lbl_1_bss_E38 - arg2); arg0->unk264 = lbl_1_bss_E6C[arg2 + var_r23]; } @@ -2062,25 +2057,30 @@ void fn_1_6F48(UnkBss474Struct* arg0, s32 arg1, s32 arg2) { arg0->unk268 = 10; if (temp_r30->unk14 - 90.0f == 0.0f) { arg0->unk256 = 50; - } else { + } + else { arg0->unk257 = 50; } } } - } else { + } + else { fn_1_6E9C(arg0->unk34, 1); if (frandmod(100) < var_r27 || lbl_1_bss_E38 == arg2 + 1) { if (temp_r30->unk14 != 0.0f) { if (temp_r30->unk14 - 90.0f == 0.0f) { arg0->unk256 = 50; - } else { + } + else { arg0->unk257 = 50; } - } else { + } + else { arg0->unk258 = 0x100; arg0->unk264 = -1; } - } else { + } + else { switch (frandmod(3)) { case 0: arg0->unk256 = 50; @@ -2100,7 +2100,8 @@ void fn_1_6F48(UnkBss474Struct* arg0, s32 arg1, s32 arg2) { } } -void fn_1_75C8(void) { +void fn_1_75C8(void) +{ s16 var_r30; s32 var_r31; @@ -2119,7 +2120,8 @@ void fn_1_75C8(void) { } } -void fn_1_7680(void) { +void fn_1_7680(void) +{ s16 var_r30; s32 var_r31; @@ -2138,11 +2140,11 @@ void fn_1_7680(void) { } } - -static inline void m411InlineFunc(UnkBss474Struct* temp_r31, UnkBss474DoublyInnerStruct6C* temp_r30) { +static inline void m411InlineFunc(UnkBss474Struct *temp_r31, UnkBss474DoublyInnerStruct6C *temp_r30) +{ Vec sp74; Vec sp80; - + float var_f22; float var_f23; @@ -2157,16 +2159,17 @@ static inline void m411InlineFunc(UnkBss474Struct* temp_r31, UnkBss474DoublyInne #define SOME_MACRO(x) ((x) >= 0 ? (x) : (-(x) > 20)) -void fn_1_7738(void) { +void fn_1_7738(void) +{ f32 temp_f26; f32 temp_f27; - Process* var_r24; - UnkBss474Struct* temp_r31; - UnkBss474DoublyInnerStruct6C* temp_r30; + Process *var_r24; + UnkBss474Struct *temp_r31; + UnkBss474DoublyInnerStruct6C *temp_r30; s32 var_r29; - UnkBss474DoublyInnerStruct6C* temp_r28; + UnkBss474DoublyInnerStruct6C *temp_r28; s32 temp_r26; - UnkBss474InnerStructE4* temp_r25; + UnkBss474InnerStructE4 *temp_r25; s32 var_r23; Vec spCC; Vec spC0; @@ -2185,17 +2188,18 @@ void fn_1_7738(void) { while (lbl_1_bss_E98 == 0) { HuPrcVSleep(); } - Hu3DModelAttrReset(temp_r31->unk08, 1); + Hu3DModelAttrReset(temp_r31->unk08, HU3D_ATTR_DISPOFF); for (var_r29 = 0; var_r29 < 30; var_r29++) { if (lbl_1_bss_E40 == 0) { lbl_1_bss_C4[temp_r31->unk38].z += 10.0f; - } else { + } + else { CZoomM[temp_r31->unk38] += 10.0f; } HuPrcVSleep(); } - Hu3DModelAttrReset(temp_r31->unk00, 1); - Hu3DModelAttrSet(temp_r31->unk02, 1); + Hu3DModelAttrReset(temp_r31->unk00, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(temp_r31->unk02, HU3D_ATTR_DISPOFF); if (temp_r31->unk34 == 0) { HuAudFXPlay(0x56F); } @@ -2224,12 +2228,13 @@ void fn_1_7738(void) { for (var_r29 = 0; var_r29 < 30; var_r29++) { if (lbl_1_bss_E40 == 0) { lbl_1_bss_C4[temp_r31->unk38].z -= 10.0f; - } else { + } + else { CZoomM[temp_r31->unk38] -= 10.0f; } HuPrcVSleep(); } - Hu3DModelAttrSet(temp_r31->unk08, 1); + Hu3DModelAttrSet(temp_r31->unk08, HU3D_ATTR_DISPOFF); HuPrcSleep(60); lbl_1_bss_E98 = 2; for (var_r29 = 0; var_r29 < lbl_1_bss_E38; var_r29++) { @@ -2245,7 +2250,8 @@ void fn_1_7738(void) { temp_r30->unk04 = temp_r25->unk04; temp_r28->unk00 = 20.0f + temp_r30->unk00; temp_r28->unk04 = -20.0f + temp_r30->unk04; - } else { + } + else { temp_r30->unk00 = temp_r30->unk04 = 0.0f; temp_r28->unk00 = 20.0f + temp_r30->unk00; temp_r28->unk04 = -20.0f + temp_r30->unk04; @@ -2301,9 +2307,7 @@ void fn_1_7738(void) { fn_1_6428(temp_r31, temp_r26); } temp_r31->unk60 = -1.0f; - if (SOME_MACRO(fn_1_5D58(temp_r31->unk34, 0)) != 0 - || SOME_MACRO(fn_1_5D58(temp_r31->unk34, 1)) != 0) - { + if (SOME_MACRO(fn_1_5D58(temp_r31->unk34, 0)) != 0 || SOME_MACRO(fn_1_5D58(temp_r31->unk34, 1)) != 0) { temp_r31->unk60 = atan2d(fn_1_5D58(temp_r31->unk34, 0), fn_1_5D58(temp_r31->unk34, 1)); } if (-1.0f != temp_r31->unk60) { @@ -2323,7 +2327,8 @@ void fn_1_7738(void) { } } -void fn_1_8A80(float arg0, float arg1) { +void fn_1_8A80(float arg0, float arg1) +{ Hu3DCameraViewportSet(2, 10.0f, 10.0f, arg0 - 11.0f, arg1 - 11.0f, 0.0f, 1.0f); Hu3DCameraScissorSet(2, 10, 10, arg0 - 11.0f, arg1 - 11.0f); Hu3DCameraViewportSet(4, arg0 + 2.0f, 10.0f, 630.0f - arg0, arg1 - 11.0f, 0.0f, 1.0f); @@ -2334,7 +2339,8 @@ void fn_1_8A80(float arg0, float arg1) { Hu3DCameraScissorSet(16, arg0 + 2.0f, arg1 + 2.0f, 630.0f - arg0, 470.0f - arg1); } -void fn_1_8DBC(void) { +void fn_1_8DBC(void) +{ float var_f31; float var_f30; s32 i; @@ -2364,7 +2370,8 @@ void fn_1_8DBC(void) { Hu3DCameraScissorSet(16, 322, 242, 310, 230); } -void fn_1_9490(void) { +void fn_1_9490(void) +{ float var_f31; float var_f30; float var_f29; @@ -2374,7 +2381,7 @@ void fn_1_9490(void) { s32 temp_r30; s32 i; - temp_r30 = (s32) HuPrcCurrentGet()->user_data; + temp_r30 = (s32)HuPrcCurrentGet()->user_data; switch (temp_r30) { case 0: var_f31 = 645.0f; @@ -2411,14 +2418,15 @@ void fn_1_9490(void) { } } -void fn_1_9BC0(s32 arg0) { +void fn_1_9BC0(s32 arg0) +{ float var_f30; float var_f31; s32 var_r29; - UnkBss474Struct* temp_r31; - UnkBss474Struct* var_r26; - Process* var_r28; - UnkBss138InnerStruct00* var_r27; + UnkBss474Struct *temp_r31; + UnkBss474Struct *var_r26; + Process *var_r28; + UnkBss138InnerStruct00 *var_r27; s32 i; temp_r31 = &lbl_1_bss_474[arg0]; @@ -2433,10 +2441,10 @@ void fn_1_9BC0(s32 arg0) { for (i = 0; i < 4; i++) { HuSprAttrSet(lbl_1_bss_474[i].unk0C, 0, HUSPR_ATTR_DISPOFF); } - Hu3DModelAttrReset(temp_r31->unk02, 1); - Hu3DModelAttrSet(temp_r31->unk00, 1); + Hu3DModelAttrReset(temp_r31->unk02, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_ATTR_DISPOFF); var_r28 = HuPrcChildCreate(fn_1_9490, 0x2000, 0x1000, 0, HuPrcCurrentGet()); - var_r28->user_data = (void*) arg0; + var_r28->user_data = (void *)arg0; while (var_r28->user_data) { HuPrcVSleep(); } @@ -2444,10 +2452,10 @@ void fn_1_9BC0(s32 arg0) { temp_r31->unk4C = -280.0f; temp_r31->unk50 = 200.0f; temp_r31->unk58 = -90.0f; - Hu3DModelAttrReset(temp_r31->unk08, 1); + Hu3DModelAttrReset(temp_r31->unk08, HU3D_ATTR_DISPOFF); Hu3DModelRotSet(temp_r31->unk08, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C); CharModelMotionSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[2]); - Hu3DModelAttrSet(temp_r31->unk08, 0x40000001); + Hu3DModelAttrSet(temp_r31->unk08, HU3D_MOTATTR_LOOP); Hu3DModelCameraSet(temp_r31->unk08, 1 << temp_r31->unk38); i = 0; while (TRUE) { @@ -2476,7 +2484,8 @@ void fn_1_9BC0(s32 arg0) { CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[3], 0.0f, 5.0f, HU3D_MOTATTR_NONE); if (lbl_1_bss_E40 == 1) { var_f31 = -20.0f; - } else { + } + else { var_f31 = -20.0f; } for (; var_f31 < 0.0f; var_f31 += 1.765f) { @@ -2487,7 +2496,8 @@ void fn_1_9BC0(s32 arg0) { Hu3DModelShadowSet(temp_r31->unk08); } -void fn_1_A004(void) { +void fn_1_A004(void) +{ s32 i; for (i = 0; i < 67; i++) { @@ -2501,8 +2511,9 @@ void fn_1_A004(void) { } } -void fn_1_A07C(void) { - UnkBss474Struct* temp_r31; +void fn_1_A07C(void) +{ + UnkBss474Struct *temp_r31; temp_r31 = &lbl_1_bss_474[lbl_1_bss_E94]; while (TRUE) { @@ -2516,10 +2527,11 @@ void fn_1_A07C(void) { } } -void fn_1_A120(s32 arg0) { +void fn_1_A120(s32 arg0) +{ float temp_f30; float var_f31; - UnkBss474Struct* temp_r31; + UnkBss474Struct *temp_r31; s32 var_r29; s32 i; @@ -2527,7 +2539,7 @@ void fn_1_A120(s32 arg0) { temp_r31->unk48 = 0.0f; temp_r31->unk4C = 930.0f; temp_r31->unk50 = 2790.0f; - Hu3DModelAttrReset(temp_r31->unk20, 1); + Hu3DModelAttrReset(temp_r31->unk20, HU3D_ATTR_DISPOFF); Hu3DModelCameraSet(temp_r31->unk08, 1); HuPrcChildCreate(fn_1_A004, 0x2000, 0x1000, 0, HuPrcCurrentGet()); temp_f30 = (-730.0f - temp_r31->unk50) / 80.0f; @@ -2567,10 +2579,11 @@ void fn_1_A120(s32 arg0) { HuPrcChildCreate(fn_1_A07C, 0x2000, 0x1000, 0, HuPrcCurrentGet()); } -void fn_1_A4B4(s32 arg0) { +void fn_1_A4B4(s32 arg0) +{ float temp_f30; float var_f31; - UnkBss474Struct* temp_r31; + UnkBss474Struct *temp_r31; s32 var_r29; s32 i; @@ -2608,12 +2621,13 @@ void fn_1_A4B4(s32 arg0) { CharModelMotionShiftSet(lbl_1_data_240[GWPlayerCfg[temp_r31->unk34].character], temp_r31->unk0E[8], 0.0f, 5.0f, HU3D_MOTATTR_NONE); } -void fn_1_A788(s32 arg0) { +void fn_1_A788(s32 arg0) +{ float temp_f30; float temp_f29; float var_f31; - UnkBss474Struct* temp_r31; - UnkBss138InnerStruct00* var_r29; + UnkBss474Struct *temp_r31; + UnkBss138InnerStruct00 *var_r29; s32 var_r28; s32 i; @@ -2680,7 +2694,8 @@ void fn_1_A788(s32 arg0) { HuAudSStreamPlay(1); } -void fn_1_ACB0(void) { +void fn_1_ACB0(void) +{ s32 i; while (TRUE) { @@ -2702,7 +2717,8 @@ void fn_1_ACB0(void) { } } -void fn_1_AD58(void) { +void fn_1_AD58(void) +{ s16 temp_r28; s16 var_r27; s16 temp_r25; @@ -2759,7 +2775,8 @@ void fn_1_AD58(void) { } } break; - } else if (var_r27 < 59) { + } + else if (var_r27 < 59) { var_r30 = -1; break; } @@ -2796,7 +2813,8 @@ void fn_1_AD58(void) { GWPlayer[var_r30].coin_win = 10; } temp_r28 = MGSeqCreate(5, 3, GWPlayerCfg[var_r30].character, -1, -1, -1); - } else { + } + else { HuAudSStreamPlay(4); temp_r28 = MGSeqCreate(3, 2); } diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c index 63cafdee..29fbbb80 100644 --- a/src/REL/m412Dll/main.c +++ b/src/REL/m412Dll/main.c @@ -212,15 +212,15 @@ void fn_1_8BC(void) var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 1); Hu3DModelShadowMapSet(var_r29); - Hu3DModelAttrSet(var_r29, 0x40000001); + Hu3DModelAttrSet(var_r29, HU3D_MOTATTR_LOOP); var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x01), MEMORY_DEFAULT_NUM, HEAP_DATA); lbl_1_bss_79C = Hu3DModelCreate(var_r27); - Hu3DModelAttrSet(lbl_1_bss_79C, 1); + Hu3DModelAttrSet(lbl_1_bss_79C, HU3D_ATTR_DISPOFF); MapObject[nMap++] = omAddObjEx(lbl_1_bss_274, 0x100, 1, 0, -1, fn_1_898); var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x02), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 0); - Hu3DModelAttrSet(var_r29, 0x40000001); + Hu3DModelAttrSet(var_r29, HU3D_MOTATTR_LOOP); for (var_r28 = 0; var_r28 < 0x20; var_r28++) { lbl_1_bss_278[var_r28] = NULL; @@ -233,8 +233,8 @@ void fn_1_8BC(void) var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x1D), MEMORY_DEFAULT_NUM, HEAP_DATA); lbl_1_bss_798[var_r28] = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 2); - Hu3DModelAttrSet(var_r29, 0x40000002); - Hu3DModelAttrSet(var_r29, 1); + Hu3DModelAttrSet(var_r29, HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(var_r29, HU3D_ATTR_DISPOFF); } for (var_r28 = 0; var_r28 < 6; var_r28++) { @@ -274,14 +274,14 @@ void fn_1_8BC(void) Hu3DModelLayerSet(var_r29, 0); Hu3DModelShadowReset(var_r29); Hu3DMotionSet(var_r29, temp_r31->unkC[3]); - Hu3DModelAttrSet(var_r29, 0x800000); + Hu3DModelAttrSet(var_r29, HU3D_ATTR_CULL_FRONT); var_r27 = HuDataSelHeapReadNum(var_r28 + DATA_MAKE_NUM(DATADIR_M412, 0x10), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk4 = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 1); if (var_r28 >= 3) { - Hu3DModelAttrSet(temp_r31->unk0, 0x40000002); - Hu3DModelAttrSet(temp_r31->unk2, 0x40000002); - Hu3DModelAttrSet(temp_r31->unk4, 0x40000002); + Hu3DModelAttrSet(temp_r31->unk0, HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(temp_r31->unk2, HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(temp_r31->unk4, HU3D_MOTATTR_PAUSE); } if (var_r28 == 0) { var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x03), MEMORY_DEFAULT_NUM, HEAP_DATA); @@ -292,12 +292,12 @@ void fn_1_8BC(void) } temp_r31->unk6 = var_r29; Hu3DModelLayerSet(var_r29, 1); - Hu3DModelAttrSet(var_r29, 1); + Hu3DModelAttrSet(var_r29, HU3D_ATTR_DISPOFF); Hu3DModelShadowSet(var_r29); Hu3DModelShadowDispOff(var_r29); temp_r31->unk8 = Hu3DModelLink(var_r19); Hu3DModelLayerSet(var_r29, 0); - Hu3DModelAttrSet(temp_r31->unk8, 1); + Hu3DModelAttrSet(temp_r31->unk8, HU3D_ATTR_DISPOFF); var_r23 = HuPrcChildCreate(fn_1_2A1C, 0x2000, 0x3000, 0, HuPrcCurrentGet()); var_r23->user_data = temp_r31; } @@ -351,22 +351,22 @@ void fn_1_8BC(void) Hu3DModelScaleSet(var_r29, 1.0f, -1.0f, 1.0f); Hu3DModelLayerSet(var_r29, 0); Hu3DModelShadowReset(var_r29); - Hu3DModelAttrSet(var_r29, 0x800000); + Hu3DModelAttrSet(var_r29, HU3D_ATTR_CULL_FRONT); var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x04), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk6 = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 1); - Hu3DModelAttrSet(var_r29, 1); + Hu3DModelAttrSet(var_r29, HU3D_ATTR_DISPOFF); Hu3DModelShadowSet(var_r29); Hu3DModelShadowDispOff(var_r29); temp_r31->unk8 = Hu3DModelLink(temp_r31->unk6); Hu3DModelLayerSet(temp_r31->unk8, 0); - Hu3DModelAttrSet(temp_r31->unk8, 1); + Hu3DModelAttrSet(temp_r31->unk8, HU3D_ATTR_DISPOFF); var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x05), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unkA = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelShadowSet(var_r29); Hu3DModelShadowDispOff(var_r29); Hu3DModelLayerSet(var_r29, 1); - Hu3DModelAttrSet(var_r29, 1); + Hu3DModelAttrSet(var_r29, HU3D_ATTR_DISPOFF); for (var_r28 = 0; var_r28 < 0x17; var_r28++) { var_r17 = Hu3DModelObjPtrGet(var_r29, lbl_1_data_298[var_r28]); @@ -407,7 +407,7 @@ void fn_1_8BC(void) var_r27 = HuDataSelHeapReadNum(lbl_1_data_20[GWPlayerCfg[var_r28].character], MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r30->unk2 = Hu3DModelCreate(var_r27); Hu3DModelScaleSet(temp_r30->unk2, 1.0f, -1.0f, 1.0f); - Hu3DModelAttrSet(temp_r30->unk2, 0x800000); + Hu3DModelAttrSet(temp_r30->unk2, HU3D_ATTR_CULL_FRONT); Hu3DModelLayerSet(temp_r30->unk2, 0); CharModelLayerSetAll(3); temp_r30->unk54.x = temp_r30->unk54.z = temp_r30->unk54.y = 0.0f; @@ -433,26 +433,26 @@ void fn_1_8BC(void) temp_r30->unk18[var_r26] = Hu3DJointMotion(temp_r30->unk2, var_r27); } CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[var_r28].character], temp_r30->unkC[0]); - Hu3DModelAttrSet(temp_r30->unk0, 0x40000001); + Hu3DModelAttrSet(temp_r30->unk0, HU3D_MOTATTR_LOOP); Hu3DMotionSet(temp_r30->unk2, temp_r30->unk18[0]); - Hu3DModelAttrSet(temp_r30->unk2, 0x40000001); + Hu3DModelAttrSet(temp_r30->unk2, HU3D_MOTATTR_LOOP); CharModelMotionDataClose(lbl_1_data_0[GWPlayerCfg[var_r28].character]); var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x1C), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r30->unk6 = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 1); - Hu3DModelAttrSet(var_r29, 0x40000001); - Hu3DModelAttrSet(var_r29, 1); + Hu3DModelAttrSet(var_r29, HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(var_r29, HU3D_ATTR_DISPOFF); Hu3DModelShadowSet(var_r29); Hu3DModelShadowDispOff(var_r29); temp_r30->unk8 = var_r29 = Hu3DModelLink(var_r29); Hu3DModelLayerSet(var_r29, 0); - Hu3DModelAttrSet(var_r29, 0x40000001); + Hu3DModelAttrSet(var_r29, HU3D_MOTATTR_LOOP); Hu3DModelAttrSet(var_r29, 0x800001); var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x1D), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r30->unkA = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 3); - Hu3DModelAttrSet(var_r29, 0x40000002); - Hu3DModelAttrSet(var_r29, 1); + Hu3DModelAttrSet(var_r29, HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(var_r29, HU3D_ATTR_DISPOFF); var_r23 = HuPrcChildCreate(fn_1_7C60, 0x2000, 0x4000, 0, HuPrcCurrentGet()); var_r23->user_data = temp_r30; } @@ -645,8 +645,8 @@ void fn_1_2064(void) else { HuAudFXPlay(0x58C); } - Hu3DModelAttrSet(temp_r31->unk0, 1); - Hu3DModelAttrSet(temp_r31->unk2, 1); + Hu3DModelAttrSet(temp_r31->unk0, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(temp_r31->unk2, HU3D_ATTR_DISPOFF); Hu3DModelShadowDispOff(temp_r31->unk0); temp_r31->unkA = 1; if (temp_r31->unkC == 1) { @@ -657,7 +657,7 @@ void fn_1_2064(void) } } Hu3DModelPosSet(temp_r31->unk4, temp_r31->unk10.x, temp_r31->unk10.y, temp_r31->unk10.z); - Hu3DModelAttrReset(temp_r31->unk4, 1); + Hu3DModelAttrReset(temp_r31->unk4, HU3D_ATTR_DISPOFF); Hu3DModelShadowDispOn(temp_r31->unk4); for (var_r30 = 0; var_r30 < 0x17; var_r30++) { @@ -843,8 +843,8 @@ loop_10: HuPrcVSleep(); } HuPrcSleep(0x1E); - Hu3DModelAttrReset(temp_r31->unk6, 1); - Hu3DModelAttrReset(temp_r31->unk8, 1); + Hu3DModelAttrReset(temp_r31->unk6, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(temp_r31->unk8, HU3D_ATTR_DISPOFF); Hu3DModelShadowDispOn(temp_r31->unk6); Hu3DModelPosSet(temp_r31->unk6, 0.0f, 0.0f, 0.0f); Hu3DModelPosSet(temp_r31->unk8, 0.0f, 0.0f, 0.0f); @@ -971,8 +971,8 @@ loop_1: Hu3DModelClusterAttrReset(temp_r31->unk0, 0, -0x3FFFFFFE); Hu3DModelAttrReset(temp_r31->unk2, 0x40000002); Hu3DModelClusterAttrReset(temp_r31->unk2, 0, -0x3FFFFFFE); - Hu3DModelAttrReset(temp_r31->unk6, 1); - Hu3DModelAttrReset(temp_r31->unk8, 1); + Hu3DModelAttrReset(temp_r31->unk6, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(temp_r31->unk8, HU3D_ATTR_DISPOFF); Hu3DModelShadowDispOn(temp_r31->unk6); var_f18 = 850.0f; temp_f31 = -217.722f; @@ -1649,7 +1649,8 @@ loop_6: if (temp_r31->unk60.z >= 8.0f) { if (temp_r31->unk30 != 2) { temp_r31->unk30 = 2; - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + CharModelMotionShiftSet( + lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSet(temp_r31->unk2, temp_r31->unk18[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } } @@ -1664,10 +1665,10 @@ loop_6: else if (temp_r31->unk30 != 0) { temp_r31->unk30 = 0; CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk24].character], temp_r31->unkC[0]); - Hu3DModelAttrSet(temp_r31->unk0, 0x40000001); + Hu3DModelAttrSet(temp_r31->unk0, HU3D_MOTATTR_LOOP); Hu3DMotionSet(temp_r31->unk2, temp_r31->unk18[0]); Hu3DMotionSpeedSet(temp_r31->unk2, 2.0f); - Hu3DModelAttrSet(temp_r31->unk2, 0x40000001); + Hu3DModelAttrSet(temp_r31->unk2, HU3D_MOTATTR_LOOP); } var_f21 = sqrtf((temp_r31->unk7C.x * temp_r31->unk7C.x) + (temp_r31->unk7C.z * temp_r31->unk7C.z)); if (temp_r31->unk60.z > 0.5f) { @@ -1735,20 +1736,20 @@ loop_6: goto loop_6; case 3: HuAudFXPlay(0x584); - Hu3DModelAttrSet(temp_r31->unk0, 0x40000002); - Hu3DModelAttrSet(temp_r31->unk2, 0x40000002); + Hu3DModelAttrSet(temp_r31->unk0, HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(temp_r31->unk2, HU3D_MOTATTR_PAUSE); Hu3DModelPosSet(temp_r31->unkA, temp_r31->unk40.x + (100.0 * sind(lbl_1_bss_778)), 200.0f + temp_r31->unk40.y, temp_r31->unk40.z + (100.0 * cosd(lbl_1_bss_778))); - Hu3DModelAttrReset(temp_r31->unkA, 1); + Hu3DModelAttrReset(temp_r31->unkA, HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(temp_r31->unkA, 0x40000002); HuPrcSleep(10); - Hu3DModelAttrSet(temp_r31->unk0, 0x40000002); - Hu3DModelAttrSet(temp_r31->unk2, 0x40000002); + Hu3DModelAttrSet(temp_r31->unk0, HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(temp_r31->unk2, HU3D_MOTATTR_PAUSE); HuPrcSleep(10); Hu3DModelPosSet(temp_r31->unk6, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); Hu3DModelPosSet(temp_r31->unk8, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); - Hu3DModelAttrReset(temp_r31->unk6, 1); - Hu3DModelAttrReset(temp_r31->unk8, 1); + Hu3DModelAttrReset(temp_r31->unk6, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(temp_r31->unk8, HU3D_ATTR_DISPOFF); Hu3DModelShadowDispOn(temp_r31->unk6); for (sp134 = 0.0f, sp130 = 1.0f; sp134 < 1; sp134 += 0.05f, sp130 -= 0.1f) { @@ -2037,12 +2038,12 @@ void fn_1_ADC8(void) for (; var_f31; var_r31++, var_f31--) { if (var_r31 == 0x33) { Hu3DModelAttrReset(lbl_1_bss_798[0], 0x40000002); - Hu3DModelAttrReset(lbl_1_bss_798[0], 1); + Hu3DModelAttrReset(lbl_1_bss_798[0], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(lbl_1_bss_798[0], 1465.0f, 770.0f, -2400.0f); } if (var_r31 == 0x47) { Hu3DModelAttrReset(lbl_1_bss_798[1], 0x40000002); - Hu3DModelAttrReset(lbl_1_bss_798[1], 1); + Hu3DModelAttrReset(lbl_1_bss_798[1], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(lbl_1_bss_798[1], 1531.0f, 773.0f, -2380.0f); } if (var_r31 == 0x82) { @@ -2110,9 +2111,9 @@ void fn_1_B1C0(void) HuAudFXPlay(0x57F); fn_1_6EC(1465.0f, 770.0f, -2400.0f, 0x589); HuPrcSleep(1); - Hu3DModelAttrSet(lbl_1_bss_2F8.unk0, 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_2F8.unk0, HU3D_MOTATTR_PAUSE); Hu3DModelClusterAttrSet(lbl_1_bss_2F8.unk0, 0, -0x3FFFFFFE); - Hu3DModelAttrSet(lbl_1_bss_2F8.unk2, 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_2F8.unk2, HU3D_MOTATTR_PAUSE); Hu3DModelClusterAttrSet(lbl_1_bss_2F8.unk2, 0, -0x3FFFFFFE); HuPrcSleep(1.0f + wipeData.duration); fn_1_ADC8(); diff --git a/src/REL/m413Dll/main.c b/src/REL/m413Dll/main.c index 2041f1b1..7ae0c7e6 100644 --- a/src/REL/m413Dll/main.c +++ b/src/REL/m413Dll/main.c @@ -1281,7 +1281,7 @@ void fn_1_52A4(s32 arg0) lbl_1_bss_D4[lbl_1_bss_D0][1] = 1; lbl_1_bss_D4[lbl_1_bss_D0][0] = 0; for (temp_r19 = 0; temp_r19 < 10; temp_r19++) { - Hu3DModelAttrSet(lbl_1_bss_30->model[((lbl_1_bss_D0 * 10) + 13 + temp_r19)], 1); + Hu3DModelAttrSet(lbl_1_bss_30->model[((lbl_1_bss_D0 * 10) + 13 + temp_r19)], HU3D_ATTR_DISPOFF); } } for (temp_r19 = 0; temp_r19 < sp14C8[temp_r29].unk1; temp_r19++) { @@ -1299,7 +1299,8 @@ void fn_1_52A4(s32 arg0) if (lbl_1_bss_D4[lbl_1_bss_D0][0] < 10) { Hu3DModelPosSet(lbl_1_bss_30->model[((lbl_1_bss_D0 * 10) + 13 + lbl_1_bss_D4[lbl_1_bss_D0][0])], (((temp_r26->unk18 * 100) - 500.0) - 50.0), 50.0f + ((100.0f * temp_r26->unk1C.y) - 500.0f), 120); - Hu3DModelAttrReset(lbl_1_bss_30->model[((lbl_1_bss_D0 * 10) + 13 + lbl_1_bss_D4[lbl_1_bss_D0][0])], 1); + Hu3DModelAttrReset( + lbl_1_bss_30->model[((lbl_1_bss_D0 * 10) + 13 + lbl_1_bss_D4[lbl_1_bss_D0][0])], HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(lbl_1_bss_30->model[((lbl_1_bss_D0 * 10) + 13 + lbl_1_bss_D4[lbl_1_bss_D0][0])], 2.0f); lbl_1_bss_D4[lbl_1_bss_D0][0]++; lbl_1_bss_B8.unk4 += 4; @@ -1652,7 +1653,7 @@ void fn_1_8C10(omObjData *object) lbl_1_bss_D4[temp_r25][0] = 0; lbl_1_bss_D4[temp_r25][1] = 0; for (temp_r21 = 0; temp_r21 < 10; temp_r21++) { - Hu3DModelAttrSet(object->model[(temp_r25 * 10) + 13 + temp_r21], 1); + Hu3DModelAttrSet(object->model[(temp_r25 * 10) + 13 + temp_r21], HU3D_ATTR_DISPOFF); } } } @@ -2013,14 +2014,14 @@ void fn_1_C6E0(omObjData *object) object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x01)); Hu3DMotionSpeedSet(object->model[1], 0); Hu3DModelPosSet(object->model[1], 0, 0, 0); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); object->model[2] = Hu3DHookFuncCreate(fn_1_B6C4); Hu3DModelLayerSet(object->model[2], 1); for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { object->model[temp_r30 + 3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x03) + temp_r30); - Hu3DModelAttrSet(object->model[temp_r30 + 3], 1); + Hu3DModelAttrSet(object->model[temp_r30 + 3], HU3D_ATTR_DISPOFF); object->model[temp_r30 + 7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x07) + temp_r30); - Hu3DModelAttrSet(object->model[temp_r30 + 7], 1); + Hu3DModelAttrSet(object->model[temp_r30 + 7], HU3D_ATTR_DISPOFF); } for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { s32 temp_r28; @@ -2031,7 +2032,7 @@ void fn_1_C6E0(omObjData *object) temp_r28 = DATA_MAKE_NUM(DATADIR_M413, 0x0C); } object->model[temp_r30 + 11] = Hu3DModelCreateFile(temp_r28); - Hu3DModelAttrSet(object->model[temp_r30 + 11], 1); + Hu3DModelAttrSet(object->model[temp_r30 + 11], HU3D_ATTR_DISPOFF); } for (temp_r30 = 0; temp_r30 < 5; temp_r30++) { s32 temp_r29; @@ -2040,7 +2041,7 @@ void fn_1_C6E0(omObjData *object) if (temp_r29 != 0) { object->model[(13 + (temp_r30 * 10) + temp_r29)] = Hu3DModelLink(object->model[(temp_r30 * 10) + 13]); } - Hu3DModelAttrSet(object->model[(13 + (temp_r30 * 10) + temp_r29)], 1); + Hu3DModelAttrSet(object->model[(13 + (temp_r30 * 10) + temp_r29)], HU3D_ATTR_DISPOFF); Hu3DModelLayerSet(object->model[(13 + (temp_r30 * 10) + temp_r29)], 2); } } @@ -2127,7 +2128,7 @@ void fn_1_CBB4(omObjData *object) Hu3DMotionSpeedSet(object->model[1], 0.0f); Hu3DMotionSpeedSet(object->model[2], 0.0f); Hu3DMotionSpeedSet(object->model[3], 0.0f); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(object->model[0], 60.0f); Hu3DMotionSpeedSet(object->model[0], 0.0f); object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x0D) + temp_r31->unk18); @@ -2136,7 +2137,7 @@ void fn_1_CBB4(omObjData *object) Hu3DMotionSpeedSet(object->model[4], 0.0f); object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M413, 0x15) + temp_r31->unk18); Hu3DModelPosSet(object->model[5], (temp_r31->unk10 * 300) - 450, 0, 0); - Hu3DModelAttrSet(object->model[5], 0x40000001); + Hu3DModelAttrSet(object->model[5], HU3D_MOTATTR_LOOP); Hu3DMotionSpeedSet(object->model[5], 0.0f); { AnimData *temp_r23 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_MGCONST, 0x38) + GWPlayerCfg[temp_r31->unk14].character); diff --git a/src/REL/m414Dll/main.c b/src/REL/m414Dll/main.c index 708e82d9..4a94fa5e 100644 --- a/src/REL/m414Dll/main.c +++ b/src/REL/m414Dll/main.c @@ -240,7 +240,8 @@ void ObjectSetup(void) if (var_r30 >= 6) { if (lbl_1_bss_978 == 0) { var_r30 = 1; - } else { + } + else { var_r30 = 0; } } @@ -312,7 +313,7 @@ void fn_1_CD8(s32 arg0, s32 arg1, float arg8) var_r30->user_data = var_r31; var_r31->unk_00 = arg0; var_r31->unk_04 = arg1; - var_r31->unk_08 = arg8; + var_r31->unk_08 = arg8; } void fn_1_D54(ModelData *arg0, ParticleData *arg1, Mtx arg2, s32 arg3) @@ -572,7 +573,8 @@ void fn_1_1C48(void) var_r31 = HuPrcCurrentGet()->user_data; if (var_r31->unk_44 & 1) { HuAudFXPlay(1446); - } else { + } + else { HuAudFXPlay(1445); } var_r31->unk_54 = 1; @@ -620,7 +622,8 @@ void fn_1_1E04(void) var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 8), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30 = Hu3DModelCreate(var_r27); var_r22 = var_r30; - } else { + } + else { var_r30 = Hu3DModelLink(var_r22); } Hu3DModelCameraSet(var_r30, 15); @@ -630,47 +633,51 @@ void fn_1_1E04(void) var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 0), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30 = Hu3DModelCreate(var_r27); var_r24 = var_r30; - } else { + } + else { var_r30 = Hu3DModelLink(var_r24); } var_r31->unk_30[var_r29] = var_r30; Hu3DModelCameraSet(var_r30, 1 << var_r31->unk_48); Hu3DModelShadowMapSet(var_r30); - Hu3DModelAttrSet(var_r30, 0x4000); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_NOCULL); Hu3DModelRotSet(var_r30, 0.0f, 40.0f * var_r29, 0.0f); Hu3DModelPosSet(var_r30, 2000.0f * (var_r28 % 2), 0.0f, 2000.0f * (var_r28 / 2)); } if (!var_r28) { var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 5), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30 = Hu3DModelCreate(var_r27); - } else { + } + else { var_r30 = Hu3DModelLink(lbl_1_bss_F0[0].unk_42); } var_r31->unk_42 = var_r30; Hu3DModelCameraSet(var_r30, 1 << var_r31->unk_48); Hu3DModelShadowMapSet(var_r30); - Hu3DModelAttrSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); Hu3DModelPosSet(var_r30, 2000.0f * (var_r28 % 2), 0.0f, 2000.0f * (var_r28 / 2)); for (var_r29 = 0; var_r29 < 9; var_r29++) { if (!var_r28) { var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 1) + lbl_1_data_68[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30 = Hu3DModelCreate(var_r27); - } else { + } + else { var_r30 = Hu3DModelLink(lbl_1_bss_F0->unk_00[var_r29]); } var_r31->unk_00[var_r29] = var_r30; Hu3DModelRotSet(var_r30, 0.0f, 40.0f * var_r29, 0.0f); Hu3DModelCameraSet(var_r30, 1 << var_r31->unk_48); - Hu3DModelAttrSet(var_r30, 0x4000); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_NOCULL); Hu3DModelPosSet(var_r30, 2000.0f * (var_r28 % 2), 0.0f, 2000.0f * (var_r28 / 2)); - Hu3DModelAttrSet(var_r30, 0x40000002); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_PAUSE); } for (var_r29 = 0; var_r29 < 16; var_r29++) { if (!var_r28 && !var_r29) { var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 6), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30 = Hu3DModelCreate(var_r27); var_r23 = var_r30; - } else { + } + else { var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 6), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30 = Hu3DModelCreate(var_r27); var_r23 = var_r30; @@ -679,7 +686,7 @@ void fn_1_1E04(void) var_r31->unk_D4[var_r29] = var_r30; Hu3DModelPosSet(var_r30, 2000.0f * (var_r28 % 2), 330.0f - (330.0f * (var_r29 & 1)), 2000.0f * (var_r28 / 2)); Hu3DModelRotSet(var_r30, 0.0f, 40.0f * ((var_r29 + 2) / 2), 0.0f); - Hu3DModelAttrSet(var_r30, 0x4000); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_NOCULL); Hu3DModelAttrSet(var_r30, 0x40000082); Hu3DMotionSpeedSet(var_r30, 3.0f); Hu3DMotionShapeSpeedSet(var_r30, 3.0f); @@ -687,7 +694,8 @@ void fn_1_1E04(void) if (!var_r28) { var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 9), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30 = Hu3DModelCreate(var_r27); - } else { + } + else { var_r30 = Hu3DModelLink(lbl_1_bss_F0[0].unk_20); } var_r31->unk_20 = var_r30; @@ -700,7 +708,7 @@ void fn_1_1E04(void) } Hu3DMotionSet(var_r30, var_r31->unk_22[0]); Hu3DMotionTimeSet(var_r30, 0.0f); - Hu3DModelAttrSet(var_r30, 0x40000002); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_PAUSE); Hu3DMotionSpeedSet(var_r30, 2.0f); var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 15), MEMORY_DEFAULT_NUM, HEAP_DATA); @@ -751,22 +759,24 @@ void fn_1_1E04(void) var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 22) + lbl_1_bss_938[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30 = Hu3DModelCreate(var_r27); sp18[lbl_1_bss_938[var_r29]] = var_r30; - } else { + } + else { var_r30 = Hu3DModelLink(sp18[lbl_1_bss_938[var_r29]]); } - } else { + } + else { var_r30 = Hu3DModelLink(sp18[lbl_1_bss_938[var_r29]]); } var_r31->unk_94[var_r29] = var_r30; var_r31->unk_F4[var_r29] = 0; Hu3DModelCameraSet(var_r30, 1 << var_r31->unk_48); - Hu3DModelAttrSet(var_r30, 0x40000001); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 34) + lbl_1_bss_938[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA); var_r31->unk_B4[var_r29] = Hu3DJointMotion(var_r30, var_r27); var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 28) + lbl_1_bss_938[var_r29], MEMORY_DEFAULT_NUM, HEAP_DATA); Hu3DMotionSet(var_r30, Hu3DJointMotion(var_r30, var_r27)); - Hu3DModelAttrSet(var_r30, 0x40000001); - Hu3DModelAttrSet(var_r30, 0x4000); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_NOCULL); var_f29 = -950.0 * sind(var_f31); var_f29 = var_f29; var_f28 = -950.0 * cosd(var_f31); @@ -774,7 +784,8 @@ void fn_1_1E04(void) if (var_r29 & 1) { var_f30 = 220.0f; var_f31 += 40.0f; - } else { + } + else { var_f30 = 570.0f; } if (!lbl_1_bss_938[var_r29]) { @@ -783,7 +794,8 @@ void fn_1_1E04(void) HuSetVecF(&var_r31->unk_134[var_r29], var_f29, var_f30, var_f28); if (lbl_1_bss_938[var_r29]) { (void)var_r29; - } else { + } + else { (void)var_r29; } Hu3DModelPosSet(var_r30, var_f29 + (2000.0f * (var_r28 % 2)), var_f30, var_f28 + (2000.0f * (var_r28 / 2))); @@ -810,7 +822,7 @@ void fn_1_1E04(void) var_r31->unk_14[var_r29] = CharModelMotionCreate(lbl_1_data_30[GWPlayerCfg[var_r28].character], lbl_1_data_50[var_r29]); } CharModelMotionSet(lbl_1_data_30[GWPlayerCfg[var_r28].character], var_r31->unk_14[0]); - Hu3DModelAttrSet(var_r31->unk_12, 0x40000001); + Hu3DModelAttrSet(var_r31->unk_12, HU3D_MOTATTR_LOOP); CharModelMotionDataClose(lbl_1_data_30[GWPlayerCfg[var_r28].character]); var_r25 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 0), MEMORY_DEFAULT_NUM)); @@ -873,7 +885,7 @@ void fn_1_1E04(void) lbl_1_bss_A10 = var_r30; Hu3DModelScaleSet(var_r30, 0.5f, 0.5f, 0.5f); Hu3DModelCameraSet(var_r30, 16); - Hu3DModelAttrSet(var_r30, 0x40000002); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_PAUSE); var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M414, 40), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30 = Hu3DModelCreate(var_r27); @@ -954,7 +966,8 @@ void fn_1_3B34(void) var_f31 = (0.5 * var_f31) + (0.5 * (1.0f - ((1.0f - var_f31) * (1.0f - var_f31)))); if (var_f31 < 0.75) { var_f29 = var_f31 / 0.75; - } else { + } + else { var_f29 = 1.0; } var_f30 = var_f29; @@ -982,7 +995,8 @@ void fn_1_3D48(s32 arg0, s32 arg1) var_r28 = lbl_1_bss_97C[var_r31->unk_44]; if (arg1 == 0) { lbl_1_bss_97C[var_r31->unk_44]++; - } else { + } + else { lbl_1_bss_97C[var_r31->unk_44]--; } for (var_r30 = 0; var_r30 < 3; var_r30++) { @@ -994,7 +1008,8 @@ void fn_1_3D48(s32 arg0, s32 arg1) } HuSprAttrSet(var_r31->unk_2E, (var_r30 * 2) + 2, 4); HuSprAttrReset(var_r31->unk_2E, (var_r30 * 2) + 3, 4); - } else { + } + else { HuSprAttrReset(var_r31->unk_2E, (var_r30 * 2) + 2, 4); HuSprAttrSet(var_r31->unk_2E, (var_r30 * 2) + 3, 4); } @@ -1038,17 +1053,20 @@ void fn_1_3ECC(void) var_f31 = 40.0f * ((var_r30 + 2) / 2); if (var_r31->unk_70 - var_f31 >= 0.0f) { var_f29 = var_r31->unk_70 - var_f31; - } else { + } + else { var_f29 = -(var_r31->unk_70 - var_f31); } if (var_f29 < 45.0f || (0.0f == var_r31->unk_70 && var_r30 >= 14)) { if (var_r30 == fn_1_654C(var_r31->unk_44, 0) || var_r30 == fn_1_654C(var_r31->unk_44, 1)) { if (var_r31->unk_44 & 1) { HuAudFXPlay(1434); - } else { + } + else { HuAudFXPlay(1433); } - } else { + } + else { HuAudFXPlay(1450); } } @@ -1073,17 +1091,20 @@ void fn_1_3ECC(void) var_f30 = 40.0f * ((var_r30 + 2) / 2); if (var_r31->unk_70 - var_f30 >= 0.0f) { var_f28 = var_r31->unk_70 - var_f30; - } else { + } + else { var_f28 = -(var_r31->unk_70 - var_f30); } if (var_f28 < 45.0f || (0.0f == var_r31->unk_70 && var_r30 >= 14)) { if (var_r30 == fn_1_654C(var_r31->unk_44, 0) || var_r30 == fn_1_654C(var_r31->unk_44, 1)) { if (var_r31->unk_44 & 1) { HuAudFXPlay(1436); - } else { + } + else { HuAudFXPlay(1435); } - } else { + } + else { HuAudFXPlay(1452); } } @@ -1120,19 +1141,22 @@ void fn_1_42AC(void) HuPrcSleep(30); if (var_r31->unk_44 & 1) { HuAudFXPlay(1444); - } else { + } + else { HuAudFXPlay(1443); } if (var_r31->unk_44 & 1) { HuAudFXPlay(1448); - } else { + } + else { HuAudFXPlay(1447); } if (var_r30->unk_08) { var_f24 = -200.0 * (sind(lbl_1_bss_920[var_r27]) * cos(0.0)); var_f26 = 150.0 + (-200.0 * sin(0.0)); var_f23 = -200.0 * (cos(0.0) * cosd(lbl_1_bss_920[var_r27])); - } else { + } + else { var_f24 = -200.0 * (sind(lbl_1_bss_920[var_r27]) * cos(0.3490658503988659)); var_f26 = 150.0 + (-200.0 * sin(-0.3490658503988659)); var_f23 = -200.0 * (cos(-0.3490658503988659) * cosd(lbl_1_bss_920[var_r27])); @@ -1173,7 +1197,7 @@ void fn_1_42AC(void) HuPrcVSleep(); } var_r31->unk_F4[var_r30->unk_04] = 1; - Hu3DModelAttrSet(var_r31->unk_94[var_r30->unk_04], 1); + Hu3DModelAttrSet(var_r31->unk_94[var_r30->unk_04], HU3D_ATTR_DISPOFF); for (var_r28 = 0, sp8[0] = 0; var_r28 < 4; var_r28++) { if (lbl_1_bss_97C[var_r28] >= 3) { break; @@ -1185,11 +1209,12 @@ void fn_1_42AC(void) CharModelMotionSpeedSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], 1.0f); if (var_r30->unk_08) { CharModelMotionShiftSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[1], 60.0f, 5.0f, HU3D_MOTATTR_NONE); - } else { + } + else { CharModelMotionShiftSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[1], 0.0f, 5.0f, HU3D_MOTATTR_NONE); } HuPrcSleep(5); - Hu3DModelAttrSet(var_r31->unk_12, 0x40000002); + Hu3DModelAttrSet(var_r31->unk_12, HU3D_MOTATTR_PAUSE); CharModelMotionSpeedSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], 2.0f); var_r30->unk_0C = 0; HuPrcSleep(5); @@ -1251,7 +1276,8 @@ s32 fn_1_4C74(UnkM414BssF0Struct *arg0) } if (var_r29 - sp8[var_r31] >= 0) { var_r25 = var_r29 - sp8[var_r31]; - } else { + } + else { var_r25 = -(var_r29 - sp8[var_r31]); } var_r27 = var_r25; @@ -1303,7 +1329,7 @@ inline s32 fn_1_4C74_inline(UnkM414BssF0Struct *arg0) if (!var_r31) { return 0; } - + return var_r29 - sp8[var_r26]; } @@ -1352,14 +1378,17 @@ void fn_1_4E10(UnkM414BssF0Struct *arg0) if (!(Hu3DModelMotionAttrGet(arg0->unk_D4[fn_1_654C(arg0->unk_44, 0)]) & 0x40000004)) { arg0->unk_200 = 256; } - } else { + } + else { arg0->unk_1FD = -50; } - } else if (lbl_1_bss_978 == lbl_1_bss_938[fn_1_654C(arg0->unk_44, 1)] && !arg0->unk_F4[fn_1_654C(arg0->unk_44, 1)]) { + } + else if (lbl_1_bss_978 == lbl_1_bss_938[fn_1_654C(arg0->unk_44, 1)] && !arg0->unk_F4[fn_1_654C(arg0->unk_44, 1)]) { if (!(Hu3DModelMotionAttrGet(arg0->unk_D4[fn_1_654C(arg0->unk_44, 1)]) & 0x40000004)) { arg0->unk_200 = 256; } - } else { + } + else { arg0->unk_1FD = 50; } } @@ -1393,7 +1422,8 @@ s8 fn_1_5554(s32 arg0, s32 arg1) // similar to m411Dll/main.c::fn_1_5D58 if (lbl_1_bss_98C < 4) { if (!GWPlayerCfg[arg0].iscom) { (arg1) ? (var_r30 = HuPadStkY[var_r31->unk_4C]) : (var_r30 = HuPadStkX[var_r31->unk_4C]); - } else { + } + else { (arg1) ? (var_r30 = var_r31->unk_1FD) : (var_r30 = var_r31->unk_1FC); } } @@ -1410,7 +1440,8 @@ u8 fn_1_5624(s32 arg0, s32 arg1) if (lbl_1_bss_98C < 4) { if (!GWPlayerCfg[arg0].iscom) { (arg1) ? (var_r30 = HuPadTrigR[var_r31->unk_4C]) : (var_r30 = HuPadTrigL[var_r31->unk_4C]); - } else { + } + else { (arg1) ? (var_r30 = var_r31->unk_1FE) : (var_r30 = var_r31->unk_1FF); } } @@ -1427,7 +1458,8 @@ u16 fn_1_56FC(s32 arg0) if (lbl_1_bss_98C < 4) { if (!GWPlayerCfg[arg0].iscom) { var_r30 = HuPadBtnDown[var_r31->unk_4C]; - } else { + } + else { var_r30 = var_r31->unk_200; } } @@ -1457,19 +1489,22 @@ void fn_1_5780(UnkM414BssF0Struct *arg0, float arg8) } if (var_f30 - var_f31 >= 0.0f) { var_f27 = var_f30 - var_f31; - } else { + } + else { var_f27 = -(var_f30 - var_f31); } var_f28 = var_f27; if (var_f28 < var_f29 || arg0->unk_F4[var_r31] == 1) { - Hu3DModelAttrSet(arg0->unk_94[var_r31], 1); - } else { - Hu3DModelAttrReset(arg0->unk_94[var_r31], 1); + Hu3DModelAttrSet(arg0->unk_94[var_r31], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrReset(arg0->unk_94[var_r31], HU3D_ATTR_DISPOFF); } if (var_f28 < var_f29) { - Hu3DModelAttrSet(arg0->unk_D4[var_r31], 1); - } else { - Hu3DModelAttrReset(arg0->unk_D4[var_r31], 1); + Hu3DModelAttrSet(arg0->unk_D4[var_r31], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrReset(arg0->unk_D4[var_r31], HU3D_ATTR_DISPOFF); } if (var_r31 & 1) { var_f30 += 40.0f; @@ -1486,14 +1521,16 @@ void fn_1_5780(UnkM414BssF0Struct *arg0, float arg8) } if (var_f30 - var_f31 >= 0.0f) { var_f26 = var_f30 - var_f31; - } else { + } + else { var_f26 = -(var_f30 - var_f31); } var_f28 = var_f26; if (var_f28 < var_f29) { - Hu3DModelAttrSet(arg0->unk_00[var_r31], 1); - } else { - Hu3DModelAttrReset(arg0->unk_00[var_r31], 1); + Hu3DModelAttrSet(arg0->unk_00[var_r31], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrReset(arg0->unk_00[var_r31], HU3D_ATTR_DISPOFF); } } } @@ -1521,7 +1558,8 @@ void fn_1_5A3C(void) if (var_r31->unk_04) { var_f30 = 40.0f + lbl_1_bss_920[var_r28]; var_f29 = 40.0f; - } else { + } + else { var_f30 = lbl_1_bss_920[var_r28] - 40.0f; var_f29 = -40.0f; } @@ -1532,15 +1570,16 @@ void fn_1_5A3C(void) var_f30 += 360.0f; } for (var_r30 = 0; var_r30 < 9; var_r30++) { - Hu3DModelAttrSet(var_r31->unk_00->unk_00[var_r30], 0x40000002); + Hu3DModelAttrSet(var_r31->unk_00->unk_00[var_r30], HU3D_MOTATTR_PAUSE); } for (var_r30 = 0, var_f28 = 0.0f; var_r30 < 10; var_r30++, var_f28 += 9.0f) { - var_f27 = (var_f29/2) * (1.0 - cosd(var_f28)); + var_f27 = (var_f29 / 2) * (1.0 - cosd(var_f28)); lbl_1_bss_920[var_r28] = var_f26 + var_f27; for (var_r29 = 0; var_r29 < 9; var_r29++) { if (!var_r31->unk_04) { var_f31 = (var_f27 / var_f29) * Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r29]); - } else { + } + else { var_f31 = Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r29]) - (var_f27 / var_f29) * Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r29]); } @@ -1549,12 +1588,13 @@ void fn_1_5A3C(void) HuPrcVSleep(); } for (var_r30 = 0, var_f28 = 0.0f; var_r30 < 10; var_r30++, var_f28 += 9.0f) { - var_f27 = (var_f29/2) + ((var_f29/2) * sind(var_f28)); + var_f27 = (var_f29 / 2) + ((var_f29 / 2) * sind(var_f28)); lbl_1_bss_920[var_r28] = var_f26 + var_f27; for (var_r29 = 0; var_r29 < 9; var_r29++) { if (!var_r31->unk_04) { var_f31 = (var_f27 / var_f29) * Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r29]); - } else { + } + else { var_f31 = Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r29]) - (var_f27 / var_f29) * Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r29]); } @@ -1566,7 +1606,8 @@ void fn_1_5A3C(void) for (var_r30 = 0; var_r30 < 9; var_r30++) { Hu3DMotionTimeSet(var_r31->unk_00->unk_00[var_r30], Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r30])); } - } else { + } + else { for (var_r30 = 0; var_r30 < 9; var_r30++) { Hu3DMotionTimeSet(var_r31->unk_00->unk_00[var_r30], 0.0f); } @@ -1596,7 +1637,8 @@ void fn_1_5EE8(void) if (var_r31->unk_04) { var_f31 = 40.0f + lbl_1_bss_920[var_r29]; var_f29 = 40.0f; - } else { + } + else { var_f31 = lbl_1_bss_920[var_r29] - 40.0f; var_f29 = -40.0f; } @@ -1607,11 +1649,11 @@ void fn_1_5EE8(void) var_f31 += 360.0f; } for (var_r30 = 0, var_f30 = 0.0f; var_r30 < 15; var_r30++, var_f30 += 6.0f) { - var_r31->unk_00->unk_70 = var_f28 + ((var_f29/2) * (1.0 - cosd(var_f30))); + var_r31->unk_00->unk_70 = var_f28 + ((var_f29 / 2) * (1.0 - cosd(var_f30))); HuPrcVSleep(); } for (var_r30 = 0, var_f30 = 0.0f; var_r30 < 15; var_r30++, var_f30 += 6.0f) { - var_r31->unk_00->unk_70 = (var_f29/2) + (var_f28 + ((var_f29/2) * sind(var_f30))); + var_r31->unk_00->unk_70 = (var_f29 / 2) + (var_f28 + ((var_f29 / 2) * sind(var_f30))); HuPrcVSleep(); } var_r31->unk_00->unk_70 = var_f31; @@ -1714,7 +1756,8 @@ void fn_1_6644(void) if (0.0f == Hu3DMotionTimeGet(var_r31->unk_20)) { Hu3DMotionSet(var_r31->unk_20, var_r31->unk_22[0]); var_r31->unk_1F4 = 1; - } else { + } + else { var_r31->unk_1F4 = 2; Hu3DMotionSet(var_r31->unk_20, var_r31->unk_22[0]); Hu3DMotionTimeSet(var_r31->unk_20, Hu3DMotionMaxTimeGet(var_r31->unk_20)); @@ -1724,7 +1767,7 @@ void fn_1_6644(void) var_r31->unk_1F4 = 1; var_r31->unk_1F8 = -1; Hu3DMotionSet(var_r31->unk_20, var_r31->unk_22[0]); - Hu3DModelAttrSet(var_r31->unk_20, 0x40000002); + Hu3DModelAttrSet(var_r31->unk_20, HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(var_r31->unk_20, 0x40000004); Hu3DMotionSpeedSet(var_r31->unk_20, 2.0f); } @@ -1743,7 +1786,8 @@ void fn_1_6644(void) if (!var_r31->unk_F4[var_r29]) { if (var_r31->unk_44 & 1) { HuAudFXPlay(1442); - } else { + } + else { HuAudFXPlay(1441); } omVibrate(var_r31->unk_44, 12, 6, 6); @@ -1756,16 +1800,17 @@ void fn_1_6644(void) var_r30->user_data = var_r31; if (lbl_1_bss_978 == lbl_1_bss_938[var_r29] && fn_1_65DC(var_r31, var_r29)) { Hu3DModelAttrReset(var_r31->unk_D4[var_r29], 0x40000186); - var_r30 = HuPrcChildCreate(fn_1_42AC, 8192, 8192, 0, HuPrcCurrentGet()); - var_r30->user_data = &sp8C; - sp8C.unk_00 = var_r31; - sp8C.unk_08 = 0; - sp8C.unk_0C = 1; - sp8C.unk_04 = fn_1_654C(var_r31->unk_44, sp8C.unk_08); - while (sp8C.unk_0C) { - HuPrcVSleep(); - } - } else { + var_r30 = HuPrcChildCreate(fn_1_42AC, 8192, 8192, 0, HuPrcCurrentGet()); + var_r30->user_data = &sp8C; + sp8C.unk_00 = var_r31; + sp8C.unk_08 = 0; + sp8C.unk_0C = 1; + sp8C.unk_04 = fn_1_654C(var_r31->unk_44, sp8C.unk_08); + while (sp8C.unk_0C) { + HuPrcVSleep(); + } + } + else { HuPrcSleep(10); Hu3DModelAttrReset(var_r31->unk_D4[var_r29], 0x40000082); Hu3DModelAttrSet(var_r31->unk_D4[var_r29], 0x40000104); @@ -1779,19 +1824,22 @@ void fn_1_6644(void) HuPrcSleep(10); if (var_r31->unk_44 & 1) { HuAudFXPlay(1444); - } else { + } + else { HuAudFXPlay(1443); } Hu3DModelAttrReset(var_r31->unk_D4[var_r29], 0x40000004); HuPrcSleep(10); } } - } else if (var_r31->unk_1F4 == 2) { + } + else if (var_r31->unk_1F4 == 2) { var_r29 = fn_1_654C(var_r31->unk_44, 1); if (!var_r31->unk_F4[var_r29]) { if (var_r31->unk_44 & 1) { HuAudFXPlay(1442); - } else { + } + else { HuAudFXPlay(1441); } omVibrate(var_r31->unk_44, 12, 6, 6); @@ -1803,16 +1851,17 @@ void fn_1_6644(void) var_r30->user_data = var_r31; if (lbl_1_bss_978 == lbl_1_bss_938[var_r29] && fn_1_65DC(var_r31, var_r29)) { Hu3DModelAttrReset(var_r31->unk_D4[var_r29], 0x40000186); - var_r30 = HuPrcChildCreate(fn_1_42AC, 8192, 8192, 0, HuPrcCurrentGet()); - var_r30->user_data = &sp8C; - sp8C.unk_00 = var_r31; - sp8C.unk_08 = 1; - sp8C.unk_0C = 1; - sp8C.unk_04 = fn_1_654C(var_r31->unk_44, sp8C.unk_08); - while (sp8C.unk_0C) { - HuPrcVSleep(); - } - } else { + var_r30 = HuPrcChildCreate(fn_1_42AC, 8192, 8192, 0, HuPrcCurrentGet()); + var_r30->user_data = &sp8C; + sp8C.unk_00 = var_r31; + sp8C.unk_08 = 1; + sp8C.unk_0C = 1; + sp8C.unk_04 = fn_1_654C(var_r31->unk_44, sp8C.unk_08); + while (sp8C.unk_0C) { + HuPrcVSleep(); + } + } + else { HuPrcSleep(10); Hu3DModelAttrReset(var_r31->unk_D4[var_r29], 0x40000082); Hu3DModelAttrSet(var_r31->unk_D4[var_r29], 0x40000104); @@ -1825,7 +1874,8 @@ void fn_1_6644(void) HuPrcSleep(15); if (var_r31->unk_44 & 1) { HuAudFXPlay(1444); - } else { + } + else { HuAudFXPlay(1443); } Hu3DModelAttrReset(var_r31->unk_D4[var_r29], 0x40000004); @@ -1861,12 +1911,15 @@ void fn_1_6644(void) if (var_r28) { if (var_r31->unk_44 & 1) { HuAudFXPlay(1440); - } else { + } + else { HuAudFXPlay(1439); } - } else if (var_r31->unk_44 & 1) { + } + else if (var_r31->unk_44 & 1) { HuAudFXPlay(1438); - } else { + } + else { HuAudFXPlay(1437); } var_r31->unk_58 = 1; @@ -1912,8 +1965,8 @@ void fn_1_76F4(void) var_f29 = Hu3DMotionMaxTimeGet(var_r31->unk_20); sp14.y = 220.0f + (350.0f * (1.0f - (Hu3DMotionTimeGet(var_r31->unk_20) / var_f29))); Hu3D3Dto2D(&sp14, 1 << var_r31->unk_48, &sp8); - var_f31 = (282.0f * (var_r31->unk_44 % 2)) + (sp8.x /2); - var_f30 = (225.0f * (var_r31->unk_44 / 2)) + (sp8.y /2); + var_f31 = (282.0f * (var_r31->unk_44 % 2)) + (sp8.x / 2); + var_f30 = (225.0f * (var_r31->unk_44 / 2)) + (sp8.y / 2); var_f31 += 3.0f; var_f30 -= 15.0f; HuSprGrpPosSet(var_r31->unk_2C, var_f31, var_f30); @@ -1952,7 +2005,7 @@ void fn_1_79A8(void) } Hu3DCameraViewportSet(16, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f); Hu3DCameraScissorSet(16, 0, 0, 0, 0); - Hu3DModelAttrSet(lbl_1_bss_A10, 1); + Hu3DModelAttrSet(lbl_1_bss_A10, HU3D_ATTR_DISPOFF); HuPrcSleep(30); for (var_r29 = 0; var_r29 < 45; var_r29++) { for (var_r30 = 0; var_r30 < 4; var_r30++) { @@ -1986,7 +2039,7 @@ void fn_1_79A8(void) HuPrcSleep(5); for (var_r30 = 0; var_r30 < 4; var_r30++) { var_r31 = &lbl_1_bss_F0[var_r30]; - Hu3DModelAttrSet(var_r31->unk_12, 1073741826); + Hu3DModelAttrSet(var_r31->unk_12, HU3D_MOTATTR_PAUSE); } HuPrcChildCreate(fn_1_397C, 4096, 8192, 0, HuPrcCurrentGet()); for (var_r30 = 0; var_r30 < 4; var_r30++) { @@ -2047,7 +2100,7 @@ void fn_1_7FC8(s32 arg0) if (lbl_1_bss_978 == 2) { Hu3DModelScaleSet(var_r30->unk_94[var_r28], 1.0f, 1.0f, 1.0f); } - Hu3DModelAttrReset(var_r30->unk_94[var_r28], 1); + Hu3DModelAttrReset(var_r30->unk_94[var_r28], HU3D_ATTR_DISPOFF); Hu3DModelShadowSet(var_r30->unk_94[var_r28]); if (var_r29++ >= 2) { break; @@ -2066,13 +2119,13 @@ void fn_1_7FC8(s32 arg0) var_r29 -= 9; } for (var_r28 = 0; var_r28 < 6; var_r28++) { - Hu3DModelAttrSet(var_r30->unk_30[var_r29], 1); + Hu3DModelAttrSet(var_r30->unk_30[var_r29], HU3D_ATTR_DISPOFF); var_r29++; if (var_r29 >= 9) { var_r29 = 0; } } - Hu3DModelAttrReset(var_r30->unk_42, 1); + Hu3DModelAttrReset(var_r30->unk_42, HU3D_ATTR_DISPOFF); Hu3DModelRotSet(var_r30->unk_42, 0.0f, lbl_1_bss_920[var_r30->unk_44], 0.0f); } for (var_r28 = 0; var_r28 < 30; var_r28++) { @@ -2124,7 +2177,8 @@ void fn_1_88D4(void) while (TRUE) { if (var_r31->unk_1F4 == 4 || var_r31->unk_1F4 == 5 || var_r31->unk_58) { HuPrcVSleep(); - } else { + } + else { break; } } @@ -2154,7 +2208,8 @@ void fn_1_894C(void) } if (var_r31 < 4) { HuPrcVSleep(); - } else { + } + else { break; } } @@ -2272,7 +2327,8 @@ void fn_1_8A70(void) HuAudSStreamPlay(1); GWPlayerCoinWinSet(var_r29, 10); var_r28 = MGSeqCreate(5, 3, GWPlayerCfg[var_r29].character, -1, -1, -1); - } else { + } + else { HuAudSStreamPlay(4); var_r28 = MGSeqCreate(3, 2); } diff --git a/src/REL/m415Dll/main.c b/src/REL/m415Dll/main.c index cdf5850f..a15069cf 100644 --- a/src/REL/m415Dll/main.c +++ b/src/REL/m415Dll/main.c @@ -1,11 +1,9 @@ #include "REL/m415Dll.h" -#include "rel_sqrt_consts.h" -#include "math.h" #include "ext_math.h" +#include "game/EnvelopeExec.h" #include "game/audio.h" #include "game/chrman.h" -#include "game/EnvelopeExec.h" #include "game/esprite.h" #include "game/frand.h" #include "game/hsfdraw.h" @@ -16,14 +14,16 @@ #include "game/pad.h" #include "game/sprite.h" #include "game/wipe.h" +#include "math.h" +#include "rel_sqrt_consts.h" // bss unkStruct5 lbl_1_bss_36C; -omObjData* lbl_1_bss_368; -omObjData* lbl_1_bss_364; -omObjData* lbl_1_bss_360; -omObjData* lbl_1_bss_35C; -omObjData* lbl_1_bss_34C[4]; +omObjData *lbl_1_bss_368; +omObjData *lbl_1_bss_364; +omObjData *lbl_1_bss_360; +omObjData *lbl_1_bss_35C; +omObjData *lbl_1_bss_34C[4]; u16 lbl_1_bss_34A; s16 lbl_1_bss_348; s16 lbl_1_bss_346; @@ -31,9 +31,9 @@ s16 lbl_1_bss_344; s16 lbl_1_bss_342; s16 lbl_1_bss_33A[4]; s16 lbl_1_bss_338; -u8* lbl_1_bss_334; +u8 *lbl_1_bss_334; s32 lbl_1_bss_234[4][4][4]; -void* lbl_1_bss_34[0x80]; +void *lbl_1_bss_34[0x80]; s32 lbl_1_bss_2C[2]; unkStruct lbl_1_bss_4[4]; static s32 pad_05_00000000_bss; @@ -46,11 +46,12 @@ Vec lbl_1_data_1C = { 0.0f, 3000.0f, -2000.0f }; Vec lbl_1_data_28 = { 0.0f, 1.0f, 0.0f }; Vec lbl_1_data_34 = { 0.0f, 0.0f, 0.0f }; -void ObjectSetup(void) { +void ObjectSetup(void) +{ s32 var_r31; - Process* temp_r30; - omObjData* var_r29; - LightData* var_r28; + Process *temp_r30; + omObjData *var_r29; + LightData *var_r28; s32 temp_r27; s32 var_r26; @@ -62,11 +63,11 @@ void ObjectSetup(void) { var_r28->unk_00 |= 0x8000; temp_r30 = omInitObjMan(0x32, 0x2000); temp_r27 = frand() & 0x1F; - + for (var_r31 = 0; var_r31 < temp_r27; var_r31++) { fn_1_679C(); } - + CRot.x = -55.0f; CRot.y = 0.0f; CRot.z = 0.0f; @@ -84,7 +85,7 @@ void ObjectSetup(void) { omAddObjEx(temp_r30, 0x60, 0, 0, -1, fn_1_6304); omMakeGroupEx(temp_r30, 0, 4); omGetGroupMemberListEx(temp_r30, 0); - + for (var_r31 = 0; var_r31 < 4; var_r31++) { lbl_1_bss_34C[var_r31] = var_r29 = omAddObjEx(temp_r30, 0x30, 6, 0xA, 0, fn_1_3208); var_r29->work[0] = var_r31; @@ -99,8 +100,9 @@ void ObjectSetup(void) { fn_1_8780(0x40, 0x40); } -void fn_1_43C(omObjData* object) { - CameraData* var_r31; +void fn_1_43C(omObjData *object) +{ + CameraData *var_r31; var_r31 = &Hu3DCamera[0]; lbl_1_bss_34A = 0; @@ -109,7 +111,8 @@ void fn_1_43C(omObjData* object) { object->func = fn_1_4B0; } -void fn_1_4B0(omObjData* object) { +void fn_1_4B0(omObjData *object) +{ Vec sp14; Vec sp8; s32 var_r31; @@ -167,20 +170,16 @@ void fn_1_4B0(omObjData* object) { extern s32 lbl_1_data_64 = -1; -void fn_1_7D8(omObjData* object) { - GXColor sp18[4] = { - { 0xF0, 0x00, 0x00, 0xFF }, - { 0x30, 0x60, 0xF0, 0xFF }, - { 0xE0, 0xE0, 0x00, 0xFF }, - { 0xFF, 0x80, 0x80, 0xFF } - }; +void fn_1_7D8(omObjData *object) +{ + GXColor sp18[4] = { { 0xF0, 0x00, 0x00, 0xFF }, { 0x30, 0x60, 0xF0, 0xFF }, { 0xE0, 0xE0, 0x00, 0xFF }, { 0xFF, 0x80, 0x80, 0xFF } }; s32 sp8[4]; s32 var_r31; s32 var_r30; s32 var_r29; s32 var_r28; s32 var_r27; - unkStruct2* var_r25; + unkStruct2 *var_r25; s16 temp_r24; s16 temp_r23; s16 var_r22; @@ -191,7 +190,8 @@ void fn_1_7D8(omObjData* object) { lbl_1_bss_344 = 0x708; lbl_1_bss_346 = MGSeqCreate(3, 0); MGSeqPosSet(lbl_1_bss_346, 320.0f, 240.0f); - } else { + } + else { if (MGSeqStatGet(lbl_1_bss_346) == 0) { lbl_1_bss_346 = -1; lbl_1_bss_34A++; @@ -220,7 +220,8 @@ void fn_1_7D8(omObjData* object) { MGSeqPosSet(lbl_1_bss_346, 320.0f, 240.0f); MGSeqParamSet(lbl_1_bss_348, 2, -1); HuAudSeqFadeOut(lbl_1_data_64, 0x64); - } else if (MGSeqStatGet(lbl_1_bss_346) == 0) { + } + else if (MGSeqStatGet(lbl_1_bss_346) == 0) { lbl_1_bss_346 = -1; lbl_1_bss_34A++; lbl_1_bss_342 = 0; @@ -232,28 +233,23 @@ void fn_1_7D8(omObjData* object) { lbl_1_bss_4[var_r31].unk8 = espEntry(0x2E0010, 10, 0); espColorSet(lbl_1_bss_4[var_r31].unk8, 0, 0, 0); espTPLvlSet(lbl_1_bss_4[var_r31].unk8, 0.5f); - espPosSet(lbl_1_bss_4[var_r31].unk8, - 144.0f * (((var_r31 & 1) * 2) + 1), - 120.0f * (((s16)(((var_r31 < 0) + var_r31) >> 1) << 1) + 1) - ); + espPosSet( + lbl_1_bss_4[var_r31].unk8, 144.0f * (((var_r31 & 1) * 2) + 1), 120.0f * (((s16)(((var_r31 < 0) + var_r31) >> 1) << 1) + 1)); lbl_1_bss_4[var_r31].unk6 = espEntry(0x2E000F, 10, 0); - espPosSet(lbl_1_bss_4[var_r31].unk6, - 144.0f * (((var_r31 & 1) * 2) + 1), - 120.0f * (((s16)(((var_r31 < 0) + var_r31) >> 1) << 1) + 1) - ); + espPosSet( + lbl_1_bss_4[var_r31].unk6, 144.0f * (((var_r31 & 1) * 2) + 1), 120.0f * (((s16)(((var_r31 < 0) + var_r31) >> 1) << 1) + 1)); for (var_r30 = 0; var_r30 < 3; var_r30++) { lbl_1_bss_4[var_r31].unk0[var_r30] = espEntry(0x2E0011, 10, 0); - espPosSet(lbl_1_bss_4[var_r31].unk0[var_r30], - (32.0f * var_r30) + ((144.0f * (((var_r31 & 1) * 2) + 1)) - 32.0f), - (120.0f * (((s16)(((var_r31 < 0) + var_r31) >> 1) << 1) + 1)) - ); + espPosSet(lbl_1_bss_4[var_r31].unk0[var_r30], (32.0f * var_r30) + ((144.0f * (((var_r31 & 1) * 2) + 1)) - 32.0f), + (120.0f * (((s16)(((var_r31 < 0) + var_r31) >> 1) << 1) + 1))); espColorSet(lbl_1_bss_4[var_r31].unk0[var_r30], sp18[var_r31].r, sp18[var_r31].g, sp18[var_r31].b); } espBankSet(lbl_1_bss_4[var_r31].unk0[2], 10); } lbl_1_bss_342 = 0x3C; HuAudFXPlay(0x5B4); - } else { + } + else { for (var_r31 = 0; var_r31 < 4; var_r31++) { for (var_r30 = 0; var_r30 < 2; var_r30++) { espBankSet(lbl_1_bss_4[var_r31].unk0[var_r30], (s32)((fn_1_679C() / 65536.0f) * 10.0f)); @@ -282,10 +278,10 @@ void fn_1_7D8(omObjData* object) { for (var_r31 = 0; var_r31 < 4; var_r31++) { lbl_1_bss_33A[var_r31] = -1; } - + var_r31 = 0; var_r30 = 0; - for (;var_r31 < 4; var_r31++) { + for (; var_r31 < 4; var_r31++) { if (sp8[var_r31] >= var_r28) { var_r22 = GWPlayer[var_r31].coin_win; temp_r23 = var_r22 + 10; @@ -308,7 +304,8 @@ void fn_1_7D8(omObjData* object) { if (lbl_1_bss_33A[0] == -1) { lbl_1_bss_346 = MGSeqCreate(3, 2); HuAudSStreamPlay(4); - } else { + } + else { lbl_1_bss_346 = MGSeqCreate(5, 3, lbl_1_bss_33A[0], lbl_1_bss_33A[1], lbl_1_bss_33A[2], lbl_1_bss_33A[3]); HuAudSStreamPlay(1); } @@ -331,7 +328,8 @@ void fn_1_7D8(omObjData* object) { } } -void fn_1_14C0(omObjData* object) { +void fn_1_14C0(omObjData *object) +{ if (WipeStatGet() == 0) { CharModelKill(-1); fn_1_B634(); @@ -343,8 +341,9 @@ void fn_1_14C0(omObjData* object) { } } -void fn_1_1524(s16 arg0, char* arg1, f32 arg8, Mtx arg2) { - ModelData* temp_r31; +void fn_1_1524(s16 arg0, char *arg1, f32 arg8, Mtx arg2) +{ + ModelData *temp_r31; temp_r31 = &Hu3DData[arg0]; if (temp_r31->unk_08 != -1) { @@ -359,13 +358,14 @@ void fn_1_1524(s16 arg0, char* arg1, f32 arg8, Mtx arg2) { Hu3DModelObjMtxGet(arg0, arg1, arg2); } -void fn_1_15D0(omObjData* object) { +void fn_1_15D0(omObjData *object) +{ Mtx sp20; Vec sp14; Vec sp8; s32 var_r28; s32 var_r27; - ModelData* var_r29; + ModelData *var_r29; f32 temp_f31; s32 var_r31; @@ -410,9 +410,10 @@ void fn_1_15D0(omObjData* object) { object->func = fn_1_1960; } -void fn_1_1960(omObjData* object) { +void fn_1_1960(omObjData *object) +{ u32 temp_r29; - AnimData** temp_r3; + AnimData **temp_r3; switch (lbl_1_bss_34A) { case 0: @@ -437,43 +438,18 @@ void fn_1_1960(omObjData* object) { return; } -void fn_1_1A60(unkStruct3* arg0) { +void fn_1_1A60(unkStruct3 *arg0) +{ Mtx sp118; Mtx spE8; Vec spB8[4]; Vec sp88[4]; - GXColor sp68[8] = { - { 0xF0, 0x00, 0x00, 0xFF }, - { 0x00, 0x00, 0xF0, 0xFF }, - { 0xFF, 0x80, 0x80, 0xFF }, - { 0x00, 0xFF, 0x00, 0xFF }, - { 0x80, 0x00, 0xC0, 0xFF }, - { 0x80, 0x40, 0x00, 0xFF }, - { 0xE0, 0xE0, 0x00, 0xFF }, - { 0x00, 0x00, 0x00, 0xFF } - }; - GXColor sp48[8] = { - { 0xFF, 0x60, 0x60, 0xFF }, - { 0x60, 0x60, 0xFF, 0xFF }, - { 0xFF, 0xC0, 0xC0, 0xFF }, - { 0x40, 0xFF, 0x40, 0xFF }, - { 0xC0, 0x40, 0xFF, 0xFF }, - { 0xD0, 0x80, 0x40, 0xFF }, - { 0xFF, 0xFF, 0x20, 0xFF }, - { 0x80, 0x80, 0x80, 0xFF } - }; - GXColor sp38[4] = { - { 0xF0, 0x00, 0x00, 0xFF }, - { 0x00, 0x00, 0xF0, 0xFF }, - { 0xE0, 0xE0, 0x00, 0xFF }, - { 0xFF, 0x80, 0x80, 0xFF } - }; - GXColor sp28[4] = { - { 0xFF, 0x60, 0x60, 0xFF }, - { 0x60, 0x60, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0x20, 0xFF }, - { 0xFF, 0xC0, 0xC0, 0xFF } - }; + GXColor sp68[8] = { { 0xF0, 0x00, 0x00, 0xFF }, { 0x00, 0x00, 0xF0, 0xFF }, { 0xFF, 0x80, 0x80, 0xFF }, { 0x00, 0xFF, 0x00, 0xFF }, + { 0x80, 0x00, 0xC0, 0xFF }, { 0x80, 0x40, 0x00, 0xFF }, { 0xE0, 0xE0, 0x00, 0xFF }, { 0x00, 0x00, 0x00, 0xFF } }; + GXColor sp48[8] = { { 0xFF, 0x60, 0x60, 0xFF }, { 0x60, 0x60, 0xFF, 0xFF }, { 0xFF, 0xC0, 0xC0, 0xFF }, { 0x40, 0xFF, 0x40, 0xFF }, + { 0xC0, 0x40, 0xFF, 0xFF }, { 0xD0, 0x80, 0x40, 0xFF }, { 0xFF, 0xFF, 0x20, 0xFF }, { 0x80, 0x80, 0x80, 0xFF } }; + GXColor sp38[4] = { { 0xF0, 0x00, 0x00, 0xFF }, { 0x00, 0x00, 0xF0, 0xFF }, { 0xE0, 0xE0, 0x00, 0xFF }, { 0xFF, 0x80, 0x80, 0xFF } }; + GXColor sp28[4] = { { 0xFF, 0x60, 0x60, 0xFF }, { 0x60, 0x60, 0xFF, 0xFF }, { 0xFF, 0xFF, 0x20, 0xFF }, { 0xFF, 0xC0, 0xC0, 0xFF } }; Vec sp1C; s32 sp18; s16 sp14; @@ -495,9 +471,9 @@ void fn_1_1A60(unkStruct3* arg0) { s32 temp_r26; s16 var_r24; s16 var_r23; - u16* temp_r22; + u16 *temp_r22; u8 temp_r21; - AnimBmpData* var_r20; + AnimBmpData *var_r20; s16 temp_r19; s16 temp_r18; s32 temp_r17; @@ -509,7 +485,7 @@ void fn_1_1A60(unkStruct3* arg0) { sp14 = 0.5f * (600.0f + sp1C.x); sp12 = 0.5f * (600.0f + sp1C.z); var_r20 = fn_1_668C(lbl_1_bss_338); - temp_r22 = (u16*)var_r20->data; + temp_r22 = (u16 *)var_r20->data; var_r27 = 0x32; var_r30 = var_r27 >> 1; spC = 0x96; @@ -524,7 +500,8 @@ void fn_1_1A60(unkStruct3* arg0) { spB8[3].x = var_r30; spB8[3].y = var_r30; spB8[0].z = spB8[1].z = spB8[2].z = spB8[3].z = 0.0f; - } else { + } + else { spB8[0].x = var_r27; spB8[0].y = var_r27; spB8[1].x = var_r27; @@ -534,8 +511,8 @@ void fn_1_1A60(unkStruct3* arg0) { spB8[3].x = -var_r27; spB8[3].y = -var_r27; spB8[0].z = spB8[1].z = spB8[2].z = spB8[3].z = 0.0f; - for (var_r31 = -1; var_r31 < 2; var_r31+=2) { - for (var_r29 = -1; var_r29 < 2; var_r29+=2) { + for (var_r31 = -1; var_r31 < 2; var_r31 += 2) { + for (var_r29 = -1; var_r29 < 2; var_r29 += 2) { MTXRotDeg(sp118, 0x59, temp_f30); PSMTXTrans(spE8, (var_r30 * var_r31), 0.0f, (var_r30 * var_r29)); PSMTXConcat(sp118, spE8, spE8); @@ -570,18 +547,20 @@ void fn_1_1A60(unkStruct3* arg0) { if (var_r31 <= spB8[1].y) { var_f31 = ((var_r31 - spB8[0].y) / sp88[0].y); var_f29 = var_f31 * sp88[0].x + spB8[0].x; - } else { + } + else { var_f31 = ((var_r31 - spB8[1].y) / sp88[2].y); var_f29 = var_f31 * sp88[2].x + spB8[1].x; } if (var_r31 <= spB8[2].y) { var_f31 = ((var_r31 - spB8[0].y) / sp88[1].y); var_f28 = var_f31 * sp88[1].x + spB8[0].x; - } else { + } + else { var_f31 = ((var_r31 - spB8[2].y) / sp88[3].y); var_f28 = var_f31 * sp88[3].x + spB8[2].x; } - + for (var_r29 = var_f29; var_r29 < var_f28; var_r29++) { var_r24 = sp14 + var_r29; if (var_r24 >= 0 && (!(var_r24 >= 600.0f))) { @@ -597,7 +576,8 @@ void fn_1_1A60(unkStruct3* arg0) { if (temp_r21 != (temp_r28 + 1)) { temp_r22[temp_r26] = ((sp28[temp_r28].r >> 3) << 10) | ((sp28[temp_r28].g >> 3) << 5) | (sp28[temp_r28].b >> 3) | 0x8000; } - } else { + } + else { temp_r22[temp_r26] = ((sp38[temp_r28].r >> 3) << 10) | ((sp38[temp_r28].g >> 3) << 5) | (sp38[temp_r28].b >> 3) | 0x8000; } if (temp_r21 != (temp_r28 + 1)) { @@ -613,8 +593,9 @@ void fn_1_1A60(unkStruct3* arg0) { DCStoreRange(temp_r22, 0xAFC80); } -void fn_1_2B18(omObjData* object) { - unkStruct4* var_r31; +void fn_1_2B18(omObjData *object) +{ + unkStruct4 *var_r31; var_r31 = fn_1_63A8(0x14C); object->data = var_r31; @@ -630,11 +611,12 @@ void fn_1_2B18(omObjData* object) { object->func = fn_1_2C14; } -void fn_1_2C14(omObjData* object) { +void fn_1_2C14(omObjData *object) +{ f32 temp_f31; - unkStruct4* temp_r31; + unkStruct4 *temp_r31; - temp_r31 = (unkStruct4*)object->data; + temp_r31 = (unkStruct4 *)object->data; if (temp_r31->unk148 > 0.0f) { temp_r31->unk148 -= temp_r31->unk140; temp_f31 = ((temp_r31->unk144 - temp_r31->unk148) / temp_r31->unk144); @@ -647,7 +629,8 @@ void fn_1_2C14(omObjData* object) { temp_r31->unk10.y = (temp_r31->unk28.y + (temp_f31 * (temp_r31->unk40.y - temp_r31->unk28.y))); temp_r31->unk10.z = (temp_r31->unk28.z + (temp_f31 * (temp_r31->unk40.z - temp_r31->unk28.z))); temp_r31->unk130 = (temp_r31->unk134 + (temp_f31 * (temp_r31->unk138 - temp_r31->unk134))); - } else { + } + else { fn_1_7A54(2.0f * temp_f31, &temp_r31->unk4, temp_r31->unkF4, temp_r31->unk64, temp_r31->unk88, 3); fn_1_7A54(2.0f * temp_f31, &temp_r31->unk10, temp_r31->unk100, temp_r31->unkAC, temp_r31->unkD0, 3); temp_r31->unk130 = fn_1_7520(2.0f * temp_f31, temp_r31->unk124, temp_r31->unk10C, temp_r31->unk118, 3); @@ -662,8 +645,9 @@ void fn_1_2C14(omObjData* object) { CZoom = temp_r31->unk130; } -void fn_1_2E88(f32 arg0, Vec* arg1, Vec* arg2, f32 arg3) { - unkStruct4* temp_r31; +void fn_1_2E88(f32 arg0, Vec *arg1, Vec *arg2, f32 arg3) +{ + unkStruct4 *temp_r31; temp_r31 = lbl_1_bss_360->data; temp_r31->unk0 = 0; @@ -681,8 +665,9 @@ void fn_1_2E88(f32 arg0, Vec* arg1, Vec* arg2, f32 arg3) { temp_r31->unk138 = arg3; } -void fn_1_2F28(f32 arg8, Vec* arg0, Vec* arg1, f32 arg9, Vec* arg2, Vec* arg3, f32 argA) { - unkStruct4* temp_r31; +void fn_1_2F28(f32 arg8, Vec *arg0, Vec *arg1, f32 arg9, Vec *arg2, Vec *arg3, f32 argA) +{ + unkStruct4 *temp_r31; temp_r31 = lbl_1_bss_360->data; temp_r31->unk0 = 1; @@ -721,32 +706,25 @@ void fn_1_2F28(f32 arg8, Vec* arg0, Vec* arg1, f32 arg9, Vec* arg2, Vec* arg3, f fn_1_7268(temp_r31->unk124, temp_r31->unk10C, temp_r31->unk118, 3); } -void fn_1_31E0(f32 arg8) { - unkStruct4* data; +void fn_1_31E0(f32 arg8) +{ + unkStruct4 *data; - data = (unkStruct4*)lbl_1_bss_360->data; + data = (unkStruct4 *)lbl_1_bss_360->data; data->unk140 = arg8; } -s32 lbl_1_data_80[10] = { - 0, 3, 5, 6, - 0x2E0012, 0x2E001A, 0x2E0022, 0x2E001A, - 0x17, 0x72 -}; +s32 lbl_1_data_80[10] = { 0, 3, 5, 6, 0x2E0012, 0x2E001A, 0x2E0022, 0x2E001A, 0x17, 0x72 }; -Vec lbl_1_data_A8[4] = { - { -200.0f, 1600.0f, -200.0f }, - { 200.0f, 1600.0f, -200.0f }, - { -200.0f, 1600.0f, 200.0f }, - { 200.0f, 1600.0f, 200.0f } -}; +Vec lbl_1_data_A8[4] = { { -200.0f, 1600.0f, -200.0f }, { 200.0f, 1600.0f, -200.0f }, { -200.0f, 1600.0f, 200.0f }, { 200.0f, 1600.0f, 200.0f } }; -void fn_1_3208(omObjData* object) { +void fn_1_3208(omObjData *object) +{ s32 var_r29; s32 var_r28; u32 temp_r27; - unkStruct3* var_r31; - + unkStruct3 *var_r31; + object->data = var_r31 = fn_1_63A8(0xA0); var_r31->unk0 = object->work[0]; var_r31->unk1 = GWPlayerCfg[var_r31->unk0].character; @@ -763,7 +741,7 @@ void fn_1_3208(omObjData* object) { var_r31->unk5D = 0; var_r31->unk5C = 0; var_r31->unkE = 0; - + temp_r27 = object->work[1]; var_r31->unk2C.x = lbl_1_data_A8[temp_r27].x; var_r31->unk2C.y = lbl_1_data_A8[temp_r27].y + (400.0f * ((fn_1_679C() - 0x8000) / 32768.0f)); @@ -777,13 +755,14 @@ void fn_1_3208(omObjData* object) { memset(&var_r31->unk60, 0, 0x40); var_r29 = CharModelCreate(var_r31->unk1, 4); object->model[0] = var_r29; - Hu3DModelAttrSet(var_r29, 0x40000001); + Hu3DModelAttrSet(var_r29, HU3D_MOTATTR_LOOP); Hu3DModelShadowSet(var_r29); - + for (var_r28 = 0; var_r28 < 10; var_r28++) { if ((lbl_1_data_80[var_r28] & 0xFFFF0000) != 0) { object->motion[var_r28] = CharModelMotionCreate(var_r31->unk1, var_r31->unk1 + lbl_1_data_80[var_r28]); - } else { + } + else { object->motion[var_r28] = CharModelMotionCreate(var_r31->unk1, lbl_1_data_80[var_r28]); } } @@ -802,13 +781,14 @@ void fn_1_3208(omObjData* object) { object->func = fn_1_3640; } -void fn_1_3640(omObjData* object) { +void fn_1_3640(omObjData *object) +{ s32 sp8; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; sp8 = object->model[0]; - temp_r31 = (unkStruct3*)object->data; - + temp_r31 = (unkStruct3 *)object->data; + temp_r31->unk10 = temp_r31->unk12 = 0; temp_r31->unk14 = temp_r31->unk16 = 0; switch (lbl_1_bss_34A) { @@ -834,24 +814,27 @@ void fn_1_3640(omObjData* object) { fn_1_3B44(object); } -void fn_1_3764(omObjData* object) { +void fn_1_3764(omObjData *object) +{ s32 spC; s32 sp8; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; spC = object->model[0]; - temp_r31 = (unkStruct3*)object->data; + temp_r31 = (unkStruct3 *)object->data; if (temp_r31->unk7 != 0) { if ((lbl_1_bss_34A == 5) && ((temp_r31->unk7 & 2) == 0)) { if (temp_r31->unk5 != 0) { fn_1_4660(object); - } else { + } + else { temp_r31->unk10 = HuPadStkX[temp_r31->unk4]; temp_r31->unk12 = HuPadStkY[temp_r31->unk4]; temp_r31->unk14 = HuPadBtnDown[temp_r31->unk4]; temp_r31->unk16 = HuPadBtn[temp_r31->unk4]; } - } else { + } + else { temp_r31->unk10 = temp_r31->unk12 = 0; temp_r31->unk14 = temp_r31->unk16 = 0; } @@ -862,7 +845,7 @@ void fn_1_3764(omObjData* object) { case 6: if ((Hu3DModelAttrGet(object->model[2]) & 1) == 0) { Hu3DModelHookReset(object->model[2]); - Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); omSetTra(object, temp_r31->unk2C.x, temp_r31->unk2C.y, temp_r31->unk2C.z); omSetRot(object, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); sp8 = fn_1_A2D0(1, 1); @@ -882,16 +865,17 @@ void fn_1_3764(omObjData* object) { temp_r31->unk2C.y += 100.65; } break; - case 7: - temp_r31->unk20 = fn_1_67F0(temp_r31->unk20, 0.0f, 0.9f); - break; - case 9: - if (temp_r31->unkE != 0) { - temp_r31->unk18 = 8; - } else { - temp_r31->unk18 = 9; - } - break; + case 7: + temp_r31->unk20 = fn_1_67F0(temp_r31->unk20, 0.0f, 0.9f); + break; + case 9: + if (temp_r31->unkE != 0) { + temp_r31->unk18 = 8; + } + else { + temp_r31->unk18 = 9; + } + break; } if (temp_r31->unk2C.y <= 0.0f) { temp_r31->unk2C.y = 0.0f; @@ -901,9 +885,10 @@ void fn_1_3764(omObjData* object) { } } -void fn_1_3B44(omObjData* object) { +void fn_1_3B44(omObjData *object) +{ s16 sp8; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; s16 var_r29; s16 var_r28; s16 temp_r27; @@ -915,7 +900,7 @@ void fn_1_3B44(omObjData* object) { var_r25 = 0; temp_r23 = object->model[0]; - temp_r31 = (unkStruct3*)object->data; + temp_r31 = (unkStruct3 *)object->data; temp_r27 = temp_r31->unk10; temp_r26 = temp_r31->unk12; sp8 = temp_r31->unk14; @@ -937,7 +922,8 @@ void fn_1_3B44(omObjData* object) { temp_r31->unk24 -= 0.5f * temp_r31->unk28; } temp_r31->unk1C *= 1.0 + (0.25 * cosd(90.0f * (temp_r31->unk24 / (0.5f * temp_r31->unk28)))); - } else { + } + else { temp_r31->unk24 = 0.0f; temp_r31->unk1C = 0.0f; var_r29 = 0; @@ -981,7 +967,8 @@ void fn_1_3B44(omObjData* object) { if (FABS(temp_r27) + FABS(temp_r26) > 8) { temp_r31->unk20 = atan2d(temp_r27, -temp_r26); temp_r31->unk1C = 6.0f; - } else { + } + else { temp_r31->unk1C = 0.0f; } if ((temp_r24 & 0x100) == 0) { @@ -991,9 +978,11 @@ void fn_1_3B44(omObjData* object) { var_r25 = 4; if (temp_r31->unkB < 0xC) { HuAudFXPlay(0x5B1); - } else if (temp_r31->unkB < 0x18) { + } + else if (temp_r31->unkB < 0x18) { HuAudFXPlay(0x5B2); - } else { + } + else { HuAudFXPlay(0x5B3); } } @@ -1001,7 +990,8 @@ void fn_1_3B44(omObjData* object) { case 6: if ((Hu3DMotionEndCheck(object->model[2]) == 0) && (Hu3DMotionShiftIDGet(object->model[2]) >= 0)) { temp_r31->unkC = 1; - } else { + } + else { if (temp_r31->unk44.y >= 0.0f) { temp_r31->unkC = 0U; } @@ -1010,7 +1000,8 @@ void fn_1_3B44(omObjData* object) { if ((temp_r24 & 0x100) != 0) { var_r29 = 4; var_r28 = 1; - } else { + } + else { var_r29 = 7; var_r28 = 0; } @@ -1030,11 +1021,13 @@ void fn_1_3B44(omObjData* object) { if ((temp_r24 & 0x100) != 0) { var_r29 = 4; var_r28 = 1; - } else { + } + else { if (Hu3DMotionTimeGet(temp_r23) <= 0.0f) { var_r29 = 4; var_r28 = 1; - } else { + } + else { if ((Hu3DMotionTimeGet(temp_r23) >= 10.0f) && (Hu3DMotionShiftIDGet(temp_r23) < 0)) { Hu3DModelAttrSet(temp_r23, 0x40000004); } @@ -1067,7 +1060,8 @@ void fn_1_3B44(omObjData* object) { if ((Hu3DModelAttrGet(object->model[2]) & 1) != 0) { omSetTra(object, temp_r31->unk2C.x, temp_r31->unk2C.y, temp_r31->unk2C.z); omSetRot(object, temp_r31->unk38.x, temp_r31->unk38.y, temp_r31->unk38.z); - } else { + } + else { omSetTra(object, 0.0f, 0.0f, 0.0f); omSetRot(object, 0.0f, 0.0f, 0.0f); Hu3DModelPosSet(object->model[2], temp_r31->unk2C.x, temp_r31->unk2C.y, temp_r31->unk2C.z); @@ -1075,7 +1069,8 @@ void fn_1_3B44(omObjData* object) { } } -void fn_1_4660(omObjData* object) { +void fn_1_4660(omObjData *object) +{ s16 sp3C[3][3]; Vec sp30; Vec sp24; @@ -1086,7 +1081,7 @@ void fn_1_4660(omObjData* object) { f32 var_f31; f32 temp_f30; f32 var_f29; - unkStruct3* temp_r31; + unkStruct3 *temp_r31; s32 var_r30; s32 var_r29; u8 temp_r28; @@ -1095,14 +1090,14 @@ void fn_1_4660(omObjData* object) { s32 var_r25; s16 var_r24; s16 var_r23; - unkStruct3* temp_r22; + unkStruct3 *temp_r22; u8 var_r21; u8 var_r20; s16 var_r19; s16 var_r18; s16 temp_r17; - temp_r31 = (unkStruct3*)object->data; + temp_r31 = (unkStruct3 *)object->data; sp14 = object->model[0]; spC = temp_r31->unk18; temp_r17 = temp_r31->unk6; @@ -1115,17 +1110,15 @@ void fn_1_4660(omObjData* object) { temp_r31->unk60s = temp_r28; temp_r31->unk62s = temp_r27; temp_r31->unk5D++; - } else { + } + else { var_r26 = 0x57E4; for (var_r30 = temp_r28 - 1; var_r30 <= (temp_r28 + 1); var_r30++) { if ((var_r30 >= 0) && (var_r30 < 4)) { for (var_r29 = temp_r27 - 1; var_r29 <= (temp_r27 + 1); var_r29++) { - if ((var_r29 >= 0) - && (var_r29 < 4) - && (lbl_1_bss_234[temp_r31->unk0][var_r30][var_r29] <= var_r26) - && ((var_r26 != lbl_1_bss_234[temp_r31->unk0][var_r30][var_r29]) - || ((fn_1_679C() & 1) == 0))) { - + if ((var_r29 >= 0) && (var_r29 < 4) && (lbl_1_bss_234[temp_r31->unk0][var_r30][var_r29] <= var_r26) + && ((var_r26 != lbl_1_bss_234[temp_r31->unk0][var_r30][var_r29]) || ((fn_1_679C() & 1) == 0))) { + var_r21 = var_r30; var_r20 = var_r29; var_r26 = lbl_1_bss_234[temp_r31->unk0][var_r30][var_r29]; @@ -1137,7 +1130,8 @@ void fn_1_4660(omObjData* object) { temp_r31->unk60s = var_r21; temp_r31->unk62s = var_r20; temp_r31->unk5D++; - } else { + } + else { var_r26 = 0x57E4; for (var_r30 = 0; var_r30 < 4; var_r30++) { for (var_r29 = 0; var_r29 < 4; var_r29++) { @@ -1159,13 +1153,13 @@ void fn_1_4660(omObjData* object) { sp18 = temp_r31->unk2C; sp18.x += 50.0f * sind(temp_r31->unk38.y); sp18.z += 50.0f * cosd(temp_r31->unk38.y); - + for (var_r30 = 0; var_r30 < 3.0f; var_r30++) { for (var_r29 = 0; var_r29 < 3.0f; var_r29++) { sp3C[var_r30][var_r29] = 0; } } - + for (var_r30 = 0; var_r30 < 150.0f; var_r30++) { for (var_r29 = 0; var_r29 < 150.0f; var_r29++) { sp30.x = (150.0f * temp_r31->unk60s) + var_r30; @@ -1181,12 +1175,16 @@ void fn_1_4660(omObjData* object) { var_r25 = 0; for (var_r30 = temp_r28 - 1; var_r30 <= (temp_r28 + 1); var_r30++) { if (var_r30 >= 0) { - if (var_r30 >= 3.0f) continue; + if (var_r30 >= 3.0f) + continue; for (var_r29 = temp_r27 - 1; var_r29 <= (temp_r27 + 1); var_r29++) { if (var_r29 >= 0) { - if (var_r29 >= 3.0f) continue; - if (sp3C[var_r30][var_r29] < 1250.0f) continue; - if (sp3C[var_r30][var_r29] < var_r25) continue; + if (var_r29 >= 3.0f) + continue; + if (sp3C[var_r30][var_r29] < 1250.0f) + continue; + if (sp3C[var_r30][var_r29] < var_r25) + continue; if ((var_r25 != sp3C[var_r30][var_r29]) || ((fn_1_679C() & 1) == 0)) { var_r25 = sp3C[var_r30][var_r29]; sp30.x = 25.0f + ((150.0f * temp_r31->unk60s) + (50.0f * var_r30)); @@ -1204,7 +1202,7 @@ void fn_1_4660(omObjData* object) { } if (var_r25 == 0) { var_r25 = 0; - + for (var_r30 = 0; var_r30 < 3.0f; var_r30++) { for (var_r29 = 0; var_r29 < 3.0f; var_r29++) { if (sp3C[var_r30][var_r29] >= var_r25) { @@ -1236,7 +1234,7 @@ void fn_1_4660(omObjData* object) { if (--temp_r31->unk68 == 0) { VECSubtract(&temp_r31->unk6C, &temp_r31->unk2C, &sp24); VECNormalize(&sp24, &sp24); - var_r24 = (32.0f * sp24.x); + var_r24 = (32.0f * sp24.x); var_r23 = (32.0f * -sp24.z); var_r19 = var_r18 = 0x100; temp_r31->unk66 = 0x18 + (s32)(((20 - (temp_r17 * 6)) * ((fn_1_679C() - 0x8000) / 32768.0f))); @@ -1255,19 +1253,23 @@ void fn_1_4660(omObjData* object) { if (spC != 7) { var_r24 = temp_r31->unk10; var_r23 = temp_r31->unk12; - } else { + } + else { for (var_r30 = 0; var_r30 < 4; var_r30++) { temp_r22 = lbl_1_bss_34C[var_r30]->data; - if (temp_r22 == temp_r31) continue; + if (temp_r22 == temp_r31) + continue; temp_r28 = ((0.5f * (600.0f + temp_r22->unk2C.x)) / 150.0f); temp_r27 = ((0.5f * (600.0f + temp_r22->unk2C.z)) / 150.0f); - if (temp_r31->unk60s == temp_r28 && temp_r31->unk62s == temp_r27) break; + if (temp_r31->unk60s == temp_r28 && temp_r31->unk62s == temp_r27) + break; } if (var_r30 != 4) { var_r26 = 0x57E4; for (var_r30 = 0; var_r30 < 4; var_r30++) { for (var_r29 = 0; var_r29 < 4; var_r29++) { - if ((lbl_1_bss_234[temp_r31->unk0][var_r30][var_r29] <= var_r26) && ((temp_r31->unk60s != var_r30) || (temp_r31->unk62s != var_r29))) { + if ((lbl_1_bss_234[temp_r31->unk0][var_r30][var_r29] <= var_r26) + && ((temp_r31->unk60s != var_r30) || (temp_r31->unk62s != var_r29))) { var_r21 = var_r30; var_r20 = var_r29; var_r26 = lbl_1_bss_234[temp_r31->unk0][var_r30][var_r29]; @@ -1277,8 +1279,9 @@ void fn_1_4660(omObjData* object) { temp_r31->unk60s = var_r21; temp_r31->unk62s = var_r20; temp_r31->unk5D = 1; - } else { - var_r24 = (32.0 * sind(temp_r31->unk38.y)); + } + else { + var_r24 = (32.0 * sind(temp_r31->unk38.y)); var_r23 = (32.0 * -cosd(temp_r31->unk38.y)); var_f31 = 517.5f; if ((temp_r31->unk2C.x > var_f31) || (temp_r31->unk2C.x < -var_f31)) { @@ -1292,12 +1295,14 @@ void fn_1_4660(omObjData* object) { var_r19 = var_r18 = 0x100; temp_r31->unk66 = 0x18 + (s32)(((20 - (temp_r17 * 6)) * ((fn_1_679C() - 0x8000) / 32768.0f))); temp_r31->unk5D = 3; - } else { + } + else { temp_r28 = temp_r31->unk60s; temp_r27 = temp_r31->unk62s; if (lbl_1_bss_234[temp_r31->unk0][temp_r28][temp_r27] > 16875.0f) { temp_r31->unk5D = 0; - } else { + } + else { temp_r31->unk5D = 1; } } @@ -1311,14 +1316,15 @@ void fn_1_4660(omObjData* object) { temp_r31->unk16 = var_r18; } -void fn_1_5B20(unkSubStruct2* arg0) { +void fn_1_5B20(unkSubStruct2 *arg0) +{ s16 sp8; f32 temp_f31; f32 temp_f30; f32 temp_f29; f32 temp_f28; s32 var_r29; - unkSubStruct* var_r31; + unkSubStruct *var_r31; sp8 = 0; switch (arg0->unk60) { @@ -1362,7 +1368,8 @@ void fn_1_5B20(unkSubStruct2* arg0) { } } -void fn_1_5FB0(omObjData* arg0) { +void fn_1_5FB0(omObjData *arg0) +{ Vec sp2C; Vec sp20; Vec sp14; @@ -1373,17 +1380,17 @@ void fn_1_5FB0(omObjData* arg0) { f32 var_f28; f32 temp_f27; s32 var_r29; - unkStruct3* temp_r30; - unkStruct3* temp_r31; + unkStruct3 *temp_r30; + unkStruct3 *temp_r31; - temp_r31 = (unkStruct3*)arg0->data; + temp_r31 = (unkStruct3 *)arg0->data; if (temp_r31->unk7 != 0) { VECSubtract(&temp_r31->unk2C, &temp_r31->unk50, &sp2C); var_f28 = VECMag(&sp2C); if (var_f28 != 0.0f) { for (var_r29 = 0; var_r29 < 4; var_r29++) { if (var_r29 != temp_r31->unk0) { - temp_r30 = (unkStruct3*)lbl_1_bss_34C[var_r29]->data; + temp_r30 = (unkStruct3 *)lbl_1_bss_34C[var_r29]->data; if (temp_r30->unk7 != 0) { sp14.x = temp_r31->unk2C.x; sp14.y = temp_r31->unk2C.y; @@ -1395,7 +1402,8 @@ void fn_1_5FB0(omObjData* arg0) { sp8.y = 0.0f; VECSubtract(&sp14, &sp8, &sp2C); temp_f31 = VECMag(&sp2C); - if (temp_f31 >= 109.45f) continue; + if (temp_f31 >= 109.45f) + continue; VECSubtract(&temp_r30->unk2C, &temp_r30->unk50, &sp2C); temp_f27 = VECMag(&sp2C); VECSubtract(&sp14, &sp8, &sp20); @@ -1420,7 +1428,7 @@ void fn_1_5FB0(omObjData* arg0) { if (temp_r31->unk2C.x < -var_f30) { temp_r31->unk2C.x = -var_f30; } - + var_f30 = 555.0f; if (temp_r31->unk2C.z > var_f30) { temp_r31->unk2C.z = var_f30; @@ -1432,7 +1440,8 @@ void fn_1_5FB0(omObjData* arg0) { } } -void fn_1_6304(omObjData* object) { +void fn_1_6304(omObjData *object) +{ s32 var_r31; if (lbl_1_bss_34A >= 5) { @@ -1442,19 +1451,22 @@ void fn_1_6304(omObjData* object) { } } -void fn_1_6368(void) { +void fn_1_6368(void) +{ s32 var_r31; - + for (var_r31 = 0; var_r31 < 0x80; var_r31++) { lbl_1_bss_34[var_r31] = NULL; } } -void* fn_1_63A8(s32 arg0) { +void *fn_1_63A8(s32 arg0) +{ s32 var_r31; - + for (var_r31 = 0; var_r31 < 0x80; var_r31++) { - if (!lbl_1_bss_34[var_r31]) break; + if (!lbl_1_bss_34[var_r31]) + break; } if (var_r31 == 0x80) { return NULL; @@ -1463,11 +1475,13 @@ void* fn_1_63A8(s32 arg0) { return lbl_1_bss_34[var_r31]; } -void fn_1_6448(void* arg0) { +void fn_1_6448(void *arg0) +{ s32 var_r31; for (var_r31 = 0; var_r31 < 0x80; var_r31++) { - if (lbl_1_bss_34[var_r31] == arg0) break; + if (lbl_1_bss_34[var_r31] == arg0) + break; } if (var_r31 != 0x80) { HuMemDirectFree(lbl_1_bss_34[var_r31]); @@ -1475,7 +1489,8 @@ void fn_1_6448(void* arg0) { } } -void fn_1_64DC(void) { +void fn_1_64DC(void) +{ s32 var_r31; for (var_r31 = 0; var_r31 < 0x80; var_r31++) { @@ -1487,27 +1502,28 @@ void fn_1_64DC(void) { } } -void fn_1_6584(s16 arg0, char* arg1, u8 arg2, u8 arg3, u8 arg4) { +void fn_1_6584(s16 arg0, char *arg1, u8 arg2, u8 arg3, u8 arg4) +{ char sp13[0x100]; - HsfObject* var_r31; - HsfMaterial* temp_r30; - HsfData* temp_r29; - HsfBuffer* temp_r28; - HsfObject* var_r26; + HsfObject *var_r31; + HsfMaterial *temp_r30; + HsfData *temp_r29; + HsfBuffer *temp_r28; + HsfObject *var_r26; s32 var_r25; s32 var_r27; temp_r29 = Hu3DData[arg0].hsfData; var_r26 = temp_r29->object; strcpy(&sp13, MakeObjectName(arg1)); - + for (var_r25 = 0; var_r25 < temp_r29->objectCnt; var_r25++, var_r26++) { var_r31 = var_r26; temp_r28 = var_r31->data.face; if (var_r31->constData && strcmp(&sp13, var_r31->name) == 0) { - + for (var_r27 = 0; var_r27 < temp_r28->count; var_r27++) { - temp_r30 = &var_r31->data.material[((HsfFace*)temp_r28->data)[var_r27].mat & 0xFFF]; + temp_r30 = &var_r31->data.material[((HsfFace *)temp_r28->data)[var_r27].mat & 0xFFF]; temp_r30->color[0] = arg2; temp_r30->color[1] = arg3; temp_r30->color[2] = arg4; @@ -1517,14 +1533,16 @@ void fn_1_6584(s16 arg0, char* arg1, u8 arg2, u8 arg3, u8 arg4) { } } -AnimBmpData* fn_1_668C(s16 arg0) { +AnimBmpData *fn_1_668C(s16 arg0) +{ return Hu3DTexAnimData[arg0].unk10->bmp; } -s16 fn_1_66AC(void) { - AnimBmpData* temp_r31; +s16 fn_1_66AC(void) +{ + AnimBmpData *temp_r31; s32 var_r30; - AnimData** var_r29; + AnimData **var_r29; s32 var_r28; var_r30 = fn_1_A94C(0xFFFF0000, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02); @@ -1538,29 +1556,34 @@ s16 fn_1_66AC(void) { u32 lbl_1_data_110 = 0x41C64E6D; -s32 fn_1_679C(void) { +s32 fn_1_679C(void) +{ lbl_1_data_110 *= 0x41C64E6D; lbl_1_data_110 += 0x3039; return lbl_1_data_110 >> 0x10; } -f32 fn_1_67F0(f32 arg0, f32 arg1, f32 arg2) { +f32 fn_1_67F0(f32 arg0, f32 arg1, f32 arg2) +{ f32 var_f31; if (arg0 > 180.0f) { arg0 -= 360.0f; - } else if (arg0 <= -180.0f) { + } + else if (arg0 <= -180.0f) { arg0 += 360.0f; } if (arg1 > 180.0f) { arg1 -= 360.0f; - } else if (arg1 <= -180.0f) { + } + else if (arg1 <= -180.0f) { arg1 += 360.0f; } var_f31 = arg0 - arg1; if (var_f31 > 180.0f) { var_f31 -= 360.0f; - } else if (var_f31 <= -180.0f) { + } + else if (var_f31 <= -180.0f) { var_f31 += 360.0f; } arg0 = arg1 + (var_f31 * arg2); @@ -1573,13 +1596,15 @@ f32 fn_1_67F0(f32 arg0, f32 arg1, f32 arg2) { return arg0; } -void fn_1_6958(Mtx arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_6958(Mtx arg0, f32 arg8, f32 arg9, f32 argA) +{ Mtx sp38; Mtx sp8; - + if (argA != 0.0f) { MTXRotDeg(arg0, 0x5A, argA); - } else { + } + else { PSMTXIdentity(arg0); } if (arg8 != 0.0f) { @@ -1592,7 +1617,8 @@ void fn_1_6958(Mtx arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_6A78(Mtx arg0, Vec* arg1) { +void fn_1_6A78(Mtx arg0, Vec *arg1) +{ f32 temp_f29; f32 var_f28; @@ -1608,7 +1634,8 @@ void fn_1_6A78(Mtx arg0, Vec* arg1) { arg1->y = atan2d(var_f28, temp_f29); } -f32 fn_1_6D84(f32 arg8, f32 arg9, f32 argA, f32 argB) { +f32 fn_1_6D84(f32 arg8, f32 arg9, f32 argA, f32 argB) +{ f32 temp_f31; f32 var_f30; @@ -1617,22 +1644,25 @@ f32 fn_1_6D84(f32 arg8, f32 arg9, f32 argA, f32 argB) { return var_f30; } -void fn_1_6DFC(f32* arg0, f32* arg1, f32* arg2, f32* arg3, f32 arg8) { +void fn_1_6DFC(f32 *arg0, f32 *arg1, f32 *arg2, f32 *arg3, f32 arg8) +{ s32 var_r31; - + for (var_r31 = 0; var_r31 < 3; var_r31++) { *arg3++ = fn_1_6D84(arg8, *arg0++, *arg1++, *arg2++); } } -f32 fn_1_6F18(f32 arg8, f32 arg9, f32 argA, f32 argB) { +f32 fn_1_6F18(f32 arg8, f32 arg9, f32 argA, f32 argB) +{ f32 var_f31; var_f31 = (2.0 * ((arg8 * argB) + (((arg8 - 1.0) * arg9) + ((1.0 - (2.0 * arg8)) * argA)))); return var_f31; } -void fn_1_6F90(f32* arg0, f32* arg1, f32* arg2, f32* arg3, f32 arg8) { +void fn_1_6F90(f32 *arg0, f32 *arg1, f32 *arg2, f32 *arg3, f32 arg8) +{ f32 spC[3]; f32 var_f29; s32 var_r31; @@ -1653,7 +1683,8 @@ void fn_1_6F90(f32* arg0, f32* arg1, f32* arg2, f32* arg3, f32 arg8) { *arg3++ = 1.0f; } -void fn_1_7268(f32* arg0, f32* arg1, f32* arg2, s32 arg3) { +void fn_1_7268(f32 *arg0, f32 *arg1, f32 *arg2, s32 arg3) +{ f32 sp48[0x10]; f32 sp8[0x10]; f32 temp_f31; @@ -1661,36 +1692,39 @@ void fn_1_7268(f32* arg0, f32* arg1, f32* arg2, s32 arg3) { arg2[0] = 0.0f; arg2[arg3 - 1] = 0.0f; - + for (var_r31 = 0; var_r31 < arg3 - 1; var_r31++) { sp48[var_r31] = arg0[var_r31 + 1] - arg0[var_r31]; if (sp48[var_r31] == 0.0f) { sp8[var_r31 + 1] = 0.0f; - } else { + } + else { sp8[var_r31 + 1] = (arg1[var_r31 + 1] - arg1[var_r31]) / sp48[var_r31]; } } arg2[1] = (sp8[2] - sp8[1]); sp8[1] = 2.0f * (arg0[2] - arg0[0]); - + for (var_r31 = 1; var_r31 < arg3 - 2; var_r31++) { temp_f31 = sp48[var_r31] / sp8[var_r31]; arg2[var_r31 + 1] = ((sp8[var_r31 + 2] - sp8[var_r31 + 1]) - (temp_f31 * (f64)arg2[var_r31])); sp8[var_r31 + 1] = ((2.0f * (arg0[var_r31 + 2] - arg0[var_r31])) - (temp_f31 * (f64)sp48[var_r31])); } - + arg2[arg3 - 2] -= sp48[arg3 - 2] * arg2[arg3 - 1]; for (var_r31 = arg3 - 2; var_r31 > 0; var_r31--) { if (0.0f == sp8[var_r31]) { arg2[var_r31] = 0.0f; - } else { + } + else { arg2[var_r31] = (arg2[var_r31] - (sp48[var_r31] * arg2[var_r31 + 1])) / sp8[var_r31]; } } } -f32 fn_1_7520(f32 arg0, f32* arg1, f32* arg2, f32* arg3, s32 arg4) { +f32 fn_1_7520(f32 arg0, f32 *arg1, f32 *arg2, f32 *arg3, s32 arg4) +{ f32 temp_f30; f32 temp_f31; f32 var_f29; @@ -1700,14 +1734,18 @@ f32 fn_1_7520(f32 arg0, f32* arg1, f32* arg2, f32* arg3, s32 arg4) { arg0 -= temp_r31; temp_f31 = arg1[temp_r31 + 1] - arg1[temp_r31]; temp_f30 = temp_f31 * arg0; - var_f29 = arg2[temp_r31] + (temp_f30 * ((temp_f30 * ((3.0f * arg3[temp_r31]) + ((temp_f30 * (arg3[temp_r31 + 1] - arg3[temp_r31])) / temp_f31))) + (((arg2[temp_r31 + 1] - arg2[temp_r31]) / temp_f31) - (temp_f31 * (2.0f * arg3[temp_r31] + arg3[temp_r31 + 1]))))); + var_f29 = arg2[temp_r31] + + (temp_f30 + * ((temp_f30 * ((3.0f * arg3[temp_r31]) + ((temp_f30 * (arg3[temp_r31 + 1] - arg3[temp_r31])) / temp_f31))) + + (((arg2[temp_r31 + 1] - arg2[temp_r31]) / temp_f31) - (temp_f31 * (2.0f * arg3[temp_r31] + arg3[temp_r31 + 1]))))); if (temp_f31 == 0.0f) { var_f29 = arg2[temp_r31]; } return var_f29; } -void fn_1_7674(f32* arg0, Vec* arg1, Vec* arg2, s32 arg3) { +void fn_1_7674(f32 *arg0, Vec *arg1, Vec *arg2, s32 arg3) +{ f32 spD4[0x10]; f32 sp94[0x10]; f32 sp54[0x10]; @@ -1719,24 +1757,25 @@ void fn_1_7674(f32* arg0, Vec* arg1, Vec* arg2, s32 arg3) { s32 var_r31; arg0[0] = 0.0f; - + for (var_r30 = 1; var_r30 < arg3; var_r30++) { VECSubtract(&arg1[var_r30], &arg1[var_r30 - 1], &sp8); arg0[var_r30] = arg0[var_r30 - 1] + VECMag(&sp8); } - + for (var_r27 = 0; var_r27 < 3; var_r27++) { for (var_r30 = 0; var_r30 < arg3; var_r30++) { spD4[var_r30] = ((f32(*)[3])arg1)[var_r30][var_r27]; } sp94[0] = 0.0f; sp94[arg3 - 1] = 0.0f; - + for (var_r31 = 0; var_r31 < (arg3 - 1); var_r31++) { sp14[var_r31] = arg0[var_r31 + 1] - arg0[var_r31]; if (sp14[var_r31] == 0.0f) { sp54[var_r31 + 1] = 0.0f; - } else { + } + else { sp54[var_r31 + 1] = (spD4[var_r31 + 1] - spD4[var_r31]) / sp14[var_r31]; } } @@ -1752,11 +1791,12 @@ void fn_1_7674(f32* arg0, Vec* arg1, Vec* arg2, s32 arg3) { for (var_r31 = arg3 - 2; var_r31 > 0; var_r31--) { if (sp54[var_r31] == 0.0f) { sp94[var_r31] = 0.0f; - } else { + } + else { sp94[var_r31] = (sp94[var_r31] - (sp14[var_r31] * sp94[var_r31 + 1])) / sp54[var_r31]; } } - + for (var_r30 = 0; var_r30 < arg3; var_r30++) { ((f32(*)[3])arg2)[var_r30][var_r27] = sp94[var_r30]; (void)arg2; @@ -1764,8 +1804,8 @@ void fn_1_7674(f32* arg0, Vec* arg1, Vec* arg2, s32 arg3) { } } - -void fn_1_7A54(f32 arg0, Vec* arg1, f32* arg2, Vec* arg3, Vec* arg4, s32 arg5) { +void fn_1_7A54(f32 arg0, Vec *arg1, f32 *arg2, Vec *arg3, Vec *arg4, s32 arg5) +{ f32 sp48[0x10]; f32 sp8[0x10]; f32 temp_f29; @@ -1775,47 +1815,51 @@ void fn_1_7A54(f32 arg0, Vec* arg1, f32* arg2, Vec* arg3, Vec* arg4, s32 arg5) { s32 var_r29; s32 var_r30; - for (var_r29 = 0; var_r29 < 3; var_r29++) { for (var_r30 = 0; var_r30 < arg5; var_r30++) { sp48[var_r30] = ((f32(*)[3])arg3)[var_r30][var_r29]; sp8[var_r30] = ((f32(*)[3])arg4)[var_r30][var_r29]; } - + ((f32(*)[3])arg1)[0][var_r29] = fn_1_7520(arg0, arg2, sp48, sp8, 0); } } -f32 fn_1_7C68(Vec* arg0) { +f32 fn_1_7C68(Vec *arg0) +{ f32 temp_f29; f32 temp_f30; temp_f30 = (arg0->z * arg0->z) + ((arg0->x * arg0->x) + (arg0->y * arg0->y)); temp_f30 = sqrtf(temp_f30); - + if (temp_f30 != 0.0f) { temp_f29 = 1.0f / temp_f30; arg0->x *= temp_f29; arg0->y *= temp_f29; arg0->z *= temp_f29; - } else { + } + else { arg0->x = arg0->y = arg0->z = 0.0f; } return temp_f30; } -f32 fn_1_7E00(Vec arg0, Vec arg1, Vec* arg2, f32 arg8) { +f32 fn_1_7E00(Vec arg0, Vec arg1, Vec *arg2, f32 arg8) +{ if (arg8 <= 0.0f) { arg2->x = arg0.x; arg2->y = arg0.y; arg2->z = arg0.z; arg8 = 0.0f; - } else if (arg8 >= 1.0f) { + } + else if (arg8 >= 1.0f) { arg2->x = arg0.x + arg1.x; arg2->y = arg0.y + arg1.y; arg2->z = arg0.z + arg1.z; arg8 = 1.0f; - } else { + } + else { arg2->x = arg0.x + (arg8 * arg1.x); arg2->y = arg0.y + (arg8 * arg1.y); arg2->z = arg0.z + (arg8 * arg1.z); @@ -1823,7 +1867,8 @@ f32 fn_1_7E00(Vec arg0, Vec arg1, Vec* arg2, f32 arg8) { return arg8; } -f32 fn_1_7ED8(Vec arg0, Vec arg1, Vec arg2) { +f32 fn_1_7ED8(Vec arg0, Vec arg1, Vec arg2) +{ f32 temp_f30; f32 var_f31; @@ -1835,12 +1880,14 @@ f32 fn_1_7ED8(Vec arg0, Vec arg1, Vec arg2) { return var_f31; } -f32 fn_1_7F94(Vec* arg0, Vec* arg1, Vec* arg2) { +f32 fn_1_7F94(Vec *arg0, Vec *arg1, Vec *arg2) +{ Vec sp44; f32 var_f30; if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { - return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); } var_f30 = fn_1_7ED8(*arg0, *arg1, *arg2); @@ -1848,20 +1895,23 @@ f32 fn_1_7F94(Vec* arg0, Vec* arg1, Vec* arg2) { return ((arg0->z - sp44.z) * (arg0->z - sp44.z)) + (((arg0->x - sp44.x) * (arg0->x - sp44.x)) + ((arg0->y - sp44.y) * (arg0->y - sp44.y))); } -f32 fn_1_82D0(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { +f32 fn_1_82D0(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ f32 var_f31; f32 var_f30; if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { - return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); - } else { + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + } + else { var_f30 = fn_1_7ED8(*arg0, *arg1, *arg2); fn_1_7E00(*arg1, *arg2, arg3, var_f30); } - + arg4->x = arg3->x - arg0->x; arg4->y = arg3->y - arg0->y; arg4->z = arg3->z - arg0->z; - + return fn_1_7C68(arg4); -} \ No newline at end of file +} diff --git a/src/REL/m416Dll/main.c b/src/REL/m416Dll/main.c index 0f35575a..aa2666d5 100644 --- a/src/REL/m416Dll/main.c +++ b/src/REL/m416Dll/main.c @@ -451,7 +451,7 @@ void fn_1_156C(omObjData *object) work->unk0E = GWPlayerCfg[work->unk02].diff; work->unk10 = GWPlayerCfg[work->unk02].group; object->model[0] = CharModelCreate(work->unk0C, 4); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); Hu3DModelShadowSet(object->model[0]); work->field_0_bit2 = 1; work->field_0_bit4 = 1; @@ -480,7 +480,7 @@ void fn_1_156C(omObjData *object) fn_1_8EB4(object->model[0]); fn_1_8EB4(object->model[1]); Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); CharModelMotionIndexSet(work->unk0C, object->motion[1], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); CharModelMotionIndexSet(work->unk0C, object->motion[2], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); CharModelMotionDataClose(work->unk0C); @@ -488,7 +488,7 @@ void fn_1_156C(omObjData *object) Hu3DParticleHookSet(object->model[4], fn_1_6AE8); Hu3DParticleBlendModeSet(object->model[4], 1); Hu3DModelLayerSet(object->model[4], 6); - Hu3DModelAttrSet(object->model[4], 1); + Hu3DModelAttrSet(object->model[4], HU3D_ATTR_DISPOFF); object->trans.x = lbl_1_data_B0[player][0]; object->trans.y = lbl_1_data_B0[player][1]; object->trans.z = lbl_1_data_B0[player][2]; @@ -540,8 +540,8 @@ void fn_1_1964(omObjData *object) Hu3DParticleHookSet(object->model[2], fn_1_613C); Hu3DParticleBlendModeSet(object->model[2], 1); Hu3DModelLayerSet(object->model[2], 6); - Hu3DModelAttrSet(object->model[2], 2); - Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_ZWRITE_OFF); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); work->unk44 = 5; work->unk48 = fn_1_29DC; } @@ -566,13 +566,13 @@ void fn_1_1ADC(omObjData *object) object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M416, 0x02)); Hu3DModelLayerSet(object->model[2], 3); fn_1_6DEC(object->model[2], 16); - Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); Hu3DMotionSpeedSet(object->model[2], 0); Hu3DAnimCreate(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M416, 0x07), MEMORY_DEFAULT_NUM), object->model[2], "sb00"); object->model[3] = Hu3DParticleCreate(lbl_1_bss_914, 50); Hu3DParticleHookSet(object->model[3], fn_1_6640); Hu3DModelLayerSet(object->model[3], 3); - Hu3DModelAttrSet(object->model[3], 1); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); work->unk4C = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss930Work4C), MEMORY_DEFAULT_NUM); memset(work->unk4C, 0, sizeof(Bss930Work4C)); @@ -809,7 +809,7 @@ void fn_1_29DC(omObjData *object) lbl_1_bss_924 = 1; Hu3DGLightKill(lbl_1_bss_91A[1]); lbl_1_bss_91A[1] = -1; - Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); HuAudFXEmiterPlay(1469, &object->trans); HuAudCharVoicePlay(temp_r31->unk0C, 291); } @@ -834,10 +834,10 @@ void fn_1_29DC(omObjData *object) } else { if ((temp_r31->unk46 & 0x2) == 0) { - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); } temp_r31->unk46--; } @@ -863,10 +863,10 @@ void fn_1_29DC(omObjData *object) Hu3DShadowPosSet(&sp14, &Hu3DShadowData.unk_2C, &sp8); } object->work[0] += 10.0f; - Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); } } @@ -901,13 +901,13 @@ void fn_1_2EA4(omObjData *object) MTXConcat(sp3C, spC, sp3C); Hu3DModelPosSet(object->model[2], sp3C[0][3], sp3C[1][3], sp3C[2][3]); Hu3DModelScaleSet(object->model[2], 0.5f, 0.5f, 0.5f); - Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(object->model[2], 0); Hu3DMotionSpeedSet(object->model[2], 2.0f); Hu3DModelRotSet(object->model[2], 0, 180.0f + object->rot.y, 0); Hu3DData[object->model[2]].unk_94 = 0; Hu3DData[object->model[2]].unk_98 = 2; - Hu3DModelAttrReset(object->model[3], 1); + Hu3DModelAttrReset(object->model[3], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(object->model[3], sp3C[0][3], sp3C[1][3], sp3C[2][3]); temp_r27 = &Hu3DData[object->model[3]]; temp_r28 = temp_r27->unk_120; @@ -941,7 +941,7 @@ void fn_1_2EA4(omObjData *object) case 3: if (--temp_r30->unk60 == 0) { - Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); Hu3DData[object->model[2]].unk_0E = -1; temp_r30->field_0_bit1 = 0; temp_r30->unk2C = -1; @@ -951,8 +951,8 @@ void fn_1_2EA4(omObjData *object) } if (temp_r30->unk50 && fn_1_1240() > 6 && lbl_1_bss_924 < 0) { temp_r29->field_0_bit0 = 0; - Hu3DModelAttrSet(object->model[2], 1); - Hu3DModelAttrSet(object->model[3], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); } if (temp_r29->field_0_bit0) { temp_r29->unk4 = object->trans.x + (((float)temp_r29->unk10 * (200 * sind(object->rot.y))) / 4); @@ -986,7 +986,7 @@ void fn_1_361C(omObjData *object) Hu3DModelHookReset(object->model[0]); Hu3DModelAttrReset(object->model[1], 0x8000); Hu3DModelShadowReset(object->model[1]); - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); } } else { @@ -997,9 +997,9 @@ void fn_1_361C(omObjData *object) temp_r30->unk54.y += -1.0000001f; temp_r29->rot.x += 30.0f; if (--temp_r30->unk60 == 0) { - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(object->model[4], temp_r29->pos.x, temp_r29->pos.y, temp_r29->pos.z); - Hu3DModelAttrReset(object->model[4], 1); + Hu3DModelAttrReset(object->model[4], HU3D_ATTR_DISPOFF); if (!temp_r30->unk10) { HuAudFXPlay(1468); } diff --git a/src/REL/m417Dll/water.c b/src/REL/m417Dll/water.c index 2bfef4b4..7f7bd933 100644 --- a/src/REL/m417Dll/water.c +++ b/src/REL/m417Dll/water.c @@ -135,7 +135,7 @@ void fn_1_3400(omObjData *object) Hu3DModelLayerSet(object->model[3], 3); object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M417, 2)); Hu3DModelLayerSet(object->model[2], 5); - Hu3DModelAttrSet(object->model[2], 0x40000001); + Hu3DModelAttrSet(object->model[2], HU3D_MOTATTR_LOOP); Hu3DMotionSpeedSet(object->model[2], 0.7f); object->data = fn_1_3574(object, 5, 3); HuAudFXPlay(1480); diff --git a/src/REL/m420dll/map.c b/src/REL/m420dll/map.c index 94df58f0..cb884fb4 100644 --- a/src/REL/m420dll/map.c +++ b/src/REL/m420dll/map.c @@ -467,9 +467,9 @@ s32 fn_1_5AA8(s32 arg0, float arg1) if (lbl_1_bss_B0 == 0) { var_r31->unk_3C = 1; Hu3DMotionTimeSet(lbl_1_bss_9F0[var_r30], 0.0f); - Hu3DModelAttrReset(lbl_1_bss_9F0[var_r30], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[var_r30], 0x40000001); - Hu3DModelAttrSet(lbl_1_bss_9F0[var_r29], 1); + Hu3DModelAttrReset(lbl_1_bss_9F0[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[var_r30], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(lbl_1_bss_9F0[var_r29], HU3D_ATTR_DISPOFF); } return 1; } @@ -498,14 +498,14 @@ void fn_1_5C8C(M420DllUnkMapStruct *arg0) fn_1_7230(arg0->unk_0C, &sp8, 0x1E, 1); Hu3DMotionTimeSet(arg0->unk_0C->unk_02, 0.0f); - Hu3DModelAttrReset(arg0->unk_0C->unk_02, 1); + Hu3DModelAttrReset(arg0->unk_0C->unk_02, HU3D_ATTR_DISPOFF); sp8 = arg0->unk_10->unk_04; sp8.y = -50.0f + arg0->unk_1C; fn_1_7230(arg0->unk_10, &sp8, 0x1E, 1); Hu3DMotionTimeSet(arg0->unk_10->unk_02, 0.0f); - Hu3DModelAttrReset(arg0->unk_10->unk_02, 1); + Hu3DModelAttrReset(arg0->unk_10->unk_02, HU3D_ATTR_DISPOFF); Hu3DMotionStartEndSet(arg0->unk_00->unk_02, 0.0f, 30.0f); Hu3DMotionTimeSet(arg0->unk_00->unk_02, 0.0f); Hu3DModelAttrReset(arg0->unk_00->unk_02, 0x40000002); @@ -530,7 +530,7 @@ void fn_1_5C8C(M420DllUnkMapStruct *arg0) else { Hu3DMotionStartEndSet(arg0->unk_00->unk_02, 0.0f, 1.0f); Hu3DMotionTimeSet(arg0->unk_00->unk_02, 0.0f); - Hu3DModelAttrSet(arg0->unk_00->unk_02, 0x40000002); + Hu3DModelAttrSet(arg0->unk_00->unk_02, HU3D_MOTATTR_PAUSE); } } if (arg0->unk_24 > 0.2f) { @@ -639,10 +639,10 @@ void fn_1_6554(void) sp8.x = 480.0f; sp8.y = 370.0f; sp8.z = -314.0f; - Hu3DModelAttrReset(var_r31->unk_02, 1); + Hu3DModelAttrReset(var_r31->unk_02, HU3D_ATTR_DISPOFF); fn_1_7230(var_r31, &sp8, 0x14, 0); Hu3DMotionTimeSet(fn_1_6660(), 0.0f); - Hu3DModelAttrSet(fn_1_6660(), 0x40000002); + Hu3DModelAttrSet(fn_1_6660(), HU3D_MOTATTR_PAUSE); } s16 fn_1_6660(void) @@ -675,7 +675,7 @@ void fn_1_6728(void) var_r31->unk_04.y = 1000.0f; var_r31->unk_04.z = 0.0f; fn_1_6DF0(var_r31); - Hu3DModelAttrSet(lbl_1_bss_9F0[0x13], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[0x13], HU3D_ATTR_DISPOFF); } s32 fn_1_67A4(s32 arg0) @@ -700,7 +700,7 @@ void fn_1_6820(void) while (TRUE) { if (lbl_1_bss_B8 > 0) { if (--lbl_1_bss_B8 <= 0) { - Hu3DModelAttrSet(lbl_1_bss_9F0[0xF], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_9F0[0xF], HU3D_MOTATTR_PAUSE); } } HuPrcVSleep(); @@ -735,10 +735,10 @@ void fn_1_6950(void) for (var_r31 = 0; var_r31 < 0x1B; var_r31++) { lbl_1_bss_9F0[var_r31] = Hu3DModelCreateFile(lbl_1_rodata_360[var_r31]); } - Hu3DModelAttrSet(lbl_1_bss_9F0[1], 0x40000001); - Hu3DModelAttrSet(lbl_1_bss_9F0[0xA], 0x40000001); - Hu3DModelAttrSet(lbl_1_bss_9F0[3], 0x40000002); - Hu3DModelAttrSet(lbl_1_bss_9F0[2], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_9F0[1], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(lbl_1_bss_9F0[0xA], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(lbl_1_bss_9F0[3], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(lbl_1_bss_9F0[2], HU3D_MOTATTR_PAUSE); Hu3DModelPosSet(lbl_1_bss_9F0[0xF], -219.0f, 300.0f, -92.0f); Hu3DModelRotSet(lbl_1_bss_9F0[0xF], 0.0f, 0.0f, 0.0f); Hu3DModelPosSet(lbl_1_bss_9F0[0x10], 0.0f, 0.0f, 0.0f); @@ -752,24 +752,24 @@ void fn_1_6950(void) Hu3DModelShadowSet(lbl_1_bss_9F0[0x10]); Hu3DModelShadowSet(lbl_1_bss_9F0[0x14]); Hu3DModelShadowSet(lbl_1_bss_9F0[0x13]); - Hu3DModelAttrSet(lbl_1_bss_9F0[4], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[5], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[6], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[7], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[8], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[9], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[0xB], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[0xC], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[0x15], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[0x16], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[0x17], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[0x18], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[0x19], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[0x1A], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[0xF], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_9F0[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[6], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[7], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[8], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[9], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[0xB], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[0xC], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[0x15], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[0x16], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[0x17], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[0x18], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[0x19], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[0x1A], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[0xF], HU3D_MOTATTR_PAUSE); Hu3DMotionStartEndSet(lbl_1_bss_9F0[0xF], 30.0f, 30.0f); Hu3DMotionTimeSet(lbl_1_bss_9F0[0xF], 30.0f); - Hu3DModelAttrSet(lbl_1_bss_9F0[0xF], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_9F0[0xF], HU3D_MOTATTR_PAUSE); Hu3DModelHookSet(lbl_1_bss_9F0[1], "itemhook_sao", lbl_1_bss_9F0[0xA]); } @@ -940,7 +940,6 @@ void fn_1_74F8(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) } *arg2 = var_f30; *arg3 = var_f29; - } void fn_1_7704(void) @@ -1081,9 +1080,9 @@ void fn_1_7E24(void) } if ((sp8.x < (200.0f + var_f30)) && (var_r28 == 0)) { Hu3DModelHookReset(lbl_1_bss_9F0[1]); - Hu3DModelAttrSet(lbl_1_bss_9F0[0xA], 1); + Hu3DModelAttrSet(lbl_1_bss_9F0[0xA], HU3D_ATTR_DISPOFF); Hu3DModelHookSet(lbl_1_bss_9F0[1], "itemhook_sao", lbl_1_bss_9F0[0xC]); - Hu3DModelAttrReset(lbl_1_bss_9F0[0xC], 1); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xC], HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(lbl_1_bss_9F0[0xC], 0.0f); var_r28 = 1; } @@ -1109,24 +1108,24 @@ void fn_1_7E24(void) void fn_1_8240(void) { - Hu3DModelAttrReset(lbl_1_bss_9F0[4], 1); + Hu3DModelAttrReset(lbl_1_bss_9F0[4], HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(lbl_1_bss_9F0[4], 0.0f); - Hu3DModelAttrReset(lbl_1_bss_9F0[6], 1); + Hu3DModelAttrReset(lbl_1_bss_9F0[6], HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(lbl_1_bss_9F0[6], 0.0f); - Hu3DModelAttrReset(lbl_1_bss_9F0[8], 1); + Hu3DModelAttrReset(lbl_1_bss_9F0[8], HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(lbl_1_bss_9F0[8], 0.0f); HuPrcSleep(0x78); - Hu3DModelAttrSet(lbl_1_bss_9F0[4], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[6], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[8], 1); - Hu3DModelAttrReset(lbl_1_bss_9F0[5], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[5], 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_9F0[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[6], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[8], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_9F0[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[5], HU3D_MOTATTR_LOOP); Hu3DMotionTimeSet(lbl_1_bss_9F0[5], 0.0f); - Hu3DModelAttrReset(lbl_1_bss_9F0[7], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[7], 0x40000001); + Hu3DModelAttrReset(lbl_1_bss_9F0[7], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[7], HU3D_MOTATTR_LOOP); Hu3DMotionTimeSet(lbl_1_bss_9F0[7], 0.0f); - Hu3DModelAttrReset(lbl_1_bss_9F0[9], 1); - Hu3DModelAttrSet(lbl_1_bss_9F0[9], 0x40000001); + Hu3DModelAttrReset(lbl_1_bss_9F0[9], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_9F0[9], HU3D_MOTATTR_LOOP); Hu3DMotionTimeSet(lbl_1_bss_9F0[9], 0.0f); lbl_1_bss_A2C[2] = NULL; HuPrcEnd(); @@ -1189,25 +1188,25 @@ void fn_1_8414(void) fn_1_7230(var_r29, &sp14, 30, 1); Hu3DMotionTimeSet(var_r30->unk_0C->unk_02, 0.0f); - Hu3DModelAttrReset(var_r30->unk_0C->unk_02, 1); + Hu3DModelAttrReset(var_r30->unk_0C->unk_02, HU3D_ATTR_DISPOFF); sp14 = var_r30->unk_10->unk_04; sp14.y = -50.0f + var_r30->unk_1C; sp14.x = var_f31; var_r28 = var_r30->unk_10; fn_1_7230(var_r28, &sp14, 30, 1); Hu3DMotionTimeSet(var_r30->unk_10->unk_02, 0.0f); - Hu3DModelAttrReset(var_r30->unk_10->unk_02, 1); + Hu3DModelAttrReset(var_r30->unk_10->unk_02, HU3D_ATTR_DISPOFF); HuPrcSleep(5); lbl_1_bss_B4 = 1; sp8.x = 0.0f; fn_1_72C8(var_r31, &sp8, 15, 1); HuPrcSleep(0xF); var_r27->unk_04 = var_r31->unk_04; - Hu3DModelAttrSet(var_r31->unk_02, 1); - Hu3DModelAttrReset(var_r27->unk_02, 1); + Hu3DModelAttrSet(var_r31->unk_02, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r27->unk_02, HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(var_r27->unk_02, 0.0f); Hu3DModelAttrReset(var_r27->unk_02, 0x40000002); - Hu3DModelAttrSet(var_r27->unk_02, 0x40000001); + Hu3DModelAttrSet(var_r27->unk_02, HU3D_MOTATTR_LOOP); HuPrcSleep(0x78); lbl_1_bss_A2C[3] = NULL; HuPrcEnd(); @@ -1217,4 +1216,4 @@ void fn_1_8414(void) } } -const float _pad = 0; \ No newline at end of file +const float _pad = 0; diff --git a/src/REL/m420dll/player.c b/src/REL/m420dll/player.c index 790c43e6..39c6a5ca 100644 --- a/src/REL/m420dll/player.c +++ b/src/REL/m420dll/player.c @@ -270,20 +270,20 @@ void fn_1_2260(M420DllPlayerStruct *arg0) } } -#define WAITMODECHG(player, maxTime) \ - do { \ - s32 time; \ - s32 mode; \ - for (time = 0; time < maxTime; time++) { \ - fn_1_355C(arg0); \ - mode = arg0->unk_48; \ - HuPrcVSleep(); \ - if (arg0->unk_48 != mode) { \ - return; \ - } \ - } \ - } while(0) - +#define WAITMODECHG(player, maxTime) \ + do { \ + s32 time; \ + s32 mode; \ + for (time = 0; time < maxTime; time++) { \ + fn_1_355C(arg0); \ + mode = arg0->unk_48; \ + HuPrcVSleep(); \ + if (arg0->unk_48 != mode) { \ + return; \ + } \ + } \ + } while (0) + void fn_1_22CC(M420DllPlayerStruct *arg0) { float var_f31; @@ -341,13 +341,14 @@ void fn_1_22CC(M420DllPlayerStruct *arg0) case 2: if (arg0->unk_50 <= 0) { WAITMODECHG(arg0, 1); - } else { + } + else { Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); Hu3DModelAttrReset(arg0->unk_AC, 0x40000001); Hu3DModelAttrSet(arg0->unk_AC, 0x40000004); fn_1_63EC(); - while(!Hu3DMotionEndCheck(arg0->unk_AC)) - WAITMODECHG(arg0, 1); + while (!Hu3DMotionEndCheck(arg0->unk_AC)) + WAITMODECHG(arg0, 1); for (var_r28 = 0; var_r28 < 0xA; var_r28++) { arg0->unk_5C[var_r28] = 0; } @@ -411,23 +412,26 @@ void fn_1_276C(M420DllPlayerStruct *arg0) while (arg0->unk_50 < 1) { fn_1_326C(arg0); do { - if(arg0->unk_00_field0 == 0) { + if (arg0->unk_00_field0 == 0) { var_r30 = fn_1_34AC(arg0); - } else if(arg0->unk_58 > 0) { + } + else if (arg0->unk_58 > 0) { arg0->unk_58--; var_r30 = 0; - } else if(fn_1_8944() % 30) { + } + else if (fn_1_8944() % 30) { var_r30 = 1; - } else { + } + else { var_r30 = 2; } switch (var_r30) { case 0: WAITMODECHG(arg0, 1); break; - + case 1: - if(arg0->unk_4C != 1) { + if (arg0->unk_4C != 1) { CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[7], 0.0f, 6.0f, 0); WAITMODECHG(arg0, 6); fn_1_374C(arg0->unk_E8); @@ -435,7 +439,7 @@ void fn_1_276C(M420DllPlayerStruct *arg0) HuAudFXPlay(0x5F2); } arg0->unk_5C[arg0->unk_50++] = 1; - switch(arg0->unk_4C) { + switch (arg0->unk_4C) { case 1: case 2: var_f31 = 0.0f; @@ -445,15 +449,15 @@ void fn_1_276C(M420DllPlayerStruct *arg0) Hu3DMotionTimeSet(arg0->unk_AC, var_f31); Hu3DMotionSpeedSet(arg0->unk_AC, 2.0f); break; - + case 3: arg0->unk_48 = 5; return; } break; - + case 2: - switch(arg0->unk_4C) { + switch (arg0->unk_4C) { case 1: var_f31 = 0.0f; var_f30 = 10.0f; @@ -470,7 +474,7 @@ void fn_1_276C(M420DllPlayerStruct *arg0) Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); WAITMODECHG(arg0, 30); break; - + case 2: case 3: CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[9], 0.0f, 2.0f, 0); @@ -480,8 +484,7 @@ void fn_1_276C(M420DllPlayerStruct *arg0) } break; } - } while(var_r30 == 0); - + } while (var_r30 == 0); } fn_1_326C(arg0); WAITMODECHG(arg0, 18); @@ -492,7 +495,7 @@ void fn_1_276C(M420DllPlayerStruct *arg0) void fn_1_2CE0(M420DllPlayerStruct *arg0) { CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[0], 0.0f, 30.0f, 0x40000001); - + WAITMODECHG(arg0, 35); arg0->unk_48 = 0; } @@ -542,9 +545,9 @@ void fn_1_2EA8(M420DllPlayerStruct *arg0) fn_1_326C(arg0); CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[3], 0.0f, 1.0f, 0); var_r30 = fn_1_6660(); - + Hu3DModelAttrReset(var_r30, 0x40000002); - Hu3DModelAttrSet(var_r30, 0x40000001); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); Hu3DMotionTimeSet(var_r30, 0.0f); { s32 var_r30; @@ -561,7 +564,7 @@ void fn_1_2EA8(M420DllPlayerStruct *arg0) HuAudFXPlay(0x5F7); fn_1_636C(); fn_1_1E64(arg0, 1, 0x1E); - Hu3DModelAttrSet(var_r30, 0x40000002); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_PAUSE); fn_1_5AA8(1, 22.5f); { s32 var_r30; diff --git a/src/REL/m426Dll/main.c b/src/REL/m426Dll/main.c index 58c19263..17ae5831 100644 --- a/src/REL/m426Dll/main.c +++ b/src/REL/m426Dll/main.c @@ -774,7 +774,7 @@ void fn_1_125C(omObjData *object) } CharModelMotionDataClose(var_r31->unk_0C); CharModelMotionSet(var_r31->unk_0C, object->motion[var_r31->unk_28]); - Hu3DModelAttrSet(var_r25, 0x40000001); + Hu3DModelAttrSet(var_r25, HU3D_MOTATTR_LOOP); HuDataDirClose(lbl_1_data_110[var_r26] & 0xFFFF0000); object->func = NULL; } @@ -1536,13 +1536,13 @@ void fn_1_3714(omObjData *object) object->model[11] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M426, 17)); object->model[12] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M426, 18)); object->model[13] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M426, 19)); - Hu3DModelAttrSet(object->model[4], 1); - Hu3DModelAttrSet(object->model[5], 1); - Hu3DModelAttrSet(object->model[6], 1); - Hu3DModelAttrSet(object->model[8], 1); - Hu3DModelAttrSet(object->model[9], 1); - Hu3DModelAttrSet(object->model[11], 1); - Hu3DModelAttrSet(object->model[13], 1); + Hu3DModelAttrSet(object->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[6], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[8], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[9], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[11], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[13], HU3D_ATTR_DISPOFF); for (var_r29 = 0; var_r29 < 14; var_r29++) { Hu3DModelLayerSet(object->model[var_r29], 2); } @@ -1660,17 +1660,17 @@ void fn_1_3EFC(omObjData *object) } } } - Hu3DModelAttrSet(object->model[3], 1); - Hu3DModelAttrSet(object->model[4], 1); - Hu3DModelAttrSet(object->model[5], 1); - Hu3DModelAttrSet(object->model[6], 1); - Hu3DModelAttrSet(object->model[7], 1); - Hu3DModelAttrSet(object->model[8], 1); - Hu3DModelAttrSet(object->model[9], 1); - Hu3DModelAttrSet(object->model[10], 1); - Hu3DModelAttrSet(object->model[11], 1); - Hu3DModelAttrSet(object->model[12], 1); - Hu3DModelAttrSet(object->model[13], 1); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[6], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[7], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[8], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[9], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[10], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[11], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[12], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[13], HU3D_ATTR_DISPOFF); if (lbl_1_bss_30) { if (++object->work[0] >= 20) { @@ -1704,10 +1704,10 @@ void fn_1_3EFC(omObjData *object) if (++object->work[3] >= 20) { object->work[3] = 0; } - Hu3DModelAttrReset(object->model[(object->work[0] / 5) + 3], 1); - Hu3DModelAttrReset(object->model[(object->work[1] / 5) + 7], 1); - Hu3DModelAttrReset(object->model[(object->work[2] / 10) + 10], 1); - Hu3DModelAttrReset(object->model[(object->work[3] / 10) + 12], 1); + Hu3DModelAttrReset(object->model[(object->work[0] / 5) + 3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[(object->work[1] / 5) + 7], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[(object->work[2] / 10) + 10], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[(object->work[3] / 10) + 12], HU3D_ATTR_DISPOFF); var_r29 = &Hu3DGlobalLight[lbl_1_bss_2C]; var_r27 = lbl_1_data_48.r + (s32)(255.0f * lbl_1_bss_28); @@ -1789,20 +1789,20 @@ void fn_1_4738(s32 arg0, s32 arg1) var_r31->unk_08 = arg1; switch (arg1) { case 0: - Hu3DModelAttrReset(var_r31->unk_14, 1); - Hu3DModelAttrReset(var_r31->unk_1C, 1); - Hu3DModelAttrReset(var_r31->unk_24, 1); - Hu3DModelAttrSet(var_r31->unk_18, 1); - Hu3DModelAttrSet(var_r31->unk_20, 1); - Hu3DModelAttrSet(var_r31->unk_28, 1); + Hu3DModelAttrReset(var_r31->unk_14, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->unk_1C, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->unk_24, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk_18, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk_20, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk_28, HU3D_ATTR_DISPOFF); break; case 1: - Hu3DModelAttrSet(var_r31->unk_14, 1); - Hu3DModelAttrSet(var_r31->unk_1C, 1); - Hu3DModelAttrSet(var_r31->unk_24, 1); - Hu3DModelAttrReset(var_r31->unk_18, 1); - Hu3DModelAttrReset(var_r31->unk_20, 1); - Hu3DModelAttrReset(var_r31->unk_28, 1); + Hu3DModelAttrSet(var_r31->unk_14, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk_1C, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk_24, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->unk_18, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->unk_20, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->unk_28, HU3D_ATTR_DISPOFF); break; default: break; @@ -1953,7 +1953,7 @@ void fn_1_4F14(omObjData *object) var_r31->unk_3C = var_r31->unk_40 = var_r31->unk_44 = 0.0f; var_r31->unk_48 = 0.0f; var_r31->unk_4C = 0.0f; - Hu3DModelAttrSet(var_r31->unk_00, 1); + Hu3DModelAttrSet(var_r31->unk_00, HU3D_ATTR_DISPOFF); Hu3DModelScaleSet(var_r31->unk_00, 0.8f, 0.8f, 0.8f); } object->func = fn_1_5134; @@ -1977,10 +1977,10 @@ void fn_1_5134(omObjData *object) if (lbl_1_bss_38) { if (--var_r31->unk_2C <= 0) { if (!var_r31->unk_38) { - Hu3DModelAttrReset(var_r31->unk_00, 1); + Hu3DModelAttrReset(var_r31->unk_00, HU3D_ATTR_DISPOFF); } Hu3DMotionSet(var_r31->unk_00, var_r31->unk_08); - Hu3DModelAttrSet(var_r31->unk_00, 1073741825); + Hu3DModelAttrSet(var_r31->unk_00, HU3D_MOTATTR_LOOP); HuAudFXPlay(1607); var_r31->unk_2C = 0; var_r31->unk_28 = 1; @@ -2126,7 +2126,7 @@ void fn_1_5134(omObjData *object) Hu3DModelRotSet(var_r31->unk_00, 0.0f, var_r31->unk_48, 0.0f); } else { - Hu3DModelAttrSet(var_r31->unk_00, 1); + Hu3DModelAttrSet(var_r31->unk_00, HU3D_ATTR_DISPOFF); } } } @@ -2159,7 +2159,7 @@ void fn_1_5B88(s32 arg0) // probably gets inlined var_r28 = var_r31->unk_38; var_r31->unk_38 = arg0; if (var_r28 != arg0 && !arg0) { - Hu3DModelAttrReset(var_r31->unk_00, 1); + Hu3DModelAttrReset(var_r31->unk_00, HU3D_ATTR_DISPOFF); Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_3C, var_r31->unk_40, var_r31->unk_44); Hu3DModelRotSet(var_r31->unk_00, 0.0f, var_r31->unk_48, 0.0f); } @@ -2264,7 +2264,7 @@ void fn_1_5EBC(omObjData *object) var_r26 = &Hu3DData[var_r31->unk_04]; var_r27 = var_r26->unk_120; var_r27->unk_20 = 0; - Hu3DModelAttrSet(var_r31->unk_04, 1); + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); var_r31->unk_00 = var_r30; var_r31->unk_0C = 0; var_r31->unk_10 = 0; @@ -2291,10 +2291,10 @@ void fn_1_6008(omObjData *object) continue; } if (var_r30->unk_10 <= 0) { - Hu3DModelAttrSet(var_r30->unk_04, 1); + Hu3DModelAttrSet(var_r30->unk_04, HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrReset(var_r30->unk_04, 1); + Hu3DModelAttrReset(var_r30->unk_04, HU3D_ATTR_DISPOFF); var_r26 = &Hu3DData[var_r30->unk_04]; var_r29 = var_r26->unk_120; var_r31 = var_r29->unk_3C; @@ -2470,7 +2470,7 @@ void fn_1_65E4(omObjData *object) var_r28 = &Hu3DData[var_r31->unk_00]; sp8 = var_r28->hsfData; Hu3DModelLayerSet(var_r31->unk_00, 5); - Hu3DModelAttrSet(var_r31->unk_00, 1); + Hu3DModelAttrSet(var_r31->unk_00, HU3D_ATTR_DISPOFF); var_r31->unk_04 = 0; var_r31->unk_08 = 0; var_r31->unk_0C = var_r31->unk_10 = var_r31->unk_14 = 0.0f; @@ -2493,7 +2493,7 @@ void fn_1_6704(omObjData *object) Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_0C, var_r31->unk_10, var_r31->unk_14); Hu3DModelRotSet(var_r31->unk_00, CRot.x, CRot.y, CRot.z); if (++var_r31->unk_08 >= 120.0f) { - Hu3DModelAttrSet(var_r31->unk_00, 1); + Hu3DModelAttrSet(var_r31->unk_00, HU3D_ATTR_DISPOFF); var_r31->unk_04 = 0; var_r31->unk_08 = 0; } @@ -2543,7 +2543,7 @@ s32 fn_1_6888(Vec *arg0) Hu3DModelAttrSet(var_r31->unk_00, 0); Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_0C, var_r31->unk_10, var_r31->unk_14); Hu3DModelScaleSet(var_r31->unk_00, 1.0f, 1.0f, 1.0f); - Hu3DModelAttrReset(var_r31->unk_00, 1); + Hu3DModelAttrReset(var_r31->unk_00, HU3D_ATTR_DISPOFF); return var_r30; } @@ -2603,7 +2603,7 @@ void fn_1_6A34(omObjData *object) } espDispOn(var_r31->unk_14[var_r30]); espDrawNoSet(var_r31->unk_14[var_r30], 0); - espAttrSet(var_r31->unk_14[var_r30], 1); + espAttrSet(var_r31->unk_14[var_r30], HUSPR_ATTR_NOANIM); espPosSet(var_r31->unk_14[var_r30], var_r31->unk_00 + var_r31->unk_2C[var_r30][0], var_r31->unk_04 + var_r31->unk_2C[var_r30][1]); } } diff --git a/src/REL/m429Dll/main.c b/src/REL/m429Dll/main.c index ba063799..10ef355d 100644 --- a/src/REL/m429Dll/main.c +++ b/src/REL/m429Dll/main.c @@ -965,7 +965,7 @@ void fn_1_2684(void) temp_r30 = frandmod(2); lbl_1_bss_190 = &lbl_1_data_1340[temp_r30]; temp_r30 = Hu3DModelCreateFile(lbl_1_bss_190->unk8[0]); - Hu3DModelAttrSet(temp_r30, 1); + Hu3DModelAttrSet(temp_r30, HU3D_ATTR_DISPOFF); Hu3DModelPosSet(temp_r30, 0, 0, 0); Hu3DModelRotSet(temp_r30, 0, -90.f * lbl_1_bss_34, 0); for (temp_r28 = 0; temp_r28 < lbl_1_bss_190->unk1C; temp_r28++) { @@ -1129,7 +1129,7 @@ void fn_1_31A8(omObjData *object) { } void fn_1_31AC(omObjData *object) { object->model[0] = Hu3DModelCreateFile(lbl_1_bss_190->unk4[lbl_1_bss_34]); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); omSetTra(object, 0, 0, 0); omSetRot(object, 0, 0, 0); object->func = fn_1_31A8; @@ -1203,8 +1203,8 @@ void fn_1_33F8(omObjData *object) object->model[1] = Hu3DModelCreateFile(*temp_r27++); for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { Hu3DModelCameraSet(object->model[temp_r29], 15); - Hu3DModelAttrSet(object->model[temp_r29], 1); - Hu3DModelAttrSet(object->model[temp_r29], 0x40000001); + Hu3DModelAttrSet(object->model[temp_r29], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[temp_r29], HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(object->model[temp_r29], 0x40000002); Hu3DModelLayerSet(object->model[temp_r29], 3); Hu3DModelPosSet(object->model[temp_r29], temp_r31->unk0.x, temp_r31->unk0.y, temp_r31->unk0.z); @@ -1213,7 +1213,7 @@ void fn_1_33F8(omObjData *object) } omSetTra(object, temp_r31->unk0.x, temp_r31->unk0.y, temp_r31->unk0.z); omSetRot(object, 0, 0, 0); - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); object->func = fn_1_3284; } @@ -1486,11 +1486,11 @@ void fn_1_50AC(Work8F68 *arg0, omObjData *arg1) } temp_r27 = lbl_1_bss_1A0[arg0->unkA0]; omSetTra(temp_r27, arg0->unk28.x, arg0->unk28.y, arg0->unk28.z); - Hu3DModelAttrReset(temp_r27->model[0], 1); + Hu3DModelAttrReset(temp_r27->model[0], HU3D_ATTR_DISPOFF); temp_r30->unk18 |= 0x1; - Hu3DModelAttrSet(lbl_1_bss_19C[temp_r28]->model[0], 1); - Hu3DModelAttrReset(lbl_1_bss_19C[temp_r28]->model[1], 1); + Hu3DModelAttrSet(lbl_1_bss_19C[temp_r28]->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_19C[temp_r28]->model[1], HU3D_ATTR_DISPOFF); break; } } @@ -1938,7 +1938,7 @@ void fn_1_7D38(omObjData *object) Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, HU3D_MOTATTR_NONE); } if (temp_r31->unk9C == 2008 && temp_r31->unkA0 >= 0) { - Hu3DModelAttrSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], 1); + Hu3DModelAttrSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], HU3D_ATTR_DISPOFF); fn_1_1D18(object->model[0], CharModelHookNameGet(temp_r31->unk118, 8, 0), &sp8); temp_r31->unk70 = Hu3DParManLink(lbl_1_bss_8, &lbl_1_data_13E8); temp_r31->unk6C = 0; @@ -1971,9 +1971,9 @@ void fn_1_7D38(omObjData *object) Hu3DModelTPLvlSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0); Hu3DModelPosSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], sp8.x, sp8.y, sp8.z); Hu3DModelRotSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0, lbl_1_bss_110, 0); - Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0x40000002); - Hu3DModelAttrSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], HU3D_MOTATTR_LOOP); } } break; @@ -2099,8 +2099,8 @@ void fn_1_8F68(omObjData *object) CharModelMotionSet(lbl_1_data_0[temp_r31->unk118], object->motion[temp_r29]); } Hu3DModelCameraSet(object->model[0], 15); - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(object->model[0], 2); Hu3DMotionSet(object->model[0], object->motion[0]); Hu3DModelShadowSet(object->model[0]); @@ -2167,7 +2167,7 @@ void fn_1_8F68(omObjData *object) } CharModelVoiceEnableSet(temp_r31->unk118, object->motion[4], 0); fn_1_2950(temp_r31); - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); CharModelLayerSetAll2(5); CharModelMotionDataClose(lbl_1_data_0[temp_r31->unk118]); object->func = fn_1_7D38; @@ -2183,8 +2183,8 @@ void fn_1_99F0(omObjData *object) for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { object->model[temp_r30] = Hu3DModelCreateFile(*temp_r29++); Hu3DModelCameraSet(object->model[temp_r30], 15); - Hu3DModelAttrSet(object->model[temp_r30], 1); - Hu3DModelAttrSet(object->model[temp_r30], 0x40000002); + Hu3DModelAttrSet(object->model[temp_r30], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[temp_r30], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(object->model[temp_r30], 0x40000001); Hu3DModelLayerSet(object->model[temp_r30], 3); Hu3DModelShadowSet(object->model[temp_r30]); @@ -2228,7 +2228,7 @@ void fn_1_9BAC(omObjData *object) if (0.0f > temp_r31[1].z && 180.0f > temp_r31[0].y) { lbl_1_bss_20++; HuAudFXPlay(7); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); CharModelCoinEffectCreate(lbl_1_data_FEC[lbl_1_bss_28], temp_r31); omDelObjEx(lbl_1_bss_33C, object); } @@ -2240,8 +2240,8 @@ void fn_1_9EEC(omObjData *object) temp_r30 = object->data; object->model[0] = Hu3DModelLink(lbl_1_bss_1A); Hu3DModelCameraSet(object->model[0], lbl_1_data_FEC[lbl_1_bss_28]); - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[0], 4); Hu3DModelShadowSet(object->model[0]); temp_r30[0] = lbl_1_bss_F8[0]; @@ -2252,7 +2252,7 @@ void fn_1_9EEC(omObjData *object) omSetTra(object, temp_r30[0].x, temp_r30[0].y, temp_r30[0].z); omSetRot(object, 0, temp_r30[1].x, 0); omSetSca(object, 0.4f, 0.4f, 0.4f); - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); object->func = fn_1_9BAC; } @@ -2539,7 +2539,7 @@ void fn_1_B8E0(omObjData *object) if (lbl_1_bss_28 >= 0) { Hu3DModelAttrReset(object->model[0], 0x40000002); Hu3DModelAttrReset(object->model[3], 0x40000002); - Hu3DModelAttrReset(object->model[3], 1); + Hu3DModelAttrReset(object->model[3], HU3D_ATTR_DISPOFF); } } else { @@ -2553,8 +2553,8 @@ void fn_1_B8E0(omObjData *object) lbl_1_bss_12C++; } if (lbl_1_bss_28 >= 0 && 60.0f == lbl_1_bss_12C) { - Hu3DModelAttrSet(object->model[3], 1); - Hu3DModelAttrReset(object->model[4], 1); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[4], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(object->model[4], 0x40000002); } if (60.0f < lbl_1_bss_12C && !MGSeqStatGet(lbl_1_bss_2FE)) { @@ -2714,7 +2714,7 @@ void fn_1_D5E8(omObjData *object) object->model[0] = Hu3DModelCreateFile(lbl_1_bss_190->unk8[1]); Hu3DModelCameraSet(object->model[0], 15); Hu3DModelAttrSet(object->model[0], 0x4001); - Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(object->model[0], 0x40000001); Hu3DModelLayerSet(object->model[0], 0); Hu3DModelShadowMapSet(object->model[0]); @@ -2723,20 +2723,20 @@ void fn_1_D5E8(omObjData *object) object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M429, 0x22)); Hu3DModelCameraSet(object->model[1], 15); Hu3DModelAttrSet(object->model[1], 0x4001); - Hu3DModelAttrSet(object->model[1], 0x40000002); + Hu3DModelAttrSet(object->model[1], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[1], 0); Hu3DModelShadowMapSet(object->model[1]); Hu3DModelPosSet(object->model[1], 0, 0, 0); object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M429, 0x23)); Hu3DModelCameraSet(object->model[2], 15); Hu3DModelAttrSet(object->model[2], 0x4001); - Hu3DModelAttrSet(object->model[2], 0x40000002); + Hu3DModelAttrSet(object->model[2], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[2], 0); Hu3DModelPosSet(object->model[2], 0, 0, 0); object->model[3] = Hu3DModelCreateFile(lbl_1_bss_190->unk8[2]); Hu3DModelCameraSet(object->model[3], 15); Hu3DModelAttrSet(object->model[3], 0x4001); - Hu3DModelAttrSet(object->model[3], 0x40000002); + Hu3DModelAttrSet(object->model[3], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(object->model[3], 0x40000001); Hu3DModelLayerSet(object->model[3], 1); Hu3DModelPosSet(object->model[3], 0, 0, 0); @@ -2750,7 +2750,7 @@ void fn_1_D5E8(omObjData *object) Hu3DModelRotSet(object->model[4], 0, -90.0f * lbl_1_bss_34, 0); lbl_1_bss_114 = 45; for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { - Hu3DModelAttrReset(object->model[temp_r30], 1); + Hu3DModelAttrReset(object->model[temp_r30], HU3D_ATTR_DISPOFF); } object->work[0] = 1000; WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); @@ -2846,7 +2846,7 @@ void ObjectSetup(void) temp_r28->work[0] = temp_r31; } lbl_1_bss_1A = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M429, 0x2F)); - Hu3DModelAttrSet(lbl_1_bss_1A, 1); + Hu3DModelAttrSet(lbl_1_bss_1A, HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(lbl_1_bss_1A, 0x40000003); omMakeGroupEx(lbl_1_bss_33C, 3, 20); lbl_1_bss_198 = omGetGroupMemberListEx(lbl_1_bss_33C, 3); diff --git a/src/REL/m431Dll/main.c b/src/REL/m431Dll/main.c index 6fe47c0a..594e6331 100644 --- a/src/REL/m431Dll/main.c +++ b/src/REL/m431Dll/main.c @@ -689,11 +689,11 @@ void fn_1_2110(omObjData *object) Hu3DModelLayerSet(object->model[0], 0); Hu3DModelScaleSet(object->model[0], 1.2f, 1.2f, 1.2f); temp_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M431, 0x11)); - Hu3DModelAttrSet(temp_r31, 0x40000001); + Hu3DModelAttrSet(temp_r31, HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(temp_r31, 0); Hu3DMotionSpeedSet(temp_r31, 0.25f); temp_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M431, 0x12)); - Hu3DModelAttrSet(temp_r31, 0x40000001); + Hu3DModelAttrSet(temp_r31, HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(temp_r31, 0); Hu3DMotionSpeedSet(temp_r31, 0.25f); temp_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M431, 0x13)); @@ -707,7 +707,7 @@ void fn_1_2110(omObjData *object) object->motion[6] = Hu3DJointMotionFile(temp_r31, DATA_MAKE_NUM(DATADIR_M431, 0x19)); Hu3DModelPosSet(temp_r31, 0, 0, -230); Hu3DModelShadowSet(temp_r31); - Hu3DModelAttrSet(temp_r31, 0x40000001); + Hu3DModelAttrSet(temp_r31, HU3D_MOTATTR_LOOP); Hu3DMotionSet(temp_r31, object->motion[0]); for (temp_r31 = 0; temp_r31 < 2; temp_r31++, temp_r28++) { temp_r25 = Hu3DModelCreateFile(lbl_1_data_114[0][temp_r31]); @@ -720,7 +720,7 @@ void fn_1_2110(omObjData *object) temp_f31 = 0; temp_f29 = 100; Hu3DModelPosSet(object->model[temp_r31 + 1], temp_f30, temp_f31, temp_f29); - Hu3DModelAttrSet(object->model[temp_r31 + 1], 0x40000002); + Hu3DModelAttrSet(object->model[temp_r31 + 1], HU3D_MOTATTR_PAUSE); object->model[temp_r31 + 3] = Hu3DModelCreateFile(lbl_1_data_114[1][temp_r31]); temp_f31 = 45; @@ -751,7 +751,7 @@ void fn_1_2110(omObjData *object) temp_r29->unk1C = Hu3DModelLink(temp_r28->unk4[0].unk1C); } Hu3DData[temp_r29->unk1C].pos.y = 1000; - Hu3DModelAttrSet(temp_r29->unk1C, 1); + Hu3DModelAttrSet(temp_r29->unk1C, HU3D_ATTR_DISPOFF); temp_r29->unk0 = 0; temp_r29->unk4 = lbl_1_data_1D0 + (36.0f * temp_r27); } @@ -958,7 +958,7 @@ void fn_1_30E0(Work2110 *arg0) temp_r31->unk0 &= ~0x1C; temp_r31->unk0 |= 8; temp_r31->unk20 = 0; - Hu3DModelAttrReset(temp_r31->unk1C, 1); + Hu3DModelAttrReset(temp_r31->unk1C, HU3D_ATTR_DISPOFF); } break; @@ -1164,7 +1164,7 @@ void fn_1_3D7C(Work2110 *arg0) void fn_1_3FD0(Unk72B4Data18 *arg0) { Hu3DData[arg0->unk2C].pos.y = 1000; - Hu3DModelAttrSet(arg0->unk2C, 1); + Hu3DModelAttrSet(arg0->unk2C, HU3D_ATTR_DISPOFF); } void fn_1_4028(Work2110 *arg0) diff --git a/src/REL/m431Dll/object.c b/src/REL/m431Dll/object.c index 59a2959c..e02be14d 100644 --- a/src/REL/m431Dll/object.c +++ b/src/REL/m431Dll/object.c @@ -1,22 +1,25 @@ +#include "game/chrman.h" #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "game/chrman.h" + +#include "game/audio.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" -#include "game/audio.h" -#include "game/wipe.h" #include "game/pad.h" #include "game/sprite.h" -#include "game/minigame_seq.h" -#include "game/gamework_data.h" +#include "game/wipe.h" + -#include "ext_math.h" #include "REL/m431Dll.h" +#include "ext_math.h" + typedef struct bss_struct_62C { - u8 unk0; - float unk4; + u8 unk0; + float unk4; } BssStruct62C; BssStruct62C lbl_1_bss_62C[10]; @@ -27,38 +30,14 @@ u32 lbl_1_bss_9C[4]; s8 lbl_1_bss_98; float lbl_1_data_1D0 = 18; -float lbl_1_data_1D4[8] = { - 30.000002f, - 0, - 20.0f, - 0, - 20.0f, - 50.0f, - 20.0f, - 30.000002f -}; +float lbl_1_data_1D4[8] = { 30.000002f, 0, 20.0f, 0, 20.0f, 50.0f, 20.0f, 30.000002f }; -u32 lbl_1_data_1F4[8] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), - -1, - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x72) -}; +u32 lbl_1_data_1F4[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), -1, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x72) }; -char *lbl_1_data_230[8] = { - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r" -}; +char *lbl_1_data_230[8] = { "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", + "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r" }; void fn_1_858C(omObjData *object); void fn_1_9440(omObjData *object); @@ -67,69 +46,68 @@ void fn_1_B384(Process *objman); void fn_1_7ABC(Process *objman) { - Vec sp20; - Vec sp14; - Vec sp8; - Bss12CStruct *temp_r31; - s16 temp_r30; - s16 temp_r29; - BssStruct62C *temp_r28; - omObjData *temp_r26; - omMakeGroupEx(objman, 0, 4); - omGetGroupMemberListEx(objman, 0); - memset(lbl_1_bss_12C, 0, sizeof(lbl_1_bss_12C)); - for(temp_r30=0, temp_r29=0; temp_r30<4; temp_r30++) { - temp_r31 = &lbl_1_bss_12C[GWPlayerCfg[temp_r30].group]; - if(GWPlayerCfg[temp_r30].group != 0 && GWPlayerCfg[temp_r30].group != 1) { - break; - } - temp_r31->unk0[temp_r31->unk8++] = temp_r30; - if(temp_r31->unk8 == 2) { - temp_r29++; - } - } - if(temp_r29 != 2) { - GWPlayerCfg[0].group = GWPlayerCfg[1].group = 0; - GWPlayerCfg[2].group = GWPlayerCfg[3].group = 1; - lbl_1_bss_12C[0].unk0[0] = 0; - lbl_1_bss_12C[0].unk0[1] = 1; - lbl_1_bss_12C[0].unk8 = 2; - lbl_1_bss_12C[1].unk0[0] = 2; - lbl_1_bss_12C[1].unk0[1] = 3; - lbl_1_bss_12C[1].unk8 = 2; - } - for(temp_r30=0, temp_r28 = &lbl_1_bss_62C[0]; temp_r30<10; temp_r30++, temp_r28++) { - temp_r28->unk0 = 1; - temp_r28->unk4 = lbl_1_data_1D0+(temp_r30*36.0f); - } - lbl_1_bss_12C[0].unkC.x = -317; - lbl_1_bss_12C[1].unkC.x = 317; - lbl_1_bss_12C[0].unkC.y = lbl_1_bss_12C[1].unkC.y = 0; - lbl_1_bss_12C[0].unkC.z = lbl_1_bss_12C[1].unkC.z = 100; - lbl_1_bss_12C[0].unk18 = lbl_1_bss_12C[1].unk18 = 230; - for(temp_r30=0, temp_r31 = &lbl_1_bss_12C[0]; temp_r30<2; temp_r30++, temp_r31++) { - sp8.x = temp_r31->unkC.x; - sp8.y = temp_r31->unkC.y; - sp8.z = temp_r31->unkC.z; - for(temp_r29=0; temp_r29<10; temp_r29++) { - sp14.x = sp20.x = (temp_r31->unk18*sind(lbl_1_bss_62C[temp_r29].unk4))+sp8.x; - sp14.z = sp20.z = (temp_r31->unk18*cosd(lbl_1_bss_62C[temp_r29].unk4))+sp8.z; - sp14.y = sp8.y; - sp20.y = sp8.y-50; - fn_1_6184(&sp8, &temp_r31->unk1C[temp_r29]); - temp_r31->unkE4[temp_r29][0] = sp14.x; - temp_r31->unkE4[temp_r29][1] = sp14.z; - } - temp_r31->unk138[0] = 0; - } - for(temp_r30=0; temp_r30<4; temp_r30++) { - OSReport("PNo:%d Grp:%d\n", temp_r30, GWPlayerCfg[temp_r30].group); - temp_r26 = omAddObjEx(objman, 99, 0, 0, -1, fn_1_858C); - lbl_1_bss_61C[temp_r30] = omAddObjEx(objman, 100, 9, 8, 0, fn_1_9440); - lbl_1_bss_61C[temp_r30]->work[0] = temp_r26->work[0] = temp_r30; - - } - fn_1_B384(objman); + Vec sp20; + Vec sp14; + Vec sp8; + Bss12CStruct *temp_r31; + s16 temp_r30; + s16 temp_r29; + BssStruct62C *temp_r28; + omObjData *temp_r26; + omMakeGroupEx(objman, 0, 4); + omGetGroupMemberListEx(objman, 0); + memset(lbl_1_bss_12C, 0, sizeof(lbl_1_bss_12C)); + for (temp_r30 = 0, temp_r29 = 0; temp_r30 < 4; temp_r30++) { + temp_r31 = &lbl_1_bss_12C[GWPlayerCfg[temp_r30].group]; + if (GWPlayerCfg[temp_r30].group != 0 && GWPlayerCfg[temp_r30].group != 1) { + break; + } + temp_r31->unk0[temp_r31->unk8++] = temp_r30; + if (temp_r31->unk8 == 2) { + temp_r29++; + } + } + if (temp_r29 != 2) { + GWPlayerCfg[0].group = GWPlayerCfg[1].group = 0; + GWPlayerCfg[2].group = GWPlayerCfg[3].group = 1; + lbl_1_bss_12C[0].unk0[0] = 0; + lbl_1_bss_12C[0].unk0[1] = 1; + lbl_1_bss_12C[0].unk8 = 2; + lbl_1_bss_12C[1].unk0[0] = 2; + lbl_1_bss_12C[1].unk0[1] = 3; + lbl_1_bss_12C[1].unk8 = 2; + } + for (temp_r30 = 0, temp_r28 = &lbl_1_bss_62C[0]; temp_r30 < 10; temp_r30++, temp_r28++) { + temp_r28->unk0 = 1; + temp_r28->unk4 = lbl_1_data_1D0 + (temp_r30 * 36.0f); + } + lbl_1_bss_12C[0].unkC.x = -317; + lbl_1_bss_12C[1].unkC.x = 317; + lbl_1_bss_12C[0].unkC.y = lbl_1_bss_12C[1].unkC.y = 0; + lbl_1_bss_12C[0].unkC.z = lbl_1_bss_12C[1].unkC.z = 100; + lbl_1_bss_12C[0].unk18 = lbl_1_bss_12C[1].unk18 = 230; + for (temp_r30 = 0, temp_r31 = &lbl_1_bss_12C[0]; temp_r30 < 2; temp_r30++, temp_r31++) { + sp8.x = temp_r31->unkC.x; + sp8.y = temp_r31->unkC.y; + sp8.z = temp_r31->unkC.z; + for (temp_r29 = 0; temp_r29 < 10; temp_r29++) { + sp14.x = sp20.x = (temp_r31->unk18 * sind(lbl_1_bss_62C[temp_r29].unk4)) + sp8.x; + sp14.z = sp20.z = (temp_r31->unk18 * cosd(lbl_1_bss_62C[temp_r29].unk4)) + sp8.z; + sp14.y = sp8.y; + sp20.y = sp8.y - 50; + fn_1_6184(&sp8, &temp_r31->unk1C[temp_r29]); + temp_r31->unkE4[temp_r29][0] = sp14.x; + temp_r31->unkE4[temp_r29][1] = sp14.z; + } + temp_r31->unk138[0] = 0; + } + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + OSReport("PNo:%d Grp:%d\n", temp_r30, GWPlayerCfg[temp_r30].group); + temp_r26 = omAddObjEx(objman, 99, 0, 0, -1, fn_1_858C); + lbl_1_bss_61C[temp_r30] = omAddObjEx(objman, 100, 9, 8, 0, fn_1_9440); + lbl_1_bss_61C[temp_r30]->work[0] = temp_r26->work[0] = temp_r30; + } + fn_1_B384(objman); } s16 lbl_1_data_260[4] = { 0, 0, 0, 0 }; @@ -143,111 +121,118 @@ s16 fn_1_B530(s16 arg0); s32 fn_1_7FB8(s16 arg0) { - Bss61CWork *temp_r31; - Bss12CStruct *temp_r30 = &lbl_1_bss_12C[arg0]; - s16 sp18[4] = { 0, 9, 9, 0}; - - s16 sp14[2]; - s16 sp10[2]; - s16 spC[2]; - s16 spA; - s16 temp_r29; - s32 temp_r28; - if(lbl_1_bss_98 != 0) { - (void)lbl_1_bss_98; - } else { - for(temp_r29=0, temp_r28=0; temp_r29<2; temp_r29++) { - temp_r31 = lbl_1_bss_61C[temp_r30->unk0[temp_r29]]->data; - if((temp_r31->unk0 & 0xC0) || (temp_r31->unk0 & 0x600)) { - temp_r28 = 1; - } - fn_1_8CC0(lbl_1_bss_61C[temp_r30->unk0[temp_r29]]); - sp10[temp_r29] = temp_r31->unk40 = fn_1_B4F8(temp_r31->unk44.y); - spC[temp_r29] = fn_1_B530(temp_r31->unk40); - - } - if(temp_r28 != 0) { - return 0; - } - if(spC[0] != spC[1]) { - if(spC[0] == 0) { - temp_r31 = lbl_1_bss_61C[temp_r30->unk0[0]]->data; - temp_r31->unk84 = lbl_1_data_268[0]; - temp_r31->unk14->unk84 = lbl_1_data_268[1]; - } else { - temp_r31 = lbl_1_bss_61C[temp_r30->unk0[1]]->data; - temp_r31->unk84 = lbl_1_data_268[0]; - temp_r31->unk14->unk84 = lbl_1_data_268[1]; - } - } else { - if(spC[0] == 0) { - if(sp10[0] < sp10[1]) { - temp_r31 = lbl_1_bss_61C[temp_r30->unk0[0]]->data; - temp_r31->unk84 = lbl_1_data_268[1]; - temp_r31->unk14->unk84 = lbl_1_data_268[0]; - } else { - temp_r31 = lbl_1_bss_61C[temp_r30->unk0[1]]->data; - temp_r31->unk84 = lbl_1_data_268[1]; - temp_r31->unk14->unk84 = lbl_1_data_268[0]; - } - } else { - if(sp10[0] > sp10[1]) { - temp_r31 = lbl_1_bss_61C[temp_r30->unk0[0]]->data; - temp_r31->unk84 = lbl_1_data_268[0]; - temp_r31->unk14->unk84 = lbl_1_data_268[1]; - } else { - temp_r31 = lbl_1_bss_61C[temp_r30->unk0[1]]->data; - temp_r31->unk84 = lbl_1_data_268[0]; - temp_r31->unk14->unk84 = lbl_1_data_268[1]; - } - } - } - lbl_1_bss_98++; - } - for(temp_r29=0; temp_r29<2; temp_r29++) { - temp_r31 = lbl_1_bss_61C[temp_r30->unk0[temp_r29]]->data; - temp_r31->unkC = 0; - temp_r31->unk86 = 1; - temp_r31->unkB4 = 0; - temp_r31->unkB5 = 0; - sp14[temp_r29] = fn_1_8AD4(temp_r31, temp_r31->unk40, temp_r31->unk84, &spA, 0); - if(sp14[temp_r29] != 0) { - temp_r31->unkB4 = (spA == 0) ? 50 : -50; - } else { - temp_r31->unk86 = 0; - } - fn_1_8CC0(lbl_1_bss_61C[temp_r30->unk0[temp_r29]]); - sp14[temp_r29] = (temp_r31->unk0 & 0xC0) ? 1 : 0; - if(temp_r31->unk0 & 0x600) { - sp14[temp_r29] = 1; - } - } - if(sp14[0] == 0 && sp14[1] == 0) { - return 1; - } - return 0; + Bss61CWork *temp_r31; + Bss12CStruct *temp_r30 = &lbl_1_bss_12C[arg0]; + s16 sp18[4] = { 0, 9, 9, 0 }; + + s16 sp14[2]; + s16 sp10[2]; + s16 spC[2]; + s16 spA; + s16 temp_r29; + s32 temp_r28; + if (lbl_1_bss_98 != 0) { + (void)lbl_1_bss_98; + } + else { + for (temp_r29 = 0, temp_r28 = 0; temp_r29 < 2; temp_r29++) { + temp_r31 = lbl_1_bss_61C[temp_r30->unk0[temp_r29]]->data; + if ((temp_r31->unk0 & 0xC0) || (temp_r31->unk0 & 0x600)) { + temp_r28 = 1; + } + fn_1_8CC0(lbl_1_bss_61C[temp_r30->unk0[temp_r29]]); + sp10[temp_r29] = temp_r31->unk40 = fn_1_B4F8(temp_r31->unk44.y); + spC[temp_r29] = fn_1_B530(temp_r31->unk40); + } + if (temp_r28 != 0) { + return 0; + } + if (spC[0] != spC[1]) { + if (spC[0] == 0) { + temp_r31 = lbl_1_bss_61C[temp_r30->unk0[0]]->data; + temp_r31->unk84 = lbl_1_data_268[0]; + temp_r31->unk14->unk84 = lbl_1_data_268[1]; + } + else { + temp_r31 = lbl_1_bss_61C[temp_r30->unk0[1]]->data; + temp_r31->unk84 = lbl_1_data_268[0]; + temp_r31->unk14->unk84 = lbl_1_data_268[1]; + } + } + else { + if (spC[0] == 0) { + if (sp10[0] < sp10[1]) { + temp_r31 = lbl_1_bss_61C[temp_r30->unk0[0]]->data; + temp_r31->unk84 = lbl_1_data_268[1]; + temp_r31->unk14->unk84 = lbl_1_data_268[0]; + } + else { + temp_r31 = lbl_1_bss_61C[temp_r30->unk0[1]]->data; + temp_r31->unk84 = lbl_1_data_268[1]; + temp_r31->unk14->unk84 = lbl_1_data_268[0]; + } + } + else { + if (sp10[0] > sp10[1]) { + temp_r31 = lbl_1_bss_61C[temp_r30->unk0[0]]->data; + temp_r31->unk84 = lbl_1_data_268[0]; + temp_r31->unk14->unk84 = lbl_1_data_268[1]; + } + else { + temp_r31 = lbl_1_bss_61C[temp_r30->unk0[1]]->data; + temp_r31->unk84 = lbl_1_data_268[0]; + temp_r31->unk14->unk84 = lbl_1_data_268[1]; + } + } + } + lbl_1_bss_98++; + } + for (temp_r29 = 0; temp_r29 < 2; temp_r29++) { + temp_r31 = lbl_1_bss_61C[temp_r30->unk0[temp_r29]]->data; + temp_r31->unkC = 0; + temp_r31->unk86 = 1; + temp_r31->unkB4 = 0; + temp_r31->unkB5 = 0; + sp14[temp_r29] = fn_1_8AD4(temp_r31, temp_r31->unk40, temp_r31->unk84, &spA, 0); + if (sp14[temp_r29] != 0) { + temp_r31->unkB4 = (spA == 0) ? 50 : -50; + } + else { + temp_r31->unk86 = 0; + } + fn_1_8CC0(lbl_1_bss_61C[temp_r30->unk0[temp_r29]]); + sp14[temp_r29] = (temp_r31->unk0 & 0xC0) ? 1 : 0; + if (temp_r31->unk0 & 0x600) { + sp14[temp_r29] = 1; + } + } + if (sp14[0] == 0 && sp14[1] == 0) { + return 1; + } + return 0; } s32 fn_1_8474(s16 arg0) { - s32 spC[2]; - s32 temp_r31; - Bss61CWork *temp_r30; - Bss12CStruct *temp_r29; - temp_r29 = &lbl_1_bss_12C[arg0]; - for(temp_r31=0; temp_r31<2; temp_r31++) { - temp_r30 = lbl_1_bss_61C[temp_r29->unk0[temp_r31]]->data; - fn_1_8CC0(lbl_1_bss_61C[temp_r29->unk0[temp_r31]]); - if((temp_r30->unk0 & 0xC0) || (temp_r30->unk0 & 0x600) || (temp_r30->unk0 & 0x20)) { - spC[temp_r31] = 1; - } else { - spC[temp_r31] = 0; - } - } - if(spC[0] == 0 && spC[1] == 0) { - return 1; - } - return 0; + s32 spC[2]; + s32 temp_r31; + Bss61CWork *temp_r30; + Bss12CStruct *temp_r29; + temp_r29 = &lbl_1_bss_12C[arg0]; + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + temp_r30 = lbl_1_bss_61C[temp_r29->unk0[temp_r31]]->data; + fn_1_8CC0(lbl_1_bss_61C[temp_r29->unk0[temp_r31]]); + if ((temp_r30->unk0 & 0xC0) || (temp_r30->unk0 & 0x600) || (temp_r30->unk0 & 0x20)) { + spC[temp_r31] = 1; + } + else { + spC[temp_r31] = 0; + } + } + if (spC[0] == 0 && spC[1] == 0) { + return 1; + } + return 0; } void fn_1_8790(omObjData *object); @@ -256,172 +241,180 @@ u32 fn_1_ABA0(omObjData *object, u32 arg1); void fn_1_858C(omObjData *object) { - Bss61CWork *temp_r31; - u16 temp_r29; - if(lbl_1_data_260[object->work[0]] == 0) { - return; - } - temp_r31 = lbl_1_bss_61C[object->work[0]]->data; - temp_r31->unkB0 = HuPadBtn[temp_r31->unk6]; - temp_r31->unkB2 = HuPadBtnDown[temp_r31->unk6]; - temp_r31->unkB4 = HuPadStkX[temp_r31->unk6]; - temp_r31->unkB5 = HuPadStkY[temp_r31->unk6]; - if(fn_1_2090(1) != 0) { - return; - } - temp_r29 = fn_1_2090(28); - if(temp_r29 == 12 || temp_r29 == 16) { - if(fn_1_ABA0(lbl_1_bss_61C[object->work[0]], 0x600) == 0 && lbl_1_data_260[object->work[0]] != 0) { - temp_r31 = lbl_1_bss_61C[object->work[0]]->data; - if(temp_r31->unk14 == 0) { - temp_r31->unk14 = fn_1_AAF0(lbl_1_bss_61C[object->work[0]]); - } - if(GWPlayerCfg[temp_r31->unk4].iscom) { - fn_1_8790(lbl_1_bss_61C[object->work[0]]); - } - fn_1_8CC0(lbl_1_bss_61C[object->work[0]]); - } - - } + Bss61CWork *temp_r31; + u16 temp_r29; + if (lbl_1_data_260[object->work[0]] == 0) { + return; + } + temp_r31 = lbl_1_bss_61C[object->work[0]]->data; + temp_r31->unkB0 = HuPadBtn[temp_r31->unk6]; + temp_r31->unkB2 = HuPadBtnDown[temp_r31->unk6]; + temp_r31->unkB4 = HuPadStkX[temp_r31->unk6]; + temp_r31->unkB5 = HuPadStkY[temp_r31->unk6]; + if (fn_1_2090(1) != 0) { + return; + } + temp_r29 = fn_1_2090(28); + if (temp_r29 == 12 || temp_r29 == 16) { + if (fn_1_ABA0(lbl_1_bss_61C[object->work[0]], 0x600) == 0 && lbl_1_data_260[object->work[0]] != 0) { + temp_r31 = lbl_1_bss_61C[object->work[0]]->data; + if (temp_r31->unk14 == 0) { + temp_r31->unk14 = fn_1_AAF0(lbl_1_bss_61C[object->work[0]]); + } + if (GWPlayerCfg[temp_r31->unk4].iscom) { + fn_1_8790(lbl_1_bss_61C[object->work[0]]); + } + fn_1_8CC0(lbl_1_bss_61C[object->work[0]]); + } + } } void fn_1_8790(omObjData *object) { - Bss61CWork *temp_r31; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - u32 temp_r26; - s16 sp18[9]; - s16 sp8[8]; - temp_r31 = object->data; - temp_r31->unkB4 = temp_r31->unkB5 = 0; - temp_r31->unkB2 = 0; - if(fn_1_2090(224)) { - return; - } - sp18[8] = 999; - for(temp_r30=0, temp_r28=0, temp_r29=8; temp_r30unk6E; temp_r30++) { - temp_r26 = fn_1_4738(temp_r31->unkA, temp_r31->unk5E[temp_r30]); - if(temp_r26 & 0x1) { - temp_r31->unk5E[temp_r30] = -1; - } - sp18[temp_r30] = fn_1_8AD4(temp_r31, temp_r31->unk40, temp_r31->unk5E[temp_r30], &sp8[temp_r30], 1); - if(sp18[temp_r30] < sp18[temp_r29]) { - temp_r29 = temp_r30; - } - if(temp_r31->unk5E[temp_r30] == -1) { - temp_r28++; - } - } - if(temp_r28 == temp_r31->unk6E) { - return; - } - if(temp_r31->unk70 < temp_r31->unk72 && temp_r29 < 4) { - for(temp_r30=4; temp_r30unk6E; temp_r30++) { - if(sp18[temp_r30] < 10) { - temp_r29 = temp_r30; - break; - } - } - } - if(temp_r31->unk7C == 0) { - if(GWPlayerCfg[temp_r31->unk14->unk4].iscom) { - if(temp_r31->unk4 > temp_r31->unk14->unk4 && (temp_r31->unk0 & 0x20)) { - temp_r31->unk7C = 1; - } - } else { - if(temp_r31->unk0 & 0x20) { - temp_r31->unk7C = 1; - } - } - } - if(temp_r31->unk7C && temp_r28 == temp_r31->unk6E-1) { - if(++temp_r31->unk7C > 120) { - temp_r31->unk7C = 0; - } - if((temp_r31->unk14->unk0 & 0xC0) == 0x40) { - sp8[temp_r29] = 0; - } else { - if((temp_r31->unk14->unk0 & 0xC0) == 0x80) { - sp8[temp_r29] = 1; - } else { - temp_r31->unk7C = 0; - } - } - } - if(sp18[temp_r29] != -1) { - temp_r31->unkB4 = (sp8[temp_r29] == 0) ? 50 : -50; - } else { - if(temp_r31->unk44.z <= 15.0f) { - temp_r31->unkB2 = PAD_BUTTON_A; - } - } + Bss61CWork *temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + u32 temp_r26; + s16 sp18[9]; + s16 sp8[8]; + temp_r31 = object->data; + temp_r31->unkB4 = temp_r31->unkB5 = 0; + temp_r31->unkB2 = 0; + if (fn_1_2090(224)) { + return; + } + sp18[8] = 999; + for (temp_r30 = 0, temp_r28 = 0, temp_r29 = 8; temp_r30 < temp_r31->unk6E; temp_r30++) { + temp_r26 = fn_1_4738(temp_r31->unkA, temp_r31->unk5E[temp_r30]); + if (temp_r26 & 0x1) { + temp_r31->unk5E[temp_r30] = -1; + } + sp18[temp_r30] = fn_1_8AD4(temp_r31, temp_r31->unk40, temp_r31->unk5E[temp_r30], &sp8[temp_r30], 1); + if (sp18[temp_r30] < sp18[temp_r29]) { + temp_r29 = temp_r30; + } + if (temp_r31->unk5E[temp_r30] == -1) { + temp_r28++; + } + } + if (temp_r28 == temp_r31->unk6E) { + return; + } + if (temp_r31->unk70 < temp_r31->unk72 && temp_r29 < 4) { + for (temp_r30 = 4; temp_r30 < temp_r31->unk6E; temp_r30++) { + if (sp18[temp_r30] < 10) { + temp_r29 = temp_r30; + break; + } + } + } + if (temp_r31->unk7C == 0) { + if (GWPlayerCfg[temp_r31->unk14->unk4].iscom) { + if (temp_r31->unk4 > temp_r31->unk14->unk4 && (temp_r31->unk0 & 0x20)) { + temp_r31->unk7C = 1; + } + } + else { + if (temp_r31->unk0 & 0x20) { + temp_r31->unk7C = 1; + } + } + } + if (temp_r31->unk7C && temp_r28 == temp_r31->unk6E - 1) { + if (++temp_r31->unk7C > 120) { + temp_r31->unk7C = 0; + } + if ((temp_r31->unk14->unk0 & 0xC0) == 0x40) { + sp8[temp_r29] = 0; + } + else { + if ((temp_r31->unk14->unk0 & 0xC0) == 0x80) { + sp8[temp_r29] = 1; + } + else { + temp_r31->unk7C = 0; + } + } + } + if (sp18[temp_r29] != -1) { + temp_r31->unkB4 = (sp8[temp_r29] == 0) ? 50 : -50; + } + else { + if (temp_r31->unk44.z <= 15.0f) { + temp_r31->unkB2 = PAD_BUTTON_A; + } + } } s16 fn_1_8AD4(Bss61CWork *arg0, s16 arg1, s16 arg2, s16 *arg3, u8 arg4) { - s16 temp_r31; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - - if(arg2 == -1) { - *arg3 = rand16()%2; - temp_r29 = 99; - } else if(arg1 == arg2) { - *arg3 = -1; - temp_r29 = (arg4) ? -1 : 0; - } else { - temp_r28 = temp_r27 = temp_r26 = temp_r25 = 0; - temp_r31 = arg1; - do { - temp_r31++; - temp_r28++; - if(temp_r31 >= 10) { - temp_r31 = 0; - } - if(arg4 && temp_r31 == arg0->unk14->unk40) { - temp_r26 = 99; - break; - } - } while(temp_r31 != arg2); - temp_r31 = arg1; - do { - temp_r31--; - temp_r27++; - if(temp_r31 < 0) { - temp_r31 = 9; - } - if(arg4 && temp_r31 == arg0->unk14->unk40) { - temp_r25 = 99; - break; - } - } while(temp_r31 != arg2); - if(temp_r26 != temp_r25) { - temp_r28 += temp_r26; - temp_r27 += temp_r25; - if(temp_r28 < temp_r27) { - *arg3 = 0; - temp_r29 = temp_r28; - } else { - *arg3 = 1; - temp_r29 = temp_r27; - } - } else { - if(temp_r28 < temp_r27) { - *arg3 = 0; - temp_r29 = temp_r28; - } else { - *arg3 = 1; - temp_r29 = temp_r27; - } - temp_r29 += 10; - } - } - return temp_r29; + s16 temp_r31; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + + if (arg2 == -1) { + *arg3 = rand16() % 2; + temp_r29 = 99; + } + else if (arg1 == arg2) { + *arg3 = -1; + temp_r29 = (arg4) ? -1 : 0; + } + else { + temp_r28 = temp_r27 = temp_r26 = temp_r25 = 0; + temp_r31 = arg1; + do { + temp_r31++; + temp_r28++; + if (temp_r31 >= 10) { + temp_r31 = 0; + } + if (arg4 && temp_r31 == arg0->unk14->unk40) { + temp_r26 = 99; + break; + } + } while (temp_r31 != arg2); + temp_r31 = arg1; + do { + temp_r31--; + temp_r27++; + if (temp_r31 < 0) { + temp_r31 = 9; + } + if (arg4 && temp_r31 == arg0->unk14->unk40) { + temp_r25 = 99; + break; + } + } while (temp_r31 != arg2); + if (temp_r26 != temp_r25) { + temp_r28 += temp_r26; + temp_r27 += temp_r25; + if (temp_r28 < temp_r27) { + *arg3 = 0; + temp_r29 = temp_r28; + } + else { + *arg3 = 1; + temp_r29 = temp_r27; + } + } + else { + if (temp_r28 < temp_r27) { + *arg3 = 0; + temp_r29 = temp_r28; + } + else { + *arg3 = 1; + temp_r29 = temp_r27; + } + temp_r29 += 10; + } + } + return temp_r29; } s16 fn_1_938C(omObjData *object); @@ -429,169 +422,182 @@ void fn_1_ABC0(omObjData *object, u32 arg1, u32 arg2); void fn_1_8CC0(omObjData *object) { - float temp_f31; - float temp_f30; - float temp_f28; - - Bss61CWork *temp_r31; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - s16 temp_r26; - - - Vec sp10; - u16 sp8; - Bss12CInner *temp_r25; - temp_r31 = object->data; - if(temp_r31->unk38 == 3 || temp_r31->unk38 == 5) { - return; - } - sp8 = fn_1_2090(28); - if((temp_r31->unk0 & 0x20) || (fn_1_2090(28) != 12 && temp_r31->unk86 == 0)) { - temp_r28 = temp_r26 = 0; - } else { - temp_r28 = temp_r31->unkB4; - temp_r26 = temp_r31->unkB5; - } - temp_r30 = temp_r29 = 0; - if(temp_r31->unk52 == 0) { - switch(temp_r31->unkC) { - case 0: - if(temp_r28 > 10) { - temp_r30 = 1; - } else if(temp_r28 < -10) { - temp_r29 = 1; - } - break; - - case 1: - if(ABS(temp_r28) >= 10 || ABS(temp_r26) >= 10) { - temp_r25 = &lbl_1_bss_12C[temp_r31->unkA].unk1C[temp_r31->unk40]; - sp10.x = temp_r28+lbl_1_bss_12C[temp_r31->unkA].unkE4[temp_r31->unk40][0]; - sp10.z = lbl_1_bss_12C[temp_r31->unkA].unkE4[temp_r31->unk40][1]-temp_r26; - temp_f28 = (temp_r25->unk0.x*sp10.x)+(temp_r25->unk0.z*sp10.z)-temp_r25->unkC; - if(temp_f28 > 0.0f) { - if(temp_r31->unk50 != temp_r31->unk40) { - if(temp_r31->unk54 == 128) { - temp_r31->unk52 = 1; - } - } else { - temp_r30 = 1; - } - } else { - if(temp_f28 < 0.0f) { - if(temp_r31->unk50 != temp_r31->unk40) { - if(temp_r31->unk54 == 64) { - temp_r31->unk52 = 1; - } - - } else { - temp_r29 = 1; - } - } - } - } - break; - } - } else { - if(temp_r31->unk58 != temp_r28 || temp_r31->unk5A != temp_r26) { - temp_r31->unk52 = 0; - } - } - temp_f31 = temp_r31->unk24.x-temp_r31->unk14->unk24.x; - temp_f30 = temp_r31->unk24.z-temp_r31->unk14->unk24.z; - temp_f28 = VECMagPoint(temp_f31, 0, temp_f30); - if(temp_f28 < 90 && (temp_r31->unk0 & 0x20) == 0) { - if(fn_1_938C(object) == 0) { - temp_r30 = 0; - temp_r29 = 1; - } else { - temp_r30 = 1; - temp_r29 = 0; - } - temp_r31->unk0 |= 0x20; - } else { - if(temp_r31->unk54 == 64) { - temp_r27 = temp_r31->unk42-temp_r31->unk40; - if(temp_r27 < 0) { - temp_r27 += 10; - } - if(temp_r27 > 1) { - temp_r31->unk42 = 1; - } - } else { - temp_r27 = temp_r31->unk40-temp_r31->unk42; - if(temp_r27 < 0) { - temp_r27 += 10; - } - if(temp_r27 > 1) { - temp_r31->unk42 = 9; - } - } - } - if(temp_r30) { - temp_r30 = 0; - if(temp_r31->unk54 == 64) { - if(temp_r31->unk44.z <= 2.0f) { - temp_r30 = 1; - } - } else if(temp_r31->unk54 == 128) { - if(temp_r31->unk40 != temp_r31->unk42) { - temp_r31->unk40 = temp_r31->unk42; - } - temp_r30 = 1; - } else { - temp_r30 = 1; - } - if(temp_r30) { - fn_1_ABC0(object, 192, 64); - temp_r31->unk42 = temp_r31->unk40+1; - if(temp_r31->unk42 >= 10) { - temp_r31->unk42 = 0; - } - } - } else if(temp_r29) { - temp_r29 = 0; - if(temp_r31->unk54 == 128) { - if(temp_r31->unk44.z <= 2.0f) { - temp_r29 = 1; - } - } else if(temp_r31->unk54 == 64) { - if(temp_r31->unk40 != temp_r31->unk42) { - temp_r31->unk40 = temp_r31->unk42; - } - temp_r29 = 1; - } else { - temp_r29 = 1; - } - if(temp_r29) { - fn_1_ABC0(object, 192, 128); - temp_r31->unk42 = temp_r31->unk40-1; - if(temp_r31->unk42 < 0) { - temp_r31->unk42 = 9; - } - } - } - temp_r31->unk50 = temp_r31->unk40; - temp_r31->unk54 = fn_1_ABA0(object, 192); - temp_r31->unk58 = temp_r28; - temp_r31->unk5A = temp_r26; + float temp_f31; + float temp_f30; + float temp_f28; + + Bss61CWork *temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + + Vec sp10; + u16 sp8; + Bss12CInner *temp_r25; + temp_r31 = object->data; + if (temp_r31->unk38 == 3 || temp_r31->unk38 == 5) { + return; + } + sp8 = fn_1_2090(28); + if ((temp_r31->unk0 & 0x20) || (fn_1_2090(28) != 12 && temp_r31->unk86 == 0)) { + temp_r28 = temp_r26 = 0; + } + else { + temp_r28 = temp_r31->unkB4; + temp_r26 = temp_r31->unkB5; + } + temp_r30 = temp_r29 = 0; + if (temp_r31->unk52 == 0) { + switch (temp_r31->unkC) { + case 0: + if (temp_r28 > 10) { + temp_r30 = 1; + } + else if (temp_r28 < -10) { + temp_r29 = 1; + } + break; + + case 1: + if (ABS(temp_r28) >= 10 || ABS(temp_r26) >= 10) { + temp_r25 = &lbl_1_bss_12C[temp_r31->unkA].unk1C[temp_r31->unk40]; + sp10.x = temp_r28 + lbl_1_bss_12C[temp_r31->unkA].unkE4[temp_r31->unk40][0]; + sp10.z = lbl_1_bss_12C[temp_r31->unkA].unkE4[temp_r31->unk40][1] - temp_r26; + temp_f28 = (temp_r25->unk0.x * sp10.x) + (temp_r25->unk0.z * sp10.z) - temp_r25->unkC; + if (temp_f28 > 0.0f) { + if (temp_r31->unk50 != temp_r31->unk40) { + if (temp_r31->unk54 == 128) { + temp_r31->unk52 = 1; + } + } + else { + temp_r30 = 1; + } + } + else { + if (temp_f28 < 0.0f) { + if (temp_r31->unk50 != temp_r31->unk40) { + if (temp_r31->unk54 == 64) { + temp_r31->unk52 = 1; + } + } + else { + temp_r29 = 1; + } + } + } + } + break; + } + } + else { + if (temp_r31->unk58 != temp_r28 || temp_r31->unk5A != temp_r26) { + temp_r31->unk52 = 0; + } + } + temp_f31 = temp_r31->unk24.x - temp_r31->unk14->unk24.x; + temp_f30 = temp_r31->unk24.z - temp_r31->unk14->unk24.z; + temp_f28 = VECMagPoint(temp_f31, 0, temp_f30); + if (temp_f28 < 90 && (temp_r31->unk0 & 0x20) == 0) { + if (fn_1_938C(object) == 0) { + temp_r30 = 0; + temp_r29 = 1; + } + else { + temp_r30 = 1; + temp_r29 = 0; + } + temp_r31->unk0 |= 0x20; + } + else { + if (temp_r31->unk54 == 64) { + temp_r27 = temp_r31->unk42 - temp_r31->unk40; + if (temp_r27 < 0) { + temp_r27 += 10; + } + if (temp_r27 > 1) { + temp_r31->unk42 = 1; + } + } + else { + temp_r27 = temp_r31->unk40 - temp_r31->unk42; + if (temp_r27 < 0) { + temp_r27 += 10; + } + if (temp_r27 > 1) { + temp_r31->unk42 = 9; + } + } + } + if (temp_r30) { + temp_r30 = 0; + if (temp_r31->unk54 == 64) { + if (temp_r31->unk44.z <= 2.0f) { + temp_r30 = 1; + } + } + else if (temp_r31->unk54 == 128) { + if (temp_r31->unk40 != temp_r31->unk42) { + temp_r31->unk40 = temp_r31->unk42; + } + temp_r30 = 1; + } + else { + temp_r30 = 1; + } + if (temp_r30) { + fn_1_ABC0(object, 192, 64); + temp_r31->unk42 = temp_r31->unk40 + 1; + if (temp_r31->unk42 >= 10) { + temp_r31->unk42 = 0; + } + } + } + else if (temp_r29) { + temp_r29 = 0; + if (temp_r31->unk54 == 128) { + if (temp_r31->unk44.z <= 2.0f) { + temp_r29 = 1; + } + } + else if (temp_r31->unk54 == 64) { + if (temp_r31->unk40 != temp_r31->unk42) { + temp_r31->unk40 = temp_r31->unk42; + } + temp_r29 = 1; + } + else { + temp_r29 = 1; + } + if (temp_r29) { + fn_1_ABC0(object, 192, 128); + temp_r31->unk42 = temp_r31->unk40 - 1; + if (temp_r31->unk42 < 0) { + temp_r31->unk42 = 9; + } + } + } + temp_r31->unk50 = temp_r31->unk40; + temp_r31->unk54 = fn_1_ABA0(object, 192); + temp_r31->unk58 = temp_r28; + temp_r31->unk5A = temp_r26; } s16 fn_1_938C(omObjData *object) { - Bss61CWork *temp_r31; - float temp_f31; - temp_r31 = object->data; - temp_f31 = temp_r31->unk44.y-temp_r31->unk14->unk44.y; - if(temp_f31 > 180.0f) { - temp_f31 -= 360.0f; - } else if(temp_f31 < -180.0f) { - temp_f31 = 360.0f+temp_f31; - } - return (temp_f31 <= 0.0f) ? 0 : 1; + Bss61CWork *temp_r31; + float temp_f31; + temp_r31 = object->data; + temp_f31 = temp_r31->unk44.y - temp_r31->unk14->unk44.y; + if (temp_f31 > 180.0f) { + temp_f31 -= 360.0f; + } + else if (temp_f31 < -180.0f) { + temp_f31 = 360.0f + temp_f31; + } + return (temp_f31 <= 0.0f) ? 0 : 1; } void fn_1_98D4(omObjData *object); @@ -600,64 +606,68 @@ void fn_1_B0E8(omObjData *object, s16 arg1, u32 arg2); void fn_1_9440(omObjData *object) { - Bss61CWork *temp_r31; - Bss12CStruct *temp_r29; - s16 temp_r28; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss61CWork), MEMORY_DEFAULT_NUM); - temp_r31 = object->data; - memset(temp_r31, 0, sizeof(Bss61CWork)); - object->stat |= 0x100; - temp_r31->unk4 = object->work[0]; - temp_r31->unk6 = GWPlayerCfg[temp_r31->unk4].pad_idx; - temp_r31->unk8 = GWPlayerCfg[temp_r31->unk4].character; - temp_r31->unkA = GWPlayerCfg[temp_r31->unk4].group; - temp_r31->unkC = (GWPlayerCfg[temp_r31->unk4].iscom) ? 0 : 1; - temp_r31->unkAC = 0; - object->model[0] = CharModelCreate(temp_r31->unk8, 2); - Hu3DModelLayerSet(object->model[0], 0); - Hu3DModelShadowSet(object->model[0]); - CharModelStepTypeSet(temp_r31->unk8, 0); - for(temp_r28=0; temp_r28<8; temp_r28++) { - if(lbl_1_data_1F4[temp_r28] != -1) { - object->motion[temp_r28] = CharModelMotionCreate(temp_r31->unk8, lbl_1_data_1F4[temp_r28]); - } else { - object->motion[temp_r28] = Hu3DJointMotionFile(object->model[0], DATA_MAKE_NUM(DATADIR_M431, 0x21)+temp_r31->unk8); - } - if(temp_r28 == 4 || temp_r28 == 5) { - CharModelVoiceEnableSet(temp_r31->unk8, object->motion[temp_r28], 0); - } - } - CharModelMotionDataClose(temp_r31->unk8); - temp_r29 = &lbl_1_bss_12C[temp_r31->unkA]; - for(temp_r28=0; temp_r28<8; temp_r28++) { - temp_r31->unk5E[temp_r28] = -1; - } - if(temp_r31->unkA == 0) { - if(temp_r29->unk0[0] == object->work[0]) { - temp_r31->unk44.y = lbl_1_bss_62C[9].unk4; - } else { - temp_r31->unk44.y = lbl_1_bss_62C[4].unk4; - } - } else { - if(temp_r29->unk0[0] == object->work[0]) { - temp_r31->unk44.y = lbl_1_bss_62C[5].unk4; - } else { - temp_r31->unk44.y = lbl_1_bss_62C[0].unk4; - } - } - temp_r31->unk40 = (temp_r31->unk44.y/360.0f)*10.0f; - temp_r31->unk42 = temp_r31->unk40; - temp_r31->unk10 = lbl_1_data_1D4[temp_r31->unk8]; - temp_r31->unk24.x = ((temp_r29->unk18+temp_r31->unk10)*sind(temp_r31->unk44.y))+temp_r29->unkC.x; - temp_r31->unk24.y = temp_r29->unkC.y; - temp_r31->unk24.z = ((temp_r29->unk18+temp_r31->unk10)*cosd(temp_r31->unk44.y))+temp_r29->unkC.z; - temp_r31->unk30 = atan2d(temp_r29->unkC.x-temp_r31->unk24.x, temp_r29->unkC.z-temp_r31->unk24.z); - Hu3DModelPosSet(object->model[0], temp_r31->unk24.x, temp_r31->unk24.y, temp_r31->unk24.z); - Hu3DModelRotSet(object->model[0], 0, temp_r31->unk30, 0); - temp_r31->unk38 = temp_r31->unk3A = -1; - fn_1_B0E8(object, 0, 10); - lbl_1_data_260[object->work[0]] = 1; - object->func = fn_1_98D4; + Bss61CWork *temp_r31; + Bss12CStruct *temp_r29; + s16 temp_r28; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss61CWork), MEMORY_DEFAULT_NUM); + temp_r31 = object->data; + memset(temp_r31, 0, sizeof(Bss61CWork)); + object->stat |= 0x100; + temp_r31->unk4 = object->work[0]; + temp_r31->unk6 = GWPlayerCfg[temp_r31->unk4].pad_idx; + temp_r31->unk8 = GWPlayerCfg[temp_r31->unk4].character; + temp_r31->unkA = GWPlayerCfg[temp_r31->unk4].group; + temp_r31->unkC = (GWPlayerCfg[temp_r31->unk4].iscom) ? 0 : 1; + temp_r31->unkAC = 0; + object->model[0] = CharModelCreate(temp_r31->unk8, 2); + Hu3DModelLayerSet(object->model[0], 0); + Hu3DModelShadowSet(object->model[0]); + CharModelStepTypeSet(temp_r31->unk8, 0); + for (temp_r28 = 0; temp_r28 < 8; temp_r28++) { + if (lbl_1_data_1F4[temp_r28] != -1) { + object->motion[temp_r28] = CharModelMotionCreate(temp_r31->unk8, lbl_1_data_1F4[temp_r28]); + } + else { + object->motion[temp_r28] = Hu3DJointMotionFile(object->model[0], DATA_MAKE_NUM(DATADIR_M431, 0x21) + temp_r31->unk8); + } + if (temp_r28 == 4 || temp_r28 == 5) { + CharModelVoiceEnableSet(temp_r31->unk8, object->motion[temp_r28], 0); + } + } + CharModelMotionDataClose(temp_r31->unk8); + temp_r29 = &lbl_1_bss_12C[temp_r31->unkA]; + for (temp_r28 = 0; temp_r28 < 8; temp_r28++) { + temp_r31->unk5E[temp_r28] = -1; + } + if (temp_r31->unkA == 0) { + if (temp_r29->unk0[0] == object->work[0]) { + temp_r31->unk44.y = lbl_1_bss_62C[9].unk4; + } + else { + temp_r31->unk44.y = lbl_1_bss_62C[4].unk4; + } + } + else { + if (temp_r29->unk0[0] == object->work[0]) { + temp_r31->unk44.y = lbl_1_bss_62C[5].unk4; + } + else { + temp_r31->unk44.y = lbl_1_bss_62C[0].unk4; + } + } + temp_r31->unk40 = (temp_r31->unk44.y / 360.0f) * 10.0f; + temp_r31->unk42 = temp_r31->unk40; + temp_r31->unk10 = lbl_1_data_1D4[temp_r31->unk8]; + temp_r31->unk24.x = ((temp_r29->unk18 + temp_r31->unk10) * sind(temp_r31->unk44.y)) + temp_r29->unkC.x; + temp_r31->unk24.y = temp_r29->unkC.y; + temp_r31->unk24.z = ((temp_r29->unk18 + temp_r31->unk10) * cosd(temp_r31->unk44.y)) + temp_r29->unkC.z; + temp_r31->unk30 = atan2d(temp_r29->unkC.x - temp_r31->unk24.x, temp_r29->unkC.z - temp_r31->unk24.z); + Hu3DModelPosSet(object->model[0], temp_r31->unk24.x, temp_r31->unk24.y, temp_r31->unk24.z); + Hu3DModelRotSet(object->model[0], 0, temp_r31->unk30, 0); + temp_r31->unk38 = temp_r31->unk3A = -1; + fn_1_B0E8(object, 0, 10); + lbl_1_data_260[object->work[0]] = 1; + object->func = fn_1_98D4; } void fn_1_9A04(omObjData *object); @@ -676,364 +686,384 @@ s32 fn_1_B494(s32 arg0, s32 arg1); void fn_1_98D4(omObjData *object) { - Vec sp8; - - Bss61CWork *temp_r31; - ModelData *temp_r29; - temp_r31 = object->data; - temp_r29 = &Hu3DData[object->model[0]]; - sp8.x = temp_r31->unk24.x-temp_r29->pos.x; - sp8.z = temp_r31->unk24.z-temp_r29->pos.z; - if((temp_r31->unk0 & 0x600) == 0 || 0.0f != sp8.x || 0.0f != sp8.z || (temp_r31->unk0 & 0x20)) { - fn_1_9A04(object); - fn_1_9C5C(object); - fn_1_A0F8(object); - } else { - fn_1_A450(object); - } - fn_1_B18C(object); - Hu3DModelPosSet(object->model[0], temp_r31->unk24.x, temp_r31->unk24.y, temp_r31->unk24.z); - Hu3DModelRotSet(object->model[0], 0, temp_r31->unk30, 0); - + Vec sp8; + + Bss61CWork *temp_r31; + ModelData *temp_r29; + temp_r31 = object->data; + temp_r29 = &Hu3DData[object->model[0]]; + sp8.x = temp_r31->unk24.x - temp_r29->pos.x; + sp8.z = temp_r31->unk24.z - temp_r29->pos.z; + if ((temp_r31->unk0 & 0x600) == 0 || 0.0f != sp8.x || 0.0f != sp8.z || (temp_r31->unk0 & 0x20)) { + fn_1_9A04(object); + fn_1_9C5C(object); + fn_1_A0F8(object); + } + else { + fn_1_A450(object); + } + fn_1_B18C(object); + Hu3DModelPosSet(object->model[0], temp_r31->unk24.x, temp_r31->unk24.y, temp_r31->unk24.z); + Hu3DModelRotSet(object->model[0], 0, temp_r31->unk30, 0); } void fn_1_9A04(omObjData *object) { - Bss61CWork *temp_r31; - ModelData *temp_r29; - - temp_r29 = &Hu3DData[object->model[0]]; - temp_r31 = object->data; - if(fn_1_2090(28) != 12 || fn_1_2090(224) != 0) { - return; - } - if(fn_1_4724() == 2) { - return; - } - if(fn_1_ABA0(object, 192) != 0) { - return; - } - if(temp_r31->unk38 == 0) { - if(temp_r29->unk_0C == -1 && temp_r31->unkB2 == PAD_BUTTON_A) { - if(fn_1_4CDC(temp_r31->unkA, temp_r31->unk40)) { - fn_1_B0E8(object, 3, 4); - fn_1_B130(object, 0, 8); - } - } - } else { - if(temp_r31->unk38 == 3) { - if(temp_r29->unk_0C == -1 && temp_r29->unk_64 == 14.0f) { - temp_r31->unk5C = fn_1_4B14(temp_r31->unkA, temp_r31->unk40, &temp_r31->unk7E); - if(temp_r31->unk5C != -1) { - if(temp_r31->unkA == 0) { - HuAudFXPlay(1668); - } else { - HuAudFXPlay(1673); - } - if(temp_r31->unk7E != 0) { - omVibrate(temp_r31->unk4, 12, 6, 6); - if(temp_r31->unkA == 0) { - fn_1_B494(1666, 30); - } else { - fn_1_B494(1671, 30); - } - } else { - if(temp_r31->unkA == 0) { - fn_1_B494(1667, 30); - } else { - fn_1_B494(1672, 30); - } - } - temp_r31->unk70++; - Hu3DModelPosSet(temp_r31->unk5C, 0, 0, 0); - Hu3DModelHookSet(object->model[0], lbl_1_data_230[temp_r31->unk8], temp_r31->unk5C); - fn_1_B150(object, fn_1_AA40); - } - } - } - } + Bss61CWork *temp_r31; + ModelData *temp_r29; + + temp_r29 = &Hu3DData[object->model[0]]; + temp_r31 = object->data; + if (fn_1_2090(28) != 12 || fn_1_2090(224) != 0) { + return; + } + if (fn_1_4724() == 2) { + return; + } + if (fn_1_ABA0(object, 192) != 0) { + return; + } + if (temp_r31->unk38 == 0) { + if (temp_r29->unk_0C == -1 && temp_r31->unkB2 == PAD_BUTTON_A) { + if (fn_1_4CDC(temp_r31->unkA, temp_r31->unk40)) { + fn_1_B0E8(object, 3, 4); + fn_1_B130(object, 0, 8); + } + } + } + else { + if (temp_r31->unk38 == 3) { + if (temp_r29->unk_0C == -1 && temp_r29->unk_64 == 14.0f) { + temp_r31->unk5C = fn_1_4B14(temp_r31->unkA, temp_r31->unk40, &temp_r31->unk7E); + if (temp_r31->unk5C != -1) { + if (temp_r31->unkA == 0) { + HuAudFXPlay(1668); + } + else { + HuAudFXPlay(1673); + } + if (temp_r31->unk7E != 0) { + omVibrate(temp_r31->unk4, 12, 6, 6); + if (temp_r31->unkA == 0) { + fn_1_B494(1666, 30); + } + else { + fn_1_B494(1671, 30); + } + } + else { + if (temp_r31->unkA == 0) { + fn_1_B494(1667, 30); + } + else { + fn_1_B494(1672, 30); + } + } + temp_r31->unk70++; + Hu3DModelPosSet(temp_r31->unk5C, 0, 0, 0); + Hu3DModelHookSet(object->model[0], lbl_1_data_230[temp_r31->unk8], temp_r31->unk5C); + fn_1_B150(object, fn_1_AA40); + } + } + } + } } void fn_1_9C5C(omObjData *object) { - float temp_f31; - Bss61CWork *temp_r31; - Bss12CStruct *temp_r30; - s8 temp_r29; - u32 temp_r27; - temp_r31 = object->data; - temp_r30 = &lbl_1_bss_12C[temp_r31->unkA]; - temp_r29 = 0; - if((temp_r27 = fn_1_ABA0(object, 192)) == 0) { - return; - } - if(temp_r27 == 192) { - temp_r29 = 1; - } else if(temp_r27 == 64) { - temp_r31->unk44.x += 0.3f; - if(temp_r31->unk44.x > 1.5f) { - temp_r31->unk44.x = 1.5f; - } - temp_r31->unk44.y += temp_r31->unk44.x; - temp_f31 = lbl_1_bss_62C[temp_r31->unk42].unk4; - if(temp_r31->unk40 == 9 && temp_r31->unk42 == 0) { - temp_f31 += 360.0f; - } else { - if(temp_r31->unk44.y >= 360.0f) { - temp_r31->unk44.y -= 360.0f; - } - } - temp_r31->unk44.z = ABS(temp_r31->unk44.y-temp_f31); - if(temp_r31->unk44.y >= temp_f31) { - temp_r29 = 1; - } - } else { - temp_r31->unk44.x -= 0.3f; - if(temp_r31->unk44.x < -1.5f) { - temp_r31->unk44.x = -1.5f; - } - temp_r31->unk44.y += temp_r31->unk44.x; - temp_f31 = lbl_1_bss_62C[temp_r31->unk42].unk4; - if(temp_r31->unk42 == 9 && temp_r31->unk40 == 0) { - if(temp_r31->unk44.y < 0.0f) { - temp_r31->unk44.y += 360.0f; - } else { - temp_f31 -= 360.0f; - } - } else { - if(temp_r31->unk42 == 0 || temp_r31->unk40 == 0) { - if(temp_r31->unk44.y < 0.0f) { - temp_r31->unk44.y += 360.0f; - temp_f31 += 360.0f; - } - } else { - if(temp_r31->unk44.y < 0.0f) { - temp_r31->unk44.y += 360.0f; - } - } - } - temp_r31->unk44.z = ABS(temp_r31->unk44.y-temp_f31); - if(temp_r31->unk44.y <= temp_f31) { - temp_r29 = 1; - } - } - if(temp_r29 != 0) { - temp_r31->unk44.x = 0; - temp_r31->unk44.y = lbl_1_bss_62C[temp_r31->unk42].unk4; - temp_r31->unk0 &= ~0xE0; - } - temp_r31->unk40 = (temp_r31->unk44.y/360.0f)*10.0f; - if(temp_r31->unk40 >= 10) { - temp_r31->unk40 -= 10; - } - temp_r31->unk24.x = ((temp_r30->unk18+temp_r31->unk10)*sind(temp_r31->unk44.y))+temp_r30->unkC.x; - temp_r31->unk24.y = temp_r30->unkC.y; - temp_r31->unk24.z = ((temp_r30->unk18+temp_r31->unk10)*cosd(temp_r31->unk44.y))+temp_r30->unkC.z; - fn_1_B0E8(object, 2, 8); + float temp_f31; + Bss61CWork *temp_r31; + Bss12CStruct *temp_r30; + s8 temp_r29; + u32 temp_r27; + temp_r31 = object->data; + temp_r30 = &lbl_1_bss_12C[temp_r31->unkA]; + temp_r29 = 0; + if ((temp_r27 = fn_1_ABA0(object, 192)) == 0) { + return; + } + if (temp_r27 == 192) { + temp_r29 = 1; + } + else if (temp_r27 == 64) { + temp_r31->unk44.x += 0.3f; + if (temp_r31->unk44.x > 1.5f) { + temp_r31->unk44.x = 1.5f; + } + temp_r31->unk44.y += temp_r31->unk44.x; + temp_f31 = lbl_1_bss_62C[temp_r31->unk42].unk4; + if (temp_r31->unk40 == 9 && temp_r31->unk42 == 0) { + temp_f31 += 360.0f; + } + else { + if (temp_r31->unk44.y >= 360.0f) { + temp_r31->unk44.y -= 360.0f; + } + } + temp_r31->unk44.z = ABS(temp_r31->unk44.y - temp_f31); + if (temp_r31->unk44.y >= temp_f31) { + temp_r29 = 1; + } + } + else { + temp_r31->unk44.x -= 0.3f; + if (temp_r31->unk44.x < -1.5f) { + temp_r31->unk44.x = -1.5f; + } + temp_r31->unk44.y += temp_r31->unk44.x; + temp_f31 = lbl_1_bss_62C[temp_r31->unk42].unk4; + if (temp_r31->unk42 == 9 && temp_r31->unk40 == 0) { + if (temp_r31->unk44.y < 0.0f) { + temp_r31->unk44.y += 360.0f; + } + else { + temp_f31 -= 360.0f; + } + } + else { + if (temp_r31->unk42 == 0 || temp_r31->unk40 == 0) { + if (temp_r31->unk44.y < 0.0f) { + temp_r31->unk44.y += 360.0f; + temp_f31 += 360.0f; + } + } + else { + if (temp_r31->unk44.y < 0.0f) { + temp_r31->unk44.y += 360.0f; + } + } + } + temp_r31->unk44.z = ABS(temp_r31->unk44.y - temp_f31); + if (temp_r31->unk44.y <= temp_f31) { + temp_r29 = 1; + } + } + if (temp_r29 != 0) { + temp_r31->unk44.x = 0; + temp_r31->unk44.y = lbl_1_bss_62C[temp_r31->unk42].unk4; + temp_r31->unk0 &= ~0xE0; + } + temp_r31->unk40 = (temp_r31->unk44.y / 360.0f) * 10.0f; + if (temp_r31->unk40 >= 10) { + temp_r31->unk40 -= 10; + } + temp_r31->unk24.x = ((temp_r30->unk18 + temp_r31->unk10) * sind(temp_r31->unk44.y)) + temp_r30->unkC.x; + temp_r31->unk24.y = temp_r30->unkC.y; + temp_r31->unk24.z = ((temp_r30->unk18 + temp_r31->unk10) * cosd(temp_r31->unk44.y)) + temp_r30->unkC.z; + fn_1_B0E8(object, 2, 8); } void fn_1_A0F8(omObjData *object) { - Vec sp8; - Bss61CWork *temp_r31; - ModelData *temp_r29; - Bss12CStruct *temp_r28; - s32 temp_r27; - temp_r29 = &Hu3DData[object->model[0]]; - temp_r31 = object->data; - temp_r28 = &lbl_1_bss_12C[temp_r31->unkA]; - temp_r27 = 0; - if(temp_r31->unk38 == 3 || temp_r31->unk38 == 5) { - return; - } - sp8.x = temp_r31->unk24.x-temp_r29->pos.x; - sp8.z = temp_r31->unk24.z-temp_r29->pos.z; - if(0.0f == sp8.x && 0.0f == sp8.z) { - if(fn_1_2090(224) == 0 && temp_r31->unk38 == 2 && (temp_r31->unkB0 & PAD_BUTTON_A)) { - temp_r31->unk7A = 1; - } - if(temp_r31->unk78 == 0) { - sp8.x = temp_r28->unkC.x-temp_r31->unk24.x; - sp8.z = temp_r28->unkC.z-temp_r31->unk24.z; - temp_r31->unk8C.x = temp_r31->unk30; - temp_r31->unk8C.y = atan2d(sp8.x, sp8.z); - temp_r31->unk8C.z = 0; - if(temp_r31->unk8C.y < 0.0f) { - temp_r31->unk8C.y += 360.0f; - } - temp_r31->unk78 = 1; - } - temp_r31->unk8C.z += 0.1f; - if(temp_r31->unk8C.z >= 1.0f) { - temp_r31->unk8C.z = 1.0f; - if(temp_r31->unk7A == 0) { - fn_1_B0E8(object, 0, 8); - } else { - if(fn_1_4CDC(temp_r31->unkA, temp_r31->unk40) && fn_1_2090(28) == 12 && fn_1_2090(224) == 0 && fn_1_4724() < 2) { - fn_1_B0E8(object, 3, 4); - fn_1_B130(object, 0, 8); - temp_r27 = 1; - } - if(temp_r27 == 0) { - fn_1_B0E8(object, 0, 8); - } - } - temp_r31->unk7A = 0; - } - temp_r31->unk30 = fn_1_6504(temp_r31->unk8C.x, temp_r31->unk8C.y, temp_r31->unk8C.z); - } else { - temp_r31->unk78 = temp_r31->unk7A = 0; - temp_r31->unk30 = atan2d(sp8.x, sp8.z); - if(temp_r31->unk30 < 0.0f) { - temp_r31->unk30 += 360.0f; - } - - } - lbl_1_bss_9C[object->work[0]] = temp_r31->unk0 & 0xC0; + Vec sp8; + Bss61CWork *temp_r31; + ModelData *temp_r29; + Bss12CStruct *temp_r28; + s32 temp_r27; + temp_r29 = &Hu3DData[object->model[0]]; + temp_r31 = object->data; + temp_r28 = &lbl_1_bss_12C[temp_r31->unkA]; + temp_r27 = 0; + if (temp_r31->unk38 == 3 || temp_r31->unk38 == 5) { + return; + } + sp8.x = temp_r31->unk24.x - temp_r29->pos.x; + sp8.z = temp_r31->unk24.z - temp_r29->pos.z; + if (0.0f == sp8.x && 0.0f == sp8.z) { + if (fn_1_2090(224) == 0 && temp_r31->unk38 == 2 && (temp_r31->unkB0 & PAD_BUTTON_A)) { + temp_r31->unk7A = 1; + } + if (temp_r31->unk78 == 0) { + sp8.x = temp_r28->unkC.x - temp_r31->unk24.x; + sp8.z = temp_r28->unkC.z - temp_r31->unk24.z; + temp_r31->unk8C.x = temp_r31->unk30; + temp_r31->unk8C.y = atan2d(sp8.x, sp8.z); + temp_r31->unk8C.z = 0; + if (temp_r31->unk8C.y < 0.0f) { + temp_r31->unk8C.y += 360.0f; + } + temp_r31->unk78 = 1; + } + temp_r31->unk8C.z += 0.1f; + if (temp_r31->unk8C.z >= 1.0f) { + temp_r31->unk8C.z = 1.0f; + if (temp_r31->unk7A == 0) { + fn_1_B0E8(object, 0, 8); + } + else { + if (fn_1_4CDC(temp_r31->unkA, temp_r31->unk40) && fn_1_2090(28) == 12 && fn_1_2090(224) == 0 && fn_1_4724() < 2) { + fn_1_B0E8(object, 3, 4); + fn_1_B130(object, 0, 8); + temp_r27 = 1; + } + if (temp_r27 == 0) { + fn_1_B0E8(object, 0, 8); + } + } + temp_r31->unk7A = 0; + } + temp_r31->unk30 = fn_1_6504(temp_r31->unk8C.x, temp_r31->unk8C.y, temp_r31->unk8C.z); + } + else { + temp_r31->unk78 = temp_r31->unk7A = 0; + temp_r31->unk30 = atan2d(sp8.x, sp8.z); + if (temp_r31->unk30 < 0.0f) { + temp_r31->unk30 += 360.0f; + } + } + lbl_1_bss_9C[object->work[0]] = temp_r31->unk0 & 0xC0; } void fn_1_A450(omObjData *object) { - float temp_f31; - Bss61CWork *temp_r31; - s32 temp_r29; - ModelData *temp_r28; - temp_r28 = &Hu3DData[object->model[0]]; - temp_r31 = object->data; - if(temp_r31->unk38 == 3) { - return; - } - temp_r31->unk7A = 0; - switch(temp_r31->unk80) { - case 0: - temp_r31->unk9C.y += 0.05f; - if(temp_r31->unk9C.y > 1.0f) { - temp_r31->unk9C.y = 1.0f; - temp_r31->unk80++; - } - temp_r29 = fn_1_2090(28); - if(temp_r29 >= 16 && lbl_1_bss_4) { - temp_f31 = CRot.y; - } else { - temp_f31 = 0.0f; - } - if(temp_f31 < 0.0f) { - temp_f31 += 360.0f; - } else if(temp_f31 >= 360.0f) { - temp_f31 -= 360.0f; - } - temp_r31->unk30 = fn_1_6504(temp_r31->unk9C.x, temp_f31, temp_r31->unk9C.y); - fn_1_B0E8(object, 2, 8); - break; - - case 1: - temp_r31->unk3A = -1; - temp_r29 = fn_1_2090(28); - if(temp_r29 >= 16 && lbl_1_bss_4) { - if(temp_r31->unkAC == 0) { - fn_1_B0E8(object, 6, 4); - } else { - fn_1_B0E8(object, 7, 4); - } - temp_r31->unk80 = 99; - } else { - fn_1_B0E8(object, 4, 4); - HuAudCharVoicePlay(temp_r31->unk8, 290); - temp_r31->unk80++; - } - break; - - case 2: - if(temp_r28->unk_0C == -1) { - if(Hu3DMotionTimeGet(object->model[0]) >= Hu3DMotionMaxTimeGet(object->model[0])-1.0f){ - fn_1_B0E8(object, 1, 8); - temp_r31->unk9C.y = 0; - temp_r31->unk80++; - } - } - break; - - case 3: - temp_r31->unk9C.y += 0.05f; - if(temp_r31->unk9C.y > 1.0f) { - if(fn_1_2090(1)) { - fn_1_2050(2, 2); - } - fn_1_B0E8(object, 0, 8); - fn_1_ABC0(object, 0x600, 0); - temp_r31->unk9C.y = 1.0f; - temp_r31->unk80++; - } - if(!temp_r31->unkAC) { - temp_r31->unk30 = fn_1_6504(0, temp_r31->unk9C.x, temp_r31->unk9C.y); - } - break; - } + float temp_f31; + Bss61CWork *temp_r31; + s32 temp_r29; + ModelData *temp_r28; + temp_r28 = &Hu3DData[object->model[0]]; + temp_r31 = object->data; + if (temp_r31->unk38 == 3) { + return; + } + temp_r31->unk7A = 0; + switch (temp_r31->unk80) { + case 0: + temp_r31->unk9C.y += 0.05f; + if (temp_r31->unk9C.y > 1.0f) { + temp_r31->unk9C.y = 1.0f; + temp_r31->unk80++; + } + temp_r29 = fn_1_2090(28); + if (temp_r29 >= 16 && lbl_1_bss_4) { + temp_f31 = CRot.y; + } + else { + temp_f31 = 0.0f; + } + if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + else if (temp_f31 >= 360.0f) { + temp_f31 -= 360.0f; + } + temp_r31->unk30 = fn_1_6504(temp_r31->unk9C.x, temp_f31, temp_r31->unk9C.y); + fn_1_B0E8(object, 2, 8); + break; + + case 1: + temp_r31->unk3A = -1; + temp_r29 = fn_1_2090(28); + if (temp_r29 >= 16 && lbl_1_bss_4) { + if (temp_r31->unkAC == 0) { + fn_1_B0E8(object, 6, 4); + } + else { + fn_1_B0E8(object, 7, 4); + } + temp_r31->unk80 = 99; + } + else { + fn_1_B0E8(object, 4, 4); + HuAudCharVoicePlay(temp_r31->unk8, 290); + temp_r31->unk80++; + } + break; + + case 2: + if (temp_r28->unk_0C == -1) { + if (Hu3DMotionTimeGet(object->model[0]) >= Hu3DMotionMaxTimeGet(object->model[0]) - 1.0f) { + fn_1_B0E8(object, 1, 8); + temp_r31->unk9C.y = 0; + temp_r31->unk80++; + } + } + break; + + case 3: + temp_r31->unk9C.y += 0.05f; + if (temp_r31->unk9C.y > 1.0f) { + if (fn_1_2090(1)) { + fn_1_2050(2, 2); + } + fn_1_B0E8(object, 0, 8); + fn_1_ABC0(object, 0x600, 0); + temp_r31->unk9C.y = 1.0f; + temp_r31->unk80++; + } + if (!temp_r31->unkAC) { + temp_r31->unk30 = fn_1_6504(0, temp_r31->unk9C.x, temp_r31->unk9C.y); + } + break; + } } void fn_1_A7D0(s16 arg0) { - Bss61CWork *temp_r31; - Bss12CStruct *temp_r30; - s16 temp_r29; - s16 temp_r28; - temp_r30 = &lbl_1_bss_12C[arg0]; - if(arg0 == -1) { - return; - } - for(temp_r29=0; temp_r29<1; temp_r29++) { - if(temp_r29 == 0) { - temp_r30 = &lbl_1_bss_12C[arg0]; - } else { - temp_r30 = &lbl_1_bss_12C[arg0^1]; - } - for(temp_r28=0; temp_r28unk8; temp_r28++) { - temp_r31 = lbl_1_bss_61C[temp_r30->unk0[temp_r28]]->data; - temp_r31->unk80 = 0; - temp_r31->unk9C.x = temp_r31->unk30; - temp_r31->unk9C.y = 0; - temp_r31->unk0 &= ~0x600; - - if(temp_r29 == 0) { - temp_r31->unk0 |= 0x200; - } else { - temp_r31->unk0 |= 0x400; - } - } - } + Bss61CWork *temp_r31; + Bss12CStruct *temp_r30; + s16 temp_r29; + s16 temp_r28; + temp_r30 = &lbl_1_bss_12C[arg0]; + if (arg0 == -1) { + return; + } + for (temp_r29 = 0; temp_r29 < 1; temp_r29++) { + if (temp_r29 == 0) { + temp_r30 = &lbl_1_bss_12C[arg0]; + } + else { + temp_r30 = &lbl_1_bss_12C[arg0 ^ 1]; + } + for (temp_r28 = 0; temp_r28 < temp_r30->unk8; temp_r28++) { + temp_r31 = lbl_1_bss_61C[temp_r30->unk0[temp_r28]]->data; + temp_r31->unk80 = 0; + temp_r31->unk9C.x = temp_r31->unk30; + temp_r31->unk9C.y = 0; + temp_r31->unk0 &= ~0x600; + + if (temp_r29 == 0) { + temp_r31->unk0 |= 0x200; + } + else { + temp_r31->unk0 |= 0x400; + } + } + } } void fn_1_A904(s16 arg0) { - Bss61CWork *temp_r31; - Bss12CStruct *temp_r30; - s16 temp_r29; - s16 temp_r28; - temp_r30 = &lbl_1_bss_12C[arg0]; - if(arg0 == -1) { - return; - } - for(temp_r29=0; temp_r29<1; temp_r29++) { - if(temp_r29 == 0) { - temp_r30 = &lbl_1_bss_12C[arg0]; - } else { - temp_r30 = &lbl_1_bss_12C[arg0^1]; - } - for(temp_r28=0; temp_r28unk8; temp_r28++) { - temp_r31 = lbl_1_bss_61C[temp_r30->unk0[temp_r28]]->data; - temp_r31->unk80 = 1; - temp_r31->unk9C.x = temp_r31->unk30; - temp_r31->unk9C.y = 0; - temp_r31->unk0 &= ~0x600; - - if(temp_r29 == 0) { - temp_r31->unk0 |= 0x200; - } else { - temp_r31->unk0 |= 0x400; - } - temp_r31->unkAC = 1; - } - } + Bss61CWork *temp_r31; + Bss12CStruct *temp_r30; + s16 temp_r29; + s16 temp_r28; + temp_r30 = &lbl_1_bss_12C[arg0]; + if (arg0 == -1) { + return; + } + for (temp_r29 = 0; temp_r29 < 1; temp_r29++) { + if (temp_r29 == 0) { + temp_r30 = &lbl_1_bss_12C[arg0]; + } + else { + temp_r30 = &lbl_1_bss_12C[arg0 ^ 1]; + } + for (temp_r28 = 0; temp_r28 < temp_r30->unk8; temp_r28++) { + temp_r31 = lbl_1_bss_61C[temp_r30->unk0[temp_r28]]->data; + temp_r31->unk80 = 1; + temp_r31->unk9C.x = temp_r31->unk30; + temp_r31->unk9C.y = 0; + temp_r31->unk0 &= ~0x600; + + if (temp_r29 == 0) { + temp_r31->unk0 |= 0x200; + } + else { + temp_r31->unk0 |= 0x400; + } + temp_r31->unkAC = 1; + } + } } void fn_1_AC80(omObjData *object, Vec *arg1); @@ -1041,228 +1071,232 @@ void fn_1_B16C(omObjData *object); void fn_1_AA40(omObjData *object) { - Vec sp8; - Bss61CWork *temp_r30; - temp_r30 = object->data; - fn_1_AC80(object, &sp8); - fn_1_5B70(sp8.x, sp8.y, sp8.z, 20, NULL, -1); - Hu3DModelAttrSet(temp_r30->unk5C, 1); - Hu3DModelHookReset(object->model[0]); - temp_r30->unk5C = -1; - if(temp_r30->unk7E == 0) { - fn_1_B0E8(object, 5, 4); - fn_1_B130(object, 0, 8); - } - fn_1_B16C(object); + Vec sp8; + Bss61CWork *temp_r30; + temp_r30 = object->data; + fn_1_AC80(object, &sp8); + fn_1_5B70(sp8.x, sp8.y, sp8.z, 20, NULL, -1); + Hu3DModelAttrSet(temp_r30->unk5C, HU3D_ATTR_DISPOFF); + Hu3DModelHookReset(object->model[0]); + temp_r30->unk5C = -1; + if (temp_r30->unk7E == 0) { + fn_1_B0E8(object, 5, 4); + fn_1_B130(object, 0, 8); + } + fn_1_B16C(object); } Bss61CWork *fn_1_AAF0(omObjData *object) { - Bss12CStruct *temp_r31; - s16 temp_r30; - Bss61CWork *temp_r29 = object->data; - s32 sp8 = 0; - - temp_r31= &lbl_1_bss_12C[temp_r29->unkA]; - for(temp_r30=0; temp_r30unk8; temp_r30++) { - if(object->work[temp_r30] != temp_r31->unk0[temp_r30]) { - return lbl_1_bss_61C[temp_r31->unk0[temp_r30]]->data; - } - } - return NULL; + Bss12CStruct *temp_r31; + s16 temp_r30; + Bss61CWork *temp_r29 = object->data; + s32 sp8 = 0; + + temp_r31 = &lbl_1_bss_12C[temp_r29->unkA]; + for (temp_r30 = 0; temp_r30 < temp_r31->unk8; temp_r30++) { + if (object->work[temp_r30] != temp_r31->unk0[temp_r30]) { + return lbl_1_bss_61C[temp_r31->unk0[temp_r30]]->data; + } + } + return NULL; } u32 fn_1_ABA0(omObjData *object, u32 arg1) { - Bss61CWork *temp_r31 = object->data; - return temp_r31->unk0 & arg1; + Bss61CWork *temp_r31 = object->data; + return temp_r31->unk0 & arg1; } void fn_1_ABC0(omObjData *object, u32 arg1, u32 arg2) { - Bss61CWork *temp_r31 = object->data; - temp_r31->unk0 &= ~arg1; - temp_r31->unk0 |= arg2; + Bss61CWork *temp_r31 = object->data; + temp_r31->unk0 &= ~arg1; + temp_r31->unk0 |= arg2; } void fn_1_ABF0(s16 arg0, u32 arg1, u32 arg2) { - Bss12CStruct *temp_r31; - Bss61CWork *temp_r30; - s16 temp_r29; - temp_r31= &lbl_1_bss_12C[arg0]; - for(temp_r29=0; temp_r29unk8; temp_r29++) { - temp_r30 = lbl_1_bss_61C[temp_r31->unk0[temp_r29]]->data; - temp_r30->unk0 &= ~arg1; - temp_r30->unk0 |= arg2; - } + Bss12CStruct *temp_r31; + Bss61CWork *temp_r30; + s16 temp_r29; + temp_r31 = &lbl_1_bss_12C[arg0]; + for (temp_r29 = 0; temp_r29 < temp_r31->unk8; temp_r29++) { + temp_r30 = lbl_1_bss_61C[temp_r31->unk0[temp_r29]]->data; + temp_r30->unk0 &= ~arg1; + temp_r30->unk0 |= arg2; + } } void fn_1_AC80(omObjData *object, Vec *arg1) { - Bss61CWork *temp_r31; - float temp_f31; - temp_r31 = object->data; - temp_f31 = lbl_1_bss_62C[temp_r31->unk40].unk4; - arg1->x = temp_r31->unk24.x-(50.0*sind(temp_f31)); - arg1->y = temp_r31->unk24.y+100; - arg1->z = temp_r31->unk24.z-(50.0*cosd(temp_f31)); + Bss61CWork *temp_r31; + float temp_f31; + temp_r31 = object->data; + temp_f31 = lbl_1_bss_62C[temp_r31->unk40].unk4; + arg1->x = temp_r31->unk24.x - (50.0 * sind(temp_f31)); + arg1->y = temp_r31->unk24.y + 100; + arg1->z = temp_r31->unk24.z - (50.0 * cosd(temp_f31)); } float fn_1_AD88(s8 arg0) { - float temp_f31; - if(arg0 > 65) { - arg0 = 65; - } else if(arg0 < -65) { - arg0 = -65; - } - temp_f31 = arg0; - temp_f31 /= 65.0f; - return temp_f31; + float temp_f31; + if (arg0 > 65) { + arg0 = 65; + } + else if (arg0 < -65) { + arg0 = -65; + } + temp_f31 = arg0; + temp_f31 /= 65.0f; + return temp_f31; } float fn_1_AE04(s8 arg0, s8 arg1) { - float temp_f30; - temp_f30 = 0.01539*VECMagPoint(arg0, arg1, 0); - if(temp_f30 > 1.0f) { - temp_f30 = 1.0f; - } - return temp_f30; + float temp_f30; + temp_f30 = 0.01539 * VECMagPoint(arg0, arg1, 0); + if (temp_f30 > 1.0f) { + temp_f30 = 1.0f; + } + return temp_f30; } void fn_1_B0E8(omObjData *object, s16 arg1, u32 arg2) { - Bss61CWork *temp_r31 = object->data; - if(temp_r31->unk38 != arg1) { - temp_r31->unk0 &= ~0xF; - temp_r31->unk38 = arg1; - temp_r31->unk0 |= arg2; - } + Bss61CWork *temp_r31 = object->data; + if (temp_r31->unk38 != arg1) { + temp_r31->unk0 &= ~0xF; + temp_r31->unk38 = arg1; + temp_r31->unk0 |= arg2; + } } void fn_1_B130(omObjData *object, s16 arg1, u32 arg2) { - Bss61CWork *temp_r31 = object->data; - temp_r31->unk3A = arg1; - temp_r31->unk3C = arg2; + Bss61CWork *temp_r31 = object->data; + temp_r31->unk3A = arg1; + temp_r31->unk3C = arg2; } void fn_1_B150(omObjData *object, omObjFunc arg1) { - Bss61CWork *temp_r31 = object->data; - temp_r31->unk34 = arg1; + Bss61CWork *temp_r31 = object->data; + temp_r31->unk34 = arg1; } void fn_1_B16C(omObjData *object) { - fn_1_B150(object, NULL); + fn_1_B150(object, NULL); } void fn_1_B18C(omObjData *object) { - Bss61CWork *temp_r31; - u32 temp_r28; - ModelData *temp_r27; - omObjFunc temp_r25; - temp_r27 = &Hu3DData[object->model[0]]; - temp_r31 = object->data; - if(temp_r31->unk0 & 0x1) { - if(temp_r31->unk3A != -1 && temp_r27->unk_0C == -1) { - if(Hu3DMotionTimeGet(object->model[0]) >= Hu3DMotionMaxTimeGet(object->model[0])) { - fn_1_B0E8(object, temp_r31->unk3A, temp_r31->unk3C); - temp_r31->unk3A = -1; - if(temp_r31->unk34) { - temp_r25 = temp_r31->unk34; - temp_r25(object); - } - } - } else { - return; - } - } else { - Hu3DModelAttrReset(object->model[0], 0x40000007); - switch(temp_r31->unk0 & 0xC) { - case 0: - temp_r28 = HU3D_MOTATTR_PAUSE; - break; - - case 4: - temp_r28 = HU3D_MOTATTR_NONE; - break; - - case 8: - temp_r28 = HU3D_MOTATTR_LOOP; - break; - } - if(temp_r31->unk0 & 0x2) { - Hu3DMotionSet(object->model[0], object->motion[temp_r31->unk38]); - Hu3DModelAttrSet(object->model[0], temp_r28); - } else { - Hu3DMotionShiftSet(object->model[0], object->motion[temp_r31->unk38], 0, 8, temp_r28); - } - temp_r31->unk0 |= 0x1; - } + Bss61CWork *temp_r31; + u32 temp_r28; + ModelData *temp_r27; + omObjFunc temp_r25; + temp_r27 = &Hu3DData[object->model[0]]; + temp_r31 = object->data; + if (temp_r31->unk0 & 0x1) { + if (temp_r31->unk3A != -1 && temp_r27->unk_0C == -1) { + if (Hu3DMotionTimeGet(object->model[0]) >= Hu3DMotionMaxTimeGet(object->model[0])) { + fn_1_B0E8(object, temp_r31->unk3A, temp_r31->unk3C); + temp_r31->unk3A = -1; + if (temp_r31->unk34) { + temp_r25 = temp_r31->unk34; + temp_r25(object); + } + } + } + else { + return; + } + } + else { + Hu3DModelAttrReset(object->model[0], 0x40000007); + switch (temp_r31->unk0 & 0xC) { + case 0: + temp_r28 = HU3D_MOTATTR_PAUSE; + break; + + case 4: + temp_r28 = HU3D_MOTATTR_NONE; + break; + + case 8: + temp_r28 = HU3D_MOTATTR_LOOP; + break; + } + if (temp_r31->unk0 & 0x2) { + Hu3DMotionSet(object->model[0], object->motion[temp_r31->unk38]); + Hu3DModelAttrSet(object->model[0], temp_r28); + } + else { + Hu3DMotionShiftSet(object->model[0], object->motion[temp_r31->unk38], 0, 8, temp_r28); + } + temp_r31->unk0 |= 0x1; + } } void fn_1_B404(omObjData *object); void fn_1_B384(Process *objman) { - s32 *temp_r31; - s32 temp_r30; - omAddObjEx(objman, 100, 0, 0, -1, fn_1_B404); - temp_r31 = &lbl_1_bss_AC[0][0]; - for(temp_r30=0; temp_r30<16; temp_r30++, temp_r31 += 2) { - temp_r31[0] = -1; - temp_r31[1] = -1; - } + s32 *temp_r31; + s32 temp_r30; + omAddObjEx(objman, 100, 0, 0, -1, fn_1_B404); + temp_r31 = &lbl_1_bss_AC[0][0]; + for (temp_r30 = 0; temp_r30 < 16; temp_r30++, temp_r31 += 2) { + temp_r31[0] = -1; + temp_r31[1] = -1; + } } void fn_1_B404(omObjData *object) { - s32 *temp_r31; - s32 temp_r30; - temp_r31 = &lbl_1_bss_AC[0][0]; - for(temp_r30=0; temp_r30<16; temp_r30++, temp_r31 += 2) { - if(temp_r31[0] >= 0 && temp_r31[1] > 0) { - if(--temp_r31[1] <= 0) { - HuAudFXPlay(temp_r31[0]); - temp_r31[0] = -1; - temp_r31[1] = -1; - } - } - } + s32 *temp_r31; + s32 temp_r30; + temp_r31 = &lbl_1_bss_AC[0][0]; + for (temp_r30 = 0; temp_r30 < 16; temp_r30++, temp_r31 += 2) { + if (temp_r31[0] >= 0 && temp_r31[1] > 0) { + if (--temp_r31[1] <= 0) { + HuAudFXPlay(temp_r31[0]); + temp_r31[0] = -1; + temp_r31[1] = -1; + } + } + } } s32 fn_1_B494(s32 arg0, s32 arg1) { - s32 *temp_r31; - s32 temp_r30; - temp_r31 = &lbl_1_bss_AC[0][0]; - for(temp_r30=0; temp_r30<16; temp_r30++, temp_r31 += 2) { - if(temp_r31[0] == -1) { - break; - } - } - if(temp_r30 >= 16) { - return -1; - } - temp_r31[0] = arg0; - temp_r31[1] = arg1; - return temp_r30; + s32 *temp_r31; + s32 temp_r30; + temp_r31 = &lbl_1_bss_AC[0][0]; + for (temp_r30 = 0; temp_r30 < 16; temp_r30++, temp_r31 += 2) { + if (temp_r31[0] == -1) { + break; + } + } + if (temp_r30 >= 16) { + return -1; + } + temp_r31[0] = arg0; + temp_r31[1] = arg1; + return temp_r30; } s16 fn_1_B4F8(float arg0) { - return 10.0f*(arg0/360.0f); + return 10.0f * (arg0 / 360.0f); } s16 fn_1_B530(s16 arg0) { - if(arg0 >= 0 && arg0 <= 4) { - return 0; - } - return 1; + if (arg0 >= 0 && arg0 <= 4) { + return 0; + } + return 1; } diff --git a/src/REL/m434Dll/fish.c b/src/REL/m434Dll/fish.c index 12c5df8c..37883dc7 100644 --- a/src/REL/m434Dll/fish.c +++ b/src/REL/m434Dll/fish.c @@ -1,23 +1,25 @@ -#include "game/object.h" -#include "game/objsub.h" +#include "game/audio.h" #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "game/audio.h" +#include "game/object.h" +#include "game/objsub.h" #include "game/wipe.h" -#include "game/minigame_seq.h" -#include "game/gamework_data.h" + #include "REL/m434Dll.h" -#include "math.h" #include "ext_math.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" +#include "math.h" + typedef struct bss_7480_struct { - s32 unk0; - s32 unk4; - s32 unk8; - float unkC; - float unk10; - Vec unk14; + s32 unk0; + s32 unk4; + s32 unk8; + float unkC; + float unk10; + Vec unk14; } Bss7480Struct; omObjData *lbl_1_bss_7880; @@ -32,60 +34,57 @@ void fn_1_6A88(omObjData *object); void fn_1_6860(Process *objman) { - float temp_f31; - Vec spC; - s32 temp_r31; - s32 temp_r30; - s32 temp_r29; - omObjData *temp_r28; - for(temp_r31=0; temp_r31<32; temp_r31++) { - lbl_1_bss_7480[temp_r31].unk4 = lbl_1_bss_7480[temp_r31].unk0 = 0; - lbl_1_bss_7480[temp_r31].unkC = lbl_1_bss_7480[temp_r31].unk10 = 0; - lbl_1_bss_7480[temp_r31].unk8 = -1; - } - spC.y = 0; - spC.z = -650; - for(temp_r31=0; temp_r31<32; temp_r31++) { - temp_r30 = temp_r31*32; - spC.x = -650.0f; - for(temp_r29=0; temp_r29<32; temp_r29++, temp_r30++) { - lbl_1_bss_6480[temp_r30] = 0; - lbl_1_bss_6080[temp_r30] = 0; - lbl_1_bss_5880[temp_r30] = 0; - temp_f31 = VECMag(&spC); - if(temp_f31 < 522.0f) { - lbl_1_bss_6080[temp_r30] = 1; - } - spC.x += (1300.0f/32.0f); - } - spC.z += (1300.0f/32.0f); - } - temp_r28 = lbl_1_bss_7880 = omAddObjEx(objman, 30, 1, 0, -1, fn_1_6A88); - temp_r28->work[0] = 0; + float temp_f31; + Vec spC; + s32 temp_r31; + s32 temp_r30; + s32 temp_r29; + omObjData *temp_r28; + for (temp_r31 = 0; temp_r31 < 32; temp_r31++) { + lbl_1_bss_7480[temp_r31].unk4 = lbl_1_bss_7480[temp_r31].unk0 = 0; + lbl_1_bss_7480[temp_r31].unkC = lbl_1_bss_7480[temp_r31].unk10 = 0; + lbl_1_bss_7480[temp_r31].unk8 = -1; + } + spC.y = 0; + spC.z = -650; + for (temp_r31 = 0; temp_r31 < 32; temp_r31++) { + temp_r30 = temp_r31 * 32; + spC.x = -650.0f; + for (temp_r29 = 0; temp_r29 < 32; temp_r29++, temp_r30++) { + lbl_1_bss_6480[temp_r30] = 0; + lbl_1_bss_6080[temp_r30] = 0; + lbl_1_bss_5880[temp_r30] = 0; + temp_f31 = VECMag(&spC); + if (temp_f31 < 522.0f) { + lbl_1_bss_6080[temp_r30] = 1; + } + spC.x += (1300.0f / 32.0f); + } + spC.z += (1300.0f / 32.0f); + } + temp_r28 = lbl_1_bss_7880 = omAddObjEx(objman, 30, 1, 0, -1, fn_1_6A88); + temp_r28->work[0] = 0; } -void fn_1_6A84(void) -{ - -} +void fn_1_6A84(void) { } typedef struct work_6A88 { - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; - s16 unk8; - s16 unkA; - s16 unkC; - s16 unkE; - s32 unk10; - s32 unk14; - s32 unk18; - Vec unk1C; - Vec unk28; - Vec unk34; - Vec unk40; - float unk4C; + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; + s16 unk8; + s16 unkA; + s16 unkC; + s16 unkE; + s32 unk10; + s32 unk14; + s32 unk18; + Vec unk1C; + Vec unk28; + Vec unk34; + Vec unk40; + float unk4C; } Work6A88; void fn_1_6D7C(ModelData *model, Mtx mtx); @@ -95,73 +94,67 @@ s32 fn_1_8254(s32 arg0, Vec *arg1); void fn_1_6A88(omObjData *object) { - float temp_f31; - float temp_f30; - s16 sp8[2]; - Work6A88 *temp_r31; - s32 temp_r30; - s32 temp_r28; - Work6A88 *temp_r27; - temp_r27 = HuMemDirectMallocNum(HEAP_SYSTEM, 20*sizeof(Work6A88), MEMORY_DEFAULT_NUM); - object->data = temp_r27; - memset(temp_r27, 0, 20*sizeof(Work6A88)); - for(temp_r30=0; temp_r30<2; temp_r30++) { - sp8[temp_r30] = Hu3DModelCreateFile(lbl_1_data_2C0[temp_r30]); - } - temp_r31 = temp_r27; - for(temp_r30=0; temp_r30<20; temp_r30++, temp_r31++) { - temp_r28 = 0; - if(temp_r30 >= 15) { - temp_r28++; - } - temp_r31->unk0 = temp_r28+1; - temp_r31->unk2 = Hu3DModelLink(sp8[temp_r28]); - Hu3DModelCameraSet(temp_r31->unk2, 4); - Hu3DModelLayerSet(temp_r31->unk2, 4); - temp_f31 = frandmod(360); - temp_f30 = frandmod(464); - temp_r31->unk4C = temp_f31; - temp_r31->unk1C.x = temp_f30*sind(temp_f31); - temp_r31->unk1C.y = -50.0f; - temp_r31->unk1C.z = temp_f30*cosd(temp_f31); - temp_r31->unk34.z = frandmod(360); - temp_r31->unk40.y = 1.0f; - temp_r31->unk40.z = 0; - temp_r31->unk10 = 1; - temp_r31->unk14 = 0; - temp_r31->unkE = -1; - temp_r31->unkC = 0; - temp_r31->unk18 = fn_1_8254(-1, &temp_r31->unk1C); - temp_r31->unkA = 20; - } - for(temp_r30=0; temp_r30<2; temp_r30++) { - if(sp8[temp_r30] > 0) { - Hu3DModelKill(sp8[temp_r30]); - } - - - } - object->work[1] = 140; - object->model[0] = Hu3DHookFuncCreate(fn_1_6D7C); - Hu3DModelCameraSet(object->model[0], 8); - Hu3DModelLayerSet(object->model[0], 7); - object->func = fn_1_6DB8; + float temp_f31; + float temp_f30; + s16 sp8[2]; + Work6A88 *temp_r31; + s32 temp_r30; + s32 temp_r28; + Work6A88 *temp_r27; + temp_r27 = HuMemDirectMallocNum(HEAP_SYSTEM, 20 * sizeof(Work6A88), MEMORY_DEFAULT_NUM); + object->data = temp_r27; + memset(temp_r27, 0, 20 * sizeof(Work6A88)); + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + sp8[temp_r30] = Hu3DModelCreateFile(lbl_1_data_2C0[temp_r30]); + } + temp_r31 = temp_r27; + for (temp_r30 = 0; temp_r30 < 20; temp_r30++, temp_r31++) { + temp_r28 = 0; + if (temp_r30 >= 15) { + temp_r28++; + } + temp_r31->unk0 = temp_r28 + 1; + temp_r31->unk2 = Hu3DModelLink(sp8[temp_r28]); + Hu3DModelCameraSet(temp_r31->unk2, 4); + Hu3DModelLayerSet(temp_r31->unk2, 4); + temp_f31 = frandmod(360); + temp_f30 = frandmod(464); + temp_r31->unk4C = temp_f31; + temp_r31->unk1C.x = temp_f30 * sind(temp_f31); + temp_r31->unk1C.y = -50.0f; + temp_r31->unk1C.z = temp_f30 * cosd(temp_f31); + temp_r31->unk34.z = frandmod(360); + temp_r31->unk40.y = 1.0f; + temp_r31->unk40.z = 0; + temp_r31->unk10 = 1; + temp_r31->unk14 = 0; + temp_r31->unkE = -1; + temp_r31->unkC = 0; + temp_r31->unk18 = fn_1_8254(-1, &temp_r31->unk1C); + temp_r31->unkA = 20; + } + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + if (sp8[temp_r30] > 0) { + Hu3DModelKill(sp8[temp_r30]); + } + } + object->work[1] = 140; + object->model[0] = Hu3DHookFuncCreate(fn_1_6D7C); + Hu3DModelCameraSet(object->model[0], 8); + Hu3DModelLayerSet(object->model[0], 7); + object->func = fn_1_6DB8; } void fn_1_6DBC(omObjData *object); void fn_1_6D7C(ModelData *model, Mtx mtx) { - if(!omPauseChk()) { - fn_1_6DBC(lbl_1_bss_7880); - } + if (!omPauseChk()) { + fn_1_6DBC(lbl_1_bss_7880); + } } - -void fn_1_6DB8(omObjData *object) -{ - -} +void fn_1_6DB8(omObjData *object) { } void fn_1_7DF0(void); s32 fn_1_84D0(Work6A88 *arg0); @@ -169,648 +162,613 @@ void fn_1_85C4(Work6A88 *arg0, Vec *arg1); void fn_1_6DBC(omObjData *object) { - Vec sp8; - float temp_f31; - float temp_f30; - Work6A88 *temp_r31; - s32 temp_r30; - s32 temp_r29; - s32 temp_r27; - s32 temp_r26; - s32 temp_r25; - s32 temp_r24; - Work6A88 *temp_r23; - temp_r23 = object->data; - fn_1_7DF0(); - if(object->work[1]) { - object->work[1]--; - return; - } - temp_r26 = 0; - temp_r31 = temp_r23; - for(temp_r27=0; temp_r27<20; temp_r27++, temp_r31++) { - temp_r30 = 0; - temp_r24 = 0; - switch(temp_r31->unk4) { - case 0: - if(temp_r31->unkC == 0) { - temp_r24 = fn_1_84D0(temp_r31); - if(temp_r24) { - temp_r30 = 1; - temp_r31->unkC = 60; - } - } else { - temp_r31->unkC--; - } - if(temp_r31->unkC == 0 && temp_r31->unk40.y > temp_r31->unk40.z) { - temp_r30 = 1; - } else { - VECSubtract(&temp_r31->unk28, &temp_r31->unk1C, &sp8); - temp_f31 = VECMag(&sp8); - if(temp_f31 < 50.0f) { - temp_r30 = 1; - } - } - if(temp_r30) { - if(temp_r31->unkC == 0) { - temp_f31 = frandmod(1000); - temp_f30 = frandmod(1000); - if(temp_f31 > temp_f30) { - temp_f30 = temp_f31; - } - temp_f30 = 0.53f*temp_f30; - temp_f31 = temp_r31->unk4C+((0.06f*frandmod(1000))-30); - temp_r31->unk4C = temp_f31; - temp_r31->unk28.x = temp_f30*sind(temp_f31); - temp_r31->unk28.z = temp_f30*cosd(temp_f31); - } else { - fn_1_85C4(temp_r31, &temp_r31->unk28); - } - temp_r31->unk28.y = temp_r31->unk1C.y; - temp_r31->unk40.y = 0; - temp_r31->unk40.z = frandmod(200)+100.0f; - temp_r31->unk34.y = 200; - if(temp_r31->unkC) { - temp_r31->unk34.y *= 2.0f; - } - } - VECSubtract(&temp_r31->unk28, &temp_r31->unk1C, &sp8); - temp_r31->unk40.x = atan2d(sp8.x, sp8.z); - if(temp_r31->unkC != 0) { - temp_r31->unk34.z = fn_1_6690(temp_r31->unk34.z, temp_r31->unk40.x, 0.15f); - temp_r31->unk4C = atan2d(temp_r31->unk28.x, temp_r31->unk28.z); - } else { - temp_r31->unk34.z = fn_1_6690(temp_r31->unk34.z, temp_r31->unk40.x, 0.07f); - } - if(temp_r31->unkC != 0) { - temp_r31->unk34.y += (300.0f-temp_r31->unk34.y)*0.02f; - } else { - temp_r31->unk34.y += (75.0f-temp_r31->unk34.y)*0.02f; - } - temp_r31->unk34.x += (temp_r31->unk34.y-temp_r31->unk34.x)*0.2f; - temp_r31->unk1C.x += sind(temp_r31->unk34.z)*((1.0f/60.0f)*temp_r31->unk34.x); - temp_r31->unk1C.z += cosd(temp_r31->unk34.z)*((1.0f/60.0f)*temp_r31->unk34.x); - temp_r31->unk40.y += (1.0f/60.0f)*temp_r31->unk34.x; - temp_r31->unk18 = fn_1_8254(temp_r31->unk18, &temp_r31->unk1C); - Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C); - Hu3DModelRotSet(temp_r31->unk2, 0, temp_r31->unk34.z, 0); - break; - - case 1: - temp_r31->unk34.z += 3.0000002f; - Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C); - Hu3DModelRotSet(temp_r31->unk2, 0, temp_r31->unk34.z, 0); - if(fn_1_1D54() == 4) { - Hu3DModelAttrSet(temp_r31->unk2, 1); - } - break; - - case 2: - if(temp_r31->unk14) { - if(temp_r31->unk8 == 0) { - sp8.x = (0.1f*frandmod(1000)+500.0f)-50.0f; - sp8.y = temp_r31->unk1C.y; - sp8.z = (0.1f*frandmod(1000)+500.0f)-50.0f; - if(temp_r31->unk1C.x < 0.0f) { - sp8.x = -sp8.x; - } - VECSubtract(&sp8, &temp_r31->unk1C, &sp8); - temp_r31->unk40.x = temp_r31->unk34.z = atan2d(sp8.x, sp8.z); - temp_r31->unk28.x = (1.0f/60.0f)*sp8.x; - temp_r31->unk28.y = 6.666667f; - temp_r31->unk28.z = (1.0f/60.0f)*sp8.z; - temp_r31->unk8++; - HuAudFXPlay(1734); - } - temp_r29 = 0; - if(temp_r31->unk1C.y <= -15.000001f) { - temp_r29 = 1; - } - temp_r31->unk28.y += -0.27222225f; - VECAdd(&temp_r31->unk1C, &temp_r31->unk28, &temp_r31->unk1C); - if(!temp_r29 && temp_r31->unk1C.y <= -15.000001f) { - fn_1_43AC(&temp_r31->unk1C); - if(temp_r31->unkE >= 0) { - omVibrate(temp_r31->unkE, 12, 6, 6); - temp_r31->unkE = -1; - } - HuAudFXPlay(1741); - } - sp8 = temp_r31->unk28; - sp8.y = 0; - temp_f31 = VECMag(&sp8); - temp_f31 = atan2d(temp_r31->unk28.y, temp_f31); - Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C); - Hu3DModelRotSet(temp_r31->unk2, -temp_f31, temp_r31->unk34.z, 0); - if(temp_r31->unk1C.y <= -50.0) { - temp_r31->unk14 = 0; - temp_r31->unk40.z = 0; - temp_r31->unk40.y = 1; - temp_r31->unk4++; - } - } - - break; - - case 3: - if(temp_r31->unk40.y > temp_r31->unk40.z) { - temp_r30 = 1; - } - VECSubtract(&temp_r31->unk28, &temp_r31->unk1C, &sp8); - temp_f31 = VECMag(&sp8); - if(temp_f31 < 30.000002f) { - temp_r30 = 1; - } - if(temp_r30) { - temp_f31 = frandmod(360); - temp_f30 = (0.08f*frandmod(1000))+20; - temp_r31->unk28.x = temp_f30*sind(temp_f31); - temp_r31->unk28.z = temp_f30*cosd(temp_f31); - temp_r31->unk28.y = -50; - temp_r31->unk1C.y = temp_r31->unk28.y; - temp_r31->unk28.x += 480.00003f; - temp_r31->unk28.z += 480.00003f; - if(temp_r31->unk1C.x < 0.0f) { - temp_r31->unk28.x *= -1.0f; - } - temp_r31->unk40.y = 0; - temp_r31->unk40.z = frandmod(100)+100.0f; - temp_r31->unk34.y = 100; - if(frandmod(100) < 5) { - temp_r31->unk4++; - temp_r31->unk8 = 0; - HuAudFXPlay(1740); - } - } - VECSubtract(&temp_r31->unk28, &temp_r31->unk1C, &sp8); - temp_r31->unk40.x = atan2d(sp8.x, sp8.z); - temp_r31->unk34.z = fn_1_6690(temp_r31->unk34.z, temp_r31->unk40.x, 0.07f); - temp_r31->unk34.y += (50.0f-temp_r31->unk34.y)*0.02f; - temp_r31->unk34.x += (temp_r31->unk34.y-temp_r31->unk34.x)*0.2f; - temp_r31->unk1C.x += sind(temp_r31->unk34.z)*((1.0f/60.0f)*temp_r31->unk34.x); - temp_r31->unk1C.z += cosd(temp_r31->unk34.z)*((1.0f/60.0f)*temp_r31->unk34.x); - temp_r31->unk40.y += (1.0f/60.0f)*temp_r31->unk34.x; - Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C); - Hu3DModelRotSet(temp_r31->unk2, 0, temp_r31->unk34.z, 0); - - break; - - case 4: - if(temp_r31->unk8 == 0) { - sp8.x = (0.1f*frandmod(1000)+480.00003f)-50.0f; - sp8.y = temp_r31->unk1C.y; - sp8.z = (0.1f*frandmod(1000)+480.00003f)-50.0f; - if(temp_r31->unk1C.x < 0) { - sp8.x = -sp8.x; - } - VECSubtract(&sp8, &temp_r31->unk1C, &sp8); - temp_r31->unk40.x = temp_r31->unk34.z = atan2d(sp8.x, sp8.z); - temp_r31->unk28.x = (1.0f/60.0f)*sp8.x; - temp_r31->unk28.y = 6.666667f; - temp_r31->unk28.z = (1.0f/60.0f)*sp8.z; - temp_r31->unk8++; - } - temp_r29 = temp_r25 = 0; - if(temp_r31->unk1C.y <= -15.000001f) { - temp_r29 = 1; - } - temp_r31->unk28.y += -0.27222225f; - VECAdd(&temp_r31->unk1C, &temp_r31->unk28, &temp_r31->unk1C); - if(temp_r31->unk1C.y <= -15.000001f) { - temp_r25 = 1; - } - if(temp_r29 != temp_r25) { - fn_1_43AC(&temp_r31->unk1C); - if(temp_r31->unk28.y < 0.0f) { - HuAudFXPlay(1741); - } - } - sp8 = temp_r31->unk28; - sp8.y = 0; - temp_f31 = VECMag(&sp8); - temp_f31 = atan2d(temp_r31->unk28.y*0.3f, temp_f31); - Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C); - Hu3DModelRotSet(temp_r31->unk2, -temp_f31, temp_r31->unk34.z, 0); - if(temp_r31->unk1C.y <= -50.0) { - temp_r31->unk40.z = 0; - temp_r31->unk40.y = 1; - temp_r31->unk4--; - } - break; - } - if(temp_r31->unk4 < 2) { - temp_r26++; - } - } - if(temp_r26 == 0) { - fn_1_1D9C(); - } + Vec sp8; + float temp_f31; + float temp_f30; + Work6A88 *temp_r31; + s32 temp_r30; + s32 temp_r29; + s32 temp_r27; + s32 temp_r26; + s32 temp_r25; + s32 temp_r24; + Work6A88 *temp_r23; + temp_r23 = object->data; + fn_1_7DF0(); + if (object->work[1]) { + object->work[1]--; + return; + } + temp_r26 = 0; + temp_r31 = temp_r23; + for (temp_r27 = 0; temp_r27 < 20; temp_r27++, temp_r31++) { + temp_r30 = 0; + temp_r24 = 0; + switch (temp_r31->unk4) { + case 0: + if (temp_r31->unkC == 0) { + temp_r24 = fn_1_84D0(temp_r31); + if (temp_r24) { + temp_r30 = 1; + temp_r31->unkC = 60; + } + } + else { + temp_r31->unkC--; + } + if (temp_r31->unkC == 0 && temp_r31->unk40.y > temp_r31->unk40.z) { + temp_r30 = 1; + } + else { + VECSubtract(&temp_r31->unk28, &temp_r31->unk1C, &sp8); + temp_f31 = VECMag(&sp8); + if (temp_f31 < 50.0f) { + temp_r30 = 1; + } + } + if (temp_r30) { + if (temp_r31->unkC == 0) { + temp_f31 = frandmod(1000); + temp_f30 = frandmod(1000); + if (temp_f31 > temp_f30) { + temp_f30 = temp_f31; + } + temp_f30 = 0.53f * temp_f30; + temp_f31 = temp_r31->unk4C + ((0.06f * frandmod(1000)) - 30); + temp_r31->unk4C = temp_f31; + temp_r31->unk28.x = temp_f30 * sind(temp_f31); + temp_r31->unk28.z = temp_f30 * cosd(temp_f31); + } + else { + fn_1_85C4(temp_r31, &temp_r31->unk28); + } + temp_r31->unk28.y = temp_r31->unk1C.y; + temp_r31->unk40.y = 0; + temp_r31->unk40.z = frandmod(200) + 100.0f; + temp_r31->unk34.y = 200; + if (temp_r31->unkC) { + temp_r31->unk34.y *= 2.0f; + } + } + VECSubtract(&temp_r31->unk28, &temp_r31->unk1C, &sp8); + temp_r31->unk40.x = atan2d(sp8.x, sp8.z); + if (temp_r31->unkC != 0) { + temp_r31->unk34.z = fn_1_6690(temp_r31->unk34.z, temp_r31->unk40.x, 0.15f); + temp_r31->unk4C = atan2d(temp_r31->unk28.x, temp_r31->unk28.z); + } + else { + temp_r31->unk34.z = fn_1_6690(temp_r31->unk34.z, temp_r31->unk40.x, 0.07f); + } + if (temp_r31->unkC != 0) { + temp_r31->unk34.y += (300.0f - temp_r31->unk34.y) * 0.02f; + } + else { + temp_r31->unk34.y += (75.0f - temp_r31->unk34.y) * 0.02f; + } + temp_r31->unk34.x += (temp_r31->unk34.y - temp_r31->unk34.x) * 0.2f; + temp_r31->unk1C.x += sind(temp_r31->unk34.z) * ((1.0f / 60.0f) * temp_r31->unk34.x); + temp_r31->unk1C.z += cosd(temp_r31->unk34.z) * ((1.0f / 60.0f) * temp_r31->unk34.x); + temp_r31->unk40.y += (1.0f / 60.0f) * temp_r31->unk34.x; + temp_r31->unk18 = fn_1_8254(temp_r31->unk18, &temp_r31->unk1C); + Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C); + Hu3DModelRotSet(temp_r31->unk2, 0, temp_r31->unk34.z, 0); + break; + + case 1: + temp_r31->unk34.z += 3.0000002f; + Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C); + Hu3DModelRotSet(temp_r31->unk2, 0, temp_r31->unk34.z, 0); + if (fn_1_1D54() == 4) { + Hu3DModelAttrSet(temp_r31->unk2, HU3D_ATTR_DISPOFF); + } + break; + + case 2: + if (temp_r31->unk14) { + if (temp_r31->unk8 == 0) { + sp8.x = (0.1f * frandmod(1000) + 500.0f) - 50.0f; + sp8.y = temp_r31->unk1C.y; + sp8.z = (0.1f * frandmod(1000) + 500.0f) - 50.0f; + if (temp_r31->unk1C.x < 0.0f) { + sp8.x = -sp8.x; + } + VECSubtract(&sp8, &temp_r31->unk1C, &sp8); + temp_r31->unk40.x = temp_r31->unk34.z = atan2d(sp8.x, sp8.z); + temp_r31->unk28.x = (1.0f / 60.0f) * sp8.x; + temp_r31->unk28.y = 6.666667f; + temp_r31->unk28.z = (1.0f / 60.0f) * sp8.z; + temp_r31->unk8++; + HuAudFXPlay(1734); + } + temp_r29 = 0; + if (temp_r31->unk1C.y <= -15.000001f) { + temp_r29 = 1; + } + temp_r31->unk28.y += -0.27222225f; + VECAdd(&temp_r31->unk1C, &temp_r31->unk28, &temp_r31->unk1C); + if (!temp_r29 && temp_r31->unk1C.y <= -15.000001f) { + fn_1_43AC(&temp_r31->unk1C); + if (temp_r31->unkE >= 0) { + omVibrate(temp_r31->unkE, 12, 6, 6); + temp_r31->unkE = -1; + } + HuAudFXPlay(1741); + } + sp8 = temp_r31->unk28; + sp8.y = 0; + temp_f31 = VECMag(&sp8); + temp_f31 = atan2d(temp_r31->unk28.y, temp_f31); + Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C); + Hu3DModelRotSet(temp_r31->unk2, -temp_f31, temp_r31->unk34.z, 0); + if (temp_r31->unk1C.y <= -50.0) { + temp_r31->unk14 = 0; + temp_r31->unk40.z = 0; + temp_r31->unk40.y = 1; + temp_r31->unk4++; + } + } + + break; + + case 3: + if (temp_r31->unk40.y > temp_r31->unk40.z) { + temp_r30 = 1; + } + VECSubtract(&temp_r31->unk28, &temp_r31->unk1C, &sp8); + temp_f31 = VECMag(&sp8); + if (temp_f31 < 30.000002f) { + temp_r30 = 1; + } + if (temp_r30) { + temp_f31 = frandmod(360); + temp_f30 = (0.08f * frandmod(1000)) + 20; + temp_r31->unk28.x = temp_f30 * sind(temp_f31); + temp_r31->unk28.z = temp_f30 * cosd(temp_f31); + temp_r31->unk28.y = -50; + temp_r31->unk1C.y = temp_r31->unk28.y; + temp_r31->unk28.x += 480.00003f; + temp_r31->unk28.z += 480.00003f; + if (temp_r31->unk1C.x < 0.0f) { + temp_r31->unk28.x *= -1.0f; + } + temp_r31->unk40.y = 0; + temp_r31->unk40.z = frandmod(100) + 100.0f; + temp_r31->unk34.y = 100; + if (frandmod(100) < 5) { + temp_r31->unk4++; + temp_r31->unk8 = 0; + HuAudFXPlay(1740); + } + } + VECSubtract(&temp_r31->unk28, &temp_r31->unk1C, &sp8); + temp_r31->unk40.x = atan2d(sp8.x, sp8.z); + temp_r31->unk34.z = fn_1_6690(temp_r31->unk34.z, temp_r31->unk40.x, 0.07f); + temp_r31->unk34.y += (50.0f - temp_r31->unk34.y) * 0.02f; + temp_r31->unk34.x += (temp_r31->unk34.y - temp_r31->unk34.x) * 0.2f; + temp_r31->unk1C.x += sind(temp_r31->unk34.z) * ((1.0f / 60.0f) * temp_r31->unk34.x); + temp_r31->unk1C.z += cosd(temp_r31->unk34.z) * ((1.0f / 60.0f) * temp_r31->unk34.x); + temp_r31->unk40.y += (1.0f / 60.0f) * temp_r31->unk34.x; + Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C); + Hu3DModelRotSet(temp_r31->unk2, 0, temp_r31->unk34.z, 0); + + break; + + case 4: + if (temp_r31->unk8 == 0) { + sp8.x = (0.1f * frandmod(1000) + 480.00003f) - 50.0f; + sp8.y = temp_r31->unk1C.y; + sp8.z = (0.1f * frandmod(1000) + 480.00003f) - 50.0f; + if (temp_r31->unk1C.x < 0) { + sp8.x = -sp8.x; + } + VECSubtract(&sp8, &temp_r31->unk1C, &sp8); + temp_r31->unk40.x = temp_r31->unk34.z = atan2d(sp8.x, sp8.z); + temp_r31->unk28.x = (1.0f / 60.0f) * sp8.x; + temp_r31->unk28.y = 6.666667f; + temp_r31->unk28.z = (1.0f / 60.0f) * sp8.z; + temp_r31->unk8++; + } + temp_r29 = temp_r25 = 0; + if (temp_r31->unk1C.y <= -15.000001f) { + temp_r29 = 1; + } + temp_r31->unk28.y += -0.27222225f; + VECAdd(&temp_r31->unk1C, &temp_r31->unk28, &temp_r31->unk1C); + if (temp_r31->unk1C.y <= -15.000001f) { + temp_r25 = 1; + } + if (temp_r29 != temp_r25) { + fn_1_43AC(&temp_r31->unk1C); + if (temp_r31->unk28.y < 0.0f) { + HuAudFXPlay(1741); + } + } + sp8 = temp_r31->unk28; + sp8.y = 0; + temp_f31 = VECMag(&sp8); + temp_f31 = atan2d(temp_r31->unk28.y * 0.3f, temp_f31); + Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C); + Hu3DModelRotSet(temp_r31->unk2, -temp_f31, temp_r31->unk34.z, 0); + if (temp_r31->unk1C.y <= -50.0) { + temp_r31->unk40.z = 0; + temp_r31->unk40.y = 1; + temp_r31->unk4--; + } + break; + } + if (temp_r31->unk4 < 2) { + temp_r26++; + } + } + if (temp_r26 == 0) { + fn_1_1D9C(); + } } void fn_1_7DF0(void) { - Vec sp14; - Vec sp8; - float temp_f31; - float temp_f30; - - Bss7480Struct *temp_r31; - s32 temp_r30; - s32 temp_r29; - s32 temp_r28; - s32 temp_r27; - s32 temp_r26; - s32 temp_r25; - s32 temp_r24; - - temp_r31 = lbl_1_bss_7480; - temp_r31 = lbl_1_bss_7480; - for(temp_r30=0; temp_r30<32; temp_r30++, temp_r31++) { - if(temp_r31->unk0 == 0) { - continue; - } - temp_r31->unk0--; - if(temp_r31->unk4) { - temp_r31->unk4--; - temp_r31->unkC += (temp_r31->unk10-temp_r31->unkC)*0.2f; - } else { - if(temp_r31->unk0 < 100.0f) { - temp_r31->unkC *= 0.98f; - } - } - } - for(temp_r30=0; temp_r30<1024; temp_r30++) { - lbl_1_bss_6480[temp_r30] = 0; - } - temp_r31 = lbl_1_bss_7480; - for(temp_r30=0; temp_r30<32; temp_r30++, temp_r31++) { - if(temp_r31->unk0 == 0) { - continue; - } - temp_r28 = (16.0f/650.0f)*(650.0f+(temp_r31->unk14.x-temp_r31->unkC)); - temp_r25 = 1.0f+(temp_r28+((16.0f/650.0f)*(2.0f*temp_r31->unkC))); - temp_r29 = (16.0f/650.0f)*(650.0f+(temp_r31->unk14.z-temp_r31->unkC)); - temp_r24 = 1.0f+(temp_r29+((16.0f/650.0f)*(2.0f*temp_r31->unkC))); - if(temp_r28 < 0) { - temp_r28 = 0; - } - if(temp_r25 > 32) { - temp_r25 = 32; - } - if(temp_r29 < 0) { - temp_r29 = 0; - } - if(temp_r24 > 32) { - temp_r24 = 32; - } - temp_f30 = 1.0f/temp_r31->unkC; - sp14.y = 0; - sp14.z = ((1300.0f/32.0f)*temp_r29)-650.0f; - while(temp_r29unk14, &sp14, &sp8); - temp_f31 = 1.0f-(temp_f30*VECMag(&sp8)); - if(temp_f31 > 0.0f) { - lbl_1_bss_6480[temp_r26] += temp_f31; - } - sp14.x += (1300.0f/32.0f); - } - sp14.z += (1300.0f/32.0f); - temp_r29++; - } - } - + Vec sp14; + Vec sp8; + float temp_f31; + float temp_f30; + + Bss7480Struct *temp_r31; + s32 temp_r30; + s32 temp_r29; + s32 temp_r28; + s32 temp_r27; + s32 temp_r26; + s32 temp_r25; + s32 temp_r24; + + temp_r31 = lbl_1_bss_7480; + temp_r31 = lbl_1_bss_7480; + for (temp_r30 = 0; temp_r30 < 32; temp_r30++, temp_r31++) { + if (temp_r31->unk0 == 0) { + continue; + } + temp_r31->unk0--; + if (temp_r31->unk4) { + temp_r31->unk4--; + temp_r31->unkC += (temp_r31->unk10 - temp_r31->unkC) * 0.2f; + } + else { + if (temp_r31->unk0 < 100.0f) { + temp_r31->unkC *= 0.98f; + } + } + } + for (temp_r30 = 0; temp_r30 < 1024; temp_r30++) { + lbl_1_bss_6480[temp_r30] = 0; + } + temp_r31 = lbl_1_bss_7480; + for (temp_r30 = 0; temp_r30 < 32; temp_r30++, temp_r31++) { + if (temp_r31->unk0 == 0) { + continue; + } + temp_r28 = (16.0f / 650.0f) * (650.0f + (temp_r31->unk14.x - temp_r31->unkC)); + temp_r25 = 1.0f + (temp_r28 + ((16.0f / 650.0f) * (2.0f * temp_r31->unkC))); + temp_r29 = (16.0f / 650.0f) * (650.0f + (temp_r31->unk14.z - temp_r31->unkC)); + temp_r24 = 1.0f + (temp_r29 + ((16.0f / 650.0f) * (2.0f * temp_r31->unkC))); + if (temp_r28 < 0) { + temp_r28 = 0; + } + if (temp_r25 > 32) { + temp_r25 = 32; + } + if (temp_r29 < 0) { + temp_r29 = 0; + } + if (temp_r24 > 32) { + temp_r24 = 32; + } + temp_f30 = 1.0f / temp_r31->unkC; + sp14.y = 0; + sp14.z = ((1300.0f / 32.0f) * temp_r29) - 650.0f; + while (temp_r29 < temp_r24) { + sp14.x = ((1300.0f / 32.0f) * temp_r28) - 650.0f; + temp_r26 = temp_r28 + (32 * temp_r29); + for (temp_r27 = temp_r28; temp_r27 < temp_r25; temp_r27++, temp_r26++) { + VECSubtract(&temp_r31->unk14, &sp14, &sp8); + temp_f31 = 1.0f - (temp_f30 * VECMag(&sp8)); + if (temp_f31 > 0.0f) { + lbl_1_bss_6480[temp_r26] += temp_f31; + } + sp14.x += (1300.0f / 32.0f); + } + sp14.z += (1300.0f / 32.0f); + temp_r29++; + } + } } void fn_1_83C8(s32 arg0); s32 fn_1_8254(s32 arg0, Vec *arg1) { - s32 temp_r31; - s32 temp_r30; - s32 temp_r29; - s32 temp_r28; - s32 temp_r27; - s32 sp8[9][2] = { - -1,-1, - 0,-1, - 1,-1, - -1,0, - 0,0, - 1,0, - -1,1, - 0,1, - 1,1 - }; - fn_1_83C8(arg0); - arg0 = -1; - temp_r29 = (16.0f/650.0f)*(650.0f+arg1->x); - temp_r30 = (16.0f/650.0f)*(650.0f+arg1->z); - if(temp_r29 >= 0 && temp_r29 < 32 && temp_r30 >= 0 && temp_r30 < 32) { - arg0 = temp_r29+(32*temp_r30); - for(temp_r31=0; temp_r31<9; temp_r31++) { - temp_r28 = temp_r29+sp8[temp_r31][0]; - temp_r27 = temp_r30+sp8[temp_r31][1]; - if(temp_r28 >= 0 && temp_r28 < 32 && temp_r27 >= 0 && temp_r27 < 32) { - lbl_1_bss_5880[temp_r28+(32*temp_r27)]++; - } - } - } - return arg0; + s32 temp_r31; + s32 temp_r30; + s32 temp_r29; + s32 temp_r28; + s32 temp_r27; + s32 sp8[9][2] = { -1, -1, 0, -1, 1, -1, -1, 0, 0, 0, 1, 0, -1, 1, 0, 1, 1, 1 }; + fn_1_83C8(arg0); + arg0 = -1; + temp_r29 = (16.0f / 650.0f) * (650.0f + arg1->x); + temp_r30 = (16.0f / 650.0f) * (650.0f + arg1->z); + if (temp_r29 >= 0 && temp_r29 < 32 && temp_r30 >= 0 && temp_r30 < 32) { + arg0 = temp_r29 + (32 * temp_r30); + for (temp_r31 = 0; temp_r31 < 9; temp_r31++) { + temp_r28 = temp_r29 + sp8[temp_r31][0]; + temp_r27 = temp_r30 + sp8[temp_r31][1]; + if (temp_r28 >= 0 && temp_r28 < 32 && temp_r27 >= 0 && temp_r27 < 32) { + lbl_1_bss_5880[temp_r28 + (32 * temp_r27)]++; + } + } + } + return arg0; } void fn_1_83C8(s32 arg0) { - s32 temp_r31; - s32 temp_r30; - s32 temp_r29; - s32 temp_r28; - s32 temp_r27; - s32 sp8[9][2] = { - -1,-1, - 0,-1, - 1,-1, - -1,0, - 0,0, - 1,0, - -1,1, - 0,1, - 1,1 - }; - if(arg0 < 0 || arg0 >= 1024) { - return; - } - temp_r28 = arg0%32; - temp_r27 = (arg0-temp_r28)/32; - for(temp_r31=0; temp_r31<9; temp_r31++) { - temp_r30 = temp_r28+sp8[temp_r31][0]; - temp_r29 = temp_r27+sp8[temp_r31][1]; - if(temp_r30 >= 0 && temp_r30 < 32 && temp_r29 >= 0 && temp_r29 < 32) { - lbl_1_bss_5880[temp_r30+(32*temp_r29)]--; - } - } + s32 temp_r31; + s32 temp_r30; + s32 temp_r29; + s32 temp_r28; + s32 temp_r27; + s32 sp8[9][2] = { -1, -1, 0, -1, 1, -1, -1, 0, 0, 0, 1, 0, -1, 1, 0, 1, 1, 1 }; + if (arg0 < 0 || arg0 >= 1024) { + return; + } + temp_r28 = arg0 % 32; + temp_r27 = (arg0 - temp_r28) / 32; + for (temp_r31 = 0; temp_r31 < 9; temp_r31++) { + temp_r30 = temp_r28 + sp8[temp_r31][0]; + temp_r29 = temp_r27 + sp8[temp_r31][1]; + if (temp_r30 >= 0 && temp_r30 < 32 && temp_r29 >= 0 && temp_r29 < 32) { + lbl_1_bss_5880[temp_r30 + (32 * temp_r29)]--; + } + } } s32 fn_1_84D0(Work6A88 *arg0) { - float temp_f31; - Vec spC; - Bss7480Struct *temp_r31; - s32 temp_r30; - s32 temp_r29; - s32 temp_r28; - temp_r31 = lbl_1_bss_7480; - temp_r28 = 0; - temp_r31 = lbl_1_bss_7480; - for(temp_r29=0; temp_r29<32; temp_r29++, temp_r31++) { - if(temp_r31->unk0 == 0) { - continue; - } - VECSubtract(&temp_r31->unk14, &arg0->unk1C, &spC); - temp_f31 = 1.0f-(VECMag(&spC)/temp_r31->unkC); - if(temp_f31 < 0.3f) { - continue; - } - temp_r30 = 1; - if(temp_r31->unk4) { - temp_r30++; - } - if(temp_r28 < temp_r30) { - temp_r28 = temp_r30; - } - } - return temp_r28; + float temp_f31; + Vec spC; + Bss7480Struct *temp_r31; + s32 temp_r30; + s32 temp_r29; + s32 temp_r28; + temp_r31 = lbl_1_bss_7480; + temp_r28 = 0; + temp_r31 = lbl_1_bss_7480; + for (temp_r29 = 0; temp_r29 < 32; temp_r29++, temp_r31++) { + if (temp_r31->unk0 == 0) { + continue; + } + VECSubtract(&temp_r31->unk14, &arg0->unk1C, &spC); + temp_f31 = 1.0f - (VECMag(&spC) / temp_r31->unkC); + if (temp_f31 < 0.3f) { + continue; + } + temp_r30 = 1; + if (temp_r31->unk4) { + temp_r30++; + } + if (temp_r28 < temp_r30) { + temp_r28 = temp_r30; + } + } + return temp_r28; } void fn_1_85C4(Work6A88 *arg0, Vec *arg1) { - Vec sp24; - Vec sp18; - Vec spC; - float temp_f31; - float temp_f30; - s32 temp_r31; - s32 temp_r30; - s32 temp_r29; - sp18.x = sp18.y = sp18.z = 0; - temp_f30 = 5000; - sp24.y = 0; - sp24.z = -650; - for(temp_r30=0; temp_r30<32; temp_r30++) { - temp_r31 = 32*temp_r30; - sp24.x = -650; - for(temp_r29=0; temp_r29<32; temp_r29++, temp_r31++) { - if(lbl_1_bss_6480[temp_r31] < 0.15f && lbl_1_bss_6080[temp_r31]) { - VECSubtract(&arg0->unk1C, &sp24, &spC); - temp_f31 = VECMag(&spC); - if(temp_f31 > 81.25f) { - temp_f31 += 162.5f*lbl_1_bss_5880[temp_r31]; - if(temp_f31 < temp_f30) { - temp_f30 = temp_f31; - sp18 = sp24; - } - } - } - sp24.x += (1300.0f/32.0f); - } - sp24.z += (1300.0f/32.0f); - } - sp18.x += ((1300.0f/32000.0f)*frandmod(1000))-(1300.0f/64.0f); - sp18.z += ((1300.0f/32000.0f)*frandmod(1000))-(1300.0f/64.0f); - *arg1 = sp18; + Vec sp24; + Vec sp18; + Vec spC; + float temp_f31; + float temp_f30; + s32 temp_r31; + s32 temp_r30; + s32 temp_r29; + sp18.x = sp18.y = sp18.z = 0; + temp_f30 = 5000; + sp24.y = 0; + sp24.z = -650; + for (temp_r30 = 0; temp_r30 < 32; temp_r30++) { + temp_r31 = 32 * temp_r30; + sp24.x = -650; + for (temp_r29 = 0; temp_r29 < 32; temp_r29++, temp_r31++) { + if (lbl_1_bss_6480[temp_r31] < 0.15f && lbl_1_bss_6080[temp_r31]) { + VECSubtract(&arg0->unk1C, &sp24, &spC); + temp_f31 = VECMag(&spC); + if (temp_f31 > 81.25f) { + temp_f31 += 162.5f * lbl_1_bss_5880[temp_r31]; + if (temp_f31 < temp_f30) { + temp_f30 = temp_f31; + sp18 = sp24; + } + } + } + sp24.x += (1300.0f / 32.0f); + } + sp24.z += (1300.0f / 32.0f); + } + sp18.x += ((1300.0f / 32000.0f) * frandmod(1000)) - (1300.0f / 64.0f); + sp18.z += ((1300.0f / 32000.0f) * frandmod(1000)) - (1300.0f / 64.0f); + *arg1 = sp18; } s32 fn_1_8884(Vec *arg0, float arg1, float arg2, float arg3, float arg4, float arg5, s32 arg6, s32 arg7) { - float temp_f31; - float temp_f30; - Vec sp24; - Work6A88 *temp_r31; - s32 temp_r30; - s32 temp_r28; - Work6A88 *temp_r23; - temp_r23 = lbl_1_bss_7880->data; - temp_r30 = -1; - temp_r31 = temp_r23; - for(temp_r28=0; temp_r28<20; temp_r28++, temp_r31++) { - if(temp_r31->unk10 == 0) { - continue; - } - VECSubtract(&temp_r31->unk1C, arg0, &sp24); - temp_f30 = VECMag(&sp24); - if(temp_f30 < arg1 || temp_f30 > arg2) { - continue; - } - temp_f31 = atan2d(sp24.x, sp24.z); - temp_f31 = fn_1_67AC(arg3, temp_f31); - if(temp_f31 < arg4 || temp_f31 > arg5) { - continue; - } - temp_r30++; - if(arg6) { - temp_r31->unk14 = 1; - temp_r31->unk10 = 0; - temp_r31->unk4 = 1; - fn_1_83C8(temp_r31->unk18); - temp_r31->unk18 = -1; - temp_r31->unkE = arg7; - HuAudFXPlay(1733); - temp_r30 = temp_r28; - break; - } - - } - if(!arg6) { - temp_r30++; - } - return temp_r30; + float temp_f31; + float temp_f30; + Vec sp24; + Work6A88 *temp_r31; + s32 temp_r30; + s32 temp_r28; + Work6A88 *temp_r23; + temp_r23 = lbl_1_bss_7880->data; + temp_r30 = -1; + temp_r31 = temp_r23; + for (temp_r28 = 0; temp_r28 < 20; temp_r28++, temp_r31++) { + if (temp_r31->unk10 == 0) { + continue; + } + VECSubtract(&temp_r31->unk1C, arg0, &sp24); + temp_f30 = VECMag(&sp24); + if (temp_f30 < arg1 || temp_f30 > arg2) { + continue; + } + temp_f31 = atan2d(sp24.x, sp24.z); + temp_f31 = fn_1_67AC(arg3, temp_f31); + if (temp_f31 < arg4 || temp_f31 > arg5) { + continue; + } + temp_r30++; + if (arg6) { + temp_r31->unk14 = 1; + temp_r31->unk10 = 0; + temp_r31->unk4 = 1; + fn_1_83C8(temp_r31->unk18); + temp_r31->unk18 = -1; + temp_r31->unkE = arg7; + HuAudFXPlay(1733); + temp_r30 = temp_r28; + break; + } + } + if (!arg6) { + temp_r30++; + } + return temp_r30; } void fn_1_8AEC(s16 arg0, Vec *arg1) { - Work6A88 *temp_r31; - Work6A88 *temp_r30 = lbl_1_bss_7880->data; - if(arg0 < 0 || arg0 >= 20) { - return; - } - temp_r31 = &temp_r30[arg0]; - temp_r31->unk1C = *arg1; + Work6A88 *temp_r31; + Work6A88 *temp_r30 = lbl_1_bss_7880->data; + if (arg0 < 0 || arg0 >= 20) { + return; + } + temp_r31 = &temp_r30[arg0]; + temp_r31->unk1C = *arg1; } void fn_1_8B58(s16 arg0) { - Work6A88 *temp_r31; - s32 temp_r30; - Work6A88 *temp_r28 = lbl_1_bss_7880->data; - if(arg0 < 0 || arg0 >= 20) { - return; - } - temp_r31 = &temp_r28[arg0]; - temp_r31->unk4 = 2; - temp_r31->unk8 = 0; - if(temp_r31->unk1C.x >= 0.0f) { - temp_r30 = 1; - } else { - temp_r30 = 0; - } - fn_1_1C44(temp_r30, temp_r31->unk0); + Work6A88 *temp_r31; + s32 temp_r30; + Work6A88 *temp_r28 = lbl_1_bss_7880->data; + if (arg0 < 0 || arg0 >= 20) { + return; + } + temp_r31 = &temp_r28[arg0]; + temp_r31->unk4 = 2; + temp_r31->unk8 = 0; + if (temp_r31->unk1C.x >= 0.0f) { + temp_r30 = 1; + } + else { + temp_r30 = 0; + } + fn_1_1C44(temp_r30, temp_r31->unk0); } void fn_1_8C14(s32 arg0, Vec *arg1, float arg2) { - Bss7480Struct *temp_r31; - s32 temp_r30; - temp_r31 = lbl_1_bss_7480; - for(temp_r30=0; temp_r30<32; temp_r30++, temp_r31++) { - if(temp_r31->unk0 && temp_r31->unk8 == arg0) { - temp_r31->unk0 *= 0.8f; - } - } - temp_r31 = lbl_1_bss_7480; - for(temp_r30=0; temp_r30<32; temp_r30++, temp_r31++) { - if(!temp_r31->unk0) { - temp_r31->unk4 = 30; - temp_r31->unk0 = (60.0f*(3.0f*arg2))+150.0f; - temp_r31->unk8 = arg0; - temp_r31->unk14 = *arg1; - temp_r31->unkC = 0; - temp_r31->unk10 = 150.0f+(250.0f*arg2); - break; - } - } + Bss7480Struct *temp_r31; + s32 temp_r30; + temp_r31 = lbl_1_bss_7480; + for (temp_r30 = 0; temp_r30 < 32; temp_r30++, temp_r31++) { + if (temp_r31->unk0 && temp_r31->unk8 == arg0) { + temp_r31->unk0 *= 0.8f; + } + } + temp_r31 = lbl_1_bss_7480; + for (temp_r30 = 0; temp_r30 < 32; temp_r30++, temp_r31++) { + if (!temp_r31->unk0) { + temp_r31->unk4 = 30; + temp_r31->unk0 = (60.0f * (3.0f * arg2)) + 150.0f; + temp_r31->unk8 = arg0; + temp_r31->unk14 = *arg1; + temp_r31->unkC = 0; + temp_r31->unk10 = 150.0f + (250.0f * arg2); + break; + } + } } s32 fn_1_8D78(Vec *arg0) { - s32 temp_r31; - s32 temp_r30; - s32 temp_r29 = -1; - temp_r31 = (16.0f/650.0f)*(670.3125f+arg0->x); - temp_r30 = (16.0f/650.0f)*(670.3125f+arg0->z); - if(temp_r31 >= 0 && temp_r31 < 32 && temp_r30 >= 0 && temp_r30 < 32) { - temp_r29 = temp_r31+(32*temp_r30); - } - return temp_r29; + s32 temp_r31; + s32 temp_r30; + s32 temp_r29 = -1; + temp_r31 = (16.0f / 650.0f) * (670.3125f + arg0->x); + temp_r30 = (16.0f / 650.0f) * (670.3125f + arg0->z); + if (temp_r31 >= 0 && temp_r31 < 32 && temp_r30 >= 0 && temp_r30 < 32) { + temp_r29 = temp_r31 + (32 * temp_r30); + } + return temp_r29; } s32 fn_1_8E2C(s32 arg0, Vec *arg1) { - s32 temp_r31; - s32 temp_r30; - if(arg0 < 0 || arg0 >= 1024) { - arg1->x = arg1->y = arg1->z = 0; - return 0; - } - temp_r31 = arg0%32; - temp_r30 = (arg0-temp_r31)/32; - arg1->x = ((1300.0f/32.0f)*temp_r31)-670.3125f; - arg1->y = 0; - arg1->z = ((1300.0f/32.0f)*temp_r30)-670.3125f; - return 1; + s32 temp_r31; + s32 temp_r30; + if (arg0 < 0 || arg0 >= 1024) { + arg1->x = arg1->y = arg1->z = 0; + return 0; + } + temp_r31 = arg0 % 32; + temp_r30 = (arg0 - temp_r31) / 32; + arg1->x = ((1300.0f / 32.0f) * temp_r31) - 670.3125f; + arg1->y = 0; + arg1->z = ((1300.0f / 32.0f) * temp_r30) - 670.3125f; + return 1; } s32 fn_1_8F3C(s32 arg0) { - s32 sp8[9][2] = { - -1,-1, - 0,-1, - 1,-1, - -1,0, - 0,0, - 1,0, - -1,1, - 0,1, - 1,1 - }; - if(arg0 < 0 || arg0 >= 1024) { - return 0; - } - return lbl_1_bss_5880[arg0]; + s32 sp8[9][2] = { -1, -1, 0, -1, 1, -1, -1, 0, 0, 0, 1, 0, -1, 1, 0, 1, 1, 1 }; + if (arg0 < 0 || arg0 >= 1024) { + return 0; + } + return lbl_1_bss_5880[arg0]; } s32 fn_1_8FA0(Vec *arg0) { - s32 sp24[9][2] = { - -1,-1, - 0,-1, - 1,-1, - -1,0, - 0,0, - 1,0, - -1,1, - 0,1, - 1,1 - }; - Vec sp18; - Vec spC; - s32 temp_r31; - s32 temp_r30; - s32 temp_r29; - s32 temp_r28; - s32 temp_r27 = -1; - float temp_f31; - float temp_f30 = 5000; - sp18.y = 0; - sp18.z = -650; - for(temp_r31=0; temp_r31<32; temp_r31++) { - temp_r30 = temp_r31*32; - sp18.x = -650; - for(temp_r29=0; temp_r29<32; temp_r29++, temp_r30++) { - temp_r28 = lbl_1_bss_5880[temp_r30]; - if(temp_r28 > 0) { - VECSubtract(arg0, &sp18, &spC); - temp_f31 = VECMag(&spC)+(0.2f*frandmod(1000)); - temp_f31 -= 50.0f*temp_r28; - if(temp_f31 < temp_f30) { - temp_f30 = temp_f31; - temp_r27 = temp_r30; - } - } - sp18.x += (1300.0f/32.0f); - } - sp18.z += (1300.0f/32.0f); - } - return temp_r27; -} \ No newline at end of file + s32 sp24[9][2] = { -1, -1, 0, -1, 1, -1, -1, 0, 0, 0, 1, 0, -1, 1, 0, 1, 1, 1 }; + Vec sp18; + Vec spC; + s32 temp_r31; + s32 temp_r30; + s32 temp_r29; + s32 temp_r28; + s32 temp_r27 = -1; + float temp_f31; + float temp_f30 = 5000; + sp18.y = 0; + sp18.z = -650; + for (temp_r31 = 0; temp_r31 < 32; temp_r31++) { + temp_r30 = temp_r31 * 32; + sp18.x = -650; + for (temp_r29 = 0; temp_r29 < 32; temp_r29++, temp_r30++) { + temp_r28 = lbl_1_bss_5880[temp_r30]; + if (temp_r28 > 0) { + VECSubtract(arg0, &sp18, &spC); + temp_f31 = VECMag(&spC) + (0.2f * frandmod(1000)); + temp_f31 -= 50.0f * temp_r28; + if (temp_f31 < temp_f30) { + temp_f30 = temp_f31; + temp_r27 = temp_r30; + } + } + sp18.x += (1300.0f / 32.0f); + } + sp18.z += (1300.0f / 32.0f); + } + return temp_r27; +} diff --git a/src/REL/m434Dll/main.c b/src/REL/m434Dll/main.c index bb2349c4..e0fcf2ac 100644 --- a/src/REL/m434Dll/main.c +++ b/src/REL/m434Dll/main.c @@ -3,8 +3,10 @@ #include "game/hsfmotion.h" #include "game/object.h" #include "game/objsub.h" +#include "game/sprite.h" #include "game/wipe.h" + #include "REL/m434Dll.h" #include "ext_math.h" #include "game/gamework_data.h" @@ -290,7 +292,7 @@ void fn_1_E44(omObjData *object) switch (lbl_1_bss_8[0]) { case 0: if (--lbl_1_bss_8[1] == 0) { - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); lbl_1_bss_8[0] = 1; } for (temp_r30 = 0; temp_r30 < 2u; temp_r30++) { @@ -379,7 +381,8 @@ void fn_1_1150(omObjData *object) break; case 1: - temp_r31->unk6[temp_r30] = espEntry((temp_r29 == 0) ? DATA_MAKE_NUM(DATADIR_MGCONST, 0x1B) : DATA_MAKE_NUM(DATADIR_MGCONST, 0x1C), 1, 0); + temp_r31->unk6[temp_r30] + = espEntry((temp_r29 == 0) ? DATA_MAKE_NUM(DATADIR_MGCONST, 0x1B) : DATA_MAKE_NUM(DATADIR_MGCONST, 0x1C), 1, 0); espPriSet(temp_r31->unk6[temp_r30], 256); break; @@ -401,7 +404,7 @@ void fn_1_1150(omObjData *object) } espDispOff(temp_r31->unk6[temp_r30]); espDrawNoSet(temp_r31->unk6[temp_r30], 0); - espAttrSet(temp_r31->unk6[temp_r30], 1); + espAttrSet(temp_r31->unk6[temp_r30], HUSPR_ATTR_NOANIM); espPosSet(temp_r31->unk6[temp_r30], lbl_1_data_F0[temp_r29][0] + lbl_1_data_C0[temp_r30][0], lbl_1_data_F0[temp_r29][1] + lbl_1_data_C0[temp_r30][1]); } diff --git a/src/REL/m434Dll/map.c b/src/REL/m434Dll/map.c index b34cb98b..e690b936 100644 --- a/src/REL/m434Dll/map.c +++ b/src/REL/m434Dll/map.c @@ -177,7 +177,7 @@ void fn_1_1E64(omObjData *object) temp_r26 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M434, 0x0B)); object->model[10] = Hu3DParticleCreate(temp_r26, 100); Hu3DParticleHookSet(object->model[10], fn_1_443C); - Hu3DModelAttrSet(object->model[10], 1); + Hu3DModelAttrSet(object->model[10], HU3D_ATTR_DISPOFF); Hu3DModelLayerSet(object->model[10], 4); Hu3DModelCameraSet(object->model[10], 8); object->func = fn_1_26A4; @@ -602,5 +602,5 @@ void fn_1_443C(ModelData *model, ParticleData *particle, Mtx matrix) void fn_1_47EC(Vec *arg0) { Hu3DModelPosSet(lbl_1_bss_5868->model[10], arg0->x, arg0->y, arg0->z); - Hu3DModelAttrReset(lbl_1_bss_5868->model[10], 1); + Hu3DModelAttrReset(lbl_1_bss_5868->model[10], HU3D_ATTR_DISPOFF); } diff --git a/src/REL/m434Dll/player.c b/src/REL/m434Dll/player.c index 71814f12..103d7352 100644 --- a/src/REL/m434Dll/player.c +++ b/src/REL/m434Dll/player.c @@ -1,143 +1,128 @@ -#include "game/object.h" -#include "game/objsub.h" +#include "game/audio.h" +#include "game/chrman.h" #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "game/audio.h" -#include "game/wipe.h" -#include "game/chrman.h" +#include "game/object.h" +#include "game/objsub.h" #include "game/pad.h" +#include "game/wipe.h" + -#include "game/minigame_seq.h" -#include "game/gamework_data.h" #include "REL/m434Dll.h" -#include "math.h" #include "ext_math.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" +#include "math.h" + typedef struct data_224_struct { - u16 unk0; - u16 unk2; - float unk4; - float unk8; - u32 unkC; + u16 unk0; + u16 unk2; + float unk4; + float unk8; + u32 unkC; } Data224Struct; omObjData *lbl_1_bss_5870[4]; char *lbl_1_data_190[8] = { - "dmy-itemhook-r", - "dmy-itemhook-r", - "dmy-itemhook-r", - "dmy-itemhook-r", - "dmy-itemhook-r", - "dmy-itemhook-r", - "dmy-itemhook-r", - "dmy-itemhook-r", + "dmy-itemhook-r", + "dmy-itemhook-r", + "dmy-itemhook-r", + "dmy-itemhook-r", + "dmy-itemhook-r", + "dmy-itemhook-r", + "dmy-itemhook-r", + "dmy-itemhook-r", }; char *lbl_1_data_1BC[8] = { - "itemhook-r", - "itemhook-r", - "itemhook-r", - "itemhook-r", - "itemhook-r", - "itemhook-r", - "itemhook-r", - "itemhook-r", + "itemhook-r", + "itemhook-r", + "itemhook-r", + "itemhook-r", + "itemhook-r", + "itemhook-r", + "itemhook-r", + "itemhook-r", }; -s32 lbl_1_data_1DC[2] = { - 0x410003, - 0x410004 -}; +s32 lbl_1_data_1DC[2] = { 0x410003, 0x410004 }; -Vec lbl_1_data_1E4[2] = { - { -550, 0, 550 }, - { 550, 0, 550 } -}; +Vec lbl_1_data_1E4[2] = { { -550, 0, 550 }, { 550, 0, 550 } }; -u32 lbl_1_data_1FC[10] = { - 0, - 2, - 23, - 133, - 0x41000E, - 0x410016, - 0x41001E, - 0x410026, - 0x41002E, - 0x410036 -}; +u32 lbl_1_data_1FC[10] = { 0, 2, 23, 133, 0x41000E, 0x410016, 0x41001E, 0x410026, 0x41002E, 0x410036 }; Data224Struct lbl_1_data_224[9] = { - { 0, 4, 12, 0, HU3D_MOTATTR_LOOP }, - { 1, 6, 6, 0, HU3D_MOTATTR_LOOP }, - { 0, 8, 6, 0, HU3D_MOTATTR_NONE }, - { 0, 5, 6, 0, HU3D_MOTATTR_LOOP }, - { 1, 5, 6, 0, HU3D_MOTATTR_LOOP }, - { 0, 8, 6, 30, HU3D_MOTATTR_NONE }, - { 0, 9, 6, 0, HU3D_MOTATTR_NONE }, - { 2, 0, 12, 0, HU3D_MOTATTR_NONE }, - { 3, 0, 12, 0, HU3D_MOTATTR_NONE }, + { 0, 4, 12, 0, HU3D_MOTATTR_LOOP }, + { 1, 6, 6, 0, HU3D_MOTATTR_LOOP }, + { 0, 8, 6, 0, HU3D_MOTATTR_NONE }, + { 0, 5, 6, 0, HU3D_MOTATTR_LOOP }, + { 1, 5, 6, 0, HU3D_MOTATTR_LOOP }, + { 0, 8, 6, 30, HU3D_MOTATTR_NONE }, + { 0, 9, 6, 0, HU3D_MOTATTR_NONE }, + { 2, 0, 12, 0, HU3D_MOTATTR_NONE }, + { 3, 0, 12, 0, HU3D_MOTATTR_NONE }, }; void fn_1_4988(omObjData *object); void fn_1_4854(Process *objman) { - s16 temp_r31; - omObjData *temp_r30; - s16 temp_r29; - s32 sp8[2] = { 0, 0 }; - omMakeGroupEx(objman, 0, 4); - omGetGroupMemberListEx(objman, 0); - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r30 = lbl_1_bss_5870[temp_r31] = omAddObjEx(objman, 40, 2, 10, 0, fn_1_4988); - temp_r30->work[0] = temp_r31; - temp_r29 = fn_1_1D74(temp_r31); - temp_r30->work[1] = (temp_r29*2)+sp8[temp_r29]; - sp8[temp_r29]++; - } + s16 temp_r31; + omObjData *temp_r30; + s16 temp_r29; + s32 sp8[2] = { 0, 0 }; + omMakeGroupEx(objman, 0, 4); + omGetGroupMemberListEx(objman, 0); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r30 = lbl_1_bss_5870[temp_r31] = omAddObjEx(objman, 40, 2, 10, 0, fn_1_4988); + temp_r30->work[0] = temp_r31; + temp_r29 = fn_1_1D74(temp_r31); + temp_r30->work[1] = (temp_r29 * 2) + sp8[temp_r29]; + sp8[temp_r29]++; + } } void fn_1_4964(void) { - CharModelKill(-1); + CharModelKill(-1); } typedef struct work_4988 { - s32 unk0; - s32 unk4; - s32 unk8; - s32 unkC; - s32 unk10; - u32 unk14; - u32 unk18; - float unk1C; - float unk20; - s32 unk24; - Vec unk28; - float unk34; - u16 unk38; - s16 unk3A; - s16 unk3C; - s16 unk3E; - float unk40; - float unk44; - float unk48; - float unk4C; - float unk50; - s32 unk54; - s16 unk58[3]; - s32 unk60; - float unk64; - s32 unk68; - u16 unk6C; - s32 unk70; - Vec unk74; - s16 unk80; - float unk84; - Vec unk88; - Vec unk94; + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + u32 unk14; + u32 unk18; + float unk1C; + float unk20; + s32 unk24; + Vec unk28; + float unk34; + u16 unk38; + s16 unk3A; + s16 unk3C; + s16 unk3E; + float unk40; + float unk44; + float unk48; + float unk4C; + float unk50; + s32 unk54; + s16 unk58[3]; + s32 unk60; + float unk64; + s32 unk68; + u16 unk6C; + s32 unk70; + Vec unk74; + s16 unk80; + float unk84; + Vec unk88; + Vec unk94; } Work4988; void fn_1_4DF4(omObjData *object); @@ -145,64 +130,65 @@ void fn_1_60AC(omObjData *arg0, u32 arg1); void fn_1_4988(omObjData *object) { - Work4988 *temp_r31; - s16 temp_r29; - s32 temp_r28; - s32 temp_r27; - - float sp1C[4] = { 0.5f, 0.65f, 0.8f, 1.0f }; - s32 spC[4] = { 1, 1, 2, 2 }; - s32 sp8; - object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work4988), MEMORY_DEFAULT_NUM); - temp_r31 = object->data; - memset(temp_r31, 0, sizeof(Work4988)); - temp_r27 = object->work[0]; - temp_r28 = GWPlayerCfg[temp_r27].character; - temp_r31->unk8 = temp_r28; - sp8 = temp_r31->unkC = 0; - temp_r31->unk0 = (object->work[1] >> 1) & 0x1; - temp_r31->unk4 = object->work[1] & 0x1; - temp_r31->unk6C = 0; - temp_r31->unk64 = sp1C[GWPlayerCfg[temp_r27].diff & 0x3]; - temp_r31->unk68 = spC[GWPlayerCfg[temp_r27].diff & 0x3]; - object->model[0] = CharModelCreate(temp_r28, 8); - CharModelStepTypeSet(temp_r28, 3); - Hu3DModelCameraSet(object->model[0], 4); - Hu3DModelLayerSet(object->model[0], 4); - object->model[1] = Hu3DModelCreateFile(lbl_1_data_1DC[temp_r31->unk0]); - Hu3DModelCameraSet(object->model[1], 4); - Hu3DModelLayerSet(object->model[1], 4); - Hu3DModelHookSet(object->model[0], lbl_1_data_190[temp_r31->unkC], object->model[1]); - Hu3DModelClusterAttrSet(object->model[1], 0, 0xC0000001); - for(temp_r29=0; temp_r29<10; temp_r29++) { - if(lbl_1_data_1FC[temp_r29] < 0x10000) { - object->motion[temp_r29] = CharModelMotionCreate(temp_r28, lbl_1_data_1FC[temp_r29]); - } else { - object->motion[temp_r29] = Hu3DJointMotionFile(object->model[0], temp_r28+lbl_1_data_1FC[temp_r29]); - } - } - CharModelMotionDataClose(temp_r28); - object->trans.x = temp_r31->unk88.x = ((2.0f*object->work[1])*100.0f)-300.0f; - object->trans.y = temp_r31->unk88.y = -70; - object->trans.z = temp_r31->unk88.z = 0; - temp_r31->unk94.x = temp_r31->unk94.y = temp_r31->unk94.z = 0; - temp_r31->unk40 = temp_r31->unk44 = 0; - temp_r31->unk48 = 0; - temp_r31->unk4C = 0.02f; - temp_r31->unk84 = 55; - temp_r31->unk28 = lbl_1_data_1E4[temp_r31->unk0]; - temp_r31->unk28.y = object->trans.y; - temp_r31->unk34 = 400; - temp_r31->unk54 = 0; - for(temp_r29=0; temp_r29<3; temp_r29++) { - temp_r31->unk58[temp_r29] = -1; - } - temp_r31->unk50 = 0; - temp_r31->unk10 = -1; - temp_r31->unk60 = 0; - fn_1_60AC(object, 0); - temp_r31->unk38 = 0; - object->func = fn_1_4DF4; + Work4988 *temp_r31; + s16 temp_r29; + s32 temp_r28; + s32 temp_r27; + + float sp1C[4] = { 0.5f, 0.65f, 0.8f, 1.0f }; + s32 spC[4] = { 1, 1, 2, 2 }; + s32 sp8; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work4988), MEMORY_DEFAULT_NUM); + temp_r31 = object->data; + memset(temp_r31, 0, sizeof(Work4988)); + temp_r27 = object->work[0]; + temp_r28 = GWPlayerCfg[temp_r27].character; + temp_r31->unk8 = temp_r28; + sp8 = temp_r31->unkC = 0; + temp_r31->unk0 = (object->work[1] >> 1) & 0x1; + temp_r31->unk4 = object->work[1] & 0x1; + temp_r31->unk6C = 0; + temp_r31->unk64 = sp1C[GWPlayerCfg[temp_r27].diff & 0x3]; + temp_r31->unk68 = spC[GWPlayerCfg[temp_r27].diff & 0x3]; + object->model[0] = CharModelCreate(temp_r28, 8); + CharModelStepTypeSet(temp_r28, 3); + Hu3DModelCameraSet(object->model[0], 4); + Hu3DModelLayerSet(object->model[0], 4); + object->model[1] = Hu3DModelCreateFile(lbl_1_data_1DC[temp_r31->unk0]); + Hu3DModelCameraSet(object->model[1], 4); + Hu3DModelLayerSet(object->model[1], 4); + Hu3DModelHookSet(object->model[0], lbl_1_data_190[temp_r31->unkC], object->model[1]); + Hu3DModelClusterAttrSet(object->model[1], 0, 0xC0000001); + for (temp_r29 = 0; temp_r29 < 10; temp_r29++) { + if (lbl_1_data_1FC[temp_r29] < 0x10000) { + object->motion[temp_r29] = CharModelMotionCreate(temp_r28, lbl_1_data_1FC[temp_r29]); + } + else { + object->motion[temp_r29] = Hu3DJointMotionFile(object->model[0], temp_r28 + lbl_1_data_1FC[temp_r29]); + } + } + CharModelMotionDataClose(temp_r28); + object->trans.x = temp_r31->unk88.x = ((2.0f * object->work[1]) * 100.0f) - 300.0f; + object->trans.y = temp_r31->unk88.y = -70; + object->trans.z = temp_r31->unk88.z = 0; + temp_r31->unk94.x = temp_r31->unk94.y = temp_r31->unk94.z = 0; + temp_r31->unk40 = temp_r31->unk44 = 0; + temp_r31->unk48 = 0; + temp_r31->unk4C = 0.02f; + temp_r31->unk84 = 55; + temp_r31->unk28 = lbl_1_data_1E4[temp_r31->unk0]; + temp_r31->unk28.y = object->trans.y; + temp_r31->unk34 = 400; + temp_r31->unk54 = 0; + for (temp_r29 = 0; temp_r29 < 3; temp_r29++) { + temp_r31->unk58[temp_r29] = -1; + } + temp_r31->unk50 = 0; + temp_r31->unk10 = -1; + temp_r31->unk60 = 0; + fn_1_60AC(object, 0); + temp_r31->unk38 = 0; + object->func = fn_1_4DF4; } void fn_1_4E50(omObjData *object); @@ -210,11 +196,11 @@ void fn_1_5BEC(omObjData *object); void fn_1_4DF4(omObjData *object) { - Work4988 *temp_r31 = object->data; - fn_1_5BEC(object); - temp_r31->unk3C++; - temp_r31->unk38 = 0; - object->func = fn_1_4E50; + Work4988 *temp_r31 = object->data; + fn_1_5BEC(object); + temp_r31->unk3C++; + temp_r31->unk38 = 0; + object->func = fn_1_4E50; } void fn_1_5AB0(omObjData *object); @@ -224,453 +210,465 @@ void fn_1_64C0(omObjData *object); float fn_1_67AC(float arg0, float arg1); -//Issues with assignment of temp_f30 -//Scratch is at https://decomp.me/scratch/EqCuG +// Issues with assignment of temp_f30 +// Scratch is at https://decomp.me/scratch/EqCuG void fn_1_4E50(omObjData *object) { - float temp_f31; - float temp_f30; - float temp_f28; - Work4988 *temp_r31 = object->data; - - s32 temp_r29; - s32 temp_r28; - s32 temp_r27 = 0; - Mtx sp2C; - Vec sp20; - char *sp14[3] = { - "f0", - "f1", - "f2" - }; - float spC[2] = { 0.05, 0.02 }; - temp_r31->unk14 = 0; - temp_r31->unk18 = 0; - temp_r31->unk20 = 0; - temp_r31->unk1C = 0; - if(fn_1_1D54() == 2) { - if(GWPlayerCfg[object->work[0]].iscom) { - fn_1_5C98(object); - } else { - temp_r31->unk18 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx]; - temp_r31->unk14 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx]; - temp_f31 = HuPadStkX[GWPlayerCfg[object->work[0]].pad_idx]; - temp_f30 = -HuPadStkY[GWPlayerCfg[object->work[0]].pad_idx]; - - temp_r31->unk20 = atan2d(temp_f31, temp_f30); - temp_r31->unk1C = (1.0f/72.0f)*VECMagPoint(temp_f31, temp_f30, 0); - if(temp_r31->unk1C > 1.0f) { - temp_r31->unk1C = 1.0f; - } - } - } - temp_r31->unk60 = 0; - switch(temp_r31->unk38) { - case 0: - temp_r27 = 1; - if(temp_r31->unk1C > spC[temp_r31->unk24]) { - temp_r31->unk24 = 1; - temp_r31->unk44 = temp_r31->unk20; - temp_r31->unk94.x += 225.0f*(temp_r31->unk1C*sind(temp_r31->unk20))*(1.0f/60.0f); - temp_r31->unk94.z += 225.0f*(temp_r31->unk1C*cosd(temp_r31->unk20))*(1.0f/60.0f); - temp_r31->unk48 = 0.2f; - temp_r31->unk4C = 0; - if(CharModelMotionShiftIDGet(temp_r31->unk8) < 0) { - fn_1_60AC(object, 1); - CharModelMotionSpeedSet(temp_r31->unk8, temp_r31->unk1C); - } - if(temp_r31->unk1C > 0.75f && (temp_r31->unk3A & 0x7) == 0) { - fn_1_8C14(object->work[0], &temp_r31->unk88, temp_r31->unk1C); - if((temp_r31->unk3A & 0xF) == 0) { - fn_1_43AC(&temp_r31->unk88); - } - } - } else { - temp_r31->unk24 = 0; - if(CharModelMotionShiftIDGet(temp_r31->unk8) < 0) { - fn_1_60AC(object, 0); - } - } - if(temp_r31->unk14 & PAD_BUTTON_A) { - temp_r31->unk38 = 1; - temp_r31->unk3C = 0; - } else if(temp_r31->unk14 & PAD_BUTTON_B) { - temp_r31->unk38 = 3; - temp_r31->unk3C = 0; - temp_r31->unk3A = 0; - } else { - temp_r31->unk60 = 1; - } - break; - - case 1: - temp_r31->unk24 = 0; - if(temp_r31->unk3C == 0) { - fn_1_60AC(object, 2); - temp_r31->unk3A = 0; - temp_r31->unk3C++; - } else if(temp_r31->unk3C == 1 && temp_r31->unk3A > 30.0f) { - if(temp_r31->unk54 < 3) { - temp_r28 = fn_1_8884(&temp_r31->unk88, 20, 150, temp_r31->unk40, -30, 30, 1, object->work[0]); - if(temp_r28 >= 0) { - temp_r31->unk58[temp_r31->unk54++] = temp_r28; - omVibrate(object->work[0], 12, 6, 6); - } - } - temp_r31->unk38 = 2; - temp_r31->unk3A = 0; - temp_r31->unk3C = 0; - } - break; - - case 2: - if(temp_r31->unk3C == 0) { - if(!(temp_r31->unk18 & PAD_BUTTON_A)) { - temp_r31->unk24 = 0; - fn_1_60AC(object, 5); - temp_r31->unk3A = 0; - temp_r31->unk3C++; - } else { - temp_f28 = fn_1_67AC(temp_r31->unk40, temp_r31->unk20); - if(temp_f28 > 10.0f) { - temp_f28 = 10.0f; - } else if(temp_f28 < -10.0f) { - temp_f28 = -10.0f; - } - if(temp_r31->unk1C > spC[temp_r31->unk24] && fabs(temp_f28) > 5.0) { - temp_r31->unk24 = 1; - temp_r31->unk44 = temp_r31->unk40+temp_f28; - temp_r31->unk48 = 0.2f; - temp_r31->unk4C = 0; - if(CharModelMotionShiftIDGet(temp_r31->unk8) < 0) { - fn_1_60AC(object, 4); - CharModelMotionSpeedSet(temp_r31->unk8, 0.5f); - } - if(temp_r31->unk54 < 3) { - temp_r28 = fn_1_8884(&temp_r31->unk88, 20, 150, temp_r31->unk40, -15, 15, 1, object->work[0]); - if(temp_r28 >= 0) { - temp_r31->unk58[temp_r31->unk54++] = temp_r28; - omVibrate(object->work[0], 12, 6, 6); - } - } - } else { - temp_r31->unk24 = 0; - if(CharModelMotionShiftIDGet(temp_r31->unk8) < 0) { - fn_1_60AC(object, 3); - } - } - } - } else { - if(temp_r31->unk3A > 30.0f) { - temp_r31->unk38 = 0; - } - } - break; - - case 3: - temp_r31->unk24 = 0; - if(temp_r31->unk3C == 0) { - temp_r31->unk3E = 0; - VECSubtract(&temp_r31->unk28, &temp_r31->unk88, &sp20); - temp_r31->unk44 = atan2d(sp20.x, sp20.z); - temp_f28 = VECMag(&sp20); - if(temp_f28 < temp_r31->unk34) { - temp_r31->unk3E++; - fn_1_60AC(object, 6); - } else { - fn_1_60AC(object, 0); - } - temp_r31->unk3A = 0; - temp_r31->unk3C++; - } - if(temp_r31->unk3E) { - if(temp_r31->unk3A > 36.0f) { - for(temp_r29=0; temp_r29unk54; temp_r29++) { - fn_1_8B58(temp_r31->unk58[temp_r29]); - } - temp_r31->unk54 = 0; - temp_r31->unk3E = 0; - } - } - if(temp_r31->unk3A > 60.0f) { - temp_r31->unk38 = 0; - } - break; - } - VECAdd(&temp_r31->unk88, &temp_r31->unk94, &temp_r31->unk88); - temp_r31->unk94.x = temp_r31->unk94.y = temp_r31->unk94.z = 0; - fn_1_64C0(object); - temp_f28 = 0; - if(temp_r31->unk54) { - temp_f28 = (temp_r31->unk54*10)+10; - } - temp_r31->unk50 += (temp_f28-temp_r31->unk50)*0.3f; - Hu3DData[object->model[1]].unk_A4[0] = temp_r31->unk50; - Hu3DModelObjMtxGet(object->model[0], lbl_1_data_190[temp_r31->unkC], sp2C); - for(temp_r29=0; temp_r29unk54; temp_r29++) { - Hu3DModelObjPosGet(object->model[1], sp14[temp_r29], &sp20); - MTXMultVec(sp2C, &sp20, &sp20); - fn_1_8AEC(temp_r31->unk58[temp_r29], &sp20); - } - fn_1_5BEC(object); - if(fn_1_1D54() == 5 && temp_r27) { - temp_r31->unk38 = 0; - object->func = fn_1_5AB0; - } + float temp_f31; + float temp_f30; + float temp_f28; + Work4988 *temp_r31 = object->data; + + s32 temp_r29; + s32 temp_r28; + s32 temp_r27 = 0; + Mtx sp2C; + Vec sp20; + char *sp14[3] = { "f0", "f1", "f2" }; + float spC[2] = { 0.05, 0.02 }; + temp_r31->unk14 = 0; + temp_r31->unk18 = 0; + temp_r31->unk20 = 0; + temp_r31->unk1C = 0; + if (fn_1_1D54() == 2) { + if (GWPlayerCfg[object->work[0]].iscom) { + fn_1_5C98(object); + } + else { + temp_r31->unk18 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx]; + temp_r31->unk14 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx]; + temp_f31 = HuPadStkX[GWPlayerCfg[object->work[0]].pad_idx]; + temp_f30 = -HuPadStkY[GWPlayerCfg[object->work[0]].pad_idx]; + + temp_r31->unk20 = atan2d(temp_f31, temp_f30); + temp_r31->unk1C = (1.0f / 72.0f) * VECMagPoint(temp_f31, temp_f30, 0); + if (temp_r31->unk1C > 1.0f) { + temp_r31->unk1C = 1.0f; + } + } + } + temp_r31->unk60 = 0; + switch (temp_r31->unk38) { + case 0: + temp_r27 = 1; + if (temp_r31->unk1C > spC[temp_r31->unk24]) { + temp_r31->unk24 = 1; + temp_r31->unk44 = temp_r31->unk20; + temp_r31->unk94.x += 225.0f * (temp_r31->unk1C * sind(temp_r31->unk20)) * (1.0f / 60.0f); + temp_r31->unk94.z += 225.0f * (temp_r31->unk1C * cosd(temp_r31->unk20)) * (1.0f / 60.0f); + temp_r31->unk48 = 0.2f; + temp_r31->unk4C = 0; + if (CharModelMotionShiftIDGet(temp_r31->unk8) < 0) { + fn_1_60AC(object, 1); + CharModelMotionSpeedSet(temp_r31->unk8, temp_r31->unk1C); + } + if (temp_r31->unk1C > 0.75f && (temp_r31->unk3A & 0x7) == 0) { + fn_1_8C14(object->work[0], &temp_r31->unk88, temp_r31->unk1C); + if ((temp_r31->unk3A & 0xF) == 0) { + fn_1_43AC(&temp_r31->unk88); + } + } + } + else { + temp_r31->unk24 = 0; + if (CharModelMotionShiftIDGet(temp_r31->unk8) < 0) { + fn_1_60AC(object, 0); + } + } + if (temp_r31->unk14 & PAD_BUTTON_A) { + temp_r31->unk38 = 1; + temp_r31->unk3C = 0; + } + else if (temp_r31->unk14 & PAD_BUTTON_B) { + temp_r31->unk38 = 3; + temp_r31->unk3C = 0; + temp_r31->unk3A = 0; + } + else { + temp_r31->unk60 = 1; + } + break; + + case 1: + temp_r31->unk24 = 0; + if (temp_r31->unk3C == 0) { + fn_1_60AC(object, 2); + temp_r31->unk3A = 0; + temp_r31->unk3C++; + } + else if (temp_r31->unk3C == 1 && temp_r31->unk3A > 30.0f) { + if (temp_r31->unk54 < 3) { + temp_r28 = fn_1_8884(&temp_r31->unk88, 20, 150, temp_r31->unk40, -30, 30, 1, object->work[0]); + if (temp_r28 >= 0) { + temp_r31->unk58[temp_r31->unk54++] = temp_r28; + omVibrate(object->work[0], 12, 6, 6); + } + } + temp_r31->unk38 = 2; + temp_r31->unk3A = 0; + temp_r31->unk3C = 0; + } + break; + + case 2: + if (temp_r31->unk3C == 0) { + if (!(temp_r31->unk18 & PAD_BUTTON_A)) { + temp_r31->unk24 = 0; + fn_1_60AC(object, 5); + temp_r31->unk3A = 0; + temp_r31->unk3C++; + } + else { + temp_f28 = fn_1_67AC(temp_r31->unk40, temp_r31->unk20); + if (temp_f28 > 10.0f) { + temp_f28 = 10.0f; + } + else if (temp_f28 < -10.0f) { + temp_f28 = -10.0f; + } + if (temp_r31->unk1C > spC[temp_r31->unk24] && fabs(temp_f28) > 5.0) { + temp_r31->unk24 = 1; + temp_r31->unk44 = temp_r31->unk40 + temp_f28; + temp_r31->unk48 = 0.2f; + temp_r31->unk4C = 0; + if (CharModelMotionShiftIDGet(temp_r31->unk8) < 0) { + fn_1_60AC(object, 4); + CharModelMotionSpeedSet(temp_r31->unk8, 0.5f); + } + if (temp_r31->unk54 < 3) { + temp_r28 = fn_1_8884(&temp_r31->unk88, 20, 150, temp_r31->unk40, -15, 15, 1, object->work[0]); + if (temp_r28 >= 0) { + temp_r31->unk58[temp_r31->unk54++] = temp_r28; + omVibrate(object->work[0], 12, 6, 6); + } + } + } + else { + temp_r31->unk24 = 0; + if (CharModelMotionShiftIDGet(temp_r31->unk8) < 0) { + fn_1_60AC(object, 3); + } + } + } + } + else { + if (temp_r31->unk3A > 30.0f) { + temp_r31->unk38 = 0; + } + } + break; + + case 3: + temp_r31->unk24 = 0; + if (temp_r31->unk3C == 0) { + temp_r31->unk3E = 0; + VECSubtract(&temp_r31->unk28, &temp_r31->unk88, &sp20); + temp_r31->unk44 = atan2d(sp20.x, sp20.z); + temp_f28 = VECMag(&sp20); + if (temp_f28 < temp_r31->unk34) { + temp_r31->unk3E++; + fn_1_60AC(object, 6); + } + else { + fn_1_60AC(object, 0); + } + temp_r31->unk3A = 0; + temp_r31->unk3C++; + } + if (temp_r31->unk3E) { + if (temp_r31->unk3A > 36.0f) { + for (temp_r29 = 0; temp_r29 < temp_r31->unk54; temp_r29++) { + fn_1_8B58(temp_r31->unk58[temp_r29]); + } + temp_r31->unk54 = 0; + temp_r31->unk3E = 0; + } + } + if (temp_r31->unk3A > 60.0f) { + temp_r31->unk38 = 0; + } + break; + } + VECAdd(&temp_r31->unk88, &temp_r31->unk94, &temp_r31->unk88); + temp_r31->unk94.x = temp_r31->unk94.y = temp_r31->unk94.z = 0; + fn_1_64C0(object); + temp_f28 = 0; + if (temp_r31->unk54) { + temp_f28 = (temp_r31->unk54 * 10) + 10; + } + temp_r31->unk50 += (temp_f28 - temp_r31->unk50) * 0.3f; + Hu3DData[object->model[1]].unk_A4[0] = temp_r31->unk50; + Hu3DModelObjMtxGet(object->model[0], lbl_1_data_190[temp_r31->unkC], sp2C); + for (temp_r29 = 0; temp_r29 < temp_r31->unk54; temp_r29++) { + Hu3DModelObjPosGet(object->model[1], sp14[temp_r29], &sp20); + MTXMultVec(sp2C, &sp20, &sp20); + fn_1_8AEC(temp_r31->unk58[temp_r29], &sp20); + } + fn_1_5BEC(object); + if (fn_1_1D54() == 5 && temp_r27) { + temp_r31->unk38 = 0; + object->func = fn_1_5AB0; + } } s32 fn_1_6248(omObjData *object); void fn_1_5AB0(omObjData *object) { - Work4988 *temp_r31 = object->data; - s32 sp8[2] = { -1, 1 }; - fn_1_5BEC(object); - switch(temp_r31->unk38) { - case 0: - temp_r31->unk38++; - break; - - case 1: - Hu3DModelHookReset(object->model[0]); - Hu3DModelAttrSet(object->model[1], 1); - if(sp8[temp_r31->unk0] == fn_1_1D8C()) { - fn_1_60AC(object, 7); - } else { - fn_1_60AC(object, 8); - } - temp_r31->unk44 = 0; - temp_r31->unk48 = 0; - temp_r31->unk4C = 0.005f; - temp_r31->unk38++; - break; - - case 2: - if(fn_1_6248(object)) { - temp_r31->unk38++; - } - break; - } + Work4988 *temp_r31 = object->data; + s32 sp8[2] = { -1, 1 }; + fn_1_5BEC(object); + switch (temp_r31->unk38) { + case 0: + temp_r31->unk38++; + break; + + case 1: + Hu3DModelHookReset(object->model[0]); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + if (sp8[temp_r31->unk0] == fn_1_1D8C()) { + fn_1_60AC(object, 7); + } + else { + fn_1_60AC(object, 8); + } + temp_r31->unk44 = 0; + temp_r31->unk48 = 0; + temp_r31->unk4C = 0.005f; + temp_r31->unk38++; + break; + + case 2: + if (fn_1_6248(object)) { + temp_r31->unk38++; + } + break; + } } float fn_1_6690(float arg0, float arg1, float arg2); void fn_1_5BEC(omObjData *object) { - Work4988 *temp_r31 = object->data; - temp_r31->unk3A++; - object->trans.x = temp_r31->unk88.x; - object->trans.y = temp_r31->unk88.y; - object->trans.z = temp_r31->unk88.z; - temp_r31->unk48 += temp_r31->unk4C; - if(temp_r31->unk48 > 0.45f) { - temp_r31->unk48 = 0.45f; - } - temp_r31->unk40 = fn_1_6690(temp_r31->unk40, temp_r31->unk44, temp_r31->unk48); - object->rot.y = temp_r31->unk40; + Work4988 *temp_r31 = object->data; + temp_r31->unk3A++; + object->trans.x = temp_r31->unk88.x; + object->trans.y = temp_r31->unk88.y; + object->trans.z = temp_r31->unk88.z; + temp_r31->unk48 += temp_r31->unk4C; + if (temp_r31->unk48 > 0.45f) { + temp_r31->unk48 = 0.45f; + } + temp_r31->unk40 = fn_1_6690(temp_r31->unk40, temp_r31->unk44, temp_r31->unk48); + object->rot.y = temp_r31->unk40; } void fn_1_5C98(omObjData *object) { - Vec sp8; - Work4988 *temp_r31 = object->data; - s32 temp_r30; - s32 temp_r29 = 0; - s32 temp_r28; - switch(temp_r31->unk6C) { - case 0: - if(temp_r31->unk60) { - temp_r31->unk70 = fn_1_8FA0(&temp_r31->unk88); - if(temp_r31->unk70 < 0 || temp_r31->unk54 >= temp_r31->unk68 || fn_1_1D44() < 10) { - temp_r29 = 1; - } - if(temp_r31->unk54 && temp_r29) { - temp_r31->unk6C = 3; - temp_r31->unk80 = 0; - } else if(temp_r31->unk70 >= 0) { - temp_r31->unk6C = 1; - temp_r31->unk80 = 0; - fn_1_8E2C(temp_r31->unk70, &temp_r31->unk74); - temp_r31->unk74.y = temp_r31->unk88.y; - } - } - break; - - case 1: - temp_r31->unk1C = 0.73f*temp_r31->unk64; - if(temp_r31->unk54 && fn_1_1D44() < 10) { - temp_r31->unk6C = 0; - } else { - temp_r28 = fn_1_8D78(&temp_r31->unk88); - if(fn_1_8F3C(temp_r28) > 0) { - temp_r31->unk6C = 2; - temp_r31->unk80 = 0; - } else { - VECSubtract(&temp_r31->unk74, &temp_r31->unk88, &sp8); - temp_r31->unk20 = fn_1_6690(temp_r31->unk40, atan2d(sp8.x, sp8.z), temp_r31->unk64*0.25f); - temp_r30 = 0; - if(VECMag(&sp8) < 50.0f) { - temp_r30 = 1; - } - if(temp_r30 && fn_1_8F3C(temp_r31->unk70) > 0) { - temp_r31->unk6C = 2; - temp_r31->unk80 = 0; - } else { - temp_r31->unk80++; - if(temp_r30 || temp_r31->unk80 > 60.0f) { - if(temp_r30 || frandmod(1000) < 10) { - temp_r31->unk70 = fn_1_8FA0(&temp_r31->unk88); - fn_1_8E2C(temp_r31->unk70, &temp_r31->unk74); - temp_r31->unk74.y = temp_r31->unk88.y; - temp_r31->unk80 = 0; - if(temp_r31->unk70 < 0) { - temp_r31->unk6C = 0; - } - } - } - } - } - } - break; - - case 2: - temp_r31->unk80++; - if(temp_r31->unk80 < 120*temp_r31->unk64) { - temp_r31->unk1C = 0.4f; - temp_r31->unk20 = temp_r31->unk40+10.0f; - temp_r31->unk14 = temp_r31->unk18 = PAD_BUTTON_A; - } else { - temp_r31->unk6C = 0; - } - break; - - case 3: - temp_r31->unk1C = 0.75f+(0.25f*temp_r31->unk64); - VECSubtract(&temp_r31->unk28, &temp_r31->unk88, &sp8); - temp_r31->unk20 = fn_1_6690(temp_r31->unk40, atan2d(sp8.x, sp8.z), 0.2f); - if(VECMag(&sp8) < temp_r31->unk34-30.000002f) { - temp_r31->unk14 = temp_r31->unk18 = PAD_BUTTON_B; - temp_r31->unk6C = 0; - } - break; - } + Vec sp8; + Work4988 *temp_r31 = object->data; + s32 temp_r30; + s32 temp_r29 = 0; + s32 temp_r28; + switch (temp_r31->unk6C) { + case 0: + if (temp_r31->unk60) { + temp_r31->unk70 = fn_1_8FA0(&temp_r31->unk88); + if (temp_r31->unk70 < 0 || temp_r31->unk54 >= temp_r31->unk68 || fn_1_1D44() < 10) { + temp_r29 = 1; + } + if (temp_r31->unk54 && temp_r29) { + temp_r31->unk6C = 3; + temp_r31->unk80 = 0; + } + else if (temp_r31->unk70 >= 0) { + temp_r31->unk6C = 1; + temp_r31->unk80 = 0; + fn_1_8E2C(temp_r31->unk70, &temp_r31->unk74); + temp_r31->unk74.y = temp_r31->unk88.y; + } + } + break; + + case 1: + temp_r31->unk1C = 0.73f * temp_r31->unk64; + if (temp_r31->unk54 && fn_1_1D44() < 10) { + temp_r31->unk6C = 0; + } + else { + temp_r28 = fn_1_8D78(&temp_r31->unk88); + if (fn_1_8F3C(temp_r28) > 0) { + temp_r31->unk6C = 2; + temp_r31->unk80 = 0; + } + else { + VECSubtract(&temp_r31->unk74, &temp_r31->unk88, &sp8); + temp_r31->unk20 = fn_1_6690(temp_r31->unk40, atan2d(sp8.x, sp8.z), temp_r31->unk64 * 0.25f); + temp_r30 = 0; + if (VECMag(&sp8) < 50.0f) { + temp_r30 = 1; + } + if (temp_r30 && fn_1_8F3C(temp_r31->unk70) > 0) { + temp_r31->unk6C = 2; + temp_r31->unk80 = 0; + } + else { + temp_r31->unk80++; + if (temp_r30 || temp_r31->unk80 > 60.0f) { + if (temp_r30 || frandmod(1000) < 10) { + temp_r31->unk70 = fn_1_8FA0(&temp_r31->unk88); + fn_1_8E2C(temp_r31->unk70, &temp_r31->unk74); + temp_r31->unk74.y = temp_r31->unk88.y; + temp_r31->unk80 = 0; + if (temp_r31->unk70 < 0) { + temp_r31->unk6C = 0; + } + } + } + } + } + } + break; + + case 2: + temp_r31->unk80++; + if (temp_r31->unk80 < 120 * temp_r31->unk64) { + temp_r31->unk1C = 0.4f; + temp_r31->unk20 = temp_r31->unk40 + 10.0f; + temp_r31->unk14 = temp_r31->unk18 = PAD_BUTTON_A; + } + else { + temp_r31->unk6C = 0; + } + break; + + case 3: + temp_r31->unk1C = 0.75f + (0.25f * temp_r31->unk64); + VECSubtract(&temp_r31->unk28, &temp_r31->unk88, &sp8); + temp_r31->unk20 = fn_1_6690(temp_r31->unk40, atan2d(sp8.x, sp8.z), 0.2f); + if (VECMag(&sp8) < temp_r31->unk34 - 30.000002f) { + temp_r31->unk14 = temp_r31->unk18 = PAD_BUTTON_B; + temp_r31->unk6C = 0; + } + break; + } } void fn_1_60AC(omObjData *arg0, u32 arg1) { - float temp_f31; - Work4988 *temp_r30 = arg0->data; - if(temp_r30->unk10 != arg1 && arg1 < 9) { - temp_f31 = lbl_1_data_224[arg1].unk4; - if(temp_r30->unk10 < 0) { - temp_f31 = 0; - } - temp_r30->unk10 = arg1; - CharModelMotionShiftSet(temp_r30->unk8, arg0->motion[lbl_1_data_224[arg1].unk0], 0, temp_f31, lbl_1_data_224[arg1].unkC); - CharModelMotionSpeedSet(temp_r30->unk8, 1.0f); - if(lbl_1_data_224[arg1].unk2) { - Hu3DMotionOverlaySet(arg0->model[0], arg0->motion[lbl_1_data_224[arg1].unk2]); - Hu3DMotionOverlayTimeSet(arg0->model[0], lbl_1_data_224[arg1].unk8); - Hu3DData[arg0->model[0]].unk_78 = 1.0f; - } else { - Hu3DMotionOverlayReset(arg0->model[0]); - } - } + float temp_f31; + Work4988 *temp_r30 = arg0->data; + if (temp_r30->unk10 != arg1 && arg1 < 9) { + temp_f31 = lbl_1_data_224[arg1].unk4; + if (temp_r30->unk10 < 0) { + temp_f31 = 0; + } + temp_r30->unk10 = arg1; + CharModelMotionShiftSet(temp_r30->unk8, arg0->motion[lbl_1_data_224[arg1].unk0], 0, temp_f31, lbl_1_data_224[arg1].unkC); + CharModelMotionSpeedSet(temp_r30->unk8, 1.0f); + if (lbl_1_data_224[arg1].unk2) { + Hu3DMotionOverlaySet(arg0->model[0], arg0->motion[lbl_1_data_224[arg1].unk2]); + Hu3DMotionOverlayTimeSet(arg0->model[0], lbl_1_data_224[arg1].unk8); + Hu3DData[arg0->model[0]].unk_78 = 1.0f; + } + else { + Hu3DMotionOverlayReset(arg0->model[0]); + } + } } s32 fn_1_6248(omObjData *object) { - Work4988 *temp_r31 = object->data; - s32 temp_r30 = 0; - if(CharModelMotionEndCheck(temp_r31->unk8) && CharModelMotionShiftIDGet(temp_r31->unk8) < 0) { - temp_r30 = 1; - } - return temp_r30; + Work4988 *temp_r31 = object->data; + s32 temp_r30 = 0; + if (CharModelMotionEndCheck(temp_r31->unk8) && CharModelMotionShiftIDGet(temp_r31->unk8) < 0) { + temp_r30 = 1; + } + return temp_r30; } s32 fn_1_62BC(omObjData *arg0, u32 arg1) { - s32 result = 0; - if(fn_1_6248(arg0)) { - fn_1_60AC(arg0, arg1); - result = 1; - } - return result; + s32 result = 0; + if (fn_1_6248(arg0)) { + fn_1_60AC(arg0, arg1); + result = 1; + } + return result; } s32 fn_1_649C(omObjData *object) { - Work4988 *sp8 = object->data; - s32 temp_r31 = 0; - return temp_r31; + Work4988 *sp8 = object->data; + s32 temp_r31 = 0; + return temp_r31; } - void fn_1_64C0(omObjData *object) { - float temp_f31; - Vec sp8; - Work4988 *temp_r31; - Work4988 *temp_r30; - s32 temp_r29; - s32 temp_r28; - s32 temp_r27; - for(temp_r27=0; temp_r27<2; temp_r27++) { - for(temp_r29=0; temp_r29<4; temp_r29++) { - temp_r31 = lbl_1_bss_5870[temp_r29]->data; - for(temp_r28=0; temp_r28<4; temp_r28++) { - if(temp_r29 == temp_r28) { - continue; - } - temp_r30 = lbl_1_bss_5870[temp_r28]->data; - VECSubtract(&temp_r31->unk88, &temp_r30->unk88, &sp8); - temp_f31 = VECMag(&sp8); - if(temp_f31 < temp_r31->unk84+temp_r30->unk84) { - temp_f31 = 0.5f*((temp_r31->unk84+temp_r30->unk84)-temp_f31); - VECNormalize(&sp8, &sp8); - VECScale(&sp8, &sp8, temp_f31); - VECAdd(&temp_r31->unk88, &sp8, &temp_r31->unk88); - VECSubtract(&temp_r30->unk88, &sp8, &temp_r30->unk88); - } - } - sp8 = temp_r31->unk88; - sp8.y = 0; - temp_f31 = VECMag(&sp8); - if(temp_f31 > 510.0f-temp_r31->unk84) { - VECNormalize(&sp8, &sp8); - VECScale(&sp8, &sp8, -(temp_f31-(510.0f-temp_r31->unk84))); - VECAdd(&sp8, &temp_r31->unk88, &temp_r31->unk88); - } - } - } + float temp_f31; + Vec sp8; + Work4988 *temp_r31; + Work4988 *temp_r30; + s32 temp_r29; + s32 temp_r28; + s32 temp_r27; + for (temp_r27 = 0; temp_r27 < 2; temp_r27++) { + for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { + temp_r31 = lbl_1_bss_5870[temp_r29]->data; + for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { + if (temp_r29 == temp_r28) { + continue; + } + temp_r30 = lbl_1_bss_5870[temp_r28]->data; + VECSubtract(&temp_r31->unk88, &temp_r30->unk88, &sp8); + temp_f31 = VECMag(&sp8); + if (temp_f31 < temp_r31->unk84 + temp_r30->unk84) { + temp_f31 = 0.5f * ((temp_r31->unk84 + temp_r30->unk84) - temp_f31); + VECNormalize(&sp8, &sp8); + VECScale(&sp8, &sp8, temp_f31); + VECAdd(&temp_r31->unk88, &sp8, &temp_r31->unk88); + VECSubtract(&temp_r30->unk88, &sp8, &temp_r30->unk88); + } + } + sp8 = temp_r31->unk88; + sp8.y = 0; + temp_f31 = VECMag(&sp8); + if (temp_f31 > 510.0f - temp_r31->unk84) { + VECNormalize(&sp8, &sp8); + VECScale(&sp8, &sp8, -(temp_f31 - (510.0f - temp_r31->unk84))); + VECAdd(&sp8, &temp_r31->unk88, &temp_r31->unk88); + } + } + } } float fn_1_6690(float arg0, float arg1, float arg2) { - float temp_f31; - temp_f31 = fmodf(arg1-arg0, 360.0); - if(temp_f31 < 0.0f) { - temp_f31 += 360.0f; - } - if(temp_f31 > 180.0f) { - temp_f31 -= 360.0f; - } - temp_f31 = fmodf((arg2*temp_f31)+arg0, 360.0); - if(temp_f31 < 0.0f) { - temp_f31 += 360.0f; - } - return temp_f31; + float temp_f31; + temp_f31 = fmodf(arg1 - arg0, 360.0); + if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + if (temp_f31 > 180.0f) { + temp_f31 -= 360.0f; + } + temp_f31 = fmodf((arg2 * temp_f31) + arg0, 360.0); + if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + return temp_f31; } float fn_1_67AC(float arg0, float arg1) { - float temp_f31; - temp_f31 = fmodf(arg1-arg0, 360.0); - if(temp_f31 < 0.0f) { - temp_f31 += 360.0f; - } - if(temp_f31 > 180.0f) { - temp_f31 -= 360.0f; - } - return temp_f31; -} \ No newline at end of file + float temp_f31; + temp_f31 = fmodf(arg1 - arg0, 360.0); + if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + if (temp_f31 > 180.0f) { + temp_f31 -= 360.0f; + } + return temp_f31; +} diff --git a/src/REL/m437Dll/main.c b/src/REL/m437Dll/main.c index 27345907..54af13d9 100755 --- a/src/REL/m437Dll/main.c +++ b/src/REL/m437Dll/main.c @@ -1,5 +1,4 @@ #include "REL/m437Dll.h" -#include "game/process.h" #include "game/chrman.h" #include "game/data.h" #include "game/gamework.h" @@ -11,6 +10,7 @@ #include "game/objsub.h" #include "game/pad.h" #include "game/printfunc.h" +#include "game/process.h" #include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" @@ -20,7 +20,7 @@ #include "string.h" typedef struct { - /* 0x000 */ omObjData* unk00; + /* 0x000 */ omObjData *unk00; /* 0x004 */ s32 unk04; /* 0x008 */ s32 unk08; /* 0x00C */ s32 unk0C; @@ -44,7 +44,7 @@ typedef struct { } StructBss1DC; // Size 0x138 typedef struct { - /* 0x00 */ omObjData* unk00; + /* 0x00 */ omObjData *unk00; /* 0x04 */ s32 unk04; /* 0x08 */ s32 unk08; /* 0x0C */ s32 unk0C; @@ -64,7 +64,7 @@ typedef struct { } StructFn3410; // Size 0x14 typedef struct { - /* 0x00 */ omObjData* unk00; + /* 0x00 */ omObjData *unk00; /* 0x04 */ s32 unk04; /* 0x08 */ s32 unk08; /* 0x0C */ s32 unk0C; @@ -77,7 +77,7 @@ typedef struct { } StructBss8D4; // Size 0x28 typedef struct { - /* 0x000 */ omObjData* unk00; + /* 0x000 */ omObjData *unk00; /* 0x004 */ s32 unk04; /* 0x008 */ s32 unk08; /* 0x00C */ s32 unk0C; @@ -90,7 +90,7 @@ typedef struct { } StructBss6BC; // Size 0x10C typedef struct { - /* 0x00 */ omObjData* unk00; + /* 0x00 */ omObjData *unk00; /* 0x04 */ s32 unk04; /* 0x08 */ s32 unk08; /* 0x0C */ s32 unk0C; @@ -102,7 +102,7 @@ typedef struct { } StructBss8FC; // Size 0x24 typedef struct { - /* 0x00 */ omObjData* unk00; + /* 0x00 */ omObjData *unk00; /* 0x04 */ s32 unk04; /* 0x08 */ s32 unk08; /* 0x0C */ s32 unk0C; @@ -152,13 +152,13 @@ void fn_1_434(void); void fn_1_4C0(void); void fn_1_8A4(void (*arg0)(void)); void fn_1_8C4(void (*arg0)(void)); -void fn_1_8E4(omObjData* arg0); +void fn_1_8E4(omObjData *arg0); void fn_1_F8C(void); void fn_1_10C0(void); void fn_1_1184(s32 arg0); s32 fn_1_11BC(void); void fn_1_11E0(void); -void fn_1_1218(omObjData* arg0); +void fn_1_1218(omObjData *arg0); void fn_1_13E8(void); void fn_1_144C(s32 arg0, float arg1, float arg2, s32 arg3); void fn_1_1A90(void); @@ -171,59 +171,59 @@ void fn_1_27A4(s32 arg0); void fn_1_280C(s32 arg0, s32 arg1); void fn_1_28F4(s32 arg0); void fn_1_2A10(s32 arg0, s32 arg1); -void fn_1_2A94(float* arg0, s32 arg1); -void fn_1_2B04(omObjData* arg0); +void fn_1_2A94(float *arg0, s32 arg1); +void fn_1_2B04(omObjData *arg0); void fn_1_2BAC(s32 arg0); -void fn_1_2BBC(omObjData* arg0); -void fn_1_3194(omObjData* arg0); -void fn_1_3260(StructBss920* arg0); -void fn_1_3410(omObjData* arg0); +void fn_1_2BBC(omObjData *arg0); +void fn_1_3194(omObjData *arg0); +void fn_1_3260(StructBss920 *arg0); +void fn_1_3410(omObjData *arg0); float fn_1_3694(void); float fn_1_36B4(void); void fn_1_37D4(s32 arg0); -void fn_1_37E8(omObjData* arg0); +void fn_1_37E8(omObjData *arg0); s32 fn_1_3990(void); void fn_1_39C4(float arg0); -void fn_1_39E4(omObjData* arg0); +void fn_1_39E4(omObjData *arg0); void fn_1_3B50(void); -void fn_1_3B64(omObjData* arg0); +void fn_1_3B64(omObjData *arg0); void fn_1_3CB8(s32 arg0); -void fn_1_3D40(omObjData* arg0); -void fn_1_3F44(omObjData* arg0); -void fn_1_4538(StructBss8FC* arg0); -void fn_1_46C0(omObjData* arg0); +void fn_1_3D40(omObjData *arg0); +void fn_1_3F44(omObjData *arg0); +void fn_1_4538(StructBss8FC *arg0); +void fn_1_46C0(omObjData *arg0); void fn_1_4928(s32 arg0); -void fn_1_4938(omObjData* arg0); +void fn_1_4938(omObjData *arg0); void fn_1_4AF8(s32 arg0); void fn_1_4BAC(s32 arg0, s32 arg1, s32 arg2, s32 arg3); -void fn_1_4C40(omObjData* arg0); -void fn_1_4E00(StructBss8D4* arg0); -void fn_1_4EE0(omObjData* arg0); +void fn_1_4C40(omObjData *arg0); +void fn_1_4E00(StructBss8D4 *arg0); +void fn_1_4EE0(omObjData *arg0); void fn_1_5148(s32 arg0, s32 arg1, s32 arg2, s32 arg3); void fn_1_51DC(s32 arg0, s32 arg1, s32 arg2, s32 arg3); void fn_1_5270(s32 arg0, s32 arg1, s32 arg2, s32 arg3); void fn_1_5304(s32 arg0); -void fn_1_532C(omObjData* arg0); -void fn_1_5658(omObjData* arg0); -void fn_1_5984(StructBss6BC* arg0); -void fn_1_5AD8(omObjData* arg0); +void fn_1_532C(omObjData *arg0); +void fn_1_5658(omObjData *arg0); +void fn_1_5984(StructBss6BC *arg0); +void fn_1_5AD8(omObjData *arg0); void fn_1_5FBC(void); void fn_1_610C(s32 arg0, s32 arg1); -void fn_1_6134(omObjData* arg0); +void fn_1_6134(omObjData *arg0); void fn_1_6198(s32 arg0, s32 arg1); -void fn_1_6200(omObjData* arg0); +void fn_1_6200(omObjData *arg0); void fn_1_6580(s32 arg0, s32 arg1, s32 arg2); -void fn_1_65E0(omObjData* arg0); +void fn_1_65E0(omObjData *arg0); void fn_1_70F8(s32 arg0, s32 arg1); -void fn_1_7134(omObjData* arg0); -void fn_1_72CC(omObjData* arg0); -void fn_1_74B0(StructBss1DC* arg0); -void fn_1_7678(omObjData* arg0); +void fn_1_7134(omObjData *arg0); +void fn_1_72CC(omObjData *arg0); +void fn_1_74B0(StructBss1DC *arg0); +void fn_1_7678(omObjData *arg0); void fn_1_79E0(void); -void fn_1_7A14(omObjData* arg0); -void fn_1_82E0(omObjData* arg0); -void fn_1_8308(StructBss68* arg0); -void fn_1_84C4(omObjData* arg0); +void fn_1_7A14(omObjData *arg0); +void fn_1_82E0(omObjData *arg0); +void fn_1_8308(StructBss68 *arg0); +void fn_1_84C4(omObjData *arg0); void fn_1_8684(void); void fn_1_8734(void); void fn_1_8824(void); @@ -303,11 +303,11 @@ void fn_1_F590(void); s32 fn_1_F640(void); void fn_1_F6EC(void); s32 fn_1_F71C(void); -void fn_1_F7A8(omObjData* arg0); +void fn_1_F7A8(omObjData *arg0); s32 fn_1_F89C(void); void fn_1_F8AC(void); -void fn_1_1043C(omObjData* arg0); -void fn_1_108A4(omObjData* arg0); +void fn_1_1043C(omObjData *arg0); +void fn_1_108A4(omObjData *arg0); void fn_1_10B30(void); StructBss968 lbl_1_bss_968; @@ -334,25 +334,17 @@ s32 lbl_1_bss_10; s32 lbl_1_bss_C; s32 lbl_1_bss_8; s32 lbl_1_bss_4; -Process* lbl_1_bss_0; +Process *lbl_1_bss_0; - -s32 lbl_1_data_0[][5] = { - { 91, 105, 126, 141, -1 }, - { 91, 105, 126, 141, -1 }, - { 124, 137, -1, -1, -1 }, - { 85, 100, 127, -1, -1 }, - { 124, 139, -1, -1, -1 }, - { 85, 97, 127, 139, -1 }, - { 127, 137, -1, -1, -1 }, - { 79, 95, 109, 127, -1 } -}; +s32 lbl_1_data_0[][5] = { { 91, 105, 126, 141, -1 }, { 91, 105, 126, 141, -1 }, { 124, 137, -1, -1, -1 }, { 85, 100, 127, -1, -1 }, + { 124, 139, -1, -1, -1 }, { 85, 97, 127, 139, -1 }, { 127, 137, -1, -1, -1 }, { 79, 95, 109, 127, -1 } }; s32 lbl_1_data_A0 = -1; s32 lbl_1_data_A4 = -1; s32 lbl_1_data_A8 = -1; -void fn_1_0(void) { +void fn_1_0(void) +{ s32 i; while (TRUE) { @@ -370,31 +362,36 @@ void fn_1_0(void) { } } -void fn_1_1A8(void) { +void fn_1_1A8(void) +{ s32 var_r31; var_r31 = Hu3DGLightCreate(0.0f, 1000.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0xFF, 0xFF, 0xFF); Hu3DGLightInfinitytSet(var_r31); } -void fn_1_230(s32 arg0, s32 arg1, float arg2) { - StructBss160* var_r31; +void fn_1_230(s32 arg0, s32 arg1, float arg2) +{ + StructBss160 *var_r31; var_r31 = &lbl_1_bss_160; var_r31->unk44[arg0] = arg1; if (var_r31->unk60[arg0] < 0.0f) { var_r31->unk60[arg0] = -arg2; - } else { + } + else { var_r31->unk60[arg0] = arg2; } } -void fn_1_298(s32 arg0, float arg1) { +void fn_1_298(s32 arg0, float arg1) +{ fn_1_230(arg0, -1, arg1); } -float fn_1_304(s32 arg0) { - StructBss160* var_r31; +float fn_1_304(s32 arg0) +{ + StructBss160 *var_r31; var_r31 = &lbl_1_bss_160; if (var_r31->unk60[arg0] != 0.0f) { @@ -403,7 +400,8 @@ float fn_1_304(s32 arg0) { if (var_r31->unk60[arg0] >= -0.5f && var_r31->unk60[arg0] <= 0.5f) { var_r31->unk60[arg0] = 0.0f; } - } else { + } + else { var_r31->unk44[arg0]--; if (var_r31->unk44[arg0] <= 0) { var_r31->unk44[arg0] = 0; @@ -414,8 +412,9 @@ float fn_1_304(s32 arg0) { return var_r31->unk60[arg0]; } -void fn_1_434(void) { - StructBss160* var_r31; +void fn_1_434(void) +{ + StructBss160 *var_r31; var_r31 = &lbl_1_bss_160; var_r31->unk08 = 0.0f; @@ -427,14 +426,16 @@ void fn_1_434(void) { var_r31->unk38 = 300.0f; } -void fn_1_4C0(void) { - StructBss160* var_r31; +void fn_1_4C0(void) +{ + StructBss160 *var_r31; var_r31 = &lbl_1_bss_160; if (HuPadBtn[0] & 0x200) { if (HuPadBtn[0] & 0x100) { var_r31->unk10 -= HuPadStkY[0] / 10.0f; - } else { + } + else { var_r31->unk08 += HuPadStkX[0] / 10.0f; var_r31->unk0C += HuPadStkY[0] / 10.0f; } @@ -464,22 +465,25 @@ void fn_1_4C0(void) { print8(16, 130, 1.0f, "ZOOM : %.2f", var_r31->unk38); } -void fn_1_8A4(void (*arg0)(void)) { - StructBss160* var_r31; +void fn_1_8A4(void (*arg0)(void)) +{ + StructBss160 *var_r31; var_r31 = &lbl_1_bss_160; var_r31->unk00 = arg0; } -void fn_1_8C4(void (*arg0)(void)) { - StructBss160* var_r31; +void fn_1_8C4(void (*arg0)(void)) +{ + StructBss160 *var_r31; var_r31 = &lbl_1_bss_160; var_r31->unk04 = arg0; } -void fn_1_8E4(omObjData* arg0) { - StructBss160* var_r31; +void fn_1_8E4(omObjData *arg0) +{ + StructBss160 *var_r31; var_r31 = &lbl_1_bss_160; if (var_r31->unk00 != NULL) { @@ -494,7 +498,8 @@ void fn_1_8E4(omObjData* arg0) { CZoom = var_r31->unk38 + fn_1_304(6); } -void fn_1_F8C(void) { +void fn_1_F8C(void) +{ Hu3DCameraCreate(1); Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); Hu3DCameraPerspectiveSet(1, 45.0f, 0.1f, 10000.0f, 1.2f); @@ -504,7 +509,8 @@ void fn_1_F8C(void) { omAddObjEx(lbl_1_bss_0, 0x7FD9, 0, 0, -1, fn_1_8E4); } -void fn_1_10C0(void) { +void fn_1_10C0(void) +{ Vec sp20 = { 0.0f, 3000.0f, 1.0f }; Vec sp14 = { 0.0f, 0.0f, 0.0f }; Vec sp8 = { 0.0f, 1.0f, 0.0f }; @@ -514,22 +520,26 @@ void fn_1_10C0(void) { Hu3DShadowPosSet(&sp20, &sp8, &sp14); } -void fn_1_1184(s32 arg0) { +void fn_1_1184(s32 arg0) +{ if (lbl_1_bss_8 == 0) { lbl_1_bss_8 = 1; lbl_1_bss_4 = arg0 * 60; } } -s32 fn_1_11BC(void) { +s32 fn_1_11BC(void) +{ if (lbl_1_bss_8 == 3) { return 1; - } else { + } + else { return 0; } } -void fn_1_11E0(void) { +void fn_1_11E0(void) +{ if (lbl_1_bss_8 == 2) { lbl_1_bss_8 = 3; lbl_1_bss_4 = 30; @@ -538,7 +548,8 @@ void fn_1_11E0(void) { s32 lbl_1_data_12C = -1; -void fn_1_1218(omObjData* arg0) { +void fn_1_1218(omObjData *arg0) +{ switch (lbl_1_bss_8) { case 1: if (lbl_1_data_12C == -1) { @@ -567,15 +578,17 @@ void fn_1_1218(omObjData* arg0) { } } -void fn_1_13E8(void) { +void fn_1_13E8(void) +{ lbl_1_bss_4 = 0; lbl_1_bss_8 = 0; omAddObjEx(lbl_1_bss_0, 0x2000, 0, 0, -1, fn_1_1218); } // Identical to mgmodedll/main.c::fn_1_245CC -void fn_1_144C(s32 arg0, float arg1, float arg2, s32 arg3) { - WindowData* temp_r29; +void fn_1_144C(s32 arg0, float arg1, float arg2, s32 arg3) +{ + WindowData *temp_r29; float temp_f29; float temp_f28; float temp_f25; @@ -599,10 +612,12 @@ void fn_1_144C(s32 arg0, float arg1, float arg2, s32 arg3) { temp_f27 = 4.0f / temp_f25; if (var_f31 + 4.0f - (temp_f29 + temp_f25) >= 0.0f) { var_f31 = temp_f29 + temp_f25 - 4.0f; - } else { + } + else { if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { var_f31 = temp_f29; - } else { + } + else { var_f31 -= 2.0f; } } @@ -610,10 +625,12 @@ void fn_1_144C(s32 arg0, float arg1, float arg2, s32 arg3) { temp_f26 = 4.0f / temp_f24; if (var_f30 + 4.0f - (temp_f28 + temp_f24) >= 0.0f) { var_f30 = temp_f28 + temp_f24 - 4.0f; - } else { + } + else { if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { var_f30 = temp_f28; - } else { + } + else { var_f30 -= 2.0f; } } @@ -624,7 +641,8 @@ void fn_1_144C(s32 arg0, float arg1, float arg2, s32 arg3) { var_f21 = temp_f27; var_f22 = var_f30; var_f20 = temp_f26; - } else { + } + else { HuWinPosSet(arg0, temp_f29, temp_f28); HuWinScaleSet(arg0, 1.0f, 1.0f); var_f23 = temp_f29; @@ -639,15 +657,18 @@ void fn_1_144C(s32 arg0, float arg1, float arg2, s32 arg3) { if (i <= 10) { var_f23 = fn_1_113B0(var_f31, temp_f29, i, 10.0f); var_f21 = fn_1_113B0(temp_f27, 1.0f, i, 10.0f); - } else { + } + else { var_f22 = fn_1_113B0(var_f30, temp_f28, i - 10, 5.0f); var_f20 = fn_1_113B0(temp_f26, 1.0f, i - 10, 5.0f); } - } else { + } + else { if (i <= 10) { var_f22 = fn_1_113B0(temp_f28, var_f30, i, 10.0f); var_f20 = fn_1_113B0(1.0f, temp_f26, i, 10.0f); - } else { + } + else { var_f23 = fn_1_113B0(temp_f29, var_f31, i - 10, 5.0f); var_f21 = fn_1_113B0(1.0f, temp_f27, i - 10, 5.0f); } @@ -658,19 +679,22 @@ void fn_1_144C(s32 arg0, float arg1, float arg2, s32 arg3) { if (arg3 != 0) { HuWinPosSet(arg0, temp_f29, temp_f28); HuWinScaleSet(arg0, 1.0f, 1.0f); - } else { + } + else { HuWinPosSet(arg0, var_f31, var_f30); HuWinScaleSet(arg0, temp_f27, temp_f26); } HuPrcVSleep(); } -void fn_1_1A90(void) { +void fn_1_1A90(void) +{ HuWinInit(1); } -void fn_1_1AB4(s32 arg0, float arg1, float arg2) { - WindowData* temp_r31; +void fn_1_1AB4(s32 arg0, float arg1, float arg2) +{ + WindowData *temp_r31; float temp_f29; float temp_f28; float temp_f27; @@ -694,10 +718,12 @@ void fn_1_1AB4(s32 arg0, float arg1, float arg2) { temp_f25 = 4.0f / temp_f27; if (var_f31 + 4.0f - (temp_f29 + temp_f27) >= 0.0f) { var_f31 = temp_f29 + temp_f27 - 4.0f; - } else { + } + else { if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { var_f31 = temp_f29; - } else { + } + else { var_f31 = var_f31 - 2.0f; } } @@ -705,10 +731,12 @@ void fn_1_1AB4(s32 arg0, float arg1, float arg2) { temp_f24 = 4.0f / temp_f26; if (var_f30 + 4.0f - (temp_f28 + temp_f26) >= 0.0f) { var_f30 = temp_f28 + temp_f26 - 4.0f; - } else { + } + else { if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { var_f30 = temp_f28; - } else { + } + else { var_f30 = var_f30 - 2.0f; } } @@ -729,13 +757,10 @@ void fn_1_1AB4(s32 arg0, float arg1, float arg2) { HuPrcVSleep(); } -s32 fn_1_1F0C(float arg0, float arg1, float arg2, float arg3, s32 arg4) { +s32 fn_1_1F0C(float arg0, float arg1, float arg2, float arg3, s32 arg4) +{ s32 var_r31; - s32 sp18[][6] = { - { 0xFF, 0xFF, 0xCC, 0x00, 0x09, 0x09 }, - { 0xCC, 0xFF, 0xFF, 0x00, 0x09, 0x09 }, - { 0xFF, 0xCC, 0xFF, 0x00, 0x09, 0x09 } - }; + s32 sp18[][6] = { { 0xFF, 0xFF, 0xCC, 0x00, 0x09, 0x09 }, { 0xCC, 0xFF, 0xFF, 0x00, 0x09, 0x09 }, { 0xFF, 0xCC, 0xFF, 0x00, 0x09, 0x09 } }; var_r31 = HuWinCreate(arg0, arg1, arg2, arg3, 1); HuSprColorSet(winData[var_r31].group, 0, sp18[arg4][0], sp18[arg4][1], sp18[arg4][2]); @@ -748,12 +773,14 @@ s32 fn_1_1F0C(float arg0, float arg1, float arg2, float arg3, s32 arg4) { return var_r31; } -s32 fn_1_20F8(float arg0, float arg1, float arg2, float arg3, s32 arg4) { +s32 fn_1_20F8(float arg0, float arg1, float arg2, float arg3, s32 arg4) +{ return fn_1_1F0C(arg0, arg1, arg2, arg3, arg4); } -void fn_1_22E4(s32 arg0, float arg1, float arg2) { - WindowData* temp_r31; +void fn_1_22E4(s32 arg0, float arg1, float arg2) +{ + WindowData *temp_r31; float temp_f29; float temp_f28; float temp_f27; @@ -777,10 +804,12 @@ void fn_1_22E4(s32 arg0, float arg1, float arg2) { temp_f25 = 4.0f / temp_f27; if (var_f31 + 4.0f - (temp_f29 + temp_f27) >= 0.0f) { var_f31 = temp_f29 + temp_f27 - 4.0f; - } else { + } + else { if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { var_f31 = temp_f29; - } else { + } + else { var_f31 = var_f31 - 2.0f; } } @@ -788,10 +817,12 @@ void fn_1_22E4(s32 arg0, float arg1, float arg2) { temp_f24 = 4.0f / temp_f26; if (var_f30 + 4.0f - (temp_f28 + temp_f26) >= 0.0f) { var_f30 = temp_f28 + temp_f26 - 4.0f; - } else { + } + else { if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { var_f30 = temp_f28; - } else { + } + else { var_f30 = var_f30 - 2.0f; } } @@ -812,18 +843,21 @@ void fn_1_22E4(s32 arg0, float arg1, float arg2) { HuPrcVSleep(); } -void fn_1_273C(s32 arg0) { +void fn_1_273C(s32 arg0) +{ HuWinMesSet(arg0, MAKE_MESSID(29, 22)); HuPrcVSleep(); fn_1_144C(arg0, 0.5f, 0.5f, 0); HuWinKill(arg0); } -void fn_1_27A4(s32 arg0) { +void fn_1_27A4(s32 arg0) +{ fn_1_273C(arg0); } -void fn_1_280C(s32 arg0, s32 arg1) { +void fn_1_280C(s32 arg0, s32 arg1) +{ s32 var_r30; s32 temp_r28; s32 i; @@ -849,7 +883,8 @@ void fn_1_280C(s32 arg0, s32 arg1) { HuWinComKeyReset(); } -void fn_1_28F4(s32 arg0) { +void fn_1_28F4(s32 arg0) +{ s32 var_r31; s32 temp_r28; s32 i; @@ -870,20 +905,23 @@ void fn_1_28F4(s32 arg0) { var_r31 = HuWinChoiceGet(arg0, 1); if (var_r31 == -1 || var_r31 == 1) { lbl_1_bss_10 = 0; - } else { + } + else { lbl_1_bss_10 = 1; } HuWinComKeyReset(); } -void fn_1_2A10(s32 arg0, s32 arg1) { +void fn_1_2A10(s32 arg0, s32 arg1) +{ winData[arg0].mess_color = 0; winData[arg0].mess_shadow_color = 9; winData[arg0].attr |= 0x80; HuWinMesSet(arg0, arg1); } -void fn_1_2A94(float* arg0, s32 arg1) { +void fn_1_2A94(float *arg0, s32 arg1) +{ float spC[2]; HuWinMesMaxSizeGet(1, spC, arg1); @@ -895,7 +933,8 @@ void fn_1_2A94(float* arg0, s32 arg1) { } } -void fn_1_2B04(omObjData* arg0) { +void fn_1_2B04(omObjData *arg0) +{ s32 i; for (i = 0; i < 3; i++) { @@ -903,18 +942,20 @@ void fn_1_2B04(omObjData* arg0) { } } -void fn_1_2BAC(s32 arg0) { +void fn_1_2BAC(s32 arg0) +{ lbl_1_bss_920.unk04 = arg0; } -void fn_1_2BBC(omObjData* arg0) { - StructBss920* temp_r30; +void fn_1_2BBC(omObjData *arg0) +{ + StructBss920 *temp_r30; temp_r30 = arg0->data; switch (temp_r30->unk04) { case 2: fn_1_119A0(arg0, 9, 9, 1, 0); - Hu3DModelAttrReset(arg0->model[9], 1); + Hu3DModelAttrReset(arg0->model[9], HU3D_ATTR_DISPOFF); temp_r30->unk1C = 0; fn_1_230(1, 10, 4.0f); HuAudFXPlay(0x6CF); @@ -942,8 +983,8 @@ void fn_1_2BBC(omObjData* arg0) { fn_1_119A0(arg0, 6, 6, 1, 0); fn_1_119A0(arg0, 7, 7, 1, 0); fn_1_119A0(arg0, 8, 8, 0, 0); - Hu3DModelAttrReset(arg0->model[8], 1); - Hu3DModelAttrReset(arg0->model[9], 1); + Hu3DModelAttrReset(arg0->model[8], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(arg0->model[9], HU3D_ATTR_DISPOFF); HuAudFXPlay(0x6D0); break; case 10: @@ -951,8 +992,8 @@ void fn_1_2BBC(omObjData* arg0) { temp_r30->unk04 = 0; fn_1_119A0(arg0, 3, 13, 1, 1); fn_1_119A0(arg0, 4, 14, 1, 1); - Hu3DModelAttrSet(arg0->model[8], 1); - Hu3DModelAttrSet(arg0->model[9], 1); + Hu3DModelAttrSet(arg0->model[8], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[9], HU3D_ATTR_DISPOFF); } break; case 30: @@ -972,7 +1013,8 @@ void fn_1_2BBC(omObjData* arg0) { if (Hu3DMotionTimeGet(arg0->model[9]) >= 25.0f && temp_r30->unk1C == 0) { temp_r30->unk1C = 1; fn_1_230(1, 10, 4.0f); - } else if (Hu3DMotionTimeGet(arg0->model[9]) >= 40.0f && temp_r30->unk1C == 1) { + } + else if (Hu3DMotionTimeGet(arg0->model[9]) >= 40.0f && temp_r30->unk1C == 1) { temp_r30->unk1C = 2; fn_1_230(1, 10, 4.0f); } @@ -986,47 +1028,30 @@ void fn_1_2BBC(omObjData* arg0) { } } -void fn_1_3194(omObjData* arg0) { +void fn_1_3194(omObjData *arg0) +{ fn_1_2B04(arg0); fn_1_2BBC(arg0); } -void fn_1_3260(StructBss920* arg0) { - omObjData* temp_r29 = arg0->unk00; - s32 sp80[][3] = { - { 2, -1, 0 }, - { 2, -1, 0 }, - { 2, -1, 0 }, - { 1, 1, 0 }, - { 1, 1, 0 }, - { 2, -1, 0 }, - { 2, -1, 0 }, - { 2, -1, 0 }, - { 2, -1, 1 }, - { 2, -1, 1 } - }; - Vec sp8[] = { - { 0.0f, 0.0f, 0.0f }, - { 0.0f, 0.0f, -680.0f }, - { 0.0f, 0.0f, -680.0f }, - { 525.0f, 0.0f, -1150.0f }, - { -525.0f, 0.0f, -1150.0f }, - { 0.0f, 150.0f, 50.0f }, - { 0.0f, 150.0f, 0.0f }, - { 0.0f, 150.0f, 0.0f }, - { 0.0f, 0.0f, 0.0f }, - { 0.0f, 0.0f, 0.0f } - }; +void fn_1_3260(StructBss920 *arg0) +{ + omObjData *temp_r29 = arg0->unk00; + s32 sp80[][3] = { { 2, -1, 0 }, { 2, -1, 0 }, { 2, -1, 0 }, { 1, 1, 0 }, { 1, 1, 0 }, { 2, -1, 0 }, { 2, -1, 0 }, { 2, -1, 0 }, { 2, -1, 1 }, + { 2, -1, 1 } }; + Vec sp8[] = { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, -680.0f }, { 0.0f, 0.0f, -680.0f }, { 525.0f, 0.0f, -1150.0f }, { -525.0f, 0.0f, -1150.0f }, + { 0.0f, 150.0f, 50.0f }, { 0.0f, 150.0f, 0.0f }, { 0.0f, 150.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } }; s32 i; for (i = 0; i < 10; i++) { Hu3DModelPosSet(temp_r29->model[i], sp8[i].x, sp8[i].y, sp8[i].z); if (sp80[i][2] == 1) { - Hu3DModelAttrSet(temp_r29->model[i], 1); + Hu3DModelAttrSet(temp_r29->model[i], HU3D_ATTR_DISPOFF); } if (sp80[i][1] != -1) { fn_1_119A0(temp_r29, i, i + 10, 1, sp80[i][1]); - } else { + } + else { fn_1_119A0(temp_r29, i, i, 1, sp80[i][1]); } } @@ -1035,31 +1060,15 @@ void fn_1_3260(StructBss920* arg0) { arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; } -void fn_1_3410(omObjData* arg0) { - StructFn3410 sp80[] = { - { DATA_MAKE_NUM(DATADIR_M437, 36), 2, -1, 1, 0 }, - { DATA_MAKE_NUM(DATADIR_M437, 37), 2, -1, 1, 0 }, - { DATA_MAKE_NUM(DATADIR_M437, 38), 2, -1, 2, 0 }, - { DATA_MAKE_NUM(DATADIR_M437, 39), 1, DATA_MAKE_NUM(DATADIR_M437, 41), 2, 0 }, - { DATA_MAKE_NUM(DATADIR_M437, 40), 1, DATA_MAKE_NUM(DATADIR_M437, 42), 2, 0 }, - { DATA_MAKE_NUM(DATADIR_M437, 33), 2, -1, 0, 0 }, - { DATA_MAKE_NUM(DATADIR_M437, 34), 2, -1, 0, 0 }, - { DATA_MAKE_NUM(DATADIR_M437, 35), 2, -1, 0, 0 }, - { DATA_MAKE_NUM(DATADIR_M437, 43), 2, -1, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_M437, 44), 2, -1, 0, 1 } - }; - Vec sp8[] = { - { 0.0f, 0.0f, 0.0f }, - { 0.0f, 0.0f, -680.0f }, - { 0.0f, 0.0f, -680.0f }, - { 525.0f, 0.0f, -1150.0f }, - { -525.0f, 0.0f, -1150.0f }, - { 0.0f, 150.0f, 50.0f }, - { 0.0f, 150.0f, 0.0f }, - { 0.0f, 150.0f, 0.0f }, - { 0.0f, 0.0f, 0.0f }, - { 0.0f, 0.0f, 0.0f } - }; +void fn_1_3410(omObjData *arg0) +{ + StructFn3410 sp80[] = { { DATA_MAKE_NUM(DATADIR_M437, 36), 2, -1, 1, 0 }, { DATA_MAKE_NUM(DATADIR_M437, 37), 2, -1, 1, 0 }, + { DATA_MAKE_NUM(DATADIR_M437, 38), 2, -1, 2, 0 }, { DATA_MAKE_NUM(DATADIR_M437, 39), 1, DATA_MAKE_NUM(DATADIR_M437, 41), 2, 0 }, + { DATA_MAKE_NUM(DATADIR_M437, 40), 1, DATA_MAKE_NUM(DATADIR_M437, 42), 2, 0 }, { DATA_MAKE_NUM(DATADIR_M437, 33), 2, -1, 0, 0 }, + { DATA_MAKE_NUM(DATADIR_M437, 34), 2, -1, 0, 0 }, { DATA_MAKE_NUM(DATADIR_M437, 35), 2, -1, 0, 0 }, + { DATA_MAKE_NUM(DATADIR_M437, 43), 2, -1, 0, 1 }, { DATA_MAKE_NUM(DATADIR_M437, 44), 2, -1, 0, 1 } }; + Vec sp8[] = { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, -680.0f }, { 0.0f, 0.0f, -680.0f }, { 525.0f, 0.0f, -1150.0f }, { -525.0f, 0.0f, -1150.0f }, + { 0.0f, 150.0f, 50.0f }, { 0.0f, 150.0f, 0.0f }, { 0.0f, 150.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } }; s32 i; for (i = 0; i < 10; i++) { @@ -1071,16 +1080,18 @@ void fn_1_3410(omObjData* arg0) { Hu3DModelPosSet(arg0->model[i], sp8[i].x, sp8[i].y, sp8[i].z); if (sp80[i].unk0C == 1) { Hu3DModelShadowMapSet(arg0->model[i]); - } else if (sp80[i].unk0C == 2) { + } + else if (sp80[i].unk0C == 2) { Hu3DModelShadowSet(arg0->model[i]); } if (sp80[i].unk10 == 1) { - Hu3DModelAttrSet(arg0->model[i], 1); + Hu3DModelAttrSet(arg0->model[i], HU3D_ATTR_DISPOFF); Hu3DModelLayerSet(arg0->model[i], 1); } if (sp80[i].unk08 != -1) { fn_1_119A0(arg0, i, i + 10, 1, sp80[i].unk04); - } else { + } + else { fn_1_119A0(arg0, i, i, 1, sp80[i].unk04); } } @@ -1088,13 +1099,15 @@ void fn_1_3410(omObjData* arg0) { arg0->func = fn_1_3194; } -float fn_1_3694(void) { +float fn_1_3694(void) +{ return lbl_1_bss_150 / lbl_1_bss_154; } -float fn_1_36B4(void) { +float fn_1_36B4(void) +{ float temp_f31; - StructBss6BC* sp8; + StructBss6BC *sp8; temp_f31 = lbl_1_bss_150 / lbl_1_bss_154; sp8 = &lbl_1_bss_6BC[1]; @@ -1104,13 +1117,16 @@ float fn_1_36B4(void) { fn_1_5304(3); fn_1_5148(3, 5, 0, 0); fn_1_5270(5, 10, 2, 1); - } else if (temp_f31 > 0.75f) { + } + else if (temp_f31 > 0.75f) { fn_1_4AF8(2); fn_1_5304(2); - } else if (temp_f31 > 0.5f) { + } + else if (temp_f31 > 0.5f) { fn_1_4AF8(1); fn_1_5304(1); - } else { + } + else { fn_1_4AF8(0); fn_1_5304(0); } @@ -1118,21 +1134,23 @@ float fn_1_36B4(void) { return temp_f31; } -void fn_1_37D4(s32 arg0) { +void fn_1_37D4(s32 arg0) +{ lbl_1_bss_8FC.unk04 = 1; } -void fn_1_37E8(omObjData* arg0) { +void fn_1_37E8(omObjData *arg0) +{ Mtx sp8; - StructBss8FC* var_r30; + StructBss8FC *var_r30; var_r30 = &lbl_1_bss_8FC; switch (var_r30->unk04) { case 1: var_r30->unk04 = 2; - Hu3DModelAttrReset(arg0->model[0], 1); - Hu3DModelAttrReset(arg0->model[1], 1); - Hu3DModelAttrReset(arg0->model[2], 1); + Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(arg0->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); fn_1_119A0(arg0, 0, 3, 1, 0); fn_1_119A0(arg0, 2, 10, 1, 0); break; @@ -1156,24 +1174,29 @@ void fn_1_37E8(omObjData* arg0) { } } -s32 fn_1_3990(void) { +s32 fn_1_3990(void) +{ if (lbl_1_bss_15C <= lbl_1_bss_158) { return 1; - } else { + } + else { return 0; } } -void fn_1_39C4(float arg0) { +void fn_1_39C4(float arg0) +{ lbl_1_bss_158 += arg0; } -void fn_1_39E4(omObjData* arg0) { +void fn_1_39E4(omObjData *arg0) +{ if (lbl_1_bss_15C > lbl_1_bss_158) { lbl_1_bss_150 = lbl_1_bss_158 * (lbl_1_bss_154 / lbl_1_bss_15C); lbl_1_bss_14C = fn_1_11370(lbl_1_bss_14C, lbl_1_bss_150, 5.0f); Hu3DMotionTimeSet(arg0->model[1], lbl_1_bss_14C); - } else { + } + else { lbl_1_bss_158 = lbl_1_bss_15C; lbl_1_bss_150 = lbl_1_bss_158 * (lbl_1_bss_154 / lbl_1_bss_15C); lbl_1_bss_14C = fn_1_11370(lbl_1_bss_14C, lbl_1_bss_150, 5.0f); @@ -1181,19 +1204,21 @@ void fn_1_39E4(omObjData* arg0) { } } -void fn_1_3B50(void) { +void fn_1_3B50(void) +{ lbl_1_bss_8FC.unk08 = 1; } -void fn_1_3B64(omObjData* arg0) { +void fn_1_3B64(omObjData *arg0) +{ Mtx sp8; - StructBss8FC* var_r30; + StructBss8FC *var_r30; var_r30 = &lbl_1_bss_8FC; if (var_r30->unk08 == 1) { var_r30->unk08 = 0; - Hu3DModelAttrReset(arg0->model[3], 1); - Hu3DModelAttrSet(arg0->model[1], 1); + Hu3DModelAttrReset(arg0->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); Hu3DModelObjMtxGet(arg0->model[0], "m437a01-balloon-point", sp8); Hu3DModelPosSet(arg0->model[3], sp8[0][3], 0.0f, -250.0f); fn_1_119A0(arg0, 3, 6, 1, 0); @@ -1206,16 +1231,18 @@ void fn_1_3B64(omObjData* arg0) { } } -void fn_1_3CB8(s32 arg0) { +void fn_1_3CB8(s32 arg0) +{ lbl_1_bss_14 += arg0; if (lbl_1_bss_14 >= 3.0f) { lbl_1_bss_14 = 3.0f; } } -void fn_1_3D40(omObjData* arg0) { +void fn_1_3D40(omObjData *arg0) +{ float temp_f31; - StructBss8FC* sp8; + StructBss8FC *sp8; s32 temp_r31; sp8 = &lbl_1_bss_8FC; @@ -1233,32 +1260,35 @@ void fn_1_3D40(omObjData* arg0) { } } -void fn_1_3F44(omObjData* arg0) { +void fn_1_3F44(omObjData *arg0) +{ fn_1_37E8(arg0); fn_1_39E4(arg0); fn_1_3D40(arg0); fn_1_3B64(arg0); } -void fn_1_4538(StructBss8FC* arg0) { - omObjData* temp_r31; +void fn_1_4538(StructBss8FC *arg0) +{ + omObjData *temp_r31; temp_r31 = arg0->unk00; omSetTra(temp_r31, 0.0f, 210.0f, -250.0f); - Hu3DModelAttrSet(temp_r31->model[0], 1); - Hu3DModelAttrSet(temp_r31->model[1], 1); + Hu3DModelAttrSet(temp_r31->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(temp_r31->model[1], HU3D_ATTR_DISPOFF); lbl_1_bss_150 = 0.0f; lbl_1_bss_154 = Hu3DMotionMaxTimeGet(temp_r31->model[1]); lbl_1_bss_14C = 0.0f; lbl_1_bss_158 = 0.0f; lbl_1_bss_15C = rand8() % 7 + 30; - Hu3DModelAttrSet(temp_r31->model[2], 1); + Hu3DModelAttrSet(temp_r31->model[2], HU3D_ATTR_DISPOFF); temp_r31->work[0] = temp_r31->work[1] = temp_r31->work[2] = temp_r31->work[3] = 0; arg0->unk14 = arg0->unk18 = arg0->unk1C = arg0->unk20 = 0; arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; } -void fn_1_46C0(omObjData* arg0) { +void fn_1_46C0(omObjData *arg0) +{ arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 24)); arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 28)); arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 29)); @@ -1278,17 +1308,19 @@ void fn_1_46C0(omObjData* arg0) { arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 27)); arg0->motion[6] = Hu3DMotionIDGet(arg0->model[3]); Hu3DModelLayerSet(arg0->model[3], 2); - Hu3DModelAttrSet(arg0->model[3], 1); + Hu3DModelAttrSet(arg0->model[3], HU3D_ATTR_DISPOFF); arg0->func = fn_1_3F44; } -void fn_1_4928(s32 arg0) { +void fn_1_4928(s32 arg0) +{ lbl_1_bss_8D4.unk04 = arg0; } -void fn_1_4938(omObjData* arg0) { +void fn_1_4938(omObjData *arg0) +{ float sp8; - StructBss8D4* temp_r31; + StructBss8D4 *temp_r31; sp8 = 0.0f; temp_r31 = arg0->data; @@ -1323,30 +1355,36 @@ void fn_1_4938(omObjData* arg0) { } } -void fn_1_4AF8(s32 arg0) { +void fn_1_4AF8(s32 arg0) +{ s32 sp8[] = { 4, 5, 6, 7, 8 }; if (arg0 <= 3) { fn_1_11B18(lbl_1_bss_8D4.unk00, 0, sp8[arg0], 120, 1); - } else { + } + else { fn_1_11B18(lbl_1_bss_8D4.unk00, 0, sp8[arg0], 5, 0); } } -void fn_1_4BAC(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { +void fn_1_4BAC(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +{ if (arg3 != 0) { fn_1_119A0(lbl_1_bss_8D4.unk00, 0, arg0, arg1, arg2); - } else { + } + else { fn_1_11B18(lbl_1_bss_8D4.unk00, 0, arg0, arg1, arg2); } } -void fn_1_4C40(omObjData* arg0) { +void fn_1_4C40(omObjData *arg0) +{ fn_1_4938(arg0); } -void fn_1_4E00(StructBss8D4* arg0) { - omObjData* temp_r30; +void fn_1_4E00(StructBss8D4 *arg0) +{ + omObjData *temp_r30; temp_r30 = arg0->unk00; omSetTra(temp_r30, 0.0f, 37.0f, -565.0f); @@ -1357,7 +1395,8 @@ void fn_1_4E00(StructBss8D4* arg0) { arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; } -void fn_1_4EE0(omObjData* arg0) { +void fn_1_4EE0(omObjData *arg0) +{ arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 45)); arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 46)); arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 47)); @@ -1376,45 +1415,48 @@ void fn_1_4EE0(omObjData* arg0) { arg0->func = fn_1_4C40; } -void fn_1_5148(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { +void fn_1_5148(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +{ if (arg3 != 0) { fn_1_119A0(lbl_1_bss_6BC[0].unk00, 0, arg0, arg1, arg2); - } else { + } + else { fn_1_11B18(lbl_1_bss_6BC[0].unk00, 0, arg0, arg1, arg2); } } -void fn_1_51DC(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { +void fn_1_51DC(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +{ if (arg3 != 0) { fn_1_119A0(lbl_1_bss_6BC[1].unk00, 0, arg0, arg1, arg2); - } else { + } + else { fn_1_11B18(lbl_1_bss_6BC[1].unk00, 0, arg0, arg1, arg2); } } -void fn_1_5270(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { +void fn_1_5270(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +{ if (arg3 != 0) { fn_1_119A0(lbl_1_bss_6BC[0].unk00, 1, arg0, arg1, arg2); - } else { + } + else { fn_1_11B18(lbl_1_bss_6BC[0].unk00, 1, arg0, arg1, arg2); } } -void fn_1_5304(s32 arg0) { - StructBss6BC* var_r31; +void fn_1_5304(s32 arg0) +{ + StructBss6BC *var_r31; var_r31 = &lbl_1_bss_6BC[1]; var_r31->unk04 = arg0 + 1; } -void fn_1_532C(omObjData* arg0) { - StructBss6BC* temp_r31 = arg0->data; - Vec sp38[] = { - { 480.0f, 0.0f, -1250.0f }, - { 400.0f, 37.0f, -850.0f }, - { 400.0f, 37.0f, -600.0f }, - { 400.0f, 37.0f, -425.0f } - }; +void fn_1_532C(omObjData *arg0) +{ + StructBss6BC *temp_r31 = arg0->data; + Vec sp38[] = { { 480.0f, 0.0f, -1250.0f }, { 400.0f, 37.0f, -850.0f }, { 400.0f, 37.0f, -600.0f }, { 400.0f, 37.0f, -425.0f } }; if (arg0->work[0] == 0) { return; @@ -1456,13 +1498,15 @@ void fn_1_532C(omObjData* arg0) { } } -void fn_1_5658(omObjData* arg0) { +void fn_1_5658(omObjData *arg0) +{ fn_1_532C(arg0); } -void fn_1_5984(StructBss6BC* arg0) { +void fn_1_5984(StructBss6BC *arg0) +{ s32 var_r29; - omObjData* temp_r30; + omObjData *temp_r30; var_r29 = arg0->unk00->work[0]; temp_r30 = arg0->unk00; @@ -1470,7 +1514,8 @@ void fn_1_5984(StructBss6BC* arg0) { omSetTra(temp_r30, 400.0f, 37.0f, -425.0f); omSetRot(temp_r30, 0.0f, -15.0f, 0.0f); fn_1_119A0(temp_r30, 0, 0, 1, 1); - } else { + } + else { omSetTra(temp_r30, -400.0f, 37.0f, -425.0f); fn_1_119A0(temp_r30, 0, 0, 1, 1); fn_1_119A0(temp_r30, 1, 5, 1, 1); @@ -1480,8 +1525,9 @@ void fn_1_5984(StructBss6BC* arg0) { arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; } -void fn_1_5AD8(omObjData* arg0) { - StructBss6BC* temp_r29; +void fn_1_5AD8(omObjData *arg0) +{ + StructBss6BC *temp_r29; s32 temp_r30; temp_r30 = arg0->work[0]; @@ -1503,7 +1549,8 @@ void fn_1_5AD8(omObjData* arg0) { fn_1_119A0(arg0, 0, 0, 1, 1); fn_1_164B0(lbl_1_bss_0, &temp_r29->unk24, arg0->model[0], "g007m0-skl_at"); fn_1_15DC8(&temp_r29->unk24); - } else { + } + else { arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 60)); arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 61)); arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M437, 62)); @@ -1524,8 +1571,9 @@ void fn_1_5AD8(omObjData* arg0) { arg0->func = fn_1_5658; } -void fn_1_5FBC(void) { - StructBss1DC* temp_r31; +void fn_1_5FBC(void) +{ + StructBss1DC *temp_r31; s32 sp8[4]; s32 i; @@ -1547,26 +1595,30 @@ void fn_1_5FBC(void) { } } -void fn_1_610C(s32 arg0, s32 arg1) { - StructBss1DC* temp_r31; +void fn_1_610C(s32 arg0, s32 arg1) +{ + StructBss1DC *temp_r31; temp_r31 = &lbl_1_bss_1DC[arg0]; temp_r31->unk04 = arg1; } -void fn_1_6134(omObjData* arg0) { - StructBss1DC* var_r30; +void fn_1_6134(omObjData *arg0) +{ + StructBss1DC *var_r30; var_r30 = arg0->data; if (var_r30->unk04 != 0) { - Hu3DModelAttrReset(arg0->model[0], 1); - } else { - Hu3DModelAttrSet(arg0->model[0], 1); + Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); } } -void fn_1_6198(s32 arg0, s32 arg1) { - StructBss1DC* temp_r31; +void fn_1_6198(s32 arg0, s32 arg1) +{ + StructBss1DC *temp_r31; temp_r31 = &lbl_1_bss_1DC[arg0]; temp_r31->unk08 = arg1; @@ -1574,15 +1626,16 @@ void fn_1_6198(s32 arg0, s32 arg1) { fn_1_11B18(temp_r31->unk00, 0, 2, 10, 0); } -void fn_1_6200(omObjData* arg0) { - StructBss1DC* temp_r30; - HsfMaterial* var_r31; - HsfData* temp_r28; - char** temp_r27; +void fn_1_6200(omObjData *arg0) +{ + StructBss1DC *temp_r30; + HsfMaterial *var_r31; + HsfData *temp_r28; + char **temp_r27; s32 var_r23; s32 i, j; - ModelData* temp_r25; - HsfAttribute* temp_r24; + ModelData *temp_r25; + HsfAttribute *temp_r24; temp_r30 = &lbl_1_bss_1DC[arg0->work[0]]; if (temp_r30->unk08 != 1) { @@ -1610,7 +1663,8 @@ void fn_1_6200(omObjData* arg0) { var_r31->color[2] = 0; } } - } else { + } + else { temp_r27 = CharModelTexNameGet(temp_r30->unk3C, 2); for (i = 0; i < temp_r28->materialCnt; i++, var_r31++) { var_r23 = 1; @@ -1644,15 +1698,17 @@ void fn_1_6200(omObjData* arg0) { } } -void fn_1_6580(s32 arg0, s32 arg1, s32 arg2) { - StructBss1DC* temp_r31; +void fn_1_6580(s32 arg0, s32 arg1, s32 arg2) +{ + StructBss1DC *temp_r31; temp_r31 = &lbl_1_bss_1DC[arg0]; if (temp_r31->unk0C == 0) { temp_r31->unk0C = arg1; temp_r31->unk10 = arg2; temp_r31->unk28 = 0; - } else if (temp_r31->unk0C == 2) { + } + else if (temp_r31->unk0C == 2) { temp_r31->unk10 = 0; temp_r31->unk28 = 1; } @@ -1661,13 +1717,14 @@ void fn_1_6580(s32 arg0, s32 arg1, s32 arg2) { float lbl_1_data_188 = -1.0f; // TODO: https://decomp.me/scratch/dek39 -void fn_1_65E0(omObjData* arg0) { +void fn_1_65E0(omObjData *arg0) +{ Mtx sp60; - StructBss1DC* temp_r31; - StructBss1DC* var_r26; - StructBss1DC* temp_r27; - StructBss8FC* var_r28; - StructBss8FC* spC; + StructBss1DC *temp_r31; + StructBss1DC *var_r26; + StructBss1DC *temp_r27; + StructBss8FC *var_r28; + StructBss8FC *spC; s32 var_r29; temp_r31 = arg0->data; @@ -1740,9 +1797,11 @@ void fn_1_65E0(omObjData* arg0) { var_r28 = &lbl_1_bss_8FC; if (lbl_1_data_188 <= 135.0f) { fn_1_119A0(var_r28->unk00, 0, 2, 5, 0); - } else if (lbl_1_data_188 <= 245.0f) { + } + else if (lbl_1_data_188 <= 245.0f) { fn_1_119A0(var_r28->unk00, 0, 1, 5, 0); - } else { + } + else { fn_1_119A0(var_r28->unk00, 0, 0, 5, 0); } HuAudFXPlay(0x6F5); @@ -1758,11 +1817,13 @@ void fn_1_65E0(omObjData* arg0) { fn_1_39C4(1.0f); fn_1_3CB8(1.0f); HuAudFXPlay(0x6F6); - } else if (lbl_1_data_188 <= 245.0f) { + } + else if (lbl_1_data_188 <= 245.0f) { fn_1_39C4(2.0f); fn_1_3CB8(2.0f); HuAudFXPlay(0x6F7); - } else { + } + else { fn_1_39C4(3.0f); fn_1_3CB8(3.0f); HuAudFXPlay(0x6F8); @@ -1779,8 +1840,9 @@ void fn_1_65E0(omObjData* arg0) { } } -void fn_1_70F8(s32 arg0, s32 arg1) { - StructBss1DC* temp_r31; +void fn_1_70F8(s32 arg0, s32 arg1) +{ + StructBss1DC *temp_r31; temp_r31 = &lbl_1_bss_1DC[arg0]; temp_r31->unk14 = arg1; @@ -1788,14 +1850,10 @@ void fn_1_70F8(s32 arg0, s32 arg1) { temp_r31->unk28 = 0; } -void fn_1_7134(omObjData* arg0) { - StructBss1DC* temp_r31 = &lbl_1_bss_1DC[arg0->work[0]]; - Vec sp14[] = { - { 0.0f, 0.0f, 0.0f }, - { -1000.0f, 0.0f, 800.0f }, - { -200.0f, 0.0f, 800.0f }, - { 1000.0f, 0.0f, 800.0f } - }; +void fn_1_7134(omObjData *arg0) +{ + StructBss1DC *temp_r31 = &lbl_1_bss_1DC[arg0->work[0]]; + Vec sp14[] = { { 0.0f, 0.0f, 0.0f }, { -1000.0f, 0.0f, 800.0f }, { -200.0f, 0.0f, 800.0f }, { 1000.0f, 0.0f, 800.0f } }; if (temp_r31->unk14 < 1) { return; @@ -1809,16 +1867,18 @@ void fn_1_7134(omObjData* arg0) { } } -void fn_1_72CC(omObjData* arg0) { +void fn_1_72CC(omObjData *arg0) +{ fn_1_6134(arg0); fn_1_6200(arg0); fn_1_65E0(arg0); fn_1_7134(arg0); } -void fn_1_74B0(StructBss1DC* arg0) { +void fn_1_74B0(StructBss1DC *arg0) +{ s32 var_r29; - omObjData* temp_r30; + omObjData *temp_r30; var_r29 = arg0->unk00->work[0]; temp_r30 = arg0->unk00; @@ -1834,8 +1894,9 @@ void fn_1_74B0(StructBss1DC* arg0) { arg0->unk14 = 0; } -void fn_1_7678(omObjData* arg0) { - StructBss1DC* temp_r30; +void fn_1_7678(omObjData *arg0) +{ + StructBss1DC *temp_r30; s32 temp_r29; temp_r29 = arg0->work[0]; @@ -1866,17 +1927,19 @@ void fn_1_7678(omObjData* arg0) { arg0->func = fn_1_72CC; } -void fn_1_79E0(void) { +void fn_1_79E0(void) +{ lbl_1_bss_68.unk04 = 1; lbl_1_bss_68.unk08 = 1; lbl_1_bss_68.unk14 = 0; } -void fn_1_7A14(omObjData* arg0) { +void fn_1_7A14(omObjData *arg0) +{ Mtx sp8; - StructBss68* temp_r31; - StructBss8D4* var_r29; - StructBss6BC* var_r25; + StructBss68 *temp_r31; + StructBss8D4 *var_r29; + StructBss6BC *var_r25; s32 var_r24; s32 i; @@ -1928,9 +1991,11 @@ void fn_1_7A14(omObjData* arg0) { } if (temp_r31->unkC4[i] < 8.0f) { temp_r31->unkA4[i] += 0.025f; - } else if (temp_r31->unkC4[i] < 23.0f) { + } + else if (temp_r31->unkC4[i] < 23.0f) { temp_r31->unkA4[i] = 0.7f; - } else if (temp_r31->unkC4[i] < 31.0f) { + } + else if (temp_r31->unkC4[i] < 31.0f) { temp_r31->unkA4[i] -= 0.1f; if (temp_r31->unkA4[i] < 0.0f) { temp_r31->unkA4[i] = 0.0f; @@ -1953,7 +2018,8 @@ void fn_1_7A14(omObjData* arg0) { if (temp_r31->unk14++ == 120) { temp_r31->unk08 = 0; Hu3DMotionSpeedSet(var_r29->unk00->model[0], 1.0f); - } else if (temp_r31->unk14 >= 180) { + } + else if (temp_r31->unk14 >= 180) { temp_r31->unk04 = 4; } break; @@ -1967,12 +2033,14 @@ void fn_1_7A14(omObjData* arg0) { } } -void fn_1_82E0(omObjData* arg0) { +void fn_1_82E0(omObjData *arg0) +{ fn_1_7A14(arg0); } -void fn_1_8308(StructBss68* arg0) { - omObjData* temp_r29; +void fn_1_8308(StructBss68 *arg0) +{ + omObjData *temp_r29; s32 i; temp_r29 = arg0->unk00; @@ -1992,14 +2060,16 @@ void fn_1_8308(StructBss68* arg0) { arg0->unk14 = arg0->unk18 = arg0->unk1C = arg0->unk20 = 0; } -void fn_1_84C4(omObjData* arg0) { +void fn_1_84C4(omObjData *arg0) +{ s32 i; for (i = 1; i < 7; i++) { if (i % 2 == 0) { arg0->model[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 55)); arg0->motion[i] = Hu3DMotionIDGet(arg0->model[i]); - } else { + } + else { arg0->model[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M437, 56)); arg0->motion[i] = Hu3DMotionIDGet(arg0->model[i]); } @@ -2013,8 +2083,9 @@ void fn_1_84C4(omObjData* arg0) { arg0->func = fn_1_82E0; } -void fn_1_8684(void) { - StructBss160* var_r31; +void fn_1_8684(void) +{ + StructBss160 *var_r31; var_r31 = &lbl_1_bss_160; var_r31->unk14 = 0.0f; @@ -2027,8 +2098,9 @@ void fn_1_8684(void) { fn_1_12E14(var_r31, 200.0f); } -void fn_1_8734(void) { - StructBss160* var_r31; +void fn_1_8734(void) +{ + StructBss160 *var_r31; StructBss160 sp8; var_r31 = &lbl_1_bss_160; @@ -2042,8 +2114,9 @@ void fn_1_8734(void) { fn_1_15544(var_r31, &sp8, var_r31->unk40++, 30.0f, 5.0f); } -void fn_1_8824(void) { - StructBss160* var_r31; +void fn_1_8824(void) +{ + StructBss160 *var_r31; var_r31 = &lbl_1_bss_160; var_r31->unk14 = 0.0f; @@ -2056,8 +2129,9 @@ void fn_1_8824(void) { fn_1_12E14(var_r31, 200.0f); } -void fn_1_88D4(void) { - StructBss160* var_r31; +void fn_1_88D4(void) +{ + StructBss160 *var_r31; var_r31 = &lbl_1_bss_160; var_r31->unk14 = 0.0f; @@ -2070,8 +2144,9 @@ void fn_1_88D4(void) { fn_1_12E14(var_r31, 45.0f); } -void fn_1_8984(void) { - StructBss160* var_r31; +void fn_1_8984(void) +{ + StructBss160 *var_r31; var_r31 = &lbl_1_bss_160; var_r31->unk14 = 0.0f; @@ -2084,8 +2159,9 @@ void fn_1_8984(void) { fn_1_12E14(var_r31, 30.0f); } -void fn_1_8A34(void) { - StructBss160* var_r31; +void fn_1_8A34(void) +{ + StructBss160 *var_r31; StructBss160 sp8; var_r31 = &lbl_1_bss_160; @@ -2099,8 +2175,9 @@ void fn_1_8A34(void) { fn_1_13658(var_r31, &sp8, var_r31->unk40++, 30.0f, 10.0f); } -void fn_1_8B24(void) { - StructBss160* var_r31; +void fn_1_8B24(void) +{ + StructBss160 *var_r31; var_r31 = &lbl_1_bss_160; var_r31->unk14 = 0.0f; @@ -2113,8 +2190,9 @@ void fn_1_8B24(void) { fn_1_12E14(var_r31, 20.0f); } -void fn_1_8BD4(void) { - StructBss160* var_r31; +void fn_1_8BD4(void) +{ + StructBss160 *var_r31; var_r31 = &lbl_1_bss_160; var_r31->unk14 = 0.0f; @@ -2127,8 +2205,9 @@ void fn_1_8BD4(void) { fn_1_12E14(var_r31, 20.0f); } -void fn_1_8C84(s32 arg0) { - StructBss160* var_r23; +void fn_1_8C84(s32 arg0) +{ + StructBss160 *var_r23; var_r23 = &lbl_1_bss_160; fn_1_12ABC(var_r23); @@ -2160,7 +2239,8 @@ void fn_1_8C84(s32 arg0) { } } -void fn_1_8DA4(void) { +void fn_1_8DA4(void) +{ float sp18[] = { 0.0f, 0.0f }; s32 var_r31; @@ -2181,7 +2261,8 @@ void fn_1_8DA4(void) { HuPrcEnd(); } -void fn_1_9320(void) { +void fn_1_9320(void) +{ float sp10[] = { 0.0f, 0.0f }; s32 var_r31; @@ -2200,7 +2281,8 @@ void fn_1_9320(void) { HuPrcEnd(); } -void fn_1_96D8(void) { +void fn_1_96D8(void) +{ float sp10[] = { 0.0f, 0.0f }; s32 var_r31; @@ -2217,18 +2299,11 @@ void fn_1_96D8(void) { HuPrcEnd(); } -void fn_1_9B2C(s32 arg0) { +void fn_1_9B2C(s32 arg0) +{ float sp10[2] = { 0.0f, 0.0f }; - s32 sp18[] = { - MAKE_MESSID(29, 6), - MAKE_MESSID(29, 66), - MAKE_MESSID(29, 68), - MAKE_MESSID(29, 70), - MAKE_MESSID(29, 72), - MAKE_MESSID(29, 74), - MAKE_MESSID(29, 76), - -1 - }; + s32 sp18[] = { MAKE_MESSID(29, 6), MAKE_MESSID(29, 66), MAKE_MESSID(29, 68), MAKE_MESSID(29, 70), MAKE_MESSID(29, 72), MAKE_MESSID(29, 74), + MAKE_MESSID(29, 76), -1 }; s32 var_r31; if (sp18[arg0] == -1) { @@ -2246,18 +2321,11 @@ void fn_1_9B2C(s32 arg0) { fn_1_27A4(var_r31); } -void fn_1_9FA0(void) { +void fn_1_9FA0(void) +{ float sp10[2] = { 0.0f, 0.0f }; - s32 sp18[] = { - MAKE_MESSID(29, 5), - MAKE_MESSID(29, 65), - MAKE_MESSID(29, 67), - MAKE_MESSID(29, 69), - MAKE_MESSID(29, 71), - MAKE_MESSID(29, 73), - MAKE_MESSID(29, 75), - MAKE_MESSID(29, 77) - }; + s32 sp18[] = { MAKE_MESSID(29, 5), MAKE_MESSID(29, 65), MAKE_MESSID(29, 67), MAKE_MESSID(29, 69), MAKE_MESSID(29, 71), MAKE_MESSID(29, 73), + MAKE_MESSID(29, 75), MAKE_MESSID(29, 77) }; s32 i; s32 var_r30; @@ -2279,7 +2347,8 @@ void fn_1_9FA0(void) { HuPrcEnd(); } -void fn_1_A440(void) { +void fn_1_A440(void) +{ float sp10[] = { 0.0f, 0.0f }; s32 var_r31; @@ -2296,10 +2365,10 @@ void fn_1_A440(void) { HuPrcEnd(); } -void fn_1_A860(void) { -} +void fn_1_A860(void) { } -s32 fn_1_A864(void) { +s32 fn_1_A864(void) +{ if (fn_1_11854(&lbl_1_bss_50, 0) == 80) { fn_1_8C84(1); lbl_1_bss_968.unk00 = HuAudSeqPlay(6); @@ -2322,93 +2391,109 @@ s32 fn_1_A864(void) { return 0; } -void fn_1_A9E8(void) { +void fn_1_A9E8(void) +{ HuPrcChildCreate(fn_1_8DA4, 100, 0x2000, 0, HuPrcCurrentGet()); } -s32 fn_1_AA24(void) { +s32 fn_1_AA24(void) +{ if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_50, 1) != 0) { return fn_1_116C4(&lbl_1_bss_50); } return 0; } -void fn_1_AA80(void) { +void fn_1_AA80(void) +{ HuPrcChildCreate(fn_1_9320, 100, 0x2000, 0, HuPrcCurrentGet()); } -s32 fn_1_AABC(void) { +s32 fn_1_AABC(void) +{ if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_50, 1) != 0) { return fn_1_116C4(&lbl_1_bss_50); } return 0; } -void fn_1_AB18(void) { +void fn_1_AB18(void) +{ fn_1_8C84(10); } -s32 fn_1_AB68(void) { +s32 fn_1_AB68(void) +{ if (fn_1_11854(&lbl_1_bss_50, 1) != 0) { return fn_1_116C4(&lbl_1_bss_50); } return 0; } -void fn_1_ABB0(void) { +void fn_1_ABB0(void) +{ HuPrcChildCreate(fn_1_96D8, 100, 0x2000, 0, HuPrcCurrentGet()); } -s32 fn_1_ABEC(void) { +s32 fn_1_ABEC(void) +{ if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_50, 1) != 0) { if (lbl_1_bss_10 != 0) { return fn_1_116C4(&lbl_1_bss_50); - } else { + } + else { return fn_1_117C0(&lbl_1_bss_50, 6); } } return 0; } -void fn_1_AC70(void) { +void fn_1_AC70(void) +{ fn_1_4BAC(4, 60, 1, 1); HuPrcChildCreate(fn_1_9FA0, 100, 0x2000, 0, HuPrcCurrentGet()); } -s32 fn_1_ACCC(void) { +s32 fn_1_ACCC(void) +{ if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_50, 1) != 0) { return fn_1_116C4(&lbl_1_bss_50); } return 0; } -void fn_1_AD28(void) { +void fn_1_AD28(void) +{ fn_1_8C84(11); fn_1_4BAC(0, 60, 1, 0); } -s32 fn_1_AD98(void) { +s32 fn_1_AD98(void) +{ if (fn_1_11854(&lbl_1_bss_50, 1) != 0) { return fn_1_116C4(&lbl_1_bss_50); } return 0; } -void fn_1_ADE0(void) { +void fn_1_ADE0(void) +{ HuPrcChildCreate(fn_1_A440, 100, 0x2000, 0, HuPrcCurrentGet()); } -s32 fn_1_AE1C(void) { +s32 fn_1_AE1C(void) +{ if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_50, 1) != 0) { return fn_1_116C4(&lbl_1_bss_50); } return 0; } -void fn_1_AE78(void) { - StructBss6BC* var_r30; - StructBss1DC* sp8; - StructBss8FC* var_r29; +void fn_1_AE78(void) +{ + StructBss6BC *var_r30; + StructBss1DC *sp8; + StructBss8FC *var_r29; s32 i; fn_1_8C84(5); @@ -2423,19 +2508,16 @@ void fn_1_AE78(void) { HuAudSeqFadeOut(lbl_1_bss_968.unk00, 1000); } -s32 fn_1_AF4C(void) { - Vec sp20[] = { - { -200.0f, 0.0f, -250.0f }, - { -340.0f, 0.0f, -250.0f }, - { -490.0f, 0.0f, -250.0f }, - { -640.0f, 0.0f, -250.0f } - }; +s32 fn_1_AF4C(void) +{ + Vec sp20[] = { { -200.0f, 0.0f, -250.0f }, { -340.0f, 0.0f, -250.0f }, { -490.0f, 0.0f, -250.0f }, { -640.0f, 0.0f, -250.0f } }; s32 i; for (i = 0; i < 4; i++) { if (lbl_1_bss_1DC[i].unk3C == 7) { fn_1_11CE0(lbl_1_bss_1DC[i].unk00, sp20[i], 90.0f, 9.0f, 30.0f, 15.0f, 3); - } else { + } + else { fn_1_11CE0(lbl_1_bss_1DC[i].unk00, sp20[i], 90.0f, 9.0f, 30.0f, 15.0f, 1); } } @@ -2449,24 +2531,17 @@ s32 fn_1_AF4C(void) { return 0; } -StructData204 lbl_1_data_204[] = { - { fn_1_A860, fn_1_A864, 300 }, - { fn_1_A9E8, fn_1_AA24, 60 }, - { fn_1_AA80, fn_1_AABC, 60 }, - { fn_1_AB18, fn_1_AB68, 45 }, - { fn_1_ABB0, fn_1_ABEC, 60 }, - { fn_1_AC70, fn_1_ACCC, 60 }, - { fn_1_AD28, fn_1_AD98, 45 }, - { fn_1_ADE0, fn_1_AE1C, 60 }, - { fn_1_AE78, fn_1_AF4C, 120 }, - { NULL, NULL, -1 } -}; +StructData204 lbl_1_data_204[] = { { fn_1_A860, fn_1_A864, 300 }, { fn_1_A9E8, fn_1_AA24, 60 }, { fn_1_AA80, fn_1_AABC, 60 }, + { fn_1_AB18, fn_1_AB68, 45 }, { fn_1_ABB0, fn_1_ABEC, 60 }, { fn_1_AC70, fn_1_ACCC, 60 }, { fn_1_AD28, fn_1_AD98, 45 }, + { fn_1_ADE0, fn_1_AE1C, 60 }, { fn_1_AE78, fn_1_AF4C, 120 }, { NULL, NULL, -1 } }; -void fn_1_B194(void) { +void fn_1_B194(void) +{ fn_1_11668(&lbl_1_bss_50, lbl_1_data_204); } -s32 fn_1_B1C4(void) { +s32 fn_1_B1C4(void) +{ if (lbl_1_bss_50.unk08 != NULL) { lbl_1_bss_50.unk08(); lbl_1_bss_50.unk08 = NULL; @@ -2477,13 +2552,15 @@ s32 fn_1_B1C4(void) { return 0; } -float fn_1_B250(void) { +float fn_1_B250(void) +{ return lbl_1_bss_15C - lbl_1_bss_158; } -void fn_1_B270(void) { - StructBss944* var_r30; - StructBss1DC* temp_r31; +void fn_1_B270(void) +{ + StructBss944 *var_r30; + StructBss1DC *temp_r31; var_r30 = &lbl_1_bss_944; temp_r31 = &lbl_1_bss_1DC[var_r30->unk10]; @@ -2492,16 +2569,18 @@ void fn_1_B270(void) { if (temp_r31->unk00->work[1] == 0) { temp_r31->unk00->work[1] = rand8() % 3 + 1; } - } else { + } + else { temp_r31->unk00->work[1] = rand8() % 3 + 1; } temp_r31->unk00->work[2] = 0; temp_r31->unk00->work[3] = rand8() % 60 + 60; } -s32 fn_1_B3F0(s32 arg0) { - StructBss944* var_r30; - StructBss1DC* temp_r31; +s32 fn_1_B3F0(s32 arg0) +{ + StructBss944 *var_r30; + StructBss1DC *temp_r31; float temp_f31; var_r30 = &lbl_1_bss_944; @@ -2527,8 +2606,9 @@ s32 fn_1_B3F0(s32 arg0) { return 0; } -float fn_1_B4F4(s32 arg0, s32 arg1) { - StructBss1DC* temp_r31; +float fn_1_B4F4(s32 arg0, s32 arg1) +{ + StructBss1DC *temp_r31; temp_r31 = &lbl_1_bss_1DC[arg0]; if (temp_r31->unk34 != 0) { @@ -2536,18 +2616,21 @@ float fn_1_B4F4(s32 arg0, s32 arg1) { if (temp_r31->unk00->work[2] == 0) { temp_r31->unk00->work[2] = 1; fn_1_6580(arg0, 1, 1); - } else if (fn_1_B3F0(temp_r31->unk00->work[1]) != 0) { + } + else if (fn_1_B3F0(temp_r31->unk00->work[1]) != 0) { fn_1_6580(arg0, 1, 0); } } - } else if ((HuPadBtnDown[temp_r31->unk40] & 0x100) || ((HuPadBtnDown[temp_r31->unk40] & 0x40) && temp_r31->unk0C == 2)) { + } + else if ((HuPadBtnDown[temp_r31->unk40] & 0x100) || ((HuPadBtnDown[temp_r31->unk40] & 0x40) && temp_r31->unk0C == 2)) { fn_1_6580(arg0, 1, 0); } return temp_r31->unk0C; } -void fn_1_B7E0(void) { - StructBss160* var_r31; +void fn_1_B7E0(void) +{ + StructBss160 *var_r31; StructBss160 sp8; var_r31 = &lbl_1_bss_160; @@ -2561,8 +2644,9 @@ void fn_1_B7E0(void) { fn_1_13658(var_r31, &sp8, var_r31->unk40++, 30.0f, 10.0f); } -void fn_1_B8D0(void) { - StructBss160* var_r31; +void fn_1_B8D0(void) +{ + StructBss160 *var_r31; var_r31 = &lbl_1_bss_160; var_r31->unk14 = 0.0f; @@ -2575,8 +2659,9 @@ void fn_1_B8D0(void) { fn_1_12E14(var_r31, 10.0f); } -void fn_1_BC18(void) { - StructBss160* var_r31; +void fn_1_BC18(void) +{ + StructBss160 *var_r31; var_r31 = &lbl_1_bss_160; var_r31->unk14 = 0.0f; @@ -2589,8 +2674,9 @@ void fn_1_BC18(void) { fn_1_12E14(var_r31, 5.0f); } -void fn_1_BCC8(void) { - StructBss160* var_r31; +void fn_1_BCC8(void) +{ + StructBss160 *var_r31; StructBss160 sp8; var_r31 = &lbl_1_bss_160; @@ -2604,8 +2690,9 @@ void fn_1_BCC8(void) { fn_1_15544(var_r31, &sp8, var_r31->unk40++, 30.0f, 10.0f); } -void fn_1_BDB8(s32 arg0) { - StructBss160* var_r27; +void fn_1_BDB8(s32 arg0) +{ + StructBss160 *var_r27; var_r27 = &lbl_1_bss_160; fn_1_12ABC(var_r27); @@ -2625,13 +2712,9 @@ void fn_1_BDB8(s32 arg0) { } } -void fn_1_BE80(void) { - s32 sp1C[] = { - MAKE_MESSID(29, 79), - MAKE_MESSID(29, 80), - MAKE_MESSID(29, 81), - MAKE_MESSID(29, 82) - }; +void fn_1_BE80(void) +{ + s32 sp1C[] = { MAKE_MESSID(29, 79), MAKE_MESSID(29, 80), MAKE_MESSID(29, 81), MAKE_MESSID(29, 82) }; float sp14[2] = { 0.0f, 0.0f }; s32 temp_r27; s32 var_r30; @@ -2650,12 +2733,9 @@ void fn_1_BE80(void) { HuPrcEnd(); } -void fn_1_C248(void) { - s32 sp1C[] = { - MAKE_MESSID(29, 83), - MAKE_MESSID(29, 84), - MAKE_MESSID(29, 85) - }; +void fn_1_C248(void) +{ + s32 sp1C[] = { MAKE_MESSID(29, 83), MAKE_MESSID(29, 84), MAKE_MESSID(29, 85) }; float sp14[2] = { 0.0f, 0.0f }; s32 temp_r27; s32 var_r31; @@ -2674,7 +2754,8 @@ void fn_1_C248(void) { HuPrcEnd(); } -void fn_1_C610(void) { +void fn_1_C610(void) +{ float sp14[2] = { 0.0f, 0.0f }; s32 var_r31; @@ -2691,7 +2772,8 @@ void fn_1_C610(void) { HuPrcEnd(); } -void fn_1_C9C4(void) { +void fn_1_C9C4(void) +{ float sp10[] = { 0.0f, 0.0f }; s32 var_r31; @@ -2705,7 +2787,8 @@ void fn_1_C9C4(void) { HuPrcEnd(); } -void fn_1_CD20(void) { +void fn_1_CD20(void) +{ float sp10[] = { 0.0f, 0.0f }; s32 var_r31; @@ -2719,12 +2802,9 @@ void fn_1_CD20(void) { HuPrcEnd(); } -void fn_1_D03C(void) { - s32 sp18[] = { - MAKE_MESSID(29, 89), - MAKE_MESSID(29, 90), - MAKE_MESSID(29, 91) - }; +void fn_1_D03C(void) +{ + s32 sp18[] = { MAKE_MESSID(29, 89), MAKE_MESSID(29, 90), MAKE_MESSID(29, 91) }; float sp10[2] = { 0.0f, 0.0f }; s32 temp_r28; s32 var_r31; @@ -2739,7 +2819,8 @@ void fn_1_D03C(void) { HuPrcEnd(); } -void fn_1_D3C0(void) { +void fn_1_D3C0(void) +{ float sp10[] = { 0.0f, 0.0f }; s32 var_r31; @@ -2756,15 +2837,16 @@ void fn_1_D3C0(void) { HuPrcEnd(); } -void fn_1_D754(void) { +void fn_1_D754(void) +{ Mtx sp8; s32 var_r26; s32 i; - StructBss944* var_r29; - StructBss8FC* var_r24; - StructBss1DC* temp_r27; - StructBss1DC* temp_r25; - StructBss1DC* var_r23; + StructBss944 *var_r29; + StructBss8FC *var_r24; + StructBss1DC *temp_r27; + StructBss1DC *temp_r25; + StructBss1DC *var_r23; var_r29 = &lbl_1_bss_944; var_r24 = &lbl_1_bss_8FC; @@ -2775,7 +2857,8 @@ void fn_1_D754(void) { fn_1_15DC8(&temp_r25->unk50); fn_1_15CD0(&temp_r25->unk50, temp_r27->unk00->model[0]); temp_r25->unk50.unkE4->trans.z = 10.0f; - } else { + } + else { fn_1_15DC8(&temp_r27->unk50); } } @@ -2794,17 +2877,13 @@ void fn_1_D754(void) { fn_1_6580(var_r29->unk10, 1, 1); } -s32 fn_1_D930(void) { +s32 fn_1_D930(void) +{ s32 var_r25 = 4; - StructBss944* var_r31 = &lbl_1_bss_944; - Vec sp5C[] = { - { 5.0f, 0.0f, -250.0f }, - { -175.0f, 0.0f, -250.0f }, - { -325.0f, 0.0f, -250.0f }, - { -490.0f, 0.0f, -250.0f } - }; - StructBss1DC* temp_r27; - StructBss1DC* temp_r30; + StructBss944 *var_r31 = &lbl_1_bss_944; + Vec sp5C[] = { { 5.0f, 0.0f, -250.0f }, { -175.0f, 0.0f, -250.0f }, { -325.0f, 0.0f, -250.0f }, { -490.0f, 0.0f, -250.0f } }; + StructBss1DC *temp_r27; + StructBss1DC *temp_r30; s32 var_r28; s32 var_r26; s32 i; @@ -2817,7 +2896,8 @@ s32 fn_1_D930(void) { temp_r27 = &lbl_1_bss_1DC[var_r28]; if (i == 0) { fn_1_11CE0(temp_r27->unk00, sp5C[i], 0.0f, 4.5f, 10.0f, 5.0f, 0); - } else if (fn_1_11854(&lbl_1_bss_38, 0) >= i * 5 + 10) { + } + else if (fn_1_11854(&lbl_1_bss_38, 0) >= i * 5 + 10) { fn_1_11CE0(temp_r27->unk00, sp5C[i], 90.0f, 9.0f, 30.0f, 15.0f, 2); } var_r28++; @@ -2826,10 +2906,7 @@ s32 fn_1_D930(void) { } } if (var_r31->unk20 != 0) { - Vec sp44[] = { - { 0.0f, 0.0f, -50.0f }, - { -510.0f, 0.0f, -250.0f } - }; + Vec sp44[] = { { 0.0f, 0.0f, -50.0f }, { -510.0f, 0.0f, -250.0f } }; var_r26 = var_r31->unk10 - 1; if (var_r26 < 0) { @@ -2838,9 +2915,11 @@ s32 fn_1_D930(void) { temp_r30 = &lbl_1_bss_1DC[var_r26]; if (fn_1_11854(&lbl_1_bss_38, 0) <= 60) { fn_1_11CE0(temp_r30->unk00, sp44[0], -1.0f, 9.0f, 10.0f, 15.0f, 0); - } else if (temp_r30->unk3C == 7) { + } + else if (temp_r30->unk3C == 7) { fn_1_11CE0(temp_r30->unk00, sp44[1], 90.0f, 9.0f, 30.0f, 15.0f, 3); - } else { + } + else { fn_1_11CE0(temp_r30->unk00, sp44[1], 90.0f, 9.0f, 30.0f, 15.0f, 1); } } @@ -2850,14 +2929,16 @@ s32 fn_1_D930(void) { } } -void fn_1_DCEC(void) { +void fn_1_DCEC(void) +{ fn_1_B270(); fn_1_BDB8(1); fn_1_1184(5); } -s32 fn_1_DEC4(void) { - StructBss944* var_r24; +s32 fn_1_DEC4(void) +{ + StructBss944 *var_r24; var_r24 = &lbl_1_bss_944; fn_1_11854(&lbl_1_bss_38, 1); @@ -2874,43 +2955,51 @@ s32 fn_1_DEC4(void) { return 0; } -void fn_1_E2A8(void) { +void fn_1_E2A8(void) +{ if (fn_1_36B4() < 0.75f) { lbl_1_bss_38.unk14 = 60; - } else { + } + else { lbl_1_bss_38.unk14 = 120; } } -s32 fn_1_E598(void) { +s32 fn_1_E598(void) +{ if (fn_1_11854(&lbl_1_bss_38, 1) != 0) { if (fn_1_3990()) { return fn_1_117C0(&lbl_1_bss_38, 5); - } else { + } + else { return fn_1_116C4(&lbl_1_bss_38); } } return 0; } -void fn_1_E634(void) { +void fn_1_E634(void) +{ if (fn_1_36B4() < 0.75f) { HuPrcChildCreate(fn_1_BE80, 100, 0x2000, 0, HuPrcCurrentGet()); - } else { + } + else { HuPrcChildCreate(fn_1_C248, 100, 0x2000, 0, HuPrcCurrentGet()); } } -s32 fn_1_E944(void) { +s32 fn_1_E944(void) +{ if (lbl_1_bss_C != 0 && fn_1_11854(&lbl_1_bss_38, 1) != 0) { return fn_1_116C4(&lbl_1_bss_38); } return 0; } -void fn_1_E9A0(void) { - StructBss944* var_r30; - StructBss1DC* temp_r29; +void fn_1_E9A0(void) +{ + StructBss944 *var_r30; + StructBss1DC *temp_r29; s32 i; var_r30 = &lbl_1_bss_944; @@ -2918,7 +3007,7 @@ void fn_1_E9A0(void) { fn_1_BDB8(0); for (i = 0; i < 4; i++) { if (i != var_r30->unk10) { - StructBss1DC* var_r28 = &lbl_1_bss_1DC[i]; + StructBss1DC *var_r28 = &lbl_1_bss_1DC[i]; fn_1_15DC8(&temp_r29->unk50); fn_1_15CD0(&temp_r29->unk50, var_r28->unk00->model[0]); @@ -2926,16 +3015,17 @@ void fn_1_E9A0(void) { } for (i = 0; i < 4; i++) { if (i != temp_r29->unk00->work[0]) { - StructBss1DC* var_r27 = &lbl_1_bss_1DC[i]; + StructBss1DC *var_r27 = &lbl_1_bss_1DC[i]; fn_1_11B18(var_r27->unk00, 0, 0, 15, 0); } } } -s32 fn_1_EAA4(void) { - StructBss944* var_r30; - StructBss1DC* sp8; +s32 fn_1_EAA4(void) +{ + StructBss944 *var_r30; + StructBss1DC *sp8; var_r30 = &lbl_1_bss_944; sp8 = &lbl_1_bss_1DC[var_r30->unk10]; @@ -2949,9 +3039,10 @@ s32 fn_1_EAA4(void) { return 0; } -void fn_1_EB38(void) { - StructBss8D4* sp8; - StructBss6BC* var_r31; +void fn_1_EB38(void) +{ + StructBss8D4 *sp8; + StructBss6BC *var_r31; lbl_1_bss_8D4.unk08 = 1; var_r31 = &lbl_1_bss_6BC[1]; @@ -2965,9 +3056,10 @@ void fn_1_EB38(void) { HuPrcChildCreate(fn_1_CD20, 100, 0x2000, 0, HuPrcCurrentGet()); } -s32 fn_1_EC10(void) { - StructBss1DC* var_r29; - StructBss8D4* var_r31; +s32 fn_1_EC10(void) +{ + StructBss1DC *var_r29; + StructBss8D4 *var_r31; s32 i; if (lbl_1_bss_C == 1) { @@ -2991,10 +3083,11 @@ s32 fn_1_EC10(void) { return 0; } -void fn_1_EDD4(void) { - StructBss944* var_r30; - StructBss8D4* var_r29; - StructBss1DC* temp_r31; +void fn_1_EDD4(void) +{ + StructBss944 *var_r30; + StructBss8D4 *var_r29; + StructBss1DC *temp_r31; var_r30 = &lbl_1_bss_944; var_r29 = &lbl_1_bss_8D4; @@ -3006,15 +3099,17 @@ void fn_1_EDD4(void) { fn_1_BDB8(3); } -s32 fn_1_EEA0(void) { - StructBss944* var_r30; - StructBss1DC* temp_r31; +s32 fn_1_EEA0(void) +{ + StructBss944 *var_r30; + StructBss1DC *temp_r31; var_r30 = &lbl_1_bss_944; temp_r31 = &lbl_1_bss_1DC[var_r30->unk10]; if (temp_r31->unk1C++ == 0) { fn_1_11B18(temp_r31->unk00, 0, 10, 30, 1); - } else if (temp_r31->unk1C > 0) { + } + else if (temp_r31->unk1C > 0) { temp_r31->unk00->rot.y = fn_1_11348(0.0f, 180.0f, temp_r31->unk1C, 30.0f); if (temp_r31->unk1C >= 30) { fn_1_11B18(temp_r31->unk00, 0, 0, 30, 1); @@ -3026,8 +3121,9 @@ s32 fn_1_EEA0(void) { return 0; } -void fn_1_EFCC(void) { - StructBss944* var_r28; +void fn_1_EFCC(void) +{ + StructBss944 *var_r28; s32 var_r29; s32 i; @@ -3046,28 +3142,32 @@ void fn_1_EFCC(void) { HuPrcChildCreate(fn_1_D03C, 100, 0x2000, 0, HuPrcCurrentGet()); } -s32 fn_1_F0B8(void) { +s32 fn_1_F0B8(void) +{ if (fn_1_11854(&lbl_1_bss_38, 1) != 0) { return 1; } return 0; } -void fn_1_F0F8(void) { +void fn_1_F0F8(void) +{ lbl_1_bss_8D4.unk08 = 1; fn_1_4BAC(0, 60, 1, 1); } -s32 fn_1_F144(void) { +s32 fn_1_F144(void) +{ if (fn_1_11854(&lbl_1_bss_38, 1) != 0) { return fn_1_116C4(&lbl_1_bss_38); } return 0; } -void fn_1_F18C(void) { - StructBss944* var_r30; - StructBss1DC* temp_r31; +void fn_1_F18C(void) +{ + StructBss944 *var_r30; + StructBss1DC *temp_r31; var_r30 = &lbl_1_bss_944; temp_r31 = &lbl_1_bss_1DC[var_r30->unk10]; @@ -3080,15 +3180,17 @@ void fn_1_F18C(void) { fn_1_BDB8(3); } -s32 fn_1_F294(void) { - StructBss944* var_r30; - StructBss1DC* temp_r31; +s32 fn_1_F294(void) +{ + StructBss944 *var_r30; + StructBss1DC *temp_r31; var_r30 = &lbl_1_bss_944; temp_r31 = &lbl_1_bss_1DC[var_r30->unk10]; if (temp_r31->unk1C++ == 60) { fn_1_11B18(temp_r31->unk00, 0, 10, 30, 1); - } else if (temp_r31->unk1C > 60) { + } + else if (temp_r31->unk1C > 60) { temp_r31->unk00->rot.y = fn_1_11348(0.0f, 180.0f, temp_r31->unk1C - 60, 30.0f); if (temp_r31->unk1C >= 90) { fn_1_11B18(temp_r31->unk00, 0, 0, 30, 1); @@ -3100,8 +3202,9 @@ s32 fn_1_F294(void) { return 0; } -void fn_1_F3D8(void) { - StructBss944* var_r28; +void fn_1_F3D8(void) +{ + StructBss944 *var_r28; s32 var_r29; s32 i; @@ -3119,33 +3222,25 @@ void fn_1_F3D8(void) { } } -s32 fn_1_F494(void) { +s32 fn_1_F494(void) +{ if (fn_1_11854(&lbl_1_bss_38, 1) != 0) { return 1; } return 0; } -StructData204 lbl_1_data_27C[] = { - { fn_1_D754, fn_1_D930, 60 }, - { fn_1_DCEC, fn_1_DEC4, 60 }, - { fn_1_E2A8, fn_1_E598, 60 }, - { fn_1_E634, fn_1_E944, 10 }, - { fn_1_E9A0, fn_1_EAA4, 30 }, - { fn_1_EB38, fn_1_EC10, 60 }, - { fn_1_EDD4, fn_1_EEA0, 60 }, - { fn_1_EFCC, fn_1_F0B8, 90 }, - { fn_1_F0F8, fn_1_F144, 60 }, - { fn_1_F18C, fn_1_F294, 60 }, - { fn_1_F3D8, fn_1_F494, 90 }, - { NULL, NULL, -1 } -}; +StructData204 lbl_1_data_27C[] = { { fn_1_D754, fn_1_D930, 60 }, { fn_1_DCEC, fn_1_DEC4, 60 }, { fn_1_E2A8, fn_1_E598, 60 }, + { fn_1_E634, fn_1_E944, 10 }, { fn_1_E9A0, fn_1_EAA4, 30 }, { fn_1_EB38, fn_1_EC10, 60 }, { fn_1_EDD4, fn_1_EEA0, 60 }, + { fn_1_EFCC, fn_1_F0B8, 90 }, { fn_1_F0F8, fn_1_F144, 60 }, { fn_1_F18C, fn_1_F294, 60 }, { fn_1_F3D8, fn_1_F494, 90 }, { NULL, NULL, -1 } }; -void fn_1_F4D4(void) { +void fn_1_F4D4(void) +{ fn_1_11668(&lbl_1_bss_38, lbl_1_data_27C); } -s32 fn_1_F504(void) { +s32 fn_1_F504(void) +{ if (lbl_1_bss_38.unk08 != NULL) { lbl_1_bss_38.unk08(); lbl_1_bss_38.unk08 = NULL; @@ -3156,9 +3251,10 @@ s32 fn_1_F504(void) { return 0; } -void fn_1_F590(void) { - StructBss944* var_r30; - StructBss1DC* temp_r31; +void fn_1_F590(void) +{ + StructBss944 *var_r30; + StructBss1DC *temp_r31; var_r30 = &lbl_1_bss_944; temp_r31 = &lbl_1_bss_1DC[var_r30->unk10]; @@ -3169,9 +3265,10 @@ void fn_1_F590(void) { HuPrcChildCreate(fn_1_0, 100, 0x2000, 0, HuPrcCurrentGet()); } -s32 fn_1_F640(void) { - StructBss944* var_r31; - StructBss1DC* temp_r30; +s32 fn_1_F640(void) +{ + StructBss944 *var_r31; + StructBss1DC *temp_r30; var_r31 = &lbl_1_bss_944; temp_r30 = &lbl_1_bss_1DC[var_r31->unk10]; @@ -3185,16 +3282,15 @@ s32 fn_1_F640(void) { return 0; } -StructData204 lbl_1_data_30C[] = { - { fn_1_F590, fn_1_F640, 360 }, - { NULL, NULL, -1 } -}; +StructData204 lbl_1_data_30C[] = { { fn_1_F590, fn_1_F640, 360 }, { NULL, NULL, -1 } }; -void fn_1_F6EC(void) { +void fn_1_F6EC(void) +{ fn_1_11668(&lbl_1_bss_20, lbl_1_data_30C); } -s32 fn_1_F71C(void) { +s32 fn_1_F71C(void) +{ if (lbl_1_bss_20.unk08 != NULL) { lbl_1_bss_20.unk08(); lbl_1_bss_20.unk08 = NULL; @@ -3205,9 +3301,10 @@ s32 fn_1_F71C(void) { return 0; } -void fn_1_F7A8(omObjData* arg0) { - StructBss944* var_r30; - StructBss1DC* temp_r29; +void fn_1_F7A8(omObjData *arg0) +{ + StructBss944 *var_r30; + StructBss1DC *temp_r29; s32 i; if (WipeStatGet() == 0) { @@ -3225,12 +3322,14 @@ void fn_1_F7A8(omObjData* arg0) { } } -s32 fn_1_F89C(void) { +s32 fn_1_F89C(void) +{ return omSysExitReq; } -void fn_1_F8AC(void) { - StructBss944* var_r29; +void fn_1_F8AC(void) +{ + StructBss944 *var_r29; s32 i; fn_1_3260(&lbl_1_bss_920); @@ -3253,8 +3352,9 @@ void fn_1_F8AC(void) { HuAudFXPlay(0x6D7); } -void fn_1_1043C(omObjData* arg0) { - StructBss920* var_r30; +void fn_1_1043C(omObjData *arg0) +{ + StructBss920 *var_r30; switch (lbl_1_bss_18) { case 0: @@ -3322,7 +3422,8 @@ void fn_1_1043C(omObjData* arg0) { } } -void fn_1_108A4(omObjData* arg0) { +void fn_1_108A4(omObjData *arg0) +{ s32 i; lbl_1_bss_920.unk00 = omAddObjEx(lbl_1_bss_0, 0x100, 16, 16, -1, fn_1_3410); @@ -3343,7 +3444,8 @@ void fn_1_108A4(omObjData* arg0) { #include "src/REL/executor.c" -void fn_1_10B30(void) { +void fn_1_10B30(void) +{ lbl_1_bss_0 = omInitObjMan(62, 0x2000); omGameSysInit(lbl_1_bss_0); fn_1_1A8(); @@ -3355,6 +3457,7 @@ void fn_1_10B30(void) { omAddObjEx(lbl_1_bss_0, 0x1000, 0, 0, -1, fn_1_108A4); } -void ObjectSetup(void) { +void ObjectSetup(void) +{ fn_1_10B30(); } diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index 84193a27..82a43f93 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -1125,7 +1125,7 @@ void fn_1_2964(omObjData *object) memset(var_r31->unk_F0, 0, sizeof(var_r31->unk_F0)); var_r27 = CharModelCreate(var_r31->unk_01, 8); object->model[0] = var_r27; - Hu3DModelAttrSet(var_r27, 0x40000001); + Hu3DModelAttrSet(var_r27, HU3D_MOTATTR_LOOP); Hu3DModelShadowSet(var_r27); CharModelStepTypeSet(var_r31->unk_01, 0); var_r31->unk_A4 = -1; @@ -1269,7 +1269,7 @@ void fn_1_2E4C(omObjData *object) } if (var_r31->unk_10 != 0) { var_r31->unk_07 = 0; - Hu3DModelAttrSet(var_r25, 1); + Hu3DModelAttrSet(var_r25, HU3D_ATTR_DISPOFF); object->func = fn_1_35BC; } } @@ -1439,10 +1439,10 @@ void fn_1_35C0(omObjData *object) } if ((var_r31->unk_07 & 4) != 0) { if ((var_r31->unk_0B & 2) != 0) { - Hu3DModelAttrSet(var_r25, 1); + Hu3DModelAttrSet(var_r25, HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrReset(var_r25, 1); + Hu3DModelAttrReset(var_r25, HU3D_ATTR_DISPOFF); } if (--var_r31->unk_0B == 0) { var_r31->unk_07 = var_r31->unk_07 & 0xFFFFFFFB; @@ -1555,7 +1555,7 @@ void fn_1_4724(omObjData *object) Hu3DModelScaleSet(var_r29, 1.5f, 1.5f, 1.5f); Hu3DMotionSet(var_r29, object->motion[0]); Hu3DMotionSpeedSet(var_r29, 2.0f); - Hu3DModelAttrSet(var_r29, 0x40000001); + Hu3DModelAttrSet(var_r29, HU3D_MOTATTR_LOOP); Hu3DModelShadowSet(var_r29); var_r31 = fn_1_7BFC(sizeof(M438MainWork4)); object->data = var_r31; @@ -1790,7 +1790,7 @@ void fn_1_4724(omObjData *object) // if (temp_r0 == 0) { // HuAudFXEmiterPlay(0x700, var_r31 + 0x10); // Hu3DModelAttrReset(*var_r30->model, 0x40000002); -// Hu3DModelAttrSet(*var_r30->model, 0x40000001); +// Hu3DModelAttrSet(*var_r30->model, HU3D_MOTATTR_LOOP); // var_r31->unk_1C = 0.0f; // var_r31->unk_00 = var_r31->unk_00 + 1; // } @@ -1888,7 +1888,7 @@ void fn_1_4724(omObjData *object) // Hu3DModelAttrReset(*var_r30->model, 0x40000006); // Hu3DMotionSet(*var_r30->model, var_r30->motion->unk_02); // Hu3DMotionSpeedSet(*var_r30->model, 1.0f); -// Hu3DModelAttrSet(*var_r30->model, 0x40000001); +// Hu3DModelAttrSet(*var_r30->model, HU3D_MOTATTR_LOOP); // var_r31->unk_04 = 1; // } // break; diff --git a/src/REL/m439Dll/main.c b/src/REL/m439Dll/main.c index dbc4a59b..f89c03d4 100644 --- a/src/REL/m439Dll/main.c +++ b/src/REL/m439Dll/main.c @@ -441,11 +441,11 @@ void fn_1_D0C(omObjData *object) object->motion[i] = CharModelMotionCreate(work->unkC, lbl_1_data_7694[i]); } Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); CharModelVoiceEnableSet(work->unkC, object->motion[4], 0); CharModelDataClose(work->unkC); object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M439, 0x12)); - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); Hu3DModelCameraSet(object->model[1], lbl_1_data_75E0[work->unk2]); work->unk0_field3 = 1; work->unk44 = 0; @@ -456,7 +456,7 @@ void fn_1_D0C(omObjData *object) object->rot.y = 180; object->model[2] = Hu3DParticleCreate(lbl_1_bss_40, 10); Hu3DParticleHookSet(object->model[2], fn_1_4528); - Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); Hu3DModelCameraSet(object->model[2], lbl_1_data_75E0[work->unk2]); object->func = fn_1_2BB4; } @@ -774,10 +774,10 @@ s32 fn_1_62E0(float arg0); void fn_1_2BB4(omObjData *object) { WorkD0C *work = object->data; - Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(object->model[1], CenterM[work->unk2].x, CenterM[work->unk2].y, CenterM[work->unk2].z); if (fn_1_374() == 3) { - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); object->func = fn_1_2C84; } } @@ -906,7 +906,7 @@ void fn_1_2C84(omObjData *object) temp_r23 = Hu3DData[object->model[2]].unk_120; temp_r23->unk_00 = 0; VECSubtract(&temp_r31->unk5C, &object->trans, &temp_r23->unk_04); - Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(object->model[2], object->trans.x, object->trans.y, object->trans.z); temp_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 2); temp_r25[temp_r31->unk2]->work[3] = 1; @@ -1076,7 +1076,7 @@ void fn_1_3C1C(omObjData *object) CRotM[temp_r31->unk2].x += (lbl_1_data_741C[2].rot.x - CRotM[temp_r31->unk2].x) * 0.1f; CRotM[temp_r31->unk2].y += (lbl_1_data_741C[2].rot.y - CRotM[temp_r31->unk2].y) * 0.1f; CRotM[temp_r31->unk2].z += (lbl_1_data_741C[2].rot.z - CRotM[temp_r31->unk2].z) * 0.1f; - Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(object->model[1], object->trans.x, object->trans.y + 200, object->trans.z); } else { @@ -1189,12 +1189,12 @@ void fn_1_4AA8(omObjData *object) work->unk2 = lbl_1_bss_140; object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M439, 0x13)); Hu3DModelCameraSet(object->model[0], lbl_1_data_75E0[lbl_1_bss_140]); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); for (i = 0; i < 1; i++) { object->motion[i] = Hu3DJointMotionFile(object->model[0], lbl_1_data_7794[i]); } Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); object->trans.y = 500; object->scale.x = object->scale.y = object->scale.z = 0.25f; if (work->unk2 == 0) { @@ -1254,10 +1254,10 @@ void fn_1_4CC0(omObjData *object) HuAudFXPanning(lbl_1_data_779C, pan); } } - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); if (fn_1_374() == 3) { Hu3DMotionSpeedSet(object->model[0], 1.0f); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); object->func = fn_1_4F54; } } @@ -1281,7 +1281,7 @@ void fn_1_4F54(omObjData *object) object->trans.y = work->unk28.y = 2000; object->trans.z = work->unk28.z = temp_r29[work->unk2]->trans.z - 100; object->rot.y = 180; - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); } break; @@ -1350,7 +1350,7 @@ void fn_1_4F54(omObjData *object) temp_r28->unk0_field1 = 0; work->unk4 = 0; object->work[3] = 0; - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); } if (work->unk24 == (int)(work->unk26 - 12.0f)) { work->unk0 = 0; @@ -1381,7 +1381,7 @@ void fn_1_5BA0(Process *objman) } for (i = 0; i < 10; i++) { lbl_1_bss_10[i] = Hu3DModelCreateFile(lbl_1_data_77A0[i]); - Hu3DModelAttrSet(lbl_1_bss_10[i], 1); + Hu3DModelAttrSet(lbl_1_bss_10[i], HU3D_ATTR_DISPOFF); } omAddObjEx(objman, 10, 4, 0, 1, fn_1_6520); } @@ -1437,7 +1437,7 @@ void fn_1_5CB0(omObjData *object) } object->model[i] = Hu3DModelLink(lbl_1_bss_10[temp_r26]); Hu3DModelPosSet(object->model[i], lbl_1_data_77C8[i][0], 0, lbl_1_data_77C8[i][1]); - Hu3DModelAttrReset(object->model[i], 1); + Hu3DModelAttrReset(object->model[i], HU3D_ATTR_DISPOFF); for (temp = 0; temp < 2; temp++) { if (sp14[temp_r26][temp]) { Hu3DModelShadowMapObjSet(object->model[i], sp14[temp_r26][temp]); @@ -1557,7 +1557,7 @@ void fn_1_6520(omObjData *object) object->model[i] = Hu3DModelCreateFile(lbl_1_data_78A0[GWPlayerCfg[i].character]); Hu3DModelCameraSet(object->model[i], lbl_1_data_75E0[i]); Hu3DModelClusterAttrSet(object->model[i], 0, 0xC0000001); - Hu3DModelAttrSet(object->model[i], 1); + Hu3DModelAttrSet(object->model[i], HU3D_ATTR_DISPOFF); } object->func = fn_1_661C; } @@ -1566,10 +1566,10 @@ void fn_1_66BC(omObjData *object); void fn_1_661C(omObjData *object) { - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(object->model[0], -2800, 0, -7700); if (fn_1_374() == 3) { - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); object->func = fn_1_66BC; } } @@ -1583,10 +1583,10 @@ void fn_1_66BC(omObjData *object) if (work->unk44 >= 10 && work->unk44 <= 13) { s32 goalNo = work->unk44 - 10; Hu3DModelPosSet(object->model[i], lbl_1_data_78C0[goalNo].x, lbl_1_data_78C0[goalNo].y, lbl_1_data_78C0[goalNo].z); - Hu3DModelAttrReset(object->model[i], 1); + Hu3DModelAttrReset(object->model[i], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrSet(object->model[i], 1); + Hu3DModelAttrSet(object->model[i], HU3D_ATTR_DISPOFF); } } } diff --git a/src/REL/m440Dll/main.c b/src/REL/m440Dll/main.c index 0169ada7..2cb135b1 100644 --- a/src/REL/m440Dll/main.c +++ b/src/REL/m440Dll/main.c @@ -179,8 +179,8 @@ void fn_1_8F0(omObjData *arg0) for (var_r30 = 1; var_r30 < 4; var_r30++) { lbl_1_bss_10[var_r30] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x0A)); - Hu3DModelAttrSet(lbl_1_bss_10[var_r30], 1); - Hu3DModelAttrSet(lbl_1_bss_10[var_r30], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_10[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_10[var_r30], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(lbl_1_bss_10[var_r30], 7); Hu3DModelScaleSet(lbl_1_bss_10[var_r30], 3.0f, 3.0f, 3.0f); } @@ -479,7 +479,7 @@ void fn_1_19B0(void) Hu3DModelPosSet(lbl_1_bss_10[var_r31], temp_f29, 300.0f + var_f28, var_f27); temp_f31 = 0.1f * ((((rand8() << 8) | rand8()) % 11) + 25); Hu3DModelScaleSet(lbl_1_bss_10[var_r31], temp_f31, temp_f31, temp_f31); - Hu3DModelAttrReset(lbl_1_bss_10[var_r31], 1); + Hu3DModelAttrReset(lbl_1_bss_10[var_r31], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(lbl_1_bss_10[var_r31], 0x40000002); } } @@ -490,8 +490,8 @@ void fn_1_1CAC(void) for (var_r31 = 1; var_r31 < 4; var_r31++) { Hu3DMotionTimeSet(lbl_1_bss_10[var_r31], 0.0f); - Hu3DModelAttrSet(lbl_1_bss_10[var_r31], 1); - Hu3DModelAttrSet(lbl_1_bss_10[var_r31], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_10[var_r31], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_10[var_r31], HU3D_MOTATTR_PAUSE); } } @@ -612,10 +612,10 @@ void fn_1_2470(omObjData *arg0) arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x06)); arg0->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x07)); temp_r26 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x01)); - Hu3DModelAttrSet(arg0->model[0], 0x40000001); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); Hu3DModelAttrSet(arg0->model[2], 0x20000); - Hu3DModelAttrSet(arg0->model[2], 0x40000002); - Hu3DModelAttrSet(temp_r26, 1); + Hu3DModelAttrSet(arg0->model[2], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(temp_r26, HU3D_ATTR_DISPOFF); for (var_r30 = 0; var_r30 < 8; var_r30++) { Hu3DModelLayerSet(arg0->model[var_r30], 1); @@ -650,7 +650,7 @@ void fn_1_2470(omObjData *arg0) lbl_1_bss_64[var_r30].unk4 = var_r30; fn_1_5C2C(temp_r26, temp_r28->data.children[var_r30], &lbl_1_bss_64[var_r30], 2); if (lbl_1_bss_64[var_r30].unk20 != 0) { - Hu3DModelAttrSet(lbl_1_bss_64[var_r30].unk0, 1); + Hu3DModelAttrSet(lbl_1_bss_64[var_r30].unk0, HU3D_ATTR_DISPOFF); Hu3DModelPosSet(lbl_1_bss_64[var_r30].unk0, 0.0f, 250.0f, 0.0f); lbl_1_bss_64[var_r30].unk38 = &fn_1_57B4; } @@ -698,7 +698,7 @@ void fn_1_2B04(omObjData *object) temp_f31 = lbl_1_data_E8[0] / 360.0f; if (temp_f31 > 1.0f) { temp_f31 = 1.0f; - Hu3DModelAttrSet(object->model[3], 1); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); lbl_1_data_E8[0] = 0; lbl_1_data_E4[0] = 0; fn_1_4EEC(0x20, 0); @@ -741,9 +741,9 @@ void fn_1_2D28(omObjData *object) temp_r31->center.x = temp_r31->center.z = 0.0f; temp_r31->center.y = 2000.0f; temp_r31->rot.x = temp_r31->rot.y = temp_r31->rot.z = 0.0f; - Hu3DModelAttrReset(object->model[2], 1); - Hu3DModelAttrReset(object->model[3], 1); - Hu3DModelAttrSet(object->model[3], 0x40000002); + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[3], HU3D_MOTATTR_PAUSE); Hu3DMotionTimeSet(object->model[3], 0.0f); lbl_1_data_EC[0]++; lbl_1_data_F0[0] = 0; @@ -804,7 +804,7 @@ void fn_1_2D28(omObjData *object) var_f31 = lbl_1_data_F0[0] / 360.0f; if (var_f31 > 1.0f) { var_f31 = 1.0f; - Hu3DModelAttrSet(object->model[3], 1); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); lbl_1_data_F0[0] = 0; lbl_1_data_EC[0] = 0; fn_1_4EEC(7, 2); @@ -876,9 +876,9 @@ void fn_1_3DD8(omObjData *object) } var_f26 = Hu3DMotionMaxTimeGet(object->model[2]); if (Hu3DMotionTimeGet(object->model[2]) >= var_f26) { - Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); for (var_r31 = 0; var_r31 < lbl_1_bss_60; var_r31++) { - Hu3DModelAttrReset(lbl_1_bss_64[var_r31].unk0, 1); + Hu3DModelAttrReset(lbl_1_bss_64[var_r31].unk0, HU3D_ATTR_DISPOFF); fn_1_57B4(&lbl_1_bss_64[var_r31]); } lbl_1_data_F0[0] = 0; @@ -903,7 +903,7 @@ void fn_1_3DD8(omObjData *object) Hu3DModelPosSet(lbl_1_bss_10[var_r29], var_f27, 300.0f + var_f28, var_f29); var_f31 = 0.1f * ((((rand8() << 8) | rand8()) % 11) + 0x19); Hu3DModelScaleSet(lbl_1_bss_10[var_r29], var_f31, var_f31, var_f31); - Hu3DModelAttrReset(lbl_1_bss_10[var_r29], 1); + Hu3DModelAttrReset(lbl_1_bss_10[var_r29], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(lbl_1_bss_10[var_r29], 0x40000002); } fn_1_45BC(object); @@ -929,13 +929,13 @@ void fn_1_3DD8(omObjData *object) if (lbl_1_bss_64[0].unk3C == 0) { for (var_r27 = 1; var_r27 < 4; var_r27++) { Hu3DMotionTimeSet(lbl_1_bss_10[var_r27], 0.0f); - Hu3DModelAttrSet(lbl_1_bss_10[var_r27], 1); - Hu3DModelAttrSet(lbl_1_bss_10[var_r27], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_10[var_r27], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_10[var_r27], HU3D_MOTATTR_PAUSE); } - Hu3DModelAttrSet(object->model[2], 0x40000002); + Hu3DModelAttrSet(object->model[2], HU3D_MOTATTR_PAUSE); Hu3DMotionTimeSet(object->model[2], 0.0f); for (var_r31 = 0; var_r31 < lbl_1_bss_60; var_r31++) { - Hu3DModelAttrSet(lbl_1_bss_64[var_r31].unk0, 1); + Hu3DModelAttrSet(lbl_1_bss_64[var_r31].unk0, HU3D_ATTR_DISPOFF); } fn_1_4558(object); if (lbl_1_data_1D8 >= 0) { diff --git a/src/REL/m440Dll/object.c b/src/REL/m440Dll/object.c index afc791c7..5e94301f 100644 --- a/src/REL/m440Dll/object.c +++ b/src/REL/m440Dll/object.c @@ -1,16 +1,17 @@ #include "REL/m440Dll.h" -#include "string.h" -#include "math.h" #include "ext_math.h" +#include "game/chrman.h" #include "game/flag.h" #include "game/gamework_data.h" -#include "game/chrman.h" #include "game/hsfmotion.h" #include "game/pad.h" +#include "math.h" +#include "string.h" + // bss -omObjData* lbl_1_bss_C0[4]; +omObjData *lbl_1_bss_C0[4]; s16 lbl_1_bss_B8[4]; Vec lbl_1_bss_88[4]; f32 lbl_1_bss_84; @@ -22,29 +23,21 @@ s16 lbl_1_bss_70; // data s16 lbl_1_data_1D8 = 2; s16 lbl_1_data_1DA = -1; -u32 lbl_1_data_1DC[8][2] = { - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), 0 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), 0 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x38), 0 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48), 0 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), 0 }, - { 0x47000C, 1 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x36), 0 } -}; -f32 lbl_1_data_21C[4] = { - 210.0f, 190.0f, 170.0f, 0.0f -}; +u32 lbl_1_data_1DC[8][2] = { { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), 0 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x38), 0 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), 0 }, { 0x47000C, 1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x36), 0 } }; +f32 lbl_1_data_21C[4] = { 210.0f, 190.0f, 170.0f, 0.0f }; // prototypes -void fn_1_B180(omObjData*); +void fn_1_B180(omObjData *); -void fn_1_AE08(Process* arg0) { +void fn_1_AE08(Process *arg0) +{ s16 var_r31; omMakeGroupEx(arg0, 0, 4); omGetGroupMemberListEx(arg0, 0); - + for (var_r31 = 0; var_r31 < 4; var_r31++) { lbl_1_bss_C0[var_r31] = omAddObjEx(arg0, 0x64, 9, 8, 0, fn_1_AEE4); lbl_1_bss_C0[var_r31]->work[0] = var_r31; @@ -52,14 +45,15 @@ void fn_1_AE08(Process* arg0) { omAddObjEx(arg0, 0x65, 0, 0, -1, fn_1_B180); } -void fn_1_AEE4(omObjData* arg0) { +void fn_1_AEE4(omObjData *arg0) +{ f32 var_f31; s32 temp_r28; s16 var_r29; - unkObjStruct* temp_r31; + unkObjStruct *temp_r31; arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x78, MEMORY_DEFAULT_NUM); - temp_r31 = (unkObjStruct*)arg0->data; + temp_r31 = (unkObjStruct *)arg0->data; memset(temp_r31, 0, 0x78); arg0->stat |= 0x100; temp_r31->unk4 = arg0->work[0]; @@ -68,11 +62,12 @@ void fn_1_AEE4(omObjData* arg0) { arg0->model[0] = CharModelCreate(temp_r31->unk8, 4); Hu3DModelLayerSet(arg0->model[0], 1); Hu3DModelShadowSet(arg0->model[0]); - + for (var_r29 = 0; var_r29 < 8; var_r29++) { if (lbl_1_data_1DC[var_r29][1] == 0) { arg0->motion[var_r29] = CharModelMotionCreate(temp_r31->unk8, lbl_1_data_1DC[var_r29][0]); - } else { + } + else { arg0->motion[var_r29] = CharModelMotionCreate(temp_r31->unk8, temp_r31->unk8 + lbl_1_data_1DC[var_r29][0]); } } @@ -87,7 +82,8 @@ void fn_1_AEE4(omObjData* arg0) { temp_r31->unk10 = temp_r31->unk12 = temp_r31->unk14 = 0; if (temp_r31->unk8 == 5) { var_f31 = 350.0f; - } else { + } + else { var_f31 = 410.0f; } temp_r31->unk5C = var_f31; @@ -98,37 +94,39 @@ void fn_1_AEE4(omObjData* arg0) { arg0->func = fn_1_B17C; } -void fn_1_B17C(omObjData* arg0) { +void fn_1_B17C(omObjData *arg0) +{ return; } -void fn_1_B180(omObjData* arg0) { +void fn_1_B180(omObjData *arg0) +{ s16 var_r29; s16 var_r31; s32 var_r28; u32 temp_r0; u32 temp_r3; u32 temp_r3_2; - unkObjStruct* temp_r30; + unkObjStruct *temp_r30; var_r28 = GWSystem.player_curr; if (var_r28 < 0) { var_r28 = 0; } var_r29 = var_r28; - + for (var_r31 = 0; var_r31 < 4; var_r31++) { lbl_1_bss_B8[var_r31] = var_r29; var_r29 = (var_r29 + 1) % 4; } - lbl_1_bss_88->x = (700.0f * cos(M_PI/2 - M_PI/9)); - lbl_1_bss_88->z = (700.0f * sin(M_PI/2 - M_PI/9)); - + lbl_1_bss_88->x = (700.0f * cos(M_PI / 2 - M_PI / 9)); + lbl_1_bss_88->z = (700.0f * sin(M_PI / 2 - M_PI / 9)); + for (var_r31 = 1; var_r31 < 4; var_r31++) { lbl_1_bss_88[var_r31].x = lbl_1_bss_88[var_r31 - 1].x - 150.0f; lbl_1_bss_88[var_r31].z = lbl_1_bss_88->z; } - + for (var_r31 = 0; var_r31 < 4; var_r31++) { temp_r30 = lbl_1_bss_C0[lbl_1_bss_B8[var_r31]]->data; temp_r30->unkA = var_r31; @@ -139,21 +137,22 @@ void fn_1_B180(omObjData* arg0) { arg0->func = fn_1_B3A4; } -void fn_1_B3A4(omObjData* arg0) { +void fn_1_B3A4(omObjData *arg0) +{ f32 sp14; - ModelData* sp8; + ModelData *sp8; f32 var_f31; s16 var_r28; s16 var_r29; - omObjData* var_r30; - unkObjStruct* var_r31; - + omObjData *var_r30; + unkObjStruct *var_r31; + for (var_r29 = 0; var_r29 < 4; var_r29++) { if (lbl_1_bss_B8[var_r29] != -1) { var_r30 = lbl_1_bss_C0[lbl_1_bss_B8[var_r29]]; sp8 = &Hu3DData[var_r30->model[0]]; - var_r31 = (unkObjStruct*)var_r30->data; - switch(var_r31->unk0 & 0xF) { + var_r31 = (unkObjStruct *)var_r30->data; + switch (var_r31->unk0 & 0xF) { case 1: var_r31->unkC++; var_f31 = (f32)var_r31->unkC / var_r31->unkE; @@ -163,7 +162,8 @@ void fn_1_B3A4(omObjData* arg0) { if (lbl_1_bss_72 == 0) { lbl_1_bss_72 = 1; fn_1_F228(); - } else { + } + else { fn_1_F4D4(var_r31, 15, 7); Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[1], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); } @@ -225,8 +225,9 @@ void fn_1_B3A4(omObjData* arg0) { f32 lbl_1_data_250 = 70.0f; -void fn_1_B884(omObjData* arg0, unkObjStruct* arg1) { - s16 sp8[5] = {3, 1, 0, 2, 4}; +void fn_1_B884(omObjData *arg0, unkObjStruct *arg1) +{ + s16 sp8[5] = { 3, 1, 0, 2, 4 }; f32 var_f29; f32 var_f28; f32 var_f31; @@ -269,7 +270,7 @@ void fn_1_B884(omObjData* arg0, unkObjStruct* arg1) { var_f31 = 1.0f; arg1->unkC = arg1->unkE = 0; arg1->unk68 = arg1->unk30.y; - + for (var_r30 = 0; var_r30 < 5; var_r30++) { if (lbl_1_data_14[sp8[var_r30]] != 0) { arg1->unk4A = arg1->unk60 = sp8[var_r30]; @@ -279,8 +280,8 @@ void fn_1_B884(omObjData* arg0, unkObjStruct* arg1) { lbl_1_bss_74++; } var_f29 = 700.0f + ((arg1->unk5C - 700.0f) * var_f31); - arg1->unk18.x = (var_f29 * cos(M_PI/4)); - arg1->unk18.z = (var_f29 * sin(M_PI/4)); + arg1->unk18.x = (var_f29 * cos(M_PI / 4)); + arg1->unk18.z = (var_f29 * sin(M_PI / 4)); var_f29 = 0.1f; var_f28 = 0.6f; if (var_f31 >= var_f29) { @@ -311,7 +312,8 @@ void fn_1_B884(omObjData* arg0, unkObjStruct* arg1) { var_f31 = arg1->unkC / 10.0f; if (var_f31 < 1.0f) { arg1->unk30.y = arg1->unk68 + (var_f31 * (var_f30 - arg1->unk68)); - } else { + } + else { arg1->unk30.y = var_f30; } arg1->unk6C = arg1->unk30.y; @@ -345,7 +347,8 @@ void fn_1_B884(omObjData* arg0, unkObjStruct* arg1) { lbl_1_data_1DA++; return; } - } else { + } + else { lbl_1_bss_74 = 0; lbl_1_data_250 = 70.0f; arg1->unk48 = 0; @@ -361,7 +364,8 @@ void fn_1_B884(omObjData* arg0, unkObjStruct* arg1) { } } -void fn_1_C1D4(omObjData* arg0, unkObjStruct* arg1) { +void fn_1_C1D4(omObjData *arg0, unkObjStruct *arg1) +{ s16 sp12[5]; s16 sp8[5]; f32 var_f28; @@ -381,18 +385,18 @@ void fn_1_C1D4(omObjData* arg0, unkObjStruct* arg1) { HuPadTrigR[arg1->unk6] = 0; HuPadBtn[arg1->unk6] = 0; switch (GWPlayerCfg[arg1->unk4].diff) { - case 0: - var_f31 = 0.3f; - break; - case 1: - var_f31 = 0.3f; - break; - case 2: - var_f31 = 0.3f; - break; - case 3: - var_f31 = 0.3f; - break; + case 0: + var_f31 = 0.3f; + break; + case 1: + var_f31 = 0.3f; + break; + case 2: + var_f31 = 0.3f; + break; + case 3: + var_f31 = 0.3f; + break; } var_f31 += (0.1f * lbl_1_bss_70); @@ -405,7 +409,8 @@ void fn_1_C1D4(omObjData* arg0, unkObjStruct* arg1) { if (arg1->unk50 == -1) { if (arg1->unk4C < var_f31) { arg1->unk50 = fn_1_4E54(-1); - } else { + } + else { for (var_r30 = 0, var_r28 = 0; var_r30 < 5; var_r30++) { if ((var_r30 != fn_1_4E54(-1)) && (lbl_1_data_14[var_r30] != 0)) { sp12[var_r28++] = var_r30; @@ -432,7 +437,8 @@ void fn_1_C1D4(omObjData* arg0, unkObjStruct* arg1) { if (arg1->unk68 > lbl_1_data_0[arg1->unk50]) { HuPadStkX[arg1->unk6] = 0x2D; } - } else { + } + else { var_f30 = ABS(arg1->unk68 - lbl_1_data_0[arg1->unk52]); if (var_f30 < 5.0f) { if (arg1->unk5A != 0) { @@ -445,7 +451,7 @@ void fn_1_C1D4(omObjData* arg0, unkObjStruct* arg1) { var_r30 = (((rand8() << 8) | rand8()) % (s16)(var_r29 + 1)); arg1->unk52 = sp8[var_r30]; } - HuPadTrigR[arg1->unk6] = (u8) (arg1->unk58 * var_f31); + HuPadTrigR[arg1->unk6] = (u8)(arg1->unk58 * var_f31); return; } if ((((rand8() << 8) | rand8()) % 101) < 0x32) { @@ -470,7 +476,8 @@ void fn_1_C1D4(omObjData* arg0, unkObjStruct* arg1) { } } -void fn_1_C944(omObjData* arg0, unkObjStruct* arg1) { +void fn_1_C944(omObjData *arg0, unkObjStruct *arg1) +{ s16 sp8; f32 var_f26; f32 var_f25; @@ -489,7 +496,8 @@ void fn_1_C944(omObjData* arg0, unkObjStruct* arg1) { HuPadStkY[arg1->unk6] = 0; HuPadTrigR[arg1->unk6] = 0x96; HuPadBtn[arg1->unk6] = 0x20; - } else { + } + else { var_r29 = HuPadStkX[arg1->unk6]; sp8 = HuPadStkY[arg1->unk6]; } @@ -497,11 +505,13 @@ void fn_1_C944(omObjData* arg0, unkObjStruct* arg1) { var_r30 = -1; if (ABS(var_r29) < 7) { var_r30 = fn_1_CFAC(arg1, 0); - } else { + } + else { if (var_r29 > 0) { arg1->unk48 = arg1->unk48 & 0xFFFFFFFD; arg1->unk48 = arg1->unk48 | 1; - } else { + } + else { arg1->unk48 = arg1->unk48 & 0xFFFFFFFE; arg1->unk48 = arg1->unk48 | 2; } @@ -519,7 +529,8 @@ void fn_1_C944(omObjData* arg0, unkObjStruct* arg1) { arg1->unk4A = var_r30; arg1->unk48 = arg1->unk48 & 0xFFFFFFFE; } - } else if ((arg1->unk48 & 2) != 0) { + } + else if ((arg1->unk48 & 2) != 0) { arg1->unk68++; if ((var_r30 != -1) && (lbl_1_data_0[var_r30] < arg1->unk68)) { arg1->unk68 = lbl_1_data_0[var_r30]; @@ -539,7 +550,8 @@ void fn_1_C944(omObjData* arg0, unkObjStruct* arg1) { var_f29 += 360.0f; } fn_1_D24C(arg1, arg1->unk30.y, var_f29); - } else { + } + else { arg1->unk48 |= 4; var_f29 = 90.0f - lbl_1_data_0[arg1->unk4A]; fn_1_D24C(arg1, arg1->unk30.y, var_f29); @@ -551,10 +563,12 @@ void fn_1_C944(omObjData* arg0, unkObjStruct* arg1) { var_f28 = 1.0f; if ((arg1->unk48 & 4) != 0) { fn_1_ED88(arg0, 0, HU3D_MOTATTR_LOOP); - } else { + } + else { fn_1_ED88(arg0, 2, HU3D_MOTATTR_LOOP); } - } else { + } + else { fn_1_ED88(arg0, 2, HU3D_MOTATTR_LOOP); } if ((arg1->unk48 & 4) != 0) { @@ -567,13 +581,15 @@ void fn_1_C944(omObjData* arg0, unkObjStruct* arg1) { if (var_f31 > temp_f27) { var_f31 -= 360.0f; } - } else if (((arg1->unk48 & 2) != 0) && (var_f31 < temp_f27)) { + } + else if (((arg1->unk48 & 2) != 0) && (var_f31 < temp_f27)) { var_f31 += 360.0f; } var_f30 = var_f31 + (var_f28 * (temp_f27 - var_f31)); if (var_f30 < 0.0f) { var_f30 += 360.0f; - } else { + } + else { if (var_f30 >= 360.0f) { var_f30 -= 360.0f; } @@ -582,7 +598,8 @@ void fn_1_C944(omObjData* arg0, unkObjStruct* arg1) { } } -s16 fn_1_CFAC(unkObjStruct* arg0, u8 arg1) { +s16 fn_1_CFAC(unkObjStruct *arg0, u8 arg1) +{ f32 var_f31; s16 var_r30; s16 var_r31; @@ -596,7 +613,8 @@ s16 fn_1_CFAC(unkObjStruct* arg0, u8 arg1) { if (lbl_1_data_0[var_r31] > arg0->unk68) { continue; } - } else if (lbl_1_data_0[var_r31] >= arg0->unk68) { + } + else if (lbl_1_data_0[var_r31] >= arg0->unk68) { continue; } if (var_f31 > (arg0->unk68 - lbl_1_data_0[var_r31])) { @@ -605,14 +623,16 @@ s16 fn_1_CFAC(unkObjStruct* arg0, u8 arg1) { } } } - } else if ((arg0->unk48 & 2) != 0) { + } + else if ((arg0->unk48 & 2) != 0) { for (var_r31 = 0; var_r31 < 5; var_r31++) { if (lbl_1_data_14[var_r31] != 0) { if (arg1 == 0) { if (lbl_1_data_0[var_r31] < arg0->unk68) { continue; } - } else if (lbl_1_data_0[var_r31] <= arg0->unk68) { + } + else if (lbl_1_data_0[var_r31] <= arg0->unk68) { continue; } if (var_f31 > (lbl_1_data_0[var_r31] - arg0->unk68)) { @@ -632,7 +652,8 @@ s16 fn_1_CFAC(unkObjStruct* arg0, u8 arg1) { return var_r30; } -void fn_1_D24C(unkObjStruct* arg0, f32 arg1, f32 arg2) { +void fn_1_D24C(unkObjStruct *arg0, f32 arg1, f32 arg2) +{ f32 var_f28; f32 var_f29; f32 var_f30; @@ -650,8 +671,9 @@ void fn_1_D24C(unkObjStruct* arg0, f32 arg1, f32 arg2) { arg0->unkE = ((var_f28 / 90.0f) * var_f31); } -void fn_1_D34C(omObjData* arg0, unkObjStruct* arg1) { - ModelData* temp_r30; +void fn_1_D34C(omObjData *arg0, unkObjStruct *arg1) +{ + ModelData *temp_r30; f32 temp_f28; f32 temp_f29; f32 temp_f30; @@ -672,7 +694,8 @@ void fn_1_D34C(omObjData* arg0, unkObjStruct* arg1) { arg1->unk48 &= ~8; temp_r30->unk_68 = 1.0f; Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); - } else if (temp_f30 > 10.0f) { + } + else if (temp_f30 > 10.0f) { if ((HuPadBtn[arg1->unk6] & 0x20) != 0) { arg1->unk60 = 0; arg1->unk68 = temp_f30; @@ -697,7 +720,8 @@ void fn_1_D34C(omObjData* arg0, unkObjStruct* arg1) { } if (temp_r30->unk_64 < var_f31) { temp_r30->unk_64 += 1.0f; - } else if (temp_r30->unk_64 > var_f31) { + } + else if (temp_r30->unk_64 > var_f31) { temp_r30->unk_64 -= 1.0f; } var_f31 = (temp_r30->unk_64 - temp_f29) / temp_f28; @@ -709,8 +733,9 @@ void fn_1_D34C(omObjData* arg0, unkObjStruct* arg1) { } } -void fn_1_D7F8(omObjData* arg0, unkObjStruct* arg1) { - ModelData* temp_r29; +void fn_1_D7F8(omObjData *arg0, unkObjStruct *arg1) +{ + ModelData *temp_r29; f32 temp_f28; f32 temp_f29; f32 var_f26; @@ -732,7 +757,8 @@ void fn_1_D7F8(omObjData* arg0, unkObjStruct* arg1) { var_f30 = 0.01f * (arg1->unk68 - 130.0f); if (var_f30 > 0.19999999f) { var_f30 = 0.19999999f; - } else if (var_f30 < 0.0f) { + } + else if (var_f30 < 0.0f) { var_f30 = 0.0f; } var_f31 += var_f30; @@ -743,7 +769,8 @@ void fn_1_D7F8(omObjData* arg0, unkObjStruct* arg1) { } if (temp_r29->unk_64 < var_f31) { temp_r29->unk_64 += 3.0f; - } else if (temp_r29->unk_64 > var_f31) { + } + else if (temp_r29->unk_64 > var_f31) { temp_r29->unk_64 -= 3.0f; } var_f31 = (temp_r29->unk_64 - temp_f29) / temp_f28; @@ -771,7 +798,8 @@ void fn_1_D7F8(omObjData* arg0, unkObjStruct* arg1) { Hu3DMotionSpeedSet(arg0->model[0], 2.0f); if ((arg1->unk6C - arg1->unk68) > 0.0f) { Hu3DMotionShiftSet(arg0->model[0], arg0->motion[7], 64.0f, 7.0f, HU3D_MOTATTR_NONE); - } else { + } + else { Hu3DMotionShiftSet(arg0->model[0], arg0->motion[7], 4.0f, 7.0f, HU3D_MOTATTR_NONE); } Hu3DMotionShiftSpeedSet(arg0->model[0], 2.0f); @@ -788,7 +816,8 @@ void fn_1_D7F8(omObjData* arg0, unkObjStruct* arg1) { var_f31 = 1.0f; Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); arg1->unk60++; - } else if (((arg1->unk6C - arg1->unk68) < 0.0f) && (Hu3DMotionShiftIDGet(arg0->model[0]) < 0)) { + } + else if (((arg1->unk6C - arg1->unk68) < 0.0f) && (Hu3DMotionShiftIDGet(arg0->model[0]) < 0)) { if (Hu3DMotionTimeGet(arg0->model[0]) >= 60.0f) { Hu3DMotionSpeedSet(arg0->model[0], 0.0f); } @@ -799,7 +828,8 @@ void fn_1_D7F8(omObjData* arg0, unkObjStruct* arg1) { if (++arg1->unkC > 0x3C) { if (fn_1_4E54(arg1->unk4A) == 0) { fn_1_4EEC(7U, 3U); - } else { + } + else { fn_1_4EEC(7U, 4U); } arg1->unkC = 0; @@ -811,7 +841,8 @@ void fn_1_D7F8(omObjData* arg0, unkObjStruct* arg1) { fn_1_4EEC(0x100U, 0U); if (fn_1_4E54(arg1->unk4A) == 0) { fn_1_F4D4(arg1, 15, 5); - } else { + } + else { fn_1_F4D4(arg1, 15, 6); } arg1->unkC = arg1->unkE = 0; @@ -829,8 +860,9 @@ void fn_1_D7F8(omObjData* arg0, unkObjStruct* arg1) { } } -void fn_1_E034(omObjData* arg0, unkObjStruct* arg1) { - ModelData* temp_r27; +void fn_1_E034(omObjData *arg0, unkObjStruct *arg1) +{ + ModelData *temp_r27; f32 var_f28; f32 var_f29; f32 var_f30; @@ -851,7 +883,7 @@ void fn_1_E034(omObjData* arg0, unkObjStruct* arg1) { Hu3DMotionShiftSet(arg0->model[0], arg0->motion[2], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); arg1->unkC = arg1->unkE = 0; arg1->unk68 = arg1->unk30.y; - + for (var_r29 = 0, var_r28 = -1; var_r29 < 5; var_r29++) { if (lbl_1_data_14[var_r29] != 0) { var_r28++; @@ -950,8 +982,9 @@ void fn_1_E034(omObjData* arg0, unkObjStruct* arg1) { } } -u8 fn_1_E8AC(omObjData* arg0, unkObjStruct* arg1) { - ModelData* temp_r29; +u8 fn_1_E8AC(omObjData *arg0, unkObjStruct *arg1) +{ + ModelData *temp_r29; f32 var_f31; s32 temp_r28; s16 temp_r27; @@ -975,7 +1008,8 @@ u8 fn_1_E8AC(omObjData* arg0, unkObjStruct* arg1) { arg1->unk24.x = (840.0000610351563 * cosd(var_f31)); arg1->unk24.y = 0.0f; arg1->unk24.z = (840.0000610351563 * sind(var_f31)); - } else { + } + else { arg1->unk24.x = (1050.0 * cosd(var_f31)); arg1->unk24.y = 0.0f; arg1->unk24.z = (1050.0 * sind(var_f31)); @@ -1004,7 +1038,7 @@ u8 fn_1_E8AC(omObjData* arg0, unkObjStruct* arg1) { break; case 3: fn_1_F4D4(arg1, 15, 8); - Hu3DModelAttrSet(arg0->model[0], 1); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); temp_r27 = lbl_1_data_1D8 + 1; temp_r28 = arg1->unk4; GWPlayerCoinWinSet(temp_r28, temp_r27); @@ -1014,7 +1048,8 @@ u8 fn_1_E8AC(omObjData* arg0, unkObjStruct* arg1) { return 0; } -s32 fn_1_ED88(omObjData* arg0, s16 arg1, u32 arg2) { +s32 fn_1_ED88(omObjData *arg0, s16 arg1, u32 arg2) +{ s16 var_r28; s16 var_r29; @@ -1025,26 +1060,28 @@ s32 fn_1_ED88(omObjData* arg0, s16 arg1, u32 arg2) { } } -void fn_1_EE78(void) { +void fn_1_EE78(void) +{ s16 var_r31; - unkObjStruct* var_r30; - + unkObjStruct *var_r30; + for (var_r31 = 0; var_r31 < 4; var_r31++) { - var_r30 = (unkObjStruct*)lbl_1_bss_C0[var_r31]->data; + var_r30 = (unkObjStruct *)lbl_1_bss_C0[var_r31]->data; if (fn_1_F4C0(var_r30, 15) == 8) { Hu3DMotionShiftSet(lbl_1_bss_C0[var_r31]->model[0], lbl_1_bss_C0[var_r31]->motion[6], 0.0f, 7.0f, HU3D_MOTATTR_NONE); } } } -void fn_1_EF50(void) { - unkObjStruct* var_r30; +void fn_1_EF50(void) +{ + unkObjStruct *var_r30; s16 var_r28; s16 var_r29; s16 var_r31; - + for (var_r31 = 0; var_r31 < 4; var_r31++) { - var_r30 = (unkObjStruct*)lbl_1_bss_C0[var_r31]->data; + var_r30 = (unkObjStruct *)lbl_1_bss_C0[var_r31]->data; if (fn_1_F4C0(var_r30, 15) == 8) { var_r28 = Hu3DData[lbl_1_bss_C0[var_r31]->model[0]].unk_08; var_r29 = Hu3DData[lbl_1_bss_C0[var_r31]->model[0]].unk_0C; @@ -1055,9 +1092,10 @@ void fn_1_EF50(void) { } } -s16 fn_1_F0FC(void) { +s16 fn_1_F0FC(void) +{ s16 var_r31; - + for (var_r31 = 0; var_r31 < 4; var_r31++) { if (lbl_1_bss_B8[var_r31] != -1) { return lbl_1_bss_B8[var_r31]; @@ -1066,21 +1104,23 @@ s16 fn_1_F0FC(void) { return 0; } -void fn_1_F168(void) { - omObjData* temp_r31; +void fn_1_F168(void) +{ + omObjData *temp_r31; s16 var_r30; - unkObjStruct* var_r29; - + unkObjStruct *var_r29; + for (var_r30 = 0; var_r30 < 4; var_r30++) { temp_r31 = lbl_1_bss_C0[lbl_1_bss_B8[var_r30]]; - var_r29 = (unkObjStruct*)temp_r31->data; + var_r29 = (unkObjStruct *)temp_r31->data; fn_1_F4D4(var_r29, 15, 1); Hu3DMotionShiftSet(temp_r31->model[0], temp_r31->motion[2], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); } } -void fn_1_F228(void) { - omObjData* temp_r30; +void fn_1_F228(void) +{ + omObjData *temp_r30; s16 temp_r0; s16 var_r29; s32 temp_r27; @@ -1089,12 +1129,12 @@ void fn_1_F228(void) { u32 temp_r0_2; u32 temp_r3; u32 temp_r3_2; - unkObjStruct* temp_r31; - + unkObjStruct *temp_r31; + for (var_r29 = 0; var_r29 < 4; var_r29++) { if (lbl_1_bss_B8[var_r29] != -1) { temp_r30 = lbl_1_bss_C0[lbl_1_bss_B8[var_r29]]; - temp_r31 = (unkObjStruct*)temp_r30->data; + temp_r31 = (unkObjStruct *)temp_r30->data; if (temp_r31->unkA == 0) { switch (GWPlayerCfg[temp_r31->unk4].diff) { case 0: @@ -1117,9 +1157,11 @@ void fn_1_F228(void) { temp_r31->unkA = -1; temp_r31->unkC = temp_r31->unkE = 0; fn_1_F4D4(temp_r31, 15, 2); - } else if (temp_r31->unkA == -1) { + } + else if (temp_r31->unkA == -1) { temp_r31->unkA = lbl_1_data_1D8; - } else { + } + else { temp_r31->unkA--; temp_r31->unk24 = temp_r31->unk18; temp_r31->unkC = 0; @@ -1134,15 +1176,18 @@ void fn_1_F228(void) { } } -u16 fn_1_F4C0(unkObjStruct* arg0, u16 arg1) { +u16 fn_1_F4C0(unkObjStruct *arg0, u16 arg1) +{ return arg0->unk0 & arg1; } -void fn_1_F4D4(unkObjStruct* arg0, u16 arg1, u16 arg2) { +void fn_1_F4D4(unkObjStruct *arg0, u16 arg1, u16 arg2) +{ arg0->unk0 &= ~arg1; arg0->unk0 |= arg2; } -s32 fn_1_F4FC(s32 arg0) { +s32 fn_1_F4FC(s32 arg0) +{ return lbl_1_bss_B8[arg0]; } diff --git a/src/REL/m441Dll/main.c b/src/REL/m441Dll/main.c index 1bc97759..d1a44ae5 100644 --- a/src/REL/m441Dll/main.c +++ b/src/REL/m441Dll/main.c @@ -1098,7 +1098,7 @@ void fn_1_40A8(omObjData *object) work->unk1C.x = temp_f24; work->unk1C.y = 0; work->unk1C.z = 0; - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); work->unkE0 = Hu3DParManLink(lbl_1_bss_2C, &lbl_1_data_48C); Hu3DParManPosSet(work->unkE0, work->unk28.x, work->unk28.y, work->unk28.z); Hu3DParManAttrReset(work->unkE0, 1); @@ -1198,7 +1198,7 @@ void fn_1_40A8(omObjData *object) } if (Hu3DMotionEndCheck(object->model[0])) { work->unk98++; - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); Hu3DMotionSet(object->model[0], object->motion[0]); Hu3DMotionSet(object->model[2], object->motion[14]); for (i = 0; i < 4; i++) { @@ -1249,7 +1249,7 @@ void fn_1_40A8(omObjData *object) case 2014: work->unk64.x++; if (30.0f == work->unk64.x) { - Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); work->unkE0 = Hu3DParManLink(lbl_1_bss_2C, &lbl_1_data_48C); Hu3DParManPosSet(work->unkE0, work->unk4C.x, work->unk4C.y + 20, work->unk4C.z); Hu3DParManAttrReset(work->unkE0, 1); @@ -1322,15 +1322,15 @@ void fn_1_53E8(omObjData *object) CharModelMotionIndexSet(work->unkB4, object->motion[2], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); CharModelMotionIndexSet(work->unkB4, object->motion[7], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); CharModelMotionIndexSet(work->unkB4, object->motion[3], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03)); - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(object->model[0], 2); Hu3DMotionSet(object->model[0], object->motion[1]); object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x3F)); for (i = 11; i <= 12; i++) { object->motion[i] = Hu3DJointMotionFile(object->model[1], lbl_1_data_2B0[i - 11]); } - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(object->model[1], 0x40000001); Hu3DModelLayerSet(object->model[1], 2); Hu3DModelHookSet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), object->model[1]); @@ -1338,7 +1338,7 @@ void fn_1_53E8(omObjData *object) for (i = 13; i <= 15; i++) { object->motion[i] = Hu3DJointMotionFile(object->model[2], lbl_1_data_2B8[i - 13]); } - Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(object->model[2], 0x40000001); Hu3DModelLayerSet(object->model[2], 2); Hu3DModelHookSet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 4), object->model[2]); @@ -1360,7 +1360,7 @@ void fn_1_53E8(omObjData *object) Hu3DModelShadowSet(object->model[i]); } for (i = 0; i < 3; i++) { - Hu3DModelAttrReset(object->model[i], 1); + Hu3DModelAttrReset(object->model[i], HU3D_ATTR_DISPOFF); } if (GWPlayerCfg[work->unkB0].iscom) { switch (GWPlayerCfg[work->unkB0].diff) { @@ -1399,7 +1399,7 @@ typedef struct work_713C { void fn_1_5B2C(omObjData *object) { - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); fn_1_24(object->work[0] + 4096, object->model[0]); lbl_1_bss_18[object->work[0]]--; Hu3DParManKill(((Work713C *)object->data)->unk30); @@ -1544,7 +1544,7 @@ void fn_1_5C04(omObjData *object) temp_r31->unk30 = Hu3DParManLink(lbl_1_bss_34, &lbl_1_data_3EC); Hu3DParManPosSet(temp_r31->unk30, temp_r31->unk0.x, temp_r31->unk0.y, temp_r31->unk0.z); Hu3DParManColorSet(temp_r31->unk30, object->work[0]); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); temp_r28 = lbl_1_bss_48[temp_r22]; temp_r29 = temp_r28->data; temp_r29->unkC4[object->work[0]]++; @@ -1570,7 +1570,7 @@ void fn_1_713C(omObjData *object) else { object->model[0] = mdlId; } - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(object->model[0], 0x40000003); Hu3DModelLayerSet(object->model[0], 3); Hu3DModelShadowSet(object->model[0]); @@ -1591,7 +1591,7 @@ void fn_1_713C(omObjData *object) Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unk30), 4); } Hu3DModelAttrReset(object->model[0], 0x40000002); - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); object->func = fn_1_5C04; } @@ -1662,7 +1662,7 @@ void fn_1_74F4(s32 arg0) void fn_1_7958(omObjData *object) { - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); fn_1_24(object->work[0] + 4096, object->model[0]); Hu3DParManKill(((Work713C *)object->data)->unk30); omDelObjEx(lbl_1_bss_1DC, object); @@ -1743,7 +1743,7 @@ void fn_1_8518(omObjData *object) work = object->data; work->unk18.y = 6.0f; work->unk18.x = (frandf() * 60.0f) - 30.0f; - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(object->model[0], 0x40000003); Hu3DModelLayerSet(object->model[0], 3); Hu3DModelShadowSet(object->model[0]); @@ -1764,7 +1764,7 @@ void fn_1_8518(omObjData *object) Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unk30), 4); } Hu3DModelAttrReset(object->model[0], 0x40000002); - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); object->func = fn_1_803C; } @@ -1804,7 +1804,7 @@ s32 fn_1_8AA0(s32 arg0) Hu3DModelPosSet(model, ((radius * sind(angle)) + (frandf() * 20.0f)) - 10, -60.0f, radius * cosd(angle)); Hu3DModelScaleSet(model, 2, 2, 2); Hu3DModelAttrReset(model, 0x40000002); - Hu3DModelAttrReset(model, 1); + Hu3DModelAttrReset(model, HU3D_ATTR_DISPOFF); return 1; } } @@ -1861,7 +1861,7 @@ void fn_1_8D58(omObjData *object) case 1003: if (lbl_1_bss_19E < 0) { lbl_1_bss_19E = MGSeqStartCreate(); - Hu3DModelAttrSet(lbl_1_bss_4C->model[2], 1); + Hu3DModelAttrSet(lbl_1_bss_4C->model[2], HU3D_ATTR_DISPOFF); } else { if (lbl_1_bss_198 < 0 && (MGSeqStatGet(lbl_1_bss_19E) & 0x10)) { @@ -1892,7 +1892,7 @@ void fn_1_8D58(omObjData *object) lbl_1_bss_19C = -1; lbl_1_bss_19E = MGSeqFinishCreate(); fn_1_1F58(100); - Hu3DModelAttrReset(lbl_1_bss_4C->model[2], 1); + Hu3DModelAttrReset(lbl_1_bss_4C->model[2], HU3D_ATTR_DISPOFF); } else { for (i = 0; i < 4; i++) { @@ -2006,23 +2006,23 @@ void fn_1_9F40(omObjData *object) object->work[0] = 1000; object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x38)); Hu3DModelAttrSet(object->model[0], 0x4001); - Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[0], 0); - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); Hu3DModelShadowMapSet(object->model[0]); omSetTra(object, 0, -31, 0); object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x39)); Hu3DModelAttrSet(object->model[1], 0x4001); - Hu3DModelAttrSet(object->model[1], 0x40000002); + Hu3DModelAttrSet(object->model[1], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[1], 0); Hu3DModelPosSet(object->model[1], 0, -31, 0); - Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x3A)); Hu3DModelAttrSet(object->model[2], 0x4001); - Hu3DModelAttrSet(object->model[2], 0x40000002); + Hu3DModelAttrSet(object->model[2], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[2], 0); Hu3DModelPosSet(object->model[2], 0, -31, 0); - Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); for (singleNo = 0; singleNo < 1; singleNo++) { lbl_1_bss_10[singleNo] = Hu3DModelCreateFile(lbl_1_data_368[singleNo]); Hu3DModelAttrSet(lbl_1_bss_10[singleNo], 0x4001); @@ -2081,7 +2081,7 @@ void ObjectSetup(void) for (i = 0; i < 3; i++) { lbl_1_bss_18[i] = 0; lbl_1_bss_12[i] = Hu3DModelCreateFile(lbl_1_data_314[i]); - Hu3DModelAttrSet(lbl_1_bss_12[i], 1); + Hu3DModelAttrSet(lbl_1_bss_12[i], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(lbl_1_bss_12[i], 0x40000003); } for (i = 0; i < 20; i++) { diff --git a/src/REL/m442Dll/main.c b/src/REL/m442Dll/main.c index 2e05e637..468d8998 100644 --- a/src/REL/m442Dll/main.c +++ b/src/REL/m442Dll/main.c @@ -514,7 +514,7 @@ void fn_1_E88(omObjData *object) object->motion[var_r29 + var_r28] = CharModelMotionCreate(var_r30->unk_10, var_r30->unk_10 + lbl_1_data_118[var_r28]); } Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); Hu3DMotionOverlaySet(object->model[0], object->motion[7]); CharModelVoiceEnableSet(var_r30->unk_10, object->motion[5], 0); object->trans.x = lbl_1_data_120[var_r30->unk_02].x; @@ -522,13 +522,13 @@ void fn_1_E88(omObjData *object) object->trans.z = lbl_1_data_120[var_r30->unk_02].z; object->model[2] = Hu3DParticleCreate(lbl_1_bss_11F00, 0x32); Hu3DParticleHookSet(object->model[2], fn_1_7890); - Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); Hu3DModelLayerSet(object->model[2], 1); var_r30->unk_5C = -1; var_r30->unk_40 = -1; object->model[3] = Hu3DHookFuncCreate(fn_1_5EDC); Hu3DModelLayerSet(object->model[3], 7); - Hu3DModelAttrSet(object->model[3], 1); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); var_r27 = &Hu3DData[object->model[3]]; var_r27->unk_120 = var_r30; CharModelDataClose(var_r30->unk_10); @@ -899,7 +899,7 @@ void fn_1_2254(omObjData *object) else { spC = lbl_1_bss_C9F8[var_r31->unk_48].unk_00; } - Hu3DModelAttrSet(object->model[3], 1); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); if ((fn_1_3AE4(object, &spC) == 1) && ((var_r31->unk_48 >= 0 && ((lbl_1_bss_C9F8[var_r31->unk_48].unk_10 == object) || (lbl_1_bss_C9F8[var_r31->unk_48].unk_10 == NULL))) @@ -947,7 +947,7 @@ void fn_1_2254(omObjData *object) var_r26 = Hu3DData[object->model[2]].unk_120; *(s16 *)var_r26 = 0; (void)var_r26; - Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(object->model[2], object->trans.x + (140.0 * sind(object->rot.y)), object->trans.y, object->trans.z + (140.0 * cosd(object->rot.y))); } @@ -995,7 +995,7 @@ void fn_1_2254(omObjData *object) } if (var_r31->unk_40 >= 0) { if (var_r31->unk_0C == 0) { - Hu3DModelAttrReset(object->model[3], 1); + Hu3DModelAttrReset(object->model[3], HU3D_ATTR_DISPOFF); } switch (var_r31->unk_40) { case 0: @@ -1020,7 +1020,7 @@ void fn_1_2254(omObjData *object) var_r31->unk_42++; } else { - Hu3DModelAttrSet(object->model[3], 1); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); } Hu3DModelPosSet(object->model[3], object->trans.x, 300.0f + object->trans.y, object->trans.z); if ((var_r29 >= 0 && var_r29 != var_r31->unk_30) || var_r28 != var_r31->unk_34) { @@ -1272,8 +1272,8 @@ void fn_1_3C20(omObjData *object) var_r30 = object->data; Hu3DMotionOverlayReset(object->model[0]); - Hu3DModelAttrSet(object->model[1], 1); - Hu3DModelAttrSet(object->model[3], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); var_r30->unk_3C = 10; object->func = fn_1_3C94; } @@ -1914,12 +1914,12 @@ void fn_1_6D24(omObjData *object) var_r29->unk_18 = 1.0f; object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M442, 0x02)); Hu3DModelLayerSet(object->model[0], 7); - Hu3DModelAttrSet(object->model[0], 0x40000001); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); object->model[1] = Hu3DParticleCreate(lbl_1_bss_11EFC, 0x64); Hu3DParticleHookSet(object->model[1], fn_1_7EBC); Hu3DModelLayerSet(object->model[1], 7); - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); for (var_r27 = 0, var_r30 = 1; var_r30 < 24; var_r30++) { for (var_r28 = 1; var_r28 < 24; var_r28++) { if (*(lbl_1_bss_11C6D + (var_r30 * 0x19) + var_r28) == 0) { @@ -1962,8 +1962,8 @@ void fn_1_72C4(omObjData *object) switch (var_r31->unk_02) { case 0: if (var_r31->unk_00_field0) { - Hu3DModelAttrReset(object->model[0], 1); - Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); var_r31->unk_02 = 1; var_r31->unk_18 = 0.0f; var_r31->unk_0C = 60; diff --git a/src/REL/m443Dll/main.c b/src/REL/m443Dll/main.c index f949fe1f..e79d3c0c 100644 --- a/src/REL/m443Dll/main.c +++ b/src/REL/m443Dll/main.c @@ -8,6 +8,7 @@ #include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" +#include "game/sprite.h" #include "game/wipe.h" #include "math.h" #include "rel_sqrt_consts.h" @@ -630,7 +631,7 @@ void fn_1_2DD8(M443DllUnkStruct *arg0) arg0->unk_1C[var_r30] = -1; if (lbl_1_data_108[var_r30].unk_00 != 0) { arg0->unk_1C[var_r30] = espEntry(lbl_1_data_108[var_r30].unk_00, lbl_1_data_108[var_r30].unk_04, 0); - espAttrSet(arg0->unk_1C[var_r30], 8); + espAttrSet(arg0->unk_1C[var_r30], HUSPR_ATTR_LINEAR); espDispOff(arg0->unk_1C[var_r30]); } } @@ -840,10 +841,10 @@ void fn_1_3770(omObjData *arg0) break; } if (var_r24 != 0) { - Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrSet(arg0->model[0], 1); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); } for (var_r30 = 0; var_r30 < 4; var_r30++) { sp30[var_r30] = var_r28[var_r30 + 6].unk_04; diff --git a/src/REL/m443Dll/map.c b/src/REL/m443Dll/map.c index bab11988..48aef505 100644 --- a/src/REL/m443Dll/map.c +++ b/src/REL/m443Dll/map.c @@ -29,7 +29,7 @@ void fn_1_4AB4(omObjData *object) Hu3DModelLayerSet(object->model[0], 2); object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 2)); Hu3DModelLayerSet(object->model[2], 2); - Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M443, 4)); Hu3DModelLayerSet(object->model[3], 2); Hu3DMotionSpeedSet(object->model[3], 0.0f); @@ -148,7 +148,7 @@ void fn_1_4D14(omObjData *object) } Hu3DMotionSpeedSet(object->model[var_r29 + 9], 0.95f); if (var_r28 == 0) { - Hu3DModelAttrSet(object->model[var_r29 + 9], 1); + Hu3DModelAttrSet(object->model[var_r29 + 9], HU3D_ATTR_DISPOFF); } } } @@ -172,10 +172,10 @@ void fn_1_4D14(omObjData *object) Hu3DMotionSpeedSet(object->model[3], 1.0f); } else if (fn_1_42E4() == 5) { - Hu3DModelAttrSet(object->model[3], 1); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); } if (fn_1_42E4() == 5) { - Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); Hu3DModelShadowMapSet(object->model[0]); Hu3DModelShadowMapSet(object->model[2]); } diff --git a/src/REL/m443Dll/player.c b/src/REL/m443Dll/player.c index a251d1bd..d54072a6 100644 --- a/src/REL/m443Dll/player.c +++ b/src/REL/m443Dll/player.c @@ -75,8 +75,8 @@ typedef struct M443DllWorkStruct { Vec unkDC; Vec unkE8; char unkF4[0xC]; - M443DllCameraStruct* unk100; - M443DllCameraStruct* unk104; + M443DllCameraStruct *unk100; + M443DllCameraStruct *unk104; union { M443DllUnkStruct unk108s; struct { @@ -94,88 +94,81 @@ typedef struct M443DllStruct8 { u32 unk10; } M443DllStruct8; // copy of UnkM417Struct8 -void fn_1_5680(omObjData* object); -void fn_1_5BD4(omObjData* object); -void fn_1_6458(omObjData* object); -void fn_1_6674(omObjData* object); -void fn_1_6750(omObjData* object); -void fn_1_69B4(omObjData* object); -void fn_1_6B90(omObjData* object); -void fn_1_6DA8(omObjData* object); -void fn_1_7130(omObjData* object); -void fn_1_7340(omObjData* object); -void fn_1_8138(omObjData*, u32); -s32 fn_1_82C4(omObjData* object); -void fn_1_8508(omObjData*); -void fn_1_8680(omObjData* object); +void fn_1_5680(omObjData *object); +void fn_1_5BD4(omObjData *object); +void fn_1_6458(omObjData *object); +void fn_1_6674(omObjData *object); +void fn_1_6750(omObjData *object); +void fn_1_69B4(omObjData *object); +void fn_1_6B90(omObjData *object); +void fn_1_6DA8(omObjData *object); +void fn_1_7130(omObjData *object); +void fn_1_7340(omObjData *object); +void fn_1_8138(omObjData *, u32); +s32 fn_1_82C4(omObjData *object); +void fn_1_8508(omObjData *); +void fn_1_8680(omObjData *object); f32 fn_1_8AC8(u32, f32); f32 fn_1_8C68(f32); f32 fn_1_8C8C(s32, f32); f32 fn_1_8D00(u32, f32); f32 fn_1_8D74(f32); void fn_1_8E34(s32); -void fn_1_8FFC(u32, Vec*, f32, f32); +void fn_1_8FFC(u32, Vec *, f32, f32); void fn_1_95A4(u32); -omObjData* lbl_1_bss_90[4]; +omObjData *lbl_1_bss_90[4]; s32 lbl_1_bss_78[6]; -char* lbl_1_data_264[0x8] = { - "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", - "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r" -}; +char *lbl_1_data_264[0x8] = { "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r", "itemhook-r" }; u32 lbl_1_data_284[8][2] = { - {0x4A0005, 0x4A0006}, {0x4A0007, 0x4A0008}, - {0x4A0009, 0x4A000A}, {0x4A000B, 0x4A000C}, - {0x4A000D, 0x4A000E}, {0x4A000F, 0x4A0010}, - {0x4A0011, 0x4A0012}, {0x4A0013, 0x4A0014}, -}; -u32 lbl_1_data_2C4[4] = { - 0, 0x4A0020, 0x17, 0x72 + { 0x4A0005, 0x4A0006 }, + { 0x4A0007, 0x4A0008 }, + { 0x4A0009, 0x4A000A }, + { 0x4A000B, 0x4A000C }, + { 0x4A000D, 0x4A000E }, + { 0x4A000F, 0x4A0010 }, + { 0x4A0011, 0x4A0012 }, + { 0x4A0013, 0x4A0014 }, }; +u32 lbl_1_data_2C4[4] = { 0, 0x4A0020, 0x17, 0x72 }; -M443DllStruct8 lbl_1_data_2D4[4] = { - { 0x0, 0.2f, 0.0f, -1.0f, 0x40000001 }, - { 0x1, 0.2f, 0.0f, -1.0f, 0x40000001 }, - { 0x2, 0.2f, 0.0f, -1.0f, 0x0 }, - { 0x3, 0.2f, 0.0f, -1.0f, 0x0 } -}; +M443DllStruct8 lbl_1_data_2D4[4] = { { 0x0, 0.2f, 0.0f, -1.0f, 0x40000001 }, { 0x1, 0.2f, 0.0f, -1.0f, 0x40000001 }, { 0x2, 0.2f, 0.0f, -1.0f, 0x0 }, + { 0x3, 0.2f, 0.0f, -1.0f, 0x0 } }; s32 lbl_1_data_324[4] = { - 0x727, 0x728, 0x729, 0x72A, + 0x727, + 0x728, + 0x729, + 0x72A, }; s32 lbl_1_data_334[4] = { - 0x72B, 0x72C, 0x72D, 0x72E, + 0x72B, + 0x72C, + 0x72D, + 0x72E, }; s32 lbl_1_data_344[4] = { - 0x72F, 0x730, 0x731, 0x732, + 0x72F, + 0x730, + 0x731, + 0x732, }; s32 lbl_1_data_354[4] = { - 0x736, 0x737, 0x738, 0x739, -}; -Vec lbl_1_data_364[4] = { - { 0.0f, 180.0f, 500.0f }, - { -150.0f, 110.0f, 500.0f }, - { 170.0f, 80.0f, 500.0f }, - { 350.0f, 0.0f, 500.0f } -}; -Vec lbl_1_data_394[4] = { - { -225.0f, 0.0f, 1000.0f }, - { -75.0f, 0.0f, 1000.0f }, - { 75.0f, 0.0f, 1000.0f }, - { 225.0f, 0.0f, 1000.0f } -}; -Vec lbl_1_data_3C4[4] = { - { 250.0f, 0.0f, -1000.0f }, - { -350.0f, 0.0f, -1700.0f }, - { 450.0f, 0.0f, -2200.0f }, - { 0.0f, 0.0f, -3000.0f } + 0x736, + 0x737, + 0x738, + 0x739, }; +Vec lbl_1_data_364[4] = { { 0.0f, 180.0f, 500.0f }, { -150.0f, 110.0f, 500.0f }, { 170.0f, 80.0f, 500.0f }, { 350.0f, 0.0f, 500.0f } }; +Vec lbl_1_data_394[4] = { { -225.0f, 0.0f, 1000.0f }, { -75.0f, 0.0f, 1000.0f }, { 75.0f, 0.0f, 1000.0f }, { 225.0f, 0.0f, 1000.0f } }; +Vec lbl_1_data_3C4[4] = { { 250.0f, 0.0f, -1000.0f }, { -350.0f, 0.0f, -1700.0f }, { 450.0f, 0.0f, -2200.0f }, { 0.0f, 0.0f, -3000.0f } }; -void fn_1_5444(Process* arg0) { +void fn_1_5444(Process *arg0) +{ u32 sp18[4]; u32 sp8[4]; - omObjData* var_r28; + omObjData *var_r28; u32 var_r29; s16 var_r30; s16 var_r31; @@ -184,7 +177,7 @@ void fn_1_5444(Process* arg0) { sp18[var_r31] = GWPlayerCfg[var_r31].group; sp8[var_r31] = var_r31; } - + for (var_r31 = 0; var_r31 < 3; var_r31++) { for (var_r30 = var_r31 + 1; var_r30 < 4; var_r30++) { if (sp18[var_r31] > sp18[var_r30]) { @@ -197,33 +190,35 @@ void fn_1_5444(Process* arg0) { } } } - + for (var_r31 = 0; var_r31 < 4; var_r31++) { lbl_1_bss_78[sp8[var_r31]] = (s16)var_r31; } omMakeGroupEx(arg0, 0, 4); omGetGroupMemberListEx(arg0, 0); - + for (var_r31 = 0; var_r31 < 4; var_r31++) { var_r28 = lbl_1_bss_90[var_r31] = omAddObjEx(arg0, 0x28, 5, 4, 0, fn_1_5680); var_r28->work[0] = var_r31; } } -void fn_1_565C(void) { +void fn_1_565C(void) +{ CharModelKill(-1); } -void fn_1_5680(omObjData* object) { - f32 spC[4] = {0.25f, 0.5f, 0.75f, 1.0f}; +void fn_1_5680(omObjData *object) +{ + f32 spC[4] = { 0.25f, 0.5f, 0.75f, 1.0f }; s32 sp8; f32 temp_f0; s32 temp_r27; s32 temp_r3; s32 var_r29; u32 temp_r25; - M443DllWorkStruct* temp_r31; - HsfanimStruct01* var_r28; + M443DllWorkStruct *temp_r31; + HsfanimStruct01 *var_r28; object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x134, MEMORY_DEFAULT_NUM); temp_r31 = object->data; @@ -244,32 +239,33 @@ void fn_1_5680(omObjData* object) { object->model[2] = Hu3DModelCreateFile(lbl_1_data_284[temp_r27][1]); Hu3DModelLayerSet(object->model[2], 4); Hu3DMotionSpeedSet(object->model[2], 0.0f); - Hu3DModelAttrSet(object->model[2], 1); - + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + for (var_r29 = 0; var_r29 < 4; var_r29++) { if (lbl_1_data_2C4[var_r29] < 0x10000) { object->motion[var_r29] = CharModelMotionCreate(temp_r27, lbl_1_data_2C4[var_r29]); - } else { - object->motion[var_r29] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(temp_r27 + lbl_1_data_2C4[var_r29], 0x10000000, HEAP_DATA)); + } + else { + object->motion[var_r29] + = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(temp_r27 + lbl_1_data_2C4[var_r29], 0x10000000, HEAP_DATA)); } } CharModelMotionDataClose(temp_r27); temp_r3 = Hu3DParticleCreate(HuSprAnimReadFile(0x4A001D), 0xC8); object->model[3] = temp_r3; Hu3DModelLayerSet(temp_r3, 4); - var_r28 = ((ParticleData*)Hu3DData[temp_r3].unk_120)->unk_48; - + var_r28 = ((ParticleData *)Hu3DData[temp_r3].unk_120)->unk_48; + for (var_r29 = 0; var_r29 < 0xC8; var_r29++, var_r28++) { var_r28->unk2C = 0.0f; var_r28->unk40.a = 0; var_r28->unk00 = 0; } - - + object->trans.x = temp_r31->unkC4.x = temp_r31->unkDC.x = (100.0f * (4.0f * object->work[0])) - 600.0f; object->trans.y = temp_r31->unkC4.y = temp_r31->unkDC.y = 0.0f; object->trans.z = temp_r31->unkC4.z = temp_r31->unkDC.z = 0.0f; - + temp_r31->unkD0.x = temp_r31->unkD0.y = temp_r31->unkD0.z = 0.0f; temp_r31->unkE8.x = temp_r31->unkE8.y = temp_r31->unkE8.z = 0.0f; temp_r31->unk48 = temp_r31->unk4C = 0.0f; @@ -300,12 +296,13 @@ void fn_1_5680(omObjData* object) { object->func = fn_1_5BD4; } -void fn_1_5BD4(omObjData* object) { +void fn_1_5BD4(omObjData *object) +{ Vec sp8; f32 var_f29; f32 var_f30; f32 var_f31; - M443DllWorkStruct* temp_r31; + M443DllWorkStruct *temp_r31; temp_r31 = object->data; temp_r31->unk10 = 0; @@ -314,7 +311,8 @@ void fn_1_5BD4(omObjData* object) { if (temp_r31->unk108 != 0) { if (temp_r31->unk24 != 0) { fn_1_6DA8(object); - } else { + } + else { temp_r31->unk14 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx]; temp_r31->unk10 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx]; var_f29 = HuPadTrigR[GWPlayerCfg[object->work[0]].pad_idx]; @@ -361,7 +359,7 @@ void fn_1_5BD4(omObjData* object) { sp8.y = 240.0 + (120.0 * (var_f31 * sin(M_PI * ((450.0f * var_f31) + (90.0f * object->work[0])) / 180.0))); temp_r31->unk100->unk_44 = sp8.x + (var_f30 * (temp_r31->unk100->unk_78 - sp8.x)); temp_r31->unk100->unk_48 = sp8.y + (var_f30 * (temp_r31->unk100->unk_7C - sp8.y)); - temp_r31->unk100->unk_40 = 0.01f + ((temp_r31->unk100->unk_80 - 0.01f) * var_f31); + temp_r31->unk100->unk_40 = 0.01f + ((temp_r31->unk100->unk_80 - 0.01f) * var_f31); temp_r31->unk100->unk_28.y = 90.0f + ((temp_r31->unk100->unk_70 - 90.0f) * var_f31); temp_r31->unk100->unk_34 = 500.0f + (-200.0f * var_f30); if (var_f31 >= 1.0f) { @@ -379,7 +377,7 @@ void fn_1_5BD4(omObjData* object) { var_f31 = 0.2f; } temp_r31->unk100->unk_28.x = fn_1_488C(temp_r31->unk100->unk_28.x, -12.0f, var_f31); - temp_r31->unk100->unk_28.y = fn_1_488C(temp_r31->unk100->unk_28.y, 0.0f, var_f31); + temp_r31->unk100->unk_28.y = fn_1_488C(temp_r31->unk100->unk_28.y, 0.0f, var_f31); temp_r31->unk100->unk_34 += ((1000.0f - temp_r31->unk100->unk_34) * (0.5f * var_f31)); break; } @@ -387,7 +385,7 @@ void fn_1_5BD4(omObjData* object) { PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); fn_1_7130(object); fn_1_69B4(object); - + if (fn_1_42CC() == 2) { temp_r31->unk100->unk_1C = temp_r31->unkDC; temp_r31->unk100->unk_1C.y += 150.0f; @@ -400,11 +398,12 @@ void fn_1_5BD4(omObjData* object) { } } -void fn_1_6458(omObjData* object) { +void fn_1_6458(omObjData *object) +{ f32 var_f31; s32 var_r29; - M443DllWorkStruct* temp_r31; - void* temp_r4; + M443DllWorkStruct *temp_r31; + void *temp_r4; temp_r31 = object->data; var_r29 = 0; @@ -413,7 +412,8 @@ void fn_1_6458(omObjData* object) { temp_r31->unk18 = 0.0f; if (temp_r31->unk24 != 0) { fn_1_6DA8(object); - } else { + } + else { temp_r31->unk14 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx]; temp_r31->unk10 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx]; var_f31 = HuPadTrigR[GWPlayerCfg[object->work[0]].pad_idx]; @@ -441,9 +441,10 @@ void fn_1_6458(omObjData* object) { } } -void fn_1_6674(omObjData* object) { - M443DllWorkStruct* temp_r31; - void* temp_r4; +void fn_1_6674(omObjData *object) +{ + M443DllWorkStruct *temp_r31; + void *temp_r4; temp_r31 = object->data; temp_r31->unk10 = 0; @@ -462,8 +463,9 @@ void fn_1_6674(omObjData* object) { } } -void fn_1_6750(omObjData* object) { - M443DllWorkStruct* temp_r31; +void fn_1_6750(omObjData *object) +{ + M443DllWorkStruct *temp_r31; temp_r31 = object->data; PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); @@ -471,8 +473,8 @@ void fn_1_6750(omObjData* object) { fn_1_69B4(object); switch (temp_r31->unk34) { case 0: - Hu3DModelAttrSet(object->model[2], 1); - Hu3DModelAttrSet(object->model[3], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); fn_1_95A4(object->work[0]); Hu3DModelShadowSet(object->model[0]); temp_r31->unk8 = -1; @@ -481,8 +483,9 @@ void fn_1_6750(omObjData* object) { temp_r31->unkC4 = lbl_1_data_364[fn_1_4368(object->work[0])]; temp_r31->unkDC = lbl_1_data_3C4[fn_1_4368(object->work[0])]; temp_r31->unk58 = 30.0f; - } else { - Hu3DModelAttrSet(object->model[1], 1); + } + else { + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); temp_r31->unkC4 = lbl_1_data_394[object->work[0]]; } temp_r31->unk34++; @@ -499,7 +502,8 @@ void fn_1_6750(omObjData* object) { if (fn_1_42FC() == 1) { if (fn_1_4368(object->work[0]) == 0) { fn_1_8138(object, 2); - } else { + } + else { fn_1_8138(object, 3); } temp_r31->unk34++; @@ -514,8 +518,9 @@ void fn_1_6750(omObjData* object) { } } -void fn_1_69B4(omObjData* object) { - M443DllWorkStruct* temp_r31; +void fn_1_69B4(omObjData *object) +{ + M443DllWorkStruct *temp_r31; temp_r31 = object->data; temp_r31->unk40++; @@ -533,10 +538,11 @@ void fn_1_69B4(omObjData* object) { if (temp_r31->unk20 == 0) { Hu3DModelHookSet(object->model[1], "hook", object->model[0]); } - - temp_r31->unkDC.z = temp_r31->unkC4.z= -(temp_r31->unk78 - temp_r31->unkBC); + + temp_r31->unkDC.z = temp_r31->unkC4.z = -(temp_r31->unk78 - temp_r31->unkBC); fn_1_8138(object, 1); - } else { + } + else { if (temp_r31->unk20 != 0) { Hu3DModelHookReset(object->model[1]); } @@ -550,18 +556,17 @@ void fn_1_69B4(omObjData* object) { Hu3DModelRotSet(object->model[2], 0.0f, temp_r31->unk58, 0.0f); } -void fn_1_6B90(omObjData* object) { - M443DllWorkStruct* temp_r29; - M443DllWorkStruct* temp_r27 = object->data; +void fn_1_6B90(omObjData *object) +{ + M443DllWorkStruct *temp_r29; + M443DllWorkStruct *temp_r27 = object->data; s32 sp28[4][4] = { - { 0, 1, 2, 3 }, + { 0, 1, 2, 3 }, { 1, 0, 1, 2 }, { 2, 1, 0, 1 }, { 3, 2, 1, 0 }, }; - f32 sp18[4] = { - 0.0f, -700.0f, 600.0f, 1200.0f - }; + f32 sp18[4] = { 0.0f, -700.0f, 600.0f, 1200.0f }; s32 sp14; s32 sp10; s32 spC; @@ -571,7 +576,7 @@ void fn_1_6B90(omObjData* object) { u32 var_r30; var_r28 = sp8[object->work[0]] | 1; - + for (var_r30 = 0; var_r30 < 4; var_r30++) { if (var_r30 != object->work[0]) { temp_r29 = lbl_1_bss_90[var_r30]->data; @@ -591,9 +596,10 @@ void fn_1_6B90(omObjData* object) { fn_1_421C(object->model[3], var_r28); } -void fn_1_6DA8(omObjData* object) { +void fn_1_6DA8(omObjData *object) +{ f32 var_f31; - M443DllWorkStruct* temp_r31; + M443DllWorkStruct *temp_r31; temp_r31 = object->data; switch (temp_r31->unk60) { @@ -611,7 +617,7 @@ void fn_1_6DA8(omObjData* object) { temp_r31->unk18 = 1.0f; } if (temp_r31->unkA0 >= 1.0f) { - temp_r31->unk60 = (s32) (temp_r31->unk60 + 1); + temp_r31->unk60 = (s32)(temp_r31->unk60 + 1); } break; case 2: @@ -622,7 +628,8 @@ void fn_1_6DA8(omObjData* object) { var_f31 = 1.2f - temp_r31->unk5C; var_f31 *= (0.5f + 0.0005f * frandmod(0x3E8)); temp_r31->unk6C = 8000.0f - 1500.0f * var_f31; - } else { + } + else { var_f31 = 1.2f - temp_r31->unk5C; var_f31 *= (0.5f + 0.0005f * frandmod(0x3E8)); temp_r31->unk70 = 0.016666668f + var_f31; @@ -631,15 +638,16 @@ void fn_1_6DA8(omObjData* object) { temp_r31->unk68 = temp_r31->unk80; if (temp_r31->unk6C > 0.0f) { if (temp_r31->unk88 > temp_r31->unk6C) { - temp_r31->unk10 = (s32) (temp_r31->unk10 | 0x100); + temp_r31->unk10 = (s32)(temp_r31->unk10 | 0x100); temp_r31->unk6C = 0.0f; break; } - } else if (temp_r31->unk70 > 0.0f) { + } + else if (temp_r31->unk70 > 0.0f) { if (temp_r31->unk88 >= 8000.0f) { temp_r31->unk70 = (temp_r31->unk70 - 0.016666668f); if (temp_r31->unk70 <= 0.0f) { - temp_r31->unk10 = (s32) (temp_r31->unk10 | 0x100); + temp_r31->unk10 = (s32)(temp_r31->unk10 | 0x100); temp_r31->unk70 = 0.0f; } } @@ -648,20 +656,20 @@ void fn_1_6DA8(omObjData* object) { } } -void fn_1_7130(omObjData* object) { +void fn_1_7130(omObjData *object) +{ Vec sp8; f32 var_f31; s32 var_r27; s32 var_r29; s32 var_r28; - M443DllWorkStruct* temp_r30; - M443DllWorkStruct* temp_r31; + M443DllWorkStruct *temp_r30; + M443DllWorkStruct *temp_r31; - for (var_r27 = 0; var_r27 < 2; var_r27++) { for (var_r29 = 0; var_r29 < 4; var_r29++) { temp_r31 = lbl_1_bss_90[var_r29]->data; - + for (var_r28 = 0; var_r28 < 4; var_r28++) { if (var_r29 != var_r28) { temp_r30 = lbl_1_bss_90[var_r28]->data; @@ -671,7 +679,8 @@ void fn_1_7130(omObjData* object) { if (var_f31 < (temp_r31->unkC0 + temp_r30->unkC0)) { if (var_f31 > 0.0f) { var_f31 = 0.5f * ((temp_r31->unkC0 + temp_r30->unkC0) - var_f31); - } else { + } + else { var_f31 = 0.5f * (temp_r31->unkC0 + temp_r30->unkC0); sp8.x = (frandmod(0x3E8) - 0x1F4); sp8.z = (frandmod(0x3E8) - 0x1F4); @@ -690,13 +699,11 @@ void fn_1_7130(omObjData* object) { } } -void fn_1_7340(omObjData* object) { - M443DllWorkStruct* temp_r31 = object->data; - HsfObject* var_r29; - f32 sp28[8] = { - 0.0f, 40.0f, 0.0f, 0.0f, - -16.0f, 40.0f, -16.0f, 0.0f - }; +void fn_1_7340(omObjData *object) +{ + M443DllWorkStruct *temp_r31 = object->data; + HsfObject *var_r29; + f32 sp28[8] = { 0.0f, 40.0f, 0.0f, 0.0f, -16.0f, 40.0f, -16.0f, 0.0f }; f32 var_f31; f32 var_f29; u32 temp_r24; @@ -711,16 +718,19 @@ void fn_1_7340(omObjData* object) { temp_r31->unk80++; temp_r31->unk84 = 30; } - } else { + } + else { if (temp_r31->unk88 >= 8000.0f) { temp_r31->unk10C = 1; } } - } else { + } + else { temp_r31->unk84--; } } - } else if ((temp_r31->unk88 < 1500.0f) && (temp_r31->unk80 != 0)) { + } + else if ((temp_r31->unk88 < 1500.0f) && (temp_r31->unk80 != 0)) { temp_r31->unk80--; temp_r31->unk84 = 30; } @@ -756,7 +766,8 @@ void fn_1_7340(omObjData* object) { if (temp_r31->unk88 > 9500.0f) { temp_r31->unk88 = 9000.0f; temp_r31->unk90 = fn_1_8C8C(temp_r31->unk80, temp_r31->unk88); - } else if (temp_r31->unk88 < 1000.0f) { + } + else if (temp_r31->unk88 < 1000.0f) { temp_r31->unk88 = 1000.0f; temp_r31->unk90 = fn_1_8C8C(temp_r31->unk80, temp_r31->unk88); } @@ -779,7 +790,8 @@ void fn_1_7340(omObjData* object) { if (temp_r31->unkA0 < 0.0001f) { temp_r31->unkA0 = 0.0001f; } - } else { + } + else { temp_r31->unkA0 = 1.0f; } } @@ -851,7 +863,8 @@ void fn_1_7340(omObjData* object) { } HuAudFXVolSet(temp_r31->unkA8, var_f31); } - } else if (fn_1_42E4() <= 2) { + } + else if (fn_1_42E4() <= 2) { if (temp_r31->unkA8 < 0) { temp_r31->unkA8 = HuAudFXPlay(lbl_1_data_344[object->work[0]]); } @@ -863,7 +876,8 @@ void fn_1_7340(omObjData* object) { } HuAudFXVolSet(temp_r31->unkA8, var_f31); } - } else if (temp_r31->unkA8 >= 0) { + } + else if (temp_r31->unkA8 >= 0) { HuAudFXStop(temp_r31->unkA8); temp_r31->unkA8 = -1; } @@ -885,9 +899,10 @@ void fn_1_7340(omObjData* object) { } } -void fn_1_8138(omObjData* object, u32 arg1) { // near replica of fn_1_B8A0 of m417Dll +void fn_1_8138(omObjData *object, u32 arg1) +{ // near replica of fn_1_B8A0 of m417Dll f32 var_f31; - M443DllWorkStruct* temp_r30; + M443DllWorkStruct *temp_r30; temp_r30 = object->data; if ((temp_r30->unk8 != arg1) && (arg1 < 4)) { @@ -896,16 +911,18 @@ void fn_1_8138(omObjData* object, u32 arg1) { // near replica of fn_1_B8A0 of m4 var_f31 = 0.0f; } temp_r30->unk8 = arg1; - CharModelMotionShiftSet(temp_r30->unk0, object->motion[lbl_1_data_2D4[arg1].unk0], 60.0f * lbl_1_data_2D4[arg1].unk8, var_f31, lbl_1_data_2D4[arg1].unk10); + CharModelMotionShiftSet( + temp_r30->unk0, object->motion[lbl_1_data_2D4[arg1].unk0], 60.0f * lbl_1_data_2D4[arg1].unk8, var_f31, lbl_1_data_2D4[arg1].unk10); if (lbl_1_data_2D4[arg1].unkC >= 0.0f) { Hu3DMotionShiftStartEndSet(object->model[0], 60.0f * lbl_1_data_2D4[arg1].unk8, 60.0f * lbl_1_data_2D4[arg1].unkC); } } } -s32 fn_1_82C4(omObjData* object) { +s32 fn_1_82C4(omObjData *object) +{ s32 var_r30; - M443DllWorkStruct* temp_r31; + M443DllWorkStruct *temp_r31; temp_r31 = object->data; var_r30 = 0; @@ -915,10 +932,11 @@ s32 fn_1_82C4(omObjData* object) { return var_r30; } -s32 fn_1_8338(omObjData* object, u32 arg1) { +s32 fn_1_8338(omObjData *object, u32 arg1) +{ s32 var_r27; s32 var_r26; - M443DllWorkStruct* temp_r31; + M443DllWorkStruct *temp_r31; var_r27 = 0; temp_r31 = object->data; @@ -926,7 +944,7 @@ s32 fn_1_8338(omObjData* object, u32 arg1) { if ((CharModelMotionEndCheck(temp_r31->unk0) != 0) && (CharModelMotionShiftIDGet(temp_r31->unk0) < 0)) { var_r26 = 1; } - + if (var_r26 != 0) { fn_1_8138(object, arg1); var_r27 = 1; @@ -955,15 +973,16 @@ Vec2f lbl_1_data_468[4] = { { 46.0f, 44.0f }, }; -void fn_1_8508(omObjData* object) { +void fn_1_8508(omObjData *object) +{ s32 var_r30; - M443DllWorkStruct* temp_r28; - M443DllUnkStruct* temp_r31; - f32* temp_r4; + M443DllWorkStruct *temp_r28; + M443DllUnkStruct *temp_r31; + f32 *temp_r4; temp_r28 = object->data; temp_r31 = &temp_r28->unk108s; - + for (var_r30 = 0; var_r30 < 11; var_r30++) { temp_r31->unk14[var_r30] = -1; if (lbl_1_data_410[var_r30][0] != 0) { @@ -980,42 +999,41 @@ void fn_1_8508(omObjData* object) { } f32 lbl_1_data_488[][2] = { - { 20.0f, 4.0f }, - { 18.0f, 6.0f }, - { 46.0f, 33.0f }, - { 72.0f, 32.0f }, - { 72.0f, 14.0f }, - { 72.0f, -4.0f }, - { 72.0f, -22.0f }, - { -140.0f, 32.0f }, - { -158.0f, 32.0f }, - { -176.0f, 32.0f }, - { -96.0f, 32.0f }, + { 20.0f, 4.0f }, + { 18.0f, 6.0f }, + { 46.0f, 33.0f }, + { 72.0f, 32.0f }, + { 72.0f, 14.0f }, + { 72.0f, -4.0f }, + { 72.0f, -22.0f }, + { -140.0f, 32.0f }, + { -158.0f, 32.0f }, + { -176.0f, 32.0f }, + { -96.0f, 32.0f }, }; -void fn_1_8680(omObjData* object) { +void fn_1_8680(omObjData *object) +{ f32 var_f31; s32 var_r27; s32 var_r30; u32 var_r28; - M443DllWorkStruct* temp_r29; - M443DllUnkStruct* temp_r31; + M443DllWorkStruct *temp_r29; + M443DllUnkStruct *temp_r31; temp_r29 = object->data; temp_r31 = &temp_r29->unk108s; temp_r31->unk8++; - + for (var_r30 = 0; var_r30 < 11; var_r30++) { if (temp_r31->unk14[var_r30] >= 0) { if (temp_r31->unk0 == 0) { espDispOff(temp_r31->unk14[var_r30]); - } else { + } + else { espDispOn(temp_r31->unk14[var_r30]); - espPosSet( - temp_r31->unk14[var_r30], - 0.9f * (temp_r29->unk104->unk_44 + temp_r31->unkC.x + lbl_1_data_488[var_r30][0]), - temp_r29->unk104->unk_48 + temp_r31->unkC.y + lbl_1_data_488[var_r30][1] - ); + espPosSet(temp_r31->unk14[var_r30], 0.9f * (temp_r29->unk104->unk_44 + temp_r31->unkC.x + lbl_1_data_488[var_r30][0]), + temp_r29->unk104->unk_48 + temp_r31->unkC.y + lbl_1_data_488[var_r30][1]); } } } @@ -1024,12 +1042,13 @@ void fn_1_8680(omObjData* object) { var_f31 = (0.004f * frandmod(0x3E8)) - 2.0f; } espZRotSet(temp_r31->unk14[2], (90.0f * (0.0001f * temp_r29->unk88)) + var_f31); - + for (var_r30 = 0; var_r30 < 4; var_r30++) { var_r27 = 0; if (temp_r29->unk80 == var_r30) { var_r27 = 2; - } else if (((temp_r29->unk80 + 1) == var_r30) && (temp_r31->unk4 != 0)) { + } + else if (((temp_r29->unk80 + 1) == var_r30) && (temp_r31->unk4 != 0)) { var_r27 += (temp_r31->unk8 >> 1) & 1; } espBankSet(temp_r31->unk14[var_r30 + 3], var_r27); @@ -1045,19 +1064,18 @@ void fn_1_8680(omObjData* object) { espBankSet(temp_r31->unk14[9], var_r30); } -f32 lbl_1_data_4E0[4] = { - 18.5f, 9.25f, 6.66f, 5.55f -}; +f32 lbl_1_data_4E0[4] = { 18.5f, 9.25f, 6.66f, 5.55f }; -f32 fn_1_8958(u32 arg0) { +f32 fn_1_8958(u32 arg0) +{ if (arg0 >= 4) { - if (arg0 >= 4) { - } + if (arg0 >= 4) { } } return lbl_1_data_4E0[arg0]; } -f32 fn_1_8990(f32 arg8) { +f32 fn_1_8990(f32 arg8) +{ f32 var_f30; f32 var_f31; @@ -1076,41 +1094,49 @@ f32 fn_1_8990(f32 arg8) { return 55.0f * var_f30; } -f32 fn_1_8AC8(u32 arg0, f32 arg1) { +f32 fn_1_8AC8(u32 arg0, f32 arg1) +{ return 1.7647059f * (fn_1_8990(arg1) * fn_1_8958(arg0)); } -f32 fn_1_8C68(f32 arg0) { +f32 fn_1_8C68(f32 arg0) +{ return 9.8f * (0.0012820513f * arg0); } -f32 fn_1_8C8C(s32 arg0, f32 arg1) { +f32 fn_1_8C8C(s32 arg0, f32 arg1) +{ return 3.204422f * ((0.016666668f * arg1) / fn_1_8958(arg0)); } -f32 fn_1_8D00(u32 arg0, f32 arg1) { +f32 fn_1_8D00(u32 arg0, f32 arg1) +{ return 0.31206876f * (60.0f * arg1) * fn_1_8958(arg0); } -f32 fn_1_8D74(f32 arg0) { +f32 fn_1_8D74(f32 arg0) +{ return 0.024899999f * (arg0 * arg0); } -f32 fn_1_8D8C(u32 arg0, f32 arg8) { +f32 fn_1_8D8C(u32 arg0, f32 arg8) +{ return arg8 / fn_1_8958(arg0); } -f32 fn_1_8DE0(u32 arg0, f32 arg8) { +f32 fn_1_8DE0(u32 arg0, f32 arg8) +{ return arg8 * fn_1_8958(arg0); } -void fn_1_8E34(s32 arg0) { +void fn_1_8E34(s32 arg0) +{ s32 var_r29; - ParticleData* temp_r30; - HsfanimStruct01* var_r31; + ParticleData *temp_r30; + HsfanimStruct01 *var_r31; temp_r30 = Hu3DData[arg0].unk_120; var_r31 = temp_r30->unk_48; - + for (var_r29 = 0; var_r29 < temp_r30->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 != 0) { PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); @@ -1130,31 +1156,36 @@ void fn_1_8E34(s32 arg0) { DCStoreRange(temp_r30->unk_48, temp_r30->unk_30 * 0x44); } -static inline f32 isEven(u32 arg) { +static inline f32 isEven(u32 arg) +{ if ((arg & 1) != 0) { return 1.0f; - } else { + } + else { return -1.0f; } } -void fn_1_8FFC(u32 arg0, Point3d* arg1, f32 arg2, f32 arg3) { +void fn_1_8FFC(u32 arg0, Point3d *arg1, f32 arg2, f32 arg3) +{ f32 temp_f31; f32 var_f29; - ParticleData* temp_r29; + ParticleData *temp_r29; s32 var_r28; u32 var_r27; - HsfanimStruct01* var_r31; + HsfanimStruct01 *var_r31; temp_r29 = Hu3DData[lbl_1_bss_90[arg0]->model[3]].unk_120; - if (frandmod(0x3E8) > 1000.0f * arg2) return; - + if (frandmod(0x3E8) > 1000.0f * arg2) + return; + var_r27 = 2; var_r31 = temp_r29->unk_48; - + for (var_r28 = 0; var_r28 < temp_r29->unk_30; var_r28++, var_r31++) { - if (var_r31->unk00_s16 != 0) continue; - + if (var_r31->unk00_s16 != 0) + continue; + var_r31->unk00_s16 = (60.0f * (0.6f + (0.0005f * frandmod(0x3E8)))); var_f29 = isEven(var_r27); temp_f31 = 0.030000001f * frandmod(0x3E8); @@ -1173,18 +1204,20 @@ void fn_1_8FFC(u32 arg0, Point3d* arg1, f32 arg2, f32 arg3) { var_r31->unk40.r = (50.0f + (145.0f * temp_f31)); var_r31->unk40.g = (55.0f + (140.0f * temp_f31)); var_r31->unk40.b = (70.0f + (125.0f * temp_f31)); - if (--var_r27 < 1) break; + if (--var_r27 < 1) + break; } } -void fn_1_95A4(u32 arg0) { +void fn_1_95A4(u32 arg0) +{ s32 var_r29; - ParticleData* temp_r30; - HsfanimStruct01* var_r31; + ParticleData *temp_r30; + HsfanimStruct01 *var_r31; temp_r30 = Hu3DData[lbl_1_bss_90[arg0]->model[3]].unk_120; var_r31 = temp_r30->unk_48; - + for (var_r29 = 0; var_r29 < temp_r30->unk_30; var_r29++, var_r31++) { var_r31->unk00 = 0; var_r31->unk2C = 0.0f; diff --git a/src/REL/m444dll/main.c b/src/REL/m444dll/main.c index 2617028a..d7312f98 100644 --- a/src/REL/m444dll/main.c +++ b/src/REL/m444dll/main.c @@ -184,7 +184,7 @@ void fn_1_470(void) while (fn_1_82FC() > 10.0f) { HuPrcVSleep(); } - Hu3DModelAttrReset(lbl_1_bss_199C2[18], 1); + Hu3DModelAttrReset(lbl_1_bss_199C2[18], HU3D_ATTR_DISPOFF); Hu3DMotionSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[20]); Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, 90, 0); for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { @@ -233,8 +233,8 @@ void fn_1_470(void) Hu3DModelPosSet(lbl_1_bss_199C2[18], ((1.0 - cosd(temp_r31 * 3.0)) * -200.0) + -160.0, 0, 155); HuPrcVSleep(); } - Hu3DModelAttrSet(lbl_1_bss_199C2[18], 1); - Hu3DModelAttrReset(lbl_1_bss_199C2[22], 1); + Hu3DModelAttrSet(lbl_1_bss_199C2[18], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_199C2[22], HU3D_ATTR_DISPOFF); Hu3DMotionSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24]); Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, 90, 0); for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { @@ -293,7 +293,7 @@ void fn_1_470(void) } HuAudFXPlay(1857); Hu3DMotionTimeSet(lbl_1_bss_199C2[9], lbl_1_data_140[0]); - Hu3DModelAttrSet(lbl_1_bss_199C2[9], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_199C2[9], HU3D_MOTATTR_PAUSE); HuPrcSleep(20); CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 8, HU3D_MOTATTR_LOOP); sp1C.x = 124; @@ -324,7 +324,7 @@ void fn_1_470(void) HuPrcVSleep(); } HuPrcSleep(40); - Hu3DModelAttrSet(lbl_1_bss_199C2[64], 1); + Hu3DModelAttrSet(lbl_1_bss_199C2[64], HU3D_ATTR_DISPOFF); fn_1_8180(9); Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24], 0, 10, HU3D_MOTATTR_LOOP); for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { @@ -344,8 +344,8 @@ void fn_1_470(void) Hu3DModelPosSet(lbl_1_bss_199C2[22], (-300.0 * (1.0 - cosd(3.0 * temp_r31))) + (-160.0), 0, 155); HuPrcVSleep(); } - Hu3DModelAttrSet(lbl_1_bss_199C2[22], 1); - Hu3DModelAttrReset(lbl_1_bss_199C2[26], 1); + Hu3DModelAttrSet(lbl_1_bss_199C2[22], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_199C2[26], HU3D_ATTR_DISPOFF); Hu3DMotionSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28]); Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, 90, 0); for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { @@ -394,7 +394,7 @@ void fn_1_470(void) } HuAudFXPlay(1857); Hu3DMotionTimeSet(lbl_1_bss_199C2[9], lbl_1_data_140[1]); - Hu3DModelAttrSet(lbl_1_bss_199C2[9], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_199C2[9], HU3D_MOTATTR_PAUSE); HuPrcSleep(20); lbl_1_bss_2D4 = -1; fn_1_9418(1); @@ -407,7 +407,7 @@ void fn_1_470(void) HuPrcVSleep(); } HuPrcSleep(40); - Hu3DModelAttrSet(lbl_1_bss_199C2[64], 1); + Hu3DModelAttrSet(lbl_1_bss_199C2[64], HU3D_ATTR_DISPOFF); fn_1_8180(9); Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28], 0, 10, HU3D_MOTATTR_LOOP); for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { @@ -427,8 +427,8 @@ void fn_1_470(void) Hu3DModelPosSet(lbl_1_bss_199C2[26], (-400.0 * (1.0 - cosd(3.0 * temp_r31))) + (-160.0), 0, 155); HuPrcVSleep(); } - Hu3DModelAttrSet(lbl_1_bss_199C2[26], 1); - Hu3DModelAttrReset(lbl_1_bss_199C2[30], 1); + Hu3DModelAttrSet(lbl_1_bss_199C2[26], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_199C2[30], HU3D_ATTR_DISPOFF); Hu3DMotionSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32]); Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, 90, 0); for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { @@ -478,7 +478,7 @@ void fn_1_470(void) } HuAudFXPlay(1857); Hu3DMotionTimeSet(lbl_1_bss_199C2[9], lbl_1_data_140[2]); - Hu3DModelAttrSet(lbl_1_bss_199C2[9], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_199C2[9], HU3D_MOTATTR_PAUSE); HuPrcSleep(20); lbl_1_bss_2D2 = -1; fn_1_9418(2); @@ -491,7 +491,7 @@ void fn_1_470(void) HuPrcVSleep(); } HuPrcSleep(40); - Hu3DModelAttrSet(lbl_1_bss_199C2[64], 1); + Hu3DModelAttrSet(lbl_1_bss_199C2[64], HU3D_ATTR_DISPOFF); fn_1_8180(9); Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32], 0, 10, HU3D_MOTATTR_LOOP); for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { @@ -526,7 +526,7 @@ void fn_1_470(void) HuPrcVSleep(); } HuAudFXPlay(1856); - Hu3DModelAttrReset(lbl_1_bss_199C2[34], 1); + Hu3DModelAttrReset(lbl_1_bss_199C2[34], HU3D_ATTR_DISPOFF); Hu3DMotionSet(lbl_1_bss_199C2[34], lbl_1_bss_1990E[36]); Hu3DModelRotSet(lbl_1_bss_199C2[34], 0, 90, 0); for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { @@ -657,9 +657,9 @@ void fn_1_470(void) default: break; } - HuWinInsertMesSizeGet((8+GWPlayerCfg[lbl_1_bss_2D6].character)-8, 0); + HuWinInsertMesSizeGet((8 + GWPlayerCfg[lbl_1_bss_2D6].character) - 8, 0); HuWinInsertMesSizeGet(temp_r24, 1); - HuWinInsertMesSizeGet((8+GWPlayerCfg[lbl_1_bss_2D4].character)-8, 2); + HuWinInsertMesSizeGet((8 + GWPlayerCfg[lbl_1_bss_2D4].character) - 8, 2); HuWinMesMaxSizeGet(1, sp8, temp_r28); temp_r30 = HuWinExCreateStyled(-10000, 340, sp8[0], sp8[1], -1, 1); HuWinExAnimIn(temp_r30); @@ -738,7 +738,7 @@ void fn_1_3B7C(void) Hu3DMotionSet(lbl_1_bss_199C2[18], lbl_1_bss_1990E[20]); temp_f31 = atan2d(400.0, 200.0) + 180.0; Hu3DModelRotSet(lbl_1_bss_199C2[18], 0, temp_f31, 0); - Hu3DModelAttrReset(lbl_1_bss_199C2[18], 1); + Hu3DModelAttrReset(lbl_1_bss_199C2[18], HU3D_ATTR_DISPOFF); } if (temp_r31 <= 50) { Hu3DModelPosSet(lbl_1_bss_199C2[18], 400.0 * (1.0 - (temp_r31 / 50.0)), 0, -553.0 + (200.0 * (1.0 - (temp_r31 / 50.0)))); @@ -757,7 +757,7 @@ void fn_1_3B7C(void) Hu3DMotionSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[28]); temp_f31 = atan2d(-300.0, 200.0) + 180.0; Hu3DModelRotSet(lbl_1_bss_199C2[26], 0, temp_f31, 0); - Hu3DModelAttrReset(lbl_1_bss_199C2[26], 1); + Hu3DModelAttrReset(lbl_1_bss_199C2[26], HU3D_ATTR_DISPOFF); } if (temp_r31 <= 40) { Hu3DModelPosSet(lbl_1_bss_199C2[26], -100.0 + (-300.0 * (1.0 - (temp_r31 / 40.0))), 0, -478.0 + (200.0 * (1.0 - (temp_r31 / 40.0)))); @@ -777,7 +777,7 @@ void fn_1_3B7C(void) Hu3DMotionSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[32]); temp_f31 = atan2d(200.0, 500.0) + 180.0; Hu3DModelRotSet(lbl_1_bss_199C2[30], 0, temp_f31, 0); - Hu3DModelAttrReset(lbl_1_bss_199C2[30], 1); + Hu3DModelAttrReset(lbl_1_bss_199C2[30], HU3D_ATTR_DISPOFF); } if (temp_r31 <= 40) { Hu3DModelPosSet(lbl_1_bss_199C2[30], 100.0 + (200.0 * (1.0 - (temp_r31 / 40.0))), 100, -478.0 + (500.0 * (1.0 - (temp_r31 / 40.0)))); @@ -797,7 +797,7 @@ void fn_1_3B7C(void) Hu3DMotionSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24]); temp_f31 = atan2d(-300.0, 100.0) + 180.0; Hu3DModelRotSet(lbl_1_bss_199C2[22], 0, temp_f31, 0); - Hu3DModelAttrReset(lbl_1_bss_199C2[22], 1); + Hu3DModelAttrReset(lbl_1_bss_199C2[22], HU3D_ATTR_DISPOFF); } if (temp_r31 <= 40) { Hu3DModelPosSet(lbl_1_bss_199C2[22], -200.0 + (-300.0 * (1.0 - (temp_r31 / 40.0))), 0, -403.0 + (100.0 * (1.0 - (temp_r31 / 40.0)))); @@ -1070,10 +1070,10 @@ void fn_1_5774(void) continue; } temp_r26 = lbl_1_bss_148[temp_r31->unk6[temp_r30]][0]; - Hu3DModelAttrReset(temp_r26, 1); + Hu3DModelAttrReset(temp_r26, HU3D_ATTR_DISPOFF); temp_r31->unk2E[temp_r30]++; if (temp_r31->unk2E[temp_r30] > temp_f31) { - Hu3DModelAttrSet(temp_r26, 1); + Hu3DModelAttrSet(temp_r26, HU3D_ATTR_DISPOFF); lbl_1_bss_148[temp_r31->unk6[temp_r30]][1] = 0; temp_r31->unk6[temp_r30] = -1; GWStarsSet(temp_r31->unk2, GWPlayer[temp_r31->unk2].stars + 1); @@ -1189,10 +1189,10 @@ void fn_1_5E68(void) continue; } temp_r26 = lbl_1_bss_8[temp_r31->unk6[temp_r30]][0]; - Hu3DModelAttrReset(temp_r26, 1); + Hu3DModelAttrReset(temp_r26, HU3D_ATTR_DISPOFF); temp_r31->unk2E[temp_r30]++; if (temp_r31->unk2E[temp_r30] > temp_f31) { - Hu3DModelAttrSet(temp_r26, 1); + Hu3DModelAttrSet(temp_r26, HU3D_ATTR_DISPOFF); lbl_1_bss_8[temp_r31->unk6[temp_r30]][1] = 0; temp_r31->unk6[temp_r30] = -1; GWCoinsSet(temp_r31->unk2, GWPlayer[temp_r31->unk2].coins + 1); @@ -1266,10 +1266,10 @@ void fn_1_655C(void) Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook4", lbl_1_bss_199C2[50]); Hu3DModelHookSet(lbl_1_bss_199C2[11], "L_itemhook", lbl_1_bss_199C2[13]); Hu3DModelHookSet(lbl_1_bss_199C2[11], "R_itemhook", lbl_1_bss_199C2[14]); - Hu3DModelAttrSet(lbl_1_bss_199C2[13], 0x40000001); - Hu3DModelAttrSet(lbl_1_bss_199C2[14], 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_199C2[13], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(lbl_1_bss_199C2[14], HU3D_MOTATTR_LOOP); for (i = 0; i < 4; i++) { - Hu3DModelAttrSet(lbl_1_bss_199C2[i + 51], 1); + Hu3DModelAttrSet(lbl_1_bss_199C2[i + 51], HU3D_ATTR_DISPOFF); } fn_1_D1E0(lbl_1_bss_199C2[4]); model = CharModelCreate(lbl_1_bss_2DA, 2); @@ -1280,19 +1280,19 @@ void fn_1_655C(void) lbl_1_bss_2C0[3] = CharModelMotionCreate(lbl_1_bss_2DA, lbl_1_bss_2DA + DATA_MAKE_NUM(DATADIR_M444, 0x4D)); CharModelMotionSet(lbl_1_bss_2DA, lbl_1_bss_2C0[0]); Hu3DModelPosSet(model, 0, 0, 200); - Hu3DModelAttrSet(model, 0x40000001); + Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP); Hu3DModelShadowSet(model); HuPrcChildCreate(fn_1_C214, 50, 12288, 0, lbl_1_bss_308); HuPrcChildCreate(fn_1_A060, 50, 12288, 0, lbl_1_bss_308); - Hu3DModelAttrSet(lbl_1_bss_199C2[18], 1); + Hu3DModelAttrSet(lbl_1_bss_199C2[18], HU3D_ATTR_DISPOFF); Hu3DModelShadowSet(lbl_1_bss_199C2[18]); - Hu3DModelAttrSet(lbl_1_bss_199C2[26], 1); + Hu3DModelAttrSet(lbl_1_bss_199C2[26], HU3D_ATTR_DISPOFF); Hu3DModelShadowSet(lbl_1_bss_199C2[26]); - Hu3DModelAttrSet(lbl_1_bss_199C2[30], 1); + Hu3DModelAttrSet(lbl_1_bss_199C2[30], HU3D_ATTR_DISPOFF); Hu3DModelShadowSet(lbl_1_bss_199C2[30]); - Hu3DModelAttrSet(lbl_1_bss_199C2[22], 1); + Hu3DModelAttrSet(lbl_1_bss_199C2[22], HU3D_ATTR_DISPOFF); Hu3DModelShadowSet(lbl_1_bss_199C2[22]); - Hu3DModelAttrSet(lbl_1_bss_199C2[34], 1); + Hu3DModelAttrSet(lbl_1_bss_199C2[34], HU3D_ATTR_DISPOFF); Hu3DModelShadowSet(lbl_1_bss_199C2[34]); Hu3DModelShadowMapSet(lbl_1_bss_199C2[15]); Hu3DModelShadowMapSet(lbl_1_bss_199C2[9]); @@ -1315,7 +1315,7 @@ void fn_1_655C(void) } lbl_1_bss_148[i][0] = model; lbl_1_bss_148[i][1] = 0; - Hu3DModelAttrSet(model, 1); + Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); Hu3DModelScaleSet(model, 0.2, 0.2, 0.2); Hu3DModelLayerSet(model, 7); } @@ -1328,7 +1328,7 @@ void fn_1_655C(void) } lbl_1_bss_8[i][0] = model; lbl_1_bss_8[i][1] = 0; - Hu3DModelAttrSet(model, 1); + Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); Hu3DModelScaleSet(model, 0.2, 0.2, 0.2); Hu3DModelLayerSet(model, 7); } diff --git a/src/REL/m444dll/pinball.c b/src/REL/m444dll/pinball.c index d2ddb6bc..7b4873ec 100644 --- a/src/REL/m444dll/pinball.c +++ b/src/REL/m444dll/pinball.c @@ -1,22 +1,22 @@ -#include "game/object.h" -#include "game/objsub.h" -#include "game/hsfman.h" #include "game/hsfdraw.h" #include "game/hsfex.h" +#include "game/hsfman.h" +#include "game/object.h" +#include "game/objsub.h" #include "game/hsfmotion.h" #include "game/pad.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/esprite.h" #include "game/window.h" #include "game/wipe.h" -#include "game/audio.h" -#include "game/esprite.h" -#include "game/chrman.h" #include "game/board/ui.h" -#include "game/gamework_data.h" #include "game/gamework.h" +#include "game/gamework_data.h" #include "REL/m444dll.h" #include "ext_math.h" @@ -45,125 +45,117 @@ Vec lbl_1_bss_314; s16 lbl_1_bss_312; u8 lbl_1_bss_310; -float lbl_1_data_258[3] = { - 90, 250, 420 -}; +float lbl_1_data_258[3] = { 90, 250, 420 }; -Vec lbl_1_data_264[5] = { - { -75, -300, 0 }, - { 25, -300, 0 }, - { -75, -300, 0 }, - { 25, -300, 0 }, - { -25, -400, 0 } -}; +Vec lbl_1_data_264[5] = { { -75, -300, 0 }, { 25, -300, 0 }, { -75, -300, 0 }, { 25, -300, 0 }, { -25, -400, 0 } }; -float lbl_1_data_2A0[5*2] = { - -100, -60, - 10, 50, - -100, -60, - 10, 50, - -50, 0 -}; +float lbl_1_data_2A0[5 * 2] = { -100, -60, 10, 50, -100, -60, 10, 50, -50, 0 }; s16 lbl_1_data_2C8[5] = { - 1, 1, 2, 2, 2, + 1, + 1, + 2, + 2, + 2, }; void fn_1_8424(void) { - s16 i; - for(i=0; i<5; i++) { - lbl_1_bss_18B4[i] = lbl_1_data_264[i]; - lbl_1_bss_824[i].x = lbl_1_bss_18B4[i].x; - lbl_1_bss_824[i].y = 215; - lbl_1_bss_824[i].z = lbl_1_bss_18B4[i].y; - lbl_1_bss_198F0[i][0] = 10; - lbl_1_bss_198F0[i][1] = 0; - } - for(i=0; i<3; i++) { - lbl_1_bss_860[i].x = 128; - lbl_1_bss_860[i].y = 230; - lbl_1_bss_860[i].z = -100; - MTXIdentity(lbl_1_bss_794[i]); - lbl_1_bss_788[i] = 0; - } + s16 i; + for (i = 0; i < 5; i++) { + lbl_1_bss_18B4[i] = lbl_1_data_264[i]; + lbl_1_bss_824[i].x = lbl_1_bss_18B4[i].x; + lbl_1_bss_824[i].y = 215; + lbl_1_bss_824[i].z = lbl_1_bss_18B4[i].y; + lbl_1_bss_198F0[i][0] = 10; + lbl_1_bss_198F0[i][1] = 0; + } + for (i = 0; i < 3; i++) { + lbl_1_bss_860[i].x = 128; + lbl_1_bss_860[i].y = 230; + lbl_1_bss_860[i].z = -100; + MTXIdentity(lbl_1_bss_794[i]); + lbl_1_bss_788[i] = 0; + } } void fn_1_861C(s16 arg0) { - s16 temp_r31; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - lbl_1_bss_312 = 0; - for(temp_r31=0; temp_r31<256; temp_r31++) { - lbl_1_bss_370[temp_r31] = 1000000.0f; - } - lbl_1_bss_1894.x = 128; - lbl_1_bss_1894.y = -100; - lbl_1_bss_1894.z = 0; - lbl_1_bss_1888.x = lbl_1_bss_1888.z = 0; - lbl_1_bss_1888.y = -30; - lbl_1_bss_860[arg0].x = lbl_1_bss_1894.x; - lbl_1_bss_860[arg0].y = 230; - lbl_1_bss_860[arg0].z = lbl_1_bss_1894.y; - fn_1_D1E0(lbl_1_bss_199C2[(arg0*2)+4]); - if(arg0 == 0) { - for(temp_r31=0; temp_r31<4; temp_r31++) { - lbl_1_bss_320[temp_r31] = temp_r31; - } - for(temp_r31=0; temp_r31<20; temp_r31++) { - temp_r29 = frandmod(4); - temp_r28 = frandmod(4); - temp_r27 = lbl_1_bss_320[temp_r29]; - lbl_1_bss_320[temp_r29] = lbl_1_bss_320[temp_r28]; - lbl_1_bss_320[temp_r28] = temp_r27; - } - Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook1", lbl_1_bss_199C2[lbl_1_bss_320[0]+47]); - Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook2", lbl_1_bss_199C2[lbl_1_bss_320[1]+47]); - Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook3", lbl_1_bss_199C2[lbl_1_bss_320[2]+47]); - Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook4", lbl_1_bss_199C2[lbl_1_bss_320[3]+47]); - for(temp_r31=0; temp_r31<4; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_199C2[temp_r31+51], 1); - } - } else if(arg0 == 1) { - for(temp_r31=temp_r29=0; temp_r31<4; temp_r31++) { - if(temp_r31 != lbl_1_bss_2D6) { - lbl_1_bss_320[temp_r29] = temp_r31; - temp_r29++; - } - } - for(temp_r31=0; temp_r31<20; temp_r31++) { - temp_r29 = frandmod(3); - temp_r28 = frandmod(3); - temp_r27 = lbl_1_bss_320[temp_r29]; - lbl_1_bss_320[temp_r29] = lbl_1_bss_320[temp_r28]; - lbl_1_bss_320[temp_r28] = temp_r27; - } - Hu3DModelAttrReset(lbl_1_bss_199C2[lbl_1_bss_320[0]+51], 1); - Hu3DModelAttrReset(lbl_1_bss_199C2[lbl_1_bss_320[1]+51], 1); - Hu3DModelAttrReset(lbl_1_bss_199C2[lbl_1_bss_320[2]+51], 1); - Hu3DModelAttrSet(lbl_1_bss_199C2[lbl_1_bss_2D6+51], 1); - Hu3DModelHookSet(lbl_1_bss_199C2[5], "d2_itemhook1", lbl_1_bss_199C2[lbl_1_bss_320[0]+51]); - Hu3DModelHookSet(lbl_1_bss_199C2[5], "d2_itemhook2", lbl_1_bss_199C2[lbl_1_bss_320[1]+51]); - Hu3DModelHookSet(lbl_1_bss_199C2[5], "d2_itemhook3", lbl_1_bss_199C2[lbl_1_bss_320[2]+51]); - } - Hu3DModelAttrSet(lbl_1_bss_199C2[arg0+65], 0x40000002); - Hu3DMotionTimeSet(lbl_1_bss_199C2[arg0+65], 0); - Hu3DModelAttrSet(lbl_1_bss_199C2[arg0+55], 0x40000002); - Hu3DMotionTimeSet(lbl_1_bss_199C2[arg0+55], 0); - Hu3DMotionSpeedSet(lbl_1_bss_199C2[arg0+55], 2); - Hu3DMotionSet(lbl_1_bss_199C2[arg0+58], lbl_1_bss_1990E[61]); - Hu3DModelAttrSet(lbl_1_bss_199C2[arg0+58], 0x40000001); - for(temp_r31=0; temp_r31<5; temp_r31++) { - if(arg0 == lbl_1_data_2C8[temp_r31]) { - lbl_1_bss_18A0[temp_r31] = 1; - } else { - lbl_1_bss_18A0[temp_r31] = 0; - } - lbl_1_bss_198F0[temp_r31][0] = 10; - lbl_1_bss_198F0[temp_r31][1] = 0; - } + s16 temp_r31; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + lbl_1_bss_312 = 0; + for (temp_r31 = 0; temp_r31 < 256; temp_r31++) { + lbl_1_bss_370[temp_r31] = 1000000.0f; + } + lbl_1_bss_1894.x = 128; + lbl_1_bss_1894.y = -100; + lbl_1_bss_1894.z = 0; + lbl_1_bss_1888.x = lbl_1_bss_1888.z = 0; + lbl_1_bss_1888.y = -30; + lbl_1_bss_860[arg0].x = lbl_1_bss_1894.x; + lbl_1_bss_860[arg0].y = 230; + lbl_1_bss_860[arg0].z = lbl_1_bss_1894.y; + fn_1_D1E0(lbl_1_bss_199C2[(arg0 * 2) + 4]); + if (arg0 == 0) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + lbl_1_bss_320[temp_r31] = temp_r31; + } + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + temp_r29 = frandmod(4); + temp_r28 = frandmod(4); + temp_r27 = lbl_1_bss_320[temp_r29]; + lbl_1_bss_320[temp_r29] = lbl_1_bss_320[temp_r28]; + lbl_1_bss_320[temp_r28] = temp_r27; + } + Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook1", lbl_1_bss_199C2[lbl_1_bss_320[0] + 47]); + Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook2", lbl_1_bss_199C2[lbl_1_bss_320[1] + 47]); + Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook3", lbl_1_bss_199C2[lbl_1_bss_320[2] + 47]); + Hu3DModelHookSet(lbl_1_bss_199C2[3], "d1_itemhook4", lbl_1_bss_199C2[lbl_1_bss_320[3] + 47]); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + Hu3DModelAttrSet(lbl_1_bss_199C2[temp_r31 + 51], HU3D_ATTR_DISPOFF); + } + } + else if (arg0 == 1) { + for (temp_r31 = temp_r29 = 0; temp_r31 < 4; temp_r31++) { + if (temp_r31 != lbl_1_bss_2D6) { + lbl_1_bss_320[temp_r29] = temp_r31; + temp_r29++; + } + } + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + temp_r29 = frandmod(3); + temp_r28 = frandmod(3); + temp_r27 = lbl_1_bss_320[temp_r29]; + lbl_1_bss_320[temp_r29] = lbl_1_bss_320[temp_r28]; + lbl_1_bss_320[temp_r28] = temp_r27; + } + Hu3DModelAttrReset(lbl_1_bss_199C2[lbl_1_bss_320[0] + 51], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_199C2[lbl_1_bss_320[1] + 51], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_199C2[lbl_1_bss_320[2] + 51], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_199C2[lbl_1_bss_2D6 + 51], HU3D_ATTR_DISPOFF); + Hu3DModelHookSet(lbl_1_bss_199C2[5], "d2_itemhook1", lbl_1_bss_199C2[lbl_1_bss_320[0] + 51]); + Hu3DModelHookSet(lbl_1_bss_199C2[5], "d2_itemhook2", lbl_1_bss_199C2[lbl_1_bss_320[1] + 51]); + Hu3DModelHookSet(lbl_1_bss_199C2[5], "d2_itemhook3", lbl_1_bss_199C2[lbl_1_bss_320[2] + 51]); + } + Hu3DModelAttrSet(lbl_1_bss_199C2[arg0 + 65], HU3D_MOTATTR_PAUSE); + Hu3DMotionTimeSet(lbl_1_bss_199C2[arg0 + 65], 0); + Hu3DModelAttrSet(lbl_1_bss_199C2[arg0 + 55], HU3D_MOTATTR_PAUSE); + Hu3DMotionTimeSet(lbl_1_bss_199C2[arg0 + 55], 0); + Hu3DMotionSpeedSet(lbl_1_bss_199C2[arg0 + 55], 2); + Hu3DMotionSet(lbl_1_bss_199C2[arg0 + 58], lbl_1_bss_1990E[61]); + Hu3DModelAttrSet(lbl_1_bss_199C2[arg0 + 58], HU3D_MOTATTR_LOOP); + for (temp_r31 = 0; temp_r31 < 5; temp_r31++) { + if (arg0 == lbl_1_data_2C8[temp_r31]) { + lbl_1_bss_18A0[temp_r31] = 1; + } + else { + lbl_1_bss_18A0[temp_r31] = 0; + } + lbl_1_bss_198F0[temp_r31][0] = 10; + lbl_1_bss_198F0[temp_r31][1] = 0; + } } void fn_1_ABD0(s16 arg0, s16 arg1); @@ -171,552 +163,550 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2); s16 fn_1_8DD0(s16 arg0) { - s16 temp_r30; - s16 temp_r29; - s32 temp_r28; - s16 temp_r27; - Mtx sp24; - Vec sp18; - Vec spC; - float sp8 = 0; - Hu3DMotionTimeSet(lbl_1_bss_199C2[9], lbl_1_data_258[arg0]); - Hu3DModelAttrSet(lbl_1_bss_199C2[9], 0x40000002); - Hu3DModelAttrReset(lbl_1_bss_199C2[arg0+65], 0x40000002); - Hu3DMotionSpeedSet(lbl_1_bss_199C2[arg0+65], 0.1*(-lbl_1_bss_1888.y-14.0f)+1.0); - temp_r28 = 0; - spC.z = spC.y = spC.x = 0; - fn_1_8180(1); - while(1) { - temp_r27 = fn_1_B1E8(&lbl_1_bss_1894, &lbl_1_bss_1888, arg0); - lbl_1_bss_860[arg0].x = lbl_1_bss_1894.x; - lbl_1_bss_860[arg0].y = 230; - lbl_1_bss_860[arg0].z = lbl_1_bss_1894.y; - if(VECMag(&lbl_1_bss_1888)) { - sp18.x = 0; - sp18.y = 0; - sp18.z = 1; - VECCrossProduct(&sp18, &lbl_1_bss_1888, &sp18); - sp18.z = sp18.y; - sp18.y = 0; - MTXRotAxisDeg(sp24, &sp18, 360.0*(VECMag(&lbl_1_bss_1888)/81.68140899333463)); - MTXConcat(lbl_1_bss_794[arg0], sp24, lbl_1_bss_794[arg0]); - } - lbl_1_bss_2E4.z = lbl_1_bss_860[arg0].z; - for(temp_r30=temp_r29=0; temp_r30<5; temp_r30++) { - if(arg0 == lbl_1_data_2C8[temp_r30]) { - fn_1_ABD0(temp_r30, arg0); - if(lbl_1_bss_198F0[temp_r30][1] & 0x2) { - temp_r29++; - } - } - } - if(temp_r29) { - if(Hu3DMotionIDGet(lbl_1_bss_199C2[arg0+58]) != lbl_1_bss_1990E[62]) { - Hu3DMotionSet(lbl_1_bss_199C2[arg0+58], lbl_1_bss_1990E[62]); - } - } else { - if(Hu3DMotionIDGet(lbl_1_bss_199C2[arg0+58]) != lbl_1_bss_1990E[61]) { - Hu3DMotionSet(lbl_1_bss_199C2[arg0+58], lbl_1_bss_1990E[61]); - } - } - if(temp_r27 != -1) { - break; - } - if(lbl_1_bss_1894.x < 85.0f && temp_r28 == 0) { - lbl_1_bss_D8F0[lbl_1_bss_1884].x = 100; - lbl_1_bss_D8F0[lbl_1_bss_1884].y = 100; - lbl_1_bss_D8F0[lbl_1_bss_1884].z = 0; - lbl_1_bss_18F0[lbl_1_bss_1884].x = 100; - lbl_1_bss_18F0[lbl_1_bss_1884].y = -500; - lbl_1_bss_18F0[lbl_1_bss_1884].z = 0; - lbl_1_bss_1884++; - Hu3DModelAttrReset(lbl_1_bss_199C2[arg0+55], 0x40000002); - Hu3DMotionTimeSet(lbl_1_bss_199C2[arg0+55], 0); - temp_r28 = 1; - } - HuPrcVSleep(); - } - for(temp_r30=0; temp_r30<5; temp_r30++) { - if(arg0 == lbl_1_data_2C8[temp_r30]) { - lbl_1_bss_198F0[temp_r30][1] = 4; - fn_1_ABD0(temp_r30, arg0); - } - } - HuAudFXPlay(1851); - return temp_r27; + s16 temp_r30; + s16 temp_r29; + s32 temp_r28; + s16 temp_r27; + Mtx sp24; + Vec sp18; + Vec spC; + float sp8 = 0; + Hu3DMotionTimeSet(lbl_1_bss_199C2[9], lbl_1_data_258[arg0]); + Hu3DModelAttrSet(lbl_1_bss_199C2[9], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(lbl_1_bss_199C2[arg0 + 65], 0x40000002); + Hu3DMotionSpeedSet(lbl_1_bss_199C2[arg0 + 65], 0.1 * (-lbl_1_bss_1888.y - 14.0f) + 1.0); + temp_r28 = 0; + spC.z = spC.y = spC.x = 0; + fn_1_8180(1); + while (1) { + temp_r27 = fn_1_B1E8(&lbl_1_bss_1894, &lbl_1_bss_1888, arg0); + lbl_1_bss_860[arg0].x = lbl_1_bss_1894.x; + lbl_1_bss_860[arg0].y = 230; + lbl_1_bss_860[arg0].z = lbl_1_bss_1894.y; + if (VECMag(&lbl_1_bss_1888)) { + sp18.x = 0; + sp18.y = 0; + sp18.z = 1; + VECCrossProduct(&sp18, &lbl_1_bss_1888, &sp18); + sp18.z = sp18.y; + sp18.y = 0; + MTXRotAxisDeg(sp24, &sp18, 360.0 * (VECMag(&lbl_1_bss_1888) / 81.68140899333463)); + MTXConcat(lbl_1_bss_794[arg0], sp24, lbl_1_bss_794[arg0]); + } + lbl_1_bss_2E4.z = lbl_1_bss_860[arg0].z; + for (temp_r30 = temp_r29 = 0; temp_r30 < 5; temp_r30++) { + if (arg0 == lbl_1_data_2C8[temp_r30]) { + fn_1_ABD0(temp_r30, arg0); + if (lbl_1_bss_198F0[temp_r30][1] & 0x2) { + temp_r29++; + } + } + } + if (temp_r29) { + if (Hu3DMotionIDGet(lbl_1_bss_199C2[arg0 + 58]) != lbl_1_bss_1990E[62]) { + Hu3DMotionSet(lbl_1_bss_199C2[arg0 + 58], lbl_1_bss_1990E[62]); + } + } + else { + if (Hu3DMotionIDGet(lbl_1_bss_199C2[arg0 + 58]) != lbl_1_bss_1990E[61]) { + Hu3DMotionSet(lbl_1_bss_199C2[arg0 + 58], lbl_1_bss_1990E[61]); + } + } + if (temp_r27 != -1) { + break; + } + if (lbl_1_bss_1894.x < 85.0f && temp_r28 == 0) { + lbl_1_bss_D8F0[lbl_1_bss_1884].x = 100; + lbl_1_bss_D8F0[lbl_1_bss_1884].y = 100; + lbl_1_bss_D8F0[lbl_1_bss_1884].z = 0; + lbl_1_bss_18F0[lbl_1_bss_1884].x = 100; + lbl_1_bss_18F0[lbl_1_bss_1884].y = -500; + lbl_1_bss_18F0[lbl_1_bss_1884].z = 0; + lbl_1_bss_1884++; + Hu3DModelAttrReset(lbl_1_bss_199C2[arg0 + 55], 0x40000002); + Hu3DMotionTimeSet(lbl_1_bss_199C2[arg0 + 55], 0); + temp_r28 = 1; + } + HuPrcVSleep(); + } + for (temp_r30 = 0; temp_r30 < 5; temp_r30++) { + if (arg0 == lbl_1_data_2C8[temp_r30]) { + lbl_1_bss_198F0[temp_r30][1] = 4; + fn_1_ABD0(temp_r30, arg0); + } + } + HuAudFXPlay(1851); + return temp_r27; } void fn_1_9418(s16 arg0) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - - s16 temp_r31; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - s16 temp_r24; - s16 temp_r23; - float sp8[2]; - temp_f31 = 0; - fn_1_8180(0); - Hu3DModelPosSet(lbl_1_bss_2D0, 124, 0, 70); - Hu3DModelRotSet(lbl_1_bss_2D0, 0, 180, 0); - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[3], 0, 4, HU3D_MOTATTR_SHIFT_REV); - HuPrcSleep(12); - HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1C, 0x0F)); - temp_r29 = HuWinCreate(-10000, 340, sp8[0], sp8[1], 1); - HuWinMesSpeedSet(temp_r29, 0); - HuWinBGTPLvlSet(temp_r29, 0); - HuWinMesSet(temp_r29, MAKE_MESSID(0x1C, 0x0F)); - CharModelMotionSet(lbl_1_bss_2DA, lbl_1_bss_2C0[2]); - Hu3DModelAttrSet(lbl_1_bss_2D0, 0x40000002); - temp_f29 = Hu3DMotionTimeGet(lbl_1_bss_2D0); - temp_f28 = Hu3DMotionMaxTimeGet(lbl_1_bss_2D0); - if(GWPlayerCfg[lbl_1_bss_2DC].iscom) { - temp_r27 = frandmod(100)+20; - } - while(1) { - temp_r26 = HuPadBtnDown[lbl_1_bss_2D8]; - temp_r23 = HuPadBtn[lbl_1_bss_2D8]; - temp_r25 = HuPadStkY[lbl_1_bss_2D8]; - if(GWPlayerCfg[lbl_1_bss_2DC].iscom) { - temp_r23 = 0; - if(temp_r27 != 0) { - temp_r27--; - temp_r25 = -72; - } else { - temp_r26 = PAD_BUTTON_A; - } - } - if((temp_r26 & PAD_BUTTON_A) && lbl_1_bss_788[arg0] > 0) { - break; - } - if(HuPadTrigR[lbl_1_bss_2D8] > 10) { - if(temp_f31 < 90.0f) { - temp_f31 += 5.0f; - } - fn_1_8180(arg0+2); - } else { - fn_1_8180(0); - if(temp_f31 > 0.0f) { - temp_f31 -= 5.0f; - } - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - lbl_1_bss_34C[temp_r31].y = 80.0-(150.0*sind(temp_f31)); - } - temp_f30 = -(temp_r25 >> 3); - temp_f30 /= 20.0f; - if(temp_f30) { - if(temp_f30+lbl_1_bss_788[arg0] < 0.0f) { - temp_f30 = -lbl_1_bss_788[arg0]; - } else { - if(temp_f30+lbl_1_bss_788[arg0] > 50.0f) { - temp_f30 = 50.0f-lbl_1_bss_788[arg0]; - } - } - temp_f29 += temp_f30; - if(temp_f29 >= temp_f28) { - temp_f29 -= temp_f28; - } - } else { - temp_f30 = -0.3f; - if(temp_f30+lbl_1_bss_788[arg0] < 0.0f) { - temp_f30 = -lbl_1_bss_788[arg0]; - } - } - Hu3DMotionTimeSet(lbl_1_bss_2D0, temp_f29); - lbl_1_bss_788[arg0] += temp_f30; - Hu3DModelPosSet(lbl_1_bss_2D0, 124, 0, 70+lbl_1_bss_788[arg0]); - for(temp_r31=0; temp_r31<5; temp_r31++) { - if(arg0 == lbl_1_data_2C8[temp_r31]) { - fn_1_ABD0(temp_r31, arg0); - } - } - HuPrcVSleep(); - } - if(temp_f31 > 0) { - fn_1_8180(0); - for(temp_r28=0; temp_r28<10; temp_r28++) { - temp_f31 -= 10.0f; - if(temp_f31 < 0.0f) { - temp_f31 = 0.0f; - } - for(temp_r31=0; temp_r31<3; temp_r31++) { - lbl_1_bss_34C[temp_r31].y = 80.0-(150.0*sind(temp_f31)); - } - if(temp_f31 == 0.0f) { - break; - } - HuPrcVSleep(); - } - } - CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[3], 0, 8, HU3D_MOTATTR_NONE); - HuPrcSleep(4); - temp_r24 = lbl_1_bss_788[arg0]/4; - lbl_1_bss_1888.y = (-15-temp_r24)+(0.1*(float)frandmod(10)); - lbl_1_bss_788[arg0] = 0; - HuWinExCleanup(temp_r29); - HuAudFXPlay(1852); + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + + s16 temp_r31; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + s16 temp_r24; + s16 temp_r23; + float sp8[2]; + temp_f31 = 0; + fn_1_8180(0); + Hu3DModelPosSet(lbl_1_bss_2D0, 124, 0, 70); + Hu3DModelRotSet(lbl_1_bss_2D0, 0, 180, 0); + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[3], 0, 4, HU3D_MOTATTR_SHIFT_REV); + HuPrcSleep(12); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x1C, 0x0F)); + temp_r29 = HuWinCreate(-10000, 340, sp8[0], sp8[1], 1); + HuWinMesSpeedSet(temp_r29, 0); + HuWinBGTPLvlSet(temp_r29, 0); + HuWinMesSet(temp_r29, MAKE_MESSID(0x1C, 0x0F)); + CharModelMotionSet(lbl_1_bss_2DA, lbl_1_bss_2C0[2]); + Hu3DModelAttrSet(lbl_1_bss_2D0, HU3D_MOTATTR_PAUSE); + temp_f29 = Hu3DMotionTimeGet(lbl_1_bss_2D0); + temp_f28 = Hu3DMotionMaxTimeGet(lbl_1_bss_2D0); + if (GWPlayerCfg[lbl_1_bss_2DC].iscom) { + temp_r27 = frandmod(100) + 20; + } + while (1) { + temp_r26 = HuPadBtnDown[lbl_1_bss_2D8]; + temp_r23 = HuPadBtn[lbl_1_bss_2D8]; + temp_r25 = HuPadStkY[lbl_1_bss_2D8]; + if (GWPlayerCfg[lbl_1_bss_2DC].iscom) { + temp_r23 = 0; + if (temp_r27 != 0) { + temp_r27--; + temp_r25 = -72; + } + else { + temp_r26 = PAD_BUTTON_A; + } + } + if ((temp_r26 & PAD_BUTTON_A) && lbl_1_bss_788[arg0] > 0) { + break; + } + if (HuPadTrigR[lbl_1_bss_2D8] > 10) { + if (temp_f31 < 90.0f) { + temp_f31 += 5.0f; + } + fn_1_8180(arg0 + 2); + } + else { + fn_1_8180(0); + if (temp_f31 > 0.0f) { + temp_f31 -= 5.0f; + } + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + lbl_1_bss_34C[temp_r31].y = 80.0 - (150.0 * sind(temp_f31)); + } + temp_f30 = -(temp_r25 >> 3); + temp_f30 /= 20.0f; + if (temp_f30) { + if (temp_f30 + lbl_1_bss_788[arg0] < 0.0f) { + temp_f30 = -lbl_1_bss_788[arg0]; + } + else { + if (temp_f30 + lbl_1_bss_788[arg0] > 50.0f) { + temp_f30 = 50.0f - lbl_1_bss_788[arg0]; + } + } + temp_f29 += temp_f30; + if (temp_f29 >= temp_f28) { + temp_f29 -= temp_f28; + } + } + else { + temp_f30 = -0.3f; + if (temp_f30 + lbl_1_bss_788[arg0] < 0.0f) { + temp_f30 = -lbl_1_bss_788[arg0]; + } + } + Hu3DMotionTimeSet(lbl_1_bss_2D0, temp_f29); + lbl_1_bss_788[arg0] += temp_f30; + Hu3DModelPosSet(lbl_1_bss_2D0, 124, 0, 70 + lbl_1_bss_788[arg0]); + for (temp_r31 = 0; temp_r31 < 5; temp_r31++) { + if (arg0 == lbl_1_data_2C8[temp_r31]) { + fn_1_ABD0(temp_r31, arg0); + } + } + HuPrcVSleep(); + } + if (temp_f31 > 0) { + fn_1_8180(0); + for (temp_r28 = 0; temp_r28 < 10; temp_r28++) { + temp_f31 -= 10.0f; + if (temp_f31 < 0.0f) { + temp_f31 = 0.0f; + } + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + lbl_1_bss_34C[temp_r31].y = 80.0 - (150.0 * sind(temp_f31)); + } + if (temp_f31 == 0.0f) { + break; + } + HuPrcVSleep(); + } + } + CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[3], 0, 8, HU3D_MOTATTR_NONE); + HuPrcSleep(4); + temp_r24 = lbl_1_bss_788[arg0] / 4; + lbl_1_bss_1888.y = (-15 - temp_r24) + (0.1 * (float)frandmod(10)); + lbl_1_bss_788[arg0] = 0; + HuWinExCleanup(temp_r29); + HuAudFXPlay(1852); } void fn_1_9CAC(s16 arg0, s16 arg1) { - Mtx sp38; - Mtx sp8; - ModelData *temp_r29; - - Hu3DMotionSet(lbl_1_bss_199C2[arg0+58], lbl_1_bss_1990E[63]); - Hu3DModelAttrSet(lbl_1_bss_199C2[arg0+58], 0x40000001); - Hu3DModelAttrReset(lbl_1_bss_199C2[64], 0x1); - Hu3DModelAttrSet(lbl_1_bss_199C2[64], 0x40000001); - Hu3DMotionTimeSet(lbl_1_bss_199C2[64], 0); - MTXTrans(sp8, 0, -150, 0); - if(arg0 == 0) { - switch(arg1) { - case 0: - Hu3DModelObjMtxGet(lbl_1_bss_199C2[3], "d1_itemhook1", sp38); - break; - - case 1: - Hu3DModelObjMtxGet(lbl_1_bss_199C2[3], "d1_itemhook2", sp38); - break; - - case 2: - Hu3DModelObjMtxGet(lbl_1_bss_199C2[3], "d1_itemhook3", sp38); - break; - - case 3: - Hu3DModelObjMtxGet(lbl_1_bss_199C2[3], "d1_itemhook4", sp38); - break; - } - } else if(arg0 == 1) { - switch(arg1) { - case 0: - Hu3DModelObjMtxGet(lbl_1_bss_199C2[5], "d2_itemhook1", sp38); - break; - - case 1: - Hu3DModelObjMtxGet(lbl_1_bss_199C2[5], "d2_itemhook2", sp38); - break; - - case 2: - Hu3DModelObjMtxGet(lbl_1_bss_199C2[5], "d2_itemhook3", sp38); - break; - } - } else { - switch(arg1) { - case 0: - Hu3DModelObjMtxGet(lbl_1_bss_199C2[7], "d3_itemhook1", sp38); - break; - - case 1: - Hu3DModelObjMtxGet(lbl_1_bss_199C2[7], "d3_itemhook4", sp38); - break; - - case 2: - Hu3DModelObjMtxGet(lbl_1_bss_199C2[7], "d3_itemhook2", sp38); - break; - - case 3: - Hu3DModelObjMtxGet(lbl_1_bss_199C2[7], "d3_itemhook7", sp38); - break; - - case 4: - Hu3DModelObjMtxGet(lbl_1_bss_199C2[7], "d3_itemhook6", sp38); - break; - - case 5: - Hu3DModelObjMtxGet(lbl_1_bss_199C2[7], "d3_itemhook3", sp38); - break; - - case 6: - Hu3DModelObjMtxGet(lbl_1_bss_199C2[7], "d3_itemhook5", sp38); - break; - } - mtxScaleCat(sp8, 0.8, 1, 0.8); - } - temp_r29 = &Hu3DData[lbl_1_bss_199C2[64]]; - MTXConcat(sp38, sp8, sp38); - MTXCopy(sp38, temp_r29->unk_F0); + Mtx sp38; + Mtx sp8; + ModelData *temp_r29; + + Hu3DMotionSet(lbl_1_bss_199C2[arg0 + 58], lbl_1_bss_1990E[63]); + Hu3DModelAttrSet(lbl_1_bss_199C2[arg0 + 58], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(lbl_1_bss_199C2[64], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_199C2[64], HU3D_MOTATTR_LOOP); + Hu3DMotionTimeSet(lbl_1_bss_199C2[64], 0); + MTXTrans(sp8, 0, -150, 0); + if (arg0 == 0) { + switch (arg1) { + case 0: + Hu3DModelObjMtxGet(lbl_1_bss_199C2[3], "d1_itemhook1", sp38); + break; + + case 1: + Hu3DModelObjMtxGet(lbl_1_bss_199C2[3], "d1_itemhook2", sp38); + break; + + case 2: + Hu3DModelObjMtxGet(lbl_1_bss_199C2[3], "d1_itemhook3", sp38); + break; + + case 3: + Hu3DModelObjMtxGet(lbl_1_bss_199C2[3], "d1_itemhook4", sp38); + break; + } + } + else if (arg0 == 1) { + switch (arg1) { + case 0: + Hu3DModelObjMtxGet(lbl_1_bss_199C2[5], "d2_itemhook1", sp38); + break; + + case 1: + Hu3DModelObjMtxGet(lbl_1_bss_199C2[5], "d2_itemhook2", sp38); + break; + + case 2: + Hu3DModelObjMtxGet(lbl_1_bss_199C2[5], "d2_itemhook3", sp38); + break; + } + } + else { + switch (arg1) { + case 0: + Hu3DModelObjMtxGet(lbl_1_bss_199C2[7], "d3_itemhook1", sp38); + break; + + case 1: + Hu3DModelObjMtxGet(lbl_1_bss_199C2[7], "d3_itemhook4", sp38); + break; + + case 2: + Hu3DModelObjMtxGet(lbl_1_bss_199C2[7], "d3_itemhook2", sp38); + break; + + case 3: + Hu3DModelObjMtxGet(lbl_1_bss_199C2[7], "d3_itemhook7", sp38); + break; + + case 4: + Hu3DModelObjMtxGet(lbl_1_bss_199C2[7], "d3_itemhook6", sp38); + break; + + case 5: + Hu3DModelObjMtxGet(lbl_1_bss_199C2[7], "d3_itemhook3", sp38); + break; + + case 6: + Hu3DModelObjMtxGet(lbl_1_bss_199C2[7], "d3_itemhook5", sp38); + break; + } + mtxScaleCat(sp8, 0.8, 1, 0.8); + } + temp_r29 = &Hu3DData[lbl_1_bss_199C2[64]]; + MTXConcat(sp38, sp8, sp38); + MTXCopy(sp38, temp_r29->unk_F0); } void fn_1_A060(void) { - s16 temp_r31; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - Vec sp20; - Vec sp14; - float sp8[3] = { 0, 40, 60 }; - for(temp_r30=0; temp_r30<3; temp_r30++) { - lbl_1_bss_34C[temp_r30].y = -100; - lbl_1_bss_34C[temp_r30].z = 200; - lbl_1_bss_328[temp_r30].x = lbl_1_bss_328[temp_r30].y = lbl_1_bss_328[temp_r30].z = 0.3f; - Hu3DModelAttrReset(lbl_1_bss_199C2[temp_r30+71], 1); - Hu3DModelAttrSet(lbl_1_bss_199C2[temp_r30+71], 0x40000001); - } - lbl_1_bss_34C[0].x = 188; - lbl_1_bss_34C[1].x = 388; - lbl_1_bss_34C[2].x = 288; - temp_r29 = temp_r27 = 0; - while(1) { - for(temp_r30=0; temp_r30<3; temp_r30++) { - sp14 = lbl_1_bss_34C[temp_r30]; - sp14.y += 5.0*sind(sp8[temp_r30]); - Hu3D2Dto3D(&sp14, 1, &sp20); - Hu3DModelPosSet(lbl_1_bss_199C2[temp_r30+71], sp20.x, sp20.y, sp20.z); - Hu3DModelRotSet(lbl_1_bss_199C2[temp_r30+71], lbl_1_bss_2A8[0].x , lbl_1_bss_2A8[0].y, lbl_1_bss_2A8[0].z); - Hu3DModelScaleSet(lbl_1_bss_199C2[temp_r30+71], lbl_1_bss_328[temp_r30].x/2.0, lbl_1_bss_328[temp_r30].y/2.0, lbl_1_bss_328[temp_r30].z/2.0); - switch(temp_r30) { - case 0: - for(temp_r31=0; temp_r31<4; temp_r31++) { - Hu3DModelScaleSet(lbl_1_bss_199C2[temp_r31+74], lbl_1_bss_328[temp_r30].x*1.2, lbl_1_bss_328[temp_r30].y*1.2, lbl_1_bss_328[temp_r30].z*1.2); - } - if(lbl_1_bss_2D6 != -2) { - if(lbl_1_bss_2D6 == -1) { - if((temp_r27 & 0x7) == 0 && (++temp_r29) >= 4) { - temp_r29 = 0; - } - temp_r27++; - temp_r28 = lbl_1_bss_199C2[temp_r29+74]; - for(temp_r31=0; temp_r31<4; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_199C2[temp_r31+74], 1); - } - Hu3DModelAttrReset(temp_r28, 1); - } else { - temp_r28 = lbl_1_bss_199C2[lbl_1_bss_2D6+74]; - for(temp_r31=0; temp_r31<4; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_199C2[temp_r31+74], 1); - } - Hu3DModelAttrReset(temp_r28, 1); - } - Hu3DModelPosSet(temp_r28, sp20.x, sp20.y, sp20.z); - Hu3DModelRotSet(temp_r28, 90.0f+lbl_1_bss_2A8[0].x , lbl_1_bss_2A8[0].y, lbl_1_bss_2A8[0].z); - } - break; - - case 1: - for(temp_r31=0; temp_r31<4; temp_r31++) { - if(temp_r31 == lbl_1_bss_2D6) { - continue; - } - Hu3DModelScaleSet(lbl_1_bss_199C2[temp_r31+74], lbl_1_bss_328[temp_r30].x*1.2, lbl_1_bss_328[temp_r30].y*1.2, lbl_1_bss_328[temp_r30].z*1.2); - } - if(lbl_1_bss_2D4 != -2) { - if(lbl_1_bss_2D4 == -1) { - if((temp_r27 & 0x7) == 0) { - temp_r29++; - if(temp_r29 == lbl_1_bss_2D6) { - temp_r29++; - } - if(temp_r29 >= 4) { - temp_r29 = 0; - if(lbl_1_bss_2D6 == 0) { - temp_r29++; - } - } - - } else { - if(temp_r29 == lbl_1_bss_2D6) { - temp_r29++; - if(temp_r29 >= 4) { - temp_r29 = 0; - } - } - } - temp_r27++; - temp_r28 = lbl_1_bss_199C2[temp_r29+74]; - for(temp_r31=0; temp_r31<4; temp_r31++) { - if(temp_r31 != lbl_1_bss_2D6) { - Hu3DModelAttrSet(lbl_1_bss_199C2[temp_r31+74], 1); - } - - } - Hu3DModelAttrReset(temp_r28, 1); - } else { - temp_r28 = lbl_1_bss_199C2[lbl_1_bss_2D4+74]; - for(temp_r31=0; temp_r31<4; temp_r31++) { - if(temp_r31 != lbl_1_bss_2D6) { - Hu3DModelAttrSet(lbl_1_bss_199C2[temp_r31+74], 1); - } - - } - Hu3DModelAttrReset(temp_r28, 1); - } - Hu3DModelPosSet(temp_r28, sp20.x, sp20.y, sp20.z); - Hu3DModelRotSet(temp_r28, 90.0f+lbl_1_bss_2A8[0].x , lbl_1_bss_2A8[0].y, lbl_1_bss_2A8[0].z); - } - break; - - case 2: - for(temp_r31=0; temp_r31<7; temp_r31++) { - Hu3DModelScaleSet(lbl_1_bss_199C2[temp_r31+78], lbl_1_bss_328[temp_r30].x*1.2, lbl_1_bss_328[temp_r30].y*1.2, lbl_1_bss_328[temp_r30].z*1.2); - } - if(lbl_1_bss_2D2 != -2) { - if(lbl_1_bss_2D2 == -1) { - if((temp_r27 & 0x7) == 0 && (++temp_r29) >= 7) { - temp_r29 = 0; - } - temp_r27++; - temp_r28 = lbl_1_bss_199C2[temp_r29+78]; - for(temp_r31=0; temp_r31<7; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_199C2[temp_r31+78], 1); - } - Hu3DModelAttrReset(temp_r28, 1); - } else { - temp_r28 = lbl_1_bss_199C2[lbl_1_bss_2D2+78]; - for(temp_r31=0; temp_r31<7; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_199C2[temp_r31+78], 1); - } - Hu3DModelAttrReset(temp_r28, 1); - } - Hu3DModelPosSet(temp_r28, sp20.x, sp20.y, sp20.z); - Hu3DModelRotSet(temp_r28, 90.0f+lbl_1_bss_2A8[0].x , lbl_1_bss_2A8[0].y, lbl_1_bss_2A8[0].z); - } - break; - } - sp8[temp_r30] += 4.0*(1.0+(temp_r30*0.05)); - if(sp8[temp_r30] > 360.0f) { - sp8[temp_r30] -= 360.0f; - } - } - HuPrcVSleep(); - } - + s16 temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + Vec sp20; + Vec sp14; + float sp8[3] = { 0, 40, 60 }; + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + lbl_1_bss_34C[temp_r30].y = -100; + lbl_1_bss_34C[temp_r30].z = 200; + lbl_1_bss_328[temp_r30].x = lbl_1_bss_328[temp_r30].y = lbl_1_bss_328[temp_r30].z = 0.3f; + Hu3DModelAttrReset(lbl_1_bss_199C2[temp_r30 + 71], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_199C2[temp_r30 + 71], HU3D_MOTATTR_LOOP); + } + lbl_1_bss_34C[0].x = 188; + lbl_1_bss_34C[1].x = 388; + lbl_1_bss_34C[2].x = 288; + temp_r29 = temp_r27 = 0; + while (1) { + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + sp14 = lbl_1_bss_34C[temp_r30]; + sp14.y += 5.0 * sind(sp8[temp_r30]); + Hu3D2Dto3D(&sp14, 1, &sp20); + Hu3DModelPosSet(lbl_1_bss_199C2[temp_r30 + 71], sp20.x, sp20.y, sp20.z); + Hu3DModelRotSet(lbl_1_bss_199C2[temp_r30 + 71], lbl_1_bss_2A8[0].x, lbl_1_bss_2A8[0].y, lbl_1_bss_2A8[0].z); + Hu3DModelScaleSet( + lbl_1_bss_199C2[temp_r30 + 71], lbl_1_bss_328[temp_r30].x / 2.0, lbl_1_bss_328[temp_r30].y / 2.0, lbl_1_bss_328[temp_r30].z / 2.0); + switch (temp_r30) { + case 0: + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + Hu3DModelScaleSet(lbl_1_bss_199C2[temp_r31 + 74], lbl_1_bss_328[temp_r30].x * 1.2, lbl_1_bss_328[temp_r30].y * 1.2, + lbl_1_bss_328[temp_r30].z * 1.2); + } + if (lbl_1_bss_2D6 != -2) { + if (lbl_1_bss_2D6 == -1) { + if ((temp_r27 & 0x7) == 0 && (++temp_r29) >= 4) { + temp_r29 = 0; + } + temp_r27++; + temp_r28 = lbl_1_bss_199C2[temp_r29 + 74]; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + Hu3DModelAttrSet(lbl_1_bss_199C2[temp_r31 + 74], HU3D_ATTR_DISPOFF); + } + Hu3DModelAttrReset(temp_r28, HU3D_ATTR_DISPOFF); + } + else { + temp_r28 = lbl_1_bss_199C2[lbl_1_bss_2D6 + 74]; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + Hu3DModelAttrSet(lbl_1_bss_199C2[temp_r31 + 74], HU3D_ATTR_DISPOFF); + } + Hu3DModelAttrReset(temp_r28, HU3D_ATTR_DISPOFF); + } + Hu3DModelPosSet(temp_r28, sp20.x, sp20.y, sp20.z); + Hu3DModelRotSet(temp_r28, 90.0f + lbl_1_bss_2A8[0].x, lbl_1_bss_2A8[0].y, lbl_1_bss_2A8[0].z); + } + break; + + case 1: + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + if (temp_r31 == lbl_1_bss_2D6) { + continue; + } + Hu3DModelScaleSet(lbl_1_bss_199C2[temp_r31 + 74], lbl_1_bss_328[temp_r30].x * 1.2, lbl_1_bss_328[temp_r30].y * 1.2, + lbl_1_bss_328[temp_r30].z * 1.2); + } + if (lbl_1_bss_2D4 != -2) { + if (lbl_1_bss_2D4 == -1) { + if ((temp_r27 & 0x7) == 0) { + temp_r29++; + if (temp_r29 == lbl_1_bss_2D6) { + temp_r29++; + } + if (temp_r29 >= 4) { + temp_r29 = 0; + if (lbl_1_bss_2D6 == 0) { + temp_r29++; + } + } + } + else { + if (temp_r29 == lbl_1_bss_2D6) { + temp_r29++; + if (temp_r29 >= 4) { + temp_r29 = 0; + } + } + } + temp_r27++; + temp_r28 = lbl_1_bss_199C2[temp_r29 + 74]; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + if (temp_r31 != lbl_1_bss_2D6) { + Hu3DModelAttrSet(lbl_1_bss_199C2[temp_r31 + 74], HU3D_ATTR_DISPOFF); + } + } + Hu3DModelAttrReset(temp_r28, HU3D_ATTR_DISPOFF); + } + else { + temp_r28 = lbl_1_bss_199C2[lbl_1_bss_2D4 + 74]; + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + if (temp_r31 != lbl_1_bss_2D6) { + Hu3DModelAttrSet(lbl_1_bss_199C2[temp_r31 + 74], HU3D_ATTR_DISPOFF); + } + } + Hu3DModelAttrReset(temp_r28, HU3D_ATTR_DISPOFF); + } + Hu3DModelPosSet(temp_r28, sp20.x, sp20.y, sp20.z); + Hu3DModelRotSet(temp_r28, 90.0f + lbl_1_bss_2A8[0].x, lbl_1_bss_2A8[0].y, lbl_1_bss_2A8[0].z); + } + break; + + case 2: + for (temp_r31 = 0; temp_r31 < 7; temp_r31++) { + Hu3DModelScaleSet(lbl_1_bss_199C2[temp_r31 + 78], lbl_1_bss_328[temp_r30].x * 1.2, lbl_1_bss_328[temp_r30].y * 1.2, + lbl_1_bss_328[temp_r30].z * 1.2); + } + if (lbl_1_bss_2D2 != -2) { + if (lbl_1_bss_2D2 == -1) { + if ((temp_r27 & 0x7) == 0 && (++temp_r29) >= 7) { + temp_r29 = 0; + } + temp_r27++; + temp_r28 = lbl_1_bss_199C2[temp_r29 + 78]; + for (temp_r31 = 0; temp_r31 < 7; temp_r31++) { + Hu3DModelAttrSet(lbl_1_bss_199C2[temp_r31 + 78], HU3D_ATTR_DISPOFF); + } + Hu3DModelAttrReset(temp_r28, HU3D_ATTR_DISPOFF); + } + else { + temp_r28 = lbl_1_bss_199C2[lbl_1_bss_2D2 + 78]; + for (temp_r31 = 0; temp_r31 < 7; temp_r31++) { + Hu3DModelAttrSet(lbl_1_bss_199C2[temp_r31 + 78], HU3D_ATTR_DISPOFF); + } + Hu3DModelAttrReset(temp_r28, HU3D_ATTR_DISPOFF); + } + Hu3DModelPosSet(temp_r28, sp20.x, sp20.y, sp20.z); + Hu3DModelRotSet(temp_r28, 90.0f + lbl_1_bss_2A8[0].x, lbl_1_bss_2A8[0].y, lbl_1_bss_2A8[0].z); + } + break; + } + sp8[temp_r30] += 4.0 * (1.0 + (temp_r30 * 0.05)); + if (sp8[temp_r30] > 360.0f) { + sp8[temp_r30] -= 360.0f; + } + } + HuPrcVSleep(); + } } void fn_1_ABD0(s16 arg0, s16 arg1) { - float temp_f31; - float temp_f30; - float temp_f29; - s16 *temp_r31; - s16 temp_r29; - s16 temp_r28; - Vec sp14; - Vec sp8; - temp_r31 = &lbl_1_bss_198F0[arg0][0]; - temp_r29 = lbl_1_bss_199C2[arg0+38]; - if(temp_r31[1] & 0x2) { - if(temp_r31[0] == 85) { - if(Hu3DMotionIDGet(temp_r29) != lbl_1_bss_1990E[45] && Hu3DMotionShiftIDGet(temp_r29) != lbl_1_bss_1990E[45]) { - Hu3DMotionShiftSet(temp_r29, lbl_1_bss_1990E[45], 0, 8, HU3D_MOTATTR_NONE); - } - } else { - if(Hu3DMotionIDGet(temp_r29) != lbl_1_bss_1990E[46] && Hu3DMotionShiftIDGet(temp_r29) != lbl_1_bss_1990E[46]) { - Hu3DMotionShiftSet(temp_r29, lbl_1_bss_1990E[46], 0, 8, HU3D_MOTATTR_LOOP); - } - } - temp_r31[0]--; - if(temp_r31[0] <= 0) { - temp_r31[1] &= ~0x2; - temp_r31[1] |= 0x4; - temp_r31[0] = 20; - } - } else { - if(temp_r31[1] & 0x4) { - if(Hu3DMotionIDGet(temp_r29) != lbl_1_bss_1990E[43] && Hu3DMotionShiftIDGet(temp_r29) != lbl_1_bss_1990E[43]) { - Hu3DMotionShiftSet(temp_r29, lbl_1_bss_1990E[43], 0, 16, HU3D_MOTATTR_LOOP); - } - temp_r31[0]--; - if(temp_r31[0] <= 0) { - temp_r31[1] &= ~0x4; - temp_r31[0] = frandmod(30)+30; - } - } else { - temp_r31[0]--; - if(temp_r31[0] <= 0) { - temp_r31[1] |= 4; - temp_r31[0] = 60; - } else { - if(Hu3DMotionIDGet(temp_r29) != lbl_1_bss_1990E[44] ) { - Hu3DMotionSet(temp_r29, lbl_1_bss_1990E[44]); - } - if(temp_r31[1] & 0x1) { - temp_f31 = -1; - temp_f30 = -90; - } else { - temp_f31 = 1; - temp_f30 = 90; - } - sp8 = lbl_1_bss_18B4[arg0]; - sp8.x += temp_f31; - for(temp_r28=0; temp_r28<5; temp_r28++) { - if(temp_r28 == arg0 || lbl_1_bss_18A0[temp_r28] == 0) { - continue; - } - VECSubtract(&sp8, &lbl_1_bss_18B4[temp_r28], &sp14); - if(VECMag(&sp14) < 55.0f) { - break; - } - } - if(temp_r28 == 5) { - lbl_1_bss_18B4[arg0].x += temp_f31; - if(lbl_1_bss_18B4[arg0].x < lbl_1_data_2A0[(arg0*2)]) { - lbl_1_bss_18B4[arg0].x = lbl_1_data_2A0[(arg0*2)]; - temp_r31[1] ^= 0x1; - temp_r31[1] |= 0x4; - temp_r31[0] = 60; - } - if(lbl_1_bss_18B4[arg0].x > lbl_1_data_2A0[(arg0*2)+1]) { - lbl_1_bss_18B4[arg0].x = lbl_1_data_2A0[(arg0*2)+1]; - temp_r31[1] ^= 0x1; - temp_r31[1] |= 0x4; - temp_r31[0] = 60; - } - } else { - temp_r31[1] ^= 0x1; - temp_r31[1] |= 0x4; - temp_r31[0] = 60; - } - } - } - } - lbl_1_bss_824[arg0].x = lbl_1_bss_18B4[arg0].x; - lbl_1_bss_824[arg0].y = 215; - lbl_1_bss_824[arg0].z = lbl_1_bss_18B4[arg0].y; + float temp_f31; + float temp_f30; + float temp_f29; + s16 *temp_r31; + s16 temp_r29; + s16 temp_r28; + Vec sp14; + Vec sp8; + temp_r31 = &lbl_1_bss_198F0[arg0][0]; + temp_r29 = lbl_1_bss_199C2[arg0 + 38]; + if (temp_r31[1] & 0x2) { + if (temp_r31[0] == 85) { + if (Hu3DMotionIDGet(temp_r29) != lbl_1_bss_1990E[45] && Hu3DMotionShiftIDGet(temp_r29) != lbl_1_bss_1990E[45]) { + Hu3DMotionShiftSet(temp_r29, lbl_1_bss_1990E[45], 0, 8, HU3D_MOTATTR_NONE); + } + } + else { + if (Hu3DMotionIDGet(temp_r29) != lbl_1_bss_1990E[46] && Hu3DMotionShiftIDGet(temp_r29) != lbl_1_bss_1990E[46]) { + Hu3DMotionShiftSet(temp_r29, lbl_1_bss_1990E[46], 0, 8, HU3D_MOTATTR_LOOP); + } + } + temp_r31[0]--; + if (temp_r31[0] <= 0) { + temp_r31[1] &= ~0x2; + temp_r31[1] |= 0x4; + temp_r31[0] = 20; + } + } + else { + if (temp_r31[1] & 0x4) { + if (Hu3DMotionIDGet(temp_r29) != lbl_1_bss_1990E[43] && Hu3DMotionShiftIDGet(temp_r29) != lbl_1_bss_1990E[43]) { + Hu3DMotionShiftSet(temp_r29, lbl_1_bss_1990E[43], 0, 16, HU3D_MOTATTR_LOOP); + } + temp_r31[0]--; + if (temp_r31[0] <= 0) { + temp_r31[1] &= ~0x4; + temp_r31[0] = frandmod(30) + 30; + } + } + else { + temp_r31[0]--; + if (temp_r31[0] <= 0) { + temp_r31[1] |= 4; + temp_r31[0] = 60; + } + else { + if (Hu3DMotionIDGet(temp_r29) != lbl_1_bss_1990E[44]) { + Hu3DMotionSet(temp_r29, lbl_1_bss_1990E[44]); + } + if (temp_r31[1] & 0x1) { + temp_f31 = -1; + temp_f30 = -90; + } + else { + temp_f31 = 1; + temp_f30 = 90; + } + sp8 = lbl_1_bss_18B4[arg0]; + sp8.x += temp_f31; + for (temp_r28 = 0; temp_r28 < 5; temp_r28++) { + if (temp_r28 == arg0 || lbl_1_bss_18A0[temp_r28] == 0) { + continue; + } + VECSubtract(&sp8, &lbl_1_bss_18B4[temp_r28], &sp14); + if (VECMag(&sp14) < 55.0f) { + break; + } + } + if (temp_r28 == 5) { + lbl_1_bss_18B4[arg0].x += temp_f31; + if (lbl_1_bss_18B4[arg0].x < lbl_1_data_2A0[(arg0 * 2)]) { + lbl_1_bss_18B4[arg0].x = lbl_1_data_2A0[(arg0 * 2)]; + temp_r31[1] ^= 0x1; + temp_r31[1] |= 0x4; + temp_r31[0] = 60; + } + if (lbl_1_bss_18B4[arg0].x > lbl_1_data_2A0[(arg0 * 2) + 1]) { + lbl_1_bss_18B4[arg0].x = lbl_1_data_2A0[(arg0 * 2) + 1]; + temp_r31[1] ^= 0x1; + temp_r31[1] |= 0x4; + temp_r31[0] = 60; + } + } + else { + temp_r31[1] ^= 0x1; + temp_r31[1] |= 0x4; + temp_r31[0] = 60; + } + } + } + } + lbl_1_bss_824[arg0].x = lbl_1_bss_18B4[arg0].x; + lbl_1_bss_824[arg0].y = 215; + lbl_1_bss_824[arg0].z = lbl_1_bss_18B4[arg0].y; } -s16 lbl_1_data_3A4[] = { - 4, 3, 7 -}; +s16 lbl_1_data_3A4[] = { 4, 3, 7 }; -Vec lbl_1_data_3AC[] = { - { -118.75, -70, 0}, - { -56.25, -70, 0 }, - { 6.25, -70, 0 }, - { 68.75, -70, 0} -}; +Vec lbl_1_data_3AC[] = { { -118.75, -70, 0 }, { -56.25, -70, 0 }, { 6.25, -70, 0 }, { 68.75, -70, 0 } }; Vec lbl_1_data_3DC[] = { - { -108.35, -70, 0}, - { -25.05, -70, 0 }, - { 58.25, -70, 0 }, + { -108.35, -70, 0 }, + { -25.05, -70, 0 }, + { 58.25, -70, 0 }, }; -Vec lbl_1_data_400[] = { - { -125, -70, 0 }, - { -75, -70, 0 }, - { -25, -70, 0 }, - { 25, -70, 0 }, - { 75, -70, 0 }, - { -85, -190, 0 }, - { 35, -190, 0 } -}; +Vec lbl_1_data_400[] = { { -125, -70, 0 }, { -75, -70, 0 }, { -25, -70, 0 }, { 25, -70, 0 }, { 75, -70, 0 }, { -85, -190, 0 }, { 35, -190, 0 } }; -Vec *lbl_1_data_454[] = { - lbl_1_data_3AC, - lbl_1_data_3DC, - lbl_1_data_400 -}; +Vec *lbl_1_data_454[] = { lbl_1_data_3AC, lbl_1_data_3DC, lbl_1_data_400 }; Vec *fn_1_CA30(Vec *arg0, Vec *arg1, Vec *arg2); @@ -724,478 +714,488 @@ float fn_1_CB70(Vec *arg0, Vec *arg1, Vec *arg2); s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2) { - float temp_f31; - float temp_f30; - float temp_f28; - float temp_f27; - - s16 temp_r30; - Vec *temp_r28; - s32 temp_r27; - Vec *temp_r25; - u8 temp_r24; - s16 temp_r23; - Vec sp4C; - - Vec sp40; - Vec sp34; - Vec sp28; - Vec sp1C; - Vec sp10; - s32 spC; - - temp_r23 = -1; - spC = 1; - temp_f28 = VECMag(arg1); - sp1C = *arg1; - temp_r27 = 0; - sp10 = *arg0; - temp_r24 = lbl_1_bss_310-120; - for(temp_r30=temp_f30=0; temp_r30<120; temp_r30++, temp_r24++) { - temp_f30 += lbl_1_bss_370[temp_r24]; - } - if(temp_f30 < 120.0f*sqrtf(6.0f)) { - lbl_1_bss_312 = 10; - } - while(temp_f28 > 0.0f) { - if(temp_f28 > 3.0f) { - temp_f28 -= 3.0f; - temp_f31 = 3.0f; - } else { - temp_f31 = temp_f28; - temp_f28 = 0; - } - VECNormalize(&sp1C, &sp1C); - VECScale(&sp1C, &sp1C, temp_f31); - VECAdd(arg0, &sp1C, &sp4C); - temp_f31 = VECMag(&sp1C); - if(lbl_1_bss_312 == 0) { - for(temp_r30=0; temp_r30<5; temp_r30++) { - if(lbl_1_bss_18A0[temp_r30] == 0) { - continue; - } - VECSubtract(&sp4C, &lbl_1_bss_18B4[temp_r30], &sp34); - temp_f30 = VECMag(&sp34); - if(temp_f30 < 33.0) { - VECNormalize(&sp34, &sp34); - VECScale(&sp34, &sp28, 33.0f); - VECAdd(&lbl_1_bss_18B4[temp_r30], &sp28, &sp4C); - VECScale(&sp1C, &sp28, -1.0f); - temp_f27 = (sp28.x*sp34.x)+(sp28.y*sp34.y); - sp34.x = (2.0*sp34.x*temp_f27)-sp28.x; - sp34.y = (2.0*sp34.y*temp_f27)-sp28.y; - sp34.z = 0; - VECNormalize(&sp34, &sp34); - VECScale(&sp34, &sp1C, temp_f31); - VECAdd(&sp4C, &sp1C, &sp34); - temp_f30 = VECSquareDistance(&sp34, &lbl_1_bss_18B4[temp_r30]); - if(temp_f30 < 1089.0) { - VECScale(&sp1C, &sp1C, -1.0f); - } - lbl_1_bss_198F0[temp_r30][1] = 2; - lbl_1_bss_198F0[temp_r30][0] = 100; - temp_r27 = 1; - } - } - } else { - lbl_1_bss_312--; - } - for(temp_r30=0; temp_r30= 169.0f && VECSquareDistance(&lbl_1_bss_18F0[temp_r30], &sp4C) >= 169.0f) { - VECSubtract(temp_r25, &lbl_1_bss_D8F0[temp_r30], &sp34); - if(VECMag2Point(&sp34) > VECMag2Point(&sp40)) { - continue; - } - VECSubtract(temp_r25, &lbl_1_bss_18F0[temp_r30], &sp34); - if(VECMag2Point(&sp34) > VECMag2Point(&sp40)) { - continue; - } - } - VECSubtract(&sp4C, temp_r25, &sp34); - VECNormalize(&sp34, &sp34); - VECScale(&sp34, &sp34, 13.0f); - VECAdd(temp_r25, &sp34, &sp4C); - VECSubtract(arg0, &sp4C, &sp34); - *arg0 = sp4C; - temp_f31 -= VECMag(&sp34); - if(temp_f31 < 0.0f) { - temp_f28 -= temp_f31; - temp_f31 = ABS(temp_f31); - } - sp34 = sp40; - sp34.z = 1; - VECCrossProduct(&sp34, &sp40, &sp34); - VECNormalize(&sp34, &sp34); - VECScale(&sp1C, &sp28, -1.0f); - temp_f27 = (sp28.x*sp34.x)+(sp28.y*sp34.y); - sp34.x = (1.5*sp34.x*temp_f27)-sp28.x; - sp34.y = (1.5*sp34.y*temp_f27)-sp28.y; - sp34.z = 0; - VECNormalize(&sp34, &sp34); - VECScale(&sp34, &sp1C, temp_f31); - lbl_1_bss_884[temp_r30] = 10; - VECScale(arg1, arg1, 0.96f); - VECNormalize(&sp1C, &sp34); - VECNormalize(arg1, &sp28); - if(VECDotProduct(&sp34, &sp28) < 0.5) { - temp_r27 = 1; - } - } - } - VECAdd(arg0, &sp1C, arg0); - if(arg0->x >= lbl_1_bss_77C.x-13.0f) { - arg0->x = lbl_1_bss_77C.x-13.0f-1.0f; - } - if(arg0->y >= lbl_1_bss_77C.y-13.0f) { - arg0->y = lbl_1_bss_77C.y-13.0f-1.0f; - } - if(arg0->x <= lbl_1_bss_770.x+13.0f) { - arg0->x = lbl_1_bss_770.x+13.0f+1.0f; - } - if(arg0->y <= lbl_1_bss_770.y+13.0f) { - arg0->y = lbl_1_bss_770.y+13.0f+1.0f; - } - } - temp_f31 = VECMag(arg1); - VECNormalize(&sp1C, &sp1C); - VECScale(&sp1C, arg1, temp_f31); - if(temp_r27 != 0) { - HuAudFXPlay(1853); - } - if(arg2 < 0 || arg2 >= 3) { - arg2 = 0; - } - temp_r28 = lbl_1_data_454[arg2]; - for(temp_r30=0; temp_r30x = arg1->y = arg1->z = 0; - *arg0 = *temp_r28; - temp_r23= temp_r30; - break; - } - if(temp_f30 < 20.0f) { - VECScale(arg1, arg1, 0.9f); - VECNormalize(&sp34, &sp34); - VECScale(&sp34, &sp34, 0.1*(20.0f-temp_f30)); - VECAdd(arg1, &sp34, arg1); - break; - } - } - if(temp_r30 == lbl_1_data_3A4[arg2]) { - arg1->y += 0.3; - } - if(arg0->x >= lbl_1_bss_77C.x-13.0f) { - arg0->x = lbl_1_bss_77C.x-13.0f-1.0f; - } - if(arg0->y >= lbl_1_bss_77C.y-13.0f) { - arg0->y = lbl_1_bss_77C.y-13.0f-1.0f; - } - if(arg0->x <= lbl_1_bss_770.x+13.0f) { - arg0->x = lbl_1_bss_770.x+13.0f+1.0f; - } - if(arg0->y <= lbl_1_bss_770.y+13.0f) { - arg0->y = lbl_1_bss_770.y+13.0f+1.0f; - } - VECSubtract(arg0, &sp10, &sp34); - lbl_1_bss_370[lbl_1_bss_310++] = VECMag(&sp34); - return temp_r23; + float temp_f31; + float temp_f30; + float temp_f28; + float temp_f27; + + s16 temp_r30; + Vec *temp_r28; + s32 temp_r27; + Vec *temp_r25; + u8 temp_r24; + s16 temp_r23; + Vec sp4C; + + Vec sp40; + Vec sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + s32 spC; + + temp_r23 = -1; + spC = 1; + temp_f28 = VECMag(arg1); + sp1C = *arg1; + temp_r27 = 0; + sp10 = *arg0; + temp_r24 = lbl_1_bss_310 - 120; + for (temp_r30 = temp_f30 = 0; temp_r30 < 120; temp_r30++, temp_r24++) { + temp_f30 += lbl_1_bss_370[temp_r24]; + } + if (temp_f30 < 120.0f * sqrtf(6.0f)) { + lbl_1_bss_312 = 10; + } + while (temp_f28 > 0.0f) { + if (temp_f28 > 3.0f) { + temp_f28 -= 3.0f; + temp_f31 = 3.0f; + } + else { + temp_f31 = temp_f28; + temp_f28 = 0; + } + VECNormalize(&sp1C, &sp1C); + VECScale(&sp1C, &sp1C, temp_f31); + VECAdd(arg0, &sp1C, &sp4C); + temp_f31 = VECMag(&sp1C); + if (lbl_1_bss_312 == 0) { + for (temp_r30 = 0; temp_r30 < 5; temp_r30++) { + if (lbl_1_bss_18A0[temp_r30] == 0) { + continue; + } + VECSubtract(&sp4C, &lbl_1_bss_18B4[temp_r30], &sp34); + temp_f30 = VECMag(&sp34); + if (temp_f30 < 33.0) { + VECNormalize(&sp34, &sp34); + VECScale(&sp34, &sp28, 33.0f); + VECAdd(&lbl_1_bss_18B4[temp_r30], &sp28, &sp4C); + VECScale(&sp1C, &sp28, -1.0f); + temp_f27 = (sp28.x * sp34.x) + (sp28.y * sp34.y); + sp34.x = (2.0 * sp34.x * temp_f27) - sp28.x; + sp34.y = (2.0 * sp34.y * temp_f27) - sp28.y; + sp34.z = 0; + VECNormalize(&sp34, &sp34); + VECScale(&sp34, &sp1C, temp_f31); + VECAdd(&sp4C, &sp1C, &sp34); + temp_f30 = VECSquareDistance(&sp34, &lbl_1_bss_18B4[temp_r30]); + if (temp_f30 < 1089.0) { + VECScale(&sp1C, &sp1C, -1.0f); + } + lbl_1_bss_198F0[temp_r30][1] = 2; + lbl_1_bss_198F0[temp_r30][0] = 100; + temp_r27 = 1; + } + } + } + else { + lbl_1_bss_312--; + } + for (temp_r30 = 0; temp_r30 < lbl_1_bss_1884; temp_r30++) { + if (VECSquareDistance(&lbl_1_bss_D8F0[temp_r30], &sp4C) <= 169.0f) { + VECSubtract(&sp4C, &lbl_1_bss_D8F0[temp_r30], &sp34); + VECNormalize(&sp34, &sp34); + VECScale(&sp34, &sp34, 13.05f); + VECAdd(&lbl_1_bss_D8F0[temp_r30], &sp34, &sp4C); + VECScale(arg1, arg1, 0.96f); + temp_r27 = 1; + } + else { + if (VECSquareDistance(&lbl_1_bss_18F0[temp_r30], &sp4C) <= 169.0f) { + VECSubtract(&sp4C, &lbl_1_bss_18F0[temp_r30], &sp34); + VECNormalize(&sp34, &sp34); + VECScale(&sp34, &sp34, 13.05f); + VECAdd(&lbl_1_bss_18F0[temp_r30], &sp34, &sp4C); + VECScale(arg1, arg1, 0.96f); + temp_r27 = 1; + } + else { + continue; + } + } + *arg0 = sp4C; + break; + } + if (temp_f31 == 0.0) { + continue; + } + for (temp_r30 = 0; temp_r30 < lbl_1_bss_1884; temp_r30++) { + VECSubtract(&lbl_1_bss_18F0[temp_r30], &lbl_1_bss_D8F0[temp_r30], &sp40); + temp_f30 = fn_1_CB70(&sp4C, &lbl_1_bss_D8F0[temp_r30], &sp40); + if (temp_f30 < 13.0f) { + temp_r25 = fn_1_CA30(&sp4C, &lbl_1_bss_D8F0[temp_r30], &sp40); + if (VECSquareDistance(&lbl_1_bss_D8F0[temp_r30], &sp4C) >= 169.0f && VECSquareDistance(&lbl_1_bss_18F0[temp_r30], &sp4C) >= 169.0f) { + VECSubtract(temp_r25, &lbl_1_bss_D8F0[temp_r30], &sp34); + if (VECMag2Point(&sp34) > VECMag2Point(&sp40)) { + continue; + } + VECSubtract(temp_r25, &lbl_1_bss_18F0[temp_r30], &sp34); + if (VECMag2Point(&sp34) > VECMag2Point(&sp40)) { + continue; + } + } + VECSubtract(&sp4C, temp_r25, &sp34); + VECNormalize(&sp34, &sp34); + VECScale(&sp34, &sp34, 13.0f); + VECAdd(temp_r25, &sp34, &sp4C); + VECSubtract(arg0, &sp4C, &sp34); + *arg0 = sp4C; + temp_f31 -= VECMag(&sp34); + if (temp_f31 < 0.0f) { + temp_f28 -= temp_f31; + temp_f31 = ABS(temp_f31); + } + sp34 = sp40; + sp34.z = 1; + VECCrossProduct(&sp34, &sp40, &sp34); + VECNormalize(&sp34, &sp34); + VECScale(&sp1C, &sp28, -1.0f); + temp_f27 = (sp28.x * sp34.x) + (sp28.y * sp34.y); + sp34.x = (1.5 * sp34.x * temp_f27) - sp28.x; + sp34.y = (1.5 * sp34.y * temp_f27) - sp28.y; + sp34.z = 0; + VECNormalize(&sp34, &sp34); + VECScale(&sp34, &sp1C, temp_f31); + lbl_1_bss_884[temp_r30] = 10; + VECScale(arg1, arg1, 0.96f); + VECNormalize(&sp1C, &sp34); + VECNormalize(arg1, &sp28); + if (VECDotProduct(&sp34, &sp28) < 0.5) { + temp_r27 = 1; + } + } + } + VECAdd(arg0, &sp1C, arg0); + if (arg0->x >= lbl_1_bss_77C.x - 13.0f) { + arg0->x = lbl_1_bss_77C.x - 13.0f - 1.0f; + } + if (arg0->y >= lbl_1_bss_77C.y - 13.0f) { + arg0->y = lbl_1_bss_77C.y - 13.0f - 1.0f; + } + if (arg0->x <= lbl_1_bss_770.x + 13.0f) { + arg0->x = lbl_1_bss_770.x + 13.0f + 1.0f; + } + if (arg0->y <= lbl_1_bss_770.y + 13.0f) { + arg0->y = lbl_1_bss_770.y + 13.0f + 1.0f; + } + } + temp_f31 = VECMag(arg1); + VECNormalize(&sp1C, &sp1C); + VECScale(&sp1C, arg1, temp_f31); + if (temp_r27 != 0) { + HuAudFXPlay(1853); + } + if (arg2 < 0 || arg2 >= 3) { + arg2 = 0; + } + temp_r28 = lbl_1_data_454[arg2]; + for (temp_r30 = 0; temp_r30 < lbl_1_data_3A4[arg2]; temp_r30++, temp_r28++) { + VECSubtract(temp_r28, arg0, &sp34); + temp_f30 = VECMag(&sp34); + if (temp_f30 < 3.0f && VECMag(arg1) < 1.0f) { + arg1->x = arg1->y = arg1->z = 0; + *arg0 = *temp_r28; + temp_r23 = temp_r30; + break; + } + if (temp_f30 < 20.0f) { + VECScale(arg1, arg1, 0.9f); + VECNormalize(&sp34, &sp34); + VECScale(&sp34, &sp34, 0.1 * (20.0f - temp_f30)); + VECAdd(arg1, &sp34, arg1); + break; + } + } + if (temp_r30 == lbl_1_data_3A4[arg2]) { + arg1->y += 0.3; + } + if (arg0->x >= lbl_1_bss_77C.x - 13.0f) { + arg0->x = lbl_1_bss_77C.x - 13.0f - 1.0f; + } + if (arg0->y >= lbl_1_bss_77C.y - 13.0f) { + arg0->y = lbl_1_bss_77C.y - 13.0f - 1.0f; + } + if (arg0->x <= lbl_1_bss_770.x + 13.0f) { + arg0->x = lbl_1_bss_770.x + 13.0f + 1.0f; + } + if (arg0->y <= lbl_1_bss_770.y + 13.0f) { + arg0->y = lbl_1_bss_770.y + 13.0f + 1.0f; + } + VECSubtract(arg0, &sp10, &sp34); + lbl_1_bss_370[lbl_1_bss_310++] = VECMag(&sp34); + return temp_r23; } void fn_1_C214(void) { - Mtx sp98; - Mtx sp68; - Mtx sp38; - Mtx sp8; - ModelData *temp_r31; - s16 temp_r30; - s16 temp_r29; - MTXRotDeg(sp8, 'z', 120); - while(1) { - temp_r31 = &Hu3DData[lbl_1_bss_199C2[9]]; - Hu3DMotionExec(lbl_1_bss_199C2[9], temp_r31->unk_08, temp_r31->unk_64, 0); - Hu3DModelObjMtxGet(lbl_1_bss_199C2[9], "kaitendai-r_dai", sp38); - for(temp_r30=0; temp_r30<3; temp_r30++) { - temp_r31 = &Hu3DData[lbl_1_bss_199C2[temp_r30]]; - MTXTrans(sp68, lbl_1_bss_860[temp_r30].x, lbl_1_bss_860[temp_r30].y, lbl_1_bss_860[temp_r30].z); - MTXConcat(sp68, lbl_1_bss_794[temp_r30], sp68); - MTXConcat(sp38, sp68, sp98); - MTXCopy(sp98, temp_r31->unk_F0); - temp_r31 = &Hu3DData[lbl_1_bss_199C2[temp_r30+55]]; - MTXTrans(sp68, 0, 150, 0); - MTXConcat(sp38, sp68, sp98); - MTXCopy(sp98, temp_r31->unk_F0); - temp_r31 = &Hu3DData[lbl_1_bss_199C2[temp_r30+58]]; - MTXTrans(sp68, 0, 150, 0); - MTXConcat(sp38, sp68, sp98); - MTXCopy(sp98, temp_r31->unk_F0); - temp_r31 = &Hu3DData[lbl_1_bss_199C2[temp_r30+65]]; - MTXTrans(sp68, 0, 150, 0); - MTXConcat(sp38, sp68, sp98); - MTXCopy(sp98, temp_r31->unk_F0); - temp_r31 = &Hu3DData[lbl_1_bss_199C2[temp_r30+68]]; - MTXTrans(sp68, 0, 150, lbl_1_bss_788[temp_r30]-5.0f); - MTXConcat(sp38, sp68, sp98); - MTXCopy(sp98, temp_r31->unk_F0); - for(temp_r29=0; temp_r29<5; temp_r29++) { - if(temp_r30 != lbl_1_data_2C8[temp_r29]) { - continue; - } - temp_r31 = &Hu3DData[lbl_1_bss_199C2[temp_r29+38]]; - MTXTrans(sp68, lbl_1_bss_824[temp_r29].x, lbl_1_bss_824[temp_r29].y, lbl_1_bss_824[temp_r29].z); - mtxScaleCat(sp68, 0.35f, 0.35f, 0.35f); - MTXConcat(sp38, sp68, sp98); - MTXCopy(sp98, temp_r31->unk_F0); - temp_r31 = &Hu3DData[lbl_1_bss_199C2[temp_r29+85]]; - MTXTrans(sp68, lbl_1_bss_824[temp_r29].x, lbl_1_bss_824[temp_r29].y+1.0f, lbl_1_bss_824[temp_r29].z); - mtxScaleCat(sp68, 0.5f, 0.5f, 0.5f); - MTXConcat(sp38, sp68, sp98); - MTXCopy(sp98, temp_r31->unk_F0); - } - MTXConcat(sp38, sp8, sp38); - } - HuPrcVSleep(); - } - + Mtx sp98; + Mtx sp68; + Mtx sp38; + Mtx sp8; + ModelData *temp_r31; + s16 temp_r30; + s16 temp_r29; + MTXRotDeg(sp8, 'z', 120); + while (1) { + temp_r31 = &Hu3DData[lbl_1_bss_199C2[9]]; + Hu3DMotionExec(lbl_1_bss_199C2[9], temp_r31->unk_08, temp_r31->unk_64, 0); + Hu3DModelObjMtxGet(lbl_1_bss_199C2[9], "kaitendai-r_dai", sp38); + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { + temp_r31 = &Hu3DData[lbl_1_bss_199C2[temp_r30]]; + MTXTrans(sp68, lbl_1_bss_860[temp_r30].x, lbl_1_bss_860[temp_r30].y, lbl_1_bss_860[temp_r30].z); + MTXConcat(sp68, lbl_1_bss_794[temp_r30], sp68); + MTXConcat(sp38, sp68, sp98); + MTXCopy(sp98, temp_r31->unk_F0); + temp_r31 = &Hu3DData[lbl_1_bss_199C2[temp_r30 + 55]]; + MTXTrans(sp68, 0, 150, 0); + MTXConcat(sp38, sp68, sp98); + MTXCopy(sp98, temp_r31->unk_F0); + temp_r31 = &Hu3DData[lbl_1_bss_199C2[temp_r30 + 58]]; + MTXTrans(sp68, 0, 150, 0); + MTXConcat(sp38, sp68, sp98); + MTXCopy(sp98, temp_r31->unk_F0); + temp_r31 = &Hu3DData[lbl_1_bss_199C2[temp_r30 + 65]]; + MTXTrans(sp68, 0, 150, 0); + MTXConcat(sp38, sp68, sp98); + MTXCopy(sp98, temp_r31->unk_F0); + temp_r31 = &Hu3DData[lbl_1_bss_199C2[temp_r30 + 68]]; + MTXTrans(sp68, 0, 150, lbl_1_bss_788[temp_r30] - 5.0f); + MTXConcat(sp38, sp68, sp98); + MTXCopy(sp98, temp_r31->unk_F0); + for (temp_r29 = 0; temp_r29 < 5; temp_r29++) { + if (temp_r30 != lbl_1_data_2C8[temp_r29]) { + continue; + } + temp_r31 = &Hu3DData[lbl_1_bss_199C2[temp_r29 + 38]]; + MTXTrans(sp68, lbl_1_bss_824[temp_r29].x, lbl_1_bss_824[temp_r29].y, lbl_1_bss_824[temp_r29].z); + mtxScaleCat(sp68, 0.35f, 0.35f, 0.35f); + MTXConcat(sp38, sp68, sp98); + MTXCopy(sp98, temp_r31->unk_F0); + temp_r31 = &Hu3DData[lbl_1_bss_199C2[temp_r29 + 85]]; + MTXTrans(sp68, lbl_1_bss_824[temp_r29].x, lbl_1_bss_824[temp_r29].y + 1.0f, lbl_1_bss_824[temp_r29].z); + mtxScaleCat(sp68, 0.5f, 0.5f, 0.5f); + MTXConcat(sp38, sp68, sp98); + MTXCopy(sp98, temp_r31->unk_F0); + } + MTXConcat(sp38, sp8, sp38); + } + HuPrcVSleep(); + } } void fn_1_C73C(ModelData *model, Mtx matrix) { - s16 temp_r31; - u8 temp_r30; - u8 temp_r29; - u8 temp_r28; - - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGB, GX_S8, 0); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_RASC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetNumTexGens(0); - GXSetNumTevStages(1); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); - GXLoadPosMtxImm(matrix, GX_PNMTX0); - temp_r30 = temp_r29 = temp_r28 = 255; - for(temp_r31=0; temp_r31x*(b)->x)-((a)->x*(c)->x))+(((a)->y*(b)->y)-((a)->y*(c)->y))+(((a)->z*(b)->z)-((a)->z*(c)->z))) +#define VECDistance2XYZ3(a, b, c) \ + ((((a)->x * (b)->x) - ((a)->x * (c)->x)) + (((a)->y * (b)->y) - ((a)->y * (c)->y)) + (((a)->z * (b)->z) - ((a)->z * (c)->z))) Vec *fn_1_CA30(Vec *arg0, Vec *arg1, Vec *arg2) { - float temp_f31; - Vec spC; - VECNormalize(arg2, &spC); - temp_f31 = -VECDistance2XYZ3(&spC, arg1, arg0); - temp_f31 /= VECMag2Point(&spC); - lbl_1_bss_314.x = (arg1->x+(spC.x*temp_f31)); - lbl_1_bss_314.y = (arg1->y+(spC.y*temp_f31)); - lbl_1_bss_314.z = (arg1->z+(spC.z*temp_f31)); - return &lbl_1_bss_314; + float temp_f31; + Vec spC; + VECNormalize(arg2, &spC); + temp_f31 = -VECDistance2XYZ3(&spC, arg1, arg0); + temp_f31 /= VECMag2Point(&spC); + lbl_1_bss_314.x = (arg1->x + (spC.x * temp_f31)); + lbl_1_bss_314.y = (arg1->y + (spC.y * temp_f31)); + lbl_1_bss_314.z = (arg1->z + (spC.z * temp_f31)); + return &lbl_1_bss_314; } float fn_1_CB70(Vec *arg0, Vec *arg1, Vec *arg2) { - Vec *temp_r31 = fn_1_CA30(arg0, arg1, arg2); - temp_r31->x -= arg0->x; - temp_r31->y -= arg0->y; - temp_r31->z -= arg0->z; - return sqrtf(VECMag2Point(temp_r31)); - + Vec *temp_r31 = fn_1_CA30(arg0, arg1, arg2); + temp_r31->x -= arg0->x; + temp_r31->y -= arg0->y; + temp_r31->z -= arg0->z; + return sqrtf(VECMag2Point(temp_r31)); } s32 fn_1_CE08(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) { - float temp_f31; - float temp_f30; - s32 sp8 = 1; - temp_f31 = (arg1->x*(arg2->y-arg0->y))-(arg1->y*(arg2->x-arg0->x)); - if(0.0f != (arg3->x*arg1->y)-(arg3->y*arg1->x)) { - temp_f31 /= (arg3->x*arg1->y)-(arg3->y*arg1->x); - } else { - return 0; - } - if(arg1->x != 0.0) { - temp_f30 = (((temp_f31*arg3->x)+arg2->x)-arg0->x)/arg1->x; - } else if(arg1->y != 0.0) { - temp_f30 = (((temp_f31*arg3->y)+arg2->y)-arg0->y)/arg1->y; - } else { - temp_f30 = (((temp_f31*arg3->z)+arg2->z)-arg0->z)/arg1->z; - } - arg4->x = (temp_f30*arg1->x)+arg0->x; - arg4->y = (temp_f30*arg1->y)+arg0->y; - arg4->z = (temp_f30*arg1->z)+arg0->z; - return 1; + float temp_f31; + float temp_f30; + s32 sp8 = 1; + temp_f31 = (arg1->x * (arg2->y - arg0->y)) - (arg1->y * (arg2->x - arg0->x)); + if (0.0f != (arg3->x * arg1->y) - (arg3->y * arg1->x)) { + temp_f31 /= (arg3->x * arg1->y) - (arg3->y * arg1->x); + } + else { + return 0; + } + if (arg1->x != 0.0) { + temp_f30 = (((temp_f31 * arg3->x) + arg2->x) - arg0->x) / arg1->x; + } + else if (arg1->y != 0.0) { + temp_f30 = (((temp_f31 * arg3->y) + arg2->y) - arg0->y) / arg1->y; + } + else { + temp_f30 = (((temp_f31 * arg3->z) + arg2->z) - arg0->z) / arg1->z; + } + arg4->x = (temp_f30 * arg1->x) + arg0->x; + arg4->y = (temp_f30 * arg1->y) + arg0->y; + arg4->z = (temp_f30 * arg1->z) + arg0->z; + return 1; } s32 fn_1_CF9C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) { - float temp_f31; - float temp_f30; - Vec sp14; - Vec sp8; - sp14.x = arg1->x-arg0->x; - sp14.y = arg1->y-arg0->y; - sp14.z = arg1->z-arg0->z; - sp8.x = arg3->x-arg2->x; - sp8.y = arg3->y-arg2->y; - sp8.z = arg3->z-arg2->z; - temp_f31 = (sp14.x*(arg2->y-arg0->y))-(sp14.y*(arg2->x-arg0->x)); - if(0.0f != (sp8.x*sp14.y)-(sp8.y*sp14.x)) { - temp_f31 /= (sp8.x*sp14.y)-(sp8.y*sp14.x); - } else { - return 0; - } - if(sp14.x != 0.0) { - temp_f30 = (((temp_f31*sp8.x)+arg2->x)-arg0->x)/sp14.x; - } else if(sp14.y != 0.0) { - temp_f30 = (((temp_f31*sp8.y)+arg2->y)-arg0->y)/sp14.y; - } else { - temp_f30 = (((temp_f31*sp8.z)+arg2->z)-arg0->z)/sp14.z; - } - if(temp_f30 < 0.0f || temp_f30 > 1.0f || temp_f31 < 0.0f || temp_f31 > 1.0f) { - return 0; - } - arg4->x = (temp_f30*sp14.x)+arg0->x; - arg4->y = (temp_f30*sp14.y)+arg0->y; - arg4->z = (temp_f30*sp14.z)+arg0->z; - return 1; + float temp_f31; + float temp_f30; + Vec sp14; + Vec sp8; + sp14.x = arg1->x - arg0->x; + sp14.y = arg1->y - arg0->y; + sp14.z = arg1->z - arg0->z; + sp8.x = arg3->x - arg2->x; + sp8.y = arg3->y - arg2->y; + sp8.z = arg3->z - arg2->z; + temp_f31 = (sp14.x * (arg2->y - arg0->y)) - (sp14.y * (arg2->x - arg0->x)); + if (0.0f != (sp8.x * sp14.y) - (sp8.y * sp14.x)) { + temp_f31 /= (sp8.x * sp14.y) - (sp8.y * sp14.x); + } + else { + return 0; + } + if (sp14.x != 0.0) { + temp_f30 = (((temp_f31 * sp8.x) + arg2->x) - arg0->x) / sp14.x; + } + else if (sp14.y != 0.0) { + temp_f30 = (((temp_f31 * sp8.y) + arg2->y) - arg0->y) / sp14.y; + } + else { + temp_f30 = (((temp_f31 * sp8.z) + arg2->z) - arg0->z) / sp14.z; + } + if (temp_f30 < 0.0f || temp_f30 > 1.0f || temp_f31 < 0.0f || temp_f31 > 1.0f) { + return 0; + } + arg4->x = (temp_f30 * sp14.x) + arg0->x; + arg4->y = (temp_f30 * sp14.y) + arg0->y; + arg4->z = (temp_f30 * sp14.z) + arg0->z; + return 1; } void fn_1_D1E0(s16 model) { - Vec sp14[4]; - Vec sp8; - s32 temp_r31; - s32 temp_r30; - HsfData *temp_r29; - HsfBuffer *temp_r28; - HsfFace *temp_r27; - s32 temp_r26; - s32 temp_r25; - s32 temp_r24; - s32 temp_r23; - HsfBuffer *temp_r22; - temp_r29 = Hu3DData[model].hsfData; - lbl_1_bss_77C.x = lbl_1_bss_77C.y = -100000; - lbl_1_bss_770.x = lbl_1_bss_770.y = 100000; - temp_r28 = temp_r29->face; - for(temp_r24=temp_r31=0; temp_r24faceCnt; temp_r24++, temp_r28++) { - temp_r27 = temp_r28->data; - for(temp_r23=0; temp_r23count; temp_r23++, temp_r27++) { - switch(temp_r27->type & 0x7) { - case 0: - case 1: - case 2: - break; - - case 3: - temp_r22 = temp_r29->vertex; - for(temp_r26=temp_r25=0; temp_r26<4; temp_r26++) { - sp8 = ((Vec *)temp_r22->data)[temp_r27->indices[temp_r26][0]]; - for(temp_r30=0; temp_r30 lbl_1_bss_77C.x) { - lbl_1_bss_77C.x = sp14[0].x; - } - if(sp14[0].z > lbl_1_bss_77C.y) { - lbl_1_bss_77C.y = sp14[0].z; - } - if(sp14[0].x < lbl_1_bss_770.x) { - lbl_1_bss_770.x = sp14[0].x; - } - if(sp14[0].z < lbl_1_bss_770.y) { - lbl_1_bss_770.y = sp14[0].z; - } - lbl_1_bss_18F0[temp_r31].x = sp14[1].x; - lbl_1_bss_18F0[temp_r31].y = sp14[1].z; - lbl_1_bss_18F0[temp_r31].z = 0; - - if(sp14[1].x > lbl_1_bss_77C.x) { - lbl_1_bss_77C.x = sp14[1].x; - } - if(sp14[1].z > lbl_1_bss_77C.y) { - lbl_1_bss_77C.y = sp14[1].z; - } - if(sp14[1].x < lbl_1_bss_770.x) { - lbl_1_bss_770.x = sp14[1].x; - } - if(sp14[1].z < lbl_1_bss_770.y) { - lbl_1_bss_770.y = sp14[1].z; - } - temp_r31++; - break; - - case 4: - break; - - default: - break; - } - } - } - lbl_1_bss_1884 = temp_r31; + Vec sp14[4]; + Vec sp8; + s32 temp_r31; + s32 temp_r30; + HsfData *temp_r29; + HsfBuffer *temp_r28; + HsfFace *temp_r27; + s32 temp_r26; + s32 temp_r25; + s32 temp_r24; + s32 temp_r23; + HsfBuffer *temp_r22; + temp_r29 = Hu3DData[model].hsfData; + lbl_1_bss_77C.x = lbl_1_bss_77C.y = -100000; + lbl_1_bss_770.x = lbl_1_bss_770.y = 100000; + temp_r28 = temp_r29->face; + for (temp_r24 = temp_r31 = 0; temp_r24 < temp_r29->faceCnt; temp_r24++, temp_r28++) { + temp_r27 = temp_r28->data; + for (temp_r23 = 0; temp_r23 < temp_r28->count; temp_r23++, temp_r27++) { + switch (temp_r27->type & 0x7) { + case 0: + case 1: + case 2: + break; + + case 3: + temp_r22 = temp_r29->vertex; + for (temp_r26 = temp_r25 = 0; temp_r26 < 4; temp_r26++) { + sp8 = ((Vec *)temp_r22->data)[temp_r27->indices[temp_r26][0]]; + for (temp_r30 = 0; temp_r30 < temp_r25; temp_r30++) { + if (sp8.y != sp14[temp_r30].y) { + break; + } + } + if (temp_r30 == temp_r25) { + sp14[temp_r30].x = sp8.x; + sp14[temp_r30].y = sp8.y; + sp14[temp_r30].z = sp8.z; + temp_r25++; + } + } + lbl_1_bss_D8F0[temp_r31].x = sp14[0].x; + lbl_1_bss_D8F0[temp_r31].y = sp14[0].z; + lbl_1_bss_D8F0[temp_r31].z = 0; + if (sp14[0].x > lbl_1_bss_77C.x) { + lbl_1_bss_77C.x = sp14[0].x; + } + if (sp14[0].z > lbl_1_bss_77C.y) { + lbl_1_bss_77C.y = sp14[0].z; + } + if (sp14[0].x < lbl_1_bss_770.x) { + lbl_1_bss_770.x = sp14[0].x; + } + if (sp14[0].z < lbl_1_bss_770.y) { + lbl_1_bss_770.y = sp14[0].z; + } + lbl_1_bss_18F0[temp_r31].x = sp14[1].x; + lbl_1_bss_18F0[temp_r31].y = sp14[1].z; + lbl_1_bss_18F0[temp_r31].z = 0; + + if (sp14[1].x > lbl_1_bss_77C.x) { + lbl_1_bss_77C.x = sp14[1].x; + } + if (sp14[1].z > lbl_1_bss_77C.y) { + lbl_1_bss_77C.y = sp14[1].z; + } + if (sp14[1].x < lbl_1_bss_770.x) { + lbl_1_bss_770.x = sp14[1].x; + } + if (sp14[1].z < lbl_1_bss_770.y) { + lbl_1_bss_770.y = sp14[1].z; + } + temp_r31++; + break; + + case 4: + break; + + default: + break; + } + } + } + lbl_1_bss_1884 = temp_r31; } diff --git a/src/REL/m445Dll/main.c b/src/REL/m445Dll/main.c index 51193130..2d4a8a0c 100755 --- a/src/REL/m445Dll/main.c +++ b/src/REL/m445Dll/main.c @@ -108,7 +108,7 @@ typedef struct { } UnkM445Struct_03; // Size unknown typedef struct { - /* 0x00 */ UnkM445Struct_03* unk00; + /* 0x00 */ UnkM445Struct_03 *unk00; /* 0x04 */ s32 unk04; /* 0x08 */ s32 unk08; /* 0x0C */ s32 unk0C; @@ -116,35 +116,35 @@ typedef struct { void ObjectSetup(void); void fn_1_4B8(float arg0, float arg1, s32 arg2); -void fn_1_50C(omObjData* arg0); -void fn_1_510(omObjData* arg0); +void fn_1_50C(omObjData *arg0); +void fn_1_510(omObjData *arg0); BOOL fn_1_520(s32 arg0); void fn_1_550(void); float fn_1_1858(float arg0); -UnkM445Struct_01* fn_1_18D8(void); +UnkM445Struct_01 *fn_1_18D8(void); void fn_1_1934(void); void fn_1_1968(void); s32 fn_1_1AD0(s32 arg0); void fn_1_1B0C(void); void fn_1_1C64(void); s8 fn_1_2BF4(s32 arg0, s32 arg1); -void fn_1_2CAC(Vec* arg0, float arg1, float arg2); +void fn_1_2CAC(Vec *arg0, float arg1, float arg2); s8 fn_1_2E68(s32 arg0, s32 arg1); u8 fn_1_2F38(s32 arg0, s32 arg1); u16 fn_1_3010(s32 arg0); u16 fn_1_3094(s32 arg0); -s32 fn_1_3114(UnkM445Struct_02* arg0, float arg1, float arg2, float arg3); -s32 fn_1_3334(UnkM445Struct_02* arg0, s32* arg1); -void fn_1_3548(UnkM445Struct_02* arg0); +s32 fn_1_3114(UnkM445Struct_02 *arg0, float arg1, float arg2, float arg3); +s32 fn_1_3334(UnkM445Struct_02 *arg0, s32 *arg1); +void fn_1_3548(UnkM445Struct_02 *arg0); float fn_1_42A0(float arg0, float arg1, float arg2); -BOOL fn_1_43A4(UnkM445Struct_02* arg0, float arg1, float arg2); -void fn_1_45D0(UnkM445Struct_02* arg0); +BOOL fn_1_43A4(UnkM445Struct_02 *arg0, float arg1, float arg2); +void fn_1_45D0(UnkM445Struct_02 *arg0); void fn_1_557C(void); void fn_1_55F0(void); -void fn_1_5664(UnkM445Struct_02* arg0, s32 arg1); -void fn_1_5700(UnkM445Struct_02* arg0); +void fn_1_5664(UnkM445Struct_02 *arg0, s32 arg1); +void fn_1_5700(UnkM445Struct_02 *arg0); void fn_1_6268(void); -void fn_1_7FC0(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_7FC0(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_8320(void); void fn_1_8938(void); void fn_1_89B8(void); @@ -163,9 +163,9 @@ char lbl_1_bss_6C0_pad[4]; // Unused. UnkM445Struct_02 lbl_1_bss_588[2]; UnkM445Struct_00 lbl_1_bss_288[8]; UnkM445Struct_01 lbl_1_bss_58[10]; -Process* lbl_1_bss_54; +Process *lbl_1_bss_54; char lbl_1_bss_30_pad[0x24]; // Unused. -omObjData* lbl_1_bss_2C; +omObjData *lbl_1_bss_2C; Vec lbl_1_bss_20; Vec lbl_1_bss_14; Vec lbl_1_bss_8; @@ -175,85 +175,33 @@ float lbl_1_bss_0; s32 lbl_1_data_0[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; // Unused. -s32 lbl_1_data_20[] = { - DATADIR_MARIOMOT, - DATADIR_LUIGIMOT, - DATADIR_PEACHMOT, - DATADIR_YOSHIMOT, - DATADIR_WARIOMOT, - DATADIR_DONKEYMOT, - DATADIR_DAISYMOT, - DATADIR_WALUIGIMOT -}; +s32 lbl_1_data_20[] = { DATADIR_MARIOMOT, DATADIR_LUIGIMOT, DATADIR_PEACHMOT, DATADIR_YOSHIMOT, DATADIR_WARIOMOT, DATADIR_DONKEYMOT, DATADIR_DAISYMOT, + DATADIR_WALUIGIMOT }; -s32 lbl_1_data_40[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), - DATA_MAKE_NUM(DATADIR_M445, 0), - DATA_MAKE_NUM(DATADIR_M445, 8), - DATA_MAKE_NUM(DATADIR_M445, 16), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) -}; +s32 lbl_1_data_40[] + = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), DATA_MAKE_NUM(DATADIR_M445, 0), + DATA_MAKE_NUM(DATADIR_M445, 8), DATA_MAKE_NUM(DATADIR_M445, 16), DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) }; -Vec lbl_1_data_60[] = { - { -100.0f, 75.0f, 60.0f }, - { 100.0f, 75.0f, -60.0f } -}; +Vec lbl_1_data_60[] = { { -100.0f, 75.0f, 60.0f }, { 100.0f, 75.0f, -60.0f } }; -Vec lbl_1_data_78[] = { - { 0.0f, 0.0f, -79.5f }, - { 180.0f, 0.0f, -100.5f } -}; +Vec lbl_1_data_78[] = { { 0.0f, 0.0f, -79.5f }, { 180.0f, 0.0f, -100.5f } }; -float lbl_1_data_90[][2] = { - { 471.0f, 280.0f }, - { -461.5f, 299.5f }, - { 271.7f, -482.6f }, - { -373.1f, -457.1f }, - { 462.8f, -128.5f }, - { 0.0f, -495.4f }, - { -40.8f, 632.3f }, - { -477.7f, -110.0f } -}; +float lbl_1_data_90[][2] = { { 471.0f, 280.0f }, { -461.5f, 299.5f }, { 271.7f, -482.6f }, { -373.1f, -457.1f }, { 462.8f, -128.5f }, + { 0.0f, -495.4f }, { -40.8f, 632.3f }, { -477.7f, -110.0f } }; -float lbl_1_data_D0[][2] = { - { 467.0f, 393.0f }, - { -461.5f, 395.5f }, - { 367.7f, -492.1f }, - { -268.9f, -467.0f }, - { 462.8f, -128.5f }, - { 0.0f, -495.4f }, - { -40.8f, 632.3f }, - { -477.7f, -110.0f } -}; +float lbl_1_data_D0[][2] = { { 467.0f, 393.0f }, { -461.5f, 395.5f }, { 367.7f, -492.1f }, { -268.9f, -467.0f }, { 462.8f, -128.5f }, + { 0.0f, -495.4f }, { -40.8f, 632.3f }, { -477.7f, -110.0f } }; -s32 lbl_1_data_110[][2] = { - { 360, 306 }, - { -360, 341 }, - { 326, -360 }, - { -326, -360 }, - { 321, -122 }, - { 0, -332 }, - { -50, 500 }, - { -334, -110 } -}; +s32 lbl_1_data_110[][2] = { { 360, 306 }, { -360, 341 }, { 326, -360 }, { -326, -360 }, { 321, -122 }, { 0, -332 }, { -50, 500 }, { -334, -110 } }; -char* lbl_1_data_220[][2] = { - { "tansu_w_itemhook1" , "tansu_w_itemhook2" }, - { "sidebord_itemhook1" , "sidebord_itemhook2" }, - { "pinkshelf_itemhook1", "pinkshelf_itemhook2" }, - { "green_itemhook1" , "green_itemhook2" }, - { "bookshelf_itemhook" , "bookshelf_itemhook" }, - { "clock_itemhook" , "clock_itemhook" }, - { "book_itemhook" , "book_itemhook" }, - { "tv_itemhook" , "tv_itemhook" } -}; +char *lbl_1_data_220[][2] = { { "tansu_w_itemhook1", "tansu_w_itemhook2" }, { "sidebord_itemhook1", "sidebord_itemhook2" }, + { "pinkshelf_itemhook1", "pinkshelf_itemhook2" }, { "green_itemhook1", "green_itemhook2" }, { "bookshelf_itemhook", "bookshelf_itemhook" }, + { "clock_itemhook", "clock_itemhook" }, { "book_itemhook", "book_itemhook" }, { "tv_itemhook", "tv_itemhook" } }; s32 lbl_1_data_260[] = { 2, 2, 2, 2, 1, 1, 1, 1 }; -void ObjectSetup(void) { +void ObjectSetup(void) +{ lbl_1_bss_54 = omInitObjMan(50, 0x2000); omGameSysInit(lbl_1_bss_54); HuWinInit(1); @@ -291,7 +239,8 @@ void ObjectSetup(void) { WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); } -void fn_1_4B8(float arg0, float arg1, s32 arg2) { +void fn_1_4B8(float arg0, float arg1, s32 arg2) +{ Vec sp14; sp14.x = arg0; @@ -300,29 +249,31 @@ void fn_1_4B8(float arg0, float arg1, s32 arg2) { HuAudFXEmiterPlay(arg2, &sp14); } -void fn_1_50C(omObjData* arg0) { -} +void fn_1_50C(omObjData *arg0) { } -void fn_1_510(omObjData* arg0) { +void fn_1_510(omObjData *arg0) +{ arg0->func = fn_1_50C; } -BOOL fn_1_520(s32 arg0) { +BOOL fn_1_520(s32 arg0) +{ return (GWPlayerCfg[arg0].character == 9); } -void fn_1_550(void) { +void fn_1_550(void) +{ float var_f31; float var_f30; float var_f29; - UnkM445Struct_00* temp_r26; - UnkM445Struct_01* temp_r25; - UnkM445Struct_02* temp_r31; - omObjData* temp_r24; - Process* var_r22; - AnimData* var_r20; - AnimData* sp38[4]; - void* var_r29; + UnkM445Struct_00 *temp_r26; + UnkM445Struct_01 *temp_r25; + UnkM445Struct_02 *temp_r31; + omObjData *temp_r24; + Process *var_r22; + AnimData *var_r20; + AnimData *sp38[4]; + void *var_r29; s16 var_r30; s32 var_r23; s32 var_r21; @@ -346,7 +297,7 @@ void fn_1_550(void) { Hu3DModelShadowMapSet(var_r30); var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 25), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30 = Hu3DModelCreate(var_r29); - Hu3DModelAttrSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); temp_r24 = omAddObjEx(lbl_1_bss_54, 0x100, 1, 0, -1, fn_1_510); MapObject[nMap++] = temp_r24; temp_r24->model[0] = var_r30; @@ -360,13 +311,13 @@ void fn_1_550(void) { Hu3DModelShadowMapSet(var_r30); var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 28), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30 = Hu3DModelCreate(var_r29); - Hu3DModelAttrSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); temp_r24 = omAddObjEx(lbl_1_bss_54, 0x100, 1, 0, -1, fn_1_510); MapObject[nMap++] = temp_r24; temp_r24->model[0] = var_r30; var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 100), MEMORY_DEFAULT_NUM, HEAP_DATA); lbl_1_bss_6E0 = Hu3DModelCreate(var_r29); - Hu3DModelAttrSet(lbl_1_bss_6E0, 1); + Hu3DModelAttrSet(lbl_1_bss_6E0, HU3D_ATTR_DISPOFF); for (i = 0; i < 8; i++) { temp_r26 = &lbl_1_bss_288[i]; temp_r26->unk14 = i; @@ -381,7 +332,7 @@ void fn_1_550(void) { } Hu3DModelShadowSet(var_r30); Hu3DMotionSet(var_r30, temp_r26->unk02[0]); - Hu3DModelAttrSet(var_r30, 0x40000001); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); temp_r26->unk48 = lbl_1_data_110[i][0]; temp_r26->unk4C = lbl_1_data_110[i][1]; temp_r26->unk50[0] = lbl_1_data_90[i][0]; @@ -393,7 +344,7 @@ void fn_1_550(void) { lbl_1_bss_6E2 = Hu3DJointMotion(var_r30, var_r29); Hu3DMotionSet(var_r30, lbl_1_bss_6E2); Hu3DMotionTimeSet(var_r30, 61.0f); - Hu3DModelAttrSet(var_r30, 0x40000002); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_PAUSE); } if (i == 6) { var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 78), MEMORY_DEFAULT_NUM, HEAP_DATA); @@ -408,7 +359,7 @@ void fn_1_550(void) { temp_r26->unk18 = nMap; var_r29 = HuDataSelHeapReadNum(var_r23, MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30 = Hu3DModelCreate(var_r29); - Hu3DModelAttrSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); temp_r24 = MapObject[nMap++] = omAddObjEx(lbl_1_bss_54, 0x100, 1, 0, -1, fn_1_510); temp_r24->model[0] = var_r30; temp_r24->trans.x = temp_r26->unk48; @@ -429,7 +380,7 @@ void fn_1_550(void) { var_r29 = HuDataSelHeapReadNum(j + DATA_MAKE_NUM(DATADIR_M445, 83), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r25->unk08[j] = Hu3DJointMotion(var_r30, var_r29); } - Hu3DModelAttrSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 82), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30 = Hu3DModelCreate(var_r29); temp_r25->unk04 = var_r30; @@ -437,7 +388,7 @@ void fn_1_550(void) { var_r29 = HuDataSelHeapReadNum(j + DATA_MAKE_NUM(DATADIR_M445, 87), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r25->unk08[j + 4] = Hu3DJointMotion(var_r30, var_r29); } - Hu3DModelAttrSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 91), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30 = Hu3DModelCreate(var_r29); temp_r25->unk02 = var_r30; @@ -445,7 +396,7 @@ void fn_1_550(void) { var_r29 = HuDataSelHeapReadNum(j + DATA_MAKE_NUM(DATADIR_M445, 92), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r25->unk08[j + 8] = Hu3DJointMotion(var_r30, var_r29); } - Hu3DModelAttrSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 91), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30 = Hu3DModelCreate(var_r29); temp_r25->unk06 = var_r30; @@ -453,7 +404,7 @@ void fn_1_550(void) { var_r29 = HuDataSelHeapReadNum(j + DATA_MAKE_NUM(DATADIR_M445, 96), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r25->unk08[j + 12] = Hu3DJointMotion(var_r30, var_r29); } - Hu3DModelAttrSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); } for (i = 0; i < 2; i++) { temp_r31 = &lbl_1_bss_588[i]; @@ -462,7 +413,8 @@ void fn_1_550(void) { temp_r31->unk20 = GWPlayerCfg[i].pad_idx; if (fn_1_520(temp_r31->unk18) == FALSE) { temp_r31->unk00 = CharModelCreate(lbl_1_data_0[GWPlayerCfg[i].character], 2); - } else { + } + else { var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 29), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk00 = Hu3DModelCreate(var_r29); } @@ -472,19 +424,22 @@ void fn_1_550(void) { temp_r31->unk48 = temp_r31->unk50 = 0.0f; if (i != 0) { var_f31 = temp_r31->unk4C = fn_1_1858(-90.0f); - } else { + } + else { temp_r31->unk4C = var_f31 = 90.0f; } temp_r31->unk60 = temp_r31->unk4C; if (i != 0) { var_f30 = temp_r31->unk34 = 160.0f; - } else { + } + else { var_f30 = temp_r31->unk34 = -160.0f; } temp_r31->unk38 = 0.0f; if (i != 0) { var_f29 = temp_r31->unk3C = -45.0f; - } else { + } + else { var_f29 = temp_r31->unk3C = 45.0f; } temp_r31->unk54 = 50.0f; @@ -505,7 +460,7 @@ void fn_1_550(void) { temp_r31->unk02 = var_r30; Hu3DMotionSpeedSet(var_r30, 1.4f); Hu3DModelLayerSet(var_r30, 1); - Hu3DModelAttrSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); if (fn_1_520(temp_r31->unk18) == FALSE) { for (j = 0; j < 8; j++) { var_r21 = lbl_1_data_40[j]; @@ -515,7 +470,8 @@ void fn_1_550(void) { temp_r31->unk08[j] = CharModelMotionCreate(lbl_1_data_0[GWPlayerCfg[i].character], var_r21); } CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[i].character], temp_r31->unk08[0]); - } else { + } + else { for (j = 0; j < 7; j++) { var_r29 = HuDataSelHeapReadNum(j + DATA_MAKE_NUM(DATADIR_M445, 30), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk08[j] = Hu3DJointMotion(temp_r31->unk00, var_r29); @@ -524,7 +480,7 @@ void fn_1_550(void) { CharModelEffectNpcInit(temp_r31->unk00, temp_r31->unk08[1], 0, 9); CharModelEffectNpcInit(temp_r31->unk00, temp_r31->unk08[2], 1, 9); } - Hu3DModelAttrSet(temp_r31->unk00, 0x40000001); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_LOOP); if (i == 0) { var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 22), MEMORY_DEFAULT_NUM, HEAP_DATA); sp38[0] = HuSprAnimRead(var_r29); @@ -535,7 +491,8 @@ void fn_1_550(void) { } if (fn_1_520(temp_r31->unk18) == FALSE) { var_r29 = HuDataSelHeapReadNum(GWPlayerCfg[i].character + DATADIR_MGCONST, MEMORY_DEFAULT_NUM, HEAP_DATA); - } else { + } + else { var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M445, 102), MEMORY_DEFAULT_NUM, HEAP_DATA); } sp38[2] = HuSprAnimRead(var_r29); @@ -582,7 +539,8 @@ void fn_1_550(void) { HuPrcChildCreate(fn_1_89B8, 0x1000, 0x1000, 0, HuPrcCurrentGet()); } -float fn_1_1858(float arg0) { +float fn_1_1858(float arg0) +{ while (arg0 >= 360.0f || arg0 < 0.0f) { if (arg0 >= 360.0f) { arg0 -= 360.0f; @@ -594,8 +552,9 @@ float fn_1_1858(float arg0) { return arg0; } -UnkM445Struct_01* fn_1_18D8(void) { - UnkM445Struct_01* var_r30; +UnkM445Struct_01 *fn_1_18D8(void) +{ + UnkM445Struct_01 *var_r30; s32 i; for (i = 0; i < 10; i++) { @@ -610,17 +569,19 @@ UnkM445Struct_01* fn_1_18D8(void) { return var_r30; } -void fn_1_1934(void) { - UnkM445Struct_04* var_r31; +void fn_1_1934(void) +{ + UnkM445Struct_04 *var_r31; var_r31 = HuPrcCurrentGet()->user_data; HuMemDirectFree(var_r31); } -void fn_1_1968(void) { +void fn_1_1968(void) +{ float var_f31; float var_f30; - UnkM445Struct_04* temp_r31; + UnkM445Struct_04 *temp_r31; s32 i; temp_r31 = HuPrcCurrentGet()->user_data; @@ -654,21 +615,25 @@ void fn_1_1968(void) { } } -s32 fn_1_1AD0(s32 arg0) { +s32 fn_1_1AD0(s32 arg0) +{ s32 var_r31; if (arg0 < 20) { var_r31 = 3; - } else if (arg0 < 40) { + } + else if (arg0 < 40) { var_r31 = 4; - } else { + } + else { var_r31 = 5; } return var_r31; } -void fn_1_1B0C(void) { - UnkM445Struct_00* temp_r30; +void fn_1_1B0C(void) +{ + UnkM445Struct_00 *temp_r30; s32 spC; s32 sp8; s32 var_r29; @@ -717,10 +682,11 @@ void fn_1_1B0C(void) { } } -void fn_1_1C64(void) { - UnkM445Struct_00* temp_r31; - UnkM445Struct_01* var_r25; - UnkM445Struct_01* var_r29; +void fn_1_1C64(void) +{ + UnkM445Struct_00 *temp_r31; + UnkM445Struct_01 *var_r25; + UnkM445Struct_01 *var_r29; s32 var_r23; s32 var_r26; @@ -748,19 +714,22 @@ void fn_1_1C64(void) { } if (temp_r31->unk14 == 5 || temp_r31->unk14 == 7) { var_r25->unk28 = var_r25->unk04; - } else { + } + else { var_r25->unk28 = var_r25->unk00; } - } else { + } + else { temp_r31->unk38 = 0; if (temp_r31->unk14 == 5 || temp_r31->unk14 == 7) { var_r25->unk28 = var_r25->unk06; - } else { + } + else { var_r25->unk28 = var_r25->unk02; } temp_r31->unk0C += 8; } - Hu3DModelAttrReset(var_r25->unk28, 1); + Hu3DModelAttrReset(var_r25->unk28, HU3D_ATTR_DISPOFF); Hu3DModelHookSet(temp_r31->unk00, lbl_1_data_220[temp_r31->unk14][0], var_r25->unk28); Hu3DMotionSet(var_r25->unk28, var_r25->unk08[temp_r31->unk0C]); if (lbl_1_data_260[temp_r31->unk14] > 1) { @@ -772,17 +741,20 @@ void fn_1_1C64(void) { lbl_1_bss_6C8++; if (temp_r31->unk14 == 5 || temp_r31->unk14 == 7) { var_r29->unk28 = var_r29->unk04; - } else { + } + else { var_r29->unk28 = var_r29->unk00; } - } else { + } + else { if (temp_r31->unk14 == 5 || temp_r31->unk14 == 7) { var_r29->unk28 = var_r29->unk06; - } else { + } + else { var_r29->unk28 = var_r29->unk02; } } - Hu3DModelAttrReset(var_r29->unk28, 1); + Hu3DModelAttrReset(var_r29->unk28, HU3D_ATTR_DISPOFF); Hu3DModelHookSet(temp_r31->unk00, lbl_1_data_220[temp_r31->unk14][1], var_r29->unk28); Hu3DMotionSet(var_r29->unk28, var_r29->unk08[temp_r31->unk0C]); } @@ -803,7 +775,8 @@ void fn_1_1C64(void) { } if (temp_r31->unk14 == 7 && temp_r31->unk38 == 0) { Hu3DMotionSet(temp_r31->unk00, temp_r31->unk0E); - } else { + } + else { Hu3DMotionSet(temp_r31->unk00, temp_r31->unk02[1]); } Hu3DModelAttrReset(temp_r31->unk00, 0x40000005); @@ -816,20 +789,23 @@ void fn_1_1C64(void) { } if (temp_r31->unk14 == 7 && temp_r31->unk38 == 0) { Hu3DMotionSet(temp_r31->unk00, temp_r31->unk10); - } else if (temp_r31->unk14 == 6 && temp_r31->unk38 == 0) { + } + else if (temp_r31->unk14 == 6 && temp_r31->unk38 == 0) { Hu3DMotionSet(temp_r31->unk00, temp_r31->unk0E); - } else { + } + else { Hu3DMotionSet(temp_r31->unk00, temp_r31->unk02[2]); } var_r23 = 150; Hu3DMotionSet(var_r25->unk28, var_r25->unk08[temp_r31->unk0C + 1]); - Hu3DModelAttrSet(var_r25->unk28, 0x40000002); + Hu3DModelAttrSet(var_r25->unk28, HU3D_MOTATTR_PAUSE); if (temp_r31->unk14 == 6) { HuPrcSleep(12); Hu3DModelAttrReset(var_r25->unk28, 0x40000006); if (temp_r31->unk38 != 0) { fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x758); - } else { + } + else { fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x757); } } @@ -837,7 +813,7 @@ void fn_1_1C64(void) { HuPrcSleep(11); Hu3DModelAttrReset(var_r25->unk28, 0x40000006); fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x754); - Hu3DModelAttrReset(lbl_1_bss_6E0, 1); + Hu3DModelAttrReset(lbl_1_bss_6E0, HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(lbl_1_bss_6E0, 0.0f); } while (!Hu3DMotionEndCheck(temp_r31->unk00)) { @@ -847,7 +823,8 @@ void fn_1_1C64(void) { if (temp_r31->unk14 != 6) { if (temp_r31->unk38 != 0) { fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x758); - } else { + } + else { fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x757); } Hu3DModelAttrReset(var_r25->unk28, 0x40000006); @@ -861,11 +838,11 @@ void fn_1_1C64(void) { } var_r25->unk34 = 1; Hu3DMotionSet(var_r25->unk28, var_r25->unk08[temp_r31->unk0C + 2]); - Hu3DModelAttrSet(var_r25->unk28, 0x40000001); + Hu3DModelAttrSet(var_r25->unk28, HU3D_MOTATTR_LOOP); if (lbl_1_data_260[temp_r31->unk14] > 1) { var_r29->unk34 = 1; Hu3DMotionSet(var_r29->unk28, var_r29->unk08[temp_r31->unk0C + 2]); - Hu3DModelAttrSet(var_r29->unk28, 0x40000001); + Hu3DModelAttrSet(var_r29->unk28, HU3D_MOTATTR_LOOP); } temp_r31->unk1C = 2; var_r26 = var_r23; @@ -877,13 +854,16 @@ void fn_1_1C64(void) { if (temp_r31->unk38 != 0) { if (temp_r31->unk28 != 0) { fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x75C); - } else { + } + else { fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x75A); } - } else { + } + else { if (temp_r31->unk28 != 0) { fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x75B); - } else { + } + else { fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x759); } } @@ -895,13 +875,16 @@ void fn_1_1C64(void) { if (temp_r31->unk38 != 0) { if (temp_r31->unk2C != 0) { fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x75C); - } else { + } + else { fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x75A); } - } else { + } + else { if (temp_r31->unk2C != 0) { fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x75B); - } else { + } + else { fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x759); } } @@ -916,7 +899,8 @@ void fn_1_1C64(void) { if (Hu3DMotionEndCheck(var_r25->unk28) && Hu3DMotionEndCheck(var_r29->unk28)) { break; } - } else { + } + else { if (var_r26 <= 0) { break; } @@ -949,7 +933,8 @@ void fn_1_1C64(void) { while (!Hu3DMotionEndCheck(var_r25->unk28) || !Hu3DMotionEndCheck(var_r29->unk28)) { HuPrcVSleep(); } - } else { + } + else { while (!Hu3DMotionEndCheck(var_r25->unk28)) { HuPrcVSleep(); } @@ -972,34 +957,37 @@ void fn_1_1C64(void) { HuPrcVSleep(); } var_r25->unk30 = -1; - Hu3DModelAttrSet(var_r25->unk28, 1); + Hu3DModelAttrSet(var_r25->unk28, HU3D_ATTR_DISPOFF); if (lbl_1_data_260[temp_r31->unk14] > 1) { var_r29->unk30 = -1; - Hu3DModelAttrSet(var_r29->unk28, 1); + Hu3DModelAttrSet(var_r29->unk28, HU3D_ATTR_DISPOFF); } Hu3DModelHookReset(temp_r31->unk00); Hu3DMotionSet(temp_r31->unk00, temp_r31->unk02[0]); - Hu3DModelAttrSet(temp_r31->unk00, 0x40000001); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_LOOP); temp_r31->unk34 = 0; HuPrcVSleep(); } } // identical to m411Dll/main.c::fn_1_5D58 -s8 fn_1_2BF4(s32 arg0, s32 arg1) { - UnkM445Struct_02* temp_r31; +s8 fn_1_2BF4(s32 arg0, s32 arg1) +{ + UnkM445Struct_02 *temp_r31; s8 var_r30; temp_r31 = &lbl_1_bss_588[arg0]; if (!GWPlayerCfg[arg0].iscom) { (arg1 != 0) ? (var_r30 = HuPadStkY[temp_r31->unk20]) : (var_r30 = HuPadStkX[temp_r31->unk20]); - } else { + } + else { (arg1 != 0) ? (var_r30 = temp_r31->unk7D) : (var_r30 = temp_r31->unk7C); } return var_r30; } -void fn_1_2CAC(Vec* arg0, float arg1, float arg2) { +void fn_1_2CAC(Vec *arg0, float arg1, float arg2) +{ float temp_f29; temp_f29 = sqrtf(arg0->x * arg0->x + arg0->z * arg0->z); @@ -1010,22 +998,25 @@ void fn_1_2CAC(Vec* arg0, float arg1, float arg2) { // similar to m414Dll/main.c::fn_1_5554 // TODO: update other files (m414 and m411). -s8 fn_1_2E68(s32 arg0, s32 arg1) { - UnkM445Struct_02* temp_r31; +s8 fn_1_2E68(s32 arg0, s32 arg1) +{ + UnkM445Struct_02 *temp_r31; s8 var_r30; temp_r31 = &lbl_1_bss_588[arg0]; var_r30 = 0; if (!GWPlayerCfg[arg0].iscom && lbl_1_bss_6DC < 4) { (arg1 != 0) ? (var_r30 = HuPadStkY[temp_r31->unk20]) : (var_r30 = HuPadStkX[temp_r31->unk20]); - } else { + } + else { (arg1 != 0) ? (var_r30 = temp_r31->unk7D) : (var_r30 = temp_r31->unk7C); } return var_r30; } -u8 fn_1_2F38(s32 arg0, s32 arg1) { - UnkM445Struct_02* temp_r31; +u8 fn_1_2F38(s32 arg0, s32 arg1) +{ + UnkM445Struct_02 *temp_r31; s8 var_r30; temp_r31 = &lbl_1_bss_588[arg0]; @@ -1033,15 +1024,17 @@ u8 fn_1_2F38(s32 arg0, s32 arg1) { if (lbl_1_bss_6DC < 4) { if (!GWPlayerCfg[arg0].iscom) { (arg1 != 0) ? (var_r30 = HuPadTrigR[temp_r31->unk20]) : (var_r30 = HuPadTrigL[temp_r31->unk20]); - } else { + } + else { (arg1 != 0) ? (var_r30 = temp_r31->unk7E) : (var_r30 = temp_r31->unk7F); } } return var_r30; } -u16 fn_1_3010(s32 arg0) { - UnkM445Struct_02* temp_r31; +u16 fn_1_3010(s32 arg0) +{ + UnkM445Struct_02 *temp_r31; u16 var_r30; temp_r31 = &lbl_1_bss_588[arg0]; @@ -1049,36 +1042,40 @@ u16 fn_1_3010(s32 arg0) { if (lbl_1_bss_6DC < 4) { if (!GWPlayerCfg[arg0].iscom) { var_r30 = HuPadBtnDown[temp_r31->unk20]; - } else { + } + else { var_r30 = temp_r31->unk82; } } return var_r30; } -u16 fn_1_3094(s32 arg0) { - UnkM445Struct_02* temp_r31; +u16 fn_1_3094(s32 arg0) +{ + UnkM445Struct_02 *temp_r31; u16 var_r30; temp_r31 = &lbl_1_bss_588[arg0]; if (lbl_1_bss_6DC < 4) { if (!GWPlayerCfg[arg0].iscom) { var_r30 = HuPadBtn[temp_r31->unk20]; - } else { + } + else { var_r30 = temp_r31->unk80; } } return var_r30; } -s32 fn_1_3114(UnkM445Struct_02* arg0, float arg1, float arg2, float arg3) { +s32 fn_1_3114(UnkM445Struct_02 *arg0, float arg1, float arg2, float arg3) +{ Vec sp30; Vec sp24; Vec sp18; s32 var_r28; float var_f27; float var_f28; - UnkM445Struct_02* temp_r31; + UnkM445Struct_02 *temp_r31; s32 i; var_r28 = -1; @@ -1098,13 +1095,14 @@ s32 fn_1_3114(UnkM445Struct_02* arg0, float arg1, float arg2, float arg3) { return var_r28; } -s32 fn_1_3334(UnkM445Struct_02* arg0, s32* arg1) { +s32 fn_1_3334(UnkM445Struct_02 *arg0, s32 *arg1) +{ Vec sp30; Vec sp24; Vec sp18; float var_f27; float var_f28; - UnkM445Struct_02* temp_r31; + UnkM445Struct_02 *temp_r31; s32 var_r27; s32 var_r28; s32 i; @@ -1130,7 +1128,8 @@ s32 fn_1_3334(UnkM445Struct_02* arg0, s32* arg1) { return var_r27; } -void fn_1_3548(UnkM445Struct_02* arg0) { +void fn_1_3548(UnkM445Struct_02 *arg0) +{ Vec spA8; Vec sp9C; Vec sp90; @@ -1148,8 +1147,8 @@ void fn_1_3548(UnkM445Struct_02* arg0) { float var_f27; float var_f26; float var_f25; - UnkM445Struct_02* var_r30; - UnkM445Struct_02* temp_r27; + UnkM445Struct_02 *var_r30; + UnkM445Struct_02 *temp_r27; s32 i; temp_r24 = fn_1_3334(arg0, &sp68); @@ -1193,7 +1192,8 @@ void fn_1_3548(UnkM445Struct_02* arg0) { sp60 = var_f20 - var_f25; if (sp60 > 0.0f) { sp5C = -0.5f; - } else { + } + else { sp5C = 0.5f; } if (ABS_INV(var_f20 - var_f25) > 180.0f) { @@ -1241,7 +1241,8 @@ block_end: arg0->unk3C = sp54; } -float fn_1_42A0(float arg0, float arg1, float arg2) { +float fn_1_42A0(float arg0, float arg1, float arg2) +{ float var_f31; float var_f30; @@ -1259,7 +1260,8 @@ float fn_1_42A0(float arg0, float arg1, float arg2) { return var_f30; } -BOOL fn_1_43A4(UnkM445Struct_02* arg0, float arg1, float arg2) { +BOOL fn_1_43A4(UnkM445Struct_02 *arg0, float arg1, float arg2) +{ Vec sp2C; Vec sp20; Vec sp14; @@ -1275,7 +1277,8 @@ BOOL fn_1_43A4(UnkM445Struct_02* arg0, float arg1, float arg2) { return var_r30; } -void fn_1_45D0(UnkM445Struct_02* arg0) { +void fn_1_45D0(UnkM445Struct_02 *arg0) +{ Vec spC8; Vec spBC; Vec spB0; @@ -1285,8 +1288,8 @@ void fn_1_45D0(UnkM445Struct_02* arg0) { float sp58; float sp54; float var_f24; - UnkM445Struct_00* temp_r30; - UnkM445Struct_02* var_r28; + UnkM445Struct_00 *temp_r30; + UnkM445Struct_02 *var_r28; u32 var_r27; s32 i; @@ -1295,7 +1298,8 @@ void fn_1_45D0(UnkM445Struct_02* arg0) { arg0->unk80 = arg0->unk82 = 0; if (arg0->unk18 != 0) { var_r28 = &lbl_1_bss_588[0]; - } else { + } + else { var_r28 = &lbl_1_bss_588[1]; } switch (GWPlayerCfg[arg0->unk18].diff) { @@ -1330,7 +1334,8 @@ void fn_1_45D0(UnkM445Struct_02* arg0) { sp60 = sqrtf(arg0->unk34 * arg0->unk34 + arg0->unk3C * arg0->unk3C); if (sp60 < 200.0f) { sp60 = 400.0f; - } else { + } + else { sp60 = 600.0f; } if (sp5C > var_f24 && var_f24 < sp60) { @@ -1370,7 +1375,8 @@ void fn_1_45D0(UnkM445Struct_02* arg0) { sp64 = atan2d(arg0->unk84 - arg0->unk34, arg0->unk88 - arg0->unk3C); arg0->unk7C = 50.0 * sind(sp64) * sp54; arg0->unk7D = -50.0 * cosd(sp64) * sp54; - } else { + } + else { if (temp_r30->unk1C == 2) { for (i = 0; i < lbl_1_data_260[temp_r30->unk14]; i++) { if (temp_r30->unk20[i] == 0) { @@ -1396,7 +1402,8 @@ void fn_1_45D0(UnkM445Struct_02* arg0) { } } -void fn_1_557C(void) { +void fn_1_557C(void) +{ s32 j; s32 i; @@ -1407,7 +1414,8 @@ void fn_1_557C(void) { } } -void fn_1_55F0(void) { +void fn_1_55F0(void) +{ s32 j; s32 i; @@ -1418,13 +1426,15 @@ void fn_1_55F0(void) { } } -void fn_1_5664(UnkM445Struct_02* arg0, s32 arg1) { +void fn_1_5664(UnkM445Struct_02 *arg0, s32 arg1) +{ HuSprBankSet(arg0->unk04, 3, arg1 % 10); HuSprBankSet(arg0->unk04, 4, arg1 / 10); HuSprAttrReset(arg0->unk04, 4, 4); } -void fn_1_5700(UnkM445Struct_02* arg0) { +void fn_1_5700(UnkM445Struct_02 *arg0) +{ Vec sp38; Vec sp2C; Vec sp20; @@ -1432,7 +1442,7 @@ void fn_1_5700(UnkM445Struct_02* arg0) { float var_f26; float var_f21; float var_f20; - UnkM445Struct_02* var_r27; + UnkM445Struct_02 *var_r27; s32 i; s32 var_r28; @@ -1442,7 +1452,7 @@ void fn_1_5700(UnkM445Struct_02* arg0) { Hu3DModelScaleSet(arg0->unk06, var_f21, var_f21, var_f21); HuPrcVSleep(); } - Hu3DModelAttrSet(arg0->unk06, 1); + Hu3DModelAttrSet(arg0->unk06, HU3D_ATTR_DISPOFF); arg0->unk06 = -1; Hu3DMotionOverlayReset(arg0->unk00); if (lbl_1_bss_588[0].unk06 == -1 && lbl_1_bss_588[1].unk06 == -1) { @@ -1460,30 +1470,37 @@ void fn_1_5700(UnkM445Struct_02* arg0) { arg0->unk84 = -230.0f; arg0->unk88 = 45.0f; var_r28 = 1; - } else if (arg0->unk3C > 203.0f || arg0->unk3C < -203.0f) { + } + else if (arg0->unk3C > 203.0f || arg0->unk3C < -203.0f) { arg0->unk84 = -170.0f; arg0->unk88 = arg0->unk3C; - } else { + } + else { arg0->unk84 = arg0->unk34; if (arg0->unk3C > 0.0f) { arg0->unk88 = 210.0f; - } else { + } + else { arg0->unk88 = -210.0f; } } - } else { + } + else { if (arg0->unk34 >= 152.0f) { arg0->unk84 = 230.0f; arg0->unk88 = -45.0f; var_r28 = 1; - } else if (arg0->unk3C > 203.0f || arg0->unk3C < -203.0f) { + } + else if (arg0->unk3C > 203.0f || arg0->unk3C < -203.0f) { arg0->unk84 = 170.0f; arg0->unk88 = arg0->unk3C; - } else { + } + else { arg0->unk84 = arg0->unk34; if (arg0->unk3C > 0.0f) { arg0->unk88 = 210.0f; - } else { + } + else { arg0->unk88 = -210.0f; } } @@ -1505,7 +1522,8 @@ void fn_1_5700(UnkM445Struct_02* arg0) { arg0->unk84 = arg0->unk34 + 100.0 * sind(temp_f27); arg0->unk88 = arg0->unk3C + 100.0 * cosd(temp_f27); } - } else { + } + else { if (var_f26 < var_f20) { temp_f27 += 180.0f; lbl_1_bss_4 = arg0->unk18; @@ -1514,7 +1532,8 @@ void fn_1_5700(UnkM445Struct_02* arg0) { arg0->unk88 = arg0->unk3C + 100.0 * cosd(temp_f27); } } - } else if (arg0->unk18 == lbl_1_bss_4) { + } + else if (arg0->unk18 == lbl_1_bss_4) { OSReport("pno %d dir %f\n", arg0->unk18, lbl_1_bss_0); arg0->unk84 = arg0->unk34 + 100.0 * sind(lbl_1_bss_0); arg0->unk88 = arg0->unk3C + 100.0 * cosd(lbl_1_bss_0); @@ -1532,13 +1551,14 @@ void fn_1_5700(UnkM445Struct_02* arg0) { arg0->unk7D = -50.0 * cosd(temp_f27); } -void fn_1_6268(void) { +void fn_1_6268(void) +{ Vec sp1D8; s32 sp120; float sp11C; float var_f19; - UnkM445Struct_02* temp_r31; - UnkM445Struct_00* temp_r30; + UnkM445Struct_02 *temp_r31; + UnkM445Struct_00 *temp_r30; u32 var_r24; s32 var_r26; s32 var_r28; @@ -1574,7 +1594,8 @@ void fn_1_6268(void) { if (fn_1_520(temp_r31->unk18) == FALSE) { Hu3DMotionOverlayReset(temp_r31->unk00); CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[5]); - } else { + } + else { Hu3DMotionSet(temp_r31->unk00, temp_r31->unk08[4]); Hu3DMotionSpeedSet(temp_r31->unk00, 1.0f); } @@ -1582,7 +1603,8 @@ void fn_1_6268(void) { HuPrcSleep(15); if (temp_r31->unk18 != 0) { fn_1_4B8(temp_r31->unk34, temp_r31->unk3C, 0x75F); - } else { + } + else { fn_1_4B8(temp_r31->unk34, temp_r31->unk3C, 0x75E); } HuPrcSleep(15); @@ -1597,33 +1619,38 @@ void fn_1_6268(void) { temp_r30->unk28 = temp_r31->unk18; if (temp_r31->unk18 != 0) { fn_1_4B8(temp_r30->unk48, temp_r30->unk4C, 0x75D); - } else { + } + else { fn_1_4B8(temp_r30->unk48, temp_r30->unk4C, 0x750); } - Hu3DModelAttrReset(temp_r31->unk02, 1); + Hu3DModelAttrReset(temp_r31->unk02, HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(temp_r31->unk02, 0.0f); Hu3DModelPosSet(temp_r31->unk02, sp1D8.x, 160.0f, sp1D8.z + 100.0f); if (temp_r30->unk38 != 0) { temp_r31->unk30 += 2; - } else { + } + else { temp_r31->unk30++; } fn_1_5664(temp_r31, temp_r31->unk30); } - if (lbl_1_data_260[temp_r30->unk14] > 1 && fn_1_43A4(temp_r31, temp_r30->unk50[1], temp_r30->unk58[1]) && temp_r30->unk20[1] == 0) { + if (lbl_1_data_260[temp_r30->unk14] > 1 && fn_1_43A4(temp_r31, temp_r30->unk50[1], temp_r30->unk58[1]) + && temp_r30->unk20[1] == 0) { temp_r30->unk20[1] = 1; temp_r30->unk2C = temp_r31->unk18; if (temp_r31->unk18 != 0) { fn_1_4B8(temp_r30->unk48, temp_r30->unk4C, 0x75D); - } else { + } + else { fn_1_4B8(temp_r30->unk48, temp_r30->unk4C, 0x750); } - Hu3DModelAttrReset(temp_r31->unk02, 1); + Hu3DModelAttrReset(temp_r31->unk02, HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(temp_r31->unk02, 0.0f); Hu3DModelPosSet(temp_r31->unk02, sp1D8.x, 160.0f, sp1D8.z + 100.0f); if (temp_r30->unk38 != 0) { temp_r31->unk30 += 2; - } else { + } + else { temp_r31->unk30++; } fn_1_5664(temp_r31, temp_r31->unk30); @@ -1641,11 +1668,13 @@ void fn_1_6268(void) { Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); } - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 1.0f); } - } else { + } + else { HuSetVecF(&sp1D8, fn_1_2E68(temp_r31->unk18, 0) / 4.0f, 0.0, -fn_1_2E68(temp_r31->unk18, 1) / 4.0f); temp_r31->unk5C = sqrtf(sp1D8.x * sp1D8.x + sp1D8.y * sp1D8.y + sp1D8.z * sp1D8.z); if (temp_r31->unk5C >= 0.5f) { @@ -1661,30 +1690,36 @@ void fn_1_6268(void) { if (temp_r31->unk24 != 2) { temp_r31->unk24 = 2; if (fn_1_520(temp_r31->unk18) == FALSE) { - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + CharModelMotionShiftSet( + lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); if (lbl_1_bss_6DC < 5) { Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); } - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); } } - } else if (temp_r31->unk24 != 1) { + } + else if (temp_r31->unk24 != 1) { temp_r31->unk24 = 1; if (fn_1_520(temp_r31->unk18) == FALSE) { - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + CharModelMotionShiftSet( + lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); if (lbl_1_bss_6DC < 5) { Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); } - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); } } - } else if (temp_r31->unk24 != 0) { + } + else if (temp_r31->unk24 != 0) { temp_r31->unk24 = 0; if (fn_1_520(temp_r31->unk18) == FALSE) { CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[0], 0.0f, 0.0f, HU3D_MOTATTR_LOOP); @@ -1692,7 +1727,8 @@ void fn_1_6268(void) { Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); } - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[0], 0.0f, 0.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 1.0f); } @@ -1719,7 +1755,8 @@ block_exit_loop: lbl_1_bss_6DC = 6; if (fn_1_520(temp_r31->unk18) == FALSE) { CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[0], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[0], 0.0f, 0.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 1.0f); } @@ -1752,13 +1789,16 @@ block_exit_loop: if (fn_1_520(1) == FALSE) { if (var_r26 != -1) { HuAudSStreamPlay(1); - } else { + } + else { HuAudSStreamPlay(4); } - } else { + } + else { if (var_r26 == 0) { HuAudSStreamPlay(1); - } else { + } + else { HuAudSStreamPlay(3); } } @@ -1766,24 +1806,29 @@ block_exit_loop: if (var_r26 == -1) { if (fn_1_520(temp_r31->unk18) == FALSE) { var_r28 = 7; - } else { + } + else { var_r28 = 6; } - } else { + } + else { GWPlayerCoinWinSet(var_r26, 10); if (var_r26 == temp_r31->unk18) { var_r28 = 6; - } else { + } + else { var_r28 = 7; } } if (fn_1_520(temp_r31->unk18) == FALSE) { CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[var_r28], 0.0f, 8.0f, var_r24); - } else { + } + else { if (var_r28 == 6) { var_r28 = 5; var_r24 = HU3D_MOTATTR_LOOP; - } else { + } + else { var_r28 = 6; var_r24 = HU3D_MOTATTR_NONE; } @@ -1801,9 +1846,10 @@ block_exit_loop: } } -void fn_1_7FC0(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; - UnkM445Struct_02* temp_r29; +void fn_1_7FC0(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + UnkM445Struct_02 *temp_r29; float var_f31; s16 var_r27; s16 var_r28; @@ -1861,11 +1907,12 @@ void fn_1_7FC0(ModelData* model, ParticleData* particle, Mtx matrix) { } } -void fn_1_8320(void) { +void fn_1_8320(void) +{ float sp20[2]; GXColor sp1C; - WindowData* var_r26; - UnkM445Struct_02* temp_r31; + WindowData *var_r26; + UnkM445Struct_02 *temp_r31; s16 temp_r25; s16 var_r29; u32 var_r27; @@ -1882,7 +1929,7 @@ void fn_1_8320(void) { } HuAudFXPlay(0x756); Hu3DMotionSet(temp_r28, lbl_1_bss_288[5].unk02[0]); - Hu3DModelAttrSet(temp_r28, 0x40000001); + Hu3DModelAttrSet(temp_r28, HU3D_MOTATTR_LOOP); HuPrcSleep(30); for (i = 30; i != 0; i--) { CRotM[0].x += -0.55f; @@ -1892,9 +1939,8 @@ void fn_1_8320(void) { } if (fn_1_520(1) == TRUE) { temp_r25 = HuAudSeqPlay(0x3D); - HuWinMesMaxSizeGet(8, sp20, - MAKE_MESSID(41, 1), MAKE_MESSID(41, 2), MAKE_MESSID(41, 3), MAKE_MESSID(41, 4), - MAKE_MESSID(41, 5), MAKE_MESSID(41, 6), MAKE_MESSID(41, 7), MAKE_MESSID(41, 8)); + HuWinMesMaxSizeGet(8, sp20, MAKE_MESSID(41, 1), MAKE_MESSID(41, 2), MAKE_MESSID(41, 3), MAKE_MESSID(41, 4), MAKE_MESSID(41, 5), + MAKE_MESSID(41, 6), MAKE_MESSID(41, 7), MAKE_MESSID(41, 8)); var_r29 = HuWinCreate(-10000.0f, 40.0f, sp20[0], sp20[1], 1); HuWinPriSet(var_r29, 0x100); sp1C.r = sp1C.g = sp1C.b = 0xFF; @@ -1914,7 +1960,8 @@ void fn_1_8320(void) { if (var_r24 == 0) { i = 5; var_r27 = MAKE_MESSID(41, 3); - } else { + } + else { i = 1; var_r27 = MAKE_MESSID(41, 8); } @@ -1931,7 +1978,8 @@ void fn_1_8320(void) { temp_r31 = &lbl_1_bss_588[i]; if (fn_1_520(temp_r31->unk18) == FALSE) { CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[i].character], temp_r31->unk08[3]); - } else { + } + else { Hu3DMotionSet(temp_r31->unk00, temp_r31->unk08[3]); } Hu3DModelAttrReset(temp_r31->unk00, 0x40000001); @@ -1943,7 +1991,8 @@ void fn_1_8320(void) { Hu3DModelRotSet(temp_r31->unk06, 0.0f, 0.0f, 0.0f); if (fn_1_520(temp_r31->unk18) == FALSE) { Hu3DModelHookSet(temp_r31->unk00, CharModelHookNameGet(GWPlayerCfg[i].character, 2, 0), temp_r31->unk06); - } else { + } + else { Hu3DModelHookSet(temp_r31->unk00, "itemhook_r", temp_r31->unk06); } } @@ -1953,13 +2002,15 @@ void fn_1_8320(void) { if (fn_1_520(temp_r31->unk18) == FALSE) { CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk08[0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } } } -void fn_1_8938(void) { +void fn_1_8938(void) +{ s32 i; while (lbl_1_bss_6DC < 6) { @@ -1971,7 +2022,8 @@ void fn_1_8938(void) { } } -void fn_1_89B8(void) { +void fn_1_89B8(void) +{ while (TRUE) { if (omSysExitReq == 1) { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); @@ -1987,7 +2039,8 @@ void fn_1_89B8(void) { } } -void fn_1_8A18(void) { +void fn_1_8A18(void) +{ s16 temp_r28; s16 var_r31; s16 temp_r26; diff --git a/src/REL/m446Dll/card.c b/src/REL/m446Dll/card.c index 724bb2eb..769ad6a2 100644 --- a/src/REL/m446Dll/card.c +++ b/src/REL/m446Dll/card.c @@ -4,15 +4,16 @@ #include "math.h" // data -m446Func4 lbl_1_data_150[3] = {NULL, fn_1_2AA8, fn_1_2DA8}; -static const s32 lbl_1_rodata_58[5] = {0x4D0001, 0x4D0002, 0x4D0003, 0x4D0004, 0x4D0000}; -static const s32 lbl_1_rodata_6C[5] = {0x4D001B, 0x4D001C, 0x4D001D, 0x4D001E, 0x4D001E}; +m446Func4 lbl_1_data_150[3] = { NULL, fn_1_2AA8, fn_1_2DA8 }; +static const s32 lbl_1_rodata_58[5] = { 0x4D0001, 0x4D0002, 0x4D0003, 0x4D0004, 0x4D0000 }; +static const s32 lbl_1_rodata_6C[5] = { 0x4D001B, 0x4D001C, 0x4D001D, 0x4D001E, 0x4D001E }; // bss -unkStruct3* lbl_1_bss_18; +unkStruct3 *lbl_1_bss_18; -unkStruct2* fn_1_1C64(s32 arg0) { - unkStruct2* temp_r3; +unkStruct2 *fn_1_1C64(s32 arg0) +{ + unkStruct2 *temp_r3; temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, MEMORY_DEFAULT_NUM); if (!temp_r3) { @@ -28,52 +29,62 @@ unkStruct2* fn_1_1C64(s32 arg0) { return temp_r3; } -void fn_1_1CF8(unkStruct2* arg0) { +void fn_1_1CF8(unkStruct2 *arg0) +{ HuMemDirectFree(arg0->unk0); HuMemDirectFree(arg0); } -s32 fn_1_1D30(unkStruct2* arg0, void* arg1) { +s32 fn_1_1D30(unkStruct2 *arg0, void *arg1) +{ if (arg0->unk4 <= arg0->unk8) { return 0; - } else { + } + else { arg0->unk0[arg0->unk8] = arg1; arg0->unk8++; return 1; } } -s32 fn_1_1D6C(unkStruct2* arg0, unkStruct4** arg1) { +s32 fn_1_1D6C(unkStruct2 *arg0, unkStruct4 **arg1) +{ if (arg0->unk8 <= 0) { return 0; - } else { + } + else { arg0->unk8--; *arg1 = arg0->unk0[arg0->unk8]; return 1; } } -s32 fn_1_1DA8(unkStruct2* arg0, void** arg1) { +s32 fn_1_1DA8(unkStruct2 *arg0, void **arg1) +{ if (arg0->unk8 <= 0) { return 0; - } else { + } + else { *arg1 = *(&arg0->unk0[arg0->unk8] - 1); return 1; } } -BOOL fn_1_1DDC(unkStruct2* arg0) { +BOOL fn_1_1DDC(unkStruct2 *arg0) +{ return arg0->unk8 == 0; } -s32 fn_1_1DEC(unkStruct2* arg0) { +s32 fn_1_1DEC(unkStruct2 *arg0) +{ return arg0->unk8; } #pragma dont_inline on -unkStruct3* fn_1_1DF4(void* arg0) { - unkStruct3* temp_r3; +unkStruct3 *fn_1_1DF4(void *arg0) +{ + unkStruct3 *temp_r3; temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC, MEMORY_DEFAULT_NUM); if (!temp_r3) { @@ -85,17 +96,20 @@ unkStruct3* fn_1_1DF4(void* arg0) { return temp_r3; } -void fn_1_1E5C(unkStruct3* arg0) { +void fn_1_1E5C(unkStruct3 *arg0) +{ HuMemDirectFree(arg0); } -void fn_1_1E84(unkStruct3** arg0) { +void fn_1_1E84(unkStruct3 **arg0) +{ unkStruct3 *temp = *arg0; HuMemDirectFree(temp); *arg0 = NULL; } -void fn_1_1EC8(unkStruct3* arg0, unkStruct3* arg1) { +void fn_1_1EC8(unkStruct3 *arg0, unkStruct3 *arg1) +{ if (arg0) { arg1->unk8 = arg0->unk8; arg1->unk4 = arg0; @@ -103,13 +117,15 @@ void fn_1_1EC8(unkStruct3* arg0, unkStruct3* arg1) { if (arg1->unk8) { arg1->unk8->unk4 = arg1; } - } else { + } + else { arg1->unk4 = arg1; arg1->unk8 = arg1; } } -void fn_1_1F04(unkStruct3* arg0) { +void fn_1_1F04(unkStruct3 *arg0) +{ if (arg0->unk8) { arg0->unk8->unk4 = arg0->unk4; } @@ -120,9 +136,10 @@ void fn_1_1F04(unkStruct3* arg0) { #pragma dont_inline reset -void fn_1_1F38(u8* arg0, u8* arg1, s32 arg2) { - u8* var_r30 = arg0; - u8* var_r31 = arg1; +void fn_1_1F38(u8 *arg0, u8 *arg1, s32 arg2) +{ + u8 *var_r30 = arg0; + u8 *var_r31 = arg1; if (arg2 <= 0) { return; } @@ -132,8 +149,9 @@ void fn_1_1F38(u8* arg0, u8* arg1, s32 arg2) { } } -void fn_1_1F84(u8* arg0, s8 arg1, s32 arg2) { - u8* var_r30 = arg0; +void fn_1_1F84(u8 *arg0, s8 arg1, s32 arg2) +{ + u8 *var_r30 = arg0; if (arg2 <= 0) { return; } @@ -143,8 +161,9 @@ void fn_1_1F84(u8* arg0, s8 arg1, s32 arg2) { } } -void fn_1_1FC0(u8* arg0, s32 arg1) { - u8* var_r30 = arg0; +void fn_1_1FC0(u8 *arg0, s32 arg1) +{ + u8 *var_r30 = arg0; if (arg1 <= 0) { return; } @@ -154,10 +173,11 @@ void fn_1_1FC0(u8* arg0, s32 arg1) { } } -s32 fn_1_1FFC(s8* arg0, s8* arg1, s32 arg2) { - s8* var_r30 = arg0; - s8* var_r31 = arg1; - +s32 fn_1_1FFC(s8 *arg0, s8 *arg1, s32 arg2) +{ + s8 *var_r30 = arg0; + s8 *var_r31 = arg1; + if (arg2 <= 0) { return 0; } @@ -168,14 +188,16 @@ s32 fn_1_1FFC(s8* arg0, s8* arg1, s32 arg2) { return *var_r30 - *var_r31; } -s32 fn_1_2064(void) { +s32 fn_1_2064(void) +{ lbl_1_bss_18 = 0; return 1; } -void fn_1_207C(void) { - unkStruct4* var_r30; - unkStruct3* var_r31; +void fn_1_207C(void) +{ + unkStruct4 *var_r30; + unkStruct3 *var_r31; var_r31 = lbl_1_bss_18; if (var_r31) { @@ -187,12 +209,13 @@ void fn_1_207C(void) { } } -void fn_1_20D4(void) { +void fn_1_20D4(void) +{ m446Func1 *temp_r4; f32 temp_f31; s32 temp_r5; - unkStruct4* temp_r31; - unkStruct3* var_r30; + unkStruct4 *temp_r31; + unkStruct3 *var_r30; var_r30 = lbl_1_bss_18; if (var_r30) { @@ -204,7 +227,8 @@ void fn_1_20D4(void) { if (temp_r31->unk70 != 0) { if (temp_r31->unk7C > 0) { temp_r31->unk7C--; - } else { + } + else { temp_f31 = sin((M_PI * (90.0f * temp_r31->unk80)) / 180.0); temp_r31->unk10.x = temp_r31->unk1C.x + (temp_f31 * (temp_r31->unk28.x - temp_r31->unk1C.x)); temp_r31->unk10.y = temp_r31->unk1C.y + (temp_f31 * (temp_r31->unk28.y - temp_r31->unk1C.y)); @@ -246,9 +270,10 @@ void fn_1_20D4(void) { } } -unkStruct4* m446CardCreate(s32 arg0) { - unkStruct4* temp_r31; - unkStruct3* temp_r30; +unkStruct4 *m446CardCreate(s32 arg0) +{ + unkStruct4 *temp_r31; + unkStruct3 *temp_r30; temp_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x98, MEMORY_DEFAULT_NUM); if (!temp_r31) { @@ -289,14 +314,16 @@ unkStruct4* m446CardCreate(s32 arg0) { } if (lbl_1_bss_18) { fn_1_1EC8(lbl_1_bss_18, temp_r30); - } else { + } + else { lbl_1_bss_18 = temp_r30; } return temp_r31; } -void fn_1_2688(unkStruct4* arg0) { - unkStruct3* var_r31 = lbl_1_bss_18; +void fn_1_2688(unkStruct4 *arg0) +{ + unkStruct3 *var_r31 = lbl_1_bss_18; do { if (arg0 == var_r31->unk0) { if (var_r31 == lbl_1_bss_18) { @@ -313,7 +340,8 @@ void fn_1_2688(unkStruct4* arg0) { } while (var_r31); } -void fn_1_272C(unkStruct4* arg0) { +void fn_1_272C(unkStruct4 *arg0) +{ Vec sp8; sp8 = arg0->unk34; @@ -322,7 +350,8 @@ void fn_1_272C(unkStruct4* arg0) { fn_1_2928(arg0, &sp8, 0x1E); } -void fn_1_2794(unkStruct4* arg0) { +void fn_1_2794(unkStruct4 *arg0) +{ Vec sp8; sp8 = arg0->unk34; @@ -331,7 +360,8 @@ void fn_1_2794(unkStruct4* arg0) { fn_1_2928(arg0, &sp8, 0x3C); } -void fn_1_27FC(unkStruct4* arg0, Vec* arg1, s32 arg2) { +void fn_1_27FC(unkStruct4 *arg0, Vec *arg1, s32 arg2) +{ arg0->unk7C = 0; arg0->unk28 = *arg1; arg0->unk1C = arg0->unk10; @@ -340,7 +370,8 @@ void fn_1_27FC(unkStruct4* arg0, Vec* arg1, s32 arg2) { arg0->unk70 = 1; } -void fn_1_2890(unkStruct4* arg0, Vec* arg1, s32 arg2, s32 arg3) { +void fn_1_2890(unkStruct4 *arg0, Vec *arg1, s32 arg2, s32 arg3) +{ arg0->unk7C = 0; arg0->unk28 = *arg1; arg0->unk1C = arg0->unk10; @@ -350,7 +381,8 @@ void fn_1_2890(unkStruct4* arg0, Vec* arg1, s32 arg2, s32 arg3) { arg0->unk7C = arg3; } -void fn_1_2928(unkStruct4* arg0, Vec* arg1, s32 arg2) { +void fn_1_2928(unkStruct4 *arg0, Vec *arg1, s32 arg2) +{ arg0->unk4C = *arg1; arg0->unk40 = arg0->unk34; arg0->unk88 = 0.0f; @@ -358,7 +390,8 @@ void fn_1_2928(unkStruct4* arg0, Vec* arg1, s32 arg2) { arg0->unk74 = 1; } -void fn_1_29B4(unkStruct4* arg0, f32 arg8, s32 arg1) { +void fn_1_29B4(unkStruct4 *arg0, f32 arg8, s32 arg1) +{ arg0->unk60 = arg8; arg0->unk5C = arg0->unk58; arg0->unk90 = 0.0f; @@ -366,28 +399,32 @@ void fn_1_29B4(unkStruct4* arg0, f32 arg8, s32 arg1) { arg0->unk78 = 1; } -void fn_1_2A1C(unkStruct4* arg0) { - Hu3DModelAttrReset(arg0->unkA[1], 1); +void fn_1_2A1C(unkStruct4 *arg0) +{ + Hu3DModelAttrReset(arg0->unkA[1], HU3D_ATTR_DISPOFF); arg0->unk6C = 1; } -void fn_1_2A58(unkStruct4* arg0) { - Hu3DModelAttrSet(arg0->unkA[1], 1); +void fn_1_2A58(unkStruct4 *arg0) +{ + Hu3DModelAttrSet(arg0->unkA[1], HU3D_ATTR_DISPOFF); arg0->unk6C = 0; } -void fn_1_2A94(unkStruct4* arg0) { +void fn_1_2A94(unkStruct4 *arg0) +{ arg0->unk4 = 1; arg0->unk8 = 0; } -void fn_1_2AA8(unkStruct4* arg0) { +void fn_1_2AA8(unkStruct4 *arg0) +{ Vec sp8; - + switch (arg0->unk8) { case 0: arg0->unk8 = 1; - Hu3DModelAttrReset(arg0->unkA[1], 1); + Hu3DModelAttrReset(arg0->unkA[1], HU3D_ATTR_DISPOFF); arg0->unk6C = 1; arg0->unk8 = 1; // ? case 1: @@ -398,9 +435,10 @@ void fn_1_2AA8(unkStruct4* arg0) { arg0->unk78 = 1; arg0->unk8 = 2; // ????? break; - + case 2: - if (arg0->unk78 != 0) break; + if (arg0->unk78 != 0) + break; arg0->unk8 = 3; // ?????????? case 3: arg0->unk60 = 1.5f; @@ -410,9 +448,10 @@ void fn_1_2AA8(unkStruct4* arg0) { arg0->unk78 = 1; arg0->unk8 = 4; break; - + case 4: - if (arg0->unk78 != 0) break; + if (arg0->unk78 != 0) + break; arg0->unk8 = 5; case 5: arg0->unk60 = 2.5f; @@ -422,9 +461,10 @@ void fn_1_2AA8(unkStruct4* arg0) { arg0->unk78 = 1; arg0->unk8 = 6; break; - + case 6: - if (arg0->unk78 != 0) break; + if (arg0->unk78 != 0) + break; arg0->unk8 = 8; case 7: arg0->unk60 = 1.5f; @@ -434,7 +474,8 @@ void fn_1_2AA8(unkStruct4* arg0) { arg0->unk78 = 1; arg0->unk8 = 8; case 8: - if (arg0->unk78 != 0) break; + if (arg0->unk78 != 0) + break; arg0->unk8 = 9; case 9: sp8 = arg0->unk34; @@ -452,24 +493,27 @@ void fn_1_2AA8(unkStruct4* arg0) { arg0->unk8 = 10; break; case 10: - if (arg0->unk78 != 0) break; + if (arg0->unk78 != 0) + break; arg0->unk4 = 0; arg0->unk8 = 0; - Hu3DModelAttrSet(arg0->unkA[1], 1); + Hu3DModelAttrSet(arg0->unkA[1], HU3D_ATTR_DISPOFF); arg0->unk6C = 0; return; } } -void fn_1_2D94(unkStruct4* arg0) { +void fn_1_2D94(unkStruct4 *arg0) +{ arg0->unk4 = 2; arg0->unk8 = 0; } -void fn_1_2DA8(unkStruct4* arg0) { +void fn_1_2DA8(unkStruct4 *arg0) +{ f32 var_f31; f32 var_f30; - + switch (arg0->unk8) { case 0: arg0->unk8 = 1; @@ -498,7 +542,8 @@ void fn_1_2DA8(unkStruct4* arg0) { } } -void fn_1_2EC0(unkStruct4* arg0, s32 arg1) { +void fn_1_2EC0(unkStruct4 *arg0, s32 arg1) +{ if (arg1 != 0) { Hu3DModelShadowDispOn(arg0->unkA[0]); Hu3DModelAmbSet(arg0->unkA[0], 0.0f, 0.0f, 0.0f); @@ -508,11 +553,13 @@ void fn_1_2EC0(unkStruct4* arg0, s32 arg1) { Hu3DModelAmbSet(arg0->unkA[0], 1.0f, 1.0f, 1.0f); } -void fn_1_2F64(unkStruct4* arg0) { +void fn_1_2F64(unkStruct4 *arg0) +{ if ((arg0->unk58 > 1.0f) || (arg0->unk58 < 1.0f)) { Hu3DModelLayerSet(arg0->unkA[0], 1); Hu3DModelLayerSet(arg0->unkA[1], 1); - } else { + } + else { Hu3DModelLayerSet(arg0->unkA[0], 0); Hu3DModelLayerSet(arg0->unkA[1], 0); } diff --git a/src/REL/m446Dll/cursor.c b/src/REL/m446Dll/cursor.c index 0c08a160..f183dfbf 100644 --- a/src/REL/m446Dll/cursor.c +++ b/src/REL/m446Dll/cursor.c @@ -142,14 +142,14 @@ void fn_1_77C8(unkStruct7 *arg0, u8 arg1) arg0->field00_bit0 = 1; arg0->unk48 = arg1; - Hu3DModelAttrReset(arg0->unkC[0], 1); + Hu3DModelAttrReset(arg0->unkC[0], HU3D_ATTR_DISPOFF); if (arg0->unk8 == 0) { for (var_r30 = 0; var_r30 < 9; var_r30++) { if (var_r30 == arg1) { - Hu3DModelAttrReset(arg0->unkC[var_r30 + 1], 1); + Hu3DModelAttrReset(arg0->unkC[var_r30 + 1], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrSet(arg0->unkC[var_r30 + 1], 1); + Hu3DModelAttrSet(arg0->unkC[var_r30 + 1], HU3D_ATTR_DISPOFF); } } } @@ -160,10 +160,10 @@ void fn_1_7884(unkStruct7 *arg0) s32 var_r30; arg0->field00_bit0 = 0; - Hu3DModelAttrSet(arg0->unkC[0], 1); + Hu3DModelAttrSet(arg0->unkC[0], HU3D_ATTR_DISPOFF); if (arg0->unk8 == 0) { for (var_r30 = 0; var_r30 < 9; var_r30++) { - Hu3DModelAttrSet(arg0->unkC[var_r30 + 1], 1); + Hu3DModelAttrSet(arg0->unkC[var_r30 + 1], HU3D_ATTR_DISPOFF); } } } @@ -196,7 +196,7 @@ void fn_1_7A38(unkStruct7 *arg0) if (arg0->unk8 == 0) { for (var_r31 = 0; var_r31 < 9; var_r31++) { - Hu3DModelAttrSet(arg0->unkC[var_r31 + 1], 0x40000002); + Hu3DModelAttrSet(arg0->unkC[var_r31 + 1], HU3D_MOTATTR_PAUSE); } } arg0->field00_bit3 = 0; diff --git a/src/REL/m446Dll/player.c b/src/REL/m446Dll/player.c index 7613a306..abd8e0fc 100644 --- a/src/REL/m446Dll/player.c +++ b/src/REL/m446Dll/player.c @@ -258,7 +258,7 @@ unkStruct8 *m446PlayerCreate(s32 arg0, unkStruct6 *arg1) Hu3DModelShadowSet(var_r31->unk3C[1]); Hu3DModelPosSet(var_r31->unk3C[1], 0.0f, 100.0f, 0.0f); Hu3DModelAttrReset(var_r31->unk3C[1], 0x40000001); - Hu3DModelAttrSet(var_r31->unk3C[1], 1); + Hu3DModelAttrSet(var_r31->unk3C[1], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(var_r31->unk3C[1], 2000.0f, 2000.0f, 2000.0f); fn_1_637C(var_r31, 0); @@ -279,7 +279,7 @@ unkStruct8 *m446PlayerCreate(s32 arg0, unkStruct6 *arg1) else { CharModelMotionSet(var_r31->unk64, var_r31->unk40[0]); } - Hu3DModelAttrSet(var_r31->unk3C[0], 0x40000001); + Hu3DModelAttrSet(var_r31->unk3C[0], HU3D_MOTATTR_LOOP); var_r28 = fn_1_1DF4(var_r31); if (!var_r28) { OSReport("[!] m446PlayerCreate ERROR...\n"); @@ -756,7 +756,7 @@ void fn_1_6074(unkStruct8 *arg0) break; arg0->unk1C = 3; case 3: - Hu3DModelAttrSet(arg0->unk3C[1], 0x40000001); + Hu3DModelAttrSet(arg0->unk3C[1], HU3D_MOTATTR_LOOP); arg0->unk1C = 4; arg0->unk14 = 0; break; @@ -813,9 +813,9 @@ void fn_1_637C(unkStruct8 *arg0, s32 arg1) arg0->unkC8 = arg1; switch (arg1) { case 0: - Hu3DModelAttrReset(arg0->unk3C[0], 1); - Hu3DModelAttrSet(arg0->unk3C[0], 0x40000001); - Hu3DModelAttrSet(arg0->unk3C[1], 1); + Hu3DModelAttrReset(arg0->unk3C[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->unk3C[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(arg0->unk3C[1], HU3D_ATTR_DISPOFF); arg0->unk48.x = 0.0f; if (arg0->unk70 != 0) { var_f31 = 70.0f; @@ -836,8 +836,8 @@ void fn_1_637C(unkStruct8 *arg0, s32 arg1) } break; case 1: - Hu3DModelAttrReset(arg0->unk3C[1], 1); - Hu3DModelAttrSet(arg0->unk3C[0], 1); + Hu3DModelAttrReset(arg0->unk3C[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->unk3C[0], HU3D_ATTR_DISPOFF); break; } } diff --git a/src/REL/m446Dll/stage.c b/src/REL/m446Dll/stage.c index ad0a83b7..87fa0397 100644 --- a/src/REL/m446Dll/stage.c +++ b/src/REL/m446Dll/stage.c @@ -4,7 +4,7 @@ #include "game/hsfmotion.h" // bss -unkStruct3* lbl_1_bss_A0; +unkStruct3 *lbl_1_bss_A0; // data s32 lbl_1_data_410[5] = { 0x4D0008, 0x4D0007, 0x4D0006, 0x4D001F, 0x4D001F }; @@ -15,52 +15,41 @@ Vec lbl_1_data_424[5] = { { 160.0f, 160.0f, 0.0f }, { -160.0f, 160.0f, 0.0f }, }; -unkStruct10 lbl_1_data_460[3] = { - { - { 160.0f, 160.0f, 0.0f }, - { 0.0f, 0.0f, 0.0f }, - { 0xFF, 0xFF, 0xFF, 0xFF } - }, - { - { -160.0f, 160.0f, 0.0f }, - { 0.0f, 0.0f, 0.0f }, - { 0xFF, 0xFF, 0xFF, 0xFF } - }, - { - { 0.0f, 160.0f, 500.0f }, - { 0.0f, 0.0f, 0.0f }, - { 0xB0, 0xB0, 0xB0, 0xFF } - } -}; +unkStruct10 lbl_1_data_460[3] = { { { 160.0f, 160.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { -160.0f, 160.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { 0.0f, 160.0f, 500.0f }, { 0.0f, 0.0f, 0.0f }, { 0xB0, 0xB0, 0xB0, 0xFF } } }; Vec lbl_1_data_4B4[3] = { { 1.0f, 3000.0f, 1.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, }; -s32 fn_1_7BF0(void) { +s32 fn_1_7BF0(void) +{ lbl_1_bss_A0 = 0; return 1; } -void fn_1_7C08(void) { - unkStruct3* var_r31; - unkStruct9* var_r30; +void fn_1_7C08(void) +{ + unkStruct3 *var_r31; + unkStruct9 *var_r30; var_r31 = lbl_1_bss_A0; if (var_r31) { do { var_r30 = var_r31->unk0; - fn_1_2688((unkStruct4*)var_r30); // ??? + fn_1_2688((unkStruct4 *)var_r30); // ??? var_r31 = var_r31->unk8; } while (var_r31); } } -void fn_1_7C60(void) { +void fn_1_7C60(void) +{ s32 var_r30; - unkStruct3* var_r29; - unkStruct9* temp_r31; + unkStruct3 *var_r29; + unkStruct9 *temp_r31; var_r29 = lbl_1_bss_A0; if (var_r29) { @@ -70,7 +59,8 @@ void fn_1_7C60(void) { if ((temp_r31->unk14 += 0.002f) > 1.0f) { temp_r31->unk14 = 1.0f; } - Hu3DGLightColorSet(temp_r31->unkA[2], lbl_1_data_460[2].unk18.r * temp_r31->unk14, lbl_1_data_460[2].unk18.g * temp_r31->unk14, lbl_1_data_460[2].unk18.b * temp_r31->unk14, lbl_1_data_460[2].unk18.a * temp_r31->unk14); + Hu3DGLightColorSet(temp_r31->unkA[2], lbl_1_data_460[2].unk18.r * temp_r31->unk14, lbl_1_data_460[2].unk18.g * temp_r31->unk14, + lbl_1_data_460[2].unk18.b * temp_r31->unk14, lbl_1_data_460[2].unk18.a * temp_r31->unk14); } if (temp_r31->unk24 != 0) { for (var_r30 = 0; var_r30 <= 1; var_r30++) { @@ -78,22 +68,24 @@ void fn_1_7C60(void) { if ((temp_r31->unk10 += 0.002f) > 1.0f) { temp_r31->unk10 = 1.0f; } - Hu3DGLightColorSet(temp_r31->unkA[var_r30], temp_r31->unk10 * lbl_1_data_460[var_r30].unk18.r, temp_r31->unk10 * lbl_1_data_460[var_r30].unk18.g, temp_r31->unk10 * lbl_1_data_460[var_r30].unk18.b, temp_r31->unk10 * lbl_1_data_460[var_r30].unk18.a); + Hu3DGLightColorSet(temp_r31->unkA[var_r30], temp_r31->unk10 * lbl_1_data_460[var_r30].unk18.r, + temp_r31->unk10 * lbl_1_data_460[var_r30].unk18.g, temp_r31->unk10 * lbl_1_data_460[var_r30].unk18.b, + temp_r31->unk10 * lbl_1_data_460[var_r30].unk18.a); } } if ((temp_r31->unk18 == 0) && (Hu3DMotionEndCheck(temp_r31->unk0[2]) != 0)) { Hu3DMotionStartEndSet(temp_r31->unk0[2], 180.0f, 359.0f); - Hu3DModelAttrSet(temp_r31->unk0[2], 0x40000001); + Hu3DModelAttrSet(temp_r31->unk0[2], HU3D_MOTATTR_LOOP); temp_r31->unk18 = 1; } if ((temp_r31->unk1C == 0) && (Hu3DMotionEndCheck(temp_r31->unk0[3]) != 0)) { Hu3DMotionStartEndSet(temp_r31->unk0[3], 120.0f, 159.0f); - Hu3DModelAttrSet(temp_r31->unk0[3], 0x40000001); + Hu3DModelAttrSet(temp_r31->unk0[3], HU3D_MOTATTR_LOOP); temp_r31->unk1C = 1; } if ((temp_r31->unk20 == 0) && (Hu3DMotionEndCheck(temp_r31->unk0[4]) != 0)) { Hu3DMotionStartEndSet(temp_r31->unk0[4], 120.0f, 159.0f); - Hu3DModelAttrSet(temp_r31->unk0[4], 0x40000001); + Hu3DModelAttrSet(temp_r31->unk0[4], HU3D_MOTATTR_LOOP); temp_r31->unk20 = 1; } } @@ -102,11 +94,12 @@ void fn_1_7C60(void) { } } -unkStruct9* m446StageCreate(void) { +unkStruct9 *m446StageCreate(void) +{ s32 var_r30; - unkStruct3* var_r29; - unkStruct3* temp_ret; - unkStruct9* var_r31; + unkStruct3 *var_r29; + unkStruct3 *temp_ret; + unkStruct9 *var_r31; var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, MEMORY_DEFAULT_NUM); if (!var_r31) { @@ -120,19 +113,19 @@ unkStruct9* m446StageCreate(void) { var_r31->unk24 = 0; var_r31->unk28 = 0; var_r31->unk2C = 0; - + for (var_r30 = 0; var_r30 < 5; var_r30++) { var_r31->unk0[var_r30] = Hu3DModelCreateFile(lbl_1_data_410[var_r30]); Hu3DModelPosSet(var_r31->unk0[var_r30], lbl_1_data_424[var_r30].x, lbl_1_data_424[var_r30].y, lbl_1_data_424[var_r30].z); } - Hu3DModelAttrSet(var_r31->unk0[3], 1); - Hu3DModelAttrSet(var_r31->unk0[4], 1); - Hu3DModelAttrSet(var_r31->unk0[3], 0x40000002); - Hu3DModelAttrSet(var_r31->unk0[4], 0x40000002); + Hu3DModelAttrSet(var_r31->unk0[3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk0[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk0[3], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(var_r31->unk0[4], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(var_r31->unk0[3], 0x40000001); Hu3DModelAttrReset(var_r31->unk0[4], 0x40000001); Hu3DModelAttrReset(var_r31->unk0[2], 0x40000001); - + for (var_r30 = 0; var_r30 < 3; var_r30++) { var_r31->unkA[var_r30] = Hu3DGLightCreateV(&lbl_1_data_460[var_r30].unk0, &lbl_1_data_460[var_r30].unkC, &lbl_1_data_460[var_r30].unk18); Hu3DGLightStaticSet(var_r31->unkA[var_r30], 1); @@ -152,15 +145,17 @@ unkStruct9* m446StageCreate(void) { } if (lbl_1_bss_A0) { fn_1_1EC8(lbl_1_bss_A0, var_r29); - } else { + } + else { lbl_1_bss_A0 = var_r29; } return var_r31; } -void fn_1_83F0(unkStruct9* arg0) { +void fn_1_83F0(unkStruct9 *arg0) +{ s32 var_r30; - unkStruct3* var_r31; + unkStruct3 *var_r31; var_r31 = lbl_1_bss_A0; do { @@ -170,20 +165,21 @@ void fn_1_83F0(unkStruct9* arg0) { } fn_1_1F04(var_r31); fn_1_1E5C(var_r31); - + for (var_r30 = 0; var_r30 < 5; var_r30++) { Hu3DModelKill(arg0->unk0[var_r30]); } HuMemDirectFree(arg0); return; - } - var_r31 = var_r31->unk8; + } + var_r31 = var_r31->unk8; } while (var_r31); } -void fn_1_84AC(unkStruct9* arg0) { - Hu3DModelAttrReset(arg0->unk0[3], 1); - Hu3DModelAttrReset(arg0->unk0[4], 1); +void fn_1_84AC(unkStruct9 *arg0) +{ + Hu3DModelAttrReset(arg0->unk0[3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(arg0->unk0[4], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(arg0->unk0[3], 0x40000002); Hu3DModelAttrReset(arg0->unk0[4], 0x40000002); arg0->unk24 = 1; @@ -192,9 +188,10 @@ void fn_1_84AC(unkStruct9* arg0) { arg0->unk18 = 0; } -void fn_1_852C(unkStruct9* arg0) { - Hu3DModelAttrSet(arg0->unk0[3], 1U); - Hu3DModelAttrSet(arg0->unk0[4], 1U); +void fn_1_852C(unkStruct9 *arg0) +{ + Hu3DModelAttrSet(arg0->unk0[3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->unk0[4], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(arg0->unk0[3], 0x40000002U); Hu3DModelAttrSet(arg0->unk0[4], 0x40000002U); Hu3DMotionStartEndSet(arg0->unk0[2], 0.0f, 359.0f); @@ -206,6 +203,7 @@ void fn_1_852C(unkStruct9* arg0) { arg0->unk18 = 0; } -void fn_1_860C(unkStruct9* arg0) { +void fn_1_860C(unkStruct9 *arg0) +{ arg0->unk28 = 1; } diff --git a/src/REL/m447dll/block.c b/src/REL/m447dll/block.c index 15ce223d..fcd1280b 100755 --- a/src/REL/m447dll/block.c +++ b/src/REL/m447dll/block.c @@ -8,57 +8,37 @@ #include "ext_math.h" -void fn_1_8F7C(void* arg0); +void fn_1_8F7C(void *arg0); void fn_1_910C(void); -void fn_1_9158(UnkM447Struct_01* arg0); -void fn_1_9320(UnkM447Struct_01* arg0); -void fn_1_9374(UnkM447Struct_01* arg0); -void fn_1_9538(UnkM447Struct_01* arg0); -void fn_1_953C(UnkM447Struct_01* arg0); -void fn_1_9758(UnkM447Struct_01* arg0); -void fn_1_991C(UnkM447Struct_01* arg0); -void fn_1_9BCC(UnkM447Struct_01* arg0); -void fn_1_9CEC(UnkM447Struct_01* arg0); -void fn_1_9EEC(UnkM447Struct_01* arg0); -void fn_1_9F40(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_9158(UnkM447Struct_01 *arg0); +void fn_1_9320(UnkM447Struct_01 *arg0); +void fn_1_9374(UnkM447Struct_01 *arg0); +void fn_1_9538(UnkM447Struct_01 *arg0); +void fn_1_953C(UnkM447Struct_01 *arg0); +void fn_1_9758(UnkM447Struct_01 *arg0); +void fn_1_991C(UnkM447Struct_01 *arg0); +void fn_1_9BCC(UnkM447Struct_01 *arg0); +void fn_1_9CEC(UnkM447Struct_01 *arg0); +void fn_1_9EEC(UnkM447Struct_01 *arg0); +void fn_1_9F40(ModelData *model, ParticleData *particle, Mtx matrix); u32 lbl_1_bss_B8; // Maybe part of another file with fn_1_A230 and fn_1_A240. -UnkM447Struct_01* lbl_1_bss_A4[5]; +UnkM447Struct_01 *lbl_1_bss_A4[5]; s32 lbl_1_bss_A0; -const s32 lbl_1_rodata_5F8[] = { - DATA_MAKE_NUM(DATADIR_M447, 12), - DATA_MAKE_NUM(DATADIR_M447, 13), - DATA_MAKE_NUM(DATADIR_M447, 10), - DATA_MAKE_NUM(DATADIR_M447, 11), - DATA_MAKE_NUM(DATADIR_M447, 4), - DATA_MAKE_NUM(DATADIR_M447, 5), - DATA_MAKE_NUM(DATADIR_M447, 16), - DATA_MAKE_NUM(DATADIR_M447, 17), - DATA_MAKE_NUM(DATADIR_M447, 8), - DATA_MAKE_NUM(DATADIR_M447, 9), - DATA_MAKE_NUM(DATADIR_M447, 6), - DATA_MAKE_NUM(DATADIR_M447, 7), - DATA_MAKE_NUM(DATADIR_M447, 18), - DATA_MAKE_NUM(DATADIR_M447, 19), - DATA_MAKE_NUM(DATADIR_M447, 20), - DATA_MAKE_NUM(DATADIR_M447, 21), - DATA_MAKE_NUM(DATADIR_M447, 22), - DATA_MAKE_NUM(DATADIR_M447, 23), - DATA_MAKE_NUM(DATADIR_M447, 14), - DATA_MAKE_NUM(DATADIR_M447, 15) -}; +const s32 lbl_1_rodata_5F8[] + = { DATA_MAKE_NUM(DATADIR_M447, 12), DATA_MAKE_NUM(DATADIR_M447, 13), DATA_MAKE_NUM(DATADIR_M447, 10), DATA_MAKE_NUM(DATADIR_M447, 11), + DATA_MAKE_NUM(DATADIR_M447, 4), DATA_MAKE_NUM(DATADIR_M447, 5), DATA_MAKE_NUM(DATADIR_M447, 16), DATA_MAKE_NUM(DATADIR_M447, 17), + DATA_MAKE_NUM(DATADIR_M447, 8), DATA_MAKE_NUM(DATADIR_M447, 9), DATA_MAKE_NUM(DATADIR_M447, 6), DATA_MAKE_NUM(DATADIR_M447, 7), + DATA_MAKE_NUM(DATADIR_M447, 18), DATA_MAKE_NUM(DATADIR_M447, 19), DATA_MAKE_NUM(DATADIR_M447, 20), DATA_MAKE_NUM(DATADIR_M447, 21), + DATA_MAKE_NUM(DATADIR_M447, 22), DATA_MAKE_NUM(DATADIR_M447, 23), DATA_MAKE_NUM(DATADIR_M447, 14), DATA_MAKE_NUM(DATADIR_M447, 15) }; -const float lbl_1_rodata_648[20] = { - 30.0f, 30.0f, 80.0f, 30.0f, - 80.0f, 80.0f, 60.0f, 60.0f, - 80.0f, 80.0f, 30.0f, 30.0f, - 45.0f, 45.0f, 50.0f, 50.0f, - 30.0f, 30.0f, 75.0f, 50.0f -}; +const float lbl_1_rodata_648[20] + = { 30.0f, 30.0f, 80.0f, 30.0f, 80.0f, 80.0f, 60.0f, 60.0f, 80.0f, 80.0f, 30.0f, 30.0f, 45.0f, 45.0f, 50.0f, 50.0f, 30.0f, 30.0f, 75.0f, 50.0f }; -UnkM447Struct_01* fn_1_8DF8(void) { - UnkM447Struct_01* temp_r3; +UnkM447Struct_01 *fn_1_8DF8(void) +{ + UnkM447Struct_01 *temp_r3; temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r3), MEMORY_DEFAULT_NUM); if (!temp_r3) { @@ -88,20 +68,24 @@ UnkM447Struct_01* fn_1_8DF8(void) { return temp_r3; } -void fn_1_8F7C(void* arg0) { +void fn_1_8F7C(void *arg0) +{ fn_1_8F7C(arg0); HuMemDirectFree(arg0); } -void fn_1_8FF4(UnkM447Struct_01* arg0, s32 arg1) { +void fn_1_8FF4(UnkM447Struct_01 *arg0, s32 arg1) +{ arg0->unk04 = arg1; arg0->unk0C = 0; } -void fn_1_9004(UnkM447Struct_01* arg0, s32 arg1, s32 arg2) { +void fn_1_9004(UnkM447Struct_01 *arg0, s32 arg1, s32 arg2) +{ if (lbl_1_bss_A0 != 0) { arg0->unk00 = arg1 * 2 + (arg2 != 0 ? 0 : 1); - } else { + } + else { arg0->unk00 = arg1 * 2 + (arg2 != 0 ? 1 : 0); } arg0->unk08 = arg2; @@ -109,25 +93,20 @@ void fn_1_9004(UnkM447Struct_01* arg0, s32 arg1, s32 arg2) { arg0->unk4C = 1.0f; arg0->unk50 = 1.0f; arg0->unk54 = 1.0f; - Hu3DModelAttrSet(arg0->unk58[arg0->unk00], 1); - Hu3DModelAttrSet(arg0->unk58[21], 1); + Hu3DModelAttrSet(arg0->unk58[arg0->unk00], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->unk58[21], HU3D_ATTR_DISPOFF); } -void fn_1_90FC(s32 arg0) { +void fn_1_90FC(s32 arg0) +{ lbl_1_bss_A0 = arg0; } -void (*lbl_1_data_294[])(UnkM447Struct_01*) = { - fn_1_9538, - fn_1_953C, - fn_1_9758, - fn_1_991C, - fn_1_9BCC, - fn_1_9CEC -}; +void (*lbl_1_data_294[])(UnkM447Struct_01 *) = { fn_1_9538, fn_1_953C, fn_1_9758, fn_1_991C, fn_1_9BCC, fn_1_9CEC }; -void fn_1_910C(void) { - UnkM447Struct_01* temp_r31; +void fn_1_910C(void) +{ + UnkM447Struct_01 *temp_r31; temp_r31 = HuPrcCurrentGet()->user_data; while (TRUE) { @@ -137,12 +116,13 @@ void fn_1_910C(void) { } } -void fn_1_9158(UnkM447Struct_01* arg0) { +void fn_1_9158(UnkM447Struct_01 *arg0) +{ s32 i; for (i = 0; i <= 19; i++) { arg0->unk58[i] = Hu3DModelCreateFile(lbl_1_rodata_5F8[i]); - Hu3DModelAttrSet(arg0->unk58[i], 2); + Hu3DModelAttrSet(arg0->unk58[i], HU3D_ATTR_ZWRITE_OFF); Hu3DModelLayerSet(arg0->unk58[i], 7); } arg0->unk58[20] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M447, 30)); @@ -154,19 +134,20 @@ void fn_1_9158(UnkM447Struct_01* arg0) { Hu3DParticleHookSet(arg0->unk58[22], fn_1_9F40); Hu3DParticleBlendModeSet(arg0->unk58[22], 1); Hu3DModelLayerSet(arg0->unk58[22], 6); - Hu3DModelAttrSet(arg0->unk58[22], 1); + Hu3DModelAttrSet(arg0->unk58[22], HU3D_ATTR_DISPOFF); for (i = 0; i <= 19; i++) { - Hu3DModelAttrSet(arg0->unk58[i], 1); + Hu3DModelAttrSet(arg0->unk58[i], HU3D_ATTR_DISPOFF); } - Hu3DModelAttrReset(arg0->unk58[arg0->unk00], 1); - Hu3DModelAttrSet(arg0->unk58[20], 1); - Hu3DModelAttrSet(arg0->unk58[21], 1); + Hu3DModelAttrReset(arg0->unk58[arg0->unk00], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->unk58[20], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->unk58[21], HU3D_ATTR_DISPOFF); for (i = 0; i <= 19; i++) { Hu3DModelShadowSet(arg0->unk58[i]); } } -void fn_1_9320(UnkM447Struct_01* arg0) { +void fn_1_9320(UnkM447Struct_01 *arg0) +{ s32 i; for (i = 0; i < 23; i++) { @@ -174,8 +155,9 @@ void fn_1_9320(UnkM447Struct_01* arg0) { } } -void fn_1_9374(UnkM447Struct_01* arg0) { - ModelData* temp_r30; +void fn_1_9374(UnkM447Struct_01 *arg0) +{ + ModelData *temp_r30; Mtx sp8; temp_r30 = &Hu3DData[arg0->unk58[arg0->unk00]]; @@ -195,10 +177,10 @@ void fn_1_9374(UnkM447Struct_01* arg0) { Hu3DModelTPLvlSet(arg0->unk58[arg0->unk00], arg0->unk8C); } -void fn_1_9538(UnkM447Struct_01* arg0) { -} +void fn_1_9538(UnkM447Struct_01 *arg0) { } -void fn_1_953C(UnkM447Struct_01* arg0) { +void fn_1_953C(UnkM447Struct_01 *arg0) +{ float temp_f31; switch (arg0->unk0C) { @@ -211,7 +193,7 @@ void fn_1_953C(UnkM447Struct_01* arg0) { arg0->unk50 = 0.0f; arg0->unk54 = 0.0f; arg0->unk88 = -50.0f; - Hu3DModelAttrReset(arg0->unk58[arg0->unk00], 1); + Hu3DModelAttrReset(arg0->unk58[arg0->unk00], HU3D_ATTR_DISPOFF); arg0->unk0C = 1; /* fallthrough */ case 1: @@ -239,7 +221,8 @@ void fn_1_953C(UnkM447Struct_01* arg0) { } } -void fn_1_9758(UnkM447Struct_01* arg0) { +void fn_1_9758(UnkM447Struct_01 *arg0) +{ float temp_f31; switch (arg0->unk0C) { @@ -268,7 +251,8 @@ void fn_1_9758(UnkM447Struct_01* arg0) { } } -void fn_1_991C(UnkM447Struct_01* arg0) { +void fn_1_991C(UnkM447Struct_01 *arg0) +{ float temp_f31; switch (arg0->unk0C) { @@ -308,14 +292,15 @@ void fn_1_991C(UnkM447Struct_01* arg0) { arg0->unk0C = 2; /* fallthrough */ case 2: - Hu3DModelAttrReset(arg0->unk58[20], 1); + Hu3DModelAttrReset(arg0->unk58[20], HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(arg0->unk58[20], 0.0f); fn_1_8FF4(arg0, 4); break; } } -void fn_1_9BCC(UnkM447Struct_01* arg0) { +void fn_1_9BCC(UnkM447Struct_01 *arg0) +{ switch (arg0->unk0C) { case 0: arg0->unk90 = 0.0f; @@ -331,22 +316,23 @@ void fn_1_9BCC(UnkM447Struct_01* arg0) { arg0->unk0C = 2; /* fallthrough */ case 2: - Hu3DModelAttrSet(arg0->unk58[arg0->unk00], 1); + Hu3DModelAttrSet(arg0->unk58[arg0->unk00], HU3D_ATTR_DISPOFF); fn_1_8FF4(arg0, 0); break; } } -void fn_1_9CEC(UnkM447Struct_01* arg0) { +void fn_1_9CEC(UnkM447Struct_01 *arg0) +{ float temp_f31; switch (arg0->unk0C) { case 0: arg0->unk90 = 0.0f; arg0->unk98 = 0.008333334f; - Hu3DModelAttrReset(arg0->unk58[21], 1); + Hu3DModelAttrReset(arg0->unk58[21], HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(arg0->unk58[21], 0.0f); - Hu3DModelAttrSet(arg0->unk58[21], 0x40000001); + Hu3DModelAttrSet(arg0->unk58[21], HU3D_MOTATTR_LOOP); arg0->unkA8 = arg0->unk10; arg0->unkB4 = 0.0f; arg0->unkB8 = 200.0f; @@ -377,9 +363,10 @@ void fn_1_9CEC(UnkM447Struct_01* arg0) { } } -void fn_1_9EEC(UnkM447Struct_01* arg0) { - ModelData* temp_r30; - ParticleData* temp_r31; +void fn_1_9EEC(UnkM447Struct_01 *arg0) +{ + ModelData *temp_r30; + ParticleData *temp_r31; temp_r30 = &Hu3DData[arg0->unk58[22]]; temp_r31 = temp_r30->unk_120; @@ -389,10 +376,11 @@ void fn_1_9EEC(UnkM447Struct_01* arg0) { temp_r31->unk_1C = arg0; } -void fn_1_9F40(ModelData* model, ParticleData* particle, Mtx matrix) { +void fn_1_9F40(ModelData *model, ParticleData *particle, Mtx matrix) +{ GXColor sp8 = { 0xFF, 0xFF, 0xFF, 0xFF }; - UnkM447Struct_01* temp_r29; - HsfanimStruct01* var_r31; + UnkM447Struct_01 *temp_r29; + HsfanimStruct01 *var_r31; s32 var_r27; s32 i; @@ -422,17 +410,20 @@ void fn_1_9F40(ModelData* model, ParticleData* particle, Mtx matrix) { var_r31->unk34.z = temp_r29->unk10.z; var_r31->unk2C = 20.0f; var_r31->unk02 = 1; - } else if (var_r31->unk02 == 1) { + } + else if (var_r31->unk02 == 1) { var_r31->unk34.y -= 1.0f; var_r31->unk34.z += 3.0f; var_r31->unk2C = 20.0f + fn_1_A240() % 60; if (var_r31->unk40.a > 10) { var_r31->unk40.a -= 4; - } else { + } + else { var_r31->unk40.a = 0; var_r31->unk02 = 2; } - } else { + } + else { var_r27++; } } @@ -449,10 +440,12 @@ void fn_1_9F40(ModelData* model, ParticleData* particle, Mtx matrix) { } } -void fn_1_A230(s32 arg0) { +void fn_1_A230(s32 arg0) +{ lbl_1_bss_B8 = arg0; } -s32 fn_1_A240(void) { +s32 fn_1_A240(void) +{ return ((lbl_1_bss_B8 = lbl_1_bss_B8 * 0x41C64E6D + 0x3039) >> 16) % (1 << 15); } diff --git a/src/REL/m447dll/player.c b/src/REL/m447dll/player.c index 86d33628..e004c77d 100755 --- a/src/REL/m447dll/player.c +++ b/src/REL/m447dll/player.c @@ -13,162 +13,77 @@ #include "ext_math.h" -void fn_1_4300(UnkM447Struct_04* arg0); -float fn_1_43DC(UnkM447Struct_04* arg0); +void fn_1_4300(UnkM447Struct_04 *arg0); +float fn_1_43DC(UnkM447Struct_04 *arg0); void fn_1_43F8(void); -void fn_1_4444(UnkM447Struct_04* arg0); -void fn_1_44B0(UnkM447Struct_04* arg0); -void fn_1_4590(UnkM447Struct_04* arg0); -void fn_1_4638(UnkM447Struct_04* arg0); -void fn_1_4680(UnkM447Struct_04* arg0); -void fn_1_470C(UnkM447Struct_04* arg0); -void fn_1_4760(UnkM447Struct_04* arg0); -void fn_1_4764(UnkM447Struct_04* arg0); -void fn_1_4C84(UnkM447Struct_04* arg0); +void fn_1_4444(UnkM447Struct_04 *arg0); +void fn_1_44B0(UnkM447Struct_04 *arg0); +void fn_1_4590(UnkM447Struct_04 *arg0); +void fn_1_4638(UnkM447Struct_04 *arg0); +void fn_1_4680(UnkM447Struct_04 *arg0); +void fn_1_470C(UnkM447Struct_04 *arg0); +void fn_1_4760(UnkM447Struct_04 *arg0); +void fn_1_4764(UnkM447Struct_04 *arg0); +void fn_1_4C84(UnkM447Struct_04 *arg0); float fn_1_4F7C(float arg0, float arg1, float arg2); -void fn_1_5080(UnkM447Struct_04* arg0); -void fn_1_5298(UnkM447Struct_04* arg0); -void fn_1_5520(UnkM447Struct_04* arg0); -void fn_1_5760(UnkM447Struct_04* arg0); -void fn_1_59D8(UnkM447Struct_04* arg0); -void fn_1_5AF0(UnkM447Struct_04* arg0); -void fn_1_5BD0(UnkM447Struct_04* arg0); -void fn_1_5C78(UnkM447Struct_04* arg0); -void fn_1_671C(UnkM447Struct_04* arg0); -void fn_1_70BC(UnkM447Struct_04* arg0); -void fn_1_717C(UnkM447Struct_04* arg0, s32 arg1, s32 arg2); -void fn_1_71FC(UnkM447Struct_04* arg0, s32 arg1, float arg2, float arg3, s32 arg4); -void fn_1_72A8(UnkM447Struct_04* arg0); -void fn_1_7688(UnkM447Struct_04* arg0); -void fn_1_78A8(UnkM447Struct_04* arg0); -s32 fn_1_7984(UnkM447Struct_04* arg0); -void fn_1_7A34(UnkM447Struct_04* arg0); +void fn_1_5080(UnkM447Struct_04 *arg0); +void fn_1_5298(UnkM447Struct_04 *arg0); +void fn_1_5520(UnkM447Struct_04 *arg0); +void fn_1_5760(UnkM447Struct_04 *arg0); +void fn_1_59D8(UnkM447Struct_04 *arg0); +void fn_1_5AF0(UnkM447Struct_04 *arg0); +void fn_1_5BD0(UnkM447Struct_04 *arg0); +void fn_1_5C78(UnkM447Struct_04 *arg0); +void fn_1_671C(UnkM447Struct_04 *arg0); +void fn_1_70BC(UnkM447Struct_04 *arg0); +void fn_1_717C(UnkM447Struct_04 *arg0, s32 arg1, s32 arg2); +void fn_1_71FC(UnkM447Struct_04 *arg0, s32 arg1, float arg2, float arg3, s32 arg4); +void fn_1_72A8(UnkM447Struct_04 *arg0); +void fn_1_7688(UnkM447Struct_04 *arg0); +void fn_1_78A8(UnkM447Struct_04 *arg0); +s32 fn_1_7984(UnkM447Struct_04 *arg0); +void fn_1_7A34(UnkM447Struct_04 *arg0); -UnkM447Struct_04* lbl_1_bss_98[2]; +UnkM447Struct_04 *lbl_1_bss_98[2]; -const s32 lbl_1_rodata_2A0[][9] = { - { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 113), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 31), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 28), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 72), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) - }, - { - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 2), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 3), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 113), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 31), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 28), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 72), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 23), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 24) - }, - { - DATA_MAKE_NUM(DATADIR_PEACHMOT, 0), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 2), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 3), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 113), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 31), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 28), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 72), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 23), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 24) - }, - { - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 2), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 3), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 113), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 31), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 28), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 72), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 23), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 24) - }, - { - DATA_MAKE_NUM(DATADIR_WARIOMOT, 0), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 2), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 3), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 113), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 31), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 28), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 72), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 23), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 24) - }, - { - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 2), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 3), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 113), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 31), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 28), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 72), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 23), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 24) - }, - { - DATA_MAKE_NUM(DATADIR_DAISYMOT, 0), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 2), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 3), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 113), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 31), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 28), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 72), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 23), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 24) - }, - { - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 2), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 3), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 113), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 31), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 28), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 72), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 23), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 24) - }, - { - DATA_MAKE_NUM(DATADIR_M447, 32), - DATA_MAKE_NUM(DATADIR_M447, 33), - DATA_MAKE_NUM(DATADIR_M447, 34), - DATA_MAKE_NUM(DATADIR_M447, 41), - DATA_MAKE_NUM(DATADIR_M447, 39), - DATA_MAKE_NUM(DATADIR_M447, 38), - DATA_MAKE_NUM(DATADIR_M447, 37), - DATA_MAKE_NUM(DATADIR_M447, 36), - DATA_MAKE_NUM(DATADIR_M447, 40) - } -}; +const s32 lbl_1_rodata_2A0[][9] + = { { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 113), DATA_MAKE_NUM(DATADIR_MARIOMOT, 31), DATA_MAKE_NUM(DATADIR_MARIOMOT, 28), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 72), DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) }, + { DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 2), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 3), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 113), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 31), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 28), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 72), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 23), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 24) }, + { DATA_MAKE_NUM(DATADIR_PEACHMOT, 0), DATA_MAKE_NUM(DATADIR_PEACHMOT, 2), DATA_MAKE_NUM(DATADIR_PEACHMOT, 3), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 113), DATA_MAKE_NUM(DATADIR_PEACHMOT, 31), DATA_MAKE_NUM(DATADIR_PEACHMOT, 28), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 72), DATA_MAKE_NUM(DATADIR_PEACHMOT, 23), DATA_MAKE_NUM(DATADIR_PEACHMOT, 24) }, + { DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 2), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 3), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 113), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 31), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 28), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 72), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 23), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 24) }, + { DATA_MAKE_NUM(DATADIR_WARIOMOT, 0), DATA_MAKE_NUM(DATADIR_WARIOMOT, 2), DATA_MAKE_NUM(DATADIR_WARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 113), DATA_MAKE_NUM(DATADIR_WARIOMOT, 31), DATA_MAKE_NUM(DATADIR_WARIOMOT, 28), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 72), DATA_MAKE_NUM(DATADIR_WARIOMOT, 23), DATA_MAKE_NUM(DATADIR_WARIOMOT, 24) }, + { DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 2), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 3), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 113), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 31), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 28), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 72), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 23), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 24) }, + { DATA_MAKE_NUM(DATADIR_DAISYMOT, 0), DATA_MAKE_NUM(DATADIR_DAISYMOT, 2), DATA_MAKE_NUM(DATADIR_DAISYMOT, 3), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 113), DATA_MAKE_NUM(DATADIR_DAISYMOT, 31), DATA_MAKE_NUM(DATADIR_DAISYMOT, 28), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 72), DATA_MAKE_NUM(DATADIR_DAISYMOT, 23), DATA_MAKE_NUM(DATADIR_DAISYMOT, 24) }, + { DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 2), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 3), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 113), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 31), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 28), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 72), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 23), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 24) }, + { DATA_MAKE_NUM(DATADIR_M447, 32), DATA_MAKE_NUM(DATADIR_M447, 33), DATA_MAKE_NUM(DATADIR_M447, 34), DATA_MAKE_NUM(DATADIR_M447, 41), + DATA_MAKE_NUM(DATADIR_M447, 39), DATA_MAKE_NUM(DATADIR_M447, 38), DATA_MAKE_NUM(DATADIR_M447, 37), DATA_MAKE_NUM(DATADIR_M447, 36), + DATA_MAKE_NUM(DATADIR_M447, 40) } }; -const float lbl_1_rodata_3E4[] = { - 150.0f, 170.0f, 188.0f, - 169.0f, 164.0f, 140.0f, - 180.0f, 145.0f, 150.0f -}; +const float lbl_1_rodata_3E4[] = { 150.0f, 170.0f, 188.0f, 169.0f, 164.0f, 140.0f, 180.0f, 145.0f, 150.0f }; -const float lbl_1_rodata_408[][6] = { - { -150.0f, 0.0f, 350.0f, 0.0f, 90.0f, 0.0f }, - { 150.0f, 0.0f, 350.0f, 0.0f, -90.0f, 0.0f }, - { -150.0f, 0.0f, -200.0f, 0.0f, 90.0f, 0.0f }, - { 150.0f, 0.0f, -200.0f, 0.0f, -90.0f, 0.0f } -}; +const float lbl_1_rodata_408[][6] = { { -150.0f, 0.0f, 350.0f, 0.0f, 90.0f, 0.0f }, { 150.0f, 0.0f, 350.0f, 0.0f, -90.0f, 0.0f }, + { -150.0f, 0.0f, -200.0f, 0.0f, 90.0f, 0.0f }, { 150.0f, 0.0f, -200.0f, 0.0f, -90.0f, 0.0f } }; -const u8 lbl_1_rodata_468[][5] = { - { 5, 6, 7, 8, 9 }, - { 4, 5, 6, 7, 8 }, - { 3, 4, 5, 6, 7 }, - { 2, 3, 4, 5, 6 } -}; +const u8 lbl_1_rodata_468[][5] = { { 5, 6, 7, 8, 9 }, { 4, 5, 6, 7, 8 }, { 3, 4, 5, 6, 7 }, { 2, 3, 4, 5, 6 } }; -void fn_1_3F84(void) { +void fn_1_3F84(void) +{ s32 i; for (i = 0; i < 2; i++) { @@ -176,8 +91,9 @@ void fn_1_3F84(void) { } } -UnkM447Struct_04* fn_1_3FC4(s32 arg0) { - UnkM447Struct_04* temp_r3; +UnkM447Struct_04 *fn_1_3FC4(s32 arg0) +{ + UnkM447Struct_04 *temp_r3; s16 var_r28; s16 var_r27; s32 i; @@ -192,14 +108,16 @@ UnkM447Struct_04* fn_1_3FC4(s32 arg0) { temp_r3->unk08 = GWPlayerCfg[arg0].iscom; if (temp_r3->unk08 != 0) { var_r28 = 4; - } else { + } + else { var_r28 = GWPlayerCfg[arg0].pad_idx; } temp_r3->unk1A = var_r28; temp_r3->unk1C = (GWPlayerCfg[arg0].character == 10); if (temp_r3->unk1C != 0) { var_r27 = 8; - } else { + } + else { var_r27 = GWPlayerCfg[arg0].character; } temp_r3->unk18 = var_r27; @@ -228,8 +146,8 @@ UnkM447Struct_04* fn_1_3FC4(s32 arg0) { CharModelMotionDataClose(temp_r3->unk18); } if (temp_r3->unk1C != 0) { - temp_r3->unkB0 = (Process*) CharModelEffectNpcInit(temp_r3->unk68, temp_r3->unk6A[2], 1, 10); - temp_r3->unkB4 = (Process*) CharModelEffectNpcInit(temp_r3->unk68, temp_r3->unk6A[1], 0, 10); + temp_r3->unkB0 = (Process *)CharModelEffectNpcInit(temp_r3->unk68, temp_r3->unk6A[2], 1, 10); + temp_r3->unkB4 = (Process *)CharModelEffectNpcInit(temp_r3->unk68, temp_r3->unk6A[1], 0, 10); } CharModelLayerSetAll(2); temp_r3->unkAC = HuPrcChildCreate(fn_1_43F8, 102, 0x3000, 0, lbl_1_bss_4); @@ -243,7 +161,8 @@ UnkM447Struct_04* fn_1_3FC4(s32 arg0) { return temp_r3; } -void fn_1_4300(UnkM447Struct_04* arg0) { +void fn_1_4300(UnkM447Struct_04 *arg0) +{ s32 i; if (arg0->unkB0) { @@ -265,31 +184,23 @@ void fn_1_4300(UnkM447Struct_04* arg0) { HuMemDirectFree(arg0); } -void fn_1_43CC(UnkM447Struct_04* arg0, s32 arg1) { +void fn_1_43CC(UnkM447Struct_04 *arg0, s32 arg1) +{ arg0->unk24 = arg1; arg0->unk20 = 0; } -float fn_1_43DC(UnkM447Struct_04* arg0) { +float fn_1_43DC(UnkM447Struct_04 *arg0) +{ return lbl_1_rodata_3E4[arg0->unk18]; } -void (*lbl_1_data_1CC[])(UnkM447Struct_04*) = { - fn_1_4760, - fn_1_4764, - fn_1_5080, - fn_1_5298, - fn_1_5520, - fn_1_5760, - fn_1_5C78, - fn_1_671C, - fn_1_59D8, - fn_1_5AF0, - fn_1_5BD0 -}; +void (*lbl_1_data_1CC[])(UnkM447Struct_04 *) + = { fn_1_4760, fn_1_4764, fn_1_5080, fn_1_5298, fn_1_5520, fn_1_5760, fn_1_5C78, fn_1_671C, fn_1_59D8, fn_1_5AF0, fn_1_5BD0 }; -void fn_1_43F8(void) { - UnkM447Struct_04* temp_r31; +void fn_1_43F8(void) +{ + UnkM447Struct_04 *temp_r31; temp_r31 = HuPrcCurrentGet()->user_data; while (TRUE) { @@ -299,30 +210,35 @@ void fn_1_43F8(void) { } } -void fn_1_4444(UnkM447Struct_04* arg0) { +void fn_1_4444(UnkM447Struct_04 *arg0) +{ if (arg0->unk1C != 0) { arg0->unk68 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M447, 31)); - } else { + } + else { arg0->unk68 = CharModelCreate(arg0->unk18, 2); } Hu3DModelShadowSet(arg0->unk68); } -void fn_1_44B0(UnkM447Struct_04* arg0) { +void fn_1_44B0(UnkM447Struct_04 *arg0) +{ s32 i; if (arg0->unk1C != 0) { for (i = 0; i < 9; i++) { arg0->unk6A[i] = Hu3DJointMotionFile(arg0->unk68, lbl_1_rodata_2A0[arg0->unk18][i]); } - } else { + } + else { for (i = 0; i < 9; i++) { arg0->unk6A[i] = CharModelMotionCreate(arg0->unk18, lbl_1_rodata_2A0[arg0->unk18][i]); } } } -void fn_1_4590(UnkM447Struct_04* arg0) { +void fn_1_4590(UnkM447Struct_04 *arg0) +{ arg0->unk7C[0] = espEntry(DATA_MAKE_NUM(DATADIR_M447, 42), 0, 0); espPriSet(arg0->unk7C[0], arg0->unk00 * 10); arg0->unk7C[1] = espEntry(DATA_MAKE_NUM(DATADIR_M447, 43), 0, 0); @@ -332,29 +248,34 @@ void fn_1_4590(UnkM447Struct_04* arg0) { espTPLvlSet(arg0->unk7C[1], 0.8f); } -void fn_1_4638(UnkM447Struct_04* arg0) { +void fn_1_4638(UnkM447Struct_04 *arg0) +{ if (arg0->unk1C != 0) { Hu3DModelKill(arg0->unk68); - } else { + } + else { CharModelKill(arg0->unk18); } } -void fn_1_4680(UnkM447Struct_04* arg0) { +void fn_1_4680(UnkM447Struct_04 *arg0) +{ s32 i; if (arg0->unk1C != 0) { for (i = 0; i < 9; i++) { Hu3DMotionKill(arg0->unk6A[i]); } - } else { + } + else { for (i = 0; i < 9; i++) { CharModelMotionKill(arg0->unk18, arg0->unk6A[i]); } } } -void fn_1_470C(UnkM447Struct_04* arg0) { +void fn_1_470C(UnkM447Struct_04 *arg0) +{ s32 i; for (i = 0; i < 2; i++) { @@ -362,10 +283,10 @@ void fn_1_470C(UnkM447Struct_04* arg0) { } } -void fn_1_4760(UnkM447Struct_04* arg0) { -} +void fn_1_4760(UnkM447Struct_04 *arg0) { } -void fn_1_4764(UnkM447Struct_04* arg0) { +void fn_1_4764(UnkM447Struct_04 *arg0) +{ Vec sp8; float temp_f31; s32 var_r29; @@ -395,7 +316,8 @@ void fn_1_4764(UnkM447Struct_04* arg0) { break; } } - } else { + } + else { for (i = 0; i < 10; i++) { var_r29 = fn_1_A240() % 5; if (lbl_1_bss_10->unk54[var_r29] == 0) { @@ -416,9 +338,10 @@ void fn_1_4764(UnkM447Struct_04* arg0) { arg0->unk0C = 1; } } - } else { - arg0->unk44 = (float) HuPadStkX[arg0->unk1A] / 4; - arg0->unk4C = -(float) HuPadStkY[arg0->unk1A] / 4; + } + else { + arg0->unk44 = (float)HuPadStkX[arg0->unk1A] / 4; + arg0->unk4C = -(float)HuPadStkY[arg0->unk1A] / 4; } var_r28 = 0; var_r29 = fn_1_7984(arg0); @@ -433,7 +356,8 @@ void fn_1_4764(UnkM447Struct_04* arg0) { if (arg0->unk64-- <= 0) { var_r28 = 1; } - } else if (HuPadBtnDown[arg0->unk1A] & 0x100) { + } + else if (HuPadBtnDown[arg0->unk1A] & 0x100) { var_r28 = 1; } if (var_r28 != 0) { @@ -444,14 +368,16 @@ void fn_1_4764(UnkM447Struct_04* arg0) { arg0->unk10 = 0; } } - } else { + } + else { if (arg0->unk10 != 0) { arg0->unk10 = 0; arg0->unk0C = 0; } fn_1_7A6C(arg0); } - } else { + } + else { arg0->unk44 = 0.0f; arg0->unk48 = 0.0f; arg0->unk4C = 0.0f; @@ -461,7 +387,8 @@ void fn_1_4764(UnkM447Struct_04* arg0) { } } -void fn_1_4C84(UnkM447Struct_04* arg0) { +void fn_1_4C84(UnkM447Struct_04 *arg0) +{ s16 var_r30; var_r30 = 0; @@ -477,7 +404,8 @@ void fn_1_4C84(UnkM447Struct_04* arg0) { arg0->unk38 = fn_1_4F7C(arg0->unk38, atan2d(arg0->unk44, arg0->unk4C), 0.4f); if (8.0f <= arg0->unk40) { var_r30 = 2; - } else { + } + else { var_r30 = 1; } } @@ -500,7 +428,8 @@ void fn_1_4C84(UnkM447Struct_04* arg0) { } } -float fn_1_4F7C(float arg0, float arg1, float arg2) { +float fn_1_4F7C(float arg0, float arg1, float arg2) +{ float var_f31; float var_f30; @@ -518,7 +447,8 @@ float fn_1_4F7C(float arg0, float arg1, float arg2) { return var_f30; } -void fn_1_5080(UnkM447Struct_04* arg0) { +void fn_1_5080(UnkM447Struct_04 *arg0) +{ Vec sp14; Vec sp8; s32 var_r30; @@ -545,10 +475,11 @@ void fn_1_5080(UnkM447Struct_04* arg0) { } } -void fn_1_5298(UnkM447Struct_04* arg0) { +void fn_1_5298(UnkM447Struct_04 *arg0) +{ Vec sp8; s32 temp_r29; - UnkM447Struct_01* temp_r28; + UnkM447Struct_01 *temp_r28; s32 i; switch (arg0->unk20) { @@ -590,7 +521,8 @@ void fn_1_5298(UnkM447Struct_04* arg0) { arg0->unk1B++; arg0->unk14 = 1; fn_1_43CC(arg0, 5); - } else { + } + else { fn_1_8FF4(arg0->unkA8, 3); fn_1_43CC(arg0, 4); } @@ -602,18 +534,10 @@ void fn_1_5298(UnkM447Struct_04* arg0) { } } -const s32 lbl_1_rodata_4EC[] = { - 0x0000012A, - 0x0000016A, - 0x000001AA, - 0x000001EA, - 0x0000022A, - 0x0000026A, - 0x000002AA, - 0x000002EA -}; +const s32 lbl_1_rodata_4EC[] = { 0x0000012A, 0x0000016A, 0x000001AA, 0x000001EA, 0x0000022A, 0x0000026A, 0x000002AA, 0x000002EA }; -void fn_1_5520(UnkM447Struct_04* arg0) { +void fn_1_5520(UnkM447Struct_04 *arg0) +{ Vec sp8; float var_f31; float var_f30; @@ -640,7 +564,8 @@ void fn_1_5520(UnkM447Struct_04* arg0) { fn_1_7AA4(arg0, 1, 60); if (arg0->unk18 == 8) { HuAudFXPlay(0x42); - } else { + } + else { HuAudFXPlay(lbl_1_rodata_4EC[arg0->unk18]); } /* fallthrough */ @@ -652,7 +577,7 @@ void fn_1_5520(UnkM447Struct_04* arg0) { arg0->unk20 = 4; /* fallthrough */ case 4: - Hu3DModelAttrSet(arg0->unk68, 0x40000002); + Hu3DModelAttrSet(arg0->unk68, HU3D_MOTATTR_PAUSE); arg0->unk60 = 0; arg0->unk20 = 5; /* fallthrough */ @@ -680,7 +605,8 @@ void fn_1_5520(UnkM447Struct_04* arg0) { } } -void fn_1_5760(UnkM447Struct_04* arg0) { +void fn_1_5760(UnkM447Struct_04 *arg0) +{ Vec sp14; Vec sp8; s32 var_r30; @@ -708,39 +634,18 @@ void fn_1_5760(UnkM447Struct_04* arg0) { } } -const s32 lbl_1_rodata_510[] = { - 0x00000122, - 0x00000162, - 0x000001A2, - 0x000001E2, - 0x00000222, - 0x00000262, - 0x000002A2, - 0x000002E2, - 0x00000124, - 0x00000164, - 0x000001A4, - 0x000001E4, - 0x00000224, - 0x00000264, - 0x000002A4, - 0x000002E4, - 0x00000121, - 0x00000161, - 0x000001A1, - 0x000001E1, - 0x00000221, - 0x00000261, - 0x000002A1, - 0x000002E1 -}; +const s32 lbl_1_rodata_510[] = { 0x00000122, 0x00000162, 0x000001A2, 0x000001E2, 0x00000222, 0x00000262, 0x000002A2, 0x000002E2, 0x00000124, + 0x00000164, 0x000001A4, 0x000001E4, 0x00000224, 0x00000264, 0x000002A4, 0x000002E4, 0x00000121, 0x00000161, 0x000001A1, 0x000001E1, 0x00000221, + 0x00000261, 0x000002A1, 0x000002E1 }; -void fn_1_59D8(UnkM447Struct_04* arg0) { +void fn_1_59D8(UnkM447Struct_04 *arg0) +{ switch (arg0->unk20) { case 0: if (arg0->unk18 == 8) { HuAudFXPlay(0x40); - } else { + } + else { HuAudFXPlay(lbl_1_rodata_510[arg0->unk18]); } fn_1_71FC(arg0, 6, 0.0f, 8.0f, HU3D_MOTATTR_NONE); @@ -760,7 +665,8 @@ void fn_1_59D8(UnkM447Struct_04* arg0) { } } -void fn_1_5AF0(UnkM447Struct_04* arg0) { +void fn_1_5AF0(UnkM447Struct_04 *arg0) +{ switch (arg0->unk20) { case 0: if (arg0->unk1C != 0) { @@ -781,7 +687,8 @@ void fn_1_5AF0(UnkM447Struct_04* arg0) { } } -void fn_1_5BD0(UnkM447Struct_04* arg0) { +void fn_1_5BD0(UnkM447Struct_04 *arg0) +{ switch (arg0->unk20) { case 0: fn_1_71FC(arg0, 8, 0.0f, 8.0f, HU3D_MOTATTR_NONE); @@ -799,7 +706,8 @@ void fn_1_5BD0(UnkM447Struct_04* arg0) { } } -void fn_1_5C78(UnkM447Struct_04* arg0) { +void fn_1_5C78(UnkM447Struct_04 *arg0) +{ float temp_f22; float temp_f21; float temp_f25; @@ -811,7 +719,8 @@ void fn_1_5C78(UnkM447Struct_04* arg0) { temp_f21 = arg0->unk28.z - lbl_1_rodata_408[arg0->unk00][2] - 25.0f; if (ABS(temp_f22) < 5.0f && ABS(temp_f21) < 5.0f && 180.0f == arg0->unk38) { arg0->unk20 = 3; - } else { + } + else { arg0->unk20 = 1; } /* fallthrough */ @@ -843,7 +752,8 @@ void fn_1_5C78(UnkM447Struct_04* arg0) { } } -void fn_1_671C(UnkM447Struct_04* arg0) { +void fn_1_671C(UnkM447Struct_04 *arg0) +{ float var_f25; switch (arg0->unk20) { @@ -879,7 +789,8 @@ void fn_1_671C(UnkM447Struct_04* arg0) { } } -void fn_1_70BC(UnkM447Struct_04* arg0) { +void fn_1_70BC(UnkM447Struct_04 *arg0) +{ Vec sp14; Vec sp8; @@ -892,39 +803,37 @@ void fn_1_70BC(UnkM447Struct_04* arg0) { espPosSet(arg0->unk7C[0], sp8.x, sp8.y); } -void fn_1_717C(UnkM447Struct_04* arg0, s32 arg1, s32 arg2) { +void fn_1_717C(UnkM447Struct_04 *arg0, s32 arg1, s32 arg2) +{ if (arg0->unk1C != 0) { Hu3DMotionSet(arg0->unk68, arg0->unk6A[arg1]); - } else { + } + else { CharModelMotionSet(arg0->unk18, arg0->unk6A[arg1]); } Hu3DModelAttrSet(arg0->unk68, arg2); arg0->unkA4 = arg1; } -void fn_1_71FC(UnkM447Struct_04* arg0, s32 arg1, float arg2, float arg3, s32 arg4) { +void fn_1_71FC(UnkM447Struct_04 *arg0, s32 arg1, float arg2, float arg3, s32 arg4) +{ if (arg0->unk1C != 0) { Hu3DMotionShiftSet(arg0->unk68, arg0->unk6A[arg1], arg2, arg3, arg4); - } else { + } + else { CharModelMotionShiftSet(arg0->unk18, arg0->unk6A[arg1], arg2, arg3, arg4); } arg0->unkA4 = arg1; } -float lbl_1_data_21C[][4] = { - { -700.0f, -700.0f, -700.0f, 700.0f }, - { 700.0f, -700.0f, 700.0f, 700.0f }, - { -800.0f, 450.0f, 800.0f, 450.0f }, - { -700.0f, -700.0f, 700.0f, -700.0f } -}; +float lbl_1_data_21C[][4] = { { -700.0f, -700.0f, -700.0f, 700.0f }, { 700.0f, -700.0f, 700.0f, 700.0f }, { -800.0f, 450.0f, 800.0f, 450.0f }, + { -700.0f, -700.0f, 700.0f, -700.0f } }; // Vec[]? -float lbl_1_data_25C[][3] = { - { -700.0f, -700.0f, 200.0f }, - { 700.0f, -700.0f, 200.0f } -}; +float lbl_1_data_25C[][3] = { { -700.0f, -700.0f, 200.0f }, { 700.0f, -700.0f, 200.0f } }; -void fn_1_72A8(UnkM447Struct_04* arg0) { +void fn_1_72A8(UnkM447Struct_04 *arg0) +{ float sp28[3]; // Vec? float sp18[4]; float spC[3]; // Vec? @@ -943,13 +852,16 @@ void fn_1_72A8(UnkM447Struct_04* arg0) { if (i / 2 == 0) { if (lbl_1_data_21C[i][0] < 0.0f) { arg0->unk28.x = sp28[2] + lbl_1_data_21C[i][0]; - } else { + } + else { arg0->unk28.x = lbl_1_data_21C[i][0] - sp28[2]; } - } else { + } + else { if (lbl_1_data_21C[i][1] < 0.0f) { arg0->unk28.z = sp28[2] + lbl_1_data_21C[i][1]; - } else { + } + else { arg0->unk28.z = lbl_1_data_21C[i][1] - sp28[2]; } } @@ -978,10 +890,11 @@ void fn_1_72A8(UnkM447Struct_04* arg0) { } } -void fn_1_7688(UnkM447Struct_04* arg0) { +void fn_1_7688(UnkM447Struct_04 *arg0) +{ float sp14[3]; // Vec? float sp8[3]; // Vec? - UnkM447Struct_04* temp_r30; + UnkM447Struct_04 *temp_r30; s32 var_r26; s32 i; @@ -1027,7 +940,8 @@ void fn_1_7688(UnkM447Struct_04* arg0) { } } -void fn_1_78A8(UnkM447Struct_04* arg0) { +void fn_1_78A8(UnkM447Struct_04 *arg0) +{ float sp20[3]; // Vec? float sp14[3]; // Vec? Vec sp8; @@ -1052,7 +966,8 @@ void fn_1_78A8(UnkM447Struct_04* arg0) { } } -s32 fn_1_7984(UnkM447Struct_04* arg0) { +s32 fn_1_7984(UnkM447Struct_04 *arg0) +{ float sp20[3]; // Vec? float sp14[3]; // Vec? Vec sp8; @@ -1073,17 +988,20 @@ s32 fn_1_7984(UnkM447Struct_04* arg0) { return 5; } -void fn_1_7A34(UnkM447Struct_04* arg0) { +void fn_1_7A34(UnkM447Struct_04 *arg0) +{ espDispOn(arg0->unk7C[1]); espDispOn(arg0->unk7C[0]); } -void fn_1_7A6C(UnkM447Struct_04* arg0) { +void fn_1_7A6C(UnkM447Struct_04 *arg0) +{ espDispOff(arg0->unk7C[1]); espDispOff(arg0->unk7C[0]); } -void fn_1_7AA4(UnkM447Struct_04* arg0, s32 arg1, s32 arg2) { +void fn_1_7AA4(UnkM447Struct_04 *arg0, s32 arg1, s32 arg2) +{ if (arg0->unk1C == 0) { switch (arg1) { case 0: diff --git a/src/REL/m447dll/stage.c b/src/REL/m447dll/stage.c index ea976882..4a71f38a 100755 --- a/src/REL/m447dll/stage.c +++ b/src/REL/m447dll/stage.c @@ -17,61 +17,37 @@ typedef struct { } UnkM447Struct_07; // Size 0x1C void fn_1_1FF4(void); -void fn_1_2164(UnkM447Struct_06* arg0); -void fn_1_231C(UnkM447Struct_06* arg0); -void fn_1_236C(UnkM447Struct_06* arg0); -void fn_1_2490(UnkM447Struct_06* arg0); -void fn_1_2494(UnkM447Struct_06* arg0); -void fn_1_25E4(UnkM447Struct_06* arg0); -void fn_1_2700(UnkM447Struct_06* arg0); -void fn_1_2A3C(UnkM447Struct_06* arg0); -void fn_1_2D08(UnkM447Struct_06* arg0); -void fn_1_2DAC(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_2164(UnkM447Struct_06 *arg0); +void fn_1_231C(UnkM447Struct_06 *arg0); +void fn_1_236C(UnkM447Struct_06 *arg0); +void fn_1_2490(UnkM447Struct_06 *arg0); +void fn_1_2494(UnkM447Struct_06 *arg0); +void fn_1_25E4(UnkM447Struct_06 *arg0); +void fn_1_2700(UnkM447Struct_06 *arg0); +void fn_1_2A3C(UnkM447Struct_06 *arg0); +void fn_1_2D08(UnkM447Struct_06 *arg0); +void fn_1_2DAC(ModelData *model, ParticleData *particle, Mtx matrix); -const s32 lbl_1_rodata_138[] = { - DATA_MAKE_NUM(DATADIR_M447, 0), - DATA_MAKE_NUM(DATADIR_M447, 2), - DATA_MAKE_NUM(DATADIR_M447, 3), - DATA_MAKE_NUM(DATADIR_M447, 1), - DATA_MAKE_NUM(DATADIR_M447, 1), - DATA_MAKE_NUM(DATADIR_M447, 1), - DATA_MAKE_NUM(DATADIR_M447, 1), - DATA_MAKE_NUM(DATADIR_M447, 1), - DATA_MAKE_NUM(DATADIR_M447, 24), - DATA_MAKE_NUM(DATADIR_M447, 24), - DATA_MAKE_NUM(DATADIR_M447, 24), - DATA_MAKE_NUM(DATADIR_M447, 24), - DATA_MAKE_NUM(DATADIR_M447, 24), - DATA_MAKE_NUM(DATADIR_M447, 25), - DATA_MAKE_NUM(DATADIR_M447, 26), - DATA_MAKE_NUM(DATADIR_M447, 28), - DATA_MAKE_NUM(DATADIR_M447, 29), - DATA_MAKE_NUM(DATADIR_M447, 29), - DATA_MAKE_NUM(DATADIR_M447, 29), - DATA_MAKE_NUM(DATADIR_M447, 29), - DATA_MAKE_NUM(DATADIR_M447, 29), - 0 -}; +const s32 lbl_1_rodata_138[] = { DATA_MAKE_NUM(DATADIR_M447, 0), DATA_MAKE_NUM(DATADIR_M447, 2), DATA_MAKE_NUM(DATADIR_M447, 3), + DATA_MAKE_NUM(DATADIR_M447, 1), DATA_MAKE_NUM(DATADIR_M447, 1), DATA_MAKE_NUM(DATADIR_M447, 1), DATA_MAKE_NUM(DATADIR_M447, 1), + DATA_MAKE_NUM(DATADIR_M447, 1), DATA_MAKE_NUM(DATADIR_M447, 24), DATA_MAKE_NUM(DATADIR_M447, 24), DATA_MAKE_NUM(DATADIR_M447, 24), + DATA_MAKE_NUM(DATADIR_M447, 24), DATA_MAKE_NUM(DATADIR_M447, 24), DATA_MAKE_NUM(DATADIR_M447, 25), DATA_MAKE_NUM(DATADIR_M447, 26), + DATA_MAKE_NUM(DATADIR_M447, 28), DATA_MAKE_NUM(DATADIR_M447, 29), DATA_MAKE_NUM(DATADIR_M447, 29), DATA_MAKE_NUM(DATADIR_M447, 29), + DATA_MAKE_NUM(DATADIR_M447, 29), DATA_MAKE_NUM(DATADIR_M447, 29), 0 }; -const Vec lbl_1_rodata_190[] = { - { 0.0f, 0.1f, 0.0f }, - { 400.0f, 0.1f, 0.0f }, - { -400.0f, 0.1f, 0.0f }, - { 200.0f, 0.1f, -400.0f }, - { -200.0f, 0.1f, -400.0f } -}; +const Vec lbl_1_rodata_190[] + = { { 0.0f, 0.1f, 0.0f }, { 400.0f, 0.1f, 0.0f }, { -400.0f, 0.1f, 0.0f }, { 200.0f, 0.1f, -400.0f }, { -200.0f, 0.1f, -400.0f } }; -UnkM447Struct_07 lbl_1_data_A0[] = { - { { 0.0f, 2500.0f, 0.0f }, { 0.0f, -0.5f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }, - { { 0.0f, -100.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }, - { { 400.0f, -100.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }, - { { -400.0f, -100.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }, - { { 200.0f, -100.0f, -400.0f }, { 0.0f, 1.0f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }, - { { -200.0f, -100.0f, -400.0f }, { 0.0f, 1.0f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } } -}; +UnkM447Struct_07 lbl_1_data_A0[] = { { { 0.0f, 2500.0f, 0.0f }, { 0.0f, -0.5f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { 0.0f, -100.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { 400.0f, -100.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { -400.0f, -100.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { 200.0f, -100.0f, -400.0f }, { 0.0f, 1.0f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { -200.0f, -100.0f, -400.0f }, { 0.0f, 1.0f, 0.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } } }; -UnkM447Struct_06* fn_1_1D90(void) { - UnkM447Struct_06* temp_r3; +UnkM447Struct_06 *fn_1_1D90(void) +{ + UnkM447Struct_06 *temp_r3; s32 i; temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r3), MEMORY_DEFAULT_NUM); @@ -92,26 +68,31 @@ UnkM447Struct_06* fn_1_1D90(void) { return temp_r3; } -void fn_1_1E70(UnkM447Struct_06* arg0) { +void fn_1_1E70(UnkM447Struct_06 *arg0) +{ fn_1_231C(arg0); HuPrcKill(arg0->unk7C); HuMemDirectFree(arg0); } -void fn_1_1EB0(UnkM447Struct_06* arg0, s32 arg1) { +void fn_1_1EB0(UnkM447Struct_06 *arg0, s32 arg1) +{ arg0->unk38 = arg1; arg0->unk3C = 0; } -BOOL fn_1_1EC0(UnkM447Struct_06* arg0) { +BOOL fn_1_1EC0(UnkM447Struct_06 *arg0) +{ return arg0->unk38 != 0; } -void fn_1_1ED4(s32 arg0, Vec* arg1) { +void fn_1_1ED4(s32 arg0, Vec *arg1) +{ *arg1 = lbl_1_rodata_190[arg0]; } -void fn_1_1F00(UnkM447Struct_06* arg0, s32 arg1) { +void fn_1_1F00(UnkM447Struct_06 *arg0, s32 arg1) +{ s16 temp_r31; temp_r31 = arg0->unk00[arg1 + 3]; @@ -121,7 +102,8 @@ void fn_1_1F00(UnkM447Struct_06* arg0, s32 arg1) { arg0->unk54[arg1] = 1; } -s32 fn_1_1F9C(UnkM447Struct_06* arg0) { +s32 fn_1_1F9C(UnkM447Struct_06 *arg0) +{ s32 var_r30; s32 i; @@ -134,22 +116,20 @@ s32 fn_1_1F9C(UnkM447Struct_06* arg0) { return var_r30; } -void fn_1_1FEC(UnkM447Struct_06* arg0, s32 arg1) { +void fn_1_1FEC(UnkM447Struct_06 *arg0, s32 arg1) +{ arg0->unk44 = arg1; } -void (*lbl_1_data_148[])(UnkM447Struct_06*) = { - fn_1_2490, - fn_1_2494, - fn_1_25E4, - fn_1_2700, - fn_1_2A3C, +void (*lbl_1_data_148[])(UnkM447Struct_06 *) = { + fn_1_2490, fn_1_2494, fn_1_25E4, fn_1_2700, fn_1_2A3C, NULL // padding? }; -void fn_1_1FF4(void) { +void fn_1_1FF4(void) +{ Vec sp8; - UnkM447Struct_06* temp_r31; + UnkM447Struct_06 *temp_r31; s16 temp_r29; s32 i; @@ -162,14 +142,15 @@ void fn_1_1FF4(void) { temp_r29 = temp_r31->unk00[i + 3]; if (Hu3DMotionEndCheck(temp_r29)) { Hu3DMotionStartEndSet(temp_r29, 20.0f, 40.0f); - Hu3DModelAttrSet(temp_r29, 0x40000001); + Hu3DModelAttrSet(temp_r29, HU3D_MOTATTR_LOOP); } } if (temp_r31->unk44 > 0) { fn_1_351C(&sp8); if (--temp_r31->unk44 == 0) { sp8.y = 300.0f; - } else { + } + else { sp8.y = fn_1_A240() % 20 - 10 + 300.0f; } fn_1_3540(&sp8); @@ -178,7 +159,8 @@ void fn_1_1FF4(void) { } } -void fn_1_2164(UnkM447Struct_06* arg0) { +void fn_1_2164(UnkM447Struct_06 *arg0) +{ s32 i; for (i = 0; i <= 20; i++) { @@ -190,22 +172,23 @@ void fn_1_2164(UnkM447Struct_06* arg0) { Hu3DParticleHookSet(arg0->unk00[21], fn_1_2DAC); Hu3DParticleBlendModeSet(arg0->unk00[21], 1); Hu3DModelLayerSet(arg0->unk00[21], 0); - Hu3DModelAttrSet(arg0->unk00[21], 1); + Hu3DModelAttrSet(arg0->unk00[21], HU3D_ATTR_DISPOFF); Hu3DModelShadowMapSet(arg0->unk00[2]); for (i = 0; i < 5; i++) { Hu3DModelPosSet(arg0->unk00[i + 3], lbl_1_rodata_190[i].x, lbl_1_rodata_190[i].y, lbl_1_rodata_190[i].z); - Hu3DModelAttrSet(arg0->unk00[i + 3], 0x40000002); + Hu3DModelAttrSet(arg0->unk00[i + 3], HU3D_MOTATTR_PAUSE); Hu3DModelShadowMapSet(arg0->unk00[i + 3]); } for (i = 8; i <= 15; i++) { - Hu3DModelAttrSet(arg0->unk00[i], 1); + Hu3DModelAttrSet(arg0->unk00[i], HU3D_ATTR_DISPOFF); } for (i = 16; i <= 20; i++) { - Hu3DModelAttrSet(arg0->unk00[i], 1); + Hu3DModelAttrSet(arg0->unk00[i], HU3D_ATTR_DISPOFF); } } -void fn_1_231C(UnkM447Struct_06* arg0) { +void fn_1_231C(UnkM447Struct_06 *arg0) +{ s32 i; for (i = 0; i < 22; i++) { @@ -213,7 +196,8 @@ void fn_1_231C(UnkM447Struct_06* arg0) { } } -void fn_1_236C(UnkM447Struct_06* arg0) { +void fn_1_236C(UnkM447Struct_06 *arg0) +{ s32 i; Hu3DLighInit(); @@ -237,10 +221,10 @@ void fn_1_236C(UnkM447Struct_06* arg0) { } } -void fn_1_2490(UnkM447Struct_06* arg0) { -} +void fn_1_2490(UnkM447Struct_06 *arg0) { } -void fn_1_2494(UnkM447Struct_06* arg0) { +void fn_1_2494(UnkM447Struct_06 *arg0) +{ s32 i; switch (arg0->unk3C) { @@ -250,8 +234,8 @@ void fn_1_2494(UnkM447Struct_06* arg0) { case 1: Hu3DModelPosSet(arg0->unk00[14], 0.0f, 0.0f, 0.0f); Hu3DMotionTimeSet(arg0->unk00[14], 0.0f); - Hu3DModelAttrReset(arg0->unk00[14], 1); - Hu3DModelAttrSet(arg0->unk00[14], 0x40000001); + Hu3DModelAttrReset(arg0->unk00[14], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->unk00[14], HU3D_MOTATTR_LOOP); arg0->unk40 = 0; arg0->unk3C = 2; HuAudFXPlay(0x77E); @@ -265,14 +249,15 @@ void fn_1_2494(UnkM447Struct_06* arg0) { } break; case 3: - Hu3DModelAttrSet(arg0->unk00[14], 1); + Hu3DModelAttrSet(arg0->unk00[14], HU3D_ATTR_DISPOFF); arg0->unk38 = 0; arg0->unk3C = 0; break; } } -void fn_1_25E4(UnkM447Struct_06* arg0) { +void fn_1_25E4(UnkM447Struct_06 *arg0) +{ switch (arg0->unk3C) { case 0: arg0->unk3C = 1; @@ -281,8 +266,8 @@ void fn_1_25E4(UnkM447Struct_06* arg0) { fn_1_2D08(arg0); Hu3DModelPosSet(arg0->unk00[15], 0.0f, 0.0f, 0.0f); Hu3DMotionTimeSet(arg0->unk00[15], 0.0f); - Hu3DModelAttrReset(arg0->unk00[15], 1); - Hu3DModelAttrSet(arg0->unk00[15], 0x40000001); + Hu3DModelAttrReset(arg0->unk00[15], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->unk00[15], HU3D_MOTATTR_LOOP); arg0->unk40 = 0; arg0->unk3C = 2; HuAudFXPlay(0x782); @@ -293,14 +278,15 @@ void fn_1_25E4(UnkM447Struct_06* arg0) { } break; case 3: - Hu3DModelAttrSet(arg0->unk00[15], 1); + Hu3DModelAttrSet(arg0->unk00[15], HU3D_ATTR_DISPOFF); arg0->unk38 = 0; arg0->unk3C = 0; break; } } -void fn_1_2700(UnkM447Struct_06* arg0) { +void fn_1_2700(UnkM447Struct_06 *arg0) +{ float temp_f31; s16 temp_r29; s32 i; @@ -323,7 +309,7 @@ void fn_1_2700(UnkM447Struct_06* arg0) { } for (i = 0; i < 5; i++) { Hu3DMotionTimeSet(arg0->unk00[i + 3], 0.0f); - Hu3DModelAttrSet(arg0->unk00[i + 3], 0x40000002); + Hu3DModelAttrSet(arg0->unk00[i + 3], HU3D_MOTATTR_PAUSE); arg0->unk54[i] = 0; arg0->unk68[i] = 0; } @@ -334,8 +320,9 @@ void fn_1_2700(UnkM447Struct_06* arg0) { temp_r29 = arg0->unk00[i + 8]; Hu3DModelPosSet(temp_r29, lbl_1_rodata_190[i].x, lbl_1_rodata_190[i].y, lbl_1_rodata_190[i].z); Hu3DMotionTimeSet(temp_r29, 0.0f); - Hu3DModelAttrReset(temp_r29, 1); - Hu3DGLightColorSet(arg0->unk2C[i + 1], lbl_1_data_A0[i + 1].unk18.r, lbl_1_data_A0[i + 1].unk18.g, lbl_1_data_A0[i + 1].unk18.b, lbl_1_data_A0[i + 1].unk18.a); + Hu3DModelAttrReset(temp_r29, HU3D_ATTR_DISPOFF); + Hu3DGLightColorSet(arg0->unk2C[i + 1], lbl_1_data_A0[i + 1].unk18.r, lbl_1_data_A0[i + 1].unk18.g, lbl_1_data_A0[i + 1].unk18.b, + lbl_1_data_A0[i + 1].unk18.a); } arg0->unk40 = 0; arg0->unk3C = 3; @@ -344,7 +331,7 @@ void fn_1_2700(UnkM447Struct_06* arg0) { case 3: if (arg0->unk40++ >= 60) { for (i = 0; i < 5; i++) { - Hu3DModelAttrSet(arg0->unk00[i + 8], 1); + Hu3DModelAttrSet(arg0->unk00[i + 8], HU3D_ATTR_DISPOFF); Hu3DGLightColorSet(arg0->unk2C[i + 1], 0, 0, 0, 0); } arg0->unk3C = 4; @@ -357,7 +344,8 @@ void fn_1_2700(UnkM447Struct_06* arg0) { } } -void fn_1_2A3C(UnkM447Struct_06* arg0) { +void fn_1_2A3C(UnkM447Struct_06 *arg0) +{ float temp_f31; s16 temp_r29; s32 i; @@ -390,7 +378,7 @@ void fn_1_2A3C(UnkM447Struct_06* arg0) { Hu3DModelPosSet(temp_r29, lbl_1_rodata_190[i].x, lbl_1_rodata_190[i].y, lbl_1_rodata_190[i].z); Hu3DMotionTimeSet(temp_r29, 0.0f); Hu3DModelAttrReset(temp_r29, 0x40000001); - Hu3DModelAttrReset(temp_r29, 1); + Hu3DModelAttrReset(temp_r29, HU3D_ATTR_DISPOFF); } arg0->unk40 = 0; arg0->unk3C = 3; @@ -398,7 +386,7 @@ void fn_1_2A3C(UnkM447Struct_06* arg0) { case 3: if (arg0->unk40++ >= 20) { for (i = 0; i < 5; i++) { - Hu3DModelAttrSet(arg0->unk00[i + 16], 1); + Hu3DModelAttrSet(arg0->unk00[i + 16], HU3D_ATTR_DISPOFF); } arg0->unk3C = 4; break; @@ -411,9 +399,10 @@ void fn_1_2A3C(UnkM447Struct_06* arg0) { } } -void fn_1_2D08(UnkM447Struct_06* arg0) { - ModelData* temp_r30; - ParticleData* temp_r31; +void fn_1_2D08(UnkM447Struct_06 *arg0) +{ + ModelData *temp_r30; + ParticleData *temp_r31; temp_r30 = &Hu3DData[arg0->unk00[21]]; temp_r31 = temp_r30->unk_120; @@ -426,9 +415,10 @@ void fn_1_2D08(UnkM447Struct_06* arg0) { HuAudFXPlay(0x780); } -void fn_1_2DAC(ModelData* model, ParticleData* particle, Mtx matrix) { +void fn_1_2DAC(ModelData *model, ParticleData *particle, Mtx matrix) +{ GXColor sp8 = { 0xFF, 0xFF, 0xFF, 0xFF }; - HsfanimStruct01* var_r31; + HsfanimStruct01 *var_r31; s32 i; if (particle->unk_02 == 0) { diff --git a/src/REL/m448Dll/main.c b/src/REL/m448Dll/main.c index 8ea12e5f..86a0d2a5 100755 --- a/src/REL/m448Dll/main.c +++ b/src/REL/m448Dll/main.c @@ -64,30 +64,30 @@ typedef struct { void fn_1_A0(void); void fn_1_38C(void); void fn_1_478(void); -void fn_1_4FC(ModelData* model, Mtx matrix); -void fn_1_1338(omObjData* arg0); -void fn_1_4310(omObjData* arg0); +void fn_1_4FC(ModelData *model, Mtx matrix); +void fn_1_1338(omObjData *arg0); +void fn_1_4310(omObjData *arg0); void fn_1_6DAC(void); -void fn_1_7148(omObjData* arg0); -void fn_1_7DC4(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_81C0(omObjData* arg0); -void fn_1_8DD0(omObjData* arg0); -void fn_1_9508(omObjData* arg0); +void fn_1_7148(omObjData *arg0); +void fn_1_7DC4(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_81C0(omObjData *arg0); +void fn_1_8DD0(omObjData *arg0); +void fn_1_9508(omObjData *arg0); void ObjectSetup(void); -void fn_1_9B00(omObjData* arg0); +void fn_1_9B00(omObjData *arg0); UnkM448Struct_01 lbl_1_bss_16C[20]; UnkM448Struct_02 lbl_1_bss_9C[13]; -omObjData* lbl_1_bss_98; -omObjData* lbl_1_bss_94; -omObjData* lbl_1_bss_8C[2]; -omObjData* lbl_1_bss_88; +omObjData *lbl_1_bss_98; +omObjData *lbl_1_bss_94; +omObjData *lbl_1_bss_8C[2]; +omObjData *lbl_1_bss_88; s32 lbl_1_bss_84; s32 lbl_1_bss_80; s32 lbl_1_bss_7C; s32 lbl_1_bss_78; s32 lbl_1_bss_74; -Process* lbl_1_bss_70; +Process *lbl_1_bss_70; s32 lbl_1_bss_6C; s32 lbl_1_bss_68; s32 lbl_1_bss_64; @@ -97,8 +97,8 @@ char lbl_1_bss_3C_pad[4]; float lbl_1_bss_38; s32 lbl_1_bss_34; char lbl_1_bss_30_pad[4]; -void* lbl_1_bss_2C; -void* lbl_1_bss_28; +void *lbl_1_bss_2C; +void *lbl_1_bss_28; s32 lbl_1_bss_24; s32 lbl_1_bss_20; s32 lbl_1_bss_1C; @@ -109,48 +109,20 @@ char lbl_1_bss_8_pad[8]; s32 lbl_1_bss_4; s32 lbl_1_bss_0; -s32 lbl_1_data_0[] = { - DATA_MAKE_NUM(DATADIR_MGCONST, 23), - DATA_MAKE_NUM(DATADIR_MGCONST, 22), - DATA_MAKE_NUM(DATADIR_MGCONST, 51), - DATA_MAKE_NUM(DATADIR_MGCONST, 51), - DATADIR_MGCONST, - DATA_MAKE_NUM(DATADIR_MGCONST, 23), - DATA_MAKE_NUM(DATADIR_MGCONST, 22), - DATA_MAKE_NUM(DATADIR_MGCONST, 51), - DATA_MAKE_NUM(DATADIR_MGCONST, 51), - DATADIR_MGCONST -}; +s32 lbl_1_data_0[] = { DATA_MAKE_NUM(DATADIR_MGCONST, 23), DATA_MAKE_NUM(DATADIR_MGCONST, 22), DATA_MAKE_NUM(DATADIR_MGCONST, 51), + DATA_MAKE_NUM(DATADIR_MGCONST, 51), DATADIR_MGCONST, DATA_MAKE_NUM(DATADIR_MGCONST, 23), DATA_MAKE_NUM(DATADIR_MGCONST, 22), + DATA_MAKE_NUM(DATADIR_MGCONST, 51), DATA_MAKE_NUM(DATADIR_MGCONST, 51), DATADIR_MGCONST }; s32 lbl_1_data_28[10] = { 0 }; -s32 lbl_1_data_50[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 5), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 8), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 10), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 9), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 26), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) -}; +s32 lbl_1_data_50[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 5), DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), DATA_MAKE_NUM(DATADIR_MARIOMOT, 8), DATA_MAKE_NUM(DATADIR_MARIOMOT, 10), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 9), DATA_MAKE_NUM(DATADIR_MARIOMOT, 26), DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) }; -s32 lbl_1_data_7C[] = { - DATA_MAKE_NUM(DATADIR_M448, 19), - DATA_MAKE_NUM(DATADIR_M448, 20), - DATA_MAKE_NUM(DATADIR_M448, 21), - DATA_MAKE_NUM(DATADIR_M448, 24), - DATA_MAKE_NUM(DATADIR_M448, 25), - DATA_MAKE_NUM(DATADIR_M448, 26), - DATA_MAKE_NUM(DATADIR_M448, 27), - DATA_MAKE_NUM(DATADIR_M448, 28), - DATA_MAKE_NUM(DATADIR_M448, 19), - DATA_MAKE_NUM(DATADIR_M448, 22), - DATA_MAKE_NUM(DATADIR_M448, 23) -}; +s32 lbl_1_data_7C[] = { DATA_MAKE_NUM(DATADIR_M448, 19), DATA_MAKE_NUM(DATADIR_M448, 20), DATA_MAKE_NUM(DATADIR_M448, 21), + DATA_MAKE_NUM(DATADIR_M448, 24), DATA_MAKE_NUM(DATADIR_M448, 25), DATA_MAKE_NUM(DATADIR_M448, 26), DATA_MAKE_NUM(DATADIR_M448, 27), + DATA_MAKE_NUM(DATADIR_M448, 28), DATA_MAKE_NUM(DATADIR_M448, 19), DATA_MAKE_NUM(DATADIR_M448, 22), DATA_MAKE_NUM(DATADIR_M448, 23) }; u8 lbl_1_data_A8[11] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1 }; u8 lbl_1_data_B3[11] = { 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1 }; @@ -168,14 +140,12 @@ s32 lbl_1_data_1A4[2] = { 0 }; s32 lbl_1_data_1AC[2] = { 0 }; s32 lbl_1_data_1B4[2] = { 0 }; -float lbl_1_data_1BC[][4] = { - { -90.0f, 2.0f, 525.0f, 180.0f }, - { 90.0f, 2.0f, 525.0f, 180.0f } -}; +float lbl_1_data_1BC[][4] = { { -90.0f, 2.0f, 525.0f, 180.0f }, { 90.0f, 2.0f, 525.0f, 180.0f } }; float lbl_1_data_1DC[] = { 0.0f, 0.0f, 0.0f, 1.0f }; -void fn_1_A0(void) { +void fn_1_A0(void) +{ Center.x += 10.0 * (((HuPadBtn[0] & 2) != 0) - ((HuPadBtn[0] & 1) != 0)); Center.z -= 10.0 * (((HuPadBtn[0] & 8) != 0) - ((HuPadBtn[0] & 4) != 0)); Center.y += 30.0 * ((HuPadTrigL[0] - HuPadTrigR[0]) / 128.0); @@ -184,7 +154,8 @@ void fn_1_A0(void) { CRot.x += HuPadSubStkY[0] / -16.0; } -void fn_1_38C(void) { +void fn_1_38C(void) +{ lbl_1_bss_64 = GXGetTexBufferSize(640, 480, GX_TF_RGB565, GX_FALSE, 0); lbl_1_bss_60 = GXGetTexBufferSize(160, 120, GX_TF_RGB565, GX_FALSE, 0); lbl_1_bss_28 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_64, MEMORY_DEFAULT_NUM); @@ -193,7 +164,8 @@ void fn_1_38C(void) { memset(lbl_1_bss_2C, 0, lbl_1_bss_60); } -void fn_1_478(void) { +void fn_1_478(void) +{ if (lbl_1_bss_28) { HuMemDirectFree(lbl_1_bss_28); } @@ -204,7 +176,8 @@ void fn_1_478(void) { lbl_1_bss_2C = NULL; } -void fn_1_4FC(ModelData* model, Mtx matrix) { +void fn_1_4FC(ModelData *model, Mtx matrix) +{ Mtx spC8; Mtx sp98; float temp_f31; @@ -212,10 +185,10 @@ void fn_1_4FC(ModelData* model, Mtx matrix) { float temp_f30; float temp_f28; s32 sp10; - void* spC; + void *spC; s32 var_r29; s32 var_r20; - void* var_r28; + void *var_r28; s32 i; s32 j; @@ -264,10 +237,7 @@ void fn_1_4FC(ModelData* model, Mtx matrix) { if (sp70[i] > 0.0f) { GXSetTexCopySrc(0, 0, 640.0f / sp70[i], 480.0f / sp70[i]); GXSetTexCopyDst( - (sp84[i] == 0 ? 640 : 320) / sp70[i], - (sp84[i] == 0 ? 480 : 240) / sp70[i], - GX_TF_RGB565, - sp84[i] == 0 ? GX_FALSE : GX_TRUE); + (sp84[i] == 0 ? 640 : 320) / sp70[i], (sp84[i] == 0 ? 480 : 240) / sp70[i], GX_TF_RGB565, sp84[i] == 0 ? GX_FALSE : GX_TRUE); GXSetCopyClear(BGColor, 0xFFFFFF); GXCopyTex(var_r28, GX_FALSE); DCFlushRange(var_r28, var_r20); @@ -294,13 +264,15 @@ void fn_1_4FC(ModelData* model, Mtx matrix) { GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_RASC, GX_CC_TEXC, GX_CC_ZERO); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ZERO, GX_LO_NOOP); - } else if (i == 4) { + } + else if (i == 4) { GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_SUBHALF, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetBlendMode(GX_BM_BLEND, GX_BL_ONE, GX_BL_ONE, GX_LO_NOOP); - } else { + } + else { GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_RASC, GX_CC_TEXC, GX_CC_ZERO); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ZERO, GX_LO_NOOP); @@ -313,28 +285,16 @@ void fn_1_4FC(ModelData* model, Mtx matrix) { temp_f28 += 0.5 * (1.0f / (640.0f / sp5C[i])); temp_f31 = temp_f30 = temp_f29 = temp_f28 = 0.0f; GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32( - temp_f31 + 1.25 * (0.0f / sp48[i]), - temp_f30 + 1.25 * (0.0f / sp48[i]), - 0.0f); + GXPosition3f32(temp_f31 + 1.25 * (0.0f / sp48[i]), temp_f30 + 1.25 * (0.0f / sp48[i]), 0.0f); GXColor4u8(0xFF, 0xFF, 0xFF, var_r29); GXPosition2f32(temp_f29 + 0.0, temp_f28 + 0.0); - GXPosition3f32( - temp_f31 + 1.25 * (1.0f / sp48[i]), - temp_f30 + 1.25 * (0.0f / sp48[i]), - 0.0f); + GXPosition3f32(temp_f31 + 1.25 * (1.0f / sp48[i]), temp_f30 + 1.25 * (0.0f / sp48[i]), 0.0f); GXColor4u8(0xFF, 0xFF, 0xFF, var_r29); GXPosition2f32(temp_f29 + 1.25, temp_f28 + 0.0); - GXPosition3f32( - temp_f31 + 1.25 * (1.0f / sp48[i]), - temp_f30 + 1.25 * (1.0f / sp48[i]), - 0.0f); + GXPosition3f32(temp_f31 + 1.25 * (1.0f / sp48[i]), temp_f30 + 1.25 * (1.0f / sp48[i]), 0.0f); GXColor4u8(0xFF, 0xFF, 0xFF, var_r29); GXPosition2f32(temp_f29 + 1.25, temp_f28 + 1.25); - GXPosition3f32( - temp_f31 + 1.25 * (0.0f / sp48[i]), - temp_f30 + 1.25 * (1.0f / sp48[i]), - 0.0f); + GXPosition3f32(temp_f31 + 1.25 * (0.0f / sp48[i]), temp_f30 + 1.25 * (1.0f / sp48[i]), 0.0f); GXColor4u8(0xFF, 0xFF, 0xFF, var_r29); GXPosition2f32(temp_f29 + 0.0, temp_f28 + 1.25); GXEnd(); @@ -345,16 +305,17 @@ void fn_1_4FC(ModelData* model, Mtx matrix) { const Vec lbl_1_rodata_100 = { 0.0f, 0.0f, 0.0f }; -void fn_1_1338(omObjData* arg0) { +void fn_1_1338(omObjData *arg0) +{ Mtx sp184; Vec sp178; s32 var_r24; - UnkM448Struct_00* temp_r31; - UnkM448Struct_00* sp11C; - UnkM448Struct_00* temp_r23; - UnkM448Struct_00* temp_r25; - UnkM448Struct_01* temp_r28; - UnkM448Struct_01* temp_r27; + UnkM448Struct_00 *temp_r31; + UnkM448Struct_00 *sp11C; + UnkM448Struct_00 *temp_r23; + UnkM448Struct_00 *temp_r25; + UnkM448Struct_01 *temp_r28; + UnkM448Struct_01 *temp_r27; float var_f29; float var_f20; float sp118; @@ -431,8 +392,7 @@ void fn_1_1338(omObjData* arg0) { break; case 1: if (temp_r31->unk38 == 1 && temp_r31->unk08 != -1) { - Hu3DMotionNoMotReset(arg0->model[0], "ske_head", - (lbl_1_data_178[temp_r31->unk08] != 0) ? 0x100 : 0x80); + Hu3DMotionNoMotReset(arg0->model[0], "ske_head", (lbl_1_data_178[temp_r31->unk08] != 0) ? 0x100 : 0x80); } sp118 = (lbl_1_bss_1C < 90) ? 0 : 0x48; if (arg0->trans.z < 250.0f) { @@ -474,8 +434,7 @@ void fn_1_1338(omObjData* arg0) { var_f20 = 0.0f; } if (arg0->trans.z >= lbl_1_data_1BC[temp_r31->unk00][2]) { - temp_r31->unk34 = (lbl_1_bss_80 < 1005) ? 0 - : ((lbl_1_bss_68 == -1) ? 3 : 7); + temp_r31->unk34 = (lbl_1_bss_80 < 1005) ? 0 : ((lbl_1_bss_68 == -1) ? 3 : 7); temp_r31->unk38 = 0; if (temp_r31->unk34 == 0) { arg0->rot.y = 180.0f; @@ -499,11 +458,13 @@ void fn_1_1338(omObjData* arg0) { PSMTXMultVec(sp184, &sp178, &sp178); var_f20 = sp178.x; sp118 = -sp178.z; - } else { + } + else { if (temp_r31->unk20 == 3) { if (temp_r31->unk44 < 0.0f && temp_r31->unk08 != -1) { sp110 = sp114 = 1.0f; - } else { + } + else { sp114 = 1.0f; } } @@ -514,37 +475,35 @@ void fn_1_1338(omObjData* arg0) { if (temp_r31->unk08 != -1 && temp_r31->unk20 != 3) { if (sp10C < 60.0f) { sp110 = sp114 = 1.0f; - } else { + } + else { var_f20 = temp_f26; sp118 = -temp_f25; } - } else if (sp10C < 277.5) { + } + else if (sp10C < 277.5) { if (temp_r31->unk20 != 3) { sp110 = sp114 = 1.0f; } var_f20 = (temp_f26 / 37.0) / 0.25; sp118 = (-temp_f25 / 37.0) / 0.25; - } else { + } + else { var_f20 = temp_f26; sp118 = -temp_f25; } } } } - arg0->trans.x = (arg0->trans.x < -450.0f) ? -450.0f - : (arg0->trans.x > 450.0f) ? 450.0f - : arg0->trans.x; - arg0->trans.z = (arg0->trans.z < -350.0f) ? -350.0f - : (arg0->trans.z > 350.0f) ? 350.0f - : arg0->trans.z; + arg0->trans.x = (arg0->trans.x < -450.0f) ? -450.0f : (arg0->trans.x > 450.0f) ? 450.0f : arg0->trans.x; + arg0->trans.z = (arg0->trans.z < -350.0f) ? -350.0f : (arg0->trans.z > 350.0f) ? 350.0f : arg0->trans.z; if ((lbl_1_bss_0 <= 0 || lbl_1_bss_18 >= 18000) && temp_r31->unk20 == 0) { temp_r31->unk34 = 5; temp_r31->unk38 = 0; lbl_1_bss_1C = 0; if (lbl_1_bss_18 >= 18000) { temp_r23 = lbl_1_bss_8C[1 - temp_r31->unk00]->data; - lbl_1_bss_68 = (temp_r31->unk08 == -1) ? temp_r31->unk00 - : (temp_r23->unk08 == -1) ? temp_r23->unk00 : 4; + lbl_1_bss_68 = (temp_r31->unk08 == -1) ? temp_r31->unk00 : (temp_r23->unk08 == -1) ? temp_r23->unk00 : 4; temp_r23->unk34 = 7; temp_r23->unk38 = 0; } @@ -557,8 +516,7 @@ void fn_1_1338(omObjData* arg0) { sp108 = atan2d(sp104 - arg0->trans.x, sp100 - arg0->trans.z); arg0->rot.y = 0.3 * (arg0->rot.y + spFC) - spFC; if (temp_r31->unk08 != -1) { - Hu3DMotionForceSet(arg0->model[0], "ske_head", - (lbl_1_data_178[temp_r31->unk08] != 0) ? 0x100 : 0x80, + Hu3DMotionForceSet(arg0->model[0], "ske_head", (lbl_1_data_178[temp_r31->unk08] != 0) ? 0x100 : 0x80, (lbl_1_data_178[temp_r31->unk08] != 0) ? 180.0f + -sp108 : 180.0f + sp108); } break; @@ -572,14 +530,15 @@ void fn_1_1338(omObjData* arg0) { temp_r25->unk34 = 1; temp_r25->unk38 = 0; if (temp_r25->unk08 != -1) { - Hu3DMotionForceSet(lbl_1_bss_8C[1 - temp_r31->unk00]->model[0], "ske_head", - (lbl_1_data_178[temp_r25->unk08] != 0) ? 0x100 : 0x80, 180.0f); - Hu3DMotionNoMotReset(lbl_1_bss_8C[1 - temp_r31->unk00]->model[0], "ske_head", - (lbl_1_data_178[temp_r25->unk08] != 0) ? 0x100 : 0x80); + Hu3DMotionForceSet( + lbl_1_bss_8C[1 - temp_r31->unk00]->model[0], "ske_head", (lbl_1_data_178[temp_r25->unk08] != 0) ? 0x100 : 0x80, 180.0f); + Hu3DMotionNoMotReset( + lbl_1_bss_8C[1 - temp_r31->unk00]->model[0], "ske_head", (lbl_1_data_178[temp_r25->unk08] != 0) ? 0x100 : 0x80); } } lbl_1_bss_14 = 1 - lbl_1_bss_14; - } else { + } + else { spF8 = lbl_1_data_1BC[temp_r31->unk00][0] - arg0->trans.x; spF4 = 400.0f - arg0->trans.z; spF0 = atan2d(lbl_1_data_1BC[temp_r31->unk00][0] - arg0->trans.x, 400.0f - arg0->trans.z); @@ -592,10 +551,8 @@ void fn_1_1338(omObjData* arg0) { break; case 7: if (temp_r31->unk38 == 1 && temp_r31->unk08 != -1) { - Hu3DMotionForceSet(arg0->model[0], "ske_head", - (lbl_1_data_178[temp_r31->unk08] != 0) ? 0x100 : 0x80, 180.0f); - Hu3DMotionNoMotReset(arg0->model[0], "ske_head", - (lbl_1_data_178[temp_r31->unk08] != 0) ? 0x100 : 0x80); + Hu3DMotionForceSet(arg0->model[0], "ske_head", (lbl_1_data_178[temp_r31->unk08] != 0) ? 0x100 : 0x80, 180.0f); + Hu3DMotionNoMotReset(arg0->model[0], "ske_head", (lbl_1_data_178[temp_r31->unk08] != 0) ? 0x100 : 0x80); } arg0->rot.y *= 0.3; if (lbl_1_bss_80 == 1007 && temp_r31->unk20 == 0) { @@ -607,10 +564,7 @@ void fn_1_1338(omObjData* arg0) { case 4: case 7: case 8: - if ((temp_r31->unk08 != -1) - ? CharModelMotionEndCheck(temp_r31->unk08) - : Hu3DMotionEndCheck(arg0->model[0])) - { + if ((temp_r31->unk08 != -1) ? CharModelMotionEndCheck(temp_r31->unk08) : Hu3DMotionEndCheck(arg0->model[0])) { var_r29 = 0; } /* fallthrough */ @@ -624,14 +578,16 @@ void fn_1_1338(omObjData* arg0) { if (var_f29 < 10.0f) { temp_r31->unk40 = temp_f31; temp_r31->unk48 += temp_f30; - } else { + } + else { temp_f31 = temp_f31 / var_f29; temp_f30 = temp_f30 / var_f29; var_f29 = 10.0f; if (temp_r31->unk20 != 3) { temp_r31->unk40 = temp_f31 * var_f29; temp_r31->unk48 = temp_f30 * var_f29; - } else { + } + else { temp_r31->unk40 = 0.875 * temp_r31->unk40 + temp_f31 * var_f29 * 0.125; temp_r31->unk48 = 0.875 * temp_r31->unk48 + temp_f30 * var_f29 * 0.125; } @@ -640,10 +596,12 @@ void fn_1_1338(omObjData* arg0) { arg0->rot.y = atan2d(temp_r31->unk40, temp_r31->unk48); if (temp_r31->unk3C >= 8.0f) { var_r29 = 2; - } else { + } + else { var_r29 = 1; } - } else if (temp_r31->unk20 != 7 && temp_r31->unk20 != 4 && temp_r31->unk20 != 8) { + } + else if (temp_r31->unk20 != 7 && temp_r31->unk20 != 4 && temp_r31->unk20 != 8) { var_r29 = 0; } temp_r31->unk44 = 0.0f; @@ -663,21 +621,24 @@ void fn_1_1338(omObjData* arg0) { if (var_f29 < 10.0f) { temp_r31->unk40 = temp_f31; temp_r31->unk48 = temp_f30; - } else { + } + else { temp_f31 = temp_f31 / var_f29; temp_f30 = temp_f30 / var_f29; var_f29 = 10.0f; if (temp_r31->unk20 != 3) { temp_r31->unk40 = temp_f31 * var_f29; temp_r31->unk48 = temp_f30 * var_f29; - } else { + } + else { temp_r31->unk40 = 0.875 * temp_r31->unk40 + temp_f31 * var_f29 * 0.125; temp_r31->unk48 = 0.875 * temp_r31->unk48 + temp_f30 * var_f29 * 0.125; } } temp_r31->unk3C = var_f29; arg0->rot.y = atan2d(temp_r31->unk40, temp_r31->unk48); - } else { + } + else { // Required to match. 0.875 * temp_r31->unk40; 0.875 * temp_r31->unk48; @@ -687,10 +648,12 @@ void fn_1_1338(omObjData* arg0) { if (sp114) { if (++temp_r31->unk28 > 4) { temp_r31->unk28 = 0; - } else { + } + else { temp_r31->unk44 += 4.866667f; } - } else { + } + else { temp_r31->unk28 = 0; } } @@ -725,19 +688,19 @@ void fn_1_1338(omObjData* arg0) { lbl_1_bss_1C = 0; } } - } else if (sp110) { + } + else if (sp110) { temp_r31->unk44 = 0.0f; temp_r31->unk30 = 0; var_r29 = 5; } break; case 5: - if ((Hu3DData[arg0->model[0]].unk_0C == -1 && temp_r31->unk08 != -1) - ? CharModelMotionEndCheck(temp_r31->unk08) - : Hu3DMotionEndCheck(arg0->model[0])) - { + if ((Hu3DData[arg0->model[0]].unk_0C == -1 && temp_r31->unk08 != -1) ? CharModelMotionEndCheck(temp_r31->unk08) + : Hu3DMotionEndCheck(arg0->model[0])) { temp_r31->unk44 += -2.4333334f; - } else { + } + else { temp_r31->unk44 = 0.0f; } if (temp_r31->unk44 < 0.0f && temp_r31->unk2C != 0) { @@ -745,7 +708,8 @@ void fn_1_1338(omObjData* arg0) { temp_r31->unk44 = 0.0f; temp_r31->unk30 = 0; var_r29 = 7; - } else { + } + else { temp_r31->unk44 = 9.733334f; temp_r31->unk2C = 0; var_r29 = 6; @@ -776,10 +740,7 @@ void fn_1_1338(omObjData* arg0) { case 6: temp_r31->unk44 += -2.4333334f; if (temp_r31->unk2C != 0) { - if ((temp_r31->unk08 != -1) - ? CharModelMotionEndCheck(temp_r31->unk08) - : Hu3DMotionEndCheck(arg0->model[0])) - { + if ((temp_r31->unk08 != -1) ? CharModelMotionEndCheck(temp_r31->unk08) : Hu3DMotionEndCheck(arg0->model[0])) { var_r29 = 7; } } @@ -821,7 +782,8 @@ void fn_1_1338(omObjData* arg0) { if (temp_r31->unk08 != -1) { Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r18], lbl_1_data_EC[var_r18], lbl_1_data_C0[var_r18], (lbl_1_data_A8[var_r18] != 0) ? HU3D_MOTATTR_NONE : HU3D_MOTATTR_LOOP); - } else { + } + else { Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r29], lbl_1_data_EC[var_r29], lbl_1_data_118[var_r29], (lbl_1_data_B3[var_r29] != 0) ? HU3D_MOTATTR_NONE : HU3D_MOTATTR_LOOP); if (var_r29 == 3) { @@ -840,22 +802,20 @@ void fn_1_1338(omObjData* arg0) { spCC = 0.0f; for (var_r21 = 0; var_r21 < 2; var_r21++) { if (lbl_1_data_1AC[temp_r31->unk00] > 0) { - float sp1B4[21] = { - 0.0f, 0.0f, 0.0f, 5.0f, 0.0f, 7.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 10.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 15.0f - }; + float sp1B4[21] = { 0.0f, 0.0f, 0.0f, 5.0f, 0.0f, 7.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 15.0f }; - spD8 = (lbl_1_data_1B4[temp_r31->unk00] < 10) - ? 1.0 - lbl_1_data_1B4[temp_r31->unk00] / 10.0 : 0.0; + spD8 = (lbl_1_data_1B4[temp_r31->unk00] < 10) ? 1.0 - lbl_1_data_1B4[temp_r31->unk00] / 10.0 : 0.0; spD4 = 1.0 + (spD8 * 0.5 + spD8 * spD8 * 0.5) * sp1B4[lbl_1_data_1AC[temp_r31->unk00]] / 10.0; espScaleSet(lbl_1_data_28[(var_r21 == 0 ? 2 : 3) + temp_r31->unk00 * 5], spD4, spD4); - } else if (lbl_1_data_1AC[temp_r31->unk00] < 0) { + } + else if (lbl_1_data_1AC[temp_r31->unk00] < 0) { s32 sp168[4] = { 100, 485, 16, -4 }; spD0 = spD8 * lbl_1_data_1AC[temp_r31->unk00] * (rand8() / 255.0 - 0.5); spCC = spD8 * lbl_1_data_1AC[temp_r31->unk00] * (rand8() / 255.0 - 0.5); - espPosSet(lbl_1_data_28[(var_r21 == 0 ? 2 : 3) + temp_r31->unk00 * 5], (&sp168[var_r21])[2] + sp168[temp_r31->unk00] + spD0, 72.0f + spCC); + espPosSet( + lbl_1_data_28[(var_r21 == 0 ? 2 : 3) + temp_r31->unk00 * 5], (&sp168[var_r21])[2] + sp168[temp_r31->unk00] + spD0, 72.0f + spCC); } } } @@ -867,8 +827,9 @@ float lbl_1_data_264 = 314.0f; float lbl_1_data_268 = -100.0f; float lbl_1_data_26C = -38.75f; -void fn_1_4310(omObjData* arg0) { - UnkM448Struct_00* spC8[2]; +void fn_1_4310(omObjData *arg0) +{ + UnkM448Struct_00 *spC8[2]; float spB0; float spAC; float temp_f19; @@ -889,11 +850,11 @@ void fn_1_4310(omObjData* arg0) { float sp74; float sp70; float sp6C; - ModelData* temp_r23; - ModelData* temp_r22; - ModelData* temp_r26; - ModelData* temp_r29; - UnkM448Struct_01* temp_r31; + ModelData *temp_r23; + ModelData *temp_r22; + ModelData *temp_r26; + ModelData *temp_r29; + UnkM448Struct_01 *temp_r31; float temp_f21; float temp_f20; float temp_f26; @@ -1140,9 +1101,7 @@ void fn_1_4310(omObjData* arg0) { sp98 = 1.0f - temp_f26; var_f18 = temp_f30 * sp98 + var_f28 * temp_f26; spA8 = temp_f29 * sp98 + var_f27 * temp_f26; - var_f31 = (temp_r31->unk08 * 10 < temp_r31->unk1C * spA0) - ? temp_r31->unk08 * 10 - : temp_r31->unk1C * spA0; + var_f31 = (temp_r31->unk08 * 10 < temp_r31->unk1C * spA0) ? temp_r31->unk08 * 10 : temp_r31->unk1C * spA0; temp_f19 = 4.0f * (temp_r31->unk1C / temp_f19) - 2.0f; temp_f19 = 4.0f - temp_f19 * temp_f19; var_f31 = temp_f19 / 4.0 * temp_f26 * 0.5 * (temp_r31->unk08 * 10 + 100) + temp_f26 * temp_r31->unk08 * 10.0f; @@ -1166,7 +1125,7 @@ void fn_1_4310(omObjData* arg0) { sp88 = -300.0f; temp_f21 = (temp_r31->unk1C - 60) / 50.0; // Cast required to match. - temp_f21 = (double) (1.0f - (1.0f - temp_f21) * (1.0f - temp_f21)); + temp_f21 = (double)(1.0f - (1.0f - temp_f21) * (1.0f - temp_f21)); sp84 = 1.0f - temp_f21; var_f18 = sp8C * sp84 + sp94 * temp_f21; spA8 = sp88 * sp84 + sp90 * temp_f21; @@ -1212,9 +1171,7 @@ void fn_1_4310(omObjData* arg0) { lbl_1_data_1A4[temp_r31->unk0C] += temp_r31->unk20; lbl_1_data_1AC[temp_r31->unk0C] = temp_r31->unk20; lbl_1_data_1B4[temp_r31->unk0C] = 0; - lbl_1_data_1A4[temp_r31->unk0C] = - (lbl_1_data_1A4[temp_r31->unk0C] < 0) ? 0 - : lbl_1_data_1A4[temp_r31->unk0C]; + lbl_1_data_1A4[temp_r31->unk0C] = (lbl_1_data_1A4[temp_r31->unk0C] < 0) ? 0 : lbl_1_data_1A4[temp_r31->unk0C]; spC8[temp_r31->unk0C]->unk34 = 5; spC8[temp_r31->unk0C]->unk38 = 0; temp_r31->unk18 = 9; @@ -1224,10 +1181,10 @@ void fn_1_4310(omObjData* arg0) { lbl_1_bss_9C[(temp_r31->unk20) > 0 ? 5 : 6].unk00++; } if (lbl_1_data_1A4[temp_r31->unk0C] >= 50 || lbl_1_data_170[0] + lbl_1_data_170[1] >= 20) { - lbl_1_bss_68 = - (lbl_1_data_1A4[temp_r31->unk0C] >= 50) ? temp_r31->unk0C - : (lbl_1_data_1A4[0] > lbl_1_data_1A4[1]) ? 0 - : (lbl_1_data_1A4[0] < lbl_1_data_1A4[1]) ? 1: 4; + lbl_1_bss_68 = (lbl_1_data_1A4[temp_r31->unk0C] >= 50) ? temp_r31->unk0C + : (lbl_1_data_1A4[0] > lbl_1_data_1A4[1]) ? 0 + : (lbl_1_data_1A4[0] < lbl_1_data_1A4[1]) ? 1 + : 4; spC8[1 - temp_r31->unk0C]->unk34 = 7; spC8[1 - temp_r31->unk0C]->unk38 = 0; } @@ -1240,23 +1197,19 @@ void fn_1_4310(omObjData* arg0) { temp_r29->rot.x = temp_r26->rot.x = var_f23; temp_r29->rot.y = spA4; if (temp_r29->pos.y <= 0.0f || temp_r31->unk18 == 9) { - Hu3DModelAttrSet(arg0->model[i + 7], 1); - Hu3DModelAttrReset(arg0->model[i + 27], 1); + Hu3DModelAttrSet(arg0->model[i + 7], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(arg0->model[i + 27], HU3D_ATTR_DISPOFF); temp_r26->pos.y = (temp_r31->unk18 != 9) ? 0.0f : temp_r29->pos.y; - } else { - Hu3DModelAttrReset(arg0->model[i + 7], 1); - Hu3DModelAttrSet(arg0->model[i + 27], 1); + } + else { + Hu3DModelAttrReset(arg0->model[i + 7], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[i + 27], HU3D_ATTR_DISPOFF); } } { s32 var_r18 = lbl_1_data_25C; - float spD0[][4] = { - { 2500.0f, 0.0f, -100.0f, -40.0f }, - { 2775.0f, 314.0f, -100.0f, -38.75f }, - { 875.0f, 116.0f, -100.0f, -15.0f }, - { 1625.0f, -416.0f, -340.0f, -30.25f }, - { 875.0f, 116.0f, -100.0f, -30.0f } - }; + float spD0[][4] = { { 2500.0f, 0.0f, -100.0f, -40.0f }, { 2775.0f, 314.0f, -100.0f, -38.75f }, { 875.0f, 116.0f, -100.0f, -15.0f }, + { 1625.0f, -416.0f, -340.0f, -30.25f }, { 875.0f, 116.0f, -100.0f, -30.0f } }; if (lbl_1_data_25C == -1) { lbl_1_data_25C = 1; @@ -1288,7 +1241,8 @@ void fn_1_4310(omObjData* arg0) { if (lbl_1_bss_34 == 0) { lbl_1_bss_38 = 1.0 - 0.95 * (1.0f - lbl_1_bss_38); var_f22 = lbl_1_bss_38; - } else { + } + else { lbl_1_bss_38 += 0.011111111111111112; lbl_1_bss_38 = (lbl_1_bss_38 > 1.0f) ? 1.0f : lbl_1_bss_38; var_f22 = 0.5 + -0.5 * cosd(180.0f * lbl_1_bss_38); @@ -1302,20 +1256,12 @@ void fn_1_4310(omObjData* arg0) { } } -const s32 lbl_1_rodata_408[] = { - MAKE_MESSID(43, 3), - MAKE_MESSID(43, 4), - MAKE_MESSID(43, 5), - MAKE_MESSID(43, 6), - MAKE_MESSID(43, 7), - MAKE_MESSID(43, 8), - MAKE_MESSID(43, 9), - MAKE_MESSID(43, 10), - 0 -}; +const s32 lbl_1_rodata_408[] = { MAKE_MESSID(43, 3), MAKE_MESSID(43, 4), MAKE_MESSID(43, 5), MAKE_MESSID(43, 6), MAKE_MESSID(43, 7), + MAKE_MESSID(43, 8), MAKE_MESSID(43, 9), MAKE_MESSID(43, 10), 0 }; -void fn_1_6DAC(void) { - UnkM448Struct_00* sp8[2]; +void fn_1_6DAC(void) +{ + UnkM448Struct_00 *sp8[2]; s16 var_r29; s16 temp_r31; u32 temp_r26; @@ -1331,9 +1277,8 @@ void fn_1_6DAC(void) { HuWinExAnimIn(temp_r31); HuWinBGTPLvlSet(temp_r31, 0.8f); HuWinMesSpeedSet(temp_r31, 1); - HuWinDisablePlayerSet(temp_r31, 0xF - & ((sp8[0]->unk0C != -1) ? ~(1 << sp8[0]->unk0C) : 0xF) - & ((sp8[1]->unk0C != -1) ? ~(1 << sp8[1]->unk0C) : 0xF)); + HuWinDisablePlayerSet( + temp_r31, 0xF & ((sp8[0]->unk0C != -1) ? ~(1 << sp8[0]->unk0C) : 0xF) & ((sp8[1]->unk0C != -1) ? ~(1 << sp8[1]->unk0C) : 0xF)); HuWinMesColSet(temp_r31, 0); HuWinMesSet(temp_r31, MAKE_MESSID(43, 1)); if (((sp8[0]->unk0C == -1) || (sp8[0]->unk08 == -1)) && ((sp8[1]->unk0C == -1) || (sp8[1]->unk08 == -1))) { @@ -1346,10 +1291,12 @@ void fn_1_6DAC(void) { if (sp8[0]->unk0C == -1 && sp8[1]->unk0C == -1) { HuPrcSleep(60); var_r29 = 1; - } else { + } + else { var_r29 = HuWinChoiceGet(temp_r31, 0); } - } else { + } + else { var_r29 = 1; } if (var_r29 == 0) { @@ -1362,7 +1309,8 @@ void fn_1_6DAC(void) { } HuWinMesWait(temp_r31); } - } else { + } + else { HuWinMesColSet(temp_r31, 0); HuWinMesSet(temp_r31, MAKE_MESSID(43, 10)); if ((sp8[0]->unk0C == -1 || sp8[0]->unk08 == -1) && (sp8[1]->unk0C == -1 || sp8[1]->unk08 == -1)) { @@ -1376,28 +1324,16 @@ void fn_1_6DAC(void) { HuPrcEnd(); } -void fn_1_7148(omObjData* arg0) { +void fn_1_7148(omObjData *arg0) +{ float temp_f31; - UnkM448Struct_00* spC[2]; + UnkM448Struct_00 *spC[2]; s32 sp8; s32 i; for (i = 0; i < 13; i++) { - s32 sp14[] = { - 0x0000078E, - 0x0000078F, - 0x00000790, - 0x00000791, - 0x00000792, - 0x00000793, - 0x00000794, - 0x00000795, - 0x00000796, - 0x00000797, - 0x00000798, - 0x00000799, - 0x0000079A - }; + s32 sp14[] = { 0x0000078E, 0x0000078F, 0x00000790, 0x00000791, 0x00000792, 0x00000793, 0x00000794, 0x00000795, 0x00000796, 0x00000797, + 0x00000798, 0x00000799, 0x0000079A }; if (lbl_1_bss_9C[i].unk00 > 3) { lbl_1_bss_9C[i].unk00 = 3; @@ -1447,9 +1383,9 @@ void fn_1_7148(omObjData* arg0) { if (lbl_1_bss_84 > 240) { lbl_1_bss_80++; lbl_1_bss_84 = 0; - Hu3DModelAttrSet(lbl_1_bss_88->model[1], 1); - Hu3DModelAttrSet(lbl_1_bss_88->model[2], 1); - Hu3DModelAttrReset(lbl_1_bss_88->model[0], 1); + Hu3DModelAttrSet(lbl_1_bss_88->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_88->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_88->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAmbSet(lbl_1_bss_8C[0]->model[0], 1.0f, 1.0f, 1.0f); Hu3DModelAmbSet(lbl_1_bss_8C[1]->model[0], 1.0f, 1.0f, 1.0f); } @@ -1473,7 +1409,8 @@ void fn_1_7148(omObjData* arg0) { if (lbl_1_bss_84 == 1) { HuPrcChildCreate(fn_1_6DAC, 100, 0x2000, 0, HuPrcCurrentGet()); lbl_1_bss_10 = 1; - } else if (lbl_1_bss_10 == 0) { + } + else if (lbl_1_bss_10 == 0) { lbl_1_bss_80++; lbl_1_bss_84 = 0; } @@ -1522,7 +1459,8 @@ void fn_1_7148(omObjData* arg0) { } HuAudSeqFadeOut(lbl_1_data_1A0, 100); lbl_1_data_1A0 = -1; - } else if (MGSeqStatGet(lbl_1_data_198) == 0) { + } + else if (MGSeqStatGet(lbl_1_data_198) == 0) { lbl_1_bss_80++; lbl_1_bss_84 = 0; } @@ -1533,11 +1471,13 @@ void fn_1_7148(omObjData* arg0) { if (lbl_1_bss_68 != 4) { if (spC[lbl_1_bss_68]->unk08 != -1) { HuAudSStreamPlay(1); - } else { + } + else { HuAudSStreamPlay(3); } GWPlayerCoinWinSet(spC[lbl_1_bss_68]->unk04, 10); - } else if (lbl_1_bss_68 == 4) { + } + else if (lbl_1_bss_68 == 4) { HuAudSStreamPlay(4); } } @@ -1550,8 +1490,9 @@ void fn_1_7148(omObjData* arg0) { } } -void fn_1_7DC4(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; +void fn_1_7DC4(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; s16 i; if (particle->unk_34 == 0) { @@ -1584,8 +1525,7 @@ void fn_1_7DC4(ModelData* model, ParticleData* particle, Mtx matrix) { } if (var_r31->unk00_s16 <= 100) { var_r31->unk34.y -= 3.0f; - var_r31->unk2C = ((var_r31->unk00_s16 > 50) ? (var_r31->unk00_s16 - 50) / 50.0 : 0.0) - * (rand8() * 80 / 255.0); + var_r31->unk2C = ((var_r31->unk00_s16 > 50) ? (var_r31->unk00_s16 - 50) / 50.0 : 0.0) * (rand8() * 80 / 255.0); } if (var_r31->unk00_s16 == 0) { var_r31->unk2C = 0.0f; @@ -1594,9 +1534,10 @@ void fn_1_7DC4(ModelData* model, ParticleData* particle, Mtx matrix) { } } -void fn_1_81C0(omObjData* arg0) { - UnkM448Struct_00* temp_r26; - UnkM448Struct_00* temp_r23; +void fn_1_81C0(omObjData *arg0) +{ + UnkM448Struct_00 *temp_r26; + UnkM448Struct_00 *temp_r23; s32 temp_r29; s32 temp_r25; s32 i, j, k; @@ -1605,34 +1546,26 @@ void fn_1_81C0(omObjData* arg0) { memset(lbl_1_bss_16C, 0, sizeof(lbl_1_bss_16C)); arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M448, 0)); Hu3DModelShadowMapSet(arg0->model[0]); - Hu3DModelAttrSet(arg0->model[0], 0x40000001); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(arg0->model[0], 0); Hu3DMotionTimeSet(arg0->model[0], 20.0f); - Hu3DModelAttrSet(arg0->model[0], 1); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); arg0->model[6] = Hu3DHookFuncCreate(fn_1_4FC); Hu3DModelLayerSet(arg0->model[6], 6); arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M448, 1)); Hu3DModelShadowMapSet(arg0->model[1]); Hu3DModelLayerSet(arg0->model[1], 0); Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 0.0f); - Hu3DModelAttrSet(arg0->model[1], 0x40000002); + Hu3DModelAttrSet(arg0->model[1], HU3D_MOTATTR_PAUSE); arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M448, 2)); Hu3DModelShadowMapSet(arg0->model[2]); Hu3DModelLayerSet(arg0->model[2], 0); Hu3DModelPosSet(arg0->model[2], 0.0f, 0.0f, 0.0f); - Hu3DModelAttrSet(arg0->model[2], 0x40000002); + Hu3DModelAttrSet(arg0->model[2], HU3D_MOTATTR_PAUSE); { - s32 sp9C[] = { - DATA_MAKE_NUM(DATADIR_M448, 9), - DATA_MAKE_NUM(DATADIR_M448, 10), - DATA_MAKE_NUM(DATADIR_M448, 11), - DATA_MAKE_NUM(DATADIR_M448, 12), - DATA_MAKE_NUM(DATADIR_M448, 13), - DATA_MAKE_NUM(DATADIR_M448, 14), - DATA_MAKE_NUM(DATADIR_M448, 16), - DATA_MAKE_NUM(DATADIR_M448, 15), - DATA_MAKE_NUM(DATADIR_M448, 17) - }; + s32 sp9C[] = { DATA_MAKE_NUM(DATADIR_M448, 9), DATA_MAKE_NUM(DATADIR_M448, 10), DATA_MAKE_NUM(DATADIR_M448, 11), + DATA_MAKE_NUM(DATADIR_M448, 12), DATA_MAKE_NUM(DATADIR_M448, 13), DATA_MAKE_NUM(DATADIR_M448, 14), DATA_MAKE_NUM(DATADIR_M448, 16), + DATA_MAKE_NUM(DATADIR_M448, 15), DATA_MAKE_NUM(DATADIR_M448, 17) }; for (i = 0; i < 2; i++) { temp_r26 = lbl_1_bss_8C[i]->data; @@ -1643,22 +1576,10 @@ void fn_1_81C0(omObjData* arg0) { } } { - s32 sp110[] = { - -10, -5, -5, 3, 3, 3, 3, 3, 5, 5, - 5, 5, 5, 10, 10, 10, 10, 10, 20, 20 - }; - s32 spC0[] = { - 0, 1, 1, 2, 2, 2, 2, 2, 3, 3, - 3, 3, 3, 4, 4, 4, 4, 4, 5, 5 - }; - s32 sp34[] = { - DATA_MAKE_NUM(DATADIR_M448, 3), - DATA_MAKE_NUM(DATADIR_M448, 4), - DATA_MAKE_NUM(DATADIR_M448, 5), - DATA_MAKE_NUM(DATADIR_M448, 6), - DATA_MAKE_NUM(DATADIR_M448, 7), - DATA_MAKE_NUM(DATADIR_M448, 8) - }; + s32 sp110[] = { -10, -5, -5, 3, 3, 3, 3, 3, 5, 5, 5, 5, 5, 10, 10, 10, 10, 10, 20, 20 }; + s32 spC0[] = { 0, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5 }; + s32 sp34[] = { DATA_MAKE_NUM(DATADIR_M448, 3), DATA_MAKE_NUM(DATADIR_M448, 4), DATA_MAKE_NUM(DATADIR_M448, 5), DATA_MAKE_NUM(DATADIR_M448, 6), + DATA_MAKE_NUM(DATADIR_M448, 7), DATA_MAKE_NUM(DATADIR_M448, 8) }; s32 sp1C[] = { -1, -1, -1, -1, -1, -1 }; for (i = 0; i < 4; i++) { @@ -1680,17 +1601,17 @@ void fn_1_81C0(omObjData* arg0) { sp1C[spC0[temp_r25]] = temp_r29; } arg0->model[var_r27 + temp_r29] = Hu3DModelCreateFile(sp34[spC0[temp_r25]]); - } else { + } + else { arg0->model[var_r27 + temp_r29] = Hu3DModelLink(arg0->model[var_r27 + sp1C[spC0[temp_r25]]]); } - Hu3DModelPosSet(arg0->model[var_r27 + temp_r29], - 100.0 + 200.0 * (lbl_1_bss_16C[temp_r29].unk00 - 2.5), - (k == 0) ? 4000 : 0, + Hu3DModelPosSet(arg0->model[var_r27 + temp_r29], 100.0 + 200.0 * (lbl_1_bss_16C[temp_r29].unk00 - 2.5), (k == 0) ? 4000 : 0, 100.0 + 200.0 * (lbl_1_bss_16C[temp_r29].unk04 - 2.0)); if (k == 0) { Hu3DModelShadowSet(arg0->model[var_r27 + temp_r29]); - } else { - Hu3DModelAttrSet(arg0->model[var_r27 + temp_r29], 1); + } + else { + Hu3DModelAttrSet(arg0->model[var_r27 + temp_r29], HU3D_ATTR_DISPOFF); Hu3DModelShadowMapSet(arg0->model[var_r27 + temp_r29]); } } @@ -1701,7 +1622,7 @@ void fn_1_81C0(omObjData* arg0) { Hu3DModelPosSet(arg0->model[5], 0.0f, 0.0f, 0.0f); Hu3DModelScaleSet(arg0->model[5], 1.0f, 1.0f, 1.0f); Hu3DModelLayerSet(arg0->model[5], 3); - Hu3DModelAttrReset(arg0->model[5], 1); + Hu3DModelAttrReset(arg0->model[5], HU3D_ATTR_DISPOFF); Hu3DParticleColSet(arg0->model[5], 0xFF, 0xFF, 0xFF); Hu3DParticleScaleSet(arg0->model[5], 1.0f); Hu3DParticleHookSet(arg0->model[5], fn_1_7DC4); @@ -1714,18 +1635,21 @@ void fn_1_81C0(omObjData* arg0) { if (lbl_1_data_0[i] == DATADIR_MGCONST) { temp_r23 = lbl_1_bss_8C[i == 4 ? 0 : (i == 9 ? 1 : 0)]->data; - lbl_1_data_28[i] = espEntry((temp_r23->unk08 == -1) ? DATA_MAKE_NUM(DATADIR_M448, 29) : DATA_MAKE_NUM(lbl_1_data_0[i], temp_r23->unk08), 0, 0); - } else { + lbl_1_data_28[i] + = espEntry((temp_r23->unk08 == -1) ? DATA_MAKE_NUM(DATADIR_M448, 29) : DATA_MAKE_NUM(lbl_1_data_0[i], temp_r23->unk08), 0, 0); + } + else { lbl_1_data_28[i] = espEntry(lbl_1_data_0[i], 0, 0); } espDrawNoSet(lbl_1_data_28[i], 0); - espAttrSet(lbl_1_data_28[i], 5); + espAttrSet(lbl_1_data_28[i], HUSPR_ATTR_NOANIM | HUSPR_ATTR_DISPOFF); espBankSet(lbl_1_data_28[i], 0); espPriSet(lbl_1_data_28[i], 128 - i); espPosSet(lbl_1_data_28[i], sp74[i] + sp14[i < 5 ? 0 : 1], sp4C[i] + 70); if (((i >= 5) ? i - 5 : i) != 0) { - (void) 1; // Required to match. - } else { + (void)1; // Required to match. + } + else { espTPLvlSet(lbl_1_data_28[i], 0.5f); espColorSet(lbl_1_data_28[i], 0, 0, 0); } @@ -1733,11 +1657,12 @@ void fn_1_81C0(omObjData* arg0) { arg0->func = fn_1_4310; } -void fn_1_8DD0(omObjData* arg0) { +void fn_1_8DD0(omObjData *arg0) +{ s32 var_r28; s32 var_r27; - UnkM448Struct_00* temp_r31; - UnkM448Struct_00* sp30; + UnkM448Struct_00 *temp_r31; + UnkM448Struct_00 *sp30; s32 var_r26; s32 i; @@ -1757,34 +1682,36 @@ void fn_1_8DD0(omObjData* arg0) { if (temp_r31->unk00 == 0) { temp_r31->unk04 = var_r27; var_r26 = var_r28; - } else { + } + else { temp_r31->unk04 = var_r28; var_r26 = var_r27; } - } else { + } + else { temp_r31->unk04 = (GWPlayerCfg[0].group == temp_r31->unk00) ? 0 - : GWPlayerCfg[1].group == temp_r31->unk00 ? 1 - : GWPlayerCfg[2].group == temp_r31->unk00 ? 2 - : GWPlayerCfg[3].group == temp_r31->unk00 ? 3 : 4; + : GWPlayerCfg[1].group == temp_r31->unk00 ? 1 + : GWPlayerCfg[2].group == temp_r31->unk00 ? 2 + : GWPlayerCfg[3].group == temp_r31->unk00 ? 3 + : 4; var_r26 = (GWPlayerCfg[0].group == 1 - temp_r31->unk00) ? 0 - : (GWPlayerCfg[1].group == 1 - temp_r31->unk00) ? 1 - : (GWPlayerCfg[2].group == 1 - temp_r31->unk00) ? 2 - : (GWPlayerCfg[3].group == 1 - temp_r31->unk00) ? 3 : 4; + : (GWPlayerCfg[1].group == 1 - temp_r31->unk00) ? 1 + : (GWPlayerCfg[2].group == 1 - temp_r31->unk00) ? 2 + : (GWPlayerCfg[3].group == 1 - temp_r31->unk00) ? 3 + : 4; } if (temp_r31->unk04 == 4) { OSReport("m448:wrong player group\n"); temp_r31->unk04 = temp_r31->unk00; } - temp_r31->unk08 = (var_r28 != -1 && temp_r31->unk00 == 1) ? -1 - : GWPlayerCfg[temp_r31->unk04].character; - temp_r31->unk0C = (temp_r31->unk08 == -1 || GWPlayerCfg[temp_r31->unk04].iscom) ? -1 - : GWPlayerCfg[temp_r31->unk04].pad_idx; - temp_r31->unk10 = (temp_r31->unk0C != -1) ? 0 - : GWPlayerCfg[temp_r31->unk04].diff; + temp_r31->unk08 = (var_r28 != -1 && temp_r31->unk00 == 1) ? -1 : GWPlayerCfg[temp_r31->unk04].character; + temp_r31->unk0C = (temp_r31->unk08 == -1 || GWPlayerCfg[temp_r31->unk04].iscom) ? -1 : GWPlayerCfg[temp_r31->unk04].pad_idx; + temp_r31->unk10 = (temp_r31->unk0C != -1) ? 0 : GWPlayerCfg[temp_r31->unk04].diff; temp_r31->unk34 = 0; if (temp_r31->unk08 != -1) { arg0->model[0] = CharModelCreate(temp_r31->unk08, 2); - } else { + } + else { arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M448, 18)); } Hu3DModelLayerSet(arg0->model[0], 0); @@ -1794,7 +1721,8 @@ void fn_1_8DD0(omObjData* arg0) { for (i = 0; i < 11; i++) { if (temp_r31->unk08 != -1) { arg0->motion[i] = CharModelMotionCreate(temp_r31->unk08, lbl_1_data_50[i]); - } else { + } + else { arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_7C[i]); } } @@ -1803,8 +1731,9 @@ void fn_1_8DD0(omObjData* arg0) { Hu3DMotionSet(arg0->model[0], arg0->motion[temp_r31->unk20]); if (temp_r31->unk08 != -1) { Hu3DMotionTimeSet(arg0->model[0], (temp_r31->unk00 == 0) ? 0 : 80); - Hu3DModelAttrSet(arg0->model[0], 0x40000001); - } else { + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); + } + else { lbl_1_bss_20 = CharModelEffectNpcInit(arg0->model[0], arg0->motion[2], 1, 14); lbl_1_bss_24 = CharModelEffectNpcInit(arg0->model[0], arg0->motion[6], 5, 14); } @@ -1812,14 +1741,14 @@ void fn_1_8DD0(omObjData* arg0) { arg0->trans.y = lbl_1_data_1BC[temp_r31->unk00][1]; arg0->trans.z = 0.0f; arg0->rot.y = (temp_r31->unk00 == 0) ? 90 : 270; - arg0->rot.y = (temp_r31->unk08 != -1) ? 0 - : (temp_r31->unk00 == 0) ? 90 : 270; + arg0->rot.y = (temp_r31->unk08 != -1) ? 0 : (temp_r31->unk00 == 0) ? 90 : 270; arg0->scale.x = arg0->scale.y = arg0->scale.z = 1.0f; arg0->rot.x = arg0->rot.z = 0.0f; arg0->func = fn_1_1338; } -void fn_1_9508(omObjData* arg0) { +void fn_1_9508(omObjData *arg0) +{ lbl_1_bss_80 = 1000; lbl_1_bss_84 = 0; lbl_1_bss_78 = 0; @@ -1834,8 +1763,9 @@ void fn_1_9508(omObjData* arg0) { arg0->func = fn_1_7148; } -void ObjectSetup(void) { - omObjData* var_r30; +void ObjectSetup(void) +{ + omObjData *var_r30; s32 i; OSReport("******* M448 ObjectSetup *********\n"); @@ -1894,9 +1824,10 @@ void ObjectSetup(void) { lbl_1_bss_98 = omAddObjEx(lbl_1_bss_70, 103, 0, 0, -1, fn_1_9508); } -void fn_1_9B00(omObjData* arg0) { +void fn_1_9B00(omObjData *arg0) +{ s32 i; - UnkM448Struct_00* temp_r30; + UnkM448Struct_00 *temp_r30; if (WipeStatGet() != 0) { return; diff --git a/src/REL/m450Dll/main.c b/src/REL/m450Dll/main.c index 6876625f..95a4b79a 100644 --- a/src/REL/m450Dll/main.c +++ b/src/REL/m450Dll/main.c @@ -2873,7 +2873,7 @@ void fn_1_AD58(omObjData *object) fn_1_9F4C(var_r31, object->model[0], lbl_1_bss_4C, 0x7A); if (1000.0f > var_r31->unk_00.unk_6C.y) { var_r31->unk_150++; - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); } break; case 0xBBA: @@ -2883,7 +2883,7 @@ void fn_1_AD58(omObjData *object) var_r31->unk_00.unk_9C = 270.0f; fn_1_A470(var_r31, object, "m450mex06-s4kuppa", 2); fn_1_4ED8(&var_r31->unk_00, 0); - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); } break; case 0xBBB: @@ -2903,7 +2903,7 @@ void fn_1_AD58(omObjData *object) fn_1_9F4C(var_r31, object->model[0], &lbl_1_bss_4C[3], 0x78); if (1000.0f > var_r31->unk_00.unk_6C.y) { var_r31->unk_150++; - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); lbl_1_bss_1A4->work[0] = 0x404; lbl_1_bss_128 = 0.0f; } @@ -2917,7 +2917,7 @@ void fn_1_AD58(omObjData *object) MTXIdentity(Hu3DData[object->model[0]].unk_F0); omSetSca(object, 1.0f, 1.0f, 1.0f); Hu3DModelScaleSet(object->model[1], 1.5f, 1.5f, 1.5f); - Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(object->model[1], 0x40000002); Hu3DModelHookSet(object->model[1], "g000i00-itemhook_A", object->model[0]); var_r31->unk_00.unk_6C.x = 0.0f; @@ -2927,7 +2927,7 @@ void fn_1_AD58(omObjData *object) fn_1_4ED8(&var_r31->unk_00, 0); var_r31->unk_00.unk_3C |= 0x2020; Hu3DMotionSet(object->model[0], object->motion[7]); - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); } break; case 0xBBE: @@ -3020,8 +3020,8 @@ void fn_1_AD58(omObjData *object) var_r31->unk_150++; var_r31->unk_154 &= ~2; Hu3DModelHookObjReset(object->model[1], "g000i00-itemhook_A"); - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); lbl_1_bss_1A4->work[0] = 0x410; lbl_1_bss_128 = 0.0f; } @@ -3034,7 +3034,7 @@ void fn_1_AD58(omObjData *object) var_r31->unk_00.unk_9C = 0.0f; fn_1_A470(var_r31, object, "m450mex06-s6kuppa01", 2); fn_1_4ED8(&var_r31->unk_00, 0); - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); } break; case 0xBC5: @@ -3158,7 +3158,7 @@ void fn_1_AD58(omObjData *object) } if (Hu3DMotionEndCheck(object->model[0]) != 0) { var_r31->unk_154 |= 0x40; - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); Hu3DMotionSet(object->model[0], object->motion[14]); } } @@ -3217,7 +3217,7 @@ void fn_1_AD58(omObjData *object) var_r31->unk_E0 = 0.0f; var_r31->unk_154 &= ~0x8000; Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 8.0f, 0x40000001); - Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], 1); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], HU3D_ATTR_DISPOFF); } break; case 0xBCF: @@ -3255,9 +3255,9 @@ void fn_1_AD58(omObjData *object) 150.0f + var_r31->unk_00.unk_6C.z); Hu3DModelScaleSet(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], 2.0f, 2.0f, 2.0f); Hu3DMotionTimeSet(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], 0.0f); - Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], 0x40000002); - Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], 1); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], HU3D_ATTR_DISPOFF); } } if (var_r31->unk_150 != 0xBCF) { @@ -3348,7 +3348,7 @@ void fn_1_DBF0(omObjData *object) for (var_r29 = 0; var_r29 < 2; var_r29++) { object->model[var_r29] = Hu3DModelCreateFile(lbl_1_data_AC[var_r29]); Hu3DModelAttrSet(object->model[var_r29], 0x4001); - Hu3DModelAttrSet(object->model[var_r29], 0x40000001); + Hu3DModelAttrSet(object->model[var_r29], HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(object->model[var_r29], 0x40000002); Hu3DModelLayerSet(object->model[var_r29], 3); Hu3DModelShadowSet(object->model[var_r29]); @@ -3383,7 +3383,7 @@ void fn_1_DBF0(omObjData *object) omSetTra(var_r31->unk_00.unk_00, var_r31->unk_00.unk_6C.x, var_r31->unk_00.unk_6C.y, var_r31->unk_00.unk_6C.z); omSetRot(var_r31->unk_00.unk_00, 0.0f, var_r31->unk_00.unk_9C, 0.0f); omSetSca(object, 1.5f, 1.5f, 1.5f); - Hu3DModelAttrReset(*object->model, 1); + Hu3DModelAttrReset(*object->model, HU3D_ATTR_DISPOFF); object->func = (omObjFunc)fn_1_AD58; } @@ -3447,13 +3447,13 @@ void fn_1_E3C8(UnkM450Struct3 *arg0, omObjData *arg1, s32 arg2) s32 var_r30; if (arg2 != 0) { if (arg1->work[0] == 0) { - Hu3DModelAttrReset(arg1->model[1], 1); + Hu3DModelAttrReset(arg1->model[1], HU3D_ATTR_DISPOFF); } - Hu3DModelAttrReset(arg1->model[0], 1); + Hu3DModelAttrReset(arg1->model[0], HU3D_ATTR_DISPOFF); } else { for (var_r30 = 0; var_r30 < 5; var_r30++) { - Hu3DModelAttrSet(arg1->model[var_r30], 1); + Hu3DModelAttrSet(arg1->model[var_r30], HU3D_ATTR_DISPOFF); } } arg0->unk_00.unk_3C &= ~0xC00; @@ -3552,14 +3552,14 @@ void fn_1_EB6C(UnkM450Struct3 *arg0, omObjData *arg1) fn_1_1D18(arg1->model[4], "g007i03-itemhook_M", &arg0->unk_00.unk_6C); Hu3DModelHookObjReset(arg1->model[4], "g007i03-itemhook_M"); - Hu3DModelAttrSet(arg1->model[4], 1); + Hu3DModelAttrSet(arg1->model[4], HU3D_ATTR_DISPOFF); arg0->unk_150 = 0xFAE; arg0->unk_154 &= 0xFFFFFFFD; arg0->unk_108 = 19.6f; arg0->unk_E0 = 0.0f; Hu3DMotionSet(arg1->model[0], arg1->motion[6]); Hu3DModelAttrReset(arg1->model[0], 0x40000001); - Hu3DModelAttrSet(arg1->model[0], 0x40000002); + Hu3DModelAttrSet(arg1->model[0], HU3D_MOTATTR_PAUSE); Hu3DMotionTimeSet(arg1->model[0], 1.0f); arg0->unk_13C = Hu3DParManLink(lbl_1_bss_24, &lbl_1_data_1504); Hu3DParManPosSet(arg0->unk_13C, arg0->unk_00.unk_6C.x, arg0->unk_00.unk_6C.y, arg0->unk_00.unk_6C.z); @@ -3662,7 +3662,7 @@ void fn_1_ED4C(omObjData *object) var_r31->unk_E0 = 0.0f; var_r31->unk_E8 = 360.0f * frandf(); var_r31->unk_154 |= 2; - Hu3DModelAttrReset(object->model[4], 1); + Hu3DModelAttrReset(object->model[4], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(object->model[4], 0x40000002); Hu3DModelHookSet(object->model[4], "g007i03-itemhook_M", object->model[0]); var_r31->unk_00.unk_6C.x = 0.0f; @@ -3828,7 +3828,7 @@ void fn_1_ED4C(omObjData *object) case 0xFAF: if (lbl_1_bss_1A4->work[0] >= 0x403) { var_r31->unk_150 = var_r31->unk_150 + 1; - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); } break; case 0xFB0: @@ -3933,9 +3933,9 @@ void fn_1_11D5C(omObjData *object) omSetTra(var_r31->unk_00.unk_00, var_r31->unk_00.unk_6C.x, var_r31->unk_00.unk_6C.y, var_r31->unk_00.unk_6C.z); omSetRot(var_r31->unk_00.unk_00, 0.0f, var_r31->unk_00.unk_9C, 0.0f); if (object->work[0] == 0) { - Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); } - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); var_r31->unk_00.unk_3C &= ~0xC00; object->func = (omObjFunc)fn_1_ED4C; } @@ -3990,7 +3990,7 @@ void fn_1_12234(void) for (var_r30 = 0; var_r30 < var_r27; var_r30++) { espDrawNoSet(var_r31->unk_18[var_r30], 0); espDispOff(var_r31->unk_18[var_r30]); - espAttrSet(var_r31->unk_18[var_r30], 1); + espAttrSet(var_r31->unk_18[var_r30], HUSPR_ATTR_NOANIM); espBankSet(var_r31->unk_18[var_r30], 0); espPriSet(var_r31->unk_18[var_r30], 0x80 - var_r29); espPosSet(var_r31->unk_18[var_r30], var_r28, 225.0f); @@ -4064,15 +4064,15 @@ void fn_1_12688(omObjData *object) omSetRot(object, 0.0f, var_f29, 0.0f); omSetSca(object, var_f31, var_f30, var_f31); Hu3DMotionTimeSet(object->model[0], 0.0f); - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(object->model[0], 0x40000002); HuAudFXPlay(0x7C0); } } else if (Hu3DMotionEndCheck(object->model[0]) != 0) { object->work[0] = frandmod(0x258); - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); } } @@ -4083,7 +4083,7 @@ void fn_1_1291C(omObjData *object) omSetRot(object, 0.0f, 0.0f, 0.0f); object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M450, 0x22)); Hu3DModelAttrSet(object->model[0], 0x4001); - Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(object->model[0], 0x40000001); Hu3DModelLayerSet(object->model[0], 1); object->func = fn_1_12688; @@ -4416,7 +4416,8 @@ s32 lbl_1_data_F00[0x17] = { DATA_MAKE_NUM(DATADIR_M450, 0x0F), DATA_MAKE_NUM(DATADIR_M450, 0x0F), }; -s32 lbl_1_data_F5C[4] = { DATA_MAKE_NUM(DATADIR_M450, 0x24), DATA_MAKE_NUM(DATADIR_M450, 0x25), DATA_MAKE_NUM(DATADIR_M450, 0x26), DATA_MAKE_NUM(DATADIR_M450, 0x27) }; +s32 lbl_1_data_F5C[4] + = { DATA_MAKE_NUM(DATADIR_M450, 0x24), DATA_MAKE_NUM(DATADIR_M450, 0x25), DATA_MAKE_NUM(DATADIR_M450, 0x26), DATA_MAKE_NUM(DATADIR_M450, 0x27) }; s32 lbl_1_data_F6C[6] = { 0, 0xE10, 0x4650, 0xE10, 0x4650, 0x4650 }; float lbl_1_data_F84[5] = { 1200.0f, 1500.0f, 0.0f, 200.0f, 300.0f }; float lbl_1_data_F98[5] = { 1200.0f, 1500.0f, 0.0f, 200.0f, 300.0f }; @@ -4510,15 +4511,15 @@ void fn_1_12A1C(omObjData *object) var_f30 = (1500.0f * frandf()) - 750.0f; omSetTra(object, var_f31, 1380.0f, var_f30); Hu3DMotionTimeSet(object->model[0], 0.0f); - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(object->model[0], 0x40000002); } } } else if (Hu3DMotionEndCheck(object->model[0]) != 0) { object->work[0] = frandmod(0xB4); - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); } } @@ -4533,7 +4534,7 @@ void fn_1_12B80(omObjData *object) object->model[0] = fn_1_46C(DATA_MAKE_NUM(DATADIR_M450, 0x23)); Hu3DModelAttrSet(object->model[0], 0x4001); - Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(object->model[0], 0x40000001); Hu3DModelLayerSet(object->model[0], 1); object->func = fn_1_12A1C; @@ -4546,8 +4547,8 @@ void fn_1_12D7C(omObjData *object) omSetTra(object, 0.0f, 0.0f, 0.0f); omSetRot(object, 0.0f, 0.0f, 0.0f); object->model[0] = Hu3DModelCreateFile(lbl_1_data_F00[object->work[0]]); - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); object->func = fn_1_12D78; } @@ -4565,7 +4566,7 @@ void fn_1_12E5C(s32 var_r30, s32 var_r29, s32 var_r31) lbl_1_bss_1A0->model[var_r31], 1.0f, 1.0f, VECDistance(&lbl_1_data_1450[var_r30].unk_04, &lbl_1_data_1450[var_r29].unk_04) / 1000.0f); Hu3DMotionTimeSet(lbl_1_bss_1A0->model[var_r31], 0.0f); Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31], 0x40000003); - Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31], 1); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31], HU3D_ATTR_DISPOFF); } void fn_1_130A4(Vec *arg0, s32 var_r30) @@ -4573,7 +4574,7 @@ void fn_1_130A4(Vec *arg0, s32 var_r30) Hu3DModelPosSet(lbl_1_bss_1A0->model[var_r30], arg0->x, arg0->y, arg0->z); Hu3DMotionTimeSet(lbl_1_bss_1A0->model[var_r30], 0.0f); Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r30], 0x40000003); - Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r30], 1); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r30], HU3D_ATTR_DISPOFF); HuAudFXPlay(0x7B7); } @@ -4643,7 +4644,7 @@ void fn_1_13560(UnkData1380Struct *arg0, s32 *arg1, s32 arg2) fn_1_13174(arg0); for (var_r30 = 0; var_r30 < arg0->unk_08; var_r30++) { if (arg0->unk_24[var_r30] >= 0) { - Hu3DModelAttrReset(lbl_1_bss_1A0->model[arg0->unk_24[var_r30]], 1); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[arg0->unk_24[var_r30]], HU3D_ATTR_DISPOFF); } } } @@ -4984,7 +4985,7 @@ void fn_1_15308(omObjData *object) for (var_r30 = 0; var_r30 < 0x21; var_r30++) { object->model[var_r30] = Hu3DModelCreateFile(lbl_1_data_E7C[var_r30]); Hu3DModelAttrSet(object->model[var_r30], 0x4001); - Hu3DModelAttrSet(object->model[var_r30], 0x40000001); + Hu3DModelAttrSet(object->model[var_r30], HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(object->model[var_r30], 0x40000002); Hu3DModelLayerSet(object->model[var_r30], 0); Hu3DModelPosSet(object->model[var_r30], 0.0f, 0.0f, 0.0f); @@ -5014,15 +5015,15 @@ void fn_1_15308(omObjData *object) fn_1_14AB8(); for (var_r30 = 0; var_r30 <= 1; var_r30++) { - Hu3DModelAttrReset(object->model[var_r30], 1); + Hu3DModelAttrReset(object->model[var_r30], HU3D_ATTR_DISPOFF); } - Hu3DModelAttrReset(object->model[6], 1); - Hu3DModelAttrReset(object->model[17], 1); - Hu3DModelAttrReset(object->model[19], 1); + Hu3DModelAttrReset(object->model[6], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[17], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[19], HU3D_ATTR_DISPOFF); for (var_r30 = 0; var_r30 < 5; var_r30++) { - Hu3DModelAttrSet(object->model[var_r30 + 0x14], 0x40000002); + Hu3DModelAttrSet(object->model[var_r30 + 0x14], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(object->model[var_r30 + 0x14], 0x40000001); - Hu3DModelAttrReset(object->model[var_r30 + 0x14], 1); + Hu3DModelAttrReset(object->model[var_r30 + 0x14], HU3D_ATTR_DISPOFF); } object->func = fn_1_14CE8; } @@ -5200,18 +5201,18 @@ void fn_1_16378(omObjData *object) var_r31->unk_50 = var_r31->unk_50 - 1.0f; if ((lbl_1_bss_308 & 1) != 0) { for (var_r30 = 0; var_r30 < 2; var_r30++) { - Hu3DModelAttrSet(object->model[var_r30], 1); + Hu3DModelAttrSet(object->model[var_r30], HU3D_ATTR_DISPOFF); } } else { for (var_r30 = 0; var_r30 < 2; var_r30++) { - Hu3DModelAttrReset(object->model[var_r30], 1); + Hu3DModelAttrReset(object->model[var_r30], HU3D_ATTR_DISPOFF); } } if (0.0f > var_r31->unk_50) { Hu3DModelShadowReset(object->model[0]); for (var_r30 = 0; var_r30 < 2; var_r30++) { - Hu3DModelAttrSet(object->model[var_r30], 1); + Hu3DModelAttrSet(object->model[var_r30], HU3D_ATTR_DISPOFF); } fn_1_24(0x1000, object->model[0]); fn_1_24(0x2000, object->model[1]); @@ -5267,7 +5268,7 @@ void fn_1_16910(omObjData *object) object->model[1] = var_r26; } for (var_r27 = 0; var_r27 < 2; var_r27++) { - Hu3DModelAttrSet(object->model[var_r27], 1); + Hu3DModelAttrSet(object->model[var_r27], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(object->model[var_r27], 0x40000003); Hu3DModelLayerSet(object->model[var_r27], 4); Hu3DMotionTimeSet(object->model[var_r27], 0.0f); @@ -5277,8 +5278,8 @@ void fn_1_16910(omObjData *object) omSetTra(object, var_r30->unk_00.x, var_r30->unk_00.y, var_r30->unk_00.z); omSetRot(object, 0.0f, 0.0f, 0.0f); Hu3DModelShadowSet(object->model[0]); - Hu3DModelAttrReset(object->model[0], 1); - Hu3DModelAttrReset(object->model[1], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); object->func = fn_1_16378; } @@ -5324,7 +5325,7 @@ void fn_1_16CF4(omObjData *object) if (var_r31->unk_78 != 0) { var_r31->unk_40 = var_r31->unk_40 - 0.1f; if (0.0f > var_r31->unk_40) { - Hu3DModelAttrSet(*object->model, 1); + Hu3DModelAttrSet(*object->model, HU3D_ATTR_DISPOFF); fn_1_24(0x3000, object->model[0]); omDelObjEx(lbl_1_bss_33C, object); return; @@ -5380,13 +5381,13 @@ void fn_1_171C4(omObjData *object) else { object->model[0] = var_r26; } - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(object->model[0], 0x40000002); Hu3DModelLayerSet(object->model[0], 4); omSetTra(object, var_r29->unk_00.x, var_r29->unk_00.y, var_r29->unk_00.z); omSetRot(object, 0.0f, 0.0f, 0.0f); - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); object->func = fn_1_16CF4; } @@ -5425,7 +5426,7 @@ void fn_1_17474(omObjData *object) if (var_r31->unk_74 != 0) { fn_1_1D18(var_r31->unk_54, "g000m0-itemhook_R", &sp8); if (Hu3DMotionShiftIDGet(var_r31->unk_54) < 0) { - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); if (165.0f <= Hu3DMotionTimeGet(var_r31->unk_54)) { HuAudFXPlay(0x7B0); var_r31->unk_74 = 0; @@ -5469,7 +5470,7 @@ void fn_1_17474(omObjData *object) var_r31->unk_40 = var_r31->unk_40 - 0.05f; if (0.0f > var_r31->unk_40) { Hu3DModelShadowReset(object->model[0]); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); fn_1_24(0x4000, object->model[0]); omDelObjEx(lbl_1_bss_33C, object); return; @@ -5518,8 +5519,8 @@ void fn_1_17970(s32 arg0, s32 arg1, float arg8) else { var_r31->model[0] = var_r26; } - Hu3DModelAttrSet(var_r31->model[0], 1); - Hu3DModelAttrSet(var_r31->model[0], 0x40000001); + Hu3DModelAttrSet(var_r31->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->model[0], HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(var_r31->model[0], 0x40000002); Hu3DModelLayerSet(var_r31->model[0], 4); omSetTra(var_r31, 0.0f, 0.0f, 0.0f); @@ -5568,7 +5569,7 @@ void fn_1_17BBC(omObjData *object) var_r31->unk_0C = spC; if ((var_r31->unk_74 != 0) && (var_r22->unk_150 >= 0xBCE)) { Hu3DModelShadowReset(object->model[0]); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); Hu3DModelHookObjReset(var_r31->unk_54, "g000m0-itemhook_R"); fn_1_24(0x4000, object->model[0]); omDelObjEx(lbl_1_bss_33C, object); @@ -5608,7 +5609,7 @@ void fn_1_17BBC(omObjData *object) var_r31->unk_40 = var_r31->unk_40 - 0.05f; if (0.0f > var_r31->unk_40) { Hu3DModelShadowReset(*object->model); - Hu3DModelAttrSet(*object->model, 1); + Hu3DModelAttrSet(*object->model, HU3D_ATTR_DISPOFF); fn_1_24(0x4000, object->model[0]); omDelObjEx(lbl_1_bss_33C, object); return; @@ -5660,15 +5661,15 @@ void fn_1_18424(s32 arg0, Vec *arg1) else { var_r31->model[0] = var_r26; } - Hu3DModelAttrSet(var_r31->model[0], 1); - Hu3DModelAttrSet(var_r31->model[0], 0x40000001); + Hu3DModelAttrSet(var_r31->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->model[0], HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(var_r31->model[0], 0x40000002); Hu3DModelLayerSet(var_r31->model[0], 4); omSetTra(var_r31, 0.0f, 0.0f, 0.0f); omSetRot(var_r31, 0.0f, 0.0f, 0.0f); omSetSca(var_r31, 1.0f, 1.0f, 1.0f); Hu3DModelHookSet(var_r30->unk_54, "g000m0-itemhook_R", var_r31->model[0]); - Hu3DModelAttrReset(var_r31->model[0], 1); + Hu3DModelAttrReset(var_r31->model[0], HU3D_ATTR_DISPOFF); Hu3DModelShadowSet(var_r31->model[0]); Hu3DModelShadowDispOff(var_r31->model[0]); } @@ -5700,7 +5701,7 @@ void fn_1_186A8(void) lbl_1_bss_C4++; lbl_1_bss_C8 = 0.0f; Hu3DModelPosSet(lbl_1_bss_1A0->model[28], 0.0f, 1501.0f, 0.0f); - Hu3DModelAttrReset(lbl_1_bss_1A0->model[28], 1); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[28], HU3D_ATTR_DISPOFF); Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[28], 0.0f); var_r26 = &Hu3DData[lbl_1_bss_1A0->model[28]]; var_r25 = var_r26->hsfData->object; @@ -5765,14 +5766,14 @@ void fn_1_186A8(void) lbl_1_bss_C8 += 1.0f; if (60.0f <= lbl_1_bss_C8) { lbl_1_bss_C4 = -1; - Hu3DModelAttrSet(lbl_1_bss_1A0->model[28], 1); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[28], HU3D_ATTR_DISPOFF); Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[28], 1.0f); - Hu3DModelAttrSet(lbl_1_bss_1A0->model[29], 1); - Hu3DModelAttrSet(lbl_1_bss_1A0->model[30], 1); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[29], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[30], HU3D_ATTR_DISPOFF); for (var_r31 = 0; var_r31 < 3; var_r31++) { lbl_1_data_1450[lbl_1_bss_B8[0]].unk_1C = 0; fn_1_1B510(lbl_1_bss_B8[0]); - Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31 + 0x19], 1); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31 + 0x19], HU3D_ATTR_DISPOFF); Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[var_r31 + 0x19], 1.0f); } fn_1_1B4C8(var_r30); @@ -5999,7 +6000,7 @@ void fn_1_19CE0(omObjData *object) if (var_r31->unk_FC & 0x100) { var_r31->unk_FC |= 0x402; Hu3DModelAttrReset(object->model[0], 0x40000001); - Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); Hu3DMotionSet(object->model[0], object->motion[14]); Hu3DMotionTimeSet(object->model[0], 48.0f); } @@ -6013,9 +6014,9 @@ void fn_1_19CE0(omObjData *object) Hu3DModelPosSet( lbl_1_bss_1A0->model[var_r31->unk_110 + 2], var_r31->unk_00.unk_6C.x, var_r31->unk_00.unk_6C.y, 50.0f + var_r31->unk_00.unk_6C.z); Hu3DMotionTimeSet(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], 0.0f); - Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], 0x40000002); - Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], 1); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], HU3D_ATTR_DISPOFF); } if (var_r31->unk_FC & 0x100000) { var_r31->unk_FC |= 0x400002; @@ -6279,7 +6280,7 @@ void fn_1_1B510(s32 sp8) var_r29->unk_10C--; lbl_1_bss_B8[var_r30] = -1; for (var_r31 = 0; var_r31 < 3; var_r31++) { - Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31 + 0x19], 1); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31 + 0x19], HU3D_ATTR_DISPOFF); } for (var_r31 = var_r30; var_r31 < 2; var_r31++) { lbl_1_bss_B8[var_r31] = lbl_1_bss_B8[var_r31 + 1]; @@ -6426,7 +6427,7 @@ void fn_1_1C434(UnkM450Struct5 *arg0, omObjData *arg1) lbl_1_bss_1A4->work[0] += 1; lbl_1_bss_128 = 0.0f; fn_1_4ED8(&arg0->unk_00, 0); - Hu3DModelAttrReset(arg1->model[0], 1); + Hu3DModelAttrReset(arg1->model[0], HU3D_ATTR_DISPOFF); arg1->func = fn_1_20170; } @@ -6510,7 +6511,7 @@ s32 fn_1_1C898(UnkM450Struct5 *var_r31, omObjData *var_r30) if (120.0f < var_r31->unk_F8) { var_r31->unk_FC &= ~0x40000; fn_1_4ED8(&var_r31->unk_00, 0); - Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], 1); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], HU3D_ATTR_DISPOFF); } return 0; } @@ -6528,10 +6529,10 @@ s32 fn_1_1C898(UnkM450Struct5 *var_r31, omObjData *var_r30) return 0; } if ((var_r31->unk_100 & 1) == 0) { - Hu3DModelAttrSet(var_r30->model[0], 1); + Hu3DModelAttrSet(var_r30->model[0], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrReset(var_r30->model[0], 1); + Hu3DModelAttrReset(var_r30->model[0], HU3D_ATTR_DISPOFF); } if (--var_r31->unk_100 < 0) { var_r31->unk_FC &= ~0x70; @@ -6540,7 +6541,7 @@ s32 fn_1_1C898(UnkM450Struct5 *var_r31, omObjData *var_r30) var_r31->unk_FC &= ~0x70000; var_r31->unk_FC &= ~0x700004; var_r31->unk_FC &= ~0x2; - Hu3DModelAttrReset(var_r30->model[0], 1); + Hu3DModelAttrReset(var_r30->model[0], HU3D_ATTR_DISPOFF); } return 1; } @@ -6685,7 +6686,7 @@ void fn_1_1E150(omObjData *var_r29) var_r31->unk_118 = 0x7EB; Hu3DModelAttrReset(*var_r29->model, 0x40000003); Hu3DMotionShiftSet(*var_r29->model, var_r29->motion[22], 0.0f, 8.0f, 0); - Hu3DModelAttrReset(*var_r29->model, 1); + Hu3DModelAttrReset(*var_r29->model, HU3D_ATTR_DISPOFF); var_r29->func = fn_1_20170; return; } @@ -6721,7 +6722,7 @@ void fn_1_1E150(omObjData *var_r29) var_r31->unk_00.unk_3C &= ~0x2; } Hu3DMotionSet(var_r29->model[0], var_r29->motion[8]); - Hu3DModelAttrReset(var_r29->model[0], 1); + Hu3DModelAttrReset(var_r29->model[0], HU3D_ATTR_DISPOFF); fn_1_125C0(0, 0); var_r29->func = fn_1_20170; return; @@ -7205,13 +7206,13 @@ void fn_1_23330(omObjData *object) object->motion[var_r29] = CharModelMotionCreate(lbl_1_data_0[var_r31->unk_11C], lbl_1_data_64C[var_r31->unk_11C][var_r29]); CharModelMotionSet(lbl_1_data_0[var_r31->unk_11C], object->motion[var_r29]); } - Hu3DModelAttrSet(object->model[0], 1); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(object->model[0], 2); Hu3DMotionSet(object->model[0], *object->motion); omSetTra(var_r31->unk_00.unk_00, var_r31->unk_00.unk_6C.x, var_r31->unk_00.unk_6C.y, var_r31->unk_00.unk_6C.z); omSetRot(var_r31->unk_00.unk_00, 0.0f, var_r31->unk_00.unk_9C, 0.0f); - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); CharModelLayerSetAll2(6); CharModelMotionDataClose(lbl_1_data_0[var_r31->unk_11C]); object->func = fn_1_20170; @@ -7472,7 +7473,7 @@ void fn_1_24620(omObjData *var_r31) var_f31 = 1.0f; } var_r30 = &lbl_1_data_1380; - Hu3DModelAttrReset(lbl_1_bss_1A0->model[5], 1); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[5], HU3D_ATTR_DISPOFF); Hu3DModelRotSet(lbl_1_bss_1A0->model[5], 0.0f, 90.0f, 0.0f); Hu3DModelPosSet(lbl_1_bss_1A0->model[5], var_r30->unk_30[3].x, var_r30->unk_30[3].y, var_r30->unk_30[3].z); Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[5], var_f31); @@ -7495,7 +7496,7 @@ void fn_1_24620(omObjData *var_r31) } omVibrate(lbl_1_bss_120, 0xC, 6, 6); lbl_1_bss_128 += 1.0f; - Hu3DModelAttrReset(lbl_1_bss_1A0->model[7], 1); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[7], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(lbl_1_bss_1A0->model[7], 0.0f, -(60.0f - (lbl_1_bss_128 / 2)), 0.0f); if (120.0f < lbl_1_bss_128) { var_r31->work[0] += 1; @@ -7575,7 +7576,7 @@ void fn_1_24620(omObjData *var_r31) var_f31 = 1.0f; } var_r30 = &lbl_1_data_13B8; - Hu3DModelAttrReset(lbl_1_bss_1A0->model[16], 1); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[16], HU3D_ATTR_DISPOFF); Hu3DModelRotSet(lbl_1_bss_1A0->model[16], 0.0f, -90.0f, 0.0f); Hu3DModelPosSet(lbl_1_bss_1A0->model[16], var_r30->unk_30[8].x, var_r30->unk_30[8].y, var_r30->unk_30[8].z); Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[16], var_f31); @@ -7593,7 +7594,7 @@ void fn_1_24620(omObjData *var_r31) if (120.0f <= lbl_1_bss_128) { lbl_1_bss_128 = 120.0f; } - Hu3DModelAttrReset(lbl_1_bss_1A0->model[18], 1); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[18], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(lbl_1_bss_1A0->model[18], 0.0f, -(60.0f - (lbl_1_bss_128 / 2)), 0.0f); fn_1_1A21C(0.0f, 0.0f); fn_1_1710(lbl_1_bss_128 / 120.0f, &lbl_1_data_470); @@ -7613,7 +7614,7 @@ void fn_1_24620(omObjData *var_r31) var_r31->work[0] += 1; fn_1_1350(&lbl_1_bss_324, &lbl_1_data_470, &lbl_1_bss_30C); fn_1_6CB0(fn_1_9BA4, 5); - Hu3DModelAttrSet(lbl_1_bss_1A0->model[19], 1); + Hu3DModelAttrSet(lbl_1_bss_1A0->model[19], HU3D_ATTR_DISPOFF); } break; case 0x414: @@ -7742,7 +7743,7 @@ void ObjectSetup(void) lbl_1_bss_358.unk08 = NULL; for (var_r31 = 0; var_r31 < 4; var_r31++) { lbl_1_bss_2C[var_r31] = Hu3DModelCreateFile(lbl_1_data_F5C[var_r31]); - Hu3DModelAttrSet(lbl_1_bss_2C[var_r31], 1); + Hu3DModelAttrSet(lbl_1_bss_2C[var_r31], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(lbl_1_bss_2C[var_r31], 0x40000003); } lbl_1_bss_28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M450, 0x6C)); diff --git a/src/REL/m451Dll/m451.c b/src/REL/m451Dll/m451.c index a9e56657..280fe651 100644 --- a/src/REL/m451Dll/m451.c +++ b/src/REL/m451Dll/m451.c @@ -307,15 +307,15 @@ void fn_1_7BC(void) Bss348Data *data = &lbl_1_bss_348[0]; while (1) { if (omPauseChk()) { - Hu3DModelAttrSet(data->unk0[0], 1); - Hu3DModelAttrSet(data->unk0[1], 1); - Hu3DModelAttrSet(data->unk0[2], 1); + Hu3DModelAttrSet(data->unk0[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(data->unk0[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(data->unk0[2], HU3D_ATTR_DISPOFF); HuSprAttrSet(data->unkA, 0, HUSPR_ATTR_DISPOFF); } else { - Hu3DModelAttrReset(data->unk0[0], 1); - Hu3DModelAttrReset(data->unk0[1], 1); - Hu3DModelAttrReset(data->unk0[2], 1); + Hu3DModelAttrReset(data->unk0[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(data->unk0[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(data->unk0[2], HU3D_ATTR_DISPOFF); HuSprAttrReset(data->unkA, 0, HUSPR_ATTR_DISPOFF); } HuPrcVSleep(); @@ -399,7 +399,7 @@ void fn_1_B2C(void) Hu3DModelCameraSet(temp_r31->unk0[0], 1 << temp_r31->unk38); Hu3DModelPosSet(temp_r31->unk0[0], 0, 0, 0); Hu3DModelRotSet(temp_r31->unk0[0], 0, 0, 0); - Hu3DModelAttrSet(temp_r31->unk0[0], 0x4000); + Hu3DModelAttrSet(temp_r31->unk0[0], HU3D_ATTR_NOCULL); temp_r29 = HuDataSelHeapReadNum(lbl_1_data_54[lbl_1_bss_B5C], MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk0[1] = Hu3DModelCreate(temp_r29); temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M451, 0x0D), MEMORY_DEFAULT_NUM, HEAP_DATA); @@ -413,7 +413,7 @@ void fn_1_B2C(void) Hu3DModelPosSet(temp_r31->unk0[2], 0, 0, 0); Hu3DModelRotSet(temp_r31->unk0[2], 0, 0, 0); Hu3DModelTPLvlSet(temp_r31->unk0[2], 128); - Hu3DModelAttrSet(temp_r31->unk0[2], 0x4000); + Hu3DModelAttrSet(temp_r31->unk0[2], HU3D_ATTR_NOCULL); for (temp_r28 = 0; temp_r28 < lbl_1_bss_B58; temp_r28++) { temp_r31->unk6C[temp_r28] = Hu3DModelObjPtrGet(temp_r31->unk0[0], lbl_1_data_464[lbl_1_bss_B5C][temp_r28]); if (!temp_r31->unk6C[temp_r28]) { diff --git a/src/REL/m453Dll/main.c b/src/REL/m453Dll/main.c index 586fc75a..7aa9f8f5 100644 --- a/src/REL/m453Dll/main.c +++ b/src/REL/m453Dll/main.c @@ -707,7 +707,7 @@ void fn_1_1BF0(omObjData *object) } var_r28 = CharModelCreate(var_r31->unk_01, 4); object->model[0] = var_r28; - Hu3DModelAttrSet(var_r28, 0x40000001); + Hu3DModelAttrSet(var_r28, HU3D_MOTATTR_LOOP); Hu3DModelShadowSet(var_r28); for (var_r29 = 0; var_r29 < 8; var_r29++) { object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_01, lbl_1_data_C4[var_r29]); @@ -799,7 +799,7 @@ void fn_1_20EC(omObjData *object) HuAudFXPlay(0x523); var_r31->unk_07 = 0; Hu3DModelShadowReset(var_r29); - Hu3DModelAttrSet(var_r29, 1); + Hu3DModelAttrSet(var_r29, HU3D_ATTR_DISPOFF); lbl_1_data_0--; var_r28 = fn_1_3E9C(0x220013, 0x64, fn_1_3F38); Hu3DModelPosSet(var_r28, var_r31->unk_2C.x, var_r31->unk_2C.y, var_r31->unk_2C.z); @@ -1075,10 +1075,10 @@ void fn_1_2E24(omObjData *object) } if (var_r31->unk_07 & 4) { if (var_r31->unk_0A & 2) { - Hu3DModelAttrSet(var_r25, 1); + Hu3DModelAttrSet(var_r25, HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrReset(var_r25, 1); + Hu3DModelAttrReset(var_r25, HU3D_ATTR_DISPOFF); } if (--var_r31->unk_0A == 0) { var_r31->unk_07 = var_r31->unk_07 & 0xFFFFFFFB; diff --git a/src/REL/m453Dll/map.c b/src/REL/m453Dll/map.c index 60b92749..86a363d1 100644 --- a/src/REL/m453Dll/map.c +++ b/src/REL/m453Dll/map.c @@ -472,10 +472,10 @@ void fn_1_6C74(omObjData *object) } for (var_r31 = 0; (u32)var_r31 < 0xC; var_r31++) { var_r29->unk_24[var_r31] = Hu3DModelCreateFile(lbl_1_data_A58[var_r31]); - Hu3DModelAttrSet(var_r29->unk_24[var_r31], 1); + Hu3DModelAttrSet(var_r29->unk_24[var_r31], HU3D_ATTR_DISPOFF); } object->model[0] = var_r29->unk_24[0]; - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); var_r29->unk_00_field0 = 0; var_r29->unk_04 = 4 - lbl_1_bss_A0; fn_1_6FC4(object); @@ -587,12 +587,12 @@ void fn_1_6FC4(omObjData *object) memcpy(lbl_1_bss_60, &var_r30->unk_0C, 0x18); for (var_r31 = 0; var_r31 < 6; var_r31++) { if (object->model[var_r31 + 1] >= 0) { - Hu3DModelAttrSet(object->model[var_r31 + 1], 1); + Hu3DModelAttrSet(object->model[var_r31 + 1], HU3D_ATTR_DISPOFF); } } for (var_r31 = 0; var_r31 < 6; var_r31++) { object->model[var_r31 + 1] = var_r30->unk_24[var_r30->unk_0C[var_r31]]; - Hu3DModelAttrReset(object->model[var_r31 + 1], 1); + Hu3DModelAttrReset(object->model[var_r31 + 1], HU3D_ATTR_DISPOFF); } } diff --git a/src/REL/mentDll/main.c b/src/REL/mentDll/main.c index 2fe946cc..2a776a88 100644 --- a/src/REL/mentDll/main.c +++ b/src/REL/mentDll/main.c @@ -1,4 +1,5 @@ #include "game/board/main.h" +#include "REL/mentDll.h" #include "ext_math.h" #include "game/armem.h" #include "game/chrman.h" @@ -13,7 +14,6 @@ #include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" -#include "REL/mentDll.h" typedef struct MentDllUnkBssE4Struct { /* 0x00 */ s32 unk_00; @@ -514,7 +514,7 @@ void fn_1_77C0(void) fn_1_2808(fn_1_13DEC); fn_1_4B0(0xF0); for (var_r31 = 0; var_r31 < 5; var_r31++) { - Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], HU3D_ATTR_DISPOFF); } lbl_1_bss_3108[0]->work[0] = 1; fn_1_2808(fn_1_13F68); @@ -528,7 +528,7 @@ void fn_1_7858(void) fn_1_4B0(0x3C); lbl_1_bss_14[0] = HuAudSeqPlay(0x30); for (var_r31 = 0; var_r31 < 5; var_r31++) { - Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], HU3D_ATTR_DISPOFF); } WipeCreate(1, 0, -1); @@ -701,17 +701,17 @@ void fn_1_824C(void) lbl_1_bss_14[0] = HuAudSeqPlay(0x30); if (lbl_1_bss_A8[0] == 0) { for (var_r31 = 0; var_r31 < 6; var_r31++) { - Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], HU3D_ATTR_DISPOFF); } } else { for (var_r31 = 0; var_r31 < 5; var_r31++) { - Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], HU3D_ATTR_DISPOFF); } } Hu3DModelPosSet(lbl_1_bss_33AC[0].unk_00->model[1], 0.0f, 0.0f, 560.0f); fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 2, 0, 2); - Hu3DModelAttrSet(lbl_1_bss_35BC[0].unk_00->model[2], 1); + Hu3DModelAttrSet(lbl_1_bss_35BC[0].unk_00->model[2], HU3D_ATTR_DISPOFF); OSReport("########### ME_MainProcFunc400\n"); WipeCreate(1, 0, -1); @@ -730,12 +730,12 @@ void fn_1_83CC(void) fn_1_4B0(0x5A); if (lbl_1_bss_A8[0] == 0) { for (var_r31 = 0; var_r31 < 6; var_r31++) { - Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], HU3D_ATTR_DISPOFF); } } else { for (var_r31 = 0; var_r31 < 5; var_r31++) { - Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], HU3D_ATTR_DISPOFF); } } fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); @@ -746,7 +746,7 @@ void fn_1_83CC(void) fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 2, 0xF, 1); fn_1_5D38(lbl_1_bss_33AC[0].unk_00, 1, sp14, 0.0f, 3.0f, 0.0f, 1, 0); fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 1, 0xF, 1); - Hu3DModelAttrSet(lbl_1_bss_35BC[0].unk_00->model[2], 1); + Hu3DModelAttrSet(lbl_1_bss_35BC[0].unk_00->model[2], HU3D_ATTR_DISPOFF); fn_1_4B0(0x1E); } @@ -1117,7 +1117,8 @@ s32 fn_1_92CC(void) var_r29 = 1; } break; - } else if (lbl_1_bss_3114[var_r30].unk_70[0] == 1) { + } + else if (lbl_1_bss_3114[var_r30].unk_70[0] == 1) { for (var_r31 = 0; var_r31 < 4; var_r31++) { if (lbl_1_bss_3114[var_r31].unk_70[0] == 0) { lbl_1_bss_3114[var_r31].unk_68 = 0; @@ -1153,19 +1154,22 @@ s32 fn_1_92CC(void) if (var_r31 == 4) { var_r29 = 3; break; - } else { + } + else { if (var_r29 == 1) { fn_1_173FC(&lbl_1_bss_3114[var_r30]); fn_1_17914(&lbl_1_bss_3114[var_r30]); fn_1_173FC(&lbl_1_bss_3114[lbl_1_bss_3114[var_r30].unk_70[1]]); var_r26 = lbl_1_bss_3114[lbl_1_bss_3114[var_r30].unk_70[1]].unk_70[1]; lbl_1_bss_3114[lbl_1_bss_3114[var_r30].unk_70[1]].unk_70[0] = 0; - } else if (var_r29 == 4) { - - } else if (var_r29 == 0) { + } + else if (var_r29 == 4) { + } + else if (var_r29 == 0) { fn_1_17914(&lbl_1_bss_3114[var_r30]); break; - } else { + } + else { break; } } @@ -1212,7 +1216,8 @@ void fn_1_99AC(void) fn_1_1811C(); } -s32 fn_1_99CC(void) { +s32 fn_1_99CC(void) +{ s32 var_r26; s32 temp_r27; s32 var_r28; @@ -1228,7 +1233,7 @@ s32 fn_1_99CC(void) { 0x00000004, 0x00000005, }; - + var_r30 = 2; temp_r27 = fn_1_1434(0, 0, 0); while (1) { @@ -1240,14 +1245,14 @@ s32 fn_1_99CC(void) { fn_1_1968(temp_r27, 0x1A0008U, -1, -1); fn_1_59A0(lbl_1_bss_33AC[sp8[var_r30]].unk_00, 1, 1, 0xF, 1); fn_1_2154(0x1A0020U); - + for (i = 0; i < 6; i++) { lbl_1_bss_33AC[i].unk_08 = 0; - lbl_1_bss_33AC[i].unk_04 = (void (*)(omObjData*, ...)) fn_1_127FC; + lbl_1_bss_33AC[i].unk_04 = (void (*)(omObjData *, ...))fn_1_127FC; } - + lbl_1_bss_33AC[sp8[var_r30]].unk_08 = 1; - lbl_1_bss_35BC->unk_04 = (void (*)(omObjData*, ...)) fn_1_18F74; + lbl_1_bss_35BC->unk_04 = (void (*)(omObjData *, ...))fn_1_18F74; while (1) { fn_1_4D8(); for (i = 0; i < 6; i++) { @@ -1255,35 +1260,42 @@ s32 fn_1_99CC(void) { break; } } - + if (i == 6 && var_r28 >= 0x15) { if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & 0x200)) { HuAudFXPlay(3); var_r29 = 0; break; - } else if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & 0x100)) { + } + else if ((HuPadBtnDown[lbl_1_bss_3114->unk_6C] & 0x100)) { HuAudFXPlay(2); var_r29 = 2; break; - } else { + } + else { if ((HuPadStkX[lbl_1_bss_3114->unk_6C] >= 50) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 2))) { if (lbl_1_bss_A8[4] == 1) { if (++var_r30 > 5) { var_r30 = 5; - } else { - var_r28 = 0; } - } else { - if (++var_r30 > 4) { - var_r30 = 4; - } else { + else { var_r28 = 0; } } - } else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] <= -50) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 1))) { + else { + if (++var_r30 > 4) { + var_r30 = 4; + } + else { + var_r28 = 0; + } + } + } + else if ((HuPadStkX[lbl_1_bss_3114->unk_6C] <= -50) || ((HuPadBtn[lbl_1_bss_3114->unk_6C] & 1))) { if (--var_r30 < 0) { var_r30 = 0; - } else { + } + else { var_r28 = 0; } } @@ -1292,7 +1304,8 @@ s32 fn_1_99CC(void) { if (var_r28 == 0) { if (var_r30 != 5) { fn_1_2808(fn_1_14058); - } else { + } + else { fn_1_2808(fn_1_14148); } for (i = 0; i < 6; i++) { @@ -1304,9 +1317,10 @@ s32 fn_1_99CC(void) { var_r28 = 0x15; fn_1_18A54(sp8[var_r30]); fn_1_1968(temp_r27, sp8[var_r30] + 0x1B0001, -1, -999); - if ((s32) sp8[var_r30] != 0) { + if ((s32)sp8[var_r30] != 0) { HuAudFXPlay(lbl_1_data_0[sp8[var_r30]][0]); - } else { + } + else { HuAudFXPlay(lbl_1_data_0[sp8[var_r30]][2]); } } @@ -1319,12 +1333,13 @@ s32 fn_1_99CC(void) { for (i = 0; i < 6; i++) { lbl_1_bss_33AC[i].unk_08 = 0; } - + lbl_1_bss_33AC[sp8[var_r30]].unk_08 = 1; } fn_1_18DCC(); fn_1_4B0(0x1E); - } else if (var_r29 == 1) { + } + else if (var_r29 == 1) { fn_1_2808(fn_1_14058); if (var_r30 != 2) { var_r30 = 2; @@ -1344,31 +1359,35 @@ s32 fn_1_99CC(void) { fn_1_C174(0); } continue; - } else if (var_r29 == 2) { + } + else if (var_r29 == 2) { for (i = 0; i < 6; i++) { lbl_1_bss_33AC[i].unk_04 = NULL; } lbl_1_bss_A8[2] = sp8[var_r30]; - } else { + } + else { continue; } break; } - + fn_1_16AC(temp_r27); - + if (var_r29 == 0) { for (i = 0; i < 4; i++) { if (lbl_1_bss_3114[i].unk_60 != 0) { break; - } + } } if (i != 4) { var_r29 = 2; - } else { + } + else { var_r29 = 1; } - } else { + } + else { var_r29 = 3; } return var_r29; @@ -1392,7 +1411,7 @@ void fn_1_A0C4(void) fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 3, 0xF, 1); fn_1_5D38(lbl_1_bss_33AC[var_r31].unk_00, 1, sp2C, 30.0f, 6.0f, 10.0f, 1, 1); fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 1, 0xF, 1); - Hu3DModelAttrReset(lbl_1_bss_35BC[0].unk_00->model[2], 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[0].unk_00->model[2], HU3D_ATTR_DISPOFF); fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 2, 0, 0); fn_1_5CDC(lbl_1_bss_35BC[0].unk_00, 2, 0); } @@ -1402,7 +1421,7 @@ void fn_1_A0C4(void) fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 3, 0xF, 1); fn_1_5D38(lbl_1_bss_33AC[var_r31].unk_00, 1, sp20, 30.0f, 6.0f, 10.0f, 1, 1); fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 1, 0xF, 1); - Hu3DModelAttrReset(lbl_1_bss_35BC[1].unk_00->model[2], 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[1].unk_00->model[2], HU3D_ATTR_DISPOFF); fn_1_5818(lbl_1_bss_35BC[1].unk_00, 2, 2, 0, 0); fn_1_5CDC(lbl_1_bss_35BC[1].unk_00, 2, 0); } @@ -1569,12 +1588,12 @@ void fn_1_A9B0(void) var_r31 = 0; } for (var_r29 = 0; var_r29 < 6; var_r29++) { - Hu3DModelAttrSet(lbl_1_bss_33AC[var_r29].unk_00->model[1], 1); + Hu3DModelAttrSet(lbl_1_bss_33AC[var_r29].unk_00->model[1], HU3D_ATTR_DISPOFF); } - Hu3DModelAttrReset(lbl_1_bss_33AC[var_r30].unk_00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r30].unk_00->model[1], HU3D_ATTR_DISPOFF); fn_1_11908(lbl_1_bss_35BC[var_r31].unk_00, lbl_1_bss_A8[2]); - Hu3DModelAttrReset(lbl_1_bss_35BC[var_r31].unk_00->model[4], 1); - Hu3DModelAttrReset(lbl_1_bss_35BC[var_r31].unk_00->model[5], 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[var_r31].unk_00->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_35BC[var_r31].unk_00->model[5], HU3D_ATTR_DISPOFF); lbl_1_bss_35BC[var_r31].unk_04 = (MentDllUnkFunc)fn_1_1184C; if (var_r30 == 5) { sp14.x += 1200.0f; @@ -1593,7 +1612,7 @@ void fn_1_A9B0(void) fn_1_16AC(var_r28); HuAudSeqFadeOut(lbl_1_bss_14[0], 0xBB8); fn_1_5CDC(lbl_1_bss_35BC[var_r31].unk_00, 2, 0); - Hu3DModelAttrSet(lbl_1_bss_35BC[var_r31].unk_00->model[2], 1); + Hu3DModelAttrSet(lbl_1_bss_35BC[var_r31].unk_00->model[2], HU3D_ATTR_DISPOFF); fn_1_2808(fn_1_14418); fn_1_4B0(0xA); HuAudFXPlay(GWPlayerCfg->character + 0x75); @@ -1622,8 +1641,8 @@ void fn_1_AD78(void) } fn_1_5818(lbl_1_bss_35BC[var_r28].unk_00, 2, 3, 0, 0); fn_1_5CDC(lbl_1_bss_35BC[var_r28].unk_00, 2, 0); - Hu3DModelAttrSet(lbl_1_bss_35BC[0].unk_00->model[2], 1); - Hu3DModelAttrSet(lbl_1_bss_35BC[1].unk_00->model[2], 1); + Hu3DModelAttrSet(lbl_1_bss_35BC[0].unk_00->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_35BC[1].unk_00->model[2], HU3D_ATTR_DISPOFF); if (var_r30 != 5) { fn_1_2808(fn_1_146D0); } @@ -1683,7 +1702,7 @@ void fn_1_B084(void) } for (var_r31 = 0; var_r31 < 6; var_r31++) { if (var_r31 != var_r28) { - Hu3DModelAttrSet(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + Hu3DModelAttrSet(lbl_1_bss_33AC[var_r31].unk_00->model[1], HU3D_ATTR_DISPOFF); } } fn_1_5818(lbl_1_bss_35BC[var_r27].unk_00, 2, 3, 0, 0); @@ -1706,7 +1725,7 @@ void fn_1_B084(void) fn_1_5818(lbl_1_bss_35BC[var_r27].unk_00, 2, 2, 0, 0); fn_1_5CDC(lbl_1_bss_35BC[var_r27].unk_00, 2, 0); fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 2); - Hu3DModelAttrReset(lbl_1_bss_35BC[0].unk_00->model[2], 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[0].unk_00->model[2], HU3D_ATTR_DISPOFF); if (var_r28 == 5) { fn_1_2808(fn_1_14058); } @@ -1737,14 +1756,14 @@ void fn_1_B084(void) } Hu3DModelPosSet(lbl_1_bss_33AC[var_r31].unk_00->model[1], lbl_1_data_D8[var_r31].x, lbl_1_data_D8[var_r31].y, lbl_1_data_D8[var_r31].z); Hu3DModelRotSet(lbl_1_bss_33AC[var_r31].unk_00->model[1], 0.0f, lbl_1_data_120[var_r31], 0.0f); - Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], HU3D_ATTR_DISPOFF); } for (var_r31 = 0; var_r31 < 2; var_r31++) { var_r24 = &lbl_1_bss_35BC[var_r31]; for (var_r29 = 0; var_r29 < 5; var_r29++) { var_r24->unk_08[0] = var_r24->unk_08[1] = 0; } - Hu3DModelAttrSet(lbl_1_bss_35BC[1].unk_00->model[2], 1); + Hu3DModelAttrSet(lbl_1_bss_35BC[1].unk_00->model[2], HU3D_ATTR_DISPOFF); } fn_1_14BA8(); fn_1_179DC(); @@ -1752,7 +1771,7 @@ void fn_1_B084(void) fn_1_190E8(); fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); fn_1_5CDC(lbl_1_bss_35BC[0].unk_00, 2, 0); - Hu3DModelAttrSet(lbl_1_bss_35BC[0].unk_00->model[2], 1); + Hu3DModelAttrSet(lbl_1_bss_35BC[0].unk_00->model[2], HU3D_ATTR_DISPOFF); { Vec sp20 = { 0.0f, 0.0f, 560.0f }; fn_1_59A0(lbl_1_bss_33AC[0].unk_00, 1, 2, 0xF, 1); @@ -2364,10 +2383,11 @@ void fn_1_D634(void) s32 sp8[6] = { 1, 2, 0, 3, 4, 5 }; var_r28 = 0; var_r31 = 2; - + if (lbl_1_data_2F0 == -1) { var_r29 = fn_1_1434(0, 0, 0); - } else { + } + else { var_r29 = lbl_1_data_2F0; lbl_1_data_2F0 = -1; } @@ -2399,22 +2419,26 @@ void fn_1_D634(void) var_r26 = 2; break; } - + if ((HuPadStkX[lbl_1_bss_3114[0].unk_6C] >= 0x32) || ((HuPadBtn[lbl_1_bss_3114[0].unk_6C] & PAD_BUTTON_RIGHT) != 0)) { var_r31++; if (var_r31 > 4) { var_r31 = 4; - } else { + } + else { var_r28 = 0; } - } else if ((HuPadStkX[lbl_1_bss_3114[0].unk_6C] <= -50) || ((HuPadBtn[lbl_1_bss_3114[0].unk_6C] & PAD_BUTTON_LEFT) != 0)) { + } + else if ((HuPadStkX[lbl_1_bss_3114[0].unk_6C] <= -50) || ((HuPadBtn[lbl_1_bss_3114[0].unk_6C] & PAD_BUTTON_LEFT) != 0)) { var_r31--; if (var_r31 < 0) { var_r31 = 0; - } else { + } + else { var_r28 = 0; } - } else if ((HuPadBtnDown[0] & 0x200)) { + } + else if ((HuPadBtnDown[0] & 0x200)) { var_r26 = 1; break; } @@ -2431,7 +2455,8 @@ void fn_1_D634(void) fn_1_1968(var_r29, sp8[var_r31] + 0x1B0001, -1, -0x3E7); if (sp8[var_r31] != 0) { HuAudFXPlay(lbl_1_data_0[sp8[var_r31]][0]); - } else { + } + else { HuAudFXPlay(lbl_1_data_0[sp8[var_r31]][2]); } } @@ -2474,7 +2499,8 @@ void fn_1_D634(void) lbl_1_bss_33AC[i].unk_04 = NULL; } lbl_1_bss_A8[2] = sp8[var_r31]; - } else { + } + else { if (var_r31 != 2) { var_r31 = 2; for (i = 0; i < 5; i++) { @@ -2487,7 +2513,8 @@ void fn_1_D634(void) fn_1_4B0(0x1E); continue; } - } else { + } + else { for (i = 0; i < 5; i++) { lbl_1_bss_33AC[i].unk_04 = NULL; } @@ -2509,7 +2536,7 @@ void fn_1_DE60(void) fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 3, 0xF, 1); fn_1_5D38(lbl_1_bss_33AC[var_r31].unk_00, 1, sp14, 5.0f, 6.0f, 10.0f, 1, 1); fn_1_5818(lbl_1_bss_33AC[var_r31].unk_00, 1, 1, 0xF, 1); - Hu3DModelAttrReset(lbl_1_bss_35BC[0].unk_00->model[2], 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[0].unk_00->model[2], HU3D_ATTR_DISPOFF); fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 2, 0, 0); fn_1_5CDC(lbl_1_bss_35BC[0].unk_00, 2, 0); fn_1_4B0(0x3C); @@ -2526,12 +2553,12 @@ void fn_1_DFDC(void) var_r31 = 0; var_r29 = lbl_1_bss_A8[2]; for (var_r30 = 0; var_r30 < 5; var_r30++) { - Hu3DModelAttrSet(lbl_1_bss_33AC[var_r30].unk_00->model[1], 1); + Hu3DModelAttrSet(lbl_1_bss_33AC[var_r30].unk_00->model[1], HU3D_ATTR_DISPOFF); } - Hu3DModelAttrReset(lbl_1_bss_33AC[var_r29].unk_00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_33AC[var_r29].unk_00->model[1], HU3D_ATTR_DISPOFF); fn_1_11908(lbl_1_bss_35BC[var_r31].unk_00, lbl_1_bss_A8[2]); - Hu3DModelAttrReset(lbl_1_bss_35BC[var_r31].unk_00->model[4], 1); - Hu3DModelAttrReset(lbl_1_bss_35BC[var_r31].unk_00->model[5], 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[var_r31].unk_00->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_35BC[var_r31].unk_00->model[5], HU3D_ATTR_DISPOFF); lbl_1_bss_35BC[var_r31].unk_04 = (MentDllUnkFunc)fn_1_1184C; HuDataDirClose(DATADIR_MENT); HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); @@ -2541,7 +2568,7 @@ void fn_1_DFDC(void) fn_1_1968(var_r28, var_r29 + 0x1E000C, -1, -1); fn_1_16AC(var_r28); fn_1_5CDC(lbl_1_bss_35BC[var_r31].unk_00, 2, 0); - Hu3DModelAttrSet(lbl_1_bss_35BC[var_r31].unk_00->model[2], 1); + Hu3DModelAttrSet(lbl_1_bss_35BC[var_r31].unk_00->model[2], HU3D_ATTR_DISPOFF); HuAudSeqFadeOut(lbl_1_bss_14[0], 0xBB8); fn_1_2808(fn_1_14418); fn_1_4B0(0xA); @@ -2563,7 +2590,7 @@ void fn_1_E244(void) void fn_1_E2B4(void) { Vec sp14 = { 0.0f, 0.0f, 560.0f }; - Hu3DModelAttrReset(lbl_1_bss_35BC[0].unk_00->model[2], 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[0].unk_00->model[2], HU3D_ATTR_DISPOFF); fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); fn_1_5CDC(lbl_1_bss_35BC[0].unk_00, 2, 0); fn_1_D330(); @@ -2599,8 +2626,8 @@ void fn_1_E48C(void) fn_1_16AC(var_r31); fn_1_1FC54(); fn_1_4B0(0x3C); - Hu3DModelAttrReset(lbl_1_bss_35BC[1].unk_00->model[4], 1); - Hu3DModelAttrReset(lbl_1_bss_35BC[1].unk_00->model[5], 1); + Hu3DModelAttrReset(lbl_1_bss_35BC[1].unk_00->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_35BC[1].unk_00->model[5], HU3D_ATTR_DISPOFF); fn_1_7304(); HuDataDirClose(DATADIR_MENT); HuPrcChildCreate(fn_1_7218, 0x64, 0x3000, 0, lbl_1_bss_C8); @@ -2609,7 +2636,7 @@ void fn_1_E48C(void) fn_1_4B0(0x3C); HuAudFXPlay(lbl_1_data_0[6][0]); fn_1_5CDC(lbl_1_bss_35BC[1].unk_00, 2, 0); - Hu3DModelAttrSet(lbl_1_bss_35BC[1].unk_00->model[2], 1); + Hu3DModelAttrSet(lbl_1_bss_35BC[1].unk_00->model[2], HU3D_ATTR_DISPOFF); HuAudSeqFadeOut(lbl_1_bss_14[0], 0xBB8); fn_1_2808(fn_1_14418); fn_1_4B0(0xA); @@ -2799,7 +2826,7 @@ void fn_1_10234(void) Vec sp20 = { -120.0f, 0.0f, 670.0f }; fn_1_2808(fn_1_13DEC); fn_1_4B0(0x5A); - Hu3DModelAttrReset(lbl_1_bss_33AC[4].unk_00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_33AC[4].unk_00->model[1], HU3D_ATTR_DISPOFF); fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); fn_1_4B0(0x96); lbl_1_bss_3108[0]->work[0] = 1; @@ -2857,7 +2884,7 @@ void fn_1_10954(void) Vec sp20 = { -120.0f, 0.0f, 670.0f }; fn_1_2808(fn_1_13DEC); fn_1_4B0(0x5A); - Hu3DModelAttrReset(lbl_1_bss_33AC[2].unk_00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_33AC[2].unk_00->model[1], HU3D_ATTR_DISPOFF); fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); fn_1_4B0(0x96); lbl_1_bss_3108[0]->work[0] = 1; @@ -2915,7 +2942,7 @@ void fn_1_11074(void) Vec sp14 = { 0.0f, 0.0f, 560.0f }; fn_1_2808(fn_1_13DEC); fn_1_4B0(0x5A); - Hu3DModelAttrReset(lbl_1_bss_33AC[3].unk_00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_33AC[3].unk_00->model[1], HU3D_ATTR_DISPOFF); fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 3, 0, 0); fn_1_4B0(0x96); lbl_1_bss_3108[0]->work[0] = 1; @@ -3053,8 +3080,8 @@ void fn_1_11908(omObjData *arg0, s32 arg1) Hu3DModelPosSet(arg0->model[4], 1200.0f, 80.0f, 460.0f); Hu3DModelHookSet(arg0->model[4], "koopabox_fix-effect_fook2", arg0->model[5]); } - Hu3DModelAttrSet(arg0->model[4], 1); - Hu3DModelAttrSet(arg0->model[5], 1); + Hu3DModelAttrSet(arg0->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); Hu3DModelShadowSet(arg0->model[4]); } @@ -3104,7 +3131,7 @@ void fn_1_11DA4(omObjData *object, s32 arg1, s32 arg2, s32 arg3) } else { fn_1_59A0(object, 2, 2, 0, 2); - Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); } fn_1_59A0(object, 1, 1, 0, 1); Hu3DModelPosSet(object->model[1], 1200.0f, 0.0f, 0.0f); @@ -3118,11 +3145,11 @@ void fn_1_11DA4(omObjData *object, s32 arg1, s32 arg2, s32 arg3) fn_1_59A0(object, 5, 5, 0, 2); Hu3DModelPosSet(object->model[4], 1200.0f, 80.0f, 460.0f); Hu3DModelHookSet(object->model[4], "koopabox_fix-effect_fook2", object->model[5]); - Hu3DModelAttrSet(object->model[4], 1); - Hu3DModelAttrSet(object->model[5], 1); + Hu3DModelAttrSet(object->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[5], HU3D_ATTR_DISPOFF); Hu3DModelShadowSet(object->model[4]); - Hu3DModelAttrReset(object->model[4], 1); - Hu3DModelAttrReset(object->model[5], 1); + Hu3DModelAttrReset(object->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[5], HU3D_ATTR_DISPOFF); lbl_1_bss_35BC[1].unk_04 = (MentDllUnkFunc)fn_1_1184C; } Hu3DModelShadowMapObjSet(object->model[1], "base_story-base"); @@ -3135,8 +3162,8 @@ void fn_1_11DA4(omObjData *object, s32 arg1, s32 arg2, s32 arg3) fn_1_59A0(object, 5, 5, 0, 2); Hu3DModelPosSet(object->model[4], 1200.0f, 80.0f, 460.0f); Hu3DModelHookSet(object->model[4], "koopabox_fix-effect_fook2", object->model[5]); - Hu3DModelAttrSet(object->model[4], 1); - Hu3DModelAttrSet(object->model[5], 1); + Hu3DModelAttrSet(object->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[5], HU3D_ATTR_DISPOFF); Hu3DModelShadowSet(object->model[4]); } } @@ -3307,7 +3334,7 @@ void fn_1_12A0C(omObjData *object, s32 arg1) } } if (lbl_1_bss_A8[0] < 0xA) { - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); } Hu3DModelShadowSet(object->model[1]); Hu3DModelLayerSet(object->model[1], 2); @@ -4069,71 +4096,76 @@ s32 fn_1_1648C(MentDllUnkBss3114Struct *arg0) var_r28 = 0; var_r29 = lbl_1_bss_35BC[0].unk_30; - while(1) { + while (1) { fn_1_4D8(); var_r28 = 0; var_r26 = arg0->unk_64; - if(HuPadStkX[lbl_1_bss_3114->unk_6C] >= 5 || (HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_RIGHT)) { - if(lbl_1_bss_A8[5] == 1) { + if (HuPadStkX[lbl_1_bss_3114->unk_6C] >= 5 || (HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_RIGHT)) { + if (lbl_1_bss_A8[5] == 1) { arg0->unk_64++; var_r28 = 1; - if(arg0->unk_64 > 3) { - arg0->unk_64 = 0; - } - } else { - arg0->unk_64++; - var_r28 = 1; - if(arg0->unk_64 > 2) { + if (arg0->unk_64 > 3) { arg0->unk_64 = 0; } } - } else if(HuPadStkX[lbl_1_bss_3114->unk_6C] <= -5 || (HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_LEFT)) { - if(lbl_1_bss_A8[5] == 1) { + else { + arg0->unk_64++; + var_r28 = 1; + if (arg0->unk_64 > 2) { + arg0->unk_64 = 0; + } + } + } + else if (HuPadStkX[lbl_1_bss_3114->unk_6C] <= -5 || (HuPadBtn[lbl_1_bss_3114->unk_6C] & PAD_BUTTON_LEFT)) { + if (lbl_1_bss_A8[5] == 1) { arg0->unk_64--; var_r28 = -1; - if(arg0->unk_64 < 0) { + if (arg0->unk_64 < 0) { arg0->unk_64 = 3; } - } else { + } + else { arg0->unk_64--; var_r28 = -1; - if(arg0->unk_64 < 0) { + if (arg0->unk_64 < 0) { arg0->unk_64 = 2; } } - } else if(HuPadBtnDown[0] & PAD_BUTTON_A) { + } + else if (HuPadBtnDown[0] & PAD_BUTTON_A) { var_r27 = 1; HuAudFXPlay(2); break; - } else if(HuPadBtnDown[0] & PAD_BUTTON_B) { + } + else if (HuPadBtnDown[0] & PAD_BUTTON_B) { var_r27 = 0; HuAudFXPlay(3); break; } - if(arg0->unk_64 != var_r26) { + if (arg0->unk_64 != var_r26) { HuAudFXPlay(0); - for(var_r30=0; var_r30<=5; var_r30++) { + for (var_r30 = 0; var_r30 <= 5; var_r30++) { fn_1_4D8(); - var_f31 = fn_1_32C(lbl_1_data_57C[arg0->unk_68%4][0], lbl_1_data_57C[arg0->unk_68%4][0]+(var_r28*10), var_r30, 5); - HuSprPosSet(var_r29, arg0->unk_58+32, var_f31, lbl_1_data_57C[arg0->unk_68/4][1]+35); - HuSprPosSet(var_r29, arg0->unk_58+36, 1+var_f31, lbl_1_data_57C[arg0->unk_68/4][1]+37); + var_f31 = fn_1_32C(lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 % 4][0] + (var_r28 * 10), var_r30, 5); + HuSprPosSet(var_r29, arg0->unk_58 + 32, var_f31, lbl_1_data_57C[arg0->unk_68 / 4][1] + 35); + HuSprPosSet(var_r29, arg0->unk_58 + 36, 1 + var_f31, lbl_1_data_57C[arg0->unk_68 / 4][1] + 37); } - HuSprBankSet(var_r29, arg0->unk_58+32, arg0->unk_64); - for(var_r30=0; var_r30<=5; var_r30++) { + HuSprBankSet(var_r29, arg0->unk_58 + 32, arg0->unk_64); + for (var_r30 = 0; var_r30 <= 5; var_r30++) { fn_1_4D8(); - var_f31 = fn_1_32C(lbl_1_data_57C[arg0->unk_68%4][0]+(var_r28*10), lbl_1_data_57C[arg0->unk_68%4][0], var_r30, 5); - HuSprPosSet(var_r29, arg0->unk_58+32, var_f31, lbl_1_data_57C[arg0->unk_68/4][1]+35); - HuSprPosSet(var_r29, arg0->unk_58+36, 1+var_f31, lbl_1_data_57C[arg0->unk_68/4][1]+37); + var_f31 = fn_1_32C(lbl_1_data_57C[arg0->unk_68 % 4][0] + (var_r28 * 10), lbl_1_data_57C[arg0->unk_68 % 4][0], var_r30, 5); + HuSprPosSet(var_r29, arg0->unk_58 + 32, var_f31, lbl_1_data_57C[arg0->unk_68 / 4][1] + 35); + HuSprPosSet(var_r29, arg0->unk_58 + 36, 1 + var_f31, lbl_1_data_57C[arg0->unk_68 / 4][1] + 37); } } } - if(var_r27 == 1) { - HuSprPosSet(var_r29, arg0->unk_58+49, lbl_1_data_57C[arg0->unk_68%4][0], lbl_1_data_57C[arg0->unk_68/4][1]+35); - HuSprBankSet(var_r29, arg0->unk_58+49, arg0->unk_64); - HuSprAttrReset(var_r29, arg0->unk_58+49, 4); - HuSprAttrSet(var_r29, arg0->unk_58+32, 4); + if (var_r27 == 1) { + HuSprPosSet(var_r29, arg0->unk_58 + 49, lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 / 4][1] + 35); + HuSprBankSet(var_r29, arg0->unk_58 + 49, arg0->unk_64); + HuSprAttrReset(var_r29, arg0->unk_58 + 49, 4); + HuSprAttrSet(var_r29, arg0->unk_58 + 32, 4); } - + return var_r27; } @@ -6268,7 +6300,7 @@ void fn_1_21134(omObjData *object) } if (object->work[0] == 1) { for (var_r31 = 0xA; var_r31 < 0x8C; var_r31++) { - Hu3DModelAttrSet(object->model[var_r31], 1); + Hu3DModelAttrSet(object->model[var_r31], HU3D_ATTR_DISPOFF); } } } @@ -6433,7 +6465,7 @@ void fn_1_225F4(omObjData *object) lbl_1_bss_E4[var_r30].unk_08 *= -1; } } - Hu3DModelAttrReset(object->model[var_r30], 1); + Hu3DModelAttrReset(object->model[var_r30], HU3D_ATTR_DISPOFF); Hu3DData[object->model[var_r30]].pos.x += lbl_1_bss_E4[var_r30].unk_0C; Hu3DData[object->model[var_r30]].pos.y -= (var_r30 % 3) + 2; Hu3DData[object->model[var_r30]].pos.z += lbl_1_bss_E4[var_r30].unk_14; @@ -6461,7 +6493,7 @@ void fn_1_225F4(omObjData *object) } break; case 2: - Hu3DModelAttrSet(object->model[var_r30], 1); + Hu3DModelAttrSet(object->model[var_r30], HU3D_ATTR_DISPOFF); break; } } @@ -6480,7 +6512,7 @@ void fn_1_2342C(omObjData *object) object->model[var_r30] = Hu3DModelLink(object->model[0]); } for (var_r30 = 0; var_r30 < 0xC8; var_r30++) { - Hu3DModelAttrSet(object->model[var_r30], 1); + Hu3DModelAttrSet(object->model[var_r30], HU3D_ATTR_DISPOFF); Hu3DData[object->model[var_r30]].pos.x = rand8() + rand8(); if (rand8() == 0) { Hu3DData[object->model[var_r30]].pos.x *= -1.0f; diff --git a/src/REL/mgmodedll/battle.c b/src/REL/mgmodedll/battle.c index 75aa11b7..a78bdc8a 100644 --- a/src/REL/mgmodedll/battle.c +++ b/src/REL/mgmodedll/battle.c @@ -2,12 +2,12 @@ #include "game/gamework.h" #include "game/audio.h" +#include "game/chrman.h" #include "game/esprite.h" #include "game/gamework_data.h" +#include "game/minigame_seq.h" #include "game/saveload.h" #include "game/wipe.h" -#include "game/chrman.h" -#include "game/minigame_seq.h" #include "ext_math.h" @@ -44,9 +44,9 @@ s32 fn_1_E72C(void) temp_r29 = 0; fn_1_279FC(0); fn_1_FF5C(); - if(lbl_1_bss_4 == 3) { + if (lbl_1_bss_4 == 3) { mgTypeCurr = mgInfoTbl[GWSystem.mg_next].type; - if(mgTypeCurr >= 4) { + if (mgTypeCurr >= 4) { mgTypeCurr = 3; } HuSprGrpPosSet(lbl_1_bss_388, 288, 240); @@ -54,95 +54,100 @@ s32 fn_1_E72C(void) Hu3DModelPosSet(lbl_1_bss_2C80[5], -350, 0, 680); Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, 20, 0); fn_1_27418(); - for(temp_r31=0; temp_r31<4; temp_r31++) { - Hu3DModelPosSet(lbl_1_bss_2C14[temp_r31], (temp_r31*130)-195, 0, 750); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + Hu3DModelPosSet(lbl_1_bss_2C14[temp_r31], (temp_r31 * 130) - 195, 0, 750); Hu3DMotionSet(lbl_1_bss_2C14[temp_r31], lbl_1_bss_2BC4[temp_r31][0]); - Hu3DModelAttrSet(lbl_1_bss_2C14[temp_r31], 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_2C14[temp_r31], HU3D_MOTATTR_LOOP); } - for(temp_r31=0; temp_r31<4; temp_r31++) { - HuSprAttrSet(lbl_1_bss_388, (temp_r31*2)+2, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(lbl_1_bss_388, (temp_r31*2)+3, HUSPR_ATTR_DISPOFF); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + HuSprAttrSet(lbl_1_bss_388, (temp_r31 * 2) + 2, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(lbl_1_bss_388, (temp_r31 * 2) + 3, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(lbl_1_bss_388, mgTypeCurr+19, HUSPR_ATTR_DISPOFF); - HuSprPosSet(lbl_1_bss_388, mgTypeCurr+19, 0, -155); + HuSprAttrReset(lbl_1_bss_388, mgTypeCurr + 19, HUSPR_ATTR_DISPOFF); + HuSprPosSet(lbl_1_bss_388, mgTypeCurr + 19, 0, -155); HuSprPosSet(lbl_1_bss_388, 1, 0, -180); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - if(fn_1_1129C() && !fn_1_11E68()) { + if (fn_1_1129C() && !fn_1_11E68()) { return 1; } - } else { + } + else { CharModelDataClose(-1); - if(HuDataReadChk(DATADIR_INSTPIC) == -1) { + if (HuDataReadChk(DATADIR_INSTPIC) == -1) { temp_r26 = HuDataDirReadAsync(DATADIR_INSTPIC); - } else { + } + else { temp_r26 = -1; } - for(temp_r31=0; temp_r31<=60; temp_r31++) { - if(temp_r31 <= 50) { - temp_f31 = temp_r31/50.0; - HuSprGrpPosSet(lbl_1_bss_388, 288, -400.0+(656.0*sind(temp_f31*90.0f))); - } else { - temp_f31 = (temp_r31-50)/10.0; - HuSprGrpPosSet(lbl_1_bss_388, 288, 240.0+(16.0*cosd(temp_f31*90.0f))); + for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { + if (temp_r31 <= 50) { + temp_f31 = temp_r31 / 50.0; + HuSprGrpPosSet(lbl_1_bss_388, 288, -400.0 + (656.0 * sind(temp_f31 * 90.0f))); + } + else { + temp_f31 = (temp_r31 - 50) / 10.0; + HuSprGrpPosSet(lbl_1_bss_388, 288, 240.0 + (16.0 * cosd(temp_f31 * 90.0f))); } HuPrcVSleep(); } - for(temp_r31=0; temp_r31<=5; temp_r31++) { - for(temp_r30=0; temp_r30<4; temp_r30++) { - if(temp_r30 != temp_r29) { - HuSprTPLvlSet(lbl_1_bss_388, (temp_r30*2)+2, 1-(temp_r31/5.0)); + for (temp_r31 = 0; temp_r31 <= 5; temp_r31++) { + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + if (temp_r30 != temp_r29) { + HuSprTPLvlSet(lbl_1_bss_388, (temp_r30 * 2) + 2, 1 - (temp_r31 / 5.0)); } } HuPrcVSleep(); } - if(temp_r26 != -1) { - while(!HuDataGetAsyncStat(temp_r26)) { + if (temp_r26 != -1) { + while (!HuDataGetAsyncStat(temp_r26)) { HuPrcVSleep(); } } - repeat_mode: - if(lbl_1_bss_20AA == 0) { + repeat_mode: + if (lbl_1_bss_20AA == 0) { HuPrcChildCreate(fn_1_27080, 100, 12288, 0, lbl_1_bss_2D8); lbl_1_bss_20AA = 1; } lbl_1_bss_3A4 = fn_1_25CA8(0x1A0020); - if(lbl_1_data_148 == -1) { + if (lbl_1_data_148 == -1) { lbl_1_data_148 = fn_1_2530C(0, 0, 0); } HuWinMesSpeedSet(lbl_1_data_148, 1); fn_1_25838(lbl_1_data_148, 0x28000F, -1, -1); - while(1) { + while (1) { temp_r28 = 0; - if((HuPadDStkRep[0] & PAD_BUTTON_UP) && temp_r29 > 0) { + if ((HuPadDStkRep[0] & PAD_BUTTON_UP) && temp_r29 > 0) { temp_r28 = -1; - } else if((HuPadDStkRep[0] & PAD_BUTTON_DOWN) && temp_r29 < 3) { + } + else if ((HuPadDStkRep[0] & PAD_BUTTON_DOWN) && temp_r29 < 3) { temp_r28 = 1; } - if(temp_r28 != 0) { - HuSprAttrReset(lbl_1_bss_388, (temp_r29*2)+3, HUSPR_ATTR_DISPOFF); - for(temp_r31=0; temp_r31<=10; temp_r31++) { - HuSprTPLvlSet(lbl_1_bss_388, (temp_r29*2)+2, 1-(temp_r31/10.0)); - if(temp_r31 == 5) { + if (temp_r28 != 0) { + HuSprAttrReset(lbl_1_bss_388, (temp_r29 * 2) + 3, HUSPR_ATTR_DISPOFF); + for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { + HuSprTPLvlSet(lbl_1_bss_388, (temp_r29 * 2) + 2, 1 - (temp_r31 / 10.0)); + if (temp_r31 == 5) { HuAudFXPlay(0); - HuSprTPLvlSet(lbl_1_bss_388, ((temp_r29+temp_r28)*2)+2, 1); - HuSprAttrReset(lbl_1_bss_388, ((temp_r29+temp_r28)*2)+2, HUSPR_ATTR_DISPOFF); + HuSprTPLvlSet(lbl_1_bss_388, ((temp_r29 + temp_r28) * 2) + 2, 1); + HuSprAttrReset(lbl_1_bss_388, ((temp_r29 + temp_r28) * 2) + 2, HUSPR_ATTR_DISPOFF); } HuPrcVSleep(); } temp_r29 += temp_r28; } - if(HuPadBtnDown[0] & PAD_BUTTON_B) { + if (HuPadBtnDown[0] & PAD_BUTTON_B) { HuAudFXPlay(3); fn_1_25E74(lbl_1_bss_3A4); fn_1_25584(lbl_1_data_148); lbl_1_data_148 = -1; - for(temp_r31=0; temp_r31<=60; temp_r31++) { - if(temp_r31 <= 10) { - temp_f31 = temp_r31/10.0; - HuSprGrpPosSet(lbl_1_bss_388, 288, 240.0+(16.0*sind(temp_f31*90.0f))); - } else { - temp_f31 = (temp_r31-10)/50.0; - HuSprGrpPosSet(lbl_1_bss_388, 288, -400.0+(656.0*cosd(temp_f31*90.0f))); + for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { + if (temp_r31 <= 10) { + temp_f31 = temp_r31 / 10.0; + HuSprGrpPosSet(lbl_1_bss_388, 288, 240.0 + (16.0 * sind(temp_f31 * 90.0f))); + } + else { + temp_f31 = (temp_r31 - 10) / 50.0; + HuSprGrpPosSet(lbl_1_bss_388, 288, -400.0 + (656.0 * cosd(temp_f31 * 90.0f))); } HuPrcVSleep(); } @@ -150,9 +155,9 @@ s32 fn_1_E72C(void) lbl_1_bss_388 = 0; return 0; } - if(HuPadBtnDown[0] & PAD_BUTTON_A) { + if (HuPadBtnDown[0] & PAD_BUTTON_A) { HuAudFXPlay(1); - if(lbl_1_bss_20AC[lbl_1_data_A2[temp_r29]]) { + if (lbl_1_bss_20AC[lbl_1_data_A2[temp_r29]]) { break; } fn_1_25838(lbl_1_data_148, 0x28002E, -1, -1); @@ -165,101 +170,103 @@ s32 fn_1_E72C(void) fn_1_25584(lbl_1_data_148); lbl_1_data_148 = lbl_1_bss_3A4 = -1; mgTypeCurr = temp_r29; - if(temp_r29 == 1 || temp_r29 == 2) { - if(fn_1_C0C8(1) == 0) { + if (temp_r29 == 1 || temp_r29 == 2) { + if (fn_1_C0C8(1) == 0) { goto repeat_mode; } - } else { - for(temp_r31=0; temp_r31<4; temp_r31++) { + } + else { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { GWPlayerCfg[temp_r31].group = temp_r31; } } - for(temp_r31=0; temp_r31<=10; temp_r31++) { - for(temp_r30=0; temp_r30<4; temp_r30++) { - HuSprTPLvlSet(lbl_1_bss_388, (temp_r30*2)+3, 1-(temp_r31/10.0)); + for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + HuSprTPLvlSet(lbl_1_bss_388, (temp_r30 * 2) + 3, 1 - (temp_r31 / 10.0)); } HuPrcVSleep(); } Hu3DMotionTimeSet(lbl_1_bss_2C80[5], 0); HuPrcVSleep(); - temp_r28 = (temp_r29*40)-110; + temp_r28 = (temp_r29 * 40) - 110; temp_r25 = &Hu3DData[lbl_1_bss_2C80[5]]; sp20 = temp_r25->pos; sp14.x = -350; sp14.y = 0; sp14.z = 680; VECSubtract(&sp14, &sp20, &sp14); - temp_f30 = (180+atan2d(sp14.z, sp14.x))-360; + temp_f30 = (180 + atan2d(sp14.z, sp14.x)) - 360; Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[7], 0, 8, HU3D_MOTATTR_LOOP); - for(temp_r31=0; temp_r31<=30; temp_r31++) { - if(temp_r31 <= 20) { - temp_f31 = temp_r31/20.0; - HuSprPosSet(lbl_1_bss_388, (temp_r29*2)+2, 0, (sind(temp_f31*90.0f)*(-150-temp_r28))+temp_r28); + for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { + if (temp_r31 <= 20) { + temp_f31 = temp_r31 / 20.0; + HuSprPosSet(lbl_1_bss_388, (temp_r29 * 2) + 2, 0, (sind(temp_f31 * 90.0f) * (-150 - temp_r28)) + temp_r28); } - temp_f31 = temp_r31/30.0; + temp_f31 = temp_r31 / 30.0; VECScale(&sp14, &sp8, temp_f31); VECAdd(&sp20, &sp8, &sp8); Hu3DModelPosSetV(lbl_1_bss_2C80[5], &sp8); - if(temp_r31 <= 10) { - temp_f31 = temp_r31/10.0; - Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f30*temp_f31, 0); + if (temp_r31 <= 10) { + temp_f31 = temp_r31 / 10.0; + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f30 * temp_f31, 0); } HuPrcVSleep(); } HuSprGrpDrawNoSet(lbl_1_bss_388, 64); Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 8, HU3D_MOTATTR_LOOP); - for(temp_r31=0; temp_r31<=10; temp_r31++) { - temp_f31 = temp_r31/10.0; - Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f30+((20-temp_f30)*temp_f31), 0); + for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { + temp_f31 = temp_r31 / 10.0; + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f30 + ((20 - temp_f30) * temp_f31), 0); HuPrcVSleep(); } - while(lbl_1_bss_20AA) { + while (lbl_1_bss_20AA) { HuPrcVSleep(); } Hu3DMotionTimeSet(lbl_1_bss_2C80[5], 0); HuPrcVSleep(); fn_1_27418(); - for(temp_r31=0; temp_r31<4; temp_r31++) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { CharModelMotionSet(lbl_1_bss_2C24[temp_r31], lbl_1_bss_2BC4[temp_r31][2]); - Hu3DModelAttrSet(lbl_1_bss_2C14[temp_r31], 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_2C14[temp_r31], HU3D_MOTATTR_LOOP); Hu3DModelRotSet(lbl_1_bss_2C14[temp_r31], 0, -90, 0); } - for(temp_r31=0; temp_r31<=30; temp_r31++) { - temp_f31 = temp_r31/30.0f; - for(temp_r30=0; temp_r30<4; temp_r30++) { - Hu3DModelPosSet(lbl_1_bss_2C14[temp_r30], (sind(temp_f31*90.0f)*(((temp_r30*130)-195)-((temp_r30*130)+400)))+((temp_r30*130)+400), 0, 750); - if((temp_r31+(temp_r30*2))%5 == 0) { - HuAudFXPlay(GWPlayerCfg[temp_r30].character+213); + for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { + temp_f31 = temp_r31 / 30.0f; + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + Hu3DModelPosSet(lbl_1_bss_2C14[temp_r30], + (sind(temp_f31 * 90.0f) * (((temp_r30 * 130) - 195) - ((temp_r30 * 130) + 400))) + ((temp_r30 * 130) + 400), 0, 750); + if ((temp_r31 + (temp_r30 * 2)) % 5 == 0) { + HuAudFXPlay(GWPlayerCfg[temp_r30].character + 213); } } HuPrcVSleep(); } - for(temp_r31=0; temp_r31<4; temp_r31++) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { Hu3DMotionShiftSet(lbl_1_bss_2C14[temp_r31], lbl_1_bss_2BC4[temp_r31][0], 0, 10, HU3D_MOTATTR_LOOP); } - for(temp_r31=0; temp_r31<=10; temp_r31++) { - temp_f31 = temp_r31/10.0f; - for(temp_r30=0; temp_r30<4; temp_r30++) { - Hu3DModelRotSet(lbl_1_bss_2C14[temp_r30], 0, -90.0*(1.0-temp_f31), 0); + for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { + temp_f31 = temp_r31 / 10.0f; + for (temp_r30 = 0; temp_r30 < 4; temp_r30++) { + Hu3DModelRotSet(lbl_1_bss_2C14[temp_r30], 0, -90.0 * (1.0 - temp_f31), 0); } HuPrcVSleep(); } - for(temp_r31=0; temp_r31<4; temp_r31++) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { mgBattleStar[temp_r31] = 0; } } - if(lbl_1_data_148 == -1) { + if (lbl_1_data_148 == -1) { lbl_1_data_148 = fn_1_2530C(0, 0, 0); } fn_1_25838(lbl_1_data_148, 0x280010, -1, -1); HuSprTPLvlSet(lbl_1_bss_388, 10, 1); - for(temp_r30=0; temp_r30<35;) { - for(temp_r31=0; temp_r31= 35) { + if (temp_r30 >= 35) { break; } } @@ -270,34 +277,36 @@ s32 fn_1_E72C(void) HuWinAttrSet(lbl_1_data_148, 0x10); HuWinInsertMesSet(lbl_1_data_148, mgInfoTbl[lbl_1_bss_2E4].name_mess, 0); fn_1_25838(lbl_1_data_148, 0x280011, -1, -1); - repeat_mess: +repeat_mess: fn_1_25838(lbl_1_data_148, 0x280029, -1, -1); temp_r27 = HuWinChoiceGet(lbl_1_data_148, 0); - if(temp_r27 == 0) { + if (temp_r27 == 0) { _ClearFlag(11); - } else if(temp_r27 == 1) { + } + else if (temp_r27 == 1) { HuWinInsertMesSet(lbl_1_data_148, MAKE_MESSID(0x28, 39), 0); fn_1_25838(lbl_1_data_148, 0x280026, -1, -1); temp_r27 = HuWinChoiceGet(lbl_1_data_148, 1); - if(temp_r27 == 1) { + if (temp_r27 == 1) { goto repeat_mess; } fn_1_271B4(-1, 0, 0); - for(temp_r31=1; temp_r31<=10; temp_r31++) { - HuSprTPLvlSet(lbl_1_bss_388, 10, 1-(temp_r31/10.0)); + for (temp_r31 = 1; temp_r31 <= 10; temp_r31++) { + HuSprTPLvlSet(lbl_1_bss_388, 10, 1 - (temp_r31 / 10.0)); HuPrcVSleep(); } fn_1_25584(lbl_1_data_148); lbl_1_data_148 = lbl_1_bss_3A4 = -1; fn_1_1222C(); return 1; - } else { + } + else { _SetFlag(11); } GWSystem.mg_next = lbl_1_bss_2E4; HuDataDirClose(DATADIR_INSTPIC); fn_1_2783C(3); - while(1) { + while (1) { HuPrcVSleep(); } } @@ -318,7 +327,7 @@ void fn_1_FF5C(void) AnimData *temp_r28; s16 temp_r27; AnimData *temp_r26; - if(lbl_1_bss_388 == 0) { + if (lbl_1_bss_388 == 0) { temp_r30 = HuSprGrpCreate(23); lbl_1_bss_388 = temp_r30; temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 125), MEMORY_DEFAULT_NUM)); @@ -326,28 +335,30 @@ void fn_1_FF5C(void) HuSprGrpMemberSet(temp_r30, 0, temp_r29); HuSprTPLvlSet(temp_r30, 0, 0.8f); temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 54), MEMORY_DEFAULT_NUM)); - if(mgBattleStarMax == 3) { + if (mgBattleStarMax == 3) { temp_r27 = 0; - } else if(mgBattleStarMax == 5) { + } + else if (mgBattleStarMax == 5) { temp_r27 = 1; - } else { + } + else { temp_r27 = 2; } temp_r29 = HuSprCreate(temp_r28, 190, temp_r27); HuSprGrpMemberSet(temp_r30, 1, temp_r29); HuSprPosSet(temp_r30, 1, 0, -180); - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 55)+(lbl_1_data_14A[temp_r31]*3), MEMORY_DEFAULT_NUM)); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 55) + (lbl_1_data_14A[temp_r31] * 3), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r28, 190, 0); - HuSprGrpMemberSet(temp_r30, (2*temp_r31)+2, temp_r29); - HuSprPosSet(temp_r30, (2*temp_r31)+2, 0, (temp_r31*40)-110); - temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 56)+(lbl_1_data_14A[temp_r31]*3), MEMORY_DEFAULT_NUM)); + HuSprGrpMemberSet(temp_r30, (2 * temp_r31) + 2, temp_r29); + HuSprPosSet(temp_r30, (2 * temp_r31) + 2, 0, (temp_r31 * 40) - 110); + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 56) + (lbl_1_data_14A[temp_r31] * 3), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r28, 195, 0); - HuSprGrpMemberSet(temp_r30, (2*temp_r31)+3, temp_r29); - HuSprPosSet(temp_r30, (2*temp_r31)+3, 0, (temp_r31*40)-110); - temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 57)+(lbl_1_data_14A[temp_r31]*3), MEMORY_DEFAULT_NUM)); + HuSprGrpMemberSet(temp_r30, (2 * temp_r31) + 3, temp_r29); + HuSprPosSet(temp_r30, (2 * temp_r31) + 3, 0, (temp_r31 * 40) - 110); + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 57) + (lbl_1_data_14A[temp_r31] * 3), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r28, 195, 0); - HuSprGrpMemberSet(temp_r30, temp_r31+19, temp_r29); + HuSprGrpMemberSet(temp_r30, temp_r31 + 19, temp_r29); } temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 37), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r28, 195, 0); @@ -357,19 +368,19 @@ void fn_1_FF5C(void) HuSprTPLvlSet(temp_r30, 10, 0); temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 101), MEMORY_DEFAULT_NUM)); temp_r26 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 102), MEMORY_DEFAULT_NUM)); - for(temp_r31=0; temp_r31<4; temp_r31++) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { temp_r29 = HuSprCreate(temp_r28, 180, temp_r31); - HuSprGrpMemberSet(temp_r30, (temp_r31*2)+11, temp_r29); - HuSprPosSet(temp_r30, (temp_r31*2)+11, ((temp_r31%2)*350)-175, ((temp_r31/2)*220)-180); + HuSprGrpMemberSet(temp_r30, (temp_r31 * 2) + 11, temp_r29); + HuSprPosSet(temp_r30, (temp_r31 * 2) + 11, ((temp_r31 % 2) * 350) - 175, ((temp_r31 / 2) * 220) - 180); temp_r29 = HuSprCreate(temp_r26, 190, temp_r31); - HuSprGrpMemberSet(temp_r30, (temp_r31*2)+12, temp_r29); - HuSprTPLvlSet(temp_r30, (temp_r31*2)+12, 0.5f); - HuSprPosSet(temp_r30, (temp_r31*2)+12, ((temp_r31%2)*350)-175, ((temp_r31/2)*220)-172); + HuSprGrpMemberSet(temp_r30, (temp_r31 * 2) + 12, temp_r29); + HuSprTPLvlSet(temp_r30, (temp_r31 * 2) + 12, 0.5f); + HuSprPosSet(temp_r30, (temp_r31 * 2) + 12, ((temp_r31 % 2) * 350) - 175, ((temp_r31 / 2) * 220) - 172); } } - for(temp_r31=0; temp_r31<4; temp_r31++) { - HuSprTPLvlSet(lbl_1_bss_388, (temp_r31*2)+2, 1); - HuSprAttrSet(lbl_1_bss_388, temp_r31+19, HUSPR_ATTR_DISPOFF); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + HuSprTPLvlSet(lbl_1_bss_388, (temp_r31 * 2) + 2, 1); + HuSprAttrSet(lbl_1_bss_388, temp_r31 + 19, HUSPR_ATTR_DISPOFF); } HuSprGrpDrawNoSet(lbl_1_bss_388, 0); } @@ -387,16 +398,18 @@ void fn_1_10564(void) s16 temp_r23; AnimData *temp_r22; s16 sp8[4]; - if(mgBattleStarMax == 3) { + if (mgBattleStarMax == 3) { temp_r25 = 0; - } else if(mgBattleStarMax == 5) { + } + else if (mgBattleStarMax == 5) { temp_r25 = 1; - } else { + } + else { temp_r25 = 2; } temp_r30 = HuSprGrpCreate(35); lbl_1_bss_38A = temp_r30; - temp_r24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 70)+temp_r25, MEMORY_DEFAULT_NUM)); + temp_r24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 70) + temp_r25, MEMORY_DEFAULT_NUM)); temp_r27 = HuSprCreate(temp_r24, 195, 0); HuSprGrpMemberSet(temp_r30, 33, temp_r27); HuSprAttrSet(temp_r30, 33, HUSPR_ATTR_DISPOFF); @@ -404,83 +417,88 @@ void fn_1_10564(void) HuSprGrpMemberSet(temp_r30, 34, temp_r27); HuSprAttrSet(temp_r30, 34, HUSPR_ATTR_DISPOFF); temp_r22 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 73), MEMORY_DEFAULT_NUM)); - temp_r28 = -(((mgBattleStarMax+1)*42)/2)+20; + temp_r28 = -(((mgBattleStarMax + 1) * 42) / 2) + 20; temp_r26 = -64; - for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 74)+lbl_1_bss_2C24[temp_r31], MEMORY_DEFAULT_NUM)); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + temp_r24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 74) + lbl_1_bss_2C24[temp_r31], MEMORY_DEFAULT_NUM)); temp_r27 = HuSprCreate(temp_r24, 190, 0); - HuSprGrpMemberSet(temp_r30, (temp_r31*8)+0, temp_r27); - HuSprPosSet(temp_r30, (temp_r31*8)+0, temp_r28, temp_r26+(temp_r31*42)); - for(temp_r29=0; temp_r29<7; temp_r29++) { + HuSprGrpMemberSet(temp_r30, (temp_r31 * 8) + 0, temp_r27); + HuSprPosSet(temp_r30, (temp_r31 * 8) + 0, temp_r28, temp_r26 + (temp_r31 * 42)); + for (temp_r29 = 0; temp_r29 < 7; temp_r29++) { temp_r27 = HuSprCreate(temp_r22, 190, 0); - HuSprGrpMemberSet(temp_r30, 1+(temp_r31*8)+temp_r29, temp_r27); - HuSprPosSet(temp_r30, 1+(temp_r31*8)+temp_r29, 42+temp_r28+(temp_r29*42), temp_r26+(temp_r31*42)); - if(mgBattleStar[lbl_1_bss_2C1C[temp_r31]] <= temp_r29) { - HuSprScaleSet(temp_r30, 1+(temp_r31*8)+temp_r29, 0, 0); - } else { - HuSprScaleSet(temp_r30, 1+(temp_r31*8)+temp_r29, 1, 1); + HuSprGrpMemberSet(temp_r30, 1 + (temp_r31 * 8) + temp_r29, temp_r27); + HuSprPosSet(temp_r30, 1 + (temp_r31 * 8) + temp_r29, 42 + temp_r28 + (temp_r29 * 42), temp_r26 + (temp_r31 * 42)); + if (mgBattleStar[lbl_1_bss_2C1C[temp_r31]] <= temp_r29) { + HuSprScaleSet(temp_r30, 1 + (temp_r31 * 8) + temp_r29, 0, 0); } - if(mgTypeCurr == 1) { - if(temp_r31 > 2) { - HuSprAttrSet(temp_r30, 1+(temp_r31*8)+temp_r29, HUSPR_ATTR_DISPOFF); + else { + HuSprScaleSet(temp_r30, 1 + (temp_r31 * 8) + temp_r29, 1, 1); + } + if (mgTypeCurr == 1) { + if (temp_r31 > 2) { + HuSprAttrSet(temp_r30, 1 + (temp_r31 * 8) + temp_r29, HUSPR_ATTR_DISPOFF); } - if(temp_r31 == 1) { - HuSprPosSet(temp_r30, 1+(temp_r31*8)+temp_r29, 42+temp_r28+(temp_r29*42), temp_r26+84); + if (temp_r31 == 1) { + HuSprPosSet(temp_r30, 1 + (temp_r31 * 8) + temp_r29, 42 + temp_r28 + (temp_r29 * 42), temp_r26 + 84); } - } else if(mgTypeCurr == 2) { - if(temp_r31%2 == 1) { - HuSprAttrSet(temp_r30, 1+(temp_r31*8)+temp_r29, HUSPR_ATTR_DISPOFF); + } + else if (mgTypeCurr == 2) { + if (temp_r31 % 2 == 1) { + HuSprAttrSet(temp_r30, 1 + (temp_r31 * 8) + temp_r29, HUSPR_ATTR_DISPOFF); } - if(temp_r31 == 0) { - HuSprPosSet(temp_r30, 1+(temp_r31*8)+temp_r29, 42+temp_r28+(temp_r29*42), temp_r26+21); + if (temp_r31 == 0) { + HuSprPosSet(temp_r30, 1 + (temp_r31 * 8) + temp_r29, 42 + temp_r28 + (temp_r29 * 42), temp_r26 + 21); } - if(temp_r31 == 2) { - HuSprPosSet(temp_r30, 1+(temp_r31*8)+temp_r29, 42+temp_r28+(temp_r29*42), temp_r26+105); + if (temp_r31 == 2) { + HuSprPosSet(temp_r30, 1 + (temp_r31 * 8) + temp_r29, 42 + temp_r28 + (temp_r29 * 42), temp_r26 + 105); } } } } - temp_r28 = -(((mgBattleStarMax+1)*42)/2)+22; - if(temp_r25 == 0) { + temp_r28 = -(((mgBattleStarMax + 1) * 42) / 2) + 22; + if (temp_r25 == 0) { temp_r28 += 63; - } else if(temp_r25 == 1) { + } + else if (temp_r25 == 1) { temp_r28 += 105; - } else { + } + else { temp_r28 += 146; } - if(mgTypeCurr == 1) { - HuSprPosSet(temp_r30, 33, temp_r28+21, temp_r26+63); + if (mgTypeCurr == 1) { + HuSprPosSet(temp_r30, 33, temp_r28 + 21, temp_r26 + 63); HuSprAttrReset(temp_r30, 33, HUSPR_ATTR_DISPOFF); - HuSprPosSet(temp_r30, 34, temp_r28+21, temp_r26+105); - HuSprAttrReset(temp_r30, 34, HUSPR_ATTR_DISPOFF); - } else if(mgTypeCurr == 2) { - HuSprPosSet(temp_r30, 33, temp_r28+21, temp_r26+21); - HuSprAttrReset(temp_r30, 33, HUSPR_ATTR_DISPOFF); - HuSprPosSet(temp_r30, 34, temp_r28+21, temp_r26+105); + HuSprPosSet(temp_r30, 34, temp_r28 + 21, temp_r26 + 105); HuSprAttrReset(temp_r30, 34, HUSPR_ATTR_DISPOFF); } - temp_r24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 67)+temp_r25, MEMORY_DEFAULT_NUM)); + else if (mgTypeCurr == 2) { + HuSprPosSet(temp_r30, 33, temp_r28 + 21, temp_r26 + 21); + HuSprAttrReset(temp_r30, 33, HUSPR_ATTR_DISPOFF); + HuSprPosSet(temp_r30, 34, temp_r28 + 21, temp_r26 + 105); + HuSprAttrReset(temp_r30, 34, HUSPR_ATTR_DISPOFF); + } + temp_r24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 67) + temp_r25, MEMORY_DEFAULT_NUM)); temp_r27 = HuSprCreate(temp_r24, 200, 0); HuSprGrpMemberSet(temp_r30, 32, temp_r27); HuSprGrpPosSet(temp_r30, 288, 185); HuSprGrpDrawNoSet(temp_r30, 64); HuSprGrpScaleSet(temp_r30, 1, 0); - for(temp_r31=0; temp_r31<4; temp_r31++) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { lbl_1_bss_38C[temp_r31] = 0; } - switch(mgTypeCurr) { + switch (mgTypeCurr) { case 0: temp_r23 = -1; - for(temp_r31=0; temp_r31<4; temp_r31++) { - sp8[temp_r31] = GWPlayerCoinWinGet(temp_r31)+GWPlayerCoinCollectGet(temp_r31); - if(temp_r23 < sp8[temp_r31]) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + sp8[temp_r31] = GWPlayerCoinWinGet(temp_r31) + GWPlayerCoinCollectGet(temp_r31); + if (temp_r23 < sp8[temp_r31]) { temp_r23 = sp8[temp_r31]; } } lbl_1_bss_394 = 0; - if(temp_r23 != 0) { - for(temp_r31=0; temp_r31<4; temp_r31++) { - if(temp_r23 == sp8[temp_r31]) { + if (temp_r23 != 0) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + if (temp_r23 == sp8[temp_r31]) { lbl_1_bss_396[lbl_1_bss_394] = temp_r31; lbl_1_bss_38C[temp_r31] = 1; lbl_1_bss_394++; @@ -488,33 +506,35 @@ void fn_1_10564(void) } } break; - + case 1: case 2: sp8[0] = sp8[1] = 0; - for(temp_r31=0; temp_r31<4; temp_r31++) { - sp8[GWPlayerCfg[temp_r31].group] += GWPlayerCoinWinGet(temp_r31)+GWPlayerCoinCollectGet(temp_r31); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + sp8[GWPlayerCfg[temp_r31].group] += GWPlayerCoinWinGet(temp_r31) + GWPlayerCoinCollectGet(temp_r31); } - if(mgInfoTbl[GWSystem.mg_next].ovl == OVL_M422) { + if (mgInfoTbl[GWSystem.mg_next].ovl == OVL_M422) { sp8[1] /= 3; } lbl_1_bss_394 = 0; - if(sp8[0] != 0 || sp8[1] != 0) { - if(sp8[0] != sp8[1]) { - if(sp8[0] > sp8[1]) { + if (sp8[0] != 0 || sp8[1] != 0) { + if (sp8[0] != sp8[1]) { + if (sp8[0] > sp8[1]) { temp_r29 = 0; - } else { + } + else { temp_r29 = 1; } - for(temp_r31=0; temp_r31<4; temp_r31++) { - if(temp_r29 == GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].group) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + if (temp_r29 == GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].group) { lbl_1_bss_396[lbl_1_bss_394] = temp_r31; lbl_1_bss_38C[temp_r31] = 1; lbl_1_bss_394++; } } - } else { - for(temp_r31=0; temp_r31<4; temp_r31++) { + } + else { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { lbl_1_bss_396[lbl_1_bss_394] = temp_r31; lbl_1_bss_38C[temp_r31] = 1; lbl_1_bss_394++; @@ -522,17 +542,17 @@ void fn_1_10564(void) } } break; - + case 3: - for(temp_r31=lbl_1_bss_394=0; temp_r31<4; temp_r31++) { - if(!GWPlayerCoinWinGet(lbl_1_bss_2C1C[temp_r31])) { + for (temp_r31 = lbl_1_bss_394 = 0; temp_r31 < 4; temp_r31++) { + if (!GWPlayerCoinWinGet(lbl_1_bss_2C1C[temp_r31])) { lbl_1_bss_396[lbl_1_bss_394] = temp_r31; lbl_1_bss_38C[temp_r31] = 1; lbl_1_bss_394++; } } break; - + default: break; } @@ -547,122 +567,135 @@ s32 fn_1_1129C(void) s16 temp_r29; s16 temp_r28; float temp_f31; - + s16 sp18[4]; s16 sp10[4]; s16 sp8[4]; - + HuSprTPLvlSet(lbl_1_bss_388, 10, 0); - while(WipeStatGet()) { + while (WipeStatGet()) { HuPrcVSleep(); } fn_1_10564(); - for(temp_r31=0; temp_r31<=30; temp_r31++) { - if(temp_r31 <= 20) { - temp_f31 = temp_r31/20.0f; - HuSprGrpScaleSet(lbl_1_bss_38A, 1, 1.1*sind(temp_f31*90.0f)); - } else { - temp_f31 = (temp_r31-20)/10.0f; - HuSprGrpScaleSet(lbl_1_bss_38A, 1, 1.0+(0.1*cosd(temp_f31*90.0f))); + for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { + if (temp_r31 <= 20) { + temp_f31 = temp_r31 / 20.0f; + HuSprGrpScaleSet(lbl_1_bss_38A, 1, 1.1 * sind(temp_f31 * 90.0f)); + } + else { + temp_f31 = (temp_r31 - 20) / 10.0f; + HuSprGrpScaleSet(lbl_1_bss_38A, 1, 1.0 + (0.1 * cosd(temp_f31 * 90.0f))); } HuPrcVSleep(); } HuPrcSleep(30); - if(lbl_1_data_148 == -1) { + if (lbl_1_data_148 == -1) { lbl_1_data_148 = fn_1_2530C(0, 0, 0); } - if(lbl_1_bss_394) { - for(temp_r31=0; temp_r31= mgBattleStarMax) { + if (mgBattleStar[lbl_1_bss_2C1C[lbl_1_bss_396[temp_r30]]] >= mgBattleStarMax) { sp18[temp_r29] = lbl_1_bss_396[temp_r30]; sp10[lbl_1_bss_396[temp_r30]] = 1; temp_r29++; } } - if(temp_r29 != 0) { - for(temp_r31=0; temp_r31= 20) { - weight = (i-20)/10.0; - Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, 20.0f+((angle-20.0f)*weight), 0); + if (i >= 20) { + weight = (i - 20) / 10.0; + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, 20.0f + ((angle - 20.0f) * weight), 0); } HuPrcVSleep(); } - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { Hu3DMotionShiftSet(lbl_1_bss_2C14[i], lbl_1_bss_2BC4[i][0], 0, 10, HU3D_MOTATTR_LOOP); } - for(i=0; i<=30; i++) { - weight = i/30.0; + for (i = 0; i <= 30; i++) { + weight = i / 30.0; VECScale(&posEnd, &posModel, weight); VECAdd(&pos, &posModel, &posModel); Hu3DModelPosSetV(lbl_1_bss_2C80[5], &posModel); HuPrcVSleep(); } Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 10, HU3D_MOTATTR_LOOP); - for(i=0; i<=10; i++) { - weight = 1.0-(i/10.0); - Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, angle*weight, 0); + for (i = 0; i <= 10; i++) { + weight = 1.0 - (i / 10.0); + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, angle * weight, 0); HuPrcVSleep(); } - for(i=0; i<=60; i++) { - if(i <= 10) { - weight = i/10.0; - HuSprGrpPosSet(lbl_1_bss_388, 288, 240.0+(16.0*sind(weight*90.0f))); - if(lbl_1_bss_38A) { - HuSprGrpPosSet(lbl_1_bss_38A, 288, 185.0+(16.0*sind(weight*90.0f))); - } - } else { - weight = (i-10)/50.0; - weight = (1-cosd(weight*90.0f))*400; - HuSprGrpPosSet(lbl_1_bss_388, 288, 256-weight); - if(lbl_1_bss_38A) { - HuSprGrpPosSet(lbl_1_bss_38A, 288, 201-weight); + for (i = 0; i <= 60; i++) { + if (i <= 10) { + weight = i / 10.0; + HuSprGrpPosSet(lbl_1_bss_388, 288, 240.0 + (16.0 * sind(weight * 90.0f))); + if (lbl_1_bss_38A) { + HuSprGrpPosSet(lbl_1_bss_38A, 288, 185.0 + (16.0 * sind(weight * 90.0f))); } } - + else { + weight = (i - 10) / 50.0; + weight = (1 - cosd(weight * 90.0f)) * 400; + HuSprGrpPosSet(lbl_1_bss_388, 288, 256 - weight); + if (lbl_1_bss_38A) { + HuSprGrpPosSet(lbl_1_bss_38A, 288, 201 - weight); + } + } + HuPrcVSleep(); } HuDataDirClose(DATADIR_INSTPIC); - if(lbl_1_bss_388) { + if (lbl_1_bss_388) { HuSprGrpKill(lbl_1_bss_388); } - if(lbl_1_bss_38A) { + if (lbl_1_bss_38A) { HuSprGrpKill(lbl_1_bss_38A); } lbl_1_bss_388 = lbl_1_bss_38A = 0; - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { CharModelKill(GWPlayerCfg[i].character); } } @@ -832,20 +867,20 @@ void fn_1_12BEC(void) float temp_f31; Vec sp44[30]; s16 sp8[30]; - + temp_r21 = HuPrcCurrentGet(); temp_r28 = temp_r21->user_data; temp_r27 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MGMODE, 82)); Hu3DModelLayerSet(temp_r27, 3); - Hu3DModelPosSet(temp_r27, (*temp_r28*130)-195, 300, 750); + Hu3DModelPosSet(temp_r27, (*temp_r28 * 130) - 195, 300, 750); Hu3DModelScaleSet(temp_r27, 0.8f, 0.8f, 0.8f); - for(temp_r31=0; temp_r31<30; temp_r31++) { - if(temp_r31 < 4) { + for (temp_r31 = 0; temp_r31 < 30; temp_r31++) { + if (temp_r31 < 4) { temp_r26 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MGMODE, 83)); sp8[temp_r31] = temp_r26; temp_r30 = &Hu3DData[temp_r26]; temp_r29 = temp_r30->hsfData->material; - for(temp_r24=0; temp_r24hsfData->materialCnt; temp_r24++, temp_r29++) { + for (temp_r24 = 0; temp_r24 < temp_r30->hsfData->materialCnt; temp_r24++, temp_r29++) { temp_r29->color[0] = lbl_1_data_152[temp_r31].r; temp_r29->color[1] = lbl_1_data_152[temp_r31].g; temp_r29->color[2] = lbl_1_data_152[temp_r31].b; @@ -853,57 +888,61 @@ void fn_1_12BEC(void) temp_r29->litColor[1] = lbl_1_data_152[temp_r31].g; temp_r29->litColor[2] = lbl_1_data_152[temp_r31].b; } - } else { - temp_r26 = Hu3DModelLink(sp8[temp_r31%4]); + } + else { + temp_r26 = Hu3DModelLink(sp8[temp_r31 % 4]); sp8[temp_r31] = temp_r26; } - Hu3DModelPosSet(temp_r26, (frandmod(50)-220+(*temp_r28*130)), (temp_r31*12)+350, 750); + Hu3DModelPosSet(temp_r26, (frandmod(50) - 220 + (*temp_r28 * 130)), (temp_r31 * 12) + 350, 750); Hu3DModelScaleSet(temp_r26, 2.0f, 2.0f, 2.0f); - Hu3DModelAttrSet(temp_r26, 1); + Hu3DModelAttrSet(temp_r26, HU3D_ATTR_DISPOFF); Hu3DModelLayerSet(temp_r26, 3); - sp44[temp_r31].x = (float)(frandmod(50)-25)*0.05; - sp44[temp_r31].z = (float)(frandmod(50)-25)*0.05; + sp44[temp_r31].x = (float)(frandmod(50) - 25) * 0.05; + sp44[temp_r31].z = (float)(frandmod(50) - 25) * 0.05; } HuPrcSleep(45); temp_r25 = 0; - while(1) { - for(temp_r31=temp_r22=0; temp_r31<30; temp_r31++) { + while (1) { + for (temp_r31 = temp_r22 = 0; temp_r31 < 30; temp_r31++) { temp_r30 = &Hu3DData[sp8[temp_r31]]; - if(temp_r30->pos.y > 350.0f) { - Hu3DModelAttrSet(sp8[temp_r31], 1); - } else { - Hu3DModelAttrReset(sp8[temp_r31], 1); + if (temp_r30->pos.y > 350.0f) { + Hu3DModelAttrSet(sp8[temp_r31], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrReset(sp8[temp_r31], HU3D_ATTR_DISPOFF); temp_r30->pos.x += sp44[temp_r31].x; temp_r30->pos.z += sp44[temp_r31].z; } temp_r30->pos.y -= 3.0f; - temp_r30->rot.x += ((temp_r31%3)+1)*5; - temp_r30->rot.y += ((temp_r31%5)+1)*5; - if(temp_r30->pos.y < 0.0f) { - if(lbl_1_bss_3A0 == 0) { - Hu3DModelAttrSet(sp8[temp_r31], 1); + temp_r30->rot.x += ((temp_r31 % 3) + 1) * 5; + temp_r30->rot.y += ((temp_r31 % 5) + 1) * 5; + if (temp_r30->pos.y < 0.0f) { + if (lbl_1_bss_3A0 == 0) { + Hu3DModelAttrSet(sp8[temp_r31], HU3D_ATTR_DISPOFF); temp_r22++; - } else { + } + else { temp_r30->pos.y = 350; - temp_r23 = frandmod(50)-25; - temp_r30->pos.x = (-195+(*temp_r28*130))+temp_r23; + temp_r23 = frandmod(50) - 25; + temp_r30->pos.x = (-195 + (*temp_r28 * 130)) + temp_r23; temp_r30->pos.z = 750; - sp44[temp_r31].x = ((float)frandmod(50)*0.02)*((temp_r23 < 0) ? -1 : (temp_r23 > 0) ? 1: 0); - sp44[temp_r31].z = (float)(frandmod(50)-25)*0.05; + sp44[temp_r31].x = ((float)frandmod(50) * 0.02) * ((temp_r23 < 0) ? -1 : (temp_r23 > 0) ? 1 : 0); + sp44[temp_r31].z = (float)(frandmod(50) - 25) * 0.05; } } } - if(lbl_1_bss_3A0 || temp_r22 != 30) { - if(lbl_1_bss_3A0 == 0 && temp_r25 <= 10) { - temp_f31 = 1-sind((temp_r25/10.0)*90.0); - if(0.0 == temp_f31) { - Hu3DModelAttrSet(temp_r27, 1); + if (lbl_1_bss_3A0 || temp_r22 != 30) { + if (lbl_1_bss_3A0 == 0 && temp_r25 <= 10) { + temp_f31 = 1 - sind((temp_r25 / 10.0) * 90.0); + if (0.0 == temp_f31) { + Hu3DModelAttrSet(temp_r27, HU3D_ATTR_DISPOFF); } Hu3DModelScaleSet(temp_r27, temp_f31, 1, 1); temp_r25++; } HuPrcVSleep(); - } else { + } + else { break; } } @@ -914,7 +953,7 @@ void fn_1_12BEC(void) Hu3DModelKill(temp_r27); HuPrcVSleep(); HuPrcEnd(); - while(1) { + while (1) { HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/REL/mgmodedll/main.c b/src/REL/mgmodedll/main.c index 0af8a0a6..dd6b1b72 100755 --- a/src/REL/mgmodedll/main.c +++ b/src/REL/mgmodedll/main.c @@ -5,8 +5,8 @@ #include "ext_math.h" typedef struct { - /* 0x00 */ omObjData* unk00; - /* 0x04 */ void (*unk04)(omObjData*, ...); + /* 0x00 */ omObjData *unk00; + /* 0x04 */ void (*unk04)(omObjData *, ...); /* 0x08 */ s32 unk08[4]; /* 0x18 */ char unk18[4]; /* 0x1C */ s32 unk1C[4]; @@ -41,32 +41,32 @@ typedef struct { /* 0x2C */ float unk2C; } StructBss3CC; // Size 0x30 -void fn_1_19A30(StructBss8* arg0); +void fn_1_19A30(StructBss8 *arg0); void fn_1_19B8C(void); void fn_1_19D00(void); void fn_1_19E94(void); -void fn_1_19F5C(omObjData* arg0); +void fn_1_19F5C(omObjData *arg0); void fn_1_1A564(void); void fn_1_1A6A0(void); void fn_1_1A8E8(void); void fn_1_1AA28(void); void fn_1_1AB58(void); -void fn_1_1AC88(StructBss2050* arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_1AC88(StructBss2050 *arg0, s32 arg1, s32 arg2, s32 arg3); void fn_1_1B260(s32 arg0); void fn_1_1BCEC(void); void fn_1_1BECC(void); -void fn_1_1C09C(StructBss2050* arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_1C09C(StructBss2050 *arg0, s32 arg1, s32 arg2, s32 arg3); void fn_1_1CB4C(void); -void fn_1_1CEB0(omObjData* arg0, StructBss8_24* arg1); -void fn_1_1D49C(StructBss8_24* arg0); -s32 fn_1_1D688(StructBss8_24* arg0); -void fn_1_1DD74(s32 arg0, StructBss8_24* arg1); -void fn_1_1E608(StructBss8_24* arg0); -void fn_1_1EB20(StructBss8_24* arg0); +void fn_1_1CEB0(omObjData *arg0, StructBss8_24 *arg1); +void fn_1_1D49C(StructBss8_24 *arg0); +s32 fn_1_1D688(StructBss8_24 *arg0); +void fn_1_1DD74(s32 arg0, StructBss8_24 *arg1); +void fn_1_1E608(StructBss8_24 *arg0); +void fn_1_1EB20(StructBss8_24 *arg0); void fn_1_1EBE8(void); void fn_1_1ED20(void); -void fn_1_1EE58(s32 arg0, UnkFunc1EE58Struct* arg1); -void fn_1_1F32C(omObjData* arg0); +void fn_1_1EE58(s32 arg0, UnkFunc1EE58Struct *arg1); +void fn_1_1F32C(omObjData *arg0); void fn_1_1FABC(void); void fn_1_1FC44(s32 arg0); void fn_1_20728(void); @@ -78,8 +78,8 @@ s32 fn_1_214A4(void); s32 fn_1_21CA4(void); s32 fn_1_2228C(s32 arg0); void fn_1_22728(void); -void fn_1_22C08(omObjData* arg0); -void fn_1_231F0(omObjData* arg0); +void fn_1_22C08(omObjData *arg0); +void fn_1_231F0(omObjData *arg0); float fn_1_240E4(float arg0, float arg1, float arg2, float arg3); float fn_1_2410C(float arg0, float arg1, float arg2); float fn_1_2412C(float arg0, float arg1, float arg2, float arg3); @@ -105,15 +105,16 @@ void fn_1_26790(s32 arg0, s32 arg1, float arg2, float arg3); char lbl_1_bss_209C_pad[8]; // Could be part of StructBss2050. StructBss2050 lbl_1_bss_2050; StructBss8_24 lbl_1_bss_1E10[4]; -omObjData* lbl_1_bss_1E0C; +omObjData *lbl_1_bss_1E0C; StructBss3CC lbl_1_bss_3CC[140]; s32 lbl_1_bss_3C8; -StructBss8* lbl_1_bss_3C4; -Process* lbl_1_bss_3C0; +StructBss8 *lbl_1_bss_3C4; +Process *lbl_1_bss_3C0; s32 lbl_1_data_1E0 = 1; // Unused. -void fn_1_18DF8(Process* arg0, StructBss8* arg1) { +void fn_1_18DF8(Process *arg0, StructBss8 *arg1) +{ s32 i; lbl_1_bss_3C0 = arg0; @@ -138,7 +139,8 @@ void fn_1_18DF8(Process* arg0, StructBss8* arg1) { } } -void fn_1_19018(void) { +void fn_1_19018(void) +{ Vec sp14 = { 0.0f, 0.0f, 640.0f }; float temp_f31; s32 temp_r30; @@ -146,7 +148,7 @@ void fn_1_19018(void) { fn_1_243B0(); for (i = 1; i < 140; i++) { - Hu3DModelAttrReset(lbl_1_bss_1E0C->model[i], 1); + Hu3DModelAttrReset(lbl_1_bss_1E0C->model[i], HU3D_ATTR_DISPOFF); } WipeColorSet(0xFF, 0xFF, 0xFF); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); @@ -182,7 +184,8 @@ void fn_1_19018(void) { fn_1_24388(60); } -s32 fn_1_194C8(s32 arg0) { +s32 fn_1_194C8(s32 arg0) +{ s32 var_r30; s32 var_r29; s32 var_r28; @@ -202,13 +205,16 @@ s32 fn_1_194C8(s32 arg0) { } if (i != 4) { var_r29 = 2; - } else { + } + else { var_r29 = 1; } - } else { + } + else { var_r29 = 3; } - } else { + } + else { lbl_1_bss_3C4->unk1C = arg0; fn_1_19B8C(); } @@ -239,9 +245,11 @@ s32 fn_1_194C8(s32 arg0) { case 3: if (lbl_1_bss_3C4->unk1C == 0 || lbl_1_bss_3C4->unk1C == 3) { var_r29 = 5; - } else if (lbl_1_bss_3C4->unk1C == 2) { + } + else if (lbl_1_bss_3C4->unk1C == 2) { var_r29 = fn_1_21CA4(); - } else { + } + else { var_r29 = fn_1_2228C(var_r28); var_r28 = 0; } @@ -250,7 +258,8 @@ s32 fn_1_194C8(s32 arg0) { if (var_r29 == 0) { var_r30 = 10; break; - } else if (var_r29 == 5) { + } + else if (var_r29 == 5) { var_r30 = 99; break; } @@ -264,7 +273,8 @@ s32 fn_1_194C8(s32 arg0) { } if (var_r30 == -99) { var_r30 = 0; - } else { + } + else { for (i = 0; i < 4; i++) { lbl_1_bss_3C4->unk24[i].unk5C = lbl_1_bss_1E10[i].unk5C; lbl_1_bss_3C4->unk24[i].unk60 = lbl_1_bss_1E10[i].unk60; @@ -292,7 +302,8 @@ s32 fn_1_194C8(s32 arg0) { lbl_1_bss_3C4->unk24[2].unk5C = lbl_1_bss_3C4->unk24[3].unk5C = 1; break; } - } else if (lbl_1_bss_3C4->unk1C == 2) { + } + else if (lbl_1_bss_3C4->unk1C == 2) { switch (lbl_1_bss_2050.unk1C[0]) { case 0: lbl_1_bss_3C4->unk20 = 3; @@ -314,7 +325,8 @@ s32 fn_1_194C8(s32 arg0) { return var_r30; } -void fn_1_19A30(StructBss8* arg0) { +void fn_1_19A30(StructBss8 *arg0) +{ s32 i; OSReport("\n\n>>>>>>>>>>>>>>>>>>>> ENTRANCE HELP\n\n"); @@ -337,12 +349,14 @@ void fn_1_19A30(StructBss8* arg0) { } OSReport("\nNO) GRP:COM:DIF:CHR:PAD\n"); for (i = 0; i < 4; i++) { - OSReport("%2d) %3d:%3d:%3d:%3d:%3d\n", i, arg0->unk24[i].unk5C, arg0->unk24[i].unk60, arg0->unk24[i].unk64, arg0->unk24[i].unk68, arg0->unk24[i].unk6C); + OSReport("%2d) %3d:%3d:%3d:%3d:%3d\n", i, arg0->unk24[i].unk5C, arg0->unk24[i].unk60, arg0->unk24[i].unk64, arg0->unk24[i].unk68, + arg0->unk24[i].unk6C); } OSReport("\n>>>>>>>>>>>>>>>>>>>> ENTRANCE HELP\n\n"); } -void fn_1_19B8C(void) { +void fn_1_19B8C(void) +{ s32 i; s32 j; @@ -365,8 +379,9 @@ void fn_1_19B8C(void) { } } -void fn_1_19D00(void) { - omObjData* temp_r30; +void fn_1_19D00(void) +{ + omObjData *temp_r30; s32 temp_r31; temp_r31 = lbl_1_bss_3C8++; @@ -390,8 +405,9 @@ void fn_1_19D00(void) { } } -void fn_1_19E94(void) { - omObjData* temp_r3; +void fn_1_19E94(void) +{ + omObjData *temp_r3; temp_r3 = omAddObjEx(lbl_1_bss_3C0, 0x100, 16, 16, -1, NULL); lbl_1_bss_2050.unk00 = temp_r3; @@ -406,40 +422,22 @@ void fn_1_19E94(void) { } } -s32 lbl_1_data_32C[][4] = { - { 177, 104, 120, 55 }, - { 251, 104, 458, 55 }, - { 325, 104, 120, 142 }, - { 399, 104, 458, 142 } -}; +s32 lbl_1_data_32C[][4] = { { 177, 104, 120, 55 }, { 251, 104, 458, 55 }, { 325, 104, 120, 142 }, { 399, 104, 458, 142 } }; -s32 lbl_1_data_36C[][6] = { - { 168, 90, 120, 51, 112, 55 }, - { 248, 190, 458, 51, 466, 55 }, - { 328, 90, 120, 222, 112, 282 }, - { 408, 190, 458, 222, 466, 282 } -}; +s32 lbl_1_data_36C[][6] + = { { 168, 90, 120, 51, 112, 55 }, { 248, 190, 458, 51, 466, 55 }, { 328, 90, 120, 222, 112, 282 }, { 408, 190, 458, 222, 466, 282 } }; s32 lbl_1_data_3CC[] = { 224, 456, 272, 292, 468, 282 }; -float lbl_1_data_3E4[][5] = { - { 262.0f, 119.0f, 1.3f, 227.0f, 455.0f }, - { 314.0f, 168.0f, 0.75f, 265.0f, 416.0f }, - { 366.0f, 204.0f, 0.75f, 230.0f, 450.0f }, - { 418.0f, 240.0f, 0.75f, 300.0f, 381.0f }, - { -1.0f, 289.0f, 1.3f, 220.0f, 460.0f } -}; +float lbl_1_data_3E4[][5] = { { 262.0f, 119.0f, 1.3f, 227.0f, 455.0f }, { 314.0f, 168.0f, 0.75f, 265.0f, 416.0f }, + { 366.0f, 204.0f, 0.75f, 230.0f, 450.0f }, { 418.0f, 240.0f, 0.75f, 300.0f, 381.0f }, { -1.0f, 289.0f, 1.3f, 220.0f, 460.0f } }; -s32 lbl_1_data_448[][4] = { - { 262, 262, 262, 262 }, - { 314, 307, 373, 373 }, - { 366, 373, 307, 418 }, - { 418, 418, 418, 307 } -}; +s32 lbl_1_data_448[][4] = { { 262, 262, 262, 262 }, { 314, 307, 373, 373 }, { 366, 373, 307, 418 }, { 418, 418, 418, 307 } }; s32 lbl_1_data_488 = -1; -void fn_1_19F5C(omObjData* arg0) { +void fn_1_19F5C(omObjData *arg0) +{ float var_f30; float var_f31; s32 temp_r28; @@ -470,20 +468,24 @@ void fn_1_19F5C(omObjData* arg0) { if (HuPadStkX[lbl_1_bss_1E10->unk6C] >= 5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 2)) { var_r29++; var_r26 = 1; - } else if (HuPadStkX[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 1)) { + } + else if (HuPadStkX[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 1)) { var_r29--; var_r26 = -1; } - } else { + } + else { fn_1_1AB58(); } if (var_r29 < 1) { var_r29 = var_r27; - } else if (var_r29 > var_r27) { + } + else if (var_r29 > var_r27) { if (var_r26 == 0) { var_r29 = var_r27; var_r25 = 1; - } else { + } + else { var_r29 = 1; } } @@ -494,13 +496,15 @@ void fn_1_19F5C(omObjData* arg0) { if (i <= 5) { var_f30 = fn_1_24204(0.0f, 10.0f, i, 5.0f); var_f31 = fn_1_24204(1.0f, 0.0f, i, 5.0f); - } else { + } + else { var_f30 = fn_1_24204(10.0f, 0.0f, i - 5, 5.0f); var_f31 = fn_1_24204(0.0f, 1.0f, i - 5, 5.0f); } if (var_r26 == 1) { HuSprPosSet(temp_r28, 9, lbl_1_data_32C[3][0] + 50 + var_f30, lbl_1_data_32C[0][1]); - } else if (var_r26 == -1) { + } + else if (var_r26 == -1) { HuSprPosSet(temp_r28, 8, lbl_1_data_32C[0][0] - 50 - var_f30, lbl_1_data_32C[0][1]); } for (j = 0; j < 4; j++) { @@ -511,7 +515,8 @@ void fn_1_19F5C(omObjData* arg0) { if (i == 5) { HuSprBankSet(temp_r28, j, 0); } - } else if (j >= var_r29 && lbl_1_bss_1E10[j].unk60 == 0) { + } + else if (j >= var_r29 && lbl_1_bss_1E10[j].unk60 == 0) { lbl_1_bss_1E10[j].unk70[3] = 1; HuSprScaleSet(temp_r28, j, var_f31, 1.0f); HuSprScaleSet(temp_r28, j + 4, var_f31, 1.0f); @@ -525,7 +530,8 @@ void fn_1_19F5C(omObjData* arg0) { for (j = 0; j < 4; j++) { if (j < var_r29) { lbl_1_bss_1E10[j].unk60 = 0; - } else { + } + else { lbl_1_bss_1E10[j].unk60 = 1; } } @@ -533,7 +539,8 @@ void fn_1_19F5C(omObjData* arg0) { lbl_1_bss_2050.unk1C[0] = 0; } -void fn_1_1A564(void) { +void fn_1_1A564(void) +{ s32 temp_r30; s32 i; @@ -555,7 +562,8 @@ void fn_1_1A564(void) { HuSprGrpPosSet(temp_r30, 0.0f, -500.0f); } -void fn_1_1A6A0(void) { +void fn_1_1A6A0(void) +{ float var_f31; s32 temp_r28; s32 i; @@ -566,14 +574,16 @@ void fn_1_1A6A0(void) { fn_1_243B0(); if (i <= 50) { var_f31 = fn_1_24204(-500.0f, 10.0f, i, 50.0f); - } else { + } + else { var_f31 = fn_1_2412C(10.0f, 2.06f, i - 50, 10.0f); } HuSprGrpPosSet(temp_r28, 0.0f, var_f31); } } -void fn_1_1A8E8(void) { +void fn_1_1A8E8(void) +{ float var_f31; s32 spC; s32 sp8; @@ -587,7 +597,8 @@ void fn_1_1A8E8(void) { fn_1_243B0(); if (i <= 10) { var_f31 = fn_1_24204(2.06f, 10.0f, i, 10.0f); - } else { + } + else { var_f31 = fn_1_2412C(10.0f, -500.0f, i - 10, 50.0f); } HuSprGrpPosSet(temp_r30, 0.0f, var_f31); @@ -595,7 +606,8 @@ void fn_1_1A8E8(void) { fn_1_1B260(0); } -void fn_1_1AA28(void) { +void fn_1_1AA28(void) +{ s32 temp_r31; temp_r31 = lbl_1_bss_2050.unk34; @@ -605,7 +617,8 @@ void fn_1_1AA28(void) { HuSprPosSet(temp_r31, 9, lbl_1_data_32C[3][0] + 50, lbl_1_data_32C[0][1]); } -void fn_1_1AB58(void) { +void fn_1_1AB58(void) +{ s32 temp_r31; temp_r31 = lbl_1_bss_2050.unk34; @@ -615,9 +628,10 @@ void fn_1_1AB58(void) { HuSprPosSet(temp_r31, 9, lbl_1_data_32C[3][0] + 50, lbl_1_data_32C[0][1]); } -void fn_1_1AC88(StructBss2050* arg0, s32 arg1, s32 arg2, s32 arg3) { - AnimData* temp_r26; - AnimData* temp_r25; +void fn_1_1AC88(StructBss2050 *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + AnimData *temp_r26; + AnimData *temp_r25; s32 var_r29; s32 var_r28; s32 i; @@ -660,7 +674,8 @@ void fn_1_1AC88(StructBss2050* arg0, s32 arg1, s32 arg2, s32 arg3) { fn_1_1A564(); } -void fn_1_1B260(s32 arg0) { +void fn_1_1B260(s32 arg0) +{ s32 temp_r30; s32 i; @@ -672,16 +687,15 @@ void fn_1_1B260(s32 arg0) { if (lbl_1_bss_1E10[i].unk60 != 0) { HuSprAttrSet(temp_r30, 16 + lbl_1_bss_1E10[i].unk58, HUSPR_ATTR_DISPOFF); HuSprAttrSet(temp_r30, 20 + lbl_1_bss_1E10[i].unk58, HUSPR_ATTR_DISPOFF); - } else { + } + else { HuSprAttrReset(temp_r30, 16 + lbl_1_bss_1E10[i].unk58, HUSPR_ATTR_DISPOFF); HuSprAttrReset(temp_r30, 20 + lbl_1_bss_1E10[i].unk58, HUSPR_ATTR_DISPOFF); } - HuSprPosSet(temp_r30, 16 + lbl_1_bss_1E10[i].unk58, - lbl_1_data_36C[lbl_1_bss_1E10[i].unk68 % 4][0], - lbl_1_data_36C[lbl_1_bss_1E10[i].unk68 / 4][1]); - HuSprPosSet(temp_r30, 20 + lbl_1_bss_1E10[i].unk58, - lbl_1_data_36C[lbl_1_bss_1E10[i].unk68 % 4][0], - lbl_1_data_36C[lbl_1_bss_1E10[i].unk68 / 4][1]); + HuSprPosSet( + temp_r30, 16 + lbl_1_bss_1E10[i].unk58, lbl_1_data_36C[lbl_1_bss_1E10[i].unk68 % 4][0], lbl_1_data_36C[lbl_1_bss_1E10[i].unk68 / 4][1]); + HuSprPosSet( + temp_r30, 20 + lbl_1_bss_1E10[i].unk58, lbl_1_data_36C[lbl_1_bss_1E10[i].unk68 % 4][0], lbl_1_data_36C[lbl_1_bss_1E10[i].unk68 / 4][1]); } for (i = 0; i < 8; i++) { HuSprBankSet(temp_r30, i, 0); @@ -715,7 +729,8 @@ void fn_1_1B260(s32 arg0) { HuSprPosSet(temp_r30, 65 + i, lbl_1_data_3E4[i][0] + 1.0f, lbl_1_data_3CC[2] + 2); } HuWinDispOn(lbl_1_bss_2050.unk44[0]); - } else if (arg0 == 2) { + } + else if (arg0 == 2) { HuSprAttrSet(temp_r30, 40, HUSPR_ATTR_DISPOFF); HuSprAttrReset(temp_r30, 53, HUSPR_ATTR_DISPOFF); HuSprAttrReset(temp_r30, 56, HUSPR_ATTR_DISPOFF); @@ -733,7 +748,8 @@ void fn_1_1B260(s32 arg0) { HuSprGrpPosSet(temp_r30, 0.0f, -500.0f); } -void fn_1_1BCEC(void) { +void fn_1_1BCEC(void) +{ float var_f31; s32 sp8; s32 i; @@ -743,7 +759,8 @@ void fn_1_1BCEC(void) { fn_1_243B0(); if (i <= 50) { var_f31 = fn_1_24204(-500.0f, 10.0f, i, 50.0f); - } else { + } + else { var_f31 = fn_1_2412C(10.0f, 2.06f, i - 50, 10.0f); } HuSprGrpPosSet(lbl_1_bss_2050.unk30, 0.0f, var_f31); @@ -752,7 +769,8 @@ void fn_1_1BCEC(void) { } } -void fn_1_1BECC(void) { +void fn_1_1BECC(void) +{ float var_f31; s32 i; @@ -760,7 +778,8 @@ void fn_1_1BECC(void) { fn_1_243B0(); if (i <= 10) { var_f31 = fn_1_24204(2.06f, 10.0f, i, 10.0f); - } else { + } + else { var_f31 = fn_1_2412C(10.0f, -500.0f, i - 10, 50.0f); } HuSprGrpPosSet(lbl_1_bss_2050.unk30, 0.0f, var_f31); @@ -769,12 +788,13 @@ void fn_1_1BECC(void) { } } -void fn_1_1C09C(StructBss2050* arg0, s32 arg1, s32 arg2, s32 arg3) { - AnimData* temp_r28; - AnimData* temp_r26; - AnimData* temp_r25; - AnimData* temp_r24; - AnimData* temp_r23; +void fn_1_1C09C(StructBss2050 *arg0, s32 arg1, s32 arg2, s32 arg3) +{ + AnimData *temp_r28; + AnimData *temp_r26; + AnimData *temp_r25; + AnimData *temp_r24; + AnimData *temp_r23; s32 var_r29; s32 var_r30; s32 i; @@ -878,8 +898,9 @@ void fn_1_1C09C(StructBss2050* arg0, s32 arg1, s32 arg2, s32 arg3) { fn_1_1B260(0); } -void fn_1_1CB4C(void) { - StructBss8_24* temp_r30; +void fn_1_1CB4C(void) +{ + StructBss8_24 *temp_r30; float temp_f31; float temp_f30; s32 temp_r29; @@ -913,7 +934,8 @@ void fn_1_1CB4C(void) { } } -void fn_1_1CEB0(omObjData* arg0, StructBss8_24* arg1) { +void fn_1_1CEB0(omObjData *arg0, StructBss8_24 *arg1) +{ float temp_f31; float temp_f30; s32 temp_r25; @@ -937,14 +959,16 @@ void fn_1_1CEB0(omObjData* arg0, StructBss8_24* arg1) { HuSprBankSet(temp_r25, 16 + arg1->unk58, 1); HuSprBankSet(temp_r25, 20 + arg1->unk58, 1); HuAudFXPlay(0x6D + arg1->unk68); - } else { + } + else { if (HuPadStkX[arg1->unk6C] >= 5 || (HuPadBtn[arg1->unk6C] & 2)) { var_r30++; var_r27 = 1; if (var_r30 > 3) { var_r30 = 3; } - } else if (HuPadStkX[arg1->unk6C] <= -5 || (HuPadBtn[arg1->unk6C] & 1)) { + } + else if (HuPadStkX[arg1->unk6C] <= -5 || (HuPadBtn[arg1->unk6C] & 1)) { var_r30--; var_r27 = -1; if (var_r30 < 0) { @@ -957,7 +981,8 @@ void fn_1_1CEB0(omObjData* arg0, StructBss8_24* arg1) { if (var_r29 > 1) { var_r29 = 1; } - } else if (HuPadStkY[arg1->unk6C] >= 5 || (HuPadBtn[arg1->unk6C] & 8)) { + } + else if (HuPadStkY[arg1->unk6C] >= 5 || (HuPadBtn[arg1->unk6C] & 8)) { var_r29--; var_r26 = -1; if (var_r29 < 0) { @@ -965,7 +990,8 @@ void fn_1_1CEB0(omObjData* arg0, StructBss8_24* arg1) { } } } - } else if (HuPadBtnDown[arg1->unk6C] & 0x200) { + } + else if (HuPadBtnDown[arg1->unk6C] & 0x200) { arg1->unk70[0] = 0; HuSprBankSet(temp_r25, arg1->unk68, 0); HuSprBankSet(temp_r25, 16 + arg1->unk58, 0); @@ -979,20 +1005,25 @@ void fn_1_1CEB0(omObjData* arg0, StructBss8_24* arg1) { if (var_r27 == 0 || var_r26 == 0) { if (var_r30 + var_r27 > 3 || var_r30 + var_r27 < 0) { var_r30 = temp_r24; - } else { + } + else { var_r30 += var_r27; } if (var_r29 + var_r26 > 1 || var_r29 + var_r26 < 0) { var_r29 = temp_r23; - } else { + } + else { var_r29 += var_r26; } - } else { + } + else { if (var_r30 + var_r27 <= 3 && var_r30 + var_r27 >= 0) { var_r30 += var_r27; - } else if (var_r29 + var_r26 <= 1 && var_r29 + var_r26 >= 0) { + } + else if (var_r29 + var_r26 <= 1 && var_r29 + var_r26 >= 0) { var_r29 += var_r26; - } else { + } + else { var_r30 = temp_r24; var_r29 = temp_r23; } @@ -1015,7 +1046,8 @@ void fn_1_1CEB0(omObjData* arg0, StructBss8_24* arg1) { } } -void fn_1_1D49C(StructBss8_24* arg0) { +void fn_1_1D49C(StructBss8_24 *arg0) +{ s32 temp_r30; temp_r30 = lbl_1_bss_2050.unk30; @@ -1027,7 +1059,8 @@ void fn_1_1D49C(StructBss8_24* arg0) { HuSprAttrReset(temp_r30, 36 + arg0->unk58, HUSPR_ATTR_DISPOFF); } -s32 fn_1_1D688(StructBss8_24* arg0) { +s32 fn_1_1D688(StructBss8_24 *arg0) +{ float var_f31; s32 i; s32 temp_r29; @@ -1048,32 +1081,37 @@ s32 fn_1_1D688(StructBss8_24* arg0) { if (arg0->unk64 > 3) { arg0->unk64 = 0; } - } else { + } + else { arg0->unk64++; var_r28 = 1; if (arg0->unk64 > 2) { arg0->unk64 = 0; } } - } else if (HuPadStkX[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 1)) { + } + else if (HuPadStkX[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 1)) { if (GWGameStat.field10E_bit4 == 1) { arg0->unk64--; var_r28 = -1; if (arg0->unk64 < 0) { arg0->unk64 = 3; } - } else { + } + else { arg0->unk64--; var_r28 = -1; if (arg0->unk64 < 0) { arg0->unk64 = 2; } } - } else if (HuPadBtnDown[0] & 0x100) { + } + else if (HuPadBtnDown[0] & 0x100) { var_r27 = 1; HuAudFXPlay(2); break; - } else if (HuPadBtnDown[0] & 0x200) { + } + else if (HuPadBtnDown[0] & 0x200) { var_r27 = 0; HuAudFXPlay(3); break; @@ -1104,7 +1142,8 @@ s32 fn_1_1D688(StructBss8_24* arg0) { return var_r27; } -void fn_1_1DD74(s32 arg0, StructBss8_24* arg1) { +void fn_1_1DD74(s32 arg0, StructBss8_24 *arg1) +{ float temp_f31; float var_f30; s32 temp_r27; @@ -1131,14 +1170,16 @@ void fn_1_1DD74(s32 arg0, StructBss8_24* arg1) { HuSprBankSet(temp_r27, 28 + arg1->unk58, 1); HuAudFXPlay(0x6D + arg1->unk68); fn_1_1D49C(arg1); - } else { + } + else { if (HuPadStkX[lbl_1_bss_1E10->unk6C] >= 5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 2)) { var_r30++; var_r26 = 1; if (var_r30 > 3) { var_r30 = 3; } - } else if (HuPadStkX[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 1)) { + } + else if (HuPadStkX[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 1)) { var_r30--; var_r26 = -1; if (var_r30 < 0) { @@ -1151,7 +1192,8 @@ void fn_1_1DD74(s32 arg0, StructBss8_24* arg1) { if (var_r29 > 1) { var_r29 = 1; } - } else if (HuPadStkY[lbl_1_bss_1E10->unk6C] >= 5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 8)) { + } + else if (HuPadStkY[lbl_1_bss_1E10->unk6C] >= 5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 8)) { var_r29--; var_r25 = -1; if (var_r29 < 0) { @@ -1159,7 +1201,8 @@ void fn_1_1DD74(s32 arg0, StructBss8_24* arg1) { } } } - } else if (HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x200) { + } + else if (HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x200) { arg1->unk70[0] = arg1->unk70[2] = 0; HuSprBankSet(temp_r27, arg1->unk68, 0); HuSprBankSet(temp_r27, 24 + arg1->unk58, 0); @@ -1177,20 +1220,25 @@ void fn_1_1DD74(s32 arg0, StructBss8_24* arg1) { if (var_r26 == 0 || var_r25 == 0) { if (var_r30 + var_r26 > 3 || var_r30 + var_r26 < 0) { var_r30 = temp_r23; - } else { + } + else { var_r30 += var_r26; } if (var_r29 + var_r25 > 1 || var_r29 + var_r25 < 0) { var_r29 = temp_r22; - } else { + } + else { var_r29 += var_r25; } - } else { + } + else { if (var_r30 + var_r26 <= 3 && var_r30 + var_r26 >= 0) { var_r30 += var_r26; - } else if (var_r29 + var_r25 <= 1 && var_r29 + var_r25 >= 0) { + } + else if (var_r29 + var_r25 <= 1 && var_r29 + var_r25 >= 0) { var_r29 += var_r25; - } else { + } + else { var_r30 = temp_r23; var_r29 = temp_r22; } @@ -1214,7 +1262,8 @@ void fn_1_1DD74(s32 arg0, StructBss8_24* arg1) { } } -void fn_1_1E608(StructBss8_24* arg0) { +void fn_1_1E608(StructBss8_24 *arg0) +{ s32 temp_r30; s32 i; @@ -1249,7 +1298,8 @@ void fn_1_1E608(StructBss8_24* arg0) { HuSprAttrSet(temp_r30, 49 + arg0->unk58, HUSPR_ATTR_DISPOFF); } -void fn_1_1EB20(StructBss8_24* arg0) { +void fn_1_1EB20(StructBss8_24 *arg0) +{ s32 temp_r30; temp_r30 = lbl_1_bss_2050.unk30; @@ -1261,7 +1311,8 @@ void fn_1_1EB20(StructBss8_24* arg0) { HuSprAttrSet(temp_r30, 49 + arg0->unk58, HUSPR_ATTR_DISPOFF); } -void fn_1_1EBE8(void) { +void fn_1_1EBE8(void) +{ s32 temp_r30; s32 i; @@ -1273,7 +1324,8 @@ void fn_1_1EBE8(void) { } } -void fn_1_1ED20(void) { +void fn_1_1ED20(void) +{ s32 temp_r30; s32 i; @@ -1285,7 +1337,8 @@ void fn_1_1ED20(void) { } } -void fn_1_1EE58(s32 arg0, UnkFunc1EE58Struct* arg1) { +void fn_1_1EE58(s32 arg0, UnkFunc1EE58Struct *arg1) +{ float var_f31; float var_f30; s32 temp_r29; @@ -1304,7 +1357,8 @@ void fn_1_1EE58(s32 arg0, UnkFunc1EE58Struct* arg1) { if (arg1->unk1C > 2) { arg1->unk1C = 0; } - } else if (HuPadStkX[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 1)) { + } + else if (HuPadStkX[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 1)) { var_r28 = -1; arg1->unk1C--; if (arg1->unk1C < 0) { @@ -1319,14 +1373,16 @@ void fn_1_1EE58(s32 arg0, UnkFunc1EE58Struct* arg1) { if (i <= 5) { var_f31 = fn_1_24204(0.0f, 10.0f, i, 5.0f); var_f30 = fn_1_24204(1.0f, 0.0f, i, 5.0f); - } else { + } + else { var_f31 = fn_1_24204(10.0f, 0.0f, i - 5, 5.0f); var_f30 = fn_1_24204(0.0f, 1.0f, i - 5, 5.0f); } if (var_r28 == 1) { HuSprPosSet(temp_r29, 55, lbl_1_data_3CC[4] + var_f31, lbl_1_data_3CC[2]); HuSprPosSet(temp_r29, 56, 380.0f + var_f31, lbl_1_data_3CC[2]); - } else { + } + else { HuSprPosSet(temp_r29, 54, lbl_1_data_3CC[3] - var_f31, lbl_1_data_3CC[2]); HuSprPosSet(temp_r29, 56, 380.0f - var_f31, lbl_1_data_3CC[2]); } @@ -1339,7 +1395,8 @@ void fn_1_1EE58(s32 arg0, UnkFunc1EE58Struct* arg1) { lbl_1_bss_2050.unk1C[3] = 0; } -void fn_1_1F32C(omObjData* arg0) { +void fn_1_1F32C(omObjData *arg0) +{ float var_f31; float var_f30; s32 temp_r29; @@ -1354,7 +1411,8 @@ void fn_1_1F32C(omObjData* arg0) { var_r28 = lbl_1_bss_2050.unk1C[0] - var_r27; if (var_r28 > 3) { var_r28 = 0; - } else if (var_r28 < 0) { + } + else if (var_r28 < 0) { var_r28 = 3; } if (HuPadStkX[lbl_1_bss_1E10->unk6C] >= 5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 2)) { @@ -1365,7 +1423,8 @@ void fn_1_1F32C(omObjData* arg0) { if (lbl_1_bss_2050.unk1C[0] > 3) { lbl_1_bss_2050.unk1C[0] = 1; } - } else if (HuPadStkX[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 1)) { + } + else if (HuPadStkX[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 1)) { var_r27 = -1; lbl_1_bss_2050.unk1C[3] = 1; HuAudFXPlay(0); @@ -1380,28 +1439,33 @@ void fn_1_1F32C(omObjData* arg0) { if (i <= 5) { var_f31 = fn_1_24204(0.0f, 10.0f, i, 5.0f); var_f30 = fn_1_24204(1.0f, 0.0f, i, 5.0f); - } else { + } + else { var_f31 = fn_1_24204(10.0f, 0.0f, i - 5, 5.0f); var_f30 = fn_1_24204(0.0f, 1.0f, i - 5, 5.0f); } if (var_r27 == 1) { HuSprPosSet(temp_r29, 55, lbl_1_data_3CC[1] + var_f31, lbl_1_data_3CC[2]); - } else { + } + else { HuSprPosSet(temp_r29, 54, lbl_1_data_3CC[0] - var_f31, lbl_1_data_3CC[2]); } if (lbl_1_bss_2050.unk1C[0] != 0) { var_f30 = fn_1_24204(0.0f, 1.0f, i, 10.0f); - } else { + } + else { var_f30 = fn_1_24204(1.0f, 0.0f, i, 10.0f); } HuSprScaleSet(temp_r29, 85, var_f30, var_f30); for (j = 0; j < 4; j++) { - var_f31 = fn_1_24204(lbl_1_data_448[lbl_1_bss_1E10[j].unk58][var_r28], lbl_1_data_448[lbl_1_bss_1E10[j].unk58][lbl_1_bss_2050.unk1C[0]], i, 10.0f); + var_f31 = fn_1_24204( + lbl_1_data_448[lbl_1_bss_1E10[j].unk58][var_r28], lbl_1_data_448[lbl_1_bss_1E10[j].unk58][lbl_1_bss_2050.unk1C[0]], i, 10.0f); HuSprPosSet(temp_r29, 57 + lbl_1_bss_1E10[j].unk68, var_f31, lbl_1_data_3CC[2]); HuSprPosSet(temp_r29, 65 + j, var_f31 + 1.0f, lbl_1_data_3CC[2] + 2); if (lbl_1_bss_1E10[j].unk60 != 0) { HuSprPosSet(temp_r29, 77 + j, var_f31, lbl_1_data_3CC[2] + 21); - } else { + } + else { HuSprPosSet(temp_r29, 73 + j, var_f31 - 8.0f, lbl_1_data_3CC[2] - 21); } } @@ -1410,7 +1474,8 @@ void fn_1_1F32C(omObjData* arg0) { lbl_1_bss_2050.unk1C[3] = 0; } -void fn_1_1FABC(void) { +void fn_1_1FABC(void) +{ s32 temp_r30; s32 i; @@ -1428,7 +1493,8 @@ void fn_1_1FABC(void) { } } -void fn_1_1FC44(s32 arg0) { +void fn_1_1FC44(s32 arg0) +{ float var_f31; float var_f30; s32 temp_r30; @@ -1448,7 +1514,8 @@ void fn_1_1FC44(s32 arg0) { HuSprPosSet(temp_r30, 57 + lbl_1_bss_1E10[i].unk68, lbl_1_data_3E4[lbl_1_bss_1E10[i].unk58][0], lbl_1_data_3CC[2]); if (arg0 == 0) { HuSprScaleSet(temp_r30, 57 + lbl_1_bss_1E10[i].unk68, 0.0f, 1.0f); - } else { + } + else { HuSprScaleSet(temp_r30, 57 + lbl_1_bss_1E10[i].unk68, 1.0f, 1.0f); } if (lbl_1_bss_1E10[i].unk60 != 0) { @@ -1457,16 +1524,19 @@ void fn_1_1FC44(s32 arg0) { HuSprPosSet(temp_r30, 77 + i, lbl_1_data_3E4[lbl_1_bss_1E10[i].unk58][0], lbl_1_data_3CC[2] + 21); if (arg0 == 0) { HuSprScaleSet(temp_r30, 77 + i, 0.0f, 1.0f); - } else { + } + else { HuSprScaleSet(temp_r30, 77 + i, 1.0f, 1.0f); } - } else { + } + else { HuSprAttrReset(temp_r30, 73 + i, HUSPR_ATTR_DISPOFF); HuSprBankSet(temp_r30, 73 + i, lbl_1_bss_1E10[i].unk58); HuSprPosSet(temp_r30, 73 + i, lbl_1_data_3E4[lbl_1_bss_1E10[i].unk58][0] - 8.0f, lbl_1_data_3CC[2] - 21); if (arg0 == 0) { HuSprScaleSet(temp_r30, 73 + i, 0.0f, 1.0f); - } else { + } + else { HuSprScaleSet(temp_r30, 73 + i, 1.0f, 1.0f); } } @@ -1477,14 +1547,16 @@ void fn_1_1FC44(s32 arg0) { if (arg0 == 0) { lbl_1_bss_2050.unk1C[0] = 1; var_r27 = 0; - } else { + } + else { var_r27 = lbl_1_bss_2050.unk1C[0]; lbl_1_bss_2050.unk1C[0] = 0; } for (i = 0; i <= 10; i++) { if (i <= 5) { var_f31 = fn_1_24204(1.0f, 0.0f, i, 5.0f); - } else { + } + else { var_f31 = fn_1_24204(0.0f, 1.0f, i - 5, 5.0f); } for (j = 0; j < 4; j++) { @@ -1493,24 +1565,29 @@ void fn_1_1FC44(s32 arg0) { HuSprScaleSet(temp_r30, 57 + lbl_1_bss_1E10[j].unk68, var_f31, 1.0f); if (lbl_1_bss_1E10[j].unk60 != 0) { HuSprScaleSet(temp_r30, 77 + j, var_f31, 1.0f); - } else { + } + else { HuSprScaleSet(temp_r30, 73 + j, var_f31, 1.0f); } - } else { + } + else { HuSprScaleSet(temp_r30, 81 + j, var_f31, 1.0f); } - var_f30 = fn_1_24204(lbl_1_data_448[lbl_1_bss_1E10[j].unk58][var_r27], lbl_1_data_448[lbl_1_bss_1E10[j].unk58][lbl_1_bss_2050.unk1C[0]], i, 10.0f); + var_f30 = fn_1_24204( + lbl_1_data_448[lbl_1_bss_1E10[j].unk58][var_r27], lbl_1_data_448[lbl_1_bss_1E10[j].unk58][lbl_1_bss_2050.unk1C[0]], i, 10.0f); HuSprPosSet(temp_r30, 57 + lbl_1_bss_1E10[j].unk68, var_f30, lbl_1_data_3CC[2]); HuSprPosSet(temp_r30, 65 + j, var_f30 + 1.0f, lbl_1_data_3CC[2] + 2); if (lbl_1_bss_1E10[j].unk60 != 0) { HuSprPosSet(temp_r30, 77 + j, var_f30, lbl_1_data_3CC[2] + 21); - } else { + } + else { HuSprPosSet(temp_r30, 73 + j, var_f30 - 8.0f, lbl_1_data_3CC[2] - 21); } } if (lbl_1_bss_2050.unk1C[0] != 0) { var_f31 = fn_1_24204(0.0f, 1.0f, i, 10.0f); - } else { + } + else { var_f31 = fn_1_24204(1.0f, 0.0f, i, 10.0f); } HuSprScaleSet(temp_r30, 85, var_f31, var_f31); @@ -1522,18 +1599,21 @@ void fn_1_1FC44(s32 arg0) { for (i = 0; i < 2; i++) { HuSprAttrReset(temp_r30, 54 + i, HUSPR_ATTR_DISPOFF); } - } else { + } + else { for (i = 0; i < 2; i++) { HuSprAttrSet(temp_r30, 54 + i, HUSPR_ATTR_DISPOFF); } } } -void fn_1_20728(void) { +void fn_1_20728(void) +{ fn_1_1A6A0(); } -s32 fn_1_20970(void) { +s32 fn_1_20970(void) +{ s32 var_r23; s32 temp_r26; s32 temp_r28; @@ -1556,7 +1636,7 @@ s32 fn_1_20970(void) { HuSprPosSet(temp_r28, 8, lbl_1_data_32C[0][0] - 50, lbl_1_data_32C[0][1]); HuSprAttrReset(temp_r28, 9, HUSPR_ATTR_DISPOFF); HuSprPosSet(temp_r28, 9, lbl_1_data_32C[3][0] + 50, lbl_1_data_32C[0][1]); - lbl_1_bss_2050.unk04 = (void*) fn_1_19F5C; + lbl_1_bss_2050.unk04 = (void *)fn_1_19F5C; var_r24 = 99; var_r23 = 0; while (TRUE) { @@ -1590,13 +1670,15 @@ s32 fn_1_20970(void) { if (HuPadStatGet(i) != -1) { var_r30++; lbl_1_bss_1E10[i].unk60 = 0; - } else { + } + else { lbl_1_bss_1E10[i].unk60 = 1; } } } break; - } else if (HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x200) { + } + else if (HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x200) { var_r29 = -99; HuAudFXPlay(3); break; @@ -1619,14 +1701,16 @@ s32 fn_1_20970(void) { } if (var_r30 == 0) { var_r29 = 2; - } else { + } + else { var_r29 = 1; } } return var_r29; } -void fn_1_20E84(s32 arg0) { +void fn_1_20E84(s32 arg0) +{ float var_f31; s32 sp10; s32 spC; @@ -1640,7 +1724,8 @@ void fn_1_20E84(s32 arg0) { fn_1_243B0(); if (i <= 10) { var_f31 = fn_1_24204(2.06f, 10.0f, i, 10.0f); - } else { + } + else { var_f31 = fn_1_2412C(10.0f, -500.0f, i - 10, 50.0f); } HuSprGrpPosSet(temp_r30, 0.0f, var_f31); @@ -1650,11 +1735,13 @@ void fn_1_20E84(s32 arg0) { fn_1_1B260(arg0); } -void fn_1_20FD4(s32 arg0) { - fn_1_1BCEC(); +void fn_1_20FD4(s32 arg0) +{ + fn_1_1BCEC(); } -s32 fn_1_211B4(void) { +s32 fn_1_211B4(void) +{ s32 var_r27; s32 sp8; s32 var_r29; @@ -1674,7 +1761,7 @@ s32 fn_1_211B4(void) { fn_1_25CA8(MAKE_MESSID(26, 32)); for (i = 0; i < 4; i++) { if (lbl_1_bss_1E10[i].unk60 == 0) { - lbl_1_bss_1E10[i].unk4 = (void*) fn_1_1CEB0; + lbl_1_bss_1E10[i].unk4 = (void *)fn_1_1CEB0; } } while (TRUE) { @@ -1688,7 +1775,8 @@ s32 fn_1_211B4(void) { HuAudFXPlay(3); var_r30 = 0; break; - } else { + } + else { for (i = 0; i < 4; i++) { if (lbl_1_bss_1E10[i].unk60 == 0 && lbl_1_bss_1E10[i].unk70[0] != 1) { break; @@ -1715,16 +1803,19 @@ s32 fn_1_211B4(void) { } if (var_r29 == 0) { var_r30 = 3; - } else { + } + else { var_r30 = 2; } - } else { + } + else { var_r30 = 0; } return var_r30; } -s32 fn_1_214A4(void) { +s32 fn_1_214A4(void) +{ s32 var_r30; s32 var_r24; s32 var_r23; @@ -1764,7 +1855,7 @@ s32 fn_1_214A4(void) { var_r30 = i; lbl_1_bss_1E10[i].unk70[1] = var_r24; fn_1_1E608(&lbl_1_bss_1E10[i]); - lbl_1_bss_1E10[i].unk4 = (void*) fn_1_1DD74; + lbl_1_bss_1E10[i].unk4 = (void *)fn_1_1DD74; break; } } @@ -1775,11 +1866,13 @@ s32 fn_1_214A4(void) { if (var_r24 == -1) { var_r29 = 0; break; - } else { + } + else { var_r29 = 1; break; } - } else if (lbl_1_bss_1E10[var_r30].unk70[0] == 1) { + } + else if (lbl_1_bss_1E10[var_r30].unk70[0] == 1) { for (i = 0; i < 4; i++) { if (lbl_1_bss_1E10[i].unk70[0] == 0) { lbl_1_bss_1E10[i].unk68 = 0; @@ -1793,7 +1886,8 @@ s32 fn_1_214A4(void) { lbl_1_bss_1E10[var_r30].unk70[2] = 1; var_r29 = 4; var_r24 = var_r30; - } else { + } + else { lbl_1_bss_1E10[var_r30].unk70[2] = 0; var_r29 = 4; lbl_1_bss_1E10[var_r30].unk70[0] = 0; @@ -1814,14 +1908,16 @@ s32 fn_1_214A4(void) { if (i == 4) { var_r29 = 3; break; - } else { + } + else { if (var_r29 == 1) { fn_1_1E608(&lbl_1_bss_1E10[var_r30]); fn_1_1EB20(&lbl_1_bss_1E10[var_r30]); fn_1_1E608(&lbl_1_bss_1E10[lbl_1_bss_1E10[var_r30].unk70[1]]); var_r24 = lbl_1_bss_1E10[lbl_1_bss_1E10[var_r30].unk70[1]].unk70[1]; lbl_1_bss_1E10[lbl_1_bss_1E10[var_r30].unk70[1]].unk70[0] = 0; - } else if (var_r29 != 4) { + } + else if (var_r29 != 4) { if (var_r29 == 0) { fn_1_1EB20(&lbl_1_bss_1E10[var_r30]); } @@ -1841,14 +1937,16 @@ s32 fn_1_214A4(void) { } if (var_r28 != 0) { var_r29 = 1; - } else { + } + else { var_r29 = 0; } } return var_r29; } -s32 fn_1_21CA4(void) { +s32 fn_1_21CA4(void) +{ s32 sp8; s32 temp_r27; s32 var_r22; @@ -1864,7 +1962,7 @@ s32 fn_1_21CA4(void) { fn_1_243B0(); fn_1_25CA8(MAKE_MESSID(26, 33)); fn_1_1EBE8(); - lbl_1_bss_2050.unk04 = (void*) fn_1_1EE58; + lbl_1_bss_2050.unk04 = (void *)fn_1_1EE58; var_r22 = 99; while (TRUE) { fn_1_243B0(); @@ -1880,7 +1978,8 @@ s32 fn_1_21CA4(void) { var_r28 = 5; HuAudFXPlay(2); break; - } else if (HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x200) { + } + else if (HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x200) { var_r28 = -99; HuAudFXPlay(3); for (i = 0; i < 4; i++) { @@ -1909,14 +2008,16 @@ s32 fn_1_21CA4(void) { } if (j == 0) { var_r28 = 1; - } else { + } + else { var_r28 = 2; } } return var_r28; } -s32 fn_1_2228C(s32 arg0) { +s32 fn_1_2228C(s32 arg0) +{ s32 sp8; s32 temp_r30; s32 var_r26; @@ -1932,7 +2033,7 @@ s32 fn_1_2228C(s32 arg0) { fn_1_243B0(); fn_1_25CA8(MAKE_MESSID(26, 33)); fn_1_1FC44(0); - lbl_1_bss_2050.unk04 = (void*) fn_1_1F32C; + lbl_1_bss_2050.unk04 = (void *)fn_1_1F32C; var_r26 = 99; while (TRUE) { fn_1_243B0(); @@ -1964,7 +2065,8 @@ s32 fn_1_2228C(s32 arg0) { var_r27 = 5; HuAudFXPlay(2); break; - } else if (HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x200) { + } + else if (HuPadBtnDown[lbl_1_bss_1E10->unk6C] & 0x200) { var_r27 = -99; HuAudFXPlay(3); fn_1_1FC44(1); @@ -1993,14 +2095,16 @@ s32 fn_1_2228C(s32 arg0) { } if (j == 0) { var_r27 = 1; - } else { + } + else { var_r27 = 2; } } return var_r27; } -void fn_1_22728(void) { +void fn_1_22728(void) +{ s32 i; s32 j; @@ -2019,7 +2123,8 @@ void fn_1_22728(void) { } } -void fn_1_22C08(omObjData* arg0) { +void fn_1_22C08(omObjData *arg0) +{ float var_f31; s32 i; @@ -2033,7 +2138,8 @@ void fn_1_22C08(omObjData* arg0) { } var_f31 = fn_1_2412C(lbl_1_bss_3CC[i].unk10, 1000.0f, lbl_1_bss_3CC[i].unk00++, lbl_1_bss_3CC[i].unk04); Hu3DData[arg0->model[i]].pos.y = fn_1_2410C(Hu3DData[arg0->model[i]].pos.y, var_f31, 30.0f); - Hu3DData[arg0->model[i]].pos.x = fn_1_2410C(Hu3DData[arg0->model[i]].pos.x, lbl_1_bss_3CC[i].unk18 + Hu3DData[arg0->model[i]].pos.x, 5.0f); + Hu3DData[arg0->model[i]].pos.x + = fn_1_2410C(Hu3DData[arg0->model[i]].pos.x, lbl_1_bss_3CC[i].unk18 + Hu3DData[arg0->model[i]].pos.x, 5.0f); } } for (i = 10; i < 140; i++) { @@ -2043,10 +2149,12 @@ void fn_1_22C08(omObjData* arg0) { } } for (i = 10; i < 140; i++) { - if (0.0f == lbl_1_bss_3CC[i].unk24 && lbl_1_bss_3CC[i].unk14 > CZoom - 400.0f && lbl_1_bss_3CC[i].unk0C < 200.0f && lbl_1_bss_3CC[i].unk0C > -200.0f) { + if (0.0f == lbl_1_bss_3CC[i].unk24 && lbl_1_bss_3CC[i].unk14 > CZoom - 400.0f && lbl_1_bss_3CC[i].unk0C < 200.0f + && lbl_1_bss_3CC[i].unk0C > -200.0f) { if (0.0f >= lbl_1_bss_3CC[i].unk0C) { lbl_1_bss_3CC[i].unk24 = -300.0f; - } else { + } + else { lbl_1_bss_3CC[i].unk24 = 300.0f; } } @@ -2056,12 +2164,13 @@ void fn_1_22C08(omObjData* arg0) { } if (arg0->work[0] == 1) { for (i = 10; i < 140; i++) { - Hu3DModelAttrSet(arg0->model[i], 1); + Hu3DModelAttrSet(arg0->model[i], HU3D_ATTR_DISPOFF); } } } -void fn_1_231F0(omObjData* arg0) { +void fn_1_231F0(omObjData *arg0) +{ float temp_f31; float temp_f30; float temp_f29; @@ -2137,13 +2246,15 @@ void fn_1_231F0(omObjData* arg0) { lbl_1_bss_3CC[i].unk14 = lbl_1_bss_3CC[i].unk20 = Hu3DData[arg0->model[i]].pos.z; if (rand8() % 2 == 0) { lbl_1_bss_3CC[i].unk18 += rand8() % 30; - } else { + } + else { lbl_1_bss_3CC[i].unk18 -= rand8() % 30; } lbl_1_bss_3CC[i].unk1C += rand8() % 30 + 10; if (rand8() % 2 == 0) { lbl_1_bss_3CC[i].unk20 += rand8() % 30; - } else { + } + else { lbl_1_bss_3CC[i].unk20 -= rand8() % 30; } lbl_1_bss_3CC[i].unk24 = lbl_1_bss_3CC[i].unk28 = lbl_1_bss_3CC[i].unk2C = 0.0f; @@ -2151,58 +2262,67 @@ void fn_1_231F0(omObjData* arg0) { lbl_1_bss_3CC[i].unk00 = rand8(); } for (i = 1; i < 140; i++) { - Hu3DModelAttrSet(arg0->model[i], 1); + Hu3DModelAttrSet(arg0->model[i], HU3D_ATTR_DISPOFF); } arg0->func = fn_1_22C08; } -float fn_1_240E4(float arg0, float arg1, float arg2, float arg3) { +float fn_1_240E4(float arg0, float arg1, float arg2, float arg3) +{ if (arg3 <= arg2) { return arg1; } return arg0 + (arg2 / arg3) * (arg1 - arg0); } -float fn_1_2410C(float arg0, float arg1, float arg2) { +float fn_1_2410C(float arg0, float arg1, float arg2) +{ return (arg1 + arg0 * (arg2 - 1.0f)) / arg2; } -float fn_1_2412C(float arg0, float arg1, float arg2, float arg3) { +float fn_1_2412C(float arg0, float arg1, float arg2, float arg3) +{ if (arg2 >= arg3) { return arg1; } return arg0 + (arg1 - arg0) * (1.0 - cosd((90.0f / arg3) * arg2)); } -float fn_1_24204(float arg0, float arg1, float arg2, float arg3) { +float fn_1_24204(float arg0, float arg1, float arg2, float arg3) +{ if (arg2 >= arg3) { return arg1; } return arg0 + (arg1 - arg0) * sind((90.0f / arg3) * arg2); } -float fn_1_242CC(float arg0, float arg1, float arg2, float arg3) { +float fn_1_242CC(float arg0, float arg1, float arg2, float arg3) +{ if (arg2 >= arg3) { return arg0; } return arg0 + (arg1 - arg0) * sind((360.0f / arg3) * arg2); } -void fn_1_24388(s32 arg0) { +void fn_1_24388(s32 arg0) +{ HuPrcSleep(arg0); } -void fn_1_243B0(void) { +void fn_1_243B0(void) +{ HuPrcVSleep(); } -void fn_1_243D0(void) { +void fn_1_243D0(void) +{ while (TRUE) { HuPrcVSleep(); } } -void fn_1_243E4(void) { +void fn_1_243E4(void) +{ s32 var_r31; var_r31 = 0; @@ -2211,7 +2331,8 @@ void fn_1_243E4(void) { Hu3DGLightInfinitytSet(var_r31); } -void fn_1_244C0(s32 arg0) { +void fn_1_244C0(s32 arg0) +{ Vec sp24 = { 0.0f, 3000.0f, 800.0f }; Vec sp18 = { 0.0f, 0.0f, 640.0f }; Vec spC = { 0.0f, 1.0f, 0.0f }; @@ -2224,12 +2345,14 @@ void fn_1_244C0(s32 arg0) { Hu3DShadowPosSet(&sp24, &spC, &sp18); } -void fn_1_245A8(void) { +void fn_1_245A8(void) +{ HuWinInit(1); } -void fn_1_245CC(s32 arg0, float arg1, float arg2, s32 arg3) { - WindowData* temp_r29; +void fn_1_245CC(s32 arg0, float arg1, float arg2, s32 arg3) +{ + WindowData *temp_r29; float temp_f29; float temp_f28; float temp_f25; @@ -2253,10 +2376,12 @@ void fn_1_245CC(s32 arg0, float arg1, float arg2, s32 arg3) { temp_f27 = 4.0f / temp_f25; if (var_f31 + 4.0f - (temp_f29 + temp_f25) >= 0.0f) { var_f31 = temp_f29 + temp_f25 - 4.0f; - } else { + } + else { if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { var_f31 = temp_f29; - } else { + } + else { var_f31 = var_f31 - 2.0f; } } @@ -2264,10 +2389,12 @@ void fn_1_245CC(s32 arg0, float arg1, float arg2, s32 arg3) { temp_f26 = 4.0f / temp_f24; if (var_f30 + 4.0f - (temp_f28 + temp_f24) >= 0.0f) { var_f30 = temp_f28 + temp_f24 - 4.0f; - } else { + } + else { if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { var_f30 = temp_f28; - } else { + } + else { var_f30 = var_f30 - 2.0f; } } @@ -2278,7 +2405,8 @@ void fn_1_245CC(s32 arg0, float arg1, float arg2, s32 arg3) { var_f21 = temp_f27; var_f22 = var_f30; var_f20 = temp_f26; - } else { + } + else { HuWinPosSet(arg0, temp_f29, temp_f28); HuWinScaleSet(arg0, 1.0f, 1.0f); var_f23 = temp_f29; @@ -2293,15 +2421,18 @@ void fn_1_245CC(s32 arg0, float arg1, float arg2, s32 arg3) { if (i <= 10) { var_f23 = fn_1_24204(var_f31, temp_f29, i, 10.0f); var_f21 = fn_1_24204(temp_f27, 1.0f, i, 10.0f); - } else { + } + else { var_f22 = fn_1_24204(var_f30, temp_f28, i - 10, 5.0f); var_f20 = fn_1_24204(temp_f26, 1.0f, i - 10, 5.0f); } - } else { + } + else { if (i <= 10) { var_f22 = fn_1_24204(temp_f28, var_f30, i, 10.0f); var_f20 = fn_1_24204(1.0f, temp_f26, i, 10.0f); - } else { + } + else { var_f23 = fn_1_24204(temp_f29, var_f31, i - 10, 5.0f); var_f21 = fn_1_24204(1.0f, temp_f27, i - 10, 5.0f); } @@ -2312,14 +2443,16 @@ void fn_1_245CC(s32 arg0, float arg1, float arg2, s32 arg3) { if (arg3 != 0) { HuWinPosSet(arg0, temp_f29, temp_f28); HuWinScaleSet(arg0, 1.0f, 1.0f); - } else { + } + else { HuWinPosSet(arg0, var_f31, var_f30); HuWinScaleSet(arg0, temp_f27, temp_f26); } HuPrcVSleep(); } -s32 fn_1_25014(s32 arg0, s32 arg1, s32 arg2, s32 arg3, float arg4, float arg5, s32 arg6, s32 arg7, s32 arg8) { +s32 fn_1_25014(s32 arg0, s32 arg1, s32 arg2, s32 arg3, float arg4, float arg5, s32 arg6, s32 arg7, s32 arg8) +{ float sp14[2]; s32 temp_r30; @@ -2338,7 +2471,8 @@ s32 fn_1_25014(s32 arg0, s32 arg1, s32 arg2, s32 arg3, float arg4, float arg5, s arg0 = 556.0f - arg2; break; } - } else { + } + else { HuWinMesMaxSizeGet(1, sp14, arg8); arg2 = sp14[0]; arg3 = sp14[1]; @@ -2355,22 +2489,26 @@ s32 fn_1_25014(s32 arg0, s32 arg1, s32 arg2, s32 arg3, float arg4, float arg5, s return temp_r30; } -s32 fn_1_2530C(s32 arg0, s32 arg1, s32 arg2) { +s32 fn_1_2530C(s32 arg0, s32 arg1, s32 arg2) +{ return fn_1_25014(arg0, 0, 21, 2, 0.5f, 0.5f, 0, 0, 0); } -void fn_1_25524(s32 arg0, float arg1, float arg2) { +void fn_1_25524(s32 arg0, float arg1, float arg2) +{ HuWinMesSet(arg0, MAKE_MESSID(37, 4)); HuPrcVSleep(); fn_1_245CC(arg0, arg1, arg2, 0); HuWinExCleanup(arg0); } -void fn_1_25584(s32 arg0) { +void fn_1_25584(s32 arg0) +{ fn_1_25524(arg0, 0.5f, 0.5f); } -void fn_1_255EC(s32 arg0, s32 arg1) { +void fn_1_255EC(s32 arg0, s32 arg1) +{ if (arg1 == -999 || arg1 == 0) { return; } @@ -2389,7 +2527,8 @@ void fn_1_255EC(s32 arg0, s32 arg1) { HuWinComKeyReset(); } -void fn_1_2567C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { +void fn_1_2567C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +{ s32 i; s32 temp_r28; s32 var_r30; @@ -2415,13 +2554,15 @@ void fn_1_2567C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { if (var_r30 != 0) { if (var_r30 == 1 && HuWinStatGet(arg0) != 1) { var_r30 = 2; - } else if (var_r30 == 2) { + } + else if (var_r30 == 2) { HuPrcSleep(arg3); HuWinAttrReset(arg0, 0x400); HuWinKeyWaitEntry(arg0); break; } - } else if (HuWinStatGet(arg0) != 1) { + } + else if (HuWinStatGet(arg0) != 1) { break; } } @@ -2430,7 +2571,8 @@ void fn_1_2567C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { HuWinComKeyReset(); } -s32 fn_1_257B0(s32 arg0) { +s32 fn_1_257B0(s32 arg0) +{ s32 temp_r31; HuWinComKeyReset(); @@ -2439,25 +2581,30 @@ s32 fn_1_257B0(s32 arg0) { return temp_r31; } -void fn_1_257F8(s32 arg0, s32 arg1, s32 arg2) { +void fn_1_257F8(s32 arg0, s32 arg1, s32 arg2) +{ HuWinInsertMesSet(arg0, arg1, arg2); } -void fn_1_25838(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { +void fn_1_25838(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +{ if (arg3 == -999) { HuWinMesSpeedSet(arg0, 0); - } else { + } + else { HuWinMesSpeedSet(arg0, 1); } HuWinMesSet(arg0, arg1); if (arg2 == -1) { fn_1_255EC(arg0, arg3); - } else { + } + else { fn_1_2567C(arg0, arg1, arg2, arg3); } } -s32 fn_1_2592C(s32 arg0, s32 arg1, s32 arg2) { +s32 fn_1_2592C(s32 arg0, s32 arg1, s32 arg2) +{ s32 var_r25; s32 temp_r27; @@ -2469,7 +2616,8 @@ s32 fn_1_2592C(s32 arg0, s32 arg1, s32 arg2) { return var_r25; } -s32 fn_1_25CA8(s32 arg0) { +s32 fn_1_25CA8(s32 arg0) +{ float sp8[2]; float temp_f31; float temp_f30; @@ -2484,7 +2632,8 @@ s32 fn_1_25CA8(s32 arg0) { temp_f28 = 385.0f - temp_f30; if (lbl_1_data_488 == -1) { var_r31 = lbl_1_data_488 = HuWinExCreateStyled(temp_f29, temp_f28, temp_f31, temp_f30, -1, 1); - } else { + } + else { fn_1_25E74(lbl_1_data_488); var_r31 = lbl_1_data_488 = HuWinExCreateStyled(temp_f29, temp_f28, temp_f31, temp_f30, -1, 1); } @@ -2495,14 +2644,16 @@ s32 fn_1_25CA8(s32 arg0) { return lbl_1_data_488; } -void fn_1_25E74(s32 arg0) { +void fn_1_25E74(s32 arg0) +{ if (lbl_1_data_488 != -1) { HuWinExCleanup(lbl_1_data_488); lbl_1_data_488 = -1; } } -void fn_1_25EC8(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { +void fn_1_25EC8(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +{ switch (arg3) { case 0: Hu3DMotionShiftSet(arg0, arg1, 0.0f, arg2, HU3D_MOTATTR_NONE); @@ -2516,7 +2667,8 @@ void fn_1_25EC8(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { } } -void fn_1_26004(s32 arg0, Vec arg1, float arg2, float arg3, float arg4, s32 arg5, s32 arg6) { +void fn_1_26004(s32 arg0, Vec arg1, float arg2, float arg3, float arg4, s32 arg5, s32 arg6) +{ Vec sp4C; Vec sp40; Vec sp34; @@ -2543,12 +2695,14 @@ void fn_1_26004(s32 arg0, Vec arg1, float arg2, float arg3, float arg4, s32 arg5 sp10.z = 0.0f; if (sp34.x - sp40.x >= 0.0f) { var_r30 = 1; - } else { + } + else { var_r30 = 0; } if (sp34.z - sp40.z >= 0.0f) { var_r29 = 1; - } else { + } + else { var_r29 = 0; } while (arg5 != 0) { @@ -2556,7 +2710,8 @@ void fn_1_26004(s32 arg0, Vec arg1, float arg2, float arg3, float arg4, s32 arg5 sp28.y = -(atan2d(sp34.z - sp40.z, sp34.x - sp40.x) - 90.0); if (sp28.y < 0.0f) { sp28.y += 360.0f; - } else if (sp28.y >= 360.0f) { + } + else if (sp28.y >= 360.0f) { sp28.y -= 360.0f; } if (arg6 != 0) { @@ -2567,7 +2722,8 @@ void fn_1_26004(s32 arg0, Vec arg1, float arg2, float arg3, float arg4, s32 arg5 if (sp1C.y - sp28.y < -180.0f) { sp1C.y += 360.0f; } - } else { + } + else { if (sp1C.y - sp28.y > 180.0f) { sp1C.y -= 360.0f; } @@ -2583,7 +2739,8 @@ void fn_1_26004(s32 arg0, Vec arg1, float arg2, float arg3, float arg4, s32 arg5 sp4C.x = sp40.x = sp34.x; var_r30 = 2; } - } else if (var_r30 == 0) { + } + else if (var_r30 == 0) { if (sp40.x <= sp34.x) { sp4C.x = sp40.x = sp34.x; var_r30 = 2; @@ -2594,7 +2751,8 @@ void fn_1_26004(s32 arg0, Vec arg1, float arg2, float arg3, float arg4, s32 arg5 sp4C.z = sp40.z = sp34.z; var_r29 = 2; } - } else if (var_r29 == 0) { + } + else if (var_r29 == 0) { if (sp40.z <= sp34.z) { sp4C.z = sp40.z = sp34.z; var_r29 = 2; @@ -2620,7 +2778,8 @@ void fn_1_26004(s32 arg0, Vec arg1, float arg2, float arg3, float arg4, s32 arg5 if (sp1C.y - sp10.y < -180.0f) { sp1C.y += 360.0f; } - } else { + } + else { if (sp1C.y - sp10.y > 180.0f) { sp1C.y -= 360.0f; } @@ -2634,6 +2793,7 @@ void fn_1_26004(s32 arg0, Vec arg1, float arg2, float arg3, float arg4, s32 arg5 } } -void fn_1_26790(s32 arg0, s32 arg1, float arg2, float arg3) { +void fn_1_26790(s32 arg0, s32 arg1, float arg2, float arg3) +{ HuSprPosSet(arg0, arg1, arg2, arg3 + 0.5f); } diff --git a/src/REL/mgmodedll/mgmode.c b/src/REL/mgmodedll/mgmode.c index 110cbe9b..0d7c22ee 100644 --- a/src/REL/mgmodedll/mgmode.c +++ b/src/REL/mgmodedll/mgmode.c @@ -1,26 +1,20 @@ #include "REL/mgmodedll.h" -#include "game/gamework_data.h" -#include "game/esprite.h" #include "game/audio.h" -#include "game/wipe.h" +#include "game/esprite.h" +#include "game/gamework_data.h" #include "game/saveload.h" +#include "game/wipe.h" -#include "rel_sqrt_consts.h" #include "ext_math.h" +#include "rel_sqrt_consts.h" typedef struct camera_view_params { - Vec rot; - Vec pos; - float zoom; + Vec rot; + Vec pos; + float zoom; } CameraViewParams; -CameraViewParams lbl_1_data_0[1] = { - { - { -5, 0, 0 }, - { 0, 125, 0 }, - 1750 - } -}; +CameraViewParams lbl_1_data_0[1] = { { { -5, 0, 0 }, { 0, 125, 0 }, 1750 } }; omObjData *lbl_1_bss_2DC; Process *lbl_1_bss_2D8; @@ -46,43 +40,43 @@ void fn_1_54F4(void); void ObjectSetup(void) { - s32 glight; - - OSReport("******* MG ObjectSetup *********\n"); - lbl_1_bss_2D8 = omInitObjMan(50, 8192); - lbl_1_bss_28C[0].x = -70; - lbl_1_bss_28C[0].y = 0; - lbl_1_bss_28C[0].z = 0; - lbl_1_bss_274[0].x = 0; - lbl_1_bss_274[0].y = 130; - lbl_1_bss_274[0].z = -186; - lbl_1_bss_26C[0] = 1360; - lbl_1_bss_2C0 = lbl_1_bss_28C[0]; - lbl_1_bss_2B4 = lbl_1_bss_274[0]; - lbl_1_bss_2B0 = lbl_1_bss_26C[0]; - lbl_1_bss_2D0 = 0; - _ClearFlag(0x10000); - _ClearFlag(0x10008); - GWSystem.mg_type = -1; - GWSystem.player_curr = 0; - lbl_1_bss_4 = omovlevtno; - if(lbl_1_bss_4 == 0) { - mgGameStatBackup = GWGameStat; - } - lbl_1_bss_2CE = -1; - mgBoardHostEnableF = 1; - mgPracticeEnableF = 0; - Hu3DCameraCreate(1); - Hu3DCameraPerspectiveSet(1, 42, 20, 15000, 1.2f); - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - glight = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); - Hu3DGLightInfinitytSet(glight); - HuPrcChildCreate(fn_1_464, 100, 12288, 0, lbl_1_bss_2D8); - HuPrcChildCreate(fn_1_54F4, 200, 4096, 0, lbl_1_bss_2D8); - lbl_1_bss_2DC = omAddObjEx(lbl_1_bss_2D8, 32730, 0, 0, -1, omOutView); - Hu3DBGColorSet(0, 0, 0); - HuWinInit(1); - fn_1_279FC(0); + s32 glight; + + OSReport("******* MG ObjectSetup *********\n"); + lbl_1_bss_2D8 = omInitObjMan(50, 8192); + lbl_1_bss_28C[0].x = -70; + lbl_1_bss_28C[0].y = 0; + lbl_1_bss_28C[0].z = 0; + lbl_1_bss_274[0].x = 0; + lbl_1_bss_274[0].y = 130; + lbl_1_bss_274[0].z = -186; + lbl_1_bss_26C[0] = 1360; + lbl_1_bss_2C0 = lbl_1_bss_28C[0]; + lbl_1_bss_2B4 = lbl_1_bss_274[0]; + lbl_1_bss_2B0 = lbl_1_bss_26C[0]; + lbl_1_bss_2D0 = 0; + _ClearFlag(0x10000); + _ClearFlag(0x10008); + GWSystem.mg_type = -1; + GWSystem.player_curr = 0; + lbl_1_bss_4 = omovlevtno; + if (lbl_1_bss_4 == 0) { + mgGameStatBackup = GWGameStat; + } + lbl_1_bss_2CE = -1; + mgBoardHostEnableF = 1; + mgPracticeEnableF = 0; + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 42, 20, 15000, 1.2f); + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + glight = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); + Hu3DGLightInfinitytSet(glight); + HuPrcChildCreate(fn_1_464, 100, 12288, 0, lbl_1_bss_2D8); + HuPrcChildCreate(fn_1_54F4, 200, 4096, 0, lbl_1_bss_2D8); + lbl_1_bss_2DC = omAddObjEx(lbl_1_bss_2D8, 32730, 0, 0, -1, omOutView); + Hu3DBGColorSet(0, 0, 0); + HuWinInit(1); + fn_1_279FC(0); } void fn_1_52DC(void); @@ -91,44 +85,45 @@ void fn_1_6F8(void); void fn_1_464(void) { - s16 i; - fn_1_52DC(); - if(lbl_1_bss_4 == 0) { - HuAudSStreamPlay(12); - fn_1_19018(); - } else { - HuAudSeqPlay(44); - for(i=0; i<4; i++) { - lbl_1_bss_8.unk24[i].unk68 = GWPlayerCfg[i].character; - lbl_1_bss_8.unk24[i].unk60 = GWPlayerCfg[i].iscom; - lbl_1_bss_8.unk24[i].unk6C = GWPlayerCfg[i].pad_idx; - lbl_1_bss_8.unk24[i].unk64 = GWPlayerCfg[i].diff; - } - CZoom = 1600; - Center.x = Center.z = 0; - Center.y = 215; - CRot.x = 0; - CRot.y = CRot.z = 0; - if(lbl_1_bss_4 == 1 || lbl_1_bss_4 == 2 || lbl_1_bss_4 == 3 || lbl_1_bss_4 == 4) { - Hu3DModelPosSet(lbl_1_bss_2C80[5], 0, 0, 640); - Hu3DMotionSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6]); - Hu3DModelAttrSet(lbl_1_bss_2C80[5], 0x40000001); - HuPrcVSleep(); - } - } - fn_1_6F8(); - fn_1_2592C(0x1E0035, 3, 0); - fn_1_25584(lbl_1_bss_2CE); - while(1) { - HuPrcVSleep(); - } + s16 i; + fn_1_52DC(); + if (lbl_1_bss_4 == 0) { + HuAudSStreamPlay(12); + fn_1_19018(); + } + else { + HuAudSeqPlay(44); + for (i = 0; i < 4; i++) { + lbl_1_bss_8.unk24[i].unk68 = GWPlayerCfg[i].character; + lbl_1_bss_8.unk24[i].unk60 = GWPlayerCfg[i].iscom; + lbl_1_bss_8.unk24[i].unk6C = GWPlayerCfg[i].pad_idx; + lbl_1_bss_8.unk24[i].unk64 = GWPlayerCfg[i].diff; + } + CZoom = 1600; + Center.x = Center.z = 0; + Center.y = 215; + CRot.x = 0; + CRot.y = CRot.z = 0; + if (lbl_1_bss_4 == 1 || lbl_1_bss_4 == 2 || lbl_1_bss_4 == 3 || lbl_1_bss_4 == 4) { + Hu3DModelPosSet(lbl_1_bss_2C80[5], 0, 0, 640); + Hu3DMotionSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6]); + Hu3DModelAttrSet(lbl_1_bss_2C80[5], HU3D_MOTATTR_LOOP); + HuPrcVSleep(); + } + } + fn_1_6F8(); + fn_1_2592C(0x1E0035, 3, 0); + fn_1_25584(lbl_1_bss_2CE); + while (1) { + HuPrcVSleep(); + } } Vec lbl_1_data_40[4] = { - { 108, 190, 0 }, - { 228, 190, 0 }, - { 348, 190, 0 }, - { 468, 190, 0 }, + { 108, 190, 0 }, + { 228, 190, 0 }, + { 348, 190, 0 }, + { 468, 190, 0 }, }; void fn_1_DF0(void); @@ -140,104 +135,106 @@ void fn_1_4ADC(void); void fn_1_6F8(void) { - s16 i; - s16 time; - if(lbl_1_bss_4 == 1 || lbl_1_bss_4 == 2 || lbl_1_bss_4 == 3 || lbl_1_bss_4 == 4) { - lbl_1_bss_2A6 = 0; - goto freeplay; - } - Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000002); - Hu3DMotionTimeSet(lbl_1_bss_2C80[9], 0); - for(time=0; time<=30; time++) { - for(i=0; i<4; i++) { - if(time > i*2 && time < (i*2)+20) { - float weight = (time-(i*2))/20.0; - Vec pos2D = lbl_1_data_40[i]; - Vec pos3D; - pos2D.z = 800; - pos2D.y -= (1.0-sind(weight*90.0f))*300.0; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - Hu3DModelPosSetV(lbl_1_bss_2C80[i+9], &pos3D); - Hu3DModelAttrReset(lbl_1_bss_2C80[i+9], 1); - } - } - HuPrcVSleep(); - } - while(1) { - if(lbl_1_bss_2CE == -1) { - lbl_1_bss_2CE = fn_1_2530C(0, 0, 0); - } - HuWinPushKeySet(lbl_1_bss_2CE, PAD_BUTTON_A|PAD_BUTTON_B); - HuWinMesSpeedSet(lbl_1_bss_2CE, 1); - HuAudFXPlay(68); - fn_1_25838(lbl_1_bss_2CE, 0x280001, -1, -1); - lbl_1_bss_2CC = fn_1_25CA8(0x280018); - lbl_1_bss_2A6 = 0; - espPosSet(lbl_1_bss_2C2C[0], -20+lbl_1_data_40[lbl_1_bss_2A6].x, -10+lbl_1_data_40[lbl_1_bss_2A6].y); - espAttrReset(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); - HuWinMesSpeedSet(lbl_1_bss_2CE, 0); - fn_1_25838(lbl_1_bss_2CE, lbl_1_bss_2A6+0x280002, -1, -999); - while(1) { - s16 delta = 0; - if((HuPadDStkRep[0] & PAD_BUTTON_LEFT) && lbl_1_bss_2A6 > 0) { - delta = -1; - } else if((HuPadDStkRep[0] & PAD_BUTTON_RIGHT) && lbl_1_bss_2A6 < 3) { - delta = 1; - } - if(delta != 0) { - HuAudFXPlay(0); - lbl_1_bss_2A6 += delta; - espPosSet(lbl_1_bss_2C2C[0], -20+lbl_1_data_40[lbl_1_bss_2A6].x, -10+lbl_1_data_40[lbl_1_bss_2A6].y); - fn_1_25838(lbl_1_bss_2CE, lbl_1_bss_2A6+0x280002, -1, -999); - } - if(HuPadBtnDown[0] & PAD_BUTTON_A) { - HuAudFXPlay(2); - if(lbl_1_bss_2A6 != 2) { - break; - } - if(fn_1_487C() == 0) { - continue; - } - break; - } - if(HuPadBtnDown[0] & PAD_BUTTON_B) { - s16 choice; - espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); - fn_1_25838(lbl_1_bss_2CE, 0x280006, -1, -1); - choice = HuWinChoiceGet(lbl_1_bss_2CE, 1); - if(choice != 0) { - fn_1_25838(lbl_1_bss_2CE, lbl_1_bss_2A6+0x280002, -1, -999); - espAttrReset(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); - continue; - } else { - fn_1_25E74(lbl_1_bss_2CC); - fn_1_25584(lbl_1_bss_2CE); - lbl_1_bss_2D0 = 1; - while(1) { - HuPrcVSleep(); - } - } - } - HuPrcVSleep(); - } - fn_1_25E74(lbl_1_bss_2CC); - lbl_1_bss_4 = 0; - espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); - if(lbl_1_bss_2A6 == 0) { - freeplay: - fn_1_DF0(); - } else if(lbl_1_bss_2A6 == 1) { - fn_1_38D8(); - } else if(lbl_1_bss_2A6 == 2) { - fn_1_4010(); - } else if(lbl_1_bss_2A6 == 3) { - fn_1_4ADC(); - } - - } - - + s16 i; + s16 time; + if (lbl_1_bss_4 == 1 || lbl_1_bss_4 == 2 || lbl_1_bss_4 == 3 || lbl_1_bss_4 == 4) { + lbl_1_bss_2A6 = 0; + goto freeplay; + } + Hu3DModelAttrSet(lbl_1_bss_2C80[9], HU3D_MOTATTR_PAUSE); + Hu3DMotionTimeSet(lbl_1_bss_2C80[9], 0); + for (time = 0; time <= 30; time++) { + for (i = 0; i < 4; i++) { + if (time > i * 2 && time < (i * 2) + 20) { + float weight = (time - (i * 2)) / 20.0; + Vec pos2D = lbl_1_data_40[i]; + Vec pos3D; + pos2D.z = 800; + pos2D.y -= (1.0 - sind(weight * 90.0f)) * 300.0; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + Hu3DModelPosSetV(lbl_1_bss_2C80[i + 9], &pos3D); + Hu3DModelAttrReset(lbl_1_bss_2C80[i + 9], HU3D_ATTR_DISPOFF); + } + } + HuPrcVSleep(); + } + while (1) { + if (lbl_1_bss_2CE == -1) { + lbl_1_bss_2CE = fn_1_2530C(0, 0, 0); + } + HuWinPushKeySet(lbl_1_bss_2CE, PAD_BUTTON_A | PAD_BUTTON_B); + HuWinMesSpeedSet(lbl_1_bss_2CE, 1); + HuAudFXPlay(68); + fn_1_25838(lbl_1_bss_2CE, 0x280001, -1, -1); + lbl_1_bss_2CC = fn_1_25CA8(0x280018); + lbl_1_bss_2A6 = 0; + espPosSet(lbl_1_bss_2C2C[0], -20 + lbl_1_data_40[lbl_1_bss_2A6].x, -10 + lbl_1_data_40[lbl_1_bss_2A6].y); + espAttrReset(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); + HuWinMesSpeedSet(lbl_1_bss_2CE, 0); + fn_1_25838(lbl_1_bss_2CE, lbl_1_bss_2A6 + 0x280002, -1, -999); + while (1) { + s16 delta = 0; + if ((HuPadDStkRep[0] & PAD_BUTTON_LEFT) && lbl_1_bss_2A6 > 0) { + delta = -1; + } + else if ((HuPadDStkRep[0] & PAD_BUTTON_RIGHT) && lbl_1_bss_2A6 < 3) { + delta = 1; + } + if (delta != 0) { + HuAudFXPlay(0); + lbl_1_bss_2A6 += delta; + espPosSet(lbl_1_bss_2C2C[0], -20 + lbl_1_data_40[lbl_1_bss_2A6].x, -10 + lbl_1_data_40[lbl_1_bss_2A6].y); + fn_1_25838(lbl_1_bss_2CE, lbl_1_bss_2A6 + 0x280002, -1, -999); + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2); + if (lbl_1_bss_2A6 != 2) { + break; + } + if (fn_1_487C() == 0) { + continue; + } + break; + } + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + s16 choice; + espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); + fn_1_25838(lbl_1_bss_2CE, 0x280006, -1, -1); + choice = HuWinChoiceGet(lbl_1_bss_2CE, 1); + if (choice != 0) { + fn_1_25838(lbl_1_bss_2CE, lbl_1_bss_2A6 + 0x280002, -1, -999); + espAttrReset(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); + continue; + } + else { + fn_1_25E74(lbl_1_bss_2CC); + fn_1_25584(lbl_1_bss_2CE); + lbl_1_bss_2D0 = 1; + while (1) { + HuPrcVSleep(); + } + } + } + HuPrcVSleep(); + } + fn_1_25E74(lbl_1_bss_2CC); + lbl_1_bss_4 = 0; + espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); + if (lbl_1_bss_2A6 == 0) { + freeplay: + fn_1_DF0(); + } + else if (lbl_1_bss_2A6 == 1) { + fn_1_38D8(); + } + else if (lbl_1_bss_2A6 == 2) { + fn_1_4010(); + } + else if (lbl_1_bss_2A6 == 3) { + fn_1_4ADC(); + } + } } s32 fn_1_1B0C(void); @@ -247,1094 +244,1110 @@ s32 fn_1_3150(void); void fn_1_DF0(void) { - s16 exitF = 0; - s16 time; - s16 i; - ModelData *modelP; - Vec pos2D; - Vec pos3D; - - Vec posModel; - float weight; - - if(lbl_1_bss_4 == 1) { - lbl_1_bss_2A4 = 0; - goto freeplay; - } - if(lbl_1_bss_4 == 2) { - lbl_1_bss_2A4 = 1; - goto teamplay; - } - if(lbl_1_bss_4 == 3) { - lbl_1_bss_2A4 = 2; - goto battle; - } - if(lbl_1_bss_4 == 4) { - lbl_1_bss_2A4 = 3; - goto tictactoe; - } - pos2D.x = 168; - pos2D.y = 190; - pos2D.z = 800; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50; - modelP = &Hu3DData[lbl_1_bss_2C80[9]]; - posModel = modelP->pos; - VECSubtract(&pos3D, &posModel, &pos2D); - for(time=0; time<=30; time++) { - for(i=1; i<4; i++) { - if(time > i*2 && time < (i*2)+10) { - Vec pos; - weight = (time-(i*2))/10.0; - pos = lbl_1_data_40[i]; - pos.z = 800; - pos.x += (1.0-cosd(weight*90.0f))*500.0; - Hu3D2Dto3D(&pos, 1, &pos3D); - pos3D.z -= 50.0f; - Hu3DModelPosSetV(lbl_1_bss_2C80[i+9], &pos3D); - Hu3DModelAttrReset(lbl_1_bss_2C80[i+9], 1); - } - } - if(time > 10) { - weight = (time-10)/20.0; - VECScale(&pos2D, &pos3D, sind(weight*90.0f)); - VECAdd(&posModel, &pos3D, &pos3D); - Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); - } - if(time == 20) { - HuAudFXPlay(2173); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000006); - } - HuPrcVSleep(); - } - while(Hu3DMotionEndCheck(lbl_1_bss_2C80[9]) == 0) { - HuPrcVSleep(); - } - while(1) { - HuWinMesSpeedSet(lbl_1_bss_2CE, 1); - HuAudFXPlay(68); - fn_1_25838(lbl_1_bss_2CE, 0x280007, -1, -1); - lbl_1_bss_2CC = fn_1_25CA8(0x1A0020); - fn_1_25838(lbl_1_bss_2CE, 0x280008, -1, -999); - espAttrReset(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); - lbl_1_bss_2A4 = 0; - espPosSet(lbl_1_bss_2C2C[0], -20+(168.0f+(lbl_1_bss_2A4*80)), 180); - while(1) { - s16 delta = 0; - if((HuPadDStkRep[0] & PAD_BUTTON_LEFT) && lbl_1_bss_2A4 > 0) { - delta = -1; - } else if((HuPadDStkRep[0] & PAD_BUTTON_RIGHT) && lbl_1_bss_2A4 < 3) { - delta = 1; - } - if(delta != 0) { - HuAudFXPlay(0); - lbl_1_bss_2A4 += delta; - espPosSet(lbl_1_bss_2C2C[0], -20+(168.0f+(lbl_1_bss_2A4*80)), 180); - fn_1_25838(lbl_1_bss_2CE, lbl_1_bss_2A4+0x280008, -1, -999); - } - if(HuPadBtnDown[0] & PAD_BUTTON_A) { - HuAudFXPlay(2); - if(lbl_1_bss_2A4 == 0 && lbl_1_bss_20AC[0] == 0 && lbl_1_bss_20AC[1] == 0 && lbl_1_bss_20AC[2] == 0 && lbl_1_bss_20AC[3] == 0 && lbl_1_bss_20AC[4] == 0) { - fn_1_25838(lbl_1_bss_2CE, 0x280031, -1, -1); - fn_1_25838(lbl_1_bss_2CE, lbl_1_bss_2A4+0x280008, -1, -999); - continue; - } - if(lbl_1_bss_2A4 == 2 && lbl_1_bss_20AC[0] == 0 && lbl_1_bss_20AC[1] == 0 && lbl_1_bss_20AC[2] == 0 && lbl_1_bss_20AC[4] == 0) { - fn_1_25838(lbl_1_bss_2CE, 0x280033, -1, -1); - fn_1_25838(lbl_1_bss_2CE, lbl_1_bss_2A4+0x280008, -1, -999); - continue; - } - if((lbl_1_bss_2A4 == 1 || lbl_1_bss_2A4 == 3) && lbl_1_bss_20AC[2] == 0) { - if(lbl_1_bss_2A4 == 1) { - fn_1_25838(lbl_1_bss_2CE, 0x280032, -1, -1); - } else { - fn_1_25838(lbl_1_bss_2CE, 0x28002F, -1, -1); - } - fn_1_25838(lbl_1_bss_2CE, lbl_1_bss_2A4+0x280008, -1, -999); - continue; - } - break; - } - if(HuPadBtnDown[0] & PAD_BUTTON_B) { - HuAudFXPlay(3); - exitF = 1; - break; - } - HuPrcVSleep(); - } - fn_1_25E74(lbl_1_bss_2CC); - if(exitF != 0) { - break; - } - if(lbl_1_bss_2A4 == 0) { - freeplay: - fn_1_1B0C(); - } else if(lbl_1_bss_2A4 == 1) { - teamplay: - fn_1_21C4(); - } else if(lbl_1_bss_2A4 == 2) { - battle: - fn_1_2940(); - } else if(lbl_1_bss_2A4 == 3) { - tictactoe: - fn_1_3150(); - } - if(lbl_1_bss_2CE == -1) { - lbl_1_bss_2CE = fn_1_2530C(0, 0, 0); - } - HuWinPushKeySet(lbl_1_bss_2CE, PAD_BUTTON_A|PAD_BUTTON_B); - } - lbl_1_bss_4 = 0; - pos2D = lbl_1_data_40[0]; - pos2D.z = 800; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50; - modelP = &Hu3DData[lbl_1_bss_2C80[9]]; - posModel = modelP->pos; - VECSubtract(&pos3D, &posModel, &pos2D); - Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000004); - espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); - HuAudFXPlay(2174); - for(time=0; time<=20; time++) { - VECScale(&pos2D, &pos3D, sind(time*4.5)); - VECAdd(&posModel, &pos3D, &pos3D); - Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); - HuPrcVSleep(); - } - for(time=0; time<=20; time++) { - for(i=1; i<4; i++) { - if(time > i*2 && time < (i*2)+10) { - weight = (time-(i*2))/10.0; - pos2D = lbl_1_data_40[i]; - pos2D.z = 800; - pos2D.x += (1.0-sind(weight*90.0f))*500.0; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - Hu3DModelPosSetV(lbl_1_bss_2C80[i+9], &pos3D); - Hu3DModelAttrReset(lbl_1_bss_2C80[i+9], 1); - } - } - HuPrcVSleep(); - } + s16 exitF = 0; + s16 time; + s16 i; + ModelData *modelP; + Vec pos2D; + Vec pos3D; + + Vec posModel; + float weight; + + if (lbl_1_bss_4 == 1) { + lbl_1_bss_2A4 = 0; + goto freeplay; + } + if (lbl_1_bss_4 == 2) { + lbl_1_bss_2A4 = 1; + goto teamplay; + } + if (lbl_1_bss_4 == 3) { + lbl_1_bss_2A4 = 2; + goto battle; + } + if (lbl_1_bss_4 == 4) { + lbl_1_bss_2A4 = 3; + goto tictactoe; + } + pos2D.x = 168; + pos2D.y = 190; + pos2D.z = 800; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50; + modelP = &Hu3DData[lbl_1_bss_2C80[9]]; + posModel = modelP->pos; + VECSubtract(&pos3D, &posModel, &pos2D); + for (time = 0; time <= 30; time++) { + for (i = 1; i < 4; i++) { + if (time > i * 2 && time < (i * 2) + 10) { + Vec pos; + weight = (time - (i * 2)) / 10.0; + pos = lbl_1_data_40[i]; + pos.z = 800; + pos.x += (1.0 - cosd(weight * 90.0f)) * 500.0; + Hu3D2Dto3D(&pos, 1, &pos3D); + pos3D.z -= 50.0f; + Hu3DModelPosSetV(lbl_1_bss_2C80[i + 9], &pos3D); + Hu3DModelAttrReset(lbl_1_bss_2C80[i + 9], HU3D_ATTR_DISPOFF); + } + } + if (time > 10) { + weight = (time - 10) / 20.0; + VECScale(&pos2D, &pos3D, sind(weight * 90.0f)); + VECAdd(&posModel, &pos3D, &pos3D); + Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); + } + if (time == 20) { + HuAudFXPlay(2173); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000006); + } + HuPrcVSleep(); + } + while (Hu3DMotionEndCheck(lbl_1_bss_2C80[9]) == 0) { + HuPrcVSleep(); + } + while (1) { + HuWinMesSpeedSet(lbl_1_bss_2CE, 1); + HuAudFXPlay(68); + fn_1_25838(lbl_1_bss_2CE, 0x280007, -1, -1); + lbl_1_bss_2CC = fn_1_25CA8(0x1A0020); + fn_1_25838(lbl_1_bss_2CE, 0x280008, -1, -999); + espAttrReset(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); + lbl_1_bss_2A4 = 0; + espPosSet(lbl_1_bss_2C2C[0], -20 + (168.0f + (lbl_1_bss_2A4 * 80)), 180); + while (1) { + s16 delta = 0; + if ((HuPadDStkRep[0] & PAD_BUTTON_LEFT) && lbl_1_bss_2A4 > 0) { + delta = -1; + } + else if ((HuPadDStkRep[0] & PAD_BUTTON_RIGHT) && lbl_1_bss_2A4 < 3) { + delta = 1; + } + if (delta != 0) { + HuAudFXPlay(0); + lbl_1_bss_2A4 += delta; + espPosSet(lbl_1_bss_2C2C[0], -20 + (168.0f + (lbl_1_bss_2A4 * 80)), 180); + fn_1_25838(lbl_1_bss_2CE, lbl_1_bss_2A4 + 0x280008, -1, -999); + } + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(2); + if (lbl_1_bss_2A4 == 0 && lbl_1_bss_20AC[0] == 0 && lbl_1_bss_20AC[1] == 0 && lbl_1_bss_20AC[2] == 0 && lbl_1_bss_20AC[3] == 0 + && lbl_1_bss_20AC[4] == 0) { + fn_1_25838(lbl_1_bss_2CE, 0x280031, -1, -1); + fn_1_25838(lbl_1_bss_2CE, lbl_1_bss_2A4 + 0x280008, -1, -999); + continue; + } + if (lbl_1_bss_2A4 == 2 && lbl_1_bss_20AC[0] == 0 && lbl_1_bss_20AC[1] == 0 && lbl_1_bss_20AC[2] == 0 && lbl_1_bss_20AC[4] == 0) { + fn_1_25838(lbl_1_bss_2CE, 0x280033, -1, -1); + fn_1_25838(lbl_1_bss_2CE, lbl_1_bss_2A4 + 0x280008, -1, -999); + continue; + } + if ((lbl_1_bss_2A4 == 1 || lbl_1_bss_2A4 == 3) && lbl_1_bss_20AC[2] == 0) { + if (lbl_1_bss_2A4 == 1) { + fn_1_25838(lbl_1_bss_2CE, 0x280032, -1, -1); + } + else { + fn_1_25838(lbl_1_bss_2CE, 0x28002F, -1, -1); + } + fn_1_25838(lbl_1_bss_2CE, lbl_1_bss_2A4 + 0x280008, -1, -999); + continue; + } + break; + } + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + HuAudFXPlay(3); + exitF = 1; + break; + } + HuPrcVSleep(); + } + fn_1_25E74(lbl_1_bss_2CC); + if (exitF != 0) { + break; + } + if (lbl_1_bss_2A4 == 0) { + freeplay: + fn_1_1B0C(); + } + else if (lbl_1_bss_2A4 == 1) { + teamplay: + fn_1_21C4(); + } + else if (lbl_1_bss_2A4 == 2) { + battle: + fn_1_2940(); + } + else if (lbl_1_bss_2A4 == 3) { + tictactoe: + fn_1_3150(); + } + if (lbl_1_bss_2CE == -1) { + lbl_1_bss_2CE = fn_1_2530C(0, 0, 0); + } + HuWinPushKeySet(lbl_1_bss_2CE, PAD_BUTTON_A | PAD_BUTTON_B); + } + lbl_1_bss_4 = 0; + pos2D = lbl_1_data_40[0]; + pos2D.z = 800; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50; + modelP = &Hu3DData[lbl_1_bss_2C80[9]]; + posModel = modelP->pos; + VECSubtract(&pos3D, &posModel, &pos2D); + Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000004); + espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); + HuAudFXPlay(2174); + for (time = 0; time <= 20; time++) { + VECScale(&pos2D, &pos3D, sind(time * 4.5)); + VECAdd(&posModel, &pos3D, &pos3D); + Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); + HuPrcVSleep(); + } + for (time = 0; time <= 20; time++) { + for (i = 1; i < 4; i++) { + if (time > i * 2 && time < (i * 2) + 10) { + weight = (time - (i * 2)) / 10.0; + pos2D = lbl_1_data_40[i]; + pos2D.z = 800; + pos2D.x += (1.0 - sind(weight * 90.0f)) * 500.0; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + Hu3DModelPosSetV(lbl_1_bss_2C80[i + 9], &pos3D); + Hu3DModelAttrReset(lbl_1_bss_2C80[i + 9], HU3D_ATTR_DISPOFF); + } + } + HuPrcVSleep(); + } } s32 fn_1_1B0C(void) { - Vec pos2D; - Vec posModel; - Vec pos3D; - s16 i; - ModelData *modelP; - s16 temp_r29 = 0; - - if(lbl_1_bss_4 == 1) { - pos2D.x = 60; - pos2D.y = 70; - pos2D.z = 1000; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); - Hu3DModelRotSet(lbl_1_bss_2C80[9], -90, 0, 0); - Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000002); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 1); - } else { - Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000004); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000002); - espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); - fn_1_25E74(lbl_1_bss_2CC); - fn_1_25584(lbl_1_bss_2CE); - lbl_1_bss_2CE = lbl_1_bss_2CC = -1; - HuAudFXPlay(2174); - HuPrcSleep(40); - pos2D.x = 60; - pos2D.y = 70; - pos2D.z = 1000; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - modelP = &Hu3DData[lbl_1_bss_2C80[9]]; - posModel = modelP->pos; - VECSubtract(&pos3D, &posModel, &pos2D); - for(i=0; i<=20; i++) { - VECScale(&pos2D, &pos3D, sind(i*4.5)); - VECAdd(&posModel, &pos3D, &pos3D); - Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); - Hu3DModelRotSet(lbl_1_bss_2C80[9], -90.0*(i/20.0), 0, 0); - HuPrcVSleep(); - } - while(!Hu3DMotionEndCheck(lbl_1_bss_2C80[9])) { - HuPrcVSleep(); - } - charsel: - if(fn_1_194C8(temp_r29) == 0) { - goto exit; - } - temp_r29 = 4; - for(i=0; i<4; i++) { - GWPlayerCfg[i].character = lbl_1_bss_8.unk24[i].unk68; - GWPlayerCfg[i].iscom = lbl_1_bss_8.unk24[i].unk60; - GWPlayerCfg[i].diff = lbl_1_bss_8.unk24[i].unk64; - } - } - mgPracticeEnableF = 1; - if(fn_1_6D28()) { - lbl_1_bss_4 = 0; - goto charsel; - } - exit: - mgPracticeEnableF = 0; - lbl_1_bss_4 = 0; - pos2D.x = 168; - pos2D.y = 190; - pos2D.z = 800; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50; - modelP = &Hu3DData[lbl_1_bss_2C80[9]]; - posModel = modelP->pos; - VECSubtract(&pos3D, &posModel, &pos2D); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000006); - for(i=0; i<=20; i++) { - if(i == 10) { - HuAudFXPlay(2173); - } - VECScale(&pos2D, &pos3D, sind(i*4.5)); - VECAdd(&posModel, &pos3D, &pos3D); - Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); - Hu3DModelRotSet(lbl_1_bss_2C80[9], -90.0*(1-(i/20.0)), 0, 0); - HuPrcVSleep(); - } - while(!Hu3DMotionEndCheck(lbl_1_bss_2C80[9])) { - HuPrcVSleep(); - } + Vec pos2D; + Vec posModel; + Vec pos3D; + s16 i; + ModelData *modelP; + s16 temp_r29 = 0; + + if (lbl_1_bss_4 == 1) { + pos2D.x = 60; + pos2D.y = 70; + pos2D.z = 1000; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); + Hu3DModelRotSet(lbl_1_bss_2C80[9], -90, 0, 0); + Hu3DModelAttrSet(lbl_1_bss_2C80[9], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000004); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000002); + espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); + fn_1_25E74(lbl_1_bss_2CC); + fn_1_25584(lbl_1_bss_2CE); + lbl_1_bss_2CE = lbl_1_bss_2CC = -1; + HuAudFXPlay(2174); + HuPrcSleep(40); + pos2D.x = 60; + pos2D.y = 70; + pos2D.z = 1000; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + modelP = &Hu3DData[lbl_1_bss_2C80[9]]; + posModel = modelP->pos; + VECSubtract(&pos3D, &posModel, &pos2D); + for (i = 0; i <= 20; i++) { + VECScale(&pos2D, &pos3D, sind(i * 4.5)); + VECAdd(&posModel, &pos3D, &pos3D); + Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); + Hu3DModelRotSet(lbl_1_bss_2C80[9], -90.0 * (i / 20.0), 0, 0); + HuPrcVSleep(); + } + while (!Hu3DMotionEndCheck(lbl_1_bss_2C80[9])) { + HuPrcVSleep(); + } + charsel: + if (fn_1_194C8(temp_r29) == 0) { + goto exit; + } + temp_r29 = 4; + for (i = 0; i < 4; i++) { + GWPlayerCfg[i].character = lbl_1_bss_8.unk24[i].unk68; + GWPlayerCfg[i].iscom = lbl_1_bss_8.unk24[i].unk60; + GWPlayerCfg[i].diff = lbl_1_bss_8.unk24[i].unk64; + } + } + mgPracticeEnableF = 1; + if (fn_1_6D28()) { + lbl_1_bss_4 = 0; + goto charsel; + } +exit: + mgPracticeEnableF = 0; + lbl_1_bss_4 = 0; + pos2D.x = 168; + pos2D.y = 190; + pos2D.z = 800; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50; + modelP = &Hu3DData[lbl_1_bss_2C80[9]]; + posModel = modelP->pos; + VECSubtract(&pos3D, &posModel, &pos2D); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000006); + for (i = 0; i <= 20; i++) { + if (i == 10) { + HuAudFXPlay(2173); + } + VECScale(&pos2D, &pos3D, sind(i * 4.5)); + VECAdd(&posModel, &pos3D, &pos3D); + Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); + Hu3DModelRotSet(lbl_1_bss_2C80[9], -90.0 * (1 - (i / 20.0)), 0, 0); + HuPrcVSleep(); + } + while (!Hu3DMotionEndCheck(lbl_1_bss_2C80[9])) { + HuPrcVSleep(); + } } s32 fn_1_21C4(void) { - Vec pos2D; - Vec posModel; - Vec pos3D; - s16 i; - ModelData *modelP; - s16 temp_r29 = 1; - if(lbl_1_bss_4 == 2) { - pos2D.x = 60; - pos2D.y = 70; - pos2D.z = 1000; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); - Hu3DModelRotSet(lbl_1_bss_2C80[9], 0, -90, 90); - Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000002); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 1); - } else { - Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000004); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000002); - espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); - fn_1_25E74(lbl_1_bss_2CC); - fn_1_25584(lbl_1_bss_2CE); - lbl_1_bss_2CE = lbl_1_bss_2CC = -1; - HuAudFXPlay(2174); - HuPrcSleep(40); - pos2D.x = 60; - pos2D.y = 70; - pos2D.z = 1000; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - modelP = &Hu3DData[lbl_1_bss_2C80[9]]; - posModel = modelP->pos; - VECSubtract(&pos3D, &posModel, &pos2D); - for(i=0; i<=20; i++) { - VECScale(&pos2D, &pos3D, sind(i*4.5)); - VECAdd(&posModel, &pos3D, &pos3D); - Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); - Hu3DModelRotSet(lbl_1_bss_2C80[9], 0, -90.0*(i/20.0), 90.0*(i/20.0)); - HuPrcVSleep(); - } - while(!Hu3DMotionEndCheck(lbl_1_bss_2C80[9])) { - HuPrcVSleep(); - } - charsel: - if(fn_1_194C8(temp_r29) == 0) { - goto exit; - } - temp_r29 = 4; - for(i=0; i<4; i++) { - GWPlayerCfg[i].character = lbl_1_bss_8.unk24[i].unk68; - GWPlayerCfg[i].group = lbl_1_bss_8.unk24[i].unk5C; - GWPlayerCfg[i].diff = lbl_1_bss_8.unk24[i].unk64; - GWPlayerCfg[i].iscom = lbl_1_bss_8.unk24[i].unk60; - - } - } - mgPracticeEnableF = 1; - if(fn_1_6D28()) { - lbl_1_bss_4 = 0; - goto charsel; - } - exit: - mgPracticeEnableF = 0; - lbl_1_bss_4 = 0; - pos2D.x = 168; - pos2D.y = 190; - pos2D.z = 800; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50; - modelP = &Hu3DData[lbl_1_bss_2C80[9]]; - posModel = modelP->pos; - VECSubtract(&pos3D, &posModel, &pos2D); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000006); - for(i=0; i<=20; i++) { - if(i == 10) { - HuAudFXPlay(2173); - } - VECScale(&pos2D, &pos3D, sind(i*4.5)); - VECAdd(&posModel, &pos3D, &pos3D); - Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); - Hu3DModelRotSet(lbl_1_bss_2C80[9], 0, -90.0*(1.0-(i/20.0)), 90.0*(1.0-(i/20.0))); - HuPrcVSleep(); - } - while(!Hu3DMotionEndCheck(lbl_1_bss_2C80[9])) { - HuPrcVSleep(); - } + Vec pos2D; + Vec posModel; + Vec pos3D; + s16 i; + ModelData *modelP; + s16 temp_r29 = 1; + if (lbl_1_bss_4 == 2) { + pos2D.x = 60; + pos2D.y = 70; + pos2D.z = 1000; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); + Hu3DModelRotSet(lbl_1_bss_2C80[9], 0, -90, 90); + Hu3DModelAttrSet(lbl_1_bss_2C80[9], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000004); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000002); + espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); + fn_1_25E74(lbl_1_bss_2CC); + fn_1_25584(lbl_1_bss_2CE); + lbl_1_bss_2CE = lbl_1_bss_2CC = -1; + HuAudFXPlay(2174); + HuPrcSleep(40); + pos2D.x = 60; + pos2D.y = 70; + pos2D.z = 1000; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + modelP = &Hu3DData[lbl_1_bss_2C80[9]]; + posModel = modelP->pos; + VECSubtract(&pos3D, &posModel, &pos2D); + for (i = 0; i <= 20; i++) { + VECScale(&pos2D, &pos3D, sind(i * 4.5)); + VECAdd(&posModel, &pos3D, &pos3D); + Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); + Hu3DModelRotSet(lbl_1_bss_2C80[9], 0, -90.0 * (i / 20.0), 90.0 * (i / 20.0)); + HuPrcVSleep(); + } + while (!Hu3DMotionEndCheck(lbl_1_bss_2C80[9])) { + HuPrcVSleep(); + } + charsel: + if (fn_1_194C8(temp_r29) == 0) { + goto exit; + } + temp_r29 = 4; + for (i = 0; i < 4; i++) { + GWPlayerCfg[i].character = lbl_1_bss_8.unk24[i].unk68; + GWPlayerCfg[i].group = lbl_1_bss_8.unk24[i].unk5C; + GWPlayerCfg[i].diff = lbl_1_bss_8.unk24[i].unk64; + GWPlayerCfg[i].iscom = lbl_1_bss_8.unk24[i].unk60; + } + } + mgPracticeEnableF = 1; + if (fn_1_6D28()) { + lbl_1_bss_4 = 0; + goto charsel; + } +exit: + mgPracticeEnableF = 0; + lbl_1_bss_4 = 0; + pos2D.x = 168; + pos2D.y = 190; + pos2D.z = 800; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50; + modelP = &Hu3DData[lbl_1_bss_2C80[9]]; + posModel = modelP->pos; + VECSubtract(&pos3D, &posModel, &pos2D); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000006); + for (i = 0; i <= 20; i++) { + if (i == 10) { + HuAudFXPlay(2173); + } + VECScale(&pos2D, &pos3D, sind(i * 4.5)); + VECAdd(&posModel, &pos3D, &pos3D); + Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); + Hu3DModelRotSet(lbl_1_bss_2C80[9], 0, -90.0 * (1.0 - (i / 20.0)), 90.0 * (1.0 - (i / 20.0))); + HuPrcVSleep(); + } + while (!Hu3DMotionEndCheck(lbl_1_bss_2C80[9])) { + HuPrcVSleep(); + } } s32 fn_1_2940(void) { - Vec pos2D; - Vec posModel; - Vec pos3D; - s16 temp_r29 = 2; - s16 i; - ModelData *modelP; - for(i=0; i<4; i++) { - Hu3DModelLayerSet(lbl_1_bss_2C80[i+9], 2); - } - if(lbl_1_bss_4 == 3) { - OSReport("Eliminate Play STart\n"); - pos2D.x = 50; - pos2D.y = 70; - pos2D.z = 1000; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); - Hu3DModelRotSet(lbl_1_bss_2C80[9], -90, 180, 0); - Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000002); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 1); - } else { - Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000004); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000002); - espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); - fn_1_25E74(lbl_1_bss_2CC); - fn_1_25584(lbl_1_bss_2CE); - lbl_1_bss_2CE = lbl_1_bss_2CC = -1; - HuAudFXPlay(2174); - HuPrcSleep(40); - pos2D.x = 50; - pos2D.y = 70; - pos2D.z = 1000; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - modelP = &Hu3DData[lbl_1_bss_2C80[9]]; - posModel = modelP->pos; - VECSubtract(&pos3D, &posModel, &pos2D); - for(i=0; i<=20; i++) { - VECScale(&pos2D, &pos3D, sind(i*4.5)); - VECAdd(&posModel, &pos3D, &pos3D); - Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); - Hu3DModelRotSet(lbl_1_bss_2C80[9], 90.0*-(i/20.0), 180.0*(i/20.0), 0); - HuPrcVSleep(); - } - while(!Hu3DMotionEndCheck(lbl_1_bss_2C80[9])) { - HuPrcVSleep(); - } - charsel: - if(fn_1_194C8(temp_r29) == 0) { - goto exit; - } - temp_r29 = 4; - for(i=0; i<4; i++) { - GWPlayerCfg[i].character = lbl_1_bss_8.unk24[i].unk68; - GWPlayerCfg[i].group = lbl_1_bss_8.unk24[i].unk5C; - GWPlayerCfg[i].iscom = lbl_1_bss_8.unk24[i].unk60; - GWPlayerCfg[i].diff = lbl_1_bss_8.unk24[i].unk64; - } - mgBattleStarMax = lbl_1_bss_8.unk20; - } - - if(fn_1_E72C() == 0) { - lbl_1_bss_4 = 0; - goto charsel; - } - exit: - HuDataDirClose(DATADIR_INSTPIC); - for(i=0; i<4; i++) { - Hu3DModelLayerSet(lbl_1_bss_2C80[i+9], 3); - } - lbl_1_bss_4 = 0; - pos2D.x = 168; - pos2D.y = 190; - pos2D.z = 800; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50; - modelP = &Hu3DData[lbl_1_bss_2C80[9]]; - posModel = modelP->pos; - VECSubtract(&pos3D, &posModel, &pos2D); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000006); - for(i=0; i<=20; i++) { - if(i == 10) { - HuAudFXPlay(2173); - } - VECScale(&pos2D, &pos3D, sind(i*4.5)); - VECAdd(&posModel, &pos3D, &pos3D); - Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); - Hu3DModelRotSet(lbl_1_bss_2C80[9], 90.0*-(1-(i/20.0)), 180.0*(1-(i/20.0)), 0); - HuPrcVSleep(); - } - while(!Hu3DMotionEndCheck(lbl_1_bss_2C80[9])) { - HuPrcVSleep(); - } + Vec pos2D; + Vec posModel; + Vec pos3D; + s16 temp_r29 = 2; + s16 i; + ModelData *modelP; + for (i = 0; i < 4; i++) { + Hu3DModelLayerSet(lbl_1_bss_2C80[i + 9], 2); + } + if (lbl_1_bss_4 == 3) { + OSReport("Eliminate Play STart\n"); + pos2D.x = 50; + pos2D.y = 70; + pos2D.z = 1000; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); + Hu3DModelRotSet(lbl_1_bss_2C80[9], -90, 180, 0); + Hu3DModelAttrSet(lbl_1_bss_2C80[9], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000004); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000002); + espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); + fn_1_25E74(lbl_1_bss_2CC); + fn_1_25584(lbl_1_bss_2CE); + lbl_1_bss_2CE = lbl_1_bss_2CC = -1; + HuAudFXPlay(2174); + HuPrcSleep(40); + pos2D.x = 50; + pos2D.y = 70; + pos2D.z = 1000; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + modelP = &Hu3DData[lbl_1_bss_2C80[9]]; + posModel = modelP->pos; + VECSubtract(&pos3D, &posModel, &pos2D); + for (i = 0; i <= 20; i++) { + VECScale(&pos2D, &pos3D, sind(i * 4.5)); + VECAdd(&posModel, &pos3D, &pos3D); + Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); + Hu3DModelRotSet(lbl_1_bss_2C80[9], 90.0 * -(i / 20.0), 180.0 * (i / 20.0), 0); + HuPrcVSleep(); + } + while (!Hu3DMotionEndCheck(lbl_1_bss_2C80[9])) { + HuPrcVSleep(); + } + charsel: + if (fn_1_194C8(temp_r29) == 0) { + goto exit; + } + temp_r29 = 4; + for (i = 0; i < 4; i++) { + GWPlayerCfg[i].character = lbl_1_bss_8.unk24[i].unk68; + GWPlayerCfg[i].group = lbl_1_bss_8.unk24[i].unk5C; + GWPlayerCfg[i].iscom = lbl_1_bss_8.unk24[i].unk60; + GWPlayerCfg[i].diff = lbl_1_bss_8.unk24[i].unk64; + } + mgBattleStarMax = lbl_1_bss_8.unk20; + } + + if (fn_1_E72C() == 0) { + lbl_1_bss_4 = 0; + goto charsel; + } +exit: + HuDataDirClose(DATADIR_INSTPIC); + for (i = 0; i < 4; i++) { + Hu3DModelLayerSet(lbl_1_bss_2C80[i + 9], 3); + } + lbl_1_bss_4 = 0; + pos2D.x = 168; + pos2D.y = 190; + pos2D.z = 800; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50; + modelP = &Hu3DData[lbl_1_bss_2C80[9]]; + posModel = modelP->pos; + VECSubtract(&pos3D, &posModel, &pos2D); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000006); + for (i = 0; i <= 20; i++) { + if (i == 10) { + HuAudFXPlay(2173); + } + VECScale(&pos2D, &pos3D, sind(i * 4.5)); + VECAdd(&posModel, &pos3D, &pos3D); + Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); + Hu3DModelRotSet(lbl_1_bss_2C80[9], 90.0 * -(1 - (i / 20.0)), 180.0 * (1 - (i / 20.0)), 0); + HuPrcVSleep(); + } + while (!Hu3DMotionEndCheck(lbl_1_bss_2C80[9])) { + HuPrcVSleep(); + } } s32 fn_1_3150(void) { - Vec pos2D; - Vec posModel; - Vec pos3D; - s16 i; - ModelData *modelP; - s16 temp_r29 = 1; - if(lbl_1_bss_4 == 4) { - pos2D.x = 60; - pos2D.y = 70; - pos2D.z = 1000; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); - Hu3DModelRotSet(lbl_1_bss_2C80[9], -90, 90, 0); - Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000002); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 1); - } else { - Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000004); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000002); - espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); - fn_1_25E74(lbl_1_bss_2CC); - fn_1_25584(lbl_1_bss_2CE); - lbl_1_bss_2CE = lbl_1_bss_2CC = -1; - HuAudFXPlay(2174); - HuPrcSleep(40); - pos2D.x = 60; - pos2D.y = 70; - pos2D.z = 1000; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - modelP = &Hu3DData[lbl_1_bss_2C80[9]]; - posModel = modelP->pos; - VECSubtract(&pos3D, &posModel, &pos2D); - for(i=0; i<=20; i++) { - VECScale(&pos2D, &pos3D, sind(i*4.5)); - VECAdd(&posModel, &pos3D, &pos3D); - Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); - Hu3DModelRotSet(lbl_1_bss_2C80[9], 90.0*-(i/20.0), 90.0*(i/20.0), 0); - HuPrcVSleep(); - } - while(!Hu3DMotionEndCheck(lbl_1_bss_2C80[9])) { - HuPrcVSleep(); - } - charsel: - if(fn_1_194C8(temp_r29) == 0) { - goto exit; - } - temp_r29 = 4; - for(i=0; i<4; i++) { - GWPlayerCfg[i].character = lbl_1_bss_8.unk24[i].unk68; - GWPlayerCfg[i].group = lbl_1_bss_8.unk24[i].unk5C; - GWPlayerCfg[i].iscom = lbl_1_bss_8.unk24[i].unk60; - GWPlayerCfg[i].diff = lbl_1_bss_8.unk24[i].unk64; - } - mgBattleStarMax = lbl_1_bss_8.unk20; - } - - if(fn_1_13418() == 0) { - lbl_1_bss_4 = 0; - goto charsel; - } - exit: - HuDataDirClose(DATADIR_INSTPIC); - lbl_1_bss_4 = 0; - pos2D.x = 168; - pos2D.y = 190; - pos2D.z = 800; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50; - modelP = &Hu3DData[lbl_1_bss_2C80[9]]; - posModel = modelP->pos; - VECSubtract(&pos3D, &posModel, &pos2D); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000006); - for(i=0; i<=20; i++) { - if(i == 10) { - HuAudFXPlay(2173); - } - VECScale(&pos2D, &pos3D, sind(i*4.5)); - VECAdd(&posModel, &pos3D, &pos3D); - Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); - Hu3DModelRotSet(lbl_1_bss_2C80[9], 90.0*-(1-(i/20.0)), 90.0*(1-(i/20.0)), 0); - HuPrcVSleep(); - } - while(!Hu3DMotionEndCheck(lbl_1_bss_2C80[9])) { - HuPrcVSleep(); - } + Vec pos2D; + Vec posModel; + Vec pos3D; + s16 i; + ModelData *modelP; + s16 temp_r29 = 1; + if (lbl_1_bss_4 == 4) { + pos2D.x = 60; + pos2D.y = 70; + pos2D.z = 1000; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); + Hu3DModelRotSet(lbl_1_bss_2C80[9], -90, 90, 0); + Hu3DModelAttrSet(lbl_1_bss_2C80[9], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000004); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000002); + espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); + fn_1_25E74(lbl_1_bss_2CC); + fn_1_25584(lbl_1_bss_2CE); + lbl_1_bss_2CE = lbl_1_bss_2CC = -1; + HuAudFXPlay(2174); + HuPrcSleep(40); + pos2D.x = 60; + pos2D.y = 70; + pos2D.z = 1000; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + modelP = &Hu3DData[lbl_1_bss_2C80[9]]; + posModel = modelP->pos; + VECSubtract(&pos3D, &posModel, &pos2D); + for (i = 0; i <= 20; i++) { + VECScale(&pos2D, &pos3D, sind(i * 4.5)); + VECAdd(&posModel, &pos3D, &pos3D); + Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); + Hu3DModelRotSet(lbl_1_bss_2C80[9], 90.0 * -(i / 20.0), 90.0 * (i / 20.0), 0); + HuPrcVSleep(); + } + while (!Hu3DMotionEndCheck(lbl_1_bss_2C80[9])) { + HuPrcVSleep(); + } + charsel: + if (fn_1_194C8(temp_r29) == 0) { + goto exit; + } + temp_r29 = 4; + for (i = 0; i < 4; i++) { + GWPlayerCfg[i].character = lbl_1_bss_8.unk24[i].unk68; + GWPlayerCfg[i].group = lbl_1_bss_8.unk24[i].unk5C; + GWPlayerCfg[i].iscom = lbl_1_bss_8.unk24[i].unk60; + GWPlayerCfg[i].diff = lbl_1_bss_8.unk24[i].unk64; + } + mgBattleStarMax = lbl_1_bss_8.unk20; + } + + if (fn_1_13418() == 0) { + lbl_1_bss_4 = 0; + goto charsel; + } +exit: + HuDataDirClose(DATADIR_INSTPIC); + lbl_1_bss_4 = 0; + pos2D.x = 168; + pos2D.y = 190; + pos2D.z = 800; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50; + modelP = &Hu3DData[lbl_1_bss_2C80[9]]; + posModel = modelP->pos; + VECSubtract(&pos3D, &posModel, &pos2D); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000006); + for (i = 0; i <= 20; i++) { + if (i == 10) { + HuAudFXPlay(2173); + } + VECScale(&pos2D, &pos3D, sind(i * 4.5)); + VECAdd(&posModel, &pos3D, &pos3D); + Hu3DModelPosSetV(lbl_1_bss_2C80[9], &pos3D); + Hu3DModelRotSet(lbl_1_bss_2C80[9], 90.0 * -(1 - (i / 20.0)), 90.0 * (1 - (i / 20.0)), 0); + HuPrcVSleep(); + } + while (!Hu3DMotionEndCheck(lbl_1_bss_2C80[9])) { + HuPrcVSleep(); + } } void fn_1_38D8(void) { - Vec pos2D; - Vec pos3D; - Vec posModel; - - s16 sp8 = 0; - s16 time; - s16 i; - float weight; - ModelData *modelP; - - fn_1_25E74(lbl_1_bss_2CC); - fn_1_25584(lbl_1_bss_2CE); - lbl_1_bss_2CE = lbl_1_bss_2CC = -1; - pos2D.x = 60; - pos2D.y = 70; - pos2D.z = 1000; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - modelP = &Hu3DData[lbl_1_bss_2C80[10]]; - posModel = modelP->pos; - VECSubtract(&pos3D, &posModel, &pos2D); - for(time=0; time<=30; time++) { - for(i=0; i<4; i++) { - if(i == 1) { - continue; - } - if(time > i*2 && time < (i*2)+10) { - Vec posBox; - weight = (time-(i*2))/10.0; - posBox = lbl_1_data_40[i]; - posBox.z = 800; - posBox.x += ((i < 2) ? -1 : 1)*(500.0*(1.0-cosd(90.0f*weight))); - Hu3D2Dto3D(&posBox, 1, &pos3D); - pos3D.z -= 50.0f; - Hu3DModelPosSetV(lbl_1_bss_2C80[i+9], &pos3D); - Hu3DModelAttrReset(lbl_1_bss_2C80[i+9], 1); - } - } - if(time > 10) { - weight = (time-10)/20.0; - VECScale(&pos2D, &pos3D, sind(weight*90.0f)); - VECAdd(&posModel, &pos3D, &pos3D); - Hu3DModelPosSetV(lbl_1_bss_2C80[10], &pos3D); - } - HuPrcVSleep(); - } - fn_1_6D28(); - pos2D = lbl_1_data_40[1]; - pos2D.z = 800; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - modelP = &Hu3DData[lbl_1_bss_2C80[10]]; - posModel = modelP->pos; - VECSubtract(&pos3D, &posModel, &pos2D); - espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); - for(time=0; time<=20; time++) { - VECScale(&pos2D, &pos3D, sind(time*4.5)); - VECAdd(&posModel, &pos3D, &pos3D); - Hu3DModelPosSetV(lbl_1_bss_2C80[10], &pos3D); - HuPrcVSleep(); - } - for(time=0; time<=20; time++) { - for(i=0; i<4; i++) { - if(i == 1) { - continue; - } - if(time > i*2 && time < (i*2)+10) { - weight = (time-(i*2))/10.0; - pos2D = lbl_1_data_40[i]; - pos2D.z = 800; - pos2D.x += ((i < 2) ? -1 : 1)*((1.0-sind(weight*90.0f))*500.0); - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - Hu3DModelPosSetV(lbl_1_bss_2C80[i+9], &pos3D); - Hu3DModelAttrReset(lbl_1_bss_2C80[i+9], 1); - } - } - HuPrcVSleep(); - } + Vec pos2D; + Vec pos3D; + Vec posModel; + + s16 sp8 = 0; + s16 time; + s16 i; + float weight; + ModelData *modelP; + + fn_1_25E74(lbl_1_bss_2CC); + fn_1_25584(lbl_1_bss_2CE); + lbl_1_bss_2CE = lbl_1_bss_2CC = -1; + pos2D.x = 60; + pos2D.y = 70; + pos2D.z = 1000; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + modelP = &Hu3DData[lbl_1_bss_2C80[10]]; + posModel = modelP->pos; + VECSubtract(&pos3D, &posModel, &pos2D); + for (time = 0; time <= 30; time++) { + for (i = 0; i < 4; i++) { + if (i == 1) { + continue; + } + if (time > i * 2 && time < (i * 2) + 10) { + Vec posBox; + weight = (time - (i * 2)) / 10.0; + posBox = lbl_1_data_40[i]; + posBox.z = 800; + posBox.x += ((i < 2) ? -1 : 1) * (500.0 * (1.0 - cosd(90.0f * weight))); + Hu3D2Dto3D(&posBox, 1, &pos3D); + pos3D.z -= 50.0f; + Hu3DModelPosSetV(lbl_1_bss_2C80[i + 9], &pos3D); + Hu3DModelAttrReset(lbl_1_bss_2C80[i + 9], HU3D_ATTR_DISPOFF); + } + } + if (time > 10) { + weight = (time - 10) / 20.0; + VECScale(&pos2D, &pos3D, sind(weight * 90.0f)); + VECAdd(&posModel, &pos3D, &pos3D); + Hu3DModelPosSetV(lbl_1_bss_2C80[10], &pos3D); + } + HuPrcVSleep(); + } + fn_1_6D28(); + pos2D = lbl_1_data_40[1]; + pos2D.z = 800; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + modelP = &Hu3DData[lbl_1_bss_2C80[10]]; + posModel = modelP->pos; + VECSubtract(&pos3D, &posModel, &pos2D); + espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); + for (time = 0; time <= 20; time++) { + VECScale(&pos2D, &pos3D, sind(time * 4.5)); + VECAdd(&posModel, &pos3D, &pos3D); + Hu3DModelPosSetV(lbl_1_bss_2C80[10], &pos3D); + HuPrcVSleep(); + } + for (time = 0; time <= 20; time++) { + for (i = 0; i < 4; i++) { + if (i == 1) { + continue; + } + if (time > i * 2 && time < (i * 2) + 10) { + weight = (time - (i * 2)) / 10.0; + pos2D = lbl_1_data_40[i]; + pos2D.z = 800; + pos2D.x += ((i < 2) ? -1 : 1) * ((1.0 - sind(weight * 90.0f)) * 500.0); + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + Hu3DModelPosSetV(lbl_1_bss_2C80[i + 9], &pos3D); + Hu3DModelAttrReset(lbl_1_bss_2C80[i + 9], HU3D_ATTR_DISPOFF); + } + } + HuPrcVSleep(); + } } void fn_1_4010(void) { - Vec pos2D; - Vec pos3D; - Vec posModel; - - s16 spA[4]; - s16 sp8 = 0; - s16 time; - s16 i; - float weight; - ModelData *modelP; - fn_1_25E74(lbl_1_bss_2CC); - fn_1_25584(lbl_1_bss_2CE); - lbl_1_bss_2CE = lbl_1_bss_2CC = -1; - pos2D.x = 60; - pos2D.y = 70; - pos2D.z = 1000; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - modelP = &Hu3DData[lbl_1_bss_2C80[11]]; - posModel = modelP->pos; - VECSubtract(&pos3D, &posModel, &pos2D); - for(time=0; time<=30; time++) { - for(i=0; i<4; i++) { - if(i == 2) { - continue; - } - if(time > i*2 && time < (i*2)+10) { - Vec posBox; - weight = (time-(i*2))/10.0; - posBox = lbl_1_data_40[i]; - posBox.z = 800; - posBox.x += ((i < 3) ? -1 : 1)*(500.0*(1.0-cosd(90.0f*weight))); - Hu3D2Dto3D(&posBox, 1, &pos3D); - pos3D.z -= 50.0f; - Hu3DModelPosSetV(lbl_1_bss_2C80[i+9], &pos3D); - Hu3DModelAttrReset(lbl_1_bss_2C80[i+9], 1); - } - } - if(time > 10) { - weight = (time-10)/20.0; - VECScale(&pos2D, &pos3D, sind(weight*90.0f)); - VECAdd(&posModel, &pos3D, &pos3D); - Hu3DModelPosSetV(lbl_1_bss_2C80[11], &pos3D); - } - HuPrcVSleep(); - } - fn_1_6D28(); - for(i=0; i<4; i++) { - spA[i] = 0; - for(time=0; time= 4 && spA[1] >= 3 && spA[2] >= 3 && spA[3] >= 2) { - GWGameStat.field10E_bit5 = 1; - } else { - GWGameStat.field10E_bit5 = 0; - } - pos2D = lbl_1_data_40[2]; - pos2D.z = 800; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - modelP = &Hu3DData[lbl_1_bss_2C80[11]]; - posModel = modelP->pos; - VECSubtract(&pos3D, &posModel, &pos2D); - espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); - for(time=0; time<=20; time++) { - VECScale(&pos2D, &pos3D, sind(time*4.5)); - VECAdd(&posModel, &pos3D, &pos3D); - Hu3DModelPosSetV(lbl_1_bss_2C80[11], &pos3D); - HuPrcVSleep(); - } - for(time=0; time<=20; time++) { - for(i=0; i<4; i++) { - if(i == 2) { - continue; - } - if(time > i*2 && time < (i*2)+10) { - weight = (time-(i*2))/10.0; - pos2D = lbl_1_data_40[i]; - pos2D.z = 800; - pos2D.x += ((i < 3) ? -1 : 1)*((1.0-sind(weight*90.0f))*500.0); - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - Hu3DModelPosSetV(lbl_1_bss_2C80[i+9], &pos3D); - Hu3DModelAttrReset(lbl_1_bss_2C80[i+9], 1); - } - } - HuPrcVSleep(); - } + Vec pos2D; + Vec pos3D; + Vec posModel; + + s16 spA[4]; + s16 sp8 = 0; + s16 time; + s16 i; + float weight; + ModelData *modelP; + fn_1_25E74(lbl_1_bss_2CC); + fn_1_25584(lbl_1_bss_2CE); + lbl_1_bss_2CE = lbl_1_bss_2CC = -1; + pos2D.x = 60; + pos2D.y = 70; + pos2D.z = 1000; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + modelP = &Hu3DData[lbl_1_bss_2C80[11]]; + posModel = modelP->pos; + VECSubtract(&pos3D, &posModel, &pos2D); + for (time = 0; time <= 30; time++) { + for (i = 0; i < 4; i++) { + if (i == 2) { + continue; + } + if (time > i * 2 && time < (i * 2) + 10) { + Vec posBox; + weight = (time - (i * 2)) / 10.0; + posBox = lbl_1_data_40[i]; + posBox.z = 800; + posBox.x += ((i < 3) ? -1 : 1) * (500.0 * (1.0 - cosd(90.0f * weight))); + Hu3D2Dto3D(&posBox, 1, &pos3D); + pos3D.z -= 50.0f; + Hu3DModelPosSetV(lbl_1_bss_2C80[i + 9], &pos3D); + Hu3DModelAttrReset(lbl_1_bss_2C80[i + 9], HU3D_ATTR_DISPOFF); + } + } + if (time > 10) { + weight = (time - 10) / 20.0; + VECScale(&pos2D, &pos3D, sind(weight * 90.0f)); + VECAdd(&posModel, &pos3D, &pos3D); + Hu3DModelPosSetV(lbl_1_bss_2C80[11], &pos3D); + } + HuPrcVSleep(); + } + fn_1_6D28(); + for (i = 0; i < 4; i++) { + spA[i] = 0; + for (time = 0; time < lbl_1_bss_20AC[lbl_1_data_A2[i]]; time++) { + if (GWMGCustomGet(lbl_1_bss_20C0[lbl_1_data_A2[i]][time] + 401)) { + spA[i]++; + } + } + } + if (spA[0] >= 4 && spA[1] >= 3 && spA[2] >= 3 && spA[3] >= 2) { + GWGameStat.field10E_bit5 = 1; + } + else { + GWGameStat.field10E_bit5 = 0; + } + pos2D = lbl_1_data_40[2]; + pos2D.z = 800; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + modelP = &Hu3DData[lbl_1_bss_2C80[11]]; + posModel = modelP->pos; + VECSubtract(&pos3D, &posModel, &pos2D); + espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); + for (time = 0; time <= 20; time++) { + VECScale(&pos2D, &pos3D, sind(time * 4.5)); + VECAdd(&posModel, &pos3D, &pos3D); + Hu3DModelPosSetV(lbl_1_bss_2C80[11], &pos3D); + HuPrcVSleep(); + } + for (time = 0; time <= 20; time++) { + for (i = 0; i < 4; i++) { + if (i == 2) { + continue; + } + if (time > i * 2 && time < (i * 2) + 10) { + weight = (time - (i * 2)) / 10.0; + pos2D = lbl_1_data_40[i]; + pos2D.z = 800; + pos2D.x += ((i < 3) ? -1 : 1) * ((1.0 - sind(weight * 90.0f)) * 500.0); + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + Hu3DModelPosSetV(lbl_1_bss_2C80[i + 9], &pos3D); + Hu3DModelAttrReset(lbl_1_bss_2C80[i + 9], HU3D_ATTR_DISPOFF); + } + } + HuPrcVSleep(); + } } s32 fn_1_487C(void) { - s16 i; - char str[4][6]; - - for(i=0; i<4; i++) { - strcpy(&str[i][0], "\x1E\x03""0""\x1E\x08"); - } - if(lbl_1_bss_20AC[0] >= 4 && lbl_1_bss_20AC[1] >= 3 && lbl_1_bss_20AC[2] >= 3 && lbl_1_bss_20AC[4] >= 2) { - return 1; - } - if(lbl_1_bss_20AC[0] >= 4) { - str[0][1] = 5; - } else { - str[0][2] = '4'-lbl_1_bss_20AC[0]; - } - HuWinInsertMesSet(lbl_1_bss_2CE, MAKE_MESSID_PTR(&str[0][0]), 0); - if(lbl_1_bss_20AC[1] >= 3) { - str[1][1] = 5; - } else { - str[1][2] = '3'-lbl_1_bss_20AC[1]; - } - HuWinInsertMesSet(lbl_1_bss_2CE, MAKE_MESSID_PTR(&str[1][0]), 1); - if(lbl_1_bss_20AC[2] >= 3) { - str[2][1] = 5; - } else { - str[2][2] = '3'-lbl_1_bss_20AC[2]; - } - HuWinInsertMesSet(lbl_1_bss_2CE, MAKE_MESSID_PTR(&str[2][0]), 2); - if(lbl_1_bss_20AC[4] >= 2) { - str[3][1] = 5; - } else { - str[3][2] = '2'-lbl_1_bss_20AC[4]; - } - HuWinInsertMesSet(lbl_1_bss_2CE, MAKE_MESSID_PTR(&str[3][0]), 3); - fn_1_25838(lbl_1_bss_2CE, 0x28002A, -1, -1); - fn_1_25838(lbl_1_bss_2CE, 0x28002B, -1, -1); - fn_1_25838(lbl_1_bss_2CE, 0x280002+lbl_1_bss_2A6, -1, -999); - return 0; + s16 i; + char str[4][6]; + + for (i = 0; i < 4; i++) { + strcpy(&str[i][0], + "\x1E\x03" + "0" + "\x1E\x08"); + } + if (lbl_1_bss_20AC[0] >= 4 && lbl_1_bss_20AC[1] >= 3 && lbl_1_bss_20AC[2] >= 3 && lbl_1_bss_20AC[4] >= 2) { + return 1; + } + if (lbl_1_bss_20AC[0] >= 4) { + str[0][1] = 5; + } + else { + str[0][2] = '4' - lbl_1_bss_20AC[0]; + } + HuWinInsertMesSet(lbl_1_bss_2CE, MAKE_MESSID_PTR(&str[0][0]), 0); + if (lbl_1_bss_20AC[1] >= 3) { + str[1][1] = 5; + } + else { + str[1][2] = '3' - lbl_1_bss_20AC[1]; + } + HuWinInsertMesSet(lbl_1_bss_2CE, MAKE_MESSID_PTR(&str[1][0]), 1); + if (lbl_1_bss_20AC[2] >= 3) { + str[2][1] = 5; + } + else { + str[2][2] = '3' - lbl_1_bss_20AC[2]; + } + HuWinInsertMesSet(lbl_1_bss_2CE, MAKE_MESSID_PTR(&str[2][0]), 2); + if (lbl_1_bss_20AC[4] >= 2) { + str[3][1] = 5; + } + else { + str[3][2] = '2' - lbl_1_bss_20AC[4]; + } + HuWinInsertMesSet(lbl_1_bss_2CE, MAKE_MESSID_PTR(&str[3][0]), 3); + fn_1_25838(lbl_1_bss_2CE, 0x28002A, -1, -1); + fn_1_25838(lbl_1_bss_2CE, 0x28002B, -1, -1); + fn_1_25838(lbl_1_bss_2CE, 0x280002 + lbl_1_bss_2A6, -1, -999); + return 0; } void fn_1_4ADC(void) { - Vec pos2D; - Vec pos3D; - Vec posModel; - - s16 spA[4]; - s16 sp8 = 0; - s16 time; - s16 i; - float weight; - ModelData *modelP; - fn_1_25E74(lbl_1_bss_2CC); - fn_1_25584(lbl_1_bss_2CE); - lbl_1_bss_2CE = lbl_1_bss_2CC = -1; - pos2D.x = 50; - pos2D.y = 64; - pos2D.z = 1000; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - modelP = &Hu3DData[lbl_1_bss_2C80[11]]; - posModel = modelP->pos; - VECSubtract(&pos3D, &posModel, &pos2D); - for(time=0; time<=30; time++) { - for(i=0; i<4; i++) { - if(i == 3) { - continue; - } - if(time > i*2 && time < (i*2)+10) { - Vec posBox; - weight = (time-(i*2))/10.0; - posBox = lbl_1_data_40[i]; - posBox.z = 800; - posBox.x += ((i < 3) ? -1 : 1)*(500.0*(1.0-cosd(90.0f*weight))); - Hu3D2Dto3D(&posBox, 1, &pos3D); - pos3D.z -= 50.0f; - Hu3DModelPosSetV(lbl_1_bss_2C80[i+9], &pos3D); - Hu3DModelAttrReset(lbl_1_bss_2C80[i+9], 1); - } - } - if(time > 10) { - weight = (time-10)/20.0; - VECScale(&pos2D, &pos3D, sind(weight*90.0f)); - VECAdd(&posModel, &pos3D, &pos3D); - Hu3DModelPosSetV(lbl_1_bss_2C80[12], &pos3D); - weight = (1.0-(weight*0.1)); - Hu3DModelScaleSet(lbl_1_bss_2C80[12], weight, weight, weight); - } - HuPrcVSleep(); - } - fn_1_D8D0(); - pos2D = lbl_1_data_40[3]; - pos2D.z = 800; - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - modelP = &Hu3DData[lbl_1_bss_2C80[12]]; - posModel = modelP->pos; - VECSubtract(&pos3D, &posModel, &pos2D); - espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); - for(time=0; time<=20; time++) { - VECScale(&pos2D, &pos3D, sind(time*4.5)); - VECAdd(&posModel, &pos3D, &pos3D); - Hu3DModelPosSetV(lbl_1_bss_2C80[12], &pos3D); - weight = 1.0-(0.1*(1.0-(time/20.0))); - Hu3DModelScaleSet(lbl_1_bss_2C80[12], weight, weight, weight); - HuPrcVSleep(); - } - for(time=0; time<=20; time++) { - for(i=0; i<4; i++) { - if(i == 3) { - continue; - } - if(time > i*2 && time < (i*2)+10) { - weight = (time-(i*2))/10.0; - pos2D = lbl_1_data_40[i]; - pos2D.z = 800; - pos2D.x += ((i < 3) ? -1 : 1)*((1.0-sind(weight*90.0f))*500.0); - Hu3D2Dto3D(&pos2D, 1, &pos3D); - pos3D.z -= 50.0f; - Hu3DModelPosSetV(lbl_1_bss_2C80[i+9], &pos3D); - Hu3DModelAttrReset(lbl_1_bss_2C80[i+9], 1); - } - } - HuPrcVSleep(); - } + Vec pos2D; + Vec pos3D; + Vec posModel; + + s16 spA[4]; + s16 sp8 = 0; + s16 time; + s16 i; + float weight; + ModelData *modelP; + fn_1_25E74(lbl_1_bss_2CC); + fn_1_25584(lbl_1_bss_2CE); + lbl_1_bss_2CE = lbl_1_bss_2CC = -1; + pos2D.x = 50; + pos2D.y = 64; + pos2D.z = 1000; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + modelP = &Hu3DData[lbl_1_bss_2C80[11]]; + posModel = modelP->pos; + VECSubtract(&pos3D, &posModel, &pos2D); + for (time = 0; time <= 30; time++) { + for (i = 0; i < 4; i++) { + if (i == 3) { + continue; + } + if (time > i * 2 && time < (i * 2) + 10) { + Vec posBox; + weight = (time - (i * 2)) / 10.0; + posBox = lbl_1_data_40[i]; + posBox.z = 800; + posBox.x += ((i < 3) ? -1 : 1) * (500.0 * (1.0 - cosd(90.0f * weight))); + Hu3D2Dto3D(&posBox, 1, &pos3D); + pos3D.z -= 50.0f; + Hu3DModelPosSetV(lbl_1_bss_2C80[i + 9], &pos3D); + Hu3DModelAttrReset(lbl_1_bss_2C80[i + 9], HU3D_ATTR_DISPOFF); + } + } + if (time > 10) { + weight = (time - 10) / 20.0; + VECScale(&pos2D, &pos3D, sind(weight * 90.0f)); + VECAdd(&posModel, &pos3D, &pos3D); + Hu3DModelPosSetV(lbl_1_bss_2C80[12], &pos3D); + weight = (1.0 - (weight * 0.1)); + Hu3DModelScaleSet(lbl_1_bss_2C80[12], weight, weight, weight); + } + HuPrcVSleep(); + } + fn_1_D8D0(); + pos2D = lbl_1_data_40[3]; + pos2D.z = 800; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + modelP = &Hu3DData[lbl_1_bss_2C80[12]]; + posModel = modelP->pos; + VECSubtract(&pos3D, &posModel, &pos2D); + espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); + for (time = 0; time <= 20; time++) { + VECScale(&pos2D, &pos3D, sind(time * 4.5)); + VECAdd(&posModel, &pos3D, &pos3D); + Hu3DModelPosSetV(lbl_1_bss_2C80[12], &pos3D); + weight = 1.0 - (0.1 * (1.0 - (time / 20.0))); + Hu3DModelScaleSet(lbl_1_bss_2C80[12], weight, weight, weight); + HuPrcVSleep(); + } + for (time = 0; time <= 20; time++) { + for (i = 0; i < 4; i++) { + if (i == 3) { + continue; + } + if (time > i * 2 && time < (i * 2) + 10) { + weight = (time - (i * 2)) / 10.0; + pos2D = lbl_1_data_40[i]; + pos2D.z = 800; + pos2D.x += ((i < 3) ? -1 : 1) * ((1.0 - sind(weight * 90.0f)) * 500.0); + Hu3D2Dto3D(&pos2D, 1, &pos3D); + pos3D.z -= 50.0f; + Hu3DModelPosSetV(lbl_1_bss_2C80[i + 9], &pos3D); + Hu3DModelAttrReset(lbl_1_bss_2C80[i + 9], HU3D_ATTR_DISPOFF); + } + } + HuPrcVSleep(); + } } void fn_1_65EC(void); void fn_1_52DC(void) { - s16 i; - fn_1_65EC(); - fn_1_267E8(lbl_1_data_490); - fn_1_26A78(lbl_1_data_768); - Hu3DMotionSet(lbl_1_bss_2C80[2], lbl_1_bss_2C66[4]); - Hu3DMotionTimeSet(lbl_1_bss_2C80[0], 0); - Hu3DModelAttrSet(lbl_1_bss_2C80[0], 0x40000002); - HuSprExecLayerSet(64, 3); - espDrawNoSet(lbl_1_bss_2C2C[3], 64); - for(i=0; i<4; i++) { - Hu3DModelLayerSet(lbl_1_bss_2C80[i+9], 3); - } - fn_1_26C28(); - espDrawNoSet(lbl_1_bss_2C2C[28], 64); - Hu3DModelPosSet(lbl_1_bss_2C80[5], 0, 0, 500); - lbl_1_bss_8.unk0 = lbl_1_bss_2C80[2]; - lbl_1_bss_8.unk8 = lbl_1_bss_2C66[4]; - lbl_1_bss_8.unk4 = lbl_1_bss_2C66[3]; - lbl_1_bss_8.unkC = lbl_1_bss_2C80[5]; - lbl_1_bss_8.unk10 = lbl_1_bss_2C66[6]; - lbl_1_bss_8.unk14 = lbl_1_bss_2C66[7]; - lbl_1_bss_8.unk18 = lbl_1_bss_2C66[6]; - fn_1_18DF8(lbl_1_bss_2D8, &lbl_1_bss_8); - Hu3DModelShadowSet(lbl_1_bss_2C80[5]); - Hu3DModelShadowMapSet(lbl_1_bss_2C80[0]); + s16 i; + fn_1_65EC(); + fn_1_267E8(lbl_1_data_490); + fn_1_26A78(lbl_1_data_768); + Hu3DMotionSet(lbl_1_bss_2C80[2], lbl_1_bss_2C66[4]); + Hu3DMotionTimeSet(lbl_1_bss_2C80[0], 0); + Hu3DModelAttrSet(lbl_1_bss_2C80[0], HU3D_MOTATTR_PAUSE); + HuSprExecLayerSet(64, 3); + espDrawNoSet(lbl_1_bss_2C2C[3], 64); + for (i = 0; i < 4; i++) { + Hu3DModelLayerSet(lbl_1_bss_2C80[i + 9], 3); + } + fn_1_26C28(); + espDrawNoSet(lbl_1_bss_2C2C[28], 64); + Hu3DModelPosSet(lbl_1_bss_2C80[5], 0, 0, 500); + lbl_1_bss_8.unk0 = lbl_1_bss_2C80[2]; + lbl_1_bss_8.unk8 = lbl_1_bss_2C66[4]; + lbl_1_bss_8.unk4 = lbl_1_bss_2C66[3]; + lbl_1_bss_8.unkC = lbl_1_bss_2C80[5]; + lbl_1_bss_8.unk10 = lbl_1_bss_2C66[6]; + lbl_1_bss_8.unk14 = lbl_1_bss_2C66[7]; + lbl_1_bss_8.unk18 = lbl_1_bss_2C66[6]; + fn_1_18DF8(lbl_1_bss_2D8, &lbl_1_bss_8); + Hu3DModelShadowSet(lbl_1_bss_2C80[5]); + Hu3DModelShadowMapSet(lbl_1_bss_2C80[0]); } void fn_1_6C18(void); void fn_1_54F4(void) { - while(1) { - if(lbl_1_bss_2D0) { - break; - } - if(omSysExitReq) { - break; - } - HuPrcVSleep(); - } - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - HuAudSeqAllFadeOut(1000); - while(WipeStatGet()) { - HuPrcVSleep(); - } - HuDataDirClose(DATADIR_INSTPIC); - if(memcmp(&mgGameStatBackup, &GWGameStat, sizeof(GWGameStat))) { - fn_1_6C18(); - } - BoardStatusKill(); - omOvlReturnEx(1, 1); - HuPrcEnd(); + while (1) { + if (lbl_1_bss_2D0) { + break; + } + if (omSysExitReq) { + break; + } + HuPrcVSleep(); + } + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudSeqAllFadeOut(1000); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuDataDirClose(DATADIR_INSTPIC); + if (memcmp(&mgGameStatBackup, &GWGameStat, sizeof(GWGameStat))) { + fn_1_6C18(); + } + BoardStatusKill(); + omOvlReturnEx(1, 1); + HuPrcEnd(); } - -static u16 lbl_1_data_8C[2] = { - 1, - 2 -}; +static u16 lbl_1_data_8C[2] = { 1, 2 }; void fn_1_55C0(omObjData *object) { - s16 i; - for(i=0; i<1; i++) { - Vec pos, target, up; - float x, y, z; - - x = lbl_1_bss_28C[i].x; - y = lbl_1_bss_28C[i].y; - z = lbl_1_bss_28C[i].z; - - pos.x = (((sind(y)*cosd(x))*lbl_1_bss_26C[i])+lbl_1_bss_274[i].x); - pos.y = (-sind(x)*lbl_1_bss_26C[i])+lbl_1_bss_274[i].y; - pos.z = ((cosd(y)*cosd(x))*lbl_1_bss_26C[i])+lbl_1_bss_274[i].z; - target.x = lbl_1_bss_274[i].x; - target.y = lbl_1_bss_274[i].y; - target.z = lbl_1_bss_274[i].z; - up.x = sind(y)*sind(x); - up.y = cosd(x); - up.z = cosd(y)*sind(x); - Hu3DCameraPosSet(lbl_1_data_8C[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); - } + s16 i; + for (i = 0; i < 1; i++) { + Vec pos, target, up; + float x, y, z; + + x = lbl_1_bss_28C[i].x; + y = lbl_1_bss_28C[i].y; + z = lbl_1_bss_28C[i].z; + + pos.x = (((sind(y) * cosd(x)) * lbl_1_bss_26C[i]) + lbl_1_bss_274[i].x); + pos.y = (-sind(x) * lbl_1_bss_26C[i]) + lbl_1_bss_274[i].y; + pos.z = ((cosd(y) * cosd(x)) * lbl_1_bss_26C[i]) + lbl_1_bss_274[i].z; + target.x = lbl_1_bss_274[i].x; + target.y = lbl_1_bss_274[i].y; + target.z = lbl_1_bss_274[i].z; + up.x = sind(y) * sind(x); + up.y = cosd(x); + up.z = cosd(y) * sind(x); + Hu3DCameraPosSet(lbl_1_data_8C[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); + } } void fn_1_66B0(void); void fn_1_5974(omObjData *object) { - Vec pos; + Vec pos; Vec offset; Vec dir; Vec y_offset; - + f32 z_rot; s8 stick_pos; - if(HuPadBtnDown[0] & PAD_BUTTON_Y) { - lbl_1_bss_0 = (lbl_1_bss_0) ? 0 : 1; - } - if(lbl_1_bss_0 == 0) { - fn_1_66B0(); - return; - } - lbl_1_bss_28C[0].y += 0.1f * HuPadStkX[0]; - lbl_1_bss_28C[0].x += 0.1f * HuPadStkY[0]; - lbl_1_bss_26C[0] += HuPadTrigL[0] / 2; - lbl_1_bss_26C[0] -= HuPadTrigR[0] / 2; - if(HuPadBtnDown[0] & PAD_BUTTON_B) { - OSReport("%f,%f,%f\n", lbl_1_bss_28C[0].x, lbl_1_bss_28C[0].y, lbl_1_bss_28C[0].z); - OSReport("%f,%f,%f\n", lbl_1_bss_274[0].x, lbl_1_bss_274[0].y, lbl_1_bss_274[0].z); - OSReport("%f\n", lbl_1_bss_26C[0]); - } - if (lbl_1_bss_26C[0] < 100.0f) { - lbl_1_bss_26C[0] = 100.0f; - } - pos.x = lbl_1_bss_274[0].x + (lbl_1_bss_26C[0] * (sind(lbl_1_bss_28C[0].y) * cosd(lbl_1_bss_28C[0].x))); - pos.y = (lbl_1_bss_274[0].y + (lbl_1_bss_26C[0] * -sind(lbl_1_bss_28C[0].x))); - pos.z = (lbl_1_bss_274[0].z + (lbl_1_bss_26C[0] * (cosd(lbl_1_bss_28C[0].y) * cosd(lbl_1_bss_28C[0].x)))); - offset.x = lbl_1_bss_274[0].x - pos.x; - offset.y = lbl_1_bss_274[0].y - pos.y; - offset.z = lbl_1_bss_274[0].z - pos.z; - dir.x = (sind(lbl_1_bss_28C[0].y) * sind(lbl_1_bss_28C[0].x)); - dir.y = cosd(lbl_1_bss_28C[0].x); - dir.z = (cosd(lbl_1_bss_28C[0].y) * sind(lbl_1_bss_28C[0].x)); - z_rot = lbl_1_bss_28C[0].z; - y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot)) - + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) - + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); + if (HuPadBtnDown[0] & PAD_BUTTON_Y) { + lbl_1_bss_0 = (lbl_1_bss_0) ? 0 : 1; + } + if (lbl_1_bss_0 == 0) { + fn_1_66B0(); + return; + } + lbl_1_bss_28C[0].y += 0.1f * HuPadStkX[0]; + lbl_1_bss_28C[0].x += 0.1f * HuPadStkY[0]; + lbl_1_bss_26C[0] += HuPadTrigL[0] / 2; + lbl_1_bss_26C[0] -= HuPadTrigR[0] / 2; + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + OSReport("%f,%f,%f\n", lbl_1_bss_28C[0].x, lbl_1_bss_28C[0].y, lbl_1_bss_28C[0].z); + OSReport("%f,%f,%f\n", lbl_1_bss_274[0].x, lbl_1_bss_274[0].y, lbl_1_bss_274[0].z); + OSReport("%f\n", lbl_1_bss_26C[0]); + } + if (lbl_1_bss_26C[0] < 100.0f) { + lbl_1_bss_26C[0] = 100.0f; + } + pos.x = lbl_1_bss_274[0].x + (lbl_1_bss_26C[0] * (sind(lbl_1_bss_28C[0].y) * cosd(lbl_1_bss_28C[0].x))); + pos.y = (lbl_1_bss_274[0].y + (lbl_1_bss_26C[0] * -sind(lbl_1_bss_28C[0].x))); + pos.z = (lbl_1_bss_274[0].z + (lbl_1_bss_26C[0] * (cosd(lbl_1_bss_28C[0].y) * cosd(lbl_1_bss_28C[0].x)))); + offset.x = lbl_1_bss_274[0].x - pos.x; + offset.y = lbl_1_bss_274[0].y - pos.y; + offset.z = lbl_1_bss_274[0].z - pos.z; + dir.x = (sind(lbl_1_bss_28C[0].y) * sind(lbl_1_bss_28C[0].x)); + dir.y = cosd(lbl_1_bss_28C[0].x); + dir.z = (cosd(lbl_1_bss_28C[0].y) * sind(lbl_1_bss_28C[0].x)); + z_rot = lbl_1_bss_28C[0].z; + y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot)) + + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) + + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); - y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot)) - + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) - + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); - - y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot)) - + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) - + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); + y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot)) + + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) + + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); - VECCrossProduct(&dir, &offset, &offset); - VECNormalize(&offset, &offset); - stick_pos = (HuPadSubStkX[0] & 0xF8); - if (stick_pos != 0) { - lbl_1_bss_274[0].x += 0.05f * (offset.x * stick_pos); - lbl_1_bss_274[0].y += 0.05f * (offset.y * stick_pos); - lbl_1_bss_274[0].z += 0.05f * (offset.z * stick_pos); - } - VECNormalize(&y_offset, &offset); - stick_pos = -(HuPadSubStkY[0] & 0xF8); - if (stick_pos != 0) { - lbl_1_bss_274[0].x += 0.05f * (offset.x * stick_pos); - lbl_1_bss_274[0].y += 0.05f * (offset.y * stick_pos); - lbl_1_bss_274[0].z += 0.05f * (offset.z * stick_pos); - } + y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot)) + + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) + + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); + + VECCrossProduct(&dir, &offset, &offset); + VECNormalize(&offset, &offset); + stick_pos = (HuPadSubStkX[0] & 0xF8); + if (stick_pos != 0) { + lbl_1_bss_274[0].x += 0.05f * (offset.x * stick_pos); + lbl_1_bss_274[0].y += 0.05f * (offset.y * stick_pos); + lbl_1_bss_274[0].z += 0.05f * (offset.z * stick_pos); + } + VECNormalize(&y_offset, &offset); + stick_pos = -(HuPadSubStkY[0] & 0xF8); + if (stick_pos != 0) { + lbl_1_bss_274[0].x += 0.05f * (offset.x * stick_pos); + lbl_1_bss_274[0].y += 0.05f * (offset.y * stick_pos); + lbl_1_bss_274[0].z += 0.05f * (offset.z * stick_pos); + } } void fn_1_65EC(void) { - Vec pos = { 0, 3000, 800 }; - Vec target = { 0, 0, 640 }; - Vec up = { 0, 1, 0 }; - Hu3DShadowCreate(45, 2000, 25000); - Hu3DShadowTPLvlSet(0.8f); - Hu3DShadowPosSet(&pos, &up, &target); + Vec pos = { 0, 3000, 800 }; + Vec target = { 0, 0, 640 }; + Vec up = { 0, 1, 0 }; + Hu3DShadowCreate(45, 2000, 25000); + Hu3DShadowTPLvlSet(0.8f); + Hu3DShadowPosSet(&pos, &up, &target); } void fn_1_66B0(void) { - Vec deltaVec; - float delta; - - if(lbl_1_bss_2D0) { - return; - } - VECSubtract(&lbl_1_bss_2C0, &lbl_1_bss_28C[0], &deltaVec); - if(VECMag(&deltaVec) > 0.2) { - VECScale(&deltaVec, &deltaVec, 0.05f); - VECAdd(&lbl_1_bss_28C[0], &deltaVec, &lbl_1_bss_28C[0]); - } else { - lbl_1_bss_28C[0] = lbl_1_bss_2C0; - } - VECSubtract(&lbl_1_bss_2B4, &lbl_1_bss_274[0], &deltaVec); - if(VECMag(&deltaVec) > 0.2) { - VECScale(&deltaVec, &deltaVec, 0.05f); - VECAdd(&lbl_1_bss_274[0], &deltaVec, &lbl_1_bss_274[0]); - } else { - lbl_1_bss_274[0] = lbl_1_bss_2B4; - } - delta = lbl_1_bss_2B0-lbl_1_bss_26C[0]; - if(sqrtf(delta*delta) > 0.2) { - delta *= 0.05f; - lbl_1_bss_26C[0] += delta; - } else { - lbl_1_bss_26C[0] = lbl_1_bss_2B0; - } + Vec deltaVec; + float delta; + + if (lbl_1_bss_2D0) { + return; + } + VECSubtract(&lbl_1_bss_2C0, &lbl_1_bss_28C[0], &deltaVec); + if (VECMag(&deltaVec) > 0.2) { + VECScale(&deltaVec, &deltaVec, 0.05f); + VECAdd(&lbl_1_bss_28C[0], &deltaVec, &lbl_1_bss_28C[0]); + } + else { + lbl_1_bss_28C[0] = lbl_1_bss_2C0; + } + VECSubtract(&lbl_1_bss_2B4, &lbl_1_bss_274[0], &deltaVec); + if (VECMag(&deltaVec) > 0.2) { + VECScale(&deltaVec, &deltaVec, 0.05f); + VECAdd(&lbl_1_bss_274[0], &deltaVec, &lbl_1_bss_274[0]); + } + else { + lbl_1_bss_274[0] = lbl_1_bss_2B4; + } + delta = lbl_1_bss_2B0 - lbl_1_bss_26C[0]; + if (sqrtf(delta * delta) > 0.2) { + delta *= 0.05f; + lbl_1_bss_26C[0] += delta; + } + else { + lbl_1_bss_26C[0] = lbl_1_bss_2B0; + } } void fn_1_6974(s16 arg0) { - lbl_1_bss_2C0 = lbl_1_data_0[arg0].rot; - lbl_1_bss_2B4 = lbl_1_data_0[arg0].pos; - lbl_1_bss_2B0 = lbl_1_data_0[arg0].zoom; + lbl_1_bss_2C0 = lbl_1_data_0[arg0].rot; + lbl_1_bss_2B4 = lbl_1_data_0[arg0].pos; + lbl_1_bss_2B0 = lbl_1_data_0[arg0].zoom; } void fn_1_6A04(s16 arg0) { - lbl_1_bss_2C0 = lbl_1_bss_28C[0] = lbl_1_data_0[arg0].rot; - lbl_1_bss_2B4 = lbl_1_bss_274[0] = lbl_1_data_0[arg0].pos; - lbl_1_bss_2B0 = lbl_1_bss_26C[0] = lbl_1_data_0[arg0].zoom; + lbl_1_bss_2C0 = lbl_1_bss_28C[0] = lbl_1_data_0[arg0].rot; + lbl_1_bss_2B4 = lbl_1_bss_274[0] = lbl_1_data_0[arg0].pos; + lbl_1_bss_2B0 = lbl_1_bss_26C[0] = lbl_1_data_0[arg0].zoom; } float fn_1_6AF0(void) { - float delta = lbl_1_bss_2B0-lbl_1_bss_26C[0]; - return sqrtf(delta*delta); + float delta = lbl_1_bss_2B0 - lbl_1_bss_26C[0]; + return sqrtf(delta * delta); } void fn_1_6C18(void) { - s16 sprite; - if(!SLSaveFlagGet()) { - return; - } - Hu3DAllKill(); - HuSprClose(); - HuSprInit(); - espInit(); - HuPrcVSleep(); - sprite = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 0x20), 5000, 0); - espPosSet(sprite, 288.0, 240.0); - espAttrReset(sprite, 4); - Hu3DBGColorSet(0, 0, 0); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); - while(WipeStatGet()) { - HuPrcVSleep(); - } - SLCommonSet(); - if(!SLSave()) { - GWSaveModeSet(1); - } - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); - while(WipeStatGet()) { - HuPrcVSleep(); - } + s16 sprite; + if (!SLSaveFlagGet()) { + return; + } + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + espInit(); + HuPrcVSleep(); + sprite = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 0x20), 5000, 0); + espPosSet(sprite, 288.0, 240.0); + espAttrReset(sprite, HUSPR_ATTR_DISPOFF); + Hu3DBGColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); + while (WipeStatGet()) { + HuPrcVSleep(); + } + SLCommonSet(); + if (!SLSave()) { + GWSaveModeSet(1); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet()) { + HuPrcVSleep(); + } } diff --git a/src/REL/modeltestDll/modeltest01.c b/src/REL/modeltestDll/modeltest01.c index 20e4cff3..8f77b253 100644 --- a/src/REL/modeltestDll/modeltest01.c +++ b/src/REL/modeltestDll/modeltest01.c @@ -1,26 +1,26 @@ -#include "game/object.h" -#include "game/hsfman.h" -#include "game/hsfload.h" #include "game/hsfdraw.h" +#include "game/hsfload.h" +#include "game/hsfman.h" +#include "game/object.h" #include "game/printfunc.h" #include "game/hsfmotion.h" -#include "game/wipe.h" #include "game/audio.h" +#include "game/gamework_data.h" #include "game/msm.h" #include "game/pad.h" #include "game/process.h" -#include "game/gamework_data.h" +#include "game/wipe.h" -#include "math.h" #include "ext_math.h" +#include "math.h" typedef struct unk_bss_a18 { - u32 unk0; - Vec unk4; - Vec unk10; - u8 unk1C[0x88]; + u32 unk0; + Vec unk4; + Vec unk10; + u8 unk1C[0x88]; } UnkBssA18; omObjData *lbl_1_bss_AC4; @@ -40,714 +40,610 @@ void fn_1_5DA8(void); void fn_1_6AE0(ModelData *model, Mtx mtx); void fn_1_83B4(void); - -static const Vec lbl_1_rodata_1C8 = {0.0f, 0.0f, 0.0f}; -static const Vec lbl_1_rodata_1D4 = {0.0f, 0.0f, -1.0f}; +static const Vec lbl_1_rodata_1C8 = { 0.0f, 0.0f, 0.0f }; +static const Vec lbl_1_rodata_1D4 = { 0.0f, 0.0f, -1.0f }; void fn_1_4AC8(void) { - Vec sp14; - Vec sp8; - Process *objman; - OSReport("******* MODELTESTObjectSetup *********\n"); - objman = omInitObjMan(50, 8192); - CRot.x = -22; - CRot.y = 0; - CRot.z = 0; - Center.x = 0; - Center.y = 100; - Center.z = 0; - CZoom = 400; - Hu3DCameraCreate(1); - lbl_1_bss_A0C = 45; - Hu3DCameraPerspectiveSet(1, lbl_1_bss_A0C, 20, 5000, 1.2f); - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - Hu3DCameraScissorSet(1, 0, 0, 640, 480); - lbl_1_bss_ABC = omAddObjEx(objman, 0, 32, 32, -1, fn_1_4DF8); - lbl_1_bss_AC0 = omAddObjEx(objman, 32730, 0, 0, -1, fn_1_5A60); - lbl_1_bss_A00 = HuPrcCreate(fn_1_5DA8, 100, 8192, 0); - Hu3DBGColorSet(16, 16, 16); - Hu3DHookFuncCreate(fn_1_6AE0); - HuPrcChildCreate(fn_1_83B4, 100, 12288, 0, objman); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); - sp14 = lbl_1_rodata_1C8; - sp8 = lbl_1_rodata_1D4; - lbl_1_bss_A18.unk0 = 64; - lbl_1_bss_A18.unk10.x = 0; - lbl_1_bss_A18.unk10.y = 0; - lbl_1_bss_A18.unk10.z = 0; - msmSeSetListener(&sp14, &sp8, 2000, 1000, 0); + Vec sp14; + Vec sp8; + Process *objman; + OSReport("******* MODELTESTObjectSetup *********\n"); + objman = omInitObjMan(50, 8192); + CRot.x = -22; + CRot.y = 0; + CRot.z = 0; + Center.x = 0; + Center.y = 100; + Center.z = 0; + CZoom = 400; + Hu3DCameraCreate(1); + lbl_1_bss_A0C = 45; + Hu3DCameraPerspectiveSet(1, lbl_1_bss_A0C, 20, 5000, 1.2f); + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + Hu3DCameraScissorSet(1, 0, 0, 640, 480); + lbl_1_bss_ABC = omAddObjEx(objman, 0, 32, 32, -1, fn_1_4DF8); + lbl_1_bss_AC0 = omAddObjEx(objman, 32730, 0, 0, -1, fn_1_5A60); + lbl_1_bss_A00 = HuPrcCreate(fn_1_5DA8, 100, 8192, 0); + Hu3DBGColorSet(16, 16, 16); + Hu3DHookFuncCreate(fn_1_6AE0); + HuPrcChildCreate(fn_1_83B4, 100, 12288, 0, objman); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + sp14 = lbl_1_rodata_1C8; + sp8 = lbl_1_rodata_1D4; + lbl_1_bss_A18.unk0 = 64; + lbl_1_bss_A18.unk10.x = 0; + lbl_1_bss_A18.unk10.y = 0; + lbl_1_bss_A18.unk10.z = 0; + msmSeSetListener(&sp14, &sp8, 2000, 1000, 0); } void fn_1_4DF8(omObjData *object) { - float temp_f31; - Vec pos; + float temp_f31; + Vec pos; Vec offset; Vec dir; Vec y_offset; - s8 temp_r31; - - if(HuPadBtnDown[0] & PAD_BUTTON_START) { - if(lbl_1_bss_A00) { - HuPrcKill(lbl_1_bss_A00); - } - if(lbl_1_bss_A04) { - HuPrcKill(lbl_1_bss_A04); - } - HuAudFXListnerKill(); - omOvlReturnEx(1, 1); - return; - } - CRot.y += 0.1f*HuPadStkX[0]; - CRot.x += 0.1f*HuPadStkY[0]; - CZoom += HuPadTrigL[0]/2; - CZoom -= HuPadTrigR[0]/2; - if(CZoom < 100) { - CZoom = 100; - } - if(CZoom > 2000) { - CZoom = 2000; - } - pos.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x))); - pos.y = (Center.y + (CZoom * -sind(CRot.x))); - pos.z = (Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x)))); - offset.x = Center.x - pos.x; - offset.y = Center.y - pos.y; - offset.z = Center.z - pos.z; - dir.x = (sind(CRot.y) * sind(CRot.x)); - dir.y = cosd(CRot.x); - dir.z = (cosd(CRot.y) * sind(CRot.x)); - temp_f31 = CRot.z; - y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(temp_f31)) - + dir.y * (offset.x * offset.y * (1.0f - cosd(temp_f31)) - offset.z * sind(temp_f31)) - + dir.z * (offset.x * offset.z * (1.0f - cosd(temp_f31)) + offset.y * sind(temp_f31)); + s8 temp_r31; - y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(temp_f31)) - + dir.x * (offset.x * offset.y * (1.0f - cosd(temp_f31)) + offset.z * sind(temp_f31)) - + dir.z * (offset.y * offset.z * (1.0f - cosd(temp_f31)) - offset.x * sind(temp_f31)); - - y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(temp_f31)) - + (dir.x * (offset.x * offset.z * (1.0 - cosd(temp_f31)) - offset.y * sind(temp_f31)) - + dir.y * (offset.y * offset.z * (1.0 - cosd(temp_f31)) + offset.x * sind(temp_f31))); - VECCrossProduct(&dir, &offset, &offset); - VECNormalize(&offset, &offset); - temp_r31 = (HuPadSubStkX[0] & 0xF8); - if (temp_r31 != 0) { - Center.x += 0.05f * (offset.x * temp_r31); - Center.y += 0.05f * (offset.y * temp_r31); - Center.z += 0.05f * (offset.z * temp_r31); - } - VECNormalize(&y_offset, &offset); - temp_r31 = -(HuPadSubStkY[0] & 0xF8); - if (temp_r31 != 0) { - Center.x += 0.05f * (offset.x * temp_r31); - Center.y += 0.05f * (offset.y * temp_r31); - Center.z += 0.05f * (offset.z * temp_r31); - } - Hu3DCameraPerspectiveSet(1, lbl_1_bss_A0C, 20, 5000, 1.2f); + if (HuPadBtnDown[0] & PAD_BUTTON_START) { + if (lbl_1_bss_A00) { + HuPrcKill(lbl_1_bss_A00); + } + if (lbl_1_bss_A04) { + HuPrcKill(lbl_1_bss_A04); + } + HuAudFXListnerKill(); + omOvlReturnEx(1, 1); + return; + } + CRot.y += 0.1f * HuPadStkX[0]; + CRot.x += 0.1f * HuPadStkY[0]; + CZoom += HuPadTrigL[0] / 2; + CZoom -= HuPadTrigR[0] / 2; + if (CZoom < 100) { + CZoom = 100; + } + if (CZoom > 2000) { + CZoom = 2000; + } + pos.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x))); + pos.y = (Center.y + (CZoom * -sind(CRot.x))); + pos.z = (Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x)))); + offset.x = Center.x - pos.x; + offset.y = Center.y - pos.y; + offset.z = Center.z - pos.z; + dir.x = (sind(CRot.y) * sind(CRot.x)); + dir.y = cosd(CRot.x); + dir.z = (cosd(CRot.y) * sind(CRot.x)); + temp_f31 = CRot.z; + y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(temp_f31)) + + dir.y * (offset.x * offset.y * (1.0f - cosd(temp_f31)) - offset.z * sind(temp_f31)) + + dir.z * (offset.x * offset.z * (1.0f - cosd(temp_f31)) + offset.y * sind(temp_f31)); + + y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(temp_f31)) + + dir.x * (offset.x * offset.y * (1.0f - cosd(temp_f31)) + offset.z * sind(temp_f31)) + + dir.z * (offset.y * offset.z * (1.0f - cosd(temp_f31)) - offset.x * sind(temp_f31)); + + y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(temp_f31)) + + (dir.x * (offset.x * offset.z * (1.0 - cosd(temp_f31)) - offset.y * sind(temp_f31)) + + dir.y * (offset.y * offset.z * (1.0 - cosd(temp_f31)) + offset.x * sind(temp_f31))); + VECCrossProduct(&dir, &offset, &offset); + VECNormalize(&offset, &offset); + temp_r31 = (HuPadSubStkX[0] & 0xF8); + if (temp_r31 != 0) { + Center.x += 0.05f * (offset.x * temp_r31); + Center.y += 0.05f * (offset.y * temp_r31); + Center.z += 0.05f * (offset.z * temp_r31); + } + VECNormalize(&y_offset, &offset); + temp_r31 = -(HuPadSubStkY[0] & 0xF8); + if (temp_r31 != 0) { + Center.x += 0.05f * (offset.x * temp_r31); + Center.y += 0.05f * (offset.y * temp_r31); + Center.z += 0.05f * (offset.z * temp_r31); + } + Hu3DCameraPerspectiveSet(1, lbl_1_bss_A0C, 20, 5000, 1.2f); } void fn_1_5A60(omObjData *object) { - Mtx rotAxis; - Vec pos, target, up; - float x, y, z; - - x = CRot.x; - y = CRot.y; - z = CRot.z; - - pos.x = (((sind(y)*cosd(x))*CZoom)+Center.x); - pos.y = (-sind(x)*CZoom)+Center.y; - pos.z = ((cosd(y)*cosd(x))*CZoom)+Center.z; - target.x = Center.x; - target.y = Center.y; - target.z = Center.z; - up.x = sind(y)*sind(x); - up.y = cosd(x); - up.z = cosd(y)*sind(x); - Hu3DCameraPosSet(1, pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); - MTXRotDeg(rotAxis, 'y', -y); - MTXMultVec(rotAxis, &pos, &up); - VECSubtract(&target, &pos, &up); - VECNormalize(&up, &up); - HuAudFXListnerUpdate(&pos, &up); + Mtx rotAxis; + Vec pos, target, up; + float x, y, z; + + x = CRot.x; + y = CRot.y; + z = CRot.z; + + pos.x = (((sind(y) * cosd(x)) * CZoom) + Center.x); + pos.y = (-sind(x) * CZoom) + Center.y; + pos.z = ((cosd(y) * cosd(x)) * CZoom) + Center.z; + target.x = Center.x; + target.y = Center.y; + target.z = Center.z; + up.x = sind(y) * sind(x); + up.y = cosd(x); + up.z = cosd(y) * sind(x); + Hu3DCameraPosSet(1, pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); + MTXRotDeg(rotAxis, 'y', -y); + MTXMultVec(rotAxis, &pos, &up); + VECSubtract(&target, &pos, &up); + VECNormalize(&up, &up); + HuAudFXListnerUpdate(&pos, &up); } -u32 lbl_1_data_3B0[] = { - DATA_MAKE_NUM(DATADIR_MARIOMDL0, 0x00), 0x00000000, - DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x00), 0x00000000, - DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x01), 0x00000000, - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06), 0x00000001, - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0x00000001, - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), 0x00000001, - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), 0x00000001, - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), 0x00000000, - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), 0x00000000, - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), 0x00000000, - 0x00000000, 0x00000000 -}; +u32 lbl_1_data_3B0[] = { DATA_MAKE_NUM(DATADIR_MARIOMDL0, 0x00), 0x00000000, DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x00), 0x00000000, + DATA_MAKE_NUM(DATADIR_MARIOMDL1, 0x01), 0x00000000, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06), 0x00000001, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + 0x00000001, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), 0x00000001, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), 0x00000001, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), 0x00000000, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), 0x00000000, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), + 0x00000000, 0x00000000, 0x00000000 }; -u32 lbl_1_data_408[] = { - DATA_MAKE_NUM(DATADIR_LUIGI, 0x00), 0x00000000, - DATA_MAKE_NUM(DATADIR_LUIGI, 0x02), 0x00000000, - DATA_MAKE_NUM(DATADIR_LUIGI, 0x03), 0x00000000, - DATA_MAKE_NUM(DATADIR_LUIGI, 0x0D), 0x00000001, - DATA_MAKE_NUM(DATADIR_LUIGI, 0x05), 0x00000001, - DATA_MAKE_NUM(DATADIR_LUIGI, 0x07), 0x00000001, - DATA_MAKE_NUM(DATADIR_LUIGI, 0x08), 0x00000001, - DATA_MAKE_NUM(DATADIR_LUIGI, 0x0C), 0x00000000, - DATA_MAKE_NUM(DATADIR_LUIGI, 0x28), 0x00000000, - DATA_MAKE_NUM(DATADIR_LUIGI, 0x29), 0x00000000, - 0x00000000, 0x00000000 -}; +u32 lbl_1_data_408[] = { DATA_MAKE_NUM(DATADIR_LUIGI, 0x00), 0x00000000, DATA_MAKE_NUM(DATADIR_LUIGI, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x03), 0x00000000, DATA_MAKE_NUM(DATADIR_LUIGI, 0x0D), 0x00000001, DATA_MAKE_NUM(DATADIR_LUIGI, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x07), 0x00000001, DATA_MAKE_NUM(DATADIR_LUIGI, 0x08), 0x00000001, DATA_MAKE_NUM(DATADIR_LUIGI, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_LUIGI, 0x28), 0x00000000, DATA_MAKE_NUM(DATADIR_LUIGI, 0x29), 0x00000000, 0x00000000, 0x00000000 }; -u32 lbl_1_data_460[] = { - DATA_MAKE_NUM(DATADIR_PEACH, 0x00), 0x00000000, - DATA_MAKE_NUM(DATADIR_PEACH, 0x02), 0x00000000, - DATA_MAKE_NUM(DATADIR_PEACH, 0x03), 0x00000000, - DATA_MAKE_NUM(DATADIR_PEACH, 0x0D), 0x00000001, - DATA_MAKE_NUM(DATADIR_PEACH, 0x05), 0x00000001, - DATA_MAKE_NUM(DATADIR_PEACH, 0x07), 0x00000001, - DATA_MAKE_NUM(DATADIR_PEACH, 0x08), 0x00000001, - DATA_MAKE_NUM(DATADIR_PEACH, 0x0C), 0x00000000, - DATA_MAKE_NUM(DATADIR_PEACH, 0x28), 0x00000000, - DATA_MAKE_NUM(DATADIR_PEACH, 0x29), 0x00000000, - 0x00000000, 0x00000000 -}; +u32 lbl_1_data_460[] = { DATA_MAKE_NUM(DATADIR_PEACH, 0x00), 0x00000000, DATA_MAKE_NUM(DATADIR_PEACH, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_PEACH, 0x03), 0x00000000, DATA_MAKE_NUM(DATADIR_PEACH, 0x0D), 0x00000001, DATA_MAKE_NUM(DATADIR_PEACH, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_PEACH, 0x07), 0x00000001, DATA_MAKE_NUM(DATADIR_PEACH, 0x08), 0x00000001, DATA_MAKE_NUM(DATADIR_PEACH, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_PEACH, 0x28), 0x00000000, DATA_MAKE_NUM(DATADIR_PEACH, 0x29), 0x00000000, 0x00000000, 0x00000000 }; -u32 lbl_1_data_4B8[] = { - DATA_MAKE_NUM(DATADIR_YOSHI, 0x00), 0x00000000, - DATA_MAKE_NUM(DATADIR_YOSHI, 0x02), 0x00000000, - DATA_MAKE_NUM(DATADIR_YOSHI, 0x03), 0x00000000, - DATA_MAKE_NUM(DATADIR_YOSHI, 0x0D), 0x00000001, - DATA_MAKE_NUM(DATADIR_YOSHI, 0x05), 0x00000001, - DATA_MAKE_NUM(DATADIR_YOSHI, 0x07), 0x00000001, - DATA_MAKE_NUM(DATADIR_YOSHI, 0x08), 0x00000001, - DATA_MAKE_NUM(DATADIR_YOSHI, 0x0C), 0x00000000, - DATA_MAKE_NUM(DATADIR_YOSHI, 0x28), 0x00000000, - DATA_MAKE_NUM(DATADIR_YOSHI, 0x29), 0x00000000, - 0x00000000, 0x00000000 -}; +u32 lbl_1_data_4B8[] = { DATA_MAKE_NUM(DATADIR_YOSHI, 0x00), 0x00000000, DATA_MAKE_NUM(DATADIR_YOSHI, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x03), 0x00000000, DATA_MAKE_NUM(DATADIR_YOSHI, 0x0D), 0x00000001, DATA_MAKE_NUM(DATADIR_YOSHI, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x07), 0x00000001, DATA_MAKE_NUM(DATADIR_YOSHI, 0x08), 0x00000001, DATA_MAKE_NUM(DATADIR_YOSHI, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_YOSHI, 0x28), 0x00000000, DATA_MAKE_NUM(DATADIR_YOSHI, 0x29), 0x00000000, 0x00000000, 0x00000000 }; -u32 lbl_1_data_510[] = { - DATA_MAKE_NUM(DATADIR_WARIO, 0x00), 0x00000000, - DATA_MAKE_NUM(DATADIR_WARIO, 0x02), 0x00000000, - DATA_MAKE_NUM(DATADIR_WARIO, 0x03), 0x00000000, - DATA_MAKE_NUM(DATADIR_WARIO, 0x0D), 0x00000001, - DATA_MAKE_NUM(DATADIR_WARIO, 0x05), 0x00000001, - DATA_MAKE_NUM(DATADIR_WARIO, 0x07), 0x00000001, - DATA_MAKE_NUM(DATADIR_WARIO, 0x08), 0x00000001, - DATA_MAKE_NUM(DATADIR_WARIO, 0x0C), 0x00000000, - DATA_MAKE_NUM(DATADIR_WARIO, 0x28), 0x00000000, - DATA_MAKE_NUM(DATADIR_WARIO, 0x29), 0x00000000, - 0x00000000, 0x00000000 -}; +u32 lbl_1_data_510[] = { DATA_MAKE_NUM(DATADIR_WARIO, 0x00), 0x00000000, DATA_MAKE_NUM(DATADIR_WARIO, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_WARIO, 0x03), 0x00000000, DATA_MAKE_NUM(DATADIR_WARIO, 0x0D), 0x00000001, DATA_MAKE_NUM(DATADIR_WARIO, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_WARIO, 0x07), 0x00000001, DATA_MAKE_NUM(DATADIR_WARIO, 0x08), 0x00000001, DATA_MAKE_NUM(DATADIR_WARIO, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_WARIO, 0x28), 0x00000000, DATA_MAKE_NUM(DATADIR_WARIO, 0x29), 0x00000000, 0x00000000, 0x00000000 }; -u32 lbl_1_data_568[] = { - DATA_MAKE_NUM(DATADIR_DONKEY, 0x00), 0x00000000, - DATA_MAKE_NUM(DATADIR_DONKEY, 0x02), 0x00000000, - DATA_MAKE_NUM(DATADIR_DONKEY, 0x03), 0x00000000, - DATA_MAKE_NUM(DATADIR_DONKEY, 0x0D), 0x00000001, - DATA_MAKE_NUM(DATADIR_DONKEY, 0x05), 0x00000001, - DATA_MAKE_NUM(DATADIR_DONKEY, 0x07), 0x00000001, - DATA_MAKE_NUM(DATADIR_DONKEY, 0x08), 0x00000001, - DATA_MAKE_NUM(DATADIR_DONKEY, 0x0C), 0x00000000, - DATA_MAKE_NUM(DATADIR_DONKEY, 0x28), 0x00000000, - DATA_MAKE_NUM(DATADIR_DONKEY, 0x29), 0x00000000, - 0x00000000, 0x00000000 -}; +u32 lbl_1_data_568[] = { DATA_MAKE_NUM(DATADIR_DONKEY, 0x00), 0x00000000, DATA_MAKE_NUM(DATADIR_DONKEY, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x03), 0x00000000, DATA_MAKE_NUM(DATADIR_DONKEY, 0x0D), 0x00000001, DATA_MAKE_NUM(DATADIR_DONKEY, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x07), 0x00000001, DATA_MAKE_NUM(DATADIR_DONKEY, 0x08), 0x00000001, DATA_MAKE_NUM(DATADIR_DONKEY, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_DONKEY, 0x28), 0x00000000, DATA_MAKE_NUM(DATADIR_DONKEY, 0x29), 0x00000000, 0x00000000, 0x00000000 }; -u32 lbl_1_data_5C0[] = { - DATA_MAKE_NUM(DATADIR_DAISY, 0x00), 0x00000000, - DATA_MAKE_NUM(DATADIR_DAISY, 0x02), 0x00000000, - DATA_MAKE_NUM(DATADIR_DAISY, 0x03), 0x00000000, - DATA_MAKE_NUM(DATADIR_DAISY, 0x0D), 0x00000001, - DATA_MAKE_NUM(DATADIR_DAISY, 0x05), 0x00000001, - DATA_MAKE_NUM(DATADIR_DAISY, 0x07), 0x00000001, - DATA_MAKE_NUM(DATADIR_DAISY, 0x08), 0x00000001, - DATA_MAKE_NUM(DATADIR_DAISY, 0x0C), 0x00000000, - DATA_MAKE_NUM(DATADIR_DAISY, 0x28), 0x00000000, - DATA_MAKE_NUM(DATADIR_DAISY, 0x29), 0x00000000, - 0x00000000, 0x00000000 -}; +u32 lbl_1_data_5C0[] = { DATA_MAKE_NUM(DATADIR_DAISY, 0x00), 0x00000000, DATA_MAKE_NUM(DATADIR_DAISY, 0x02), 0x00000000, + DATA_MAKE_NUM(DATADIR_DAISY, 0x03), 0x00000000, DATA_MAKE_NUM(DATADIR_DAISY, 0x0D), 0x00000001, DATA_MAKE_NUM(DATADIR_DAISY, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_DAISY, 0x07), 0x00000001, DATA_MAKE_NUM(DATADIR_DAISY, 0x08), 0x00000001, DATA_MAKE_NUM(DATADIR_DAISY, 0x0C), 0x00000000, + DATA_MAKE_NUM(DATADIR_DAISY, 0x28), 0x00000000, DATA_MAKE_NUM(DATADIR_DAISY, 0x29), 0x00000000, 0x00000000, 0x00000000 }; -u32 lbl_1_data_618[] = { - DATA_MAKE_NUM(DATADIR_WALUIGI, 0x00), 0x00000000, - DATA_MAKE_NUM(DATADIR_WALUIGI, 0x02), 0x00000000, - DATA_MAKE_NUM(DATADIR_WALUIGI, 0x03), 0x00000000, - DATA_MAKE_NUM(DATADIR_WALUIGI, 0x0D), 0x00000001, - DATA_MAKE_NUM(DATADIR_WALUIGI, 0x05), 0x00000001, - DATA_MAKE_NUM(DATADIR_WALUIGI, 0x07), 0x00000001, - DATA_MAKE_NUM(DATADIR_WALUIGI, 0x08), 0x00000001, - DATA_MAKE_NUM(DATADIR_WALUIGI, 0x0C), 0x00000000, - DATA_MAKE_NUM(DATADIR_WALUIGI, 0x28), 0x00000000, - DATA_MAKE_NUM(DATADIR_WALUIGI, 0x29), 0x00000000, - 0x00000000, 0x00000000 -}; +u32 lbl_1_data_618[] + = { DATA_MAKE_NUM(DATADIR_WALUIGI, 0x00), 0x00000000, DATA_MAKE_NUM(DATADIR_WALUIGI, 0x02), 0x00000000, DATA_MAKE_NUM(DATADIR_WALUIGI, 0x03), + 0x00000000, DATA_MAKE_NUM(DATADIR_WALUIGI, 0x0D), 0x00000001, DATA_MAKE_NUM(DATADIR_WALUIGI, 0x05), 0x00000001, + DATA_MAKE_NUM(DATADIR_WALUIGI, 0x07), 0x00000001, DATA_MAKE_NUM(DATADIR_WALUIGI, 0x08), 0x00000001, DATA_MAKE_NUM(DATADIR_WALUIGI, 0x0C), + 0x00000000, DATA_MAKE_NUM(DATADIR_WALUIGI, 0x28), 0x00000000, DATA_MAKE_NUM(DATADIR_WALUIGI, 0x29), 0x00000000, 0x00000000, 0x00000000 }; -u32 *lbl_1_data_670[] = { - lbl_1_data_3B0, - lbl_1_data_408, - lbl_1_data_460, - lbl_1_data_4B8, - lbl_1_data_510, - lbl_1_data_568, - lbl_1_data_5C0, - lbl_1_data_618 -}; +u32 *lbl_1_data_670[] + = { lbl_1_data_3B0, lbl_1_data_408, lbl_1_data_460, lbl_1_data_4B8, lbl_1_data_510, lbl_1_data_568, lbl_1_data_5C0, lbl_1_data_618 }; void fn_1_69C8(s16 arg0, s16 arg1, s16 arg2); void fn_1_5DA8(void) { - u32 *temp_r31; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - - s32 temp_r24 = 0; - s16 sp40[3][32]; - Vec sp34; - - Vec sp28 = { 0, 0, 0 }; - Vec sp1C = { 0, 1, 0 }; - s16 sp16[3]; - s16 sp10[3]; - float spC; - s16 sp8 = 0; - Hu3DGLightCreate(0, 500, 1000, 0, -0.5, -1, 255, 255, 255); - temp_r28 = GWPlayerCfg[0].character; - temp_r31 = lbl_1_data_670[temp_r28]; - sp16[0] = Hu3DModelCreateFile(temp_r31[0]); - sp16[1] = Hu3DModelCreateFile(temp_r31[2]); - sp16[2] = Hu3DModelCreateFile(temp_r31[4]); - HuDataDirClose(temp_r31[0]); - HuDataDirClose(temp_r31[2]); - HuDataDirClose(temp_r31[4]); - temp_r27 = 0; - temp_r29 = 0; - while(1) { - if(temp_r31[(temp_r29*2)+8] == 0) { - if(temp_r27 == 0) { - temp_r27 = temp_r29; - } - break; - } - if(temp_r31[(temp_r29*2)+8] == 0xFFFFFFFF) { - temp_r27 = temp_r29; - } else { - sp40[0][temp_r29] = Hu3DJointMotionFile(sp16[0], temp_r31[(temp_r29*2)+8]); - sp40[1][temp_r29] = Hu3DJointMotionFile(sp16[1], temp_r31[(temp_r29*2)+8]); - sp40[2][temp_r29] = Hu3DJointMotionFile(sp16[2], temp_r31[(temp_r29*2)+8]); - } - temp_r29++; - } - sp10[0] = Hu3DJointMotionFile(sp16[0], temp_r31[6]); - sp10[1] = Hu3DJointMotionFile(sp16[1], temp_r31[6]); - sp10[2] = Hu3DJointMotionFile(sp16[2], temp_r31[6]); - temp_r26 = 0; - temp_r30 = 0; - Hu3DMotionSet(sp16[0], sp40[0][temp_r30]); - Hu3DModelAttrSet(sp16[0], 0x40000001); - Hu3DMotionSet(sp16[1], sp40[1][temp_r30]); - Hu3DModelAttrSet(sp16[1], 0x40000001); - Hu3DMotionSet(sp16[2], sp40[2][temp_r30]); - Hu3DModelAttrSet(sp16[2], 0x40000001); - Hu3DModelAttrSet(sp16[1], 0x1); - Hu3DModelAttrSet(sp16[2], 0x1); - while(1) { - temp_r25 = 0; - if(HuPadBtnDown[0] & PAD_BUTTON_X) { - temp_r30++; - if(temp_r30 >= temp_r27) { - temp_r30 = 0; - } - Hu3DMotionSet(sp16[0], sp40[0][temp_r30]); - Hu3DMotionSet(sp16[1], sp40[1][temp_r30]); - Hu3DMotionSet(sp16[2], sp40[2][temp_r30]); - if(temp_r31[(temp_r30*2)+9] != 0) { - Hu3DModelAttrSet(sp16[0], 0x40000001); - Hu3DModelAttrSet(sp16[1], 0x40000001); - Hu3DModelAttrSet(sp16[2], 0x40000001); - } else { - Hu3DModelAttrReset(sp16[0], 0x40000001); - Hu3DModelAttrReset(sp16[1], 0x40000001); - Hu3DModelAttrReset(sp16[2], 0x40000001); - } - fn_1_69C8(temp_r28, sp16[0], 0); - fn_1_69C8(temp_r28, sp16[1], 1); - fn_1_69C8(temp_r28, sp16[2], 2); - temp_r25 = 1; - } - if(HuPadBtnDown[0] & PAD_BUTTON_Y) { - temp_r30--; - if(temp_r30 < 0) { - temp_r30 = temp_r27-1; - } - Hu3DMotionSet(sp16[0], sp40[0][temp_r30]); - Hu3DMotionSet(sp16[1], sp40[1][temp_r30]); - Hu3DMotionSet(sp16[2], sp40[2][temp_r30]); - if(temp_r31[(temp_r30*2)+9] != 0) { - Hu3DModelAttrSet(sp16[0], 0x40000001); - Hu3DModelAttrSet(sp16[1], 0x40000001); - Hu3DModelAttrSet(sp16[2], 0x40000001); - } else { - Hu3DModelAttrReset(sp16[0], 0x40000001); - Hu3DModelAttrReset(sp16[1], 0x40000001); - Hu3DModelAttrReset(sp16[2], 0x40000001); - } - fn_1_69C8(temp_r28, sp16[0], 0); - fn_1_69C8(temp_r28, sp16[1], 1); - fn_1_69C8(temp_r28, sp16[2], 2); - temp_r25 = 1; - } - if(temp_r31[(temp_r30*2)+9] == 0) { - if(HuPadBtn[0] & PAD_BUTTON_A) { - Hu3DModelAttrSet(sp16[0], 0x40000001); - Hu3DModelAttrSet(sp16[1], 0x40000001); - Hu3DModelAttrSet(sp16[2], 0x40000001); - temp_r25 = 1; - } else { - if(temp_r30 != 3 && temp_r30 != 2) { - Hu3DModelAttrReset(sp16[0], 0x40000001); - Hu3DModelAttrReset(sp16[1], 0x40000001); - Hu3DModelAttrReset(sp16[2], 0x40000001); - } - } - } - if(temp_r25 != 0) { - if(temp_r30 == 3) { - Hu3DMotionSet(sp16[0], sp40[0][temp_r30]); - Hu3DMotionSet(sp16[1], sp40[1][temp_r30]); - Hu3DMotionSet(sp16[2], sp40[2][temp_r30]); - Hu3DModelAttrReset(sp16[0], 0x40000001); - Hu3DModelAttrReset(sp16[1], 0x40000001); - Hu3DModelAttrReset(sp16[2], 0x40000001); - for(temp_r29=0; temp_r29<=30; temp_r29++) { - Hu3DModelPosSet(sp16[0], 0, sind(temp_r29*6.0f)*150, 0); - Hu3DModelPosSet(sp16[1], 0, sind(temp_r29*6.0f)*150, 0); - Hu3DModelPosSet(sp16[2], 0, sind(temp_r29*6.0f)*150, 0); - if(temp_r29 == 25) { - Hu3DMotionSet(sp16[0], sp10[0]); - Hu3DMotionSet(sp16[1], sp10[1]); - Hu3DMotionSet(sp16[2], sp10[2]); - } - HuPrcVSleep(); - } - while(!Hu3DMotionEndCheck(sp16[0])) { - HuPrcVSleep(); - } - fn_1_69C8(temp_r28, sp16[0], 0); - fn_1_69C8(temp_r28, sp16[1], 1); - fn_1_69C8(temp_r28, sp16[2], 2); - Hu3DMotionShiftSet(sp16[0], sp40[0][0], 0, 16, HU3D_MOTATTR_LOOP); - Hu3DMotionShiftSet(sp16[1], sp40[1][0], 0, 16, HU3D_MOTATTR_LOOP); - Hu3DMotionShiftSet(sp16[2], sp40[2][0], 0, 16, HU3D_MOTATTR_LOOP); - } - temp_r24 = 0; - } - sp34.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x))); - sp34.y = (Center.y + (CZoom * -sind(CRot.x))); - sp34.z = (Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x)))); - - spC = VECMag(&sp34); - if(HuPadBtnDown[0] & PAD_BUTTON_B) { - temp_r26++; - if(temp_r26 >= 3) { - temp_r26 = 0; - } - } - Hu3DModelAttrSet(sp16[0], 1); - Hu3DModelAttrSet(sp16[1], 1); - Hu3DModelAttrSet(sp16[2], 1); - switch(temp_r26) { - case 0: - Hu3DModelAttrReset(sp16[0], 1); - break; - - case 1: - Hu3DModelAttrReset(sp16[1], 1); - break; - - case 2: - Hu3DModelAttrReset(sp16[2], 1); - break; - } - HuPrcVSleep(); - } + u32 *temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 temp_r28; + s16 temp_r27; + s16 temp_r26; + s16 temp_r25; + + s32 temp_r24 = 0; + s16 sp40[3][32]; + Vec sp34; + + Vec sp28 = { 0, 0, 0 }; + Vec sp1C = { 0, 1, 0 }; + s16 sp16[3]; + s16 sp10[3]; + float spC; + s16 sp8 = 0; + Hu3DGLightCreate(0, 500, 1000, 0, -0.5, -1, 255, 255, 255); + temp_r28 = GWPlayerCfg[0].character; + temp_r31 = lbl_1_data_670[temp_r28]; + sp16[0] = Hu3DModelCreateFile(temp_r31[0]); + sp16[1] = Hu3DModelCreateFile(temp_r31[2]); + sp16[2] = Hu3DModelCreateFile(temp_r31[4]); + HuDataDirClose(temp_r31[0]); + HuDataDirClose(temp_r31[2]); + HuDataDirClose(temp_r31[4]); + temp_r27 = 0; + temp_r29 = 0; + while (1) { + if (temp_r31[(temp_r29 * 2) + 8] == 0) { + if (temp_r27 == 0) { + temp_r27 = temp_r29; + } + break; + } + if (temp_r31[(temp_r29 * 2) + 8] == 0xFFFFFFFF) { + temp_r27 = temp_r29; + } + else { + sp40[0][temp_r29] = Hu3DJointMotionFile(sp16[0], temp_r31[(temp_r29 * 2) + 8]); + sp40[1][temp_r29] = Hu3DJointMotionFile(sp16[1], temp_r31[(temp_r29 * 2) + 8]); + sp40[2][temp_r29] = Hu3DJointMotionFile(sp16[2], temp_r31[(temp_r29 * 2) + 8]); + } + temp_r29++; + } + sp10[0] = Hu3DJointMotionFile(sp16[0], temp_r31[6]); + sp10[1] = Hu3DJointMotionFile(sp16[1], temp_r31[6]); + sp10[2] = Hu3DJointMotionFile(sp16[2], temp_r31[6]); + temp_r26 = 0; + temp_r30 = 0; + Hu3DMotionSet(sp16[0], sp40[0][temp_r30]); + Hu3DModelAttrSet(sp16[0], HU3D_MOTATTR_LOOP); + Hu3DMotionSet(sp16[1], sp40[1][temp_r30]); + Hu3DModelAttrSet(sp16[1], HU3D_MOTATTR_LOOP); + Hu3DMotionSet(sp16[2], sp40[2][temp_r30]); + Hu3DModelAttrSet(sp16[2], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(sp16[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(sp16[2], HU3D_ATTR_DISPOFF); + while (1) { + temp_r25 = 0; + if (HuPadBtnDown[0] & PAD_BUTTON_X) { + temp_r30++; + if (temp_r30 >= temp_r27) { + temp_r30 = 0; + } + Hu3DMotionSet(sp16[0], sp40[0][temp_r30]); + Hu3DMotionSet(sp16[1], sp40[1][temp_r30]); + Hu3DMotionSet(sp16[2], sp40[2][temp_r30]); + if (temp_r31[(temp_r30 * 2) + 9] != 0) { + Hu3DModelAttrSet(sp16[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(sp16[1], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(sp16[2], HU3D_MOTATTR_LOOP); + } + else { + Hu3DModelAttrReset(sp16[0], 0x40000001); + Hu3DModelAttrReset(sp16[1], 0x40000001); + Hu3DModelAttrReset(sp16[2], 0x40000001); + } + fn_1_69C8(temp_r28, sp16[0], 0); + fn_1_69C8(temp_r28, sp16[1], 1); + fn_1_69C8(temp_r28, sp16[2], 2); + temp_r25 = 1; + } + if (HuPadBtnDown[0] & PAD_BUTTON_Y) { + temp_r30--; + if (temp_r30 < 0) { + temp_r30 = temp_r27 - 1; + } + Hu3DMotionSet(sp16[0], sp40[0][temp_r30]); + Hu3DMotionSet(sp16[1], sp40[1][temp_r30]); + Hu3DMotionSet(sp16[2], sp40[2][temp_r30]); + if (temp_r31[(temp_r30 * 2) + 9] != 0) { + Hu3DModelAttrSet(sp16[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(sp16[1], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(sp16[2], HU3D_MOTATTR_LOOP); + } + else { + Hu3DModelAttrReset(sp16[0], 0x40000001); + Hu3DModelAttrReset(sp16[1], 0x40000001); + Hu3DModelAttrReset(sp16[2], 0x40000001); + } + fn_1_69C8(temp_r28, sp16[0], 0); + fn_1_69C8(temp_r28, sp16[1], 1); + fn_1_69C8(temp_r28, sp16[2], 2); + temp_r25 = 1; + } + if (temp_r31[(temp_r30 * 2) + 9] == 0) { + if (HuPadBtn[0] & PAD_BUTTON_A) { + Hu3DModelAttrSet(sp16[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(sp16[1], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(sp16[2], HU3D_MOTATTR_LOOP); + temp_r25 = 1; + } + else { + if (temp_r30 != 3 && temp_r30 != 2) { + Hu3DModelAttrReset(sp16[0], 0x40000001); + Hu3DModelAttrReset(sp16[1], 0x40000001); + Hu3DModelAttrReset(sp16[2], 0x40000001); + } + } + } + if (temp_r25 != 0) { + if (temp_r30 == 3) { + Hu3DMotionSet(sp16[0], sp40[0][temp_r30]); + Hu3DMotionSet(sp16[1], sp40[1][temp_r30]); + Hu3DMotionSet(sp16[2], sp40[2][temp_r30]); + Hu3DModelAttrReset(sp16[0], 0x40000001); + Hu3DModelAttrReset(sp16[1], 0x40000001); + Hu3DModelAttrReset(sp16[2], 0x40000001); + for (temp_r29 = 0; temp_r29 <= 30; temp_r29++) { + Hu3DModelPosSet(sp16[0], 0, sind(temp_r29 * 6.0f) * 150, 0); + Hu3DModelPosSet(sp16[1], 0, sind(temp_r29 * 6.0f) * 150, 0); + Hu3DModelPosSet(sp16[2], 0, sind(temp_r29 * 6.0f) * 150, 0); + if (temp_r29 == 25) { + Hu3DMotionSet(sp16[0], sp10[0]); + Hu3DMotionSet(sp16[1], sp10[1]); + Hu3DMotionSet(sp16[2], sp10[2]); + } + HuPrcVSleep(); + } + while (!Hu3DMotionEndCheck(sp16[0])) { + HuPrcVSleep(); + } + fn_1_69C8(temp_r28, sp16[0], 0); + fn_1_69C8(temp_r28, sp16[1], 1); + fn_1_69C8(temp_r28, sp16[2], 2); + Hu3DMotionShiftSet(sp16[0], sp40[0][0], 0, 16, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSet(sp16[1], sp40[1][0], 0, 16, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSet(sp16[2], sp40[2][0], 0, 16, HU3D_MOTATTR_LOOP); + } + temp_r24 = 0; + } + sp34.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x))); + sp34.y = (Center.y + (CZoom * -sind(CRot.x))); + sp34.z = (Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x)))); + + spC = VECMag(&sp34); + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + temp_r26++; + if (temp_r26 >= 3) { + temp_r26 = 0; + } + } + Hu3DModelAttrSet(sp16[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(sp16[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(sp16[2], HU3D_ATTR_DISPOFF); + switch (temp_r26) { + case 0: + Hu3DModelAttrReset(sp16[0], HU3D_ATTR_DISPOFF); + break; + + case 1: + Hu3DModelAttrReset(sp16[1], HU3D_ATTR_DISPOFF); + break; + + case 2: + Hu3DModelAttrReset(sp16[2], HU3D_ATTR_DISPOFF); + break; + } + HuPrcVSleep(); + } } char *lbl_1_data_6F4[] = { - "s3_mario_eyes_1", - "mario_eyes_2", - "mario_eyes_2", - "S3c001m0_eye", - "S3c001m1_eye", - "c001m3_eye", - "GC-eyes", - "s3tc_GC-eyes_2", - "s3tc_GC-eyes_2", - "S3c003m1", - "S3c003m1", - "S3c003m1", - "GC-eyes", - "s3tc_GC-eyes_2", - "s3tc_GC-eyes_2", - "GC-eyes", - "s3tc_GC-eyes_2", - "s3tc_GC-eyes_2", - "GC-eyes", - "s3tc_GC-eyes_2", - "s3tc_GC-eyes_2", - "GC-eyes", - "s3tc_GC-eyes_2", - "s3tc_GC-eyes_2", + "s3_mario_eyes_1", + "mario_eyes_2", + "mario_eyes_2", + "S3c001m0_eye", + "S3c001m1_eye", + "c001m3_eye", + "GC-eyes", + "s3tc_GC-eyes_2", + "s3tc_GC-eyes_2", + "S3c003m1", + "S3c003m1", + "S3c003m1", + "GC-eyes", + "s3tc_GC-eyes_2", + "s3tc_GC-eyes_2", + "GC-eyes", + "s3tc_GC-eyes_2", + "s3tc_GC-eyes_2", + "GC-eyes", + "s3tc_GC-eyes_2", + "s3tc_GC-eyes_2", + "GC-eyes", + "s3tc_GC-eyes_2", + "s3tc_GC-eyes_2", }; void fn_1_69C8(s16 arg0, s16 arg1, s16 arg2) { - HsfdrawStruct01 *temp_r31; - HsfAttribute *temp_r30; - ModelData *temp_r29; - s16 temp_r28; - char *temp_r27; - temp_r29 = &Hu3DData[arg1]; - temp_r30 = temp_r29->hsfData->attribute; - temp_r27 = MakeObjectName(lbl_1_data_6F4[arg2+(arg0*3)]); - for(temp_r28=0; temp_r28hsfData->attributeCnt; temp_r28++, temp_r30++) { - if(temp_r30->bitmap->name[0] == temp_r27[0] && strcmp(temp_r30->bitmap->name, temp_r27) == 0 && temp_r30->unk04) { - temp_r31 = temp_r30->unk04; - temp_r31->unk08 = temp_r31->unk0C = temp_r31->unk10 = 0; - temp_r31->unk14 = temp_r31->unk18 = temp_r31->unk1C = 0; - } - } + HsfdrawStruct01 *temp_r31; + HsfAttribute *temp_r30; + ModelData *temp_r29; + s16 temp_r28; + char *temp_r27; + temp_r29 = &Hu3DData[arg1]; + temp_r30 = temp_r29->hsfData->attribute; + temp_r27 = MakeObjectName(lbl_1_data_6F4[arg2 + (arg0 * 3)]); + for (temp_r28 = 0; temp_r28 < temp_r29->hsfData->attributeCnt; temp_r28++, temp_r30++) { + if (temp_r30->bitmap->name[0] == temp_r27[0] && strcmp(temp_r30->bitmap->name, temp_r27) == 0 && temp_r30->unk04) { + temp_r31 = temp_r30->unk04; + temp_r31->unk08 = temp_r31->unk0C = temp_r31->unk10 = 0; + temp_r31->unk14 = temp_r31->unk18 = temp_r31->unk1C = 0; + } + } } s32 lbl_1_data_754 = 20; void fn_1_6AE0(ModelData *model, Mtx mtx) { - s32 temp_r31; - u8 temp_r30, temp_r29, temp_r28; - s32 sp84 = 0; - GXClearVtxDesc(); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGB, GX_RGB8, 0); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); - GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_RASC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - GXSetNumTexGens(0); - GXSetNumTevStages(1); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); - GXLoadPosMtxImm(mtx, GX_PNMTX0); - GXBegin(GX_LINES, GX_VTXFMT0, (lbl_1_data_754+1)*4); - for(temp_r31=0; temp_r31<=lbl_1_data_754; temp_r31++) { - temp_r30 = temp_r29 = temp_r28 = 255; - GXPosition3f32((temp_r31*100)-((lbl_1_data_754/2)*100), 0, (-(lbl_1_data_754/2))*100); - GXColor3u8(temp_r30, temp_r29, temp_r28); - GXPosition3f32((temp_r31*100)-((lbl_1_data_754/2)*100), 0, (lbl_1_data_754/2)*100); - GXColor3u8(temp_r30, temp_r29, temp_r28); - GXPosition3f32(-(lbl_1_data_754/2)*100, 0, (temp_r31*100)-((lbl_1_data_754/2)*100)); - GXColor3u8(temp_r30, temp_r29, temp_r28); - GXPosition3f32((lbl_1_data_754/2)*100, 0, (temp_r31*100)-((lbl_1_data_754/2)*100)); - GXColor3u8(temp_r30, temp_r29, temp_r28); - } - GXBegin(GX_LINES, GX_VTXFMT0, (lbl_1_data_754+1)*4); - for(temp_r31=0; temp_r31<=lbl_1_data_754; temp_r31++) { - temp_r30 = temp_r29 = temp_r28 = 255; - GXPosition3f32((temp_r31*100)-((lbl_1_data_754/2)*100), lbl_1_data_754*100, (-(lbl_1_data_754/2))*100); - GXColor3u8(temp_r30, temp_r29, temp_r28); - GXPosition3f32((temp_r31*100)-((lbl_1_data_754/2)*100), 0, -(lbl_1_data_754/2)*100); - GXColor3u8(temp_r30, temp_r29, temp_r28); - GXPosition3f32(-(lbl_1_data_754/2)*100, temp_r31*100, -(lbl_1_data_754/2)*100); - GXColor3u8(temp_r30, temp_r29, temp_r28); - GXPosition3f32((lbl_1_data_754/2)*100, temp_r31*100, -(lbl_1_data_754/2)*100); - GXColor3u8(temp_r30, temp_r29, temp_r28); - } - GXBegin(GX_LINES, GX_VTXFMT0, (lbl_1_data_754+1)*4); - for(temp_r31=0; temp_r31<=lbl_1_data_754; temp_r31++) { - temp_r30 = temp_r29 = temp_r28 = 255; - GXPosition3f32((temp_r31*100)-((lbl_1_data_754/2)*100), lbl_1_data_754*100, (lbl_1_data_754/2)*100); - GXColor3u8(temp_r30, temp_r29, temp_r28); - GXPosition3f32((temp_r31*100)-((lbl_1_data_754/2)*100), 0, (lbl_1_data_754/2)*100); - GXColor3u8(temp_r30, temp_r29, temp_r28); - GXPosition3f32(-(lbl_1_data_754/2)*100, temp_r31*100, (lbl_1_data_754/2)*100); - GXColor3u8(temp_r30, temp_r29, temp_r28); - GXPosition3f32((lbl_1_data_754/2)*100, temp_r31*100, (lbl_1_data_754/2)*100); - GXColor3u8(temp_r30, temp_r29, temp_r28); - } - GXBegin(GX_LINES, GX_VTXFMT0, (lbl_1_data_754+1)*4); - for(temp_r31=0; temp_r31<=lbl_1_data_754; temp_r31++) { - temp_r30 = temp_r29 = temp_r28 = 255; - GXPosition3f32((lbl_1_data_754/2)*100, lbl_1_data_754*100, (temp_r31*100)-((lbl_1_data_754/2)*100)); - GXColor3u8(temp_r30, temp_r29, temp_r28); - GXPosition3f32((lbl_1_data_754/2)*100, 0, (temp_r31*100)-((lbl_1_data_754/2)*100)); - GXColor3u8(temp_r30, temp_r29, temp_r28); - GXPosition3f32((lbl_1_data_754/2)*100, temp_r31*100, -(lbl_1_data_754/2)*100); - GXColor3u8(temp_r30, temp_r29, temp_r28); - GXPosition3f32((lbl_1_data_754/2)*100, temp_r31*100, (lbl_1_data_754/2)*100); - GXColor3u8(temp_r30, temp_r29, temp_r28); - } - GXBegin(GX_LINES, GX_VTXFMT0, (lbl_1_data_754+1)*4); - for(temp_r31=0; temp_r31<=lbl_1_data_754; temp_r31++) { - temp_r30 = temp_r29 = temp_r28 = 255; - GXPosition3f32(-(lbl_1_data_754/2)*100, lbl_1_data_754*100, (temp_r31*100)-((lbl_1_data_754/2)*100)); - GXColor3u8(temp_r30, temp_r29, temp_r28); - GXPosition3f32(-(lbl_1_data_754/2)*100, 0, (temp_r31*100)-((lbl_1_data_754/2)*100)); - GXColor3u8(temp_r30, temp_r29, temp_r28); - GXPosition3f32(-(lbl_1_data_754/2)*100, temp_r31*100, -(lbl_1_data_754/2)*100); - GXColor3u8(temp_r30, temp_r29, temp_r28); - GXPosition3f32(-(lbl_1_data_754/2)*100, temp_r31*100, (lbl_1_data_754/2)*100); - GXColor3u8(temp_r30, temp_r29, temp_r28); - } + s32 temp_r31; + u8 temp_r30, temp_r29, temp_r28; + s32 sp84 = 0; + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGB, GX_RGB8, 0); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_RASC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXLoadPosMtxImm(mtx, GX_PNMTX0); + GXBegin(GX_LINES, GX_VTXFMT0, (lbl_1_data_754 + 1) * 4); + for (temp_r31 = 0; temp_r31 <= lbl_1_data_754; temp_r31++) { + temp_r30 = temp_r29 = temp_r28 = 255; + GXPosition3f32((temp_r31 * 100) - ((lbl_1_data_754 / 2) * 100), 0, (-(lbl_1_data_754 / 2)) * 100); + GXColor3u8(temp_r30, temp_r29, temp_r28); + GXPosition3f32((temp_r31 * 100) - ((lbl_1_data_754 / 2) * 100), 0, (lbl_1_data_754 / 2) * 100); + GXColor3u8(temp_r30, temp_r29, temp_r28); + GXPosition3f32(-(lbl_1_data_754 / 2) * 100, 0, (temp_r31 * 100) - ((lbl_1_data_754 / 2) * 100)); + GXColor3u8(temp_r30, temp_r29, temp_r28); + GXPosition3f32((lbl_1_data_754 / 2) * 100, 0, (temp_r31 * 100) - ((lbl_1_data_754 / 2) * 100)); + GXColor3u8(temp_r30, temp_r29, temp_r28); + } + GXBegin(GX_LINES, GX_VTXFMT0, (lbl_1_data_754 + 1) * 4); + for (temp_r31 = 0; temp_r31 <= lbl_1_data_754; temp_r31++) { + temp_r30 = temp_r29 = temp_r28 = 255; + GXPosition3f32((temp_r31 * 100) - ((lbl_1_data_754 / 2) * 100), lbl_1_data_754 * 100, (-(lbl_1_data_754 / 2)) * 100); + GXColor3u8(temp_r30, temp_r29, temp_r28); + GXPosition3f32((temp_r31 * 100) - ((lbl_1_data_754 / 2) * 100), 0, -(lbl_1_data_754 / 2) * 100); + GXColor3u8(temp_r30, temp_r29, temp_r28); + GXPosition3f32(-(lbl_1_data_754 / 2) * 100, temp_r31 * 100, -(lbl_1_data_754 / 2) * 100); + GXColor3u8(temp_r30, temp_r29, temp_r28); + GXPosition3f32((lbl_1_data_754 / 2) * 100, temp_r31 * 100, -(lbl_1_data_754 / 2) * 100); + GXColor3u8(temp_r30, temp_r29, temp_r28); + } + GXBegin(GX_LINES, GX_VTXFMT0, (lbl_1_data_754 + 1) * 4); + for (temp_r31 = 0; temp_r31 <= lbl_1_data_754; temp_r31++) { + temp_r30 = temp_r29 = temp_r28 = 255; + GXPosition3f32((temp_r31 * 100) - ((lbl_1_data_754 / 2) * 100), lbl_1_data_754 * 100, (lbl_1_data_754 / 2) * 100); + GXColor3u8(temp_r30, temp_r29, temp_r28); + GXPosition3f32((temp_r31 * 100) - ((lbl_1_data_754 / 2) * 100), 0, (lbl_1_data_754 / 2) * 100); + GXColor3u8(temp_r30, temp_r29, temp_r28); + GXPosition3f32(-(lbl_1_data_754 / 2) * 100, temp_r31 * 100, (lbl_1_data_754 / 2) * 100); + GXColor3u8(temp_r30, temp_r29, temp_r28); + GXPosition3f32((lbl_1_data_754 / 2) * 100, temp_r31 * 100, (lbl_1_data_754 / 2) * 100); + GXColor3u8(temp_r30, temp_r29, temp_r28); + } + GXBegin(GX_LINES, GX_VTXFMT0, (lbl_1_data_754 + 1) * 4); + for (temp_r31 = 0; temp_r31 <= lbl_1_data_754; temp_r31++) { + temp_r30 = temp_r29 = temp_r28 = 255; + GXPosition3f32((lbl_1_data_754 / 2) * 100, lbl_1_data_754 * 100, (temp_r31 * 100) - ((lbl_1_data_754 / 2) * 100)); + GXColor3u8(temp_r30, temp_r29, temp_r28); + GXPosition3f32((lbl_1_data_754 / 2) * 100, 0, (temp_r31 * 100) - ((lbl_1_data_754 / 2) * 100)); + GXColor3u8(temp_r30, temp_r29, temp_r28); + GXPosition3f32((lbl_1_data_754 / 2) * 100, temp_r31 * 100, -(lbl_1_data_754 / 2) * 100); + GXColor3u8(temp_r30, temp_r29, temp_r28); + GXPosition3f32((lbl_1_data_754 / 2) * 100, temp_r31 * 100, (lbl_1_data_754 / 2) * 100); + GXColor3u8(temp_r30, temp_r29, temp_r28); + } + GXBegin(GX_LINES, GX_VTXFMT0, (lbl_1_data_754 + 1) * 4); + for (temp_r31 = 0; temp_r31 <= lbl_1_data_754; temp_r31++) { + temp_r30 = temp_r29 = temp_r28 = 255; + GXPosition3f32(-(lbl_1_data_754 / 2) * 100, lbl_1_data_754 * 100, (temp_r31 * 100) - ((lbl_1_data_754 / 2) * 100)); + GXColor3u8(temp_r30, temp_r29, temp_r28); + GXPosition3f32(-(lbl_1_data_754 / 2) * 100, 0, (temp_r31 * 100) - ((lbl_1_data_754 / 2) * 100)); + GXColor3u8(temp_r30, temp_r29, temp_r28); + GXPosition3f32(-(lbl_1_data_754 / 2) * 100, temp_r31 * 100, -(lbl_1_data_754 / 2) * 100); + GXColor3u8(temp_r30, temp_r29, temp_r28); + GXPosition3f32(-(lbl_1_data_754 / 2) * 100, temp_r31 * 100, (lbl_1_data_754 / 2) * 100); + GXColor3u8(temp_r30, temp_r29, temp_r28); + } } -s16 lbl_1_data_758[] = { - 1, - 3, - 2, - 13, - 14, - 15, - 16, - 68, - -1 -}; +s16 lbl_1_data_758[] = { 1, 3, 2, 13, 14, 15, 16, 68, -1 }; -s16 lbl_1_data_76A[] = { - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - -1 -}; +s16 lbl_1_data_76A[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1 }; void fn_1_814C(void) { - s16 temp_r31 = 0; - s16 temp_r30 = 0; - s16 temp_r29 = 0; - s16 temp_r28; - Vec sp8 = { 0, 0, 0 }; - while(1) { - lbl_1_bss_A14 = HuAudFXEmiterPlay(1282, &sp8); - HuPrcSleep(60); - if(HuPadBtnDown[1] & PAD_BUTTON_A) { - HuAudSeqFadeOut(temp_r28, 60); - temp_r28 = HuAudSeqPlay(lbl_1_data_758[temp_r31]); - temp_r31++; - if(lbl_1_data_758[temp_r31] == -1) { - temp_r31 = 0; - } - temp_r29 = 30; - } - if(HuPadBtnDown[1] & PAD_BUTTON_B) { - HuAudFXPlay(lbl_1_data_76A[temp_r30]); - temp_r30++; - if(lbl_1_data_76A[temp_r30] == -1) { - temp_r30 = 0; - } - temp_r29 = 30; - } - if(temp_r29) { - temp_r29--; - print8(16, 430, 2.0f, "MusicNo:%d SENo:%d", temp_r31, temp_r30); - } - HuPrcVSleep(); - } + s16 temp_r31 = 0; + s16 temp_r30 = 0; + s16 temp_r29 = 0; + s16 temp_r28; + Vec sp8 = { 0, 0, 0 }; + while (1) { + lbl_1_bss_A14 = HuAudFXEmiterPlay(1282, &sp8); + HuPrcSleep(60); + if (HuPadBtnDown[1] & PAD_BUTTON_A) { + HuAudSeqFadeOut(temp_r28, 60); + temp_r28 = HuAudSeqPlay(lbl_1_data_758[temp_r31]); + temp_r31++; + if (lbl_1_data_758[temp_r31] == -1) { + temp_r31 = 0; + } + temp_r29 = 30; + } + if (HuPadBtnDown[1] & PAD_BUTTON_B) { + HuAudFXPlay(lbl_1_data_76A[temp_r30]); + temp_r30++; + if (lbl_1_data_76A[temp_r30] == -1) { + temp_r30 = 0; + } + temp_r29 = 30; + } + if (temp_r29) { + temp_r29--; + print8(16, 430, 2.0f, "MusicNo:%d SENo:%d", temp_r31, temp_r30); + } + HuPrcVSleep(); + } } s16 lbl_1_data_7AC = -1; u32 fn_1_82C8(void) { - s16 temp_r31; - temp_r31 = HuPadBtn[0]; - if(lbl_1_bss_A08) { - lbl_1_bss_A08--; - if(!temp_r31) { - lbl_1_bss_A08 = 0; - } else { - temp_r31 = 0; - } - } else if(temp_r31) { - if(lbl_1_data_7AC == temp_r31) { - lbl_1_bss_A08 = 3; - } else { - lbl_1_bss_A08 = 20; - } - lbl_1_data_7AC = temp_r31; - } else { - lbl_1_data_7AC = 0; - } - return temp_r31; + s16 temp_r31; + temp_r31 = HuPadBtn[0]; + if (lbl_1_bss_A08) { + lbl_1_bss_A08--; + if (!temp_r31) { + lbl_1_bss_A08 = 0; + } + else { + temp_r31 = 0; + } + } + else if (temp_r31) { + if (lbl_1_data_7AC == temp_r31) { + lbl_1_bss_A08 = 3; + } + else { + lbl_1_bss_A08 = 20; + } + lbl_1_data_7AC = temp_r31; + } + else { + lbl_1_data_7AC = 0; + } + return temp_r31; } void fn_1_83B4(void) { - u32 temp_r29; - Process *temp_r28; - temp_r28 = HuPrcCurrentGet(); - HuPrcSetStat(temp_r28, 0xC); - while(1) { - temp_r29 = fn_1_82C8(); - if(HuPadBtn[0] & PAD_BUTTON_RIGHT) { - while(1) { - temp_r29 = fn_1_82C8(); - if(HuPadBtn[0] & PAD_BUTTON_LEFT) { - break; - } - if(!temp_r29) { - HuPrcAllPause(1); - Hu3DPauseSet(1); - } else { - HuPrcAllPause(0); - Hu3DPauseSet(0); - } - HuPrcVSleep(); - } - HuPrcAllPause(0); - Hu3DPauseSet(0); - } - if(temp_r29 & PAD_BUTTON_UP) { - if(lbl_1_bss_A0C < 120.0f) { - lbl_1_bss_A0C++; - } - } - if(temp_r29 & PAD_BUTTON_DOWN) { - if(lbl_1_bss_A0C > 5.0f) { - lbl_1_bss_A0C--; - } - } - HuPrcVSleep(); - } + u32 temp_r29; + Process *temp_r28; + temp_r28 = HuPrcCurrentGet(); + HuPrcSetStat(temp_r28, 0xC); + while (1) { + temp_r29 = fn_1_82C8(); + if (HuPadBtn[0] & PAD_BUTTON_RIGHT) { + while (1) { + temp_r29 = fn_1_82C8(); + if (HuPadBtn[0] & PAD_BUTTON_LEFT) { + break; + } + if (!temp_r29) { + HuPrcAllPause(1); + Hu3DPauseSet(1); + } + else { + HuPrcAllPause(0); + Hu3DPauseSet(0); + } + HuPrcVSleep(); + } + HuPrcAllPause(0); + Hu3DPauseSet(0); + } + if (temp_r29 & PAD_BUTTON_UP) { + if (lbl_1_bss_A0C < 120.0f) { + lbl_1_bss_A0C++; + } + } + if (temp_r29 & PAD_BUTTON_DOWN) { + if (lbl_1_bss_A0C > 5.0f) { + lbl_1_bss_A0C--; + } + } + HuPrcVSleep(); + } } diff --git a/src/REL/modeseldll/filesel.c b/src/REL/modeseldll/filesel.c index 8bf2afb7..d19a8592 100644 --- a/src/REL/modeseldll/filesel.c +++ b/src/REL/modeseldll/filesel.c @@ -10,7 +10,6 @@ #include "game/window.h" #include "game/wipe.h" - #include "math.h" #include "REL/modeseldll.h" @@ -190,10 +189,10 @@ repeat: Hu3DModelPosSetV(lbl_1_bss_19A[3], &sp1C); Hu3DModelPosSetV(lbl_1_bss_19A[5], &sp1C); Hu3DModelPosSetV(lbl_1_bss_19A[1], &sp1C); - Hu3DModelAttrReset(lbl_1_bss_19A[2], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[4], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[3], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[5], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_19A[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_19A[3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_19A[5], HU3D_ATTR_DISPOFF); Hu3DModelRotSet(lbl_1_bss_19A[2], 0, 0, 0); Hu3DModelRotSet(lbl_1_bss_19A[3], 0, 0, 0); fn_1_57C8(lbl_1_bss_19A[4]); @@ -622,8 +621,8 @@ void fn_1_5850(void) work = curr->user_data; index = work->index; param = work->param; - Hu3DModelAttrSet(lbl_1_bss_19A[index + 2], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[index + 4], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[index + 2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_19A[index + 4], HU3D_ATTR_DISPOFF); Hu3DMotionSet(lbl_1_bss_19A[index + 4], lbl_1_bss_16A[6]); Hu3DMotionSpeedSet(lbl_1_bss_19A[index + 4], 2.0f); if (param) { @@ -648,8 +647,8 @@ void fn_1_5850(void) HuPrcVSleep(); } if (!param) { - Hu3DModelAttrReset(lbl_1_bss_19A[index + 2], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[index + 4], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[index + 2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_19A[index + 4], HU3D_ATTR_DISPOFF); } HuMemDirectFree(work); HuPrcEnd(); @@ -677,19 +676,19 @@ s32 fn_1_5C38(void) lbl_1_bss_14C = 0; result = HuCardSlotCheck(0); if (result == 8192) { - Hu3DModelAttrReset(lbl_1_bss_19A[0], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[0], HU3D_ATTR_DISPOFF); lbl_1_bss_14C |= 1; } else { - Hu3DModelAttrSet(lbl_1_bss_19A[0], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[0], HU3D_ATTR_DISPOFF); } result = HuCardSlotCheck(1); if (result == 8192) { - Hu3DModelAttrReset(lbl_1_bss_19A[1], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[1], HU3D_ATTR_DISPOFF); lbl_1_bss_14C |= 2; } else { - Hu3DModelAttrSet(lbl_1_bss_19A[1], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[1], HU3D_ATTR_DISPOFF); } return lbl_1_bss_14C; } @@ -700,10 +699,10 @@ void fn_1_5D30(void) Vec pos_2d; Vec pos_3d; Mtx scale; - espAttrReset(lbl_1_bss_152[0], 4); + espAttrReset(lbl_1_bss_152[0], HUSPR_ATTR_DISPOFF); espDrawNoSet(lbl_1_bss_152[0], 127); - espAttrReset(lbl_1_bss_152[1], 4); - Hu3DModelAttrReset(lbl_1_bss_19A[2], 1); + espAttrReset(lbl_1_bss_152[1], HUSPR_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_19A[2], HU3D_ATTR_DISPOFF); pos_2d.x = 188; pos_2d.y = 250; pos_2d.z = 600; @@ -718,7 +717,7 @@ void fn_1_5D30(void) MTXCopy(scale, model->unk_F0); model = &Hu3DData[lbl_1_bss_19A[0]]; MTXCopy(scale, model->unk_F0); - Hu3DModelAttrReset(lbl_1_bss_19A[3], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[3], HU3D_ATTR_DISPOFF); pos_2d.x = 388; Hu3D2Dto3D(&pos_2d, 1, &pos_3d); Hu3DModelPosSetV(lbl_1_bss_19A[3], &pos_3d); @@ -1104,12 +1103,12 @@ void fn_1_72DC(void) index = work->index; param = work->param; if (param) { - Hu3DModelAttrReset(lbl_1_bss_19A[index + 8], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[index + 11], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[index + 8], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_19A[index + 11], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrSet(lbl_1_bss_19A[index + 8], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[index + 11], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[index + 8], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_19A[index + 11], HU3D_ATTR_DISPOFF); } for (i = 0; i <= 10; i++) { float scale; @@ -1583,7 +1582,7 @@ s32 fn_1_8C30(s16 boxno) HuWinMesSet(lbl_1_bss_146, MAKE_MESSID(16, 0x35)); HuWinDispOn(lbl_1_bss_146); lbl_1_bss_90 = boxno; - Hu3DModelAttrReset(lbl_1_bss_19A[23], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[23], HU3D_ATTR_DISPOFF); sp2C = &Hu3DData[lbl_1_bss_19A[boxno + 8]]; Hu3DModelPosSetV(lbl_1_bss_19A[23], &sp2C->pos); for (temp_r30 = 1; temp_r30 <= 10; temp_r30++) { @@ -1634,8 +1633,8 @@ s32 fn_1_8C30(s16 boxno) } else { HuAudFXPlay(3); - Hu3DModelAttrSet(lbl_1_bss_19A[23], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[23], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], HU3D_ATTR_DISPOFF); fn_1_7628(temp_r31, 0); HuWinDispOff(lbl_1_bss_146); return 1; @@ -1646,7 +1645,7 @@ s32 fn_1_8C30(s16 boxno) fn_1_B8CC(MAKE_MESSID(16, 0x0A)); HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x0B)); HuWinMesWait(lbl_1_bss_148); - Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], HU3D_ATTR_DISPOFF); OSReport("CheckSum Check\n"); if (!SLCheckSumCheck()) { HuPrcSleep(60); @@ -1666,8 +1665,8 @@ s32 fn_1_8C30(s16 boxno) Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 8], temp_f31, temp_f31, temp_f31); HuPrcVSleep(); } - Hu3DModelAttrSet(lbl_1_bss_19A[23], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[23], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], HU3D_ATTR_DISPOFF); if (UnMountCnt & (1 << curSlotNo)) { fn_1_BA20(); HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x50)); @@ -1692,8 +1691,8 @@ s32 fn_1_8C30(s16 boxno) lbl_1_bss_13A[temp_r31] = Hu3DAnimCreate(temp_r19, lbl_1_bss_19A[temp_r31 + 8], "star"); temp_r19 = HuSprAnimRead(HuDataReadNum(lbl_1_data_21C[temp_r25], MEMORY_DEFAULT_NUM)); lbl_1_bss_134[temp_r31] = Hu3DAnimCreate(temp_r19, lbl_1_bss_19A[temp_r31 + 11], "star"); - Hu3DModelAttrReset(lbl_1_bss_19A[temp_r31 + 11], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[temp_r31 + 8], 1); + Hu3DModelAttrReset(lbl_1_bss_19A[temp_r31 + 11], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_19A[temp_r31 + 8], HU3D_ATTR_DISPOFF); sp60.x = 158.0f + (boxno * 130); sp60.y = 230; sp60.z = 800; @@ -1728,8 +1727,8 @@ s32 fn_1_8C30(s16 boxno) } } fn_1_BA20(); - Hu3DModelAttrSet(lbl_1_bss_19A[23], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[23], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], HU3D_ATTR_DISPOFF); for (temp_r30 = 0; temp_r30 <= 10; temp_r30++) { temp_f31 = sin(M_PI * (90.0 * (temp_r30 / 10.0)) / 180.0); Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 8], temp_f31, temp_f31, temp_f31); @@ -1782,8 +1781,8 @@ s32 fn_1_9E4C(void) lbl_1_bss_F4 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x25), MEMORY_DEFAULT_NUM)); temp_r22 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATA_MAKE_NUM(DATADIR_MODESEL, 0x00), 0x24), MEMORY_DEFAULT_NUM)); for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_19A[temp_r31 + 8], 1); - Hu3DModelAttrReset(lbl_1_bss_19A[temp_r31 + 11], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[temp_r31 + 8], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_19A[temp_r31 + 11], HU3D_ATTR_DISPOFF); temp_r27 = lbl_1_bss_E8[temp_r31]; if (temp_r27 < 0 || temp_r27 >= 8) { temp_r27 = 8; @@ -1849,7 +1848,7 @@ s32 fn_1_9E4C(void) } MTXScale(sp24, 0.45f, 0.45f, 0.45f); temp_r28 = &Hu3DData[lbl_1_bss_19A[23]]; - Hu3DModelAttrSet(lbl_1_bss_19A[23], 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_19A[23], HU3D_MOTATTR_LOOP); MTXCopy(sp24, temp_r28->unk_F0); return temp_r23; } @@ -1900,7 +1899,7 @@ void fn_1_AAB8(void) MTXCopy(sp48, temp_r31->unk_F0); Hu3DModelRotSet(lbl_1_bss_19A[temp_r30], 0, lbl_1_bss_8C * lbl_1_bss_108[temp_r30] * GET_ZEROSIGN(temp_r30 == 0), 0); if (!lbl_1_bss_12C[temp_r30]) { - espAttrSet(lbl_1_bss_152[temp_r30 + 2], 4); + espAttrSet(lbl_1_bss_152[temp_r30 + 2], HUSPR_ATTR_DISPOFF); } else { temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30 + 2]]; @@ -1908,10 +1907,10 @@ void fn_1_AAB8(void) temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30 + 4]]; } if (temp_r31->attr & 0x1) { - espAttrSet(lbl_1_bss_152[temp_r30 + 2], 4); + espAttrSet(lbl_1_bss_152[temp_r30 + 2], HUSPR_ATTR_DISPOFF); } else { - espAttrReset(lbl_1_bss_152[temp_r30 + 2], 4); + espAttrReset(lbl_1_bss_152[temp_r30 + 2], HUSPR_ATTR_DISPOFF); } sp8 = temp_r31->pos; sp8.y -= 30.0f * temp_r31->scale.x; @@ -1925,16 +1924,16 @@ void fn_1_AAB8(void) lbl_1_bss_8C -= 360; } if (lbl_1_bss_11C == -1) { - espAttrSet(lbl_1_bss_152[4], 4); + espAttrSet(lbl_1_bss_152[4], HUSPR_ATTR_DISPOFF); } else { temp_r31 = &Hu3DData[lbl_1_bss_19A[lbl_1_bss_11C]]; if (temp_r31->attr & 0x1) { - espAttrSet(lbl_1_bss_152[4], 4); + espAttrSet(lbl_1_bss_152[4], HUSPR_ATTR_DISPOFF); } else { espBankSet(lbl_1_bss_152[4], lbl_1_bss_11C); - espAttrReset(lbl_1_bss_152[4], 4); + espAttrReset(lbl_1_bss_152[4], HUSPR_ATTR_DISPOFF); sp8 = temp_r31->pos; sp8.y += 5.0f * temp_r31->scale.x; Hu3D3Dto2D(&sp8, 1, &sp14); @@ -1944,7 +1943,7 @@ void fn_1_AAB8(void) } for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { if (!lbl_1_bss_120[temp_r30]) { - espAttrSet(lbl_1_bss_152[temp_r30 + 5], 4); + espAttrSet(lbl_1_bss_152[temp_r30 + 5], HUSPR_ATTR_DISPOFF); continue; } temp_r31 = &Hu3DData[lbl_1_bss_19A[temp_r30 + 8]]; @@ -1955,10 +1954,10 @@ void fn_1_AAB8(void) temp_f29 = (temp_r31->pos.z + (50.0 * temp_r31->scale.x)) * sin(M_PI / 12); temp_f31 = temp_r31->scale.x * (temp_f29 / temp_f30); if (temp_r31->attr & 0x1) { - espAttrSet(lbl_1_bss_152[temp_r30 + 5], 4); + espAttrSet(lbl_1_bss_152[temp_r30 + 5], HUSPR_ATTR_DISPOFF); } else { - espAttrReset(lbl_1_bss_152[temp_r30 + 5], 4); + espAttrReset(lbl_1_bss_152[temp_r30 + 5], HUSPR_ATTR_DISPOFF); } sp8 = temp_r31->pos; sp8.y += 40.0 * temp_r31->scale.x; diff --git a/src/REL/modeseldll/main.c b/src/REL/modeseldll/main.c index 7a9b949c..fc10e07b 100644 --- a/src/REL/modeseldll/main.c +++ b/src/REL/modeseldll/main.c @@ -98,7 +98,7 @@ void fn_1_414(void) HuSprPosSet(group, 0, 288, 240); HuSprDrawNoSet(group, 0, 127); HuPrcSleep(2); - espAttrSet(lbl_1_bss_152[0], 4); + espAttrSet(lbl_1_bss_152[0], HUSPR_ATTR_DISPOFF); HuAudFXStop(lbl_1_data_100); while(!HuTHPEndCheck()) { HuPrcVSleep(); @@ -107,7 +107,7 @@ void fn_1_414(void) HuSprGrpKill(group); } } - espAttrReset(lbl_1_bss_152[9], 4); + espAttrReset(lbl_1_bss_152[9], HUSPR_ATTR_DISPOFF); espDrawNoSet(lbl_1_bss_152[9], 127); { s16 result = fn_1_2490(); diff --git a/src/REL/modeseldll/modesel.c b/src/REL/modeseldll/modesel.c index 31253f9a..13d41db6 100644 --- a/src/REL/modeseldll/modesel.c +++ b/src/REL/modeseldll/modesel.c @@ -9,11 +9,9 @@ #include "game/window.h" #include "game/wipe.h" - #include "REL/modeseldll.h" #include "ext_math.h" - s16 lbl_1_data_80[] = { 16, 17, 18, 19, 20, 21 }; s32 lbl_1_data_8C[] = { DATA_MAKE_NUM(DATADIR_MODESEL, 0x30), DATA_MAKE_NUM(DATADIR_MODESEL, 0x32), DATA_MAKE_NUM(DATADIR_MODESEL, 0x34), @@ -87,10 +85,10 @@ s32 fn_1_2490(void) while (!Hu3DMotionEndCheck(lbl_1_bss_19A[15])) { HuPrcVSleep(); } - Hu3DModelAttrSet(lbl_1_bss_19A[15], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[15], HU3D_ATTR_DISPOFF); for (temp_r31 = 0; temp_r31 < 6; temp_r31++) { - Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], HU3D_MOTATTR_PAUSE); Hu3DMotionTimeSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0); Hu3DModelPosSet(lbl_1_bss_19A[lbl_1_data_80[temp_r31]], 0, -50, 0); } @@ -186,10 +184,10 @@ s32 fn_1_2490(void) temp_r22 = HuSprAnimRead(HuDataReadNum(lbl_1_data_A4[lbl_1_bss_80], MEMORY_DEFAULT_NUM)); Hu3DAnimCreate(temp_r23, lbl_1_bss_19A[22], "ys002_a1"); Hu3DAnimCreate(temp_r22, lbl_1_bss_19A[22], "ys002_a2"); - Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 1); + Hu3DModelAttrSet(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(lbl_1_bss_19A[22], 0); - Hu3DModelAttrReset(lbl_1_bss_19A[22], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[22], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_19A[22], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_19A[22], HU3D_MOTATTR_PAUSE); Hu3DModelPosSet(lbl_1_bss_19A[22], 0, 27, 50); Hu3DModelScaleSet(lbl_1_bss_19A[22], 1.0f, 1.063f, 1.0f); for (temp_r31 = 1; temp_r31 <= 20; temp_r31++) { @@ -236,10 +234,10 @@ void fn_1_3668(void) sp8.y = 1; sp8.z = 0; Hu3DShadowPosSet(&sp20, &sp8, &sp14); - Hu3DModelAttrReset(lbl_1_bss_19A[15], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[15], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_19A[15], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_19A[15], HU3D_MOTATTR_PAUSE); Hu3DMotionTimeSet(lbl_1_bss_19A[15], 0); - Hu3DModelAttrReset(lbl_1_bss_19A[14], 1); - Hu3DModelAttrSet(lbl_1_bss_19A[14], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_19A[14], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_19A[14], HU3D_MOTATTR_PAUSE); Hu3DMotionTimeSet(lbl_1_bss_19A[14], 0); } diff --git a/src/REL/mpexDll/mpex.c b/src/REL/mpexDll/mpex.c index 5931ebd8..1dcc056a 100644 --- a/src/REL/mpexDll/mpex.c +++ b/src/REL/mpexDll/mpex.c @@ -263,7 +263,7 @@ void fn_1_33F8(void) HuPrcVSleep(); var_r31 = espEntry(0x860020, 0x1388, 0); espPosSet(var_r31, 288.0f, 240.0f); - espAttrReset(var_r31, 4); + espAttrReset(var_r31, HUSPR_ATTR_DISPOFF); Hu3DBGColorSet(0, 0, 0); WipeCreate(1, 0, 0xA); @@ -833,7 +833,7 @@ void fn_1_4C6C(void) Hu3DModelPosSet(lbl_1_bss_2D8[2].unk_00->model[1], 0.0f, 1000.0f, 0.0f); for (var_r31 = 0; var_r31 < 4; var_r31++) { Hu3DModelPosSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], -225.0f + (150.0f * var_r31), 0.0f, 0.0f); - Hu3DModelAttrReset(lbl_1_bss_1B8[var_r31].unk_00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_1B8[var_r31].unk_00->model[1], HU3D_ATTR_DISPOFF); } } @@ -846,7 +846,7 @@ void fn_1_4DF8(void) Hu3DModelPosSet(lbl_1_bss_2D8[2].unk_00->model[1], 0.0f, 1000.0f, 0.0f); for (var_r31 = 0; var_r31 < 4; var_r31++) { Hu3DModelPosSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], -225.0f + (150.0f * var_r31), 0.0f, 0.0f); - Hu3DModelAttrSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], 1); + Hu3DModelAttrSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], HU3D_ATTR_DISPOFF); } } @@ -917,7 +917,7 @@ void fn_1_56B8(void) Hu3DModelPosSet(lbl_1_bss_2D8[1].unk_00->model[1], -400.0f, 0.0f, 0.0f); Hu3DModelPosSet(lbl_1_bss_2D8[2].unk_00->model[1], 0.0f, 1000.0f, 0.0f); Hu3DModelPosSet(lbl_1_bss_1B8[0].unk_00->model[1], 0.0f, 0.0f, 0.0f); - Hu3DModelAttrReset(lbl_1_bss_1B8[0].unk_00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_1B8[0].unk_00->model[1], HU3D_ATTR_DISPOFF); } s32 fn_1_57E0(void) @@ -960,7 +960,7 @@ void fn_1_5AF8(void) Hu3DModelPosSet(lbl_1_bss_2D8[1].unk_00->model[1], 1000.0f, 0.0f, 0.0f); Hu3DModelPosSet(lbl_1_bss_2D8[2].unk_00->model[1], 0.0f, 1000.0f, 0.0f); for (var_r31 = 0; var_r31 < 4; var_r31++) { - Hu3DModelAttrSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], 1); + Hu3DModelAttrSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], HU3D_ATTR_DISPOFF); } fn_1_C544(); fn_1_D468(lbl_1_bss_1B0); @@ -974,7 +974,7 @@ void fn_1_5C1C(void) Hu3DModelPosSet(lbl_1_bss_2D8[1].unk_00->model[1], 0.0f, 0.0f, 0.0f); Hu3DModelPosSet(lbl_1_bss_2D8[2].unk_00->model[1], 0.0f, 1000.0f, 0.0f); for (var_r31 = 0; var_r31 < 4; var_r31++) { - Hu3DModelAttrSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], 1); + Hu3DModelAttrSet(lbl_1_bss_1B8[var_r31].unk_00->model[1], HU3D_ATTR_DISPOFF); } fn_1_C544(); fn_1_D468(lbl_1_bss_1B0); @@ -1259,7 +1259,7 @@ void fn_1_7BC8(omObjData *object) fn_1_25C4(object, 1, 1, 0, 1); for (var_r30 = 0; var_r30 < 3; var_r30++) { object->model[var_r30 + 1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x02)); - Hu3DModelAttrSet(object->model[var_r30 + 1], 1); + Hu3DModelAttrSet(object->model[var_r30 + 1], HU3D_ATTR_DISPOFF); } object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x01)); object->motion[5] = Hu3DMotionIDGet(object->model[5]); @@ -1269,7 +1269,7 @@ void fn_1_7BC8(omObjData *object) return; } if (omovlevtno == 1) { - Hu3DModelAttrSet(object->model[5], 0x40000002); + Hu3DModelAttrSet(object->model[5], HU3D_MOTATTR_PAUSE); return; } fn_1_25C4(object, 5, 5, 0, 2); @@ -1325,12 +1325,12 @@ void fn_1_816C(omObjData *object, s32 arg1) object->motion[5] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49)); Hu3DModelPosSet(object->model[1], -150.0f + (100.0f * arg1), 0.0f, 0.0f); Hu3DModelShadowSet(object->model[1]); - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); CharModelLayerSetAll2(2); fn_1_25C4(object, 1, 1, 0, 1); CharKill(var_r30); object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MPEX, 0x02)); - Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); } void fn_1_8320(void) @@ -1406,7 +1406,7 @@ void fn_1_89C4(omObjData *object) object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MPEX, 0x11)); Hu3DModelPosSet(object->model[1], 0.0f, 400.0f, 0.0f); if (lbl_1_bss_180[0xA] == 0) { - Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); } fn_1_25C4(object, 1, 1, 0, 1); object->func = fn_1_88EC; @@ -1707,7 +1707,7 @@ void fn_1_A0E4(omObjData *object, MpexDllUnkStruct4 *arg_1) float var_f30; s32 var_r30; - Hu3DModelAttrReset(object->model[2], 1); + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); Hu3DModelTPLvlSet(object->model[2], 0.0f); for (var_r30 = 0; var_r30 <= 0xF; var_r30++) { fn_1_1B7D0(1); @@ -1730,7 +1730,7 @@ void fn_1_A2AC(omObjData *object, MpexDllUnkStruct4 *arg1) var_f31 = fn_1_1B52C(0.5f, 0.0f, var_r30, 15.0f); Hu3DModelTPLvlSet(object->model[2], var_f31); } - Hu3DModelAttrSet(object->model[2], 1); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); Hu3DModelTPLvlSet(object->model[2], 0.0f); arg1->unk_04 = NULL; } @@ -1743,7 +1743,7 @@ void fn_1_A3A4(void) lbl_1_bss_3B0.unk_04 = (MpexDllUnkFunc2)fn_1_9F10; for (var_r31 = 0; var_r31 < 3; var_r31++) { - Hu3DModelAttrReset(lbl_1_bss_3B0.unk_00->model[var_r31 + 1], 1); + Hu3DModelAttrReset(lbl_1_bss_3B0.unk_00->model[var_r31 + 1], HU3D_ATTR_DISPOFF); Hu3DModelTPLvlSet(lbl_1_bss_3B0.unk_00->model[var_r31 + 1], 0.0f); } for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { @@ -1762,7 +1762,7 @@ void fn_1_A3A4(void) } } for (var_r31 = 0; var_r31 < 3; var_r31++) { - Hu3DModelAttrSet(lbl_1_bss_3B0.unk_00->model[var_r31 + 1], 1); + Hu3DModelAttrSet(lbl_1_bss_3B0.unk_00->model[var_r31 + 1], HU3D_ATTR_DISPOFF); Hu3DModelTPLvlSet(lbl_1_bss_3B0.unk_00->model[var_r31 + 1], 0.0f); } lbl_1_bss_3B0.unk_04 = NULL; diff --git a/src/REL/option/record.c b/src/REL/option/record.c index d625d764..fc17d924 100755 --- a/src/REL/option/record.c +++ b/src/REL/option/record.c @@ -40,7 +40,7 @@ typedef struct { /* 0x008 */ OptionWindow *window[10]; /* 0x030 */ s32 execMode; /* 0x034 */ s16 sprList[153]; - /* 0x166 */ s16 unk166[3]; + /* 0x166 */ s16 unk166[3]; /* 0x16C */ s32 recordType; /* 0x170 */ s32 board; /* 0x174 */ s32 mgPage; @@ -199,7 +199,7 @@ static void ExecRecord(omObjData *object) OptionWinAnimIn(work->window[1]); OptionWinMesSet(work->window[1], MAKE_MESSID(47, 169)); if (!work->cameraDoneF) { - Hu3DModelAttrReset(work->hand->model[0], 1); + Hu3DModelAttrReset(work->hand->model[0], HU3D_ATTR_DISPOFF); work->cameraDoneF = TRUE; } pos.x = 505.0 * -sin(305 * M_PI / 180.0); @@ -287,7 +287,7 @@ static void ExecRecord(omObjData *object) } OptionWinAnimOut(work->window[0]); OptionWinAnimOut(work->window[1]); - Hu3DModelAttrSet(work->hand->model[0], 1); + Hu3DModelAttrSet(work->hand->model[0], HU3D_ATTR_DISPOFF); object->unk10 = 6; /* fallthrough */ case 6: @@ -312,7 +312,7 @@ static omObjData *CreateSystem(void) object = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 1)); - Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[0], 0); Hu3DMotionStartEndSet(object->model[0], 0.0f, 6.0f); Hu3DMotionTimeSet(object->model[0], 6.0f); @@ -352,10 +352,10 @@ static omObjData *CreateHand(void) object = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 14)); Hu3DModelLayerSet(object->model[0], 2); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); omSetRot(object, 30.0f, 190.0f, 0.0f); omSetSca(object, 0.6f, 0.6f, 0.6f); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); return object; } @@ -646,23 +646,8 @@ static void ShowBoard(omObjData *object, s32 board) #define BOARD_SPR_HIDE_COUNT 53 -static const s32 boardSprHideTbl[BOARD_SPR_HIDE_COUNT] = -{ - 0, 1, 2, 3, 4, 5, - 49, 50, 51, 52, 53, 54, 55, 56, - 8, 9, 10, - 11, 12, 13, 14, - 23, 24, 25, - 26, 27, 28, - 29, 30, 31, - 32, 33, 34, - 38, 39, 40, - 35, 36, 37, - 41, 42, 43, - 44, 45, 46, - 15, 16, 17, 18, - 19, 20, 21, 22 -}; +static const s32 boardSprHideTbl[BOARD_SPR_HIDE_COUNT] = { 0, 1, 2, 3, 4, 5, 49, 50, 51, 52, 53, 54, 55, 56, 8, 9, 10, 11, 12, 13, 14, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 38, 39, 40, 35, 36, 37, 41, 42, 43, 44, 45, 46, 15, 16, 17, 18, 19, 20, 21, 22 }; static void HideBoard(omObjData *object) { @@ -709,19 +694,8 @@ static void ShowTotal(omObjData *object) #define TOTAL_SPR_HIDE_COUNT 33 -static const s32 totalSprHideTbl[TOTAL_SPR_HIDE_COUNT] = -{ - 6, - 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, - 68, 69, 70, - 71, 72, 73, - 74, 75, 76, - 77, 78, 79, - 80, 81, 82, - 83, 84, 85, - 86, 87, 88 -}; +static const s32 totalSprHideTbl[TOTAL_SPR_HIDE_COUNT] + = { 6, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88 }; static void HideTotal(omObjData *object) { @@ -844,18 +818,9 @@ static void ShowMG(omObjData *object, s32 page) #define MG_SPR_HIDE_COUNT 65 -static const s32 mgSprHideTbl[65] = -{ - 7, - 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152 -}; +static const s32 mgSprHideTbl[65] = { 7, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152 }; static void HideMG(omObjData *object) { diff --git a/src/REL/option/rumble.c b/src/REL/option/rumble.c index af0397ff..16d5ebc5 100755 --- a/src/REL/option/rumble.c +++ b/src/REL/option/rumble.c @@ -112,7 +112,7 @@ static void ExecRumble(omObjData *object) break; } if (!work->cameraDoneF) { - Hu3DModelAttrReset(work->hand->model[0], 1); + Hu3DModelAttrReset(work->hand->model[0], HU3D_ATTR_DISPOFF); work->cameraDoneF = TRUE; Hu3DModelHookSet(work->system->model[0], "target", work->hand->model[0]); } @@ -156,10 +156,10 @@ static void ExecRumble(omObjData *object) if (work->rumbleF) { HuPadRumbleSet(0, 60, 10, 5); Hu3DMotionTimeSet(work->hiliteOn->model[0], 0.0f); - Hu3DModelAttrReset(work->hiliteOn->model[0], 1); + Hu3DModelAttrReset(work->hiliteOn->model[0], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrSet(work->hiliteOn->model[0], 1); + Hu3DModelAttrSet(work->hiliteOn->model[0], HU3D_ATTR_DISPOFF); } object->unk10 = 1; } @@ -167,7 +167,7 @@ static void ExecRumble(omObjData *object) case 4: OptionWinAnimOut(work->window[1]); OptionWinAnimOut(work->window[0]); - Hu3DModelAttrSet(work->hand->model[0], 1); + Hu3DModelAttrSet(work->hand->model[0], HU3D_ATTR_DISPOFF); OptionRumbleMotionHideStart(object); object->unk10 = 5; /* fallthrough */ @@ -193,7 +193,7 @@ static omObjData *CreateHand(void) hand->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 15)); Hu3DModelLayerSet(hand->model[0], 3); omSetRot(hand, 0.0f, 180.0f, 0.0f); - Hu3DModelAttrSet(hand->model[0], 1); + Hu3DModelAttrSet(hand->model[0], HU3D_ATTR_DISPOFF); return hand; } @@ -212,7 +212,7 @@ static omObjData *CreateSystem(void) system = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); system->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 2)); - Hu3DModelAttrSet(system->model[0], 0x40000002); + Hu3DModelAttrSet(system->model[0], HU3D_MOTATTR_PAUSE); if (GWRumbleGet()) { Hu3DMotionTimeSet(system->model[0], 60.0f); } @@ -263,7 +263,7 @@ static omObjData *CreatePad(void) pad = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); pad->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 9)); - Hu3DModelAttrSet(pad->model[0], 0x40000001); + Hu3DModelAttrSet(pad->model[0], HU3D_MOTATTR_LOOP); return pad; } @@ -280,10 +280,10 @@ static void ShakePad(omObjData *pad, BOOL on) { if (on) { Hu3DModelAttrReset(pad->model[0], 0x40000002); - Hu3DModelAttrSet(pad->model[0], 0x40000001); + Hu3DModelAttrSet(pad->model[0], HU3D_MOTATTR_LOOP); } else { - Hu3DModelAttrSet(pad->model[0], 0x40000002); + Hu3DModelAttrSet(pad->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(pad->model[0], 0x40000001); } } @@ -294,7 +294,7 @@ static omObjData *CreatePadFilter(void) object = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 10)); - Hu3DModelAttrSet(object->model[0], 0x40000002); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[0], 2); return object; @@ -349,10 +349,10 @@ static omObjData *CreateHiliteOn(void) object = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 11)); if (GWRumbleGet()) { - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); } return object; } diff --git a/src/REL/option/scene.c b/src/REL/option/scene.c index 91e400d7..0edd9959 100755 --- a/src/REL/option/scene.c +++ b/src/REL/option/scene.c @@ -52,7 +52,8 @@ void OptionFadeSprite(s16 sprite, BOOL inF, s32 duration) if (inF) { work->speed = work->speed; work->tplvl = 0.0f; - } else { + } + else { work->speed = -work->speed; work->tplvl = 1.0f; } @@ -103,7 +104,7 @@ void OptionFadeModel(s16 model, BOOL inF, s32 duration) work->speed = -work->speed; work->tplvl = 1.0f; } - Hu3DModelAttrReset(work->id, 1); + Hu3DModelAttrReset(work->id, HU3D_ATTR_DISPOFF); Hu3DModelTPLvlSet(work->id, work->tplvl); process = HuPrcChildCreate(FadeModel, 0x3000, 0x1500, 0, HuPrcCurrentGet()); process->user_data = work; @@ -128,7 +129,7 @@ static void FadeModel(void) } Hu3DModelTPLvlSet(work->id, work->tplvl); if (work->tplvl <= 0.0f) { - Hu3DModelAttrSet(work->id, 1); + Hu3DModelAttrSet(work->id, HU3D_ATTR_DISPOFF); } HuMemDirectFree(work); HuPrcEnd(); @@ -199,7 +200,7 @@ static void KillScene(void) HuPrcVSleep(); sprite = espEntry(0x860020, 0x1388, 0); espPosSet(sprite, 288.0f, 240.0f); - espAttrReset(sprite, 4); + espAttrReset(sprite, HUSPR_ATTR_DISPOFF); Hu3DBGColorSet(0, 0, 0); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); while (WipeStatGet() != 0) { diff --git a/src/REL/option/sound.c b/src/REL/option/sound.c index 64d2e379..e859c58e 100755 --- a/src/REL/option/sound.c +++ b/src/REL/option/sound.c @@ -624,7 +624,7 @@ static void ExecOptionSel(omObjData *object) OptionWinAnimIn(work->window[0]); OptionWinMesSet(work->window[0], choiceMess[work->cursorPos]); if (!work->cameraDoneF) { - Hu3DModelAttrReset(work->object[7]->model[0], 1); + Hu3DModelAttrReset(work->object[7]->model[0], HU3D_ATTR_DISPOFF); work->cameraDoneF = TRUE; } omSetTra(work->object[7], -34.0f + 40.0f * work->cursorPos, 120.0f, -500.0f); @@ -661,7 +661,7 @@ static void ExecOptionSel(omObjData *object) if (!work->optionSelected) { OptionRumbleMotionHideStart(optionRumble); } - Hu3DModelAttrSet(work->object[7]->model[0], 1); + Hu3DModelAttrSet(work->object[7]->model[0], HU3D_ATTR_DISPOFF); object->unk10 = 4; /* fallthrough */ case 4: @@ -715,7 +715,7 @@ static void ExecOutputMode(omObjData *object) OptionWinAnimIn(work->window[0]); OptionWinMesSet(work->window[0], soundModeNameTbl[work->soundMode]); if (!work->cameraDoneF) { - Hu3DModelAttrReset(work->object[8]->model[0], 1); + Hu3DModelAttrReset(work->object[8]->model[0], HU3D_ATTR_DISPOFF); work->cameraDoneF = TRUE; } pos.x = -38.0f; @@ -768,7 +768,7 @@ static void ExecOutputMode(omObjData *object) KillNoteSpawner(object); OptionWinAnimOut(work->window[1]); OptionWinAnimOut(work->window[0]); - Hu3DModelAttrSet(work->object[8]->model[0], 1); + Hu3DModelAttrSet(work->object[8]->model[0], HU3D_ATTR_DISPOFF); object->unk10 = 5; /* fallthrough */ case 5: @@ -1204,10 +1204,10 @@ static omObjData *CreateHand(void) object = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 13)); Hu3DModelLayerSet(object->model[0], 2); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); omSetRot(object, -80.0f, 45.0f, 0.0f); omSetSca(object, 0.6f, 0.6f, 0.6f); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); return object; } @@ -1227,10 +1227,10 @@ static omObjData *CreateOutputModeHand(void) object = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 14)); Hu3DModelLayerSet(object->model[0], 2); - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); omSetRot(object, 0.0f, -90.0f, 0.0f); omSetSca(object, 0.6f, 0.6f, 0.6f); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); return object; } @@ -1249,7 +1249,7 @@ static omObjData *CreateSystem(void) system = omAddObjEx(optionObjMan, 1003, 1, 0, 1, NULL); system->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 3)); - Hu3DModelAttrSet(system->model[0], 0x40000001); + Hu3DModelAttrSet(system->model[0], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(system->model[0], 0); return system; } @@ -1276,7 +1276,7 @@ static omObjData *CreateLightObj(s32 id, BOOL off) else { object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_OPTION, 4)); } - Hu3DModelAttrSet(object->model[0], 0x40000001); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(object->model[0], 0); omSetTra(object, lightPosTbl[id].x, lightPosTbl[id].y, lightPosTbl[id].z); return object; @@ -1293,12 +1293,12 @@ static void KillLightObj(omObjData *object) static void LightDispOff(omObjData *indicator) { - Hu3DModelAttrReset(indicator->model[0], 1); + Hu3DModelAttrReset(indicator->model[0], HU3D_ATTR_DISPOFF); } static void LightDispOn(omObjData *indicator) { - Hu3DModelAttrSet(indicator->model[0], 1); + Hu3DModelAttrSet(indicator->model[0], HU3D_ATTR_DISPOFF); } static s32 spriteDataTbl[] = { @@ -1392,7 +1392,7 @@ static void OptionSelDisp(omObjData *object) static void OptionSelHide(omObjData *object) { - static const s32 sprHideTbl[] = { 12, 0, 1, 2, 3, 4, 5 }; + static const s32 sprHideTbl[] = { 12, 0, 1, 2, 3, 4, 5 }; SoundWork *work = object->data; s32 i; @@ -1443,11 +1443,9 @@ static void OutputModeDisp(omObjData *object) } } - - static void OutputModeHide(omObjData *object) { - static const s32 sprHideTbl[] = { 13, 6, 7, 8, 9 }; + static const s32 sprHideTbl[] = { 13, 6, 7, 8, 9 }; SoundWork *work = object->data; s32 i; @@ -1474,10 +1472,9 @@ static void MusicPageDisp(omObjData *object, s32 page) } } - static void MusicPageHide(omObjData *object) { - static const s32 sprHideTbl[] = { 10 }; + static const s32 sprHideTbl[] = { 10 }; SoundWork *work = object->data; s32 i; @@ -1508,11 +1505,9 @@ static void VoicePageDisp(omObjData *object, s32 character) } } - - static void VoicePageHide(omObjData *object) { - static const s32 sprHideTbl[] = { 11, 0 }; + static const s32 sprHideTbl[] = { 11, 0 }; SoundWork *work = object->data; s32 i; @@ -1538,7 +1533,7 @@ static omObjData *CreateNoteObj(s32 type) noteWork->enabled = FALSE; noteWork->type = type; note->model[0] = Hu3DModelCreateFile(noteMdlTbl[type]); - Hu3DModelAttrSet(note->model[0], 0x40000001); + Hu3DModelAttrSet(note->model[0], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(note->model[0], 2); Hu3DModelAttrReset(note->model[0], 2); return note; @@ -1568,7 +1563,7 @@ static void HandleNote(omObjData *note) float y; float tplvl; - Hu3DModelAttrReset(note->model[0], 1); + Hu3DModelAttrReset(note->model[0], HU3D_ATTR_DISPOFF); time = sind(45.0f * noteWork->pos); time = time * time; switch (noteWork->side) { @@ -1595,7 +1590,7 @@ static void HandleNote(omObjData *note) return; } noteWork->enabled = FALSE; - Hu3DModelAttrSet(note->model[0], 1); + Hu3DModelAttrSet(note->model[0], HU3D_ATTR_DISPOFF); note->func = NULL; note->unk10 = 0; } diff --git a/src/REL/present/common.c b/src/REL/present/common.c index adaae0e2..7ccf1f02 100644 --- a/src/REL/present/common.c +++ b/src/REL/present/common.c @@ -65,7 +65,7 @@ omObjData *PresentGuideCreate(void) Hu3DModelShadowSet(object->model[0]); PresentGuideExecModeSet(object, PRESENT_GUIDE_MODE_NONE); UpdateGuide(object); - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); return object; } @@ -109,7 +109,7 @@ static void ExecGuideEnter(omObjData *object) switch (object->unk10) { case 0: - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); work->pos.x = -300.0f; work->pos.z = -180.0f; work->time = 0.0f; @@ -156,7 +156,7 @@ static void ExecGuideLeave(omObjData *object) case 0: work->time = 0.0f; work->speed = 0.025f; - Hu3DModelAttrReset(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); object->unk10 = 1; case 1: weight = sind(90.0f * work->time); @@ -168,7 +168,7 @@ static void ExecGuideLeave(omObjData *object) } object->unk10 = 2; case 2: - Hu3DModelAttrSet(object->model[0], 1); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); PresentGuideExecModeSet(object, PRESENT_GUIDE_MODE_NONE); break; default: diff --git a/src/REL/present/init.c b/src/REL/present/init.c index bdc5f551..71813938 100644 --- a/src/REL/present/init.c +++ b/src/REL/present/init.c @@ -1,5 +1,6 @@ #include "game/audio.h" #include "game/esprite.h" +#include "game/hsfman.h" #include "game/objsub.h" #include "game/pad.h" #include "game/process.h" @@ -109,7 +110,7 @@ void FadeSpriteWithMultiplier(s16 model, BOOL inF, float tpMultiplier, s32 durat work->tplvl = 1.0f; } Hu3DModelTPLvlSet(work->id, work->tplvl * work->tpMultiplier); - Hu3DModelAttrReset(work->id, 1); + Hu3DModelAttrReset(work->id, HU3D_ATTR_DISPOFF); process = HuPrcChildCreate(FadeModel, 100, 5376, 0, HuPrcCurrentGet()); process->user_data = work; } @@ -135,7 +136,7 @@ static void FadeModel(void) } Hu3DModelTPLvlSet(var_r31->id, var_r31->tplvl * var_r31->tpMultiplier); if (var_r31->speed < 0.0f) { - Hu3DModelAttrSet(var_r31->id, 1); + Hu3DModelAttrSet(var_r31->id, HU3D_ATTR_DISPOFF); } HuMemDirectFree(var_r31); HuPrcEnd(); diff --git a/src/REL/present/present.c b/src/REL/present/present.c index b13a9e34..263194b5 100644 --- a/src/REL/present/present.c +++ b/src/REL/present/present.c @@ -4,8 +4,8 @@ #include "game/hsfdraw.h" #include "game/hsfex.h" #include "game/hsfman.h" -#include "game/wipe.h" #include "game/window.h" +#include "game/wipe.h" #include "REL/present.h" @@ -392,7 +392,7 @@ omObjData *PresentCreate(void) work->object[i] = omAddObjEx(presentObjMan, 1003, 1, 0, 1, NULL); work->object[i]->model[0] = Hu3DModelCreateFile(presentMdlTbl[i]); Hu3DModelLayerSet(work->object[i]->model[0], 0); - Hu3DModelAttrSet(work->object[i]->model[0], 1); + Hu3DModelAttrSet(work->object[i]->model[0], HU3D_ATTR_DISPOFF); } for (j = 0; j < 8; j++) { @@ -886,39 +886,39 @@ static void ShowHidePresents(omObjData *object) s32 character; s32 i; - Hu3DModelAttrReset(work->object[0]->model[0], 1); + Hu3DModelAttrReset(work->object[0]->model[0], HU3D_ATTR_DISPOFF); for (character = 0; character < NUM_CHARACTERS; character++) { s32 j; if (UnlockedPresents(object, roomIdxTbl2[character]) > 0) { - Hu3DModelAttrReset(work->object[character + 109]->model[0], 1); + Hu3DModelAttrReset(work->object[character + 109]->model[0], HU3D_ATTR_DISPOFF); } for (j = 0, i = 0; i < PRESENT_COUNT_CHAR_ROOM; i++) { if (PresentUnlocked(object, roomIdxTbl2[character], i)) { - Hu3DModelAttrReset(work->object[character * PRESENT_COUNT_CHAR_ROOM * 2 + 2 + i]->model[0], 1); - Hu3DModelAttrReset(work->object[character * PRESENT_COUNT_CHAR_ROOM * 2 + 8 + i]->model[0], 1); + Hu3DModelAttrReset(work->object[character * PRESENT_COUNT_CHAR_ROOM * 2 + 2 + i]->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(work->object[character * PRESENT_COUNT_CHAR_ROOM * 2 + 8 + i]->model[0], HU3D_ATTR_DISPOFF); j++; } } if (j >= 6) { - Hu3DModelAttrReset(work->object[character + 118]->model[0], 1); + Hu3DModelAttrReset(work->object[character + 118]->model[0], HU3D_ATTR_DISPOFF); } } if (UnlockedPresents(object, ROOM_MG) > 0) { - Hu3DModelAttrReset(work->object[117]->model[0], 1); + Hu3DModelAttrReset(work->object[117]->model[0], HU3D_ATTR_DISPOFF); } for (i = 0; i < PRESENT_COUNT_MG_ROOM; i++) { if (PresentUnlocked(object, ROOM_MG, i)) { - Hu3DModelAttrReset(work->object[i + 98]->model[0], 1); + Hu3DModelAttrReset(work->object[i + 98]->model[0], HU3D_ATTR_DISPOFF); } } if (PresentUnlocked(object, ROOM_TROPHY, 0)) { - Hu3DModelAttrReset(work->object[1]->model[0], 1); + Hu3DModelAttrReset(work->object[1]->model[0], HU3D_ATTR_DISPOFF); } for (i = 0; i < NUM_CHARACTERS; i++) { if (PresentUnlocked(object, roomIdxTbl2[i], PRESENT_CONSTELLATION)) { - Hu3DModelAttrReset(work->object[i + 126]->model[0], 1); + Hu3DModelAttrReset(work->object[i + 126]->model[0], HU3D_ATTR_DISPOFF); } } } @@ -1075,9 +1075,9 @@ static void ExecPresentGet(omObjData *object) rot = 36.0f * work->room; SetCameraRot(object, rot, 1); RotateCamera(object); - Hu3DModelAttrSet(work->object[work->idxInRoom + lbl_1_rodata_B18[work->room]]->model[0], 1); - Hu3DModelAttrSet(work->object[roofIdxTbl[work->room]]->model[0], 1); - Hu3DModelAttrSet(work->object[constellationIdxTbl[work->room]]->model[0], 1); + Hu3DModelAttrSet(work->object[work->idxInRoom + lbl_1_rodata_B18[work->room]]->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(work->object[roofIdxTbl[work->room]]->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(work->object[constellationIdxTbl[work->room]]->model[0], HU3D_ATTR_DISPOFF); work->presentFallingTime = 0.0f; work->presentFallingSpeed = 1.0f / 360.0f; object->unk10 = 1; diff --git a/src/REL/resultDll/battle.c b/src/REL/resultDll/battle.c index 41a977d4..f5130e05 100644 --- a/src/REL/resultDll/battle.c +++ b/src/REL/resultDll/battle.c @@ -74,9 +74,8 @@ Vec lbl_1_data_7F0[] = { { -300, 270, 0 }, { -100, 180, 500 }, { 100, 90, 500 }, s16 lbl_1_data_820[] = { -284, 148, -84, 233, 116, 318, 316, 403 }; -s32 lbl_1_data_830[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x08), DATA_MAKE_NUM(DATADIR_RESULT, 0x09), - DATA_MAKE_NUM(DATADIR_RESULT, 0x0A), DATA_MAKE_NUM(DATADIR_RESULT, 0x0A) -}; +s32 lbl_1_data_830[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x08), DATA_MAKE_NUM(DATADIR_RESULT, 0x09), DATA_MAKE_NUM(DATADIR_RESULT, 0x0A), + DATA_MAKE_NUM(DATADIR_RESULT, 0x0A) }; float lbl_1_data_840[] = { 130, 150, 170, 150, 150, 130, 170, 190 }; @@ -269,7 +268,7 @@ void fn_1_6824(void) } Hu3DAnimCreate(anim, lbl_1_bss_1A9C[i + 4], "ys22_a0"); Hu3DAnimCreate(anim2, lbl_1_bss_1A9C[i + 4], "ys22_a1"); - Hu3DModelAttrSet(lbl_1_bss_1A9C[i + 4], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_1A9C[i + 4], HU3D_MOTATTR_PAUSE); } anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x3D), MEMORY_DEFAULT_NUM)); anim2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x3B), MEMORY_DEFAULT_NUM)); @@ -306,7 +305,7 @@ void fn_1_6824(void) } (void)anim3; Hu3DMotionSet(lbl_1_bss_1A9C[8], lbl_1_bss_1A5C[9]); - Hu3DModelAttrSet(lbl_1_bss_1A9C[8], 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_1A9C[8], HU3D_MOTATTR_LOOP); Hu3DModelShadowSet(lbl_1_bss_1A9C[8]); for (i = 0; i < 180; i++) { if (i == 0) { @@ -316,7 +315,7 @@ void fn_1_6824(void) lbl_1_bss_1828[i] = Hu3DModelLink(lbl_1_bss_1828[0]); } Hu3DModelScaleSet(lbl_1_bss_1828[i], 0.5f, 0.5f, 0.5f); - Hu3DModelAttrSet(lbl_1_bss_1828[i], 1); + Hu3DModelAttrSet(lbl_1_bss_1828[i], HU3D_ATTR_DISPOFF); } fn_1_8658(); anim = HuSprAnimRead(HuAR_ARAMtoMRAMFileRead(DATA_MAKE_NUM(DATADIR_EFFECT, 4), MEMORY_DEFAULT_NUM, HEAP_DATA)); @@ -338,7 +337,7 @@ void fn_1_6824(void) CharModelVoiceEnableSet(character, lbl_1_bss_1990[player][1], 0); CharModelMotionSet(character, lbl_1_bss_1990[player][0]); Hu3DModelPosSet(char_mdl, lbl_1_data_7F0[i].x, lbl_1_data_7F0[lbl_1_bss_19E8[i]].y, 0); - Hu3DModelAttrSet(char_mdl, 0x40000001); + Hu3DModelAttrSet(char_mdl, HU3D_MOTATTR_LOOP); Hu3DModelShadowSet(char_mdl); } CharModelDataClose(-1); @@ -427,7 +426,7 @@ void fn_1_7544(void) Hu3DModelPosSet(lbl_1_bss_1A9C[10], 0, 0, 200); for (i = 0; i < Hu3DMotionMaxTimeGet(lbl_1_bss_1A9C[10]); i++) { if (i > 10) { - Hu3DModelAttrSet(lbl_1_bss_1A9C[8], 1); + Hu3DModelAttrSet(lbl_1_bss_1A9C[8], HU3D_ATTR_DISPOFF); } Center.x = lbl_1_data_8B8[(i / 2) & 0x7].x; Center.y = 330.0f + lbl_1_data_8B8[(i / 2) & 0x7].y; @@ -598,7 +597,7 @@ void fn_1_86DC(s16 player) lbl_1_bss_194[i].unk10.y = frandmod(20) - 10.0f; lbl_1_bss_194[i].unk10.z = 0; lbl_1_bss_194[i].unk1C = 10.0f; - Hu3DModelAttrReset(lbl_1_bss_1828[i], 1); + Hu3DModelAttrReset(lbl_1_bss_1828[i], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(lbl_1_bss_1828[i], 0, 100, 0); Hu3DModelRotSet(lbl_1_bss_1828[i], 0, 0, 0); } @@ -628,7 +627,7 @@ void fn_1_8998(void) CharModelCoinEffectCreate(1, &pos); lbl_1_bss_194[i].unk0 = -1; HuAudFXPlay(7); - Hu3DModelAttrSet(lbl_1_bss_1828[i], 1); + Hu3DModelAttrSet(lbl_1_bss_1828[i], HU3D_ATTR_DISPOFF); } } HuPrcVSleep(); diff --git a/src/REL/resultDll/main.c b/src/REL/resultDll/main.c index 7c27ee4c..afe551d5 100644 --- a/src/REL/resultDll/main.c +++ b/src/REL/resultDll/main.c @@ -395,7 +395,7 @@ void fn_1_B78(void) lbl_1_bss_5C[character][j] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x00) + j); Hu3DModelScaleSet(lbl_1_bss_5C[character][j], 1.1f, 1.1f, 1.1f); Hu3DAnimCreate(lbl_1_bss_E4[character][0], lbl_1_bss_5C[character][j], "ys22"); - Hu3DModelAttrSet(lbl_1_bss_5C[character][j], 1); + Hu3DModelAttrSet(lbl_1_bss_5C[character][j], HU3D_ATTR_DISPOFF); } } for (i = 0; i < 4; i++) { @@ -411,7 +411,7 @@ void fn_1_B78(void) character = GWPlayerCfg[lbl_1_bss_4A[i]].character; Hu3D2Dto3D(&lbl_1_data_408[i], 1, &pos); Hu3DModelPosSetV(lbl_1_bss_5C[character][lbl_1_bss_42[i]], &pos); - Hu3DModelAttrReset(lbl_1_bss_5C[character][lbl_1_bss_42[i]], 1); + Hu3DModelAttrReset(lbl_1_bss_5C[character][lbl_1_bss_42[i]], HU3D_ATTR_DISPOFF); } for (i = 4; i <= 11; i++) { Hu3D2Dto3D(&lbl_1_data_0[i].pos, 1, &pos); @@ -430,7 +430,7 @@ void fn_1_B78(void) Hu3DModelPosSetV(j, &pos); Hu3DModelScaleSet(j, 1.5f, 1.5f, 1.5f); } - Hu3DModelAttrSet(model, 1); + Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x07)); for (i = 0; i < 8; i++) { j = Hu3DModelLink(model); @@ -443,7 +443,7 @@ void fn_1_B78(void) Hu3DModelPosSetV(j, &pos); Hu3DModelScaleSet(j, 1.5f, 1.5f, 1.5f); } - Hu3DModelAttrSet(model, 1); + Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); lbl_1_bss_E0 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x1C)); lbl_1_bss_9C = HuSprGrpCreate(4); for (i = 0; i < 4; i++) { @@ -662,12 +662,12 @@ void fn_1_2ADC(void) Hu3D2Dto3D(&lbl_1_data_408[i], 1, &sp48); Hu3DModelPosSetV(lbl_1_bss_A[i], &sp48); if (sp30[i] == lbl_1_bss_4A[i] && sp18[i] == lbl_1_bss_42[i]) { - Hu3DModelAttrSet(lbl_1_bss_5C[temp_r30][sp18[i]], 1); - Hu3DModelAttrReset(lbl_1_bss_A[i], 1); + Hu3DModelAttrSet(lbl_1_bss_5C[temp_r30][sp18[i]], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_A[i], HU3D_ATTR_DISPOFF); Hu3DModelScaleSet(lbl_1_bss_A[i], 1.1f, 1.1f, 1.1f); } else { - Hu3DModelAttrSet(lbl_1_bss_A[i], 1); + Hu3DModelAttrSet(lbl_1_bss_A[i], HU3D_ATTR_DISPOFF); } } for (i = 0; i < 4; i++) { @@ -702,9 +702,9 @@ void fn_1_2ADC(void) } else { temp_r30 = GWPlayerCfg[sp28[i]].character; - Hu3DModelAttrSet(lbl_1_bss_5C[temp_r30][sp18[i]], 1); + Hu3DModelAttrSet(lbl_1_bss_5C[temp_r30][sp18[i]], HU3D_ATTR_DISPOFF); temp_r30 = GWPlayerCfg[lbl_1_bss_4A[i]].character; - Hu3DModelAttrReset(lbl_1_bss_A[i], 1); + Hu3DModelAttrReset(lbl_1_bss_A[i], HU3D_ATTR_DISPOFF); Hu3DModelScaleSet(lbl_1_bss_A[i], 1.1f, 1.1f, 1.1f); fn_1_3B50(lbl_1_bss_CE[(i * 2)], GWStarsGet(lbl_1_bss_4A[i])); fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); @@ -997,7 +997,7 @@ void fn_1_461C(void) HuPrcVSleep(); sprite = espEntry(0x860020, 5000, 0); espPosSet(sprite, 288.0, 240.0); - espAttrReset(sprite, 4); + espAttrReset(sprite, HUSPR_ATTR_DISPOFF); Hu3DBGColorSet(0, 0, 0); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); while (WipeStatGet()) { @@ -1064,26 +1064,26 @@ void fn_1_47FC(void) while (WipeStatGet()) { HuPrcVSleep(); } - espAttrSet(lbl_1_bss_1A1A[0], 4); - espAttrSet(lbl_1_bss_1A1A[1], 4); + espAttrSet(lbl_1_bss_1A1A[0], HUSPR_ATTR_DISPOFF); + espAttrSet(lbl_1_bss_1A1A[1], HUSPR_ATTR_DISPOFF); for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31 + 6], 1); - Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31 + 10], 1); + Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31 + 6], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31 + 10], HU3D_ATTR_DISPOFF); } for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { - espAttrSet(lbl_1_bss_1A1A[temp_r31 + 6], 4); + espAttrSet(lbl_1_bss_1A1A[temp_r31 + 6], HUSPR_ATTR_DISPOFF); } for (temp_r31 = 4; temp_r31 < 8; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_158[temp_r31], 1); + Hu3DModelAttrSet(lbl_1_bss_158[temp_r31], HU3D_ATTR_DISPOFF); } for (temp_r31 = 4; temp_r31 < 8; temp_r31++) { HuSprGrpTPLvlSet(lbl_1_bss_CE[temp_r31], 0.0f); } for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { for (temp_r19 = 0; temp_r19 < 4; temp_r19++) { - Hu3DModelAttrSet(lbl_1_bss_5C[GWPlayerCfg[temp_r31].character][temp_r19], 1); + Hu3DModelAttrSet(lbl_1_bss_5C[GWPlayerCfg[temp_r31].character][temp_r19], HU3D_ATTR_DISPOFF); } - Hu3DModelAttrSet(lbl_1_bss_54[temp_r31], 1); + Hu3DModelAttrSet(lbl_1_bss_54[temp_r31], HU3D_ATTR_DISPOFF); } HuSprGrpKill(lbl_1_bss_9C); HuSprGrpKill(lbl_1_bss_52); @@ -1159,7 +1159,7 @@ void fn_1_47FC(void) } temp_r18 = lbl_1_bss_5C[sp2C[temp_r31]][sp10]; Hu3DAnimCreate(lbl_1_bss_E4[sp2C[temp_r31]][0], temp_r18, "ys22"); - Hu3DModelAttrReset(temp_r18, 1); + Hu3DModelAttrReset(temp_r18, HU3D_ATTR_DISPOFF); Hu3D2Dto3D(&lbl_1_data_488[temp_r31], 1, &sp40); Hu3DModelPosSetV(temp_r18, &sp40); Hu3DModelRotSet(temp_r18, 0, 0, 0); diff --git a/src/REL/selmenuDll/main.c b/src/REL/selmenuDll/main.c index 75831f13..6b2c1a2f 100644 --- a/src/REL/selmenuDll/main.c +++ b/src/REL/selmenuDll/main.c @@ -576,11 +576,11 @@ static void SMCharUpdate(omObjData *object) s16 num_players; for (i = 0; i < 8; i++) { - Hu3DModelAttrSet(charModelID[i], 0x1); + Hu3DModelAttrSet(charModelID[i], HU3D_ATTR_DISPOFF); } for (i = 0; i < 4; i++) { if (!smPlayerCfg[i].iscom) { - Hu3DModelAttrReset(charModelID[smPlayerCfg[i].character], 0x1); + Hu3DModelAttrReset(charModelID[smPlayerCfg[i].character], HU3D_ATTR_DISPOFF); Hu3DModelCameraSet(charModelID[smPlayerCfg[i].character], cameraMaskTbl[i]); } } diff --git a/src/REL/w01Dll/mg_coin.c b/src/REL/w01Dll/mg_coin.c index db91a124..6a7c12b8 100755 --- a/src/REL/w01Dll/mg_coin.c +++ b/src/REL/w01Dll/mg_coin.c @@ -2,10 +2,16 @@ #include "game/audio.h" #include "game/chrman.h" #include "game/data.h" +#include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfanim.h" -#include "game/frand.h" +#include "game/board/audio.h" +#include "game/board/com.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/window.h" #include "game/hsfman.h" #include "game/memory.h" #include "game/minigame_seq.h" @@ -14,12 +20,6 @@ #include "game/pad.h" #include "game/sprite.h" #include "game/window.h" -#include "game/board/audio.h" -#include "game/board/com.h" -#include "game/board/main.h" -#include "game/board/model.h" -#include "game/board/player.h" -#include "game/board/window.h" #include "dolphin.h" #include "ext_math.h" @@ -116,112 +116,41 @@ static omObjData *lbl_1_bss_710; static AnimData *lbl_1_bss_70C; static s16 lbl_1_bss_708; -static Vec lbl_1_data_658[3] = { - { -50.0f, 238.0f, 0.0f }, - { 0.0f, 275.5f, 0.0f }, - { 50.0f, 238.0f, 0.0f } -}; +static Vec lbl_1_data_658[3] = { { -50.0f, 238.0f, 0.0f }, { 0.0f, 275.5f, 0.0f }, { 50.0f, 238.0f, 0.0f } }; -static u16 lbl_1_data_67C[3][3] = { - { 10, 5, 20 }, - { 10, 5, 20 }, - { 5, 20, 10 } -}; +static u16 lbl_1_data_67C[3][3] = { { 10, 5, 20 }, { 10, 5, 20 }, { 5, 20, 10 } }; -static Data690Block lbl_1_data_690[3] = { - { - { { -50.0f, -12.0f, 0.0f }, 75.0f }, - { { -50.0f, 63.0f, 0.0f }, 50.0f }, - { { 0.0f, 63.0f, 0.0f }, 25.0f }, - { { 0.0f, 88.0f, 0.0f }, 50.0f }, - { { 50.0f, 88.0f, 0.0f }, 87.5f }, - { { 50.0f, 175.5f, 0.0f }, 0.0f } - }, - { - { { 0.0f, -12.0f, 0.0f }, 75.0f }, - { { 0.0f, 63.0f, 0.0f }, 50.0f }, - { { -50.0f, 63.0f, 0.0f }, 50.0f }, - { { -50.0f, 113.0f, 0.0f }, 50.0f }, - { { 0.0f, 113.0f, 0.0f }, 50.0f }, - { { 0.0f, 163.0f, 0.0f }, 50.0f }, - { { -50.0f, 163.0f, 0.0f }, 12.5f }, - { { -50.0f, 175.5f, 0.0f }, 0.0f } - }, - { - { { 50.0f, -12.0f, 0.0f }, 100.0f }, - { { 50.0f, 88.0f, 0.0f }, 50.0f }, - { { 0.0f, 88.0f, 0.0f }, 25.0f }, - { { 0.0f, 113.0f, 0.0f }, 50.0f }, - { { -50.0f, 113.0f, 0.0f }, 50.0f }, - { { -50.0f, 163.0f, 0.0f }, 50.0f }, - { { 0.0f, 163.0f, 0.0f }, 50.0f }, - { { 0.0f, 213.0f, 0.0f }, 0.0f } - } -}; +static Data690Block lbl_1_data_690[3] + = { { { { -50.0f, -12.0f, 0.0f }, 75.0f }, { { -50.0f, 63.0f, 0.0f }, 50.0f }, { { 0.0f, 63.0f, 0.0f }, 25.0f }, { { 0.0f, 88.0f, 0.0f }, 50.0f }, + { { 50.0f, 88.0f, 0.0f }, 87.5f }, { { 50.0f, 175.5f, 0.0f }, 0.0f } }, + { { { 0.0f, -12.0f, 0.0f }, 75.0f }, { { 0.0f, 63.0f, 0.0f }, 50.0f }, { { -50.0f, 63.0f, 0.0f }, 50.0f }, + { { -50.0f, 113.0f, 0.0f }, 50.0f }, { { 0.0f, 113.0f, 0.0f }, 50.0f }, { { 0.0f, 163.0f, 0.0f }, 50.0f }, + { { -50.0f, 163.0f, 0.0f }, 12.5f }, { { -50.0f, 175.5f, 0.0f }, 0.0f } }, + { { { 50.0f, -12.0f, 0.0f }, 100.0f }, { { 50.0f, 88.0f, 0.0f }, 50.0f }, { { 0.0f, 88.0f, 0.0f }, 25.0f }, + { { 0.0f, 113.0f, 0.0f }, 50.0f }, { { -50.0f, 113.0f, 0.0f }, 50.0f }, { { -50.0f, 163.0f, 0.0f }, 50.0f }, + { { 0.0f, 163.0f, 0.0f }, 50.0f }, { { 0.0f, 213.0f, 0.0f }, 0.0f } } }; -static Data690Block lbl_1_data_960[3] = { - { - { { -50.0f, -12.0f, 0.0f }, 125.0f }, - { { -50.0f, 113.0f, 0.0f }, 50.0f }, - { { 0.0f, 113.0f, 0.0f }, 25.0f }, - { { 0.0f, 138.0f, 0.0f }, 50.0f }, - { { 50.0f, 138.0f, 0.0f }, 37.5f }, - { { 50.0f, 175.5f, 0.0f }, 0.0f } - }, - { - { { 0.0f, -12.0f, 0.0f }, 75.0f }, - { { 0.0f, 63.0f, 0.0f }, 50.0f }, - { { 50.0f, 63.0f, 0.0f }, 75.0f }, - { { 50.0f, 138.0f, 0.0f }, 50.0f }, - { { 0.0f, 138.0f, 0.0f }, 25.0f }, - { { 0.0f, 163.0f, 0.0f }, 50.0f }, - { { -50.0f, 163.0f, 0.0f }, 12.5f }, - { { -50.0f, 175.5f, 0.0f }, 0.0f } - }, - { - { { 50.0f, -12.0f, 0.0f }, 75.0f }, - { { 50.0f, 63.0f, 0.0f }, 50.0f }, - { { 0.0f, 63.0f, 0.0f }, 50.0f }, - { { 0.0f, 113.0f, 0.0f }, 50.0f }, - { { -50.0f, 113.0f, 0.0f }, 50.0f }, - { { -50.0f, 163.0f, 0.0f }, 50.0f }, - { { 0.0f, 163.0f, 0.0f }, 50.0f }, - { { 0.0f, 213.0f, 0.0f }, 0.0f } - } -}; +static Data690Block lbl_1_data_960[3] + = { { { { -50.0f, -12.0f, 0.0f }, 125.0f }, { { -50.0f, 113.0f, 0.0f }, 50.0f }, { { 0.0f, 113.0f, 0.0f }, 25.0f }, + { { 0.0f, 138.0f, 0.0f }, 50.0f }, { { 50.0f, 138.0f, 0.0f }, 37.5f }, { { 50.0f, 175.5f, 0.0f }, 0.0f } }, + { { { 0.0f, -12.0f, 0.0f }, 75.0f }, { { 0.0f, 63.0f, 0.0f }, 50.0f }, { { 50.0f, 63.0f, 0.0f }, 75.0f }, + { { 50.0f, 138.0f, 0.0f }, 50.0f }, { { 0.0f, 138.0f, 0.0f }, 25.0f }, { { 0.0f, 163.0f, 0.0f }, 50.0f }, + { { -50.0f, 163.0f, 0.0f }, 12.5f }, { { -50.0f, 175.5f, 0.0f }, 0.0f } }, + { { { 50.0f, -12.0f, 0.0f }, 75.0f }, { { 50.0f, 63.0f, 0.0f }, 50.0f }, { { 0.0f, 63.0f, 0.0f }, 50.0f }, + { { 0.0f, 113.0f, 0.0f }, 50.0f }, { { -50.0f, 113.0f, 0.0f }, 50.0f }, { { -50.0f, 163.0f, 0.0f }, 50.0f }, + { { 0.0f, 163.0f, 0.0f }, 50.0f }, { { 0.0f, 213.0f, 0.0f }, 0.0f } } }; -static Data690Block lbl_1_data_C30[3] = { - { - { { -50.0f, -12.0f, 0.0f }, 100.0f }, - { { -50.0f, 88.0f, 0.0f }, 50.0f }, - { { 0.0f, 88.0f, 0.0f }, 50.0f }, - { { 0.0f, 138.0f, 0.0f }, 50.0f }, - { { -50.0f, 138.0f, 0.0f }, 37.5f }, - { { -50.0f, 175.5f, 0.0f }, 0.0f } - }, - { - { { 0.0f, -12.0f, 0.0f }, 75.0f }, - { { 0.0f, 63.0f, 0.0f }, 50.0f }, - { { 50.0f, 63.0f, 0.0f }, 100.0f }, - { { 50.0f, 163.0f, 0.0f }, 50.0f }, - { { 0.0f, 163.0f, 0.0f }, 50.0f }, - { { 0.0f, 213.0f, 0.0f }, 0.0f } - }, - { - { { 50.0f, -12.0f, 0.0f }, 75.0f }, - { { 50.0f, 63.0f, 0.0f }, 50.0f }, - { { 0.0f, 63.0f, 0.0f }, 25.0f }, - { { 0.0f, 88.0f, 0.0f }, 50.0f }, - { { -50.0f, 88.0f, 0.0f }, 50.0f }, - { { -50.0f, 138.0f, 0.0f }, 50.0f }, - { { 0.0f, 138.0f, 0.0f }, 25.0f }, - { { 0.0f, 163.0f, 0.0f }, 50.0f }, - { { 50.0f, 163.0f, 0.0f }, 12.5f }, - { { 50.0f, 175.5f, 0.0f }, 0.0f } - } -}; +static Data690Block lbl_1_data_C30[3] + = { { { { -50.0f, -12.0f, 0.0f }, 100.0f }, { { -50.0f, 88.0f, 0.0f }, 50.0f }, { { 0.0f, 88.0f, 0.0f }, 50.0f }, + { { 0.0f, 138.0f, 0.0f }, 50.0f }, { { -50.0f, 138.0f, 0.0f }, 37.5f }, { { -50.0f, 175.5f, 0.0f }, 0.0f } }, + { { { 0.0f, -12.0f, 0.0f }, 75.0f }, { { 0.0f, 63.0f, 0.0f }, 50.0f }, { { 50.0f, 63.0f, 0.0f }, 100.0f }, + { { 50.0f, 163.0f, 0.0f }, 50.0f }, { { 0.0f, 163.0f, 0.0f }, 50.0f }, { { 0.0f, 213.0f, 0.0f }, 0.0f } }, + { { { 50.0f, -12.0f, 0.0f }, 75.0f }, { { 50.0f, 63.0f, 0.0f }, 50.0f }, { { 0.0f, 63.0f, 0.0f }, 25.0f }, { { 0.0f, 88.0f, 0.0f }, 50.0f }, + { { -50.0f, 88.0f, 0.0f }, 50.0f }, { { -50.0f, 138.0f, 0.0f }, 50.0f }, { { 0.0f, 138.0f, 0.0f }, 25.0f }, + { { 0.0f, 163.0f, 0.0f }, 50.0f }, { { 50.0f, 163.0f, 0.0f }, 12.5f }, { { 50.0f, 175.5f, 0.0f }, 0.0f } } }; -void fn_1_9D00(s32 arg0) { +void fn_1_9D00(s32 arg0) +{ s32 temp_r31; s32 var_r30; @@ -230,12 +159,15 @@ void fn_1_9D00(s32 arg0) { if (lbl_1_bss_0->unk00_field0 != 0) { if (temp_r31 == 0 || temp_r31 == 1 || temp_r31 == 7) { var_r30 = 0; - } else { + } + else { var_r30 = 1; } - } else if (temp_r31 == 0 || temp_r31 == 1 || temp_r31 == 7) { + } + else if (temp_r31 == 0 || temp_r31 == 1 || temp_r31 == 7) { var_r30 = 1; - } else { + } + else { var_r30 = 0; } if (BoardPlayerCoinsGet(arg0) < 5) { @@ -243,12 +175,14 @@ void fn_1_9D00(s32 arg0) { } if (var_r30 != 0) { BoardComKeySetLeft(); - } else { + } + else { BoardComKeySetRight(); } } -void fn_1_9DD8(void) { +void fn_1_9DD8(void) +{ Vec sp2C[3]; Vec sp20; Vec sp14; @@ -295,7 +229,7 @@ void fn_1_9DD8(void) { fn_1_CB44(&sp14, 0.0f); fn_1_B088(lbl_1_bss_720); lbl_1_bss_750 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_W01, 19)); - Hu3DModelAttrSet(lbl_1_bss_750, 1); + Hu3DModelAttrSet(lbl_1_bss_750, HU3D_ATTR_DISPOFF); for (i = 0; i < 3; i++) { lbl_1_bss_714[i] = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_A6E0); lbl_1_bss_714[i]->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss714Data), MEMORY_DEFAULT_NUM); @@ -305,7 +239,8 @@ void fn_1_9DD8(void) { temp_r29 = lbl_1_bss_714[i]->data; if (i == lbl_1_bss_730) { lbl_1_bss_714[i]->work[2] = 1; - } else { + } + else { lbl_1_bss_714[i]->work[2] = 0; } temp_r29->unk18 = 1.0f; @@ -325,7 +260,8 @@ void fn_1_9DD8(void) { } } -static void fn_1_A4B8(omObjData *arg0) { +static void fn_1_A4B8(omObjData *arg0) +{ if (lbl_1_bss_72A == 0) { return; } @@ -338,7 +274,8 @@ static void fn_1_A4B8(omObjData *arg0) { lbl_1_bss_754 -= 1.0f; } -static void fn_1_A554(void) { +static void fn_1_A554(void) +{ float temp_f1; lbl_1_bss_72A = 1; @@ -350,7 +287,8 @@ static void fn_1_A554(void) { BoardModelMotionSpeedSet(lbl_1_bss_796, -1.0f); } -static void fn_1_A5FC(void) { +static void fn_1_A5FC(void) +{ s32 i; for (i = 0; i < 3; i++) { @@ -367,7 +305,8 @@ static void fn_1_A5FC(void) { Hu3DModelKill(lbl_1_bss_750); } -static void fn_1_A6E0(omObjData *arg0) { +static void fn_1_A6E0(omObjData *arg0) +{ Bss714Data *temp_r31; Vec sp2C; Vec sp20; @@ -384,10 +323,12 @@ static void fn_1_A6E0(omObjData *arg0) { sp2C.y = 1.5f; if (arg0->work[3] == 1) { arg0->work[2] = 0; - } else { + } + else { arg0->work[2] = 2; } - } else { + } + else { sp2C.y += 0.08f; } BoardModelScaleSetV(arg0->work[0], &sp2C); @@ -399,10 +340,12 @@ static void fn_1_A6E0(omObjData *arg0) { if (arg0->work[1] == 1) { arg0->work[2] = 0; arg0->work[1] = 0; - } else { + } + else { arg0->work[2] = 1; } - } else { + } + else { sp2C.y -= 0.08f; } BoardModelScaleSetV(arg0->work[0], &sp2C); @@ -445,7 +388,7 @@ static void fn_1_A6E0(omObjData *arg0) { Hu3DModelScaleSet(lbl_1_bss_750, temp_r31->unk20.x, temp_r31->unk20.y, temp_r31->unk20.z); break; case 4: - Hu3DModelAttrSet(lbl_1_bss_750, 1); + Hu3DModelAttrSet(lbl_1_bss_750, HU3D_ATTR_DISPOFF); arg0->work[2] = 5; temp_r31->unk08 = 0; temp_r31->unk0C = 12.0f; @@ -476,10 +419,12 @@ static void fn_1_A6E0(omObjData *arg0) { if (sp20.x - lbl_1_bss_738.x < -25.0f) { temp_r31->unk40 = 0; lbl_1_bss_728 = 5; - } else if (sp20.x - lbl_1_bss_738.x > 25.0f) { + } + else if (sp20.x - lbl_1_bss_738.x > 25.0f) { temp_r31->unk40 = 2; lbl_1_bss_728 = 10; - } else { + } + else { temp_r31->unk40 = 1; lbl_1_bss_728 = 20; } @@ -492,7 +437,8 @@ static void fn_1_A6E0(omObjData *arg0) { fn_1_C94C(&(*temp_r31->unk04)[temp_r31->unk08].unk00, &(*temp_r31->unk04)[temp_r31->unk08 + 1].unk00, &sp8); sp20.x = lbl_1_bss_738.x + (sp8.x * var_f31 + (*temp_r31->unk04)[temp_r31->unk08].unk00.x); sp20.y = lbl_1_bss_738.y + (sp8.y * var_f31 + (*temp_r31->unk04)[temp_r31->unk08].unk00.y); - } else { + } + else { sp20.x = lbl_1_bss_738.x + (*temp_r31->unk04)[temp_r31->unk08].unk00.x; sp20.y = lbl_1_bss_738.y + (*temp_r31->unk04)[temp_r31->unk08].unk00.y; } @@ -520,7 +466,8 @@ static void fn_1_A6E0(omObjData *arg0) { } } -static float fn_1_B018(Data690Block *arg0) { +static float fn_1_B018(Data690Block *arg0) +{ float var_f31; s32 i; @@ -536,7 +483,8 @@ static float fn_1_B018(Data690Block *arg0) { return var_f31; } -static void fn_1_B088(omObjData *arg0) { +static void fn_1_B088(omObjData *arg0) +{ Bss720Data *temp_r31; u16 sp8[] = { 20, 60, 120, 190 }; s32 i; @@ -548,13 +496,15 @@ static void fn_1_B088(omObjData *arg0) { temp_r31->unk26 = i; } } - } else { + } + else { temp_r31->unk26 = rand8() % 3; } temp_r31->unk24 = rand8() % 20 + 20; } -static void fn_1_B1CC(omObjData *arg0, u16 *arg1, u16 *arg2) { +static void fn_1_B1CC(omObjData *arg0, u16 *arg1, u16 *arg2) +{ Bss720Data *temp_r31; temp_r31 = arg0->data; @@ -566,28 +516,35 @@ static void fn_1_B1CC(omObjData *arg0, u16 *arg1, u16 *arg2) { if (temp_r31->unk28 >= 4 || (rand8() & 1)) { if (temp_r31->unk26 == lbl_1_bss_730) { *arg2 |= 0x100; - } else if (temp_r31->unk26 < lbl_1_bss_730) { + } + else if (temp_r31->unk26 < lbl_1_bss_730) { *arg1 |= 1; - } else { + } + else { *arg1 |= 2; } temp_r31->unk24 = rand8() % 10 + 10; - } else { + } + else { temp_r31->unk28++; temp_r31->unk24 = rand8() % 10 + 20; if (lbl_1_bss_730 == 0) { *arg1 |= 2; - } else if (lbl_1_bss_730 == 2) { + } + else if (lbl_1_bss_730 == 2) { *arg1 |= 1; - } else if (rand8() & 1) { + } + else if (rand8() & 1) { *arg1 |= 1; - } else { + } + else { *arg1 |= 2; } } } -static void fn_1_B3B8(omObjData *arg0) { +static void fn_1_B3B8(omObjData *arg0) +{ float temp_f31; temp_f31 = BoardModelMotionMaxTimeGet(lbl_1_bss_796); @@ -599,7 +556,8 @@ static void fn_1_B3B8(omObjData *arg0) { } } -static void fn_1_B478(omObjData *arg0) { +static void fn_1_B478(omObjData *arg0) +{ Bss720Data *temp_r31; Vec sp18; Vec spC; @@ -616,7 +574,8 @@ static void fn_1_B478(omObjData *arg0) { } if (GWPlayerCfg[lbl_1_bss_798].iscom == 1) { fn_1_B1CC(arg0, &var_r29, &var_r27); - } else { + } + else { var_r29 = HuPadDStkRep[lbl_1_bss_79C]; var_r27 = HuPadBtnDown[lbl_1_bss_79C]; } @@ -651,7 +610,8 @@ static void fn_1_B478(omObjData *arg0) { } } -static void fn_1_BAF8(omObjData *arg0) { +static void fn_1_BAF8(omObjData *arg0) +{ Bss720Data *temp_r31; Vec sp14; Vec sp8; @@ -675,7 +635,8 @@ static void fn_1_BAF8(omObjData *arg0) { BoardPlayerPosSetV(lbl_1_bss_798, &sp14); } -static void fn_1_BCDC(omObjData *arg0) { +static void fn_1_BCDC(omObjData *arg0) +{ Bss720Data *temp_r29; Bss714Data *temp_r31; Vec sp14; @@ -691,7 +652,7 @@ static void fn_1_BCDC(omObjData *arg0) { lbl_1_bss_710->work[0] = 1; lbl_1_bss_714[lbl_1_bss_730]->work[2] = 3; temp_r31 = lbl_1_bss_714[lbl_1_bss_730]->data; - Hu3DModelAttrReset(lbl_1_bss_750, 1); + Hu3DModelAttrReset(lbl_1_bss_750, HU3D_ATTR_DISPOFF); Hu3DModelPosSet(lbl_1_bss_750, sp14.x, sp14.y, sp14.z); temp_r31->unk20.x = 1.4f; temp_r31->unk20.y = 1.4f; @@ -706,19 +667,22 @@ static void fn_1_BCDC(omObjData *arg0) { } } -static void fn_1_BF00(omObjData *arg0) { +static void fn_1_BF00(omObjData *arg0) +{ Bss720Data *temp_r31; temp_r31 = arg0->data; if (temp_r31->unk1C == 0) { lbl_1_bss_714[lbl_1_bss_730]->work[2] = 4; arg0->func = fn_1_BF68; - } else { + } + else { temp_r31->unk1C--; } } -static void fn_1_BF68(omObjData *arg0) { +static void fn_1_BF68(omObjData *arg0) +{ Bss720Data *sp8; sp8 = arg0->data; @@ -729,7 +693,8 @@ static void fn_1_BF68(omObjData *arg0) { } } -static void fn_1_C000(void) { +static void fn_1_C000(void) +{ char sp8[16]; // array size may range between 1 and 16 (inclusive) omObjData *temp_r30; Bss720Data *temp_r31; @@ -754,7 +719,8 @@ static void fn_1_C000(void) { } } -static void fn_1_C0FC(omObjData *arg0) { +static void fn_1_C0FC(omObjData *arg0) +{ Bss720Data *temp_r31; Vec sp8; @@ -774,7 +740,8 @@ static void fn_1_C0FC(omObjData *arg0) { BoardPlayerPosSetV(lbl_1_bss_798, &sp8); } -static void fn_1_C25C(void) { +static void fn_1_C25C(void) +{ Vec sp11C[20]; Vec sp2C[20]; Vec sp20; @@ -842,7 +809,8 @@ static void fn_1_C25C(void) { } } -static void fn_1_C844(void) { +static void fn_1_C844(void) +{ omObjData *var_r31; BoardWinCreate(2, MAKE_MESSID(11, 7), 0); @@ -856,7 +824,8 @@ static void fn_1_C844(void) { } } -static void fn_1_C894(omObjData *arg0) { +static void fn_1_C894(omObjData *arg0) +{ float temp_f31; lbl_1_bss_72A = 1; @@ -869,33 +838,38 @@ static void fn_1_C894(omObjData *arg0) { omDelObjEx(HuPrcCurrentGet(), arg0); } -static void fn_1_C94C(Vec *arg0, Vec *arg1, Vec *arg2) { +static void fn_1_C94C(Vec *arg0, Vec *arg1, Vec *arg2) +{ VECSubtract(arg1, arg0, arg2); VECNormalize(arg2, arg2); } -static float fn_1_C998(Vec *arg0) { +static float fn_1_C998(Vec *arg0) +{ float temp_f31; if (arg0->x || arg0->z) { if (arg0->x == 0.0f) { if (arg0->z > 0.0f) { return 0.0f; - } else { + } + else { return 180.0f; } } if (arg0->z == 0.0f) { if (arg0->x > 0.0f) { return 90.0f; - } else { + } + else { return 270.0f; } } temp_f31 = atan2d(arg0->z, arg0->x); if (arg0->z < 0.0f) { temp_f31 = 90.0f - temp_f31; - } else { + } + else { temp_f31 = 90.0f - temp_f31; if (temp_f31 < 0.0f) { temp_f31 += 360.0f; @@ -906,7 +880,8 @@ static float fn_1_C998(Vec *arg0) { return -1.0f; } -static u32 fn_1_CB44(Vec *arg0, float arg1) { +static u32 fn_1_CB44(Vec *arg0, float arg1) +{ Vec sp24; Vec sp18; Vec spC; @@ -923,22 +898,27 @@ static u32 fn_1_CB44(Vec *arg0, float arg1) { var_f30 = var_f28 - var_f31; if (arg1 == 0.0f) { var_f31 = var_f28; - } else if (fabs(var_f30) > arg1) { + } + else if (fabs(var_f30) > arg1) { if (var_f30 < 0.0f) { var_f30 += 360.0f; } if (var_f30 < 180.0f) { if (var_f30 > arg1) { var_f31 += arg1; - } else { + } + else { var_f31 += var_f30; } - } else if (360.0f - var_f30 > arg1) { + } + else if (360.0f - var_f30 > arg1) { var_f31 -= arg1; - } else { + } + else { var_f31 -= 360.0f - var_f30; } - } else { + } + else { var_f31 = var_f28; } if (var_f31 >= 360.0f) { @@ -950,12 +930,14 @@ static u32 fn_1_CB44(Vec *arg0, float arg1) { BoardPlayerRotYSet(lbl_1_bss_798, var_f31); if (var_f31 == var_f28) { return 1; - } else { + } + else { return 0; } } -static void fn_1_CEC4(void) { +static void fn_1_CEC4(void) +{ lbl_1_bss_70C = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_W01, 20)); lbl_1_bss_710 = omAddObjEx(boardObjMan, 0x101, 1, 0, -1, fn_1_D07C); lbl_1_bss_710->data = HuMemDirectMallocNum(HEAP_SYSTEM, 12, MEMORY_DEFAULT_NUM); @@ -964,16 +946,18 @@ static void fn_1_CEC4(void) { Hu3DParticleScaleSet(lbl_1_bss_710->model[0], 5.0f); Hu3DParticleHookSet(lbl_1_bss_710->model[0], fn_1_D114); Hu3DParticleBlendModeSet(lbl_1_bss_710->model[0], 1); - Hu3DModelAttrSet(lbl_1_bss_710->model[0], 1); + Hu3DModelAttrSet(lbl_1_bss_710->model[0], HU3D_ATTR_DISPOFF); lbl_1_bss_710->work[0] = 0; } -static void fn_1_D034(void) { +static void fn_1_D034(void) +{ Hu3DModelKill(lbl_1_bss_710->model[0]); omDelObjEx(HuPrcCurrentGet(), lbl_1_bss_710); } -static void fn_1_D07C(omObjData *arg0) { +static void fn_1_D07C(omObjData *arg0) +{ void *sp8; sp8 = arg0->data; @@ -982,7 +966,7 @@ static void fn_1_D07C(omObjData *arg0) { break; case 1: arg0->work[0] = 2; - Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); Hu3DModelScaleSet(arg0->model[0], 10.0f, 10.0f, 10.0f); break; case 2: @@ -990,7 +974,8 @@ static void fn_1_D07C(omObjData *arg0) { } } -static void fn_1_D114(ModelData *model, ParticleData *particle, Mtx matrix) { +static void fn_1_D114(ModelData *model, ParticleData *particle, Mtx matrix) +{ Bss714Data *temp_r28; HsfanimStruct01 *var_r31; Vec sp8; @@ -1006,7 +991,7 @@ static void fn_1_D114(ModelData *model, ParticleData *particle, Mtx matrix) { for (i = 0; i < particle->unk_30; i++, var_r31++) { var_r31->unk2C = 0.0f; } - particle->unk_1C = (void*) 1; + particle->unk_1C = (void *)1; } if (temp_r28->unk1C > 0.0f) { for (i = 0; i < 80.0f * temp_r28->unk1C; i++) { diff --git a/src/REL/w01Dll/mg_item.c b/src/REL/w01Dll/mg_item.c index e0dabf97..ab932863 100755 --- a/src/REL/w01Dll/mg_item.c +++ b/src/REL/w01Dll/mg_item.c @@ -1,6 +1,7 @@ #include "REL/w01Dll.h" #include "game/audio.h" #include "game/data.h" +#include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfanim.h" #include "game/hsfdraw.h" @@ -12,15 +13,14 @@ #include "game/pad.h" #include "game/process.h" #include "game/sprite.h" -#include "game/frand.h" -#include "game/window.h" #include "game/board/audio.h" #include "game/board/main.h" #include "game/board/model.h" #include "game/board/player.h" #include "game/board/ui.h" #include "game/board/window.h" +#include "game/window.h" #include "dolphin.h" #include "ext_math.h" @@ -83,46 +83,21 @@ static s16 lbl_1_bss_7A8; static s32 lbl_1_bss_7A4; static AnimData *lbl_1_bss_7A0; -static s32 lbl_1_data_F08[] = { - DATA_MAKE_NUM(DATADIR_BOARD, 109), - DATA_MAKE_NUM(DATADIR_BOARD, 110), - DATA_MAKE_NUM(DATADIR_BOARD, 111), - DATA_MAKE_NUM(DATADIR_BOARD, 112), - DATA_MAKE_NUM(DATADIR_BOARD, 113), - DATA_MAKE_NUM(DATADIR_BOARD, 114), - DATA_MAKE_NUM(DATADIR_BOARD, 115), - DATA_MAKE_NUM(DATADIR_BOARD, 116), - DATA_MAKE_NUM(DATADIR_BOARD, 118), - DATA_MAKE_NUM(DATADIR_BOARD, 119), - DATA_MAKE_NUM(DATADIR_BOARD, 120), - DATA_MAKE_NUM(DATADIR_BOARD, 121), - DATA_MAKE_NUM(DATADIR_BOARD, 122), - DATA_MAKE_NUM(DATADIR_BOARD, 123) -}; +static s32 lbl_1_data_F08[] = { DATA_MAKE_NUM(DATADIR_BOARD, 109), DATA_MAKE_NUM(DATADIR_BOARD, 110), DATA_MAKE_NUM(DATADIR_BOARD, 111), + DATA_MAKE_NUM(DATADIR_BOARD, 112), DATA_MAKE_NUM(DATADIR_BOARD, 113), DATA_MAKE_NUM(DATADIR_BOARD, 114), DATA_MAKE_NUM(DATADIR_BOARD, 115), + DATA_MAKE_NUM(DATADIR_BOARD, 116), DATA_MAKE_NUM(DATADIR_BOARD, 118), DATA_MAKE_NUM(DATADIR_BOARD, 119), DATA_MAKE_NUM(DATADIR_BOARD, 120), + DATA_MAKE_NUM(DATADIR_BOARD, 121), DATA_MAKE_NUM(DATADIR_BOARD, 122), DATA_MAKE_NUM(DATADIR_BOARD, 123) }; -static s32 lbl_1_data_F40[8] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 23), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 23), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 23), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 23), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 23), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 23), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 23) -}; +static s32 lbl_1_data_F40[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 23), DATA_MAKE_NUM(DATADIR_PEACHMOT, 23), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 23), DATA_MAKE_NUM(DATADIR_WARIOMOT, 23), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 23), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 23), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 23) }; -static s32 lbl_1_data_F60[8] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 64), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 64), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 64), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 64), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 64), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 64), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 64), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 64) -}; +static s32 lbl_1_data_F60[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 64), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 64), DATA_MAKE_NUM(DATADIR_PEACHMOT, 64), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 64), DATA_MAKE_NUM(DATADIR_WARIOMOT, 64), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 64), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 64), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 64) }; -void fn_1_D740(s16 *arg0) { +void fn_1_D740(s16 *arg0) +{ s16 sp10[14]; s16 sp8[4]; float temp_f30; @@ -170,14 +145,14 @@ void fn_1_D740(s16 *arg0) { Hu3DData[lbl_1_bss_7FC[i]->model[1]].unk_F0[1][3] = -50.0f; } if (lbl_1_bss_7FC[i]->work[1] == 11) { - Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], HU3D_MOTATTR_LOOP); } if (lbl_1_bss_7FC[i]->work[1] == 4) { Hu3DMotionSpeedSet(lbl_1_bss_7FC[i]->model[1], 0.0f); } - Hu3DModelAttrReset(sp8[i], 1); - Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], 1); - Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], 0x40000002); + Hu3DModelAttrReset(sp8[i], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], HU3D_MOTATTR_PAUSE); omSetTra(lbl_1_bss_7FC[i], lbl_1_bss_80C.x, lbl_1_bss_80C.y + 66.0f, lbl_1_bss_80C.z); var_f31 = 90.0f - 90.0f * i + 360.0f * (temp_f30 / temp_f29); if (var_f31 >= 360.0f) { @@ -196,13 +171,15 @@ void fn_1_D740(s16 *arg0) { } } -void fn_1_DD84(void) { +void fn_1_DD84(void) +{ s32 i; for (i = 0; i < 4; i++) { if (i != 0) { Hu3DModelKill(lbl_1_bss_7FC[i]->model[0]); - } else { + } + else { BoardModelVisibilitySet(lbl_1_bss_6C4[19], 0); Hu3DAnimKill(lbl_1_bss_7FC[i]->work[0]); } @@ -215,7 +192,8 @@ void fn_1_DD84(void) { } } -void fn_1_DE94(void) { +void fn_1_DE94(void) +{ s32 i; BoardModelPosGet(lbl_1_bss_6C4[16], &lbl_1_bss_80C); @@ -237,14 +215,16 @@ void fn_1_DE94(void) { lbl_1_bss_7B4 = 0; } -static void fn_1_E100(void) { +static void fn_1_E100(void) +{ lbl_1_bss_7AA = 1; BoardMGExit(); HuAudFXPlay(0x40F); BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0x40000004); } -static void fn_1_E154(void) { +static void fn_1_E154(void) +{ fn_1_DD84(); BoardPlayerMotionKill(lbl_1_bss_7E4, lbl_1_bss_7BC); BoardPlayerMotionKill(lbl_1_bss_7E4, lbl_1_bss_7B8); @@ -252,18 +232,18 @@ static void fn_1_E154(void) { BoardMGDoneFlagSet(0); } -static void fn_1_E2B8(omObjData *arg0) { +static void fn_1_E2B8(omObjData *arg0) +{ if (lbl_1_bss_7AA == 1 && BoardMGDoneFlagGet() == 1) { fn_1_E154(); omDelObjEx(HuPrcCurrentGet(), arg0); } } -static char *lbl_1_data_F9C[] = { - "uma1", "uma2", "uma3", "uma4" -}; +static char *lbl_1_data_F9C[] = { "uma1", "uma2", "uma3", "uma4" }; -static void fn_1_E44C(omObjData *arg0) { +static void fn_1_E44C(omObjData *arg0) +{ Vec sp18; Vec spC; float temp_f27; @@ -318,7 +298,8 @@ static void fn_1_E44C(omObjData *arg0) { BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], lbl_1_bss_7EC); } -static void fn_1_E914(omObjData *arg0) { +static void fn_1_E914(omObjData *arg0) +{ Vec spC; s32 i; @@ -346,7 +327,8 @@ static void fn_1_E914(omObjData *arg0) { BoardPlayerPosSetV(lbl_1_bss_7E4, &spC); } -static void fn_1_ECD4(omObjData *arg0) { +static void fn_1_ECD4(omObjData *arg0) +{ lbl_1_bss_7EC *= 1.05f; lbl_1_bss_7E8 *= 1.05f; if (lbl_1_bss_7EC > 2.0f) { @@ -368,16 +350,19 @@ static void fn_1_ECD4(omObjData *arg0) { fn_1_10CF0(arg0->work[2]); } -static void fn_1_EEA0(omObjData *arg0, u16 *arg1) { +static void fn_1_EEA0(omObjData *arg0, u16 *arg1) +{ *arg1 = 0; if (arg0->work[3] != 0) { arg0->work[3]--; - } else { + } + else { *arg1 |= 0x100; } } -static void fn_1_EED8(omObjData *arg0) { +static void fn_1_EED8(omObjData *arg0) +{ s16 temp_r29; u16 var_r30; @@ -391,7 +376,8 @@ static void fn_1_EED8(omObjData *arg0) { } if (GWPlayerCfg[lbl_1_bss_7E4].iscom == 1) { fn_1_EEA0(arg0, &var_r30); - } else { + } + else { var_r30 = HuPadBtnDown[temp_r29]; } if (lbl_1_bss_7D2 < 0 || (var_r30 & 0x100)) { @@ -402,7 +388,8 @@ static void fn_1_EED8(omObjData *arg0) { } } -static void fn_1_F09C(omObjData *arg0) { +static void fn_1_F09C(omObjData *arg0) +{ float temp_f31; float var_f30; @@ -424,8 +411,10 @@ static void fn_1_F09C(omObjData *arg0) { BoardModelMotionTimeSet(lbl_1_bss_6C4[18], var_f30); arg0->work[0] = fn_1_1001C(arg0->work[2]); BoardModelVisibilitySet(lbl_1_bss_6C4[20], 1); - BoardModelPosSet(lbl_1_bss_6C4[20], lbl_1_bss_7FC[arg0->work[0]]->trans.x, lbl_1_bss_7FC[arg0->work[0]]->trans.y + 1.0f, lbl_1_bss_7FC[arg0->work[0]]->trans.z); - BoardModelRotSet(lbl_1_bss_6C4[20], lbl_1_bss_7FC[arg0->work[0]]->rot.x, lbl_1_bss_7FC[arg0->work[0]]->rot.y + 1.0f, lbl_1_bss_7FC[arg0->work[0]]->rot.z); + BoardModelPosSet(lbl_1_bss_6C4[20], lbl_1_bss_7FC[arg0->work[0]]->trans.x, lbl_1_bss_7FC[arg0->work[0]]->trans.y + 1.0f, + lbl_1_bss_7FC[arg0->work[0]]->trans.z); + BoardModelRotSet( + lbl_1_bss_6C4[20], lbl_1_bss_7FC[arg0->work[0]]->rot.x, lbl_1_bss_7FC[arg0->work[0]]->rot.y + 1.0f, lbl_1_bss_7FC[arg0->work[0]]->rot.z); arg0->work[1] = 60; BoardAudSeqFadeOut(1, 100); arg0->func = fn_1_F348; @@ -433,10 +422,12 @@ static void fn_1_F09C(omObjData *arg0) { } } -static void fn_1_F348(omObjData *arg0) { +static void fn_1_F348(omObjData *arg0) +{ if ((arg0->work[1] / 4) & 1) { BoardModelVisibilitySet(lbl_1_bss_6C4[20], 0); - } else { + } + else { BoardModelVisibilitySet(lbl_1_bss_6C4[20], 1); } if ((arg0->work[1] -= 1) == 0) { @@ -447,7 +438,8 @@ static void fn_1_F348(omObjData *arg0) { } } -static void fn_1_F3F8(omObjData *arg0) { +static void fn_1_F3F8(omObjData *arg0) +{ Vec sp18; Vec spC; @@ -472,7 +464,8 @@ static void fn_1_F3F8(omObjData *arg0) { arg0->func = fn_1_F6E8; } -static void fn_1_F6E8(omObjData *arg0) { +static void fn_1_F6E8(omObjData *arg0) +{ Vec sp8; BoardPlayerPosGet(lbl_1_bss_7E4, &sp8); @@ -489,7 +482,8 @@ static void fn_1_F6E8(omObjData *arg0) { BoardPlayerPosSetV(lbl_1_bss_7E4, &sp8); } -static void fn_1_F890(omObjData *arg0) { +static void fn_1_F890(omObjData *arg0) +{ Vec sp8; BoardPlayerRotGet(lbl_1_bss_7E4, &sp8); @@ -498,23 +492,28 @@ static void fn_1_F890(omObjData *arg0) { lbl_1_bss_7F0->work[0] = 0; lbl_1_bss_7F0->func = fn_1_10820; arg0->func = fn_1_FA1C; - } else if (sp8.y > 180.0f) { + } + else if (sp8.y > 180.0f) { if (360.0f - sp8.y < 3.0f) { sp8.y = 0.0f; - } else { + } + else { sp8.y += 3.0f; } - } else { + } + else { if (sp8.y < 3.0f) { sp8.y = 0.0f; - } else { + } + else { sp8.y -= 3.0f; } } BoardPlayerRotSetV(lbl_1_bss_7E4, &sp8); } -static void fn_1_FA1C(omObjData *arg0) { +static void fn_1_FA1C(omObjData *arg0) +{ if (lbl_1_bss_7F0->work[0] == 1) { BoardPlayerMotionShiftSet(lbl_1_bss_7E4, lbl_1_bss_7BC, 0.0f, 10.0f, HU3D_MOTATTR_NONE); arg0->work[0] = 30; @@ -523,7 +522,8 @@ static void fn_1_FA1C(omObjData *arg0) { } } -static void fn_1_FABC(omObjData *arg0) { +static void fn_1_FABC(omObjData *arg0) +{ Process *var_r30; if (arg0->work[0] == 0) { @@ -533,12 +533,14 @@ static void fn_1_FABC(omObjData *arg0) { BoardAudSeqPause(0, 0, 1000); arg0->func = NULL; } - } else { + } + else { arg0->work[0]--; } } -static void fn_1_FB58(void) { +static void fn_1_FB58(void) +{ omObjData *temp_r31; BoardWinCreate(2, MAKE_MESSID(10, 6), 0); @@ -558,7 +560,8 @@ static void fn_1_FB58(void) { } } -static void fn_1_FC3C(omObjData *arg0) { +static void fn_1_FC3C(omObjData *arg0) +{ Process *var_r31; if (lbl_1_bss_7F0->work[0] == 1) { @@ -570,7 +573,8 @@ static void fn_1_FC3C(omObjData *arg0) { } } -static void fn_1_FCEC(void) { +static void fn_1_FCEC(void) +{ omObjData *var_r31; BoardWinCreate(2, MAKE_MESSID(10, 7), 0); @@ -584,7 +588,8 @@ static void fn_1_FCEC(void) { } } -static void fn_1_FD3C(omObjData *arg0) { +static void fn_1_FD3C(omObjData *arg0) +{ BoardStatusShowSetAll(1); BoardCameraTargetModelSet(lbl_1_bss_6C4[21]); BoardCameraOffsetSet(0.0f, 0.0f, 0.0f); @@ -597,7 +602,8 @@ static void fn_1_FD3C(omObjData *arg0) { arg0->func = fn_1_FE44; } -static void fn_1_FE44(omObjData *arg0) { +static void fn_1_FE44(omObjData *arg0) +{ if (BoardStatusStopCheck(lbl_1_bss_7E4) && BoardCameraMotionIsDone()) { lbl_1_bss_7AA = 1; BoardMGExit(); @@ -607,7 +613,8 @@ static void fn_1_FE44(omObjData *arg0) { } } -static void fn_1_FED0(omObjData *arg0) { +static void fn_1_FED0(omObjData *arg0) +{ float temp_f30; float var_f31; float var_f29; @@ -624,7 +631,8 @@ static void fn_1_FED0(omObjData *arg0) { omSetRot(arg0, 0.0f, var_f31, 0.0f); } -static s16 fn_1_1001C(u32 arg0) { +static s16 fn_1_1001C(u32 arg0) +{ float var_f29; float var_f28; float temp_f27; @@ -649,7 +657,8 @@ static s16 fn_1_1001C(u32 arg0) { return var_f31; } -static void fn_1_101B8(s16 arg0) { +static void fn_1_101B8(s16 arg0) +{ omObjData *var_r31; float *var_r30; float var_f27; @@ -661,7 +670,7 @@ static void fn_1_101B8(s16 arg0) { var_r31 = lbl_1_bss_7F0 = omAddObjEx(boardObjMan, 0x165, 3, 0, -1, fn_1_10664); var_r31->model[0] = lbl_1_bss_7FC[arg0]->model[1]; - Hu3DModelAttrReset(var_r31->model[0], 1); + Hu3DModelAttrReset(var_r31->model[0], HU3D_ATTR_DISPOFF); lbl_1_bss_7F0->work[1] = lbl_1_bss_7FC[arg0]->work[1]; lbl_1_bss_7F0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 3 * sizeof(float), MEMORY_DEFAULT_NUM); var_r30 = lbl_1_bss_7F0->data; @@ -696,7 +705,8 @@ static void fn_1_101B8(s16 arg0) { lbl_1_bss_7AC = HuAudFXPlay(0x35F); } -static void fn_1_10664(omObjData *arg0) { +static void fn_1_10664(omObjData *arg0) +{ float *temp_r31; float var_f31; @@ -705,7 +715,8 @@ static void fn_1_10664(omObjData *arg0) { if (arg0->work[0] == 0) { if (var_f31 > 1.0f) { var_f31 = 1.0f; - } else { + } + else { temp_r31[0] += 0.025f; } arg0->trans.y += temp_r31[2]; @@ -714,7 +725,8 @@ static void fn_1_10664(omObjData *arg0) { arg0->work[0] = 1; } omSetSca(arg0, var_f31, var_f31, var_f31); - } else { + } + else { arg0->trans.y += sind(temp_r31[1]); temp_r31[1] += 4.0f; if (temp_r31[1] >= 360.0f) { @@ -723,7 +735,8 @@ static void fn_1_10664(omObjData *arg0) { } } -static void fn_1_10820(omObjData *arg0) { +static void fn_1_10820(omObjData *arg0) +{ Vec sp24; Vec sp18; Vec spC; @@ -744,7 +757,8 @@ static void fn_1_10820(omObjData *arg0) { arg0->trans.x = sp24.x; arg0->trans.z = sp24.z; arg0->work[0] = 1; - } else { + } + else { arg0->trans.x += 8.0f * spC.x; arg0->trans.z += 8.0f * spC.z; } @@ -756,7 +770,8 @@ static void fn_1_10820(omObjData *arg0) { } } -static void fn_1_10AE8(omObjData *arg0) { +static void fn_1_10AE8(omObjData *arg0) +{ float *temp_r31; temp_r31 = arg0->data; @@ -772,7 +787,8 @@ static void fn_1_10AE8(omObjData *arg0) { omSetSca(arg0, temp_r31[0], temp_r31[0], temp_r31[0]); } -static float fn_1_10BB0(u32 arg0) { +static float fn_1_10BB0(u32 arg0) +{ float var_f30; float temp_f29; float var_f31; @@ -793,7 +809,8 @@ static float fn_1_10BB0(u32 arg0) { return var_f31; } -static void fn_1_10CF0(u32 arg0) { +static void fn_1_10CF0(u32 arg0) +{ float var_f30; float temp_f29; float var_f31; @@ -818,28 +835,32 @@ static void fn_1_10CF0(u32 arg0) { BoardPlayerRotSet(lbl_1_bss_7E4, 0.0f, var_f28, 0.0f); } -static float fn_1_10EB8(Vec *arg0) { +static float fn_1_10EB8(Vec *arg0) +{ float var_f31; if (arg0->x || arg0->z) { if (arg0->x == 0.0f) { if (arg0->z > 0.0f) { return 0.0f; - } else { + } + else { return 180.0f; } } if (arg0->z == 0.0f) { if (arg0->x > 0.0f) { return 90.0f; - } else { + } + else { return 270.0f; } } var_f31 = atan2d(arg0->z, arg0->x); if (arg0->z < 0.0f) { var_f31 = 90.0f - var_f31; - } else { + } + else { var_f31 = 90.0f - var_f31; if (var_f31 < 0.0f) { var_f31 += 360.0f; @@ -850,7 +871,8 @@ static float fn_1_10EB8(Vec *arg0) { return -1.0f; } -static void fn_1_11064(ModelData *model, ParticleData *particle, Mtx matrix) { +static void fn_1_11064(ModelData *model, ParticleData *particle, Mtx matrix) +{ HsfanimStruct01 *var_r31; float temp_f30; float temp_f29; @@ -898,7 +920,8 @@ static void fn_1_11064(ModelData *model, ParticleData *particle, Mtx matrix) { } } -static void fn_1_11484(ModelData *model, ParticleData *particle, Mtx matrix) { +static void fn_1_11484(ModelData *model, ParticleData *particle, Mtx matrix) +{ HsfanimStruct01 *var_r31; float temp_f29; float temp_f30; diff --git a/src/REL/w04Dll/boo_event.c b/src/REL/w04Dll/boo_event.c index c3cc3e8f..2913f005 100755 --- a/src/REL/w04Dll/boo_event.c +++ b/src/REL/w04Dll/boo_event.c @@ -1,6 +1,14 @@ #include "REL/w04Dll.h" #include "game/audio.h" +#include "game/board/audio.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/space.h" +#include "game/board/ui.h" +#include "game/board/window.h" #include "game/data.h" +#include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfanim.h" #include "game/hsfdraw.h" @@ -12,14 +20,6 @@ #include "game/process.h" #include "game/sprite.h" #include "game/window.h" -#include "game/board/audio.h" -#include "game/board/main.h" -#include "game/board/model.h" -#include "game/board/player.h" -#include "game/board/space.h" -#include "game/board/ui.h" -#include "game/board/window.h" -#include "game/frand.h" #include "dolphin.h" #include "ext_math.h" @@ -94,50 +94,25 @@ static s16 lbl_1_bss_50; static AnimData *lbl_1_bss_4C; static Process *lbl_1_bss_48; -static s32 lbl_1_data_2D0[8] = { - DATADIR_MARIOMOT, - DATADIR_LUIGIMOT, - DATADIR_PEACHMOT, - DATADIR_YOSHIMOT, - DATADIR_WARIOMOT, - DATADIR_DONKEYMOT, - DATADIR_DAISYMOT, - DATADIR_WALUIGIMOT -}; +static s32 lbl_1_data_2D0[8] = { DATADIR_MARIOMOT, DATADIR_LUIGIMOT, DATADIR_PEACHMOT, DATADIR_YOSHIMOT, DATADIR_WARIOMOT, DATADIR_DONKEYMOT, + DATADIR_DAISYMOT, DATADIR_WALUIGIMOT }; static s32 lbl_1_data_2F0 = 28; -static s32 lbl_1_data_2F4[8] = { - DATA_MAKE_NUM(DATADIR_W04, 35), - DATA_MAKE_NUM(DATADIR_W04, 36), - DATA_MAKE_NUM(DATADIR_W04, 37), - DATA_MAKE_NUM(DATADIR_W04, 38), - DATA_MAKE_NUM(DATADIR_W04, 39), - DATA_MAKE_NUM(DATADIR_W04, 40), - DATA_MAKE_NUM(DATADIR_W04, 41), - DATA_MAKE_NUM(DATADIR_W04, 42) -}; +static s32 lbl_1_data_2F4[8] + = { DATA_MAKE_NUM(DATADIR_W04, 35), DATA_MAKE_NUM(DATADIR_W04, 36), DATA_MAKE_NUM(DATADIR_W04, 37), DATA_MAKE_NUM(DATADIR_W04, 38), + DATA_MAKE_NUM(DATADIR_W04, 39), DATA_MAKE_NUM(DATADIR_W04, 40), DATA_MAKE_NUM(DATADIR_W04, 41), DATA_MAKE_NUM(DATADIR_W04, 42) }; -static s32 lbl_1_data_314[8] = { - DATA_MAKE_NUM(DATADIR_W04, 43), - DATA_MAKE_NUM(DATADIR_W04, 44), - DATA_MAKE_NUM(DATADIR_W04, 45), - DATA_MAKE_NUM(DATADIR_W04, 46), - DATA_MAKE_NUM(DATADIR_W04, 47), - DATA_MAKE_NUM(DATADIR_W04, 48), - DATA_MAKE_NUM(DATADIR_W04, 49), - DATA_MAKE_NUM(DATADIR_W04, 50) -}; +static s32 lbl_1_data_314[8] + = { DATA_MAKE_NUM(DATADIR_W04, 43), DATA_MAKE_NUM(DATADIR_W04, 44), DATA_MAKE_NUM(DATADIR_W04, 45), DATA_MAKE_NUM(DATADIR_W04, 46), + DATA_MAKE_NUM(DATADIR_W04, 47), DATA_MAKE_NUM(DATADIR_W04, 48), DATA_MAKE_NUM(DATADIR_W04, 49), DATA_MAKE_NUM(DATADIR_W04, 50) }; -static char *lbl_1_data_348[] = { - "kan1", "kan2", "kan3", "kan4" -}; +static char *lbl_1_data_348[] = { "kan1", "kan2", "kan3", "kan4" }; -static float lbl_1_data_358[] = { - -150.00001f, -170.00001f, -30.0f, -220.0f -}; +static float lbl_1_data_358[] = { -150.00001f, -170.00001f, -30.0f, -220.0f }; -static void fn_1_20EC(void) { +static void fn_1_20EC(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -258,7 +233,8 @@ static void fn_1_20EC(void) { HuPrcEnd(); } -static void fn_1_28BC(void) { +static void fn_1_28BC(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -273,7 +249,7 @@ static void fn_1_28BC(void) { var_r27 = HuPrcChildCreate(fn_1_45A8, 0x2001, 0x800, 0, boardMainProc); HuPrcDestructorSet2(var_r27, fn_1_4630); - var_r26 = (float*) &var_r27->user_data; + var_r26 = (float *)&var_r27->user_data; lbl_1_bss_C2 = fn_1_4680(lbl_1_bss_78); var_r29 = 0; while (var_r29 == 0) { @@ -318,7 +294,8 @@ static void fn_1_28BC(void) { } } -static void fn_1_2B8C(void) { +static void fn_1_2B8C(void) +{ s32 i; while (fn_1_2F54(4) == 0 || lbl_1_bss_7C != 0) { @@ -331,7 +308,8 @@ static void fn_1_2B8C(void) { } } -static void fn_1_2C10(void) { +static void fn_1_2C10(void) +{ Vec sp8; BssE4Data *temp_r31; s32 i; @@ -356,8 +334,9 @@ static void fn_1_2C10(void) { temp_r31->unk0C = 0; if (i == 0) { temp_r31->unk0A = lbl_1_bss_FA; - } else { - temp_r31->unk0A = ((BssE4Data*) lbl_1_bss_E4[i - 1]->user_data)->unk04; + } + else { + temp_r31->unk0A = ((BssE4Data *)lbl_1_bss_E4[i - 1]->user_data)->unk04; } lbl_1_bss_E4[i] = HuPrcChildCreate(fn_1_30A4, 0x2003, 0x1000, 0, boardMainProc); lbl_1_bss_E4[i]->user_data = temp_r31; @@ -366,7 +345,8 @@ static void fn_1_2C10(void) { } } -static void fn_1_2E60(s16 arg0) { +static void fn_1_2E60(s16 arg0) +{ BssE4Data *temp_r3; temp_r3 = fn_1_2FBC(arg0); @@ -376,7 +356,8 @@ static void fn_1_2E60(s16 arg0) { HuMemDirectFree(lbl_1_bss_E4[arg0]->user_data); } -static void fn_1_2EE8(s32 arg0) { +static void fn_1_2EE8(s32 arg0) +{ s32 i; for (i = 0; i < 4; i++) { @@ -386,7 +367,8 @@ static void fn_1_2EE8(s32 arg0) { } } -static s32 fn_1_2F54(u32 arg0) { +static s32 fn_1_2F54(u32 arg0) +{ s32 i; for (i = 0; i < 4; i++) { @@ -396,16 +378,19 @@ static s32 fn_1_2F54(u32 arg0) { } if (i != 4) { return 0; - } else { + } + else { return 1; } } -static BssE4Data *fn_1_2FBC(s16 arg0) { +static BssE4Data *fn_1_2FBC(s16 arg0) +{ return lbl_1_bss_E4[arg0]->user_data; } -static void fn_1_2FDC(void) { +static void fn_1_2FDC(void) +{ Vec sp8; BssE4Data *temp_r31; @@ -423,7 +408,8 @@ static void fn_1_2FDC(void) { } } -static void fn_1_30A4(void) { +static void fn_1_30A4(void) +{ Vec sp20; Vec sp14; float temp_f31; @@ -451,7 +437,8 @@ static void fn_1_30A4(void) { if (temp_r31->unk06 == 0) { BoardPlayerPosGet(GWSystem.player_curr, &temp_r31->unk20); temp_r31->unk20.y += 65.0f; - } else { + } + else { temp_r31->unk20 = fn_1_2FBC(temp_r31->unk06 - 1)->unk20; temp_r31->unk20.z -= 300.0f; } @@ -513,7 +500,8 @@ static void fn_1_30A4(void) { } if (temp_r31->unk06 == 0) { BoardModelPosGet(lbl_1_bss_FA, &temp_r31->unk20); - } else { + } + else { BoardModelPosGet(fn_1_2FBC(temp_r31->unk06 - 1)->unk04, &temp_r31->unk20); } temp_r31->unk00 = 0; @@ -565,7 +553,8 @@ static void fn_1_30A4(void) { temp_r31->unk0E = temp_r31->unk0C; if (temp_r31->unk06 == 0) { temp_r31->unk0C = lbl_1_bss_74; - } else { + } + else { temp_r31->unk0C = fn_1_2FBC(temp_r31->unk06 - 1)->unk0E; } BoardModelPosSetV(temp_r31->unk04, &temp_r31->unk20); @@ -574,14 +563,16 @@ static void fn_1_30A4(void) { } if (temp_r31->unk06 == 0) { BoardModelPosGet(lbl_1_bss_FA, &temp_r31->unk20); - } else { + } + else { BoardModelPosGet(fn_1_2FBC(temp_r31->unk06 - 1)->unk04, &temp_r31->unk20); } if (var_r29 != 0) { BoardModelVisibilitySet(temp_r31->unk04, 0); temp_r31->unk02 = 0; temp_r31->unk00 = 4; - } else { + } + else { temp_r31->unk00 = 0; } break; @@ -590,7 +581,8 @@ static void fn_1_30A4(void) { } } -static void fn_1_38D8(void) { +static void fn_1_38D8(void) +{ Vec sp24; Vec sp18; Vec spC; @@ -640,7 +632,8 @@ static void fn_1_38D8(void) { HuPrcEnd(); } -static s32 fn_1_3C9C(void) { +static s32 fn_1_3C9C(void) +{ Vec sp50; Vec sp44; Vec sp38; @@ -731,17 +724,20 @@ static s32 fn_1_3C9C(void) { var_r19 = 0; if (var_r21 != 0) { var_r21--; - } else { + } + else { var_r21 = frandmod(10) + 15; if (frandBool() || var_r18 == 3) { var_r19 = 0x100; - } else { + } + else { OSReport("com sel chg: %d \n", var_r29); var_r18++; var_r23 = frandmod(var_r29); } } - } else { + } + else { var_r26 = HuPadStkX[temp_r20]; var_r25 = HuPadStkY[temp_r20]; var_r19 = HuPadBtnDown[temp_r20]; @@ -783,7 +779,8 @@ static s32 fn_1_3C9C(void) { if (var_f31 > 180.0f) { var_f31 -= 180.0f; } - } else { + } + else { sp38.x = sp38.y = sp38.z = 1.8f; } BoardModelScaleSetV(lbl_1_bss_F4[i], &sp38); @@ -798,7 +795,8 @@ static s32 fn_1_3C9C(void) { var_r24 = sp20[var_r27]; lbl_1_bss_70 = sp18[var_r27]; lbl_1_bss_C2 = fn_1_4680(var_r24); - } else if (lbl_1_bss_70 != 0) { + } + else if (lbl_1_bss_70 != 0) { i = BoardSpaceLinkTargetListGet(0, lbl_1_bss_78, sp10); for (i--; i >= 0; i--) { var_r28 = BoardSpaceGet(0, sp10[i]); @@ -807,7 +805,8 @@ static s32 fn_1_3C9C(void) { } } var_r24 = sp10[i]; - } else { + } + else { for (i = 0; i < temp_r30->link_cnt; i++) { var_r28 = BoardSpaceGet(0, temp_r30->link[i]); if (var_r28->flag & 0x200) { @@ -819,12 +818,13 @@ static s32 fn_1_3C9C(void) { return var_r24; } -static void fn_1_45A8(void) { +static void fn_1_45A8(void) +{ float *temp_r30; s32 var_r31; var_r31 = 15; - temp_r30 = (float*) &HuPrcCurrentGet()->user_data; + temp_r30 = (float *)&HuPrcCurrentGet()->user_data; while (TRUE) { if (var_r31 == 0) { BoardCameraMoveSet(0); @@ -842,7 +842,8 @@ static void fn_1_45A8(void) { } } -static void fn_1_4630(void) { +static void fn_1_4630(void) +{ BoardCameraMoveSet(0); BoardCameraTargetPlayerSet(GWSystem.player_curr); BoardCameraViewSet(2); @@ -850,7 +851,8 @@ static void fn_1_4630(void) { BoardCameraMoveSet(1); } -static s32 fn_1_4680(s16 arg0) { +static s32 fn_1_4680(s16 arg0) +{ BoardSpace *var_r30; BoardSpace *var_r29; s16 sp8[4]; @@ -880,7 +882,8 @@ static s32 fn_1_4680(s16 arg0) { } } arg0 = sp8[i]; - } else { + } + else { for (i = 0; i < var_r30->link_cnt; i++) { var_r29 = BoardSpaceGet(0, var_r30->link[i]); if (var_r29->flag & 0x200) { @@ -897,7 +900,8 @@ static s32 fn_1_4680(s16 arg0) { return var_r27; } -static void fn_1_4848(void) { +static void fn_1_4848(void) +{ Vec sp20; Vec sp14; float temp_f28; @@ -905,7 +909,7 @@ static void fn_1_4848(void) { s32 temp_r30; s32 i; - temp_r30 = (s32) HuPrcCurrentGet()->user_data; + temp_r30 = (s32)HuPrcCurrentGet()->user_data; BoardPlayerPosGet(temp_r30, &sp20); BoardPlayerMotBlendSet(temp_r30, BoardModelRotYGet(lbl_1_bss_FA) - 180.0f, 0xA); while (!BoardPlayerMotBlendCheck(temp_r30)) { @@ -981,7 +985,8 @@ block_A: HuPrcEnd(); } -static void fn_1_5018(void) { +static void fn_1_5018(void) +{ Vec sp18; Vec spC; float var_f29; @@ -995,13 +1000,14 @@ static void fn_1_5018(void) { if (var_f29 < 900.0f && lbl_1_bss_B2[lbl_1_bss_BA[i]] == 0) { temp_r3 = HuPrcChildCreate(fn_1_4848, 0x2003, 0x2000, 0, boardMainProc); lbl_1_bss_D4[lbl_1_bss_BA[i]] = temp_r3; - temp_r3->user_data = (u8*) lbl_1_bss_BA[i]; + temp_r3->user_data = (u8 *)lbl_1_bss_BA[i]; lbl_1_bss_B2[lbl_1_bss_BA[i]] = 1; } } } -static void fn_1_52A0(s16 arg0, Vec *arg1) { +static void fn_1_52A0(s16 arg0, Vec *arg1) +{ Vec sp40[4]; Vec sp10[4]; BssE4Data *var_r30; @@ -1060,11 +1066,13 @@ static void fn_1_52A0(s16 arg0, Vec *arg1) { BoardSpacePosGet(0, lbl_1_bss_B0, &arg1[GWSystem.player_curr]); } -static void fn_1_55A0(void) { +static void fn_1_55A0(void) +{ lbl_1_bss_48 = NULL; } -void fn_1_55B4(void) { +void fn_1_55B4(void) +{ s32 sp8; sp8 = GWSystem.player_curr; @@ -1075,7 +1083,8 @@ void fn_1_55B4(void) { } } -static void fn_1_5648(void) { +static void fn_1_5648(void) +{ ParticleData *var_r30; s32 i; @@ -1087,13 +1096,14 @@ static void fn_1_5648(void) { Hu3DParticleScaleSet(lbl_1_bss_C4[i]->model[0], 5.0f); Hu3DParticleHookSet(lbl_1_bss_C4[i]->model[0], fn_1_5A2C); Hu3DParticleBlendModeSet(lbl_1_bss_C4[i]->model[0], 1); - Hu3DModelAttrSet(lbl_1_bss_C4[i]->model[0], 1); + Hu3DModelAttrSet(lbl_1_bss_C4[i]->model[0], HU3D_ATTR_DISPOFF); var_r30 = Hu3DData[lbl_1_bss_C4[i]->model[0]].unk_120; var_r30->unk_1C = lbl_1_bss_C4[i]; } } -static void fn_1_5828(void) { +static void fn_1_5828(void) +{ s32 i; for (i = 0; i < 4; i++) { @@ -1102,7 +1112,8 @@ static void fn_1_5828(void) { } } -static s16 fn_1_58A4(Vec *arg0) { +static s16 fn_1_58A4(Vec *arg0) +{ s16 i; for (i = 0; i < 4; i++) { @@ -1117,22 +1128,25 @@ static s16 fn_1_58A4(Vec *arg0) { return -1; } -static void fn_1_5980(s16 arg0) { +static void fn_1_5980(s16 arg0) +{ lbl_1_bss_C4[arg0]->work[1] = 1; lbl_1_bss_C4[arg0]->work[2] = 0; } -static void fn_1_59C4(omObjData *arg0) { +static void fn_1_59C4(omObjData *arg0) +{ if (arg0->work[0] != 0) { - Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); } if (arg0->work[2] != 0) { arg0->work[0] = 0; - Hu3DModelAttrSet(arg0->model[0], 1); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); } } -static void fn_1_5A2C(ModelData *model, ParticleData *particle, Mtx matrix) { +static void fn_1_5A2C(ModelData *model, ParticleData *particle, Mtx matrix) +{ s32 var_r26; s32 i; s32 j; @@ -1188,7 +1202,8 @@ static void fn_1_5A2C(ModelData *model, ParticleData *particle, Mtx matrix) { if (var_r31->unk08.z <= 0.0f) { var_r31->unk08.z = 0.0f; } - } else { + } + else { var_r26++; } } diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c index 52cc07a9..be8b5a53 100644 --- a/src/REL/ztardll/main.c +++ b/src/REL/ztardll/main.c @@ -435,7 +435,7 @@ void fn_1_1774(void) lbl_1_bss_3E[0] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 1)); lbl_1_bss_3E[1] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 2)); Hu3DMotionSet(lbl_1_bss_42, lbl_1_bss_3E[0]); - Hu3DModelAttrSet(lbl_1_bss_42, 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_42, HU3D_MOTATTR_LOOP); Hu3DModelPosSet(lbl_1_bss_42, 0.0f, 1000.0f, 0.0f); lbl_1_bss_8 = HuPrcChildCreate(fn_1_1CF0, 0x64, 0x2000, 0, lbl_1_bss_68); } @@ -802,7 +802,7 @@ void fn_1_33B0(void) lbl_1_bss_42 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_ZTAR, 0)); lbl_1_bss_3E[0] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 1)); lbl_1_bss_3E[1] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 2)); - Hu3DModelAttrSet(lbl_1_bss_42, 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_42, HU3D_MOTATTR_LOOP); Hu3DModelPosSetV(lbl_1_bss_42, &sp2C); Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f); Hu3DMotionSet(lbl_1_bss_42, lbl_1_bss_3E[0]); @@ -845,7 +845,7 @@ void fn_1_33B0(void) Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); } Hu3DMotionSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][0]); - Hu3DModelAttrSet(lbl_1_bss_36[var_r31], 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_36[var_r31], HU3D_MOTATTR_LOOP); Hu3DModelPosSet(lbl_1_bss_36[var_r31], var_r26, 0.0f, 0.0f); Hu3DModelShadowSet(lbl_1_bss_36[var_r31]); var_r26 += 0x96; @@ -1048,7 +1048,7 @@ void fn_1_4948(void) lbl_1_bss_42 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_ZTAR, 0)); lbl_1_bss_3E[0] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 1)); lbl_1_bss_3E[1] = Hu3DJointMotionFile(lbl_1_bss_42, DATA_MAKE_NUM(DATADIR_ZTAR, 2)); - Hu3DModelAttrSet(lbl_1_bss_42, 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_42, HU3D_MOTATTR_LOOP); Hu3DModelPosSetV(lbl_1_bss_42, &sp2C); Hu3DModelRotSet(lbl_1_bss_42, 0.0f, -10.0f, -15.0f); Hu3DMotionSet(lbl_1_bss_42, lbl_1_bss_3E[0]); @@ -1073,7 +1073,7 @@ void fn_1_4948(void) Hu3DModelScaleSet(lbl_1_bss_36[var_r31], 0.8f, 0.8f, 0.8f); } Hu3DMotionSet(lbl_1_bss_36[var_r31], lbl_1_bss_E[var_r31][0]); - Hu3DModelAttrSet(lbl_1_bss_36[var_r31], 0x40000001); + Hu3DModelAttrSet(lbl_1_bss_36[var_r31], HU3D_MOTATTR_LOOP); Hu3DModelPosSet(lbl_1_bss_36[var_r31], var_r28, 0.0f, 0.0f); Hu3DModelShadowSet(lbl_1_bss_36[var_r31]); var_r28 += 0x96; diff --git a/src/game/board/item.c b/src/game/board/item.c index 87d9a1ab..4309da32 100755 --- a/src/game/board/item.c +++ b/src/game/board/item.c @@ -1,17 +1,5 @@ #include "game/board/item.h" #include "game/audio.h" -#include "game/chrman.h" -#include "game/data.h" -#include "game/gamework.h" -#include "game/gamework_data.h" -#include "game/hsfanim.h" -#include "game/hsfman.h" -#include "game/objsub.h" -#include "game/pad.h" -#include "game/process.h" -#include "game/sprite.h" -#include "game/window.h" -#include "game/wipe.h" #include "game/board/audio.h" #include "game/board/boo.h" #include "game/board/char_wheel.h" @@ -22,9 +10,22 @@ #include "game/board/space.h" #include "game/board/star.h" #include "game/board/ui.h" -#include "game/board/window.h" #include "game/board/view.h" +#include "game/board/window.h" +#include "game/chrman.h" +#include "game/data.h" #include "game/frand.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + #include "ext_math.h" @@ -112,118 +113,46 @@ static AnimData *genieParticleAnim; static s16 geniePlayerMot[3]; static Process *itemProc; -s32 lbl_801D37A0[2] = { - DATA_MAKE_NUM(DATADIR_BOARD, 117), - -1 -}; +s32 lbl_801D37A0[2] = { DATA_MAKE_NUM(DATADIR_BOARD, 117), -1 }; -static void (*itemFuncTbl[])(void) = { - ExecItemMini, - ExecItemMega, - ExecItemMiniSuper, - ExecItemMegaSuper, - ExecItemHammer, - ExecItemPipe, - ExecItemSwap, - ExecItemSpark, - ExecItemLight, - ExecItemWhistle, - ExecItemBowser, - ExecItemBooBall, - ExecItemGenie, - ExecItemBag -}; +static void (*itemFuncTbl[])(void) = { ExecItemMini, ExecItemMega, ExecItemMiniSuper, ExecItemMegaSuper, ExecItemHammer, ExecItemPipe, ExecItemSwap, + ExecItemSpark, ExecItemLight, ExecItemWhistle, ExecItemBowser, ExecItemBooBall, ExecItemGenie, ExecItemBag }; -static void (*itemRestoreFuncTbl[])(void) = { - RestoreItemMini, - RestoreItemMega, - RestoreItemMiniSuper, - RestoreItemMegaSuper, - RestoreItemNull, - RestoreItemNull, - RestoreItemNull, - RestoreItemNull, - RestoreItemNull, - RestoreItemNull, - RestoreItemBowser, - RestoreItemNull, - RestoreItemNull, - RestoreItemNull -}; +static void (*itemRestoreFuncTbl[])(void) + = { RestoreItemMini, RestoreItemMega, RestoreItemMiniSuper, RestoreItemMegaSuper, RestoreItemNull, RestoreItemNull, RestoreItemNull, + RestoreItemNull, RestoreItemNull, RestoreItemNull, RestoreItemBowser, RestoreItemNull, RestoreItemNull, RestoreItemNull }; -static s32 itemMdlTbl[] = { - DATA_MAKE_NUM(DATADIR_BOARD, 109), - DATA_MAKE_NUM(DATADIR_BOARD, 110), - DATA_MAKE_NUM(DATADIR_BOARD, 111), - DATA_MAKE_NUM(DATADIR_BOARD, 112), - DATA_MAKE_NUM(DATADIR_BOARD, 113), - DATA_MAKE_NUM(DATADIR_BOARD, 114), - DATA_MAKE_NUM(DATADIR_BOARD, 115), - DATA_MAKE_NUM(DATADIR_BOARD, 116), - DATA_MAKE_NUM(DATADIR_BOARD, 118), - DATA_MAKE_NUM(DATADIR_BOARD, 119), - DATA_MAKE_NUM(DATADIR_BOARD, 120), - DATA_MAKE_NUM(DATADIR_BOARD, 121), - DATA_MAKE_NUM(DATADIR_BOARD, 122), - DATA_MAKE_NUM(DATADIR_BOARD, 123) -}; +static s32 itemMdlTbl[] = { DATA_MAKE_NUM(DATADIR_BOARD, 109), DATA_MAKE_NUM(DATADIR_BOARD, 110), DATA_MAKE_NUM(DATADIR_BOARD, 111), + DATA_MAKE_NUM(DATADIR_BOARD, 112), DATA_MAKE_NUM(DATADIR_BOARD, 113), DATA_MAKE_NUM(DATADIR_BOARD, 114), DATA_MAKE_NUM(DATADIR_BOARD, 115), + DATA_MAKE_NUM(DATADIR_BOARD, 116), DATA_MAKE_NUM(DATADIR_BOARD, 118), DATA_MAKE_NUM(DATADIR_BOARD, 119), DATA_MAKE_NUM(DATADIR_BOARD, 120), + DATA_MAKE_NUM(DATADIR_BOARD, 121), DATA_MAKE_NUM(DATADIR_BOARD, 122), DATA_MAKE_NUM(DATADIR_BOARD, 123) }; -static s32 forceMoveSfxTbl[] = { - 0x38, 0x45, 0x42, 0x4D, 0x48, 0x3F -}; +static s32 forceMoveSfxTbl[] = { 0x38, 0x45, 0x42, 0x4D, 0x48, 0x3F }; -static s32 callMotTbl[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 82), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 82), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 82), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 82), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 82), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 82), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 82), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 82) -}; +static s32 callMotTbl[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 82), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 82), DATA_MAKE_NUM(DATADIR_PEACHMOT, 82), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 82), DATA_MAKE_NUM(DATADIR_WARIOMOT, 82), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 82), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 82), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 82) }; -static char *callHookTbl[] = { - "c000m01-itemhook-r", - "c001m01-itemhook-r", - "c002m01-itemhook-r", - "c003m01-itemhook-r", - "c004m01-itemhook-r", - "c005m01-itemhook-r", - "c006m01-itemhook-r", - "c007m01-itemhook-r" -}; +static char *callHookTbl[] = { "c000m01-itemhook-r", "c001m01-itemhook-r", "c002m01-itemhook-r", "c003m01-itemhook-r", "c004m01-itemhook-r", + "c005m01-itemhook-r", "c006m01-itemhook-r", "c007m01-itemhook-r" }; -static s32 callAttackMotTbl[] = { - DATA_MAKE_NUM(DATADIR_W01, 31), - DATA_MAKE_NUM(DATADIR_W02, 5), - DATA_MAKE_NUM(DATADIR_W03, 29), - DATA_MAKE_NUM(DATADIR_W04, 9), - DATA_MAKE_NUM(DATADIR_W05, 7), - DATA_MAKE_NUM(DATADIR_W06, 19) -}; +static s32 callAttackMotTbl[] = { DATA_MAKE_NUM(DATADIR_W01, 31), DATA_MAKE_NUM(DATADIR_W02, 5), DATA_MAKE_NUM(DATADIR_W03, 29), + DATA_MAKE_NUM(DATADIR_W04, 9), DATA_MAKE_NUM(DATADIR_W05, 7), DATA_MAKE_NUM(DATADIR_W06, 19) }; -static s32 callAttackMotTbl2[] = { - DATA_MAKE_NUM(DATADIR_W01, 32), - DATA_MAKE_NUM(DATADIR_W02, 6), - DATA_MAKE_NUM(DATADIR_W03, 30), - DATA_MAKE_NUM(DATADIR_W04, 10), - DATA_MAKE_NUM(DATADIR_W05, 8), - DATA_MAKE_NUM(DATADIR_W06, 20) -}; +static s32 callAttackMotTbl2[] = { DATA_MAKE_NUM(DATADIR_W01, 32), DATA_MAKE_NUM(DATADIR_W02, 6), DATA_MAKE_NUM(DATADIR_W03, 30), + DATA_MAKE_NUM(DATADIR_W04, 10), DATA_MAKE_NUM(DATADIR_W05, 8), DATA_MAKE_NUM(DATADIR_W06, 20) }; -static s32 suitMotTbl[][2] = { - { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 1), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 2) }, +static s32 suitMotTbl[][2] = { { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 1), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 2) }, { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 4), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 5) }, { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 7), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 8) }, { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 10), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 11) }, { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 13), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 14) }, { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 16), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 17) }, { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 19), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 20) }, - { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 22), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 23) } -}; + { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 22), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 23) } }; -void BoardItemStart(s32 arg0, s32 arg1) { +void BoardItemStart(s32 arg0, s32 arg1) +{ currItemRestore = arg0; currItem = arg1; suitMdl = -1; @@ -231,22 +160,26 @@ void BoardItemStart(s32 arg0, s32 arg1) { HuPrcDestructorSet2(itemProc, ItemDestroy); } -BOOL BoardItemDoneCheck(void) { +BOOL BoardItemDoneCheck(void) +{ if (itemProc) { return FALSE; - } else { + } + else { return TRUE; } } -void BoardItemPlayerRestore(s32 arg0, s32 arg1) { +void BoardItemPlayerRestore(s32 arg0, s32 arg1) +{ currItemRestore = arg0; currItem = arg1; itemProc = HuPrcChildCreate(RestoreProcess, 0x2004, 0x1000, 0, boardMainProc); HuPrcDestructorSet2(itemProc, RestoreDestroy); } -static void ItemProcess(void) { +static void ItemProcess(void) +{ void (*temp_r31)(void) = itemFuncTbl[currItem]; HuPrcChildCreate(temp_r31, 0x2003, 0x1000, 0, HuPrcCurrentGet()); @@ -254,7 +187,8 @@ static void ItemProcess(void) { HuPrcEnd(); } -static void RestoreProcess(void) { +static void RestoreProcess(void) +{ void (*temp_r31)(void) = itemRestoreFuncTbl[currItem]; HuPrcChildCreate(temp_r31, 0x2003, 0x1000, 0, HuPrcCurrentGet()); @@ -262,15 +196,18 @@ static void RestoreProcess(void) { HuPrcEnd(); } -static void ItemDestroy(void) { +static void ItemDestroy(void) +{ itemProc = NULL; } -static void RestoreDestroy(void) { +static void RestoreDestroy(void) +{ itemProc = NULL; } -static void ItemSizeShowAnim(void) { +static void ItemSizeShowAnim(void) +{ Vec sp24; Vec sp18; Vec spC; @@ -307,7 +244,8 @@ static void ItemSizeShowAnim(void) { BoardModelKill(suitMdl); } -static void ItemRotProc(void) { +static void ItemRotProc(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -354,7 +292,8 @@ static void ItemRotProc(void) { // TODO: needs the inline keyword to be inlined into ExecItemHammer, but adding it messes up sdata2. // sdata2 order should be: 1000.0f, 0.15f, then 20.0f. // With the inline keyword, it becomes 0.15f, 20.0f, then 1000.0f (workaround in BoardUiInlineFunc02 below). -static inline void BoardUiInlineFunc01(Vec *arg0) { +static inline void BoardUiInlineFunc01(Vec *arg0) +{ Vec sp30; Vec sp3C; Vec sp48; @@ -386,11 +325,11 @@ static inline void BoardUiInlineFunc01(Vec *arg0) { BoardModelPosSetV(suitMdl, &sp3C); VECAdd(&sp48, arg0, &sp48); for (i = 0; i < 3; i++) { - if (((float*) &sp48)[i] < 0.0f) { - ((float*) &sp48)[i] += 360.0f; + if (((float *)&sp48)[i] < 0.0f) { + ((float *)&sp48)[i] += 360.0f; } - if (((float*) &sp48)[i] >= 360.0f) { - ((float*) &sp48)[i] -= 360.0f; + if (((float *)&sp48)[i] >= 360.0f) { + ((float *)&sp48)[i] -= 360.0f; } } BoardModelRotSetV(suitMdl, &sp48); @@ -400,13 +339,14 @@ static inline void BoardUiInlineFunc01(Vec *arg0) { BoardModelPosSetV(suitMdl, &sp3C); } -static void BoardUiInlineFunc02(void) { +static void BoardUiInlineFunc02(void) +{ Vec sp18; Vec sp24; float sp8; float var_f30; - (void) 1000.0f; // TODO: fix this. + (void)1000.0f; // TODO: fix this. sp8 = 1.0f; BoardModelPosGet(suitMdl, &sp24); BoardPlayerPosGet(currItemRestore, &sp18); @@ -429,7 +369,8 @@ static void BoardUiInlineFunc02(void) { BoardModelPosSetV(suitMdl, &sp24); } -static inline void BoardUiInlineFunc03(s32 arg0) { +static inline void BoardUiInlineFunc03(s32 arg0) +{ Vec sp8; Vec sp14; s32 space = GWPlayer[arg0].space_curr; @@ -447,13 +388,15 @@ static inline void BoardUiInlineFunc03(s32 arg0) { BoardPlayerIdleSet(arg0); } -static inline void BoardUiInlineFunc04(Process *arg0, s32 arg1) { +static inline void BoardUiInlineFunc04(Process *arg0, s32 arg1) +{ UnkItemShowProcStruct *temp_r19 = arg0->user_data; temp_r19->unk00 = arg1; } -static inline Process *BoardUiInlineFunc05(UnkItemShowProcStruct *arg0) { +static inline Process *BoardUiInlineFunc05(UnkItemShowProcStruct *arg0) +{ Process *temp_r27; temp_r27 = HuPrcCreate(ItemRotProc, 0x2004, 0x1000, 0); @@ -462,7 +405,8 @@ static inline Process *BoardUiInlineFunc05(UnkItemShowProcStruct *arg0) { return temp_r27; } -static Process *ItemShowProc(UnkItemShowProcStruct *arg0, Vec *arg1) { +static Process *ItemShowProc(UnkItemShowProcStruct *arg0, Vec *arg1) +{ Vec sp20; Vec sp14; Vec sp8; @@ -477,7 +421,8 @@ static Process *ItemShowProc(UnkItemShowProcStruct *arg0, Vec *arg1) { } if (arg1 == NULL) { sp8.x = sp8.y = sp8.z = 1.0f; - } else { + } + else { sp8 = *arg1; } if (suitMdl >= 0) { @@ -506,7 +451,8 @@ static Process *ItemShowProc(UnkItemShowProcStruct *arg0, Vec *arg1) { return var_r29; } -static s16 ItemGetTarget(void) { +static s16 ItemGetTarget(void) +{ s32 sp20[4]; s32 sp10[4]; float sp8[2]; @@ -542,7 +488,8 @@ static s16 ItemGetTarget(void) { HuWinMesSet(temp_r29, MAKE_MESSID(18, 14)); if (GWPlayer[currItemRestore].com) { var_r26 = 0xF; - } else { + } + else { var_r26 = 0; for (var_r31 = 0; var_r31 < 4; var_r31++) { if (var_r31 != currItemRestore) { @@ -575,7 +522,8 @@ static s16 ItemGetTarget(void) { return temp_r22; } -static void ItemSizeSet(s32 arg0) { +static void ItemSizeSet(s32 arg0) +{ float sp24[9]; float sp14[4]; float sp8[3] = { 1.0f, 0.3f, 2.5f }; @@ -603,7 +551,7 @@ static void ItemSizeSet(s32 arg0) { sp24[8] = sp14[3]; temp_r26 = BoardPlayerModelGet(currItemRestore); temp_r28 = BoardModelIDGet(temp_r26); - Hu3DModelAttrSet(temp_r28, 0x40000002); + Hu3DModelAttrSet(temp_r28, HU3D_MOTATTR_PAUSE); var_r27 = 0; for (i = 0; i < 9; i++) { temp_f30 = (sp24[var_r27++] - var_f31) / 10.0f; @@ -617,7 +565,8 @@ static void ItemSizeSet(s32 arg0) { BoardPlayerSizeSet(currItemRestore, arg0); } -static void ExecItemMini(void) { +static void ExecItemMini(void) +{ suitMdl = BoardModelCreate(itemMdlTbl[currItem], NULL, 0); BoardModelLayerSet(suitMdl, 2); HuAudFXPlay(0x350); @@ -634,7 +583,8 @@ static void ExecItemMini(void) { } } -static void ExecItemMega(void) { +static void ExecItemMega(void) +{ suitMdl = BoardModelCreate(itemMdlTbl[currItem], NULL, 0); BoardModelLayerSet(suitMdl, 2); HuAudFXPlay(0x350); @@ -651,7 +601,8 @@ static void ExecItemMega(void) { } } -static void ExecItemMiniSuper(void) { +static void ExecItemMiniSuper(void) +{ suitMdl = BoardModelCreate(itemMdlTbl[currItem], NULL, 0); BoardModelLayerSet(suitMdl, 2); HuAudFXPlay(0x350); @@ -668,7 +619,8 @@ static void ExecItemMiniSuper(void) { } } -static void ExecItemMegaSuper(void) { +static void ExecItemMegaSuper(void) +{ suitMdl = BoardModelCreate(itemMdlTbl[currItem], NULL, 0); BoardModelLayerSet(suitMdl, 2); HuAudFXPlay(0x350); @@ -685,7 +637,8 @@ static void ExecItemMegaSuper(void) { } } -static void ExecItemHammer(void) { +static void ExecItemHammer(void) +{ Vec sp6C; Vec sp60; float sp10[2]; @@ -703,7 +656,8 @@ static void ExecItemHammer(void) { var_r30 = frandBool(); if (var_r30 != 0) { BoardModelMotionTimeSet(suitMdl, 1.5f); - } else { + } + else { BoardModelMotionTimeSet(suitMdl, 0.0f); } BoardModelAttrSet(suitMdl, 0x40000002); @@ -725,7 +679,8 @@ static void ExecItemHammer(void) { var_r30 ^= 1; if (var_r30 != 0) { BoardModelMotionTimeSet(suitMdl, 1.5f); - } else { + } + else { BoardModelMotionTimeSet(suitMdl, 0.0f); } } @@ -734,7 +689,8 @@ static void ExecItemHammer(void) { if (var_r26 == 0) { break; } - } else { + } + else { if (HuPadBtnDown[GWPlayerCfg[currItemRestore].pad_idx] & 0x100) { break; } @@ -747,7 +703,8 @@ static void ExecItemHammer(void) { omVibrate(temp_r27, 12, 6, 6); if (var_r30 != 0) { BoardPlayerAutoSizeSet(temp_r27, 2); - } else { + } + else { BoardPlayerAutoSizeSet(temp_r27, 1); } HuPrcSleep(30); @@ -759,7 +716,8 @@ static void ExecItemHammer(void) { } } -static void ExecItemPipe(void) { +static void ExecItemPipe(void) +{ Vec spE4[2]; Vec spCC[2]; Vec spB4[2]; @@ -816,7 +774,8 @@ static void ExecItemPipe(void) { HuWinMesWait(temp_r28); HuPrcSleep(180); HuWinKill(temp_r28); - } else { + } + else { BoardUiInlineFunc03(sp2C[1]); HuAudFXPlay(0x318); for (var_r31 = 0; var_r31 < 2; var_r31++) { @@ -910,7 +869,8 @@ static void ExecItemPipe(void) { if (GWPlayer[sp2C[var_r31]].character == 5) { if (var_r27 != 0) { var_r27--; - } else { + } + else { var_f31 += 0.05f; if (var_f31 > 1.0f) { var_f31 = 1.0f; @@ -923,13 +883,15 @@ static void ExecItemPipe(void) { if (fabs(spCC[var_r31].x - spE4[var_r31].x) <= fabs(spB4[var_r31].x)) { spCC[var_r31].x = spE4[var_r31].x; var_r30++; - } else { + } + else { spCC[var_r31].x += spB4[var_r31].x; } if (fabs(spCC[var_r31].z - spE4[var_r31].z) <= fabs(spB4[var_r31].z)) { spCC[var_r31].z = spE4[var_r31].z; var_r30++; - } else { + } + else { spCC[var_r31].z += spB4[var_r31].z; } if (spCC[var_r31].y < spE4[var_r31].y) { @@ -979,7 +941,8 @@ static void ExecItemPipe(void) { } } -static void ExecItemSwap(void) { +static void ExecItemSwap(void) +{ Vec sp1A4[3]; Vec sp180[3]; Vec sp15C[3]; @@ -1026,22 +989,22 @@ static void ExecItemSwap(void) { BoardModelPosGet(suitMdl, &spB4); BoardPlayerRotGet(currItemRestore, &sp90); for (var_r27 = 0; var_r27 < 3; var_r27++) { - if (((float*) &sp90)[var_r27] < 0.0f) { - ((float*) &sp90)[var_r27] += 360.0f; + if (((float *)&sp90)[var_r27] < 0.0f) { + ((float *)&sp90)[var_r27] += 360.0f; } - if (((float*) &sp90)[var_r27] >= 360.0f) { - ((float*) &sp90)[var_r27] -= 360.0f; + if (((float *)&sp90)[var_r27] >= 360.0f) { + ((float *)&sp90)[var_r27] -= 360.0f; } } BoardModelRotGet(suitMdl, &spA8); while (1) { VECAdd(&spA8, &sp9C, &spA8); for (var_r26 = 0; var_r26 < 3; var_r26++) { - if (((float*) &spA8)[var_r26] < 0.0f) { - ((float*) &spA8)[var_r26] += 360.0f; + if (((float *)&spA8)[var_r26] < 0.0f) { + ((float *)&spA8)[var_r26] += 360.0f; } - if (((float*) &spA8)[var_r26] >= 360.0f) { - ((float*) &spA8)[var_r26] -= 360.0f; + if (((float *)&spA8)[var_r26] >= 360.0f) { + ((float *)&spA8)[var_r26] -= 360.0f; } } sp9C.y *= 0.94f; @@ -1067,7 +1030,8 @@ static void ExecItemSwap(void) { } if (var_r23 >= var_r22) { var_r28 = var_r23 * 2; - } else { + } + else { var_r28 = var_r22 * 2; } BoardModelRotGet(suitMdl, &sp3C); @@ -1200,7 +1164,8 @@ static void ExecItemSwap(void) { } } -static void ExecItemSpark(void) { +static void ExecItemSpark(void) +{ Vec sp68; Vec sp5C; Vec sp50; @@ -1299,7 +1264,8 @@ static void ExecItemSpark(void) { } } -static void ExecItemLight(void) { +static void ExecItemLight(void) +{ s16 temp_r31; HuAudFXPlay(0x350); @@ -1321,7 +1287,8 @@ static void ExecItemLight(void) { } } -static void ExecItemWhistle(void) { +static void ExecItemWhistle(void) +{ Vec spF0[4]; Vec spC0[4]; Vec spB4; @@ -1414,8 +1381,7 @@ static void ExecItemWhistle(void) { BoardModelPosSetV(suitMdl, &sp84); BoardModelHookSet(sp8, temp_r22, suitMdl); while (BoardPlayerMotionTimeGet(currItemRestore) < BoardPlayerMotionMaxTimeGet(currItemRestore)) { - if (BoardPlayerMotionTimeGet(currItemRestore) == 95.0f - || BoardPlayerMotionTimeGet(currItemRestore) == 185.0f + if (BoardPlayerMotionTimeGet(currItemRestore) == 95.0f || BoardPlayerMotionTimeGet(currItemRestore) == 185.0f || BoardPlayerMotionTimeGet(currItemRestore) == 275.0f) { HuAudFXPlay(0x31F); } @@ -1563,7 +1529,8 @@ static void ExecItemWhistle(void) { } } -static void ExecItemBowser(void) { +static void ExecItemBowser(void) +{ Vec sp2C; Vec sp20; Vec sp14; @@ -1637,13 +1604,10 @@ static void ExecItemBowser(void) { } } -static s32 booMotTbl[3] = { - DATA_MAKE_NUM(DATADIR_BGUEST, 24), - DATA_MAKE_NUM(DATADIR_BGUEST, 22), - -1 -}; +static s32 booMotTbl[3] = { DATA_MAKE_NUM(DATADIR_BGUEST, 24), DATA_MAKE_NUM(DATADIR_BGUEST, 22), -1 }; -static inline void ExecItemBooBallInlineFunc01(s32 speed) { +static inline void ExecItemBooBallInlineFunc01(s32 speed) +{ Vec sp20; s32 var_r20; @@ -1655,14 +1619,14 @@ static inline void ExecItemBooBallInlineFunc01(s32 speed) { BoardModelAlphaSet(booBallMdl, booBallAlpha); BoardModelVisibilitySet(booBallMdl, 1); for (var_r20 = 0; var_r20 < speed; var_r20++) { - booBallAlpha -= (255.0f/speed); + booBallAlpha -= (255.0f / speed); if (booBallAlpha < 0.0f) { booBallAlpha = 0.0f; } - booBallScale.x -= (1.0f/speed); - booBallScale.y -= (1.0f/speed); - booBallScale.z -= (1.0f/speed); - booBallPos.y -= (20.0f/speed); + booBallScale.x -= (1.0f / speed); + booBallScale.y -= (1.0f / speed); + booBallScale.z -= (1.0f / speed); + booBallPos.y -= (20.0f / speed); BoardModelAlphaSet(booBallMdl, booBallAlpha); BoardModelScaleSetV(booBallMdl, &booBallScale); BoardModelPosSetV(booBallMdl, &booBallPos); @@ -1674,7 +1638,8 @@ static inline void ExecItemBooBallInlineFunc01(s32 speed) { BoardModelAlphaSet(booBallMdl, booBallAlpha); } -static inline void ExecItemBooBallInlineFunc02(s32 speed) { +static inline void ExecItemBooBallInlineFunc02(s32 speed) +{ Vec sp20; s32 var_r20; @@ -1686,14 +1651,14 @@ static inline void ExecItemBooBallInlineFunc02(s32 speed) { BoardModelAlphaSet(booBallMdl, booBallAlpha); BoardModelVisibilitySet(booBallMdl, 1); for (var_r20 = 0; var_r20 < speed; var_r20++) { - booBallAlpha += (255.0f/speed); + booBallAlpha += (255.0f / speed); if (booBallAlpha > 255.0f) { booBallAlpha = 255.0f; } - booBallScale.x += (1.0f/speed); - booBallScale.y += (1.0f/speed); - booBallScale.z += (1.0f/speed); - booBallPos.y += (20.0f/speed); + booBallScale.x += (1.0f / speed); + booBallScale.y += (1.0f / speed); + booBallScale.z += (1.0f / speed); + booBallPos.y += (20.0f / speed); BoardModelAlphaSet(booBallMdl, booBallAlpha); BoardModelScaleSetV(booBallMdl, &booBallScale); BoardModelPosSetV(booBallMdl, &booBallPos); @@ -1707,7 +1672,8 @@ static inline void ExecItemBooBallInlineFunc02(s32 speed) { BoardModelAlphaSet(booBallMdl, booBallAlpha); } -static void ExecItemBooBall(void) { +static void ExecItemBooBall(void) +{ UnkItemShowProcStruct spA0; UnkItemShowProcStruct sp80; Vec sp74; @@ -1754,7 +1720,8 @@ static void ExecItemBooBall(void) { BoardWinCreate(2, MAKE_MESSID(18, 22), 3); BoardWinWait(); BoardWinKill(); - } else { + } + else { var_r28 = 0; for (var_r31 = 0; var_r31 < 4; var_r31++) { if (var_r31 != currItemRestore) { @@ -1779,7 +1746,8 @@ static void ExecItemBooBall(void) { if (GWPlayer[currItemRestore].com) { if (var_r28 != 0 && BoardPlayerCoinsGet(currItemRestore) >= 50) { BoardComKeySetDown(); - } else { + } + else { BoardComKeySetUp(); } } @@ -1809,15 +1777,20 @@ static void ExecItemBooBall(void) { var_r29 = BoardBooStealValueGet(&spC, &spA); if (var_r29 == 0) { var_r30 = MAKE_MESSID(7, 11); - } else if (spA == 0) { + } + else if (spA == 0) { var_r30 = MAKE_MESSID(7, 9); - } else if (spA >= 1 && spA <= 3) { + } + else if (spA >= 1 && spA <= 3) { var_r30 = MAKE_MESSID(7, 8); - } else if (spA >= 4 && spA <= 6) { + } + else if (spA >= 4 && spA <= 6) { var_r30 = MAKE_MESSID(7, 7); - } else if (spA >= 7 && spA <= 8) { + } + else if (spA >= 7 && spA <= 8) { var_r30 = MAKE_MESSID(7, 6); - } else { + } + else { var_r30 = MAKE_MESSID(7, 5); } sprintf(booCoinStr, "%d", spC); @@ -1861,7 +1834,8 @@ static void ExecItemBooBall(void) { ExecItemBooBallInlineFunc02(30); if (var_r29 != 0) { var_r30 = MAKE_MESSID(7, 10); - } else { + } + else { var_r30 = MAKE_MESSID(7, 11); } HuAudFXPlay(0x4C); @@ -1928,7 +1902,8 @@ static void ForceConsts(void) (void)125.0f; } -static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx matrix) { +static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx matrix) +{ HsfanimStruct01 *var_r31; Vec spC; float sp8; @@ -1971,7 +1946,8 @@ static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx mat var_r31->unk00_s16 = 0; } } - } else { + } + else { particle->unk_00--; } var_r31 = particle->unk_48; @@ -1991,7 +1967,8 @@ static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx mat var_r31->unk00_s16 = 1; } var_r31->unk40.a = var_r31->unk14.y; - } else { + } + else { VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk2C += 0.2f; var_r31->unk14.y -= 1.8214285f; @@ -2005,8 +1982,9 @@ static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx mat } } -static void GenieParticleUpdate(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01* var_r31; +static void GenieParticleUpdate(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; float temp_f31; float temp_f30; s32 var_r28; @@ -2054,11 +2032,13 @@ static Vec shadowPos = { 0.0f, 4500.0f, 500.0f }; static Vec shadowTarget = { 0.0f, 0.9f, -0.1f }; static Vec shadowUp = { 0.0f, 0.0f, 500.0f }; -static void GenieCameraProcInlineFunc(void) { +static void GenieCameraProcInlineFunc(void) +{ Hu3DShadowPosSet(&shadowPos, &shadowTarget, &shadowUp); } -static void GenieCameraProc(void) { +static void GenieCameraProc(void) +{ while (1) { Hu3DCameraPerspectiveSet(2, genieFov, 10.0f, 20000.0f, 1.2f); Hu3DCameraPosSetV(2, &booCamPos, &booCamTarget, &booCamUp); @@ -2070,7 +2050,8 @@ static void GenieCameraProc(void) { } } -static void GenieCameraCalc(UnkGenieCameraStruct *arg0, s32 arg1, float arg2, Vec *arg3, Vec *arg4) { +static void GenieCameraCalc(UnkGenieCameraStruct *arg0, s32 arg1, float arg2, Vec *arg3, Vec *arg4) +{ Vec spC = { 0.0f, 0.0f, 0.0f }; float temp_f31 = arg2 * arg2; float sp8 = temp_f31 * arg2; @@ -2090,13 +2071,26 @@ static void GenieCameraCalc(UnkGenieCameraStruct *arg0, s32 arg1, float arg2, Ve temp_r30 = &arg0[arg1].unk10; temp_r27 = &arg0[arg1 + 1].unk10; temp_r26 = &arg0[arg1 + 2].unk10; - arg3->x = 0.5f * ((temp_r31->x - temp_r29->x * 2.0f + temp_r28->x) * temp_f31 + (temp_r31->x * -3.0f + temp_r29->x * 4.0f - temp_r28->x) * arg2 + temp_r31->x * 2.0f); - arg3->y = 0.5f * ((temp_r31->y - temp_r29->y * 2.0f + temp_r28->y) * temp_f31 + (temp_r31->y * -3.0f + temp_r29->y * 4.0f - temp_r28->y) * arg2 + temp_r31->y * 2.0f); - arg3->z = 0.5f * ((temp_r31->z - temp_r29->z * 2.0f + temp_r28->z) * temp_f31 + (temp_r31->z * -3.0f + temp_r29->z * 4.0f - temp_r28->z) * arg2 + temp_r31->z * 2.0f); - arg4->x = 0.5f * ((temp_r30->x - temp_r27->x * 2.0f + temp_r26->x) * temp_f31 + (temp_r30->x * -3.0f + temp_r27->x * 4.0f - temp_r26->x) * arg2 + temp_r30->x * 2.0f); - arg4->y = 0.5f * ((temp_r30->y - temp_r27->y * 2.0f + temp_r26->y) * temp_f31 + (temp_r30->y * -3.0f + temp_r27->y * 4.0f - temp_r26->y) * arg2 + temp_r30->y * 2.0f); - arg4->z = 0.5f * ((temp_r30->z - temp_r27->z * 2.0f + temp_r26->z) * temp_f31 + (temp_r30->z * -3.0f + temp_r27->z * 4.0f - temp_r26->z) * arg2 + temp_r30->z * 2.0f); - } else { + arg3->x = 0.5f + * ((temp_r31->x - temp_r29->x * 2.0f + temp_r28->x) * temp_f31 + (temp_r31->x * -3.0f + temp_r29->x * 4.0f - temp_r28->x) * arg2 + + temp_r31->x * 2.0f); + arg3->y = 0.5f + * ((temp_r31->y - temp_r29->y * 2.0f + temp_r28->y) * temp_f31 + (temp_r31->y * -3.0f + temp_r29->y * 4.0f - temp_r28->y) * arg2 + + temp_r31->y * 2.0f); + arg3->z = 0.5f + * ((temp_r31->z - temp_r29->z * 2.0f + temp_r28->z) * temp_f31 + (temp_r31->z * -3.0f + temp_r29->z * 4.0f - temp_r28->z) * arg2 + + temp_r31->z * 2.0f); + arg4->x = 0.5f + * ((temp_r30->x - temp_r27->x * 2.0f + temp_r26->x) * temp_f31 + (temp_r30->x * -3.0f + temp_r27->x * 4.0f - temp_r26->x) * arg2 + + temp_r30->x * 2.0f); + arg4->y = 0.5f + * ((temp_r30->y - temp_r27->y * 2.0f + temp_r26->y) * temp_f31 + (temp_r30->y * -3.0f + temp_r27->y * 4.0f - temp_r26->y) * arg2 + + temp_r30->y * 2.0f); + arg4->z = 0.5f + * ((temp_r30->z - temp_r27->z * 2.0f + temp_r26->z) * temp_f31 + (temp_r30->z * -3.0f + temp_r27->z * 4.0f - temp_r26->z) * arg2 + + temp_r30->z * 2.0f); + } + else { temp_r31 = &arg0[arg1 - 1].unk04; temp_r29 = &arg0[arg1].unk04; temp_r28 = &arg0[arg1 + 1].unk04; @@ -2105,70 +2099,56 @@ static void GenieCameraCalc(UnkGenieCameraStruct *arg0, s32 arg1, float arg2, Ve temp_r27 = &arg0[arg1].unk10; temp_r26 = &arg0[arg1 + 1].unk10; temp_r24 = &arg0[arg1 + 2].unk10; - arg3->x = 0.5f * ((-temp_r31->x + temp_r29->x * 3.0f - temp_r28->x * 3.0f + temp_r25->x) * temp_f31 * arg2 + (temp_r31->x * 2.0f - temp_r29->x * 5.0f + temp_r28->x * 4.0f - temp_r25->x) * temp_f31 + (-temp_r31->x + temp_r28->x) * arg2 + temp_r29->x * 2.0f); - arg3->y = 0.5f * ((-temp_r31->y + temp_r29->y * 3.0f - temp_r28->y * 3.0f + temp_r25->y) * temp_f31 * arg2 + (temp_r31->y * 2.0f - temp_r29->y * 5.0f + temp_r28->y * 4.0f - temp_r25->y) * temp_f31 + (-temp_r31->y + temp_r28->y) * arg2 + temp_r29->y * 2.0f); - arg3->z = 0.5f * ((-temp_r31->z + temp_r29->z * 3.0f - temp_r28->z * 3.0f + temp_r25->z) * temp_f31 * arg2 + (temp_r31->z * 2.0f - temp_r29->z * 5.0f + temp_r28->z * 4.0f - temp_r25->z) * temp_f31 + (-temp_r31->z + temp_r28->z) * arg2 + temp_r29->z * 2.0f); - arg4->x = 0.5f * ((-temp_r30->x + temp_r27->x * 3.0f - temp_r26->x * 3.0f + temp_r24->x) * temp_f31 * arg2 + (temp_r30->x * 2.0f - temp_r27->x * 5.0f + temp_r26->x * 4.0f - temp_r24->x) * temp_f31 + (-temp_r30->x + temp_r26->x) * arg2 + temp_r27->x * 2.0f); - arg4->y = 0.5f * ((-temp_r30->y + temp_r27->y * 3.0f - temp_r26->y * 3.0f + temp_r24->y) * temp_f31 * arg2 + (temp_r30->y * 2.0f - temp_r27->y * 5.0f + temp_r26->y * 4.0f - temp_r24->y) * temp_f31 + (-temp_r30->y + temp_r26->y) * arg2 + temp_r27->y * 2.0f); - arg4->z = 0.5f * ((-temp_r30->z + temp_r27->z * 3.0f - temp_r26->z * 3.0f + temp_r24->z) * temp_f31 * arg2 + (temp_r30->z * 2.0f - temp_r27->z * 5.0f + temp_r26->z * 4.0f - temp_r24->z) * temp_f31 + (-temp_r30->z + temp_r26->z) * arg2 + temp_r27->z * 2.0f); + arg3->x = 0.5f + * ((-temp_r31->x + temp_r29->x * 3.0f - temp_r28->x * 3.0f + temp_r25->x) * temp_f31 * arg2 + + (temp_r31->x * 2.0f - temp_r29->x * 5.0f + temp_r28->x * 4.0f - temp_r25->x) * temp_f31 + (-temp_r31->x + temp_r28->x) * arg2 + + temp_r29->x * 2.0f); + arg3->y = 0.5f + * ((-temp_r31->y + temp_r29->y * 3.0f - temp_r28->y * 3.0f + temp_r25->y) * temp_f31 * arg2 + + (temp_r31->y * 2.0f - temp_r29->y * 5.0f + temp_r28->y * 4.0f - temp_r25->y) * temp_f31 + (-temp_r31->y + temp_r28->y) * arg2 + + temp_r29->y * 2.0f); + arg3->z = 0.5f + * ((-temp_r31->z + temp_r29->z * 3.0f - temp_r28->z * 3.0f + temp_r25->z) * temp_f31 * arg2 + + (temp_r31->z * 2.0f - temp_r29->z * 5.0f + temp_r28->z * 4.0f - temp_r25->z) * temp_f31 + (-temp_r31->z + temp_r28->z) * arg2 + + temp_r29->z * 2.0f); + arg4->x = 0.5f + * ((-temp_r30->x + temp_r27->x * 3.0f - temp_r26->x * 3.0f + temp_r24->x) * temp_f31 * arg2 + + (temp_r30->x * 2.0f - temp_r27->x * 5.0f + temp_r26->x * 4.0f - temp_r24->x) * temp_f31 + (-temp_r30->x + temp_r26->x) * arg2 + + temp_r27->x * 2.0f); + arg4->y = 0.5f + * ((-temp_r30->y + temp_r27->y * 3.0f - temp_r26->y * 3.0f + temp_r24->y) * temp_f31 * arg2 + + (temp_r30->y * 2.0f - temp_r27->y * 5.0f + temp_r26->y * 4.0f - temp_r24->y) * temp_f31 + (-temp_r30->y + temp_r26->y) * arg2 + + temp_r27->y * 2.0f); + arg4->z = 0.5f + * ((-temp_r30->z + temp_r27->z * 3.0f - temp_r26->z * 3.0f + temp_r24->z) * temp_f31 * arg2 + + (temp_r30->z * 2.0f - temp_r27->z * 5.0f + temp_r26->z * 4.0f - temp_r24->z) * temp_f31 + (-temp_r30->z + temp_r26->z) * arg2 + + temp_r27->z * 2.0f); } } -static s32 armUpMotTbl[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 92), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 92), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 92), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 92), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 92), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 92), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 92), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 92) -}; +static s32 armUpMotTbl[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 92), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 92), DATA_MAKE_NUM(DATADIR_PEACHMOT, 92), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 92), DATA_MAKE_NUM(DATADIR_WARIOMOT, 92), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 92), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 92), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 92) }; -static s32 scareMotTbl[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 28), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 28), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 28), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 28), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 28), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 28), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 28), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 28) -}; +static s32 scareMotTbl[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 28), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 28), DATA_MAKE_NUM(DATADIR_PEACHMOT, 28), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 28), DATA_MAKE_NUM(DATADIR_WARIOMOT, 28), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 28), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 28), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 28) }; -static s32 impactMotTbl[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 94), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 94), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 94), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 94), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 94), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 94), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 94), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 94) -}; +static s32 impactMotTbl[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 94), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 94), DATA_MAKE_NUM(DATADIR_PEACHMOT, 94), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 94), DATA_MAKE_NUM(DATADIR_WARIOMOT, 94), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 94), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 94), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 94) }; -static UnkGenieCameraStruct cameraDataTbl[] = { - 60.0f, { 0.0f, 100.0f, 950.0f }, { 0.0f, 100.0f, 600.0f }, - 60.0f, { -353.0f, 100.0f, 662.5f }, { 0.0f, 100.0f, 600.0f }, - 60.0f, { -500.0f, 100.0f, 375.0f }, { 0.0f, 100.0f, 600.0f }, - 60.0f, { -353.0f, 100.0f, 87.5f }, { 0.0f, 100.0f, 600.0f }, - 1.0f, { 0.0f, 100.0f, -200.0f }, { 0.0f, 100.0f, 600.0f }, - 89.0f, { 0.0f, 100.0f, -200.0f }, { 0.0f, 100.0f, 600.0f }, - 1.0f, { 0.0f, 100.0f, -200.0f }, { 0.0f, 100.0f, 600.0f }, - 9.0f, { 0.0f, 100.0f, -200.0f }, { 0.0f, 100.0f, 600.0f }, - 1.0f, { 0.0f, 100.0f, -200.0f }, { 0.0f, 500.0f, 600.0f }, - 5.0f, { 0.0f, 100.0f, -200.0f }, { 0.0f, 500.0f, 600.0f }, - 5.0f, { 0.0f, 100.0f, -200.0f }, { 0.0f, 500.0f, 600.0f } -}; +static UnkGenieCameraStruct cameraDataTbl[] = { 60.0f, { 0.0f, 100.0f, 950.0f }, { 0.0f, 100.0f, 600.0f }, 60.0f, { -353.0f, 100.0f, 662.5f }, + { 0.0f, 100.0f, 600.0f }, 60.0f, { -500.0f, 100.0f, 375.0f }, { 0.0f, 100.0f, 600.0f }, 60.0f, { -353.0f, 100.0f, 87.5f }, + { 0.0f, 100.0f, 600.0f }, 1.0f, { 0.0f, 100.0f, -200.0f }, { 0.0f, 100.0f, 600.0f }, 89.0f, { 0.0f, 100.0f, -200.0f }, { 0.0f, 100.0f, 600.0f }, + 1.0f, { 0.0f, 100.0f, -200.0f }, { 0.0f, 100.0f, 600.0f }, 9.0f, { 0.0f, 100.0f, -200.0f }, { 0.0f, 100.0f, 600.0f }, 1.0f, + { 0.0f, 100.0f, -200.0f }, { 0.0f, 500.0f, 600.0f }, 5.0f, { 0.0f, 100.0f, -200.0f }, { 0.0f, 500.0f, 600.0f }, 5.0f, { 0.0f, 100.0f, -200.0f }, + { 0.0f, 500.0f, 600.0f } }; -static s32 genieMotTbl[] = { - DATA_MAKE_NUM(DATADIR_BOARD, 125), - DATA_MAKE_NUM(DATADIR_BOARD, 126), - DATA_MAKE_NUM(DATADIR_BOARD, 127), - -1 -}; +static s32 genieMotTbl[] = { DATA_MAKE_NUM(DATADIR_BOARD, 125), DATA_MAKE_NUM(DATADIR_BOARD, 126), DATA_MAKE_NUM(DATADIR_BOARD, 127), -1 }; -static void GenieSceneExec(void) { +static void GenieSceneExec(void) +{ GXColor sp1C = { 0xFF, 0xFF, 0xFF, 0xFF }; Vec sp50; Vec sp44; @@ -2366,7 +2346,8 @@ static void GenieSceneExec(void) { HuAudFXPauseAll(0); } -static void ExecItemGenie(void) { +static void ExecItemGenie(void) +{ UnkItemShowProcStruct sp24; Vec sp18; Vec spC; @@ -2498,7 +2479,8 @@ static void ExecItemGenie(void) { } } -void BoardItemBagItemSet(s16 *arg0) { +void BoardItemBagItemSet(s16 *arg0) +{ s32 i; for (i = 0; i < 3; i++) { @@ -2506,7 +2488,8 @@ void BoardItemBagItemSet(s16 *arg0) { } } -static void ExecItemBagJump(void) { +static void ExecItemBagJump(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -2515,7 +2498,7 @@ static void ExecItemBagJump(void) { float var_f31; s16 temp_r31; - temp_r31 = (s16) HuPrcCurrentGet()->user_data; + temp_r31 = (s16)HuPrcCurrentGet()->user_data; BoardModelScaleGet(temp_r31, &sp20); BoardModelPosGet(temp_r31, &sp14); sp8 = sp14; @@ -2549,7 +2532,8 @@ static void ExecItemBagJump(void) { } } -static void ExecItemBagShow(void) { +static void ExecItemBagShow(void) +{ Vec sp14; Vec sp8; float var_f31; @@ -2581,7 +2565,8 @@ static void ExecItemBagShow(void) { } } -static void ExecItemBag(void) { +static void ExecItemBag(void) +{ UnkItemShowProcStruct sp3C; Vec sp30; Vec sp24; @@ -2644,12 +2629,14 @@ static void ExecItemBag(void) { var_r25 = 0x100; var_r26 = frandmod(40) + 30; } - } else { + } + else { var_r25 = HuPadBtnDown[temp_r23]; } if (!(var_r25 & 0x100)) { HuPrcVSleep(); - } else { + } + else { BoardPlayerDiceJumpStart(currItemRestore); while (!BoardPlayerDiceJumpCheck(currItemRestore)) { HuPrcVSleep(); @@ -2660,7 +2647,7 @@ static void ExecItemBag(void) { BoardModelScaleSetV(sp8[var_r30], &sp24); BoardModelVisibilitySet(sp8[var_r30], 1); temp_r29 = HuPrcChildCreate(ExecItemBagJump, 0x2004, 0x1000, 0, HuPrcCurrentGet()); - temp_r29->user_data = (void*) sp8[var_r30]; + temp_r29->user_data = (void *)sp8[var_r30]; temp_r29 = HuPrcChildCreate(ExecItemBagShow, 0x2004, 0x1000, 0, HuPrcCurrentGet()); temp_r29->user_data = temp_r24; while (GWPlayer[currItemRestore].jump) { @@ -2691,14 +2678,16 @@ static void ExecItemBag(void) { } } -static void RestoreItemNull(void) { +static void RestoreItemNull(void) +{ HuPrcKill(NULL); while (1) { HuPrcVSleep(); } } -static void RestoreItemMini(void) { +static void RestoreItemMini(void) +{ HuAudFXPlay(0x311); ItemSizeSet(0); HuPrcKill(NULL); @@ -2707,7 +2696,8 @@ static void RestoreItemMini(void) { } } -static void RestoreItemMega(void) { +static void RestoreItemMega(void) +{ HuAudFXPlay(0x313); ItemSizeSet(0); HuPrcKill(NULL); @@ -2716,7 +2706,8 @@ static void RestoreItemMega(void) { } } -static void RestoreItemMiniSuper(void) { +static void RestoreItemMiniSuper(void) +{ HuAudFXPlay(0x311); ItemSizeSet(0); HuPrcKill(NULL); @@ -2725,7 +2716,8 @@ static void RestoreItemMiniSuper(void) { } } -static void RestoreItemMegaSuper(void) { +static void RestoreItemMegaSuper(void) +{ HuAudFXPlay(0x313); ItemSizeSet(0); HuPrcKill(NULL); @@ -2734,7 +2726,8 @@ static void RestoreItemMegaSuper(void) { } } -static void RestoreItemBowser(void) { +static void RestoreItemBowser(void) +{ Vec sp20; Vec sp14; Vec sp8; diff --git a/src/game/board/lottery.c b/src/game/board/lottery.c index 72bffb14..f64992f4 100755 --- a/src/game/board/lottery.c +++ b/src/game/board/lottery.c @@ -833,7 +833,7 @@ static void LotteryInlineFunc00(s32 arg0, s32 arg1) { temp_f30 = 4.0f; if (lotterySpr == -1) { lotterySpr = espEntry(sp20[arg0], 30001, 0); - espAttrSet(lotterySpr, 1); + espAttrSet(lotterySpr, HUSPR_ATTR_NOANIM); } } else { sp34.y = (sp10[arg0] / 2) + 40; diff --git a/src/game/board/model.c b/src/game/board/model.c index b621f1fd..d7ee3353 100644 --- a/src/game/board/model.c +++ b/src/game/board/model.c @@ -1,5 +1,5 @@ -#include "game/board/main.h" #include "game/board/model.h" +#include "game/board/main.h" #include "game/chrman.h" #include "game/hsfman.h" #include "game/hsfmotion.h" @@ -10,31 +10,31 @@ #define BOARD_MOT_MAX 32 typedef struct board_model { - struct { - u8 visible : 1; - u8 visible_old : 1; - u8 field00_bit2 : 1; - u8 field00_bit3 : 1; - u8 field00_bit4 : 1; - }; - s8 mot_count; - s8 character; - u8 alpha; - u8 layer; - u16 camera; - s16 index; - s16 id; - s16 mot_id[BOARD_MOT_MAX]; - s16 curr_mot; - HsfData *data; - HsfData *mot_data[BOARD_MOT_MAX]; - float unk_D4; - s32 data_num; - float mot_start; - float mot_end; - Vec pos; - Vec rot; - Vec scale; + struct { + u8 visible : 1; + u8 visible_old : 1; + u8 field00_bit2 : 1; + u8 field00_bit3 : 1; + u8 field00_bit4 : 1; + }; + s8 mot_count; + s8 character; + u8 alpha; + u8 layer; + u16 camera; + s16 index; + s16 id; + s16 mot_id[BOARD_MOT_MAX]; + s16 curr_mot; + HsfData *data; + HsfData *mot_data[BOARD_MOT_MAX]; + float unk_D4; + s32 data_num; + float mot_start; + float mot_end; + Vec pos; + Vec rot; + Vec scale; } BoardModel; static s16 modelDataNum; @@ -52,1132 +52,1199 @@ void BoardModelDummyUpdate(void); void BoardModelVisibilityUpdate(void); typedef struct modelmgr_work { - u8 kill : 1; + u8 kill : 1; } ModelMgrWork; void BoardModelInit(void) { - ModelMgrWork *work; - s32 i; - modelDataList = HuMemDirectMallocNum(HEAP_SYSTEM, BOARD_MODEL_MAX*sizeof(BoardModel), MEMORY_DEFAULT_NUM); - reflectMapNo = 0; - modelDataNum = 0; - memset(modelDataList, 0, BOARD_MODEL_MAX*sizeof(BoardModel)); - for(i=0; ikill = 0; - omSetStatBit(modelMgrObj, OM_STAT_NOPAUSE|0x80); + ModelMgrWork *work; + s32 i; + modelDataList = HuMemDirectMallocNum(HEAP_SYSTEM, BOARD_MODEL_MAX * sizeof(BoardModel), MEMORY_DEFAULT_NUM); + reflectMapNo = 0; + modelDataNum = 0; + memset(modelDataList, 0, BOARD_MODEL_MAX * sizeof(BoardModel)); + for (i = 0; i < BOARD_MODEL_MAX; i++) { + modelDataList[i].index = -1; + modelDataList[i].visible = 0; + } + modelMgrObj = omAddObjEx(boardObjMan, 32258, 0, 0, -1, ModelMgrFunc); + work = OM_GET_WORK_PTR(modelMgrObj, ModelMgrWork); + work->kill = 0; + omSetStatBit(modelMgrObj, OM_STAT_NOPAUSE | 0x80); } void BoardModelKillAll(void) { - if(modelMgrObj) { - ModelMgrWork *work = OM_GET_WORK_PTR(modelMgrObj, ModelMgrWork); - work->kill = 1; - } - if(modelDataList) { - BoardModel *model; - for(model=modelDataList; model < &modelDataList[BOARD_MODEL_MAX]; model++) { - KillBoardModel(model); - } - if(modelDataList) { - HuMemDirectFree(modelDataList); - modelDataList = NULL; - } - - } + if (modelMgrObj) { + ModelMgrWork *work = OM_GET_WORK_PTR(modelMgrObj, ModelMgrWork); + work->kill = 1; + } + if (modelDataList) { + BoardModel *model; + for (model = modelDataList; model < &modelDataList[BOARD_MODEL_MAX]; model++) { + KillBoardModel(model); + } + if (modelDataList) { + HuMemDirectFree(modelDataList); + modelDataList = NULL; + } + } } static void ModelMgrFunc(omObjData *object) { - ModelMgrWork *work = OM_GET_WORK_PTR(modelMgrObj, ModelMgrWork); - if(work->kill || BoardIsKill()) { - modelMgrObj = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - BoardModelDummyUpdate(); - BoardModelVisibilityUpdate(); + ModelMgrWork *work = OM_GET_WORK_PTR(modelMgrObj, ModelMgrWork); + if (work->kill || BoardIsKill()) { + modelMgrObj = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + BoardModelDummyUpdate(); + BoardModelVisibilityUpdate(); } -void BoardModelDummyUpdate(void) -{ - -} +void BoardModelDummyUpdate(void) { } void BoardModelVisibilityUpdate(void) { - s32 i; - BoardModel *model; - u32 temp[2]; - Vec pos, target; - temp[1] = temp[0] = 0; - BoardCameraPosGet(&pos); - BoardCameraTargetGet(&target); - for(i=0, model = modelDataList; iindex == -1) { - continue; - } - attr = Hu3DModelAttrGet(model->id); - if(!model->visible) { - if(!(attr & 0x1)) { - Hu3DModelAttrSet(model->id, 1); - } - } else { - if(attr & 0x1) { - Hu3DModelAttrReset(model->id, 1); - } - } - } + s32 i; + BoardModel *model; + u32 temp[2]; + Vec pos, target; + temp[1] = temp[0] = 0; + BoardCameraPosGet(&pos); + BoardCameraTargetGet(&target); + for (i = 0, model = modelDataList; i < BOARD_MODEL_MAX; i++, model++) { + u32 attr; + if (model->index == -1) { + continue; + } + attr = Hu3DModelAttrGet(model->id); + if (!model->visible) { + if (!(attr & 0x1)) { + Hu3DModelAttrSet(model->id, HU3D_ATTR_DISPOFF); + } + } + else { + if (attr & 0x1) { + Hu3DModelAttrReset(model->id, HU3D_ATTR_DISPOFF); + } + } + } } void BoardModelHideSetAll(s32 flag) { - BoardModel *model; - if(!modelDataList) { - return; - } - - for(model=modelDataList; model < &modelDataList[BOARD_MODEL_MAX]; model++) { - if(model->index == -1) { - continue; - } - if(flag) { - model->visible_old = model->visible; - model->visible = 0; - } else { - model->visible = model->visible_old; - } - } + BoardModel *model; + if (!modelDataList) { + return; + } + + for (model = modelDataList; model < &modelDataList[BOARD_MODEL_MAX]; model++) { + if (model->index == -1) { + continue; + } + if (flag) { + model->visible_old = model->visible; + model->visible = 0; + } + else { + model->visible = model->visible_old; + } + } } void BoardModelAmbSetAll(float r, float g, float b) { - BoardModel *model; - for(model=modelDataList; model < &modelDataList[BOARD_MODEL_MAX]; model++) { - if(model->index == -1) { - continue; - } - BoardModelAmbSet(model->index, r, g, b); - } + BoardModel *model; + for (model = modelDataList; model < &modelDataList[BOARD_MODEL_MAX]; model++) { + if (model->index == -1) { + continue; + } + BoardModelAmbSet(model->index, r, g, b); + } } void BoardModelCameraSetAll(u16 camera) { - BoardModel *model; - for(model=modelDataList; model < &modelDataList[BOARD_MODEL_MAX]; model++) { - if(model->index == -1) { - continue; - } - if(model->character != -1) { - continue; - } - Hu3DModelCameraSet(model->id, camera); - model->camera = camera; - } + BoardModel *model; + for (model = modelDataList; model < &modelDataList[BOARD_MODEL_MAX]; model++) { + if (model->index == -1) { + continue; + } + if (model->character != -1) { + continue; + } + Hu3DModelCameraSet(model->id, camera); + model->camera = camera; + } } static s16 CreateInstance(s32 character, s32 data_num, s32 *mot_list, s32 link, s32 arg4) { - BoardModel *model; - s32 i; - model = NULL; - for(i=0; iindex = i+1; - model->character = character; - modelDataNum++; - if(CreateBoardModel(model, data_num, link) == 0) { - s32 count; - count = 0; - if(mot_list) { - for(count=0; mot_list[count] >= 0; count++); - if(count >= BOARD_MOT_MAX) { - count = BOARD_MOT_MAX; - } - } - for(i=0; imot_id[i] = -1; - } - if(CreateBoardModelMotion(model, count, mot_list) == 0) { - model->visible = 1; - model->visible_old = model->visible; - model->field00_bit2 = 0; - model->field00_bit4 = 0; - model->unk_D4 = 100.0f; - model->scale.x = model->scale.y = model->scale.z = 1.0f; - model->curr_mot = 0; - Hu3DModelCameraSet(model->id, 1); - Hu3DModelLayerSet(model->id, 0); - model->field00_bit3 = 0; - model->alpha = 255; - BoardModelPosSet(model->index, 0.0f, 0.0f, 0.0f); - BoardModelRotSet(model->index, 0.0f, 0.0f, 0.0f); - BoardModelScaleSet(model->index, 1.0f, 1.0f, 1.0f); - BoardModelAmbSet(model->index, 1.0f, 1.0f, 1.0f); - return model->index; - } - } - BoardModelKill(model->index); - return -1; + BoardModel *model; + s32 i; + model = NULL; + for (i = 0; i < BOARD_MODEL_MAX; i++) { + if (modelDataList[i].index == -1) { + model = &modelDataList[i]; + break; + } + } + if (!model) { + return -1; + } + memset(model, 0, sizeof(BoardModel)); + model->index = i + 1; + model->character = character; + modelDataNum++; + if (CreateBoardModel(model, data_num, link) == 0) { + s32 count; + count = 0; + if (mot_list) { + for (count = 0; mot_list[count] >= 0; count++) + ; + if (count >= BOARD_MOT_MAX) { + count = BOARD_MOT_MAX; + } + } + for (i = 0; i < BOARD_MOT_MAX; i++) { + model->mot_id[i] = -1; + } + if (CreateBoardModelMotion(model, count, mot_list) == 0) { + model->visible = 1; + model->visible_old = model->visible; + model->field00_bit2 = 0; + model->field00_bit4 = 0; + model->unk_D4 = 100.0f; + model->scale.x = model->scale.y = model->scale.z = 1.0f; + model->curr_mot = 0; + Hu3DModelCameraSet(model->id, 1); + Hu3DModelLayerSet(model->id, 0); + model->field00_bit3 = 0; + model->alpha = 255; + BoardModelPosSet(model->index, 0.0f, 0.0f, 0.0f); + BoardModelRotSet(model->index, 0.0f, 0.0f, 0.0f); + BoardModelScaleSet(model->index, 1.0f, 1.0f, 1.0f); + BoardModelAmbSet(model->index, 1.0f, 1.0f, 1.0f); + return model->index; + } + } + BoardModelKill(model->index); + return -1; } s16 BoardModelCreate(s32 data_num, s32 *mot_list, s32 link) { - return CreateInstance(-1, data_num, mot_list, link, 0); + return CreateInstance(-1, data_num, mot_list, link, 0); } s16 BoardModelCreateCharacter(s32 character, s32 data_num, s32 *mot_list, s32 link) { - return CreateInstance(character, data_num, mot_list, link, 0); + return CreateInstance(character, data_num, mot_list, link, 0); } s16 BoardModelCreateParam(BoardModelParam *param, Vec *pos, Vec *rot) { - float unk_param; - s16 model = BoardModelCreate(param->data_num, NULL, param->unk4.link); - if(model == -1) { - return -1; - } - BoardModelMotionStart(model, 0, (param->unk4.pause) ? 0x40000001 : 0); - if(!param->unk4.start_mot) { - BoardModelMotionSpeedSet(model, 0.0f); - } - BoardModelExistDupe(model, param->unk4.field04_bit0); - BoardModelVisibilitySet(model, param->unk4.visible); - if(pos) { - BoardModelPosSetV(model, pos); - } - if(rot) { - BoardModelRotSetV(model, rot); - } - OSs16tof32(¶m->unk6, &unk_param); - fn_8006DDE8(model, unk_param); - return model; + float unk_param; + s16 model = BoardModelCreate(param->data_num, NULL, param->unk4.link); + if (model == -1) { + return -1; + } + BoardModelMotionStart(model, 0, (param->unk4.pause) ? 0x40000001 : 0); + if (!param->unk4.start_mot) { + BoardModelMotionSpeedSet(model, 0.0f); + } + BoardModelExistDupe(model, param->unk4.field04_bit0); + BoardModelVisibilitySet(model, param->unk4.visible); + if (pos) { + BoardModelPosSetV(model, pos); + } + if (rot) { + BoardModelRotSetV(model, rot); + } + OSs16tof32(¶m->unk6, &unk_param); + fn_8006DDE8(model, unk_param); + return model; } void BoardModelKill(s16 model) { - BoardModel *model_ptr = SearchBoardModel(model); - if(model_ptr) { - KillBoardModel(model_ptr); - } + BoardModel *model_ptr = SearchBoardModel(model); + if (model_ptr) { + KillBoardModel(model_ptr); + } } s16 BoardModelIDGet(s16 model) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - return model_ptr->id; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + return model_ptr->id; + } } s32 fn_8006DC1C(s16 model, s32 arg1) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - model_ptr->field00_bit3 = arg1; - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + model_ptr->field00_bit3 = arg1; + return 0; + } } s32 BoardModelPassSet(s16 model, s32 pass) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - if(pass != 0) { - Hu3DModelAttrSet(model_ptr->id, 2); - } else { - Hu3DModelAttrReset(model_ptr->id, 2); - } - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + if (pass != 0) { + Hu3DModelAttrSet(model_ptr->id, HU3D_ATTR_ZWRITE_OFF); + } + else { + Hu3DModelAttrReset(model_ptr->id, 2); + } + return 0; + } } s32 BoardModelAmbSet(s16 model, float r, float g, float b) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - Hu3DModelAmbSet(model_ptr->id, r, g, b); - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + Hu3DModelAmbSet(model_ptr->id, r, g, b); + return 0; + } } s32 BoardModelExistCheck(s16 model, s32 arg1) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + return 0; + } } s32 BoardModelExistDupe(s16 model, s32 arg1) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + return 0; + } } s32 fn_8006DDE8(s16 model, float arg1) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - if(arg1 < 0) { - arg1 = -1; - } - model_ptr->unk_D4 = arg1; - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + if (arg1 < 0) { + arg1 = -1; + } + model_ptr->unk_D4 = arg1; + return 0; + } } s32 BoardModelMotionCreate(s16 model, s32 data_num) { - BoardModel *model_ptr = SearchBoardModel(model); - s32 i; - if(!model_ptr) { - return -1; - } else { - s16 id; - if(model_ptr->mot_count >= BOARD_MOT_MAX) { - return -1; - } - for(i=1; imot_id[i] == -1) { - break; - } - } - if(model_ptr->character == -1) { - model_ptr->mot_data[i] = HuDataSelHeapReadNum(data_num, MEMORY_DEFAULT_NUM, HEAP_DATA); - if(!model_ptr->mot_data[i]) { - return -1; - } - model = Hu3DJointMotion(model_ptr->id, model_ptr->mot_data[i]); - } else { - model = CharModelMotionCreate(model_ptr->character, data_num); - CharModelMotionDataClose(model_ptr->character); - } - model_ptr->mot_id[i] = model; - model_ptr->mot_count++; - return i; - } + BoardModel *model_ptr = SearchBoardModel(model); + s32 i; + if (!model_ptr) { + return -1; + } + else { + s16 id; + if (model_ptr->mot_count >= BOARD_MOT_MAX) { + return -1; + } + for (i = 1; i < BOARD_MOT_MAX; i++) { + if (model_ptr->mot_id[i] == -1) { + break; + } + } + if (model_ptr->character == -1) { + model_ptr->mot_data[i] = HuDataSelHeapReadNum(data_num, MEMORY_DEFAULT_NUM, HEAP_DATA); + if (!model_ptr->mot_data[i]) { + return -1; + } + model = Hu3DJointMotion(model_ptr->id, model_ptr->mot_data[i]); + } + else { + model = CharModelMotionCreate(model_ptr->character, data_num); + CharModelMotionDataClose(model_ptr->character); + } + model_ptr->mot_id[i] = model; + model_ptr->mot_count++; + return i; + } } s32 BoardModelMotionKill(s16 model, s32 motion) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - if(motion >= BOARD_MOT_MAX || motion <= 0) { - return -1; - } - if(motion == model_ptr->curr_mot && model_ptr->curr_mot != 0) { - BoardModelMotionStart(model, 0, 0); - } - if(model_ptr->mot_id[motion] > 0) { - if(model_ptr->character == -1) { - Hu3DMotionKill(model_ptr->mot_id[motion]); - } else { - CharModelMotionKill(model_ptr->character, model_ptr->mot_id[motion]); - } - model_ptr->mot_id[motion] = -1; - } - model_ptr->mot_data[motion] = NULL; - model_ptr->mot_count--; - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + if (motion >= BOARD_MOT_MAX || motion <= 0) { + return -1; + } + if (motion == model_ptr->curr_mot && model_ptr->curr_mot != 0) { + BoardModelMotionStart(model, 0, 0); + } + if (model_ptr->mot_id[motion] > 0) { + if (model_ptr->character == -1) { + Hu3DMotionKill(model_ptr->mot_id[motion]); + } + else { + CharModelMotionKill(model_ptr->character, model_ptr->mot_id[motion]); + } + model_ptr->mot_id[motion] = -1; + } + model_ptr->mot_data[motion] = NULL; + model_ptr->mot_count--; + return 0; + } } s32 BoardModelMotionStartEndSet(s16 model, s16 start, s16 end) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - if(start >= 0) { - OSs16tof32(&start, &model_ptr->mot_start); - } - if(end >= 0) { - OSs16tof32(&end, &model_ptr->mot_end); - } - Hu3DMotionStartEndSet(model_ptr->id, model_ptr->mot_start, model_ptr->mot_end); - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + if (start >= 0) { + OSs16tof32(&start, &model_ptr->mot_start); + } + if (end >= 0) { + OSs16tof32(&end, &model_ptr->mot_end); + } + Hu3DMotionStartEndSet(model_ptr->id, model_ptr->mot_start, model_ptr->mot_end); + return 0; + } } s32 BoardModelMotionUpdateSet(s16 model, s32 flag) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - if(flag) { - Hu3DModelAttrSet(model_ptr->id, 0x40000001); - } else { - Hu3DModelAttrReset(model_ptr->id, 0x40000001); - } - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + if (flag) { + Hu3DModelAttrSet(model_ptr->id, HU3D_MOTATTR_LOOP); + } + else { + Hu3DModelAttrReset(model_ptr->id, 0x40000001); + } + return 0; + } } s32 BoardModelVoiceEnableSet(s16 model, s32 motion, s32 flag) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - if(motion >= BOARD_MOT_MAX || motion < 0) { - return 0; - } - if(model_ptr->character == -1) { - return 0; - } - CharModelVoiceEnableSet(model_ptr->character, model_ptr->mot_id[motion], flag); - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + if (motion >= BOARD_MOT_MAX || motion < 0) { + return 0; + } + if (model_ptr->character == -1) { + return 0; + } + CharModelVoiceEnableSet(model_ptr->character, model_ptr->mot_id[motion], flag); + return 0; + } } s32 BoardModelMotionStart(s16 model, s32 motion, u32 attr) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - if(motion >= BOARD_MOT_MAX || motion < 0) { - return 0; - } - Hu3DMotionSpeedSet(model_ptr->id, 1.0f); - if(model_ptr->character == -1) { - Hu3DMotionSet(model_ptr->id, model_ptr->mot_id[motion]); - } else { - CharModelMotionSet(model_ptr->character, model_ptr->mot_id[motion]); - } - model_ptr->mot_start = 0.0f; - if(model_ptr->character == -1) { - model_ptr->mot_end = Hu3DMotionMaxTimeGet(model_ptr->id); - } else { - model_ptr->mot_end = CharModelMotionMaxTimeGet(model_ptr->character); - } - model_ptr->field00_bit4 = 0; - if(attr & 0x40000024) { - if(model_ptr->character == -1) { - Hu3DMotionTimeSet(model_ptr->id, model_ptr->mot_end); - } else { - CharModelMotionTimeSet(model_ptr->character, model_ptr->mot_end); - } - } - Hu3DModelAttrReset(model_ptr->id, 0x40000003); - Hu3DModelAttrSet(model_ptr->id, attr); - model_ptr->curr_mot = motion; - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + if (motion >= BOARD_MOT_MAX || motion < 0) { + return 0; + } + Hu3DMotionSpeedSet(model_ptr->id, 1.0f); + if (model_ptr->character == -1) { + Hu3DMotionSet(model_ptr->id, model_ptr->mot_id[motion]); + } + else { + CharModelMotionSet(model_ptr->character, model_ptr->mot_id[motion]); + } + model_ptr->mot_start = 0.0f; + if (model_ptr->character == -1) { + model_ptr->mot_end = Hu3DMotionMaxTimeGet(model_ptr->id); + } + else { + model_ptr->mot_end = CharModelMotionMaxTimeGet(model_ptr->character); + } + model_ptr->field00_bit4 = 0; + if (attr & 0x40000024) { + if (model_ptr->character == -1) { + Hu3DMotionTimeSet(model_ptr->id, model_ptr->mot_end); + } + else { + CharModelMotionTimeSet(model_ptr->character, model_ptr->mot_end); + } + } + Hu3DModelAttrReset(model_ptr->id, 0x40000003); + Hu3DModelAttrSet(model_ptr->id, attr); + model_ptr->curr_mot = motion; + return 0; + } } s32 BoardModelMotionShiftIDGet(s16 model) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - return Hu3DMotionShiftIDGet(model_ptr->id); - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + return Hu3DMotionShiftIDGet(model_ptr->id); + } } s32 BoardModelMotionShiftSet(s16 model, s32 motion, float time, float shift_time, u32 attr) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - if(motion >= BOARD_MOT_MAX || motion < 0) { - return -1; - } - model_ptr->mot_start = 0.0f; - if(model_ptr->character == -1) { - model_ptr->mot_end = Hu3DMotionMaxTimeGet(model_ptr->id); - } else { - model_ptr->mot_end = CharModelMotionMaxTimeGet(model_ptr->character); - } - model_ptr->field00_bit4 = 0; - if(model_ptr->character == -1) { - Hu3DMotionShiftSet(model_ptr->id, model_ptr->mot_id[motion], time, shift_time, attr); - } else { - CharModelMotionShiftSet(model_ptr->character, model_ptr->mot_id[motion], time, shift_time, attr); - } - model_ptr->curr_mot = motion; - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + if (motion >= BOARD_MOT_MAX || motion < 0) { + return -1; + } + model_ptr->mot_start = 0.0f; + if (model_ptr->character == -1) { + model_ptr->mot_end = Hu3DMotionMaxTimeGet(model_ptr->id); + } + else { + model_ptr->mot_end = CharModelMotionMaxTimeGet(model_ptr->character); + } + model_ptr->field00_bit4 = 0; + if (model_ptr->character == -1) { + Hu3DMotionShiftSet(model_ptr->id, model_ptr->mot_id[motion], time, shift_time, attr); + } + else { + CharModelMotionShiftSet(model_ptr->character, model_ptr->mot_id[motion], time, shift_time, attr); + } + model_ptr->curr_mot = motion; + return 0; + } } s32 BoardModelAttrSet(s16 model, u32 attr) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - Hu3DModelAttrSet(model_ptr->id, attr); - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + Hu3DModelAttrSet(model_ptr->id, attr); + return 0; + } } s32 BoardModelAttrReset(s16 model, u32 attr) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - Hu3DModelAttrReset(model_ptr->id, attr); - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + Hu3DModelAttrReset(model_ptr->id, attr); + return 0; + } } s32 BoardModelMotionTimeSet(s16 model, float time) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - if(model_ptr->character == -1) { - Hu3DMotionTimeSet(model_ptr->id, time); - } else { - CharModelMotionTimeSet(model_ptr->character, time); - } - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + if (model_ptr->character == -1) { + Hu3DMotionTimeSet(model_ptr->id, time); + } + else { + CharModelMotionTimeSet(model_ptr->character, time); + } + return 0; + } } float BoardModelMotionTimeGet(s16 model) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - float time; - if(model_ptr->character == -1) { - time = Hu3DData[model_ptr->id].unk_64; - } else { - time = CharModelMotionTimeGet(model_ptr->character); - } - return time; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + float time; + if (model_ptr->character == -1) { + time = Hu3DData[model_ptr->id].unk_64; + } + else { + time = CharModelMotionTimeGet(model_ptr->character); + } + return time; + } } float BoardModelMotionMaxTimeGet(s16 model) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - float time; - if(model_ptr->character == -1) { - time = Hu3DMotionMaxTimeGet(model_ptr->id); - } else { - time = CharModelMotionMaxTimeGet(model_ptr->character); - } - return time; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + float time; + if (model_ptr->character == -1) { + time = Hu3DMotionMaxTimeGet(model_ptr->id); + } + else { + time = CharModelMotionMaxTimeGet(model_ptr->character); + } + return time; + } } float BoardModelMotionSpeedGet(s16 model) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - ModelData *hsf_model = &Hu3DData[model_ptr->id]; - return hsf_model->unk_68; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + ModelData *hsf_model = &Hu3DData[model_ptr->id]; + return hsf_model->unk_68; + } } s32 BoardModelMotionSpeedSet(s16 model, float speed) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - ModelData *hsf_model; - if(model_ptr->character == -1) { - Hu3DMotionSpeedSet(model_ptr->id, speed); - } else { - CharModelMotionSpeedSet(model_ptr->character, speed); - } - hsf_model = &Hu3DData[model_ptr->id]; - hsf_model->unk_88 = speed; - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + ModelData *hsf_model; + if (model_ptr->character == -1) { + Hu3DMotionSpeedSet(model_ptr->id, speed); + } + else { + CharModelMotionSpeedSet(model_ptr->character, speed); + } + hsf_model = &Hu3DData[model_ptr->id]; + hsf_model->unk_88 = speed; + return 0; + } } s32 BoardModelMotionEndCheck(s16 model) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return 1; - } else { - s32 result; - if(model_ptr->character == -1) { - result = Hu3DMotionEndCheck(model_ptr->id); - } else { - result = CharModelMotionEndCheck(model_ptr->character); - } - return result; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return 1; + } + else { + s32 result; + if (model_ptr->character == -1) { + result = Hu3DMotionEndCheck(model_ptr->id); + } + else { + result = CharModelMotionEndCheck(model_ptr->character); + } + return result; + } } s32 BoardModelMotionShapeSet(s16 model, s32 motion, u32 attr) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - ModelData *hsf_model; - if(model_ptr->character != -1) { - return -1; - } - if(motion >= BOARD_MOT_MAX) { - return -1; - } - hsf_model = &Hu3DData[model_ptr->id]; - hsf_model->unk_98 = 1.0f; - Hu3DMotionShapeSet(model_ptr->id, model_ptr->mot_id[motion]); - if(attr & 0x40000100) { - float max_time = Hu3DMotionMaxTimeGet(model_ptr->id); - hsf_model->unk_94 = max_time; - } - Hu3DModelAttrSet(model_ptr->id, attr); - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + ModelData *hsf_model; + if (model_ptr->character != -1) { + return -1; + } + if (motion >= BOARD_MOT_MAX) { + return -1; + } + hsf_model = &Hu3DData[model_ptr->id]; + hsf_model->unk_98 = 1.0f; + Hu3DMotionShapeSet(model_ptr->id, model_ptr->mot_id[motion]); + if (attr & 0x40000100) { + float max_time = Hu3DMotionMaxTimeGet(model_ptr->id); + hsf_model->unk_94 = max_time; + } + Hu3DModelAttrSet(model_ptr->id, attr); + return 0; + } } float BoardModelMotionShapeTimeGet(s16 model) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - ModelData *hsf_model; - if(model_ptr->character != -1) { - return -1; - } - hsf_model = &Hu3DData[model_ptr->id]; - return hsf_model->unk_94; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + ModelData *hsf_model; + if (model_ptr->character != -1) { + return -1; + } + hsf_model = &Hu3DData[model_ptr->id]; + return hsf_model->unk_94; + } } float BoardModelMotionShapeMaxTimeGet(s16 model) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - ModelData *hsf_model; - MotionData *motion; - HsfMotion *motion_hsf; - if(model_ptr->character != -1) { - return -1; - } - hsf_model = &Hu3DData[model_ptr->id]; - if(hsf_model->unk_0E == -1) { - return 0; - } - motion = &Hu3DMotion[hsf_model->unk_0E]; - motion_hsf = motion->unk_04->motion; - return motion_hsf->len; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + ModelData *hsf_model; + MotionData *motion; + HsfMotion *motion_hsf; + if (model_ptr->character != -1) { + return -1; + } + hsf_model = &Hu3DData[model_ptr->id]; + if (hsf_model->unk_0E == -1) { + return 0; + } + motion = &Hu3DMotion[hsf_model->unk_0E]; + motion_hsf = motion->unk_04->motion; + return motion_hsf->len; + } } s32 BoardModelMotionShapeSpeedSet(s16 model, float speed) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - ModelData *hsf_model; - if(model_ptr->character != -1) { - return -1; - } - hsf_model = &Hu3DData[model_ptr->id]; - hsf_model->unk_98 = speed; - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + ModelData *hsf_model; + if (model_ptr->character != -1) { + return -1; + } + hsf_model = &Hu3DData[model_ptr->id]; + hsf_model->unk_98 = speed; + return 0; + } } float BoardModelMotionShapeSpeedGet(s16 model, float speed) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - ModelData *hsf_model; - hsf_model = &Hu3DData[model_ptr->id]; - return hsf_model->unk_98; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + ModelData *hsf_model; + hsf_model = &Hu3DData[model_ptr->id]; + return hsf_model->unk_98; + } } s32 BoardModelMotionShapeEndCheck(s16 model) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return 1; - } else { - ModelData *hsf_model; - if(model_ptr->character != -1) { - return 1; - } - hsf_model = &Hu3DData[model_ptr->id]; - if(hsf_model->attr & 0x40000100) { - return hsf_model->unk_94 <= 0.0f; - } - return BoardModelMotionShapeMaxTimeGet(model) <= hsf_model->unk_94; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return 1; + } + else { + ModelData *hsf_model; + if (model_ptr->character != -1) { + return 1; + } + hsf_model = &Hu3DData[model_ptr->id]; + if (hsf_model->attr & 0x40000100) { + return hsf_model->unk_94 <= 0.0f; + } + return BoardModelMotionShapeMaxTimeGet(model) <= hsf_model->unk_94; + } } s32 BoardModelMotionShapeStartEndSet(s16 model, s16 start, s16 end) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - if(model_ptr->character != -1) { - return -1; - } - if(start >= 0) { - OSs16tof32(&start, &model_ptr->mot_start); - } - if(end >= 0) { - OSs16tof32(&end, &model_ptr->mot_end); - } - Hu3DMotionShapeStartEndSet(model_ptr->id, model_ptr->mot_start, model_ptr->mot_end); - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + if (model_ptr->character != -1) { + return -1; + } + if (start >= 0) { + OSs16tof32(&start, &model_ptr->mot_start); + } + if (end >= 0) { + OSs16tof32(&end, &model_ptr->mot_end); + } + Hu3DMotionShapeStartEndSet(model_ptr->id, model_ptr->mot_start, model_ptr->mot_end); + return 0; + } } s32 BoardModelAlphaSet(s16 model, u8 alpha) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - float tp_lvl; - model_ptr->alpha = alpha; - OSu8tof32(&alpha, &tp_lvl); - tp_lvl = tp_lvl*(1.0f/255.0f); - Hu3DModelTPLvlSet(model_ptr->id, tp_lvl); - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + float tp_lvl; + model_ptr->alpha = alpha; + OSu8tof32(&alpha, &tp_lvl); + tp_lvl = tp_lvl * (1.0f / 255.0f); + Hu3DModelTPLvlSet(model_ptr->id, tp_lvl); + return 0; + } } s32 BoardModelMtxSet(s16 model, Mtx *src) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - ModelData *hsf_model; - if(!src) { - return -1; - } - hsf_model = &Hu3DData[model_ptr->id]; - MTXCopy(*src, hsf_model->unk_F0); - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + ModelData *hsf_model; + if (!src) { + return -1; + } + hsf_model = &Hu3DData[model_ptr->id]; + MTXCopy(*src, hsf_model->unk_F0); + return 0; + } } s32 BoardModelMtxGet(s16 model, Mtx *dst) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - ModelData *hsf_model; - if(!dst) { - return -1; - } - hsf_model = &Hu3DData[model_ptr->id]; - MTXCopy(hsf_model->unk_F0, *dst); - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + ModelData *hsf_model; + if (!dst) { + return -1; + } + hsf_model = &Hu3DData[model_ptr->id]; + MTXCopy(hsf_model->unk_F0, *dst); + return 0; + } } s32 BoardModelRotYSet(s16 model, float rot) { - Vec rot_orig; - BoardModelRotGet(model, &rot_orig); - return BoardModelRotSet(model, rot_orig.x, BoardDAngleCalc(rot), rot_orig.z); + Vec rot_orig; + BoardModelRotGet(model, &rot_orig); + return BoardModelRotSet(model, rot_orig.x, BoardDAngleCalc(rot), rot_orig.z); } float BoardModelRotYGet(s16 model) { - Vec rot; - BoardModelRotGet(model, &rot); - return rot.y; + Vec rot; + BoardModelRotGet(model, &rot); + return rot.y; } s32 BoardModelPosSetV(s16 model, Vec *pos) { - if(!pos) { - return -1; - } else { - return BoardModelPosSet(model, pos->x, pos->y, pos->z); - } + if (!pos) { + return -1; + } + else { + return BoardModelPosSet(model, pos->x, pos->y, pos->z); + } } - s32 BoardModelPosSet(s16 model, float x, float y, float z) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - model_ptr->pos.x = x; - model_ptr->pos.y = y; - model_ptr->pos.z = z; - Hu3DModelPosSetV(model_ptr->id, &model_ptr->pos); - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + model_ptr->pos.x = x; + model_ptr->pos.y = y; + model_ptr->pos.z = z; + Hu3DModelPosSetV(model_ptr->id, &model_ptr->pos); + return 0; + } } s32 BoardModelRotSetV(s16 model, Vec *pos) { - if(!pos) { - return -1; - } else { - return BoardModelRotSet(model, pos->x, pos->y, pos->z); - } + if (!pos) { + return -1; + } + else { + return BoardModelRotSet(model, pos->x, pos->y, pos->z); + } } s32 BoardModelRotSet(s16 model, float x, float y, float z) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - model_ptr->rot.x = x; - model_ptr->rot.y = y; - model_ptr->rot.z = z; - Hu3DModelRotSetV(model_ptr->id, &model_ptr->rot); - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + model_ptr->rot.x = x; + model_ptr->rot.y = y; + model_ptr->rot.z = z; + Hu3DModelRotSetV(model_ptr->id, &model_ptr->rot); + return 0; + } } s32 BoardModelScaleSetV(s16 model, Vec *pos) { - if(!pos) { - return -1; - } else { - return BoardModelScaleSet(model, pos->x, pos->y, pos->z); - } + if (!pos) { + return -1; + } + else { + return BoardModelScaleSet(model, pos->x, pos->y, pos->z); + } } s32 BoardModelScaleSet(s16 model, float x, float y, float z) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - model_ptr->scale.x = x; - model_ptr->scale.y = y; - model_ptr->scale.z = z; - Hu3DModelScaleSetV(model_ptr->id, &model_ptr->scale); - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + model_ptr->scale.x = x; + model_ptr->scale.y = y; + model_ptr->scale.z = z; + Hu3DModelScaleSetV(model_ptr->id, &model_ptr->scale); + return 0; + } } s32 BoardModelPosGet(s16 model, Vec *dst) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr || !dst) { - return -1; - } else { - *dst = model_ptr->pos; - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr || !dst) { + return -1; + } + else { + *dst = model_ptr->pos; + return 0; + } } s32 BoardModelRotGet(s16 model, Vec *dst) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr || !dst) { - return -1; - } else { - *dst = model_ptr->rot; - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr || !dst) { + return -1; + } + else { + *dst = model_ptr->rot; + return 0; + } } s32 BoardModelScaleGet(s16 model, Vec *dst) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr || !dst) { - return -1; - } else { - *dst = model_ptr->scale; - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr || !dst) { + return -1; + } + else { + *dst = model_ptr->scale; + return 0; + } } s32 BoardModelVisibilitySet(s16 model, s32 visible) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - model_ptr->visible = visible; - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + model_ptr->visible = visible; + return 0; + } } s32 BoardModelVisibilityGet(s16 model) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return 0; - } else { - return model_ptr->visible; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return 0; + } + else { + return model_ptr->visible; + } } s32 BoardModelCameraSet(s16 model, u16 camera) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - Hu3DModelCameraSet(model_ptr->id, camera); - model_ptr->camera = camera; - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + Hu3DModelCameraSet(model_ptr->id, camera); + model_ptr->camera = camera; + return 0; + } } s32 BoardModelLayerSet(s16 model, u8 layer) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - model_ptr->layer = layer; - Hu3DModelLayerSet(model_ptr->id, layer); - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + model_ptr->layer = layer; + Hu3DModelLayerSet(model_ptr->id, layer); + return 0; + } } s32 BoardModelLayerGet(s16 model) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - return model_ptr->layer; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + return model_ptr->layer; + } } void BoardModelLayerSetAll(s32 layer) { - BoardModel *model; - for(model=modelDataList; model < &modelDataList[BOARD_MODEL_MAX]; model++) { - if(model->index == -1 || model->character != -1) { - continue; - } - Hu3DModelLayerSet(model->id, layer); - } + BoardModel *model; + for (model = modelDataList; model < &modelDataList[BOARD_MODEL_MAX]; model++) { + if (model->index == -1 || model->character != -1) { + continue; + } + Hu3DModelLayerSet(model->id, layer); + } } s32 BoardModelHookSet(s16 model, char *name, s16 hook) { - BoardModel *model_ptr = SearchBoardModel(model); + BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - BoardModel *hook_ptr = SearchBoardModel(hook); - if(!hook_ptr || !name) { - return -1; - } - Hu3DModelHookSet(model_ptr->id, name, hook_ptr->id); - BoardModelPosSet(hook, 0, 0, 0); - return 0; - } + if (!model_ptr) { + return -1; + } + else { + BoardModel *hook_ptr = SearchBoardModel(hook); + if (!hook_ptr || !name) { + return -1; + } + Hu3DModelHookSet(model_ptr->id, name, hook_ptr->id); + BoardModelPosSet(hook, 0, 0, 0); + return 0; + } } s32 BoardModelHookReset(s16 model) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - Hu3DModelHookReset(model_ptr->id); - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + Hu3DModelHookReset(model_ptr->id); + return 0; + } } s32 BoardModelHookObjReset(s16 model, char *name) { - BoardModel *model_ptr = SearchBoardModel(model); - if(!model_ptr) { - return -1; - } else { - Hu3DModelHookObjReset(model_ptr->id, name); - return 0; - } + BoardModel *model_ptr = SearchBoardModel(model); + if (!model_ptr) { + return -1; + } + else { + Hu3DModelHookObjReset(model_ptr->id, name); + return 0; + } } static BoardModel *SearchBoardModel(s16 id) { - BoardModel *model; - if(id <= 0 || id > BOARD_MODEL_MAX || !modelDataList || BoardIsKill()) { - return NULL; - } - model = &modelDataList[id-1]; - if(model->index != id) { - return NULL; - } - return model; + BoardModel *model; + if (id <= 0 || id > BOARD_MODEL_MAX || !modelDataList || BoardIsKill()) { + return NULL; + } + model = &modelDataList[id - 1]; + if (model->index != id) { + return NULL; + } + return model; } static void KillBoardModel(BoardModel *model) { - s32 i; - if(model->index == -1) { - return; - } - if(model->character == -1) { - model->mot_id[0] = -1; - if(model->id >= 0) { - Hu3DModelKill(model->id); - model->id = -1; - } - for(i=1; imot_id[i] >= 0) { - if(i != 0) { - Hu3DMotionKill(model->mot_id[i]); - } - model->mot_id[i] = -1; - } - model->mot_data[i] = NULL; - } - model->data = NULL; - model->data_num = 0; - } else { - for(i=0; imot_id[i] = -1; - model->mot_data[i] = NULL; - } - if(model->data) { - if(model->id >= 0) { - model->id = -1; - } - model->data = NULL; - } - CharModelKill(model->character); - model->character = -1; - } - modelDataNum--; - model->index = -1; - model->visible = 0; + s32 i; + if (model->index == -1) { + return; + } + if (model->character == -1) { + model->mot_id[0] = -1; + if (model->id >= 0) { + Hu3DModelKill(model->id); + model->id = -1; + } + for (i = 1; i < BOARD_MOT_MAX; i++) { + if (model->mot_id[i] >= 0) { + if (i != 0) { + Hu3DMotionKill(model->mot_id[i]); + } + model->mot_id[i] = -1; + } + model->mot_data[i] = NULL; + } + model->data = NULL; + model->data_num = 0; + } + else { + for (i = 0; i < BOARD_MOT_MAX; i++) { + model->mot_id[i] = -1; + model->mot_data[i] = NULL; + } + if (model->data) { + if (model->id >= 0) { + model->id = -1; + } + model->data = NULL; + } + CharModelKill(model->character); + model->character = -1; + } + modelDataNum--; + model->index = -1; + model->visible = 0; } static BoardModel *FindLinkModel(s32 data_num) { - BoardModel *model; - for(model=modelDataList; model < &modelDataList[BOARD_MODEL_MAX]; model++) { - if(model->data_num == data_num) { - return model; - } - } - return NULL; + BoardModel *model; + for (model = modelDataList; model < &modelDataList[BOARD_MODEL_MAX]; model++) { + if (model->data_num == data_num) { + return model; + } + } + return NULL; } static s32 CreateBoardModel(BoardModel *model, s32 data_num, s32 link) { - BoardModel *linked_mdl = NULL; - if(link && model->character == -1) { - linked_mdl = FindLinkModel(data_num); - if(linked_mdl) { - model->id = Hu3DModelLink(linked_mdl->id); - model->data = NULL; - model->data_num = 0; - return 0; - } - } - if(model->character == -1) { - model->data = HuDataSelHeapReadNum(data_num, MEMORY_DEFAULT_NUM, HEAP_DATA); - if(!model->data) { - s32 size_data, size_dvd; - size_data = HuMemHeapSizeGet(HEAP_DATA)-HuMemUsedMallocSizeGet(HEAP_DATA); - size_dvd = HuMemHeapSizeGet(HEAP_DVD)-HuMemUsedMallocSizeGet(HEAP_DVD); - return -1; - } - } else { - model->data = NULL; - } - if(model->character == -1) { - model->id = Hu3DModelCreate(model->data); - } else { - model->id = CharModelCreate(model->character, 2); - } - Hu3DModelAttrSet(model->id, 0x4000); - if(model->id < 0) { - return -1; - } else { - model->data_num = data_num; - return 0; - } + BoardModel *linked_mdl = NULL; + if (link && model->character == -1) { + linked_mdl = FindLinkModel(data_num); + if (linked_mdl) { + model->id = Hu3DModelLink(linked_mdl->id); + model->data = NULL; + model->data_num = 0; + return 0; + } + } + if (model->character == -1) { + model->data = HuDataSelHeapReadNum(data_num, MEMORY_DEFAULT_NUM, HEAP_DATA); + if (!model->data) { + s32 size_data, size_dvd; + size_data = HuMemHeapSizeGet(HEAP_DATA) - HuMemUsedMallocSizeGet(HEAP_DATA); + size_dvd = HuMemHeapSizeGet(HEAP_DVD) - HuMemUsedMallocSizeGet(HEAP_DVD); + return -1; + } + } + else { + model->data = NULL; + } + if (model->character == -1) { + model->id = Hu3DModelCreate(model->data); + } + else { + model->id = CharModelCreate(model->character, 2); + } + Hu3DModelAttrSet(model->id, HU3D_ATTR_NOCULL); + if (model->id < 0) { + return -1; + } + else { + model->data_num = data_num; + return 0; + } } static s32 CreateBoardModelMotion(BoardModel *model, s32 count, s32 *data_num) { - void *data; - s32 i; - model->mot_id[0] = Hu3DData[model->id].unk_08; - if(!data_num) { - model->mot_count = 1; - return 0; - } - data = NULL; - for(i=0; icharacter == -1) { - data = HuDataSelHeapReadNum(data_num[i], MEMORY_DEFAULT_NUM, HEAP_DATA); - if(!data) { - return -1; - } - index = Hu3DJointMotion(model->id, data); - } else { - index = CharModelMotionCreate(model->character, data_num[i]); - } - if(index < 0) { - return -1; - } - model->mot_id[i+1] = index; - model->mot_data[i+1] = data; - } - model->mot_count = count+1; - return 0; -} \ No newline at end of file + void *data; + s32 i; + model->mot_id[0] = Hu3DData[model->id].unk_08; + if (!data_num) { + model->mot_count = 1; + return 0; + } + data = NULL; + for (i = 0; i < count; i++) { + s16 index; + if (model->character == -1) { + data = HuDataSelHeapReadNum(data_num[i], MEMORY_DEFAULT_NUM, HEAP_DATA); + if (!data) { + return -1; + } + index = Hu3DJointMotion(model->id, data); + } + else { + index = CharModelMotionCreate(model->character, data_num[i]); + } + if (index < 0) { + return -1; + } + model->mot_id[i + 1] = index; + model->mot_data[i + 1] = data; + } + model->mot_count = count + 1; + return 0; +} diff --git a/src/game/board/player.c b/src/game/board/player.c index 792a65af..3259ce6f 100644 --- a/src/game/board/player.c +++ b/src/game/board/player.c @@ -13,10 +13,11 @@ #include "game/board/ui.h" #include "game/board/view.h" #include "game/chrman.h" +#include "game/disp.h" #include "game/hsfman.h" #include "game/objsub.h" #include "game/pad.h" -#include "game/disp.h" + #include "math.h" #include "stdlib.h" @@ -2133,7 +2134,7 @@ static void UpdateRollSprite(omObjData *arg0) { Vec sp1C; s32 sp14[2]; - f32 spC[2] = { HU_DISP_CENTERX+32, HU_DISP_CENTERX-32 }; + f32 spC[2] = { HU_DISP_CENTERX + 32, HU_DISP_CENTERX - 32 }; s32 var_r30; s32 temp_r29; bitcopy3 *temp_r31; @@ -2155,10 +2156,11 @@ static void UpdateRollSprite(omObjData *arg0) else { if ((sp14[1] == 0) && (var_r30 == 0)) { sp1C.x = HU_DISP_CENTERX; - } else { + } + else { sp1C.x = spC[var_r30]; } - sp1C.y = (HU_DISP_HEIGHTF*176)/480; + sp1C.y = (HU_DISP_HEIGHTF * 176) / 480; HuSprAttrReset(temp_r31->unk_04, var_r30, 4); HuSprBankSet(temp_r31->unk_04, var_r30, sp14[var_r30]); HuSprPosSet(temp_r31->unk_04, var_r30, sp1C.x, sp1C.y); @@ -2681,7 +2683,7 @@ void BoardPlayerResizeAnimExec(s32 player, s32 size) frame_data[8] = steps[3]; model = BoardPlayerModelGet(player); modelid = BoardModelIDGet(model); - Hu3DModelAttrSet(modelid, 0x40000002); + Hu3DModelAttrSet(modelid, HU3D_MOTATTR_PAUSE); frame = 0; for (j = 0; j < 9; j++) { float size_vel; diff --git a/src/game/board/roll.c b/src/game/board/roll.c index f2c80503..fecf6dd3 100755 --- a/src/game/board/roll.c +++ b/src/game/board/roll.c @@ -1,17 +1,17 @@ #include "game/board/roll.h" #include "game/audio.h" -#include "game/gamework_data.h" -#include "game/hsfanim.h" -#include "game/object.h" -#include "game/pad.h" -#include "game/disp.h" -#include "game/process.h" -#include "game/window.h" #include "game/board/main.h" #include "game/board/model.h" #include "game/board/pause.h" #include "game/board/player.h" #include "game/board/tutorial.h" +#include "game/disp.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/object.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/window.h" #include "ext_math.h" @@ -42,7 +42,6 @@ typedef struct { float unk08; } DiceDigitWork; - static void RollMain(void); static void DiceCreate(s32 arg0); static void DoInput(s32 arg0); @@ -84,46 +83,17 @@ static omObjData *diceObj[3] = { NULL, NULL, NULL }; static omObjData *diceDigitObj[3] = { NULL, NULL, NULL }; static s32 diceSndStatus[3] = { -1, -1, -1 }; -static HsfanimStruct00 diceEffParam = { - 0x0096, - { 0x00, 0x00 }, // padding? - 50.0f, - 0.0f, - 65.0f, - { 0.0f, -0.195f, 0.0f }, - 100.0f, - 0.99f, - 40.0f, - 0.999f, - 0x0004, - { - { 0xFF, 0xFF, 0x20, 0xFF }, - { 0xFF, 0xFF, 0x00, 0xFF }, - { 0xFF, 0xFF, 0x80, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF } - }, - { - { 0xFF, 0xFF, 0xFF, 0x00 }, - { 0xFF, 0xFF, 0xFF, 0x00 }, - { 0xFF, 0xFF, 0xFF, 0x00 }, - { 0xFF, 0xFF, 0xFF, 0x00 } - } -}; +static HsfanimStruct00 diceEffParam = { 0x0096, { 0x00, 0x00 }, // padding? + 50.0f, 0.0f, 65.0f, { 0.0f, -0.195f, 0.0f }, 100.0f, 0.99f, 40.0f, 0.999f, 0x0004, + { { 0xFF, 0xFF, 0x20, 0xFF }, { 0xFF, 0xFF, 0x00, 0xFF }, { 0xFF, 0xFF, 0x80, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 } } }; -static s32 diceDigitMdlTbl[10] = { - DATA_MAKE_NUM(DATADIR_BOARD, 0x0C), - DATA_MAKE_NUM(DATADIR_BOARD, 0x0D), - DATA_MAKE_NUM(DATADIR_BOARD, 0x0E), - DATA_MAKE_NUM(DATADIR_BOARD, 0x0F), - DATA_MAKE_NUM(DATADIR_BOARD, 0x10), - DATA_MAKE_NUM(DATADIR_BOARD, 0x11), - DATA_MAKE_NUM(DATADIR_BOARD, 0x12), - DATA_MAKE_NUM(DATADIR_BOARD, 0x13), - DATA_MAKE_NUM(DATADIR_BOARD, 0x14), - DATA_MAKE_NUM(DATADIR_BOARD, 0x15) -}; +static s32 diceDigitMdlTbl[10] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x0C), DATA_MAKE_NUM(DATADIR_BOARD, 0x0D), DATA_MAKE_NUM(DATADIR_BOARD, 0x0E), + DATA_MAKE_NUM(DATADIR_BOARD, 0x0F), DATA_MAKE_NUM(DATADIR_BOARD, 0x10), DATA_MAKE_NUM(DATADIR_BOARD, 0x11), DATA_MAKE_NUM(DATADIR_BOARD, 0x12), + DATA_MAKE_NUM(DATADIR_BOARD, 0x13), DATA_MAKE_NUM(DATADIR_BOARD, 0x14), DATA_MAKE_NUM(DATADIR_BOARD, 0x15) }; -s32 BoardRollExec(s32 arg0) { +s32 BoardRollExec(s32 arg0) +{ rollPlayer = arg0; inputTimer = 0; numDice = 1; @@ -146,7 +116,8 @@ s32 BoardRollExec(s32 arg0) { if (BoardPlayerSizeGet(arg0) == 1) { diceSize = 1; maxRoll = 5; - } else if (BoardPlayerSizeGet(arg0) == 2) { + } + else if (BoardPlayerSizeGet(arg0) == 2) { diceSize = 2; maxRoll = 10; if (BoardMegaDoubleDiceCheck() != 0) { @@ -168,7 +139,8 @@ s32 BoardRollExec(s32 arg0) { return destMode; } -void BoardRollKill(void) { +void BoardRollKill(void) +{ if (rollProc) { HuPrcKill(rollProc); } @@ -176,7 +148,8 @@ void BoardRollKill(void) { DiceKill(); } -void BoardRollUPauseSet(s32 arg0) { +void BoardRollUPauseSet(s32 arg0) +{ if (!rollProc) { return; } @@ -189,18 +162,21 @@ void BoardRollUPauseSet(s32 arg0) { DiceHideEffect(2, arg0); } -void BoardRollWinDispSet(s32 arg0) { +void BoardRollWinDispSet(s32 arg0) +{ if (rollWin == -1) { return; } if (arg0 != 0) { HuWinDispOn(rollWin); - } else { + } + else { HuWinDispOff(rollWin); } } -static void RollMain(void) { +static void RollMain(void) +{ float sp8[2]; float var_f31; float var_f30; @@ -228,7 +204,8 @@ static void RollMain(void) { } if (BoardItemPrevGet() != -1 || var_r27 == 0 || _CheckFlag(FLAG_ID_MAKE(1, 9)) || BoardMegaDoubleDiceCheck()) { var_r29 = MAKE_MESSID(0x09, 0x04); - } else { + } + else { var_r29 = MAKE_MESSID(0x09, 0x02); } if (inputTimer != 0) { @@ -240,10 +217,10 @@ static void RollMain(void) { var_f31 = -10000.0f; break; case 1: - var_f31 = HU_DISP_CENTERX- (sp8[0] / 2 - 16.0f); + var_f31 = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f); break; } - var_f30 = HU_DISP_HEIGHT-176; + var_f30 = HU_DISP_HEIGHT - 176; rollWin = HuWinCreate(var_f31, var_f30, sp8[0], sp8[1], 0); HuWinBGTPLvlSet(rollWin, 0.0f); HuWinMesSpeedSet(rollWin, 0); @@ -306,19 +283,16 @@ static void RollMain(void) { HuPrcEnd(); } -static void DiceCreate(s32 arg0) { +static void DiceCreate(s32 arg0) +{ Vec sp1C; float temp_f30; float var_f31; omObjData *temp_r31; DiceWork *temp_r30; s32 sp8; - s32 spC[4] = { - DATA_MAKE_NUM(DATADIR_BOARD, 0x18), - DATA_MAKE_NUM(DATADIR_BOARD, 0x19), - DATA_MAKE_NUM(DATADIR_BOARD, 0x1A), - DATA_MAKE_NUM(DATADIR_BOARD, 0x1B) - }; + s32 spC[4] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x18), DATA_MAKE_NUM(DATADIR_BOARD, 0x19), DATA_MAKE_NUM(DATADIR_BOARD, 0x1A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x1B) }; sp8 = 0; diceMdl[arg0] = BoardModelCreate(spC[diceSize], NULL, 0); @@ -342,7 +316,8 @@ static void DiceCreate(s32 arg0) { var_f31 = 250.0f; if (diceSize == 2) { var_f31 = 625.0f; - } else if (GWPlayer[rollPlayer].bowser_suit != 0) { + } + else if (GWPlayer[rollPlayer].bowser_suit != 0) { var_f31 = 575.0f; } sp1C.y += var_f31; @@ -355,7 +330,8 @@ static void DiceCreate(s32 arg0) { sp1C.z += 70.0f; } -static void DoInput(s32 arg0) { +static void DoInput(s32 arg0) +{ s32 var_r31; s32 var_r30; u16 sp8[1]; @@ -393,7 +369,8 @@ static void DoInput(s32 arg0) { if (_CheckFlag(FLAG_ID_MAKE(1, 9)) && GWBoardGet() == BOARD_ID_MAIN6 && *sp8 == 0x200 && var_r31 != 0) { HuAudFXPlay(4); } - } else if (*sp8 == 0x200) { + } + else if (*sp8 == 0x200) { destMode = -2; HuAudFXPlay(3); BoardPauseDisableSet(1); @@ -403,7 +380,8 @@ static void DoInput(s32 arg0) { } } -static void DiceWaitFull(s32 arg0) { +static void DiceWaitFull(s32 arg0) +{ DiceWork *temp_r31 = OM_GET_WORK_PTR(diceObj[arg0], DiceWork); while (temp_r31->unk00_field2 != 1) { @@ -411,20 +389,22 @@ static void DiceWaitFull(s32 arg0) { } } -static void DiceSetHit(s32 arg0) { +static void DiceSetHit(s32 arg0) +{ DiceWork *temp_r30 = OM_GET_WORK_PTR(diceObj[arg0], DiceWork); temp_r30->unk00_field2 = 2; temp_r30->unk04 = 0; BoardModelMotionSpeedSet(diceMdl[arg0], 0.0f); - diceValue[arg0] = (s32) BoardModelMotionTimeGet(diceMdl[arg0]) + 1; + diceValue[arg0] = (s32)BoardModelMotionTimeGet(diceMdl[arg0]) + 1; if (tutorialRollF != 0 && tutorialRoll[arg0] != -1) { BoardModelMotionTimeSet(diceMdl[arg0], tutorialRoll[arg0] - 1); diceValue[arg0] = tutorialRoll[arg0]; } } -static void RollDestroy(void) { +static void RollDestroy(void) +{ if (rollWin != -1) { HuWinKill(rollWin); rollWin = -1; @@ -438,7 +418,8 @@ static void RollDestroy(void) { rollProc = NULL; } -static void DiceMain(omObjData *arg0) { +static void DiceMain(omObjData *arg0) +{ DiceWork *temp_r29 = OM_GET_WORK_PTR(arg0, DiceWork); float temp_f29; float var_f28; @@ -470,7 +451,8 @@ static void DiceMain(omObjData *arg0) { temp_r29->unk00_field2 = 1; arg0->scale.x = arg0->scale.y = arg0->scale.z = 1.0f; arg0->rot.y = temp_r29->unk04 = 0; - } else { + } + else { if (temp_r29->unk04 == 0 && diceSndStatus[temp_r29->unk00_field3] == -1) { diceSndStatus[temp_r29->unk00_field3] = HuAudFXPlay(0x300); } @@ -479,17 +461,19 @@ static void DiceMain(omObjData *arg0) { if (temp_r29->unk04 < 0xB4) { var_f27 = 0.0f; var_f28 = 1.0f; - } else { + } + else { var_f27 = 1.0f; var_f28 = 0.5f; } - arg0->scale.x = var_f27 + var_f28 * sind((float) (temp_r29->unk04 % 180)); + arg0->scale.x = var_f27 + var_f28 * sind((float)(temp_r29->unk04 % 180)); arg0->scale.y = arg0->scale.x; arg0->scale.z = arg0->scale.x; if (temp_r29->unk04 <= 360) { if (temp_r29->unk04 < 0xB4) { temp_r29->unk04 += 6; - } else { + } + else { temp_r29->unk04 += 0x12; } if (temp_r29->unk04 > 360) { @@ -521,14 +505,16 @@ static void DiceMain(omObjData *arg0) { diceEff[temp_r29->unk00_field3] = BoardDiceEffectCreate(); Hu3DParManPosSet(diceEff[temp_r29->unk00_field3], arg0->trans.x, arg0->trans.y, arg0->trans.z); BoardModelVisibilitySet(diceMdl[temp_r29->unk00_field3], 0); - } else { + } + else { OSs16tof32(&temp_r29->unk04, &temp_f29); if (temp_r29->unk04 < 4) { arg0->trans.y += 10.0f + (0.5f * temp_f29); arg0->scale.x += 0.1f * sind(4.0f * temp_f29); arg0->scale.y = arg0->scale.x; arg0->scale.z = arg0->scale.x; - } else { + } + else { BoardModelAlphaSet(diceMdl[temp_r29->unk00_field3], 0xFF - (temp_r29->unk04 << 5)); } arg0->trans.y += -0.49f * temp_f29 * temp_f29; @@ -556,7 +542,8 @@ static void DiceMain(omObjData *arg0) { BoardModelScaleSet(diceMdl[temp_r29->unk00_field3], arg0->scale.x, arg0->scale.y, arg0->scale.z); } -static void DicePause(s32 arg0) { +static void DicePause(s32 arg0) +{ omObjData *temp_r31 = diceObj[arg0]; if (temp_r31) { @@ -564,13 +551,15 @@ static void DicePause(s32 arg0) { } } -static void DicePauseAll(void) { +static void DicePauseAll(void) +{ DicePause(0); DicePause(1); DicePause(2); } -s16 BoardDiceEffectCreate(void) { +s16 BoardDiceEffectCreate(void) +{ s16 temp_r31; s16 temp_r30; AnimData *temp_r29; @@ -589,7 +578,8 @@ s16 BoardDiceEffectCreate(void) { return temp_r31; } -static void DiceHideEffect(s32 arg0, s32 arg1) { +static void DiceHideEffect(s32 arg0, s32 arg1) +{ s16 temp_r31; if (diceEff[arg0] == -1) { @@ -597,13 +587,15 @@ static void DiceHideEffect(s32 arg0, s32 arg1) { } temp_r31 = Hu3DParManModelIDGet(diceEff[arg0]); if (arg1 != 0) { - Hu3DModelAttrReset(temp_r31, 1); - } else { - Hu3DModelAttrSet(temp_r31, 1); + Hu3DModelAttrReset(temp_r31, HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrSet(temp_r31, HU3D_ATTR_DISPOFF); } } -void BoardDicePauseAll(void) { +void BoardDicePauseAll(void) +{ DiceDigitWork *temp_r30; s32 i; @@ -617,7 +609,8 @@ void BoardDicePauseAll(void) { } } -BOOL BoardDiceDoneCheck(void) { +BOOL BoardDiceDoneCheck(void) +{ DiceDigitWork *temp_r30; s32 i; @@ -632,7 +625,8 @@ BOOL BoardDiceDoneCheck(void) { return TRUE; } -void BoardDiceStop(s32 arg0) { +void BoardDiceStop(s32 arg0) +{ DiceDigitWork *temp_r31; if (!diceDigitObj[arg0]) { @@ -642,7 +636,8 @@ void BoardDiceStop(s32 arg0) { temp_r31->unk00_field0 = 1; } -void BoardDiceVisibleSet(s32 arg0, s32 arg1) { +void BoardDiceVisibleSet(s32 arg0, s32 arg1) +{ DiceDigitWork *temp_r31; if (!diceDigitObj[arg0]) { @@ -651,13 +646,15 @@ void BoardDiceVisibleSet(s32 arg0, s32 arg1) { temp_r31 = OM_GET_WORK_PTR(diceDigitObj[arg0], DiceDigitWork); if ((temp_r31->unk01 / 10) == 0) { BoardModelVisibilitySet(temp_r31->unk04[1], 0); - } else { + } + else { BoardModelVisibilitySet(temp_r31->unk04[1], arg1); } BoardModelVisibilitySet(temp_r31->unk04[0], arg1); } -void BoardDiceValueSet(s32 arg0, s32 arg1) { +void BoardDiceValueSet(s32 arg0, s32 arg1) +{ omObjData *temp_r27; DiceDigitWork *temp_r31; Vec spC; @@ -696,7 +693,8 @@ void BoardDiceValueSet(s32 arg0, s32 arg1) { diceDigitObj[arg0] = temp_r27; } -static void DiceDigitMain(omObjData *arg0) { +static void DiceDigitMain(omObjData *arg0) +{ DiceDigitWork *temp_r31 = OM_GET_WORK_PTR(arg0, DiceDigitWork); if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { @@ -709,7 +707,8 @@ static void DiceDigitMain(omObjData *arg0) { DiceDigitRotate(temp_r31, temp_r31->unk00_field1); } -static void DiceDigitKill(DiceDigitWork *arg0) { +static void DiceDigitKill(DiceDigitWork *arg0) +{ s32 i; for (i = 0; i < 2; i++) { @@ -719,7 +718,8 @@ static void DiceDigitKill(DiceDigitWork *arg0) { } } -static void DiceKill(void) { +static void DiceKill(void) +{ DiceDigitWork *temp_r29; s32 i; @@ -731,22 +731,18 @@ static void DiceKill(void) { } } -static void DiceDigitMove(DiceDigitWork *arg0, s32 arg1) { +static void DiceDigitMove(DiceDigitWork *arg0, s32 arg1) +{ s32 sp8 = 0; Vec sp30; Vec sp24; Vec sp54[2]; - Vec sp18 = { (HU_DISP_WIDTH/2), (HU_DISP_HEIGHT*155)/480, 240.0f }; - Vec sp3C[2] = { - { (HU_DISP_WIDTH*1)/4, (HU_DISP_HEIGHT*155)/480, 240.0f }, - { (HU_DISP_WIDTH*3)/4, (HU_DISP_HEIGHT*155)/480, 240.0f } - }; - Vec sp6C[3] = { - { (HU_DISP_WIDTH*1)/4, (HU_DISP_HEIGHT*155)/480, 240.0f }, - { (HU_DISP_WIDTH*3)/4, (HU_DISP_HEIGHT*155)/480, 240.0f }, - { (HU_DISP_WIDTH/2), (HU_DISP_HEIGHT*155)/480, 240.0f } - }; - Vec spC = { (HU_DISP_WIDTH/2), (HU_DISP_HEIGHT*176)/480, 240.0f }; + Vec sp18 = { (HU_DISP_WIDTH / 2), (HU_DISP_HEIGHT * 155) / 480, 240.0f }; + Vec sp3C[2] + = { { (HU_DISP_WIDTH * 1) / 4, (HU_DISP_HEIGHT * 155) / 480, 240.0f }, { (HU_DISP_WIDTH * 3) / 4, (HU_DISP_HEIGHT * 155) / 480, 240.0f } }; + Vec sp6C[3] = { { (HU_DISP_WIDTH * 1) / 4, (HU_DISP_HEIGHT * 155) / 480, 240.0f }, + { (HU_DISP_WIDTH * 3) / 4, (HU_DISP_HEIGHT * 155) / 480, 240.0f }, { (HU_DISP_WIDTH / 2), (HU_DISP_HEIGHT * 155) / 480, 240.0f } }; + Vec spC = { (HU_DISP_WIDTH / 2), (HU_DISP_HEIGHT * 176) / 480, 240.0f }; Vec *var_r29; float var_f31; s16 var_r27; @@ -756,7 +752,8 @@ static void DiceDigitMove(DiceDigitWork *arg0, s32 arg1) { if (arg1 != 0) { var_r29 = &spC; var_f31 = -20.0f * arg0->unk00_field3; - } else { + } + else { switch (numDice) { case 1: var_r29 = &sp18; @@ -773,9 +770,11 @@ static void DiceDigitMove(DiceDigitWork *arg0, s32 arg1) { for (i = 0; i < 2; i++) { if (var_r27 == 0) { sp54[i].x = var_r29->x; - } else if (i != 0) { + } + else if (i != 0) { sp54[i].x = var_r29->x - 30.0f; - } else { + } + else { sp54[i].x = var_r29->x + 30.0f; } sp54[i].y = var_r29->y; @@ -790,7 +789,8 @@ static void DiceDigitMove(DiceDigitWork *arg0, s32 arg1) { if (arg1 != 0 && arg0->unk00_field3 != 0) { BoardModelVisibilitySet(arg0->unk04[i], 0); } - } else { + } + else { arg0->unk00_field2 = 1; } VECScale(&sp24, &sp24, arg0->unk08); @@ -799,7 +799,8 @@ static void DiceDigitMove(DiceDigitWork *arg0, s32 arg1) { } } -static void DiceDigitRotate(DiceDigitWork *arg0, s32 arg1) { +static void DiceDigitRotate(DiceDigitWork *arg0, s32 arg1) +{ float var_f30; s32 i; @@ -808,7 +809,8 @@ static void DiceDigitRotate(DiceDigitWork *arg0, s32 arg1) { if (arg0->unk02 >= 360) { arg0->unk02 = 360; } - } else { + } + else { arg0->unk02 -= 0x12; if (arg0->unk02 <= 0) { arg0->unk02 = 0; @@ -822,7 +824,8 @@ static void DiceDigitRotate(DiceDigitWork *arg0, s32 arg1) { } } -static void SameRollExec(void) { +static void SameRollExec(void) +{ Vec sp8; float var_f31; s32 var_r28; @@ -838,7 +841,8 @@ static void SameRollExec(void) { case 2: if (diceValue[0] == 7) { var_r31 = 0x1E; - } else { + } + else { var_r31 = 0xA; } break; @@ -846,9 +850,11 @@ static void SameRollExec(void) { if (diceValue[0] == 7) { var_r31 = 0x32; var_r28 = 0x118; - } else if (diceValue[0] & 1) { + } + else if (diceValue[0] & 1) { var_r31 = 0x1E; - } else { + } + else { var_r31 = 0xA; } break; @@ -860,7 +866,8 @@ static void SameRollExec(void) { if (BoardPlayerSizeGet(rollPlayer) == 2 || GWPlayer[rollPlayer].bowser_suit != 0) { sp8.y += 700.0f; var_f31 = 450.0f; - } else { + } + else { sp8.y += 600.0f; var_f31 = 300.0f; } @@ -878,9 +885,11 @@ static void SameRollExec(void) { BoardWinKill(); if (var_r31 >= 0x32) { var_r29 = 1; - } else if (var_r31 >= 0x14) { + } + else if (var_r31 >= 0x14) { var_r29 = 3; - } else { + } + else { var_r29 = 6; } for (i = 0; i < var_r31; i++) { @@ -893,7 +902,8 @@ static void SameRollExec(void) { BoardPauseDisableSet(0); } -static s32 GetBtnRoll(s32 arg0) { +static s32 GetBtnRoll(s32 arg0) +{ s32 var_r31 = 0; s32 var_r29; @@ -917,7 +927,8 @@ static s32 GetBtnRoll(s32 arg0) { return var_r31; } -static s32 GetComBtnRoll(s32 arg0) { +static s32 GetComBtnRoll(s32 arg0) +{ if (BoardItemPrevGet() != -1 || BoardPlayerItemCount(arg0) == 0 || BoardMegaDoubleDiceCheck() || _CheckFlag(FLAG_ID_MAKE(1, 9))) { return 0x100; } @@ -927,7 +938,8 @@ static s32 GetComBtnRoll(s32 arg0) { return 0x100; } -void BoardRollTutorialSet(s16 *arg0) { +void BoardRollTutorialSet(s16 *arg0) +{ s32 i; for (i = 0; i < 3; i++) { diff --git a/src/game/board/space.c b/src/game/board/space.c index 505f2678..052f2bca 100644 --- a/src/game/board/space.c +++ b/src/game/board/space.c @@ -1,39 +1,30 @@ -#include "game/gamework_data.h" -#include "game/flag.h" +#include "game/board/space.h" #include "game/board/battle.h" #include "game/board/lottery.h" #include "game/board/main.h" #include "game/board/model.h" #include "game/board/player.h" #include "game/board/shop.h" -#include "game/board/space.h" #include "game/board/star.h" #include "game/board/tutorial.h" -#include "game/hsfman.h" #include "game/data.h" -#include "game/sprite.h" +#include "game/flag.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" #include "game/objsub.h" +#include "game/sprite.h" #include "math.h" #include "string.h" - static BoardSpace spaceData[2][256]; s16 boardSpaceStarTbl[8]; static GXTexObj spaceHiliteTex; static GXTexObj spaceTex; -static s8 spaceImgIdx[12] = { - 0, 1, 2, 7, - 6, 5, 3, 4, - 9, 10, 11, 0 -}; +static s8 spaceImgIdx[12] = { 0, 1, 2, 7, 6, 5, 3, 4, 9, 10, 11, 0 }; -static s8 spaceHiliteImgIdx[12] = { - -1, 0, 1, 1, - 2, 2, 2, 2, - -1, 3, -1, -1 -}; +static s8 spaceHiliteImgIdx[12] = { -1, 0, 1, 1, 2, 2, 2, 2, -1, 3, -1, -1 }; static s16 spaceCnt[2]; static u32 spaceAttr[2]; @@ -53,723 +44,737 @@ static s16 starPlatMdl = -1; static s32 ExecPipeSpace(s32 player, s32 space); - void BoardSpaceWalkEventFuncSet(BoardSpaceEventFunc func) { - walkEventFunc = func; + walkEventFunc = func; } void BoardSpaceWalkMiniEventFuncSet(BoardSpaceEventFunc func) { - walkMiniEventFunc = func; + walkMiniEventFunc = func; } void BoardSpaceLandEventFuncSet(BoardSpaceEventFunc func) { - landEventFunc = func; + landEventFunc = func; } s32 BoardSpaceWalkEventExec(void) { - s32 ret = -1; - if(walkEventFunc) { - ret = walkEventFunc(); - } - return ret; + s32 ret = -1; + if (walkEventFunc) { + ret = walkEventFunc(); + } + return ret; } s32 BoardSpaceWalkMiniEventExec(void) { - s32 ret = -1; - if(walkMiniEventFunc) { - _SetFlag(FLAG_ID_MAKE(1, 8)); - ret = walkMiniEventFunc(); - _ClearFlag(FLAG_ID_MAKE(1, 8)); - } - return ret; + s32 ret = -1; + if (walkMiniEventFunc) { + _SetFlag(FLAG_ID_MAKE(1, 8)); + ret = walkMiniEventFunc(); + _ClearFlag(FLAG_ID_MAKE(1, 8)); + } + return ret; } s32 BoardSpaceCountGet(s32 layer) { - return spaceCnt[layer]; + return spaceCnt[layer]; } BoardSpace *BoardSpaceGet(s32 layer, s32 index) { - if(index <= 0 || index > spaceCnt[layer]) { - return NULL; - } else { - return &spaceData[layer][index-1]; - } + if (index <= 0 || index > spaceCnt[layer]) { + return NULL; + } + else { + return &spaceData[layer][index - 1]; + } } void BoardSpaceAttrSet(s32 layer, u32 attr) { - spaceAttr[layer] |= attr; + spaceAttr[layer] |= attr; } void BoardSpaceAttrReset(s32 layer, u32 attr) { - spaceAttr[layer] &= ~attr; + spaceAttr[layer] &= ~attr; } u32 BoardSpaceFlagGet(s32 layer, s32 index) { - if(index <= 0 || index > spaceCnt[layer]) { - return 0; - } else { - return spaceData[layer][index-1].flag; - } + if (index <= 0 || index > spaceCnt[layer]) { + return 0; + } + else { + return spaceData[layer][index - 1].flag; + } } s32 BoardSpaceTypeGet(s32 layer, s32 index) { - if(index <= 0 || index > spaceCnt[layer]) { - return 0; - } else { - return spaceData[layer][index-1].type; - } + if (index <= 0 || index > spaceCnt[layer]) { + return 0; + } + else { + return spaceData[layer][index - 1].type; + } } void BoardSpaceTypeSet(s32 layer, s32 index, s32 type) { - if(index <= 0 || index > spaceCnt[layer]) { - return; - } else { - spaceData[layer][index-1].type = type; - } + if (index <= 0 || index > spaceCnt[layer]) { + return; + } + else { + spaceData[layer][index - 1].type = type; + } } s32 BoardSpacePosGet(s32 layer, s32 index, Vec *pos) { - BoardSpace *space = BoardSpaceGet(layer, index); - if(!space) { - return -1; - } else { - *pos = space->pos; - return 0; - } + BoardSpace *space = BoardSpaceGet(layer, index); + if (!space) { + return -1; + } + else { + *pos = space->pos; + return 0; + } } void BoardSpaceCornerPosGet(s32 index, s32 corner, Vec *pos) { - Vec corner_ofs; - Vec rot; - s8 corner_pos[4][2] = {{-1, -1}, {1, -1}, {-1, 1}, {1, 1}}; - BoardSpaceRotGet(0, index, &rot); - BoardSpacePosGet(0, index, pos); - corner_ofs.x = corner_pos[corner][0]*80.0f; - corner_ofs.y = 0; - corner_ofs.z = corner_pos[corner][1]*80.0f; - corner_ofs.x = (cos((M_PI*rot.z)/180)*corner_ofs.x)+(sin((M_PI*rot.z)/180)*corner_ofs.y); - corner_ofs.y = (cos((M_PI*rot.x)/180)*cos((M_PI*rot.z)/180)*corner_ofs.y) - +(sin((M_PI*rot.z)/180)*corner_ofs.x) - +(sin((M_PI*-rot.x)/180)*corner_ofs.z); - corner_ofs.z = (sin((M_PI*rot.x)/180)*corner_ofs.y)+(cos((M_PI*rot.x)/180)*corner_ofs.z); - pos->x += corner_ofs.x; - pos->y += corner_ofs.y; - pos->z += corner_ofs.z; + Vec corner_ofs; + Vec rot; + s8 corner_pos[4][2] = { { -1, -1 }, { 1, -1 }, { -1, 1 }, { 1, 1 } }; + BoardSpaceRotGet(0, index, &rot); + BoardSpacePosGet(0, index, pos); + corner_ofs.x = corner_pos[corner][0] * 80.0f; + corner_ofs.y = 0; + corner_ofs.z = corner_pos[corner][1] * 80.0f; + corner_ofs.x = (cos((M_PI * rot.z) / 180) * corner_ofs.x) + (sin((M_PI * rot.z) / 180) * corner_ofs.y); + corner_ofs.y = (cos((M_PI * rot.x) / 180) * cos((M_PI * rot.z) / 180) * corner_ofs.y) + (sin((M_PI * rot.z) / 180) * corner_ofs.x) + + (sin((M_PI * -rot.x) / 180) * corner_ofs.z); + corner_ofs.z = (sin((M_PI * rot.x) / 180) * corner_ofs.y) + (cos((M_PI * rot.x) / 180) * corner_ofs.z); + pos->x += corner_ofs.x; + pos->y += corner_ofs.y; + pos->z += corner_ofs.z; } s32 BoardSpaceRotGet(s32 layer, s32 index, Vec *rot) { - BoardSpace *space = BoardSpaceGet(layer, index); - if(!space) { - return -1; - } else { - *rot = space->rot; - return 0; - } + BoardSpace *space = BoardSpaceGet(layer, index); + if (!space) { + return -1; + } + else { + *rot = space->rot; + return 0; + } } s32 BoardSpaceFlagSearch(s32 layer, u32 flag) { - s32 i; - for(i=0; iflag & flag) == flag) { - return space-(&spaceData[layer][0])+1; - } - } - return -1; + s32 i; + for (i = 0; i < spaceCnt[layer]; i++) { + BoardSpace *space = &spaceData[layer][i]; + if ((space->flag & flag) == flag) { + return space - (&spaceData[layer][0]) + 1; + } + } + return -1; } s32 BoardSpaceFlagPosGet(s32 layer, u32 flag, Vec *pos) { - s32 space = BoardSpaceFlagSearch(layer, flag); - if(space == -1) { - return -1; - } - if(pos) { - BoardSpacePosGet(layer, space, pos); - } - return space; + s32 space = BoardSpaceFlagSearch(layer, flag); + if (space == -1) { + return -1; + } + if (pos) { + BoardSpacePosGet(layer, space, pos); + } + return space; } s32 BoardSpaceLinkFlagSearch(s32 layer, s32 index, u32 flag) { - BoardSpace *link_space; - BoardSpace *space = BoardSpaceGet(layer, index); - s32 i; - if(!space) { - return -1; - } - for(i=0; ilink_cnt; i++) { - link_space = BoardSpaceGet(layer, space->link[i]); - if(link_space->flag & flag) { - return link_space-&spaceData[layer][0]+1; - } - } - return -1; + BoardSpace *link_space; + BoardSpace *space = BoardSpaceGet(layer, index); + s32 i; + if (!space) { + return -1; + } + for (i = 0; i < space->link_cnt; i++) { + link_space = BoardSpaceGet(layer, space->link[i]); + if (link_space->flag & flag) { + return link_space - &spaceData[layer][0] + 1; + } + } + return -1; } s32 BoardSpaceLinkTypeListGet(s32 layer, s32 index, s32 type, s16 *list) { - s32 count; - BoardSpace *space = BoardSpaceGet(layer, index); - s32 i; - if(!space) { - return -1; - } - for(count=i=0; ilink_cnt; i++) { - BoardSpace *link_space = BoardSpaceGet(layer, space->link[i]); - if(link_space->type == type && count < BOARD_SPACE_LINKMAX) { - list[count] = link_space-&spaceData[layer][0]+1; - count++; - } - } - return count; + s32 count; + BoardSpace *space = BoardSpaceGet(layer, index); + s32 i; + if (!space) { + return -1; + } + for (count = i = 0; i < space->link_cnt; i++) { + BoardSpace *link_space = BoardSpaceGet(layer, space->link[i]); + if (link_space->type == type && count < BOARD_SPACE_LINKMAX) { + list[count] = link_space - &spaceData[layer][0] + 1; + count++; + } + } + return count; } s32 BoardSpaceLinkTargetListGet(s32 layer, s32 target, s16 *list) { - s32 i, j; - s32 count; - BoardSpace *space; - memset(list, 0, BOARD_SPACE_LINKMAX*sizeof(s16)); - space = &spaceData[layer][0]; - for(count=i=0; ilink_cnt; j++) { - if(space->link[j] == target && count < BOARD_SPACE_LINKMAX) { - list[count++] = space-&spaceData[layer][0]+1; - } - } - } - return count; + s32 i, j; + s32 count; + BoardSpace *space; + memset(list, 0, BOARD_SPACE_LINKMAX * sizeof(s16)); + space = &spaceData[layer][0]; + for (count = i = 0; i < spaceCnt[layer]; i++, space++) { + for (j = 0; j < space->link_cnt; j++) { + if (space->link[j] == target && count < BOARD_SPACE_LINKMAX) { + list[count++] = space - &spaceData[layer][0] + 1; + } + } + } + return count; } s32 BoardSpaceLinkTypeSearch(s32 layer, s32 target, u16 type) { - s32 i; - BoardSpace *space = BoardSpaceGet(layer, target); - if(!space) { - return -1; - } - for(i=0; ilink_cnt; i++) { - BoardSpace *link_space = BoardSpaceGet(layer, space->link[i]); - if(link_space->type == type) { - return space->link[i]; - } - } - return -1; + s32 i; + BoardSpace *space = BoardSpaceGet(layer, target); + if (!space) { + return -1; + } + for (i = 0; i < space->link_cnt; i++) { + BoardSpace *link_space = BoardSpaceGet(layer, space->link[i]); + if (link_space->type == type) { + return space->link[i]; + } + } + return -1; } s32 BoardSpaceLinkTransformGet(s32 flag, Vec *pos, Vec *rot, Vec *scale) { - s32 i; - s32 space_flag = BoardSpaceFlagSearch(0, flag); - BoardSpace *space = BoardSpaceGet(0, space_flag); - - for(i=0; ilink_cnt; i++) { - BoardSpace *link_space = BoardSpaceGet(0, space->link[i]); - BoardSpace *src_space; - if(!(link_space->flag & 0x2000000)) { - continue; - } - src_space = BoardSpaceGet(0, link_space->link[0]); - if(pos) { - *pos = src_space->pos; - } - if(rot) { - *rot = src_space->rot; - } - if(scale) { - *scale = src_space->scale; - } - return 0; - } - return -1; + s32 i; + s32 space_flag = BoardSpaceFlagSearch(0, flag); + BoardSpace *space = BoardSpaceGet(0, space_flag); + + for (i = 0; i < space->link_cnt; i++) { + BoardSpace *link_space = BoardSpaceGet(0, space->link[i]); + BoardSpace *src_space; + if (!(link_space->flag & 0x2000000)) { + continue; + } + src_space = BoardSpaceGet(0, link_space->link[0]); + if (pos) { + *pos = src_space->pos; + } + if (rot) { + *rot = src_space->rot; + } + if (scale) { + *scale = src_space->scale; + } + return 0; + } + return -1; } void BoardSpaceHostSet(s32 space) { - s16 host_space; - Vec pos; - BoardSpace *space_plat; - BoardSpaceTypeSet(0, space, 8); - host_space = BoardSpaceLinkFlagSearch(0, space, 0x04000000); - BoardSpacePosGet(0, host_space, &pos); - BoardModelPosSetV(BoardStarHostMdlGet(), &pos); + s16 host_space; + Vec pos; + BoardSpace *space_plat; + BoardSpaceTypeSet(0, space, 8); + host_space = BoardSpaceLinkFlagSearch(0, space, 0x04000000); + BoardSpacePosGet(0, host_space, &pos); + BoardModelPosSetV(BoardStarHostMdlGet(), &pos); } static inline s16 StarPlatGetMdl(void) { - return starPlatMdl; + return starPlatMdl; } static inline s32 BoardStarSpaceTypeGet(s16 index) { - return BoardSpaceTypeGet(0, BoardSpaceStarGet(index)); + return BoardSpaceTypeGet(0, BoardSpaceStarGet(index)); } void BoardSpaceStarSetIndex(s32 index) { - Vec pos; - Vec rot; - s16 space; - if(_CheckFlag(FLAG_ID_MAKE(1, 1))) { - BoardSpaceTypeSet(0, boardSpaceStarTbl[GWSystem.star_pos], 1); - } - GWSystem.star_pos = index & 0x7; - BoardSpaceHostSet(BoardSpaceStarGetCurr()); - space = BoardSpaceLinkFlagSearch(0, BoardSpaceStarGetCurr(), 0x04000000); - BoardSpacePosGet(0, space, &pos); - BoardModelPosSetV(StarPlatGetMdl(), &pos); - BoardSpaceRotGet(0, space, &rot); - BoardModelRotYSet(StarPlatGetMdl(), rot.y); - BoardModelVisibilitySet(StarPlatGetMdl(), 1); + Vec pos; + Vec rot; + s16 space; + if (_CheckFlag(FLAG_ID_MAKE(1, 1))) { + BoardSpaceTypeSet(0, boardSpaceStarTbl[GWSystem.star_pos], 1); + } + GWSystem.star_pos = index & 0x7; + BoardSpaceHostSet(BoardSpaceStarGetCurr()); + space = BoardSpaceLinkFlagSearch(0, BoardSpaceStarGetCurr(), 0x04000000); + BoardSpacePosGet(0, space, &pos); + BoardModelPosSetV(StarPlatGetMdl(), &pos); + BoardSpaceRotGet(0, space, &rot); + BoardModelRotYSet(StarPlatGetMdl(), rot.y); + BoardModelVisibilitySet(StarPlatGetMdl(), 1); } s32 BoardSpaceStarGetNext(void) { - s16 random_pos; - s16 star_total; - s16 star_pos; - star_total = GWSystem.star_total; - star_pos = GWSystem.star_pos; - if(GWBoardGet() == BOARD_ID_MAIN6) { - s16 i; - s32 count; - s32 last_free; - last_free = -1; - for(count=i=0; i<8; i++) { - if((1 << i) & GWSystem.star_flag) { - count++; - } else { - last_free = i; - } - } - if(count == 7) { - if(BoardSpaceTypeGet(0, BoardSpaceStarGet(last_free)) == 10) { - GWSystem.star_flag = 0; - } - } - } - begin: - random_pos = BoardRandMod(8); - if(star_pos == random_pos || BoardStarSpaceTypeGet(random_pos) == 10) { - goto begin; - } - switch(GWSystem.board) { - case BOARD_ID_MAIN1: - if(star_total >= 2) { - break; - } - if(random_pos != 6 && random_pos != 7) { - break; - } - goto begin; - - case BOARD_ID_MAIN2: - if(star_total >= 2) { - break; - } - if(random_pos != 6 && random_pos != 7) { - break; - } - goto begin; - - case BOARD_ID_MAIN3: - if(star_total == 1) { - if(random_pos < 3 || random_pos > 5) { - break; - } - goto begin; - } else { - if(star_total != 2) { - break; - } - if(random_pos != 3 && random_pos != 4) { - break; - } - goto begin; - } - - case BOARD_ID_MAIN4: - if(star_total == 1) { - if(random_pos < 5 || random_pos > 7) { - break; - } - goto begin; - } else { - if(star_total != 2) { - break; - } - if(random_pos == 5) { - goto begin; - } - break; - } - - case BOARD_ID_MAIN5: - if(star_total == 1) { - if(random_pos <= 1 || random_pos >= 4) { - goto begin; - } - } - break; - - case BOARD_ID_MAIN6: - if(star_total == 1) { - if(random_pos == 1 || random_pos == 4 || random_pos == 5) { - goto begin; - } - } - if(star_total != 2) { - break; - } - if(random_pos == 5) { - goto begin; - } - } - if((1 << random_pos) & GWSystem.star_flag) { - goto begin; - } - return random_pos; + s16 random_pos; + s16 star_total; + s16 star_pos; + star_total = GWSystem.star_total; + star_pos = GWSystem.star_pos; + if (GWBoardGet() == BOARD_ID_MAIN6) { + s16 i; + s32 count; + s32 last_free; + last_free = -1; + for (count = i = 0; i < 8; i++) { + if ((1 << i) & GWSystem.star_flag) { + count++; + } + else { + last_free = i; + } + } + if (count == 7) { + if (BoardSpaceTypeGet(0, BoardSpaceStarGet(last_free)) == 10) { + GWSystem.star_flag = 0; + } + } + } +begin: + random_pos = BoardRandMod(8); + if (star_pos == random_pos || BoardStarSpaceTypeGet(random_pos) == 10) { + goto begin; + } + switch (GWSystem.board) { + case BOARD_ID_MAIN1: + if (star_total >= 2) { + break; + } + if (random_pos != 6 && random_pos != 7) { + break; + } + goto begin; + + case BOARD_ID_MAIN2: + if (star_total >= 2) { + break; + } + if (random_pos != 6 && random_pos != 7) { + break; + } + goto begin; + + case BOARD_ID_MAIN3: + if (star_total == 1) { + if (random_pos < 3 || random_pos > 5) { + break; + } + goto begin; + } + else { + if (star_total != 2) { + break; + } + if (random_pos != 3 && random_pos != 4) { + break; + } + goto begin; + } + + case BOARD_ID_MAIN4: + if (star_total == 1) { + if (random_pos < 5 || random_pos > 7) { + break; + } + goto begin; + } + else { + if (star_total != 2) { + break; + } + if (random_pos == 5) { + goto begin; + } + break; + } + + case BOARD_ID_MAIN5: + if (star_total == 1) { + if (random_pos <= 1 || random_pos >= 4) { + goto begin; + } + } + break; + + case BOARD_ID_MAIN6: + if (star_total == 1) { + if (random_pos == 1 || random_pos == 4 || random_pos == 5) { + goto begin; + } + } + if (star_total != 2) { + break; + } + if (random_pos == 5) { + goto begin; + } + } + if ((1 << random_pos) & GWSystem.star_flag) { + goto begin; + } + return random_pos; } s32 BoardSpaceStarGetRandom(s32 excl_pos) { - s8 new_pos; - int i; - for(i=0; i<1024; i++) { - new_pos = BoardRandMod(8); - if(new_pos == GWSystem.star_pos) { - continue; - } - if(GWSystem.turn == 1 && new_pos <= 2) { - continue; - } - if(new_pos != excl_pos) { - break; - } - } - return new_pos; + s8 new_pos; + int i; + for (i = 0; i < 1024; i++) { + new_pos = BoardRandMod(8); + if (new_pos == GWSystem.star_pos) { + continue; + } + if (GWSystem.turn == 1 && new_pos <= 2) { + continue; + } + if (new_pos != excl_pos) { + break; + } + } + return new_pos; } void BoardSpaceStarMove(void) { - u8 star_total; - s16 star_pos; - s16 star_next; - if(_CheckFlag(FLAG_ID_MAKE(1, 1))) { - star_pos = GWSystem.star_pos; - GWSystem.star_flag |= (u8)(1 << star_pos); - if(GWSystem.star_flag == 0xFF) { - GWSystem.star_flag = 0; - } - if(GWSystem.star_total >= 99) { - star_total = 99; - GWSystem.star_total = star_total; - } else { - star_total = GWSystem.star_total++; - } - } - star_next = BoardSpaceStarGetNext(); - BoardSpaceStarSetIndex(star_next); + u8 star_total; + s16 star_pos; + s16 star_next; + if (_CheckFlag(FLAG_ID_MAKE(1, 1))) { + star_pos = GWSystem.star_pos; + GWSystem.star_flag |= (u8)(1 << star_pos); + if (GWSystem.star_flag == 0xFF) { + GWSystem.star_flag = 0; + } + if (GWSystem.star_total >= 99) { + star_total = 99; + GWSystem.star_total = star_total; + } + else { + star_total = GWSystem.star_total++; + } + } + star_next = BoardSpaceStarGetNext(); + BoardSpaceStarSetIndex(star_next); } s32 BoardSpaceStarGet(s32 index) { - return boardSpaceStarTbl[index & 0x7]; + return boardSpaceStarTbl[index & 0x7]; } s32 BoardSpaceStarGetCurr(void) { - return BoardSpaceStarGet(GWSystem.star_pos); + return BoardSpaceStarGet(GWSystem.star_pos); } s32 BoardSpaceStarCheck(s32 index) { - s32 ret; - BoardSpace *space = BoardSpaceGet(0, index); - BoardSpace *star_space; - if(GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { - ret = 0; - goto end; - } - star_space = BoardSpaceGet(0, boardSpaceStarTbl[GWSystem.star_pos]); - if(space == star_space) { - ret = 1; - } else { - ret = 0; - } - end: - return ret; + s32 ret; + BoardSpace *space = BoardSpaceGet(0, index); + BoardSpace *star_space; + if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { + ret = 0; + goto end; + } + star_space = BoardSpaceGet(0, boardSpaceStarTbl[GWSystem.star_pos]); + if (space == star_space) { + ret = 1; + } + else { + ret = 0; + } +end: + return ret; } void BoardSpaceLandExec(s32 player, s32 space) { - #define BLUE_SPACE 1 - #define RED_SPACE 2 - #define BOWSER_SPACE 3 - #define MUSHROOM_SPACE 4 - #define BATTLE_SPACE 5 - #define HAPPENING_SPACE 6 - #define FORTUNE_SPACE 7 - #define STAR_SPACE 8 - #define WARP_SPACE 9 +#define BLUE_SPACE 1 +#define RED_SPACE 2 +#define BOWSER_SPACE 3 +#define MUSHROOM_SPACE 4 +#define BATTLE_SPACE 5 +#define HAPPENING_SPACE 6 +#define FORTUNE_SPACE 7 +#define STAR_SPACE 8 +#define WARP_SPACE 9 - BoardSpace *space_ptr = BoardSpaceGet(0, space); - switch(space_ptr->type) { - case BLUE_SPACE: - GWPlayer[player].blue_count++; - if(GWPlayer[player].blue_count > 99) { - GWPlayer[player].blue_count = 99; - } - BoardLandBlueExec(player, space); - break; - - case RED_SPACE: - GWPlayer[player].red_count++; - if(GWPlayer[player].red_count > 99) { - GWPlayer[player].red_count = 99; - } - BoardLandRedExec(player, space); - break; - - case BOWSER_SPACE: - GWPlayer[player].bowser_count++; - if(GWPlayer[player].bowser_count > 99) { - GWPlayer[player].bowser_count = 99; - } - BoardBowserExec(player, space); - break; - - case MUSHROOM_SPACE: - GWPlayer[player].mushroom_count++; - if(GWPlayer[player].mushroom_count > 99) { - GWPlayer[player].mushroom_count = 99; - } - BoardMushroomExec(player, space); - break; - - case BATTLE_SPACE: - GWPlayer[player].battle_count++; - if(GWPlayer[player].battle_count > 99) { - GWPlayer[player].battle_count = 99; - } - BoardBattleExec(player, space); - break; - - case HAPPENING_SPACE: - GWPlayer[player].question_count++; - if(GWPlayer[player].question_count > 99) { - GWPlayer[player].question_count = 99; - } - if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { - HuAudFXPlay(842); - BoardCameraViewSet(2); - BoardPlayerMotBlendSet(player, 0, 15); - while(!BoardPlayerMotBlendCheck(player)) { - HuPrcVSleep(); - } - BoardCameraMotionWait(); - BoardTutorialHookExec(16, 0); - } else { - if(landEventFunc) { - HuAudFXPlay(842); - omVibrate(player, 12, 4, 2); - landEventFunc(); - } - } - GWPlayer[player].color = 3; - break; - - case FORTUNE_SPACE: - GWPlayer[player].fortune_count++; - if(GWPlayer[player].fortune_count > 99) { - GWPlayer[player].fortune_count = 99; - } - BoardFortuneExec(player, space); - break; - - case WARP_SPACE: - GWPlayer[player].warp_count++; - if(GWPlayer[player].warp_count > 99) { - GWPlayer[player].warp_count = 99; - } - BoardWarpExec(player, space); - break; - - case STAR_SPACE: - BoardStarExec(player, space); - break; - } + BoardSpace *space_ptr = BoardSpaceGet(0, space); + switch (space_ptr->type) { + case BLUE_SPACE: + GWPlayer[player].blue_count++; + if (GWPlayer[player].blue_count > 99) { + GWPlayer[player].blue_count = 99; + } + BoardLandBlueExec(player, space); + break; + + case RED_SPACE: + GWPlayer[player].red_count++; + if (GWPlayer[player].red_count > 99) { + GWPlayer[player].red_count = 99; + } + BoardLandRedExec(player, space); + break; + + case BOWSER_SPACE: + GWPlayer[player].bowser_count++; + if (GWPlayer[player].bowser_count > 99) { + GWPlayer[player].bowser_count = 99; + } + BoardBowserExec(player, space); + break; + + case MUSHROOM_SPACE: + GWPlayer[player].mushroom_count++; + if (GWPlayer[player].mushroom_count > 99) { + GWPlayer[player].mushroom_count = 99; + } + BoardMushroomExec(player, space); + break; + + case BATTLE_SPACE: + GWPlayer[player].battle_count++; + if (GWPlayer[player].battle_count > 99) { + GWPlayer[player].battle_count = 99; + } + BoardBattleExec(player, space); + break; + + case HAPPENING_SPACE: + GWPlayer[player].question_count++; + if (GWPlayer[player].question_count > 99) { + GWPlayer[player].question_count = 99; + } + if (_CheckFlag(FLAG_ID_MAKE(1, 11))) { + HuAudFXPlay(842); + BoardCameraViewSet(2); + BoardPlayerMotBlendSet(player, 0, 15); + while (!BoardPlayerMotBlendCheck(player)) { + HuPrcVSleep(); + } + BoardCameraMotionWait(); + BoardTutorialHookExec(16, 0); + } + else { + if (landEventFunc) { + HuAudFXPlay(842); + omVibrate(player, 12, 4, 2); + landEventFunc(); + } + } + GWPlayer[player].color = 3; + break; + + case FORTUNE_SPACE: + GWPlayer[player].fortune_count++; + if (GWPlayer[player].fortune_count > 99) { + GWPlayer[player].fortune_count = 99; + } + BoardFortuneExec(player, space); + break; + + case WARP_SPACE: + GWPlayer[player].warp_count++; + if (GWPlayer[player].warp_count > 99) { + GWPlayer[player].warp_count = 99; + } + BoardWarpExec(player, space); + break; + + case STAR_SPACE: + BoardStarExec(player, space); + break; + } } s32 BoardSpaceWalkExec(s32 player, s32 space) { - s32 is_star; - BoardSpace *space_ptr; - BoardSpace *star_space; - if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { - space_ptr = BoardSpaceGet(0, space); - if(space_ptr->flag & 0x180000) { - BoardTutorialHookExec(25, 0); - } - } - if(BoardPlayerSizeGet(player) == 2 || GWPlayer[player].bowser_suit) { - return 0; - } - space_ptr = BoardSpaceGet(0, space); - if(GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { - is_star = 0; - } else { - star_space = BoardSpaceGet(0, boardSpaceStarTbl[GWSystem.star_pos]); - if(space_ptr == star_space) { - is_star = 1; - } else { - is_star = 0; - } - } - if(is_star) { - BoardStarExec(player, space); - return 1; - } - if(space_ptr->flag & 0x600000) { - s32 mg_param = GWSystem.unk_38; - if(BoardPlayerSizeGet(player) == 1) { - BoardPlayerIdleSet(player); - BoardMGCreate(mg_param); - } - return 1; - } - if(space_ptr->flag & 0x180000) { - BoardShopExec(player, space); - return 1; - } - if(space_ptr->flag & 0x08000000) { - BoardBooHouseExec(player, space); - return 1; - } - if(space_ptr->flag & 0x10000000) { - BoardLotteryExec(); - return 1; - } - if(space_ptr->flag & 0x20000000) { - ExecPipeSpace(player, space); - return 1; - } - return 0; + s32 is_star; + BoardSpace *space_ptr; + BoardSpace *star_space; + if (_CheckFlag(FLAG_ID_MAKE(1, 11))) { + space_ptr = BoardSpaceGet(0, space); + if (space_ptr->flag & 0x180000) { + BoardTutorialHookExec(25, 0); + } + } + if (BoardPlayerSizeGet(player) == 2 || GWPlayer[player].bowser_suit) { + return 0; + } + space_ptr = BoardSpaceGet(0, space); + if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { + is_star = 0; + } + else { + star_space = BoardSpaceGet(0, boardSpaceStarTbl[GWSystem.star_pos]); + if (space_ptr == star_space) { + is_star = 1; + } + else { + is_star = 0; + } + } + if (is_star) { + BoardStarExec(player, space); + return 1; + } + if (space_ptr->flag & 0x600000) { + s32 mg_param = GWSystem.unk_38; + if (BoardPlayerSizeGet(player) == 1) { + BoardPlayerIdleSet(player); + BoardMGCreate(mg_param); + } + return 1; + } + if (space_ptr->flag & 0x180000) { + BoardShopExec(player, space); + return 1; + } + if (space_ptr->flag & 0x08000000) { + BoardBooHouseExec(player, space); + return 1; + } + if (space_ptr->flag & 0x10000000) { + BoardLotteryExec(); + return 1; + } + if (space_ptr->flag & 0x20000000) { + ExecPipeSpace(player, space); + return 1; + } + return 0; } s32 BoardSpaceBlockExec(s32 player, s32 space) { - s32 event_exec; - BoardSpace *space_ptr; - event_exec = 0; - if(BoardPlayerSizeGet(player) == 2 || GWPlayer[player].bowser_suit) { - return 0; - } - space_ptr = BoardSpaceGet(0, space); - event_exec = 0; - if(space == GWSystem.block_pos) { - event_exec = 1; - } - if(!GWBonusStarGet() && GWPartyGet() == 1 && !_CheckFlag(FLAG_ID_MAKE(1, 11))) { - event_exec = 0; - } - if(GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { - event_exec = 0; - } - if(event_exec) { - BoardBlockExec(player, space); - if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { - BoardBlockExec(player, space); - } - BoardSpaceBlockPosSet(); - } - return 0; + s32 event_exec; + BoardSpace *space_ptr; + event_exec = 0; + if (BoardPlayerSizeGet(player) == 2 || GWPlayer[player].bowser_suit) { + return 0; + } + space_ptr = BoardSpaceGet(0, space); + event_exec = 0; + if (space == GWSystem.block_pos) { + event_exec = 1; + } + if (!GWBonusStarGet() && GWPartyGet() == 1 && !_CheckFlag(FLAG_ID_MAKE(1, 11))) { + event_exec = 0; + } + if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { + event_exec = 0; + } + if (event_exec) { + BoardBlockExec(player, space); + if (_CheckFlag(FLAG_ID_MAKE(1, 11))) { + BoardBlockExec(player, space); + } + BoardSpaceBlockPosSet(); + } + return 0; } static s32 ExecPipeSpace(s32 player, s32 space) { - Vec pos_link; - Vec pos; - Vec dir; - float radius, y_vel; - s32 mot_disable; - BoardSpace *space_ptr; - mot_disable = 0; - if(BoardPlayerSizeGet(player) != 1) { - return 0; - } - BoardPlayerPosGet(player, &pos); - pos.y += 200.0f; - space_ptr = BoardSpaceGet(0, space); - BoardSpacePosGet(0, space_ptr->link[0], &pos_link); - VECSubtract(&pos_link, &pos, &dir); - VECNormalize(&dir, &dir); - BoardPlayerRotYSet(player, 90-((atan2(dir.z, dir.x)/M_PI)*180)); - radius = 0.75f*BoardVecDistXZCalc(&pos_link, &pos); - BoardPlayerMotionStart(player, 4, 0); - y_vel = 0; - while(1) { - if(BoardVecDistXZCalc(&pos_link, &pos) < 2) { - break; - } - pos.x += (dir.x*radius)/60.0f; - pos.z += (dir.z*radius)/60.0f; - if(pos.y <= pos_link.y) { - pos.y = pos_link.y; - if(!mot_disable) { - BoardPlayerMotionShiftSet(player, 3, 0, 4, HU3D_MOTATTR_LOOP); - break; - } - } else { - pos.y += 10.0f+(-((1/2399.99f)+(1/50.0f))*y_vel*y_vel); - y_vel += 1.0f; - } - BoardPlayerPosSetV(player, &pos); - HuPrcVSleep(); - } - return 0; + Vec pos_link; + Vec pos; + Vec dir; + float radius, y_vel; + s32 mot_disable; + BoardSpace *space_ptr; + mot_disable = 0; + if (BoardPlayerSizeGet(player) != 1) { + return 0; + } + BoardPlayerPosGet(player, &pos); + pos.y += 200.0f; + space_ptr = BoardSpaceGet(0, space); + BoardSpacePosGet(0, space_ptr->link[0], &pos_link); + VECSubtract(&pos_link, &pos, &dir); + VECNormalize(&dir, &dir); + BoardPlayerRotYSet(player, 90 - ((atan2(dir.z, dir.x) / M_PI) * 180)); + radius = 0.75f * BoardVecDistXZCalc(&pos_link, &pos); + BoardPlayerMotionStart(player, 4, 0); + y_vel = 0; + while (1) { + if (BoardVecDistXZCalc(&pos_link, &pos) < 2) { + break; + } + pos.x += (dir.x * radius) / 60.0f; + pos.z += (dir.z * radius) / 60.0f; + if (pos.y <= pos_link.y) { + pos.y = pos_link.y; + if (!mot_disable) { + BoardPlayerMotionShiftSet(player, 3, 0, 4, HU3D_MOTATTR_LOOP); + break; + } + } + else { + pos.y += 10.0f + (-((1 / 2399.99f) + (1 / 50.0f)) * y_vel * y_vel); + y_vel += 1.0f; + } + BoardPlayerPosSetV(player, &pos); + HuPrcVSleep(); + } + return 0; } void BoardSpaceTypeForce(u16 from, u16 to) { - s32 i; - for(i=0; itype == from) { - space->type = to; - } - } + s32 i; + for (i = 0; i < spaceCnt[0]; i++) { + BoardSpace *space = &spaceData[0][i]; + if (space->type == from) { + space->type = to; + } + } } void BoardSpaceHide(s32 value) { - if(value) { - Hu3DModelAttrSet(spaceDrawMdl, 1); - } else { - Hu3DModelAttrReset(spaceDrawMdl, 1); - } + if (value) { + Hu3DModelAttrSet(spaceDrawMdl, HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrReset(spaceDrawMdl, HU3D_ATTR_DISPOFF); + } } static inline void InitGXSpace() { - GXColor color = {0xFF, 0xFF, 0xFF, 0xFF}; + GXColor color = { 0xFF, 0xFF, 0xFF, 0xFF }; GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); @@ -793,319 +798,317 @@ static inline void InitGXSpace() GXSetCullMode(GX_CULL_BACK); } -//Some stack allocation issues. code around BoardPlayerGetCurr is incorrect too +// Some stack allocation issues. code around BoardPlayerGetCurr is incorrect too static void DrawSpaces(ModelData *model, Mtx matrix) { - s32 i; + s32 i; - Vec player_pos; - Vec target; - Vec pos; - - Mtx lookat, final, rot_x, rot_y, rot_z, scale; - Mtx44 proj; - BoardCameraData *camera; - if(!spaceDrawF) { - return; - } - spaceDrawCnt = 0; - camera = &boardCamera; - BoardCameraPosGet(&pos); - BoardCameraTargetGet(&target); - MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far); - GXSetProjection(proj, GX_PERSPECTIVE); - MTXLookAt(lookat, &pos, &camera->up, &target); - GXSetViewport(camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h, camera->viewport_near, camera->viewport_far); - GXSetScissor(camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h); - { - BoardSpace *space_curr; - BoardSpace *space_hilite; - PlayerState *player; - s16 player_mdl; - float y_dist; - s32 space_img; - u16 space_type; - float uv_x, uv_y, uv_size; - InitGXSpace(); - - player = BoardPlayerGet(GWSystem.player_curr); - BoardPlayerPosGet(GWSystem.player_curr, &player_pos); - player_mdl = BoardModelIDGet(BoardPlayerModelGet(GWSystem.player_curr)); - space_curr = &spaceData[0][0]; - space_hilite = NULL; - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); - for(i=0; itype == 0) { - continue; - } - if(!BoardCameraCullCheck(&space_curr->pos, 200.0f) || (space_curr->flag & spaceAttr[0])) { - continue; - } - if(!space_hilite) { - if(player_pos.x > space_curr->pos.x-100.0f - && player_pos.z > space_curr->pos.z-100.0f - && player_pos.x < space_curr->pos.x+100.0f - && player_pos.z < space_curr->pos.z+100.0f) { - if(player_pos.y-space_curr->pos.y < 0.0f) { - y_dist = -(player_pos.y-space_curr->pos.y); - } else { - y_dist = player_pos.y-space_curr->pos.y; - } - if(y_dist < 10.0f) { - space_hilite = space_curr; - } - } - } - space_type = space_curr->type; - space_img = spaceImgIdx[space_type]-1; - uv_x = (float)(space_img%4)/4.0f; - uv_y = (float)(space_img/4)/4.0f; - uv_size = 63.0f/256.0f; - MTXRotRad(rot_z, 'z', MTXDegToRad(space_curr->rot.y)); - MTXRotRad(rot_y, 'y', MTXDegToRad(space_curr->rot.z)); - MTXRotRad(rot_x, 'x', MTXDegToRad(space_curr->rot.x+90.0f)); - MTXTrans(final, space_curr->pos.x, 3.0f+space_curr->pos.y, space_curr->pos.z); - MTXConcat(rot_x, rot_y, rot_y); - MTXConcat(rot_y, rot_z, rot_z); - MTXConcat(final, rot_z, final); - MTXConcat(lookat, final, final); - GXLoadPosMtxImm(final, GX_PNMTX0); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32(-100, -100, 0); - GXTexCoord2f32(uv_x, uv_y); - GXPosition3f32(100, -100, 0); - GXTexCoord2f32(uv_x+uv_size, uv_y); - GXPosition3f32(100, 100, 0); - GXTexCoord2f32(uv_x+uv_size, uv_y+uv_size+(1.5f/256.0f)); - GXPosition3f32(-100, 100, 0); - GXTexCoord2f32(uv_x, uv_y+uv_size+(1.5f/256.0f)); - GXEnd(); - spaceDrawCnt++; - } - if(space_hilite) { - space_curr = space_hilite; - space_type = space_curr->type; - if(player->show_next && space_type != 0 && (space_img = spaceHiliteImgIdx[space_type]) >= 0) { - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); - GXLoadTexObj(&spaceHiliteTex, GX_TEXMAP0); - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); - uv_x = (float)(space_img%4)/4.0f; - uv_y = (float)(space_img/4)/4.0f; - uv_size = 63.0f/256.0f; - MTXScale(scale, 1.5f, 1.5f, 1.5f); - MTXRotRad(rot_z, 'z', MTXDegToRad(space_curr->rot.y)); - MTXRotRad(rot_y, 'y', MTXDegToRad(space_curr->rot.z)); - MTXRotRad(rot_x, 'x', MTXDegToRad(space_curr->rot.x+90.0f)); - MTXTrans(final, space_curr->pos.x, 3.5f+space_curr->pos.y, space_curr->pos.z); - MTXConcat(scale, rot_x, rot_x); - MTXConcat(rot_x, rot_y, rot_y); - MTXConcat(rot_y, rot_z, rot_z); - MTXConcat(final, rot_z, final); - MTXConcat(lookat, final, final); - GXLoadPosMtxImm(final, GX_PNMTX0); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition3f32(-100, -100, 0); - GXTexCoord2f32(uv_x, uv_y); - GXPosition3f32(100, -100, 0); - GXTexCoord2f32(uv_x+uv_size, uv_y); - GXPosition3f32(100, 100, 0); - GXTexCoord2f32(uv_x+uv_size, uv_y+uv_size); - GXPosition3f32(-100, 100, 0); - GXTexCoord2f32(uv_x, uv_y+uv_size); - GXEnd(); - spaceDrawCnt++; - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); - return; - } - } - GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); - } - + Vec player_pos; + Vec target; + Vec pos; + + Mtx lookat, final, rot_x, rot_y, rot_z, scale; + Mtx44 proj; + BoardCameraData *camera; + if (!spaceDrawF) { + return; + } + spaceDrawCnt = 0; + camera = &boardCamera; + BoardCameraPosGet(&pos); + BoardCameraTargetGet(&target); + MTXPerspective(proj, camera->fov, camera->aspect, camera->near, camera->far); + GXSetProjection(proj, GX_PERSPECTIVE); + MTXLookAt(lookat, &pos, &camera->up, &target); + GXSetViewport(camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h, camera->viewport_near, camera->viewport_far); + GXSetScissor(camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h); + { + BoardSpace *space_curr; + BoardSpace *space_hilite; + PlayerState *player; + s16 player_mdl; + float y_dist; + s32 space_img; + u16 space_type; + float uv_x, uv_y, uv_size; + InitGXSpace(); + + player = BoardPlayerGet(GWSystem.player_curr); + BoardPlayerPosGet(GWSystem.player_curr, &player_pos); + player_mdl = BoardModelIDGet(BoardPlayerModelGet(GWSystem.player_curr)); + space_curr = &spaceData[0][0]; + space_hilite = NULL; + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + for (i = 0; i < spaceCnt[0]; i++, space_curr++) { + if (space_curr->type == 0) { + continue; + } + if (!BoardCameraCullCheck(&space_curr->pos, 200.0f) || (space_curr->flag & spaceAttr[0])) { + continue; + } + if (!space_hilite) { + if (player_pos.x > space_curr->pos.x - 100.0f && player_pos.z > space_curr->pos.z - 100.0f + && player_pos.x < space_curr->pos.x + 100.0f && player_pos.z < space_curr->pos.z + 100.0f) { + if (player_pos.y - space_curr->pos.y < 0.0f) { + y_dist = -(player_pos.y - space_curr->pos.y); + } + else { + y_dist = player_pos.y - space_curr->pos.y; + } + if (y_dist < 10.0f) { + space_hilite = space_curr; + } + } + } + space_type = space_curr->type; + space_img = spaceImgIdx[space_type] - 1; + uv_x = (float)(space_img % 4) / 4.0f; + uv_y = (float)(space_img / 4) / 4.0f; + uv_size = 63.0f / 256.0f; + MTXRotRad(rot_z, 'z', MTXDegToRad(space_curr->rot.y)); + MTXRotRad(rot_y, 'y', MTXDegToRad(space_curr->rot.z)); + MTXRotRad(rot_x, 'x', MTXDegToRad(space_curr->rot.x + 90.0f)); + MTXTrans(final, space_curr->pos.x, 3.0f + space_curr->pos.y, space_curr->pos.z); + MTXConcat(rot_x, rot_y, rot_y); + MTXConcat(rot_y, rot_z, rot_z); + MTXConcat(final, rot_z, final); + MTXConcat(lookat, final, final); + GXLoadPosMtxImm(final, GX_PNMTX0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-100, -100, 0); + GXTexCoord2f32(uv_x, uv_y); + GXPosition3f32(100, -100, 0); + GXTexCoord2f32(uv_x + uv_size, uv_y); + GXPosition3f32(100, 100, 0); + GXTexCoord2f32(uv_x + uv_size, uv_y + uv_size + (1.5f / 256.0f)); + GXPosition3f32(-100, 100, 0); + GXTexCoord2f32(uv_x, uv_y + uv_size + (1.5f / 256.0f)); + GXEnd(); + spaceDrawCnt++; + } + if (space_hilite) { + space_curr = space_hilite; + space_type = space_curr->type; + if (player->show_next && space_type != 0 && (space_img = spaceHiliteImgIdx[space_type]) >= 0) { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXLoadTexObj(&spaceHiliteTex, GX_TEXMAP0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + uv_x = (float)(space_img % 4) / 4.0f; + uv_y = (float)(space_img / 4) / 4.0f; + uv_size = 63.0f / 256.0f; + MTXScale(scale, 1.5f, 1.5f, 1.5f); + MTXRotRad(rot_z, 'z', MTXDegToRad(space_curr->rot.y)); + MTXRotRad(rot_y, 'y', MTXDegToRad(space_curr->rot.z)); + MTXRotRad(rot_x, 'x', MTXDegToRad(space_curr->rot.x + 90.0f)); + MTXTrans(final, space_curr->pos.x, 3.5f + space_curr->pos.y, space_curr->pos.z); + MTXConcat(scale, rot_x, rot_x); + MTXConcat(rot_x, rot_y, rot_y); + MTXConcat(rot_y, rot_z, rot_z); + MTXConcat(final, rot_z, final); + MTXConcat(lookat, final, final); + GXLoadPosMtxImm(final, GX_PNMTX0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-100, -100, 0); + GXTexCoord2f32(uv_x, uv_y); + GXPosition3f32(100, -100, 0); + GXTexCoord2f32(uv_x + uv_size, uv_y); + GXPosition3f32(100, 100, 0); + GXTexCoord2f32(uv_x + uv_size, uv_y + uv_size); + GXPosition3f32(-100, 100, 0); + GXTexCoord2f32(uv_x, uv_y + uv_size); + GXEnd(); + spaceDrawCnt++; + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + return; + } + } + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + } } s32 BoardSpaceRead(s32 layer, s32 data_num) { - int j; - int i; - BoardSpace *space; - u8 *data; - s32 star_idx; - u8 *data_base; - data_base = data = HuDataSelHeapReadNum(data_num, MEMORY_DEFAULT_NUM, HEAP_DATA); - spaceCnt[layer] = *(u32 *)data; - data += sizeof(u32); - space = &spaceData[layer][0]; - for(i=0; ipos, data, sizeof(Vec)); - data += sizeof(Vec); - memcpy(&space->rot, data, sizeof(Vec)); - data += sizeof(Vec); - memcpy(&space->scale, data, sizeof(Vec)); - data += sizeof(Vec); - space->flag = *(u32 *)data; - data += sizeof(u32); - space->type = *(u16 *)data; - data += sizeof(u16); - space->link_cnt = *(u16 *)data; - data += sizeof(u16); - for(j=0; jlink_cnt; j++) { - space->link[j] = (*(u16 *)data)+1; - data += sizeof(u16); - } - if(space->type == 8) { - - space->type = 1; - star_idx = (space->flag & 0x70000) >> 16; - boardSpaceStarTbl[star_idx] = i+1; - } - } - HuDataClose(data_base); - return 0; + int j; + int i; + BoardSpace *space; + u8 *data; + s32 star_idx; + u8 *data_base; + data_base = data = HuDataSelHeapReadNum(data_num, MEMORY_DEFAULT_NUM, HEAP_DATA); + spaceCnt[layer] = *(u32 *)data; + data += sizeof(u32); + space = &spaceData[layer][0]; + for (i = 0; i < spaceCnt[layer]; i++, space++) { + memcpy(&space->pos, data, sizeof(Vec)); + data += sizeof(Vec); + memcpy(&space->rot, data, sizeof(Vec)); + data += sizeof(Vec); + memcpy(&space->scale, data, sizeof(Vec)); + data += sizeof(Vec); + space->flag = *(u32 *)data; + data += sizeof(u32); + space->type = *(u16 *)data; + data += sizeof(u16); + space->link_cnt = *(u16 *)data; + data += sizeof(u16); + for (j = 0; j < space->link_cnt; j++) { + space->link[j] = (*(u16 *)data) + 1; + data += sizeof(u16); + } + if (space->type == 8) { + + space->type = 1; + star_idx = (space->flag & 0x70000) >> 16; + boardSpaceStarTbl[star_idx] = i + 1; + } + } + HuDataClose(data_base); + return 0; } void BoardSpaceCameraSet(u16 mask) { - Hu3DModelCameraSet(spaceDrawMdl, mask); + Hu3DModelCameraSet(spaceDrawMdl, mask); } void BoardSpaceBlockPosSet(void) { - BoardSpace *space; - s32 block_pos; - begin: - if(boardTutorialBlockF) { - GWSystem.block_pos = boardTutorialBlockPos; - return; - } - block_pos = BoardRandMod(spaceCnt[0])+1; - if(block_pos == GWSystem.block_pos) { - goto begin; - } - space = BoardSpaceGet(0, block_pos); - if(space->type != 1) { - goto begin; - } - GWSystem.block_pos = block_pos; + BoardSpace *space; + s32 block_pos; +begin: + if (boardTutorialBlockF) { + GWSystem.block_pos = boardTutorialBlockPos; + return; + } + block_pos = BoardRandMod(spaceCnt[0]) + 1; + if (block_pos == GWSystem.block_pos) { + goto begin; + } + space = BoardSpaceGet(0, block_pos); + if (space->type != 1) { + goto begin; + } + GWSystem.block_pos = block_pos; } void BoardSpaceInit(s32 data_num) { - s32 board; - BoardJunctionMaskZero(); - memset(spaceData, 0, sizeof(spaceData)); - memset(spaceAttr, 0, sizeof(spaceAttr)); - lbl_801D3FC4[0] = lbl_801D3FC4[1] = lbl_801D3FC4[2] = lbl_801D3FC4[3] = -1; - spaceDrawF = 0; - board = GWBoardGet(); - { - AnimBmpData *bmp; - AnimData *data; - void *data_base; - s32 size; - data = data_base = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_BOARD, 29), MEMORY_DEFAULT_NUM, HEAP_DATA); - data->bmp = (void *)((u32)data_base+(u32)data->bmp); - data->pat = (void *)((u32)data_base+(u32)data->pat); - data->bank = (void *)((u32)data_base+(u32)data->bank); - bmp = data->bmp; - size = bmp->sizeX; - spaceHiliteTexFmt = -1; - switch(bmp->dataFmt) { - case ANIM_BMP_RGBA8: - spaceHiliteTexFmt = GX_TF_RGBA8; - break; - - case ANIM_BMP_RGB5A3_DUPE: - spaceHiliteTexFmt = GX_TF_RGB5A3; - break; - - case ANIM_BMP_CMPR: - spaceHiliteTexFmt = GX_TF_CMPR; - break; - } - spaceHiliteTexData = HuMemDirectMallocNum(HEAP_SYSTEM, bmp->dataSize, MEMORY_DEFAULT_NUM); - bmp->data = (void *)((u32)bmp->data+(u32)data_base); - memcpy(spaceHiliteTexData, bmp->data, bmp->dataSize); - HuDataClose(data_base); - GXInitTexObj(&spaceHiliteTex, spaceHiliteTexData, size, size, spaceHiliteTexFmt, GX_CLAMP, GX_CLAMP, GX_FALSE); - GXInitTexObjLOD(&spaceHiliteTex, GX_LINEAR, GX_LINEAR, 0, 0, 0, GX_FALSE, GX_FALSE, GX_ANISO_1); - } - { - AnimBmpData *bmp; - AnimData *data; - void *data_base; - s32 size; - data = data_base = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_BOARD, 28), MEMORY_DEFAULT_NUM, HEAP_DATA); - data->bmp = (void *)((u32)data_base+(u32)data->bmp); - data->pat = (void *)((u32)data_base+(u32)data->pat); - data->bank = (void *)((u32)data_base+(u32)data->bank); - bmp = data->bmp; - size = bmp->sizeX; - spaceTexFmt = -1; - switch(bmp->dataFmt) { - case ANIM_BMP_RGBA8: - spaceTexFmt = GX_TF_RGBA8; - break; - - case ANIM_BMP_RGB5A3_DUPE: - spaceTexFmt = GX_TF_RGB5A3; - break; - - case ANIM_BMP_CMPR: - spaceTexFmt = GX_TF_CMPR; - break; - } - spaceTexData = HuMemDirectMallocNum(HEAP_SYSTEM, bmp->dataSize, MEMORY_DEFAULT_NUM); - bmp->data = (void *)((u32)bmp->data+(u32)data_base); - memcpy(spaceTexData, bmp->data, bmp->dataSize); - HuDataClose(data_base); - GXInitTexObj(&spaceTex, spaceTexData, size, size, spaceTexFmt, GX_CLAMP, GX_CLAMP, GX_FALSE); - GXInitTexObjLOD(&spaceTex, GX_LINEAR, GX_LINEAR, 0, 0, 0, GX_FALSE, GX_FALSE, GX_ANISO_1); - } - BoardSpaceRead(0, data_num); - spaceDrawMdl = Hu3DHookFuncCreate(DrawSpaces); - if(!BoardStartCheck() && !_CheckFlag(FLAG_ID_MAKE(1, 1))) { - BoardSpaceBlockPosSet(); - GWSystem.star_total = 0; - GWSystem.star_flag = 0; - } - if(GWBoardGet() != BOARD_ID_EXTRA1 && GWBoardGet() != BOARD_ID_EXTRA2) { - starPlatMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 6), NULL, 0); - BoardModelMotionStart(starPlatMdl, 0, 0x40000001); - BoardModelVisibilitySet(starPlatMdl, 0); - if(_CheckFlag(FLAG_ID_MAKE(1, 1))) { - Vec pos; - Vec rot; - s16 space; - BoardModelVisibilitySet(starPlatMdl, 1); - GWSystem.star_flag |= (u8)(1 << GWSystem.star_pos); - BoardSpaceTypeSet(0, boardSpaceStarTbl[GWSystem.star_pos], 8); - { - int space; - BoardSpace *space_plat; - space = BoardSpaceLinkFlagSearch(0, BoardSpaceStarGetCurr(), 0x04000000); - BoardSpacePosGet(0, space, &pos); - BoardModelPosSetV(StarPlatGetMdl(), &pos); - BoardSpaceRotGet(0, space, &rot); - BoardModelRotYSet(StarPlatGetMdl(), rot.y); - } - } - } - spaceDrawF = 1; + s32 board; + BoardJunctionMaskZero(); + memset(spaceData, 0, sizeof(spaceData)); + memset(spaceAttr, 0, sizeof(spaceAttr)); + lbl_801D3FC4[0] = lbl_801D3FC4[1] = lbl_801D3FC4[2] = lbl_801D3FC4[3] = -1; + spaceDrawF = 0; + board = GWBoardGet(); + { + AnimBmpData *bmp; + AnimData *data; + void *data_base; + s32 size; + data = data_base = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_BOARD, 29), MEMORY_DEFAULT_NUM, HEAP_DATA); + data->bmp = (void *)((u32)data_base + (u32)data->bmp); + data->pat = (void *)((u32)data_base + (u32)data->pat); + data->bank = (void *)((u32)data_base + (u32)data->bank); + bmp = data->bmp; + size = bmp->sizeX; + spaceHiliteTexFmt = -1; + switch (bmp->dataFmt) { + case ANIM_BMP_RGBA8: + spaceHiliteTexFmt = GX_TF_RGBA8; + break; + + case ANIM_BMP_RGB5A3_DUPE: + spaceHiliteTexFmt = GX_TF_RGB5A3; + break; + + case ANIM_BMP_CMPR: + spaceHiliteTexFmt = GX_TF_CMPR; + break; + } + spaceHiliteTexData = HuMemDirectMallocNum(HEAP_SYSTEM, bmp->dataSize, MEMORY_DEFAULT_NUM); + bmp->data = (void *)((u32)bmp->data + (u32)data_base); + memcpy(spaceHiliteTexData, bmp->data, bmp->dataSize); + HuDataClose(data_base); + GXInitTexObj(&spaceHiliteTex, spaceHiliteTexData, size, size, spaceHiliteTexFmt, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&spaceHiliteTex, GX_LINEAR, GX_LINEAR, 0, 0, 0, GX_FALSE, GX_FALSE, GX_ANISO_1); + } + { + AnimBmpData *bmp; + AnimData *data; + void *data_base; + s32 size; + data = data_base = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_BOARD, 28), MEMORY_DEFAULT_NUM, HEAP_DATA); + data->bmp = (void *)((u32)data_base + (u32)data->bmp); + data->pat = (void *)((u32)data_base + (u32)data->pat); + data->bank = (void *)((u32)data_base + (u32)data->bank); + bmp = data->bmp; + size = bmp->sizeX; + spaceTexFmt = -1; + switch (bmp->dataFmt) { + case ANIM_BMP_RGBA8: + spaceTexFmt = GX_TF_RGBA8; + break; + + case ANIM_BMP_RGB5A3_DUPE: + spaceTexFmt = GX_TF_RGB5A3; + break; + + case ANIM_BMP_CMPR: + spaceTexFmt = GX_TF_CMPR; + break; + } + spaceTexData = HuMemDirectMallocNum(HEAP_SYSTEM, bmp->dataSize, MEMORY_DEFAULT_NUM); + bmp->data = (void *)((u32)bmp->data + (u32)data_base); + memcpy(spaceTexData, bmp->data, bmp->dataSize); + HuDataClose(data_base); + GXInitTexObj(&spaceTex, spaceTexData, size, size, spaceTexFmt, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&spaceTex, GX_LINEAR, GX_LINEAR, 0, 0, 0, GX_FALSE, GX_FALSE, GX_ANISO_1); + } + BoardSpaceRead(0, data_num); + spaceDrawMdl = Hu3DHookFuncCreate(DrawSpaces); + if (!BoardStartCheck() && !_CheckFlag(FLAG_ID_MAKE(1, 1))) { + BoardSpaceBlockPosSet(); + GWSystem.star_total = 0; + GWSystem.star_flag = 0; + } + if (GWBoardGet() != BOARD_ID_EXTRA1 && GWBoardGet() != BOARD_ID_EXTRA2) { + starPlatMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 6), NULL, 0); + BoardModelMotionStart(starPlatMdl, 0, 0x40000001); + BoardModelVisibilitySet(starPlatMdl, 0); + if (_CheckFlag(FLAG_ID_MAKE(1, 1))) { + Vec pos; + Vec rot; + s16 space; + BoardModelVisibilitySet(starPlatMdl, 1); + GWSystem.star_flag |= (u8)(1 << GWSystem.star_pos); + BoardSpaceTypeSet(0, boardSpaceStarTbl[GWSystem.star_pos], 8); + { + int space; + BoardSpace *space_plat; + space = BoardSpaceLinkFlagSearch(0, BoardSpaceStarGetCurr(), 0x04000000); + BoardSpacePosGet(0, space, &pos); + BoardModelPosSetV(StarPlatGetMdl(), &pos); + BoardSpaceRotGet(0, space, &rot); + BoardModelRotYSet(StarPlatGetMdl(), rot.y); + } + } + } + spaceDrawF = 1; } void BoardSpaceDestroy(void) { - if(spaceDrawMdl >= 0) { - Hu3DModelKill(spaceDrawMdl); - spaceDrawMdl = -1; - } - if(spaceHiliteTexData) { - HuMemDirectFree(spaceHiliteTexData); - spaceHiliteTexData = NULL; - } - if(spaceTexData) { - HuMemDirectFree(spaceTexData); - spaceTexData = NULL; - } -} \ No newline at end of file + if (spaceDrawMdl >= 0) { + Hu3DModelKill(spaceDrawMdl); + spaceDrawMdl = -1; + } + if (spaceHiliteTexData) { + HuMemDirectFree(spaceHiliteTexData); + spaceHiliteTexData = NULL; + } + if (spaceTexData) { + HuMemDirectFree(spaceTexData); + spaceTexData = NULL; + } +} diff --git a/src/game/chrman.c b/src/game/chrman.c index e0599240..aa090cf3 100755 --- a/src/game/chrman.c +++ b/src/game/chrman.c @@ -1366,7 +1366,7 @@ void CharModelItemHookCreate(s16 character, char *arg1) Hu3DModelHookObjReset(temp_r31->unk00, arg1); var_r26 = CharModelItemHookCreateInlineFunc(); if (!var_r26) { - Hu3DModelAttrSet(temp_r29, 1); + Hu3DModelAttrSet(temp_r29, HU3D_ATTR_DISPOFF); return; } var_r26->user_data = temp_r27 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkProcessData), MEMORY_DEFAULT_NUM); @@ -1410,7 +1410,7 @@ static void UpdateItemHook(void) sp8.x = PGMinPos.x + (PGMaxPos.x - PGMinPos.x) / 2; sp8.y = PGMinPos.y + (PGMaxPos.y - PGMinPos.y) / 2; sp8.z = PGMinPos.z + (PGMaxPos.z - PGMinPos.z) / 2; - Hu3DModelAttrSet(temp_r31->unk02, 1); + Hu3DModelAttrSet(temp_r31->unk02, HU3D_ATTR_DISPOFF); effectDustParam.unk0C.x = 0.0f; effectDustParam.unk0C.y = 0.0f; effectDustParam.unk0C.z = 0.0f; diff --git a/src/game/hsfanim.c b/src/game/hsfanim.c index 3ab18cf8..d0d7a579 100755 --- a/src/game/hsfanim.c +++ b/src/game/hsfanim.c @@ -495,7 +495,7 @@ s16 Hu3DParticleCreate(AnimData *arg0, s16 arg1) { temp_r25 = Hu3DHookFuncCreate((void*) &_Hu3DParticleAttrReset); temp_r28 = &Hu3DData[temp_r25]; - Hu3DModelAttrSet(temp_r25, 0x20); + Hu3DModelAttrSet(temp_r25, HU3D_ATTR_PARTICLE_KILL); temp_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(ParticleData), temp_r28->unk_48); temp_r28->unk_120 = temp_r31; temp_r31->unk_44 = arg0; diff --git a/src/game/hsfdraw.c b/src/game/hsfdraw.c index 6ea8b724..37e7aa16 100755 --- a/src/game/hsfdraw.c +++ b/src/game/hsfdraw.c @@ -2435,7 +2435,7 @@ static void MDObjMesh(HsfData *arg0, HsfObject *arg1) { var_r28 = temp_r29->data; if (arg1->flags & 4) { Hu3DObjInfoP->flags |= 0x400; - Hu3DModelAttrSet(curModelID, 4); + Hu3DModelAttrSet(curModelID, HU3D_ATTR_SHADOW); } if (arg1->flags & 8) { Hu3DObjInfoP->flags |= 8; diff --git a/src/game/thpmain.c b/src/game/thpmain.c index babf6433..721558ba 100755 --- a/src/game/thpmain.c +++ b/src/game/thpmain.c @@ -1,10 +1,10 @@ #include "game/thpmain.h" +#include "game/THPSimple.h" #include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/init.h" #include "game/process.h" #include "game/sprite.h" -#include "game/THPSimple.h" #include "string.h" @@ -25,7 +25,8 @@ static u32 THPFrame; static s16 THPStart; Process *THPProc; -s16 HuTHPSprCreateVol(char *path, s16 loop, s16 prio, float volume) { +s16 HuTHPSprCreateVol(char *path, s16 loop, s16 prio, float volume) +{ s16 temp_r31; if (THPProc) { @@ -51,11 +52,13 @@ s16 HuTHPSprCreateVol(char *path, s16 loop, s16 prio, float volume) { return temp_r31; } -s16 HuTHPSprCreate(char *path, s16 loop, s16 prio) { +s16 HuTHPSprCreate(char *path, s16 loop, s16 prio) +{ return HuTHPSprCreateVol(path, loop, prio, 110.0f); } -s16 HuTHP3DCreateVol(char *path, s16 loop, float volume) { +s16 HuTHP3DCreateVol(char *path, s16 loop, float volume) +{ s16 temp_r31; if (THPProc) { @@ -75,27 +78,32 @@ s16 HuTHP3DCreateVol(char *path, s16 loop, float volume) { THPLoopF = loop; THPStat = 0; THPFrame = 0; - Hu3DModelAttrSet(SimpleControl.unk19E, 1); + Hu3DModelAttrSet(SimpleControl.unk19E, HU3D_ATTR_DISPOFF); return temp_r31; } -s16 HuTHP3DCreate(char *path, s16 loop) { +s16 HuTHP3DCreate(char *path, s16 loop) +{ return HuTHP3DCreateVol(path, loop, 110.0f); } -void HuTHPStop(void) { +void HuTHPStop(void) +{ THPStat = 1; } -void HuTHPClose(void) { +void HuTHPClose(void) +{ THPStat = 2; } -void HuTHPRestart(void) { +void HuTHPRestart(void) +{ THPStat = 3; } -BOOL HuTHPEndCheck(void) { +BOOL HuTHPEndCheck(void) +{ s32 temp_r31; temp_r31 = THPSimpleGetTotalFrame() - 1; @@ -105,19 +113,23 @@ BOOL HuTHPEndCheck(void) { return (temp_r31 <= THPFrame); } -s32 HuTHPFrameGet(void) { +s32 HuTHPFrameGet(void) +{ return THPFrame; } -s32 HuTHPTotalFrameGet(void) { +s32 HuTHPTotalFrameGet(void) +{ return THPSimpleGetTotalFrame(); } -void HuTHPSetVolume(s32 left, s32 right) { +void HuTHPSetVolume(s32 left, s32 right) +{ THPSimpleSetVolume(left, right); } -static void THPTestProc(void) { +static void THPTestProc(void) +{ s32 temp_r29; u32 var_r28; void *temp_r30; @@ -146,8 +158,9 @@ static void THPTestProc(void) { decodeRate = 0; THPStart = 1; if (SimpleControl.unk19C == 1) { - Hu3DModelAttrReset(SimpleControl.unk19E, 1); - } else { + Hu3DModelAttrReset(SimpleControl.unk19E, HU3D_ATTR_DISPOFF); + } + else { HuSprAttrReset(SimpleControl.unk19E, 0, 4); } while (1) { @@ -182,7 +195,8 @@ static void THPTestProc(void) { } if (SimpleControl.unk19C == 1) { Hu3DModelKill(SimpleControl.unk19E); - } else { + } + else { HuSprKill(SimpleControl.unk19E); } OSCancelThread(decodeThread); @@ -199,18 +213,21 @@ static void THPTestProc(void) { } } -static void THPViewFunc(ModelData *arg0, Mtx arg1) { +static void THPViewFunc(ModelData *arg0, Mtx arg1) +{ GXColor spC = { 0xFF, 0xFF, 0xFF, 0xFF }; if (THPStart != 0) { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); GXSetCullMode(GX_CULL_NONE); - THPFrame = THPSimpleDrawCurrentFrame(RenderMode, &spC, arg1, -audioTrack.unk00 / 2, audioTrack.unk04 / 2, audioTrack.unk00, -audioTrack.unk04); + THPFrame + = THPSimpleDrawCurrentFrame(RenderMode, &spC, arg1, -audioTrack.unk00 / 2, audioTrack.unk04 / 2, audioTrack.unk00, -audioTrack.unk04); THPSimpleAudioStart(); } } -static void THPViewSprFunc(HuSprite *arg0) { +static void THPViewSprFunc(HuSprite *arg0) +{ Vec spC = { 0.0f, 0.0f, 1.0f }; GXColor sp8; s32 temp_r30; @@ -227,19 +244,21 @@ static void THPViewSprFunc(HuSprite *arg0) { PSMTXRotAxisRad(sp18, &spC, MTXDegToRad(arg0->z_rot)); PSMTXScale(sp48, arg0->scale_x, arg0->scale_y, 1.0f); PSMTXConcat(sp18, sp48, sp48); - } else { + } + else { PSMTXScale(sp48, arg0->scale_x, arg0->scale_y, 1.0f); } mtxTransCat(sp48, arg0->x, arg0->y, 0.0f); PSMTXConcat(*arg0->group_mtx, sp48, sp48); - temp_r30 = -((s32) audioTrack.unk00 / 2); - temp_r29 = -((s32) audioTrack.unk04 / 2); + temp_r30 = -((s32)audioTrack.unk00 / 2); + temp_r29 = -((s32)audioTrack.unk04 / 2); GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE); THPFrame = THPSimpleDrawCurrentFrame(RenderMode, &sp8, sp48, temp_r30, temp_r29, audioTrack.unk00, audioTrack.unk04); } } -static void THPDecodeFunc(void *param) { +static void THPDecodeFunc(void *param) +{ while (1) { if (THPStat == 2) { break; From f1c171b33f072594dd1c0ae44342e46671fa892a Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 4 Nov 2024 00:05:52 +0100 Subject: [PATCH 098/311] Applied more Attr defines --- src/REL/instDll/main.c | 11 ++--- src/REL/m401Dll/main.c | 10 ++--- src/REL/m402Dll/main.c | 24 +++++----- src/REL/m404Dll/main.c | 6 +-- src/REL/m405Dll/main.c | 34 +++++++------- src/REL/m407dll/effect.c | 4 +- src/REL/m407dll/whomp.c | 8 ++-- src/REL/m408Dll/stage.c | 8 ++-- src/REL/m409Dll/main.c | 20 ++++----- src/REL/m410Dll/game.c | 2 +- src/REL/m411Dll/main.c | 10 ++--- src/REL/m412Dll/main.c | 26 +++++------ src/REL/m414Dll/main.c | 48 ++++++++++---------- src/REL/m415Dll/main.c | 2 +- src/REL/m416Dll/main.c | 4 +- src/REL/m420dll/map.c | 24 +++++----- src/REL/m420dll/player.c | 32 ++++++------- src/REL/m426Dll/main.c | 2 +- src/REL/m429Dll/main.c | 44 +++++++++--------- src/REL/m431Dll/main.c | 2 +- src/REL/m431Dll/object.c | 5 +-- src/REL/m438Dll/main.c | 16 +++---- src/REL/m440Dll/main.c | 10 ++--- src/REL/m441Dll/main.c | 38 ++++++++-------- src/REL/m443Dll/player.c | 4 +- src/REL/m444dll/main.c | 14 +++--- src/REL/m444dll/pinball.c | 4 +- src/REL/m445Dll/main.c | 44 +++++++++--------- src/REL/m446Dll/card.c | 2 +- src/REL/m446Dll/cursor.c | 2 +- src/REL/m446Dll/player.c | 4 +- src/REL/m446Dll/stage.c | 14 +++--- src/REL/m447dll/player.c | 6 +-- src/REL/m447dll/stage.c | 4 +- src/REL/m448Dll/main.c | 4 +- src/REL/m450Dll/main.c | 72 +++++++++++++++--------------- src/REL/mgmodedll/mgmode.c | 28 ++++++------ src/REL/modeltestDll/main.c | 8 ++-- src/REL/modeltestDll/modeltest00.c | 2 +- src/REL/modeltestDll/modeltest01.c | 24 +++++----- src/REL/modeseldll/filesel.c | 4 +- src/REL/modeseldll/modesel.c | 8 ++-- src/REL/mpexDll/mpex.c | 4 +- src/REL/option/record.c | 2 +- src/REL/option/rumble.c | 16 +++---- src/REL/option/sound.c | 2 +- src/REL/resultDll/battle.c | 4 +- src/REL/selmenuDll/main.c | 2 +- src/game/board/item.c | 3 +- src/game/board/model.c | 6 +-- src/game/board/player.c | 3 +- 51 files changed, 336 insertions(+), 344 deletions(-) diff --git a/src/REL/instDll/main.c b/src/REL/instDll/main.c index 7de22da9..36b6a2a8 100644 --- a/src/REL/instDll/main.c +++ b/src/REL/instDll/main.c @@ -7,7 +7,6 @@ #include "game/pad.h" #include "game/printfunc.h" - #include "game/hsfmotion.h" #include "game/audio.h" @@ -19,11 +18,9 @@ #include "game/window.h" #include "game/wipe.h" - #include "ext_math.h" #include "math.h" - #include "rel_sqrt_consts.h" #include "REL/instDll.h" @@ -255,7 +252,7 @@ static void fn_1_994(void) HuPrcVSleep(); } HuAudFXPlay(1211); - Hu3DModelAttrReset(model, 0x40000002); + Hu3DModelAttrReset(model, HU3D_MOTATTR_PAUSE); for (i = 1; i <= 20; i++) { Hu3DModelPosSet(model, 0.0f, (200.0 * (sind(i * 2.25f) * (1.0 / sind(45)))) - 200.0, pos_z); rot_x = (20 - i) * cosd(i * 13.5f); @@ -267,7 +264,7 @@ static void fn_1_994(void) Hu3DModelAttrSet(model, HU3D_MOTATTR_PAUSE); HuPrcSleep(10); HuAudFXPlay(1212); - Hu3DModelAttrReset(model, 0x40000002); + Hu3DModelAttrReset(model, HU3D_MOTATTR_PAUSE); i = Hu3DHookFuncCreate(fn_1_50B0); Hu3DModelCameraSet(i, 1); @@ -358,7 +355,7 @@ static void fn_1_994(void) lbl_1_data_0 = 4; HuPrcSleep(10); - Hu3DModelAttrReset(model, 0x40000002); + Hu3DModelAttrReset(model, HU3D_MOTATTR_PAUSE); HuPrcSleep(10); fov_vel = 0; for (i = 0; i <= 60; i++) { @@ -522,7 +519,7 @@ static void fn_1_17E4(void) continue; } if (time == 0) { - Hu3DModelAttrReset(player_mdl[j], 0x40000001); + Hu3DModelAttrReset(player_mdl[j], HU3D_MOTATTR_LOOP); CharModelVoiceEnableSet(char_tbl[i], mot_tbl[i][1], 1); CharModelMotionSet(char_tbl[j], mot_tbl[j][1]); } diff --git a/src/REL/m401Dll/main.c b/src/REL/m401Dll/main.c index 09b7a1cf..14147e35 100644 --- a/src/REL/m401Dll/main.c +++ b/src/REL/m401Dll/main.c @@ -1169,7 +1169,7 @@ void fn_2_3F28(omObjData *object) temp_r31->unk30.y = object->trans.y; temp_r31->unk30.z = object->trans.z; Hu3DModelAttrReset(object->model[3], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(object->model[3], 0x40000002); + Hu3DModelAttrReset(object->model[3], HU3D_MOTATTR_PAUSE); Hu3DModelClusterAttrReset(object->model[3], 0, 0xC0000002); Hu3DModelPosSet(object->model[3], object->trans.x, 100, 100 + object->trans.z); Hu3DMotionTimeSet(object->model[3], 0); @@ -1384,12 +1384,12 @@ void fn_2_48A0(omObjData *object) temp_r31->unk6C = 1; omVibrate(temp_r31->unk4, 12, 4, 2); Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(object->model[2], 0x40000002); + Hu3DModelAttrReset(object->model[2], HU3D_MOTATTR_PAUSE); Hu3DModelAttrSet(object->model[2], HU3D_MOTATTR_LOOP); Hu3DModelPosSet(object->model[2], object->trans.x, 950, 30 + object->trans.z); Hu3DModelScaleSet(object->model[2], 1, 1, 1); Hu3DMotionTimeSet(object->model[2], 0); - Hu3DModelAttrReset(object->model[3], 0x40000002); + Hu3DModelAttrReset(object->model[3], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(object->model[3], HU3D_ATTR_DISPOFF); Hu3DModelClusterAttrReset(object->model[3], 0, 0xC0000002); Hu3DModelPosSet(object->model[3], object->trans.x, 0, 30 + object->trans.z); @@ -2564,7 +2564,7 @@ void fn_2_A318(omObjData *object) temp_r30->unk0.y = atan2d(temp_r28->trans.y - object->trans.y, temp_r28->trans.x - object->trans.x); temp_r30->unk0.z = 8.0f + ((1.0f / 255.0f) * ((9.0f * frandu8()))); Hu3DMotionSet(object->model[0], object->motion[1]); - Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); lbl_2_bss_78.x = object->trans.x; lbl_2_bss_78.y = object->trans.y; lbl_2_bss_78.z = object->trans.z; @@ -2807,7 +2807,7 @@ void fn_2_C130(omObjData *object) temp_r31->unk50->work[0] = 1; temp_r31->unk6C = 0; CharModelMotionSet(((M401WorkPlayer *)(lbl_2_bss_118[temp_r30]->data))->unk86, lbl_2_bss_118[temp_r30]->motion[4]); - Hu3DModelAttrReset(lbl_2_bss_118[temp_r30]->model[0], 0x40000001); + Hu3DModelAttrReset(lbl_2_bss_118[temp_r30]->model[0], HU3D_MOTATTR_LOOP); lbl_2_bss_118[temp_r30]->func = fn_2_48A0; Hu3DModelAmbSet(lbl_2_bss_118[temp_r30]->model[0], 0.7f, 0.7f, 0.7f); omSetTra(lbl_2_bss_118[temp_r30], -225.0f + (temp_r30 * 150), 740, 400); diff --git a/src/REL/m402Dll/main.c b/src/REL/m402Dll/main.c index 745a4197..3e3aadbd 100755 --- a/src/REL/m402Dll/main.c +++ b/src/REL/m402Dll/main.c @@ -747,7 +747,7 @@ static void fn_1_2880(UnkFn27A8Struct *arg0, omObjData *arg1) arg0->unk08 = 0.0f; arg0->unk0C = 0.0f; arg0->unk10 = arg0->unk0C; - Hu3DModelAttrReset(arg1->model[0], 0x40000002); + Hu3DModelAttrReset(arg1->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelAttrSet(arg1->model[0], HU3D_MOTATTR_LOOP); Hu3DMotionSet(arg1->model[0], arg1->motion[0]); } @@ -782,7 +782,7 @@ static void fn_1_2B30(UnkFn27A8Struct *arg0, omObjData *arg1, omObjData *arg2) arg0->unk0C = Hu3DMotionTimeGet(arg2->model[0]); Hu3DMotionTimeSet(lbl_1_bss_54[arg0->unk54]->model[0], 0.0f); Hu3DMotionSpeedSet(arg1->model[0], 1.0f); - Hu3DModelAttrReset(arg1->model[0], 0x40000003); + Hu3DModelAttrReset(arg1->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DMotionShiftSet(arg1->model[0], arg1->motion[7], 0.0f, 8.0f, HU3D_MOTATTR_NONE); fn_1_2970(arg0, arg2, 1); HuAudCharVoicePlay(arg0->unk58, 0x123); @@ -803,7 +803,7 @@ static u8 fn_1_2DBC(UnkFn27A8Struct *arg0, omObjData *arg1) arg0->unk1C += arg0->unk20; if (18.0f < arg0->unk50) { arg0->unk20 = (670.0f - arg0->unk1C) / 20.0f; - Hu3DModelAttrReset(arg1->model[0], 0x40000003); + Hu3DModelAttrReset(arg1->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DMotionSet(arg1->model[0], arg1->motion[2]); Hu3DMotionTimeSet(arg1->model[0], 20.0f); omVibrate(arg0->unk54, 12, 4, 2); @@ -1033,7 +1033,7 @@ static void fn_1_43D8(omObjData *arg0) Hu3DMotionShiftSet(arg0->model[0], arg0->motion[2], 0.0f, 10.0f, HU3D_MOTATTR_NONE); Hu3DMotionSet(temp_r30->model[0], temp_r30->motion[0]); Hu3DModelAttrSet(temp_r30->model[0], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrReset(temp_r30->model[0], 0x40000001); + Hu3DModelAttrReset(temp_r30->model[0], HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(temp_r30->model[0], HU3D_ATTR_DISPOFF); } break; @@ -1059,7 +1059,7 @@ static void fn_1_43D8(omObjData *arg0) temp_r31->unk4C++; temp_r31->unk50 = 0; temp_r31->unk04 = 536.0f; - Hu3DModelAttrReset(temp_r30->model[0], 0x40000002); + Hu3DModelAttrReset(temp_r30->model[0], HU3D_MOTATTR_PAUSE); spE8.x = temp_r31->unk00 * sind(180.0f + temp_r31->unk18); spE8.y = temp_r31->unk04; spE8.z = temp_r31->unk00 * cosd(180.0f + temp_r31->unk18); @@ -1146,9 +1146,9 @@ static void fn_1_43D8(omObjData *arg0) if (temp_r31->unk54 == lbl_1_bss_26) { temp_r31->unk4C = 2012; temp_r31->unk20 = 10.5f; - Hu3DModelAttrReset(arg0->model[0], 0x40000003); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DMotionShiftSet(arg0->model[0], arg0->motion[8], 0.0f, 20.0f, HU3D_MOTATTR_NONE); - Hu3DModelAttrReset(temp_r30->model[0], 0x40000003); + Hu3DModelAttrReset(temp_r30->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DMotionShiftSet(temp_r30->model[0], temp_r30->motion[2], 20.0f, 20.0f, HU3D_MOTATTR_NONE); HuAudFXPlay(0x513); fn_1_4190(temp_r31->unk18); @@ -1391,7 +1391,7 @@ static void fn_1_6E64(omObjData *arg0) omSetTra(arg0, temp_r30->unk00, temp_r30->unk04, temp_r30->unk08); omSetRot(arg0, 0.0f, temp_r30->unk0C, 0.0f); Hu3DModelShadowSet(arg0->model[0]); - Hu3DModelAttrReset(arg0->model[0], 0x40000002); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); arg0->func = fn_1_6AB4; } @@ -1519,7 +1519,7 @@ static void fn_1_7950(omObjData *arg0) omSetTra(arg0, temp_r30->unk00.x, temp_r30->unk00.y, temp_r30->unk00.z); omSetRot(arg0, temp_r30->unk0C, temp_r30->unk10, temp_r30->unk14); omSetSca(arg0, temp_r30->unk18, temp_r30->unk1C, temp_r30->unk20); - Hu3DModelAttrReset(arg0->model[0], 0x40000003); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); arg0->func = fn_1_70E4; } @@ -1597,7 +1597,7 @@ static void fn_1_7E84(omObjData *arg0) arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M402, 36)); Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); - Hu3DModelAttrReset(arg0->model[0], 0x40000002); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(arg0->model[0], 1); temp_f31 = 135.0f + 90.0f * arg0->work[0]; omSetTra(arg0, 155.5 * sind(temp_f31), 0.0f, 155.5 * cosd(temp_f31)); @@ -1725,7 +1725,7 @@ static void fn_1_8218(omObjData *arg0) lbl_1_bss_2C += 1.0f; if (lbl_1_bss_26 >= 0 && 110.0f == lbl_1_bss_2C) { Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(arg0->model[2], 0x40000002); + Hu3DModelAttrReset(arg0->model[2], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(arg0->model[2], 0.0f); Hu3DMotionSpeedSet(arg0->model[2], 3.0f); @@ -1745,7 +1745,7 @@ static void fn_1_8218(omObjData *arg0) lbl_1_bss_30 -= 1.0f; if (0.0f == lbl_1_bss_30) { Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(arg0->model[2], 0x40000002); + Hu3DModelAttrReset(arg0->model[2], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(arg0->model[2], 0.0f); Hu3DMotionSpeedSet(arg0->model[2], 3.0f); diff --git a/src/REL/m404Dll/main.c b/src/REL/m404Dll/main.c index a5d68eb8..c8a83f86 100644 --- a/src/REL/m404Dll/main.c +++ b/src/REL/m404Dll/main.c @@ -716,7 +716,7 @@ void fn_1_1344(omObjData *object) } } Hu3DMotionSet(object->model[0], object->motion[0]); - Hu3DModelAttrSet(object->model[0], 0x40000601); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_OVL_LOOP | HU3D_MOTATTR_OVL_PAUSE); CharModelVoiceEnableSet(var_r24, object->motion[1], 0); object->trans.x = -90.0f; object->trans.y = 0.0f; @@ -1023,7 +1023,7 @@ void fn_1_44A0(omObjData *object) } Hu3DMotionOverlaySpeedSet(object->model[0], Hu3DData[object->model[0]].unk_68); if (var_r31->unk_2C == 0) { - Hu3DModelAttrReset(object->model[0], 0x40000400); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_OVL_PAUSE); Hu3DMotionOverlayTimeSet(object->model[0], 0.0f); } } @@ -1032,7 +1032,7 @@ void fn_1_44A0(omObjData *object) var_r28 = 0; CharModelMotionSpeedSet(var_r31->unk_0C, 1.0f); Hu3DMotionOverlayTimeSet(object->model[0], 0.0f); - Hu3DModelAttrSet(object->model[0], 0x40000400); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_OVL_PAUSE); } sp8.x = object->trans.x; sp8.z = object->trans.z; diff --git a/src/REL/m405Dll/main.c b/src/REL/m405Dll/main.c index 7e48a2eb..f13da739 100755 --- a/src/REL/m405Dll/main.c +++ b/src/REL/m405Dll/main.c @@ -1360,8 +1360,8 @@ void fn_1_58A0(omObjData *arg0) arg0->work[0]++; lbl_1_bss_6C = 0.0f; Hu3DMotionSet(arg0->model[0], arg0->motion[1]); - Hu3DModelAttrReset(arg0->model[0], 0x40000003); - Hu3DModelAttrReset(arg0->model[1], 0x40000003); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(arg0->model[1], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); } break; case 1: @@ -1379,7 +1379,7 @@ void fn_1_58A0(omObjData *arg0) if (Hu3DMotionEndCheck(arg0->model[0]) != 0) { arg0->work[0]++; Hu3DMotionSet(arg0->model[0], arg0->motion[0]); - Hu3DModelAttrReset(arg0->model[0], 0x40000002); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); } break; @@ -1402,12 +1402,12 @@ void fn_1_5B28(omObjData *arg0) } for (i = 0; i < 2; i++) { Hu3DModelAttrSet(arg0->model[i], HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(arg0->model[i], 0x40000003); + Hu3DModelAttrSet(arg0->model[i], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(arg0->model[i], 5); Hu3DModelShadowSet(arg0->model[i]); } Hu3DMotionSet(arg0->model[0], *arg0->motion); - Hu3DModelAttrReset(arg0->model[0], 0x40000002); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelHookSet(arg0->model[0], "g001m1_021-itemhook_r", arg0->model[1]); Hu3DMotionTimeSet(arg0->model[1], 1.0f); for (i = 0; i < 2; i++) { @@ -1585,7 +1585,7 @@ void fn_1_6BFC(omObjData *arg0) if (lbl_1_bss_98->work[0] == 1006) { temp_r31->unk100 = 2005; temp_r31->unk104 = 0; - Hu3DModelAttrReset(arg0->model[0], 0x40000002); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_PAUSE); Hu3DMotionShiftSet(arg0->model[0], arg0->motion[temp_r31->unk104], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionSpeedSet(arg0->model[0], 1.0f); for (i = 0; i < 5; i++) { @@ -1712,7 +1712,7 @@ void fn_1_6BFC(omObjData *arg0) temp_r31->unk5C = temp_r31->unk4C.z; var_r27 = temp_r31->unk94 + 5; temp_r31->unk104 = var_r27; - Hu3DModelAttrReset(arg0->model[0], 0x40000003); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DMotionShiftSet(arg0->model[0], arg0->motion[temp_r31->unk104], 0.0f, 8.0f, HU3D_MOTATTR_NONE); temp_r31->unk94++; if (temp_r31->unk94 > lbl_1_bss_78) { @@ -1743,7 +1743,7 @@ void fn_1_6BFC(omObjData *arg0) } if (var_r27 != temp_r31->unk104) { temp_r31->unk104 = var_r27; - Hu3DModelAttrReset(arg0->model[0], 0x40000002); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_PAUSE); Hu3DMotionShiftSet(arg0->model[0], arg0->motion[temp_r31->unk104], 0.0f, 30.0f, HU3D_MOTATTR_LOOP); } if (temp_r31->unk104 >= 2 && temp_r31->unk104 <= 4) { @@ -1776,13 +1776,13 @@ void fn_1_798C(omObjData *arg0) case 2000: if (lbl_1_bss_98->work[0] >= 1003) { temp_r31->unk100++; - Hu3DModelAttrReset(arg0->model[0], 0x40000003); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); } break; case 2001: if (lbl_1_bss_98->work[0] >= 1005) { temp_r31->unk100++; - Hu3DModelAttrReset(arg0->model[0], 0x40000003); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); for (i = 0; i <= 3; i++) { espDispOn(temp_r31->unk0C[i]); } @@ -1799,7 +1799,7 @@ void fn_1_798C(omObjData *arg0) temp_r31->unk5C = temp_r31->unk4C.z; temp_r31->unk104 = 2; Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); - Hu3DModelAttrReset(arg0->model[0], 0x40000002); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_PAUSE); Hu3DMotionSet(arg0->model[0], arg0->motion[temp_r31->unk104]); Hu3DMotionCalc(arg0->model[0]); arg0->func = fn_1_6BFC; @@ -1817,12 +1817,12 @@ void fn_1_798C(omObjData *arg0) temp_r31->unk104 = 7; Hu3DMotionOverlaySet(arg0->model[0], arg0->motion[temp_r31->unk104]); Hu3DMotionOverlayTimeSet(arg0->model[0], 0.0f); - Hu3DModelAttrReset(arg0->model[0], 0x40000400); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_OVL_PAUSE); HuAudCharVoicePlay(temp_r31->unk10C, 0x124); } if (temp_r31->unk104 == 7 && 73.0f <= Hu3DMotionOverlayTimeGet(arg0->model[0])) { Hu3DMotionOverlayTimeSet(arg0->model[0], 35.0f); - Hu3DModelAttrReset(arg0->model[0], 0x40000400); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_OVL_PAUSE); } temp_r31->unk4C.y = -62.0f + 4.0f * fn_1_5664(&temp_r31->unk4C); break; @@ -1874,7 +1874,7 @@ void fn_1_81B4(omObjData *arg0) CharModelMotionSet(lbl_1_data_0[temp_r31->unk10C], arg0->motion[i]); } Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(arg0->model[0], 0x40000001); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(arg0->model[0], 3); Hu3DMotionSet(arg0->model[0], arg0->motion[1]); @@ -2270,11 +2270,11 @@ void fn_1_AD10(omObjData *arg0) lbl_1_bss_70 = 900.0f; omSetTra(arg0, 0.0f, 0.0f, 0.0f); arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M405, 48)); - Hu3DModelAttrSet(arg0->model[0], 0x4001); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(arg0->model[0], 5); arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M405, 49)); - Hu3DModelAttrSet(arg0->model[1], 0x4001); + Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); Hu3DModelAttrSet(arg0->model[1], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(arg0->model[1], 6); Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 0.0f); @@ -2291,7 +2291,7 @@ void fn_1_AD10(omObjData *arg0) Hu3DModelPosSet(arg0->model[3], 0.0f, -4.0f, 0.0f); Hu3DModelTPLvlSet(arg0->model[3], 0.4f); arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M405, 52)); - Hu3DModelAttrSet(arg0->model[4], 0x4001); + Hu3DModelAttrSet(arg0->model[4], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); Hu3DModelAttrSet(arg0->model[4], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(arg0->model[4], 6); Hu3DModelPosSet(arg0->model[4], 0.0f, 0.0f, 0.0f); diff --git a/src/REL/m407dll/effect.c b/src/REL/m407dll/effect.c index ebe9e273..52df4f5a 100644 --- a/src/REL/m407dll/effect.c +++ b/src/REL/m407dll/effect.c @@ -181,12 +181,12 @@ void fn_1_485C(omObjData *arg0) if (temp_r30->unk_1C == 0) { Hu3DMotionTimeSet(*arg0->model, 0.0f); Hu3DModelAttrReset(*arg0->model, HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(*arg0->model, 0x40000002); + Hu3DModelAttrReset(*arg0->model, HU3D_MOTATTR_PAUSE); Hu3DModelAttrSet(*arg0->model, HU3D_MOTATTR_LOOP); temp_r30->unk_1C++; } else if (temp_r30->unk_1C == 1) { - Hu3DModelAttrReset(arg0->model[0], 0x40000001); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); temp_r30->unk_1C++; } diff --git a/src/REL/m407dll/whomp.c b/src/REL/m407dll/whomp.c index 90ef5e88..08605efb 100644 --- a/src/REL/m407dll/whomp.c +++ b/src/REL/m407dll/whomp.c @@ -382,7 +382,7 @@ void fn_1_3364(omObjData *arg0) temp_r31 = arg0->data; if (temp_r31->unk_2C == 0) { Hu3DMotionSet(arg0->model[0], arg0->motion[4]); - Hu3DModelAttrReset(arg0->model[0], 0x40000001); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); switch (temp_r31->unk_28) { case 0: fn_1_4544(0, 0, temp_r31->unk_08.x, 0.0f, temp_r31->unk_08.z); @@ -421,7 +421,7 @@ void fn_1_34A4(omObjData *arg0) Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); } Hu3DMotionSet(arg0->model[0], arg0->motion[3]); - Hu3DModelAttrReset(arg0->model[0], 0x40000001); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); switch (temp_r30->unk_28) { /* irregular */ case 0: fn_1_4544(0, 0, temp_r30->unk_08.x, 0.0f, temp_r30->unk_08.z); @@ -441,7 +441,7 @@ void fn_1_34A4(omObjData *arg0) if ((temp_r30->unk_2C == 0xA) && (temp_r30->unk_28 == 1)) { Hu3DMotionSet(arg0->model[1], arg0->motion[1]); - Hu3DModelAttrReset(arg0->model[1], 0x40000001); + Hu3DModelAttrReset(arg0->model[1], HU3D_MOTATTR_LOOP); } temp_r30->unk_2C++; @@ -468,7 +468,7 @@ void fn_1_36D0(omObjData *arg0) Hu3DMotionSet(arg0->model[1], arg0->motion[0]); Hu3DModelAttrSet(arg0->model[1], HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(arg0->model[2], 0x40000002); + Hu3DModelAttrReset(arg0->model[2], HU3D_MOTATTR_PAUSE); Hu3DModelAttrSet(arg0->model[2], HU3D_MOTATTR_LOOP); fn_1_290C(arg0, 0); } diff --git a/src/REL/m408Dll/stage.c b/src/REL/m408Dll/stage.c index fcf59452..06fc40fb 100644 --- a/src/REL/m408Dll/stage.c +++ b/src/REL/m408Dll/stage.c @@ -348,7 +348,7 @@ void fn_1_D004(omObjData *object) temp_r28 = ((ParticleData *)Hu3DData[temp_r27].unk_120)->unk_1C; temp_r28[2] -= 0.025f; if (temp_r28[2] <= 0) { - Hu3DModelAttrReset(temp_r27, 0x20); + Hu3DModelAttrReset(temp_r27, HU3D_ATTR_PARTICLE_KILL); Hu3DModelKill(temp_r27); object->model[6] = 0; } @@ -500,7 +500,7 @@ void fn_1_DA6C(ModelData *model, ParticleData *particle, Mtx matrix) DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); if (particle->unk_00 >= particle->unk_30 && temp_r29->unk_02 == 2) { temp_r29->unk_02 = 0; - Hu3DModelAttrReset(temp_r29->unk_00, 0x20); + Hu3DModelAttrReset(temp_r29->unk_00, HU3D_ATTR_PARTICLE_KILL); Hu3DModelKill(temp_r29->unk_00); } } @@ -540,7 +540,7 @@ void fn_1_DFD0(ModelData *model, ParticleData *particle, Mtx matrix) case 1: if (--particle->unk_00 == 0) { - Hu3DModelAttrReset(temp_r30->unk_00, 0x20); + Hu3DModelAttrReset(temp_r30->unk_00, HU3D_ATTR_PARTICLE_KILL); Hu3DModelKill(temp_r30->unk_00); return; } @@ -747,7 +747,7 @@ void fn_1_F06C(ModelData *model, ParticleData *particle, Mtx matrix) temp_r31->unk02--; } if (particle->unk_30 == temp_r27) { - Hu3DModelAttrReset(temp_r29->unk_00, 0x20); + Hu3DModelAttrReset(temp_r29->unk_00, HU3D_ATTR_PARTICLE_KILL); Hu3DModelKill(temp_r29->unk_00); return; } diff --git a/src/REL/m409Dll/main.c b/src/REL/m409Dll/main.c index f3a5e532..179da3b0 100644 --- a/src/REL/m409Dll/main.c +++ b/src/REL/m409Dll/main.c @@ -284,7 +284,7 @@ s8 fn_1_10E8(omObjData *object) } break; case 0: - Hu3DModelAttrReset(lbl_1_bss_DC->model[1], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_DC->model[1], HU3D_MOTATTR_PAUSE); if (lbl_1_bss_C == 0.0f) { fn_1_3840(); sp8.x = 1520.0f; @@ -502,8 +502,8 @@ static inline void unkInline(unkStruct4 *var_r31, s16 var_r29, s16 *var_r28, s16 Hu3DModelAttrSet(var_r31[var_r29].unk2, HU3D_MOTATTR_LOOP); Hu3DModelAttrSet(var_r31[var_r29].unk4, HU3D_MOTATTR_PAUSE); if (arg3) { - Hu3DModelAttrSet(var_r31[var_r29].unk2, 0x00000001); - Hu3DModelAttrSet(var_r31[var_r29].unk4, 0x00000001); + Hu3DModelAttrSet(var_r31[var_r29].unk2, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31[var_r29].unk4, HU3D_ATTR_DISPOFF); } var_r31[var_r29].unk6 = Hu3DModelCreateFile(0x2001C); var_r31[var_r29].unk8 = Hu3DJointMotionFile(var_r31[var_r29].unk6, DATA_MAKE_NUM(DATADIR_M409, 11)); @@ -609,14 +609,14 @@ void fn_1_2DCC(omObjData *object) case 1: if (++lbl_1_bss_24.unk8 == (lbl_1_bss_24.unkA - 5)) { Hu3DMotionSet(var_r31->unk6, var_r31->unkA); - Hu3DModelAttrReset(var_r31->unk6, 0x40000001); + Hu3DModelAttrReset(var_r31->unk6, HU3D_MOTATTR_LOOP); lbl_1_bss_3C++; break; } if (lbl_1_bss_24.unk8 > lbl_1_bss_24.unkA) { lbl_1_bss_24.unk8 = 0; lbl_1_bss_24.unkA = 0xF; - Hu3DModelAttrReset(var_r31->unk4, 0x40000002); + Hu3DModelAttrReset(var_r31->unk4, HU3D_MOTATTR_PAUSE); lbl_1_bss_24.unk1 = 2; HuAudFXPlay(0x55B); HuAudFXPlay(0x55D); @@ -641,9 +641,9 @@ void fn_1_2DCC(omObjData *object) Hu3DMotionSet(var_r31->unk6, var_r31->unkA); Hu3DMotionTimeSet(var_r31->unk6, Hu3DMotionMaxTimeGet(var_r31->unk6)); Hu3DMotionSpeedSet(var_r31->unk6, -1.0f); - Hu3DModelAttrReset(var_r31->unk6, 0x40000001); + Hu3DModelAttrReset(var_r31->unk6, HU3D_MOTATTR_LOOP); Hu3DMotionSpeedSet(var_r31->unk4, -1.0f); - Hu3DModelAttrReset(var_r31->unk4, 0x40000002); + Hu3DModelAttrReset(var_r31->unk4, HU3D_MOTATTR_PAUSE); fn_1_2414(24, 0x18); HuAudFXPlay(0x55C); HuAudFXPlay(0x55D); @@ -680,9 +680,9 @@ void fn_1_2DCC(omObjData *object) if (var_r31->unkE-- <= 0) { temp_r30 = &Hu3DData[var_r31->unk2]; if ((var_r31->unkC < 2) && (lbl_1_bss_3C < 0xBU)) { - Hu3DModelAttrReset(var_r31->unk2, 1U); - Hu3DModelAttrReset(var_r31->unk4, 1U); - Hu3DModelAttrReset(var_r31->unk6, 1U); + Hu3DModelAttrReset(var_r31->unk2, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->unk4, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->unk6, HU3D_ATTR_DISPOFF); } var_r31->unk10 += var_f30; var_f31 = sin((M_PI * (90.0f * var_r31->unk10)) / 180.0); diff --git a/src/REL/m410Dll/game.c b/src/REL/m410Dll/game.c index 8a0010a8..303236d5 100644 --- a/src/REL/m410Dll/game.c +++ b/src/REL/m410Dll/game.c @@ -1064,7 +1064,7 @@ void fn_1_7138(omObjData *object) } var_r31->unk_1C.x = var_f31; if (var_r31->unk_00_field4) { - Hu3DModelAttrReset(object->model[var_r29], 0x40000002); + Hu3DModelAttrReset(object->model[var_r29], HU3D_MOTATTR_PAUSE); Hu3DMotionSpeedSet(object->model[var_r29], 4.0f); Hu3DMotionSet(object->model[var_r29], 0); Hu3DMotionClusterNoSet(object->model[var_r29], Hu3DData[object->model[var_r29]].unk_10[0], 0); diff --git a/src/REL/m411Dll/main.c b/src/REL/m411Dll/main.c index 0c45c86f..dd110cb4 100755 --- a/src/REL/m411Dll/main.c +++ b/src/REL/m411Dll/main.c @@ -693,7 +693,7 @@ s32 fn_1_20C8(void) } var_r30 = temp_r29->unk00; Hu3DModelCameraSet(var_r30, 1); - Hu3DModelAttrSet(var_r30, 0x40000040); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_SHAPE_LOOP); } temp_r29 = &var_r31->unkE4[0]; var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 51), MEMORY_DEFAULT_NUM, HEAP_DATA); @@ -769,7 +769,7 @@ void fn_1_25D0(void) Hu3DModelCameraSet(temp_r31->unk00, 1 << temp_r31->unk38); Hu3DModelPosSet(temp_r31->unk00, 0.0f, 0.0f, 0.0f); Hu3DModelRotSet(temp_r31->unk00, 0.0f, 0.0f, 0.0f); - Hu3DModelAttrSet(temp_r31->unk00, 0x4001); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); var_r28 = HuDataSelHeapReadNum(lbl_1_data_54[lbl_1_bss_E3C], MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk04 = Hu3DModelCreate(var_r28); var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M411, 14), MEMORY_DEFAULT_NUM, HEAP_DATA); @@ -868,7 +868,7 @@ void fn_1_25D0(void) if (lbl_1_bss_E40 == 0) { var_r28 = HuDataSelHeapReadNum(lbl_1_data_260[GWPlayerCfg[i].character], MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r31->unk20 = Hu3DModelCreate(var_r28); - Hu3DModelAttrSet(temp_r31->unk20, 0x800001); + Hu3DModelAttrSet(temp_r31->unk20, HU3D_ATTR_DISPOFF | HU3D_ATTR_CULL_FRONT); Hu3DModelCameraSet(temp_r31->unk20, 1); for (j = 0; j < 9; j++) { var_r28 = HuDataSelHeapReadNum((u8)lbl_1_data_280[j] + lbl_1_data_2A4[GWPlayerCfg[i].character], MEMORY_DEFAULT_NUM, HEAP_DATA); @@ -1236,9 +1236,9 @@ void fn_1_4454(void) HuPrcVSleep(); } Hu3DMotionSet(temp_r31->unk00, temp_r31->unk02[2]); - Hu3DModelAttrReset(temp_r31->unk00, 0x40000001); + Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); Hu3DMotionSet(var_r30->unk00, var_r30->unk02[2]); - Hu3DModelAttrReset(var_r30->unk00, 0x40000001); + Hu3DModelAttrReset(var_r30->unk00, HU3D_MOTATTR_LOOP); while (Hu3DMotionEndCheck(temp_r31->unk00) == 0) { HuPrcVSleep(); } diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c index 29fbbb80..23d757de 100644 --- a/src/REL/m412Dll/main.c +++ b/src/REL/m412Dll/main.c @@ -447,7 +447,7 @@ void fn_1_8BC(void) temp_r30->unk8 = var_r29 = Hu3DModelLink(var_r29); Hu3DModelLayerSet(var_r29, 0); Hu3DModelAttrSet(var_r29, HU3D_MOTATTR_LOOP); - Hu3DModelAttrSet(var_r29, 0x800001); + Hu3DModelAttrSet(var_r29, HU3D_ATTR_DISPOFF | HU3D_ATTR_CULL_FRONT); var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M412, 0x1D), MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r30->unkA = var_r29 = Hu3DModelCreate(var_r27); Hu3DModelLayerSet(var_r29, 3); @@ -783,9 +783,9 @@ loop_10: var_r29 = 0x3C; } if (var_r29 == lbl_1_data_348[temp_r31->unk28]) { - Hu3DModelAttrReset(temp_r31->unk0, 0x40000002); - Hu3DModelAttrReset(temp_r31->unk2, 0x40000002); - Hu3DModelAttrReset(temp_r31->unk4, 0x40000002); + Hu3DModelAttrReset(temp_r31->unk0, HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(temp_r31->unk2, HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(temp_r31->unk4, HU3D_MOTATTR_PAUSE); } if (var_r25 == Hu3DMotionTimeGet(temp_r31->unk0)) { temp_r31->unk20 = 1; @@ -823,8 +823,8 @@ loop_10: temp_r27 = &lbl_1_bss_4D4[var_r26]; Hu3DMotionSet(temp_r31->unk0, temp_r31->unkC[1]); Hu3DMotionSet(temp_r31->unk2, temp_r31->unkC[1]); - Hu3DModelAttrReset(temp_r31->unk0, 0x40000001); - Hu3DModelAttrReset(temp_r31->unk2, 0x40000001); + Hu3DModelAttrReset(temp_r31->unk0, HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(temp_r31->unk2, HU3D_MOTATTR_LOOP); var_r29 = Hu3DMotionMaxTimeGet(temp_r31->unk0); var_f24 = fn_1_1D08(atan2d(temp_r27->unk40.x - temp_r31->unk2C.x, temp_r27->unk40.z - temp_r31->unk2C.z)); temp_f18 = (temp_r27->unk40.x + (50.0 * sind(var_f24))); @@ -967,9 +967,9 @@ loop_1: HuPrcVSleep(); goto loop_1; } - Hu3DModelAttrReset(temp_r31->unk0, 0x40000002); + Hu3DModelAttrReset(temp_r31->unk0, HU3D_MOTATTR_PAUSE); Hu3DModelClusterAttrReset(temp_r31->unk0, 0, -0x3FFFFFFE); - Hu3DModelAttrReset(temp_r31->unk2, 0x40000002); + Hu3DModelAttrReset(temp_r31->unk2, HU3D_MOTATTR_PAUSE); Hu3DModelClusterAttrReset(temp_r31->unk2, 0, -0x3FFFFFFE); Hu3DModelAttrReset(temp_r31->unk6, HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(temp_r31->unk8, HU3D_ATTR_DISPOFF); @@ -1023,9 +1023,9 @@ loop_1: } temp_r27 = &lbl_1_bss_4D4[var_r26]; Hu3DMotionSet(temp_r31->unk0, temp_r31->unkC[3]); - Hu3DModelAttrReset(temp_r31->unk0, 0x40000001); + Hu3DModelAttrReset(temp_r31->unk0, HU3D_MOTATTR_LOOP); Hu3DMotionSet(temp_r31->unk2, temp_r31->unk16[3]); - Hu3DModelAttrReset(temp_r31->unk2, 0x40000001); + Hu3DModelAttrReset(temp_r31->unk2, HU3D_MOTATTR_LOOP); var_r29 = Hu3DMotionMaxTimeGet(temp_r31->unk0); var_f29 = fn_1_1D08(atan2d(temp_r27->unk40.x - temp_r31->unk2C.x, temp_r27->unk40.z - temp_r31->unk2C.z)); sp6C = (temp_r27->unk40.x + (50.0 * sind(var_f29))); @@ -1741,7 +1741,7 @@ loop_6: Hu3DModelPosSet(temp_r31->unkA, temp_r31->unk40.x + (100.0 * sind(lbl_1_bss_778)), 200.0f + temp_r31->unk40.y, temp_r31->unk40.z + (100.0 * cosd(lbl_1_bss_778))); Hu3DModelAttrReset(temp_r31->unkA, HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(temp_r31->unkA, 0x40000002); + Hu3DModelAttrReset(temp_r31->unkA, HU3D_MOTATTR_PAUSE); HuPrcSleep(10); Hu3DModelAttrSet(temp_r31->unk0, HU3D_MOTATTR_PAUSE); Hu3DModelAttrSet(temp_r31->unk2, HU3D_MOTATTR_PAUSE); @@ -2037,12 +2037,12 @@ void fn_1_ADC8(void) var_f31 = Hu3DMotionMaxTimeGet(lbl_1_bss_79E); for (; var_f31; var_r31++, var_f31--) { if (var_r31 == 0x33) { - Hu3DModelAttrReset(lbl_1_bss_798[0], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_798[0], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(lbl_1_bss_798[0], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(lbl_1_bss_798[0], 1465.0f, 770.0f, -2400.0f); } if (var_r31 == 0x47) { - Hu3DModelAttrReset(lbl_1_bss_798[1], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_798[1], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(lbl_1_bss_798[1], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(lbl_1_bss_798[1], 1531.0f, 773.0f, -2380.0f); } diff --git a/src/REL/m414Dll/main.c b/src/REL/m414Dll/main.c index 4a94fa5e..90983d59 100644 --- a/src/REL/m414Dll/main.c +++ b/src/REL/m414Dll/main.c @@ -687,7 +687,7 @@ void fn_1_1E04(void) Hu3DModelPosSet(var_r30, 2000.0f * (var_r28 % 2), 330.0f - (330.0f * (var_r29 & 1)), 2000.0f * (var_r28 / 2)); Hu3DModelRotSet(var_r30, 0.0f, 40.0f * ((var_r29 + 2) / 2), 0.0f); Hu3DModelAttrSet(var_r30, HU3D_ATTR_NOCULL); - Hu3DModelAttrSet(var_r30, 0x40000082); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_SHAPE_PAUSE); Hu3DMotionSpeedSet(var_r30, 3.0f); Hu3DMotionShapeSpeedSet(var_r30, 3.0f); } @@ -1070,7 +1070,7 @@ void fn_1_3ECC(void) HuAudFXPlay(1450); } } - Hu3DModelAttrReset(var_r31->unk_D4[var_r30], 0x40000186); + Hu3DModelAttrReset(var_r31->unk_D4[var_r30], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV | HU3D_MOTATTR_SHAPE_PAUSE | HU3D_MOTATTR_SHAPE_REV); do { var_r28 = lbl_1_bss_990[var_r30][var_r29++]; if (var_r29 >= 4) { @@ -1085,8 +1085,8 @@ void fn_1_3ECC(void) } } while (lbl_1_bss_98C != 5 && var_r31->unk_1F8 != -1 && lbl_1_bss_978 == lbl_1_bss_938[var_r31->unk_1F8]); - Hu3DModelAttrReset(var_r31->unk_D4[var_r30], 0x40000082); - Hu3DModelAttrSet(var_r31->unk_D4[var_r30], 0x40000104); + Hu3DModelAttrReset(var_r31->unk_D4[var_r30], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_SHAPE_PAUSE); + Hu3DModelAttrSet(var_r31->unk_D4[var_r30], HU3D_MOTATTR_REV | HU3D_MOTATTR_SHAPE_REV); HuPrcSleep(10); var_f30 = 40.0f * ((var_r30 + 2) / 2); if (var_r31->unk_70 - var_f30 >= 0.0f) { @@ -1768,14 +1768,14 @@ void fn_1_6644(void) var_r31->unk_1F8 = -1; Hu3DMotionSet(var_r31->unk_20, var_r31->unk_22[0]); Hu3DModelAttrSet(var_r31->unk_20, HU3D_MOTATTR_PAUSE); - Hu3DModelAttrReset(var_r31->unk_20, 0x40000004); + Hu3DModelAttrReset(var_r31->unk_20, HU3D_MOTATTR_REV); Hu3DMotionSpeedSet(var_r31->unk_20, 2.0f); } if (var_r31->unk_1F4 == 5 && Hu3DMotionEndCheck(var_r31->unk_20)) { var_r31->unk_1F4 = 2; var_r31->unk_1F8 = -1; Hu3DMotionSet(var_r31->unk_20, var_r31->unk_22[0]); - Hu3DModelAttrReset(var_r31->unk_20, 0x40000004); + Hu3DModelAttrReset(var_r31->unk_20, HU3D_MOTATTR_REV); Hu3DMotionTimeSet(var_r31->unk_20, Hu3DMotionMaxTimeGet(var_r31->unk_20)); Hu3DMotionSpeedSet(var_r31->unk_20, 2.0f); } @@ -1794,12 +1794,12 @@ void fn_1_6644(void) var_r31->unk_1F4 = 4; var_r31->unk_1F8 = var_r29; Hu3DMotionSet(var_r31->unk_20, var_r31->unk_22[1]); - Hu3DModelAttrReset(var_r31->unk_20, 0x40000006); + Hu3DModelAttrReset(var_r31->unk_20, HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); Hu3DMotionSpeedSet(var_r31->unk_20, 1.0f); var_r30 = HuPrcChildCreate(fn_1_6134, 8192, 8192, 0, HuPrcCurrentGet()); var_r30->user_data = var_r31; if (lbl_1_bss_978 == lbl_1_bss_938[var_r29] && fn_1_65DC(var_r31, var_r29)) { - Hu3DModelAttrReset(var_r31->unk_D4[var_r29], 0x40000186); + Hu3DModelAttrReset(var_r31->unk_D4[var_r29], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV | HU3D_MOTATTR_SHAPE_PAUSE | HU3D_MOTATTR_SHAPE_REV); var_r30 = HuPrcChildCreate(fn_1_42AC, 8192, 8192, 0, HuPrcCurrentGet()); var_r30->user_data = &sp8C; sp8C.unk_00 = var_r31; @@ -1812,15 +1812,15 @@ void fn_1_6644(void) } else { HuPrcSleep(10); - Hu3DModelAttrReset(var_r31->unk_D4[var_r29], 0x40000082); - Hu3DModelAttrSet(var_r31->unk_D4[var_r29], 0x40000104); + Hu3DModelAttrReset(var_r31->unk_D4[var_r29], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_SHAPE_PAUSE); + Hu3DModelAttrSet(var_r31->unk_D4[var_r29], HU3D_MOTATTR_REV | HU3D_MOTATTR_SHAPE_REV); HuPrcSleep(10); omVibrate(var_r31->unk_44, 12, 4, 2); var_r30 = HuPrcChildCreate(fn_1_1C48, 8192, 8192, 0, HuPrcCurrentGet()); var_r30->user_data = var_r31; fn_1_CD8(0, var_r31->unk_44, 5.0f); - Hu3DModelAttrSet(var_r31->unk_20, 0x40000004); + Hu3DModelAttrSet(var_r31->unk_20, HU3D_MOTATTR_REV); HuPrcSleep(10); if (var_r31->unk_44 & 1) { HuAudFXPlay(1444); @@ -1828,7 +1828,7 @@ void fn_1_6644(void) else { HuAudFXPlay(1443); } - Hu3DModelAttrReset(var_r31->unk_D4[var_r29], 0x40000004); + Hu3DModelAttrReset(var_r31->unk_D4[var_r29], HU3D_MOTATTR_REV); HuPrcSleep(10); } } @@ -1850,7 +1850,7 @@ void fn_1_6644(void) var_r30 = HuPrcChildCreate(fn_1_6134, 8192, 8192, 0, HuPrcCurrentGet()); var_r30->user_data = var_r31; if (lbl_1_bss_978 == lbl_1_bss_938[var_r29] && fn_1_65DC(var_r31, var_r29)) { - Hu3DModelAttrReset(var_r31->unk_D4[var_r29], 0x40000186); + Hu3DModelAttrReset(var_r31->unk_D4[var_r29], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV | HU3D_MOTATTR_SHAPE_PAUSE | HU3D_MOTATTR_SHAPE_REV); var_r30 = HuPrcChildCreate(fn_1_42AC, 8192, 8192, 0, HuPrcCurrentGet()); var_r30->user_data = &sp8C; sp8C.unk_00 = var_r31; @@ -1863,14 +1863,14 @@ void fn_1_6644(void) } else { HuPrcSleep(10); - Hu3DModelAttrReset(var_r31->unk_D4[var_r29], 0x40000082); - Hu3DModelAttrSet(var_r31->unk_D4[var_r29], 0x40000104); + Hu3DModelAttrReset(var_r31->unk_D4[var_r29], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_SHAPE_PAUSE); + Hu3DModelAttrSet(var_r31->unk_D4[var_r29], HU3D_MOTATTR_REV | HU3D_MOTATTR_SHAPE_REV); HuPrcSleep(10); omVibrate(var_r31->unk_44, 12, 4, 2); var_r30 = HuPrcChildCreate(fn_1_1C48, 8192, 8192, 0, HuPrcCurrentGet()); var_r30->user_data = var_r31; fn_1_CD8(0, var_r31->unk_44, 5.0f); - Hu3DModelAttrSet(var_r31->unk_20, 0x40000004); + Hu3DModelAttrSet(var_r31->unk_20, HU3D_MOTATTR_REV); HuPrcSleep(15); if (var_r31->unk_44 & 1) { HuAudFXPlay(1444); @@ -1878,7 +1878,7 @@ void fn_1_6644(void) else { HuAudFXPlay(1443); } - Hu3DModelAttrReset(var_r31->unk_D4[var_r29], 0x40000004); + Hu3DModelAttrReset(var_r31->unk_D4[var_r29], HU3D_MOTATTR_REV); HuPrcSleep(15); } } @@ -1886,17 +1886,17 @@ void fn_1_6644(void) } } if (fn_1_5554(var_r31->unk_44, 1) > 20 && (var_r31->unk_1F4 == 2 || var_r31->unk_1F4 == 0)) { - Hu3DModelAttrReset(var_r31->unk_20, 0x40000002); - Hu3DModelAttrSet(var_r31->unk_20, 0x40000004); + Hu3DModelAttrReset(var_r31->unk_20, HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(var_r31->unk_20, HU3D_MOTATTR_REV); var_r31->unk_1F4 = 3; - Hu3DModelAttrReset(var_r31->unk_12, 0x40000002); - Hu3DModelAttrSet(var_r31->unk_12, 0x40000004); + Hu3DModelAttrReset(var_r31->unk_12, HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(var_r31->unk_12, HU3D_MOTATTR_REV); Hu3DMotionSpeedSet(var_r31->unk_12, 2.0f); } if (fn_1_5554(var_r31->unk_44, 1) < -20 && (var_r31->unk_1F4 == 1 || var_r31->unk_1F4 == 0)) { - Hu3DModelAttrReset(var_r31->unk_20, 0x40000006); + Hu3DModelAttrReset(var_r31->unk_20, HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); var_r31->unk_1F4 = 3; - Hu3DModelAttrReset(var_r31->unk_12, 0x40000006); + Hu3DModelAttrReset(var_r31->unk_12, HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); Hu3DMotionSpeedSet(var_r31->unk_12, 2.0f); } if (!var_r31->unk_58) { @@ -2143,7 +2143,7 @@ void fn_1_7FC8(s32 arg0) for (var_r29 = 0; var_r29 < 4; var_r29++) { var_r31 = &lbl_1_bss_F0[var_r29]; CharModelMotionSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], var_r31->unk_14[5]); - Hu3DModelAttrReset(var_r31->unk_12, 0x40000001); + Hu3DModelAttrReset(var_r31->unk_12, HU3D_MOTATTR_LOOP); CharModelMotionTimeSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], 61.0f); CharModelMotionSpeedSet(lbl_1_data_30[GWPlayerCfg[var_r31->unk_44].character], 2.0f); } diff --git a/src/REL/m415Dll/main.c b/src/REL/m415Dll/main.c index a15069cf..b00701ff 100644 --- a/src/REL/m415Dll/main.c +++ b/src/REL/m415Dll/main.c @@ -1029,7 +1029,7 @@ void fn_1_3B44(omObjData *object) } else { if ((Hu3DMotionTimeGet(temp_r23) >= 10.0f) && (Hu3DMotionShiftIDGet(temp_r23) < 0)) { - Hu3DModelAttrSet(temp_r23, 0x40000004); + Hu3DModelAttrSet(temp_r23, HU3D_MOTATTR_REV); } } } diff --git a/src/REL/m416Dll/main.c b/src/REL/m416Dll/main.c index aa2666d5..591b8b64 100644 --- a/src/REL/m416Dll/main.c +++ b/src/REL/m416Dll/main.c @@ -752,7 +752,7 @@ void fn_1_1D84(omObjData *object) } temp_r28 = HU3D_MOTATTR_NONE; object->rot.y = fn_1_1C80(object->rot.y, 0, 0.2f); - Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); } break; } @@ -984,7 +984,7 @@ void fn_1_361C(omObjData *object) temp_r29->rot.y = object->rot.y; Hu3DModelObjPosGet(object->model[0], "test11_tex_we-itemhook-r", &temp_r29->pos); Hu3DModelHookReset(object->model[0]); - Hu3DModelAttrReset(object->model[1], 0x8000); + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_HOOK); Hu3DModelShadowReset(object->model[1]); Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); } diff --git a/src/REL/m420dll/map.c b/src/REL/m420dll/map.c index cb884fb4..14b48a41 100644 --- a/src/REL/m420dll/map.c +++ b/src/REL/m420dll/map.c @@ -508,8 +508,8 @@ void fn_1_5C8C(M420DllUnkMapStruct *arg0) Hu3DModelAttrReset(arg0->unk_10->unk_02, HU3D_ATTR_DISPOFF); Hu3DMotionStartEndSet(arg0->unk_00->unk_02, 0.0f, 30.0f); Hu3DMotionTimeSet(arg0->unk_00->unk_02, 0.0f); - Hu3DModelAttrReset(arg0->unk_00->unk_02, 0x40000002); - Hu3DModelAttrReset(arg0->unk_00->unk_02, 0x40000001); + Hu3DModelAttrReset(arg0->unk_00->unk_02, HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(arg0->unk_00->unk_02, HU3D_MOTATTR_LOOP); arg0->unk_34 = 3; arg0->unk_38 = 0; arg0->unk_24 = 0.8f; @@ -561,9 +561,9 @@ s32 fn_1_60F0(void) var_f30 = var_f31 - 5.0f; Hu3DMotionStartEndSet(lbl_1_bss_9F0[0xF], var_f30, var_f31); Hu3DMotionTimeSet(lbl_1_bss_9F0[0xF], var_f31); - Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], 0x40000002); - Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], 0x40000001); - Hu3DModelAttrSet(lbl_1_bss_9F0[0xF], 0x40000004); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(lbl_1_bss_9F0[0xF], HU3D_MOTATTR_REV); lbl_1_bss_B8 = 5; lbl_1_bss_BC += 1; if (lbl_1_bss_BC == 6) { @@ -582,9 +582,9 @@ void fn_1_6268(void) Hu3DMotionStartEndSet(lbl_1_bss_9F0[0xF], var_f31, var_f30); Hu3DMotionTimeSet(lbl_1_bss_9F0[0xF], var_f31); - Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], 0x40000002); - Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], 0x40000001); - Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], 0x40000004); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], HU3D_MOTATTR_REV); Hu3DMotionStartEndSet(lbl_1_bss_9F0[0x10], var_f31, var_f30); Hu3DMotionTimeSet(lbl_1_bss_9F0[0x10], var_f31); lbl_1_bss_BC = 0; @@ -606,9 +606,9 @@ void fn_1_63EC(void) Hu3DMotionStartEndSet(lbl_1_bss_9F0[0xF], var_f31, var_f30); Hu3DMotionTimeSet(lbl_1_bss_9F0[0xF], var_f31); - Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], 0x40000002); - Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], 0x40000001); - Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], 0x40000004); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(lbl_1_bss_9F0[0xF], HU3D_MOTATTR_REV); lbl_1_bss_BC = 0; lbl_1_bss_B8 = 0; } @@ -1205,7 +1205,7 @@ void fn_1_8414(void) Hu3DModelAttrSet(var_r31->unk_02, HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(var_r27->unk_02, HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(var_r27->unk_02, 0.0f); - Hu3DModelAttrReset(var_r27->unk_02, 0x40000002); + Hu3DModelAttrReset(var_r27->unk_02, HU3D_MOTATTR_PAUSE); Hu3DModelAttrSet(var_r27->unk_02, HU3D_MOTATTR_LOOP); HuPrcSleep(0x78); lbl_1_bss_A2C[3] = NULL; diff --git a/src/REL/m420dll/player.c b/src/REL/m420dll/player.c index 39c6a5ca..6b424066 100644 --- a/src/REL/m420dll/player.c +++ b/src/REL/m420dll/player.c @@ -330,9 +330,9 @@ void fn_1_22CC(M420DllPlayerStruct *arg0) CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[5]); Hu3DMotionStartEndSet(arg0->unk_AC, var_f31, var_f30); Hu3DMotionTimeSet(arg0->unk_AC, var_f31); - Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); - Hu3DModelAttrReset(arg0->unk_AC, 0x40000001); - Hu3DModelAttrReset(arg0->unk_AC, 0x40000004); + Hu3DModelAttrReset(arg0->unk_AC, HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(arg0->unk_AC, HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->unk_AC, HU3D_MOTATTR_REV); arg0->unk_5C[arg0->unk_50++] = 1; HuAudFXPlay(0x5F4); fn_1_60F0(); @@ -343,9 +343,9 @@ void fn_1_22CC(M420DllPlayerStruct *arg0) WAITMODECHG(arg0, 1); } else { - Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); - Hu3DModelAttrReset(arg0->unk_AC, 0x40000001); - Hu3DModelAttrSet(arg0->unk_AC, 0x40000004); + Hu3DModelAttrReset(arg0->unk_AC, HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(arg0->unk_AC, HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(arg0->unk_AC, HU3D_MOTATTR_REV); fn_1_63EC(); while (!Hu3DMotionEndCheck(arg0->unk_AC)) WAITMODECHG(arg0, 1); @@ -358,7 +358,7 @@ void fn_1_22CC(M420DllPlayerStruct *arg0) CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[5]); Hu3DMotionStartEndSet(arg0->unk_AC, var_f31, var_f30); Hu3DMotionTimeSet(arg0->unk_AC, var_f31); - Hu3DModelAttrReset(arg0->unk_AC, 0x40000001); + Hu3DModelAttrReset(arg0->unk_AC, HU3D_MOTATTR_LOOP); } break; default: @@ -464,14 +464,14 @@ void fn_1_276C(M420DllPlayerStruct *arg0) CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[4]); Hu3DMotionStartEndSet(arg0->unk_AC, var_f31, var_f30); Hu3DMotionTimeSet(arg0->unk_AC, var_f31); - Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); + Hu3DModelAttrReset(arg0->unk_AC, HU3D_MOTATTR_PAUSE); WAITMODECHG(arg0, 30); var_f31 = 60.0f; var_f30 = 70.0f; CharModelMotionSet(arg0->unk_0A, arg0->unk_AE[4]); Hu3DMotionStartEndSet(arg0->unk_AC, var_f31, var_f30); Hu3DMotionTimeSet(arg0->unk_AC, var_f31); - Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); + Hu3DModelAttrReset(arg0->unk_AC, HU3D_MOTATTR_PAUSE); WAITMODECHG(arg0, 30); break; @@ -511,9 +511,9 @@ void fn_1_2D7C(M420DllPlayerStruct *arg0) var_f31 = 30.0f; Hu3DMotionStartEndSet(arg0->unk_AC, var_f30, var_f31); Hu3DMotionTimeSet(arg0->unk_AC, var_f31); - Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); - Hu3DModelAttrReset(arg0->unk_AC, 0x40000001); - Hu3DModelAttrSet(arg0->unk_AC, 0x40000004); + Hu3DModelAttrReset(arg0->unk_AC, HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(arg0->unk_AC, HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(arg0->unk_AC, HU3D_MOTATTR_REV); HuAudFXPlay(0x5F6); fn_1_6268(); fn_1_5AA8(0, 22.5f); @@ -546,7 +546,7 @@ void fn_1_2EA8(M420DllPlayerStruct *arg0) CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[3], 0.0f, 1.0f, 0); var_r30 = fn_1_6660(); - Hu3DModelAttrReset(var_r30, 0x40000002); + Hu3DModelAttrReset(var_r30, HU3D_MOTATTR_PAUSE); Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); Hu3DMotionTimeSet(var_r30, 0.0f); { @@ -830,9 +830,9 @@ void fn_1_3970(M420DllPlayerStruct *arg0) } fn_1_3450(arg0); if (arg0->unk_4C == 0) { - Hu3DModelAttrReset(arg0->unk_AC, 0x40000002); - Hu3DModelAttrReset(arg0->unk_AC, 0x40000001); - Hu3DModelAttrSet(arg0->unk_AC, 0x40000004); + Hu3DModelAttrReset(arg0->unk_AC, HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(arg0->unk_AC, HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(arg0->unk_AC, HU3D_MOTATTR_REV); fn_1_63EC(); CharModelMotionShiftSet(arg0->unk_0A, arg0->unk_AE[6], 0.0f, 32.0f, 0); Hu3DMotionShiftStartEndSet(arg0->unk_AC, 0.0f, 59.0f); diff --git a/src/REL/m426Dll/main.c b/src/REL/m426Dll/main.c index 17ae5831..2e002155 100644 --- a/src/REL/m426Dll/main.c +++ b/src/REL/m426Dll/main.c @@ -2540,7 +2540,7 @@ s32 fn_1_6888(Vec *arg0) var_r31->unk_14 = arg0->z; Hu3DMotionTimeSet(var_r31->unk_00, 0.0f); Hu3DMotionSpeedSet(var_r31->unk_00, 0.5f); - Hu3DModelAttrSet(var_r31->unk_00, 0); + Hu3DModelAttrSet(var_r31->unk_00, HU3D_MOTATTR_NONE); Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_0C, var_r31->unk_10, var_r31->unk_14); Hu3DModelScaleSet(var_r31->unk_00, 1.0f, 1.0f, 1.0f); Hu3DModelAttrReset(var_r31->unk_00, HU3D_ATTR_DISPOFF); diff --git a/src/REL/m429Dll/main.c b/src/REL/m429Dll/main.c index 10ef355d..c995e66a 100644 --- a/src/REL/m429Dll/main.c +++ b/src/REL/m429Dll/main.c @@ -1205,7 +1205,7 @@ void fn_1_33F8(omObjData *object) Hu3DModelCameraSet(object->model[temp_r29], 15); Hu3DModelAttrSet(object->model[temp_r29], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(object->model[temp_r29], HU3D_MOTATTR_LOOP); - Hu3DModelAttrReset(object->model[temp_r29], 0x40000002); + Hu3DModelAttrReset(object->model[temp_r29], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[temp_r29], 3); Hu3DModelPosSet(object->model[temp_r29], temp_r31->unk0.x, temp_r31->unk0.y, temp_r31->unk0.z); Hu3DModelRotSet(object->model[temp_r29], 0, 0, 0); @@ -1473,7 +1473,7 @@ void fn_1_50AC(Work8F68 *arg0, omObjData *arg1) arg0->unk28 = temp_r30->unk0; arg0->unkA4 = lbl_1_bss_2C[arg0->unk110 >> 1]++; arg0->unkA0 = (arg0->unk110 & 0x2) + arg0->unkA4; - Hu3DModelAttrReset(arg1->model[0], 0x40000001); + Hu3DModelAttrReset(arg1->model[0], HU3D_MOTATTR_LOOP); if (!arg0->unkA4) { arg0->unkA8 = 5; Hu3DMotionShiftSet(arg1->model[0], arg1->motion[5], 0, 10, HU3D_MOTATTR_NONE); @@ -1528,7 +1528,7 @@ void fn_1_54BC(Work8F68 *arg0, omObjData *arg1) else { arg0->unkAC = 9; } - Hu3DModelAttrSet(arg1->model[0], 0x40000201); + Hu3DModelAttrSet(arg1->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_OVL_LOOP); Hu3DMotionSet(arg1->model[0], arg1->motion[0]); Hu3DMotionOverlaySet(arg1->model[0], arg1->motion[arg0->unkAC]); } @@ -1913,8 +1913,8 @@ void fn_1_7D38(omObjData *object) Hu3DMotionSet(object->model[0], object->motion[6]); } Hu3DMotionTimeSet(object->model[0], Hu3DMotionMaxTimeGet(object->model[0]) - 1); - Hu3DModelAttrReset(object->model[0], 0x40000003); - Hu3DModelAttrSet(object->model[0], 0x40000004); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_REV); temp_r31->unk40.x = 0; temp_r31->unk40.z = 0; omSetRot(lbl_1_bss_1A0[temp_r31->unkA0], temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); @@ -1972,7 +1972,7 @@ void fn_1_7D38(omObjData *object) Hu3DModelPosSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], sp8.x, sp8.y, sp8.z); Hu3DModelRotSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0, lbl_1_bss_110, 0); Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], HU3D_MOTATTR_PAUSE); Hu3DModelAttrSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[1], HU3D_MOTATTR_LOOP); } } @@ -1993,7 +1993,7 @@ void fn_1_7D38(omObjData *object) temp_r31->unk9C++; temp_r31->unk5C = 0; if (temp_r31->unkA4 == 1) { - Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], 0x40000003); + Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DMotionSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], lbl_1_bss_1A0[temp_r31->unkA0]->motion[0]); HuAudFXPlay(1649); } @@ -2006,7 +2006,7 @@ void fn_1_7D38(omObjData *object) if (20.0f == temp_r31->unk5C) { temp_r31->unk60 = temp_r31->unk64; if (temp_r31->unkA4 == 0) { - Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], 0x40000003); + Hu3DModelAttrReset(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DMotionSet(lbl_1_bss_1A0[temp_r31->unkA0]->model[0], lbl_1_bss_1A0[temp_r31->unkA0]->motion[0]); HuAudFXPlay(1648); } @@ -2020,7 +2020,7 @@ void fn_1_7D38(omObjData *object) case 2007: if ((temp_r31->unk110 & 0x1) < lbl_1_bss_20) { temp_r31->unk9C = 2008; - Hu3DModelAttrReset(object->model[0], 0x40000004); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_REV); Hu3DMotionShiftSet(object->model[0], object->motion[3], 0, 8, HU3D_MOTATTR_NONE); } break; @@ -2185,7 +2185,7 @@ void fn_1_99F0(omObjData *object) Hu3DModelCameraSet(object->model[temp_r30], 15); Hu3DModelAttrSet(object->model[temp_r30], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(object->model[temp_r30], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrReset(object->model[temp_r30], 0x40000001); + Hu3DModelAttrReset(object->model[temp_r30], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(object->model[temp_r30], 3); Hu3DModelShadowSet(object->model[temp_r30]); } @@ -2537,8 +2537,8 @@ void fn_1_B8E0(omObjData *object) fn_1_1F58(100); lbl_1_bss_12C = 0; if (lbl_1_bss_28 >= 0) { - Hu3DModelAttrReset(object->model[0], 0x40000002); - Hu3DModelAttrReset(object->model[3], 0x40000002); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(object->model[3], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(object->model[3], HU3D_ATTR_DISPOFF); } } @@ -2555,7 +2555,7 @@ void fn_1_B8E0(omObjData *object) if (lbl_1_bss_28 >= 0 && 60.0f == lbl_1_bss_12C) { Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(object->model[4], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(object->model[4], 0x40000002); + Hu3DModelAttrReset(object->model[4], HU3D_MOTATTR_PAUSE); } if (60.0f < lbl_1_bss_12C && !MGSeqStatGet(lbl_1_bss_2FE)) { lbl_1_bss_2FE = -1; @@ -2713,38 +2713,38 @@ void fn_1_D5E8(omObjData *object) } object->model[0] = Hu3DModelCreateFile(lbl_1_bss_190->unk8[1]); Hu3DModelCameraSet(object->model[0], 15); - Hu3DModelAttrSet(object->model[0], 0x4001); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(object->model[0], 0); Hu3DModelShadowMapSet(object->model[0]); omSetTra(object, 0, 0, 0); omSetRot(object, 0, -90.0f * lbl_1_bss_34, 0); object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M429, 0x22)); Hu3DModelCameraSet(object->model[1], 15); - Hu3DModelAttrSet(object->model[1], 0x4001); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); Hu3DModelAttrSet(object->model[1], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[1], 0); Hu3DModelShadowMapSet(object->model[1]); Hu3DModelPosSet(object->model[1], 0, 0, 0); object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M429, 0x23)); Hu3DModelCameraSet(object->model[2], 15); - Hu3DModelAttrSet(object->model[2], 0x4001); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); Hu3DModelAttrSet(object->model[2], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[2], 0); Hu3DModelPosSet(object->model[2], 0, 0, 0); object->model[3] = Hu3DModelCreateFile(lbl_1_bss_190->unk8[2]); Hu3DModelCameraSet(object->model[3], 15); - Hu3DModelAttrSet(object->model[3], 0x4001); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); Hu3DModelAttrSet(object->model[3], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrReset(object->model[3], 0x40000001); + Hu3DModelAttrReset(object->model[3], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(object->model[3], 1); Hu3DModelPosSet(object->model[3], 0, 0, 0); Hu3DModelRotSet(object->model[3], 0, -90.0f * lbl_1_bss_34, 0); object->model[4] = Hu3DModelCreateFile(lbl_1_bss_190->unk8[3]); Hu3DModelCameraSet(object->model[4], 15); - Hu3DModelAttrSet(object->model[4], 0x4001); - Hu3DModelAttrSet(object->model[4], 0x40000003); + Hu3DModelAttrSet(object->model[4], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); + Hu3DModelAttrSet(object->model[4], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[4], 1); Hu3DModelPosSet(object->model[4], 0, 0, 0); Hu3DModelRotSet(object->model[4], 0, -90.0f * lbl_1_bss_34, 0); @@ -2847,7 +2847,7 @@ void ObjectSetup(void) } lbl_1_bss_1A = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M429, 0x2F)); Hu3DModelAttrSet(lbl_1_bss_1A, HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(lbl_1_bss_1A, 0x40000003); + Hu3DModelAttrSet(lbl_1_bss_1A, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); omMakeGroupEx(lbl_1_bss_33C, 3, 20); lbl_1_bss_198 = omGetGroupMemberListEx(lbl_1_bss_33C, 3); lbl_1_bss_1A8 = omAddObjEx(lbl_1_bss_33C, 104, 5, 0, -1, fn_1_31AC); diff --git a/src/REL/m431Dll/main.c b/src/REL/m431Dll/main.c index 594e6331..169ec28f 100644 --- a/src/REL/m431Dll/main.c +++ b/src/REL/m431Dll/main.c @@ -1379,7 +1379,7 @@ s16 fn_1_4B14(s16 arg0, s16 arg1, s16 *arg2) temp_r31->unk18 = 0; temp_r31->unk20 = 1; Hu3DMotionTimeSet(lbl_1_bss_2C->model[arg0 + 1], 0); - Hu3DModelAttrReset(lbl_1_bss_2C->model[arg0 + 1], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_2C->model[arg0 + 1], HU3D_MOTATTR_PAUSE); HuAudFXPlay(9); break; } diff --git a/src/REL/m431Dll/object.c b/src/REL/m431Dll/object.c index e02be14d..4bd1247c 100644 --- a/src/REL/m431Dll/object.c +++ b/src/REL/m431Dll/object.c @@ -2,7 +2,6 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" - #include "game/audio.h" #include "game/gamework_data.h" #include "game/minigame_seq.h" @@ -12,11 +11,9 @@ #include "game/sprite.h" #include "game/wipe.h" - #include "REL/m431Dll.h" #include "ext_math.h" - typedef struct bss_struct_62C { u8 unk0; float unk4; @@ -1215,7 +1212,7 @@ void fn_1_B18C(omObjData *object) } } else { - Hu3DModelAttrReset(object->model[0], 0x40000007); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); switch (temp_r31->unk0 & 0xC) { case 0: temp_r28 = HU3D_MOTATTR_PAUSE; diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index 82a43f93..91ee7c73 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -1672,8 +1672,8 @@ void fn_1_4724(omObjData *object) // var_r30->unk_138 = var_f31; // break; // case 5: -// Hu3DModelAttrReset(*var_r29->model, 0x40000001); -// Hu3DModelAttrSet(*var_r29->model, 0x40000004); +// Hu3DModelAttrReset(*var_r29->model, HU3D_MOTATTR_LOOP); +// Hu3DModelAttrSet(*var_r29->model, HU3D_MOTATTR_REV); // var_r29->func = fn_1_4F50; // var_r29->work[0] = 0xA; // var_r29->work[1] = 0; @@ -1789,7 +1789,7 @@ void fn_1_4724(omObjData *object) // var_r31->unk_02 = temp_r0; // if (temp_r0 == 0) { // HuAudFXEmiterPlay(0x700, var_r31 + 0x10); -// Hu3DModelAttrReset(*var_r30->model, 0x40000002); +// Hu3DModelAttrReset(*var_r30->model, HU3D_MOTATTR_PAUSE); // Hu3DModelAttrSet(*var_r30->model, HU3D_MOTATTR_LOOP); // var_r31->unk_1C = 0.0f; // var_r31->unk_00 = var_r31->unk_00 + 1; @@ -1852,8 +1852,8 @@ void fn_1_4724(omObjData *object) // var_r31->unk_34 = var_r31->unk_10; // var_r31->unk_38 = var_r31->unk_14; // var_r31->unk_3C = var_r31->unk_18; -// Hu3DModelAttrReset(*var_r30->model, 0x40000001); -// Hu3DModelAttrSet(*var_r30->model, 0x40000004); +// Hu3DModelAttrReset(*var_r30->model, HU3D_MOTATTR_LOOP); +// Hu3DModelAttrSet(*var_r30->model, HU3D_MOTATTR_REV); // var_r31->unk_44 = var_r31->unk_44 + 8.0f; // var_r31->unk_40 = 10.0 * sind(var_r31->unk_44); // var_r31->unk_48 = 10.0 * cosd(var_r31->unk_44); @@ -1877,15 +1877,15 @@ void fn_1_4724(omObjData *object) // case 8: // var_r31->unk_24 = 0.0f; // var_r31->unk_1C = 0.0f; -// Hu3DModelAttrReset(*var_r30->model, 0x40000001); -// Hu3DModelAttrSet(*var_r30->model, 0x40000004); +// Hu3DModelAttrReset(*var_r30->model, HU3D_MOTATTR_LOOP); +// Hu3DModelAttrSet(*var_r30->model, HU3D_MOTATTR_REV); // break; // case 9: // var_r31->unk_20 = fn_1_7EDC(var_r31->unk_20, 0.0f, 0.9f); // break; // case 10: // if (var_r31->unk_04 == 0) { -// Hu3DModelAttrReset(*var_r30->model, 0x40000006); +// Hu3DModelAttrReset(*var_r30->model, HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); // Hu3DMotionSet(*var_r30->model, var_r30->motion->unk_02); // Hu3DMotionSpeedSet(*var_r30->model, 1.0f); // Hu3DModelAttrSet(*var_r30->model, HU3D_MOTATTR_LOOP); diff --git a/src/REL/m440Dll/main.c b/src/REL/m440Dll/main.c index 2cb135b1..aa7c83dd 100644 --- a/src/REL/m440Dll/main.c +++ b/src/REL/m440Dll/main.c @@ -480,7 +480,7 @@ void fn_1_19B0(void) temp_f31 = 0.1f * ((((rand8() << 8) | rand8()) % 11) + 25); Hu3DModelScaleSet(lbl_1_bss_10[var_r31], temp_f31, temp_f31, temp_f31); Hu3DModelAttrReset(lbl_1_bss_10[var_r31], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(lbl_1_bss_10[var_r31], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_10[var_r31], HU3D_MOTATTR_PAUSE); } } @@ -613,7 +613,7 @@ void fn_1_2470(omObjData *arg0) arg0->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x07)); temp_r26 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M440, 0x01)); Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); - Hu3DModelAttrSet(arg0->model[2], 0x20000); + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_HILITE); Hu3DModelAttrSet(arg0->model[2], HU3D_MOTATTR_PAUSE); Hu3DModelAttrSet(temp_r26, HU3D_ATTR_DISPOFF); @@ -783,7 +783,7 @@ void fn_1_2D28(omObjData *object) temp_r31->rot.y = (360.0f * var_f31); break; case 0x3: - Hu3DModelAttrReset(object->model[3], 0x40000002); + Hu3DModelAttrReset(object->model[3], HU3D_MOTATTR_PAUSE); Hu3DMotionSpeedSet(object->model[3], 2.0f); if (lbl_1_data_F0[0] == 0) { HuAudFXPlay(0x711); @@ -864,7 +864,7 @@ void fn_1_3DD8(omObjData *object) sp8 = (unkStruct *)object->data; switch (lbl_1_data_EC[0]) { case 0: - Hu3DModelAttrReset(object->model[2], 0x40000002); + Hu3DModelAttrReset(object->model[2], HU3D_MOTATTR_PAUSE); lbl_1_data_EC[0]++; return; case 1: @@ -904,7 +904,7 @@ void fn_1_3DD8(omObjData *object) var_f31 = 0.1f * ((((rand8() << 8) | rand8()) % 11) + 0x19); Hu3DModelScaleSet(lbl_1_bss_10[var_r29], var_f31, var_f31, var_f31); Hu3DModelAttrReset(lbl_1_bss_10[var_r29], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(lbl_1_bss_10[var_r29], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_10[var_r29], HU3D_MOTATTR_PAUSE); } fn_1_45BC(object); fn_1_4EEC(7, 5); diff --git a/src/REL/m441Dll/main.c b/src/REL/m441Dll/main.c index d1a44ae5..fcb990a5 100644 --- a/src/REL/m441Dll/main.c +++ b/src/REL/m441Dll/main.c @@ -959,7 +959,7 @@ void fn_1_3C00(omObjData *object) work->unk98 = 2005; work->unk64.x = 10; work->unkE4 = 0; - Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 8, HU3D_MOTATTR_NONE); Hu3DMotionSet(object->model[1], object->motion[11]); HuAudFXEmiterPlay(1814, &work->unk4); @@ -968,7 +968,7 @@ void fn_1_3C00(omObjData *object) work->unk98 = 2005; work->unk64.x = 10; work->unkE4 = 0; - Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); Hu3DMotionShiftSet(object->model[0], object->motion[5], 0, 8, HU3D_MOTATTR_NONE); Hu3DMotionSet(object->model[1], object->motion[11]); HuAudFXEmiterPlay(1814, &work->unk4); @@ -1031,7 +1031,7 @@ void fn_1_40A8(omObjData *object) if (lbl_1_bss_4C->work[0] == 1002 && 90.0f < lbl_1_bss_28) { work->unk98++; work->unk64.x = 10.0f; - Hu3DModelAttrReset(object->model[0], 0x40000003); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DMotionShiftSet(object->model[0], object->motion[4], 0, 10, HU3D_MOTATTR_NONE); Hu3DMotionSet(object->model[1], object->motion[11]); HuAudFXEmiterPlay(1814, &work->unk4); @@ -1146,7 +1146,7 @@ void fn_1_40A8(omObjData *object) if (lbl_1_bss_4C->work[0] == 1007) { work->unk98++; work->unk64.x = 10.0f; - Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); Hu3DMotionShiftSet(object->model[0], object->motion[8], 0, 8, HU3D_MOTATTR_NONE); work->unk64.y = -90; fn_1_40A8InlineFunc(&pos3D, work->unk4.x, 250, work->unk4.z); @@ -1331,7 +1331,7 @@ void fn_1_53E8(omObjData *object) object->motion[i] = Hu3DJointMotionFile(object->model[1], lbl_1_data_2B0[i - 11]); } Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(object->model[1], 0x40000001); + Hu3DModelAttrReset(object->model[1], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(object->model[1], 2); Hu3DModelHookSet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 0), object->model[1]); object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x42)); @@ -1339,7 +1339,7 @@ void fn_1_53E8(omObjData *object) object->motion[i] = Hu3DJointMotionFile(object->model[2], lbl_1_data_2B8[i - 13]); } Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(object->model[2], 0x40000001); + Hu3DModelAttrReset(object->model[2], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(object->model[2], 2); Hu3DModelHookSet(object->model[0], CharModelHookNameGet(work->unkB4, 2, 4), object->model[2]); for (i = 0; i < 4; i++) { @@ -1571,7 +1571,7 @@ void fn_1_713C(omObjData *object) object->model[0] = mdlId; } Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(object->model[0], 0x40000003); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[0], 3); Hu3DModelShadowSet(object->model[0]); scale = &lbl_1_data_32C[object->work[0]]; @@ -1590,7 +1590,7 @@ void fn_1_713C(omObjData *object) Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unk30), 1); Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unk30), 4); } - Hu3DModelAttrReset(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); object->func = fn_1_5C04; } @@ -1744,7 +1744,7 @@ void fn_1_8518(omObjData *object) work->unk18.y = 6.0f; work->unk18.x = (frandf() * 60.0f) - 30.0f; Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(object->model[0], 0x40000003); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[0], 3); Hu3DModelShadowSet(object->model[0]); scale = &lbl_1_data_32C[object->work[0]]; @@ -1763,7 +1763,7 @@ void fn_1_8518(omObjData *object) Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(work->unk30), 1); Hu3DModelLayerSet(Hu3DParManModelIDGet(work->unk30), 4); } - Hu3DModelAttrReset(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); object->func = fn_1_803C; } @@ -1797,13 +1797,13 @@ s32 fn_1_8AA0(s32 arg0) } else { s16 model = Hu3DModelLink(lbl_1_bss_10[0]); - Hu3DModelAttrSet(model, 0x4001); - Hu3DModelAttrSet(model, 0x40000003); + Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); + Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(model, 1); Hu3DMotionTimeSet(model, Hu3DMotionMaxTimeGet(model) * frandf()); Hu3DModelPosSet(model, ((radius * sind(angle)) + (frandf() * 20.0f)) - 10, -60.0f, radius * cosd(angle)); Hu3DModelScaleSet(model, 2, 2, 2); - Hu3DModelAttrReset(model, 0x40000002); + Hu3DModelAttrReset(model, HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(model, HU3D_ATTR_DISPOFF); return 1; } @@ -2005,28 +2005,28 @@ void fn_1_9F40(omObjData *object) lbl_1_bss_24 = 0; object->work[0] = 1000; object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x38)); - Hu3DModelAttrSet(object->model[0], 0x4001); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[0], 0); Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); Hu3DModelShadowMapSet(object->model[0]); omSetTra(object, 0, -31, 0); object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x39)); - Hu3DModelAttrSet(object->model[1], 0x4001); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); Hu3DModelAttrSet(object->model[1], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[1], 0); Hu3DModelPosSet(object->model[1], 0, -31, 0); Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M441, 0x3A)); - Hu3DModelAttrSet(object->model[2], 0x4001); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); Hu3DModelAttrSet(object->model[2], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[2], 0); Hu3DModelPosSet(object->model[2], 0, -31, 0); Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); for (singleNo = 0; singleNo < 1; singleNo++) { lbl_1_bss_10[singleNo] = Hu3DModelCreateFile(lbl_1_data_368[singleNo]); - Hu3DModelAttrSet(lbl_1_bss_10[singleNo], 0x4001); - Hu3DModelAttrSet(lbl_1_bss_10[singleNo], 0x40000003); + Hu3DModelAttrSet(lbl_1_bss_10[singleNo], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); + Hu3DModelAttrSet(lbl_1_bss_10[singleNo], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); } for (i = 0, angleNo = 0; i < 30;) { if (fn_1_8AA0(angleNo++) != 0) { @@ -2082,7 +2082,7 @@ void ObjectSetup(void) lbl_1_bss_18[i] = 0; lbl_1_bss_12[i] = Hu3DModelCreateFile(lbl_1_data_314[i]); Hu3DModelAttrSet(lbl_1_bss_12[i], HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(lbl_1_bss_12[i], 0x40000003); + Hu3DModelAttrSet(lbl_1_bss_12[i], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); } for (i = 0; i < 20; i++) { fn_1_74F4(0); diff --git a/src/REL/m443Dll/player.c b/src/REL/m443Dll/player.c index d54072a6..a55b2d0c 100644 --- a/src/REL/m443Dll/player.c +++ b/src/REL/m443Dll/player.c @@ -804,7 +804,7 @@ void fn_1_7340(omObjData *object) if (temp_r31->unk78 >= 40000.0f) { if (temp_r31->unk7C >= 30.0f) { Hu3DMotionSpeedSet(object->model[2], 1.0f); - Hu3DModelAttrReset(object->model[2], 1U); + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); if (fn_1_42E4() == 2) { HuAudFXPlay(0x733); } @@ -987,7 +987,7 @@ void fn_1_8508(omObjData *object) temp_r31->unk14[var_r30] = -1; if (lbl_1_data_410[var_r30][0] != 0) { temp_r31->unk14[var_r30] = espEntry(lbl_1_data_410[var_r30][0], lbl_1_data_410[var_r30][1], 0); - espAttrSet(temp_r31->unk14[var_r30], 8); + espAttrSet(temp_r31->unk14[var_r30], HUSPR_ATTR_LINEAR); espDispOff(temp_r31->unk14[var_r30]); } } diff --git a/src/REL/m444dll/main.c b/src/REL/m444dll/main.c index d7312f98..4a2c8b7e 100644 --- a/src/REL/m444dll/main.c +++ b/src/REL/m444dll/main.c @@ -264,7 +264,7 @@ void fn_1_470(void) HuWinExAnimOut(temp_r30); HuWinExCleanup(temp_r30); HuWinComKeyReset(); - Hu3DModelAttrReset(lbl_1_bss_199C2[11], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_199C2[11], HU3D_MOTATTR_PAUSE); HuAudFXPlay(1854); Hu3DMotionShiftSet(lbl_1_bss_199C2[22], lbl_1_bss_1990E[24], 0, 10, HU3D_MOTATTR_LOOP); for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { @@ -286,7 +286,7 @@ void fn_1_470(void) } HuAudFXPlay(1856); fn_1_861C(0); - Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_199C2[9], HU3D_MOTATTR_PAUSE); HuAudFXPlay(1863); while (Hu3DMotionTimeGet(lbl_1_bss_199C2[9]) < lbl_1_data_140[0]) { HuPrcVSleep(); @@ -374,7 +374,7 @@ void fn_1_470(void) } Hu3DMotionShiftSet(lbl_1_bss_199C2[26], lbl_1_bss_1990E[27], 0, 10, HU3D_MOTATTR_LOOP); fn_1_861C(1); - Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_199C2[9], HU3D_MOTATTR_PAUSE); HuAudFXPlay(1862); CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, HU3D_MOTATTR_LOOP); for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { @@ -458,7 +458,7 @@ void fn_1_470(void) } Hu3DMotionShiftSet(lbl_1_bss_199C2[30], lbl_1_bss_1990E[31], 0, 10, HU3D_MOTATTR_LOOP); fn_1_861C(2); - Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_199C2[9], HU3D_MOTATTR_PAUSE); HuAudFXPlay(1862); CharModelMotionShiftSet(lbl_1_bss_2DA, lbl_1_bss_2C0[1], 0, 10, HU3D_MOTATTR_LOOP); for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { @@ -512,13 +512,13 @@ void fn_1_470(void) HuPrcVSleep(); } HuAudFXPlay(1862); - Hu3DModelAttrReset(lbl_1_bss_199C2[9], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_199C2[9], HU3D_MOTATTR_PAUSE); while (Hu3DMotionEndCheck(lbl_1_bss_199C2[9]) == 0) { HuPrcVSleep(); } - Hu3DModelAttrReset(lbl_1_bss_199C2[11], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_199C2[11], HU3D_MOTATTR_PAUSE); HuAudFXPlay(1855); - Hu3DModelAttrSet(lbl_1_bss_199C2[11], 0x40000004); + Hu3DModelAttrSet(lbl_1_bss_199C2[11], HU3D_MOTATTR_REV); while (Hu3DMotionTimeGet(lbl_1_bss_199C2[11]) > 0.0f) { if (Hu3DMotionTimeGet(lbl_1_bss_199C2[11]) == 25.0f) { HuAudFXPlay(1854); diff --git a/src/REL/m444dll/pinball.c b/src/REL/m444dll/pinball.c index 7b4873ec..5e77d561 100644 --- a/src/REL/m444dll/pinball.c +++ b/src/REL/m444dll/pinball.c @@ -173,7 +173,7 @@ s16 fn_1_8DD0(s16 arg0) float sp8 = 0; Hu3DMotionTimeSet(lbl_1_bss_199C2[9], lbl_1_data_258[arg0]); Hu3DModelAttrSet(lbl_1_bss_199C2[9], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrReset(lbl_1_bss_199C2[arg0 + 65], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_199C2[arg0 + 65], HU3D_MOTATTR_PAUSE); Hu3DMotionSpeedSet(lbl_1_bss_199C2[arg0 + 65], 0.1 * (-lbl_1_bss_1888.y - 14.0f) + 1.0); temp_r28 = 0; spC.z = spC.y = spC.x = 0; @@ -223,7 +223,7 @@ s16 fn_1_8DD0(s16 arg0) lbl_1_bss_18F0[lbl_1_bss_1884].y = -500; lbl_1_bss_18F0[lbl_1_bss_1884].z = 0; lbl_1_bss_1884++; - Hu3DModelAttrReset(lbl_1_bss_199C2[arg0 + 55], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_199C2[arg0 + 55], HU3D_MOTATTR_PAUSE); Hu3DMotionTimeSet(lbl_1_bss_199C2[arg0 + 55], 0); temp_r28 = 1; } diff --git a/src/REL/m445Dll/main.c b/src/REL/m445Dll/main.c index 2d4a8a0c..5056e81c 100755 --- a/src/REL/m445Dll/main.c +++ b/src/REL/m445Dll/main.c @@ -779,7 +779,7 @@ void fn_1_1C64(void) else { Hu3DMotionSet(temp_r31->unk00, temp_r31->unk02[1]); } - Hu3DModelAttrReset(temp_r31->unk00, 0x40000005); + Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); while (!Hu3DMotionEndCheck(temp_r31->unk00)) { temp_r31->unk44++; HuPrcVSleep(); @@ -801,7 +801,7 @@ void fn_1_1C64(void) Hu3DModelAttrSet(var_r25->unk28, HU3D_MOTATTR_PAUSE); if (temp_r31->unk14 == 6) { HuPrcSleep(12); - Hu3DModelAttrReset(var_r25->unk28, 0x40000006); + Hu3DModelAttrReset(var_r25->unk28, HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); if (temp_r31->unk38 != 0) { fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x758); } @@ -811,7 +811,7 @@ void fn_1_1C64(void) } if (temp_r31->unk14 == 7) { HuPrcSleep(11); - Hu3DModelAttrReset(var_r25->unk28, 0x40000006); + Hu3DModelAttrReset(var_r25->unk28, HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x754); Hu3DModelAttrReset(lbl_1_bss_6E0, HU3D_ATTR_DISPOFF); Hu3DMotionTimeSet(lbl_1_bss_6E0, 0.0f); @@ -827,10 +827,10 @@ void fn_1_1C64(void) else { fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x757); } - Hu3DModelAttrReset(var_r25->unk28, 0x40000006); + Hu3DModelAttrReset(var_r25->unk28, HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); if (lbl_1_data_260[temp_r31->unk14] > 1) { Hu3DMotionSet(var_r29->unk28, var_r29->unk08[temp_r31->unk0C + 1]); - Hu3DModelAttrReset(var_r29->unk28, 0x40000006); + Hu3DModelAttrReset(var_r29->unk28, HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); } } while (!Hu3DMotionEndCheck(var_r25->unk28)) { @@ -850,7 +850,7 @@ void fn_1_1C64(void) if (temp_r31->unk20[0] == 1) { temp_r31->unk20[0] = 2; Hu3DMotionSet(var_r25->unk28, var_r25->unk08[temp_r31->unk0C + 3]); - Hu3DModelAttrReset(var_r25->unk28, 0x40000001); + Hu3DModelAttrReset(var_r25->unk28, HU3D_MOTATTR_LOOP); if (temp_r31->unk38 != 0) { if (temp_r31->unk28 != 0) { fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x75C); @@ -871,7 +871,7 @@ void fn_1_1C64(void) if (temp_r31->unk20[1] == 1) { temp_r31->unk20[1] = 2; Hu3DMotionSet(var_r29->unk28, var_r29->unk08[temp_r31->unk0C + 3]); - Hu3DModelAttrReset(var_r29->unk28, 0x40000001); + Hu3DModelAttrReset(var_r29->unk28, HU3D_MOTATTR_LOOP); if (temp_r31->unk38 != 0) { if (temp_r31->unk2C != 0) { fn_1_4B8(temp_r31->unk48, temp_r31->unk4C, 0x75C); @@ -918,16 +918,16 @@ void fn_1_1C64(void) Hu3DMotionSet(var_r25->unk28, var_r25->unk08[temp_r31->unk0C + 1]); Hu3DMotionTimeSet(var_r25->unk28, Hu3DMotionMaxTimeGet(var_r25->unk28)); Hu3DMotionSpeedSet(var_r25->unk28, 2.0f); - Hu3DModelAttrSet(var_r25->unk28, 0x40000004); - Hu3DModelAttrReset(var_r25->unk28, 0x40000001); + Hu3DModelAttrSet(var_r25->unk28, HU3D_MOTATTR_REV); + Hu3DModelAttrReset(var_r25->unk28, HU3D_MOTATTR_LOOP); } if (lbl_1_data_260[temp_r31->unk14] > 1 && temp_r31->unk20[1] == 0) { var_r29->unk34 = 0; Hu3DMotionSet(var_r29->unk28, var_r29->unk08[temp_r31->unk0C + 1]); Hu3DMotionTimeSet(var_r29->unk28, Hu3DMotionMaxTimeGet(var_r29->unk28)); Hu3DMotionSpeedSet(var_r29->unk28, 2.0f); - Hu3DModelAttrSet(var_r29->unk28, 0x40000004); - Hu3DModelAttrReset(var_r29->unk28, 0x40000001); + Hu3DModelAttrSet(var_r29->unk28, HU3D_MOTATTR_REV); + Hu3DModelAttrReset(var_r29->unk28, HU3D_MOTATTR_LOOP); } if (lbl_1_data_260[temp_r31->unk14] > 1) { while (!Hu3DMotionEndCheck(var_r25->unk28) || !Hu3DMotionEndCheck(var_r29->unk28)) { @@ -944,14 +944,14 @@ void fn_1_1C64(void) if (lbl_1_data_260[temp_r31->unk14] > 1) { Hu3DMotionSpeedSet(var_r29->unk28, 1.0f); } - Hu3DModelAttrSet(temp_r31->unk00, 0x40000004); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_REV); if (temp_r31->unk14 == 6 && temp_r31->unk20[0] == 0) { HuPrcSleep(26); Hu3DMotionSet(var_r25->unk28, var_r25->unk08[temp_r31->unk0C + 1]); Hu3DMotionTimeSet(var_r25->unk28, Hu3DMotionMaxTimeGet(var_r25->unk28)); Hu3DMotionSpeedSet(var_r25->unk28, 2.0f); - Hu3DModelAttrSet(var_r25->unk28, 0x40000004); - Hu3DModelAttrReset(var_r25->unk28, 0x40000001); + Hu3DModelAttrSet(var_r25->unk28, HU3D_MOTATTR_REV); + Hu3DModelAttrReset(var_r25->unk28, HU3D_MOTATTR_LOOP); } while (!Hu3DMotionEndCheck(temp_r31->unk00)) { HuPrcVSleep(); @@ -1599,7 +1599,7 @@ void fn_1_6268(void) Hu3DMotionSet(temp_r31->unk00, temp_r31->unk08[4]); Hu3DMotionSpeedSet(temp_r31->unk00, 1.0f); } - Hu3DModelAttrReset(temp_r31->unk00, 0x40000001); + Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); HuPrcSleep(15); if (temp_r31->unk18 != 0) { fn_1_4B8(temp_r31->unk34, temp_r31->unk3C, 0x75F); @@ -1663,10 +1663,10 @@ void fn_1_6268(void) temp_r31->unk24 = 0; if (fn_1_520(temp_r31->unk18) == FALSE) { CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[0]); - Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_OVL_LOOP); if (lbl_1_bss_6DC < 5) { Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); - Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_OVL_LOOP); } } else { @@ -1694,7 +1694,7 @@ void fn_1_6268(void) lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); if (lbl_1_bss_6DC < 5) { Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); - Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_OVL_LOOP); } } else { @@ -1710,7 +1710,7 @@ void fn_1_6268(void) lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); if (lbl_1_bss_6DC < 5) { Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); - Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_OVL_LOOP); } } else { @@ -1725,7 +1725,7 @@ void fn_1_6268(void) CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk18].character], temp_r31->unk08[0], 0.0f, 0.0f, HU3D_MOTATTR_LOOP); if (lbl_1_bss_6DC < 5) { Hu3DMotionOverlaySet(temp_r31->unk00, temp_r31->unk08[4]); - Hu3DModelAttrSet(temp_r31->unk00, 0x40000200); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_OVL_LOOP); } } else { @@ -1923,7 +1923,7 @@ void fn_1_8320(void) HuPrcSleep(30); HuAudFXPlay(0x755); temp_r28 = lbl_1_bss_288[5].unk00; - Hu3DModelAttrReset(temp_r28, 0x40000003); + Hu3DModelAttrReset(temp_r28, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); while (!Hu3DMotionEndCheck(temp_r28)) { HuPrcVSleep(); } @@ -1982,7 +1982,7 @@ void fn_1_8320(void) else { Hu3DMotionSet(temp_r31->unk00, temp_r31->unk08[3]); } - Hu3DModelAttrReset(temp_r31->unk00, 0x40000001); + Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); } HuPrcSleep(20); for (i = 0; i < 2; i++) { diff --git a/src/REL/m446Dll/card.c b/src/REL/m446Dll/card.c index 769ad6a2..28b943a1 100644 --- a/src/REL/m446Dll/card.c +++ b/src/REL/m446Dll/card.c @@ -302,7 +302,7 @@ unkStruct4 *m446CardCreate(s32 arg0) Hu3DModelLayerSet(temp_r31->unkA[0], 0); temp_r31->unkA[1] = Hu3DModelCreateFile(lbl_1_rodata_6C[arg0]); Hu3DModelAmbSet(temp_r31->unkA[1], 1.0f, 1.0f, 1.0f); - Hu3DModelAttrSet(temp_r31->unkA[1], 0x40000001U); + Hu3DModelAttrSet(temp_r31->unkA[1], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(temp_r31->unkA[0], 0); fn_1_2A58(temp_r31); fn_1_2EC0(temp_r31, 1); diff --git a/src/REL/m446Dll/cursor.c b/src/REL/m446Dll/cursor.c index f183dfbf..088e6f9f 100644 --- a/src/REL/m446Dll/cursor.c +++ b/src/REL/m446Dll/cursor.c @@ -183,7 +183,7 @@ void fn_1_799C(unkStruct7 *arg0) if (arg0->unk8 == 0) { for (var_r30 = 0; var_r30 < 9; var_r30++) { - Hu3DModelAttrReset(arg0->unkC[var_r30 + 1], 0x40000002); + Hu3DModelAttrReset(arg0->unkC[var_r30 + 1], HU3D_MOTATTR_PAUSE); Hu3DMotionTimeSet(arg0->unkC[var_r30 + 1], 0.0f); } } diff --git a/src/REL/m446Dll/player.c b/src/REL/m446Dll/player.c index abd8e0fc..619176ae 100644 --- a/src/REL/m446Dll/player.c +++ b/src/REL/m446Dll/player.c @@ -257,7 +257,7 @@ unkStruct8 *m446PlayerCreate(s32 arg0, unkStruct6 *arg1) Hu3DModelShadowSet(var_r31->unk3C[0]); Hu3DModelShadowSet(var_r31->unk3C[1]); Hu3DModelPosSet(var_r31->unk3C[1], 0.0f, 100.0f, 0.0f); - Hu3DModelAttrReset(var_r31->unk3C[1], 0x40000001); + Hu3DModelAttrReset(var_r31->unk3C[1], HU3D_MOTATTR_LOOP); Hu3DModelAttrSet(var_r31->unk3C[1], HU3D_ATTR_DISPOFF); Hu3DModelPosSet(var_r31->unk3C[1], 2000.0f, 2000.0f, 2000.0f); fn_1_637C(var_r31, 0); @@ -762,7 +762,7 @@ void fn_1_6074(unkStruct8 *arg0) break; case 4: if (arg0->unk14 == 1) { - Hu3DModelAttrReset(arg0->unk3C[1], 0x40000001); + Hu3DModelAttrReset(arg0->unk3C[1], HU3D_MOTATTR_LOOP); } if (arg0->unk14++ < 0x1E) break; diff --git a/src/REL/m446Dll/stage.c b/src/REL/m446Dll/stage.c index 87fa0397..19f9d91f 100644 --- a/src/REL/m446Dll/stage.c +++ b/src/REL/m446Dll/stage.c @@ -122,9 +122,9 @@ unkStruct9 *m446StageCreate(void) Hu3DModelAttrSet(var_r31->unk0[4], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(var_r31->unk0[3], HU3D_MOTATTR_PAUSE); Hu3DModelAttrSet(var_r31->unk0[4], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrReset(var_r31->unk0[3], 0x40000001); - Hu3DModelAttrReset(var_r31->unk0[4], 0x40000001); - Hu3DModelAttrReset(var_r31->unk0[2], 0x40000001); + Hu3DModelAttrReset(var_r31->unk0[3], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(var_r31->unk0[4], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(var_r31->unk0[2], HU3D_MOTATTR_LOOP); for (var_r30 = 0; var_r30 < 3; var_r30++) { var_r31->unkA[var_r30] = Hu3DGLightCreateV(&lbl_1_data_460[var_r30].unk0, &lbl_1_data_460[var_r30].unkC, &lbl_1_data_460[var_r30].unk18); @@ -180,8 +180,8 @@ void fn_1_84AC(unkStruct9 *arg0) { Hu3DModelAttrReset(arg0->unk0[3], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(arg0->unk0[4], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(arg0->unk0[3], 0x40000002); - Hu3DModelAttrReset(arg0->unk0[4], 0x40000002); + Hu3DModelAttrReset(arg0->unk0[3], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(arg0->unk0[4], HU3D_MOTATTR_PAUSE); arg0->unk24 = 1; arg0->unk1C = 0; arg0->unk20 = 0; @@ -192,8 +192,8 @@ void fn_1_852C(unkStruct9 *arg0) { Hu3DModelAttrSet(arg0->unk0[3], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(arg0->unk0[4], HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(arg0->unk0[3], 0x40000002U); - Hu3DModelAttrSet(arg0->unk0[4], 0x40000002U); + Hu3DModelAttrSet(arg0->unk0[3], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(arg0->unk0[4], HU3D_MOTATTR_PAUSE); Hu3DMotionStartEndSet(arg0->unk0[2], 0.0f, 359.0f); Hu3DMotionStartEndSet(arg0->unk0[3], 0.0f, 119.0f); Hu3DMotionStartEndSet(arg0->unk0[4], 0.0f, 119.0f); diff --git a/src/REL/m447dll/player.c b/src/REL/m447dll/player.c index e004c77d..a4744d53 100755 --- a/src/REL/m447dll/player.c +++ b/src/REL/m447dll/player.c @@ -588,8 +588,8 @@ void fn_1_5520(UnkM447Struct_04 *arg0) arg0->unk20 = 6; /* fallthrough */ case 6: - Hu3DModelAttrReset(arg0->unk68, 0x40000002); - Hu3DModelAttrReset(arg0->unk68, 0x40000001); + Hu3DModelAttrReset(arg0->unk68, HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(arg0->unk68, HU3D_MOTATTR_LOOP); arg0->unk60 = 0; arg0->unk20 = 7; /* fallthrough */ @@ -613,7 +613,7 @@ void fn_1_5760(UnkM447Struct_04 *arg0) switch (arg0->unk20) { case 0: - Hu3DModelAttrReset(arg0->unk68, 0x40000001); + Hu3DModelAttrReset(arg0->unk68, HU3D_MOTATTR_LOOP); fn_1_71FC(arg0, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); arg0->unk60 = 0; arg0->unk20 = 1; diff --git a/src/REL/m447dll/stage.c b/src/REL/m447dll/stage.c index 4a71f38a..b0ac0d86 100755 --- a/src/REL/m447dll/stage.c +++ b/src/REL/m447dll/stage.c @@ -96,7 +96,7 @@ void fn_1_1F00(UnkM447Struct_06 *arg0, s32 arg1) s16 temp_r31; temp_r31 = arg0->unk00[arg1 + 3]; - Hu3DModelAttrReset(temp_r31, 0x40000002); + Hu3DModelAttrReset(temp_r31, HU3D_MOTATTR_PAUSE); Hu3DMotionTimeSet(temp_r31, 0.0f); Hu3DMotionStartEndSet(temp_r31, 0.0f, 40.0f); arg0->unk54[arg1] = 1; @@ -377,7 +377,7 @@ void fn_1_2A3C(UnkM447Struct_06 *arg0) temp_r29 = arg0->unk00[i + 16]; Hu3DModelPosSet(temp_r29, lbl_1_rodata_190[i].x, lbl_1_rodata_190[i].y, lbl_1_rodata_190[i].z); Hu3DMotionTimeSet(temp_r29, 0.0f); - Hu3DModelAttrReset(temp_r29, 0x40000001); + Hu3DModelAttrReset(temp_r29, HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(temp_r29, HU3D_ATTR_DISPOFF); } arg0->unk40 = 0; diff --git a/src/REL/m448Dll/main.c b/src/REL/m448Dll/main.c index 86a0d2a5..6c160d1c 100755 --- a/src/REL/m448Dll/main.c +++ b/src/REL/m448Dll/main.c @@ -1360,8 +1360,8 @@ void fn_1_7148(omObjData *arg0) case 1001: lbl_1_bss_84++; if (lbl_1_bss_84 == 1) { - Hu3DModelAttrReset(lbl_1_bss_88->model[1], 0x40000002); - Hu3DModelAttrReset(lbl_1_bss_88->model[2], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_88->model[1], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(lbl_1_bss_88->model[2], HU3D_MOTATTR_PAUSE); } if (lbl_1_bss_84 > 0 && lbl_1_bss_84 <= 40 && lbl_1_bss_84 % 10 == 0 && lbl_1_bss_9C[12].unk00 < 3) { lbl_1_bss_9C[12].unk04[lbl_1_bss_9C[12].unk00] = 0.0f; diff --git a/src/REL/m450Dll/main.c b/src/REL/m450Dll/main.c index 95a4b79a..47e3e47a 100644 --- a/src/REL/m450Dll/main.c +++ b/src/REL/m450Dll/main.c @@ -2918,7 +2918,7 @@ void fn_1_AD58(omObjData *object) omSetSca(object, 1.0f, 1.0f, 1.0f); Hu3DModelScaleSet(object->model[1], 1.5f, 1.5f, 1.5f); Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(object->model[1], 0x40000002); + Hu3DModelAttrReset(object->model[1], HU3D_MOTATTR_PAUSE); Hu3DModelHookSet(object->model[1], "g000i00-itemhook_A", object->model[0]); var_r31->unk_00.unk_6C.x = 0.0f; var_r31->unk_00.unk_6C.y = 3000.0f; @@ -2979,7 +2979,7 @@ void fn_1_AD58(omObjData *object) var_r31->unk_154 |= 0x10; fn_1_AAB0(var_r31, var_r31->unk_C8, 0); fn_1_17970(object->model[0], object->model[1], var_r31->unk_00.unk_9C - 45.0f); - Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); Hu3DMotionShiftSet(object->model[0], object->motion[10], 0.0f, 8.0f, 0); } var_r31->unk_EC += 0.5f; @@ -3186,7 +3186,7 @@ void fn_1_AD58(omObjData *object) if ((var_r31->unk_154 & 0x10) == 0) { var_r31->unk_154 |= 0x10; fn_1_18424(object->model[0], &var_r31->unk_114); - Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); Hu3DMotionSet(object->model[0], object->motion[11]); } else if (((var_r31->unk_154 & 0x20) == 0) && (Hu3DMotionShiftIDGet(object->model[0]) < 0) @@ -3256,7 +3256,7 @@ void fn_1_AD58(omObjData *object) Hu3DModelScaleSet(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], 2.0f, 2.0f, 2.0f); Hu3DMotionTimeSet(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], 0.0f); Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], HU3D_MOTATTR_LOOP); - Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31->unk_10C + 2], HU3D_ATTR_DISPOFF); } } @@ -3347,9 +3347,9 @@ void fn_1_DBF0(omObjData *object) fn_1_2C1C(&var_r31->unk_00, object, 4, 9, lbl_1_data_18C, 0, &sp8, 0.0f); for (var_r29 = 0; var_r29 < 2; var_r29++) { object->model[var_r29] = Hu3DModelCreateFile(lbl_1_data_AC[var_r29]); - Hu3DModelAttrSet(object->model[var_r29], 0x4001); + Hu3DModelAttrSet(object->model[var_r29], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); Hu3DModelAttrSet(object->model[var_r29], HU3D_MOTATTR_LOOP); - Hu3DModelAttrReset(object->model[var_r29], 0x40000002); + Hu3DModelAttrReset(object->model[var_r29], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[var_r29], 3); Hu3DModelShadowSet(object->model[var_r29]); } @@ -3558,7 +3558,7 @@ void fn_1_EB6C(UnkM450Struct3 *arg0, omObjData *arg1) arg0->unk_108 = 19.6f; arg0->unk_E0 = 0.0f; Hu3DMotionSet(arg1->model[0], arg1->motion[6]); - Hu3DModelAttrReset(arg1->model[0], 0x40000001); + Hu3DModelAttrReset(arg1->model[0], HU3D_MOTATTR_LOOP); Hu3DModelAttrSet(arg1->model[0], HU3D_MOTATTR_PAUSE); Hu3DMotionTimeSet(arg1->model[0], 1.0f); arg0->unk_13C = Hu3DParManLink(lbl_1_bss_24, &lbl_1_data_1504); @@ -3663,7 +3663,7 @@ void fn_1_ED4C(omObjData *object) var_r31->unk_E8 = 360.0f * frandf(); var_r31->unk_154 |= 2; Hu3DModelAttrReset(object->model[4], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(object->model[4], 0x40000002); + Hu3DModelAttrReset(object->model[4], HU3D_MOTATTR_PAUSE); Hu3DModelHookSet(object->model[4], "g007i03-itemhook_M", object->model[0]); var_r31->unk_00.unk_6C.x = 0.0f; var_r31->unk_00.unk_6C.y = 3000.0f; @@ -3807,7 +3807,7 @@ void fn_1_ED4C(omObjData *object) var_r31->unk_108 = var_r31->unk_108 - 0.98f; if (1505.0f >= var_r31->unk_00.unk_6C.y) { var_r31->unk_00.unk_6C.y = 1505.0f; - Hu3DModelAttrReset(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); } } else if (((var_r31->unk_154 & 0x400) == 0) && (Hu3DMotionEndCheck(object->model[0]) != 0)) { @@ -3904,8 +3904,8 @@ void fn_1_11D5C(omObjData *object) var_r31->unk_00.unk_3C |= 0x1000; for (var_r29 = 0; var_r29 < 5; var_r29++) { object->model[var_r29] = Hu3DModelCreateFile(lbl_1_data_100[var_r29]); - Hu3DModelAttrSet(object->model[var_r29], 0x4001); - Hu3DModelAttrSet(object->model[var_r29], 0x40000003); + Hu3DModelAttrSet(object->model[var_r29], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); + Hu3DModelAttrSet(object->model[var_r29], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[var_r29], 3); Hu3DModelShadowSet(object->model[var_r29]); } @@ -3921,7 +3921,7 @@ void fn_1_11D5C(omObjData *object) object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], var_r26[var_r29]); } Hu3DMotionSet(object->model[0], object->motion[7]); - Hu3DModelAttrReset(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); if (object->work[0] == 0) { CharModelEffectNpcInit(object->model[0], object->motion[1], 0, 0xD); CharModelEffectNpcInit(object->model[0], object->motion[2], 1, 0xD); @@ -4065,7 +4065,7 @@ void fn_1_12688(omObjData *object) omSetSca(object, var_f31, var_f30, var_f31); Hu3DMotionTimeSet(object->model[0], 0.0f); Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); HuAudFXPlay(0x7C0); } } @@ -4082,9 +4082,9 @@ void fn_1_1291C(omObjData *object) omSetTra(object, 0.0f, 0.0f, 0.0f); omSetRot(object, 0.0f, 0.0f, 0.0f); object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M450, 0x22)); - Hu3DModelAttrSet(object->model[0], 0x4001); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(object->model[0], 1); object->func = fn_1_12688; } @@ -4512,7 +4512,7 @@ void fn_1_12A1C(omObjData *object) omSetTra(object, var_f31, 1380.0f, var_f30); Hu3DMotionTimeSet(object->model[0], 0.0f); Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); } } } @@ -4533,9 +4533,9 @@ void fn_1_12B80(omObjData *object) omSetRot(object, 0.0f, 0.0f, 0.0f); object->model[0] = fn_1_46C(DATA_MAKE_NUM(DATADIR_M450, 0x23)); - Hu3DModelAttrSet(object->model[0], 0x4001); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(object->model[0], 1); object->func = fn_1_12A1C; } @@ -4565,7 +4565,7 @@ void fn_1_12E5C(s32 var_r30, s32 var_r29, s32 var_r31) Hu3DModelScaleSet( lbl_1_bss_1A0->model[var_r31], 1.0f, 1.0f, VECDistance(&lbl_1_data_1450[var_r30].unk_04, &lbl_1_data_1450[var_r29].unk_04) / 1000.0f); Hu3DMotionTimeSet(lbl_1_bss_1A0->model[var_r31], 0.0f); - Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31], 0x40000003); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31], HU3D_ATTR_DISPOFF); } @@ -4573,7 +4573,7 @@ void fn_1_130A4(Vec *arg0, s32 var_r30) { Hu3DModelPosSet(lbl_1_bss_1A0->model[var_r30], arg0->x, arg0->y, arg0->z); Hu3DMotionTimeSet(lbl_1_bss_1A0->model[var_r30], 0.0f); - Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r30], 0x40000003); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r30], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r30], HU3D_ATTR_DISPOFF); HuAudFXPlay(0x7B7); } @@ -4984,9 +4984,9 @@ void fn_1_15308(omObjData *object) omSetRot(object, 0.0f, 0.0f, 0.0f); for (var_r30 = 0; var_r30 < 0x21; var_r30++) { object->model[var_r30] = Hu3DModelCreateFile(lbl_1_data_E7C[var_r30]); - Hu3DModelAttrSet(object->model[var_r30], 0x4001); + Hu3DModelAttrSet(object->model[var_r30], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); Hu3DModelAttrSet(object->model[var_r30], HU3D_MOTATTR_LOOP); - Hu3DModelAttrReset(object->model[var_r30], 0x40000002); + Hu3DModelAttrReset(object->model[var_r30], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[var_r30], 0); Hu3DModelPosSet(object->model[var_r30], 0.0f, 0.0f, 0.0f); Hu3DModelRotSet(object->model[var_r30], 0.0f, 0.0f, 0.0f); @@ -5022,7 +5022,7 @@ void fn_1_15308(omObjData *object) Hu3DModelAttrReset(object->model[19], HU3D_ATTR_DISPOFF); for (var_r30 = 0; var_r30 < 5; var_r30++) { Hu3DModelAttrSet(object->model[var_r30 + 0x14], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrReset(object->model[var_r30 + 0x14], 0x40000001); + Hu3DModelAttrReset(object->model[var_r30 + 0x14], HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(object->model[var_r30 + 0x14], HU3D_ATTR_DISPOFF); } object->func = fn_1_14CE8; @@ -5269,7 +5269,7 @@ void fn_1_16910(omObjData *object) } for (var_r27 = 0; var_r27 < 2; var_r27++) { Hu3DModelAttrSet(object->model[var_r27], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(object->model[var_r27], 0x40000003); + Hu3DModelAttrReset(object->model[var_r27], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[var_r27], 4); Hu3DMotionTimeSet(object->model[var_r27], 0.0f); Hu3DModelPosSet(object->model[var_r27], var_r30->unk_00.x, var_r30->unk_00.y, var_r30->unk_00.z); @@ -5383,7 +5383,7 @@ void fn_1_171C4(omObjData *object) } Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); - Hu3DModelAttrReset(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(object->model[0], 4); omSetTra(object, var_r29->unk_00.x, var_r29->unk_00.y, var_r29->unk_00.z); omSetRot(object, 0.0f, 0.0f, 0.0f); @@ -5440,7 +5440,7 @@ void fn_1_17474(omObjData *object) var_r31->unk_00.z = sp80[2][3]; Hu3DModelHookObjReset(var_r31->unk_54, "g000m0-itemhook_R"); MTXIdentity(Hu3DData[object->model[0]].unk_F0); - Hu3DModelAttrReset(object->model[0], 0x8000); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_HOOK); } } var_r31->unk_0C = sp8; @@ -5521,7 +5521,7 @@ void fn_1_17970(s32 arg0, s32 arg1, float arg8) } Hu3DModelAttrSet(var_r31->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(var_r31->model[0], HU3D_MOTATTR_LOOP); - Hu3DModelAttrReset(var_r31->model[0], 0x40000002); + Hu3DModelAttrReset(var_r31->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(var_r31->model[0], 4); omSetTra(var_r31, 0.0f, 0.0f, 0.0f); omSetRot(var_r31, 0.0f, 0.0f, 0.0f); @@ -5556,7 +5556,7 @@ void fn_1_17BBC(omObjData *object) fn_1_1D18(var_r31->unk_54, "g000m0-itemhook_R", &var_r31->unk_00); Hu3DModelHookObjReset(var_r31->unk_54, "g000m0-itemhook_R"); MTXIdentity(Hu3DData[*object->model].unk_F0); - Hu3DModelAttrReset(*object->model, 0x8000); + Hu3DModelAttrReset(*object->model, HU3D_ATTR_HOOK); var_f31 = var_r31->unk_00.x - var_r31->unk_24.x; var_f30 = var_r31->unk_00.z - var_r31->unk_24.z; var_r31->unk_30.x = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)) / 2; @@ -5663,7 +5663,7 @@ void fn_1_18424(s32 arg0, Vec *arg1) } Hu3DModelAttrSet(var_r31->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(var_r31->model[0], HU3D_MOTATTR_LOOP); - Hu3DModelAttrReset(var_r31->model[0], 0x40000002); + Hu3DModelAttrReset(var_r31->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(var_r31->model[0], 4); omSetTra(var_r31, 0.0f, 0.0f, 0.0f); omSetRot(var_r31, 0.0f, 0.0f, 0.0f); @@ -5999,7 +5999,7 @@ void fn_1_19CE0(omObjData *object) } if (var_r31->unk_FC & 0x100) { var_r31->unk_FC |= 0x402; - Hu3DModelAttrReset(object->model[0], 0x40000001); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); Hu3DMotionSet(object->model[0], object->motion[14]); Hu3DMotionTimeSet(object->model[0], 48.0f); @@ -6015,7 +6015,7 @@ void fn_1_19CE0(omObjData *object) lbl_1_bss_1A0->model[var_r31->unk_110 + 2], var_r31->unk_00.unk_6C.x, var_r31->unk_00.unk_6C.y, 50.0f + var_r31->unk_00.unk_6C.z); Hu3DMotionTimeSet(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], 0.0f); Hu3DModelAttrSet(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], HU3D_MOTATTR_LOOP); - Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(lbl_1_bss_1A0->model[var_r31->unk_110 + 2], HU3D_ATTR_DISPOFF); } if (var_r31->unk_FC & 0x100000) { @@ -6332,7 +6332,7 @@ void fn_1_1B830(UnkM450Struct5 *arg0) lbl_1_data_1450[arg0->unk_108].unk_20 = 1; lbl_1_bss_B8[arg0->unk_10C++] = arg0->unk_108; Hu3DMotionTimeSet(lbl_1_bss_1A0->model[arg0->unk_108 + 0x14], 0.0f); - Hu3DModelAttrReset(lbl_1_bss_1A0->model[arg0->unk_108 + 0x14], 0x40000003); + Hu3DModelAttrReset(lbl_1_bss_1A0->model[arg0->unk_108 + 0x14], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); if (arg0->unk_10C == 2) { fn_1_12E5C(lbl_1_bss_B8[0], lbl_1_bss_B8[1], 25); HuAudFXPlay(0x7B4); @@ -6479,7 +6479,7 @@ s32 fn_1_1C898(UnkM450Struct5 *var_r31, omObjData *var_r30) if (var_r31->unk_FC & 0x40) { var_r31->unk_F8 += 1.0f; if (var_r31->unk_F8 == 15.0f) { - Hu3DModelAttrReset(var_r30->model[0], 0x40000002); + Hu3DModelAttrReset(var_r30->model[0], HU3D_MOTATTR_PAUSE); } if ((15.0f < var_r31->unk_F8) && (Hu3DMotionEndCheck(var_r30->model[0]) != 0)) { var_r31->unk_FC &= ~0x40; @@ -6490,7 +6490,7 @@ s32 fn_1_1C898(UnkM450Struct5 *var_r31, omObjData *var_r30) if (var_r31->unk_FC & 0x400) { var_r31->unk_F8 += 1.0f; if (var_r31->unk_F8 == 15.0f) { - Hu3DModelAttrReset(var_r30->model[0], 0x40000003); + Hu3DModelAttrReset(var_r30->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); } if ((15.0f < var_r31->unk_F8) && (Hu3DMotionEndCheck(var_r30->model[0]) != 0)) { var_r31->unk_FC &= ~0x400; @@ -6684,7 +6684,7 @@ void fn_1_1E150(omObjData *var_r29) if (sp70 != 0) { if (((var_r31->unk_FC & 0x80000) || (lbl_1_bss_304 < 0)) && (var_r31->unk_00.unk_38 == 0)) { var_r31->unk_118 = 0x7EB; - Hu3DModelAttrReset(*var_r29->model, 0x40000003); + Hu3DModelAttrReset(*var_r29->model, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DMotionShiftSet(*var_r29->model, var_r29->motion[22], 0.0f, 8.0f, 0); Hu3DModelAttrReset(*var_r29->model, HU3D_ATTR_DISPOFF); var_r29->func = fn_1_20170; @@ -7744,7 +7744,7 @@ void ObjectSetup(void) for (var_r31 = 0; var_r31 < 4; var_r31++) { lbl_1_bss_2C[var_r31] = Hu3DModelCreateFile(lbl_1_data_F5C[var_r31]); Hu3DModelAttrSet(lbl_1_bss_2C[var_r31], HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(lbl_1_bss_2C[var_r31], 0x40000003); + Hu3DModelAttrSet(lbl_1_bss_2C[var_r31], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); } lbl_1_bss_28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M450, 0x6C)); HuSprAnimLock(lbl_1_bss_28); diff --git a/src/REL/mgmodedll/mgmode.c b/src/REL/mgmodedll/mgmode.c index 0d7c22ee..28d8c990 100644 --- a/src/REL/mgmodedll/mgmode.c +++ b/src/REL/mgmodedll/mgmode.c @@ -300,7 +300,7 @@ void fn_1_DF0(void) } if (time == 20) { HuAudFXPlay(2173); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000006); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); } HuPrcVSleep(); } @@ -395,7 +395,7 @@ void fn_1_DF0(void) modelP = &Hu3DData[lbl_1_bss_2C80[9]]; posModel = modelP->pos; VECSubtract(&pos3D, &posModel, &pos2D); - Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000004); + Hu3DModelAttrSet(lbl_1_bss_2C80[9], HU3D_MOTATTR_REV); espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); HuAudFXPlay(2174); for (time = 0; time <= 20; time++) { @@ -442,8 +442,8 @@ s32 fn_1_1B0C(void) Hu3DModelAttrReset(lbl_1_bss_2C80[9], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000004); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_2C80[9], HU3D_MOTATTR_REV); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], HU3D_MOTATTR_PAUSE); espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); fn_1_25E74(lbl_1_bss_2CC); fn_1_25584(lbl_1_bss_2CE); @@ -495,7 +495,7 @@ exit: modelP = &Hu3DData[lbl_1_bss_2C80[9]]; posModel = modelP->pos; VECSubtract(&pos3D, &posModel, &pos2D); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000006); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); for (i = 0; i <= 20; i++) { if (i == 10) { HuAudFXPlay(2173); @@ -531,8 +531,8 @@ s32 fn_1_21C4(void) Hu3DModelAttrReset(lbl_1_bss_2C80[9], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000004); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_2C80[9], HU3D_MOTATTR_REV); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], HU3D_MOTATTR_PAUSE); espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); fn_1_25E74(lbl_1_bss_2CC); fn_1_25584(lbl_1_bss_2CE); @@ -585,7 +585,7 @@ exit: modelP = &Hu3DData[lbl_1_bss_2C80[9]]; posModel = modelP->pos; VECSubtract(&pos3D, &posModel, &pos2D); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000006); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); for (i = 0; i <= 20; i++) { if (i == 10) { HuAudFXPlay(2173); @@ -625,8 +625,8 @@ s32 fn_1_2940(void) Hu3DModelAttrReset(lbl_1_bss_2C80[9], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000004); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_2C80[9], HU3D_MOTATTR_REV); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], HU3D_MOTATTR_PAUSE); espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); fn_1_25E74(lbl_1_bss_2CC); fn_1_25584(lbl_1_bss_2CE); @@ -683,7 +683,7 @@ exit: modelP = &Hu3DData[lbl_1_bss_2C80[9]]; posModel = modelP->pos; VECSubtract(&pos3D, &posModel, &pos2D); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000006); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); for (i = 0; i <= 20; i++) { if (i == 10) { HuAudFXPlay(2173); @@ -719,8 +719,8 @@ s32 fn_1_3150(void) Hu3DModelAttrReset(lbl_1_bss_2C80[9], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrSet(lbl_1_bss_2C80[9], 0x40000004); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000002); + Hu3DModelAttrSet(lbl_1_bss_2C80[9], HU3D_MOTATTR_REV); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], HU3D_MOTATTR_PAUSE); espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); fn_1_25E74(lbl_1_bss_2CC); fn_1_25584(lbl_1_bss_2CE); @@ -774,7 +774,7 @@ exit: modelP = &Hu3DData[lbl_1_bss_2C80[9]]; posModel = modelP->pos; VECSubtract(&pos3D, &posModel, &pos2D); - Hu3DModelAttrReset(lbl_1_bss_2C80[9], 0x40000006); + Hu3DModelAttrReset(lbl_1_bss_2C80[9], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); for (i = 0; i <= 20; i++) { if (i == 10) { HuAudFXPlay(2173); diff --git a/src/REL/modeltestDll/main.c b/src/REL/modeltestDll/main.c index 6a31b39b..91b89102 100644 --- a/src/REL/modeltestDll/main.c +++ b/src/REL/modeltestDll/main.c @@ -245,7 +245,7 @@ void fn_1_29C(omObjData *arg0) lbl_1_bss_88A[var_r31][7] = CharModelMotionCreate(chrIdx, lbl_1_data_0[7]); lbl_1_bss_88A[var_r31][0] = CharModelMotionCreate(chrIdx, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x4D)); CharModelMotionSet(chrIdx, lbl_1_bss_88A[var_r31][0]); - Hu3DModelAttrSet(lbl_1_bss_98A[var_r31], 0x40000001U); + Hu3DModelAttrSet(lbl_1_bss_98A[var_r31], HU3D_MOTATTR_LOOP); Hu3DModelPosSet(lbl_1_bss_98A[var_r31], (var_r31 / 4 * 0xC8) - 100, 0.0f, -(var_r31 % 4) * 0x96); CharModelMotionDataClose(chrIdx); } @@ -263,7 +263,7 @@ void fn_1_29C(omObjData *arg0) var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M407, 0x1E)); temp_r27 = Hu3DJointMotion(var_r31, HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M407, 0x2F), MEMORY_DEFAULT_NUM, 2)); Hu3DMotionSet(var_r31, temp_r27); - Hu3DModelAttrSet(var_r31, 0x40000001U); + Hu3DModelAttrSet(var_r31, HU3D_MOTATTR_LOOP); for (var_r31 = 0; var_r31 < 10; ++var_r31) { if (var_r31 == 0) { @@ -274,8 +274,8 @@ void fn_1_29C(omObjData *arg0) } Hu3DModelShadowSet(lbl_1_bss_664[var_r31]); Hu3DModelPosSet(lbl_1_bss_664[var_r31], (((var_r31 / 5) * 0x1F4) + 0xC8), 0.0f, (-(var_r31 % 5) * 0x12C)); - Hu3DModelAttrSet(lbl_1_bss_664[var_r31], 0x4000U); - Hu3DModelAttrSet(lbl_1_bss_664[var_r31], 0x40000001U); + Hu3DModelAttrSet(lbl_1_bss_664[var_r31], HU3D_ATTR_NOCULL); + Hu3DModelAttrSet(lbl_1_bss_664[var_r31], HU3D_MOTATTR_LOOP); } temp_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_SAF, 0x13), MEMORY_DEFAULT_NUM, 2); temp_r28 = HuSprAnimRead(temp_r29); diff --git a/src/REL/modeltestDll/modeltest00.c b/src/REL/modeltestDll/modeltest00.c index 2f5eb8e1..36d9596b 100644 --- a/src/REL/modeltestDll/modeltest00.c +++ b/src/REL/modeltestDll/modeltest00.c @@ -199,7 +199,7 @@ void fn_1_46F0(void) Hu3DModelShadowSet(lbl_1_bss_9EC[var_r31]); lbl_1_bss_9AC[var_r31][0] = CharModelMotionCreate(var_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); CharModelMotionSet(var_r30, lbl_1_bss_9AC[var_r31][0]); - Hu3DModelAttrSet(lbl_1_bss_9EC[var_r31], 0x40000001U); + Hu3DModelAttrSet(lbl_1_bss_9EC[var_r31], HU3D_MOTATTR_LOOP); Hu3DModelCameraSet(lbl_1_bss_9EC[var_r31], lbl_1_data_358[var_r31]); Hu3DModelPosSet(lbl_1_bss_9EC[var_r31], ((( var_r31 / 4) * 200) - 100), 0.0f, (-( var_r31 % 4) * 150)); Hu3DModelPosSet(lbl_1_bss_9EC[var_r31], 0.0f, 0.0f, 0.0f); diff --git a/src/REL/modeltestDll/modeltest01.c b/src/REL/modeltestDll/modeltest01.c index 8f77b253..f9388244 100644 --- a/src/REL/modeltestDll/modeltest01.c +++ b/src/REL/modeltestDll/modeltest01.c @@ -299,9 +299,9 @@ void fn_1_5DA8(void) Hu3DModelAttrSet(sp16[2], HU3D_MOTATTR_LOOP); } else { - Hu3DModelAttrReset(sp16[0], 0x40000001); - Hu3DModelAttrReset(sp16[1], 0x40000001); - Hu3DModelAttrReset(sp16[2], 0x40000001); + Hu3DModelAttrReset(sp16[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(sp16[1], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(sp16[2], HU3D_MOTATTR_LOOP); } fn_1_69C8(temp_r28, sp16[0], 0); fn_1_69C8(temp_r28, sp16[1], 1); @@ -322,9 +322,9 @@ void fn_1_5DA8(void) Hu3DModelAttrSet(sp16[2], HU3D_MOTATTR_LOOP); } else { - Hu3DModelAttrReset(sp16[0], 0x40000001); - Hu3DModelAttrReset(sp16[1], 0x40000001); - Hu3DModelAttrReset(sp16[2], 0x40000001); + Hu3DModelAttrReset(sp16[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(sp16[1], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(sp16[2], HU3D_MOTATTR_LOOP); } fn_1_69C8(temp_r28, sp16[0], 0); fn_1_69C8(temp_r28, sp16[1], 1); @@ -340,9 +340,9 @@ void fn_1_5DA8(void) } else { if (temp_r30 != 3 && temp_r30 != 2) { - Hu3DModelAttrReset(sp16[0], 0x40000001); - Hu3DModelAttrReset(sp16[1], 0x40000001); - Hu3DModelAttrReset(sp16[2], 0x40000001); + Hu3DModelAttrReset(sp16[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(sp16[1], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(sp16[2], HU3D_MOTATTR_LOOP); } } } @@ -351,9 +351,9 @@ void fn_1_5DA8(void) Hu3DMotionSet(sp16[0], sp40[0][temp_r30]); Hu3DMotionSet(sp16[1], sp40[1][temp_r30]); Hu3DMotionSet(sp16[2], sp40[2][temp_r30]); - Hu3DModelAttrReset(sp16[0], 0x40000001); - Hu3DModelAttrReset(sp16[1], 0x40000001); - Hu3DModelAttrReset(sp16[2], 0x40000001); + Hu3DModelAttrReset(sp16[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(sp16[1], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(sp16[2], HU3D_MOTATTR_LOOP); for (temp_r29 = 0; temp_r29 <= 30; temp_r29++) { Hu3DModelPosSet(sp16[0], 0, sind(temp_r29 * 6.0f) * 150, 0); Hu3DModelPosSet(sp16[1], 0, sind(temp_r29 * 6.0f) * 150, 0); diff --git a/src/REL/modeseldll/filesel.c b/src/REL/modeseldll/filesel.c index d19a8592..7394daa6 100644 --- a/src/REL/modeseldll/filesel.c +++ b/src/REL/modeseldll/filesel.c @@ -626,10 +626,10 @@ void fn_1_5850(void) Hu3DMotionSet(lbl_1_bss_19A[index + 4], lbl_1_bss_16A[6]); Hu3DMotionSpeedSet(lbl_1_bss_19A[index + 4], 2.0f); if (param) { - Hu3DModelAttrReset(lbl_1_bss_19A[index + 4], 0x40000004); + Hu3DModelAttrReset(lbl_1_bss_19A[index + 4], HU3D_MOTATTR_REV); } else { - Hu3DModelAttrSet(lbl_1_bss_19A[index + 4], 0x40000004); + Hu3DModelAttrSet(lbl_1_bss_19A[index + 4], HU3D_MOTATTR_REV); Hu3DMotionTimeSet(lbl_1_bss_19A[index + 4], Hu3DMotionMaxTimeGet(lbl_1_bss_19A[6])); } for (i = 0; i < 10; i++) { diff --git a/src/REL/modeseldll/modesel.c b/src/REL/modeseldll/modesel.c index 13d41db6..7f9d1ae9 100644 --- a/src/REL/modeseldll/modesel.c +++ b/src/REL/modeseldll/modesel.c @@ -59,8 +59,8 @@ s32 fn_1_2490(void) HuPrcVSleep(); } HuPrcSleep(20); - Hu3DModelAttrReset(lbl_1_bss_19A[14], 0x40000002); - Hu3DModelAttrReset(lbl_1_bss_19A[15], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_19A[14], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(lbl_1_bss_19A[15], HU3D_MOTATTR_PAUSE); HuAudFXPlay(2093); HuPrcSleep(120); HuAudFXPlay(2095); @@ -153,7 +153,7 @@ s32 fn_1_2490(void) continue; } } - Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_19A[lbl_1_data_80[lbl_1_bss_80]], HU3D_MOTATTR_PAUSE); HuAudSeqAllFadeOut(1000); for (temp_r31 = 0; temp_r31 <= 20; temp_r31++) { temp_f31 = temp_r31 / 20.0f; @@ -197,7 +197,7 @@ s32 fn_1_2490(void) } HuPrcSleep(90); Hu3DFogSet(3000, 8000, 255, 255, 255); - Hu3DModelAttrReset(lbl_1_bss_19A[22], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_19A[22], HU3D_MOTATTR_PAUSE); HuPrcSleep(60); temp_f31 = 0; temp_f30 = 5; diff --git a/src/REL/mpexDll/mpex.c b/src/REL/mpexDll/mpex.c index 1dcc056a..0e255c6f 100644 --- a/src/REL/mpexDll/mpex.c +++ b/src/REL/mpexDll/mpex.c @@ -904,7 +904,7 @@ void fn_1_5530(void) } } } while (var_r31 != 4); - Hu3DModelAttrReset(lbl_1_bss_3B0.unk_00->model[5], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_3B0.unk_00->model[5], HU3D_MOTATTR_PAUSE); fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 2, 0xF, 1); fn_1_28E0(lbl_1_bss_2D8[0].unk_00, 1, sp14, 0.0f, 9.0f, 0.0f, 1, 0); fn_1_25C4(lbl_1_bss_2D8[0].unk_00, 1, 1, 0xF, 1); @@ -940,7 +940,7 @@ void fn_1_581C(void) fn_1_1B7D0(1); } while (lbl_1_bss_1B8[0].unk_04 != NULL); - Hu3DModelAttrReset(lbl_1_bss_3B0.unk_00->model[5], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_3B0.unk_00->model[5], HU3D_MOTATTR_PAUSE); fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 2, 0xF, 1); fn_1_28E0(lbl_1_bss_2D8[1].unk_00, 1, sp14, 0.0f, 9.0f, 0.0f, 1, 0); fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 1, 0xF, 1); diff --git a/src/REL/option/record.c b/src/REL/option/record.c index fc17d924..671f0793 100755 --- a/src/REL/option/record.c +++ b/src/REL/option/record.c @@ -342,7 +342,7 @@ static void StartSystemMotion(omObjData *object, s32 type) Hu3DMotionTimeSet(model, 6.0f); break; } - Hu3DModelAttrReset(object->model[0], 0x40000002); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); } static omObjData *CreateHand(void) diff --git a/src/REL/option/rumble.c b/src/REL/option/rumble.c index 16d5ebc5..4a52323d 100755 --- a/src/REL/option/rumble.c +++ b/src/REL/option/rumble.c @@ -235,8 +235,8 @@ static void StartSystemMotion(omObjData *system, s32 rumbleF, BOOL slowF) { s16 model = system->model[0]; - Hu3DModelAttrReset(system->model[0], 0x40000002); - Hu3DModelAttrReset(system->model[0], 0x40000001); + Hu3DModelAttrReset(system->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(system->model[0], HU3D_MOTATTR_LOOP); if (rumbleF) { Hu3DMotionStartEndSet(model, 60.0f, 120.0f); if (slowF) { @@ -279,12 +279,12 @@ static void KillPad(omObjData *pad) static void ShakePad(omObjData *pad, BOOL on) { if (on) { - Hu3DModelAttrReset(pad->model[0], 0x40000002); + Hu3DModelAttrReset(pad->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelAttrSet(pad->model[0], HU3D_MOTATTR_LOOP); } else { Hu3DModelAttrSet(pad->model[0], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrReset(pad->model[0], 0x40000001); + Hu3DModelAttrReset(pad->model[0], HU3D_MOTATTR_LOOP); } } @@ -316,8 +316,8 @@ void OptionRumbleMotionShowStart(omObjData *object) Hu3DMotionStartEndSet(model, 0.0f, 40.0f); Hu3DMotionTimeSet(model, 0.0f); - Hu3DModelAttrReset(work->padFilter->model[0], 0x40000002); - Hu3DModelAttrReset(work->padFilter->model[0], 0x40000001); + Hu3DModelAttrReset(work->padFilter->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(work->padFilter->model[0], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(work->padFilter->model[0], 2); HuAudFXPlay(0x83D); } @@ -329,8 +329,8 @@ void OptionRumbleMotionHideStart(omObjData *object) Hu3DMotionStartEndSet(model, 40.0f, 80.0f); Hu3DMotionTimeSet(model, 40.0f); - Hu3DModelAttrReset(work->padFilter->model[0], 0x40000002); - Hu3DModelAttrReset(work->padFilter->model[0], 0x40000001); + Hu3DModelAttrReset(work->padFilter->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(work->padFilter->model[0], HU3D_MOTATTR_LOOP); HuAudFXPlay(0x83E); } diff --git a/src/REL/option/sound.c b/src/REL/option/sound.c index e859c58e..733a353e 100755 --- a/src/REL/option/sound.c +++ b/src/REL/option/sound.c @@ -1535,7 +1535,7 @@ static omObjData *CreateNoteObj(s32 type) note->model[0] = Hu3DModelCreateFile(noteMdlTbl[type]); Hu3DModelAttrSet(note->model[0], HU3D_MOTATTR_LOOP); Hu3DModelLayerSet(note->model[0], 2); - Hu3DModelAttrReset(note->model[0], 2); + Hu3DModelAttrReset(note->model[0], HU3D_ATTR_ZWRITE_OFF); return note; } diff --git a/src/REL/resultDll/battle.c b/src/REL/resultDll/battle.c index f5130e05..c9441385 100644 --- a/src/REL/resultDll/battle.c +++ b/src/REL/resultDll/battle.c @@ -362,7 +362,7 @@ void fn_1_7544(void) HuPrcVSleep(); } for (i = 0; i < 4; i++) { - Hu3DModelAttrReset(lbl_1_bss_1A9C[i + 4], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_1A9C[i + 4], HU3D_MOTATTR_PAUSE); Hu3DMotionSpeedSet(lbl_1_bss_1A9C[i + 4], 1.5f); } HuPrcSleep(35); @@ -422,7 +422,7 @@ void fn_1_7544(void) HuPrcVSleep(); } HuAudFXPlay(828); - Hu3DModelAttrReset(lbl_1_bss_1A9C[10], 0x40000002); + Hu3DModelAttrReset(lbl_1_bss_1A9C[10], HU3D_MOTATTR_PAUSE); Hu3DModelPosSet(lbl_1_bss_1A9C[10], 0, 0, 200); for (i = 0; i < Hu3DMotionMaxTimeGet(lbl_1_bss_1A9C[10]); i++) { if (i > 10) { diff --git a/src/REL/selmenuDll/main.c b/src/REL/selmenuDll/main.c index 6b2c1a2f..fda7916f 100644 --- a/src/REL/selmenuDll/main.c +++ b/src/REL/selmenuDll/main.c @@ -553,7 +553,7 @@ static void SMCharInit(omObjData *object) void *data = HuDataSelHeapReadNum(charMdlTbl[i], MEMORY_DEFAULT_NUM, HEAP_DATA); charModelID[i] = Hu3DModelCreate(data); Hu3DModelPosSet(charModelID[i], 0.0f, 0.0f, 0.0f); - Hu3DModelAttrSet(charModelID[i], 0x40000001); + Hu3DModelAttrSet(charModelID[i], HU3D_MOTATTR_LOOP); Hu3DMotionSet(charModelID[i], Hu3DJointMotionFile(charModelID[i], charMdlMotTbl[i])); } for (i = 0; i < 4; i++) { diff --git a/src/game/board/item.c b/src/game/board/item.c index 4309da32..df2f49b1 100755 --- a/src/game/board/item.c +++ b/src/game/board/item.c @@ -26,7 +26,6 @@ #include "game/window.h" #include "game/wipe.h" - #include "ext_math.h" typedef struct { @@ -561,7 +560,7 @@ static void ItemSizeSet(s32 arg0) HuPrcVSleep(); } } - Hu3DModelAttrReset(temp_r28, 0x40000002); + Hu3DModelAttrReset(temp_r28, HU3D_MOTATTR_PAUSE); BoardPlayerSizeSet(currItemRestore, arg0); } diff --git a/src/game/board/model.c b/src/game/board/model.c index d7ee3353..599f05e2 100644 --- a/src/game/board/model.c +++ b/src/game/board/model.c @@ -310,7 +310,7 @@ s32 BoardModelPassSet(s16 model, s32 pass) Hu3DModelAttrSet(model_ptr->id, HU3D_ATTR_ZWRITE_OFF); } else { - Hu3DModelAttrReset(model_ptr->id, 2); + Hu3DModelAttrReset(model_ptr->id, HU3D_ATTR_ZWRITE_OFF); } return 0; } @@ -456,7 +456,7 @@ s32 BoardModelMotionUpdateSet(s16 model, s32 flag) Hu3DModelAttrSet(model_ptr->id, HU3D_MOTATTR_LOOP); } else { - Hu3DModelAttrReset(model_ptr->id, 0x40000001); + Hu3DModelAttrReset(model_ptr->id, HU3D_MOTATTR_LOOP); } return 0; } @@ -513,7 +513,7 @@ s32 BoardModelMotionStart(s16 model, s32 motion, u32 attr) CharModelMotionTimeSet(model_ptr->character, model_ptr->mot_end); } } - Hu3DModelAttrReset(model_ptr->id, 0x40000003); + Hu3DModelAttrReset(model_ptr->id, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DModelAttrSet(model_ptr->id, attr); model_ptr->curr_mot = motion; return 0; diff --git a/src/game/board/player.c b/src/game/board/player.c index 3259ce6f..6f57f1ea 100644 --- a/src/game/board/player.c +++ b/src/game/board/player.c @@ -18,7 +18,6 @@ #include "game/objsub.h" #include "game/pad.h" - #include "math.h" #include "stdlib.h" @@ -2694,7 +2693,7 @@ void BoardPlayerResizeAnimExec(s32 player, s32 size) HuPrcVSleep(); } } - Hu3DModelAttrReset(modelid, 0x40000002); + Hu3DModelAttrReset(modelid, HU3D_MOTATTR_PAUSE); BoardPlayerSizeSet(player, size); } From cc68766f1dac44a10d3c9b605b90c0bc2267db19 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 4 Nov 2024 15:27:04 +0100 Subject: [PATCH 099/311] Applied wipe defines --- include/game/wipe.h | 3 +- src/REL/m406Dll/main.c | 53 +++-- src/REL/m409Dll/main.c | 4 +- src/REL/m412Dll/main.c | 6 +- src/REL/m414Dll/main.c | 8 +- src/REL/m415Dll/main.c | 8 +- src/REL/m417Dll/main.c | 5 +- src/REL/m420dll/main.c | 8 +- src/REL/m426Dll/main.c | 2 +- src/REL/m438Dll/main.c | 8 +- src/REL/m440Dll/main.c | 4 +- src/REL/m442Dll/main.c | 6 +- src/REL/m443Dll/main.c | 8 +- src/REL/m446Dll/main.c | 184 ++++++++++------- src/REL/m450Dll/main.c | 8 +- src/REL/m453Dll/main.c | 8 +- src/REL/mentDll/common.c | 433 +++++++++++++++++++++++---------------- src/REL/mentDll/main.c | 24 +-- src/REL/mpexDll/main.c | 2 +- src/REL/mpexDll/mpex.c | 14 +- src/REL/option/state.c | 2 +- src/REL/ztardll/main.c | 24 +-- 22 files changed, 478 insertions(+), 344 deletions(-) diff --git a/include/game/wipe.h b/include/game/wipe.h index 7d45a8cb..baafbe25 100644 --- a/include/game/wipe.h +++ b/include/game/wipe.h @@ -3,6 +3,7 @@ #include "dolphin.h" +#define WIPE_TYPE_PREV -1 #define WIPE_TYPE_NORMAL 0 #define WIPE_TYPE_CROSS 1 #define WIPE_TYPE_DUMMY 2 @@ -39,4 +40,4 @@ u8 WipeStatGet(void); extern WipeState wipeData; extern BOOL wipeFadeInF; -#endif \ No newline at end of file +#endif diff --git a/src/REL/m406Dll/main.c b/src/REL/m406Dll/main.c index 826eb1a5..6d70cd61 100644 --- a/src/REL/m406Dll/main.c +++ b/src/REL/m406Dll/main.c @@ -136,7 +136,7 @@ void ObjectSetup(void) lbl_1_bss_10 = -1; lbl_1_bss_C = -1; lbl_1_bss_8 = 0; - WipeCreate(1, 0, 60); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); lbl_1_bss_8 = 0; } @@ -185,7 +185,8 @@ void fn_1_40C(omObjData *object) if (var_r31 & 16 && lbl_1_bss_C == -1) { lbl_1_bss_C = HuAudSeqPlay(74); } - } else { + } + else { var_r31 = 0; } if (lbl_1_bss_24 == -1 || !var_r31) { @@ -209,8 +210,9 @@ void fn_1_40C(omObjData *object) Hu3DBGColorSet(0x40, 0x40, 0xFF); lbl_1_bss_1C = 5; lbl_1_bss_18 = 0; - } else { - WipeCreate(2, 0, 30); + } + else { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); WipeColorSet(0xFF, 0xFF, 0xFF); lbl_1_bss_8 = 1; lbl_1_bss_1C = 9; @@ -235,7 +237,7 @@ void fn_1_40C(omObjData *object) var_f31 = 1.0f; } fn_1_183C(var_f31); - WipeCreate(2, 0, 30); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); WipeColorSet(0xFF, 0xFF, 0xFF); lbl_1_bss_8 = 1; lbl_1_bss_1C = 7; @@ -250,7 +252,7 @@ void fn_1_40C(omObjData *object) fn_1_183C(var_f31); if (!WipeStatGet() && (lbl_1_bss_24 == -1 || !MGSeqStatGet(lbl_1_bss_24))) { lbl_1_bss_24 = -1; - WipeCreate(1, 0, 30); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); WipeColorSet(0xFF, 0xFF, 0xFF); lbl_1_bss_8 = 0; CRot.x = lbl_1_data_0.unk_54; @@ -274,7 +276,7 @@ void fn_1_40C(omObjData *object) case 9: if (!WipeStatGet() && (lbl_1_bss_24 == -1 || !MGSeqStatGet(lbl_1_bss_24))) { lbl_1_bss_24 = -1; - WipeCreate(1, 0, 30); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); WipeColorSet(0xFF, 0xFF, 0xFF); lbl_1_bss_8 = 0; CRot.x = lbl_1_data_0.unk_54; @@ -311,7 +313,8 @@ void fn_1_40C(omObjData *object) GWPlayerCoinWinAdd(lbl_1_bss_10, 10); lbl_1_bss_1C = 13; lbl_1_bss_18 = 0; - } else { + } + else { lbl_1_bss_24 = MGSeqCreate(3, 2); HuAudSStreamPlay(4); lbl_1_bss_1C = 13; @@ -321,7 +324,7 @@ void fn_1_40C(omObjData *object) case 13: if (++lbl_1_bss_18 >= 210.0f) { lbl_1_bss_24 = -1; - WipeCreate(2, 0, 60); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); lbl_1_bss_8 = 1; lbl_1_bss_1C = 14; lbl_1_bss_18 = 0; @@ -369,7 +372,7 @@ void fn_1_1168(omObjData *object) } if (var_r30) { if (!lbl_1_bss_8) { - WipeCreate(2, 0, 60); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); } lbl_1_bss_8 = 1; HuAudStreamFadeOut(30); @@ -410,7 +413,8 @@ void fn_1_12BC(void) lbl_1_bss_1C = 12; lbl_1_bss_18 = 0; } - } else if (lbl_1_bss_1C == 11) { + } + else if (lbl_1_bss_1C == 11) { lbl_1_bss_1C = 12; lbl_1_bss_18 = 0; } @@ -498,18 +502,21 @@ float fn_1_1BA8(float arg8, float arg9) if (arg8 >= 360.0f) { arg8 -= 360.0f; - } else if (arg8 < 0.0f) { + } + else if (arg8 < 0.0f) { arg8 += 360.0f; } if (arg9 >= 360.0f) { arg9 -= 360.0f; - } else if (arg9 < 0.0f) { + } + else if (arg9 < 0.0f) { arg9 += 360.0f; } var_f31 = arg8 - arg9; if (var_f31 <= -180.0f) { var_f31 += 360.0f; - } else if (var_f31 >= 180.0f) { + } + else if (var_f31 >= 180.0f) { var_f31 -= 360.0f; } return var_f31; @@ -522,12 +529,14 @@ float fn_1_1CC0(float arg8, float arg9, float argA) if (arg8 >= 360.0) { arg8 -= 360.0; - } else if (arg8 < 0.0) { + } + else if (arg8 < 0.0) { arg8 += 360.0; } if (arg9 >= 360.0) { arg9 -= 360.0; - } else if (arg9 < 0.0) { + } + else if (arg9 < 0.0) { arg9 += 360.0; } var_f30 = 360.0 + (arg8 - arg9); @@ -537,18 +546,22 @@ float fn_1_1CC0(float arg8, float arg9, float argA) if (var_f30 < 180.0) { if (var_f30 <= argA) { var_f31 = var_f30; - } else { + } + else { var_f31 = argA; } - } else if (360.0 - var_f30 <= argA) { + } + else if (360.0 - var_f30 <= argA) { var_f31 = -(360.0 - var_f30); - } else { + } + else { var_f31 = -argA; } var_f31 += arg9; if (var_f31 >= 360.0) { var_f31 -= 360.0; - } else if (var_f31 < 0.0) { + } + else if (var_f31 < 0.0) { var_f31 += 360.0; } return var_f31; diff --git a/src/REL/m409Dll/main.c b/src/REL/m409Dll/main.c index 179da3b0..e41a1130 100644 --- a/src/REL/m409Dll/main.c +++ b/src/REL/m409Dll/main.c @@ -103,7 +103,7 @@ void fn_1_434(omObjData *object) HuAudFXListnerKill(); fn_1_5F5C(lbl_1_bss_E0->model[0]); fn_1_5F5C(lbl_1_bss_E0->model[1]); - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); MGSeqKillAll(); object->func = fn_1_4DC; } @@ -223,7 +223,7 @@ void fn_1_F70(omObjData *object) case 1: if (lbl_1_bss_6 == 0) { lbl_1_bss_6 = 1; - WipeCreate(1, 0, 0x3C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x3C); } if (WipeStatGet() == 0) { fn_1_2414(7, 2); diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c index 23d757de..05a6ac98 100644 --- a/src/REL/m412Dll/main.c +++ b/src/REL/m412Dll/main.c @@ -103,7 +103,7 @@ void ObjectSetup(void) Hu3DBGColorSet(0U, 0U, 0U); fn_1_8BC(); HuPrcChildCreate(fn_1_B1C0, 0x1000U, 0x2000U, 0, HuPrcCurrentGet()); - WipeCreate(1, 0, 0x3C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); } void *fn_1_6EC(f32 arg8, f32 arg9, f32 argA, s32 arg0) @@ -2081,7 +2081,7 @@ void fn_1_B160(void) while (1) { if (omSysExitReq != 1) break; - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); HuAudFadeOut(0x3E8); HuPrcSleep(0x3C); MGSeqKillAll(); @@ -2178,7 +2178,7 @@ void fn_1_B1C0(void) temp_r30 = MGSeqCreate(3, 2); } HuPrcSleep(0xD2); - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); HuPrcSleep(0x3C); HuAudFadeOut(1); MGSeqKillAll(); diff --git a/src/REL/m414Dll/main.c b/src/REL/m414Dll/main.c index 90983d59..8e6cad03 100644 --- a/src/REL/m414Dll/main.c +++ b/src/REL/m414Dll/main.c @@ -1799,7 +1799,8 @@ void fn_1_6644(void) var_r30 = HuPrcChildCreate(fn_1_6134, 8192, 8192, 0, HuPrcCurrentGet()); var_r30->user_data = var_r31; if (lbl_1_bss_978 == lbl_1_bss_938[var_r29] && fn_1_65DC(var_r31, var_r29)) { - Hu3DModelAttrReset(var_r31->unk_D4[var_r29], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV | HU3D_MOTATTR_SHAPE_PAUSE | HU3D_MOTATTR_SHAPE_REV); + Hu3DModelAttrReset( + var_r31->unk_D4[var_r29], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV | HU3D_MOTATTR_SHAPE_PAUSE | HU3D_MOTATTR_SHAPE_REV); var_r30 = HuPrcChildCreate(fn_1_42AC, 8192, 8192, 0, HuPrcCurrentGet()); var_r30->user_data = &sp8C; sp8C.unk_00 = var_r31; @@ -1850,7 +1851,8 @@ void fn_1_6644(void) var_r30 = HuPrcChildCreate(fn_1_6134, 8192, 8192, 0, HuPrcCurrentGet()); var_r30->user_data = var_r31; if (lbl_1_bss_978 == lbl_1_bss_938[var_r29] && fn_1_65DC(var_r31, var_r29)) { - Hu3DModelAttrReset(var_r31->unk_D4[var_r29], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV | HU3D_MOTATTR_SHAPE_PAUSE | HU3D_MOTATTR_SHAPE_REV); + Hu3DModelAttrReset( + var_r31->unk_D4[var_r29], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV | HU3D_MOTATTR_SHAPE_PAUSE | HU3D_MOTATTR_SHAPE_REV); var_r30 = HuPrcChildCreate(fn_1_42AC, 8192, 8192, 0, HuPrcCurrentGet()); var_r30->user_data = &sp8C; sp8C.unk_00 = var_r31; @@ -2333,7 +2335,7 @@ void fn_1_8A70(void) var_r28 = MGSeqCreate(3, 2); } HuPrcSleep(210); - WipeCreate(2, 0, 60); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); HuPrcSleep(60); HuAudFadeOut(1); MGSeqKillAll(); diff --git a/src/REL/m415Dll/main.c b/src/REL/m415Dll/main.c index b00701ff..cb5bdac7 100644 --- a/src/REL/m415Dll/main.c +++ b/src/REL/m415Dll/main.c @@ -106,7 +106,7 @@ void fn_1_43C(omObjData *object) var_r31 = &Hu3DCamera[0]; lbl_1_bss_34A = 0; - WipeCreate(1, 0, 0x3C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); var_r31->fov = 45.0f; object->func = fn_1_4B0; } @@ -163,7 +163,7 @@ void fn_1_4B0(omObjData *object) break; } if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); object->func = fn_1_14C0; } } @@ -317,13 +317,13 @@ void fn_1_7D8(omObjData *object) break; case 9: if (--lbl_1_bss_342 == 0) { - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); object->func = fn_1_14C0; } break; } if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); object->func = fn_1_14C0; } } diff --git a/src/REL/m417Dll/main.c b/src/REL/m417Dll/main.c index d6bdbcbd..3a5b2aff 100644 --- a/src/REL/m417Dll/main.c +++ b/src/REL/m417Dll/main.c @@ -212,7 +212,7 @@ void fn_1_EA8(omObjData *object) fn_1_5B0(object); if (!WipeStatGet()) { - WipeCreate(2, 0, 60); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); var_r27->unk_08 = 0; fn_1_800(object); } @@ -483,7 +483,8 @@ void fn_1_310C(float arg8, float arg9, float argA, float *arg0, float *arg1, flo if (arg8 != 0.0f) { PSMTXRotRad(sp38, 88, 0.017453292f * arg8); - } else { + } + else { PSMTXIdentity(sp38); } if (arg9 != 0.0f) { diff --git a/src/REL/m420dll/main.c b/src/REL/m420dll/main.c index f97a3fd0..c5fe048e 100644 --- a/src/REL/m420dll/main.c +++ b/src/REL/m420dll/main.c @@ -52,7 +52,7 @@ void fn_1_118(void) while (omSysExitReq == 0) { HuPrcVSleep(); } - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); while (WipeStatGet() != 0) { HuPrcVSleep(); @@ -83,11 +83,11 @@ s32 fn_1_198(void) sp8[var_r31] = 0; } for (var_r31 = 0; var_r31 < 4; var_r31++) { - switch(GWPlayerCfg[var_r31].group) { + switch (GWPlayerCfg[var_r31].group) { case 0: lbl_1_bss_18[0] = fn_1_1B8C(var_r31, 0); break; - + default: do { var_r30 = fn_1_8944() % 3; @@ -122,7 +122,7 @@ void fn_1_43C(void) s32 var_r30; lbl_1_bss_C = 0; - WipeCreate(1, 0, 0x3C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x3C); while (WipeStatGet() != 0) { HuPrcVSleep(); diff --git a/src/REL/m426Dll/main.c b/src/REL/m426Dll/main.c index 2e002155..8cd93019 100644 --- a/src/REL/m426Dll/main.c +++ b/src/REL/m426Dll/main.c @@ -606,7 +606,7 @@ void fn_1_E18(omObjData *object) var_r30 = 1; } if (var_r30) { - WipeCreate(2, 0, 60); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); HuAudSeqAllFadeOut(100); object->func = fn_1_DB8; } diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index 91ee7c73..2c4c80b4 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -408,7 +408,7 @@ void ObjectSetup(void) fn_1_B4D8(var_r31); omGameSysInit(var_r31); HuAudSndGrpSet(0x40); - WipeCreate(1, 0, 60); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); fn_1_7BBC(); fn_1_E658(0x60, 0x40); } @@ -478,7 +478,7 @@ void fn_1_4FC(omObjData *object) break; } if (omSysExitReq != 0 && WipeStatGet() == 0) { - WipeCreate(2, 0, 60); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); object->func = fn_1_1174; } } @@ -621,12 +621,12 @@ void fn_1_974(omObjData *object) } break; case 11: - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); object->func = fn_1_1174; break; } if (omSysExitReq != 0 && WipeStatGet() == 0) { - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); object->func = fn_1_1174; } } diff --git a/src/REL/m440Dll/main.c b/src/REL/m440Dll/main.c index aa7c83dd..4f9c8c9e 100644 --- a/src/REL/m440Dll/main.c +++ b/src/REL/m440Dll/main.c @@ -92,7 +92,7 @@ void ObjectSetup(void) void fn_1_3C4(omObjData *object) { if ((omSysExitReq != 0) || (lbl_1_bss_0 != 0)) { - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); object->func = &fn_1_434; } } @@ -201,7 +201,7 @@ void fn_1_AE0(omObjData *arg0) switch (fn_1_23E4(7)) { case 1: if (lbl_1_bss_A == 0) { - WipeCreate(1, 0, 0x3C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); lbl_1_bss_A = 1; } if (WipeStatGet() != 0) diff --git a/src/REL/m442Dll/main.c b/src/REL/m442Dll/main.c index 468d8998..38b861b7 100644 --- a/src/REL/m442Dll/main.c +++ b/src/REL/m442Dll/main.c @@ -275,7 +275,7 @@ void fn_1_394(omObjData *object) lbl_1_bss_11F18 = -1; lbl_1_bss_11F16 = 0; lbl_1_bss_11EE8 = 0; - WipeCreate(1, 0, 60); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); object->func = fn_1_448; } @@ -369,7 +369,7 @@ void fn_1_448(omObjData *object) break; case 11: if (--lbl_1_bss_11F24 == 0) { - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); object->func = fn_1_A30; } break; @@ -382,7 +382,7 @@ void fn_1_448(omObjData *object) lbl_1_bss_11F16 = 0; } if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); object->func = fn_1_A30; } } diff --git a/src/REL/m443Dll/main.c b/src/REL/m443Dll/main.c index e79d3c0c..d149d47d 100644 --- a/src/REL/m443Dll/main.c +++ b/src/REL/m443Dll/main.c @@ -206,7 +206,7 @@ void fn_1_584(omObjData *object) if (var_r31->unk_08 == 0) { switch (var_r31->unk_00) { case 0: - WipeCreate(1, 0, 0x3C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); lbl_1_bss_14.unk_00 = 1; var_r31->unk_00 = 1; var_r31->unk_10 = 0; @@ -252,7 +252,7 @@ void fn_1_9B0(omObjData *object) fn_1_4E4(object); if (WipeStatGet() == 0) { - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); if (lbl_1_bss_8 >= 0) { HuAudFXStop(lbl_1_bss_8); lbl_1_bss_8 = -1; @@ -432,7 +432,7 @@ void fn_1_17D8(omObjData *object) } if ((MGSeqStatGet(lbl_1_bss_58) == 0) && (var_r27->unk_58 == 0x1111) && (var_r25 != 0)) { if (var_r27->unk_08 == 0) { - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); } var_r27->unk_14 = 4; var_r27->unk_18 = 0; @@ -531,7 +531,7 @@ omObjFunc fn_1_2490(Process *process, omObjData *object) M443DllWork *var_r30 = object->data; if (var_r30->unk_08 == 0) { - WipeCreate(1, 0, 0x3C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); } fn_1_3FE8(1); var_r31 = fn_1_4148(0); diff --git a/src/REL/m446Dll/main.c b/src/REL/m446Dll/main.c index c762dbf4..1988e32d 100644 --- a/src/REL/m446Dll/main.c +++ b/src/REL/m446Dll/main.c @@ -1,22 +1,22 @@ #include "REL/m446Dll.h" #include "rel_sqrt_consts.h" +#include "game/audio.h" +#include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfman.h" -#include "game/audio.h" #include "game/jmp.h" +#include "game/minigame_seq.h" #include "game/window.h" #include "game/wipe.h" -#include "game/frand.h" -#include "game/minigame_seq.h" // bss s32 lbl_1_bss_14; s32 lbl_1_bss_10; -Process* lbl_1_bss_C; +Process *lbl_1_bss_C; omObjData *lbl_1_bss_8; s32 lbl_1_bss_4; -unkStruct* lbl_1_bss_0; +unkStruct *lbl_1_bss_0; // data Vec lbl_1_data_0 = { 0.0f, 90.0f, 0.0f }; @@ -25,18 +25,13 @@ f32 lbl_1_data_18 = 1260.0f; Vec lbl_1_data_1C = { 0.0f, 90.0f, 0.0f }; Vec lbl_1_data_28 = { -90.0f, 0.0f, 0.0f }; f32 lbl_1_data_34 = 260.0f; -Vec lbl_1_data_38[2] = { - { 0.0f, 100.0f, 120.0f }, - { 0.0f, 100.0f, 120.0f } -}; -Vec lbl_1_data_50[2] = { - { -30.0f, 0.0f, 0.0f }, - { -30.0f, 0.0f, 0.0f } -}; +Vec lbl_1_data_38[2] = { { 0.0f, 100.0f, 120.0f }, { 0.0f, 100.0f, 120.0f } }; +Vec lbl_1_data_50[2] = { { -30.0f, 0.0f, 0.0f }, { -30.0f, 0.0f, 0.0f } }; f32 lbl_1_data_68[2] = { 600.0f, 600.0f }; s32 lbl_1_data_70[2][2] = { { 0x46, 0x1A4 }, { 0x1F4, 0x3C } }; -void ObjectSetup(void) { +void ObjectSetup(void) +{ lbl_1_bss_C = omInitObjMan(5, 0x2000); omGameSysInit(lbl_1_bss_C); lbl_1_bss_8 = omAddObjEx(lbl_1_bss_C, 0x3E8, 0x32U, 0x32U, 0, fn_1_13C); @@ -44,7 +39,8 @@ void ObjectSetup(void) { lbl_1_bss_4 = 0; } -void fn_1_13C(omObjData* arg0) { +void fn_1_13C(omObjData *arg0) +{ switch (lbl_1_bss_4) { case 0: HuWinInit(1); @@ -68,9 +64,10 @@ void fn_1_13C(omObjData* arg0) { fn_1_7350(); fn_1_20D4(); fn_1_68DC(); - if (lbl_1_bss_0->unk0 != 5) break; + if (lbl_1_bss_0->unk0 != 5) + break; lbl_1_bss_4 = 3; - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); case 2: break; case 3: @@ -92,9 +89,10 @@ void fn_1_13C(omObjData* arg0) { } } -unkStruct* m446FlowCreate(void) { +unkStruct *m446FlowCreate(void) +{ s32 var_r30; - unkStruct* temp_r3; + unkStruct *temp_r3; temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x9C, MEMORY_DEFAULT_NUM); if (temp_r3 == 0) { @@ -108,14 +106,14 @@ unkStruct* m446FlowCreate(void) { temp_r3->unk10 = 0; temp_r3->unk98 = NULL; temp_r3->unk18 = -1; - + for (var_r30 = 0; var_r30 < 23; var_r30++) { temp_r3->unk38[var_r30] = 0; } temp_r3->unk24 = m446StageCreate(); temp_r3->unk20 = fn_1_39D0(); lbl_1_bss_10 = 0; - + for (var_r30 = 0; var_r30 < 2; var_r30++) { temp_r3->unk2C[var_r30] = m446PlayerCreate(var_r30, temp_r3->unk20); if (temp_r3->unk2C[var_r30]->unk68 != 0) { @@ -123,11 +121,12 @@ unkStruct* m446FlowCreate(void) { } } temp_r3->unk28 = fn_1_3064(); - WipeCreate(1, 0, 0x3C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); return temp_r3; } -void fn_1_3FC(unkStruct* arg0) { +void fn_1_3FC(unkStruct *arg0) +{ s32 var_r30; if (arg0->unk98) { @@ -139,7 +138,7 @@ void fn_1_3FC(unkStruct* arg0) { if (arg0->unk6 == -1) { MGSeqParamSet(arg0->unk6, 2, -1); } - + for (var_r30 = 0; var_r30 < 2; var_r30++) { fn_1_509C(arg0->unk2C[var_r30]); } @@ -149,9 +148,10 @@ void fn_1_3FC(unkStruct* arg0) { HuMemDirectFree(arg0); } -m446Func1 lbl_1_data_A0[5] = {fn_1_53C, fn_1_B78, fn_1_CA0, fn_1_C0C, fn_1_958}; +m446Func1 lbl_1_data_A0[5] = { fn_1_53C, fn_1_B78, fn_1_CA0, fn_1_C0C, fn_1_958 }; -void fn_1_4B4(unkStruct* arg0) { +void fn_1_4B4(unkStruct *arg0) +{ if (lbl_1_data_A0[arg0->unk0]) { lbl_1_data_A0[arg0->unk0](arg0); } @@ -160,10 +160,11 @@ void fn_1_4B4(unkStruct* arg0) { } } -void fn_1_53C(unkStruct* arg0) { +void fn_1_53C(unkStruct *arg0) +{ s32 var_r30; s32 var_r29; - + switch (arg0->unk10) { case 0: fn_1_6EA0(&lbl_1_data_0); @@ -177,11 +178,13 @@ void fn_1_53C(unkStruct* arg0) { if (arg0->unk14 == 20) { fn_1_84AC(arg0->unk24); } - if (arg0->unk14++ < 0xB4) break; + if (arg0->unk14++ < 0xB4) + break; arg0->unk18 = HuAudSeqPlay(0x3D); if (arg0->unk2C[1]->unk64 == 8) { arg0->unk10 = 2; - } else { + } + else { arg0->unk10 = 4; } break; @@ -201,7 +204,8 @@ void fn_1_53C(unkStruct* arg0) { arg0->unk10 = 5; break; case 5: - if (fn_1_708C()) break; + if (fn_1_708C()) + break; fn_1_860C(arg0->unk24); for (var_r30 = 0; var_r30 < 2; var_r30++) { fn_1_637C(arg0->unk2C[var_r30], 1); @@ -214,13 +218,15 @@ void fn_1_53C(unkStruct* arg0) { arg0->unk14 = 0; break; case 7: - if (arg0->unk14++ < 0x78) break; + if (arg0->unk14++ < 0x78) + break; fn_1_34A0(arg0->unk28, &arg0->unk38[0], arg0->unk94, 1); arg0->unk10 = 8; arg0->unk14 = 0; break; case 8: - if (arg0->unk14++ < 0x78) break; + if (arg0->unk14++ < 0x78) + break; for (var_r29 = 0; var_r29 < 2; var_r29++) { for (var_r30 = 0; var_r30 < 3; var_r30++) { @@ -233,10 +239,14 @@ void fn_1_53C(unkStruct* arg0) { arg0->unk10 = 9; break; case 9: - if (arg0->unk34->unk70 != 0) break; - if (arg0->unk34->unk78 != 0) break; - if (arg0->unk34->unk74 != 0) break; - if (arg0->unk34->unk4 != 0) break; + if (arg0->unk34->unk70 != 0) + break; + if (arg0->unk34->unk78 != 0) + break; + if (arg0->unk34->unk74 != 0) + break; + if (arg0->unk34->unk4 != 0) + break; for (var_r29 = 0; var_r29 < 2; var_r29++) { for (var_r30 = 0; var_r30 < 3; var_r30++) { @@ -247,10 +257,14 @@ void fn_1_53C(unkStruct* arg0) { arg0->unk10 = 10; break; case 10: - if (arg0->unk34->unk70 != 0) break; - if (arg0->unk34->unk78 != 0) break; - if (arg0->unk34->unk74 != 0) break; - if (arg0->unk34->unk4 != 0) break; + if (arg0->unk34->unk70 != 0) + break; + if (arg0->unk34->unk78 != 0) + break; + if (arg0->unk34->unk74 != 0) + break; + if (arg0->unk34->unk4 != 0) + break; fn_1_46AC(arg0->unk20); while (m446DeckPopCard(&arg0->unk28->unk0, &arg0->unk34) != 0) { @@ -264,14 +278,16 @@ void fn_1_53C(unkStruct* arg0) { arg0->unk14 = 0; break; case 11: - if (arg0->unk14++ < 0x78) break; + if (arg0->unk14++ < 0x78) + break; arg0->unk0 = 1; arg0->unk10 = 0; break; } } -void fn_1_958(unkStruct* arg0) { +void fn_1_958(unkStruct *arg0) +{ s32 temp_r3; s32 temp_r3_2; s32 temp_r3_3; @@ -300,20 +316,24 @@ void fn_1_958(unkStruct* arg0) { if (arg0->unk2C[1]->unk64 == 8) { fn_1_5B34(arg0->unk2C[1]); HuAudSStreamPlay(3); - } else { + } + else { fn_1_5C10(arg0->unk2C[1]); HuAudSStreamPlay(4); } - } else if (arg0->unk2C[0]->unk24 != 0) { + } + else if (arg0->unk2C[0]->unk24 != 0) { fn_1_5B34(arg0->unk2C[0]); fn_1_5C10(arg0->unk2C[1]); HuAudSStreamPlay(1); - } else if (arg0->unk2C[1]->unk24 != 0) { + } + else if (arg0->unk2C[1]->unk24 != 0) { fn_1_5B34(arg0->unk2C[1]); fn_1_5C10(arg0->unk2C[0]); if (arg0->unk2C[1]->unk64 == 8) { HuAudSStreamPlay(3); - } else { + } + else { HuAudSStreamPlay(1); } } @@ -330,7 +350,8 @@ void fn_1_958(unkStruct* arg0) { } } -void fn_1_B78(unkStruct* arg0) { +void fn_1_B78(unkStruct *arg0) +{ switch (arg0->unk10) { case 0: arg0->unk18 = HuAudSeqPlay(0x3F); @@ -348,7 +369,8 @@ void fn_1_B78(unkStruct* arg0) { } } -void fn_1_C0C(unkStruct* arg0) { +void fn_1_C0C(unkStruct *arg0) +{ switch (arg0->unk10) { case 0: HuAudSeqFadeOut(arg0->unk18, 0x64); @@ -366,7 +388,8 @@ void fn_1_C0C(unkStruct* arg0) { } } -void fn_1_CA0(unkStruct* arg0) { +void fn_1_CA0(unkStruct *arg0) +{ s32 var_r29; unkStruct8 *var_r30; @@ -390,7 +413,8 @@ void fn_1_CA0(unkStruct* arg0) { arg0->unk10 = 3; arg0->unk14 = 0; } - } else { + } + else { arg0->unk10 = 4; } break; @@ -420,7 +444,9 @@ void fn_1_CA0(unkStruct* arg0) { MGSeqPosSet(arg0->unk6, lbl_1_data_70[arg0->unk1C][0], lbl_1_data_70[arg0->unk1C][1]); fn_1_4000(arg0->unk20, arg0->unk1C == 1 >> 5); arg0->unk10 = 7; - } else break; + } + else + break; case 7: if (fn_1_4088(arg0->unk20, var_r30->unk64, var_r30->unk66, arg0->unk1C == 1, &arg0->unk34, 0) == 0) { if ((--arg0->unkC % 60) == 0) { @@ -433,7 +459,9 @@ void fn_1_CA0(unkStruct* arg0) { arg0->unk14 = 0; break; } - } else break; + } + else + break; } arg0->unk10 = 9; break; @@ -455,7 +483,8 @@ void fn_1_CA0(unkStruct* arg0) { if (arg0->unk34->unk70 == 0 && arg0->unk34->unk78 == 0 && arg0->unk34->unk74 == 0 && arg0->unk34->unk4 == 0) { if (arg0->unk34->unk0 == 4) { arg0->unk10 = 13; - } else { + } + else { m446PlayerAppendCard(var_r30, arg0->unk34, 4); arg0->unk10 = 11; } @@ -465,7 +494,8 @@ void fn_1_CA0(unkStruct* arg0) { if (arg0->unk34->unk70 == 0 && arg0->unk34->unk78 == 0 && arg0->unk34->unk74 == 0 && arg0->unk34->unk4 == 0) { if (var_r30->unk24 != 0) { arg0->unk10 = 24; - } else { + } + else { arg0->unk10 = 12; } } @@ -475,9 +505,11 @@ void fn_1_CA0(unkStruct* arg0) { arg0->unk1C = 1; arg0->unk10 = 25; break; - } else if (arg0->unk1C == 0) { + } + else if (arg0->unk1C == 0) { arg0->unk1C = 1; - } else { + } + else { arg0->unk1C = 0; } arg0->unk10 = 1; @@ -599,24 +631,29 @@ void fn_1_CA0(unkStruct* arg0) { } } -s32 fn_1_17FC(unkStruct* arg0) { +s32 fn_1_17FC(unkStruct *arg0) +{ return MGSeqStatGet(arg0->unk4) != 0; } -void fn_1_183C(unkStruct* arg0) { +void fn_1_183C(unkStruct *arg0) +{ MGSeqKill(arg0->unk4); arg0->unk4 = -1; } -void fn_1_1874(unkStruct* arg0) { +void fn_1_1874(unkStruct *arg0) +{ arg0->unk4 = MGSeqCreate(3, 0); } -void fn_1_18B0(unkStruct* arg0) { +void fn_1_18B0(unkStruct *arg0) +{ arg0->unk4 = MGSeqCreate(3, 1); } -void fn_1_18EC(s16 arg0, s32 arg1) { +void fn_1_18EC(s16 arg0, s32 arg1) +{ HuWinComKeyReset(); if (lbl_1_bss_10 == 2) { HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, arg1); @@ -625,22 +662,23 @@ void fn_1_18EC(s16 arg0, s32 arg1) { HuWinMesWait(arg0); } -s32 fn_1_1970(s16 arg0, s32 arg1, s32 arg2, s32 arg3) { +s32 fn_1_1970(s16 arg0, s32 arg1, s32 arg2, s32 arg3) +{ if (lbl_1_bss_10 == 2) { HuPrcSleep(arg3); return arg2; - } else { + } + else { return HuWinChoiceGet(arg0, arg1); } } -static const s32 lbl_1_rodata_18[12] = { - MAKE_MESSID(0x18, 0x03), MAKE_MESSID(0x18, 0x04), MAKE_MESSID(0x18, 0x05), MAKE_MESSID(0x18, 0x06), - MAKE_MESSID(0x18, 0x07), MAKE_MESSID(0x18, 0x08), MAKE_MESSID(0x18, 0x09), MAKE_MESSID(0x18, 0x0A), - MAKE_MESSID(0x18, 0x0B), MAKE_MESSID(0x18, 0x0C), MAKE_MESSID(0x18, 0x0D), 0 -}; +static const s32 lbl_1_rodata_18[12] = { MAKE_MESSID(0x18, 0x03), MAKE_MESSID(0x18, 0x04), MAKE_MESSID(0x18, 0x05), MAKE_MESSID(0x18, 0x06), + MAKE_MESSID(0x18, 0x07), MAKE_MESSID(0x18, 0x08), MAKE_MESSID(0x18, 0x09), MAKE_MESSID(0x18, 0x0A), MAKE_MESSID(0x18, 0x0B), + MAKE_MESSID(0x18, 0x0C), MAKE_MESSID(0x18, 0x0D), 0 }; -void fn_1_19D4(void) { +void fn_1_19D4(void) +{ s16 temp_r3; s16 var_r30; s32 temp_r0; @@ -658,7 +696,8 @@ void fn_1_19D4(void) { HuWinMesColSet(temp_r3, 0); HuWinMesSet(temp_r3, MAKE_MESSID(0x18, 0x02)); var_r30 = fn_1_1970(temp_r3, 0, 1, 0x3C); - } else { + } + else { var_r30 = 1; } if (var_r30 == 0) { @@ -668,7 +707,8 @@ void fn_1_19D4(void) { HuWinMesSet(temp_r3, temp_r27); fn_1_18EC(temp_r3, 0x3C); } - } else { + } + else { HuWinMesColSet(temp_r3, 0); HuWinMesSet(temp_r3, MAKE_MESSID(0x18, 0x0D)); fn_1_18EC(temp_r3, 0x3C); diff --git a/src/REL/m450Dll/main.c b/src/REL/m450Dll/main.c index 47e3e47a..d52324b8 100644 --- a/src/REL/m450Dll/main.c +++ b/src/REL/m450Dll/main.c @@ -7278,7 +7278,7 @@ void fn_1_24620(omObjData *var_r31) if (omSysExitReq != 0) { fn_1_1F58(0x64); - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); var_r31->func = fn_1_298EC; } lbl_1_bss_308++; @@ -7306,7 +7306,7 @@ void fn_1_24620(omObjData *var_r31) fn_1_1F58(0x64); lbl_1_bss_2FE = -1; WipeColorSet(0, 0, 0); - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); var_r31->func = fn_1_298EC; } } @@ -7315,7 +7315,7 @@ void fn_1_24620(omObjData *var_r31) lbl_1_bss_128 += 1.0f; if (60.0f < lbl_1_bss_128) { var_r31->work[0] += 1; - WipeCreate(1, 0, 0x3C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); HuAudFXPlay(0x7B2); } break; @@ -7644,7 +7644,7 @@ void fn_1_24620(omObjData *var_r31) if ((sp11C != 0) || (1200.0f < lbl_1_bss_128)) { fn_1_1F58(0x64); lbl_1_bss_2FE = -1; - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); var_r31->func = fn_1_298EC; } break; diff --git a/src/REL/m453Dll/main.c b/src/REL/m453Dll/main.c index 7aa9f8f5..3e07c4b1 100644 --- a/src/REL/m453Dll/main.c +++ b/src/REL/m453Dll/main.c @@ -202,7 +202,7 @@ void ObjectSetup(void) var_r29->work[1] = var_r30; } omGameSysInit(var_r31); - WipeCreate(1, 0, 0x3C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); HuAudSndGrpSet(0x1C); lbl_1_bss_2[0] = 1; if (GWMGRecordGet(9) == 0) { @@ -286,7 +286,7 @@ void fn_1_460(omObjData *object) break; } if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); object->func = fn_1_FFC; } } @@ -439,13 +439,13 @@ void fn_1_848(omObjData *object) break; case 11: if (--lbl_1_bss_32 == 0) { - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); object->func = fn_1_FFC; } break; } if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); object->func = fn_1_FFC; } } diff --git a/src/REL/mentDll/common.c b/src/REL/mentDll/common.c index 63a3a0ef..9d71da1f 100644 --- a/src/REL/mentDll/common.c +++ b/src/REL/mentDll/common.c @@ -1,23 +1,23 @@ -#include "math.h" -#include "ext_math.h" -#include "game/object.h" -#include "game/window.h" -#include "game/hsfman.h" -#include "game/process.h" -#include "game/objsub.h" -#include "game/wipe.h" -#include "game/board/tutorial.h" -#include "game/pad.h" #include "REL/mentDll.h" -#include "game/printfunc.h" +#include "ext_math.h" +#include "game/board/tutorial.h" +#include "game/hsfman.h" #include "game/hsfmotion.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/process.h" #include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "math.h" + #include "rel_sqrt_consts.h" - -Process* lbl_1_bss_0; -//TODO: unknown type +Process *lbl_1_bss_0; +// TODO: unknown type extern s32 lbl_1_bss_A8[]; s32 lbl_1_data_0[][4] = { @@ -45,22 +45,25 @@ typedef void (*VoidFunc)(void); extern const VoidFunc _ctors[]; extern const VoidFunc _dtors[]; -void fn_1_0(omObjData* arg0) { +void fn_1_0(omObjData *arg0) +{ if (WipeStatGet() == 0) { arg0->func = NULL; omOvlReturnEx(1, 1); } } -void fn_1_4C(omObjData* object) { +void fn_1_4C(omObjData *object) +{ if (omSysExitReq != 0) { object->func = fn_1_0; - WipeCreate(2, 0, -1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); } } -s32 _prolog(void) { - const VoidFunc* ctors = _ctors; +s32 _prolog(void) +{ + const VoidFunc *ctors = _ctors; while (*ctors != 0) { (**ctors)(); ctors++; @@ -69,15 +72,17 @@ s32 _prolog(void) { return 0; } -void _epilog(void) { - const VoidFunc* dtors = _dtors; +void _epilog(void) +{ + const VoidFunc *dtors = _dtors; while (*dtors != 0) { (**dtors)(); dtors++; } } -void fn_1_144(void) { +void fn_1_144(void) +{ _ClearFlag(0x1000BU); boardTutorialF = 0; lbl_1_bss_0 = omInitObjMan(0x3E, 0x2000); @@ -88,55 +93,64 @@ void fn_1_144(void) { omAddObjEx(lbl_1_bss_0, 0x2000, 0U, 0U, -1, fn_1_4C); } -f32 fn_1_20C(f32 arg8, f32 arg9, f32 argA, f32 argB) { +f32 fn_1_20C(f32 arg8, f32 arg9, f32 argA, f32 argB) +{ if (argB <= argA) { return arg9; } return arg8 + ((argA / argB) * (arg9 - arg8)); } -f32 fn_1_234(f32 arg8, f32 arg9, f32 argA) { +f32 fn_1_234(f32 arg8, f32 arg9, f32 argA) +{ return (arg9 + (arg8 * (argA - 1.0f))) / argA; } -//fn_1_254 -f32 fn_1_254(f32 arg8, f32 arg9, f32 argA, f32 argB) { +// fn_1_254 +f32 fn_1_254(f32 arg8, f32 arg9, f32 argA, f32 argB) +{ if (argA >= argB) { return arg9; } return (arg8 + ((arg9 - arg8) * (1.0 - cos((M_PI * ((90.0f / argB) * argA)) / 180.0)))); } -//fn_1_32C -f32 fn_1_32C(f32 arg8, f32 arg9, f32 argA, f32 argB) { +// fn_1_32C +f32 fn_1_32C(f32 arg8, f32 arg9, f32 argA, f32 argB) +{ if (argA >= argB) { return arg9; } return (arg8 + ((arg9 - arg8) * sin((M_PI * ((90.0f / argB) * argA)) / 180.0))); } -f32 fn_1_3F4(f32 arg8, f32 arg9, f32 argA, f32 argB) { +f32 fn_1_3F4(f32 arg8, f32 arg9, f32 argA, f32 argB) +{ if (argA >= argB) { return arg8; } return (arg8 + ((arg9 - arg8) * sin((M_PI * ((360.0f / argB) * argA)) / 180.0))); } -void fn_1_4B0(s32 arg0) { +void fn_1_4B0(s32 arg0) +{ HuPrcSleep(arg0); } -void fn_1_4D8(void) { +void fn_1_4D8(void) +{ HuPrcVSleep(); } -void fn_1_4F8(void) { +void fn_1_4F8(void) +{ while (1) { HuPrcVSleep(); } } -void fn_1_50C(void) { +void fn_1_50C(void) +{ s32 temp_r3 = 0; temp_r3 = Hu3DGLightCreate(0.0f, 700.0f, 1200.0f, 0.0f, -1.0f, 0.0f, 255, 255, 255); @@ -144,10 +158,11 @@ void fn_1_50C(void) { Hu3DGLightInfinitytSet(temp_r3); } -void fn_1_5E8(s32 arg0) { - Point3d sp24 = {0.0f, 3000.0f, 800.0f}; - Point3d sp18 = {0.0f, 0.0f, 640.0f}; - Point3d spC = {0.0f, 1.0f, 0.0f}; +void fn_1_5E8(s32 arg0) +{ + Point3d sp24 = { 0.0f, 3000.0f, 800.0f }; + Point3d sp18 = { 0.0f, 0.0f, 640.0f }; + Point3d spC = { 0.0f, 1.0f, 0.0f }; if (arg0 == 3) { sp24.x = sp18.x = 1200.0f; @@ -157,16 +172,17 @@ void fn_1_5E8(s32 arg0) { Hu3DShadowPosSet(&sp24, &spC, &sp18); } -void fn_1_6D0(void) { +void fn_1_6D0(void) +{ HuWinInit(1); } void fn_1_6F4(s32 window, f32 centerX, f32 centerY, s32 toSmallF) { - WindowData* winPtr; + WindowData *winPtr; f32 smallPosX; f32 smallPosY; - f32 winPosX; + f32 winPosX; f32 winPosY; f32 width; f32 height; @@ -189,10 +205,12 @@ void fn_1_6F4(s32 window, f32 centerX, f32 centerY, s32 toSmallF) // adjust horizontal position if (((4.0f + smallPosX) - (winPosX + width)) >= 0.0f) { smallPosX = (winPosX + width) - 4.0f; - } else { + } + else { if ((winPosX - (smallPosX - 2.0f)) >= 0.0f) { smallPosX = winPosX; - } else { + } + else { smallPosX = smallPosX - 2.0f; } } @@ -203,10 +221,12 @@ void fn_1_6F4(s32 window, f32 centerX, f32 centerY, s32 toSmallF) // adjust vertical position if (((4.0f + smallPosY) - (winPosY + height)) >= 0.0f) { smallPosY = (winPosY + height) - 4.0f; - } else { + } + else { if ((winPosY - (smallPosY - 2.0f)) >= 0.0f) { smallPosY = winPosY; - } else { + } + else { smallPosY = smallPosY - 2.0f; } } @@ -218,7 +238,8 @@ void fn_1_6F4(s32 window, f32 centerX, f32 centerY, s32 toSmallF) scaleX = smallScaleX; posY = smallPosY; scaleY = smallScaleY; - } else { + } + else { HuWinPosSet(window, winPosX, winPosY); HuWinScaleSet(window, 1.0f, 1.0f); posX = winPosX; @@ -235,14 +256,17 @@ void fn_1_6F4(s32 window, f32 centerX, f32 centerY, s32 toSmallF) if (time <= 0xA) { posX = (time >= 10.0f) ? winPosX : (f32)(smallPosX + ((winPosX - smallPosX) * sind(9.0f * time))); scaleX = (time >= 10.0f) ? 1.0f : (f32)(smallScaleX + ((1.0f - smallScaleX) * sind(9.0f * time))); - } else { + } + else { posY = ((time - 0xA) >= 5.0f) ? winPosY : (f32)(smallPosY + ((winPosY - smallPosY) * sind(18.0f * (time - 0xA)))); scaleY = ((time - 0xA) >= 5.0f) ? 1.0f : (f32)(smallScaleY + ((1.0f - smallScaleY) * sind(18.0f * (time - 0xA)))); } - } else if (time <= 0xA) { - posY = (time >= 10.0f) ? smallPosY : (f32)(winPosY + ((smallPosY - winPosY) * sind(9.0f * time))); - scaleY = (time >= 10.0f) ? smallScaleY : (f32)(1.0 + ((smallScaleY - 1.0f) * sind(9.0f * time))); - } else { + } + else if (time <= 0xA) { + posY = (time >= 10.0f) ? smallPosY : (f32)(winPosY + ((smallPosY - winPosY) * sind(9.0f * time))); + scaleY = (time >= 10.0f) ? smallScaleY : (f32)(1.0 + ((smallScaleY - 1.0f) * sind(9.0f * time))); + } + else { posX = ((time - 0xA) >= 5.0f) ? smallPosX : (f32)(winPosX + ((smallPosX - winPosX) * sind(18.0f * (time - 0xA)))); scaleX = ((time - 0xA) >= 5.0f) ? smallScaleX : (f32)(1.0 + ((smallScaleX - 1.0f) * sind(18.0f * (time - 0xA)))); } @@ -253,14 +277,16 @@ void fn_1_6F4(s32 window, f32 centerX, f32 centerY, s32 toSmallF) if (toSmallF != 0) { HuWinPosSet(window, winPosX, winPosY); HuWinScaleSet(window, 1.0f, 1.0f); - } else { + } + else { HuWinPosSet(window, smallPosX, smallPosY); HuWinScaleSet(window, smallScaleX, smallScaleY); } HuPrcVSleep(); } -s32 fn_1_113C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, f32 arg8, f32 arg9, s32 arg6, s32 arg4, s32 arg5) { +s32 fn_1_113C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, f32 arg8, f32 arg9, s32 arg6, s32 arg4, s32 arg5) +{ f32 sp14[2]; s32 temp_r30; @@ -268,18 +294,19 @@ s32 fn_1_113C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, f32 arg8, f32 arg9, s32 ar arg2 = (arg2 * 0x15) + 0x10; arg3 = (arg3 * 0x1A) + 0x10; arg1 = (445.0f - arg3); - switch (arg0) { - case -1: - arg0 = 0x10; - break; - case 0: - arg0 = (1.0f + ((576.0f - arg2) / 2)); - break; - case 1: - arg0 = (556.0f - arg2); - break; + switch (arg0) { + case -1: + arg0 = 0x10; + break; + case 0: + arg0 = (1.0f + ((576.0f - arg2) / 2)); + break; + case 1: + arg0 = (556.0f - arg2); + break; } - } else { + } + else { HuWinMesMaxSizeGet(1, sp14, arg5); arg2 = sp14[0]; arg3 = sp14[1]; @@ -296,25 +323,29 @@ s32 fn_1_113C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, f32 arg8, f32 arg9, s32 ar return temp_r30; } -s32 fn_1_1434(s32 arg0, s32 arg1, s32 arg2) { +s32 fn_1_1434(s32 arg0, s32 arg1, s32 arg2) +{ return fn_1_113C(arg0, 0, 0x15, 2, 0.5f, 0.5f, 2, 0, 0); } -void fn_1_164C(s32 arg0, f32 arg8, f32 arg9) { +void fn_1_164C(s32 arg0, f32 arg8, f32 arg9) +{ HuWinMesSet(arg0, 0x250004); HuPrcVSleep(); fn_1_6F4(arg0, arg8, arg9, 0); HuWinExCleanup(arg0); } -void fn_1_16AC(s32 arg0) { +void fn_1_16AC(s32 arg0) +{ HuWinMesSet(arg0, 0x250004); HuPrcVSleep(); fn_1_6F4(arg0, 0.5f, 0.5f, 0); HuWinExCleanup(arg0); } -void fn_1_1714(s32 arg0, s32 arg1) { +void fn_1_1714(s32 arg0, s32 arg1) +{ if ((arg1 == -999) || (arg1 == 0)) { return; } @@ -333,15 +364,16 @@ void fn_1_1714(s32 arg0, s32 arg1) { HuWinComKeyReset(); } -void fn_1_17A4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { +void fn_1_17A4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +{ s32 i; s32 temp_r28 = 0; s32 var_r30 = 0; (void)arg0; - + temp_r28 = HuWinKeyWaitNumGet(arg1); - if ((arg2 == -1) || (arg2 >= (s32) (temp_r28 - 1))) { + if ((arg2 == -1) || (arg2 >= (s32)(temp_r28 - 1))) { arg2 = temp_r28 - 1; } HuWinComKeyReset(); @@ -350,24 +382,26 @@ void fn_1_17A4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { do { HuPrcVSleep(); } while (HuWinStatGet(arg0) != 1); - + if (i == arg2) { HuWinAttrSet(arg0, 0x400); var_r30 = 1; } - + while (1) { HuPrcVSleep(); if (var_r30 != 0) { if (var_r30 == 1 && HuWinStatGet(arg0) != 1) { var_r30 = 2; - } else if (var_r30 == 2) { + } + else if (var_r30 == 2) { HuPrcSleep(arg3); HuWinAttrReset(arg0, 0x400); HuWinKeyWaitEntry(arg0); break; } - } else if (HuWinStatGet(arg0) != 1) { + } + else if (HuWinStatGet(arg0) != 1) { break; } } @@ -378,7 +412,8 @@ void fn_1_17A4(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { HuWinComKeyReset(); } -s32 fn_1_18D8(s32 arg0, s32 arg1) { +s32 fn_1_18D8(s32 arg0, s32 arg1) +{ s32 temp_r31; HuWinComKeyReset(); @@ -387,14 +422,17 @@ s32 fn_1_18D8(s32 arg0, s32 arg1) { return temp_r31; } -void fn_1_1928(s32 arg0, s32 arg1, s32 arg2) { +void fn_1_1928(s32 arg0, s32 arg1, s32 arg2) +{ HuWinInsertMesSet(arg0, arg1, arg2); } -void fn_1_1968(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { +void fn_1_1968(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +{ if (arg3 == -999) { HuWinMesSpeedSet(arg0, 0); - } else { + } + else { HuWinMesSpeedSet(arg0, 1); } HuWinMesSet(arg0, arg1); @@ -414,12 +452,14 @@ void fn_1_1968(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { HuWinMesWait(arg0); HuWinComKeyReset(); } - } else { + } + else { fn_1_17A4(arg0, arg1, arg2, arg3); } } -s32 fn_1_1A5C(s32 arg0, s32 arg1, s32 arg2) { +s32 fn_1_1A5C(s32 arg0, s32 arg1, s32 arg2) +{ s32 var_r28; s32 var_r25 = 0; @@ -430,10 +470,11 @@ s32 fn_1_1A5C(s32 arg0, s32 arg1, s32 arg2) { return var_r25; } -s32 fn_1_1DD8(s32 arg0, s32 arg1, s32 arg2) { +s32 fn_1_1DD8(s32 arg0, s32 arg1, s32 arg2) +{ s32 var_r28; s32 var_r25 = 0; - + var_r28 = fn_1_113C(0, 0, 0, 0, 0.5f, 0.5f, arg1, 0, arg0); HuWinMesSet(var_r28, arg0); var_r25 = fn_1_18D8(var_r28, 1); @@ -441,7 +482,8 @@ s32 fn_1_1DD8(s32 arg0, s32 arg1, s32 arg2) { return var_r25; } -s32 fn_1_2154(s32 arg0) { +s32 fn_1_2154(s32 arg0) +{ f32 sp8[2]; f32 temp_f29; f32 temp_f28; @@ -456,7 +498,8 @@ s32 fn_1_2154(s32 arg0) { temp_f28 = 385.0f - sizeY; if (lbl_1_data_70 == -1) { lbl_1_data_70 = ret = HuWinExCreateStyled(temp_f29, temp_f28, sizeX, sizeY, -1, 1); - } else { + } + else { fn_1_2318(0); lbl_1_data_70 = ret = HuWinExCreateStyled(temp_f29, temp_f28, sizeX, sizeY, -1, 1); } @@ -467,20 +510,23 @@ s32 fn_1_2154(s32 arg0) { return lbl_1_data_70; } -void fn_1_2318(s32 arg0) { +void fn_1_2318(s32 arg0) +{ if (lbl_1_data_70 != -1) { HuWinExCleanup(lbl_1_data_70); lbl_1_data_70 = -1; } } -void fn_1_236C(f32 arg9) { - MentDllUnkBss64Struct* temp = &lbl_1_bss_64; +void fn_1_236C(f32 arg9) +{ + MentDllUnkBss64Struct *temp = &lbl_1_bss_64; if ((HuPadBtn[0] & 0x200)) { if ((HuPadBtn[0] & 0x20)) { temp->center.z = temp->center.z - (HuPadStkY[0] / 10.0f); - } else { + } + else { temp->center.x += HuPadStkX[0] / 10.0f; temp->center.y = temp->center.y + (HuPadStkY[0] / 10.0f); } @@ -511,8 +557,9 @@ void fn_1_236C(f32 arg9) { print8(0x18, 0x46, 1.0f, "ZOOM : %.2f", temp->zoom); } -void fn_1_2750(omObjData* obj) { - MentDllUnkBss64Struct* temp = &lbl_1_bss_64; +void fn_1_2750(omObjData *obj) +{ + MentDllUnkBss64Struct *temp = &lbl_1_bss_64; if (temp->func != NULL) { temp->func(); } @@ -525,12 +572,14 @@ void fn_1_2750(omObjData* obj) { CZoom = temp->zoom; } -void fn_1_2808(void (*arg0)(void)) { +void fn_1_2808(void (*arg0)(void)) +{ fn_1_29A0(&lbl_1_bss_64); lbl_1_bss_64.func = arg0; } -void fn_1_2844(Process* arg0, void (*arg1)(void)) { +void fn_1_2844(Process *arg0, void (*arg1)(void)) +{ Hu3DCameraCreate(1); Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); Hu3DCameraPerspectiveSet(1, 42.0f, 20.0f, 5000.0f, 1.2f); @@ -540,7 +589,8 @@ void fn_1_2844(Process* arg0, void (*arg1)(void)) { omAddObjEx(arg0, 0x7FD9, 0U, 0U, -1, fn_1_2750); } -void fn_1_2964(MentDllUnkBss64Struct* arg0) { +void fn_1_2964(MentDllUnkBss64Struct *arg0) +{ arg0->center.x = arg0->prevCenter.x; arg0->center.y = arg0->prevCenter.y; arg0->center.z = arg0->prevCenter.z; @@ -550,7 +600,8 @@ void fn_1_2964(MentDllUnkBss64Struct* arg0) { arg0->zoom = arg0->prevZoom; } -void fn_1_29A0(MentDllUnkBss64Struct* arg0) { +void fn_1_29A0(MentDllUnkBss64Struct *arg0) +{ arg0->unk_40 = 0.0f; arg0->prevCenter.x = arg0->center.x; arg0->prevCenter.y = arg0->center.y; @@ -561,11 +612,13 @@ void fn_1_29A0(MentDllUnkBss64Struct* arg0) { arg0->prevZoom = arg0->zoom; } -static inline f32 SmoothInterpolate(f32 arg0, f32 arg1, f32 arg2) { +static inline f32 SmoothInterpolate(f32 arg0, f32 arg1, f32 arg2) +{ return (arg1 + arg0 * (arg2 - 1.0f)) / arg2; } -void fn_1_29E4(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8) { +void fn_1_29E4(MentDllUnkBss64Struct *arg0, MentDllUnkBss64Struct *arg1, f32 arg8) +{ arg0->center.x = SmoothInterpolate(arg0->center.x, arg1->prevCenter.x, arg8); arg0->center.y = SmoothInterpolate(arg0->center.y, arg1->prevCenter.y, arg8); arg0->center.z = SmoothInterpolate(arg0->center.z, arg1->prevCenter.z, arg8); @@ -575,7 +628,8 @@ void fn_1_29E4(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg arg0->zoom = SmoothInterpolate(arg0->zoom, arg1->prevZoom, arg8); } -void fn_1_2C50(MentDllUnkBss64Struct* arg0, f32 arg8) { +void fn_1_2C50(MentDllUnkBss64Struct *arg0, f32 arg8) +{ arg0->center.x = SmoothInterpolate(arg0->center.x, arg0->prevCenter.x, arg8); arg0->center.y = SmoothInterpolate(arg0->center.y, arg0->prevCenter.y, arg8); arg0->center.z = SmoothInterpolate(arg0->center.z, arg0->prevCenter.z, arg8); @@ -585,15 +639,18 @@ void fn_1_2C50(MentDllUnkBss64Struct* arg0, f32 arg8) { arg0->zoom = SmoothInterpolate(arg0->zoom, arg0->prevZoom, arg8); } -inline f32 LinearInterpolation(f32 arg0, f32 arg1, f32 arg8, f32 arg9) { +inline f32 LinearInterpolation(f32 arg0, f32 arg1, f32 arg8, f32 arg9) +{ if (arg9 <= arg8) { return arg1; - } else { + } + else { return arg0 + ((arg8 / arg9) * (arg1 - arg0)); } } -void fn_1_2EBC(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9) { +void fn_1_2EBC(MentDllUnkBss64Struct *arg0, MentDllUnkBss64Struct *arg1, f32 arg8, f32 arg9) +{ arg1->prevCenter.x = LinearInterpolation(arg0->prevCenter.x, arg1->center.x, arg8, arg9); arg1->prevCenter.y = LinearInterpolation(arg0->prevCenter.y, arg1->center.y, arg8, arg9); arg1->prevCenter.z = LinearInterpolation(arg0->prevCenter.z, arg1->center.z, arg8, arg9); @@ -605,7 +662,8 @@ void fn_1_2EBC(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg arg1->prevZoom = LinearInterpolation(arg0->prevZoom, arg1->zoom, arg8, arg9); } -void fn_1_3138(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9) { +void fn_1_3138(MentDllUnkBss64Struct *arg0, MentDllUnkBss64Struct *arg1, f32 arg8, f32 arg9) +{ arg1->prevCenter.x = LinearInterpolation(arg0->prevCenter.x, arg1->center.x, arg8, arg9); arg1->prevCenter.y = LinearInterpolation(arg0->prevCenter.y, arg1->center.y, arg8, arg9); arg1->prevCenter.z = LinearInterpolation(arg0->prevCenter.z, arg1->center.z, arg8, arg9); @@ -625,7 +683,8 @@ void fn_1_3138(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg arg0->zoom = arg1->prevZoom; } -void fn_1_33EC(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9, f32 argA) { +void fn_1_33EC(MentDllUnkBss64Struct *arg0, MentDllUnkBss64Struct *arg1, f32 arg8, f32 arg9, f32 argA) +{ arg1->prevCenter.x = LinearInterpolation(arg0->prevCenter.x, arg1->center.x, arg8, arg9); arg1->prevCenter.y = LinearInterpolation(arg0->prevCenter.y, arg1->center.y, arg8, arg9); arg1->prevCenter.z = LinearInterpolation(arg0->prevCenter.z, arg1->center.z, arg8, arg9); @@ -647,7 +706,8 @@ void fn_1_33EC(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg arg0->zoom = SmoothInterpolate(arg0->zoom, arg1->prevZoom, argA); } -void fn_1_3858(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9) { +void fn_1_3858(MentDllUnkBss64Struct *arg0, MentDllUnkBss64Struct *arg1, f32 arg8, f32 arg9) +{ arg1->prevCenter.x = fn_1_32C(arg0->prevCenter.x, arg1->center.x, arg8, arg9); arg1->prevCenter.y = fn_1_32C(arg0->prevCenter.y, arg1->center.y, arg8, arg9); arg1->prevCenter.z = fn_1_32C(arg0->prevCenter.z, arg1->center.z, arg8, arg9); @@ -659,7 +719,8 @@ void fn_1_3858(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg arg1->prevZoom = fn_1_32C(arg0->prevZoom, arg1->zoom, arg8, arg9); } -void fn_1_3CAC(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9) { +void fn_1_3CAC(MentDllUnkBss64Struct *arg0, MentDllUnkBss64Struct *arg1, f32 arg8, f32 arg9) +{ arg1->prevCenter.x = fn_1_32C(arg0->prevCenter.x, arg1->center.x, arg8, arg9); arg1->prevCenter.y = fn_1_32C(arg0->prevCenter.y, arg1->center.y, arg8, arg9); arg1->prevCenter.z = fn_1_32C(arg0->prevCenter.z, arg1->center.z, arg8, arg9); @@ -673,15 +734,16 @@ void fn_1_3CAC(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg arg0->center.x = arg1->prevCenter.x; arg0->center.y = arg1->prevCenter.y; arg0->center.z = arg1->prevCenter.z; - + arg0->rot.x = arg1->prevRot.x; arg0->rot.y = arg1->prevRot.y; arg0->rot.z = arg1->prevRot.z; - + arg0->zoom = arg1->prevZoom; } -void fn_1_4138(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9, f32 argA) { +void fn_1_4138(MentDllUnkBss64Struct *arg0, MentDllUnkBss64Struct *arg1, f32 arg8, f32 arg9, f32 argA) +{ arg1->prevCenter.x = fn_1_32C(arg0->prevCenter.x, arg1->center.x, arg8, arg9); arg1->prevCenter.y = fn_1_32C(arg0->prevCenter.y, arg1->center.y, arg8, arg9); arg1->prevCenter.z = fn_1_32C(arg0->prevCenter.z, arg1->center.z, arg8, arg9); @@ -689,7 +751,7 @@ void fn_1_4138(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg arg1->prevRot.x = fn_1_32C(arg0->prevRot.x, arg1->rot.x, arg8, arg9); arg1->prevRot.y = fn_1_32C(arg0->prevRot.y, arg1->rot.y, arg8, arg9); arg1->prevRot.z = fn_1_32C(arg0->prevRot.z, arg1->rot.z, arg8, arg9); - + arg1->prevZoom = fn_1_32C(arg0->prevZoom, arg1->zoom, arg8, arg9); arg0->center.x = SmoothInterpolate(arg0->center.x, arg1->prevCenter.x, argA); @@ -703,7 +765,8 @@ void fn_1_4138(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg arg0->zoom = SmoothInterpolate(arg0->zoom, arg1->prevZoom, argA); } -void fn_1_4790(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9) { +void fn_1_4790(MentDllUnkBss64Struct *arg0, MentDllUnkBss64Struct *arg1, f32 arg8, f32 arg9) +{ arg1->prevCenter.x = fn_1_254(arg0->prevCenter.x, arg1->center.x, arg8, arg9); arg1->prevCenter.y = fn_1_254(arg0->prevCenter.y, arg1->center.y, arg8, arg9); arg1->prevCenter.z = fn_1_254(arg0->prevCenter.z, arg1->center.z, arg8, arg9); @@ -715,7 +778,8 @@ void fn_1_4790(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg arg1->prevZoom = fn_1_254(arg0->prevZoom, arg1->zoom, arg8, arg9); } -void fn_1_4C54(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9) { +void fn_1_4C54(MentDllUnkBss64Struct *arg0, MentDllUnkBss64Struct *arg1, f32 arg8, f32 arg9) +{ arg1->prevCenter.x = fn_1_254(arg0->prevCenter.x, arg1->center.x, arg8, arg9); arg1->prevCenter.y = fn_1_254(arg0->prevCenter.y, arg1->center.y, arg8, arg9); arg1->prevCenter.z = fn_1_254(arg0->prevCenter.z, arg1->center.z, arg8, arg9); @@ -729,15 +793,16 @@ void fn_1_4C54(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg arg0->center.x = arg1->prevCenter.x; arg0->center.y = arg1->prevCenter.y; arg0->center.z = arg1->prevCenter.z; - + arg0->rot.x = arg1->prevRot.x; arg0->rot.y = arg1->prevRot.y; arg0->rot.z = arg1->prevRot.z; - + arg0->zoom = arg1->prevZoom; } -void fn_1_5150(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9, f32 argA) { +void fn_1_5150(MentDllUnkBss64Struct *arg0, MentDllUnkBss64Struct *arg1, f32 arg8, f32 arg9, f32 argA) +{ arg1->prevCenter.x = fn_1_254(arg0->prevCenter.x, arg1->center.x, arg8, arg9); arg1->prevCenter.y = fn_1_254(arg0->prevCenter.y, arg1->center.y, arg8, arg9); arg1->prevCenter.z = fn_1_254(arg0->prevCenter.z, arg1->center.z, arg8, arg9); @@ -759,25 +824,9 @@ void fn_1_5150(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg arg0->zoom = SmoothInterpolate(arg0->zoom, arg1->prevZoom, argA); } -void fn_1_5818(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { +void fn_1_5818(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) +{ switch (arg4) { - case 0: - Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0); - break; - case 1: - Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000001); - break; - case 2: - Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000002); - break; - } - arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; -} - -void fn_1_59A0(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { - if (arg0->work[3] != arg0->motion[arg2]) { - arg0->work[3] = arg0->motion[arg2]; - switch (arg4) { case 0: Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0); break; @@ -787,12 +836,31 @@ void fn_1_59A0(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { case 2: Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000002); break; + } + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; +} + +void fn_1_59A0(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) +{ + if (arg0->work[3] != arg0->motion[arg2]) { + arg0->work[3] = arg0->motion[arg2]; + switch (arg4) { + case 0: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0); + break; + case 1: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000001); + break; + case 2: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000002); + break; } arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; } } -void fn_1_5B50(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3) { +void fn_1_5B50(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3) +{ (void)arg1; Hu3DMotionShiftSet(arg0->model[1], arg0->motion[arg1], 0.0f, arg3, 0); arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; @@ -801,9 +869,10 @@ void fn_1_5B50(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3) { arg0->work[2] = arg3 + 1; } -void fn_1_5C08(omObjData* arg0) { +void fn_1_5C08(omObjData *arg0) +{ s32 temp; - + if (arg0->work[0] != 0) { if (arg0->work[2] != 0) { arg0->work[2] -= 1; @@ -818,7 +887,8 @@ void fn_1_5C08(omObjData* arg0) { } } -void fn_1_5CDC(omObjData* arg0, s32 arg1, s32 arg2) { +void fn_1_5CDC(omObjData *arg0, s32 arg1, s32 arg2) +{ HuPrcSleep(arg2 + 1); do { HuPrcVSleep(); @@ -829,7 +899,7 @@ void fn_1_5D38(omObjData *arg0, s32 arg1, Vec arg2, float arg8, float arg9, floa { s32 temp_r29 = 0; s32 temp_r28 = 0; - + Vec sp4C; Vec sp40; Vec sp34; @@ -848,91 +918,98 @@ void fn_1_5D38(omObjData *arg0, s32 arg1, Vec arg2, float arg8, float arg9, floa sp10.x = 0; sp10.y = arg8; sp10.z = 0; - if(sp34.x-sp40.x >= 0.0f) { + if (sp34.x - sp40.x >= 0.0f) { temp_r29 = 1; - } else { + } + else { temp_r29 = 0; } - if(sp34.z-sp40.z >= 0.0f) { + if (sp34.z - sp40.z >= 0.0f) { temp_r28 = 1; - } else { + } + else { temp_r28 = 0; } - while(arg3) { + while (arg3) { fn_1_4D8(); - sp28.y = -(atan2d(sp34.z-sp40.z, sp34.x-sp40.x)-90); - if(sp28.y < 0.0f) { + sp28.y = -(atan2d(sp34.z - sp40.z, sp34.x - sp40.x) - 90); + if (sp28.y < 0.0f) { sp28.y += 360.0f; - } else if(sp28.y >= 360.0f) { + } + else if (sp28.y >= 360.0f) { sp28.y -= 360.0f; } - if(arg4) { - if(sp28.y >= 180.0f) { - if(sp1C.y-sp28.y >= 180.0f) { + if (arg4) { + if (sp28.y >= 180.0f) { + if (sp1C.y - sp28.y >= 180.0f) { sp1C.y -= 360.0f; } - if(sp1C.y-sp28.y < -180.0f) { + if (sp1C.y - sp28.y < -180.0f) { sp1C.y += 360.0f; } - } else { - if(sp1C.y-sp28.y > 180.0f) { + } + else { + if (sp1C.y - sp28.y > 180.0f) { sp1C.y -= 360.0f; } - if(sp1C.y-sp28.y <= -180.0f) { + if (sp1C.y - sp28.y <= -180.0f) { sp1C.y += 360.0f; } } } - sp4C.x = sp40.x = sp40.x+(arg9*sind(sp28.y)); - sp4C.z = sp40.z = sp40.z+(arg9*cosd(sp28.y)); - if(temp_r29 == 1) { - if(sp40.x >= sp34.x) { - sp4C.x = sp40.x = sp34.x; - temp_r29 = 2; - } - } else if(temp_r29 == 0) { - if(sp40.x <= sp34.x) { + sp4C.x = sp40.x = sp40.x + (arg9 * sind(sp28.y)); + sp4C.z = sp40.z = sp40.z + (arg9 * cosd(sp28.y)); + if (temp_r29 == 1) { + if (sp40.x >= sp34.x) { sp4C.x = sp40.x = sp34.x; temp_r29 = 2; } } - if(temp_r28 == 1) { - if(sp40.z >= sp34.z) { - sp4C.z = sp40.z = sp34.z; - temp_r28 = 2; + else if (temp_r29 == 0) { + if (sp40.x <= sp34.x) { + sp4C.x = sp40.x = sp34.x; + temp_r29 = 2; } - } else if(temp_r28 == 0) { - if(sp40.z <= sp34.z) { + } + if (temp_r28 == 1) { + if (sp40.z >= sp34.z) { sp4C.z = sp40.z = sp34.z; temp_r28 = 2; } } - if(arg4) { + else if (temp_r28 == 0) { + if (sp40.z <= sp34.z) { + sp4C.z = sp40.z = sp34.z; + temp_r28 = 2; + } + } + if (arg4) { sp1C.y = fn_1_234(sp1C.y, sp28.y, argA); } Hu3DModelPosSet(arg0->model[arg1], sp4C.x, sp40.y, sp4C.z); Hu3DModelRotSet(arg0->model[arg1], sp1C.x, sp1C.y, sp1C.z); - if(temp_r29 == 2 && temp_r28 == 2) { + if (temp_r29 == 2 && temp_r28 == 2) { break; } } sp1C.y = Hu3DData[arg0->model[arg1]].rot.y; - if(arg4) { + if (arg4) { s32 temp_r27; - for(temp_r27=0; temp_r27<=argA; temp_r27++) { + for (temp_r27 = 0; temp_r27 <= argA; temp_r27++) { fn_1_4D8(); - if(sp10.y >= 180.0f) { - if(sp1C.y-sp10.y >= 180.0f) { + if (sp10.y >= 180.0f) { + if (sp1C.y - sp10.y >= 180.0f) { sp1C.y -= 360.0f; } - if(sp1C.y-sp10.y < -180.0f) { + if (sp1C.y - sp10.y < -180.0f) { sp1C.y += 360.0f; } - } else { - if(sp1C.y-sp10.y > 180.0f) { + } + else { + if (sp1C.y - sp10.y > 180.0f) { sp1C.y -= 360.0f; } - if(sp1C.y-sp10.y <= -180.0f) { + if (sp1C.y - sp10.y <= -180.0f) { sp1C.y += 360.0f; } } @@ -944,5 +1021,5 @@ void fn_1_5D38(omObjData *arg0, s32 arg1, Vec arg2, float arg8, float arg9, floa void fn_1_6534(s32 grpId, s32 memberNo, float posX, float posY) { - HuSprPosSet(grpId, memberNo, posX, posY+0.5f); -} \ No newline at end of file + HuSprPosSet(grpId, memberNo, posX, posY + 0.5f); +} diff --git a/src/REL/mentDll/main.c b/src/REL/mentDll/main.c index 2a776a88..4b75201f 100644 --- a/src/REL/mentDll/main.c +++ b/src/REL/mentDll/main.c @@ -482,7 +482,7 @@ void fn_1_7304(void) void fn_1_7684(void) { s32 spC[7] = { 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F }; - WipeCreate(2, 0, -1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); while (WipeStatGet() != 0) { fn_1_4D8(); } @@ -530,7 +530,7 @@ void fn_1_7858(void) for (var_r31 = 0; var_r31 < 5; var_r31++) { Hu3DModelAttrReset(lbl_1_bss_33AC[var_r31].unk_00->model[1], HU3D_ATTR_DISPOFF); } - WipeCreate(1, 0, -1); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); while (WipeStatGet() != 0) { HuPrcVSleep(); @@ -690,7 +690,7 @@ void fn_1_81F0(void) HuAudSStreamPlay(0xC); OSReport("########### ME_MainProcFunc000\n"); WipeColorSet(0xFF, 0xFF, 0xFF); - WipeCreate(1, 0, -1); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); } void fn_1_824C(void) @@ -713,7 +713,7 @@ void fn_1_824C(void) fn_1_5818(lbl_1_bss_35BC[0].unk_00, 2, 2, 0, 2); Hu3DModelAttrSet(lbl_1_bss_35BC[0].unk_00->model[2], HU3D_ATTR_DISPOFF); OSReport("########### ME_MainProcFunc400\n"); - WipeCreate(1, 0, -1); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); while (WipeStatGet() != 0) { HuPrcVSleep(); @@ -1939,7 +1939,7 @@ void fn_1_C174(s32 arg0) fn_1_4B0(0x3C); HuAudSeqFadeOut(lbl_1_bss_14[0], 0x3E8); } - WipeCreate(2, 0, -1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); while (WipeStatGet() != 0) { fn_1_4D8(); @@ -2580,7 +2580,7 @@ void fn_1_E244(void) { lbl_1_bss_14[0] = HuAudSeqPlay(0x30); OSReport("########### ME_MainProcFunc200\n"); - WipeCreate(1, 0, -1); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); while (WipeStatGet() != 0) { fn_1_4D8(); } @@ -2604,7 +2604,7 @@ void fn_1_E3FC(void) { lbl_1_bss_14[0] = HuAudSeqPlay(6); OSReport("########### ME_MainProcFunc300\n"); - WipeCreate(1, 0, -1); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); while (WipeStatGet() != 0) { fn_1_4D8(); } @@ -2647,7 +2647,7 @@ void fn_1_E654(s32 arg0) { fn_1_4B0(0x3C); HuAudSeqFadeOut(lbl_1_bss_14[0], 0x3E8); - WipeCreate(2, 0, -1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); while (WipeStatGet() != 0) { fn_1_4D8(); } @@ -2668,7 +2668,7 @@ void fn_1_E71C(s32 arg0) s32 spC[7] = { 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F }; fn_1_4B0(0x3C); HuAudSeqFadeOut(lbl_1_bss_14[0], 0x3E8); - WipeCreate(2, 0, -1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); while (WipeStatGet() != 0) { fn_1_4D8(); } @@ -2855,7 +2855,7 @@ void fn_1_1053C(void) { fn_1_4B0(0x6E); WipeColorSet(0, 0, 0); - WipeCreate(2, 0, -1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); while (WipeStatGet() != 0) { fn_1_4D8(); } @@ -2913,7 +2913,7 @@ void fn_1_10C5C(void) { fn_1_4B0(0x6E); WipeColorSet(0, 0, 0); - WipeCreate(2, 0, -1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); while (WipeStatGet() != 0) { fn_1_4D8(); } @@ -2989,7 +2989,7 @@ void fn_1_114A0(void) { fn_1_4B0(0x6E); WipeColorSet(0, 0, 0); - WipeCreate(2, 0, -1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); while (WipeStatGet() != 0) { fn_1_4D8(); } diff --git a/src/REL/mpexDll/main.c b/src/REL/mpexDll/main.c index 8e6bdafc..148d7711 100644 --- a/src/REL/mpexDll/main.c +++ b/src/REL/mpexDll/main.c @@ -56,7 +56,7 @@ void fn_1_1C0(omObjData *object) if (omSysExitReq != 0) { HuAudFadeOut(0x3E8); WipeColorSet(0, 0, 0); - WipeCreate(2, 0, -1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); object->func = fn_1_188; } } diff --git a/src/REL/mpexDll/mpex.c b/src/REL/mpexDll/mpex.c index 0e255c6f..bfb46be1 100644 --- a/src/REL/mpexDll/mpex.c +++ b/src/REL/mpexDll/mpex.c @@ -238,7 +238,7 @@ void fn_1_3384(void) fn_1_1B7D0(0x1E); HuAudFadeOut(0x3E8); WipeColorSet(0, 0, 0); - WipeCreate(2, 0, -1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); while (WipeStatGet() != 0) { fn_1_1B7D0(1); @@ -265,7 +265,7 @@ void fn_1_33F8(void) espPosSet(var_r31, 288.0f, 240.0f); espAttrReset(var_r31, HUSPR_ATTR_DISPOFF); Hu3DBGColorSet(0, 0, 0); - WipeCreate(1, 0, 0xA); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); while (WipeStatGet() != 0) { HuPrcVSleep(); @@ -274,7 +274,7 @@ void fn_1_33F8(void) if (SLSave() == 0) { GWSystem.save_mode = 1; } - WipeCreate(2, 0, 0x14); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); while (WipeStatGet() != 0) { HuPrcVSleep(); @@ -289,7 +289,7 @@ void fn_1_3508(void) fn_1_1B7D0(0x1E); HuAudFadeOut(0x3E8); WipeColorSet(0, 0, 0); - WipeCreate(2, 0, -1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); while (WipeStatGet() != 0) { fn_1_1B7D0(1); @@ -317,7 +317,7 @@ void fn_1_36A4(void) fn_1_1B7D0(0x1E); HuAudSStreamAllFadeOut(0x3E8); WipeColorSet(0xFF, 0xFF, 0xFF); - WipeCreate(2, 0, -1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); while (WipeStatGet() != 0) { fn_1_1B7D0(1); } @@ -353,7 +353,7 @@ void fn_1_3758(s32 arg0, s32 arg1) HuAudSeqAllFadeOut(0x3E8); HuAudSStreamAllFadeOut(0x3E8); WipeColorSet(0xFF, 0xFF, 0xFF); - WipeCreate(2, 0, -1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); while (WipeStatGet() != 0) { fn_1_1B7D0(1); } @@ -397,7 +397,7 @@ void fn_1_397C(void) if (omovlevtno != 2) { lbl_1_data_298 = HuAudSeqPlay(0x2E); } - WipeCreate(1, 0, -1); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); while (WipeStatGet() != 0) { fn_1_1B7D0(1); } diff --git a/src/REL/option/state.c b/src/REL/option/state.c index 294e9c35..9e6b3e30 100755 --- a/src/REL/option/state.c +++ b/src/REL/option/state.c @@ -79,7 +79,7 @@ static void ExecState(omObjData *object) object->unk10 = 1; /* fallthrough */ case 1: - WipeCreate(WIPE_MODE_IN, -1, 60); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_PREV, 60); object->unk10 = 2; break; case 2: diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c index be8b5a53..d1d58b62 100644 --- a/src/REL/ztardll/main.c +++ b/src/REL/ztardll/main.c @@ -146,7 +146,7 @@ block_7: HuSprTPLvlSet(lbl_1_bss_4C[1], 2, 0.5f); } if (var_r26 == 0) { - WipeCreate(1, 0, 0x1E); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); HuPrcSleep(0xA); sp2C.x = 510.0f; sp2C.y = 80.0f; @@ -185,7 +185,7 @@ block_7: HuSprGrpPosSet(lbl_1_bss_50, 288.0f, 80.0f); HuSprGrpPosSet(lbl_1_bss_4C[0], 138.0f, 240.0f); HuSprGrpPosSet(lbl_1_bss_4C[1], 438.0f, 240.0f); - WipeCreate(1, 0, 0x14); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -341,7 +341,7 @@ loop_19: } fn_1_111E0(); fn_1_1190C(); - WipeCreate(2, 0, 0x14); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -554,7 +554,7 @@ void fn_1_2350(void) } HuSprBankSet(lbl_1_bss_50, 1, mgBattleStarMax); HuSprScaleSet(lbl_1_bss_50, 1, 1.0f, 1.0f); - WipeCreate(1, 0, 0x14); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -595,7 +595,7 @@ void fn_1_2350(void) fn_1_11264(MAKE_MESSID(0x33, 0x29), 0, 0); } fn_1_111E0(); - WipeCreate(2, 0, 0x1E); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -617,14 +617,14 @@ void fn_1_2350(void) Hu3DMotionShiftSet(lbl_1_bss_36[1], lbl_1_bss_E[1][4], 0.0f, 10.0f, HU3D_MOTATTR_NONE); HuPrcSleep(0xB4); WipeColorSet(0, 0, 0); - WipeCreate(2, 0, 0x1E); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); while (WipeStatGet() != 0) { HuPrcVSleep(); } } } else { - WipeCreate(1, 0, 0x14); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -688,7 +688,7 @@ void fn_1_2350(void) HuAudFXPlay(3); fn_1_1190C(); WipeColorSet(0, 0, 0); - WipeCreate(2, 0, 0x14); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -927,7 +927,7 @@ void fn_1_4374(void) spC[sp8[GWPlayerCfg[var_r31].group]++] = var_r31; } fn_1_4948(); - WipeCreate(1, 0, 0x14); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -980,7 +980,7 @@ void fn_1_4374(void) HuAudFXPlay(3); fn_1_1190C(); WipeColorSet(0, 0, 0); - WipeCreate(2, 0, 0x14); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); while (WipeStatGet() != 0) { HuPrcVSleep(); } @@ -1100,7 +1100,7 @@ void fn_1_51BC(s16 arg0) omOvlHisData *var_r31; WipeColorSet(0xFF, 0xFF, 0xFF); - WipeCreate(2, 0, 0x3C); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); HuAudSeqAllFadeOut(0x3E8); while (WipeStatGet() != 0) { @@ -1389,7 +1389,7 @@ void fn_1_66F8(void) HuPrcVSleep(); } WipeColorSet(0xFF, 0xFF, 0xFF); - WipeCreate(2, 0, 60); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); while (WipeStatGet() != 0) { HuPrcVSleep(); } From ea7d60dbd6ec9e6efd5cde09dca63738d59c6ded Mon Sep 17 00:00:00 2001 From: CreateSource Date: Mon, 4 Nov 2024 10:13:33 -0500 Subject: [PATCH 100/311] begin m418Dll/main.c --- .vscode/settings.json | 3 +- config/GMPE01_00/rels/m418Dll/symbols.txt | 2 +- include/REL/m418Dll.h | 6 + src/REL/m418Dll/main.c | 163 ++++++++++++++++++++++ src/REL/m418Dll/sequence.c | 0 5 files changed, 172 insertions(+), 2 deletions(-) create mode 100644 include/REL/m418Dll.h create mode 100644 src/REL/m418Dll/main.c create mode 100644 src/REL/m418Dll/sequence.c diff --git a/.vscode/settings.json b/.vscode/settings.json index b4546cc9..3cc8ae34 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -20,7 +20,8 @@ "*.inc": "c", ".clangd": "yaml", "m443dll.h": "c", - "object.h": "c" + "object.h": "c", + "m417dll.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { diff --git a/config/GMPE01_00/rels/m418Dll/symbols.txt b/config/GMPE01_00/rels/m418Dll/symbols.txt index 6d5e96a3..480de9a9 100644 --- a/config/GMPE01_00/rels/m418Dll/symbols.txt +++ b/config/GMPE01_00/rels/m418Dll/symbols.txt @@ -98,7 +98,7 @@ fn_1_9F94 = .text:0x00009F94; // type:function size:0x1BC _prolog = .text:0x0000A150; // type:function size:0x54 scope:global _epilog = .text:0x0000A1A4; // type:function size:0x4C scope:global fn_1_A1F0 = .text:0x0000A1F0; // type:function size:0x398 -fn_1_A588 = .text:0x0000A588; // type:function size:0x398 +ObjectSetup = .text:0x0000A588; // type:function size:0x398 fn_1_A920 = .text:0x0000A920; // type:function size:0x20 fn_1_A940 = .text:0x0000A940; // type:function size:0x28 fn_1_A968 = .text:0x0000A968; // type:function size:0xC8 diff --git a/include/REL/m418Dll.h b/include/REL/m418Dll.h new file mode 100644 index 00000000..80490211 --- /dev/null +++ b/include/REL/m418Dll.h @@ -0,0 +1,6 @@ +#ifndef M418DLL_H +#define M418DLL_H + +#include "dolphin.h" + +#endif diff --git a/src/REL/m418Dll/main.c b/src/REL/m418Dll/main.c new file mode 100644 index 00000000..81c357ae --- /dev/null +++ b/src/REL/m418Dll/main.c @@ -0,0 +1,163 @@ +#include "game/hsfman.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "rel_sqrt_consts.h" + +#include "REL/m418Dll.h" + +// types +typedef void (*M418DllFunc)(void); + +typedef struct M418DllUnkStruct { + M418DllFunc unk0; + Vec center; + char unk10[0xC]; + Vec rot; + char unk28[0xC]; + f32 zoom; + char unk38[0x4]; + f32 unk3C[3]; + char unk48[0x4]; +} M418DllUnkStruct; // sizeof 0x4C + +// bss +M418DllUnkStruct lbl_1_bss_1F4; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +Process* lbl_1_bss_0; + +// data +s32 lbl_1_data_8 = -1; + +// protos +void fn_1_B104(M418DllUnkStruct*, Vec, Vec); +void fn_1_B41C(M418DllUnkStruct*); + +void fn_1_0(void) { + Hu3DGLightCreate(-2500.0f, 5000.0f, 5000.0f, 0.0f, -1.0f, -1.0f, 0xFF, 0xD8, 0xA0); +} + +void fn_1_74(void) { + M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; + Vec sp2C = { 0.0f, 1100.0f, 1800.0f }; + Vec sp20 = { 0.0f, 600.0f, 600.0f }; + + fn_1_B104(var_r31, sp2C, sp20); + fn_1_B41C(var_r31); + var_r31->rot.x++; +} + +void fn_1_158(s32 arg0, f32 arg8) { + M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; + + var_r31->unk3C[arg0] = arg8; +} + +f32 fn_1_180(s32 arg0) { + M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; + + if (var_r31->unk3C[arg0] != 0.0f) { + var_r31->unk3C[arg0] *= -0.9f; + if (var_r31->unk3C[arg0] >= -0.5f) { + if (var_r31->unk3C[arg0] <= 0.5f) { + var_r31->unk3C[arg0] = 0.0f; + } + } + } + return var_r31->unk3C[arg0]; +} + +void fn_1_248(M418DllFunc arg0) { + M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; + + var_r31->unk0 = arg0; +} + +void fn_1_268(omObjData* object) { + M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; + + if (var_r31->unk0 != NULL) { + var_r31->unk0(); + } + + Center.x = var_r31->center.x + fn_1_180(0); + Center.y = var_r31->center.y + fn_1_180(1); + Center.z = var_r31->center.z + fn_1_180(2); + CRot.x = var_r31->rot.x; + CRot.y = var_r31->rot.y; + CRot.z = var_r31->rot.z; + CZoom = var_r31->zoom; +} + +void fn_1_500(void) { + M418DllUnkStruct* var_r31; + Hu3DCameraCreate(1); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 40.0f, 0.1f, 17500.0f, 1.2f); + var_r31 = &lbl_1_bss_1F4; + var_r31->unk0 = fn_1_74; + omAddObjEx(lbl_1_bss_0, 0x7FDA, 0, 0, -1, omOutView); + omAddObjEx(lbl_1_bss_0, 0x7FD9, 0, 0, -1, fn_1_268); +} + +void fn_1_618(void) { + Vec sp20 = { -1500.0f, 2500.0f, 1000.0f }; + Vec sp14 = { 0.0f, 0.0f, 0.0f }; + Vec sp8 = { 0.0f, 1.0f, 0.0f }; + + Hu3DShadowCreate(40.0f, 2000.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.675f); + Hu3DShadowPosSet(&sp20, &sp8, &sp14); +} + +void fn_1_6DC(s32 arg0) { + if (lbl_1_bss_8 == 0) { + lbl_1_bss_8 = 1; + lbl_1_bss_4 = arg0 * 0x3C; + } +} + +s32 fn_1_714(void) { + s32 var_r31 = 0; + + if (lbl_1_bss_8 == 3) { + var_r31 = 1; + } + return var_r31; +} + +void fn_1_748(void) { + if (lbl_1_bss_8 == 2) { + lbl_1_bss_8 = 3; + lbl_1_bss_4 = 30; + } +} + +void fn_1_780(void) { + switch (lbl_1_bss_8) { + case 1: + if (lbl_1_data_8 == -1) { + lbl_1_data_8 = MGSeqCreate(1, lbl_1_bss_4 / 60, -1, -1); + } + lbl_1_bss_8 = 2; + break; + case 2: + lbl_1_bss_4--; + if (lbl_1_data_8 != -1) { + MGSeqParamSet(lbl_1_data_8, 1, ((lbl_1_bss_4 + 0x3B) / 60)); + } + if (lbl_1_bss_4 <= 0) { + lbl_1_bss_4 = 30; + lbl_1_bss_8 = 3; + } + break; + case 3: + if (lbl_1_data_8 != -1) { + MGSeqParamSet(lbl_1_data_8, 2, -1); + lbl_1_data_8 = -1; + } + lbl_1_bss_4 = 0; + lbl_1_bss_8 = 0; + break; + } +} diff --git a/src/REL/m418Dll/sequence.c b/src/REL/m418Dll/sequence.c new file mode 100644 index 00000000..e69de29b From 4a4967d4a3eb99f364cae84a47c412acac9a9274 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Mon, 4 Nov 2024 22:17:14 -0600 Subject: [PATCH 101/311] Improve audio types --- config/GMPE01_00/symbols.txt | 2 +- include/game/audio.h | 51 +++--- include/game/msm.h | 270 ++++++++++++++++++++--------- src/REL/bootDll/main.c | 4 +- src/REL/instDll/main.c | 8 +- src/REL/m404Dll/main.c | 10 +- src/REL/m431Dll/main.c | 10 +- src/REL/w04Dll/mg_coin.c | 12 +- src/game/audio.c | 317 ++++++++++++++++++----------------- src/game/board/audio.c | 34 ++-- src/game/board/main.c | 10 +- 11 files changed, 430 insertions(+), 298 deletions(-) diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 8d327e2d..58e4e1b5 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -3558,7 +3558,7 @@ msmSePlay = .text:0x80119A94; // type:function size:0x480 msmSeInit = .text:0x80119F14; // type:function size:0x130 msmStreamGetStatus = .text:0x8011A044; // type:function size:0xC8 msmStreamSetMasterVolume = .text:0x8011A10C; // type:function size:0x118 -msmStreamPauseAll = .text:0x8011A224; // type:function size:0xE0 +msmStreamStopAll = .text:0x8011A224; // type:function size:0xE0 msmStreamStop = .text:0x8011A304; // type:function size:0x204 msmStreamPlay = .text:0x8011A508; // type:function size:0x88 msmStreamPeriodicProc = .text:0x8011A590; // type:function size:0x8C diff --git a/include/game/audio.h b/include/game/audio.h index ef1ca3a9..16738144 100644 --- a/include/game/audio.h +++ b/include/game/audio.h @@ -3,40 +3,41 @@ #include "dolphin.h" -typedef struct hu_snd_grp_data { - /* 0x00 */ s16 ovl; - /* 0x02 */ s16 grpset; - /* 0x04 */ s32 auxANo; - /* 0x08 */ s32 auxBNo; - /* 0x0C */ s8 auxAVol; - /* 0x0D */ s8 auxBVol; -} HuSndGrpData; +typedef struct sndGrpTbl_s { + s16 ovl; + s16 grpSet; + s32 auxANo; + s32 auxBNo; + s8 auxAVol; + s8 auxBVol; +} SNDGRPTBL; + void HuAudInit(void); -s32 HuAudStreamPlay(char *name, s32 arg1); +s32 HuAudStreamPlay(char *name, BOOL flag); void HuAudStreamVolSet(s16 vol); void HuAudStreamPauseOn(void); void HuAudStreamPauseOff(void); -void HuAudStreamFadeOut(s32 arg0); +void HuAudStreamFadeOut(s32 streamNo); void HuAudAllStop(void); -void HuAudFadeOut(s32 arg0); -s32 HuAudFXPlay(s32 arg0); -s32 HuAudFXPlayVol(s32 arg0, s16 arg1); -s32 HuAudFXPlayVolPan(s32 arg0, s16 arg1, s16 arg2); -void HuAudFXStop(s32 arg0); +void HuAudFadeOut(s32 speed); +int HuAudFXPlay(int seId); +int HuAudFXPlayVol(int seId, s16 vol); +int HuAudFXPlayVolPan(int seId, s16 vol, s16 pan); +void HuAudFXStop(int seNo); void HuAudFXAllStop(void); -void HuAudFXFadeOut(s32 arg0, s32 arg1); -void HuAudFXPanning(s32 arg0, s16 arg1); -void HuAudFXListnerSet(Vec* arg0, Vec* arg1, float arg2, float arg3); -void HuAudFXListnerSetEX(Vec* arg0, Vec* arg1, float sndDist, float sndSpeed, float arg4, float arg5, float arg6); +void HuAudFXFadeOut(int seNo, s32 speed); +void HuAudFXPanning(int seNo, s16 pan); +void HuAudFXListnerSet(Vec *pos, Vec *heading, float sndDist, float sndSpeed); +void HuAudFXListnerSetEX(Vec *pos, Vec *heading, float sndDist, float sndSpeed, float startDis, float frontSurDis, float backSurDis); void HuAudFXListnerUpdate(Vec *arg0, Vec *arg1); -s32 HuAudFXEmiterPlay(s32 arg0, Vec *arg1); -void HuAudFXEmiterUpDate(s32 arg0, Vec *arg1); +int HuAudFXEmiterPlay(int seId, Vec *pos); +void HuAudFXEmiterUpDate(int seNo, Vec *pos); void HuAudFXListnerKill(void); void HuAudFXPauseAll(s32 arg0); -s32 HuAudFXStatusGet(s32 arg0); -s32 HuAudFXPitchSet(s32 arg0, s16 arg1); -s32 HuAudFXVolSet(s32 arg0, s16 arg1); +s32 HuAudFXStatusGet(int seNo); +s32 HuAudFXPitchSet(int seNo, s16 pitch); +s32 HuAudFXVolSet(int seNo, s16 vol); s32 HuAudSeqPlay(s16 arg0); void HuAudSeqStop(s32 arg0); void HuAudSeqFadeOut(s32 arg0, s32 arg1); @@ -73,6 +74,6 @@ extern float Snd3DDistOffset; extern s32 musicOffF; extern u8 fadeStat; -extern HuSndGrpData HuSndGrpTbl[]; +extern SNDGRPTBL sndGrpTable[]; #endif diff --git a/include/game/msm.h b/include/game/msm.h index 1885d41e..9ab79e8e 100644 --- a/include/game/msm.h +++ b/include/game/msm.h @@ -1,87 +1,203 @@ -#ifndef _GAME_MSM_H -#define _GAME_MSM_H +#ifndef MSM_H +#define MSM_H #include "dolphin.h" +#include "musyx/musyx.h" -typedef struct { - s32 unk00; - s32 unk04; - char unk08[4]; - char *unk0C; - char *unk10; - s32 unk14; - s32 unk18; - s32 unk1C; - void *unk20; - s32 unk24; -} UnkMsmStruct_00; // Size 0x28 +#define MSM_SEPARAM_NONE 0 +#define MSM_SEPARAM_VOL (1 << 0) +#define MSM_SEPARAM_PAN (1 << 1) +#define MSM_SEPARAM_PITCH (1 << 2) +#define MSM_SEPARAM_SPAN (1 << 3) +#define MSM_SEPARAM_AUXVOLA (1 << 4) +#define MSM_SEPARAM_AUXVOLB (1 << 5) +#define MSM_SEPARAM_POS (1 << 6) -typedef struct { - /* 0x00 */ s32 unk00; - /* 0x04 */ s8 unk04; - /* 0x05 */ s8 unk05; - /* 0x06 */ s16 unk06; - /* 0x08 */ char unk08[1]; - /* 0x09 */ s8 unk09; - /* 0x0A */ s8 unk0A; - /* 0x0B */ char unk0B[5]; - /* 0x10 */ Vec unk10; -} UnkMsmStruct_01; // Size 0x1C +#define MSM_LISTENER_NONE 0 +#define MSM_LISTENER_STARTDIS (1 << 0) +#define MSM_LISTENER_FRONTSURDIS (1 << 1) +#define MSM_LISTENER_BACKSURDIS (1 << 2) -typedef struct { - /* 0x00 */ s32 unk00; - /* 0x04 */ float startDis; - /* 0x08 */ float frontSurDis; - /* 0x0C */ float backSurDis; -} UnkMsmStruct_02; // Size (min: 0x10, max: 0x1C) +#define MSM_MUSPARAM_NONE 0 +#define MSM_MUSPARAM_CHAN (1 << 0) +#define MSM_MUSPARAM_VOL (1 << 1) +#define MSM_MUSPARAM_PAUSE (1 << 2) +#define MSM_MUSPARAM_FADESPEED (1 << 3) +#define MSM_MUSPARAM_SPEED (1 << 4) -typedef struct { - /* 0x00 */ s32 unk00; - /* 0x04 */ s8 unk04; - /* 0x05 */ s8 unk05; - /* 0x06 */ u16 unk06; -} UnkMsmStruct_03; // Size unknown (min: 8, max: 0x10) +#define MSM_STREAMPARAM_NONE 0 +#define MSM_STREAMPARAM_VOL (1 << 0) +#define MSM_STREAMPARAM_PAN (1 << 1) +#define MSM_STREAMPARAM_SPAN (1 << 2) +#define MSM_STREAMPARAM_AUXA (1 << 4) +#define MSM_STREAMPARAM_AUXB (1 << 5) +#define MSM_STREAMPARAM_FADESPEED (1 << 8) +#define MSM_STREAMPARAM_CHAN (1 << 9) +#define MSM_STREAMPARAM_PAUSE (1 << 10) -typedef struct { - /* 0x00 */ s32 unk00; - /* 0x04 */ char unk04[1]; - /* 0x05 */ s8 unk05; - /* 0x06 */ u16 unk06; - /* 0x08 */ char unk08[1]; -} UnkMsmStruct_04; // Size unknown (min: 9, max: 0x18) +#define MSM_ERR_OPENFAIL -1 +#define MSM_ERR_READFAIL -2 +#define MSM_ERR_OUTOFMEM -10 +#define MSM_ERR_OUTOFAMEM -20 +#define MSM_ERR_INITFAIL -20 +#define MSM_ERR_INVALID_AUXPARAM -31 +#define MSM_ERR_PLAYFAIL -33 +#define MSM_ERR_STREAMALLOC_FAIL -35 +#define MSM_ERR_INSTALLED -36 +#define MSM_ERR_GRP_NOTLOADED -103 +#define MSM_ERR_INVALIDID -120 +#define MSM_ERR_INVALIDFILE -121 +#define MSM_ERR_REMOVEDID -122 +#define MSM_ERR_MUSGRP_NOTLOADED -123 +#define MSM_ERR_OUTOFMUS -130 -void msmSysRegularProc(void); -void msmSysSetOutputMode(s32 arg0); -void msmSysSetAux(s32 arg0, s32 arg1); -s32 msmSysGetSampSize(s32 arg0); +#define MSM_VOL_MAX 127 +#define MSM_PAN_LEFT 32 +#define MSM_PAN_CENTER 64 +#define MSM_PAN_RIGHT 96 + +#define MSM_SE_DONE 0 +#define MSM_SE_PLAY 1 +#define MSM_SE_PAUSEIN 2 +#define MSM_SE_PAUSEOUT 3 + +#define MSM_MUS_DONE 0 +#define MSM_MUS_STOP 1 +#define MSM_MUS_PLAY 2 +#define MSM_MUS_PAUSE 3 + +#define MSM_STREAM_DONE 0 +#define MSM_STREAM_STOP 1 +#define MSM_STREAM_PLAY 2 +#define MSM_STREAM_PAUSEIN 3 +#define MSM_STREAM_PAUSEOUT 4 +#define MSM_STREAM_DVDERROR 5 + +#define MSM_MUS_MAX 4 + +#define MSM_STREAM_NONE -1 + +#define MSM_AUXA_DEFAULT 0 +#define MSM_AUXB_DEFAULT 1 +#define MSM_AUX_NONE -1 + +#define MSM_ENTRY_SENO_MAX 32 + +typedef BOOL (*MSM_OPEN)(s32 entrynum, DVDFileInfo *fileInfo); +typedef BOOL (*MSM_READ)(DVDFileInfo *fileInfo, void *addr, s32 length, s32 offset, s32 prio); +typedef BOOL (*MSM_CLOSE)(DVDFileInfo *fileInfo); + + +typedef struct msmAram_s { + BOOL skipARInit; + union { + struct { + u32 aramEnd; + }; + struct { + u32 numEntries; + u32 *stackIndex; + }; + }; +} MSM_ARAM; + +typedef struct msmInit_s { + char *msmPath; + char *pdtPath; + MSM_OPEN open; + MSM_READ read; + MSM_CLOSE close; + void *heap; + u32 heapSize; +} MSM_INIT; + +typedef struct msmSeParam_s { + s32 flag; + s8 vol; + s8 pan; + s16 pitch; + u8 span; + s8 auxAVol; + s8 auxBVol; + s32 pad; + Vec pos; +} MSM_SEPARAM; + +typedef struct msmSe_s { + u16 groupId; + u16 fxId; + s8 vol; + s8 pan; + s16 pitchBend; + u8 span; + u8 reverb; + u8 chorus; + u8 doppler; + s8 comp; + u8 pad[3]; +} MSMSE; + +typedef struct msmSeListener_s { + s32 flag; + float startDis; + float frontSurDis; + float backSurDis; +} MSM_SELISTENER; + +typedef struct msmMusParam_s { + s32 flag; + s8 chan; + s8 vol; + u16 fadeSpeed; + u16 speed; +} MSM_MUSPARAM; + +typedef struct msmStreamParam_s { + s32 flag; + s8 vol; + s8 pan; + s8 span; + s8 auxA; + s8 auxB; + s8 chan; + u16 fadeSpeed; +} MSM_STREAMPARAM; + +s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram); +void msmSysSetOutputMode(SND_OUTPUTMODE mode); s32 msmSysDelGroupAll(void); -s32 msmSysDelGroupBase(s32 arg0); -void msmSysLoadGroupBase(s32 arg0, void *arg1); -s32 msmSysLoadGroupSet(s32 arg0, void *arg1); -s32 msmSysInit(char **arg0, UnkMsmStruct_00 *arg1); -s32 msmMusGetMidiCtrl(s32 arg0, s32 arg1, s32 arg2); -s32 msmMusGetNumPlay(s32 arg0); -s32 msmMusGetStatus(s32 arg0); -void msmMusPauseAll(s32 arg0, s32 arg1); -void msmMusPause(s32 arg0, s32 arg1, s32 arg2); -void msmMusSetParam(s16 arg0, UnkMsmStruct_04 *arg1); -void msmMusStopAll(s32 arg0, s32 arg1); -void msmMusStop(s32 arg0, s32 arg1); -s32 msmMusPlay(s32 arg0, UnkMsmStruct_03 *arg1); -void msmSeDelListener(void); -void msmSeUpdataListener(Vec *arg0, Vec *arg1); -void msmSeSetListener(Vec* arg0, Vec* arg1, float arg2, float arg3, UnkMsmStruct_02 *arg4); -s32 msmSeGetEntryID(s32 arg0, void *arg1); -s32 msmSeGetNumPlay(s32 arg0); -s32 msmSeGetStatus(s32 arg0); -s32 msmSeSetParam(s32 arg0, UnkMsmStruct_01 *arg1); -void msmSePauseAll(s32 arg0, s32 arg1); -void msmSeStopAll(s32 arg0, s32 arg1); -void msmSeStop(s32 arg0, s32 arg1); -s32 msmSePlay(s32 arg0, UnkMsmStruct_01 *arg1); -s32 msmStreamGetStatus(s32 arg0); -void msmStreamPauseAll(s32 arg0); -void msmStreamStop(s32 arg0, s32 arg1); -s32 msmStreamPlay(s16 arg0, s32 *arg1); +s32 msmSysLoadGroup(s32 grp, void *buf, BOOL flag); +s32 msmSysGetSampSize(BOOL baseGrp); +s32 msmSysDelGroupBase(s32 grpNum); -#endif +s32 msmSeSetParam(int seNo, MSM_SEPARAM *param); +int msmSePlay(int seId, MSM_SEPARAM *param); +s32 msmSeStop(int seNo, s32 speed); +s32 msmSePauseAll(BOOL pause, s32 speed); +s32 msmSePause(int seNo, BOOL pause, s32 speed); +void msmSeStopAll(BOOL checkGrp, s32 speed); +s32 msmSeSetListener(Vec *pos, Vec *heading, float sndDist, float sndSpeed, MSM_SELISTENER *listener); +s32 msmSeUpdataListener(Vec *pos, Vec *heading); +void msmSeDelListener(void); +s32 msmSeGetStatus(int seNo); +s32 msmSeGetNumPlay(BOOL baseGrp); +s32 msmSeGetEntryID(s16 seId, int *seNo); + +int msmMusPlay(int musId, MSM_MUSPARAM *musParam); +s32 msmMusStop(int musNo, s32 speed); +s32 msmMusPauseAll(BOOL pause, s32 speed); +s32 msmMusPause(int musNo, BOOL pause, s32 speed); +s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl); +void msmMusStopAll(BOOL checkGrp, s32 speed); +s32 msmMusGetStatus(int musNo); +s32 msmMusGetNumPlay(BOOL baseGrp); + +int msmStreamPlay(int streamId, MSM_STREAMPARAM *streamParam); +s32 msmStreamStop(int streamNo, s32 speed); +s32 msmStreamPauseAll(BOOL pause, s32 speed); +s32 msmStreamPause(int streamNo, BOOL pause, s32 speed); + +void msmStreamStopAll(s32 speed); +s32 msmStreamGetStatus(int streamNo); + +#endif \ No newline at end of file diff --git a/src/REL/bootDll/main.c b/src/REL/bootDll/main.c index 85c5e263..ce1d563d 100644 --- a/src/REL/bootDll/main.c +++ b/src/REL/bootDll/main.c @@ -502,13 +502,13 @@ static BOOL TitleProc(void) { float scale; float scale_time; - s32 y_offset[32]; + int seNo[32]; s16 i; Hu3DModelAttrReset(titleModel[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(titleModel[1], HU3D_ATTR_DISPOFF); HuSprAttrReset(titleGroup, 0, HUSPR_ATTR_DISPOFF); HuSprAttrReset(titleGroup, 1, HUSPR_ATTR_DISPOFF); - OSReport(">>>>>>>>MSM_SE_SEL_01 %d\n", msmSeGetEntryID(2092, y_offset)); + OSReport(">>>>>>>>MSM_SE_SEL_01 %d\n", msmSeGetEntryID(2092, seNo)); OSReport(">>>>>>>>SE Num %d\n", msmSeGetNumPlay(0)); HuAudSStreamPlay(20); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); diff --git a/src/REL/instDll/main.c b/src/REL/instDll/main.c index 36b6a2a8..2853c63e 100644 --- a/src/REL/instDll/main.c +++ b/src/REL/instDll/main.c @@ -65,13 +65,13 @@ void ObjectSetup(void) lbl_1_bss_10 = 0; lbl_1_bss_4 = 0; _ClearFlag(0x1000C); - for (i = 0; HuSndGrpTbl[i].ovl != OVL_INVALID; i++) { - if (HuSndGrpTbl[i].ovl == mgInfoTbl[lbl_1_bss_14].ovl) { + for (i = 0; sndGrpTable[i].ovl != OVL_INVALID; i++) { + if (sndGrpTable[i].ovl == mgInfoTbl[lbl_1_bss_14].ovl) { break; } } - if (HuSndGrpTbl[i].ovl != OVL_INVALID) { - HuAudSndGrpSetSet(HuSndGrpTbl[i].grpset); + if (sndGrpTable[i].ovl != OVL_INVALID) { + HuAudSndGrpSetSet(sndGrpTable[i].grpSet); } if (mgInfoTbl[lbl_1_bss_14].ovl == OVL_M411) { if (GWMGTypeGet() == -1) { diff --git a/src/REL/m404Dll/main.c b/src/REL/m404Dll/main.c index c8a83f86..63011f56 100644 --- a/src/REL/m404Dll/main.c +++ b/src/REL/m404Dll/main.c @@ -972,13 +972,13 @@ void fn_1_3F30(omObjData *object) } } -void fn_1_445C(s32 arg0, s16 arg1) +void fn_1_445C(int seId, s16 vol) { - UnkMsmStruct_01 sp8; + MSM_SEPARAM param; - sp8.unk00 = 1; - sp8.unk04 = arg1; - msmSeSetParam(arg0, &sp8); + param.flag = MSM_SEPARAM_VOL; + param.vol = vol; + msmSeSetParam(seId, ¶m); } void fn_1_44A0(omObjData *object) diff --git a/src/REL/m431Dll/main.c b/src/REL/m431Dll/main.c index 169ec28f..3d3f65f2 100644 --- a/src/REL/m431Dll/main.c +++ b/src/REL/m431Dll/main.c @@ -2196,10 +2196,10 @@ void fn_1_79FC(Mtx arg0, Mtx arg1) arg1[2][3] = 0; } -s32 fn_1_7A78(s32 arg0, s16 arg1) +s32 fn_1_7A78(s32 arg0, s16 vol) { - UnkMsmStruct_01 sp10; - sp10.unk00 = 1; - sp10.unk04 = arg1; - return msmSeSetParam(arg0, &sp10); + MSM_SEPARAM seParam; + seParam.flag = MSM_SEPARAM_VOL; + seParam.vol = vol; + return msmSeSetParam(arg0, &seParam); } diff --git a/src/REL/w04Dll/mg_coin.c b/src/REL/w04Dll/mg_coin.c index fb7f32c5..11ce6a4e 100755 --- a/src/REL/w04Dll/mg_coin.c +++ b/src/REL/w04Dll/mg_coin.c @@ -235,7 +235,7 @@ static void fn_1_D0DC(void) { } static void fn_1_D174(omObjData *arg0) { - UnkMsmStruct_03 sp8; + MSM_MUSPARAM musParam; if (arg0->work[0] == 0) { arg0->work[0] = MGSeqCreate(3, 0); @@ -243,11 +243,11 @@ static void fn_1_D174(omObjData *arg0) { return; } if (MGSeqStatGet(arg0->work[0]) == 0) { - sp8.unk00 = 1; - sp8.unk06 = 0; - sp8.unk05 = 0x7F; - sp8.unk04 = 1; - lbl_1_data_588 = msmMusPlay(0x1D, &sp8); + musParam.flag = MSM_MUSPARAM_CHAN; + musParam.fadeSpeed = 0; + musParam.vol = 0x7F; + musParam.chan = 1; + lbl_1_data_588 = msmMusPlay(0x1D, &musParam); arg0->func = fn_1_D230; } } diff --git a/src/game/audio.c b/src/game/audio.c index b90ac0bd..82810c52 100644 --- a/src/game/audio.c +++ b/src/game/audio.c @@ -5,7 +5,7 @@ #include "game/wipe.h" #include "game/gamework_data.h" -static s32 HuSePlay(s32 arg0, UnkMsmStruct_01 *arg1); +static int HuSePlay(int seId, MSM_SEPARAM *param); extern s16 omSysExitReq; @@ -32,29 +32,34 @@ static char *lbl_8012E9AC[] = { "" }; -void HuAudInit(void) { - UnkMsmStruct_00 sp8; - s32 temp_r3; + +void HuAudInit(void) +{ + MSM_INIT msmInit; + MSM_ARAM msmAram; + + s32 result; s16 i; - sp8.unk20 = HuMemDirectMalloc(HEAP_MUSIC, 0x13FC00); - sp8.unk24 = 0x13FC00; - sp8.unk0C = "/sound/mpgcsnd.msm"; - sp8.unk10 = "/sound/mpgcstr.pdt"; - sp8.unk14 = 0; - sp8.unk18 = 0; - sp8.unk1C = 0; - sp8.unk00 = 1; - sp8.unk04 = 0x808000; - temp_r3 = msmSysInit(&sp8.unk0C, &sp8); - if (temp_r3 < 0) { - OSReport("MSM(Sound Manager) Error:Error Code %d\n", temp_r3); + msmInit.heap = HuMemDirectMalloc(HEAP_MUSIC, 0x13FC00); + msmInit.heapSize = 0x13FC00; + msmInit.msmPath = "/sound/mpgcsnd.msm"; + msmInit.pdtPath = "/sound/mpgcstr.pdt"; + msmInit.open = NULL; + msmInit.read = NULL; + msmInit.close = NULL; + msmAram.skipARInit = TRUE; + msmAram.aramEnd = 0x808000; + result = msmSysInit(&msmInit, &msmAram); + + if (result < 0) { + OSReport("MSM(Sound Manager) Error:Error Code %d\n", result); while (1); } - if (OSGetSoundMode() == 0) { - msmSysSetOutputMode(0); + if (OSGetSoundMode() == OS_SOUND_MODE_MONO) { + msmSysSetOutputMode(SND_OUTPUTMODE_MONO); } else { - msmSysSetOutputMode(2); + msmSysSetOutputMode(SND_OUTPUTMODE_SURROUND); } for (i = 0; i < 64; i++) { sndFXBuf[i][0] = -1; @@ -68,7 +73,7 @@ void HuAudInit(void) { musicOffF = 0; } -s32 HuAudStreamPlay(char *name, s32 arg1) { +s32 HuAudStreamPlay(char *name, BOOL flag) { return 0; } @@ -101,115 +106,122 @@ void HuAudFadeOut(s32 arg0) { HuAudSStreamAllFadeOut(arg0); } -s32 HuAudFXPlay(s32 arg0) { +int HuAudFXPlay(int seId) +{ WipeState *wipe = &wipeData; if (omSysExitReq != 0 || (wipeData.mode == WIPE_MODE_OUT && wipe->time / wipe->duration > 0.5)) { return 0; } - return HuAudFXPlayVolPan(arg0, 0x7F, 0x40); + return HuAudFXPlayVolPan(seId, MSM_VOL_MAX, MSM_PAN_CENTER); } -s32 HuAudFXPlayVol(s32 arg0, s16 arg1) { +int HuAudFXPlayVol(int seId, s16 vol) { if (omSysExitReq != 0) { return 0; } - return HuAudFXPlayVolPan(arg0, arg1, 0x40); + return HuAudFXPlayVolPan(seId, vol, MSM_PAN_CENTER); } -s32 HuAudFXPlayVolPan(s32 arg0, s16 arg1, s16 arg2) { - UnkMsmStruct_01 sp10; +int HuAudFXPlayVolPan(int seId, s16 vol, s16 pan) +{ + MSM_SEPARAM seParam; if (omSysExitReq != 0) { return 0; } - sp10.unk00 = 3; - sp10.unk04 = arg1; - sp10.unk05 = arg2; - return HuSePlay(arg0, &sp10); + seParam.flag = MSM_SEPARAM_VOL|MSM_SEPARAM_PAN; + seParam.vol = vol; + seParam.pan = pan; + return HuSePlay(seId, &seParam); } -void HuAudFXStop(s32 arg0) { - msmSeStop(arg0, 0); +void HuAudFXStop(int seNo) { + msmSeStop(seNo, 0); } void HuAudFXAllStop(void) { msmSeStopAll(0, 0); } -void HuAudFXFadeOut(s32 arg0, s32 arg1) { - msmSeStop(arg0, arg1); +void HuAudFXFadeOut(int seNo, s32 speed) { + msmSeStop(seNo, speed); } -void HuAudFXPanning(s32 arg0, s16 arg1) { - UnkMsmStruct_01 sp10; +void HuAudFXPanning(int seNo, s16 pan) { + MSM_SEPARAM seParam; if (omSysExitReq == 0) { - sp10.unk00 = 2; - sp10.unk05 = arg1; - msmSeSetParam(arg0, &sp10); + seParam.flag = MSM_SEPARAM_PAN; + seParam.pan = pan; + msmSeSetParam(seNo, &seParam); } } -void HuAudFXListnerSet(Vec* arg0, Vec* arg1, float arg2, float arg3) { +void HuAudFXListnerSet(Vec *pos, Vec *heading, float sndDist, float sndSpeed) +{ + if(omSysExitReq) { + return; + } + HuAudFXListnerSetEX(pos, heading, + sndDist + Snd3DDistOffset, + sndSpeed + Snd3DSpeedOffset, + Snd3DStartDisOffset, + Snd3DFrontSurDisOffset + (0.25 * sndDist + Snd3DStartDisOffset), + Snd3DBackSurDisOffset + (0.25 * sndDist + Snd3DStartDisOffset)); +} + +void HuAudFXListnerSetEX(Vec *pos, Vec *heading, float sndDist, float sndSpeed, float startDis, float frontSurDis, float backSurDis) +{ + MSM_SELISTENER listener; + if(omSysExitReq) { + return; + } + listener.flag = MSM_LISTENER_STARTDIS|MSM_LISTENER_FRONTSURDIS|MSM_LISTENER_BACKSURDIS; + listener.startDis = startDis + Snd3DStartDisOffset; + listener.frontSurDis = frontSurDis + Snd3DFrontSurDisOffset; + listener.backSurDis = backSurDis + Snd3DBackSurDisOffset; + msmSeSetListener(pos, heading, sndDist + Snd3DDistOffset, sndSpeed + Snd3DSpeedOffset, &listener); + OSReport("//////////////////////////////////\n"); + OSReport("sndDist %f\n", sndDist); + OSReport("sndSpeed %f\n", sndSpeed); + OSReport("startDis %f\n", listener.startDis); + OSReport("frontSurDis %f\n", listener.frontSurDis); + OSReport("backSurDis %f\n", listener.backSurDis); + OSReport("//////////////////////////////////\n"); +} + +void HuAudFXListnerUpdate(Vec *pos, Vec *heading) +{ if (omSysExitReq == 0) { - HuAudFXListnerSetEX(arg0, arg1, - arg2 + Snd3DDistOffset, - arg3 + Snd3DSpeedOffset, - Snd3DStartDisOffset, - Snd3DFrontSurDisOffset + (0.25 * arg2 + Snd3DStartDisOffset), - Snd3DBackSurDisOffset + (0.25 * arg2 + Snd3DStartDisOffset)); + msmSeUpdataListener(pos, heading); } } -void HuAudFXListnerSetEX(Vec* arg0, Vec* arg1, float sndDist, float sndSpeed, float arg4, float arg5, float arg6) { - UnkMsmStruct_02 sp1C; - - if (omSysExitReq == 0) { - sp1C.unk00 = 7; - sp1C.startDis = arg4 + Snd3DStartDisOffset; - sp1C.frontSurDis = arg5 + Snd3DFrontSurDisOffset; - sp1C.backSurDis = arg6 + Snd3DBackSurDisOffset; - msmSeSetListener(arg0, arg1, sndDist + Snd3DDistOffset, sndSpeed + Snd3DSpeedOffset, &sp1C); - OSReport("//////////////////////////////////\n"); - OSReport("sndDist %f\n", sndDist); - OSReport("sndSpeed %f\n", sndSpeed); - OSReport("startDis %f\n", sp1C.startDis); - OSReport("frontSurDis %f\n", sp1C.frontSurDis); - OSReport("backSurDis %f\n", sp1C.backSurDis); - OSReport("//////////////////////////////////\n"); +int HuAudFXEmiterPlay(int seId, Vec *pos) +{ + MSM_SEPARAM seParam; + if(omSysExitReq) { + return 0; } + seParam.flag = MSM_SEPARAM_POS; + seParam.pos.x = pos->x; + seParam.pos.y = pos->y; + seParam.pos.z = pos->z; + return HuSePlay(seId, &seParam); } -void HuAudFXListnerUpdate(Vec *arg0, Vec *arg1) { - if (omSysExitReq == 0) { - msmSeUpdataListener(arg0, arg1); - } -} - -s32 HuAudFXEmiterPlay(s32 arg0, Vec *arg1) { - UnkMsmStruct_01 spC; - - if (omSysExitReq != 0) { - return 0; - } - spC.unk00 = 0x40; - spC.unk10.x = arg1->x; - spC.unk10.y = arg1->y; - spC.unk10.z = arg1->z; - return HuSePlay(arg0, &spC); -} - -void HuAudFXEmiterUpDate(s32 arg0, Vec *arg1) { - UnkMsmStruct_01 spC; - - if (omSysExitReq == 0) { - spC.unk00 = 0x40; - spC.unk10.x = arg1->x; - spC.unk10.y = arg1->y; - spC.unk10.z = arg1->z; - msmSeSetParam(arg0, &spC); +void HuAudFXEmiterUpDate(int seNo, Vec *pos) +{ + MSM_SEPARAM param; + if(omSysExitReq) { + return; } + param.flag = MSM_SEPARAM_POS; + param.pos.x = pos->x; + param.pos.y = pos->y; + param.pos.z = pos->z; + msmSeSetParam(seNo, ¶m); } void HuAudFXListnerKill(void) { @@ -220,30 +232,31 @@ void HuAudFXPauseAll(s32 arg0) { msmSePauseAll(arg0, 0x64); } -s32 HuAudFXStatusGet(s32 arg0) { - return msmSeGetStatus(arg0); +s32 HuAudFXStatusGet(int seNo) { + return msmSeGetStatus(seNo); } -s32 HuAudFXPitchSet(s32 arg0, s16 arg1) { - UnkMsmStruct_01 sp10; - - if (omSysExitReq != 0) { +s32 HuAudFXPitchSet(int seNo, s16 pitch) +{ + MSM_SEPARAM param; + if(omSysExitReq) { return 0; } - sp10.unk00 = 4; - sp10.unk06 = arg1; - return msmSeSetParam(arg0, &sp10); + param.flag = MSM_SEPARAM_PITCH; + param.pitch = pitch; + return msmSeSetParam(seNo, ¶m); } -s32 HuAudFXVolSet(s32 arg0, s16 arg1) { - UnkMsmStruct_01 sp10; +s32 HuAudFXVolSet(int seNo, s16 vol) +{ + MSM_SEPARAM param; - if (omSysExitReq != 0) { + if(omSysExitReq) { return 0; } - sp10.unk00 = 1; - sp10.unk04 = arg1; - return msmSeSetParam(arg0, &sp10); + param.flag = MSM_SEPARAM_VOL; + param.vol = vol; + return msmSeSetParam(seNo, ¶m); } s32 HuAudSeqPlay(s16 arg0) { @@ -301,16 +314,16 @@ s32 HuAudSeqMidiCtrlGet(s32 arg0, s8 arg1, s8 arg2) { return msmMusGetMidiCtrl(arg0, arg1, arg2); } -s32 HuAudSStreamPlay(s16 arg0) { - s32 spC; - s32 temp_r31; +s32 HuAudSStreamPlay(s16 streamId) { + MSM_STREAMPARAM param; + s32 result; if (musicOffF != 0 || omSysExitReq != 0) { return 0; } - spC = 0; - temp_r31 = msmStreamPlay(arg0, &spC); - return temp_r31; + param.flag = MSM_STREAMPARAM_NONE ; + result = msmStreamPlay(streamId, ¶m); + return result; } void HuAudSStreamStop(s32 arg0) { @@ -326,18 +339,18 @@ void HuAudSStreamFadeOut(s32 arg0, s32 arg1) { } void HuAudSStreamAllFadeOut(s32 arg0) { - msmStreamPauseAll(arg0); + msmStreamStopAll(arg0); } void HuAudSStreamAllStop(void) { - msmStreamPauseAll(0); + msmStreamStopAll(0); } s32 HuAudSStreamStatGet(s32 arg0) { return msmStreamGetStatus(arg0); } -HuSndGrpData HuSndGrpTbl[] = { +SNDGRPTBL sndGrpTable[] = { { OVL_BOOT, -1, 0, 1, -1, -1 }, { OVL_INST, -1, 0, 1, -1, -1 }, { OVL_M401, 18, 0, 2, 64, 64 }, @@ -432,13 +445,13 @@ HuSndGrpData HuSndGrpTbl[] = { }; void HuAudDllSndGrpSet(u16 ovl) { - HuSndGrpData *var_r31; + SNDGRPTBL *var_r31; s16 var_r29; - var_r31 = HuSndGrpTbl; + var_r31 = sndGrpTable; while (1) { if (var_r31->ovl == ovl) { - var_r29 = var_r31->grpset; + var_r29 = var_r31->grpSet; break; } if (var_r31->ovl == OVL_INVALID) { @@ -540,7 +553,7 @@ void HuAudAUXVolSet(s8 arg0, s8 arg1) { } void HuAudVoiceInit(s16 ovl) { - HuSndGrpData *var_r29; + SNDGRPTBL *var_r29; OSTick temp_r23; s16 temp_r26; s16 temp_r25; @@ -550,9 +563,9 @@ void HuAudVoiceInit(s16 ovl) { s16 i; if (ovl != OVL_INVALID) { - var_r29 = HuSndGrpTbl; + var_r29 = sndGrpTable; while (1) { - if (var_r29->ovl == ovl && var_r29->grpset == -1) { + if (var_r29->ovl == ovl && var_r29->grpSet == -1) { return; } if (var_r29->ovl == OVL_INVALID) { @@ -615,65 +628,67 @@ void HuAudPlayerVoicePlayEntry(s16 arg0, s16 arg1) { HuAudCharVoicePlayEntry(temp_r31, arg1); } -s32 HuAudCharVoicePlay(s16 arg0, s16 arg1) { - UnkMsmStruct_01 spC; +s32 HuAudCharVoicePlay(s16 charNo, s16 seId) +{ + MSM_SEPARAM param; if (omSysExitReq != 0) { return 0; } - arg1 += (arg0 << 6); - spC.unk00 = 0; + seId += (charNo << 6); + param.flag = MSM_SEPARAM_NONE; if (HuAuxAVol != -1) { - spC.unk00 |= 0x10; + param.flag |= MSM_SEPARAM_AUXVOLA; } if (HuAuxBVol != -1) { - spC.unk00 |= 0x20; + param.flag |= MSM_SEPARAM_AUXVOLB; } - spC.unk09 = HuAuxAVol; - spC.unk0A = HuAuxBVol; - return HuSePlay(arg1, &spC); + param.auxAVol = HuAuxAVol; + param.auxBVol = HuAuxBVol; + return HuSePlay(seId, ¶m); } -s32 HuAudCharVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2) { - UnkMsmStruct_01 spC; +s32 HuAudCharVoicePlayPos(s16 charNo, s16 seId, Vec *pos) { + MSM_SEPARAM param; if (omSysExitReq != 0) { return 0; } - arg1 += (arg0 << 6); - spC.unk00 = 0x40; + seId += (charNo << 6); + param.flag = MSM_SEPARAM_POS; if (HuAuxAVol != -1) { - spC.unk00 |= 0x10; + param.flag |= MSM_SEPARAM_AUXVOLA; } if (HuAuxBVol != -1) { - spC.unk00 |= 0x20; + param.flag |= MSM_SEPARAM_AUXVOLB; } - spC.unk09 = HuAuxAVol; - spC.unk0A = HuAuxBVol; - spC.unk10.x = arg2->x; - spC.unk10.y = arg2->y; - spC.unk10.z = arg2->z; - return HuSePlay(arg1, &spC); + param.auxAVol = HuAuxAVol; + param.auxBVol = HuAuxBVol; + param.pos.x = pos->x; + param.pos.y = pos->y; + param.pos.z = pos->z; + return HuSePlay(seId, ¶m); } -void HuAudCharVoicePlayEntry(s16 arg0, s16 arg1) { - s32 spC[30]; // size unknown (min: 30, max: 33) +void HuAudCharVoicePlayEntry(s16 charNo, s16 seId) { + int spC[MSM_ENTRY_SENO_MAX]; // size unknown (min: 30, max: 33) u16 temp_r29; u16 i; - arg1 += (arg0 << 6); - temp_r29 = msmSeGetEntryID(arg1, spC); + seId += (charNo << 6); + temp_r29 = msmSeGetEntryID(seId, spC); for (i = 0; i < temp_r29; i++) { msmSeStop(spC[i], 0); } } -static s32 HuSePlay(s32 arg0, UnkMsmStruct_01 *arg1) { - s32 temp_r3; +static int HuSePlay(int seId, MSM_SEPARAM *param) +{ + s32 result; - temp_r3 = msmSePlay(arg0, arg1); - if (temp_r3 < 0) { - OSReport("#########SE Entry Error\n", arg0, temp_r3); + result = msmSePlay(seId, param); + if (result < 0) { + OSReport("#########SE Entry Error\n", seId, result); } - return temp_r3; + return result; } diff --git a/src/game/board/audio.c b/src/game/board/audio.c index 3be2dcbb..e79abe27 100755 --- a/src/game/board/audio.c +++ b/src/game/board/audio.c @@ -23,7 +23,7 @@ void BoardMusStartBoard(void) { void BoardMusStart(s32 arg0, s32 arg1, s8 arg2, u16 arg3) { s16 *temp_r31 = boardSeq[arg0]; - UnkMsmStruct_03 sp8; + MSM_MUSPARAM param; if (arg1 == temp_r31[1]) { return; @@ -31,18 +31,18 @@ void BoardMusStart(s32 arg0, s32 arg1, s8 arg2, u16 arg3) { if (temp_r31[0] != -1) { BoardAudSeqFadeOutFast(temp_r31[0]); } - sp8.unk00 = 1; + param.flag = MSM_MUSPARAM_CHAN; if (arg3 != 0) { - sp8.unk00 |= 8; + param.flag |= MSM_MUSPARAM_FADESPEED; } if (arg2 < 0) { - sp8.unk00 |= 2; + param.flag |= MSM_MUSPARAM_VOL; arg2 = 0x7F; } - sp8.unk06 = arg3; - sp8.unk05 = arg2; - sp8.unk04 = arg0; - temp_r31[0] = msmMusPlay(arg1, &sp8); + param.fadeSpeed = arg3; + param.vol = arg2; + param.chan = arg0; + temp_r31[0] = msmMusPlay(arg1, ¶m); temp_r31[1] = arg1; } @@ -68,21 +68,21 @@ void BoardMusLoudSet(s32 arg0, s32 arg1) { } } -void BoardMusVolPanSet(s32 arg0, s8 arg1, u16 arg2) { +void BoardMusVolPanSet(s32 arg0, s8 vol, u16 fadeSpeed) { s16 *temp_r31 = boardSeq[arg0]; - UnkMsmStruct_04 sp10; + MSM_MUSPARAM param; if (temp_r31[0] == -1) { return; } - sp10.unk00 = 1; - sp10.unk00 |= 2; - if (arg1 < 0) { - arg1 = 0x7F; + param.flag = MSM_MUSPARAM_CHAN; + param.flag |= MSM_MUSPARAM_VOL; + if (vol < 0) { + vol = 0x7F; } - sp10.unk06 = arg2; - sp10.unk05 = arg1; - msmMusSetParam(temp_r31[0], &sp10); + param.fadeSpeed = fadeSpeed; + param.vol = vol; + msmMusSetParam(temp_r31[0], ¶m); } void BoardAudSeqPause(s32 arg0, s32 arg1, u16 arg2) { diff --git a/src/game/board/main.c b/src/game/board/main.c index 1d77b332..e244e4df 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -2169,14 +2169,14 @@ static void TauntUpdate(omObjData *object) port = GWPlayer[i].port & 0x3; character = GWPlayer[i].character & 0x7; if(tauntActiveFXTbl[port] >= 0) { - UnkMsmStruct_01 param; + MSM_SEPARAM param; float vol, pan; vol = (64.0f*(HuPadSubStkX[port]/59.0f))+64.0f; pan = 8191.0f*(HuPadSubStkY[port]/59.0f); - memset(¶m, 0, sizeof(UnkMsmStruct_01)); - param.unk00 = 6; - OSf32tos8(&vol, ¶m.unk05); - OSf32tos16(&pan, ¶m.unk06); + memset(¶m, 0, sizeof(MSM_SEPARAM)); + param.flag = MSM_SEPARAM_PITCH|MSM_SEPARAM_PAN; + OSf32tos8(&vol, ¶m.pan); + OSf32tos16(&pan, ¶m.pitch); msmSeSetParam(tauntActiveFXTbl[port], ¶m); } else { if(HuPadBtnDown[port] & PAD_TRIGGER_L) { From d2a22e9a427cd878cecf749833687b6d7b5ae57b Mon Sep 17 00:00:00 2001 From: CreateSource Date: Tue, 5 Nov 2024 13:36:21 -0500 Subject: [PATCH 102/311] 3 functions, sync --- .vscode/settings.json | 3 +- include/REL/m418Dll.h | 18 ++++++++ src/REL/m418Dll/main.c | 102 ++++++++++++++++++++++++++++++++++------- 3 files changed, 105 insertions(+), 18 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 3cc8ae34..f453e015 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -21,7 +21,8 @@ ".clangd": "yaml", "m443dll.h": "c", "object.h": "c", - "m417dll.h": "c" + "m417dll.h": "c", + "m418dll.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { diff --git a/include/REL/m418Dll.h b/include/REL/m418Dll.h index 80490211..3fd899d3 100644 --- a/include/REL/m418Dll.h +++ b/include/REL/m418Dll.h @@ -3,4 +3,22 @@ #include "dolphin.h" +typedef void (*M418DllFunc)(void); + +typedef struct M418DllUnkStruct { + M418DllFunc unk0; + Vec center; + char unk10[0xC]; + Vec rot; + char unk28[0xC]; + f32 zoom; + char unk38[0x4]; + f32 unk3C[3]; + char unk48[0x4]; +} M418DllUnkStruct; // sizeof 0x4C + +void fn_1_ABC4(omObjData*, s32, s32, s32, s32); +void fn_1_B104(M418DllUnkStruct*, Vec, Vec); +void fn_1_B41C(M418DllUnkStruct*); + #endif diff --git a/src/REL/m418Dll/main.c b/src/REL/m418Dll/main.c index 81c357ae..dc838ba5 100644 --- a/src/REL/m418Dll/main.c +++ b/src/REL/m418Dll/main.c @@ -1,4 +1,5 @@ #include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/minigame_seq.h" #include "game/object.h" #include "rel_sqrt_consts.h" @@ -6,22 +7,15 @@ #include "REL/m418Dll.h" // types -typedef void (*M418DllFunc)(void); - -typedef struct M418DllUnkStruct { - M418DllFunc unk0; - Vec center; - char unk10[0xC]; - Vec rot; - char unk28[0xC]; - f32 zoom; - char unk38[0x4]; - f32 unk3C[3]; - char unk48[0x4]; -} M418DllUnkStruct; // sizeof 0x4C +typedef struct M418DllUnkStruct2 { + char unk[0x4]; + s32 unk4[3]; + char unk10[0x4]; +} M418DllUnkStruct2; // bss M418DllUnkStruct lbl_1_bss_1F4; +M418DllUnkStruct2 lbl_1_bss_1E0; s32 lbl_1_bss_8; s32 lbl_1_bss_4; Process* lbl_1_bss_0; @@ -29,10 +23,6 @@ Process* lbl_1_bss_0; // data s32 lbl_1_data_8 = -1; -// protos -void fn_1_B104(M418DllUnkStruct*, Vec, Vec); -void fn_1_B41C(M418DllUnkStruct*); - void fn_1_0(void) { Hu3DGLightCreate(-2500.0f, 5000.0f, 5000.0f, 0.0f, -1.0f, -1.0f, 0xFF, 0xD8, 0xA0); } @@ -161,3 +151,81 @@ void fn_1_780(void) { break; } } + +s32 fn_1_950(s32 arg0) { + + if ((rand8() % arg0) == 0) { + return 1; + } else { + return 0; + } +} + +void fn_1_998(omObjData* object) { + s32 var_r31; + M418DllUnkStruct2* var_r30 = &lbl_1_bss_1E0; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + switch (var_r30->unk4[var_r31]) { + case 1: + fn_1_ABC4(object, var_r31 + 1, var_r31 + 1, 0, 2); + var_r30->unk4[var_r31] = 99; + break; + case 2: + fn_1_ABC4(object, var_r31 + 1, var_r31 + 1, 0, 0); + var_r30->unk4[var_r31] = 99; + break; + case 3: + HuAudFXPlay(0x5DD); + Hu3DModelAttrSet(object->model[var_r31 + 1], 0x40000004); + var_r30->unk4[var_r31] = 99; + break; + } + } +} + +void fn_1_AA8(omObjData* object) { + Mtx sp10; + char* sp8[2] = { 0, 0 }; + s32 var_r31; + + for (var_r31 = 0; var_r31 < 2; var_r31++) { + Hu3DModelObjMtxGet(object->model[5], sp8[var_r31], sp10); + Hu3DModelPosSet(object->model[var_r31 + 6], sp10[0][3], sp10[1][3], sp10[2][3]); + } + object->func = fn_1_998; +} + +void fn_1_B4C(omObjData* object) { + s32 sp8[3] = { 0x310021, 0x310022, 0x310023 }; + s32 var_r30; + + object->model[0] = Hu3DModelCreateFile(0x310011); + Hu3DModelShadowMapSet(object->model[0]); + + for (var_r30 = 1; var_r30 < 4; var_r30++) { + object->model[var_r30] = Hu3DModelCreateFile(sp8[var_r30 - 1]); + object->motion[var_r30] = Hu3DMotionIDGet(object->model[var_r30]); + Hu3DModelShadowMapSet(object->model[var_r30]); + Hu3DModelPosSet(object->model[var_r30], 0.0f, 0.0f, 0.0f); + fn_1_ABC4(object, var_r30, var_r30, 0, 2); + } + object->model[4] = Hu3DModelCreateFile(0x310016); + object->model[5] = Hu3DModelCreateFile(0x310018); + + for (var_r30 = 6; var_r30 < 8; var_r30++) { + object->model[var_r30] = Hu3DModelCreateFile(0x310026); + object->motion[var_r30] = Hu3DMotionIDGet(object->model[var_r30]); + Hu3DModelScaleSet(object->model[var_r30], 2.0f, 2.0f, 2.0f); + Hu3DModelLayerSet(object->model[var_r30], 1); + fn_1_ABC4(object, var_r30, var_r30, 0, 1); + } + + for (var_r30 = 8; var_r30 < 11; var_r30++) { + object->model[var_r30] = Hu3DModelCreateFile(0x31002A); + object->motion[var_r30] = Hu3DJointMotion(object->model[var_r30], HuDataSelHeapReadNum(0x31002E, MEMORY_DEFAULT_NUM, HEAP_DATA)); + Hu3DModelPosSet(object->model[var_r30], -350.0f + 360.0f * (var_r30 - 8), -200.0f, -660.0f); + fn_1_ABC4(object, var_r30, var_r30, 0, 1); + } + object->func = fn_1_AA8; +} From 206b3e76a0b3942ed3b98f59e860c31ef4faed13 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Thu, 7 Nov 2024 16:52:22 +0100 Subject: [PATCH 103/311] Created private msm headers and decomped a bit of msmsys.c --- include/msm/msmfio.h | 19 ++ include/msm/msmmem.h | 6 +- include/msm/msmmus.h | 10 + include/msm/msmse.h | 10 + include/msm/msmstream.h | 12 ++ src/msm/msmfio.c | 52 +++-- src/msm/msmmem.c | 6 +- src/msm/msmsys.c | 442 ++++++++++++++++++++++++++++++++++++++++ 8 files changed, 524 insertions(+), 33 deletions(-) create mode 100644 include/msm/msmfio.h create mode 100644 include/msm/msmmus.h create mode 100644 include/msm/msmse.h create mode 100644 include/msm/msmstream.h create mode 100644 src/msm/msmsys.c diff --git a/include/msm/msmfio.h b/include/msm/msmfio.h new file mode 100644 index 00000000..2335134f --- /dev/null +++ b/include/msm/msmfio.h @@ -0,0 +1,19 @@ +#ifndef MSMFIO_H +#define MSMFIO_H + +#include "dolphin.h" +#include "dolphin/types.h" +#include "game/msm.h" + +struct msmFio { + MSM_OPEN open; + MSM_READ read; + MSM_CLOSE close; +}; + +BOOL msmFioClose(DVDFileInfo *fileInfo); +BOOL msmFioRead(DVDFileInfo *fileInfo, void *addr, s32 length, s32 offset); +BOOL msmFioOpen(s32 entrynum, DVDFileInfo *fileInfo); +void msmFioInit(MSM_OPEN open, MSM_READ read, MSM_CLOSE close); + +#endif diff --git a/include/msm/msmmem.h b/include/msm/msmmem.h index ca14b0c9..1acc500a 100644 --- a/include/msm/msmmem.h +++ b/include/msm/msmmem.h @@ -3,8 +3,8 @@ #include "dolphin/types.h" -void msmMemFree(void*); -void* msmMemAlloc(s32); -void msmMemInit(void*, u32); +void msmMemFree(void *); +void *msmMemAlloc(u32); +void msmMemInit(void *, u32); #endif diff --git a/include/msm/msmmus.h b/include/msm/msmmus.h new file mode 100644 index 00000000..8d3554fc --- /dev/null +++ b/include/msm/msmmus.h @@ -0,0 +1,10 @@ +#ifndef MSMMUS_H +#define MSMMUS_H + +#include "dolphin.h" +#include "dolphin/types.h" + +s32 msmMusInit(s32 *, DVDFileInfo *); +void msmMusPeriodicProc(void); + +#endif diff --git a/include/msm/msmse.h b/include/msm/msmse.h new file mode 100644 index 00000000..10242362 --- /dev/null +++ b/include/msm/msmse.h @@ -0,0 +1,10 @@ +#ifndef MSMSE_H +#define MSMSE_H + +#include "dolphin.h" +#include "dolphin/types.h" + +s32 msmSeInit(s32 *, DVDFileInfo *); +void msmSePeriodicProc(void); + +#endif diff --git a/include/msm/msmstream.h b/include/msm/msmstream.h new file mode 100644 index 00000000..c21347b0 --- /dev/null +++ b/include/msm/msmstream.h @@ -0,0 +1,12 @@ +#ifndef MSMSTREAM_H +#define MSMSTREAM_H + +#include "dolphin/types.h" + +void msmStreamPeriodicProc(void); +void msmStreamSetOutputMode(s8); +void msmStreamAmemFree(void); +s32 msmStreamAmemAlloc(void); +s32 msmStreamInit(char *); + +#endif diff --git a/src/msm/msmfio.c b/src/msm/msmfio.c index 581cb3a1..00adc985 100644 --- a/src/msm/msmfio.c +++ b/src/msm/msmfio.c @@ -1,43 +1,41 @@ -#include "dolphin.h" - -struct msmFio { - BOOL (*open)(s32, DVDFileInfo *); - BOOL (*read)(DVDFileInfo *, void *, s32, s32, s32); - BOOL (*close)(DVDFileInfo *); -}; +#include "msm/msmfio.h" +#include "game/msm.h" static struct msmFio fio; BOOL msmFioClose(DVDFileInfo *fileInfo) { - return fio.close(fileInfo); + return fio.close(fileInfo); } BOOL msmFioRead(DVDFileInfo *fileInfo, void *addr, s32 length, s32 offset) { - return fio.read(fileInfo, addr, length, offset, 2); + return fio.read(fileInfo, addr, length, offset, 2); } BOOL msmFioOpen(s32 entrynum, DVDFileInfo *fileInfo) { - return fio.open(entrynum, fileInfo); + return fio.open(entrynum, fileInfo); } -void msmFioInit(void *open, void *read, void *close) +void msmFioInit(MSM_OPEN open, MSM_READ read, MSM_CLOSE close) { - if(open) { - fio.open = open; - } else { - fio.open = DVDFastOpen; - } - if(read) { - fio.read = read; - } else { - fio.read = DVDReadPrio; - } - if(close) { - fio.close = close; - } else { - fio.close = DVDClose; - } -} \ No newline at end of file + if (open) { + fio.open = open; + } + else { + fio.open = DVDFastOpen; + } + if (read) { + fio.read = read; + } + else { + fio.read = DVDReadPrio; + } + if (close) { + fio.close = close; + } + else { + fio.close = DVDClose; + } +} diff --git a/src/msm/msmmem.c b/src/msm/msmmem.c index b89434a0..e8d52a88 100644 --- a/src/msm/msmmem.c +++ b/src/msm/msmmem.c @@ -53,7 +53,7 @@ void msmMemFree(void* arg0) { } } -void* msmMemAlloc(s32 arg0) { +void* msmMemAlloc(u32 arg0) { unkMemStruct* memC; s32 temp_r0; u32 var_r5; @@ -87,7 +87,7 @@ void* msmMemAlloc(s32 arg0) { if (var_r5 != 0) { var_r5 -= 0x20; } - temp_r5 = (void*)((u32)var_r8->unk10 + var_r5); + temp_r5 = (void*)((u32)var_r8->unk10 + (var_r5)); temp_r9 = var_r8->next; if ((mem.unk0 > temp_r5) || ((void*)((u32)mem.unk0 + (u32)mem.unk4) <= temp_r5)) { return NULL; @@ -133,4 +133,4 @@ void msmMemInit(void* arg0, u32 arg1) { temp_r7->prev = NULL; temp_r7->next = NULL; mem.unk8 = &mem.unkC; -} \ No newline at end of file +} diff --git a/src/msm/msmsys.c b/src/msm/msmsys.c new file mode 100644 index 00000000..9c9aedda --- /dev/null +++ b/src/msm/msmsys.c @@ -0,0 +1,442 @@ +#include "dolphin.h" +#include "dolphin/ai.h" +#include "msm/msmfio.h" +#include "msm/msmmem.h" +#include "msm/msmmus.h" +#include "msm/msmse.h" +#include "msm/msmstream.h" +#include "musyx/musyx.h" + +#include "game/msm.h" // TODO remove, only for decomp + +typedef struct _unkSubStruct { + s8 unk0; + union { + f32 unk4f[9]; + s32 unk4s[9]; + }; +} unkSubStruct; + +typedef struct _unkSubStruct2 { + char unk[0x3C]; + s32 unk3C; + s32 unk40; + s32 unk44; + s32 unk48; + s32 unk4C; + s32 unk50; + s32 unk54; + s32 unk58; + s32 unk5C; + char unk60[0x30]; + s32 unk90; + s32 unk94; + s32 unk98; + char unk9C[0xA0]; + u8 unk13C; + f32 unk140; + f32 unk144; + f32 unk148; + f32 unk14C; + f32 unk150; + char unk154[0x70]; + u8 unk1C4; + f32 unk1C8; + f32 unk1CC; + f32 unk1D0; + f32 unk1D4; + f32 unk1D8; + f32 unk1DC; +} unkSubStruct2; // sizeof unk1E0 + +typedef struct _unkSubStruct3 { + char unk[0x4]; + s32 unk4; + char unk8[0x8]; + s32 unk10; // offset + u32 unk14; // length + s32 unk18; // offset + u32 unk1C; // length + char unk20[0x18]; + s32 unk38; + char unk3C[4]; + s32 unk40; + char unk44[0x1C]; +} unkSubStruct3; // sizeof 0x60 + +typedef struct _unkStruct2 { + char *unk0; + s32 unk4; + void *unk8; + void *unkC; + void *unk10; + u32 unk14; + void *unk18; +} unkStruct2; + +typedef struct _unkStruct3 { + s32 unk0; + s32 unk4; + s32 unk8; +} unkStruct3; + +typedef struct _unkStruct4 { + SND_GROUPID unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; +} unkStruct4; + +typedef struct _sndInitData { + s8 unk0; + s8 unk1; + s8 unk2; + char unk3[0xB]; + s8 unkE; + s8 unkF; + u32 unk10; + s32 unk14; + char unk18[0x11]; + s8 unk29[10]; // size unknown +} sndInitData; + +typedef struct _sysData { + s32 unk0; + s8 unk4; + s8 unk5; + s8 unk6; + s8 unk7; + s32 unk8; + unkSubStruct3 *unkC; + sndInitData *unk10; + unkSubStruct *unk14; + s8 unk18; + s8 unk19; + s8 unk1A; + s8 unk1B; + unkSubStruct2 unk1C; // userA + unkSubStruct2 unk1FC; // userB + char unk3DC[0x8]; + s32 unk3E4; + s32 unk3E8; + s32 unk3EC; + s32 unk3F0; + s8 unk3F4; + unkStruct3 *unk3F8; + char unk3FC[0xF0]; + s32 unk4EC; + BOOL unk4F0; + AIDCallback unk4F4; + s32 unk4F8; +} sysData; + +static sysData sys; + +void msmSysServer(void) +{ + if (sndIsInstalled() == 1) { + if (--sys.unk4F8 == 0) { + sys.unk4F8 = 3; + msmMusPeriodicProc(); + msmSePeriodicProc(); + msmStreamPeriodicProc(); + } + } + sys.unk4F4(); +} + +s32 msmSysSetAuxParam(s32 arg0, s32 arg1) +{ + SND_AUX_CALLBACK sp24; + SND_AUX_CALLBACK sp20; + void **var_r26; + s32 var_r23; + unkSubStruct2 *temp_r3; + sysData *var_r25; + sysData *var_r27; + unkSubStruct *temp_r5; + u32 var_r0; + u8 temp_r5_2; + unkSubStruct *temp_r4_2; + + if ((sys.unk18 != -2) && (arg0 >= 0)) { + sys.unk18 = arg0; + } + if ((sys.unk19 != -2) && (arg1 >= 0)) { + temp_r5->unk0 = arg1; + } + if ((sys.unk18 < 0) && (temp_r5->unk0 < 0)) { + return 0; + } + var_r27 = &sys; + var_r25 = &sys; + var_r26 = &sp20; + + // the for loop first sets sp20 and then sp24 + for (var_r23 = 0; var_r23 < 2; var_r23++, var_r27++, var_r26++, var_r25++) { + if (var_r27->unk18 < 0) { + *var_r26 = NULL; + continue; + } + temp_r4_2 = &sys.unk14[var_r27->unk18]; + temp_r3 = &var_r25->unk1C; + switch (temp_r4_2->unk0) { + case 0: + *var_r26 = &sndAuxCallbackReverbHI; + temp_r3->unk1C4 = temp_r4_2->unk4s[0]; + temp_r3->unk1C8 = temp_r4_2->unk4f[1]; + temp_r3->unk1CC = temp_r4_2->unk4f[2]; + temp_r3->unk1D0 = temp_r4_2->unk4f[3]; + temp_r3->unk1D4 = temp_r4_2->unk4f[4]; + temp_r3->unk1D8 = temp_r4_2->unk4f[5]; + temp_r3->unk1DC = temp_r4_2->unk4f[6]; + // var_r0 = sndAuxCallbackPrepareReverbHI(); + break; + case 1: + *var_r26 = &sndAuxCallbackReverbSTD; + temp_r3->unk13C = temp_r4_2->unk4s[0]; + temp_r3->unk140 = temp_r4_2->unk4f[1]; + temp_r3->unk144 = temp_r4_2->unk4f[2]; + temp_r3->unk148 = temp_r4_2->unk4f[3]; + temp_r3->unk14C = temp_r4_2->unk4f[4]; + temp_r3->unk150 = temp_r4_2->unk4f[5]; + // var_r0 = sndAuxCallbackPrepareReverbSTD(); + break; + case 2: + *var_r26 = &sndAuxCallbackChorus; + temp_r3->unk90 = temp_r4_2->unk4s[0]; + temp_r3->unk94 = temp_r4_2->unk4s[1]; + temp_r3->unk98 = temp_r4_2->unk4s[2]; + // var_r0 = sndAuxCallbackPrepareChorus(); + break; + case 3: + *var_r26 = &sndAuxCallbackDelay; + temp_r3->unk3C = temp_r4_2->unk4s[0]; + temp_r3->unk48 = temp_r4_2->unk4s[3]; + temp_r3->unk54 = temp_r4_2->unk4s[6]; + temp_r3->unk40 = temp_r4_2->unk4s[1]; + temp_r3->unk4C = temp_r4_2->unk4s[4]; + temp_r3->unk58 = temp_r4_2->unk4s[7]; + temp_r3->unk44 = temp_r4_2->unk4s[2]; + temp_r3->unk50 = temp_r4_2->unk4s[5]; + temp_r3->unk5C = temp_r4_2->unk4s[8]; + // var_r0 = sndAuxCallbackPrepareDelay(); + break; + } + if (var_r0 == 0) { + return 1; + } + } + sndSetAuxProcessingCallbacks(0, sp20, &sys.unk1C, 0xFF, 0, sp24, &sys.unk1FC, 0xFF, 0); + return 0; +} + +s8 msmSysLoadBaseGroup(void *arg0) +{ + DVDFileInfo spC; + sysData *var_r30; + s32 var_r28; + unkStruct3 *temp_r27; + unkStruct4 *temp_r25; + + if (msmFioOpen(sys.unk0, &spC) != 1) { + return -1; + } + var_r30 = &sys; + for (var_r28 = 0; var_r28 < sys.unk3F4; var_r30 = (sysData *)((s32)var_r30 + 4), var_r28++, sys.unk8 += temp_r25->unk10) { + temp_r27 = var_r30->unk3F8; + temp_r25 = (unkStruct4 *)(sys.unk3EC + (sys.unk10->unk29[var_r28] << 5)); + if (msmFioRead(&spC, temp_r27, temp_r25->unk8, temp_r25->unk4 + sys.unkC->unk38) < 0) { + msmFioClose(&spC); + return -2; + } + if (msmFioRead(&spC, arg0, temp_r25->unk10, temp_r25->unkC + sys.unkC->unk40) < 0) { + msmFioClose(&spC); + return -2; + } + if (sndPushGroup((void *)(temp_r27->unk4 + (s32)temp_r27), temp_r25->unk0, arg0, (void *)(temp_r27->unk8 + (s32)temp_r27), + (void *)(temp_r27->unk0 + (s32)temp_r27)) + == 0U) { + msmFioClose(&spC); + return -0x20; + } + } + msmFioClose(&spC); + return 0; +} + +s32 msmSysGroupInit(DVDFileInfo *arg0); + +void msmSysIrqDisable(void) +{ + if (sys.unk4EC++ == 0) { + sys.unk4F0 = OSDisableInterrupts(); + } +} + +void msmSysIrqEnable(void) +{ + if (sys.unk4EC != 0) { + if (--sys.unk4EC == 0) { + OSRestoreInterrupts(sys.unk4F0); + } + } +} + +void msmSysRegularProc(void); + +s32 msmSysGetOutputMode(void) +{ + return sys.unk4; +} + +s32 msmSysGetSampSize(BOOL baseGrp) +{ + if (baseGrp != 0) { + return sys.unk3E8; + } + return sys.unk3E4; +} + +void msmSysCheckInit(void) +{ + sndIsInstalled(); +} + +s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram) +{ + s32 var_r26; + s32 temp_r3; + void *temp_r3_8; + + SND_HOOKS sp4C = { msmMemAlloc, msmMemFree }; + DVDFileInfo sp10; + if (sndIsInstalled() == 1) { + return -0x24; + } + var_r26 = 0; // retErr + sys.unk4EC = 0; + msmMemInit(init->heap, init->heapSize); + msmFioInit(init->open, init->read, init->close); + sys.unk0 = DVDConvertPathToEntrynum(init->msmPath); + if (sys.unk0 < 0) { + return -1; + } + if (msmFioOpen(sys.unk0, &sp10) != 1) { + return -1; + } + if ((sys.unkC = msmMemAlloc(0x60)) == NULL) { + msmFioClose(&sp10); + return -0xA; + } + if (msmFioRead(&sp10, sys.unkC, 0x60, 0) < 0) { + msmFioClose(&sp10); + return -2; + } + if (sys.unkC->unk4 != 2) { + msmFioClose(&sp10); + return -0x79; + } + if ((sys.unk10 = msmMemAlloc(sys.unkC->unk14)) == NULL) { + msmFioClose(&sp10); + return -0xA; + } + if (msmFioRead(&sp10, sys.unk10, sys.unkC->unk14, sys.unkC->unk10) < 0) { + msmFioClose(&sp10); + return -2; + } + if (aram != NULL) { + if (aram->skipARInit == 0) { + ARInit(aram->stackIndex, aram->aramEnd); + ARQInit(); + aram = (MSM_ARAM *)ARAlloc(sys.unk10->unk14); + if ((u32)aram != ARGetBaseAddress()) { + msmFioClose(&sp10); + return -0x14; + } + sys.unk7 = 0; + } + else { + if ((sys.unk10->unk14 + ARGetBaseAddress()) > aram->aramEnd) { + msmFioClose(&sp10); + return -0x14; + } + ARInit(NULL, 0); + ARQInit(); + sys.unk7 = 1; + } + } + var_r26 = msmSysGroupInit(&sp10); + if (var_r26 != 0) { + msmFioClose(&sp10); + return var_r26; + } + var_r26 = msmMusInit(&sys.unk0, &sp10); + if (var_r26 != 0) { + msmFioClose(&sp10); + return var_r26; + } + var_r26 = msmSeInit(&sys.unk0, &sp10); + if (var_r26 != 0) { + msmFioClose(&sp10); + return var_r26; + } + sys.unk18 = sys.unk10->unkE == -2 ? -2 : -1; + sys.unk19 = sys.unk10->unkF == -2 ? -2 : -1; + if ((s32)sys.unkC->unk1C == 0) { + var_r26 = 0; + } + else { + if ((sys.unk14 = msmMemAlloc(sys.unkC->unk1C)) == NULL) { + var_r26 = -0xA; + } + else { + if (msmFioRead(&sp10, sys.unk14, sys.unkC->unk1C, sys.unkC->unk18) < 0) { + var_r26 = -2; + } + else { + var_r26 = 0; + } + } + } + if (var_r26 != 0) { + msmFioClose(&sp10); + return var_r26; + } + msmFioClose(&sp10); + temp_r3 = msmStreamInit(init->pdtPath); + if (temp_r3 < 0) { + return temp_r3; + } + AIInit(NULL); + sndSetHooks(&sp4C); + if (sndInit(sys.unk10->unk0, sys.unk10->unk1, sys.unk10->unk2, 1, 0, sys.unk10->unk14) != 0) { + return -0x1E; + } + sys.unk4F4 = AIRegisterDMACallback(msmSysServer); + sys.unk4F8 = 1; + var_r26 = msmStreamAmemAlloc(); + if (var_r26 < 0) { + sndQuit(); + return var_r26; + } + sys.unk8 = var_r26 + 0x500; + if ((s32)sys.unk10->unk10 != 0) { + temp_r3_8 = msmMemAlloc(sys.unk10->unk10 + 0x100); + if (temp_r3_8 == NULL) { + msmStreamAmemFree(); + sndQuit(); + return -0xA; + } + msmMemFree(temp_r3_8); + } + if (msmSysSetAuxParam(sys.unk10->unkE, sys.unk10->unkF) != 0) { + msmStreamAmemFree(); + sndQuit(); + return -0x1F; + } + msmSysSetOutputMode(OSGetSoundMode() == 0 ? SND_OUTPUTMODE_MONO : SND_OUTPUTMODE_STEREO); + sndVolume(0x7F, 0, 0xFF); + return 0; +} From ce70fc74af048861ba16ed10de6787a72a5d3fd3 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sat, 9 Nov 2024 15:49:29 -0600 Subject: [PATCH 104/311] Properly fix sqrtf constants --- configure.py | 6 +++--- include/math.h | 24 +++++++++++++----------- include/rel_sqrt_consts.h | 3 --- src/REL/_minigameDLL/_minigameDLL.c | 2 +- src/REL/board_executor.c | 2 +- src/REL/bootDll/main.c | 1 - src/REL/m437Dll/main.c | 2 +- src/REL/m446Dll/main.c | 2 +- src/REL/m447dll/main.c | 2 +- src/REL/modeltestDll/main.c | 3 +-- src/REL/mstory4Dll/main.c | 2 +- src/REL/option/scene.c | 2 +- src/REL/present/init.c | 2 +- src/REL/safDll/main.c | 2 +- src/REL/selmenuDll/main.c | 2 +- src/REL/staffDll/main.c | 2 +- src/REL/subchrselDll/main.c | 2 +- 17 files changed, 29 insertions(+), 32 deletions(-) diff --git a/configure.py b/configure.py index 933a7b2b..339a9dfe 100644 --- a/configure.py +++ b/configure.py @@ -1089,7 +1089,7 @@ config.libs = [ "m435Dll", # Darts of Doom objects={ Object(NonMatching, "REL/m435Dll/main.c"), - Object(Matching, "REL/m435Dll/sequence.c"), + Object(NonMatching, "REL/m435Dll/sequence.c"), }, ), Rel( @@ -1103,7 +1103,7 @@ config.libs = [ "m437Dll", # Balloon of Doom objects={ Object(NonMatching, "REL/m437Dll/main.c"), - Object(Matching, "REL/m437Dll/sequence.c"), + Object(NonMatching, "REL/m437Dll/sequence.c"), }, ), Rel( @@ -1230,7 +1230,7 @@ config.libs = [ "m456Dll", # Take a Breather objects={ Object(NonMatching, "REL/m456Dll/main.c"), - Object(Matching, "REL/m456Dll/stage.c"), + Object(NonMatching, "REL/m456Dll/stage.c"), }, ), Rel( diff --git a/include/math.h b/include/math.h index 8549b25f..389629df 100644 --- a/include/math.h +++ b/include/math.h @@ -10,17 +10,19 @@ #ifdef __MWERKS__ extern inline float sqrtf(float x) { - volatile float y; - if(x > 0.0f) - { - double guess = __frsqrte((double)x); // returns an approximation to - guess = 0.5*guess*(3.0 - guess*guess*x); // now have 12 sig bits - guess = 0.5*guess*(3.0 - guess*guess*x); // now have 24 sig bits - guess = 0.5*guess*(3.0 - guess*guess*x); // now have 32 sig bits - y=(float)(x*guess); - return y; - } - return x; + static const double _half = .5; + static const double _three = 3.0; + volatile float y; + if (x > 0.0f) + { + double guess = __frsqrte((double)x); // returns an approximation to + guess = _half*guess*(_three - guess*guess*x); // now have 12 sig bits + guess = _half*guess*(_three - guess*guess*x); // now have 24 sig bits + guess = _half*guess*(_three - guess*guess*x); // now have 32 sig bits + y = (float)(x*guess); + return y ; + } + return x; } #else float sqrtf(float x); diff --git a/include/rel_sqrt_consts.h b/include/rel_sqrt_consts.h index 23ae61cd..fd06a9e9 100644 --- a/include/rel_sqrt_consts.h +++ b/include/rel_sqrt_consts.h @@ -1,8 +1,5 @@ #ifndef _REL_SQRT_CONSTS #define _REL_SQRT_CONSTS -const double __fakeHalf = 0.5; -const double __fakeThree = 3.0; - #endif diff --git a/src/REL/_minigameDLL/_minigameDLL.c b/src/REL/_minigameDLL/_minigameDLL.c index d252a50b..1b4730ee 100644 --- a/src/REL/_minigameDLL/_minigameDLL.c +++ b/src/REL/_minigameDLL/_minigameDLL.c @@ -1,6 +1,6 @@ #include "REL/executor.h" #include "dolphin/os.h" -#include "rel_sqrt_consts.h" +#include "math.h" void ObjectSetup(void) { OSReport("minigame dll setup\n"); diff --git a/src/REL/board_executor.c b/src/REL/board_executor.c index 04e59a3a..3d838c77 100644 --- a/src/REL/board_executor.c +++ b/src/REL/board_executor.c @@ -1,5 +1,5 @@ #include "REL/board_executor.h" -#include "rel_sqrt_consts.h" +#include "math.h" static void ObjectSetup(void) { BoardObjectSetup(BoardCreate, BoardDestroy); diff --git a/src/REL/bootDll/main.c b/src/REL/bootDll/main.c index ce1d563d..b525067a 100644 --- a/src/REL/bootDll/main.c +++ b/src/REL/bootDll/main.c @@ -15,7 +15,6 @@ #include "game/wipe.h" #include "math.h" -#include "rel_sqrt_consts.h" #include "data_num/title.h" diff --git a/src/REL/m437Dll/main.c b/src/REL/m437Dll/main.c index 54af13d9..7b67a481 100755 --- a/src/REL/m437Dll/main.c +++ b/src/REL/m437Dll/main.c @@ -16,7 +16,7 @@ #include "game/wipe.h" #include "dolphin.h" -#include "rel_sqrt_consts.h" +#include "math.h" #include "string.h" typedef struct { diff --git a/src/REL/m446Dll/main.c b/src/REL/m446Dll/main.c index 1988e32d..b73f19e3 100644 --- a/src/REL/m446Dll/main.c +++ b/src/REL/m446Dll/main.c @@ -1,5 +1,5 @@ #include "REL/m446Dll.h" -#include "rel_sqrt_consts.h" +#include "math.h" #include "game/audio.h" #include "game/frand.h" diff --git a/src/REL/m447dll/main.c b/src/REL/m447dll/main.c index a8389fa0..eeb86fd4 100755 --- a/src/REL/m447dll/main.c +++ b/src/REL/m447dll/main.c @@ -11,7 +11,7 @@ #include "game/window.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" +#include "math.h" typedef struct { /* 0x00 */ s16 unk00; diff --git a/src/REL/modeltestDll/main.c b/src/REL/modeltestDll/main.c index 91b89102..a871df64 100644 --- a/src/REL/modeltestDll/main.c +++ b/src/REL/modeltestDll/main.c @@ -14,6 +14,7 @@ #include "math.h" #include "REL/modeltestDll.h" +#include "math.h" // -------------------------------------------------------------------------- // @@ -28,8 +29,6 @@ s32 lbl_1_data_0[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x04), }; -const f64 unk_rodata_0 = 0.5; -const f64 unk_rodata_8 = 3.0; omObjData *lbl_1_bss_9A4; omObjData *lbl_1_bss_9A0; diff --git a/src/REL/mstory4Dll/main.c b/src/REL/mstory4Dll/main.c index ab56c8a5..1bb809d0 100644 --- a/src/REL/mstory4Dll/main.c +++ b/src/REL/mstory4Dll/main.c @@ -8,7 +8,7 @@ #include "game/gamework_data.h" #include "game/flag.h" #include "game/chrman.h" -#include "rel_sqrt_consts.h" +#include "math.h" #include "REL/executor.h" #include "game/board/main.h" diff --git a/src/REL/option/scene.c b/src/REL/option/scene.c index 0edd9959..4eeb4d2b 100755 --- a/src/REL/option/scene.c +++ b/src/REL/option/scene.c @@ -12,7 +12,7 @@ #include "game/sprite.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" +#include "math.h" typedef struct { /* 0x00 */ s16 id; diff --git a/src/REL/present/init.c b/src/REL/present/init.c index 71813938..2b2d57a5 100644 --- a/src/REL/present/init.c +++ b/src/REL/present/init.c @@ -5,7 +5,7 @@ #include "game/pad.h" #include "game/process.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" +#include "math.h" #include "REL/present.h" diff --git a/src/REL/safDll/main.c b/src/REL/safDll/main.c index 6b58f683..dfb34d70 100644 --- a/src/REL/safDll/main.c +++ b/src/REL/safDll/main.c @@ -3,7 +3,7 @@ #include "game/gamework_data.h" #include "game/printfunc.h" #include "game/pad.h" -#include "rel_sqrt_consts.h" +#include "math.h" s32 lbl_1_data_0 = 100; s32 lbl_1_bss_0[192]; diff --git a/src/REL/selmenuDll/main.c b/src/REL/selmenuDll/main.c index fda7916f..ad413ed8 100644 --- a/src/REL/selmenuDll/main.c +++ b/src/REL/selmenuDll/main.c @@ -14,8 +14,8 @@ #include "game/pad.h" #include "game/printfunc.h" #include "game/wipe.h" +#include "math.h" -#include "rel_sqrt_consts.h" // MSM Definitions static s8 *msmSeGetIndexPtr(s16 datano); diff --git a/src/REL/staffDll/main.c b/src/REL/staffDll/main.c index 28f1fbc4..0580c6a1 100644 --- a/src/REL/staffDll/main.c +++ b/src/REL/staffDll/main.c @@ -9,7 +9,7 @@ #include "game/window.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" +#include "math.h" typedef struct StaffData { /* 0x00 */ u32 unk_00; diff --git a/src/REL/subchrselDll/main.c b/src/REL/subchrselDll/main.c index 71911750..7c16e272 100644 --- a/src/REL/subchrselDll/main.c +++ b/src/REL/subchrselDll/main.c @@ -5,7 +5,7 @@ #include "game/pad.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" +#include "math.h" static void SubchrMain(void); From c59fd4d490a2ea2269fc88e2b61b45b7b935ff8f Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 10 Nov 2024 06:53:40 +0100 Subject: [PATCH 105/311] Found new inlines --- src/REL/m443Dll/main.c | 1 - src/REL/m450Dll/main.c | 54 ++++++++---------------------------------- src/REL/m461Dll/main.c | 20 ++++------------ 3 files changed, 15 insertions(+), 60 deletions(-) diff --git a/src/REL/m443Dll/main.c b/src/REL/m443Dll/main.c index d149d47d..b7c1cb01 100644 --- a/src/REL/m443Dll/main.c +++ b/src/REL/m443Dll/main.c @@ -806,7 +806,6 @@ void fn_1_3770(omObjData *arg0) s32 var_r30; s32 var_r29; M443DllCameraStruct *var_r28; - omObjData *var_r27; s32 var_r26; u32 var_r25; s32 var_r24; diff --git a/src/REL/m450Dll/main.c b/src/REL/m450Dll/main.c index d52324b8..8bd49c19 100644 --- a/src/REL/m450Dll/main.c +++ b/src/REL/m450Dll/main.c @@ -930,7 +930,7 @@ void fn_1_2C1C(WorkPlayerOld *player, omObjData *obj, s32 arg2, s32 arg3, s32 *a player->unk_10 = NULL; player->unk_50 = NULL; player->unk_64 = 0; - player->unk_68 = 0; + player->unk_68 = NULL; player->unk_38 = 0; player->unk_3C = 0; player->unk_44 = arg5; @@ -978,7 +978,7 @@ void fn_1_2DC8(WorkPlayerOld *player, s32 count, Vec *data) void fn_1_2DD4(WorkPlayerOld *player) { omSetTra(player->unk_00, player->unk_6C.x, player->unk_6C.y, player->unk_6C.z); - omSetRot(player->unk_00, 0, player->unk_9C, 0); + omSetRot(player->unk_00, 0.0f, player->unk_9C, 0.0f); } void fn_1_2E34(WorkPlayerOld *player) @@ -1123,12 +1123,7 @@ void fn_1_3CE0(WorkPlayerOld *player, s32 *state, u32 *motAttr) } if (player->unk_14[3] >= 0 && (player->unk_28 & 0x100)) { - player->unk_38 = 1; - player->unk_84.y = 26.766666f; - player->unk_A4 = 1; - if (player->unk_3C & 0x2) { - player->unk_3C &= ~0x2; - } + fn_1_2BD0(player, 26.766666f, 1.0f); *motAttr = HU3D_MOTATTR_NONE; *state = 3; } @@ -1181,12 +1176,7 @@ void fn_1_3ECC(WorkPlayerOld *player, s32 *state, u32 *motAttr) void fn_1_3F84(WorkPlayerOld *player, s32 *state, u32 *motAttr) { if (Hu3DMotionShiftIDGet(player->unk_00->model[0]) < 0 && Hu3DMotionEndCheck(player->unk_00->model[0])) { - player->unk_38 = 1; - player->unk_84.y = 0; - player->unk_A4 = 0; - if (player->unk_3C & 0x2) { - player->unk_3C &= ~0x2; - } + fn_1_2BD0(player, 0.0f, 0.0f); } } @@ -1352,12 +1342,8 @@ void fn_1_40C0(WorkPlayerOld *player) player->unk_3C |= 0x800; } else { - player->unk_38 = 1; - player->unk_84.y = 0.0f; - player->unk_A4 = 0.0f; - if ((player->unk_3C & 2) != 0) { - player->unk_3C &= ~2; - } + fn_1_2BD0(player, 0.0f, 0.0f); + motAttr = HU3D_MOTATTR_NONE; state = 3; } @@ -6582,12 +6568,7 @@ s32 fn_1_1C898(UnkM450Struct5 *var_r31, omObjData *var_r30) HuAudCharVoicePlay(var_r31->unk_11C, 0x123); var_r31->unk_FC |= 0x10; var_r31->unk_00.unk_3C |= 0x210; - var_r31->unk_00.unk_38 = 1; - var_r31->unk_00.unk_84.y = 48.179996f; - var_r31->unk_00.unk_A4 = 0.0f; - if (var_r31->unk_00.unk_3C & 2) { - var_r31->unk_00.unk_3C &= ~0x2; - } + fn_1_2BD0(&var_r31->unk_00, 48.179996f, 0.0f); Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[8], 0.0f, 8.0f, 0); if (fn_1_125C0(0, 1) <= 0) { var_r31->unk_FC |= 0x80000; @@ -6599,12 +6580,7 @@ s32 fn_1_1C898(UnkM450Struct5 *var_r31, omObjData *var_r30) HuAudCharVoicePlay(var_r31->unk_11C, 0x123); var_r31->unk_FC |= 0x100; var_r31->unk_00.unk_3C |= 0x210; - var_r31->unk_00.unk_38 = 1; - var_r31->unk_00.unk_84.y = 0.0f; - var_r31->unk_00.unk_A4 = 0.0f; - if (var_r31->unk_00.unk_3C & 2) { - var_r31->unk_00.unk_3C &= ~0x2; - } + fn_1_2BD0(&var_r31->unk_00, 0.0f, 0.0f); if (fn_1_125C0(0, 1) <= 0) { var_r31->unk_FC |= 0x80000; } @@ -6715,12 +6691,7 @@ void fn_1_1E150(omObjData *var_r29) HuAudCharVoicePlay(var_r31->unk_11C, 0x123); var_r31->unk_FC |= 0x800000; var_r31->unk_118 = 0x7EB; - var_r31->unk_00.unk_38 = 1; - var_r31->unk_00.unk_84.y = 53.533333f; - var_r31->unk_00.unk_A4 = 0.0f; - if (var_r31->unk_00.unk_3C & 2) { - var_r31->unk_00.unk_3C &= ~0x2; - } + fn_1_2BD0(&var_r31->unk_00, 53.533333f, 0.0f); Hu3DMotionSet(var_r29->model[0], var_r29->motion[8]); Hu3DModelAttrReset(var_r29->model[0], HU3D_ATTR_DISPOFF); fn_1_125C0(0, 0); @@ -7129,12 +7100,7 @@ void fn_1_20170(omObjData *var_r30) var_r29->unk_00.unk_A8 = MapPos( var_r29->unk_00.unk_6C.x, var_r29->unk_00.unk_6C.y, var_r29->unk_00.unk_6C.z, var_r29->unk_00.unk_C0, &var_r29->unk_00.unk_AC); if (var_r29->unk_00.unk_A8 > var_r29->unk_00.unk_6C.y) { - var_r31->unk_00.unk_38 = 1; - var_r31->unk_00.unk_84.y = 53.533333f; - var_r31->unk_00.unk_A4 = 0.0f; - if (var_r31->unk_00.unk_3C & 2) { - var_r31->unk_00.unk_3C &= ~2; - } + fn_1_2BD0(&var_r31->unk_00, 53.533333f, 0.0f); } var_f31 = var_r29->unk_00.unk_6C.x; var_f30 = var_r29->unk_00.unk_6C.z; diff --git a/src/REL/m461Dll/main.c b/src/REL/m461Dll/main.c index b5b0bfd0..5b0ae287 100644 --- a/src/REL/m461Dll/main.c +++ b/src/REL/m461Dll/main.c @@ -702,7 +702,7 @@ void fn_1_2DC8(WorkPlayerOld *player, s32 count, Vec *data) void fn_1_2DD4(WorkPlayerOld *player) { omSetTra(player->unk0, player->unk6C.x, player->unk6C.y, player->unk6C.z); - omSetRot(player->unk0, 0, player->unk9C, 0); + omSetRot(player->unk0, 0.0f, player->unk9C, 0.0f); } void fn_1_2E34(WorkPlayerOld *player) @@ -840,12 +840,7 @@ void fn_1_3C74(WorkPlayerOld *player, s32 *state, u32 *motAttr) } if(player->unk14[3] >= 0 && (player->unk28 & 0x100)) { - player->unk38 = 1; - player->unk84.y = 26.766666f; - player->unkA4 = 1; - if(player->unk3C & 0x2) { - player->unk3C &= ~0x2; - } + fn_1_2BD0(player, 26.766666f, 1.0f); *motAttr = HU3D_MOTATTR_NONE; *state = 3; } @@ -868,7 +863,7 @@ void fn_1_3D4C(WorkPlayerOld *player, s32 *state, u32 *motAttr) player->unk84.y += -2.4333334f; if(player->unk14[5] >= 0 && (player->unk28 & 0x140)) { player->unk38 = 3; - player->unk84.y = 0; + player->unk84.y = 0.0f; player->unk3C &= ~0x3; player->unk3C |= 0x4; *motAttr = HU3D_MOTATTR_NONE; @@ -895,12 +890,7 @@ void fn_1_3E60(WorkPlayerOld *player, s32 *state, u32 *motAttr) void fn_1_3F18(WorkPlayerOld *player, s32 *state, u32 *motAttr) { if(Hu3DMotionShiftIDGet(player->unk0->model[0]) < 0 && Hu3DMotionEndCheck(player->unk0->model[0])) { - player->unk38 = 1; - player->unk84.y = 0; - player->unkA4 = 0; - if(player->unk3C & 0x2) { - player->unk3C &= ~0x2; - } + fn_1_2BD0(player, 0.0f, 0.0f); } } @@ -2329,4 +2319,4 @@ void fn_1_D70C(omObjData *obj) CharModelKill(lbl_1_data_0[GWPlayerCfg[i].character]); } omOvlReturnEx(1, 1); -} \ No newline at end of file +} From 7cda6af48aaa724ea3edb449fe170d11b2e5a699 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 10 Nov 2024 06:53:52 +0100 Subject: [PATCH 106/311] Finished m432Dll --- config/GMPE01_00/rels/m432Dll/symbols.txt | 375 +-- configure.py | 2 +- include/REL/m432data.h | 1235 ++++++++ src/REL/m432Dll/main.c | 3307 ++++++++++++++++++++- 4 files changed, 4725 insertions(+), 194 deletions(-) create mode 100644 include/REL/m432data.h diff --git a/config/GMPE01_00/rels/m432Dll/symbols.txt b/config/GMPE01_00/rels/m432Dll/symbols.txt index 75ff4704..4926357c 100644 --- a/config/GMPE01_00/rels/m432Dll/symbols.txt +++ b/config/GMPE01_00/rels/m432Dll/symbols.txt @@ -101,138 +101,138 @@ fn_1_128C8 = .text:0x000128C8; // type:function size:0x5E0 fn_1_12EA8 = .text:0x00012EA8; // type:function size:0x300 fn_1_131A8 = .text:0x000131A8; // type:function size:0x2178 fn_1_15320 = .text:0x00015320; // type:function size:0x9C -fn_1_153BC = .text:0x000153BC; // type:function size:0xDA0 +ObjectSetup = .text:0x000153BC; // type:function size:0xDA0 fn_1_1615C = .text:0x0001615C; // type:function size:0x104 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 -lbl_1_data_80 = .data:0x00000080; // type:object size:0x1F data:string +lbl_1_data_80 = .data:0x00000080; // type:object size:0x1F scope:local data:string lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x8 lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x20 data:float lbl_1_data_C8 = .data:0x000000C8; // type:object size:0xC @@ -250,81 +250,81 @@ lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x24 lbl_1_data_318 = .data:0x00000318; // type:object size:0x3C lbl_1_data_354 = .data:0x00000354; // type:object size:0x18 lbl_1_data_36C = .data:0x0000036C; // type:object size:0x18 -lbl_1_data_384 = .data:0x00000384; // type:object size:0xB data:string -lbl_1_data_38F = .data:0x0000038F; // type:object size:0xB data:string -lbl_1_data_39A = .data:0x0000039A; // type:object size:0xB data:string -lbl_1_data_3A5 = .data:0x000003A5; // type:object size:0xB data:string -lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0xB data:string -lbl_1_data_3BB = .data:0x000003BB; // type:object size:0xB data:string -lbl_1_data_3C6 = .data:0x000003C6; // type:object size:0xB data:string -lbl_1_data_3D1 = .data:0x000003D1; // type:object size:0xB data:string +lbl_1_data_384 = .data:0x00000384; // type:object size:0xB scope:local data:string +lbl_1_data_38F = .data:0x0000038F; // type:object size:0xB scope:local data:string +lbl_1_data_39A = .data:0x0000039A; // type:object size:0xB scope:local data:string +lbl_1_data_3A5 = .data:0x000003A5; // type:object size:0xB scope:local data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0xB scope:local data:string +lbl_1_data_3BB = .data:0x000003BB; // type:object size:0xB scope:local data:string +lbl_1_data_3C6 = .data:0x000003C6; // type:object size:0xB scope:local data:string +lbl_1_data_3D1 = .data:0x000003D1; // type:object size:0xB scope:local data:string lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x20 -lbl_1_data_3FC = .data:0x000003FC; // type:object size:0xB data:string -lbl_1_data_407 = .data:0x00000407; // type:object size:0xB data:string -lbl_1_data_412 = .data:0x00000412; // type:object size:0xB data:string -lbl_1_data_41D = .data:0x0000041D; // type:object size:0xB data:string -lbl_1_data_428 = .data:0x00000428; // type:object size:0xB data:string -lbl_1_data_433 = .data:0x00000433; // type:object size:0xD +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0xB scope:local data:string +lbl_1_data_407 = .data:0x00000407; // type:object size:0xB scope:local data:string +lbl_1_data_412 = .data:0x00000412; // type:object size:0xB scope:local data:string +lbl_1_data_41D = .data:0x0000041D; // type:object size:0xB scope:local data:string +lbl_1_data_428 = .data:0x00000428; // type:object size:0xB scope:local data:string +lbl_1_data_433 = .data:0x00000433; // type:object size:0xD scope:local data:string lbl_1_data_440 = .data:0x00000440; // type:object size:0x18 data:4byte -lbl_1_data_458 = .data:0x00000458; // type:object size:0xB data:string -lbl_1_data_463 = .data:0x00000463; // type:object size:0xB data:string -lbl_1_data_46E = .data:0x0000046E; // type:object size:0xB data:string -lbl_1_data_479 = .data:0x00000479; // type:object size:0xB data:string -lbl_1_data_484 = .data:0x00000484; // type:object size:0xB data:string -lbl_1_data_48F = .data:0x0000048F; // type:object size:0xB data:string -lbl_1_data_49A = .data:0x0000049A; // type:object size:0xB data:string -lbl_1_data_4A5 = .data:0x000004A5; // type:object size:0xB data:string -lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0xB data:string -lbl_1_data_4BB = .data:0x000004BB; // type:object size:0xD +lbl_1_data_458 = .data:0x00000458; // type:object size:0xB scope:local data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0xB scope:local data:string +lbl_1_data_46E = .data:0x0000046E; // type:object size:0xB scope:local data:string +lbl_1_data_479 = .data:0x00000479; // type:object size:0xB scope:local data:string +lbl_1_data_484 = .data:0x00000484; // type:object size:0xB scope:local data:string +lbl_1_data_48F = .data:0x0000048F; // type:object size:0xB scope:local data:string +lbl_1_data_49A = .data:0x0000049A; // type:object size:0xB scope:local data:string +lbl_1_data_4A5 = .data:0x000004A5; // type:object size:0xB scope:local data:string +lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0xB scope:local data:string +lbl_1_data_4BB = .data:0x000004BB; // type:object size:0xD scope:local data:string lbl_1_data_4C8 = .data:0x000004C8; // type:object size:0x28 data:4byte -lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x14 -lbl_1_data_504 = .data:0x00000504; // type:object size:0x24 +lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x14 data:byte +lbl_1_data_504 = .data:0x00000504; // type:object size:0x24 data:byte lbl_1_data_528 = .data:0x00000528; // type:object size:0x8 -lbl_1_data_530 = .data:0x00000530; // type:object size:0xB data:string -lbl_1_data_53B = .data:0x0000053B; // type:object size:0xB data:string -lbl_1_data_546 = .data:0x00000546; // type:object size:0xB data:string -lbl_1_data_551 = .data:0x00000551; // type:object size:0xB data:string -lbl_1_data_55C = .data:0x0000055C; // type:object size:0xB data:string -lbl_1_data_567 = .data:0x00000567; // type:object size:0xB data:string -lbl_1_data_572 = .data:0x00000572; // type:object size:0xB data:string -lbl_1_data_57D = .data:0x0000057D; // type:object size:0xB data:string -lbl_1_data_588 = .data:0x00000588; // type:object size:0xB data:string -lbl_1_data_593 = .data:0x00000593; // type:object size:0xB data:string -lbl_1_data_59E = .data:0x0000059E; // type:object size:0xB data:string -lbl_1_data_5A9 = .data:0x000005A9; // type:object size:0xB data:string -lbl_1_data_5B4 = .data:0x000005B4; // type:object size:0xB data:string -lbl_1_data_5BF = .data:0x000005BF; // type:object size:0xB data:string -lbl_1_data_5CA = .data:0x000005CA; // type:object size:0xB data:string -lbl_1_data_5D5 = .data:0x000005D5; // type:object size:0xB data:string -lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0xB data:string +lbl_1_data_530 = .data:0x00000530; // type:object size:0xB scope:local data:string +lbl_1_data_53B = .data:0x0000053B; // type:object size:0xB scope:local data:string +lbl_1_data_546 = .data:0x00000546; // type:object size:0xB scope:local data:string +lbl_1_data_551 = .data:0x00000551; // type:object size:0xB scope:local data:string +lbl_1_data_55C = .data:0x0000055C; // type:object size:0xB scope:local data:string +lbl_1_data_567 = .data:0x00000567; // type:object size:0xB scope:local data:string +lbl_1_data_572 = .data:0x00000572; // type:object size:0xB scope:local data:string +lbl_1_data_57D = .data:0x0000057D; // type:object size:0xB scope:local data:string +lbl_1_data_588 = .data:0x00000588; // type:object size:0xB scope:local data:string +lbl_1_data_593 = .data:0x00000593; // type:object size:0xB scope:local data:string +lbl_1_data_59E = .data:0x0000059E; // type:object size:0xB scope:local data:string +lbl_1_data_5A9 = .data:0x000005A9; // type:object size:0xB scope:local data:string +lbl_1_data_5B4 = .data:0x000005B4; // type:object size:0xB scope:local data:string +lbl_1_data_5BF = .data:0x000005BF; // type:object size:0xB scope:local data:string +lbl_1_data_5CA = .data:0x000005CA; // type:object size:0xB scope:local data:string +lbl_1_data_5D5 = .data:0x000005D5; // type:object size:0xB scope:local data:string +lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0xB scope:local data:string lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x8B8 -lbl_1_data_EA4 = .data:0x00000EA4; // type:object size:0xB data:string -lbl_1_data_EAF = .data:0x00000EAF; // type:object size:0xB data:string -lbl_1_data_EBA = .data:0x00000EBA; // type:object size:0xB data:string -lbl_1_data_EC5 = .data:0x00000EC5; // type:object size:0xB data:string -lbl_1_data_ED0 = .data:0x00000ED0; // type:object size:0xC +lbl_1_data_EA4 = .data:0x00000EA4; // type:object size:0xB scope:local data:string +lbl_1_data_EAF = .data:0x00000EAF; // type:object size:0xB scope:local data:string +lbl_1_data_EBA = .data:0x00000EBA; // type:object size:0xB scope:local data:string +lbl_1_data_EC5 = .data:0x00000EC5; // type:object size:0xB scope:local data:string +lbl_1_data_ED0 = .data:0x00000ED0; // type:object size:0xC scope:local data:string lbl_1_data_EDC = .data:0x00000EDC; // type:object size:0x8B8 lbl_1_data_1794 = .data:0x00001794; // type:object size:0x20 lbl_1_data_17B4 = .data:0x000017B4; // type:object size:0x20 lbl_1_data_17D4 = .data:0x000017D4; // type:object size:0x20 data:float lbl_1_data_17F4 = .data:0x000017F4; // type:object size:0x20 lbl_1_data_1814 = .data:0x00001814; // type:object size:0x50 -lbl_1_data_1864 = .data:0x00001864; // type:object size:0x11 data:string -lbl_1_data_1875 = .data:0x00001875; // type:object size:0x11 data:string -lbl_1_data_1886 = .data:0x00001886; // type:object size:0x11 data:string -lbl_1_data_1897 = .data:0x00001897; // type:object size:0x18 data:string -lbl_1_data_18AF = .data:0x000018AF; // type:object size:0xB data:string -lbl_1_data_18BA = .data:0x000018BA; // type:object size:0x18 data:string -lbl_1_data_18D2 = .data:0x000018D2; // type:object size:0xC data:string -lbl_1_data_18DE = .data:0x000018DE; // type:object size:0x6 data:string -lbl_1_data_18E4 = .data:0x000018E4; // type:object size:0x21 data:string -lbl_1_data_1905 = .data:0x00001905; // type:object size:0x1F +lbl_1_data_1864 = .data:0x00001864; // type:object size:0x11 scope:local data:string +lbl_1_data_1875 = .data:0x00001875; // type:object size:0x11 scope:local data:string +lbl_1_data_1886 = .data:0x00001886; // type:object size:0x11 scope:local data:string +lbl_1_data_1897 = .data:0x00001897; // type:object size:0x18 scope:local data:string +lbl_1_data_18AF = .data:0x000018AF; // type:object size:0xB scope:local data:string +lbl_1_data_18BA = .data:0x000018BA; // type:object size:0x18 scope:local data:string +lbl_1_data_18D2 = .data:0x000018D2; // type:object size:0xC scope:local data:string +lbl_1_data_18DE = .data:0x000018DE; // type:object size:0x6 scope:local data:string +lbl_1_data_18E4 = .data:0x000018E4; // type:object size:0x21 scope:local data:string +lbl_1_data_1905 = .data:0x00001905; // type:object size:0x1F scope:local data:string jumptable_1_data_1924 = .data:0x00001924; // type:object size:0x1C scope:local jumptable_1_data_1940 = .data:0x00001940; // type:object size:0x44 scope:local -lbl_1_data_1984 = .data:0x00001984; // type:object size:0xB data:string -lbl_1_data_198F = .data:0x0000198F; // type:object size:0x1D +lbl_1_data_1984 = .data:0x00001984; // type:object size:0xB scope:local data:string +lbl_1_data_198F = .data:0x0000198F; // type:object size:0x1D scope:local data:string jumptable_1_data_19AC = .data:0x000019AC; // type:object size:0x28 scope:local -lbl_1_data_19D4 = .data:0x000019D4; // type:object size:0x24 data:string +lbl_1_data_19D4 = .data:0x000019D4; // type:object size:0x24 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x3F0 data:float lbl_1_bss_3F0 = .bss:0x000003F0; // type:object size:0x4 data:float lbl_1_bss_3F4 = .bss:0x000003F4; // type:object size:0x4 data:4byte @@ -333,7 +333,8 @@ lbl_1_bss_3FC = .bss:0x000003FC; // type:object size:0x4 data:4byte lbl_1_bss_400 = .bss:0x00000400; // type:object size:0x2 data:2byte lbl_1_bss_402 = .bss:0x00000402; // type:object size:0x2 data:2byte lbl_1_bss_404 = .bss:0x00000404; // type:object size:0x2 data:2byte -lbl_1_bss_408 = .bss:0x00000408; // type:object size:0x8 data:4byte +lbl_1_bss_408 = .bss:0x00000408; // type:object size:0x4 data:4byte +lbl_1_bss_40C = .bss:0x0000040C; // type:object size:0x4 data:4byte lbl_1_bss_410 = .bss:0x00000410; // type:object size:0x4 data:4byte lbl_1_bss_414 = .bss:0x00000414; // type:object size:0x4 data:4byte lbl_1_bss_418 = .bss:0x00000418; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 339a9dfe..56ea295c 100644 --- a/configure.py +++ b/configure.py @@ -1065,7 +1065,7 @@ config.libs = [ Rel( "m432Dll", # Dungeon Duos objects={ - Object(NonMatching, "REL/m432Dll/main.c"), + Object(Matching, "REL/m432Dll/main.c"), }, ), Rel( diff --git a/include/REL/m432data.h b/include/REL/m432data.h new file mode 100644 index 00000000..1152d0c7 --- /dev/null +++ b/include/REL/m432data.h @@ -0,0 +1,1235 @@ +#ifndef M432DATA_H +#define M432DATA_H + +#include "datadir_enum.h" +#include "dolphin.h" +#include "game/hsfanim.h" + +typedef struct UnkM432DllBss0SubStruct { + char *unk_00; + char *unk_04; + s32 unk_08; + u32 unk_0C[2]; + u32 unk_14; + float unk_18; + float unk_1C; + Vec unk_20; + Vec unk_2C; + float unk_38; + float unk_3C; + s16 unk_40; + s32 unk_44; +} UnkM432DllBss0SubStruct; /* size = 0x48 */ + +typedef struct UnkM432DllData1794Struct { + float unk_00; + float unk_04; + float unk_08; + float unk_0C; + float unk_10; + float unk_14; + s32 unk_18; + s32 unk_1C; +} UnkM432DllData1794Struct; /* size = 0x20 */ + +s32 lbl_1_data_A0[2] = { 1, 2 }; +float lbl_1_data_A8[8] = { 0.0f, 0.0f, 318.0f, 480.0f, 322.0f, 0.0f, 318.0f, 480.0f }; +Vec lbl_1_data_C8 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_D4 = { 0.0f, 3000.0f, 1000.0f }; +Vec lbl_1_data_E0 = { 0.0f, -3.0f, -1.0f }; +GXColor lbl_1_data_EC = { 0xFF, 0xFF, 0xFF, 0xFF }; +Vec lbl_1_data_F0 = { 0.0f, 5000.0f, 100.0f }; +Vec lbl_1_data_FC = { 0.0f, 0.0f, 0.0f }; + +s32 lbl_1_data_108[8][0xB] = { + { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x73), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x74), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x5B), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1D), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x38), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x6C), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x72), + }, + { + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x73), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x74), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x5B), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x1D), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x38), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x6C), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x72), + }, + { + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x02), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x03), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x73), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x74), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x5B), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x1D), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x38), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x6C), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x72), + }, + { + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x73), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x74), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x5B), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x1D), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x38), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x6C), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x72), + }, + { + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x73), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x74), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x5B), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x1D), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x38), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x6C), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x72), + }, + { + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x02), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x03), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x73), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x74), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x5B), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x1D), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x38), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x6C), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x72), + }, + { + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x02), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x03), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x73), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x74), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x5B), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x1D), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x38), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x6C), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x72), + }, + { + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x73), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x74), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x5B), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x1D), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x38), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x6C), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x72), + }, +}; + +s32 lbl_1_data_268[8] = { 0, 1, 2, 3, 4, -1, -1, -1 }; + +s32 lbl_1_data_288[9] = { + DATA_MAKE_NUM(DATADIR_M432, 0x1F), + DATA_MAKE_NUM(DATADIR_M432, 0x20), + DATA_MAKE_NUM(DATADIR_M432, 0x21), + DATA_MAKE_NUM(DATADIR_M432, 0x22), + DATA_MAKE_NUM(DATADIR_M432, 0x23), + DATA_MAKE_NUM(DATADIR_M432, 0x24), + DATA_MAKE_NUM(DATADIR_M432, 0x25), + DATA_MAKE_NUM(DATADIR_M432, 0x26), + DATA_MAKE_NUM(DATADIR_M432, 0x27), +}; + +s32 lbl_1_data_2AC[9] = { 0, 8, -0x10, 4, 0, -4, -1, 0, 0 }; +s32 lbl_1_data_2D0[9] = { 0, 8, -0x10, 8, 0, -4, -1, 0, 0 }; +s32 lbl_1_data_2F4[9] = { 0, 8, -0x10, 7, 0, -4, -1, 0, 0 }; +s32 lbl_1_data_318[0xF] = { 1, 0, -0x10, 5, -0x18, -5, 2, 0, -5, 6, 0x18, -5, -1, 0, 0 }; +Vec lbl_1_data_354[2] = { { -1200.0f, 0.0f, 0.0f }, { -400.0f, 0.0f, 0.0f } }; +Vec lbl_1_data_36C[2] = { { 400.0f, 0.0f, 0.0f }, { 1200.0f, 0.0f, 0.0f } }; + +char *lbl_1_data_3DC[8] = { + "m432_00-o0", + "m432_00-o1", + "m432_00-o2", + "m432_00-o3", + "m432_00-o4", + "m432_00-o5", + "m432_00-o6", + "m432_00-o7", +}; + +char *lbl_1_data_440[6] = { + "m432_00-p0", + "m432_00-p1", + "m432_00-p2", + "m432_00-p3", + "m432_00-p4", + "m432_00-q0", +}; + +char *lbl_1_data_4C8[0xA] = { + "m432_00-r0", + "m432_00-r1", + "m432_00-r2", + "m432_00-r5", + "m432_00-r4", + "m432_00-r3", + "m432_00-r6", + "m432_00-r7", + "m432_00-r8", + "m432_00-s0", +}; + +u8 lbl_1_data_4F0[0x14] = { + 0, + 0, + 0, + 1, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0, + 0, + 0, + 3, +}; + +u8 lbl_1_data_504[0x24] = { + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 5, + 0, + 0, + 0, + 8, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0, + 0, + 0, + 6, + 0, + 0, + 0, + 7, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, +}; + +s32 lbl_1_data_528[2] = { DATA_MAKE_NUM(DATADIR_M432, 0x05), DATA_MAKE_NUM(DATADIR_M432, 0x06) }; + +UnkM432DllBss0SubStruct lbl_1_data_5EC[0x1F] = { + { + "m432_00-i0", + NULL, + -1, + { 0, 0 }, + 0, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-b0", + "m432_00-a0", + 4, + { DATA_MAKE_NUM(DATADIR_M432, 0x0C), DATA_MAKE_NUM(DATADIR_M432, 0x0D) }, + 1, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-a1", + NULL, + 5, + { DATA_MAKE_NUM(DATADIR_M432, 0x0A), DATA_MAKE_NUM(DATADIR_M432, 0x0B) }, + 0x100, + 90.0f, + 150.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-b2", + "m432_00-a2", + 6, + { DATA_MAKE_NUM(DATADIR_M432, 0x0C), DATA_MAKE_NUM(DATADIR_M432, 0x0D) }, + 1, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-a3", + NULL, + 7, + { DATA_MAKE_NUM(DATADIR_M432, 0x0A), DATA_MAKE_NUM(DATADIR_M432, 0x0B) }, + 0x100, + 90.0f, + 150.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-c0", + NULL, + 0x10, + { DATA_MAKE_NUM(DATADIR_M432, 0x0E), DATA_MAKE_NUM(DATADIR_M432, 0x0F) }, + 0x400, + 90.0f, + 150.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-c1", + NULL, + 0x11, + { DATA_MAKE_NUM(DATADIR_M432, 0x0E), DATA_MAKE_NUM(DATADIR_M432, 0x0F) }, + 0x400, + -90.0f, + 150.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-d0", + NULL, + 0x14, + { DATA_MAKE_NUM(DATADIR_M432, 0x10), DATA_MAKE_NUM(DATADIR_M432, 0x11) }, + 0, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-c2", + NULL, + 0x12, + { DATA_MAKE_NUM(DATADIR_M432, 0x0E), DATA_MAKE_NUM(DATADIR_M432, 0x0F) }, + 0x200, + 90.0f, + 150.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-c3", + NULL, + 0x13, + { DATA_MAKE_NUM(DATADIR_M432, 0x0E), DATA_MAKE_NUM(DATADIR_M432, 0x0F) }, + 0x200, + -90.0f, + 150.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-d1", + NULL, + 0x15, + { DATA_MAKE_NUM(DATADIR_M432, 0x12), DATA_MAKE_NUM(DATADIR_M432, 0x13) }, + 0, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-p0", + "m432_00-q0", + -1, + { 0, 0 }, + 2, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-p1", + "m432_00-q0", + -1, + { 0, 0 }, + 2, + 0.0f, + 1.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-p2", + "m432_00-q0", + -1, + { 0, 0 }, + 2, + 0.0f, + 2.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-p3", + "m432_00-q0", + -1, + { 0, 0 }, + 2, + 0.0f, + 3.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-p4", + "m432_00-q0", + -1, + { 0, 0 }, + 2, + 0.0f, + 4.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-q0", + NULL, + -1, + { 0, 0 }, + 8, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r0", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r1", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 1.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r2", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 2.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r5", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 3.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r4", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 4.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r3", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 5.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r6", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 6.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r7", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 7.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r8", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 8.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-s0", + NULL, + -1, + { 0, 0 }, + 0x10, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-e0", + NULL, + 8, + { DATA_MAKE_NUM(DATADIR_M432, 0x14), DATA_MAKE_NUM(DATADIR_M432, 0x15) }, + 0x800, + 180.0f, + 120.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-j0", + NULL, + 9, + { DATA_MAKE_NUM(DATADIR_M432, 0x18), DATA_MAKE_NUM(DATADIR_M432, 0x19) }, + 0, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-h0", + NULL, + 0x16, + { DATA_MAKE_NUM(DATADIR_M432, 0x16), DATA_MAKE_NUM(DATADIR_M432, 0x17) }, + 0, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-t0", + NULL, + 0x17, + { DATA_MAKE_NUM(DATADIR_M432, 0x1C), DATA_MAKE_NUM(DATADIR_M432, 0x1D) }, + 0, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, +}; + +UnkM432DllBss0SubStruct lbl_1_data_EDC[0x1F] = { + { + "m432_00-i1", + NULL, + -1, + { 0, 0 }, + 0, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-a0", + NULL, + 0xA, + { DATA_MAKE_NUM(DATADIR_M432, 0x0A), DATA_MAKE_NUM(DATADIR_M432, 0x0B) }, + 0x100, + -90.0f, + 150.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-b1", + "m432_00-a1", + 0xB, + { DATA_MAKE_NUM(DATADIR_M432, 0x0C), DATA_MAKE_NUM(DATADIR_M432, 0x0D) }, + 1, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-a2", + NULL, + 0xC, + { DATA_MAKE_NUM(DATADIR_M432, 0x0A), DATA_MAKE_NUM(DATADIR_M432, 0x0B) }, + 0x100, + -90.0f, + 150.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-b3", + "m432_00-a3", + 0xD, + { DATA_MAKE_NUM(DATADIR_M432, 0x0C), DATA_MAKE_NUM(DATADIR_M432, 0x0D) }, + 1, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-c0", + NULL, + 0x10, + { 0, 0 }, + 0x400, + 90.0f, + 150.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-c1", + NULL, + 0x11, + { 0, 0 }, + 0x400, + -90.0f, + 150.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-d0", + NULL, + 0x14, + { 0, 0 }, + 0, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-c2", + NULL, + 0x12, + { 0, 0 }, + 0x200, + 90.0f, + 150.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-c3", + NULL, + 0x13, + { 0, 0 }, + 0x200, + -90.0f, + 150.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-d1", + NULL, + 0x15, + { 0, 0 }, + 0, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-p0", + "m432_00-q0", + -1, + { 0, 0 }, + 2, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-p1", + "m432_00-q0", + -1, + { 0, 0 }, + 2, + 0.0f, + 1.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-p2", + "m432_00-q0", + -1, + { 0, 0 }, + 2, + 0.0f, + 2.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-p3", + "m432_00-q0", + -1, + { 0, 0 }, + 2, + 0.0f, + 3.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-p4", + "m432_00-q0", + -1, + { 0, 0 }, + 2, + 0.0f, + 4.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-q0", + NULL, + -1, + { 0, 0 }, + 8, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r0", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r1", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 1.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r2", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 2.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r5", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 3.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r4", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 4.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r3", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 5.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r6", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 6.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r7", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 7.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-r8", + "m432_00-s0", + -1, + { 0, 0 }, + 4, + 0.0f, + 8.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-s0", + NULL, + -1, + { 0, 0 }, + 0x10, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-e1", + NULL, + 0xE, + { DATA_MAKE_NUM(DATADIR_M432, 0x14), DATA_MAKE_NUM(DATADIR_M432, 0x15) }, + 0x800, + 180.0f, + 120.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-k0", + NULL, + 0xF, + { DATA_MAKE_NUM(DATADIR_M432, 0x1A), DATA_MAKE_NUM(DATADIR_M432, 0x1B) }, + 0, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-h0", + NULL, + 0x16, + { 0, 0 }, + 0, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, + { + "m432_00-t0", + NULL, + 0x17, + { 0, 0 }, + 0, + 0.0f, + 0.0f, + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + 0.0f, + 0.0f, + 0, + 0, + }, +}; + +UnkM432DllData1794Struct lbl_1_data_1794 = { 6300.0f, 0.7f, 10.0f, 0.4f, 1.0f, 0, 2, 6 }; +UnkM432DllData1794Struct lbl_1_data_17B4 = { 5700.0f, 0.8f, 8.0f, 0.6f, 1.0f, 0, 4, 5 }; +UnkM432DllData1794Struct lbl_1_data_17D4 = { 5100.0f, 0.9f, 6.0f, 0.8f, 1.0f, 0, 6, 4 }; +UnkM432DllData1794Struct lbl_1_data_17F4 = { 4500.0f, 1.0f, 4.0f, 1.0f, 1.0f, 0, 8, 3 }; +HsfanimStruct00 lbl_1_data_1814 = { + 0x1E, + { 0, 0 }, + 1.0f, + 50.0f, + 360.0f, + { 0.0f, 0.1f, 0.0f }, + 1.0f, + 1.0f, + 30.0f, + 1.1f, + 4, + { + { 0xF0, 0xD0, 0xB0, 0xFF }, + { 0xE0, 0xC0, 0xA0, 0xFF }, + { 0xD0, 0xB0, 0x90, 0xFF }, + { 0xC0, 0xA0, 0x80, 0xFF }, + }, + { + { 0xF0, 0xD0, 0xB0, 0 }, + { 0xE0, 0xC0, 0xA0, 0 }, + { 0xD0, 0xB0, 0x90, 0 }, + { 0xC0, 0xA0, 0x80, 0 }, + }, +}; + +#endif diff --git a/src/REL/m432Dll/main.c b/src/REL/m432Dll/main.c index 117d8d64..18d7f523 100644 --- a/src/REL/m432Dll/main.c +++ b/src/REL/m432Dll/main.c @@ -1,11 +1,14 @@ #include "REL/executor.h" +#include "dolphin/types.h" #include "game/chrman.h" #include "game/frand.h" +#include "game/memory.h" #include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" #include "game/wipe.h" +#include "game/gamework.h" #include "game/gamework_data.h" #include "game/mapspace.h" @@ -21,7 +24,15 @@ #include "game/sprite.h" #include "ext_math.h" -#include "rel_sqrt_consts.h" + +#include "string.h" + +#ifndef __MWERKS__ +#include "game/audio.h" +#include "game/hsfex.h" + +void HuSysVWaitSet(s16 vcount); +#endif #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) @@ -56,7 +67,7 @@ Vec lbl_1_bss_590; Vec lbl_1_bss_584; u32 lbl_1_bss_580; s32 lbl_1_bss_57C; -u32 lbl_1_bss_578; +u32 lbl_1_bss_578; // TODO maybe array? s16 lbl_1_bss_576; s16 lbl_1_bss_574; s32 lbl_1_bss_570; @@ -403,9 +414,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) var_r30 = &Hu3DData[arg0]; Hu3DModelObjMtxGet(arg0, arg1, spC); - PSMTXConcat(var_r30->unk_F0, spC, spC); + MTXConcat(var_r30->unk_F0, spC, spC); if (NULL != arg3) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); } arg2->x = spC[0][3]; arg2->y = spC[1][3]; @@ -433,7 +444,7 @@ float fn_1_1E20(float arg0, float arg1, float arg2) void fn_1_1F24(s32 arg0) { - lbl_1_bss_570 = HuAudSeqPlay((s32)arg0); + lbl_1_bss_570 = HuAudSeqPlay(arg0); } void fn_1_1F58(s32 arg0) @@ -477,4 +488,3288 @@ void fn_1_1FC4(Vec *arg0, float *arg1, s32 arg2, s32 arg3) } } VECAdd((Vec *)&arg0, &sp18, (Vec *)&arg0); -} \ No newline at end of file +} + +s16 lbl_1_data_0[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +s32 lbl_1_data_10[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; +float lbl_1_data_30[0xA] = { 70.0f, 70.0f, 70.0f, 70.0f, 70.0f, 70.0f, 70.0f, 70.0f, 70.0f, 100.0f }; +float lbl_1_data_58[0xA] = { + 150.0f, + 170.0f, + 190.0f, + 170.0f, + 160.0f, + 150.0f, + 180.0f, + 200.0f, + 150.0f, + 200.0f, +}; + +// these are copied from m461Dll/main.c +typedef void (*PlayerOldHook)(omObjData *obj); +typedef Vec *(*PlayerOldPosHook)(omObjData *obj); + +typedef struct work_playerold { + omObjData *unk_00; + PlayerOldHook unk_04; + PlayerOldPosHook unk_08; + PlayerOldHook unk_0C; + PlayerOldHook unk_10; + s32 *unk_14; + s32 unk_18; + s32 unk_1C; + s32 unk_20; + s32 unk_24; + s32 unk_28; + s32 unk_2C; + s32 unk_30; + s32 unk_34; + s32 unk_38; + s32 unk_3C; + s32 unk_40; + s32 unk_44; + s32 unk_48; + s32 unk_4C; + Vec *unk_50; + Vec unk_54; + float unk_60; + s32 unk_64; + Vec *unk_68; + Vec unk_6C; + Vec unk_78; + Vec unk_84; + Vec unk_90; + float unk_9C; + float unk_A0; + float unk_A4; + float unk_A8; + Vec unk_AC; + float unk_B8; + float unk_BC; + float unk_C0; +} WorkPlayerOld; + +typedef WorkPlayerOld *(*PlayerOldFind)(int no); + +PlayerOldFind lbl_1_bss_424; +float lbl_1_bss_420; + +void fn_1_23B4(WorkPlayerOld *player) +{ + s32 i; + for (i = 0; i < 8; i++) { + if (player->unk_44 == player->unk_14[i]) { + player->unk_40 = lbl_1_data_10[i]; + return; + } + } + player->unk_40 = -1; +} + +void fn_1_2418(float *minDist, s32 *state, s32 stateNew, Vec *posA, float aYOfs, Vec *posB, float bYOfs) +{ + Vec pointA = *posA; + Vec pointB = *posB; + float dist; + pointA.y += aYOfs; + pointB.y += bYOfs; + dist = VECDistance(&pointA, &pointB); + if (*minDist > dist) { + *minDist = dist; + *state = stateNew; + } +} + +void fn_1_24F8(WorkPlayerOld *player1, WorkPlayerOld *player2, float *minDist, s32 *state) +{ + *minDist = 10 * (player1->unk_BC + player2->unk_BC); + fn_1_2418(minDist, state, 0, &player1->unk_6C, player1->unk_BC, &player2->unk_6C, player2->unk_BC); + fn_1_2418(minDist, state, 1, &player1->unk_6C, player1->unk_C0 - player1->unk_BC, &player2->unk_6C, player2->unk_C0 - player2->unk_BC); + fn_1_2418(minDist, state, 2, &player1->unk_6C, player1->unk_BC, &player2->unk_6C, player2->unk_C0 - player2->unk_BC); + fn_1_2418(minDist, state, 3, &player1->unk_6C, player1->unk_C0 - player1->unk_BC, &player2->unk_6C, player2->unk_BC); +} + +s32 fn_1_2824(WorkPlayerOld *player, WorkPlayerOld *player2) +{ + Vec dir; + Vec dir2; + float dist; + + player->unk_3C |= 0x1; + player->unk_90.x = player->unk_20 / 4.0f; + player->unk_90.z = -(float)player->unk_24 / 4.0f; + if (player->unk_90.x != 0.0f || player->unk_90.z != 0.0f) { + return; + } + VECSubtract(&player->unk_6C, &player2->unk_6C, &dir); + dist = VECMagXZ(&dir); + if (0.0f == dist) { + dir.x = 0; + dir.z = -1; + } + else { + dir.x /= dist; + dir.z /= dist; + } + VECSubtract(&player->unk_6C, &player->unk_78, &dir2); + dist = VECMagXZ(&dir2); + if (5 > dist) { + dist = 5; + } + player->unk_90.x = dir.x * dist; + player->unk_90.z = dir.z * dist; +} + +void fn_1_2BD0(WorkPlayerOld *player, float arg1, float arg2) +{ + player->unk_38 = 1; + player->unk_84.y = arg1; + player->unk_A4 = arg2; + if (player->unk_3C & 0x2) { + player->unk_3C &= ~0x2; + } +} + +void fn_1_2C00(PlayerOldFind find, float yDist) +{ + lbl_1_bss_424 = find; + lbl_1_bss_420 = yDist; +} + +void fn_1_2C1C(WorkPlayerOld *player, omObjData *obj, s32 arg2, s32 arg3, s32 *arg4, s32 arg5, Vec *pos, float arg7) +{ + player->unk_00 = obj; + player->unk_18 = arg2; + player->unk_1C = arg3; + player->unk_14 = arg4; + player->unk_04 = NULL; + player->unk_08 = NULL; + player->unk_0C = NULL; + player->unk_10 = NULL; + player->unk_50 = NULL; + player->unk_64 = 0; + player->unk_68 = 0; + player->unk_38 = 0; + player->unk_3C = 0; + player->unk_44 = arg5; + player->unk_48 = 0; + player->unk_4C = 0; + fn_1_23B4(player); + player->unk_9C = arg7; + player->unk_6C = *pos; + player->unk_78 = *pos; + player->unk_84.x = 0; + player->unk_84.y = 0; + player->unk_84.z = 0; + player->unk_B8 = 1; + player->unk_A8 = 0; + player->unk_BC = lbl_1_data_30[player->unk_1C]; + player->unk_C0 = lbl_1_data_58[player->unk_1C]; +} + +void fn_1_2DA8(WorkPlayerOld *player, PlayerOldHook func) +{ + player->unk_04 = func; +} + +void fn_1_2DB0(WorkPlayerOld *player, PlayerOldPosHook func) +{ + player->unk_08 = func; +} + +void fn_1_2DB8(WorkPlayerOld *player, PlayerOldHook func) +{ + player->unk_0C = func; +} + +void fn_1_2DC0(WorkPlayerOld *player, PlayerOldHook func) +{ + player->unk_10 = func; +} + +void fn_1_2DC8(WorkPlayerOld *player, s32 count, Vec *data) +{ + player->unk_64 = count; + player->unk_68 = data; +} + +void fn_1_2DD4(WorkPlayerOld *player) +{ + omSetTra(player->unk_00, player->unk_6C.x, player->unk_6C.y, player->unk_6C.z); + omSetRot(player->unk_00, 0.0f, player->unk_9C, 0.0f); +} + +void fn_1_2E34(WorkPlayerOld *player) +{ + BOOL addTime; + s32 i; + player->unk_3C &= ~0x100; + if (player->unk_3C & 0x8) { + return; + } + if (NULL == lbl_1_bss_424) { + return; + } + addTime = FALSE; + for (i = 0; i < 4; i++) { + WorkPlayerOld *player2 = lbl_1_bss_424(i); + BOOL fixPos; + float minDist; + s32 state; + if (player == player2) { + continue; + } + if (player2->unk_3C & 0x8) { + continue; + } + fixPos = FALSE; + fn_1_24F8(player, player2, &minDist, &state); + if (minDist < player->unk_BC + player2->unk_BC) { + if (state < 2) { + fixPos = TRUE; + if (player->unk_38 == 1) { + fn_1_2824(player, player2); + } + } + else { + if (state == 2 && player->unk_38 == 1) { + fn_1_2824(player, player2); + player->unk_3C |= 0x100; + player->unk_A4 = 0; + if (!(player2->unk_3C & 0x100)) { + player->unk_84.y = 26.766666f; + } + } + if (state == 3) { + fixPos = TRUE; + if (player->unk_38 == 1) { + if (0.0f < player->unk_84.y) { + player->unk_84.y = 0.0f; + } + player->unk_A4 = 0; + } + } + } + } + if (fixPos) { + Vec dir; + addTime = TRUE; + VECSubtract(&player->unk_6C, &player2->unk_6C, &dir); + if (0.0f == minDist) { + dir.x = 0; + dir.z = -1; + } + else { + dir.x /= minDist; + dir.z /= minDist; + } + player->unk_6C.x = player2->unk_6C.x + (dir.x * (player->unk_BC + player2->unk_BC)); + player->unk_6C.z = player2->unk_6C.z + (dir.z * (player->unk_BC + player2->unk_BC)); + } + } + if (addTime) { + player->unk_4C++; + } + else { + player->unk_4C = 0; + } +} + +float fn_1_39C4(WorkPlayerOld *player, float arg2) +{ + Vec *pos; + s32 i; + AddX = 0.0f; + AddZ = 0.0f; + MapWall(player->unk_BC, player->unk_6C.x, arg2 + player->unk_BC, player->unk_6C.z); + player->unk_6C.x += AddX; + player->unk_6C.z += AddZ; + if (NULL != player->unk_68) { + for (pos = player->unk_68, i = 0; i < player->unk_64; i++, pos += 2) { + int num = 0; + if (pos[0].x == pos[1].x || pos[0].x > player->unk_6C.x || pos[1].x < player->unk_6C.x) { + num++; + } + if (pos[0].y == pos[1].y || pos[0].y > player->unk_6C.y || pos[1].y < player->unk_6C.y) { + num++; + } + if (pos[0].z == pos[1].z || pos[0].z > player->unk_6C.z || pos[1].z < player->unk_6C.z) { + num++; + } + if (num == 3) { + if (pos[0].x != pos[1].x) { + if (pos[0].x > player->unk_6C.x) { + player->unk_6C.x = pos[0].x + player->unk_BC; + } + if (pos[1].x < player->unk_6C.x) { + player->unk_6C.x = pos[1].x - player->unk_BC; + } + } + if (pos[0].y != pos[1].y) { + if (pos[0].y > player->unk_6C.y) { + player->unk_6C.y = pos[0].y; + } + if (pos[1].y < player->unk_6C.y) { + player->unk_6C.y = pos[1].y; + } + } + if (pos[0].z != pos[1].z) { + if (pos[0].z > player->unk_6C.z) { + player->unk_6C.z = pos[0].z + player->unk_BC; + } + if (pos[1].z < player->unk_6C.z) { + player->unk_6C.z = pos[1].z - player->unk_BC; + } + } + } + } + } + return ABS(AddX) + ABS(AddZ); +} + +void fn_1_3CE0(WorkPlayerOld *player, s32 *state, u32 *motAttr) +{ + *motAttr = HU3D_MOTATTR_LOOP; + *state = 0; + if (0.5f <= player->unk_A0) { + if (7.0f <= player->unk_A0) { + *state = 2; + } + else { + *state = 1; + } + } + + if (player->unk_14[3] >= 0 && (player->unk_28 & 0x100)) { + fn_1_2BD0(player, 26.766666f, 1); + *motAttr = HU3D_MOTATTR_NONE; + *state = 3; + } +} + +void fn_1_3DB8(WorkPlayerOld *player, s32 *state, u32 *motAttr) +{ + if (0.0f < player->unk_A4) { + if (player->unk_2C & 0x100) { + player->unk_A4++; + if (4.0f < player->unk_A4) { + player->unk_A4 = 0; + } + else { + player->unk_84.y += 3.65f; + } + } + else { + player->unk_A4 = 0; + } + } + player->unk_84.y += -2.4333334f; + if (player->unk_14[5] >= 0 && (player->unk_28 & 0x140)) { + player->unk_38 = 3; + player->unk_84.y = 0; + player->unk_3C &= ~0x3; + player->unk_3C |= 0x4; + *motAttr = HU3D_MOTATTR_NONE; + *state = 5; + } +} + +void fn_1_3ECC(WorkPlayerOld *player, s32 *state, u32 *motAttr) +{ + if ((player->unk_3C & 0x1000) || Hu3DMotionEndCheck(player->unk_00->model[0])) { + player->unk_3C &= ~0x3; + if (player->unk_40 == 6) { + player->unk_38 = 4; + *motAttr = HU3D_MOTATTR_NONE; + *state = 7; + } + else { + player->unk_38 = 0; + *motAttr = HU3D_MOTATTR_LOOP; + *state = 0; + } + } +} + +void fn_1_3F84(WorkPlayerOld *player, s32 *state, u32 *motAttr) +{ + if (Hu3DMotionShiftIDGet(player->unk_00->model[0]) < 0 && Hu3DMotionEndCheck(player->unk_00->model[0])) { + fn_1_2BD0(player, 0.0f, 0.0f); + } +} + +void fn_1_4024(WorkPlayerOld *player, s32 *state, u32 *motAttr) +{ + if (Hu3DMotionShiftIDGet(player->unk_00->model[0]) < 0 && Hu3DMotionEndCheck(player->unk_00->model[0])) { + player->unk_3C &= ~0x4; + player->unk_38 = 0; + *motAttr = HU3D_MOTATTR_LOOP; + *state = 0; + } +} + +void fn_1_40C0(WorkPlayerOld *player) +{ + u32 motAttr = HU3D_MOTATTR_NONE; + s32 state = -1; + float temp_f28; + float temp_f23; + float temp_f22; + Vec *pos; + BOOL temp_r27; + if (player->unk_3C & 0x1) { + player->unk_84.x = player->unk_90.x; + player->unk_84.z = player->unk_90.z; + } + else { + player->unk_84.x = player->unk_20 / 4.0f; + player->unk_84.z = -(float)player->unk_24 / 4.0f; + if (player->unk_38 == 1 && 0.0f == player->unk_84.x && 0.0f == player->unk_84.z) { + player->unk_84.x = 0.98f * (player->unk_6C.x - player->unk_78.x); + player->unk_84.z = 0.98f * (player->unk_6C.z - player->unk_78.z); + } + if (player->unk_3C & 0x14) { + player->unk_84.x = 0; + player->unk_84.z = 0; + player->unk_28 = 0; + } + } + player->unk_78 = player->unk_6C; + player->unk_A0 = VECMagXZ(&player->unk_84); + if (0.5f <= player->unk_A0) { + if (10.0f <= player->unk_A0) { + player->unk_84.x /= player->unk_A0; + player->unk_84.z /= player->unk_A0; + player->unk_A0 = 10; + player->unk_84.x = 10 * player->unk_84.x; + player->unk_84.z = 10 * player->unk_84.z; + } + } + else { + player->unk_84.x = 0; + player->unk_84.z = 0; + player->unk_A0 = 0; + } + player->unk_84.x *= player->unk_B8; + player->unk_84.z *= player->unk_B8; + player->unk_A0 *= player->unk_B8; + if (player->unk_3C & 0x800) { + player->unk_28 |= 0x100; + player->unk_2C |= 0x100; + if (player->unk_38 == 1) { + if (0.0f == player->unk_A4) { + player->unk_3C &= ~0x800; + } + } + } + switch (player->unk_38) { + case 0: + fn_1_3CE0(player, &state, &motAttr); + break; + + case 1: + fn_1_3DB8(player, &state, &motAttr); + break; + + case 2: + fn_1_3ECC(player, &state, &motAttr); + break; + + case 3: + fn_1_3F84(player, &state, &motAttr); + break; + + case 4: + fn_1_4024(player, &state, &motAttr); + break; + + default: + OSReport("*** player action error(%d)!!\n", player->unk_38); + break; + } + if (player->unk_3C & 0x2000) { + player->unk_84.y = 0; + } + temp_f28 = 0; + if (50.0f < ABS(player->unk_84.y)) { + player->unk_84.y = 50.0f * ((0.0f > player->unk_84.y) ? -1 : 1); + } + if (player->unk_3C & 0x2) { + Mtx rotMtx; + MTXRotDeg(rotMtx, 'y', player->unk_50[2].x - player->unk_60); + MTXMultVec(rotMtx, &player->unk_54, &player->unk_54); + VECAdd(&player->unk_54, &player->unk_50[0], &player->unk_6C); + player->unk_9C += player->unk_50[2].x - player->unk_60; + } + temp_f22 = player->unk_6C.y; + VECAdd(&player->unk_6C, &player->unk_84, &player->unk_6C); + if ((player->unk_3C & 0x1) == 0 && (0.0f != player->unk_84.x || 0.0f != player->unk_84.z)) { + player->unk_9C = fn_1_1E20(player->unk_9C, atan2d(player->unk_84.x, player->unk_84.z), 0.4f * player->unk_B8); + } + temp_f28 += fn_1_39C4(player, temp_f22); + if (nMap == 0) { + player->unk_A8 = lbl_1_bss_420; + } + else { + player->unk_A8 = MapPos(player->unk_6C.x, player->unk_6C.y, player->unk_6C.z, player->unk_C0, &player->unk_AC); + } + temp_r27 = FALSE; + if (NULL != player->unk_08) { + pos = player->unk_08(player->unk_00); + if (NULL != pos) { + if (player->unk_A8 < pos[1].y) { + temp_r27 = TRUE; + player->unk_50 = pos; + player->unk_A8 = pos[1].y; + } + } + } + if (!temp_r27 && (player->unk_3C & 0x2)) { + player->unk_3C &= ~0x2; + } + if (player->unk_38 == 1 && player->unk_A8 >= player->unk_6C.y) { + player->unk_38 = 2; + player->unk_3C &= ~0x3; + player->unk_6C.y = player->unk_A8; + player->unk_84.y = 0; + motAttr = HU3D_MOTATTR_NONE; + state = 4; + if (player->unk_40 == 5) { + state = 6; + if (NULL != player->unk_10) { + player->unk_10(player->unk_00); + } + if (player->unk_18 < 4) { + omVibrate(player->unk_18, 12, 4, 2); + } + } + if (player->unk_3C & 0x200) { + state = -1; + if (NULL != player->unk_0C) { + player->unk_0C(player->unk_00); + } + } + if (temp_r27) { + player->unk_3C |= 0x2; + } + } + temp_f23 = player->unk_6C.y - player->unk_A8; + if (player->unk_38 == 0 && 10.0f < temp_f23) { + if ((player->unk_3C & 0x2000) == 0) { + if ((player->unk_3C & 0x400) != 0) { + player->unk_3C |= 0x800; + } + else { + fn_1_2BD0(player, 0.0f, 0.0f); + motAttr = HU3D_MOTATTR_NONE; + state = 3; + } + } + } + else if (temp_r27) { + if (!(player->unk_3C & 0x2)) { + player->unk_6C.y = player->unk_A8; + player->unk_3C |= 0x2; + } + } + fn_1_2E34(player); + if (NULL != player->unk_04) { + player->unk_04(player->unk_00); + } + temp_f28 += fn_1_39C4(player, player->unk_6C.y); + if (player->unk_3C & 0x2) { + player->unk_60 = player->unk_50[2].x; + VECSubtract(&player->unk_6C, &player->unk_50[0], &player->unk_54); + } + if (0.0f != temp_f28) { + player->unk_48++; + } + else { + player->unk_48 = 0; + } + if (state >= 0 && player->unk_40 != state) { + player->unk_40 = state; + player->unk_44 = player->unk_14[player->unk_40]; + if (player->unk_44 >= 0 && !(player->unk_3C & 0x20)) { + Hu3DMotionShiftSet(player->unk_00->model[0], player->unk_00->motion[player->unk_44], 0, 8, motAttr); + } + } +} + +void fn_1_4ED8(WorkPlayerOld *player, s32 motNo) +{ + s32 i; + player->unk_44 = motNo; + player->unk_38 = 0; + player->unk_3C &= 0x1400; + player->unk_78 = player->unk_6C; + player->unk_84.x = 0; + player->unk_84.y = 0; + player->unk_84.z = 0; + fn_1_23B4(player); + if (player->unk_40 == 3) { + Hu3DModelAttrReset(player->unk_00->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); + Hu3DMotionSet(player->unk_00->model[0], player->unk_00->motion[player->unk_44]); + Hu3DMotionTimeSet(player->unk_00->model[0], Hu3DMotionMaxTimeGet(player->unk_00->model[0]) - 1); + } + else if (player->unk_40 == 5) { + player->unk_38 = 3; + player->unk_3C |= 0x4; + Hu3DModelAttrReset(player->unk_00->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); + Hu3DMotionSet(player->unk_00->model[0], player->unk_00->motion[player->unk_44]); + Hu3DMotionTimeSet(player->unk_00->model[0], Hu3DMotionMaxTimeGet(player->unk_00->model[0]) - 1); + } + else { + Hu3DModelAttrReset(player->unk_00->model[0], HU3D_MOTATTR_PAUSE); + Hu3DMotionShiftSet(player->unk_00->model[0], player->unk_00->motion[player->unk_44], 0, 8, HU3D_MOTATTR_LOOP); + } +} + +void fn_1_5128(WorkPlayerOld *player, s32 attr) +{ + player->unk_3C |= attr; +} + +void fn_1_5138(WorkPlayerOld *player, s32 attr) +{ + player->unk_3C &= ~attr; +} + +#include "REL/m432data.h" + +typedef struct UnkBss0Struct { + /* 0x000 */ omObjData *unk_00; + /* 0x004 */ omObjData *unk_04; + /* 0x008 */ omObjData *unk_08; + /* 0x00C */ omObjData *unk_0C; + /* 0x010 */ UnkM432DllBss0SubStruct *unk_10[2]; + /* 0x018 */ s32 unk_18; + /* 0x01C */ Vec unk_1C; + /* 0x028 */ Vec unk_28; + /* 0x034 */ Vec unk_34; + /* 0x040 */ Vec unk_40; + /* 0x04C */ Vec unk_4C; + /* 0x058 */ Vec unk_58; + /* 0x064 */ float unk_64; + /* 0x068 */ float unk_68; + /* 0x06C */ float unk_6C; + /* 0x070 */ float unk_70; + /* 0x074 */ float unk_74; + /* 0x078 */ float unk_78; + /* 0x07C */ float unk_7C; + /* 0x080 */ float unk_80; + /* 0x084 */ float unk_84; + /* 0x088 */ Vec unk_88[4][3]; + /* 0x118 */ Vec unk_118; + /* 0x124 */ float unk_124; + /* 0x128 */ float unk_128; + /* 0x12C */ float unk_12C; + /* 0x130 */ Vec unk_130[8]; + /* 0x190 */ Vec unk_190; + /* 0x19C */ Vec unk_19C; + /* 0x1A8 */ Vec unk_1A8; + /* 0x1B4 */ s32 unk_1B4; + /* 0x1B8 */ s32 unk_1B8; + /* 0x1BC */ s32 unk_1BC; + /* 0x1C0 */ Vec unk_1C0; + /* 0x1CC */ s32 unk_1CC; + /* 0x1D0 */ s32 unk_1D0; + /* 0x1D4 */ float unk_1D4; + /* 0x1D8 */ s32 unk_1D8; + /* 0x1DC */ float unk_1DC; + /* 0x1E0 */ float unk_1E0; + /* 0x1E4 */ float unk_1E4; + /* 0x1E8 */ float unk_1E8; + /* 0x1EC */ float unk_1EC; + /* 0x1F0 */ float unk_1F0[2]; +} UnkBss0Struct; /* size = 0x1F8 */ + +typedef struct UnkM432DllStruct { + WorkPlayerOld unk_00; + s32 *unk_C4; + UnkM432DllBss0SubStruct *unk_C8; + UnkM432DllData1794Struct *unk_CC; + UnkM432DllBss0SubStruct *unk_D0; + s32 unk_D4[10]; + s32 unk_FC; + s32 unk_100; + float unk_104; + float unk_108; + float unk_10C; + float unk_110; + float unk_114; + s32 unk_118[9]; + Vec unk_13C; + float unk_148; + float unk_14C; + float unk_150; + float unk_154; + float unk_158; + float unk_15C; + float unk_160; + float unk_164; + s32 unk_168; + s32 unk_16C; + s32 unk_170; + s32 unk_174; + s32 unk_178; + s32 unk_17C; + s32 unk_180; + s32 unk_184; + s32 unk_188; + s32 unk_18C; + s32 unk_190; + s32 unk_194; +} UnkM432DllStruct; + +typedef struct UnkM432DllStruct2 { + Vec unk_00; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; +} UnkM432DllStruct2; /* size = 0x1C */ + +void fn_1_10250(omObjData *object); +void fn_1_153BC(void); +void fn_1_1615C(omObjData *object); +void fn_1_6F28(UnkBss0Struct *arg0); +void fn_1_93BC(UnkM432DllStruct *arg0); + +omObjData *lbl_1_bss_41C; +omObjData **lbl_1_bss_418; +omObjData *lbl_1_bss_414; +// data UnkM432DllStruct +omObjData **lbl_1_bss_410; +s32 lbl_1_bss_40C; +AnimData *lbl_1_bss_408; +s16 lbl_1_bss_404; +s16 lbl_1_bss_402; +s16 lbl_1_bss_400; +s32 lbl_1_bss_3FC; +s32 lbl_1_bss_3F8; +s32 lbl_1_bss_3F4; +float lbl_1_bss_3F0; +UnkBss0Struct lbl_1_bss_0[2]; + +void fn_1_5148(UnkM432DllStruct *arg0) +{ + s32 var_r31; + + arg0->unk_D0 = 0; + arg0->unk_FC = 0; + arg0->unk_100 = 0; + arg0->unk_10C = 0.0f; + for (var_r31 = 0; var_r31 < 0xA; var_r31++) { + arg0->unk_D4[var_r31] = -1; + } +} + +UnkM432DllStruct *fn_1_51A8(s32 arg0) +{ + s32 var_r31; + UnkM432DllStruct *var_r30; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = lbl_1_bss_410[var_r31]->data; + if (arg0 == var_r30->unk_184) { + return var_r30; + } + } + return NULL; +} + +UnkM432DllBss0SubStruct *fn_1_5208(s32 arg0, UnkM432DllBss0SubStruct *arg1) +{ + UnkM432DllBss0SubStruct *var_r31; + s32 var_r30; + s32 var_r29; + + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r31 = lbl_1_bss_0[arg0].unk_10[var_r30]; + for (var_r29 = 0; var_r29 < 0x1F; var_r29++, var_r31++) { + if (strcmp(arg1->unk_04, var_r31->unk_00) == 0) { + return var_r31; + } + } + } + return NULL; +} + +inline void fn_1_52B8_inline(Vec *arg0, float arg8, float arg9, float argA) +{ + arg0->x = arg8; + arg0->y = arg9; + arg0->z = argA; +} + +void fn_1_52B8(UnkM432DllBss0SubStruct *arg0, Vec *arg1) +{ + Mtx sp8; + + fn_1_52B8_inline(arg1, 0.0f, 0.0f, arg0->unk_1C); + MTXRotRad(sp8, 0x79, 0.017453292f * arg0->unk_18); + MTXMultVec(sp8, arg1, arg1); + VECAdd(&arg0->unk_2C, arg1, arg1); +} + +void fn_1_5364(s32 arg0, omObjData *object) +{ + if (lbl_1_bss_0[arg0].unk_1D8 >= 0) { + lbl_1_bss_0[arg0].unk_1DC -= 0.016666668f; + if (0.0f >= lbl_1_bss_0[arg0].unk_1DC) { + HuAudFXStop(lbl_1_bss_0[arg0].unk_1D8); + lbl_1_bss_0[arg0].unk_1D8 = -1; + } + else { + HuAudFXPitchSet(lbl_1_bss_0[arg0].unk_1D8, (s32)(8191.0f * lbl_1_bss_0[arg0].unk_1DC)); + HuAudFXVolSet(lbl_1_bss_0[arg0].unk_1D8, (s32)(127.0f * lbl_1_bss_0[arg0].unk_1DC)); + } + } + lbl_1_bss_0[arg0].unk_88[0][2].x = lbl_1_bss_0[arg0].unk_80; + lbl_1_bss_0[arg0].unk_88[1][2].x = lbl_1_bss_0[arg0].unk_80; + Hu3DModelRotSet(object->model[20], 0.0f, lbl_1_bss_0[arg0].unk_80, 0.0f); + fn_1_1D18(object->model[20], "m432_13-player2A", &lbl_1_bss_0[arg0].unk_88[0][1]); + fn_1_1D18(object->model[20], "m432_13-player2B", &lbl_1_bss_0[arg0].unk_88[1][1]); + lbl_1_bss_0[arg0].unk_88[2][2].x = lbl_1_bss_0[arg0].unk_84; + lbl_1_bss_0[arg0].unk_88[3][2].x = lbl_1_bss_0[arg0].unk_84; + Hu3DModelRotSet(object->model[21], 0.0f, lbl_1_bss_0[arg0].unk_84, 0.0f); + fn_1_1D18(object->model[21], "m432_13-player2C", &lbl_1_bss_0[arg0].unk_88[2][1]); + fn_1_1D18(object->model[21], "m432_13-player2C", &lbl_1_bss_0[arg0].unk_88[3][1]); +} + +void fn_1_576C(s32 arg0, omObjData *arg1) +{ + float var_f31 = lbl_1_bss_0[arg0].unk_124 * (Hu3DMotionMaxTimeGet(arg1->model[22]) / 1000.0f); + lbl_1_bss_0[arg0].unk_128 += 0.02f * (var_f31 - lbl_1_bss_0[arg0].unk_128); + Hu3DMotionTimeSet(arg1->model[22], lbl_1_bss_0[arg0].unk_128); +} + +void fn_1_5848(UnkM432DllStruct *var_r28, UnkM432DllBss0SubStruct *var_r31) +{ + s32 sp20; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + + s32 var_r30; + s32 var_r27; + UnkM432DllStruct *var_r26; + UnkM432DllBss0SubStruct *var_r25; + UnkBss0Struct *var_r24; + s32 var_r21; + s32 var_r20; + char **var_r19; + u8 *var_r18; + + var_r20 = var_r31->unk_1C; + var_r26 = fn_1_51A8(var_r28->unk_184 ^ 1); + var_r24 = &lbl_1_bss_0[var_r28->unk_184 >> 1]; + sp20 = var_r24->unk_1B8; + var_r27 = 6; + var_r18 = lbl_1_data_4F0; + var_r19 = lbl_1_data_440; + if ((var_r31->unk_14 & 4) != 0) { + sp20 = var_r24->unk_1BC; + var_r27 = 0xA; + var_r18 = lbl_1_data_504; + var_r19 = lbl_1_data_4C8; + } + var_r30 = frandmod(var_r27 - 1); + for (var_r21 = 0; var_r21 < (var_r27 - 1); var_r21++) { + var_r30 = (var_r30 + 1) % (var_r27 - 1); + if ((var_r20 != var_r30) && (sp20 != var_r30) && (var_r30 != var_r18[var_r20])) { + var_r31->unk_04 = var_r19[var_r30]; + var_r25 = fn_1_5208(var_r28->unk_184 >> 1, var_r31); + var_f31 = var_r26->unk_00.unk_6C.x - var_r25->unk_2C.x; + var_f30 = var_r26->unk_00.unk_6C.z - var_r25->unk_2C.z; + if (200.0f < sqrtf((var_f31 * var_f31) + (var_f30 * var_f30))) { + break; + } + } + } + (void)var_r31; + (void)var_r31; + (void)var_r31; +} + +void fn_1_5BAC(UnkM432DllStruct *arg0, omObjData *object, UnkM432DllBss0SubStruct *arg2, UnkM432DllBss0SubStruct *arg3) +{ + Vec sp14; + Vec sp8; + float var_f31; + + var_f31 = arg2->unk_20.y; + if (25.0f <= arg3->unk_38) { + var_f31 -= 400.0f; + } + else { + var_f31 -= 8.0f * arg3->unk_38; + } + if ((arg2->unk_20.y == var_f31) && (0.0f > arg2->unk_2C.y) && (-1.0f < arg2->unk_2C.y)) { + arg2->unk_2C.y = 0.0f; + HuAudFXPlay(0x699); + } + arg2->unk_2C.y += 0.25f * (var_f31 - arg2->unk_2C.y); + if ((arg2->unk_40 < 0) && ((arg2->unk_20.y - 200.0f) > arg2->unk_2C.y)) { + fn_1_52B8_inline(&sp8, arg2->unk_2C.x - 80.0f, arg2->unk_20.y, arg2->unk_2C.z); + fn_1_52B8_inline(&sp14, 80.0f + arg2->unk_2C.x, arg2->unk_20.y, arg2->unk_2C.z); + fn_1_174(lbl_1_bss_404, &lbl_1_data_1814, 4, 4, 2, &sp8, 0); + HuAudFXPlay(0x69A); + } + Hu3DModelPosSet(object->model[arg2->unk_08], arg2->unk_2C.x, arg2->unk_2C.y, arg2->unk_2C.z); + if ((arg2->unk_20.y - 399.0f) > arg2->unk_2C.y) { + arg0->unk_17C++; + arg2->unk_14 = 0; + } +} + +void fn_1_5F2C(UnkM432DllStruct *arg0, UnkM432DllBss0SubStruct *arg1) +{ + float var_f31; + float var_f30; + UnkBss0Struct *var_r28; + s32 var_r25; + s32 var_r22; + char *var_r24; + + if ((arg0->unk_180 == 0x7D3) && !(arg1->unk_2C.y <= arg0->unk_00.unk_6C.y)) { + var_r28 = &lbl_1_bss_0[arg0->unk_184 >> 1]; + var_f31 = arg0->unk_00.unk_6C.x - arg1->unk_2C.x; + var_f30 = arg0->unk_00.unk_6C.z - arg1->unk_2C.z; + if (sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)) < 100.0f) { + arg0->unk_00.unk_3C |= 0x18; + arg0->unk_180 = 0x7D7; + arg0->unk_C4 = NULL; + var_r22 = arg1->unk_1C; + var_r25 = var_r28->unk_1B8; + var_r24 = lbl_1_data_440[5]; + if (arg1->unk_14 & 4) { + var_r25 = var_r28->unk_1BC; + var_r24 = lbl_1_data_4C8[9]; + } + if (var_r22 == var_r25) { + arg1->unk_04 = var_r24; + } + else { + fn_1_5848(arg0, arg1); + } + arg0->unk_C8 = fn_1_5208(arg0->unk_184 >> 1, arg1); + arg0->unk_D4[arg0->unk_FC] = arg1->unk_44 - arg0->unk_17C; + arg0->unk_FC = (arg0->unk_FC + 1) % 10; + } + } +} + +void fn_1_623C(UnkBss0Struct *arg0, s32 arg1, UnkM432DllStruct *arg2, UnkM432DllStruct *arg3) +{ + UnkM432DllBss0SubStruct *sp3C; + float var_f29; + float var_f28; + float var_f27; + float var_f23; + UnkM432DllBss0SubStruct *var_r31; + UnkM432DllStruct *var_r29; + omObjData *var_r28; + s32 var_r26; + s32 var_r19; + + var_f29 = 0.0f; + var_f28 = 0.0f; + var_f27 = 0.0f; + var_r28 = arg0->unk_04; + for (var_r26 = 0; var_r26 < 2; var_r26++) { + var_r29 = fn_1_51A8((var_r26 + (arg1 * 2))); + for (var_r31 = arg0->unk_10[var_r26], var_r19 = 0; var_r19 < 0x1F; var_r19++, var_r31++) { + if (var_r31->unk_14 & 0x600) { + if (1.0f < var_r31->unk_3C) { + var_r31->unk_3C = 1.0f; + } + var_r31->unk_38 = var_r31->unk_38 + var_r31->unk_3C; + var_r31->unk_3C = var_r31->unk_3C - 0.05f; + if (0.0f > var_r31->unk_3C) { + var_r31->unk_3C = 0.0f; + } + if (var_r31->unk_14 & 0x400) { + var_f29 += var_r31->unk_38; + } + if (var_r31->unk_14 & 0x200) { + var_f28 += var_r31->unk_38; + } + } + if (var_r31->unk_14 & 0x800) { + var_f27 += var_r31->unk_38; + } + if (NULL != var_r31->unk_04) { + sp3C = fn_1_5208(arg1, var_r31); + switch (var_r31->unk_14) { + case 3: + break; + case 1: + fn_1_5BAC(var_r29, var_r28, var_r31, sp3C); + break; + case 2: + case 4: + fn_1_5F2C(var_r29, var_r31); + break; + } + } + } + } + arg0->unk_80 = 80.0f + -var_f29; + arg0->unk_84 = 160.0f + -var_f28; + fn_1_5364(arg1, var_r28); + arg0->unk_124 = var_f27; + if (1000.0f <= arg0->unk_124) { + arg0->unk_124 = 1000.0f; + } + var_f23 = lbl_1_bss_0[arg1].unk_124 * (Hu3DMotionMaxTimeGet(var_r28->model[22]) / 1000.0f); + lbl_1_bss_0[arg1].unk_128 += 0.02f * (var_f23 - lbl_1_bss_0[arg1].unk_128); + Hu3DMotionTimeSet(var_r28->model[22], lbl_1_bss_0[arg1].unk_128); + if ((lbl_1_bss_3FC < 0) && (1000.0f <= arg0->unk_124)) { + lbl_1_bss_3FC = arg2->unk_184 & 2; + arg2->unk_17C += 4; + arg3->unk_17C += 4; + } +} + +void fn_1_6D34(UnkBss0Struct *arg0, UnkM432DllStruct *arg1, Vec *arg2) +{ + float var_f31; + float var_f30; + float var_f28; + float var_f27; + s32 var_r31; + + var_f27 = 100000.0f; + for (var_r31 = 0; var_r31 < 8; var_r31++) { + var_f31 = arg1->unk_00.unk_6C.x - arg0->unk_130[var_r31].x; + var_f30 = arg1->unk_00.unk_6C.z - arg0->unk_130[var_r31].z; + var_f28 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f27 > var_f28) { + var_f27 = var_f28; + *arg2 = arg0->unk_130[var_r31]; + } + } +} + +void fn_1_6F28(UnkBss0Struct *arg0) +{ + float var_f31; + float var_f30; + float var_f26; + float var_f23; + + UnkM432DllStruct *var_r30 = arg0->unk_08->data; + + if (arg0->unk_1B4 < 0) { + fn_1_6D34(arg0, var_r30, &arg0->unk_190); + var_r30->unk_00.unk_3C |= 8; + var_r30->unk_180 = 0x7D9; + arg0->unk_190.y = 3000.0f; + arg0->unk_19C = arg0->unk_190; + arg0->unk_1B4 = 0; + Hu3DModelRotSet(arg0->unk_04->model[25], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrReset(arg0->unk_04->model[25], HU3D_ATTR_DISPOFF); + } + switch (arg0->unk_1B4) { + case 0: + fn_1_40C0(&var_r30->unk_00); + var_f23 = var_r30->unk_00.unk_6C.y - arg0->unk_19C.y; + arg0->unk_190.y += 0.03f * var_f23; + if (50.0f > (0.0f > var_f23 ? -var_f23 : var_f23)) { + arg0->unk_1B4++; + arg0->unk_1A8 = arg0->unk_1C0; + arg0->unk_1A8.y += 900.0f; + arg0->unk_1A8.z -= 150.0f; + var_r30->unk_00.unk_6C = arg0->unk_19C; + var_r30->unk_00.unk_9C = 0.0f; + Hu3DMotionShiftSet(arg0->unk_08->model[0], arg0->unk_08->motion[6], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + break; + case 1: + if (50.0f > (0.0f > (arg0->unk_1A8.y - arg0->unk_190.y) ? -(arg0->unk_1A8.y - arg0->unk_190.y) : arg0->unk_1A8.y - arg0->unk_190.y)) { + arg0->unk_1B4++; + } + break; + case 2: + arg0->unk_1A8.y += 0.1f * (((900.0f + arg0->unk_1C0.y) - 200.0f) - arg0->unk_1A8.y); + if (((900.0f + arg0->unk_1C0.y) - 190.0f) > arg0->unk_1A8.y) { + arg0->unk_1B4++; + var_r30->unk_16C = 1; + var_r30->unk_180 = 0x7D3; + fn_1_4ED8(&var_r30->unk_00, 0); + var_r30->unk_00.unk_3C |= 0x210; + if (NULL != arg0->unk_0C) { + arg0->unk_1B4 = 4; + arg0->unk_08 = arg0->unk_0C; + var_r30 = arg0->unk_08->data; + fn_1_6D34(arg0, var_r30, &arg0->unk_1A8); + var_r30->unk_00.unk_3C |= 8; + var_r30->unk_180 = 0x7D9; + } + } + break; + case 3: + arg0->unk_1A8.y += 10.0f; + if ((2000.0f + arg0->unk_1C0.y) < arg0->unk_1A8.y) { + arg0->unk_08 = NULL; + Hu3DModelAttrSet(arg0->unk_04->model[25], HU3D_ATTR_DISPOFF); + return; + } + break; + case 4: + fn_1_40C0(&var_r30->unk_00); + var_f31 = arg0->unk_1A8.x - arg0->unk_190.x; + var_f30 = arg0->unk_1A8.z - arg0->unk_190.z; + arg0->unk_190.x += 0.05f * var_f31; + arg0->unk_190.y += 0.01f * (arg0->unk_1A8.y - arg0->unk_190.y); + arg0->unk_190.z += 0.05f * var_f30; + if (20.0f > sqrtf((var_f31 * var_f31) + (var_f30 * var_f30))) { + arg0->unk_19C = arg0->unk_190; + arg0->unk_1B4 = 0; + } + break; + } + if ((arg0->unk_1B4 > 0) && (arg0->unk_1B4 < 4)) { + if (arg0->unk_1B4 < 3) { + var_r30->unk_00.unk_6C = arg0->unk_19C; + fn_1_2DD4(&var_r30->unk_00); + } + var_f23 = 0.03f * (arg0->unk_1A8.y - arg0->unk_190.y); + arg0->unk_190.y += var_f23; + if (arg0->unk_1C0.y < arg0->unk_190.y) { + var_f26 = (arg0->unk_1A8.y - arg0->unk_190.y) / 900.0f; + if (0.1f > var_f26) { + var_f26 = 0.1f; + } + if (1.0f < var_f26) { + var_f26 = 1.0f; + } + var_f26 = 1.0f - var_f26; + arg0->unk_190.x += 0.03f * var_f26 * (arg0->unk_1A8.x - arg0->unk_190.x); + arg0->unk_190.z += 0.03f * var_f26 * (arg0->unk_1A8.z - arg0->unk_190.z); + } + } + Hu3DModelPosSet(arg0->unk_04->model[25], arg0->unk_190.x, arg0->unk_190.y, arg0->unk_190.z); + fn_1_1D18(arg0->unk_04->model[25], "g008m2_000-itemhook_sao", &arg0->unk_19C); +} + +void fn_1_7C1C(UnkBss0Struct *var_r31, UnkM432DllStruct *var_r30, UnkM432DllStruct *var_r29) +{ + float var_f31; + float var_f30; + + if ((var_r31->unk_7C == 0.0f) && ((0.0f < var_r31->unk_70) || (0.0f > var_r31->unk_74))) { + if (0.0f < var_r31->unk_70) { + var_r31->unk_28.y += 0.05f * (var_r31->unk_70 - var_r31->unk_28.y); + if (2.0f + > (0.0f > (var_r31->unk_70 - var_r31->unk_28.y) ? -(var_r31->unk_70 - var_r31->unk_28.y) : var_r31->unk_70 - var_r31->unk_28.y)) { + var_r31->unk_28.y = var_r31->unk_70; + var_r31->unk_70 = 0.0f; + } + } + if (0.0f > var_r31->unk_74) { + var_r31->unk_28.z += 0.05f * (var_r31->unk_74 - var_r31->unk_28.z); + if (2.0f + > (0.0f > (var_r31->unk_74 - var_r31->unk_28.z) ? -(var_r31->unk_74 - var_r31->unk_28.z) : var_r31->unk_74 - var_r31->unk_28.z)) { + var_r31->unk_28.z = var_r31->unk_74; + var_r31->unk_74 = 0.0f; + } + } + } + else { + var_f30 = var_r31->unk_1EC / var_r31->unk_1E8; + if (265.0f > var_f30) { + var_f31 = 0.2f * (265.0f - var_f30); + if (1.0f <= (0.0f > var_f31 ? -var_f31 : var_f31)) { + var_r31->unk_28.z -= var_f31; + } + } + switch (var_r31->unk_18) { + case 0: + if ((-7100.0f > var_r31->unk_28.z) && ((-7750.0f < var_r31->unk_1F0[0]) || (-7750.0f < var_r31->unk_1F0[1]))) { + var_r31->unk_28.z = -7100.0f; + } + if ((-7750.0f >= var_r31->unk_1F0[0]) && (-7750.0f >= var_r31->unk_1F0[1])) { + var_r31->unk_18++; + var_r31->unk_74 = -8700.0f; + var_r30->unk_17C += 3; + var_r30->unk_15C = -7750.0f; + var_r29->unk_17C += 3; + var_r29->unk_15C = -7750.0f; + fn_1_1D18(var_r31->unk_04->model[3], "m432_00-n1", &var_r31->unk_1C0); + return; + } + break; + case 1: + if ((-9500.0f > var_r31->unk_28.z) && ((-10200.0f < var_r31->unk_1F0[0]) || (-10200.0f < var_r31->unk_1F0[1]))) { + var_r31->unk_28.z = -9500.0f; + } + if ((-10200.0f >= var_r31->unk_1F0[0]) && (-10200.0f >= var_r31->unk_1F0[1])) { + var_r31->unk_18++; + var_r31->unk_74 = -11100.0f; + var_r30->unk_17C += 3; + var_r30->unk_15C = -10200.0f; + var_r29->unk_17C += 3; + var_r29->unk_15C = -10200.0f; + return; + } + break; + case 2: + if ((-11500.0f > var_r31->unk_28.z) && ((-12300.0f < var_r31->unk_1F0[0]) || (-12300.0f < var_r31->unk_1F0[1]))) { + var_r31->unk_28.z = -11500.0f; + } + if ((NULL != var_r30->unk_C8) && (var_r30->unk_C8->unk_14 & 8) && (NULL != var_r29->unk_C8) && ((var_r29->unk_C8->unk_14 & 8) != 0) + && (var_r30->unk_00.unk_38 == 0) && (var_r29->unk_00.unk_38 == 0)) { + var_r31->unk_18++; + var_r31->unk_1E4 = var_r30->unk_C8->unk_2C.y; + var_r31->unk_74 = -13500.0f; + var_r31->unk_70 = var_r30->unk_C8->unk_2C.y; + var_r30->unk_17C += 6; + var_r29->unk_17C += 6; + return; + } + break; + case 3: + if ((-13700.0f > var_r31->unk_28.z) && ((-14400.0f < var_r31->unk_1F0[0]) || (-14400.0f < var_r31->unk_1F0[1]))) { + var_r31->unk_28.z = -13700.0f; + } + if ((NULL != var_r30->unk_C8) && (var_r30->unk_C8->unk_14 & 0x10) && (NULL != var_r29->unk_C8) && (var_r29->unk_C8->unk_14 & 0x10) + && (var_r30->unk_00.unk_38 == 0) && (var_r29->unk_00.unk_38 == 0)) { + var_r31->unk_18++; + var_r31->unk_1E4 = var_r30->unk_C8->unk_2C.y; + var_r31->unk_74 = -15700.0f; + var_r31->unk_78 = 0.0f; + var_r31->unk_7C = 120.0f; + var_r31->unk_4C = var_r31->unk_28; + var_r31->unk_34 = var_r31->unk_1C; + var_r31->unk_58.x = var_r31->unk_28.x; + var_r31->unk_58.y = 400.0f + var_r30->unk_C8->unk_2C.y; + var_r31->unk_58.z = -15700.0f; + var_r31->unk_40 = var_r31->unk_58; + var_r31->unk_40.y = 800.0f + var_r30->unk_C8->unk_2C.y; + var_r31->unk_40.z += 3800.0f; + var_r30->unk_17C += 0xA; + var_r30->unk_148 = 0.0f; + fn_1_52B8(&lbl_1_bss_0[var_r30->unk_184 >> 1].unk_10[var_r30->unk_184 & 1][0x1B], &var_r30->unk_13C); + var_r29->unk_17C += 0xA; + var_r29->unk_148 = 0.0f; + fn_1_52B8(&lbl_1_bss_0[var_r29->unk_184 >> 1].unk_10[var_r29->unk_184 & 1][0x1B], &var_r29->unk_13C); + } + break; + } + } +} + +s32 fn_1_8540(UnkM432DllStruct *arg0) +{ + if (arg0->unk_17C >= 0x1F) { + return -1; + } + if (arg0->unk_17C >= 0x1B) { + return 3; + } + if (arg0->unk_17C >= 0xB) { + return 2; + } + if (arg0->unk_17C >= 5) { + return 1; + } + if (arg0->unk_17C >= 1) { + return 0; + } + return -1; +} + +UnkM432DllBss0SubStruct *fn_1_85AC(UnkM432DllStruct *arg0, UnkBss0Struct *arg1) +{ + UnkM432DllBss0SubStruct *var_r31 = arg1->unk_10[arg0->unk_184 & 1]; + s32 var_r30; + for (var_r30 = 0; var_r30 < 0x1F; var_r30++, var_r31++) { + if ((arg0->unk_17C <= var_r30) && (var_r31->unk_14 & 0xF00)) { + return var_r31; + } + } + return NULL; +} + +float fn_1_861C(UnkM432DllStruct *arg0, UnkBss0Struct *arg1, Vec *arg2) +{ + float var_f31; + float var_f30; + float var_f27; + float var_f28; + s32 var_r31; + + var_f28 = 100000.0f; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_f31 = arg0->unk_00.unk_6C.x - arg1->unk_88[var_r31][1].x; + var_f30 = arg0->unk_00.unk_6C.z - arg1->unk_88[var_r31][1].z; + var_f27 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f28 > var_f27) { + var_f28 = var_f27; + *arg2 = arg1->unk_88[var_r31][1]; + } + } + return var_f28; +} + +void fn_1_8814(UnkM432DllStruct *arg0, s32 arg1, Vec *arg2) +{ + float var_f31; + float var_f30; + float var_f28; + float var_f27; + + var_f27 = 72.0f * arg0->unk_CC->unk_04; + var_f31 = arg2->x - arg0->unk_00.unk_6C.x; + var_f30 = arg2->z - arg0->unk_00.unk_6C.z; + var_f31 *= 4.0f; + var_f30 *= 4.0f; + var_f28 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f27 < var_f28) { + var_f31 = var_f27 * (var_f31 / var_f28); + var_f30 = var_f27 * (var_f30 / var_f28); + } + arg0->unk_00.unk_20 = var_f31; + arg0->unk_00.unk_24 = -var_f30; +} + +void fn_1_8A14(UnkM432DllStruct *arg0, s32 arg1, UnkM432DllBss0SubStruct *arg2) +{ + Vec spC; + + if (NULL != arg2) { + spC = arg2->unk_2C; + if (arg2->unk_14 & 0xF00) { + fn_1_52B8(arg2, &spC); + } + fn_1_8814(arg0, 0, &spC); + } +} + +UnkM432DllBss0SubStruct *fn_1_8CB4(UnkM432DllStruct *arg0, UnkM432DllStruct *arg1, UnkBss0Struct *arg2) +{ + s32 var_r30; + UnkM432DllBss0SubStruct *var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r21; + s32 var_r20; + s32 var_r19; + + var_r29 = NULL; + if (arg0->unk_17C < 0x1F) { + var_r29 = &arg2->unk_10[arg0->unk_184 & 1][arg0->unk_17C]; + } + if (NULL == var_r29) { + return NULL; + } + if (var_r29->unk_14 & 2) { + var_r28 = 5; + var_r27 = arg2->unk_1B8; + var_r26 = 0; + var_r25 = 5; + } + else { + var_r28 = 9; + var_r27 = arg2->unk_1BC; + var_r26 = 0; + var_r25 = 9; + if (-14100.0f < arg0->unk_00.unk_6C.z) { + var_r26 = 3; + var_r25 = 9; + } + if (-13700.0f < arg0->unk_00.unk_6C.z) { + var_r26 = 0; + var_r25 = 6; + } + if (-13300.0f < arg0->unk_00.unk_6C.z) { + var_r26 = 0; + var_r25 = 3; + } + } + var_r30 = frandmod(var_r28); + for (var_r21 = 0; var_r21 < var_r28; var_r21++) { + var_r30 = (var_r30 + 1) % var_r28; + if ((var_r26 <= var_r30) && (var_r25 > var_r30) + && ((arg0->unk_100 != 0) || ((var_r27 != var_r30) && (((var_r29->unk_14 & 4) == 0) || (var_r30 <= 3))))) { + var_r24 = arg0->unk_FC; + var_r19 = 0; + for (var_r20 = 0; var_r20 < arg0->unk_CC->unk_18; var_r20++) { + var_r24--; + if (var_r24 < 0) { + var_r24 += 0xA; + } + if (var_r30 == arg0->unk_D4[var_r24]) { + var_r19 = 1; + } + } + if (var_r19 == 0) { + break; + } + } + } + if ((var_r21 == var_r28) || (var_r27 == var_r30)) { + var_r30 = frandmod(var_r28); + while (var_r30 == var_r27) { + var_r30 = (var_r30 + 1) % var_r28; + } + } + if (arg0->unk_CC->unk_1C < arg0->unk_100) { + var_r30 = var_r27; + } + if (NULL != arg1->unk_C8) { + if (var_r29->unk_14 & 2) { + if (arg1->unk_C8->unk_14 & 8) { + var_r30 = var_r27; + } + } + else if (arg1->unk_C8->unk_14 & 0x10) { + var_r30 = var_r27; + } + } + arg0->unk_100++; + (void)var_r26; + (void)var_r25; + return &var_r29[var_r30]; +} + +void fn_1_8F3C(UnkM432DllStruct *arg0, UnkBss0Struct *arg1, UnkM432DllBss0SubStruct *arg2, Vec *arg3) +{ + *arg3 = arg2->unk_2C; + if (arg0->unk_00.unk_48 >= 0x14) { + if (-12200.0f < arg0->unk_00.unk_6C.z) { + arg3->x = arg1->unk_28.x; + } + else if ((-13300.0f < arg0->unk_00.unk_6C.z) && (-13400.0f > arg2->unk_2C.z)) { + arg3->x = arg1->unk_28.x - 500.0f; + } + else if ((-13700.0f < arg0->unk_00.unk_6C.z) && (-13800.0f > arg2->unk_2C.z)) { + arg3->x = 500.0f + arg1->unk_28.x; + } + else if ((-13500.0f > arg0->unk_00.unk_6C.z) && (-13400.0f < arg2->unk_2C.z)) { + arg3->x = 500.0f + arg1->unk_28.x; + return; + } + } +} + +void fn_1_906C(UnkM432DllStruct *var_r31, UnkM432DllBss0SubStruct *var_r27) +{ + float var_f31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r30 = 0; + var_r29 = 0; + var_r28 = 0; + switch (var_r27->unk_14 & 0xF00) { + case 0x100: + var_r30 = 0x200; + var_r29 = 0x200; + break; + case 0x400: + var_r30 = 0x800; + var_r29 = 0x800; + var_r28 = 1; + break; + case 0x200: + var_r30 = 0x400; + var_r29 = 0x400; + var_r28 = 1; + break; + case 0x800: + if ((var_r31->unk_CC->unk_14 >= var_r31->unk_154) && (var_r31->unk_CC->unk_10 > var_r31->unk_158)) { + var_r31->unk_00.unk_34 = 0x96; + } + else if ((var_r31->unk_CC->unk_10 <= var_r31->unk_154) && (var_r31->unk_CC->unk_14 >= var_r31->unk_158)) { + var_r31->unk_00.unk_34 = 0x96; + } + else { + var_r31->unk_00.unk_30 = 0x96; + } + if (var_r31->unk_CC->unk_0C < frandf()) { + var_r31->unk_104 *= 0.99f; + } + if (var_r31->unk_CC->unk_00 > lbl_1_bss_57C) { + var_r31->unk_104 *= 0.99f; + } + else { + var_r31->unk_104 *= 1.01f; + } + if (0.5f > var_r31->unk_104) { + var_r31->unk_104 = 0.5f; + } + if (1.0f < var_r31->unk_104) { + var_r31->unk_104 = 1.0f; + } + var_r31->unk_00.unk_30 = var_r31->unk_00.unk_30 * var_r31->unk_104; + var_r31->unk_00.unk_34 = var_r31->unk_00.unk_34 * var_r31->unk_104; + break; + } + var_r31->unk_108 -= 1.0f; + if (0.0f > var_r31->unk_108) { + var_f31 = var_r31->unk_CC->unk_08; + if ((var_r28 != 0) && (GWPlayerCfg[var_r31->unk_188].diff == 3)) { + var_f31 = lbl_1_data_17D4.unk_08; + } + var_r31->unk_108 = var_f31 * (0.9f + (frandf() / 2)); + var_r31->unk_00.unk_28 |= var_r30; + var_r31->unk_00.unk_2C |= var_r29; + } +} + +void fn_1_93BC(UnkM432DllStruct *arg0) +{ + Vec spF8; + float spD0; + + float var_f31; + float var_f30; + + UnkM432DllBss0SubStruct *var_r30; + UnkBss0Struct *var_r29; + UnkM432DllBss0SubStruct *var_r28; + UnkM432DllStruct *var_r27; + s32 var_r20; + + if (NULL != arg0->unk_CC) { + var_r27 = fn_1_51A8(arg0->unk_184 ^ 1); + var_r29 = &lbl_1_bss_0[arg0->unk_184 >> 1]; + var_r20 = 1; + switch (fn_1_8540(arg0)) { + case 0: + var_r30 = fn_1_85AC(arg0, var_r29); + fn_1_8A14(arg0, 0, var_r30); + break; + case 1: + var_r28 = fn_1_85AC(arg0, var_r29); + if (NULL != var_r28) { + var_r30 = var_r28; + if (((NULL == arg0->unk_C8) && (NULL != var_r27->unk_C8)) || ((var_r28->unk_2C.z - 400.0f) > arg0->unk_00.unk_6C.z)) { + var_r30++; + } + else if ((var_r28->unk_2C.z - 1350.0f) > var_r27->unk_00.unk_6C.z) { + var_r30++; + var_r20 = 0; + } + if ((1400.0f < (var_r28->unk_2C.z - arg0->unk_00.unk_6C.z)) && (1400.0f < (var_r28->unk_2C.z - var_r27->unk_00.unk_6C.z))) { + var_r20 = 0; + arg0->unk_00.unk_24 = 0x48; + } + else { + if (((var_r28->unk_2C.z - 175.0f) > arg0->unk_00.unk_6C.z) && ((var_r28->unk_2C.z - 1350.0f) < arg0->unk_00.unk_6C.z)) { + if (((var_r29->unk_28.x - 20.0f) < arg0->unk_00.unk_6C.x) && ((20.0f + var_r29->unk_28.x) > arg0->unk_00.unk_6C.x) + && ((var_r28->unk_2C.z - 1000.0f) > arg0->unk_00.unk_6C.z)) { + arg0->unk_00.unk_24 = 0x48; + } + if ((var_r28->unk_2C.z - 1100.0f) > arg0->unk_00.unk_6C.z) { + arg0->unk_00.unk_28 |= 0x100; + arg0->unk_00.unk_2C |= 0x100; + fn_1_8A14(arg0, 0, var_r30); + } + else { + spD0 = fn_1_861C(arg0, var_r29, &spF8); + if ((arg0->unk_00.unk_BC < spD0) && (400.0f > spD0)) { + arg0->unk_00.unk_28 |= 0x100; + arg0->unk_00.unk_2C |= 0x100; + fn_1_8814(arg0, 0, &spF8); + } + } + } + else { + fn_1_8A14(arg0, 0, var_r30); + } + if (((var_r28->unk_2C.z - 175.0f) < arg0->unk_00.unk_6C.z) && (arg0->unk_00.unk_A8 < arg0->unk_00.unk_6C.y)) { + arg0->unk_00.unk_20 = 0; + arg0->unk_00.unk_24 = 0; + } + } + } + break; + case 2: + var_r20 = 0; + arg0->unk_10C -= 1.0f; + if (NULL == arg0->unk_D0) { + arg0->unk_D0 = fn_1_8CB4(arg0, var_r27, var_r29); + } + if (arg0->unk_10C == 1.0f) { + arg0->unk_D0 = fn_1_8CB4(arg0, var_r27, var_r29); + } + if (NULL != arg0->unk_D0) { + fn_1_8F3C(arg0, var_r29, arg0->unk_D0, &spF8); + fn_1_8814(arg0, 0, &spF8); + if (arg0->unk_00.unk_3C & 1) { + arg0->unk_10C = 20.0f + (20.0f * (arg0->unk_184 & 1)); + } + var_f31 = arg0->unk_00.unk_6C.x - arg0->unk_D0->unk_2C.x; + var_f30 = arg0->unk_00.unk_6C.z - arg0->unk_D0->unk_2C.z; + spD0 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if ((200.0f > spD0) || (arg0->unk_00.unk_4C > 0x14) || (arg0->unk_00.unk_48 > 0xC8)) { + arg0->unk_00.unk_28 |= 0x100; + arg0->unk_00.unk_2C |= 0x100; + } + if (50.0f > spD0) { + arg0->unk_00.unk_20 = 0; + arg0->unk_00.unk_24 = 0; + } + if (0.0f < arg0->unk_10C) { + arg0->unk_00.unk_20 = 0; + arg0->unk_00.unk_24 = 0; + arg0->unk_00.unk_28 &= 0xFFFFFEFF; + arg0->unk_00.unk_2C &= 0xFFFFFEFF; + } + } + break; + case 3: + var_r30 = fn_1_85AC(arg0, var_r29); + break; + } + if ((var_r20 != 0) && (NULL != var_r30)) { + fn_1_906C(arg0, var_r30); + } + } +} + +float fn_1_A974(UnkM432DllStruct *var_r31) +{ + Vec sp14; + Vec sp8; + + sp14 = var_r31->unk_00.unk_6C; + sp14.y = lbl_1_bss_0[var_r31->unk_184 >> 1].unk_28.y; + Hu3D3Dto2D(&sp14, lbl_1_data_A0[var_r31->unk_184 >> 1], &sp8); + return sp8.y; +} + +WorkPlayerOld *fn_1_AA00(int no) +{ + return &((UnkM432DllStruct *)lbl_1_bss_410[no]->data)->unk_00; +} + +void fn_1_AA1C(omObjData *object) +{ + float var_f31; + UnkM432DllStruct *var_r31; + UnkM432DllBss0SubStruct *var_r30; + s32 var_r29; + + var_r31 = object->data; + var_f31 = lbl_1_bss_0[var_r31->unk_184 >> 1].unk_28.z - 750.0f; + if (var_f31 > var_r31->unk_00.unk_6C.z) { + var_r31->unk_00.unk_6C.z = var_f31; + } + var_f31 = 900.0f + lbl_1_bss_0[var_r31->unk_184 >> 1].unk_28.z; + if (var_f31 < var_r31->unk_00.unk_6C.z) { + var_r31->unk_00.unk_6C.z = var_f31; + } + if (var_r31->unk_15C < var_r31->unk_00.unk_6C.z) { + var_r31->unk_00.unk_6C.z = var_r31->unk_15C; + } + var_r30 = lbl_1_bss_0[var_r31->unk_184 >> 1].unk_10[var_r31->unk_184 & 1]; + if ((var_r31->unk_184 & 1) != 0) { + lbl_1_bss_0[var_r31->unk_184 >> 1].unk_1E0 = 0.0f; + } + for (var_r29 = 0; var_r29 < 0x1F; var_r29++, var_r30++) { + if ((var_r31->unk_17C <= var_r29) && ((var_r30->unk_14 & 1) != 0)) { + var_f31 = 170.0f + var_r30->unk_2C.z; + if (var_f31 > var_r31->unk_00.unk_6C.z) { + var_r31->unk_00.unk_6C.z = var_f31; + } + if ((var_r31->unk_184 & 1) && (lbl_1_bss_0[var_r31->unk_184 >> 1].unk_1E0 > (var_r30->unk_2C.z - 170.0f))) { + lbl_1_bss_0[var_r31->unk_184 >> 1].unk_1E0 = var_r30->unk_2C.z - 170.0f; + } + } + } + if (((var_r31->unk_184 & 1) == 0) && (lbl_1_bss_0[var_r31->unk_184 >> 1].unk_28.x < var_r31->unk_00.unk_6C.x) + && (0.0f > lbl_1_bss_0[var_r31->unk_184 >> 1].unk_1E0) && (lbl_1_bss_0[var_r31->unk_184 >> 1].unk_1E0 < var_r31->unk_00.unk_6C.z)) { + var_r31->unk_00.unk_6C.z = lbl_1_bss_0[var_r31->unk_184 >> 1].unk_1E0; + } +} + +Vec *fn_1_ACC8(omObjData *object) +{ + float var_f31; + float var_f30; + float var_f27; + + UnkM432DllStruct *var_r31; + UnkBss0Struct *var_r30; + s32 var_r29; + UnkM432DllStruct *var_r28; + + var_r28 = object->data; + var_r31 = var_r28; + var_r30 = &lbl_1_bss_0[var_r28->unk_184 >> 1]; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if ((var_r31->unk_00.unk_6C.y <= var_r30->unk_88[var_r29][1].y) + && ((var_r31->unk_00.unk_6C.y + (var_r31->unk_00.unk_BC / 2)) >= var_r30->unk_88[var_r29][1].y)) { + var_f31 = var_r31->unk_00.unk_6C.x - var_r30->unk_88[var_r29][1].x; + var_f30 = var_r31->unk_00.unk_6C.z - var_r30->unk_88[var_r29][1].z; + var_f27 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f27 < (var_r31->unk_00.unk_BC + var_r30->unk_88[var_r29][2].y)) { + return &var_r30->unk_88[var_r29][0]; + } + } + } + return NULL; +} + +void fn_1_AF28(omObjData *object) +{ + UnkM432DllStruct *var_r31 = object->data; + var_r31->unk_16C = 0; + var_r31->unk_00.unk_3C &= 0xFFFFFFEF; + fn_1_4ED8(&var_r31->unk_00, 0); +} + +#include "src/REL/executor.c" + +void fn_1_B234(void) +{ + UnkM432DllStruct *var_r31; + s32 var_r30; + u32 var_r29; + u32 var_r28; + + if (HuPadBtn[0] & 2) { + lbl_1_bss_57C = 0x4650; + } + print8(0x18, 0x20, 1.5f, "COUNT:%d MODE:%d MES:%d", lbl_1_bss_580, lbl_1_bss_41C->work[0], lbl_1_bss_576); + print8(0x18, 0x30, 1.5f, "%f %f %f %f", lbl_1_bss_0[0].unk_64, lbl_1_bss_0[0].unk_68, lbl_1_bss_0[0].unk_6C, lbl_1_bss_0[0].unk_28.z); + print8(0x18, 0x40, 1.5f, "%f %f %f %f", lbl_1_bss_0[1].unk_64, lbl_1_bss_0[1].unk_68, lbl_1_bss_0[1].unk_6C, lbl_1_bss_0[0].unk_28.z); + print8(0x18, 0x50, 1.5f, "%x %x", HuMemHeapSizeGet(HEAP_SYSTEM) - HuMemUsedMallocSizeGet(HEAP_SYSTEM), + HuMemHeapSizeGet(HEAP_DATA) - HuMemUsedMallocSizeGet(HEAP_DATA)); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r31 = lbl_1_bss_410[var_r30]->data; + print8(0x18, (var_r30 * 0x10) + 0x70, 1.5f, "%d %d %04x %.3f (%.3f %.3f %.3f)", var_r31->unk_180, var_r31->unk_00.unk_38, + var_r31->unk_00.unk_3C, var_r31->unk_00.unk_A8, var_r31->unk_00.unk_6C.x, var_r31->unk_00.unk_6C.y, var_r31->unk_00.unk_6C.z); + } +} + +void fn_1_B458(omObjData *object) +{ + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + fn_1_24(0x1000, object->model[0]); + omDelObjEx(lbl_1_bss_5B4, object); + lbl_1_bss_402--; +} + +void fn_1_B518(omObjData *object) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + + UnkM432DllStruct2 *var_r31; + + var_r31 = object->data; + var_r31->unk_10 += 1.0f; + if (30.0f <= var_r31->unk_10) { + fn_1_B458(object); + return; + } + if (10.0f > var_r31->unk_10) { + var_f31 = var_r31->unk_10 / 10.0f; + var_f30 = 0.0f; + } + else { + var_f31 = 1.0f; + var_f30 = (var_r31->unk_10 - 10.0f) / 20.0f; + } + var_f29 = sind((90.0f * var_f31)) * sind((90.0f * var_f31)); + var_f28 = sind((90.0f * var_f30)) * sind((90.0f * var_f30)); + omSetTra(object, var_r31->unk_00.x + (var_r31->unk_14 * var_f29), var_r31->unk_00.y, var_r31->unk_00.z + (var_r31->unk_18 * var_f28)); +} + +void fn_1_B7E4(omObjData *object) +{ + UnkM432DllStruct2 *var_r30; + UnkBss5D0Struct *var_r29; + UnkBss5D0Struct *var_r28; + UnkBss5D0Struct *var_r27; + s16 var_r26; + s16 var_r25; + s16 var_r24; + + var_r26 = fn_1_AC(0x1000); + if (var_r26 < 0) { + object->model[0] = Hu3DModelLink(lbl_1_bss_400); + } + else { + object->model[0] = var_r26; + } + var_r30 = object->data; + var_r30->unk_10 = 0.0f; + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); + Hu3DModelLayerSet(object->model[0], 3); + omSetTra(object, var_r30->unk_00.x, var_r30->unk_00.y, var_r30->unk_00.z); + omSetRot(object, 0.0f, 0.0f, 0.0f); + omSetSca(object, var_r30->unk_0C, var_r30->unk_0C, var_r30->unk_0C); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + object->func = fn_1_B518; +} + +void fn_1_B974(Vec *arg0, float arg8, float arg9) +{ + UnkM432DllStruct2 *var_r31; + omObjData *var_r30; + + if (lbl_1_bss_402 < 0xF0) { + lbl_1_bss_402++; + var_r30 = omAddObjEx(lbl_1_bss_5B4, 0x67, 1, 0, 3, fn_1_B7E4); + var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM432DllStruct2), 0x10000000); + var_r31 = var_r30->data; + var_r31->unk_00 = *arg0; + var_r31->unk_00.x += 30.0f * arg9; + var_r31->unk_0C = 1.0f + arg8; + var_r31->unk_14 = 70.0f * arg9; + var_r31->unk_18 = -675.0f; + } +} + +void fn_1_BAA8(UnkM432DllStruct *arg0) +{ + Vec sp20; + Vec sp14; + float var_f31; + float var_f30; + + s32 *var_r29; + s32 var_r27; + + sp20 = arg0->unk_00.unk_6C; + sp20.y += 220.0f; + fn_1_1A60(&sp20, lbl_1_data_A0[arg0->unk_184 >> 1], &sp14); + + arg0->unk_110 = sp14.x; + arg0->unk_114 = sp14.y; + if (NULL != arg0->unk_C4) { + var_f31 = 0.0f; + var_f30 = 0.0f; + for (var_r29 = arg0->unk_C4, var_r27 = 1; var_r29[0] >= 0; var_r29 += 3) { + espPosSet(arg0->unk_118[var_r29[0]], var_r29[1] + (arg0->unk_110 + var_f31), var_r29[2] + (arg0->unk_114 + var_f30)); + espDispOn(arg0->unk_118[var_r29[0]]); + if (var_r27 != 0) { + var_r27 = 0; + var_f31 = var_r29[1]; + var_f30 = var_r29[2]; + } + } + } +} + +s32 fn_1_BF08(UnkM432DllStruct *arg0) +{ + switch (arg0->unk_C8->unk_14 & 0xF00) { + case 0x100: + if (arg0->unk_00.unk_28 & 0x200) { + return 0x7D4; + } + break; + case 0x400: + if (arg0->unk_00.unk_28 & 0x800) { + return 0x7D5; + } + break; + case 0x200: + if (arg0->unk_00.unk_28 & 0x400) { + return 0x7D5; + } + break; + case 0x800: + return 0x7D6; + } + return 0x7D3; +} + +void fn_1_BF9C(UnkM432DllStruct *arg0) +{ + Vec spC; + float var_f31; + float var_f30; + float var_f26; + + UnkM432DllStruct *var_r31; + + var_r31 = arg0; + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, 180.0f + arg0->unk_C8->unk_18, 0.4f); + fn_1_52B8(arg0->unk_C8, &spC); + var_f31 = spC.x - var_r31->unk_00.unk_6C.x; + var_f30 = spC.z - var_r31->unk_00.unk_6C.z; + var_f26 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (10.0f <= var_f26) { + var_f31 = 10.0f * (var_f31 / var_f26); + var_f30 = 10.0f * (var_f30 / var_f26); + } + var_r31->unk_00.unk_6C.x += var_f31; + var_r31->unk_00.unk_6C.z += var_f30; +} + +void fn_1_C33C(UnkM432DllStruct *arg0) +{ + Vec spC; + float sp8; + float var_f31; + float var_f30; + float var_f27; + UnkM432DllBss0SubStruct *var_r30; + s32 var_r29; + s32 *var_r28; + UnkM432DllStruct *var_r27; + + var_r28 = NULL; + if (arg0->unk_00.unk_38 == 0) { + for (var_r30 = lbl_1_bss_0[arg0->unk_184 >> 1].unk_10[arg0->unk_184 & 1], var_r29 = 0; var_r29 < 0x1F; var_r29++, var_r30++) + if ((arg0->unk_17C <= var_r29) && (var_r30->unk_14 & 0xF00) && (((var_r30->unk_14 & 0x700) == 0) || !(20.0f < arg0->unk_00.unk_6C.y))) { + fn_1_52B8(var_r30, &spC); + var_f31 = spC.x - arg0->unk_00.unk_6C.x; + var_f30 = spC.z - arg0->unk_00.unk_6C.z; + var_f27 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (arg0->unk_00.unk_BC > var_f27) { + var_r27 = fn_1_51A8(arg0->unk_184 ^ 1); + if ((NULL == var_r27->unk_C8) || (var_r30->unk_08 != var_r27->unk_C8->unk_08)) { + arg0->unk_C8 = var_r30; + switch (var_r30->unk_14 & 0xF00) { + case 0x100: + var_r28 = lbl_1_data_2AC; + break; + case 0x200: + var_r28 = lbl_1_data_2D0; + break; + case 0x400: + var_r28 = lbl_1_data_2F4; + break; + case 0x800: + var_r28 = lbl_1_data_318; + break; + } + break; + } + } + } + } + + if (arg0->unk_C4 != var_r28) { + arg0->unk_C4 = var_r28; + if (NULL == var_r28) { + arg0->unk_C8 = NULL; + } + for (var_r29 = 0; var_r29 < 9; var_r29++) { + espDispOff(arg0->unk_118[var_r29]); + } + } +} + +void fn_1_C724(UnkM432DllStruct *var_r31, omObjData *var_r25, omObjData *var_r24) +{ + Vec spC; + float var_f25; + + UnkBss0Struct *var_r30; + UnkM432DllStruct *var_r29; + s32 var_r28; + void *var_r27; + s32 var_r26; + float var_f19; + + var_r30 = &lbl_1_bss_0[var_r31->unk_184 >> 1]; + fn_1_BF9C(var_r31); + if (fn_1_BF08(var_r31) == 0x7D4) { + var_r30->unk_1D4 += 1.0f - (2.0f * (var_r31->unk_14C / 60.0f)); + if (0.0f > var_r30->unk_1D4) { + var_r30->unk_1D4 = 0.0f; + } + if (1.0f < var_r30->unk_1D4) { + var_r30->unk_1D4 = 1.0f; + } + var_r31->unk_14C = 0.0f; + if (25.0f <= (var_r31->unk_C8->unk_38 += 1.0f)) { + var_r31->unk_C8->unk_38 = 25.0f; + } + omVibrate(var_r31->unk_188, 0xC, 6, 6); + } + else { + var_r31->unk_14C += 1.0f; + var_r30->unk_1D4 -= 0.016666668f; + if (0.0f > var_r30->unk_1D4) { + var_r30->unk_1D4 = 0.0f; + } + if (20.0f <= var_r31->unk_14C) { + var_r31->unk_14C = 0.0f; + if (0.0f >= (var_r31->unk_C8->unk_38 -= 1.0f)) { + var_r31->unk_C8->unk_38 = 0.0f; + } + } + } + HuAudFXPitchSet(var_r30->unk_1CC, (s32)(8191.0f * var_r30->unk_1D4)); + HuAudFXPitchSet(var_r30->unk_1D0, (s32)(8191.0f * (1.0f - (var_r31->unk_C8->unk_38 / 25.0f)))); + if (Hu3DMotionShiftIDGet(var_r25->model[0]) < 0) { + var_f25 = var_r31->unk_C8->unk_38 * (Hu3DMotionMaxTimeGet(var_r25->model[0]) / 25.0f); + Hu3DMotionTimeSet(var_r25->model[0], var_f25); + var_f25 = var_r31->unk_C8->unk_38 * (Hu3DMotionMaxTimeGet((var_r24->model[var_r31->unk_C8->unk_08])) / 25.0f); + Hu3DMotionTimeSet(var_r24->model[var_r31->unk_C8->unk_08], var_f25); + } + if ((25.0f <= var_r31->unk_C8->unk_38) || (var_r31->unk_C8->unk_38 == 0.0f)) { + if (25.0f <= var_r31->unk_C8->unk_38) { + var_r31->unk_17C++; + } + var_r31->unk_180 = 0x7D3; + fn_1_4ED8(&var_r31->unk_00, 0); + HuAudFXStop(var_r30->unk_1CC); + HuAudFXStop(var_r30->unk_1D0); + var_r30->unk_1CC = -1; + var_r30->unk_1D0 = -1; + } +} + +void fn_1_D0E0(UnkM432DllStruct *arg0, omObjData *arg1, omObjData *arg2) +{ + fn_1_BF9C(arg0); + if (fn_1_BF08(arg0) == 0x7D5) { + lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC += 1.0f - (2.0f * (arg0->unk_14C / 60.0f)); + if (0.0f > lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC) { + lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC = 0.0f; + } + if (1.0f < lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC) { + lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC = 1.0f; + } + arg0->unk_14C = 0.0f; + arg0->unk_C8->unk_3C += 3.0f; + omVibrate(arg0->unk_188, 0xC, 6, 6); + } + else { + arg0->unk_14C += 1.0f; + } + if (Hu3DMotionShiftIDGet(arg1->model[0]) < 0) { + Hu3DMotionTimeSet(arg1->model[0], 120.0 * (fmod(arg0->unk_C8->unk_38, 360.0) / 360.0)); + Hu3DMotionTimeSet( + arg2->model[arg0->unk_C8->unk_08], Hu3DMotionMaxTimeGet(arg2->model[arg0->unk_C8->unk_08]) * (fmod(arg0->unk_C8->unk_38, 360.0) / 360.0)); + } + if (20.0f <= arg0->unk_14C) { + arg0->unk_180 = 0x7D3; + fn_1_4ED8(&arg0->unk_00, 0); + } + else if (lbl_1_bss_0[arg0->unk_184 >> 1].unk_1D8 < 0) { + lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC = 0.5f; + lbl_1_bss_0[arg0->unk_184 >> 1].unk_1D8 = HuAudFXPlay((arg0->unk_184 & 2) == 0 ? 0x68E : 0x68F); + } +} + +void fn_1_D9EC(UnkM432DllStruct *arg0, omObjData *arg1, omObjData *arg2) +{ + float var_f28; + float var_f27; + float var_f23; + + fn_1_BF9C(arg0); + if ((arg0->unk_00.unk_30 <= 0) || (arg0->unk_00.unk_34 <= 0)) { + var_f27 = 0.0f; + if (arg0->unk_00.unk_30 > 0) { + var_f27 = -(arg0->unk_00.unk_30 / 150.0f); + } + if (arg0->unk_00.unk_34 > 0) { + var_f27 = arg0->unk_00.unk_34 / 150.0f; + } + if (var_f27 != 0.0f) { + if ((0.0f > var_f27 ? -1 : 1) != (0.0f > arg0->unk_150 ? -1 : 1)) { + var_f28 = arg0->unk_158 - arg0->unk_154; + if (0.0f < var_f28) { + if (0.98f < var_f28) { + var_f28 += 0.6f; + if ((arg0->unk_184 & 2) == 0) { + HuAudFXPlay(0x692); + } + else { + HuAudFXPlay(0x693); + } + } + arg0->unk_C8->unk_38 += 10.0f * var_f28; + var_f23 = var_f28; + if (0.5f > var_f23) { + var_f23 = 0.0f; + } + fn_1_B974(&arg0->unk_C8->unk_2C, var_f23 / 2, (arg0->unk_184 & 1) ? -1.0f : 1.0f); + } + arg0->unk_154 = arg0->unk_158; + } + arg0->unk_150 = var_f27; + arg0->unk_158 = arg0->unk_158 + (0.1f * arg0->unk_150); + if (0.0f > arg0->unk_158) { + arg0->unk_158 = 0.0f; + } + if (1.0f < arg0->unk_158) { + arg0->unk_158 = 1.0f; + } + } + } + if (Hu3DMotionShiftIDGet(arg1->model[0]) < 0) { + Hu3DMotionTimeSet(arg1->model[0], arg0->unk_158 * Hu3DMotionMaxTimeGet(arg1->model[0])); + Hu3DMotionTimeSet(arg2->model[arg0->unk_C8->unk_08], arg0->unk_158 * Hu3DMotionMaxTimeGet(arg2->model[arg0->unk_C8->unk_08])); + } + if (1000.0f <= lbl_1_bss_0[arg0->unk_184 >> 1].unk_124) { + arg0->unk_180 = 0x7D3; + fn_1_4ED8(&arg0->unk_00, 0); + } +} + +void fn_1_E3B4(UnkM432DllStruct *arg0, omObjData *arg1) +{ + float var_f31; + float var_f30; + s32 var_r28; + + if (arg0->unk_00.unk_38 != 0) { + fn_1_40C0(&arg0->unk_00); + return; + } + if (arg0->unk_C8->unk_14 & 0x18) { + if (((arg0->unk_C8->unk_14 & 8) && (arg0->unk_178 <= 0)) || ((arg0->unk_C8->unk_14 & 0x10) && (arg0->unk_178 <= 1))) { + arg0->unk_178++; + omVibrate(arg0->unk_188, 0xC, 4, 2); + if ((arg0->unk_184 & 2) == 0) { + HuAudFXPlay(0x690); + } + else { + HuAudFXPlay(0x691); + } + } + if ((arg0->unk_184 & 1) != 0) { + var_r28 = 1; + } + else { + var_r28 = -1; + } + arg0->unk_170 = var_r28 * 0x18; + arg0->unk_174 = 0x48; + arg0->unk_00.unk_9C = 180.0f; + if ((((arg0->unk_C8->unk_14 & 8) == 0) || !(-11100.0f < lbl_1_bss_0[arg0->unk_184 >> 1].unk_28.z)) + && (((arg0->unk_C8->unk_14 & 0x10) == 0) || !(-13500.0f < lbl_1_bss_0[arg0->unk_184 >> 1].unk_28.z))) { + var_f30 = 800.0f - (400.0f * (arg0->unk_184 & 1)); + if (0.0f > (lbl_1_bss_0[arg0->unk_184 >> 1].unk_74 - lbl_1_bss_0[arg0->unk_184 >> 1].unk_28.z)) { + var_f31 = -(lbl_1_bss_0[arg0->unk_184 >> 1].unk_74 - lbl_1_bss_0[arg0->unk_184 >> 1].unk_28.z); + } + else { + var_f31 = lbl_1_bss_0[arg0->unk_184 >> 1].unk_74 - lbl_1_bss_0[arg0->unk_184 >> 1].unk_28.z; + } + if (!(var_f30 < var_f31)) { + fn_1_5148(arg0); + HuAudCharVoicePlay(arg0->unk_18C, 0x122); + goto block_26; + } + } + } + else { + arg0->unk_170 = 0; + arg0->unk_174 = -0x48; + arg0->unk_00.unk_9C = 0.0f; + block_26: + arg0->unk_D0 = 0; + arg0->unk_D4[arg0->unk_FC] = arg0->unk_C8->unk_44 - arg0->unk_17C; + arg0->unk_FC = (arg0->unk_FC + 1) % 10; + arg0->unk_180 = 0x7D8; + arg0->unk_00.unk_6C = arg0->unk_C8->unk_2C; + arg0->unk_00.unk_6C.y -= 200.0f; + fn_1_4ED8(&arg0->unk_00, 3); + arg0->unk_00.unk_3C |= 8; + } +} + +void fn_1_E9E4(UnkM432DllStruct *arg0) +{ + float var_f31; + float var_f30; + float var_f28; + + arg0->unk_00.unk_20 = arg0->unk_170; + arg0->unk_00.unk_24 = arg0->unk_174; + arg0->unk_00.unk_28 = 0x100; + arg0->unk_00.unk_2C = 0x100; + fn_1_40C0(&arg0->unk_00); + var_f31 = arg0->unk_C8->unk_2C.x - arg0->unk_00.unk_6C.x; + var_f30 = arg0->unk_C8->unk_2C.z - arg0->unk_00.unk_6C.z; + if (sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)) < 100.0f) { + var_f28 = 0.0f; + if (arg0->unk_174 > 0) { + var_f28 = 100.0f; + } + if ((arg0->unk_C8->unk_2C.y + var_f28) > arg0->unk_00.unk_6C.y) { + arg0->unk_00.unk_84.y = 26.766666f; + arg0->unk_00.unk_A4 = 1.0f; + return; + } + arg0->unk_00.unk_3C &= 0xFFFFFFF7; + return; + } + if ((0.0f > arg0->unk_00.unk_84.y) && ((100.0f + arg0->unk_C8->unk_2C.y) > arg0->unk_00.unk_6C.y)) { + arg0->unk_180 = 0x7D3; + HuAudCharVoicePlay(arg0->unk_18C, 0x10D); + } +} + +void fn_1_EC7C(UnkM432DllStruct *arg0, omObjData *arg1) +{ + if ((lbl_1_bss_0[arg0->unk_184 >> 1].unk_1E4 - (arg0->unk_00.unk_BC / 2)) > arg0->unk_00.unk_6C.y) { + Hu3DModelShadowDispOff(arg1->model[0]); + return; + } + Hu3DModelShadowDispOn(arg1->model[0]); +} + +void fn_1_ED0C(omObjData *object) +{ + float var_f31; + float var_f30; + float var_f26; + UnkBss0Struct *var_r28; + UnkM432DllStruct *var_r31; + s32 var_r26; + s32 var_r22; + + var_r31 = object->data; + var_r28 = &lbl_1_bss_0[var_r31->unk_184 >> 1]; + if (lbl_1_bss_41C->work[0] >= 0x3EC) { + if (lbl_1_bss_3FC != (var_r31->unk_184 & 2)) { + var_r26 = 1; + if (var_r31->unk_00.unk_A8 < var_r31->unk_00.unk_6C.y) { + var_r26 = 0; + } + if (var_r31->unk_180 == 0x7D7) { + var_r26 = 0; + } + if (var_r31->unk_180 == 0x7D8) { + var_r26 = 0; + } + if (var_r31->unk_180 == 0x7D9) { + var_r26 = 0; + } + if ((var_r31->unk_180 == 0x7D3) && (var_r31->unk_00.unk_38 == 1)) { + var_r26 = 0; + } + if (var_r26 != 0) { + var_r31->unk_180 = 0x7DA; + if (lbl_1_bss_3FC >= 0) { + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + Hu3DMotionShiftSet(object->model[0], object->motion[10], 0.0f, 8.0f, HU3D_ATTR_NONE); + } + else { + var_r31->unk_168 = 1; + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + } + } + else { + var_r31->unk_180 = 0x7DB; + var_r31->unk_13C.x += 100.0f * (var_r31->unk_184 & 1 ? -1.0f : 1.0f); + var_r31->unk_13C.z += -475.0f; + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + Hu3DMotionShiftSet(object->model[0], object->motion[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + if (var_r31->unk_180 >= 0x7DA) { + for (var_r22 = 0; var_r22 < 9; var_r22++) { + espDispOff(var_r31->unk_118[var_r22]); + } + if (lbl_1_bss_3FC == (var_r31->unk_184 & 2)) { + GWPlayerCoinWinSet(var_r31->unk_188, 10); + } + object->func = fn_1_10250; + return; + } + } + if (GWPlayerCfg[var_r31->unk_188].iscom != 0) { + var_r31->unk_00.unk_20 = 0; + var_r31->unk_00.unk_24 = 0; + var_r31->unk_00.unk_28 = 0; + var_r31->unk_00.unk_2C = 0; + var_r31->unk_00.unk_30 = 0; + var_r31->unk_00.unk_34 = 0; + fn_1_93BC(var_r31); + } + else { + var_r31->unk_00.unk_20 = HuPadStkX[var_r31->unk_190]; + var_r31->unk_00.unk_24 = HuPadStkY[var_r31->unk_190]; + var_r31->unk_00.unk_28 = HuPadBtnDown[var_r31->unk_190]; + var_r31->unk_00.unk_2C = HuPadBtn[var_r31->unk_190]; + var_r31->unk_00.unk_30 = HuPadTrigL[var_r31->unk_190]; + var_r31->unk_00.unk_34 = HuPadTrigR[var_r31->unk_190]; + } + if ((var_r31->unk_180 == 0x7D3) && ((var_r31->unk_13C.x != 0.0f) || (var_r31->unk_13C.z != 0.0f))) { + var_f30 = var_r31->unk_13C.x - var_r31->unk_00.unk_6C.x; + var_f31 = var_r31->unk_13C.z - var_r31->unk_00.unk_6C.z; + if (var_r31->unk_00.unk_BC < (0.0f > var_f31 ? -var_f31 : var_f31)) { + var_f30 = 0.0f; + } + var_f26 = sqrtf((var_f30 * var_f30) + (var_f31 * var_f31)); + if (10.0f <= var_f26) { + var_f30 /= var_f26; + var_f31 /= var_f26; + } + else { + var_f30 = 0.0f; + var_f31 = 0.0f; + var_r31->unk_00.unk_9C = var_r31->unk_148; + } + var_r31->unk_00.unk_20 = 72.0f * var_f30; + var_r31->unk_00.unk_24 = 72.0f * -var_f31; + var_r31->unk_00.unk_28 = 0; + var_r31->unk_00.unk_2C = 0; + var_r31->unk_00.unk_30 = 0; + var_r31->unk_00.unk_34 = 0; + } + switch (var_r31->unk_180) { + case 0x7D3: + if ((var_r31->unk_16C != 0) && ((var_r31->unk_00.unk_3C & 0x101) != 0)) { + var_r31->unk_16C = 0; + var_r31->unk_00.unk_3C &= 0xFFFFFFEF; + fn_1_4ED8(&var_r31->unk_00, 0); + } + fn_1_40C0(&var_r31->unk_00); + fn_1_C33C(var_r31); + if ((NULL != var_r31->unk_C4) && (NULL != var_r31->unk_C8)) { + var_r31->unk_180 = fn_1_BF08(var_r31); + switch (var_r31->unk_180) { + case 0x7D4: + var_r31->unk_14C = 0.0f; + var_r31->unk_C8->unk_38 = 1.0f; + var_r28->unk_1D4 = 0.5f; + if (var_r28->unk_1CC < 0) { + var_r28->unk_1CC = HuAudFXPlay((var_r31->unk_184 & 2) == 0 ? 0x68C : 0x68D); + } + if (var_r28->unk_1D0 < 0) { + var_r28->unk_1D0 = HuAudFXPlay((var_r31->unk_184 & 2) == 0 ? 0x695 : 0x696); + } + Hu3DMotionShiftSet(object->model[0], object->motion[5], 0.0f, 8.0f, HU3D_MOTATTR_PAUSE); + break; + case 0x7D5: + var_r31->unk_14C = 0.0f; + var_r31->unk_C8->unk_3C += 3.0f; + if (var_r28->unk_1D8 < 0) { + var_r28->unk_1DC = 0.5f; + var_r28->unk_1D8 = HuAudFXPlay((var_r31->unk_184 & 2) == 0 ? 0x68E : 0x68F); + } + Hu3DMotionShiftSet( + object->model[0], object->motion[7], 120.0 * (fmod(var_r31->unk_C8->unk_38, 360.0) / 360.0), 8.0f, HU3D_MOTATTR_PAUSE); + break; + case 0x7D6: + var_r31->unk_14C = 0.0f; + var_r31->unk_150 = -1.0f; + var_r31->unk_158 = 0.0f; + var_r31->unk_154 = 0.0f; + Hu3DMotionShiftSet(object->model[0], object->motion[8], 0.0f, 8.0f, HU3D_MOTATTR_PAUSE); + break; + } + } + else if (-800.0f > var_r31->unk_00.unk_6C.y) { + var_r31->unk_00.unk_3C |= 0x10; + if (NULL == lbl_1_bss_0[var_r31->unk_184 >> 1].unk_08) { + lbl_1_bss_0[var_r31->unk_184 >> 1].unk_08 = object; + lbl_1_bss_0[var_r31->unk_184 >> 1].unk_1B4 = -1; + } + else { + lbl_1_bss_0[var_r31->unk_184 >> 1].unk_0C = object; + } + } + break; + case 0x7D4: + fn_1_C724(var_r31, object, lbl_1_bss_0[var_r31->unk_184 >> 1].unk_04); + break; + case 0x7D5: + fn_1_D0E0(var_r31, object, lbl_1_bss_0[var_r31->unk_184 >> 1].unk_04); + break; + case 0x7D6: + fn_1_D9EC(var_r31, object, lbl_1_bss_0[var_r31->unk_184 >> 1].unk_04); + break; + case 0x7D7: + fn_1_E3B4(var_r31, object); + break; + case 0x7D8: + fn_1_E9E4(var_r31); + break; + case 0x7D9: + break; + default: + OSReport("*** player mode error(%d)!!\n", var_r31->unk_180); + break; + } + fn_1_EC7C(var_r31, object); + fn_1_BAA8(var_r31); + + lbl_1_bss_0[var_r31->unk_184 >> 1].unk_1E8 += 1.0f; + + lbl_1_bss_0[var_r31->unk_184 >> 1].unk_1EC += fn_1_A974(var_r31); + lbl_1_bss_0[var_r31->unk_184 >> 1].unk_1F0[var_r31->unk_184 & 1] = var_r31->unk_00.unk_6C.z; + fn_1_2DD4(&var_r31->unk_00); +} + +void fn_1_10250(omObjData *object) +{ + float var_f31; + float var_f30; + float var_f24; + UnkM432DllStruct *var_r31; + omObjData *var_r29; + + var_r31 = object->data; + var_r29 = lbl_1_bss_0[var_r31->unk_184 >> 1].unk_04; + switch (var_r31->unk_180) { + case 0x7D0: + if (lbl_1_bss_41C->work[0] >= 0x3E9) { + var_r31->unk_180++; + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + HuAudCharVoicePlay(var_r31->unk_18C, 0x125); + } + break; + case 0x7D1: + var_r31->unk_00.unk_20 = 0; + var_r31->unk_00.unk_24 = 0x48; + var_r31->unk_00.unk_28 = 0x100; + var_r31->unk_00.unk_2C = 0x100; + fn_1_40C0(&var_r31->unk_00); + if (200.0f > var_r31->unk_00.unk_6C.y) { + var_r31->unk_00.unk_84.y = 26.766666f; + var_r31->unk_00.unk_A4 = 1.0f; + } + else { + var_r31->unk_180++; + } + break; + case 0x7D2: + var_r31->unk_00.unk_20 = 0; + var_r31->unk_00.unk_24 = 0; + var_r31->unk_00.unk_28 = 0; + var_r31->unk_00.unk_2C = 0; + if (var_r31->unk_00.unk_38 == 1) { + var_r31->unk_00.unk_24 = 0x48; + } + fn_1_40C0(&var_r31->unk_00); + if ((var_r31->unk_00.unk_38 == 0) && (lbl_1_bss_41C->work[0] >= 0x3EB)) { + var_r31->unk_180++; + object->func = fn_1_ED0C; + } + break; + case 0x7DA: + if ((var_r31->unk_168 != 0) && (lbl_1_bss_3FC < 0) && (lbl_1_bss_41C->work[0] >= 0x3F1)) { + var_r31->unk_168 = 0; + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + Hu3DMotionShiftSet(object->model[0], object->motion[10], 0.0f, 8.0f, HU3D_ATTR_NONE); + } + break; + case 0x7DB: + var_f31 = var_r31->unk_13C.x - var_r31->unk_00.unk_6C.x; + var_f30 = var_r31->unk_13C.z - var_r31->unk_00.unk_6C.z; + if (1.0f > (0.0f > var_f31 ? -var_f31 : var_f31)) { + if (1.0f > (0.0f > var_f30 ? -var_f30 : var_f30)) { + var_r31->unk_180++; + var_r31->unk_160 = 0.0f; + var_r31->unk_164 = var_r31->unk_00.unk_6C.y; + Hu3DMotionShiftSet(object->model[0], object->motion[3], 0.0f, 8.0f, HU3D_ATTR_NONE); + break; + } + } + if (1.0f < (0.0f > var_f31 ? -var_f31 : var_f31)) { + var_f30 = 0.0f; + } + var_f24 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (10.0f < var_f24) { + var_f31 = 10.0f * (var_f31 / var_f24); + var_f30 = 10.0f * (var_f30 / var_f24); + } + var_r31->unk_00.unk_6C.x += var_f31; + var_r31->unk_00.unk_6C.z += var_f30; + + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, atan2d(var_f31, var_f30), 0.4f); + break; + case 0x7DC: + var_r31->unk_160 += 5.0f; + var_r31->unk_00.unk_6C.z -= 10.0f; + var_r31->unk_00.unk_6C.y = lbl_1_bss_0[var_r31->unk_184 >> 1].unk_118.y + (120.0 * sind(var_r31->unk_160)); + if (180.0f <= var_r31->unk_160) { + var_r31->unk_180++; + Hu3DMotionShiftSet(object->model[0], object->motion[4], 0.0f, 8.0f, HU3D_ATTR_NONE); + } + break; + case 0x7DD: + if ((Hu3DMotionShiftIDGet(object->model[0]) < 0) && (Hu3DMotionEndCheck(object->model[0]) != 0)) { + var_r31->unk_180++; + Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(var_r29->model[9], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(var_r29->model[15], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(var_r29->model[23], HU3D_MOTATTR_PAUSE); + HuAudFXPlay(0x694); + } + break; + case 0x7DE: + var_r31->unk_00.unk_9C = fn_1_1E20(var_r31->unk_00.unk_9C, 0.0f, 0.4f); + if ((Hu3DMotionEndCheck(var_r29->model[9]) != 0) && (Hu3DMotionEndCheck(var_r29->model[15]) != 0)) { + var_r31->unk_180++; + } + break; + case 0x7DF: + var_r31->unk_00.unk_6C.y = lbl_1_bss_0[var_r31->unk_184 >> 1].unk_118.y; + if (lbl_1_bss_41C->work[0] >= 0x3F1) { + var_r31->unk_180++; + Hu3DMotionShiftSet(object->model[0], object->motion[9], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + HuAudCharVoicePlay(var_r31->unk_18C, 0x125); + } + break; + case 0x7E0: + var_r31->unk_00.unk_6C.y = lbl_1_bss_0[var_r31->unk_184 >> 1].unk_118.y; + break; + case 0x7D3: + case 0x7D4: + case 0x7D5: + case 0x7D6: + case 0x7D7: + case 0x7D8: + case 0x7D9: + default: + OSReport("*** player mode error(%d)!!\n", var_r31->unk_180); + break; + } + fn_1_EC7C(var_r31, object); + fn_1_2DD4(&var_r31->unk_00); +} + +void fn_1_10CCC(omObjData *object) +{ + Vec sp8; + + UnkM432DllStruct *var_r31; + s32 var_r29; + s32 var_r28; + s32 var_r27; + UnkM432DllBss0SubStruct *var_r26; + s32 var_r24; + s32 var_r23; + + var_r31 = object->data; + var_r26 = lbl_1_bss_0[var_r31->unk_184 >> 1].unk_10[var_r31->unk_184 & 1]; + var_r31->unk_18C = GWPlayerCfg[var_r31->unk_188].character; + var_r31->unk_190 = GWPlayerCfg[var_r31->unk_188].pad_idx; + var_r31->unk_180 = 0x7D0; + var_r31->unk_168 = 0; + var_r31->unk_CC = NULL; + var_r31->unk_C4 = NULL; + var_r31->unk_C8 = NULL; + var_r31->unk_150 = 0.0f; + var_r31->unk_158 = 0.0f; + var_r31->unk_154 = 0.0f; + var_r31->unk_17C = 0; + var_r31->unk_15C = 10000.0f; + var_r31->unk_178 = 0; + var_r31->unk_16C = 0; + var_r31->unk_104 = 0.5f; + var_r31->unk_108 = 0.0f; + fn_1_5148(var_r31); + sp8 = var_r26[var_r31->unk_17C++].unk_2C; + sp8.y -= 200.0f; + fn_1_2C1C(&var_r31->unk_00, object, var_r31->unk_188, var_r31->unk_18C, lbl_1_data_268, 0, &sp8, 180.0f); + var_r31->unk_00.unk_04 = fn_1_AA1C; + var_r31->unk_00.unk_08 = fn_1_ACC8; + fn_1_2DC8(&var_r31->unk_00, 1, (var_r31->unk_184 & 2) == 0 ? lbl_1_data_354 : lbl_1_data_36C); + var_r31->unk_00.unk_0C = fn_1_AF28; + var_r31->unk_13C.x = 0.0f; + var_r31->unk_13C.y = 0.0f; + var_r31->unk_13C.z = 0.0f; + object->model[0] = CharModelCreate(lbl_1_data_0[var_r31->unk_18C], 4); + CharModelStepTypeSet(lbl_1_data_0[var_r31->unk_18C], 0); + for (var_r29 = 0; var_r29 < 0xB; var_r29++) { + object->motion[var_r29] = CharModelMotionCreate(lbl_1_data_0[var_r31->unk_18C], lbl_1_data_108[var_r31->unk_18C][var_r29]); + CharModelMotionSet(lbl_1_data_0[var_r31->unk_18C], object->motion[var_r29]); + } + Hu3DModelCameraSet(object->model[0], lbl_1_data_A0[var_r31->unk_184 >> 1]); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelLayerSet(object->model[0], 2); + Hu3DMotionSet(object->model[0], object->motion[0]); + Hu3DModelShadowSet(object->model[0]); + fn_1_2DD4(&var_r31->unk_00); + for (var_r29 = 0; var_r29 < 9; var_r29++) { + var_r31->unk_118[var_r29] = espEntry(lbl_1_data_288[var_r29], 0, 0); + espDrawNoSet(var_r31->unk_118[var_r29], 0); + espDispOff(var_r31->unk_118[var_r29]); + espAttrSet(var_r31->unk_118[var_r29], HUSPR_ATTR_NOANIM); + espBankSet(var_r31->unk_118[var_r29], 0); + espPriSet(var_r31->unk_118[var_r29], 0x80 - var_r29); + } + espTPLvlSet(var_r31->unk_118[0], 0.9f); + espTPLvlSet(var_r31->unk_118[1], 0.9f); + if (GWPlayerCfg[var_r31->unk_188].iscom != 0) { + switch (GWPlayerCfg[var_r31->unk_188].diff) { + case 0: + var_r31->unk_CC = &lbl_1_data_1794; + break; + case 1: + var_r31->unk_CC = &lbl_1_data_17B4; + break; + case 2: + var_r31->unk_CC = &lbl_1_data_17D4; + break; + case 3: + default: + var_r31->unk_CC = &lbl_1_data_17F4; + break; + } + } + CharModelLayerSetAll2(5); + CharModelMotionDataClose(lbl_1_data_0[var_r31->unk_18C]); + object->func = fn_1_10250; +} + +void fn_1_113F0(omObjData *object) { } + +void fn_1_113F4(omObjData *var_r31) +{ + s32 sp48; + + UnkM432DllBss0SubStruct *var_r30; + s32 var_r28; + UnkBss0Struct *var_r22; + + var_r22 = &lbl_1_bss_0[var_r31->work[0]]; + var_r31->model[0] = fn_1_46C(DATA_MAKE_NUM(DATADIR_M432, 0x02)); + Hu3DModelCameraSet(var_r31->model[0], lbl_1_data_A0[var_r31->work[0]]); + Hu3DModelAttrSet(var_r31->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(var_r31->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelLayerSet(var_r31->model[0], 0); + + var_r31->model[1] = fn_1_46C(DATA_MAKE_NUM(DATADIR_M432, 0x04)); + Hu3DModelCameraSet(var_r31->model[1], lbl_1_data_A0[var_r31->work[0]]); + Hu3DModelAttrSet(var_r31->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->model[1], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(var_r31->model[1], HU3D_MOTATTR_PAUSE); + Hu3DModelLayerSet(var_r31->model[1], 0); + + var_r31->model[2] = fn_1_46C(lbl_1_data_528[var_r31->work[0]]); + Hu3DModelCameraSet(var_r31->model[2], lbl_1_data_A0[var_r31->work[0]]); + Hu3DModelAttrSet(var_r31->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->model[2], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(var_r31->model[2], HU3D_MOTATTR_PAUSE); + Hu3DModelLayerSet(var_r31->model[2], 1); + + var_r31->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M432, 0x01)); + Hu3DModelCameraSet(var_r31->model[3], lbl_1_data_A0[var_r31->work[0]]); + Hu3DModelAttrSet(var_r31->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->model[3], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(var_r31->model[3], HU3D_MOTATTR_LOOP); + Hu3DModelLayerSet(var_r31->model[3], 0); + + var_r31->model[24] = fn_1_46C(DATA_MAKE_NUM(DATADIR_M432, 0x03)); + Hu3DModelCameraSet(var_r31->model[24], lbl_1_data_A0[var_r31->work[0]]); + Hu3DModelLayerSet(var_r31->model[24], 0); + Hu3DModelPosSet(var_r31->model[24], 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(var_r31->model[24], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(var_r31->model[24], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->model[24], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(var_r31->model[24], HU3D_MOTATTR_LOOP); + + var_r31->model[25] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M432, 0x07)); + Hu3DMotionSet(var_r31->model[25], Hu3DJointMotionFile(var_r31->model[25], DATA_MAKE_NUM(DATADIR_M432, 0x08))); + Hu3DModelCameraSet(var_r31->model[25], lbl_1_data_A0[var_r31->work[0]]); + Hu3DModelAttrSet(var_r31->model[25], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->model[25], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(var_r31->model[25], HU3D_MOTATTR_PAUSE); + Hu3DModelLayerSet(var_r31->model[25], 2); + Hu3DModelShadowSet(var_r31->model[25]); + omSetTra(var_r31, var_r22->unk_28.x, 0.0f, 0.0f); + omSetRot(var_r31, 0.0f, 0.0f, 0.0f); + for (var_r28 = 0; var_r28 < 0x1A; var_r28++) { + Hu3DModelPosSet(var_r31->model[var_r28], var_r22->unk_28.x, 0.0f, 0.0f); + Hu3DModelRotSet(var_r31->model[var_r28], 0.0f, 0.0f, 0.0f); + } + for (var_r28 = 0; var_r28 < 2; var_r28++) { + var_r22->unk_10[var_r28] = HuMemDirectMallocNum(HEAP_SYSTEM, 31 * sizeof(UnkM432DllBss0SubStruct), MEMORY_DEFAULT_NUM); + memcpy(var_r22->unk_10[var_r28], var_r28 == 0 ? &lbl_1_data_5EC : &lbl_1_data_EDC, 31 * sizeof(UnkM432DllBss0SubStruct)); + for (var_r30 = var_r22->unk_10[var_r28], sp48 = 0; sp48 < 0x1F; sp48++, var_r30++) { + fn_1_1D18(var_r31->model[3], var_r30->unk_00, &var_r30->unk_20); + var_r30->unk_2C = var_r30->unk_20; + var_r30->unk_38 = 0.0f; + var_r30->unk_3C = 0.0f; + var_r30->unk_40 = -1; + var_r30->unk_44 = sp48; + if ((var_r30->unk_08 > 0) && (var_r30->unk_0C[var_r31->work[0]] != 0)) { + var_r31->model[var_r30->unk_08] = fn_1_46C(var_r30->unk_0C[var_r31->work[0]]); + Hu3DModelCameraSet(var_r31->model[var_r30->unk_08], lbl_1_data_A0[var_r31->work[0]]); + Hu3DModelLayerSet(var_r31->model[var_r30->unk_08], 0); + Hu3DModelPosSet(var_r31->model[var_r30->unk_08], var_r30->unk_2C.x, var_r30->unk_2C.y, var_r30->unk_2C.z); + Hu3DModelRotSet(var_r31->model[var_r30->unk_08], 0.0f, var_r30->unk_18, 0.0f); + Hu3DModelAttrSet(var_r31->model[var_r30->unk_08], HU3D_ATTR_DISPOFF | HU3D_ATTR_NOCULL); + Hu3DModelAttrSet(var_r31->model[var_r30->unk_08], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(var_r31->model[var_r30->unk_08], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(var_r31->model[var_r30->unk_08], HU3D_ATTR_DISPOFF); + } + } + } + for (var_r28 = 0; var_r28 < 4; var_r28++) { + lbl_1_bss_0[var_r31->work[0]].unk_88[var_r28][2].y = 35.0f; + } + fn_1_1D18(var_r31->model[3], "m432_00-d0", &lbl_1_bss_0[var_r31->work[0]].unk_88[0][0]); + fn_1_1D18(var_r31->model[3], "m432_00-d0", &lbl_1_bss_0[var_r31->work[0]].unk_88[1][0]); + fn_1_1D18(var_r31->model[3], "m432_00-d1", &lbl_1_bss_0[var_r31->work[0]].unk_88[2][0]); + fn_1_1D18(var_r31->model[3], "m432_00-d1", &lbl_1_bss_0[var_r31->work[0]].unk_88[3][0]); + + fn_1_5364(var_r31->work[0], var_r31); + + fn_1_1D18(var_r31->model[3], "m432_00-h0", &lbl_1_bss_0[var_r31->work[0]].unk_118); + for (var_r28 = 0; var_r28 < 8; var_r28++) { + fn_1_1D18(var_r31->model[3], lbl_1_data_3DC[var_r28], &lbl_1_bss_0[var_r31->work[0]].unk_130[var_r28]); + if ((var_r28 % 4) < 2) { + lbl_1_bss_0[var_r31->work[0]].unk_130[var_r28].z -= 150.0f; + } + } + fn_1_1D18(var_r31->model[3], "m432_00-n0", &lbl_1_bss_0[var_r31->work[0]].unk_1C0); + Hu3DModelShadowMapSet(var_r31->model[0]); + Hu3DModelShadowMapSet(var_r31->model[20]); + Hu3DModelShadowMapSet(var_r31->model[21]); + Hu3DModelAttrReset(var_r31->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->model[2], HU3D_ATTR_DISPOFF); + var_r31->func = fn_1_113F0; +} + +void fn_1_12800(omObjData *object) { } + +void fn_1_12804(omObjData *object) +{ + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M432, 0x00)); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + omSetTra(object, lbl_1_bss_0[object->work[0]].unk_28.x, 0.0f, 0.0f); + omSetRot(object, 0.0f, 0.0f, 0.0f); + object->func = fn_1_12800; +} + +void fn_1_128C8(omObjData *object) +{ + s32 var_r31; + UnkM432DllStruct *var_r30; + UnkM432DllStruct *var_r29; + s32 var_r28; + s32 var_r27; + void *var_r26; + void *var_r25; + omObjData *var_r24; + void *var_r23; + void *var_r22; + + if (lbl_1_bss_41C->work[0] >= 0x3EB) { + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r24 = lbl_1_bss_0[var_r31].unk_04; + var_r30 = fn_1_51A8(var_r31 * 2); + var_r29 = fn_1_51A8(var_r31 * 2 + 1); + if ((var_r30->unk_180 == 0x7DF) && (var_r29->unk_180 == 0x7DF)) { + lbl_1_bss_0[var_r31].unk_12C += 0.05f; + if (12.0f < lbl_1_bss_0[var_r31].unk_12C) { + lbl_1_bss_0[var_r31].unk_12C = 12.0f; + } + lbl_1_bss_0[var_r31].unk_118.y += lbl_1_bss_0[var_r31].unk_12C; + Hu3DModelPosSet(var_r24->model[22], lbl_1_bss_0[var_r31].unk_118.x, lbl_1_bss_0[var_r31].unk_118.y, lbl_1_bss_0[var_r31].unk_118.z); + lbl_1_bss_0[var_r31].unk_28.y += 0.1f * ((500.0f + lbl_1_bss_0[var_r31].unk_118.y) - lbl_1_bss_0[var_r31].unk_28.y); + lbl_1_bss_0[var_r31].unk_1C.y += 0.01f * (1000.0f - lbl_1_bss_0[var_r31].unk_1C.y); + lbl_1_bss_0[var_r31].unk_1C.z += 0.002f * ((4000.0f + lbl_1_bss_0[var_r31].unk_118.z) - lbl_1_bss_0[var_r31].unk_1C.z); + Hu3DCameraPosSetV(lbl_1_data_A0[var_r31], &lbl_1_bss_0[var_r31].unk_1C, &lbl_1_data_C8, &lbl_1_bss_0[var_r31].unk_28); + } + else { + fn_1_623C(&lbl_1_bss_0[var_r31], var_r31, var_r30, var_r29); + if (NULL != lbl_1_bss_0[var_r31].unk_08) { + fn_1_6F28(&lbl_1_bss_0[var_r31]); + } + if ((2.0f <= lbl_1_bss_0[var_r31].unk_1E8) && (lbl_1_bss_0[var_r31].unk_1EC != 0.0f)) { + fn_1_7C1C(&lbl_1_bss_0[var_r31], var_r30, var_r29); + } + lbl_1_bss_0[var_r31].unk_0C = NULL; + lbl_1_bss_0[var_r31].unk_1E8 = 0.0f; + lbl_1_bss_0[var_r31].unk_1EC = 0.0f; + lbl_1_bss_0[var_r31].unk_1F0[0] = 0.0f; + lbl_1_bss_0[var_r31].unk_1F0[1] = 0.0f; + } + } + if (lbl_1_bss_41C->work[0] >= 0x3EC) { + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (lbl_1_bss_0[var_r31].unk_1CC >= 0) { + HuAudFXStop(lbl_1_bss_0[var_r31].unk_1CC); + } + if (lbl_1_bss_0[var_r31].unk_1D0 >= 0) { + HuAudFXStop(lbl_1_bss_0[var_r31].unk_1D0); + } + if (lbl_1_bss_0[var_r31].unk_1D8 >= 0) { + HuAudFXStop(lbl_1_bss_0[var_r31].unk_1D8); + } + lbl_1_bss_0[var_r31].unk_1CC = -1; + lbl_1_bss_0[var_r31].unk_1D0 = -1; + lbl_1_bss_0[var_r31].unk_1D8 = -1; + } + } + } +} + +void fn_1_12EA8(void) +{ + float var_f31; + float var_f30; + + UnkBss0Struct *var_r31; + s32 var_r30; + + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r31 = &lbl_1_bss_0[var_r30]; + if (var_r31->unk_7C == 0.0f) { + var_r31->unk_1C = var_r31->unk_28; + var_r31->unk_1C.x = var_r31->unk_1C.x + (var_r31->unk_68 * sind(var_r31->unk_64)); + var_r31->unk_1C.y += var_r31->unk_6C; + var_r31->unk_1C.z = var_r31->unk_1C.z + (var_r31->unk_68 * cosd(var_r31->unk_64)); + } + else { + var_r31->unk_78 += 1.0f; + var_f30 = var_r31->unk_78 / var_r31->unk_7C; + var_f31 = sind((90.0f * var_f30)) * sind((90.0f * var_f30)); + + var_r31->unk_1C.x = var_r31->unk_34.x + (var_f31 * (var_r31->unk_40.x - var_r31->unk_34.x)); + var_r31->unk_1C.y = var_r31->unk_34.y + (var_f31 * (var_r31->unk_40.y - var_r31->unk_34.y)); + var_r31->unk_1C.z = var_r31->unk_34.z + (var_f31 * (var_r31->unk_40.z - var_r31->unk_34.z)); + var_r31->unk_28.x = var_r31->unk_4C.x + (var_f31 * (var_r31->unk_58.x - var_r31->unk_4C.x)); + var_r31->unk_28.y = var_r31->unk_4C.y + (var_f31 * (var_r31->unk_58.y - var_r31->unk_4C.y)); + var_r31->unk_28.z = var_r31->unk_4C.z + (var_f31 * (var_r31->unk_58.z - var_r31->unk_4C.z)); + if (var_r31->unk_7C <= var_r31->unk_78) { + var_r31->unk_68 = var_r31->unk_1C.z - var_r31->unk_28.z; + var_r31->unk_6C = var_r31->unk_1C.y - var_r31->unk_28.y; + var_r31->unk_78 = 0.0f; + var_r31->unk_7C = 0.0f; + } + } + Hu3DCameraPosSetV(lbl_1_data_A0[var_r30], &var_r31->unk_1C, &lbl_1_data_C8, &var_r31->unk_28); + } +} + +void fn_1_131A8(omObjData *var_r28) +{ + Vec sp98; + Vec sp8C; + Vec sp80; + UnkM432DllStruct *sp7C[1]; + + float var_f31; + float var_f30; + float var_f27; + float var_f26; + float var_f22; + float var_f21; + + UnkBss0Struct *var_r29; + s32 var_r26; + s32 var_r17; + + if (omSysExitReq != 0) { + fn_1_1F58(-1); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); + var_r28->func = fn_1_1615C; + } + lbl_1_bss_580++; + switch (var_r28->work[0]) { + case 0x3E8: + if (WipeStatGet() == 0) { + var_r28->work[0]++; + lbl_1_bss_3F0 = 0.0f; + } + break; + case 0x3E9: + lbl_1_bss_3F0 += 1.0f; + var_f31 = lbl_1_bss_3F0 / 60.0f; + var_f30 = sind((90.0f * var_f31)) * sind((90.0f * var_f31)); + for (var_r26 = 0; var_r26 < 2; var_r26++) { + lbl_1_bss_0[var_r26].unk_28.z = -300.0f + (-400.0f * var_f30); + } + fn_1_12EA8(); + if (60.0f <= lbl_1_bss_3F0) { + var_r28->work[0]++; + lbl_1_bss_3F0 = 0.0f; + } + break; + case 0x3EA: + if (lbl_1_bss_576 < 0) { + lbl_1_bss_576 = MGSeqCreate(3, 0); + } + else { + if ((lbl_1_bss_570 < 0) && ((MGSeqStatGet(lbl_1_bss_576) & 0x10) != 0)) { + fn_1_1F24(0x46); + } + if (MGSeqStatGet(lbl_1_bss_576) == 0) { + var_r28->work[0]++; + lbl_1_bss_57C = 0; + lbl_1_bss_576 = -1; + lbl_1_bss_3F0 = 0.0f; + } + } + break; + case 0x3EB: + lbl_1_bss_57C++; + if (lbl_1_bss_574 >= 0) { + MGSeqParamSet(lbl_1_bss_574, 1, (0x468B - lbl_1_bss_57C) / 60); + } + else if (lbl_1_bss_57C > 0x3F48) { + lbl_1_bss_574 = MGSeqCreate(1, (0x468B - lbl_1_bss_57C) / 60, -1, -1); + MGSeqPosSet(lbl_1_bss_574, 288.0f, 400.0f); + } + fn_1_580(lbl_1_bss_528, 0, lbl_1_bss_57C); + + fn_1_12EA8(); + if ((lbl_1_bss_57C >= 0x4650) || (lbl_1_bss_3FC >= 0)) { + var_r28->work[0] = 0x3EC; + lbl_1_bss_3F0 = 0.0f; + } + break; + case 0x3EC: + if (lbl_1_bss_576 < 0) { + if (lbl_1_bss_574 >= 0) { + MGSeqParamSet(lbl_1_bss_574, 2, -1); + } + lbl_1_bss_574 = -1; + lbl_1_bss_3F8 = 0; + lbl_1_bss_576 = MGSeqCreate(3, 1); + fn_1_1F58(0x64); + } + else { + var_r17 = 0; + for (var_r26 = 0; var_r26 < 4; var_r26++) { + if (((UnkM432DllStruct *)lbl_1_bss_410[var_r26]->data)->unk_180 >= 0x7DA) { + var_r17++; + } + } + if (++lbl_1_bss_3F8 > 0x78) { + var_r17 = 4; + } + lbl_1_bss_3F0 += 1.0f; + if ((var_r17 >= 4) && (60.0f <= lbl_1_bss_3F0) && (MGSeqStatGet(lbl_1_bss_576) == 0)) { + var_r28->work[0] = 0x3EE; + if ((lbl_1_bss_3FC >= 0) && (lbl_1_bss_57C < 0x1518)) { + if (GWPlayerCfg[fn_1_51A8(lbl_1_bss_3FC)->unk_188].iscom != 0) { + if (GWPlayerCfg[fn_1_51A8(lbl_1_bss_3FC + 1)->unk_188].iscom == 0) { + goto block_81; + } + } + else { + block_81: + GWGameStat.present[0x32] = 1; + } + } + if ((lbl_1_bss_3FC >= 0) && (lbl_1_bss_578 > lbl_1_bss_57C)) { + if (GWPlayerCfg[fn_1_51A8(lbl_1_bss_3FC)->unk_188].iscom != 0) { + if (GWPlayerCfg[fn_1_51A8(lbl_1_bss_3FC + 1)->unk_188].iscom == 0) { + goto block_98; + } + } + else { + block_98: + var_r28->work[0] = 0x3ED; + fn_1_798(3); + } + } + lbl_1_bss_576 = -1; + lbl_1_bss_3F0 = 0.0f; + } + } + break; + case 0x3ED: + if (lbl_1_bss_576 < 0) { + lbl_1_bss_576 = MGSeqCreate(0xE, lbl_1_bss_578); + } + else if (MGSeqStatGet(lbl_1_bss_576) == 0) { + var_r28->work[0]++; + lbl_1_bss_3F0 = 0.0f; + lbl_1_bss_576 = -1; + } + break; + case 0x3EE: + if (lbl_1_bss_3FC < 0) { + var_r28->work[0] = 0x3F1; + lbl_1_bss_3F0 = 0.0f; + } + else if (2000.0f < lbl_1_bss_0[lbl_1_bss_3FC >> 1].unk_118.y) { + var_r28->work[0]++; + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + } + break; + case 0x3EF: + if (WipeStatGet() == 0) { + var_r28->work[0]++; + lbl_1_bss_3F0 = 0.0f; + omDelObjEx(lbl_1_bss_5B4, lbl_1_bss_414); + Hu3DCameraKill(lbl_1_data_A0[(lbl_1_bss_3FC >> 1) ^ 1]); + Hu3DCameraPerspectiveSet(lbl_1_data_A0[lbl_1_bss_3FC >> 1], 20.0f, 20.0f, 20000.0f, 1.2f); + Hu3DCameraViewportSet(lbl_1_data_A0[lbl_1_bss_3FC >> 1], 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(lbl_1_data_A0[lbl_1_bss_3FC >> 1], 0, 0, 0x280, 0x1E0); + var_r29 = &lbl_1_bss_0[lbl_1_bss_3FC >> 1]; + var_r29->unk_118.y = 5000.0f; + Hu3DModelPosSet(var_r29->unk_04->model[22], var_r29->unk_118.x, var_r29->unk_118.y, var_r29->unk_118.z); + Hu3DModelPosSet(var_r29->unk_04->model[24], var_r29->unk_118.x, var_r29->unk_118.y, var_r29->unk_118.z); + Hu3DModelAttrReset(var_r29->unk_04->model[24], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r29->unk_04->model[24], HU3D_MOTATTR_PAUSE); + var_r29->unk_28.y = 8000.0f; + var_r29->unk_1C.y = 8000.0f; + var_r29->unk_1C.z = 5000.0f + var_r29->unk_118.z; + Hu3DCameraPosSetV(lbl_1_data_A0[lbl_1_bss_3FC >> 1], &var_r29->unk_1C, &lbl_1_data_C8, &var_r29->unk_28); + var_r29->unk_4C = var_r29->unk_28; + var_r29->unk_58 = var_r29->unk_28; + var_r29->unk_34 = var_r29->unk_1C; + var_r29->unk_40 = var_r29->unk_1C; + var_r29->unk_58.y = 5200.0f; + var_r29->unk_40.y = 5200.0f; + var_r29->unk_40.z = 2000.0f + var_r29->unk_118.z; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x3C); + lbl_1_bss_3F4 = HuAudFXPlay(0x69B); + } + break; + case 0x3F0: + var_r29 = &lbl_1_bss_0[lbl_1_bss_3FC >> 1]; + lbl_1_bss_3F0 += 1.0f; + var_f31 = lbl_1_bss_3F0 / 180.0f; + var_f30 = sind((90.0f * var_f31)) * sind((90.0f * var_f31)); + var_r29->unk_28.y = var_r29->unk_4C.y + (var_f30 * (var_r29->unk_58.y - var_r29->unk_4C.y)); + var_r29->unk_1C.y = var_r29->unk_34.y + (var_f30 * (var_r29->unk_40.y - var_r29->unk_34.y)); + if (90.0f < lbl_1_bss_3F0) { + var_f31 = (lbl_1_bss_3F0 - 90.0f) / 90.0f; + var_f30 = sind((90.0f * var_f31)) * sind((90.0f * var_f31)); + var_r29->unk_1C.z = var_r29->unk_34.z + (var_f30 * (var_r29->unk_40.z - var_r29->unk_34.z)); + } + Hu3DCameraPosSetV(lbl_1_data_A0[lbl_1_bss_3FC >> 1], &var_r29->unk_1C, &lbl_1_data_C8, &var_r29->unk_28); + if (180.0f <= lbl_1_bss_3F0) { + var_r28->work[0]++; + lbl_1_bss_3F0 = 0.0f; + } + break; + case 0x3F1: + if (lbl_1_bss_576 < 0) { + if (lbl_1_bss_3FC < 0) { + lbl_1_bss_576 = MGSeqCreate(3, 2); + HuAudSStreamPlay(4); + } + else { + lbl_1_bss_576 = MGSeqCreate(5, 3, fn_1_51A8(lbl_1_bss_3FC)->unk_18C, fn_1_51A8(lbl_1_bss_3FC + 1)->unk_18C, -1, -1); + HuAudSStreamPlay(1); + } + } + else { + lbl_1_bss_3F0 += 1.0f; + if (0 <= lbl_1_bss_3FC) { } + if ((210.0f < lbl_1_bss_3F0) && (MGSeqStatGet(lbl_1_bss_576) == 0)) { + fn_1_1F58(-1); + lbl_1_bss_576 = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); + var_r28->func = fn_1_1615C; + } + } + break; + default: + OSReport("*** main mode error(%d)!!\n", var_r28->work[0]); + break; + } + fn_1_A40(); + if ((lbl_1_bss_3FC >= 0) && (var_r28->work[0] >= 0x3F0)) { + var_r29 = &lbl_1_bss_0[lbl_1_bss_3FC >> 1]; + var_r29->unk_118.y = 5000.0 + (10.0 * sind((lbl_1_bss_580 * 4))); + Hu3DModelPosSet(var_r29->unk_04->model[22], var_r29->unk_118.x, var_r29->unk_118.y, var_r29->unk_118.z); + } + sp98.x = 0.0f; + sp98.y = 0.0f; + sp98.z = 0.0f; + for (var_r26 = 0; var_r26 < 4; var_r26++) { + sp7C[0] = lbl_1_bss_410[var_r26]->data; + sp98.x += sp7C[0]->unk_00.unk_6C.x; + sp98.z += sp7C[0]->unk_00.unk_6C.z; + } + sp98.x *= 0.25f; + sp98.z *= 0.25f; + var_f27 = 0.0f; + for (var_r26 = 0; var_r26 < 4; var_r26++) { + var_f26 = VECDistance(&sp98, &((UnkM432DllStruct *)lbl_1_bss_410[var_r26]->data)->unk_00.unk_6C); + if (var_f27 < var_f26) { + var_f27 = var_f26; + } + } + + fn_1_52B8_inline(&sp80, sp98.x, 0.0f, sp98.z); + + sp98.y = 6.0f * var_f27; + sp98.z += 1000.0f; + VECNormalize(&sp98, &sp8C); + Hu3DShadowPosSet(&sp98, &sp8C, &sp80); + fn_1_2D8(); +} + +void fn_1_15320(omObjData *object) +{ + s32 var_r31; + object->work[0] = 0x3E8; + fn_1_B4C(80.0f, DATA_MAKE_NUM(DATADIR_M432, 0x1E)); + fn_1_9EC(); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_131A8; +} + +void ObjectSetup(void) +{ + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + + UnkBss0Struct *var_r31; + s32 var_r30; + float *var_r29; + UnkM432DllStruct *var_r28; + omObjData *var_r27; + s32 var_r26; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + + OSReport("******* M432 ObjectSetup *********\n"); + lbl_1_bss_5B4 = omInitObjMan(0x258, 0x2000); + omGameSysInit(lbl_1_bss_5B4); + nMap = 0; + nChar = 0; + lbl_1_bss_580 = 0; + lbl_1_bss_576 = -1; + lbl_1_bss_574 = -1; + lbl_1_bss_3FC = -1; + lbl_1_bss_3F8 = 0; + lbl_1_bss_570 = -1; + lbl_1_bss_3F4 = -1; + lbl_1_bss_57C = 0; + lbl_1_bss_578 = GWMGRecordGet(3); + lbl_1_bss_568 = -1.0f; + if (lbl_1_bss_578 == 0) { + lbl_1_bss_578 = 0x1C20; + } + fn_1_414(); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + lbl_1_bss_0[var_r30].unk_08 = NULL; + lbl_1_bss_0[var_r30].unk_18 = 0; + lbl_1_bss_0[var_r30].unk_28.x = -800.0f + (1600.0f * var_r30); + lbl_1_bss_0[var_r30].unk_28.y = 0.0f; + lbl_1_bss_0[var_r30].unk_28.z = -300.0f; + lbl_1_bss_0[var_r30].unk_1E4 = 0.0f; + lbl_1_bss_0[var_r30].unk_64 = 0.0f; + lbl_1_bss_0[var_r30].unk_68 = 3900.0f; + lbl_1_bss_0[var_r30].unk_6C = 3250.0f; + lbl_1_bss_0[var_r30].unk_1E8 = 0.0f; + lbl_1_bss_0[var_r30].unk_70 = 0.0f; + lbl_1_bss_0[var_r30].unk_74 = 0.0f; + lbl_1_bss_0[var_r30].unk_78 = 0.0f; + lbl_1_bss_0[var_r30].unk_7C = 0.0f; + lbl_1_bss_0[var_r30].unk_80 = 0.0f; + lbl_1_bss_0[var_r30].unk_84 = 0.0f; + lbl_1_bss_0[var_r30].unk_124 = 0.0f; + lbl_1_bss_0[var_r30].unk_128 = 0.0f; + lbl_1_bss_0[var_r30].unk_12C = 0.0f; + lbl_1_bss_0[var_r30].unk_1B8 = frandmod(5); + lbl_1_bss_0[var_r30].unk_1BC = frandmod(9); + lbl_1_bss_0[var_r30].unk_1CC = -1; + lbl_1_bss_0[var_r30].unk_1D0 = -1; + lbl_1_bss_0[var_r30].unk_1D4 = 0.0f; + lbl_1_bss_0[var_r30].unk_1D8 = -1; + lbl_1_bss_0[var_r30].unk_1DC = 0.0f; + } + Hu3DCameraCreate(3); + Hu3DCameraPerspectiveSet(3, 20.0f, 20.0f, 20000.0f, 0.6f); + fn_1_12EA8(); + for (var_r29 = lbl_1_data_A8, var_r30 = 0; var_r30 < 2; var_r30++, var_r29 += 4) { + Hu3DCameraViewportSet(lbl_1_data_A0[var_r30], var_r29[0], var_r29[1], var_r29[2], var_r29[3], 0.0f, 1.0f); + Hu3DCameraScissorSet(lbl_1_data_A0[var_r30], var_r29[0], var_r29[1], var_r29[2], var_r29[3]); + } + var_r20 = Hu3DGLightCreateV(&lbl_1_data_D4, &lbl_1_data_E0, &lbl_1_data_EC); + Hu3DGLightStaticSet(var_r20, 0); + Hu3DGLightInfinitytSet(var_r20); + Hu3DShadowCreate(30.0f, 20.0f, 20000.0f); + Hu3DShadowTPLvlSet(0.5f); + VECNormalize(&lbl_1_data_F0, &sp8); + Hu3DShadowPosSet(&lbl_1_data_F0, &sp8, &lbl_1_data_FC); + fn_1_2C00(fn_1_AA00, 0.0f); + omMakeGroupEx(lbl_1_bss_5B4, 2, 4); + lbl_1_bss_410 = omGetGroupMemberListEx(lbl_1_bss_5B4, 2); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r27 = omAddObjEx(lbl_1_bss_5B4, 0x68, 1, 0xB, 2, fn_1_10CCC); + var_r27->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM432DllStruct), MEMORY_DEFAULT_NUM); + var_r27->work[0] = var_r30; + var_r28 = var_r27->data; + var_r28->unk_184 = -1; + var_r28->unk_188 = var_r27->work[0]; + var_r28->unk_194 = GWPlayerCfg[var_r28->unk_188].group; + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r22 = -1; + var_r21 = 0x28; + for (var_r26 = 0; var_r26 < 4; var_r26++) { + var_r28 = lbl_1_bss_410[var_r26]->data; + if (var_r28->unk_184 < 0) { + var_r23 = var_r28->unk_188 + (var_r28->unk_194 * 4); + if (var_r21 > var_r23) { + var_r21 = var_r23; + var_r22 = var_r26; + } + } + } + ((UnkM432DllStruct *)lbl_1_bss_410[var_r22]->data)->unk_184 = var_r30; + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + lbl_1_bss_0[var_r30].unk_04 = omAddObjEx(lbl_1_bss_5B4, 0x64, 0x1A, 0, 0, fn_1_113F4); + lbl_1_bss_0[var_r30].unk_04->work[0] = var_r30; + lbl_1_bss_0[var_r30].unk_00 = omAddObjEx(lbl_1_bss_5B4, 0x65, 1, 0, 1, fn_1_12804); + lbl_1_bss_0[var_r30].unk_00->work[0] = var_r30; + MapObject[nMap++] = lbl_1_bss_0[var_r30].unk_00; + } + fn_1_150(); + lbl_1_bss_408 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M432, 0x28)); + HuSprAnimLock(lbl_1_bss_408); + lbl_1_bss_404 = Hu3DParManCreate(lbl_1_bss_408, 0x1F4, &lbl_1_data_1814); + Hu3DParManAttrSet(lbl_1_bss_404, 1); + lbl_1_bss_402 = 0; + fn_1_0(); + omMakeGroupEx(lbl_1_bss_5B4, 3, 0xF0); + lbl_1_bss_418 = omGetGroupMemberListEx(lbl_1_bss_5B4, 3); + lbl_1_bss_400 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M432, 0x09)); + Hu3DModelAttrSet(lbl_1_bss_400, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_400, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); + lbl_1_bss_414 = omAddObjEx(lbl_1_bss_5B4, 0x66, 0, 0, -1, fn_1_128C8); + lbl_1_bss_41C = omAddObjEx(lbl_1_bss_5B4, 0x69, 0x1A, 0, -1, fn_1_15320); + lbl_1_bss_41C->work[0] = 0x3E8; +} + +void fn_1_1615C(omObjData *arg0) +{ + s32 var_r31; + + if (lbl_1_bss_3F4 >= 0) { + lbl_1_bss_3F4 = -1; + HuAudFXStop(lbl_1_bss_3F4); + } + if (WipeStatGet() == 0) { + if (lbl_1_bss_576 >= 0) { + MGSeqKill(lbl_1_bss_576); + } + if (lbl_1_bss_574 >= 0) { + MGSeqKill(lbl_1_bss_574); + } + MGSeqKillAll(); + HuAudAllStop(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + CharModelKill(lbl_1_data_0[GWPlayerCfg[var_r31].character]); + } + omOvlReturnEx(1, 1); + } +} From 200d51a1b29182ec5bce46adf0e9894a44428b17 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 10 Nov 2024 06:57:04 +0100 Subject: [PATCH 107/311] Removed rel_sqrt_consts.h completely --- include/rel_sqrt_consts.h | 5 - src/REL/E3setupDLL/mgselect.c | 1 - src/REL/instDll/main.c | 2 - src/REL/m401Dll/main.c | 2 - src/REL/m402Dll/main.c | 1 - src/REL/m403Dll/main.c | 1 - src/REL/m404Dll/main.c | 2 +- src/REL/m405Dll/main.c | 1 - src/REL/m406Dll/main.c | 1 - src/REL/m407dll/player.c | 2 - src/REL/m408Dll/main.c | 2 - src/REL/m409Dll/main.c | 1 - src/REL/m410Dll/main.c | 118 ++-- src/REL/m411Dll/main.c | 1 - src/REL/m412Dll/main.c | 1 - src/REL/m413Dll/main.c | 2 - src/REL/m414Dll/main.c | 1 - src/REL/m415Dll/main.c | 1 - src/REL/m416Dll/main.c | 2 - src/REL/m417Dll/main.c | 1 - src/REL/m420dll/main.c | 1 - src/REL/m426Dll/main.c | 1 - src/REL/m429Dll/main.c | 1 - src/REL/m431Dll/main.c | 2 - src/REL/m434Dll/main.c | 3 - src/REL/m436Dll/main.c | 1116 ++++++++++++++++++--------------- src/REL/m438Dll/main.c | 1 - src/REL/m439Dll/main.c | 2 - src/REL/m440Dll/main.c | 2 +- src/REL/m441Dll/main.c | 1 - src/REL/m442Dll/main.c | 1 - src/REL/m443Dll/main.c | 2 +- src/REL/m444dll/main.c | 2 - src/REL/m445Dll/main.c | 1 - src/REL/m448Dll/main.c | 1 - src/REL/m450Dll/main.c | 1 - src/REL/m451Dll/m451.c | 2 - src/REL/m453Dll/main.c | 2 +- src/REL/m455Dll/main.c | 354 +++++------ src/REL/m461Dll/main.c | 1 - src/REL/mentDll/common.c | 3 - src/REL/messDll/main.c | 123 ++-- src/REL/mgmodedll/mgmode.c | 1 - src/REL/modeseldll/main.c | 575 ++++++++--------- src/REL/mpexDll/main.c | 1 - src/REL/resultDll/main.c | 1 - src/REL/ztardll/main.c | 1 - 47 files changed, 1178 insertions(+), 1172 deletions(-) delete mode 100644 include/rel_sqrt_consts.h diff --git a/include/rel_sqrt_consts.h b/include/rel_sqrt_consts.h deleted file mode 100644 index fd06a9e9..00000000 --- a/include/rel_sqrt_consts.h +++ /dev/null @@ -1,5 +0,0 @@ -#ifndef _REL_SQRT_CONSTS -#define _REL_SQRT_CONSTS - - -#endif diff --git a/src/REL/E3setupDLL/mgselect.c b/src/REL/E3setupDLL/mgselect.c index ece67721..5dbd89eb 100644 --- a/src/REL/E3setupDLL/mgselect.c +++ b/src/REL/E3setupDLL/mgselect.c @@ -6,7 +6,6 @@ #include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" #include "REL/E3SetupDLL.h" diff --git a/src/REL/instDll/main.c b/src/REL/instDll/main.c index 2853c63e..3dbcc0a4 100644 --- a/src/REL/instDll/main.c +++ b/src/REL/instDll/main.c @@ -21,8 +21,6 @@ #include "ext_math.h" #include "math.h" -#include "rel_sqrt_consts.h" - #include "REL/instDll.h" static s16 lbl_1_data_0 = 1; diff --git a/src/REL/m401Dll/main.c b/src/REL/m401Dll/main.c index 14147e35..cb02264e 100644 --- a/src/REL/m401Dll/main.c +++ b/src/REL/m401Dll/main.c @@ -17,8 +17,6 @@ #include "ext_math.h" #include "math.h" -#include "rel_sqrt_consts.h" - float lbl_2_data_0 = -7.1875f; s16 lbl_2_data_4[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; diff --git a/src/REL/m402Dll/main.c b/src/REL/m402Dll/main.c index 3e3aadbd..59f189c3 100755 --- a/src/REL/m402Dll/main.c +++ b/src/REL/m402Dll/main.c @@ -22,7 +22,6 @@ #include "dolphin.h" #include "ext_math.h" -#include "rel_sqrt_consts.h" #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) diff --git a/src/REL/m403Dll/main.c b/src/REL/m403Dll/main.c index d0f9003a..a1e3fc91 100755 --- a/src/REL/m403Dll/main.c +++ b/src/REL/m403Dll/main.c @@ -17,7 +17,6 @@ #include "game/wipe.h" #include "ext_math.h" -#include "rel_sqrt_consts.h" typedef struct { /* 0x000 */ u8 unk00; diff --git a/src/REL/m404Dll/main.c b/src/REL/m404Dll/main.c index 63011f56..6b790aee 100644 --- a/src/REL/m404Dll/main.c +++ b/src/REL/m404Dll/main.c @@ -10,7 +10,7 @@ #include "game/pad.h" #include "game/sprite.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" + #include "string.h" typedef struct UnkM404Struct { diff --git a/src/REL/m405Dll/main.c b/src/REL/m405Dll/main.c index f13da739..0c999c19 100755 --- a/src/REL/m405Dll/main.c +++ b/src/REL/m405Dll/main.c @@ -22,7 +22,6 @@ #include "dolphin.h" #include "ext_math.h" -#include "rel_sqrt_consts.h" #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) diff --git a/src/REL/m406Dll/main.c b/src/REL/m406Dll/main.c index 6d70cd61..8642d951 100644 --- a/src/REL/m406Dll/main.c +++ b/src/REL/m406Dll/main.c @@ -5,7 +5,6 @@ #include "game/hsfdraw.h" #include "game/minigame_seq.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" #include "REL/m406Dll.h" diff --git a/src/REL/m407dll/player.c b/src/REL/m407dll/player.c index 394f2885..395fb157 100644 --- a/src/REL/m407dll/player.c +++ b/src/REL/m407dll/player.c @@ -8,8 +8,6 @@ #include "game/process.h" #include "math.h" -#include "rel_sqrt_consts.h" - #define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) typedef void (*ObjFuncs)(omObjData *); diff --git a/src/REL/m408Dll/main.c b/src/REL/m408Dll/main.c index 32571be7..38ab51b1 100644 --- a/src/REL/m408Dll/main.c +++ b/src/REL/m408Dll/main.c @@ -19,8 +19,6 @@ #include "ext_math.h" #include "math.h" -#include "rel_sqrt_consts.h" - s32 lbl_1_data_0[] = { DATA_MAKE_NUM(DATADIR_MGCONST, 0x00), DATA_MAKE_NUM(DATADIR_MGCONST, 0x01), diff --git a/src/REL/m409Dll/main.c b/src/REL/m409Dll/main.c index e41a1130..5071127d 100644 --- a/src/REL/m409Dll/main.c +++ b/src/REL/m409Dll/main.c @@ -11,7 +11,6 @@ #include "game/sprite.h" #include "game/wipe.h" #include "math.h" -#include "rel_sqrt_consts.h" // bss Process *lbl_1_bss_E8; diff --git a/src/REL/m410Dll/main.c b/src/REL/m410Dll/main.c index 5b234c7b..42506076 100644 --- a/src/REL/m410Dll/main.c +++ b/src/REL/m410Dll/main.c @@ -5,7 +5,6 @@ #include "game/minigame_seq.h" #include "game/object.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" #include "REL/m410Dll.h" @@ -158,37 +157,36 @@ void fn_1_63C(omObjData *object) return; } switch (var_r31->unk_00) { - case 0: - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - Hu3DCameraPerspectiveSet(1, 41.5f, 5.0f, 5000.0f, 1.2f); - var_r31->unk_00 = 1; - var_r31->unk_10 = 0; - object->func = fn_1_19C8(lbl_1_bss_28, object); - break; - case 1: - var_r31->unk_00 = 2; - var_r31->unk_18 = 0; - object->func = fn_1_FF0; - break; - case 2: - var_r31->unk_00 = 3; - var_r31->unk_28 = 0; - object->func = fn_1_216C(lbl_1_bss_28, object); - break; - case 3: - case 4: - var_r31->unk_08 = 1; - var_r31->unk_00 = 5; - object->func = fn_1_ABC; - break; - case 5: - default: - var_r31->unk_00 = 5; - object->func = fn_1_DEC; - break; + case 0: + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + Hu3DCameraPerspectiveSet(1, 41.5f, 5.0f, 5000.0f, 1.2f); + var_r31->unk_00 = 1; + var_r31->unk_10 = 0; + object->func = fn_1_19C8(lbl_1_bss_28, object); + break; + case 1: + var_r31->unk_00 = 2; + var_r31->unk_18 = 0; + object->func = fn_1_FF0; + break; + case 2: + var_r31->unk_00 = 3; + var_r31->unk_28 = 0; + object->func = fn_1_216C(lbl_1_bss_28, object); + break; + case 3: + case 4: + var_r31->unk_08 = 1; + var_r31->unk_00 = 5; + object->func = fn_1_ABC; + break; + case 5: + default: + var_r31->unk_00 = 5; + object->func = fn_1_DEC; + break; } var_r31->unk_04 = 0; - } void fn_1_7A8(omObjData *object) @@ -233,38 +231,36 @@ void fn_1_FF0(omObjData *object) fn_1_5A8(object); switch (var_r29->unk_14) { - case 0: - var_r29->unk_1C = 30; - var_r29->unk_20 = 60; - lbl_1_bss_14 = MGSeqCreate(3, 0); - MGSeqPosSet(lbl_1_bss_14, 320.0f, 240.0f); - CRot.x = -11.2f; - CRot.y = CRot.z = 0.0f; - Center.x = 0.0f; - Center.y = 367.0f; - Center.z = 252.0f; - CZoom = 592.0f; - var_r29->unk_14 = 1; - var_r29->unk_18 = 0; - break; - - case 1: - if (lbl_1_bss_4 < 0 && MGSeqStatGet(lbl_1_bss_14) & 16) { - lbl_1_bss_4 = HuAudSeqPlay(71); - } - if (!MGSeqStatGet(lbl_1_bss_14) && !var_r29->unk_08) { - lbl_1_bss_1C = MGSeqCreate(1, var_r29->unk_1C, -1, -1); - var_r29->unk_14 = 2; - var_r29->unk_18 = 0; - object->func = fn_1_139C; - } - break; - - default: - break; - } + case 0: + var_r29->unk_1C = 30; + var_r29->unk_20 = 60; + lbl_1_bss_14 = MGSeqCreate(3, 0); + MGSeqPosSet(lbl_1_bss_14, 320.0f, 240.0f); + CRot.x = -11.2f; + CRot.y = CRot.z = 0.0f; + Center.x = 0.0f; + Center.y = 367.0f; + Center.z = 252.0f; + CZoom = 592.0f; + var_r29->unk_14 = 1; + var_r29->unk_18 = 0; + break; - + case 1: + if (lbl_1_bss_4 < 0 && MGSeqStatGet(lbl_1_bss_14) & 16) { + lbl_1_bss_4 = HuAudSeqPlay(71); + } + if (!MGSeqStatGet(lbl_1_bss_14) && !var_r29->unk_08) { + lbl_1_bss_1C = MGSeqCreate(1, var_r29->unk_1C, -1, -1); + var_r29->unk_14 = 2; + var_r29->unk_18 = 0; + object->func = fn_1_139C; + } + break; + + default: + break; + } } void fn_1_139C(omObjData *object) diff --git a/src/REL/m411Dll/main.c b/src/REL/m411Dll/main.c index dd110cb4..d4a6acef 100755 --- a/src/REL/m411Dll/main.c +++ b/src/REL/m411Dll/main.c @@ -18,7 +18,6 @@ #include "dolphin.h" #include "ext_math.h" -#include "rel_sqrt_consts.h" typedef struct { /* 0x00 */ s16 unk00; diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c index 05a6ac98..1cad6746 100644 --- a/src/REL/m412Dll/main.c +++ b/src/REL/m412Dll/main.c @@ -12,7 +12,6 @@ #include "game/sprite.h" #include "game/wipe.h" #include "math.h" -#include "rel_sqrt_consts.h" // bss s16 lbl_1_bss_7A0; diff --git a/src/REL/m413Dll/main.c b/src/REL/m413Dll/main.c index 7ae0c7e6..ee218503 100644 --- a/src/REL/m413Dll/main.c +++ b/src/REL/m413Dll/main.c @@ -14,8 +14,6 @@ #include "ext_math.h" -#include "rel_sqrt_consts.h" - typedef struct struct_bss_2A6C StructBss2A6C; typedef struct struct_sp_14C8 StructSp14C8; diff --git a/src/REL/m414Dll/main.c b/src/REL/m414Dll/main.c index 8e6cad03..1268cdad 100644 --- a/src/REL/m414Dll/main.c +++ b/src/REL/m414Dll/main.c @@ -9,7 +9,6 @@ #include "game/pad.h" #include "game/sprite.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" typedef struct UnkM414Struct { s32 unk00; diff --git a/src/REL/m415Dll/main.c b/src/REL/m415Dll/main.c index cb5bdac7..971724b5 100644 --- a/src/REL/m415Dll/main.c +++ b/src/REL/m415Dll/main.c @@ -15,7 +15,6 @@ #include "game/sprite.h" #include "game/wipe.h" #include "math.h" -#include "rel_sqrt_consts.h" // bss unkStruct5 lbl_1_bss_36C; diff --git a/src/REL/m416Dll/main.c b/src/REL/m416Dll/main.c index 591b8b64..33fe0518 100644 --- a/src/REL/m416Dll/main.c +++ b/src/REL/m416Dll/main.c @@ -17,8 +17,6 @@ #include "REL/m416Dll.h" -#include "rel_sqrt_consts.h" - typedef struct camera_view_params { float zoom; Vec pos; diff --git a/src/REL/m417Dll/main.c b/src/REL/m417Dll/main.c index 3a5b2aff..02a55063 100644 --- a/src/REL/m417Dll/main.c +++ b/src/REL/m417Dll/main.c @@ -3,7 +3,6 @@ #include "game/hsfdraw.h" #include "game/minigame_seq.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" #include "REL/m417Dll.h" diff --git a/src/REL/m420dll/main.c b/src/REL/m420dll/main.c index c5fe048e..18f5b3ea 100644 --- a/src/REL/m420dll/main.c +++ b/src/REL/m420dll/main.c @@ -7,7 +7,6 @@ #include "game/pad.h" #include "game/printfunc.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" #include "REL/m420dll.h" diff --git a/src/REL/m426Dll/main.c b/src/REL/m426Dll/main.c index 8cd93019..d9864fb5 100644 --- a/src/REL/m426Dll/main.c +++ b/src/REL/m426Dll/main.c @@ -10,7 +10,6 @@ #include "game/pad.h" #include "game/sprite.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" typedef struct UnkM426Struct { /* 0x00 */ s32 unk_00; diff --git a/src/REL/m429Dll/main.c b/src/REL/m429Dll/main.c index c995e66a..7c2aa9be 100644 --- a/src/REL/m429Dll/main.c +++ b/src/REL/m429Dll/main.c @@ -21,7 +21,6 @@ #include "game/sprite.h" #include "ext_math.h" -#include "rel_sqrt_consts.h" #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) diff --git a/src/REL/m431Dll/main.c b/src/REL/m431Dll/main.c index 3d3f65f2..9ef89c53 100644 --- a/src/REL/m431Dll/main.c +++ b/src/REL/m431Dll/main.c @@ -16,8 +16,6 @@ #include "REL/m431Dll.h" -#include "rel_sqrt_consts.h" - typedef struct bss_5C_struct { s16 unk0[6]; s16 unkC[2]; diff --git a/src/REL/m434Dll/main.c b/src/REL/m434Dll/main.c index e0fcf2ac..733df325 100644 --- a/src/REL/m434Dll/main.c +++ b/src/REL/m434Dll/main.c @@ -6,15 +6,12 @@ #include "game/sprite.h" #include "game/wipe.h" - #include "REL/m434Dll.h" #include "ext_math.h" #include "game/gamework_data.h" #include "game/minigame_seq.h" #include "math.h" -#include "rel_sqrt_consts.h" - typedef struct camera_view { float zoom; Vec pos; diff --git a/src/REL/m436Dll/main.c b/src/REL/m436Dll/main.c index 4e2523c2..c7a806b9 100755 --- a/src/REL/m436Dll/main.c +++ b/src/REL/m436Dll/main.c @@ -14,10 +14,9 @@ #include "game/wipe.h" #include "ext_math.h" -#include "rel_sqrt_consts.h" typedef struct { - /* 0x00 */ omObjData* unk00; + /* 0x00 */ omObjData *unk00; /* 0x04 */ s32 unk04; /* 0x08 */ s32 unk08; /* 0x0C */ s32 unk0C; @@ -47,18 +46,18 @@ typedef struct { } StructBss234; // Size 0xF8 typedef struct { - /* 0x00 */ omObjData* unk00; + /* 0x00 */ omObjData *unk00; /* 0x04 */ s32 unk04; /* 0x08 */ char unk08[0xC]; } StructBss220; // Size 0x14 typedef struct { - /* 0x00 */ omObjData* unk00; + /* 0x00 */ omObjData *unk00; /* 0x04 */ Vec unk04[8]; } StructBss1BC; // Size 0x64 typedef struct { - /* 0x00 */ omObjData* unk00; + /* 0x00 */ omObjData *unk00; /* 0x04 */ s32 unk04; /* 0x08 */ float unk08[6]; /* 0x20 */ char unk20[8]; @@ -73,12 +72,12 @@ typedef struct { } StructBssD8; // Size 0xA8 typedef struct { - /* 0x00 */ omObjData* unk00; + /* 0x00 */ omObjData *unk00; /* 0x04 */ char unk04[0x10]; } StructBss1A8; // Size 0x14 typedef struct { - /* 0x00 */ omObjData* unk00; + /* 0x00 */ omObjData *unk00; /* 0x04 */ char unk04[0x10]; } StructBss180; // Size 0x14 @@ -115,46 +114,24 @@ s32 lbl_1_bss_10; s32 lbl_1_bss_C; s32 lbl_1_bss_8; s32 lbl_1_bss_4; -Process* lbl_1_bss_0; +Process *lbl_1_bss_0; -s32 lbl_1_data_0[] = { - DATA_MAKE_NUM(DATADIR_M436, 13), - DATA_MAKE_NUM(DATADIR_M436, 14), - DATA_MAKE_NUM(DATADIR_M436, 15), - DATA_MAKE_NUM(DATADIR_M436, 16), - DATA_MAKE_NUM(DATADIR_M436, 17), - DATA_MAKE_NUM(DATADIR_M436, 18), - DATA_MAKE_NUM(DATADIR_M436, 19), - DATA_MAKE_NUM(DATADIR_M436, 20) -}; +s32 lbl_1_data_0[] + = { DATA_MAKE_NUM(DATADIR_M436, 13), DATA_MAKE_NUM(DATADIR_M436, 14), DATA_MAKE_NUM(DATADIR_M436, 15), DATA_MAKE_NUM(DATADIR_M436, 16), + DATA_MAKE_NUM(DATADIR_M436, 17), DATA_MAKE_NUM(DATADIR_M436, 18), DATA_MAKE_NUM(DATADIR_M436, 19), DATA_MAKE_NUM(DATADIR_M436, 20) }; -s32 lbl_1_data_20[] = { - MAKE_MESSID(29, 23), - MAKE_MESSID(29, 24), - MAKE_MESSID(29, 30), - MAKE_MESSID(29, 26), - MAKE_MESSID(29, 28), - MAKE_MESSID(29, 27), - MAKE_MESSID(29, 25), - MAKE_MESSID(29, 29) -}; +s32 lbl_1_data_20[] = { MAKE_MESSID(29, 23), MAKE_MESSID(29, 24), MAKE_MESSID(29, 30), MAKE_MESSID(29, 26), MAKE_MESSID(29, 28), MAKE_MESSID(29, 27), + MAKE_MESSID(29, 25), MAKE_MESSID(29, 29) }; -s32 lbl_1_data_40[][5] = { - { 91, 105, 126, 141, -1 }, - { 91, 105, 126, 141, -1 }, - { 124, 137, -1, -1, -1 }, - { 85, 100, 127, -1, -1 }, - { 124, 139, -1, -1, -1 }, - { 85, 97, 127, 139, -1 }, - { 127, 137, -1, -1, -1 }, - { 79, 95, 109, 127, -1 } -}; +s32 lbl_1_data_40[][5] = { { 91, 105, 126, 141, -1 }, { 91, 105, 126, 141, -1 }, { 124, 137, -1, -1, -1 }, { 85, 100, 127, -1, -1 }, + { 124, 139, -1, -1, -1 }, { 85, 97, 127, 139, -1 }, { 127, 137, -1, -1, -1 }, { 79, 95, 109, 127, -1 } }; s32 lbl_1_data_E0 = -1; s32 lbl_1_data_E4 = -1; s32 lbl_1_data_E8 = -1; -void fn_1_0(void) { +void fn_1_0(void) +{ s32 i; while (TRUE) { @@ -172,21 +149,24 @@ void fn_1_0(void) { } } -void fn_1_1A8(void) { +void fn_1_1A8(void) +{ s32 var_r31; var_r31 = Hu3DGLightCreate(0.0f, 1000.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0xFF, 0xFF, 0xFF); Hu3DGLightInfinitytSet(var_r31); } -void fn_1_230(void) { - StructBss32C* var_r31; +void fn_1_230(void) +{ + StructBss32C *var_r31; var_r31 = &lbl_1_bss_32C; if (HuPadBtn[0] & 0x200) { if (HuPadBtn[0] & 0x100) { var_r31->unk0C -= HuPadStkY[0] / 10.0f; - } else { + } + else { var_r31->unk04 += HuPadStkX[0] / 10.0f; var_r31->unk08 += HuPadStkY[0] / 10.0f; } @@ -216,24 +196,28 @@ void fn_1_230(void) { print8(16, 130, 1.0f, "ZOOM : %.2f", var_r31->unk34); } -void fn_1_614(s32 arg0, s32 arg1, float arg2) { - StructBss32C* var_r31; +void fn_1_614(s32 arg0, s32 arg1, float arg2) +{ + StructBss32C *var_r31; var_r31 = &lbl_1_bss_32C; var_r31->unk40[arg0] = arg1; if (var_r31->unk5C[arg0] < 0.0f) { var_r31->unk5C[arg0] = -arg2; - } else { + } + else { var_r31->unk5C[arg0] = arg2; } } -void fn_1_67C(s32 arg0, float arg1) { +void fn_1_67C(s32 arg0, float arg1) +{ fn_1_614(arg0, -1, arg1); } -float fn_1_6E8(s32 arg0) { - StructBss32C* var_r31; +float fn_1_6E8(s32 arg0) +{ + StructBss32C *var_r31; var_r31 = &lbl_1_bss_32C; if (var_r31->unk5C[arg0] != 0.0f) { @@ -242,7 +226,8 @@ float fn_1_6E8(s32 arg0) { if (var_r31->unk5C[arg0] >= -0.5f && var_r31->unk5C[arg0] <= 0.5f) { var_r31->unk5C[arg0] = 0.0f; } - } else { + } + else { var_r31->unk40[arg0]--; if (var_r31->unk40[arg0] <= 0) { var_r31->unk40[arg0] = 0; @@ -253,8 +238,9 @@ float fn_1_6E8(s32 arg0) { return var_r31->unk5C[arg0]; } -void fn_1_818(void) { - StructBss32C* var_r31; +void fn_1_818(void) +{ + StructBss32C *var_r31; var_r31 = &lbl_1_bss_32C; var_r31->unk04 = 0.0f; @@ -266,15 +252,17 @@ void fn_1_818(void) { var_r31->unk34 = 300.0f; } -void fn_1_8A4(void (*arg0)(void)) { - StructBss32C* var_r31; +void fn_1_8A4(void (*arg0)(void)) +{ + StructBss32C *var_r31; var_r31 = &lbl_1_bss_32C; var_r31->unk00 = arg0; } -void fn_1_8C4(omObjData* arg0) { - StructBss32C* var_r31; +void fn_1_8C4(omObjData *arg0) +{ + StructBss32C *var_r31; var_r31 = &lbl_1_bss_32C; if (var_r31->unk00 != NULL) { @@ -289,7 +277,8 @@ void fn_1_8C4(omObjData* arg0) { CZoom = var_r31->unk34 + fn_1_6E8(6); } -void fn_1_F6C(void) { +void fn_1_F6C(void) +{ Hu3DCameraCreate(1); Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); Hu3DCameraPerspectiveSet(1, 45.0f, 0.1f, 10000.0f, 1.2f); @@ -298,7 +287,8 @@ void fn_1_F6C(void) { omAddObjEx(lbl_1_bss_0, 0x7FD9, 0, 0, -1, fn_1_8C4); } -void fn_1_1084(void) { +void fn_1_1084(void) +{ Vec sp20 = { 0.0f, 2500.0f, 1.0f }; Vec sp14 = { 0.0f, 0.0f, 0.0f }; Vec sp8 = { 0.0f, 1.0f, 0.0f }; @@ -308,8 +298,9 @@ void fn_1_1084(void) { Hu3DShadowPosSet(&sp20, &sp8, &sp14); } -void fn_1_1148(s32 arg0, float arg1, float arg2, s32 arg3) { - WindowData* temp_r29; +void fn_1_1148(s32 arg0, float arg1, float arg2, s32 arg3) +{ + WindowData *temp_r29; float temp_f29; float temp_f28; float temp_f25; @@ -333,10 +324,12 @@ void fn_1_1148(s32 arg0, float arg1, float arg2, s32 arg3) { temp_f27 = 4.0f / temp_f25; if (var_f31 + 4.0f - (temp_f29 + temp_f25) >= 0.0f) { var_f31 = temp_f29 + temp_f25 - 4.0f; - } else { + } + else { if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { var_f31 = temp_f29; - } else { + } + else { var_f31 -= 2.0f; } } @@ -344,10 +337,12 @@ void fn_1_1148(s32 arg0, float arg1, float arg2, s32 arg3) { temp_f26 = 4.0f / temp_f24; if (var_f30 + 4.0f - (temp_f28 + temp_f24) >= 0.0f) { var_f30 = temp_f28 + temp_f24 - 4.0f; - } else { + } + else { if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { var_f30 = temp_f28; - } else { + } + else { var_f30 -= 2.0f; } } @@ -358,7 +353,8 @@ void fn_1_1148(s32 arg0, float arg1, float arg2, s32 arg3) { var_f21 = temp_f27; var_f22 = var_f30; var_f20 = temp_f26; - } else { + } + else { HuWinPosSet(arg0, temp_f29, temp_f28); HuWinScaleSet(arg0, 1.0f, 1.0f); var_f23 = temp_f29; @@ -373,15 +369,18 @@ void fn_1_1148(s32 arg0, float arg1, float arg2, s32 arg3) { if (i <= 10) { var_f23 = fn_1_11164(var_f31, temp_f29, i, 10.0f); var_f21 = fn_1_11164(temp_f27, 1.0f, i, 10.0f); - } else { + } + else { var_f22 = fn_1_11164(var_f30, temp_f28, i - 10, 5.0f); var_f20 = fn_1_11164(temp_f26, 1.0f, i - 10, 5.0f); } - } else { + } + else { if (i <= 10) { var_f22 = fn_1_11164(temp_f28, var_f30, i, 10.0f); var_f20 = fn_1_11164(1.0f, temp_f26, i, 10.0f); - } else { + } + else { var_f23 = fn_1_11164(temp_f29, var_f31, i - 10, 5.0f); var_f21 = fn_1_11164(1.0f, temp_f27, i - 10, 5.0f); } @@ -392,19 +391,22 @@ void fn_1_1148(s32 arg0, float arg1, float arg2, s32 arg3) { if (arg3 != 0) { HuWinPosSet(arg0, temp_f29, temp_f28); HuWinScaleSet(arg0, 1.0f, 1.0f); - } else { + } + else { HuWinPosSet(arg0, var_f31, var_f30); HuWinScaleSet(arg0, temp_f27, temp_f26); } HuPrcVSleep(); } -void fn_1_178C(void) { +void fn_1_178C(void) +{ HuWinInit(1); } -void fn_1_17B0(s32 arg0, float arg1, float arg2) { - WindowData* temp_r31; +void fn_1_17B0(s32 arg0, float arg1, float arg2) +{ + WindowData *temp_r31; float temp_f29; float temp_f28; float temp_f27; @@ -428,10 +430,12 @@ void fn_1_17B0(s32 arg0, float arg1, float arg2) { temp_f25 = 4.0f / temp_f27; if (var_f31 + 4.0f - (temp_f29 + temp_f27) >= 0.0f) { var_f31 = temp_f29 + temp_f27 - 4.0f; - } else { + } + else { if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { var_f31 = temp_f29; - } else { + } + else { var_f31 = var_f31 - 2.0f; } } @@ -439,10 +443,12 @@ void fn_1_17B0(s32 arg0, float arg1, float arg2) { temp_f24 = 4.0f / temp_f26; if (var_f30 + 4.0f - (temp_f28 + temp_f26) >= 0.0f) { var_f30 = temp_f28 + temp_f26 - 4.0f; - } else { + } + else { if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { var_f30 = temp_f28; - } else { + } + else { var_f30 = var_f30 - 2.0f; } } @@ -463,8 +469,9 @@ void fn_1_17B0(s32 arg0, float arg1, float arg2) { HuPrcVSleep(); } -void fn_1_1C08(s32 arg0, float arg1, float arg2) { - WindowData* temp_r31; +void fn_1_1C08(s32 arg0, float arg1, float arg2) +{ + WindowData *temp_r31; float temp_f29; float temp_f28; float temp_f27; @@ -488,10 +495,12 @@ void fn_1_1C08(s32 arg0, float arg1, float arg2) { temp_f25 = 4.0f / temp_f27; if (var_f31 + 4.0f - (temp_f29 + temp_f27) >= 0.0f) { var_f31 = temp_f29 + temp_f27 - 4.0f; - } else { + } + else { if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { var_f31 = temp_f29; - } else { + } + else { var_f31 = var_f31 - 2.0f; } } @@ -499,10 +508,12 @@ void fn_1_1C08(s32 arg0, float arg1, float arg2) { temp_f24 = 4.0f / temp_f26; if (var_f30 + 4.0f - (temp_f28 + temp_f26) >= 0.0f) { var_f30 = temp_f28 + temp_f26 - 4.0f; - } else { + } + else { if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { var_f30 = temp_f28; - } else { + } + else { var_f30 = var_f30 - 2.0f; } } @@ -523,12 +534,9 @@ void fn_1_1C08(s32 arg0, float arg1, float arg2) { HuPrcVSleep(); } -s32 fn_1_2060(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s32 arg4) { - s32 sp20[][5] = { - { 0xFF, 0xFF, 0xCC, 0x00, 0x09 }, - { 0xCC, 0xFF, 0xFF, 0x00, 0x09 }, - { 0xFF, 0xCC, 0xFF, 0x00, 0x09 } - }; +s32 fn_1_2060(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s32 arg4) +{ + s32 sp20[][5] = { { 0xFF, 0xFF, 0xCC, 0x00, 0x09 }, { 0xCC, 0xFF, 0xFF, 0x00, 0x09 }, { 0xFF, 0xCC, 0xFF, 0x00, 0x09 } }; float sp14[] = { 0.9f, 0.9f, 0.9f }; GXColor sp10; s32 temp_r31; @@ -543,22 +551,26 @@ s32 fn_1_2060(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s32 arg4) { return temp_r31; } -s32 fn_1_2230(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s32 arg4) { +s32 fn_1_2230(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s32 arg4) +{ return fn_1_2060(arg0, arg1, arg2, arg3, arg4); } -void fn_1_2400(s32 arg0) { +void fn_1_2400(s32 arg0) +{ HuWinMesSet(arg0, MAKE_MESSID(29, 22)); HuPrcVSleep(); fn_1_1148(arg0, 0.5f, 0.5f, 0); HuWinKill(arg0); } -void fn_1_2468(s32 arg0) { +void fn_1_2468(s32 arg0) +{ fn_1_2400(arg0); } -void fn_1_24D0(s32 arg0, s32 arg1) { +void fn_1_24D0(s32 arg0, s32 arg1) +{ s32 i; s32 var_r30; s32 temp_r28; @@ -584,7 +596,8 @@ void fn_1_24D0(s32 arg0, s32 arg1) { HuWinComKeyReset(); } -void fn_1_25B8(s32 arg0) { +void fn_1_25B8(s32 arg0) +{ s32 var_r31; s32 temp_r28; s32 i; @@ -605,13 +618,15 @@ void fn_1_25B8(s32 arg0) { var_r31 = HuWinChoiceGet(arg0, 1); if (var_r31 == -1 || var_r31 == 1) { lbl_1_bss_8 = 0; - } else { + } + else { lbl_1_bss_8 = 1; } HuWinComKeyReset(); } -void fn_1_26D4(float* arg0, s32 arg1) { +void fn_1_26D4(float *arg0, s32 arg1) +{ float spC[2]; HuWinMesMaxSizeGet(1, spC, arg1); @@ -623,29 +638,34 @@ void fn_1_26D4(float* arg0, s32 arg1) { } } -void fn_1_2744(s32 arg0, s32 arg1) { +void fn_1_2744(s32 arg0, s32 arg1) +{ winData[arg0].mess_color = 0; winData[arg0].mess_shadow_color = 9; winData[arg0].attr |= 0x80; HuWinMesSet(arg0, arg1); } -void fn_1_27C8(s32 arg0) { +void fn_1_27C8(s32 arg0) +{ if (lbl_1_bss_10 == 0) { lbl_1_bss_10 = 1; lbl_1_bss_C = arg0 * 60; } } -s32 fn_1_2800(void) { +s32 fn_1_2800(void) +{ if (lbl_1_bss_10 == 3) { return 1; - } else { + } + else { return 0; } } -void fn_1_2824(void) { +void fn_1_2824(void) +{ if (lbl_1_bss_10 == 2) { lbl_1_bss_10 = 3; lbl_1_bss_C = 30; @@ -654,7 +674,8 @@ void fn_1_2824(void) { s32 lbl_1_data_16C = -1; -void fn_1_285C(omObjData* arg0) { +void fn_1_285C(omObjData *arg0) +{ switch (lbl_1_bss_10) { case 1: if (lbl_1_data_16C == -1) { @@ -683,20 +704,22 @@ void fn_1_285C(omObjData* arg0) { } } -void fn_1_2A2C(void) { +void fn_1_2A2C(void) +{ lbl_1_bss_C = 0; lbl_1_bss_10 = 0; omAddObjEx(lbl_1_bss_0, 0x2000, 0, 0, -1, fn_1_285C); } -void fn_1_2A90(s32 arg0) { +void fn_1_2A90(s32 arg0) +{ float spC[2]; float temp_f31; float temp_f30; float temp_f28; float temp_f29; - WindowData* temp_r29; - StructBss234* var_r31; + WindowData *temp_r29; + StructBss234 *var_r31; s32 i; temp_r29 = &winData[arg0]; @@ -707,7 +730,8 @@ void fn_1_2A90(s32 arg0) { temp_f29 = temp_r29->w; for (i = 0; i < var_r31->unk00; i++) { HuWinMesMaxSizeGet(1, spC, lbl_1_data_20[var_r31->unk44[i]]); - var_r31->unk08[i] = HuWinCreate(temp_f31 + temp_f29 + 16.0f + var_r31->unk80[i][0], temp_f30 + 26.0f + var_r31->unk80[i][1], spC[0], spC[1], 1); + var_r31->unk08[i] + = HuWinCreate(temp_f31 + temp_f29 + 16.0f + var_r31->unk80[i][0], temp_f30 + 26.0f + var_r31->unk80[i][1], spC[0], spC[1], 1); winData[var_r31->unk08[i]].mess_shadow_color = 9; HuWinMesColSet(var_r31->unk08[i], 0); HuWinScissorSet(var_r31->unk08[i], temp_f31 + 20.0f, temp_f30, temp_f29 + 20.0f, temp_f28); @@ -719,14 +743,15 @@ void fn_1_2A90(s32 arg0) { HuPrcVSleep(); } -void fn_1_2D94(s32 arg0) { +void fn_1_2D94(s32 arg0) +{ float sp10[2]; float temp_f31; float temp_f29; float spC; float temp_f30; - WindowData* temp_r30; - StructBss234* var_r31; + WindowData *temp_r30; + StructBss234 *var_r31; s32 i; temp_r30 = &winData[arg0]; @@ -755,9 +780,10 @@ void fn_1_2D94(s32 arg0) { HuPrcVSleep(); } -void fn_1_3020(void) { +void fn_1_3020(void) +{ s32 i; - StructBss234* var_r30; + StructBss234 *var_r30; var_r30 = &lbl_1_bss_234; for (i = 0; i < var_r30->unk00; i++) { @@ -767,9 +793,10 @@ void fn_1_3020(void) { HuPrcVSleep(); } -void fn_1_3088(void) { +void fn_1_3088(void) +{ float sp8[2]; - StructBss234* var_r31; + StructBss234 *var_r31; s32 i; var_r31 = &lbl_1_bss_234; @@ -792,9 +819,10 @@ void fn_1_3088(void) { } } -void fn_1_31FC(omObjData* arg0) { - StructBss220* var_r29; - ModelData* temp_r30; +void fn_1_31FC(omObjData *arg0) +{ + StructBss220 *var_r29; + ModelData *temp_r30; s32 i; var_r29 = &lbl_1_bss_220; @@ -869,7 +897,8 @@ void fn_1_31FC(omObjData* arg0) { if (Hu3DMotionTimeGet(arg0->model[10]) >= 25.0f && var_r29->unk04 == 0) { var_r29->unk04 = 1; fn_1_614(1, 10, 4.0f); - } else if (Hu3DMotionTimeGet(arg0->model[10]) >= 40.0f && var_r29->unk04 == 1) { + } + else if (Hu3DMotionTimeGet(arg0->model[10]) >= 40.0f && var_r29->unk04 == 1) { var_r29->unk04 = 2; fn_1_614(1, 10, 4.0f); } @@ -891,7 +920,8 @@ void fn_1_31FC(omObjData* arg0) { } } -void fn_1_39B4(omObjData* arg0) { +void fn_1_39B4(omObjData *arg0) +{ fn_1_11818(arg0, 0, 0, 1, 2); Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, -680.0f); fn_1_11818(arg0, 1, 1, 1, 2); @@ -912,7 +942,8 @@ void fn_1_39B4(omObjData* arg0) { arg0->work[0] = arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; } -void fn_1_3BF0(omObjData* arg0) { +void fn_1_3BF0(omObjData *arg0) +{ arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 21)); arg0->motion[0] = Hu3DMotionIDGet(arg0->model[0]); Hu3DModelShadowMapSet(arg0->model[0]); @@ -973,7 +1004,8 @@ void fn_1_3BF0(omObjData* arg0) { arg0->func = fn_1_31FC; } -void fn_1_420C(omObjData* arg0) { +void fn_1_420C(omObjData *arg0) +{ s32 i; switch (arg0->work[0]) { @@ -993,8 +1025,9 @@ void fn_1_420C(omObjData* arg0) { } } -void fn_1_4304(omObjData* arg0) { - StructBss1BC* var_r30; +void fn_1_4304(omObjData *arg0) +{ + StructBss1BC *var_r30; s32 i; var_r30 = &lbl_1_bss_1BC; @@ -1015,8 +1048,9 @@ void fn_1_4304(omObjData* arg0) { arg0->work[0] = arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; } -void fn_1_4594(omObjData* arg0) { - StructBss1BC* var_r30; +void fn_1_4594(omObjData *arg0) +{ + StructBss1BC *var_r30; s32 i; var_r30 = &lbl_1_bss_1BC; @@ -1041,8 +1075,9 @@ void fn_1_4594(omObjData* arg0) { arg0->func = fn_1_420C; } -void fn_1_48AC(omObjData* arg0) { - StructBss1A8* sp8; +void fn_1_48AC(omObjData *arg0) +{ + StructBss1A8 *sp8; sp8 = &lbl_1_bss_1A8; switch (arg0->work[3]) { @@ -1074,7 +1109,8 @@ void fn_1_48AC(omObjData* arg0) { } } -void fn_1_49FC(omObjData* arg0) { +void fn_1_49FC(omObjData *arg0) +{ omSetTra(arg0, 0.0f, 37.0f, -565.0f); omSetSca(arg0, 1.5f, 1.5f, 1.5f); Hu3DModelHookReset(arg0->model[0]); @@ -1082,10 +1118,11 @@ void fn_1_49FC(omObjData* arg0) { arg0->work[0] = arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; } -void fn_1_4AB4(s32 arg0) { - ModelData* var_r28; - HsfData* temp_r31; - HsfMaterial* var_r30; +void fn_1_4AB4(s32 arg0) +{ + ModelData *var_r28; + HsfData *temp_r31; + HsfMaterial *var_r30; s32 i; var_r28 = &Hu3DData[arg0]; @@ -1096,8 +1133,9 @@ void fn_1_4AB4(s32 arg0) { } } -void fn_1_4B1C(omObjData* arg0) { - StructBss1A8* sp8; +void fn_1_4B1C(omObjData *arg0) +{ + StructBss1A8 *sp8; sp8 = &lbl_1_bss_1A8; arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 31)); @@ -1126,14 +1164,16 @@ void fn_1_4B1C(omObjData* arg0) { arg0->func = fn_1_48AC; } -void fn_1_4EA8(omObjData* arg0) { +void fn_1_4EA8(omObjData *arg0) +{ switch (arg0->work[3]) { case 1: arg0->work[3] = 0; if (arg0->work[0] == 0) { fn_1_11818(arg0, 0, 2, 5, 0); fn_1_11818(arg0, 1, 5, 5, 2); - } else { + } + else { fn_1_11818(arg0, 0, 3, 5, 0); } break; @@ -1142,14 +1182,16 @@ void fn_1_4EA8(omObjData* arg0) { if (arg0->work[0] == 0) { fn_1_11818(arg0, 0, 0, 30, 1); fn_1_11818(arg0, 1, 5, 30, 1); - } else { + } + else { fn_1_11818(arg0, 0, 0, 30, 1); } break; } } -void fn_1_4FB0(omObjData* arg0) { +void fn_1_4FB0(omObjData *arg0) +{ s32 temp_r30; temp_r30 = arg0->work[0]; @@ -1167,7 +1209,8 @@ void fn_1_4FB0(omObjData* arg0) { Hu3DModelLayerSet(arg0->model[1], 2); fn_1_11818(arg0, 0, 0, 1, 1); fn_1_11818(arg0, 1, 5, 1, 1); - } else { + } + else { arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 47)); arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 51)); arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M436, 52)); @@ -1184,15 +1227,17 @@ void fn_1_4FB0(omObjData* arg0) { arg0->func = fn_1_4EA8; } -s32 fn_1_538C(s32 arg0) { - StructBss3E4* temp_r31; +s32 fn_1_538C(s32 arg0) +{ + StructBss3E4 *temp_r31; temp_r31 = &lbl_1_bss_3E4[arg0]; return temp_r31->unk04; } -s32 fn_1_53B4(void) { - StructBss3E4* temp_r29; +s32 fn_1_53B4(void) +{ + StructBss3E4 *temp_r29; s32 var_r30; s32 i; @@ -1206,8 +1251,9 @@ s32 fn_1_53B4(void) { return var_r30; } -s32 fn_1_5414(s32 arg0) { - StructBss3E4* temp_r31; +s32 fn_1_5414(s32 arg0) +{ + StructBss3E4 *temp_r31; temp_r31 = &lbl_1_bss_3E4[arg0]; if (temp_r31->unk0C != 0) { @@ -1216,8 +1262,9 @@ s32 fn_1_5414(s32 arg0) { return 0; } -s32 fn_1_5450(s32 arg0) { - StructBss3E4* temp_r31; +s32 fn_1_5450(s32 arg0) +{ + StructBss3E4 *temp_r31; temp_r31 = &lbl_1_bss_3E4[arg0]; if (HuPadBtnDown[temp_r31->unk18] == 0x100) { @@ -1226,8 +1273,9 @@ s32 fn_1_5450(s32 arg0) { return 0; } -void fn_1_54A0(void) { - StructBss3E4* temp_r31; +void fn_1_54A0(void) +{ + StructBss3E4 *temp_r31; s32 sp8[4]; s32 i; @@ -1245,7 +1293,8 @@ void fn_1_54A0(void) { temp_r31->unk0C = GWPlayerCfg[temp_r31->unk04].iscom; if (temp_r31->unk0C != 0) { temp_r31->unk10 = GWPlayerCfg[temp_r31->unk04].diff; - } else { + } + else { temp_r31->unk10 = 0; } temp_r31->unk14 = GWPlayerCfg[temp_r31->unk04].character; @@ -1253,13 +1302,14 @@ void fn_1_54A0(void) { } } -s32 fn_1_5608(omObjData* arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5, s32 arg6) { +s32 fn_1_5608(omObjData *arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5, s32 arg6) +{ float var_f31; float var_f30; float var_f27; float var_f26; s32 var_r30; - StructBss3E4* sp18; + StructBss3E4 *sp18; var_r30 = 0; sp18 = &lbl_1_bss_3E4[arg0->work[0]]; @@ -1270,14 +1320,16 @@ s32 fn_1_5608(omObjData* arg0, Vec arg1, float arg2, float arg3, float arg4, flo if (var_f27 <= arg4) { var_f31 = var_f30 = 0.0f; var_r30 = 1; - } else { + } + else { var_f31 = 72.0f * (var_f31 / var_f27); var_f30 = 72.0f * (var_f30 / var_f27); } var_f27 = arg3 * (sqrtf(var_f31 * var_f31 + var_f30 * var_f30) / 72.0f); if (var_f27 >= arg3) { var_f27 = arg3; - } else if (var_f27 <= 1.0f) { + } + else if (var_f27 <= 1.0f) { var_f31 = var_f30 = var_f27 = 0.0f; var_r30 = 1; } @@ -1292,7 +1344,8 @@ s32 fn_1_5608(omObjData* arg0, Vec arg1, float arg2, float arg3, float arg4, flo if (arg0->rot.y - var_f26 < -180.0f) { arg0->rot.y += 360.0f; } - } else { + } + else { if (arg0->rot.y - var_f26 > 180.0f) { arg0->rot.y -= 360.0f; } @@ -1307,25 +1360,28 @@ s32 fn_1_5608(omObjData* arg0, Vec arg1, float arg2, float arg3, float arg4, flo if (arg6 == 0) { if (var_f27 >= 6.75f) { fn_1_11B18(arg0, 0, 2, 15, 1); - } else if (var_f27 > 0.0f) { + } + else if (var_f27 > 0.0f) { fn_1_11B18(arg0, 0, 1, 15, 1); - } else { + } + else { fn_1_11B18(arg0, 0, 0, 15, 1); } } return var_r30; } -void fn_1_5CD0(omObjData* arg0) { - StructBss3E4* sp8; - char** temp_r26; +void fn_1_5CD0(omObjData *arg0) +{ + StructBss3E4 *sp8; + char **temp_r26; s32 var_r22; s32 i, j; - ModelData* temp_r24; - HsfData* temp_r27; - HsfMaterial* var_r31; - StructBss3E4* temp_r30; - HsfAttribute* temp_r23; + ModelData *temp_r24; + HsfData *temp_r27; + HsfMaterial *var_r31; + StructBss3E4 *temp_r30; + HsfAttribute *temp_r23; sp8 = &lbl_1_bss_3E4[arg0->work[0]]; if (arg0->work[2] != 1) { @@ -1353,7 +1409,8 @@ void fn_1_5CD0(omObjData* arg0) { } } } - } else { + } + else { temp_r26 = CharModelTexNameGet(temp_r30->unk14, 2); for (i = 0; i < temp_r27->materialCnt; i++, var_r31++) { var_r22 = 1; @@ -1385,15 +1442,11 @@ void fn_1_5CD0(omObjData* arg0) { } } -void fn_1_6060(omObjData* arg0) { +void fn_1_6060(omObjData *arg0) +{ u32 temp_r29 = arg0->work[0]; - StructBss3E4* temp_r30 = &lbl_1_bss_3E4[temp_r29]; - Vec sp8[] = { - { -600.0f, 0.0f, 300.0f }, - { -600.0f, 0.0f, 150.0f }, - { -450.0f, 0.0f, 150.0f }, - { -300.0f, 0.0f, 150.0f } - }; + StructBss3E4 *temp_r30 = &lbl_1_bss_3E4[temp_r29]; + Vec sp8[] = { { -600.0f, 0.0f, 300.0f }, { -600.0f, 0.0f, 150.0f }, { -450.0f, 0.0f, 150.0f }, { -300.0f, 0.0f, 150.0f } }; arg0->model[0] = CharModelCreate(temp_r30->unk14, 2); arg0->motion[0] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); @@ -1415,18 +1468,15 @@ void fn_1_6060(omObjData* arg0) { } // unused -s16 gap_04_00000182_data[] = { - 0, 0x43, 0, 0x43, 1, 0x43, - 2, 0x43, 3, 0x43, 4, 0x43, - 5, 0x43, 6, 0x43, 7 -}; +s16 gap_04_00000182_data[] = { 0, 0x43, 0, 0x43, 1, 0x43, 2, 0x43, 3, 0x43, 4, 0x43, 5, 0x43, 6, 0x43, 7 }; -s32 fn_1_62C4(omObjData* arg0) { +s32 fn_1_62C4(omObjData *arg0) +{ Mtx sp8; - StructBss4A4* var_r25; - StructBssD8* var_r31; - StructBss1A8* var_r28; - StructBss3E4* temp_r27; + StructBss4A4 *var_r25; + StructBssD8 *var_r31; + StructBss1A8 *var_r28; + StructBss3E4 *temp_r27; s32 i; var_r25 = &lbl_1_bss_4A4; @@ -1473,9 +1523,11 @@ s32 fn_1_62C4(omObjData* arg0) { } if (var_r31->unk88[i] < 8.0f) { var_r31->unk68[i] += 0.025f; - } else if (var_r31->unk88[i] < 23.0f) { + } + else if (var_r31->unk88[i] < 23.0f) { var_r31->unk68[i] = 0.7f; - } else if (var_r31->unk88[i] < 31.0f) { + } + else if (var_r31->unk88[i] < 31.0f) { var_r31->unk68[i] -= 0.1f; if (var_r31->unk68[i] < 0.0f) { var_r31->unk68[i] = 0.0f; @@ -1506,16 +1558,18 @@ s32 fn_1_62C4(omObjData* arg0) { } } -void fn_1_68E8(omObjData* arg0) { - StructBss1A8* var_r30; +void fn_1_68E8(omObjData *arg0) +{ + StructBss1A8 *var_r30; var_r30 = &lbl_1_bss_1A8; fn_1_11818(var_r30->unk00, 0, 8, 5, 0); - arg0->func = (void*) fn_1_62C4; // fn_1_62C4 must return s32 to match + arg0->func = (void *)fn_1_62C4; // fn_1_62C4 must return s32 to match } -void fn_1_6944(omObjData* arg0) { - StructBssD8* var_r29; +void fn_1_6944(omObjData *arg0) +{ + StructBssD8 *var_r29; s32 i; var_r29 = &lbl_1_bss_D8; @@ -1523,7 +1577,8 @@ void fn_1_6944(omObjData* arg0) { if (i % 2 == 0) { arg0->model[i + 1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 44)); arg0->motion[i + 1] = Hu3DMotionIDGet(arg0->model[i + 1]); - } else { + } + else { arg0->model[i + 1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M436, 45)); arg0->motion[i + 1] = Hu3DMotionIDGet(arg0->model[i + 1]); } @@ -1539,11 +1594,12 @@ void fn_1_6944(omObjData* arg0) { var_r29->unk88[i] = 0.0f; } var_r29->unk04 = 1; - arg0->func = (void*) fn_1_62C4; // fn_1_62C4 must return s32 to match + arg0->func = (void *)fn_1_62C4; // fn_1_62C4 must return s32 to match } -void fn_1_6BDC(void) { - StructBss32C* var_r31; +void fn_1_6BDC(void) +{ + StructBss32C *var_r31; var_r31 = &lbl_1_bss_32C; var_r31->unk10 = 0.0f; @@ -1556,8 +1612,9 @@ void fn_1_6BDC(void) { fn_1_125F4(var_r31, 200.0f); } -void fn_1_6C8C(void) { - StructBss32C* var_r31; +void fn_1_6C8C(void) +{ + StructBss32C *var_r31; StructBss32C sp8; var_r31 = &lbl_1_bss_32C; @@ -1571,8 +1628,9 @@ void fn_1_6C8C(void) { fn_1_14D24(var_r31, &sp8, var_r31->unk3C++, 30.0f, 5.0f); } -void fn_1_6D64(void) { - StructBss32C* var_r31; +void fn_1_6D64(void) +{ + StructBss32C *var_r31; var_r31 = &lbl_1_bss_32C; var_r31->unk10 = 0.0f; @@ -1585,8 +1643,9 @@ void fn_1_6D64(void) { fn_1_125F4(var_r31, 200.0f); } -void fn_1_6E14(void) { - StructBss32C* var_r31; +void fn_1_6E14(void) +{ + StructBss32C *var_r31; var_r31 = &lbl_1_bss_32C; var_r31->unk10 = 0.0f; @@ -1599,8 +1658,9 @@ void fn_1_6E14(void) { fn_1_125F4(var_r31, 45.0f); } -void fn_1_6EC4(void) { - StructBss32C* var_r31; +void fn_1_6EC4(void) +{ + StructBss32C *var_r31; var_r31 = &lbl_1_bss_32C; var_r31->unk10 = 0.0f; @@ -1613,8 +1673,9 @@ void fn_1_6EC4(void) { fn_1_125F4(var_r31, 30.0f); } -void fn_1_6F74(void) { - StructBss32C* var_r31; +void fn_1_6F74(void) +{ + StructBss32C *var_r31; StructBss32C sp8; var_r31 = &lbl_1_bss_32C; @@ -1628,8 +1689,9 @@ void fn_1_6F74(void) { fn_1_13C48(var_r31, &sp8, var_r31->unk3C++, 10.0f, 5.0f); } -void fn_1_704C(void) { - StructBss32C* var_r31; +void fn_1_704C(void) +{ + StructBss32C *var_r31; var_r31 = &lbl_1_bss_32C; var_r31->unk10 = 0.0f; @@ -1642,8 +1704,9 @@ void fn_1_704C(void) { fn_1_125F4(var_r31, 20.0f); } -void fn_1_70FC(void) { - StructBss32C* var_r31; +void fn_1_70FC(void) +{ + StructBss32C *var_r31; var_r31 = &lbl_1_bss_32C; var_r31->unk10 = 0.0f; @@ -1656,8 +1719,9 @@ void fn_1_70FC(void) { fn_1_125F4(var_r31, 20.0f); } -void fn_1_71AC(s32 arg0) { - StructBss32C* var_r23; +void fn_1_71AC(s32 arg0) +{ + StructBss32C *var_r23; var_r23 = &lbl_1_bss_32C; fn_1_12294(var_r23); @@ -1689,9 +1753,10 @@ void fn_1_71AC(s32 arg0) { } } -void fn_1_72CC(void) { +void fn_1_72CC(void) +{ float sp18[] = { 0.0f, 0.0f }; - StructBss1A8* var_r30; + StructBss1A8 *var_r30; s32 var_r31; var_r30 = &lbl_1_bss_1A8; @@ -1712,9 +1777,10 @@ void fn_1_72CC(void) { HuPrcEnd(); } -void fn_1_77F0(void) { +void fn_1_77F0(void) +{ float sp18[] = { 0.0f, 0.0f }; - StructBss1A8* var_r30; + StructBss1A8 *var_r30; s32 var_r31; var_r30 = &lbl_1_bss_1A8; @@ -1732,17 +1798,11 @@ void fn_1_77F0(void) { HuPrcEnd(); } -void fn_1_7B58(s32 arg0) { +void fn_1_7B58(s32 arg0) +{ float sp10[2] = { 0.0f, 0.0f }; - StructBss180* var_r30 = &lbl_1_bss_180[0]; - s32 sp18[] = { - MAKE_MESSID(29, 6), - MAKE_MESSID(29, 8), - MAKE_MESSID(29, 10), - MAKE_MESSID(29, 12), - MAKE_MESSID(29, 15), - MAKE_MESSID(29, 17) - }; + StructBss180 *var_r30 = &lbl_1_bss_180[0]; + s32 sp18[] = { MAKE_MESSID(29, 6), MAKE_MESSID(29, 8), MAKE_MESSID(29, 10), MAKE_MESSID(29, 12), MAKE_MESSID(29, 15), MAKE_MESSID(29, 17) }; s32 var_r31; var_r30->unk00->work[3] = 1; @@ -1756,9 +1816,10 @@ void fn_1_7B58(s32 arg0) { fn_1_2468(var_r31); } -void fn_1_7F1C(void) { +void fn_1_7F1C(void) +{ float sp2D8[2] = { 0.0f, 0.0f }; - StructBss180* var_r30; + StructBss180 *var_r30; s32 var_r31; var_r30 = &lbl_1_bss_180[1]; @@ -1814,10 +1875,11 @@ void fn_1_7F1C(void) { HuPrcEnd(); } -void fn_1_A5A8(void) { +void fn_1_A5A8(void) +{ float sp9C[2] = { 0.0f, 0.0f }; - StructBss220* sp68; - StructBss1A8* var_r28; + StructBss220 *sp68; + StructBss1A8 *var_r28; s32 var_r31; sp68 = &lbl_1_bss_220; @@ -1859,9 +1921,10 @@ void fn_1_A5A8(void) { HuPrcEnd(); } -void fn_1_B3D4(void) { +void fn_1_B3D4(void) +{ float sp1C[2] = { 0.0f, 0.0f }; - StructBss180* var_r30; + StructBss180 *var_r30; s32 var_r31; var_r30 = &lbl_1_bss_180[1]; @@ -1878,11 +1941,11 @@ void fn_1_B3D4(void) { HuPrcEnd(); } -void fn_1_B7E0(void) { -} +void fn_1_B7E0(void) { } -s32 fn_1_B7E4(void) { - StructBss220* var_r31; +s32 fn_1_B7E4(void) +{ + StructBss220 *var_r31; var_r31 = &lbl_1_bss_220; if (fn_1_11F04(&lbl_1_bss_C0, 0) == 80) { @@ -1907,20 +1970,23 @@ s32 fn_1_B7E4(void) { return 0; } -void fn_1_B968(void) { +void fn_1_B968(void) +{ lbl_1_bss_4 = 0; HuPrcChildCreate(fn_1_72CC, 100, 0x2000, 0, HuPrcCurrentGet()); } -s32 fn_1_B9B4(void) { +s32 fn_1_B9B4(void) +{ if (lbl_1_bss_4 == 1 && fn_1_11F04(&lbl_1_bss_C0, 1) != 0) { return fn_1_11D74(&lbl_1_bss_C0); } return 0; } -void fn_1_BA10(void) { - StructBss3E4* var_r30; +void fn_1_BA10(void) +{ + StructBss3E4 *var_r30; s32 i; lbl_1_bss_4 = 0; @@ -1931,10 +1997,11 @@ void fn_1_BA10(void) { } } -s32 fn_1_BAA4(void) { - StructBss220* var_r31; - StructBss1BC* var_r30; - StructBss220* var_r29; +s32 fn_1_BAA4(void) +{ + StructBss220 *var_r31; + StructBss1BC *var_r30; + StructBss220 *var_r29; var_r31 = &lbl_1_bss_220; var_r30 = &lbl_1_bss_1BC; @@ -1953,22 +2020,26 @@ s32 fn_1_BAA4(void) { return 0; } -void fn_1_BBA4(void) { +void fn_1_BBA4(void) +{ fn_1_71AC(10); } -s32 fn_1_BBF4(void) { +s32 fn_1_BBF4(void) +{ if (fn_1_11F04(&lbl_1_bss_C0, 1) != 0) { return fn_1_11D74(&lbl_1_bss_C0); } return 0; } -void fn_1_BC3C(void) { +void fn_1_BC3C(void) +{ HuPrcChildCreate(fn_1_B3D4, 100, 0x2000, 0, HuPrcCurrentGet()); } -s32 fn_1_BC78(void) { +s32 fn_1_BC78(void) +{ if (lbl_1_bss_4 != 0 && fn_1_11F04(&lbl_1_bss_C0, 1) != 0) { if (lbl_1_bss_8 != 0) { return fn_1_11D74(&lbl_1_bss_C0); @@ -1978,8 +2049,9 @@ s32 fn_1_BC78(void) { return 0; } -void fn_1_BCF8(void) { - StructBss1A8* var_r31; +void fn_1_BCF8(void) +{ + StructBss1A8 *var_r31; var_r31 = &lbl_1_bss_1A8; fn_1_11818(var_r31->unk00, 0, 12, 60, 1); @@ -1987,8 +2059,9 @@ void fn_1_BCF8(void) { HuPrcChildCreate(fn_1_7F1C, 100, 0x2000, 0, HuPrcCurrentGet()); } -s32 fn_1_BD6C(void) { - StructBss1A8* var_r31; +s32 fn_1_BD6C(void) +{ + StructBss1A8 *var_r31; var_r31 = &lbl_1_bss_1A8; if (lbl_1_bss_4 == 1 && fn_1_11F04(&lbl_1_bss_C0, 0) == 0) { @@ -2000,23 +2073,27 @@ s32 fn_1_BD6C(void) { return 0; } -void fn_1_BE1C(void) { +void fn_1_BE1C(void) +{ fn_1_71AC(11); } -s32 fn_1_BE6C(void) { +s32 fn_1_BE6C(void) +{ if (fn_1_11F04(&lbl_1_bss_C0, 1) != 0) { return fn_1_11D74(&lbl_1_bss_C0); } return 0; } -void fn_1_BEB4(void) { +void fn_1_BEB4(void) +{ lbl_1_bss_4 = 0; HuPrcChildCreate(fn_1_A5A8, 100, 0x2000, 0, HuPrcCurrentGet()); } -s32 fn_1_BF00(void) { +s32 fn_1_BF00(void) +{ if (lbl_1_bss_4 == 1) { lbl_1_bss_4 = 2; HuAudSeqFadeOut(lbl_1_bss_3A4[0], 1000); @@ -2028,23 +2105,17 @@ s32 fn_1_BF00(void) { return 0; } -StructData1E8 lbl_1_data_1E8[] = { - { fn_1_B7E0, fn_1_B7E4, 300 }, - { fn_1_B968, fn_1_B9B4, 60 }, - { fn_1_BA10, fn_1_BAA4, 60 }, - { fn_1_BBA4, fn_1_BBF4, 45 }, - { fn_1_BC3C, fn_1_BC78, 60 }, - { fn_1_BCF8, fn_1_BD6C, 60 }, - { fn_1_BE1C, fn_1_BE6C, 45 }, - { fn_1_BEB4, fn_1_BF00, 15 }, - { NULL, NULL, -1 } -}; +StructData1E8 lbl_1_data_1E8[] = { { fn_1_B7E0, fn_1_B7E4, 300 }, { fn_1_B968, fn_1_B9B4, 60 }, { fn_1_BA10, fn_1_BAA4, 60 }, + { fn_1_BBA4, fn_1_BBF4, 45 }, { fn_1_BC3C, fn_1_BC78, 60 }, { fn_1_BCF8, fn_1_BD6C, 60 }, { fn_1_BE1C, fn_1_BE6C, 45 }, + { fn_1_BEB4, fn_1_BF00, 15 }, { NULL, NULL, -1 } }; -void fn_1_BFC8(void) { +void fn_1_BFC8(void) +{ fn_1_11D18(&lbl_1_bss_C0, lbl_1_data_1E8); } -s32 fn_1_BFF8(void) { +s32 fn_1_BFF8(void) +{ s32 var_r31; var_r31 = 0; @@ -2058,11 +2129,12 @@ s32 fn_1_BFF8(void) { return var_r31; } -s32 fn_1_C090(s32 arg0, s32 arg1, s32 arg2) { - StructBss4A4* var_r28; - StructBss3E4* temp_r31; - StructBss1BC* var_r27; - StructBss234* var_r26; +s32 fn_1_C090(s32 arg0, s32 arg1, s32 arg2) +{ + StructBss4A4 *var_r28; + StructBss3E4 *temp_r31; + StructBss1BC *var_r27; + StructBss234 *var_r26; s32 var_r29; s32 var_r30; s32 spC; @@ -2083,43 +2155,52 @@ s32 fn_1_C090(s32 arg0, s32 arg1, s32 arg2) { case 0: if (arg2 <= 120) { var_r29 = 0; - } else if (var_r28->unk04 <= 3) { + } + else if (var_r28->unk04 <= 3) { temp_r31->unk24 = var_r29 = 1; - } else { + } + else { var_r29 = 0; } break; case 1: if (arg2 <= 120) { var_r29 = 0; - } else if (var_r28->unk04 <= 6) { + } + else if (var_r28->unk04 <= 6) { temp_r31->unk24 = var_r29 = 1; - } else { + } + else { var_r29 = 0; } break; case 2: if (arg2 <= 60) { var_r29 = 0; - } else if (var_r28->unk04 <= 9) { + } + else if (var_r28->unk04 <= 9) { temp_r31->unk24 = var_r29 = 1; - } else { + } + else { var_r29 = 0; } break; case 3: if (arg2 <= 60) { var_r29 = 0; - } else if (var_r28->unk04 <= 12) { + } + else if (var_r28->unk04 <= 12) { temp_r31->unk24 = var_r29 = 1; - } else { + } + else { var_r29 = 0; } break; } if (var_r29 == 0) { temp_r31->unk28 = rand8() % 8; - } else { + } + else { var_r23 = 0; for (i = 0; i <= temp_r31->unk10; i++) { temp_r22 = rand8() % 10; @@ -2136,29 +2217,35 @@ s32 fn_1_C090(s32 arg0, s32 arg1, s32 arg2) { } if (temp_r31->unk24 == 1 && temp_r31->unk28 == var_r30) { var_r30 = 99; - } else if (temp_r31->unk28 > var_r30 && temp_r31->unk00->trans.x >= var_r27->unk04[var_r30].x - 7.5f && var_r30 < 7) { + } + else if (temp_r31->unk28 > var_r30 && temp_r31->unk00->trans.x >= var_r27->unk04[var_r30].x - 7.5f && var_r30 < 7) { var_r30++; - } else if (temp_r31->unk28 < var_r30 && temp_r31->unk00->trans.x <= var_r27->unk04[var_r30].x + 7.5f && var_r30 > 0) { + } + else if (temp_r31->unk28 < var_r30 && temp_r31->unk00->trans.x <= var_r27->unk04[var_r30].x + 7.5f && var_r30 > 0) { var_r30--; } - } else { + } + else { var_r30 = arg1; if (HuPadStkX[temp_r31->unk18] > 20.0f && temp_r31->unk00->trans.x >= var_r27->unk04[var_r30].x - 7.5f && var_r30 < 7) { var_r30++; - } else if (HuPadStkX[temp_r31->unk18] < -20.0f && temp_r31->unk00->trans.x <= var_r27->unk04[var_r30].x + 7.5f && var_r30 > 0) { + } + else if (HuPadStkX[temp_r31->unk18] < -20.0f && temp_r31->unk00->trans.x <= var_r27->unk04[var_r30].x + 7.5f && var_r30 > 0) { var_r30--; - } else if (HuPadBtnDown[temp_r31->unk18] & 0x100) { + } + else if (HuPadBtnDown[temp_r31->unk18] & 0x100) { var_r30 = 99; } } return var_r30; } -void fn_1_C4E8(void) { - StructBss4A4* var_r29; - StructBss3E4* temp_r30; - StructBss1BC* var_r28; - StructBss32C* var_r31; +void fn_1_C4E8(void) +{ + StructBss4A4 *var_r29; + StructBss3E4 *temp_r30; + StructBss1BC *var_r28; + StructBss32C *var_r31; var_r29 = &lbl_1_bss_4A4; temp_r30 = &lbl_1_bss_3E4[var_r29->unk00]; @@ -2174,8 +2261,9 @@ void fn_1_C4E8(void) { fn_1_125F4(var_r31, 10.0f); } -void fn_1_C5E4(void) { - StructBss32C* var_r31; +void fn_1_C5E4(void) +{ + StructBss32C *var_r31; var_r31 = &lbl_1_bss_32C; var_r31->unk10 = 0.0f; @@ -2188,8 +2276,9 @@ void fn_1_C5E4(void) { fn_1_125F4(var_r31, 360.0f); } -void fn_1_C694(void) { - StructBss32C* var_r31; +void fn_1_C694(void) +{ + StructBss32C *var_r31; StructBss32C sp8; var_r31 = &lbl_1_bss_32C; @@ -2203,8 +2292,9 @@ void fn_1_C694(void) { fn_1_13C48(var_r31, &sp8, var_r31->unk3C++, 10.0f, 5.0f); } -void fn_1_C76C(void) { - StructBss32C* var_r31; +void fn_1_C76C(void) +{ + StructBss32C *var_r31; StructBss32C sp8; var_r31 = &lbl_1_bss_32C; @@ -2218,8 +2308,9 @@ void fn_1_C76C(void) { fn_1_13C48(var_r31, &sp8, var_r31->unk3C++, 60.0f, 10.0f); } -void fn_1_C844(s32 arg0) { - StructBss32C* var_r27; +void fn_1_C844(s32 arg0) +{ + StructBss32C *var_r27; var_r27 = &lbl_1_bss_32C; fn_1_12294(var_r27); @@ -2239,16 +2330,13 @@ void fn_1_C844(s32 arg0) { } } -void fn_1_C90C(void) { +void fn_1_C90C(void) +{ float sp28[] = { 0.0f, 0.0f }; s32 var_r28; s32 var_r31; - StructBss1A8* var_r27 = &lbl_1_bss_1A8; - s32 sp3C[] = { - MAKE_MESSID(29, 31), - MAKE_MESSID(29, 32), - MAKE_MESSID(29, 33) - }; + StructBss1A8 *var_r27 = &lbl_1_bss_1A8; + s32 sp3C[] = { MAKE_MESSID(29, 31), MAKE_MESSID(29, 32), MAKE_MESSID(29, 33) }; var_r28 = rand8() % 3; HuPrcSleep(70); @@ -2264,14 +2352,12 @@ void fn_1_C90C(void) { HuPrcEnd(); } -void fn_1_CCA4(void) { +void fn_1_CCA4(void) +{ float sp2C[] = { 0.0f, 0.0f }; s32 var_r28; s32 var_r31; - s32 sp24[] = { - MAKE_MESSID(29, 34), - MAKE_MESSID(29, 35) - }; + s32 sp24[] = { MAKE_MESSID(29, 34), MAKE_MESSID(29, 35) }; var_r28 = rand8() % 2; HuPrcSleep(40); @@ -2287,7 +2373,8 @@ void fn_1_CCA4(void) { HuPrcEnd(); } -void fn_1_D018(void) { +void fn_1_D018(void) +{ float sp2C[] = { 0.0f, 0.0f }; s32 var_r31; @@ -2304,10 +2391,11 @@ void fn_1_D018(void) { HuPrcEnd(); } -void fn_1_D344(void) { - StructBss4A4* var_r30; - StructBss3E4* temp_r31; - StructBss1A8* var_r29; +void fn_1_D344(void) +{ + StructBss4A4 *var_r30; + StructBss3E4 *temp_r31; + StructBss1A8 *var_r29; var_r30 = &lbl_1_bss_4A4; temp_r31 = &lbl_1_bss_3E4[var_r30->unk00]; @@ -2318,13 +2406,14 @@ void fn_1_D344(void) { fn_1_27C8(5); } -s32 fn_1_D418(void) { +s32 fn_1_D418(void) +{ Vec sp14; - StructBss4A4* var_r30; - StructBss3E4* temp_r31; - StructBss1BC* var_r28; - StructBss180* var_r26; - StructBss3E4* var_r25; + StructBss4A4 *var_r30; + StructBss3E4 *temp_r31; + StructBss1BC *var_r28; + StructBss180 *var_r26; + StructBss3E4 *var_r25; s32 var_r27; s32 i; @@ -2340,17 +2429,20 @@ s32 fn_1_D418(void) { if (fn_1_2800()) { temp_r31->unk20 = 1; temp_r31->unk24 = 0; - } else { + } + else { var_r27 = fn_1_C090(var_r30->unk00, temp_r31->unk1C, fn_1_11F04(&lbl_1_bss_A8, 0)); if (var_r27 == 99) { temp_r31->unk20 = 1; temp_r31->unk24 = 0; fn_1_2824(); - } else { + } + else { temp_r31->unk1C = var_r27; } } - } else if (temp_r31->unk24++ >= 60) { + } + else if (temp_r31->unk24++ >= 60) { return fn_1_11D74(&lbl_1_bss_A8); } sp14.x = var_r28->unk04[temp_r31->unk1C].x; @@ -2374,19 +2466,21 @@ s32 fn_1_D418(void) { return 0; } -void fn_1_D6C0(void) { - StructBss4A4* var_r30; +void fn_1_D6C0(void) +{ + StructBss4A4 *var_r30; var_r30 = &lbl_1_bss_4A4; var_r30->unk0C = 0; } -s32 fn_1_D6E4(void) { - StructBss4A4* var_r29; - StructBss3E4* temp_r31; - StructBss1BC* var_r30; - StructBss180* var_r26; - StructBss3E4* var_r25; +s32 fn_1_D6E4(void) +{ + StructBss4A4 *var_r29; + StructBss3E4 *temp_r31; + StructBss1BC *var_r30; + StructBss180 *var_r26; + StructBss3E4 *var_r25; s32 i; var_r29 = &lbl_1_bss_4A4; @@ -2400,17 +2494,21 @@ s32 fn_1_D6E4(void) { temp_r31->unk00->trans.z = var_r30->unk04[temp_r31->unk1C].z - 100.0f; fn_1_11B18(temp_r31->unk00, 0, 0, 10, 1); } - } else { + } + else { fn_1_11B18(temp_r31->unk00, 0, 0, 10, 1); } - } else if (fn_1_11F04(&lbl_1_bss_A8, 0) == 30) { + } + else if (fn_1_11F04(&lbl_1_bss_A8, 0) == 30) { fn_1_11990(temp_r31->unk00, 0, 5, 30, 0); - } else if (fn_1_11708(temp_r31->unk00, 0, 5, 35, 1) != 0 && var_r29->unk0C == 0) { + } + else if (fn_1_11708(temp_r31->unk00, 0, 5, 35, 1) != 0 && var_r29->unk0C == 0) { var_r29->unk0C = 1; Hu3DModelHookSet(temp_r31->unk00->model[0], CharModelHookNameGet(temp_r31->unk14, 2, 0), var_r30->unk00->model[temp_r31->unk1C + 1]); if (temp_r31->unk14 != 7) { Hu3DModelPosSet(var_r30->unk00->model[temp_r31->unk1C + 1], 0.0f, 5.0f, 0.0f); - } else { + } + else { Hu3DModelPosSet(var_r30->unk00->model[temp_r31->unk1C + 1], 0.0f, -15.0f, 0.0f); } Hu3DModelScaleSet(var_r30->unk00->model[temp_r31->unk1C + 1], 0.75f, 0.75f, 0.75f); @@ -2430,20 +2528,21 @@ s32 fn_1_D6E4(void) { // Required to match. if (0) { s32 var_r28 = 0; - (void) var_r28; - (void) var_r28; - (void) var_r28; - (void) var_r28; - (void) var_r28; - (void) var_r28; + (void)var_r28; + (void)var_r28; + (void)var_r28; + (void)var_r28; + (void)var_r28; + (void)var_r28; } return 0; } -void fn_1_DA60(void) { - StructBss4A4* var_r30; - StructBss1A8* sp8; - StructBss3E4* temp_r31; +void fn_1_DA60(void) +{ + StructBss4A4 *var_r30; + StructBss1A8 *sp8; + StructBss3E4 *temp_r31; var_r30 = &lbl_1_bss_4A4; temp_r31 = &lbl_1_bss_3E4[var_r30->unk00]; @@ -2457,14 +2556,15 @@ void fn_1_DA60(void) { Vec lbl_1_data_254 = { 0.0f, 0.0f, 0.0f }; Vec lbl_1_data_260 = { 0.0f, 0.0f, 0.0f }; // unused -s32 fn_1_DB00(void) { - StructBss4A4* var_r30; - StructBss220* var_r28; - StructBss1BC* sp8; - StructBss3E4* temp_r31; - StructBss1A8* var_r27; - StructBss180* var_r26; - StructBss3E4* var_r25; +s32 fn_1_DB00(void) +{ + StructBss4A4 *var_r30; + StructBss220 *var_r28; + StructBss1BC *sp8; + StructBss3E4 *temp_r31; + StructBss1A8 *var_r27; + StructBss180 *var_r26; + StructBss3E4 *var_r25; s32 i; var_r30 = &lbl_1_bss_4A4; @@ -2476,7 +2576,8 @@ s32 fn_1_DB00(void) { lbl_1_data_254.x = 0.0f; lbl_1_data_254.y = temp_r31->unk00->trans.y; lbl_1_data_254.z = 300.0f; - } else if (temp_r31->unk20 == 1 && fn_1_11F04(&lbl_1_bss_A8, 0) <= 320) { + } + else if (temp_r31->unk20 == 1 && fn_1_11F04(&lbl_1_bss_A8, 0) <= 320) { lbl_1_data_254.x = 0.0f; lbl_1_data_254.y = temp_r31->unk00->trans.y; lbl_1_data_254.z = -240.0f; @@ -2504,10 +2605,11 @@ s32 fn_1_DB00(void) { return 0; } -void fn_1_DDBC(void) { - StructBss4A4* var_r30; - StructBss1A8* var_r29; - StructBss3E4* temp_r31; +void fn_1_DDBC(void) +{ + StructBss4A4 *var_r30; + StructBss1A8 *var_r29; + StructBss3E4 *temp_r31; var_r30 = &lbl_1_bss_4A4; var_r29 = &lbl_1_bss_1A8; @@ -2522,14 +2624,15 @@ void fn_1_DDBC(void) { temp_r31->unk20 = temp_r31->unk24 = temp_r31->unk28 = 0; } -s32 fn_1_DEB0(void) { - StructBss4A4* var_r30; - StructBss220* var_r28; - StructBss1BC* var_r29; - StructBss3E4* temp_r31; - ModelData* temp_r27; - ModelData* temp_r26; - StructBss180* var_r25; +s32 fn_1_DEB0(void) +{ + StructBss4A4 *var_r30; + StructBss220 *var_r28; + StructBss1BC *var_r29; + StructBss3E4 *temp_r31; + ModelData *temp_r27; + ModelData *temp_r26; + StructBss180 *var_r25; var_r30 = &lbl_1_bss_4A4; var_r28 = &lbl_1_bss_220; @@ -2558,10 +2661,11 @@ s32 fn_1_DEB0(void) { return 0; } -void fn_1_E0B0(void) { - StructBss4A4* var_r31; - StructBss1A8* var_r30; - StructBss3E4* var_r29; +void fn_1_E0B0(void) +{ + StructBss4A4 *var_r31; + StructBss1A8 *var_r30; + StructBss3E4 *var_r29; var_r31 = &lbl_1_bss_4A4; var_r30 = &lbl_1_bss_1A8; @@ -2571,13 +2675,14 @@ void fn_1_E0B0(void) { fn_1_11818(var_r30->unk00, 0, 4, 1, 0); } -s32 fn_1_E144(void) { - StructBss4A4* var_r31; - StructBss220* var_r28; - StructBss1BC* var_r30; - StructBss1A8* var_r27; - StructBss3E4* temp_r29; - StructBss180* var_r25; +s32 fn_1_E144(void) +{ + StructBss4A4 *var_r31; + StructBss220 *var_r28; + StructBss1BC *var_r30; + StructBss1A8 *var_r27; + StructBss3E4 *temp_r29; + StructBss180 *var_r25; var_r31 = &lbl_1_bss_4A4; var_r28 = &lbl_1_bss_220; @@ -2606,10 +2711,11 @@ s32 fn_1_E144(void) { return 0; } -void fn_1_E38C(void) { - StructBss4A4* var_r31; - StructBss220* sp8; - StructBss1A8* var_r30; +void fn_1_E38C(void) +{ + StructBss4A4 *var_r31; + StructBss220 *sp8; + StructBss1A8 *var_r30; sp8 = &lbl_1_bss_220; var_r31 = &lbl_1_bss_4A4; @@ -2622,38 +2728,43 @@ void fn_1_E38C(void) { if (var_r31->unk04 > 3 && rand8() % 2 == 0) { var_r31->unk08 = 2; } - } else if (var_r31->unk08 == 2) { + } + else if (var_r31->unk08 == 2) { var_r31->unk08 = 1; fn_1_11818(var_r30->unk00, 0, 10, 15, 0); if (var_r31->unk04 > 6 && rand8() % 2 == 0) { var_r31->unk08 = 3; } - } else if (var_r31->unk08 == 3) { + } + else if (var_r31->unk08 == 3) { var_r31->unk08 = 1; fn_1_11818(var_r30->unk00, 0, 10, 15, 0); } } -s32 fn_1_E4CC(void) { - StructBss4A4* var_r31; - StructBss1A8* var_r30; +s32 fn_1_E4CC(void) +{ + StructBss4A4 *var_r31; + StructBss1A8 *var_r30; var_r31 = &lbl_1_bss_4A4; var_r30 = &lbl_1_bss_1A8; if (Hu3DMotionEndCheck(var_r30->unk00->model[0]) && fn_1_11F04(&lbl_1_bss_A8, 1) != 0) { if (var_r31->unk08 != 1) { return fn_1_11E70(&lbl_1_bss_A8, 5); - } else { + } + else { return fn_1_11D74(&lbl_1_bss_A8); } } return 0; } -void fn_1_E56C(void) { - StructBss4A4* var_r31; - StructBss234* var_r30; - StructBss3E4* var_r28; +void fn_1_E56C(void) +{ + StructBss4A4 *var_r31; + StructBss234 *var_r30; + StructBss3E4 *var_r28; s32 i; var_r31 = &lbl_1_bss_4A4; @@ -2672,20 +2783,23 @@ void fn_1_E56C(void) { } } -s32 fn_1_E628(void) { - StructBss4A4* var_r31; +s32 fn_1_E628(void) +{ + StructBss4A4 *var_r31; var_r31 = &lbl_1_bss_4A4; if (var_r31->unk08 != 0) { fn_1_11E70(&lbl_1_bss_A8, 10); - } else { + } + else { fn_1_11D74(&lbl_1_bss_A8); } } -void fn_1_E680(void) { - StructBss4A4* var_r31; - StructBss1A8* var_r30; +void fn_1_E680(void) +{ + StructBss4A4 *var_r31; + StructBss1A8 *var_r30; var_r31 = &lbl_1_bss_4A4; var_r30 = &lbl_1_bss_1A8; @@ -2695,12 +2809,13 @@ void fn_1_E680(void) { HuPrcChildCreate(fn_1_C90C, 100, 0x2000, 0, HuPrcCurrentGet()); } -s32 fn_1_E710(void) { - StructBss4A4* var_r29; - StructBss1A8* var_r28; - StructBss1BC* var_r31; - StructBss3E4* temp_r30; - StructBss180* var_r27; +s32 fn_1_E710(void) +{ + StructBss4A4 *var_r29; + StructBss1A8 *var_r28; + StructBss1BC *var_r31; + StructBss3E4 *temp_r30; + StructBss180 *var_r27; var_r29 = &lbl_1_bss_4A4; var_r31 = &lbl_1_bss_1BC; @@ -2714,7 +2829,8 @@ s32 fn_1_E710(void) { var_r27 = &lbl_1_bss_180[1]; fn_1_11818(var_r27->unk00, 0, 7, 10, 0); Hu3DModelHookReset(var_r28->unk00->model[0]); - Hu3DModelPosSet(var_r31->unk00->model[temp_r30->unk1C + 1], var_r31->unk04[temp_r30->unk1C].x, var_r31->unk04[temp_r30->unk1C].y + 65.0f, var_r31->unk04[temp_r30->unk1C].z); + Hu3DModelPosSet(var_r31->unk00->model[temp_r30->unk1C + 1], var_r31->unk04[temp_r30->unk1C].x, var_r31->unk04[temp_r30->unk1C].y + 65.0f, + var_r31->unk04[temp_r30->unk1C].z); Hu3DModelRotSet(var_r31->unk00->model[temp_r30->unk1C + 1], 0.0f, 0.0f, 0.0f); Hu3DModelScaleSet(var_r31->unk00->model[temp_r30->unk1C + 1], 1.0f, 1.0f, 1.0f); } @@ -2727,10 +2843,11 @@ s32 fn_1_E710(void) { return 0; } -void fn_1_E930(void) { - StructBss4A4* var_r29; - StructBss3E4* var_r28; - StructBss180* var_r31; +void fn_1_E930(void) +{ + StructBss4A4 *var_r29; + StructBss3E4 *var_r28; + StructBss180 *var_r31; s32 var_r30; var_r29 = &lbl_1_bss_4A4; @@ -2746,17 +2863,13 @@ void fn_1_E930(void) { fn_1_C844(3); } -s32 fn_1_EA04(void) { - Vec sp14[] = { - { -600.0f, 0.0f, 300.0f }, - { -600.0f, 0.0f, 150.0f }, - { -450.0f, 0.0f, 150.0f }, - { -300.0f, 0.0f, 150.0f } - }; - StructBss4A4* var_r30; - StructBss1BC* var_r27; - StructBss3E4* temp_r31; - StructBss3E4* temp_r26; +s32 fn_1_EA04(void) +{ + Vec sp14[] = { { -600.0f, 0.0f, 300.0f }, { -600.0f, 0.0f, 150.0f }, { -450.0f, 0.0f, 150.0f }, { -300.0f, 0.0f, 150.0f } }; + StructBss4A4 *var_r30; + StructBss1BC *var_r27; + StructBss3E4 *temp_r31; + StructBss3E4 *temp_r26; s32 i; s32 var_r28; @@ -2770,7 +2883,8 @@ s32 fn_1_EA04(void) { temp_r31 = &lbl_1_bss_3E4[var_r28]; if (i != 0) { fn_1_5608(temp_r31->unk00, sp14[i], 0.0f, 9.0f, 10.0f, 8.0f, 0); - } else { + } + else { temp_r31->unk00->trans.x -= 1.0f; temp_r31->unk00->trans.z += 5.0f; temp_r31->unk00->rot.y = fn_1_110FC(temp_r31->unk00->rot.y, 0.0f, 10.0f); @@ -2808,9 +2922,10 @@ s32 fn_1_EA04(void) { return 0; } -void fn_1_ED4C(void) { - StructBss4A4* var_r31; - StructBss1A8* var_r30; +void fn_1_ED4C(void) +{ + StructBss4A4 *var_r31; + StructBss1A8 *var_r30; var_r31 = &lbl_1_bss_4A4; var_r30 = &lbl_1_bss_1A8; @@ -2818,19 +2933,21 @@ void fn_1_ED4C(void) { lbl_1_bss_4 = 0; if (var_r31->unk08 == 1) { HuPrcChildCreate(fn_1_CCA4, 100, 0x2000, 0, HuPrcCurrentGet()); - } else { + } + else { HuPrcChildCreate(fn_1_D018, 100, 0x2000, 0, HuPrcCurrentGet()); } var_r31->unk04 = var_r31->unk08 = var_r31->unk0C = 0; } -s32 fn_1_EE10(void) { - StructBss4A4* var_r30; - StructBss220* var_r26; - StructBss1BC* var_r29; - StructBss1A8* var_r27; - StructBss180* var_r31; - StructBss3E4* temp_r28; +s32 fn_1_EE10(void) +{ + StructBss4A4 *var_r30; + StructBss220 *var_r26; + StructBss1BC *var_r29; + StructBss1A8 *var_r27; + StructBss180 *var_r31; + StructBss3E4 *temp_r28; var_r30 = &lbl_1_bss_4A4; var_r26 = &lbl_1_bss_220; @@ -2857,7 +2974,8 @@ s32 fn_1_EE10(void) { lbl_1_bss_3C.x = fn_1_1113C(lbl_1_bss_78[0][3], lbl_1_bss_48[0][3], lbl_1_bss_14, 30.0f); if (lbl_1_bss_14 < 13) { lbl_1_bss_3C.y = fn_1_11164(lbl_1_bss_78[1][3], 500.0f, lbl_1_bss_14, 13.0f); - } else { + } + else { lbl_1_bss_3C.y = fn_1_112F4(500.0f, lbl_1_bss_48[1][3], lbl_1_bss_14 - 13, 17.0f); } lbl_1_bss_3C.z = fn_1_1113C(lbl_1_bss_78[2][3], lbl_1_bss_48[2][3], lbl_1_bss_14, 30.0f); @@ -2868,13 +2986,15 @@ s32 fn_1_EE10(void) { if (fn_1_11708(var_r31->unk00, 0, 4, 21, 1) != 0 && var_r30->unk08 == 0) { var_r30->unk08 = 1; Hu3DMotionSpeedSet(var_r31->unk00->model[0], 0.0f); - } else { + } + else { Hu3DModelPosSet(var_r29->unk00->model[temp_r28->unk1C + 1], lbl_1_bss_3C.x, lbl_1_bss_3C.y, lbl_1_bss_3C.z); } if (lbl_1_bss_14++ >= 30) { var_r30->unk04 = 2; } - } else if (var_r30->unk04 == 2) { + } + else if (var_r30->unk04 == 2) { Hu3DModelHookSet(var_r31->unk00->model[0], "g007m0-itemhook_c", var_r29->unk00->model[temp_r28->unk1C + 1]); Hu3DModelPosSet(var_r29->unk00->model[temp_r28->unk1C + 1], 0.0f, 0.0f, 0.0f); Hu3DMotionSpeedSet(var_r31->unk00->model[0], 1.0f); @@ -2887,13 +3007,14 @@ s32 fn_1_EE10(void) { return 0; } -void fn_1_F404(void) { - StructBss4A4* var_r29; - StructBss1A8* spC; - StructBssD8* var_r28; - StructBss180* var_r31; - StructBss180* var_r30; - StructBss3E4* sp8; +void fn_1_F404(void) +{ + StructBss4A4 *var_r29; + StructBss1A8 *spC; + StructBssD8 *var_r28; + StructBss180 *var_r31; + StructBss180 *var_r30; + StructBss3E4 *sp8; var_r29 = &lbl_1_bss_4A4; spC = &lbl_1_bss_1A8; @@ -2908,34 +3029,26 @@ void fn_1_F404(void) { fn_1_11818(var_r30->unk00, 1, 6, 30, 1); } -s32 fn_1_F4F0(void) { +s32 fn_1_F4F0(void) +{ if (fn_1_11F04(&lbl_1_bss_A8, 1) != 0) { return fn_1_11D74(&lbl_1_bss_A8); } return 0; } -StructData1E8 lbl_1_data_290[] = { - { fn_1_D344, fn_1_D418, 600 }, - { fn_1_D6C0, fn_1_D6E4, 90 }, - { fn_1_DA60, fn_1_DB00, 300 }, - { fn_1_DDBC, fn_1_DEB0, 150 }, - { fn_1_E0B0, fn_1_E144, 240 }, - { fn_1_E38C, fn_1_E4CC, 90 }, - { fn_1_E56C, fn_1_E628, 120 }, - { fn_1_E680, fn_1_E710, 120 }, - { fn_1_E930, fn_1_EA04, 120 }, - { NULL, NULL, -1 }, - { fn_1_ED4C, fn_1_EE10, -1 }, - { fn_1_F404, fn_1_F4F0, 60 }, - { NULL, NULL, -1 } -}; +StructData1E8 lbl_1_data_290[] + = { { fn_1_D344, fn_1_D418, 600 }, { fn_1_D6C0, fn_1_D6E4, 90 }, { fn_1_DA60, fn_1_DB00, 300 }, { fn_1_DDBC, fn_1_DEB0, 150 }, + { fn_1_E0B0, fn_1_E144, 240 }, { fn_1_E38C, fn_1_E4CC, 90 }, { fn_1_E56C, fn_1_E628, 120 }, { fn_1_E680, fn_1_E710, 120 }, + { fn_1_E930, fn_1_EA04, 120 }, { NULL, NULL, -1 }, { fn_1_ED4C, fn_1_EE10, -1 }, { fn_1_F404, fn_1_F4F0, 60 }, { NULL, NULL, -1 } }; -void fn_1_F538(void) { +void fn_1_F538(void) +{ fn_1_11D18(&lbl_1_bss_A8, lbl_1_data_290); } -s32 fn_1_F568(void) { +s32 fn_1_F568(void) +{ s32 var_r31; var_r31 = 0; @@ -2949,9 +3062,10 @@ s32 fn_1_F568(void) { return var_r31; } -void fn_1_F600(void) { - StructBss4A4* var_r30; - StructBss3E4* temp_r31; +void fn_1_F600(void) +{ + StructBss4A4 *var_r30; + StructBss3E4 *temp_r31; var_r30 = &lbl_1_bss_4A4; temp_r31 = &lbl_1_bss_3E4[var_r30->unk00]; @@ -2962,9 +3076,10 @@ void fn_1_F600(void) { HuPrcChildCreate(fn_1_0, 100, 0x2000, 0, HuPrcCurrentGet()); } -s32 fn_1_F6B0(void) { - StructBss4A4* var_r31; - StructBss3E4* temp_r30; +s32 fn_1_F6B0(void) +{ + StructBss4A4 *var_r31; + StructBss3E4 *temp_r30; var_r31 = &lbl_1_bss_4A4; temp_r30 = &lbl_1_bss_3E4[var_r31->unk00]; @@ -2978,16 +3093,15 @@ s32 fn_1_F6B0(void) { return 0; } -StructData1E8 lbl_1_data_32C[] = { - { fn_1_F600, fn_1_F6B0, 360 }, - { NULL, NULL, -1 } -}; +StructData1E8 lbl_1_data_32C[] = { { fn_1_F600, fn_1_F6B0, 360 }, { NULL, NULL, -1 } }; -void fn_1_F75C(void) { +void fn_1_F75C(void) +{ fn_1_11D18(&lbl_1_bss_24, lbl_1_data_32C); } -s32 fn_1_F78C(void) { +s32 fn_1_F78C(void) +{ s32 var_r31; var_r31 = 0; @@ -3001,10 +3115,11 @@ s32 fn_1_F78C(void) { return var_r31; } -void fn_1_F824(omObjData* arg0) { - StructBss1A8* sp8; - StructBss4A4* var_r30; - StructBss3E4* temp_r29; +void fn_1_F824(omObjData *arg0) +{ + StructBss1A8 *sp8; + StructBss4A4 *var_r30; + StructBss3E4 *temp_r29; s32 i; sp8 = &lbl_1_bss_1A8; @@ -3023,7 +3138,8 @@ void fn_1_F824(omObjData* arg0) { } } -void fn_1_F924(omObjData* arg0) { +void fn_1_F924(omObjData *arg0) +{ if (omSysExitReq == 1) { HuAudSeqAllFadeOut(250); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); @@ -3031,10 +3147,11 @@ void fn_1_F924(omObjData* arg0) { } } -void fn_1_F984(void) { - StructBss180* var_r21; - StructBss4A4* var_r22; - StructBss3E4* temp_r25; +void fn_1_F984(void) +{ + StructBss180 *var_r21; + StructBss4A4 *var_r22; + StructBss3E4 *temp_r25; s32 i; fn_1_3088(); @@ -3047,13 +3164,8 @@ void fn_1_F984(void) { var_r22 = &lbl_1_bss_4A4; var_r22->unk00 = var_r22->unk04 = var_r22->unk08 = var_r22->unk0C = 0; { - StructBss1BC* var_r20 = &lbl_1_bss_1BC; - Vec sp18[] = { - { -600.0f, 0.0f, 300.0f }, - { -600.0f, 0.0f, 150.0f }, - { -450.0f, 0.0f, 150.0f }, - { -300.0f, 0.0f, 150.0f } - }; + StructBss1BC *var_r20 = &lbl_1_bss_1BC; + Vec sp18[] = { { -600.0f, 0.0f, 300.0f }, { -600.0f, 0.0f, 150.0f }, { -450.0f, 0.0f, 150.0f }, { -300.0f, 0.0f, 150.0f } }; sp18[0].z = var_r20->unk04[0].z - 100.0f; for (i = 0; i < 4; i++) { @@ -3074,7 +3186,8 @@ void fn_1_F984(void) { lbl_1_bss_3AC.unk28 = HuAudFXPlay(0x6D7); } -void fn_1_1026C(omObjData* arg0) { +void fn_1_1026C(omObjData *arg0) +{ switch (lbl_1_bss_18) { case 0: fn_1_F984(); @@ -3134,13 +3247,14 @@ void fn_1_1026C(omObjData* arg0) { fn_1_F924(arg0); } -void fn_1_10670(omObjData* arg0) { - StructBss220* var_r28; - StructBss1BC* var_r27; - StructBss1A8* var_r26; - StructBss180* temp_r30; - StructBss3E4* temp_r29; - StructBssD8* var_r25; +void fn_1_10670(omObjData *arg0) +{ + StructBss220 *var_r28; + StructBss1BC *var_r27; + StructBss1A8 *var_r26; + StructBss180 *temp_r30; + StructBss3E4 *temp_r29; + StructBssD8 *var_r25; s32 i; var_r28 = &lbl_1_bss_220; @@ -3167,7 +3281,8 @@ void fn_1_10670(omObjData* arg0) { #include "src/REL/executor.c" -void fn_1_108DC(void) { +void fn_1_108DC(void) +{ lbl_1_bss_0 = omInitObjMan(62, 0x2000); omGameSysInit(lbl_1_bss_0); fn_1_1A8(); @@ -3179,6 +3294,7 @@ void fn_1_108DC(void) { omAddObjEx(lbl_1_bss_0, 0x1000, 0, 0, -1, fn_1_10670); } -void ObjectSetup(void) { +void ObjectSetup(void) +{ fn_1_108DC(); } diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index 2c4c80b4..26583249 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -9,7 +9,6 @@ #include "game/pad.h" #include "game/sprite.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" #include "REL/m438Dll.h" diff --git a/src/REL/m439Dll/main.c b/src/REL/m439Dll/main.c index f89c03d4..8e761bba 100644 --- a/src/REL/m439Dll/main.c +++ b/src/REL/m439Dll/main.c @@ -20,8 +20,6 @@ #include "ext_math.h" -#include "rel_sqrt_consts.h" - #include "REL/m439data.h" typedef struct camera_params { diff --git a/src/REL/m440Dll/main.c b/src/REL/m440Dll/main.c index 4f9c8c9e..e200145c 100644 --- a/src/REL/m440Dll/main.c +++ b/src/REL/m440Dll/main.c @@ -12,7 +12,7 @@ #include "game/sprite.h" #include "game/wipe.h" #include "math.h" -#include "rel_sqrt_consts.h" + #include "string.h" // bss diff --git a/src/REL/m441Dll/main.c b/src/REL/m441Dll/main.c index fcb990a5..10409258 100644 --- a/src/REL/m441Dll/main.c +++ b/src/REL/m441Dll/main.c @@ -21,7 +21,6 @@ #include "game/sprite.h" #include "ext_math.h" -#include "rel_sqrt_consts.h" #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) diff --git a/src/REL/m442Dll/main.c b/src/REL/m442Dll/main.c index 38b861b7..b6e60e1e 100644 --- a/src/REL/m442Dll/main.c +++ b/src/REL/m442Dll/main.c @@ -12,7 +12,6 @@ #include "game/pad.h" #include "game/sprite.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" #include "REL/m442Dll.h" diff --git a/src/REL/m443Dll/main.c b/src/REL/m443Dll/main.c index b7c1cb01..5b22d7c6 100644 --- a/src/REL/m443Dll/main.c +++ b/src/REL/m443Dll/main.c @@ -11,7 +11,7 @@ #include "game/sprite.h" #include "game/wipe.h" #include "math.h" -#include "rel_sqrt_consts.h" + #include "string.h" #ifndef __MWERKS__ diff --git a/src/REL/m444dll/main.c b/src/REL/m444dll/main.c index 4a2c8b7e..12db5f84 100644 --- a/src/REL/m444dll/main.c +++ b/src/REL/m444dll/main.c @@ -19,8 +19,6 @@ #include "ext_math.h" #include "math.h" -#include "rel_sqrt_consts.h" - typedef struct camera_view_params { Vec rot; Vec pos; diff --git a/src/REL/m445Dll/main.c b/src/REL/m445Dll/main.c index 5056e81c..67dbe9d3 100755 --- a/src/REL/m445Dll/main.c +++ b/src/REL/m445Dll/main.c @@ -18,7 +18,6 @@ #include "dolphin.h" #include "ext_math.h" -#include "rel_sqrt_consts.h" typedef struct { /* 0x00 */ s16 unk00; diff --git a/src/REL/m448Dll/main.c b/src/REL/m448Dll/main.c index 6c160d1c..8309a194 100755 --- a/src/REL/m448Dll/main.c +++ b/src/REL/m448Dll/main.c @@ -20,7 +20,6 @@ #include "dolphin.h" #include "ext_math.h" -#include "rel_sqrt_consts.h" typedef struct { /* 0x00 */ s32 unk00; diff --git a/src/REL/m450Dll/main.c b/src/REL/m450Dll/main.c index 8bd49c19..cca17e4b 100644 --- a/src/REL/m450Dll/main.c +++ b/src/REL/m450Dll/main.c @@ -31,7 +31,6 @@ #include "game/sprite.h" #include "ext_math.h" -#include "rel_sqrt_consts.h" #include "game/window.h" #include "string.h" diff --git a/src/REL/m451Dll/m451.c b/src/REL/m451Dll/m451.c index 280fe651..05d6adaa 100644 --- a/src/REL/m451Dll/m451.c +++ b/src/REL/m451Dll/m451.c @@ -17,8 +17,6 @@ #include "game/gamework_data.h" -#include "rel_sqrt_consts.h" - typedef struct bss_348_data { s16 unk0[5]; s16 unkA; diff --git a/src/REL/m453Dll/main.c b/src/REL/m453Dll/main.c index 3e07c4b1..2c8f9116 100644 --- a/src/REL/m453Dll/main.c +++ b/src/REL/m453Dll/main.c @@ -12,7 +12,7 @@ #include "game/pad.h" #include "game/sprite.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" + #include "string.h" #include "REL/m453Dll.h" diff --git a/src/REL/m455Dll/main.c b/src/REL/m455Dll/main.c index 3a41ee0b..2a2c634a 100644 --- a/src/REL/m455Dll/main.c +++ b/src/REL/m455Dll/main.c @@ -1,25 +1,24 @@ +#include "game/hsfdraw.h" +#include "game/hsfman.h" #include "game/object.h" #include "game/objsub.h" -#include "game/hsfman.h" -#include "game/hsfdraw.h" + #include "game/hsfmotion.h" #include "game/pad.h" -#include "game/wipe.h" -#include "game/frand.h" -#include "game/audio.h" -#include "game/minigame_seq.h" -#include "game/gamework_data.h" -#include "game/chrman.h" #include "REL/m455Dll.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" +#include "game/wipe.h" + #include "ext_math.h" #include "math.h" -#include "rel_sqrt_consts.h" - - typedef struct camera_view_params { float zoom; Vec pos; @@ -51,7 +50,6 @@ Vec lbl_1_bss_8; s16 lbl_1_bss_4; s32 lbl_1_bss_0; - void fn_1_330(omObjData *object); void fn_1_B94(Process *objman); void fn_1_2A90(Process *objman); @@ -68,9 +66,9 @@ void ObjectSetup(void) Hu3DCameraPerspectiveSet(HU3D_CAM0, -1, 20, 25000, 1.2f); Hu3DCameraViewportSet(HU3D_CAM0, 0, 0, 640, 480, 0, 1); lbl_1_bss_3C = omAddObjEx(objman, 32730, 0, 0, -1, omOutView); - lbl_1_bss_8.x = lbl_1_data_44.x-lbl_1_data_38.x; - lbl_1_bss_8.y = lbl_1_data_44.y-lbl_1_data_38.y; - lbl_1_bss_8.z = lbl_1_data_44.z-lbl_1_data_38.z; + lbl_1_bss_8.x = lbl_1_data_44.x - lbl_1_data_38.x; + lbl_1_bss_8.y = lbl_1_data_44.y - lbl_1_data_38.y; + lbl_1_bss_8.z = lbl_1_data_44.z - lbl_1_data_38.z; PSVECNormalize(&lbl_1_bss_8, &lbl_1_bss_8); light = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50); Hu3DGLightInfinitytSet(light); @@ -107,7 +105,7 @@ void fn_1_330(omObjData *object) lbl_1_bss_24 = 60; lbl_1_bss_22 = -1; lbl_1_bss_20 = 0; - lbl_1_bss_16 = ((frand16()*270.0f)/65536.0f)+30.0f; + lbl_1_bss_16 = ((frand16() * 270.0f) / 65536.0f) + 30.0f; WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); camera->fov = 30.0f; object->func = fn_1_478; @@ -152,115 +150,114 @@ s16 lbl_1_data_90 = -1; s32 lbl_1_data_94 = -1; s32 lbl_1_data_98 = -1; - - void fn_1_478(omObjData *object) { s32 i; omObjData **playerList; M455Player *player; - - switch(fn_1_320()) { + + switch (fn_1_320()) { case 0: - if(lbl_1_data_98 < 0) { + if (lbl_1_data_98 < 0) { lbl_1_data_98 = HuAudFXPlay(1985); } - if(--lbl_1_bss_2C == 0) { + if (--lbl_1_bss_2C == 0) { fn_1_310(1); lbl_1_bss_2C = 120; } break; - + case 1: - if(--lbl_1_bss_2C == 0) { + if (--lbl_1_bss_2C == 0) { fn_1_310(2); lbl_1_bss_4 = MGSeqStartCreate(); } break; - + case 2: - if(!MGSeqStatGet(lbl_1_bss_4)) { + if (!MGSeqStatGet(lbl_1_bss_4)) { fn_1_310(3); } - if(lbl_1_data_94 < 0 && (MGSeqStatGet(lbl_1_bss_4) & 0x10)) { + if (lbl_1_data_94 < 0 && (MGSeqStatGet(lbl_1_bss_4) & 0x10)) { lbl_1_data_94 = HuAudSeqPlay(60); } break; - + case 3: - if(--lbl_1_bss_24 == 0) { + if (--lbl_1_bss_24 == 0) { lbl_1_bss_26--; - if(lbl_1_data_90 >= 0) { + if (lbl_1_data_90 >= 0) { MGSeqParamSet(lbl_1_data_90, 1, lbl_1_bss_26); } lbl_1_bss_24 = 60; - if(lbl_1_bss_26 == 10) { + if (lbl_1_bss_26 == 10) { lbl_1_data_90 = MGSeqTimerCreate(10); } } - if(lbl_1_bss_16 >= 0) { + if (lbl_1_bss_16 >= 0) { lbl_1_bss_16--; } - if(lbl_1_bss_26 == 0 || fn_1_C90()) { + if (lbl_1_bss_26 == 0 || fn_1_C90()) { fn_1_310(4); lbl_1_bss_4 = MGSeqFinishCreate(); HuAudSeqFadeOut(lbl_1_data_94, 100); } break; - + case 4: - if(lbl_1_data_90 >= 0) { + if (lbl_1_data_90 >= 0) { MGSeqParamSet(lbl_1_data_90, 2, -1); lbl_1_data_90 = -1; } - if(!MGSeqStatGet(lbl_1_bss_4)) { + if (!MGSeqStatGet(lbl_1_bss_4)) { fn_1_310(7); lbl_1_bss_2C = 120; } break; - + case 7: - if(--lbl_1_bss_2C == 0) { + if (--lbl_1_bss_2C == 0) { fn_1_310(9); - if(lbl_1_bss_30 >= 0) { + if (lbl_1_bss_30 >= 0) { HuAudSStreamPlay(1); playerList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { player = playerList[i]->data; - if(player->unk28 < 0) { - GWPlayerCoinWinSet(i, lbl_1_bss_22+1); + if (player->unk28 < 0) { + GWPlayerCoinWinSet(i, lbl_1_bss_22 + 1); } } - } else { + } + else { HuAudSStreamPlay(4); - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { GWPlayerCoinWinSet(i, 3); } } lbl_1_bss_2C = 210; } break; - + case 9: - if(--lbl_1_bss_2C == 0) { + if (--lbl_1_bss_2C == 0) { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); HuAudFXStop(lbl_1_data_98); object->func = fn_1_B38; } break; } - if(lbl_1_bss_20) { - if(lbl_1_bss_20 >= 2) { - for(i=0; i<100; i++){ - s32 srcIdx = (frand8()*lbl_1_bss_20) >> 8; - s32 dstIdx = (frand8()*lbl_1_bss_20) >> 8; + if (lbl_1_bss_20) { + if (lbl_1_bss_20 >= 2) { + for (i = 0; i < 100; i++) { + s32 srcIdx = (frand8() * lbl_1_bss_20) >> 8; + s32 dstIdx = (frand8() * lbl_1_bss_20) >> 8; s32 temp = lbl_1_bss_18[srcIdx]; lbl_1_bss_18[srcIdx] = lbl_1_bss_18[dstIdx]; lbl_1_bss_18[dstIdx] = temp; } } playerList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - for(i=0; idata; @@ -268,7 +265,7 @@ void fn_1_478(omObjData *object) } lbl_1_bss_20 = 0; } - if(omSysExitReq && !WipeStatGet()) { + if (omSysExitReq && !WipeStatGet()) { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); object->func = fn_1_B38; } @@ -276,7 +273,7 @@ void fn_1_478(omObjData *object) void fn_1_B38(omObjData *object) { - if(WipeStatGet()) { + if (WipeStatGet()) { return; } fn_1_C28(); @@ -295,9 +292,8 @@ void fn_1_B94(Process *objman) lbl_1_bss_28 = 0; lbl_1_bss_14 = 3; omMakeGroupEx(objman, 0, 4); - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { omAddObjEx(objman, 5, 10, 50, 0, fn_1_D14); - } } @@ -308,10 +304,10 @@ void fn_1_C28(void) s32 i; omObjData **playerList; playerList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - if(playerList == NULL) { + if (playerList == NULL) { return; } - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { fn_1_2010(playerList[i]); } } @@ -321,9 +317,9 @@ s32 fn_1_C90(void) s32 i; omObjData **playerList; playerList = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { M455Player *player = playerList[i]->data; - if(!player->field1) { + if (!player->field1) { return 0; } } @@ -333,11 +329,16 @@ s32 fn_1_C90(void) s32 fn_1_3214(void); u32 lbl_1_data_E0[5][2] = { - 0x5F0000, 0, - 0x540024, 1, - 0x54001C, 1, - 0x5F0017, 0, - 0x5F0018, 0, + 0x5F0000, + 0, + 0x540024, + 1, + 0x54001C, + 1, + 0x5F0017, + 0, + 0x5F0018, + 0, }; Vec lbl_1_data_108[4] = { @@ -372,13 +373,14 @@ void fn_1_D14(omObjData *object) Hu3DModelCameraSet(object->model[0], HU3D_CAM0); object->model[1] = Hu3DModelCreateFile(0x540002); Hu3DModelHookSet(object->model[0], "test11_tex_we-itemhook-r", object->model[1]); - Hu3DModelAttrSet(object->model[1], HU3D_MOTATTR_SHAPE_PAUSE|HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(object->model[1], HU3D_MOTATTR_SHAPE_PAUSE | HU3D_MOTATTR_PAUSE); player->unk1C = 1; - for(i=0; i<5; i++) { - if(lbl_1_data_E0[i][1] == 0) { + for (i = 0; i < 5; i++) { + if (lbl_1_data_E0[i][1] == 0) { object->motion[i] = CharModelMotionCreate(player->unk10, lbl_1_data_E0[i][0]); - } else { - object->motion[i] = CharModelMotionCreate(player->unk10, player->unk10+lbl_1_data_E0[i][0]); + } + else { + object->motion[i] = CharModelMotionCreate(player->unk10, player->unk10 + lbl_1_data_E0[i][0]); } } Hu3DMotionSet(object->model[0], object->motion[player->unk1C]); @@ -400,7 +402,7 @@ void fn_1_D14(omObjData *object) Hu3DMotionSet(object->model[4], i); Hu3DModelAttrSet(object->model[4], HU3D_MOTATTR_LOOP); Hu3DModelAttrSet(object->model[4], HU3D_MOTATTR_PAUSE); - player->unk4C.x = object->trans.x+(50.0f*((((s32)frand() & 0x1FF)-256.0f)/256.0f)); + player->unk4C.x = object->trans.x + (50.0f * ((((s32)frand() & 0x1FF) - 256.0f) / 256.0f)); player->unk4C.y = -200; player->unk4C.z = -1500; Hu3DModelPosSetV(object->model[4], &player->unk4C); @@ -413,13 +415,14 @@ void fn_1_D14(omObjData *object) player->unk34[1].z = -1000; CharModelDataClose(player->unk10); object->rot.y = 180; - if(((s32)frand() & 0x1F) < 4-player->unk12) { - player->unk58 = lbl_1_bss_16-(60.0f*(0.05f*(4-player->unk12)))-((frand8()/256.0f)*6.0f); - if(player->unk58 < 0) { + if (((s32)frand() & 0x1F) < 4 - player->unk12) { + player->unk58 = lbl_1_bss_16 - (60.0f * (0.05f * (4 - player->unk12))) - ((frand8() / 256.0f) * 6.0f); + if (player->unk58 < 0) { player->unk58 = 0; } - } else { - player->unk58 = lbl_1_bss_16+(60.0f*(0.1f*(4-player->unk12)))+((frand8()/256.0f)*30.0f)+6.0f; + } + else { + player->unk58 = lbl_1_bss_16 + (60.0f * (0.1f * (4 - player->unk12))) + ((frand8() / 256.0f) * 30.0f) + 6.0f; } player->unk28 = -1; object->func = fn_1_1444; @@ -428,25 +431,17 @@ void fn_1_D14(omObjData *object) void fn_1_1400(omObjData *object) { M455Player *player = object->data; - if(player->unk58 != 0) { + if (player->unk58 != 0) { player->unk58--; - } else { + } + else { player->unkA |= PAD_BUTTON_A; } } -float lbl_1_data_154[4] = { - -350, - -170, - 170, - 350 -}; +float lbl_1_data_154[4] = { -350, -170, 170, 350 }; -float lbl_1_data_164[3] = { - 1.5f, - 1.0f, - 0.5f -}; +float lbl_1_data_164[3] = { 1.5f, 1.0f, 0.5f }; float fn_1_2390(float arg0, float arg1, float arg2); s32 fn_1_24F0(Vec *arg0, Vec *arg1, float arg2); @@ -461,38 +456,39 @@ void fn_1_1444(omObjData *object) Vec spC; float temp_f31; - temp_r31 = object->data; temp_r29 = temp_r31->unk1C; temp_r28 = temp_r31->unk20; object->trans.y = fn_1_687C(); - if(fn_1_320() < 3) { + if (fn_1_320() < 3) { return; } - switch(temp_r31->unk16) { + switch (temp_r31->unk16) { case 0: - if(fn_1_320() == 4 || lbl_1_bss_14 == 0) { + if (fn_1_320() == 4 || lbl_1_bss_14 == 0) { temp_r31->field1 = 1; temp_r31->unk16 = 2; espDispOff(temp_r31->unk2A); return; } - if(!GWPlayerCfg[temp_r31->unk2].iscom) { + if (!GWPlayerCfg[temp_r31->unk2].iscom) { temp_r31->unk6 = HuPadStkX[temp_r31->unk4]; temp_r31->unk7 = HuPadStkY[temp_r31->unk4]; temp_r31->unk8 = HuPadBtn[temp_r31->unk4]; temp_r31->unkA = HuPadBtnDown[temp_r31->unk4]; - } else { + } + else { temp_r31->unk8 = temp_r31->unkA = 0; temp_r31->unk6 = temp_r31->unk7 = 0; fn_1_1400(object); } - if(lbl_1_bss_16 == 0) { - if(temp_r31->unkC) { + if (lbl_1_bss_16 == 0) { + if (temp_r31->unkC) { omVibrate(temp_r31->unk2, 12, 12, 0); - } else { + } + else { sp18.x = object->trans.x; - sp18.y = object->trans.y+300; + sp18.y = object->trans.y + 300; sp18.z = object->trans.z; Hu3D3Dto2D(&sp18, HU3D_CAM0, &sp18); espPosSet(temp_r31->unk2A, sp18.x, sp18.y); @@ -501,31 +497,30 @@ void fn_1_1444(omObjData *object) } temp_r31->unk2C = temp_r31->unk2E = 30; } - - if(temp_r31->unkA & PAD_BUTTON_A) { + + if (temp_r31->unkA & PAD_BUTTON_A) { temp_r31->unk16 = 1; temp_r31->unk24 = temp_r31->unk26 = 90; temp_r31->unk2C = -1; - if(lbl_1_bss_16 <= 0) { + if (lbl_1_bss_16 <= 0) { lbl_1_bss_18[lbl_1_bss_20++] = temp_r31->unk2; } - Hu3DModelAttrReset(object->model[1], HU3D_MOTATTR_SHAPE_PAUSE|HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(object->model[1], HU3D_MOTATTR_SHAPE_PAUSE | HU3D_MOTATTR_PAUSE); Hu3DMotionSpeedSet(object->model[1], 1.2f); Hu3DMotionShapeSpeedSet(object->model[1], 1.2f); HuAudFXPlay(1986); - } temp_r29 = 1; temp_r28 = HU3D_MOTATTR_LOOP; break; - + case 1: temp_r29 = 2; temp_r28 = HU3D_MOTATTR_NONE; - if(!temp_r31->field0) { - if(temp_r31->unk28 >= 0 && temp_r31->unk28 < 3) { + if (!temp_r31->field0) { + if (temp_r31->unk28 >= 0 && temp_r31->unk28 < 3) { temp_r31->field0 = 1; - if(temp_r31->unk28 == 0) { + if (temp_r31->unk28 == 0) { lbl_1_bss_30 = temp_r31->unk2; } temp_f31 = lbl_1_data_164[temp_r31->unk28]; @@ -533,13 +528,13 @@ void fn_1_1444(omObjData *object) Hu3DModelAttrReset(object->model[4], HU3D_ATTR_DISPOFF); } } - temp_f31 = 1.0f-((float)temp_r31->unk24/temp_r31->unk26); + temp_f31 = 1.0f - ((float)temp_r31->unk24 / temp_r31->unk26); sp24[0].x = temp_r31->unk4C.x; sp24[0].y = temp_r31->unk4C.y; sp24[0].z = temp_r31->unk4C.z; sp24[1].x = object->trans.x; - sp24[1].y = object->trans.y+1500; - sp24[1].z = object->trans.z-200; + sp24[1].y = object->trans.y + 1500; + sp24[1].z = object->trans.z - 200; sp24[2].x = lbl_1_data_154[temp_r31->unk2]; sp24[2].y = 0; sp24[2].z = 150; @@ -547,32 +542,32 @@ void fn_1_1444(omObjData *object) VECSubtract(&sp18, &Hu3DData[object->model[4]].pos, &spC); Hu3DModelRotSet(object->model[4], atan2d(-spC.y, VECMagXZ(&spC)), atan2d(spC.x, spC.z), 0); Hu3DModelPosSetV(object->model[4], &sp18); - if(sp18.y > 0.0f) { - if(!temp_r31->field2 && temp_r31->field0) { + if (sp18.y > 0.0f) { + if (!temp_r31->field2 && temp_r31->field0) { fn_1_6CB0(&sp18, -1); fn_1_6698(&sp18, -1, -1, -1); temp_r31->field2 = 1; } } - temp_r31->unk34[0].x = temp_f31*(2.0f*lbl_1_data_154[temp_r31->unk2]); - temp_r31->unk34[0].y = -200.0f+(-400.0f*temp_f31); - temp_r31->unk34[0].z = -500.0f+(-1500.0f*temp_f31); - temp_r31->unk34[1].x = temp_f31*lbl_1_data_154[temp_r31->unk2]; - temp_r31->unk34[1].y = -200.0f+(400.0f*temp_f31); - temp_r31->unk34[1].z = -1000.0f+(750.0f*temp_f31); - if(--temp_r31->unk24 == 0) { + temp_r31->unk34[0].x = temp_f31 * (2.0f * lbl_1_data_154[temp_r31->unk2]); + temp_r31->unk34[0].y = -200.0f + (-400.0f * temp_f31); + temp_r31->unk34[0].z = -500.0f + (-1500.0f * temp_f31); + temp_r31->unk34[1].x = temp_f31 * lbl_1_data_154[temp_r31->unk2]; + temp_r31->unk34[1].y = -200.0f + (400.0f * temp_f31); + temp_r31->unk34[1].z = -1000.0f + (750.0f * temp_f31); + if (--temp_r31->unk24 == 0) { temp_r31->unk16 = 2; temp_r31->field1 = 1; - if(temp_r31->field0) { + if (temp_r31->field0) { Hu3DModelAttrReset(object->model[4], HU3D_MOTATTR_PAUSE); Hu3DModelRotSet(object->model[4], 0, 0, 0); lbl_1_bss_14--; } } break; - + case 2: - if(fn_1_320() == 7) { + if (fn_1_320() == 7) { temp_r31->unk16 = 3; Hu3DModelObjPosGet(object->model[0], "test11_tex_we-itemhook-r", &sp18); CharModelEffectCreate(1, &sp18); @@ -580,46 +575,50 @@ void fn_1_1444(omObjData *object) Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); } break; - + case 3: - if(fn_1_320() < 9) { + if (fn_1_320() < 9) { temp_r29 = 0; temp_r28 = HU3D_MOTATTR_LOOP; - } else { + } + else { object->rot.y = fn_1_2390(object->rot.y, 0, 0.2f); - if(temp_r31->unk2 == lbl_1_bss_30) { + if (temp_r31->unk2 == lbl_1_bss_30) { temp_r29 = 3; temp_r28 = HU3D_MOTATTR_NONE; - } else { + } + else { temp_r29 = 4; temp_r28 = HU3D_MOTATTR_NONE; } } break; - + default: break; } - if(temp_r31->unk2C) { - if(temp_r31->unk2C >= 0) { - temp_f31 = (0.5*sind((90.0f*(float)temp_r31->unk2C)/(float)temp_r31->unk2E))+0.5; + if (temp_r31->unk2C) { + if (temp_r31->unk2C >= 0) { + temp_f31 = (0.5 * sind((90.0f * (float)temp_r31->unk2C) / (float)temp_r31->unk2E)) + 0.5; espScaleSet(temp_r31->unk2A, temp_f31, temp_f31); - if(--temp_r31->unk2C == 0) { + if (--temp_r31->unk2C == 0) { temp_r31->unk2C = temp_r31->unk2E; } temp_r31->unk30++; - } else { - if(temp_r31->unk30 > 30.0f) { + } + else { + if (temp_r31->unk30 > 30.0f) { espDispOff(temp_r31->unk2A); temp_r31->unk2C = 0; - } else { + } + else { temp_r31->unk30++; } } } - if(temp_r31->unk16 >= 2 && temp_r31->unk16 <= 3 && temp_r31->field0) { + if (temp_r31->unk16 >= 2 && temp_r31->unk16 <= 3 && temp_r31->field0) { Hu3DData[object->model[4]].rot.y += 2.0f; - if(0.0f == Hu3DData[object->model[4]].unk_64) { + if (0.0f == Hu3DData[object->model[4]].unk_64) { HuAudFXPlay(1987); } } @@ -633,7 +632,7 @@ void fn_1_1444(omObjData *object) void fn_1_2010(omObjData *object) { M455Player *player = object->data; - if(object->data != NULL) { + if (object->data != NULL) { HuMemDirectFree(object->data); object->data = NULL; } @@ -647,7 +646,7 @@ void fn_1_2060(ModelData *arg0, Mtx arg1) { Vec vtxPos[4]; Mtx mtxHook; - + Vec pos; Vec itemHookPos; s32 i; @@ -666,16 +665,16 @@ void fn_1_2060(ModelData *arg0, Mtx arg1) GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); Hu3DModelObjMtxGet(object->model[0], "test11_tex_we-itemhook-r", mtxHook); Hu3DModelObjPosGet(object->model[1], "hook", &pos); MTXMultVec(mtxHook, &pos, &vtxPos[0]); - for(i=0; i<2; i++) { - vtxPos[i+1].x = player->unk34[i].x; - vtxPos[i+1].y = player->unk34[i].y; - vtxPos[i+1].z = player->unk34[i].z; + for (i = 0; i < 2; i++) { + vtxPos[i + 1].x = player->unk34[i].x; + vtxPos[i + 1].y = player->unk34[i].y; + vtxPos[i + 1].z = player->unk34[i].z; } - if(player->field0) { + if (player->field0) { Mtx hookMtx; Vec hookPos; Hu3DModelObjMtxGet(object->model[4], "itemhook_C", hookMtx); @@ -683,14 +682,15 @@ void fn_1_2060(ModelData *arg0, Mtx arg1) hookPos.y = -60.000004f; hookPos.z = 35.0f; MTXMultVec(hookMtx, &hookPos, &vtxPos[3]); - } else { + } + else { vtxPos[3].x = modelPuku->pos.x; vtxPos[3].y = modelPuku->pos.y; vtxPos[3].z = modelPuku->pos.z; } GXBegin(GX_LINESTRIP, GX_VTXFMT0, 20); - for(i=0; i<20; i++) { - fn_1_27A0(vtxPos, &pos, i/19.0f); + for (i = 0; i < 20; i++) { + fn_1_27A0(vtxPos, &pos, i / 19.0f); GXPosition3f32(pos.x, pos.y, pos.z); } GXEnd(); @@ -698,16 +698,16 @@ void fn_1_2060(ModelData *arg0, Mtx arg1) float fn_1_2390(float arg0, float arg1, float arg2) { - float temp_f31 = fmod(arg1-arg0, 360); + float temp_f31 = fmod(arg1 - arg0, 360); float temp_f30; - if(temp_f31 < 0) { + if (temp_f31 < 0) { temp_f31 += 360.0f; } - if(temp_f31 > 180) { + if (temp_f31 > 180) { temp_f31 -= 360.0f; } - temp_f30 = fmod(arg0+(arg2*temp_f31), 360); - if(temp_f30 < 0) { + temp_f30 = fmod(arg0 + (arg2 * temp_f31), 360); + if (temp_f30 < 0) { temp_f30 += 360.0f; } return temp_f30; @@ -715,8 +715,8 @@ float fn_1_2390(float arg0, float arg1, float arg2) float fn_1_2494(float arg0, float arg1, float arg2, float arg3) { - float temp_f31 = 1.0f-arg3; - return (arg0*(temp_f31*temp_f31))+((2.0f*temp_f31)*arg3*arg1)+(arg2*(arg3*arg3)); + float temp_f31 = 1.0f - arg3; + return (arg0 * (temp_f31 * temp_f31)) + ((2.0f * temp_f31) * arg3 * arg1) + (arg2 * (arg3 * arg3)); } s32 fn_1_24F0(Vec *arg0, Vec *arg1, float arg2) @@ -728,9 +728,9 @@ s32 fn_1_24F0(Vec *arg0, Vec *arg1, float arg2) float fn_1_26F8(float arg0, float arg1, float arg2, float arg3, float arg4) { - float temp_f31 = 1.0f-arg0; - float temp_f30 = temp_f31*temp_f31; - float temp_f29 = temp_f31*temp_f31*temp_f31; + float temp_f31 = 1.0f - arg0; + float temp_f30 = temp_f31 * temp_f31; + float temp_f29 = temp_f31 * temp_f31 * temp_f31; return (arg4 * (arg0 * (arg0 * arg0))) + ((arg3 * (arg0 * (3.0f * temp_f31 * arg0))) + ((temp_f29 * arg1) + (arg2 * (3.0f * temp_f30 * arg0)))); } @@ -755,33 +755,33 @@ void fn_1_2A90(Process *objman) void fn_1_2AF4(s32 arg0, s32 arg1, float arg2) { - CZoom = lbl_1_data_0[arg0].zoom+(arg2*(lbl_1_data_0[arg1].zoom-lbl_1_data_0[arg0].zoom)); - Center.x = lbl_1_data_0[arg0].pos.x+(arg2*(lbl_1_data_0[arg1].pos.x-lbl_1_data_0[arg0].pos.x)); - Center.y = lbl_1_data_0[arg0].pos.y+(arg2*(lbl_1_data_0[arg1].pos.y-lbl_1_data_0[arg0].pos.y)); - Center.z = lbl_1_data_0[arg0].pos.z+(arg2*(lbl_1_data_0[arg1].pos.z-lbl_1_data_0[arg0].pos.z)); - CRot.x = lbl_1_data_0[arg0].rot.x+(arg2*(lbl_1_data_0[arg1].rot.x-lbl_1_data_0[arg0].rot.x)); - CRot.y = lbl_1_data_0[arg0].rot.y+(arg2*(lbl_1_data_0[arg1].rot.y-lbl_1_data_0[arg0].rot.y)); - CRot.z = lbl_1_data_0[arg0].rot.z+(arg2*(lbl_1_data_0[arg1].rot.z-lbl_1_data_0[arg0].rot.z)); + CZoom = lbl_1_data_0[arg0].zoom + (arg2 * (lbl_1_data_0[arg1].zoom - lbl_1_data_0[arg0].zoom)); + Center.x = lbl_1_data_0[arg0].pos.x + (arg2 * (lbl_1_data_0[arg1].pos.x - lbl_1_data_0[arg0].pos.x)); + Center.y = lbl_1_data_0[arg0].pos.y + (arg2 * (lbl_1_data_0[arg1].pos.y - lbl_1_data_0[arg0].pos.y)); + Center.z = lbl_1_data_0[arg0].pos.z + (arg2 * (lbl_1_data_0[arg1].pos.z - lbl_1_data_0[arg0].pos.z)); + CRot.x = lbl_1_data_0[arg0].rot.x + (arg2 * (lbl_1_data_0[arg1].rot.x - lbl_1_data_0[arg0].rot.x)); + CRot.y = lbl_1_data_0[arg0].rot.y + (arg2 * (lbl_1_data_0[arg1].rot.y - lbl_1_data_0[arg0].rot.y)); + CRot.z = lbl_1_data_0[arg0].rot.z + (arg2 * (lbl_1_data_0[arg1].rot.z - lbl_1_data_0[arg0].rot.z)); } void fn_1_2D44(omObjData *object) { CameraData *camera = &Hu3DCamera[0]; - switch(fn_1_320()) { + switch (fn_1_320()) { case 1: - fn_1_2AF4(0, 1, sind(lbl_1_data_184[0]*90.0f)); - if(lbl_1_data_184[0] < 1.0f) { - lbl_1_data_184[0] += 1.0f/60.0f; - if(lbl_1_data_184[0] > 1.0f) { + fn_1_2AF4(0, 1, sind(lbl_1_data_184[0] * 90.0f)); + if (lbl_1_data_184[0] < 1.0f) { + lbl_1_data_184[0] += 1.0f / 60.0f; + if (lbl_1_data_184[0] > 1.0f) { lbl_1_data_184[0] = 1.0f; } } break; - + case 6: fn_1_2AF4(1, 1, 0); break; - + case 4: case 5: case 7: @@ -794,9 +794,9 @@ s32 fn_1_3214(void) { s32 rumble = HuPadRumbleGet(); s32 i; - for(i=0; i<4; i++) { - if(!GWPlayerCfg[i].iscom) { - if((rumble & lbl_1_data_18C[GWPlayerCfg[i].pad_idx]) == 0) { + for (i = 0; i < 4; i++) { + if (!GWPlayerCfg[i].iscom) { + if ((rumble & lbl_1_data_18C[GWPlayerCfg[i].pad_idx]) == 0) { return 0; } } @@ -804,4 +804,4 @@ s32 fn_1_3214(void) return GWGameStat.rumble; } -float lbl_1_data_19C[] = { 0,355,0,0,0,275,128,950,6,0,0,0,190,0,550 }; \ No newline at end of file +float lbl_1_data_19C[] = { 0, 355, 0, 0, 0, 275, 128, 950, 6, 0, 0, 0, 190, 0, 550 }; diff --git a/src/REL/m461Dll/main.c b/src/REL/m461Dll/main.c index 5b0ae287..f94c9831 100644 --- a/src/REL/m461Dll/main.c +++ b/src/REL/m461Dll/main.c @@ -22,7 +22,6 @@ #include "game/sprite.h" #include "ext_math.h" -#include "rel_sqrt_consts.h" #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) diff --git a/src/REL/mentDll/common.c b/src/REL/mentDll/common.c index 9d71da1f..82910c62 100644 --- a/src/REL/mentDll/common.c +++ b/src/REL/mentDll/common.c @@ -13,9 +13,6 @@ #include "game/wipe.h" #include "math.h" - -#include "rel_sqrt_consts.h" - Process *lbl_1_bss_0; // TODO: unknown type extern s32 lbl_1_bss_A8[]; diff --git a/src/REL/messDll/main.c b/src/REL/messDll/main.c index 9f861bf1..f7b32576 100755 --- a/src/REL/messDll/main.c +++ b/src/REL/messDll/main.c @@ -9,9 +9,8 @@ #include "dolphin.h" #include "ext_math.h" -#include "rel_sqrt_consts.h" -extern s32 sprintf(char*, const char*, s32); +extern s32 sprintf(char *, const char *, s32); static void fn_1_2BC(omObjData *arg0); static void fn_1_300(omObjData *arg0); @@ -27,7 +26,8 @@ static u8 lbl_1_bss_4_pad[4]; static s16 lbl_1_bss_2; static s16 lbl_1_bss_0; -void ObjectSetup(void) { +void ObjectSetup(void) +{ OSReport("******* SAFObjectSetup *********\n"); lbl_1_bss_34 = omInitObjMan(0x32, 0x2000); CRot.x = -20.0f; @@ -46,12 +46,14 @@ void ObjectSetup(void) { lbl_1_bss_8 = HuPrcChildCreate(fn_1_E88, 100, 0x3000, 0, lbl_1_bss_34); } -static void fn_1_2BC(omObjData *arg0) { +static void fn_1_2BC(omObjData *arg0) +{ WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); arg0->func = fn_1_300; } -static void fn_1_300(omObjData *arg0) { +static void fn_1_300(omObjData *arg0) +{ Vec sp2C; Vec sp20; Vec sp14; @@ -79,14 +81,14 @@ static void fn_1_300(omObjData *arg0) { sp14.z = cosd(CRot.y) * sind(CRot.x); temp_f31 = CRot.z; sp8.x = sp14.x * (sp20.x * sp20.x + (1.0f - sp20.x * sp20.x) * cosd(temp_f31)) - + sp14.y * (sp20.x * sp20.y * (1.0 - cosd(temp_f31)) - sp20.z * sind(temp_f31)) - + sp14.z * (sp20.x * sp20.z * (1.0 - cosd(temp_f31)) + sp20.y * sind(temp_f31)); + + sp14.y * (sp20.x * sp20.y * (1.0 - cosd(temp_f31)) - sp20.z * sind(temp_f31)) + + sp14.z * (sp20.x * sp20.z * (1.0 - cosd(temp_f31)) + sp20.y * sind(temp_f31)); sp8.y = sp14.x * (sp20.x * sp20.y * (1.0 - cosd(temp_f31)) + sp20.z * sind(temp_f31)) - + sp14.y * (sp20.y * sp20.y + (1.0f - sp20.y * sp20.y) * cosd(temp_f31)) - + sp14.z * (sp20.y * sp20.z * (1.0 - cosd(temp_f31)) - sp20.x * sind(temp_f31)); + + sp14.y * (sp20.y * sp20.y + (1.0f - sp20.y * sp20.y) * cosd(temp_f31)) + + sp14.z * (sp20.y * sp20.z * (1.0 - cosd(temp_f31)) - sp20.x * sind(temp_f31)); sp8.z = sp14.x * (sp20.x * sp20.z * (1.0 - cosd(temp_f31)) - sp20.y * sind(temp_f31)) - + sp14.y * (sp20.y * sp20.z * (1.0 - cosd(temp_f31)) + sp20.x * sind(temp_f31)) - + sp14.z * (sp20.z * sp20.z + (1.0f - sp20.z * sp20.z) * cosd(temp_f31)); + + sp14.y * (sp20.y * sp20.z * (1.0 - cosd(temp_f31)) + sp20.x * sind(temp_f31)) + + sp14.z * (sp20.z * sp20.z + (1.0f - sp20.z * sp20.z) * cosd(temp_f31)); VECCrossProduct(&sp14, &sp20, &sp20); VECNormalize(&sp20, &sp20); temp_r31 = HuPadSubStkX[0] & 0xF8; @@ -104,69 +106,19 @@ static void fn_1_300(omObjData *arg0) { } } -static char *lbl_1_data_32C[] = { - "001_Character_Name_ss", - "002_Hidden_Block", - "003_Battle_M", - "004_Bowser_M", - "005_Warp_M", - "006_Mushroom_M", - "007_Lot_house", - "008_Boo_house", - "009_ItemName", - "010_Bord", - "011_RoundItem", - "012_Spaceamida", - "013_Star_M", - "014_RollerCoaster", - "015_Last5", - "016_ItemShop", - "017_System", - "018_ModeSelect", - "019_Item", - "020_Map2_event", - "021_Lucky_Minigame", - "022_Bord_Start", - "023_Map3_event", - "024_Minigame_Name", - "025_mg_446", - "026_debugmes", - "027_Party_Mode", - "028_SETUP", - "029_Miracle", - "030_mg_kuppa", - "031_Story_Mode", - "032_Bowser_Story", - "033_Map4_event", - "034_mg_inst", - "035_E3_only", - "036_saf", - "037_Mg_inst_sys_", - "038_Bord_Results", - "039_Bord_Results2", - "040_Map5_event", - "041_Mg_Mode", - "042_mg_445", - "043_mg_447", - "044_mg_448", - "045_mg_449", - "046_mg_450", - "047_tutorial", - "048_Option_Rooml", - "049_Map6_event", - "050_charley", - "051_Present_Room", - "052_Extra_Room", - "053_Staff_Post", - "054_Staff_Name", - "055_Opening_Demo", - "056_mgex_inst", - NULL -}; +static char *lbl_1_data_32C[] + = { "001_Character_Name_ss", "002_Hidden_Block", "003_Battle_M", "004_Bowser_M", "005_Warp_M", "006_Mushroom_M", "007_Lot_house", "008_Boo_house", + "009_ItemName", "010_Bord", "011_RoundItem", "012_Spaceamida", "013_Star_M", "014_RollerCoaster", "015_Last5", "016_ItemShop", "017_System", + "018_ModeSelect", "019_Item", "020_Map2_event", "021_Lucky_Minigame", "022_Bord_Start", "023_Map3_event", "024_Minigame_Name", "025_mg_446", + "026_debugmes", "027_Party_Mode", "028_SETUP", "029_Miracle", "030_mg_kuppa", "031_Story_Mode", "032_Bowser_Story", "033_Map4_event", + "034_mg_inst", "035_E3_only", "036_saf", "037_Mg_inst_sys_", "038_Bord_Results", "039_Bord_Results2", "040_Map5_event", "041_Mg_Mode", + "042_mg_445", "043_mg_447", "044_mg_448", "045_mg_449", "046_mg_450", "047_tutorial", "048_Option_Rooml", "049_Map6_event", "050_charley", + "051_Present_Room", "052_Extra_Room", "053_Staff_Post", "054_Staff_Name", "055_Opening_Demo", "056_mgex_inst", NULL }; static s16 lbl_1_data_410 = -1; -static void fn_1_E88(void) { +static void fn_1_E88(void) +{ s16 sp10[256]; // unknown size char spC[4]; char sp8[4]; @@ -192,7 +144,7 @@ static void fn_1_E88(void) { var_r30 = (var_r28 << 16); var_r25 = 0; while (1) { - if ((s32) MessData_MesPtrGet(messDataPtr, var_r30 + var_r25) == 0) { + if ((s32)MessData_MesPtrGet(messDataPtr, var_r30 + var_r25) == 0) { break; } sp10[var_r28]++; @@ -226,13 +178,15 @@ static void fn_1_E88(void) { var_r31 = 0; } var_r30 = 0; - } else if (temp_r3_2 & 0x40) { + } + else if (temp_r3_2 & 0x40) { var_r31--; if (var_r31 < 0) { var_r31 = var_r27 - 1; } var_r30 = 0; - } else if (temp_r3_2 & 0x200) { + } + else if (temp_r3_2 & 0x200) { var_r30--; if (var_r30 < 0) { var_r31--; @@ -241,7 +195,8 @@ static void fn_1_E88(void) { } var_r30 = sp10[var_r31] - 1; } - } else { + } + else { var_r30++; if (var_r30 >= sp10[var_r31]) { var_r31++; @@ -255,18 +210,10 @@ static void fn_1_E88(void) { } } -static char *lbl_1_data_440[] = { - "]1^", - "]2^", - "]3^", - "]4^", - "]5^", - "]6^", - "]7^", - "]8^" -}; +static char *lbl_1_data_440[] = { "]1^", "]2^", "]3^", "]4^", "]5^", "]6^", "]7^", "]8^" }; -static s32 fn_1_11B0(s16 arg0, s16 arg1) { +static s32 fn_1_11B0(s16 arg0, s16 arg1) +{ WindowData *temp_r30; float spC[2]; s32 temp_r28; @@ -285,7 +232,7 @@ static s32 fn_1_11B0(s16 arg0, s16 arg1) { } temp_r28 = MAKE_MESSID(arg0, arg1); for (i = 0; i < 8; i++) { - HuWinInsertMesSizeGet(MAKE_MESSID_PTR(lbl_1_data_440[i]), (s16) i); + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(lbl_1_data_440[i]), (s16)i); } HuWinMesMaxSizeGet(1, &spC[0], temp_r28); if (spC[0] <= 16.0f) { @@ -293,7 +240,7 @@ static s32 fn_1_11B0(s16 arg0, s16 arg1) { } lbl_1_data_410 = HuWinCreate(-10000.0f, -10000.0f, spC[0], spC[1], 0); for (i = 0; i < 8; i++) { - HuWinInsertMesSet(lbl_1_data_410, MAKE_MESSID_PTR(lbl_1_data_440[i]), (s16) i); + HuWinInsertMesSet(lbl_1_data_410, MAKE_MESSID_PTR(lbl_1_data_440[i]), (s16)i); } temp_r30 = &winData[lbl_1_data_410]; temp_r30->push_key |= 0x360; diff --git a/src/REL/mgmodedll/mgmode.c b/src/REL/mgmodedll/mgmode.c index 28d8c990..67b59009 100644 --- a/src/REL/mgmodedll/mgmode.c +++ b/src/REL/mgmodedll/mgmode.c @@ -6,7 +6,6 @@ #include "game/wipe.h" #include "ext_math.h" -#include "rel_sqrt_consts.h" typedef struct camera_view_params { Vec rot; diff --git a/src/REL/modeseldll/main.c b/src/REL/modeseldll/main.c index fc10e07b..f1d9be9b 100644 --- a/src/REL/modeseldll/main.c +++ b/src/REL/modeseldll/main.c @@ -1,26 +1,22 @@ -#include "game/object.h" +#include "REL/modeseldll.h" +#include "game/audio.h" +#include "game/gamework_data.h" #include "game/hsfman.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" #include "game/process.h" #include "game/window.h" -#include "game/objsub.h" -#include "game/audio.h" #include "game/wipe.h" -#include "game/pad.h" #include "math.h" -#include "game/gamework_data.h" -#include "REL/modeseldll.h" -#include "rel_sqrt_consts.h" typedef struct camera_view_params { - Vec rot; - Vec pos; - float zoom; + Vec rot; + Vec pos; + float zoom; } CameraViewParams; -CameraViewParams lbl_1_data_0[] = { - { { 0, 0, 0 }, { 0, 0, 0 }, 1500 }, - { { 0, 0, 0 }, { 0, 0, 0 }, 524 } -}; +CameraViewParams lbl_1_data_0[] = { { { 0, 0, 0 }, { 0, 0, 0 }, 1500 }, { { 0, 0, 0 }, { 0, 0, 0 }, 524 } }; omObjData *lbl_1_bss_7C; Process *lbl_1_bss_78; @@ -42,325 +38,332 @@ void fn_1_1B6C(void); void ObjectSetup(void) { - s32 light; - OSReport("******* MS ObjectSetup *********\n"); - lbl_1_bss_78 = omInitObjMan(50, 8192); - omGameSysInit(lbl_1_bss_78); - lbl_1_bss_24[0].x = -70; - lbl_1_bss_24[0].y = 0; - lbl_1_bss_24[0].z = 0; - lbl_1_bss_C[0].x = 0; - lbl_1_bss_C[0].y = 130; - lbl_1_bss_C[0].z = -186; - lbl_1_bss_4[0] = 1360; - lbl_1_bss_64 = lbl_1_bss_24[0]; - lbl_1_bss_58 = lbl_1_bss_C[0]; - lbl_1_bss_54 = lbl_1_bss_4[0]; - lbl_1_bss_70[0] = 0; - Hu3DCameraCreate(1); - Hu3DCameraPerspectiveSet(1, 30, 20, 8000, 1.2f); - Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - Hu3DCameraScissorSet(1, 0, 16, 640, 448); - light = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); - Hu3DGLightInfinitytSet(light); - HuPrcChildCreate(fn_1_414, 100, 16384, 0, lbl_1_bss_78); - HuPrcChildCreate(fn_1_AF0, 200, 4096, 0, lbl_1_bss_78); - lbl_1_bss_7C = omAddObjEx(lbl_1_bss_78, 32730, 0, 0, -1, fn_1_B8C); - omAddObjEx(lbl_1_bss_78, 0, 32, 32, -1, fn_1_F40); - Hu3DBGColorSet(0, 0, 0); - mgBoardHostEnableF = 0; - HuWinInit(1); - mgPracticeEnableF = 0; - mgQuitExtraF = 0; + s32 light; + OSReport("******* MS ObjectSetup *********\n"); + lbl_1_bss_78 = omInitObjMan(50, 8192); + omGameSysInit(lbl_1_bss_78); + lbl_1_bss_24[0].x = -70; + lbl_1_bss_24[0].y = 0; + lbl_1_bss_24[0].z = 0; + lbl_1_bss_C[0].x = 0; + lbl_1_bss_C[0].y = 130; + lbl_1_bss_C[0].z = -186; + lbl_1_bss_4[0] = 1360; + lbl_1_bss_64 = lbl_1_bss_24[0]; + lbl_1_bss_58 = lbl_1_bss_C[0]; + lbl_1_bss_54 = lbl_1_bss_4[0]; + lbl_1_bss_70[0] = 0; + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30, 20, 8000, 1.2f); + Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); + Hu3DCameraScissorSet(1, 0, 16, 640, 448); + light = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); + Hu3DGLightInfinitytSet(light); + HuPrcChildCreate(fn_1_414, 100, 16384, 0, lbl_1_bss_78); + HuPrcChildCreate(fn_1_AF0, 200, 4096, 0, lbl_1_bss_78); + lbl_1_bss_7C = omAddObjEx(lbl_1_bss_78, 32730, 0, 0, -1, fn_1_B8C); + omAddObjEx(lbl_1_bss_78, 0, 32, 32, -1, fn_1_F40); + Hu3DBGColorSet(0, 0, 0); + mgBoardHostEnableF = 0; + HuWinInit(1); + mgPracticeEnableF = 0; + mgQuitExtraF = 0; } void fn_1_414(void) { - fn_1_9F4(); - if(omovlevtno) { - HuAudSeqPlay(43); - } else { - if(!fn_1_37DC()) { - WipeColorSet(0, 0, 0); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); - HuAudSeqAllFadeOut(1000); - while(WipeStatGet()) { - HuPrcVSleep(); - } - omOvlReturnEx(1, 1); - while(1) { - HuPrcVSleep(); - } - } else { - s16 group = HuSprGrpCreate(1); - s16 sprite = HuTHPSprCreateVol("movie/opmov_s00.thp", 0, 3000, 70.0); - HuSprGrpMemberSet(group, 0, sprite); - HuSprPosSet(group, 0, 288, 240); - HuSprDrawNoSet(group, 0, 127); - HuPrcSleep(2); - espAttrSet(lbl_1_bss_152[0], HUSPR_ATTR_DISPOFF); - HuAudFXStop(lbl_1_data_100); - while(!HuTHPEndCheck()) { - HuPrcVSleep(); - } - HuTHPClose(); - HuSprGrpKill(group); - } - } - espAttrReset(lbl_1_bss_152[9], HUSPR_ATTR_DISPOFF); - espDrawNoSet(lbl_1_bss_152[9], 127); - { - s16 result = fn_1_2490(); - if(result == -1) { - HuAudSeqAllFadeOut(1000); - WipeColorSet(0, 0, 0); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); - - while(WipeStatGet()) { - HuPrcVSleep(); - } - omOvlGotoEx(OVL_MODESEL, 1, 0, 0); - while(1) { - HuPrcVSleep(); - } - } else { - s16 i; - omOvlHisData *his; - for(i=0; i<4; i++) { - GWPlayerCfg[i].pad_idx = i; - if(!HuPadStatGet(i)) { - GWPlayerCfg[i].iscom = 0; - } else { - GWPlayerCfg[i].iscom = 1; - } - } - his = omOvlHisGet(0); - omOvlHisChg(0, his->overlay, 1, his->stat); - _ClearFlag(FLAG_ID_MAKE(1, 0)); - _ClearFlag(FLAG_ID_MAKE(1, 8)); - _ClearFlag(FLAG_ID_MAKE(1, 12)); - _ClearFlag(FLAG_ID_MAKE(1, 11)); - GWGameStat.sound_mode = msmSysGetOutputMode(); - switch(result) { - case 0: - GWMGExplainSet(GWGameStat.party_pause.explain_mg); - GWMGShowComSet(GWGameStat.party_pause.show_com_mg); - GWMGListSet(GWGameStat.party_pause.mg_list); - GWMessSpeedSet(GWGameStat.party_pause.mess_speed); - GWSaveModeSet(GWGameStat.party_pause.save_mode); - omOvlCallEx(OVL_MENT, 1, 0, 0); - break; - - case 1: - GWMGExplainSet(GWGameStat.story_pause.explain_mg); - GWMGShowComSet(GWGameStat.story_pause.show_com_mg); - GWMGListSet(GWGameStat.story_pause.mg_list); - GWMessSpeedSet(GWGameStat.story_pause.mess_speed); - GWSaveModeSet(GWGameStat.story_pause.save_mode); - omOvlCallEx(OVL_MENT, 1, 1, 0); - break; - - case 2: - omOvlCallEx(OVL_MGMODE, 1, 0, 0); - break; - - case 3: - omOvlCallEx(OVL_MENT, 1, 3, 0); - break; - - case 4: - omOvlCallEx(OVL_MENT, 1, 4, 0); - break; - - case 5: - omOvlCallEx(OVL_MPEX, 1, 0, 0); - break; - } - while(1) { - HuPrcVSleep(); - } - } - } + fn_1_9F4(); + if (omovlevtno) { + HuAudSeqPlay(43); + } + else { + if (!fn_1_37DC()) { + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + HuAudSeqAllFadeOut(1000); + while (WipeStatGet()) { + HuPrcVSleep(); + } + omOvlReturnEx(1, 1); + while (1) { + HuPrcVSleep(); + } + } + else { + s16 group = HuSprGrpCreate(1); + s16 sprite = HuTHPSprCreateVol("movie/opmov_s00.thp", 0, 3000, 70.0); + HuSprGrpMemberSet(group, 0, sprite); + HuSprPosSet(group, 0, 288, 240); + HuSprDrawNoSet(group, 0, 127); + HuPrcSleep(2); + espAttrSet(lbl_1_bss_152[0], HUSPR_ATTR_DISPOFF); + HuAudFXStop(lbl_1_data_100); + while (!HuTHPEndCheck()) { + HuPrcVSleep(); + } + HuTHPClose(); + HuSprGrpKill(group); + } + } + espAttrReset(lbl_1_bss_152[9], HUSPR_ATTR_DISPOFF); + espDrawNoSet(lbl_1_bss_152[9], 127); + { + s16 result = fn_1_2490(); + if (result == -1) { + HuAudSeqAllFadeOut(1000); + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + + while (WipeStatGet()) { + HuPrcVSleep(); + } + omOvlGotoEx(OVL_MODESEL, 1, 0, 0); + while (1) { + HuPrcVSleep(); + } + } + else { + s16 i; + omOvlHisData *his; + for (i = 0; i < 4; i++) { + GWPlayerCfg[i].pad_idx = i; + if (!HuPadStatGet(i)) { + GWPlayerCfg[i].iscom = 0; + } + else { + GWPlayerCfg[i].iscom = 1; + } + } + his = omOvlHisGet(0); + omOvlHisChg(0, his->overlay, 1, his->stat); + _ClearFlag(FLAG_ID_MAKE(1, 0)); + _ClearFlag(FLAG_ID_MAKE(1, 8)); + _ClearFlag(FLAG_ID_MAKE(1, 12)); + _ClearFlag(FLAG_ID_MAKE(1, 11)); + GWGameStat.sound_mode = msmSysGetOutputMode(); + switch (result) { + case 0: + GWMGExplainSet(GWGameStat.party_pause.explain_mg); + GWMGShowComSet(GWGameStat.party_pause.show_com_mg); + GWMGListSet(GWGameStat.party_pause.mg_list); + GWMessSpeedSet(GWGameStat.party_pause.mess_speed); + GWSaveModeSet(GWGameStat.party_pause.save_mode); + omOvlCallEx(OVL_MENT, 1, 0, 0); + break; + + case 1: + GWMGExplainSet(GWGameStat.story_pause.explain_mg); + GWMGShowComSet(GWGameStat.story_pause.show_com_mg); + GWMGListSet(GWGameStat.story_pause.mg_list); + GWMessSpeedSet(GWGameStat.story_pause.mess_speed); + GWSaveModeSet(GWGameStat.story_pause.save_mode); + omOvlCallEx(OVL_MENT, 1, 1, 0); + break; + + case 2: + omOvlCallEx(OVL_MGMODE, 1, 0, 0); + break; + + case 3: + omOvlCallEx(OVL_MENT, 1, 3, 0); + break; + + case 4: + omOvlCallEx(OVL_MENT, 1, 4, 0); + break; + + case 5: + omOvlCallEx(OVL_MPEX, 1, 0, 0); + break; + } + while (1) { + HuPrcVSleep(); + } + } + } } void fn_1_9F4(void) { - Vec pos; - Vec target; - Vec up; - Hu3DShadowCreate(20, 100, 5000); - Hu3DShadowTPLvlSet(0.3f); - Hu3DShadowSizeSet(192); - target.x = target.y = target.z = 0; - pos.x = 500; - pos.z = 1000; - pos.y = 2000; - up.x = 0; - up.y = 1; - up.z = 0; - Hu3DShadowPosSet(&pos, &up, &target); - fn_1_BED8(lbl_1_data_428); - fn_1_C168(lbl_1_data_93C); + Vec pos; + Vec target; + Vec up; + Hu3DShadowCreate(20, 100, 5000); + Hu3DShadowTPLvlSet(0.3f); + Hu3DShadowSizeSet(192); + target.x = target.y = target.z = 0; + pos.x = 500; + pos.z = 1000; + pos.y = 2000; + up.x = 0; + up.y = 1; + up.z = 0; + Hu3DShadowPosSet(&pos, &up, &target); + fn_1_BED8(lbl_1_data_428); + fn_1_C168(lbl_1_data_93C); } void fn_1_AF0(void) { - s16 i; - while(1) { - if(lbl_1_bss_70[0] || omSysExitReq) { - break; - } - HuPrcVSleep(); - } - for(i=0; i<4; i++) { - GWPlayerCfg[i].character = -1; - } - BoardStatusKill(); - omOvlReturnEx(1, 1); - HuPrcEnd(); + s16 i; + while (1) { + if (lbl_1_bss_70[0] || omSysExitReq) { + break; + } + HuPrcVSleep(); + } + for (i = 0; i < 4; i++) { + GWPlayerCfg[i].character = -1; + } + BoardStatusKill(); + omOvlReturnEx(1, 1); + HuPrcEnd(); } u16 lbl_1_data_6E[] = { 1, 2 }; void fn_1_B8C(omObjData *object) { - s16 i; - for(i=0; i<1; i++) { - Vec pos, target, up; - float x, y, z; - - x = lbl_1_bss_24[i].x; - y = lbl_1_bss_24[i].y; - z = lbl_1_bss_24[i].z; - - pos.x = (((sin((M_PI*y)/180.0)*cos((M_PI*x)/180.0))*lbl_1_bss_4[i])+lbl_1_bss_C[i].x); - pos.y = (-sin((M_PI*x)/180.0)*lbl_1_bss_4[i])+lbl_1_bss_C[i].y; - pos.z = ((cos((M_PI*y)/180.0)*cos((M_PI*x)/180.0))*lbl_1_bss_4[i])+lbl_1_bss_C[i].z; - target.x = lbl_1_bss_C[i].x; - target.y = lbl_1_bss_C[i].y; - target.z = lbl_1_bss_C[i].z; - up.x = sin((M_PI*y)/180.0)*sin((M_PI*x)/180.0); - up.y = cos((M_PI*x)/180.0); - up.z = cos((M_PI*y)/180.0)*sin((M_PI*x)/180.0); - Hu3DCameraPosSet(lbl_1_data_6E[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); - } + s16 i; + for (i = 0; i < 1; i++) { + Vec pos, target, up; + float x, y, z; + + x = lbl_1_bss_24[i].x; + y = lbl_1_bss_24[i].y; + z = lbl_1_bss_24[i].z; + + pos.x = (((sin((M_PI * y) / 180.0) * cos((M_PI * x) / 180.0)) * lbl_1_bss_4[i]) + lbl_1_bss_C[i].x); + pos.y = (-sin((M_PI * x) / 180.0) * lbl_1_bss_4[i]) + lbl_1_bss_C[i].y; + pos.z = ((cos((M_PI * y) / 180.0) * cos((M_PI * x) / 180.0)) * lbl_1_bss_4[i]) + lbl_1_bss_C[i].z; + target.x = lbl_1_bss_C[i].x; + target.y = lbl_1_bss_C[i].y; + target.z = lbl_1_bss_C[i].z; + up.x = sin((M_PI * y) / 180.0) * sin((M_PI * x) / 180.0); + up.y = cos((M_PI * x) / 180.0); + up.z = cos((M_PI * y) / 180.0) * sin((M_PI * x) / 180.0); + Hu3DCameraPosSet(lbl_1_data_6E[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); + } } void fn_1_F40(omObjData *object) { - Vec pos; + Vec pos; Vec offset; Vec dir; Vec y_offset; - + f32 z_rot; s8 stick_pos; if (!lbl_1_bss_0) { - fn_1_1B6C(); + fn_1_1B6C(); return; } - lbl_1_bss_24[0].y += 0.1f * HuPadStkX[0]; - lbl_1_bss_24[0].x += 0.1f * HuPadStkY[0]; - lbl_1_bss_4[0] += HuPadTrigL[0] / 2; - lbl_1_bss_4[0] -= HuPadTrigR[0] / 2; - if(HuPadBtnDown[0] & PAD_BUTTON_B) { - OSReport("%f,%f,%f\n", lbl_1_bss_24[0].x, lbl_1_bss_24[0].y, lbl_1_bss_24[0].z); - OSReport("%f,%f,%f\n", lbl_1_bss_C[0].x, lbl_1_bss_C[0].y, lbl_1_bss_C[0].z); - OSReport("%f\n", lbl_1_bss_4[0]); - } - if (lbl_1_bss_4[0] < 100.0f) { - lbl_1_bss_4[0] = 100.0f; - } - pos.x = lbl_1_bss_C[0].x + (lbl_1_bss_4[0] * (sin((M_PI * lbl_1_bss_24[0].y) / 180.0) * cos((M_PI * lbl_1_bss_24[0].x) / 180.0))); - pos.y = (lbl_1_bss_C[0].y + (lbl_1_bss_4[0] * -sin((M_PI * lbl_1_bss_24[0].x) / 180.0))); - pos.z = (lbl_1_bss_C[0].z + (lbl_1_bss_4[0] * (cos((M_PI * lbl_1_bss_24[0].y) / 180.0) * cos((M_PI * lbl_1_bss_24[0].x) / 180.0)))); - offset.x = lbl_1_bss_C[0].x - pos.x; - offset.y = lbl_1_bss_C[0].y - pos.y; - offset.z = lbl_1_bss_C[0].z - pos.z; - dir.x = (sin((M_PI * lbl_1_bss_24[0].y) / 180.0) * sin((M_PI * lbl_1_bss_24[0].x) / 180.0)); - dir.y = cos((M_PI * lbl_1_bss_24[0].x) / 180.0); - dir.z = (cos((M_PI * lbl_1_bss_24[0].y) / 180.0) * sin((M_PI * lbl_1_bss_24[0].x) / 180.0)); - z_rot = lbl_1_bss_24[0].z; - y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cos((M_PI * z_rot) / 180.0)) - + dir.y * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.z * sin((M_PI * z_rot) / 180.0)) - + dir.z * (offset.x * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.y * sin((M_PI * z_rot) / 180.0)); + lbl_1_bss_24[0].y += 0.1f * HuPadStkX[0]; + lbl_1_bss_24[0].x += 0.1f * HuPadStkY[0]; + lbl_1_bss_4[0] += HuPadTrigL[0] / 2; + lbl_1_bss_4[0] -= HuPadTrigR[0] / 2; + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + OSReport("%f,%f,%f\n", lbl_1_bss_24[0].x, lbl_1_bss_24[0].y, lbl_1_bss_24[0].z); + OSReport("%f,%f,%f\n", lbl_1_bss_C[0].x, lbl_1_bss_C[0].y, lbl_1_bss_C[0].z); + OSReport("%f\n", lbl_1_bss_4[0]); + } + if (lbl_1_bss_4[0] < 100.0f) { + lbl_1_bss_4[0] = 100.0f; + } + pos.x = lbl_1_bss_C[0].x + (lbl_1_bss_4[0] * (sin((M_PI * lbl_1_bss_24[0].y) / 180.0) * cos((M_PI * lbl_1_bss_24[0].x) / 180.0))); + pos.y = (lbl_1_bss_C[0].y + (lbl_1_bss_4[0] * -sin((M_PI * lbl_1_bss_24[0].x) / 180.0))); + pos.z = (lbl_1_bss_C[0].z + (lbl_1_bss_4[0] * (cos((M_PI * lbl_1_bss_24[0].y) / 180.0) * cos((M_PI * lbl_1_bss_24[0].x) / 180.0)))); + offset.x = lbl_1_bss_C[0].x - pos.x; + offset.y = lbl_1_bss_C[0].y - pos.y; + offset.z = lbl_1_bss_C[0].z - pos.z; + dir.x = (sin((M_PI * lbl_1_bss_24[0].y) / 180.0) * sin((M_PI * lbl_1_bss_24[0].x) / 180.0)); + dir.y = cos((M_PI * lbl_1_bss_24[0].x) / 180.0); + dir.z = (cos((M_PI * lbl_1_bss_24[0].y) / 180.0) * sin((M_PI * lbl_1_bss_24[0].x) / 180.0)); + z_rot = lbl_1_bss_24[0].z; + y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cos((M_PI * z_rot) / 180.0)) + + dir.y * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.z * sin((M_PI * z_rot) / 180.0)) + + dir.z * (offset.x * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.y * sin((M_PI * z_rot) / 180.0)); - y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cos((M_PI * z_rot) / 180.0)) - + dir.x * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.z * sin((M_PI * z_rot) / 180.0)) - + dir.z * (offset.y * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.x * sin((M_PI * z_rot) / 180.0)); - - y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cos((M_PI * z_rot) / 180.0)) - + (dir.x * (offset.x * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) - offset.y * sin((M_PI * z_rot) / 180.0)) - + dir.y * (offset.y * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) + offset.x * sin((M_PI * z_rot) / 180.0))); + y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cos((M_PI * z_rot) / 180.0)) + + dir.x * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.z * sin((M_PI * z_rot) / 180.0)) + + dir.z * (offset.y * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.x * sin((M_PI * z_rot) / 180.0)); - VECCrossProduct(&dir, &offset, &offset); - VECNormalize(&offset, &offset); - stick_pos = (HuPadSubStkX[0] & 0xF8); - if (stick_pos != 0) { - lbl_1_bss_C[0].x += 0.05f * (offset.x * stick_pos); - lbl_1_bss_C[0].y += 0.05f * (offset.y * stick_pos); - lbl_1_bss_C[0].z += 0.05f * (offset.z * stick_pos); - } - VECNormalize(&y_offset, &offset); - stick_pos = -(HuPadSubStkY[0] & 0xF8); - if (stick_pos != 0) { - lbl_1_bss_C[0].x += 0.05f * (offset.x * stick_pos); - lbl_1_bss_C[0].y += 0.05f * (offset.y * stick_pos); - lbl_1_bss_C[0].z += 0.05f * (offset.z * stick_pos); - } + y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cos((M_PI * z_rot) / 180.0)) + + (dir.x * (offset.x * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) - offset.y * sin((M_PI * z_rot) / 180.0)) + + dir.y * (offset.y * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) + offset.x * sin((M_PI * z_rot) / 180.0))); + + VECCrossProduct(&dir, &offset, &offset); + VECNormalize(&offset, &offset); + stick_pos = (HuPadSubStkX[0] & 0xF8); + if (stick_pos != 0) { + lbl_1_bss_C[0].x += 0.05f * (offset.x * stick_pos); + lbl_1_bss_C[0].y += 0.05f * (offset.y * stick_pos); + lbl_1_bss_C[0].z += 0.05f * (offset.z * stick_pos); + } + VECNormalize(&y_offset, &offset); + stick_pos = -(HuPadSubStkY[0] & 0xF8); + if (stick_pos != 0) { + lbl_1_bss_C[0].x += 0.05f * (offset.x * stick_pos); + lbl_1_bss_C[0].y += 0.05f * (offset.y * stick_pos); + lbl_1_bss_C[0].z += 0.05f * (offset.z * stick_pos); + } } void fn_1_1B6C(void) { - Vec delta_vec; - float delta_zoom; - if(lbl_1_bss_70[0]) { - return; - } - VECSubtract(&lbl_1_bss_64, &lbl_1_bss_24[0], &delta_vec); - if(VECMag(&delta_vec) > 0.2) { - VECScale(&delta_vec, &delta_vec, 0.05f); - VECAdd(&lbl_1_bss_24[0], &delta_vec, &lbl_1_bss_24[0]); - } else { - lbl_1_bss_24[0] = lbl_1_bss_64; - } - VECSubtract(&lbl_1_bss_58, &lbl_1_bss_C[0], &delta_vec); - if(VECMag(&delta_vec) > 0.2) { - VECScale(&delta_vec, &delta_vec, 0.05f); - VECAdd(&lbl_1_bss_C[0], &delta_vec, &lbl_1_bss_C[0]); - } else { - lbl_1_bss_C[0] = lbl_1_bss_58; - } - delta_zoom = lbl_1_bss_54-lbl_1_bss_4[0]; - if(sqrtf(delta_zoom*delta_zoom) > 0.2) { - delta_zoom *= 0.05f; - lbl_1_bss_4[0] += delta_zoom; - } else { - lbl_1_bss_4[0] = lbl_1_bss_54; - } + Vec delta_vec; + float delta_zoom; + if (lbl_1_bss_70[0]) { + return; + } + VECSubtract(&lbl_1_bss_64, &lbl_1_bss_24[0], &delta_vec); + if (VECMag(&delta_vec) > 0.2) { + VECScale(&delta_vec, &delta_vec, 0.05f); + VECAdd(&lbl_1_bss_24[0], &delta_vec, &lbl_1_bss_24[0]); + } + else { + lbl_1_bss_24[0] = lbl_1_bss_64; + } + VECSubtract(&lbl_1_bss_58, &lbl_1_bss_C[0], &delta_vec); + if (VECMag(&delta_vec) > 0.2) { + VECScale(&delta_vec, &delta_vec, 0.05f); + VECAdd(&lbl_1_bss_C[0], &delta_vec, &lbl_1_bss_C[0]); + } + else { + lbl_1_bss_C[0] = lbl_1_bss_58; + } + delta_zoom = lbl_1_bss_54 - lbl_1_bss_4[0]; + if (sqrtf(delta_zoom * delta_zoom) > 0.2) { + delta_zoom *= 0.05f; + lbl_1_bss_4[0] += delta_zoom; + } + else { + lbl_1_bss_4[0] = lbl_1_bss_54; + } } void fn_1_1E30(s16 view) { - lbl_1_bss_64 = lbl_1_data_0[view].rot; - lbl_1_bss_58 = lbl_1_data_0[view].pos; - lbl_1_bss_54 = lbl_1_data_0[view].zoom; + lbl_1_bss_64 = lbl_1_data_0[view].rot; + lbl_1_bss_58 = lbl_1_data_0[view].pos; + lbl_1_bss_54 = lbl_1_data_0[view].zoom; } void fn_1_1EC0(s16 view) { - s16 i; - lbl_1_bss_24[0] = lbl_1_data_0[view].rot; - lbl_1_bss_64 = lbl_1_bss_24[0]; - lbl_1_bss_C[0] = lbl_1_data_0[view].pos; - lbl_1_bss_58 = lbl_1_bss_C[0]; - lbl_1_bss_54 = lbl_1_bss_4[0] = lbl_1_data_0[view].zoom; - fn_1_B8C(NULL); + s16 i; + lbl_1_bss_24[0] = lbl_1_data_0[view].rot; + lbl_1_bss_64 = lbl_1_bss_24[0]; + lbl_1_bss_C[0] = lbl_1_data_0[view].pos; + lbl_1_bss_58 = lbl_1_bss_C[0]; + lbl_1_bss_54 = lbl_1_bss_4[0] = lbl_1_data_0[view].zoom; + fn_1_B8C(NULL); } float fn_1_2368(void) { - float delta_zoom = lbl_1_bss_54-lbl_1_bss_4[0]; - return sqrtf(delta_zoom*delta_zoom); + float delta_zoom = lbl_1_bss_54 - lbl_1_bss_4[0]; + return sqrtf(delta_zoom * delta_zoom); } diff --git a/src/REL/mpexDll/main.c b/src/REL/mpexDll/main.c index 148d7711..a613e729 100644 --- a/src/REL/mpexDll/main.c +++ b/src/REL/mpexDll/main.c @@ -8,7 +8,6 @@ #include "game/pad.h" #include "game/printfunc.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" #include "REL/mpexDll.h" diff --git a/src/REL/resultDll/main.c b/src/REL/resultDll/main.c index afe551d5..66c26486 100644 --- a/src/REL/resultDll/main.c +++ b/src/REL/resultDll/main.c @@ -13,7 +13,6 @@ #include "game/saveload.h" #include "game/window.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" #include "math.h" diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c index d1d58b62..0c0b8ce0 100644 --- a/src/REL/ztardll/main.c +++ b/src/REL/ztardll/main.c @@ -10,7 +10,6 @@ #include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" -#include "rel_sqrt_consts.h" #include "REL/ztardll.h" From 778bfdc0a86668f72e96394566f33c90e3432427 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sun, 10 Nov 2024 08:02:32 -0600 Subject: [PATCH 108/311] Match m437dll --- configure.py | 4 ++-- src/REL/m437Dll/main.c | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/configure.py b/configure.py index 339a9dfe..6abbcebf 100644 --- a/configure.py +++ b/configure.py @@ -1102,8 +1102,8 @@ config.libs = [ Rel( "m437Dll", # Balloon of Doom objects={ - Object(NonMatching, "REL/m437Dll/main.c"), - Object(NonMatching, "REL/m437Dll/sequence.c"), + Object(Matching, "REL/m437Dll/main.c"), + Object(Matching, "REL/m437Dll/sequence.c"), }, ), Rel( diff --git a/src/REL/m437Dll/main.c b/src/REL/m437Dll/main.c index 7b67a481..efabc5e9 100755 --- a/src/REL/m437Dll/main.c +++ b/src/REL/m437Dll/main.c @@ -1835,7 +1835,8 @@ void fn_1_65E0(omObjData *arg0) break; } if ((temp_r31->unk0C == 4 || temp_r31->unk0C == 7) && temp_r31->unk10 == 0) { - Hu3DModelObjMtxGet(lbl_1_bss_8FC.unk00->model[0], "m437a01-chara-point", sp60); + StructBss8FC *temp = &lbl_1_bss_8FC; + Hu3DModelObjMtxGet(temp->unk00->model[0], "m437a01-chara-point", sp60); arg0->trans.y = sp60[1][3]; } } From feefeea542d282522c817961d89170ef4c49bc16 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 10 Nov 2024 19:01:38 +0100 Subject: [PATCH 109/311] Correct data locality in m437Dll --- config/GMPE01_00/rels/m437Dll/symbols.txt | 262 +++++++++++----------- src/REL/m437Dll/main.c | 1 - 2 files changed, 131 insertions(+), 132 deletions(-) diff --git a/config/GMPE01_00/rels/m437Dll/symbols.txt b/config/GMPE01_00/rels/m437Dll/symbols.txt index 2c062d3f..3e5eb926 100644 --- a/config/GMPE01_00/rels/m437Dll/symbols.txt +++ b/config/GMPE01_00/rels/m437Dll/symbols.txt @@ -214,125 +214,125 @@ fn_1_164B0 = .text:0x000164B0; // type:function size:0x15C fn_1_1660C = .text:0x0001660C; // type:function size:0x190 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x48 -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x78 -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x78 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC8 -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x78 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x14 data:4byte -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x30 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x30 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:4byte -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 data:4byte -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:4byte -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:4byte -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x20 data:4byte -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:4byte -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x20 data:4byte -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:4byte -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x30 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x10 data:4byte -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x8 data:4byte -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0xC data:4byte -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:4byte -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:4byte -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x8 data:4byte -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:4byte -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0xC data:4byte -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x8 data:4byte -lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x8 data:4byte -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x30 data:float -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x18 data:float -lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x48 scope:local +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x78 scope:local +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x78 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC8 scope:local +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x78 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x30 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x30 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x30 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x30 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x18 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 scope:local data:double lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float @@ -354,21 +354,21 @@ lbl_1_data_0 = .data:0x00000000; // type:object size:0xA0 lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x4 data:4byte lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x4 data:4byte lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x4 data:4byte -lbl_1_data_AC = .data:0x000000AC; // type:object size:0x1B data:string -lbl_1_data_C7 = .data:0x000000C7; // type:object size:0x22 data:string -lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x1A data:string -lbl_1_data_103 = .data:0x00000103; // type:object size:0x1A data:string -lbl_1_data_11D = .data:0x0000011D; // type:object size:0xE data:string +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x1B scope:local data:string +lbl_1_data_C7 = .data:0x000000C7; // type:object size:0x22 scope:local data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x1A scope:local data:string +lbl_1_data_103 = .data:0x00000103; // type:object size:0x1A scope:local data:string +lbl_1_data_11D = .data:0x0000011D; // type:object size:0xE scope:local data:string lbl_1_data_12C = .data:0x0000012C; // type:object size:0x4 data:4byte -lbl_1_data_130 = .data:0x00000130; // type:object size:0x16 data:string -lbl_1_data_146 = .data:0x00000146; // type:object size:0x13 data:string -lbl_1_data_159 = .data:0x00000159; // type:object size:0xE data:string -lbl_1_data_167 = .data:0x00000167; // type:object size:0xE data:string -lbl_1_data_175 = .data:0x00000175; // type:object size:0x12 data:string +lbl_1_data_130 = .data:0x00000130; // type:object size:0x16 scope:local data:string +lbl_1_data_146 = .data:0x00000146; // type:object size:0x13 scope:local data:string +lbl_1_data_159 = .data:0x00000159; // type:object size:0xE scope:local data:string +lbl_1_data_167 = .data:0x00000167; // type:object size:0xE scope:local data:string +lbl_1_data_175 = .data:0x00000175; // type:object size:0x12 scope:local data:string lbl_1_data_188 = .data:0x00000188; // type:object size:0x4 data:float -lbl_1_data_18C = .data:0x0000018C; // type:object size:0x14 data:string +lbl_1_data_18C = .data:0x0000018C; // type:object size:0x14 scope:local data:string jumptable_1_data_1A0 = .data:0x000001A0; // type:object size:0x20 scope:local -lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x12 data:string +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x12 scope:local data:string jumptable_1_data_1D4 = .data:0x000001D4; // type:object size:0x30 scope:local lbl_1_data_204 = .data:0x00000204; // type:object size:0x78 lbl_1_data_27C = .data:0x0000027C; // type:object size:0x90 diff --git a/src/REL/m437Dll/main.c b/src/REL/m437Dll/main.c index efabc5e9..6b57e11a 100755 --- a/src/REL/m437Dll/main.c +++ b/src/REL/m437Dll/main.c @@ -1716,7 +1716,6 @@ void fn_1_6580(s32 arg0, s32 arg1, s32 arg2) float lbl_1_data_188 = -1.0f; -// TODO: https://decomp.me/scratch/dek39 void fn_1_65E0(omObjData *arg0) { Mtx sp60; From 692c9d32ec4e5d80efea36d3d9d6cb5a28d2edb9 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 10 Nov 2024 19:02:36 +0100 Subject: [PATCH 110/311] Implemented already discovered improvements in m426Dll --- config/GMPE01_00/rels/m426Dll/symbols.txt | 2 +- src/REL/m426Dll/main.c | 40 ++++++++--------------- 2 files changed, 14 insertions(+), 28 deletions(-) diff --git a/config/GMPE01_00/rels/m426Dll/symbols.txt b/config/GMPE01_00/rels/m426Dll/symbols.txt index 76e8528e..e85de3cf 100644 --- a/config/GMPE01_00/rels/m426Dll/symbols.txt +++ b/config/GMPE01_00/rels/m426Dll/symbols.txt @@ -197,7 +197,7 @@ jumptable_1_data_330 = .data:0x00000330; // type:object size:0x1C scope:local jumptable_1_data_34C = .data:0x0000034C; // type:object size:0x1C scope:local lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x1 data:byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:byte lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float diff --git a/src/REL/m426Dll/main.c b/src/REL/m426Dll/main.c index d9864fb5..6f4d3a64 100644 --- a/src/REL/m426Dll/main.c +++ b/src/REL/m426Dll/main.c @@ -10,6 +10,7 @@ #include "game/pad.h" #include "game/sprite.h" #include "game/wipe.h" +#include "string.h" typedef struct UnkM426Struct { /* 0x00 */ s32 unk_00; @@ -676,7 +677,7 @@ void fn_1_117C(omObjData *object) fn_1_16F8(var_r31->unk_04[0]); } -void fn_1_11EC(omObjData *object) // TODO this probably gets inlined +void fn_1_11EC(omObjData *object) { s32 var_r30; UnkM426Struct *var_r29; @@ -778,6 +779,7 @@ void fn_1_125C(omObjData *object) object->func = NULL; } +// TODO https://decomp.me/scratch/1aZdv void fn_1_16F8(omObjData *object) { s32 spA8[3]; @@ -824,7 +826,7 @@ void fn_1_16F8(omObjData *object) } if (var_r31->unk_14) { sp20 = sp1C = 0.0f; - sp10 = var_r21 = 0; + sp10 = 0; fn_1_2F5C(object, &sp20, &sp1C, &sp10); } else { @@ -848,7 +850,7 @@ void fn_1_16F8(omObjData *object) if (!lbl_1_bss_40) { sp20 = sp1C = 0.0f; - sp10 = var_r21 = 0; + sp10 = 0; } if (fabs(sp20) > 8.0) { var_f30 = 0.25f * sp20; @@ -957,7 +959,6 @@ void fn_1_16F8(omObjData *object) else { if (fabs(sp20) > 8.0 || fabs(sp1C) > 8.0) { var_f26 = atan2d(sp20, -sp1C); - var_f26 = var_f26; } else { var_f26 = object->rot.y; @@ -1123,7 +1124,7 @@ void fn_1_16F8(omObjData *object) var_r31->unk_34 = var_r31->unk_34 ^ 1; } } - if (((var_r21 = var_r31->unk_24) == 0 || var_r31->unk_24 == 1 || var_r31->unk_24 == 2) && var_r31->unk_30) { + if ((var_r31->unk_24 == 0 || var_r31->unk_24 == 1 || var_r31->unk_24 == 2) && var_r31->unk_30) { if (var_r31->unk_30) { var_r31->unk_30 = var_r31->unk_30 - 1; } @@ -1136,6 +1137,7 @@ void fn_1_16F8(omObjData *object) } Hu3DModelTPLvlSet(var_r24, 1.0f); } + (void)var_r21; } Vec lbl_1_data_200[2] = { @@ -1202,22 +1204,10 @@ void fn_1_2AC8(omObjData *object) void fn_1_2ADC(void) { - omObjData *var_r31; s32 var_r30; - s32 var_r29; - UnkM426Struct *var_r27; - omObjData *var_r28; for (var_r30 = 0; var_r30 < 2; var_r30++) { - var_r31 = lbl_1_bss_8C[var_r30]; - var_r27 = var_r31->data; - for (var_r29 = 0; var_r29 < 2; var_r29++) { - var_r28 = var_r27->unk_04[var_r29]; - var_r28->data = 0; - var_r28->func = 0; - } - var_r31->data = NULL; - var_r31->func = NULL; + fn_1_11EC(lbl_1_bss_8C[var_r30]); } } @@ -1741,8 +1731,7 @@ void fn_1_3EFC(omObjData *object) void fn_1_45FC(omObjData *object) { fn_1_8E10(lbl_1_bss_24); - object->data = NULL; - object->func = NULL; + fn_1_2AC8(object); } void fn_1_4644(void) @@ -2133,20 +2122,17 @@ void fn_1_5134(omObjData *object) void fn_1_5B34(omObjData *object) { - object->data = NULL; - object->func = NULL; + fn_1_2AC8(object); } void fn_1_5B48(void) { - omObjData *var_r31; - - var_r31 = lbl_1_bss_74; - fn_1_5B34(var_r31); + fn_1_5B34(lbl_1_bss_74); lbl_1_bss_74 = NULL; } -void fn_1_5B88(s32 arg0) // probably gets inlined +// unused +void fn_1_5B88(s32 arg0) { UnkM426Struct4 *var_r31; s32 var_r28; From e2db9694efebc2b0f87871be3357b9daffb408c5 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 11 Nov 2024 00:24:45 +0100 Subject: [PATCH 111/311] Matched PPCArch.c, ai.c, db.c and got 99% on vi.c --- config/GMPE01_00/symbols.txt | 20 +- configure.py | 8 +- include/asm_types.h | 84 ++++ include/dolphin/ai.h | 6 + src/dolphin/PPCArch.c | 565 +++++++++++++++++++++ src/dolphin/ai.c | 362 ++++++++++++++ src/dolphin/db.c | 43 ++ src/dolphin/vi.c | 943 +++++++++++++++++++++++++++++++++++ 8 files changed, 2017 insertions(+), 14 deletions(-) create mode 100644 include/asm_types.h create mode 100644 src/dolphin/PPCArch.c create mode 100644 src/dolphin/ai.c create mode 100644 src/dolphin/db.c create mode 100644 src/dolphin/vi.c diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 58e4e1b5..9607a86b 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -2192,8 +2192,8 @@ __init_user = .text:0x800BB280; // type:function size:0x20 scope:global __init_cpp = .text:0x800BB2A0; // type:function size:0x54 scope:local _ExitProcess = .text:0x800BB2F4; // type:function size:0x20 scope:global DBInit = .text:0x800BB314; // type:function size:0x28 scope:global -__DBExceptionDestinationAux = .text:0x800BB33C; // type:function size:0x48 scope:local -__DBExceptionDestination = .text:0x800BB384; // type:function size:0x10 scope:global +__DBExceptionDestinationAux = .text:0x800BB33C; // type:function size:0x48 scope:global +__DBExceptionDestination = .text:0x800BB384; // type:function size:0x10 scope:local __DBIsExceptionMarked = .text:0x800BB394; // type:function size:0x1C scope:global DBPrintf = .text:0x800BB3B0; // type:function size:0x50 scope:global PSMTXIdentity = .text:0x800BB400; // type:function size:0x2C @@ -2321,7 +2321,7 @@ __fstLoad = .text:0x800C0A04; // type:function size:0x168 scope:global __VIRetraceHandler = .text:0x800C0B6C; // type:function size:0x228 scope:local VISetPreRetraceCallback = .text:0x800C0D94; // type:function size:0x44 VISetPostRetraceCallback = .text:0x800C0DD8; // type:function size:0x44 -getTiming = .text:0x800C0E1C; // type:function size:0x90 +getTiming = .text:0x800C0E1C; // type:function size:0x90 scope:local __VIInit = .text:0x800C0EAC; // type:function size:0x1F8 VIInit = .text:0x800C10A4; // type:function size:0x478 VIWaitForRetrace = .text:0x800C151C; // type:function size:0x54 @@ -4344,7 +4344,7 @@ ResetFunctionInfo = .data:0x8013C2E0; // type:object size:0x10 scope:local lbl_8013C2F0 = .data:0x8013C2F0; // type:object size:0x78 YearDays = .data:0x8013C368; // type:object size:0x30 scope:local LeapYearDays = .data:0x8013C398; // type:object size:0x30 scope:local -lbl_8013C3C8 = .data:0x8013C3C8; // type:object size:0x18 data:string +lbl_8013C3C8 = .data:0x8013C3C8; // type:object size:0x18 scope:local data:string lbl_8013C3E0 = .data:0x8013C3E0; // type:object size:0xC8 data:string lbl_8013C4A8 = .data:0x8013C4A8; // type:object size:0x38 lbl_8013C4E0 = .data:0x8013C4E0; // type:object size:0x34 data:string @@ -4359,12 +4359,12 @@ ErrorTable = .data:0x8013C660; // type:object size:0x48 scope:local data:4byte timing = .data:0x8013C718; // type:object size:0x130 scope:local taps = .data:0x8013C848; // type:object size:0x32 scope:local jumptable_8013C87C = .data:0x8013C87C; // type:object size:0x58 scope:local -lbl_8013C8D4 = .data:0x8013C8D4; // type:object size:0x29 data:string -lbl_8013C900 = .data:0x8013C900; // type:object size:0x29 data:string -lbl_8013C92C = .data:0x8013C92C; // type:object size:0x29 data:string -lbl_8013C958 = .data:0x8013C958; // type:object size:0x29 data:string -lbl_8013C984 = .data:0x8013C984; // type:object size:0x29 data:string -lbl_8013C9B0 = .data:0x8013C9B0; // type:object size:0x29 data:string +lbl_8013C8D4 = .data:0x8013C8D4; // type:object size:0x29 scope:local data:string +lbl_8013C900 = .data:0x8013C900; // type:object size:0x29 scope:local data:string +lbl_8013C92C = .data:0x8013C92C; // type:object size:0x29 scope:local data:string +lbl_8013C958 = .data:0x8013C958; // type:object size:0x29 scope:local data:string +lbl_8013C984 = .data:0x8013C984; // type:object size:0x29 scope:local data:string +lbl_8013C9B0 = .data:0x8013C9B0; // type:object size:0x29 scope:local data:string DEMOFontBitmap = .data:0x8013C9E0; // type:object size:0xC00 align:32 lbl_8013D5E0 = .data:0x8013D5E0; // type:object size:0xC data:string lbl_8013D5EC = .data:0x8013D5EC; // type:object size:0x28 diff --git a/configure.py b/configure.py index b010ec9b..fa174004 100644 --- a/configure.py +++ b/configure.py @@ -303,7 +303,7 @@ config.rel_empty_file = "REL/empty.c" def DolphinLib(lib_name, objects): return { "lib": lib_name, - "mw_version": "GC/2.6", + "mw_version": "GC/1.2.5n", "cflags": cflags_base, "host": False, "objects": objects, @@ -442,7 +442,7 @@ config.libs = [ DolphinLib( "base", [ - Object(NonMatching, "dolphin/PPCArch.c"), + Object(Matching, "dolphin/PPCArch.c"), ], ), DolphinLib( @@ -477,7 +477,7 @@ config.libs = [ DolphinLib( "db", [ - Object(NonMatching, "dolphin/db.c"), + Object(Matching, "dolphin/db.c"), ], ), DolphinLib( @@ -527,7 +527,7 @@ config.libs = [ DolphinLib( "ai", [ - Object(NonMatching, "dolphin/ai.c"), + Object(Matching, "dolphin/ai.c"), ], ), DolphinLib( diff --git a/include/asm_types.h b/include/asm_types.h new file mode 100644 index 00000000..02d75dc5 --- /dev/null +++ b/include/asm_types.h @@ -0,0 +1,84 @@ +#ifndef _ASM_TYPES +#define _ASM_TYPES + +// Special Purpose Registers (SPRs) +#define XER 1 +#define LR 8 +#define CTR 9 +#define DSISR 18 +#define DAR 19 +#define DEC 22 +#define SDR1 25 +#define SRR0 26 +#define SRR1 27 +#define SPRG0 272 +#define SPRG1 273 +#define SPRG2 274 +#define SPRG3 275 +#define EAR 282 +#define PVR 287 +#define IBAT0U 528 +#define IBAT0L 529 +#define IBAT1U 530 +#define IBAT1L 531 +#define IBAT2U 532 +#define IBAT2L 533 +#define IBAT3U 534 +#define IBAT3L 535 +#define DBAT0U 536 +#define DBAT0L 537 +#define DBAT1U 538 +#define DBAT1L 539 +#define DBAT2U 540 +#define DBAT2L 541 +#define DBAT3U 542 +#define DBAT3L 543 +#define GQR0 912 +#define GQR1 913 +#define GQR2 914 +#define GQR3 915 +#define GQR4 916 +#define GQR5 917 +#define GQR6 918 +#define GQR7 919 +#define HID2 920 +#define WPAR 921 +#define DMA_U 922 +#define DMA_L 923 +#define UMMCR0 936 +#define UPMC1 937 +#define UPMC2 938 +#define USIA 939 +#define UMMCR1 940 +#define UPMC3 941 +#define UPMC4 942 +#define USDA 943 +#define MMCR0 952 +#define PMC1 953 +#define PMC2 954 +#define SIA 955 +#define MMCR1 956 +#define PMC3 957 +#define PMC4 958 +#define SDA 959 +#define HID0 1008 +#define HID1 1009 +#define IABR 1010 +#define DABR 1013 +#define L2CR 1017 +#define ICTC 1019 +#define THRM1 1020 +#define THRM2 1021 +#define THRM3 1022 + +// Condition Registers (CRs) +#define cr0 0 +#define cr1 1 +#define cr2 2 +#define cr3 3 +#define cr4 4 +#define cr5 5 +#define cr6 6 +#define cr7 7 + +#endif // _ASM_TYPES diff --git a/include/dolphin/ai.h b/include/dolphin/ai.h index e998e831..bba3a596 100644 --- a/include/dolphin/ai.h +++ b/include/dolphin/ai.h @@ -9,6 +9,12 @@ extern "C" { typedef void (*AISCallback)(u32 count); typedef void (*AIDCallback)(); +#define AI_STREAM_START 1 +#define AI_STREAM_STOP 0 + +#define AI_SAMPLERATE_32KHZ 0 +#define AI_SAMPLERATE_48KHZ 1 + AIDCallback AIRegisterDMACallback(AIDCallback callback); void AIInitDMA(u32 start_addr, u32 length); BOOL AIGetDMAEnableFlag(); diff --git a/src/dolphin/PPCArch.c b/src/dolphin/PPCArch.c new file mode 100644 index 00000000..8004ab3d --- /dev/null +++ b/src/dolphin/PPCArch.c @@ -0,0 +1,565 @@ +#include "types.h" +#include "asm_types.h" + +/* clang-format off */ + +union FpscrUnion +{ + f64 f; + struct + { + u32 fpscr_pad; + u32 fpscr; + } u; +}; + +#define HID0_SPD 0x00000200 // Speculative cache access enable (0 enable) + +void PPCMthid0 ( u32 newHID0 ); + +/* + * --INFO-- + * Address: 8036F7D4 + * Size: 000008 + */ +asm u32 PPCMfmsr (void) +{ + nofralloc + mfmsr r3 + blr +} + +/* + * --INFO-- + * Address: 8036F7DC + * Size: 000008 + */ +asm void PPCMtmsr (register u32 newMSR) +{ + nofralloc + mtmsr newMSR + blr +} + +/* + * --INFO-- + * Address: ........ + * Size: 00000C + */ +void PPCOrMsr(void) +{ + // UNUSED FUNCTION +} + +/* + * --INFO-- + * Address: ........ + * Size: 00000C + */ +void PPCAndMsr(void) +{ + // UNUSED FUNCTION +} + +/* + * --INFO-- + * Address: ........ + * Size: 00000C + */ +void PPCAndCMsr(void) +{ + // UNUSED FUNCTION +} + +/* + * --INFO-- + * Address: 8036F7E4 + * Size: 000008 + */ +asm u32 PPCMfhid0 (void) +{ + nofralloc + mfspr r3, HID0 + blr +} + +/* + * --INFO-- + * Address: 8036F7EC + * Size: 000008 + */ +asm void PPCMthid0 (register u32 newHID0) +{ + nofralloc + mtspr HID0, newHID0 + blr +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + */ +void PPCMfhid1(void) +{ + // UNUSED FUNCTION +} + +/* + * --INFO-- + * Address: 8036F7F4 + * Size: 000008 + */ +asm u32 PPCMfl2cr (void) +{ + nofralloc + mfspr r3, L2CR + blr +} + +/* + * --INFO-- + * Address: 8036F7FC + * Size: 000008 + */ +asm void PPCMtl2cr (register u32 newL2cr) +{ + nofralloc + mtspr L2CR, newL2cr + blr +} + +/* + * --INFO-- + * Address: 8036F804 + * Size: 000008 + */ +__declspec ( weak ) asm void PPCMtdec ( register u32 newDec ) +{ + nofralloc + mtdec newDec + blr +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + */ +void PPCMfdec(void) +{ + // UNUSED FUNCTION +} + +/* + * --INFO-- + * Address: 8036F80C + * Size: 000008 + */ +asm void PPCSync (void) +{ + nofralloc + sc + blr +} + +/* + * --INFO-- + * Address: ........ + * Size: 000034 + */ +asm void PPCEieio(void) { + nofralloc + mfmsr r5 + rlwinm r6, r5, 0, 0x11, 0xf + mtmsr r6 + mfspr r3, hid0 + ori r4, r3, 8 + mtspr hid0, r4 + isync + eieio + isync + + mtspr hid0, r3 + mtmsr r5 + isync + + blr +} + +/* + * --INFO-- + * Address: 8036F814 + * Size: 000014 + */ +__declspec ( weak ) asm void PPCHalt (void) //spins infinitely +{ + nofralloc + + sync + +_spin: + nop + li r3, 0 + nop + b _spin + + // NEVER REACHED +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + */ +asm void PPCMfmmcr0(void) +{ + nofralloc + mfspr r3, MMCR0 + blr +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + * UNUSED + */ +asm void PPCMtmmcr0 (register u32 newMmcr0) +{ + nofralloc + mtspr MMCR0, newMmcr0 + blr +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + */ +asm void PPCMfmmcr1(void) +{ + nofralloc + mfspr r3, MMCR1 + blr} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + * UNUSED + */ +asm void PPCMtmmcr1 (register u32 newMmcr1) +{ + nofralloc + mtspr MMCR1, newMmcr1 + blr +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + */ +asm void PPCMfpmc1(void) +{ + nofralloc + mfspr r3, PMC1 + blr +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + * UNUSED + */ +asm void PPCMtpmc1 (register u32 newPmc1) +{ + nofralloc + mtspr PMC1, newPmc1 + blr +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + */ +asm void PPCMfpmc2(void) +{ + nofralloc + mfspr r3, PMC2 + blr +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + * UNUSED + */ +asm void PPCMtpmc2 (register u32 newPmc2) +{ + nofralloc + mtspr PMC2, newPmc2 + blr +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + */ +asm void PPCMfpmc3(void) +{ + nofralloc + mfspr r3, PMC2 + blr} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + * UNUSED + */ +asm void PPCMtpmc3 (register u32 newPmc3) +{ + nofralloc + mtspr PMC3, newPmc3 + blr +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + */ +asm void PPCMfpmc4(void) +{ + nofralloc + mfspr r3, PMC4 + blr +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + * UNUSED + */ +asm void PPCMtpmc4 (register u32 newPmc4) +{ + nofralloc + mtspr PMC4, newPmc4 + blr +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + */ +asm void PPCMfsia(void) +{ + nofralloc + mfspr r3, SIA + blr} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + */ +asm void PPCMtsia(register u32 newSia) +{ + nofralloc + mtspr SIA, newSia + blr +} + +/* + * --INFO-- + * Address: 8036F828 + * Size: 000020 + */ +u32 PPCMffpscr(void) +{ + union FpscrUnion m; + + + asm + { + mffs fp31 + stfd fp31, m.f; + } + + return m.u.fpscr; +} + +/* + * --INFO-- + * Address: 8036F848 + * Size: 000028 + */ +void PPCMtfpscr(register u32 newFPSCR) +{ + union FpscrUnion m; + + asm + { + li r4, 0 + stw r4, m.u.fpscr_pad; + stw newFPSCR, m.u.fpscr + lfd fp31, m.f + mtfsf 0xff, fp31 + } +} + +/* + * --INFO-- + * Address: 8036F870 + * Size: 000008 + */ +asm u32 PPCMfhid2 ( void ) +{ + nofralloc + mfspr r3, HID2 + blr +} + +/* + * --INFO-- + * Address: 8036F878 + * Size: 000008 + */ +asm void PPCMthid2 ( register u32 newhid2 ) +{ + nofralloc + mtspr HID2, newhid2 + blr +} + +/* + * --INFO-- + * Address: 8036F880 + * Size: 00000C + */ +asm u32 PPCMfwpar(void) +{ + nofralloc + sync + mfspr r3, WPAR + blr +} + +/* + * --INFO-- + * Address: 8036F88C + * Size: 000008 + */ +asm void PPCMtwpar ( register u32 newwpar ) +{ + nofralloc + mtspr WPAR, newwpar + blr +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + */ +asm void PPCMfdmaU(void) +{ + nofralloc + mfspr r3, DMA_U + blr +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + */ +asm void PPCMfdmaL(void) +{ + nofralloc + mfspr r3, DMA_L + blr +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + */ +void PPCMtdmaU(void) +{ + // UNUSED FUNCTION +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + */ +void PPCMtdmaL(void) +{ + // UNUSED FUNCTION +} + +/* + * --INFO-- + * Address: ........ + * Size: 000008 + */ +void PPCMfpvr(void) +{ + // UNUSED FUNCTION +} + +/* + * --INFO-- + * Address: ........ + * Size: 000028 + */ +void PPCEnableSpeculation(void) +{ + // UNUSED FUNCTION +} + +/* + * --INFO-- + * Address: 8036F894 + * Size: 000028 + */ +void PPCDisableSpeculation (void) +{ + PPCMthid0(PPCMfhid0() | HID0_SPD); +} + +/* + * --INFO-- + * Address: 8036F8BC + * Size: 000008 + */ +asm void PPCSetFpIEEEMode(void) +{ + nofralloc + mtfsb0 4*7+1 + blr +} +/* + * --INFO-- + * Address: 8036F8C4 + * Size: 000008 + */ +asm void PPCSetFpNonIEEEMode (void) +{ + nofralloc + mtfsb1 4*7+1 + blr +} + +/* clang-format on */ diff --git a/src/dolphin/ai.c b/src/dolphin/ai.c new file mode 100644 index 00000000..e9fa77bd --- /dev/null +++ b/src/dolphin/ai.c @@ -0,0 +1,362 @@ +#include "dolphin/ai.h" +#include "dolphin/hw_regs.h" +#include "dolphin/os.h" + +const char *__AIVersion = "<< Dolphin SDK - AI\trelease build: Sep 5 2002 05:34:25 (0x2301) >>"; + +static AISCallback __AIS_Callback = NULL; +static AIDCallback __AID_Callback = NULL; +static u8 *__CallbackStack; +static u8 *__OldStack; +static volatile s32 __AI_init_flag = FALSE; +static volatile s32 __AID_Active = FALSE; + +static OSTime bound_32KHz; +static OSTime bound_48KHz; +static OSTime min_wait; +static OSTime max_wait; +static OSTime buffer; + +void __AISHandler(s16 interrupt, OSContext *context); +void __AIDHandler(s16 interrupt, OSContext *context); +void __AICallbackStackSwitch(register AIDCallback cb); +void __AI_SRC_INIT(void); + +AIDCallback AIRegisterDMACallback(AIDCallback callback) +{ + s32 oldInts; + AIDCallback ret; + + ret = __AID_Callback; + oldInts = OSDisableInterrupts(); + __AID_Callback = callback; + OSRestoreInterrupts(oldInts); + return ret; +} + +void AIInitDMA(u32 addr, u32 length) +{ + s32 oldInts; + oldInts = OSDisableInterrupts(); + __DSPRegs[24] = (u16)((__DSPRegs[24] & ~0x3FF) | (addr >> 16)); + __DSPRegs[25] = (u16)((__DSPRegs[25] & ~0xFFE0) | (0xffff & addr)); + __DSPRegs[27] = (u16)((__DSPRegs[27] & ~0x7FFF) | (u16)((length >> 5) & 0xFFFF)); + OSRestoreInterrupts(oldInts); +} + +void AIStartDMA() +{ + __DSPRegs[27] |= 0x8000; +} + +void AIStopDMA(void) +{ + __DSPRegs[27] &= ~0x8000; +} + +u32 AIGetDMAStartAddr(void) +{ + return (u32)((__DSPRegs[24] & 0x03ff) << 16) | (__DSPRegs[25] & 0xffe0); +} + +AISCallback AIRegisterStreamCallback(AISCallback callback) +{ + AISCallback ret; + s32 oldInts; + + ret = __AIS_Callback; + oldInts = OSDisableInterrupts(); + __AIS_Callback = callback; + OSRestoreInterrupts(oldInts); + return ret; +} + +void AIResetStreamSampleCount(void) +{ + __AIRegs[0] = (__AIRegs[0] & ~0x20) | 0x20; +} + +void AISetStreamTrigger(u32 trigger) +{ + __AIRegs[3] = trigger; +} + +void AISetStreamPlayState(u32 state) +{ + s32 oldInts; + u8 volRight; + u8 volLeft; + + if (state == AIGetStreamPlayState()) { + return; + } + if ((AIGetStreamSampleRate() == 0U) && (state == 1)) { + volRight = AIGetStreamVolRight(); + volLeft = AIGetStreamVolLeft(); + AISetStreamVolRight(0); + AISetStreamVolLeft(0); + oldInts = OSDisableInterrupts(); + __AI_SRC_INIT(); + __AIRegs[0] = (__AIRegs[0] & ~0x20) | 0x20; + __AIRegs[0] = (__AIRegs[0] & ~1) | 1; + OSRestoreInterrupts(oldInts); + AISetStreamVolLeft(volRight); + AISetStreamVolRight(volLeft); + } + else { + __AIRegs[0] = (__AIRegs[0] & ~1) | state; + } +} + +u32 AIGetStreamPlayState() +{ + return __AIRegs[0] & 1; +} + +void AISetDSPSampleRate(u32 rate) +{ + u32 state; + s32 oldInts; + u8 left; + u8 right; + u32 sampleRate; + + if (rate == AIGetDSPSampleRate()) { + return; + } + + __AIRegs[0] &= ~0x40; + if (rate == 0) { + left = AIGetStreamVolLeft(); + right = AIGetStreamVolRight(); + state = AIGetStreamPlayState(); + sampleRate = AIGetStreamSampleRate(); + AISetStreamVolLeft(0); + AISetStreamVolRight(0); + oldInts = OSDisableInterrupts(); + __AI_SRC_INIT(); + __AIRegs[0] = (__AIRegs[0] & ~0x20) | 0x20; + __AIRegs[0] = (__AIRegs[0] & ~2) | (sampleRate * 2); + __AIRegs[0] = (__AIRegs[0] & ~1) | state; + __AIRegs[0] |= 0x40; + OSRestoreInterrupts(oldInts); + AISetStreamVolLeft(left); + AISetStreamVolRight(right); + } +} + +u32 AIGetDSPSampleRate() +{ + return ((__AIRegs[0] >> 6) & 1) ^ 1; +} + +void __AI_set_stream_sample_rate(u32 rate) +{ + s32 oldInts; + s32 state; + u8 left; + u8 right; + s32 temp_r26; + + if (rate == AIGetStreamSampleRate()) { + return; + } + state = AIGetStreamPlayState(); + left = AIGetStreamVolLeft(); + right = AIGetStreamVolRight(); + AISetStreamVolRight(0); + AISetStreamVolLeft(0); + temp_r26 = __AIRegs[0] & 0x40; + __AIRegs[0] &= ~0x40; + oldInts = OSDisableInterrupts(); + __AI_SRC_INIT(); + __AIRegs[0] |= temp_r26; + __AIRegs[0] = (__AIRegs[0] & ~0x20) | 0x20; + __AIRegs[0] = (__AIRegs[0] & ~2) | (rate * 2); + OSRestoreInterrupts(oldInts); + AISetStreamPlayState(state); + AISetStreamVolLeft(left); + AISetStreamVolRight(right); +} + +u32 AIGetStreamSampleRate() +{ + return (__AIRegs[0] >> 1) & 1; +} + +void AISetStreamVolLeft(u8 volume) +{ + __AIRegs[1] = (__AIRegs[1] & ~0xFF) | (volume & 0xFF); +} + +u8 AIGetStreamVolLeft() +{ + return __AIRegs[1]; +} + +void AISetStreamVolRight(u8 volume) +{ + __AIRegs[1] = (__AIRegs[1] & ~0xFF00) | ((volume & 0xFF) << 8); +} + +u8 AIGetStreamVolRight() +{ + return __AIRegs[1] >> 8; +} + +void AIInit(u8 *stack) +{ + if (__AI_init_flag == TRUE) { + return; + } + + bound_32KHz = OSNanosecondsToTicks(31524); + bound_48KHz = OSNanosecondsToTicks(42024); + min_wait = OSNanosecondsToTicks(42000); + max_wait = OSNanosecondsToTicks(63000); + buffer = OSNanosecondsToTicks(3000); + + AISetStreamVolRight(0); + AISetStreamVolLeft(0); + AISetStreamTrigger(0); + AIResetStreamSampleCount(); + __AI_set_stream_sample_rate(1); + AISetDSPSampleRate(0); + __AIS_Callback = 0; + __AID_Callback = 0; + __CallbackStack = stack; + __OSSetInterruptHandler(5, __AIDHandler); + __OSUnmaskInterrupts(0x04000000); + __OSSetInterruptHandler(8, __AISHandler); + __OSUnmaskInterrupts(0x800000); + __AI_init_flag = TRUE; +} + +void __AISHandler(s16 interrupt, OSContext *context) +{ + OSContext tmpContext; + __AIRegs[0] |= 8; + OSClearContext(&tmpContext); + OSSetCurrentContext(&tmpContext); + if (__AIS_Callback != NULL) { + __AIS_Callback(__AIRegs[2]); + } + OSClearContext(&tmpContext); + OSSetCurrentContext(context); +} + +void __AIDHandler(s16 interrupt, OSContext *context) +{ + OSContext tempContext; + u16 temp = __DSPRegs[5]; + __DSPRegs[5] = (temp & ~0xA0) | 8; + OSClearContext(&tempContext); + OSSetCurrentContext(&tempContext); + if (__AID_Callback) { + if (__CallbackStack) { + __AICallbackStackSwitch(__AID_Callback); + } + else { + __AID_Callback(); + } + } + + OSClearContext(&tempContext); + OSSetCurrentContext(context); +} + +// clang-format off +asm void __AICallbackStackSwitch(register AIDCallback cb) { + // Allocate stack frame + fralloc + + // Store current stack + lis r5, __OldStack@ha + addi r5, r5, __OldStack@l + stw r1, 0(r5) + + // Load stack for callback + lis r5, __CallbackStack@ha + addi r5, r5, __CallbackStack@l + lwz r1,0(r5) + + // Move stack down 8 bytes + subi r1, r1, 8 + // Call callback + mtlr cb + blrl + + // Restore old stack + lis r5, __OldStack @ha + addi r5, r5, __OldStack@l + lwz r1,0(r5) + + // Free stack frame + frfree + + blr +} +// clang-format on + +void __AI_SRC_INIT(void) +{ + OSTime rise32 = 0; + OSTime rise48 = 0; + OSTime diff = 0; + OSTime unused1 = 0; + OSTime temp = 0; + u32 temp0 = 0; + u32 temp1 = 0; + u32 done = 0; + u32 walking = 0; + u32 unused2 = 0; + u32 initCnt = 0; + + walking = 0; + initCnt = 0; + temp = 0; + + while (!done) { + __AIRegs[0] = (__AIRegs[0] & ~0x20) | 0x20; + __AIRegs[0] &= ~2; + __AIRegs[0] = (__AIRegs[0] & ~1) | 1; + + temp0 = __AIRegs[2]; + + while (temp0 == __AIRegs[2]) + ; + rise32 = OSGetTime(); + + __AIRegs[0] = (__AIRegs[0] & ~2) | 2; + __AIRegs[0] = (__AIRegs[0] & ~1) | 1; + + temp1 = __AIRegs[2]; + while (temp1 == __AIRegs[2]) + ; + + rise48 = OSGetTime(); + + diff = rise48 - rise32; + __AIRegs[0] &= ~2; + __AIRegs[0] &= ~1; + + if (diff < (bound_32KHz - buffer)) { + temp = min_wait; + done = 1; + ++initCnt; + } + else if (diff >= (bound_32KHz + buffer) && diff < (bound_48KHz - buffer)) { + temp = max_wait; + done = 1; + ++initCnt; + } + else { + done = 0; + walking = 1; + ++initCnt; + } + } + + while ((rise48 + temp) > OSGetTime()) + ; +} diff --git a/src/dolphin/db.c b/src/dolphin/db.c new file mode 100644 index 00000000..bcf8534d --- /dev/null +++ b/src/dolphin/db.c @@ -0,0 +1,43 @@ +#include +#include + +DBInterface* __DBInterface = NULL; +int DBVerbose; + +extern void __DBExceptionStart(); +extern void __DBExceptionEnd(); +extern void __DBExceptionSetNumber(); + +void DBInit(void) { + __DBInterface = (DBInterface*)OSPhysicalToCached(OS_DBINTERFACE_ADDR); + __DBInterface->ExceptionDestination = (void (*)())OSCachedToPhysical(__DBExceptionDestination); + DBVerbose = TRUE; +} + +void __DBExceptionDestinationAux(void) { + u32* contextAddr = (void*)0x00C0; + OSContext* context = (OSContext*)OSPhysicalToCached(*contextAddr); + + OSReport("DBExceptionDestination\n"); + OSDumpContext(context); + PPCHalt(); +} + +/* clang-format off */ +asm void __DBExceptionDestination(void) { + nofralloc + mfmsr r3 + ori r3, r3, 0x10|0x20 + mtmsr r3 + + b __DBExceptionDestinationAux +} +/* clang-format on */ + +BOOL __DBIsExceptionMarked(__OSException exception) { + u32 mask = 1 << exception; + + return (BOOL)(__DBInterface->exceptionMask & mask); +} + +void DBPrintf(char* format, ...) {} diff --git a/src/dolphin/vi.c b/src/dolphin/vi.c new file mode 100644 index 00000000..3cdedba0 --- /dev/null +++ b/src/dolphin/vi.c @@ -0,0 +1,943 @@ +#include "dolphin/vi.h" +#include "dolphin/OSRtcPriv.h" +#include "dolphin/hw_regs.h" +#include "dolphin/os.h" + +// Useful macros. +#define CLAMP(x, l, h) (((x) > (h)) ? (h) : (((x) < (l)) ? (l) : (x))) +#define MIN(a, b) (((a) < (b)) ? (a) : (b)) +#define MAX(a, b) (((a) > (b)) ? (a) : (b)) +#define IS_LOWER_16MB(x) ((x) < 16 * 1024 * 1024) +#define ToPhysical(fb) (u32)(((u32)(fb)) & 0x3FFFFFFF) +#define ONES(x) ((1 << (x)) - 1) +#define VI_BITMASK(index) (1ull << (63 - (index))) + +static BOOL IsInitialized; +static vu32 retraceCount; +static u32 flushFlag; +static OSThreadQueue retraceQueue; +static VIRetraceCallback PreCB; +static VIRetraceCallback PostCB; +static u32 encoderType; + +static s16 displayOffsetH; +static s16 displayOffsetV; + +static vu32 changeMode; +static vu64 changed; + +static vu32 shdwChangeMode; +static vu64 shdwChanged; + +static VITimingInfo *CurrTiming; +static u32 CurrTvMode; + +static u32 NextBufAddr; +static u32 CurrBufAddr; + +static u32 FBSet; + +static vu16 regs[60]; +static vu16 shdwRegs[60]; + +static VIPositionInfo HorVer; +// clang-format off +static VITimingInfo timing[8] = { + { // NTSC INT + 6, 240, 24, 25, 3, 2, 12, 13, 12, 13, 520, 519, 520, 519, 525, 429, 64, 71, 105, 162, 373, 122, 412, + }, + { // NTSC DS + 6, 240, 24, 24, 4, 4, 12, 12, 12, 12, 520, 520, 520, 520, 526, 429, 64, 71, 105, 162, 373, 122, 412, + }, + { // PAL INT + 5, 287, 35, 36, 1, 0, 13, 12, 11, 10, 619, 618, 617, 620, 625, 432, 64, 75, 106, 172, 380, 133, 420, + }, + { // PAL DS + 5, 287, 33, 33, 2, 2, 13, 11, 13, 11, 619, 621, 619, 621, 624, 432, 64, 75, 106, 172, 380, 133, 420, + }, + { // MPAL INT + 6, 240, 24, 25, 3, 2, 16, 15, 14, 13, 518, 517, 516, 519, 525, 429, 64, 78, 112, 162, 373, 122, 412, + }, + { // MPAL DS + 6, 240, 24, 24, 4, 4, 16, 14, 16, 14, 518, 520, 518, 520, 526, 429, 64, 78, 112, 162, 373, 122, 412, + }, + { // NTSC PRO + 12, 480, 48, 48, 6, 6, 24, 24, 24, 24, 1038, 1038, 1038, 1038, 1050, 429, 64, 71, 105, 162, 373, 122, 412, + }, + { // NTSC 3D + 12, 480, 44, 44, 10, 10, 24, 24, 24, 24, 1038, 1038, 1038, 1038, 1050, 429, 64, 71, 105, 168, 379, 122, 412, + }, +}; +// clang-format on + +static u16 taps[25] = { 496, 476, 430, 372, 297, 219, 142, 70, 12, 226, 203, 192, 196, 207, 222, 236, 252, 8, 15, 19, 19, 15, 12, 8, 1 }; + +// forward declaring statics +static u32 getCurrentFieldEvenOdd(); + +static void getEncoderType(void) +{ + // UNUSED FUNCTION +} + +static int cntlzd(u64 bit) +{ + u32 hi, lo; + int value; + + hi = (u32)(bit >> 32); + lo = (u32)(bit & 0xFFFFFFFF); + value = __cntlzw(hi); + + if (value < 32) { + return value; + } + + return (32 + __cntlzw(lo)); +} + +static BOOL VISetRegs(void) +{ + int regIndex; + + if (!((shdwChangeMode == 1) && (getCurrentFieldEvenOdd() == 0))) { + while (shdwChanged) { + regIndex = cntlzd(shdwChanged); + __VIRegs[regIndex] = shdwRegs[regIndex]; + shdwChanged &= ~(VI_BITMASK(regIndex)); + } + + shdwChangeMode = 0; + CurrTiming = HorVer.timing; + CurrTvMode = HorVer.tv; + + return TRUE; + } + return FALSE; +} + +static void __VIRetraceHandler(__OSInterrupt interrupt, OSContext *context) +{ + OSContext exceptionContext; + u16 viReg; + u32 inter = 0; + + viReg = __VIRegs[VI_DISP_INT_0]; + if (viReg & 0x8000) { + __VIRegs[VI_DISP_INT_0] = (u16)(viReg & ~0x8000); + inter |= 1; + } + + viReg = __VIRegs[VI_DISP_INT_1]; + if (viReg & 0x8000) { + __VIRegs[VI_DISP_INT_1] = (u16)(viReg & ~0x8000); + inter |= 2; + } + + viReg = __VIRegs[VI_DISP_INT_2]; + if (viReg & 0x8000) { + __VIRegs[VI_DISP_INT_2] = (u16)(viReg & ~0x8000); + inter |= 4; + } + + viReg = __VIRegs[VI_DISP_INT_3]; + if (viReg & 0x8000) { + __VIRegs[VI_DISP_INT_3] = (u16)(viReg & ~0x8000); + inter |= 8; + } + + if ((inter & 4) || (inter & 8)) { + OSSetCurrentContext(context); + return; + } + + retraceCount++; + + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + if (PreCB) { + (*PreCB)(retraceCount); + } + + if (flushFlag) { + if (VISetRegs()) { + flushFlag = 0; + SIRefreshSamplingRate(); + } + } + + if (PostCB) { + OSClearContext(&exceptionContext); + (*PostCB)(retraceCount); + } + + OSWakeupThread(&retraceQueue); + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); +} + +VIRetraceCallback VISetPreRetraceCallback(VIRetraceCallback callback) +{ + int interrupt; + VIRetraceCallback oldCallback; + + oldCallback = PreCB; + + interrupt = OSDisableInterrupts(); + PreCB = callback; + OSRestoreInterrupts(interrupt); + + return oldCallback; +} + +VIRetraceCallback VISetPostRetraceCallback(VIRetraceCallback callback) +{ + int interrupt; + VIRetraceCallback oldCallback; + + oldCallback = PostCB; + + interrupt = OSDisableInterrupts(); + PostCB = callback; + OSRestoreInterrupts(interrupt); + + return oldCallback; +} + +#pragma dont_inline on +static VITimingInfo *getTiming(VITVMode mode) +{ + switch (mode) { + case VI_TVMODE_NTSC_INT: + return &timing[0]; + case VI_TVMODE_NTSC_DS: + return &timing[1]; + + case VI_TVMODE_PAL_INT: + return &timing[2]; + case VI_TVMODE_PAL_DS: + return &timing[3]; + + case VI_TVMODE_EURGB60_INT: + return &timing[0]; + case VI_TVMODE_EURGB60_DS: + return &timing[1]; + + case VI_TVMODE_MPAL_INT: + return &timing[4]; + case VI_TVMODE_MPAL_DS: + return &timing[5]; + + case VI_TVMODE_NTSC_PROG: + return &timing[6]; + case VI_TVMODE_NTSC_3D: + return &timing[7]; + + case VI_TVMODE_DEBUG_PAL_INT: + return &timing[2]; + case VI_TVMODE_DEBUG_PAL_DS: + return &timing[3]; + } + + return nullptr; +} +#pragma dont_inline off + +void __VIInit(VITVMode mode) +{ + VITimingInfo *tm; + u32 nonInter; + vu32 a; + u32 tv, tvForReg; + + u16 hct, vct; + + nonInter = mode & 2; + tv = (u32)mode >> 2; + + *(u32 *)OSPhysicalToCached(0xCC) = tv; + + tm = getTiming(mode); + + __VIRegs[VI_DISP_CONFIG] = 2; + for (a = 0; a < 1000; a++) { + ; + } + + __VIRegs[VI_DISP_CONFIG] = 0; + + __VIRegs[VI_HORIZ_TIMING_0U] = tm->hlw << 0; + __VIRegs[VI_HORIZ_TIMING_0L] = (tm->hce << 0) | (tm->hcs << 8); + + __VIRegs[VI_HORIZ_TIMING_1U] = (tm->hsy << 0) | ((tm->hbe640 & ((1 << 9) - 1)) << 7); + __VIRegs[VI_HORIZ_TIMING_1L] = ((tm->hbe640 >> 9) << 0) | (tm->hbs640 << 1); + + __VIRegs[VI_VERT_TIMING] = (tm->equ << 0) | (0 << 4); + + __VIRegs[VI_VERT_TIMING_ODD_U] = (tm->prbOdd + tm->acv * 2 - 2) << 0; + __VIRegs[VI_VERT_TIMING_ODD] = tm->psbOdd + 2 << 0; + + __VIRegs[VI_VERT_TIMING_EVEN_U] = (tm->prbEven + tm->acv * 2 - 2) << 0; + __VIRegs[VI_VERT_TIMING_EVEN] = tm->psbEven + 2 << 0; + + __VIRegs[VI_BBI_ODD_U] = (tm->bs1 << 0) | (tm->be1 << 5); + __VIRegs[VI_BBI_ODD] = (tm->bs3 << 0) | (tm->be3 << 5); + + __VIRegs[VI_BBI_EVEN_U] = (tm->bs2 << 0) | (tm->be2 << 5); + __VIRegs[VI_BBI_EVEN] = (tm->bs4 << 0) | (tm->be4 << 5); + + __VIRegs[VI_HSW] = (40 << 0) | (40 << 8); + + __VIRegs[VI_DISP_INT_1U] = 1; + __VIRegs[VI_DISP_INT_1] = (1 << 0) | (1 << 12) | (0 << 15); + + hct = (tm->hlw + 1); + vct = (tm->numHalfLines / 2 + 1) | (1 << 12) | (0 << 15); + __VIRegs[VI_DISP_INT_0U] = hct << 0; + __VIRegs[VI_DISP_INT_0] = vct; + + if (mode != VI_TVMODE_NTSC_PROG && mode != VI_TVMODE_NTSC_3D) { + __VIRegs[VI_DISP_CONFIG] = (1 << 0) | (0 << 1) | (nonInter << 2) | (0 << 3) | (0 << 4) | (0 << 6) | (tv << 8); + __VIRegs[VI_CLOCK_SEL] = 0; + } + else { + __VIRegs[VI_DISP_CONFIG] = (1 << 0) | (0 << 1) | (1 << 2) | (0 << 3) | (0 << 4) | (0 << 6) | (tv << 8); + __VIRegs[VI_CLOCK_SEL] = 1; + } +} + +static void AdjustPosition(u16 acv) +{ + s32 coeff, frac; + + HorVer.adjDispPosX = (u16)CLAMP((s16)HorVer.dispPosX + displayOffsetH, 0, 720 - HorVer.dispSizeX); + + coeff = (HorVer.xfbMode == VI_XFBMODE_SF) ? 2 : 1; + frac = HorVer.dispPosY & 1; + + HorVer.adjDispPosY = (u16)MAX((s16)HorVer.dispPosY + displayOffsetV, frac); + + HorVer.adjDispSizeY = (u16)(HorVer.dispSizeY + MIN((s16)HorVer.dispPosY + displayOffsetV - frac, 0) + - MAX((s16)HorVer.dispPosY + (s16)HorVer.dispSizeY + displayOffsetV - ((s16)acv * 2 - frac), 0)); + + HorVer.adjPanPosY = (u16)(HorVer.panPosY - MIN((s16)HorVer.dispPosY + displayOffsetV - frac, 0) / coeff); + + HorVer.adjPanSizeY = (u16)(HorVer.panSizeY + MIN((s16)HorVer.dispPosY + displayOffsetV - frac, 0) / coeff + - MAX((s16)HorVer.dispPosY + (s16)HorVer.dispSizeY + displayOffsetV - ((s16)acv * 2 - frac), 0) / coeff); +} + +static void ImportAdjustingValues(void) +{ + displayOffsetH = __OSLockSram()->displayOffsetH; + displayOffsetV = 0; + __OSUnlockSram(FALSE); +} + +void VIInit(void) +{ + u16 dspCfg; + u32 value, tv; + + encoderType = 1; + + if (!(__VIRegs[VI_DISP_CONFIG] & 1)) { + __VIInit(VI_TVMODE_NTSC_INT); + } + + retraceCount = 0; + changed = 0; + shdwChanged = 0; + changeMode = 0; + shdwChangeMode = 0; + flushFlag = 0; + + __VIRegs[VI_FCT_0U] = ((((taps[0])) << 0) | (((taps[1] & ((1 << (6)) - 1))) << 10)); + __VIRegs[VI_FCT_0] = ((((taps[1] >> 6)) << 0) | (((taps[2])) << 4)); + __VIRegs[VI_FCT_1U] = ((((taps[3])) << 0) | (((taps[4] & ((1 << (6)) - 1))) << 10)); + __VIRegs[VI_FCT_1] = ((((taps[4] >> 6)) << 0) | (((taps[5])) << 4)); + __VIRegs[VI_FCT_2U] = ((((taps[6])) << 0) | (((taps[7] & ((1 << (6)) - 1))) << 10)); + __VIRegs[VI_FCT_2] = ((((taps[7] >> 6)) << 0) | (((taps[8])) << 4)); + __VIRegs[VI_FCT_3U] = ((((taps[9])) << 0) | (((taps[10])) << 8)); + __VIRegs[VI_FCT_3] = ((((taps[11])) << 0) | (((taps[12])) << 8)); + __VIRegs[VI_FCT_4U] = ((((taps[13])) << 0) | (((taps[14])) << 8)); + __VIRegs[VI_FCT_4] = ((((taps[15])) << 0) | (((taps[16])) << 8)); + __VIRegs[VI_FCT_5U] = ((((taps[17])) << 0) | (((taps[18])) << 8)); + __VIRegs[VI_FCT_5] = ((((taps[19])) << 0) | (((taps[20])) << 8)); + __VIRegs[VI_FCT_6U] = ((((taps[21])) << 0) | (((taps[22])) << 8)); + __VIRegs[VI_FCT_6] = ((((taps[23])) << 0) | (((taps[24])) << 8)); + + __VIRegs[VI_WIDTH] = 640; + ImportAdjustingValues(); + dspCfg = __VIRegs[VI_DISP_CONFIG]; + + HorVer.nonInter = ((((u32)(dspCfg)) >> 2 & 0x00000001)); + HorVer.tv = ((((u32)(dspCfg)) & 0x00000300) >> 8); + + tv = (HorVer.tv == VI_DEBUG) ? VI_NTSC : HorVer.tv; + HorVer.timing = getTiming((VITVMode)VI_TVMODE(tv, HorVer.nonInter)); + regs[VI_DISP_CONFIG] = dspCfg; + + CurrTiming = HorVer.timing; + CurrTvMode = HorVer.tv; + + HorVer.dispSizeX = 640; + HorVer.dispSizeY = (u16)(CurrTiming->acv * 2); + HorVer.dispPosX = (u16)((720 - HorVer.dispSizeX) / 2); + HorVer.dispPosY = 0; + + AdjustPosition(CurrTiming->acv); + + HorVer.fbSizeX = 640; + HorVer.fbSizeY = (u16)(CurrTiming->acv * 2); + HorVer.panPosX = 0; + HorVer.panPosY = 0; + HorVer.panSizeX = 640; + HorVer.panSizeY = (u16)(CurrTiming->acv * 2); + HorVer.xfbMode = VI_XFBMODE_SF; + HorVer.wordPerLine = 40; + HorVer.std = 40; + HorVer.wpl = 40; + HorVer.xof = 0; + HorVer.isBlack = TRUE; + HorVer.is3D = FALSE; + + OSInitThreadQueue(&retraceQueue); + + value = __VIRegs[VI_DISP_INT_0]; + value = (((u32)(value)) & ~0x00008000) | (((0)) << 15); + __VIRegs[VI_DISP_INT_0] = value; + + value = __VIRegs[VI_DISP_INT_1]; + value = (((u32)(value)) & ~0x00008000) | (((0)) << 15); + __VIRegs[VI_DISP_INT_1] = value; + + PreCB = nullptr; + PostCB = nullptr; + + __OSSetInterruptHandler(24, __VIRetraceHandler); + __OSUnmaskInterrupts((0x80000000u >> (24))); +} + +void VIWaitForRetrace(void) +{ + int interrupt; + u32 startCount; + + interrupt = OSDisableInterrupts(); + startCount = retraceCount; + do { + OSSleepThread(&retraceQueue); + } while (startCount == retraceCount); + OSRestoreInterrupts(interrupt); +} + +static void setInterruptRegs(VITimingInfo *tm) +{ + u16 vct, hct, borrow; + + vct = (u16)(tm->numHalfLines / 2); + borrow = (u16)(tm->numHalfLines % 2); + hct = (u16)((borrow) ? tm->hlw : (u16)0); + + vct++; + hct++; + + regs[VI_DISP_INT_0U] = (u16)hct; + changed |= VI_BITMASK(VI_DISP_INT_0U); + + regs[VI_DISP_INT_0] = (u16)((((u32)(vct))) | (((u32)(1)) << 12) | (((u32)(0)) << 15)); + changed |= VI_BITMASK(VI_DISP_INT_0); +} + +static void setPicConfig(u16 fbSizeX, VIXFBMode xfbMode, u16 panPosX, u16 panSizeX, u8 *wordPerLine, u8 *std, u8 *wpl, u8 *xof) +{ + *wordPerLine = (u8)((fbSizeX + 15) / 16); + *std = (u8)((xfbMode == VI_XFBMODE_SF) ? *wordPerLine : (u8)(2 * *wordPerLine)); + *xof = (u8)(panPosX % 16); + *wpl = (u8)((*xof + panSizeX + 15) / 16); + + regs[VI_HSW] = (u16)((((u32)(*std))) | (((u32)(*wpl)) << 8)); + changed |= VI_BITMASK(VI_HSW); +} + +static void setBBIntervalRegs(VITimingInfo *tm) +{ + u16 val; + + val = (u16)((((u32)(tm->bs1))) | (((u32)(tm->be1)) << 5)); + regs[VI_BBI_ODD_U] = val; + changed |= VI_BITMASK(VI_BBI_ODD_U); + + val = (u16)((((u32)(tm->bs3))) | (((u32)(tm->be3)) << 5)); + regs[VI_BBI_ODD] = val; + changed |= VI_BITMASK(VI_BBI_ODD); + + val = (u16)((((u32)(tm->bs2))) | (((u32)(tm->be2)) << 5)); + regs[VI_BBI_EVEN_U] = val; + changed |= VI_BITMASK(VI_BBI_EVEN_U); + + val = (u16)((((u32)(tm->bs4))) | (((u32)(tm->be4)) << 5)); + regs[VI_BBI_EVEN] = val; + changed |= VI_BITMASK(VI_BBI_EVEN); +} + +static void setScalingRegs(u16 panSizeX, u16 dispSizeX, BOOL is3D) +{ + u32 scale; + + panSizeX = (u16)(is3D ? panSizeX * 2 : panSizeX); + + if (panSizeX < dispSizeX) { + scale = (256 * (u32)panSizeX + (u32)dispSizeX - 1) / (u32)dispSizeX; + + regs[VI_HSR] = (u16)((((u32)(scale))) | (((u32)(1)) << 12)); + changed |= VI_BITMASK(VI_HSR); + + regs[VI_WIDTH] = (u16)((((u32)(panSizeX)))); + changed |= VI_BITMASK(VI_WIDTH); + } + else { + regs[VI_HSR] = (u16)((((u32)(256))) | (((u32)(0)) << 12)); + changed |= VI_BITMASK(VI_HSR); + } +} + +static void calcFbbs(u32 bufAddr, u16 panPosX, u16 panPosY, u8 wordPerLine, VIXFBMode xfbMode, u16 dispPosY, u32 *tfbb, u32 *bfbb) +{ + u32 bytesPerLine, xoffInWords; + xoffInWords = (u32)panPosX / 16; + bytesPerLine = (u32)wordPerLine * 32; + + *tfbb = bufAddr + xoffInWords * 32 + bytesPerLine * panPosY; + *bfbb = (xfbMode == VI_XFBMODE_SF) ? *tfbb : (*tfbb + bytesPerLine); + + if (dispPosY % 2 == 1) { + u32 tmp = *tfbb; + *tfbb = *bfbb; + *bfbb = tmp; + } + + *tfbb = ToPhysical(*tfbb); + *bfbb = ToPhysical(*bfbb); +} + +static void setFbbRegs(VIPositionInfo *hv, u32 *tfbb, u32 *bfbb, u32 *rtfbb, u32 *rbfbb) +{ + u32 shifted; + calcFbbs(hv->bufAddr, hv->panPosX, hv->adjPanPosY, hv->wordPerLine, hv->xfbMode, hv->adjDispPosY, tfbb, bfbb); + + if (hv->is3D) { + calcFbbs(hv->rbufAddr, hv->panPosX, hv->adjPanPosY, hv->wordPerLine, hv->xfbMode, hv->adjDispPosY, rtfbb, rbfbb); + } + + if (IS_LOWER_16MB(*tfbb) && IS_LOWER_16MB(*bfbb) && IS_LOWER_16MB(*rtfbb) && IS_LOWER_16MB(*rbfbb)) { + shifted = 0; + } + else { + shifted = 1; + } + + if (shifted) { + *tfbb >>= 5; + *bfbb >>= 5; + *rtfbb >>= 5; + *rbfbb >>= 5; + } + + regs[VI_TOP_FIELD_BASE_LEFT_U] = (u16)(*tfbb & 0xFFFF); + changed |= VI_BITMASK(VI_TOP_FIELD_BASE_LEFT_U); + + regs[VI_TOP_FIELD_BASE_LEFT] = (u16)((((*tfbb >> 16))) | hv->xof << 8 | shifted << 12); + changed |= VI_BITMASK(VI_TOP_FIELD_BASE_LEFT); + + regs[VI_BTTM_FIELD_BASE_LEFT_U] = (u16)(*bfbb & 0xFFFF); + changed |= VI_BITMASK(VI_BTTM_FIELD_BASE_LEFT_U); + + regs[VI_BTTM_FIELD_BASE_LEFT] = (u16)(*bfbb >> 16); + changed |= VI_BITMASK(VI_BTTM_FIELD_BASE_LEFT); + + if (hv->is3D) { + regs[VI_TOP_FIELD_BASE_RIGHT_U] = *rtfbb & 0xffff; + changed |= VI_BITMASK(VI_TOP_FIELD_BASE_RIGHT_U); + + regs[VI_TOP_FIELD_BASE_RIGHT] = *rtfbb >> 16; + changed |= VI_BITMASK(VI_TOP_FIELD_BASE_RIGHT); + + regs[VI_BTTM_FIELD_BASE_RIGHT_U] = *rbfbb & 0xFFFF; + changed |= VI_BITMASK(VI_BTTM_FIELD_BASE_RIGHT_U); + + regs[VI_BTTM_FIELD_BASE_RIGHT] = *rbfbb >> 16; + changed |= VI_BITMASK(VI_BTTM_FIELD_BASE_RIGHT); + } +} + +static void setHorizontalRegs(VITimingInfo *tm, u16 dispPosX, u16 dispSizeX) +{ + u32 hbe, hbs, hbeLo, hbeHi; + + regs[VI_HORIZ_TIMING_0U] = (u16)tm->hlw; + changed |= VI_BITMASK(VI_HORIZ_TIMING_0U); + + regs[VI_HORIZ_TIMING_0L] = (u16)(tm->hce | tm->hcs << 8); + changed |= VI_BITMASK(VI_HORIZ_TIMING_0L); + + hbe = (u32)(tm->hbe640 - 40 + dispPosX); + hbs = (u32)(tm->hbs640 + 40 + dispPosX - (720 - dispSizeX)); + + hbeLo = hbe & ONES(9); + hbeHi = hbe >> 9; + + regs[VI_HORIZ_TIMING_1U] = (u16)(tm->hsy | hbeLo << 7); + changed |= VI_BITMASK(VI_HORIZ_TIMING_1U); + + regs[VI_HORIZ_TIMING_1L] = (u16)(hbeHi | hbs << 1); + changed |= VI_BITMASK(VI_HORIZ_TIMING_1L); +} + +static void setVerticalRegs(u16 dispPosY, u16 dispSizeY, u8 equ, u16 acv, u16 prbOdd, u16 prbEven, u16 psbOdd, u16 psbEven, BOOL black) +{ + u16 actualPrbOdd, actualPrbEven, actualPsbOdd, actualPsbEven, actualAcv, c, d; + + if (equ >= 10) { + c = 1; + d = 2; + } + else { + c = 2; + d = 1; + } + + if (dispPosY % 2 == 0) { + actualPrbOdd = (u16)(prbOdd + d * dispPosY); + actualPsbOdd = (u16)(psbOdd + d * ((c * acv - dispSizeY) - dispPosY)); + actualPrbEven = (u16)(prbEven + d * dispPosY); + actualPsbEven = (u16)(psbEven + d * ((c * acv - dispSizeY) - dispPosY)); + } + else { + actualPrbOdd = (u16)(prbEven + d * dispPosY); + actualPsbOdd = (u16)(psbEven + d * ((c * acv - dispSizeY) - dispPosY)); + actualPrbEven = (u16)(prbOdd + d * dispPosY); + actualPsbEven = (u16)(psbOdd + d * ((c * acv - dispSizeY) - dispPosY)); + } + + actualAcv = (u16)(dispSizeY / c); + + if (black) { + actualPrbOdd += 2 * actualAcv - 2; + actualPsbOdd += 2; + actualPrbEven += 2 * actualAcv - 2; + actualPsbEven += 2; + actualAcv = 0; + } + + regs[VI_VERT_TIMING] = (u16)(equ | actualAcv << 4); + changed |= VI_BITMASK(VI_VERT_TIMING); + + regs[VI_VERT_TIMING_ODD_U] = (u16)actualPrbOdd << 0; + changed |= VI_BITMASK(VI_VERT_TIMING_ODD_U); + + regs[VI_VERT_TIMING_ODD] = (u16)actualPsbOdd << 0; + changed |= VI_BITMASK(VI_VERT_TIMING_ODD); + + regs[VI_VERT_TIMING_EVEN_U] = (u16)actualPrbEven << 0; + changed |= VI_BITMASK(VI_VERT_TIMING_EVEN_U); + + regs[VI_VERT_TIMING_EVEN] = (u16)actualPsbEven << 0; + changed |= VI_BITMASK(VI_VERT_TIMING_EVEN); +} + +static void PrintDebugPalCaution(void) +{ + static u32 message = 0; + + if (message == 0) { + message = 1; + OSReport("***************************************\n"); + OSReport(" ! ! ! C A U T I O N ! ! ! \n"); + OSReport("This TV format \"DEBUG_PAL\" is only for \n"); + OSReport("temporary solution until PAL DAC board \n"); + OSReport("is available. Please do NOT use this \n"); + OSReport("mode in real games!!! \n"); + OSReport("***************************************\n"); + } +} + +void VIConfigure(const GXRenderModeObj *obj) +{ + VITimingInfo *tm; + u32 regDspCfg; + BOOL enabled; + u32 newNonInter, tvInBootrom, tvInGame; + + enabled = OSDisableInterrupts(); + newNonInter = (u32)obj->viTVmode & 3; + + if (HorVer.nonInter != newNonInter) { + changeMode = 1; + HorVer.nonInter = newNonInter; + } + + tvInGame = (u32)obj->viTVmode >> 2; + tvInBootrom = *(u32 *)OSPhysicalToCached(0xCC); + + if (tvInGame == VI_DEBUG_PAL) { + PrintDebugPalCaution(); + } + + if ((tvInGame == VI_NTSC) || (tvInGame == VI_MPAL)) { + HorVer.tv = tvInBootrom; + } + else { + HorVer.tv = tvInGame; + } + + HorVer.dispPosX = obj->viXOrigin; + HorVer.dispPosY = (u16)((HorVer.nonInter == VI_NON_INTERLACE) ? (u16)(obj->viYOrigin * 2) : obj->viYOrigin); + HorVer.dispSizeX = obj->viWidth; + HorVer.fbSizeX = obj->fbWidth; + HorVer.fbSizeY = obj->xfbHeight; + HorVer.xfbMode = obj->xFBmode; + HorVer.panSizeX = HorVer.fbSizeX; + HorVer.panSizeY = HorVer.fbSizeY; + HorVer.panPosX = 0; + HorVer.panPosY = 0; + + HorVer.dispSizeY = (u16)((HorVer.nonInter == VI_PROGRESSIVE) ? HorVer.panSizeY + : (HorVer.nonInter == VI_3D) ? HorVer.panSizeY + : (HorVer.xfbMode == VI_XFBMODE_SF) ? (u16)(2 * HorVer.panSizeY) + : HorVer.panSizeY); + + HorVer.is3D = (HorVer.nonInter == VI_3D) ? TRUE : FALSE; + + tm = getTiming((VITVMode)VI_TVMODE(HorVer.tv, HorVer.nonInter)); + HorVer.timing = tm; + + AdjustPosition(tm->acv); + if (encoderType == 0) { + HorVer.tv = VI_DEBUG; + } + setInterruptRegs(tm); + + regDspCfg = regs[VI_DISP_CONFIG]; + + if ((HorVer.nonInter == VI_PROGRESSIVE) || (HorVer.nonInter == VI_3D)) { + regDspCfg = (((u32)(regDspCfg)) & ~0x00000004) | (((u32)(1)) << 2); + } + else { + regDspCfg = (((u32)(regDspCfg)) & ~0x00000004) | (((u32)(HorVer.nonInter & 1)) << 2); + } + + regDspCfg = (((u32)(regDspCfg)) & ~0x00000008) | (((u32)(HorVer.is3D)) << 3); + + if ((HorVer.tv == VI_DEBUG_PAL) || (HorVer.tv == VI_EURGB60)) { + regDspCfg = (((u32)(regDspCfg)) & ~0x00000300) | (((u32)(0)) << 8); + } + else { + regDspCfg = (((u32)(regDspCfg)) & ~0x00000300) | (((u32)(HorVer.tv)) << 8); + } + + regs[VI_DISP_CONFIG] = (u16)regDspCfg; + changed |= VI_BITMASK(0x01); + + regDspCfg = regs[VI_CLOCK_SEL]; + if (obj->viTVmode == VI_TVMODE_NTSC_PROG || obj->viTVmode == VI_TVMODE_NTSC_3D) { + regDspCfg = (u32)(regDspCfg & ~0x1) | 1; + } + else { + regDspCfg = (u32)(regDspCfg & ~0x1); + } + + regs[VI_CLOCK_SEL] = (u16)regDspCfg; + + changed |= 0x200; + + setScalingRegs(HorVer.panSizeX, HorVer.dispSizeX, HorVer.is3D); + setHorizontalRegs(tm, HorVer.adjDispPosX, HorVer.dispSizeX); + setBBIntervalRegs(tm); + setPicConfig(HorVer.fbSizeX, HorVer.xfbMode, HorVer.panPosX, HorVer.panSizeX, &HorVer.wordPerLine, &HorVer.std, &HorVer.wpl, &HorVer.xof); + + if (FBSet) { + setFbbRegs(&HorVer, &HorVer.tfbb, &HorVer.bfbb, &HorVer.rtfbb, &HorVer.rbfbb); + } + + setVerticalRegs(HorVer.adjDispPosY, HorVer.adjDispSizeY, tm->equ, tm->acv, tm->prbOdd, tm->prbEven, tm->psbOdd, tm->psbEven, HorVer.isBlack); + OSRestoreInterrupts(enabled); +} + +void VIConfigurePan(u16 xOrg, u16 yOrg, u16 width, u16 height) +{ + BOOL enabled; + VITimingInfo *tm; + + enabled = OSDisableInterrupts(); + HorVer.panPosX = xOrg; + HorVer.panPosY = yOrg; + HorVer.panSizeX = width; + HorVer.panSizeY = height; + HorVer.dispSizeY = (HorVer.nonInter == 2) ? HorVer.panSizeY + : (HorVer.nonInter == 3) ? HorVer.panSizeY + : (HorVer.xfbMode == VI_XFBMODE_SF) ? (u16)(HorVer.panSizeY * 2) + : HorVer.panSizeY; + tm = HorVer.timing; + AdjustPosition(tm->acv); + setScalingRegs(HorVer.panSizeX, HorVer.dispSizeX, HorVer.is3D); + setPicConfig(HorVer.fbSizeX, HorVer.xfbMode, HorVer.panPosX, HorVer.panSizeX, &HorVer.wordPerLine, &HorVer.std, &HorVer.wpl, &HorVer.xof); + if (FBSet != 0) { + setFbbRegs(&HorVer, &HorVer.tfbb, &HorVer.bfbb, &HorVer.rtfbb, &HorVer.rbfbb); + } + setVerticalRegs(HorVer.adjDispPosY, HorVer.dispSizeY, tm->equ, tm->acv, tm->prbOdd, tm->prbEven, tm->psbOdd, tm->psbEven, HorVer.isBlack); + OSRestoreInterrupts(enabled); +} + +void VIFlush(void) +{ + BOOL enabled; + s32 regIndex; + u32 val; // for stack. + + enabled = OSDisableInterrupts(); + shdwChangeMode |= changeMode; + changeMode = 0; + shdwChanged |= changed; + + while (changed) { + regIndex = cntlzd(changed); + shdwRegs[regIndex] = regs[regIndex]; + changed &= ~VI_BITMASK(regIndex); + } + + flushFlag = 1; + OSRestoreInterrupts(enabled); +} + +void VISetNextFrameBuffer(void *fb) +{ + BOOL enabled = OSDisableInterrupts(); + HorVer.bufAddr = (u32)fb; + FBSet = 1; + setFbbRegs(&HorVer, &HorVer.tfbb, &HorVer.bfbb, &HorVer.rtfbb, &HorVer.rbfbb); + OSRestoreInterrupts(enabled); +} + +void *VIGetNextFrameBuffer() +{ + // UNUSED FUNCTION +} + +void *VIGetCurrentFrameBuffer(void) +{ + return (void *)CurrBufAddr; +} + +void VISetNextRightFrameBuffer(void *fb) +{ + // UNUSED FUNCTION +} + +void VISetBlack(BOOL isBlack) +{ + int interrupt; + VITimingInfo *tm; + + interrupt = OSDisableInterrupts(); + HorVer.isBlack = isBlack; + tm = HorVer.timing; + setVerticalRegs(HorVer.adjDispPosY, HorVer.dispSizeY, tm->equ, tm->acv, tm->prbOdd, tm->prbEven, tm->psbOdd, tm->psbEven, HorVer.isBlack); + OSRestoreInterrupts(interrupt); +} + +void VISet3D(void) +{ + // UNUSED FUNCTION +} + +u32 VIGetRetraceCount(void) +{ + return retraceCount; +} + +static u32 getCurrentHalfLine(void) +{ + u32 hcount; + u32 vcount0; + u32 vcount; + + vcount = __VIRegs[22] & 0x7FF; + do { + vcount0 = vcount; + hcount = __VIRegs[23] & 0x7FF; + vcount = __VIRegs[22] & 0x7FF; + } while (vcount0 != vcount); + return ((vcount - 1) * 2) + ((hcount - 1) / CurrTiming->hlw); +} + +static u32 getCurrentFieldEvenOdd() +{ + return (getCurrentHalfLine() < CurrTiming->numHalfLines) ? 1 : 0; +} + +u32 VIGetNextField(void) +{ + u32 nextField; + int interrupt; + + interrupt = OSDisableInterrupts(); + nextField = getCurrentFieldEvenOdd() ^ 1; + OSRestoreInterrupts(interrupt); + return nextField ^ (HorVer.adjDispPosY & 1); +} + +u32 VIGetCurrentLine(void) +{ + u32 line; + VITimingInfo *tm; + int interrupt; + + tm = CurrTiming; + interrupt = OSDisableInterrupts(); + line = getCurrentHalfLine(); + OSRestoreInterrupts(interrupt); + + if (line >= tm->numHalfLines) { + line -= tm->numHalfLines; + } + + return (line >> 1); +} + +u32 VIGetTvFormat(void) +{ + u32 fmt; + int interrupt; + + interrupt = OSDisableInterrupts(); + + switch (CurrTvMode) { + case VI_NTSC: + case VI_DEBUG: + fmt = VI_NTSC; + break; + case VI_PAL: + case VI_DEBUG_PAL: + fmt = VI_PAL; + break; + case VI_EURGB60: + case VI_MPAL: + fmt = CurrTvMode; + break; + } + + OSRestoreInterrupts(interrupt); + return fmt; +} + +u32 VIGetDTVStatus(void) +{ + u32 stat; + int interrupt; + + interrupt = OSDisableInterrupts(); + stat = (__VIRegs[VI_DTV_STAT] & 3); + OSRestoreInterrupts(interrupt); + return (stat & 1); +} From 53fba73d3374c3b15f2a63be2513c8acc310d69e Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sun, 10 Nov 2024 18:27:13 -0600 Subject: [PATCH 112/311] Link in arq and most of dvd --- config/GMPE01_00/symbols.txt | 4 +- configure.py | 14 +- include/dolphin/os/OSBootInfo.h | 2 +- src/dolphin/ar/ar.c | 251 ++++++++++++++++++ src/dolphin/ar/arq.c | 168 ++++++++++++ src/dolphin/dvd/dvderror.c | 56 ++++ src/dolphin/dvd/dvdfs.c | 356 ++++++++++++++++++++++++++ src/dolphin/dvd/dvdlow.c | 436 ++++++++++++++++++++++++++++++++ src/dolphin/dvd/dvdqueue.c | 142 +++++++++++ src/dolphin/dvd/fstload.c | 68 +++++ 10 files changed, 1487 insertions(+), 10 deletions(-) create mode 100644 src/dolphin/ar/ar.c create mode 100644 src/dolphin/ar/arq.c create mode 100644 src/dolphin/dvd/dvderror.c create mode 100644 src/dolphin/dvd/dvdfs.c create mode 100644 src/dolphin/dvd/dvdlow.c create mode 100644 src/dolphin/dvd/dvdqueue.c create mode 100644 src/dolphin/dvd/fstload.c diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 9607a86b..1c59588e 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -3911,7 +3911,7 @@ lbl_8012E70A = .data:0x8012E70A; // type:object size:0xB data:string lbl_8012E715 = .data:0x8012E715; // type:object size:0x273 lbl_8012E988 = .data:0x8012E988; // type:object size:0x12 data:string lbl_8012E99A = .data:0x8012E99A; // type:object size:0xD6 -HuSndGrpTbl = .data:0x8012EA70; // type:object size:0x5B0 +sndGrpTable = .data:0x8012EA70; // type:object size:0x5B0 lbl_8012F020 = .data:0x8012F020; // type:object size:0x94 lbl_8012F0B4 = .data:0x8012F0B4; // type:object size:0x11 data:string lbl_8012F0C5 = .data:0x8012F0C5; // type:object size:0x3A @@ -5692,7 +5692,7 @@ shdwChanged = .sbss:0x801D4460; // type:object size:0x8 scope:local align:8 data CurrTiming = .sbss:0x801D4468; // type:object size:0x4 scope:local data:4byte CurrTvMode = .sbss:0x801D446C; // type:object size:0x4 scope:local data:4byte FBSet = .sbss:0x801D4470; // type:object size:0x4 scope:local data:4byte -message$343 = .sbss:0x801D4474; // type:object size:0x4 scope:local data:4byte +message$320 = .sbss:0x801D4474; // type:object size:0x4 scope:local data:4byte rmode = .sbss:0x801D4478; // type:object size:0x8 scope:local data:4byte fontShift = .sbss:0x801D4480; // type:object size:0x8 scope:local data:4byte DemoStat = .sbss:0x801D4488; // type:object size:0x4 scope:local data:4byte diff --git a/configure.py b/configure.py index fa174004..67f32c23 100644 --- a/configure.py +++ b/configure.py @@ -494,18 +494,18 @@ config.libs = [ DolphinLib( "dvd", [ - Object(NonMatching, "dolphin/dvd/dvdlow.c"), - Object(NonMatching, "dolphin/dvd/dvdfs.c"), + Object(Matching, "dolphin/dvd/dvdlow.c"), + Object(Matching, "dolphin/dvd/dvdfs.c"), Object(NonMatching, "dolphin/dvd/dvd.c"), - Object(NonMatching, "dolphin/dvd/dvdqueue.c"), - Object(NonMatching, "dolphin/dvd/dvderror.c"), - Object(NonMatching, "dolphin/dvd/fstload.c"), + Object(Matching, "dolphin/dvd/dvdqueue.c"), + Object(Matching, "dolphin/dvd/dvderror.c"), + Object(Matching, "dolphin/dvd/fstload.c"), ], ), DolphinLib( "vi", [ - Object(NonMatching, "dolphin/vi.c"), + Object(Matching, "dolphin/vi.c"), ], ), DolphinLib( @@ -534,7 +534,7 @@ config.libs = [ "ar", [ Object(NonMatching, "dolphin/ar/ar.c"), - Object(NonMatching, "dolphin/ar/arq.c"), + Object(Matching, "dolphin/ar/arq.c"), ], ), DolphinLib( diff --git a/include/dolphin/os/OSBootInfo.h b/include/dolphin/os/OSBootInfo.h index a78d135f..19d4dfb5 100644 --- a/include/dolphin/os/OSBootInfo.h +++ b/include/dolphin/os/OSBootInfo.h @@ -4,7 +4,7 @@ #include "dolphin/DVDPriv.h" #include "dolphin/types.h" -typedef struct OSBootInfo { +typedef struct OSBootInfo_s { DVDDiskID DVDDiskID; u32 magic; u32 version; diff --git a/src/dolphin/ar/ar.c b/src/dolphin/ar/ar.c new file mode 100644 index 00000000..7f43c1a7 --- /dev/null +++ b/src/dolphin/ar/ar.c @@ -0,0 +1,251 @@ +#include "dolphin/ar.h" + +#include "dolphin/hw_regs.h" +#include "dolphin/os.h" + +static ARCallback __AR_Callback; +static u32 __AR_Size; +static u32 __AR_InternalSize; +static u32 __AR_ExpansionSize; + +static u32 __AR_StackPointer; +static u32 __AR_FreeBlocks; +static u32* __AR_BlockLength; + +static volatile BOOL __AR_init_flag = FALSE; + +static void __ARHandler(__OSInterrupt interrupt, OSContext* context); +static void __ARChecksize(void); +static void __ARClearArea(u32 start_addr, u32 length); + +ARCallback ARRegisterDMACallback(ARCallback callback) { + ARCallback oldCb; + BOOL enabled; + oldCb = __AR_Callback; + enabled = OSDisableInterrupts(); + __AR_Callback = callback; + OSRestoreInterrupts(enabled); + return oldCb; +} + +u32 ARGetDMAStatus() { + BOOL enabled; + u32 val; + enabled = OSDisableInterrupts(); + val = __DSPRegs[5] & 0x0200; + OSRestoreInterrupts(enabled); + return val; +} + +void ARStartDMA(u32 type, u32 mainmem_addr, u32 aram_addr, u32 length) { + BOOL enabled; + + enabled = OSDisableInterrupts(); + + __DSPRegs[16] = (u16)(__DSPRegs[16] & ~0x3ff) | (u16)(mainmem_addr >> 16); + __DSPRegs[17] = (u16)(__DSPRegs[17] & ~0xffe0) | (u16)(mainmem_addr & 0xffff); + __DSPRegs[18] = (u16)(__DSPRegs[18] & ~0x3ff) | (u16)(aram_addr >> 16); + __DSPRegs[19] = (u16)(__DSPRegs[19] & ~0xffe0) | (u16)(aram_addr & 0xffff); + __DSPRegs[20] = (u16)((__DSPRegs[20] & ~0x8000) | (type << 15)); + __DSPRegs[20] = (u16)(__DSPRegs[20] & ~0x3ff) | (u16)(length >> 16); + __DSPRegs[21] = (u16)(__DSPRegs[21] & ~0xffe0) | (u16)(length & 0xffff); + OSRestoreInterrupts(enabled); +} + +u32 ARAlloc(u32 length) { + u32 tmp; + BOOL enabled; + + enabled = OSDisableInterrupts(); + tmp = __AR_StackPointer; + __AR_StackPointer += length; + *__AR_BlockLength = length; + __AR_BlockLength++; + __AR_FreeBlocks--; + OSRestoreInterrupts(enabled); + + return tmp; +} + +#if NONMATCHING +u32 ARFree(u32* length) { + BOOL old; + + old = OSDisableInterrupts(); + + __AR_BlockLength--; + + if (length) { + *length = *__AR_BlockLength; + } + + __AR_StackPointer -= *__AR_BlockLength; + + __AR_FreeBlocks++; + + OSRestoreInterrupts(old); + + return __AR_StackPointer; +} +#else +/* clang-format off */ +#pragma push +#pragma optimization_level 0 +#pragma optimizewithasm off +asm u32 ARFree(u32* length) { + nofralloc + mflr r0 + stw r0, 4(r1) + stwu r1, -0x18(r1) + stw r31, 0x14(r1) + mr r31, r3 + bl OSDisableInterrupts + lwz r4, __AR_BlockLength + cmplwi r31, 0 + addi r0, r4, -4 + stw r0, __AR_BlockLength + beq lbl_8036DAB4 + lwz r4, __AR_BlockLength + lwz r0, 0(r4) + stw r0, 0(r31) +lbl_8036DAB4: + lwz r5, __AR_BlockLength + lwz r4, __AR_FreeBlocks + lwz r6, 0(r5) + addi r0, r4, 1 + lwz r5, __AR_StackPointer + stw r0, __AR_FreeBlocks + subf r0, r6, r5 + stw r0, __AR_StackPointer + bl OSRestoreInterrupts + lwz r3, __AR_StackPointer + lwz r0, 0x1c(r1) + lwz r31, 0x14(r1) + addi r1, r1, 0x18 + mtlr r0 + blr +} +#pragma pop +/* clang-format on */ +#endif + +BOOL ARCheckInit() { return __AR_init_flag; } + +u32 ARInit(u32* stack_index_addr, u32 num_entries) { + + BOOL old; + u16 refresh; + + if (__AR_init_flag == TRUE) { + return 0x4000; + } + + old = OSDisableInterrupts(); + + __AR_Callback = NULL; + + __OSSetInterruptHandler(__OS_INTERRUPT_DSP_ARAM, __ARHandler); + __OSUnmaskInterrupts(OS_INTERRUPTMASK_DSP_ARAM); + + __AR_StackPointer = 0x4000; + __AR_FreeBlocks = num_entries; + __AR_BlockLength = stack_index_addr; + + refresh = (u16)(__DSPRegs[13] & 0x000000ff); + + __DSPRegs[13] = (u16)((__DSPRegs[13] & ~0x000000ff) | (refresh & 0x000000ff)); + + __ARChecksize(); + + __AR_init_flag = TRUE; + + OSRestoreInterrupts(old); + + return __AR_StackPointer; +} + +u32 ARGetBaseAddress(void) { return 0x4000; } + +void ARSetSize(void) +{ + +} + +u32 ARGetSize() { return __AR_Size; } + +static void __ARHandler(__OSInterrupt interrupt, OSContext* context) { + + OSContext exceptionContext; + u16 tmp; + + tmp = __DSPRegs[5]; + tmp = (u16)((tmp & ~0x00000088) | 0x20); + __DSPRegs[5] = tmp; + + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + + if (__AR_Callback) { + (*__AR_Callback)(); + } + + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); +} + +#define RoundUP32(x) (((u32)(x) + 32 - 1) & ~(32 - 1)) + +void __ARClearInterrupt(void) { + + u16 tmp; + tmp = __DSPRegs[5]; + tmp = (u16)((tmp & ~(0x00000080 | 0x00000008)) | 0x00000020); + __DSPRegs[5] = tmp; +} +u16 __ARGetInterruptStatus(void) { return ((u16)(__DSPRegs[5] & 0x0200)); } + +static void __ARWaitForDMA(void) { + + while (__DSPRegs[5] & 0x0200) { + } +} + +static void __ARWriteDMA(u32 mmem_addr, u32 aram_addr, u32 length) { + + __DSPRegs[16] = (u16)((__DSPRegs[16] & ~0x03ff) | (u16)(mmem_addr >> 16)); + __DSPRegs[16 + 1] = (u16)((__DSPRegs[16 + 1] & ~0xffe0) | (u16)(mmem_addr & 0xffff)); + + __DSPRegs[18] = (u16)((__DSPRegs[18] & ~0x03ff) | (u16)(aram_addr >> 16)); + __DSPRegs[18 + 1] = (u16)((__DSPRegs[18 + 1] & ~0xffe0) | (u16)(aram_addr & 0xffff)); + + __DSPRegs[20] = (u16)(__DSPRegs[20] & ~0x8000); + + __DSPRegs[20] = (u16)((__DSPRegs[20] & ~0x03ff) | (u16)(length >> 16)); + __DSPRegs[20 + 1] = (u16)((__DSPRegs[20 + 1] & ~0xffe0) | (u16)(length & 0xffff)); + + __ARWaitForDMA(); + + __ARClearInterrupt(); +} + +static void __ARReadDMA(u32 mmem_addr, u32 aram_addr, u32 length) { + + __DSPRegs[16] = (u16)((__DSPRegs[16] & ~0x03ff) | (u16)(mmem_addr >> 16)); + __DSPRegs[16 + 1] = (u16)((__DSPRegs[16 + 1] & ~0xffe0) | (u16)(mmem_addr & 0xffff)); + + __DSPRegs[18] = (u16)((__DSPRegs[18] & ~0x03ff) | (u16)(aram_addr >> 16)); + __DSPRegs[18 + 1] = (u16)((__DSPRegs[18 + 1] & ~0xffe0) | (u16)(aram_addr & 0xffff)); + + __DSPRegs[20] = (u16)(__DSPRegs[20] | 0x8000); + + __DSPRegs[20] = (u16)((__DSPRegs[20] & ~0x03ff) | (u16)(length >> 16)); + __DSPRegs[20 + 1] = (u16)((__DSPRegs[20 + 1] & ~0xffe0) | (u16)(length & 0xffff)); + + __ARWaitForDMA(); + + __ARClearInterrupt(); +} + +static void __ARChecksize(void) { + //TODO: Implement for this SDK version +} \ No newline at end of file diff --git a/src/dolphin/ar/arq.c b/src/dolphin/ar/arq.c new file mode 100644 index 00000000..a0537463 --- /dev/null +++ b/src/dolphin/ar/arq.c @@ -0,0 +1,168 @@ +#include "dolphin/arq.h" +#include "dolphin/os.h" + +static ARQRequest* __ARQRequestQueueHi; +static ARQRequest* __ARQRequestTailHi; +static ARQRequest* __ARQRequestQueueLo; +static ARQRequest* __ARQRequestTailLo; +static ARQRequest* __ARQRequestPendingHi; +static ARQRequest* __ARQRequestPendingLo; +static ARQCallback __ARQCallbackHi; +static ARQCallback __ARQCallbackLo; +static u32 __ARQChunkSize; + +static volatile BOOL __ARQ_init_flag = FALSE; + +void __ARQPopTaskQueueHi(void); +void __ARQServiceQueueLo(void); +void __ARQCallbackHack(void); +void __ARQInterruptServiceRoutine(void); +void __ARQInitTempQueue(void); +void __ARQPushTempQueue(ARQRequest* task); + +void __ARQPopTaskQueueHi(void) { + + if (__ARQRequestQueueHi) { + if (__ARQRequestQueueHi->type == ARQ_TYPE_MRAM_TO_ARAM) { + ARStartDMA(__ARQRequestQueueHi->type, __ARQRequestQueueHi->source, __ARQRequestQueueHi->dest, + __ARQRequestQueueHi->length); + } else { + ARStartDMA(__ARQRequestQueueHi->type, __ARQRequestQueueHi->dest, __ARQRequestQueueHi->source, + __ARQRequestQueueHi->length); + } + + __ARQCallbackHi = __ARQRequestQueueHi->callback; + + __ARQRequestPendingHi = __ARQRequestQueueHi; + + __ARQRequestQueueHi = __ARQRequestQueueHi->next; + } +} + +void __ARQServiceQueueLo(void) { + + if ((__ARQRequestPendingLo == NULL) && (__ARQRequestQueueLo)) { + __ARQRequestPendingLo = __ARQRequestQueueLo; + + __ARQRequestQueueLo = __ARQRequestQueueLo->next; + } + + if (__ARQRequestPendingLo) { + if (__ARQRequestPendingLo->length <= __ARQChunkSize) { + if (__ARQRequestPendingLo->type == ARQ_TYPE_MRAM_TO_ARAM) + ARStartDMA(__ARQRequestPendingLo->type, __ARQRequestPendingLo->source, + __ARQRequestPendingLo->dest, __ARQRequestPendingLo->length); + else + ARStartDMA(__ARQRequestPendingLo->type, __ARQRequestPendingLo->dest, + __ARQRequestPendingLo->source, __ARQRequestPendingLo->length); + + __ARQCallbackLo = __ARQRequestPendingLo->callback; + } else { + if (__ARQRequestPendingLo->type == ARQ_TYPE_MRAM_TO_ARAM) + ARStartDMA(__ARQRequestPendingLo->type, __ARQRequestPendingLo->source, + __ARQRequestPendingLo->dest, __ARQChunkSize); + else + ARStartDMA(__ARQRequestPendingLo->type, __ARQRequestPendingLo->dest, + __ARQRequestPendingLo->source, __ARQChunkSize); + } + + __ARQRequestPendingLo->length -= __ARQChunkSize; + __ARQRequestPendingLo->source += __ARQChunkSize; + __ARQRequestPendingLo->dest += __ARQChunkSize; + } +} +void __ARQCallbackHack(void) { return; } + +void __ARQInterruptServiceRoutine(void) { + + if (__ARQCallbackHi) { + (*__ARQCallbackHi)((u32)__ARQRequestPendingHi); + __ARQRequestPendingHi = NULL; + __ARQCallbackHi = NULL; + } + + else if (__ARQCallbackLo) { + (*__ARQCallbackLo)((u32)__ARQRequestPendingLo); + __ARQRequestPendingLo = NULL; + __ARQCallbackLo = NULL; + } + + __ARQPopTaskQueueHi(); + + if (__ARQRequestPendingHi == NULL) + __ARQServiceQueueLo(); +} + +void ARQInit(void) { + + if (TRUE == __ARQ_init_flag) { + return; + } + + __ARQRequestQueueHi = __ARQRequestQueueLo = NULL; + __ARQChunkSize = ARQ_CHUNK_SIZE_DEFAULT; + ARRegisterDMACallback(&__ARQInterruptServiceRoutine); + __ARQRequestPendingHi = NULL; + __ARQRequestPendingLo = NULL; + __ARQCallbackHi = NULL; + __ARQCallbackLo = NULL; + __ARQ_init_flag = TRUE; +} + +void ARQPostRequest(ARQRequest* request, u32 owner, u32 type, u32 priority, u32 source, u32 dest, + u32 length, ARQCallback callback) { + + BOOL enabled; + + request->next = NULL; + request->owner = owner; + request->type = type; + request->source = source; + request->dest = dest; + request->length = length; + + if (callback) { + request->callback = callback; + } else { + request->callback = (ARQCallback)&__ARQCallbackHack; + } + + enabled = OSDisableInterrupts(); + + switch (priority) { + case ARQ_PRIORITY_LOW: + + if (__ARQRequestQueueLo) { + __ARQRequestTailLo->next = request; + } else { + __ARQRequestQueueLo = request; + } + __ARQRequestTailLo = request; + + break; + + case ARQ_PRIORITY_HIGH: + + if (__ARQRequestQueueHi) { + __ARQRequestTailHi->next = request; + } else { + __ARQRequestQueueHi = request; + } + + __ARQRequestTailHi = request; + + break; + } + + if ((__ARQRequestPendingHi == NULL) && (__ARQRequestPendingLo == NULL)) { + __ARQPopTaskQueueHi(); + + if (__ARQRequestPendingHi == NULL) { + __ARQServiceQueueLo(); + } + } + + OSRestoreInterrupts(enabled); +} + +u32 ARQGetChunkSize(void) { return __ARQChunkSize; } \ No newline at end of file diff --git a/src/dolphin/dvd/dvderror.c b/src/dolphin/dvd/dvderror.c new file mode 100644 index 00000000..d7bf68ba --- /dev/null +++ b/src/dolphin/dvd/dvderror.c @@ -0,0 +1,56 @@ +#include "dolphin/DVDPriv.h" +#include "dolphin/OSRtcPriv.h" + +static u32 ErrorTable[] = { + 0, 0x00023A00, 0x00062800, 0x00030200, 0x00031100, 0x00052000, + 0x00052001, 0x00052100, 0x00052400, 0x00052401, 0x00052402, 0x000B5A01, + 0x00056300, 0x00020401, 0x00020400, 0x00040800, 0x00100007, 0, +}; + +static u8 ErrorCode2Num(u32 errorCode) { + u32 i; + + for (i = 0; i < sizeof(ErrorTable) / sizeof(ErrorTable[0]); i++) { + if (ErrorTable[i] == errorCode) { + return (u8)i; + } + } + + if ((errorCode >= 0x00100000) && (errorCode <= 0x00100008)) { + return 17; + } + + return 29; +} + +static u8 Convert(u32 error) { + u32 statusCode; + u32 errorCode; + u8 errorNum; + + if (error == 0x01234567) + return 255; + + if (error == 0x01234568) + return 254; + + statusCode = (error & 0xff000000) >> 24; + errorCode = error & 0x00ffffff; + + errorNum = ErrorCode2Num(errorCode); + if (statusCode >= 6) + statusCode = 6; + + return (u8)(statusCode * 30 + errorNum); +} + +void __DVDStoreErrorCode(u32 error) { + OSSramEx* sram; + u8 num; + + num = Convert(error); + + sram = __OSLockSramEx(); + sram->dvdErrorCode = num; + __OSUnlockSramEx(TRUE); +} \ No newline at end of file diff --git a/src/dolphin/dvd/dvdfs.c b/src/dolphin/dvd/dvdfs.c new file mode 100644 index 00000000..4f465be0 --- /dev/null +++ b/src/dolphin/dvd/dvdfs.c @@ -0,0 +1,356 @@ + +#include "dolphin/DVDPriv.h" +#include "dolphin/os.h" +#include "dolphin/os/OSBootInfo.h" + +typedef struct FSTEntry FSTEntry; + +struct FSTEntry { + unsigned int isDirAndStringOff; + unsigned int parentOrPosition; + unsigned int nextEntryOrLength; +}; + +static OSBootInfo* BootInfo; +static FSTEntry* FstStart; +static char* FstStringStart; +static u32 MaxEntryNum; +static u32 currentDirectory = 0; +OSThreadQueue __DVDThreadQueue; +u32 __DVDLongFileNameFlag = 0; + +static void cbForReadAsync(s32 result, DVDCommandBlock* block); +static void cbForReadSync(s32 result, DVDCommandBlock* block); +static void cbForSeekAsync(s32 result, DVDCommandBlock* block); +static void cbForSeekSync(s32 result, DVDCommandBlock* block); +static void cbForPrepareStreamAsync(s32 result, DVDCommandBlock* block); +static void cbForPrepareStreamSync(s32 result, DVDCommandBlock* block); + +void __DVDFSInit() { + BootInfo = (OSBootInfo*)OSPhysicalToCached(0); + FstStart = (FSTEntry*)BootInfo->FSTLocation; + + if (FstStart) { + MaxEntryNum = FstStart[0].nextEntryOrLength; + FstStringStart = (char*)&(FstStart[MaxEntryNum]); + } +} + +/* For convenience */ +#define entryIsDir(i) (((FstStart[i].isDirAndStringOff & 0xff000000) == 0) ? FALSE : TRUE) +#define stringOff(i) (FstStart[i].isDirAndStringOff & ~0xff000000) +#define parentDir(i) (FstStart[i].parentOrPosition) +#define nextDir(i) (FstStart[i].nextEntryOrLength) +#define filePosition(i) (FstStart[i].parentOrPosition) +#define fileLength(i) (FstStart[i].nextEntryOrLength) + +static BOOL isSame(const char* path, const char* string) { + while (*string != '\0') { + if (tolower(*path++) != tolower(*string++)) { + return FALSE; + } + } + + if ((*path == '/') || (*path == '\0')) { + return TRUE; + } + + return FALSE; +} + +s32 DVDConvertPathToEntrynum(char* pathPtr) { + const char* ptr; + char* stringPtr; + BOOL isDir; + u32 length; + u32 dirLookAt; + u32 i; + const char* origPathPtr = pathPtr; + const char* extentionStart; + BOOL illegal; + BOOL extention; + + dirLookAt = currentDirectory; + + while (1) { + + if (*pathPtr == '\0') { + return (s32)dirLookAt; + } else if (*pathPtr == '/') { + dirLookAt = 0; + pathPtr++; + continue; + } else if (*pathPtr == '.') { + if (*(pathPtr + 1) == '.') { + if (*(pathPtr + 2) == '/') { + dirLookAt = parentDir(dirLookAt); + pathPtr += 3; + continue; + } else if (*(pathPtr + 2) == '\0') { + return (s32)parentDir(dirLookAt); + } + } else if (*(pathPtr + 1) == '/') { + pathPtr += 2; + continue; + } else if (*(pathPtr + 1) == '\0') { + return (s32)dirLookAt; + } + } + + if (__DVDLongFileNameFlag == 0) { + extention = FALSE; + illegal = FALSE; + + for (ptr = pathPtr; (*ptr != '\0') && (*ptr != '/'); ptr++) { + if (*ptr == '.') { + if ((ptr - pathPtr > 8) || (extention == TRUE)) { + illegal = TRUE; + break; + } + extention = TRUE; + extentionStart = ptr + 1; + + } else if (*ptr == ' ') + illegal = TRUE; + } + + if ((extention == TRUE) && (ptr - extentionStart > 3)) + illegal = TRUE; + + if (illegal) + OSPanic(__FILE__, 376, + "DVDConvertEntrynumToPath(possibly DVDOpen or DVDChangeDir or DVDOpenDir): " + "specified directory or file (%s) doesn't match standard 8.3 format. This is a " + "temporary restriction and will be removed soon\n", + origPathPtr); + } else { + for (ptr = pathPtr; (*ptr != '\0') && (*ptr != '/'); ptr++) + ; + } + + isDir = (*ptr == '\0') ? FALSE : TRUE; + length = (u32)(ptr - pathPtr); + + ptr = pathPtr; + + for (i = dirLookAt + 1; i < nextDir(dirLookAt); i = entryIsDir(i) ? nextDir(i) : (i + 1)) { + if ((entryIsDir(i) == FALSE) && (isDir == TRUE)) { + continue; + } + + stringPtr = FstStringStart + stringOff(i); + + if (isSame(ptr, stringPtr) == TRUE) { + goto next_hier; + } + } + + return -1; + + next_hier: + if (!isDir) { + return (s32)i; + } + + dirLookAt = i; + pathPtr += length + 1; + } +} + +BOOL DVDFastOpen(s32 entrynum, DVDFileInfo* fileInfo) { + if ((entrynum < 0) || (entrynum >= MaxEntryNum) || entryIsDir(entrynum)) { + return FALSE; + } + + fileInfo->startAddr = filePosition(entrynum); + fileInfo->length = fileLength(entrynum); + fileInfo->callback = (DVDCallback)NULL; + fileInfo->cb.state = DVD_STATE_END; + + return TRUE; +} + +BOOL DVDOpen(char* fileName, DVDFileInfo* fileInfo) { + s32 entry; + char currentDir[128]; + + entry = DVDConvertPathToEntrynum(fileName); + + if (0 > entry) { + DVDGetCurrentDir(currentDir, 128); + OSReport("Warning: DVDOpen(): file '%s' was not found under %s.\n", fileName, currentDir); + return FALSE; + } + + if (entryIsDir(entry)) { + return FALSE; + } + + fileInfo->startAddr = filePosition(entry); + fileInfo->length = fileLength(entry); + fileInfo->callback = (DVDCallback)NULL; + fileInfo->cb.state = DVD_STATE_END; + + return TRUE; +} + +BOOL DVDClose(DVDFileInfo* fileInfo) { + DVDCancel(&(fileInfo->cb)); + return TRUE; +} + +static u32 myStrncpy(char* dest, char* src, u32 maxlen) { + u32 i = maxlen; + + while ((i > 0) && (*src != 0)) { + *dest++ = *src++; + i--; + } + + return (maxlen - i); +} + +static u32 entryToPath(u32 entry, char* path, u32 maxlen) { + char* name; + u32 loc; + + if (entry == 0) { + return 0; + } + + name = FstStringStart + stringOff(entry); + + loc = entryToPath(parentDir(entry), path, maxlen); + + if (loc == maxlen) { + return loc; + } + + *(path + loc++) = '/'; + + loc += myStrncpy(path + loc, name, maxlen - loc); + + return loc; +} + +static BOOL DVDConvertEntrynumToPath(s32 entrynum, char* path, u32 maxlen) { + u32 loc; + + loc = entryToPath((u32)entrynum, path, maxlen); + + if (loc == maxlen) { + path[maxlen - 1] = '\0'; + return FALSE; + } + + if (entryIsDir(entrynum)) { + if (loc == maxlen - 1) { + path[loc] = '\0'; + return FALSE; + } + + path[loc++] = '/'; + } + + path[loc] = '\0'; + return TRUE; +} + +BOOL DVDGetCurrentDir(char* path, u32 maxlen) { + return DVDConvertEntrynumToPath((s32)currentDirectory, path, maxlen); +} + +BOOL DVDChangeDir(char* dirName) { + s32 entry; + entry = DVDConvertPathToEntrynum(dirName); + if ((entry < 0) || (entryIsDir(entry) == FALSE)) { + return FALSE; + } + + currentDirectory = (u32)entry; + + return TRUE; +} + +BOOL DVDReadAsyncPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset, + DVDCallback callback, s32 prio) { + + if (!((0 <= offset) && (offset < fileInfo->length))) { + OSPanic(__FILE__, 739, "DVDReadAsync(): specified area is out of the file "); + } + + if (!((0 <= offset + length) && (offset + length < fileInfo->length + DVD_MIN_TRANSFER_SIZE))) { + OSPanic(__FILE__, 745, "DVDReadAsync(): specified area is out of the file "); + } + + fileInfo->callback = callback; + DVDReadAbsAsyncPrio(&(fileInfo->cb), addr, length, (s32)(fileInfo->startAddr + offset), + cbForReadAsync, prio); + + return TRUE; +} +#ifndef offsetof +#define offsetof(type, memb) ((u32) & ((type*)0)->memb) +#endif + +static void cbForReadAsync(s32 result, DVDCommandBlock* block) { + DVDFileInfo* fileInfo; + + fileInfo = (DVDFileInfo*)((char*)block - offsetof(DVDFileInfo, cb)); + if (fileInfo->callback) { + (fileInfo->callback)(result, fileInfo); + } +} + +/* This is based on the revolution SDK, these may not match in all cases I have also left the line numbers at 0 */ +BOOL DVDReadPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset, s32 prio) { + BOOL result; + DVDCommandBlock* block; + s32 state; + BOOL enabled; + s32 retVal; + + if (!((0 <= offset) && (offset < fileInfo->length))) { + OSPanic(__FILE__, 809, "DVDRead(): specified area is out of the file "); + } + + if (!((0 <= offset + length) && (offset + length < fileInfo->length + DVD_MIN_TRANSFER_SIZE))) { + OSPanic(__FILE__, 815, "DVDRead(): specified area is out of the file "); + } + + block = &(fileInfo->cb); + + result = DVDReadAbsAsyncPrio(block, addr, length, (s32)(fileInfo->startAddr + offset), + cbForReadSync, prio); + + if (result == FALSE) { + return -1; + } + + enabled = OSDisableInterrupts(); + + while(1) { + state = ((volatile DVDCommandBlock*)block)->state; + + if (state == DVD_STATE_END) { + retVal = (s32)block->transferredSize; + break; + } + if (state == DVD_STATE_FATAL_ERROR) { + retVal = DVD_RESULT_FATAL_ERROR; + break; + } + if (state == DVD_STATE_CANCELED) { + retVal = DVD_RESULT_CANCELED; + break; + } + + OSSleepThread(&__DVDThreadQueue); + } + + OSRestoreInterrupts(enabled); + return retVal; +} + +/* This is based on the revolution SDK, these may not match in all cases */ +static void cbForReadSync(s32 result, DVDCommandBlock* block) { OSWakeupThread(&__DVDThreadQueue); } \ No newline at end of file diff --git a/src/dolphin/dvd/dvdlow.c b/src/dolphin/dvd/dvdlow.c new file mode 100644 index 00000000..9b64c91a --- /dev/null +++ b/src/dolphin/dvd/dvdlow.c @@ -0,0 +1,436 @@ +#include "dolphin/DVDPriv.h" +#include "dolphin/os.h" + +extern DVDDiskID* DVDGetCurrentDiskID(); + +extern OSTime __OSGetSystemTime(); + +static BOOL FirstRead = TRUE; +static volatile BOOL StopAtNextInt = FALSE; +static u32 LastLength = 0; +static DVDLowCallback Callback = NULL; +static DVDLowCallback ResetCoverCallback = NULL; +static volatile OSTime LastResetEnd = 0; +static volatile u32 ResetOccurred = FALSE; +static volatile BOOL WaitingCoverClose = FALSE; +static BOOL Breaking = FALSE; +static volatile u32 WorkAroundType = 0; +static u32 WorkAroundSeekLocation = 0; +static volatile OSTime LastReadFinished = 0; +static OSTime LastReadIssued = 0; +static volatile BOOL LastCommandWasRead = FALSE; +static vu32 NextCommandNumber = 0; + +typedef struct DVDBuffer { + void* addr; + u32 length; + u32 offset; +} DVDBuffer; + +typedef struct DVDCommand { + s32 cmd; + void* addr; + u32 length; + u32 offset; + DVDLowCallback callback; +} DVDCommand; + +static DVDCommand CommandList[3]; +static OSAlarm AlarmForWA; +static OSAlarm AlarmForTimeout; +static OSAlarm AlarmForBreak; +static DVDBuffer Prev; +static DVDBuffer Curr; + +void __DVDInitWA() { + NextCommandNumber = 0; + CommandList[0].cmd = -1; + __DVDLowSetWAType(0, 0); + OSInitAlarm(); +} + +static void Read(void* addr, u32 length, u32 offset, DVDLowCallback callback); + +static BOOL ProcessNextCommand() { + s32 n = NextCommandNumber; + ASSERT(n < 3); + + if (CommandList[n].cmd == 1) { + ++NextCommandNumber; + Read(CommandList[n].addr, CommandList[n].length, CommandList[n].offset, + CommandList[n].callback); + return TRUE; + } else if (CommandList[n].cmd == 2) { + ++NextCommandNumber; + DVDLowSeek(CommandList[n].offset, CommandList[n].callback); + return TRUE; + } + + return FALSE; +} + +void __DVDInterruptHandler(__OSInterrupt interrupt, OSContext* context) { + DVDLowCallback cb; + OSContext exceptionContext; + u32 cause = 0; + u32 reg; + u32 intr; + u32 mask; + + OSCancelAlarm(&AlarmForTimeout); + + if (LastCommandWasRead) { + LastReadFinished = __OSGetSystemTime(); + FirstRead = FALSE; + Prev.addr = Curr.addr; + Prev.length = Curr.length; + Prev.offset = Curr.offset; + if (StopAtNextInt == TRUE) { + cause |= 8; + } + } + + LastCommandWasRead = FALSE; + StopAtNextInt = FALSE; + reg = __DIRegs[0]; + mask = reg & 0x2a; + intr = (reg & 0x54) & (mask << 1); + + if (intr & 0x40) { + cause |= 8; + } + + if (intr & 0x10) { + cause |= 1; + } + + if (intr & 4) { + cause |= 2; + } + + if (cause) { + ResetOccurred = FALSE; + + } + + __DIRegs[0] = intr | mask; + + if (ResetOccurred && (__OSGetSystemTime() - LastResetEnd) < OSMillisecondsToTicks(200)) { + reg = __DIRegs[1]; + mask = reg & 0x2; + intr = (reg & 4) & (mask << 1); + if (intr & 4) { + if (ResetCoverCallback) { + ResetCoverCallback(4); + } + ResetCoverCallback = NULL; + } + + __DIRegs[1] = __DIRegs[1]; + } else if (WaitingCoverClose) { + reg = __DIRegs[1]; + mask = reg & 2; + intr = (reg & 4) & (mask << 1); + + if (intr & 4) { + cause |= 4; + } + + __DIRegs[1] = intr | mask; + WaitingCoverClose = FALSE; + } else { + __DIRegs[1] = 0; + } + + if ((cause & 8) && !Breaking) { + cause &= ~8; + } + + if ((cause & 1)) { + if (ProcessNextCommand()) { + return; + } + } else { + CommandList[0].cmd = -1; + NextCommandNumber = 0; + } + + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + + if (cause) { + cb = Callback; + Callback = NULL; + if (cb) { + cb(cause); + } + + Breaking = FALSE; + } + + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); +} + +static void AlarmHandler(OSAlarm* alarm, OSContext* context) { + BOOL error = ProcessNextCommand(); + ASSERTMSG(error != FALSE, "Failed assertion processed"); +} + +static void AlarmHandlerForTimeout(OSAlarm* alarm, OSContext* context) { + OSContext tmpContext; + DVDLowCallback callback; + __OSMaskInterrupts(0x400); + OSClearContext(&tmpContext); + OSSetCurrentContext(&tmpContext); + callback = Callback; + Callback = NULL; + if (callback != NULL) { + callback(0x10); + } + OSClearContext(&tmpContext); + OSSetCurrentContext(context); +} + +static void SetTimeoutAlarm(OSTime timeout) { + OSCreateAlarm(&AlarmForTimeout); + OSSetAlarm(&AlarmForTimeout, timeout, AlarmHandlerForTimeout); +} + +static void Read(void* addr, u32 length, u32 offset, DVDLowCallback callback) { + StopAtNextInt = FALSE; + LastCommandWasRead = TRUE; + Callback = callback; + LastReadIssued = __OSGetSystemTime(); + + __DIRegs[2] = 0xa8000000; + __DIRegs[3] = offset / 4; + __DIRegs[4] = length; + __DIRegs[5] = (u32)addr; + __DIRegs[6] = length; + LastLength = length; + __DIRegs[7] = 3; + + if (length > 0xa00000) { + SetTimeoutAlarm(OSSecondsToTicks(20)); + } else { + SetTimeoutAlarm(OSSecondsToTicks(10)); + } +} + +BOOL HitCache(DVDBuffer* cur, DVDBuffer* prev) { + u32 uVar1 = (prev->offset + prev->length - 1) >> 15; + u32 uVar2 = (cur->offset >> 15); + u32 iVar3 = (DVDGetCurrentDiskID()->streaming ? TRUE : FALSE) ? 5 : 15; + + if ((uVar2 > uVar1 - 2) || (uVar2 < uVar1 + iVar3 + 3)) { + return TRUE; + } + return FALSE; +} + +static void DoJustRead(void* addr, u32 length, u32 offset, DVDLowCallback callback) { + CommandList[0].cmd = -1; + NextCommandNumber = 0; + Read(addr, length, offset, callback); +} + +static void SeekTwiceBeforeRead(void* addr, u32 length, u32 offset, DVDLowCallback callback) { + u32 newOffset = offset & ~0x7FFF; + if (!newOffset) { + newOffset = 0; + } else { + newOffset += WorkAroundSeekLocation; + } + CommandList[0].cmd = 2; + CommandList[0].offset = newOffset; + CommandList[0].callback = callback; + CommandList[1].cmd = 1; + CommandList[1].addr = addr; + CommandList[1].length = length; + CommandList[1].offset = offset; + CommandList[1].callback = callback; + CommandList[2].cmd = -1; + NextCommandNumber = 0; + DVDLowSeek(newOffset, callback); +} + +static void WaitBeforeRead(void* addr, u32 length, u32 offset, DVDLowCallback callback, + OSTime timeout) { + CommandList[0].cmd = 1; + CommandList[0].addr = addr; + CommandList[0].length = length; + CommandList[0].offset = offset; + CommandList[0].callback = callback; + CommandList[1].cmd = -1; + NextCommandNumber = 0; + OSCreateAlarm(&AlarmForWA); + OSSetAlarm(&AlarmForWA, timeout, AlarmHandler); +} + + +BOOL DVDLowRead(void* addr, u32 length, u32 offset, DVDLowCallback callback) { + OSTime diff; + u32 prev; + + __DIRegs[6] = length; + Curr.addr = addr; + Curr.length = length; + Curr.offset = offset; + + if (WorkAroundType == 0) { + DoJustRead(addr, length, offset, callback); + } else if (WorkAroundType == 1) { + if (FirstRead) { + SeekTwiceBeforeRead(addr, length, offset, callback); + } else { + if (!HitCache(&Curr, &Prev)) { + DoJustRead(addr, length, offset, callback); + } else { + prev = (Prev.offset + Prev.length - 1) >> 15; + if (prev == Curr.offset >> 15 || prev + 1 == Curr.offset >> 15) { + diff = __OSGetSystemTime() - LastReadFinished; + if (OSMillisecondsToTicks(5) < diff) { + DoJustRead(addr, length, offset, callback); + } else { + WaitBeforeRead(addr, length, offset, callback, + OSMillisecondsToTicks(5) - diff + OSMicrosecondsToTicks(500)); + } + } else { + SeekTwiceBeforeRead(addr, length, offset, callback); + } + } + } + } + return TRUE; +} + +BOOL DVDLowSeek(u32 offset, DVDLowCallback callback) { + ASSERTMSG(offset & 3, "DVDLowSeek(): offset must be a multiple of 4."); + StopAtNextInt = FALSE; + Callback = callback; + __DIRegs[2] = 0xab000000; + __DIRegs[3] = offset / 4; + __DIRegs[7] = 1; + SetTimeoutAlarm(OSSecondsToTicks(10)); + return TRUE; +} + +BOOL DVDLowWaitCoverClose(DVDLowCallback callback) { + Callback = callback; + WaitingCoverClose = TRUE; + StopAtNextInt = FALSE; + __DIRegs[1] = 2; + return TRUE; +} + +BOOL DVDLowReadDiskID(DVDDiskID* diskID, DVDLowCallback callback) { + StopAtNextInt = FALSE; + Callback = callback; + __DIRegs[2] = 0xa8000040; + __DIRegs[3] = 0; + __DIRegs[4] = sizeof(DVDDiskID); + __DIRegs[5] = (u32)diskID; + __DIRegs[6] = sizeof(DVDDiskID); + __DIRegs[7] = 3; + SetTimeoutAlarm(OSSecondsToTicks(10)); + return TRUE; +} + +BOOL DVDLowStopMotor(DVDLowCallback callback) { + StopAtNextInt = FALSE; + Callback = callback; + __DIRegs[2] = 0xe3000000; + __DIRegs[7] = 1; + SetTimeoutAlarm(OSSecondsToTicks(10)); + return TRUE; +} + +BOOL DVDLowRequestError(DVDLowCallback callback) { + StopAtNextInt = FALSE; + Callback = callback; + __DIRegs[2] = 0xe0000000; + __DIRegs[7] = 1; + SetTimeoutAlarm(OSSecondsToTicks(10)); + return TRUE; +} + +BOOL DVDLowInquiry(DVDDriveInfo* info, DVDLowCallback callback) { + StopAtNextInt = FALSE; + Callback = callback; + __DIRegs[2] = 0x12000000; + __DIRegs[4] = sizeof(DVDDriveInfo); + __DIRegs[5] = (u32)info; + __DIRegs[6] = sizeof(DVDDriveInfo); + __DIRegs[7] = 3; + SetTimeoutAlarm(OSSecondsToTicks(10)); + return TRUE; +} + +BOOL DVDLowAudioStream(u32 subcmd, u32 length, u32 offset, DVDLowCallback callback) { + StopAtNextInt = FALSE; + Callback = callback; + __DIRegs[2] = subcmd | 0xe1000000; + __DIRegs[3] = offset >> 2; + __DIRegs[4] = length; + __DIRegs[7] = 1; + SetTimeoutAlarm(OSSecondsToTicks(10)); + return TRUE; +} + +BOOL DVDLowRequestAudioStatus(u32 subcmd, DVDLowCallback callback) { + StopAtNextInt = FALSE; + Callback = callback; + __DIRegs[2] = subcmd | 0xe2000000; + __DIRegs[7] = 1; + SetTimeoutAlarm(OSSecondsToTicks(10)); + return TRUE; +} + +BOOL DVDLowAudioBufferConfig(BOOL enable, u32 size, DVDLowCallback callback) { + StopAtNextInt = FALSE; + Callback = callback; + __DIRegs[2] = 0xe4000000 | (enable != 0 ? 0x10000 : 0) | size; + __DIRegs[7] = 1; + SetTimeoutAlarm(OSSecondsToTicks(10)); + return TRUE; +} + +void DVDLowReset() { + u32 reg; + OSTime resetStart; + + __DIRegs[1] = 2; + reg = __PIRegs[9]; + __PIRegs[9] = (reg & ~4) | 1; + + resetStart = __OSGetSystemTime(); + while ((__OSGetSystemTime() - resetStart) < OSMicrosecondsToTicks(12)) + ; + + __PIRegs[9] = reg | 5; + ResetOccurred = TRUE; + LastResetEnd = __OSGetSystemTime(); +} + +BOOL DVDLowBreak() { + StopAtNextInt = TRUE; + Breaking = TRUE; + return TRUE; +} + +DVDLowCallback DVDLowClearCallback() { + DVDLowCallback old; + __DIRegs[1] = 0; + old = Callback; + Callback = NULL; + return old; +} + +void __DVDLowSetWAType(u32 type, u32 location) { + BOOL enabled; + enabled = OSDisableInterrupts(); + WorkAroundType = type; + WorkAroundSeekLocation = location; + OSRestoreInterrupts(enabled); +} \ No newline at end of file diff --git a/src/dolphin/dvd/dvdqueue.c b/src/dolphin/dvd/dvdqueue.c new file mode 100644 index 00000000..445ae7e7 --- /dev/null +++ b/src/dolphin/dvd/dvdqueue.c @@ -0,0 +1,142 @@ +#include "dolphin/DVDPriv.h" + +#define MAX_QUEUES 4 +typedef struct { + DVDCommandBlock* next; + DVDCommandBlock* prev; +} DVDQueue; + +static DVDQueue WaitingQueue[MAX_QUEUES]; + +void __DVDClearWaitingQueue(void) { + u32 i; + + for (i = 0; i < MAX_QUEUES; i++) { + DVDCommandBlock* q; + + q = (DVDCommandBlock*)&(WaitingQueue[i]); + q->next = q; + q->prev = q; + } +} + +BOOL __DVDPushWaitingQueue(s32 prio, DVDCommandBlock* block) { + BOOL enabled; + DVDCommandBlock* q; + + enabled = OSDisableInterrupts(); + + q = (DVDCommandBlock*)&(WaitingQueue[prio]); + + q->prev->next = block; + block->prev = q->prev; + block->next = q; + q->prev = block; + + OSRestoreInterrupts(enabled); + + return TRUE; +} + +static DVDCommandBlock* PopWaitingQueuePrio(s32 prio) { + DVDCommandBlock* tmp; + BOOL enabled; + DVDCommandBlock* q; + + enabled = OSDisableInterrupts(); + + q = (DVDCommandBlock*)&(WaitingQueue[prio]); + + tmp = q->next; + q->next = tmp->next; + tmp->next->prev = q; + + OSRestoreInterrupts(enabled); + + tmp->next = (DVDCommandBlock*)NULL; + tmp->prev = (DVDCommandBlock*)NULL; + + return tmp; +} + +DVDCommandBlock* __DVDPopWaitingQueue(void) { + u32 i; + BOOL enabled; + DVDCommandBlock* q; + + enabled = OSDisableInterrupts(); + + for (i = 0; i < MAX_QUEUES; i++) { + q = (DVDCommandBlock*)&(WaitingQueue[i]); + if (q->next != q) { + OSRestoreInterrupts(enabled); + return PopWaitingQueuePrio((s32)i); + } + } + + OSRestoreInterrupts(enabled); + + return (DVDCommandBlock*)NULL; +} + +BOOL __DVDCheckWaitingQueue(void) { + u32 i; + BOOL enabled; + DVDCommandBlock* q; + + enabled = OSDisableInterrupts(); + + for (i = 0; i < MAX_QUEUES; i++) { + q = (DVDCommandBlock*)&(WaitingQueue[i]); + if (q->next != q) { + OSRestoreInterrupts(enabled); + return TRUE; + } + } + + OSRestoreInterrupts(enabled); + + return FALSE; +} + +BOOL __DVDDequeueWaitingQueue(DVDCommandBlock* block) { + BOOL enabled; + DVDCommandBlock* prev; + DVDCommandBlock* next; + + enabled = OSDisableInterrupts(); + + prev = block->prev; + next = block->next; + + if ((prev == (DVDCommandBlock*)NULL) || (next == (DVDCommandBlock*)NULL)) { + OSRestoreInterrupts(enabled); + return FALSE; + } + + prev->next = next; + next->prev = prev; + + OSRestoreInterrupts(enabled); + + return TRUE; +} + +BOOL __DVDIsBlockInWaitingQueue(DVDCommandBlock* block) { + u32 i; + DVDCommandBlock* start; + DVDCommandBlock* q; + + for (i = 0; i < MAX_QUEUES; i++) { + start = (DVDCommandBlock*)&(WaitingQueue[i]); + + if (start->next != start) { + for (q = start->next; q != start; q = q->next) { + if (q == block) + return TRUE; + } + } + } + + return FALSE; +} \ No newline at end of file diff --git a/src/dolphin/dvd/fstload.c b/src/dolphin/dvd/fstload.c new file mode 100644 index 00000000..fd127c61 --- /dev/null +++ b/src/dolphin/dvd/fstload.c @@ -0,0 +1,68 @@ + +#include +#include +#include +#include +#include +#include + +static s32 status = 0; + +static u8 bb2Buf[OSRoundUp32B(sizeof(DVDBB2)) + 31]; +static DVDBB2* bb2 = 0; +static DVDDiskID* idTmp = NULL; + +static void cb(s32 result, DVDCommandBlock* block) { + if (result > 0) { + switch (status) { + case 0: + status = 1; + DVDReadAbsAsyncForBS(block, bb2, OSRoundUp32B(sizeof(bb2)), 0x420, cb); + break; + case 1: + status = 2; + DVDReadAbsAsyncForBS(block, bb2->FSTAddress, OSRoundUp32B(bb2->FSTLength), bb2->FSTPosition, + cb); + } + } else if (result == -1) { + + } else if (result == -4) { + status = 0; + DVDReset(); + DVDReadDiskID(block, idTmp, cb); + } +} + +void __fstLoad() { + OSBootInfo* bootInfo; + DVDDiskID* id; + u8 idTmpBuf[sizeof(DVDDiskID) + 31]; + static DVDCommandBlock block; + void* arenaHi; + + arenaHi = OSGetArenaHi(); + bootInfo = (OSBootInfo*)OSPhysicalToCached(0); + + idTmp = (DVDDiskID*)(OSRoundUp32B(idTmpBuf)); + bb2 = (DVDBB2*)(OSRoundUp32B(bb2Buf)); + + DVDReset(); + DVDReadDiskID(&block, idTmp, cb); + while (DVDGetDriveStatus() != 0); + + bootInfo->FSTLocation = bb2->FSTAddress; + bootInfo->FSTMaxLength = bb2->FSTMaxLength; + + id = &bootInfo->DVDDiskID; + + memcpy(id, idTmp, sizeof(DVDDiskID)); + OSReport("\n"); + OSReport(" Game Name ... %c%c%c%c\n", id->gameName[0], id->gameName[1], id->gameName[2], + id->gameName[3]); + OSReport(" Company ..... %c%c\n", id->company[0], id->company[1]); + OSReport(" Disk # ...... %d\n", id->diskNumber); + OSReport(" Game ver .... %d\n", id->gameVersion); + OSReport(" Streaming ... %s\n", (id->streaming == 0) ? "OFF" : "ON"); + OSReport("\n"); + OSSetArenaHi(bb2->FSTAddress); +} From 6dfc6da0e46ad425e812ccfe32187f28a9cd41b1 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 11 Nov 2024 01:43:35 +0100 Subject: [PATCH 113/311] Nearly linked dolphin/dvd.c --- include/dolphin/os/OSAlarm.h | 1 + src/dolphin/dvd/dvd.c | 1466 ++++++++++++++++++++++++++++++++++ 2 files changed, 1467 insertions(+) create mode 100644 src/dolphin/dvd/dvd.c diff --git a/include/dolphin/os/OSAlarm.h b/include/dolphin/os/OSAlarm.h index a0c9d380..497b4a44 100644 --- a/include/dolphin/os/OSAlarm.h +++ b/include/dolphin/os/OSAlarm.h @@ -1,6 +1,7 @@ #ifndef _DOLPHIN_OSALARM #define _DOLPHIN_OSALARM +#include #include #include diff --git a/src/dolphin/dvd/dvd.c b/src/dolphin/dvd/dvd.c new file mode 100644 index 00000000..9253df47 --- /dev/null +++ b/src/dolphin/dvd/dvd.c @@ -0,0 +1,1466 @@ +#include "dolphin/os/OSAlarm.h" +#include +#include +#include +#include +#include + +typedef void (*stateFunc)(DVDCommandBlock *block); +stateFunc LastState; + +extern OSThreadQueue __DVDThreadQueue; + +static u8 tmpBuffer[0x80] ATTRIBUTE_ALIGN(32); +static DVDCommandBlock *executing; +static DVDDiskID *currID; +static OSBootInfo *bootInfo; +static BOOL autoInvalidation = TRUE; +static volatile BOOL PauseFlag = FALSE; +static volatile BOOL PausingFlag = FALSE; +static volatile BOOL AutoFinishing = FALSE; +static volatile BOOL FatalErrorFlag = FALSE; +static vu32 CurrCommand; +static vu32 Canceling = FALSE; +static DVDCBCallback CancelCallback; +static vu32 ResumeFromHere = 0; +static vu32 CancelLastError; +static vu32 LastError; +static vs32 NumInternalRetry = 0; +static volatile BOOL ResetRequired; +static volatile BOOL CancelAllSyncComplete = FALSE; +static volatile BOOL FirstTimeInBootrom = FALSE; + +static DVDCommandBlock DummyCommandBlock; +static OSAlarm ResetAlarm; + +static BOOL DVDInitialized = FALSE; + +/* States */ +static void stateReadingFST(); +static void stateTimeout(); +static void stateGettingError(); +static void stateGoToRetry(); +static void stateCheckID(); +static void stateCheckID3(); +static void stateCheckID2a(); +static void stateCheckID2(); +static void stateCoverClosed(); +static void stateCoverClosed_CMD(); +static void stateCoverOpen(); +static void stateMotorStopped(); +static void stateReady(); +static void stateBusy(); + +/* Callbacks */ +static void cbForStateReadingFST(u32 intType); +static void cbForStateError(u32 intType); +static void cbForStateGettingError(u32 intType); +static void cbForUnrecoveredError(u32 intType); +static void cbForUnrecoveredErrorRetry(u32 intType); +static void cbForStateGoToRetry(u32 intType); +static void cbForStateCheckID2a(u32 intType); +static void cbForStateCheckID1(u32 intType); +static void cbForStateCheckID2(u32 intType); +static void cbForStateCheckID3(u32 intType); +static void cbForStateCoverClosed(u32 intType); +static void cbForStateMotorStopped(u32 intType); +static void cbForStateBusy(u32 intType); +static void cbForCancelStreamSync(s32 result, DVDCommandBlock *block); +static void cbForCancelSync(s32 result, DVDCommandBlock *block); +static void cbForCancelAllSync(s32 result, DVDCommandBlock *block); + +static void defaultOptionalCommandChecker(DVDCommandBlock *block, DVDLowCallback cb); + +static DVDOptionalCommandChecker checkOptionalCommand = defaultOptionalCommandChecker; + +extern void __DVDInterruptHandler(__OSInterrupt interrupt, OSContext *context); + +static void defaultOptionalCommandChecker(DVDCommandBlock *block, DVDLowCallback cb) { } + +void DVDInit() +{ + if (DVDInitialized) { + return; + } + + OSInitAlarm(); + DVDInitialized = TRUE; + __DVDFSInit(); + __DVDClearWaitingQueue(); + __DVDInitWA(); + bootInfo = (OSBootInfo *)OSPhysicalToCached(0x0000); + currID = &(bootInfo->DVDDiskID); + __OSSetInterruptHandler(21, __DVDInterruptHandler); + __OSUnmaskInterrupts(0x400); + OSInitThreadQueue(&__DVDThreadQueue); + __DIRegs[DI_STATUS] = 42; + __DIRegs[DI_COVER_STATUS] = 0; + if (bootInfo->magic == OS_BOOTINFO_MAGIC_JTAG) { + OSReport("app booted via JTAG\n"); + OSReport("load fst\n"); + __fstLoad(); + } + else if (bootInfo->magic == 0xD15EA5E) { + OSReport("app booted from bootrom\n"); + } + else { + FirstTimeInBootrom = TRUE; + OSReport("bootrom\n"); + } +} + +static void stateReadingFST() +{ + LastState = (stateFunc)stateReadingFST; + + DVDLowRead(bootInfo->FSTLocation, OSRoundUp32B(((u32 *)tmpBuffer)[2]), ((u32 *)tmpBuffer)[1], cbForStateReadingFST); +} + +static void cbForStateReadingFST(u32 intType) +{ + DVDCommandBlock *finished; + if (intType == 0x10) { + executing->state = -1; + stateTimeout(); + } + else if ((intType & 1) != 0) { + NumInternalRetry = 0; + finished = executing; + executing = &DummyCommandBlock; + finished->state = 0; + if (finished->callback) { + (finished->callback)(0, finished); + } + stateReady(); + } + else { + stateGettingError(); + } +} + +inline static void stateError(u32 error) +{ + __DVDStoreErrorCode(error); + DVDLowStopMotor(cbForStateError); +} + +static void cbForStateError(u32 intType) +{ + DVDCommandBlock *finished; + + if (intType == 16) { + executing->state = -1; + stateTimeout(); + return; + } + + FatalErrorFlag = TRUE; + finished = executing; + executing = &DummyCommandBlock; + if (finished->callback) { + (finished->callback)(-1, finished); + } + + if (Canceling) { + Canceling = FALSE; + if (CancelCallback) + (CancelCallback)(0, finished); + } + + stateReady(); + + return; +} + +static void stateTimeout() +{ + __DVDStoreErrorCode(0x1234568); + DVDReset(); + cbForStateError(0); +} + +static void stateGettingError() +{ + DVDLowRequestError(cbForStateGettingError); +} + +static u32 CategorizeError(u32 error) +{ + if (error == 0x20400) { + LastError = error; + return 1; + } + + error &= 0xffffff; + + if ((error == 0x62800) || (error == 0x23a00) || (error == 0xb5a01)) { + return 0; + } + + ++NumInternalRetry; + if (NumInternalRetry == 2) { + if (error == LastError) { + LastError = error; + return 1; + } + else { + LastError = error; + return 2; + } + } + else { + LastError = error; + + if ((error == 0x31100) || (executing->command == 5)) { + return 2; + } + else { + return 3; + } + } +} + +inline static BOOL CheckCancel(u32 resume) +{ + DVDCommandBlock *finished; + + if (Canceling) { + ResumeFromHere = resume; + Canceling = FALSE; + + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 10; + if (finished->callback) + (*finished->callback)(-3, finished); + if (CancelCallback) + (CancelCallback)(0, finished); + stateReady(); + return TRUE; + } + return FALSE; +} + +static void cbForStateGettingError(u32 intType) +{ + u32 error; + u32 status; + u32 errorCategory; + u32 resume; + + if (intType == 16) { + executing->state = -1; + stateTimeout(); + return; + } + + if (intType & 2) { + executing->state = -1; + stateError(0x1234567); + return; + } + + error = __DIRegs[8]; + status = error & 0xff000000; + + errorCategory = CategorizeError(error); + + if (errorCategory == 1) { + executing->state = -1; + stateError(error); + return; + } + + if ((errorCategory == 2) || (errorCategory == 3)) { + resume = 0; + } + else { + if (status == 0x01000000) + resume = 4; + else if (status == 0x02000000) + resume = 6; + else if (status == 0x03000000) + resume = 3; + else + resume = 5; + } + + if (CheckCancel(resume)) + return; + + if (errorCategory == 2) { + __DVDStoreErrorCode(error); + stateGoToRetry(); + return; + } + + if (errorCategory == 3) { + if ((error & 0x00ffffff) == 0x00031100) { + DVDLowSeek(executing->offset, cbForUnrecoveredError); + } + else { + LastState(executing); + } + return; + } + + if (status == 0x01000000) { + executing->state = 5; + stateMotorStopped(); + return; + } + else if (status == 0x02000000) { + executing->state = 3; + stateCoverClosed(); + return; + } + else if (status == 0x03000000) { + executing->state = 4; + stateMotorStopped(); + return; + } + else { + executing->state = -1; + stateError(0x1234567); + return; + } +} + +static void cbForUnrecoveredError(u32 intType) +{ + if (intType == 16) { + executing->state = -1; + stateTimeout(); + return; + } + + if (intType & 1) { + stateGoToRetry(); + return; + } + + DVDLowRequestError(cbForUnrecoveredErrorRetry); +} + +static void cbForUnrecoveredErrorRetry(u32 intType) +{ + if (intType == 16) { + executing->state = -1; + stateTimeout(); + return; + } + executing->state = -1; + + if (intType & 2) { + __DVDStoreErrorCode(0x1234567); + DVDLowStopMotor(cbForStateError); + return; + } + + __DVDStoreErrorCode(__DIRegs[8]); + DVDLowStopMotor(cbForStateError); +} + +static void stateGoToRetry() +{ + DVDLowStopMotor(cbForStateGoToRetry); +} + +static void cbForStateGoToRetry(u32 intType) +{ + if (intType == 16) { + executing->state = -1; + stateTimeout(); + return; + } + + if (intType & 2) { + executing->state = -1; + stateError(0x1234567); + return; + } + + NumInternalRetry = 0; + + if ((CurrCommand == 4) || (CurrCommand == 5) || (CurrCommand == 13) || (CurrCommand == 15)) { + ResetRequired = TRUE; + } + + if (!CheckCancel(2)) { + executing->state = 11; + stateMotorStopped(); + } +} + +static void stateCheckID() +{ + switch (CurrCommand) { + case 3: + if (memcmp(tmpBuffer, executing->id, 0x1C) != FALSE) { + DVDLowStopMotor(cbForStateCheckID1); + } + else { + memcpy(currID, tmpBuffer, sizeof(DVDDiskID)); + executing->state = 1; + DCInvalidateRange(tmpBuffer, sizeof(DVDBB2)); + LastState = stateCheckID2; + stateCheckID2(executing); + } + break; + default: + if (memcmp(tmpBuffer, currID, sizeof(DVDDiskID)) != 0) { + DVDLowStopMotor(cbForStateCheckID1); + } + else { + LastState = stateCheckID3; + stateCheckID3(executing); + } + break; + } +} + +static void stateCheckID3() +{ + DVDLowAudioBufferConfig(currID->streaming, 10, cbForStateCheckID3); +} + +static void stateCheckID2a() +{ + DVDLowAudioBufferConfig(currID->streaming, 10, cbForStateCheckID2a); +} + +static void cbForStateCheckID2a(u32 intType) +{ + if (intType == 16) { + executing->state = -1; + stateTimeout(); + return; + } + + if (intType & 1) { + NumInternalRetry = 0; + stateCheckID2(executing); + return; + } + + DVDLowRequestError(cbForStateGettingError); +} + +static void stateCheckID2(DVDCommandBlock *block) +{ + DVDLowRead(tmpBuffer, OSRoundUp32B(sizeof(DVDBB2)), 0x420, cbForStateCheckID2); +} + +static void cbForStateCheckID1(u32 intType) +{ + if (intType == 16) { + executing->state = -1; + stateTimeout(); + return; + } + + if (intType & 2) { + executing->state = -1; + stateError(0x1234567); + return; + } + + NumInternalRetry = 0; + + if (!CheckCancel(1)) { + executing->state = 6; + stateMotorStopped(); + } +} + +static void cbForStateCheckID2(u32 intType) +{ + if (intType == 16) { + executing->state = -1; + stateTimeout(); + return; + } + + if (intType & 1) { + + NumInternalRetry = 0; + + stateReadingFST(); + } + else { + + stateGettingError(); + } +} + +static void cbForStateCheckID3(u32 intType) +{ + if (intType == 16) { + executing->state = -1; + stateTimeout(); + return; + } + + if (intType & 1) { + + NumInternalRetry = 0; + + if (!CheckCancel(0)) { + executing->state = 1; + stateBusy(executing); + } + } + else { + stateGettingError(); + } +} + +static void AlarmHandler(OSAlarm *alarm, OSContext *context) +{ + DVDReset(); + DCInvalidateRange(tmpBuffer, sizeof(DVDDiskID)); + LastState = stateCoverClosed_CMD; + stateCoverClosed_CMD(executing); +} + +static void stateCoverClosed() +{ + DVDCommandBlock *finished; + + switch (CurrCommand) { + case 5: + case 4: + case 13: + case 15: + __DVDClearWaitingQueue(); + finished = executing; + executing = &DummyCommandBlock; + if (finished->callback) { + (finished->callback)(-4, finished); + } + stateReady(); + break; + + default: + DVDReset(); + OSCreateAlarm(&ResetAlarm); + OSSetAlarm(&ResetAlarm, OSMillisecondsToTicks(1150), AlarmHandler); + break; + } +} + +static void stateCoverClosed_CMD(DVDCommandBlock *block) +{ + DVDLowReadDiskID(tmpBuffer, cbForStateCoverClosed); +} + +static void cbForStateCoverClosed(u32 intType) +{ + if (intType == 16) { + executing->state = -1; + stateTimeout(); + return; + } + + if (intType & 1) { + NumInternalRetry = 0; + stateCheckID(); + } + else { + stateGettingError(); + } +} + +static void stateMotorStopped(void) +{ + DVDLowWaitCoverClose(cbForStateMotorStopped); +} + +static void cbForStateMotorStopped(u32 intType) +{ + __DIRegs[1] = 0; + executing->state = 3; + stateCoverClosed(); +} + +void stateReady() +{ + DVDCommandBlock *finished; + + if (!__DVDCheckWaitingQueue()) { + executing = (DVDCommandBlock *)nullptr; + return; + } + + if (PauseFlag) { + PausingFlag = TRUE; + executing = (DVDCommandBlock *)nullptr; + return; + } + + executing = __DVDPopWaitingQueue(); + + if (FatalErrorFlag) { + executing->state = -1; + finished = executing; + executing = &DummyCommandBlock; + if (finished->callback) { + (finished->callback)(-1, finished); + } + stateReady(); + return; + } + + CurrCommand = executing->command; + + if (ResumeFromHere) { + switch (ResumeFromHere) { + case 1: + executing->state = 6; + stateMotorStopped(); + break; + + case 2: + executing->state = 11; + stateMotorStopped(); + break; + + case 3: + executing->state = 4; + stateMotorStopped(); + break; + + case 7: + executing->state = 7; + stateMotorStopped(); + break; + + case 4: + executing->state = 5; + stateMotorStopped(); + break; + + case 6: + executing->state = 3; + stateCoverClosed(); + break; + + case 5: + executing->state = -1; + stateError(CancelLastError); + break; + } + + ResumeFromHere = 0; + } + else { + executing->state = 1; + stateBusy(executing); + } +} + +#define MIN(a, b) (((a) > (b)) ? (b) : (a)) +static void stateBusy(DVDCommandBlock *block) +{ + DVDCommandBlock *finished; + LastState = stateBusy; + switch (block->command) { + case 5: + __DIRegs[1] = __DIRegs[1]; + block->currTransferSize = sizeof(DVDDiskID); + DVDLowReadDiskID(block->addr, cbForStateBusy); + break; + case 1: + case 4: + __DIRegs[1] = __DIRegs[1]; + block->currTransferSize = MIN(block->length - block->transferredSize, 0x80000); + DVDLowRead((void *)((u8 *)block->addr + block->transferredSize), block->currTransferSize, block->offset + block->transferredSize, + cbForStateBusy); + break; + case 2: + __DIRegs[1] = __DIRegs[1]; + DVDLowSeek(block->offset, cbForStateBusy); + break; + case 3: + DVDLowStopMotor(cbForStateBusy); + break; + case 15: + DVDLowStopMotor(cbForStateBusy); + break; + case 6: + __DIRegs[1] = __DIRegs[1]; + if (AutoFinishing) { + executing->currTransferSize = 0; + DVDLowRequestAudioStatus(0, cbForStateBusy); + } + else { + executing->currTransferSize = 1; + DVDLowAudioStream(0, block->length, block->offset, cbForStateBusy); + } + break; + case 7: + __DIRegs[1] = __DIRegs[1]; + DVDLowAudioStream(0x10000, 0, 0, cbForStateBusy); + break; + case 8: + __DIRegs[1] = __DIRegs[1]; + AutoFinishing = TRUE; + DVDLowAudioStream(0, 0, 0, cbForStateBusy); + break; + case 9: + __DIRegs[1] = __DIRegs[1]; + DVDLowRequestAudioStatus(0, cbForStateBusy); + break; + case 10: + __DIRegs[1] = __DIRegs[1]; + DVDLowRequestAudioStatus(0x10000, cbForStateBusy); + break; + case 11: + __DIRegs[1] = __DIRegs[1]; + DVDLowRequestAudioStatus(0x20000, cbForStateBusy); + break; + case 12: + __DIRegs[1] = __DIRegs[1]; + DVDLowRequestAudioStatus(0x30000, cbForStateBusy); + break; + case 13: + __DIRegs[1] = __DIRegs[1]; + DVDLowAudioBufferConfig(block->offset, block->length, cbForStateBusy); + break; + case 14: + __DIRegs[1] = __DIRegs[1]; + block->currTransferSize = sizeof(DVDDriveInfo); + DVDLowInquiry(block->addr, cbForStateBusy); + break; + } +} + +// removing these matches DVDCancelAsync and DVDCheckDisk +static u32 ImmCommand[] = { 0xffffffff, 0xffffffff, 0xffffffff }; +static u32 DmaCommand[] = { 0xffffffff }; + +inline static BOOL IsImmCommandWithResult(u32 command) +{ + u32 i; + + if (command == 9 || command == 10 || command == 11 || command == 12) { + return TRUE; + } + + for (i = 0; i < sizeof(ImmCommand) / sizeof(ImmCommand[0]); i++) { + if (command == ImmCommand[i]) + return TRUE; + } + + return FALSE; +} + +inline static BOOL IsDmaCommand(u32 command) +{ + u32 i; + + if (command == 1 || command == 4 || command == 5 || command == 14) + return TRUE; + + for (i = 0; i < sizeof(DmaCommand) / sizeof(DmaCommand[0]); i++) { + if (command == DmaCommand[i]) + return TRUE; + } + + return FALSE; +} + +void cbForStateBusy(u32 intType) +{ + DVDCommandBlock *finished; + + if (intType == 16) { + executing->state = -1; + stateTimeout(); + return; + } + + if ((CurrCommand == 3) || (CurrCommand == 15)) { + if (intType & 2) { + executing->state = -1; + stateError(0x1234567); + return; + } + + NumInternalRetry = 0; + + if (CurrCommand == 15) { + ResetRequired = TRUE; + } + + if (CheckCancel(7)) { + return; + } + + executing->state = 7; + stateMotorStopped(); + return; + } + + if ((CurrCommand == 1) || (CurrCommand == 4) || (CurrCommand == 5) || (CurrCommand == 14)) { + executing->transferredSize += executing->currTransferSize - __DIRegs[6]; + } + + if (intType & 8) { + Canceling = FALSE; + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 10; + if (finished->callback) { + (*finished->callback)(-3, finished); + } + if (CancelCallback) { + (CancelCallback)(0, finished); + } + stateReady(); + + return; + } + + if (intType & 1) { + NumInternalRetry = 0; + + if (CheckCancel(0)) + return; + + if ((CurrCommand == 1) || (CurrCommand == 4) || (CurrCommand == 5) || (CurrCommand == 14)) { + if (executing->transferredSize != executing->length) { + stateBusy(executing); + return; + } + + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 0; + if (finished->callback) { + (finished->callback)((s32)finished->transferredSize, finished); + } + stateReady(); + } + else if ((CurrCommand == 9) || (CurrCommand == 10) || (CurrCommand == 11) || (CurrCommand == 12)) { + s32 result; + + if ((CurrCommand == 11) || (CurrCommand == 10)) { + result = (s32)(__DIRegs[DI_MM_BUF] << 2); + } + else { + result = (s32)__DIRegs[DI_MM_BUF]; + } + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 0; + if (finished->callback) { + (finished->callback)(result, finished); + } + stateReady(); + } + else if (CurrCommand == 6) { + if (executing->currTransferSize == 0) { + if (__DIRegs[DI_MM_BUF] & 1) { + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 9; + if (finished->callback) { + (finished->callback)(-2, finished); + } + stateReady(); + } + else { + AutoFinishing = FALSE; + executing->currTransferSize = 1; + DVDLowAudioStream(0, executing->length, executing->offset, cbForStateBusy); + } + } + else { + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 0; + if (finished->callback) { + (finished->callback)(0, finished); + } + stateReady(); + } + } + else { + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 0; + if (finished->callback) { + (finished->callback)(0, finished); + } + stateReady(); + } + } + else { + if (CurrCommand == 14) { + executing->state = -1; + stateError(0x01234567); + return; + } + + if ((CurrCommand == 1 || CurrCommand == 4 || CurrCommand == 5 || CurrCommand == 14) && (executing->transferredSize == executing->length)) { + + if (CheckCancel(0)) { + return; + } + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 0; + if (finished->callback) { + (finished->callback)((s32)finished->transferredSize, finished); + } + stateReady(); + return; + } + + stateGettingError(); + } +} + +static BOOL issueCommand(s32 prio, DVDCommandBlock *block) +{ + BOOL level; + BOOL result; + + if (autoInvalidation && (block->command == 1 || block->command == 4 || block->command == 5 || block->command == 14)) { + DCInvalidateRange(block->addr, block->length); + } + + level = OSDisableInterrupts(); + + block->state = 2; + result = __DVDPushWaitingQueue(prio, block); + + if ((executing == (DVDCommandBlock *)NULL) && (PauseFlag == FALSE)) { + stateReady(); + } + + OSRestoreInterrupts(level); + + return result; +} + +BOOL DVDReadAbsAsyncPrio(DVDCommandBlock *block, void *addr, s32 length, s32 offset, DVDCBCallback callback, s32 prio) +{ + BOOL idle; + block->command = 1; + block->addr = addr; + block->length = length; + block->offset = offset; + block->transferredSize = 0; + block->callback = callback; + + idle = issueCommand(prio, block); + return idle; +} +BOOL DVDReadAbsAsyncForBS(DVDCommandBlock *block, void *addr, s32 length, s32 offset, DVDCBCallback callback) +{ + BOOL idle; + block->command = 4; + block->addr = addr; + block->length = length; + block->offset = offset; + block->transferredSize = 0; + block->callback = callback; + + idle = issueCommand(2, block); + return idle; +} +BOOL DVDReadDiskID(DVDCommandBlock *block, DVDDiskID *diskID, DVDCBCallback callback) +{ + BOOL idle; + block->command = 5; + block->addr = diskID; + block->length = sizeof(DVDDiskID); + ; + block->offset = 0; + block->transferredSize = 0; + block->callback = callback; + + idle = issueCommand(2, block); + return idle; +} +BOOL DVDPrepareStreamAbsAsync(DVDCommandBlock *block, u32 length, u32 offset, DVDCBCallback callback) +{ + BOOL idle; + block->command = 6; + block->length = length; + block->offset = offset; + block->callback = callback; + + idle = issueCommand(1, block); + return idle; +} +BOOL DVDCancelStreamAsync(DVDCommandBlock *block, DVDCBCallback callback) +{ + BOOL idle; + block->command = 7; + block->callback = callback; + idle = issueCommand(1, block); + return idle; +} +s32 DVDCancelStream(DVDCommandBlock *block) +{ + BOOL result; + s32 state; + BOOL enabled; + s32 retVal; + + result = DVDCancelStreamAsync(block, cbForCancelStreamSync); + + if (result == FALSE) { + return -1; + } + + enabled = OSDisableInterrupts(); + + while (TRUE) { + state = ((volatile DVDCommandBlock *)block)->state; + + if (state == 0 || state == -1 || state == 10) { + retVal = (s32)block->transferredSize; + break; + } + + OSSleepThread(&__DVDThreadQueue); + } + + OSRestoreInterrupts(enabled); + return retVal; +} +static void cbForCancelStreamSync(s32 result, DVDCommandBlock *block) +{ + block->transferredSize = (u32)result; + OSWakeupThread(&__DVDThreadQueue); +} +BOOL DVDStopStreamAtEndAsync(DVDCommandBlock *block, DVDCBCallback callback) +{ + BOOL idle; + + block->command = 8; + block->callback = callback; + + idle = issueCommand(1, block); + + return idle; +} +BOOL DVDGetStreamErrorStatusAsync(DVDCommandBlock *block, DVDCBCallback callback) +{ + BOOL idle; + + block->command = 9; + block->callback = callback; + + idle = issueCommand(1, block); + + return idle; +} +BOOL DVDGetStreamPlayAddrAsync(DVDCommandBlock *block, DVDCBCallback callback) +{ + BOOL idle; + + block->command = 10; + block->callback = callback; + + idle = issueCommand(1, block); + + return idle; +} +BOOL DVDInquiryAsync(DVDCommandBlock *block, DVDDriveInfo *info, DVDCBCallback callback) +{ + BOOL idle; + + block->command = 14; + block->addr = (void *)info; + block->length = sizeof(DVDDriveInfo); + block->transferredSize = 0; + block->callback = callback; + + idle = issueCommand(2, block); + + return idle; +} + +void DVDReset(void) +{ + DVDLowReset(); + __DIRegs[0] = 0x2a; + __DIRegs[1] = __DIRegs[1]; + ResetRequired = FALSE; + ResumeFromHere = 0; +} + +s32 DVDGetCommandBlockStatus(const DVDCommandBlock *block) +{ + BOOL enabled; + s32 retVal; + + enabled = OSDisableInterrupts(); + + if (block->state == 3) { + retVal = 1; + } + else { + retVal = block->state; + } + + OSRestoreInterrupts(enabled); + + return retVal; +} + +s32 DVDGetDriveStatus() +{ + BOOL enabled; + s32 retVal; + + enabled = OSDisableInterrupts(); + + if (FatalErrorFlag) { + retVal = -1; + } + else if (PausingFlag) { + retVal = 8; + } + else { + if (executing == (DVDCommandBlock *)NULL) { + retVal = 0; + } + else if (executing == &DummyCommandBlock) { + retVal = 0; + } + else { + retVal = DVDGetCommandBlockStatus(executing); + } + } + + OSRestoreInterrupts(enabled); + + return retVal; +} + +BOOL DVDSetAutoInvalidation(BOOL autoInval) +{ + BOOL prev; + prev = autoInvalidation; + autoInvalidation = autoInval; + return prev; +} + +inline void DVDPause(void) +{ + BOOL level; + level = OSDisableInterrupts(); + PauseFlag = TRUE; + if (executing == (DVDCommandBlock *)NULL) { + PausingFlag = TRUE; + } + OSRestoreInterrupts(level); +} + +inline void DVDResume(void) +{ + BOOL level; + level = OSDisableInterrupts(); + PauseFlag = FALSE; + if (PausingFlag) { + PausingFlag = FALSE; + stateReady(); + } + OSRestoreInterrupts(level); +} + +BOOL DVDCancelAsync(DVDCommandBlock *block, DVDCBCallback callback) +{ + BOOL enabled; + DVDLowCallback old; + + enabled = OSDisableInterrupts(); + + switch (block->state) { + case -1: + case 0: + case 10: + if (callback) + (*callback)(0, block); + break; + + case 1: + if (Canceling) { + OSRestoreInterrupts(enabled); + return FALSE; + } + + Canceling = TRUE; + CancelCallback = callback; + if (block->command == 4 || block->command == 1) { + DVDLowBreak(); + } + break; + + case 2: + __DVDDequeueWaitingQueue(block); + block->state = 10; + if (block->callback) + (block->callback)(-3, block); + if (callback) + (*callback)(0, block); + break; + + case 3: + switch (block->command) { + case 5: + case 4: + case 13: + case 15: + if (callback) + (*callback)(0, block); + break; + + default: + if (Canceling) { + OSRestoreInterrupts(enabled); + return FALSE; + } + Canceling = TRUE; + CancelCallback = callback; + break; + } + break; + + case 4: + case 5: + case 6: + case 7: + case 11: + old = DVDLowClearCallback(); + if (old != cbForStateMotorStopped) { + OSRestoreInterrupts(enabled); + return FALSE; + } + + if (block->state == 4) + ResumeFromHere = 3; + if (block->state == 5) + ResumeFromHere = 4; + if (block->state == 6) + ResumeFromHere = 1; + if (block->state == 11) + ResumeFromHere = 2; + if (block->state == 7) + ResumeFromHere = 7; + + block->state = 10; + if (block->callback) { + (block->callback)(-3, block); + } + if (callback) { + (callback)(0, block); + } + stateReady(); + break; + } + + OSRestoreInterrupts(enabled); + return TRUE; +} + +s32 DVDCancel(DVDCommandBlock *block) +{ + BOOL result; + s32 state; + u32 command; + BOOL enabled; + + result = DVDCancelAsync(block, cbForCancelSync); + + if (result == FALSE) { + return -1; + } + + enabled = OSDisableInterrupts(); + + for (;;) { + state = ((volatile DVDCommandBlock *)block)->state; + + if ((state == 0) || (state == -1) || (state == 10)) { + break; + } + + if (state == 3) { + command = ((volatile DVDCommandBlock *)block)->command; + + if ((command == 4) || (command == 5) || (command == 13) || (command == 15)) { + break; + } + } + + OSSleepThread(&__DVDThreadQueue); + } + + OSRestoreInterrupts(enabled); + return 0; +} + +static void cbForCancelSync(s32 result, DVDCommandBlock *block) +{ + OSWakeupThread(&__DVDThreadQueue); +} + +inline BOOL DVDCancelAllAsync(DVDCBCallback callback) +{ + BOOL enabled; + DVDCommandBlock *p; + BOOL retVal; + + enabled = OSDisableInterrupts(); + DVDPause(); + + while ((p = __DVDPopWaitingQueue()) != 0) { + DVDCancelAsync(p, NULL); + } + + if (executing) + retVal = DVDCancelAsync(executing, callback); + else { + retVal = TRUE; + if (callback) + (*callback)(0, NULL); + } + + DVDResume(); + OSRestoreInterrupts(enabled); + return retVal; +} + +s32 DVDCancelAll(void) +{ + BOOL result; + BOOL enabled; + + enabled = OSDisableInterrupts(); + CancelAllSyncComplete = FALSE; + + result = DVDCancelAllAsync(cbForCancelAllSync); + + if (result == FALSE) { + OSRestoreInterrupts(enabled); + return -1; + } + + for (;;) { + if (CancelAllSyncComplete) + break; + + OSSleepThread(&__DVDThreadQueue); + } + + OSRestoreInterrupts(enabled); + return 0; +} + +static void cbForCancelAllSync(s32 result, DVDCommandBlock *block) +{ + CancelAllSyncComplete = TRUE; + OSWakeupThread(&__DVDThreadQueue); +} + +DVDDiskID *DVDGetCurrentDiskID(void) +{ + return (DVDDiskID *)OSPhysicalToCached(0); +} +BOOL DVDCheckDisk(void) +{ + BOOL enabled; + s32 retVal; + s32 state; + u32 coverReg; + + enabled = OSDisableInterrupts(); + + if (FatalErrorFlag) { + state = -1; + } + else if (PausingFlag) { + state = 8; + } + else { + if (executing == (DVDCommandBlock *)NULL) { + state = 0; + } + else if (executing == &DummyCommandBlock) { + state = 0; + } + else { + state = executing->state; + } + } + + switch (state) { + case 1: + case 9: + case 10: + case 2: + retVal = TRUE; + break; + + case -1: + case 11: + case 7: + case 3: + case 4: + case 5: + case 6: + retVal = FALSE; + break; + + case 0: + case 8: + coverReg = __DIRegs[1]; + if (((coverReg >> 2) & 1) || (coverReg & 1)) { + retVal = FALSE; + } + else { + retVal = TRUE; + } + } + + OSRestoreInterrupts(enabled); + + return retVal; +} + +void __DVDPrepareResetAsync(DVDCBCallback callback) +{ + BOOL enabled; + + enabled = OSDisableInterrupts(); + + __DVDClearWaitingQueue(); + + if (Canceling) { + CancelCallback = callback; + } + else { + if (executing) { + executing->callback = NULL; + } + + DVDCancelAllAsync(callback); + } + + OSRestoreInterrupts(enabled); +} From 4bbaec7455eabbb0f7b036f15dcae51027a77006 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 12 Nov 2024 00:08:39 +0100 Subject: [PATCH 114/311] Matched pad.c and a few mtx files --- config/GMPE01_00/rels/m420dll/symbols.txt | 4 +- config/GMPE01_00/splits.txt | 7 +- config/GMPE01_00/symbols.txt | 44 +- configure.py | 8 +- src/dolphin/mtx/mtx.c | 1315 +++++++++++++++++++++ src/dolphin/mtx/mtx44.c | 99 ++ src/dolphin/mtx/mtxvec.c | 146 +++ src/dolphin/mtx/psmtx.c | 355 ++++++ src/dolphin/mtx/quat.c | 80 ++ src/dolphin/mtx/vec.c | 287 +++++ src/dolphin/pad/Pad.c | 783 ++++++++++++ src/dolphin/pad/Padclamp.c | 119 ++ 12 files changed, 3216 insertions(+), 31 deletions(-) create mode 100644 src/dolphin/mtx/mtx.c create mode 100644 src/dolphin/mtx/mtx44.c create mode 100644 src/dolphin/mtx/mtxvec.c create mode 100644 src/dolphin/mtx/psmtx.c create mode 100644 src/dolphin/mtx/quat.c create mode 100644 src/dolphin/mtx/vec.c create mode 100644 src/dolphin/pad/Pad.c create mode 100644 src/dolphin/pad/Padclamp.c diff --git a/config/GMPE01_00/rels/m420dll/symbols.txt b/config/GMPE01_00/rels/m420dll/symbols.txt index 8e6b2a20..365355d3 100644 --- a/config/GMPE01_00/rels/m420dll/symbols.txt +++ b/config/GMPE01_00/rels/m420dll/symbols.txt @@ -207,9 +207,9 @@ lbl_1_data_0 = .data:0x00000000; // type:object size:0x1E scope:local data:strin lbl_1_data_1E = .data:0x0000001E; // type:object size:0x1E scope:local data:string lbl_1_data_3C = .data:0x0000003C; // type:object size:0x11 scope:local data:string lbl_1_data_50 = .data:0x00000050; // type:object size:0x80 -lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x1B data:string +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x1B scope:local data:string lbl_1_data_EC = .data:0x000000EC; // type:object size:0x30 -lbl_1_data_11C = .data:0x0000011C; // type:object size:0x19 data:string +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x19 scope:local data:string lbl_1_data_135 = .data:0x00000135; // type:object size:0x1 lbl_1_data_138 = .data:0x00000138; // type:object size:0x1C lbl_1_data_154 = .data:0x00000154; // type:object size:0x10 data:4byte diff --git a/config/GMPE01_00/splits.txt b/config/GMPE01_00/splits.txt index 7eefd3c3..6b38187f 100644 --- a/config/GMPE01_00/splits.txt +++ b/config/GMPE01_00/splits.txt @@ -680,12 +680,12 @@ dolphin/mtx/vec.c: .sdata2 start:0x801D6380 end:0x801D6390 dolphin/mtx/quat.c: - .text start:0x800BC2C4 end:0x800BC710 + .text start:0x800BC2C4 end:0x800BC884 .rodata start:0x8011E430 end:0x8011E440 .sdata2 start:0x801D6390 end:0x801D63B8 dolphin/mtx/psmtx.c: - .text start:0x800BC710 end:0x800BC9E8 + .text start:0x800BC884 end:0x800BC9E8 dolphin/dvd/dvdlow.c: .text start:0x800BC9E8 end:0x800BD83C @@ -742,7 +742,7 @@ dolphin/demo/DEMOPuts.c: dolphin/demo/DEMOStats.c: .text start:0x800C2F84 end:0x800C3CDC - .data start:0x8013D5E0 end:0x8013D748 + .data start:0x8013D5E0 end:0x8013D738 .sdata start:0x801D3908 end:0x801D3910 .sbss start:0x801D4488 end:0x801D44E8 .sdata2 start:0x801D63D8 end:0x801D63E8 @@ -753,6 +753,7 @@ dolphin/pad/Padclamp.c: dolphin/pad/Pad.c: .text start:0x800C3F14 end:0x800C59DC + .data start:0x8013D738 end:0x8013D748 .bss start:0x801A61B0 end:0x801A6200 .sdata start:0x801D3918 end:0x801D3938 .sbss start:0x801D44E8 end:0x801D4510 diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 1c59588e..99198763 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -4345,10 +4345,10 @@ lbl_8013C2F0 = .data:0x8013C2F0; // type:object size:0x78 YearDays = .data:0x8013C368; // type:object size:0x30 scope:local LeapYearDays = .data:0x8013C398; // type:object size:0x30 scope:local lbl_8013C3C8 = .data:0x8013C3C8; // type:object size:0x18 scope:local data:string -lbl_8013C3E0 = .data:0x8013C3E0; // type:object size:0xC8 data:string -lbl_8013C4A8 = .data:0x8013C4A8; // type:object size:0x38 -lbl_8013C4E0 = .data:0x8013C4E0; // type:object size:0x34 data:string -lbl_8013C514 = .data:0x8013C514; // type:object size:0x34 +lbl_8013C3E0 = .data:0x8013C3E0; // type:object size:0xC8 scope:local data:string +lbl_8013C4A8 = .data:0x8013C4A8; // type:object size:0x38 scope:local +lbl_8013C4E0 = .data:0x8013C4E0; // type:object size:0x34 scope:local data:string +lbl_8013C514 = .data:0x8013C514; // type:object size:0x34 scope:local @13 = .data:0x8013C548; // type:object size:0x15 scope:local data:string @293 = .data:0x8013C594; // type:object size:0x20 scope:local jumptable_8013C5B4 = .data:0x8013C5B4; // type:object size:0x40 scope:local @@ -4373,7 +4373,7 @@ jumptable_8013D698 = .data:0x8013D698; // type:object size:0x28 scope:local jumptable_8013D6C0 = .data:0x8013D6C0; // type:object size:0x28 scope:local jumptable_8013D6E8 = .data:0x8013D6E8; // type:object size:0x28 scope:local jumptable_8013D710 = .data:0x8013D710; // type:object size:0x28 scope:local -lbl_8013D738 = .data:0x8013D738; // type:object size:0x10 +ResetFunctionInfo = .data:0x8013D738; // type:object size:0x10 lbl_8013D748 = .data:0x8013D748; // type:object size:0x38 lbl_8013D780 = .data:0x8013D780; // type:object size:0x140 jumptable_8013D8C0 = .data:0x8013D8C0; // type:object size:0x68 scope:local @@ -4976,8 +4976,8 @@ __OSArenaLo = .sdata:0x801D38C0; // type:object size:0x4 scope:local data:4byte @32 = .sdata:0x801D38C8; // type:object size:0x2 scope:local data:string fontEncode$80 = .sdata:0x801D38D0; // type:object size:0x8 scope:local data:2byte Unit01 = .sdata:0x801D38D8; // type:object size:0x8 -FirstRead = .sdata:0x801D38E0; // type:object size:0x8 scope:local data:4byte -lbl_801D38E8 = .sdata:0x801D38E8; // type:object size:0x8 data:string +FirstRead = .sdata:0x801D38E0; // type:object size:0x4 scope:local data:4byte +lbl_801D38E8 = .sdata:0x801D38E8; // type:object size:0x8 scope:local data:string autoInvalidation = .sdata:0x801D38F0; // type:object size:0x4 scope:local data:4byte @35 = .sdata:0x801D38F8; // type:object size:0x2 scope:local data:string @40 = .sdata:0x801D38FC; // type:object size:0x4 scope:local data:string @@ -7284,21 +7284,21 @@ lbl_801D6338 = .sdata2:0x801D6338; // type:object size:0x4 data:float lbl_801D633C = .sdata2:0x801D633C; // type:object size:0x4 data:float lbl_801D6340 = .sdata2:0x801D6340; // type:object size:0x8 data:double lbl_801D6348 = .sdata2:0x801D6348; // type:object size:0x8 data:float -lbl_801D6350 = .sdata2:0x801D6350; // type:object size:0x4 data:float -lbl_801D6354 = .sdata2:0x801D6354; // type:object size:0x4 data:float -lbl_801D6358 = .sdata2:0x801D6358; // type:object size:0x4 data:float -lbl_801D635C = .sdata2:0x801D635C; // type:object size:0x4 data:float -lbl_801D6360 = .sdata2:0x801D6360; // type:object size:0x8 data:float -lbl_801D6368 = .sdata2:0x801D6368; // type:object size:0x4 data:float -lbl_801D636C = .sdata2:0x801D636C; // type:object size:0x4 data:float -lbl_801D6370 = .sdata2:0x801D6370; // type:object size:0x4 data:float -lbl_801D6374 = .sdata2:0x801D6374; // type:object size:0x4 data:float -lbl_801D6378 = .sdata2:0x801D6378; // type:object size:0x4 data:float -lbl_801D637C = .sdata2:0x801D637C; // type:object size:0x4 data:float -lbl_801D6380 = .sdata2:0x801D6380; // type:object size:0x4 data:float -lbl_801D6384 = .sdata2:0x801D6384; // type:object size:0x4 data:float -lbl_801D6388 = .sdata2:0x801D6388; // type:object size:0x4 data:float -lbl_801D638C = .sdata2:0x801D638C; // type:object size:0x4 data:float +lbl_801D6350 = .sdata2:0x801D6350; // type:object size:0x4 scope:local data:float +lbl_801D6354 = .sdata2:0x801D6354; // type:object size:0x4 scope:local data:float +lbl_801D6358 = .sdata2:0x801D6358; // type:object size:0x4 scope:local data:float +lbl_801D635C = .sdata2:0x801D635C; // type:object size:0x4 scope:local data:float +lbl_801D6360 = .sdata2:0x801D6360; // type:object size:0x8 scope:local data:float +lbl_801D6368 = .sdata2:0x801D6368; // type:object size:0x4 scope:local data:float +lbl_801D636C = .sdata2:0x801D636C; // type:object size:0x4 scope:local data:float +lbl_801D6370 = .sdata2:0x801D6370; // type:object size:0x4 scope:local data:float +lbl_801D6374 = .sdata2:0x801D6374; // type:object size:0x4 scope:local data:float +lbl_801D6378 = .sdata2:0x801D6378; // type:object size:0x4 scope:local data:float +lbl_801D637C = .sdata2:0x801D637C; // type:object size:0x4 scope:local data:float +lbl_801D6380 = .sdata2:0x801D6380; // type:object size:0x4 scope:local data:float +lbl_801D6384 = .sdata2:0x801D6384; // type:object size:0x4 scope:local data:float +lbl_801D6388 = .sdata2:0x801D6388; // type:object size:0x4 scope:local data:float +lbl_801D638C = .sdata2:0x801D638C; // type:object size:0x4 scope:local data:float lbl_801D6390 = .sdata2:0x801D6390; // type:object size:0x4 data:float lbl_801D6394 = .sdata2:0x801D6394; // type:object size:0x4 data:float lbl_801D6398 = .sdata2:0x801D6398; // type:object size:0x8 data:double diff --git a/configure.py b/configure.py index 67f32c23..cc6076bf 100644 --- a/configure.py +++ b/configure.py @@ -484,11 +484,11 @@ config.libs = [ "mtx", [ Object(NonMatching, "dolphin/mtx/mtx.c"), - Object(NonMatching, "dolphin/mtx/mtxvec.c"), - Object(NonMatching, "dolphin/mtx/mtx44.c"), + Object(Matching, "dolphin/mtx/mtxvec.c"), + Object(Matching, "dolphin/mtx/mtx44.c"), Object(NonMatching, "dolphin/mtx/vec.c"), Object(NonMatching, "dolphin/mtx/quat.c"), - Object(NonMatching, "dolphin/mtx/psmtx.c"), + Object(Matching, "dolphin/mtx/psmtx.c"), ], ), DolphinLib( @@ -521,7 +521,7 @@ config.libs = [ "pad", [ Object(NonMatching, "dolphin/pad/Padclamp.c"), - Object(NonMatching, "dolphin/pad/Pad.c"), + Object(Matching, "dolphin/pad/Pad.c"), ], ), DolphinLib( diff --git a/src/dolphin/mtx/mtx.c b/src/dolphin/mtx/mtx.c new file mode 100644 index 00000000..a8f2bb06 --- /dev/null +++ b/src/dolphin/mtx/mtx.c @@ -0,0 +1,1315 @@ +#include "dolphin/mtx.h" + +static f32 Unit01[] = { 0.0f, 1.0f }; + +extern f32 sinf(f32); + +void C_MTXIdentity(Mtx mtx) +{ + mtx[0][0] = 1.0f; + mtx[0][1] = 0.0f; + mtx[0][2] = 0.0f; + mtx[1][0] = 0.0f; + mtx[1][1] = 1.0f; + mtx[1][2] = 0.0f; + mtx[2][0] = 0.0f; + mtx[2][1] = 0.0f; + mtx[2][2] = 1.0f; +} + +#ifdef GEKKO +void PSMTXIdentity(register Mtx m) +{ + register f32 zero_c = 0.0f; + register f32 one_c = 1.0f; + register f32 c_01; + register f32 c_10; + // clang-format off + asm { + psq_st zero_c, 8(m), 0, 0 + ps_merge01 c_01, zero_c, one_c + psq_st zero_c, 24(m), 0, 0 + ps_merge10 c_10, one_c, zero_c + psq_st zero_c, 32(m), 0, 0 + psq_st c_01, 16(m), 0, 0 + psq_st c_10, 0(m), 0, 0 + psq_st c_10, 40(m), 0, 0 + } + // clang-format on +} +#endif + +void C_MTXCopy(const Mtx src, Mtx dst) +{ + + if (src == dst) { + return; + } + + dst[0][0] = src[0][0]; + dst[0][1] = src[0][1]; + dst[0][2] = src[0][2]; + dst[0][3] = src[0][3]; + + dst[1][0] = src[1][0]; + dst[1][1] = src[1][1]; + dst[1][2] = src[1][2]; + dst[1][3] = src[1][3]; + + dst[2][0] = src[2][0]; + dst[2][1] = src[2][1]; + dst[2][2] = src[2][2]; + dst[2][3] = src[2][3]; +} + +#ifdef GEKKO +asm void PSMTXCopy(const register Mtx src, register Mtx dst) +{ + // clang-format off + nofralloc + + psq_l fp0, 0(src), 0, 0 + psq_st fp0, 0(dst), 0, 0 + psq_l fp1, 8(src), 0, 0 + psq_st fp1, 8(dst), 0, 0 + psq_l fp2, 16(src), 0, 0 + psq_st fp2, 16(dst), 0, 0 + psq_l fp3, 24(src), 0, 0 + psq_st fp3, 24(dst), 0, 0 + psq_l fp4, 32(src), 0, 0 + psq_st fp4, 32(dst), 0, 0 + psq_l fp5, 40(src), 0, 0 + psq_st fp5, 40(dst), 0, 0 + + blr + // clang-format on +} +#endif + +void C_MTXConcat(const Mtx a, const Mtx b, Mtx ab) +{ + Mtx mTmp; + MtxPtr m; + + if ((ab == a) || (ab == b)) { + m = mTmp; + } + + else { + m = ab; + } + + m[0][0] = a[0][0] * b[0][0] + a[0][1] * b[1][0] + a[0][2] * b[2][0]; + m[0][1] = a[0][0] * b[0][1] + a[0][1] * b[1][1] + a[0][2] * b[2][1]; + m[0][2] = a[0][0] * b[0][2] + a[0][1] * b[1][2] + a[0][2] * b[2][2]; + m[0][3] = a[0][0] * b[0][3] + a[0][1] * b[1][3] + a[0][2] * b[2][3] + a[0][3]; + + m[1][0] = a[1][0] * b[0][0] + a[1][1] * b[1][0] + a[1][2] * b[2][0]; + m[1][1] = a[1][0] * b[0][1] + a[1][1] * b[1][1] + a[1][2] * b[2][1]; + m[1][2] = a[1][0] * b[0][2] + a[1][1] * b[1][2] + a[1][2] * b[2][2]; + m[1][3] = a[1][0] * b[0][3] + a[1][1] * b[1][3] + a[1][2] * b[2][3] + a[1][3]; + + m[2][0] = a[2][0] * b[0][0] + a[2][1] * b[1][0] + a[2][2] * b[2][0]; + m[2][1] = a[2][0] * b[0][1] + a[2][1] * b[1][1] + a[2][2] * b[2][1]; + m[2][2] = a[2][0] * b[0][2] + a[2][1] * b[1][2] + a[2][2] * b[2][2]; + m[2][3] = a[2][0] * b[0][3] + a[2][1] * b[1][3] + a[2][2] * b[2][3] + a[2][3]; + + if (m == mTmp) { + C_MTXCopy(mTmp, ab); + } +} + +#ifdef GEKKO +asm void PSMTXConcat(const register Mtx mA, const register Mtx mB, register Mtx mAB) +{ + // clang-format off + nofralloc + +#define FP0 fp0 +#define FP1 fp1 +#define FP2 fp2 +#define FP3 fp3 +#define FP4 fp4 +#define FP5 fp5 +#define FP6 fp6 +#define FP7 fp7 +#define FP8 fp8 +#define FP9 fp9 +#define FP10 fp10 +#define FP11 fp11 +#define FP12 fp12 +#define FP13 fp13 +#define FP14 fp14 +#define FP15 fp15 +#define FP31 fp31 + stwu r1, -64(r1); + psq_l FP0, 0(mA), 0, 0; + stfd fp14, 8(r1); + psq_l FP6, 0(mB), 0, 0; + addis r6, 0, Unit01@ha; + psq_l FP7, 8(mB), 0, 0; + stfd fp15, 16(r1) + addi r6, r6, Unit01@l; + stfd fp31, 40(r1) + psq_l FP8, 16(mB), 0, 0 + ps_muls0 FP12, FP6, FP0 + psq_l FP2, 16(mA), 0, 0 + ps_muls0 FP13, FP7, FP0 + psq_l FP31, 0(r6), 0, 0 + ps_muls0 FP14, FP6, FP2 + psq_l FP9, 24(mB), 0, 0 + ps_muls0 FP15, FP7, FP2 + psq_l FP1, 8(mA), 0, 0 + ps_madds1 FP12, FP8, FP0, FP12 + psq_l FP3, 24(mA), 0, 0 + ps_madds1 FP14, FP8, FP2, FP14 + psq_l FP10, 32(mB), 0, 0 + ps_madds1 FP13, FP9, FP0, FP13 + psq_l FP11, 40(mB), 0, 0 + ps_madds1 FP15, FP9, FP2, FP15 + psq_l FP4, 32(mA), 0, 0 + psq_l FP5, 40(mA), 0, 0 + ps_madds0 FP12, FP10, FP1, FP12 + ps_madds0 FP13, FP11, FP1, FP13 + ps_madds0 FP14, FP10, FP3, FP14 + ps_madds0 FP15, FP11, FP3, FP15 + psq_st FP12, 0(mAB), 0, 0 + + ps_muls0 FP2, FP6, FP4 + ps_madds1 FP13, FP31, FP1, FP13 + ps_muls0 FP0, FP7, FP4 + psq_st FP14, 16(mAB), 0, 0 + ps_madds1 FP15, FP31, FP3, FP15 + + psq_st FP13, 8(mAB), 0, 0 + + ps_madds1 FP2, FP8, FP4, FP2 + ps_madds1 FP0, FP9, FP4, FP0 + ps_madds0 FP2, FP10, FP5, FP2 + lfd fp14, 8(r1) + psq_st FP15, 24(mAB), 0, 0 + ps_madds0 FP0, FP11, FP5, FP0 + psq_st FP2, 32(mAB), 0, 0 + ps_madds1 FP0, FP31, FP5, FP0 + lfd fp15, 16(r1) + psq_st FP0, 40(mAB), 0, 0 + + lfd fp31, 40(r1) + addi r1, r1, 64 + + blr + // clang-format on + +#undef FP0 +#undef FP1 +#undef FP2 +#undef FP3 +#undef FP4 +#undef FP5 +#undef FP6 +#undef FP7 +#undef FP8 +#undef FP9 +#undef FP10 +#undef FP11 +#undef FP12 +#undef FP13 +#undef FP14 +#undef FP15 +#undef FP31 +} +#endif + +void C_MTXConcatArray(const Mtx a, const Mtx *srcBase, Mtx *dstBase, u32 count) +{ + u32 i; + for (i = 0; i < count; i++) { + C_MTXConcat(a, *srcBase, *dstBase); + + srcBase++; + dstBase++; + } +} + +#ifdef GEKKO +#if (defined(__MWERKS__) && defined(_DEBUG)) +#pragma global_optimizer on +#pragma optimization_level 1 +#endif + +void PSMTXConcatArray(const register Mtx a, const register Mtx *srcBase, register Mtx *dstBase, register u32 count) +{ + register f32 va0, va1, va2, va3, va4, va5; + register f32 vb0, vb1, vb2, vb3, vb4, vb5; + register f32 vd0, vd1, vd2, vd3, vd4, vd5; + register f32 u01; + register f32 *u01Ptr = Unit01; + + // clang-format off + asm + { + psq_l va0, 0(a), 0, 0 + psq_l va1, 8(a), 0, 0 + psq_l va2, 16(a), 0, 0 + psq_l va3, 24(a), 0, 0 + subi count, count, 1 + psq_l va4, 32(a), 0, 0 + psq_l va5, 40(a), 0, 0 + mtctr count + psq_l u01, 0(u01Ptr), 0, 0 + + psq_l vb0, 0(srcBase), 0, 0 + psq_l vb2, 16(srcBase), 0, 0 + + ps_muls0 vd0, vb0, va0 + ps_muls0 vd2, vb0, va2 + ps_muls0 vd4, vb0, va4 + + psq_l vb4, 32(srcBase), 0, 0 + + ps_madds1 vd0, vb2, va0, vd0 + ps_madds1 vd2, vb2, va2, vd2 + ps_madds1 vd4, vb2, va4, vd4 + + psq_l vb1, 8(srcBase), 0, 0 + + ps_madds0 vd0, vb4, va1, vd0 + ps_madds0 vd2, vb4, va3, vd2 + ps_madds0 vd4, vb4, va5, vd4 + + psq_l vb3, 24(srcBase), 0, 0 + psq_st vd0, 0(dstBase), 0, 0 + + ps_muls0 vd1, vb1, va0 + ps_muls0 vd3, vb1, va2 + ps_muls0 vd5, vb1, va4 + + psq_l vb5, 40(srcBase), 0, 0 + psq_st vd2, 16(dstBase), 0, 0 + ps_madds1 vd1, vb3, va0, vd1 + ps_madds1 vd3, vb3, va2, vd3 + ps_madds1 vd5, vb3, va4, vd5 + +_loop: + addi srcBase, srcBase, sizeof(Mtx) + ps_madds0 vd1, vb5, va1, vd1 + ps_madds0 vd3, vb5, va3, vd3 + ps_madds0 vd5, vb5, va5, vd5 + psq_l vb0, 0(srcBase), 0, 0 + psq_st vd4, 32(dstBase), 0, 0 + ps_madd vd1, u01, va1, vd1 + ps_madd vd3, u01, va3, vd3 + ps_madd vd5, u01, va5, vd5 + psq_l vb2, 16(srcBase), 0, 0 + psq_st vd1, 8(dstBase), 0, 0 + ps_muls0 vd0, vb0, va0 + ps_muls0 vd2, vb0, va2 + ps_muls0 vd4, vb0, va4 + psq_l vb4, 32(srcBase), 0, 0 + psq_st vd3, 24(dstBase), 0, 0 + ps_madds1 vd0, vb2, va0, vd0 + ps_madds1 vd2, vb2, va2, vd2 + ps_madds1 vd4, vb2, va4, vd4 + psq_l vb1, 8(srcBase), 0, 0 + psq_st vd5, 40(dstBase), 0, 0 + addi dstBase, dstBase, sizeof(Mtx) + + ps_madds0 vd0, vb4, va1, vd0 + ps_madds0 vd2, vb4, va3, vd2 + ps_madds0 vd4, vb4, va5, vd4 + psq_l vb3, 24(srcBase), 0, 0 + psq_st vd0, 0(dstBase), 0, 0 + ps_muls0 vd1, vb1, va0 + ps_muls0 vd3, vb1, va2 + ps_muls0 vd5, vb1, va4 + psq_l vb5, 40(srcBase), 0, 0 + psq_st vd2, 16(dstBase), 0, 0 + ps_madds1 vd1, vb3, va0, vd1 + ps_madds1 vd3, vb3, va2, vd3 + ps_madds1 vd5, vb3, va4, vd5 + bdnz _loop + psq_st vd4, 32(dstBase), 0, 0 + ps_madds0 vd1, vb5, va1, vd1 + ps_madds0 vd3, vb5, va3, vd3 + ps_madds0 vd5, vb5, va5, vd5 + ps_madd vd1, u01, va1, vd1 + ps_madd vd3, u01, va3, vd3 + ps_madd vd5, u01, va5, vd5 + psq_st vd1, 8(dstBase), 0, 0 + psq_st vd3, 24(dstBase), 0, 0 + psq_st vd5, 40(dstBase), 0, 0 + } + // clang-format on +} + +#if (defined(__MWERKS__) && defined(_DEBUG)) +#pragma optimization_level 0 +#pragma global_optimizer reset +#endif + +#endif + +void C_MTXTranspose(const Mtx src, Mtx xPose) +{ + Mtx mTmp; + MtxPtr m; + + if (src == xPose) { + m = mTmp; + } + else { + m = xPose; + } + + m[0][0] = src[0][0]; + m[0][1] = src[1][0]; + m[0][2] = src[2][0]; + m[0][3] = 0.0f; + m[1][0] = src[0][1]; + m[1][1] = src[1][1]; + m[1][2] = src[2][1]; + m[1][3] = 0.0f; + m[2][0] = src[0][2]; + m[2][1] = src[1][2]; + m[2][2] = src[2][2]; + m[2][3] = 0.0f; + + if (m == mTmp) { + C_MTXCopy(mTmp, xPose); + } +} + +#ifdef GEKKO +void PSMTXTranspose(const register Mtx src, register Mtx xPose) +{ + register f32 c_zero = 0.0F; + register f32 row0a, row1a, row0b, row1b; + register f32 trns0, trns1, trns2; + // clang-format off + asm + { + psq_l row0a, 0(src), 0, 0 + stfs c_zero, 44(xPose) + psq_l row1a, 16(src), 0, 0 + ps_merge00 trns0, row0a, row1a + psq_l row0b, 8(src), 1, 0 + ps_merge11 trns1, row0a, row1a + psq_l row1b, 24(src), 1, 0 + psq_st trns0, 0(xPose), 0, 0 + psq_l row0a, 32(src), 0, 0 + ps_merge00 trns2, row0b, row1b + psq_st trns1, 16(xPose), 0, 0 + ps_merge00 trns0, row0a, c_zero + psq_st trns2, 32(xPose), 0, 0 + ps_merge10 trns1, row0a, c_zero + psq_st trns0, 8(xPose), 0, 0 + lfs row0b, 40(src) + psq_st trns1, 24(xPose), 0, 0 + stfs row0b, 40(xPose) + } + // clang-format on +} +#endif + +u32 C_MTXInverse(const Mtx src, Mtx inv) +{ + Mtx mTmp; + MtxPtr m; + f32 det; + + if (src == inv) { + m = mTmp; + } + else { + m = inv; + } + + det = src[0][0] * src[1][1] * src[2][2] + src[0][1] * src[1][2] * src[2][0] + src[0][2] * src[1][0] * src[2][1] + - src[2][0] * src[1][1] * src[0][2] - src[1][0] * src[0][1] * src[2][2] - src[0][0] * src[2][1] * src[1][2]; + + if (det == 0.0f) { + return 0; + } + + det = 1.0f / det; + + m[0][0] = (src[1][1] * src[2][2] - src[2][1] * src[1][2]) * det; + m[0][1] = -(src[0][1] * src[2][2] - src[2][1] * src[0][2]) * det; + m[0][2] = (src[0][1] * src[1][2] - src[1][1] * src[0][2]) * det; + + m[1][0] = -(src[1][0] * src[2][2] - src[2][0] * src[1][2]) * det; + m[1][1] = (src[0][0] * src[2][2] - src[2][0] * src[0][2]) * det; + m[1][2] = -(src[0][0] * src[1][2] - src[1][0] * src[0][2]) * det; + + m[2][0] = (src[1][0] * src[2][1] - src[2][0] * src[1][1]) * det; + m[2][1] = -(src[0][0] * src[2][1] - src[2][0] * src[0][1]) * det; + m[2][2] = (src[0][0] * src[1][1] - src[1][0] * src[0][1]) * det; + + m[0][3] = -m[0][0] * src[0][3] - m[0][1] * src[1][3] - m[0][2] * src[2][3]; + m[1][3] = -m[1][0] * src[0][3] - m[1][1] * src[1][3] - m[1][2] * src[2][3]; + m[2][3] = -m[2][0] * src[0][3] - m[2][1] * src[1][3] - m[2][2] * src[2][3]; + + if (m == mTmp) { + C_MTXCopy(mTmp, inv); + } + + return 1; +} + +#ifdef GEKKO +asm u32 PSMTXInverse(const register Mtx src, register Mtx inv) { + // clang-format off + nofralloc + + psq_l fp0, 0(src), 1, 0 + psq_l fp1, 4(src), 0, 0 + psq_l fp2, 16(src), 1, 0 + ps_merge10 fp6, fp1, fp0 + psq_l fp3, 20(src), 0, 0 + psq_l fp4, 32(src), 1, 0 + ps_merge10 fp7, fp3, fp2 + psq_l fp5, 36(src), 0, 0 + ps_mul fp11, fp3, fp6 + ps_mul fp13, fp5, fp7 + ps_merge10 fp8, fp5, fp4 + ps_msub fp11, fp1, fp7, fp11 + ps_mul fp12, fp1, fp8 + ps_msub fp13, fp3, fp8, fp13 + ps_mul fp10, fp3, fp4 + ps_msub fp12, fp5, fp6, fp12 + ps_mul fp9, fp0, fp5 + ps_mul fp8, fp1, fp2 + ps_sub fp6, fp6, fp6 + ps_msub fp10, fp2, fp5, fp10 + ps_mul fp7, fp0, fp13 + ps_msub fp9, fp1, fp4, fp9 + ps_madd fp7, fp2, fp12, fp7 + ps_msub fp8, fp0, fp3, fp8 + ps_madd fp7, fp4, fp11, fp7 + ps_cmpo0 cr0, fp7, fp6 + bne _regular + addi r3, 0, 0 + blr + +_regular: + fres fp0, fp7 + ps_add fp6, fp0, fp0 + ps_mul fp5, fp0, fp0 + ps_nmsub fp0, fp7, fp5, fp6 + lfs fp1, 12(src) + ps_muls0 fp13, fp13, fp0 + lfs fp2, 28(src) + ps_muls0 fp12, fp12, fp0 + lfs fp3, 44(src) + ps_muls0 fp11, fp11, fp0 + ps_merge00 fp5, fp13, fp12 + ps_muls0 fp10, fp10, fp0 + ps_merge11 fp4, fp13, fp12 + ps_muls0 fp9, fp9, fp0 + psq_st fp5, 0(inv), 0, 0 + ps_mul fp6, fp13, fp1 + psq_st fp4, 16(inv), 0, 0 + ps_muls0 fp8, fp8, fp0 + ps_madd fp6, fp12, fp2, fp6 + psq_st fp10, 32(inv), 1, 0 + ps_nmadd fp6, fp11, fp3, fp6 + psq_st fp9, 36(inv), 1, 0 + ps_mul fp7, fp10, fp1 + ps_merge00 fp5, fp11, fp6 + psq_st fp8, 40(inv), 1, 0 + ps_merge11 fp4, fp11, fp6 + psq_st fp5, 8(inv), 0, 0 + ps_madd fp7, fp9, fp2, fp7 + psq_st fp4, 24(inv), 0, 0 + ps_nmadd fp7, fp8, fp3, fp7 + addi r3, 0, 1 + psq_st fp7, 44(inv), 1, 0 + blr + // clang-format on +} +#endif + +u32 C_MTXInvXpose(const Mtx src, Mtx invX) +{ + Mtx mTmp; + MtxPtr m; + f32 det; + + if (src == invX) { + m = mTmp; + } + else { + m = invX; + } + + det = src[0][0] * src[1][1] * src[2][2] + src[0][1] * src[1][2] * src[2][0] + src[0][2] * src[1][0] * src[2][1] + - src[2][0] * src[1][1] * src[0][2] - src[1][0] * src[0][1] * src[2][2] - src[0][0] * src[2][1] * src[1][2]; + + if (det == 0.0f) { + return 0; + } + + det = 1.0f / det; + + m[0][0] = (src[1][1] * src[2][2] - src[2][1] * src[1][2]) * det; + m[0][1] = -(src[1][0] * src[2][2] - src[2][0] * src[1][2]) * det; + m[0][2] = (src[1][0] * src[2][1] - src[2][0] * src[1][1]) * det; + + m[1][0] = -(src[0][1] * src[2][2] - src[2][1] * src[0][2]) * det; + m[1][1] = (src[0][0] * src[2][2] - src[2][0] * src[0][2]) * det; + m[1][2] = -(src[0][0] * src[2][1] - src[2][0] * src[0][1]) * det; + + m[2][0] = (src[0][1] * src[1][2] - src[1][1] * src[0][2]) * det; + m[2][1] = -(src[0][0] * src[1][2] - src[1][0] * src[0][2]) * det; + m[2][2] = (src[0][0] * src[1][1] - src[1][0] * src[0][1]) * det; + + m[0][3] = 0.0F; + m[1][3] = 0.0F; + m[2][3] = 0.0F; + + if (m == mTmp) { + C_MTXCopy(mTmp, invX); + } + + return 1; +} + +#ifdef GEKKO +asm u32 PSMTXInvXpose(const register Mtx src, register Mtx invX) +{ + // clang-format off + nofralloc + + psq_l fp0, 0(src), 1, 0 + psq_l fp1, 4(src), 0, 0 + psq_l fp2, 16(src), 1, 0 + ps_merge10 fp6, fp1, fp0 + psq_l fp3, 20(src), 0, 0 + psq_l fp4, 32(src), 1, 0 + ps_merge10 fp7, fp3, fp2 + psq_l fp5, 36(src), 0, 0 + ps_mul fp11, fp3, fp6 + ps_merge10 fp8, fp5, fp4 + ps_mul fp13, fp5, fp7 + ps_msub fp11, fp1, fp7, fp11 + ps_mul fp12, fp1, fp8 + ps_msub fp13, fp3, fp8, fp13 + ps_msub fp12, fp5, fp6, fp12 + ps_mul fp10, fp3, fp4 + ps_mul fp9, fp0, fp5 + ps_mul fp8, fp1, fp2 + ps_msub fp10, fp2, fp5, fp10 + ps_msub fp9, fp1, fp4, fp9 + ps_msub fp8, fp0, fp3, fp8 + ps_mul fp7, fp0, fp13 + ps_sub fp1, fp1, fp1 + ps_madd fp7, fp2, fp12, fp7 + ps_madd fp7, fp4, fp11, fp7 + ps_cmpo0 cr0, fp7, fp1 + bne _regular + addi r3, 0, 0 + blr + +_regular: + fres fp0, fp7 + psq_st fp1, 12(invX), 1, 0 + ps_add fp6, fp0, fp0 + ps_mul fp5, fp0, fp0 + psq_st fp1, 28(invX), 1, 0 + ps_nmsub fp0, fp7, fp5, fp6 + psq_st fp1, 44(invX), 1, 0 + ps_muls0 fp13, fp13, fp0 + ps_muls0 fp12, fp12, fp0 + ps_muls0 fp11, fp11, fp0 + psq_st fp13, 0(invX), 0, 0 + psq_st fp12, 16(invX), 0, 0 + ps_muls0 fp10, fp10, fp0 + ps_muls0 fp9, fp9, fp0 + psq_st fp11, 32(invX), 0, 0 + psq_st fp10, 8(invX), 1, 0 + ps_muls0 fp8, fp8, fp0 + addi r3, 0, 1 + psq_st fp9, 24(invX), 1, 0 + psq_st fp8, 40(invX), 1, 0 + blr + // clang-format on +} +#endif + +void C_MTXRotRad(Mtx m, char axis, f32 rad) +{ + + f32 sinA, cosA; + sinA = sinf(rad); + cosA = cosf(rad); + C_MTXRotTrig(m, axis, sinA, cosA); +} + +#ifdef GEKKO +void PSMTXRotRad(Mtx m, char axis, f32 rad) +{ + // f32 sinA, cosA; + + // sinA = sinf(rad); + // cosA = cosf(rad); + + // PSMTXRotTrig(m, axis, sinA, cosA); +} +#endif + +void C_MTXRotTrig(Mtx m, char axis, f32 sinA, f32 cosA) +{ + switch (axis) { + + case 'x': + case 'X': + m[0][0] = 1.0f; + m[0][1] = 0.0f; + m[0][2] = 0.0f; + m[0][3] = 0.0f; + m[1][0] = 0.0f; + m[1][1] = cosA; + m[1][2] = -sinA; + m[1][3] = 0.0f; + m[2][0] = 0.0f; + m[2][1] = sinA; + m[2][2] = cosA; + m[2][3] = 0.0f; + break; + + case 'y': + case 'Y': + m[0][0] = cosA; + m[0][1] = 0.0f; + m[0][2] = sinA; + m[0][3] = 0.0f; + m[1][0] = 0.0f; + m[1][1] = 1.0f; + m[1][2] = 0.0f; + m[1][3] = 0.0f; + m[2][0] = -sinA; + m[2][1] = 0.0f; + m[2][2] = cosA; + m[2][3] = 0.0f; + break; + + case 'z': + case 'Z': + m[0][0] = cosA; + m[0][1] = -sinA; + m[0][2] = 0.0f; + m[0][3] = 0.0f; + m[1][0] = sinA; + m[1][1] = cosA; + m[1][2] = 0.0f; + m[1][3] = 0.0f; + m[2][0] = 0.0f; + m[2][1] = 0.0f; + m[2][2] = 1.0f; + m[2][3] = 0.0f; + break; + + default: + break; + } +} + +#ifdef GEKKO +void PSMTXRotTrig(register Mtx m, register char axis, register f32 sinA, register f32 cosA) +{ +// register f32 fc0, fc1, nsinA; +// register f32 fw0, fw1, fw2, fw3; +// // clang-format off +// asm +// { +// frsp sinA, sinA +// frsp cosA, cosA +// } + +// fc0 = 0.0F; +// fc1 = 1.0F; +// asm +// { +// ori axis, axis, 0x20 +// ps_neg nsinA, sinA +// cmplwi axis, 'x' +// beq _case_x +// cmplwi axis, 'y' +// beq _case_y +// cmplwi axis, 'z' +// beq _case_z +// b _end + +// _case_x: +// psq_st fc1, 0(m), 1, 0 +// psq_st fc0, 4(m), 0, 0 +// ps_merge00 fw0, sinA, cosA +// psq_st fc0, 12(m), 0, 0 +// ps_merge00 fw1, cosA, nsinA +// psq_st fc0, 28(m), 0, 0 +// psq_st fc0, 44(m), 1, 0 +// psq_st fw0, 36(m), 0, 0 +// psq_st fw1, 20(m), 0, 0 +// b _end; + +// _case_y: +// ps_merge00 fw0, cosA, fc0 +// ps_merge00 fw1, fc0, fc1 +// psq_st fc0, 24(m), 0, 0 +// psq_st fw0, 0(m), 0, 0 +// ps_merge00 fw2, nsinA, fc0 +// ps_merge00 fw3, sinA, fc0 +// psq_st fw0, 40(m), 0, 0; +// psq_st fw1, 16(m), 0, 0; +// psq_st fw3, 8(m), 0, 0; +// psq_st fw2, 32(m), 0, 0; +// b _end; + +// _case_z: +// psq_st fc0, 8(m), 0, 0 +// ps_merge00 fw0, sinA, cosA +// ps_merge00 fw2, cosA, nsinA +// psq_st fc0, 24(m), 0, 0 +// psq_st fc0, 32(m), 0, 0 +// ps_merge00 fw1, fc1, fc0 +// psq_st fw0, 16(m), 0, 0 +// psq_st fw2, 0(m), 0, 0 +// psq_st fw1, 40(m), 0, 0 + +// _end: +// } +// // clang-format on +} + +#endif + +void C_MTXRotAxisRad(Mtx m, const Vec *axis, f32 rad) +{ + Vec vN; + f32 s, c; + f32 t; + f32 x, y, z; + f32 xSq, ySq, zSq; + + s = sinf(rad); + c = cosf(rad); + t = 1.0f - c; + + C_VECNormalize(axis, &vN); + + x = vN.x; + y = vN.y; + z = vN.z; + + xSq = x * x; + ySq = y * y; + zSq = z * z; + + m[0][0] = (t * xSq) + (c); + m[0][1] = (t * x * y) - (s * z); + m[0][2] = (t * x * z) + (s * y); + m[0][3] = 0.0f; + + m[1][0] = (t * x * y) + (s * z); + m[1][1] = (t * ySq) + (c); + m[1][2] = (t * y * z) - (s * x); + m[1][3] = 0.0f; + + m[2][0] = (t * x * z) - (s * y); + m[2][1] = (t * y * z) + (s * x); + m[2][2] = (t * zSq) + (c); + m[2][3] = 0.0f; +} + +#ifdef GEKKO +static void __PSMTXRotAxisRadInternal(register Mtx m, const register Vec *axis, register f32 sT, register f32 cT) +{ + register f32 tT, fc0; + register f32 tmp0, tmp1, tmp2, tmp3, tmp4; + register f32 tmp5, tmp6, tmp7, tmp8, tmp9; + + tmp9 = 0.5F; + tmp8 = 3.0F; + // clang-format off + asm + { + frsp cT, cT + psq_l tmp0, 0(axis), 0, 0 + frsp sT, sT + lfs tmp1, 8(axis) + ps_mul tmp2, tmp0, tmp0 + fadds tmp7, tmp9, tmp9 + ps_madd tmp3, tmp1, tmp1, tmp2 + fsubs fc0, tmp9, tmp9 + ps_sum0 tmp4, tmp3, tmp1, tmp2 + fsubs tT, tmp7, cT + frsqrte tmp5, tmp4 + fmuls tmp2, tmp5, tmp5 + fmuls tmp3, tmp5, tmp9 + fnmsubs tmp2, tmp2, tmp4, tmp8 + fmuls tmp5, tmp2, tmp3 + ps_merge00 cT, cT, cT + ps_muls0 tmp0, tmp0, tmp5 + ps_muls0 tmp1, tmp1, tmp5 + ps_muls0 tmp4, tmp0, tT + ps_muls0 tmp9, tmp0, sT + ps_muls0 tmp5, tmp1, tT + ps_muls1 tmp3, tmp4, tmp0 + ps_muls0 tmp2, tmp4, tmp0 + ps_muls0 tmp4, tmp4, tmp1 + fnmsubs tmp6, tmp1, sT, tmp3 + fmadds tmp7, tmp1, sT, tmp3 + ps_neg tmp0, tmp9 + ps_sum0 tmp8, tmp4, fc0, tmp9 + ps_sum0 tmp2, tmp2, tmp6, cT + ps_sum1 tmp3, cT, tmp7, tmp3 + ps_sum0 tmp6, tmp0, fc0 ,tmp4 + psq_st tmp8, 8(m), 0, 0 + ps_sum0 tmp0, tmp4, tmp4, tmp0 + psq_st tmp2, 0(m), 0, 0 + ps_muls0 tmp5, tmp5, tmp1 + psq_st tmp3, 16(m), 0, 0 + ps_sum1 tmp4, tmp9, tmp0, tmp4 + psq_st tmp6, 24(m), 0, 0 + ps_sum0 tmp5, tmp5, fc0, cT + psq_st tmp4, 32(m), 0, 0 + psq_st tmp5, 40(m), 0, 0 + } + // clang-format on +} + +void PSMTXRotAxisRad(Mtx m, const Vec *axis, f32 rad) +{ + // f32 sinT, cosT; + + // sinT = sinf(rad); + // cosT = cosf(rad); + + // __PSMTXRotAxisRadInternal(m, axis, sinT, cosT); +} + +#endif + +void C_MTXTrans(Mtx m, f32 xT, f32 yT, f32 zT) +{ + m[0][0] = 1.0f; + m[0][1] = 0.0f; + m[0][2] = 0.0f; + m[0][3] = xT; + m[1][0] = 0.0f; + m[1][1] = 1.0f; + m[1][2] = 0.0f; + m[1][3] = yT; + m[2][0] = 0.0f; + m[2][1] = 0.0f; + m[2][2] = 1.0f; + m[2][3] = zT; +} + +#ifdef GEKKO +void PSMTXTrans(register Mtx m, register f32 xT, register f32 yT, register f32 zT) +{ + register f32 c0 = 0.0F; + register f32 c1 = 1.0F; + // clang-format off + asm + { + stfs xT, 12(m) + stfs yT, 28(m) + psq_st c0, 4(m), 0, 0 + psq_st c0, 32(m), 0, 0 + stfs c0, 16(m) + stfs c1, 20(m) + stfs c0, 24(m) + stfs c1, 40(m) + stfs zT, 44(m) + stfs c1, 0(m) + } + // clang-format on +} +#endif + +void C_MTXTransApply(const Mtx src, Mtx dst, f32 xT, f32 yT, f32 zT) +{ + if (src != dst) { + dst[0][0] = src[0][0]; + dst[0][1] = src[0][1]; + dst[0][2] = src[0][2]; + dst[1][0] = src[1][0]; + dst[1][1] = src[1][1]; + dst[1][2] = src[1][2]; + dst[2][0] = src[2][0]; + dst[2][1] = src[2][1]; + dst[2][2] = src[2][2]; + } + + dst[0][3] = src[0][3] + xT; + dst[1][3] = src[1][3] + yT; + dst[2][3] = src[2][3] + zT; +} + +#ifdef GEKKO +asm void PSMTXTransApply(const register Mtx src, register Mtx dst, register f32 xT, register f32 yT, register f32 zT) +{ + // clang-format off + nofralloc; + psq_l fp4, 0(src), 0, 0 + frsp xT, xT + psq_l fp5, 8(src), 0, 0 + frsp yT, yT + psq_l fp7, 24(src), 0, 0 + frsp zT, zT + psq_l fp8, 40(src), 0, 0 + psq_st fp4, 0(dst), 0, 0 + ps_sum1 fp5, xT, fp5, fp5 + psq_l fp6, 16(src), 0, 0 + psq_st fp5, 8(dst), 0, 0 + ps_sum1 fp7, yT, fp7, fp7 + psq_l fp9, 32(src), 0, 0 + psq_st fp6, 16(dst), 0, 0 + ps_sum1 fp8, zT, fp8, fp8 + psq_st fp7, 24(dst), 0, 0 + psq_st fp9, 32(dst), 0, 0 + psq_st fp8, 40(dst), 0, 0 + blr + // clang-format on +} +#endif + +void C_MTXScale(Mtx m, f32 xS, f32 yS, f32 zS) +{ + m[0][0] = xS; + m[0][1] = 0.0f; + m[0][2] = 0.0f; + m[0][3] = 0.0f; + m[1][0] = 0.0f; + m[1][1] = yS; + m[1][2] = 0.0f; + m[1][3] = 0.0f; + m[2][0] = 0.0f; + m[2][1] = 0.0f; + m[2][2] = zS; + m[2][3] = 0.0f; +} + +#ifdef GEKKO +void PSMTXScale(register Mtx m, register f32 xS, register f32 yS, register f32 zS) +{ + register f32 c0 = 0.0F; + // clang-format off + asm + { + stfs xS, 0(m) + psq_st c0, 4(m), 0, 0 + psq_st c0, 12(m), 0, 0 + stfs yS, 20(m) + psq_st c0, 24(m), 0, 0 + psq_st c0, 32(m), 0, 0 + stfs zS, 40(m) + stfs c0, 44(m) + } + // clang-format on +} +#endif + +void C_MTXScaleApply(const Mtx src, Mtx dst, f32 xS, f32 yS, f32 zS) +{ + dst[0][0] = src[0][0] * xS; + dst[0][1] = src[0][1] * xS; + dst[0][2] = src[0][2] * xS; + dst[0][3] = src[0][3] * xS; + + dst[1][0] = src[1][0] * yS; + dst[1][1] = src[1][1] * yS; + dst[1][2] = src[1][2] * yS; + dst[1][3] = src[1][3] * yS; + + dst[2][0] = src[2][0] * zS; + dst[2][1] = src[2][1] * zS; + dst[2][2] = src[2][2] * zS; + dst[2][3] = src[2][3] * zS; +} + +#ifdef GEKKO +asm void PSMTXScaleApply(const register Mtx src, register Mtx dst, register f32 xS, register f32 yS, register f32 zS) +{ + // clang-format off + nofralloc; + frsp xS, xS + psq_l fp4, 0(src), 0, 0 + frsp yS, yS + psq_l fp5, 8(src), 0, 0 + frsp zS, zS + ps_muls0 fp4, fp4, xS + psq_l fp6, 16(src), 0, 0 + ps_muls0 fp5, fp5, xS + psq_l fp7, 24(src), 0, 0 + ps_muls0 fp6, fp6, yS + psq_l fp8, 32(src), 0, 0 + psq_st fp4, 0(dst), 0, 0 + ps_muls0 fp7, fp7, yS + psq_l fp2, 40(src), 0, 0 + psq_st fp5, 8(dst), 0, 0 + ps_muls0 fp8, fp8, zS + psq_st fp6, 16(dst), 0, 0 + ps_muls0 fp2, fp2, zS + psq_st fp7, 24(dst), 0, 0 + psq_st fp8, 32(dst), 0, 0 + psq_st fp2, 40(dst), 0, 0 + blr + // clang-format on +} +#endif + +void C_MTXQuat(Mtx m, const Quaternion *q) +{ + + f32 s, xs, ys, zs, wx, wy, wz, xx, xy, xz, yy, yz, zz; + s = 2.0f / ((q->x * q->x) + (q->y * q->y) + (q->z * q->z) + (q->w * q->w)); + + xs = q->x * s; + ys = q->y * s; + zs = q->z * s; + wx = q->w * xs; + wy = q->w * ys; + wz = q->w * zs; + xx = q->x * xs; + xy = q->x * ys; + xz = q->x * zs; + yy = q->y * ys; + yz = q->y * zs; + zz = q->z * zs; + + m[0][0] = 1.0f - (yy + zz); + m[0][1] = xy - wz; + m[0][2] = xz + wy; + m[0][3] = 0.0f; + + m[1][0] = xy + wz; + m[1][1] = 1.0f - (xx + zz); + m[1][2] = yz - wx; + m[1][3] = 0.0f; + + m[2][0] = xz - wy; + m[2][1] = yz + wx; + m[2][2] = 1.0f - (xx + yy); + m[2][3] = 0.0f; +} + +#ifdef GEKKO +void PSMTXQuat(register Mtx m, const register Quaternion *q) +{ + register f32 c_zero, c_one, c_two, scale; + register f32 tmp0, tmp1, tmp2, tmp3, tmp4; + register f32 tmp5, tmp6, tmp7, tmp8, tmp9; + + c_one = 1.0F; + // clang-format off + asm + { + psq_l tmp0, 0(q), 0, 0 + psq_l tmp1, 8(q), 0, 0 + fsubs c_zero, c_one, c_one + fadds c_two, c_one, c_one + ps_mul tmp2, tmp0, tmp0 + ps_merge10 tmp5, tmp0, tmp0 + ps_madd tmp4, tmp1, tmp1, tmp2 + ps_mul tmp3, tmp1, tmp1 + ps_sum0 scale, tmp4, tmp4, tmp4 + ps_muls1 tmp7, tmp5, tmp1 + fres tmp9, scale + ps_sum1 tmp4, tmp3, tmp4, tmp2 + ps_nmsub scale, scale, tmp9, c_two + ps_muls1 tmp6, tmp1, tmp1 + ps_mul scale, tmp9, scale + ps_sum0 tmp2, tmp2, tmp2, tmp2 + fmuls scale, scale, c_two + ps_madd tmp8, tmp0, tmp5, tmp6 + ps_msub tmp6, tmp0, tmp5, tmp6 + psq_st c_zero, 12(m), 1, 0 + ps_nmsub tmp2, tmp2, scale, c_one + ps_nmsub tmp4, tmp4, scale, c_one + psq_st c_zero, 44(m), 1, 0 + ps_mul tmp8, tmp8, scale + ps_mul tmp6, tmp6, scale + psq_st tmp2, 40(m), 1, 0 + ps_madds0 tmp5, tmp0, tmp1, tmp7 + ps_merge00 tmp1, tmp8, tmp4 + ps_nmsub tmp7, tmp7, c_two, tmp5 + ps_merge10 tmp0, tmp4, tmp6 + psq_st tmp1, 16(m), 0, 0 + ps_mul tmp5, tmp5, scale + ps_mul tmp7, tmp7, scale + psq_st tmp0, 0(m), 0, 0 + psq_st tmp5, 8(m), 1, 0 + ps_merge10 tmp3, tmp7, c_zero + ps_merge01 tmp9, tmp7, tmp5 + psq_st tmp3, 24(m), 0, 0 + psq_st tmp9, 32(m), 0, 0 + } + // clang-format on +} +#endif + +void C_MTXReflect(Mtx m, const Vec *p, const Vec *n) +{ + f32 vxy, vxz, vyz, pdotn; + + vxy = -2.0f * n->x * n->y; + vxz = -2.0f * n->x * n->z; + vyz = -2.0f * n->y * n->z; + pdotn = 2.0f * C_VECDotProduct(p, n); + + m[0][0] = 1.0f - 2.0f * n->x * n->x; + m[0][1] = vxy; + m[0][2] = vxz; + m[0][3] = pdotn * n->x; + + m[1][0] = vxy; + m[1][1] = 1.0f - 2.0f * n->y * n->y; + m[1][2] = vyz; + m[1][3] = pdotn * n->y; + + m[2][0] = vxz; + m[2][1] = vyz; + m[2][2] = 1.0f - 2.0f * n->z * n->z; + m[2][3] = pdotn * n->z; +} + +#ifdef GEKKO +void PSMTXReflect(register Mtx m, const register Vec *p, const register Vec *n) +{ + register f32 c_one = 1.0F; + register f32 vn_xy, vn_z1, n2vn_xy, n2vn_z1, pdotn; + register f32 tmp0, tmp1, tmp2, tmp3; + register f32 tmp4, tmp5, tmp6, tmp7; + // clang-format off + asm + { + psq_l vn_z1, 8(n), 1, 0 + psq_l vn_xy, 0(n), 0, 0 + psq_l tmp0, 0(p), 0, 0 + ps_nmadd n2vn_z1, vn_z1, c_one, vn_z1 + psq_l tmp1, 8(p), 1, 0 + ps_nmadd n2vn_xy, vn_xy, c_one, vn_xy + ps_muls0 tmp4, vn_xy, n2vn_z1 + ps_mul pdotn, n2vn_xy, tmp0 + ps_muls0 tmp2, vn_xy, n2vn_xy + ps_sum0 pdotn, pdotn, pdotn, pdotn + ps_muls1 tmp3, vn_xy, n2vn_xy + psq_st tmp4, 32(m), 0, 0 + ps_sum0 tmp2, tmp2, tmp2, c_one + ps_nmadd pdotn, n2vn_z1, tmp1, pdotn + ps_sum1 tmp3, c_one, tmp3, tmp3 + psq_st tmp2, 0(m), 0, 0 + ps_muls0 tmp5, vn_xy, pdotn + ps_merge00 tmp6, n2vn_z1, pdotn + psq_st tmp3, 16(m), 0, 0 + ps_merge00 tmp7, tmp4, tmp5 + ps_muls0 tmp6, tmp6, vn_z1 + ps_merge11 tmp5, tmp4, tmp5 + psq_st tmp7, 8(m), 0, 0 + ps_sum0 tmp6, tmp6, tmp6, c_one + psq_st tmp5, 24(m), 0, 0 + psq_st tmp6, 40(m), 0, 0 + } + // clang-format on +} +#endif + +void C_MTXLookAt(Mtx m, const Point3d *camPos, const Vec *camUp, const Point3d *target) +{ + // Vec vLook, vRight, vUp; + + // vLook.x = camPos->x - target->x; + // vLook.y = camPos->y - target->y; + // vLook.z = camPos->z - target->z; + // VECNormalize(&vLook, &vLook); + // VECCrossProduct(camUp, &vLook, &vRight); + // VECNormalize(&vRight, &vRight); + // VECCrossProduct(&vLook, &vRight, &vUp); + + // m[0][0] = vRight.x; + // m[0][1] = vRight.y; + // m[0][2] = vRight.z; + // m[0][3] = -(camPos->x * vRight.x + camPos->y * vRight.y + camPos->z * vRight.z); + + // m[1][0] = vUp.x; + // m[1][1] = vUp.y; + // m[1][2] = vUp.z; + // m[1][3] = -(camPos->x * vUp.x + camPos->y * vUp.y + camPos->z * vUp.z); + + // m[2][0] = vLook.x; + // m[2][1] = vLook.y; + // m[2][2] = vLook.z; + // m[2][3] = -(camPos->x * vLook.x + camPos->y * vLook.y + camPos->z * vLook.z); +} + +void C_MTXLightFrustum(Mtx m, float t, float b, float l, float r, float n, float scaleS, float scaleT, float transS, float transT) +{ + f32 tmp; + + tmp = 1.0f / (r - l); + m[0][0] = ((2 * n) * tmp) * scaleS; + m[0][1] = 0.0f; + m[0][2] = (((r + l) * tmp) * scaleS) - transS; + m[0][3] = 0.0f; + + tmp = 1.0f / (t - b); + m[1][0] = 0.0f; + m[1][1] = ((2 * n) * tmp) * scaleT; + m[1][2] = (((t + b) * tmp) * scaleT) - transT; + m[1][3] = 0.0f; + + m[2][0] = 0.0f; + m[2][1] = 0.0f; + m[2][2] = -1.0f; + m[2][3] = 0.0f; +} + +void C_MTXLightPerspective(Mtx m, f32 fovY, f32 aspect, float scaleS, float scaleT, float transS, float transT) +{ + // f32 angle; + // f32 cot; + + // angle = fovY * 0.5f; + // angle = MTXDegToRad(angle); + + // cot = 1.0f / tanf(angle); + + // m[0][0] = (cot / aspect) * scaleS; + // m[0][1] = 0.0f; + // m[0][2] = -transS; + // m[0][3] = 0.0f; + + // m[1][0] = 0.0f; + // m[1][1] = cot * scaleT; + // m[1][2] = -transT; + // m[1][3] = 0.0f; + + // m[2][0] = 0.0f; + // m[2][1] = 0.0f; + // m[2][2] = -1.0f; + // m[2][3] = 0.0f; +} + +void C_MTXLightOrtho(Mtx m, f32 t, f32 b, f32 l, f32 r, float scaleS, float scaleT, float transS, float transT) +{ + f32 tmp; + tmp = 1.0f / (r - l); + m[0][0] = (2.0f * tmp * scaleS); + m[0][1] = 0.0f; + m[0][2] = 0.0f; + m[0][3] = ((-(r + l) * tmp) * scaleS) + transS; + + tmp = 1.0f / (t - b); + m[1][0] = 0.0f; + m[1][1] = (2.0f * tmp) * scaleT; + m[1][2] = 0.0f; + m[1][3] = ((-(t + b) * tmp) * scaleT) + transT; + + m[2][0] = 0.0f; + m[2][1] = 0.0f; + m[2][2] = 0.0f; + m[2][3] = 1.0f; +} diff --git a/src/dolphin/mtx/mtx44.c b/src/dolphin/mtx/mtx44.c new file mode 100644 index 00000000..a6c2faa9 --- /dev/null +++ b/src/dolphin/mtx/mtx44.c @@ -0,0 +1,99 @@ +#include "dolphin/mtx.h" +#include "math.h" + +void C_MTXFrustum(Mtx44 m, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6) +{ + f32 tmp = 1.0f / (arg4 - arg3); + m[0][0] = (2 * arg5) * tmp; + m[0][1] = 0.0f; + m[0][2] = (arg4 + arg3) * tmp; + m[0][3] = 0.0f; + tmp = 1.0f / (arg1 - arg2); + m[1][0] = 0.0f; + m[1][1] = (2 * arg5) * tmp; + m[1][2] = (arg1 + arg2) * tmp; + m[1][3] = 0.0f; + m[2][0] = 0.0f; + m[2][1] = 0.0f; + tmp = 1.0f / (arg6 - arg5); + m[2][2] = -(arg5)*tmp; + m[2][3] = -(arg6 * arg5) * tmp; + m[3][0] = 0.0f; + m[3][1] = 0.0f; + m[3][2] = -1.0f; + m[3][3] = 0.0f; +} + +// Functions match but has issues with float constants +void C_MTXPerspective(Mtx44 m, f32 fovY, f32 aspect, f32 n, f32 f) +{ + f32 angle = fovY * 0.5f; + f32 cot; + f32 tmp; + angle = MTXDegToRad(angle); + cot = 1.0f / tanf(angle); + m[0][0] = cot / aspect; + m[0][1] = 0.0f; + m[0][2] = 0.0f; + m[0][3] = 0.0f; + m[1][0] = 0.0f; + m[1][1] = cot; + m[1][2] = 0.0f; + m[1][3] = 0.0f; + m[2][0] = 0.0f; + m[2][1] = 0.0f; + tmp = 1.0f / (f - n); + m[2][2] = -(n)*tmp; + m[2][3] = -(f * n) * tmp; + m[3][0] = 0.0f; + m[3][1] = 0.0f; + m[3][2] = -1.0f; + m[3][3] = 0.0f; +} + +void C_MTXOrtho(Mtx44 m, f32 t, f32 b, f32 l, f32 r, f32 n, f32 f) +{ + f32 tmp = 1.0f / (r - l); + m[0][0] = 2.0f * tmp; + m[0][1] = 0.0f; + m[0][2] = 0.0f; + m[0][3] = -(r + l) * tmp; + tmp = 1.0f / (t - b); + m[1][0] = 0.0f; + m[1][1] = 2.0f * tmp; + m[1][2] = 0.0f; + m[1][3] = -(t + b) * tmp; + m[2][0] = 0.0f; + m[2][1] = 0.0f; + tmp = 1.0f / (f - n); + m[2][2] = -(1.0f) * tmp; + m[2][3] = -(f)*tmp; + m[3][0] = 0.0f; + m[3][1] = 0.0f; + m[3][2] = 0.0f; + m[3][3] = 1.0f; +} + +asm void PSMTX44Copy(register Mtx44 src, register Mtx44 dest) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc; + psq_l fp1, 0(src), 0, 0; + psq_st fp1, 0(dest), 0, 0; + psq_l fp1, 8(src), 0, 0; + psq_st fp1, 8(dest), 0, 0; + psq_l fp1, 0x10(src), 0, 0; + psq_st fp1, 0x10(dest), 0, 0; + psq_l fp1, 0x18(src), 0, 0; + psq_st fp1, 0x18(dest), 0, 0; + psq_l fp1, 0x20(src), 0, 0; + psq_st fp1, 0x20(dest), 0, 0; + psq_l fp1, 0x28(src), 0, 0; + psq_st fp1, 0x28(dest), 0, 0; + psq_l fp1, 0x30(src), 0, 0; + psq_st fp1, 0x30(dest), 0, 0; + psq_l fp1, 0x38(src), 0, 0; + psq_st fp1, 0x38(dest), 0, 0; + blr; +#endif // clang-format on +} diff --git a/src/dolphin/mtx/mtxvec.c b/src/dolphin/mtx/mtxvec.c new file mode 100644 index 00000000..d4e70ab0 --- /dev/null +++ b/src/dolphin/mtx/mtxvec.c @@ -0,0 +1,146 @@ +#include "dolphin/mtx.h" + +asm void PSMTXMultVec(const register Mtx m, const register Vec* in, register Vec* out) { +#ifdef __MWERKS__ // clang-format off + nofralloc; + psq_l fp0, 0(in), 0, 0; + psq_l fp2, 0(m), 0, 0; + psq_l fp1, 8(in), 1, 0; + ps_mul fp4, fp2, fp0; + psq_l fp3, 8(m), 0, 0; + ps_madd fp5, fp3, fp1, fp4; + psq_l fp8, 16(m), 0, 0; + ps_sum0 fp6, fp5, fp6, fp5; + psq_l fp9, 24(m), 0, 0; + ps_mul fp10, fp8, fp0; + psq_st fp6, 0(out), 1, 0; + ps_madd fp11, fp9, fp1, fp10; + psq_l fp2, 32(m), 0, 0; + ps_sum0 fp12, fp11, fp12, fp11; + psq_l fp3, 40(m), 0, 0; + ps_mul fp4, fp2, fp0; + psq_st fp12, 4(out), 1, 0; + ps_madd fp5, fp3, fp1, fp4; + ps_sum0 fp6, fp5, fp6, fp5; + psq_st fp6, 8(out), 1, 0; + blr +#endif // clang-format on +} + +asm void PSMTXMultVecArray(register const Mtx m, register const Vec* srcBase, register Vec* dstBase, + register u32 count) { +#ifdef __MWERKS__ // clang-format off + nofralloc + + psq_l f13, 0(m), 0, 0 + psq_l f12, 16(m), 0, 0 + addi count, count, -1 + psq_l f11, 8(m), 0, 0 + ps_merge00 f0, f13, f12 + addi dstBase, dstBase, -4 + psq_l f10, 24(m), 0, 0 + ps_merge11 f1, f13, f12 + mtctr count + psq_l f4, 32(m), 0, 0 + ps_merge00 f2, f11, f10 + psq_l f5, 40(m), 0, 0 + ps_merge11 f3, f11, f10 + psq_l f6, 0(srcBase), 0, 0 + psq_lu f7, 8(srcBase), 1, 0 + ps_madds0 f8, f0, f6, f3 + ps_mul f9, f4, f6 + ps_madds1 f8, f1, f6, f8 + ps_madd f10, f5, f7, f9 + +lbl_80346E0C: + psq_lu f6, 4(srcBase), 0, 0 + ps_madds0 f12, f2, f7, f8 + psq_lu f7, 8(srcBase), 1, 0 + ps_sum0 f13, f10, f9, f10 + ps_madds0 f8, f0, f6, f3 + ps_mul f9, f4, f6 + psq_stu f12, 4(dstBase), 0, 0 + ps_madds1 f8, f1, f6, f8 + psq_stu f13, 8(dstBase), 1, 0 + ps_madd f10, f5, f7, f9 + bdnz lbl_80346E0C + + ps_madds0 f12, f2, f7, f8 + ps_sum0 f13, f10, f9, f10 + psq_stu f12, 4(dstBase), 0, 0 + psq_stu f13, 8(dstBase), 1, 0 + blr +#endif // clang-format on +} + +asm void PSMTXMultVecSR(const register Mtx mtx, const register Vec* in, register Vec* out) { +#ifdef __MWERKS__ // clang-format off + nofralloc; + psq_l fp0, 0(mtx), 0, 0; + psq_l fp6, 0(in), 0, 0; + psq_l fp2, 0x10(mtx), 0, 0; + ps_mul fp8, fp0, fp6; + psq_l fp4, 0x20(mtx), 0, 0; + ps_mul fp10, fp2, fp6; + psq_l fp7, 8(in), 1, 0; + ps_mul fp12, fp4, fp6; + psq_l fp3, 0x18(mtx), 0, 0; + ps_sum0 fp8, fp8, fp8, fp8; + psq_l fp5, 0x28(mtx), 0, 0; + ps_sum0 fp10, fp10, fp10, fp10; + psq_l fp1, 8(mtx), 0, 0; + ps_sum0 fp12, fp12, fp12, fp12; + ps_madd fp9, fp1, fp7, fp8; + psq_st fp9, 0(out), 1, 0; + ps_madd fp11, fp3, fp7, fp10; + psq_st fp11, 4(out), 1, 0; + ps_madd fp13, fp5, fp7, fp12; + psq_st fp13, 8(out), 1, 0; + blr +#endif // clang-format on +} + +asm void PSMTXMultVecArraySR(register const Mtx m, register const Vec* srcBase, + register Vec* dstBase, register u32 count) { +#ifdef __MWERKS__ // clang-format off + nofralloc + + psq_l f13, 0(m), 0, 0 + psq_l f12, 16(m), 0, 0 + addi count, count, -1 + psq_l f11, 8(m), 1, 0 + ps_merge00 f0, f13, f12 + addi dstBase, dstBase, -4 + psq_l f10, 24(m), 1, 0 + ps_merge11 f1, f13, f12 + mtctr count + psq_l f3, 32(m), 0, 0 + ps_merge00 f2, f11, f10 + psq_l f4, 40(m), 1, 0 + psq_l f6, 0(srcBase), 0, 0 + psq_lu f7, 8(srcBase), 1, 0 + ps_muls0 f8, f0, f6 + ps_mul f9, f3, f6 + ps_madds1 f8, f1, f6, f8 + ps_madd f10, f4, f7, f9 + +lbl_80346EE8: + psq_lu f6, 4(srcBase), 0, 0 + ps_madds0 f12, f2, f7, f8 + psq_lu f7, 8(srcBase), 1, 0 + ps_sum0 f13, f10, f9, f9 + ps_muls0 f8, f0, f6 + ps_mul f9, f3, f6 + psq_stu f12, 4(dstBase), 0, 0 + ps_madds1 f8, f1, f6, f8 + psq_stu f13, 8(dstBase), 1, 0 + ps_madd f10, f4, f7, f9 + bdnz lbl_80346EE8 + + ps_madds0 f12, f2, f7, f8 + ps_sum0 f13, f10, f9, f9 + psq_stu f12, 4(dstBase), 0, 0 + psq_stu f13, 8(dstBase), 1, 0 + blr +#endif // clang-format on +} diff --git a/src/dolphin/mtx/psmtx.c b/src/dolphin/mtx/psmtx.c new file mode 100644 index 00000000..0a6c5276 --- /dev/null +++ b/src/dolphin/mtx/psmtx.c @@ -0,0 +1,355 @@ +#include +#include + +#define qr0 0 +#define qr1 1 +#define qr6 6 + +asm void PSMTXReorder(const register Mtx src, register ROMtx dest) +{ + /* clang-format off */ + psq_l f0, 0(src), 0, qr0 + psq_l f2, 16(src), 0, qr0 + psq_l f4, 32(src), 0, qr0 + psq_l f1, 8(src), 0, qr0 + ps_merge00 f6, f0, f2 + psq_l f3, 24(src), 0, qr0 + ps_merge01 f12, f4, f0 + psq_l f5, 40(src), 0, qr0 + ps_merge11 f7, f2, f4 + psq_st f6, 0(dest), 0, qr0 + ps_merge00 f8, f1, f3 + psq_st f12, 8(dest), 0, qr0 + ps_merge01 f9, f5, f1 + psq_st f7, 16(dest), 0, qr0 + ps_merge11 f10, f3, f5 + psq_st f8, 24(dest), 0, qr0 + psq_st f9, 32(dest), 0, qr0 + psq_st f10, 40(dest), 0, qr0 + /* clang-format on */ +} + +asm void PSMTXROMultVecArray(const register ROMtx m, const register Vec *srcBase, register Vec *dstBase, register u32 count) +{ + /* clang-format off */ + nofralloc + stwu r1, -64(r1) + stfd f14, 8(r1) + subi r7, count, 1 + stfd f15, 16(r1) + srwi r7, r7, 1 + stfd f16, 24(r1) + stfd f17, 32(r1) + stfd f18, 40(r1) + mtctr r7 + psq_l f0, 0(m), 0, qr0 + subi srcBase, srcBase, 8 + psq_l f1, 8(m), 1, qr0 + subi dstBase, dstBase, 4 + psq_l f6, 36(m), 0, qr0 + psq_lu f8, 8(srcBase), 0, qr0 + psq_l f7, 44(m), 1, qr0 + psq_lu f9, 8(srcBase), 0, qr0 + ps_madds0 f11, f0, f8, f6 + psq_l f2, 12(m), 0, qr0 + ps_madds0 f12, f1, f8, f7 + psq_l f3, 20(m), 1, qr0 + ps_madds1 f13, f0, f9, f6 + psq_lu f10, 8(srcBase), 0, qr0 + ps_madds1 f14, f1, f9, f7 + psq_l f5, 32(m), 1, qr0 + ps_madds1 f11, f2, f8, f11 + ps_madds1 f12, f3, f8, f12 + psq_l f4, 24(m), 0, qr0 + ps_madds0 f13, f2, f10, f13 + psq_lu f8, 8(srcBase), 0, qr0 + ps_madds0 f14, f3, f10, f14 + ps_madds0 f15, f4, f9, f11 + ps_madds0 f16, f5, f9, f12 + psq_lu f9, 8(srcBase), 0, qr0 + ps_madds1 f17, f4, f10, f13 + ps_madds1 f18, f5, f10, f14 + psq_lu f10, 8(srcBase), 0, qr0 +loop: + ps_madds0 f11, f0, f8, f6 + psq_stu f15, 4(dstBase), 0, qr0 + ps_madds0 f12, f1, f8, f7 + psq_stu f16, 8(dstBase), 1, qr0 + ps_madds1 f13, f0, f9, f6 + psq_stu f17, 4(dstBase), 0, qr0 + ps_madds1 f14, f1, f9, f7 + psq_stu f18, 8(dstBase), 1, qr0 + ps_madds1 f11, f2, f8, f11 + ps_madds1 f12, f3, f8, f12 + psq_lu f8, 8(srcBase), 0, qr0 + ps_madds0 f13, f2, f10, f13 + ps_madds0 f14, f3, f10, f14 + ps_madds0 f15, f4, f9, f11 + ps_madds0 f16, f5, f9, f12 + psq_lu f9, 8(srcBase), 0, qr0 + ps_madds1 f17, f4, f10, f13 + ps_madds1 f18, f5, f10, f14 + psq_lu f10, 8(srcBase), 0, qr0 + bdnz loop + psq_stu f15, 4(dstBase), 0, qr0 + clrlwi. r7, count, 31 + psq_stu f16, 8(dstBase), 1, qr0 + bne exit + psq_stu f17, 4(dstBase), 0, qr0 + psq_stu f18, 8(dstBase), 1, qr0 +exit: + lfd f14, 8(r1) + lfd f15, 16(r1) + lfd f16, 24(r1) + lfd f17, 32(r1) + lfd f18, 40(r1) + addi r1, r1, 64 + blr + /* clang-format on */ +} + +asm void PSMTXROSkin2VecArray(const register ROMtx m0, const register ROMtx m1, const register f32 *wtBase, const register Vec *srcBase, + register Vec *dstBase, register u32 count) +{ + /* clang-format off */ + nofralloc + stwu r1, -160(r1) + stfd f14, 8(r1) + stfd f15, 16(r1) + stfd f16, 24(r1) + stfd f17, 32(r1) + stfd f18, 40(r1) + stfd f19, 48(r1) + stfd f20, 56(r1) + stfd f21, 64(r1) + stfd f22, 72(r1) + stfd f23, 80(r1) + stfd f24, 88(r1) + stfd f25, 96(r1) + stfd f26, 104(r1) + stfd f27, 112(r1) + stfd f28, 120(r1) + stfd f29, 128(r1) + stfd f30, 136(r1) + subi r9, r8, 1 + mtctr r9 + subi srcBase, srcBase, 4 + subi dstBase, dstBase, 4 + subi wtBase, wtBase, 4 + psq_l f14, 0(m0), 0, qr0 + psq_l f22, 0(m1), 0, qr0 + psq_l f15, 8(m0), 1, qr0 + psq_l f23, 8(m1), 1, qr0 + psq_l f16, 12(m0), 0, qr0 + psq_l f24, 12(m1), 0, qr0 + ps_sub f22, f22, f14 + psq_l f17, 20(m0), 1, qr0 + psq_l f25, 20(m1), 1, qr0 + ps_sub f23, f23, f15 + psq_l f18, 24(m0), 0, qr0 + psq_l f26, 24(m1), 0, qr0 + ps_sub f24, f24, f16 + psq_l f19, 32(m0), 1, qr0 + psq_l f27, 32(m1), 1, qr0 + ps_sub f25, f25, f17 + psq_l f20, 36(m0), 0, qr0 + psq_l f28, 36(m1), 0, qr0 + ps_sub f26, f26, f18 + psq_l f21, 44(m0), 1, qr0 + psq_l f29, 44(m1), 1, qr0 + ps_sub f27, f27, f19 + ps_sub f28, f28, f20 + ps_sub f29, f29, f21 + psq_lu f30, 4(wtBase), 1, qr0 + psq_lu f8, 4(srcBase), 0, qr0 + psq_lu f9, 8(srcBase), 1, qr0 + ps_madds0 f0, f22, f30, f14 + ps_madds0 f1, f23, f30, f15 + ps_madds0 f2, f24, f30, f16 + ps_madds0 f3, f25, f30, f17 + ps_madds0 f4, f26, f30, f18 + ps_madds0 f5, f27, f30, f19 + ps_madds0 f6, f28, f30, f20 + ps_madds0 f7, f29, f30, f21 + ps_madds0 f12, f0, f8, f6 + ps_madds0 f13, f1, f8, f7 + psq_lu f30, 4(wtBase), 1, qr0 +loop: + ps_madds1 f12, f2, f8, f12 + ps_madds1 f13, f3, f8, f13 + psq_lu f8, 4(srcBase), 0, qr0 + ps_madds0 f10, f4, f9, f12 + ps_madds0 f11, f5, f9, f13 + psq_lu f9, 8(srcBase), 1, qr0 + ps_madds0 f0, f22, f30, f14 + ps_madds0 f1, f23, f30, f15 + ps_madds0 f2, f24, f30, f16 + ps_madds0 f3, f25, f30, f17 + ps_madds0 f4, f26, f30, f18 + ps_madds0 f5, f27, f30, f19 + ps_madds0 f6, f28, f30, f20 + ps_madds0 f7, f29, f30, f21 + psq_stu f10, 4(dstBase), 0, qr0 + ps_madds0 f12, f0, f8, f6 + ps_madds0 f13, f1, f8, f7 + psq_stu f11, 8(dstBase), 1, qr0 + psq_lu f30, 4(wtBase), 1, qr0 + bdnz loop + ps_madds1 f12, f2, f8, f12 + ps_madds1 f13, f3, f8, f13 + ps_madds0 f10, f4, f9, f12 + psq_stu f10, 4(dstBase), 0, qr0 + ps_madds0 f11, f5, f9, f13 + psq_stu f11, 8(dstBase), 1, qr0 + lfd f14, 8(r1) + lfd f15, 16(r1) + lfd f16, 24(r1) + lfd f17, 32(r1) + lfd f18, 40(r1) + lfd f19, 48(r1) + lfd f20, 56(r1) + lfd f21, 64(r1) + lfd f22, 72(r1) + lfd f23, 80(r1) + lfd f24, 88(r1) + lfd f25, 96(r1) + lfd f26, 104(r1) + lfd f27, 112(r1) + lfd f28, 120(r1) + lfd f29, 128(r1) + lfd f30, 136(r1) + addi r1, r1, 160 + blr + /* clang-format on */ +} + +asm void PSMTXROMultS16VecArray(const register ROMtx m, const register S16Vec *srcBase, register Vec *dstBase, register u32 count) +{ + /* clang-format off */ + nofralloc + stwu r1, -64(r1) + stfd f14, 8(r1) + subi r7, count, 1 + stfd f15, 16(r1) + srwi r7, r7, 1 + stfd f16, 24(r1) + lis r8, 7 + stfd f17, 32(r1) + mtspr GQR6, r8 + stfd f18, 40(r1) + mtctr r7 + psq_l f0, 0(m), 0, qr0 + subi srcBase, srcBase, 4 + psq_l f1, 8(m), 1, qr0 + subi dstBase, dstBase, 4 + psq_l f6, 36(m), 0, qr0 + psq_lu f8, 4(srcBase), 0, qr6 + psq_l f7, 44(m), 1, qr0 + psq_lu f9, 4(srcBase), 0, qr6 + ps_madds0 f11, f0, f8, f6 + psq_l f2, 12(m), 0, qr0 + ps_madds0 f12, f1, f8, f7 + psq_l f3, 20(m), 1, qr0 + ps_madds1 f13, f0, f9, f6 + psq_lu f10, 4(srcBase), 0, qr6 + ps_madds1 f14, f1, f9, f7 + psq_l f5, 32(m), 1, qr0 + ps_madds1 f11, f2, f8, f11 + ps_madds1 f12, f3, f8, f12 + psq_l f4, 24(m), 0, qr0 + ps_madds0 f13, f2, f10, f13 + psq_lu f8, 4(srcBase), 0, qr6 + ps_madds0 f14, f3, f10, f14 + ps_madds0 f15, f4, f9, f11 + ps_madds0 f16, f5, f9, f12 + psq_lu f9, 4(srcBase), 0, qr6 + ps_madds1 f17, f4, f10, f13 + ps_madds1 f18, f5, f10, f14 + psq_lu f10, 4(srcBase), 0, qr6 +loop: + ps_madds0 f11, f0, f8, f6 + psq_stu f15, 4(dstBase), 0, qr0 + ps_madds0 f12, f1, f8, f7 + psq_stu f16, 8(dstBase), 1, qr0 + ps_madds1 f13, f0, f9, f6 + psq_stu f17, 4(dstBase), 0, qr0 + ps_madds1 f14, f1, f9, f7 + psq_stu f18, 8(dstBase), 1, qr0 + ps_madds1 f11, f2, f8, f11 + ps_madds1 f12, f3, f8, f12 + psq_lu f8, 4(srcBase), 0, qr6 + ps_madds0 f13, f2, f10, f13 + ps_madds0 f14, f3, f10, f14 + ps_madds0 f15, f4, f9, f11 + ps_madds0 f16, f5, f9, f12 + psq_lu f9, 4(srcBase), 0, qr6 + ps_madds1 f17, f4, f10, f13 + ps_madds1 f18, f5, f10, f14 + psq_lu f10, 4(srcBase), 0, qr6 + bdnz loop + psq_stu f15, 4(dstBase), 0, qr0 + clrlwi. r7, count, 31 + psq_stu f16, 8(dstBase), 1, qr0 + bne exit + psq_stu f17, 4(dstBase), 0, qr0 + psq_stu f18, 8(dstBase), 1, qr0 +exit: + lfd f14, 8(r1) + lfd f15, 16(r1) + lfd f16, 24(r1) + lfd f17, 32(r1) + lfd f18, 40(r1) + addi r1, r1, 64 + blr + /* clang-format on */ +} + +asm void PSMTXMultS16VecArray(const register Mtx44 m, const register S16Vec *srcBase, register Vec *dstBase, register u32 count) +{ + /* clang-format off */ + psq_l f0, 0(m), 0, qr0 + lis r7, 7 + mtspr GQR6, r7 + psq_l f6, 0(srcBase), 0, qr6 + subi count, count, 1 + psq_l f7, 4(srcBase), 1, qr6 + mtctr count + psq_l f1, 8(m), 0, qr0 + addi srcBase, srcBase, 4 + psq_l f2, 16(m), 0, qr0 + subi dstBase, dstBase, 4 + psq_l f3, 24(m), 0, qr0 + ps_mul f8, f0, f6 + psq_l f4, 32(m), 0, qr0 + ps_mul f10, f2, f6 + psq_l f5, 40(m), 0, qr0 + ps_mul f12, f4, f6 + psq_lu f6, 2(srcBase), 0, qr1 + ps_madd f8, f1, f7, f8 + ps_madd f10, f3, f7, f10 + ps_madd f12, f5, f7, f12 + psq_lu f7, 4(srcBase), 1, qr6 + ps_sum0 f9, f8, f8, f8 +loop: + ps_sum0 f11, f10, f10, f10 + ps_mul f8, f0, f6 + ps_sum0 f13, f12, f12, f12 + ps_mul f10, f2, f6 + psq_stu f9, 4(dstBase), 1, qr0 + ps_mul f12, f4, f6 + psq_stu f11, 4(dstBase), 1, qr0 + ps_madd f8, f1, f7, f8 + psq_stu f13, 4(dstBase), 1, qr0 + ps_madd f10, f3, f7, f10 + psq_lu f6, 2(srcBase), 0, qr6 + ps_madd f12, f5, f7, f12 + psq_lu f7, 4(srcBase), 1, qr6 + ps_sum0 f9, f8, f8, f8 + bdnz loop + ps_sum0 f11, f10, f10, f10 + ps_sum0 f13, f12, f12, f12 + psq_stu f9, 4(dstBase), 1, qr0 + psq_stu f11, 4(dstBase), 1, qr0 + psq_stu f13, 4(dstBase), 1, qr0 + /* clang-format on */ +} diff --git a/src/dolphin/mtx/quat.c b/src/dolphin/mtx/quat.c new file mode 100644 index 00000000..a874e14c --- /dev/null +++ b/src/dolphin/mtx/quat.c @@ -0,0 +1,80 @@ +#include "dolphin/mtx.h" +#include "math.h" + +void PSQUATMultiply(register const Quaternion *a, register const Quaternion *b, register Quaternion *ab) +{ + asm { + psq_l f0, 0(a), 0, 0 + psq_l f1, 8(a), 0, 0 + psq_l f2, 0(b), 0, 0 + ps_neg f5, f0 + psq_l f3, 8(b), 0, 0 + ps_neg f6, f1 + ps_merge01 f4, f5, f0 + ps_muls0 f7, f1, f2 + ps_muls0 f5, f5, f2 + ps_merge01 f1, f6, f1 + ps_muls1 f8, f4, f2 + ps_madds0 f7, f4, f3, f7 + ps_muls1 f2, f1, f2 + ps_madds0 f5, f1, f3, f5 + ps_madds1 f8, f6, f3, f8 + ps_merge10 f7, f7, f7 + ps_madds1 f2, f0, f3, f2 + ps_merge10 f5, f5, f5 + ps_add f7, f7, f2 + psq_st f7, 0(ab), 0, 0 + ps_sub f5, f5, f8 + psq_st f5, 8(ab), 0, 0 + } +} + +void C_QUATRotAxisRad(Quaternion *q, const Vec *axis, f32 rad) +{ + f32 tmp, tmp2, tmp3; + Vec dst; + + tmp = rad; + PSVECNormalize(axis, &dst); + + tmp2 = tmp * 0.5f; + tmp3 = sinf(tmp * 0.5f); + tmp = tmp3; + tmp3 = cosf(tmp2); + + q->x = tmp * dst.x; + q->y = tmp * dst.y; + q->z = tmp * dst.z; + q->w = tmp3; +} + +void C_QUATSlerp(const Quaternion *p, const Quaternion *q, Quaternion *r, f32 t) +{ + f32 ratioA, ratioB; + + f32 value = 1.0f; + f32 cosHalfTheta = p->x * q->x + p->y * q->y + p->z * q->z + p->w * q->w; + + if (cosHalfTheta < 0.0f) { + cosHalfTheta = -cosHalfTheta; + value = -value; + } + + if (cosHalfTheta <= 0.9999899864196777f) { + f32 halfTheta = acosf(cosHalfTheta); + f32 sinHalfTheta = sinf(halfTheta); + + ratioA = sinf((1.0f - t) * halfTheta) / sinHalfTheta; + ratioB = sinf(t * halfTheta) / sinHalfTheta; + value *= ratioB; + } + else { + ratioA = 1.0f - t; + value *= t; + } + + r->x = (ratioA * p->x) + (value * q->x); + r->y = (ratioA * p->y) + (value * q->y); + r->z = (ratioA * p->z) + (value * q->z); + r->w = (ratioA * p->w) + (value * q->w); +} diff --git a/src/dolphin/mtx/vec.c b/src/dolphin/mtx/vec.c new file mode 100644 index 00000000..985a6196 --- /dev/null +++ b/src/dolphin/mtx/vec.c @@ -0,0 +1,287 @@ +#include "dolphin/mtx.h" +#include "math.h" + +#define R_RET fp1 +#define FP2 fp2 +#define FP3 fp3 +#define FP4 fp4 +#define FP5 fp5 +#define FP6 fp6 +#define FP7 fp7 +#define FP8 fp8 +#define FP9 fp9 +#define FP10 fp10 +#define FP11 fp11 +#define FP12 fp12 +#define FP13 fp13 + +asm void PSVECAdd(const register Vec *vec1, const register Vec *vec2, register Vec *ret) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc; + psq_l FP2, 0(vec1), 0, 0; + psq_l FP4, 0(vec2), 0, 0; + ps_add FP6, FP2, FP4; + psq_st FP6, 0(ret), 0, 0; + psq_l FP3, 8(vec1), 1, 0; + psq_l FP5, 8(vec2), 1, 0; + ps_add FP7, FP3, FP5; + psq_st FP7, 8(ret), 1, 0; + blr +#endif // clang-format on +} + +asm void PSVECSubtract(const register Vec *vec1, const register Vec *vec2, register Vec *ret) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc; + psq_l FP2, 0(vec1), 0, 0; + psq_l FP4, 0(vec2), 0, 0; + ps_sub FP6, FP2, FP4; + psq_st FP6, 0(ret), 0, 0; + psq_l FP3, 8(vec1), 1, 0; + psq_l FP5, 8(vec2), 1, 0; + ps_sub FP7, FP3, FP5; + psq_st FP7, 8(ret), 1, 0; + blr +#endif // clang-format on +} + +asm void PSVECScale(register const Vec *src, register Vec *dst, register f32 scale) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + psq_l f0, 0(src), 0, 0 + psq_l f2, 8(src), 1, 0 + ps_muls0 f0, f0, f1 + psq_st f0, 0(dst), 0, 0 + ps_muls0 f0, f2, f1 + psq_st f0, 8(dst), 1, 0 + blr +#endif // clang-format on +} + +void C_VECScale(const Vec *src, Vec *dst, f32 scale) +{ + f32 s; + + s = 1.0f / sqrtf(src->z * src->z + src->x * src->x + src->y * src->y); + dst->x = src->x * s; + dst->y = src->y * s; + dst->z = src->z * s; +} + +void PSVECNormalize(const register Vec *vec1, register Vec *ret) +{ +#ifdef __MWERKS__ // clang-format off + register f32 half = 0.5f; + register f32 three = 3.0f; + register f32 xx_zz, xx_yy; + register f32 square_sum; + register f32 ret_sqrt; + register f32 n_0, n_1; + asm { + psq_l FP2, 0(vec1), 0, 0; + ps_mul xx_yy, FP2, FP2; + psq_l FP3, 8(vec1), 1, 0; + ps_madd xx_zz, FP3, FP3, xx_yy; + ps_sum0 square_sum, xx_zz, FP3, xx_yy; + frsqrte ret_sqrt, square_sum; + fmuls n_0, ret_sqrt, ret_sqrt; + fmuls n_1, ret_sqrt, half; + fnmsubs n_0, n_0, square_sum, three; + fmuls ret_sqrt, n_0, n_1; + ps_muls0 FP2, FP2, ret_sqrt; + psq_st FP2, 0(ret), 0, 0; + ps_muls0 FP3, FP3, ret_sqrt; + psq_st FP3, 8(ret), 1, 0; + } +#endif // clang-format on +} + +asm f32 PSVECSquareMag(register const Vec *v) { +#ifdef __MWERKS__ // clang-format off + nofralloc + psq_l f0, 0(v), 0, 0 + ps_mul f0, f0, f0 + lfs f1, 8(v) + ps_madd f1, f1, f1, f0 + ps_sum0 f1, f1, f0, f0 + blr +#endif // clang-format on +} + +f32 PSVECMag(const register Vec *v) +{ + register f32 v_xy, v_zz, square_mag; + register f32 ret_mag, n_0, n_1; + register f32 three, half, zero; +#ifdef __MWERKS__ // clang-format off + asm { + psq_l v_xy, 0(v), 0, 0 + ps_mul v_xy, v_xy, v_xy + lfs v_zz, 8(v) + ps_madd square_mag, v_zz, v_zz, v_xy + } +#endif // clang-format on + half = 0.5f; +#ifdef __MWERKS__ // clang-format off + asm { + ps_sum0 square_mag, square_mag, v_xy, v_xy + frsqrte ret_mag, square_mag + } +#endif // clang-format on + three = 3.0f; +#ifdef __MWERKS__ // clang-format off +asm { + fmuls n_0, ret_mag, ret_mag + fmuls n_1, ret_mag, half + fnmsubs n_0, n_0, square_mag, three + fmuls ret_mag, n_0, n_1 + fsel ret_mag, ret_mag, ret_mag, square_mag + fmuls square_mag, square_mag, ret_mag + } +#endif // clang-format on + return square_mag; +} + +asm f32 PSVECDotProduct(const register Vec *vec1, const register Vec *vec2) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc; + psq_l f2, 4(r3), 0, 0 /* qr0 */ + psq_l f3, 4(r4), 0, 0 /* qr0 */ + ps_mul f2, f2, f3 + psq_l f5, 0(r3), 0, 0 /* qr0 */ + psq_l f4, 0(r4), 0, 0 /* qr0 */ + ps_madd f3, f5, f4, f2 + ps_sum0 f1, f3, f2, f2 + blr +#endif // clang-format on +} + +asm void PSVECCrossProduct(register const Vec *a, register const Vec *b, register Vec *axb) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + psq_l f1, 0(b), 0, 0 + lfs f2, 8(a) + psq_l f0, 0(a), 0, 0 + ps_merge10 f6, f1, f1 + lfs f3, 8(b) + ps_mul f4, f1, f2 + ps_muls0 f7, f1, f0 + ps_msub f5, f0, f3, f4 + ps_msub f8, f0, f6, f7 + ps_merge11 f9, f5, f5 + ps_merge01 f10, f5, f8 + psq_st f9, 0(axb), 1, 0 + ps_neg f10, f10 + psq_st f10, 4(axb), 0, 0 + blr +#endif // clang-format on +} + +void C_VECHalfAngle(const Vec *a, const Vec *b, Vec *half) +{ + Vec a0; + Vec b0; + Vec ab; + + a0.x = -a->x; + a0.y = -a->y; + a0.z = -a->z; + + b0.x = -b->x; + b0.y = -b->y; + b0.z = -b->z; + + VECNormalize(&a0, &a0); + VECNormalize(&b0, &b0); + VECAdd(&a0, &b0, &ab); + + if (VECDotProduct(&ab, &ab) > 0.0f) { + VECNormalize(&ab, half); + } + else { + *half = ab; + } +} + +void C_VECReflect(const Vec *src, const Vec *normal, Vec *dst) +{ + // Vec a0; + // Vec b0; + // f32 dot; + + // a0.x = -src->x; + // a0.y = -src->y; + // a0.z = -src->z; + + // VECNormalize(&a0, &a0); + // VECNormalize(normal, &b0); + + // dot = VECDotProduct(&a0, &b0); + // dst->x = b0.x * 2.0f * dot - a0.x; + // dst->y = b0.y * 2.0f * dot - a0.y; + // dst->z = b0.z * 2.0f * dot - a0.z; + + // VECNormalize(dst, dst); +} + +asm f32 PSVECSquareDistance(register const Vec *a, register const Vec *b) { +#ifdef __MWERKS__ // clang-format off + nofralloc + psq_l f0, 4(a), 0, 0 + psq_l f1, 4(b), 0, 0 + ps_sub f2, f0, f1 + psq_l f0, 0(a), 0, 0 + psq_l f1, 0(b), 0, 0 + ps_mul f2, f2, f2 + ps_sub f0, f0, f1 + ps_madd f1, f0, f0, f2 + ps_sum0 f1, f1, f2, f2 + blr +#endif // clang-format on +} + +f32 PSVECDistance(register const Vec *a, register const Vec *b) +{ + + register f32 half_c; + register f32 three_c; + register f32 dist; + +#ifdef __MWERKS__ // clang-format off + asm { + psq_l f0, 4(a), 0, 0 /* qr0 */ + psq_l f1, 4(b), 0, 0 /* qr0 */ + ps_sub f2, f0, f1 + psq_l f0, 0(a), 0, 0 /* qr0 */ + psq_l f1, 0(b), 0, 0 /* qr0 */ + ps_mul f2, f2, f2 + ps_sub f0, f0, f1 + } + + half_c = 0.5f; + + asm { + ps_madd f0, f0, f0, f2 + ps_sum0 f0, f0, f2, f2 + } + + three_c = 3.0f; + + asm { + frsqrte dist, f0 + fmuls f2, dist, dist + fmuls dist, dist, half_c + fnmsubs f2, f2, f0, three_c + fmuls dist, f2, dist + fsel dist, dist, dist, f0 + fmuls dist, f0, dist + } + + return dist; +#endif // clang-format on +} diff --git a/src/dolphin/pad/Pad.c b/src/dolphin/pad/Pad.c new file mode 100644 index 00000000..1852cf0d --- /dev/null +++ b/src/dolphin/pad/Pad.c @@ -0,0 +1,783 @@ +#include +#include + +u8 UnkVal : (OS_BASE_CACHED | 0x30e3); +u16 __OSWirelessPadFixMode : (OS_BASE_CACHED | 0x30E0); + +static void PADTypeAndStatusCallback(s32 chan, u32 type); +static void PADOriginCallback(s32 chan, u32 error, OSContext *context); +static void PADProbeCallback(s32 chan, u32 error, OSContext *context); +static void SPEC0_MakeStatus(s32 chan, PADStatus *status, u32 data[2]); +static void SPEC1_MakeStatus(s32 chan, PADStatus *status, u32 data[2]); +static void SPEC2_MakeStatus(s32 chan, PADStatus *status, u32 data[2]); +static void PADTypeAndStatusCallback(s32 chan, u32 type); + +static void PADOriginCallback(s32 chan, u32 error, OSContext *context); +static void PADProbeCallback(s32 chan, u32 error, OSContext *context); + +static void SPEC0_MakeStatus(s32 chan, PADStatus *status, u32 data[2]); +static void SPEC1_MakeStatus(s32 chan, PADStatus *status, u32 data[2]); +static void SPEC2_MakeStatus(s32 chan, PADStatus *status, u32 data[2]); + +static BOOL Initialized; + +static u32 EnabledBits; +static u32 ResettingBits; +static s32 ResettingChan = 32; +static u32 RecalibrateBits; +static u32 WaitingBits; +static u32 CheckingBits; +static u32 PendingBits; + +static u32 XPatchBits = PAD_CHAN0_BIT | PAD_CHAN1_BIT | PAD_CHAN2_BIT | PAD_CHAN3_BIT; + +static u32 AnalogMode = 0x00000300u; + +u32 __PADSpec; +static u32 Spec = 5; +static void (*MakeStatus)(s32, PADStatus *, u32[2]) = SPEC2_MakeStatus; + +static u32 Type[SI_MAX_CHAN]; +static PADStatus Origin[SI_MAX_CHAN]; + +static u32 CmdReadOrigin = 0x41 << 24; +static u32 CmdCalibrate = 0x42 << 24; +static u32 CmdProbeDevice[SI_MAX_CHAN]; + +static BOOL OnReset(BOOL final); + +static OSResetFunctionInfo ResetFunctionInfo = { OnReset, 127 }; + +static void (*SamplingCallback)(void); + +static void PADEnable(s32 chan) +{ + u32 cmd; + u32 chanBit; + u32 data[2]; + + chanBit = PAD_CHAN0_BIT >> chan; + EnabledBits |= chanBit; + SIGetResponse(chan, data); + cmd = (0x40 << 16) | AnalogMode; + SISetCommand(chan, cmd); + SIEnablePolling(EnabledBits); +} + +static void PADDisable(s32 chan) +{ + BOOL enabled; + u32 chanBit; + + enabled = OSDisableInterrupts(); + + chanBit = PAD_CHAN0_BIT >> chan; + SIDisablePolling(chanBit); + EnabledBits &= ~chanBit; + WaitingBits &= ~chanBit; + CheckingBits &= ~chanBit; + PendingBits &= ~chanBit; + OSSetWirelessID(chan, 0); + + OSRestoreInterrupts(enabled); +} + +static void DoReset(void) +{ + u32 chanBit; + + ResettingChan = __cntlzw(ResettingBits); + if (ResettingChan == 32) { + return; + } + + chanBit = PAD_CHAN0_BIT >> ResettingChan; + ResettingBits &= ~chanBit; + + memset(&Origin[ResettingChan], 0, sizeof(PADStatus)); + SIGetTypeAsync(ResettingChan, PADTypeAndStatusCallback); +} + +static void UpdateOrigin(s32 chan) +{ + PADStatus *origin; + u32 chanBit = PAD_CHAN0_BIT >> chan; + + origin = &Origin[chan]; + switch (AnalogMode & 0x00000700u) { + case 0x00000000u: + case 0x00000500u: + case 0x00000600u: + case 0x00000700u: + origin->triggerL &= ~15; + origin->triggerR &= ~15; + origin->analogA &= ~15; + origin->analogB &= ~15; + break; + case 0x00000100u: + origin->substickX &= ~15; + origin->substickY &= ~15; + origin->analogA &= ~15; + origin->analogB &= ~15; + break; + case 0x00000200u: + origin->substickX &= ~15; + origin->substickY &= ~15; + origin->triggerL &= ~15; + origin->triggerR &= ~15; + break; + case 0x00000300u: + break; + case 0x00000400u: + break; + } + + origin->stickX -= 128; + origin->stickY -= 128; + origin->substickX -= 128; + origin->substickY -= 128; + + if (XPatchBits & chanBit) { + if (64 < origin->stickX && (SIGetType(chan) & 0xffff0000) == SI_GC_CONTROLLER) { + origin->stickX = 0; + } + } +} + +static void PADOriginCallback(s32 chan, u32 error, OSContext *context) +{ + if (!(error & (SI_ERROR_UNDER_RUN | SI_ERROR_OVER_RUN | SI_ERROR_NO_RESPONSE | SI_ERROR_COLLISION))) { + UpdateOrigin(ResettingChan); + PADEnable(ResettingChan); + } + DoReset(); +} + +static void PADOriginUpdateCallback(s32 chan, u32 error, OSContext *context) +{ + + if (!(EnabledBits & (PAD_CHAN0_BIT >> chan))) { + return; + } + + if (!(error & (SI_ERROR_UNDER_RUN | SI_ERROR_OVER_RUN | SI_ERROR_NO_RESPONSE | SI_ERROR_COLLISION))) { + UpdateOrigin(chan); + } + + if (error & SI_ERROR_NO_RESPONSE) { + PADDisable(chan); + } +} + +static void PADProbeCallback(s32 chan, u32 error, OSContext *context) +{ + if (!(error & (SI_ERROR_UNDER_RUN | SI_ERROR_OVER_RUN | SI_ERROR_NO_RESPONSE | SI_ERROR_COLLISION))) { + PADEnable(ResettingChan); + WaitingBits |= PAD_CHAN0_BIT >> ResettingChan; + } + DoReset(); +} + +static void PADTypeAndStatusCallback(s32 chan, u32 type) +{ + u32 chanBit; + u32 recalibrate; + BOOL rc = TRUE; + u32 error; + chanBit = PAD_CHAN0_BIT >> ResettingChan; + error = type & 0xFF; + recalibrate = RecalibrateBits & chanBit; + RecalibrateBits &= ~chanBit; + + if (error & (SI_ERROR_UNDER_RUN | SI_ERROR_OVER_RUN | SI_ERROR_NO_RESPONSE | SI_ERROR_COLLISION)) { + DoReset(); + return; + } + + type &= ~0xFF; + + Type[ResettingChan] = type; + + if ((type & SI_TYPE_MASK) != SI_TYPE_GC || !(type & SI_GC_STANDARD)) { + DoReset(); + return; + } + + if (Spec < PAD_SPEC_2) { + PADEnable(ResettingChan); + DoReset(); + return; + } + + if (!(type & SI_GC_WIRELESS) || (type & SI_WIRELESS_IR)) { + if (recalibrate) { + rc = SITransfer(ResettingChan, &CmdCalibrate, 3, &Origin[ResettingChan], 10, PADOriginCallback, 0); + } + else { + rc = SITransfer(ResettingChan, &CmdReadOrigin, 1, &Origin[ResettingChan], 10, PADOriginCallback, 0); + } + } + else if ((type & SI_WIRELESS_FIX_ID) && (type & SI_WIRELESS_CONT_MASK) == SI_WIRELESS_CONT && !(type & SI_WIRELESS_LITE)) { + if (type & SI_WIRELESS_RECEIVED) { + rc = SITransfer(ResettingChan, &CmdReadOrigin, 1, &Origin[ResettingChan], 10, PADOriginCallback, 0); + } + else { + rc = SITransfer(ResettingChan, &CmdProbeDevice[ResettingChan], 3, &Origin[ResettingChan], 8, PADProbeCallback, 0); + } + } + if (!rc) { + PendingBits |= chanBit; + DoReset(); + return; + } +} + +static void PADReceiveCheckCallback(s32 chan, u32 type) +{ + u32 error; + u32 chanBit; + + chanBit = PAD_CHAN0_BIT >> chan; + if (!(EnabledBits & chanBit)) { + return; + } + + error = type & 0xFF; + type &= ~0xFF; + + WaitingBits &= ~chanBit; + CheckingBits &= ~chanBit; + + if (!(error & (SI_ERROR_UNDER_RUN | SI_ERROR_OVER_RUN | SI_ERROR_NO_RESPONSE | SI_ERROR_COLLISION)) && (type & SI_GC_WIRELESS) + && (type & SI_WIRELESS_FIX_ID) && (type & SI_WIRELESS_RECEIVED) && !(type & SI_WIRELESS_IR) + && (type & SI_WIRELESS_CONT_MASK) == SI_WIRELESS_CONT && !(type & SI_WIRELESS_LITE)) { + SITransfer(chan, &CmdReadOrigin, 1, &Origin[chan], 10, PADOriginUpdateCallback, 0); + } + else { + PADDisable(chan); + } +} + +BOOL PADReset(u32 mask) +{ + BOOL enabled; + u32 diableBits; + + enabled = OSDisableInterrupts(); + + mask |= PendingBits; + PendingBits = 0; + mask &= ~(WaitingBits | CheckingBits); + ResettingBits |= mask; + diableBits = ResettingBits & EnabledBits; + EnabledBits &= ~mask; + + if (Spec == PAD_SPEC_4) { + RecalibrateBits |= mask; + } + + SIDisablePolling(diableBits); + + if (ResettingChan == 32) { + DoReset(); + } + OSRestoreInterrupts(enabled); + return TRUE; +} + +BOOL PADRecalibrate(u32 mask) +{ + BOOL enabled; + u32 disableBits; + + enabled = OSDisableInterrupts(); + + mask |= PendingBits; + PendingBits = 0; + mask &= ~(WaitingBits | CheckingBits); + ResettingBits |= mask; + disableBits = ResettingBits & EnabledBits; + EnabledBits &= ~mask; + + if (!(UnkVal & 0x40)) { + RecalibrateBits |= mask; + } + + SIDisablePolling(disableBits); + if (ResettingChan == 32) { + DoReset(); + } + OSRestoreInterrupts(enabled); + return TRUE; +} + +BOOL PADInit() +{ + s32 chan; + if (Initialized) { + return TRUE; + } + + if (__PADSpec) { + PADSetSpec(__PADSpec); + } + + Initialized = TRUE; + + if (__PADFixBits != 0) { + OSTime time = OSGetTime(); + __OSWirelessPadFixMode = (u16)((((time)&0xffff) + ((time >> 16) & 0xffff) + ((time >> 32) & 0xffff) + ((time >> 48) & 0xffff)) & 0x3fffu); + RecalibrateBits = PAD_CHAN0_BIT | PAD_CHAN1_BIT | PAD_CHAN2_BIT | PAD_CHAN3_BIT; + } + + for (chan = 0; chan < SI_MAX_CHAN; ++chan) { + CmdProbeDevice[chan] = (0x4D << 24) | (chan << 22) | ((__OSWirelessPadFixMode & 0x3fffu) << 8); + } + + SIRefreshSamplingRate(); + OSRegisterResetFunction(&ResetFunctionInfo); + + return PADReset(PAD_CHAN0_BIT | PAD_CHAN1_BIT | PAD_CHAN2_BIT | PAD_CHAN3_BIT); +} + +#define offsetof(type, memb) ((u32) & ((type *)0)->memb) + +u32 PADRead(PADStatus *status) +{ + BOOL enabled; + s32 chan; + u32 data[2]; + u32 chanBit; + u32 sr; + int chanShift; + u32 motor; + + enabled = OSDisableInterrupts(); + + motor = 0; + for (chan = 0; chan < SI_MAX_CHAN; chan++, status++) { + chanBit = PAD_CHAN0_BIT >> chan; + chanShift = 8 * (SI_MAX_CHAN - 1 - chan); + + if (PendingBits & chanBit) { + PADReset(0); + status->err = PAD_ERR_NOT_READY; + memset(status, 0, offsetof(PADStatus, err)); + continue; + } + + if ((ResettingBits & chanBit) || ResettingChan == chan) { + status->err = PAD_ERR_NOT_READY; + memset(status, 0, offsetof(PADStatus, err)); + continue; + } + + if (!(EnabledBits & chanBit)) { + status->err = (s8)PAD_ERR_NO_CONTROLLER; + memset(status, 0, offsetof(PADStatus, err)); + continue; + } + + if (SIIsChanBusy(chan)) { + status->err = PAD_ERR_TRANSFER; + memset(status, 0, offsetof(PADStatus, err)); + continue; + } + + sr = SIGetStatus(chan); + if (sr & SI_ERROR_NO_RESPONSE) { + SIGetResponse(chan, data); + + if (WaitingBits & chanBit) { + status->err = (s8)PAD_ERR_NONE; + memset(status, 0, offsetof(PADStatus, err)); + + if (!(CheckingBits & chanBit)) { + CheckingBits |= chanBit; + SIGetTypeAsync(chan, PADReceiveCheckCallback); + } + continue; + } + + PADDisable(chan); + + status->err = (s8)PAD_ERR_NO_CONTROLLER; + memset(status, 0, offsetof(PADStatus, err)); + continue; + } + + if (!(SIGetType(chan) & SI_GC_NOMOTOR)) { + motor |= chanBit; + } + + if (!SIGetResponse(chan, data)) { + status->err = PAD_ERR_TRANSFER; + memset(status, 0, offsetof(PADStatus, err)); + continue; + } + + if (data[0] & 0x80000000) { + status->err = PAD_ERR_TRANSFER; + memset(status, 0, offsetof(PADStatus, err)); + continue; + } + + MakeStatus(chan, status, data); + + // Check and clear PAD_ORIGIN bit + if (status->button & 0x2000) { + status->err = PAD_ERR_TRANSFER; + memset(status, 0, offsetof(PADStatus, err)); + + // Get origin. It is okay if the following transfer fails + // since the PAD_ORIGIN bit remains until the read origin + // command complete. + SITransfer(chan, &CmdReadOrigin, 1, &Origin[chan], 10, PADOriginUpdateCallback, 0); + continue; + } + + status->err = PAD_ERR_NONE; + + // Clear PAD_INTERFERE bit + status->button &= ~0x0080; + } + + OSRestoreInterrupts(enabled); + return motor; +} + +void PADControlAllMotors(const u32 *commandArray) +{ + BOOL enabled; + int chan; + u32 command; + BOOL commit; + u32 chanBit; + + enabled = OSDisableInterrupts(); + commit = FALSE; + for (chan = 0; chan < SI_MAX_CHAN; chan++, commandArray++) { + chanBit = PAD_CHAN0_BIT >> chan; + if ((EnabledBits & chanBit) && !(SIGetType(chan) & SI_GC_NOMOTOR)) { + command = *commandArray; + if (Spec < PAD_SPEC_2 && command == PAD_MOTOR_STOP_HARD) { + command = PAD_MOTOR_STOP; + } + + SISetCommand(chan, (0x40 << 16) | AnalogMode | (command & (0x00000001 | 0x00000002))); + commit = TRUE; + } + } + if (commit) { + SITransferCommands(); + } + OSRestoreInterrupts(enabled); +} + +void PADControlMotor(s32 chan, u32 command) +{ + BOOL enabled; + u32 chanBit; + + enabled = OSDisableInterrupts(); + chanBit = PAD_CHAN0_BIT >> chan; + if ((EnabledBits & chanBit) && !(SIGetType(chan) & SI_GC_NOMOTOR)) { + if (Spec < PAD_SPEC_2 && command == PAD_MOTOR_STOP_HARD) { + command = PAD_MOTOR_STOP; + } + + SISetCommand(chan, (0x40 << 16) | AnalogMode | (command & (0x00000001 | 0x00000002))); + SITransferCommands(); + } + OSRestoreInterrupts(enabled); +} + +void PADSetSpec(u32 spec) +{ + __PADSpec = 0; + switch (spec) { + case PAD_SPEC_0: + MakeStatus = SPEC0_MakeStatus; + break; + case PAD_SPEC_1: + MakeStatus = SPEC1_MakeStatus; + break; + case PAD_SPEC_2: + case PAD_SPEC_3: + case PAD_SPEC_4: + case PAD_SPEC_5: + MakeStatus = SPEC2_MakeStatus; + break; + } + Spec = spec; +} + +u32 PADGetSpec(void) +{ + return Spec; +} + +static void SPEC0_MakeStatus(s32 chan, PADStatus *status, u32 data[2]) +{ + status->button = 0; + status->button |= ((data[0] >> 16) & 0x0008) ? PAD_BUTTON_A : 0; + status->button |= ((data[0] >> 16) & 0x0020) ? PAD_BUTTON_B : 0; + status->button |= ((data[0] >> 16) & 0x0100) ? PAD_BUTTON_X : 0; + status->button |= ((data[0] >> 16) & 0x0001) ? PAD_BUTTON_Y : 0; + status->button |= ((data[0] >> 16) & 0x0010) ? PAD_BUTTON_START : 0; + status->stickX = (s8)(data[1] >> 16); + status->stickY = (s8)(data[1] >> 24); + status->substickX = (s8)(data[1]); + status->substickY = (s8)(data[1] >> 8); + status->triggerL = (u8)(data[0] >> 8); + status->triggerR = (u8)data[0]; + status->analogA = 0; + status->analogB = 0; + if (170 <= status->triggerL) { + status->button |= PAD_TRIGGER_L; + } + if (170 <= status->triggerR) { + status->button |= PAD_TRIGGER_R; + } + status->stickX -= 128; + status->stickY -= 128; + status->substickX -= 128; + status->substickY -= 128; +} + +static void SPEC1_MakeStatus(s32 chan, PADStatus *status, u32 data[2]) +{ + + status->button = 0; + status->button |= ((data[0] >> 16) & 0x0080) ? PAD_BUTTON_A : 0; + status->button |= ((data[0] >> 16) & 0x0100) ? PAD_BUTTON_B : 0; + status->button |= ((data[0] >> 16) & 0x0020) ? PAD_BUTTON_X : 0; + status->button |= ((data[0] >> 16) & 0x0010) ? PAD_BUTTON_Y : 0; + status->button |= ((data[0] >> 16) & 0x0200) ? PAD_BUTTON_START : 0; + + status->stickX = (s8)(data[1] >> 16); + status->stickY = (s8)(data[1] >> 24); + status->substickX = (s8)(data[1]); + status->substickY = (s8)(data[1] >> 8); + + status->triggerL = (u8)(data[0] >> 8); + status->triggerR = (u8)data[0]; + + status->analogA = 0; + status->analogB = 0; + + if (170 <= status->triggerL) { + status->button |= PAD_TRIGGER_L; + } + if (170 <= status->triggerR) { + status->button |= PAD_TRIGGER_R; + } + + status->stickX -= 128; + status->stickY -= 128; + status->substickX -= 128; + status->substickY -= 128; +} + +static s8 ClampS8(s8 var, s8 org) +{ + if (0 < org) { + s8 min = (s8)(-128 + org); + if (var < min) { + var = min; + } + } + else if (org < 0) { + s8 max = (s8)(127 + org); + if (max < var) { + var = max; + } + } + return var -= org; +} + +static u8 ClampU8(u8 var, u8 org) +{ + if (var < org) { + var = org; + } + return var -= org; +} + +#define PAD_ALL \ + (PAD_BUTTON_LEFT | PAD_BUTTON_RIGHT | PAD_BUTTON_DOWN | PAD_BUTTON_UP | PAD_TRIGGER_Z | PAD_TRIGGER_R | PAD_TRIGGER_L | PAD_BUTTON_A \ + | PAD_BUTTON_B | PAD_BUTTON_X | PAD_BUTTON_Y | PAD_BUTTON_MENU | 0x2000 | 0x0080) + +static void SPEC2_MakeStatus(s32 chan, PADStatus *status, u32 data[2]) +{ + PADStatus *origin; + + status->button = (u16)((data[0] >> 16) & PAD_ALL); + status->stickX = (s8)(data[0] >> 8); + status->stickY = (s8)(data[0]); + + switch (AnalogMode & 0x00000700) { + case 0x00000000: + case 0x00000500: + case 0x00000600: + case 0x00000700: + status->substickX = (s8)(data[1] >> 24); + status->substickY = (s8)(data[1] >> 16); + status->triggerL = (u8)(((data[1] >> 12) & 0x0f) << 4); + status->triggerR = (u8)(((data[1] >> 8) & 0x0f) << 4); + status->analogA = (u8)(((data[1] >> 4) & 0x0f) << 4); + status->analogB = (u8)(((data[1] >> 0) & 0x0f) << 4); + break; + case 0x00000100: + status->substickX = (s8)(((data[1] >> 28) & 0x0f) << 4); + status->substickY = (s8)(((data[1] >> 24) & 0x0f) << 4); + status->triggerL = (u8)(data[1] >> 16); + status->triggerR = (u8)(data[1] >> 8); + status->analogA = (u8)(((data[1] >> 4) & 0x0f) << 4); + status->analogB = (u8)(((data[1] >> 0) & 0x0f) << 4); + break; + case 0x00000200: + status->substickX = (s8)(((data[1] >> 28) & 0x0f) << 4); + status->substickY = (s8)(((data[1] >> 24) & 0x0f) << 4); + status->triggerL = (u8)(((data[1] >> 20) & 0x0f) << 4); + status->triggerR = (u8)(((data[1] >> 16) & 0x0f) << 4); + status->analogA = (u8)(data[1] >> 8); + status->analogB = (u8)(data[1] >> 0); + break; + case 0x00000300: + status->substickX = (s8)(data[1] >> 24); + status->substickY = (s8)(data[1] >> 16); + status->triggerL = (u8)(data[1] >> 8); + status->triggerR = (u8)(data[1] >> 0); + status->analogA = 0; + status->analogB = 0; + break; + case 0x00000400: + status->substickX = (s8)(data[1] >> 24); + status->substickY = (s8)(data[1] >> 16); + status->triggerL = 0; + status->triggerR = 0; + status->analogA = (u8)(data[1] >> 8); + status->analogB = (u8)(data[1] >> 0); + break; + } + + status->stickX -= 128; + status->stickY -= 128; + status->substickX -= 128; + status->substickY -= 128; + + origin = &Origin[chan]; + status->stickX = ClampS8(status->stickX, origin->stickX); + status->stickY = ClampS8(status->stickY, origin->stickY); + status->substickX = ClampS8(status->substickX, origin->substickX); + status->substickY = ClampS8(status->substickY, origin->substickY); + status->triggerL = ClampU8(status->triggerL, origin->triggerL); + status->triggerR = ClampU8(status->triggerR, origin->triggerR); +} + +BOOL PADGetType(s32 chan, u32 *type) +{ + u32 chanBit; + + *type = SIGetType(chan); + chanBit = PAD_CHAN0_BIT >> chan; + if ((ResettingBits & chanBit) || ResettingChan == chan || !(EnabledBits & chanBit)) { + return FALSE; + } + return TRUE; +} + +BOOL PADSync(void) +{ + return ResettingBits == 0 && ResettingChan == 32 && !SIBusy(); +} + +void PADSetAnalogMode(u32 mode) +{ + BOOL enabled; + u32 mask; + + enabled = OSDisableInterrupts(); + AnalogMode = mode << 8; + mask = EnabledBits; + + EnabledBits &= ~mask; + WaitingBits &= ~mask; + CheckingBits &= ~mask; + + SIDisablePolling(mask); + OSRestoreInterrupts(enabled); +} + +static BOOL OnReset(BOOL f) +{ + static BOOL recalibrated = FALSE; + BOOL sync; + + if (SamplingCallback) { + PADSetSamplingCallback(NULL); + } + + if (!f) { + sync = PADSync(); + if (!recalibrated && sync) { + recalibrated = PADRecalibrate(PAD_CHAN0_BIT | PAD_CHAN1_BIT | PAD_CHAN2_BIT | PAD_CHAN3_BIT); + return FALSE; + } + return sync; + } + else { + recalibrated = FALSE; + } + + return TRUE; +} + +void __PADDisableXPatch(void) +{ + XPatchBits = 0; +} + +static void SamplingHandler(__OSInterrupt interrupt, OSContext *context) +{ + OSContext exceptionContext; + + if (SamplingCallback) { + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + SamplingCallback(); + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); + } +} + +PADSamplingCallback PADSetSamplingCallback(PADSamplingCallback callback) +{ + PADSamplingCallback prev; + + prev = SamplingCallback; + SamplingCallback = callback; + if (callback) { + SIRegisterPollingHandler(SamplingHandler); + } + else { + SIUnregisterPollingHandler(SamplingHandler); + } + return prev; +} + +BOOL __PADDisableRecalibration(BOOL disable) +{ + BOOL enabled; + BOOL prev; + + enabled = OSDisableInterrupts(); + prev = (UnkVal & 0x40) ? TRUE : FALSE; + UnkVal &= (u8)~0x40; + if (disable) { + UnkVal |= 0x40; + } + OSRestoreInterrupts(enabled); + return prev; +} diff --git a/src/dolphin/pad/Padclamp.c b/src/dolphin/pad/Padclamp.c new file mode 100644 index 00000000..a96d75c4 --- /dev/null +++ b/src/dolphin/pad/Padclamp.c @@ -0,0 +1,119 @@ +#include + +#include + +typedef struct PADClampRegion { + u8 minTrigger; + u8 maxTrigger; + s8 minStick; + s8 maxStick; + s8 xyStick; + s8 minSubstick; + s8 maxSubstick; + s8 xySubstick; +} PADClampRegion; + +static PADClampRegion ClampRegion = { + // Triggers + 30, + 180, + + // Left stick + 15, + 72, + 40, + + // Right stick + 15, + 59, + 31, +}; + +static void ClampStick(s8 *px, s8 *py, s8 max, s8 xy, s8 min) +{ + int x = *px; + int y = *py; + int signX; + int signY; + int d; + + if (0 <= x) { + signX = 1; + } + else { + signX = -1; + x = -x; + } + + if (0 <= y) { + signY = 1; + } + else { + signY = -1; + y = -y; + } + + if (x <= min) { + x = 0; + } + else { + x -= min; + } + if (y <= min) { + y = 0; + } + else { + y -= min; + } + + if (x == 0 && y == 0) { + *px = *py = 0; + return; + } + + if (xy * y <= xy * x) { + d = xy * x + (max - xy) * y; + if (xy * max < d) { + x = (s8)(xy * max * x / d); + y = (s8)(xy * max * y / d); + } + } + else { + d = xy * y + (max - xy) * x; + if (xy * max < d) { + x = (s8)(xy * max * x / d); + y = (s8)(xy * max * y / d); + } + } + + *px = (s8)(signX * x); + *py = (s8)(signY * y); +} + +static void ClampTrigger(u8 *trigger, u8 min, u8 max) +{ + if (*trigger <= min) { + *trigger = 0; + } + else { + if (max < *trigger) { + *trigger = max; + } + *trigger -= min; + } +} + +void PADClamp(PADStatus *status) +{ + // int i; + // for (i = 0; i < PAD_CHANMAX; i++, status++) { + // if (status->err != PAD_ERR_NONE) { + // continue; + // } + + // ClampStick(&status->stickX, &status->stickY, ClampRegion.maxStick, ClampRegion.xyStick, ClampRegion.minStick); + // ClampStick(&status->substickX, &status->substickY, ClampRegion.maxSubstick, ClampRegion.xySubstick, ClampRegion.minSubstick); + // ClampTrigger(&status->triggerL, ClampRegion.minTrigger, ClampRegion.maxTrigger); + // ClampTrigger(&status->triggerR, ClampRegion.minTrigger, ClampRegion.maxTrigger); + // } +} From 5bfbe7814b5126c7dc0018ab5fe9985d24613767 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Mon, 11 Nov 2024 17:20:41 -0600 Subject: [PATCH 115/311] Fix dvd.c --- config/GMPE01_00/symbols.txt | 2 +- configure.py | 2 +- src/dolphin/dvd/dvd.c | 37 +----------------------------------- 3 files changed, 3 insertions(+), 38 deletions(-) diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 99198763..5acdcfae 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -5627,7 +5627,7 @@ Prepared = .sbss:0x801D4320; // type:object size:0x8 scope:local data:4byte ResetFunctionQueue = .sbss:0x801D4328; // type:object size:0x8 scope:local data:4byte ResetCallback = .sbss:0x801D4330; // type:object size:0x4 data:4byte Down = .sbss:0x801D4334; // type:object size:0x4 data:4byte -LastState = .sbss:0x801D4338; // type:object size:0x8 data:4byte +LastState = .sbss:0x801D4338; // type:object size:0x8 scope:local data:4byte HoldUp = .sbss:0x801D4340; // type:object size:0x8 align:8 data:4byte HoldDown = .sbss:0x801D4348; // type:object size:0x8 align:8 data:4byte RunQueueBits = .sbss:0x801D4350; // type:object size:0x4 scope:local data:4byte diff --git a/configure.py b/configure.py index cc6076bf..680ce836 100644 --- a/configure.py +++ b/configure.py @@ -496,7 +496,7 @@ config.libs = [ [ Object(Matching, "dolphin/dvd/dvdlow.c"), Object(Matching, "dolphin/dvd/dvdfs.c"), - Object(NonMatching, "dolphin/dvd/dvd.c"), + Object(Matching, "dolphin/dvd/dvd.c"), Object(Matching, "dolphin/dvd/dvdqueue.c"), Object(Matching, "dolphin/dvd/dvderror.c"), Object(Matching, "dolphin/dvd/fstload.c"), diff --git a/src/dolphin/dvd/dvd.c b/src/dolphin/dvd/dvd.c index 9253df47..5ddde4fc 100644 --- a/src/dolphin/dvd/dvd.c +++ b/src/dolphin/dvd/dvd.c @@ -6,7 +6,6 @@ #include typedef void (*stateFunc)(DVDCommandBlock *block); -stateFunc LastState; extern OSThreadQueue __DVDThreadQueue; @@ -34,6 +33,7 @@ static DVDCommandBlock DummyCommandBlock; static OSAlarm ResetAlarm; static BOOL DVDInitialized = FALSE; +static stateFunc LastState; /* States */ static void stateReadingFST(); @@ -736,41 +736,6 @@ static void stateBusy(DVDCommandBlock *block) } } -// removing these matches DVDCancelAsync and DVDCheckDisk -static u32 ImmCommand[] = { 0xffffffff, 0xffffffff, 0xffffffff }; -static u32 DmaCommand[] = { 0xffffffff }; - -inline static BOOL IsImmCommandWithResult(u32 command) -{ - u32 i; - - if (command == 9 || command == 10 || command == 11 || command == 12) { - return TRUE; - } - - for (i = 0; i < sizeof(ImmCommand) / sizeof(ImmCommand[0]); i++) { - if (command == ImmCommand[i]) - return TRUE; - } - - return FALSE; -} - -inline static BOOL IsDmaCommand(u32 command) -{ - u32 i; - - if (command == 1 || command == 4 || command == 5 || command == 14) - return TRUE; - - for (i = 0; i < sizeof(DmaCommand) / sizeof(DmaCommand[0]); i++) { - if (command == DmaCommand[i]) - return TRUE; - } - - return FALSE; -} - void cbForStateBusy(u32 intType) { DVDCommandBlock *finished; From 5877067872af832ede18b044caab8ddb8c9b28de Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Mon, 11 Nov 2024 17:24:55 -0600 Subject: [PATCH 116/311] mtxquat fixes --- configure.py | 8 +++++++- src/dolphin/mtx/quat.c | 6 +++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/configure.py b/configure.py index 680ce836..cc9c8936 100644 --- a/configure.py +++ b/configure.py @@ -210,6 +210,12 @@ cflags_runtime = [ "-inline auto,deferred", ] +# Dolphin library flags +cflags_dolphin = [ + *cflags_base, + "-fp_contract off", +] + # Metrowerks library flags cflags_msl = [ *cflags_base, @@ -304,7 +310,7 @@ def DolphinLib(lib_name, objects): return { "lib": lib_name, "mw_version": "GC/1.2.5n", - "cflags": cflags_base, + "cflags": cflags_dolphin, "host": False, "objects": objects, } diff --git a/src/dolphin/mtx/quat.c b/src/dolphin/mtx/quat.c index a874e14c..66964bf0 100644 --- a/src/dolphin/mtx/quat.c +++ b/src/dolphin/mtx/quat.c @@ -1,5 +1,9 @@ #include "dolphin/mtx.h" -#include "math.h" + +float acosf(float x); + +float sinf(float x); +float cosf(float x); void PSQUATMultiply(register const Quaternion *a, register const Quaternion *b, register Quaternion *ab) { From 36a05264a5b0a3944bccbe20080868554fd46abd Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 12 Nov 2024 01:40:59 +0100 Subject: [PATCH 117/311] Imported dolphin/demo except for one function --- include/dolphin/demo.h | 72 +++ include/dolphin/demo/DEMOInit.h | 21 + include/dolphin/demo/DEMOPad.h | 26 ++ include/dolphin/demo/DEMOPuts.h | 27 ++ include/dolphin/demo/DEMOStats.h | 38 ++ include/dolphin/demo/DEMOWin.h | 77 +++ include/dolphin/demotypes.h | 11 + src/dolphin/demo/DEMOFont.c | 773 +++++++++++++++++++++++++++++++ src/dolphin/demo/DEMOInit.c | 251 ++++++++++ src/dolphin/demo/DEMOPuts.c | 146 ++++++ src/dolphin/demo/DEMOStats.c | 424 +++++++++++++++++ 11 files changed, 1866 insertions(+) create mode 100644 include/dolphin/demo.h create mode 100644 include/dolphin/demo/DEMOInit.h create mode 100644 include/dolphin/demo/DEMOPad.h create mode 100644 include/dolphin/demo/DEMOPuts.h create mode 100644 include/dolphin/demo/DEMOStats.h create mode 100644 include/dolphin/demo/DEMOWin.h create mode 100644 include/dolphin/demotypes.h create mode 100644 src/dolphin/demo/DEMOFont.c create mode 100644 src/dolphin/demo/DEMOInit.c create mode 100644 src/dolphin/demo/DEMOPuts.c create mode 100644 src/dolphin/demo/DEMOStats.c diff --git a/include/dolphin/demo.h b/include/dolphin/demo.h new file mode 100644 index 00000000..b712723a --- /dev/null +++ b/include/dolphin/demo.h @@ -0,0 +1,72 @@ +#ifndef _DOLPHIN_DEMO +#define _DOLPHIN_DEMO + +#include +#include + +struct STRUCT_MENU_ITEM { + /* 0x00 */ char * name; + /* 0x04 */ unsigned long flags; + /* 0x08 */ void (* function)(struct STRUCT_MENU *, unsigned long, unsigned long *); + /* 0x0C */ struct STRUCT_MENU * link; +}; + +struct STRUCT_MENU { + /* 0x00 */ char * title; + /* 0x04 */ struct STRUCT_DEMOWIN * handle; + /* 0x08 */ struct STRUCT_MENU_ITEM * items; + /* 0x0C */ long max_display_items; + /* 0x10 */ unsigned long flags; + /* 0x14 */ void (* cb_open)(struct STRUCT_MENU *, unsigned long); + /* 0x18 */ void (* cb_move)(struct STRUCT_MENU *, unsigned long); + /* 0x1C */ void (* cb_select)(struct STRUCT_MENU *, unsigned long); + /* 0x20 */ void (* cb_cancel)(struct STRUCT_MENU *, unsigned long); + /* 0x24 */ long num_display_items; + /* 0x28 */ long num_items; + /* 0x2C */ unsigned long max_str_len; + /* 0x30 */ long curr_pos; + /* 0x34 */ long display_pos; +}; + +typedef struct { + /* 0x00 */ struct PADStatus pads[4]; + /* 0x30 */ unsigned long button[4]; + /* 0x40 */ unsigned long old_button[4]; + /* 0x50 */ unsigned long changed_button[4]; + /* 0x60 */ unsigned long repeat_button[4]; + /* 0x70 */ unsigned long repeat_ctr[4]; +} DEMOWinPadInfo; + +struct STRUCT_LISTBOX_ITEM { + /* 0x00 */ char * name; // offset 0x0, size 0x4 + /* 0x04 */ unsigned long flags; // offset 0x4, size 0x4 +}; + +struct STRUCT_LISTBOX { + /* 0x00 */ char * title; // offset 0x0, size 0x4 + /* 0x04 */ struct STRUCT_DEMOWIN * handle; // offset 0x4, size 0x4 + /* 0x08 */ struct STRUCT_LISTBOX_ITEM * items; // offset 0x8, size 0x4 + /* 0x0C */ long max_display_items; // offset 0xC, size 0x4 + /* 0x10 */ unsigned long flags; // offset 0x10, size 0x4 + /* 0x14 */ long num_display_items; // offset 0x14, size 0x4 + /* 0x18 */ long num_items; // offset 0x18, size 0x4 + /* 0x1C */ unsigned long max_str_len; // offset 0x1C, size 0x4 + /* 0x20 */ long curr_pos; // offset 0x20, size 0x4 + /* 0x24 */ long display_pos; // offset 0x24, size 0x4 + /* 0x28 */ int cursor_state; // offset 0x28, size 0x4 +}; + +extern unsigned long DEMOFontBitmap[768]; + +#include +#include +#include +#include +#include + +// unsorted externs +extern void DEMOPrintf(s16 x, s16 y, s16 priority, char *str, ...); + +extern struct _GXRenderModeObj *DEMOGetRenderModeObj(); + +#endif diff --git a/include/dolphin/demo/DEMOInit.h b/include/dolphin/demo/DEMOInit.h new file mode 100644 index 00000000..00bcd849 --- /dev/null +++ b/include/dolphin/demo/DEMOInit.h @@ -0,0 +1,21 @@ +#ifndef _DOLPHIN_DEMOINIT +#define _DOLPHIN_DEMOINIT + +#include + +extern void *DemoFrameBuffer1; +extern void *DemoFrameBuffer2; +extern void *DemoCurrentBuffer; + +void DEMOInit(struct _GXRenderModeObj *mode); +void DEMOBeforeRender(); +void DEMODoneRender(); +void DEMOSwapBuffers(); +void DEMOSetTevColorIn(enum _GXTevStageID stage, enum _GXTevColorArg a, enum _GXTevColorArg b, enum _GXTevColorArg c, enum _GXTevColorArg d); +void DEMOSetTevOp(enum _GXTevStageID id, enum _GXTevMode mode); +struct _GXRenderModeObj *DEMOGetRenderModeObj(); +u32 DEMOGetCurrentBuffer(void); +void DEMOEnableBypassWorkaround(unsigned long timeoutFrames); +void DEMOReInit(struct _GXRenderModeObj *mode); + +#endif diff --git a/include/dolphin/demo/DEMOPad.h b/include/dolphin/demo/DEMOPad.h new file mode 100644 index 00000000..34bcc6b6 --- /dev/null +++ b/include/dolphin/demo/DEMOPad.h @@ -0,0 +1,26 @@ +#ifndef _DOLPHIN_DEMOPAD +#define _DOLPHIN_DEMOPAD + +#include + +typedef struct { + /* 0x00 */ struct PADStatus pst; + /* 0x0C */ u16 buttonDown; + /* 0x0E */ u16 buttonUp; + /* 0x10 */ u16 dirs; + /* 0x12 */ u16 dirsNew; + /* 0x14 */ u16 dirsReleased; + /* 0x16 */ s16 stickDeltaX; + /* 0x18 */ s16 stickDeltaY; + /* 0x1A */ s16 substickDeltaX; + /* 0x1C */ s16 substickDeltaY; +} DEMODMPad; + +extern DEMODMPad DemoPad[4]; + +extern u32 DemoNumValidPads; + +void DEMOPadRead(); +void DEMOPadInit(); + +#endif diff --git a/include/dolphin/demo/DEMOPuts.h b/include/dolphin/demo/DEMOPuts.h new file mode 100644 index 00000000..49434d9c --- /dev/null +++ b/include/dolphin/demo/DEMOPuts.h @@ -0,0 +1,27 @@ +#ifndef _DOLPHIN_DEMOPUTS +#define _DOLPHIN_DEMOPUTS + +#include + +typedef enum { + DMTF_POINTSAMPLE, + DMTF_BILERP, +} DMTexFlt; + +typedef enum { DM_FT_OPQ, DM_FT_RVS, DM_FT_XLU } DMFontType; + +void DEMOSetFontType(DMFontType attr); +void DEMOLoadFont(enum _GXTexMapID texMap, enum _GXTexMtx texMtx, DMTexFlt texFlt); +void DEMOSetupScrnSpc(long width, long height, float depth); +void DEMOInitCaption(long font_type, long width, long height); +void DEMOPuts(s16 x, s16 y, s16 z, char *string); +void DEMOPrintf(s16 x, s16 y, s16 z, char *fmt, ...); +struct OSFontHeader *DEMOInitROMFont(); +void DEMOSetROMFontSize(s16 size, s16 space); +int DEMORFPuts(s16 x, s16 y, s16 z, char *string); +int DEMORFPutsEx(s16 x, s16 y, s16 z, char *string, s16 maxWidth, int length); +int DEMORFPrintf(s16 x, s16 y, s16 z, char *fmt, ...); +char *DEMODumpROMFont(char *string); +int DEMOGetRFTextWidth(char *string); + +#endif diff --git a/include/dolphin/demo/DEMOStats.h b/include/dolphin/demo/DEMOStats.h new file mode 100644 index 00000000..5ec6e00a --- /dev/null +++ b/include/dolphin/demo/DEMOStats.h @@ -0,0 +1,38 @@ +#ifndef _DOLPHIN_DEMOSTATS +#define _DOLPHIN_DEMOSTATS + +typedef enum DEMO_STAT_TYPE { + DEMO_STAT_GP0 = 0, + DEMO_STAT_GP1 = 1, + DEMO_STAT_MEM = 2, + DEMO_STAT_PIX = 3, + DEMO_STAT_VC = 4, + DEMO_STAT_FR = 5, + DEMO_STAT_TBW = 6, + DEMO_STAT_TBP = 7, + DEMO_STAT_MYC = 8, + DEMO_STAT_MYR = 9, +} DEMO_STAT_TYPE; + +typedef struct DemoStatData { + char text[50]; + DEMO_STAT_TYPE stat_type; + unsigned long stat; + unsigned long count; +} DemoStatData; + +typedef enum { + DEMO_STAT_TL = 0, + DEMO_STAT_BL = 1, + DEMO_STAT_TLD = 2, + DEMO_STAT_BLD = 3, + DEMO_STAT_IO = 4, +} DEMO_STAT_DISP; + +extern unsigned char DemoStatEnable; + +void DEMOSetStats(DemoStatData * stat, unsigned long nstats, DEMO_STAT_DISP disp); +void DEMOUpdateStats(unsigned char inc); +void DEMOPrintStats(void); + +#endif diff --git a/include/dolphin/demo/DEMOWin.h b/include/dolphin/demo/DEMOWin.h new file mode 100644 index 00000000..2c24b50d --- /dev/null +++ b/include/dolphin/demo/DEMOWin.h @@ -0,0 +1,77 @@ +#ifndef _DOLPHIN_DEMOWIN +#define _DOLPHIN_DEMOWIN + +#include +#include + +enum DEMOWinItem { + DEMOWIN_ITEM_CAP, + DEMOWIN_ITEM_BKGND, + DEMOWIN_ITEM_BORDER, + DEMOWIN_ITEM_DEFAULT +}; + +// flags +#define DEMOWIN_FLAGS_INIT (1 << 0) +#define DEMOWIN_FLAGS_OPENED (1 << 1) + +struct STRUCT_DEMOWIN { + /* 0x00 */ long x1; + /* 0x04 */ long y1; + /* 0x08 */ long x2; + /* 0x0C */ long y2; + /* 0x10 */ unsigned long priority; + /* 0x14 */ unsigned long flags; + /* 0x18 */ unsigned short x_cal; + /* 0x1A */ unsigned short y_cal; + /* 0x1C */ unsigned short pixel_width; + /* 0x1E */ unsigned short pixel_height; + /* 0x20 */ unsigned short char_width; + /* 0x22 */ unsigned short char_height; + /* 0x24 */ unsigned short num_scroll_lines; + /* 0x26 */ unsigned short total_lines; + /* 0x28 */ unsigned short curr_output_line; + /* 0x2A */ unsigned short curr_output_col; + /* 0x2C */ unsigned short curr_view_line; + /* 0x2E */ signed short cursor_line; + /* 0x30 */ char * caption; + /* 0x34 */ unsigned char * buffer; + /* 0x38 */ GXColor bkgnd; + /* 0x3C */ GXColor cap; + /* 0x40 */ GXColor border; + /* 0x44 */ void (* refresh)(struct STRUCT_DEMOWIN *); + /* 0x48 */ struct STRUCT_DEMOWIN * next; + /* 0x4C */ struct STRUCT_DEMOWIN * prev; + /* 0x50 */ void * parent; +}; + +// functions +void DEMOWinInit(); +struct STRUCT_DEMOWIN * DEMOWinCreateWindow(s32 x1, s32 y1, s32 x2, s32 y2, char * caption, u16 scroll, void * func); +void DEMOWinDestroyWindow(struct STRUCT_DEMOWIN * handle); +void DEMOWinOpenWindow(struct STRUCT_DEMOWIN * handle); +void DEMOWinCloseWindow(struct STRUCT_DEMOWIN * handle); +void DEMOWinSetWindowColor(struct STRUCT_DEMOWIN * handle, enum DEMOWinItem item, u8 r, u8 g, u8 b, u8 a); +void DEMOWinLogPrintf(struct STRUCT_DEMOWIN * handle, char * fmt, ...); +void DEMOWinPrintfXY(struct STRUCT_DEMOWIN * handle, u16 col, u16 row, char * fmt, ...); +void DEMOWinScrollWindow(struct STRUCT_DEMOWIN * handle, u32 dir); +void DEMOWinBringToFront(struct STRUCT_DEMOWIN * handle); +void DEMOWinSendToBack(struct STRUCT_DEMOWIN * handle); +void DEMOWinClearRow(struct STRUCT_DEMOWIN * handle, u16 row); +void DEMOWinClearWindow(struct STRUCT_DEMOWIN * handle); +void DEMOWinClearBuffer(struct STRUCT_DEMOWIN * handle); +void DEMOWinRefresh(); +struct STRUCT_MENU * DEMOWinCreateMenuWindow(struct STRUCT_MENU * menu, u16 x, u16 y); +void DEMOWinDestroyMenuWindow(struct STRUCT_MENU * menu); +u32 DEMOWinMenuChild(struct STRUCT_MENU * menu, int child_flag); +void DEMOWinPadInit(DEMOWinPadInfo *p); +void DEMOWinPadRead(DEMOWinPadInfo *p); +void DEMOWinSetRepeat(unsigned long threshold, unsigned long rate); +void DEMOWinResetRepeat(); +struct STRUCT_LISTBOX * DEMOWinCreateListWindow(struct STRUCT_LISTBOX * list, unsigned short x, unsigned short y); +void DEMOWinDestroyListWindow(struct STRUCT_LISTBOX * list); +void DEMOWinListSetCursor(struct STRUCT_LISTBOX * list, int x); +long DEMOWinListScrollList(struct STRUCT_LISTBOX * list, unsigned long dir); +long DEMOWinListMoveCursor(struct STRUCT_LISTBOX * list, unsigned long dir); + +#endif diff --git a/include/dolphin/demotypes.h b/include/dolphin/demotypes.h new file mode 100644 index 00000000..00f29a3c --- /dev/null +++ b/include/dolphin/demotypes.h @@ -0,0 +1,11 @@ +#ifndef _DOLPHIN_DEMOTYPES +#define _DOLPHIN_DEMOTYPES + +#include + +extern struct STRUCT_DEMOWIN * __first_node; +extern struct STRUCT_DEMOWIN * __last_node; +extern struct STRUCT_DEMOWIN * __curr_node; +extern struct _GXRenderModeObj * __rmp; + +#endif diff --git a/src/dolphin/demo/DEMOFont.c b/src/dolphin/demo/DEMOFont.c new file mode 100644 index 00000000..121cd356 --- /dev/null +++ b/src/dolphin/demo/DEMOFont.c @@ -0,0 +1,773 @@ +#include +#include + +unsigned long DEMOFontBitmap[768] ATTRIBUTE_ALIGN(32) = { + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x000FF000, + 0x000FF000, + 0x000FF000, + 0x000FF000, + 0x000FF000, + 0x00000000, + 0x000FF000, + 0x00000000, + 0x00F00F00, + 0x00F00F00, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00F00F00, + 0x00F00F00, + 0x0FFFFFF0, + 0x00F00F00, + 0x0FFFFFF0, + 0x00F00F00, + 0x00F00F00, + 0x00000000, + 0x0000F000, + 0x00FFFFF0, + 0x0F00F000, + 0x00FFFF00, + 0x0000F0F0, + 0x0FFFFF00, + 0x0000F000, + 0x00000000, + 0x0FF000F0, + 0x0FF00F00, + 0x0000F000, + 0x000F0000, + 0x00F00FF0, + 0x0F000FF0, + 0x00000000, + 0x00000000, + 0x000F0000, + 0x00F0F000, + 0x00F0F000, + 0x00FF0000, + 0x0F000FF0, + 0x0F0000F0, + 0x00FFFF00, + 0x00000000, + 0x000FF000, + 0x000FF000, + 0x0000F000, + 0x000F0000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x0000F000, + 0x000F0000, + 0x00F00000, + 0x00F00000, + 0x00F00000, + 0x000F0000, + 0x0000F000, + 0x00000000, + 0x000F0000, + 0x0000F000, + 0x00000F00, + 0x00000F00, + 0x00000F00, + 0x0000F000, + 0x000F0000, + 0x00000000, + 0x00000000, + 0x00F000F0, + 0x000F0F00, + 0x00FFFFF0, + 0x000F0F00, + 0x00F000F0, + 0x00000000, + 0x00000000, + 0x00000000, + 0x0000F000, + 0x0000F000, + 0x00FFFFF0, + 0x0000F000, + 0x0000F000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x000FF000, + 0x000FF000, + 0x0000F000, + 0x000F0000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00FFFFF0, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x000FF000, + 0x000FF000, + 0x00000000, + 0x000000F0, + 0x00000F00, + 0x0000F000, + 0x000F0000, + 0x00F00000, + 0x0F000000, + 0x00000000, + 0x00000000, + 0x000FF000, + 0x00F00F00, + 0x0F0000F0, + 0x0F0000F0, + 0x0F0000F0, + 0x00F00F00, + 0x000FF000, + 0x00000000, + 0x0000F000, + 0x000FF000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x000FFF00, + 0x00000000, + 0x00FFFF00, + 0x0F0000F0, + 0x000000F0, + 0x00000F00, + 0x0000F000, + 0x000F0000, + 0x0FFFFFF0, + 0x00000000, + 0x00FFFF00, + 0x0F0000F0, + 0x000000F0, + 0x0000FF00, + 0x000000F0, + 0x0F0000F0, + 0x00FFFF00, + 0x00000000, + 0x00000F00, + 0x0000FF00, + 0x000F0F00, + 0x00F00F00, + 0x0FFFFFF0, + 0x00000F00, + 0x00000F00, + 0x00000000, + 0x0FFFFFF0, + 0x0F000000, + 0x0F000000, + 0x0FFFFF00, + 0x000000F0, + 0x0F0000F0, + 0x00FFFF00, + 0x00000000, + 0x000FFF00, + 0x00F00000, + 0x0F000000, + 0x0FFFFF00, + 0x0F0000F0, + 0x0F0000F0, + 0x00FFFF00, + 0x00000000, + 0x0FFFFFF0, + 0x0F0000F0, + 0x00000F00, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x00000000, + 0x00FFFF00, + 0x0F0000F0, + 0x0F0000F0, + 0x00FFFF00, + 0x0F0000F0, + 0x0F0000F0, + 0x00FFFF00, + 0x00000000, + 0x00FFFF00, + 0x0F0000F0, + 0x0F0000F0, + 0x00FFFFF0, + 0x000000F0, + 0x000000F0, + 0x00FFFF00, + 0x00000000, + 0x00000000, + 0x000FF000, + 0x000FF000, + 0x00000000, + 0x000FF000, + 0x000FF000, + 0x00000000, + 0x00000000, + 0x000FF000, + 0x000FF000, + 0x00000000, + 0x000FF000, + 0x000FF000, + 0x0000F000, + 0x000F0000, + 0x00000000, + 0x00000F00, + 0x0000F000, + 0x000F0000, + 0x00F00000, + 0x000F0000, + 0x0000F000, + 0x00000F00, + 0x00000000, + 0x00000000, + 0x00000000, + 0x0FFFFFF0, + 0x00000000, + 0x0FFFFFF0, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00F00000, + 0x000F0000, + 0x0000F000, + 0x00000F00, + 0x0000F000, + 0x000F0000, + 0x00F00000, + 0x00000000, + 0x00FFFF00, + 0x0F0000F0, + 0x0F0000F0, + 0x0000FF00, + 0x000FF000, + 0x00000000, + 0x000FF000, + 0x00000000, + 0x00FFFF00, + 0x0F0000F0, + 0x0F000FF0, + 0x0F00F0F0, + 0x0F00FFF0, + 0x0F000000, + 0x00FFFFF0, + 0x00000000, + 0x000FF000, + 0x00F00F00, + 0x0F0000F0, + 0x0F0000F0, + 0x0FFFFFF0, + 0x0F0000F0, + 0x0F0000F0, + 0x00000000, + 0x0FFFFF00, + 0x0F0000F0, + 0x0F0000F0, + 0x0FFFFF00, + 0x0F0000F0, + 0x0F0000F0, + 0x0FFFFF00, + 0x00000000, + 0x000FFF00, + 0x00F000F0, + 0x0F000000, + 0x0F000000, + 0x0F000000, + 0x00F000F0, + 0x000FFF00, + 0x00000000, + 0x0FFFF000, + 0x0F000F00, + 0x0F0000F0, + 0x0F0000F0, + 0x0F0000F0, + 0x0F000F00, + 0x0FFFF000, + 0x00000000, + 0x0FFFFFF0, + 0x0F000000, + 0x0F000000, + 0x0FFFFF00, + 0x0F000000, + 0x0F000000, + 0x0FFFFFF0, + 0x00000000, + 0x0FFFFFF0, + 0x0F000000, + 0x0F000000, + 0x0FFFFF00, + 0x0F000000, + 0x0F000000, + 0x0F000000, + 0x00000000, + 0x000FFF00, + 0x00F00000, + 0x0F000000, + 0x0F00FFF0, + 0x0F0000F0, + 0x00F000F0, + 0x000FFF00, + 0x00000000, + 0x0F0000F0, + 0x0F0000F0, + 0x0F0000F0, + 0x0FFFFFF0, + 0x0F0000F0, + 0x0F0000F0, + 0x0F0000F0, + 0x00000000, + 0x000FFF00, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x000FFF00, + 0x00000000, + 0x0000FFF0, + 0x00000F00, + 0x00000F00, + 0x00000F00, + 0x00000F00, + 0x0F000F00, + 0x00FFF000, + 0x00000000, + 0x0F0000F0, + 0x0F000F00, + 0x0F00F000, + 0x0FFF0000, + 0x0F00F000, + 0x0F000F00, + 0x0F0000F0, + 0x00000000, + 0x0F000000, + 0x0F000000, + 0x0F000000, + 0x0F000000, + 0x0F000000, + 0x0F000000, + 0x0FFFFFF0, + 0x00000000, + 0x0F00000F, + 0x0FF000FF, + 0x0F0F0F0F, + 0x0F00F00F, + 0x0F00F00F, + 0x0F00000F, + 0x0F00000F, + 0x00000000, + 0x0F0000F0, + 0x0FF000F0, + 0x0F0F00F0, + 0x0F00F0F0, + 0x0F00F0F0, + 0x0F000FF0, + 0x0F0000F0, + 0x00000000, + 0x00FFFF00, + 0x0F0000F0, + 0x0F0000F0, + 0x0F0000F0, + 0x0F0000F0, + 0x0F0000F0, + 0x00FFFF00, + 0x00000000, + 0x0FFFFF00, + 0x0F0000F0, + 0x0F0000F0, + 0x0FFFFF00, + 0x0F000000, + 0x0F000000, + 0x0F000000, + 0x00000000, + 0x00FFFF00, + 0x0F0000F0, + 0x0F0000F0, + 0x0F0000F0, + 0x0F00F0F0, + 0x0F000F00, + 0x00FFF0F0, + 0x00000000, + 0x0FFFFF00, + 0x0F0000F0, + 0x0F0000F0, + 0x0FFFFF00, + 0x0F00F000, + 0x0F000F00, + 0x0F0000F0, + 0x00000000, + 0x00FFFF00, + 0x0F0000F0, + 0x0F000000, + 0x00FFFF00, + 0x000000F0, + 0x0F0000F0, + 0x00FFFF00, + 0x00000000, + 0x0FFFFFFF, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x00000000, + 0x0F0000F0, + 0x0F0000F0, + 0x0F0000F0, + 0x0F0000F0, + 0x0F0000F0, + 0x0F0000F0, + 0x00FFFF00, + 0x00000000, + 0x0F0000F0, + 0x0F0000F0, + 0x0F0000F0, + 0x0F0000F0, + 0x00F00F00, + 0x00F00F00, + 0x000FF000, + 0x00000000, + 0x0F00000F, + 0x0F00000F, + 0x0F00000F, + 0x0F00F00F, + 0x0F00F00F, + 0x0F00F00F, + 0x00FF0FF0, + 0x00000000, + 0x0F0000F0, + 0x0F0000F0, + 0x00F00F00, + 0x000FF000, + 0x00F00F00, + 0x0F0000F0, + 0x0F0000F0, + 0x00000000, + 0x0F00000F, + 0x00F000F0, + 0x000F0F00, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x00000000, + 0x0FFFFFF0, + 0x000000F0, + 0x00000F00, + 0x000FF000, + 0x00F00000, + 0x0F000000, + 0x0FFFFFF0, + 0x00000000, + 0x000FFF00, + 0x000F0000, + 0x000F0000, + 0x000F0000, + 0x000F0000, + 0x000F0000, + 0x000FFF00, + 0x00000000, + 0x0F000000, + 0x00F00000, + 0x000F0000, + 0x0000F000, + 0x00000F00, + 0x000000F0, + 0x00000000, + 0x00000000, + 0x00FFF000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x00FFF000, + 0x00000000, + 0x000FF000, + 0x00F00F00, + 0x0F0000F0, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x0FFFFFF0, + 0x00000000, + 0x000FF000, + 0x000FF000, + 0x000F0000, + 0x0000F000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00FFFF00, + 0x0F000F00, + 0x0F000F00, + 0x0F000F00, + 0x00FFFFF0, + 0x00000000, + 0x00F00000, + 0x00F00000, + 0x00F00000, + 0x00FFFF00, + 0x00F000F0, + 0x00F000F0, + 0x00FFFF00, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00FFFF00, + 0x0F000000, + 0x0F000000, + 0x0F000000, + 0x00FFFF00, + 0x00000000, + 0x000000F0, + 0x000000F0, + 0x000000F0, + 0x000FFFF0, + 0x00F000F0, + 0x00F000F0, + 0x000FFFF0, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00FFFF00, + 0x0F0000F0, + 0x0FFFFFF0, + 0x0F000000, + 0x00FFFF00, + 0x00000000, + 0x0000FF00, + 0x000F0000, + 0x000F0000, + 0x0FFFFF00, + 0x000F0000, + 0x000F0000, + 0x000F0000, + 0x00000000, + 0x00000000, + 0x000FFFF0, + 0x00F000F0, + 0x00F000F0, + 0x000FFFF0, + 0x000000F0, + 0x000FFF00, + 0x00000000, + 0x00F00000, + 0x00F00000, + 0x00F00000, + 0x00F0FF00, + 0x00FF00F0, + 0x00F000F0, + 0x00F000F0, + 0x00000000, + 0x00000000, + 0x0000F000, + 0x00000000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x00000000, + 0x00000F00, + 0x00000000, + 0x00000F00, + 0x00000F00, + 0x00000F00, + 0x00F00F00, + 0x000FF000, + 0x00000000, + 0x00000000, + 0x00F00000, + 0x00F00000, + 0x00F00F00, + 0x00F0F000, + 0x00FFF000, + 0x00F00F00, + 0x00000000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x00000F00, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00F0FF00, + 0x0F0F00F0, + 0x0F0F00F0, + 0x0F0F00F0, + 0x0F0F00F0, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00F0FF00, + 0x00FF00F0, + 0x00F000F0, + 0x00F000F0, + 0x00F000F0, + 0x00000000, + 0x00000000, + 0x00000000, + 0x000FFF00, + 0x00F000F0, + 0x00F000F0, + 0x00F000F0, + 0x000FFF00, + 0x00000000, + 0x00000000, + 0x00FFF000, + 0x00F00F00, + 0x00F00F00, + 0x00FFF000, + 0x00F00000, + 0x00F00000, + 0x00000000, + 0x00000000, + 0x000FFF00, + 0x00F00F00, + 0x00F00F00, + 0x000FFF00, + 0x00000F00, + 0x00000FF0, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00F0FFF0, + 0x00FF0000, + 0x00F00000, + 0x00F00000, + 0x00F00000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x000FFFF0, + 0x00F00000, + 0x000FFF00, + 0x000000F0, + 0x00FFFF00, + 0x00000000, + 0x00000000, + 0x0000F000, + 0x00FFFFF0, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x00000FF0, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00F000F0, + 0x00F000F0, + 0x00F000F0, + 0x00F000F0, + 0x000FFFF0, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00F000F0, + 0x00F000F0, + 0x00F000F0, + 0x000F0F00, + 0x0000F000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x0F0000F0, + 0x0F00F0F0, + 0x0F00F0F0, + 0x0F00F0F0, + 0x00FF0F00, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00F000F0, + 0x000F0F00, + 0x0000F000, + 0x000F0F00, + 0x00F000F0, + 0x00000000, + 0x00000000, + 0x0F000F00, + 0x0F000F00, + 0x00F00F00, + 0x000FFF00, + 0x00000F00, + 0x00FFF000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00FFFFF0, + 0x00000F00, + 0x0000F000, + 0x000F0000, + 0x00FFFFF0, + 0x00000000, + 0x00000F00, + 0x0000F000, + 0x0000F000, + 0x00FF0000, + 0x0000F000, + 0x0000F000, + 0x00000F00, + 0x00000000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x0000F000, + 0x00000000, + 0x000F0000, + 0x0000F000, + 0x0000F000, + 0x00000FF0, + 0x0000F000, + 0x0000F000, + 0x000F0000, + 0x00000000, + 0x00FF00FF, + 0x0F00FF00, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00FF0000, + 0x0FF00000, + 0xFFFFFFFF, + 0xFFFFF000, + 0xFFFFF000, + 0xFFF00000, + 0x00000000 +}; diff --git a/src/dolphin/demo/DEMOInit.c b/src/dolphin/demo/DEMOInit.c new file mode 100644 index 00000000..0ebcc3c0 --- /dev/null +++ b/src/dolphin/demo/DEMOInit.c @@ -0,0 +1,251 @@ +#include +#include +#include +#include +#include +#include "game/init.h" + +#include + +extern unsigned char DemoStatEnable; // size: 0x1, address: 0x0 + +// .bss +static struct _GXRenderModeObj rmodeobj; // size: 0x3C, address: 0x0 + +// .sdata +static unsigned char DemoFirstFrame = 1; // size: 0x1, address: 0x0 + +// .sbss +static void *DefaultFifo = NULL; // size: 0x4, address: 0x0 +static GXFifoObj *DefaultFifoObj = NULL; // size: 0x4, address: 0x4 +static struct _GXRenderModeObj *rmode; // size: 0x4, address: 0x8 +static int BypassWorkaround; // size: 0x4, address: 0xC +static unsigned long FrameCount; // size: 0x4, address: 0x10 +static unsigned long FrameMissThreshold; // size: 0x4, address: 0x14 + +// functions +static void __DEMOInitRenderMode(struct _GXRenderModeObj *mode); +static void __DEMOInitMem(); +static void __DEMOInitGX(); +static void __DEMOInitVI(); +static void __DEMOInitForEmu(); +static void __BypassRetraceCallback(); +static void LoadMemInfo(); + +void DEMOInit(struct _GXRenderModeObj *mode) +{ + OSInit(); + DVDInit(); + VIInit(); + DEMOPadInit(); + __DEMOInitRenderMode(mode); + __DEMOInitMem(); + VIConfigure(rmode); + DefaultFifo = OSAllocFromHeap(__OSCurrHeap, 0x40000); + DefaultFifoObj = GXInit(DefaultFifo, 0x40000); + __DEMOInitGX(); + __DEMOInitVI(); +} + +static void __DEMOInitRenderMode(struct _GXRenderModeObj *mode) +{ + if (mode != NULL) { + rmode = mode; + return; + } + switch (VIGetTvFormat()) { + case VI_NTSC: + rmode = &GXNtsc480IntDf; + break; + case VI_PAL: + rmode = &GXPal528IntDf; + break; + case VI_MPAL: + rmode = &GXMpal480IntDf; + break; + default: + OSPanic(__FILE__, 0x1A6, "DEMOInit: invalid TV format\n"); + break; + } + GXAdjustForOverscan(rmode, &rmodeobj, 0, 0x10); + rmode = &rmodeobj; +} + +static void __DEMOInitMem() +{ + void *arenaLo = OSGetArenaLo(); + void *arenaHi = OSGetArenaHi(); + unsigned long fbSize = ((u16)(rmode->fbWidth + 15) & 0xFFF0) * rmode->xfbHeight * 2; + + DemoFrameBuffer1 = (void *)(((u32)arenaLo + 0x1F) & 0xFFFFFFE0); + DemoFrameBuffer2 = (void *)(((u32)DemoFrameBuffer1 + fbSize + 0x1F) & 0xFFFFFFE0); + DemoCurrentBuffer = DemoFrameBuffer2; + arenaLo = (void *)(((u32)DemoFrameBuffer2 + fbSize + 0x1F) & 0xFFFFFFE0); + OSSetArenaLo(arenaLo); + if (((OSGetConsoleType() + 0xF0000000) == 4U) && ((OSGetPhysicalMemSize() + 0xFFC00000) != 0U) + && (OSGetConsoleSimulatedMemSize() < 0x01800000U)) { + LoadMemInfo(); + return; + } + arenaLo = OSGetArenaLo(); + arenaHi = OSGetArenaHi(); + arenaLo = OSInitAlloc(arenaLo, arenaHi, 1); + OSSetArenaLo(arenaLo); + arenaLo = (void *)(((u32)arenaLo + 0x1F) & 0xFFFFFFE0); + arenaHi = (void *)((u32)arenaHi & 0xFFFFFFE0); + OSSetCurrentHeap(OSCreateHeap((void *)(((u32)arenaLo)), arenaHi)); + OSSetArenaLo((arenaLo = arenaHi)); +} + +static void __DEMOInitGX() +{ + GXSetViewport(0.0f, 0.0f, rmode->fbWidth, rmode->xfbHeight, 0.0f, 1.0f); + GXSetScissor(0, 0, rmode->fbWidth, rmode->efbHeight); + GXSetDispCopySrc(0, 0, rmode->fbWidth, rmode->efbHeight); + GXSetDispCopyDst(rmode->fbWidth, rmode->xfbHeight); + GXSetDispCopyYScale(((f32)rmode->xfbHeight / (f32)rmode->efbHeight)); + GXSetCopyFilter(rmode->aa, rmode->sample_pattern, 1, rmode->vfilter); + if (rmode->aa != 0) { + GXSetPixelFmt(2, 0); + } + else { + GXSetPixelFmt(0, 0); + } + GXCopyDisp(DemoCurrentBuffer, 1); + GXSetDispCopyGamma(0); +} + +static void __DEMOInitVI() +{ + unsigned long nin; + + VISetNextFrameBuffer(DemoFrameBuffer1); + DemoCurrentBuffer = DemoFrameBuffer2; + VIFlush(); + VIWaitForRetrace(); + nin = rmode->viTVmode & 1; + if (nin != 0) { + VIWaitForRetrace(); + } +} + +static void __DEMOInitForEmu() { } + +void DEMOBeforeRender() +{ + if (BypassWorkaround != 0) { + GXSetDrawSync(0xFEEB); + } + if (rmode->field_rendering != 0) { + GXSetViewportJitter(0.0f, 0.0f, rmode->fbWidth, rmode->xfbHeight, 0.0f, 1.0f, VIGetNextField()); + } + else { + GXSetViewport(0.0f, 0.0f, rmode->fbWidth, rmode->xfbHeight, 0.0f, 1.0f); + } + GXInvalidateVtxCache(); + GXInvalidateTexAll(); +} + +void DEMOSwapBuffers() +{ + VISetNextFrameBuffer(DemoCurrentBuffer); + if (DemoFirstFrame != 0) { + VISetBlack(0); + DemoFirstFrame = 0; + } + VIFlush(); + VIWaitForRetrace(); + if ((u32)DemoCurrentBuffer == (u32)DemoFrameBuffer1) { + DemoCurrentBuffer = DemoFrameBuffer2; + return; + } + DemoCurrentBuffer = DemoFrameBuffer1; +} + +struct _GXRenderModeObj *DEMOGetRenderModeObj() +{ + return rmode; +} + +u32 DEMOGetCurrentBuffer(void) +{ + return (u32)DemoCurrentBuffer; +} + +void DEMOEnableBypassWorkaround(unsigned long timeoutFrames) +{ + BypassWorkaround = 1; + FrameMissThreshold = timeoutFrames; + VISetPreRetraceCallback(__BypassRetraceCallback); +} + +static void __BypassRetraceCallback() +{ + FrameCount += 1; +} + +static void LoadMemInfo() +{ + void *arenaHiOld; + void *arenaLo; + void *arenaHi; + void *simMemEnd; + struct DVDFileInfo fileInfo; + unsigned long length; + unsigned long transferLength; + long offset; + unsigned long i; + unsigned long indexMax; + char *buf[63]; + struct { + void *start; + void *end; + } *memEntry; + + OSReport("\nNow, try to find memory info file...\n\n"); + if (!DVDOpen("/meminfo.bin", &fileInfo)) { + OSReport("\nCan't find memory info file. Use /XXX toolname/ to maximize available\n"); + OSReport("memory space. For now, we only use the first %dMB.\n", OSGetConsoleSimulatedMemSize() >> 0x14); + arenaLo = OSGetArenaLo(); + arenaHi = OSGetArenaHi(); + arenaLo = OSInitAlloc(arenaLo, arenaHi, 1); + OSSetArenaLo(arenaLo); + arenaLo = (void *)(((u32)arenaLo + 0x1F) & 0xFFFFFFE0); + arenaHi = (void *)((u32)arenaHi & 0xFFFFFFE0); + OSSetCurrentHeap(OSCreateHeap((void *)(((u32)arenaLo)), arenaHi)); + OSSetArenaLo((arenaLo = arenaHi)); + return; + } + memEntry = (void *)((u32)buf + 0x1F & 0xFFFFFFE0); + arenaHiOld = OSGetArenaHi(); + simMemEnd = OSPhysicalToCached(OSGetConsoleSimulatedMemSize()); + OSSetArenaHi(OSPhysicalToCached(OSGetPhysicalMemSize())); + arenaLo = OSGetArenaLo(); + arenaHi = OSGetArenaHi(); + arenaLo = OSInitAlloc(arenaLo, arenaHi, 1); + OSSetArenaLo(arenaLo); + arenaLo = (void *)(((u32)arenaLo + 0x1F) & 0xFFFFFFE0); + arenaHi = (void *)((u32)arenaHi & 0xFFFFFFE0); + OSSetCurrentHeap(OSCreateHeap((void *)(arenaLo), arenaHi)); + OSSetArenaLo((arenaLo = arenaHi)); + OSAllocFixed(&arenaHiOld, &simMemEnd); + length = fileInfo.length; + offset = 0; + while (length) { + OSReport("loop\n"); + transferLength = (length < 0x20) ? length : 0x20; + if (DVDReadPrio(&fileInfo, memEntry, (transferLength + 0x1F) & 0xFFFFFFE0, offset, 2) < 0) { + OSPanic(__FILE__, 0x49F, "An error occurred when issuing read to /meminfo.bin\n"); + } + indexMax = (transferLength / 8); + for (i = 0; i < indexMax; i++) { + OSReport("start: 0x%08x, end: 0x%08x\n", memEntry[i].start, memEntry[i].end); + OSAllocFixed(&memEntry[i].start, &memEntry[i].end); + OSReport("Removed 0x%08x - 0x%08x from the current heap\n", memEntry[i].start, (char *)memEntry[i].end - 1); + } + length -= transferLength; + offset += transferLength; + } + DVDClose(&fileInfo); + OSDumpHeap(__OSCurrHeap); +} diff --git a/src/dolphin/demo/DEMOPuts.c b/src/dolphin/demo/DEMOPuts.c new file mode 100644 index 00000000..5a582ee4 --- /dev/null +++ b/src/dolphin/demo/DEMOPuts.c @@ -0,0 +1,146 @@ +#include "stdarg.h" +#include "stdio.h" +#include +#include +#include +#include + +#include + +extern unsigned long DEMOFontBitmap[]; // size: 0x0, address: 0x0 + +// .bss +static struct _GXTexObj fontTexObj; // size: 0x20, address: 0x0 + +// .sbss +static long fontShift; // size: 0x4, address: 0x0 + +// functions +static void DrawFontChar(int x, int y, int z, int xChar, int yChar); +static void LoadSheet(void *image, enum _GXTexMapID texMapID); + +void DEMOSetFontType(DMFontType attr) +{ + switch (attr) { + case DM_FT_RVS: + GXSetBlendMode(2, 0, 0, 0xC); + break; + case DM_FT_XLU: + GXSetBlendMode(1, 1, 1, 0); + break; + case DM_FT_OPQ: + default: + GXSetBlendMode(1, 1, 0, 0); + break; + } +} + +void DEMOLoadFont(enum _GXTexMapID texMap, enum _GXTexMtx texMtx, DMTexFlt texFlt) +{ + // float fontTMtx[3][4]; + // unsigned short width; + // unsigned short height; + + // width = 64; + // height = 0x1800 / width; + // GXInitTexObj(&fontTexObj, (void *)DEMOFontBitmap, width, (u16)height, 0, 0, 0, 0); + // if (texFlt == 0) { + // GXInitTexObjLOD(&fontTexObj, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f); + // fontShift = 0; + // } + // GXLoadTexObj(&fontTexObj, texMap); + // MTXScale(fontTMtx, 1.0f / (width - fontShift), 1.0f / ((u16)height - !fontShift), 1.0f); + // GXLoadTexMtxImm(fontTMtx, texMtx, 1); + // GXSetNumTexGens(1); + // GXSetTexCoordGen(0, 1, 4, texMtx); +} + +void DEMOSetupScrnSpc(long width, long height, float depth) +{ + float pMtx[4][4]; + float mMtx[3][4]; + + MTXOrtho(pMtx, 0.0f, height, 0.0f, width, 0.0f, -depth); + GXSetProjection(pMtx, 1); + MTXIdentity(mMtx); + GXLoadPosMtxImm(mMtx, 0); + GXSetCurrentMtx(0); +} + +void DEMOInitCaption(long font_type, long width, long height) +{ + DEMOSetupScrnSpc(width, height, 100.0f); + GXSetZMode(1, 7, 1); + GXSetNumChans(0); + GXSetNumTevStages(1); + GXSetTevOp(0, 3); + GXSetTevOrder(0, 0, 0, 0xFF); + DEMOLoadFont(0, 0x1E, 0); + DEMOSetFontType(font_type); +} + +void DEMOPuts(s16 x, s16 y, s16 z, char *string) +{ + char *str; + long s; + long t; + long c; + long w; + long len; + long i; + + str = string; + GXClearVtxDesc(); + GXSetVtxDesc(9, 1); + GXSetVtxDesc(0xD, 1); + GXSetVtxAttrFmt(0, 9, 1, 3, 0); + GXSetVtxAttrFmt(0, 0xD, 1, 3, 1); + + // calc len + len = 0; + while (1) { + c = *(str++); + if ((c >= 0x20) && (c <= 0x7F)) { + len++; + continue; + } + + if (len > 0) { + GXBegin(0x80, 0, len * 4); + for (i = 0; i < len; i++) { + w = string[i] - 0x20; + s = fontShift + ((w % 8) * 0x10); + t = fontShift + ((w / 8) * 0x10); + GXPosition3s16(x + (i * 8), y, z); + GXTexCoord2s16(s, t); + GXPosition3s16(x + (i * 8) + 8, y, z); + GXTexCoord2s16(s + 0x10, t); + GXPosition3s16(x + (i * 8) + 8, y + 8, z); + GXTexCoord2s16(s + 0x10, t + 0x10); + GXPosition3s16(x + (i * 8), y + 8, z); + GXTexCoord2s16(s, t + 0x10); + } + GXEnd(); + len = 0; + } + + string = str; + if (c == 0xA) { + y += 0x8; + } + else { + break; + } + } +} + +void DEMOPrintf(s16 x, s16 y, s16 z, char *fmt, ...) +{ + va_list vlist; + char buf[256]; + + va_start(vlist, fmt); + vsprintf(buf, fmt, vlist); + DEMOPuts(x, y, z, buf); + va_end(vlist); +} diff --git a/src/dolphin/demo/DEMOStats.c b/src/dolphin/demo/DEMOStats.c new file mode 100644 index 00000000..d98b436c --- /dev/null +++ b/src/dolphin/demo/DEMOStats.c @@ -0,0 +1,424 @@ +#include "dolphin/gx/GXPerf.h" +#include "string.h" +#include +#include +#include + +#include + +unsigned char DemoStatEnable = 0; +static DemoStatData *DemoStat; +static unsigned long DemoStatIndx; +static unsigned long DemoStatMaxIndx; +static unsigned long DemoStatClocks; +static unsigned long DemoStatDisp; +static unsigned long DemoStatStrLen; +static unsigned long topPixIn; +static unsigned long topPixOut; +static unsigned long botPixIn; +static unsigned long botPixOut; +static unsigned long clrPixIn; +static unsigned long copyClks; +static unsigned long vcCheck; +static unsigned long vcMiss; +static unsigned long vcStall; +static unsigned long cpReq; +static unsigned long tcReq; +static unsigned long cpuRdReq; +static unsigned long cpuWrReq; +static unsigned long dspReq; +static unsigned long ioReq; +static unsigned long viReq; +static unsigned long peReq; +static unsigned long rfReq; +static unsigned long fiReq; + +// functions +static void DEMOWriteStats(unsigned char update); +static void DEMOWriteStats(unsigned char update); + +void DEMOSetStats(DemoStatData *stat, unsigned long nstats, DEMO_STAT_DISP disp) +{ + if (!stat || nstats == 0) { + DemoStatEnable = FALSE; + } + else { + DemoStatEnable = TRUE; + DemoStat = stat; + DemoStatIndx = 0; + DemoStatMaxIndx = nstats; + DemoStatDisp = disp; + DemoStatStrLen = strlen(DemoStat->text); + } +} + +static void DEMOWriteStats(unsigned char update) +{ + unsigned long cnt0; + unsigned long cnt1; + unsigned long cnt2; + unsigned long cnt3; + unsigned long cnt4; + unsigned long cnt5; + unsigned long cnt6; + unsigned long cnt7; + unsigned long cnt8; + unsigned long cnt9; + + switch (DemoStat[DemoStatIndx].stat_type) { + case DEMO_STAT_GP0: + if (update) { + cnt0 = GXReadGP0Metric(); + DemoStat[DemoStatIndx].count = cnt0; + GXSetGPMetric(GX_PERF0_NONE, GX_PERF1_NONE); + break; + } + GXSetGPMetric(DemoStat[DemoStatIndx].stat, GX_PERF1_NONE); + GXClearGPMetric(); + break; + case DEMO_STAT_GP1: + if (update) { + cnt0 = GXReadGP1Metric(); + DemoStat[DemoStatIndx].count = cnt0; + GXSetGPMetric(GX_PERF0_NONE, GX_PERF1_NONE); + break; + } + GXSetGPMetric(GX_PERF0_NONE, DemoStat[DemoStatIndx].stat); + GXClearGPMetric(); + break; + case DEMO_STAT_MEM: + if (update) { + GXReadMemMetric(&cnt0, &cnt1, &cnt2, &cnt3, &cnt4, &cnt5, &cnt6, &cnt7, &cnt8, &cnt9); + cpReq = cnt0; + tcReq = cnt1; + cpuRdReq = cnt2; + cpuWrReq = cnt3; + dspReq = cnt4; + ioReq = cnt5; + viReq = cnt6; + peReq = cnt7; + rfReq = cnt8; + fiReq = cnt9; + break; + } + GXClearMemMetric(); + break; + case DEMO_STAT_PIX: + if (update) { + GXReadPixMetric(&cnt0, &cnt1, &cnt2, &cnt3, &cnt4, &cnt5); + topPixIn = cnt0; + topPixOut = cnt1; + botPixIn = cnt2; + botPixOut = cnt3; + clrPixIn = cnt4; + copyClks = cnt5; + break; + } + GXClearPixMetric(); + break; + case DEMO_STAT_VC: + if (update) { + GXReadVCacheMetric(&cnt0, &cnt1, &cnt2); + vcCheck = cnt0; + vcMiss = cnt1; + vcStall = cnt2; + break; + } + GXSetVCacheMetric(GX_VC_POS); + GXClearVCacheMetric(); + break; + case DEMO_STAT_FR: + if (update) { + GXReadPixMetric(&cnt0, &cnt1, &cnt2, &cnt3, &cnt4, &cnt5); + topPixIn = cnt0; + topPixOut = cnt1; + botPixIn = cnt2; + botPixOut = cnt3; + clrPixIn = cnt4; + copyClks = cnt5; + DemoStatClocks = GXReadGP0Metric(); + GXSetGPMetric(GX_PERF0_NONE, GX_PERF1_NONE); + break; + } + GXClearPixMetric(); + GXSetGPMetric(GX_PERF0_CLOCKS, GX_PERF1_NONE); + GXClearGPMetric(); + break; + case DEMO_STAT_TBW: + case DEMO_STAT_TBP: + GXClearPixMetric(); + if (update) { + GXReadPixMetric(&cnt0, &cnt1, &cnt2, &cnt3, &cnt4, &cnt5); + topPixIn = cnt0; + topPixOut = cnt1; + botPixIn = cnt2; + botPixOut = cnt3; + clrPixIn = cnt4; + copyClks = cnt5; + DemoStatClocks = GXReadGP0Metric(cnt4, cnt3, cnt2, cnt1, cnt0); + GXReadMemMetric(&cnt0, &cnt1, &cnt2, &cnt3, &cnt4, &cnt5, &cnt6, &cnt7, &cnt8, &cnt9); + tcReq = cnt1; + GXSetGPMetric(GX_PERF0_NONE, GX_PERF1_NONE); + break; + } + GXClearMemMetric(); + GXSetGPMetric(GX_PERF0_CLOCKS, GX_PERF1_NONE); + GXClearGPMetric(); + break; + case DEMO_STAT_MYC: + case DEMO_STAT_MYR: + break; + default: + OSPanic("DEMOStats.c", 0x127, "DEMOSetStats: Unknown demo stat type\n"); + } +} + +void DEMOUpdateStats(unsigned char inc) +{ + DEMOWriteStats(inc); + if (inc) { + DemoStatIndx = DemoStatIndx + 1; + if (DemoStatIndx == DemoStatMaxIndx) { + DemoStatIndx = 0; + } + } +} + +void DEMOPrintStats(void) +{ + GXRenderModeObj *rmode; + unsigned long i; + signed short text_x; + signed short text_y; + signed short text_yinc; + unsigned short wd; + unsigned short ht; + float rate; + + if (DemoStatDisp == DEMO_STAT_IO) { + for (i = 0; i < DemoStatMaxIndx; i++) { + switch (DemoStat[i].stat_type) { + case DEMO_STAT_PIX: + switch (DemoStat[i].stat) { + case 0: + OSReport("%s: %8d\n", DemoStat[i].text, topPixIn); + break; + case 1: + OSReport("%s: %8d\n", DemoStat[i].text, topPixOut); + break; + case 2: + OSReport("%s: %8d\n", DemoStat[i].text, botPixIn); + break; + case 3: + OSReport("%s: %8d\n", DemoStat[i].text, botPixOut); + break; + case 4: + OSReport("%s: %8d\n", DemoStat[i].text, clrPixIn); + break; + case 5: + OSReport("%s: %8d\n", DemoStat[i].text, copyClks); + break; + } + break; + case DEMO_STAT_FR: + rate = 162.0F * (topPixIn + botPixIn) / (float)(DemoStatClocks - copyClks); + OSReport("%s: %8.2f\n", DemoStat[i].text, rate); + break; + case DEMO_STAT_TBW: + rate = 162.0F * (tcReq << 5) / (float)(DemoStatClocks - copyClks); + OSReport("%s: %8.2f\n", DemoStat[i].text, rate); + break; + case DEMO_STAT_TBP: + rate = (tcReq << 5) / (float)(topPixIn + botPixIn); + OSReport("%s: %8.2f\n", DemoStat[i].text, rate); + break; + case DEMO_STAT_VC: + switch (DemoStat[i].stat) { + case 0: + OSReport("%s: %8d\n", DemoStat[i].text, vcCheck); + break; + case 1: + OSReport("%s: %8d\n", DemoStat[i].text, vcMiss); + break; + case 2: + OSReport("%s: %8d\n", DemoStat[i].text, vcStall); + break; + } + break; + case DEMO_STAT_MYR: + rate = DemoStat[i].stat / (float)DemoStat[i].count; + OSReport("%s: %8.2f\n", DemoStat[i].text, rate); + break; + case DEMO_STAT_MEM: + switch (DemoStat[i].stat) { + case 0: + OSReport("%s: %8d\n", DemoStat[i].text, cpReq); + break; + case 1: + OSReport("%s: %8d\n", DemoStat[i].text, tcReq); + break; + case 2: + OSReport("%s: %8d\n", DemoStat[i].text, cpuRdReq); + break; + case 3: + OSReport("%s: %8d\n", DemoStat[i].text, cpuWrReq); + break; + case 4: + OSReport("%s: %8d\n", DemoStat[i].text, dspReq); + break; + case 5: + OSReport("%s: %8d\n", DemoStat[i].text, ioReq); + break; + case 6: + OSReport("%s: %8d\n", DemoStat[i].text, viReq); + break; + case 7: + OSReport("%s: %8d\n", DemoStat[i].text, peReq); + break; + case 8: + OSReport("%s: %8d\n", DemoStat[i].text, rfReq); + break; + case 9: + OSReport("%s: %8d\n", DemoStat[i].text, fiReq); + break; + } + break; + default: + OSReport("%s: %8d\n", DemoStat[i].text, DemoStat[i].count); + break; + } + } + } + else { + rmode = DEMOGetRenderModeObj(); + switch (DemoStatDisp) { + case DEMO_STAT_TL: + text_x = 0x10; + text_y = 0x10; + text_yinc = 0xA; + wd = rmode->fbWidth; + ht = rmode->xfbHeight; + break; + case DEMO_STAT_BL: + text_x = 0x10; + text_y = rmode->xfbHeight - 0x18; + text_yinc = -0xA; + wd = rmode->fbWidth; + ht = rmode->xfbHeight; + break; + case DEMO_STAT_TLD: + text_x = 8; + text_y = 8; + text_yinc = 9; + wd = rmode->fbWidth / 2; + ht = rmode->xfbHeight / 2; + break; + case DEMO_STAT_BLD: + text_x = 8; + text_y = (rmode->xfbHeight - 0x18) / 2; + text_yinc = -9; + wd = rmode->fbWidth / 2; + ht = rmode->xfbHeight / 2; + break; + } + DEMOInitCaption(0, wd, ht); + for (i = 0; i < DemoStatMaxIndx; i++) { + switch (DemoStat[i].stat_type) { + case DEMO_STAT_PIX: + switch (DemoStat[i].stat) { + case 0: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, topPixIn); + break; + case 1: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, topPixOut); + break; + case 2: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, botPixIn); + break; + case 3: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, botPixOut); + break; + case 4: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, clrPixIn); + break; + case 5: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, copyClks); + break; + } + break; + case DEMO_STAT_FR: + rate = 162.0F * (topPixIn + botPixIn) / (float)(DemoStatClocks - copyClks); + DEMOPrintf(text_x, text_y, 0, "%s: %8.2f\n", DemoStat[i].text, rate); + break; + case DEMO_STAT_TBW: + rate = 162.0F * (tcReq << 5) / (float)(DemoStatClocks - copyClks); + DEMOPrintf(text_x, text_y, 0, "%s: %8.2f\n", DemoStat[i].text, rate); + break; + case DEMO_STAT_TBP: + rate = (tcReq << 5) / (float)(topPixIn - botPixIn); + DEMOPrintf(text_x, text_y, 0, "%s: %8.3f\n", DemoStat[i].text, rate); + break; + case DEMO_STAT_VC: + switch (DemoStat[i].stat) { + case 0: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, vcCheck); + break; + case 1: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, vcMiss); + break; + case 2: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, vcStall); + break; + } + break; + case DEMO_STAT_MEM: + switch (DemoStat[i].stat) { + case 0: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, cpReq); + break; + case 1: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, tcReq); + break; + case 2: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, cpuRdReq); + break; + case 3: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, cpuWrReq); + break; + case 4: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, dspReq); + break; + case 5: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, ioReq); + break; + case 6: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, viReq); + break; + case 7: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, peReq); + break; + case 8: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, rfReq); + break; + case 9: + DEMOPrintf(text_x, text_y, 0, "%s: %8d\n", DemoStat[i].text, fiReq); + break; + } + break; + case DEMO_STAT_GP0: + case DEMO_STAT_GP1: + case DEMO_STAT_MYC: + DEMOPrintf(text_x, text_y, 0, "%s: %8d", DemoStat[i].text, DemoStat[i].count); + break; + case DEMO_STAT_MYR: + rate = DemoStat[i].stat / (float)DemoStat[i].count; + DEMOPrintf(text_x, text_y, 0, "%s: %8.3f", DemoStat[i].text, rate); + break; + default: + OSReport("Undefined stat type %d in DEMOPrintStats()\n", DemoStat[i].stat_type); + break; + } + text_y += text_yinc; + } + } +} From 9267fa627de4ee1728bd7b02a5a59755c658b0f6 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 12 Nov 2024 02:09:45 +0100 Subject: [PATCH 118/311] Imported dolphin/dsp --- config/GMPE01_00/symbols.txt | 32 +-- configure.py | 12 +- include/dolphin/dsp.h | 1 + src/dolphin/dsp/dsp.c | 99 +++++++++ src/dolphin/dsp/dsp_debug.c | 5 + src/dolphin/dsp/dsp_task.c | 389 +++++++++++++++++++++++++++++++++++ 6 files changed, 520 insertions(+), 18 deletions(-) create mode 100644 src/dolphin/dsp/dsp.c create mode 100644 src/dolphin/dsp/dsp_debug.c create mode 100644 src/dolphin/dsp/dsp_task.c diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 5acdcfae..c1bb0fa7 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -4366,16 +4366,24 @@ lbl_8013C958 = .data:0x8013C958; // type:object size:0x29 scope:local data:strin lbl_8013C984 = .data:0x8013C984; // type:object size:0x29 scope:local data:string lbl_8013C9B0 = .data:0x8013C9B0; // type:object size:0x29 scope:local data:string DEMOFontBitmap = .data:0x8013C9E0; // type:object size:0xC00 align:32 -lbl_8013D5E0 = .data:0x8013D5E0; // type:object size:0xC data:string -lbl_8013D5EC = .data:0x8013D5EC; // type:object size:0x28 +lbl_8013D5E0 = .data:0x8013D5E0; // type:object size:0xC scope:local data:string +lbl_8013D5EC = .data:0x8013D5EC; // type:object size:0x28 scope:local data:string jumptable_8013D614 = .data:0x8013D614; // type:object size:0x28 scope:local jumptable_8013D698 = .data:0x8013D698; // type:object size:0x28 scope:local jumptable_8013D6C0 = .data:0x8013D6C0; // type:object size:0x28 scope:local jumptable_8013D6E8 = .data:0x8013D6E8; // type:object size:0x28 scope:local jumptable_8013D710 = .data:0x8013D710; // type:object size:0x28 scope:local ResetFunctionInfo = .data:0x8013D738; // type:object size:0x10 -lbl_8013D748 = .data:0x8013D748; // type:object size:0x38 -lbl_8013D780 = .data:0x8013D780; // type:object size:0x140 +lbl_8013D748 = .data:0x8013D748; // type:object size:0x20 scope:local data:string +lbl_8013D768 = .data:0x8013D768; // type:object size:0xC scope:local data:string +lbl_8013D774 = .data:0x8013D774; // type:object size:0xC scope:local data:string +lbl_8013D780 = .data:0x8013D780; // type:object size:0x20 scope:local data:string +lbl_8013D7A0 = .data:0x8013D7A0; // type:object size:0x30 scope:local data:string +lbl_8013D7D0 = .data:0x8013D7D0; // type:object size:0x30 scope:local data:string +lbl_8013D800 = .data:0x8013D800; // type:object size:0x30 scope:local data:string +lbl_8013D830 = .data:0x8013D830; // type:object size:0x30 scope:local data:string +lbl_8013D860 = .data:0x8013D860; // type:object size:0x30 scope:local data:string +lbl_8013D890 = .data:0x8013D890; // type:object size:0x30 scope:local data:string jumptable_8013D8C0 = .data:0x8013D8C0; // type:object size:0x68 scope:local jumptable_8013D928 = .data:0x8013D928; // type:object size:0x44 scope:local jumptable_8013D96C = .data:0x8013D96C; // type:object size:0x1C scope:local @@ -4982,7 +4990,7 @@ autoInvalidation = .sdata:0x801D38F0; // type:object size:0x4 scope:local data:4 @35 = .sdata:0x801D38F8; // type:object size:0x2 scope:local data:string @40 = .sdata:0x801D38FC; // type:object size:0x4 scope:local data:string @41 = .sdata:0x801D3900; // type:object size:0x3 scope:local data:string -lbl_801D3908 = .sdata:0x801D3908; // type:object size:0x8 data:string +lbl_801D3908 = .sdata:0x801D3908; // type:object size:0x8 scope:local data:string ClampRegion = .sdata:0x801D3910; // type:object size:0x8 scope:local data:byte ResettingChan = .sdata:0x801D3918; // type:object size:0x4 scope:local data:4byte XPatchBits = .sdata:0x801D391C; // type:object size:0x4 scope:local data:4byte @@ -7307,13 +7315,13 @@ lbl_801D63A8 = .sdata2:0x801D63A8; // type:object size:0x4 data:float lbl_801D63AC = .sdata2:0x801D63AC; // type:object size:0x4 data:float lbl_801D63B0 = .sdata2:0x801D63B0; // type:object size:0x4 data:float lbl_801D63B4 = .sdata2:0x801D63B4; // type:object size:0x4 data:float -lbl_801D63B8 = .sdata2:0x801D63B8; // type:object size:0x4 data:float -lbl_801D63BC = .sdata2:0x801D63BC; // type:object size:0x4 data:float -lbl_801D63C0 = .sdata2:0x801D63C0; // type:object size:0x8 data:double -lbl_801D63C8 = .sdata2:0x801D63C8; // type:object size:0x8 data:double -lbl_801D63D0 = .sdata2:0x801D63D0; // type:object size:0x8 data:float -lbl_801D63D8 = .sdata2:0x801D63D8; // type:object size:0x4 data:float -lbl_801D63E0 = .sdata2:0x801D63E0; // type:object size:0x8 data:double +lbl_801D63B8 = .sdata2:0x801D63B8; // type:object size:0x4 scope:local data:float +lbl_801D63BC = .sdata2:0x801D63BC; // type:object size:0x4 scope:local data:float +lbl_801D63C0 = .sdata2:0x801D63C0; // type:object size:0x8 scope:local data:double +lbl_801D63C8 = .sdata2:0x801D63C8; // type:object size:0x8 scope:local data:double +lbl_801D63D0 = .sdata2:0x801D63D0; // type:object size:0x8 scope:local data:float +lbl_801D63D8 = .sdata2:0x801D63D8; // type:object size:0x4 scope:local data:float +lbl_801D63E0 = .sdata2:0x801D63E0; // type:object size:0x8 scope:local data:double lbl_801D63E8 = .sdata2:0x801D63E8; // type:object size:0x4 data:4byte lbl_801D63EC = .sdata2:0x801D63EC; // type:object size:0x4 data:4byte lbl_801D63F0 = .sdata2:0x801D63F0; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index cc9c8936..27a4ba3a 100644 --- a/configure.py +++ b/configure.py @@ -517,10 +517,10 @@ config.libs = [ DolphinLib( "demo", [ - Object(NonMatching, "dolphin/demo/DEMOInit.c"), - Object(NonMatching, "dolphin/demo/DEMOFont.c"), + Object(Matching, "dolphin/demo/DEMOInit.c"), + Object(Matching, "dolphin/demo/DEMOFont.c"), Object(NonMatching, "dolphin/demo/DEMOPuts.c"), - Object(NonMatching, "dolphin/demo/DEMOStats.c"), + Object(Matching, "dolphin/demo/DEMOStats.c"), ], ), DolphinLib( @@ -546,9 +546,9 @@ config.libs = [ DolphinLib( "dsp", [ - Object(NonMatching, "dolphin/dsp/dsp.c"), - Object(NonMatching, "dolphin/dsp/dsp_debug.c"), - Object(NonMatching, "dolphin/dsp/dsp_task.c"), + Object(Matching, "dolphin/dsp/dsp.c"), + Object(Matching, "dolphin/dsp/dsp_debug.c"), + Object(Matching, "dolphin/dsp/dsp_task.c"), ], ), DolphinLib( diff --git a/include/dolphin/dsp.h b/include/dolphin/dsp.h index 368138c9..18df2eb6 100644 --- a/include/dolphin/dsp.h +++ b/include/dolphin/dsp.h @@ -59,6 +59,7 @@ DSPTaskInfo* DSPAddTask(DSPTaskInfo* task); void __DSP_exec_task(DSPTaskInfo* curr, DSPTaskInfo* next); void __DSP_boot_task(DSPTaskInfo* task); +void __DSP_insert_task(DSPTaskInfo* task); void __DSP_remove_task(DSPTaskInfo* task); void __DSP_add_task(DSPTaskInfo* task); void __DSP_debug_printf(const char* fmt, ...); diff --git a/src/dolphin/dsp/dsp.c b/src/dolphin/dsp/dsp.c new file mode 100644 index 00000000..f003f6fb --- /dev/null +++ b/src/dolphin/dsp/dsp.c @@ -0,0 +1,99 @@ +#include "dolphin/dsp.h" +#include "dolphin/os.h" + +#include "dolphin/hw_regs.h" + +#ifdef __cplusplus +extern "C" { +#endif + +static s32 __DSP_init_flag = 0; +extern DSPTaskInfo* __DSP_tmp_task; +extern DSPTaskInfo* __DSP_last_task; +extern DSPTaskInfo* __DSP_first_task; +extern DSPTaskInfo* __DSP_curr_task; + +extern void __DSPHandler(__OSInterrupt, OSContext*); +extern void __DSP_debug_printf(const char* fmt, ...); +extern void __DSP_boot_task(DSPTaskInfo* task); + +u32 DSPCheckMailToDSP(void) { return (__DSPRegs[0] >> 0xF) & 1; } + +u32 DSPCheckMailFromDSP(void) { return (__DSPRegs[2] >> 0xF) & 1; } + +u32 DSPReadMailFromDSP() { + u16 reg1; + u16 reg2; + reg1 = __DSPRegs[2]; + reg2 = __DSPRegs[3]; + return reg1 << 16 | reg2; +} + +void DSPSendMailToDSP(u32 mail) { + __DSPRegs[0] = mail >> 16; + __DSPRegs[1] = mail; +} + +void DSPInit(void) { + u32 oldInt; + u16 reg; + __DSP_debug_printf("DSPInit(): Build Date: %s %s\n", "Dec 17 2001", "18:25:00"); + + if (__DSP_init_flag == 1) { + return; + } + oldInt = OSDisableInterrupts(); + __OSSetInterruptHandler(7, __DSPHandler); + __OSUnmaskInterrupts(0x1000000); + reg = __DSPRegs[5]; + reg = (reg & ~0xA8) | 0x800; + __DSPRegs[5] = reg; + reg = __DSPRegs[5]; + reg = reg & ~0xAC; + __DSPRegs[5] = reg; + __DSP_tmp_task = 0; + __DSP_curr_task = 0; + __DSP_last_task = 0; + __DSP_first_task = 0; + __DSP_init_flag = 1; + OSRestoreInterrupts(oldInt); +} + +void DSPReset(void) { + u16 reg; + u32 oldInt; + oldInt = OSDisableInterrupts(); + reg = __DSPRegs[5]; + __DSPRegs[5] = (reg & ~0xA8) | 0x801; + __DSP_init_flag = 0; + OSRestoreInterrupts(oldInt); +} + +void DSPHalt(void) { + u16 reg; + u32 oldInt; + oldInt = OSDisableInterrupts(); + reg = __DSPRegs[5]; + __DSPRegs[5] = (reg & ~0xA8) | 4; + OSRestoreInterrupts(oldInt); +} + +u32 DSPGetDMAStatus(void) { return __DSPRegs[5] & 0x200; } + +DSPTaskInfo* DSPAddTask(DSPTaskInfo* task) { + u32 oldInt; + oldInt = OSDisableInterrupts(); + __DSP_insert_task(task); + task->state = 0; + task->flags = 1; + OSRestoreInterrupts(oldInt); + if (task == __DSP_first_task) { + __DSP_boot_task(task); + } + + return task; +} + +#ifdef __cplusplus +} +#endif diff --git a/src/dolphin/dsp/dsp_debug.c b/src/dolphin/dsp/dsp_debug.c new file mode 100644 index 00000000..22455a34 --- /dev/null +++ b/src/dolphin/dsp/dsp_debug.c @@ -0,0 +1,5 @@ +#include "types.h" + +void __DSP_debug_printf(const char* fmt, ...) { + // UNUSED(fmt); +} diff --git a/src/dolphin/dsp/dsp_task.c b/src/dolphin/dsp/dsp_task.c new file mode 100644 index 00000000..9ba343cf --- /dev/null +++ b/src/dolphin/dsp/dsp_task.c @@ -0,0 +1,389 @@ +#include "dolphin/dsp.h" +#include "dolphin/hw_regs.h" + +DSPTaskInfo *__DSP_curr_task; +DSPTaskInfo *__DSP_first_task; +DSPTaskInfo *__DSP_last_task; +DSPTaskInfo *__DSP_tmp_task; +DSPTaskInfo *__DSP_rude_task; + +BOOL __DSP_rude_task_pending; + +void __DSPHandler(__OSInterrupt, OSContext *context) +{ + DSPTaskInfo *tmp_task; + OSContext exceptionContext; + u16 tmp; + u32 mail; + + tmp = __DSPRegs[5]; + tmp = (u16)(tmp & ~0x28) | 0x80; + __DSPRegs[5] = tmp; + + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + + while (!DSPCheckMailFromDSP()) + ; + mail = DSPReadMailFromDSP(); + + if ((__DSP_curr_task->flags & DSP_TASK_FLAG_CANCEL) && (mail == 0xDCD10002)) { + mail = 0xDCD10003; + } + + switch (mail) { + case 0xDCD10000: + __DSP_curr_task->state = DSP_TASK_STATE_RUN; + + if (__DSP_curr_task->init_cb) { + (*(__DSP_curr_task->init_cb))((void *)(__DSP_curr_task)); + } + break; + case 0xDCD10001: + __DSP_curr_task->state = DSP_TASK_STATE_RUN; + if (__DSP_curr_task->res_cb) { + (*(__DSP_curr_task->res_cb))((void *)(__DSP_curr_task)); + } + break; + case 0xDCD10002: + if (__DSP_rude_task_pending) { + + if (__DSP_curr_task == __DSP_rude_task) { + DSPSendMailToDSP(0xCDD10003); + while (DSPCheckMailToDSP()) { } + + __DSP_rude_task = NULL; + __DSP_rude_task_pending = FALSE; + + if (__DSP_curr_task->res_cb) { + (*(__DSP_curr_task->res_cb))((void *)(__DSP_curr_task)); + } + + break; + } + else { + DSPSendMailToDSP(0xCDD10001); + while (DSPCheckMailToDSP()) + ; + __DSP_exec_task(__DSP_curr_task, __DSP_rude_task); + + __DSP_curr_task->state = DSP_TASK_STATE_YIELD; + __DSP_curr_task = __DSP_rude_task; + + __DSP_rude_task = NULL; + __DSP_rude_task_pending = FALSE; + + break; + } + } + + if (__DSP_curr_task->next == NULL) { + + if (__DSP_curr_task == __DSP_first_task) { + + DSPSendMailToDSP(0xCDD10003); + while (DSPCheckMailToDSP()) + ; + + if (__DSP_curr_task->res_cb) { + (*(__DSP_curr_task->res_cb))((void *)(__DSP_curr_task)); + } + } + else { + DSPSendMailToDSP(0xCDD10001); + while (DSPCheckMailToDSP()) { } + + __DSP_exec_task(__DSP_curr_task, __DSP_first_task); + + __DSP_curr_task->state = DSP_TASK_STATE_YIELD; + __DSP_curr_task = __DSP_first_task; + } + } + else { + + DSPSendMailToDSP(0xCDD10001); + while (DSPCheckMailToDSP()) { } + + __DSP_exec_task(__DSP_curr_task, __DSP_curr_task->next); + + __DSP_curr_task->state = DSP_TASK_STATE_YIELD; + __DSP_curr_task = __DSP_curr_task->next; + } + break; + case 0xDCD10003: + if (__DSP_rude_task_pending) { + + if (__DSP_curr_task->done_cb) { + (*(__DSP_curr_task->done_cb))((void *)(__DSP_curr_task)); + } + + DSPSendMailToDSP(0xCDD10001); + while (DSPCheckMailToDSP()) + ; + + __DSP_exec_task(NULL, __DSP_rude_task); + + __DSP_remove_task(__DSP_curr_task); + __DSP_curr_task = __DSP_rude_task; + + __DSP_rude_task = NULL; + __DSP_rude_task_pending = FALSE; + + break; + } + + if (__DSP_curr_task->next == NULL) { + + if (__DSP_curr_task == __DSP_first_task) { + + if (__DSP_curr_task->done_cb) { + (*(__DSP_curr_task->done_cb))((void *)(__DSP_curr_task)); + } + + DSPSendMailToDSP(0xCDD10002); + while (DSPCheckMailToDSP()) + ; + + __DSP_curr_task->state = DSP_TASK_STATE_DONE; + + __DSP_remove_task(__DSP_curr_task); + } + else { + + if (__DSP_curr_task->done_cb) { + (*(__DSP_curr_task->done_cb))((void *)(__DSP_curr_task)); + } + + DSPSendMailToDSP(0xCDD10001); + while (DSPCheckMailToDSP()) + ; + + __DSP_curr_task->state = DSP_TASK_STATE_DONE; + __DSP_exec_task(NULL, __DSP_first_task); + + __DSP_curr_task = __DSP_first_task; + __DSP_remove_task(__DSP_last_task); + } + } + else { + if (__DSP_curr_task->done_cb) { + (*(__DSP_curr_task->done_cb))((void *)(__DSP_curr_task)); + } + DSPSendMailToDSP(0xCDD10001); + while (DSPCheckMailToDSP()) + ; + + __DSP_curr_task->state = DSP_TASK_STATE_DONE; + __DSP_exec_task(NULL, __DSP_curr_task->next); + + __DSP_curr_task = __DSP_curr_task->next; + __DSP_remove_task(__DSP_curr_task->prev); + } + break; + + case 0xDCD10004: + + if (__DSP_curr_task->req_cb) { + (*(__DSP_curr_task->req_cb))((void *)(__DSP_curr_task)); + } + break; + default: + break; + } + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); +} + +void __DSP_exec_task(DSPTaskInfo *curr, DSPTaskInfo *next) +{ + if (curr) { + DSPSendMailToDSP((u32)(curr->dram_mmem_addr)); + while (DSPCheckMailToDSP()) + ; + DSPSendMailToDSP((u32)(curr->dram_length)); + while (DSPCheckMailToDSP()) + ; + DSPSendMailToDSP((u32)(curr->dram_addr)); + while (DSPCheckMailToDSP()) + ; + } + else { + + DSPSendMailToDSP((u32)(0)); + while (DSPCheckMailToDSP()) + ; + DSPSendMailToDSP((u32)(0)); + while (DSPCheckMailToDSP()) + ; + DSPSendMailToDSP((u32)(0)); + while (DSPCheckMailToDSP()) + ; + } + + DSPSendMailToDSP((u32)(next->iram_mmem_addr)); + while (DSPCheckMailToDSP()) + ; + DSPSendMailToDSP((u32)(next->iram_length)); + while (DSPCheckMailToDSP()) + ; + DSPSendMailToDSP((u32)(next->iram_addr)); + while (DSPCheckMailToDSP()) + ; + + if (DSP_TASK_STATE_INIT == next->state) { + DSPSendMailToDSP((u32)(next->dsp_init_vector)); + while (DSPCheckMailToDSP()) + ; + DSPSendMailToDSP((u32)(0)); + while (DSPCheckMailToDSP()) + ; + DSPSendMailToDSP((u32)(0)); + while (DSPCheckMailToDSP()) + ; + DSPSendMailToDSP((u32)(0)); + while (DSPCheckMailToDSP()) + ; + } + else { + DSPSendMailToDSP((u32)(next->dsp_resume_vector)); + while (DSPCheckMailToDSP()) + ; + DSPSendMailToDSP((u32)(next->dram_mmem_addr)); + while (DSPCheckMailToDSP()) + ; + + DSPSendMailToDSP((u32)(next->dram_length)); + while (DSPCheckMailToDSP()) + ; + + DSPSendMailToDSP((u32)(next->dram_addr)); + while (DSPCheckMailToDSP()) + ; + } +} + +#define MSG_BASE 0x80F30000 +void __DSP_boot_task(DSPTaskInfo *task) +{ + + volatile u32 mail; + + while (!DSPCheckMailFromDSP()) + ; + + mail = DSPReadMailFromDSP(); + + DSPSendMailToDSP(MSG_BASE | 0xA001); + while (DSPCheckMailToDSP()) { } + DSPSendMailToDSP((u32)(task->iram_mmem_addr)); + while (DSPCheckMailToDSP()) { } + + DSPSendMailToDSP(MSG_BASE | 0xC002); + while (DSPCheckMailToDSP()) { } + DSPSendMailToDSP((u32)(task->iram_addr & 0xffff)); + while (DSPCheckMailToDSP()) { } + + DSPSendMailToDSP(MSG_BASE | 0xA002); + while (DSPCheckMailToDSP()) { } + DSPSendMailToDSP(task->iram_length); + while (DSPCheckMailToDSP()) { } + + DSPSendMailToDSP(MSG_BASE | 0xB002); + while (DSPCheckMailToDSP()) { } + DSPSendMailToDSP(0x00000000); + while (DSPCheckMailToDSP()) { } + + DSPSendMailToDSP(MSG_BASE | 0xD001); + while (DSPCheckMailToDSP()) { } + DSPSendMailToDSP((u32)(0xffff & task->dsp_init_vector)); + while (DSPCheckMailToDSP()) { } + + __DSP_debug_printf("DSP is booting task: 0x%08X\n", task); + __DSP_debug_printf("__DSP_boot_task() : IRAM MMEM ADDR: 0x%08X\n", (u32)(task->iram_mmem_addr)); + __DSP_debug_printf("__DSP_boot_task() : IRAM DSP ADDR : 0x%08X\n", (u32)(task->iram_addr)); + __DSP_debug_printf("__DSP_boot_task() : IRAM LENGTH : 0x%08X\n", (u32)(task->iram_length)); + __DSP_debug_printf("__DSP_boot_task() : DRAM MMEM ADDR: 0x%08X\n", (u32)(task->dram_length)); + __DSP_debug_printf("__DSP_boot_task() : Start Vector : 0x%08X\n", (u32)(task->dsp_init_vector)); +} + +void __DSP_insert_task(DSPTaskInfo *task) +{ + + DSPTaskInfo *temp; + + if (__DSP_first_task == NULL) { + __DSP_first_task = __DSP_last_task = __DSP_curr_task = task; + task->next = task->prev = NULL; + } + else { + temp = __DSP_first_task; + + while (temp) { + if (task->priority < temp->priority) { + task->prev = temp->prev; + temp->prev = task; + task->next = temp; + if (task->prev == NULL) { + __DSP_first_task = task; + } + else { + (task->prev)->next = task; + } + break; + } + temp = temp->next; + } + + if (temp == NULL) { + __DSP_last_task->next = task; + task->next = NULL; + task->prev = __DSP_last_task; + __DSP_last_task = task; + } + } +} + +void __DSP_add_task(DSPTaskInfo *task) +{ + if (__DSP_last_task == NULL) { + __DSP_first_task = __DSP_last_task = __DSP_curr_task = task; + task->next = task->prev = NULL; + } + else { + __DSP_last_task->next = task; + task->next = NULL; + task->prev = __DSP_last_task; + __DSP_last_task = task; + } + + task->state = DSP_TASK_STATE_INIT; + + __DSP_debug_printf("__DSP_add_task() : Added task : 0x%08X\n", task); +} + +void __DSP_remove_task(DSPTaskInfo *task) +{ + + task->flags = DSP_TASK_FLAG_CLEARALL; + task->state = DSP_TASK_STATE_DONE; + + if (__DSP_first_task == task) { + if (task->next) { + __DSP_first_task = (task->next); + task->next->prev = NULL; + } + else { + __DSP_first_task = __DSP_last_task = __DSP_curr_task = NULL; + } + } + else if (__DSP_last_task == task) { + __DSP_last_task = (task->prev); + task->prev->next = NULL; + __DSP_curr_task = __DSP_first_task; + } + else { + __DSP_curr_task = task->next; + task->prev->next = task->next; + task->next->prev = task->prev; + } +} From e957d339b0109620d1a441da6001ba87d0fc1845 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 12 Nov 2024 02:30:56 +0100 Subject: [PATCH 119/311] Imported dolphin/si --- config/GMPE01_00/symbols.txt | 11 + src/dolphin/si/SIBios.c | 817 ++++++++++++++++++++++++++++++++ src/dolphin/si/SISamplingRate.c | 56 +++ 3 files changed, 884 insertions(+) create mode 100644 src/dolphin/si/SIBios.c create mode 100644 src/dolphin/si/SISamplingRate.c diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index c1bb0fa7..9bcdbabc 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -4408,6 +4408,17 @@ SectorSizeTable = .data:0x8013E060; // type:object size:0x20 scope:local LatencyTable = .data:0x8013E080; // type:object size:0x20 scope:local Si = .data:0x8013E0A0; // type:object size:0x14 scope:local data:4byte Type = .data:0x8013E0B4; // type:object size:0x10 scope:local +@464 = .data:0x8013E0C4; // type:object size:0x9 scope:local data:string +lbl_8013E0D0 = .data:0x8013E0D0; // type:object size:0xF scope:local data:string +lbl_8013E0E0 = .data:0x8013E0E0; // type:object size:0xF scope:local data:string +lbl_8013E0F0 = .data:0x8013E0F0; // type:object size:0xD scope:local data:string +lbl_8013E100 = .data:0x8013E100; // type:object size:0xA scope:local data:string +lbl_8013E10C = .data:0x8013E10C; // type:object size:0x10 scope:local data:string +lbl_8013E11C = .data:0x8013E11C; // type:object size:0x14 scope:local data:string +lbl_8013E130 = .data:0x8013E130; // type:object size:0x12 scope:local data:string +lbl_8013E144 = .data:0x8013E144; // type:object size:0x14 scope:local data:string +lbl_8013E158 = .data:0x8013E158; // type:object size:0x9 scope:local data:string +lbl_8013E164 = .data:0x8013E164; // type:object size:0x9 scope:local data:string XYNTSC = .data:0x8013E170; // type:object size:0x30 scope:local XYPAL = .data:0x8013E1A0; // type:object size:0x30 scope:local __vt__Q23std9exception = .data:0x8013E208; // type:object size:0x10 scope:weak diff --git a/src/dolphin/si/SIBios.c b/src/dolphin/si/SIBios.c new file mode 100644 index 00000000..0d34277a --- /dev/null +++ b/src/dolphin/si/SIBios.c @@ -0,0 +1,817 @@ +#include +#include +#include +#include + + +extern OSTime __OSGetSystemTime(); + +typedef struct SIControl { + s32 chan; + u32 poll; + u32 inputBytes; + void *input; + SICallback callback; +} SIControl; + +static SIControl Si = { + -1, + 0, + 0, + NULL, + NULL, +}; + +typedef struct SIComm_s { + u32 tcint : 1; + u32 tcintmsk : 1; + u32 comerr : 1; + u32 rdstint : 1; + u32 rdstintmsk : 1; + u32 pad0 : 4; + u32 outlngth : 7; + u32 pad1 : 1; + u32 inlngth : 7; + u32 pad2 : 5; + u32 channel : 2; + u32 tstart : 1; +} SIComm_s; + +typedef union SIComm_u { + u32 val; + SIComm_s f; +} SIComm_u; + +static SIPacket Packet[SI_MAX_CHAN]; +static OSAlarm Alarm[SI_MAX_CHAN]; +static u32 Type[SI_MAX_CHAN] = { + SI_ERROR_NO_RESPONSE, + SI_ERROR_NO_RESPONSE, + SI_ERROR_NO_RESPONSE, + SI_ERROR_NO_RESPONSE, +}; + +static OSTime TypeTime[SI_MAX_CHAN]; +static OSTime XferTime[SI_MAX_CHAN]; + +static SITypeAndStatusCallback TypeCallback[SI_MAX_CHAN][4]; +static __OSInterruptHandler RDSTHandler[4]; + +u32 __PADFixBits; + +static BOOL __SITransfer(s32 chan, void *output, u32 outputBytes, void *input, u32 inputBytes, SICallback callback); + +static BOOL InputBufferValid[SI_MAX_CHAN]; +static u32 InputBuffer[SI_MAX_CHAN][2]; +static vu32 InputBufferVcount[SI_MAX_CHAN]; + +static BOOL SIGetResponseRaw(s32 chan); +static void GetTypeCallback(s32 chan, u32 error, OSContext *context); + +BOOL SIBusy() +{ + return Si.chan != -1 ? TRUE : FALSE; +} + +BOOL SIIsChanBusy(s32 chan) +{ + return (Packet[chan].chan != -1 || Si.chan == chan); +} + +static void SIClearTCInterrupt() +{ + u32 reg; + + reg = __SIRegs[13]; + reg |= 0x80000000; + reg &= ~0x00000001; + __SIRegs[13] = reg; +} + +static u32 CompleteTransfer() +{ + u32 sr; + u32 i; + u32 rLen; + u8 *input; + + sr = __SIRegs[14]; + + SIClearTCInterrupt(); + + if (Si.chan != -1) { + XferTime[Si.chan] = __OSGetSystemTime(); + + input = Si.input; + + rLen = Si.inputBytes / 4; + for (i = 0; i < rLen; i++) { + *(u32 *)input = __SIRegs[32 + i]; + input += 4; + } + + rLen = Si.inputBytes & 3; + if (rLen) { + u32 temp = __SIRegs[32 + i]; + for (i = 0; i < rLen; i++) { + *input++ = (u8)((temp >> ((3 - i) * 8)) & 0xff); + } + } + + if (__SIRegs[13] & 0x20000000) { + sr >>= 8 * (3 - Si.chan); + sr &= 0xf; + + if ((sr & SI_ERROR_NO_RESPONSE) && !(Type[Si.chan] & SI_ERROR_BUSY)) { + Type[Si.chan] = SI_ERROR_NO_RESPONSE; + } + if (sr == 0) { + sr = SI_ERROR_COLLISION; + } + } + else { + TypeTime[Si.chan] = __OSGetSystemTime(); + sr = 0; + } + + Si.chan = -1; + } + return sr; +} + +static void SITransferNext(s32 chan) +{ + int i; + SIPacket *packet; + + for (i = 0; i < SI_MAX_CHAN; ++i) { + ++chan; + chan %= SI_MAX_CHAN; + packet = &Packet[chan]; + if (packet->chan != -1 && packet->fire <= __OSGetSystemTime()) { + if (__SITransfer(packet->chan, packet->output, packet->outputBytes, packet->input, packet->inputBytes, packet->callback)) { + OSCancelAlarm(&Alarm[chan]); + packet->chan = -1; + } + break; + } + } +} + +static void SIInterruptHandler(__OSInterrupt interrupt, OSContext *context) +{ + u32 reg; + + reg = __SIRegs[13]; + + if ((reg & 0xc0000000) == 0xc0000000) { + s32 chan; + u32 sr; + SICallback callback; + + chan = Si.chan; + sr = CompleteTransfer(); + callback = Si.callback; + Si.callback = 0; + + SITransferNext(chan); + + if (callback) { + callback(chan, sr, context); + } + + sr = __SIRegs[14]; + sr &= 0xf000000 >> (8 * chan); + __SIRegs[14] = sr; + + if (Type[chan] == SI_ERROR_BUSY && !SIIsChanBusy(chan)) { + static u32 cmdTypeAndStatus = 0 << 24; + SITransfer(chan, &cmdTypeAndStatus, 1, &Type[chan], 3, GetTypeCallback, OSMicrosecondsToTicks(65)); + } + } + + if ((reg & 0x18000000) == 0x18000000) { + + int i; + u32 vcount; + u32 x; + + vcount = VIGetCurrentLine() + 1; + x = (Si.poll & 0x03ff0000) >> 16; + + for (i = 0; i < SI_MAX_CHAN; ++i) { + if (SIGetResponseRaw(i)) { + InputBufferVcount[i] = vcount; + } + } + + for (i = 0; i < SI_MAX_CHAN; ++i) { + if (!(Si.poll & (SI_CHAN0_BIT >> (31 - 7 + i)))) { + continue; + } + if (InputBufferVcount[i] == 0 || InputBufferVcount[i] + (x / 2) < vcount) { + return; + } + } + + for (i = 0; i < SI_MAX_CHAN; ++i) { + InputBufferVcount[i] = 0; + } + + for (i = 0; i < 4; ++i) { + if (RDSTHandler[i]) { + RDSTHandler[i](interrupt, context); + } + } + } +} + +static BOOL SIEnablePollingInterrupt(BOOL enable) +{ + BOOL enabled; + BOOL rc; + u32 reg; + int i; + + enabled = OSDisableInterrupts(); + reg = __SIRegs[13]; + rc = (reg & 0x08000000) ? TRUE : FALSE; + if (enable) { + reg |= 0x08000000; + for (i = 0; i < SI_MAX_CHAN; ++i) { + InputBufferVcount[i] = 0; + } + } + else { + reg &= ~0x08000000; + } + reg &= ~0x80000001; + __SIRegs[13] = reg; + OSRestoreInterrupts(enabled); + return rc; +} + +BOOL SIRegisterPollingHandler(__OSInterruptHandler handler) +{ + BOOL enabled; + int i; + + enabled = OSDisableInterrupts(); + for (i = 0; i < 4; ++i) { + if (RDSTHandler[i] == handler) { + OSRestoreInterrupts(enabled); + return TRUE; + } + } + for (i = 0; i < 4; ++i) { + if (RDSTHandler[i] == 0) { + RDSTHandler[i] = handler; + SIEnablePollingInterrupt(TRUE); + OSRestoreInterrupts(enabled); + return TRUE; + } + } + OSRestoreInterrupts(enabled); + return FALSE; +} + +BOOL SIUnregisterPollingHandler(__OSInterruptHandler handler) +{ + BOOL enabled; + int i; + + enabled = OSDisableInterrupts(); + for (i = 0; i < 4; ++i) { + if (RDSTHandler[i] == handler) { + RDSTHandler[i] = 0; + for (i = 0; i < 4; ++i) { + if (RDSTHandler[i]) { + break; + } + } + if (i == 4) { + SIEnablePollingInterrupt(FALSE); + } + OSRestoreInterrupts(enabled); + return TRUE; + break; + } + } + OSRestoreInterrupts(enabled); + return FALSE; +} + +void SIInit(void) +{ + Packet[0].chan = Packet[1].chan = Packet[2].chan = Packet[3].chan = -1; + + Si.poll = 0; + SISetSamplingRate(0); + + while (__SIRegs[13] & 1) + ; + + __SIRegs[13] = 0x80000000; + + __OSSetInterruptHandler(__OS_INTERRUPT_PI_SI, SIInterruptHandler); + __OSUnmaskInterrupts(OS_INTERRUPTMASK_PI_SI); + + SIGetType(0); + SIGetType(1); + SIGetType(2); + SIGetType(3); +} + +#define ROUND(n, a) (((u32)(n) + (a)-1) & ~((a)-1)) + +static BOOL __SITransfer(s32 chan, void *output, u32 outputBytes, void *input, u32 inputBytes, SICallback callback) +{ + BOOL enabled; + u32 rLen; + u32 i; + u32 sr; + SIComm_u comcsr; + + enabled = OSDisableInterrupts(); + if (Si.chan != -1) { + OSRestoreInterrupts(enabled); + return FALSE; + } + + sr = __SIRegs[14]; + sr &= (0xf000000) >> (8 * chan); + __SIRegs[14] = sr; + + Si.chan = chan; + Si.callback = callback; + Si.inputBytes = inputBytes; + Si.input = input; + + rLen = ROUND(outputBytes, 4) / 4; + for (i = 0; i < rLen; i++) { + __SIRegs[32 + i] = ((u32 *)output)[i]; + } + + comcsr.val = __SIRegs[13]; + comcsr.f.tcint = 1; + comcsr.f.tcintmsk = callback ? 1 : 0; + comcsr.f.outlngth = (outputBytes == SI_MAX_COMCSR_OUTLNGTH) ? 0 : outputBytes; + comcsr.f.inlngth = (inputBytes == SI_MAX_COMCSR_INLNGTH) ? 0 : inputBytes; + comcsr.f.channel = chan; + comcsr.f.tstart = 1; + __SIRegs[13] = comcsr.val; + + OSRestoreInterrupts(enabled); + + return TRUE; +} + +u32 SISync(void) +{ + BOOL enabled; + u32 sr; + + while (__SIRegs[13] & 1) + ; + + enabled = OSDisableInterrupts(); + sr = CompleteTransfer(); + + SITransferNext(SI_MAX_CHAN); + + OSRestoreInterrupts(enabled); + + return sr; +} + +u32 SIGetStatus(s32 chan) +{ + BOOL enabled; + u32 sr; + int chanShift; + + enabled = OSDisableInterrupts(); + sr = __SIRegs[14]; + chanShift = 8 * (SI_MAX_CHAN - 1 - chan); + sr >>= chanShift; + if (sr & SI_ERROR_NO_RESPONSE) { + if (!(Type[chan] & SI_ERROR_BUSY)) { + Type[chan] = SI_ERROR_NO_RESPONSE; + } + } + OSRestoreInterrupts(enabled); + return sr; +} + +void SISetCommand(s32 chan, u32 command) +{ + __SIRegs[3 * chan] = command; +} + +u32 SIGetCommand(s32 chan) +{ + return __SIRegs[3 * chan]; +} + +void SITransferCommands(void) +{ + __SIRegs[14] = 0x80000000; +} + +u32 SISetXY(u32 x, u32 y) +{ + u32 poll; + BOOL enabled; + + poll = x << 16; + poll |= y << 8; + + enabled = OSDisableInterrupts(); + Si.poll &= ~(0x03ff0000 | 0x0000ff00); + Si.poll |= poll; + poll = Si.poll; + __SIRegs[12] = poll; + OSRestoreInterrupts(enabled); + return poll; +} + +u32 SIEnablePolling(u32 poll) +{ + BOOL enabled; + u32 en; + + if (poll == 0) { + return Si.poll; + } + + enabled = OSDisableInterrupts(); + + poll >>= (31 - 7); + en = poll & 0xf0; + + poll &= (en >> 4) | 0x03fffff0; + + poll &= ~0x03ffff00; + + Si.poll &= ~(en >> 4); + + Si.poll |= poll; + + poll = Si.poll; + + SITransferCommands(); + + __SIRegs[12] = poll; + + OSRestoreInterrupts(enabled); + + return poll; +} + +u32 SIDisablePolling(u32 poll) +{ + BOOL enabled; + + if (poll == 0) { + return Si.poll; + } + + enabled = OSDisableInterrupts(); + + poll >>= (31 - 7); + poll &= 0xf0; + + poll = Si.poll & ~poll; + + __SIRegs[12] = poll; + Si.poll = poll; + + OSRestoreInterrupts(enabled); + return poll; +} + +static BOOL SIGetResponseRaw(s32 chan) +{ + u32 sr; + + sr = SIGetStatus(chan); + if (sr & SI_ERROR_RDST) { + InputBuffer[chan][0] = __SIRegs[3 * chan + 1]; + InputBuffer[chan][1] = __SIRegs[3 * chan + 2]; + InputBufferValid[chan] = TRUE; + return TRUE; + } + return FALSE; +} + +BOOL SIGetResponse(s32 chan, void *data) +{ + BOOL rc; + BOOL enabled; + + enabled = OSDisableInterrupts(); + SIGetResponseRaw(chan); + rc = InputBufferValid[chan]; + InputBufferValid[chan] = FALSE; + if (rc) { + ((u32 *)data)[0] = InputBuffer[chan][0]; + ((u32 *)data)[1] = InputBuffer[chan][1]; + } + OSRestoreInterrupts(enabled); + return rc; +} + +static void AlarmHandler(OSAlarm *alarm, OSContext *context) +{ +#pragma unused(context) + s32 chan; + SIPacket *packet; + + chan = alarm - Alarm; + packet = &Packet[chan]; + if (packet->chan != -1) { + if (__SITransfer(packet->chan, packet->output, packet->outputBytes, packet->input, packet->inputBytes, packet->callback)) { + packet->chan = -1; + } + } +} + +BOOL SITransfer(s32 chan, void *output, u32 outputBytes, void *input, u32 inputBytes, SICallback callback, OSTime delay) +{ + BOOL enabled; + SIPacket *packet = &Packet[chan]; + OSTime now; + OSTime fire; + + enabled = OSDisableInterrupts(); + if (packet->chan != -1 || Si.chan == chan) { + OSRestoreInterrupts(enabled); + return FALSE; + } + + now = __OSGetSystemTime(); + if (delay == 0) { + fire = now; + } + else { + fire = XferTime[chan] + delay; + } + if (now < fire) { + delay = fire - now; + OSSetAlarm(&Alarm[chan], delay, AlarmHandler); + } + else if (__SITransfer(chan, output, outputBytes, input, inputBytes, callback)) { + OSRestoreInterrupts(enabled); + return TRUE; + } + + packet->chan = chan; + packet->output = output; + packet->outputBytes = outputBytes; + packet->input = input; + packet->inputBytes = inputBytes; + packet->callback = callback; + packet->fire = fire; + + OSRestoreInterrupts(enabled); + return TRUE; +} + +static void CallTypeAndStatusCallback(s32 chan, u32 type) +{ + SITypeAndStatusCallback callback; + int i; + + for (i = 0; i < 4; ++i) { + callback = TypeCallback[chan][i]; + if (callback) { + TypeCallback[chan][i] = 0; + callback(chan, type); + } + } +} + +static void GetTypeCallback(s32 chan, u32 error, OSContext *context) +{ + static u32 cmdFixDevice[SI_MAX_CHAN]; + u32 type; + u32 chanBit; + BOOL fix; + u32 id; + + Type[chan] &= ~SI_ERROR_BUSY; + Type[chan] |= error; + TypeTime[chan] = __OSGetSystemTime(); + + type = Type[chan]; + + chanBit = SI_CHAN0_BIT >> chan; + fix = (BOOL)(__PADFixBits & chanBit); + __PADFixBits &= ~chanBit; + + if ((error & (SI_ERROR_UNDER_RUN | SI_ERROR_OVER_RUN | SI_ERROR_NO_RESPONSE | SI_ERROR_COLLISION)) || (type & SI_TYPE_MASK) != SI_TYPE_DOLPHIN + || !(type & SI_GC_WIRELESS) || (type & SI_WIRELESS_IR)) { + OSSetWirelessID(chan, 0); + CallTypeAndStatusCallback(chan, Type[chan]); + return; + } + + id = (u32)(OSGetWirelessID(chan) << 8); + + if (fix && (id & SI_WIRELESS_FIX_ID)) { + cmdFixDevice[chan] = 0x4Eu << 24 | (id & SI_WIRELESS_TYPE_ID) | SI_WIRELESS_FIX_ID; + Type[chan] = SI_ERROR_BUSY; + SITransfer(chan, &cmdFixDevice[chan], 3, &Type[chan], 3, GetTypeCallback, 0); + return; + } + + if (type & SI_WIRELESS_FIX_ID) { + if ((id & SI_WIRELESS_TYPE_ID) != (type & SI_WIRELESS_TYPE_ID)) { + if (!(id & SI_WIRELESS_FIX_ID)) { + id = type & SI_WIRELESS_TYPE_ID; + id |= SI_WIRELESS_FIX_ID; + OSSetWirelessID(chan, (u16)((id >> 8) & 0xffff)); + } + + cmdFixDevice[chan] = 0x4E << 24 | id; + Type[chan] = SI_ERROR_BUSY; + SITransfer(chan, &cmdFixDevice[chan], 3, &Type[chan], 3, GetTypeCallback, 0); + return; + } + } + else if (type & SI_WIRELESS_RECEIVED) { + id = type & SI_WIRELESS_TYPE_ID; + id |= SI_WIRELESS_FIX_ID; + + OSSetWirelessID(chan, (u16)((id >> 8) & 0xffff)); + + cmdFixDevice[chan] = 0x4E << 24 | id; + Type[chan] = SI_ERROR_BUSY; + SITransfer(chan, &cmdFixDevice[chan], 3, &Type[chan], 3, GetTypeCallback, 0); + return; + } + else { + OSSetWirelessID(chan, 0); + } + + CallTypeAndStatusCallback(chan, Type[chan]); +} + +u32 SIGetType(s32 chan) +{ + static u32 cmdTypeAndStatus; + BOOL enabled; + u32 type; + OSTime diff; + + enabled = OSDisableInterrupts(); + + type = Type[chan]; + diff = __OSGetSystemTime() - TypeTime[chan]; + if (Si.poll & (0x80 >> chan)) { + if (type != SI_ERROR_NO_RESPONSE) { + TypeTime[chan] = __OSGetSystemTime(); + OSRestoreInterrupts(enabled); + return type; + } + else { + type = Type[chan] = SI_ERROR_BUSY; + } + } + else if (diff <= OSMillisecondsToTicks(50) && type != SI_ERROR_NO_RESPONSE) { + OSRestoreInterrupts(enabled); + return type; + } + else if (diff <= OSMillisecondsToTicks(75)) { + Type[chan] = SI_ERROR_BUSY; + } + else { + type = Type[chan] = SI_ERROR_BUSY; + } + TypeTime[chan] = __OSGetSystemTime(); + + SITransfer(chan, &cmdTypeAndStatus, 1, &Type[chan], 3, GetTypeCallback, OSMicrosecondsToTicks(65)); + + OSRestoreInterrupts(enabled); + return type; +} + +u32 SIGetTypeAsync(s32 chan, SITypeAndStatusCallback callback) +{ + BOOL enabled; + u32 type; + + enabled = OSDisableInterrupts(); + type = SIGetType(chan); + if (Type[chan] & SI_ERROR_BUSY) { + int i; + + for (i = 0; i < 4; ++i) { + if (TypeCallback[chan][i] == callback) { + break; + } + if (TypeCallback[chan][i] == 0) { + TypeCallback[chan][i] = callback; + break; + } + } + } + else { + callback(chan, type); + } + OSRestoreInterrupts(enabled); + return type; +} + +u32 SIDecodeType(u32 type) +{ + u32 error; + + error = type & 0xff; + type &= ~0xff; + + if (error & SI_ERROR_NO_RESPONSE) { + return SI_ERROR_NO_RESPONSE; + } + if (error & (SI_ERROR_UNDER_RUN | SI_ERROR_OVER_RUN | SI_ERROR_COLLISION | SI_ERROR_UNKNOWN)) { + return SI_ERROR_UNKNOWN; + } + if (error) { + return SI_ERROR_BUSY; + } + + if ((type & SI_TYPE_MASK) == SI_TYPE_N64) { + switch (type & 0xffff0000) { + case SI_N64_CONTROLLER: + case SI_N64_MIC: + case SI_N64_KEYBOARD: + case SI_N64_MOUSE: + case SI_GBA: + return type & 0xffff0000; + break; + } + return SI_ERROR_UNKNOWN; + } + + if ((type & SI_TYPE_MASK) != SI_TYPE_GC) { + + return SI_ERROR_UNKNOWN; + } + switch (type & 0xffff0000) { + case SI_GC_CONTROLLER: + case SI_GC_STEERING: + return type & 0xffff0000; + break; + } + + if ((type & 0xffe00000) == SI_GC_KEYBOARD) { + return SI_GC_KEYBOARD; + } + + if ((type & SI_GC_WIRELESS) && !(type & SI_WIRELESS_IR)) { + if ((type & SI_GC_WAVEBIRD) == SI_GC_WAVEBIRD) { + return SI_GC_WAVEBIRD; + } + else if (!(type & SI_WIRELESS_STATE)) { + return SI_GC_RECEIVER; + } + } + + if ((type & SI_GC_CONTROLLER) == SI_GC_CONTROLLER) { + return SI_GC_CONTROLLER; + } + return SI_ERROR_UNKNOWN; +} + +u32 SIProbe(s32 chan) +{ + return SIDecodeType(SIGetType(chan)); +} + +char *SIGetTypeString(u32 type) +{ + switch (SIDecodeType(type)) { + case SI_ERROR_NO_RESPONSE: + return "No response"; + case SI_N64_CONTROLLER: + return "N64 controller"; + case SI_N64_MIC: + return "N64 microphone"; + case SI_N64_KEYBOARD: + return "N64 keyboard"; + case SI_N64_MOUSE: + return "N64 mouse"; + case SI_GBA: + return "GameBoy Advance"; + case SI_GC_CONTROLLER: + return "Standard controller"; + case SI_GC_RECEIVER: + return "Wireless receiver"; + case SI_GC_WAVEBIRD: + return "WaveBird controller"; + case SI_GC_KEYBOARD: + return "Keyboard"; + case SI_GC_STEERING: + return "Steering"; + } +} diff --git a/src/dolphin/si/SISamplingRate.c b/src/dolphin/si/SISamplingRate.c new file mode 100644 index 00000000..9b799fbc --- /dev/null +++ b/src/dolphin/si/SISamplingRate.c @@ -0,0 +1,56 @@ +#include "dolphin/sipriv.h" +#include "dolphin/vi.h" +#include "dolphin/hw_regs.h" + +#pragma dont_inline on +static u32 SamplingRate; + +typedef struct XY { + u16 line; + u8 count; +} XY; + +static XY XYNTSC[12] = { + {263 - 17, 2}, {15, 18}, {30, 9}, {44, 6}, {52, 5}, {65, 4}, + {87, 3}, {87, 3}, {87, 3}, {131, 2}, {131, 2}, {131, 2}, +}; + +static XY XYPAL[12] = { + {313 - 17, 2}, {15, 21}, {29, 11}, {45, 7}, {52, 6}, {63, 5}, + {78, 4}, {104, 3}, {104, 3}, {104, 3}, {104, 3}, {156, 2}, +}; + +void SISetSamplingRate(u32 msec) { + XY* xy; + BOOL enabled; + + if (msec > 11) { + msec = 11; + } + + enabled = OSDisableInterrupts(); + + SamplingRate = msec; + + switch (VIGetTvFormat()) { + case VI_NTSC: + case VI_MPAL: + case VI_EURGB60: + xy = XYNTSC; + break; + case VI_PAL: + xy = XYPAL; + break; + default: + OSReport("SISetSamplingRate: unknown TV format. Use default."); + msec = 0; + xy = XYNTSC; + break; + } + + SISetXY((__VIRegs[54] & 1 ? 2u : 1u) * xy[msec].line, xy[msec].count); + OSRestoreInterrupts(enabled); +} + +void SIRefreshSamplingRate() { SISetSamplingRate(SamplingRate); } +#pragma dont_inline reset From 61676fc9820a87cff3e285d601ef9fbd754591ca Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 12 Nov 2024 03:01:02 +0100 Subject: [PATCH 120/311] Imported dolphin/exi --- configure.py | 8 +- include/dolphin/exi.h | 27 ++ src/dolphin/exi/EXIBios.c | 684 ++++++++++++++++++++++++++++++++++++++ src/dolphin/exi/EXIUart.c | 184 ++++++++++ 4 files changed, 899 insertions(+), 4 deletions(-) create mode 100644 include/dolphin/exi.h create mode 100644 src/dolphin/exi/EXIBios.c create mode 100644 src/dolphin/exi/EXIUart.c diff --git a/configure.py b/configure.py index 27a4ba3a..0048e928 100644 --- a/configure.py +++ b/configure.py @@ -594,15 +594,15 @@ config.libs = [ DolphinLib( "exi", [ - Object(NonMatching, "dolphin/exi/EXIBios.c"), - Object(NonMatching, "dolphin/exi/EXIUart.c"), + Object(Matching, "dolphin/exi/EXIBios.c"), + Object(Matching, "dolphin/exi/EXIUart.c"), ], ), DolphinLib( "si", [ - Object(NonMatching, "dolphin/si/SIBios.c"), - Object(NonMatching, "dolphin/si/SISamplingRate.c"), + Object(Matching, "dolphin/si/SIBios.c"), + Object(Matching, "dolphin/si/SISamplingRate.c"), ], ), DolphinLib( diff --git a/include/dolphin/exi.h b/include/dolphin/exi.h new file mode 100644 index 00000000..5187b6a8 --- /dev/null +++ b/include/dolphin/exi.h @@ -0,0 +1,27 @@ +#ifndef _DOLPHIN_EXI +#define _DOLPHIN_EXI + +#include + +typedef void (*EXICallback)(s32 chan, OSContext *context); + +EXICallback EXISetExiCallback(s32 channel, EXICallback callback); + +void EXIInit(void); +BOOL EXILock(s32 channel, u32 device, EXICallback callback); +BOOL EXIUnlock(s32 channel); +BOOL EXISelect(s32 channel, u32 device, u32 frequency); +BOOL EXIDeselect(s32 channel); +BOOL EXIImm(s32 channel, void *buffer, s32 length, u32 type, EXICallback callback); +BOOL EXIImmEx(s32 channel, void *buffer, s32 length, u32 type); +BOOL EXIDma(s32 channel, void *buffer, s32 length, u32 type, EXICallback callback); +BOOL EXISync(s32 channel); +BOOL EXIProbe(s32 channel); +s32 EXIProbeEx(s32 channel); +BOOL EXIAttach(s32 channel, EXICallback callback); +BOOL EXIDetach(s32 channel); +u32 EXIGetState(s32 channel); +s32 EXIGetID(s32 channel, u32 device, u32 *id); +void EXIProbeReset(void); + +#endif diff --git a/src/dolphin/exi/EXIBios.c b/src/dolphin/exi/EXIBios.c new file mode 100644 index 00000000..b8843fa2 --- /dev/null +++ b/src/dolphin/exi/EXIBios.c @@ -0,0 +1,684 @@ +#include +#include +#include + +#define MAX_DEV 3 +#define MAX_CHAN 3 + +#define REG_MAX 5 +#define REG(chan, idx) (__EXIRegs[((chan)*REG_MAX) + (idx)]) + +#define STATE_IDLE 0x00 +#define STATE_DMA 0x01 +#define STATE_IMM 0x02 +#define STATE_BUSY (STATE_DMA | STATE_IMM) +#define STATE_SELECTED 0x04 +#define STATE_ATTACHED 0x08 +#define STATE_LOCKED 0x10 + +#define EXI_0CR(tstart, dma, rw, tlen) ((((u32)(tstart)) << 0) | (((u32)(dma)) << 1) | (((u32)(rw)) << 2) | (((u32)(tlen)) << 4)) + +#define CPR_CS(x) ((1u << (x)) << 7) +#define CPR_CLK(x) ((x) << 4) + +typedef struct EXIControl { + EXICallback exiCallback; + EXICallback tcCallback; + EXICallback extCallback; + vu32 state; + int immLen; + u8 *immBuf; + u32 dev; + u32 id; + s32 idTime; + int items; + struct { + u32 dev; + EXICallback callback; + } queue[MAX_DEV]; +} EXIControl; + +static EXIControl Ecb[MAX_CHAN]; + +s32 __EXIProbeStartTime[2] : (OS_BASE_CACHED | 0x30C0); + +static void SetExiInterruptMask(s32 chan, EXIControl *exi) +{ + EXIControl *exi2; + + exi2 = &Ecb[2]; + switch (chan) { + case 0: + if ((exi->exiCallback == 0 && exi2->exiCallback == 0) || (exi->state & STATE_LOCKED)) { + __OSMaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXI | OS_INTERRUPTMASK_EXI_2_EXI); + } + else { + __OSUnmaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXI | OS_INTERRUPTMASK_EXI_2_EXI); + } + break; + case 1: + if (exi->exiCallback == 0 || (exi->state & STATE_LOCKED)) { + __OSMaskInterrupts(OS_INTERRUPTMASK_EXI_1_EXI); + } + else { + __OSUnmaskInterrupts(OS_INTERRUPTMASK_EXI_1_EXI); + } + break; + case 2: + if (__OSGetInterruptHandler(__OS_INTERRUPT_PI_DEBUG) == 0 || (exi->state & STATE_LOCKED)) { + __OSMaskInterrupts(OS_INTERRUPTMASK_PI_DEBUG); + } + else { + __OSUnmaskInterrupts(OS_INTERRUPTMASK_PI_DEBUG); + } + break; + } +} + +static void CompleteTransfer(s32 chan) +{ + EXIControl *exi = &Ecb[chan]; + u8 *buf; + u32 data; + int i; + int len; + + if (exi->state & STATE_BUSY) { + if ((exi->state & STATE_IMM) && (len = exi->immLen)) { + buf = exi->immBuf; + data = REG(chan, 4); + for (i = 0; i < len; i++) { + *buf++ = (u8)((data >> ((3 - i) * 8)) & 0xff); + } + } + exi->state &= ~STATE_BUSY; + } +} + +BOOL EXIImm(s32 chan, void *buf, s32 len, u32 type, EXICallback callback) +{ + EXIControl *exi = &Ecb[chan]; + BOOL enabled; + + enabled = OSDisableInterrupts(); + if ((exi->state & STATE_BUSY) || !(exi->state & STATE_SELECTED)) { + OSRestoreInterrupts(enabled); + return FALSE; + } + + exi->tcCallback = callback; + if (exi->tcCallback) { + EXIClearInterrupts(chan, FALSE, TRUE, FALSE); + __OSUnmaskInterrupts(OS_INTERRUPTMASK_EXI_0_TC >> (3 * chan)); + } + + exi->state |= STATE_IMM; + + if (type != EXI_READ) { + u32 data; + int i; + + data = 0; + for (i = 0; i < len; i++) { + data |= ((u8 *)buf)[i] << ((3 - i) * 8); + } + REG(chan, 4) = data; + } + + exi->immBuf = buf; + exi->immLen = (type != EXI_WRITE) ? len : 0; + + REG(chan, 3) = EXI_0CR(1, 0, type, len - 1); + + OSRestoreInterrupts(enabled); + + return TRUE; +} + +BOOL EXIImmEx(s32 chan, void *buf, s32 len, u32 mode) +{ + s32 xLen; + + while (len) { + xLen = (len < 4) ? len : 4; + if (!EXIImm(chan, buf, xLen, mode, NULL)) { + return FALSE; + } + + if (!EXISync(chan)) { + return FALSE; + } + + (u8 *)buf += xLen; + len -= xLen; + } + return TRUE; +} + +BOOL EXIDma(s32 chan, void *buf, s32 len, u32 type, EXICallback callback) +{ + EXIControl *exi = &Ecb[chan]; + BOOL enabled; + + enabled = OSDisableInterrupts(); + if ((exi->state & STATE_BUSY) || !(exi->state & STATE_SELECTED)) { + OSRestoreInterrupts(enabled); + return FALSE; + } + + exi->tcCallback = callback; + if (exi->tcCallback) { + EXIClearInterrupts(chan, FALSE, TRUE, FALSE); + __OSUnmaskInterrupts(OS_INTERRUPTMASK_EXI_0_TC >> (3 * chan)); + } + + exi->state |= STATE_DMA; + + REG(chan, 1) = (u32)buf & 0x3ffffe0; + REG(chan, 2) = (u32)len; + REG(chan, 3) = EXI_0CR(1, 1, type, 0); + + OSRestoreInterrupts(enabled); + + return TRUE; +} + +extern u32 __OSGetDIConfig(void); + +vu16 __OSDeviceCode : (OS_BASE_CACHED | 0x30E6); + +BOOL EXISync(s32 chan) +{ + EXIControl *exi = &Ecb[chan]; + BOOL rc = FALSE; + BOOL enabled; + + while (exi->state & STATE_SELECTED) { + if (((REG(chan, 3) & 1) >> 0) == 0) { + enabled = OSDisableInterrupts(); + if (exi->state & STATE_SELECTED) { + CompleteTransfer(chan); + if (__OSGetDIConfig() != 0xff || exi->immLen != 4 || (REG(chan, 0) & 0x00000070) != (EXI_FREQ_1M << 4) + || (REG(chan, 4) != EXI_USB_ADAPTER && REG(chan, 4) != EXI_IS_VIEWER && REG(chan, 4) != 0x04220001) || __OSDeviceCode == 0x8200) { + rc = TRUE; + } + } + OSRestoreInterrupts(enabled); + break; + } + } + return rc; +} + +u32 EXIClearInterrupts(s32 chan, BOOL exi, BOOL tc, BOOL ext) +{ + u32 cpr; + u32 prev; + + prev = cpr = REG(chan, 0); + cpr &= 0x7f5; + if (exi) + cpr |= 2; + if (tc) + cpr |= 8; + if (ext) + cpr |= 0x800; + REG(chan, 0) = cpr; + return prev; +} + +EXICallback EXISetExiCallback(s32 chan, EXICallback exiCallback) +{ + EXIControl *exi = &Ecb[chan]; + EXICallback prev; + BOOL enabled; + + enabled = OSDisableInterrupts(); + prev = exi->exiCallback; + exi->exiCallback = exiCallback; + + if (chan != 2) { + SetExiInterruptMask(chan, exi); + } + else { + SetExiInterruptMask(0, &Ecb[0]); + } + + OSRestoreInterrupts(enabled); + return prev; +} + +void EXIProbeReset(void) +{ + __EXIProbeStartTime[0] = __EXIProbeStartTime[1] = 0; + Ecb[0].idTime = Ecb[1].idTime = 0; + __EXIProbe(0); + __EXIProbe(1); +} + +static BOOL __EXIProbe(s32 chan) +{ + EXIControl *exi = &Ecb[chan]; + BOOL enabled; + BOOL rc; + u32 cpr; + s32 t; + + if (chan == 2) { + return TRUE; + } + + rc = TRUE; + enabled = OSDisableInterrupts(); + cpr = REG(chan, 0); + if (!(exi->state & EXI_STATE_ATTACHED)) { + if (cpr & 0x00000800) { + EXIClearInterrupts(chan, FALSE, FALSE, TRUE); + __EXIProbeStartTime[chan] = exi->idTime = 0; + } + + if (cpr & 0x00001000) { + t = (s32)(OSTicksToMilliseconds(OSGetTime()) / 100) + 1; + if (__EXIProbeStartTime[chan] == 0) { + __EXIProbeStartTime[chan] = t; + } + if (t - __EXIProbeStartTime[chan] < 300 / 100) { + rc = FALSE; + } + } + else { + __EXIProbeStartTime[chan] = exi->idTime = 0; + rc = FALSE; + } + } + else if (!(cpr & 0x00001000) || (cpr & 0x00000800)) { + __EXIProbeStartTime[chan] = exi->idTime = 0; + rc = FALSE; + } + OSRestoreInterrupts(enabled); + + return rc; +} + +BOOL EXIProbe(s32 chan) +{ + EXIControl *exi = &Ecb[chan]; + BOOL rc; + u32 id; + + rc = __EXIProbe(chan); + if (rc && exi->idTime == 0) { + rc = EXIGetID(chan, 0, &id) ? TRUE : FALSE; + } + return rc; +} + +s32 EXIProbeEx(s32 chan) +{ + if (EXIProbe(chan)) { + return 1; + } + else if (__EXIProbeStartTime[chan] != 0) { + return 0; + } + else { + return -1; + } +} + +static BOOL __EXIAttach(s32 chan, EXICallback extCallback) +{ + EXIControl *exi = &Ecb[chan]; + BOOL enabled; + + enabled = OSDisableInterrupts(); + if ((exi->state & EXI_STATE_ATTACHED) || __EXIProbe(chan) == FALSE) { + OSRestoreInterrupts(enabled); + return FALSE; + } + + EXIClearInterrupts(chan, TRUE, FALSE, FALSE); + + exi->extCallback = extCallback; + __OSUnmaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXT >> (3 * chan)); + exi->state |= STATE_ATTACHED; + OSRestoreInterrupts(enabled); + + return TRUE; +} + +BOOL EXIAttach(s32 chan, EXICallback extCallback) +{ + EXIControl *exi = &Ecb[chan]; + BOOL enabled; + BOOL rc; + + EXIProbe(chan); + + enabled = OSDisableInterrupts(); + if (exi->idTime == 0) { + OSRestoreInterrupts(enabled); + return FALSE; + } + rc = __EXIAttach(chan, extCallback); + OSRestoreInterrupts(enabled); + return rc; +} + +BOOL EXIDetach(s32 chan) +{ + EXIControl *exi = &Ecb[chan]; + BOOL enabled; + + enabled = OSDisableInterrupts(); + if (!(exi->state & STATE_ATTACHED)) { + OSRestoreInterrupts(enabled); + return TRUE; + } + if ((exi->state & STATE_LOCKED) && exi->dev == 0) { + OSRestoreInterrupts(enabled); + return FALSE; + } + + exi->state &= ~STATE_ATTACHED; + __OSMaskInterrupts((OS_INTERRUPTMASK_EXI_0_EXT | OS_INTERRUPTMASK_EXI_0_EXI) >> (3 * chan)); + OSRestoreInterrupts(enabled); + return TRUE; +} + +BOOL EXISelect(s32 chan, u32 dev, u32 freq) +{ + EXIControl *exi = &Ecb[chan]; + u32 cpr; + BOOL enabled; + + enabled = OSDisableInterrupts(); + if ((exi->state & STATE_SELECTED) + || chan != 2 && (dev == 0 && !(exi->state & STATE_ATTACHED) && !__EXIProbe(chan) || !(exi->state & STATE_LOCKED) || (exi->dev != dev))) { + OSRestoreInterrupts(enabled); + return FALSE; + } + + exi->state |= STATE_SELECTED; + cpr = REG(chan, 0); + cpr &= 0x405; + cpr |= CPR_CS(dev) | CPR_CLK(freq); + REG(chan, 0) = cpr; + + if (exi->state & STATE_ATTACHED) { + switch (chan) { + case 0: + __OSMaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXT); + break; + case 1: + __OSMaskInterrupts(OS_INTERRUPTMASK_EXI_1_EXT); + break; + } + } + + OSRestoreInterrupts(enabled); + return TRUE; +} + +BOOL EXIDeselect(s32 chan) +{ + EXIControl *exi = &Ecb[chan]; + u32 cpr; + BOOL enabled; + + enabled = OSDisableInterrupts(); + if (!(exi->state & STATE_SELECTED)) { + OSRestoreInterrupts(enabled); + return FALSE; + } + exi->state &= ~STATE_SELECTED; + cpr = REG(chan, 0); + REG(chan, 0) = cpr & 0x405; + + if (exi->state & STATE_ATTACHED) { + switch (chan) { + case 0: + __OSUnmaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXT); + break; + case 1: + __OSUnmaskInterrupts(OS_INTERRUPTMASK_EXI_1_EXT); + break; + } + } + + OSRestoreInterrupts(enabled); + + if (chan != 2 && (cpr & CPR_CS(0))) { + return __EXIProbe(chan) ? TRUE : FALSE; + } + + return TRUE; +} + +static void EXIIntrruptHandler(__OSInterrupt interrupt, OSContext *context) +{ + s32 chan; + EXIControl *exi; + EXICallback callback; + + chan = (interrupt - __OS_INTERRUPT_EXI_0_EXI) / 3; + exi = &Ecb[chan]; + EXIClearInterrupts(chan, TRUE, FALSE, FALSE); + callback = exi->exiCallback; + if (callback) { + OSContext exceptionContext; + + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + + callback(chan, context); + + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); + } +} + +static void TCIntrruptHandler(__OSInterrupt interrupt, OSContext *context) +{ + OSContext exceptionContext; + s32 chan; + EXIControl *exi; + EXICallback callback; + + chan = (interrupt - __OS_INTERRUPT_EXI_0_TC) / 3; + exi = &Ecb[chan]; + __OSMaskInterrupts(OS_INTERRUPTMASK(interrupt)); + EXIClearInterrupts(chan, FALSE, TRUE, FALSE); + callback = exi->tcCallback; + if (callback) { + exi->tcCallback = 0; + CompleteTransfer(chan); + + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + + callback(chan, context); + + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); + } +} + +static void EXTIntrruptHandler(__OSInterrupt interrupt, OSContext *context) +{ + s32 chan; + EXIControl *exi; + EXICallback callback; + + chan = (interrupt - __OS_INTERRUPT_EXI_0_EXT) / 3; + __OSMaskInterrupts((OS_INTERRUPTMASK_EXI_0_EXT | OS_INTERRUPTMASK_EXI_0_EXI) >> (3 * chan)); + exi = &Ecb[chan]; + callback = exi->extCallback; + exi->state &= ~STATE_ATTACHED; + if (callback) { + OSContext exceptionContext; + + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + + exi->extCallback = 0; + callback(chan, context); + + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); + } +} + +void EXIInit(void) +{ + __OSMaskInterrupts(OS_INTERRUPTMASK_EXI_0_EXI | OS_INTERRUPTMASK_EXI_0_TC | OS_INTERRUPTMASK_EXI_0_EXT | OS_INTERRUPTMASK_EXI_1_EXI + | OS_INTERRUPTMASK_EXI_1_TC | OS_INTERRUPTMASK_EXI_1_EXT | OS_INTERRUPTMASK_EXI_2_EXI | OS_INTERRUPTMASK_EXI_2_TC); + + REG(0, 0) = 0; + REG(1, 0) = 0; + REG(2, 0) = 0; + + REG(0, 0) = 0x00002000; + + __OSSetInterruptHandler(__OS_INTERRUPT_EXI_0_EXI, EXIIntrruptHandler); + __OSSetInterruptHandler(__OS_INTERRUPT_EXI_0_TC, TCIntrruptHandler); + __OSSetInterruptHandler(__OS_INTERRUPT_EXI_0_EXT, EXTIntrruptHandler); + __OSSetInterruptHandler(__OS_INTERRUPT_EXI_1_EXI, EXIIntrruptHandler); + __OSSetInterruptHandler(__OS_INTERRUPT_EXI_1_TC, TCIntrruptHandler); + __OSSetInterruptHandler(__OS_INTERRUPT_EXI_1_EXT, EXTIntrruptHandler); + __OSSetInterruptHandler(__OS_INTERRUPT_EXI_2_EXI, EXIIntrruptHandler); + __OSSetInterruptHandler(__OS_INTERRUPT_EXI_2_TC, TCIntrruptHandler); + + if ((OSGetConsoleType() & 0x10000000) != 0) { + __EXIProbeStartTime[0] = __EXIProbeStartTime[1] = 0; + Ecb[0].idTime = Ecb[1].idTime = 0; + __EXIProbe(0); + __EXIProbe(1); + } +} + +BOOL EXILock(s32 chan, u32 dev, EXICallback unlockedCallback) +{ + EXIControl *exi = &Ecb[chan]; + BOOL enabled; + int i; + + enabled = OSDisableInterrupts(); + if (exi->state & STATE_LOCKED) { + if (unlockedCallback) { + for (i = 0; i < exi->items; i++) { + if (exi->queue[i].dev == dev) { + OSRestoreInterrupts(enabled); + return FALSE; + } + } + exi->queue[exi->items].callback = unlockedCallback; + exi->queue[exi->items].dev = dev; + exi->items++; + } + OSRestoreInterrupts(enabled); + return FALSE; + } + + exi->state |= STATE_LOCKED; + exi->dev = dev; + SetExiInterruptMask(chan, exi); + + OSRestoreInterrupts(enabled); + return TRUE; +} + +BOOL EXIUnlock(s32 chan) +{ + EXIControl *exi = &Ecb[chan]; + BOOL enabled; + EXICallback unlockedCallback; + + enabled = OSDisableInterrupts(); + if (!(exi->state & STATE_LOCKED)) { + OSRestoreInterrupts(enabled); + return FALSE; + } + exi->state &= ~STATE_LOCKED; + SetExiInterruptMask(chan, exi); + + if (0 < exi->items) { + unlockedCallback = exi->queue[0].callback; + if (0 < --exi->items) { + memmove(&exi->queue[0], &exi->queue[1], sizeof(exi->queue[0]) * exi->items); + } + unlockedCallback(chan, 0); + } + + OSRestoreInterrupts(enabled); + return TRUE; +} + +u32 EXIGetState(s32 chan) +{ + EXIControl *exi = &Ecb[chan]; + + return (u32)exi->state; +} + +static void UnlockedHandler(s32 chan, OSContext *context) +{ + u32 id; + + EXIGetID(chan, 0, &id); +} + +s32 EXIGetID(s32 chan, u32 dev, u32 *id) +{ + EXIControl *exi = &Ecb[chan]; + BOOL err; + u32 cmd; + s32 startTime; + BOOL enabled; + + if (chan < 2 && dev == 0) { + if (!__EXIProbe(chan)) { + return 0; + } + + if (exi->idTime == __EXIProbeStartTime[chan]) { + *id = exi->id; + return exi->idTime; + } + + if (!__EXIAttach(chan, NULL)) { + return 0; + } + + startTime = __EXIProbeStartTime[chan]; + } + + err = !EXILock(chan, dev, (chan < 2 && dev == 0) ? UnlockedHandler : NULL); + if (!err) { + err = !EXISelect(chan, dev, EXI_FREQ_1M); + if (!err) { + cmd = 0; + err |= !EXIImm(chan, &cmd, 2, EXI_WRITE, NULL); + err |= !EXISync(chan); + err |= !EXIImm(chan, id, 4, EXI_READ, NULL); + err |= !EXISync(chan); + err |= !EXIDeselect(chan); + } + EXIUnlock(chan); + } + + if (chan < 2 && dev == 0) { + EXIDetach(chan); + enabled = OSDisableInterrupts(); + err |= (startTime != __EXIProbeStartTime[chan]); + if (!err) { + exi->id = *id; + exi->idTime = startTime; + } + OSRestoreInterrupts(enabled); + + return err ? 0 : exi->idTime; + } + + return err ? 0 : !0; +} diff --git a/src/dolphin/exi/EXIUart.c b/src/dolphin/exi/EXIUart.c new file mode 100644 index 00000000..fb067196 --- /dev/null +++ b/src/dolphin/exi/EXIUart.c @@ -0,0 +1,184 @@ +#include +#include + +#define EXI_TX 0x800400u +#define EXI_MAGIC 0xa5ff005a + +static s32 Chan; +static u32 Dev; +static u32 Enabled = 0; +static u32 BarnacleEnabled = 0; + +static BOOL ProbeBarnacle(s32 chan, u32 dev, u32 *revision) +{ + BOOL err; + u32 cmd; + + if (chan != 2 && dev == 0 && !EXIAttach(chan, NULL)) { + return FALSE; + } + + err = !EXILock(chan, dev, NULL); + if (!err) { + err = !EXISelect(chan, dev, EXI_FREQ_1M); + if (!err) { + cmd = 0x20011300; + err = FALSE; + err |= !EXIImm(chan, &cmd, 4, EXI_WRITE, NULL); + err |= !EXISync(chan); + err |= !EXIImm(chan, revision, 4, EXI_READ, NULL); + err |= !EXISync(chan); + err |= !EXIDeselect(chan); + } + EXIUnlock(chan); + } + + if (chan != 2 && dev == 0) { + EXIDetach(chan); + } + + if (err) { + return FALSE; + } + + return (*revision != 0xFFFFFFFF) ? TRUE : FALSE; +} + +void __OSEnableBarnacle(s32 chan, u32 dev) +{ + u32 id; + + if (EXIGetID(chan, dev, &id)) { + switch (id) { + case 0xffffffff: + case EXI_MEMORY_CARD_59: + case EXI_MEMORY_CARD_123: + case EXI_MEMORY_CARD_251: + case EXI_MEMORY_CARD_507: + case EXI_USB_ADAPTER: + case EXI_NPDP_GDEV: + case EXI_MODEM: + case EXI_MARLIN: + case 0x04220000: + case 0x04020100: + case 0x04020200: + case 0x04020300: + case 0x04040404: + case 0x04060000: + case 0x04120000: + case 0x04130000: + case 0x80000000 | EXI_MEMORY_CARD_59: + case 0x80000000 | EXI_MEMORY_CARD_123: + case 0x80000000 | EXI_MEMORY_CARD_251: + case 0x80000000 | EXI_MEMORY_CARD_507: + break; + default: + if (ProbeBarnacle(chan, dev, &id)) { + Chan = chan; + Dev = dev; + Enabled = BarnacleEnabled = EXI_MAGIC; + } + break; + } + } +} + +u32 InitializeUART(u32 baudRate) +{ + if (BarnacleEnabled == EXI_MAGIC) { + return 0; + } + + if (!(OSGetConsoleType() & OS_CONSOLE_DEVELOPMENT)) { + Enabled = 0; + return 2; + } + else { + Chan = 0; + Dev = 1; + Enabled = EXI_MAGIC; + return 0; + } +} + +u32 ReadUARTN(void *bytes, unsigned long length) +{ + return 4; +} + +static int QueueLength(void) +{ + u32 cmd; + + if (!EXISelect(Chan, Dev, EXI_FREQ_8M)) + return -1; + + cmd = EXI_TX << 6; + EXIImm(Chan, &cmd, 4, EXI_WRITE, NULL); + EXISync(Chan); + + EXIImm(Chan, &cmd, 1, EXI_READ, NULL); + EXISync(Chan); + EXIDeselect(Chan); + + return 16 - (int)((cmd >> 24) & 0xff); +} + +u32 WriteUARTN(const void *buf, unsigned long len) +{ + u32 cmd; + int qLen; + long xLen; + char *ptr; + BOOL locked; + u32 error; + + if (Enabled != EXI_MAGIC) + return 2; + + locked = EXILock(Chan, Dev, 0); + if (!locked) { + return 0; + } + + for (ptr = (char *)buf; ptr - buf < len; ptr++) { + if (*ptr == '\n') + *ptr = '\r'; + } + + error = 0; + cmd = (EXI_TX | 0x2000000) << 6; + while (len) { + qLen = QueueLength(); + if (qLen < 0) { + error = 3; + break; + } + + if (qLen < 12 && qLen < len) + continue; + + if (!EXISelect(Chan, Dev, EXI_FREQ_8M)) { + error = 3; + break; + } + + EXIImm(Chan, &cmd, 4, EXI_WRITE, NULL); + EXISync(Chan); + + while (qLen && len) { + if (qLen < 4 && qLen < len) + break; + xLen = (len < 4) ? (long)len : 4; + EXIImm(Chan, (void *)buf, xLen, EXI_WRITE, NULL); + (u8 *)buf += xLen; + len -= xLen; + qLen -= xLen; + EXISync(Chan); + } + EXIDeselect(Chan); + } + + EXIUnlock(Chan); + return error; +} From b44fb658a15a844374a9816864cbd9bfdc985574 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 12 Nov 2024 03:38:42 +0100 Subject: [PATCH 121/311] Imported dolphin/card --- include/dolphin/CARDPriv.h | 202 ++++++----- include/dolphin/os/OSReset.h | 1 + src/dolphin/card/CARDBios.c | 615 ++++++++++++++++++++++++++++++++++ src/dolphin/card/CARDBlock.c | 170 ++++++++++ src/dolphin/card/CARDCheck.c | 343 +++++++++++++++++++ src/dolphin/card/CARDCreate.c | 126 +++++++ src/dolphin/card/CARDDelete.c | 111 ++++++ src/dolphin/card/CARDDir.c | 101 ++++++ src/dolphin/card/CARDFormat.c | 141 ++++++++ src/dolphin/card/CARDMount.c | 396 ++++++++++++++++++++++ src/dolphin/card/CARDNet.c | 34 ++ src/dolphin/card/CARDOpen.c | 134 ++++++++ src/dolphin/card/CARDRdwr.c | 108 ++++++ src/dolphin/card/CARDRead.c | 149 ++++++++ src/dolphin/card/CARDRename.c | 70 ++++ src/dolphin/card/CARDStat.c | 158 +++++++++ src/dolphin/card/CARDUnlock.c | 406 ++++++++++++++++++++++ src/dolphin/card/CARDWrite.c | 128 +++++++ 18 files changed, 3315 insertions(+), 78 deletions(-) create mode 100644 src/dolphin/card/CARDBios.c create mode 100644 src/dolphin/card/CARDBlock.c create mode 100644 src/dolphin/card/CARDCheck.c create mode 100644 src/dolphin/card/CARDCreate.c create mode 100644 src/dolphin/card/CARDDelete.c create mode 100644 src/dolphin/card/CARDDir.c create mode 100644 src/dolphin/card/CARDFormat.c create mode 100644 src/dolphin/card/CARDMount.c create mode 100644 src/dolphin/card/CARDNet.c create mode 100644 src/dolphin/card/CARDOpen.c create mode 100644 src/dolphin/card/CARDRdwr.c create mode 100644 src/dolphin/card/CARDRead.c create mode 100644 src/dolphin/card/CARDRename.c create mode 100644 src/dolphin/card/CARDStat.c create mode 100644 src/dolphin/card/CARDUnlock.c create mode 100644 src/dolphin/card/CARDWrite.c diff --git a/include/dolphin/CARDPriv.h b/include/dolphin/CARDPriv.h index ca28f6e1..8e531702 100644 --- a/include/dolphin/CARDPriv.h +++ b/include/dolphin/CARDPriv.h @@ -21,103 +21,149 @@ extern "C" { #define CARD_MAX_MOUNT_STEP (CARD_NUM_SYSTEM_BLOCK + 2) typedef struct CARDDir { - u8 gameName[4]; - u8 company[2]; - u8 _padding0; - u8 bannerFormat; - u8 fileName[CARD_FILENAME_MAX]; - u32 time; // seconds since 01/01/2000 midnight + u8 gameName[4]; + u8 company[2]; + u8 _padding0; + u8 bannerFormat; + u8 fileName[CARD_FILENAME_MAX]; + u32 time; // seconds since 01/01/2000 midnight - u32 iconAddr; // 0xffffffff if not used - u16 iconFormat; - u16 iconSpeed; + u32 iconAddr; // 0xffffffff if not used + u16 iconFormat; + u16 iconSpeed; - u8 permission; - u8 copyTimes; - u16 startBlock; - u16 length; - u8 _padding1[2]; + u8 permission; + u8 copyTimes; + u16 startBlock; + u16 length; + u8 _padding1[2]; - u32 commentAddr; // 0xffffffff if not used + u32 commentAddr; // 0xffffffff if not used } CARDDir; typedef struct CARDDirCheck { - u8 padding0[64 - 2 * 4]; - u16 padding1; - s16 checkCode; - u16 checkSum; - u16 checkSumInv; + u8 padding0[64 - 2 * 4]; + u16 padding1; + s16 checkCode; + u16 checkSum; + u16 checkSumInv; } CARDDirCheck; typedef struct CARDControl { - BOOL attached; - s32 result; - u16 size; - u16 pageSize; - s32 sectorSize; - u16 cBlock; - u16 vendorID; - s32 latency; - u8 id[12]; - int mountStep; - int formatStep; - u32 scramble; - DSPTaskInfo task; - void* workArea; - CARDDir* currentDir; - u16* currentFat; - OSThreadQueue threadQueue; - u8 cmd[9]; - s32 cmdlen; - vu32 mode; - int retry; - int repeat; - u32 addr; - void* buffer; - s32 xferred; - u16 freeNo; - u16 startBlock; - CARDFileInfo* fileInfo; - CARDCallback extCallback; - CARDCallback txCallback; - CARDCallback exiCallback; - CARDCallback apiCallback; - CARDCallback xferCallback; - CARDCallback eraseCallback; - CARDCallback unlockCallback; - OSAlarm alarm; - u32 cid; - const DVDDiskID* diskID; + BOOL attached; + s32 result; + u16 size; + u16 pageSize; + s32 sectorSize; + u16 cBlock; + u16 vendorID; + s32 latency; + u8 id[12]; + int mountStep; + int formatStep; + u32 scramble; + DSPTaskInfo task; + void *workArea; + CARDDir *currentDir; + u16 *currentFat; + OSThreadQueue threadQueue; + u8 cmd[9]; + s32 cmdlen; + vu32 mode; + int retry; + int repeat; + u32 addr; + void *buffer; + s32 xferred; + u16 freeNo; + u16 startBlock; + CARDFileInfo *fileInfo; + CARDCallback extCallback; + CARDCallback txCallback; + CARDCallback exiCallback; + CARDCallback apiCallback; + CARDCallback xferCallback; + CARDCallback eraseCallback; + CARDCallback unlockCallback; + OSAlarm alarm; + u32 cid; + const DVDDiskID *diskID; } CARDControl; typedef struct CARDID { - u8 serial[32]; // flashID[12] + timebase[8] + counterBias[4] + language[4] + XXX[4] - u16 deviceID; - u16 size; - u16 encode; // character set -- 0: S-JIS, 1: ANSI + u8 serial[32]; // flashID[12] + timebase[8] + counterBias[4] + language[4] + XXX[4] + u16 deviceID; + u16 size; + u16 encode; // character set -- 0: S-JIS, 1: ANSI - u8 padding[512 - 32 - 5 * 2]; + u8 padding[512 - 32 - 5 * 2]; - u16 checkSum; - u16 checkSumInv; + u16 checkSum; + u16 checkSumInv; } CARDID; void __CARDDefaultApiCallback(s32 chan, s32 result); +s32 __CARDEraseSector(s32 chan, u32 addr, CARDCallback callback); +s32 __CARDPutControlBlock(struct CARDControl *card, s32 result); +void __CARDSyncCallback(s32 chan, s32 result); +u16 *__CARDGetFatBlock(CARDControl *card); -#define CARDIsValidBlockNo(card, iBlock) \ - (CARD_NUM_SYSTEM_BLOCK <= (iBlock) && (iBlock) < (card)->cBlock) -#define __CARDGetDirCheck(dir) ((CARDDirCheck*)&(dir)[CARD_MAX_FILE]) +/* CARDBios */ +void __CARDExtHandler(s32 chan, OSContext *context); +void __CARDExiHandler(s32 chan, OSContext *context); +void __CARDTxHandler(s32 chan, OSContext *context); +void __CARDUnlockedHandler(s32 chan, OSContext *context); +s32 __CARDEnableInterrupt(s32 chan, BOOL enable); +s32 __CARDReadStatus(s32 chan, u8 *status); +s32 __CARDReadVendorID(s32 chan, u16 *vendorId); +s32 __CARDClearStatus(s32 chan); +s32 __CARDStart(s32 chan, CARDCallback txCallback, CARDCallback exiCallback); +s32 __CARDReadSegment(s32 chan, CARDCallback callback); +s32 __CARDWritePage(s32 chan, CARDCallback callback); +u16 __CARDGetFontEncode(void); +void __CARDSetDiskID(const DVDDiskID *id); +s32 __CARDGetControlBlock(s32 chan, struct CARDControl **pcard); +s32 __CARDSync(s32 chan); -CARDDir* __CARDGetDirBlock(CARDControl* card); -u16* __CARDGetFatBlock(CARDControl* card); -s32 __CARDUpdateFatBlock(s32 chan, u16* fat, CARDCallback callback); -void __CARDCheckSum(void* ptr, int length, u16* checkSum, u16* checkSumInv); -u16 __CARDGetFontEncode(); -void __CARDExiHandler(s32 chan, OSContext* context); -void __CARDExtHandler(s32 chan, OSContext* context); -void __CARDUnlockedHandler(s32 chan, OSContext* context); -s32 __CARDAccess(CARDControl* card, CARDDir* ent); -BOOL __CARDIsWritable(CARDDir* ent); +/* CARDBlock */ +s32 __CARDAllocBlock(s32 chan, u32 cBlock, CARDCallback callback); +s32 __CARDFreeBlock(s32 chan, u16 nBlock, CARDCallback callback); +s32 __CARDUpdateFatBlock(s32 chan, u16 *fat, CARDCallback callback); + +/* CARDCheck */ +void __CARDCheckSum(void *ptr, int length, u16 *checksum, u16 *checksumInv); +s32 __CARDVerify(CARDControl *card); + +/* CARDDir */ +CARDDir *__CARDGetDirBlock(CARDControl *card); +s32 __CARDUpdateDir(s32 chan, CARDCallback callback); + +/* CARDFormat */ +s32 __CARDFormatRegionAsync(s32 chan, u16 encode, CARDCallback callback); + +/* CARDMount */ +void __CARDMountCallback(s32 chan, s32 result); + +/* CARDOpen */ +BOOL __CARDCompareFileName(CARDDir *ent, const char *fileName); +s32 __CARDAccess(CARDControl *card, CARDDir *ent); +BOOL __CARDIsPublic(CARDDir *ent); +s32 __CARDIsReadable(CARDControl *card, CARDDir *ent); +s32 __CARDGetFileNo(CARDControl *card, const char *fileName, s32 *pfileNo); +BOOL __CARDIsOpened(CARDControl *card, s32 fileNo); + +/* CARDRdwr */ +s32 __CARDRead(s32 chan, u32 addr, s32 length, void *dst, CARDCallback callback); +s32 __CARDWrite(s32 chan, u32 addr, s32 length, void *dst, CARDCallback callback); + +/* CARDRead */ +s32 __CARDSeek(CARDFileInfo *fileInfo, s32 length, s32 offset, CARDControl **pcard); + +/* CARDUnlock */ +s32 __CARDUnlock(s32 chan, u8 flashID[12]); + +#define CARDIsValidBlockNo(card, iBlock) (CARD_NUM_SYSTEM_BLOCK <= (iBlock) && (iBlock) < (card)->cBlock) +#define __CARDGetDirCheck(dir) ((CARDDirCheck *)&(dir)[CARD_MAX_FILE]) #define TRUNC(n, a) (((u32)(n)) & ~((a)-1)) #define OFFSET(n, a) (((u32)(n)) & ((a)-1)) diff --git a/include/dolphin/os/OSReset.h b/include/dolphin/os/OSReset.h index d420a6f8..ae0e77e3 100644 --- a/include/dolphin/os/OSReset.h +++ b/include/dolphin/os/OSReset.h @@ -39,6 +39,7 @@ struct OSResetFunctionInfo { OSResetFunctionInfo* prev; }; +void OSRegisterResetFunction(OSResetFunctionInfo *info); u32 OSGetResetCode(void); #ifdef __cplusplus diff --git a/src/dolphin/card/CARDBios.c b/src/dolphin/card/CARDBios.c new file mode 100644 index 00000000..ff2d55ff --- /dev/null +++ b/src/dolphin/card/CARDBios.c @@ -0,0 +1,615 @@ +#include +#include +#include +#include +#include + +#include + +CARDControl __CARDBlock[2]; +DVDDiskID __CARDDiskNone; + +static u16 __CARDEncode; + +s32 __CARDReadStatus(s32 chan, u8 *status); +s32 __CARDClearStatus(s32 chan); +void __CARDSetDiskID(const DVDDiskID *id); +static s32 Retry(s32 chan); + +static BOOL OnReset(BOOL f); +static OSResetFunctionInfo ResetFunctionInfo = { OnReset, 127 }; + +void __CARDDefaultApiCallback(s32 chan, s32 result) { } + +void __CARDSyncCallback(s32 chan, s32 result) +{ + OSWakeupThread(&__CARDBlock[chan].threadQueue); +} + +void __CARDExtHandler(s32 chan, OSContext *context) +{ + CARDControl *card; + CARDCallback callback; + + card = &__CARDBlock[chan]; + if (card->attached) { + card->attached = FALSE; + EXISetExiCallback(chan, 0); + OSCancelAlarm(&card->alarm); + callback = card->exiCallback; + + if (callback) { + card->exiCallback = 0; + callback(chan, CARD_RESULT_NOCARD); + } + + if (card->result != CARD_RESULT_BUSY) { + card->result = CARD_RESULT_NOCARD; + } + + callback = card->extCallback; + if (callback && CARD_MAX_MOUNT_STEP <= card->mountStep) { + card->extCallback = 0; + callback(chan, CARD_RESULT_NOCARD); + } + } +} + +void __CARDExiHandler(s32 chan, OSContext *context) +{ + CARDControl *card; + CARDCallback callback; + u8 status; + s32 result; + + card = &__CARDBlock[chan]; + + OSCancelAlarm(&card->alarm); + + if (!card->attached) { + return; + } + + if (!EXILock(chan, 0, 0)) { + result = CARD_RESULT_FATAL_ERROR; + goto fatal; + } + + if ((result = __CARDReadStatus(chan, &status)) < 0 || (result = __CARDClearStatus(chan)) < 0) { + goto error; + } + + if ((result = (status & 0x18) ? CARD_RESULT_IOERROR : CARD_RESULT_READY) == CARD_RESULT_IOERROR && --card->retry > 0) { + result = Retry(chan); + if (result >= 0) { + return; + } + goto fatal; + } + +error: + EXIUnlock(chan); + +fatal: + callback = card->exiCallback; + if (callback) { + card->exiCallback = 0; + callback(chan, result); + } +} + +void __CARDTxHandler(s32 chan, OSContext *context) +{ + CARDControl *card; + CARDCallback callback; + BOOL err; + + card = &__CARDBlock[chan]; + err = !EXIDeselect(chan); + EXIUnlock(chan); + callback = card->txCallback; + if (callback) { + card->txCallback = 0; + callback(chan, (!err && EXIProbe(chan)) ? CARD_RESULT_READY : CARD_RESULT_NOCARD); + } +} + +void __CARDUnlockedHandler(s32 chan, OSContext *context) +{ + CARDControl *card; + CARDCallback callback; + + card = &__CARDBlock[chan]; + callback = card->unlockCallback; + if (callback) { + card->unlockCallback = 0; + callback(chan, EXIProbe(chan) ? CARD_RESULT_UNLOCKED : CARD_RESULT_NOCARD); + } +} + +s32 __CARDEnableInterrupt(s32 chan, BOOL enable) +{ + BOOL err; + u32 cmd; + + if (!EXISelect(chan, 0, 4)) { + return CARD_RESULT_NOCARD; + } + + cmd = enable ? 0x81010000 : 0x81000000; + err = FALSE; + err |= !EXIImm(chan, &cmd, 2, 1, NULL); + err |= !EXISync(chan); + err |= !EXIDeselect(chan); + return err ? CARD_RESULT_NOCARD : CARD_RESULT_READY; +} + +s32 __CARDReadStatus(s32 chan, u8 *status) +{ + BOOL err; + u32 cmd; + + if (!EXISelect(chan, 0, 4)) { + return CARD_RESULT_NOCARD; + } + + cmd = 0x83000000; + err = FALSE; + err |= !EXIImm(chan, &cmd, 2, 1, NULL); + err |= !EXISync(chan); + err |= !EXIImm(chan, status, 1, 0, NULL); + err |= !EXISync(chan); + err |= !EXIDeselect(chan); + return err ? CARD_RESULT_NOCARD : CARD_RESULT_READY; +} + +s32 __CARDClearStatus(s32 chan) +{ + BOOL err; + u32 cmd; + + if (!EXISelect(chan, 0, 4)) { + return CARD_RESULT_NOCARD; + } + + cmd = 0x89000000; + err = FALSE; + err |= !EXIImm(chan, &cmd, 1, 1, 0); + err |= !EXISync(chan); + err |= !EXIDeselect(chan); + + return err ? CARD_RESULT_NOCARD : CARD_RESULT_READY; +} + +static void TimeoutHandler(OSAlarm *alarm, OSContext *context) +{ + s32 chan; + CARDControl *card; + CARDCallback callback; + for (chan = 0; chan < 2; ++chan) { + card = &__CARDBlock[chan]; + if (alarm == &card->alarm) { + break; + } + } + + if (!card->attached) { + return; + } + + EXISetExiCallback(chan, NULL); + callback = card->exiCallback; + if (callback) { + card->exiCallback = 0; + callback(chan, CARD_RESULT_IOERROR); + } +} + +static void SetupTimeoutAlarm(CARDControl *card) +{ + OSCancelAlarm(&card->alarm); + switch (card->cmd[0]) { + case 0xF2: + OSSetAlarm(&card->alarm, OSMillisecondsToTicks(100), TimeoutHandler); + break; + case 0xF3: + break; + case 0xF4: + case 0xF1: + OSSetAlarm(&card->alarm, OSSecondsToTicks((OSTime)2) * (card->sectorSize / 0x2000), TimeoutHandler); + break; + } +} + +static s32 Retry(s32 chan) +{ + CARDControl *card; + card = &__CARDBlock[chan]; + + if (!EXISelect(chan, 0, 4)) { + EXIUnlock(chan); + return CARD_RESULT_NOCARD; + } + + SetupTimeoutAlarm(card); + + if (!EXIImmEx(chan, card->cmd, card->cmdlen, 1)) { + EXIDeselect(chan); + EXIUnlock(chan); + return CARD_RESULT_NOCARD; + } + + if (card->cmd[0] == 0x52 && !EXIImmEx(chan, (u8 *)card->workArea + sizeof(CARDID), card->latency, 1)) { + EXIDeselect(chan); + EXIUnlock(chan); + return CARD_RESULT_NOCARD; + } + + if (card->mode == 0xffffffff) { + EXIDeselect(chan); + EXIUnlock(chan); + return CARD_RESULT_READY; + } + + if (!EXIDma(chan, card->buffer, (s32)((card->cmd[0] == 0x52) ? 512 : 128), card->mode, __CARDTxHandler)) { + EXIDeselect(chan); + EXIUnlock(chan); + return CARD_RESULT_NOCARD; + } + + return CARD_RESULT_READY; +} + +static void UnlockedCallback(s32 chan, s32 result) +{ + CARDCallback callback; + CARDControl *card; + + card = &__CARDBlock[chan]; + if (result >= 0) { + card->unlockCallback = UnlockedCallback; + if (!EXILock(chan, 0, __CARDUnlockedHandler)) { + result = CARD_RESULT_READY; + } + else { + card->unlockCallback = 0; + result = Retry(chan); + } + } + + if (result < 0) { + switch (card->cmd[0]) { + case 0x52: + callback = card->txCallback; + if (callback) { + card->txCallback = 0; + callback(chan, result); + } + + break; + case 0xF2: + case 0xF4: + case 0xF1: + callback = card->exiCallback; + if (callback) { + card->exiCallback = 0; + callback(chan, result); + } + break; + } + } +} + +static s32 __CARDStart(s32 chan, CARDCallback txCallback, CARDCallback exiCallback) +{ + BOOL enabled; + CARDControl *card; + s32 result; + + enabled = OSDisableInterrupts(); + + card = &__CARDBlock[chan]; + if (!card->attached) { + result = CARD_RESULT_NOCARD; + } + else { + + if (txCallback) { + card->txCallback = txCallback; + } + if (exiCallback) { + card->exiCallback = exiCallback; + } + card->unlockCallback = UnlockedCallback; + if (!EXILock(chan, 0, __CARDUnlockedHandler)) { + result = CARD_RESULT_BUSY; + } + else { + card->unlockCallback = 0; + + if (!EXISelect(chan, 0, 4)) { + EXIUnlock(chan); + result = CARD_RESULT_NOCARD; + } + else { + SetupTimeoutAlarm(card); + result = CARD_RESULT_READY; + } + } + } + + OSRestoreInterrupts(enabled); + return result; +} + +#define AD1(x) ((u8)(((x) >> 17) & 0x7f)) +#define AD1EX(x) ((u8)(AD1(x) | 0x80)); +#define AD2(x) ((u8)(((x) >> 9) & 0xff)) +#define AD3(x) ((u8)(((x) >> 7) & 0x03)) +#define BA(x) ((u8)((x)&0x7f)) + +s32 __CARDReadSegment(s32 chan, CARDCallback callback) +{ + CARDControl *card; + s32 result; + + card = &__CARDBlock[chan]; + card->cmd[0] = 0x52; + card->cmd[1] = AD1(card->addr); + card->cmd[2] = AD2(card->addr); + card->cmd[3] = AD3(card->addr); + card->cmd[4] = BA(card->addr); + card->cmdlen = 5; + card->mode = 0; + card->retry = 0; + + result = __CARDStart(chan, callback, 0); + if (result == CARD_RESULT_BUSY) { + result = CARD_RESULT_READY; + } + else if (result >= 0) { + if (!EXIImmEx(chan, card->cmd, card->cmdlen, 1) + || !EXIImmEx(chan, (u8 *)card->workArea + sizeof(CARDID), card->latency, + 1) + || // XXX use DMA if possible + !EXIDma(chan, card->buffer, 512, card->mode, __CARDTxHandler)) { + card->txCallback = 0; + EXIDeselect(chan); + EXIUnlock(chan); + result = CARD_RESULT_NOCARD; + } + else { + result = CARD_RESULT_READY; + } + } + return result; +} + +s32 __CARDWritePage(s32 chan, CARDCallback callback) +{ + CARDControl *card; + s32 result; + + card = &__CARDBlock[chan]; + card->cmd[0] = 0xF2; + card->cmd[1] = AD1(card->addr); + card->cmd[2] = AD2(card->addr); + card->cmd[3] = AD3(card->addr); + card->cmd[4] = BA(card->addr); + card->cmdlen = 5; + card->mode = 1; + card->retry = 3; + + result = __CARDStart(chan, 0, callback); + if (result == CARD_RESULT_BUSY) { + result = CARD_RESULT_READY; + } + else if (result >= 0) { + if (!EXIImmEx(chan, card->cmd, card->cmdlen, 1) || !EXIDma(chan, card->buffer, 128, card->mode, __CARDTxHandler)) { + card->exiCallback = 0; + EXIDeselect(chan); + EXIUnlock(chan); + result = CARD_RESULT_NOCARD; + } + else { + result = CARD_RESULT_READY; + } + } + return result; +} + +s32 __CARDEraseSector(s32 chan, u32 addr, CARDCallback callback) +{ + CARDControl *card; + s32 result; + + card = &__CARDBlock[chan]; + card->cmd[0] = 0xF1; + card->cmd[1] = AD1(addr); + card->cmd[2] = AD2(addr); + card->cmdlen = 3; + card->mode = -1; + card->retry = 3; + + result = __CARDStart(chan, 0, callback); + + if (result == CARD_RESULT_BUSY) { + result = CARD_RESULT_READY; + } + else if (result >= 0) { + if (!EXIImmEx(chan, card->cmd, card->cmdlen, 1)) { + card->exiCallback = NULL; + result = CARD_RESULT_NOCARD; + } + else { + result = CARD_RESULT_READY; + } + + EXIDeselect(chan); + EXIUnlock(chan); + } + return result; +} + +void CARDInit(void) +{ + int chan; + + if (__CARDBlock[0].diskID && __CARDBlock[1].diskID) { + return; + } + + DSPInit(); + OSInitAlarm(); + + for (chan = 0; chan < 2; ++chan) { + CARDControl *card = &__CARDBlock[chan]; + + card->result = CARD_RESULT_NOCARD; + OSInitThreadQueue(&card->threadQueue); + OSCreateAlarm(&card->alarm); + } + __CARDSetDiskID((DVDDiskID *)OSPhysicalToCached(0x0)); + + OSRegisterResetFunction(&ResetFunctionInfo); +} + +u16 __CARDGetFontEncode() +{ + return __CARDEncode; +} + +void __CARDSetDiskID(const DVDDiskID *id) +{ + __CARDBlock[0].diskID = id ? id : &__CARDDiskNone; + __CARDBlock[1].diskID = id ? id : &__CARDDiskNone; +} + +s32 __CARDGetControlBlock(s32 chan, CARDControl **pcard) +{ + BOOL enabled; + s32 result; + CARDControl *card; + + card = &__CARDBlock[chan]; + if (chan < 0 || chan >= 2 || card->diskID == NULL) { + return CARD_RESULT_FATAL_ERROR; + } + + enabled = OSDisableInterrupts(); + if (!card->attached) { + result = CARD_RESULT_NOCARD; + } + else if (card->result == CARD_RESULT_BUSY) { + result = CARD_RESULT_BUSY; + } + else { + card->result = CARD_RESULT_BUSY; + result = CARD_RESULT_READY; + card->apiCallback = 0; + *pcard = card; + } + OSRestoreInterrupts(enabled); + return result; +} + +s32 __CARDPutControlBlock(CARDControl *card, s32 result) +{ + BOOL enabled; + + enabled = OSDisableInterrupts(); + if (card->attached) { + card->result = result; + } + else if (card->result == CARD_RESULT_BUSY) { + card->result = result; + } + OSRestoreInterrupts(enabled); + return result; +} + +s32 CARDGetResultCode(s32 chan) +{ + CARDControl *card; + if (chan < 0 || chan >= 2) { + return CARD_RESULT_FATAL_ERROR; + } + card = &__CARDBlock[chan]; + return card->result; +} + +s32 CARDFreeBlocks(s32 chan, s32 *byteNotUsed, s32 *filesNotUsed) +{ + CARDControl *card; + s32 result; + u16 *fat; + CARDDir *dir; + CARDDir *ent; + u16 fileNo; + + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + + fat = __CARDGetFatBlock(card); + dir = __CARDGetDirBlock(card); + if (fat == 0 || dir == 0) { + return __CARDPutControlBlock(card, CARD_RESULT_BROKEN); + } + + if (byteNotUsed) { + *byteNotUsed = (s32)(card->sectorSize * fat[CARD_FAT_FREEBLOCKS]); + } + + if (filesNotUsed) { + *filesNotUsed = 0; + for (fileNo = 0; fileNo < CARD_MAX_FILE; fileNo++) { + ent = &dir[fileNo]; + if (ent->fileName[0] == 0xff) { + ++*filesNotUsed; + } + } + } + + return __CARDPutControlBlock(card, CARD_RESULT_READY); +} + +s32 CARDGetSectorSize(s32 chan, u32 *size) +{ + struct CARDControl *card; + long result; + + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + *size = card->sectorSize; + return __CARDPutControlBlock(card, 0); +} + +s32 __CARDSync(s32 chan) +{ + CARDControl *block; + s32 result; + s32 enabled; + + block = &__CARDBlock[chan]; + enabled = OSDisableInterrupts(); + while ((result = CARDGetResultCode(chan)) == -1) { + OSSleepThread(&block->threadQueue); + } + OSRestoreInterrupts(enabled); + return result; +} + +static BOOL OnReset(BOOL f) +{ + if (!f) { + if (CARDUnmount(0) == CARD_RESULT_BUSY || CARDUnmount(1) == CARD_RESULT_BUSY) { + return FALSE; + } + } + + return TRUE; +} diff --git a/src/dolphin/card/CARDBlock.c b/src/dolphin/card/CARDBlock.c new file mode 100644 index 00000000..c6543c7f --- /dev/null +++ b/src/dolphin/card/CARDBlock.c @@ -0,0 +1,170 @@ +#include +#include +#include +#include + +#include "string.h" + +#include + +u16 *__CARDGetFatBlock(CARDControl *card) +{ + return card->currentFat; +} + +static void WriteCallback(s32 chan, s32 result) +{ + CARDControl *card; + CARDCallback callback; + u16 *fat; + u16 *fatBack; + + card = &__CARDBlock[chan]; + + if (result >= 0) { + fat = (u16 *)((u8 *)card->workArea + 0x6000); + fatBack = (u16 *)((u8 *)card->workArea + 0x8000); + + if (card->currentFat == fat) { + card->currentFat = fatBack; + memcpy(fatBack, fat, 0x2000); + } + else { + card->currentFat = fat; + memcpy(fat, fatBack, 0x2000); + } + } + + if (card->apiCallback == NULL) { + __CARDPutControlBlock(card, result); + } + + callback = card->eraseCallback; + if (callback) { + card->eraseCallback = NULL; + callback(chan, result); + } +} + +static void EraseCallback(s32 chan, s32 result) +{ + CARDControl *card; + CARDCallback callback; + u32 temp[2]; /* this compiler sucks */ + u16 *fat; + u32 addr; + + card = &__CARDBlock[chan]; + if (result < 0) { + goto error; + } + + fat = __CARDGetFatBlock(card); + addr = ((u32)fat - (u32)card->workArea) / CARD_SYSTEM_BLOCK_SIZE * card->sectorSize; + result = __CARDWrite(chan, addr, CARD_SYSTEM_BLOCK_SIZE, fat, WriteCallback); + if (result < 0) { + goto error; + } + + return; + +error: + if (card->apiCallback == NULL) { + __CARDPutControlBlock(card, result); + } + callback = card->eraseCallback; + if (callback) { + card->eraseCallback = NULL; + callback(chan, result); + } +} + +s32 __CARDAllocBlock(s32 chan, u32 cBlock, CARDCallback callback) +{ + CARDControl *card; + u16 *fat; + u16 iBlock; + u16 startBlock; + u16 prevBlock; + u16 count; + + card = &__CARDBlock[chan]; + if (!card->attached) { + return CARD_RESULT_NOCARD; + } + + fat = __CARDGetFatBlock(card); + if (fat[3] < cBlock) { + return CARD_RESULT_INSSPACE; + } + + fat[3] -= cBlock; + startBlock = 0xFFFF; + iBlock = fat[4]; + count = 0; + while (0 < cBlock) { + if (card->cBlock - 5 < ++count) { + return CARD_RESULT_BROKEN; + } + + iBlock++; + if (!CARDIsValidBlockNo(card, iBlock)) { + iBlock = 5; + } + + if (fat[iBlock] == 0x0000u) { + if (startBlock == 0xFFFF) { + startBlock = iBlock; + } + else { + fat[prevBlock] = iBlock; + } + prevBlock = iBlock; + fat[iBlock] = 0xFFFF; + --cBlock; + } + } + fat[4] = iBlock; + card->startBlock = startBlock; + + return __CARDUpdateFatBlock(chan, fat, callback); +} + +s32 __CARDFreeBlock(s32 chan, u16 nBlock, CARDCallback callback) +{ + CARDControl *card; + u16 *fat; + u16 nextBlock; + + card = card = &__CARDBlock[chan]; + if (!card->attached) { + return CARD_RESULT_NOCARD; + } + + fat = __CARDGetFatBlock(card); + while (nBlock != 0xFFFF) { + if (!CARDIsValidBlockNo(card, nBlock)) { + return CARD_RESULT_BROKEN; + } + + nextBlock = fat[nBlock]; + fat[nBlock] = 0; + nBlock = nextBlock; + ++fat[3]; + } + + return __CARDUpdateFatBlock(chan, fat, callback); +} + +s32 __CARDUpdateFatBlock(s32 chan, u16 *fat, CARDCallback callback) +{ + CARDControl *card; + + card = &__CARDBlock[chan]; + ++fat[2]; + __CARDCheckSum(fat + 2, 0x1FFC, fat, fat + 1); + DCStoreRange(fat, 0x2000); + card->eraseCallback = callback; + + return __CARDEraseSector(chan, (((u32)fat - (u32)card->workArea) / 8192u) * card->sectorSize, EraseCallback); +} diff --git a/src/dolphin/card/CARDCheck.c b/src/dolphin/card/CARDCheck.c new file mode 100644 index 00000000..988e16b3 --- /dev/null +++ b/src/dolphin/card/CARDCheck.c @@ -0,0 +1,343 @@ +#include +#include +#include +#include + +#include +#include + +#include "string.h" + +void __CARDCheckSum(void *ptr, int length, u16 *checksum, u16 *checksumInv) +{ + u16 *p; + int i; + + length /= sizeof(u16); + *checksum = *checksumInv = 0; + for (i = 0, p = ptr; i < length; i++, p++) { + *checksum += *p; + *checksumInv += ~*p; + } + if (*checksum == 0xffff) { + *checksum = 0; + } + if (*checksumInv == 0xffff) { + *checksumInv = 0; + } +} + +static s32 VerifyID(CARDControl *card) +{ + CARDID *id; + u16 checksum; + u16 checksumInv; + OSSramEx *sramEx; + OSTime rand; + int i; + + id = card->workArea; + + if (id->deviceID != 0 || id->size != card->size) + return CARD_RESULT_BROKEN; + + __CARDCheckSum(id, sizeof(CARDID) - sizeof(u32), &checksum, &checksumInv); + if (id->checkSum != checksum || id->checkSumInv != checksumInv) + return CARD_RESULT_BROKEN; + + if (id->encode != OSGetFontEncode()) + return CARD_RESULT_ENCODING; + + rand = *(OSTime *)&id->serial[12]; + sramEx = __OSLockSramEx(); + for (i = 0; i < 12; i++) { + rand = (rand * 1103515245 + 12345) >> 16; + if (id->serial[i] != (u8)(sramEx->flashID[card - __CARDBlock][i] + rand)) { + __OSUnlockSramEx(FALSE); + return CARD_RESULT_BROKEN; + } + rand = ((rand * 1103515245 + 12345) >> 16) & 0x7FFF; + } + + __OSUnlockSramEx(FALSE); + + return CARD_RESULT_READY; +} + +static s32 VerifyDir(CARDControl *card, int *outCurrent) +{ + CARDDir *dir[2]; + CARDDirCheck *check[2]; + u16 checkSum; + u16 checkSumInv; + int i; + int errors; + int current; + + current = errors = 0; + for (i = 0; i < 2; i++) { + dir[i] = (CARDDir *)((u8 *)card->workArea + (1 + i) * CARD_SYSTEM_BLOCK_SIZE); + check[i] = __CARDGetDirCheck(dir[i]); + __CARDCheckSum(dir[i], CARD_SYSTEM_BLOCK_SIZE - sizeof(u32), &checkSum, &checkSumInv); + if (check[i]->checkSum != checkSum || check[i]->checkSumInv != checkSumInv) { + ++errors; + current = i; + card->currentDir = 0; + } + } + + if (0 == errors) { + if (card->currentDir == 0) { + if ((check[0]->checkCode - check[1]->checkCode) < 0) { + current = 0; + } + else { + current = 1; + } + card->currentDir = dir[current]; + memcpy(dir[current], dir[current ^ 1], CARD_SYSTEM_BLOCK_SIZE); + } + else { + current = (card->currentDir == dir[0]) ? 0 : 1; + } + } + if (outCurrent) { + *outCurrent = current; + } + return errors; +} + +static s32 VerifyFAT(CARDControl *card, int *outCurrent) +{ + u16 *fat[2]; + u16 *fatp; + u16 nBlock; + u16 cFree; + int i; + u16 checkSum; + u16 checkSumInv; + int errors; + int current; + + current = errors = 0; + for (i = 0; i < 2; i++) { + fatp = fat[i] = (u16 *)((u8 *)card->workArea + (3 + i) * CARD_SYSTEM_BLOCK_SIZE); + + __CARDCheckSum(&fatp[CARD_FAT_CHECKCODE], CARD_SYSTEM_BLOCK_SIZE - sizeof(u32), &checkSum, &checkSumInv); + if (fatp[CARD_FAT_CHECKSUM] != checkSum || fatp[CARD_FAT_CHECKSUMINV] != checkSumInv) { + ++errors; + current = i; + card->currentFat = 0; + continue; + } + + cFree = 0; + for (nBlock = CARD_NUM_SYSTEM_BLOCK; nBlock < card->cBlock; nBlock++) { + if (fatp[nBlock] == CARD_FAT_AVAIL) { + cFree++; + } + } + if (cFree != fatp[CARD_FAT_FREEBLOCKS]) { + ++errors; + current = i; + card->currentFat = 0; + continue; + } + } + + if (0 == errors) { + if (card->currentFat == 0) { + if (((s16)fat[0][CARD_FAT_CHECKCODE] - (s16)fat[1][CARD_FAT_CHECKCODE]) < 0) { + current = 0; + } + else { + current = 1; + } + card->currentFat = fat[current]; + memcpy(fat[current], fat[current ^ 1], CARD_SYSTEM_BLOCK_SIZE); + } + else { + current = (card->currentFat == fat[0]) ? 0 : 1; + } + } + if (outCurrent) { + *outCurrent = current; + } + return errors; +} + +s32 __CARDVerify(CARDControl *card) +{ + s32 result; + int errors; + + result = VerifyID(card); + if (result < 0) { + return result; + } + + errors = VerifyDir(card, NULL); + errors += VerifyFAT(card, NULL); + switch (errors) { + case 0: + return CARD_RESULT_READY; + case 1: + return CARD_RESULT_BROKEN; + default: + return CARD_RESULT_BROKEN; + } +} + +s32 CARDCheckExAsync(s32 chan, s32 *xferBytes, CARDCallback callback) +{ + CARDControl *card; + CARDDir *dir[2]; + u16 *fat[2]; + u16 *map; + s32 result; + int errors; + int currentFat; + int currentDir; + s32 fileNo; + u16 iBlock; + u16 cBlock; + u16 cFree; + BOOL updateFat = FALSE; + BOOL updateDir = FALSE; + BOOL updateOrphan = FALSE; + + if (xferBytes) { + *xferBytes = 0; + } + + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + + result = VerifyID(card); + if (result < 0) { + return __CARDPutControlBlock(card, result); + } + + errors = VerifyDir(card, ¤tDir); + errors += VerifyFAT(card, ¤tFat); + if (1 < errors) { + return __CARDPutControlBlock(card, CARD_RESULT_BROKEN); + } + + dir[0] = (CARDDir *)((u8 *)card->workArea + (1 + 0) * CARD_SYSTEM_BLOCK_SIZE); + dir[1] = (CARDDir *)((u8 *)card->workArea + (1 + 1) * CARD_SYSTEM_BLOCK_SIZE); + fat[0] = (u16 *)((u8 *)card->workArea + (3 + 0) * CARD_SYSTEM_BLOCK_SIZE); + fat[1] = (u16 *)((u8 *)card->workArea + (3 + 1) * CARD_SYSTEM_BLOCK_SIZE); + + switch (errors) { + case 0: + break; + case 1: + if (!card->currentDir) { + card->currentDir = dir[currentDir]; + memcpy(dir[currentDir], dir[currentDir ^ 1], CARD_SYSTEM_BLOCK_SIZE); + updateDir = TRUE; + } + else { + card->currentFat = fat[currentFat]; + memcpy(fat[currentFat], fat[currentFat ^ 1], CARD_SYSTEM_BLOCK_SIZE); + updateFat = TRUE; + } + break; + } + + map = fat[currentFat ^ 1]; + memset(map, 0, CARD_SYSTEM_BLOCK_SIZE); + + for (fileNo = 0; fileNo < CARD_MAX_FILE; fileNo++) { + CARDDir *ent; + + ent = &card->currentDir[fileNo]; + if (ent->gameName[0] == 0xff) { + continue; + } + + for (iBlock = ent->startBlock, cBlock = 0; iBlock != 0xFFFF && cBlock < ent->length; iBlock = card->currentFat[iBlock], ++cBlock) { + if (!CARDIsValidBlockNo(card, iBlock) || 1 < ++map[iBlock]) { + return __CARDPutControlBlock(card, CARD_RESULT_BROKEN); + } + } + if (cBlock != ent->length || iBlock != 0xFFFF) { + return __CARDPutControlBlock(card, CARD_RESULT_BROKEN); + } + } + + cFree = 0; + for (iBlock = CARD_NUM_SYSTEM_BLOCK; iBlock < card->cBlock; iBlock++) { + u16 nextBlock; + + nextBlock = card->currentFat[iBlock]; + if (map[iBlock] == 0) { + if (nextBlock != CARD_FAT_AVAIL) { + card->currentFat[iBlock] = CARD_FAT_AVAIL; + updateOrphan = TRUE; + } + cFree++; + } + else if (!CARDIsValidBlockNo(card, nextBlock) && nextBlock != 0xFFFF) { + return __CARDPutControlBlock(card, CARD_RESULT_BROKEN); + } + } + if (cFree != card->currentFat[CARD_FAT_FREEBLOCKS]) { + card->currentFat[CARD_FAT_FREEBLOCKS] = cFree; + updateOrphan = TRUE; + } + if (updateOrphan) { + __CARDCheckSum(&card->currentFat[CARD_FAT_CHECKCODE], CARD_SYSTEM_BLOCK_SIZE - sizeof(u32), &card->currentFat[CARD_FAT_CHECKSUM], + &card->currentFat[CARD_FAT_CHECKSUMINV]); + } + + memcpy(fat[currentFat ^ 1], fat[currentFat], CARD_SYSTEM_BLOCK_SIZE); + + if (updateDir) { + if (xferBytes) { + *xferBytes = CARD_SYSTEM_BLOCK_SIZE; + } + return __CARDUpdateDir(chan, callback); + } + + if (updateFat | updateOrphan) { + if (xferBytes) { + *xferBytes = CARD_SYSTEM_BLOCK_SIZE; + } + return __CARDUpdateFatBlock(chan, card->currentFat, callback); + } + + __CARDPutControlBlock(card, CARD_RESULT_READY); + if (callback) { + BOOL enabled = OSDisableInterrupts(); + callback(chan, CARD_RESULT_READY); + OSRestoreInterrupts(enabled); + } + return CARD_RESULT_READY; +} + +s32 CARDCheckAsync(s32 chan, CARDCallback callback) +{ + s32 xferBytes; + + return CARDCheckExAsync(chan, &xferBytes, callback); +} + +s32 CARDCheck(s32 chan) +{ + s32 xferBytes; + + s32 result = CARDCheckExAsync(chan, &xferBytes, __CARDSyncCallback); + if (result >= 0) { + if (&xferBytes == NULL) { + return result; + } + + return __CARDSync(chan); + } + + return result; +} diff --git a/src/dolphin/card/CARDCreate.c b/src/dolphin/card/CARDCreate.c new file mode 100644 index 00000000..ac91d727 --- /dev/null +++ b/src/dolphin/card/CARDCreate.c @@ -0,0 +1,126 @@ +#include +#include +#include +#include + +#include + +static void CreateCallbackFat(s32 chan, s32 result) +{ + CARDControl *card; + CARDDir *dir; + CARDDir *ent; + CARDCallback callback; + + card = &__CARDBlock[chan]; + callback = card->apiCallback; + card->apiCallback = 0; + if (result < 0) { + goto error; + } + + dir = __CARDGetDirBlock(card); + ent = &dir[card->freeNo]; + memcpy(ent->gameName, card->diskID->gameName, sizeof(ent->gameName)); + memcpy(ent->company, card->diskID->company, sizeof(ent->company)); + ent->permission = CARD_ATTR_PUBLIC; + ent->copyTimes = 0; + ent->startBlock = card->startBlock; + + ent->bannerFormat = 0; + ent->iconAddr = 0xffffffff; + ent->iconFormat = 0; + ent->iconSpeed = 0; + ent->commentAddr = 0xffffffff; + + CARDSetIconSpeed(ent, 0, CARD_STAT_SPEED_FAST); + + card->fileInfo->offset = 0; + card->fileInfo->iBlock = ent->startBlock; + + ent->time = (u32)OSTicksToSeconds(OSGetTime()); + result = __CARDUpdateDir(chan, callback); + if (result < 0) { + goto error; + } + return; + +error: + __CARDPutControlBlock(card, result); + if (callback) { + callback(chan, result); + } +} + +s32 CARDCreateAsync(s32 chan, const char *fileName, u32 size, CARDFileInfo *fileInfo, CARDCallback callback) +{ + CARDControl *card; + CARDDir *dir; + CARDDir *ent; + s32 result; + u16 fileNo; + u16 freeNo; + u16 *fat; + + if (strlen(fileName) > (u32)CARD_FILENAME_MAX) { + return CARD_RESULT_NAMETOOLONG; + } + + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + + if (size <= 0 || (size % card->sectorSize) != 0) { + return CARD_RESULT_FATAL_ERROR; + } + + freeNo = (u16)-1; + dir = __CARDGetDirBlock(card); + for (fileNo = 0; fileNo < CARD_MAX_FILE; fileNo++) { + ent = &dir[fileNo]; + if (ent->gameName[0] == 0xff) { + if (freeNo == (u16)-1) { + freeNo = fileNo; + } + } + else if (memcmp(ent->gameName, card->diskID->gameName, sizeof(ent->gameName)) == 0 + && memcmp(ent->company, card->diskID->company, sizeof(ent->company)) == 0 && __CARDCompareFileName(ent, fileName)) { + return __CARDPutControlBlock(card, CARD_RESULT_EXIST); + } + } + if (freeNo == (u16)-1) { + return __CARDPutControlBlock(card, CARD_RESULT_NOENT); + } + + fat = __CARDGetFatBlock(card); + if (card->sectorSize * fat[CARD_FAT_FREEBLOCKS] < size) { + return __CARDPutControlBlock(card, CARD_RESULT_INSSPACE); + } + + card->apiCallback = callback ? callback : __CARDDefaultApiCallback; + card->freeNo = freeNo; + ent = &dir[freeNo]; + ent->length = (u16)(size / card->sectorSize); + strcat(ent->fileName, fileName, CARD_FILENAME_MAX); + + card->fileInfo = fileInfo; + fileInfo->chan = chan; + fileInfo->fileNo = freeNo; + + result = __CARDAllocBlock(chan, size / card->sectorSize, CreateCallbackFat); + if (result < 0) { + return __CARDPutControlBlock(card, result); + } + return result; +} + +s32 CARDCreate(s32 chan, const char *fileName, u32 size, CARDFileInfo *fileInfo) +{ + s32 result = CARDCreateAsync(chan, fileName, size, fileInfo, __CARDSyncCallback); + if (result < 0) { + return result; + } + + return __CARDSync(chan); +} diff --git a/src/dolphin/card/CARDDelete.c b/src/dolphin/card/CARDDelete.c new file mode 100644 index 00000000..8b531738 --- /dev/null +++ b/src/dolphin/card/CARDDelete.c @@ -0,0 +1,111 @@ +#include +#include +#include +#include + +#include "string.h" + +#include + +static void DeleteCallback(s32 chan, s32 result) +{ + CARDControl *card; + CARDCallback callback; + + card = &__CARDBlock[chan]; + callback = card->apiCallback; + card->apiCallback = 0; + + if (result < 0) { + goto error; + } + + result = __CARDFreeBlock(chan, card->startBlock, callback); + if (result < 0) { + goto error; + } + return; + +error: + __CARDPutControlBlock(card, result); + if (callback) { + callback(chan, result); + } +} + +s32 CARDFastDeleteAsync(s32 chan, s32 fileNo, CARDCallback callback) +{ + CARDControl *card; + CARDDir *dir; + CARDDir *ent; + s32 result; + + if (fileNo < 0 || CARD_MAX_FILE <= fileNo) { + return CARD_RESULT_FATAL_ERROR; + } + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + + dir = __CARDGetDirBlock(card); + ent = &dir[fileNo]; + result = __CARDAccess(card, ent); + if (result < 0) { + return __CARDPutControlBlock(card, result); + } + if (__CARDIsOpened(card, fileNo)) { + return __CARDPutControlBlock(card, CARD_RESULT_BUSY); + } + card->startBlock = ent->startBlock; + memset(ent, 0xff, sizeof(CARDDir)); + + card->apiCallback = callback ? callback : __CARDDefaultApiCallback; + result = __CARDUpdateDir(chan, DeleteCallback); + if (result < 0) { + __CARDPutControlBlock(card, result); + } + return result; +} + +s32 CARDDeleteAsync(s32 chan, const char *fileName, CARDCallback callback) +{ + CARDControl *card; + s32 fileNo; + s32 result; + CARDDir *dir; + CARDDir *ent; + + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + result = __CARDGetFileNo(card, fileName, &fileNo); + if (result < 0) { + return __CARDPutControlBlock(card, result); + } + if (__CARDIsOpened(card, fileNo)) { + return __CARDPutControlBlock(card, CARD_RESULT_BUSY); + } + + dir = __CARDGetDirBlock(card); + ent = &dir[fileNo]; + card->startBlock = ent->startBlock; + memset(ent, 0xff, sizeof(CARDDir)); + + card->apiCallback = callback ? callback : __CARDDefaultApiCallback; + result = __CARDUpdateDir(chan, DeleteCallback); + if (result < 0) { + __CARDPutControlBlock(card, result); + } + return result; +} + +s32 CARDDelete(s32 chan, const char *fileName) +{ + s32 result = CARDDeleteAsync(chan, fileName, __CARDSyncCallback); + + if (result < 0) + return result; + return __CARDSync(chan); +} diff --git a/src/dolphin/card/CARDDir.c b/src/dolphin/card/CARDDir.c new file mode 100644 index 00000000..97844a6e --- /dev/null +++ b/src/dolphin/card/CARDDir.c @@ -0,0 +1,101 @@ +#include +#include +#include +#include + +#include "string.h" + +#include + +CARDDir *__CARDGetDirBlock(CARDControl *card) +{ + return card->currentDir; +} + +static void WriteCallback(s32 chan, s32 result) +{ + CARDControl *card; + CARDCallback callback; + + card = &__CARDBlock[chan]; + if (0 <= result) { + CARDDir *dir0 = (CARDDir *)((u8 *)card->workArea + 0x2000); + CARDDir *dir1 = (CARDDir *)((u8 *)card->workArea + 0x4000); + + if (card->currentDir == dir0) { + card->currentDir = dir1; + memcpy(dir1, dir0, 0x2000); + } + else { + card->currentDir = dir0; + memcpy(dir0, dir1, 0x2000); + } + } + +error: + if (card->apiCallback == 0) { + __CARDPutControlBlock(card, result); + } + callback = card->eraseCallback; + if (callback) { + card->eraseCallback = 0; + callback(chan, result); + } +} + +static void EraseCallback(s32 chan, s32 result) +{ + CARDControl *card; + CARDCallback callback; + CARDDir *dir; + u32 tmp[2]; + u32 addr; + + card = &__CARDBlock[chan]; + if (result < 0) { + goto error; + } + + dir = __CARDGetDirBlock(card); + addr = ((u32)dir - (u32)card->workArea) / 0x2000 * card->sectorSize; + result = __CARDWrite(chan, addr, 0x2000, dir, WriteCallback); + if (result < 0) { + goto error; + } + + return; + +error: + if (card->apiCallback == 0) { + __CARDPutControlBlock(card, result); + } + callback = card->eraseCallback; + if (callback) { + card->eraseCallback = 0; + callback(chan, result); + } +} + +s32 __CARDUpdateDir(s32 chan, CARDCallback callback) +{ + CARDControl *card; + CARDDirCheck *check; + u32 tmp[2]; + u32 addr; + CARDDir *dir; + + card = &__CARDBlock[chan]; + if (!card->attached) { + return CARD_RESULT_NOCARD; + } + + dir = __CARDGetDirBlock(card); + check = __CARDGetDirCheck(dir); + ++check->checkCode; + __CARDCheckSum(dir, 0x2000 - sizeof(u32), &check->checkSum, &check->checkSumInv); + DCStoreRange(dir, 0x2000); + + card->eraseCallback = callback; + addr = ((u32)dir - (u32)card->workArea) / 0x2000 * card->sectorSize; + return __CARDEraseSector(chan, addr, EraseCallback); +} diff --git a/src/dolphin/card/CARDFormat.c b/src/dolphin/card/CARDFormat.c new file mode 100644 index 00000000..b2c91930 --- /dev/null +++ b/src/dolphin/card/CARDFormat.c @@ -0,0 +1,141 @@ +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "string.h" + +static void FormatCallback(s32 chan, s32 result) +{ + CARDControl *card; + CARDCallback callback; + + card = &__CARDBlock[chan]; + if (result < 0) { + goto error; + } + + ++card->formatStep; + if (card->formatStep < CARD_NUM_SYSTEM_BLOCK) { + result = __CARDEraseSector(chan, (u32)card->sectorSize * card->formatStep, FormatCallback); + if (0 <= result) { + return; + } + } + else if (card->formatStep < 2 * CARD_NUM_SYSTEM_BLOCK) { + int step = card->formatStep - CARD_NUM_SYSTEM_BLOCK; + result = __CARDWrite( + chan, (u32)card->sectorSize * step, CARD_SYSTEM_BLOCK_SIZE, (u8 *)card->workArea + (CARD_SYSTEM_BLOCK_SIZE * step), FormatCallback); + if (result >= 0) { + return; + } + } + else { + card->currentDir = (CARDDir *)((u8 *)card->workArea + (1 + 0) * CARD_SYSTEM_BLOCK_SIZE); + memcpy(card->currentDir, (u8 *)card->workArea + (1 + 1) * CARD_SYSTEM_BLOCK_SIZE, CARD_SYSTEM_BLOCK_SIZE); + card->currentFat = (u16 *)((u8 *)card->workArea + (3 + 0) * CARD_SYSTEM_BLOCK_SIZE); + memcpy(card->currentFat, (u8 *)card->workArea + (3 + 1) * CARD_SYSTEM_BLOCK_SIZE, CARD_SYSTEM_BLOCK_SIZE); + } + +error: + callback = card->apiCallback; + card->apiCallback = 0; + __CARDPutControlBlock(card, result); + callback(chan, result); +} + +s32 __CARDFormatRegionAsync(s32 chan, u16 encode, CARDCallback callback) +{ + CARDControl *card; + CARDID *id; + CARDDir *dir; + u16 *fat; + s16 i; + s32 result; + OSSram *sram; + OSSramEx *sramEx; + u16 viDTVStatus; + OSTime time; + OSTime rand; + + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + + id = (CARDID *)card->workArea; + memset(id, 0xff, CARD_SYSTEM_BLOCK_SIZE); + viDTVStatus = __VIRegs[55]; + + id->encode = encode; + + sram = __OSLockSram(); + *(u32 *)&id->serial[20] = sram->counterBias; + *(u32 *)&id->serial[24] = sram->language; + __OSUnlockSram(FALSE); + + rand = time = OSGetTime(); + + sramEx = __OSLockSramEx(); + for (i = 0; i < 12; i++) { + rand = (rand * 1103515245 + 12345) >> 16; + id->serial[i] = (u8)(sramEx->flashID[chan][i] + rand); + rand = ((rand * 1103515245 + 12345) >> 16) & 0x7FFF; + } + __OSUnlockSramEx(FALSE); + + *(u32 *)&id->serial[28] = viDTVStatus; + *(OSTime *)&id->serial[12] = time; + + id->deviceID = 0; + id->size = card->size; + __CARDCheckSum(id, sizeof(CARDID) - sizeof(u32), &id->checkSum, &id->checkSumInv); + + for (i = 0; i < 2; i++) { + CARDDirCheck *check; + + dir = (CARDDir *)((u8 *)card->workArea + (1 + i) * CARD_SYSTEM_BLOCK_SIZE); + memset(dir, 0xff, CARD_SYSTEM_BLOCK_SIZE); + check = __CARDGetDirCheck(dir); + check->checkCode = i; + __CARDCheckSum(dir, CARD_SYSTEM_BLOCK_SIZE - sizeof(u32), &check->checkSum, &check->checkSumInv); + } + for (i = 0; i < 2; i++) { + fat = (u16 *)((u8 *)card->workArea + (3 + i) * CARD_SYSTEM_BLOCK_SIZE); + memset(fat, 0x00, CARD_SYSTEM_BLOCK_SIZE); + fat[CARD_FAT_CHECKCODE] = (u16)i; + fat[CARD_FAT_FREEBLOCKS] = (u16)(card->cBlock - CARD_NUM_SYSTEM_BLOCK); + fat[CARD_FAT_LASTSLOT] = CARD_NUM_SYSTEM_BLOCK - 1; + __CARDCheckSum(&fat[CARD_FAT_CHECKCODE], CARD_SYSTEM_BLOCK_SIZE - sizeof(u32), &fat[CARD_FAT_CHECKSUM], &fat[CARD_FAT_CHECKSUMINV]); + } + + card->apiCallback = callback ? callback : __CARDDefaultApiCallback; + DCStoreRange(card->workArea, CARD_WORKAREA_SIZE); + + card->formatStep = 0; + result = __CARDEraseSector(chan, (u32)card->sectorSize * card->formatStep, FormatCallback); + if (result < 0) { + __CARDPutControlBlock(card, result); + } + return result; +} + +s32 CARDFormatAsync(s32 chan, CARDCallback callback) +{ + return __CARDFormatRegionAsync(chan, __CARDGetFontEncode(), callback); +} + +s32 CARDFormat(s32 chan) +{ + s32 result = __CARDFormatRegionAsync(chan, OSGetFontEncode(), __CARDSyncCallback); + if (result < 0) { + return result; + } + + return __CARDSync(chan); +} diff --git a/src/dolphin/card/CARDMount.c b/src/dolphin/card/CARDMount.c new file mode 100644 index 00000000..f8e75c49 --- /dev/null +++ b/src/dolphin/card/CARDMount.c @@ -0,0 +1,396 @@ +#include +#include +#include +#include +#include + +#include +#include + +u8 GameChoice : (OS_BASE_CACHED | 0x000030E3); + +static u32 SectorSizeTable[8] = { + 8 * 1024, + 16 * 1024, + 32 * 1024, + 64 * 1024, + 128 * 1024, + 256 * 1024, + 0, + 0, +}; + +static u32 LatencyTable[8] = { + 4, + 8, + 16, + 32, + 64, + 128, + 256, + 512, +}; + +void __CARDMountCallback(s32 chan, s32 result); +static void DoUnmount(s32 chan, s32 result); + +static BOOL IsCard(u32 id) +{ + u32 size; + s32 sectorSize; + if (id & (0xFFFF0000) && (id != 0x80000004 || __CARDVendorID == 0xFFFF)) { + return FALSE; + } + + if ((id & 3) != 0) { + return FALSE; + } + + size = id & 0xfc; + switch (size) { + case 4: + case 8: + case 16: + case 32: + case 64: + case 128: + break; + default: + return FALSE; + break; + } + + sectorSize = SectorSizeTable[(id & 0x00003800) >> 11]; + if (sectorSize == 0) { + return FALSE; + } + + if ((size * 1024 * 1024 / 8) / sectorSize < 8) { + return FALSE; + } + + return TRUE; +} + +s32 CARDProbeEx(s32 chan, s32 *memSize, s32 *sectorSize) +{ + u32 id; + CARDControl *card; + BOOL enabled; + s32 result; + int probe; + + if (chan < 0 || 2 <= chan) { + return CARD_RESULT_FATAL_ERROR; + } + + if (GameChoice & 0x80) { + return CARD_RESULT_NOCARD; + } + + card = &__CARDBlock[chan]; + enabled = OSDisableInterrupts(); + + probe = EXIProbeEx(chan); + if (probe == -1) { + result = CARD_RESULT_NOCARD; + } + else if (probe == 0) { + result = CARD_RESULT_BUSY; + } + else if (card->attached) { + if (card->mountStep < 1) { + result = CARD_RESULT_BUSY; + } + else { + if (memSize) { + *memSize = card->size; + } + if (sectorSize) { + *sectorSize = card->sectorSize; + } + result = CARD_RESULT_READY; + } + } + else if ((EXIGetState(chan) & 8)) { + result = CARD_RESULT_WRONGDEVICE; + } + else if (!EXIGetID(chan, 0, &id)) { + result = CARD_RESULT_BUSY; + } + else if (IsCard(id)) { + if (memSize) { + *memSize = (s32)(id & 0xfc); + } + if (sectorSize) { + *sectorSize = SectorSizeTable[(id & 0x00003800) >> 11]; + } + result = CARD_RESULT_READY; + } + else { + result = CARD_RESULT_WRONGDEVICE; + } + + OSRestoreInterrupts(enabled); + return result; +} + +static s32 DoMount(s32 chan) +{ + CARDControl *card; + u32 id; + u8 status; + s32 result; + OSSramEx *sram; + int i; + u8 checkSum; + int step; + + card = &__CARDBlock[chan]; + + if (card->mountStep == 0) { + if (EXIGetID(chan, 0, &id) == 0) { + result = CARD_RESULT_NOCARD; + } + else if (IsCard(id)) { + result = CARD_RESULT_READY; + } + else { + result = CARD_RESULT_WRONGDEVICE; + } + if (result < 0) { + goto error; + } + + card->cid = id; + + card->size = (u16)(id & 0xFC); + card->sectorSize = SectorSizeTable[(id & 0x00003800) >> 11]; + card->cBlock = (u16)((card->size * 1024 * 1024 / 8) / card->sectorSize); + card->latency = LatencyTable[(id & 0x00000700) >> 8]; + + result = __CARDClearStatus(chan); + if (result < 0) { + goto error; + } + result = __CARDReadStatus(chan, &status); + if (result < 0) { + goto error; + } + + if (!EXIProbe(chan)) { + result = CARD_RESULT_NOCARD; + goto error; + } + + if (!(status & 0x40)) { + result = __CARDUnlock(chan, card->id); + if (result < 0) { + goto error; + } + + checkSum = 0; + sram = __OSLockSramEx(); + for (i = 0; i < 12; i++) { + sram->flashID[chan][i] = card->id[i]; + checkSum += card->id[i]; + } + sram->flashIDCheckSum[chan] = (u8)~checkSum; + __OSUnlockSramEx(TRUE); + + return result; + } + else { + card->mountStep = 1; + + checkSum = 0; + sram = __OSLockSramEx(); + for (i = 0; i < 12; i++) { + checkSum += sram->flashID[chan][i]; + } + __OSUnlockSramEx(FALSE); + if (sram->flashIDCheckSum[chan] != (u8)~checkSum) { + result = CARD_RESULT_IOERROR; + goto error; + } + } + } + + if (card->mountStep == 1) { + if (card->cid == 0x80000004) { + u16 vendorID; + + sram = __OSLockSramEx(); + vendorID = *(u16 *)sram->flashID[chan]; + __OSUnlockSramEx(FALSE); + + if (__CARDVendorID == 0xffff || vendorID != __CARDVendorID) { + result = CARD_RESULT_WRONGDEVICE; + goto error; + } + } + + card->mountStep = 2; + + result = __CARDEnableInterrupt(chan, TRUE); + if (result < 0) { + goto error; + } + + EXISetExiCallback(chan, __CARDExiHandler); + EXIUnlock(chan); + DCInvalidateRange(card->workArea, CARD_WORKAREA_SIZE); + } + + step = card->mountStep - 2; + result = __CARDRead( + chan, (u32)card->sectorSize * step, CARD_SYSTEM_BLOCK_SIZE, (u8 *)card->workArea + (CARD_SYSTEM_BLOCK_SIZE * step), __CARDMountCallback); + if (result < 0) { + __CARDPutControlBlock(card, result); + } + return result; + +error: + EXIUnlock(chan); + DoUnmount(chan, result); + return result; +} + +void __CARDMountCallback(s32 chan, s32 result) +{ + CARDControl *card; + CARDCallback callback; + + card = &__CARDBlock[chan]; + + switch (result) { + case CARD_RESULT_READY: + if (++card->mountStep < CARD_MAX_MOUNT_STEP) { + result = DoMount(chan); + if (0 <= result) { + return; + } + } + else { + result = __CARDVerify(card); + } + break; + case CARD_RESULT_UNLOCKED: + card->unlockCallback = __CARDMountCallback; + if (!EXILock(chan, 0, __CARDUnlockedHandler)) { + return; + } + card->unlockCallback = 0; + + result = DoMount(chan); + if (0 <= result) { + return; + } + break; + case CARD_RESULT_IOERROR: + case CARD_RESULT_NOCARD: + DoUnmount(chan, result); + break; + } + + callback = card->apiCallback; + card->apiCallback = 0; + __CARDPutControlBlock(card, result); + callback(chan, result); +} + +s32 CARDMountAsync(s32 chan, void *workArea, CARDCallback detachCallback, CARDCallback attachCallback) +{ + CARDControl *card; + BOOL enabled; + + if (chan < 0 || 2 <= chan) { + return CARD_RESULT_FATAL_ERROR; + } + if (GameChoice & 0x80) { + return CARD_RESULT_NOCARD; + } + card = &__CARDBlock[chan]; + + enabled = OSDisableInterrupts(); + if (card->result == CARD_RESULT_BUSY) { + OSRestoreInterrupts(enabled); + return CARD_RESULT_BUSY; + } + + if (!card->attached && (EXIGetState(chan) & 0x08)) { + OSRestoreInterrupts(enabled); + return CARD_RESULT_WRONGDEVICE; + } + + card->result = CARD_RESULT_BUSY; + card->workArea = workArea; + card->extCallback = detachCallback; + card->apiCallback = attachCallback ? attachCallback : __CARDDefaultApiCallback; + card->exiCallback = 0; + + if (!card->attached && !EXIAttach(chan, __CARDExtHandler)) { + card->result = CARD_RESULT_NOCARD; + OSRestoreInterrupts(enabled); + return CARD_RESULT_NOCARD; + } + + card->mountStep = 0; + card->attached = TRUE; + EXISetExiCallback(chan, 0); + OSCancelAlarm(&card->alarm); + + card->currentDir = 0; + card->currentFat = 0; + + OSRestoreInterrupts(enabled); + + card->unlockCallback = __CARDMountCallback; + if (!EXILock(chan, 0, __CARDUnlockedHandler)) { + return CARD_RESULT_READY; + } + card->unlockCallback = 0; + + return DoMount(chan); +} + +s32 CARDMount(s32 chan, void *workArea, CARDCallback attachCb) +{ + s32 result = CARDMountAsync(chan, workArea, attachCb, __CARDSyncCallback); + if (result < 0) { + return result; + } + + return __CARDSync(chan); +} + +static void DoUnmount(s32 chan, s32 result) +{ + CARDControl *card; + BOOL enabled; + + card = &__CARDBlock[chan]; + enabled = OSDisableInterrupts(); + if (card->attached) { + EXISetExiCallback(chan, 0); + EXIDetach(chan); + OSCancelAlarm(&card->alarm); + card->attached = FALSE; + card->result = result; + card->mountStep = 0; + } + OSRestoreInterrupts(enabled); +} + +s32 CARDUnmount(s32 chan) +{ + CARDControl *card; + s32 result; + + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + DoUnmount(chan, CARD_RESULT_NOCARD); + return CARD_RESULT_READY; +} diff --git a/src/dolphin/card/CARDNet.c b/src/dolphin/card/CARDNet.c new file mode 100644 index 00000000..24ab484f --- /dev/null +++ b/src/dolphin/card/CARDNet.c @@ -0,0 +1,34 @@ +#include +#include +#include +#include + +#include + +u16 __CARDVendorID = 0xffff; + +s32 CARDGetSerialNo(s32 chan, u64 *serialNo) +{ + CARDControl *card; + CARDID *id; + int i; + u64 code; + s32 result; + + if (!(0 <= chan && chan < 2)) { + return CARD_RESULT_FATAL_ERROR; + } + + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + + id = (CARDID *)card->workArea; + for (code = 0, i = 0; i < sizeof(id->serial) / sizeof(u64); ++i) { + code ^= *(u64 *)&id->serial[sizeof(u64) * i]; + } + *serialNo = code; + + return __CARDPutControlBlock(card, CARD_RESULT_READY); +} diff --git a/src/dolphin/card/CARDOpen.c b/src/dolphin/card/CARDOpen.c new file mode 100644 index 00000000..929982a0 --- /dev/null +++ b/src/dolphin/card/CARDOpen.c @@ -0,0 +1,134 @@ +#include +#include +#include +#include + +#include + +BOOL __CARDCompareFileName(CARDDir *ent, const char *fileName) +{ + char *entName; + char c1; + char c2; + int n; + + entName = (char *)ent->fileName; + n = CARD_FILENAME_MAX; + while (0 <= --n) { + if ((c1 = *entName++) != (c2 = *fileName++)) { + return FALSE; + } + else if (c2 == '\0') { + return TRUE; + } + } + + if (*fileName == '\0') { + return TRUE; + } + + return FALSE; +} + +s32 __CARDAccess(CARDControl *card, CARDDir *ent) +{ + if (ent->gameName[0] == 0xFF) { + return CARD_RESULT_NOFILE; + } + + if (card->diskID == &__CARDDiskNone + || (memcmp(ent->gameName, card->diskID->gameName, 4) == 0 && memcmp(ent->company, card->diskID->company, 2) == 0)) { + return CARD_RESULT_READY; + } + + return CARD_RESULT_NOPERM; +} + +BOOL __CARDIsPublic(CARDDir *ent) +{ + if (ent->gameName[0] == 0xFF) { + return CARD_RESULT_NOFILE; + } + + if ((ent->permission & CARD_ATTR_PUBLIC) != 0) { + return CARD_RESULT_READY; + } + + return CARD_RESULT_NOPERM; +} + +s32 __CARDGetFileNo(CARDControl *card, const char *fileName, s32 *pfileNo) +{ + CARDDir *dir; + CARDDir *ent; + s32 fileNo; + s32 result; + + if (!card->attached) { + return CARD_RESULT_NOCARD; + } + + dir = __CARDGetDirBlock(card); + for (fileNo = 0; fileNo < CARD_MAX_FILE; fileNo++) { + ent = &dir[fileNo]; + result = __CARDAccess(card, ent); + if (result < 0) { + continue; + } + if (__CARDCompareFileName(ent, fileName)) { + *pfileNo = fileNo; + return CARD_RESULT_READY; + } + } + + return CARD_RESULT_NOFILE; +} + +s32 CARDOpen(s32 chan, const char *fileName, CARDFileInfo *fileInfo) +{ + CARDControl *card; + CARDDir *dir; + CARDDir *ent; + s32 result; + s32 fileNo; + + fileInfo->chan = -1; + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + result = __CARDGetFileNo(card, fileName, &fileNo); + if (0 <= result) { + dir = __CARDGetDirBlock(card); + ent = &dir[fileNo]; + if (!CARDIsValidBlockNo(card, ent->startBlock)) { + result = CARD_RESULT_BROKEN; + } + else { + fileInfo->chan = chan; + fileInfo->fileNo = fileNo; + fileInfo->offset = 0; + fileInfo->iBlock = ent->startBlock; + } + } + return __CARDPutControlBlock(card, result); +} + +s32 CARDClose(CARDFileInfo *fileInfo) +{ + CARDControl *card; + s32 result; + + result = __CARDGetControlBlock(fileInfo->chan, &card); + if (result < 0) { + return result; + } + + fileInfo->chan = -1; + return __CARDPutControlBlock(card, CARD_RESULT_READY); +} + +BOOL __CARDIsOpened(CARDControl *card, s32 fileNo) +{ + return FALSE; +} diff --git a/src/dolphin/card/CARDRdwr.c b/src/dolphin/card/CARDRdwr.c new file mode 100644 index 00000000..3a235891 --- /dev/null +++ b/src/dolphin/card/CARDRdwr.c @@ -0,0 +1,108 @@ +#include +#include +#include +#include + +#include + +static void BlockReadCallback(s32 chan, s32 result) +{ + CARDControl *card; + CARDCallback callback; + + card = &__CARDBlock[chan]; + if (result < 0) { + goto error; + } + + card->xferred += CARD_SEG_SIZE; + + card->addr += CARD_SEG_SIZE; + (u8 *)card->buffer += CARD_SEG_SIZE; + if (--card->repeat <= 0) { + goto error; + } + + result = __CARDReadSegment(chan, BlockReadCallback); + if (result < 0) { + goto error; + } + return; + +error: + if (card->apiCallback == 0) { + __CARDPutControlBlock(card, result); + } + callback = card->xferCallback; + if (callback) { + card->xferCallback = 0; + callback(chan, result); + } +} + +s32 __CARDRead(s32 chan, u32 addr, s32 length, void *dst, CARDCallback callback) +{ + CARDControl *card; + card = &__CARDBlock[chan]; + if (!card->attached) { + return CARD_RESULT_NOCARD; + } + + card->xferCallback = callback; + card->repeat = (int)(length / CARD_SEG_SIZE); + card->addr = addr; + card->buffer = dst; + + return __CARDReadSegment(chan, BlockReadCallback); +} + +static void BlockWriteCallback(s32 chan, s32 result) +{ + CARDControl *card; + CARDCallback callback; + + card = &__CARDBlock[chan]; + if (result < 0) { + goto error; + } + + card->xferred += CARD_PAGE_SIZE; + + card->addr += CARD_PAGE_SIZE; + (u8 *)card->buffer += CARD_PAGE_SIZE; + if (--card->repeat <= 0) { + goto error; + } + + result = __CARDWritePage(chan, BlockWriteCallback); + if (result < 0) { + goto error; + } + return; + +error: + if (card->apiCallback == 0) { + __CARDPutControlBlock(card, result); + } + callback = card->xferCallback; + if (callback) { + card->xferCallback = 0; + callback(chan, result); + } +} + +s32 __CARDWrite(s32 chan, u32 addr, s32 length, void *dst, CARDCallback callback) +{ + CARDControl *card; + card = &__CARDBlock[chan]; + if (!card->attached) { + return CARD_RESULT_NOCARD; + } + + card->xferCallback = callback; + card->repeat = (int)(length / CARD_PAGE_SIZE); + card->addr = addr; + card->buffer = dst; + + return __CARDWritePage(chan, BlockWriteCallback); +} diff --git a/src/dolphin/card/CARDRead.c b/src/dolphin/card/CARDRead.c new file mode 100644 index 00000000..4de1d769 --- /dev/null +++ b/src/dolphin/card/CARDRead.c @@ -0,0 +1,149 @@ +#include +#include +#include +#include + +#include + +s32 __CARDSeek(CARDFileInfo *fileInfo, s32 length, s32 offset, CARDControl **pcard) +{ + CARDControl *card; + CARDDir *dir; + CARDDir *ent; + s32 result; + u16 *fat; + + result = __CARDGetControlBlock(fileInfo->chan, &card); + if (result < 0) { + return result; + } + + if (!CARDIsValidBlockNo(card, fileInfo->iBlock) || card->cBlock * card->sectorSize <= fileInfo->offset) { + return __CARDPutControlBlock(card, CARD_RESULT_FATAL_ERROR); + } + + dir = __CARDGetDirBlock(card); + ent = &dir[fileInfo->fileNo]; + if (ent->length * card->sectorSize <= offset || ent->length * card->sectorSize < offset + length) { + return __CARDPutControlBlock(card, CARD_RESULT_LIMIT); + } + + card->fileInfo = fileInfo; + fileInfo->length = length; + if (offset < fileInfo->offset) { + fileInfo->offset = 0; + fileInfo->iBlock = ent->startBlock; + if (!CARDIsValidBlockNo(card, fileInfo->iBlock)) { + return __CARDPutControlBlock(card, CARD_RESULT_BROKEN); + } + } + fat = __CARDGetFatBlock(card); + while (fileInfo->offset < TRUNC(offset, card->sectorSize)) { + fileInfo->offset += card->sectorSize; + fileInfo->iBlock = fat[fileInfo->iBlock]; + if (!CARDIsValidBlockNo(card, fileInfo->iBlock)) { + return __CARDPutControlBlock(card, CARD_RESULT_BROKEN); + } + } + + fileInfo->offset = offset; + + *pcard = card; + return CARD_RESULT_READY; +} + +static void ReadCallback(s32 chan, s32 result) +{ + CARDControl *card; + CARDCallback callback; + u16 *fat; + CARDFileInfo *fileInfo; + s32 length; + + card = &__CARDBlock[chan]; + if (result < 0) { + goto error; + } + + fileInfo = card->fileInfo; + if (fileInfo->length < 0) { + result = CARD_RESULT_CANCELED; + goto error; + } + + length = (s32)TRUNC(fileInfo->offset + card->sectorSize, card->sectorSize) - fileInfo->offset; + fileInfo->length -= length; + if (fileInfo->length <= 0) { + goto error; + } + + fat = __CARDGetFatBlock(card); + fileInfo->offset += length; + fileInfo->iBlock = fat[fileInfo->iBlock]; + if (!CARDIsValidBlockNo(card, fileInfo->iBlock)) { + result = CARD_RESULT_BROKEN; + goto error; + } + + result = __CARDRead(chan, card->sectorSize * (u32)fileInfo->iBlock, (fileInfo->length < card->sectorSize) ? fileInfo->length : card->sectorSize, + card->buffer, ReadCallback); + if (result < 0) { + goto error; + } + + return; + +error: + callback = card->apiCallback; + card->apiCallback = 0; + __CARDPutControlBlock(card, result); + callback(chan, result); +} + +s32 CARDReadAsync(CARDFileInfo *fileInfo, void *buf, s32 length, s32 offset, CARDCallback callback) +{ + CARDControl *card; + s32 result; + CARDDir *dir; + CARDDir *ent; + + if (OFFSET(offset, CARD_SEG_SIZE) != 0 || OFFSET(length, CARD_SEG_SIZE) != 0) { + return CARD_RESULT_FATAL_ERROR; + } + result = __CARDSeek(fileInfo, length, offset, &card); + if (result < 0) { + return result; + } + + dir = __CARDGetDirBlock(card); + ent = &dir[fileInfo->fileNo]; + result = __CARDAccess(card, ent); + if (result == CARD_RESULT_NOPERM) { + result = __CARDIsPublic(ent); + } + + if (result < 0) { + return __CARDPutControlBlock(card, result); + } + + DCInvalidateRange(buf, (u32)length); + card->apiCallback = callback ? callback : __CARDDefaultApiCallback; + + offset = (s32)OFFSET(fileInfo->offset, card->sectorSize); + length = (length < card->sectorSize - offset) ? length : card->sectorSize - offset; + result = __CARDRead(fileInfo->chan, card->sectorSize * (u32)fileInfo->iBlock + offset, length, buf, ReadCallback); + if (result < 0) { + __CARDPutControlBlock(card, result); + } + return result; +} + +s32 CARDRead(CARDFileInfo *fileInfo, void *buf, s32 length, s32 offset) +{ + s32 result = CARDReadAsync(fileInfo, buf, length, offset, __CARDSyncCallback); + if (result < 0) { + return result; + } + + return __CARDSync(fileInfo->chan); +} diff --git a/src/dolphin/card/CARDRename.c b/src/dolphin/card/CARDRename.c new file mode 100644 index 00000000..83d1c8a5 --- /dev/null +++ b/src/dolphin/card/CARDRename.c @@ -0,0 +1,70 @@ +#include +#include +#include +#include + +#include + +s32 CARDRenameAsync(s32 chan, const char* old, const char* new, CARDCallback callback) { + CARDControl* card; + CARDDir* dir; + CARDDir* ent; + s32 result; + int fileNo; + int newNo; + int oldNo; + + if (*old == 0xff || *new == 0xff || *old == 0x00 || *new == 0x00) { + return CARD_RESULT_FATAL_ERROR; + } + if (CARD_FILENAME_MAX < (u32)strlen(old) || CARD_FILENAME_MAX < (u32)strlen(new)) { + return CARD_RESULT_NAMETOOLONG; + } + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + + newNo = oldNo = -1; + dir = __CARDGetDirBlock(card); + for (fileNo = 0; fileNo < CARD_MAX_FILE; fileNo++) { + ent = &dir[fileNo]; + if (ent->gameName[0] == 0xff) { + continue; + } + + if (memcmp(ent->gameName, card->diskID->gameName, sizeof(ent->gameName)) != 0 || + memcmp(ent->company, card->diskID->company, sizeof(ent->company)) != 0) { + continue; + } + + if (__CARDCompareFileName(ent, old)) { + oldNo = fileNo; + } + if (__CARDCompareFileName(ent, new)) { + newNo = fileNo; + } + } + + if (oldNo == -1) { + return __CARDPutControlBlock(card, CARD_RESULT_NOFILE); + } + if (newNo != -1) { + return __CARDPutControlBlock(card, CARD_RESULT_EXIST); + } + + ent = &dir[oldNo]; + result = __CARDAccess(card, ent); + if (result < 0) { + return __CARDPutControlBlock(card, result); + } + + strncpy((char*)ent->fileName, new, CARD_FILENAME_MAX); + + ent->time = (u32)OSTicksToSeconds(OSGetTime()); + result = __CARDUpdateDir(chan, callback); + if (result < 0) { + __CARDPutControlBlock(card, result); + } + return result; +} diff --git a/src/dolphin/card/CARDStat.c b/src/dolphin/card/CARDStat.c new file mode 100644 index 00000000..e4fbc265 --- /dev/null +++ b/src/dolphin/card/CARDStat.c @@ -0,0 +1,158 @@ +#include +#include +#include +#include + +#include "string.h" + +#include + +static void UpdateIconOffsets(CARDDir *ent, CARDStat *stat) +{ + u32 offset; + BOOL iconTlut; + int i; + + offset = ent->iconAddr; + if (offset == 0xffffffff) { + stat->bannerFormat = 0; + stat->iconFormat = 0; + stat->iconSpeed = 0; + offset = 0; + } + + iconTlut = FALSE; + switch (CARDGetBannerFormat(ent)) { + case CARD_STAT_BANNER_C8: + stat->offsetBanner = offset; + offset += CARD_BANNER_WIDTH * CARD_BANNER_HEIGHT; + stat->offsetBannerTlut = offset; + offset += 2 * 256; + break; + case CARD_STAT_BANNER_RGB5A3: + stat->offsetBanner = offset; + offset += 2 * CARD_BANNER_WIDTH * CARD_BANNER_HEIGHT; + stat->offsetBannerTlut = 0xffffffff; + break; + default: + stat->offsetBanner = 0xffffffff; + stat->offsetBannerTlut = 0xffffffff; + break; + } + for (i = 0; i < CARD_ICON_MAX; ++i) { + switch (CARDGetIconFormat(ent, i)) { + case CARD_STAT_ICON_C8: + stat->offsetIcon[i] = offset; + offset += CARD_ICON_WIDTH * CARD_ICON_HEIGHT; + iconTlut = TRUE; + break; + case CARD_STAT_ICON_RGB5A3: + stat->offsetIcon[i] = offset; + offset += 2 * CARD_ICON_WIDTH * CARD_ICON_HEIGHT; + break; + default: + stat->offsetIcon[i] = 0xffffffff; + break; + } + } + if (iconTlut) { + stat->offsetIconTlut = offset; + offset += 2 * 256; + } + else { + stat->offsetIconTlut = 0xffffffff; + } + stat->offsetData = offset; +} + +s32 CARDGetStatus(s32 chan, s32 fileNo, CARDStat *stat) +{ + CARDControl *card; + CARDDir *dir; + CARDDir *ent; + s32 result; + + if (fileNo < 0 || CARD_MAX_FILE <= fileNo) { + return CARD_RESULT_FATAL_ERROR; + } + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + + dir = __CARDGetDirBlock(card); + ent = &dir[fileNo]; + result = __CARDAccess(card, ent); + if (result == CARD_RESULT_NOPERM) { + result = __CARDIsPublic(ent); + } + + if (result >= 0) { + memcpy(stat->gameName, ent->gameName, sizeof(stat->gameName)); + memcpy(stat->company, ent->company, sizeof(stat->company)); + stat->length = (u32)ent->length * card->sectorSize; + memcpy(stat->fileName, ent->fileName, CARD_FILENAME_MAX); + stat->time = ent->time; + + stat->bannerFormat = ent->bannerFormat; + stat->iconAddr = ent->iconAddr; + stat->iconFormat = ent->iconFormat; + stat->iconSpeed = ent->iconSpeed; + stat->commentAddr = ent->commentAddr; + + UpdateIconOffsets(ent, stat); + } + return __CARDPutControlBlock(card, result); +} + +s32 CARDSetStatusAsync(s32 chan, s32 fileNo, CARDStat *stat, CARDCallback callback) +{ + CARDControl *card; + CARDDir *dir; + CARDDir *ent; + s32 result; + + if (fileNo < 0 || CARD_MAX_FILE <= fileNo || (stat->iconAddr != 0xffffffff && CARD_READ_SIZE <= stat->iconAddr) + || (stat->commentAddr != 0xffffffff && CARD_SYSTEM_BLOCK_SIZE - CARD_COMMENT_SIZE < stat->commentAddr % CARD_SYSTEM_BLOCK_SIZE)) { + return CARD_RESULT_FATAL_ERROR; + } + result = __CARDGetControlBlock(chan, &card); + if (result < 0) { + return result; + } + + dir = __CARDGetDirBlock(card); + ent = &dir[fileNo]; + result = __CARDAccess(card, ent); + if (result < 0) { + return __CARDPutControlBlock(card, result); + } + + ent->bannerFormat = stat->bannerFormat; + ent->iconAddr = stat->iconAddr; + ent->iconFormat = stat->iconFormat; + ent->iconSpeed = stat->iconSpeed; + ent->commentAddr = stat->commentAddr; + UpdateIconOffsets(ent, stat); + + if (ent->iconAddr == 0xffffffff) { + CARDSetIconSpeed(ent, 0, CARD_STAT_SPEED_FAST); + } + + ent->time = (u32)OSTicksToSeconds(OSGetTime()); + result = __CARDUpdateDir(chan, callback); + if (result < 0) { + __CARDPutControlBlock(card, result); + } + return result; +} + +s32 CARDSetStatus(s32 chan, s32 fileNo, CARDStat *stat) +{ + s32 result = CARDSetStatusAsync(chan, fileNo, stat, __CARDSyncCallback); + if (result < 0) { + return result; + } + + return __CARDSync(chan); +} diff --git a/src/dolphin/card/CARDUnlock.c b/src/dolphin/card/CARDUnlock.c new file mode 100644 index 00000000..55989b97 --- /dev/null +++ b/src/dolphin/card/CARDUnlock.c @@ -0,0 +1,406 @@ +#include +#include +#include +#include +#include + +#include "string.h" + +#include + +static void InitCallback(void *task); +static void DoneCallback(void *task); + +static u8 CardData[] ATTRIBUTE_ALIGN(32) = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x02, 0xFF, 0x00, 0x21, 0x13, 0x06, 0x12, 0x03, 0x12, 0x04, 0x13, 0x05, 0x00, + 0x92, 0x00, 0xFF, 0x00, 0x88, 0xFF, 0xFF, 0x00, 0x89, 0xFF, 0xFF, 0x00, 0x8A, 0xFF, 0xFF, 0x00, 0x8B, 0xFF, 0xFF, 0x8F, 0x00, 0x02, 0xBF, 0x00, + 0x88, 0x16, 0xFC, 0xDC, 0xD1, 0x16, 0xFD, 0x00, 0x00, 0x16, 0xFB, 0x00, 0x01, 0x02, 0xBF, 0x00, 0x8E, 0x25, 0xFF, 0x03, 0x80, 0xFF, 0x00, 0x02, + 0x94, 0x00, 0x27, 0x02, 0xBF, 0x00, 0x8E, 0x1F, 0xDF, 0x24, 0xFF, 0x02, 0x40, 0x0F, 0xFF, 0x00, 0x98, 0x04, 0x00, 0x00, 0x9A, 0x00, 0x10, 0x00, + 0x99, 0x00, 0x00, 0x8E, 0x00, 0x02, 0xBF, 0x00, 0x94, 0x02, 0xBF, 0x86, 0x44, 0x02, 0xBF, 0x00, 0x88, 0x16, 0xFC, 0xDC, 0xD1, 0x16, 0xFD, 0x00, + 0x03, 0x16, 0xFB, 0x00, 0x01, 0x8F, 0x00, 0x02, 0xBF, 0x00, 0x8E, 0x03, 0x80, 0xCD, 0xD1, 0x02, 0x94, 0x00, 0x48, 0x27, 0xFF, 0x03, 0x80, 0x00, + 0x01, 0x02, 0x95, 0x00, 0x5A, 0x03, 0x80, 0x00, 0x02, 0x02, 0x95, 0x80, 0x00, 0x02, 0x9F, 0x00, 0x48, 0x00, 0x21, 0x8E, 0x00, 0x02, 0xBF, 0x00, + 0x8E, 0x25, 0xFF, 0x02, 0xBF, 0x00, 0x8E, 0x25, 0xFF, 0x02, 0xBF, 0x00, 0x8E, 0x25, 0xFF, 0x02, 0xBF, 0x00, 0x8E, 0x00, 0xC5, 0xFF, 0xFF, 0x03, + 0x40, 0x0F, 0xFF, 0x1C, 0x9F, 0x02, 0xBF, 0x00, 0x8E, 0x00, 0xC7, 0xFF, 0xFF, 0x02, 0xBF, 0x00, 0x8E, 0x00, 0xC6, 0xFF, 0xFF, 0x02, 0xBF, 0x00, + 0x8E, 0x00, 0xC0, 0xFF, 0xFF, 0x02, 0xBF, 0x00, 0x8E, 0x20, 0xFF, 0x03, 0x40, 0x0F, 0xFF, 0x1F, 0x5F, 0x02, 0xBF, 0x00, 0x8E, 0x21, 0xFF, 0x02, + 0xBF, 0x00, 0x8E, 0x23, 0xFF, 0x12, 0x05, 0x12, 0x06, 0x02, 0x9F, 0x80, 0xB5, 0x00, 0x21, 0x27, 0xFC, 0x03, 0xC0, 0x80, 0x00, 0x02, 0x9D, 0x00, + 0x88, 0x02, 0xDF, 0x27, 0xFE, 0x03, 0xC0, 0x80, 0x00, 0x02, 0x9C, 0x00, 0x8E, 0x02, 0xDF, 0x2E, 0xCE, 0x2C, 0xCF, 0x00, 0xF8, 0xFF, 0xCD, 0x00, + 0xF9, 0xFF, 0xC9, 0x00, 0xFA, 0xFF, 0xCB, 0x26, 0xC9, 0x02, 0xC0, 0x00, 0x04, 0x02, 0x9D, 0x00, 0x9C, 0x02, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +typedef struct DecodeParameters { + u8 *inputAddr; + u32 inputLength; + u32 aramAddr; + u8 *outputAddr; +} DecodeParameters; + +static unsigned long int next = 1; + +static int CARDRand(void) +{ + next = next * 1103515245 + 12345; + return (int)((unsigned int)(next / 65536) % 32768); +} + +static void CARDSrand(unsigned int seed) +{ + next = seed; +} + +static u32 GetInitVal(void) +{ + u32 tmp; + u32 tick; + + tick = OSGetTick(); + CARDSrand(tick); + tmp = 0x7fec8000; + tmp |= CARDRand(); + tmp &= 0xfffff000; + return tmp; +} + +static u32 exnor_1st(u32 data, u32 rshift) +{ + u32 wk; + u32 w; + u32 i; + + w = data; + for (i = 0; i < rshift; i++) { + wk = ~(w ^ (w >> 7) ^ (w >> 15) ^ (w >> 23)); + w = (w >> 1) | ((wk << 30) & 0x40000000); + } + return w; +} + +static u32 exnor(u32 data, u32 lshift) +{ + u32 wk; + u32 w; + u32 i; + + w = data; + for (i = 0; i < lshift; i++) { + // 1bit Left Shift + wk = ~(w ^ (w << 7) ^ (w << 15) ^ (w << 23)); + w = (w << 1) | ((wk >> 30) & 0x00000002); + // printf("i=%d, w=%8x\n", i, w); + } + return w; +} + +static u32 bitrev(u32 data) +{ + u32 wk; + u32 i; + u32 k = 0; + u32 j = 1; + + wk = 0; + for (i = 0; i < 32; i++) { + if (i > 15) { + if (i == 31) { + wk |= (((data & (0x01 << 31)) >> 31) & 0x01); + } + else { + wk |= ((data & (0x01 << i)) >> j); + j += 2; + } + } + else { + wk |= ((data & (0x01 << i)) << (31 - i - k)); + k++; + } + } + return wk; +} + +#define SEC_AD1(x) ((u8)(((x) >> 29) & 0x03)) +#define SEC_AD2(x) ((u8)(((x) >> 21) & 0xff)) +#define SEC_AD3(x) ((u8)(((x) >> 19) & 0x03)) +#define SEC_BA(x) ((u8)(((x) >> 12) & 0x7f)) + +static s32 ReadArrayUnlock(s32 chan, u32 data, void *rbuf, s32 rlen, s32 mode) +{ + CARDControl *card; + BOOL err; + u8 cmd[5]; + + card = &__CARDBlock[chan]; + if (!EXISelect(chan, 0, 4)) { + return CARD_RESULT_NOCARD; + } + + data &= 0xfffff000; + memset(cmd, 0, 5); + cmd[0] = 0x52; + if (mode == 0) { + cmd[1] = SEC_AD1(data); + cmd[2] = SEC_AD2(data); + cmd[3] = SEC_AD3(data); + cmd[4] = SEC_BA(data); + } + else { + cmd[1] = (u8)((data & 0xff000000) >> 24); + cmd[2] = (u8)((data & 0x00ff0000) >> 16); + } + + err = FALSE; + err |= !EXIImmEx(chan, cmd, 5, 1); + err |= !EXIImmEx(chan, (u8 *)card->workArea + (u32)sizeof(CARDID), card->latency, 1); + err |= !EXIImmEx(chan, rbuf, rlen, 0); + err |= !EXIDeselect(chan); + + return err ? CARD_RESULT_NOCARD : CARD_RESULT_READY; +} + +// Calculate Dummy Read Length, 4-32Bytes +static s32 DummyLen(void) +{ + u32 tick; + u32 wk; + s32 tmp; + u32 max; + + wk = 1; + max = 0; + tick = OSGetTick(); + CARDSrand(tick); + + tmp = CARDRand(); + tmp &= 0x0000001f; + tmp += 1; + while ((tmp < 4) && (max < 10)) { + tick = OSGetTick(); + tmp = (s32)(tick << wk); + wk++; + if (wk > 16) { + wk = 1; + } + CARDSrand((u32)tmp); + tmp = CARDRand(); + tmp &= 0x0000001f; + tmp += 1; + max++; + } + if (tmp < 4) { + tmp = 4; + } + + return tmp; +} + +s32 __CARDUnlock(s32 chan, u8 flashID[12]) +{ + u32 init_val; + u32 data; + + s32 dummy; + s32 rlen; + u32 rshift; + + u8 fsts; + u32 wk, wk1; + u32 Ans1 = 0; + u32 Ans2 = 0; + u32 *dp; + u8 rbuf[64]; + u32 para1A = 0; + u32 para1B = 0; + u32 para2A = 0; + u32 para2B = 0; + + CARDControl *card; + DSPTaskInfo *task; + DecodeParameters *param; + u8 *input; + u8 *output; + + card = &__CARDBlock[chan]; + task = &card->task; + param = (DecodeParameters *)card->workArea; + input = (u8 *)((u8 *)param + sizeof(DecodeParameters)); + input = (u8 *)OSRoundUp32B(input); + output = input + 32; + + fsts = 0; + init_val = GetInitVal(); + + dummy = DummyLen(); + rlen = dummy; + if (ReadArrayUnlock(chan, init_val, rbuf, rlen, 0) < 0) { + return CARD_RESULT_NOCARD; + } + + rshift = (u32)(dummy * 8 + 1); + wk = exnor_1st(init_val, rshift); + wk1 = ~(wk ^ (wk >> 7) ^ (wk >> 15) ^ (wk >> 23)); + card->scramble = (wk | ((wk1 << 31) & 0x80000000)); + card->scramble = bitrev(card->scramble); + dummy = DummyLen(); + rlen = 20 + dummy; + data = 0; + if (ReadArrayUnlock(chan, data, rbuf, rlen, 1) < 0) { + return CARD_RESULT_NOCARD; + } + dp = (u32 *)rbuf; + para1A = *dp++; + para1B = *dp++; + Ans1 = *dp++; + para2A = *dp++; + para2B = *dp++; + para1A = (para1A ^ card->scramble); + rshift = 32; + wk = exnor(card->scramble, rshift); + wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23)); + card->scramble = (wk | ((wk1 >> 31) & 0x00000001)); + para1B = (para1B ^ card->scramble); + rshift = 32; + wk = exnor(card->scramble, rshift); + wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23)); + card->scramble = (wk | ((wk1 >> 31) & 0x00000001)); + Ans1 ^= card->scramble; + rshift = 32; + wk = exnor(card->scramble, rshift); + wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23)); + card->scramble = (wk | ((wk1 >> 31) & 0x00000001)); + para2A = (para2A ^ card->scramble); + rshift = 32; + wk = exnor(card->scramble, rshift); + wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23)); + card->scramble = (wk | ((wk1 >> 31) & 0x00000001)); + para2B = (para2B ^ card->scramble); + rshift = (u32)(dummy * 8); + wk = exnor(card->scramble, rshift); + wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23)); + card->scramble = (wk | ((wk1 >> 31) & 0x00000001)); + rshift = 32 + 1; + wk = exnor(card->scramble, rshift); + wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23)); + card->scramble = (wk | ((wk1 >> 31) & 0x00000001)); + + *(u32 *)&input[0] = para2A; + *(u32 *)&input[4] = para2B; + + param->inputAddr = input; + param->inputLength = 8; + param->outputAddr = output; + param->aramAddr = 0; + + DCFlushRange(input, 8); + DCInvalidateRange(output, 4); + DCFlushRange(param, sizeof(DecodeParameters)); + + task->priority = 255; + task->iram_mmem_addr = (u16 *)OSPhysicalToCached(CardData); + task->iram_length = 0x160; + task->iram_addr = 0; + task->dsp_init_vector = 0x10; + task->init_cb = InitCallback; + task->res_cb = NULL; + task->done_cb = DoneCallback; + task->req_cb = NULL; + DSPAddTask(task); + + dp = (u32 *)flashID; + *dp++ = para1A; + *dp++ = para1B; + *dp = Ans1; + + return CARD_RESULT_READY; +} + +static void InitCallback(void *_task) +{ + s32 chan; + CARDControl *card; + DSPTaskInfo *task; + DecodeParameters *param; + + task = _task; + for (chan = 0; chan < 2; ++chan) { + card = &__CARDBlock[chan]; + if ((DSPTaskInfo *)&card->task == task) { + break; + } + } + param = (DecodeParameters *)card->workArea; + + DSPSendMailToDSP(0xff000000); + while (DSPCheckMailToDSP()) + ; + + DSPSendMailToDSP((u32)param); + while (DSPCheckMailToDSP()) + ; +} + +static void DoneCallback(void *_task) +{ + u8 rbuf[64]; + u32 data; + s32 dummy; + s32 rlen; + u32 rshift; + + u8 unk; + u32 wk, wk1; + u32 Ans2; + + s32 chan; + CARDControl *card; + s32 result; + DSPTaskInfo *task; + DecodeParameters *param; + + u8 *input; + u8 *output; + task = _task; + for (chan = 0; chan < 2; ++chan) { + card = &__CARDBlock[chan]; + if ((DSPTaskInfo *)&card->task == task) { + break; + } + } + + param = (DecodeParameters *)card->workArea; + input = (u8 *)((u8 *)param + sizeof(DecodeParameters)); + input = (u8 *)OSRoundUp32B(input); + output = input + 32; + + Ans2 = *(u32 *)output; + dummy = DummyLen(); + rlen = dummy; + data = ((Ans2 ^ card->scramble) & 0xffff0000); + if (ReadArrayUnlock(chan, data, rbuf, rlen, 1) < 0) { + EXIUnlock(chan); + __CARDMountCallback(chan, CARD_RESULT_NOCARD); + return; + } + + rshift = (u32)((dummy + 4 + card->latency) * 8 + 1); + wk = exnor(card->scramble, rshift); + wk1 = ~(wk ^ (wk << 7) ^ (wk << 15) ^ (wk << 23)); + card->scramble = (wk | ((wk1 >> 31) & 0x00000001)); + + dummy = DummyLen(); + rlen = dummy; + data = (((Ans2 << 16) ^ card->scramble) & 0xffff0000); + if (ReadArrayUnlock(chan, data, rbuf, rlen, 1) < 0) { + EXIUnlock(chan); + __CARDMountCallback(chan, CARD_RESULT_NOCARD); + return; + } + result = __CARDReadStatus(chan, &unk); + if (!EXIProbe(chan)) { + EXIUnlock(chan); + __CARDMountCallback(chan, CARD_RESULT_NOCARD); + return; + } + if (result == CARD_RESULT_READY && !(unk & 0x40)) { + EXIUnlock(chan); + result = CARD_RESULT_IOERROR; + } + __CARDMountCallback(chan, result); +} diff --git a/src/dolphin/card/CARDWrite.c b/src/dolphin/card/CARDWrite.c new file mode 100644 index 00000000..ca8aacfb --- /dev/null +++ b/src/dolphin/card/CARDWrite.c @@ -0,0 +1,128 @@ +#include +#include +#include +#include + +#include + +static void EraseCallback(s32 chan, s32 result); + +static void WriteCallback(s32 chan, s32 result) +{ + CARDControl *card; + CARDCallback callback; + u16 *fat; + CARDDir *dir; + CARDDir *ent; + CARDFileInfo *fileInfo; + + card = &__CARDBlock[chan]; + if (result < 0) { + goto error; + } + + fileInfo = card->fileInfo; + if (fileInfo->length < 0) { + result = CARD_RESULT_CANCELED; + goto error; + } + + fileInfo->length -= card->sectorSize; + if (fileInfo->length <= 0) { + dir = __CARDGetDirBlock(card); + ent = &dir[fileInfo->fileNo]; + ent->time = (u32)OSTicksToSeconds(OSGetTime()); + callback = card->apiCallback; + card->apiCallback = 0; + result = __CARDUpdateDir(chan, callback); + } + else { + fat = __CARDGetFatBlock(card); + fileInfo->offset += card->sectorSize; + fileInfo->iBlock = fat[fileInfo->iBlock]; + if (!CARDIsValidBlockNo(card, fileInfo->iBlock)) { + result = CARD_RESULT_BROKEN; + goto error; + } + result = __CARDEraseSector(chan, card->sectorSize * (u32)fileInfo->iBlock, EraseCallback); + } + + if (result < 0) { + goto error; + } + return; + +error: + callback = card->apiCallback; + card->apiCallback = 0; + __CARDPutControlBlock(card, result); + callback(chan, result); +} + +static void EraseCallback(s32 chan, s32 result) +{ + CARDControl *card; + CARDCallback callback; + CARDFileInfo *fileInfo; + + card = &__CARDBlock[chan]; + if (result < 0) { + goto error; + } + + fileInfo = card->fileInfo; + result = __CARDWrite(chan, card->sectorSize * (u32)fileInfo->iBlock, card->sectorSize, card->buffer, WriteCallback); + if (result < 0) { + goto error; + } + return; + +error: + callback = card->apiCallback; + card->apiCallback = 0; + __CARDPutControlBlock(card, result); + callback(chan, result); +} + +s32 CARDWriteAsync(CARDFileInfo *fileInfo, const void *buf, s32 length, s32 offset, CARDCallback callback) +{ + CARDControl *card; + s32 result; + CARDDir *dir; + CARDDir *ent; + + result = __CARDSeek(fileInfo, length, offset, &card); + if (result < 0) { + return result; + } + + if (OFFSET(offset, card->sectorSize) != 0 || OFFSET(length, card->sectorSize) != 0) { + return __CARDPutControlBlock(card, CARD_RESULT_FATAL_ERROR); + } + + dir = __CARDGetDirBlock(card); + ent = &dir[fileInfo->fileNo]; + result = __CARDAccess(card, ent); + if (result < 0) { + return __CARDPutControlBlock(card, result); + } + + DCStoreRange((void *)buf, (u32)length); + card->apiCallback = callback ? callback : __CARDDefaultApiCallback; + card->buffer = (void *)buf; + result = __CARDEraseSector(fileInfo->chan, card->sectorSize * (u32)fileInfo->iBlock, EraseCallback); + if (result < 0) { + __CARDPutControlBlock(card, result); + } + return result; +} + +s32 CARDWrite(CARDFileInfo *fileInfo, const void *buf, s32 length, s32 offset) +{ + s32 result = CARDWriteAsync(fileInfo, buf, length, offset, __CARDSyncCallback); + if (result < 0) { + return result; + } + + return __CARDSync(fileInfo->chan); +} From 38fc86d571ccf9b93b64312b2595e8ca35acd5b4 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 12 Nov 2024 03:51:15 +0100 Subject: [PATCH 122/311] dolphin header improvements --- include/dolphin/{demotypes.h => demoPriv.h} | 4 ++-- src/dolphin/demo/DEMOInit.c | 2 +- src/dolphin/demo/DEMOPuts.c | 2 +- src/dolphin/demo/DEMOStats.c | 2 +- src/dolphin/exi/EXIBios.c | 2 ++ 5 files changed, 7 insertions(+), 5 deletions(-) rename include/dolphin/{demotypes.h => demoPriv.h} (79%) diff --git a/include/dolphin/demotypes.h b/include/dolphin/demoPriv.h similarity index 79% rename from include/dolphin/demotypes.h rename to include/dolphin/demoPriv.h index 00f29a3c..bce6d3bc 100644 --- a/include/dolphin/demotypes.h +++ b/include/dolphin/demoPriv.h @@ -1,5 +1,5 @@ -#ifndef _DOLPHIN_DEMOTYPES -#define _DOLPHIN_DEMOTYPES +#ifndef _DOLPHIN_DEMOPRIV +#define _DOLPHIN_DEMOPRIV #include diff --git a/src/dolphin/demo/DEMOInit.c b/src/dolphin/demo/DEMOInit.c index 0ebcc3c0..86df9bd1 100644 --- a/src/dolphin/demo/DEMOInit.c +++ b/src/dolphin/demo/DEMOInit.c @@ -5,7 +5,7 @@ #include #include "game/init.h" -#include +#include extern unsigned char DemoStatEnable; // size: 0x1, address: 0x0 diff --git a/src/dolphin/demo/DEMOPuts.c b/src/dolphin/demo/DEMOPuts.c index 5a582ee4..3b7e84bc 100644 --- a/src/dolphin/demo/DEMOPuts.c +++ b/src/dolphin/demo/DEMOPuts.c @@ -5,7 +5,7 @@ #include #include -#include +#include extern unsigned long DEMOFontBitmap[]; // size: 0x0, address: 0x0 diff --git a/src/dolphin/demo/DEMOStats.c b/src/dolphin/demo/DEMOStats.c index d98b436c..89a6595f 100644 --- a/src/dolphin/demo/DEMOStats.c +++ b/src/dolphin/demo/DEMOStats.c @@ -4,7 +4,7 @@ #include #include -#include +#include unsigned char DemoStatEnable = 0; static DemoStatData *DemoStat; diff --git a/src/dolphin/exi/EXIBios.c b/src/dolphin/exi/EXIBios.c index b8843fa2..4b9a1d78 100644 --- a/src/dolphin/exi/EXIBios.c +++ b/src/dolphin/exi/EXIBios.c @@ -21,6 +21,8 @@ #define CPR_CS(x) ((1u << (x)) << 7) #define CPR_CLK(x) ((x) << 4) +static BOOL __EXIProbe(s32 chan); + typedef struct EXIControl { EXICallback exiCallback; EXICallback tcCallback; From 3c7ab99b35123515f10a1f4c9dbabfded6e97e2f Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 12 Nov 2024 04:27:58 +0100 Subject: [PATCH 123/311] Set dolphin/card to matching Imported thp, THPDec.c is matching --- config/GMPE01_00/symbols.txt | 4 +- configure.py | 49 +- src/thp/THPAudio.c | 162 +++ src/thp/THPDec.c | 2280 ++++++++++++++++++++++++++++++++++ 4 files changed, 2472 insertions(+), 23 deletions(-) create mode 100644 src/thp/THPAudio.c create mode 100644 src/thp/THPDec.c diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 9bcdbabc..8b2b8d1b 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -5816,8 +5816,8 @@ Vachuff = .sbss:0x801D46E0; // type:object size:0x4 scope:local align:32 data:4b __THPHuffmanBits = .sbss:0x801D46E4; // type:object size:0x4 scope:local data:4byte __THPHuffmanSizeTab = .sbss:0x801D46E8; // type:object size:0x4 scope:local data:4byte __THPHuffmanCodeTab = .sbss:0x801D46EC; // type:object size:0x4 scope:local data:4byte -Gbase = .sbss:0x801D4700; // type:object size:0x20 align:32 data:4byte -Gwid = .sbss:0x801D4720; // type:object size:0x20 align:32 data:4byte +Gbase = .sbss:0x801D4700; // type:object size:0x20 scope:local align:32 data:4byte +Gwid = .sbss:0x801D4720; // type:object size:0x20 scope:local align:32 data:4byte Gq = .sbss:0x801D4740; // type:object size:0x4 scope:local align:32 data:4byte __THPOldGQR5 = .sbss:0x801D4744; // type:object size:0x4 scope:local data:4byte __THPOldGQR6 = .sbss:0x801D4748; // type:object size:0x4 scope:local data:4byte diff --git a/configure.py b/configure.py index 0048e928..a27cc629 100644 --- a/configure.py +++ b/configure.py @@ -216,6 +216,10 @@ cflags_dolphin = [ "-fp_contract off", ] +cflags_thp = [ + *cflags_base, +] + # Metrowerks library flags cflags_msl = [ *cflags_base, @@ -574,21 +578,21 @@ config.libs = [ DolphinLib( "card", [ - Object(NonMatching, "dolphin/card/CARDBios.c"), - Object(NonMatching, "dolphin/card/CARDUnlock.c"), - Object(NonMatching, "dolphin/card/CARDRdwr.c"), - Object(NonMatching, "dolphin/card/CARDBlock.c"), - Object(NonMatching, "dolphin/card/CARDDir.c"), - Object(NonMatching, "dolphin/card/CARDCheck.c"), - Object(NonMatching, "dolphin/card/CARDMount.c"), - Object(NonMatching, "dolphin/card/CARDFormat.c"), - Object(NonMatching, "dolphin/card/CARDOpen.c"), - Object(NonMatching, "dolphin/card/CARDCreate.c"), - Object(NonMatching, "dolphin/card/CARDRead.c"), - Object(NonMatching, "dolphin/card/CARDWrite.c"), - Object(NonMatching, "dolphin/card/CARDDelete.c"), - Object(NonMatching, "dolphin/card/CARDStat.c"), - Object(NonMatching, "dolphin/card/CARDNet.c"), + Object(Matching, "dolphin/card/CARDBios.c"), + Object(Matching, "dolphin/card/CARDUnlock.c"), + Object(Matching, "dolphin/card/CARDRdwr.c"), + Object(Matching, "dolphin/card/CARDBlock.c"), + Object(Matching, "dolphin/card/CARDDir.c"), + Object(Matching, "dolphin/card/CARDCheck.c"), + Object(Matching, "dolphin/card/CARDMount.c"), + Object(Matching, "dolphin/card/CARDFormat.c"), + Object(Matching, "dolphin/card/CARDOpen.c"), + Object(Matching, "dolphin/card/CARDCreate.c"), + Object(Matching, "dolphin/card/CARDRead.c"), + Object(Matching, "dolphin/card/CARDWrite.c"), + Object(Matching, "dolphin/card/CARDDelete.c"), + Object(Matching, "dolphin/card/CARDStat.c"), + Object(Matching, "dolphin/card/CARDNet.c"), ], ), DolphinLib( @@ -605,13 +609,16 @@ config.libs = [ Object(Matching, "dolphin/si/SISamplingRate.c"), ], ), - DolphinLib( - "thp", - [ - Object(NonMatching, "dolphin/thp/THPDec.c"), - Object(NonMatching, "dolphin/thp/THPAudio.c"), + { + "lib": "thp", + "mw_version": "GC/1.2.5", + "cflags": cflags_thp, + "host": False, + "objects": [ + Object(Matching, "thp/THPDec.c"), + Object(NonMatching, "thp/THPAudio.c"), ], - ), + }, { "lib": "Runtime.PPCEABI.H", "mw_version": config.linker_version, diff --git a/src/thp/THPAudio.c b/src/thp/THPAudio.c new file mode 100644 index 00000000..11a29fe4 --- /dev/null +++ b/src/thp/THPAudio.c @@ -0,0 +1,162 @@ +#include + +u32 THPAudioDecode(s16 *audioBuffer, u8 *audioFrame, s32 flag) +{ + // THPAudioRecordHeader *header; + // THPAudioDecodeInfo decInfo; + // u8 *left, *right; + // s16 *decLeftPtr, *decRightPtr; + // s16 yn1, yn2; + // s32 i; + // s32 step; + // s32 sample; + // s64 yn; + + // if (audioBuffer == NULL || audioFrame == NULL) { + // return 0; + // } + + // header = (THPAudioRecordHeader *)audioFrame; + // left = audioFrame + sizeof(THPAudioRecordHeader); + // right = left + header->offsetNextChannel; + + // if (flag == 1) { + // decRightPtr = audioBuffer; + // decLeftPtr = audioBuffer + header->sampleSize; + // step = 1; + // } + // else { + // decRightPtr = audioBuffer; + // decLeftPtr = audioBuffer + 1; + // step = 2; + // } + + // if (header->offsetNextChannel == 0) { + // __THPAudioInitialize(&decInfo, left); + + // yn1 = header->lYn1; + // yn2 = header->lYn2; + + // for (i = 0; i < header->sampleSize; i++) { + // sample = __THPAudioGetNewSample(&decInfo); + // yn = header->lCoef[decInfo.predictor][1] * yn2; + // yn += header->lCoef[decInfo.predictor][0] * yn1; + // yn += (sample << decInfo.scale) << 11; + // yn <<= 5; + + // if (sample > 0x8000) { + // yn += 0x10000; + // } + // else if ((sample == 0x8000) && ((yn & 0x10000) != 0)) { + // yn += 0x10000; + // } + + // yn += 0x8000; + + // if (yn > 2147483647LL) { + // yn = 2147483647LL; + // } + + // if (yn < -2147483648LL) { + // yn = -2147483648LL; + // } + + // *decLeftPtr = (s16)(yn >> 16); + // decLeftPtr += step; + // *decRightPtr = (s16)(yn >> 16); + // decRightPtr += step; + // yn2 = yn1; + // yn1 = (s16)(yn >> 16); + // } + // } + // else { + // __THPAudioInitialize(&decInfo, left); + + // yn1 = header->lYn1; + // yn2 = header->lYn2; + + // for (i = 0; i < header->sampleSize; i++) { + // sample = __THPAudioGetNewSample(&decInfo); + // yn = header->lCoef[decInfo.predictor][1] * yn2; + // yn += header->lCoef[decInfo.predictor][0] * yn1; + // yn += (sample << decInfo.scale) << 11; + // yn <<= 5; + // yn += 0x8000; + + // if (yn > 2147483647LL) { + // yn = 2147483647LL; + // } + + // if (yn < -2147483648LL) { + // yn = -2147483648LL; + // } + + // *decLeftPtr = (s16)(yn >> 16); + // decLeftPtr += step; + // yn2 = yn1; + // yn1 = (s16)(yn >> 16); + // } + + // __THPAudioInitialize(&decInfo, right); + + // yn1 = header->rYn1; + // yn2 = header->rYn2; + + // for (i = 0; i < header->sampleSize; i++) { + // sample = __THPAudioGetNewSample(&decInfo); + // yn = header->rCoef[decInfo.predictor][1] * yn2; + // yn += header->rCoef[decInfo.predictor][0] * yn1; + // yn += (sample << decInfo.scale) << 11; + // yn <<= 5; + + // yn += 0x8000; + + // if (yn > 2147483647LL) { + // yn = 2147483647LL; + // } + + // if (yn < -2147483648LL) { + // yn = -2147483648LL; + // } + + // *decRightPtr = (s16)(yn >> 16); + // decRightPtr += step; + // yn2 = yn1; + // yn1 = (s16)(yn >> 16); + // } + // } + + // return header->sampleSize; +} + +static s32 __THPAudioGetNewSample(THPAudioDecodeInfo *info) +{ + s32 sample; + + if (!(info->offsetNibbles & 0x0f)) { + info->predictor = (u8)((*(info->encodeData) & 0x70) >> 4); + info->scale = (u8)((*(info->encodeData) & 0xF)); + info->encodeData++; + info->offsetNibbles += 2; + } + + if (info->offsetNibbles & 0x1) { + sample = (s32)((*(info->encodeData) & 0xF) << 28) >> 28; + info->encodeData++; + } + else { + sample = (s32)((*(info->encodeData) & 0xF0) << 24) >> 28; + } + + info->offsetNibbles++; + return sample; +} + +static void __THPAudioInitialize(THPAudioDecodeInfo *info, u8 *ptr) +{ + info->encodeData = ptr; + info->offsetNibbles = 2; + info->predictor = (u8)((*(info->encodeData) & 0x70) >> 4); + info->scale = (u8)((*(info->encodeData) & 0xF)); + info->encodeData++; +} diff --git a/src/thp/THPDec.c b/src/thp/THPDec.c new file mode 100644 index 00000000..13ff4c8d --- /dev/null +++ b/src/thp/THPDec.c @@ -0,0 +1,2280 @@ +#include +#include + +static THPHuffmanTab *Ydchuff ATTRIBUTE_ALIGN(32); +static THPHuffmanTab *Udchuff ATTRIBUTE_ALIGN(32); +static THPHuffmanTab *Vdchuff ATTRIBUTE_ALIGN(32); +static THPHuffmanTab *Yachuff ATTRIBUTE_ALIGN(32); +static THPHuffmanTab *Uachuff ATTRIBUTE_ALIGN(32); +static THPHuffmanTab *Vachuff ATTRIBUTE_ALIGN(32); +static f32 __THPIDCTWorkspace[64] ATTRIBUTE_ALIGN(32); +static u8 *__THPHuffmanBits; +static u8 *__THPHuffmanSizeTab; +static u16 *__THPHuffmanCodeTab; +static THPSample *Gbase ATTRIBUTE_ALIGN(32); +static u32 Gwid ATTRIBUTE_ALIGN(32); +static f32 *Gq ATTRIBUTE_ALIGN(32); +static u8 *__THPLCWork512[3]; +static u8 *__THPLCWork640[3]; +static u32 __THPOldGQR5; +static u32 __THPOldGQR6; +static u8 *__THPWorkArea; +static THPCoeff *__THPMCUBuffer[6]; +static THPFileInfo *__THPInfo; +static BOOL __THPInitFlag = FALSE; + +#define THPROUNDUP(a, b) ((((s32)(a)) + ((s32)(b)-1L)) / ((s32)(b))) + +s32 THPVideoDecode(void *file, void *tileY, void *tileU, void *tileV, void *work) +{ + u8 all_done, status; + s32 errorCode; + + if (!file) { + goto _err_no_input; + } + + if (tileY == NULL || tileU == NULL || tileV == NULL) { + goto _err_no_output; + } + + if (!work) { + goto _err_no_work; + } + + if (!(PPCMfhid2() & 0x10000000)) { + goto _err_lc_not_enabled; + } + + if (__THPInitFlag == FALSE) { + goto _err_not_initialized; + } + + __THPWorkArea = (u8 *)work; + __THPInfo = (THPFileInfo *)OSRoundUp32B(__THPWorkArea); + __THPWorkArea = (u8 *)OSRoundUp32B(__THPWorkArea) + sizeof(THPFileInfo); + DCZeroRange(__THPInfo, sizeof(THPFileInfo)); + __THPInfo->cnt = 33; + __THPInfo->decompressedY = 0; + __THPInfo->c = (u8 *)file; + all_done = FALSE; + + for (;;) { + if ((*(__THPInfo->c)++) != 255) { + goto _err_bad_syntax; + } + + while (*__THPInfo->c == 255) { + ((__THPInfo->c)++); + } + + status = (*(__THPInfo->c)++); + + if (status <= 0xD7) { + if (status == 196) { + status = __THPReadHuffmanTableSpecification(); + if (status != 0) { + goto _err_bad_status; + } + } + + else if (status == 192) { + status = __THPReadFrameHeader(); + if (status != 0) { + goto _err_bad_status; + } + } + + else { + goto _err_unsupported_marker; + } + } + + else if (0xD8 <= status && status <= 0xDF) { + if (status == 221) { + __THPRestartDefinition(); + } + + else if (status == 219) { + status = __THPReadQuantizationTable(); + if (status != 0) { + goto _err_bad_status; + } + } + + else if (status == 218) { + status = __THPReadScaneHeader(); + if (status != 0) { + goto _err_bad_status; + } + + all_done = TRUE; + } + else if (status == 216) { + // empty but required for match + } + else { + goto _err_unsupported_marker; + } + } + + else if (0xE0 <= status) { + if ((224 <= status && status <= 239) || status == 254) { + __THPInfo->c += (__THPInfo->c)[0] << 8 | (__THPInfo->c)[1]; + } + else { + goto _err_unsupported_marker; + } + } + + if (all_done) { + break; + } + } + + __THPSetupBuffers(); + __THPDecompressYUV(tileY, tileU, tileV); + return 0; + +_err_no_input: + errorCode = 25; + goto _err_exit; + +_err_no_output: + errorCode = 27; + goto _err_exit; + +_err_no_work: + errorCode = 26; + goto _err_exit; + +_err_unsupported_marker: + errorCode = 11; + goto _err_exit; + +_err_bad_resource: + errorCode = 1; + goto _err_exit; + +_err_no_mem: + errorCode = 6; + goto _err_exit; + +_err_bad_syntax: + errorCode = 3; + goto _err_exit; + +_err_bad_status: + errorCode = status; + goto _err_exit; + +_err_lc_not_enabled: + errorCode = 28; + goto _err_exit; + +_err_not_initialized: + errorCode = 29; + goto _err_exit; + +_err_exit: + return errorCode; +} + +static void __THPSetupBuffers(void) +{ + u8 i; + THPCoeff *buffer; + + buffer = (THPCoeff *)OSRoundUp32B(__THPWorkArea); + + for (i = 0; i < 6; i++) { + __THPMCUBuffer[i] = &buffer[i * 64]; + } +} + +static u8 __THPReadFrameHeader(void) +{ + u8 i, utmp8; + + __THPInfo->c += 2; + + utmp8 = (*(__THPInfo->c)++); + + if (utmp8 != 8) { + return 10; + } + + __THPInfo->yPixelSize = (u16)((__THPInfo->c)[0] << 8 | (__THPInfo->c)[1]); + __THPInfo->c += 2; + __THPInfo->xPixelSize = (u16)((__THPInfo->c)[0] << 8 | (__THPInfo->c)[1]); + __THPInfo->c += 2; + + utmp8 = (*(__THPInfo->c)++); + if (utmp8 != 3) { + return 12; + } + + for (i = 0; i < 3; i++) { + utmp8 = (*(__THPInfo->c)++); + utmp8 = (*(__THPInfo->c)++); + if ((i == 0 && utmp8 != 0x22) || (i > 0 && utmp8 != 0x11)) { + return 19; + } + + __THPInfo->components[i].quantizationTableSelector = (*(__THPInfo->c)++); + } + + return 0; +} + +static u8 __THPReadScaneHeader(void) +{ + u8 i, utmp8; + __THPInfo->c += 2; + + utmp8 = (*(__THPInfo->c)++); + + if (utmp8 != 3) { + return 12; + } + + for (i = 0; i < 3; i++) { + utmp8 = (*(__THPInfo->c)++); + + utmp8 = (*(__THPInfo->c)++); + __THPInfo->components[i].DCTableSelector = (u8)(utmp8 >> 4); + __THPInfo->components[i].ACTableSelector = (u8)(utmp8 & 15); + + if ((__THPInfo->validHuffmanTabs & (1 << ((utmp8 >> 4)))) == 0) { + return 15; + } + + if ((__THPInfo->validHuffmanTabs & (1 << ((utmp8 & 15) + 1))) == 0) { + return 15; + } + } + + __THPInfo->c += 3; + __THPInfo->MCUsPerRow = (u16)THPROUNDUP(__THPInfo->xPixelSize, 16); + __THPInfo->components[0].predDC = 0; + __THPInfo->components[1].predDC = 0; + __THPInfo->components[2].predDC = 0; + return 0; +} + +static u8 __THPReadQuantizationTable(void) +{ + u16 length, id, i, row, col; + f32 q_temp[64]; + + length = (u16)((__THPInfo->c)[0] << 8 | (__THPInfo->c)[1]); + __THPInfo->c += 2; + length -= 2; + + for (;;) { + id = (*(__THPInfo->c)++); + + for (i = 0; i < 64; i++) { + q_temp[__THPJpegNaturalOrder[i]] = (f32)(*(__THPInfo->c)++); + } + + i = 0; + for (row = 0; row < 8; row++) { + for (col = 0; col < 8; col++) { + __THPInfo->quantTabs[id][i] = (f32)((f64)q_temp[i] * __THPAANScaleFactor[row] * __THPAANScaleFactor[col]); + i++; + } + } + + length -= 65; + if (!length) { + break; + } + } + + return 0; +} + +static u8 __THPReadHuffmanTableSpecification(void) +{ + u8 t_class, id, i, tab_index; + u16 length, num_Vij; + + __THPHuffmanSizeTab = __THPWorkArea; + __THPHuffmanCodeTab = (u16 *)((u32)__THPWorkArea + 256 + 1); + length = (u16)((__THPInfo->c)[0] << 8 | (__THPInfo->c)[1]); + __THPInfo->c += 2; + length -= 2; + + for (;;) { + i = (*(__THPInfo->c)++); + id = (u8)(i & 15); + t_class = (u8)(i >> 4); + __THPHuffmanBits = __THPInfo->c; + tab_index = (u8)((id << 1) + t_class); + num_Vij = 0; + + for (i = 0; i < 16; i++) { + num_Vij += (*(__THPInfo->c)++); + } + + __THPInfo->huffmanTabs[tab_index].Vij = __THPInfo->c; + __THPInfo->c += num_Vij; + __THPHuffGenerateSizeTable(); + __THPHuffGenerateCodeTable(); + __THPHuffGenerateDecoderTables(tab_index); + __THPInfo->validHuffmanTabs |= 1 << tab_index; + length -= 17 + num_Vij; + + if (length == 0) { + break; + } + } + + return 0; +} + +static void __THPHuffGenerateSizeTable(void) +{ + s32 p, l, i; + p = 0; + + for (l = 1; l <= 16; l++) { + i = (s32)__THPHuffmanBits[l - 1]; + while (i--) { + __THPHuffmanSizeTab[p++] = (u8)l; + } + } + + __THPHuffmanSizeTab[p] = 0; +} + +static void __THPHuffGenerateCodeTable(void) +{ + u8 si; + u16 p, code; + + p = 0; + code = 0; + si = __THPHuffmanSizeTab[0]; + + while (__THPHuffmanSizeTab[p]) { + while (__THPHuffmanSizeTab[p] == si) { + __THPHuffmanCodeTab[p++] = code; + code++; + } + + code <<= 1; + si++; + } +} + +static void __THPHuffGenerateDecoderTables(u8 tabIndex) +{ + s32 p, l; + THPHuffmanTab *h; + + p = 0; + h = &__THPInfo->huffmanTabs[tabIndex]; + for (l = 1; l <= 16; l++) { + if (__THPHuffmanBits[l - 1]) { + h->valPtr[l] = p - __THPHuffmanCodeTab[p]; + p += __THPHuffmanBits[l - 1]; + h->maxCode[l] = __THPHuffmanCodeTab[p - 1]; + } + else { + h->maxCode[l] = -1; + h->valPtr[l] = -1; + } + } + + h->maxCode[17] = 0xfffffL; +} + +static void __THPRestartDefinition(void) +{ + __THPInfo->RST = TRUE; + __THPInfo->c += 2; + __THPInfo->nMCU = (u16)((__THPInfo->c)[0] << 8 | (__THPInfo->c)[1]); + __THPInfo->c += 2; + __THPInfo->currMCU = __THPInfo->nMCU; +} + +static inline void __THPGQRSetup(void) +{ + register u32 tmp1, tmp2; + + // clang-format off + asm { + mfspr tmp1, GQR5; + mfspr tmp2, GQR6; + } + // clang-format on + + __THPOldGQR5 = tmp1; + __THPOldGQR6 = tmp2; + + // clang-format off + asm { + li r3, 0x0007 + oris r3, r3, 0x0007 + mtspr GQR5, r3 + li r3, 0x3D04 + oris r3, r3, 0x3D04 + mtspr GQR6, r3 + } + // clang-format on +} + +static inline void __THPGQRRestore(void) +{ + register u32 tmp1, tmp2; + tmp1 = __THPOldGQR5; + tmp2 = __THPOldGQR6; + + // clang-format off + asm { + mtspr GQR5, tmp1; + mtspr GQR6, tmp2; + } + // clang-format on +} + +void __THPPrepBitStream(void) +{ + u32 *ptr; + u32 offset, i, j, k; + + ptr = (u32 *)((u32)__THPInfo->c & 0xFFFFFFFC); + offset = (u32)__THPInfo->c & 3; + + if (__THPInfo->cnt != 33) { + __THPInfo->cnt -= (3 - offset) * 8; + } + else { + __THPInfo->cnt = (offset * 8) + 1; + } + + __THPInfo->c = (u8 *)ptr; + __THPInfo->currByte = *ptr; + + for (i = 0; i < 4; i++) { + if (__THPInfo->validHuffmanTabs & (1 << i)) { + for (j = 0; j < 32; j++) { + __THPInfo->huffmanTabs[i].quick[j] = 0xFF; + + for (k = 0; k < 5; k++) { + s32 code = (s32)(j >> (5 - k - 1)); + + if (code <= __THPInfo->huffmanTabs[i].maxCode[k + 1]) { + __THPInfo->huffmanTabs[i].quick[j] = __THPInfo->huffmanTabs[i].Vij[(s32)(code + __THPInfo->huffmanTabs[i].valPtr[k + 1])]; + __THPInfo->huffmanTabs[i].increment[j] = (u8)(k + 1); + k = 99; + } + else { + } + } + } + } + } + + { + s32 YdcTab, UdcTab, VdcTab, YacTab, UacTab, VacTab; + + YdcTab = (__THPInfo->components[0].DCTableSelector << 1); + UdcTab = (__THPInfo->components[1].DCTableSelector << 1); + VdcTab = (__THPInfo->components[2].DCTableSelector << 1); + + YacTab = (__THPInfo->components[0].ACTableSelector << 1) + 1; + UacTab = (__THPInfo->components[1].ACTableSelector << 1) + 1; + VacTab = (__THPInfo->components[2].ACTableSelector << 1) + 1; + + Ydchuff = &__THPInfo->huffmanTabs[YdcTab]; + Udchuff = &__THPInfo->huffmanTabs[UdcTab]; + Vdchuff = &__THPInfo->huffmanTabs[VdcTab]; + + Yachuff = &__THPInfo->huffmanTabs[YacTab]; + Uachuff = &__THPInfo->huffmanTabs[UacTab]; + Vachuff = &__THPInfo->huffmanTabs[VacTab]; + } +} + +static void __THPDecompressYUV(void *tileY, void *tileU, void *tileV) +{ + u16 currentY, targetY; + __THPInfo->dLC[0] = tileY; + __THPInfo->dLC[1] = tileU; + __THPInfo->dLC[2] = tileV; + + currentY = __THPInfo->decompressedY; + targetY = __THPInfo->yPixelSize; + + __THPGQRSetup(); + __THPPrepBitStream(); + + if (__THPInfo->xPixelSize == 512 && targetY == 448) { + while (currentY < targetY) { + __THPDecompressiMCURow512x448(); + currentY += 16; + } + } + else if (__THPInfo->xPixelSize == 640 && targetY == 480) { + while (currentY < targetY) { + __THPDecompressiMCURow640x480(); + currentY += 16; + } + } + else { + while (currentY < targetY) { + __THPDecompressiMCURowNxN(); + currentY += 16; + } + } + + __THPGQRRestore(); +} + +inline void __THPInverseDCTNoYPos(register THPCoeff *in, register u32 xPos) +{ + register f32 *q, *ws; + register f32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7, tmp8, tmp9; + register f32 tmp10, tmp11, tmp12, tmp13; + register f32 tmp20, tmp21, tmp22, tmp23; + register f32 cc4 = 1.414213562F; + register f32 cc2 = 1.847759065F; + register f32 cc2c6s = 1.082392200F; + register f32 cc2c6a = -2.613125930F; + register f32 bias = 1024.0F; + q = Gq; + ws = &__THPIDCTWorkspace[0] - 2; + + { + register u32 itmp0, itmp1, itmp2, itmp3; + // clang-format off + asm { + li itmp2, 8 + mtctr itmp2 + + _loopHead0: + psq_l tmp10, 0(in), 0, 5 + psq_l tmp11, 0(q), 0, 0 + lwz itmp0, 12(in) + lwz itmp3, 8(in) + ps_mul tmp10, tmp10, tmp11 + lwz itmp1, 4(in) + lhz itmp2, 2(in) + or. itmp0, itmp0, itmp3 + + _loopHead1: + cmpwi itmp0, 0 + bne _regularIDCT + ps_merge00 tmp0, tmp10, tmp10 + cmpwi itmp1, 0 + psq_st tmp0, 8(ws), 0, 0 + bne _halfIDCT + psq_st tmp0, 16(ws), 0, 0 + cmpwi itmp2, 0 + psq_st tmp0, 24(ws), 0, 0 + bne _quarterIDCT + addi q, q, 8*sizeof(f32) + psq_stu tmp0, 32(ws), 0, 0 + addi in, in, 8*sizeof(THPCoeff) + bdnz _loopHead0 + b _loopEnd + + _quarterIDCT: + addi in, in, 8*sizeof(THPCoeff) + ps_msub tmp2, tmp10, cc2, tmp10 + addi q, q, 8*sizeof(f32) + ps_merge00 tmp9, tmp10, tmp10 + lwz itmp1, 4(in) + ps_sub tmp1, cc2, cc2c6s + ps_msub tmp3, tmp10, cc4, tmp2 + lhz itmp2, 2(in) + ps_merge11 tmp5, tmp10, tmp2 + psq_l tmp11, 0(q), 0, 0 + ps_nmsub tmp4, tmp10, tmp1, tmp3 + ps_add tmp7, tmp9, tmp5 + psq_l tmp10, 0(in), 0, 5 + ps_merge11 tmp6, tmp3, tmp4 + ps_sub tmp5, tmp9, tmp5 + lwz itmp0, 12(in) + ps_add tmp8, tmp9, tmp6 + lwz itmp3, 8(in) + ps_sub tmp6, tmp9, tmp6 + psq_stu tmp7, 8(ws), 0, 0 + ps_merge10 tmp6, tmp6, tmp6 + psq_stu tmp8, 8(ws), 0, 0 + ps_merge10 tmp5, tmp5, tmp5 + or itmp0, itmp0, itmp3 + psq_stu tmp6, 8(ws), 0, 0 + ps_mul tmp10, tmp10, tmp11 + psq_stu tmp5, 8(ws), 0, 0 + bdnz _loopHead1 + b _loopEnd + + _halfIDCT: + psq_l tmp1, 4(in), 0, 5 + psq_l tmp9, 8(q), 0, 0 + addi in, in, 8*sizeof(THPCoeff) + ps_mul tmp1, tmp1, tmp9 + addi q, q, 8*sizeof(f32) + ps_sub tmp3, tmp10, tmp1 + ps_add tmp2, tmp10, tmp1 + lwz itmp0, 12(in) + ps_madd tmp4, tmp1, cc4, tmp3 + ps_nmsub tmp5, tmp1, cc4, tmp2 + ps_mul tmp8, tmp3, cc2 + ps_merge00 tmp4, tmp2, tmp4 + lwz itmp3, 8(in) + ps_nmsub tmp6, tmp1, cc2c6a, tmp8 + ps_merge00 tmp5, tmp5, tmp3 + lwz itmp1, 4(in) + ps_sub tmp6, tmp6, tmp2 + ps_msub tmp7, tmp10, cc2c6s, tmp8 + lhz itmp2, 2(in) + ps_merge11 tmp2, tmp2, tmp6 + ps_msub tmp8, tmp3, cc4, tmp6 + psq_l tmp10, 0(in), 0, 5 + ps_add tmp9, tmp4, tmp2 + ps_add tmp7, tmp8, tmp7 + psq_l tmp11, 0(q), 0, 0 + ps_merge11 tmp3, tmp8, tmp7 + ps_sub tmp4, tmp4, tmp2 + psq_stu tmp9, 8(ws), 0, 0 + ps_add tmp0, tmp5, tmp3 + ps_sub tmp1, tmp5, tmp3 + or itmp0, itmp0, itmp3 + psq_stu tmp0, 8(ws), 0, 0 + ps_merge10 tmp1, tmp1, tmp1 + ps_merge10 tmp4, tmp4, tmp4 + psq_stu tmp1, 8(ws), 0, 0 + ps_mul tmp10, tmp10, tmp11 + psq_stu tmp4, 8(ws), 0, 0 + bdnz _loopHead1 + b _loopEnd + + _regularIDCT: + psq_l tmp9, 4(in), 0, 5 + psq_l tmp5, 8(q), 0, 0 + ps_mul tmp9, tmp9, tmp5 + psq_l tmp2, 8(in), 0, 5 + psq_l tmp6, 16(q), 0, 0 + ps_merge01 tmp0, tmp10, tmp9 + psq_l tmp3, 12(in), 0, 5 + ps_merge01 tmp1, tmp9, tmp10 + psq_l tmp7, 24(q), 0, 0 + addi in, in, 8*sizeof(THPCoeff) + ps_madd tmp4, tmp2, tmp6, tmp0 + ps_nmsub tmp5, tmp2, tmp6, tmp0 + ps_madd tmp6, tmp3, tmp7, tmp1 + ps_nmsub tmp7, tmp3, tmp7, tmp1 + addi q, q, 8*sizeof(f32) + ps_add tmp0, tmp4, tmp6 + ps_sub tmp3, tmp4, tmp6 + ps_msub tmp2, tmp7, cc4, tmp6 + lwz itmp0, 12(in) + ps_sub tmp8, tmp7, tmp5 + ps_add tmp1, tmp5, tmp2 + ps_sub tmp2, tmp5, tmp2 + ps_mul tmp8, tmp8, cc2 + lwz itmp3, 8(in) + ps_merge00 tmp1, tmp0, tmp1 + ps_nmsub tmp6, tmp5, cc2c6a, tmp8 + ps_msub tmp4, tmp7, cc2c6s, tmp8 + lwz itmp1, 4(in) + ps_sub tmp6, tmp6, tmp0 + ps_merge00 tmp2, tmp2, tmp3 + lhz itmp2, 2(in) + ps_madd tmp5, tmp3, cc4, tmp6 + ps_merge11 tmp7, tmp0, tmp6 + psq_l tmp10, 0(in), 0, 5 + ps_sub tmp4, tmp4, tmp5 + ps_add tmp3, tmp1, tmp7 + psq_l tmp11, 0(q), 0, 0 + ps_merge11 tmp4, tmp5, tmp4 + ps_sub tmp0, tmp1, tmp7 + ps_mul tmp10, tmp10, tmp11 + ps_add tmp5, tmp2, tmp4 + ps_sub tmp6, tmp2, tmp4 + ps_merge10 tmp5, tmp5, tmp5 + psq_stu tmp3, 8(ws), 0, 0 + ps_merge10 tmp0, tmp0, tmp0 + psq_stu tmp6, 8(ws), 0, 0 + psq_stu tmp5, 8(ws), 0, 0 + or itmp0, itmp0, itmp3 + psq_stu tmp0, 8(ws), 0, 0 + bdnz _loopHead1 + + _loopEnd: + + } + // clang-format on + } + + ws = &__THPIDCTWorkspace[0]; + + { + register THPSample *obase = Gbase; + register u32 wid = Gwid; + + register u32 itmp0, off0, off1; + register THPSample *out0, *out1; + + // clang-format off + asm { + psq_l tmp10, 8*0*sizeof(f32)(ws), 0, 0 + slwi xPos, xPos, 2 + psq_l tmp11, 8*4*sizeof(f32)(ws), 0, 0 + slwi off1, wid, 2 + psq_l tmp12, 8*2*sizeof(f32)(ws), 0, 0 + mr off0, xPos + ps_add tmp6, tmp10, tmp11 + psq_l tmp13, 8*6*sizeof(f32)(ws), 0, 0 + ps_sub tmp8, tmp10, tmp11 + add off1, off0, off1 + ps_add tmp6, tmp6, bias + li itmp0, 3 + ps_add tmp7, tmp12, tmp13 + add out0, obase, off0 + ps_sub tmp9, tmp12, tmp13 + ps_add tmp0, tmp6, tmp7 + add out1, obase, off1 + ps_add tmp8, tmp8, bias + mtctr itmp0 + + _loopHead10: + psq_l tmp4, 8*1*sizeof(f32)(ws), 0, 0 + ps_msub tmp9, tmp9, cc4, tmp7 + psq_l tmp5, 8*3*sizeof(f32)(ws), 0, 0 + ps_sub tmp3, tmp6, tmp7 + ps_add tmp1, tmp8, tmp9 + psq_l tmp6, 8*5*sizeof(f32)(ws), 0, 0 + ps_sub tmp2, tmp8, tmp9 + psq_l tmp7, 8*7*sizeof(f32)(ws), 0, 0 + ps_add tmp8, tmp6, tmp5 + ps_sub tmp6, tmp6, tmp5 + addi ws, ws, 2*sizeof(f32) + ps_add tmp9, tmp4, tmp7 + ps_sub tmp4, tmp4, tmp7 + psq_l tmp10, 8*0*sizeof(f32)(ws), 0, 0 + ps_add tmp7, tmp9, tmp8 + ps_sub tmp5, tmp9, tmp8 + ps_add tmp8, tmp6, tmp4 + psq_l tmp11, 8*4*sizeof(f32)(ws), 0, 0 + ps_add tmp9, tmp0, tmp7 + ps_mul tmp8, tmp8, cc2 + psq_l tmp12, 8*2*sizeof(f32)(ws), 0, 0 + ps_sub tmp23, tmp0, tmp7 + ps_madd tmp6, tmp6, cc2c6a, tmp8 + psq_l tmp13, 8*6*sizeof(f32)(ws), 0, 0 + ps_sub tmp6, tmp6, tmp7 + addi off0, off0, 2*sizeof(THPSample) + psq_st tmp9, 0(out0), 0, 6 + ps_msub tmp4, tmp4, cc2c6s, tmp8 + ps_add tmp9, tmp1, tmp6 + ps_msub tmp5, tmp5, cc4, tmp6 + ps_sub tmp22, tmp1, tmp6 + psq_st tmp9, 8(out0), 0, 6 + ps_add tmp8, tmp2, tmp5 + ps_add tmp4, tmp4, tmp5 + psq_st tmp8, 16(out0), 0, 6 + addi off1, off1, 2*sizeof(THPSample) + ps_sub tmp9, tmp3, tmp4 + ps_add tmp20, tmp3, tmp4 + psq_st tmp9, 24(out0), 0, 6 + ps_sub tmp21, tmp2, tmp5 + ps_add tmp6, tmp10, tmp11 + psq_st tmp20, 0(out1), 0, 6 + ps_sub tmp8, tmp10, tmp11 + ps_add tmp6, tmp6, bias + psq_st tmp21, 8(out1), 0, 6 + ps_add tmp7, tmp12, tmp13 + ps_sub tmp9, tmp12, tmp13 + psq_st tmp22, 16(out1), 0, 6 + add out0, obase, off0 + ps_add tmp0, tmp6, tmp7 + psq_st tmp23, 24(out1), 0, 6 + ps_add tmp8, tmp8, bias + add out1, obase, off1 + bdnz _loopHead10 + psq_l tmp4, 8*1*sizeof(f32)(ws), 0, 0 + ps_msub tmp9, tmp9, cc4, tmp7 + psq_l tmp5, 8*3*sizeof(f32)(ws), 0, 0 + ps_sub tmp3, tmp6, tmp7 + ps_add tmp1, tmp8, tmp9 + psq_l tmp6, 8*5*sizeof(f32)(ws), 0, 0 + ps_sub tmp2, tmp8, tmp9 + psq_l tmp7, 8*7*sizeof(f32)(ws), 0, 0 + ps_add tmp8, tmp6, tmp5 + ps_sub tmp6, tmp6, tmp5 + ps_add tmp9, tmp4, tmp7 + ps_sub tmp4, tmp4, tmp7 + ps_add tmp7, tmp9, tmp8 + ps_sub tmp5, tmp9, tmp8 + ps_add tmp8, tmp6, tmp4 + ps_add tmp9, tmp0, tmp7 + ps_mul tmp8, tmp8, cc2 + ps_sub tmp23, tmp0, tmp7 + ps_madd tmp6, tmp6, cc2c6a, tmp8 + psq_st tmp9, 0(out0), 0, 6 + ps_sub tmp6, tmp6, tmp7 + ps_msub tmp4, tmp4, cc2c6s, tmp8 + psq_st tmp23, 24(out1), 0, 6 + ps_add tmp9, tmp1, tmp6 + ps_msub tmp5, tmp5, cc4, tmp6 + ps_sub tmp22, tmp1, tmp6 + psq_st tmp9, 8(out0), 0, 6 + ps_add tmp8, tmp2, tmp5 + ps_add tmp4, tmp4, tmp5 + psq_st tmp22, 16(out1), 0, 6 + psq_st tmp8, 16(out0), 0, 6 + ps_sub tmp9, tmp3, tmp4 + ps_add tmp20, tmp3, tmp4 + psq_st tmp9, 24(out0), 0, 6 + ps_sub tmp21, tmp2, tmp5 + psq_st tmp20, 0(out1), 0, 6 + psq_st tmp21, 8(out1), 0, 6 + } + // clang-format on + } +} + +inline void __THPInverseDCTY8(register THPCoeff *in, register u32 xPos) +{ + register f32 *q, *ws; + register f32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7, tmp8, tmp9; + register f32 tmp10, tmp11, tmp12, tmp13; + register f32 tmp20, tmp21, tmp22, tmp23; + register f32 cc4 = 1.414213562F; + register f32 cc2 = 1.847759065F; + register f32 cc2c6s = 1.082392200F; + register f32 cc2c6a = -2.613125930F; + register f32 bias = 1024.0F; + + q = Gq; + ws = &__THPIDCTWorkspace[0] - 2; + + { + register u32 itmp0, itmp1, itmp2, itmp3; + + // clang-format off + asm { + li itmp2, 8 + mtctr itmp2 + + _loopHead0: + psq_l tmp10, 0(in), 0, 5 + psq_l tmp11, 0(q), 0, 0 + lwz itmp0, 12(in) + lwz itmp3, 8(in) + ps_mul tmp10, tmp10, tmp11 + lwz itmp1, 4(in) + lhz itmp2, 2(in) + or itmp0, itmp0, itmp3 + + _loopHead1: + cmpwi itmp0, 0 + bne _regularIDCT + ps_merge00 tmp0, tmp10, tmp10 + cmpwi itmp1, 0 + psq_st tmp0, 8(ws), 0, 0 + bne _halfIDCT + psq_st tmp0, 16(ws), 0, 0 + cmpwi itmp2, 0 + psq_st tmp0, 24(ws), 0, 0 + bne _quarterIDCT + addi q, q, 8*sizeof(f32) + psq_stu tmp0, 32(ws), 0, 0 + addi in, in, 8*sizeof(THPCoeff) + bdnz _loopHead0 + b _loopEnd + + _quarterIDCT: + ps_msub tmp2, tmp10, cc2, tmp10 + addi in, in, 8*sizeof(THPCoeff) + ps_merge00 tmp9, tmp10, tmp10 + addi q, q, 8*sizeof(f32) + ps_sub tmp1, cc2, cc2c6s + lwz itmp1, 4(in) + ps_msub tmp3, tmp10, cc4, tmp2 + lhz itmp2, 2(in) + ps_merge11 tmp5, tmp10, tmp2 + psq_l tmp11, 0(q), 0, 0 + ps_nmsub tmp4, tmp10, tmp1, tmp3 + ps_add tmp7, tmp9, tmp5 + psq_l tmp10, 0(in), 0, 5 + ps_merge11 tmp6, tmp3, tmp4 + ps_sub tmp5, tmp9, tmp5 + lwz itmp0, 12(in) + ps_add tmp8, tmp9, tmp6 + lwz itmp3, 8(in) + ps_sub tmp6, tmp9, tmp6 + psq_stu tmp7, 8(ws), 0, 0 + ps_merge10 tmp6, tmp6, tmp6 + psq_stu tmp8, 8(ws), 0, 0 + ps_merge10 tmp5, tmp5, tmp5 + or itmp0, itmp0, itmp3 + psq_stu tmp6, 8(ws), 0, 0 + ps_mul tmp10, tmp10, tmp11 + psq_stu tmp5, 8(ws), 0, 0 + bdnz _loopHead1 + b _loopEnd + + _halfIDCT: + psq_l tmp1, 4(in), 0, 5 + psq_l tmp9, 8(q), 0, 0 + addi in, in, 8*sizeof(THPCoeff) + ps_mul tmp1, tmp1, tmp9 + addi q, q, 8*sizeof(f32) + ps_sub tmp3, tmp10, tmp1 + ps_add tmp2, tmp10, tmp1 + lwz itmp0, 12(in) + ps_madd tmp4, tmp1, cc4, tmp3 + ps_nmsub tmp5, tmp1, cc4, tmp2 + ps_mul tmp8, tmp3, cc2 + ps_merge00 tmp4, tmp2, tmp4 + lwz itmp3, 8(in) + ps_nmsub tmp6, tmp1, cc2c6a, tmp8 + ps_merge00 tmp5, tmp5, tmp3 + lwz itmp1, 4(in) + ps_sub tmp6, tmp6, tmp2 + ps_msub tmp7, tmp10, cc2c6s, tmp8 + lhz itmp2, 2(in) + ps_merge11 tmp2, tmp2, tmp6 + ps_msub tmp8, tmp3, cc4, tmp6 + psq_l tmp10, 0(in), 0, 5 + ps_add tmp9, tmp4, tmp2 + ps_add tmp7, tmp8, tmp7 + psq_l tmp11, 0(q), 0, 0 + ps_merge11 tmp3, tmp8, tmp7 + ps_sub tmp4, tmp4, tmp2 + psq_stu tmp9, 8(ws), 0, 0 + ps_add tmp0, tmp5, tmp3 + ps_sub tmp1, tmp5, tmp3 + or itmp0, itmp0, itmp3 + psq_stu tmp0, 8(ws), 0, 0 + ps_merge10 tmp1, tmp1, tmp1 + ps_merge10 tmp4, tmp4, tmp4 + psq_stu tmp1, 8(ws), 0, 0 + ps_mul tmp10, tmp10, tmp11 + psq_stu tmp4, 8(ws), 0, 0 + bdnz _loopHead1 + b _loopEnd + + _regularIDCT: + psq_l tmp9, 4(in), 0, 5 + psq_l tmp5, 8(q), 0, 0 + ps_mul tmp9, tmp9, tmp5 + psq_l tmp2, 8(in), 0, 5 + psq_l tmp6, 16(q), 0, 0 + ps_merge01 tmp0, tmp10, tmp9 + psq_l tmp3, 12(in), 0, 5 + ps_merge01 tmp1, tmp9, tmp10 + psq_l tmp7, 24(q), 0, 0 + addi in, in, 8*sizeof(THPCoeff) + ps_madd tmp4, tmp2, tmp6, tmp0 + ps_nmsub tmp5, tmp2, tmp6, tmp0 + ps_madd tmp6, tmp3, tmp7, tmp1 + ps_nmsub tmp7, tmp3, tmp7, tmp1 + addi q, q, 8*sizeof(f32) + ps_add tmp0, tmp4, tmp6 + ps_sub tmp3, tmp4, tmp6 + ps_msub tmp2, tmp7, cc4, tmp6 + lwz itmp0, 12(in) + ps_sub tmp8, tmp7, tmp5 + ps_add tmp1, tmp5, tmp2 + ps_sub tmp2, tmp5, tmp2 + ps_mul tmp8, tmp8, cc2 + lwz itmp3, 8(in) + ps_merge00 tmp1, tmp0, tmp1 + ps_nmsub tmp6, tmp5, cc2c6a, tmp8 + ps_msub tmp4, tmp7, cc2c6s, tmp8 + lwz itmp1, 4(in) + ps_sub tmp6, tmp6, tmp0 + ps_merge00 tmp2, tmp2, tmp3 + lhz itmp2, 2(in) + ps_madd tmp5, tmp3, cc4, tmp6 + ps_merge11 tmp7, tmp0, tmp6 + psq_l tmp10, 0(in), 0, 5 + ps_sub tmp4, tmp4, tmp5 + ps_add tmp3, tmp1, tmp7 + psq_l tmp11, 0(q), 0, 0 + ps_merge11 tmp4, tmp5, tmp4 + ps_sub tmp0, tmp1, tmp7 + ps_mul tmp10, tmp10, tmp11 + ps_add tmp5, tmp2, tmp4 + ps_sub tmp6, tmp2, tmp4 + ps_merge10 tmp5, tmp5, tmp5 + psq_stu tmp3, 8(ws), 0, 0 + ps_merge10 tmp0, tmp0, tmp0 + psq_stu tmp6, 8(ws), 0, 0 + psq_stu tmp5, 8(ws), 0, 0 + or itmp0, itmp0, itmp3 + psq_stu tmp0, 8(ws), 0, 0 + bdnz _loopHead1 + + _loopEnd: + + } + // clang-format on + } + + ws = &__THPIDCTWorkspace[0]; + + { + register THPSample *obase = Gbase; + register u32 wid = Gwid; + + register u32 itmp0, off0, off1; + register THPSample *out0, *out1; + + // clang-format off + asm { + psq_l tmp10, 8*0*sizeof(f32)(ws), 0, 0 + slwi off0, wid, 3; + psq_l tmp11, 8*4*sizeof(f32)(ws), 0, 0 + slwi xPos, xPos, 2 + psq_l tmp12, 8*2*sizeof(f32)(ws), 0, 0 + slwi off1, wid, 2 + ps_add tmp6, tmp10, tmp11 + add off0, off0, xPos + psq_l tmp13, 8*6*sizeof(f32)(ws), 0, 0 + ps_sub tmp8, tmp10, tmp11 + add off1, off0, off1 + ps_add tmp6, tmp6, bias + li itmp0, 3 + ps_add tmp7, tmp12, tmp13 + add out0, obase, off0 + ps_sub tmp9, tmp12, tmp13 + ps_add tmp0, tmp6, tmp7 + add out1, obase, off1 + ps_add tmp8, tmp8, bias + mtctr itmp0 + + _loopHead10: + psq_l tmp4, 8*1*sizeof(f32)(ws), 0, 0 + ps_msub tmp9, tmp9, cc4, tmp7 + psq_l tmp5, 8*3*sizeof(f32)(ws), 0, 0 + ps_sub tmp3, tmp6, tmp7 + ps_add tmp1, tmp8, tmp9 + psq_l tmp6, 8*5*sizeof(f32)(ws), 0, 0 + ps_sub tmp2, tmp8, tmp9 + psq_l tmp7, 8*7*sizeof(f32)(ws), 0, 0 + ps_add tmp8, tmp6, tmp5 + ps_sub tmp6, tmp6, tmp5 + addi ws, ws, 2*sizeof(f32) + ps_add tmp9, tmp4, tmp7 + ps_sub tmp4, tmp4, tmp7 + psq_l tmp10, 8*0*sizeof(f32)(ws), 0, 0 + ps_add tmp7, tmp9, tmp8 + ps_sub tmp5, tmp9, tmp8 + ps_add tmp8, tmp6, tmp4 + psq_l tmp11, 8*4*sizeof(f32)(ws), 0, 0 + ps_add tmp9, tmp0, tmp7 + ps_mul tmp8, tmp8, cc2 + psq_l tmp12, 8*2*sizeof(f32)(ws), 0, 0 + ps_sub tmp23, tmp0, tmp7 + ps_madd tmp6, tmp6, cc2c6a, tmp8 + psq_l tmp13, 8*6*sizeof(f32)(ws), 0, 0 + ps_sub tmp6, tmp6, tmp7 + addi off0, off0, 2*sizeof(THPSample) + psq_st tmp9, 0(out0), 0, 6 + ps_msub tmp4, tmp4, cc2c6s, tmp8 + ps_add tmp9, tmp1, tmp6 + ps_msub tmp5, tmp5, cc4, tmp6 + ps_sub tmp22, tmp1, tmp6 + psq_st tmp9, 8(out0), 0, 6 + ps_add tmp8, tmp2, tmp5 + ps_add tmp4, tmp4, tmp5 + psq_st tmp8, 16(out0), 0, 6 + addi off1, off1, 2*sizeof(THPSample) + ps_sub tmp9, tmp3, tmp4 + ps_add tmp20, tmp3, tmp4 + psq_st tmp9, 24(out0), 0, 6 + ps_sub tmp21, tmp2, tmp5 + ps_add tmp6, tmp10, tmp11 + psq_st tmp20, 0(out1), 0, 6 + ps_sub tmp8, tmp10, tmp11 + ps_add tmp6, tmp6, bias + psq_st tmp21, 8(out1), 0, 6 + ps_add tmp7, tmp12, tmp13 + ps_sub tmp9, tmp12, tmp13 + psq_st tmp22, 16(out1), 0, 6 + add out0, obase, off0 + ps_add tmp0, tmp6, tmp7 + psq_st tmp23, 24(out1), 0, 6 + ps_add tmp8, tmp8, bias + add out1, obase, off1 + + bdnz _loopHead10 + psq_l tmp4, 8*1*sizeof(f32)(ws), 0, 0 + ps_msub tmp9, tmp9, cc4, tmp7 + psq_l tmp5, 8*3*sizeof(f32)(ws), 0, 0 + ps_sub tmp3, tmp6, tmp7 + ps_add tmp1, tmp8, tmp9 + psq_l tmp6, 8*5*sizeof(f32)(ws), 0, 0 + ps_sub tmp2, tmp8, tmp9 + psq_l tmp7, 8*7*sizeof(f32)(ws), 0, 0 + ps_add tmp8, tmp6, tmp5 + ps_sub tmp6, tmp6, tmp5 + ps_add tmp9, tmp4, tmp7 + ps_sub tmp4, tmp4, tmp7 + ps_add tmp7, tmp9, tmp8 + ps_sub tmp5, tmp9, tmp8 + ps_add tmp8, tmp6, tmp4 + ps_add tmp9, tmp0, tmp7 + ps_mul tmp8, tmp8, cc2 + ps_sub tmp23, tmp0, tmp7 + ps_madd tmp6, tmp6, cc2c6a, tmp8 + psq_st tmp9, 0(out0), 0, 6 + ps_sub tmp6, tmp6, tmp7 + ps_msub tmp4, tmp4, cc2c6s, tmp8 + psq_st tmp23, 24(out1), 0, 6 + ps_add tmp9, tmp1, tmp6 + ps_msub tmp5, tmp5, cc4, tmp6 + ps_sub tmp22, tmp1, tmp6 + psq_st tmp9, 8(out0), 0, 6 + ps_add tmp8, tmp2, tmp5 + ps_add tmp4, tmp4, tmp5 + psq_st tmp8, 16(out0), 0, 6 + ps_sub tmp9, tmp3, tmp4 + psq_st tmp22, 16(out1), 0, 6 + ps_add tmp20, tmp3, tmp4 + psq_st tmp9, 24(out0), 0, 6 + ps_sub tmp21, tmp2, tmp5 + psq_st tmp20, 0(out1), 0, 6 + psq_st tmp21, 8(out1), 0, 6 + + } + // clang-format on + } +} + +static void __THPDecompressiMCURow512x448(void) +{ + u8 cl_num; + u32 x_pos; + THPComponent *comp; + + LCQueueWait(3); + + for (cl_num = 0; cl_num < __THPInfo->MCUsPerRow; cl_num++) { + __THPHuffDecodeDCTCompY(__THPInfo, __THPMCUBuffer[0]); + __THPHuffDecodeDCTCompY(__THPInfo, __THPMCUBuffer[1]); + __THPHuffDecodeDCTCompY(__THPInfo, __THPMCUBuffer[2]); + __THPHuffDecodeDCTCompY(__THPInfo, __THPMCUBuffer[3]); + __THPHuffDecodeDCTCompU(__THPInfo, __THPMCUBuffer[4]); + __THPHuffDecodeDCTCompV(__THPInfo, __THPMCUBuffer[5]); + + comp = &__THPInfo->components[0]; + Gbase = __THPLCWork512[0]; + Gwid = 512; + Gq = __THPInfo->quantTabs[comp->quantizationTableSelector]; + x_pos = (u32)(cl_num * 16); + __THPInverseDCTNoYPos(__THPMCUBuffer[0], x_pos); + __THPInverseDCTNoYPos(__THPMCUBuffer[1], x_pos + 8); + __THPInverseDCTY8(__THPMCUBuffer[2], x_pos); + __THPInverseDCTY8(__THPMCUBuffer[3], x_pos + 8); + + comp = &__THPInfo->components[1]; + Gbase = __THPLCWork512[1]; + Gwid = 256; + Gq = __THPInfo->quantTabs[comp->quantizationTableSelector]; + x_pos /= 2; + __THPInverseDCTNoYPos(__THPMCUBuffer[4], x_pos); + comp = &__THPInfo->components[2]; + Gbase = __THPLCWork512[2]; + Gq = __THPInfo->quantTabs[comp->quantizationTableSelector]; + __THPInverseDCTNoYPos(__THPMCUBuffer[5], x_pos); + + if (__THPInfo->RST != 0) { + if ((--__THPInfo->currMCU) == 0) { + __THPInfo->currMCU = __THPInfo->nMCU; + __THPInfo->cnt = 1 + ((__THPInfo->cnt + 6) & 0xFFFFFFF8); + + if (__THPInfo->cnt > 33) { + __THPInfo->cnt = 33; + } + + __THPInfo->components[0].predDC = 0; + __THPInfo->components[1].predDC = 0; + __THPInfo->components[2].predDC = 0; + } + } + } + + LCStoreData(__THPInfo->dLC[0], __THPLCWork512[0], 0x2000); + LCStoreData(__THPInfo->dLC[1], __THPLCWork512[1], 0x800); + LCStoreData(__THPInfo->dLC[2], __THPLCWork512[2], 0x800); + + __THPInfo->dLC[0] += 0x2000; + __THPInfo->dLC[1] += 0x800; + __THPInfo->dLC[2] += 0x800; +} + +inline s32 __THPHuffDecodeTab(register THPFileInfo *info, register THPHuffmanTab *h) +{ + register s32 code; + register u32 cnt; + register s32 cb; + register u32 increment; + register s32 tmp; + + // clang-format off + asm + { + lwz cnt, info->cnt; + addi increment, h, 32; + lwz cb, info->currByte; + addi code, cnt, 4; + cmpwi cnt, 28; + rlwnm tmp, cb, code, 27, 31; + bgt _notEnoughBits; + lbzx code, h, tmp; + lbzx increment, increment, tmp; + cmpwi code, 0xFF; + beq _FailedCheckEnoughBits; + add cnt, cnt, increment; + stw cnt, info->cnt; + } + // clang-format on +_done: + return code; + + { + register u32 maxcodebase; + register u32 tmp2; + + _FailedCheckEnoughBits: + maxcodebase = (u32) & (h->maxCode); + cnt += 5; + + // clang-format off + asm { + li tmp2, sizeof(s32)*(5); + li code, 5; + add maxcodebase, maxcodebase, tmp2; + __WHILE_START: + cmpwi cnt, 33; + slwi tmp, tmp, 1 + + beq _FCEB_faster; + rlwnm increment, cb, cnt, 31, 31; + lwzu tmp2, 4(maxcodebase); + or tmp, tmp, increment + addi cnt, cnt, 1; + b __WHILE_CHECK; + + _FCEB_faster: + lwz increment, info->c; + li cnt, 1; + lwzu cb, 4(increment); + lwzu tmp2, 4(maxcodebase); + + stw increment, info->c; + rlwimi tmp, cb, 1,31,31; + stw cb, info->currByte; + b __FL_WHILE_CHECK; + + __FL_WHILE_START: + slwi tmp, tmp, 1; + rlwnm increment, cb, cnt, 31, 31; + lwzu tmp2, 4(maxcodebase); + or tmp, tmp, increment; + + __FL_WHILE_CHECK: + cmpw tmp,tmp2 + addi cnt, cnt, 1; + addi code, code, 1 + bgt __FL_WHILE_START; + b _FCEB_Done; + + __WHILE_CHECK: + cmpw tmp,tmp2 + addi code, code, 1 + bgt __WHILE_START; + } + // clang-format on + } +_FCEB_Done: + info->cnt = cnt; + return (h->Vij[(s32)(tmp + h->valPtr[code])]); + + // clang-format off + asm + { + _notEnoughBits: + cmpwi cnt, 33; + lwz tmp, info->c; + beq _getfullword; + + cmpwi cnt, 32; + rlwnm code, cb, code, 27, 31 + beq _1bitleft; + + lbzx tmp, h, code; + lbzx increment, increment, code; + cmpwi tmp, 0xFF; + add code, cnt, increment; + beq _FailedCheckNoBits0; + + cmpwi code, 33; + stw code, info->cnt; + bgt _FailedCheckNoBits1; + } + // clang-format on + return tmp; + + // clang-format off + asm + { + _1bitleft: + lwzu cb, 4(tmp); + + stw tmp, info->c; + rlwimi code, cb, 4, 28, 31; + lbzx tmp, h, code; + lbzx increment, increment, code + stw cb, info->currByte; + cmpwi tmp, 0xFF + stw increment, info->cnt; + beq _Read4; + + } + // clang-format on + return tmp; + +_Read4 : { + register u32 maxcodebase = (u32) & (h->maxCode); + register u32 tmp2; + + // clang-format off + asm + { + li cnt, sizeof(s32)*5; + add maxcodebase, maxcodebase, cnt; + + slwi tmp, code, 32-5; + li cnt,5; + rlwimi tmp, cb, 32-1, 1,31; + + __DR4_WHILE_START: + + subfic cb, cnt, 31; + lwzu tmp2, 4(maxcodebase); + srw code, tmp, cb; + __DR4_WHILE_CHECK: + cmpw code, tmp2 + addi cnt, cnt, 1 + bgt __DR4_WHILE_START; + + } + // clang-format on +} + + info->cnt = cnt; +__CODE_PLUS_VP_CNT: + return (h->Vij[(s32)(code + h->valPtr[cnt])]); + +_getfullword: + // clang-format off + asm + { + lwzu cb, 4(tmp); + + rlwinm code, cb, 5, 27, 31 + stw tmp, info->c; + lbzx cnt, h, code; + lbzx increment, increment, code; + cmpwi cnt, 0xFF + stw cb, info->currByte; + addi increment, increment, 1 + beq _FailedCheckEnoughbits_Updated; + + stw increment, info->cnt; + } + // clang-format on + return (s32)cnt; + +_FailedCheckEnoughbits_Updated: + + cnt = 5; + do { + // clang-format off + asm + { + subfic tmp, cnt, 31; + addi cnt, cnt, 1; + srw code, cb, tmp; + } + // clang-format on + } while (code > h->maxCode[cnt]); + + info->cnt = cnt + 1; + goto __CODE_PLUS_VP_CNT; + +_FailedCheckNoBits0: +_FailedCheckNoBits1 : + +{ + register u32 mask = 0xFFFFFFFF << (33 - cnt); + register u32 tmp2; + + code = (s32)(cb & (~mask)); + mask = (u32) & (h->maxCode); + + // clang-format off + asm + { + lwz tmp, info->c; + subfic tmp2, cnt, 33; + addi cnt, tmp2, 1; + slwi tmp2, tmp2, 2; + lwzu cb, 4(tmp); + add mask,mask, tmp2; + stw tmp, info->c; + slwi code, code, 1; + stw cb, info->currByte; + rlwimi code, cb, 1, 31, 31; + lwzu tmp2, 4(mask); + li tmp, 2; + b __FCNB1_WHILE_CHECK; + + __FCNB1_WHILE_START: + slwi code, code, 1; + + addi cnt, cnt, 1; + lwzu tmp2, 4(mask); + add code, code, increment; + addi tmp, tmp, 1; + + __FCNB1_WHILE_CHECK: + cmpw code, tmp2; + rlwnm increment, cb, tmp, 31, 31; + bgt __FCNB1_WHILE_START; + + } + // clang-format on +} + + info->cnt = (u32)tmp; + return (h->Vij[(s32)(code + h->valPtr[cnt])]); +} + +static void __THPDecompressiMCURow640x480(void) +{ + u8 cl_num; + u32 x_pos; + THPComponent *comp; + + LCQueueWait(3); + + { + for (cl_num = 0; cl_num < __THPInfo->MCUsPerRow; cl_num++) { + THPFileInfo *um = __THPInfo; + __THPHuffDecodeDCTCompY(um, __THPMCUBuffer[0]); + __THPHuffDecodeDCTCompY(__THPInfo, __THPMCUBuffer[1]); + __THPHuffDecodeDCTCompY(__THPInfo, __THPMCUBuffer[2]); + __THPHuffDecodeDCTCompY(__THPInfo, __THPMCUBuffer[3]); + __THPHuffDecodeDCTCompU(__THPInfo, __THPMCUBuffer[4]); + __THPHuffDecodeDCTCompV(__THPInfo, __THPMCUBuffer[5]); + + comp = &__THPInfo->components[0]; + Gbase = __THPLCWork640[0]; + Gwid = 640; + Gq = __THPInfo->quantTabs[comp->quantizationTableSelector]; + x_pos = (u32)(cl_num * 16); + __THPInverseDCTNoYPos(__THPMCUBuffer[0], x_pos); + __THPInverseDCTNoYPos(__THPMCUBuffer[1], x_pos + 8); + __THPInverseDCTY8(__THPMCUBuffer[2], x_pos); + __THPInverseDCTY8(__THPMCUBuffer[3], x_pos + 8); + + comp = &__THPInfo->components[1]; + Gbase = __THPLCWork640[1]; + Gwid = 320; + Gq = __THPInfo->quantTabs[comp->quantizationTableSelector]; + x_pos /= 2; + __THPInverseDCTNoYPos(__THPMCUBuffer[4], x_pos); + + comp = &__THPInfo->components[2]; + Gbase = __THPLCWork640[2]; + Gq = __THPInfo->quantTabs[comp->quantizationTableSelector]; + __THPInverseDCTNoYPos(__THPMCUBuffer[5], x_pos); + + if (__THPInfo->RST != 0) { + __THPInfo->currMCU--; + if (__THPInfo->currMCU == 0) { + __THPInfo->currMCU = __THPInfo->nMCU; + + __THPInfo->cnt = 1 + ((__THPInfo->cnt + 6) & 0xFFFFFFF8); + + if (__THPInfo->cnt > 32) { + __THPInfo->cnt = 33; + } + + __THPInfo->components[0].predDC = 0; + __THPInfo->components[1].predDC = 0; + __THPInfo->components[2].predDC = 0; + } + } + } + } + + LCStoreData(__THPInfo->dLC[0], __THPLCWork640[0], 0x2800); + LCStoreData(__THPInfo->dLC[1], __THPLCWork640[1], 0xA00); + LCStoreData(__THPInfo->dLC[2], __THPLCWork640[2], 0xA00); + + __THPInfo->dLC[0] += 0x2800; + __THPInfo->dLC[1] += 0xA00; + __THPInfo->dLC[2] += 0xA00; +} + +static void __THPDecompressiMCURowNxN(void) +{ + u8 cl_num; + u32 x_pos, x; + THPComponent *comp; + + x = __THPInfo->xPixelSize; + + LCQueueWait(3); + + for (cl_num = 0; cl_num < __THPInfo->MCUsPerRow; cl_num++) { + __THPHuffDecodeDCTCompY(__THPInfo, __THPMCUBuffer[0]); + __THPHuffDecodeDCTCompY(__THPInfo, __THPMCUBuffer[1]); + __THPHuffDecodeDCTCompY(__THPInfo, __THPMCUBuffer[2]); + __THPHuffDecodeDCTCompY(__THPInfo, __THPMCUBuffer[3]); + __THPHuffDecodeDCTCompU(__THPInfo, __THPMCUBuffer[4]); + __THPHuffDecodeDCTCompV(__THPInfo, __THPMCUBuffer[5]); + + comp = &__THPInfo->components[0]; + Gbase = __THPLCWork640[0]; + Gwid = x; + Gq = __THPInfo->quantTabs[comp->quantizationTableSelector]; + x_pos = (u32)(cl_num * 16); + __THPInverseDCTNoYPos(__THPMCUBuffer[0], x_pos); + __THPInverseDCTNoYPos(__THPMCUBuffer[1], x_pos + 8); + __THPInverseDCTY8(__THPMCUBuffer[2], x_pos); + __THPInverseDCTY8(__THPMCUBuffer[3], x_pos + 8); + + comp = &__THPInfo->components[1]; + Gbase = __THPLCWork640[1]; + Gwid = x / 2; + Gq = __THPInfo->quantTabs[comp->quantizationTableSelector]; + x_pos /= 2; + __THPInverseDCTNoYPos(__THPMCUBuffer[4], x_pos); + + comp = &__THPInfo->components[2]; + Gbase = __THPLCWork640[2]; + Gq = __THPInfo->quantTabs[comp->quantizationTableSelector]; + __THPInverseDCTNoYPos(__THPMCUBuffer[5], x_pos); + + if (__THPInfo->RST != 0) { + __THPInfo->currMCU--; + if (__THPInfo->currMCU == 0) { + __THPInfo->currMCU = __THPInfo->nMCU; + __THPInfo->cnt = 1 + ((__THPInfo->cnt + 6) & 0xFFFFFFF8); + + if (__THPInfo->cnt > 32) { + __THPInfo->cnt = 33; + } + + __THPInfo->components[0].predDC = 0; + __THPInfo->components[1].predDC = 0; + __THPInfo->components[2].predDC = 0; + } + } + } + + LCStoreData(__THPInfo->dLC[0], __THPLCWork640[0], ((4 * sizeof(u8) * 64) * (x / 16))); + LCStoreData(__THPInfo->dLC[1], __THPLCWork640[1], ((sizeof(u8) * 64) * (x / 16))); + LCStoreData(__THPInfo->dLC[2], __THPLCWork640[2], ((sizeof(u8) * 64) * (x / 16))); + __THPInfo->dLC[0] += ((4 * sizeof(u8) * 64) * (x / 16)); + __THPInfo->dLC[1] += ((sizeof(u8) * 64) * (x / 16)); + __THPInfo->dLC[2] += ((sizeof(u8) * 64) * (x / 16)); +} + +static void __THPHuffDecodeDCTCompY(register THPFileInfo *info, THPCoeff *block) +{ + { + register s32 t; + THPCoeff dc; + register THPCoeff diff; + + __dcbz((void *)block, 0); + t = __THPHuffDecodeTab(info, Ydchuff); + __dcbz((void *)block, 32); + diff = 0; + __dcbz((void *)block, 64); + + if (t) { + { + register s32 v; + register u32 cb; + register u32 cnt; + register u32 code; + register u32 tmp; + register u32 cnt1; + register u32 tmp1; + // clang-format off + asm { + lwz cnt,info->cnt; + subfic code,cnt,33; + lwz cb,info->currByte; + + subfc. tmp, code, t; + subi cnt1,cnt,1; + + bgt _notEnoughBitsDIFF; + add v,cnt,t; + + slw cnt,cb,cnt1; + stw v,info->cnt; + subfic v,t,32; + srw diff,cnt,v; + } + // clang-format on + + // clang-format off + asm + { + b _DoneDIFF; + _notEnoughBitsDIFF: + lwz tmp1, info->c; + slw v, cb, cnt1; + lwzu cb, 4(tmp1); + addi tmp, tmp, 1; + stw cb, info->currByte; + srw cb, cb, code; + stw tmp1, info->c; + add v, cb, v; + stw tmp, info->cnt; + subfic tmp, t, 32; + srw diff, v, tmp; + _DoneDIFF: + } + // clang-format on + } + + if (__cntlzw((u32)diff) > 32 - t) { + diff += ((0xFFFFFFFF << t) + 1); + } + }; + + __dcbz((void *)block, 96); + dc = (s16)(info->components[0].predDC + diff); + block[0] = info->components[0].predDC = dc; + } + + { + register s32 k; + register s32 code; + register u32 cnt; + register u32 cb; + register u32 increment; + register s32 tmp; + register THPHuffmanTab *h = Yachuff; + + // clang-format off + asm + { + lwz cnt, info->cnt; + addi increment, h, 32; + lwz cb, info->currByte; + } + // clang-format on + + for (k = 1; k < 64; k++) + { + register s32 ssss; + register s32 rrrr; + + // clang-format off + asm { + addi code, cnt, 4; + cmpwi cnt, 28; + rlwnm tmp, cb, code, 27, 31; + bgt _notEnoughBits; + + lbzx ssss, h, tmp; + lbzx code, increment, tmp; + cmpwi ssss, 0xFF; + + beq _FailedCheckEnoughBits; + add cnt, cnt, code; + b _DoneDecodeTab; + } + // clang-format on + + { + register u32 maxcodebase; + register u32 tmp2; + + _FailedCheckEnoughBits: + cnt += 5; + maxcodebase = (u32) & (h->maxCode); + // clang-format off + asm { + li tmp2, sizeof(s32)*(5); + li code, 5; + add maxcodebase, maxcodebase, tmp2; + __WHILE_START: + cmpwi cnt, 33; + slwi tmp, tmp, 1 + + beq _FCEB_faster; + rlwnm ssss, cb, cnt, 31, 31; + lwzu tmp2, 4(maxcodebase); + or tmp, tmp, ssss + addi cnt, cnt, 1; + b __WHILE_CHECK; + + _FCEB_faster: + lwz ssss, info->c; + li cnt, 1; + lwzu cb, 4(ssss); + + lwzu tmp2, 4(maxcodebase); + + stw ssss, info->c; + rlwimi tmp, cb, 1,31,31; + b __FL_WHILE_CHECK; + + __FL_WHILE_START: + slwi tmp, tmp, 1; + + rlwnm ssss, cb, cnt, 31, 31; + lwzu tmp2, 4(maxcodebase); + or tmp, tmp, ssss; + + __FL_WHILE_CHECK: + cmpw tmp,tmp2 + addi cnt, cnt, 1; + addi code, code, 1 + bgt __FL_WHILE_START; + b _FCEB_Done; + + __WHILE_CHECK: + cmpw tmp,tmp2 + addi code, code, 1 + bgt __WHILE_START; + } + // clang-format on + } + _FCEB_Done: + ssss = (h->Vij[(s32)(tmp + h->valPtr[code])]); + goto _DoneDecodeTab; + + _notEnoughBits: + // clang-format off + asm + { + cmpwi cnt, 33; + lwz tmp, info->c; + beq _getfullword; + + cmpwi cnt, 32; + rlwnm code, cb, code, 27, 31 + beq _1bitleft; + + lbzx ssss, h, code; + lbzx rrrr, increment, code; + cmpwi ssss, 0xFF; + add code, cnt, rrrr; + beq _FailedCheckNoBits0; + + cmpwi code, 33; + bgt _FailedCheckNoBits1; + } + // clang-format on + cnt = (u32)code; + goto _DoneDecodeTab; + + _getfullword : { + // clang-format off + asm + { + lwzu cb, 4(tmp); + rlwinm code, cb, 5, 27, 31 + stw tmp, info->c; + lbzx ssss, h, code; + lbzx tmp, increment, code; + cmpwi ssss, 0xFF + addi cnt, tmp, 1 + beq _FailedCheckEnoughbits_Updated; + } + // clang-format on + } + goto _DoneDecodeTab; + + _FailedCheckEnoughbits_Updated: + ssss = 5; + do { + // clang-format off + asm + { + subfic tmp, ssss, 31; + addi ssss, ssss, 1; + srw code, cb, tmp; + } + // clang-format on + } while (code > h->maxCode[ssss]); + + cnt = (u32)(ssss + 1); + ssss = (h->Vij[(s32)(code + h->valPtr[ssss])]); + + goto _DoneDecodeTab; + + _1bitleft: + // clang-format off + asm { + lwzu cb, 4(tmp); + + stw tmp, info->c; + rlwimi code, cb, 4, 28, 31; + lbzx ssss, h, code; + lbzx cnt, increment, code + cmpwi ssss, 0xFF + beq _Read4; + + } + // clang-format on + + goto _DoneDecodeTab; + + _Read4 : { + register u32 maxcodebase = (u32) & (h->maxCode); + register u32 tmp2; + + // clang-format off + asm { + li cnt, sizeof(s32)*5; + add maxcodebase, maxcodebase, cnt; + + slwi tmp, code, 32-5; + li cnt,5; + rlwimi tmp, cb, 32-1, 1,31; + + __DR4_WHILE_START: + + subfic ssss, cnt, 31; + lwzu tmp2, 4(maxcodebase); + srw code, tmp, ssss; + __DR4_WHILE_CHECK: + cmpw code, tmp2 + addi cnt, cnt, 1 + bgt __DR4_WHILE_START; + + } + // clang-format on + } + ssss = (h->Vij[(s32)(code + h->valPtr[cnt])]); + goto _DoneDecodeTab; + + _FailedCheckNoBits0: + _FailedCheckNoBits1: + _REALFAILEDCHECKNOBITS : { + register u32 mask = 0xFFFFFFFF << (33 - cnt); + register u32 tmp2; + register u32 tmp3; + code = (s32)(cb & (~mask)); + mask = (u32) & (h->maxCode); + + // clang-format off + asm { + lwz tmp, info->c; + subfic tmp2, cnt, 33; + addi tmp3, tmp2, 1; + slwi tmp2, tmp2, 2; + lwzu cb, 4(tmp); + add mask,mask, tmp2; + stw tmp, info->c; + slwi code, code, 1; + rlwimi code, cb, 1, 31, 31; + lwzu tmp2, 4(mask); + li cnt, 2; + b __FCNB1_WHILE_CHECK; + + __FCNB1_WHILE_START: + slwi code, code, 1; + + addi tmp3, tmp3, 1; + lwzu tmp2, 4(mask); + add code, code, rrrr; + addi cnt, cnt, 1; + + __FCNB1_WHILE_CHECK: + cmpw code, tmp2; + rlwnm rrrr, cb, cnt, 31, 31; + bgt __FCNB1_WHILE_START; + + } + // clang-format on + ssss = (h->Vij[(s32)(code + h->valPtr[tmp3])]); + } + + goto _DoneDecodeTab; + + _DoneDecodeTab: + // clang-format off + asm { + andi. rrrr, ssss, 15; + srawi ssss, ssss, 4; + beq _RECV_SSSS_ZERO; + } + // clang-format on + + { + k += ssss; + { + register s32 v; + register u32 cnt1; + register u32 tmp1; + // clang-format off + asm + { + subfic code,cnt,33; + subfc. tmp, code, rrrr; + subi cnt1,cnt,1; + bgt _RECVnotEnoughBits; + add cnt,cnt,rrrr; + slw tmp1,cb,cnt1; + subfic v,rrrr,32; + srw ssss,tmp1,v; + } + // clang-format on + // clang-format off + asm + { + b _RECVDone; + _RECVnotEnoughBits: + lwz tmp1, info->c; + slw v, cb, cnt1; + lwzu cb, 4(tmp1); + addi cnt, tmp, 1; + stw tmp1, info->c; + srw tmp1, cb, code; + + add v, tmp1, v; + subfic tmp, rrrr, 32; + srw ssss, v, tmp; + _RECVDone: + } + // clang-format on + } + + if (__cntlzw((u32)ssss) > 32 - rrrr) { + ssss += ((0xFFFFFFFF << rrrr) + 1); + } + + block[__THPJpegNaturalOrder[k]] = (s16)ssss; + goto _RECV_END; + } + + { + _RECV_SSSS_ZERO: + if (ssss != 15) { + break; + } + + k += 15; + }; + + // clang-format off + asm + { + _RECV_END: + } + // clang-format on + } + info->cnt = cnt; + info->currByte = cb; + } +} + +static void __THPHuffDecodeDCTCompU(register THPFileInfo *info, THPCoeff *block) +{ + register s32 t; + register THPCoeff diff; + THPCoeff dc; + register s32 v; + register u32 cb; + register u32 cnt; + register u32 cnt33; + register u32 tmp; + register u32 cnt1; + register u32 tmp1; + register s32 k; + register s32 ssss; + register s32 rrrr; + + __dcbz((void *)block, 0); + t = __THPHuffDecodeTab(info, Udchuff); + __dcbz((void *)block, 32); + diff = 0; + __dcbz((void *)block, 64); + + if (t) { + // clang-format off + asm + { + lwz cnt,info->cnt; + subfic cnt33,cnt,33; + lwz cb,info->currByte; + subfc. tmp, cnt33, t; + subi cnt1,cnt,1; + bgt _notEnoughBitsDIFF; + add v,cnt,t; + slw cnt,cb,cnt1; + stw v,info->cnt; + subfic v,t,32; + srw diff,cnt,v; + } + // clang-format on + + // clang-format off + asm + { + b _DoneDIFF; + _notEnoughBitsDIFF: + lwz tmp1, info->c; + slw v, cb, cnt1; + lwzu cb, 4(tmp1); + addi tmp, tmp, 1; + stw cb, info->currByte; + srw cb, cb, cnt33; + stw tmp1, info->c; + add v, cb, v; + stw tmp, info->cnt; + subfic tmp, t, 32; + srw diff, v, tmp; + _DoneDIFF: + } + // clang-format on + + if (__cntlzw((u32)diff) > 32 - t) { + diff += ((0xFFFFFFFF << t) + 1); + } + } + + __dcbz((void *)block, 96); + dc = (s16)(info->components[1].predDC + diff); + block[0] = info->components[1].predDC = dc; + + for (k = 1; k < 64; k++) { + ssss = __THPHuffDecodeTab(info, Uachuff); + rrrr = ssss >> 4; + ssss &= 15; + + if (ssss) { + k += rrrr; + // clang-format off + asm + { + lwz cnt,info->cnt; + subfic cnt33,cnt,33; + lwz cb,info->currByte; + subf. tmp, cnt33, ssss; + subi cnt1,cnt,1; + bgt _notEnoughBits; + add v,cnt,ssss; + slw cnt,cb,cnt1; + stw v,info->cnt; + subfic v,ssss,32; + srw rrrr,cnt,v; + } + // clang-format on + + // clang-format off + asm + { + b _Done; + _notEnoughBits: + lwz tmp1, info->c; + slw v, cb, cnt1; + lwzu cb, 4(tmp1); + addi tmp, tmp, 1; + stw cb, info->currByte; + srw cb, cb, cnt33; + stw tmp1, info->c; + add v, cb, v; + stw tmp, info->cnt; + subfic tmp, ssss, 32; + srw rrrr, v, tmp; + _Done: + } + // clang-format on + + if (__cntlzw((u32)rrrr) > 32 - ssss) { + rrrr += ((0xFFFFFFFF << ssss) + 1); + } + + block[__THPJpegNaturalOrder[k]] = (s16)rrrr; + } + + else { + if (rrrr != 15) + break; + k += 15; + } + } +} + +static void __THPHuffDecodeDCTCompV(register THPFileInfo *info, THPCoeff *block) +{ + register s32 t; + register THPCoeff diff; + THPCoeff dc; + register s32 v; + register u32 cb; + register u32 cnt; + register u32 cnt33; + register u32 tmp; + register u32 cnt1; + register u32 tmp1; + register s32 k; + register s32 ssss; + register s32 rrrr; + + __dcbz((void *)block, 0); + t = __THPHuffDecodeTab(info, Vdchuff); + __dcbz((void *)block, 32); + diff = 0; + __dcbz((void *)block, 64); + + if (t) { + // clang-format off + asm + { + lwz cnt,info->cnt; + subfic cnt33,cnt,33; + lwz cb,info->currByte; + subf. tmp, cnt33, t; + subi cnt1,cnt,1; + bgt _notEnoughBitsDIFF; + add v,cnt,t; + slw cnt,cb,cnt1; + stw v,info->cnt; + subfic v,t,32; + srw diff,cnt,v; + } + // clang-format on + + // clang-format off + asm + { + b _DoneDIFF; + _notEnoughBitsDIFF: + lwz tmp1, info->c; + slw v, cb, cnt1; + lwzu cb, 4(tmp1); + addi tmp, tmp, 1; + stw cb, info->currByte; + srw cb, cb, cnt33; + stw tmp1, info->c; + add v, cb, v; + stw tmp, info->cnt; + subfic tmp, t, 32; + srw diff, v, tmp; + _DoneDIFF: + } + // clang-format on + + if (__cntlzw((u32)diff) > 32 - t) { + diff += ((0xFFFFFFFF << t) + 1); + } + } + + __dcbz((void *)block, 96); + + dc = (s16)(info->components[2].predDC + diff); + block[0] = info->components[2].predDC = dc; + + for (k = 1; k < 64; k++) { + ssss = __THPHuffDecodeTab(info, Vachuff); + rrrr = ssss >> 4; + ssss &= 15; + + if (ssss) { + k += rrrr; + + // clang-format off + asm + { + lwz cnt,info->cnt; + subfic cnt33,cnt,33; + lwz cb,info->currByte; + + subf. tmp, cnt33, ssss; + subi cnt1,cnt,1; + + bgt _notEnoughBits; + add v,cnt,ssss; + + slw cnt,cb,cnt1; + stw v,info->cnt; + subfic v,ssss,32; + srw rrrr,cnt,v; + } + // clang-format on + + // clang-format off + asm + { + b _Done; + _notEnoughBits: + lwz tmp1, info->c; + slw v, cb, cnt1; + lwzu cb, 4(tmp1); + addi tmp, tmp, 1; + stw cb, info->currByte; + srw cb, cb, cnt33; + stw tmp1, info->c; + add v, cb, v; + stw tmp, info->cnt; + subfic tmp, ssss, 32; + srw rrrr, v, tmp; + _Done: + } + // clang-format on + + if (__cntlzw((u32)rrrr) > 32 - ssss) { + rrrr += ((0xFFFFFFFF << ssss) + 1); + } + + block[__THPJpegNaturalOrder[k]] = (s16)rrrr; + } + else { + if (rrrr != 15) + break; + k += 15; + } + } +} + +BOOL THPInit(void) +{ + u8 *base; + base = (u8 *)(0xE000 << 16); + + __THPLCWork512[0] = base; + base += 0x2000; + __THPLCWork512[1] = base; + base += 0x800; + __THPLCWork512[2] = base; + base += 0x200; + + base = (u8 *)(0xE000 << 16); + __THPLCWork640[0] = base; + base += 0x2800; + __THPLCWork640[1] = base; + base += 0xA00; + __THPLCWork640[2] = base; + base += 0xA00; + + OSInitFastCast(); + + __THPInitFlag = TRUE; + return TRUE; +} From 27055da9946afa73450586e703cea1823f4b78f3 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 12 Nov 2024 04:37:37 +0100 Subject: [PATCH 124/311] Fixed the path of thp --- src/{ => dolphin}/thp/THPAudio.c | 0 src/{ => dolphin}/thp/THPDec.c | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/{ => dolphin}/thp/THPAudio.c (100%) rename src/{ => dolphin}/thp/THPDec.c (100%) diff --git a/src/thp/THPAudio.c b/src/dolphin/thp/THPAudio.c similarity index 100% rename from src/thp/THPAudio.c rename to src/dolphin/thp/THPAudio.c diff --git a/src/thp/THPDec.c b/src/dolphin/thp/THPDec.c similarity index 100% rename from src/thp/THPDec.c rename to src/dolphin/thp/THPDec.c From 13b6c32c8ff546787fe9659bdaf019b82f250b6e Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 12 Nov 2024 04:39:47 +0100 Subject: [PATCH 125/311] Update the path of thp in configure.py --- configure.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.py b/configure.py index a27cc629..7c6f1fe0 100644 --- a/configure.py +++ b/configure.py @@ -615,8 +615,8 @@ config.libs = [ "cflags": cflags_thp, "host": False, "objects": [ - Object(Matching, "thp/THPDec.c"), - Object(NonMatching, "thp/THPAudio.c"), + Object(Matching, "dolphin/thp/THPDec.c"), + Object(NonMatching, "dolphin/thp/THPAudio.c"), ], }, { From 393303dca7dc131b1a52cbc801fa8d394bc6d738 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 12 Nov 2024 04:48:22 +0100 Subject: [PATCH 126/311] Fixed dolphin/DEMOPuts.c --- configure.py | 2 +- src/dolphin/demo/DEMOPuts.c | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/configure.py b/configure.py index 7c6f1fe0..5e8750df 100644 --- a/configure.py +++ b/configure.py @@ -523,7 +523,7 @@ config.libs = [ [ Object(Matching, "dolphin/demo/DEMOInit.c"), Object(Matching, "dolphin/demo/DEMOFont.c"), - Object(NonMatching, "dolphin/demo/DEMOPuts.c"), + Object(Matching, "dolphin/demo/DEMOPuts.c"), Object(Matching, "dolphin/demo/DEMOStats.c"), ], ), diff --git a/src/dolphin/demo/DEMOPuts.c b/src/dolphin/demo/DEMOPuts.c index 3b7e84bc..618152e5 100644 --- a/src/dolphin/demo/DEMOPuts.c +++ b/src/dolphin/demo/DEMOPuts.c @@ -37,22 +37,22 @@ void DEMOSetFontType(DMFontType attr) void DEMOLoadFont(enum _GXTexMapID texMap, enum _GXTexMtx texMtx, DMTexFlt texFlt) { - // float fontTMtx[3][4]; - // unsigned short width; - // unsigned short height; + float fontTMtx[3][4]; + unsigned short width; + unsigned short height; - // width = 64; - // height = 0x1800 / width; - // GXInitTexObj(&fontTexObj, (void *)DEMOFontBitmap, width, (u16)height, 0, 0, 0, 0); - // if (texFlt == 0) { - // GXInitTexObjLOD(&fontTexObj, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f); - // fontShift = 0; - // } - // GXLoadTexObj(&fontTexObj, texMap); - // MTXScale(fontTMtx, 1.0f / (width - fontShift), 1.0f / ((u16)height - !fontShift), 1.0f); - // GXLoadTexMtxImm(fontTMtx, texMtx, 1); - // GXSetNumTexGens(1); - // GXSetTexCoordGen(0, 1, 4, texMtx); + width = 64; + height = 0x1800 / width; + GXInitTexObj(&fontTexObj, (void *)DEMOFontBitmap, width, (u16)height, 0, 0, 0, 0); + if (texFlt == 0) { + GXInitTexObjLOD(&fontTexObj, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f); + fontShift = 0; + } + GXLoadTexObj(&fontTexObj, texMap); + MTXScale(fontTMtx, 1.0f / width, 1.0f / height, 1.0f); + GXLoadTexMtxImm(fontTMtx, texMtx, 1); + GXSetNumTexGens(1); + GXSetTexCoordGen(0, 1, 4, texMtx); } void DEMOSetupScrnSpc(long width, long height, float depth) From 023cd9067566efa0e968c9c6e90cabcb43856c21 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 12 Nov 2024 18:21:21 +0100 Subject: [PATCH 127/311] Correct the length of string symbols --- config/GMPE01_00/rels/E3setupDLL/symbols.txt | 6 +- config/GMPE01_00/rels/m404Dll/symbols.txt | 4 +- config/GMPE01_00/rels/m406Dll/symbols.txt | 4 +- config/GMPE01_00/rels/m410Dll/symbols.txt | 6 +- config/GMPE01_00/rels/m412Dll/symbols.txt | 2 +- config/GMPE01_00/rels/m420dll/symbols.txt | 2 +- config/GMPE01_00/rels/m432Dll/symbols.txt | 10 +-- config/GMPE01_00/rels/m438Dll/symbols.txt | 2 +- config/GMPE01_00/rels/m440Dll/symbols.txt | 2 +- config/GMPE01_00/rels/m442Dll/symbols.txt | 4 +- config/GMPE01_00/rels/m443Dll/symbols.txt | 2 +- config/GMPE01_00/rels/m446dll/symbols.txt | 10 +-- config/GMPE01_00/rels/m450Dll/symbols.txt | 16 ++--- config/GMPE01_00/rels/m453Dll/symbols.txt | 2 +- config/GMPE01_00/rels/mentDll/symbols.txt | 4 +- config/GMPE01_00/rels/mpexDll/symbols.txt | 10 +-- config/GMPE01_00/rels/present/symbols.txt | 6 +- config/GMPE01_00/rels/w05Dll/symbols.txt | 4 +- config/GMPE01_00/rels/w10Dll/symbols.txt | 2 +- config/GMPE01_00/rels/ztardll/symbols.txt | 2 +- config/GMPE01_00/symbols.txt | 68 +++++++++++++++----- src/REL/E3setupDLL/mgselect.c | 6 +- 22 files changed, 104 insertions(+), 70 deletions(-) diff --git a/config/GMPE01_00/rels/E3setupDLL/symbols.txt b/config/GMPE01_00/rels/E3setupDLL/symbols.txt index da0474aa..4089dcf6 100644 --- a/config/GMPE01_00/rels/E3setupDLL/symbols.txt +++ b/config/GMPE01_00/rels/E3setupDLL/symbols.txt @@ -131,11 +131,11 @@ lbl_2_data_151 = .data:0x00000151; // type:object size:0x16 data:string lbl_2_data_167 = .data:0x00000167; // type:object size:0x16 data:string lbl_2_data_17D = .data:0x0000017D; // type:object size:0x16 data:string lbl_2_data_193 = .data:0x00000193; // type:object size:0x16 data:string -lbl_2_data_1A9 = .data:0x000001A9; // type:object size:0x17 data:string +lbl_2_data_1A9 = .data:0x000001A9; // type:object size:0x16 data:string mgNameTestTbl = .data:0x000001C0; // type:object size:0x34 scope:local cursorYOfsTbl = .data:0x000001F4; // type:object size:0x14 scope:local data:float mgPicTbl = .data:0x00000208; // type:object size:0x34 scope:local -startText = .data:0x0000023C; // type:object size:0x14 scope:local data:string +startText = .data:0x0000023C; // type:object size:0x10 scope:local data:string shadowPos = .data:0x00000250; // type:object size:0xC scope:local shadowTarget = .data:0x0000025C; // type:object size:0xC scope:local shadowUp = .data:0x00000268; // type:object size:0xC scope:local @@ -148,7 +148,7 @@ lbl_2_data_31E = .data:0x0000031E; // type:object size:0x8 playerCntMessTbl = .data:0x00000328; // type:object size:0x10 scope:local charPosTbl = .data:0x00000338; // type:object size:0x40 scope:local data:float charComSfxTbl = .data:0x00000378; // type:object size:0x20 scope:local -lbl_2_data_398 = .data:0x00000398; // type:object size:0x10 scope:local data:string +lbl_2_data_398 = .data:0x00000398; // type:object size:0xF scope:local data:string charSpriteTbl = .data:0x000003A8; // type:object size:0x20 scope:local cursorSpriteTbl = .data:0x000003C8; // type:object size:0x14 scope:local hiliteSprTbl = .data:0x000003DC; // type:object size:0x14 scope:local diff --git a/config/GMPE01_00/rels/m404Dll/symbols.txt b/config/GMPE01_00/rels/m404Dll/symbols.txt index 06571197..dd934235 100644 --- a/config/GMPE01_00/rels/m404Dll/symbols.txt +++ b/config/GMPE01_00/rels/m404Dll/symbols.txt @@ -113,7 +113,7 @@ lbl_1_data_77C = .data:0x0000077C; // type:object size:0xC data:float lbl_1_data_788 = .data:0x00000788; // type:object size:0x4 lbl_1_data_78C = .data:0x0000078C; // type:object size:0xC data:float lbl_1_data_798 = .data:0x00000798; // type:object size:0xC data:float -lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x24 scope:local data:string +lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x23 scope:local data:string lbl_1_data_7C8 = .data:0x000007C8; // type:object size:0x4 data:4byte jumptable_1_data_7CC = .data:0x000007CC; // type:object size:0x28 scope:local lbl_1_data_7F4 = .data:0x000007F4; // type:object size:0x1C scope:local data:string @@ -128,7 +128,7 @@ lbl_1_data_8D8 = .data:0x000008D8; // type:object size:0x10 data:float lbl_1_data_8E8 = .data:0x000008E8; // type:object size:0xC lbl_1_data_8F4 = .data:0x000008F4; // type:object size:0x8 data:2byte lbl_1_data_8FC = .data:0x000008FC; // type:object size:0x18 -lbl_1_data_914 = .data:0x00000914; // type:object size:0x1C scope:local data:string +lbl_1_data_914 = .data:0x00000914; // type:object size:0x19 scope:local data:string lbl_1_data_930 = .data:0x00000930; // type:object size:0x20 lbl_1_data_950 = .data:0x00000950; // type:object size:0x20 lbl_1_data_970 = .data:0x00000970; // type:object size:0x7 scope:local data:string diff --git a/config/GMPE01_00/rels/m406Dll/symbols.txt b/config/GMPE01_00/rels/m406Dll/symbols.txt index 5697d866..1287dc3c 100644 --- a/config/GMPE01_00/rels/m406Dll/symbols.txt +++ b/config/GMPE01_00/rels/m406Dll/symbols.txt @@ -340,7 +340,7 @@ lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data: lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x8C data:float -lbl_1_data_8C = .data:0x0000008C; // type:object size:0x24 scope:local data:string +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x23 scope:local data:string jumptable_1_data_B0 = .data:0x000000B0; // type:object size:0x40 scope:local lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x348 lbl_1_data_438 = .data:0x00000438; // type:object size:0x348 @@ -378,7 +378,7 @@ lbl_1_data_FF0 = .data:0x00000FF0; // type:object size:0x10 lbl_1_data_1000 = .data:0x00001000; // type:object size:0x19 scope:local data:string lbl_1_data_1019 = .data:0x00001019; // type:object size:0x19 scope:local data:string lbl_1_data_1032 = .data:0x00001032; // type:object size:0x1A scope:local data:string -lbl_1_data_104C = .data:0x0000104C; // type:object size:0x1C scope:local data:string +lbl_1_data_104C = .data:0x0000104C; // type:object size:0x1A scope:local data:string lbl_1_data_1068 = .data:0x00001068; // type:object size:0x10 lbl_1_data_1078 = .data:0x00001078; // type:object size:0x28 lbl_1_data_10A0 = .data:0x000010A0; // type:object size:0x80 data:4byte diff --git a/config/GMPE01_00/rels/m410Dll/symbols.txt b/config/GMPE01_00/rels/m410Dll/symbols.txt index 9403fd83..b0cd6c90 100644 --- a/config/GMPE01_00/rels/m410Dll/symbols.txt +++ b/config/GMPE01_00/rels/m410Dll/symbols.txt @@ -277,13 +277,13 @@ lbl_1_data_88 = .data:0x00000088; // type:object size:0x3C data:float lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x14 lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x2 data:2byte lbl_1_data_DC = .data:0x000000DC; // type:object size:0x20 -lbl_1_data_FC = .data:0x000000FC; // type:object size:0x8 scope:local data:string +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x7 scope:local data:string lbl_1_data_104 = .data:0x00000104; // type:object size:0xC lbl_1_data_110 = .data:0x00000110; // type:object size:0x4 data:4byte lbl_1_data_114 = .data:0x00000114; // type:object size:0x16 scope:local data:string -lbl_1_data_130 = .data:0x00000130; // type:object size:0x10 scope:local data:string +lbl_1_data_130 = .data:0x00000130; // type:object size:0xF scope:local data:string lbl_1_data_140 = .data:0x00000140; // type:object size:0x20 -lbl_1_data_160 = .data:0x00000160; // type:object size:0xC scope:local data:string +lbl_1_data_160 = .data:0x00000160; // type:object size:0xB scope:local data:string lbl_1_data_16C = .data:0x0000016C; // type:object size:0x20 lbl_1_data_18C = .data:0x0000018C; // type:object size:0x20 lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x28 diff --git a/config/GMPE01_00/rels/m412Dll/symbols.txt b/config/GMPE01_00/rels/m412Dll/symbols.txt index f6b625d3..95938828 100644 --- a/config/GMPE01_00/rels/m412Dll/symbols.txt +++ b/config/GMPE01_00/rels/m412Dll/symbols.txt @@ -160,7 +160,7 @@ lbl_1_data_284 = .data:0x00000284; // type:object size:0x14 scope:local data:str lbl_1_data_298 = .data:0x00000298; // type:object size:0x5C lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0xC scope:local data:string lbl_1_data_300 = .data:0x00000300; // type:object size:0x7 scope:local data:string -lbl_1_data_307 = .data:0x00000307; // type:object size:0x6 scope:local data:string +lbl_1_data_307 = .data:0x00000307; // type:object size:0x7 scope:local data:string lbl_1_data_310 = .data:0x00000310; // type:object size:0x30 lbl_1_data_340 = .data:0x00000340; // type:object size:0x8 lbl_1_data_348 = .data:0x00000348; // type:object size:0x18 diff --git a/config/GMPE01_00/rels/m420dll/symbols.txt b/config/GMPE01_00/rels/m420dll/symbols.txt index 365355d3..096cbad2 100644 --- a/config/GMPE01_00/rels/m420dll/symbols.txt +++ b/config/GMPE01_00/rels/m420dll/symbols.txt @@ -205,7 +205,7 @@ lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data: lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x1E scope:local data:string lbl_1_data_1E = .data:0x0000001E; // type:object size:0x1E scope:local data:string -lbl_1_data_3C = .data:0x0000003C; // type:object size:0x11 scope:local data:string +lbl_1_data_3C = .data:0x0000003C; // type:object size:0x10 scope:local data:string lbl_1_data_50 = .data:0x00000050; // type:object size:0x80 lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x1B scope:local data:string lbl_1_data_EC = .data:0x000000EC; // type:object size:0x30 diff --git a/config/GMPE01_00/rels/m432Dll/symbols.txt b/config/GMPE01_00/rels/m432Dll/symbols.txt index 4926357c..c01d6777 100644 --- a/config/GMPE01_00/rels/m432Dll/symbols.txt +++ b/config/GMPE01_00/rels/m432Dll/symbols.txt @@ -264,7 +264,7 @@ lbl_1_data_407 = .data:0x00000407; // type:object size:0xB scope:local data:stri lbl_1_data_412 = .data:0x00000412; // type:object size:0xB scope:local data:string lbl_1_data_41D = .data:0x0000041D; // type:object size:0xB scope:local data:string lbl_1_data_428 = .data:0x00000428; // type:object size:0xB scope:local data:string -lbl_1_data_433 = .data:0x00000433; // type:object size:0xD scope:local data:string +lbl_1_data_433 = .data:0x00000433; // type:object size:0xB scope:local data:string lbl_1_data_440 = .data:0x00000440; // type:object size:0x18 data:4byte lbl_1_data_458 = .data:0x00000458; // type:object size:0xB scope:local data:string lbl_1_data_463 = .data:0x00000463; // type:object size:0xB scope:local data:string @@ -275,7 +275,7 @@ lbl_1_data_48F = .data:0x0000048F; // type:object size:0xB scope:local data:stri lbl_1_data_49A = .data:0x0000049A; // type:object size:0xB scope:local data:string lbl_1_data_4A5 = .data:0x000004A5; // type:object size:0xB scope:local data:string lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0xB scope:local data:string -lbl_1_data_4BB = .data:0x000004BB; // type:object size:0xD scope:local data:string +lbl_1_data_4BB = .data:0x000004BB; // type:object size:0xB scope:local data:string lbl_1_data_4C8 = .data:0x000004C8; // type:object size:0x28 data:4byte lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x14 data:byte lbl_1_data_504 = .data:0x00000504; // type:object size:0x24 data:byte @@ -302,7 +302,7 @@ lbl_1_data_EA4 = .data:0x00000EA4; // type:object size:0xB scope:local data:stri lbl_1_data_EAF = .data:0x00000EAF; // type:object size:0xB scope:local data:string lbl_1_data_EBA = .data:0x00000EBA; // type:object size:0xB scope:local data:string lbl_1_data_EC5 = .data:0x00000EC5; // type:object size:0xB scope:local data:string -lbl_1_data_ED0 = .data:0x00000ED0; // type:object size:0xC scope:local data:string +lbl_1_data_ED0 = .data:0x00000ED0; // type:object size:0xB scope:local data:string lbl_1_data_EDC = .data:0x00000EDC; // type:object size:0x8B8 lbl_1_data_1794 = .data:0x00001794; // type:object size:0x20 lbl_1_data_17B4 = .data:0x000017B4; // type:object size:0x20 @@ -318,11 +318,11 @@ lbl_1_data_18BA = .data:0x000018BA; // type:object size:0x18 scope:local data:st lbl_1_data_18D2 = .data:0x000018D2; // type:object size:0xC scope:local data:string lbl_1_data_18DE = .data:0x000018DE; // type:object size:0x6 scope:local data:string lbl_1_data_18E4 = .data:0x000018E4; // type:object size:0x21 scope:local data:string -lbl_1_data_1905 = .data:0x00001905; // type:object size:0x1F scope:local data:string +lbl_1_data_1905 = .data:0x00001905; // type:object size:0x1D scope:local data:string jumptable_1_data_1924 = .data:0x00001924; // type:object size:0x1C scope:local jumptable_1_data_1940 = .data:0x00001940; // type:object size:0x44 scope:local lbl_1_data_1984 = .data:0x00001984; // type:object size:0xB scope:local data:string -lbl_1_data_198F = .data:0x0000198F; // type:object size:0x1D scope:local data:string +lbl_1_data_198F = .data:0x0000198F; // type:object size:0x1B scope:local data:string jumptable_1_data_19AC = .data:0x000019AC; // type:object size:0x28 scope:local lbl_1_data_19D4 = .data:0x000019D4; // type:object size:0x24 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x3F0 data:float diff --git a/config/GMPE01_00/rels/m438Dll/symbols.txt b/config/GMPE01_00/rels/m438Dll/symbols.txt index 8b3796d8..dfbd3109 100644 --- a/config/GMPE01_00/rels/m438Dll/symbols.txt +++ b/config/GMPE01_00/rels/m438Dll/symbols.txt @@ -381,7 +381,7 @@ lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC lbl_1_data_28 = .data:0x00000028; // type:object size:0xC lbl_1_data_34 = .data:0x00000034; // type:object size:0xC -lbl_1_data_40 = .data:0x00000040; // type:object size:0x24 data:string +lbl_1_data_40 = .data:0x00000040; // type:object size:0x23 data:string lbl_1_data_64 = .data:0x00000064; // type:object size:0x4 data:4byte lbl_1_data_68 = .data:0x00000068; // type:object size:0x420 lbl_1_data_488 = .data:0x00000488; // type:object size:0x2C diff --git a/config/GMPE01_00/rels/m440Dll/symbols.txt b/config/GMPE01_00/rels/m440Dll/symbols.txt index 1457a3b2..8cff0e70 100644 --- a/config/GMPE01_00/rels/m440Dll/symbols.txt +++ b/config/GMPE01_00/rels/m440Dll/symbols.txt @@ -247,7 +247,7 @@ lbl_1_data_104 = .data:0x00000104; // type:object size:0x2 data:2byte lbl_1_data_108 = .data:0x00000108; // type:object size:0x2 data:2byte lbl_1_data_10C = .data:0x0000010C; // type:object size:0x12 lbl_1_data_11E = .data:0x0000011E; // type:object size:0x13 scope:local data:string -lbl_1_data_131 = .data:0x00000131; // type:object size:0x18 scope:local data:string +lbl_1_data_131 = .data:0x00000131; // type:object size:0x17 scope:local data:string lbl_1_data_149 = .data:0x00000149; // type:object size:0x19 scope:local data:string lbl_1_data_162 = .data:0x00000162; // type:object size:0x1C scope:local data:string lbl_1_data_17E = .data:0x0000017E; // type:object size:0x10 scope:local data:string diff --git a/config/GMPE01_00/rels/m442Dll/symbols.txt b/config/GMPE01_00/rels/m442Dll/symbols.txt index c4f962cc..e5e664a3 100644 --- a/config/GMPE01_00/rels/m442Dll/symbols.txt +++ b/config/GMPE01_00/rels/m442Dll/symbols.txt @@ -167,14 +167,14 @@ lbl_1_data_60 = .data:0x00000060; // type:object size:0xC data:float lbl_1_data_6C = .data:0x0000006C; // type:object size:0x4 data:byte lbl_1_data_70 = .data:0x00000070; // type:object size:0xC data:float lbl_1_data_7C = .data:0x0000007C; // type:object size:0xC data:float -lbl_1_data_88 = .data:0x00000088; // type:object size:0x24 scope:local data:string +lbl_1_data_88 = .data:0x00000088; // type:object size:0x23 scope:local data:string lbl_1_data_AC = .data:0x000000AC; // type:object size:0x4 data:4byte jumptable_1_data_B0 = .data:0x000000B0; // type:object size:0x30 scope:local lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x1C scope:local data:string lbl_1_data_FC = .data:0x000000FC; // type:object size:0x1C data:4byte lbl_1_data_118 = .data:0x00000118; // type:object size:0x8 data:4byte lbl_1_data_120 = .data:0x00000120; // type:object size:0x30 data:float -lbl_1_data_150 = .data:0x00000150; // type:object size:0x1A scope:local data:string +lbl_1_data_150 = .data:0x00000150; // type:object size:0x19 scope:local data:string lbl_1_data_16A = .data:0x0000016A; // type:object size:0x20 data:2byte lbl_1_data_18A = .data:0x0000018A; // type:object size:0x14 data:2byte lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0xC data:4byte diff --git a/config/GMPE01_00/rels/m443Dll/symbols.txt b/config/GMPE01_00/rels/m443Dll/symbols.txt index 66c15dad..ed466311 100644 --- a/config/GMPE01_00/rels/m443Dll/symbols.txt +++ b/config/GMPE01_00/rels/m443Dll/symbols.txt @@ -307,7 +307,7 @@ lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x30 lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x5 scope:local data:string lbl_1_data_3F9 = .data:0x000003F9; // type:object size:0x7 scope:local data:string lbl_1_data_400 = .data:0x00000400; // type:object size:0x7 scope:local data:string -lbl_1_data_407 = .data:0x00000407; // type:object size:0x9 scope:local data:string +lbl_1_data_407 = .data:0x00000407; // type:object size:0x7 scope:local data:string lbl_1_data_410 = .data:0x00000410; // type:object size:0x58 lbl_1_data_468 = .data:0x00000468; // type:object size:0x20 lbl_1_data_488 = .data:0x00000488; // type:object size:0x58 diff --git a/config/GMPE01_00/rels/m446dll/symbols.txt b/config/GMPE01_00/rels/m446dll/symbols.txt index e9879dc0..b1e4494c 100644 --- a/config/GMPE01_00/rels/m446dll/symbols.txt +++ b/config/GMPE01_00/rels/m446dll/symbols.txt @@ -260,22 +260,22 @@ lbl_1_data_150 = .data:0x00000150; // type:object size:0xC lbl_1_data_15C = .data:0x0000015C; // type:object size:0x20 scope:local jumptable_1_data_17C = .data:0x0000017C; // type:object size:0x2C scope:local lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x1F scope:local data:string -lbl_1_data_1C7 = .data:0x000001C7; // type:object size:0x1F scope:local data:string +lbl_1_data_1C7 = .data:0x000001C7; // type:object size:0x1E scope:local data:string lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x1E scope:local data:string -lbl_1_data_206 = .data:0x00000206; // type:object size:0x22 scope:local data:string +lbl_1_data_206 = .data:0x00000206; // type:object size:0x1E scope:local data:string lbl_1_data_228 = .data:0x00000228; // type:object size:0x24 lbl_1_data_24C = .data:0x0000024C; // type:object size:0x90 lbl_1_data_2DC = .data:0x000002DC; // type:object size:0x14 lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x1F scope:local data:string lbl_1_data_30F = .data:0x0000030F; // type:object size:0x1F scope:local data:string -lbl_1_data_32E = .data:0x0000032E; // type:object size:0x22 scope:local data:string +lbl_1_data_32E = .data:0x0000032E; // type:object size:0x1F scope:local data:string jumptable_1_data_350 = .data:0x00000350; // type:object size:0x1C scope:local lbl_1_data_370 = .data:0x00000370; // type:object size:0xC data:float lbl_1_data_37C = .data:0x0000037C; // type:object size:0x1E scope:local data:string lbl_1_data_39A = .data:0x0000039A; // type:object size:0x1E scope:local data:string -lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x10 scope:local data:string +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0xE scope:local data:string lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x24 -lbl_1_data_3EC = .data:0x000003EC; // type:object size:0x24 scope:local data:string +lbl_1_data_3EC = .data:0x000003EC; // type:object size:0x1F scope:local data:string lbl_1_data_410 = .data:0x00000410; // type:object size:0x14 lbl_1_data_424 = .data:0x00000424; // type:object size:0x3C lbl_1_data_460 = .data:0x00000460; // type:object size:0x54 data:byte diff --git a/config/GMPE01_00/rels/m450Dll/symbols.txt b/config/GMPE01_00/rels/m450Dll/symbols.txt index 6adc8754..37af9137 100644 --- a/config/GMPE01_00/rels/m450Dll/symbols.txt +++ b/config/GMPE01_00/rels/m450Dll/symbols.txt @@ -367,7 +367,7 @@ lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x13 scope:local data:str lbl_1_data_2C9 = .data:0x000002C9; // type:object size:0x14 scope:local data:string lbl_1_data_2DD = .data:0x000002DD; // type:object size:0x1C scope:local data:string lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0x12 scope:local data:string -lbl_1_data_30B = .data:0x0000030B; // type:object size:0x11 scope:local data:string +lbl_1_data_30B = .data:0x0000030B; // type:object size:0xE scope:local data:string jumptable_1_data_31C = .data:0x0000031C; // type:object size:0x60 scope:local lbl_1_data_37C = .data:0x0000037C; // type:object size:0x12 scope:local data:string lbl_1_data_38E = .data:0x0000038E; // type:object size:0x12 scope:local data:string @@ -375,9 +375,9 @@ lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x13 scope:local data:str lbl_1_data_3B3 = .data:0x000003B3; // type:object size:0x14 scope:local data:string lbl_1_data_3C7 = .data:0x000003C7; // type:object size:0x14 scope:local data:string lbl_1_data_3DB = .data:0x000003DB; // type:object size:0x13 scope:local data:string -lbl_1_data_3EE = .data:0x000003EE; // type:object size:0x1E scope:local data:string +lbl_1_data_3EE = .data:0x000003EE; // type:object size:0x1C scope:local data:string jumptable_1_data_40C = .data:0x0000040C; // type:object size:0x44 scope:local -lbl_1_data_450 = .data:0x00000450; // type:object size:0x14 scope:local data:string +lbl_1_data_450 = .data:0x00000450; // type:object size:0x12 scope:local data:string lbl_1_data_464 = .data:0x00000464; // type:object size:0xC data:4byte lbl_1_data_470 = .data:0x00000470; // type:object size:0xC lbl_1_data_47C = .data:0x0000047C; // type:object size:0xC data:4byte @@ -411,7 +411,7 @@ lbl_1_data_9EC = .data:0x000009EC; // type:object size:0x20 lbl_1_data_A0C = .data:0x00000A0C; // type:object size:0x38 data:4byte lbl_1_data_A44 = .data:0x00000A44; // type:object size:0x13 scope:local data:string lbl_1_data_A57 = .data:0x00000A57; // type:object size:0x13 scope:local data:string -lbl_1_data_A6A = .data:0x00000A6A; // type:object size:0x16 scope:local data:string +lbl_1_data_A6A = .data:0x00000A6A; // type:object size:0x13 scope:local data:string lbl_1_data_A80 = .data:0x00000A80; // type:object size:0x18C lbl_1_data_C0C = .data:0x00000C0C; // type:object size:0x13 scope:local data:string lbl_1_data_C1F = .data:0x00000C1F; // type:object size:0x13 scope:local data:string @@ -422,7 +422,7 @@ lbl_1_data_E10 = .data:0x00000E10; // type:object size:0x11 scope:local data:str lbl_1_data_E21 = .data:0x00000E21; // type:object size:0x11 scope:local data:string lbl_1_data_E32 = .data:0x00000E32; // type:object size:0x11 scope:local data:string lbl_1_data_E43 = .data:0x00000E43; // type:object size:0x11 scope:local data:string -lbl_1_data_E54 = .data:0x00000E54; // type:object size:0x14 scope:local data:string +lbl_1_data_E54 = .data:0x00000E54; // type:object size:0x11 scope:local data:string lbl_1_data_E68 = .data:0x00000E68; // type:object size:0x14 lbl_1_data_E7C = .data:0x00000E7C; // type:object size:0x84 lbl_1_data_F00 = .data:0x00000F00; // type:object size:0x5C @@ -466,7 +466,7 @@ lbl_1_data_12FC = .data:0x000012FC; // type:object size:0x13 scope:local data:st lbl_1_data_130F = .data:0x0000130F; // type:object size:0x13 scope:local data:string lbl_1_data_1322 = .data:0x00001322; // type:object size:0x13 scope:local data:string lbl_1_data_1335 = .data:0x00001335; // type:object size:0x13 scope:local data:string -lbl_1_data_1348 = .data:0x00001348; // type:object size:0x14 scope:local data:string +lbl_1_data_1348 = .data:0x00001348; // type:object size:0x13 scope:local data:string lbl_1_data_135C = .data:0x0000135C; // type:object size:0x24 lbl_1_data_1380 = .data:0x00001380; // type:object size:0x38 data:4byte lbl_1_data_13B8 = .data:0x000013B8; // type:object size:0x38 data:4byte @@ -474,7 +474,7 @@ lbl_1_data_13F0 = .data:0x000013F0; // type:object size:0x13 scope:local data:st lbl_1_data_1403 = .data:0x00001403; // type:object size:0x13 scope:local data:string lbl_1_data_1416 = .data:0x00001416; // type:object size:0x13 scope:local data:string lbl_1_data_1429 = .data:0x00001429; // type:object size:0x13 scope:local data:string -lbl_1_data_143C = .data:0x0000143C; // type:object size:0x14 scope:local data:string +lbl_1_data_143C = .data:0x0000143C; // type:object size:0x13 scope:local data:string lbl_1_data_1450 = .data:0x00001450; // type:object size:0xB4 lbl_1_data_1504 = .data:0x00001504; // type:object size:0x50 lbl_1_data_1554 = .data:0x00001554; // type:object size:0x13 scope:local data:string @@ -491,7 +491,7 @@ lbl_1_data_161F = .data:0x0000161F; // type:object size:0xE scope:local data:str lbl_1_data_162D = .data:0x0000162D; // type:object size:0x6 scope:local data:string lbl_1_data_1633 = .data:0x00001633; // type:object size:0x1D scope:local data:string jumptable_1_data_1650 = .data:0x00001650; // type:object size:0x70 scope:local -lbl_1_data_16C0 = .data:0x000016C0; // type:object size:0x1C scope:local data:string +lbl_1_data_16C0 = .data:0x000016C0; // type:object size:0x1B scope:local data:string jumptable_1_data_16DC = .data:0x000016DC; // type:object size:0xC4 scope:local lbl_1_data_17A0 = .data:0x000017A0; // type:object size:0x24 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte diff --git a/config/GMPE01_00/rels/m453Dll/symbols.txt b/config/GMPE01_00/rels/m453Dll/symbols.txt index 518e286d..298e2fb6 100644 --- a/config/GMPE01_00/rels/m453Dll/symbols.txt +++ b/config/GMPE01_00/rels/m453Dll/symbols.txt @@ -213,7 +213,7 @@ lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte lbl_1_data_4 = .data:0x00000004; // type:object size:0xC lbl_1_data_10 = .data:0x00000010; // type:object size:0xC lbl_1_data_1C = .data:0x0000001C; // type:object size:0x28 -lbl_1_data_44 = .data:0x00000044; // type:object size:0x24 scope:local data:string +lbl_1_data_44 = .data:0x00000044; // type:object size:0x23 scope:local data:string lbl_1_data_68 = .data:0x00000068; // type:object size:0x24 data:4byte jumptable_1_data_8C = .data:0x0000008C; // type:object size:0x1C scope:local jumptable_1_data_A8 = .data:0x000000A8; // type:object size:0x1C scope:local diff --git a/config/GMPE01_00/rels/mentDll/symbols.txt b/config/GMPE01_00/rels/mentDll/symbols.txt index e29109dd..fe98fd1f 100644 --- a/config/GMPE01_00/rels/mentDll/symbols.txt +++ b/config/GMPE01_00/rels/mentDll/symbols.txt @@ -392,7 +392,7 @@ lbl_1_data_245 = .data:0x00000245; // type:object size:0x1D scope:local data:str lbl_1_data_262 = .data:0x00000262; // type:object size:0x14 scope:local data:string lbl_1_data_276 = .data:0x00000276; // type:object size:0x15 scope:local data:string lbl_1_data_28B = .data:0x0000028B; // type:object size:0x14 scope:local data:string -lbl_1_data_29F = .data:0x0000029F; // type:object size:0x15 scope:local data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x14 scope:local data:string lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3C lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x4 data:4byte lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20 scope:local data:string @@ -408,7 +408,7 @@ lbl_1_data_413 = .data:0x00000413; // type:object size:0x2B scope:local data:str lbl_1_data_43E = .data:0x0000043E; // type:object size:0x29 scope:local data:string lbl_1_data_467 = .data:0x00000467; // type:object size:0x2B scope:local data:string lbl_1_data_492 = .data:0x00000492; // type:object size:0x20 scope:local data:string -lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x22 scope:local data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x20 scope:local data:string jumptable_1_data_4D4 = .data:0x000004D4; // type:object size:0x54 scope:local lbl_1_data_528 = .data:0x00000528; // type:object size:0x1B scope:local data:string lbl_1_data_543 = .data:0x00000543; // type:object size:0x1A scope:local data:string diff --git a/config/GMPE01_00/rels/mpexDll/symbols.txt b/config/GMPE01_00/rels/mpexDll/symbols.txt index bc7d5ab0..d4725e33 100644 --- a/config/GMPE01_00/rels/mpexDll/symbols.txt +++ b/config/GMPE01_00/rels/mpexDll/symbols.txt @@ -395,14 +395,14 @@ lbl_1_data_232 = .data:0x00000232; // type:object size:0xE scope:local data:stri lbl_1_data_240 = .data:0x00000240; // type:object size:0x54 data:float lbl_1_data_294 = .data:0x00000294; // type:object size:0x4 data:4byte lbl_1_data_298 = .data:0x00000298; // type:object size:0x4 data:4byte -lbl_1_data_29C = .data:0x0000029C; // type:object size:0x18 scope:local data:string +lbl_1_data_29C = .data:0x0000029C; // type:object size:0x15 scope:local data:string lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x10 data:4byte lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x4 data:4byte lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x3 scope:local data:string lbl_1_data_2CB = .data:0x000002CB; // type:object size:0x5 scope:local data:string lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x19 scope:local data:string lbl_1_data_2E9 = .data:0x000002E9; // type:object size:0x12 scope:local data:string -lbl_1_data_2FB = .data:0x000002FB; // type:object size:0x29 scope:local data:string +lbl_1_data_2FB = .data:0x000002FB; // type:object size:0x28 scope:local data:string lbl_1_data_324 = .data:0x00000324; // type:object size:0x4 data:4byte lbl_1_data_328 = .data:0x00000328; // type:object size:0x4 data:4byte lbl_1_data_32C = .data:0x0000032C; // type:object size:0xC data:4byte @@ -410,7 +410,7 @@ lbl_1_data_338 = .data:0x00000338; // type:object size:0x2B scope:local data:str lbl_1_data_363 = .data:0x00000363; // type:object size:0x28 scope:local data:string lbl_1_data_38B = .data:0x0000038B; // type:object size:0x5 scope:local data:string lbl_1_data_390 = .data:0x00000390; // type:object size:0x4 scope:local data:string -lbl_1_data_394 = .data:0x00000394; // type:object size:0x4 scope:local data:string +lbl_1_data_394 = .data:0x00000394; // type:object size:0x3 scope:local data:string jumptable_1_data_398 = .data:0x00000398; // type:object size:0x2C scope:local lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x3C scope:local data:string lbl_1_data_400 = .data:0x00000400; // type:object size:0x16 scope:local data:string @@ -422,11 +422,11 @@ lbl_1_data_47B = .data:0x0000047B; // type:object size:0x16 scope:local data:str lbl_1_data_491 = .data:0x00000491; // type:object size:0x16 scope:local data:string lbl_1_data_4A7 = .data:0x000004A7; // type:object size:0x19 scope:local data:string lbl_1_data_4C0 = .data:0x000004C0; // type:object size:0x16 scope:local data:string -lbl_1_data_4D6 = .data:0x000004D6; // type:object size:0x42 scope:local data:string +lbl_1_data_4D6 = .data:0x000004D6; // type:object size:0x3B scope:local data:string lbl_1_data_518 = .data:0x00000518; // type:object size:0x3C scope:local data:string lbl_1_data_554 = .data:0x00000554; // type:object size:0x19 scope:local data:string lbl_1_data_56D = .data:0x0000056D; // type:object size:0x1A scope:local data:string -lbl_1_data_587 = .data:0x00000587; // type:object size:0x3D scope:local data:string +lbl_1_data_587 = .data:0x00000587; // type:object size:0x3A scope:local data:string lbl_1_data_5C4 = .data:0x000005C4; // type:object size:0x20 data:4byte lbl_1_data_5E4 = .data:0x000005E4; // type:object size:0x40 data:4byte lbl_1_data_624 = .data:0x00000624; // type:object size:0x70 diff --git a/config/GMPE01_00/rels/present/symbols.txt b/config/GMPE01_00/rels/present/symbols.txt index a5b07fdb..332b6bce 100644 --- a/config/GMPE01_00/rels/present/symbols.txt +++ b/config/GMPE01_00/rels/present/symbols.txt @@ -171,16 +171,16 @@ lbl_1_rodata_C48 = .rodata:0x00000C48; // type:object size:0x4 scope:local data: lbl_1_rodata_C4C = .rodata:0x00000C4C; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B scope:local data:string lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1B scope:local data:string -lbl_1_data_36 = .data:0x00000036; // type:object size:0x1A scope:local data:string +lbl_1_data_36 = .data:0x00000036; // type:object size:0x16 scope:local data:string lightTbl = .data:0x00000050; // type:object size:0x1C scope:local data:4byte execModeTbl = .data:0x0000006C; // type:object size:0x10 scope:local data:4byte -lbl_1_data_7C = .data:0x0000007C; // type:object size:0x8 scope:local data:string +lbl_1_data_7C = .data:0x0000007C; // type:object size:0x7 scope:local data:string roomIdxTbl2 = .data:0x00000084; // type:object size:0x20 jumptable_1_data_A4 = .data:0x000000A4; // type:object size:0x2C scope:local jumptable_1_data_D0 = .data:0x000000D0; // type:object size:0x1C scope:local shadowPosTbl = .data:0x000000F0; // type:object size:0x24 scope:local data:float lbl_1_data_114 = .data:0x00000114; // type:object size:0x2A scope:local data:string -lbl_1_data_13E = .data:0x0000013E; // type:object size:0x2E scope:local data:string +lbl_1_data_13E = .data:0x0000013E; // type:object size:0x2B scope:local data:string jumptable_1_data_16C = .data:0x0000016C; // type:object size:0x34 scope:local execModeTbl = .data:0x000001A0; // type:object size:0xC scope:local data:4byte scene = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte diff --git a/config/GMPE01_00/rels/w05Dll/symbols.txt b/config/GMPE01_00/rels/w05Dll/symbols.txt index 4f1ddabd..56c26c7c 100644 --- a/config/GMPE01_00/rels/w05Dll/symbols.txt +++ b/config/GMPE01_00/rels/w05Dll/symbols.txt @@ -287,7 +287,7 @@ lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x18 lbl_1_data_310 = .data:0x00000310; // type:object size:0x8 lbl_1_data_318 = .data:0x00000318; // type:object size:0x7 scope:local data:string lbl_1_data_31F = .data:0x0000031F; // type:object size:0x7 scope:local data:string -lbl_1_data_326 = .data:0x00000326; // type:object size:0xA scope:local data:string +lbl_1_data_326 = .data:0x00000326; // type:object size:0x7 scope:local data:string lbl_1_data_330 = .data:0x00000330; // type:object size:0xC lbl_1_data_33C = .data:0x0000033C; // type:object size:0x7 scope:local data:string lbl_1_data_343 = .data:0x00000343; // type:object size:0xD scope:local data:string @@ -302,7 +302,7 @@ lbl_1_data_470 = .data:0x00000470; // type:object size:0xC lbl_1_data_47C = .data:0x0000047C; // type:object size:0xC lbl_1_data_488 = .data:0x00000488; // type:object size:0x3 scope:local data:string lbl_1_data_48B = .data:0x0000048B; // type:object size:0x4 scope:local data:string -lbl_1_data_48F = .data:0x0000048F; // type:object size:0x5 scope:local data:string +lbl_1_data_48F = .data:0x0000048F; // type:object size:0x4 scope:local data:string lbl_1_data_494 = .data:0x00000494; // type:object size:0xC lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0xD scope:local data:string lbl_1_data_4AD = .data:0x000004AD; // type:object size:0x5 scope:local data:string diff --git a/config/GMPE01_00/rels/w10Dll/symbols.txt b/config/GMPE01_00/rels/w10Dll/symbols.txt index 89f2a634..f10220e4 100644 --- a/config/GMPE01_00/rels/w10Dll/symbols.txt +++ b/config/GMPE01_00/rels/w10Dll/symbols.txt @@ -98,7 +98,7 @@ lotteryHostMot = .data:0x00000064; // type:object size:0x8 scope:local booHouseHostMot = .data:0x0000006C; // type:object size:0x8 scope:local hostMot = .data:0x00000078; // type:object size:0x8 scope:local hostPosTbl = .data:0x00000080; // type:object size:0x18 scope:local data:float -lbl_1_data_98 = .data:0x00000098; // type:object size:0x2E scope:local data:string +lbl_1_data_98 = .data:0x00000098; // type:object size:0x2D scope:local data:string rollDataTbl = .data:0x000000C6; // type:object size:0x42 scope:local sceneTbl = .data:0x00000108; // type:object size:0x150 scope:local lbl_1_data_258 = .data:0x00000258; // type:object size:0x50 scope:local data:string diff --git a/config/GMPE01_00/rels/ztardll/symbols.txt b/config/GMPE01_00/rels/ztardll/symbols.txt index 05abe49e..f92691a8 100644 --- a/config/GMPE01_00/rels/ztardll/symbols.txt +++ b/config/GMPE01_00/rels/ztardll/symbols.txt @@ -219,7 +219,7 @@ lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x20 lbl_1_data_408 = .data:0x00000408; // type:object size:0x3C scope:local data:string lbl_1_data_444 = .data:0x00000444; // type:object size:0x19 scope:local data:string lbl_1_data_45D = .data:0x0000045D; // type:object size:0x1A scope:local data:string -lbl_1_data_477 = .data:0x00000477; // type:object size:0x3D scope:local data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x3A scope:local data:string lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x20 data:4byte lbl_1_data_4D4 = .data:0x000004D4; // type:object size:0x40 data:4byte lbl_1_data_514 = .data:0x00000514; // type:object size:0x70 diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 8b2b8d1b..3cb7cb54 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -3665,7 +3665,7 @@ T = .rodata:0x8011E950; // type:object size:0x68 scope:local data:double atanhi = .rodata:0x8011E9B8; // type:object size:0x20 scope:local atanlo = .rodata:0x8011E9D8; // type:object size:0x20 scope:local aT = .rodata:0x8011E9F8; // type:object size:0x58 scope:local -@62 = .rodata:0x8011EA50; // type:object size:0x1B scope:local data:string +@62 = .rodata:0x8011EA50; // type:object size:0x1C scope:local data:string lbl_8011EA70 = .rodata:0x8011EA70; // type:object size:0x20 gTRKMemMap = .rodata:0x8011EA90; // type:object size:0x10 data:4byte lbl_8011EAA0 = .rodata:0x8011EAA0; // type:object size:0x28 data:4byte @@ -3826,7 +3826,8 @@ DataDirStat = .data:0x8011F7C4; // type:object size:0x468 scope:local data:4byte lbl_8011FC2C = .data:0x8011FC2C; // type:object size:0x1D data:string lbl_8011FC49 = .data:0x8011FC49; // type:object size:0x1F data:string lbl_8011FC68 = .data:0x8011FC68; // type:object size:0x1D data:string -lbl_8011FC85 = .data:0x8011FC85; // type:object size:0x1F data:string +lbl_8011FC85 = .data:0x8011FC85; // type:object size:0x12 data:string +lbl_8011FC97 = .data:0x8011FC97; // type:object size:0xD data:string lbl_8011FCA4 = .data:0x8011FCA4; // type:object size:0x1A data:string lbl_8011FCBE = .data:0x8011FCBE; // type:object size:0x122 lbl_8011FDE0 = .data:0x8011FDE0; // type:object size:0x20 @@ -4328,12 +4329,47 @@ jumptable_8013B4D4 = .data:0x8013B4D4; // type:object size:0x20 scope:local jumptable_8013B4F4 = .data:0x8013B4F4; // type:object size:0x20 scope:local lbl_8013B518 = .data:0x8013B518; // type:object size:0x24 data:string lbl_8013B53C = .data:0x8013B53C; // type:object size:0x24 data:string -@84 = .data:0x8013B560; // type:object size:0x1E scope:local data:string -__OSExceptionLocations = .data:0x8013B648; // type:object size:0x3C +@82 = .data:0x8013B560; // type:object size:0x1E scope:local data:string +lbl_8013B580 = .data:0x8013B580; // type:object size:0x16 scope:local data:string +lbl_8013B598 = .data:0x8013B598; // type:object size:0xC scope:local data:string +lbl_8013B5A4 = .data:0x8013B5A4; // type:object size:0x9 scope:local data:string +lbl_8013B5B4 = .data:0x8013B5B0; // type:object size:0x10 scope:local data:string +lbl_8013B5C0 = .data:0x8013B5C0; // type:object size:0xB scope:local data:string +lbl_8013B5CC = .data:0x8013B5CC; // type:object size:0xE scope:local data:string +lbl_8013B5DC = .data:0x8013B5DC; // type:object size:0xD scope:local data:string +lbl_8013B5EC = .data:0x8013B5EC; // type:object size:0xD scope:local data:string +lbl_8013B5FC = .data:0x8013B5FC; // type:object size:0xD scope:local data:string +lbl_8013B60C = .data:0x8013B60C; // type:object size:0x12 scope:local data:string +lbl_8013B620 = .data:0x8013B620; // type:object size:0xE scope:local data:string +lbl_8013B630 = .data:0x8013B630; // type:object size:0x15 scope:local data:string +__OSExceptionLocations = .data:0x8013B648; // type:object size:0x3C scope:local lbl_8013B720 = .data:0x8013B720; // type:object size:0x398 DSPInitCode = .data:0x8013BAB8; // type:object size:0x80 scope:local @69 = .data:0x8013BB38; // type:object size:0x29 scope:local data:string -lbl_8013BD68 = .data:0x8013BD68; // type:object size:0x1B4 +lbl_8013BB64 = .data:0x8013BB64; // type:object size:0x18 scope:local data:string +lbl_8013BB7C = .data:0x8013BB7C; // type:object size:0x1B scope:local data:string +lbl_8013BB98 = .data:0x8013BB98; // type:object size:0x30 scope:local data:string +lbl_8013BBC8 = .data:0x8013BBC8; // type:object size:0x3C scope:local data:string +lbl_8013BC04 = .data:0x8013BC04; // type:object size:0x37 scope:local data:string +lbl_8013BC3D = .data:0x8013BC3D; // type:object size:0x3E scope:local data:string +lbl_8013BC7C = .data:0x8013BC7C; // type:object size:0x29 scope:local data:string +lbl_8013BCA8 = .data:0x8013BCA8; // type:object size:0x1D scope:local data:string +lbl_8013BCC8 = .data:0x8013BCC8; // type:object size:0x19 scope:local data:string +lbl_8013BCE4 = .data:0x8013BCE4; // type:object size:0x19 scope:local data:string +lbl_8013BD00 = .data:0x8013BD00; // type:object size:0x19 scope:local data:string +lbl_8013BD1C = .data:0x8013BD1C; // type:object size:0x16 scope:local data:string +lbl_8013BD34 = .data:0x8013BD34; // type:object size:0x2E scope:local data:string +lbl_8013BD68 = .data:0x8013BD68; // type:object size:0x44 scope:local data:string +lbl_8013BDAC = .data:0x8013BDAC; // type:object size:0x5F scope:local data:string +lbl_8013BE0C = .data:0x8013BE0C; // type:object size:0x2F scope:local data:string +lbl_8013BE3C = .data:0x8013BE3C; // type:object size:0x11 scope:local data:string +lbl_8013BE50 = .data:0x8013BE50; // type:object size:0x21 scope:local data:string +lbl_8013BE74 = .data:0x8013BE74; // type:object size:0x12 scope:local data:string +lbl_8013BE88 = .data:0x8013BE88; // type:object size:0x19 scope:local data:string +lbl_8013BEA4 = .data:0x8013BEA4; // type:object size:0x12 scope:local data:string +lbl_8013BEB8 = .data:0x8013BEB8; // type:object size:0x1D scope:local data:string +lbl_8013BED8 = .data:0x8013BED8; // type:object size:0x26 scope:local data:string +lbl_8013BF00 = .data:0x8013BF00; // type:object size:0x1C scope:local data:string @74 = .data:0x8013BF1C; // type:object size:0x23 scope:local data:string @10 = .data:0x8013BF40; // type:object size:0x16 scope:local data:string @43 = .data:0x8013C21C; // type:object size:0x40 scope:local @@ -4367,23 +4403,23 @@ lbl_8013C984 = .data:0x8013C984; // type:object size:0x29 scope:local data:strin lbl_8013C9B0 = .data:0x8013C9B0; // type:object size:0x29 scope:local data:string DEMOFontBitmap = .data:0x8013C9E0; // type:object size:0xC00 align:32 lbl_8013D5E0 = .data:0x8013D5E0; // type:object size:0xC scope:local data:string -lbl_8013D5EC = .data:0x8013D5EC; // type:object size:0x28 scope:local data:string +lbl_8013D5EC = .data:0x8013D5EC; // type:object size:0x26 scope:local data:string jumptable_8013D614 = .data:0x8013D614; // type:object size:0x28 scope:local jumptable_8013D698 = .data:0x8013D698; // type:object size:0x28 scope:local jumptable_8013D6C0 = .data:0x8013D6C0; // type:object size:0x28 scope:local jumptable_8013D6E8 = .data:0x8013D6E8; // type:object size:0x28 scope:local jumptable_8013D710 = .data:0x8013D710; // type:object size:0x28 scope:local ResetFunctionInfo = .data:0x8013D738; // type:object size:0x10 -lbl_8013D748 = .data:0x8013D748; // type:object size:0x20 scope:local data:string +lbl_8013D748 = .data:0x8013D748; // type:object size:0x1E scope:local data:string lbl_8013D768 = .data:0x8013D768; // type:object size:0xC scope:local data:string -lbl_8013D774 = .data:0x8013D774; // type:object size:0xC scope:local data:string -lbl_8013D780 = .data:0x8013D780; // type:object size:0x20 scope:local data:string -lbl_8013D7A0 = .data:0x8013D7A0; // type:object size:0x30 scope:local data:string -lbl_8013D7D0 = .data:0x8013D7D0; // type:object size:0x30 scope:local data:string -lbl_8013D800 = .data:0x8013D800; // type:object size:0x30 scope:local data:string -lbl_8013D830 = .data:0x8013D830; // type:object size:0x30 scope:local data:string -lbl_8013D860 = .data:0x8013D860; // type:object size:0x30 scope:local data:string -lbl_8013D890 = .data:0x8013D890; // type:object size:0x30 scope:local data:string +lbl_8013D774 = .data:0x8013D774; // type:object size:0x9 scope:local data:string +lbl_8013D780 = .data:0x8013D780; // type:object size:0x1D scope:local data:string +lbl_8013D7A0 = .data:0x8013D7A0; // type:object size:0x2D scope:local data:string +lbl_8013D7D0 = .data:0x8013D7D0; // type:object size:0x2D scope:local data:string +lbl_8013D800 = .data:0x8013D800; // type:object size:0x2D scope:local data:string +lbl_8013D830 = .data:0x8013D830; // type:object size:0x2D scope:local data:string +lbl_8013D860 = .data:0x8013D860; // type:object size:0x2D scope:local data:string +lbl_8013D890 = .data:0x8013D890; // type:object size:0x2B scope:local data:string jumptable_8013D8C0 = .data:0x8013D8C0; // type:object size:0x68 scope:local jumptable_8013D928 = .data:0x8013D928; // type:object size:0x44 scope:local jumptable_8013D96C = .data:0x8013D96C; // type:object size:0x1C scope:local @@ -4408,7 +4444,7 @@ SectorSizeTable = .data:0x8013E060; // type:object size:0x20 scope:local LatencyTable = .data:0x8013E080; // type:object size:0x20 scope:local Si = .data:0x8013E0A0; // type:object size:0x14 scope:local data:4byte Type = .data:0x8013E0B4; // type:object size:0x10 scope:local -@464 = .data:0x8013E0C4; // type:object size:0x9 scope:local data:string +@464 = .data:0x8013E0C4; // type:object size:0xC scope:local data:string lbl_8013E0D0 = .data:0x8013E0D0; // type:object size:0xF scope:local data:string lbl_8013E0E0 = .data:0x8013E0E0; // type:object size:0xF scope:local data:string lbl_8013E0F0 = .data:0x8013E0F0; // type:object size:0xD scope:local data:string diff --git a/src/REL/E3setupDLL/mgselect.c b/src/REL/E3setupDLL/mgselect.c index 5dbd89eb..d87c662f 100644 --- a/src/REL/E3setupDLL/mgselect.c +++ b/src/REL/E3setupDLL/mgselect.c @@ -142,8 +142,6 @@ static float cursorYOfsTbl[] = { -100.0f, -50.0f, 0.0f, 50.0f, 100.0f }; static s32 mgPicTbl[] = { 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 }; -static char startText[] = "\013\016\r PRESS START"; - static void StartMGSelect(omObjData *object) { HuAudSeqPlay(0x2B); @@ -490,12 +488,12 @@ static void CreateMGInterface(omObjData *object) index = HuSprCreate(temp_r3_2, 0x271A, 0); HuSprGrpMemberSet(group, 0, index); index2++; - HuWinMesMaxSizeGet(1, sp8, &startText); + HuWinMesMaxSizeGet(1, sp8, "\013\016\r PRESS START"); index = HuWinCreate(340.0f, 362.0f, sp8[0], sp8[1], 0); unkStruct->unk_2C = index; HuWinMesColSet(index, 0); HuWinBGTPLvlSet(index, 0.0f); HuWinMesSpeedSet(index, 0); - HuWinMesSet(index, MAKE_MESSID_PTR(startText)); + HuWinMesSet(index, MAKE_MESSID_PTR("\013\016\r PRESS START")); object->func = UpdateMGInterface; } From 970da00ce2ce2696db14e872975f0212e6f42499 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 12 Nov 2024 19:16:59 +0100 Subject: [PATCH 128/311] Imported most of dolphin/os --- config/GMPE01_00/symbols.txt | 54 ++- configure.py | 44 +-- include/__ppc_eabi_linker.h | 79 ++++ include/dolphin/OSRtcPriv.h | 41 +- include/dolphin/os.h | 116 +++--- include/dolphin/os/OSAlloc.h | 17 +- include/dolphin/os/OSContext.h | 6 + include/dolphin/os/OSFont.h | 43 ++- include/dolphin/os/OSIC.h | 20 + include/dolphin/os/OSModule.h | 4 +- include/dolphin/os/OSPriv.h | 32 ++ src/dolphin/os/OS.c | 645 +++++++++++++++++++++++++++++++ src/dolphin/os/OSAlarm.c | 199 ++++++++++ src/dolphin/os/OSAlloc.c | 531 +++++++++++++++++++++++++ src/dolphin/os/OSArena.c | 53 +++ src/dolphin/os/OSAudioSystem.c | 118 ++++++ src/dolphin/os/OSCache.c | 450 +++++++++++++++++++++ src/dolphin/os/OSContext.c | 555 ++++++++++++++++++++++++++ src/dolphin/os/OSError.c | 115 ++++++ src/dolphin/os/OSFont.c | 323 ++++++++++++++++ src/dolphin/os/OSInterrupt.c | 434 +++++++++++++++++++++ src/dolphin/os/OSLink.c | 504 ++++++++++++++++++++++++ src/dolphin/os/OSMemory.c | 230 +++++++++++ src/dolphin/os/OSMessage.c | 91 +++++ src/dolphin/os/OSMutex.c | 244 ++++++++++++ src/dolphin/os/OSReboot.c | 94 +++++ src/dolphin/os/OSReset.c | 203 ++++++++++ src/dolphin/os/OSResetSW.c | 89 +++++ src/dolphin/os/OSRtc.c | 363 +++++++++++++++++ src/dolphin/os/OSStopwatch.c | 61 +++ src/dolphin/os/OSSync.c | 29 ++ src/dolphin/os/OSThread.c | 552 ++++++++++++++++++++++++++ src/dolphin/os/OSTime.c | 146 +++++++ src/dolphin/os/__ppc_eabi_init.c | 76 ++++ src/dolphin/os/__start.c | 161 ++++++++ 35 files changed, 6591 insertions(+), 131 deletions(-) create mode 100644 include/__ppc_eabi_linker.h create mode 100644 include/dolphin/os/OSIC.h create mode 100644 src/dolphin/os/OS.c create mode 100644 src/dolphin/os/OSAlarm.c create mode 100644 src/dolphin/os/OSAlloc.c create mode 100644 src/dolphin/os/OSArena.c create mode 100644 src/dolphin/os/OSAudioSystem.c create mode 100644 src/dolphin/os/OSCache.c create mode 100644 src/dolphin/os/OSContext.c create mode 100644 src/dolphin/os/OSError.c create mode 100644 src/dolphin/os/OSFont.c create mode 100644 src/dolphin/os/OSInterrupt.c create mode 100644 src/dolphin/os/OSLink.c create mode 100644 src/dolphin/os/OSMemory.c create mode 100644 src/dolphin/os/OSMessage.c create mode 100644 src/dolphin/os/OSMutex.c create mode 100644 src/dolphin/os/OSReboot.c create mode 100644 src/dolphin/os/OSReset.c create mode 100644 src/dolphin/os/OSResetSW.c create mode 100644 src/dolphin/os/OSRtc.c create mode 100644 src/dolphin/os/OSStopwatch.c create mode 100644 src/dolphin/os/OSSync.c create mode 100644 src/dolphin/os/OSThread.c create mode 100644 src/dolphin/os/OSTime.c create mode 100644 src/dolphin/os/__ppc_eabi_init.c create mode 100644 src/dolphin/os/__start.c diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 3cb7cb54..144dc6c3 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -2102,6 +2102,8 @@ OSSetErrorHandler = .text:0x800B6FC8; // type:function size:0x1C scope:global __OSUnhandledException = .text:0x800B6FE4; // type:function size:0x200 scope:global OSGetFontEncode = .text:0x800B71E4; // type:function size:0x58 OSDisableInterrupts = .text:0x800B723C; // type:function size:0x14 scope:global +__RAS_OSDisableInterrupts_begin = .text:0x800B723C; // type:label scope:global +__RAS_OSDisableInterrupts_end = .text:0x800B724C; // type:label scope:global OSEnableInterrupts = .text:0x800B7250; // type:function size:0x14 scope:global OSRestoreInterrupts = .text:0x800B7264; // type:function size:0x24 scope:global __OSSetInterruptHandler = .text:0x800B7288; // type:function size:0x1C scope:global @@ -4343,7 +4345,25 @@ lbl_8013B60C = .data:0x8013B60C; // type:object size:0x12 scope:local data:strin lbl_8013B620 = .data:0x8013B620; // type:object size:0xE scope:local data:string lbl_8013B630 = .data:0x8013B630; // type:object size:0x15 scope:local data:string __OSExceptionLocations = .data:0x8013B648; // type:object size:0x3C scope:local -lbl_8013B720 = .data:0x8013B720; // type:object size:0x398 +lbl_8013B720 = .data:0x8013B720; // type:object size:0x24 scope:local data:string +lbl_8013B744 = .data:0x8013B744; // type:object size:0x37 scope:local data:string +lbl_8013B77C = .data:0x8013B77C; // type:object size:0x28 scope:local data:string +lbl_8013B7A4 = .data:0x8013B7A4; // type:object size:0x4F scope:local data:string +lbl_8013B7F4 = .data:0x8013B7F4; // type:object size:0x3E scope:local data:string +lbl_8013B834 = .data:0x8013B834; // type:object size:0x37 scope:local data:string +lbl_8013B86C = .data:0x8013B86C; // type:object size:0x49 scope:local data:string +lbl_8013B8B8 = .data:0x8013B8B8; // type:object size:0x33 scope:local data:string +lbl_8013B8EC = .data:0x8013B8EC; // type:object size:0x3D scope:local data:string +lbl_8013B92C = .data:0x8013B92C; // type:object size:0x39 scope:local data:string +lbl_8013B968 = .data:0x8013B968; // type:object size:0x45 scope:local data:string +lbl_8013B9B0 = .data:0x8013B9B0; // type:object size:0x5F scope:local data:string +lbl_8013BA10 = .data:0x8013BA10; // type:object size:0x2C scope:local data:string +lbl_8013BA3C = .data:0x8013BA3C; // type:object size:0x12 scope:local data:string +lbl_8013BA50 = .data:0x8013BA50; // type:object size:0x12 scope:local data:string +lbl_8013BA64 = .data:0x8013BA64; // type:object size:0x1A scope:local data:string +lbl_8013BA80 = .data:0x8013BA80; // type:object size:0x13 scope:local data:string +lbl_8013BA94 = .data:0x8013BA94; // type:object size:0x10 scope:local data:string +lbl_8013BAA4 = .data:0x8013BAA4; // type:object size:0xE scope:local data:string DSPInitCode = .data:0x8013BAB8; // type:object size:0x80 scope:local @69 = .data:0x8013BB38; // type:object size:0x29 scope:local data:string lbl_8013BB64 = .data:0x8013BB64; // type:object size:0x18 scope:local data:string @@ -4360,7 +4380,8 @@ lbl_8013BD00 = .data:0x8013BD00; // type:object size:0x19 scope:local data:strin lbl_8013BD1C = .data:0x8013BD1C; // type:object size:0x16 scope:local data:string lbl_8013BD34 = .data:0x8013BD34; // type:object size:0x2E scope:local data:string lbl_8013BD68 = .data:0x8013BD68; // type:object size:0x44 scope:local data:string -lbl_8013BDAC = .data:0x8013BDAC; // type:object size:0x5F scope:local data:string +lbl_8013BDAC = .data:0x8013BDAC; // type:object size:0x30 scope:local data:string +lbl_8013BDDC = .data:0x8013BDDC; // type:object size:0x2F scope:local data:string lbl_8013BE0C = .data:0x8013BE0C; // type:object size:0x2F scope:local data:string lbl_8013BE3C = .data:0x8013BE3C; // type:object size:0x11 scope:local data:string lbl_8013BE50 = .data:0x8013BE50; // type:object size:0x21 scope:local data:string @@ -4370,14 +4391,33 @@ lbl_8013BEA4 = .data:0x8013BEA4; // type:object size:0x12 scope:local data:strin lbl_8013BEB8 = .data:0x8013BEB8; // type:object size:0x1D scope:local data:string lbl_8013BED8 = .data:0x8013BED8; // type:object size:0x26 scope:local data:string lbl_8013BF00 = .data:0x8013BF00; // type:object size:0x1C scope:local data:string -@74 = .data:0x8013BF1C; // type:object size:0x23 scope:local data:string +@76 = .data:0x8013BF1C; // type:object size:0x23 scope:local data:string @10 = .data:0x8013BF40; // type:object size:0x16 scope:local data:string -@43 = .data:0x8013C21C; // type:object size:0x40 scope:local +lbl_8013BF58 = .data:0x8013BF58; // type:object size:0x26 scope:local data:string +lbl_8013BF80 = .data:0x8013BF80; // type:object size:0x1C scope:local data:string +lbl_8013BF9C = .data:0x8013BF9C; // type:object size:0x1D scope:local data:string +lbl_8013BFBC = .data:0x8013BFBC; // type:object size:0x17 scope:local data:string +lbl_8013BFD4 = .data:0x8013BFD4; // type:object size:0x31 scope:local data:string +lbl_8013C008 = .data:0x8013C008; // type:object size:0x10 scope:local data:string +lbl_8013C018 = .data:0x8013C018; // type:object size:0x60 scope:local data:string +lbl_8013C078 = .data:0x8013C078; // type:object size:0x4C scope:local data:string +lbl_8013C0C4 = .data:0x8013C0C4; // type:object size:0x62 scope:local data:string +lbl_8013C128 = .data:0x8013C128; // type:object size:0x60 scope:local data:string +lbl_8013C188 = .data:0x8013C188; // type:object size:0x1F scope:local data:string +lbl_8013C1A8 = .data:0x8013C1A8; // type:object size:0x1F scope:local data:string +lbl_8013C1C8 = .data:0x8013C1C8; // type:object size:0x1B scope:local data:string +lbl_8013C1E4 = .data:0x8013C1E4; // type:object size:0x35 scope:local data:string +@87 = .data:0x8013C21C; // type:object size:0x40 scope:local InterruptPrioTable = .data:0x8013C260; // type:object size:0x2C scope:local data:4byte -lbl_8013C290 = .data:0x8013C290; // type:object size:0x28 -lbl_8013C2B8 = .data:0x8013C2B8; // type:object size:0x28 +lbl_8013C290 = .data:0x8013C290; // type:object size:0x25 scope:local data:string +lbl_8013C2B8 = .data:0x8013C2B8; // type:object size:0x27 scope:local data:string ResetFunctionInfo = .data:0x8013C2E0; // type:object size:0x10 scope:local -lbl_8013C2F0 = .data:0x8013C2F0; // type:object size:0x78 +lbl_8013C2F0 = .data:0x8013C2F0; // type:object size:0x12 scope:local data:string +lbl_8013C304 = .data:0x8013C304; // type:object size:0x11 scope:local data:string +lbl_8013C318 = .data:0x8013C318; // type:object size:0xD scope:local data:string +lbl_8013C328 = .data:0x8013C328; // type:object size:0x11 scope:local data:string +lbl_8013C33C = .data:0x8013C33C; // type:object size:0x11 scope:local data:string +lbl_8013C350 = .data:0x8013C350; // type:object size:0x11 scope:local data:string YearDays = .data:0x8013C368; // type:object size:0x30 scope:local LeapYearDays = .data:0x8013C398; // type:object size:0x30 scope:local lbl_8013C3C8 = .data:0x8013C3C8; // type:object size:0x18 scope:local data:string diff --git a/configure.py b/configure.py index 5e8750df..52215c30 100644 --- a/configure.py +++ b/configure.py @@ -458,30 +458,30 @@ config.libs = [ DolphinLib( "os", [ - Object(NonMatching, "dolphin/os/OS.c"), - Object(NonMatching, "dolphin/os/OSAlarm.c"), + Object(Matching, "dolphin/os/OS.c"), + Object(Matching, "dolphin/os/OSAlarm.c"), Object(NonMatching, "dolphin/os/OSAlloc.c"), - Object(NonMatching, "dolphin/os/OSArena.c"), - Object(NonMatching, "dolphin/os/OSAudioSystem.c"), - Object(NonMatching, "dolphin/os/OSCache.c"), - Object(NonMatching, "dolphin/os/OSContext.c"), - Object(NonMatching, "dolphin/os/OSError.c"), - Object(NonMatching, "dolphin/os/OSFont.c"), - Object(NonMatching, "dolphin/os/OSInterrupt.c"), - Object(NonMatching, "dolphin/os/OSLink.c"), - Object(NonMatching, "dolphin/os/OSMessage.c"), - Object(NonMatching, "dolphin/os/OSMemory.c"), - Object(NonMatching, "dolphin/os/OSMutex.c"), + Object(Matching, "dolphin/os/OSArena.c"), + Object(Matching, "dolphin/os/OSAudioSystem.c"), + Object(Matching, "dolphin/os/OSCache.c"), + Object(Matching, "dolphin/os/OSContext.c"), + Object(Matching, "dolphin/os/OSError.c"), + Object(Matching, "dolphin/os/OSFont.c"), + Object(Matching, "dolphin/os/OSInterrupt.c"), + Object(Matching, "dolphin/os/OSLink.c"), + Object(Matching, "dolphin/os/OSMessage.c"), + Object(Matching, "dolphin/os/OSMemory.c"), + Object(Matching, "dolphin/os/OSMutex.c"), Object(NonMatching, "dolphin/os/OSReboot.c"), - Object(NonMatching, "dolphin/os/OSReset.c"), - Object(NonMatching, "dolphin/os/OSResetSW.c"), - Object(NonMatching, "dolphin/os/OSRtc.c"), - Object(NonMatching, "dolphin/os/OSStopwatch.c"), - Object(NonMatching, "dolphin/os/OSSync.c"), - Object(NonMatching, "dolphin/os/OSThread.c"), - Object(NonMatching, "dolphin/os/OSTime.c"), - Object(NonMatching, "dolphin/os/__start.c"), - Object(NonMatching, "dolphin/os/__ppc_eabi_init.c"), + Object(Matching, "dolphin/os/OSReset.c"), + Object(Matching, "dolphin/os/OSResetSW.c"), + Object(Matching, "dolphin/os/OSRtc.c"), + Object(Matching, "dolphin/os/OSStopwatch.c"), + Object(Matching, "dolphin/os/OSSync.c"), + Object(Matching, "dolphin/os/OSThread.c"), + Object(Matching, "dolphin/os/OSTime.c"), + Object(Matching, "dolphin/os/__start.c"), + Object(Matching, "dolphin/os/__ppc_eabi_init.c"), ], ), DolphinLib( diff --git a/include/__ppc_eabi_linker.h b/include/__ppc_eabi_linker.h new file mode 100644 index 00000000..2fddd9c9 --- /dev/null +++ b/include/__ppc_eabi_linker.h @@ -0,0 +1,79 @@ +#ifndef __PPC_EABI_LINKER +#define __PPC_EABI_LINKER + +#ifdef __MWERKS__ +#define DECL_SECTION(name) __declspec(section name) +#else +#define DECL_SECTION(name) +#endif + +DECL_SECTION(".init") extern char _stack_addr[]; +DECL_SECTION(".init") extern char _stack_end[]; +DECL_SECTION(".init") extern char _heap_addr[]; +DECL_SECTION(".init") extern char _heap_end[]; +DECL_SECTION(".init") extern const char _fextabindex_rom[]; +DECL_SECTION(".init") extern char _fextabindex[]; +DECL_SECTION(".init") extern char _eextabindex[]; + +DECL_SECTION(".init") extern char _SDA_BASE_[]; + +DECL_SECTION(".init") extern char _SDA2_BASE_[]; + +typedef struct __rom_copy_info { + char* rom; + char* addr; + unsigned int size; +} __rom_copy_info; + +DECL_SECTION(".init") extern __rom_copy_info _rom_copy_info[]; + +typedef struct __bss_init_info { + char* addr; + unsigned int size; +} __bss_init_info; + +DECL_SECTION(".init") extern __bss_init_info _bss_init_info[]; + +typedef struct __eti_init_info { + void* eti_start; + void* eti_end; + void* code_start; + unsigned long code_size; +} __eti_init_info; + +DECL_SECTION(".init") extern __eti_init_info _eti_init_info[]; +DECL_SECTION(".init") extern const char _f_init_rom[]; +DECL_SECTION(".init") extern char _f_init[]; +DECL_SECTION(".init") extern char _e_init[]; +DECL_SECTION(".init") extern const char _f_text_rom[]; +DECL_SECTION(".init") extern char _f_text[]; +DECL_SECTION(".init") extern char _e_text[]; +DECL_SECTION(".init") extern const char _f_rodata_rom[]; +DECL_SECTION(".init") extern char _f_rodata[]; +DECL_SECTION(".init") extern char _e_rodata[]; +DECL_SECTION(".init") extern const char _fextab_rom[]; +DECL_SECTION(".init") extern char _fextab[]; +DECL_SECTION(".init") extern char _eextab[]; +DECL_SECTION(".init") extern const char _f_data_rom[]; +DECL_SECTION(".init") extern char _f_data[]; +DECL_SECTION(".init") extern char _e_data[]; +DECL_SECTION(".init") extern char _f_bss[]; +DECL_SECTION(".init") extern char _e_bss[]; +DECL_SECTION(".init") extern const char _f_sdata_rom[]; +DECL_SECTION(".init") extern char _f_sdata[]; +DECL_SECTION(".init") extern char _e_sdata[]; +DECL_SECTION(".init") extern char _f_sbss[]; +DECL_SECTION(".init") extern char _e_sbss[]; +DECL_SECTION(".init") extern const char _f_sdata2_rom[]; +DECL_SECTION(".init") extern char _f_sdata2[]; +DECL_SECTION(".init") extern char _e_sdata2[]; +DECL_SECTION(".init") extern char _f_sbss2[]; +DECL_SECTION(".init") extern char _e_sbss2[]; +DECL_SECTION(".init") extern const char _f_PPC_EMB_sdata0_rom[]; +DECL_SECTION(".init") extern char _f_PPC_EMB_sdata0[]; +DECL_SECTION(".init") extern char _e_PPC_EMB_sdata0[]; +DECL_SECTION(".init") extern char _f_PPC_EMB_sbss0[]; +DECL_SECTION(".init") extern char _e_PPC_EMB_sbss0[]; + + +#endif // __PPC_EABI_LINKER diff --git a/include/dolphin/OSRtcPriv.h b/include/dolphin/OSRtcPriv.h index 949c71e7..fe1df144 100644 --- a/include/dolphin/OSRtcPriv.h +++ b/include/dolphin/OSRtcPriv.h @@ -4,30 +4,33 @@ #include typedef struct OSSram { - u16 checkSum; - u16 checkSumInv; - u32 ead0; - u32 ead1; - u32 counterBias; - s8 displayOffsetH; - u8 ntd; - u8 language; - u8 flags; + u16 checkSum; + u16 checkSumInv; + u32 ead0; + u32 ead1; + u32 counterBias; + s8 displayOffsetH; + u8 ntd; + u8 language; + u8 flags; } OSSram; typedef struct OSSramEx { - u8 flashID[2][12]; - u32 wirelessKeyboardID; - u16 wirelessPadID[4]; - u8 dvdErrorCode; - u8 _padding0; - u8 flashIDCheckSum[2]; - u16 gbs; - u8 _padding1[2]; + u8 flashID[2][12]; + u32 wirelessKeyboardID; + u16 wirelessPadID[4]; + u8 dvdErrorCode; + u8 _padding0; + u8 flashIDCheckSum[2]; + u16 gbs; + u8 _padding1[2]; } OSSramEx; -OSSram* __OSLockSram(); -OSSramEx* __OSLockSramEx(); +void __OSInitSram(); +OSSram *__OSLockSram(); +BOOL __OSSyncSram(); +BOOL __OSUnlockSram(BOOL commit); +OSSramEx *__OSLockSramEx(); void OSSetWirelessID(s32 chan, u16 id); u16 OSGetWirelessID(s32 chan); diff --git a/include/dolphin/os.h b/include/dolphin/os.h index 83f15519..6394de8b 100644 --- a/include/dolphin/os.h +++ b/include/dolphin/os.h @@ -23,26 +23,26 @@ extern "C" { #endif typedef s64 OSTime; typedef u32 OSTick; -u32 __OSBusClock AT_ADDRESS(OS_BASE_CACHED | 0x00F8); // sync with OSLoMem.h +u32 __OSBusClock AT_ADDRESS(OS_BASE_CACHED | 0x00F8); // sync with OSLoMem.h u32 __OSCoreClock AT_ADDRESS(OS_BASE_CACHED | 0x00FC); // sync with OSLoMem.h -#define OS_BUS_CLOCK (u32)__OSBusClock +#define OS_BUS_CLOCK (u32) __OSBusClock #define OS_CORE_CLOCK __OSCoreClock #define OS_TIMER_CLOCK (OS_BUS_CLOCK / 4) #ifndef _DEBUG -#define OSPhysicalToCached(paddr) ((void*)((u32)(paddr) + OS_BASE_CACHED)) -#define OSPhysicalToUncached(paddr) ((void*)((u32)(paddr) + OS_BASE_UNCACHED)) -#define OSCachedToPhysical(caddr) ((u32)((u8*)(caddr)-OS_BASE_CACHED)) -#define OSUncachedToPhysical(ucaddr) ((u32)((u8*)(ucaddr)-OS_BASE_UNCACHED)) -#define OSCachedToUncached(caddr) ((void*)((u8*)(caddr) + (OS_BASE_UNCACHED - OS_BASE_CACHED))) -#define OSUncachedToCached(ucaddr) ((void*)((u8*)(ucaddr) - (OS_BASE_UNCACHED - OS_BASE_CACHED))) +#define OSPhysicalToCached(paddr) ((void *)((u32)(paddr) + OS_BASE_CACHED)) +#define OSPhysicalToUncached(paddr) ((void *)((u32)(paddr) + OS_BASE_UNCACHED)) +#define OSCachedToPhysical(caddr) ((u32)((u8 *)(caddr)-OS_BASE_CACHED)) +#define OSUncachedToPhysical(ucaddr) ((u32)((u8 *)(ucaddr)-OS_BASE_UNCACHED)) +#define OSCachedToUncached(caddr) ((void *)((u8 *)(caddr) + (OS_BASE_UNCACHED - OS_BASE_CACHED))) +#define OSUncachedToCached(ucaddr) ((void *)((u8 *)(ucaddr) - (OS_BASE_UNCACHED - OS_BASE_CACHED))) #else -u32 OSPhysicalToCached(void* paddr); -u32 OSPhysicalToUncached(void* paddr); -u32 OSCachedToPhysical(void* caddr); -u32 OSUncachedToPhysical(void* ucaddr); -u32 OSCachedToUncached(void* caddr); -u32 OSUncachedToCached(void* ucaddr); +u32 OSPhysicalToCached(void *paddr); +u32 OSPhysicalToUncached(void *paddr); +u32 OSCachedToPhysical(void *caddr); +u32 OSUncachedToPhysical(void *ucaddr); +u32 OSCachedToUncached(void *caddr); +u32 OSUncachedToCached(void *ucaddr); #endif #define OSTicksToCycles(ticks) (((ticks) * ((OS_CORE_CLOCK * 2) / OS_TIMER_CLOCK)) / 2) @@ -50,7 +50,7 @@ u32 OSUncachedToCached(void* ucaddr); #define OSTicksToMilliseconds(ticks) ((ticks) / (OS_TIMER_CLOCK / 1000)) #define OSTicksToMicroseconds(ticks) (((ticks)*8) / (OS_TIMER_CLOCK / 125000)) #define OSTicksToNanoseconds(ticks) (((ticks)*8000) / (OS_TIMER_CLOCK / 125000)) -#define OSSecondsToTicks(sec) ((sec)*OS_TIMER_CLOCK) +#define OSSecondsToTicks(sec) ((sec)*OS_TIMER_CLOCK) #define OSMillisecondsToTicks(msec) ((msec) * (OS_TIMER_CLOCK / 1000)) #define OSMicrosecondsToTicks(usec) (((usec) * (OS_TIMER_CLOCK / 125000)) / 8) #define OSNanosecondsToTicks(nsec) (((nsec) * (OS_TIMER_CLOCK / 125000)) / 8000) @@ -60,52 +60,44 @@ u32 OSUncachedToCached(void* ucaddr); #define OSRoundUp32B(v) (((u32)(v + 31) & ~31)) #define OSRoundDown32B(x) (((u32)(x)) & ~31) -void* OSGetArenaHi(void); -void* OSGetArenaLo(void); -void OSSetArenaHi(void* newHi); -void OSSetArenaLo(void* newLo); - -void* OSAllocFromArenaLo(u32 size, u32 align); -void* OSAllocFromArenaHi(u32 size, u32 align); - void OSInit(); OSTime OSGetTime(); OSTick OSGetTick(); typedef struct OSCalendarTime { - int sec; // seconds after the minute [0, 61] - int min; // minutes after the hour [0, 59] - int hour; // hours since midnight [0, 23] - int mday; // day of the month [1, 31] - int mon; // month since January [0, 11] - int year; // years in AD [1, ...] - int wday; // days since Sunday [0, 6] - int yday; // days since January 1 [0, 365] + int sec; // seconds after the minute [0, 61] + int min; // minutes after the hour [0, 59] + int hour; // hours since midnight [0, 23] + int mday; // day of the month [1, 31] + int mon; // month since January [0, 11] + int year; // years in AD [1, ...] + int wday; // days since Sunday [0, 6] + int yday; // days since January 1 [0, 365] - int msec; // milliseconds after the second [0,999] - int usec; // microseconds after the millisecond [0,999] + int msec; // milliseconds after the second [0,999] + int usec; // microseconds after the millisecond [0,999] } OSCalendarTime; -OSTime OSCalendarTimeToTicks(OSCalendarTime* td); -void OSTicksToCalendarTime(OSTime ticks, OSCalendarTime* td); +OSTime OSCalendarTimeToTicks(OSCalendarTime *td); +void OSTicksToCalendarTime(OSTime ticks, OSCalendarTime *td); typedef struct OSStopwatch { - char* name; - OSTime total; - u32 hits; - OSTime min; - OSTime max; - OSTime last; - BOOL running; + char *name; + OSTime total; + u32 hits; + OSTime min; + OSTime max; + OSTime last; + BOOL running; } OSStopwatch; -void OSInitStopwatch(OSStopwatch* sw, char* name); -void OSStartStopwatch(OSStopwatch* sw); -void OSStopStopwatch(OSStopwatch* sw); -OSTime OSCheckStopwatch(OSStopwatch* sw); -void OSResetStopwatch(OSStopwatch* sw); -void OSDumpStopwatch(OSStopwatch* sw); +void OSInitStopwatch(OSStopwatch *sw, char *name); +void OSStartStopwatch(OSStopwatch *sw); +void OSStopStopwatch(OSStopwatch *sw); +OSTime OSCheckStopwatch(OSStopwatch *sw); +void OSResetStopwatch(OSStopwatch *sw); +void OSDumpStopwatch(OSStopwatch *sw); #define OS_CONSOLE_MASK 0xf0000000 #define OS_CONSOLE_RETAIL 0x00000000 @@ -159,7 +151,7 @@ void OSSetLanguage(u8 language); u32 OSGetEuRgb60Mode(void); void OSSetEuRgb60Mode(u32 on); -void OSRegisterVersion(const char* id); +void OSRegisterVersion(const char *id); BOOL OSDisableInterrupts(void); BOOL OSEnableInterrupts(void); @@ -174,8 +166,7 @@ BOOL OSRestoreInterrupts(BOOL level); #endif #ifndef ASSERTMSG -#if defined(__STDC_VERSION__) && (199901L <= __STDC_VERSION__) || defined(__MWERKS__) || \ - defined(__SN__) +#if defined(__STDC_VERSION__) && (199901L <= __STDC_VERSION__) || defined(__MWERKS__) || defined(__SN__) #define ASSERTMSG(exp, ...) (void)((exp) || (OSPanic(__FILE__, __LINE__, __VA_ARGS__), 0)) #else #define ASSERTMSG(exp, msg) (void)((exp) || (OSPanic(__FILE__, __LINE__, (msg)), 0)) @@ -183,23 +174,20 @@ BOOL OSRestoreInterrupts(BOOL level); #endif #ifndef ASSERTMSG1 -#define ASSERTMSG1(exp, msg, param1) \ - (void)((exp) || (OSPanic(__FILE__, __LINE__, (msg), (param1)), 0)) +#define ASSERTMSG1(exp, msg, param1) (void)((exp) || (OSPanic(__FILE__, __LINE__, (msg), (param1)), 0)) #endif #ifndef ASSERTMSG2 -#define ASSERTMSG2(exp, msg, param1, param2) \ - (void)((exp) || (OSPanic(__FILE__, __LINE__, (msg), (param1), (param2)), 0)) +#define ASSERTMSG2(exp, msg, param1, param2) (void)((exp) || (OSPanic(__FILE__, __LINE__, (msg), (param1), (param2)), 0)) #endif #ifndef ASSERTMSG3 -#define ASSERTMSG3(exp, msg, param1, param2, param3) \ - (void)((exp) || (OSPanic(__FILE__, __LINE__, (msg), (param1), (param2), (param3)), 0)) +#define ASSERTMSG3(exp, msg, param1, param2, param3) (void)((exp) || (OSPanic(__FILE__, __LINE__, (msg), (param1), (param2), (param3)), 0)) #endif #ifndef ASSERTMSG4 -#define ASSERTMSG4(exp, msg, param1, param2, param3, param4) \ - (void)((exp) || (OSPanic(__FILE__, __LINE__, (msg), (param1), (param2), (param3), (param4)), 0)) +#define ASSERTMSG4(exp, msg, param1, param2, param3, param4) \ + (void)((exp) || (OSPanic(__FILE__, __LINE__, (msg), (param1), (param2), (param3), (param4)), 0)) #endif #else // _DEBUG @@ -209,8 +197,7 @@ BOOL OSRestoreInterrupts(BOOL level); #endif #ifndef ASSERTMSG -#if defined(__STDC_VERSION__) && (199901L <= __STDC_VERSION__) || defined(__MWERKS__) || \ - defined(__SN__) +#if defined(__STDC_VERSION__) && (199901L <= __STDC_VERSION__) || defined(__MWERKS__) || defined(__SN__) #define ASSERTMSG(exp, ...) ((void)0) #else #define ASSERTMSG(exp, msg) ((void)0) @@ -232,9 +219,9 @@ BOOL OSRestoreInterrupts(BOOL level); #endif // _DEBUG -void OSReport(const char* msg, ...); -void OSPanic(const char* file, int line, const char* msg, ...); -void OSFatal(GXColor fg, GXColor bg, const char* msg); +void OSReport(const char *msg, ...); +void OSPanic(const char *file, int line, const char *msg, ...); +void OSFatal(GXColor fg, GXColor bg, const char *msg); u32 OSGetPhysicalMemSize(void); u32 OSGetConsoleSimulatedMemSize(void); @@ -253,6 +240,7 @@ u32 OSGetConsoleSimulatedMemSize(void); #include #include #include +#include #include #include #include diff --git a/include/dolphin/os/OSAlloc.h b/include/dolphin/os/OSAlloc.h index bbd90491..686dae2b 100644 --- a/include/dolphin/os/OSAlloc.h +++ b/include/dolphin/os/OSAlloc.h @@ -7,19 +7,18 @@ extern "C" { #endif typedef int OSHeapHandle; -typedef void (*OSAllocVisitor)(void* obj, u32 size); -void* OSInitAlloc(void* arenaStart, void* arenaEnd, int maxHeaps); -OSHeapHandle OSCreateHeap(void* start, void* end); +typedef void (*OSAllocVisitor)(void *obj, u32 size); +void *OSInitAlloc(void *arenaStart, void *arenaEnd, int maxHeaps); +OSHeapHandle OSCreateHeap(void *start, void *end); void OSDestroyHeap(OSHeapHandle heap); -void OSAddToHeap(OSHeapHandle heap, void* start, void* end); +void OSAddToHeap(OSHeapHandle heap, void *start, void *end); OSHeapHandle OSSetCurrentHeap(OSHeapHandle heap); -void* OSAllocFromHeap(OSHeapHandle heap, u32 size); -void* OSAllocFixed(void** rstart, void** rend); -void OSFreeToHeap(OSHeapHandle heap, void* ptr); +void *OSAllocFromHeap(OSHeapHandle heap, u32 size); +void *OSAllocFixed(void **rstart, void **rend); +void OSFreeToHeap(OSHeapHandle heap, void *ptr); long OSCheckHeap(OSHeapHandle heap); void OSDumpHeap(OSHeapHandle heap); -void *OSAllocFixed(void **rstart, void **rend); -u32 OSReferentSize(void* ptr); +u32 OSReferentSize(void *ptr); void OSVisitAllocated(OSAllocVisitor visitor); extern volatile OSHeapHandle __OSCurrHeap; #define OSAlloc(size) OSAllocFromHeap(__OSCurrHeap, (size)) diff --git a/include/dolphin/os/OSContext.h b/include/dolphin/os/OSContext.h index bbd0aaa1..b363a214 100644 --- a/include/dolphin/os/OSContext.h +++ b/include/dolphin/os/OSContext.h @@ -158,10 +158,16 @@ typedef struct OSContext { } OSContext; +u32 OSGetStackPointer(void); +void OSDumpContext(OSContext *context); u32 OSSaveContext(OSContext* context); +void OSLoadContext(OSContext* context); void OSClearContext(OSContext* context); OSContext* OSGetCurrentContext(); void OSSetCurrentContext(OSContext* context); +void OSSaveFPUContext(OSContext *fpuContext); +void OSInitContext(OSContext *context, u32 pc, u32 newsp); + #ifdef __cplusplus } diff --git a/include/dolphin/os/OSFont.h b/include/dolphin/os/OSFont.h index 99238bad..54cfec1b 100644 --- a/include/dolphin/os/OSFont.h +++ b/include/dolphin/os/OSFont.h @@ -9,17 +9,44 @@ extern "C" { #define OS_FONT_ENCODE_ANSI 0u #define OS_FONT_ENCODE_SJIS 1u -#define OS_FONT_ENCODE_UTF8 3u // UTF-8 [RFC 3629] -#define OS_FONT_ENCODE_UTF16 4u // UTF-16BE [RFC 2781] -#define OS_FONT_ENCODE_UTF32 5u // UTF-32 -#define OS_FONT_ENCODE_MAX 5u -#define OS_FONT_ENCODE_VOID 0xffffu +#define OS_FONT_SIZE_ANSI (288 + 131072) // 9 sheets +#define OS_FONT_SIZE_SJIS (3840 + 1179648) // 1 sheet +#define OS_FONT_ROM_SIZE_ANSI 0x03000 +#define OS_FONT_ROM_SIZE_SJIS 0x4D000 -#define OS_FONT_PROPORTIONAL FALSE -#define OS_FONT_FIXED TRUE +typedef struct OSFontHeader +{ + /*0x00*/ u16 fontType; + u16 firstChar; + u16 lastChar; + u16 invalChar; + /*0x08*/ u16 ascent; + u16 descent; + u16 width; + u16 leading; + /*0x10*/ u16 cellWidth; + u16 cellHeight; + /*0x14*/ u32 sheetSize; + /*0x18*/ u16 sheetFormat; + u16 sheetColumn; + u16 sheetRow; + u16 sheetWidth; + /*0x20*/ u16 sheetHeight; + u16 widthTable; + u32 sheetImage; + u32 sheetFullSize; + u8 c0; + u8 c1; + u8 c2; + u8 c3; +} OSFontHeader; u16 OSGetFontEncode(void); -u16 OSSetFontEncode(u16 encode); +BOOL OSInitFont(OSFontHeader *fontData); +u32 OSLoadFont(OSFontHeader *fontData, void *temp); +char *OSGetFontTexture(char *string, void **image, s32 *x, s32 *y, s32 *width); +char *OSGetFontWidth(char *string, s32 *width); +char *OSGetFontTexel(char *string, void *image, s32 pos, s32 stride, s32 *width); #ifdef __cplusplus } diff --git a/include/dolphin/os/OSIC.h b/include/dolphin/os/OSIC.h new file mode 100644 index 00000000..017d5a58 --- /dev/null +++ b/include/dolphin/os/OSIC.h @@ -0,0 +1,20 @@ +#ifndef _DOLPHIN_OSIC +#define _DOLPHIN_OSIC + +#ifdef __cplusplus +extern "C" { +#endif + +void ICFlashInvalidate(void); +void ICEnable(void); +void ICDisable(void); +void ICFreeze(void); +void ICUnfreeze(void); +void ICBlockInvalidate(void *addr); +void ICSync(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/dolphin/os/OSModule.h b/include/dolphin/os/OSModule.h index 7baf2a9f..e8cbe25b 100644 --- a/include/dolphin/os/OSModule.h +++ b/include/dolphin/os/OSModule.h @@ -105,8 +105,8 @@ BOOL OSUnlink(OSModuleInfo* oldModule); OSModuleInfo* OSSearchModule(void* ptr, u32* section, u32* offset); // debugger notification -void OSNotifyLink(OSModuleInfo* module); -void OSNotifyUnlink(OSModuleInfo* module); +void OSNotifyLink(void); +void OSNotifyUnlink(void); #ifdef __cplusplus } diff --git a/include/dolphin/os/OSPriv.h b/include/dolphin/os/OSPriv.h index 8b914f25..11eeec59 100644 --- a/include/dolphin/os/OSPriv.h +++ b/include/dolphin/os/OSPriv.h @@ -7,10 +7,42 @@ extern "C" { #endif +#define OFFSET(addr, align) (((u32)(addr) & ((align)-1))) + +// OSAudioSystem.c +void __OSInitAudioSystem(void); +void __OSStopAudioSystem(void); + +// OSCache.c +void __OSCacheInit(void); + +// OSContext.c +void __OSContextInit(void); + +// OSMutex.c +void __OSUnlockAllMutex(struct OSThread *thread); + +// OSInterrupt.c +extern void __RAS_OSDisableInterrupts_begin(void); +extern void __RAS_OSDisableInterrupts_end(void); +void __OSInterruptInit(void); +void __OSModuleInit(void); + +void __OSInitSystemCall(void); + +// OSThread.c +void __OSThreadInit(void); +void __OSReschedule(void); + +typedef void (*OSExceptionHandler)(__OSException, OSContext*); +OSExceptionHandler __OSSetExceptionHandler(__OSException exception, OSExceptionHandler handler); __OSExceptionHandler __OSGetExceptionHandler(__OSException exception); OSTime __OSGetSystemTime(); OSTime __OSTimeToSystemTime(OSTime); +// OSReboot +void __OSReboot(u32 resetCode, u32 bootDol); + #ifdef __cplusplus } #endif diff --git a/src/dolphin/os/OS.c b/src/dolphin/os/OS.c new file mode 100644 index 00000000..69843d73 --- /dev/null +++ b/src/dolphin/os/OS.c @@ -0,0 +1,645 @@ +#include <__ppc_eabi_linker.h> +#include +#include +#include +#include +#include +#include +#include +#include +#include + +extern OSTime __OSGetSystemTime(); +extern char _db_stack_end[]; + +#define OS_BI2_DEBUG_ADDRESS 0x800000F4 +#define DEBUGFLAG_ADDR 0x800030E8 +#define OS_DEBUG_ADDRESS_2 0x800030E9 +#define OS_CURRENTCONTEXT_PADDR 0x00C0 + +extern char *__OSResetSWInterruptHandler[]; + +vu16 __OSDeviceCode : (OS_BASE_CACHED | 0x30E6); +static DVDDriveInfo DriveInfo ATTRIBUTE_ALIGN(32); +static DVDCommandBlock DriveBlock; + +static OSBootInfo *BootInfo; +static u32 *BI2DebugFlag; +static u32 *BI2DebugFlagHolder; +__declspec(weak) BOOL __OSIsGcam = FALSE; +static f64 ZeroF; +static f32 ZeroPS[2]; +static BOOL AreWeInitialized = FALSE; +static __OSExceptionHandler *OSExceptionTable; +OSTime __OSStartTime; +BOOL __OSInIPL; + +extern u8 __ArenaHi[]; +extern u8 __ArenaLo[]; +extern u32 __DVDLongFileNameFlag; +extern u32 __PADSpec; + +#define OS_EXCEPTIONTABLE_ADDR 0x3000 +#define OS_DBJUMPPOINT_ADDR 0x60 +// memory locations for important stuff +#define OS_CACHED_REGION_PREFIX 0x8000 +#define OS_BI2_DEBUG_ADDRESS 0x800000F4 +#define OS_BI2_DEBUGFLAG_OFFSET 0xC +#define PAD3_BUTTON_ADDR 0x800030E4 +#define OS_DVD_DEVICECODE 0x800030E6 +#define DEBUGFLAG_ADDR 0x800030E8 +#define OS_DEBUG_ADDRESS_2 0x800030E9 +#define DB_EXCEPTIONRET_OFFSET 0xC +#define DB_EXCEPTIONDEST_OFFSET 0x8 + +void OSDefaultExceptionHandler(__OSException exception, OSContext *context); +extern BOOL __DBIsExceptionMarked(__OSException); +static void OSExceptionInit(void); + +/* clang-format off */ +asm void __OSFPRInit(void) +{ + nofralloc + + mfmsr r3 + ori r3, r3, 0x2000 + mtmsr r3 + + mfspr r3, 0x398 + rlwinm. r3, r3, 3, 31, 31 + beq SkipPairedSingles + + lis r3, ZeroPS@ha + addi r3, r3, ZeroPS@l + psq_l fp0, 0(r3), 0, 0 + ps_mr fp1, fp0 + ps_mr fp2, fp0 + ps_mr fp3, fp0 + ps_mr fp4, fp0 + ps_mr fp5, fp0 + ps_mr fp6, fp0 + ps_mr fp7, fp0 + ps_mr fp8, fp0 + ps_mr fp9, fp0 + ps_mr fp10, fp0 + ps_mr fp11, fp0 + ps_mr fp12, fp0 + ps_mr fp13, fp0 + ps_mr fp14, fp0 + ps_mr fp15, fp0 + ps_mr fp16, fp0 + ps_mr fp17, fp0 + ps_mr fp18, fp0 + ps_mr fp19, fp0 + ps_mr fp20, fp0 + ps_mr fp21, fp0 + ps_mr fp22, fp0 + ps_mr fp23, fp0 + ps_mr fp24, fp0 + ps_mr fp25, fp0 + ps_mr fp26, fp0 + ps_mr fp27, fp0 + ps_mr fp28, fp0 + ps_mr fp29, fp0 + ps_mr fp30, fp0 + ps_mr fp31, fp0 + +SkipPairedSingles: + lfd fp0, ZeroF + fmr fp1, fp0 + fmr fp2, fp0 + fmr fp3, fp0 + fmr fp4, fp0 + fmr fp5, fp0 + fmr fp6, fp0 + fmr fp7, fp0 + fmr fp8, fp0 + fmr fp9, fp0 + fmr fp10, fp0 + fmr fp11, fp0 + fmr fp12, fp0 + fmr fp13, fp0 + fmr fp14, fp0 + fmr fp15, fp0 + fmr fp16, fp0 + fmr fp17, fp0 + fmr fp18, fp0 + fmr fp19, fp0 + fmr fp20, fp0 + fmr fp21, fp0 + fmr fp22, fp0 + fmr fp23, fp0 + fmr fp24, fp0 + fmr fp25, fp0 + fmr fp26, fp0 + fmr fp27, fp0 + fmr fp28, fp0 + fmr fp29, fp0 + fmr fp30, fp0 + fmr fp31, fp0 + + mtfsf 0xFF, fp0 + + blr +} +/* clang-format on */ + +u32 OSGetConsoleType() +{ + if (BootInfo == NULL || BootInfo->consoleType == 0) { + return OS_CONSOLE_ARTHUR; + } + return BootInfo->consoleType; +} + +void *__OSSavedRegionStart; +void *__OSSavedRegionEnd; + +extern u32 BOOT_REGION_START : 0x812FDFF0; //(*(u32 *)0x812fdff0) +extern u32 BOOT_REGION_END : 0x812FDFEC; //(*(u32 *)0x812fdfec) + +void ClearArena(void) +{ + if ((u32)(OSGetResetCode() + 0x80000000) != 0U) { + __OSSavedRegionStart = 0U; + __OSSavedRegionEnd = 0U; + memset(OSGetArenaLo(), 0U, (u32)OSGetArenaHi() - (u32)OSGetArenaLo()); + return; + } + __OSSavedRegionStart = (void *)BOOT_REGION_START; + __OSSavedRegionEnd = (void *)BOOT_REGION_END; + if (BOOT_REGION_START == 0U) { + memset(OSGetArenaLo(), 0U, (u32)OSGetArenaHi() - (u32)OSGetArenaLo()); + return; + } + + if ((u32)OSGetArenaLo() < (u32)__OSSavedRegionStart) { + if ((u32)OSGetArenaHi() <= (u32)__OSSavedRegionStart) { + memset((u32)OSGetArenaLo(), 0U, (u32)OSGetArenaHi() - (u32)OSGetArenaLo()); + return; + } + memset(OSGetArenaLo(), 0U, (u32)__OSSavedRegionStart - (u32)OSGetArenaLo()); + if ((u32)OSGetArenaHi() > (u32)__OSSavedRegionEnd) { + memset((u32)__OSSavedRegionEnd, 0, (u32)OSGetArenaHi() - (u32)__OSSavedRegionEnd); + } + } +} + +static void InquiryCallback(s32 result, DVDCommandBlock *block) +{ + switch (block->state) { + case 0: + __OSDeviceCode = (u16)(0x8000 | DriveInfo.deviceCode); + break; + default: + __OSDeviceCode = 1; + break; + } +} + +void OSInit(void) +{ + /* + Initializes the Dolphin operating system. + - most of the main operations get farmed out to other functions + - loading debug info and setting up heap bounds largely happen here + - a lot of OS reporting also gets controlled here + */ + // pretty sure this is the min(/max) amount of pointers etc for the stack to match + BI2Debug *DebugInfo; + void *debugArenaLo; + u32 inputConsoleType; + + // check if we've already done all this or not + if ((BOOL)AreWeInitialized == FALSE) { // fantastic name + AreWeInitialized = TRUE; // flag to make sure we don't have to do this again + + // SYSTEM // + __OSStartTime = __OSGetSystemTime(); + OSDisableInterrupts(); + + // set some PPC things + PPCDisableSpeculation(); + PPCSetFpNonIEEEMode(); + + // DEBUG // + // load some DVD stuff + BI2DebugFlag = 0; // debug flag from the DVD BI2 header + BootInfo = (OSBootInfo *)OS_BASE_CACHED; // set pointer to BootInfo + + __DVDLongFileNameFlag = (u32)0; // flag to tell us whether we make it through the debug loading + + // time to grab a bunch of debug info from the DVD + // the address for where the BI2 debug info is, is stored at OS_BI2_DEBUG_ADDRESS + DebugInfo = (BI2Debug *)*((u32 *)OS_BI2_DEBUG_ADDRESS); + + // if the debug info address exists, grab some debug info + if (DebugInfo != NULL) { + BI2DebugFlag = &DebugInfo->debugFlag; // debug flag from DVD BI2 + __PADSpec = (u32)DebugInfo->padSpec; // some other info from DVD BI2 + *((u8 *)DEBUGFLAG_ADDR) = (u8)*BI2DebugFlag; // store flag in mem + *((u8 *)OS_DEBUG_ADDRESS_2) = (u8)__PADSpec; // store other info in mem + } + else if (BootInfo->arenaHi) { // if the top of the heap is already set + BI2DebugFlagHolder = (u32 *)*((u8 *)DEBUGFLAG_ADDR); // grab whatever's stored at 0x800030E8 + BI2DebugFlag = (u32 *)&BI2DebugFlagHolder; // flag is then address of flag holder + __PADSpec = (u32) * ((u8 *)OS_DEBUG_ADDRESS_2); // pad spec is whatever's at 0x800030E9 + } + + __DVDLongFileNameFlag = 1; // we made it through debug! + + // HEAP // + // set up bottom of heap (ArenaLo) + // grab address from BootInfo if it exists, otherwise use default __ArenaLo + OSSetArenaLo((BootInfo->arenaLo == NULL) ? __ArenaLo : BootInfo->arenaLo); + + // if the input arenaLo is null, and debug flag location exists (and flag is < 2), + // set arenaLo to just past the end of the db stack + if ((BootInfo->arenaLo == NULL) && (BI2DebugFlag != 0) && (*BI2DebugFlag < 2)) { + debugArenaLo = (char *)(((u32)_stack_addr + 0x1f) & ~0x1f); + OSSetArenaLo(debugArenaLo); + } + + // set up top of heap (ArenaHi) + // grab address from BootInfo if it exists, otherwise use default __ArenaHi + OSSetArenaHi((BootInfo->arenaHi == NULL) ? __ArenaHi : BootInfo->arenaHi); + + // OS INIT AND REPORT // + // initialise a whole bunch of OS stuff + OSExceptionInit(); + __OSInitSystemCall(); + OSInitAlarm(); + __OSModuleInit(); + __OSInterruptInit(); + __OSSetInterruptHandler(__OS_INTERRUPT_PI_RSW, (void *)__OSResetSWInterruptHandler); + __OSContextInit(); + __OSCacheInit(); + EXIInit(); + SIInit(); + __OSInitSram(); + __OSThreadInit(); + __OSInitAudioSystem(); + PPCMthid2(PPCMfhid2() & 0xBFFFFFFF); + if ((BootInfo->consoleType & OS_CONSOLE_DEVELOPMENT) != 0) { + BootInfo->consoleType = OS_CONSOLE_DEVHW1; + } + else { + BootInfo->consoleType = OS_CONSOLE_RETAIL1; + } + BootInfo->consoleType += (__PIRegs[11] & 0xF0000000) >> 28; + if ((BOOL)__OSInIPL == FALSE) { + __OSInitMemoryProtection(); + } + + // begin OS reporting + OSReport("\nDolphin OS $Revision: 54 $.\n"); + OSReport("Kernel built : %s %s\n", "Jun 5 2002", "02:09:12"); + OSReport("Console Type : "); + + // this is a function in the same file, but it doesn't seem to match + // inputConsoleType = OSGetConsoleType(); + + // inputConsoleType = (BootInfo == NULL || (inputConsoleType = BootInfo->consoleType) == 0) ? + // 0x10000002 : BootInfo->consoleType; + if (BootInfo == NULL || (inputConsoleType = BootInfo->consoleType) == 0) { + inputConsoleType = OS_CONSOLE_ARTHUR; // default console type + } + else { + inputConsoleType = BootInfo->consoleType; + } + + // work out what console type this corresponds to and report it + // consoleTypeSwitchHi = inputConsoleType & 0xF0000000; + inputConsoleType = OSGetConsoleType(); + if ((inputConsoleType & 0x10000000) == OS_CONSOLE_RETAIL) { // check "first" byte + OSReport("Retail %d\n", inputConsoleType); + } + else { + switch (inputConsoleType) { // if "first" byte is 2, check "the rest" + case OS_CONSOLE_EMULATOR: + OSReport("Mac Emulator\n"); + break; + case OS_CONSOLE_PC_EMULATOR: + OSReport("PC Emulator\n"); + break; + case OS_CONSOLE_ARTHUR: + OSReport("EPPC Arthur\n"); + break; + case OS_CONSOLE_MINNOW: + OSReport("EPPC Minnow\n"); + break; + default: + OSReport("Development HW%d\n", ((u32)inputConsoleType - 0x10000000) - 3); + break; + } + } + + // report memory size + OSReport("Memory %d MB\n", (u32)BootInfo->memorySize >> 0x14U); + // report heap bounds + OSReport("Arena : 0x%x - 0x%x\n", OSGetArenaLo(), OSGetArenaHi()); + // report OS version + + // if location of debug flag exists, and flag is >= 2, enable MetroTRKInterrupts + if (BI2DebugFlag && ((*BI2DebugFlag) >= 2)) { + EnableMetroTRKInterrupts(); + } + + // free up memory and re-enable things + ClearArena(); + OSEnableInterrupts(); + + // check if we can load OS from IPL; if not, grab it from DVD (?) + if ((BOOL)__OSInIPL == FALSE) { + DVDInit(); + if ((BOOL)__OSIsGcam) { + __OSDeviceCode = 0x9000; + return; + } + DCInvalidateRange(&DriveInfo, sizeof(DriveInfo)); + DVDInquiryAsync((char *)&DriveBlock, &DriveInfo, InquiryCallback); + } + } +} + +static u32 __OSExceptionLocations[] = { + 0x00000100, + 0x00000200, + 0x00000300, + 0x00000400, + 0x00000500, + 0x00000600, + 0x00000700, + 0x00000800, + 0x00000900, + 0x00000C00, + 0x00000D00, + 0x00000F00, + 0x00001300, + 0x00001400, + 0x00001700, +}; + +// dummy entry points to the OS Exception vector +void __OSEVStart(void); +void __OSEVEnd(void); +void __OSEVSetNumber(void); +void __OSExceptionVector(void); + +void __DBVECTOR(void); +void __OSDBINTSTART(void); +void __OSDBINTEND(void); +void __OSDBJUMPSTART(void); +void __OSDBJUMPEND(void); + +#define NOP 0x60000000 + +__OSExceptionHandler __OSSetExceptionHandler(__OSException exception, __OSExceptionHandler handler); + +static void OSExceptionInit(void) +{ + __OSException exception; + void *destAddr; + + // These two vars help us change the exception number embedded + // in the exception handler code. + u32 *opCodeAddr; + u32 oldOpCode; + + // Address range of the actual code to be copied. + u8 *handlerStart; + u32 handlerSize; + + // Install the first level exception vector. + opCodeAddr = (u32 *)__OSEVSetNumber; + oldOpCode = *opCodeAddr; + handlerStart = (u8 *)__OSEVStart; + handlerSize = (u32)((u8 *)__OSEVEnd - (u8 *)__OSEVStart); + + // Install the DB integrator, only if we are the first OSInit to be run + destAddr = (void *)OSPhysicalToCached(OS_DBJUMPPOINT_ADDR); + if (*(u32 *)destAddr == 0) // Lomem should be zero cleared only once by BS2 + { + DBPrintf("Installing OSDBIntegrator\n"); + memcpy(destAddr, (void *)__OSDBINTSTART, (u32)__OSDBINTEND - (u32)__OSDBINTSTART); + DCFlushRangeNoSync(destAddr, (u32)__OSDBINTEND - (u32)__OSDBINTSTART); + __sync(); + ICInvalidateRange(destAddr, (u32)__OSDBINTEND - (u32)__OSDBINTSTART); + } + + // Copy the right vector into the table + for (exception = 0; exception < 15; exception++) { + if (BI2DebugFlag && (*BI2DebugFlag >= 2) && __DBIsExceptionMarked(exception)) { + // this DBPrintf is suspicious. + DBPrintf(">>> OSINIT: exception %d commandeered by TRK\n", exception); + continue; + } + + // Modify the copy of code in text before transferring + // to the exception table. + *opCodeAddr = oldOpCode | exception; + + // Modify opcodes at __DBVECTOR if necessary + if (__DBIsExceptionMarked(exception)) { + DBPrintf(">>> OSINIT: exception %d vectored to debugger\n", exception); + memcpy((void *)__DBVECTOR, (void *)__OSDBINTEND, (u32)__OSDBJUMPEND - (u32)__OSDBINTEND); + } + else { + // make sure the opcodes are still nop + u32 *ops = (u32 *)__DBVECTOR; + int cb; + + for (cb = 0; cb < (u32)__OSDBJUMPEND - (u32)__OSDBINTEND; cb += sizeof(u32)) { + *ops++ = NOP; + } + } + + // Install the modified handler. + destAddr = (void *)OSPhysicalToCached(__OSExceptionLocations[(u32)exception]); + memcpy(destAddr, handlerStart, handlerSize); + DCFlushRangeNoSync(destAddr, handlerSize); + __sync(); + ICInvalidateRange(destAddr, handlerSize); + } + + // initialize pointer to exception table + OSExceptionTable = OSPhysicalToCached(OS_EXCEPTIONTABLE_ADDR); + + // install default exception handlers + for (exception = 0; exception < 15; exception++) { + __OSSetExceptionHandler(exception, OSDefaultExceptionHandler); + } + + // restore the old opcode, so that we can re-start an application without + // downloading the text segments + *opCodeAddr = oldOpCode; + + DBPrintf("Exceptions initialized...\n"); +} + +static asm void __OSDBIntegrator(void) +{ + /* clang-format off */ + nofralloc +entry __OSDBINTSTART + li r5, OS_DBINTERFACE_ADDR + mflr r3 + stw r3, DB_EXCEPTIONRET_OFFSET(r5) + lwz r3, DB_EXCEPTIONDEST_OFFSET(r5) + oris r3, r3, OS_CACHED_REGION_PREFIX + mtlr r3 + li r3, 0x30 // MSR_IR | MSR_DR // turn on memory addressing + mtmsr r3 + blr +entry __OSDBINTEND + /* clang-format on */ +} + +static asm void __OSDBJump(void) { + /* clang-format off */ + + nofralloc +entry __OSDBJUMPSTART + bla OS_DBJUMPPOINT_ADDR +entry __OSDBJUMPEND + /* clang-format on */ + +} + +__OSExceptionHandler __OSSetExceptionHandler(__OSException exception, __OSExceptionHandler handler) +{ + __OSExceptionHandler oldHandler; + oldHandler = OSExceptionTable[exception]; + OSExceptionTable[exception] = handler; + return oldHandler; +} + +__OSExceptionHandler __OSGetExceptionHandler(__OSException exception) +{ + return OSExceptionTable[exception]; +} + +static asm void OSExceptionVector(void) +{ + /* clang-format off */ + nofralloc + +entry __OSEVStart + // Save r4 into SPRG0 + mtsprg 0, r4 + + // Load current context physical address into r4 + lwz r4, OS_CURRENTCONTEXT_PADDR + + // Save r3 - r5 into the current context + stw r3, OS_CONTEXT_R3(r4) + mfsprg r3, 0 + stw r3, OS_CONTEXT_R4(r4) + stw r5, OS_CONTEXT_R5(r4) + + lhz r3, OS_CONTEXT_STATE(r4) + ori r3, r3, OS_CONTEXT_STATE_EXC + sth r3, OS_CONTEXT_STATE(r4) + + // Save misc registers + mfcr r3 + stw r3, OS_CONTEXT_CR(r4) + mflr r3 + stw r3, OS_CONTEXT_LR(r4) + mfctr r3 + stw r3, OS_CONTEXT_CTR(r4) + mfxer r3 + stw r3, OS_CONTEXT_XER(r4) + mfsrr0 r3 + stw r3, OS_CONTEXT_SRR0(r4) + mfsrr1 r3 + stw r3, OS_CONTEXT_SRR1(r4) + mr r5, r3 + +entry __DBVECTOR + nop + + // Set SRR1[IR|DR] to turn on address + // translation at the next RFI + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + + // This lets us change the exception number based on the + // exception we're installing. +entry __OSEVSetNumber + addi r3, 0, 0x0000 + + // Load current context virtual address into r4 + lwz r4, 0xD4 + + // Check non-recoverable interrupt + rlwinm. r5, r5, 0, MSR_RI_BIT, MSR_RI_BIT + bne recoverable + addis r5, 0, OSDefaultExceptionHandler@ha + addi r5, r5, OSDefaultExceptionHandler@l + mtsrr0 r5 + rfi + // NOT REACHED HERE + +recoverable: + // Locate exception handler. + rlwinm r5, r3, 2, 22, 29 // r5 contains exception*4 + lwz r5, OS_EXCEPTIONTABLE_ADDR(r5) + mtsrr0 r5 + + // Final state + // r3 - exception number + // r4 - pointer to context + // r5 - garbage + // srr0 - exception handler + // srr1 - address translation enalbed, not yet recoverable + + rfi + // NOT REACHED HERE + // The handler will restore state + +entry __OSEVEnd + nop + /* clang-format on */ +} + +void __OSUnhandledException(__OSException exception, OSContext *context, u32 dsisr, u32 dar); +asm void OSDefaultExceptionHandler(register __OSException exception, register OSContext *context) +{ + /* clang-format off */ + nofralloc + OS_EXCEPTION_SAVE_GPRS(context) + mfdsisr r5 + mfdar r6 + + stwu r1,-8(r1) + b __OSUnhandledException + /* clang-foramt on */ +} + +void __OSPSInit(void) +{ + PPCMthid2(PPCMfhid2() | 0xA0000000); + ICFlashInvalidate(); + __sync(); + // clang-format off + asm + { + li r3, 0 + mtspr GQR0, r3 + } + // clang-format on +} + +#define DI_CONFIG_IDX 0x9 +#define DI_CONFIG_CONFIG_MASK 0xFF +u32 __OSGetDIConfig(void) +{ + return (__DIRegs[DI_CONFIG_IDX] & DI_CONFIG_CONFIG_MASK); +} + +void OSRegisterVersion(const char *id) +{ + OSReport("%s\n", id); +} diff --git a/src/dolphin/os/OSAlarm.c b/src/dolphin/os/OSAlarm.c new file mode 100644 index 00000000..7c3f0e97 --- /dev/null +++ b/src/dolphin/os/OSAlarm.c @@ -0,0 +1,199 @@ +#include +#include + +#include + +static struct OSAlarmQueue { + OSAlarm *head; + OSAlarm *tail; +} AlarmQueue; + +static void DecrementerExceptionHandler(__OSException exception, OSContext *context); +static BOOL OnReset(BOOL final); + +void OSInitAlarm(void) +{ + if (__OSGetExceptionHandler(8) != DecrementerExceptionHandler) { + AlarmQueue.head = AlarmQueue.tail = NULL; + __OSSetExceptionHandler(8, DecrementerExceptionHandler); + } +} + +void OSCreateAlarm(OSAlarm *alarm) +{ + alarm->handler = 0; +} + +static void SetTimer(OSAlarm *alarm) +{ + OSTime delta; + + delta = alarm->fire - __OSGetSystemTime(); + if (delta < 0) { + PPCMtdec(0); + } + else if (delta < 0x80000000) { + PPCMtdec((u32)delta); + } + else { + PPCMtdec(0x7fffffff); + } +} + +static void InsertAlarm(OSAlarm *alarm, OSTime fire, OSAlarmHandler handler) +{ + OSAlarm *next; + OSAlarm *prev; + + if (0 < alarm->period) { + OSTime time = __OSGetSystemTime(); + + fire = alarm->start; + if (alarm->start < time) { + fire += alarm->period * ((time - alarm->start) / alarm->period + 1); + } + } + + alarm->handler = handler; + alarm->fire = fire; + + for (next = AlarmQueue.head; next; next = next->next) { + if (next->fire <= fire) { + continue; + } + + alarm->prev = next->prev; + next->prev = alarm; + alarm->next = next; + prev = alarm->prev; + if (prev) { + prev->next = alarm; + } + else { + AlarmQueue.head = alarm; + SetTimer(alarm); + } + return; + } + alarm->next = 0; + prev = AlarmQueue.tail; + AlarmQueue.tail = alarm; + alarm->prev = prev; + if (prev) { + prev->next = alarm; + } + else { + AlarmQueue.head = AlarmQueue.tail = alarm; + SetTimer(alarm); + } +} + +void OSSetAlarm(OSAlarm *alarm, OSTime tick, OSAlarmHandler handler) +{ + BOOL enabled; + enabled = OSDisableInterrupts(); + alarm->period = 0; + InsertAlarm(alarm, __OSGetSystemTime() + tick, handler); + OSRestoreInterrupts(enabled); +} + +void OSSetPeriodicAlarm(OSAlarm *alarm, OSTime start, OSTime period, OSAlarmHandler handler) +{ + BOOL enabled; + enabled = OSDisableInterrupts(); + alarm->period = period; + alarm->start = __OSTimeToSystemTime(start); + InsertAlarm(alarm, 0, handler); + OSRestoreInterrupts(enabled); +} + +void OSCancelAlarm(OSAlarm *alarm) +{ + OSAlarm *next; + BOOL enabled; + + enabled = OSDisableInterrupts(); + + if (alarm->handler == 0) { + OSRestoreInterrupts(enabled); + return; + } + + next = alarm->next; + if (next == 0) { + AlarmQueue.tail = alarm->prev; + } + else { + next->prev = alarm->prev; + } + if (alarm->prev) { + alarm->prev->next = next; + } + else { + AlarmQueue.head = next; + if (next) { + SetTimer(next); + } + } + alarm->handler = 0; + + OSRestoreInterrupts(enabled); +} + +static void DecrementerExceptionCallback(register __OSException exception, register OSContext *context) +{ + OSAlarm *alarm; + OSAlarm *next; + OSAlarmHandler handler; + OSTime time; + OSContext exceptionContext; + time = __OSGetSystemTime(); + alarm = AlarmQueue.head; + if (alarm == 0) { + OSLoadContext(context); + } + + if (time < alarm->fire) { + SetTimer(alarm); + OSLoadContext(context); + } + + next = alarm->next; + AlarmQueue.head = next; + if (next == 0) { + AlarmQueue.tail = 0; + } + else { + next->prev = 0; + } + + handler = alarm->handler; + alarm->handler = 0; + if (0 < alarm->period) { + InsertAlarm(alarm, 0, handler); + } + + if (AlarmQueue.head) { + SetTimer(AlarmQueue.head); + } + + OSDisableScheduler(); + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + handler(alarm, context); + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); + OSEnableScheduler(); + __OSReschedule(); + OSLoadContext(context); +} + +static asm void DecrementerExceptionHandler(register __OSException exception, register OSContext *context) +{ + /* clang-format off */ + nofralloc + OS_EXCEPTION_SAVE_GPRS(context) + stwu r1, -8(r1) + b DecrementerExceptionCallback + /* clang-format on */ +} diff --git a/src/dolphin/os/OSAlloc.c b/src/dolphin/os/OSAlloc.c new file mode 100644 index 00000000..fe0c34ae --- /dev/null +++ b/src/dolphin/os/OSAlloc.c @@ -0,0 +1,531 @@ +#include +#include +#include + +#define ALIGNMENT 32 + +#define InRange(cell, arenaStart, arenaEnd) ((u32)arenaStart <= (u32)cell) && ((u32)cell < (u32)arenaEnd) + +#define HEADERSIZE 32u +#define MINOBJSIZE 64u + +struct Cell { + struct Cell *prev; + struct Cell *next; + long size; +}; + +struct HeapDesc { + long size; + struct Cell *free; + struct Cell *allocated; +}; + +volatile int __OSCurrHeap = -1; + +static struct HeapDesc *HeapArray; +static int NumHeaps; +static void *ArenaStart; +static void *ArenaEnd; + +// functions +static struct Cell *DLAddFront(struct Cell *list, struct Cell *cell); +static struct Cell *DLLookup(struct Cell *list, struct Cell *cell); +static struct Cell *DLExtract(struct Cell *list, struct Cell *cell); +static struct Cell *DLInsert(struct Cell *list, struct Cell *cell); +static int DLOverlap(struct Cell *list, void *start, void *end); +static long DLSize(struct Cell *list); + +static struct Cell *DLAddFront(struct Cell *list, struct Cell *cell) +{ + cell->next = list; + cell->prev = 0; + if (list) { + list->prev = cell; + } + return cell; +} + +static struct Cell *DLLookup(struct Cell *list, struct Cell *cell) +{ + for (; list; list = list->next) { + if (list == cell) { + return list; + } + } + return NULL; +} + +static struct Cell *DLExtract(struct Cell *list, struct Cell *cell) +{ + if (cell->next) { + cell->next->prev = cell->prev; + } + if (cell->prev == NULL) { + return cell->next; + } + cell->prev->next = cell->next; + return list; +} + +static struct Cell *DLInsert(struct Cell *list, struct Cell *cell) +{ + struct Cell *prev; + struct Cell *next; + + for (next = list, prev = NULL; next != 0; prev = next, next = next->next) { + if (cell <= next) { + break; + } + } + + cell->next = next; + cell->prev = prev; + if (next) { + next->prev = cell; + if ((u8 *)cell + cell->size == (u8 *)next) { + cell->size += next->size; + next = next->next; + cell->next = next; + if (next) { + next->prev = cell; + } + } + } + if (prev) { + prev->next = cell; + if ((u8 *)prev + prev->size == (u8 *)cell) { + prev->size += cell->size; + prev->next = next; + if (next) { + next->prev = prev; + } + } + return list; + } + return cell; +} + +static int DLOverlap(struct Cell *list, void *start, void *end) +{ + struct Cell *cell = list; + + while (cell) { + if (((start <= cell) && (cell < end)) || ((start < (void *)((u8 *)cell + cell->size)) && ((void *)((u8 *)cell + cell->size) <= end))) { + return 1; + } + cell = cell->next; + } + return 0; +} + +static long DLSize(struct Cell *list) +{ + struct Cell *cell; + long size; + + size = 0; + cell = list; + + while (cell) { + size += cell->size; + cell = cell->next; + } + + return size; +} + +void *OSAllocFromHeap(int heap, unsigned long size) +{ + struct HeapDesc *hd; + struct Cell *cell; + struct Cell *newCell; + long leftoverSize; + long requested; + + requested = size; + ASSERTMSG1(0x14D, HeapArray, "OSAllocFromHeap(): heap is not initialized."); + ASSERTMSG1(0x14E, (signed long)size > 0, "OSAllocFromHeap(): invalid size."); + ASSERTMSG1(0x14F, heap >= 0 && heap < NumHeaps, "OSAllocFromHeap(): invalid heap handle."); + ASSERTMSG1(0x150, HeapArray[heap].size >= 0, "OSAllocFromHeap(): invalid heap handle."); + + hd = &HeapArray[heap]; + size += 0x20; + size = (size + 0x1F) & 0xFFFFFFE0; + + for (cell = hd->free; cell != NULL; cell = cell->next) { + if ((signed)size <= (signed)cell->size) { + break; + } + } + + if (cell == NULL) { + return NULL; + } + ASSERTMSG1(0x168, !((s32)cell & 0x1F), "OSAllocFromHeap(): heap is broken."); + ASSERTMSG1(0x169, cell->hd == NULL, "OSAllocFromHeap(): heap is broken."); + + leftoverSize = cell->size - size; + if (leftoverSize < 0x40U) { + hd->free = DLExtract(hd->free, cell); + } + else { + cell->size = size; + newCell = (void *)((u8 *)cell + size); + newCell->size = leftoverSize; + newCell->prev = cell->prev; + newCell->next = cell->next; + if (newCell->next != NULL) { + newCell->next->prev = newCell; + } + if (newCell->prev != NULL) { + newCell->prev->next = newCell; + } + else { + ASSERTMSG1(0x186, hd->free == cell, "OSAllocFromHeap(): heap is broken."); + hd->free = newCell; + } + } + + hd->allocated = DLAddFront(hd->allocated, cell); + return (u8 *)cell + 0x20; +} + +void *OSAllocFixed(void **rstart, void **rend) +{ + int i; + struct Cell *cell; + struct Cell *newCell; + struct HeapDesc *hd; + void *start; + void *end; + void *cellEnd; + + start = (void *)((*(u32 *)rstart) & ~((32) - 1)); + end = (void *)((*(u32 *)rend + 0x1FU) & ~((32) - 1)); + + ASSERTMSG1(0x1B0, HeapArray, "OSAllocFixed(): heap is not initialized."); + ASSERTMSG1(0x1B1, (u32)start < (u32)end, "OSAllocFixed(): invalid range."); + ASSERTMSG1(0x1B3, ((u32)ArenaStart <= (u32)start) && ((u32)end <= (u32)ArenaEnd), "OSAllocFixed(): invalid range."); + + for (i = 0; i < NumHeaps; i++) { + hd = &HeapArray[i]; + if (hd->size >= 0) { + if (DLOverlap(hd->allocated, start, end)) { + return NULL; + } + } + } + + for (i = 0; i < NumHeaps; i++) { + hd = &HeapArray[i]; + if (hd->size >= 0) { + for (cell = hd->free; cell; cell = cell->next) { + cellEnd = ((u8 *)cell + cell->size); + if (cellEnd > start) { + if (end <= cell) { + break; + } + if ((char *)start - 0x20 <= (char *)cell && cell < end && (start <= cellEnd) && (cellEnd < ((char *)end + 0x40))) { + if (cell < start) { + start = cell; + } + if (end < cellEnd) { + end = cellEnd; + } + hd->free = DLExtract(hd->free, cell); + hd->size -= cell->size; + } + else if ((char *)start - 0x20 <= (char *)cell && cell < end) { + if (cell < start) { + start = cell; + } + ASSERTMSG(0x1F3, MINOBJSIZE <= (char *)cellEnd - (char *)end); + newCell = (struct Cell *)end; + + newCell->size = (s32)((char *)cellEnd - (char *)end); + newCell->next = cell->next; + if (newCell->next) { + newCell->next->prev = newCell; + } + newCell->prev = cell->prev; + if (newCell->prev) { + newCell->prev->next = newCell; + } + else { + hd->free = newCell; + } + hd->size -= ((char *)end - (char *)cell); + break; + } + else { + if ((start <= cellEnd) && (cellEnd < ((char *)end + 0x40U))) { + if (end < cellEnd) { + end = cellEnd; + } + ASSERTMSG(0x20C, MINOBJSIZE <= (char *)start - (char *)cell); + hd->size -= ((char *)cellEnd - (char *)start); + cell->size = ((char *)start - (char *)cell); + } + else { + ASSERTMSG(0x213, MINOBJSIZE <= (char *)cellEnd - (char *)end); + newCell = (struct Cell *)end; + newCell->size = ((char *)cellEnd - (char *)end); + newCell->next = cell->next; + if (newCell->next) { + newCell->next->prev = newCell; + } + newCell->prev = cell; + cell->next = newCell; + cell->size = ((char *)start - (char *)cell); + hd->size -= ((char *)end - (char *)start); + break; + } + } + } + } + ASSERTMSG(0x222, 0 <= hd->size); + } + } + ASSERTMSG(0x225, OFFSET(start, ALIGNMENT) == 0); + ASSERTMSG(0x226, OFFSET(end, ALIGNMENT) == 0); + ASSERTMSG(0x227, start < end); + *(u32 *)rstart = (u32)start; + *(u32 *)rend = (u32)end; + return (void *)*(u32 *)rstart; +} + +void OSFreeToHeap(int heap, void *ptr) +{ + struct HeapDesc *hd; + struct Cell *cell; + + ASSERTMSG1(0x23D, HeapArray, "OSFreeToHeap(): heap is not initialized."); + ASSERTMSG1(0x23F, ((u32)ArenaStart + 0x20) <= (u32)ptr && (u32)ptr < (u32)ArenaEnd, "OSFreeToHeap(): invalid pointer."); + ASSERTMSG1(0x240, OFFSET(ptr, ALIGNMENT) == 0, "OSFreeToHeap(): invalid pointer."); + ASSERTMSG1(0x241, HeapArray[heap].size >= 0, "OSFreeToHeap(): invalid heap handle."); + cell = (void *)((u32)ptr - 0x20); + hd = &HeapArray[heap]; + ASSERTMSG1(0x246, cell->hd == hd, "OSFreeToHeap(): invalid pointer."); + ASSERTMSG1(0x247, DLLookup(hd->allocated, cell), "OSFreeToHeap(): invalid pointer."); + hd->allocated = DLExtract(hd->allocated, cell); + hd->free = DLInsert(hd->free, cell); +} + +int OSSetCurrentHeap(int heap) +{ + int prev; + + ASSERTMSG1(0x267, HeapArray, "OSSetCurrentHeap(): heap is not initialized."); + ASSERTMSG1(0x268, (heap >= 0) && (heap < NumHeaps), "OSSetCurrentHeap(): invalid heap handle."); + ASSERTMSG1(0x269, HeapArray[heap].size >= 0, "OSSetCurrentHeap(): invalid heap handle."); + prev = __OSCurrHeap; + __OSCurrHeap = heap; + return prev; +} + +void *OSInitAlloc(void *arenaStart, void *arenaEnd, int maxHeaps) +{ + unsigned long arraySize; + int i; + struct HeapDesc *hd; + + ASSERTMSG1(0x283, maxHeaps > 0, "OSInitAlloc(): invalid number of heaps."); + ASSERTMSG1(0x285, (u32)arenaStart < (u32)arenaEnd, "OSInitAlloc(): invalid range."); + ASSERTMSG1(0x288, maxHeaps <= (((u32)arenaEnd - (u32)arenaStart) / 24U), "OSInitAlloc(): too small range."); + arraySize = maxHeaps * sizeof(struct HeapDesc); + HeapArray = arenaStart; + NumHeaps = maxHeaps; + + for (i = 0; i < NumHeaps; i++) { + hd = &HeapArray[i]; + hd->size = -1; + hd->free = hd->allocated = 0; + } + __OSCurrHeap = -1; + arenaStart = (void *)((u32)((char *)HeapArray + arraySize)); + arenaStart = (void *)(((u32)arenaStart + 0x1F) & 0xFFFFFFE0); + ArenaStart = arenaStart; + ArenaEnd = (void *)((u32)arenaEnd & 0xFFFFFFE0); + ASSERTMSG1(0x2A4, ((u32)ArenaEnd - (u32)ArenaStart) >= 0x40U, "OSInitAlloc(): too small range."); + return arenaStart; +} + +int OSCreateHeap(void *start, void *end) +{ + int heap; + struct HeapDesc *hd; + struct Cell *cell; + + ASSERTMSG1(0x2BD, HeapArray, "OSCreateHeap(): heap is not initialized."); + ASSERTMSG1(0x2BE, (u32)start < (u32)end, "OSCreateHeap(): invalid range."); + + start = (void *)(((u32)start + 0x1FU) & ~((32) - 1)); + end = (void *)(((u32)end) & ~((32) - 1)); + + ASSERTMSG1(0x2C1, (u32)start < (u32)end, "OSCreateHeap(): invalid range."); + ASSERTMSG1(0x2C3, (u32)ArenaStart <= (u32)start && (u32)end <= (u32)ArenaEnd, "OSCreateHeap(): invalid range."); + ASSERTMSG1(0x2C5, ((u32)end - (u32)start) >= 0x40U, "OSCreateHeap(): too small range."); + + for (heap = 0; heap < NumHeaps; heap++) { + hd = &HeapArray[heap]; + if (hd->size < 0) { + hd->size = (u32)end - (u32)start; + cell = start; + cell->prev = 0; + cell->next = 0; + cell->size = hd->size; + hd->free = cell; + hd->allocated = 0; + return heap; + } + } + return -1; +} + +void OSDestroyHeap(int heap) +{ + struct HeapDesc *hd; + long size; + + ASSERTMSG1(0x30A, HeapArray, "OSDestroyHeap(): heap is not initialized."); + ASSERTMSG1(0x30B, (heap >= 0) && (heap < NumHeaps), "OSDestroyHeap(): invalid heap handle."); + ASSERTMSG1(0x30C, HeapArray[heap].size >= 0, "OSDestroyHeap(): invalid heap handle."); + + hd = &HeapArray[heap]; + hd->size = -1; +} + +void OSAddToHeap(int heap, void *start, void *end) +{ + struct HeapDesc *hd; + struct Cell *cell; + int i; + + ASSERTMSG1(0x339, HeapArray, "OSAddToHeap(): heap is not initialized."); + ASSERTMSG1(0x33A, (heap >= 0) && (heap < NumHeaps), "OSAddToHeap(): invalid heap handle."); + ASSERTMSG1(0x33B, HeapArray[heap].size >= 0, "OSAddToHeap(): invalid heap handle."); + + hd = &HeapArray[heap]; + + ASSERTMSG1(0x33F, (u32)start < (u32)end, "OSAddToHeap(): invalid range."); + + start = (void *)(((u32)start + 0x1F) & ~((32) - 1)); + end = (void *)(((u32)end) & ~((32) - 1)); + + ASSERTMSG1(0x343, ((u32)end - (u32)start) >= 0x40U, "OSAddToHeap(): too small range."); + ASSERTMSG1(0x345, (u32)ArenaStart <= (u32)start && (u32)end <= (u32)ArenaEnd, "OSAddToHeap(): invalid range."); + + cell = (struct Cell *)start; + cell->size = ((char *)end - (char *)start); + hd->size += cell->size; + hd->free = DLInsert(hd->free, cell); +} + +// custom macro for OSCheckHeap +#define ASSERTREPORT(line, cond) \ + if (!(cond)) { \ + OSReport("OSCheckHeap: Failed " #cond " in %d", line); \ + return -1; \ + } + +long OSCheckHeap(int heap) +{ + struct HeapDesc *hd; + struct Cell *cell; + long total = 0; + long free = 0; + + ASSERTREPORT(0x37D, HeapArray); + ASSERTREPORT(0x37E, 0 <= heap && heap < NumHeaps); + hd = &HeapArray[heap]; + ASSERTREPORT(0x381, 0 <= hd->size); + + ASSERTREPORT(0x383, hd->allocated == NULL || hd->allocated->prev == NULL); + + for (cell = hd->allocated; cell; cell = cell->next) { + ASSERTREPORT(0x386, InRange(cell, ArenaStart, ArenaEnd)); + ASSERTREPORT(0x387, OFFSET(cell, ALIGNMENT) == 0); + ASSERTREPORT(0x388, cell->next == NULL || cell->next->prev == cell); + ASSERTREPORT(0x389, MINOBJSIZE <= cell->size); + ASSERTREPORT(0x38A, OFFSET(cell->size, ALIGNMENT) == 0); + total += cell->size; + ASSERTREPORT(0x38D, 0 < total && total <= hd->size); + } + + ASSERTREPORT(0x395, hd->free == NULL || hd->free->prev == NULL); + + for (cell = hd->free; cell; cell = cell->next) { + ASSERTREPORT(0x398, InRange(cell, ArenaStart, ArenaEnd)); + ASSERTREPORT(0x399, OFFSET(cell, ALIGNMENT) == 0); + ASSERTREPORT(0x39A, cell->next == NULL || cell->next->prev == cell); + ASSERTREPORT(0x39B, MINOBJSIZE <= cell->size); + ASSERTREPORT(0x39C, OFFSET(cell->size, ALIGNMENT) == 0); + ASSERTREPORT(0x39D, cell->next == NULL || (char *)cell + cell->size < (char *)cell->next); + total += cell->size; + free = (cell->size + free); + free -= HEADERSIZE; + ASSERTREPORT(0x3A1, 0 < total && total <= hd->size); + } + ASSERTREPORT(0x3A8, total == hd->size); + return free; +} + +unsigned long OSReferentSize(void *ptr) +{ + struct Cell *cell; + + ASSERTMSG1(0x3BB, HeapArray, "OSReferentSize(): heap is not initialized."); + ASSERTMSG1(0x3BD, InRange(ptr, ArenaStart + HEADERSIZE, ArenaEnd), "OSReferentSize(): invalid pointer."); + ASSERTMSG1(0x3BE, !OFFSET(ptr, 32), "OSReferentSize(): invalid pointer."); + cell = (void *)((u32)ptr - HEADERSIZE); + ASSERTMSG1(0x3C2, cell->hd, "OSReferentSize(): invalid pointer."); + ASSERTMSG1(0x3C4, !(((u32)cell->hd - (u32)HeapArray) % 24), "OSReferentSize(): invalid pointer."); + ASSERTMSG1(0x3C6, ((u32)HeapArray <= (u32)cell->hd) && ((u32)cell->hd < (u32)((u32)HeapArray + (NumHeaps * 0x18))), + "OSReferentSize(): invalid pointer."); + ASSERTMSG1(0x3C7, cell->hd->size >= 0, "OSReferentSize(): invalid pointer."); + ASSERTMSG1(0x3C9, DLLookup(cell->hd->allocated, cell), "OSReferentSize(): invalid pointer."); + return (long)((u32)cell->size - HEADERSIZE); +} + +void OSDumpHeap(int heap) +{ + struct HeapDesc *hd; + struct Cell *cell; + + OSReport("\nOSDumpHeap(%d):\n", heap); + ASSERTMSG1(0x3DE, HeapArray, "OSDumpHeap(): heap is not initialized."); + ASSERTMSG1(0x3DF, (heap >= 0) && (heap < NumHeaps), "OSDumpHeap(): invalid heap handle."); + hd = &HeapArray[heap]; + if (hd->size < 0) { + OSReport("--------Inactive\n"); + return; + } + ASSERTMSG1(0x3E8, OSCheckHeap(heap) >= 0, "OSDumpHeap(): heap is broken."); + OSReport("addr size end prev next\n"); + OSReport("--------Allocated\n"); + + ASSERTMSG1(0x3F5, hd->allocated == NULL || hd->allocated->prev == NULL, "OSDumpHeap(): heap is broken."); + + for (cell = hd->allocated; cell; cell = cell->next) { + OSReport("%x %d %x %x %x\n", cell, cell->size, (char *)cell + cell->size, cell->prev, cell->next); + } + OSReport("--------Free\n"); + for (cell = hd->free; cell; cell = cell->next) { + OSReport("%x %d %x %x %x\n", cell, cell->size, (char *)cell + cell->size, cell->prev, cell->next); + } +} + +void OSVisitAllocated(void (*visitor)(void *, unsigned long)) +{ + unsigned long heap; + struct Cell *cell; + + for (heap = 0; heap < NumHeaps; heap++) { + if (HeapArray[heap].size >= 0) { + for (cell = HeapArray[heap].allocated; cell; cell = cell->next) { + visitor((char *)cell + HEADERSIZE, cell->size); + } + } + } +} diff --git a/src/dolphin/os/OSArena.c b/src/dolphin/os/OSArena.c new file mode 100644 index 00000000..563b01a8 --- /dev/null +++ b/src/dolphin/os/OSArena.c @@ -0,0 +1,53 @@ +#include + +#define ROUND(n, a) (((u32)(n) + (a)-1) & ~((a)-1)) +#define TRUNC(n, a) (((u32)(n)) & ~((a)-1)) + +void *__OSArenaHi; +void *__OSArenaLo = (void *)-1; + +void *OSGetArenaHi(void) +{ + return __OSArenaHi; +} + +void *OSGetArenaLo(void) +{ + return __OSArenaLo; +} + +void OSSetArenaHi(void *addr) +{ + __OSArenaHi = addr; +} + +void OSSetArenaLo(void *addr) +{ + __OSArenaLo = addr; +} + +void *OSAllocFromArenaLo(u32 size, u32 align) +{ + void *ptr; + u8 *arenaLo; + + ptr = OSGetArenaLo(); + arenaLo = ptr = (void *)ROUND(ptr, align); + arenaLo += size; + arenaLo = (u8 *)ROUND(arenaLo, align); + OSSetArenaLo(arenaLo); + return ptr; +} + +void *OSAllocFromArenaHi(u32 size, u32 align) +{ + void *ptr; + u8 *arenaHi; + + arenaHi = OSGetArenaHi(); + arenaHi = (u8 *)TRUNC(arenaHi, align); + arenaHi -= size; + arenaHi = ptr = (void *)TRUNC(arenaHi, align); + OSSetArenaHi(arenaHi); + return ptr; +} diff --git a/src/dolphin/os/OSAudioSystem.c b/src/dolphin/os/OSAudioSystem.c new file mode 100644 index 00000000..f622deaf --- /dev/null +++ b/src/dolphin/os/OSAudioSystem.c @@ -0,0 +1,118 @@ +#include "types.h" +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +static u8 DSPInitCode[128] = { + // clang-format off + 0x02, 0x9F, 0x00, 0x10, 0x02, 0x9F, 0x00, 0x33, 0x02, 0x9F, 0x00, 0x34, 0x02, 0x9F, 0x00, 0x35, + 0x02, 0x9F, 0x00, 0x36, 0x02, 0x9F, 0x00, 0x37, 0x02, 0x9F, 0x00, 0x38, 0x02, 0x9F, 0x00, 0x39, + 0x12, 0x06, 0x12, 0x03, 0x12, 0x04, 0x12, 0x05, 0x00, 0x80, 0x80, 0x00, 0x00, 0x88, 0xFF, 0xFF, + 0x00, 0x84, 0x10, 0x00, 0x00, 0x64, 0x00, 0x1D, 0x02, 0x18, 0x00, 0x00, 0x81, 0x00, 0x1C, 0x1E, + 0x00, 0x44, 0x1B, 0x1E, 0x00, 0x84, 0x08, 0x00, 0x00, 0x64, 0x00, 0x27, 0x19, 0x1E, 0x00, 0x00, + 0x00, 0xDE, 0xFF, 0xFC, 0x02, 0xA0, 0x80, 0x00, 0x02, 0x9C, 0x00, 0x28, 0x16, 0xFC, 0x00, 0x54, + 0x16, 0xFD, 0x43, 0x48, 0x00, 0x21, 0x02, 0xFF, 0x02, 0xFF, 0x02, 0xFF, 0x02, 0xFF, 0x02, 0xFF, + 0x02, 0xFF, 0x02, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // clang-format on +}; + +#define __DSPWorkBuffer (void *)0x81000000 + +void __OSInitAudioSystem(void) +{ + u32 r28; + u16 r3; + + u32 padding; + + memcpy((void *)((u8 *)OSGetArenaHi() - 128), __DSPWorkBuffer, 128); + memcpy(__DSPWorkBuffer, (void *)DSPInitCode, 128); + + DCFlushRange(__DSPWorkBuffer, 128); + + __DSPRegs[9] = 0x43; + __DSPRegs[5] = 0x8AC; + __DSPRegs[5] |= 1; + while (__DSPRegs[5] & 1) + ; + __DSPRegs[0] = 0; + while (((__DSPRegs[2] << 16) | __DSPRegs[3]) & 0x80000000) + ; + *(u32 *)&__DSPRegs[16] = 0x1000000; + *(u32 *)&__DSPRegs[18] = 0; + *(u32 *)&__DSPRegs[20] = 0x20; + + r3 = __DSPRegs[5]; + while (!(r3 & 0x20)) + r3 = __DSPRegs[5]; + __DSPRegs[5] = r3; + + r28 = OSGetTick(); + while ((s32)(OSGetTick() - r28) < 0x892) + ; + + *(u32 *)&__DSPRegs[16] = 0x1000000; + *(u32 *)&__DSPRegs[18] = 0; + *(u32 *)&__DSPRegs[20] = 0x20; + + r3 = __DSPRegs[5]; + while (!(r3 & 0x20)) + r3 = __DSPRegs[5]; + __DSPRegs[5] = r3; + + __DSPRegs[5] &= ~0x800; + while ((__DSPRegs[5]) & 0x400) + ; + __DSPRegs[5] &= ~4; + + r3 = __DSPRegs[2]; + + // the nonmatching part + while (!(r3 & 0x8000)) + r3 = __DSPRegs[2]; + + (void)__DSPRegs[3]; + r3 != 42069; + __DSPRegs[5] |= 4; + __DSPRegs[5] = 0x8AC; + __DSPRegs[5] |= 1; + while (__DSPRegs[5] & 1) + ; + memcpy(__DSPWorkBuffer, (void *)((u8 *)OSGetArenaHi() - 128), 128); +} + +void __OSStopAudioSystem(void) +{ + u32 r28; + +#define waitUntil(load, mask) \ + r28 = (load); \ + while (r28 & (mask)) { \ + r28 = (load); \ + } + + __DSPRegs[5] = 0x804; + r28 = __DSPRegs[27]; + __DSPRegs[27] = r28 & ~0x8000; + waitUntil(__DSPRegs[5], 0x400); + waitUntil(__DSPRegs[5], 0x200); + __DSPRegs[5] = 0x8ac; + __DSPRegs[0] = 0; + + while (((__DSPRegs[2] << 16) | __DSPRegs[3]) & 0x80000000) + ; + r28 = OSGetTick(); + while ((s32)(OSGetTick() - r28) < 0x2c) + ; + __DSPRegs[5] |= 1; + waitUntil(__DSPRegs[5], 0x001); + +#undef waitUntil +} + +#ifdef __cplusplus +} +#endif diff --git a/src/dolphin/os/OSCache.c b/src/dolphin/os/OSCache.c new file mode 100644 index 00000000..d1b69735 --- /dev/null +++ b/src/dolphin/os/OSCache.c @@ -0,0 +1,450 @@ +#include "dolphin/PPCArch.h" +#include "dolphin/os.h" + +// Can't use this due to weird condition register issues +// #include "asm_types.h" +#define HID2 920 + +#include "dolphin/db.h" + +/* clang-format off */ +asm void DCEnable() { + nofralloc + sync + mfspr r3, HID0 + ori r3, r3, 0x4000 + mtspr HID0, r3 + blr +} + +asm void DCInvalidateRange(register void* addr, register u32 nBytes) { + nofralloc + cmplwi nBytes, 0 + blelr + clrlwi. r5, addr, 27 + beq @2 + addi nBytes, nBytes, 32 +@2 + addi nBytes, nBytes, 31 + srwi nBytes, nBytes, 5 + mtctr nBytes + +@1 + dcbi r0, addr + addi addr, addr, 32 + bdnz @1 + blr +} + + +asm void DCFlushRange(register void* addr, register u32 nBytes) { + nofralloc + cmplwi nBytes, 0 + blelr + clrlwi. r5, addr, 27 + beq @2 + addi nBytes, nBytes, 32 +@2 + addi nBytes, nBytes, 31 + srwi nBytes, nBytes, 5 + mtctr nBytes + +@1 + dcbf r0, addr + addi addr, addr, 32 + bdnz @1 + sc + blr +} + +asm void DCStoreRange(register void* addr, register u32 nBytes) { + nofralloc + cmplwi nBytes, 0 + blelr + clrlwi. r5, addr, 27 + beq @2 + addi nBytes, nBytes, 32 +@2 + addi nBytes, nBytes, 31 + srwi nBytes, nBytes, 5 + mtctr nBytes + +@1 + dcbst r0, addr + addi addr, addr, 32 + bdnz @1 + sc + + blr +} + +asm void DCFlushRangeNoSync(register void* addr, register u32 nBytes) { + nofralloc + cmplwi nBytes, 0 + blelr + clrlwi. r5, addr, 27 + beq @2 + addi nBytes, nBytes, 32 +@2 + addi nBytes, nBytes, 31 + srwi nBytes, nBytes, 5 + mtctr nBytes + +@1 + dcbf r0, addr + addi addr, addr, 32 + bdnz @1 + blr +} + +asm void DCStoreRangeNoSync(register void* addr, register u32 nBytes) { + nofralloc + cmplwi nBytes, 0 + blelr + clrlwi. r5, addr, 27 + beq @2 + addi nBytes, nBytes, 32 +@2 + addi nBytes, nBytes, 31 + srwi nBytes, nBytes, 5 + mtctr nBytes + +@1 + dcbst r0, addr + addi addr, addr, 32 + bdnz @1 + + blr +} + +asm void DCZeroRange(register void* addr, register u32 nBytes) { + nofralloc + cmplwi nBytes, 0 + blelr + clrlwi. r5, addr, 27 + beq @2 + addi nBytes, nBytes, 32 +@2 + addi nBytes, nBytes, 31 + srwi nBytes, nBytes, 5 + mtctr nBytes + +@1 + dcbz r0, addr + addi addr, addr, 32 + bdnz @1 + + blr +} + + +asm void ICInvalidateRange(register void* addr, register u32 nBytes) { + nofralloc + cmplwi nBytes, 0 + blelr + clrlwi. r5, addr, 27 + beq @2 + addi nBytes, nBytes, 32 +@2 + addi nBytes, nBytes, 31 + srwi nBytes, nBytes, 5 + mtctr nBytes + +@1 + icbi r0, addr + addi addr, addr, 32 + bdnz @1 + sync + isync + + blr +} + + +asm void ICFlashInvalidate() { + nofralloc + mfspr r3, HID0 + ori r3, r3, 0x800 + mtspr HID0, r3 + blr +} + +asm void ICEnable() { + nofralloc + isync + mfspr r3, HID0 + ori r3, r3, 0x8000 + mtspr HID0, r3 + blr +} + +#define LC_LINES 512 +#define CACHE_LINES 1024 + +asm void __LCEnable() { + nofralloc + mfmsr r5 + ori r5, r5, 0x1000 + mtmsr r5 + + lis r3, OS_CACHED_REGION_PREFIX + li r4, CACHE_LINES + mtctr r4 +_touchloop: + dcbt 0,r3 + dcbst 0,r3 + addi r3,r3,32 + bdnz _touchloop + mfspr r4, HID2 + oris r4, r4, 0x100F + mtspr HID2, r4 + + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + lis r3, LC_BASE_PREFIX + ori r3, r3, 0x0002 + mtspr DBAT3L, r3 + ori r3, r3, 0x01fe + mtspr DBAT3U, r3 + isync + lis r3, LC_BASE_PREFIX + li r6, LC_LINES + mtctr r6 + li r6, 0 + +_lockloop: + dcbz_l r6, r3 + addi r3, r3, 32 + bdnz+ _lockloop + + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + + blr +} + +void LCEnable() { + BOOL enabled; + + enabled = OSDisableInterrupts(); + __LCEnable(); + OSRestoreInterrupts(enabled); +} + + +asm void LCDisable() { + nofralloc + lis r3, LC_BASE_PREFIX + li r4, LC_LINES + mtctr r4 +@1 + dcbi r0, r3 + addi r3, r3, 32 + bdnz @1 + mfspr r4, HID2 + rlwinm r4, r4, 0, 4, 2 + mtspr HID2, r4 + blr +} + + +asm void LCLoadBlocks(register void* destTag, register void* srcAddr, register u32 numBlocks) { + nofralloc + rlwinm r6, numBlocks, 30, 27, 31 + rlwinm srcAddr, srcAddr, 0, 4, 31 + or r6, r6, srcAddr + mtspr DMA_U, r6 + rlwinm r6, numBlocks, 2, 28, 29 + or r6, r6, destTag + ori r6, r6, 0x12 + mtspr DMA_L, r6 + blr +} + +asm void LCStoreBlocks(register void* destAddr, register void* srcTag, register u32 numBlocks) { + nofralloc + rlwinm r6, numBlocks, 30, 27, 31 + rlwinm destAddr, destAddr, 0, 4, 31 + or r6, r6, destAddr + mtspr DMA_U, r6 + rlwinm r6, numBlocks, 2, 28, 29 + or r6, r6, srcTag + ori r6, r6, 0x2 + mtspr DMA_L, r6 + blr +} + +/* clang-format on */ + +u32 LCLoadData(register void *destAddr, register void *srcAddr, register u32 nBytes) +{ + u32 numBlocks = (nBytes + 31) / 32; + u32 numTransactions = (numBlocks + 128 - 1) / 128; + + while (numBlocks > 0) { + if (numBlocks < 128) { + LCLoadBlocks(destAddr, srcAddr, numBlocks); + numBlocks = 0; + } + else { + LCLoadBlocks(destAddr, srcAddr, 0); + numBlocks -= 128; + destAddr = (void *)((u32)destAddr + 4096); + srcAddr = (void *)((u32)srcAddr + 4096); + } + } + + return numTransactions; +} +u32 LCStoreData(void *destAddr, void *srcAddr, u32 nBytes) +{ + u32 numBlocks = (nBytes + 31) / 32; + u32 numTransactions = (numBlocks + 128 - 1) / 128; + + while (numBlocks > 0) { + if (numBlocks < 128) { + LCStoreBlocks(destAddr, srcAddr, numBlocks); + numBlocks = 0; + } + else { + LCStoreBlocks(destAddr, srcAddr, 0); + numBlocks -= 128; + destAddr = (void *)((u32)destAddr + 4096); + srcAddr = (void *)((u32)srcAddr + 4096); + } + } + + return numTransactions; +} + +/* clang-format off */ +asm u32 LCQueueLength() { + nofralloc + mfspr r4, HID2 + rlwinm r3, r4, 8, 28, 31 + blr +} + +asm void LCQueueWait(register u32 len) { + nofralloc + addi len, len, 1 +@1 + mfspr r4, HID2 + rlwinm r4, r4, 8, 28, 31 + cmpw cr2, r4, r3 + bge cr2, @1 + blr +} + +/* clang-format on */ +static void L2Disable(void) +{ + __sync(); + PPCMtl2cr(PPCMfl2cr() & ~0x80000000); + __sync(); +} + +void L2GlobalInvalidate(void) +{ + L2Disable(); + PPCMtl2cr(PPCMfl2cr() | 0x00200000); + while (PPCMfl2cr() & 0x00000001u) + ; + PPCMtl2cr(PPCMfl2cr() & ~0x00200000); + while (PPCMfl2cr() & 0x00000001u) { + DBPrintf(">>> L2 INVALIDATE : SHOULD NEVER HAPPEN\n"); + } +} + +static void L2Init(void) +{ + u32 oldMSR; + oldMSR = PPCMfmsr(); + __sync(); + PPCMtmsr(MSR_IR | MSR_DR); + __sync(); + L2Disable(); + L2GlobalInvalidate(); + PPCMtmsr(oldMSR); +} + +void L2Enable(void) +{ + PPCMtl2cr((PPCMfl2cr() | L2CR_L2E) & ~L2CR_L2I); +} + +void DMAErrorHandler(OSError error, OSContext *context, ...) +{ + u32 hid2 = PPCMfhid2(); + + OSReport("Machine check received\n"); + OSReport("HID2 = 0x%x SRR1 = 0x%x\n", hid2, context->srr1); + if (!(hid2 & (HID2_DCHERR | HID2_DNCERR | HID2_DCMERR | HID2_DQOERR)) || !(context->srr1 & SRR1_DMA_BIT)) { + OSReport("Machine check was not DMA/locked cache related\n"); + OSDumpContext(context); + PPCHalt(); + } + + OSReport("DMAErrorHandler(): An error occurred while processing DMA.\n"); + OSReport("The following errors have been detected and cleared :\n"); + + if (hid2 & HID2_DCHERR) { + OSReport("\t- Requested a locked cache tag that was already in the cache\n"); + } + + if (hid2 & HID2_DNCERR) { + OSReport("\t- DMA attempted to access normal cache\n"); + } + + if (hid2 & HID2_DCMERR) { + OSReport("\t- DMA missed in data cache\n"); + } + + if (hid2 & HID2_DQOERR) { + OSReport("\t- DMA queue overflowed\n"); + } + + // write hid2 back to clear the error bits + PPCMthid2(hid2); +} + +void __OSCacheInit() +{ + if (!(PPCMfhid0() & HID0_ICE)) { + ICEnable(); + DBPrintf("L1 i-caches initialized\n"); + } + if (!(PPCMfhid0() & HID0_DCE)) { + DCEnable(); + DBPrintf("L1 d-caches initialized\n"); + } + + if (!(PPCMfl2cr() & L2CR_L2E)) { + L2Init(); + L2Enable(); + DBPrintf("L2 cache initialized\n"); + } + + OSSetErrorHandler(OS_ERROR_MACHINE_CHECK, DMAErrorHandler); + DBPrintf("Locked cache machine check handler installed\n"); +} diff --git a/src/dolphin/os/OSContext.c b/src/dolphin/os/OSContext.c new file mode 100644 index 00000000..81b28648 --- /dev/null +++ b/src/dolphin/os/OSContext.c @@ -0,0 +1,555 @@ +#include +#include +#include + +#define HID2 920 + +volatile OSContext *__OSCurrentContext : (OS_BASE_CACHED | 0x00D4); +volatile OSContext *__OSFPUContext : (OS_BASE_CACHED | 0x00D8); + +static asm void __OSLoadFPUContext(register u32, register OSContext *fpuContext) +{ + // clang-format off + nofralloc + lhz r5, fpuContext->state; + clrlwi. r5, r5, 31 + beq _return + + lfd fp0, OS_CONTEXT_FPSCR(fpuContext) + mtfsf 0xFF, fp0 + mfspr r5, HID2 + rlwinm. r5, r5, 3, 31, 31 + beq _regular_FPRs + + psq_l fp0, OS_CONTEXT_PSF0(fpuContext), 0, 0 + psq_l fp1, OS_CONTEXT_PSF1(fpuContext), 0, 0 + psq_l fp2, OS_CONTEXT_PSF2(fpuContext), 0, 0 + psq_l fp3, OS_CONTEXT_PSF3(fpuContext), 0, 0 + psq_l fp4, OS_CONTEXT_PSF4(fpuContext), 0, 0 + psq_l fp5, OS_CONTEXT_PSF5(fpuContext), 0, 0 + psq_l fp6, OS_CONTEXT_PSF6(fpuContext), 0, 0 + psq_l fp7, OS_CONTEXT_PSF7(fpuContext), 0, 0 + psq_l fp8, OS_CONTEXT_PSF8(fpuContext), 0, 0 + psq_l fp9, OS_CONTEXT_PSF9(fpuContext), 0, 0 + psq_l fp10, OS_CONTEXT_PSF10(fpuContext), 0, 0 + psq_l fp11, OS_CONTEXT_PSF11(fpuContext), 0, 0 + psq_l fp12, OS_CONTEXT_PSF12(fpuContext), 0, 0 + psq_l fp13, OS_CONTEXT_PSF13(fpuContext), 0, 0 + psq_l fp14, OS_CONTEXT_PSF14(fpuContext), 0, 0 + psq_l fp15, OS_CONTEXT_PSF15(fpuContext), 0, 0 + psq_l fp16, OS_CONTEXT_PSF16(fpuContext), 0, 0 + psq_l fp17, OS_CONTEXT_PSF17(fpuContext), 0, 0 + psq_l fp18, OS_CONTEXT_PSF18(fpuContext), 0, 0 + psq_l fp19, OS_CONTEXT_PSF19(fpuContext), 0, 0 + psq_l fp20, OS_CONTEXT_PSF20(fpuContext), 0, 0 + psq_l fp21, OS_CONTEXT_PSF21(fpuContext), 0, 0 + psq_l fp22, OS_CONTEXT_PSF22(fpuContext), 0, 0 + psq_l fp23, OS_CONTEXT_PSF23(fpuContext), 0, 0 + psq_l fp24, OS_CONTEXT_PSF24(fpuContext), 0, 0 + psq_l fp25, OS_CONTEXT_PSF25(fpuContext), 0, 0 + psq_l fp26, OS_CONTEXT_PSF26(fpuContext), 0, 0 + psq_l fp27, OS_CONTEXT_PSF27(fpuContext), 0, 0 + psq_l fp28, OS_CONTEXT_PSF28(fpuContext), 0, 0 + psq_l fp29, OS_CONTEXT_PSF29(fpuContext), 0, 0 + psq_l fp30, OS_CONTEXT_PSF30(fpuContext), 0, 0 + psq_l fp31, OS_CONTEXT_PSF31(fpuContext), 0, 0 + +_regular_FPRs: + lfd fp0, fpuContext->fpr[0] + lfd fp1, fpuContext->fpr[1] + lfd fp2, fpuContext->fpr[2] + lfd fp3, fpuContext->fpr[3] + lfd fp4, fpuContext->fpr[4] + lfd fp5, fpuContext->fpr[5] + lfd fp6, fpuContext->fpr[6] + lfd fp7, fpuContext->fpr[7] + lfd fp8, fpuContext->fpr[8] + lfd fp9, fpuContext->fpr[9] + lfd fp10, fpuContext->fpr[10] + lfd fp11, fpuContext->fpr[11] + lfd fp12, fpuContext->fpr[12] + lfd fp13, fpuContext->fpr[13] + lfd fp14, fpuContext->fpr[14] + lfd fp15, fpuContext->fpr[15] + lfd fp16, fpuContext->fpr[16] + lfd fp17, fpuContext->fpr[17] + lfd fp18, fpuContext->fpr[18] + lfd fp19, fpuContext->fpr[19] + lfd fp20, fpuContext->fpr[20] + lfd fp21, fpuContext->fpr[21] + lfd fp22, fpuContext->fpr[22] + lfd fp23, fpuContext->fpr[23] + lfd fp24, fpuContext->fpr[24] + lfd fp25, fpuContext->fpr[25] + lfd fp26, fpuContext->fpr[26] + lfd fp27, fpuContext->fpr[27] + lfd fp28, fpuContext->fpr[28] + lfd fp29, fpuContext->fpr[29] + lfd fp30, fpuContext->fpr[30] + lfd fp31, fpuContext->fpr[31] +_return: + blr + // clang-format on +} + +static asm void __OSSaveFPUContext(register u32, register u32, register OSContext *fpuContext) +{ + // clang-format off + nofralloc + + lhz r3, fpuContext->state + ori r3, r3, 1 + sth r3, fpuContext->state + + stfd fp0, fpuContext->fpr[0] + stfd fp1, fpuContext->fpr[1] + stfd fp2, fpuContext->fpr[2] + stfd fp3, fpuContext->fpr[3] + stfd fp4, fpuContext->fpr[4] + stfd fp5, fpuContext->fpr[5] + stfd fp6, fpuContext->fpr[6] + stfd fp7, fpuContext->fpr[7] + stfd fp8, fpuContext->fpr[8] + stfd fp9, fpuContext->fpr[9] + stfd fp10, fpuContext->fpr[10] + stfd fp11, fpuContext->fpr[11] + stfd fp12, fpuContext->fpr[12] + stfd fp13, fpuContext->fpr[13] + stfd fp14, fpuContext->fpr[14] + stfd fp15, fpuContext->fpr[15] + stfd fp16, fpuContext->fpr[16] + stfd fp17, fpuContext->fpr[17] + stfd fp18, fpuContext->fpr[18] + stfd fp19, fpuContext->fpr[19] + stfd fp20, fpuContext->fpr[20] + stfd fp21, fpuContext->fpr[21] + stfd fp22, fpuContext->fpr[22] + stfd fp23, fpuContext->fpr[23] + stfd fp24, fpuContext->fpr[24] + stfd fp25, fpuContext->fpr[25] + stfd fp26, fpuContext->fpr[26] + stfd fp27, fpuContext->fpr[27] + stfd fp28, fpuContext->fpr[28] + stfd fp29, fpuContext->fpr[29] + stfd fp30, fpuContext->fpr[30] + stfd fp31, fpuContext->fpr[31] + + mffs fp0 + stfd fp0, OS_CONTEXT_FPSCR(fpuContext) + + lfd fp0, fpuContext->fpr[0] + + mfspr r3, HID2 + rlwinm. r3, r3, 3, 31, 31 + bc 12, 2, _return + + psq_st fp0, OS_CONTEXT_PSF0(fpuContext), 0, 0 + psq_st fp1, OS_CONTEXT_PSF1(fpuContext), 0, 0 + psq_st fp2, OS_CONTEXT_PSF2(fpuContext), 0, 0 + psq_st fp3, OS_CONTEXT_PSF3(fpuContext), 0, 0 + psq_st fp4, OS_CONTEXT_PSF4(fpuContext), 0, 0 + psq_st fp5, OS_CONTEXT_PSF5(fpuContext), 0, 0 + psq_st fp6, OS_CONTEXT_PSF6(fpuContext), 0, 0 + psq_st fp7, OS_CONTEXT_PSF7(fpuContext), 0, 0 + psq_st fp8, OS_CONTEXT_PSF8(fpuContext), 0, 0 + psq_st fp9, OS_CONTEXT_PSF9(fpuContext), 0, 0 + psq_st fp10, OS_CONTEXT_PSF10(fpuContext), 0, 0 + psq_st fp11, OS_CONTEXT_PSF11(fpuContext), 0, 0 + psq_st fp12, OS_CONTEXT_PSF12(fpuContext), 0, 0 + psq_st fp13, OS_CONTEXT_PSF13(fpuContext), 0, 0 + psq_st fp14, OS_CONTEXT_PSF14(fpuContext), 0, 0 + psq_st fp15, OS_CONTEXT_PSF15(fpuContext), 0, 0 + psq_st fp16, OS_CONTEXT_PSF16(fpuContext), 0, 0 + psq_st fp17, OS_CONTEXT_PSF17(fpuContext), 0, 0 + psq_st fp18, OS_CONTEXT_PSF18(fpuContext), 0, 0 + psq_st fp19, OS_CONTEXT_PSF19(fpuContext), 0, 0 + psq_st fp20, OS_CONTEXT_PSF20(fpuContext), 0, 0 + psq_st fp21, OS_CONTEXT_PSF21(fpuContext), 0, 0 + psq_st fp22, OS_CONTEXT_PSF22(fpuContext), 0, 0 + psq_st fp23, OS_CONTEXT_PSF23(fpuContext), 0, 0 + psq_st fp24, OS_CONTEXT_PSF24(fpuContext), 0, 0 + psq_st fp25, OS_CONTEXT_PSF25(fpuContext), 0, 0 + psq_st fp26, OS_CONTEXT_PSF26(fpuContext), 0, 0 + psq_st fp27, OS_CONTEXT_PSF27(fpuContext), 0, 0 + psq_st fp28, OS_CONTEXT_PSF28(fpuContext), 0, 0 + psq_st fp29, OS_CONTEXT_PSF29(fpuContext), 0, 0 + psq_st fp30, OS_CONTEXT_PSF30(fpuContext), 0, 0 + psq_st fp31, OS_CONTEXT_PSF31(fpuContext), 0, 0 + +_return: + blr + // clang-format on +} + +asm void OSLoadFPUContext(register OSContext *fpuContext) +{ + // clang-format off + nofralloc + addi r4, fpuContext, 0 + b __OSLoadFPUContext + // clang-format on +} + +asm void OSSaveFPUContext(register OSContext *fpuContext) +{ + // clang-format off + nofralloc + addi r5, fpuContext, 0 + b __OSSaveFPUContext + // clang-format on +} + +asm void OSSetCurrentContext(register OSContext *context) { + // clang-format off + nofralloc + + addis r4, r0, OS_CACHED_REGION_PREFIX + + stw context, 0x00D4(r4) + + clrlwi r5, context, 2 + stw r5, 0x00C0(r4) + + lwz r5, 0x00D8(r4) + cmpw r5, context + bne _disableFPU + + lwz r6, context->srr1 + ori r6, r6, 0x2000 + stw r6, context->srr1 + mfmsr r6 + ori r6, r6, 2 + mtmsr r6 + blr + +_disableFPU: + lwz r6, context->srr1 + rlwinm r6, r6, 0, 19, 17 + stw r6, context->srr1 + mfmsr r6 + rlwinm r6, r6, 0, 19, 17 + ori r6, r6, 2 + mtmsr r6 + isync + blr + // clang-format on +} + +OSContext *OSGetCurrentContext(void) +{ + return (OSContext *)__OSCurrentContext; +} + +asm u32 OSSaveContext(register OSContext *context) +{ + // clang-format off + nofralloc + stmw r13, context->gpr[13] + mfspr r0, GQR1 + stw r0, context->gqr[1] + mfspr r0, GQR2 + stw r0, context->gqr[2] + mfspr r0, GQR3 + stw r0, context->gqr[3] + mfspr r0, GQR4 + stw r0, context->gqr[4] + mfspr r0, GQR5 + stw r0, context->gqr[5] + mfspr r0, GQR6 + stw r0, context->gqr[6] + mfspr r0, GQR7 + stw r0, context->gqr[7] + mfcr r0 + stw r0, context->cr + mflr r0 + stw r0, context->lr + stw r0, context->srr0 + mfmsr r0 + stw r0, context->srr1 + mfctr r0 + stw r0, context->ctr + mfxer r0 + stw r0, context->xer + stw r1, context->gpr[1] + stw r2, context->gpr[2] + li r0, 0x1 + stw r0, context->gpr[3] + li r3, 0 + blr + // clang-format on +} + +asm void OSLoadContext(register OSContext *context) +{ + // clang-format off + nofralloc + + lis r4, __RAS_OSDisableInterrupts_begin@ha + lwz r6, 0x198(context) + addi r5, r4, __RAS_OSDisableInterrupts_begin@l + cmplw r6, r5 + blt srr0_not_in_disableintr + lis r4, __RAS_OSDisableInterrupts_end@ha + addi r0, r4, __RAS_OSDisableInterrupts_end@l + cmplw r6, r0 + bgt srr0_not_in_disableintr + stw r5, 0x198(context) + +srr0_not_in_disableintr: + lwz r0, 0(context) + lwz r1, 4(context) + lwz r2, 8(context) + lhz r4, 0x1a2(context) + rlwinm. r5, r4, 0, 0x1e, 0x1e + beq load_saved_gprs + rlwinm r4, r4, 0, 0x1f, 0x1d + sth r4, 0x1a2(context) + lmw r5, 0x14(context) + b load_special_regs + +load_saved_gprs: + lmw r13, 0x34(context) + +load_special_regs: + lwz r4, 0x1a8(context) + mtspr 0x391, r4 + lwz r4, 0x1ac(context) + mtspr 0x392, r4 + lwz r4, 0x1b0(context) + mtspr 0x393, r4 + lwz r4, 0x1b4(context) + mtspr 0x394, r4 + lwz r4, 0x1b8(context) + mtspr 0x395, r4 + lwz r4, 0x1bc(context) + mtspr 0x396, r4 + lwz r4, 0x1c0(context) + mtspr 0x397, r4 + lwz r4, 0x80(context) + mtcrf 0xff, r4 + lwz r4, 0x84(context) + mtlr r4 + lwz r4, 0x88(context) + mtctr r4 + lwz r4, 0x8c(context) + mtxer r4 + mfmsr r4 + rlwinm r4, r4, 0, 0x11, 0xf + rlwinm r4, r4, 0, 0x1f, 0x1d + mtmsr r4 + lwz r4, 0x198(context) + mtspr 0x1a, r4 + lwz r4, 0x19c(context) + mtspr 0x1b, r4 + lwz r4, 0x10(context) + lwz context, 0xc(context) + rfi + // clang-format on +} + +asm u32 OSGetStackPointer() +{ + // clang-format off + nofralloc + mr r3, r1 + blr + // clang-format on +} + +asm u32 OSSwitchStack(register u32 newsp) +{ + // clang-format off + nofralloc + mr r5, r1 + mr r1, newsp + mr r3, r5 + blr + // clang-format on +} + +asm int OSSwitchFiber(register u32 pc, register u32 newsp) +{ + // clang-format off + nofralloc + mflr r0 + mr r5, r1 + stwu r5, -8(newsp) + mr r1, newsp + stw r0, 4(r5) + mtlr pc + blrl + lwz r5, 0(r1) + lwz r0, 4(r5) + mtlr r0 + mr r1, r5 + blr + // clang-format on +} + +void OSClearContext(register OSContext *context) +{ + context->mode = 0; + context->state = 0; + if (context == __OSFPUContext) + __OSFPUContext = NULL; +} + +asm void OSInitContext(register OSContext *context, register u32 pc, register u32 newsp) +{ + // clang-format off + nofralloc + + stw pc, OS_CONTEXT_SRR0(context) + stw newsp, OS_CONTEXT_R1(context) + li r11, 0 + ori r11, r11, 0x00008000 | 0x00000020 | 0x00000010 | 0x00000002 | 0x00001000 + stw r11, OS_CONTEXT_SRR1(context) + li r0, 0x0 + stw r0, OS_CONTEXT_CR(context) + stw r0, OS_CONTEXT_XER(context) + + + stw r2, OS_CONTEXT_R2(context) + stw r13, OS_CONTEXT_R13(context) + + stw r0, OS_CONTEXT_R3(context) + stw r0, OS_CONTEXT_R4(context) + stw r0, OS_CONTEXT_R5(context) + stw r0, OS_CONTEXT_R6(context) + stw r0, OS_CONTEXT_R7(context) + stw r0, OS_CONTEXT_R8(context) + stw r0, OS_CONTEXT_R9(context) + stw r0, OS_CONTEXT_R10(context) + stw r0, OS_CONTEXT_R11(context) + stw r0, OS_CONTEXT_R12(context) + + stw r0, OS_CONTEXT_R14(context) + stw r0, OS_CONTEXT_R15(context) + stw r0, OS_CONTEXT_R16(context) + stw r0, OS_CONTEXT_R17(context) + stw r0, OS_CONTEXT_R18(context) + stw r0, OS_CONTEXT_R19(context) + stw r0, OS_CONTEXT_R20(context) + stw r0, OS_CONTEXT_R21(context) + stw r0, OS_CONTEXT_R22(context) + stw r0, OS_CONTEXT_R23(context) + stw r0, OS_CONTEXT_R24(context) + stw r0, OS_CONTEXT_R25(context) + stw r0, OS_CONTEXT_R26(context) + stw r0, OS_CONTEXT_R27(context) + stw r0, OS_CONTEXT_R28(context) + stw r0, OS_CONTEXT_R29(context) + stw r0, OS_CONTEXT_R30(context) + stw r0, OS_CONTEXT_R31(context) + + stw r0, OS_CONTEXT_GQR0(context) + stw r0, OS_CONTEXT_GQR1(context) + stw r0, OS_CONTEXT_GQR2(context) + stw r0, OS_CONTEXT_GQR3(context) + stw r0, OS_CONTEXT_GQR4(context) + stw r0, OS_CONTEXT_GQR5(context) + stw r0, OS_CONTEXT_GQR6(context) + stw r0, OS_CONTEXT_GQR7(context) + + b OSClearContext + // clang-format on +} + +void OSDumpContext(OSContext *context) +{ + u32 i; + u32 *p; + + OSReport("------------------------- Context 0x%08x -------------------------\n", context); + + for (i = 0; i < 16; ++i) { + OSReport("r%-2d = 0x%08x (%14d) r%-2d = 0x%08x (%14d)\n", i, context->gpr[i], context->gpr[i], i + 16, context->gpr[i + 16], + context->gpr[i + 16]); + } + + OSReport("LR = 0x%08x CR = 0x%08x\n", context->lr, context->cr); + OSReport("SRR0 = 0x%08x SRR1 = 0x%08x\n", context->srr0, context->srr1); + + OSReport("\nGQRs----------\n"); + for (i = 0; i < 4; ++i) { + OSReport("gqr%d = 0x%08x \t gqr%d = 0x%08x\n", i, context->gqr[i], i + 4, context->gqr[i + 4]); + } + + if (context->state & OS_CONTEXT_STATE_FPSAVED) { + OSContext *currentContext; + OSContext fpuContext; + BOOL enabled; + + enabled = OSDisableInterrupts(); + currentContext = OSGetCurrentContext(); + OSClearContext(&fpuContext); + OSSetCurrentContext(&fpuContext); + + OSReport("\n\nFPRs----------\n"); + for (i = 0; i < 32; i += 2) { + OSReport("fr%d \t= %d \t fr%d \t= %d\n", i, (u32)context->fpr[i], i + 1, (u32)context->fpr[i + 1]); + } + OSReport("\n\nPSFs----------\n"); + for (i = 0; i < 32; i += 2) { + OSReport("ps%d \t= 0x%x \t ps%d \t= 0x%x\n", i, (u32)context->psf[i], i + 1, (u32)context->psf[i + 1]); + } + + OSClearContext(&fpuContext); + OSSetCurrentContext(currentContext); + OSRestoreInterrupts(enabled); + } + + OSReport("\nAddress: Back Chain LR Save\n"); + for (i = 0, p = (u32 *)context->gpr[1]; p && (u32)p != 0xffffffff && i++ < 16; p = (u32 *)*p) { + OSReport("0x%08x: 0x%08x 0x%08x\n", p, p[0], p[1]); + } +} + +static asm void OSSwitchFPUContext(register __OSException exception, register OSContext *context) +{ + // clang-format off + nofralloc + mfmsr r5 + ori r5, r5, 0x2000 + mtmsr r5 + isync + lwz r5, OS_CONTEXT_SRR1(context) + ori r5, r5, 0x2000 + mtsrr1 r5 + addis r3, r0, OS_CACHED_REGION_PREFIX + lwz r5, 0x00D8(r3) + stw context, 0x00D8(r3) + cmpw r5, r4 + beq _restoreAndExit + cmpwi r5, 0x0 + beq _loadNewFPUContext + bl __OSSaveFPUContext +_loadNewFPUContext: + bl __OSLoadFPUContext +_restoreAndExit: + lwz r3, OS_CONTEXT_CR(context) + mtcr r3 + lwz r3, OS_CONTEXT_LR(context) + mtlr r3 + lwz r3, OS_CONTEXT_SRR0(context) + mtsrr0 r3 + lwz r3, OS_CONTEXT_CTR(context) + mtctr r3 + lwz r3, OS_CONTEXT_XER(context) + mtxer r3 + lhz r3, context->state + rlwinm r3, r3, 0, 31, 29 + sth r3, context->state + lwz r5, OS_CONTEXT_R5(context) + lwz r3, OS_CONTEXT_R3(context) + lwz r4, OS_CONTEXT_R4(context) + rfi + // clang-format on +} + +void __OSContextInit(void) +{ + __OSSetExceptionHandler(__OS_EXCEPTION_FLOATING_POINT, OSSwitchFPUContext); + __OSFPUContext = NULL; + DBPrintf("FPU-unavailable handler installed\n"); +} diff --git a/src/dolphin/os/OSError.c b/src/dolphin/os/OSError.c new file mode 100644 index 00000000..2965756f --- /dev/null +++ b/src/dolphin/os/OSError.c @@ -0,0 +1,115 @@ +#include +#include +#include +#include + +#include + +OSThread *__OSCurrentThread : (OS_BASE_CACHED | 0x00E4); +OSThreadQueue __OSActiveThreadQueue : (OS_BASE_CACHED | 0x00DC); +volatile OSContext *__OSFPUContext : (OS_BASE_CACHED | 0x00D8); + +OSErrorHandler __OSErrorTable[OS_ERROR_MAX]; +#define FPSCR_ENABLE (FPSCR_VE | FPSCR_OE | FPSCR_UE | FPSCR_ZE | FPSCR_XE) + +__declspec(weak) void OSReport(const char *msg, ...) +{ + va_list args; + va_start(args, msg); + vprintf(msg, args); + va_end(args); +} + +__declspec(weak) void OSVReport(const char *msg, va_list list) +{ + vprintf(msg, list); +} + +__declspec(weak) void OSPanic(const char *file, int line, const char *msg, ...) +{ + va_list marker; + u32 i; + u32 *p; + + OSDisableInterrupts(); + va_start(marker, msg); + vprintf(msg, marker); + va_end(marker); + OSReport(" in \"%s\" on line %d.\n", file, line); + + OSReport("\nAddress: Back Chain LR Save\n"); + for (i = 0, p = (u32 *)OSGetStackPointer(); p && (u32)p != 0xffffffff && i++ < 16; p = (u32 *)*p) { + OSReport("0x%08x: 0x%08x 0x%08x\n", p, p[0], p[1]); + } + + PPCHalt(); +} + +OSErrorHandler OSSetErrorHandler(OSError error, OSErrorHandler handler) +{ + OSErrorHandler oldHandler; + + oldHandler = __OSErrorTable[error]; + __OSErrorTable[error] = handler; + return oldHandler; +} + +void __OSUnhandledException(__OSException exception, OSContext *context, u32 dsisr, u32 dar) +{ + if (!(context->srr1 & MSR_RI)) { + OSReport("Non-recoverable Exception %d", exception); + } + else { + if (__OSErrorTable[exception]) { + OSDisableScheduler(); + __OSErrorTable[exception](exception, context, dsisr, dar); + OSEnableScheduler(); + __OSReschedule(); + OSLoadContext(context); + } + + if (exception == OS_ERROR_DECREMENTER) { + OSLoadContext(context); + } + + OSReport("Unhandled Exception %d", exception); + } + + OSReport("\n"); + OSDumpContext(context); + OSReport("\nDSISR = 0x%08x DAR = 0x%08x\n", dsisr, dar); + OSReport("TB = 0x%016llx\n", OSGetTime()); + + switch (exception) { + case __OS_EXCEPTION_DSI: + OSReport("\nInstruction at 0x%x (read from SRR0) attempted to access " + "invalid address 0x%x (read from DAR)\n", + context->srr0, dar); + break; + case __OS_EXCEPTION_ISI: + OSReport("\nAttempted to fetch instruction from invalid address 0x%x " + "(read from SRR0)\n", + context->srr0); + break; + case __OS_EXCEPTION_ALIGNMENT: + OSReport("\nInstruction at 0x%x (read from SRR0) attempted to access " + "unaligned address 0x%x (read from DAR)\n", + context->srr0, dar); + break; + case __OS_EXCEPTION_PROGRAM: + OSReport("\nProgram exception : Possible illegal instruction/operation " + "at or around 0x%x (read from SRR0)\n", + context->srr0, dar); + break; + case OS_ERROR_PROTECTION: + OSReport("\n"); + OSReport("AI DMA Address = 0x%04x%04x\n", __DSPRegs[0x00000018], __DSPRegs[0x00000018 + 1]); + OSReport("ARAM DMA Address = 0x%04x%04x\n", __DSPRegs[0x00000010], __DSPRegs[0x00000010 + 1]); + OSReport("DI DMA Address = 0x%08x\n", __DIRegs[0x00000005]); + break; + } + + OSReport("\nLast interrupt (%d): SRR0 = 0x%08x TB = 0x%016llx\n", __OSLastInterrupt, __OSLastInterruptSrr0, __OSLastInterruptTime); + + PPCHalt(); +} diff --git a/src/dolphin/os/OSFont.c b/src/dolphin/os/OSFont.c new file mode 100644 index 00000000..a87ba76e --- /dev/null +++ b/src/dolphin/os/OSFont.c @@ -0,0 +1,323 @@ +#include +#include +#include + +static OSFontHeader *FontData; +static u8 *SheetImage; +static u8 *WidthTable; +static int CharsInSheet; + +static u16 HankakuToCode[] = { 0x20C, 0x20D, 0x20E, 0x20F, 0x210, 0x211, 0x212, 0x213, 0x214, 0x215, 0x216, 0x217, 0x218, 0x219, 0x21A, 0x21B, 0x21C, + 0x21D, 0x21E, 0x21F, 0x220, 0x221, 0x222, 0x223, 0x224, 0x225, 0x226, 0x227, 0x228, 0x229, 0x22A, 0x22B, 0x22C, 0x22D, 0x22E, 0x22F, 0x230, 0x231, + 0x232, 0x233, 0x234, 0x235, 0x236, 0x237, 0x238, 0x239, 0x23A, 0x23B, 0x23C, 0x23D, 0x23E, 0x23F, 0x240, 0x241, 0x242, 0x243, 0x244, 0x245, 0x246, + 0x247, 0x248, 0x249, 0x24A, 0x24B, 0x24C, 0x24D, 0x24E, 0x24F, 0x250, 0x251, 0x252, 0x253, 0x254, 0x255, 0x256, 0x257, 0x258, 0x259, 0x25A, 0x25B, + 0x25C, 0x25D, 0x25E, 0x25F, 0x260, 0x261, 0x262, 0x263, 0x264, 0x265, 0x266, 0x267, 0x268, 0x269, 0x26A, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, + 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, + 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x26B, 0x26C, 0x26D, 0x26E, 0x26F, 0x270, 0x271, 0x272, 0x273, 0x274, 0x275, 0x276, 0x277, 0x278, + 0x279, 0x27A, 0x27B, 0x27C, 0x27D, 0x27E, 0x27F, 0x280, 0x281, 0x282, 0x283, 0x284, 0x285, 0x286, 0x287, 0x288, 0x289, 0x28A, 0x28B, 0x28C, 0x28D, + 0x28E, 0x28F, 0x290, 0x291, 0x292, 0x293, 0x294, 0x295, 0x296, 0x297, 0x298, 0x299, 0x29A, 0x29B, 0x29C, 0x29D, 0x29E, 0x29F, 0x2A0, 0x2A1, 0x2A2, + 0x2A3, 0x2A4, 0x2A5, 0x2A6, 0x2A7, 0x2A8, 0x2A9 }; + +static u16 Zenkaku2Code[] = { 0x000, 0x001, 0x002, 0x003, 0x004, 0x005, 0x006, 0x007, 0x008, 0x009, 0x00A, 0x00B, 0x00C, 0x00D, 0x00E, 0x00F, 0x010, + 0x011, 0x012, 0x013, 0x014, 0x015, 0x016, 0x017, 0x018, 0x019, 0x01A, 0x01B, 0x01C, 0x01D, 0x01E, 0x01F, 0x020, 0x021, 0x022, 0x023, 0x024, 0x025, + 0x026, 0x027, 0x028, 0x029, 0x02A, 0x02B, 0x02C, 0x02D, 0x02E, 0x02F, 0x030, 0x031, 0x032, 0x033, 0x034, 0x035, 0x036, 0x037, 0x038, 0x039, 0x03A, + 0x03B, 0x03C, 0x03D, 0x03E, 0x03F, 0x040, 0x041, 0x042, 0x043, 0x044, 0x045, 0x046, 0x047, 0x048, 0x049, 0x04A, 0x04B, 0x04C, 0x04D, 0x04E, 0x04F, + 0x050, 0x051, 0x052, 0x053, 0x054, 0x055, 0x056, 0x057, 0x058, 0x059, 0x05A, 0x05B, 0x05C, 0x05D, 0x05E, 0x05F, 0x060, 0x061, 0x062, 0x063, 0x064, + 0x065, 0x066, 0x067, 0x068, 0x069, 0x06A, 0x06B, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x06C, 0x06D, 0x06E, + 0x06F, 0x070, 0x071, 0x072, 0x073, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x074, 0x075, 0x076, 0x077, 0x078, 0x079, 0x07A, 0x000, + 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x07B, 0x07C, 0x07D, 0x07E, 0x07F, 0x080, 0x081, 0x082, 0x083, 0x084, 0x085, + 0x086, 0x087, 0x088, 0x089, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x08A, 0x08B, 0x08C, 0x08D, 0x08E, 0x08F, 0x090, 0x091, 0x000, 0x000, + 0x000, 0x000, 0x092, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x093, 0x094, 0x095, + 0x096, 0x097, 0x098, 0x099, 0x09A, 0x09B, 0x09C, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x09D, 0x09E, 0x09F, 0x0A0, 0x0A1, 0x0A2, 0x0A3, + 0x0A4, 0x0A5, 0x0A6, 0x0A7, 0x0A8, 0x0A9, 0x0AA, 0x0AB, 0x0AC, 0x0AD, 0x0AE, 0x0AF, 0x0B0, 0x0B1, 0x0B2, 0x0B3, 0x0B4, 0x0B5, 0x0B6, 0x000, 0x000, + 0x000, 0x000, 0x000, 0x000, 0x0B7, 0x0B8, 0x0B9, 0x0BA, 0x0BB, 0x0BC, 0x0BD, 0x0BE, 0x0BF, 0x0C0, 0x0C1, 0x0C2, 0x0C3, 0x0C4, 0x0C5, 0x0C6, 0x0C7, + 0x0C8, 0x0C9, 0x0CA, 0x0CB, 0x0CC, 0x0CD, 0x0CE, 0x0CF, 0x0D0, 0x000, 0x000, 0x000, 0x000, 0x0D1, 0x0D2, 0x0D3, 0x0D4, 0x0D5, 0x0D6, 0x0D7, 0x0D8, + 0x0D9, 0x0DA, 0x0DB, 0x0DC, 0x0DD, 0x0DE, 0x0DF, 0x0E0, 0x0E1, 0x0E2, 0x0E3, 0x0E4, 0x0E5, 0x0E6, 0x0E7, 0x0E8, 0x0E9, 0x0EA, 0x0EB, 0x0EC, 0x0ED, + 0x0EE, 0x0EF, 0x0F0, 0x0F1, 0x0F2, 0x0F3, 0x0F4, 0x0F5, 0x0F6, 0x0F7, 0x0F8, 0x0F9, 0x0FA, 0x0FB, 0x0FC, 0x0FD, 0x0FE, 0x0FF, 0x100, 0x101, 0x102, + 0x103, 0x104, 0x105, 0x106, 0x107, 0x108, 0x109, 0x10A, 0x10B, 0x10C, 0x10D, 0x10E, 0x10F, 0x110, 0x111, 0x112, 0x113, 0x114, 0x115, 0x116, 0x117, + 0x118, 0x119, 0x11A, 0x11B, 0x11C, 0x11D, 0x11E, 0x11F, 0x120, 0x121, 0x122, 0x123, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, + 0x000, 0x000, 0x124, 0x125, 0x126, 0x127, 0x128, 0x129, 0x12A, 0x12B, 0x12C, 0x12D, 0x12E, 0x12F, 0x130, 0x131, 0x132, 0x133, 0x134, 0x135, 0x136, + 0x137, 0x138, 0x139, 0x13A, 0x13B, 0x13C, 0x13D, 0x13E, 0x13F, 0x140, 0x141, 0x142, 0x143, 0x144, 0x145, 0x146, 0x147, 0x148, 0x149, 0x14A, 0x14B, + 0x14C, 0x14D, 0x14E, 0x14F, 0x150, 0x151, 0x152, 0x153, 0x154, 0x155, 0x156, 0x157, 0x158, 0x159, 0x15A, 0x15B, 0x15C, 0x15D, 0x15E, 0x15F, 0x160, + 0x161, 0x162, 0x163, 0x164, 0x165, 0x166, 0x167, 0x168, 0x169, 0x16A, 0x16B, 0x16C, 0x16D, 0x16E, 0x16F, 0x170, 0x171, 0x172, 0x173, 0x174, 0x175, + 0x176, 0x177, 0x178, 0x179, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x17A, 0x17B, 0x17C, 0x17D, 0x17E, 0x17F, 0x180, 0x181, 0x182, + 0x183, 0x184, 0x185, 0x186, 0x187, 0x188, 0x189, 0x18A, 0x18B, 0x18C, 0x18D, 0x18E, 0x18F, 0x190, 0x191, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, + 0x000, 0x000, 0x192, 0x193, 0x194, 0x195, 0x196, 0x197, 0x198, 0x199, 0x19A, 0x19B, 0x19C, 0x19D, 0x19E, 0x19F, 0x1A0, 0x1A1, 0x1A2, 0x1A3, 0x1A4, + 0x1A5, 0x1A6, 0x1A7, 0x1A8, 0x1A9, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, + 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, + 0x000, 0x1AA, 0x1AB, 0x1AC, 0x1AD, 0x1AE, 0x1AF, 0x1B0, 0x1B1, 0x1B2, 0x1B3, 0x1B4, 0x1B5, 0x1B6, 0x1B7, 0x1B8, 0x1B9, 0x1BA, 0x1BB, 0x1BC, 0x1BD, + 0x1BE, 0x1BF, 0x1C0, 0x1C1, 0x1C2, 0x1C3, 0x1C4, 0x1C5, 0x1C6, 0x1C7, 0x1C8, 0x1C9, 0x1CA, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, + 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x1CB, 0x1CC, 0x1CD, 0x1CE, 0x1CF, 0x1D0, 0x1D1, 0x1D2, 0x1D3, 0x1D4, 0x1D5, 0x1D6, 0x1D7, 0x1D8, + 0x1D9, 0x1DA, 0x1DB, 0x1DC, 0x1DD, 0x1DE, 0x1DF, 0x1E0, 0x1E1, 0x1E2, 0x1E3, 0x1E4, 0x1E5, 0x1E6, 0x1E7, 0x1E8, 0x1E9, 0x1EA, 0x1EB, 0x000, 0x000, + 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x1EC, 0x1ED, 0x1EE, 0x1EF, 0x1F0, 0x1F1, 0x1F2, 0x1F3, 0x1F4, 0x1F5, + 0x1F6, 0x1F7, 0x1F8, 0x1F9, 0x1FA, 0x1FB, 0x1FC, 0x1FD, 0x1FE, 0x1FF, 0x200, 0x201, 0x202, 0x203, 0x204, 0x205, 0x206, 0x207, 0x208, 0x209, 0x20A, + 0x20B, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, + 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, + 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x20C, + 0x20D, 0x20E, 0x20F, 0x210, 0x211, 0x212, 0x213, 0x214, 0x215, 0x216, 0x217, 0x218, 0x219, 0x21A, 0x21B, 0x21C, 0x21D, 0x21E, 0x21F, 0x220, 0x221, + 0x222, 0x223, 0x224, 0x225, 0x226, 0x227, 0x228, 0x229, 0x22A, 0x22B, 0x22C, 0x22D, 0x22E, 0x22F, 0x230, 0x231, 0x232, 0x233, 0x234, 0x235, 0x236, + 0x237, 0x238, 0x239, 0x23A, 0x23B, 0x23C, 0x23D, 0x23E, 0x23F, 0x240, 0x241, 0x242, 0x243, 0x244, 0x245, 0x246, 0x247, 0x248, 0x249, 0x24A, 0x24B, + 0x24C, 0x24D, 0x24E, 0x24F, 0x250, 0x251, 0x252, 0x253, 0x254, 0x255, 0x256, 0x257, 0x258, 0x259, 0x25A, 0x25B, 0x25C, 0x25D, 0x25E, 0x25F, 0x260, + 0x261, 0x262, 0x263, 0x264, 0x265, 0x266, 0x267, 0x268, 0x269, 0x26A, 0x26B, 0x26C, 0x26D, 0x26E, 0x26F, 0x270, 0x271, 0x272, 0x273, 0x274, 0x275, + 0x276, 0x277, 0x278, 0x279, 0x27A, 0x27B, 0x27C, 0x27D, 0x27E, 0x27F, 0x280, 0x281, 0x282, 0x283, 0x284, 0x285, 0x286, 0x287, 0x288, 0x289, 0x28A, + 0x28B, 0x28C, 0x28D, 0x28E, 0x28F, 0x290, 0x291, 0x292, 0x293, 0x294, 0x295, 0x296, 0x297, 0x298, 0x299, 0x29A, 0x29B, 0x29C, 0x29D, 0x29E, 0x29F, + 0x2A0, 0x2A1, 0x2A2, 0x2A3, 0x2A4, 0x2A5, 0x2A6, 0x2A7, 0x2A8, 0x2A9, 0x2AA, 0x2AB, 0x2AC, 0x2AD, 0x2AE, 0x2AF, 0x2B0, 0x2B1, 0x2B2, 0x2B3, 0x2B4, + 0x2B5, 0x2B6, 0x2B7, 0x2B8, 0x2B9, 0x2BA, 0x2BB, 0x2BC, 0x2BD, 0x2BE, 0x2BF, 0x2C0, 0x2C1, 0x2C2, 0x2C3, 0x2C4, 0x2C5, 0x2C6, 0x2C7, 0x2C8, 0x000, + 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, + 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, + 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, + 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, + 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, + 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, + 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, + 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, + 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x2C9, 0x2CA, + 0x2CB, 0x2CC, 0x2CD, 0x2CE, 0x2CF, 0x2D0, 0x2D1, 0x2D2, 0x2D3, 0x2D4, 0x2D5, 0x2D6, 0x2D7, 0x2D8, 0x2D9, 0x2DA, 0x2DB, 0x2DC, 0x2DD, 0x2DE, 0x2DF, + 0x2E0, 0x2E1, 0x2E2, 0x2E3, 0x2E4, 0x2E5, 0x2E6, 0x000, 0x2E7, 0x2E8, 0x2E9, 0x2EA, 0x2EB, 0x2EC, 0x2ED, 0x2EE, 0x2EF, 0x2F0, 0x2F1, 0x2F2, 0x2F3, + 0x2F4, 0x2F5, 0x2F6, 0x2F7, 0x2F8, 0x2F9, 0x2FA, 0x2FB, 0x2FC, 0x2FD, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x2FE, 0x2FF, 0x300, + 0x301, 0x302, 0x303, 0x304, 0x305, 0x306, 0x307, 0x308, 0x309, 0x30A, 0x30B, 0x30C, 0x30D, 0x30E, 0x30F, 0x310, 0x311, 0x312, 0x313, 0x314, 0x315, + 0x316, 0x317, 0x318, 0x319, 0x31A, 0x31B, 0x000 }; + +static int GetFontCode(unsigned short code) +{ + if (OSGetFontEncode() == OS_FONT_ENCODE_SJIS) { + if (code >= 0x20 && code <= 0xDF) { + return HankakuToCode[code - 0x20]; + } + + if (code > 0x889E) { + int i = ((code >> 8) - 0x88) * 188; + int j = (code & 0xFF) - 0x40; + + if (j >= 0x40) { + j--; + } + + return (i + j + 0x2BE); + } + + if (code < 0x879E) { + int i = ((code >> 8) - 0x81) * 188; + int j = (code & 0xFF) - 0x40; + + if (j >= 0x40) { + j--; + } + + return Zenkaku2Code[i + j]; + } + } + else if (code > 0x20 && code <= 0xFF) { + return code - 0x20; + } + else { + return 0; + } +} + +static void Decode(unsigned char *s, unsigned char *d) +{ + int i; + int j; + int k; + int p; + int q; + int r7; // huh? DWARF info says these 2 variables might be register names and not actual names. + int r25; + int cnt; + int os; + unsigned int flag; + unsigned int code; + + os = *(int *)(s + 0x4); + r7 = *(int *)(s + 0x8); + r25 = *(int *)(s + 0xC); + + q = 0; + flag = 0; + p = 16; + + do { + // Get next mask + if (flag == 0) { + code = *(u32 *)(s + p); + p += sizeof(u32); + flag = sizeof(u32) * 8; + } + + // Non-linked chunk + if (code & 0x80000000) { + d[q++] = s[r25++]; + } + // Linked chunk + else { + // Read offset from link table + j = s[r7] << 8 | s[r7 + 1]; + r7 += sizeof(u16); + + // Apply offset + k = q - (j & 0x0FFF); + cnt = j >> 12; + if (cnt == 0) { + cnt = s[r25++] + 0x12; + } + else { + cnt += 2; + } + + // Copy chunk + for (i = 0; i < cnt; i++, q++, k++) { + d[q] = d[k - 1]; + } + } + + // Prepare next mask bit + code <<= 1; + flag--; + } while (q < os); +} + +static u32 GetFontSize(u8 *buf) +{ + if (buf[0] == 'Y' && buf[1] == 'a' && buf[2] == 'y') { + return *(u32 *)(buf + 0x4); + } + + return 0; +} + +u16 OSGetFontEncode(void) +{ + static u16 fontEncode = 0xFFFF; + if (fontEncode <= 1) { + return fontEncode; + } + switch (*(int *)OSPhysicalToCached(0xCC)) { + case VI_NTSC: + fontEncode = (__VIRegs[VI_DTV_STAT] & 2) ? OS_FONT_ENCODE_SJIS : OS_FONT_ENCODE_ANSI; + break; + + case VI_PAL: + case VI_MPAL: + case VI_DEBUG: + case VI_DEBUG_PAL: + case VI_EURGB60: + default: + fontEncode = OS_FONT_ENCODE_ANSI; + } + + return fontEncode; +} + +static void ReadROM(void *buf, int length, int offset) +{ + int len; + while (length > 0) { + len = (length <= 0x100) ? length : 0x100; + length -= len; + + while (!__OSReadROM(buf, len, offset)) { + ; + } + + offset += len; + (u8 *)buf += len; + } +} + +static u32 ReadFont(void *img) +{ + if (OSGetFontEncode() == OS_FONT_ENCODE_SJIS) { + ReadROM(img, OS_FONT_ROM_SIZE_SJIS, 0x1AFF00); + } + else { + ReadROM(img, OS_FONT_ROM_SIZE_ANSI, 0x1FCF00); + } + + return GetFontSize(img); +} + +u32 OSLoadFont(OSFontHeader *fontData, void *temp) +{ + u32 size; + + SheetImage = NULL; + size = ReadFont(temp); + if (size) { + Decode(temp, (void *)fontData); + FontData = fontData; + WidthTable = (u8 *)FontData + FontData->widthTable; + CharsInSheet = FontData->sheetColumn * FontData->sheetRow; + } + + return size; +} + +char *OSGetFontTexel(char *string, void *image, long pos, long stride, long *width) +{ + unsigned short code; + unsigned char *src; + unsigned char *dst; + int fontCode; + int sheet; + int numChars; + int row; + int column; + int x; + int y; + int offsetSrc; + int offsetDst; + unsigned char *colorIndex; + unsigned char *imageSrc; + + // ASSERTLINE(0x1F6, FontData && !SheetImage); + + code = *string; + if (code == '\0') { + return string; + } + + string++; + if (OSGetFontEncode() == OS_FONT_ENCODE_SJIS) { + if ((((code >= 0x80) && (code <= 0x9F)) || ((code >= 0xE0) && (code <= 0xFF))) && ((s8)*string != 0U)) { + code = (code << 8) | (*string++); // Shift-JIS encoded byte + } + } + colorIndex = &FontData->c0; + + // ASSERTLINE(0x209, FontData->sheetFormat == GX_TF_I4); + + fontCode = GetFontCode(code); + + sheet = fontCode / CharsInSheet; + numChars = fontCode - (sheet * CharsInSheet); + row = numChars / FontData->sheetColumn; + column = (numChars - (row * FontData->sheetColumn)); + row *= FontData->cellHeight; + column *= FontData->cellWidth; + imageSrc = (u8 *)FontData + FontData->sheetImage; + imageSrc += (sheet * FontData->sheetSize) / 2; + + for (y = 0; y < FontData->cellHeight; y++) { + for (x = 0; x < FontData->cellWidth; x++) { + src = imageSrc + (((FontData->sheetWidth / 8) * 32) / 2) * ((row + y) / 8); + src += ((column + x) / 8) * 16; + src += ((row + y) % 8) * 2; + src += ((column + x) % 8) / 4; + + offsetSrc = (column + x) % 4; + + dst = (u8 *)image + ((y / 8) * (((stride * 4) / 8) * 32)); + dst += (((pos + x) / 8) * 32); + dst += ((y % 8) * 4); + dst += ((pos + x) % 8) / 2; + + offsetDst = (pos + x) % 2; + + *dst |= colorIndex[*src >> (6 - (offsetSrc * 2)) & 3] & ((offsetDst != 0) ? 0x0F : 0xF0); + } + } + *width = WidthTable[fontCode]; + + return string; +} diff --git a/src/dolphin/os/OSInterrupt.c b/src/dolphin/os/OSInterrupt.c new file mode 100644 index 00000000..061e7daf --- /dev/null +++ b/src/dolphin/os/OSInterrupt.c @@ -0,0 +1,434 @@ +#include +#include +#include + +static asm void ExternalInterruptHandler(register __OSException exception, register OSContext *context); + +static __OSInterruptHandler *InterruptHandlerTable; + +static OSInterruptMask InterruptPrioTable[] = { + OS_INTERRUPTMASK_PI_ERROR, + OS_INTERRUPTMASK_PI_DEBUG, + OS_INTERRUPTMASK_MEM, + OS_INTERRUPTMASK_PI_RSW, + OS_INTERRUPTMASK_PI_VI, + OS_INTERRUPTMASK_PI_PE, + OS_INTERRUPTMASK_PI_HSP, + OS_INTERRUPTMASK_DSP_ARAM | OS_INTERRUPTMASK_DSP_DSP | OS_INTERRUPTMASK_AI | OS_INTERRUPTMASK_EXI | OS_INTERRUPTMASK_PI_SI + | OS_INTERRUPTMASK_PI_DI, + OS_INTERRUPTMASK_DSP_AI, + OS_INTERRUPTMASK_PI_CP, + 0xFFFFFFFF, +}; + +asm BOOL OSDisableInterrupts(void) +{ + // clang-format off + nofralloc +entry __RAS_OSDisableInterrupts_begin + mfmsr r3 + rlwinm r4, r3, 0, 17, 15 + mtmsr r4 + rlwinm r3, r3, 17, 31, 31 +entry __RAS_OSDisableInterrupts_end + blr + // clang-format on +} +asm BOOL OSEnableInterrupts(void) +{ + // clang-format off + nofralloc + + mfmsr r3 + ori r4, r3, 0x8000 + mtmsr r4 + rlwinm r3, r3, 17, 31, 31 + blr + // clang-format on +} + +asm BOOL OSRestoreInterrupts(register BOOL level) { + // clang-format off + + nofralloc + + cmpwi level, 0 + mfmsr r4 + beq _disable + ori r5, r4, 0x8000 + b _restore +_disable: + rlwinm r5, r4, 0, 17, 15 +_restore: + mtmsr r5 + rlwinm r3, r4, 17, 31, 31 + blr + // clang-format on +} + +__OSInterruptHandler __OSSetInterruptHandler(__OSInterrupt interrupt, __OSInterruptHandler handler) +{ + __OSInterruptHandler oldHandler; + + oldHandler = InterruptHandlerTable[interrupt]; + InterruptHandlerTable[interrupt] = handler; + return oldHandler; +} + +__OSInterruptHandler __OSGetInterruptHandler(__OSInterrupt interrupt) +{ + return InterruptHandlerTable[interrupt]; +} + +void __OSInterruptInit(void) +{ + InterruptHandlerTable = OSPhysicalToCached(0x3040); + memset(InterruptHandlerTable, 0, __OS_INTERRUPT_MAX * sizeof(__OSInterruptHandler)); + + *(OSInterruptMask *)OSPhysicalToCached(0x00C4) = 0; + + *(OSInterruptMask *)OSPhysicalToCached(0x00C8) = 0; + + __PIRegs[1] = 0xf0; + + __OSMaskInterrupts(OS_INTERRUPTMASK_MEM | OS_INTERRUPTMASK_DSP | OS_INTERRUPTMASK_AI | OS_INTERRUPTMASK_EXI | OS_INTERRUPTMASK_PI); + + __OSSetExceptionHandler(4, ExternalInterruptHandler); +} + +u32 SetInterruptMask(OSInterruptMask mask, OSInterruptMask current) +{ + u32 reg; + + switch (__cntlzw(mask)) { + case __OS_INTERRUPT_MEM_0: + case __OS_INTERRUPT_MEM_1: + case __OS_INTERRUPT_MEM_2: + case __OS_INTERRUPT_MEM_3: + case __OS_INTERRUPT_MEM_ADDRESS: + reg = 0; + if (!(current & OS_INTERRUPTMASK_MEM_0)) + reg |= 0x1; + if (!(current & OS_INTERRUPTMASK_MEM_1)) + reg |= 0x2; + if (!(current & OS_INTERRUPTMASK_MEM_2)) + reg |= 0x4; + if (!(current & OS_INTERRUPTMASK_MEM_3)) + reg |= 0x8; + if (!(current & OS_INTERRUPTMASK_MEM_ADDRESS)) + reg |= 0x10; + __MEMRegs[0x0000000e] = (u16)reg; + mask &= ~OS_INTERRUPTMASK_MEM; + break; + case __OS_INTERRUPT_DSP_AI: + case __OS_INTERRUPT_DSP_ARAM: + case __OS_INTERRUPT_DSP_DSP: + reg = __DSPRegs[0x00000005]; + reg &= ~0x1F8; + if (!(current & OS_INTERRUPTMASK_DSP_AI)) + reg |= 0x10; + if (!(current & OS_INTERRUPTMASK_DSP_ARAM)) + reg |= 0x40; + if (!(current & OS_INTERRUPTMASK_DSP_DSP)) + reg |= 0x100; + __DSPRegs[0x00000005] = (u16)reg; + mask &= ~OS_INTERRUPTMASK_DSP; + break; + case __OS_INTERRUPT_AI_AI: + reg = __AIRegs[0]; + reg &= ~0x2C; + if (!(current & OS_INTERRUPTMASK_AI_AI)) + reg |= 0x4; + __AIRegs[0] = reg; + mask &= ~OS_INTERRUPTMASK_AI; + break; + case __OS_INTERRUPT_EXI_0_EXI: + case __OS_INTERRUPT_EXI_0_TC: + case __OS_INTERRUPT_EXI_0_EXT: + reg = __EXIRegs[0]; + reg &= ~0x2C0F; + if (!(current & OS_INTERRUPTMASK_EXI_0_EXI)) + reg |= 0x1; + if (!(current & OS_INTERRUPTMASK_EXI_0_TC)) + reg |= 0x4; + if (!(current & OS_INTERRUPTMASK_EXI_0_EXT)) + reg |= 0x400; + __EXIRegs[0] = reg; + mask &= ~OS_INTERRUPTMASK_EXI_0; + break; + case __OS_INTERRUPT_EXI_1_EXI: + case __OS_INTERRUPT_EXI_1_TC: + case __OS_INTERRUPT_EXI_1_EXT: + reg = __EXIRegs[5]; + reg &= ~0xC0F; + + if (!(current & OS_INTERRUPTMASK_EXI_1_EXI)) + reg |= 0x1; + if (!(current & OS_INTERRUPTMASK_EXI_1_TC)) + reg |= 0x4; + if (!(current & OS_INTERRUPTMASK_EXI_1_EXT)) + reg |= 0x400; + __EXIRegs[5] = reg; + mask &= ~OS_INTERRUPTMASK_EXI_1; + break; + case __OS_INTERRUPT_EXI_2_EXI: + case __OS_INTERRUPT_EXI_2_TC: + reg = __EXIRegs[10]; + reg &= ~0xF; + if (!(current & OS_INTERRUPTMASK_EXI_2_EXI)) + reg |= 0x1; + if (!(current & OS_INTERRUPTMASK_EXI_2_TC)) + reg |= 0x4; + + __EXIRegs[10] = reg; + mask &= ~OS_INTERRUPTMASK_EXI_2; + break; + case __OS_INTERRUPT_PI_CP: + case __OS_INTERRUPT_PI_SI: + case __OS_INTERRUPT_PI_DI: + case __OS_INTERRUPT_PI_RSW: + case __OS_INTERRUPT_PI_ERROR: + case __OS_INTERRUPT_PI_VI: + case __OS_INTERRUPT_PI_DEBUG: + case __OS_INTERRUPT_PI_PE_TOKEN: + case __OS_INTERRUPT_PI_PE_FINISH: + case __OS_INTERRUPT_PI_HSP: + reg = 0xF0; + + if (!(current & OS_INTERRUPTMASK_PI_CP)) { + reg |= 0x800; + } + if (!(current & OS_INTERRUPTMASK_PI_SI)) { + reg |= 0x8; + } + if (!(current & OS_INTERRUPTMASK_PI_DI)) { + reg |= 0x4; + } + if (!(current & OS_INTERRUPTMASK_PI_RSW)) { + reg |= 0x2; + } + if (!(current & OS_INTERRUPTMASK_PI_ERROR)) { + reg |= 0x1; + } + if (!(current & OS_INTERRUPTMASK_PI_VI)) { + reg |= 0x100; + } + if (!(current & OS_INTERRUPTMASK_PI_DEBUG)) { + reg |= 0x1000; + } + if (!(current & OS_INTERRUPTMASK_PI_PE_TOKEN)) { + reg |= 0x200; + } + if (!(current & OS_INTERRUPTMASK_PI_PE_FINISH)) { + reg |= 0x400; + } + if (!(current & OS_INTERRUPTMASK_PI_HSP)) { + reg |= 0x2000; + } + __PIRegs[1] = reg; + mask &= ~OS_INTERRUPTMASK_PI; + break; + default: + break; + } + return mask; +} + +OSInterruptMask OSGetInterruptMask(void) +{ + return *(OSInterruptMask *)OSPhysicalToCached(0x00C8); +} + +OSInterruptMask OSSetInterruptMask(OSInterruptMask local) +{ + BOOL enabled; + OSInterruptMask global; + OSInterruptMask prev; + OSInterruptMask mask; + + enabled = OSDisableInterrupts(); + global = *(OSInterruptMask *)OSPhysicalToCached(0x00C4); + prev = *(OSInterruptMask *)OSPhysicalToCached(0x00C8); + mask = (global | prev) ^ local; + *(OSInterruptMask *)OSPhysicalToCached(0x00C8) = local; + while (mask) { + mask = SetInterruptMask(mask, global | local); + } + OSRestoreInterrupts(enabled); + return prev; +} + +OSInterruptMask __OSMaskInterrupts(OSInterruptMask global) +{ + BOOL enabled; + OSInterruptMask prev; + OSInterruptMask local; + OSInterruptMask mask; + + enabled = OSDisableInterrupts(); + prev = *(OSInterruptMask *)OSPhysicalToCached(0x00C4); + local = *(OSInterruptMask *)OSPhysicalToCached(0x00C8); + mask = ~(prev | local) & global; + global |= prev; + *(OSInterruptMask *)OSPhysicalToCached(0x00C4) = global; + while (mask) { + mask = SetInterruptMask(mask, global | local); + } + OSRestoreInterrupts(enabled); + return prev; +} + +OSInterruptMask __OSUnmaskInterrupts(OSInterruptMask global) +{ + BOOL enabled; + OSInterruptMask prev; + OSInterruptMask local; + OSInterruptMask mask; + + enabled = OSDisableInterrupts(); + prev = *(OSInterruptMask *)OSPhysicalToCached(0x00C4); + local = *(OSInterruptMask *)OSPhysicalToCached(0x00C8); + mask = (prev | local) & global; + global = prev & ~global; + *(OSInterruptMask *)OSPhysicalToCached(0x00C4) = global; + while (mask) { + mask = SetInterruptMask(mask, global | local); + } + OSRestoreInterrupts(enabled); + return prev; +} + +volatile OSTime __OSLastInterruptTime; +volatile __OSInterrupt __OSLastInterrupt; +volatile u32 __OSLastInterruptSrr0; + +void __OSDispatchInterrupt(__OSException exception, OSContext *context) +{ + u32 intsr; + u32 reg; + OSInterruptMask cause; + OSInterruptMask unmasked; + OSInterruptMask *prio; + __OSInterrupt interrupt; + __OSInterruptHandler handler; + intsr = __PIRegs[0]; + intsr &= ~0x00010000; + + if (intsr == 0 || (intsr & __PIRegs[1]) == 0) { + OSLoadContext(context); + } + + cause = 0; + + if (intsr & 0x00000080) { + reg = __MEMRegs[15]; + if (reg & 0x1) + cause |= OS_INTERRUPTMASK_MEM_0; + if (reg & 0x2) + cause |= OS_INTERRUPTMASK_MEM_1; + if (reg & 0x4) + cause |= OS_INTERRUPTMASK_MEM_2; + if (reg & 0x8) + cause |= OS_INTERRUPTMASK_MEM_3; + if (reg & 0x10) + cause |= OS_INTERRUPTMASK_MEM_ADDRESS; + } + + if (intsr & 0x00000040) { + reg = __DSPRegs[5]; + if (reg & 0x8) + cause |= OS_INTERRUPTMASK_DSP_AI; + if (reg & 0x20) + cause |= OS_INTERRUPTMASK_DSP_ARAM; + if (reg & 0x80) + cause |= OS_INTERRUPTMASK_DSP_DSP; + } + + if (intsr & 0x00000020) { + reg = __AIRegs[0]; + if (reg & 0x8) + cause |= OS_INTERRUPTMASK_AI_AI; + } + + if (intsr & 0x00000010) { + reg = __EXIRegs[0]; + if (reg & 0x2) + cause |= OS_INTERRUPTMASK_EXI_0_EXI; + if (reg & 0x8) + cause |= OS_INTERRUPTMASK_EXI_0_TC; + if (reg & 0x800) + cause |= OS_INTERRUPTMASK_EXI_0_EXT; + reg = __EXIRegs[5]; + if (reg & 0x2) + cause |= OS_INTERRUPTMASK_EXI_1_EXI; + if (reg & 0x8) + cause |= OS_INTERRUPTMASK_EXI_1_TC; + if (reg & 0x800) + cause |= OS_INTERRUPTMASK_EXI_1_EXT; + reg = __EXIRegs[10]; + if (reg & 0x2) + cause |= OS_INTERRUPTMASK_EXI_2_EXI; + if (reg & 0x8) + cause |= OS_INTERRUPTMASK_EXI_2_TC; + } + + if (intsr & 0x00002000) + cause |= OS_INTERRUPTMASK_PI_HSP; + if (intsr & 0x00001000) + cause |= OS_INTERRUPTMASK_PI_DEBUG; + if (intsr & 0x00000400) + cause |= OS_INTERRUPTMASK_PI_PE_FINISH; + if (intsr & 0x00000200) + cause |= OS_INTERRUPTMASK_PI_PE_TOKEN; + if (intsr & 0x00000100) + cause |= OS_INTERRUPTMASK_PI_VI; + if (intsr & 0x00000008) + cause |= OS_INTERRUPTMASK_PI_SI; + if (intsr & 0x00000004) + cause |= OS_INTERRUPTMASK_PI_DI; + if (intsr & 0x00000002) + cause |= OS_INTERRUPTMASK_PI_RSW; + if (intsr & 0x00000800) + cause |= OS_INTERRUPTMASK_PI_CP; + if (intsr & 0x00000001) + cause |= OS_INTERRUPTMASK_PI_ERROR; + + unmasked = cause & ~(*(OSInterruptMask *)OSPhysicalToCached(0x00C4) | *(OSInterruptMask *)OSPhysicalToCached(0x00C8)); + if (unmasked) { + for (prio = InterruptPrioTable;; ++prio) { + if (unmasked & *prio) { + interrupt = (__OSInterrupt)__cntlzw(unmasked & *prio); + break; + } + } + + handler = __OSGetInterruptHandler(interrupt); + if (handler) { + if (__OS_INTERRUPT_MEM_ADDRESS < interrupt) { + __OSLastInterrupt = interrupt; + __OSLastInterruptTime = OSGetTime(); + __OSLastInterruptSrr0 = context->srr0; + } + + OSDisableScheduler(); + handler(interrupt, context); + OSEnableScheduler(); + __OSReschedule(); + OSLoadContext(context); + } + } + + OSLoadContext(context); +} + +static asm void ExternalInterruptHandler(register __OSException exception, register OSContext *context) +{ +#pragma unused(exception) + // clang-format off + nofralloc + OS_EXCEPTION_SAVE_GPRS(context) + + stwu r1, -8(r1) + b __OSDispatchInterrupt + // clang-format on +} diff --git a/src/dolphin/os/OSLink.c b/src/dolphin/os/OSLink.c new file mode 100644 index 00000000..c3f3e03c --- /dev/null +++ b/src/dolphin/os/OSLink.c @@ -0,0 +1,504 @@ +#include "dolphin/os.h" + +#define SHN_UNDEF 0 +#define SHN_LORESERVE 0xff00 +#define SHN_LOPROC 0xff00 +#define SHN_HIPROC 0xff1f +#define SHN_ABS 0xfff1 +#define SHN_COMMON 0xfff2 +#define SHN_HIRESERVE 0xffff + +#define ELF32_R_SYM(i) ((i) >> 8) +#define ELF32_R_TYPE(i) ((unsigned char)(i)) +#define ELF32_R_INFO(s, t) (((s) << 8) + (unsigned char)(t)) + +// Name Value Field Calculation +#define R_PPC_NONE 0 // none none +#define R_PPC_ADDR32 1 // word32 S + A +#define R_PPC_ADDR24 2 // low24* (S + A) >> 2 +#define R_PPC_ADDR16 3 // half16* S + A +#define R_PPC_ADDR16_LO 4 // half16 #lo(S + A) +#define R_PPC_ADDR16_HI 5 // half16 #hi(S + A) +#define R_PPC_ADDR16_HA 6 // half16 #ha(S + A) +#define R_PPC_ADDR14 7 // low14* (S + A) >> 2 +#define R_PPC_ADDR14_BRTAKEN 8 // low14* (S + A) >> 2 +#define R_PPC_ADDR14_BRNTAKEN 9 // low14* (S + A) >> 2 +#define R_PPC_REL24 10 // low24* (S + A - P) >> 2 +#define R_PPC_REL14 11 // low14* (S + A - P) >> 2 +#define R_PPC_REL14_BRTAKEN 12 // low14* (S + A - P) >> 2 +#define R_PPC_REL14_BRNTAKEN 13 // low14* (S + A - P) >> 2 + +#define R_PPC_GOT16 14 // half16* G + A +#define R_PPC_GOT16_LO 15 // half16 #lo(G + A) +#define R_PPC_GOT16_HI 16 // half16 #hi(G + A) +#define R_PPC_GOT16_HA 17 // half16 #ha(G + A) +#define R_PPC_PLTREL24 18 // low24* (L + A - P) >> 2 +#define R_PPC_COPY 19 // none none +#define R_PPC_GLOB_DAT 20 // word32 S + A +#define R_PPC_JMP_SLOT 21 // none +#define R_PPC_RELATIVE 22 // word32 B + A + +#define R_PPC_LOCAL24PC 23 // low24* + +#define R_PPC_UADDR32 24 // word32 S + A +#define R_PPC_UADDR16 25 // half16* S + A +#define R_PPC_REL32 26 // word32 S + A - P + +#define R_PPC_PLT32 27 // word32 L + A +#define R_PPC_PLTREL32 28 // word32 L + A - P +#define R_PPC_PLT16_LO 29 // half16 #lo(L + A) +#define R_PPL_PLT16_HI 30 // half16 #hi(L + A) +#define R_PPC_PLT16_HA 31 // half16 #ha(L + A) + +#define R_PPC_SDAREL16 32 // half16* S + A - _SDA_BASE_ +#define R_PPC_SECTOFF 33 // half16* R + A +#define R_PPC_SECTOFF_LO 34 // half16 #lo(R + A) +#define R_PPC_SECTOFF_HI 35 // half16 #hi(R + A) +#define R_PPC_SECTOFF_HA 36 // half16 #ha(R + A) +#define R_PPC_ADDR30 37 // word30 (S + A - P) >> 2 + +#define R_PPC_EMB_NADDR32 101 // uword32 N (A - S) +#define R_PPC_EMB_NADDR16 102 // uhalf16 Y (A - S) +#define R_PPC_EMB_NADDR16_LO 103 // uhalf16 N #lo(A - S) +#define R_PPC_EMB_NADDR16_HI 104 // uhalf16 N #hi(A - S) +#define R_PPC_EMB_NADDR16_HA 105 // uhalf16 N #ha(A - S) +#define R_PPC_EMB_SDAI16 106 // uhalf16 Y T +#define R_PPC_EMB_SDA2I16 107 // uhalf16 Y U +#define R_PPC_EMB_SDA2REL 108 // uhalf16 Y S + A - _SDA2_BASE_ +#define R_PPC_EMB_SDA21 109 // ulow21 N +#define R_PPC_EMB_MRKREF 110 // none N +#define R_PPC_EMB_RELSEC16 111 // uhalf16 Y V + A +#define R_PPC_EMB_RELST_LO 112 // uhalf16 N #lo(W + A) +#define R_PPC_EMB_RELST_HI 113 // uhalf16 N #hi(W + A) +#define R_PPC_EMB_RELST_HA 114 // uhalf16 N #ha(W + A) +#define R_PPC_EMB_BIT_FLD 115 // uword32 Y +#define R_PPC_EMB_RELSDA 116 // uhalf16 Y + +OSModuleQueue __OSModuleInfoList : (OS_BASE_CACHED | 0x30C8); +const void *__OSStringTable : (OS_BASE_CACHED | 0x30D0); + +#pragma dont_inline on +__declspec(weak) void OSNotifyLink(void) { } + +__declspec(weak) void OSNotifyUnlink(void) { } + +#pragma dont_inline reset + +#define EnqueueTail(queue, moduleInfo, link) \ + do { \ + OSModuleInfo *__prev; \ + \ + __prev = (queue)->tail; \ + if (__prev == NULL) \ + (queue)->head = (moduleInfo); \ + else \ + __prev->link.next = (moduleInfo); \ + (moduleInfo)->link.prev = __prev; \ + (moduleInfo)->link.next = NULL; \ + (queue)->tail = (moduleInfo); \ + } while (0) + +#define DequeueItem(queue, moduleInfo, link) \ + do { \ + OSModuleInfo *__next; \ + OSModuleInfo *__prev; \ + \ + __next = (moduleInfo)->link.next; \ + __prev = (moduleInfo)->link.prev; \ + \ + if (__next == NULL) \ + (queue)->tail = __prev; \ + else \ + __next->link.prev = __prev; \ + \ + if (__prev == NULL) \ + (queue)->head = __next; \ + else \ + __prev->link.next = __next; \ + } while (0) + +void OSSetStringTable(const void *stringTable) +{ + __OSStringTable = stringTable; +} + +static BOOL Relocate(OSModuleHeader *newModule, OSModuleHeader *module) +{ + OSModuleID idNew; + OSImportInfo *imp; + OSRel *rel; + OSSectionInfo *si; + OSSectionInfo *siFlush; + u32 *p; + u32 offset; + u32 x; + + idNew = newModule ? newModule->info.id : 0; + for (imp = (OSImportInfo *)module->impOffset; imp < (OSImportInfo *)(module->impOffset + module->impSize); imp++) { + if (imp->id == idNew) { + goto Found; + } + } + return FALSE; + +Found: + siFlush = 0; + for (rel = (OSRel *)imp->offset; rel->type != R_DOLPHIN_END; rel++) { + (u8 *)p += rel->offset; + if (idNew) { + si = &OSGetSectionInfo(newModule)[rel->section]; + offset = OS_SECTIONINFO_OFFSET(si->offset); + } + else { + offset = 0; + } + switch (rel->type) { + case R_PPC_NONE: + break; + case R_PPC_ADDR32: + x = offset + rel->addend; + *p = x; + break; + case R_PPC_ADDR24: + x = offset + rel->addend; + *p = (*p & ~0x03fffffc) | (x & 0x03fffffc); + break; + case R_PPC_ADDR16: + x = offset + rel->addend; + *(u16 *)p = (u16)(x & 0xffff); + break; + case R_PPC_ADDR16_LO: + x = offset + rel->addend; + *(u16 *)p = (u16)(x & 0xffff); + break; + case R_PPC_ADDR16_HI: + x = offset + rel->addend; + *(u16 *)p = (u16)(((x >> 16) & 0xffff)); + break; + case R_PPC_ADDR16_HA: + x = offset + rel->addend; + *(u16 *)p = (u16)(((x >> 16) + ((x & 0x8000) ? 1 : 0)) & 0xffff); + break; + case R_PPC_REL24: + x = offset + rel->addend - (u32)p; + *p = (*p & ~0x03fffffc) | (x & 0x03fffffc); + break; + case R_DOLPHIN_NOP: + break; + case R_DOLPHIN_SECTION: + si = &OSGetSectionInfo(module)[rel->section]; + p = (u32 *)OS_SECTIONINFO_OFFSET(si->offset); + if (siFlush) { + offset = OS_SECTIONINFO_OFFSET(siFlush->offset); + DCFlushRange((void *)offset, siFlush->size); + ICInvalidateRange((void *)offset, siFlush->size); + } + siFlush = (si->offset & OS_SECTIONINFO_EXEC) ? si : 0; + break; + default: + OSReport("OSLink: unknown relocation type %3d\n", rel->type); + break; + } + } + + if (siFlush) { + offset = OS_SECTIONINFO_OFFSET(siFlush->offset); + DCFlushRange((void *)offset, siFlush->size); + ICInvalidateRange((void *)offset, siFlush->size); + } + + return TRUE; +} + +#if OS_MODULE_VERSION >= 3 +static BOOL Link(OSModuleInfo *newModule, void *bss, BOOL fixed) +{ + u32 i; + OSSectionInfo *si; + OSModuleHeader *moduleHeader; + OSModuleInfo *moduleInfo; + OSImportInfo *imp; + + moduleHeader = (OSModuleHeader *)newModule; + moduleHeader->bssSection = 0; + + if (OS_MODULE_VERSION < newModule->version + || 2 <= newModule->version + && (moduleHeader->align && (u32)newModule % moduleHeader->align != 0 + || moduleHeader->bssAlign && (u32)bss % moduleHeader->bssAlign != 0)) { + return FALSE; + } + + EnqueueTail(&__OSModuleInfoList, newModule, link); + newModule->sectionInfoOffset += (u32)moduleHeader; + moduleHeader->relOffset += (u32)moduleHeader; + moduleHeader->impOffset += (u32)moduleHeader; + if (3 <= newModule->version) { + moduleHeader->fixSize += (u32)moduleHeader; + } + for (i = 1; i < newModule->numSections; i++) { + si = &OSGetSectionInfo(newModule)[i]; + if (si->offset != 0) { + si->offset += (u32)moduleHeader; + } + else if (si->size != 0) { + moduleHeader->bssSection = (u8)i; + si->offset = (u32)bss; + bss = (void *)((u32)bss + si->size); + } + } + for (imp = (OSImportInfo *)moduleHeader->impOffset; imp < (OSImportInfo *)(moduleHeader->impOffset + moduleHeader->impSize); imp++) { + imp->offset += (u32)moduleHeader; + } + if (moduleHeader->prologSection != SHN_UNDEF) { + moduleHeader->prolog += OS_SECTIONINFO_OFFSET(OSGetSectionInfo(newModule)[moduleHeader->prologSection].offset); + } + if (moduleHeader->epilogSection != SHN_UNDEF) { + moduleHeader->epilog += OS_SECTIONINFO_OFFSET(OSGetSectionInfo(newModule)[moduleHeader->epilogSection].offset); + } + if (moduleHeader->unresolvedSection != SHN_UNDEF) { + moduleHeader->unresolved += OS_SECTIONINFO_OFFSET(OSGetSectionInfo(newModule)[moduleHeader->unresolvedSection].offset); + } + if (__OSStringTable) { + newModule->nameOffset += (u32)__OSStringTable; + } + + Relocate(0, moduleHeader); + + for (moduleInfo = __OSModuleInfoList.head; moduleInfo; moduleInfo = moduleInfo->link.next) { + Relocate(moduleHeader, (OSModuleHeader *)moduleInfo); + if (moduleInfo != newModule) { + Relocate((OSModuleHeader *)moduleInfo, moduleHeader); + } + } + + if (fixed) { + for (imp = (OSImportInfo *)moduleHeader->impOffset; imp < (OSImportInfo *)(moduleHeader->impOffset + moduleHeader->impSize); imp++) { + if (imp->id == 0 || imp->id == newModule->id) { + moduleHeader->impSize = (u32)((u8 *)imp - (u8 *)moduleHeader->impOffset); + break; + } + } + } + + memset(bss, 0, moduleHeader->bssSize); + + OSNotifyLink(newModule); + + return TRUE; +} + +BOOL OSLink(OSModuleInfo *newModule, void *bss) +{ + return Link(newModule, bss, FALSE); +} + +BOOL OSLinkFixed(OSModuleInfo *newModule, void *bss) +{ + if (OS_MODULE_VERSION < newModule->version || newModule->version < 3) { + return FALSE; + } + return Link(newModule, bss, TRUE); +} +#else +BOOL OSLink(OSModuleInfo *newModule, void *bss) +{ + u32 i; + OSSectionInfo *si; + OSModuleHeader *moduleHeader; + OSModuleInfo *moduleInfo; + OSImportInfo *imp; + + moduleHeader = (OSModuleHeader *)newModule; + + if (OS_MODULE_VERSION < newModule->version + || 2 <= newModule->version + && (moduleHeader->align && (u32)newModule % moduleHeader->align != 0 + || moduleHeader->bssAlign && (u32)bss % moduleHeader->bssAlign != 0)) { + return FALSE; + } + + EnqueueTail(&__OSModuleInfoList, newModule, link); + memset(bss, 0, moduleHeader->bssSize); + newModule->sectionInfoOffset += (u32)moduleHeader; + moduleHeader->relOffset += (u32)moduleHeader; + moduleHeader->impOffset += (u32)moduleHeader; + + for (i = 0; i < newModule->numSections; i++) { + si = &OSGetSectionInfo(newModule)[i]; + if (si->offset != 0) { + si->offset += (u32)moduleHeader; + } + else if (si->size != 0) { + si->offset = (u32)bss; + bss = (void *)((u32)bss + si->size); + } + } + for (imp = (OSImportInfo *)moduleHeader->impOffset; imp < (OSImportInfo *)(moduleHeader->impOffset + moduleHeader->impSize); imp++) { + imp->offset += (u32)moduleHeader; + } + if (moduleHeader->prologSection != SHN_UNDEF) { + moduleHeader->prolog += OS_SECTIONINFO_OFFSET(OSGetSectionInfo(newModule)[moduleHeader->prologSection].offset); + } + if (moduleHeader->epilogSection != SHN_UNDEF) { + moduleHeader->epilog += OS_SECTIONINFO_OFFSET(OSGetSectionInfo(newModule)[moduleHeader->epilogSection].offset); + } + if (moduleHeader->unresolvedSection != SHN_UNDEF) { + moduleHeader->unresolved += OS_SECTIONINFO_OFFSET(OSGetSectionInfo(newModule)[moduleHeader->unresolvedSection].offset); + } + if (__OSStringTable) { + newModule->nameOffset += (u32)__OSStringTable; + } + + Relocate(0, moduleHeader); + + for (moduleInfo = __OSModuleInfoList.head; moduleInfo; moduleInfo = moduleInfo->link.next) { + Relocate(moduleHeader, (OSModuleHeader *)moduleInfo); + if (moduleInfo != newModule) { + Relocate((OSModuleHeader *)moduleInfo, moduleHeader); + } + } + + OSNotifyLink(); + + return TRUE; +} +#endif + +static BOOL Undo(OSModuleHeader *newModule, OSModuleHeader *module) +{ + OSModuleID idNew; + OSImportInfo *imp; + OSRel *rel; + OSSectionInfo *si; + OSSectionInfo *siFlush; + u32 *p; + u32 offset; + u32 x; + + idNew = newModule->info.id; + + for (imp = (OSImportInfo *)module->impOffset; imp < (OSImportInfo *)(module->impOffset + module->impSize); imp++) { + if (imp->id == idNew) { + goto Found; + } + } + return FALSE; + +Found: + siFlush = 0; + for (rel = (OSRel *)imp->offset; rel->type != R_DOLPHIN_END; rel++) { + (u8 *)p += rel->offset; + si = &OSGetSectionInfo(newModule)[rel->section]; + offset = OS_SECTIONINFO_OFFSET(si->offset); + x = 0; + switch (rel->type) { + case R_PPC_NONE: + break; + case R_PPC_ADDR32: + *p = x; + break; + case R_PPC_ADDR24: + *p = (*p & ~0x03fffffc) | (x & 0x03fffffc); + break; + case R_PPC_ADDR16: + *(u16 *)p = (u16)(x & 0xffff); + break; + case R_PPC_ADDR16_LO: + *(u16 *)p = (u16)(x & 0xffff); + break; + case R_PPC_ADDR16_HI: + *(u16 *)p = (u16)(((x >> 16) & 0xffff)); + break; + case R_PPC_ADDR16_HA: + *(u16 *)p = (u16)(((x >> 16) + ((x & 0x8000) ? 1 : 0)) & 0xffff); + break; + case R_PPC_REL24: + if (module->unresolvedSection != SHN_UNDEF) { + x = (u32)module->unresolved - (u32)p; + } + *p = (*p & ~0x03fffffc) | (x & 0x03fffffc); + break; + case R_DOLPHIN_NOP: + break; + case R_DOLPHIN_SECTION: + si = &OSGetSectionInfo(module)[rel->section]; + p = (u32 *)OS_SECTIONINFO_OFFSET(si->offset); + if (siFlush) { + offset = OS_SECTIONINFO_OFFSET(siFlush->offset); + DCFlushRange((void *)offset, siFlush->size); + ICInvalidateRange((void *)offset, siFlush->size); + } + siFlush = (si->offset & OS_SECTIONINFO_EXEC) ? si : 0; + break; + default: + OSReport("OSUnlink: unknown relocation type %3d\n", rel->type); + break; + } + } + + if (siFlush) { + offset = OS_SECTIONINFO_OFFSET(siFlush->offset); + DCFlushRange((void *)offset, siFlush->size); + ICInvalidateRange((void *)offset, siFlush->size); + } + + return TRUE; +} + +BOOL OSUnlink(OSModuleInfo *oldModule) +{ + OSModuleHeader *moduleHeader; + OSModuleInfo *moduleInfo; + + moduleHeader = (OSModuleHeader *)oldModule; + + DequeueItem(&__OSModuleInfoList, oldModule, link); + + for (moduleInfo = __OSModuleInfoList.head; moduleInfo; moduleInfo = moduleInfo->link.next) { + Undo(moduleHeader, (OSModuleHeader *)moduleInfo); + } + + OSNotifyUnlink(); + + return TRUE; +} + +void __OSModuleInit(void) +{ + __OSModuleInfoList.head = __OSModuleInfoList.tail = 0; + __OSStringTable = 0; +} + +OSModuleInfo *OSSearchModule(void *ptr, u32 *section, u32 *offset) +{ + OSModuleInfo *moduleInfo; + OSSectionInfo *sectionInfo; + u32 i; + u32 baseSection; + + if (ptr == NULL) { + return NULL; + } + + for (moduleInfo = __OSModuleInfoList.head; moduleInfo; moduleInfo = moduleInfo->link.next) { + sectionInfo = OSGetSectionInfo(moduleInfo); + for (i = 0; i < moduleInfo->numSections; ++i) { + if (sectionInfo->size) { + baseSection = OS_SECTIONINFO_OFFSET(sectionInfo->offset); + if (baseSection <= (u32)ptr && (u32)ptr < baseSection + sectionInfo->size) { + if (section) { + *section = i; + } + if (offset) { + *offset = (u32)ptr - baseSection; + } + return moduleInfo; + } + } + sectionInfo++; + } + } + + return NULL; +} diff --git a/src/dolphin/os/OSMemory.c b/src/dolphin/os/OSMemory.c new file mode 100644 index 00000000..7cfda15a --- /dev/null +++ b/src/dolphin/os/OSMemory.c @@ -0,0 +1,230 @@ +#include +#include + +#define TRUNC(n, a) (((u32)(n)) & ~((a)-1)) +#define ROUND(n, a) (((u32)(n) + (a)-1) & ~((a)-1)) + +extern OSErrorHandler __OSErrorTable[16]; + +static BOOL OnReset(BOOL final); + +static OSResetFunctionInfo ResetFunctionInfo = { + OnReset, + 127, +}; +u32 OSGetPhysicalMemSize() +{ + return *(u32 *)(OSPhysicalToCached(0x0028)); +} + +u32 OSGetConsoleSimulatedMemSize() +{ + return *(u32 *)(OSPhysicalToCached(0x00F0)); +} + +static BOOL OnReset(BOOL final) +{ + if (final != FALSE) { + __MEMRegs[8] = 0xFF; + __OSMaskInterrupts(0xf0000000); + } + return TRUE; +} + +static void MEMIntrruptHandler(__OSInterrupt interrupt, OSContext *context) +{ + u32 addr; + u32 cause; + + cause = __MEMRegs[0xf]; + addr = (((u32)__MEMRegs[0x12] & 0x3ff) << 16) | __MEMRegs[0x11]; + __MEMRegs[0x10] = 0; + + if (__OSErrorTable[OS_ERROR_PROTECTION]) { + __OSErrorTable[OS_ERROR_PROTECTION](OS_ERROR_PROTECTION, context, cause, addr); + return; + } + + __OSUnhandledException(OS_ERROR_PROTECTION, context, cause, addr); +} + +void OSProtectRange(u32 chan, void *addr, u32 nBytes, u32 control) +{ + BOOL enabled; + u32 start; + u32 end; + u16 reg; + if (4 <= chan) { + return; + } + + control &= OS_PROTECT_CONTROL_RDWR; + + end = (u32)addr + nBytes; + start = TRUNC(addr, 1u << 10); + end = ROUND(end, 1u << 10); + + DCFlushRange((void *)start, end - start); + + enabled = OSDisableInterrupts(); + + __OSMaskInterrupts(OS_INTERRUPTMASK(__OS_INTERRUPT_MEM_0 + chan)); + + __MEMRegs[0 + 2 * chan] = (u16)(start >> 10); + __MEMRegs[1 + 2 * chan] = (u16)(end >> 10); + + reg = __MEMRegs[8]; + reg &= ~(OS_PROTECT_CONTROL_RDWR << 2 * chan); + reg |= control << 2 * chan; + __MEMRegs[8] = reg; + + if (control != OS_PROTECT_CONTROL_RDWR) { + __OSUnmaskInterrupts(OS_INTERRUPTMASK(__OS_INTERRUPT_MEM_0 + chan)); + } + + OSRestoreInterrupts(enabled); +} + +asm void Config24MB() +{ + // clang-format off + nofralloc + + addi r7,r0,0 + + addis r4,r0,0x00000002@ha + addi r4,r4,0x00000002@l + addis r3,r0,0x800001ff@ha + addi r3,r3,0x800001ff@l + + addis r6,r0,0x01000002@ha + addi r6,r6,0x01000002@l + addis r5,r0,0x810000ff@ha + addi r5,r5,0x810000ff@l + + isync + + mtspr dbat0u,r7 + mtspr dbat0l,r4 + mtspr dbat0u,r3 + isync + + mtspr ibat0u,r7 + mtspr ibat0l,r4 + mtspr ibat0u,r3 + isync + + mtspr dbat2u,r7 + mtspr dbat2l,r6 + mtspr dbat2u,r5 + isync + + mtspr ibat2u,r7 + mtspr ibat2l,r6 + mtspr ibat2u,r5 + isync + + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + + mflr r3 + mtsrr0 r3 + rfi + // clang-format on +} + +asm void Config48MB() +{ + // clang-format off + nofralloc + + addi r7,r0,0x0000 + + addis r4,r0,0x00000002@ha + addi r4,r4,0x00000002@l + addis r3,r0,0x800003ff@ha + addi r3,r3,0x800003ff@l + + addis r6,r0,0x02000002@ha + addi r6,r6,0x02000002@l + addis r5,r0,0x820001ff@ha + addi r5,r5,0x820001ff@l + + isync + + mtspr dbat0u,r7 + mtspr dbat0l,r4 + mtspr dbat0u,r3 + isync + + mtspr ibat0u,r7 + mtspr ibat0l,r4 + mtspr ibat0u,r3 + isync + + mtspr dbat2u,r7 + mtspr dbat2l,r6 + mtspr dbat2u,r5 + isync + + mtspr ibat2u,r7 + mtspr ibat2l,r6 + mtspr ibat2u,r5 + isync + + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + + mflr r3 + mtsrr0 r3 + rfi + // clang-format on +} + +asm void RealMode(register u32 addr) +{ + // clang-format off + nofralloc + clrlwi r3, r3, 2 + mtsrr0 r3 + mfmsr r3 + rlwinm r3, r3, 0, 28, 25 + mtsrr1 r3 + rfi + // clang-format on +} + +void __OSInitMemoryProtection() +{ + u32 padding[8]; + u32 simulatedSize; + BOOL enabled; + simulatedSize = OSGetConsoleSimulatedMemSize(); + enabled = OSDisableInterrupts(); + if (simulatedSize <= 0x1800000) { + RealMode((u32)&Config24MB); + } + else if (simulatedSize <= 0x3000000) { + RealMode((u32)&Config48MB); + } + + __MEMRegs[16] = 0; + __MEMRegs[8] = 0xFF; + + __OSMaskInterrupts(OS_INTERRUPTMASK_MEM_0 | OS_INTERRUPTMASK_MEM_1 | OS_INTERRUPTMASK_MEM_2 | OS_INTERRUPTMASK_MEM_3); + __OSSetInterruptHandler(__OS_INTERRUPT_MEM_0, MEMIntrruptHandler); + __OSSetInterruptHandler(__OS_INTERRUPT_MEM_1, MEMIntrruptHandler); + __OSSetInterruptHandler(__OS_INTERRUPT_MEM_2, MEMIntrruptHandler); + __OSSetInterruptHandler(__OS_INTERRUPT_MEM_3, MEMIntrruptHandler); + __OSSetInterruptHandler(__OS_INTERRUPT_MEM_ADDRESS, MEMIntrruptHandler); + OSRegisterResetFunction(&ResetFunctionInfo); + + if (OSGetConsoleSimulatedMemSize() < OSGetPhysicalMemSize() && OSGetConsoleSimulatedMemSize() == 0x1800000) { + __MEMRegs[20] = 2; + } + + __OSUnmaskInterrupts(OS_INTERRUPTMASK_MEM_ADDRESS); + OSRestoreInterrupts(enabled); +} diff --git a/src/dolphin/os/OSMessage.c b/src/dolphin/os/OSMessage.c new file mode 100644 index 00000000..0d364af2 --- /dev/null +++ b/src/dolphin/os/OSMessage.c @@ -0,0 +1,91 @@ +#include + +void OSInitMessageQueue(OSMessageQueue *mq, OSMessage *msgArray, s32 msgCount) +{ + OSInitThreadQueue(&mq->queueSend); + OSInitThreadQueue(&mq->queueReceive); + mq->msgArray = msgArray; + mq->msgCount = msgCount; + mq->firstIndex = 0; + mq->usedCount = 0; +} +BOOL OSSendMessage(OSMessageQueue *mq, OSMessage msg, s32 flags) +{ + BOOL enabled; + s32 lastIndex; + + enabled = OSDisableInterrupts(); + + while (mq->msgCount <= mq->usedCount) { + if (!(flags & OS_MESSAGE_BLOCK)) { + OSRestoreInterrupts(enabled); + return FALSE; + } + else { + OSSleepThread(&mq->queueSend); + } + } + + lastIndex = (mq->firstIndex + mq->usedCount) % mq->msgCount; + mq->msgArray[lastIndex] = msg; + mq->usedCount++; + + OSWakeupThread(&mq->queueReceive); + + OSRestoreInterrupts(enabled); + return TRUE; +} + +BOOL OSReceiveMessage(OSMessageQueue *mq, OSMessage *msg, s32 flags) +{ + BOOL enabled; + + enabled = OSDisableInterrupts(); + + while (mq->usedCount == 0) { + if (!(flags & OS_MESSAGE_BLOCK)) { + OSRestoreInterrupts(enabled); + return FALSE; + } + else { + OSSleepThread(&mq->queueReceive); + } + } + + if (msg != NULL) { + *msg = mq->msgArray[mq->firstIndex]; + } + mq->firstIndex = (mq->firstIndex + 1) % mq->msgCount; + mq->usedCount--; + + OSWakeupThread(&mq->queueSend); + + OSRestoreInterrupts(enabled); + return TRUE; +} + +BOOL OSJamMessage(OSMessageQueue *mq, OSMessage msg, s32 flags) +{ + BOOL enabled; + + enabled = OSDisableInterrupts(); + + while (mq->msgCount <= mq->usedCount) { + if (!(flags & OS_MESSAGE_BLOCK)) { + OSRestoreInterrupts(enabled); + return FALSE; + } + else { + OSSleepThread(&mq->queueSend); + } + } + + mq->firstIndex = (mq->firstIndex + mq->msgCount - 1) % mq->msgCount; + mq->msgArray[mq->firstIndex] = msg; + mq->usedCount++; + + OSWakeupThread(&mq->queueReceive); + + OSRestoreInterrupts(enabled); + return TRUE; +} diff --git a/src/dolphin/os/OSMutex.c b/src/dolphin/os/OSMutex.c new file mode 100644 index 00000000..986b81e0 --- /dev/null +++ b/src/dolphin/os/OSMutex.c @@ -0,0 +1,244 @@ +#include "dolphin/os.h" + +#define PushTail(queue, mutex, link) \ + do { \ + OSMutex *__prev; \ + \ + __prev = (queue)->tail; \ + if (__prev == NULL) \ + (queue)->head = (mutex); \ + else \ + __prev->link.next = (mutex); \ + (mutex)->link.prev = __prev; \ + (mutex)->link.next = NULL; \ + (queue)->tail = (mutex); \ + } while (0) + +#define PopHead(queue, mutex, link) \ + do { \ + OSMutex *__next; \ + \ + (mutex) = (queue)->head; \ + __next = (mutex)->link.next; \ + if (__next == NULL) \ + (queue)->tail = NULL; \ + else \ + __next->link.prev = NULL; \ + (queue)->head = __next; \ + } while (0) + +#define PopItem(queue, mutex, link) \ + do { \ + OSMutex *__next; \ + OSMutex *__prev; \ + \ + __next = (mutex)->link.next; \ + __prev = (mutex)->link.prev; \ + \ + if (__next == NULL) \ + (queue)->tail = __prev; \ + else \ + __next->link.prev = __prev; \ + \ + if (__prev == NULL) \ + (queue)->head = __next; \ + else \ + __prev->link.next = __next; \ + } while (0) + +void OSInitMutex(OSMutex *mutex) +{ + OSInitThreadQueue(&mutex->queue); + mutex->thread = 0; + mutex->count = 0; +} + +void OSLockMutex(OSMutex *mutex) +{ + BOOL enabled = OSDisableInterrupts(); + OSThread *currentThread = OSGetCurrentThread(); + OSThread *ownerThread; + + while (TRUE) { + ownerThread = ((OSMutex *)mutex)->thread; + if (ownerThread == 0) { + mutex->thread = currentThread; + mutex->count++; + PushTail(¤tThread->queueMutex, mutex, link); + break; + } + else if (ownerThread == currentThread) { + mutex->count++; + break; + } + else { + currentThread->mutex = mutex; + __OSPromoteThread(mutex->thread, currentThread->priority); + OSSleepThread(&mutex->queue); + currentThread->mutex = 0; + } + } + OSRestoreInterrupts(enabled); +} + +void OSUnlockMutex(OSMutex *mutex) +{ + BOOL enabled = OSDisableInterrupts(); + OSThread *currentThread = OSGetCurrentThread(); + + if (mutex->thread == currentThread && --mutex->count == 0) { + PopItem(¤tThread->queueMutex, mutex, link); + mutex->thread = NULL; + if (currentThread->priority < currentThread->base) { + currentThread->priority = __OSGetEffectivePriority(currentThread); + } + + OSWakeupThread(&mutex->queue); + } + OSRestoreInterrupts(enabled); +} + +void __OSUnlockAllMutex(OSThread *thread) +{ + OSMutex *mutex; + + while (thread->queueMutex.head) { + PopHead(&thread->queueMutex, mutex, link); + mutex->count = 0; + mutex->thread = NULL; + OSWakeupThread(&mutex->queue); + } +} + +BOOL OSTryLockMutex(OSMutex *mutex) +{ + BOOL enabled = OSDisableInterrupts(); + OSThread *currentThread = OSGetCurrentThread(); + BOOL locked; + if (mutex->thread == 0) { + mutex->thread = currentThread; + mutex->count++; + PushTail(¤tThread->queueMutex, mutex, link); + locked = TRUE; + } + else if (mutex->thread == currentThread) { + mutex->count++; + locked = TRUE; + } + else { + locked = FALSE; + } + OSRestoreInterrupts(enabled); + return locked; +} + +void OSInitCond(OSCond *cond) +{ + OSInitThreadQueue(&cond->queue); +} + +void OSWaitCond(OSCond *cond, OSMutex *mutex) +{ + BOOL enabled = OSDisableInterrupts(); + OSThread *currentThread = OSGetCurrentThread(); + s32 count; + + if (mutex->thread == currentThread) { + count = mutex->count; + mutex->count = 0; + PopItem(¤tThread->queueMutex, mutex, link); + mutex->thread = NULL; + + if (currentThread->priority < currentThread->base) { + currentThread->priority = __OSGetEffectivePriority(currentThread); + } + + OSDisableScheduler(); + OSWakeupThread(&mutex->queue); + OSEnableScheduler(); + OSSleepThread(&cond->queue); + OSLockMutex(mutex); + mutex->count = count; + } + + OSRestoreInterrupts(enabled); +} + +void OSSignalCond(OSCond *cond) +{ + OSWakeupThread(&cond->queue); +} + +static BOOL IsMember(OSMutexQueue *queue, OSMutex *mutex) +{ + OSMutex *member; + + for (member = queue->head; member; member = member->link.next) { + if (mutex == member) + return TRUE; + } + return FALSE; +} + +BOOL __OSCheckMutex(OSMutex *mutex) +{ + OSThread *thread; + OSThreadQueue *queue; + OSPriority priority = 0; + + queue = &mutex->queue; + if (!(queue->head == NULL || queue->head->link.prev == NULL)) + return FALSE; + if (!(queue->tail == NULL || queue->tail->link.next == NULL)) + return FALSE; + for (thread = queue->head; thread; thread = thread->link.next) { + if (!(thread->link.next == NULL || thread == thread->link.next->link.prev)) + return FALSE; + if (!(thread->link.prev == NULL || thread == thread->link.prev->link.next)) + return FALSE; + + if (thread->state != OS_THREAD_STATE_WAITING) + return FALSE; + + if (thread->priority < priority) + return FALSE; + priority = thread->priority; + } + + if (mutex->thread) { + if (mutex->count <= 0) + return FALSE; + } + else { + if (0 != mutex->count) + return FALSE; + } + + return TRUE; +} + +BOOL __OSCheckDeadLock(OSThread *thread) +{ + OSMutex *mutex; + + mutex = thread->mutex; + while (mutex && mutex->thread) { + if (mutex->thread == thread) + return TRUE; + mutex = mutex->thread->mutex; + } + return FALSE; +} + +BOOL __OSCheckMutexes(OSThread *thread) +{ + OSMutex *mutex; + + for (mutex = thread->queueMutex.head; mutex; mutex = mutex->link.next) { + if (mutex->thread != thread) + return FALSE; + if (!__OSCheckMutex(mutex)) + return FALSE; + } + return TRUE; +} diff --git a/src/dolphin/os/OSReboot.c b/src/dolphin/os/OSReboot.c new file mode 100644 index 00000000..381d39c4 --- /dev/null +++ b/src/dolphin/os/OSReboot.c @@ -0,0 +1,94 @@ +#include +#include +#include +#include +#include + +typedef struct ApploaderHeader { + // total size: 0x20 + char date[16]; // offset 0x0, size 0x10 + u32 entry; // offset 0x10, size 0x4 + u32 size; // offset 0x14, size 0x4 + u32 rebootSize; // offset 0x18, size 0x4 + u32 reserved2; // offset 0x1C, size 0x4 +} ApploaderHeader; + +struct { + // total size: 0x1C + int valid; // offset 0x0, size 0x4 + unsigned long restartCode; // offset 0x4, size 0x4 + unsigned long bootDol; // offset 0x8, size 0x4 + void *regionStart; // offset 0xC, size 0x4 + void *regionEnd; // offset 0x10, size 0x4 + int argsUseDefault; // offset 0x14, size 0x4 + void *argsAddr; // offset 0x18, size 0x4 +} __OSRebootParams; // size: 0x1C, address: 0x0 + +static ApploaderHeader Header; + +extern void *__OSSavedRegionStart; +extern void *__OSSavedRegionEnd; + +static void *SaveStart = NULL; +static void *SaveEnd = NULL; + +volatile u8 DAT_800030e2 : 0x800030e2; + +extern u32 BOOT_REGION_START AT_ADDRESS(0x812FDFF0); //(*(u32 *)0x812fdff0) +extern u32 BOOT_REGION_END AT_ADDRESS(0x812FDFEC); //(*(u32 *)0x812fdfec) +extern u32 UNK_HOT_RESET1 AT_ADDRESS(0x817ffff8); +extern u32 UNK_HOT_RESET2 AT_ADDRESS(0x817ffffc); +// extern u32 OS_RESET_CODE AT_ADDRESS(0x800030F0); +// extern u8 OS_REBOOT_BOOL AT_ADDRESS(0x800030E2); // unknown function, set to true by __OSReboot + +extern u32 __OSIsGcam; + +static BOOL Prepared = FALSE; + +extern void __DVDPrepareResetAsync(DVDCBCallback callback); +extern BOOL DVDCheckDisk(void); +extern BOOL DVDReadAbsAsyncForBS(DVDCommandBlock *block, void *addr, s32 length, s32 offset, DVDCBCallback callback); + +void Run(register u32 addr) +{ + OSDisableInterrupts(); + ICFlashInvalidate(); + // clang-format off + asm { + sync + isync + mtlr addr + blr + } + // clang-format on +} + +static void Callback() +{ + Prepared = TRUE; +} + +void ReadApploader(OSTime time1) { } + +void __OSReboot(u32 resetCode, u32 bootDol) +{ + // TODO +} + +void OSSetSaveRegion(void *start, void *end) +{ + SaveStart = start; + SaveEnd = end; +} + +void OSGetSaveRegion(void **start, void **end) +{ + *start = SaveStart; + *end = SaveEnd; +} + +void OSGetSavedRegion(void **start, void **end) +{ + *start = __OSSavedRegionStart; + *end = __OSSavedRegionEnd; +} diff --git a/src/dolphin/os/OSReset.c b/src/dolphin/os/OSReset.c new file mode 100644 index 00000000..c4ee2c9b --- /dev/null +++ b/src/dolphin/os/OSReset.c @@ -0,0 +1,203 @@ +#include +#include +#include +#include +#include + +#include "string.h" + +volatile u8 DAT_800030e2 : 0x800030e2; +typedef struct Unk { + u8 pad[0x24]; + u32 resetCode; +} Unk; +volatile Unk DAT_cc003000 : 0xcc003000; + +typedef struct Unk2 { + u16 _0; + u16 _2; +} Unk2; + +volatile Unk2 DAT_cc002000 : 0xcc002000; + +typedef struct OSResetQueue { + OSResetFunctionInfo *first; + OSResetFunctionInfo *last; +} OSResetQueue; + +OSResetQueue ResetFunctionQueue; + +void OSRegisterResetFunction(OSResetFunctionInfo *func) +{ + OSResetFunctionInfo *tmp; + OSResetFunctionInfo *iter; + + for (iter = ResetFunctionQueue.first; iter && iter->priority <= func->priority; iter = iter->next) + ; + + if (iter == NULL) { + tmp = ResetFunctionQueue.last; + if (tmp == NULL) { + ResetFunctionQueue.first = func; + } + else { + tmp->next = func; + } + func->prev = tmp; + func->next = NULL; + ResetFunctionQueue.last = func; + return; + } + + func->next = iter; + tmp = iter->prev; + iter->prev = func; + func->prev = tmp; + if (tmp == NULL) { + ResetFunctionQueue.first = func; + return; + } + tmp->next = func; +} + +BOOL __OSCallResetFunctions(u32 arg0) +{ + OSResetFunctionInfo *iter; + s32 retCode = 0; + + for (iter = ResetFunctionQueue.first; iter != NULL; iter = iter->next) { + retCode |= !iter->func(arg0); + } + retCode |= !__OSSyncSram(); + if (retCode) { + return 0; + } + return 1; +} + +asm void Reset(register s32 resetCode) +{ + // clang-format off + nofralloc + b lbl_8038315C +lbl_80383140: + mfspr r8, HID0 + ori r8, r8, 8 + mtspr HID0, r8 + isync + sync + nop + b lbl_80383160 +lbl_8038315C: + b lbl_8038317C +lbl_80383160: + mftb r5, 268 +lbl_80383164: + mftb r6, 268 + subf r7, r5, r6 + cmplwi r7, 0x1124 + blt lbl_80383164 + nop + b lbl_80383180 +lbl_8038317C: + b lbl_8038319C +lbl_80383180: + lis r8, 0xCC003000@h + ori r8, r8, 0xCC003000@l + li r4, 3 + stw r4, 0x24(r8) + stw r3, 0x24(r8) + nop + b lbl_803831A0 +lbl_8038319C: + b lbl_803831A8 +lbl_803831A0: + nop + b lbl_803831A0 +lbl_803831A8: + b lbl_80383140 + // clang-format on +} + +OSThreadQueue __OSActiveThreadQueue : (OS_BASE_CACHED | 0x00DC); + +static void KillThreads(void) +{ + OSThread *thread; + OSThread *next; + + for (thread = __OSActiveThreadQueue.head; thread; thread = next) { + next = thread->linkActive.next; + switch (thread->state) { + case 1: + case 4: + OSCancelThread(thread); + break; + default: + break; + } + } +} + +void __OSDoHotReset(s32 arg0) +{ + OSDisableInterrupts(); + __VIRegs[1] = 0; + ICFlashInvalidate(); + Reset(arg0 * 8); +} + +void OSResetSystem(int reset, u32 resetCode, BOOL forceMenu) +{ + BOOL rc; + BOOL disableRecalibration; + u32 unk[3]; + OSDisableScheduler(); + __OSStopAudioSystem(); + + if (reset == OS_RESET_SHUTDOWN) { + disableRecalibration = __PADDisableRecalibration(TRUE); + } + + while (!__OSCallResetFunctions(FALSE)) + ; + + if (reset == OS_RESET_HOTRESET && forceMenu) { + OSSram *sram; + + sram = __OSLockSram(); + sram->flags |= 0x40; + __OSUnlockSram(TRUE); + + while (!__OSSyncSram()) + ; + } + OSDisableInterrupts(); + __OSCallResetFunctions(TRUE); + LCDisable(); + if (reset == OS_RESET_HOTRESET) { + __OSDoHotReset(resetCode); + } + else if (reset == OS_RESET_RESTART) { + KillThreads(); + OSEnableScheduler(); + __OSReboot(resetCode, forceMenu); + } + KillThreads(); + memset(OSPhysicalToCached(0x40), 0, 0xcc - 0x40); + memset(OSPhysicalToCached(0xd4), 0, 0xe8 - 0xd4); + memset(OSPhysicalToCached(0xf4), 0, 0xf8 - 0xf4); + memset(OSPhysicalToCached(0x3000), 0, 0xc0); + memset(OSPhysicalToCached(0x30c8), 0, 0xd4 - 0xc8); + memset(OSPhysicalToCached(0x30e2), 0, 1); + + __PADDisableRecalibration(disableRecalibration); +} + +u32 OSGetResetCode(void) +{ + if (DAT_800030e2 != 0) { + return 0x80000000; + } + return ((DAT_cc003000.resetCode & ~7) >> 3); +} diff --git a/src/dolphin/os/OSResetSW.c b/src/dolphin/os/OSResetSW.c new file mode 100644 index 00000000..59e70494 --- /dev/null +++ b/src/dolphin/os/OSResetSW.c @@ -0,0 +1,89 @@ +#include + +extern OSTime __OSGetSystemTime(); + +u8 GameChoice : (OS_BASE_CACHED | 0x30E3); + +vu32 __PIRegs[12] : 0xCC003000; + +extern OSTime __OSStartTime; + +static OSResetCallback ResetCallback; +static BOOL Down; +static BOOL LastState; +static OSTime HoldUp; +static OSTime HoldDown; + +void __OSResetSWInterruptHandler(__OSInterrupt interrupt, OSContext* context) { + OSResetCallback callback; + + HoldDown = __OSGetSystemTime(); + while (__OSGetSystemTime() - HoldDown < OSMicrosecondsToTicks(100) && + !(__PIRegs[0] & 0x00010000)) { + ; + } + if (!(__PIRegs[0] & 0x00010000)) { + LastState = Down = TRUE; + __OSMaskInterrupts(OS_INTERRUPTMASK_PI_RSW); + if (ResetCallback) { + callback = ResetCallback; + ResetCallback = NULL; + callback(); + } + } + __PIRegs[0] = 2; +} + +BOOL OSGetResetButtonState(void) { + BOOL enabled; + BOOL state; + u32 reg; + OSTime now; + + enabled = OSDisableInterrupts(); + + now = __OSGetSystemTime(); + + reg = __PIRegs[0]; + if (!(reg & 0x00010000)) { + if (!Down) { + Down = TRUE; + state = HoldUp ? TRUE : FALSE; + HoldDown = now; + } else { + state = (HoldUp || (OSMicrosecondsToTicks(100) < now - HoldDown)) ? TRUE : FALSE; + } + } else if (Down) { + Down = FALSE; + state = LastState; + if (state) { + HoldUp = now; + } else { + HoldUp = 0; + } + } else if (HoldUp && (now - HoldUp < OSMillisecondsToTicks(40))) { + state = TRUE; + } else { + state = FALSE; + HoldUp = 0; + } + + LastState = state; + + if (GameChoice & 0x3f) { + OSTime fire = (GameChoice & 0x3f) * 60; + fire = __OSStartTime + OSSecondsToTicks(fire); + if (fire < now) { + now -= fire; + now = OSTicksToSeconds(now) / 2; + if ((now & 1) == 0) { + state = TRUE; + } else { + state = FALSE; + } + } + } + + OSRestoreInterrupts(enabled); + return state; +} diff --git a/src/dolphin/os/OSRtc.c b/src/dolphin/os/OSRtc.c new file mode 100644 index 00000000..e3d2da41 --- /dev/null +++ b/src/dolphin/os/OSRtc.c @@ -0,0 +1,363 @@ +#include +#include +#include + +#define RTC_CMD_READ 0x20000000 +#define RTC_CMD_WRITE 0xa0000000 + +#define RTC_SRAM_ADDR 0x00000100 +#define RTC_SRAM_SIZE 64 + +#define RTC_CHAN 0 +#define RTC_DEV 1 +#define RTC_FREQ 3 // EXI_FREQ_8M + +typedef struct SramControlBlock { + u8 sram[RTC_SRAM_SIZE]; + u32 offset; + BOOL enabled; + BOOL locked; + BOOL sync; + void (*callback)(void); +} SramControlBlock; + +static SramControlBlock Scb ATTRIBUTE_ALIGN(32); + +static BOOL GetRTC(u32 *rtc) +{ + BOOL err; + u32 cmd; + + if (!EXILock(RTC_CHAN, RTC_DEV, 0)) { + return FALSE; + } + if (!EXISelect(RTC_CHAN, RTC_DEV, RTC_FREQ)) { + EXIUnlock(RTC_CHAN); + return FALSE; + } + + cmd = RTC_CMD_READ; + err = FALSE; + err |= !EXIImm(RTC_CHAN, &cmd, 4, 1, NULL); + err |= !EXISync(RTC_CHAN); + err |= !EXIImm(RTC_CHAN, &cmd, 4, 0, NULL); + err |= !EXISync(RTC_CHAN); + err |= !EXIDeselect(RTC_CHAN); + EXIUnlock(RTC_CHAN); + + *rtc = cmd; + + return !err; +} + +BOOL __OSGetRTC(u32 *rtc) +{ + BOOL err; + u32 t0; + u32 t1; + int i; + + for (i = 0; i < 16; i++) { + err = FALSE; + err |= !GetRTC(&t0); + err |= !GetRTC(&t1); + if (err) { + break; + } + if (t0 == t1) { + *rtc = t0; + return TRUE; + } + } + return FALSE; +} + +BOOL __OSSetRTC(u32 rtc) +{ + BOOL err; + u32 cmd; + + if (!EXILock(RTC_CHAN, RTC_DEV, 0)) { + return FALSE; + } + if (!EXISelect(RTC_CHAN, RTC_DEV, RTC_FREQ)) { + EXIUnlock(RTC_CHAN); + return FALSE; + } + + cmd = RTC_CMD_WRITE; + err = FALSE; + err |= !EXIImm(RTC_CHAN, &cmd, 4, 1, NULL); + err |= !EXISync(RTC_CHAN); + err |= !EXIImm(RTC_CHAN, &rtc, 4, 1, NULL); + err |= !EXISync(RTC_CHAN); + err |= !EXIDeselect(RTC_CHAN); + EXIUnlock(RTC_CHAN); + + return !err; +} + +static BOOL ReadSram(void *buffer) +{ + BOOL err; + u32 cmd; + + DCInvalidateRange(buffer, RTC_SRAM_SIZE); + + if (!EXILock(RTC_CHAN, RTC_DEV, 0)) { + return FALSE; + } + if (!EXISelect(RTC_CHAN, RTC_DEV, RTC_FREQ)) { + EXIUnlock(RTC_CHAN); + return FALSE; + } + + cmd = RTC_CMD_READ | RTC_SRAM_ADDR; + err = FALSE; + err |= !EXIImm(RTC_CHAN, &cmd, 4, 1, NULL); + err |= !EXISync(RTC_CHAN); + err |= !EXIDma(RTC_CHAN, buffer, RTC_SRAM_SIZE, 0, NULL); + err |= !EXISync(RTC_CHAN); + err |= !EXIDeselect(RTC_CHAN); + EXIUnlock(RTC_CHAN); + + return !err; +} + +BOOL WriteSram(void *buffer, u32 offset, u32 size); +static void WriteSramCallback(s32 chan, OSContext *context) +{ + Scb.sync = WriteSram(Scb.sram + Scb.offset, Scb.offset, RTC_SRAM_SIZE - Scb.offset); + if (Scb.sync) { + Scb.offset = RTC_SRAM_SIZE; + } +} + +BOOL WriteSram(void *buffer, u32 offset, u32 size) +{ + BOOL err; + u32 cmd; + + if (!EXILock(RTC_CHAN, RTC_DEV, WriteSramCallback)) { + return FALSE; + } + if (!EXISelect(RTC_CHAN, RTC_DEV, RTC_FREQ)) { + EXIUnlock(RTC_CHAN); + return FALSE; + } + + offset <<= 6; + cmd = RTC_CMD_WRITE | RTC_SRAM_ADDR + offset; + err = FALSE; + err |= !EXIImm(RTC_CHAN, &cmd, 4, 1, NULL); + err |= !EXISync(RTC_CHAN); + err |= !EXIImmEx(RTC_CHAN, buffer, (s32)size, 1); + err |= !EXIDeselect(RTC_CHAN); + EXIUnlock(RTC_CHAN); + + return !err; +} + +void __OSInitSram() +{ + Scb.locked = Scb.enabled = FALSE; + Scb.sync = ReadSram(Scb.sram); + Scb.offset = RTC_SRAM_SIZE; +} + +static void *LockSram(u32 offset) +{ + BOOL enabled; + enabled = OSDisableInterrupts(); + + if (Scb.locked != FALSE) { + OSRestoreInterrupts(enabled); + return NULL; + } + + Scb.enabled = enabled; + Scb.locked = TRUE; + + return Scb.sram + offset; +} + +OSSram *__OSLockSram() +{ + return LockSram(0); +} + +OSSramEx *__OSLockSramEx() +{ + return LockSram(sizeof(OSSram)); +} + +static BOOL UnlockSram(BOOL commit, u32 offset) +{ + u16 *p; + + if (commit) { + if (offset == 0) { + OSSram *sram = (OSSram *)Scb.sram; + + if (2u < (sram->flags & 3)) { + sram->flags &= ~3; + } + + sram->checkSum = sram->checkSumInv = 0; + for (p = (u16 *)&sram->counterBias; p < (u16 *)(Scb.sram + sizeof(OSSram)); p++) { + sram->checkSum += *p; + sram->checkSumInv += ~*p; + } + } + + if (offset < Scb.offset) { + Scb.offset = offset; + } + + Scb.sync = WriteSram(Scb.sram + Scb.offset, Scb.offset, RTC_SRAM_SIZE - Scb.offset); + if (Scb.sync) { + Scb.offset = RTC_SRAM_SIZE; + } + } + Scb.locked = FALSE; + OSRestoreInterrupts(Scb.enabled); + return Scb.sync; +} + +BOOL __OSUnlockSram(BOOL commit) +{ + return UnlockSram(commit, 0); +} + +BOOL __OSUnlockSramEx(BOOL commit) +{ + return UnlockSram(commit, sizeof(OSSram)); +} + +BOOL __OSSyncSram() +{ + return Scb.sync; +} + +BOOL __OSReadROM(void *buffer, s32 length, s32 offset) +{ + BOOL err; + u32 cmd; + + DCInvalidateRange(buffer, (u32)length); + + if (!EXILock(RTC_CHAN, RTC_DEV, 0)) { + return FALSE; + } + if (!EXISelect(RTC_CHAN, RTC_DEV, RTC_FREQ)) { + EXIUnlock(RTC_CHAN); + return FALSE; + } + + cmd = (u32)(offset << 6); + err = FALSE; + err |= !EXIImm(RTC_CHAN, &cmd, 4, 1, NULL); + err |= !EXISync(RTC_CHAN); + err |= !EXIDma(RTC_CHAN, buffer, length, 0, NULL); + err |= !EXISync(RTC_CHAN); + err |= !EXIDeselect(RTC_CHAN); + EXIUnlock(RTC_CHAN); + + return !err; +} + +inline OSSram *__OSLockSramHACK() +{ + return LockSram(0); +} +u32 OSGetSoundMode() +{ + OSSram *sram; + u32 mode; + + sram = __OSLockSramHACK(); + mode = (sram->flags & 0x4) ? OS_SOUND_MODE_STEREO : OS_SOUND_MODE_MONO; + __OSUnlockSram(FALSE); + return mode; +} + +void OSSetSoundMode(u32 mode) +{ + OSSram *sram; + mode <<= 2; + mode &= 4; + + sram = __OSLockSramHACK(); + if (mode == (sram->flags & 4)) { + __OSUnlockSram(FALSE); + return; + } + + sram->flags &= ~4; + sram->flags |= mode; + __OSUnlockSram(TRUE); +} + +u32 OSGetProgressiveMode() +{ + OSSram *sram; + u32 mode; + + sram = __OSLockSramHACK(); + mode = (sram->flags & 0x80) >> 7; + __OSUnlockSram(FALSE); + return mode; +} + +void OSSetProgressiveMode(u32 mode) +{ + OSSram *sram; + mode <<= 7; + mode &= 0x80; + + sram = __OSLockSramHACK(); + if (mode == (sram->flags & 0x80)) { + __OSUnlockSram(FALSE); + return; + } + + sram->flags &= ~0x80; + sram->flags |= mode; + __OSUnlockSram(TRUE); +} + +u8 OSGetLanguage() +{ + OSSram *sram; + u8 language; + + sram = __OSLockSramHACK(); + language = sram->language; + __OSUnlockSram(FALSE); + return language; +} + +u16 OSGetWirelessID(s32 channel) +{ + OSSramEx *sram; + u16 id; + + sram = __OSLockSramEx(); + id = sram->wirelessPadID[channel]; + __OSUnlockSramEx(FALSE); + return id; +} + +void OSSetWirelessID(s32 channel, u16 id) +{ + OSSramEx *sram; + + sram = __OSLockSramEx(); + if (sram->wirelessPadID[channel] != id) { + sram->wirelessPadID[channel] = id; + __OSUnlockSramEx(TRUE); + return; + } + + __OSUnlockSramEx(FALSE); +} diff --git a/src/dolphin/os/OSStopwatch.c b/src/dolphin/os/OSStopwatch.c new file mode 100644 index 00000000..80e7dbdd --- /dev/null +++ b/src/dolphin/os/OSStopwatch.c @@ -0,0 +1,61 @@ +#include +#include + +void OSInitStopwatch(struct OSStopwatch *sw, char *name) +{ + sw->name = name; + sw->total = 0; + sw->hits = 0; + sw->min = 0x00000000FFFFFFFF; + sw->max = 0; +} + +void OSStartStopwatch(struct OSStopwatch *sw) +{ + sw->running = 1; + sw->last = OSGetTime(); +} + +void OSStopStopwatch(struct OSStopwatch *sw) +{ + long long interval; + + if (sw->running != 0) { + interval = OSGetTime() - sw->last; + sw->total += interval; + sw->running = 0; + sw->hits++; + if (sw->max < interval) { + sw->max = interval; + } + if (interval < sw->min) { + sw->min = interval; + } + } +} + +long long OSCheckStopwatch(struct OSStopwatch *sw) +{ + long long currTotal; + + currTotal = sw->total; + if (sw->running != 0) { + currTotal += OSGetTime() - sw->last; + } + return currTotal; +} + +void OSResetStopwatch(struct OSStopwatch *sw) +{ + OSInitStopwatch(sw, sw->name); +} + +void OSDumpStopwatch(struct OSStopwatch *sw) +{ + OSReport("Stopwatch [%s] :\n", sw->name); + OSReport("\tTotal= %lld us\n", OSTicksToMicroseconds(sw->total)); + OSReport("\tHits = %d \n", sw->hits); + OSReport("\tMin = %lld us\n", OSTicksToMicroseconds(sw->min)); + OSReport("\tMax = %lld us\n", OSTicksToMicroseconds(sw->max)); + OSReport("\tMean = %lld us\n", OSTicksToMicroseconds(sw->total / sw->hits)); +} diff --git a/src/dolphin/os/OSSync.c b/src/dolphin/os/OSSync.c new file mode 100644 index 00000000..b5aeccf7 --- /dev/null +++ b/src/dolphin/os/OSSync.c @@ -0,0 +1,29 @@ +#include "string.h" +#include "dolphin/PPCArch.h" +#include "dolphin/os.h" + +void __OSSystemCallVectorStart(); +void __OSSystemCallVectorEnd(); +static asm void SystemCallVector() { + nofralloc +entry __OSSystemCallVectorStart + mfspr r9, HID0 + ori r10, r9, 8 + mtspr HID0, r10 + isync + sync + mtspr HID0, r9 + + rfi + +entry __OSSystemCallVectorEnd + nop +} + +void __OSInitSystemCall() { + void* addr = OSPhysicalToCached(0x00C00); + memcpy(addr, __OSSystemCallVectorStart, (size_t)__OSSystemCallVectorEnd - (size_t)__OSSystemCallVectorStart); + DCFlushRangeNoSync(addr, 0x100); + __sync(); + ICInvalidateRange(addr, 0x100); +} diff --git a/src/dolphin/os/OSThread.c b/src/dolphin/os/OSThread.c new file mode 100644 index 00000000..c9f4348d --- /dev/null +++ b/src/dolphin/os/OSThread.c @@ -0,0 +1,552 @@ +#include + +static vu32 RunQueueBits; +static volatile BOOL RunQueueHint; +static vs32 Reschedule; + +static OSThreadQueue RunQueue[32]; +static OSThread IdleThread; +static OSThread DefaultThread; +static OSContext IdleContext; +static void DefaultSwitchThreadCallback(OSThread *from, OSThread *to); +static OSSwitchThreadCallback SwitchThreadCallback = DefaultSwitchThreadCallback; + +OSThread *__OSCurrentThread : OS_BASE_CACHED + 0x00E4; +OSThreadQueue __OSActiveThreadQueue : OS_BASE_CACHED + 0x00DC; +volatile OSContext __OSCurrentContext : OS_BASE_CACHED + 0x00D4; +volatile OSContext *__OSFPUContext : OS_BASE_CACHED + 0x00D8; + +static void DefaultSwitchThreadCallback(OSThread *from, OSThread *to) { } + +extern u8 _stack_addr[]; +extern u8 _stack_end[]; + +#define AddTail(queue, thread, link) \ + do { \ + OSThread *prev; \ + \ + prev = (queue)->tail; \ + if (prev == NULL) \ + (queue)->head = (thread); \ + else \ + prev->link.next = (thread); \ + (thread)->link.prev = prev; \ + (thread)->link.next = NULL; \ + (queue)->tail = (thread); \ + } while (0) + +#define AddPrio(queue, thread, link) \ + do { \ + OSThread *prev, *next; \ + \ + for (next = (queue)->head; next && next->priority <= thread->priority; next = next->link.next) \ + ; \ + if (next == NULL) \ + AddTail(queue, thread, link); \ + else { \ + (thread)->link.next = next; \ + prev = next->link.prev; \ + next->link.prev = (thread); \ + (thread)->link.prev = prev; \ + if (prev == NULL) \ + (queue)->head = (thread); \ + else \ + prev->link.next = (thread); \ + } \ + } while (0) + +#define RemoveItem(queue, thread, link) \ + do { \ + OSThread *next, *prev; \ + next = (thread)->link.next; \ + prev = (thread)->link.prev; \ + if (next == NULL) \ + (queue)->tail = prev; \ + else \ + next->link.prev = prev; \ + if (prev == NULL) \ + (queue)->head = next; \ + else \ + prev->link.next = next; \ + } while (0) + +#define RemoveHead(queue, thread, link) \ + do { \ + OSThread *__next; \ + (thread) = (queue)->head; \ + __next = (thread)->link.next; \ + if (__next == NULL) \ + (queue)->tail = NULL; \ + else \ + __next->link.prev = NULL; \ + (queue)->head = __next; \ + } while (0) + +static inline void OSInitMutexQueue(OSMutexQueue *queue) +{ + queue->head = queue->tail = NULL; +} + +static inline void OSSetCurrentThread(OSThread *thread) +{ + __OSCurrentThread = thread; +} + +void __OSThreadInit() +{ + OSThread *thread = &DefaultThread; + int prio; + + thread->state = OS_THREAD_STATE_RUNNING; + thread->attr = OS_THREAD_ATTR_DETACH; + thread->priority = thread->base = 16; + thread->suspend = 0; + thread->val = (void *)-1; + thread->mutex = NULL; + OSInitThreadQueue(&thread->queueJoin); + OSInitMutexQueue(&thread->queueMutex); + + __OSFPUContext = &thread->context; + + OSClearContext(&thread->context); + OSSetCurrentContext(&thread->context); + thread->stackBase = (void *)_stack_addr; + thread->stackEnd = (void *)_stack_end; + *(thread->stackEnd) = OS_THREAD_STACK_MAGIC; + + OSSetCurrentThread(thread); + RunQueueBits = 0; + RunQueueHint = FALSE; + for (prio = OS_PRIORITY_MIN; prio <= OS_PRIORITY_MAX; ++prio) { + OSInitThreadQueue(&RunQueue[prio]); + } + + OSInitThreadQueue(&__OSActiveThreadQueue); + AddTail(&__OSActiveThreadQueue, thread, linkActive); + OSClearContext(&IdleContext); + Reschedule = 0; +} + +void OSInitThreadQueue(OSThreadQueue *queue) +{ + queue->head = queue->tail = NULL; +} + +OSThread *OSGetCurrentThread() +{ + return __OSCurrentThread; +} + +s32 OSDisableScheduler() +{ + BOOL enabled; + s32 count; + + enabled = OSDisableInterrupts(); + count = Reschedule++; + OSRestoreInterrupts(enabled); + return count; +} + +s32 OSEnableScheduler() +{ + BOOL enabled; + s32 count; + + enabled = OSDisableInterrupts(); + count = Reschedule--; + OSRestoreInterrupts(enabled); + return count; +} + +static void SetRun(OSThread *thread) +{ + thread->queue = &RunQueue[thread->priority]; + AddTail(thread->queue, thread, link); + RunQueueBits |= 1u << (OS_PRIORITY_MAX - thread->priority); + RunQueueHint = TRUE; +} +#pragma dont_inline on +static void UnsetRun(OSThread *thread) +{ + OSThreadQueue *queue; + queue = thread->queue; + RemoveItem(queue, thread, link); + if (queue->head == 0) + RunQueueBits &= ~(1u << (OS_PRIORITY_MAX - thread->priority)); + thread->queue = NULL; +} +#pragma dont_inline reset + +OSPriority __OSGetEffectivePriority(OSThread *thread) +{ + OSPriority priority; + OSMutex *mutex; + OSThread *blocked; + + priority = thread->base; + for (mutex = thread->queueMutex.head; mutex; mutex = mutex->link.next) { + blocked = mutex->queue.head; + if (blocked && blocked->priority < priority) { + priority = blocked->priority; + } + } + return priority; +} + +static OSThread *SetEffectivePriority(OSThread *thread, OSPriority priority) +{ + switch (thread->state) { + case OS_THREAD_STATE_READY: + UnsetRun(thread); + thread->priority = priority; + SetRun(thread); + break; + case OS_THREAD_STATE_WAITING: + RemoveItem(thread->queue, thread, link); + thread->priority = priority; + AddPrio(thread->queue, thread, link); + if (thread->mutex) { + return thread->mutex->thread; + } + break; + case OS_THREAD_STATE_RUNNING: + RunQueueHint = TRUE; + thread->priority = priority; + break; + } + return NULL; +} + +static void UpdatePriority(OSThread *thread) +{ + OSPriority priority; + + do { + if (0 < thread->suspend) { + break; + } + priority = __OSGetEffectivePriority(thread); + if (thread->priority == priority) { + break; + } + thread = SetEffectivePriority(thread, priority); + } while (thread); +} + +static void __OSSwitchThread(OSThread *nextThread) +{ + OSSetCurrentThread(nextThread); + OSSetCurrentContext(&nextThread->context); + OSLoadContext(&nextThread->context); +} + +static OSThread *SelectThread(BOOL yield) +{ + OSContext *currentContext; + OSThread *currentThread; + OSThread *nextThread; + OSPriority priority; + OSThreadQueue *queue; + + if (0 < Reschedule) { + return 0; + } + + currentContext = OSGetCurrentContext(); + currentThread = OSGetCurrentThread(); + if (currentContext != ¤tThread->context) { + return 0; + } + + if (currentThread) { + if (currentThread->state == OS_THREAD_STATE_RUNNING) { + if (!yield) { + priority = __cntlzw(RunQueueBits); + if (currentThread->priority <= priority) { + return 0; + } + } + currentThread->state = OS_THREAD_STATE_READY; + SetRun(currentThread); + } + + if (!(currentThread->context.state & OS_CONTEXT_STATE_EXC) && OSSaveContext(¤tThread->context)) { + return 0; + } + } + + OSSetCurrentThread(NULL); + if (RunQueueBits == 0) { + OSSetCurrentContext(&IdleContext); + do { + OSEnableInterrupts(); + while (RunQueueBits == 0) + ; + OSDisableInterrupts(); + } while (RunQueueBits == 0); + + OSClearContext(&IdleContext); + } + + RunQueueHint = FALSE; + + priority = __cntlzw(RunQueueBits); + queue = &RunQueue[priority]; + RemoveHead(queue, nextThread, link); + if (queue->head == 0) { + RunQueueBits &= ~(1u << (OS_PRIORITY_MAX - priority)); + } + nextThread->queue = NULL; + nextThread->state = OS_THREAD_STATE_RUNNING; + __OSSwitchThread(nextThread); + return nextThread; +} + +void __OSReschedule() +{ + if (!RunQueueHint) { + return; + } + + SelectThread(FALSE); +} + +void OSYieldThread(void) +{ + BOOL enabled; + + enabled = OSDisableInterrupts(); + SelectThread(TRUE); + OSRestoreInterrupts(enabled); +} + +int OSCreateThread(struct OSThread * thread, void * (* func)(void *), void * param, void * stack, unsigned long stackSize, long priority, unsigned short attr) { + int enabled; + unsigned long sp; + + // why check this for an assert just to check it again right after? + if ((priority < 0) || (priority > 0x1F)) { + return 0; + } + + thread->state = 1; + thread->attr = attr & 1U; + thread->base = priority; + thread->priority = priority; + thread->suspend = 1; + thread->val = (void*)-1; + thread->mutex = 0; + OSInitThreadQueue(&thread->queueJoin); + OSInitThreadQueue((void*)&thread->queueMutex); // why + sp = (u32)stack; + sp &= ~7; + sp -= 8; + ((u32*)sp)[0] = 0; + ((u32*)sp)[1] = 0; + OSInitContext(&thread->context, (u32)func, sp); + thread->context.lr = (unsigned long)&OSExitThread; + thread->context.gpr[3] = (unsigned long)param; + thread->stackBase = stack; + thread->stackEnd = (void*)((unsigned int)stack - stackSize); + *thread->stackEnd = 0xDEADBABE; + enabled = OSDisableInterrupts(); + + AddTail(&__OSActiveThreadQueue, thread, linkActive); + + OSRestoreInterrupts(enabled); + return 1; +} + +void OSExitThread(void *val) +{ + int enabled = OSDisableInterrupts(); + struct OSThread *currentThread = OSGetCurrentThread(); + + OSClearContext(¤tThread->context); + if (currentThread->attr & 1) { + RemoveItem(&__OSActiveThreadQueue, currentThread, linkActive); + currentThread->state = 0; + } + else { + currentThread->state = 8; + currentThread->val = val; + } + __OSUnlockAllMutex(currentThread); + OSWakeupThread(¤tThread->queueJoin); + RunQueueHint = 1; + if (RunQueueHint != 0) { + SelectThread(0); + } + OSRestoreInterrupts(enabled); +} + +void OSCancelThread(OSThread *thread) +{ + BOOL enabled; + + enabled = OSDisableInterrupts(); + + switch (thread->state) { + case OS_THREAD_STATE_READY: + if (!(0 < thread->suspend)) { + UnsetRun(thread); + } + break; + case OS_THREAD_STATE_RUNNING: + RunQueueHint = TRUE; + break; + case OS_THREAD_STATE_WAITING: + RemoveItem(thread->queue, thread, link); + thread->queue = NULL; + if (!(0 < thread->suspend) && thread->mutex) { + UpdatePriority(thread->mutex->thread); + } + break; + default: + OSRestoreInterrupts(enabled); + return; + } + + OSClearContext(&thread->context); + if (thread->attr & OS_THREAD_ATTR_DETACH) { + RemoveItem(&__OSActiveThreadQueue, thread, linkActive); + thread->state = 0; + } + else { + thread->state = OS_THREAD_STATE_MORIBUND; + } + + __OSUnlockAllMutex(thread); + + OSWakeupThread(&thread->queueJoin); + + __OSReschedule(); + OSRestoreInterrupts(enabled); + + return; +} + +s32 OSResumeThread(OSThread *thread) +{ + BOOL enabled; + s32 suspendCount; + + enabled = OSDisableInterrupts(); + suspendCount = thread->suspend--; + if (thread->suspend < 0) { + thread->suspend = 0; + } + else if (thread->suspend == 0) { + switch (thread->state) { + case OS_THREAD_STATE_READY: + thread->priority = __OSGetEffectivePriority(thread); + SetRun(thread); + break; + case OS_THREAD_STATE_WAITING: + RemoveItem(thread->queue, thread, link); + thread->priority = __OSGetEffectivePriority(thread); + AddPrio(thread->queue, thread, link); + if (thread->mutex) { + UpdatePriority(thread->mutex->thread); + } + break; + } + __OSReschedule(); + } + OSRestoreInterrupts(enabled); + return suspendCount; +} + +s32 OSSuspendThread(OSThread *thread) +{ + BOOL enabled; + s32 suspendCount; + + enabled = OSDisableInterrupts(); + suspendCount = thread->suspend++; + if (suspendCount == 0) { + switch (thread->state) { + case OS_THREAD_STATE_RUNNING: + RunQueueHint = TRUE; + thread->state = OS_THREAD_STATE_READY; + break; + case OS_THREAD_STATE_READY: + UnsetRun(thread); + break; + case OS_THREAD_STATE_WAITING: + RemoveItem(thread->queue, thread, link); + thread->priority = 32; + AddTail(thread->queue, thread, link); + if (thread->mutex) { + UpdatePriority(thread->mutex->thread); + } + break; + } + + __OSReschedule(); + } + OSRestoreInterrupts(enabled); + return suspendCount; +} + +void OSSleepThread(OSThreadQueue *queue) +{ + BOOL enabled; + OSThread *currentThread; + + enabled = OSDisableInterrupts(); + currentThread = OSGetCurrentThread(); + + currentThread->state = OS_THREAD_STATE_WAITING; + currentThread->queue = queue; + AddPrio(queue, currentThread, link); + RunQueueHint = TRUE; + __OSReschedule(); + OSRestoreInterrupts(enabled); +} + +void OSWakeupThread(OSThreadQueue *queue) +{ + BOOL enabled; + OSThread *thread; + + enabled = OSDisableInterrupts(); + while (queue->head) { + RemoveHead(queue, thread, link); + thread->state = OS_THREAD_STATE_READY; + if (!(0 < thread->suspend)) { + SetRun(thread); + } + } + __OSReschedule(); + OSRestoreInterrupts(enabled); +} + +void OSClearStack(u8 val) +{ + register u32 sp; + register u32 *p; + register u32 pattern; + + pattern = ((u32)val << 24) | ((u32)val << 16) | ((u32)val << 8) | (u32)val; + sp = OSGetStackPointer(); + for (p = __OSCurrentThread->stackEnd + 1; p < (u32 *)sp; ++p) { + *p = pattern; + } +} + +struct OSThread *OSSetIdleFunction(void (*idleFunction)(void *), void *param, void *stack, unsigned long stackSize) +{ + if (idleFunction) { + if (IdleThread.state == 0) { + OSCreateThread(&IdleThread, (void *)idleFunction, param, stack, stackSize, 0x1F, 1); + OSResumeThread(&IdleThread); + return &IdleThread; + } + } + else if (IdleThread.state != 0) { + OSCancelThread(&IdleThread); + } + return NULL; +} diff --git a/src/dolphin/os/OSTime.c b/src/dolphin/os/OSTime.c new file mode 100644 index 00000000..604e45c6 --- /dev/null +++ b/src/dolphin/os/OSTime.c @@ -0,0 +1,146 @@ +#include + +#define OS_TIME_MONTH_MAX 12 +#define OS_TIME_WEEK_DAY_MAX 7 +#define OS_TIME_YEAR_DAY_MAX 365 + +// End of each month in standard year +static s32 YearDays[OS_TIME_MONTH_MAX] = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }; +// End of each month in leap year +static s32 LeapYearDays[OS_TIME_MONTH_MAX] = { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 }; + +asm OSTime OSGetTime(void) +{ + // clang-format off + nofralloc +@0 + mftbu r3 + mftb r4 + + // Check for possible carry from TBL to TBU + mftbu r5 + cmpw r3, r5 + bne @0 + + blr + // clang-format on +} + +asm OSTick OSGetTick(void) { + // clang-format off + nofralloc + + mftb r3 + blr + // clang-format on +} + +#define OS_SYSTEMTIME_BASE 0x30D8 + +OSTime __OSGetSystemTime(void) +{ + BOOL enabled; + OSTime *timeAdjustAddr = (OSTime *)(OS_BASE_CACHED + OS_SYSTEMTIME_BASE); + OSTime result; + + enabled = OSDisableInterrupts(); + result = *timeAdjustAddr + OSGetTime(); + OSRestoreInterrupts(enabled); + + return result; +} + +OSTime __OSTimeToSystemTime(OSTime time) +{ + BOOL enabled; + OSTime *timeAdjustAddr = (OSTime *)(OS_BASE_CACHED + OS_SYSTEMTIME_BASE); + OSTime result; + + enabled = OSDisableInterrupts(); + result = *timeAdjustAddr + time; + OSRestoreInterrupts(enabled); + + return result; +} + +static BOOL IsLeapYear(s32 year) +{ + return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); +} + +static s32 GetYearDays(s32 year, s32 mon) +{ + return (IsLeapYear(year) ? LeapYearDays : YearDays)[mon]; +} + +static s32 GetLeapDays(s32 year) +{ + if (year < 1) { + return 0; + } + return (year + 3) / 4 - (year - 1) / 100 + (year - 1) / 400; +} + +static void GetDates(s32 days, OSCalendarTime *cal) +{ + s32 year; + s32 totalDays; + s32 *p_days; + s32 month; + cal->wday = (days + 6) % OS_TIME_WEEK_DAY_MAX; + + for (year = days / OS_TIME_YEAR_DAY_MAX; days < (totalDays = year * OS_TIME_YEAR_DAY_MAX + GetLeapDays(year));) { + year--; + } + + days -= totalDays; + cal->year = year; + cal->yday = days; + + p_days = IsLeapYear(year) ? LeapYearDays : YearDays; + month = OS_TIME_MONTH_MAX; + while (days < p_days[--month]) { + ; + } + cal->mon = month; + cal->mday = days - p_days[month] + 1; +} + +#define BIAS (2000 * 365 + (2000 + 3) / 4 - (2000 - 1) / 100 + (2000 - 1) / 400) + +#pragma push +#pragma dont_inline on +void OSTicksToCalendarTime(OSTime ticks, OSCalendarTime *td) +{ + int days; + int secs; + OSTime d; + + d = ticks % OSSecondsToTicks(1); + if (d < 0) { + d += OSSecondsToTicks(1); + } + td->usec = (int)(OSTicksToMicroseconds(d) % 1000); + td->msec = (int)(OSTicksToMilliseconds(d) % 1000); + + ticks -= d; + days = (int)(OSTicksToSeconds(ticks) / 86400 + BIAS); + secs = (int)(OSTicksToSeconds(ticks) % 86400); + if (secs < 0) { + days -= 1; + secs += 24 * 60 * 60; + } + + GetDates(days, td); + + td->hour = secs / 60 / 60; + td->min = (secs / 60) % 60; + td->sec = secs % 60; +} +#pragma dont_inline reset + +OSTime OSCalendarTimeToTicks(OSCalendarTime *time) +{ + ; + ; +} diff --git a/src/dolphin/os/__ppc_eabi_init.c b/src/dolphin/os/__ppc_eabi_init.c new file mode 100644 index 00000000..4b7c8c6e --- /dev/null +++ b/src/dolphin/os/__ppc_eabi_init.c @@ -0,0 +1,76 @@ +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif +void __OSPSInit(); +void __OSCacheInit(); + +asm void __init_hardware(void) +{ + // clang-format off + nofralloc + mfmsr r0 + ori r0, r0, 0x2000 + mtmsr r0 + + mflr r31 + bl __OSPSInit + bl __OSCacheInit + mtlr r31 + blr + // clang-format on +} + +asm void __flush_cache(register void *address, register unsigned int size) +{ + // clang-format off + nofralloc + lis r5, ~0 + ori r5, r5, ~14 + and r5, r5, r3 + subf r3, r5, r3 + add r4, r4, r3 + +loop: + dcbst r0, r5 + sync + icbi r0, r5 + addic r5, r5, 8 + subic. r4, r4, 8 + bge loop + isync + blr + // clang-format on +} + +void __init_user() +{ + __init_cpp(); +} + +typedef void (*voidfunctionptr)(void); // pointer to function returning void +__declspec(section ".init") extern voidfunctionptr _ctors[]; +__declspec(section ".init") extern voidfunctionptr _dtors[]; + +void __init_cpp(void) +{ + voidfunctionptr *constructor; + + /* + * call static initializers + */ + for (constructor = _ctors; *constructor; constructor++) { + (*constructor)(); + } +} + +void _ExitProcess(void) +{ + PPCHalt(); +} + +#ifdef __cplusplus +} +#endif diff --git a/src/dolphin/os/__start.c b/src/dolphin/os/__start.c new file mode 100644 index 00000000..475b3b4c --- /dev/null +++ b/src/dolphin/os/__start.c @@ -0,0 +1,161 @@ +#include +#include "__ppc_eabi_linker.h" + +void __check_pad3(void) { + if ((Pad3Button & 0x0eef) == 0x0eef) { + OSResetSystem(OS_RESET_RESTART, 0, FALSE); + } + return; +} + +__declspec(weak) asm void __start(void) { + // clang-format off + nofralloc + bl __init_registers + bl __init_hardware + li r0, -1 + stwu r1, -8(r1) + stw r0, 4(r1) + stw r0, 0(r1) + bl __init_data + li r0, 0 + lis r6, EXCEPTIONMASK_ADDR@ha + addi r6, r6, EXCEPTIONMASK_ADDR@l + stw r0, 0(r6) + lis r6, BOOTINFO2_ADDR@ha + addi r6, r6, BOOTINFO2_ADDR@l + lwz r6, 0(r6) + +_check_TRK: + cmplwi r6, 0 + beq _load_lomem_debug_flag + lwz r7, OS_BI2_DEBUGFLAG_OFFSET(r6) + b _check_debug_flag + +_load_lomem_debug_flag: + lis r5, ARENAHI_ADDR@ha + addi r5, r5, ARENAHI_ADDR@l + lwz r5, 0(r5) + cmplwi r5, 0 + beq _goto_main + lis r7, DEBUGFLAG_ADDR@ha + addi r7, r7, DEBUGFLAG_ADDR@l + lwz r7, 0(r7) + +_check_debug_flag: + li r5, 0 + cmplwi r7, 2 + beq _goto_inittrk + cmplwi r7, 3 + bne _goto_main + li r5, 1 + +_goto_inittrk: + lis r6, InitMetroTRK@ha + addi r6, r6, InitMetroTRK@l + mtlr r6 + blrl + +_goto_main: + lis r6, BOOTINFO2_ADDR@ha + addi r6, r6, BOOTINFO2_ADDR@l + lwz r5, 0(r6) + cmplwi r5, 0 + beq+ _no_args + lwz r6, 8(r5) + cmplwi r6, 0 + beq+ _no_args + add r6, r5, r6 + lwz r14, 0(r6) + cmplwi r14, 0 + beq _no_args + addi r15, r6, 4 + mtctr r14 + +_loop: + addi r6, r6, 4 + lwz r7, 0(r6) + add r7, r7, r5 + stw r7, 0(r6) + bdnz _loop + lis r5, ARENAHI_ADDR@ha + addi r5, r5, ARENAHI_ADDR@l + rlwinm r7, r15, 0, 0, 0x1a + stw r7, 0(r5) + b _end_of_parseargs + +_no_args: + li r14, 0 + li r15, 0 + +_end_of_parseargs: + bl DBInit + bl OSInit + lis r4, DVD_DEVICECODE_ADDR@ha + addi r4, r4, DVD_DEVICECODE_ADDR@l + lhz r3, 0(r4) + andi. r5, r3, 0x8000 + beq _check_pad3 + andi. r3, r3, 0x7fff + cmplwi r3, 1 + bne _goto_skip_init_bba + +_check_pad3: + bl __check_pad3 + +_goto_skip_init_bba: + bl __init_user + mr r3, r14 + mr r4, r15 + bl main + b exit + // clang-format on +} + +asm static void __init_registers(void) { + // clang-format off + nofralloc + lis r1, _stack_addr@h + ori r1, r1, _stack_addr@l + lis r2, _SDA2_BASE_@h + ori r2, r2, _SDA2_BASE_@l + lis r13, _SDA_BASE_@h + ori r13, r13, _SDA_BASE_@l + blr + // clang-format on +} + +inline static void __copy_rom_section(void* dst, const void* src, unsigned long size) { + if (size && (dst != src)) { + memcpy(dst, src, size); + __flush_cache(dst, size); + } +} + +inline static void __init_bss_section(void* dst, unsigned long size) { + if (size) { + memset(dst, 0, size); + } +} + +#pragma scheduling off +void __init_data(void) { + __rom_copy_info* dci; + __bss_init_info* bii; + + dci = _rom_copy_info; + while (TRUE) { + if (dci->size == 0) + break; + __copy_rom_section(dci->addr, dci->rom, dci->size); + dci++; + } + + bii = _bss_init_info; + while (TRUE) { + if (bii->size == 0) + break; + __init_bss_section(bii->addr, bii->size); + bii++; + } +} From f6b979ac3c57dcc788f57ce20a563bd06717f893 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 12 Nov 2024 19:29:11 +0100 Subject: [PATCH 129/311] Matched dolphin/OSAlloc.c --- configure.py | 2 +- src/dolphin/os/OSAlloc.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/configure.py b/configure.py index 52215c30..f0e1d479 100644 --- a/configure.py +++ b/configure.py @@ -460,7 +460,7 @@ config.libs = [ [ Object(Matching, "dolphin/os/OS.c"), Object(Matching, "dolphin/os/OSAlarm.c"), - Object(NonMatching, "dolphin/os/OSAlloc.c"), + Object(Matching, "dolphin/os/OSAlloc.c"), Object(Matching, "dolphin/os/OSArena.c"), Object(Matching, "dolphin/os/OSAudioSystem.c"), Object(Matching, "dolphin/os/OSCache.c"), diff --git a/src/dolphin/os/OSAlloc.c b/src/dolphin/os/OSAlloc.c index fe0c34ae..32515afd 100644 --- a/src/dolphin/os/OSAlloc.c +++ b/src/dolphin/os/OSAlloc.c @@ -461,7 +461,9 @@ long OSCheckHeap(int heap) ASSERTREPORT(0x39A, cell->next == NULL || cell->next->prev == cell); ASSERTREPORT(0x39B, MINOBJSIZE <= cell->size); ASSERTREPORT(0x39C, OFFSET(cell->size, ALIGNMENT) == 0); - ASSERTREPORT(0x39D, cell->next == NULL || (char *)cell + cell->size < (char *)cell->next); + /* clang-format off*/ + ASSERTREPORT(0x39D, cell->next == NULL || (char*) cell + cell->size < (char*) cell->next); + /* clang-format on*/ total += cell->size; free = (cell->size + free); free -= HEADERSIZE; From bedf7ba7b5b1c503bbdc0b3e7850301daee69aca Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 12 Nov 2024 21:41:34 +0100 Subject: [PATCH 130/311] Imported odemuexi2, amcstubs and odenotstub --- configure.py | 8 +- src/OdemuExi2/DebuggerDriver.c | 327 +++++++++++++++++++++++++++++++++ src/amcstubs/AmcExi2Stubs.c | 40 ++++ src/odenotstub/odenotstub.c | 7 + 4 files changed, 378 insertions(+), 4 deletions(-) create mode 100644 src/OdemuExi2/DebuggerDriver.c create mode 100644 src/amcstubs/AmcExi2Stubs.c create mode 100644 src/odenotstub/odenotstub.c diff --git a/configure.py b/configure.py index f0e1d479..f54e93c4 100644 --- a/configure.py +++ b/configure.py @@ -760,11 +760,11 @@ config.libs = [ ), { "lib": "OdemuExi2", - "mw_version": config.linker_version, + "mw_version": "GC/1.2.5", "cflags": cflags_odemuexi, "host": False, "objects": [ - Object(NonMatching, "OdemuExi2/DebuggerDriver.c"), + Object(Matching, "OdemuExi2/DebuggerDriver.c"), ], }, { @@ -773,7 +773,7 @@ config.libs = [ "cflags": cflags_amcstub, "host": False, "objects": [ - Object(NonMatching, "amcstubs/AmcExi2Stubs.c"), + Object(Matching, "amcstubs/AmcExi2Stubs.c"), ], }, { @@ -782,7 +782,7 @@ config.libs = [ "cflags": cflags_odenotstub, "host": False, "objects": [ - Object(NonMatching, "odenotstub/odenotstub.c"), + Object(Matching, "odenotstub/odenotstub.c"), ], }, { diff --git a/src/OdemuExi2/DebuggerDriver.c b/src/OdemuExi2/DebuggerDriver.c new file mode 100644 index 00000000..3a56495b --- /dev/null +++ b/src/OdemuExi2/DebuggerDriver.c @@ -0,0 +1,327 @@ +#include +#include +#include + + +typedef void (*MTRCallbackType)(int); + +static MTRCallbackType MTRCallback; + +static void (*DBGCallback)(u32, OSContext *); + +static u32 SendMailData; + +static s32 RecvDataLeng; + +static u8 *pEXIInputFlag; + +static u8 EXIInputFlag; + +static u8 SendCount = 0x80; + +#define IS_TRUE(x) ((x) != FALSE) +#define IS_FALSE(x) !IS_TRUE(x) +#define ROUND_UP(x, align) (((x) + (align)-1) & (-(align))) + +// TODO this matches, but there are probably no inline flags used, so the order of functions would be different that way + +void DBGEXIInit() +{ + __OSMaskInterrupts(0x18000); + __EXIRegs[10] = 0; +} + +static u32 DBGEXISelect(u32 v) +{ + u32 regs = __EXIRegs[10]; + regs &= 0x405; + regs |= 0x80 | (v << 4); + __EXIRegs[10] = regs; + return TRUE; +} + +BOOL DBGEXIDeselect(void) +{ + __EXIRegs[10] &= 0x405; + return TRUE; +} + +static BOOL DBGEXISync() +{ + while (__EXIRegs[13] & 1) + ; + + return TRUE; +} + +static BOOL DBGEXIImm(void *buffer, s32 bytecounter, u32 write) +{ + u8 *tempPointer; + u32 writeOutValue; + int i; + + if (write) { + tempPointer = buffer; + writeOutValue = 0; + for (i = 0; i < bytecounter; i++) { + u8 *temp = ((u8 *)buffer) + i; + writeOutValue |= *temp << ((3 - i) << 3); + } + __EXIRegs[14] = writeOutValue; + } + + __EXIRegs[13] = 1 | write << 2 | (bytecounter - 1) << 4; + DBGEXISync(); + + if (!write) { + writeOutValue = __EXIRegs[14]; + tempPointer = buffer; + for (i = 0; i < bytecounter; i++) { + *tempPointer++ = writeOutValue >> ((3 - i) << 3); + } + } + + return TRUE; +} + +static BOOL DBGWriteMailbox(u32 p1) +{ + u32 cmd = 0xc0000000; + u32 v; + u32 base = p1; + BOOL total = FALSE; + + DBGEXISelect(4); + v = (base & 0x1fffffff) | (cmd); + total |= IS_FALSE(DBGEXIImm(&v, sizeof(v), 1)); + total |= IS_FALSE(DBGEXISync()); + total |= IS_FALSE(DBGEXIDeselect()); + + return IS_FALSE(total); +} + +#pragma dont_inline on + +static BOOL DBGReadMailbox(u32 *p1) +{ + BOOL total = FALSE; + u32 v; + + DBGEXISelect(4); + + v = 0x60000000; + total |= IS_FALSE(DBGEXIImm(&v, 2, 1)); + total |= IS_FALSE(DBGEXISync()); + + total |= IS_FALSE(DBGEXIImm(p1, 4, 0)); + total |= IS_FALSE(DBGEXISync()); + + total |= IS_FALSE(DBGEXIDeselect()); + + return IS_FALSE(total); +} +#pragma dont_inline off + +static BOOL DBGRead(u32 count, u32 *buffer, s32 param3) +{ + BOOL total = FALSE; + u32 *buf_p = (u32 *)buffer; + u32 v1; + u32 v; + + DBGEXISelect(4); + + v1 = (count & 0x1fffc) << 8 | 0x20000000; + total |= IS_FALSE(DBGEXIImm(&v1, sizeof(v1), 1)); + total |= IS_FALSE(DBGEXISync()); + + while (param3) { + total |= IS_FALSE(DBGEXIImm(&v, sizeof(v), 0)); + total |= IS_FALSE(DBGEXISync()); + + *buf_p++ = v; + + param3 -= 4; + if (param3 < 0) { + param3 = 0; + } + } + + total |= IS_FALSE(DBGEXIDeselect()); + return IS_FALSE(total); +} + +static BOOL DBGWrite(u32 count, void *buffer, s32 param3) +{ + BOOL total = FALSE; + u32 *buf_p = (u32 *)buffer; + u32 v1; + u32 v; + + DBGEXISelect(4); + + v1 = (count & 0x1fffc) << 8 | 0xa0000000; + total |= IS_FALSE(DBGEXIImm(&v1, sizeof(v1), 1)); + total |= IS_FALSE(DBGEXISync()); + + while (param3 != 0) { + v = *buf_p++; + + total |= IS_FALSE(DBGEXIImm(&v, sizeof(v), 1)); + total |= IS_FALSE(DBGEXISync()); + + param3 -= 4; + if (param3 < 0) { + param3 = 0; + } + } + + total |= IS_FALSE(DBGEXIDeselect()); + return IS_FALSE(total); +} + +static BOOL _DBGReadStatus(u32 *p1) +{ + BOOL total = FALSE; + u32 v; + + DBGEXISelect(4); + + v = 1 << 30; + total |= IS_FALSE(DBGEXIImm(&v, 2, 1)); + total |= IS_FALSE(DBGEXISync()); + + total |= IS_FALSE(DBGEXIImm(p1, 4, 0)); + total |= IS_FALSE(DBGEXISync()); + + total |= IS_FALSE(DBGEXIDeselect()); + + return IS_FALSE(total); +} + +static BOOL DBGReadStatus(u32 *p1) +{ + return _DBGReadStatus(p1); +} + +static void MWCallback(u32 a, OSContext *b) +{ + EXIInputFlag = TRUE; + if (MTRCallback) { + MTRCallback(0); + } +} + +static void DBGHandler(s16 a, OSContext *b) +{ + *__PIRegs = 0x1000; + if (DBGCallback) { + DBGCallback(a, b); + } +} + +void DBInitComm(u8 **a, MTRCallbackType b) +{ + BOOL interrupts = OSDisableInterrupts(); + { + pEXIInputFlag = (u8 *)EXIInputFlag; + pEXIInputFlag = &EXIInputFlag; + + *a = pEXIInputFlag; + + MTRCallback = b; + + DBGEXIInit(); + } + OSRestoreInterrupts(interrupts); +} + +void DBInitInterrupts(void) +{ + __OSMaskInterrupts(0x18000); + __OSMaskInterrupts(0x40); + DBGCallback = &MWCallback; + __OSSetInterruptHandler(0x19, DBGHandler); + __OSUnmaskInterrupts(0x40); +} + +static void CheckMailBox(void) +{ + u32 v; + DBGReadStatus(&v); + if (v & 1) { + DBGReadMailbox(&v); + v &= 0x1fffffff; + + if ((v & 0x1f000000) == 0x1f000000) { + SendMailData = v; + RecvDataLeng = v & 0x7fff; + EXIInputFlag = 1; + } + } +} + +u32 DBQueryData(void) +{ + BOOL interrupts; + EXIInputFlag = 0; + if (!RecvDataLeng) { + interrupts = OSDisableInterrupts(); + CheckMailBox(); + } + OSRestoreInterrupts(interrupts); + return RecvDataLeng; +} + +BOOL DBRead(u32 *buffer, s32 count) +{ + u32 interrupts = OSDisableInterrupts(); + u32 v = SendMailData & 0x10000 ? 0x1000 : 0; + + DBGRead(v + 0x1e000, buffer, ROUND_UP(count, 4)); + + RecvDataLeng = 0; + EXIInputFlag = 0; + + OSRestoreInterrupts(interrupts); + + return 0; +} + +BOOL DBWrite(void *src, u32 size) +{ + u32 v; + u32 busyFlag; + BOOL interrupts = OSDisableInterrupts(); + + do { + _DBGReadStatus(&busyFlag); + } while (busyFlag & 2); + + SendCount++; + v = ((SendCount & 1) ? 0x1000 : 0); + + while (!DBGWrite(v | 0x1c000, src, ROUND_UP(size, 4))) + ; + + do { + _DBGReadStatus(&busyFlag); + } while (busyFlag & 2); + + v = SendCount; + while (!DBGWriteMailbox((0x1f000000) | v << 0x10 | size)) + ; + + do { + while (!_DBGReadStatus(&busyFlag)) + ; + } while (busyFlag & 2); + + OSRestoreInterrupts(interrupts); + + return 0; +} + +void DBOpen(void) { } + +void DBClose(void) { } diff --git a/src/amcstubs/AmcExi2Stubs.c b/src/amcstubs/AmcExi2Stubs.c new file mode 100644 index 00000000..f3aa9d3f --- /dev/null +++ b/src/amcstubs/AmcExi2Stubs.c @@ -0,0 +1,40 @@ +#include + +// EXI error codes +typedef enum { AMC_EXI_NO_ERROR = 0, AMC_EXI_UNSELECTED } AmcExiError; + +int AMC_IsStub(); +void EXI2_Unreserve(); +void EXI2_Reserve(); +AmcExiError EXI2_WriteN(); +AmcExiError EXI2_ReadN(); +int EXI2_Poll(); +void EXI2_EnableInterrupts(); +void EXI2_Init(); + +int AMC_IsStub() +{ + return 1; +} + +void EXI2_Unreserve() { } + +void EXI2_Reserve() { } + +AmcExiError EXI2_WriteN() +{ + return AMC_EXI_NO_ERROR; +} + +AmcExiError EXI2_ReadN() +{ + return AMC_EXI_NO_ERROR; +} + +int EXI2_Poll() +{ + return 0; +} + +void EXI2_EnableInterrupts() { } +void EXI2_Init() { } diff --git a/src/odenotstub/odenotstub.c b/src/odenotstub/odenotstub.c new file mode 100644 index 00000000..2aeb1140 --- /dev/null +++ b/src/odenotstub/odenotstub.c @@ -0,0 +1,7 @@ +#include + +int Hu_IsStub(); + +int Hu_IsStub() { + return 0; +} From f84b74b7ff8606a7c87f019a68bc0f32d385ac4c Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 12 Nov 2024 22:38:27 +0100 Subject: [PATCH 131/311] Set DebuggerDriver.c to unmatching as we still have to figure out the inling issue --- configure.py | 4 ++-- src/OdemuExi2/DebuggerDriver.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.py b/configure.py index f54e93c4..f8a43598 100644 --- a/configure.py +++ b/configure.py @@ -242,7 +242,7 @@ cflags_trk = [ cflags_odemuexi = [ *cflags_base, - "-inline auto,deferred", + # TODO figure out flags ] cflags_amcstub = [ @@ -764,7 +764,7 @@ config.libs = [ "cflags": cflags_odemuexi, "host": False, "objects": [ - Object(Matching, "OdemuExi2/DebuggerDriver.c"), + Object(NonMatching, "OdemuExi2/DebuggerDriver.c"), ], }, { diff --git a/src/OdemuExi2/DebuggerDriver.c b/src/OdemuExi2/DebuggerDriver.c index 3a56495b..e9be8b4e 100644 --- a/src/OdemuExi2/DebuggerDriver.c +++ b/src/OdemuExi2/DebuggerDriver.c @@ -23,7 +23,7 @@ static u8 SendCount = 0x80; #define IS_FALSE(x) !IS_TRUE(x) #define ROUND_UP(x, align) (((x) + (align)-1) & (-(align))) -// TODO this matches, but there are probably no inline flags used, so the order of functions would be different that way +// TODO void DBGEXIInit() { From 8e0a57594a3ed06d4e6e5de6d0a7473db70f29de Mon Sep 17 00:00:00 2001 From: CreateSource Date: Wed, 13 Nov 2024 20:39:19 -0500 Subject: [PATCH 132/311] continued work on main.c --- src/REL/m418Dll/main.c | 187 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 185 insertions(+), 2 deletions(-) diff --git a/src/REL/m418Dll/main.c b/src/REL/m418Dll/main.c index dc838ba5..9f4e9cad 100644 --- a/src/REL/m418Dll/main.c +++ b/src/REL/m418Dll/main.c @@ -2,6 +2,7 @@ #include "game/hsfmotion.h" #include "game/minigame_seq.h" #include "game/object.h" +#include "game/objsub.h" #include "rel_sqrt_consts.h" #include "REL/m418Dll.h" @@ -11,11 +12,43 @@ typedef struct M418DllUnkStruct2 { char unk[0x4]; s32 unk4[3]; char unk10[0x4]; -} M418DllUnkStruct2; +} M418DllUnkStruct2; // sizeof 0x14 + +typedef struct M418DllUnkStruct3 { + char unk0[0x4]; + s32 unk4; + char unk[0x58]; +} M418DllUnkStruct3; // sizeof 0x60 + +typedef struct M418DllUnkStruct4 { + char unk[0x4]; + f32 unk4; + f32 unk8; + s32 unkC; + s32 unk10; + f32 unk14; + char unk18[0x4]; +} M418DllUnkStruct4; // sizeof 0x1C + +typedef struct M418DllUnkStruct5 { + char unk[0x14]; + s32 unk14; + char unk18[0x14]; +} M418DllUnkStruct5; // sizeof 0x2C; + +typedef struct M418DllUnkStruct6 { + s32 unk0; + char unk4[0x40]; +} M418DllUnkStruct6; // bss +M418DllUnkStruct6 lbl_1_bss_3EC; +M418DllUnkStruct3 lbl_1_bss_26C[4]; +M418DllUnkStruct5 lbl_1_bss_240; M418DllUnkStruct lbl_1_bss_1F4; M418DllUnkStruct2 lbl_1_bss_1E0; +M418DllUnkStruct4 lbl_1_bss_170[4]; +M418DllUnkStruct4 lbl_1_bss_11C[3]; s32 lbl_1_bss_8; s32 lbl_1_bss_4; Process* lbl_1_bss_0; @@ -186,7 +219,7 @@ void fn_1_998(omObjData* object) { void fn_1_AA8(omObjData* object) { Mtx sp10; - char* sp8[2] = { 0, 0 }; + char* sp8[2] = { "scene02-dai1_null", "scene02-dai2_null1" }; s32 var_r31; for (var_r31 = 0; var_r31 < 2; var_r31++) { @@ -229,3 +262,153 @@ void fn_1_B4C(omObjData* object) { } object->func = fn_1_AA8; } + +void fn_1_E74(omObjData* object) { + Mtx sp18; + f32 var_f31; + + M418DllUnkStruct4* temp_r30; + M418DllUnkStruct4* temp_r29; + M418DllUnkStruct3* temp_r28; + M418DllUnkStruct4* temp_r27; + M418DllUnkStruct6* temp_r26; + HsfObject* temp_r25; + ModelData* temp_r24; + + temp_r26 = &lbl_1_bss_3EC; + temp_r28 = &lbl_1_bss_26C[temp_r26->unk0]; + temp_r30 = &lbl_1_bss_170[object->work[0]]; + if (object->work[1] == 0) { + fn_1_ABC4(object, 2, 2, 0, 2); + } else if (object->work[1] == 1) { + Hu3DModelAttrReset(object->model[3], 1); + Hu3DModelAttrReset(object->model[4], 1); + Hu3DModelAttrReset(object->model[5], 1); + Hu3DModelAttrReset(object->model[6], 1); + fn_1_ABC4(object, 2, 2, 0, 0); + fn_1_ABC4(object, 3, 3, 0, 0); + fn_1_ABC4(object, 4, 4, 0, 1); + object->work[1] = 2; + lbl_1_bss_240.unk14 = HuAudFXPlay(0x5D6); + } else if (object->work[1] == 2) { + if (Hu3DMotionEndCheck(object->model[3]) != 0) { + object->work[1] = 3; + object->work[2] = 0; + temp_r30->unkC = 1; + HuAudFXFadeOut(lbl_1_bss_240.unk14, 0x3E8); + } + } else if (object->work[1] == 3) { + temp_r29 = &lbl_1_bss_170[object->work[0]]; + temp_r29->unkC = 2; + temp_r29->unk4 += 1.0f; + if (temp_r29->unk4 >= 20.0f) { + temp_r29->unk4 = 20.0f; + } + if (object->work[2]++ >= 0x5A) { + if (temp_r29->unk10 == 1) { + object->work[1] = 5; + temp_r29->unk8 = 0.0f; + } else { + HuAudFXPlay(0x5D2); + object->work[1] = 4; + Hu3DModelObjMtxGet(object->model[0], "taihou-null4", sp18); + Hu3DModelPosSet(object->model[5], sp18[0][3], sp18[1][3], sp18[2][3]); + fn_1_ABC4(object, 5, 5, 0, 0); + fn_1_158(2, 256.0f); + } + temp_r29->unkC = 3; + } + } else if (object->work[1] == 4) { + if ((Hu3DMotionEndCheck(object->model[5]) != 0) || (temp_r30->unk10 == 1)) { + object->work[1] = 99; + Hu3DModelAttrSet(object->model[3], 1); + Hu3DModelAttrSet(object->model[4], 1); + Hu3DModelAttrSet(object->model[5], 1); + } + } else if (object->work[1] == 5 || object->work[1] == 6) { + if (temp_r30->unk8 > 1.7f) { + temp_r30->unk8 = 1.7f; + } + if (object->work[1] == 5) { + var_f31 = temp_r30->unk8 * temp_r30->unk8 * (temp_r30->unk8 >= 0.0f ? -3.5f : 3.5f); + temp_r30->unk4 += var_f31; + } else { + var_f31 = temp_r30->unk8 * temp_r30->unk8 * (temp_r30->unk8 >= 0.0f ? -1.25f : 1.25f); + temp_r30->unk4 += var_f31; + } + if (temp_r30->unk4 <= 0.0f && object->work[1] == 5) { + temp_r30->unk4 = 0.0f; + temp_r30->unk8 = -1.47f; + object->work[1] = 6; + fn_1_158(1, 4.0f); + omVibrate(temp_r28->unk4, 0xC, 6, 6); + HuAudFXPlay(0x5DA); + } else { + if ((temp_r30->unk4 <= 0.0f) && (object->work[1] == 6)) { + Hu3DModelObjMtxGet(object->model[0], "taihou-null4", sp18); + Hu3DModelPosSet(object->model[6], sp18[0][3], sp18[1][3], sp18[2][3]); + fn_1_158(1, 4.0f); + omVibrate(temp_r28->unk4, 0xC, 6, 6); + temp_r30->unk4 = 0.0f; + temp_r30->unk8 = 0.0f; + object->work[1] = 4; + fn_1_ABC4(object, 6, 6, 0, 0); + HuAudFXPlay(0x5DA); + HuAudFXPlay(0x5DB); + } + } + temp_r30->unk8 += 0.11f; + } + if (object->work[1] != 0) { + const char* sp8[4] = { "doukasen-null_B", "doukasen-null_A", "doukasen-null_X", "doukasen-null_Y" }; + Hu3DModelObjMtxGet(object->model[3], sp8[object->work[0]], sp18); + Hu3DModelPosSet(object->model[4], sp18[0][3], sp18[1][3], sp18[2][3]); + } + temp_r27 = &lbl_1_bss_170[object->work[0]]; + temp_r25 = Hu3DModelObjPtrGet(object->model[0], "taihou-taihou"); + temp_r25->data.base.rot.x = temp_r27->unk4; + temp_r24 = &Hu3DData[object->model[1]]; + temp_r24->rot.x = temp_r27->unk4; +} + +void fn_1_14F0(omObjData* arg0) { + s32 var_r30 = arg0->work[0]; + s32 sp28[4] = { 0x310012, 0x310013, 0x310015, 0x310014 }; + s32 sp18[4] = { 0x310019, 0x31001A, 0x31001B, 0x31001C }; + s32 sp8[4] = { 0x31001D, 0x31001E, 0x31001F, 0x310020 }; + + arg0->model[0] = Hu3DModelCreateFile(0x310010); + omSetTra(arg0, -540.0f + (360.0f * var_r30), 115.0f, -900.0f); + arg0->model[1] = Hu3DModelCreateFile(sp28[var_r30]); + Hu3DModelPosSet(arg0->model[1], -540.0f + (360.0f * var_r30), 115.0f, -900.0f); + arg0->model[2] = Hu3DModelCreateFile(sp18[var_r30]); + arg0->motion[2] = Hu3DMotionIDGet(arg0->model[2]); + fn_1_ABC4(arg0, 2, 2, 0, 2); + arg0->model[3] = Hu3DModelCreateFile(sp8[var_r30]); + arg0->motion[3] = Hu3DMotionIDGet(arg0->model[3]); + Hu3DModelAttrSet(arg0->model[3], 1); + fn_1_ABC4(arg0, 3, 3, 0, 2); + arg0->model[4] = Hu3DModelCreateFile(0x310025); + arg0->motion[4] = Hu3DMotionIDGet(arg0->model[4]); + Hu3DModelAttrSet(arg0->model[4], 1); + fn_1_ABC4(arg0, 4, 4, 0, 2); + arg0->model[5] = Hu3DModelCreateFile(0x310024); + arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]); + Hu3DModelAttrSet(arg0->model[5], 1); + fn_1_ABC4(arg0, 5, 5, 0, 2); + arg0->model[6] = Hu3DModelCreateFile(0x310028); + arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]); + Hu3DModelAttrSet(arg0->model[6], 1); + fn_1_ABC4(arg0, 6, 6, 0, 2); + Hu3DModelScaleSet(arg0->model[6], 3.0f, 3.0f, 3.0f); + arg0->func = fn_1_E74; +} + +void fn_1_18AC(omObjData* object) { + M418DllUnkStruct4* var_r31; + + var_r31 = &lbl_1_bss_11C[object->work[0]]; + if (var_r31->unk14 == 0.0f) { + var_r31->unk14 = 1.0f; + } +} From b968009093013131e93f41b93944b07d37910672 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Fri, 15 Nov 2024 03:19:28 +0100 Subject: [PATCH 133/311] Applied ABS macros --- src/REL/m414Dll/main.c | 4 ++-- src/REL/m432Dll/main.c | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/REL/m414Dll/main.c b/src/REL/m414Dll/main.c index 1268cdad..3341eb5b 100644 --- a/src/REL/m414Dll/main.c +++ b/src/REL/m414Dll/main.c @@ -1582,7 +1582,7 @@ void fn_1_5A3C(void) var_f31 = Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r29]) - (var_f27 / var_f29) * Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r29]); } - Hu3DMotionTimeSet(var_r31->unk_00->unk_00[var_r29], var_f31 >= 0.0f ? var_f31 : -var_f31); + Hu3DMotionTimeSet(var_r31->unk_00->unk_00[var_r29], ABS_INV(var_f31)); } HuPrcVSleep(); } @@ -1597,7 +1597,7 @@ void fn_1_5A3C(void) var_f31 = Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r29]) - (var_f27 / var_f29) * Hu3DMotionMaxTimeGet(var_r31->unk_00->unk_00[var_r29]); } - Hu3DMotionTimeSet(var_r31->unk_00->unk_00[var_r29], var_f31 >= 0.0f ? var_f31 : -var_f31); + Hu3DMotionTimeSet(var_r31->unk_00->unk_00[var_r29], ABS_INV(var_f31)); } HuPrcVSleep(); } diff --git a/src/REL/m432Dll/main.c b/src/REL/m432Dll/main.c index 18d7f523..a1b6da31 100644 --- a/src/REL/m432Dll/main.c +++ b/src/REL/m432Dll/main.c @@ -1579,7 +1579,7 @@ void fn_1_6F28(UnkBss0Struct *arg0) fn_1_40C0(&var_r30->unk_00); var_f23 = var_r30->unk_00.unk_6C.y - arg0->unk_19C.y; arg0->unk_190.y += 0.03f * var_f23; - if (50.0f > (0.0f > var_f23 ? -var_f23 : var_f23)) { + if (50.0f > ABS(var_f23)) { arg0->unk_1B4++; arg0->unk_1A8 = arg0->unk_1C0; arg0->unk_1A8.y += 900.0f; @@ -1684,7 +1684,7 @@ void fn_1_7C1C(UnkBss0Struct *var_r31, UnkM432DllStruct *var_r30, UnkM432DllStru var_f30 = var_r31->unk_1EC / var_r31->unk_1E8; if (265.0f > var_f30) { var_f31 = 0.2f * (265.0f - var_f30); - if (1.0f <= (0.0f > var_f31 ? -var_f31 : var_f31)) { + if (1.0f <= ABS(var_f31)) { var_r31->unk_28.z -= var_f31; } } @@ -2808,7 +2808,7 @@ void fn_1_ED0C(omObjData *object) if ((var_r31->unk_180 == 0x7D3) && ((var_r31->unk_13C.x != 0.0f) || (var_r31->unk_13C.z != 0.0f))) { var_f30 = var_r31->unk_13C.x - var_r31->unk_00.unk_6C.x; var_f31 = var_r31->unk_13C.z - var_r31->unk_00.unk_6C.z; - if (var_r31->unk_00.unk_BC < (0.0f > var_f31 ? -var_f31 : var_f31)) { + if (var_r31->unk_00.unk_BC < ABS(var_f31)) { var_f30 = 0.0f; } var_f26 = sqrtf((var_f30 * var_f30) + (var_f31 * var_f31)); @@ -2969,8 +2969,8 @@ void fn_1_10250(omObjData *object) case 0x7DB: var_f31 = var_r31->unk_13C.x - var_r31->unk_00.unk_6C.x; var_f30 = var_r31->unk_13C.z - var_r31->unk_00.unk_6C.z; - if (1.0f > (0.0f > var_f31 ? -var_f31 : var_f31)) { - if (1.0f > (0.0f > var_f30 ? -var_f30 : var_f30)) { + if (1.0f > ABS(var_f31)) { + if (1.0f > ABS(var_f30)) { var_r31->unk_180++; var_r31->unk_160 = 0.0f; var_r31->unk_164 = var_r31->unk_00.unk_6C.y; @@ -2978,7 +2978,7 @@ void fn_1_10250(omObjData *object) break; } } - if (1.0f < (0.0f > var_f31 ? -var_f31 : var_f31)) { + if (1.0f < ABS(var_f31)) { var_f30 = 0.0f; } var_f24 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); From 636af928aee537d5a120b98315ef281daddacaa5 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Fri, 15 Nov 2024 03:22:57 +0100 Subject: [PATCH 134/311] Added support for USA Rev 1 --- README.md | 5 +- config/GMPE01_00/rels/m444dll/symbols.txt | 4 +- config/GMPE01_01/build.sha1 | 100 + config/GMPE01_01/config.yml | 571 ++ config/GMPE01_01/rels/m444dll/splits.txt | 32 + config/GMPE01_01/rels/m444dll/symbols.txt | 325 + config/GMPE01_01/rels/mstory2Dll/splits.txt | 54 + config/GMPE01_01/rels/mstory2Dll/symbols.txt | 713 ++ config/GMPE01_01/rels/mstory3Dll/splits.txt | 31 + config/GMPE01_01/rels/mstory3Dll/symbols.txt | 553 ++ config/GMPE01_01/rels/mstoryDll/splits.txt | 43 + config/GMPE01_01/rels/mstoryDll/symbols.txt | 499 ++ config/GMPE01_01/splits.txt | 1450 ++++ config/GMPE01_01/symbols.txt | 7720 ++++++++++++++++++ configure.py | 10 +- orig/GMPE01_01/.gitkeep | 0 src/OdemuExi2/DebuggerDriver.c | 6 +- src/REL/m444dll/pinball.c | 45 +- 18 files changed, 12142 insertions(+), 19 deletions(-) create mode 100644 config/GMPE01_01/build.sha1 create mode 100644 config/GMPE01_01/config.yml create mode 100644 config/GMPE01_01/rels/m444dll/splits.txt create mode 100644 config/GMPE01_01/rels/m444dll/symbols.txt create mode 100644 config/GMPE01_01/rels/mstory2Dll/splits.txt create mode 100644 config/GMPE01_01/rels/mstory2Dll/symbols.txt create mode 100644 config/GMPE01_01/rels/mstory3Dll/splits.txt create mode 100644 config/GMPE01_01/rels/mstory3Dll/symbols.txt create mode 100644 config/GMPE01_01/rels/mstoryDll/splits.txt create mode 100644 config/GMPE01_01/rels/mstoryDll/symbols.txt create mode 100644 config/GMPE01_01/splits.txt create mode 100644 config/GMPE01_01/symbols.txt create mode 100644 orig/GMPE01_01/.gitkeep diff --git a/README.md b/README.md index af12d2d7..26c49ce7 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ This repository does **not** contain any game assets or assembly whatsoever. An Supported versions: - `GMPE01_00`: Rev 0 (USA) +- `GMPE01_01`: Rev 1 (USA) Dependencies ============ @@ -69,7 +70,7 @@ Building git submodule update --init --recursive ``` -- Copy your game's disc image to `orig/GMPE01_00`. +- Copy your game's disc image to `orig/[GAMEID]`. The supported game IDs are listed above. - Supported formats: ISO (GCM), RVZ, WIA, WBFS, CISO, NFS, GCZ, TGC - After the initial build, the disc image can be deleted to save space. @@ -78,6 +79,8 @@ Building python configure.py ``` + To choose a version other than the USA Rev 0 one, add `--version [GAMEID]` to the command. + - Build: ``` ninja diff --git a/config/GMPE01_00/rels/m444dll/symbols.txt b/config/GMPE01_00/rels/m444dll/symbols.txt index 6f2bcebd..65610d76 100644 --- a/config/GMPE01_00/rels/m444dll/symbols.txt +++ b/config/GMPE01_00/rels/m444dll/symbols.txt @@ -233,7 +233,7 @@ lbl_1_data_0 = .data:0x00000000; // type:object size:0x118 data:float lbl_1_data_118 = .data:0x00000118; // type:object size:0x28 lbl_1_data_140 = .data:0x00000140; // type:object size:0xC data:float lbl_1_data_14C = .data:0x0000014C; // type:object size:0x3C data:float -lbl_1_data_188 = .data:0x00000188; // type:object size:0xC +lbl_1_data_188 = .data:0x00000188; // type:object size:0xA data:2byte lbl_1_data_194 = .data:0x00000194; // type:object size:0x20 lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 scope:local data:string lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0xA scope:local data:string @@ -267,7 +267,7 @@ lbl_1_data_361 = .data:0x00000361; // type:object size:0xD scope:local data:stri lbl_1_data_36E = .data:0x0000036E; // type:object size:0xD scope:local data:string lbl_1_data_37B = .data:0x0000037B; // type:object size:0xD scope:local data:string jumptable_1_data_388 = .data:0x00000388; // type:object size:0x1C scope:local -lbl_1_data_3A4 = .data:0x000003A4; // type:object size:0x8 +lbl_1_data_3A4 = .data:0x000003A4; // type:object size:0x6 data:2byte lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x30 data:float lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x24 data:float lbl_1_data_400 = .data:0x00000400; // type:object size:0x54 data:float diff --git a/config/GMPE01_01/build.sha1 b/config/GMPE01_01/build.sha1 new file mode 100644 index 00000000..349e60a6 --- /dev/null +++ b/config/GMPE01_01/build.sha1 @@ -0,0 +1,100 @@ +64b42eac733a57a53d2ce25e7e47f54fc1e31915 build/GMPE01_01/main.dol +3fbbebc0440f0d91432ecd6a27ef68d5309b87b6 build/GMPE01_01/_minigameDll/_minigameDll.rel +bdfca4f9bce60519badca0d2d0a5b71f6d99706f build/GMPE01_01/bootDll/bootDll.rel +f09399fee83c63abfe2adb25341152adad959a93 build/GMPE01_01/instDll/instDll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPE01_01/m302Dll/m302Dll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPE01_01/m303Dll/m303Dll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPE01_01/m330Dll/m330Dll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPE01_01/m333Dll/m333Dll.rel +136d192a1464e593cd0b767691dfa012c58730ed build/GMPE01_01/m402Dll/m402Dll.rel +b834eb5f8a2749f3be52aa9023cc81403075eba9 build/GMPE01_01/m403Dll/m403Dll.rel +c46b7814cefa8e5dee8dfd1883e369877ac78c0c build/GMPE01_01/m404Dll/m404Dll.rel +7857e0822079d0c7bbfec756a7cf4206b754d100 build/GMPE01_01/m405Dll/m405Dll.rel +bea398ac8abe018dce80914e6b3d6d7578eb86bb build/GMPE01_01/m406Dll/m406Dll.rel +6f63338c417ab62740a40f0968c03c570b440b8a build/GMPE01_01/m407dll/m407dll.rel +7a8ff34b4bcaff39037c9e2f717505cbc63d4230 build/GMPE01_01/m408Dll/m408Dll.rel +984f031fc50121369d5b04d1ec2c54322efdf281 build/GMPE01_01/m409Dll/m409Dll.rel +94e308e409038f7919177d190110ce589cc8a8e8 build/GMPE01_01/m410Dll/m410Dll.rel +26ac81a3db9f3850bb43b23cdb7168dcddccaeea build/GMPE01_01/m411Dll/m411Dll.rel +3ebb173a52aaea75acb414f73264e72a2943c6f8 build/GMPE01_01/m412Dll/m412Dll.rel +e59d4b66b1f57637c335b4745a696e3dbcb4bbe3 build/GMPE01_01/m413Dll/m413Dll.rel +f7fe1aa24c7b6b8ca2bb28922696c0392dc7d029 build/GMPE01_01/m414Dll/m414Dll.rel +3c697b54ebdd01971b99af8c812b4850fa181f4f build/GMPE01_01/m415Dll/m415Dll.rel +d26526935455b26beb2b9eaed1bfae3f3f458c25 build/GMPE01_01/m416Dll/m416Dll.rel +b5c3805ec3cb023299ed09b782b92441085d0054 build/GMPE01_01/m417Dll/m417Dll.rel +0d02610005c46ad4f47ff51f5e154f9b0d16a4f4 build/GMPE01_01/m418Dll/m418Dll.rel +bbceb138b8cc43e578179a7892801633892cb03c build/GMPE01_01/m419Dll/m419Dll.rel +2ef4ee163bc2aa15f87c8c89afb4f28939f088c8 build/GMPE01_01/m420dll/m420dll.rel +216a99780a3915d7096385bbcddfc979ab3a4025 build/GMPE01_01/m421Dll/m421Dll.rel +9ad72ba6c3ac277e521dca2fc1372a5d31c18930 build/GMPE01_01/m422Dll/m422Dll.rel +377c6a56b3faf8f991ec4fccaf1972cb41910438 build/GMPE01_01/m423Dll/m423Dll.rel +5814f59970268406bd86a86d0fee5a09359ab506 build/GMPE01_01/m424Dll/m424Dll.rel +ecaeae453393d228f2769aab9c022820bcdb58f1 build/GMPE01_01/m425Dll/m425Dll.rel +c240697a57cc08d34e27e89d8d3455454799e8b1 build/GMPE01_01/m426Dll/m426Dll.rel +c78a0857e9c44fb33bd4fdc3e392a15b4dec0431 build/GMPE01_01/m427Dll/m427Dll.rel +a1d5672d8ef0aac089dda00287fd68bf2bb67807 build/GMPE01_01/m428Dll/m428Dll.rel +d25f198ce04aa5ca7b54ada9de52f722bd751447 build/GMPE01_01/m429Dll/m429Dll.rel +8bef3e2f51db3afa82dcaf64e209067a58c04bf9 build/GMPE01_01/m430Dll/m430Dll.rel +7148ec21ca6e0aa8d213a1dce0aeb9d93a9b496c build/GMPE01_01/m431Dll/m431Dll.rel +096f5a85bb837af68bd491e962eda7726d8d26a0 build/GMPE01_01/m432Dll/m432Dll.rel +c36f56264ab9cf74b882c2544cdb9b89f6a098cd build/GMPE01_01/m433Dll/m433Dll.rel +55912c8441002b61701fc8c769f707c69e2740c1 build/GMPE01_01/m434Dll/m434Dll.rel +56f1fc330e8b97fa426fac3d901b1feed946566e build/GMPE01_01/m435Dll/m435Dll.rel +e53f3d381bfb99351483e70b9d79c2e8676f73d5 build/GMPE01_01/m436Dll/m436Dll.rel +404698b53acad1231e00d84d0196ddce8d9d9dd9 build/GMPE01_01/m437Dll/m437Dll.rel +9bddf4b81b9a792260000abe2631da493a8b8564 build/GMPE01_01/m438Dll/m438Dll.rel +a2a18c9d26dedfa8e2ae003c3a2e1bdcc1cbd4cc build/GMPE01_01/m439Dll/m439Dll.rel +227ca13bcd72059bdd506e9611d9b52f661af6c5 build/GMPE01_01/m440Dll/m440Dll.rel +d6cbf72115374e06ffea3f15001977c288a9c3fb build/GMPE01_01/m441Dll/m441Dll.rel +347fcb836b5266dfe3d1088e1aa796c043b0fe60 build/GMPE01_01/m442Dll/m442Dll.rel +77444c6739a4d9390f30ba56c5fcd82ee4efc0c2 build/GMPE01_01/m443Dll/m443Dll.rel +897d8ebd200020bc5bb9d949f869b3a2331077c7 build/GMPE01_01/m444dll/m444dll.rel +d4d9f2aad53aa7f4e1c313438a0e3767f8e58eb9 build/GMPE01_01/m445Dll/m445Dll.rel +4b16e5eff613eaf4cc98411809cd1f1578e33fd1 build/GMPE01_01/m446dll/m446dll.rel +775ca8f8b3be867ad67f91bc3b6ebcc8c3068d2b build/GMPE01_01/m447dll/m447dll.rel +e6f7586dadbe3f5b5045c0bdf2fe618d42ef3a44 build/GMPE01_01/m448Dll/m448Dll.rel +e797c2ff132ab35e768be62cb62219592464ca9d build/GMPE01_01/m449Dll/m449Dll.rel +f2ea7da07cf8be4f449c97b829d3231911e158a0 build/GMPE01_01/m450Dll/m450Dll.rel +3f82fd24071582b6494a9f99750c0bc3c10d502e build/GMPE01_01/m451Dll/m451Dll.rel +49ef28c2862000fae4d8efd8fec0ff9b41f24461 build/GMPE01_01/m453Dll/m453Dll.rel +e0b21cfbe592955c84662ff50d8a33e147403906 build/GMPE01_01/m455Dll/m455Dll.rel +97d5701b151c6ad8cf8cea6e776973daa95eea34 build/GMPE01_01/m456Dll/m456Dll.rel +d4a411f9ef850f52506afd1ad1de88d2d8de361b build/GMPE01_01/m457Dll/m457Dll.rel +7ac361c5a04f83d46f516a13a43e43b59b929435 build/GMPE01_01/m458Dll/m458Dll.rel +1aafc4f38ddfee64ea8f7dda7cbd7113e86997ba build/GMPE01_01/m459dll/m459dll.rel +5d28f1a87edee5216b9bb28d9cbff2b22d617747 build/GMPE01_01/m460Dll/m460Dll.rel +ab058151bd25600f05f8b6fedbec1c7448175123 build/GMPE01_01/m461Dll/m461Dll.rel +78d6ab00677791ece684a0c149d1ae72efc52d1c build/GMPE01_01/m462Dll/m462Dll.rel +32010595b4fd0b75293fc46b9026c5613d0ea4c2 build/GMPE01_01/m463Dll/m463Dll.rel +9e63dd96943ffd2747be5aad924b95892d46051a build/GMPE01_01/mentDll/mentDll.rel +7e119de456b3557dcf514c70bd7ab81dc5f9cf54 build/GMPE01_01/messDll/messDll.rel +376c78e2d1b7d7a429959c532e9cb92c98f73b7e build/GMPE01_01/mgmodedll/mgmodedll.rel +8de28c0f254a2c574c4da9b6a3a17e5ad7ffe1f9 build/GMPE01_01/modeltestDll/modeltestDll.rel +bdf8cd57fa23f07c429393817037ade04e2c6024 build/GMPE01_01/modeseldll/modeseldll.rel +4524e63b63510b42bca907f72e67affddec856f9 build/GMPE01_01/mpexDll/mpexDll.rel +86ff8288bb92472376d02cade1d3c9603b613c57 build/GMPE01_01/msetupDll/msetupDll.rel +3395fac055bd155c682642bab7d09f428e48bed9 build/GMPE01_01/mstory2Dll/mstory2Dll.rel +9d67ee54dd30be83331e303d2bcf12ff2b2fa136 build/GMPE01_01/mstory3Dll/mstory3Dll.rel +7f9cc4a18a137f861b2c326b099c02ba4e5bd94b build/GMPE01_01/mstory4Dll/mstory4Dll.rel +b1591a5f829e0c577912fc703a7d280306ff4f77 build/GMPE01_01/mstoryDll/mstoryDll.rel +d74a5147245a1877b140ee2af7f75b2b6c90892d build/GMPE01_01/nisDll/nisDll.rel +5c6973fe7e0271885a5a87d87d4e7164ef711abb build/GMPE01_01/option/option.rel +ddb8d8a825578a588276b9d4f65eceee26f91253 build/GMPE01_01/present/present.rel +41a820438884ae8566f34f895198a186aae60305 build/GMPE01_01/resultDll/resultDll.rel +f34c104078b41971412cb09b37c4dc9526be02e3 build/GMPE01_01/safDll/safDll.rel +81a00a71b8d1ab22bfd3df10d815c87ba618ec84 build/GMPE01_01/selmenuDll/selmenuDll.rel +a6210fbcdf3d7f0063f3052e2ae525abacac08e7 build/GMPE01_01/staffDll/staffDll.rel +7488bc249dc7c656f60105e4d24c4011983c2ba2 build/GMPE01_01/subchrselDll/subchrselDll.rel +d3de36269886995d959e1fd58d8ad806843c8819 build/GMPE01_01/w01Dll/w01Dll.rel +750c4d6cd6a49d290f5cc63432d4f65642fbd7e4 build/GMPE01_01/w02Dll/w02Dll.rel +f9e8d9c4581d44488adaffa3d46d9bc835d4f9bd build/GMPE01_01/w03Dll/w03Dll.rel +821126eeb7054150744b925cc4cb06c751ddcefd build/GMPE01_01/w04Dll/w04Dll.rel +d29f7ccadcba23c8446d05101c4efa5caba26dfd build/GMPE01_01/w05Dll/w05Dll.rel +d11a7a6d44189ba8d1e3a7168ea640ea9f2152fe build/GMPE01_01/w06Dll/w06Dll.rel +54bb23228b04c5aaa6aa7c8ca1f846baec5a1f2c build/GMPE01_01/w10Dll/w10Dll.rel +98cc41456afa9e1ccbb8e03718b8d3cb64e4e86f build/GMPE01_01/w20Dll/w20Dll.rel +b888f2c6703e680699ff8c59ad9200b9d78d30a1 build/GMPE01_01/w21Dll/w21Dll.rel +87d9fee70ed4f011e0b30e05156d087204cf686f build/GMPE01_01/ztardll/ztardll.rel +234e07cee1491c7060e30805681bf5f39150122d build/GMPE01_01/E3setupDLL/E3setupDLL.rel +eba8a17e8b263bc9cd601b1aea7e698a8785416a build/GMPE01_01/m300Dll/m300Dll.rel +f3ec526c25986a3fcf7dfbc8c463626839a3a801 build/GMPE01_01/m401Dll/m401Dll.rel diff --git a/config/GMPE01_01/config.yml b/config/GMPE01_01/config.yml new file mode 100644 index 00000000..f9236cb2 --- /dev/null +++ b/config/GMPE01_01/config.yml @@ -0,0 +1,571 @@ +object_base: orig/GMPE01_01 +object: sys/main.dol +hash: 64b42eac733a57a53d2ce25e7e47f54fc1e31915 +symbols: config/GMPE01_01/symbols.txt +splits: config/GMPE01_01/splits.txt +quick_analysis: true # Faster re-runs after initial analysis +mw_comment_version: 10 # GC 2.6 linker +force_active: [__register_global_object, lbl_801D40D0, _kerent] + +modules: +- object: files/dll/_minigameDll.rel + hash: 3fbbebc0440f0d91432ecd6a27ef68d5309b87b6 + symbols: config/GMPE01_00/rels/_minigameDll/symbols.txt + splits: config/GMPE01_00/rels/_minigameDll/splits.txt + links: [] +- object: files/dll/bootDll.rel + hash: bdfca4f9bce60519badca0d2d0a5b71f6d99706f + symbols: config/GMPE01_00/rels/bootDll/symbols.txt + splits: config/GMPE01_00/rels/bootDll/splits.txt + links: [] + extract: + - symbol: logoNintendoData + binary: logoNintendoData.bin + header: logoNintendoData.inc +- object: files/dll/instDll.rel + hash: f09399fee83c63abfe2adb25341152adad959a93 + symbols: config/GMPE01_00/rels/instDll/symbols.txt + splits: config/GMPE01_00/rels/instDll/splits.txt + links: [] +- object: files/dll/m302Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPE01_00/rels/m302Dll/symbols.txt + splits: config/GMPE01_00/rels/m302Dll/splits.txt + links: [] +- object: files/dll/m303Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPE01_00/rels/m303Dll/symbols.txt + splits: config/GMPE01_00/rels/m303Dll/splits.txt + links: [] +- object: files/dll/m330Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPE01_00/rels/m330Dll/symbols.txt + splits: config/GMPE01_00/rels/m330Dll/splits.txt + links: [] +- object: files/dll/m333Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPE01_00/rels/m333Dll/symbols.txt + splits: config/GMPE01_00/rels/m333Dll/splits.txt + links: [] +- object: files/dll/m402Dll.rel + hash: 136d192a1464e593cd0b767691dfa012c58730ed + symbols: config/GMPE01_00/rels/m402Dll/symbols.txt + splits: config/GMPE01_00/rels/m402Dll/splits.txt + links: [] +- object: files/dll/m403Dll.rel + hash: b834eb5f8a2749f3be52aa9023cc81403075eba9 + symbols: config/GMPE01_00/rels/m403Dll/symbols.txt + splits: config/GMPE01_00/rels/m403Dll/splits.txt + links: [] +- object: files/dll/m404Dll.rel + hash: c46b7814cefa8e5dee8dfd1883e369877ac78c0c + symbols: config/GMPE01_00/rels/m404Dll/symbols.txt + splits: config/GMPE01_00/rels/m404Dll/splits.txt + links: [] +- object: files/dll/m405Dll.rel + hash: 7857e0822079d0c7bbfec756a7cf4206b754d100 + symbols: config/GMPE01_00/rels/m405Dll/symbols.txt + splits: config/GMPE01_00/rels/m405Dll/splits.txt + links: [] +- object: files/dll/m406Dll.rel + hash: bea398ac8abe018dce80914e6b3d6d7578eb86bb + symbols: config/GMPE01_00/rels/m406Dll/symbols.txt + splits: config/GMPE01_00/rels/m406Dll/splits.txt + links: [] +- object: files/dll/m407dll.rel + hash: 6f63338c417ab62740a40f0968c03c570b440b8a + symbols: config/GMPE01_00/rels/m407dll/symbols.txt + splits: config/GMPE01_00/rels/m407dll/splits.txt + links: [] +- object: files/dll/m408Dll.rel + hash: 7a8ff34b4bcaff39037c9e2f717505cbc63d4230 + symbols: config/GMPE01_00/rels/m408Dll/symbols.txt + splits: config/GMPE01_00/rels/m408Dll/splits.txt + links: [] +- object: files/dll/m409Dll.rel + hash: 984f031fc50121369d5b04d1ec2c54322efdf281 + symbols: config/GMPE01_00/rels/m409Dll/symbols.txt + splits: config/GMPE01_00/rels/m409Dll/splits.txt + links: [] +- object: files/dll/m410Dll.rel + hash: 94e308e409038f7919177d190110ce589cc8a8e8 + symbols: config/GMPE01_00/rels/m410Dll/symbols.txt + splits: config/GMPE01_00/rels/m410Dll/splits.txt + links: [] +- object: files/dll/m411Dll.rel + hash: 26ac81a3db9f3850bb43b23cdb7168dcddccaeea + symbols: config/GMPE01_00/rels/m411Dll/symbols.txt + splits: config/GMPE01_00/rels/m411Dll/splits.txt + links: [] +- object: files/dll/m412Dll.rel + hash: 3ebb173a52aaea75acb414f73264e72a2943c6f8 + symbols: config/GMPE01_00/rels/m412Dll/symbols.txt + splits: config/GMPE01_00/rels/m412Dll/splits.txt + links: [] +- object: files/dll/m413Dll.rel + hash: e59d4b66b1f57637c335b4745a696e3dbcb4bbe3 + symbols: config/GMPE01_00/rels/m413Dll/symbols.txt + splits: config/GMPE01_00/rels/m413Dll/splits.txt + links: [] +- object: files/dll/m414Dll.rel + hash: f7fe1aa24c7b6b8ca2bb28922696c0392dc7d029 + symbols: config/GMPE01_00/rels/m414Dll/symbols.txt + splits: config/GMPE01_00/rels/m414Dll/splits.txt + links: [] +- object: files/dll/m415Dll.rel + hash: 3c697b54ebdd01971b99af8c812b4850fa181f4f + symbols: config/GMPE01_00/rels/m415Dll/symbols.txt + splits: config/GMPE01_00/rels/m415Dll/splits.txt + links: [] +- object: files/dll/m416Dll.rel + hash: d26526935455b26beb2b9eaed1bfae3f3f458c25 + symbols: config/GMPE01_00/rels/m416Dll/symbols.txt + splits: config/GMPE01_00/rels/m416Dll/splits.txt + links: [] +- object: files/dll/m417Dll.rel + hash: b5c3805ec3cb023299ed09b782b92441085d0054 + symbols: config/GMPE01_00/rels/m417Dll/symbols.txt + splits: config/GMPE01_00/rels/m417Dll/splits.txt + links: [] +- object: files/dll/m418Dll.rel + hash: 0d02610005c46ad4f47ff51f5e154f9b0d16a4f4 + symbols: config/GMPE01_00/rels/m418Dll/symbols.txt + splits: config/GMPE01_00/rels/m418Dll/splits.txt + links: [] +- object: files/dll/m419Dll.rel + hash: bbceb138b8cc43e578179a7892801633892cb03c + symbols: config/GMPE01_00/rels/m419Dll/symbols.txt + splits: config/GMPE01_00/rels/m419Dll/splits.txt + links: [] +- object: files/dll/m420dll.rel + hash: 2ef4ee163bc2aa15f87c8c89afb4f28939f088c8 + symbols: config/GMPE01_00/rels/m420dll/symbols.txt + splits: config/GMPE01_00/rels/m420dll/splits.txt + links: [] +- object: files/dll/m421Dll.rel + hash: 216a99780a3915d7096385bbcddfc979ab3a4025 + symbols: config/GMPE01_00/rels/m421Dll/symbols.txt + splits: config/GMPE01_00/rels/m421Dll/splits.txt + links: [] +- object: files/dll/m422Dll.rel + hash: 9ad72ba6c3ac277e521dca2fc1372a5d31c18930 + symbols: config/GMPE01_00/rels/m422Dll/symbols.txt + splits: config/GMPE01_00/rels/m422Dll/splits.txt + links: [] +- object: files/dll/m423Dll.rel + hash: 377c6a56b3faf8f991ec4fccaf1972cb41910438 + symbols: config/GMPE01_00/rels/m423Dll/symbols.txt + splits: config/GMPE01_00/rels/m423Dll/splits.txt + links: [] +- object: files/dll/m424Dll.rel + hash: 5814f59970268406bd86a86d0fee5a09359ab506 + symbols: config/GMPE01_00/rels/m424Dll/symbols.txt + splits: config/GMPE01_00/rels/m424Dll/splits.txt + links: [] +- object: files/dll/m425Dll.rel + hash: ecaeae453393d228f2769aab9c022820bcdb58f1 + symbols: config/GMPE01_00/rels/m425Dll/symbols.txt + splits: config/GMPE01_00/rels/m425Dll/splits.txt + links: [] +- object: files/dll/m426Dll.rel + hash: c240697a57cc08d34e27e89d8d3455454799e8b1 + symbols: config/GMPE01_00/rels/m426Dll/symbols.txt + splits: config/GMPE01_00/rels/m426Dll/splits.txt + links: [] +- object: files/dll/m427Dll.rel + hash: c78a0857e9c44fb33bd4fdc3e392a15b4dec0431 + symbols: config/GMPE01_00/rels/m427Dll/symbols.txt + splits: config/GMPE01_00/rels/m427Dll/splits.txt + links: [] +- object: files/dll/m428Dll.rel + hash: a1d5672d8ef0aac089dda00287fd68bf2bb67807 + symbols: config/GMPE01_00/rels/m428Dll/symbols.txt + splits: config/GMPE01_00/rels/m428Dll/splits.txt + links: [] +- object: files/dll/m429Dll.rel + hash: d25f198ce04aa5ca7b54ada9de52f722bd751447 + symbols: config/GMPE01_00/rels/m429Dll/symbols.txt + splits: config/GMPE01_00/rels/m429Dll/splits.txt + links: [] +- object: files/dll/m430Dll.rel + hash: 8bef3e2f51db3afa82dcaf64e209067a58c04bf9 + symbols: config/GMPE01_00/rels/m430Dll/symbols.txt + splits: config/GMPE01_00/rels/m430Dll/splits.txt + links: [] +- object: files/dll/m431Dll.rel + hash: 7148ec21ca6e0aa8d213a1dce0aeb9d93a9b496c + symbols: config/GMPE01_00/rels/m431Dll/symbols.txt + splits: config/GMPE01_00/rels/m431Dll/splits.txt + links: [] +- object: files/dll/m432Dll.rel + hash: 096f5a85bb837af68bd491e962eda7726d8d26a0 + symbols: config/GMPE01_00/rels/m432Dll/symbols.txt + splits: config/GMPE01_00/rels/m432Dll/splits.txt + links: [] +- object: files/dll/m433Dll.rel + hash: c36f56264ab9cf74b882c2544cdb9b89f6a098cd + symbols: config/GMPE01_00/rels/m433Dll/symbols.txt + splits: config/GMPE01_00/rels/m433Dll/splits.txt + links: [] +- object: files/dll/m434Dll.rel + hash: 55912c8441002b61701fc8c769f707c69e2740c1 + symbols: config/GMPE01_00/rels/m434Dll/symbols.txt + splits: config/GMPE01_00/rels/m434Dll/splits.txt + links: [] +- object: files/dll/m435Dll.rel + hash: 56f1fc330e8b97fa426fac3d901b1feed946566e + symbols: config/GMPE01_00/rels/m435Dll/symbols.txt + splits: config/GMPE01_00/rels/m435Dll/splits.txt + links: [] +- object: files/dll/m436Dll.rel + hash: e53f3d381bfb99351483e70b9d79c2e8676f73d5 + symbols: config/GMPE01_00/rels/m436Dll/symbols.txt + splits: config/GMPE01_00/rels/m436Dll/splits.txt + links: [] +- object: files/dll/m437Dll.rel + hash: 404698b53acad1231e00d84d0196ddce8d9d9dd9 + symbols: config/GMPE01_00/rels/m437Dll/symbols.txt + splits: config/GMPE01_00/rels/m437Dll/splits.txt + links: [] +- object: files/dll/m438Dll.rel + hash: 9bddf4b81b9a792260000abe2631da493a8b8564 + symbols: config/GMPE01_00/rels/m438Dll/symbols.txt + splits: config/GMPE01_00/rels/m438Dll/splits.txt + links: [] +- object: files/dll/m439Dll.rel + hash: a2a18c9d26dedfa8e2ae003c3a2e1bdcc1cbd4cc + symbols: config/GMPE01_00/rels/m439Dll/symbols.txt + splits: config/GMPE01_00/rels/m439Dll/splits.txt + links: [] +- object: files/dll/m440Dll.rel + hash: 227ca13bcd72059bdd506e9611d9b52f661af6c5 + symbols: config/GMPE01_00/rels/m440Dll/symbols.txt + splits: config/GMPE01_00/rels/m440Dll/splits.txt + links: [] +- object: files/dll/m441Dll.rel + hash: d6cbf72115374e06ffea3f15001977c288a9c3fb + symbols: config/GMPE01_00/rels/m441Dll/symbols.txt + splits: config/GMPE01_00/rels/m441Dll/splits.txt + links: [] +- object: files/dll/m442Dll.rel + hash: 347fcb836b5266dfe3d1088e1aa796c043b0fe60 + symbols: config/GMPE01_00/rels/m442Dll/symbols.txt + splits: config/GMPE01_00/rels/m442Dll/splits.txt + links: [] +- object: files/dll/m443Dll.rel + hash: 77444c6739a4d9390f30ba56c5fcd82ee4efc0c2 + symbols: config/GMPE01_00/rels/m443Dll/symbols.txt + splits: config/GMPE01_00/rels/m443Dll/splits.txt + links: [] +- object: files/dll/m444dll.rel + hash: 897d8ebd200020bc5bb9d949f869b3a2331077c7 + symbols: config/GMPE01_01/rels/m444dll/symbols.txt + splits: config/GMPE01_01/rels/m444dll/splits.txt + links: [] +- object: files/dll/m445Dll.rel + hash: d4d9f2aad53aa7f4e1c313438a0e3767f8e58eb9 + symbols: config/GMPE01_00/rels/m445Dll/symbols.txt + splits: config/GMPE01_00/rels/m445Dll/splits.txt + links: [] +- object: files/dll/m446dll.rel + hash: 4b16e5eff613eaf4cc98411809cd1f1578e33fd1 + symbols: config/GMPE01_00/rels/m446dll/symbols.txt + splits: config/GMPE01_00/rels/m446dll/splits.txt + links: [] +- object: files/dll/m447dll.rel + hash: 775ca8f8b3be867ad67f91bc3b6ebcc8c3068d2b + symbols: config/GMPE01_00/rels/m447dll/symbols.txt + splits: config/GMPE01_00/rels/m447dll/splits.txt + links: [] +- object: files/dll/m448Dll.rel + hash: e6f7586dadbe3f5b5045c0bdf2fe618d42ef3a44 + symbols: config/GMPE01_00/rels/m448Dll/symbols.txt + splits: config/GMPE01_00/rels/m448Dll/splits.txt + links: [] +- object: files/dll/m449Dll.rel + hash: e797c2ff132ab35e768be62cb62219592464ca9d + symbols: config/GMPE01_00/rels/m449Dll/symbols.txt + splits: config/GMPE01_00/rels/m449Dll/splits.txt + links: [] +- object: files/dll/m450Dll.rel + hash: f2ea7da07cf8be4f449c97b829d3231911e158a0 + symbols: config/GMPE01_00/rels/m450Dll/symbols.txt + splits: config/GMPE01_00/rels/m450Dll/splits.txt + links: [] +- object: files/dll/m451Dll.rel + hash: 3f82fd24071582b6494a9f99750c0bc3c10d502e + symbols: config/GMPE01_00/rels/m451Dll/symbols.txt + splits: config/GMPE01_00/rels/m451Dll/splits.txt + links: [] +- object: files/dll/m453Dll.rel + hash: 49ef28c2862000fae4d8efd8fec0ff9b41f24461 + symbols: config/GMPE01_00/rels/m453Dll/symbols.txt + splits: config/GMPE01_00/rels/m453Dll/splits.txt + links: [] +- object: files/dll/m455Dll.rel + hash: e0b21cfbe592955c84662ff50d8a33e147403906 + symbols: config/GMPE01_00/rels/m455Dll/symbols.txt + splits: config/GMPE01_00/rels/m455Dll/splits.txt + links: [] +- object: files/dll/m456Dll.rel + hash: 97d5701b151c6ad8cf8cea6e776973daa95eea34 + symbols: config/GMPE01_00/rels/m456Dll/symbols.txt + splits: config/GMPE01_00/rels/m456Dll/splits.txt + links: [] +- object: files/dll/m457Dll.rel + hash: d4a411f9ef850f52506afd1ad1de88d2d8de361b + symbols: config/GMPE01_00/rels/m457Dll/symbols.txt + splits: config/GMPE01_00/rels/m457Dll/splits.txt + links: [] +- object: files/dll/m458Dll.rel + hash: 7ac361c5a04f83d46f516a13a43e43b59b929435 + symbols: config/GMPE01_00/rels/m458Dll/symbols.txt + splits: config/GMPE01_00/rels/m458Dll/splits.txt + links: [] +- object: files/dll/m459dll.rel + hash: 1aafc4f38ddfee64ea8f7dda7cbd7113e86997ba + symbols: config/GMPE01_00/rels/m459dll/symbols.txt + splits: config/GMPE01_00/rels/m459dll/splits.txt + links: [] +- object: files/dll/m460Dll.rel + hash: 5d28f1a87edee5216b9bb28d9cbff2b22d617747 + symbols: config/GMPE01_00/rels/m460Dll/symbols.txt + splits: config/GMPE01_00/rels/m460Dll/splits.txt + links: [] +- object: files/dll/m461Dll.rel + hash: ab058151bd25600f05f8b6fedbec1c7448175123 + symbols: config/GMPE01_00/rels/m461Dll/symbols.txt + splits: config/GMPE01_00/rels/m461Dll/splits.txt + links: [] +- object: files/dll/m462Dll.rel + hash: 78d6ab00677791ece684a0c149d1ae72efc52d1c + symbols: config/GMPE01_00/rels/m462Dll/symbols.txt + splits: config/GMPE01_00/rels/m462Dll/splits.txt + links: [] +- object: files/dll/m463Dll.rel + hash: 32010595b4fd0b75293fc46b9026c5613d0ea4c2 + symbols: config/GMPE01_00/rels/m463Dll/symbols.txt + splits: config/GMPE01_00/rels/m463Dll/splits.txt + links: [] +- object: files/dll/mentDll.rel + hash: 9e63dd96943ffd2747be5aad924b95892d46051a + symbols: config/GMPE01_00/rels/mentDll/symbols.txt + splits: config/GMPE01_00/rels/mentDll/splits.txt + links: [] +- object: files/dll/messDll.rel + hash: 7e119de456b3557dcf514c70bd7ab81dc5f9cf54 + symbols: config/GMPE01_00/rels/messDll/symbols.txt + splits: config/GMPE01_00/rels/messDll/splits.txt + links: [] +- object: files/dll/mgmodedll.rel + hash: 376c78e2d1b7d7a429959c532e9cb92c98f73b7e + symbols: config/GMPE01_00/rels/mgmodedll/symbols.txt + splits: config/GMPE01_00/rels/mgmodedll/splits.txt + links: [] +- object: files/dll/modeltestDll.rel + hash: 8de28c0f254a2c574c4da9b6a3a17e5ad7ffe1f9 + symbols: config/GMPE01_00/rels/modeltestDll/symbols.txt + splits: config/GMPE01_00/rels/modeltestDll/splits.txt + links: [] +- object: files/dll/modeseldll.rel + hash: bdf8cd57fa23f07c429393817037ade04e2c6024 + symbols: config/GMPE01_00/rels/modeseldll/symbols.txt + splits: config/GMPE01_00/rels/modeseldll/splits.txt + links: [] +- object: files/dll/mpexDll.rel + hash: 4524e63b63510b42bca907f72e67affddec856f9 + symbols: config/GMPE01_00/rels/mpexDll/symbols.txt + splits: config/GMPE01_00/rels/mpexDll/splits.txt + links: [] +- object: files/dll/msetupDll.rel + hash: 86ff8288bb92472376d02cade1d3c9603b613c57 + symbols: config/GMPE01_00/rels/msetupDll/symbols.txt + splits: config/GMPE01_00/rels/msetupDll/splits.txt + links: [] +- object: files/dll/mstory2Dll.rel + hash: 3395fac055bd155c682642bab7d09f428e48bed9 + symbols: config/GMPE01_01/rels/mstory2Dll/symbols.txt + splits: config/GMPE01_01/rels/mstory2Dll/splits.txt + links: [] +- object: files/dll/mstory3Dll.rel + hash: 9d67ee54dd30be83331e303d2bcf12ff2b2fa136 + symbols: config/GMPE01_01/rels/mstory3Dll/symbols.txt + splits: config/GMPE01_01/rels/mstory3Dll/splits.txt + links: [] +- object: files/dll/mstory4Dll.rel + hash: 7f9cc4a18a137f861b2c326b099c02ba4e5bd94b + symbols: config/GMPE01_00/rels/mstory4Dll/symbols.txt + splits: config/GMPE01_00/rels/mstory4Dll/splits.txt + links: [] +- object: files/dll/mstoryDll.rel + hash: b1591a5f829e0c577912fc703a7d280306ff4f77 + symbols: config/GMPE01_01/rels/mstoryDll/symbols.txt + splits: config/GMPE01_01/rels/mstoryDll/splits.txt + links: [] +- object: files/dll/nisDll.rel + hash: d74a5147245a1877b140ee2af7f75b2b6c90892d + symbols: config/GMPE01_00/rels/nisDll/symbols.txt + splits: config/GMPE01_00/rels/nisDll/splits.txt + links: [] +- object: files/dll/option.rel + hash: 5c6973fe7e0271885a5a87d87d4e7164ef711abb + symbols: config/GMPE01_00/rels/option/symbols.txt + splits: config/GMPE01_00/rels/option/splits.txt + links: [] +- object: files/dll/present.rel + hash: ddb8d8a825578a588276b9d4f65eceee26f91253 + symbols: config/GMPE01_00/rels/present/symbols.txt + splits: config/GMPE01_00/rels/present/splits.txt + links: [] +- object: files/dll/resultDll.rel + hash: 41a820438884ae8566f34f895198a186aae60305 + symbols: config/GMPE01_00/rels/resultDll/symbols.txt + splits: config/GMPE01_00/rels/resultDll/splits.txt + links: [] +- object: files/dll/safDll.rel + hash: f34c104078b41971412cb09b37c4dc9526be02e3 + symbols: config/GMPE01_00/rels/safDll/symbols.txt + splits: config/GMPE01_00/rels/safDll/splits.txt + links: [] +- object: files/dll/selmenuDll.rel + hash: 81a00a71b8d1ab22bfd3df10d815c87ba618ec84 + symbols: config/GMPE01_00/rels/selmenuDll/symbols.txt + splits: config/GMPE01_00/rels/selmenuDll/splits.txt + links: [] +- object: files/dll/staffDll.rel + hash: a6210fbcdf3d7f0063f3052e2ae525abacac08e7 + symbols: config/GMPE01_00/rels/staffDll/symbols.txt + splits: config/GMPE01_00/rels/staffDll/splits.txt + links: [] +- object: files/dll/subchrselDll.rel + hash: 7488bc249dc7c656f60105e4d24c4011983c2ba2 + symbols: config/GMPE01_00/rels/subchrselDll/symbols.txt + splits: config/GMPE01_00/rels/subchrselDll/splits.txt + links: [] +- object: files/dll/w01Dll.rel + hash: d3de36269886995d959e1fd58d8ad806843c8819 + symbols: config/GMPE01_00/rels/w01Dll/symbols.txt + splits: config/GMPE01_00/rels/w01Dll/splits.txt + links: [] +- object: files/dll/w02Dll.rel + hash: 750c4d6cd6a49d290f5cc63432d4f65642fbd7e4 + symbols: config/GMPE01_00/rels/w02Dll/symbols.txt + splits: config/GMPE01_00/rels/w02Dll/splits.txt + links: [] +- object: files/dll/w03Dll.rel + hash: f9e8d9c4581d44488adaffa3d46d9bc835d4f9bd + symbols: config/GMPE01_00/rels/w03Dll/symbols.txt + splits: config/GMPE01_00/rels/w03Dll/splits.txt + links: [] +- object: files/dll/w04Dll.rel + hash: 821126eeb7054150744b925cc4cb06c751ddcefd + symbols: config/GMPE01_00/rels/w04Dll/symbols.txt + splits: config/GMPE01_00/rels/w04Dll/splits.txt + links: [] +- object: files/dll/w05Dll.rel + hash: d29f7ccadcba23c8446d05101c4efa5caba26dfd + symbols: config/GMPE01_00/rels/w05Dll/symbols.txt + splits: config/GMPE01_00/rels/w05Dll/splits.txt + links: [] +- object: files/dll/w06Dll.rel + hash: d11a7a6d44189ba8d1e3a7168ea640ea9f2152fe + symbols: config/GMPE01_00/rels/w06Dll/symbols.txt + splits: config/GMPE01_00/rels/w06Dll/splits.txt + links: [] +- object: files/dll/w10Dll.rel + hash: 54bb23228b04c5aaa6aa7c8ca1f846baec5a1f2c + symbols: config/GMPE01_00/rels/w10Dll/symbols.txt + splits: config/GMPE01_00/rels/w10Dll/splits.txt + links: [] +- object: files/dll/w20Dll.rel + hash: 98cc41456afa9e1ccbb8e03718b8d3cb64e4e86f + symbols: config/GMPE01_00/rels/w20Dll/symbols.txt + splits: config/GMPE01_00/rels/w20Dll/splits.txt + links: [] +- object: files/dll/w21Dll.rel + hash: b888f2c6703e680699ff8c59ad9200b9d78d30a1 + symbols: config/GMPE01_00/rels/w21Dll/symbols.txt + splits: config/GMPE01_00/rels/w21Dll/splits.txt + links: [] +- object: files/dll/ztardll.rel + hash: 87d9fee70ed4f011e0b30e05156d087204cf686f + symbols: config/GMPE01_00/rels/ztardll/symbols.txt + splits: config/GMPE01_00/rels/ztardll/splits.txt + links: [] +- object: files/dll/E3setupDLL.rel + hash: 234e07cee1491c7060e30805681bf5f39150122d + symbols: config/GMPE01_00/rels/E3setupDLL/symbols.txt + splits: config/GMPE01_00/rels/E3setupDLL/splits.txt + links: [_minigameDll] +- object: files/dll/m300Dll.rel + hash: eba8a17e8b263bc9cd601b1aea7e698a8785416a + symbols: config/GMPE01_00/rels/m300Dll/symbols.txt + splits: config/GMPE01_00/rels/m300Dll/splits.txt + links: [_minigameDll] +- object: files/dll/m401Dll.rel + hash: f3ec526c25986a3fcf7dfbc8c463626839a3a801 + symbols: config/GMPE01_00/rels/m401Dll/symbols.txt + splits: config/GMPE01_00/rels/m401Dll/splits.txt + links: [_minigameDll] + +extract: +- symbol: ank8x8_4b + binary: ank8x8_4b.bin + header: ank8x8_4b.inc +- symbol: refMapData0 + binary: refMapData0.anm + header: refMapData0.inc +- symbol: refMapData1 + binary: refMapData1.anm + header: refMapData1.inc +- symbol: refMapData2 + binary: refMapData2.anm + header: refMapData2.inc +- symbol: refMapData3 + binary: refMapData3.anm + header: refMapData3.inc +- symbol: refMapData4 + binary: refMapData4.anm + header: refMapData4.inc +- symbol: toonMapData + binary: toonMapData.anm + header: toonMapData.inc +- symbol: toonMapData2 + binary: toonMapData2.anm + header: toonMapData2.inc +- symbol: hiliteData + binary: hiliteData.anm + header: hiliteData.inc +- symbol: hiliteData2 + binary: hiliteData2.anm + header: hiliteData2.inc +- symbol: hiliteData3 + binary: hiliteData3.anm + header: hiliteData3.inc +- symbol: hiliteData4 + binary: hiliteData4.anm + header: hiliteData4.inc +- symbol: Ascii8x8_1bpp + binary: Ascii8x8_1bpp.bin + header: Ascii8x8_1bpp.inc +- symbol: coveropen_en + binary: coveropen_en.bin + header: coveropen_en.inc +- symbol: fatalerror_en + binary: fatalerror_en.bin + header: fatalerror_en.inc +- symbol: loading_en + binary: loading_en.bin + header: loading_en.inc +- symbol: nodisc_en + binary: nodisc_en.bin + header: nodisc_en.inc +- symbol: retryerror_en + binary: retryerror_en.bin + header: retryerror_en.inc +- symbol: wrongdisc_en + binary: wrongdisc_en.bin + header: wrongdisc_en.inc +- symbol: DEMOFontBitmap + binary: DEMOFontBitmap.bin + header: DEMOFontBitmap.inc diff --git a/config/GMPE01_01/rels/m444dll/splits.txt b/config/GMPE01_01/rels/m444dll/splits.txt new file mode 100644 index 00000000..08b0966c --- /dev/null +++ b/config/GMPE01_01/rels/m444dll/splits.txt @@ -0,0 +1,32 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m444dll/main.c: + .text start:0x000000A0 end:0x00008424 + .rodata start:0x00000000 end:0x00000278 + .data start:0x00000000 end:0x00000258 + .bss start:0x00000000 end:0x00000310 + +REL/m444dll/pinball.c: + .text start:0x00008424 end:0x0000D664 + .rodata start:0x00000278 end:0x00000430 + .data start:0x00000258 end:0x00000470 + .bss start:0x00000310 end:0x00019908 + +REL/m444dll/datalist.c: + .text start:0x0000D664 end:0x0000DAA4 + .rodata start:0x00000430 end:0x00000440 + .data start:0x00000470 end:0x000016EC + .bss start:0x00019908 end:0x00019A76 + +REL/m444dll/shadow.c: + .text start:0x0000DAA4 end:0x0000DEFC + .rodata start:0x00000440 end:0x0000047C diff --git a/config/GMPE01_01/rels/m444dll/symbols.txt b/config/GMPE01_01/rels/m444dll/symbols.txt new file mode 100644 index 00000000..cdfb7397 --- /dev/null +++ b/config/GMPE01_01/rels/m444dll/symbols.txt @@ -0,0 +1,325 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +ObjectSetup = .text:0x000000A0; // type:function size:0x3D0 +fn_1_470 = .text:0x00000470; // type:function size:0x370C +fn_1_3B7C = .text:0x00003B7C; // type:function size:0x1270 +fn_1_4DEC = .text:0x00004DEC; // type:function size:0x7C4 +fn_1_55B0 = .text:0x000055B0; // type:function size:0x1C4 +fn_1_5774 = .text:0x00005774; // type:function size:0x6F4 +fn_1_5E68 = .text:0x00005E68; // type:function size:0x6F4 +fn_1_655C = .text:0x0000655C; // type:function size:0x824 +fn_1_6D80 = .text:0x00006D80; // type:function size:0xBC +fn_1_6E3C = .text:0x00006E3C; // type:function size:0xA0 +fn_1_6EDC = .text:0x00006EDC; // type:function size:0x3B4 +fn_1_7290 = .text:0x00007290; // type:function size:0xC2C +fn_1_7EBC = .text:0x00007EBC; // type:function size:0x2C4 +fn_1_8180 = .text:0x00008180; // type:function size:0x90 +fn_1_8210 = .text:0x00008210; // type:function size:0xEC +fn_1_82FC = .text:0x000082FC; // type:function size:0x128 +fn_1_8424 = .text:0x00008424; // type:function size:0x1F8 +fn_1_861C = .text:0x0000861C; // type:function size:0x7B4 +fn_1_8DD0 = .text:0x00008DD0; // type:function size:0x648 +fn_1_9418 = .text:0x00009418; // type:function size:0x894 +fn_1_9CAC = .text:0x00009CAC; // type:function size:0x3B4 +fn_1_A060 = .text:0x0000A060; // type:function size:0xB70 +fn_1_ABD0 = .text:0x0000ABD0; // type:function size:0x618 +fn_1_B1E8 = .text:0x0000B1E8; // type:function size:0x1108 +fn_1_C214 = .text:0x0000C2F0; // type:function size:0x528 +fn_1_C73C = .text:0x0000C818; // type:function size:0x2F4 +fn_1_CA30 = .text:0x0000CB0C; // type:function size:0x140 +fn_1_CB70 = .text:0x0000CC4C; // type:function size:0x298 +fn_1_CE08 = .text:0x0000CEE4; // type:function size:0x194 +fn_1_CF9C = .text:0x0000D078; // type:function size:0x244 +fn_1_D1E0 = .text:0x0000D2BC; // type:function size:0x3A8 +fn_1_D588 = .text:0x0000D664; // type:function size:0x290 +fn_1_D818 = .text:0x0000D8F4; // type:function size:0x138 +fn_1_D950 = .text:0x0000DA2C; // type:function size:0x78 +fn_1_D9C8 = .text:0x0000DAA4; // type:function size:0x2C +fn_1_D9F4 = .text:0x0000DAD0; // type:function size:0x42C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 scope:local data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 scope:local data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x118 data:float +lbl_1_data_118 = .data:0x00000118; // type:object size:0x28 +lbl_1_data_140 = .data:0x00000140; // type:object size:0xC data:float +lbl_1_data_14C = .data:0x0000014C; // type:object size:0x3C data:float +lbl_1_data_188 = .data:0x00000188; // type:object size:0xA data:2byte +lbl_1_data_194 = .data:0x00000194; // type:object size:0x20 +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 scope:local data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0xA scope:local data:string +lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0xA scope:local data:string +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xA scope:local data:string +lbl_1_data_1F6 = .data:0x000001F6; // type:object size:0xD scope:local data:string +lbl_1_data_203 = .data:0x00000203; // type:object size:0xD scope:local data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0xD scope:local data:string +lbl_1_data_21D = .data:0x0000021D; // type:object size:0xD scope:local data:string +lbl_1_data_22A = .data:0x0000022A; // type:object size:0xB scope:local data:string +lbl_1_data_235 = .data:0x00000235; // type:object size:0xB scope:local data:string +lbl_1_data_240 = .data:0x00000240; // type:object size:0x4 +lbl_1_data_244 = .data:0x00000244; // type:object size:0xA scope:local data:string +lbl_1_data_24E = .data:0x0000024E; // type:object size:0x4 scope:local data:string +lbl_1_data_258 = .data:0x00000258; // type:object size:0xC +lbl_1_data_264 = .data:0x00000264; // type:object size:0x3C +lbl_1_data_2A0 = .data:0x000002A0; // type:object size:0x28 +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0xA +lbl_1_data_2D2 = .data:0x000002D2; // type:object size:0xD scope:local data:string +lbl_1_data_2DF = .data:0x000002DF; // type:object size:0xD scope:local data:string +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xD scope:local data:string +lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0xD scope:local data:string +lbl_1_data_306 = .data:0x00000306; // type:object size:0xD scope:local data:string +lbl_1_data_313 = .data:0x00000313; // type:object size:0xD scope:local data:string +lbl_1_data_320 = .data:0x00000320; // type:object size:0xD scope:local data:string +lbl_1_data_32D = .data:0x0000032D; // type:object size:0xD scope:local data:string +lbl_1_data_33A = .data:0x0000033A; // type:object size:0xD scope:local data:string +lbl_1_data_347 = .data:0x00000347; // type:object size:0xD scope:local data:string +lbl_1_data_354 = .data:0x00000354; // type:object size:0xD scope:local data:string +lbl_1_data_361 = .data:0x00000361; // type:object size:0xD scope:local data:string +lbl_1_data_36E = .data:0x0000036E; // type:object size:0xD scope:local data:string +lbl_1_data_37B = .data:0x0000037B; // type:object size:0xD scope:local data:string +jumptable_1_data_388 = .data:0x00000388; // type:object size:0x1C scope:local +lbl_1_data_3A4 = .data:0x000003A4; // type:object size:0x6 data:2byte +lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x30 data:float +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x24 data:float +lbl_1_data_400 = .data:0x00000400; // type:object size:0x54 data:float +lbl_1_data_454 = .data:0x00000454; // type:object size:0xC +lbl_1_data_460 = .data:0x00000460; // type:object size:0x10 scope:local data:string +lbl_1_data_470 = .data:0x00000470; // type:object size:0x127C +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x140 data:2byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x140 data:2byte +lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x8 data:float +lbl_1_bss_290 = .bss:0x00000290; // type:object size:0x18 data:4byte +lbl_1_bss_2A8 = .bss:0x000002A8; // type:object size:0x18 data:float +lbl_1_bss_2C0 = .bss:0x000002C0; // type:object size:0x10 data:2byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x2 data:2byte +lbl_1_bss_2D2 = .bss:0x000002D2; // type:object size:0x2 data:2byte +lbl_1_bss_2D4 = .bss:0x000002D4; // type:object size:0x2 data:2byte +lbl_1_bss_2D6 = .bss:0x000002D6; // type:object size:0x2 data:2byte +lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0x2 data:2byte +lbl_1_bss_2DA = .bss:0x000002DA; // type:object size:0x2 data:2byte +lbl_1_bss_2DC = .bss:0x000002DC; // type:object size:0x2 data:2byte +lbl_1_bss_2E0 = .bss:0x000002E0; // type:object size:0x4 data:float +lbl_1_bss_2E4 = .bss:0x000002E4; // type:object size:0xC data:float +lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0xC data:4byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0x4 data:4byte +lbl_1_bss_300 = .bss:0x00000300; // type:object size:0x8 data:4byte +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0x4 data:4byte +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0x4 data:4byte +lbl_1_bss_310 = .bss:0x00000310; // type:object size:0x1 data:byte +lbl_1_bss_312 = .bss:0x00000312; // type:object size:0x2 data:2byte +lbl_1_bss_314 = .bss:0x00000314; // type:object size:0xC data:float +lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x8 data:2byte +lbl_1_bss_328 = .bss:0x00000328; // type:object size:0x24 data:float +lbl_1_bss_34C = .bss:0x0000034C; // type:object size:0x24 data:float +lbl_1_bss_370 = .bss:0x00000370; // type:object size:0x400 +lbl_1_bss_770 = .bss:0x00000770; // type:object size:0xC data:float +lbl_1_bss_77C = .bss:0x0000077C; // type:object size:0xC data:float +lbl_1_bss_788 = .bss:0x00000788; // type:object size:0xC +lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x90 +lbl_1_bss_824 = .bss:0x00000824; // type:object size:0x3C +lbl_1_bss_860 = .bss:0x00000860; // type:object size:0x24 +lbl_1_bss_884 = .bss:0x00000884; // type:object size:0x1000 +lbl_1_bss_1884 = .bss:0x00001884; // type:object size:0x2 data:2byte +lbl_1_bss_1888 = .bss:0x00001888; // type:object size:0xC data:float +lbl_1_bss_1894 = .bss:0x00001894; // type:object size:0xC data:float +lbl_1_bss_18A0 = .bss:0x000018A0; // type:object size:0x14 +lbl_1_bss_18B4 = .bss:0x000018B4; // type:object size:0x3C +lbl_1_bss_18F0 = .bss:0x000018F0; // type:object size:0xC000 +lbl_1_bss_D8F0 = .bss:0x0000D8F0; // type:object size:0xC000 +lbl_1_bss_198F0 = .bss:0x000198F0; // type:object size:0x14 +lbl_1_bss_19908 = .bss:0x00019908; // type:object size:0x2 +lbl_1_bss_1990A = .bss:0x0001990A; // type:object size:0x4 data:2byte +lbl_1_bss_1990E = .bss:0x0001990E; // type:object size:0xB4 data:2byte +lbl_1_bss_199C2 = .bss:0x000199C2; // type:object size:0xB4 data:2byte diff --git a/config/GMPE01_01/rels/mstory2Dll/splits.txt b/config/GMPE01_01/rels/mstory2Dll/splits.txt new file mode 100644 index 00000000..3e202379 --- /dev/null +++ b/config/GMPE01_01/rels/mstory2Dll/splits.txt @@ -0,0 +1,54 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/mstory2Dll/main.c: + .text start:0x00000000 end:0x00007DB0 + .rodata start:0x00000000 end:0x00000118 + .data start:0x00000000 end:0x000003A0 + .bss start:0x00000000 end:0x00000078 + +REL/mstory2Dll/board_entrance.c: + .text start:0x00007DB0 end:0x0000B37C + .rodata start:0x00000118 end:0x000001A8 + .data start:0x000003A0 end:0x00000520 + .bss start:0x00000078 end:0x00000298 + +REL/mstory2Dll/board_clear.c: + .text start:0x0000B37C end:0x0000E570 + .rodata start:0x000001A8 end:0x00000248 + .data start:0x00000520 end:0x00000698 + .bss start:0x00000298 end:0x000004E0 + +REL/mstory2Dll/board_miss.c: + .text start:0x0000E570 end:0x000123C8 + .rodata start:0x00000248 end:0x00000310 + .data start:0x00000698 end:0x00000D50 + .bss start:0x000004E0 end:0x00000790 + +REL/mstory2Dll/mg_clear.c: + .text start:0x000123C8 end:0x00016060 + .rodata start:0x00000310 end:0x000003D0 + .data start:0x00000D50 end:0x00000DB8 + .bss start:0x00000790 end:0x00000968 + +REL/mstory2Dll/mg_miss.c: + .text start:0x00016060 end:0x000186D0 + .rodata start:0x000003D0 end:0x00000440 + .data start:0x00000DB8 end:0x00000EF8 + .bss start:0x00000968 end:0x00000B38 + +REL/mstory2Dll/ending.c: + .text start:0x000186D0 end:0x0001B560 + .rodata start:0x00000440 end:0x000004B8 + .data start:0x00000EF8 end:0x00001113 + .bss start:0x00000B38 end:0x00000D10 + +REL/mstory2Dll/save.c: + .text start:0x0001B560 end:0x0001B974 + .rodata start:0x000004B8 end:0x000004C8 + .bss start:0x00000D10 end:0x00000D18 diff --git a/config/GMPE01_01/rels/mstory2Dll/symbols.txt b/config/GMPE01_01/rels/mstory2Dll/symbols.txt new file mode 100644 index 00000000..fb773409 --- /dev/null +++ b/config/GMPE01_01/rels/mstory2Dll/symbols.txt @@ -0,0 +1,713 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x2A0 +_prolog = .text:0x00000344; // type:function size:0x54 scope:global +_epilog = .text:0x00000398; // type:function size:0x4C scope:global +fn_1_3E4 = .text:0x000003E4; // type:function size:0x110 +fn_1_4F4 = .text:0x000004F4; // type:function size:0x1B8 +fn_1_6AC = .text:0x000006AC; // type:function size:0x1B8 +fn_1_864 = .text:0x00000864; // type:function size:0x28 +fn_1_88C = .text:0x0000088C; // type:function size:0x20 +fn_1_8AC = .text:0x000008AC; // type:function size:0xD8 +fn_1_984 = .text:0x00000984; // type:function size:0xC8 +fn_1_A4C = .text:0x00000A4C; // type:function size:0xBC +fn_1_B08 = .text:0x00000B08; // type:function size:0xBC +fn_1_BC4 = .text:0x00000BC4; // type:function size:0x4 +fn_1_BC8 = .text:0x00000BC8; // type:function size:0x20 +fn_1_BE8 = .text:0x00000BE8; // type:function size:0x28 +fn_1_C10 = .text:0x00000C10; // type:function size:0x20 +fn_1_C30 = .text:0x00000C30; // type:function size:0x24 +fn_1_C54 = .text:0x00000C54; // type:function size:0x4 +fn_1_C58 = .text:0x00000C58; // type:function size:0xA48 +fn_1_16A0 = .text:0x000016A0; // type:function size:0x1BC +fn_1_185C = .text:0x0000185C; // type:function size:0x1D8 +fn_1_1A34 = .text:0x00001A34; // type:function size:0x60 +fn_1_1A94 = .text:0x00001A94; // type:function size:0x68 +fn_1_1AFC = .text:0x00001AFC; // type:function size:0xAC +fn_1_1BA8 = .text:0x00001BA8; // type:function size:0xBC +fn_1_1C64 = .text:0x00001C64; // type:function size:0xB4 +fn_1_1D18 = .text:0x00001D18; // type:function size:0x34 +fn_1_1D4C = .text:0x00001D4C; // type:function size:0x40 +fn_1_1D8C = .text:0x00001D8C; // type:function size:0x70 +fn_1_1DFC = .text:0x00001DFC; // type:function size:0x188 +fn_1_1F84 = .text:0x00001F84; // type:function size:0x2E0 +fn_1_2264 = .text:0x00002264; // type:function size:0x90 +fn_1_22F4 = .text:0x000022F4; // type:function size:0x48 +fn_1_233C = .text:0x0000233C; // type:function size:0x54 +fn_1_2390 = .text:0x00002390; // type:function size:0x3C0 +fn_1_2750 = .text:0x00002750; // type:function size:0x10 +fn_1_2760 = .text:0x00002760; // type:function size:0x10 +fn_1_2770 = .text:0x00002770; // type:function size:0xB8 +fn_1_2828 = .text:0x00002828; // type:function size:0x120 +fn_1_2948 = .text:0x00002948; // type:function size:0x3B8 +fn_1_2D00 = .text:0x00002D00; // type:function size:0x7F4 +fn_1_34F4 = .text:0x000034F4; // type:function size:0x88 +fn_1_357C = .text:0x0000357C; // type:function size:0x94 +fn_1_3610 = .text:0x00003610; // type:function size:0x58 +fn_1_3668 = .text:0x00003668; // type:function size:0xEC +fn_1_3754 = .text:0x00003754; // type:function size:0xC4 +fn_1_3818 = .text:0x00003818; // type:function size:0x3C +fn_1_3854 = .text:0x00003854; // type:function size:0x44 +fn_1_3898 = .text:0x00003898; // type:function size:0x26C +fn_1_3B04 = .text:0x00003B04; // type:function size:0x26C +fn_1_3D70 = .text:0x00003D70; // type:function size:0x27C +fn_1_3FEC = .text:0x00003FEC; // type:function size:0x2B4 +fn_1_42A0 = .text:0x000042A0; // type:function size:0x46C +fn_1_470C = .text:0x0000470C; // type:function size:0x454 +fn_1_4B60 = .text:0x00004B60; // type:function size:0x48C +fn_1_4FEC = .text:0x00004FEC; // type:function size:0x658 +fn_1_5644 = .text:0x00005644; // type:function size:0x4C4 +fn_1_5B08 = .text:0x00005B08; // type:function size:0x4FC +fn_1_6004 = .text:0x00006004; // type:function size:0x6C8 +fn_1_66CC = .text:0x000066CC; // type:function size:0x38 +fn_1_6704 = .text:0x00006704; // type:function size:0xD4 +fn_1_67D8 = .text:0x000067D8; // type:function size:0x198 +fn_1_6970 = .text:0x00006970; // type:function size:0x34 +fn_1_69A4 = .text:0x000069A4; // type:function size:0x40 +fn_1_69E4 = .text:0x000069E4; // type:function size:0xAC +fn_1_6A90 = .text:0x00006A90; // type:function size:0x2E8 +fn_1_6D78 = .text:0x00006D78; // type:function size:0x44 +fn_1_6DBC = .text:0x00006DBC; // type:function size:0x1F4 +fn_1_6FB0 = .text:0x00006FB0; // type:function size:0xB4 +fn_1_7064 = .text:0x00007064; // type:function size:0x178 +fn_1_71DC = .text:0x000071DC; // type:function size:0x68 +fn_1_7244 = .text:0x00007244; // type:function size:0x140 +fn_1_7384 = .text:0x00007384; // type:function size:0xA2C +fn_1_7DB0 = .text:0x00007DB0; // type:function size:0x1A4 +fn_1_7F54 = .text:0x00007F54; // type:function size:0x118 +fn_1_806C = .text:0x0000806C; // type:function size:0x8C +fn_1_80F8 = .text:0x000080F8; // type:function size:0x488 +fn_1_8580 = .text:0x00008580; // type:function size:0x5C +fn_1_85DC = .text:0x000085DC; // type:function size:0x1F8 +fn_1_87D4 = .text:0x000087D4; // type:function size:0x2E8 +fn_1_8ABC = .text:0x00008ABC; // type:function size:0x578 +fn_1_9034 = .text:0x00009034; // type:function size:0x164 +fn_1_9198 = .text:0x00009198; // type:function size:0x124 +fn_1_92BC = .text:0x000092BC; // type:function size:0x4AC +fn_1_9768 = .text:0x00009768; // type:function size:0xB4 +fn_1_981C = .text:0x0000981C; // type:function size:0x138 +fn_1_9954 = .text:0x00009954; // type:function size:0xBC +fn_1_9A10 = .text:0x00009A10; // type:function size:0x1C4 +fn_1_9BD4 = .text:0x00009BD4; // type:function size:0xE4 +fn_1_9CB8 = .text:0x00009CB8; // type:function size:0x214 +fn_1_9ECC = .text:0x00009ECC; // type:function size:0x110 +fn_1_9FDC = .text:0x00009FDC; // type:function size:0x2AC +fn_1_A288 = .text:0x0000A288; // type:function size:0x220 +fn_1_A4A8 = .text:0x0000A4A8; // type:function size:0xE4 +fn_1_A58C = .text:0x0000A58C; // type:function size:0x2BC +fn_1_A848 = .text:0x0000A848; // type:function size:0x2C8 +fn_1_AB10 = .text:0x0000AB10; // type:function size:0x2A0 +fn_1_ADB0 = .text:0x0000ADB0; // type:function size:0xAC +fn_1_AE5C = .text:0x0000AE5C; // type:function size:0x364 +fn_1_B1C0 = .text:0x0000B1C0; // type:function size:0x8C +fn_1_B24C = .text:0x0000B24C; // type:function size:0x130 +fn_1_B37C = .text:0x0000B37C; // type:function size:0x68 +fn_1_B3E4 = .text:0x0000B3E4; // type:function size:0x134 +fn_1_B518 = .text:0x0000B518; // type:function size:0x8C +fn_1_B5A4 = .text:0x0000B5A4; // type:function size:0x3E0 +fn_1_B984 = .text:0x0000B984; // type:function size:0x5C +fn_1_B9E0 = .text:0x0000B9E0; // type:function size:0xB0 +fn_1_BA90 = .text:0x0000BA90; // type:function size:0x360 +fn_1_BDF0 = .text:0x0000BDF0; // type:function size:0x158 +fn_1_BF48 = .text:0x0000BF48; // type:function size:0x328 +fn_1_C270 = .text:0x0000C270; // type:function size:0x250 +fn_1_C4C0 = .text:0x0000C4C0; // type:function size:0xB4 +fn_1_C574 = .text:0x0000C574; // type:function size:0x228 +fn_1_C79C = .text:0x0000C79C; // type:function size:0xBC +fn_1_C858 = .text:0x0000C858; // type:function size:0x2B4 +fn_1_CB0C = .text:0x0000CB0C; // type:function size:0x1C0 +fn_1_CCCC = .text:0x0000CCCC; // type:function size:0xAC +fn_1_CD78 = .text:0x0000CD78; // type:function size:0x2B8 +fn_1_D030 = .text:0x0000D030; // type:function size:0x1F4 +fn_1_D224 = .text:0x0000D224; // type:function size:0xAC +fn_1_D2D0 = .text:0x0000D2D0; // type:function size:0xC4 +fn_1_D394 = .text:0x0000D394; // type:function size:0xE4 +fn_1_D478 = .text:0x0000D478; // type:function size:0x2EC +fn_1_D764 = .text:0x0000D764; // type:function size:0x134 +fn_1_D898 = .text:0x0000D898; // type:function size:0x2C0 +fn_1_DB58 = .text:0x0000DB58; // type:function size:0xFC +fn_1_DC54 = .text:0x0000DC54; // type:function size:0x170 +fn_1_DDC4 = .text:0x0000DDC4; // type:function size:0x3F4 +fn_1_E1B8 = .text:0x0000E1B8; // type:function size:0x8C +fn_1_E244 = .text:0x0000E244; // type:function size:0xF0 +fn_1_E334 = .text:0x0000E334; // type:function size:0x23C +fn_1_E570 = .text:0x0000E570; // type:function size:0xC8 +fn_1_E638 = .text:0x0000E638; // type:function size:0x2B4 +fn_1_E8EC = .text:0x0000E8EC; // type:function size:0x140 +fn_1_EA2C = .text:0x0000EA2C; // type:function size:0x134 +fn_1_EB60 = .text:0x0000EB60; // type:function size:0x8C +fn_1_EBEC = .text:0x0000EBEC; // type:function size:0x3E0 +fn_1_EFCC = .text:0x0000EFCC; // type:function size:0x5C +fn_1_F028 = .text:0x0000F028; // type:function size:0x128 +fn_1_F150 = .text:0x0000F150; // type:function size:0xDC +fn_1_F22C = .text:0x0000F22C; // type:function size:0xD0 +fn_1_F2FC = .text:0x0000F2FC; // type:function size:0xD4 +fn_1_F3D0 = .text:0x0000F3D0; // type:function size:0x468 +fn_1_F838 = .text:0x0000F838; // type:function size:0x4 +fn_1_F83C = .text:0x0000F83C; // type:function size:0x78 +fn_1_F8B4 = .text:0x0000F8B4; // type:function size:0x548 +fn_1_FDFC = .text:0x0000FDFC; // type:function size:0xB4 +fn_1_FEB0 = .text:0x0000FEB0; // type:function size:0x228 +fn_1_100D8 = .text:0x000100D8; // type:function size:0xBC +fn_1_10194 = .text:0x00010194; // type:function size:0x2B4 +fn_1_10448 = .text:0x00010448; // type:function size:0x1BC +fn_1_10604 = .text:0x00010604; // type:function size:0xAC +fn_1_106B0 = .text:0x000106B0; // type:function size:0x29C +fn_1_1094C = .text:0x0001094C; // type:function size:0x2B4 +fn_1_10C00 = .text:0x00010C00; // type:function size:0x1F4 +fn_1_10DF4 = .text:0x00010DF4; // type:function size:0xAC +fn_1_10EA0 = .text:0x00010EA0; // type:function size:0xE4 +fn_1_10F84 = .text:0x00010F84; // type:function size:0xC4 +fn_1_11048 = .text:0x00011048; // type:function size:0xE4 +fn_1_1112C = .text:0x0001112C; // type:function size:0x2EC +fn_1_11418 = .text:0x00011418; // type:function size:0x134 +fn_1_1154C = .text:0x0001154C; // type:function size:0x2EC +fn_1_11838 = .text:0x00011838; // type:function size:0xFC +fn_1_11934 = .text:0x00011934; // type:function size:0x164 +fn_1_11A98 = .text:0x00011A98; // type:function size:0x118 +fn_1_11BB0 = .text:0x00011BB0; // type:function size:0x420 +fn_1_11FD0 = .text:0x00011FD0; // type:function size:0x8C +fn_1_1205C = .text:0x0001205C; // type:function size:0x130 +fn_1_1218C = .text:0x0001218C; // type:function size:0x23C +fn_1_123C8 = .text:0x000123C8; // type:function size:0x1A4 +fn_1_1256C = .text:0x0001256C; // type:function size:0x124 +fn_1_12690 = .text:0x00012690; // type:function size:0x8C +fn_1_1271C = .text:0x0001271C; // type:function size:0x3AC +fn_1_12AC8 = .text:0x00012AC8; // type:function size:0x48 +fn_1_12B10 = .text:0x00012B10; // type:function size:0x2C4 +fn_1_12DD4 = .text:0x00012DD4; // type:function size:0x37C +fn_1_13150 = .text:0x00013150; // type:function size:0x70 +fn_1_131C0 = .text:0x000131C0; // type:function size:0xA4 +fn_1_13264 = .text:0x00013264; // type:function size:0x5C4 +fn_1_13828 = .text:0x00013828; // type:function size:0xA4 +fn_1_138CC = .text:0x000138CC; // type:function size:0x14C +fn_1_13A18 = .text:0x00013A18; // type:function size:0x1A0 +fn_1_13BB8 = .text:0x00013BB8; // type:function size:0xB4 +fn_1_13C6C = .text:0x00013C6C; // type:function size:0x348 +fn_1_13FB4 = .text:0x00013FB4; // type:function size:0xEC +fn_1_140A0 = .text:0x000140A0; // type:function size:0xCC +fn_1_1416C = .text:0x0001416C; // type:function size:0x330 +fn_1_1449C = .text:0x0001449C; // type:function size:0x3CC +fn_1_14868 = .text:0x00014868; // type:function size:0x234 +fn_1_14A9C = .text:0x00014A9C; // type:function size:0xAC +fn_1_14B48 = .text:0x00014B48; // type:function size:0xF8 +fn_1_14C40 = .text:0x00014C40; // type:function size:0x32C +fn_1_14F6C = .text:0x00014F6C; // type:function size:0x1C8 +fn_1_15134 = .text:0x00015134; // type:function size:0xAC +fn_1_151E0 = .text:0x000151E0; // type:function size:0xE4 +fn_1_152C4 = .text:0x000152C4; // type:function size:0xE4 +fn_1_153A8 = .text:0x000153A8; // type:function size:0x2C0 +fn_1_15668 = .text:0x00015668; // type:function size:0xE4 +fn_1_1574C = .text:0x0001574C; // type:function size:0x1F8 +fn_1_15944 = .text:0x00015944; // type:function size:0xAC +fn_1_159F0 = .text:0x000159F0; // type:function size:0x2EC +fn_1_15CDC = .text:0x00015CDC; // type:function size:0x8C +fn_1_15D68 = .text:0x00015D68; // type:function size:0xF0 +fn_1_15E58 = .text:0x00015E58; // type:function size:0x118 +fn_1_15F70 = .text:0x00015F70; // type:function size:0xF0 +fn_1_16060 = .text:0x00016060; // type:function size:0x118 +fn_1_16178 = .text:0x00016178; // type:function size:0x8C +fn_1_16204 = .text:0x00016204; // type:function size:0x3AC +fn_1_165B0 = .text:0x000165B0; // type:function size:0x5C +fn_1_1660C = .text:0x0001660C; // type:function size:0x110 +fn_1_1671C = .text:0x0001671C; // type:function size:0x194 +fn_1_168B0 = .text:0x000168B0; // type:function size:0xD4 +fn_1_16984 = .text:0x00016984; // type:function size:0x50 +fn_1_169D4 = .text:0x000169D4; // type:function size:0x4 +fn_1_169D8 = .text:0x000169D8; // type:function size:0xF4 +fn_1_16ACC = .text:0x00016ACC; // type:function size:0x4F4 +fn_1_16FC0 = .text:0x00016FC0; // type:function size:0xB4 +fn_1_17074 = .text:0x00017074; // type:function size:0x208 +fn_1_1727C = .text:0x0001727C; // type:function size:0xBC +fn_1_17338 = .text:0x00017338; // type:function size:0x294 +fn_1_175CC = .text:0x000175CC; // type:function size:0x180 +fn_1_1774C = .text:0x0001774C; // type:function size:0xAC +fn_1_177F8 = .text:0x000177F8; // type:function size:0x278 +fn_1_17A70 = .text:0x00017A70; // type:function size:0x128 +fn_1_17B98 = .text:0x00017B98; // type:function size:0xAC +fn_1_17C44 = .text:0x00017C44; // type:function size:0x220 +fn_1_17E64 = .text:0x00017E64; // type:function size:0xE4 +fn_1_17F48 = .text:0x00017F48; // type:function size:0x190 +fn_1_180D8 = .text:0x000180D8; // type:function size:0xAC +fn_1_18184 = .text:0x00018184; // type:function size:0x284 +fn_1_18408 = .text:0x00018408; // type:function size:0x8C +fn_1_18494 = .text:0x00018494; // type:function size:0x23C +fn_1_186D0 = .text:0x000186D0; // type:function size:0x220 +fn_1_188F0 = .text:0x000188F0; // type:function size:0x144 +fn_1_18A34 = .text:0x00018A34; // type:function size:0x8C +fn_1_18AC0 = .text:0x00018AC0; // type:function size:0x3BC +fn_1_18E7C = .text:0x00018E7C; // type:function size:0x48 +fn_1_18EC4 = .text:0x00018EC4; // type:function size:0x274 +fn_1_19138 = .text:0x00019138; // type:function size:0x1FC +fn_1_19334 = .text:0x00019334; // type:function size:0x66C +fn_1_199A0 = .text:0x000199A0; // type:function size:0x248 +fn_1_19BE8 = .text:0x00019BE8; // type:function size:0x84 +fn_1_19C6C = .text:0x00019C6C; // type:function size:0x2A8 +fn_1_19F14 = .text:0x00019F14; // type:function size:0xB4 +fn_1_19FC8 = .text:0x00019FC8; // type:function size:0x198 +fn_1_1A160 = .text:0x0001A160; // type:function size:0x208 +fn_1_1A368 = .text:0x0001A368; // type:function size:0x1D0 +fn_1_1A538 = .text:0x0001A538; // type:function size:0x40 +fn_1_1A578 = .text:0x0001A578; // type:function size:0x254 +fn_1_1A7CC = .text:0x0001A7CC; // type:function size:0x204 +fn_1_1A9D0 = .text:0x0001A9D0; // type:function size:0xE4 +fn_1_1AAB4 = .text:0x0001AAB4; // type:function size:0x288 +fn_1_1AD3C = .text:0x0001AD3C; // type:function size:0xE4 +fn_1_1AE20 = .text:0x0001AE20; // type:function size:0x1B4 +fn_1_1AFD4 = .text:0x0001AFD4; // type:function size:0x110 +fn_1_1B0E4 = .text:0x0001B0E4; // type:function size:0x234 +fn_1_1B318 = .text:0x0001B318; // type:function size:0x8C +fn_1_1B3A4 = .text:0x0001B3A4; // type:function size:0x8C +fn_1_1B430 = .text:0x0001B430; // type:function size:0x130 +fn_1_1B560 = .text:0x0001B560; // type:function size:0xEC +fn_1_1B64C = .text:0x0001B64C; // type:function size:0x23C +fn_1_1B870 = .text:0x0001B888; // type:function size:0x9C +fn_1_1B90C = .text:0x0001B924; // type:function size:0x50 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC data:4byte +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC data:4byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 data:byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 data:byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC data:4byte +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 data:byte +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC data:4byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC data:4byte +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 data:byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 data:byte +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC data:4byte +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte +lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 data:string +lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0xF +lbl_1_data_144 = .data:0x00000144; // type:object size:0x18 +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 data:string +jumptable_1_data_19C = .data:0x0000019C; // type:object size:0x54 scope:local +jumptable_1_data_1F0 = .data:0x000001F0; // type:object size:0x54 scope:local +lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A data:string +lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0xE data:string +lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 data:string +lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 data:string +lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 data:string +lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 data:string +lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 +lbl_1_data_308 = .data:0x00000308; // type:object size:0x20 +lbl_1_data_328 = .data:0x00000328; // type:object size:0x60 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 data:string +lbl_1_data_399 = .data:0x00000399; // type:object size:0x2 data:string +lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x2C +lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x10 +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x4 data:4byte +lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x8 data:4byte +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 data:string +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 data:string +lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 data:string +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 data:string +lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA data:string +lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C data:string +lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D data:string +lbl_1_data_50C = .data:0x0000050C; // type:object size:0xF data:string +lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 data:string +lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 data:string +lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 data:string +lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 data:string +lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 data:string +lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 data:string +lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 data:string +lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 data:string +lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA data:string +lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C data:string +lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D data:string +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 data:string +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C data:string +lbl_1_data_668 = .data:0x00000668; // type:object size:0x30 +lbl_1_data_698 = .data:0x00000698; // type:object size:0x1C +lbl_1_data_6B4 = .data:0x000006B4; // type:object size:0x20 +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 data:string +lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 data:string +lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 data:string +lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 data:string +lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 data:string +lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 data:string +lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 data:string +lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 data:string +lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 data:string +lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C data:string +lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D data:string +lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 data:string +lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C +lbl_1_data_81C = .data:0x0000081C; // type:object size:0x30 +lbl_1_data_850 = .data:0x00000850; // type:object size:0x3C0 +lbl_1_data_C10 = .data:0x00000C10; // type:object size:0x10 +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0x4 data:4byte +lbl_1_data_C24 = .data:0x00000C24; // type:object size:0x8 data:4byte +lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 data:string +lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 data:string +lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 data:string +lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 data:string +lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 data:string +lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 data:string +lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 data:string +lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 data:string +lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 data:string +lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 data:string +lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 data:string +lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA data:string +lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C data:string +lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D data:string +lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C data:string +lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 data:string +lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 data:string +lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0x7 data:string +lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 data:string +lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 data:string +lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 data:string +lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 data:string +lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 data:string +lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 data:string +lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 data:string +lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 data:string +lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 data:string +lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 data:string +lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA data:string +lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C data:string +lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D data:string +lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 data:string +lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x1C data:string +lbl_1_data_EF8 = .data:0x00000EF8; // type:object size:0x10 +lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x4 data:4byte +lbl_1_data_F0C = .data:0x00000F0C; // type:object size:0x8 data:4byte +lbl_1_data_F14 = .data:0x00000F14; // type:object size:0x4 data:4byte +lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 data:string +lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 data:string +lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 data:string +lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 data:string +lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 data:string +lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 data:string +lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 data:string +lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 data:string +lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 data:string +lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 data:string +lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 data:string +lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA data:string +lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C data:string +lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D data:string +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 data:string +lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 data:string +lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 data:string +lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 data:string +lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 data:string +lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 data:string +lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 data:string +lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 data:string +lbl_1_data_10E4 = .data:0x000010E4; // type:object size:0x20 +lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x20 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x44 data:float +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0xC data:float +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x10 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x40 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x28 data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x28 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x28 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x28 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x28 data:4byte +lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x104 data:float +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x4 data:4byte +lbl_1_bss_29C = .bss:0x0000029C; // type:object size:0xA0 +lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x28 data:4byte +lbl_1_bss_364 = .bss:0x00000364; // type:object size:0x28 data:4byte +lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x28 data:4byte +lbl_1_bss_3B4 = .bss:0x000003B4; // type:object size:0x28 data:4byte +lbl_1_bss_3DC = .bss:0x000003DC; // type:object size:0x104 data:4byte +lbl_1_bss_4E0 = .bss:0x000004E0; // type:object size:0x4 data:4byte +lbl_1_bss_4E4 = .bss:0x000004E4; // type:object size:0x4 data:4byte +lbl_1_bss_4E8 = .bss:0x000004E8; // type:object size:0x60 data:4byte +lbl_1_bss_548 = .bss:0x00000548; // type:object size:0xA0 +lbl_1_bss_5E8 = .bss:0x000005E8; // type:object size:0x28 data:4byte +lbl_1_bss_610 = .bss:0x00000610; // type:object size:0x28 data:4byte +lbl_1_bss_638 = .bss:0x00000638; // type:object size:0x28 data:4byte +lbl_1_bss_660 = .bss:0x00000660; // type:object size:0x28 data:4byte +lbl_1_bss_688 = .bss:0x00000688; // type:object size:0x104 data:float +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x4 data:4byte +lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x4 data:4byte +lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x28 data:4byte +lbl_1_bss_7C0 = .bss:0x000007C0; // type:object size:0x28 data:4byte +lbl_1_bss_7E8 = .bss:0x000007E8; // type:object size:0x28 data:4byte +lbl_1_bss_810 = .bss:0x00000810; // type:object size:0x28 data:4byte +lbl_1_bss_838 = .bss:0x00000838; // type:object size:0x28 data:4byte +lbl_1_bss_860 = .bss:0x00000860; // type:object size:0x104 data:4byte +lbl_1_bss_968 = .bss:0x00000968; // type:object size:0x4 data:4byte +lbl_1_bss_96C = .bss:0x0000096C; // type:object size:0x28 data:4byte +lbl_1_bss_994 = .bss:0x00000994; // type:object size:0x28 data:4byte +lbl_1_bss_9BC = .bss:0x000009BC; // type:object size:0x28 data:4byte +lbl_1_bss_9E4 = .bss:0x000009E4; // type:object size:0x28 data:4byte +lbl_1_bss_A0C = .bss:0x00000A0C; // type:object size:0x28 data:4byte +lbl_1_bss_A34 = .bss:0x00000A34; // type:object size:0x104 data:4byte +lbl_1_bss_B38 = .bss:0x00000B38; // type:object size:0x4 data:4byte +lbl_1_bss_B3C = .bss:0x00000B3C; // type:object size:0x4 data:4byte +lbl_1_bss_B40 = .bss:0x00000B40; // type:object size:0x4 data:4byte +lbl_1_bss_B44 = .bss:0x00000B44; // type:object size:0x28 data:4byte +lbl_1_bss_B6C = .bss:0x00000B6C; // type:object size:0x28 data:4byte +lbl_1_bss_B94 = .bss:0x00000B94; // type:object size:0x28 data:4byte +lbl_1_bss_BBC = .bss:0x00000BBC; // type:object size:0x28 data:4byte +lbl_1_bss_BE4 = .bss:0x00000BE4; // type:object size:0x28 data:4byte +lbl_1_bss_C0C = .bss:0x00000C0C; // type:object size:0x104 data:float +lbl_1_bss_D10 = .bss:0x00000D10; // type:object size:0x4 data:4byte +lbl_1_bss_D14 = .bss:0x00000D14; // type:object size:0x4 data:4byte diff --git a/config/GMPE01_01/rels/mstory3Dll/splits.txt b/config/GMPE01_01/rels/mstory3Dll/splits.txt new file mode 100644 index 00000000..5251d4d5 --- /dev/null +++ b/config/GMPE01_01/rels/mstory3Dll/splits.txt @@ -0,0 +1,31 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/mstory3Dll/main.c: + .text start:0x00000000 end:0x00006E34 + .rodata start:0x00000000 end:0x00000110 + .data start:0x00000000 end:0x00000130 + .bss start:0x00000000 end:0x00000058 + +REL/mstory3Dll/result_seq.c: + .text start:0x00006E34 end:0x000157F0 + .rodata start:0x00000110 end:0x00000418 + .data start:0x00000130 end:0x000007E0 + .bss start:0x00000058 end:0x000018D0 + +REL/mstory3Dll/result.c: + .text start:0x000157F0 end:0x0001DEF0 + .rodata start:0x00000418 end:0x000005D0 + .data start:0x000007E0 end:0x00000A90 + .bss start:0x000018D0 end:0x00001CE8 + +REL/mstory3Dll/win_effect.c: + .text start:0x0001DEF0 end:0x0001F118 + .rodata start:0x000005D0 end:0x00000644 + .data start:0x00000A90 end:0x00000AAB + .bss start:0x00001CE8 end:0x00001D50 diff --git a/config/GMPE01_01/rels/mstory3Dll/symbols.txt b/config/GMPE01_01/rels/mstory3Dll/symbols.txt new file mode 100644 index 00000000..4f3ee426 --- /dev/null +++ b/config/GMPE01_01/rels/mstory3Dll/symbols.txt @@ -0,0 +1,553 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x2C8 +_prolog = .text:0x0000036C; // type:function size:0x54 scope:global +_epilog = .text:0x000003C0; // type:function size:0x4C scope:global +fn_1_40C = .text:0x0000040C; // type:function size:0xE4 +fn_1_4F0 = .text:0x000004F0; // type:function size:0xE4 +fn_1_5D4 = .text:0x000005D4; // type:function size:0x28 +fn_1_5FC = .text:0x000005FC; // type:function size:0x20 +fn_1_61C = .text:0x0000061C; // type:function size:0xD8 +fn_1_6F4 = .text:0x000006F4; // type:function size:0xC8 +fn_1_7BC = .text:0x000007BC; // type:function size:0xBC +fn_1_878 = .text:0x00000878; // type:function size:0xBC +fn_1_934 = .text:0x00000934; // type:function size:0x4 +fn_1_938 = .text:0x00000938; // type:function size:0x20 +fn_1_958 = .text:0x00000958; // type:function size:0x28 +fn_1_980 = .text:0x00000980; // type:function size:0x20 +fn_1_9A0 = .text:0x000009A0; // type:function size:0x24 +fn_1_9C4 = .text:0x000009C4; // type:function size:0x20 +fn_1_9E4 = .text:0x000009E4; // type:function size:0xA48 +fn_1_142C = .text:0x0000142C; // type:function size:0x1F8 +fn_1_1624 = .text:0x00001624; // type:function size:0x210 +fn_1_1834 = .text:0x00001834; // type:function size:0x1F0 +fn_1_1A24 = .text:0x00001A24; // type:function size:0x2C +fn_1_1A50 = .text:0x00001A50; // type:function size:0x60 +fn_1_1AB0 = .text:0x00001AB0; // type:function size:0x68 +fn_1_1B18 = .text:0x00001B18; // type:function size:0xAC +fn_1_1BC4 = .text:0x00001BC4; // type:function size:0xC4 +fn_1_1C88 = .text:0x00001C88; // type:function size:0xBC +fn_1_1D44 = .text:0x00001D44; // type:function size:0x34 +fn_1_1D78 = .text:0x00001D78; // type:function size:0x40 +fn_1_1DB8 = .text:0x00001DB8; // type:function size:0x70 +fn_1_1E28 = .text:0x00001E28; // type:function size:0x178 +fn_1_1FA0 = .text:0x00001FA0; // type:function size:0x2E0 +fn_1_2280 = .text:0x00002280; // type:function size:0x90 +fn_1_2310 = .text:0x00002310; // type:function size:0xC8 +fn_1_23D8 = .text:0x000023D8; // type:function size:0x48 +fn_1_2420 = .text:0x00002420; // type:function size:0x54 +fn_1_2474 = .text:0x00002474; // type:function size:0x3C0 +fn_1_2834 = .text:0x00002834; // type:function size:0x10 +fn_1_2844 = .text:0x00002844; // type:function size:0x10 +fn_1_2854 = .text:0x00002854; // type:function size:0xB8 +fn_1_290C = .text:0x0000290C; // type:function size:0x120 +fn_1_2A2C = .text:0x00002A2C; // type:function size:0x3A8 +fn_1_2DD4 = .text:0x00002DD4; // type:function size:0x7F4 +fn_1_35C8 = .text:0x000035C8; // type:function size:0x88 +fn_1_3650 = .text:0x00003650; // type:function size:0x94 +fn_1_36E4 = .text:0x000036E4; // type:function size:0x58 +fn_1_373C = .text:0x0000373C; // type:function size:0x8C +fn_1_37C8 = .text:0x000037C8; // type:function size:0xEC +fn_1_38B4 = .text:0x000038B4; // type:function size:0xC4 +fn_1_3978 = .text:0x00003978; // type:function size:0x3C +fn_1_39B4 = .text:0x000039B4; // type:function size:0x44 +fn_1_39F8 = .text:0x000039F8; // type:function size:0x26C +fn_1_3C64 = .text:0x00003C64; // type:function size:0x26C +fn_1_3ED0 = .text:0x00003ED0; // type:function size:0x27C +fn_1_414C = .text:0x0000414C; // type:function size:0x2B4 +fn_1_4400 = .text:0x00004400; // type:function size:0x46C +fn_1_486C = .text:0x0000486C; // type:function size:0x454 +fn_1_4CC0 = .text:0x00004CC0; // type:function size:0x48C +fn_1_514C = .text:0x0000514C; // type:function size:0x658 +fn_1_57A4 = .text:0x000057A4; // type:function size:0x4C4 +fn_1_5C68 = .text:0x00005C68; // type:function size:0x4FC +fn_1_6164 = .text:0x00006164; // type:function size:0x6C8 +fn_1_682C = .text:0x0000682C; // type:function size:0xC4 +fn_1_68F0 = .text:0x000068F0; // type:function size:0x188 +fn_1_6A78 = .text:0x00006A78; // type:function size:0x34 +fn_1_6AAC = .text:0x00006AAC; // type:function size:0x40 +fn_1_6AEC = .text:0x00006AEC; // type:function size:0xAC +fn_1_6B98 = .text:0x00006B98; // type:function size:0x1E8 +fn_1_6D80 = .text:0x00006D80; // type:function size:0xB4 +fn_1_6E34 = .text:0x00006E34; // type:function size:0x1D0 +fn_1_7004 = .text:0x00007004; // type:function size:0x394 +fn_1_7398 = .text:0x00007398; // type:function size:0x640 +fn_1_79D8 = .text:0x000079D8; // type:function size:0x4B0 +fn_1_7E88 = .text:0x00007E88; // type:function size:0x2C4 +fn_1_814C = .text:0x0000814C; // type:function size:0x118 +fn_1_8264 = .text:0x00008264; // type:function size:0x7C +fn_1_82E0 = .text:0x000082E0; // type:function size:0x8C +fn_1_836C = .text:0x0000836C; // type:function size:0xF0 +fn_1_845C = .text:0x0000845C; // type:function size:0x2FC +fn_1_8758 = .text:0x00008758; // type:function size:0x100 +fn_1_8858 = .text:0x00008858; // type:function size:0xF0 +fn_1_8948 = .text:0x00008948; // type:function size:0xF0 +fn_1_8A38 = .text:0x00008A38; // type:function size:0xF0 +fn_1_8B28 = .text:0x00008B28; // type:function size:0xF0 +fn_1_8C18 = .text:0x00008C18; // type:function size:0x7C +fn_1_8C94 = .text:0x00008C94; // type:function size:0x4AC +fn_1_9140 = .text:0x00009140; // type:function size:0x88 +fn_1_91C8 = .text:0x000091C8; // type:function size:0x58 +fn_1_9220 = .text:0x00009220; // type:function size:0x1B0 +fn_1_93D0 = .text:0x000093D0; // type:function size:0xB8 +fn_1_9488 = .text:0x00009488; // type:function size:0x228 +fn_1_96B0 = .text:0x000096B0; // type:function size:0xB8 +fn_1_9768 = .text:0x00009768; // type:function size:0x228 +fn_1_9990 = .text:0x00009990; // type:function size:0x78 +fn_1_9A08 = .text:0x00009A08; // type:function size:0x5C +fn_1_9A64 = .text:0x00009A64; // type:function size:0x8B0 +fn_1_A314 = .text:0x0000A314; // type:function size:0x1DC +fn_1_A4F0 = .text:0x0000A4F0; // type:function size:0x6BC +fn_1_ABAC = .text:0x0000ABAC; // type:function size:0xAC4 +fn_1_B670 = .text:0x0000B670; // type:function size:0x118 +fn_1_B788 = .text:0x0000B788; // type:function size:0x6D4 +fn_1_BE5C = .text:0x0000BE5C; // type:function size:0x104 +fn_1_BF60 = .text:0x0000BF60; // type:function size:0x100 +fn_1_C060 = .text:0x0000C060; // type:function size:0xE0C +fn_1_CE6C = .text:0x0000CE6C; // type:function size:0x620 +fn_1_D48C = .text:0x0000D48C; // type:function size:0xAC +fn_1_D538 = .text:0x0000D538; // type:function size:0x1E0 +fn_1_D718 = .text:0x0000D718; // type:function size:0xC0 +fn_1_D7D8 = .text:0x0000D7D8; // type:function size:0x390 +fn_1_DB68 = .text:0x0000DB68; // type:function size:0x5F8 +fn_1_E160 = .text:0x0000E160; // type:function size:0x1BD0 +fn_1_FD30 = .text:0x0000FD30; // type:function size:0x150 +fn_1_FE80 = .text:0x0000FE80; // type:function size:0xFC +fn_1_FF7C = .text:0x0000FF7C; // type:function size:0x3F0 +fn_1_1036C = .text:0x0001036C; // type:function size:0xA08 +fn_1_10D74 = .text:0x00010D74; // type:function size:0xA20 +fn_1_11794 = .text:0x00011794; // type:function size:0xA0 +fn_1_11834 = .text:0x00011834; // type:function size:0xBA4 +fn_1_123D8 = .text:0x000123D8; // type:function size:0x44 +fn_1_1241C = .text:0x0001241C; // type:function size:0x4 +fn_1_12420 = .text:0x00012420; // type:function size:0x678 +fn_1_12A98 = .text:0x00012A98; // type:function size:0x170 +fn_1_12C08 = .text:0x00012C08; // type:function size:0x1A4 +fn_1_12DAC = .text:0x00012DAC; // type:function size:0x2FC +fn_1_130A8 = .text:0x000130A8; // type:function size:0xD4 +fn_1_1317C = .text:0x0001317C; // type:function size:0x130 +fn_1_132AC = .text:0x000132AC; // type:function size:0x65C +fn_1_13908 = .text:0x00013908; // type:function size:0x130 +fn_1_13A38 = .text:0x00013A38; // type:function size:0x4 +fn_1_13A3C = .text:0x00013A3C; // type:function size:0x23C +fn_1_13C78 = .text:0x00013C78; // type:function size:0xC0 +fn_1_13D38 = .text:0x00013D38; // type:function size:0x60 +fn_1_13D98 = .text:0x00013D98; // type:function size:0x308 +fn_1_140A0 = .text:0x000140A0; // type:function size:0x38C +fn_1_1442C = .text:0x0001442C; // type:function size:0x140 +fn_1_1456C = .text:0x0001456C; // type:function size:0x118 +fn_1_14684 = .text:0x00014684; // type:function size:0x7C +fn_1_14700 = .text:0x00014700; // type:function size:0x48 +fn_1_14748 = .text:0x00014748; // type:function size:0x724 +fn_1_14E6C = .text:0x00014E6C; // type:function size:0x114 +fn_1_14F80 = .text:0x00014F80; // type:function size:0x54 +fn_1_14FD4 = .text:0x00014FD4; // type:function size:0x31C +fn_1_152F0 = .text:0x000152F0; // type:function size:0x160 +fn_1_15450 = .text:0x00015450; // type:function size:0x3A0 +fn_1_157F0 = .text:0x000157F0; // type:function size:0x1B4 +fn_1_159A4 = .text:0x000159A4; // type:function size:0x268 +fn_1_15C0C = .text:0x00015C0C; // type:function size:0xFC +fn_1_15D08 = .text:0x00015D08; // type:function size:0xC0 +fn_1_15DC8 = .text:0x00015DC8; // type:function size:0x3F0 +fn_1_161B8 = .text:0x000161B8; // type:function size:0x3BC +fn_1_16574 = .text:0x00016574; // type:function size:0x54 +fn_1_165C8 = .text:0x000165C8; // type:function size:0x35C +fn_1_16924 = .text:0x00016924; // type:function size:0x1B0 +fn_1_16AD4 = .text:0x00016AD4; // type:function size:0x400 +fn_1_16ED4 = .text:0x00016ED4; // type:function size:0x258 +fn_1_1712C = .text:0x0001712C; // type:function size:0x160 +fn_1_1728C = .text:0x0001728C; // type:function size:0x210 +fn_1_17484 = .text:0x0001749C; // type:function size:0xEC +fn_1_17570 = .text:0x00017588; // type:function size:0x838 +lbl_1_text_17DC4 = .text:0x00017DC4; // type:label +lbl_1_text_17DC8 = .text:0x00017DC8; // type:label +lbl_1_text_17DD0 = .text:0x00017DD0; // type:label +fn_1_17DC0 = .text:0x00017DD8; // type:function size:0x2C0 +fn_1_18080 = .text:0x00018098; // type:function size:0x9C +fn_1_1811C = .text:0x00018134; // type:function size:0x218 +fn_1_18334 = .text:0x0001834C; // type:function size:0x1B4 +fn_1_184E8 = .text:0x00018500; // type:function size:0x70 +fn_1_18558 = .text:0x00018570; // type:function size:0x110 +fn_1_18668 = .text:0x00018680; // type:function size:0x694 +fn_1_18CFC = .text:0x00018D14; // type:function size:0x29C +fn_1_18F98 = .text:0x00018FB0; // type:function size:0x1AC +fn_1_19144 = .text:0x0001915C; // type:function size:0xD0 +fn_1_19214 = .text:0x0001922C; // type:function size:0x28C +fn_1_194A0 = .text:0x000194B8; // type:function size:0xF0 +fn_1_19590 = .text:0x000195A8; // type:function size:0x224 +fn_1_197B4 = .text:0x000197CC; // type:function size:0x854 +fn_1_1A008 = .text:0x0001A020; // type:function size:0x1EF4 +fn_1_1BEFC = .text:0x0001BF14; // type:function size:0x3F8 +fn_1_1C2F4 = .text:0x0001C30C; // type:function size:0x16C +fn_1_1C460 = .text:0x0001C478; // type:function size:0xD4 +fn_1_1C534 = .text:0x0001C54C; // type:function size:0x3E0 +fn_1_1C914 = .text:0x0001C92C; // type:function size:0x184 +fn_1_1CA98 = .text:0x0001CAB0; // type:function size:0xE4 +fn_1_1CB7C = .text:0x0001CB94; // type:function size:0xE0 +fn_1_1CC5C = .text:0x0001CC74; // type:function size:0x104 +fn_1_1CD60 = .text:0x0001CD78; // type:function size:0x90 +fn_1_1CDF0 = .text:0x0001CE08; // type:function size:0x334 +fn_1_1D124 = .text:0x0001D13C; // type:function size:0x518 +fn_1_1D63C = .text:0x0001D654; // type:function size:0x140 +fn_1_1D77C = .text:0x0001D794; // type:function size:0x150 +fn_1_1D8CC = .text:0x0001D8E4; // type:function size:0x98 +fn_1_1D964 = .text:0x0001D97C; // type:function size:0x100 +fn_1_1DA64 = .text:0x0001DA7C; // type:function size:0x48 +fn_1_1DAAC = .text:0x0001DAC4; // type:function size:0x3A0 +fn_1_1DE4C = .text:0x0001DE64; // type:function size:0x8C +fn_1_1DED8 = .text:0x0001DEF0; // type:function size:0x21C +fn_1_1E0F4 = .text:0x0001E10C; // type:function size:0x14 +fn_1_1E108 = .text:0x0001E120; // type:function size:0x10 +fn_1_1E118 = .text:0x0001E130; // type:function size:0x14 +fn_1_1E12C = .text:0x0001E144; // type:function size:0x10 +fn_1_1E13C = .text:0x0001E154; // type:function size:0x41C +fn_1_1E558 = .text:0x0001E570; // type:function size:0x2C8 +fn_1_1E820 = .text:0x0001E838; // type:function size:0x8E0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC data:4byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC data:4byte +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 data:4byte +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 data:4byte +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 data:4byte +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 data:4byte +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 data:byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 data:4byte +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0xD data:string +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 data:string +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A data:string +lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A data:string +lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE data:string +lbl_1_data_130 = .data:0x00000130; // type:object size:0x30 data:float +lbl_1_data_160 = .data:0x00000160; // type:object size:0x50 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x50 +lbl_1_data_200 = .data:0x00000200; // type:object size:0x50 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 data:string +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 data:string +lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 data:string +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 data:string +lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 data:string +lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D data:string +lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C data:string +lbl_1_data_364 = .data:0x00000364; // type:object size:0x8 data:4byte +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC +lbl_1_data_378 = .data:0x00000378; // type:object size:0xF data:string +lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 data:string +jumptable_1_data_398 = .data:0x00000398; // type:object size:0x30 scope:local +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 data:string +lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 data:string +lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 data:string +lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 data:string +lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 data:string +lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 data:string +lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 data:string +lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12 +lbl_1_data_504 = .data:0x00000504; // type:object size:0x288 +lbl_1_data_78C = .data:0x0000078C; // type:object size:0x5 +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 data:string +lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 data:string +lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 data:string +lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 data:string +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 data:string +lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 data:string +lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 data:string +lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF data:string +lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C data:string +lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D data:string +lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 data:string +lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 data:string +lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 data:string +lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 data:string +lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 data:string +lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A data:string +lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A data:string +lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x1B +lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 data:string +lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:float +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:float +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:float +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:float +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:float +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x1340 +lbl_1_bss_1408 = .bss:0x00001408; // type:object size:0x18 +lbl_1_bss_1420 = .bss:0x00001420; // type:object size:0x4 data:4byte +lbl_1_bss_1424 = .bss:0x00001424; // type:object size:0x4 data:float +lbl_1_bss_1428 = .bss:0x00001428; // type:object size:0x10 data:4byte +lbl_1_bss_1438 = .bss:0x00001438; // type:object size:0x10 +lbl_1_bss_1448 = .bss:0x00001448; // type:object size:0x10 data:4byte +lbl_1_bss_1458 = .bss:0x00001458; // type:object size:0x10 data:4byte +lbl_1_bss_1468 = .bss:0x00001468; // type:object size:0x28 data:4byte +lbl_1_bss_1490 = .bss:0x00001490; // type:object size:0xA0 data:4byte +lbl_1_bss_1530 = .bss:0x00001530; // type:object size:0x28 data:4byte +lbl_1_bss_1558 = .bss:0x00001558; // type:object size:0x28 data:4byte +lbl_1_bss_1580 = .bss:0x00001580; // type:object size:0x350 data:4byte +lbl_1_bss_18D0 = .bss:0x000018D0; // type:object size:0x4 data:4byte +lbl_1_bss_18D4 = .bss:0x000018D4; // type:object size:0x4 data:4byte +lbl_1_bss_18D8 = .bss:0x000018D8; // type:object size:0xC data:4byte +lbl_1_bss_18E4 = .bss:0x000018E4; // type:object size:0x8 data:4byte +lbl_1_bss_18EC = .bss:0x000018EC; // type:object size:0x8 data:4byte +lbl_1_bss_18F4 = .bss:0x000018F4; // type:object size:0xA0 +lbl_1_bss_1994 = .bss:0x00001994; // type:object size:0x28 data:4byte +lbl_1_bss_19BC = .bss:0x000019BC; // type:object size:0x28 data:4byte +lbl_1_bss_19E4 = .bss:0x000019E4; // type:object size:0x28 data:4byte +lbl_1_bss_1A0C = .bss:0x00001A0C; // type:object size:0x2DC data:float +lbl_1_bss_1CE8 = .bss:0x00001CE8; // type:object size:0x2 data:2byte +lbl_1_bss_1CEC = .bss:0x00001CEC; // type:object size:0x4 data:4byte +lbl_1_bss_1CF0 = .bss:0x00001CF0; // type:object size:0x4 data:4byte +lbl_1_bss_1CF4 = .bss:0x00001CF4; // type:object size:0x4 data:4byte +lbl_1_bss_1CF8 = .bss:0x00001CF8; // type:object size:0x58 data:2byte diff --git a/config/GMPE01_01/rels/mstoryDll/splits.txt b/config/GMPE01_01/rels/mstoryDll/splits.txt new file mode 100644 index 00000000..dc2d5f55 --- /dev/null +++ b/config/GMPE01_01/rels/mstoryDll/splits.txt @@ -0,0 +1,43 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/mstoryDll/main.c: + .text start:0x00000000 end:0x00007090 + .rodata start:0x00000000 end:0x00000108 + .data start:0x00000000 end:0x00000190 + .bss start:0x00000000 end:0x00000058 + +REL/mstoryDll/board_clear.c: + .text start:0x00007090 end:0x0000A830 + .rodata start:0x00000108 end:0x00000268 + .data start:0x00000190 end:0x00000388 + .bss start:0x00000058 end:0x000002C8 + +REL/mstoryDll/board_miss.c: + .text start:0x0000A830 end:0x0000E710 + .rodata start:0x00000268 end:0x000003B8 + .data start:0x00000388 end:0x00000570 + .bss start:0x000002C8 end:0x00000558 + +REL/mstoryDll/mg_clear.c: + .text start:0x0000E710 end:0x00011624 + .rodata start:0x000003B8 end:0x000004E0 + .data start:0x00000570 end:0x00000AF8 + .bss start:0x00000558 end:0x00000710 + +REL/mstoryDll/mg_miss.c: + .text start:0x00011624 end:0x00013B48 + .rodata start:0x000004E0 end:0x000005A8 + .data start:0x00000AF8 end:0x00000C50 + .bss start:0x00000710 end:0x000008B8 + +REL/mstoryDll/save.c: + .text start:0x00013B48 end:0x000141B8 + .rodata start:0x000005A8 end:0x000005B8 + .data start:0x00000C50 end:0x00000C98 + .bss start:0x000008B8 end:0x000008C0 diff --git a/config/GMPE01_01/rels/mstoryDll/symbols.txt b/config/GMPE01_01/rels/mstoryDll/symbols.txt new file mode 100644 index 00000000..5dd7edd6 --- /dev/null +++ b/config/GMPE01_01/rels/mstoryDll/symbols.txt @@ -0,0 +1,499 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x344 +_prolog = .text:0x000003E8; // type:function size:0x54 scope:global +_epilog = .text:0x0000043C; // type:function size:0x4C scope:global +fn_1_488 = .text:0x00000488; // type:function size:0x1D0 +fn_1_658 = .text:0x00000658; // type:function size:0x1D0 +fn_1_828 = .text:0x00000828; // type:function size:0x28 +fn_1_850 = .text:0x00000850; // type:function size:0x20 +fn_1_870 = .text:0x00000870; // type:function size:0xD8 +fn_1_948 = .text:0x00000948; // type:function size:0xC8 +fn_1_A10 = .text:0x00000A10; // type:function size:0xBC +fn_1_ACC = .text:0x00000ACC; // type:function size:0xBC +fn_1_B88 = .text:0x00000B88; // type:function size:0x4 +fn_1_B8C = .text:0x00000B8C; // type:function size:0x20 +fn_1_BAC = .text:0x00000BAC; // type:function size:0x28 +fn_1_BD4 = .text:0x00000BD4; // type:function size:0x20 +fn_1_BF4 = .text:0x00000BF4; // type:function size:0x24 +fn_1_C18 = .text:0x00000C18; // type:function size:0x20 +fn_1_C38 = .text:0x00000C38; // type:function size:0xA48 +fn_1_1680 = .text:0x00001680; // type:function size:0x1B4 +fn_1_1834 = .text:0x00001834; // type:function size:0x1D0 +fn_1_1A04 = .text:0x00001A04; // type:function size:0x60 +fn_1_1A64 = .text:0x00001A64; // type:function size:0x68 +fn_1_1ACC = .text:0x00001ACC; // type:function size:0xAC +fn_1_1B78 = .text:0x00001B78; // type:function size:0xBC +fn_1_1C34 = .text:0x00001C34; // type:function size:0xB4 +fn_1_1CE8 = .text:0x00001CE8; // type:function size:0x34 +fn_1_1D1C = .text:0x00001D1C; // type:function size:0x40 +fn_1_1D5C = .text:0x00001D5C; // type:function size:0x70 +fn_1_1DCC = .text:0x00001DCC; // type:function size:0x178 +fn_1_1F44 = .text:0x00001F44; // type:function size:0x2E0 +fn_1_2224 = .text:0x00002224; // type:function size:0x90 +fn_1_22B4 = .text:0x000022B4; // type:function size:0x48 +fn_1_22FC = .text:0x000022FC; // type:function size:0x54 +fn_1_2350 = .text:0x00002350; // type:function size:0x3C0 +fn_1_2710 = .text:0x00002710; // type:function size:0x10 +fn_1_2720 = .text:0x00002720; // type:function size:0x10 +fn_1_2730 = .text:0x00002730; // type:function size:0xB8 +fn_1_27E8 = .text:0x000027E8; // type:function size:0x120 +fn_1_2908 = .text:0x00002908; // type:function size:0x3A8 +fn_1_2CB0 = .text:0x00002CB0; // type:function size:0x7F4 +fn_1_34A4 = .text:0x000034A4; // type:function size:0x88 +fn_1_352C = .text:0x0000352C; // type:function size:0x94 +fn_1_35C0 = .text:0x000035C0; // type:function size:0x58 +fn_1_3618 = .text:0x00003618; // type:function size:0xEC +fn_1_3704 = .text:0x00003704; // type:function size:0xC4 +fn_1_37C8 = .text:0x000037C8; // type:function size:0x3C +fn_1_3804 = .text:0x00003804; // type:function size:0x44 +fn_1_3848 = .text:0x00003848; // type:function size:0x274 +fn_1_3ABC = .text:0x00003ABC; // type:function size:0x26C +fn_1_3D28 = .text:0x00003D28; // type:function size:0x22C +fn_1_3F54 = .text:0x00003F54; // type:function size:0x27C +fn_1_41D0 = .text:0x000041D0; // type:function size:0x2B4 +fn_1_4484 = .text:0x00004484; // type:function size:0x46C +fn_1_48F0 = .text:0x000048F0; // type:function size:0x454 +fn_1_4D44 = .text:0x00004D44; // type:function size:0x48C +fn_1_51D0 = .text:0x000051D0; // type:function size:0x658 +fn_1_5828 = .text:0x00005828; // type:function size:0x4C4 +fn_1_5CEC = .text:0x00005CEC; // type:function size:0x4FC +fn_1_61E8 = .text:0x000061E8; // type:function size:0x6C8 +fn_1_68B0 = .text:0x000068B0; // type:function size:0xC4 +fn_1_6974 = .text:0x00006974; // type:function size:0x188 +fn_1_6AFC = .text:0x00006AFC; // type:function size:0x34 +fn_1_6B30 = .text:0x00006B30; // type:function size:0x40 +fn_1_6B70 = .text:0x00006B70; // type:function size:0xAC +fn_1_6C1C = .text:0x00006C1C; // type:function size:0x1E8 +fn_1_6E04 = .text:0x00006E04; // type:function size:0xB4 +fn_1_6EB8 = .text:0x00006EB8; // type:function size:0x170 +fn_1_7028 = .text:0x00007028; // type:function size:0x68 +fn_1_7090 = .text:0x00007090; // type:function size:0xA4 +fn_1_7134 = .text:0x00007134; // type:function size:0x1E8 +fn_1_731C = .text:0x0000731C; // type:function size:0x69C +fn_1_79B8 = .text:0x000079B8; // type:function size:0x128 +fn_1_7AE0 = .text:0x00007AE0; // type:function size:0x390 +fn_1_7E70 = .text:0x00007E70; // type:function size:0x5C +fn_1_7ECC = .text:0x00007ECC; // type:function size:0x1C4 +fn_1_8090 = .text:0x00008090; // type:function size:0x320 +fn_1_83B0 = .text:0x000083B0; // type:function size:0x58 +fn_1_8408 = .text:0x00008408; // type:function size:0x3D4 +fn_1_87DC = .text:0x000087DC; // type:function size:0x268 +fn_1_8A44 = .text:0x00008A44; // type:function size:0x9C +fn_1_8AE0 = .text:0x00008AE0; // type:function size:0x2E0 +fn_1_8DC0 = .text:0x00008DC0; // type:function size:0xAC +fn_1_8E6C = .text:0x00008E6C; // type:function size:0xFC +fn_1_8F68 = .text:0x00008F68; // type:function size:0x36C +fn_1_92D4 = .text:0x000092D4; // type:function size:0x134 +fn_1_9408 = .text:0x00009408; // type:function size:0x310 +fn_1_9718 = .text:0x00009718; // type:function size:0x18C +fn_1_98A4 = .text:0x000098A4; // type:function size:0x88 +fn_1_992C = .text:0x0000992C; // type:function size:0x3DC +fn_1_9D08 = .text:0x00009D08; // type:function size:0x300 +fn_1_A008 = .text:0x0000A008; // type:function size:0xE4 +fn_1_A0EC = .text:0x0000A0EC; // type:function size:0x38C +fn_1_A478 = .text:0x0000A478; // type:function size:0x8C +fn_1_A504 = .text:0x0000A504; // type:function size:0xF0 +fn_1_A5F4 = .text:0x0000A5F4; // type:function size:0x23C +fn_1_A830 = .text:0x0000A830; // type:function size:0xC8 +fn_1_A8F8 = .text:0x0000A8F8; // type:function size:0x2B4 +fn_1_ABAC = .text:0x0000ABAC; // type:function size:0x150 +fn_1_ACFC = .text:0x0000ACFC; // type:function size:0x134 +fn_1_AE30 = .text:0x0000AE30; // type:function size:0x8C +fn_1_AEBC = .text:0x0000AEBC; // type:function size:0x374 +fn_1_B230 = .text:0x0000B230; // type:function size:0x5C +fn_1_B28C = .text:0x0000B28C; // type:function size:0x214 +fn_1_B4A0 = .text:0x0000B4A0; // type:function size:0xE8 +fn_1_B588 = .text:0x0000B588; // type:function size:0xE8 +fn_1_B670 = .text:0x0000B670; // type:function size:0x11C +fn_1_B78C = .text:0x0000B78C; // type:function size:0x13C +fn_1_B8C8 = .text:0x0000B8C8; // type:function size:0x4 +fn_1_B8CC = .text:0x0000B8CC; // type:function size:0x104 +fn_1_B9D0 = .text:0x0000B9D0; // type:function size:0x208 +fn_1_BBD8 = .text:0x0000BBD8; // type:function size:0x788 +fn_1_C360 = .text:0x0000C360; // type:function size:0xB4 +fn_1_C414 = .text:0x0000C414; // type:function size:0x2F4 +fn_1_C708 = .text:0x0000C708; // type:function size:0xBC +fn_1_C7C4 = .text:0x0000C7C4; // type:function size:0x384 +fn_1_CB48 = .text:0x0000CB48; // type:function size:0x300 +fn_1_CE48 = .text:0x0000CE48; // type:function size:0xAC +fn_1_CEF4 = .text:0x0000CEF4; // type:function size:0xE4 +fn_1_CFD8 = .text:0x0000CFD8; // type:function size:0xC4 +fn_1_D09C = .text:0x0000D09C; // type:function size:0xE4 +fn_1_D180 = .text:0x0000D180; // type:function size:0x3FC +fn_1_D57C = .text:0x0000D57C; // type:function size:0x134 +fn_1_D6B0 = .text:0x0000D6B0; // type:function size:0x2F8 +fn_1_D9A8 = .text:0x0000D9A8; // type:function size:0xFC +fn_1_DAA4 = .text:0x0000DAA4; // type:function size:0x164 +fn_1_DC08 = .text:0x0000DC08; // type:function size:0x118 +fn_1_DD20 = .text:0x0000DD20; // type:function size:0xE4 +fn_1_DE04 = .text:0x0000DE04; // type:function size:0x424 +fn_1_E228 = .text:0x0000E228; // type:function size:0x8C +fn_1_E2B4 = .text:0x0000E2B4; // type:function size:0x130 +fn_1_E3E4 = .text:0x0000E3E4; // type:function size:0x23C +fn_1_E620 = .text:0x0000E620; // type:function size:0xF0 +fn_1_E710 = .text:0x0000E710; // type:function size:0x118 +fn_1_E828 = .text:0x0000E828; // type:function size:0x8C +fn_1_E8B4 = .text:0x0000E8B4; // type:function size:0x34C +fn_1_EC00 = .text:0x0000EC00; // type:function size:0x5C +fn_1_EC5C = .text:0x0000EC5C; // type:function size:0x384 +fn_1_EFE0 = .text:0x0000EFE0; // type:function size:0x70 +fn_1_F050 = .text:0x0000F050; // type:function size:0x14C +fn_1_F19C = .text:0x0000F19C; // type:function size:0x5E4 +fn_1_F780 = .text:0x0000F780; // type:function size:0xEC +fn_1_F86C = .text:0x0000F86C; // type:function size:0xA4 +fn_1_F910 = .text:0x0000F910; // type:function size:0x1D4 +fn_1_FAE4 = .text:0x0000FAE4; // type:function size:0x238 +fn_1_FD1C = .text:0x0000FD1C; // type:function size:0xB4 +fn_1_FDD0 = .text:0x0000FDD0; // type:function size:0x4C8 +fn_1_10298 = .text:0x00010298; // type:function size:0xEC +fn_1_10384 = .text:0x00010384; // type:function size:0xCC +fn_1_10450 = .text:0x00010450; // type:function size:0xFC +fn_1_1054C = .text:0x0001054C; // type:function size:0xAC +fn_1_105F8 = .text:0x000105F8; // type:function size:0x300 +fn_1_108F8 = .text:0x000108F8; // type:function size:0x374 +fn_1_10C6C = .text:0x00010C6C; // type:function size:0xE4 +fn_1_10D50 = .text:0x00010D50; // type:function size:0x1D4 +fn_1_10F24 = .text:0x00010F24; // type:function size:0xAC +fn_1_10FD0 = .text:0x00010FD0; // type:function size:0x2D0 +fn_1_112A0 = .text:0x000112A0; // type:function size:0x8C +fn_1_1132C = .text:0x0001132C; // type:function size:0xF0 +fn_1_1141C = .text:0x0001141C; // type:function size:0x118 +fn_1_11534 = .text:0x00011534; // type:function size:0xF0 +fn_1_11624 = .text:0x00011624; // type:function size:0x10C +fn_1_11730 = .text:0x00011730; // type:function size:0x35C +fn_1_11A8C = .text:0x00011A8C; // type:function size:0x5C +fn_1_11AE8 = .text:0x00011AE8; // type:function size:0x184 +fn_1_11C6C = .text:0x00011C6C; // type:function size:0x16C +fn_1_11DD8 = .text:0x00011DD8; // type:function size:0xEC +fn_1_11EC4 = .text:0x00011EC4; // type:function size:0x64 +fn_1_11F28 = .text:0x00011F28; // type:function size:0x4 +fn_1_11F2C = .text:0x00011F2C; // type:function size:0x144 +fn_1_12070 = .text:0x00012070; // type:function size:0x5C0 +fn_1_12630 = .text:0x00012630; // type:function size:0xB4 +fn_1_126E4 = .text:0x000126E4; // type:function size:0x234 +fn_1_12918 = .text:0x00012918; // type:function size:0xBC +fn_1_129D4 = .text:0x000129D4; // type:function size:0x2C0 +fn_1_12C94 = .text:0x00012C94; // type:function size:0xE4 +fn_1_12D78 = .text:0x00012D78; // type:function size:0x1A8 +fn_1_12F20 = .text:0x00012F20; // type:function size:0x88 +fn_1_12FA8 = .text:0x00012FA8; // type:function size:0x118 +fn_1_130C0 = .text:0x000130C0; // type:function size:0x22C +fn_1_132EC = .text:0x000132EC; // type:function size:0x284 +fn_1_13570 = .text:0x00013570; // type:function size:0x310 +fn_1_13880 = .text:0x00013880; // type:function size:0x8C +fn_1_1390C = .text:0x0001390C; // type:function size:0x23C +fn_1_13B48 = .text:0x00013B48; // type:function size:0xEC +fn_1_13C34 = .text:0x00013C34; // type:function size:0x210 +fn_1_13E2C = .text:0x00013E44; // type:function size:0x324 +fn_1_14150 = .text:0x00014168; // type:function size:0x50 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC data:4byte +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC data:4byte +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC data:4byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 data:byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC data:2byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC data:4byte +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 data:4byte +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 data:4byte +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC data:4byte +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC data:4byte +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC data:4byte +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 data:4byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 data:4byte +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 data:4byte +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 data:byte +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 data:4byte +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 data:4byte +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C data:4byte +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 data:string +lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 data:string +lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 data:string +lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 data:string +lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 data:string +lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 data:string +lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A data:string +lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A data:string +lbl_1_data_17F = .data:0x0000017F; // type:object size:0xE data:string +lbl_1_data_190 = .data:0x00000190; // type:object size:0x50 +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 data:string +lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 data:string +lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 data:string +lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C data:string +lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D data:string +lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0xF data:string +lbl_1_data_338 = .data:0x00000338; // type:object size:0x1A data:string +lbl_1_data_354 = .data:0x00000354; // type:object size:0x30 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x50 +lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C +lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 data:string +lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 data:string +lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 data:string +lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 data:string +lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 data:string +lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 data:string +lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 data:string +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA data:string +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C data:string +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D data:string +lbl_1_data_505 = .data:0x00000505; // type:object size:0xF data:string +lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B data:string +lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 data:string +lbl_1_data_537 = .data:0x00000537; // type:object size:0x8 data:string +lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 +lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0 +lbl_1_data_930 = .data:0x00000930; // type:object size:0x50 +lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 data:string +lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 data:string +lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 data:string +lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 data:string +lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 data:string +lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 data:string +lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 data:string +lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 data:string +lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF data:string +lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C data:string +lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D data:string +lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C data:string +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 data:string +lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF data:string +lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 data:string +lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA data:string +lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 data:string +lbl_1_data_AED = .data:0x00000AED; // type:object size:0x7 data:string +lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C +lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 data:string +lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 data:string +lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 data:string +lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 data:string +lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 data:string +lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 data:string +lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 data:string +lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 data:string +lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF data:string +lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C data:string +lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D data:string +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF data:string +lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x1A data:string +lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0xC data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x28 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0xA0 +lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x28 data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x28 data:4byte +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0x104 data:4byte +lbl_1_bss_2C8 = .bss:0x000002C8; // type:object size:0x4 data:4byte +lbl_1_bss_2CC = .bss:0x000002CC; // type:object size:0x4 data:4byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x60 data:4byte +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0x8 data:4byte +lbl_1_bss_338 = .bss:0x00000338; // type:object size:0xA0 +lbl_1_bss_3D8 = .bss:0x000003D8; // type:object size:0x28 data:4byte +lbl_1_bss_400 = .bss:0x00000400; // type:object size:0x28 data:4byte +lbl_1_bss_428 = .bss:0x00000428; // type:object size:0x28 data:4byte +lbl_1_bss_450 = .bss:0x00000450; // type:object size:0x108 data:float +lbl_1_bss_558 = .bss:0x00000558; // type:object size:0x4 data:4byte +lbl_1_bss_55C = .bss:0x0000055C; // type:object size:0x4 data:4byte +lbl_1_bss_560 = .bss:0x00000560; // type:object size:0x8 data:4byte +lbl_1_bss_568 = .bss:0x00000568; // type:object size:0x28 data:4byte +lbl_1_bss_590 = .bss:0x00000590; // type:object size:0x28 data:4byte +lbl_1_bss_5B8 = .bss:0x000005B8; // type:object size:0x28 data:4byte +lbl_1_bss_5E0 = .bss:0x000005E0; // type:object size:0x28 data:4byte +lbl_1_bss_608 = .bss:0x00000608; // type:object size:0x108 data:4byte +lbl_1_bss_710 = .bss:0x00000710; // type:object size:0x4 data:4byte +lbl_1_bss_714 = .bss:0x00000714; // type:object size:0x28 data:4byte +lbl_1_bss_73C = .bss:0x0000073C; // type:object size:0x28 data:4byte +lbl_1_bss_764 = .bss:0x00000764; // type:object size:0x28 data:4byte +lbl_1_bss_78C = .bss:0x0000078C; // type:object size:0x28 data:4byte +lbl_1_bss_7B4 = .bss:0x000007B4; // type:object size:0x104 data:4byte +lbl_1_bss_8B8 = .bss:0x000008B8; // type:object size:0x4 data:4byte +lbl_1_bss_8BC = .bss:0x000008BC; // type:object size:0x4 data:4byte diff --git a/config/GMPE01_01/splits.txt b/config/GMPE01_01/splits.txt new file mode 100644 index 00000000..6b38187f --- /dev/null +++ b/config/GMPE01_01/splits.txt @@ -0,0 +1,1450 @@ +Sections: + .init type:code align:4 + extab type:rodata align:32 + extabindex type:rodata align:32 + .text type:code align:8 + .ctors type:rodata align:32 + .dtors type:rodata align:32 + .rodata type:rodata align:32 + .data type:data align:32 + .bss type:bss align:32 + .sdata type:data align:4 + .sbss type:bss align:8 + .sdata2 type:rodata align:32 + .sbss2 type:bss align:16 + +game/main.c: + .text start:0x800057C0 end:0x80005A5C + .data start:0x8011EDE0 end:0x8011EDF0 + .sdata start:0x801D3420 end:0x801D3430 + .sbss start:0x801D3A00 end:0x801D3A58 + .sdata2 start:0x801D4960 end:0x801D4968 + +game/pad.c: + .text start:0x80005A5C end:0x80006478 + .data start:0x8011EDF0 end:0x8011EE00 + .bss start:0x80142800 end:0x80142840 + .sbss start:0x801D3A58 end:0x801D3AE0 + +game/dvd.c: + .text start:0x80006478 end:0x80006E38 + .data start:0x8011EE00 end:0x8011EF58 + .sdata start:0x801D3430 end:0x801D3438 + .sbss start:0x801D3AE0 end:0x801D3AE8 + +game/data.c: + .text start:0x80006E38 end:0x80009400 + .data start:0x8011EF58 end:0x8011FDE0 + .bss start:0x80142840 end:0x80145640 + .sdata start:0x801D3438 end:0x801D3448 + .sbss start:0x801D3AE8 end:0x801D3AF8 + +game/decode.c: + .text start:0x80009400 end:0x80009AFC + .data start:0x8011FDE0 end:0x8011FE00 + .bss start:0x80145640 end:0x80145A40 + +game/font.c: + .data start:0x8011FE00 end:0x80121E00 + +game/init.c: + .text start:0x80009AFC end:0x8000A464 + .data start:0x80121E00 end:0x80121F50 + .bss start:0x80145A40 end:0x80145A80 + .sdata start:0x801D3448 end:0x801D3460 + .sbss start:0x801D3AF8 end:0x801D3B28 + .sdata2 start:0x801D4968 end:0x801D4978 + +game/jmp.c: + .text start:0x8000A464 end:0x8000A558 + +game/malloc.c: + .text start:0x8000A558 end:0x8000A938 + .data start:0x80121F50 end:0x80121FC8 + .bss start:0x80145A80 end:0x80145A98 + +game/memory.c: + .text start:0x8000A938 end:0x8000AEF0 + .data start:0x80121FC8 end:0x80122140 + +game/printfunc.c: + .text start:0x8000AEF0 end:0x8000C4A4 + .data start:0x80122140 end:0x80122180 + .bss start:0x80145A98 end:0x8014C398 + .sbss start:0x801D3B28 end:0x801D3B38 + .sdata2 start:0x801D4978 end:0x801D49C8 + +game/process.c: + .text start:0x8000C4A4 end:0x8000D348 + .data start:0x80122180 end:0x801221D0 + .bss start:0x8014C398 end:0x8014C490 + .sbss start:0x801D3B38 end:0x801D3B48 + +game/sprman.c: + .text start:0x8000D348 end:0x8000F6A0 + .rodata start:0x8011DD00 end:0x8011DD10 + .data start:0x801221D0 end:0x801222F0 + .bss start:0x8014C490 end:0x8015C690 + .sdata start:0x801D3460 end:0x801D3470 + .sbss start:0x801D3B48 end:0x801D3B50 + .sdata2 start:0x801D49C8 end:0x801D49F0 + +game/sprput.c: + .text start:0x8000F6A0 end:0x80010B30 + .rodata start:0x8011DD10 end:0x8011DD20 + .data start:0x801222F0 end:0x80122320 + .bss start:0x8015C690 end:0x8015C6C0 + .sbss start:0x801D3B50 end:0x801D3B58 + .sdata2 start:0x801D49F0 end:0x801D4A28 + +game/hsfload.c: + .text start:0x80010B30 end:0x80014018 + .data start:0x80122320 end:0x80122390 + .bss start:0x8015C6C0 end:0x8015CC80 + .sbss start:0x801D3B58 end:0x801D3B90 + +game/hsfdraw.c: + .text start:0x80014018 end:0x8001F9AC + .rodata start:0x8011DD20 end:0x8011DD30 + .data start:0x80122390 end:0x801225A0 + .bss start:0x8015CC80 end:0x801677C0 + .sdata start:0x801D3470 end:0x801D3488 + .sbss start:0x801D3B90 end:0x801D3C30 + .sdata2 start:0x801D4A28 end:0x801D4AB0 + +game/hsfman.c: + .text start:0x8001F9AC end:0x800250E8 + .data start:0x801225A0 end:0x8012D658 + .bss start:0x801677C0 end:0x8018D3D0 + .sbss start:0x801D3C30 end:0x801D3C60 + .sdata2 start:0x801D4AB0 end:0x801D4B10 + .sbss2 start:0x801D6BE0 end:0x801D6BE8 + +game/hsfmotion.c: + .text start:0x800250E8 end:0x80028B04 + .data start:0x8012D658 end:0x8012D838 + .bss start:0x8018D3D0 end:0x8018DBD0 + .sbss start:0x801D3C60 end:0x801D3C68 + .sdata2 start:0x801D4B10 end:0x801D4B60 + +game/hsfanim.c: + .text start:0x80028B04 end:0x8002CB74 + .data start:0x8012D838 end:0x8012D8F8 + .bss start:0x8018DBD0 end:0x8018F790 + .sdata2 start:0x801D4B60 end:0x801D4BE8 + +game/hsfex.c: + .text start:0x8002CB74 end:0x8002E74C + .data start:0x8012D8F8 end:0x8012D918 + .sdata2 start:0x801D4BE8 end:0x801D4C78 + +game/perf.c: + .text start:0x8002E74C end:0x8002EBD8 + .bss start:0x8018F790 end:0x8018FB38 + .sdata start:0x801D3488 end:0x801D3498 + .sbss start:0x801D3C68 end:0x801D3CC0 + +game/objmain.c: + .text start:0x8002EBD8 end:0x8002FF4C + .data start:0x8012D918 end:0x8012DCC8 + .bss start:0x8018FB38 end:0x8018FBF8 + .sdata start:0x801D3498 end:0x801D34A0 + .sbss start:0x801D3CC0 end:0x801D3CF0 + .sdata2 start:0x801D4C78 end:0x801D4CA0 + +game/fault.c: + .text start:0x8002FF4C end:0x800308B8 + .data start:0x8012DCC8 end:0x8012E4F0 + .bss start:0x8018FBF8 end:0x8018FC10 + .sdata start:0x801D34A0 end:0x801D34B0 + .sbss start:0x801D3CF0 end:0x801D3D00 + +game/gamework.c: + .text start:0x800308B8 end:0x800315BC + .rodata start:0x8011DD30 end:0x8011DD50 + .bss start:0x8018FC10 end:0x80190008 + +game/objsysobj.c: + .text start:0x800315BC end:0x80031DB4 + .bss start:0x80190008 end:0x801901E0 + .sbss start:0x801D3D00 end:0x801D3D08 + .sdata2 start:0x801D4CA0 end:0x801D4CB0 + +game/objdll.c: + .text start:0x80031DB4 end:0x800325F4 + .data start:0x8012E4F0 end:0x8012E988 + .bss start:0x801901E0 end:0x80190230 + .sbss start:0x801D3D08 end:0x801D3D10 + +game/frand.c: + .text start:0x800325F4 end:0x80032830 + .sbss start:0x801D3D10 end:0x801D3D18 + .sdata2 start:0x801D4CB0 end:0x801D4CC0 + +game/audio.c: + .text start:0x80032830 end:0x80033EEC + .data start:0x8012E988 end:0x8012F130 + .bss start:0x80190230 end:0x80190450 + .sdata start:0x801D34B0 end:0x801D34B8 + .sbss start:0x801D3D18 end:0x801D3D48 + .sdata2 start:0x801D4CC0 end:0x801D4CD0 + +game/EnvelopeExec.c: + .text start:0x80033EEC end:0x800353AC + .sbss start:0x801D3D48 end:0x801D3D78 + .sdata2 start:0x801D4CD0 end:0x801D4CE8 + +game/minigame_seq.c: + .text start:0x800353AC end:0x8003F8B8 + .data start:0x8012F130 end:0x8012F790 + .bss start:0x80190450 end:0x80190860 + .sdata start:0x801D34B8 end:0x801D35C0 + .sbss start:0x801D3D78 end:0x801D3D98 + .sdata2 start:0x801D4CE8 end:0x801D4EA8 + +game/ovllist.c: + .data start:0x8012F790 end:0x80130100 + +game/esprite.c: + .text start:0x8003F8B8 end:0x8003FF68 + .bss start:0x80190860 end:0x80192060 + .sbss start:0x801D3D98 end:0x801D3DA0 + +game/code_8003FF68.c: + .text start:0x8003FF68 end:0x80040500 + .data start:0x80130100 end:0x80130120 + .bss start:0x80192060 end:0x80192360 + .sdata start:0x801D35C0 end:0x801D35E0 + .sbss start:0x801D3DA0 end:0x801D3DA8 + .sdata2 start:0x801D4EA8 end:0x801D4EC0 + +game/ClusterExec.c: + .text start:0x80040500 end:0x80040D60 + .sdata2 start:0x801D4EC0 end:0x801D4ED0 + +game/ShapeExec.c: + .text start:0x80040D60 end:0x80041170 + .sdata2 start:0x801D4ED0 end:0x801D4EE0 + +game/wipe.c: + .text start:0x80041170 end:0x8004207C + .data start:0x80130120 end:0x80130138 + .bss start:0x80192360 end:0x801923C0 + .sdata start:0x801D35E0 end:0x801D35E8 + .sbss start:0x801D3DA8 end:0x801D3DB0 + .sdata2 start:0x801D4EE0 end:0x801D4F08 + +game/window.c: + .text start:0x8004207C end:0x800483A0 + .data start:0x80130140 end:0x80130688 + .bss start:0x801923C0 end:0x801967E0 + .sdata start:0x801D35E8 end:0x801D35F0 + .sbss start:0x801D3DB0 end:0x801D3DF8 + .sdata2 start:0x801D4F08 end:0x801D4F98 + +game/messdata.c: + .text start:0x800483A0 end:0x80048488 + +game/card.c: + .text start:0x80048488 end:0x80048A84 + .data start:0x80130688 end:0x801306D8 + .sbss start:0x801D3DF8 end:0x801D3E00 + +game/armem.c: + .text start:0x80048A84 end:0x800498F0 + .data start:0x801306D8 end:0x801307C8 + .bss start:0x801967E0 end:0x80196EC0 + .sbss start:0x801D3E00 end:0x801D3E10 + +game/chrman.c: + .text start:0x800498F0 end:0x80050C5C + .data start:0x801307C8 end:0x801311E8 + .bss start:0x80196EC0 end:0x80197650 + .sdata start:0x801D35F0 end:0x801D3638 + .sbss start:0x801D3E10 end:0x801D3E18 + .sdata2 start:0x801D4F98 end:0x801D50D0 + +game/mapspace.c: + .text start:0x80050C5C end:0x80054A00 + .bss start:0x80197650 end:0x80197AC0 + .sbss start:0x801D3E18 end:0x801D3E38 + .sdata2 start:0x801D50D0 end:0x801D5100 + +game/THPSimple.c: + .text start:0x80054A00 end:0x80056B04 + .data start:0x801311E8 end:0x801312E8 + .bss start:0x80197AC0 end:0x801981A0 + .sdata start:0x801D3638 end:0x801D3640 + .sbss start:0x801D3E38 end:0x801D3E58 + .sdata2 start:0x801D5100 end:0x801D5108 + +game/THPDraw.c: + .text start:0x80056B04 end:0x8005745C + .sdata2 start:0x801D5108 end:0x801D5120 + +game/thpmain.c: + .text start:0x8005745C end:0x80057E24 + .rodata start:0x8011DD50 end:0x8011DD60 + .data start:0x801312E8 end:0x80131350 + .bss start:0x801981A0 end:0x801981E0 + .sbss start:0x801D3E58 end:0x801D3E80 + .sdata2 start:0x801D5120 end:0x801D5138 + +game/objsub.c: + .text start:0x80057E24 end:0x80058010 + .data start:0x80131350 end:0x80132150 + .bss start:0x801981E0 end:0x80198410 + .sbss start:0x801D3E80 end:0x801D3EA8 + +game/flag.c: + .text start:0x80058010 end:0x80058228 + .bss start:0x80198410 end:0x80198420 + +game/saveload.c: + .text start:0x80058228 end:0x8005A6F8 + .data start:0x80132150 end:0x801321F8 + .bss start:0x80198420 end:0x8019C440 + .sdata start:0x801D3640 end:0x801D3658 + .sbss start:0x801D3EA8 end:0x801D3EB8 + .sdata2 start:0x801D5138 end:0x801D5148 + +game/sreset.c: + .text start:0x8005A6F8 end:0x8005B150 + .data start:0x801321F8 end:0x80139798 + .bss start:0x8019C440 end:0x8019D7E0 + .sdata start:0x801D3658 end:0x801D3670 + .sbss start:0x801D3EB8 end:0x801D3ED0 + +game/board/main.c: + .text start:0x8005B150 end:0x80061FC4 + .rodata start:0x8011DD60 end:0x8011DD90 + .data start:0x80139798 end:0x80139898 + .bss start:0x8019D7E0 end:0x8019D968 + .sdata start:0x801D3670 end:0x801D3680 + .sbss start:0x801D3ED0 end:0x801D3F20 + .sdata2 start:0x801D5148 end:0x801D51F8 + +game/board/player.c: + .text start:0x80061FC4 end:0x8006D308 + .rodata start:0x8011DD90 end:0x8011DE60 + .data start:0x80139898 end:0x80139AA0 + .bss start:0x8019D968 end:0x8019D998 + .sdata start:0x801D3680 end:0x801D36E0 + .sbss start:0x801D3F20 end:0x801D3F58 + .sdata2 start:0x801D51F8 end:0x801D5300 + +game/board/model.c: + .text start:0x8006D308 end:0x8006FD7C + .sbss start:0x801D3F58 end:0x801D3F68 + .sdata2 start:0x801D5300 end:0x801D5318 + +game/board/window.c: + .text start:0x8006FD7C end:0x80070D84 + .rodata start:0x8011DE60 end:0x8011DED0 + .data start:0x80139AA0 end:0x80139AE8 + .bss start:0x8019D998 end:0x8019D9F8 + .sdata start:0x801D36E0 end:0x801D36E8 + .sbss start:0x801D3F68 end:0x801D3F90 + .sdata2 start:0x801D5318 end:0x801D5328 + +game/board/audio.c: + .text start:0x80070D84 end:0x80071290 + .data start:0x80139AE8 end:0x80139B00 + .sdata start:0x801D36E8 end:0x801D36F0 + .sbss start:0x801D3F90 end:0x801D3F98 + +game/board/com.c: + .text start:0x80071290 end:0x800729A4 + .data start:0x80139B00 end:0x80139BC8 + .sdata start:0x801D36F0 end:0x801D36F8 + .sdata2 start:0x801D5328 end:0x801D5350 + +game/board/view.c: + .text start:0x800729A4 end:0x80073FF4 + .rodata start:0x8011DED0 end:0x8011DEF0 + .data start:0x80139BC8 end:0x80139CC8 + .bss start:0x8019D9F8 end:0x8019DA10 + .sdata start:0x801D36F8 end:0x801D3700 + .sbss start:0x801D3F98 end:0x801D3FB0 + .sdata2 start:0x801D5350 end:0x801D53C0 + +game/board/space.c: + .text start:0x80073FF4 end:0x80077AAC + .data start:0x80139CC8 end:0x80139D08 + .bss start:0x8019DA10 end:0x801A4A60 + .sdata start:0x801D3700 end:0x801D3708 + .sbss start:0x801D3FB0 end:0x801D3FE8 + .sdata2 start:0x801D53C0 end:0x801D5440 + +game/board/shop.c: + .text start:0x80077AAC end:0x8007A83C + .data start:0x80139D08 end:0x80139E88 + .bss start:0x801A4A60 end:0x801A4A90 + .sdata start:0x801D3708 end:0x801D3728 + .sbss start:0x801D3FE8 end:0x801D4008 + .sdata2 start:0x801D5440 end:0x801D5510 + +game/board/lottery.c: + .text start:0x8007A83C end:0x8007FB50 + .rodata start:0x8011DEF0 end:0x8011E020 + .data start:0x80139E88 end:0x8013A1F0 + .bss start:0x801A4A90 end:0x801A4AC0 + .sdata start:0x801D3728 end:0x801D3748 + .sbss start:0x801D4008 end:0x801D4028 + .sdata2 start:0x801D5510 end:0x801D56A0 + +game/board/basic_space.c: + .text start:0x8007FB50 end:0x80080D54 + .data start:0x8013A1F0 end:0x8013A228 + .sdata2 start:0x801D56A0 end:0x801D5730 + +game/board/warp.c: + .text start:0x80080D54 end:0x800816CC + .rodata start:0x8011E020 end:0x8011E040 + .data start:0x8013A228 end:0x8013A248 + .bss start:0x801A4AC0 end:0x801A4AD0 + .sdata start:0x801D3748 end:0x801D3758 + .sbss start:0x801D4028 end:0x801D4040 + .sdata2 start:0x801D5730 end:0x801D5780 + +game/board/char_wheel.c: + .text start:0x800816CC end:0x80082C90 + .data start:0x8013A248 end:0x8013A2B0 + .sdata start:0x801D3758 end:0x801D3760 + .sbss start:0x801D4040 end:0x801D4060 + .sdata2 start:0x801D5780 end:0x801D5810 + +game/board/mushroom.c: + .text start:0x80082C90 end:0x80083EDC + .sdata start:0x801D3760 end:0x801D3770 + .sbss start:0x801D4060 end:0x801D4070 + .sdata2 start:0x801D5810 end:0x801D5898 + +game/board/star.c: + .text start:0x80083EDC end:0x80085CC8 + .rodata start:0x8011E040 end:0x8011E0B0 + .data start:0x8013A2B0 end:0x8013A368 + .bss start:0x801A4AD0 end:0x801A4AE0 + .sdata start:0x801D3770 end:0x801D3778 + .sbss start:0x801D4070 end:0x801D4088 + .sdata2 start:0x801D5898 end:0x801D5938 + +game/board/roll.c: + .text start:0x80085CC8 end:0x80088368 + .rodata start:0x8011E0B0 end:0x8011E118 + .data start:0x8013A368 end:0x8013A408 + .bss start:0x801A4AE0 end:0x801A4AF0 + .sdata start:0x801D3778 end:0x801D3790 + .sbss start:0x801D4088 end:0x801D40A8 + .sdata2 start:0x801D5938 end:0x801D59E0 + +game/board/ui.c: + .text start:0x80088368 end:0x8008DF68 + .rodata start:0x8011E118 end:0x8011E200 + .data start:0x8013A408 end:0x8013A608 + .bss start:0x801A4AF0 end:0x801A4B80 + .sdata start:0x801D3790 end:0x801D3798 + .sbss start:0x801D40A8 end:0x801D40E0 + .sdata2 start:0x801D59E0 end:0x801D5AA0 + +game/board/block.c: + .text start:0x8008DF68 end:0x8008EE28 + .rodata start:0x8011E200 end:0x8011E220 + .data start:0x8013A608 end:0x8013A620 + .bss start:0x801A4B80 end:0x801A4BA8 + .sdata start:0x801D3798 end:0x801D37A0 + .sbss start:0x801D40E0 end:0x801D40F8 + .sdata2 start:0x801D5AA0 end:0x801D5AF8 + +game/board/item.c: + .text start:0x8008EE28 end:0x800975AC + .rodata start:0x8011E220 end:0x8011E238 + .data start:0x8013A620 end:0x8013AA10 + .bss start:0x801A4BA8 end:0x801A4BE8 + .sdata start:0x801D37A0 end:0x801D37B0 + .sbss start:0x801D40F8 end:0x801D4138 + .sdata2 start:0x801D5AF8 end:0x801D5D30 + +game/board/bowser.c: + .text start:0x800975AC end:0x8009B4D4 + .rodata start:0x8011E238 end:0x8011E300 + .data start:0x8013AA10 end:0x8013AA60 + .bss start:0x801A4BE8 end:0x801A4C30 + .sdata start:0x801D37B0 end:0x801D37C8 + .sbss start:0x801D4138 end:0x801D4178 + .sdata2 start:0x801D5D30 end:0x801D5DE0 + +game/board/battle.c: + .text start:0x8009B4D4 end:0x8009D148 + .rodata start:0x8011E300 end:0x8011E380 + .data start:0x8013AA60 end:0x8013AB10 + .bss start:0x801A4C30 end:0x801A4C40 + .sdata start:0x801D37C8 end:0x801D37D0 + .sbss start:0x801D4178 end:0x801D41A0 + .sdata2 start:0x801D5DE0 end:0x801D5E88 + +game/board/fortune.c: + .text start:0x8009D148 end:0x8009DFD0 + .rodata start:0x8011E380 end:0x8011E3A8 + .data start:0x8013AB10 end:0x8013AB28 + .bss start:0x801A4C40 end:0x801A4C58 + .sdata start:0x801D37D0 end:0x801D37D8 + .sbss start:0x801D41A0 end:0x801D41B0 + .sdata2 start:0x801D5E88 end:0x801D5E98 + +game/board/boo.c: + .text start:0x8009DFD0 end:0x800A1A34 + .data start:0x8013AB28 end:0x8013AD00 + .sdata start:0x801D37D8 end:0x801D37E8 + .sbss start:0x801D41B0 end:0x801D41E8 + .sdata2 start:0x801D5E98 end:0x801D5FA8 + +game/board/mg_setup.c: + .text start:0x800A1A34 end:0x800A4F6C + .rodata start:0x8011E3A8 end:0x8011E3D0 + .data start:0x8013AD00 end:0x8013AE38 + .bss start:0x801A4C58 end:0x801A4CC8 + .sdata start:0x801D37E8 end:0x801D37F0 + .sbss start:0x801D41E8 end:0x801D4218 + .sdata2 start:0x801D5FA8 end:0x801D6080 + +game/board/boo_house.c: + .text start:0x800A4F6C end:0x800A6EE4 + .data start:0x8013AE38 end:0x8013AF70 + .bss start:0x801A4CC8 end:0x801A4CD8 + .sdata start:0x801D37F0 end:0x801D3840 + .sbss start:0x801D4218 end:0x801D4230 + .sdata2 start:0x801D6080 end:0x801D60C8 + +game/board/start.c: + .text start:0x800A6EE4 end:0x800A9708 + .rodata start:0x8011E3D0 end:0x8011E3F0 + .data start:0x8013AF70 end:0x8013B0D8 + .bss start:0x801A4CD8 end:0x801A4CF0 + .sdata start:0x801D3840 end:0x801D3850 + .sbss start:0x801D4230 end:0x801D4240 + .sdata2 start:0x801D60C8 end:0x801D6198 + +game/board/last5.c: + .text start:0x800A9708 end:0x800ADB84 + .rodata start:0x8011E3F0 end:0x8011E430 + .data start:0x8013B0D8 end:0x8013B3F0 + .bss start:0x801A4CF0 end:0x801A4D38 + .sdata start:0x801D3850 end:0x801D38A8 + .sbss start:0x801D4240 end:0x801D4260 + .sdata2 start:0x801D6198 end:0x801D6298 + +game/board/pause.c: + .text start:0x800ADB84 end:0x800B1974 + .data start:0x8013B3F0 end:0x8013B518 + .bss start:0x801A4D38 end:0x801A4D68 + .sdata start:0x801D38A8 end:0x801D38B8 + .sbss start:0x801D4260 end:0x801D4280 + .sdata2 start:0x801D6298 end:0x801D6350 + +game/board/com_path.c: + .text start:0x800B1974 end:0x800B3ED8 + .bss start:0x801A4D68 end:0x801A52E8 + .sbss start:0x801D4280 end:0x801D4288 + +game/board/tutorial.c: + .text start:0x800B3ED8 end:0x800B42F4 + .data start:0x8013B518 end:0x8013B560 + .bss start:0x801A52E8 end:0x801A5300 + .sbss start:0x801D4288 end:0x801D42B0 + +dolphin/os/__start.c: + .init start:0x80003100 end:0x80003354 + +dolphin/PPCArch.c: + .text start:0x800B42F4 end:0x800B439C + +dolphin/os/OS.c: + .text start:0x800B439C end:0x800B4CF8 + .data start:0x8013B560 end:0x8013B720 + .bss start:0x801A5300 end:0x801A5350 + .sbss start:0x801D42B0 end:0x801D42E0 + +dolphin/os/OSAlarm.c: + .text start:0x800B4CF8 end:0x800B53A4 + .sbss start:0x801D42E0 end:0x801D42E8 + +dolphin/os/OSAlloc.c: + .text start:0x800B53A4 end:0x800B5D9C + .data start:0x8013B720 end:0x8013BAB8 + .sdata start:0x801D38B8 end:0x801D38C0 + .sbss start:0x801D42E8 end:0x801D42F8 + +dolphin/os/OSArena.c: + .text start:0x800B5D9C end:0x800B5DBC + .sdata start:0x801D38C0 end:0x801D38C8 + .sbss start:0x801D42F8 end:0x801D4300 + +dolphin/os/OSAudioSystem.c: + .text start:0x800B5DBC end:0x800B6050 + .data start:0x8013BAB8 end:0x8013BB38 + +dolphin/os/OSCache.c: + .text start:0x800B6050 end:0x800B66E8 + .data start:0x8013BB38 end:0x8013BD68 + +dolphin/os/OSContext.c: + .text start:0x800B66E8 end:0x800B6F48 + .data start:0x8013BD68 end:0x8013BF40 + +dolphin/os/OSError.c: + .text start:0x800B6F48 end:0x800B71E4 + .data start:0x8013BF40 end:0x8013C260 + .bss start:0x801A5350 end:0x801A5390 + .sdata start:0x801D38C8 end:0x801D38D0 + +dolphin/os/OSFont.c: + .text start:0x800B71E4 end:0x800B723C + .sdata start:0x801D38D0 end:0x801D38D8 + +dolphin/os/OSInterrupt.c: + .text start:0x800B723C end:0x800B7AA8 + .data start:0x8013C260 end:0x8013C290 + .sbss start:0x801D4300 end:0x801D4318 + +dolphin/os/OSLink.c: + .text start:0x800B7AA8 end:0x800B822C + .data start:0x8013C290 end:0x8013C2E0 + +dolphin/os/OSMessage.c: + .text start:0x800B822C end:0x800B828C + +dolphin/os/OSMemory.c: + .text start:0x800B828C end:0x800B8584 + .data start:0x8013C2E0 end:0x8013C2F0 + +dolphin/os/OSMutex.c: + .text start:0x800B8584 end:0x800B85F4 + +dolphin/os/OSReboot.c: + .text start:0x800B85F4 end:0x800B8800 + .bss start:0x801A53A0 end:0x801A53C0 + .sbss start:0x801D4318 end:0x801D4328 + +dolphin/os/OSReset.c: + .text start:0x800B8800 end:0x800B8BE4 + .sbss start:0x801D4328 end:0x801D4330 + +dolphin/os/OSResetSW.c: + .text start:0x800B8BE4 end:0x800B8F70 + .sbss start:0x801D4330 end:0x801D4350 + +dolphin/os/OSRtc.c: + .text start:0x800B8F70 end:0x800B999C + .bss start:0x801A53C0 end:0x801A5418 + +dolphin/os/OSStopwatch.c: + .text start:0x800B999C end:0x800B9D0C + .data start:0x8013C2F0 end:0x8013C368 + +dolphin/os/OSSync.c: + .text start:0x800B9D0C end:0x800B9D90 + +dolphin/os/OSThread.c: + .text start:0x800B9D90 end:0x800BAE5C + .bss start:0x801A5418 end:0x801A5E00 + .sbss start:0x801D4350 end:0x801D4360 + +dolphin/os/OSTime.c: + .text start:0x800BAE5C end:0x800BB280 + .data start:0x8013C368 end:0x8013C3C8 + +dolphin/os/__ppc_eabi_init.c: + .init start:0x80003354 end:0x800033A8 + .text start:0x800BB280 end:0x800BB314 + +dolphin/db.c: + .text start:0x800BB314 end:0x800BB400 + .data start:0x8013C3C8 end:0x8013C3E0 + .sbss start:0x801D4360 end:0x801D4368 + +dolphin/mtx/mtx.c: + .text start:0x800BB400 end:0x800BBCB0 + .sdata start:0x801D38D8 end:0x801D38E0 + .sdata2 start:0x801D6350 end:0x801D6368 + +dolphin/mtx/mtxvec.c: + .text start:0x800BBCB0 end:0x800BBDE4 + +dolphin/mtx/mtx44.c: + .text start:0x800BBDE4 end:0x800BBF4C + .sdata2 start:0x801D6368 end:0x801D6380 + +dolphin/mtx/vec.c: + .text start:0x800BBF4C end:0x800BC2C4 + .sdata2 start:0x801D6380 end:0x801D6390 + +dolphin/mtx/quat.c: + .text start:0x800BC2C4 end:0x800BC884 + .rodata start:0x8011E430 end:0x8011E440 + .sdata2 start:0x801D6390 end:0x801D63B8 + +dolphin/mtx/psmtx.c: + .text start:0x800BC884 end:0x800BC9E8 + +dolphin/dvd/dvdlow.c: + .text start:0x800BC9E8 end:0x800BD83C + .bss start:0x801A5E00 end:0x801A5EE0 + .sdata start:0x801D38E0 end:0x801D38E8 + .sbss start:0x801D4368 end:0x801D43B0 + +dolphin/dvd/dvdfs.c: + .text start:0x800BD83C end:0x800BE118 + .data start:0x8013C3E0 end:0x8013C548 + .sdata start:0x801D38E8 end:0x801D38F0 + .sbss start:0x801D43B0 end:0x801D43D0 + +dolphin/dvd/dvd.c: + .text start:0x800BE118 end:0x800C059C + .data start:0x8013C548 end:0x8013C660 + .bss start:0x801A5EE0 end:0x801A5FB8 + .sdata start:0x801D38F0 end:0x801D38F8 + .sbss start:0x801D43D0 end:0x801D4418 + +dolphin/dvd/dvdqueue.c: + .text start:0x800C059C end:0x800C0794 + .bss start:0x801A5FB8 end:0x801A5FD8 + +dolphin/dvd/dvderror.c: + .text start:0x800C0794 end:0x800C092C + .data start:0x8013C660 end:0x8013C6A8 + +dolphin/dvd/fstload.c: + .text start:0x800C092C end:0x800C0B6C + .data start:0x8013C6A8 end:0x8013C718 + .bss start:0x801A5FD8 end:0x801A6048 + .sdata start:0x801D38F8 end:0x801D3908 + .sbss start:0x801D4418 end:0x801D4428 + +dolphin/vi.c: + .text start:0x800C0B6C end:0x800C2980 + .data start:0x8013C718 end:0x8013C9E0 + .bss start:0x801A6048 end:0x801A6190 + .sbss start:0x801D4428 end:0x801D4478 + +dolphin/demo/DEMOFont.c: + .data start:0x8013C9E0 end:0x8013D5E0 + +dolphin/demo/DEMOInit.c: + .text start:0x800C2980 end:0x800C2988 + .sbss start:0x801D4478 end:0x801D4480 + +dolphin/demo/DEMOPuts.c: + .text start:0x800C2988 end:0x800C2F84 + .bss start:0x801A6190 end:0x801A61B0 + .sbss start:0x801D4480 end:0x801D4488 + .sdata2 start:0x801D63B8 end:0x801D63D8 + +dolphin/demo/DEMOStats.c: + .text start:0x800C2F84 end:0x800C3CDC + .data start:0x8013D5E0 end:0x8013D738 + .sdata start:0x801D3908 end:0x801D3910 + .sbss start:0x801D4488 end:0x801D44E8 + .sdata2 start:0x801D63D8 end:0x801D63E8 + +dolphin/pad/Padclamp.c: + .text start:0x800C3CDC end:0x800C3F14 + .sdata start:0x801D3910 end:0x801D3918 + +dolphin/pad/Pad.c: + .text start:0x800C3F14 end:0x800C59DC + .data start:0x8013D738 end:0x8013D748 + .bss start:0x801A61B0 end:0x801A6200 + .sdata start:0x801D3918 end:0x801D3938 + .sbss start:0x801D44E8 end:0x801D4510 + +dolphin/ai.c: + .text start:0x800C59DC end:0x800C62B8 + .sbss start:0x801D4510 end:0x801D4550 + +dolphin/ar/ar.c: + .text start:0x800C62B8 end:0x800C6F68 + .sbss start:0x801D4550 end:0x801D4570 + +dolphin/ar/arq.c: + .text start:0x800C6F68 end:0x800C72FC + .sbss start:0x801D4570 end:0x801D4598 + +dolphin/dsp/dsp.c: + .text start:0x800C72FC end:0x800C7508 + .data start:0x8013D748 end:0x8013D780 + .sbss start:0x801D4598 end:0x801D45A0 + +dolphin/dsp/dsp_debug.c: + .text start:0x800C7508 end:0x800C7558 + +dolphin/dsp/dsp_task.c: + .text start:0x800C7558 end:0x800C7DDC + .data start:0x8013D780 end:0x8013D8C0 + .sbss start:0x801D45A0 end:0x801D45B8 + +dolphin/gx/GXInit.c: + .text start:0x800C7DDC end:0x800C8ECC + .bss start:0x801A6200 end:0x801A6778 + .sdata start:0x801D3938 end:0x801D3940 + .sbss start:0x801D45B8 end:0x801D45C8 + .sdata2 start:0x801D63E8 end:0x801D6408 + +dolphin/gx/GXFifo.c: + .text start:0x800C8ECC end:0x800C96F4 + .sbss start:0x801D45C8 end:0x801D45E8 + +dolphin/gx/GXAttr.c: + .text start:0x800C96F4 end:0x800CA51C + .data start:0x8013D8C0 end:0x8013D9E0 + .sdata start:0x801D3940 end:0x801D3950 + +dolphin/gx/GXMisc.c: + .text start:0x800CA51C end:0x800CAC40 + .sbss start:0x801D45E8 end:0x801D4600 + +dolphin/gx/GXGeometry.c: + .text start:0x800CAC40 end:0x800CB020 + +dolphin/gx/GXFrameBuf.c: + .text start:0x800CB020 end:0x800CBBD4 + .data start:0x8013D9E0 end:0x8013DB10 + .sdata2 start:0x801D6408 end:0x801D6410 + +dolphin/gx/GXLight.c: + .text start:0x800CBBD4 end:0x800CC5C0 + .data start:0x8013DB10 end:0x8013DB30 + .sdata2 start:0x801D6410 end:0x801D6460 + +dolphin/gx/GXTexture.c: + .text start:0x800CC5C0 end:0x800CD618 + .data start:0x8013DB30 end:0x8013DD58 + .sdata start:0x801D3950 end:0x801D3990 + .sdata2 start:0x801D6460 end:0x801D6488 + +dolphin/gx/GXBump.c: + .text start:0x800CD618 end:0x800CDE94 + .sdata2 start:0x801D6488 end:0x801D64A0 + +dolphin/gx/GXTev.c: + .text start:0x800CDE94 end:0x800CE8CC + .data start:0x8013DD58 end:0x8013DD80 + +dolphin/gx/GXPixel.c: + .text start:0x800CE8CC end:0x800CF014 + .data start:0x8013DD80 end:0x8013DDA0 + .sdata2 start:0x801D64A0 end:0x801D64D0 + +dolphin/gx/GXStubs.c: + .text start:0x800CF014 end:0x800CF018 + +dolphin/gx/GXDisplayList.c: + .text start:0x800CF018 end:0x800CF224 + .bss start:0x801A6778 end:0x801A6C98 + .sbss start:0x801D4600 end:0x801D4608 + +dolphin/gx/GXTransform.c: + .text start:0x800CF224 end:0x800CF9D8 + .sdata2 start:0x801D64D0 end:0x801D64F0 + +dolphin/gx/GXPerf.c: + .text start:0x800CF9D8 end:0x800D09A4 + .data start:0x8013DDA0 end:0x8013DEE8 + +dolphin/card/CARDBios.c: + .text start:0x800D09A4 end:0x800D1CC4 + .data start:0x8013DEE8 end:0x8013DF00 + .bss start:0x801A6C98 end:0x801A6ED8 + +dolphin/card/CARDUnlock.c: + .text start:0x800D1CC4 end:0x800D2F24 + .data start:0x8013DF00 end:0x8013E060 + .sdata start:0x801D3990 end:0x801D3998 + +dolphin/card/CARDRdwr.c: + .text start:0x800D2F24 end:0x800D31A4 + +dolphin/card/CARDBlock.c: + .text start:0x800D31A4 end:0x800D35A8 + +dolphin/card/CARDDir.c: + .text start:0x800D35A8 end:0x800D380C + +dolphin/card/CARDCheck.c: + .text start:0x800D380C end:0x800D4774 + +dolphin/card/CARDMount.c: + .text start:0x800D4774 end:0x800D5234 + .data start:0x8013E060 end:0x8013E0A0 + +dolphin/card/CARDFormat.c: + .text start:0x800D5234 end:0x800D5A24 + +dolphin/card/CARDOpen.c: + .text start:0x800D5A24 end:0x800D5E78 + +dolphin/card/CARDCreate.c: + .text start:0x800D5E78 end:0x800D6210 + +dolphin/card/CARDRead.c: + .text start:0x800D6210 end:0x800D6688 + +dolphin/card/CARDWrite.c: + .text start:0x800D6688 end:0x800D6A04 + +dolphin/card/CARDDelete.c: + .text start:0x800D6A04 end:0x800D6C00 + +dolphin/card/CARDStat.c: + .text start:0x800D6C00 end:0x800D70E0 + +dolphin/card/CARDNet.c: + .text start:0x800D70E0 end:0x800D71A4 + .sdata start:0x801D3998 end:0x801D39A0 + +dolphin/exi/EXIBios.c: + .text start:0x800D71A4 end:0x800D8A78 + .bss start:0x801A6ED8 end:0x801A6F98 + +dolphin/exi/EXIUart.c: + .text start:0x800D8A78 end:0x800D8CE8 + .sbss start:0x801D4608 end:0x801D4618 + +dolphin/si/SIBios.c: + .text start:0x800D8CE8 end:0x800DA3C8 + .data start:0x8013E0A0 end:0x8013E170 + .bss start:0x801A6F98 end:0x801A71A0 + .sbss start:0x801D4618 end:0x801D4628 + +dolphin/si/SISamplingRate.c: + .text start:0x800DA3C8 end:0x800DA4D0 + .data start:0x8013E170 end:0x8013E208 + .sbss start:0x801D4628 end:0x801D4640 + +dolphin/thp/THPDec.c: + .text start:0x800DA4D0 end:0x800E1A10 + .rodata start:0x8011E440 end:0x8011E4D0 + .bss start:0x801A71A0 end:0x801A72D0 + .sbss start:0x801D4640 end:0x801D4758 + .sdata2 start:0x801D64F0 end:0x801D6510 + +dolphin/thp/THPAudio.c: + .text start:0x800E1A10 end:0x800E1F40 + +Runtime.PPCEABI.H/__va_arg.c: + .text start:0x800E1F40 end:0x800E2008 + +Runtime.PPCEABI.H/global_destructor_chain.c: + .text start:0x800E2008 end:0x800E2068 + .dtors start:0x8011DCE8 end:0x8011DCEC + .sbss start:0x801D4758 end:0x801D4760 + +Runtime.PPCEABI.H/__mem.c: + .init start:0x800033A8 end:0x800034E0 + +Runtime.PPCEABI.H/New.cp: + extab start:0x80005620 end:0x80005648 + extabindex start:0x80005700 end:0x8000570C + .text start:0x800E2068 end:0x800E20B4 + +Runtime.PPCEABI.H/NewMore.cp: + extab start:0x80005648 end:0x80005650 + extabindex start:0x8000570C end:0x80005718 + .text start:0x800E20B4 end:0x800E2108 + .rodata start:0x8011E4D0 end:0x8011E4F0 + .data start:0x8013E208 end:0x8013E218 + .sdata start:0x801D39A0 end:0x801D39A8 + +Runtime.PPCEABI.H/NMWException.cp: + extab start:0x80005650 end:0x80005670 + extabindex start:0x80005718 end:0x80005748 + .text start:0x800E2108 end:0x800E23CC + .sdata start:0x801D39A8 end:0x801D39B0 + +Runtime.PPCEABI.H/runtime.c: + .text start:0x800E23CC end:0x800E2AA8 + .rodata start:0x8011E4F0 end:0x8011E508 + +Runtime.PPCEABI.H/__init_cpp_exceptions.cpp: + .text start:0x800E2AA8 end:0x800E2B24 + .ctors start:0x8011DCC0 end:0x8011DCC4 + .dtors start:0x8011DCE0 end:0x8011DCE8 + .sdata start:0x801D39B0 end:0x801D39B8 + +Runtime.PPCEABI.H/Gecko_ExceptionPPC.cp: + extab start:0x80005670 end:0x800056E4 + extabindex start:0x80005748 end:0x8000579C + .text start:0x800E2B24 end:0x800E3F5C + .rodata start:0x8011E508 end:0x8011E5A0 + .data start:0x8013E218 end:0x8013E300 + .bss start:0x801A72D0 end:0x801A72E0 + .sdata start:0x801D39B8 end:0x801D39C8 + +Runtime.PPCEABI.H/GCN_mem_alloc.c: + .text start:0x800E3F5C end:0x800E4014 + .rodata start:0x8011E5A0 end:0x8011E618 + +MSL_C.PPCEABI.bare.H/abort_exit.c: + .text start:0x800E4014 end:0x800E4168 + .bss start:0x801A72E0 end:0x801A73E0 + .sbss start:0x801D4760 end:0x801D4770 + +MSL_C.PPCEABI.bare.H/alloc.c: + .text start:0x800E4168 end:0x800E46D0 + .rodata start:0x8011E618 end:0x8011E630 + .bss start:0x801A73E0 end:0x801A7418 + .sbss start:0x801D4770 end:0x801D4778 + +MSL_C.PPCEABI.bare.H/errno.c: + .sbss start:0x801D4778 end:0x801D4780 + +MSL_C.PPCEABI.bare.H/ansi_files.c: + .text start:0x800E46D0 end:0x800E47D8 + .data start:0x8013E300 end:0x8013E440 + .bss start:0x801A7418 end:0x801A7718 + +MSL_C.PPCEABI.bare.H/ansi_fp.c: + .text start:0x800E47D8 end:0x800E53F0 + .rodata start:0x8011E630 end:0x8011E710 + .data start:0x8013E440 end:0x8013E568 + .sdata2 start:0x801D6510 end:0x801D6518 + +MSL_C.PPCEABI.bare.H/arith.c: + .text start:0x800E53F0 end:0x800E5400 + +MSL_C.PPCEABI.bare.H/buffer_io.c: + .text start:0x800E5400 end:0x800E54F8 + +MSL_C.PPCEABI.bare.H/ctype.c: + .text start:0x800E54F8 end:0x800E5534 + .data start:0x8013E568 end:0x8013E768 + +MSL_C.PPCEABI.bare.H/direct_io.c: + .text start:0x800E5534 end:0x800E5860 + +MSL_C.PPCEABI.bare.H/file_io.c: + .text start:0x800E5860 end:0x800E5A58 + +MSL_C.PPCEABI.bare.H/FILE_POS.c: + .text start:0x800E5A58 end:0x800E5D24 + +MSL_C.PPCEABI.bare.H/mbstring.c: + .text start:0x800E5D24 end:0x800E5E68 + .sdata2 start:0x801D6518 end:0x801D6520 + +MSL_C.PPCEABI.bare.H/mem.c: + .text start:0x800E5E68 end:0x800E5FD8 + +MSL_C.PPCEABI.bare.H/mem_funcs.c: + .text start:0x800E5FD8 end:0x800E62B8 + +MSL_C.PPCEABI.bare.H/misc_io.c: + .text start:0x800E62B8 end:0x800E62C8 + +MSL_C.PPCEABI.bare.H/printf.c: + .text start:0x800E62C8 end:0x800E8364 + .rodata start:0x8011E710 end:0x8011E738 + .data start:0x8013E768 end:0x8013E998 + .sdata start:0x801D39C8 end:0x801D39D0 + .sdata2 start:0x801D6520 end:0x801D6528 + +MSL_C.PPCEABI.bare.H/float.c: + .sdata start:0x801D39D0 end:0x801D39D8 + +MSL_C.PPCEABI.bare.H/signal.c: + .text start:0x800E8364 end:0x800E8414 + .bss start:0x801A7718 end:0x801A7730 + +MSL_C.PPCEABI.bare.H/string.c: + .text start:0x800E8414 end:0x800E86C4 + +MSL_C.PPCEABI.bare.H/uart_console_io.c: + .text start:0x800E86C4 end:0x800E8790 + .sbss start:0x801D4780 end:0x801D4788 + +MSL_C.PPCEABI.bare.H/wchar_io.c: + .text start:0x800E8790 end:0x800E8818 + +MSL_C.PPCEABI.bare.H/e_acos.c: + .text start:0x800E8818 end:0x800E8B28 + .sdata2 start:0x801D6528 end:0x801D65B8 + +MSL_C.PPCEABI.bare.H/e_asin.c: + .text start:0x800E8B28 end:0x800E8D8C + .sdata2 start:0x801D65B8 end:0x801D6650 + +MSL_C.PPCEABI.bare.H/e_atan2.c: + .text start:0x800E8D8C end:0x800E901C + .sdata2 start:0x801D6650 end:0x801D66A8 + +MSL_C.PPCEABI.bare.H/e_fmod.c: + .text start:0x800E901C end:0x800E9358 + .rodata start:0x8011E738 end:0x8011E748 + +MSL_C.PPCEABI.bare.H/e_pow.c: + .text start:0x800E9358 end:0x800E9BE4 + .rodata start:0x8011E748 end:0x8011E778 + .sdata2 start:0x801D66A8 end:0x801D67B8 + +MSL_C.PPCEABI.bare.H/e_rem_pio2.c: + .text start:0x800E9BE4 end:0x800E9F84 + .rodata start:0x8011E778 end:0x8011E900 + .sdata2 start:0x801D67B8 end:0x801D6810 + +MSL_C.PPCEABI.bare.H/k_cos.c: + .text start:0x800E9F84 end:0x800EA078 + .sdata2 start:0x801D6810 end:0x801D6858 + +MSL_C.PPCEABI.bare.H/k_rem_pio2.c: + .text start:0x800EA078 end:0x800EAECC + .rodata start:0x8011E900 end:0x8011E950 + .sdata2 start:0x801D6858 end:0x801D6898 + +MSL_C.PPCEABI.bare.H/k_sin.c: + .text start:0x800EAECC end:0x800EAF6C + .sdata2 start:0x801D6898 end:0x801D68D0 + +MSL_C.PPCEABI.bare.H/k_tan.c: + .text start:0x800EAF6C end:0x800EB180 + .rodata start:0x8011E950 end:0x8011E9B8 + .sdata2 start:0x801D68D0 end:0x801D6908 + +MSL_C.PPCEABI.bare.H/s_atan.c: + .text start:0x800EB180 end:0x800EB380 + .rodata start:0x8011E9B8 end:0x8011EA50 + .sdata2 start:0x801D6908 end:0x801D6930 + +MSL_C.PPCEABI.bare.H/s_copysign.c: + .text start:0x800EB380 end:0x800EB3A8 + +MSL_C.PPCEABI.bare.H/s_cos.c: + .text start:0x800EB3A8 end:0x800EB47C + .sdata2 start:0x801D6930 end:0x801D6938 + +MSL_C.PPCEABI.bare.H/s_floor.c: + .text start:0x800EB47C end:0x800EB5C4 + .sdata2 start:0x801D6938 end:0x801D6948 + +MSL_C.PPCEABI.bare.H/s_frexp.c: + .text start:0x800EB5C4 end:0x800EB650 + .sdata2 start:0x801D6948 end:0x801D6950 + +MSL_C.PPCEABI.bare.H/s_ldexp.c: + .text start:0x800EB650 end:0x800EB814 + .sdata2 start:0x801D6950 end:0x801D6978 + +MSL_C.PPCEABI.bare.H/s_modf.c: + .text start:0x800EB814 end:0x800EB910 + +MSL_C.PPCEABI.bare.H/s_sin.c: + .text start:0x800EB910 end:0x800EB9E8 + .sdata2 start:0x801D6978 end:0x801D6980 + +MSL_C.PPCEABI.bare.H/s_tan.c: + .text start:0x800EB9E8 end:0x800EBA60 + .sdata2 start:0x801D6980 end:0x801D6988 + +MSL_C.PPCEABI.bare.H/w_acos.c: + .text start:0x800EBA60 end:0x800EBA80 + +MSL_C.PPCEABI.bare.H/w_asin.c: + .text start:0x800EBA80 end:0x800EBAA0 + +MSL_C.PPCEABI.bare.H/w_atan2.c: + .text start:0x800EBAA0 end:0x800EBAC0 + +MSL_C.PPCEABI.bare.H/w_fmod.c: + .text start:0x800EBAC0 end:0x800EBAE0 + +MSL_C.PPCEABI.bare.H/w_pow.c: + .text start:0x800EBAE0 end:0x800EBB00 + +MSL_C.PPCEABI.bare.H/math_ppc.c: + .text start:0x800EBB00 end:0x800EBBB4 + +TRK_MINNOW_DOLPHIN/mainloop.c: + .text start:0x800EBBB4 end:0x800EBCAC + +TRK_MINNOW_DOLPHIN/nubevent.c: + .text start:0x800EBCAC end:0x800EBED4 + .bss start:0x801A7730 end:0x801A7758 + +TRK_MINNOW_DOLPHIN/nubinit.c: + .text start:0x800EBED4 end:0x800EC054 + .rodata start:0x8011EA50 end:0x8011EA70 + .bss start:0x801A7758 end:0x801A7760 + +TRK_MINNOW_DOLPHIN/msg.c: + .text start:0x800EC054 end:0x800EC230 + +TRK_MINNOW_DOLPHIN/msgbuf.c: + .text start:0x800EC230 end:0x800ECC5C + .rodata start:0x8011EA70 end:0x8011EA90 + .bss start:0x801A7760 end:0x801A9110 + +TRK_MINNOW_DOLPHIN/serpoll.c: + .text start:0x800ECC5C end:0x800ED028 + .bss start:0x801A9110 end:0x801A9128 + +TRK_MINNOW_DOLPHIN/usrput.c: + .text start:0x800ED028 end:0x800ED0B4 + +TRK_MINNOW_DOLPHIN/dispatch.c: + .text start:0x800ED0B4 end:0x800ED150 + .data start:0x8013E998 end:0x8013EA20 + .bss start:0x801A9128 end:0x801A9130 + +TRK_MINNOW_DOLPHIN/msghndlr.c: + .text start:0x800ED150 end:0x800EF9B0 + .data start:0x8013EA20 end:0x8013EA58 + .bss start:0x801A9130 end:0x801A9138 + +TRK_MINNOW_DOLPHIN/support.c: + .text start:0x800EF9B0 end:0x800F0270 + +TRK_MINNOW_DOLPHIN/mutex_TRK.c: + .text start:0x800F0270 end:0x800F0288 + +TRK_MINNOW_DOLPHIN/notify.c: + .text start:0x800F0288 end:0x800F0360 + +TRK_MINNOW_DOLPHIN/flush_cache.c: + .text start:0x800F0360 end:0x800F0398 + +TRK_MINNOW_DOLPHIN/mem_TRK.c: + .init start:0x800034E0 end:0x80003534 + .text start:0x800F0398 end:0x800F0454 + +TRK_MINNOW_DOLPHIN/targimpl.c: + .text start:0x800F0454 end:0x800F1CF0 + .rodata start:0x8011EA90 end:0x8011EB18 + .data start:0x8013EA58 end:0x8013EA88 + .bss start:0x801A9138 end:0x801A96B8 + +TRK_MINNOW_DOLPHIN/targsupp.c: + .text start:0x800F1CF0 end:0x800F1D10 + +TRK_MINNOW_DOLPHIN/__exception.c: + .init start:0x80003534 end:0x80005468 + +TRK_MINNOW_DOLPHIN/dolphin_trk.c: + .init start:0x80005468 end:0x8000556C + .text start:0x800F1D10 end:0x800F1E50 + .data start:0x8013EA88 end:0x8013EAC8 + .bss start:0x801A96B8 end:0x801A96C0 + +TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c: + .text start:0x800F1E50 end:0x800F21C8 + +TRK_MINNOW_DOLPHIN/main_TRK.c: + .text start:0x800F21C8 end:0x800F220C + .bss start:0x801A96C0 end:0x801A96C8 + +TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c: + .text start:0x800F220C end:0x800F26B8 + .rodata start:0x8011EB18 end:0x8011EB60 + .data start:0x8013EAC8 end:0x8013EAE8 + .bss start:0x801A96C8 end:0x801AB8F0 + +TRK_MINNOW_DOLPHIN/targcont.c: + .text start:0x800F26B8 end:0x800F26EC + +TRK_MINNOW_DOLPHIN/target_options.c: + .text start:0x800F26EC end:0x800F2708 + .bss start:0x801AB8F0 end:0x801AB8F8 + +TRK_MINNOW_DOLPHIN/mslsupp.c: + .text start:0x800F2708 end:0x800F2880 + +musyx/runtime/seq.c: + .text start:0x800F2880 end:0x800F67F0 + .data start:0x8013EAE8 end:0x8013EB38 + .bss start:0x801AB8F8 end:0x801B9138 + .sbss start:0x801D4788 end:0x801D47A8 + .sdata2 start:0x801D6988 end:0x801D69A8 + +musyx/runtime/synth.c: + .text start:0x800F67F0 end:0x800F9B4C + .bss start:0x801B9138 end:0x801BA720 + .sbss start:0x801D47A8 end:0x801D47F0 + .sdata2 start:0x801D69A8 end:0x801D69E8 + +musyx/runtime/seq_api.c: + .text start:0x800F9B4C end:0x800F9DCC + +musyx/runtime/snd_synthapi.c: + .text start:0x800F9DCC end:0x800FA54C + +musyx/runtime/stream.c: + .text start:0x800FA54C end:0x800FE0B8 + .bss start:0x801BA720 end:0x801BC020 + .sbss start:0x801D47F0 end:0x801D47F8 + .sdata2 start:0x801D69E8 end:0x801D6A00 + +musyx/runtime/synthdata.c: + .text start:0x800FE0B8 end:0x800FFE48 + .bss start:0x801BC020 end:0x801C6658 + .sbss start:0x801D47F8 end:0x801D4840 + +musyx/runtime/synthmacros.c: + .text start:0x800FFE48 end:0x80104BA0 + .data start:0x8013EB38 end:0x8013EF80 + .bss start:0x801C6658 end:0x801C6678 + .sbss start:0x801D4840 end:0x801D4860 + .sdata2 start:0x801D6A00 end:0x801D6A28 + +musyx/runtime/synthvoice.c: + .text start:0x80104BA0 end:0x80106630 + .bss start:0x801C6678 end:0x801C7638 + .sbss start:0x801D4860 end:0x801D4878 + +musyx/runtime/synth_ac.c: + .text start:0x80106630 end:0x80106750 + .data start:0x8013EF80 end:0x8013F380 + .sdata2 start:0x801D6A28 end:0x801D6A40 + +musyx/runtime/synth_dbtab.c: + .data start:0x8013F380 end:0x8013FB08 + +musyx/runtime/synth_adsr.c: + .text start:0x80106750 end:0x80106F10 + .sdata2 start:0x801D6A40 end:0x801D6A68 + +musyx/runtime/synth_vsamples.c: + .text start:0x80106F10 end:0x80107698 + .bss start:0x801C7638 end:0x801C7F88 + +musyx/runtime/s_data.c: + .text start:0x80107698 end:0x801081F0 + .bss start:0x801C7F88 end:0x801C8588 + .sbss start:0x801D4878 end:0x801D4880 + +musyx/runtime/hw_dspctrl.c: + .text start:0x801081F0 end:0x8010B604 + .rodata start:0x8011EB60 end:0x8011EBB8 + .data start:0x8013FB08 end:0x8013FB20 + .bss start:0x801C8588 end:0x801C8C68 + .sbss start:0x801D4880 end:0x801D48C0 + +musyx/runtime/hw_volconv.c: + .text start:0x8010B604 end:0x8010BCF4 + .data start:0x8013FB20 end:0x8013FD48 + .sdata2 start:0x801D6A68 end:0x801D6AA0 + +musyx/runtime/snd3d.c: + .text start:0x8010BCF4 end:0x8010E0C4 + .bss start:0x801C8C68 end:0x801C9AB8 + .sbss start:0x801D48C0 end:0x801D48E0 + .sdata2 start:0x801D6AA0 end:0x801D6AF0 + +musyx/runtime/snd_init.c: + .text start:0x8010E0C4 end:0x8010E218 + +musyx/runtime/snd_math.c: + .text start:0x8010E218 end:0x8010E5D8 + .sdata2 start:0x801D6AF0 end:0x801D6B10 + +musyx/runtime/snd_midictrl.c: + .text start:0x8010E5D8 end:0x801102AC + .rodata start:0x8011EBB8 end:0x8011ECC8 + .data start:0x8013FD48 end:0x8013FDD8 + .bss start:0x801C9AB8 end:0x801D02B8 + +musyx/runtime/snd_service.c: + .text start:0x801102AC end:0x80110458 + .data start:0x8013FDD8 end:0x801405E0 + .sdata start:0x801D39D8 end:0x801D39E0 + +musyx/runtime/hardware.c: + .text start:0x80110458 end:0x8011145C + .rodata start:0x8011ECC8 end:0x8011EDC8 + .sdata start:0x801D39E0 end:0x801D39F0 + .sbss start:0x801D48E0 end:0x801D48F0 + .sdata2 start:0x801D6B10 end:0x801D6B28 + +musyx/runtime/dsp_import.c: + .data start:0x801405E0 end:0x80141FC0 + .sdata start:0x801D39F0 end:0x801D39F8 + +musyx/runtime/hw_aramdma.c: + .text start:0x8011145C end:0x801120D0 + .bss start:0x801D02B8 end:0x801D0BC0 + .sbss start:0x801D48F0 end:0x801D4910 + +musyx/runtime/hw_dolphin.c: + .text start:0x801120D0 end:0x801125C8 + .bss start:0x801D0BC0 end:0x801D2C20 + .sbss start:0x801D4910 end:0x801D4938 + +musyx/runtime/hw_memory.c: + .text start:0x801125C8 end:0x8011261C + +musyx/runtime/CheapReverb/creverb_fx.c: + .text start:0x8011261C end:0x801126D8 + +musyx/runtime/CheapReverb/creverb.c: + .text start:0x801126D8 end:0x80112F94 + .data start:0x80141FC0 end:0x80141FD0 + .sdata2 start:0x801D6B28 end:0x801D6B68 + +musyx/runtime/StdReverb/reverb_fx.c: + .text start:0x80112F94 end:0x80113054 + +musyx/runtime/StdReverb/reverb.c: + .text start:0x80113054 end:0x80113D98 + .data start:0x80141FD0 end:0x80141FF0 + .sdata2 start:0x801D6B68 end:0x801D6BB0 + +musyx/runtime/Delay/delay_fx.c: + .text start:0x80113D98 end:0x80114144 + +musyx/runtime/Chorus/chorus_fx.c: + .text start:0x80114144 end:0x801149AC + .data start:0x80141FF0 end:0x801427F0 + .sdata2 start:0x801D6BB0 end:0x801D6BB8 + +OdemuExi2/DebuggerDriver.c: + .text start:0x801149AC end:0x8011542C + .sdata start:0x801D39F8 end:0x801D39F9 + .sbss start:0x801D4938 end:0x801D494D + +amcstubs/AmcExi2Stubs.c: + .text start:0x8011542C end:0x8011545C + +odenotstub/odenotstub.c: + .text start:0x8011545C end:0x80115464 + +libhu/setvf.c: + .text start:0x80115464 end:0x80115474 + +libhu/subvf.c: + .text start:0x80115474 end:0x801154A8 + +msm/msmsys.c: + .text start:0x801154A8 end:0x801176C8 + .bss start:0x801D2C20 end:0x801D3120 + .sdata2 start:0x801D6BB8 end:0x801D6BC0 + +msm/msmmem.c: + .text start:0x801176C8 end:0x801178F8 + .bss start:0x801D3120 end:0x801D3150 + +msm/msmfio.c: + .text start:0x801178F8 end:0x801179E8 + .bss start:0x801D3150 end:0x801D3160 + +msm/msmmus.c: + .text start:0x801179E8 end:0x80118A80 + .bss start:0x801D3160 end:0x801D32D8 + +msm/msmse.c: + .text start:0x80118A80 end:0x8011A044 + .bss start:0x801D32D8 end:0x801D33C0 + .sdata2 start:0x801D6BC0 end:0x801D6BD8 + +msm/msmstream.c: + .text start:0x8011A044 end:0x8011CCC4 + .bss start:0x801D33C0 end:0x801D3420 + +game/kerent.c: + .text start:0x8011CCC4 end:0x8011DCA8 diff --git a/config/GMPE01_01/symbols.txt b/config/GMPE01_01/symbols.txt new file mode 100644 index 00000000..c85ba835 --- /dev/null +++ b/config/GMPE01_01/symbols.txt @@ -0,0 +1,7720 @@ +__check_pad3 = .init:0x80003100; // type:function size:0x40 scope:local +__start = .init:0x80003140; // type:function size:0x138 scope:weak +__init_registers = .init:0x80003278; // type:function size:0x1C scope:local +__init_data = .init:0x80003294; // type:function size:0xC0 scope:local +__init_hardware = .init:0x80003354; // type:function size:0x20 scope:global +__flush_cache = .init:0x80003374; // type:function size:0x34 scope:global +memset = .init:0x800033A8; // type:function size:0x30 scope:global +__fill_mem = .init:0x800033D8; // type:function size:0xB8 scope:global +memcpy = .init:0x80003490; // type:function size:0x50 scope:global +TRK_memset = .init:0x800034E0; // type:function size:0x30 +TRK_memcpy = .init:0x80003510; // type:function size:0x24 +gTRKInterruptVectorTable = .init:0x80003534; // type:label scope:global +lbl_8000387C = .init:0x8000387C; // type:label +lbl_800038E0 = .init:0x800038E0; // type:label +__TRK_reset = .init:0x80005468; // type:function size:0x104 +gTRKInterruptVectorTableEnd = .init:0x80005468; // type:label scope:global +_rom_copy_info = .init:0x8000556C; // type:object size:0x84 scope:global data:4byte +_bss_init_info = .init:0x800055F0; // type:object size:0x20 scope:global data:4byte +@etb_80005620 = extab:0x80005620; // type:object size:0x28 scope:local hidden +@etb_80005648 = extab:0x80005648; // type:object size:0x8 scope:local hidden +@etb_80005650 = extab:0x80005650; // type:object size:0x8 scope:local hidden +@etb_80005658 = extab:0x80005658; // type:object size:0x8 scope:local hidden +@etb_80005660 = extab:0x80005660; // type:object size:0x8 scope:local hidden +@etb_80005668 = extab:0x80005668; // type:object size:0x8 scope:local hidden +@etb_80005670 = extab:0x80005670; // type:object size:0x8 scope:local hidden +@etb_80005678 = extab:0x80005678; // type:object size:0x14 scope:local hidden +@etb_8000568C = extab:0x8000568C; // type:object size:0x2C scope:local hidden +@etb_800056B8 = extab:0x800056B8; // type:object size:0x8 scope:local hidden +@etb_800056C0 = extab:0x800056C0; // type:object size:0x14 scope:local hidden +@etb_800056D4 = extab:0x800056D4; // type:object size:0x8 scope:local hidden +@etb_800056DC = extab:0x800056DC; // type:object size:0x8 scope:local hidden +@eti_80005700 = extabindex:0x80005700; // type:object size:0xC scope:local hidden +@eti_8000570C = extabindex:0x8000570C; // type:object size:0xC scope:local hidden +@eti_80005718 = extabindex:0x80005718; // type:object size:0xC scope:local hidden +@eti_80005724 = extabindex:0x80005724; // type:object size:0xC scope:local hidden +@eti_80005730 = extabindex:0x80005730; // type:object size:0xC scope:local hidden +@eti_8000573C = extabindex:0x8000573C; // type:object size:0xC scope:local hidden +@eti_80005748 = extabindex:0x80005748; // type:object size:0xC scope:local hidden +@eti_80005754 = extabindex:0x80005754; // type:object size:0xC scope:local hidden +@eti_80005760 = extabindex:0x80005760; // type:object size:0xC scope:local hidden +@eti_8000576C = extabindex:0x8000576C; // type:object size:0xC scope:local hidden +@eti_80005778 = extabindex:0x80005778; // type:object size:0xC scope:local hidden +@eti_80005784 = extabindex:0x80005784; // type:object size:0xC scope:local hidden +@eti_80005790 = extabindex:0x80005790; // type:object size:0xC scope:local hidden +_eti_init_info = extabindex:0x8000579C; // type:object size:0x20 scope:global +main = .text:0x800057C0; // type:function size:0x22C scope:global +HuSysVWaitSet = .text:0x800059EC; // type:function size:0x38 +HuSysVWaitGet = .text:0x80005A24; // type:function size:0xC +rand8 = .text:0x80005A30; // type:function size:0x2C +HuPadInit = .text:0x80005A5C; // type:function size:0xF0 +HuPadRead = .text:0x80005B4C; // type:function size:0x168 +PadReadVSync = .text:0x80005CB4; // type:function size:0x440 scope:local +PadADConv = .text:0x800060F4; // type:function size:0x234 scope:local +HuPadRumbleSet = .text:0x80006328; // type:function size:0x54 +HuPadRumbleStop = .text:0x8000637C; // type:function size:0x70 +HuPadRumbleAllStop = .text:0x800063EC; // type:function size:0x70 +HuPadStatGet = .text:0x8000645C; // type:function size:0x14 +HuPadRumbleGet = .text:0x80006470; // type:function size:0x8 +HuDVDReadAsyncCallBack = .text:0x80006478; // type:function size:0xC scope:local +HuDvdDataRead = .text:0x80006484; // type:function size:0x16C +HuDvdDataReadMulti = .text:0x800065F0; // type:function size:0x1B4 +HuDvdDataReadDirect = .text:0x800067A4; // type:function size:0x170 +HuDvdDataFastRead = .text:0x80006914; // type:function size:0x16C +HuDvdDataFastReadNum = .text:0x80006A80; // type:function size:0x174 +HuDvdDataFastReadAsync = .text:0x80006BF4; // type:function size:0x150 +HuDvdDataClose = .text:0x80006D44; // type:function size:0x38 +HuDvdErrorWatch = .text:0x80006D7C; // type:function size:0xBC +HuDataInit = .text:0x80006E38; // type:function size:0xD0 +HuDataReadChk = .text:0x80006F08; // type:function size:0x74 +HuDataGetStatus = .text:0x80006F7C; // type:function size:0x64 +HuDataGetDirPtr = .text:0x80006FE0; // type:function size:0xB8 +HuDataDirRead = .text:0x80007098; // type:function size:0x224 +HuDataDirSet = .text:0x800072BC; // type:function size:0x188 +HuDataDirReadAsyncCallBack = .text:0x80007444; // type:function size:0xC8 +HuDataDirReadAsync = .text:0x8000750C; // type:function size:0x1A8 +HuDataDirReadNumAsync = .text:0x800076B4; // type:function size:0x1A8 +HuDataGetAsyncStat = .text:0x8000785C; // type:function size:0x60 +HuDataRead = .text:0x800078BC; // type:function size:0x344 +HuDataReadNum = .text:0x80007C00; // type:function size:0x3A0 +HuDataSelHeapRead = .text:0x80007FA0; // type:function size:0x3C4 +HuDataSelHeapReadNum = .text:0x80008364; // type:function size:0x428 +HuDataReadMulti = .text:0x8000878C; // type:function size:0x30 +HuDataReadMultiSub = .text:0x800087BC; // type:function size:0x3FC +HuDataGetSize = .text:0x80008BB8; // type:function size:0x104 +HuDataClose = .text:0x80008CBC; // type:function size:0x38 +HuDataCloseMulti = .text:0x80008CF4; // type:function size:0x7C +HuDataDirClose = .text:0x80008D70; // type:function size:0xD4 +HuDataDirCloseNum = .text:0x80008E44; // type:function size:0x130 +HuDataReadNumHeapShortForce = .text:0x80008F74; // type:function size:0x48C +HuDecodeSlide = .text:0x80009400; // type:function size:0x200 scope:local +HuDecodeFslide = .text:0x80009600; // type:function size:0x1D8 scope:local +HuDecodeData = .text:0x800097D8; // type:function size:0x324 +HuSysInit = .text:0x80009AFC; // type:function size:0x138 +InitRenderMode = .text:0x80009C34; // type:function size:0xD0 scope:local +InitGX = .text:0x80009D04; // type:function size:0x164 scope:local +InitMem = .text:0x80009E68; // type:function size:0x13C scope:local +InitVI = .text:0x80009FA4; // type:function size:0x54 scope:local +HuSysBeforeRender = .text:0x80009FF8; // type:function size:0xE4 +HuSysDoneRender = .text:0x8000A0DC; // type:function size:0xC8 +SwapBuffers = .text:0x8000A1A4; // type:function size:0x6C scope:local +LoadMemInfo = .text:0x8000A210; // type:function size:0x254 scope:local +gcsetjmp = .text:0x8000A464; // type:function size:0x74 +gclongjmp = .text:0x8000A4D8; // type:function size:0x80 +HuMemInitAll = .text:0x8000A558; // type:function size:0x12C +HuMemInit = .text:0x8000A684; // type:function size:0x30 +HuMemDCFlushAll = .text:0x8000A6B4; // type:function size:0x2C +HuMemDCFlush = .text:0x8000A6E0; // type:function size:0x54 +HuMemDirectMalloc = .text:0x8000A734; // type:function size:0x64 +HuMemDirectMallocNum = .text:0x8000A798; // type:function size:0x6C +HuMemDirectFree = .text:0x8000A804; // type:function size:0x38 +HuMemDirectFreeNum = .text:0x8000A83C; // type:function size:0x54 +HuMemUsedMallocSizeGet = .text:0x8000A890; // type:function size:0x3C +HuMemUsedMallocBlockGet = .text:0x8000A8CC; // type:function size:0x3C +HuMemHeapSizeGet = .text:0x8000A908; // type:function size:0x18 +HuMemHeapPtrGet = .text:0x8000A920; // type:function size:0x18 +HuMemHeapInit = .text:0x8000A938; // type:function size:0x4C +HuMemMemoryAllocNum = .text:0x8000A984; // type:function size:0x40 +HuMemMemoryAlloc = .text:0x8000A9C4; // type:function size:0x3C +HuMemMemoryAlloc2 = .text:0x8000AA00; // type:function size:0x108 scope:local +HuMemMemoryFreeNum = .text:0x8000AB08; // type:function size:0x7C +HuMemMemoryFree = .text:0x8000AB84; // type:function size:0x12C +HuMemUsedMemorySizeGet = .text:0x8000ACB0; // type:function size:0x48 +HuMemUsedMemoryBlockGet = .text:0x8000ACF8; // type:function size:0x44 +HuMemMemoryAllocSizeGet = .text:0x8000AD3C; // type:function size:0xC +HuMemHeapDump = .text:0x8000AD48; // type:function size:0x158 +HuMemMemorySizeGet = .text:0x8000AEA0; // type:function size:0x50 +pfInit = .text:0x8000AEF0; // type:function size:0x64 +pfClsScr = .text:0x8000AF54; // type:function size:0xA0 +print8 = .text:0x8000AFF4; // type:function size:0x15C +printWin = .text:0x8000B150; // type:function size:0xAC +pfDrawFonts = .text:0x8000B1FC; // type:function size:0xEE8 +WireDraw = .text:0x8000C0E4; // type:function size:0x3C0 scope:local +HuPrcInit = .text:0x8000C4A4; // type:function size:0x14 +HuPrcCreate = .text:0x8000C4B8; // type:function size:0x1E8 +HuPrcChildLink = .text:0x8000C6A0; // type:function size:0x68 +HuPrcChildUnlink = .text:0x8000C708; // type:function size:0x58 +HuPrcChildCreate = .text:0x8000C760; // type:function size:0x27C +HuPrcChildWatch = .text:0x8000C9DC; // type:function size:0x60 +HuPrcCurrentGet = .text:0x8000CA3C; // type:function size:0x8 +SetKillStatusProcess = .text:0x8000CA44; // type:function size:0x50 scope:local +HuPrcKill = .text:0x8000CA94; // type:function size:0xD4 +HuPrcChildKill = .text:0x8000CB68; // type:function size:0x2A4 +HuPrcEnd = .text:0x8000CE0C; // type:function size:0x100 +HuPrcSleep = .text:0x8000CF0C; // type:function size:0x80 +HuPrcVSleep = .text:0x8000CF8C; // type:function size:0x54 +HuPrcWakeup = .text:0x8000CFE0; // type:function size:0xC +HuPrcDestructorSet2 = .text:0x8000CFEC; // type:function size:0x8 +HuPrcDestructorSet = .text:0x8000CFF4; // type:function size:0x28 +HuPrcCall = .text:0x8000D01C; // type:function size:0x184 +HuPrcMemAlloc = .text:0x8000D1A0; // type:function size:0x4C +HuPrcMemFree = .text:0x8000D1EC; // type:function size:0x30 +HuPrcSetStat = .text:0x8000D21C; // type:function size:0x10 +HuPrcResetStat = .text:0x8000D22C; // type:function size:0x14 +HuPrcAllPause = .text:0x8000D240; // type:function size:0x84 +HuPrcAllUPause = .text:0x8000D2C4; // type:function size:0x84 +HuSprInit = .text:0x8000D348; // type:function size:0xA0 +HuSprClose = .text:0x8000D3E8; // type:function size:0xB0 +HuSprExec = .text:0x8000D498; // type:function size:0x64 +HuSprBegin = .text:0x8000D4FC; // type:function size:0x188 +HuSprOrderEntry = .text:0x8000D684; // type:function size:0x14C +HuSprCall = .text:0x8000D7D0; // type:function size:0xF4 +HuSprFinish = .text:0x8000D8C4; // type:function size:0x458 +HuSprPauseSet = .text:0x8000DD1C; // type:function size:0x8 +HuSprAnimRead = .text:0x8000DD24; // type:function size:0x114 +HuSprAnimLock = .text:0x8000DE38; // type:function size:0x10 +HuSprCreate = .text:0x8000DE48; // type:function size:0x128 +HuSprFuncCreate = .text:0x8000DF70; // type:function size:0x188 +HuSprGrpCreate = .text:0x8000E0F8; // type:function size:0xF4 +HuSprGrpCopy = .text:0x8000E1EC; // type:function size:0x334 +HuSprGrpMemberSet = .text:0x8000E520; // type:function size:0x8C +HuSprGrpMemberKill = .text:0x8000E5AC; // type:function size:0xAC +HuSprGrpKill = .text:0x8000E658; // type:function size:0x9C +HuSprKill = .text:0x8000E6F4; // type:function size:0x84 +HuSprAnimKill = .text:0x8000E778; // type:function size:0x90 +HuSprAttrSet = .text:0x8000E808; // type:function size:0xAC +HuSprAttrReset = .text:0x8000E8B4; // type:function size:0xAC +HuSprPosSet = .text:0x8000E960; // type:function size:0x60 +HuSprZRotSet = .text:0x8000E9C0; // type:function size:0x5C +HuSprScaleSet = .text:0x8000EA1C; // type:function size:0x60 +HuSprTPLvlSet = .text:0x8000EA7C; // type:function size:0x64 +HuSprColorSet = .text:0x8000EAE0; // type:function size:0x64 +HuSprSpeedSet = .text:0x8000EB44; // type:function size:0x4C +HuSprBankSet = .text:0x8000EB90; // type:function size:0xF0 +HuSprGrpPosSet = .text:0x8000EC80; // type:function size:0x9C +HuSprGrpCenterSet = .text:0x8000ED1C; // type:function size:0x9C +HuSprGrpZRotSet = .text:0x8000EDB8; // type:function size:0x98 +HuSprGrpScaleSet = .text:0x8000EE50; // type:function size:0x9C +HuSprGrpTPLvlSet = .text:0x8000EEEC; // type:function size:0xC0 +HuSprGrpDrawNoSet = .text:0x8000EFAC; // type:function size:0x8C +HuSprDrawNoSet = .text:0x8000F038; // type:function size:0x50 +HuSprPriSet = .text:0x8000F088; // type:function size:0x4C +HuSprGrpScissorSet = .text:0x8000F0D4; // type:function size:0xAC +HuSprScissorSet = .text:0x8000F180; // type:function size:0x58 +HuSprAnimMake = .text:0x8000F1D8; // type:function size:0x1FC +HuSprBGSet = .text:0x8000F3D4; // type:function size:0x68 +HuSprSprBGSet = .text:0x8000F43C; // type:function size:0x50 +AnimDebug = .text:0x8000F48C; // type:function size:0x214 +HuSprDispInit = .text:0x8000F6A0; // type:function size:0x158 +HuSprDisp = .text:0x8000F7F8; // type:function size:0xECC +HuSprTexLoad = .text:0x800106C4; // type:function size:0x29C +HuSprExecLayerSet = .text:0x80010960; // type:function size:0x58 +HuSprLayerHook = .text:0x800109B8; // type:function size:0x178 scope:local +LoadHSF = .text:0x80010B30; // type:function size:0xB0 +ClusterAdjustObject = .text:0x80010BE0; // type:function size:0xA0 +FileLoad = .text:0x80010C80; // type:function size:0xC8 scope:local +SetHsfModel = .text:0x80010D48; // type:function size:0x284 scope:local +SetName = .text:0x80010FCC; // type:function size:0x38 +MaterialLoad = .text:0x80011004; // type:function size:0x210 scope:local +AttributeLoad = .text:0x80011214; // type:function size:0xF8 scope:local +SceneLoad = .text:0x8001130C; // type:function size:0x80 scope:local +ColorLoad = .text:0x8001138C; // type:function size:0x130 scope:local +VertexLoad = .text:0x800114BC; // type:function size:0x1C0 scope:local +NormalLoad = .text:0x8001167C; // type:function size:0x128 scope:local +STLoad = .text:0x800117A4; // type:function size:0x1A8 scope:local +FaceLoad = .text:0x8001194C; // type:function size:0x190 scope:local +DispObject = .text:0x80011ADC; // type:function size:0x7A8 scope:local +ObjectLoad = .text:0x80012284; // type:function size:0x15C scope:local +CenvLoad = .text:0x800123E0; // type:function size:0x464 scope:local +SkeletonLoad = .text:0x80012844; // type:function size:0x198 scope:local +PartLoad = .text:0x800129DC; // type:function size:0x12C scope:local +ClusterLoad = .text:0x80012B08; // type:function size:0x1E8 scope:local +ShapeLoad = .text:0x80012CF0; // type:function size:0x168 scope:local +MapAttrLoad = .text:0x80012E58; // type:function size:0xD0 scope:local +BitmapLoad = .text:0x80012F28; // type:function size:0x174 scope:local +PaletteLoad = .text:0x8001309C; // type:function size:0x16C scope:local +MakeObjectName = .text:0x80013208; // type:function size:0xE8 +CmpObjectName = .text:0x800132F0; // type:function size:0x38 +MotionLoad = .text:0x80013328; // type:function size:0x938 scope:local +MatrixLoad = .text:0x80013C60; // type:function size:0x80 scope:local +SearchObjectSetName = .text:0x80013CE0; // type:function size:0x94 scope:local +SearchVertexPtr = .text:0x80013D74; // type:function size:0x44 scope:local +SearchNormalPtr = .text:0x80013DB8; // type:function size:0x44 scope:local +SearchStPtr = .text:0x80013DFC; // type:function size:0x44 scope:local +SearchColorPtr = .text:0x80013E40; // type:function size:0x44 scope:local +SearchFacePtr = .text:0x80013E84; // type:function size:0x44 scope:local +SearchCenvPtr = .text:0x80013EC8; // type:function size:0x44 scope:local +SearchPartPtr = .text:0x80013F0C; // type:function size:0x44 scope:local +SearchPalettePtr = .text:0x80013F50; // type:function size:0x3C scope:local +SearchBitmapPtr = .text:0x80013F8C; // type:function size:0x44 scope:local +GetString = .text:0x80013FD0; // type:function size:0x24 scope:local +GetMotionString = .text:0x80013FF4; // type:function size:0x24 scope:local +Hu3DDrawPreInit = .text:0x80014018; // type:function size:0xC +Hu3DDraw = .text:0x80014024; // type:function size:0x1A0 +objCall = .text:0x800141C4; // type:function size:0xEC scope:local +objMesh = .text:0x800142B0; // type:function size:0x86C scope:local +ObjCullCheck = .text:0x80014B1C; // type:function size:0x4C0 +FaceDraw = .text:0x80014FDC; // type:function size:0x10DC scope:local +SetTevStageNoTex = .text:0x800160B8; // type:function size:0x8E8 scope:local +SetTevStageTex = .text:0x800169A0; // type:function size:0x2588 scope:local +SetKColor = .text:0x80018F28; // type:function size:0x164 scope:local +SetKColorRGB = .text:0x8001908C; // type:function size:0x180 scope:local +FlushKColor = .text:0x8001920C; // type:function size:0xB0 scope:local +SetReflect = .text:0x800192BC; // type:function size:0x280 scope:local +SetProjection = .text:0x8001953C; // type:function size:0x29C scope:local +SetShadowTex = .text:0x800197D8; // type:function size:0x8C scope:local +SetShadow = .text:0x80019864; // type:function size:0xCC scope:local +FaceDrawShadow = .text:0x80019930; // type:function size:0x5E4 scope:local +LoadTexture = .text:0x80019F14; // type:function size:0x75C scope:local +objNull = .text:0x8001A670; // type:function size:0x248 scope:local +objRoot = .text:0x8001A8B8; // type:function size:0x198 scope:local +objJoint = .text:0x8001AA50; // type:function size:0x248 scope:local +objMap = .text:0x8001AC98; // type:function size:0x17C scope:local +objReplica = .text:0x8001AE14; // type:function size:0x1B4 scope:local +Hu3DDrawPost = .text:0x8001AFC8; // type:function size:0xB00 +ObjDraw = .text:0x8001BAC8; // type:function size:0x6D0 scope:local +MakeDisplayList = .text:0x8001C198; // type:function size:0xBC +MDObjCall = .text:0x8001C254; // type:function size:0x438 scope:local +MDObjMesh = .text:0x8001C68C; // type:function size:0x2A8 scope:local +ObjConstantMake = .text:0x8001C934; // type:function size:0x68 +MDFaceDraw = .text:0x8001C99C; // type:function size:0xD08 scope:local +MakeCalcNBT = .text:0x8001D6A4; // type:function size:0x3A8 scope:local +MakeNBT = .text:0x8001DA4C; // type:function size:0x2C4 scope:local +MDFaceCnt = .text:0x8001DD10; // type:function size:0x2C8 scope:local +mtxTransCat = .text:0x8001DFD8; // type:function size:0x4C +mtxRotCat = .text:0x8001E024; // type:function size:0xF4 +mtxRot = .text:0x8001E118; // type:function size:0xF0 +mtxScaleCat = .text:0x8001E208; // type:function size:0x70 +HmfInverseMtxF3X3 = .text:0x8001E278; // type:function size:0x1E0 +SetDefLight = .text:0x8001E458; // type:function size:0x190 +Hu3DModelObjPosGet = .text:0x8001E5E8; // type:function size:0x90 +Hu3DModelObjMtxGet = .text:0x8001E678; // type:function size:0x318 +PGObjCall = .text:0x8001E990; // type:function size:0x80 +PGObjCalc = .text:0x8001EA10; // type:function size:0x7B0 +PGObjReplica = .text:0x8001F1C0; // type:function size:0x574 +Hu3DObjDuplicate = .text:0x8001F734; // type:function size:0x158 +Hu3DModelObjDrawInit = .text:0x8001F88C; // type:function size:0x90 +Hu3DModelObjDraw = .text:0x8001F91C; // type:function size:0x90 +Hu3DInit = .text:0x8001F9AC; // type:function size:0x220 +Hu3DPreProc = .text:0x8001FBCC; // type:function size:0xD8 +Hu3DExec = .text:0x8001FCA4; // type:function size:0x688 +Hu3DAllKill = .text:0x8002032C; // type:function size:0x158 +Hu3DBGColorSet = .text:0x80020484; // type:function size:0x18 +Hu3DLayerHookSet = .text:0x8002049C; // type:function size:0x1C +Hu3DPauseSet = .text:0x800204B8; // type:function size:0xC +Hu3DNoSyncSet = .text:0x800204C4; // type:function size:0xC +Hu3DModelCreate = .text:0x800204D0; // type:function size:0x330 +Hu3DModelLink = .text:0x80020800; // type:function size:0x2E8 +Hu3DHookFuncCreate = .text:0x80020AE8; // type:function size:0x1C8 +Hu3DModelKill = .text:0x80020CB0; // type:function size:0x34C +Hu3DModelAllKill = .text:0x80020FFC; // type:function size:0xD0 +Hu3DModelPosSet = .text:0x800210CC; // type:function size:0x34 +Hu3DModelPosSetV = .text:0x80021100; // type:function size:0x40 +Hu3DModelRotSet = .text:0x80021140; // type:function size:0x34 +Hu3DModelRotSetV = .text:0x80021174; // type:function size:0x40 +Hu3DModelScaleSet = .text:0x800211B4; // type:function size:0x34 +Hu3DModelScaleSetV = .text:0x800211E8; // type:function size:0x40 +Hu3DModelAttrSet = .text:0x80021228; // type:function size:0x54 +Hu3DModelAttrReset = .text:0x8002127C; // type:function size:0x50 +Hu3DModelAttrGet = .text:0x800212CC; // type:function size:0x2C +Hu3DModelMotionAttrGet = .text:0x800212F8; // type:function size:0x2C +Hu3DModelClusterAttrSet = .text:0x80021324; // type:function size:0x44 +Hu3DModelClusterAttrReset = .text:0x80021368; // type:function size:0x44 +Hu3DModelCameraSet = .text:0x800213AC; // type:function size:0x2C +Hu3DModelLayerSet = .text:0x800213D8; // type:function size:0x6C +Hu3DModelObjPtrGet = .text:0x80021444; // type:function size:0xD8 +Hu3DModelTPLvlSet = .text:0x8002151C; // type:function size:0xF8 +Hu3DModelHiliteMapSet = .text:0x80021614; // type:function size:0x98 +Hu3DModelShadowSet = .text:0x800216AC; // type:function size:0xB0 +Hu3DModelShadowReset = .text:0x8002175C; // type:function size:0xA0 +Hu3DModelShadowDispOn = .text:0x800217FC; // type:function size:0x34 +Hu3DModelShadowDispOff = .text:0x80021830; // type:function size:0x34 +Hu3DModelShadowMapSet = .text:0x80021864; // type:function size:0x88 +Hu3DModelShadowMapObjSet = .text:0x800218EC; // type:function size:0xBC +Hu3DModelAmbSet = .text:0x800219A8; // type:function size:0x34 +Hu3DModelHookSet = .text:0x800219DC; // type:function size:0xEC +Hu3DModelHookReset = .text:0x80021AC8; // type:function size:0xB4 +Hu3DModelHookObjReset = .text:0x80021B7C; // type:function size:0xF0 +Hu3DModelProjectionSet = .text:0x80021C6C; // type:function size:0x44 +Hu3DModelProjectionReset = .text:0x80021CB0; // type:function size:0x44 +Hu3DModelHiliteTypeSet = .text:0x80021CF4; // type:function size:0xBC +Hu3DModelReflectTypeSet = .text:0x80021DB0; // type:function size:0x30 +Hu3DCameraCreate = .text:0x80021DE0; // type:function size:0x134 +Hu3DCameraPerspectiveSet = .text:0x80021F14; // type:function size:0x80 +Hu3DCameraViewportSet = .text:0x80021F94; // type:function size:0x88 +Hu3DCameraScissorSet = .text:0x8002201C; // type:function size:0x90 +Hu3DCameraPosSet = .text:0x800220AC; // type:function size:0x98 +Hu3DCameraPosSetV = .text:0x80022144; // type:function size:0xB8 +Hu3DCameraKill = .text:0x800221FC; // type:function size:0x78 +Hu3DCameraAllKill = .text:0x80022274; // type:function size:0xD0 +Hu3DCameraSet = .text:0x80022344; // type:function size:0xDC +Hu3DModelCameraInfoSet = .text:0x80022420; // type:function size:0x3C0 +Hu3DModelCameraCreate = .text:0x800227E0; // type:function size:0x88 +Hu3DCameraMotionOn = .text:0x80022868; // type:function size:0x58 +Hu3DCameraMotionStart = .text:0x800228C0; // type:function size:0xD4 +Hu3DCameraMotionOff = .text:0x80022994; // type:function size:0x34 +Hu3DLighInit = .text:0x800229C8; // type:function size:0x74 +Hu3DGLightCreate = .text:0x80022A3C; // type:function size:0xA0 +Hu3DGLightCreateV = .text:0x80022ADC; // type:function size:0x104 +Hu3DLLightCreate = .text:0x80022BE0; // type:function size:0xA8 +Hu3DLLightCreateV = .text:0x80022C88; // type:function size:0x17C +Hu3DGLightSpotSet = .text:0x80022E04; // type:function size:0x44 +Hu3DLLightSpotSet = .text:0x80022E48; // type:function size:0x6C +Hu3DGLightInfinitytSet = .text:0x80022EB4; // type:function size:0x48 +Hu3DLLightInfinitytSet = .text:0x80022EFC; // type:function size:0x70 +Hu3DGLightPointSet = .text:0x80022F6C; // type:function size:0x58 +Hu3DLLightPointSet = .text:0x80022FC4; // type:function size:0x80 +Hu3DGLightKill = .text:0x80023044; // type:function size:0x20 +Hu3DLLightKill = .text:0x80023064; // type:function size:0xBC +Hu3DLightAllKill = .text:0x80023120; // type:function size:0x68 +Hu3DGLightColorSet = .text:0x80023188; // type:function size:0x38 +Hu3DLLightColorSet = .text:0x800231C0; // type:function size:0x60 +Hu3DGLightPosSetV = .text:0x80023220; // type:function size:0x70 +Hu3DLLightPosSetV = .text:0x80023290; // type:function size:0x9C +Hu3DGLightPosSet = .text:0x8002332C; // type:function size:0x90 +Hu3DLLightPosSet = .text:0x800233BC; // type:function size:0xBC +Hu3DGLightPosAimSetV = .text:0x80023478; // type:function size:0x80 +Hu3DLLightPosAimSetV = .text:0x800234F8; // type:function size:0xAC +Hu3DGLightPosAimSet = .text:0x800235A4; // type:function size:0xC4 +Hu3DLLightPosAimSet = .text:0x80023668; // type:function size:0xF0 +Hu3DGLightStaticSet = .text:0x80023758; // type:function size:0x54 +Hu3DLLightStaticSet = .text:0x800237AC; // type:function size:0x7C +Hu3DModelLightInfoSet = .text:0x80023828; // type:function size:0x4D0 +Hu3DLightSet = .text:0x80023CF8; // type:function size:0x130 +lightSet = .text:0x80023E28; // type:function size:0x254 scope:local +Hu3DReflectMapSet = .text:0x8002407C; // type:function size:0x68 +Hu3DReflectNoSet = .text:0x800240E4; // type:function size:0x8 +Hu3DFogSet = .text:0x800240EC; // type:function size:0x60 +Hu3DFogClear = .text:0x8002414C; // type:function size:0x74 +Hu3DShadowCreate = .text:0x800241C0; // type:function size:0x188 +Hu3DShadowPosSet = .text:0x80024348; // type:function size:0x64 +Hu3DShadowTPLvlSet = .text:0x800243AC; // type:function size:0x2C +Hu3DShadowSizeSet = .text:0x800243D8; // type:function size:0x78 +Hu3DShadowExec = .text:0x80024450; // type:function size:0x860 +Hu3DProjectionCreate = .text:0x80024CB0; // type:function size:0x130 +Hu3DProjectionKill = .text:0x80024DE0; // type:function size:0x60 +Hu3DProjectionPosSet = .text:0x80024E40; // type:function size:0x88 +Hu3DProjectionTPLvlSet = .text:0x80024EC8; // type:function size:0x38 +Hu3DMipMapSet = .text:0x80024F00; // type:function size:0x1E8 +Hu3DMotionInit = .text:0x800250E8; // type:function size:0x48 +Hu3DMotionCreate = .text:0x80025130; // type:function size:0xA4 +Hu3DMotionModelCreate = .text:0x800251D4; // type:function size:0xC4 +Hu3DMotionKill = .text:0x80025298; // type:function size:0x114 +Hu3DMotionAllKill = .text:0x800253AC; // type:function size:0x11C +Hu3DMotionSet = .text:0x800254C8; // type:function size:0xBC +Hu3DMotionOverlaySet = .text:0x80025584; // type:function size:0x54 +Hu3DMotionOverlayReset = .text:0x800255D8; // type:function size:0x20 +Hu3DMotionOverlayTimeGet = .text:0x800255F8; // type:function size:0x1C +Hu3DMotionOverlayTimeSet = .text:0x80025614; // type:function size:0x1C +Hu3DMotionOverlaySpeedSet = .text:0x80025630; // type:function size:0x1C +Hu3DMotionShiftSet = .text:0x8002564C; // type:function size:0x1F4 +Hu3DMotionShapeSet = .text:0x80025840; // type:function size:0xBC +Hu3DMotionShapeIDGet = .text:0x800258FC; // type:function size:0x1C +Hu3DMotionShapeSpeedSet = .text:0x80025918; // type:function size:0x2C +Hu3DMotionShapeTimeSet = .text:0x80025944; // type:function size:0x1C +Hu3DMotionShapeMaxTimeGet = .text:0x80025960; // type:function size:0x44 +Hu3DMotionShapeStartEndSet = .text:0x800259A4; // type:function size:0x30 +Hu3DMotionClusterSet = .text:0x800259D4; // type:function size:0x114 +Hu3DMotionClusterNoSet = .text:0x80025AE8; // type:function size:0xD0 +Hu3DMotionShapeReset = .text:0x80025BB8; // type:function size:0x20 +Hu3DMotionClusterReset = .text:0x80025BD8; // type:function size:0xC8 +Hu3DMotionIDGet = .text:0x80025CA0; // type:function size:0x2C +Hu3DMotionShiftIDGet = .text:0x80025CCC; // type:function size:0x2C +Hu3DMotionTimeSet = .text:0x80025CF8; // type:function size:0xF4 +Hu3DMotionTimeGet = .text:0x80025DEC; // type:function size:0x2C +Hu3DMotionShiftTimeGet = .text:0x80025E18; // type:function size:0x2C +Hu3DMotionMaxTimeGet = .text:0x80025E44; // type:function size:0xA8 +Hu3DMotionShiftMaxTimeGet = .text:0x80025EEC; // type:function size:0xA8 +Hu3DMotionShiftStartEndSet = .text:0x80025F94; // type:function size:0x30 +Hu3DMotionMotionMaxTimeGet = .text:0x80025FC4; // type:function size:0x8C +Hu3DMotionStartEndSet = .text:0x80026050; // type:function size:0x30 +Hu3DMotionEndCheck = .text:0x80026080; // type:function size:0x170 +Hu3DMotionSpeedSet = .text:0x800261F0; // type:function size:0x2C +Hu3DMotionShiftSpeedSet = .text:0x8002621C; // type:function size:0x2C +Hu3DMotionNoMotSet = .text:0x80026248; // type:function size:0x114 +Hu3DMotionNoMotReset = .text:0x8002635C; // type:function size:0x5C +Hu3DMotionForceSet = .text:0x800263B8; // type:function size:0x108 +Hu3DMotionNext = .text:0x800264C0; // type:function size:0x798 +Hu3DMotionExec = .text:0x80026C58; // type:function size:0x534 +Hu3DCameraMotionExec = .text:0x8002718C; // type:function size:0xC0 +Hu3DSubMotionExec = .text:0x8002724C; // type:function size:0x2A8 +GetObjTRXPtr = .text:0x800274F4; // type:function size:0x14C scope:weak +SetObjMatMotion = .text:0x80027640; // type:function size:0x208 +SetObjAttrMotion = .text:0x80027848; // type:function size:0x218 +SetObjCameraMotion = .text:0x80027A60; // type:function size:0x558 +SetObjLightMotion = .text:0x80027FB8; // type:function size:0x1D8 +GetCurve = .text:0x80028190; // type:function size:0xD8 +GetConstant = .text:0x80028268; // type:function size:0x70 +GetLinear = .text:0x800282D8; // type:function size:0x110 +GetBezier = .text:0x800283E8; // type:function size:0x200 scope:weak +GetBitMap = .text:0x800285E8; // type:function size:0x64 +Hu3DJointMotion = .text:0x8002864C; // type:function size:0xCC +JointModel_Motion = .text:0x80028718; // type:function size:0x124 +Hu3DMotionCalc = .text:0x8002883C; // type:function size:0x19C +SearchObjectIndex = .text:0x800289D8; // type:function size:0x90 scope:local +SearchAttributeIndex = .text:0x80028A68; // type:function size:0x9C scope:local +Hu3DAnimInit = .text:0x80028B04; // type:function size:0x7C +Hu3DAnimCreate = .text:0x80028B80; // type:function size:0x1D0 +Hu3DAnimLink = .text:0x80028D50; // type:function size:0x1C4 +Hu3DAnimKill = .text:0x80028F14; // type:function size:0x104 +Hu3DAnimModelKill = .text:0x80029018; // type:function size:0x13C +Hu3DAnimAllKill = .text:0x80029154; // type:function size:0x134 +Hu3DAnimAttrSet = .text:0x80029288; // type:function size:0x34 +Hu3DAnimAttrReset = .text:0x800292BC; // type:function size:0x38 +Hu3DAnimSpeedSet = .text:0x800292F4; // type:function size:0x2C +Hu3DAnimBankSet = .text:0x80029320; // type:function size:0x48 +Hu3DAnmNoSet = .text:0x80029368; // type:function size:0x38 +Hu3DAnimSet = .text:0x800293A0; // type:function size:0x240 +Hu3DAnimExec = .text:0x800295E0; // type:function size:0x474 +Hu3DTexScrollCreate = .text:0x80029A54; // type:function size:0x1AC +Hu3DTexScrollKill = .text:0x80029C00; // type:function size:0xE0 +Hu3DTexScrollAllKill = .text:0x80029CE0; // type:function size:0x10C +Hu3DTexScrollPosSet = .text:0x80029DEC; // type:function size:0x44 +Hu3DTexScrollPosMoveSet = .text:0x80029E30; // type:function size:0xA4 +Hu3DTexScrollRotSet = .text:0x80029ED4; // type:function size:0x3C +Hu3DTexScrollRotMoveSet = .text:0x80029F10; // type:function size:0x5C +Hu3DTexScrollPauseDisableSet = .text:0x80029F6C; // type:function size:0x54 +Hu3DParticleCreate = .text:0x80029FC0; // type:function size:0x348 +Hu3DParticleScaleSet = .text:0x8002A308; // type:function size:0x6C +Hu3DParticleZRotSet = .text:0x8002A374; // type:function size:0x6C +Hu3DParticleColSet = .text:0x8002A3E0; // type:function size:0x74 +Hu3DParticleTPLvlSet = .text:0x8002A454; // type:function size:0x80 +Hu3DParticleBlendModeSet = .text:0x8002A4D4; // type:function size:0x38 +Hu3DParticleHookSet = .text:0x8002A50C; // type:function size:0x38 +Hu3DParticleAttrSet = .text:0x8002A544; // type:function size:0x40 +Hu3DParticleAttrReset = .text:0x8002A584; // type:function size:0x44 +Hu3DParticleCntSet = .text:0x8002A5C8; // type:function size:0x3C +Hu3DParticleAnimModeSet = .text:0x8002A604; // type:function size:0x60 +_Hu3DParticleAttrReset = .text:0x8002A664; // type:function size:0xAD4 scope:local +Hu3DParManInit = .text:0x8002B138; // type:function size:0x48 +Hu3DParManCreate = .text:0x8002B180; // type:function size:0x1D4 +Hu3DParManLink = .text:0x8002B354; // type:function size:0x17C +Hu3DParManKill = .text:0x8002B4D0; // type:function size:0x190 +Hu3DParManAllKill = .text:0x8002B660; // type:function size:0x1C4 +Hu3DParManPtrGet = .text:0x8002B824; // type:function size:0x20 +Hu3DParManPosSet = .text:0x8002B844; // type:function size:0x3C +Hu3DParManVecSet = .text:0x8002B880; // type:function size:0x3C +Hu3DParManRotSet = .text:0x8002B8BC; // type:function size:0x7C +Hu3DParManAttrSet = .text:0x8002B938; // type:function size:0x40 +Hu3DParManAttrReset = .text:0x8002B978; // type:function size:0x40 +Hu3DParManModelIDGet = .text:0x8002B9B8; // type:function size:0x34 +Hu3DParManTimeLimitSet = .text:0x8002B9EC; // type:function size:0x38 +Hu3DParManVacumeSet = .text:0x8002BA24; // type:function size:0x74 +Hu3DParManColorSet = .text:0x8002BA98; // type:function size:0x68 +ParManFunc = .text:0x8002BB00; // type:function size:0xBC0 scope:local +ParManHook = .text:0x8002C6C0; // type:function size:0x4B4 scope:local +CamMotionEx2 = .text:0x8002CB74; // type:function size:0xAC +CamMotionEx = .text:0x8002CC20; // type:function size:0xA14 +SetObjCamMotion = .text:0x8002D634; // type:function size:0x244 scope:local +InterpolateBMLine = .text:0x8002D878; // type:function size:0x40C +Hu3D2Dto3D = .text:0x8002DC84; // type:function size:0x1D4 +Hu3D3Dto2D = .text:0x8002DE58; // type:function size:0x1D0 +Hu3DMtxTransGet = .text:0x8002E028; // type:function size:0x1C +Hu3DMtxRotGet = .text:0x8002E044; // type:function size:0x540 +Hu3DMtxScaleGet = .text:0x8002E584; // type:function size:0x1C8 +HuPerfInit = .text:0x8002E74C; // type:function size:0x94 +HuPerfCreate = .text:0x8002E7E0; // type:function size:0x130 +HuPerfZero = .text:0x8002E910; // type:function size:0x40 +HuPerfBegin = .text:0x8002E950; // type:function size:0x7C +HuPerfEnd = .text:0x8002E9CC; // type:function size:0xA0 +DSCallbackFunc = .text:0x8002EA6C; // type:function size:0x16C scope:local +omMasterInit = .text:0x8002EBD8; // type:function size:0x90 +omWatchOverlayProc = .text:0x8002EC68; // type:function size:0x170 scope:local +omOvlCallEx = .text:0x8002EDD8; // type:function size:0xE8 +omOvlGotoEx = .text:0x8002EEC0; // type:function size:0x60 +omOvlReturnEx = .text:0x8002EF20; // type:function size:0xF4 +omOvlKill = .text:0x8002F014; // type:function size:0xB8 +omOvlHisChg = .text:0x8002F0CC; // type:function size:0xA0 +omOvlHisGet = .text:0x8002F16C; // type:function size:0x78 +omInitObjMan = .text:0x8002F1E4; // type:function size:0x220 +omDestroyObjMan = .text:0x8002F404; // type:function size:0x50 +omAddObjEx = .text:0x8002F454; // type:function size:0x1DC +omInsertObj = .text:0x8002F630; // type:function size:0xF8 +omAddMember = .text:0x8002F728; // type:function size:0x84 +omDelObjEx = .text:0x8002F7AC; // type:function size:0x190 +omDelMember = .text:0x8002F93C; // type:function size:0x88 +omMakeGroupEx = .text:0x8002F9C4; // type:function size:0xFC +omGetGroupMemberListEx = .text:0x8002FAC0; // type:function size:0x2C +omSetStatBit = .text:0x8002FAEC; // type:function size:0x10 +omResetStatBit = .text:0x8002FAFC; // type:function size:0x14 +omSetTra = .text:0x8002FB10; // type:function size:0x10 +omSetRot = .text:0x8002FB20; // type:function size:0x10 +omSetSca = .text:0x8002FB30; // type:function size:0x10 +omMain = .text:0x8002FB40; // type:function size:0x2F8 +omAllPause = .text:0x8002FE38; // type:function size:0xE0 +omPauseChk = .text:0x8002FF18; // type:function size:0x2C +omCurrentOvlGet = .text:0x8002FF44; // type:function size:0x8 +OSPanic = .text:0x8002FF4C; // type:function size:0x150 +HuFaultInitXfbDirectDraw = .text:0x8003009C; // type:function size:0x118 +HuFaultSetXfbAddress = .text:0x800301B4; // type:function size:0x34 +XFB_WriteBackCache = .text:0x800301E8; // type:function size:0x98 scope:local +XFB_CR = .text:0x80030280; // type:function size:0x50 scope:local +XFB_puts = .text:0x800302D0; // type:function size:0xF4 scope:local +XFB_putcS = .text:0x800303C4; // type:function size:0x150 scope:local +XFB_putcProgressive = .text:0x80030514; // type:function size:0x1F0 scope:local +XFB_putcInterlace = .text:0x80030704; // type:function size:0x1B4 scope:local +GWInit = .text:0x800308B8; // type:function size:0x14C +GWGameStatReset = .text:0x80030A04; // type:function size:0x318 +GWMessDelayGet = .text:0x80030D1C; // type:function size:0x4C +GWMGRecordSet = .text:0x80030D68; // type:function size:0x54 +GWMGRecordGet = .text:0x80030DBC; // type:function size:0x18 +GWCharColorGet = .text:0x80030DD4; // type:function size:0x140 +GWBoardPlayCountSet = .text:0x80030F14; // type:function size:0x24 +GWBoardPlayCountAdd = .text:0x80030F38; // type:function size:0x38 +GWBoardPlayCountGet = .text:0x80030F70; // type:function size:0x14 +GWBoardMaxStarsSet = .text:0x80030F84; // type:function size:0x1C +GWBoardMaxStarsGet = .text:0x80030FA0; // type:function size:0x18 +GWBoardMaxCoinsSet = .text:0x80030FB8; // type:function size:0x1C +GWBoardMaxCoinsGet = .text:0x80030FD4; // type:function size:0x18 +GWBoardWinCountInc = .text:0x80030FEC; // type:function size:0x5C +GWBoardWinCountGet = .text:0x80031048; // type:function size:0x1C +GWBoardWinCountSet = .text:0x80031064; // type:function size:0x20 +GWMGAvailGet = .text:0x80031084; // type:function size:0x6C +GWMGAvailSet = .text:0x800310F0; // type:function size:0x5C +GWMGCustomGet = .text:0x8003114C; // type:function size:0x6C +GWMGCustomSet = .text:0x800311B8; // type:function size:0x5C +GWMGCustomReset = .text:0x80031214; // type:function size:0x60 +GWCoinsGet = .text:0x80031274; // type:function size:0x18 +GWCoinsSet = .text:0x8003128C; // type:function size:0xB0 +GWCoinsAdd = .text:0x8003133C; // type:function size:0xD0 +GWStarsSet = .text:0x8003140C; // type:function size:0x6C +GWStarsAdd = .text:0x80031478; // type:function size:0x94 +GWStarsGet = .text:0x8003150C; // type:function size:0x18 +GWTotalStarsSet = .text:0x80031524; // type:function size:0x34 +GWTotalStarsAdd = .text:0x80031558; // type:function size:0x54 +GWTotalStarsGet = .text:0x800315AC; // type:function size:0x10 +omOutView = .text:0x800315BC; // type:function size:0x238 +omOutViewMulti = .text:0x800317F4; // type:function size:0x2C4 +omSystemKeyCheckSetup = .text:0x80031AB8; // type:function size:0x74 +omSystemKeyCheck = .text:0x80031B2C; // type:function size:0x230 +omSysPauseEnable = .text:0x80031D5C; // type:function size:0x8 +omSysPauseCtrl = .text:0x80031D64; // type:function size:0x50 +omDLLDBGOut = .text:0x80031DB4; // type:function size:0x2C +omDLLInit = .text:0x80031DE0; // type:function size:0x6C +omDLLStart = .text:0x80031E4C; // type:function size:0x154 +omDLLNumEnd = .text:0x80031FA0; // type:function size:0xB4 +omDLLEnd = .text:0x80032054; // type:function size:0x13C +omDLLLink = .text:0x80032190; // type:function size:0x138 +omDLLUnlink = .text:0x800322C8; // type:function size:0xB4 +omDLLSearch = .text:0x8003237C; // type:function size:0xC8 +omDLLInfoDump = .text:0x80032444; // type:function size:0xD0 +omDLLHeaderDump = .text:0x80032514; // type:function size:0xE0 +frand = .text:0x800325F4; // type:function size:0xAC +frandf = .text:0x800326A0; // type:function size:0xD8 +frandmod = .text:0x80032778; // type:function size:0xB8 +HuAudInit = .text:0x80032830; // type:function size:0x170 +HuAudStreamPlay = .text:0x800329A0; // type:function size:0x8 +HuAudStreamVolSet = .text:0x800329A8; // type:function size:0x3C +HuAudStreamPauseOn = .text:0x800329E4; // type:function size:0x24 +HuAudStreamPauseOff = .text:0x80032A08; // type:function size:0x24 +HuAudStreamFadeOut = .text:0x80032A2C; // type:function size:0x4 +HuAudAllStop = .text:0x80032A30; // type:function size:0x28 +HuAudFadeOut = .text:0x80032A58; // type:function size:0x3C +HuAudFXPlay = .text:0x80032A94; // type:function size:0x80 +HuAudFXPlayVol = .text:0x80032B14; // type:function size:0x48 +HuAudFXPlayVolPan = .text:0x80032B5C; // type:function size:0x68 +HuAudFXStop = .text:0x80032BC4; // type:function size:0x2C +HuAudFXAllStop = .text:0x80032BF0; // type:function size:0x28 +HuAudFXFadeOut = .text:0x80032C18; // type:function size:0x30 +HuAudFXPanning = .text:0x80032C48; // type:function size:0x50 +HuAudFXListnerSet = .text:0x80032C98; // type:function size:0xA4 +HuAudFXListnerSetEX = .text:0x80032D3C; // type:function size:0x134 +HuAudFXListnerUpdate = .text:0x80032E70; // type:function size:0x3C +HuAudFXEmiterPlay = .text:0x80032EAC; // type:function size:0x6C +HuAudFXEmiterUpDate = .text:0x80032F18; // type:function size:0x64 +HuAudFXListnerKill = .text:0x80032F7C; // type:function size:0x20 +HuAudFXPauseAll = .text:0x80032F9C; // type:function size:0x2C +HuAudFXStatusGet = .text:0x80032FC8; // type:function size:0x28 +HuAudFXPitchSet = .text:0x80032FF0; // type:function size:0x54 +HuAudFXVolSet = .text:0x80033044; // type:function size:0x58 +HuAudSeqPlay = .text:0x8003309C; // type:function size:0x5C +HuAudSeqStop = .text:0x800330F8; // type:function size:0x48 +HuAudSeqFadeOut = .text:0x80033140; // type:function size:0x3C +HuAudSeqAllFadeOut = .text:0x8003317C; // type:function size:0x5C +HuAudSeqAllStop = .text:0x800331D8; // type:function size:0x28 +HuAudSeqPauseAll = .text:0x80033200; // type:function size:0x2C +HuAudSeqPause = .text:0x8003322C; // type:function size:0x54 +HuAudSeqMidiCtrlGet = .text:0x80033280; // type:function size:0x60 +HuAudSStreamPlay = .text:0x800332E0; // type:function size:0x64 +HuAudSStreamStop = .text:0x80033344; // type:function size:0x38 +HuAudSStreamFadeOut = .text:0x8003337C; // type:function size:0x3C +HuAudSStreamAllFadeOut = .text:0x800333B8; // type:function size:0x28 +HuAudSStreamAllStop = .text:0x800333E0; // type:function size:0x24 +HuAudSStreamStatGet = .text:0x80033404; // type:function size:0x28 +HuAudDllSndGrpSet = .text:0x8003342C; // type:function size:0x104 +HuAudSndGrpSetSet = .text:0x80033530; // type:function size:0x1A4 +HuAudSndGrpSet = .text:0x800336D4; // type:function size:0x60 +HuAudSndCommonGrpSet = .text:0x80033734; // type:function size:0x154 +HuAudAUXSet = .text:0x80033888; // type:function size:0x58 +HuAudAUXVolSet = .text:0x800338E0; // type:function size:0xC +HuAudVoiceInit = .text:0x800338EC; // type:function size:0x294 +HuAudPlayerVoicePlay = .text:0x80033B80; // type:function size:0x50 +HuAudPlayerVoicePlayPos = .text:0x80033BD0; // type:function size:0x58 +HuAudPlayerVoicePlayEntry = .text:0x80033C28; // type:function size:0x50 +HuAudCharVoicePlay = .text:0x80033C78; // type:function size:0xAC +HuAudCharVoicePlayPos = .text:0x80033D24; // type:function size:0xD0 +HuAudCharVoicePlayEntry = .text:0x80033DF4; // type:function size:0x90 +HuSePlay = .text:0x80033E84; // type:function size:0x68 scope:local +InitEnvelope = .text:0x80033EEC; // type:function size:0x1A4 +SetEnvelopMtx = .text:0x80034090; // type:function size:0x23C scope:local +EnvelopeProc = .text:0x800342CC; // type:function size:0x80 +InitVtxParm = .text:0x8003434C; // type:function size:0x50 +SetEnvelopMain = .text:0x8003439C; // type:function size:0x158 scope:local +SetEnvelop = .text:0x800344F4; // type:function size:0x9F0 scope:local +SetMtx = .text:0x80034EE4; // type:function size:0x334 scope:local +SetRevMtx = .text:0x80035218; // type:function size:0x11C scope:local +SearchSklenton = .text:0x80035334; // type:function size:0x78 scope:local +MGSeqInit = .text:0x800353AC; // type:function size:0xBC +MGSeqMain = .text:0x80035468; // type:function size:0x188 +CreateSeq = .text:0x800355F0; // type:function size:0x1A4 scope:local +MGSeqCreate = .text:0x80035794; // type:function size:0x100 +MGSeqStatGet = .text:0x80035894; // type:function size:0x88 +MGSeqPosSet = .text:0x8003591C; // type:function size:0x4C +MGSeqParamSet = .text:0x80035968; // type:function size:0x4C +MGSeqKill = .text:0x800359B4; // type:function size:0x58 +MGSeqKillAll = .text:0x80035A0C; // type:function size:0x3C +MGSeqDoneCheck = .text:0x80035A48; // type:function size:0xA4 +MGSeqStub = .text:0x80035AEC; // type:function size:0x4 +MGSeqSprKill = .text:0x80035AF0; // type:function size:0x8C +SeqInitTimer = .text:0x80035B7C; // type:function size:0x2E0 scope:local +SeqUpdateTimer = .text:0x80035E5C; // type:function size:0x69C scope:local +SeqInitType2 = .text:0x800364F8; // type:function size:0x3D8 scope:local +SeqUpdateType2 = .text:0x800368D0; // type:function size:0x2F8 scope:local +fn_80036BC8 = .text:0x80036BC8; // type:function size:0x188 +SeqMakeWord = .text:0x80036D50; // type:function size:0x1D0 scope:local +SeqLoadFontChar = .text:0x80036F20; // type:function size:0x26C scope:local +SeqInitMGBasic = .text:0x8003718C; // type:function size:0x194 scope:local +SeqUpdateMGBasic = .text:0x80037320; // type:function size:0x9D0 scope:local +SeqInitMGCommon = .text:0x80037CF0; // type:function size:0x2A4 scope:local +SeqUpdateMGBattle = .text:0x80037F94; // type:function size:0xDA4 scope:local +SeqUpdateMG1vs3 = .text:0x80038D38; // type:function size:0xDA4 scope:local +SeqUpdateMGStory = .text:0x80039ADC; // type:function size:0xBB8 scope:local +SeqUpdateMG2vs2 = .text:0x8003A694; // type:function size:0xAB4 scope:local +SeqInitFlip = .text:0x8003B148; // type:function size:0x3C4 scope:local +SeqUpdateFlip = .text:0x8003B50C; // type:function size:0x91C scope:local +SeqUpdateMGBowser = .text:0x8003BE28; // type:function size:0xC84 scope:local +SeqInitDraw = .text:0x8003CAAC; // type:function size:0xDC scope:local +SeqUpdateDraw = .text:0x8003CB88; // type:function size:0x3DC scope:local +SeqInitWin = .text:0x8003CF64; // type:function size:0x8A0 scope:local +SeqUpdateWin = .text:0x8003D804; // type:function size:0x72C scope:local +SeqInitRecord = .text:0x8003DF30; // type:function size:0x774 scope:local +SeqUpdateRecord = .text:0x8003E6A4; // type:function size:0x304 scope:local +MGSeqPauseInit = .text:0x8003E9A8; // type:function size:0x6C +PauseProc = .text:0x8003EA14; // type:function size:0x94C scope:local +MGSeqPauseKill = .text:0x8003F360; // type:function size:0xC +MGSeqPauseEnableCtrl = .text:0x8003F36C; // type:function size:0x40 +MGSeqPracticeInit = .text:0x8003F3AC; // type:function size:0xDC +PracticeProc = .text:0x8003F488; // type:function size:0x234 scope:local +SeqPlayStartFX = .text:0x8003F6BC; // type:function size:0xD4 scope:local +MGSeqPracticeExitCheck = .text:0x8003F790; // type:function size:0x128 +espInit = .text:0x8003F8B8; // type:function size:0xA0 +espEntry = .text:0x8003F958; // type:function size:0x1B0 +espKill = .text:0x8003FB08; // type:function size:0x98 +espGrpIDGet = .text:0x8003FBA0; // type:function size:0x8 +espDispOn = .text:0x8003FBA8; // type:function size:0x44 +espDispOff = .text:0x8003FBEC; // type:function size:0x44 +espAttrSet = .text:0x8003FC30; // type:function size:0x48 +espAttrReset = .text:0x8003FC78; // type:function size:0x48 +espPosSet = .text:0x8003FCC0; // type:function size:0x50 +espScaleSet = .text:0x8003FD10; // type:function size:0x50 +espZRotSet = .text:0x8003FD60; // type:function size:0x48 +espTPLvlSet = .text:0x8003FDA8; // type:function size:0x48 +espColorSet = .text:0x8003FDF0; // type:function size:0x58 +espSpeedSet = .text:0x8003FE48; // type:function size:0x48 +espBankSet = .text:0x8003FE90; // type:function size:0x48 +espDrawNoSet = .text:0x8003FED8; // type:function size:0x48 +espPriSet = .text:0x8003FF20; // type:function size:0x48 +fn_8003FF68 = .text:0x8003FF68; // type:function size:0x268 +fn_800401D0 = .text:0x800401D0; // type:function size:0x12C +fn_800402FC = .text:0x800402FC; // type:function size:0x78 +fn_80040374 = .text:0x80040374; // type:function size:0x98 +fn_8004040C = .text:0x8004040C; // type:function size:0xF4 +GetClusterCurve = .text:0x80040500; // type:function size:0xA8 +GetClusterWeightCurve = .text:0x800405A8; // type:function size:0xA8 +SetClusterMain = .text:0x80040650; // type:function size:0x3A0 +ClusterProc = .text:0x800409F0; // type:function size:0x160 +ClusterMotionExec = .text:0x80040B50; // type:function size:0x210 +SetShapeMain = .text:0x80040D60; // type:function size:0x36C scope:local +ShapeProc = .text:0x800410CC; // type:function size:0xA4 +WipeInit = .text:0x80041170; // type:function size:0xB4 +WipeExecAlways = .text:0x80041224; // type:function size:0x288 +WipeCreate = .text:0x800414AC; // type:function size:0x12C +WipeColorSet = .text:0x800415D8; // type:function size:0x28 +WipeStatGet = .text:0x80041600; // type:function size:0x10 +WipeDummyFade = .text:0x80041610; // type:function size:0x8 scope:local +WipeNormalFade = .text:0x80041618; // type:function size:0xFC scope:local +WipeColorFill = .text:0x80041714; // type:function size:0x31C scope:local +WipeCrossFade = .text:0x80041A30; // type:function size:0x184 scope:local +WipeFrameStill = .text:0x80041BB4; // type:function size:0x4C8 scope:local +HuWindowInit = .text:0x8004207C; // type:function size:0x74 +HuWinInit = .text:0x800420F0; // type:function size:0x214 +HuWinCreate = .text:0x80042304; // type:function size:0x544 +HuWinKill = .text:0x80042848; // type:function size:0xA4 +HuWinAllKill = .text:0x800428EC; // type:function size:0x1AC +MesDispFunc = .text:0x80042A98; // type:function size:0x7C4 scope:local +winBGMake = .text:0x8004325C; // type:function size:0x480 scope:local +HuWinProc = .text:0x800436DC; // type:function size:0xF4 scope:local +HuWinDrawMes = .text:0x800437D0; // type:function size:0x106C scope:local +HuWinCR = .text:0x8004483C; // type:function size:0x54 scope:local +_HuWinHomeClear = .text:0x80044890; // type:function size:0x90 scope:local +HuWinHomeClear = .text:0x80044920; // type:function size:0xA4 +HuWinKeyWaitEntry = .text:0x800449C4; // type:function size:0x88 +HuWinKeyWait = .text:0x80044A4C; // type:function size:0x10C scope:local +HuWinSpcFontEntry = .text:0x80044B58; // type:function size:0x1A4 scope:local +HuWinSpcFontClear = .text:0x80044CFC; // type:function size:0x80 scope:local +HuWinChoice = .text:0x80044D7C; // type:function size:0xA9C scope:local +HuWinActivePadGet = .text:0x80045818; // type:function size:0x68 +HuWinActiveKeyGetX = .text:0x80045880; // type:function size:0xE8 +HuWinPosSet = .text:0x80045968; // type:function size:0x6C +HuWinScaleSet = .text:0x800459D4; // type:function size:0x6C +HuWinZRotSet = .text:0x80045A40; // type:function size:0x58 +HuWinCenterPosSet = .text:0x80045A98; // type:function size:0xAC +HuWinDrawNoSet = .text:0x80045B44; // type:function size:0x4C +HuWinScissorSet = .text:0x80045B90; // type:function size:0x64 +HuWinPriSet = .text:0x80045BF4; // type:function size:0xB8 +HuWinAttrSet = .text:0x80045CAC; // type:function size:0x34 +HuWinAttrReset = .text:0x80045CE0; // type:function size:0x34 +HuWinStatGet = .text:0x80045D14; // type:function size:0x2C +HuWinMesColSet = .text:0x80045D40; // type:function size:0x3C +HuWinMesPalSet = .text:0x80045D7C; // type:function size:0x58 +HuWinBGTPLvlSet = .text:0x80045DD4; // type:function size:0x50 +HuWinBGColSet = .text:0x80045E24; // type:function size:0x60 +HuWinMesSpeedSet = .text:0x80045E84; // type:function size:0x2C +HuWinMesRead = .text:0x80045EB0; // type:function size:0xC4 +HuWinMesSet = .text:0x80045F74; // type:function size:0x398 +HuWinInsertMesSet = .text:0x8004630C; // type:function size:0xD8 +HuWinChoiceGet = .text:0x800463E4; // type:function size:0x27C +HuWinChoiceNumGet = .text:0x80046660; // type:function size:0x2C +HuWinChoiceDisable = .text:0x8004668C; // type:function size:0x38 +HuWinChoiceNowGet = .text:0x800466C4; // type:function size:0x40 +HuWinMesWait = .text:0x80046704; // type:function size:0x50 +HuWinAnimSet = .text:0x80046754; // type:function size:0x8C +HuWinSprSet = .text:0x800467E0; // type:function size:0xF0 +HuWinSprPosSet = .text:0x800468D0; // type:function size:0x88 +HuWinSprPriSet = .text:0x80046958; // type:function size:0x6C +HuWinSprIDGet = .text:0x800469C4; // type:function size:0x38 +HuWinSprKill = .text:0x800469FC; // type:function size:0x68 +HuWinDispOff = .text:0x80046A64; // type:function size:0x90 +HuWinDispOn = .text:0x80046AF4; // type:function size:0x90 +HuWinComKeyWait = .text:0x80046B84; // type:function size:0xC0 +HuWinComKeySet = .text:0x80046C44; // type:function size:0x44 +_HuWinComKeySet = .text:0x80046C88; // type:function size:0x98 +HuWinComKeyGet = .text:0x80046D20; // type:function size:0x1D4 +HuWinComKeyReset = .text:0x80046EF4; // type:function size:0x10 +HuWinMesMaxSizeGet = .text:0x80046F04; // type:function size:0x170 +HuWinInsertMesSizeGet = .text:0x80047074; // type:function size:0x54 +HuWinMesSizeCancelCRSet = .text:0x800470C8; // type:function size:0x8 +HuWinMesMaxSizeBetGet = .text:0x800470D0; // type:function size:0x114 +GetMesMaxSizeSub = .text:0x800471E4; // type:function size:0x2A0 scope:local +GetMesMaxSizeSub2 = .text:0x80047484; // type:function size:0x1CC scope:local +HuWinKeyWaitNumGet = .text:0x80047650; // type:function size:0x88 +HuWinPushKeySet = .text:0x800476D8; // type:function size:0x2C +HuWinDisablePlayerSet = .text:0x80047704; // type:function size:0x34 +HuWinDisablePlayerReset = .text:0x80047738; // type:function size:0x38 +HuWinExCreate = .text:0x80047770; // type:function size:0x4C +HuWinExCreateStyled = .text:0x800477BC; // type:function size:0x228 +HuWinExAnimIn = .text:0x800479E4; // type:function size:0x3B0 +HuWinExAnimOut = .text:0x80047D94; // type:function size:0x304 +HuWinExCleanup = .text:0x80048098; // type:function size:0xA4 +HuWinExAnimPopIn = .text:0x8004813C; // type:function size:0x264 +MessData_MesPtrGet = .text:0x800483A0; // type:function size:0xE8 +HuCardInit = .text:0x80048488; // type:function size:0x34 +HuCardCheck = .text:0x800484BC; // type:function size:0xC4 +HuCardSlotCheck = .text:0x80048580; // type:function size:0x58 +HuCardMount = .text:0x800485D8; // type:function size:0xEC +HuCardUnMount = .text:0x800486C4; // type:function size:0x28 +HuCardFormat = .text:0x800486EC; // type:function size:0x50 +MountCallBack = .text:0x8004873C; // type:function size:0x14 scope:local +HuCardOpen = .text:0x80048750; // type:function size:0x70 +HuCardRead = .text:0x800487C0; // type:function size:0x68 +HuCardCreate = .text:0x80048828; // type:function size:0x100 +HuCardClose = .text:0x80048928; // type:function size:0x38 +HuCardWrite = .text:0x80048960; // type:function size:0x50 +HuCardDelete = .text:0x800489B0; // type:function size:0x40 +HuCardSectorSizeGet = .text:0x800489F0; // type:function size:0x4C +HuCardFreeSpaceGet = .text:0x80048A3C; // type:function size:0x48 +HuARInit = .text:0x80048A84; // type:function size:0x148 +HuARMalloc = .text:0x80048BCC; // type:function size:0x16C +HuARFree = .text:0x80048D38; // type:function size:0x16C +HuAMemDump = .text:0x80048EA4; // type:function size:0xA8 +HuAR_DVDtoARAM = .text:0x80048F4C; // type:function size:0x160 +ArqCallBack = .text:0x800490AC; // type:function size:0x10 scope:local +HuAR_MRAMtoARAM = .text:0x800490BC; // type:function size:0x2C +HuAR_MRAMtoARAM2 = .text:0x800490E8; // type:function size:0x140 +HuAR_ARAMtoMRAM = .text:0x80049228; // type:function size:0x2C +HuAR_ARAMtoMRAMNum = .text:0x80049254; // type:function size:0x1F0 +ArqCallBackAM = .text:0x80049444; // type:function size:0x44 scope:local +HuARDMACheck = .text:0x80049488; // type:function size:0x8 +HuARDirCheck = .text:0x80049490; // type:function size:0x58 +HuARDirFree = .text:0x800494E8; // type:function size:0x68 +HuAR_ARAMtoMRAMFileRead = .text:0x80049550; // type:function size:0x390 +ArqCallBackAMFileRead = .text:0x800498E0; // type:function size:0x10 scope:local +CharManInit = .text:0x800498F0; // type:function size:0x134 +CharAMemPtrGet = .text:0x80049A24; // type:function size:0x1C +CharARAMOpen = .text:0x80049A40; // type:function size:0x98 +CharARAMClose = .text:0x80049AD8; // type:function size:0x58 +CharKill = .text:0x80049B30; // type:function size:0x428 +CharKillAll = .text:0x80049F58; // type:function size:0x3C +CharModelCreate = .text:0x80049F94; // type:function size:0x180 +UpdateChar = .text:0x8004A114; // type:function size:0x20C scope:local +UpdateCharAnim = .text:0x8004A320; // type:function size:0x173C scope:local +PlayCharVoice = .text:0x8004BA5C; // type:function size:0xB0 scope:local +InitEffect = .text:0x8004BB0C; // type:function size:0x254 scope:local +CreateEffectDust = .text:0x8004BD60; // type:function size:0xB0 scope:local +CreateEffectSmoke = .text:0x8004BE10; // type:function size:0xB0 scope:local +CreateEffectDot = .text:0x8004BEC0; // type:function size:0xB0 scope:local +CreateEffectStar = .text:0x8004BF70; // type:function size:0xB0 scope:local +CreateEffectWarn = .text:0x8004C020; // type:function size:0xB0 scope:local +CreateEffectBird = .text:0x8004C0D0; // type:function size:0xB0 scope:local +CreateEffect = .text:0x8004C180; // type:function size:0x1CC scope:local +UpdateEffect = .text:0x8004C34C; // type:function size:0x4A0 scope:local +RotateEffect = .text:0x8004C7EC; // type:function size:0x1E8 scope:local +PlayEffectSound = .text:0x8004C9D4; // type:function size:0x344 scope:local +CharModelMotionCreate = .text:0x8004CD18; // type:function size:0x1D0 +CharModelMotionIndexSet = .text:0x8004CEE8; // type:function size:0x88 +CharModelMotionKill = .text:0x8004CF70; // type:function size:0x9C +CharModelMotionDataClose = .text:0x8004D00C; // type:function size:0x2B8 +CharModelDataClose = .text:0x8004D2C4; // type:function size:0x430 +CharModelKill = .text:0x8004D6F4; // type:function size:0x244 +CharModelMotionSet = .text:0x8004D938; // type:function size:0x7C +CharModelTexAnimSet = .text:0x8004D9B4; // type:function size:0x17C +CharModelTexNameGet = .text:0x8004DB30; // type:function size:0x7C +CharModelHookNameGet = .text:0x8004DBAC; // type:function size:0x7C +CharModelMotionTimeSet = .text:0x8004DC28; // type:function size:0x4C +CharModelMotionTimeGet = .text:0x8004DC74; // type:function size:0x44 +CharModelMotionMaxTimeGet = .text:0x8004DCB8; // type:function size:0x44 +CharModelMotionEndCheck = .text:0x8004DCFC; // type:function size:0x44 +CharModelMotionShiftIDGet = .text:0x8004DD40; // type:function size:0x44 +CharModelMotionShiftSet = .text:0x8004DD84; // type:function size:0x84 +CharModelMotionShiftTimeGet = .text:0x8004DE08; // type:function size:0x44 +CharModelMotionSpeedSet = .text:0x8004DE4C; // type:function size:0x4C +CharModelLayerSetAll = .text:0x8004DE98; // type:function size:0x80 +CharModelItemHookCreate = .text:0x8004DF18; // type:function size:0x1D4 +UpdateItemHook = .text:0x8004E0EC; // type:function size:0x484 scope:local +CharModelEffectCreate = .text:0x8004E570; // type:function size:0x3FC +OrbitEffect = .text:0x8004E96C; // type:function size:0x168 scope:local +CharModelCoinEffectCreate = .text:0x8004EAD4; // type:function size:0x1A0 +fn_8004EC74 = .text:0x8004EC74; // type:function size:0x130 +fn_8004EDA4 = .text:0x8004EDA4; // type:function size:0x2B4 +fn_8004F058 = .text:0x8004F058; // type:function size:0xE4 +fn_8004F13C = .text:0x8004F13C; // type:function size:0x2B4 +CharModelLayerSetAll2 = .text:0x8004F3F0; // type:function size:0x80 +CharModelVoiceEnableSet = .text:0x8004F470; // type:function size:0xBC +fn_8004F52C = .text:0x8004F52C; // type:function size:0x4C +CharModelEffectEnableSet = .text:0x8004F578; // type:function size:0xB0 +CharModelEffectNpcInit = .text:0x8004F628; // type:function size:0x2CC +CharModelEffectNpcInitSilent = .text:0x8004F8F4; // type:function size:0x2CC +UpdateNpcEffect = .text:0x8004FBC0; // type:function size:0xF80 scope:local +CharModelStepTypeSet = .text:0x80050B40; // type:function size:0x30 +PlayStepFX = .text:0x80050B70; // type:function size:0xEC scope:local +MapWall = .text:0x80050C5C; // type:function size:0x1B8 +MapWallCheck = .text:0x80050E14; // type:function size:0x110 +MapPos = .text:0x80050F24; // type:function size:0x2A8 +PolygonRangeCheck = .text:0x800511CC; // type:function size:0x38C scope:local +DefIfnnerMapCircle = .text:0x80051558; // type:function size:0x470 scope:local +CalcPPLength = .text:0x800519C8; // type:function size:0x5D4 scope:local +MapIflnnerCalc = .text:0x80051F9C; // type:function size:0xF4 scope:local +MapCalcPoint = .text:0x80052090; // type:function size:0x388 scope:local +AreaCheck = .text:0x80052418; // type:function size:0x148 scope:local +MapIflnnerTriangle = .text:0x80052560; // type:function size:0x518 scope:local +MapIflnnerQuadrangle = .text:0x80052A78; // type:function size:0x994 scope:local +GetPolygonCircleMtx = .text:0x8005340C; // type:function size:0xC28 scope:local +PrecalcPntToTriangle = .text:0x80054034; // type:function size:0x43C scope:local +Hitcheck_Triangle_with_Sphere = .text:0x80054470; // type:function size:0x100 +Hitcheck_Quadrangle_with_Sphere = .text:0x80054570; // type:function size:0x19C +DefSetHitFace = .text:0x8005470C; // type:function size:0x4C scope:local +AppendAddXZ = .text:0x80054758; // type:function size:0x184 +CharRotInv = .text:0x800548DC; // type:function size:0x124 +THPSimpleInit = .text:0x80054A00; // type:function size:0x124 +THPSimpleQuit = .text:0x80054B24; // type:function size:0x54 +THPSimpleOpen = .text:0x80054B78; // type:function size:0x408 +THPSimpleClose = .text:0x80054F80; // type:function size:0xC0 +THPSimpleCalcNeedMemory = .text:0x80055040; // type:function size:0x184 +THPSimpleSetBuffer = .text:0x800551C4; // type:function size:0x240 +__THPSimpleDVDCallback = .text:0x80055404; // type:function size:0x2A4 scope:local +THPSimplePreLoad = .text:0x800556A8; // type:function size:0x2A4 +THPSimpleAudioStart = .text:0x8005594C; // type:function size:0x14 +THPSimpleAudioStop = .text:0x80055960; // type:function size:0x14 +THPSimpleLoadStop = .text:0x80055974; // type:function size:0x1B8 +THPSimpleDecode = .text:0x80055B2C; // type:function size:0x47C +VideoDecode = .text:0x80055FA8; // type:function size:0xD8 scope:local +THPSimpleDrawCurrentFrame = .text:0x80056080; // type:function size:0x104 +MixAudio = .text:0x80056184; // type:function size:0x5F8 scope:local +THPSimpleGetVideoInfo = .text:0x8005677C; // type:function size:0x58 +THPSimpleGetTotalFrame = .text:0x800567D4; // type:function size:0x2C +THPAudioMixCallback = .text:0x80056800; // type:function size:0x188 scope:local +THPSimpleSetVolume = .text:0x80056988; // type:function size:0x17C +THPGXRestore = .text:0x80056B04; // type:function size:0x130 +THPGXYuv2RgbSetup = .text:0x80056C34; // type:function size:0x5A0 +THPGXYuv2RgbDraw = .text:0x800571D4; // type:function size:0x288 +HuTHPSprCreateVol = .text:0x8005745C; // type:function size:0x108 +HuTHPSprCreate = .text:0x80057564; // type:function size:0x110 +HuTHP3DCreateVol = .text:0x80057674; // type:function size:0xF8 +HuTHP3DCreate = .text:0x8005776C; // type:function size:0x100 +HuTHPStop = .text:0x8005786C; // type:function size:0xC +HuTHPClose = .text:0x80057878; // type:function size:0xC +HuTHPRestart = .text:0x80057884; // type:function size:0xC +HuTHPEndCheck = .text:0x80057890; // type:function size:0x54 +HuTHPFrameGet = .text:0x800578E4; // type:function size:0x8 +HuTHPTotalFrameGet = .text:0x800578EC; // type:function size:0x20 +HuTHPSetVolume = .text:0x8005790C; // type:function size:0x30 +THPTestProc = .text:0x8005793C; // type:function size:0x27C scope:local +THPViewFunc = .text:0x80057BB8; // type:function size:0xA4 scope:local +THPViewSprFunc = .text:0x80057C5C; // type:function size:0x17C scope:local +THPDecodeFunc = .text:0x80057DD8; // type:function size:0x4C scope:local +omMgIndexGet = .text:0x80057E24; // type:function size:0x5C +omGameSysInit = .text:0x80057E80; // type:function size:0xF4 +omVibrate = .text:0x80057F74; // type:function size:0x9C +_CheckFlag = .text:0x80058010; // type:function size:0xA0 +_SetFlag = .text:0x800580B0; // type:function size:0xA4 +_ClearFlag = .text:0x80058154; // type:function size:0xA4 +_InitFlag = .text:0x800581F8; // type:function size:0x30 +SLFileOpen = .text:0x80058228; // type:function size:0x140 +SLFileCreate = .text:0x80058368; // type:function size:0x2B0 +SLFileWrite = .text:0x80058618; // type:function size:0x11C +SLFileRead = .text:0x80058734; // type:function size:0x84 +SLFileClose = .text:0x800587B8; // type:function size:0x4C +SLCurSlotNoSet = .text:0x80058804; // type:function size:0x8 +SLCurBoxNoSet = .text:0x8005880C; // type:function size:0xC +SLSaveFlagSet = .text:0x80058818; // type:function size:0x40 +SLSaveFlagGet = .text:0x80058858; // type:function size:0x8 +SLSaveDataMake = .text:0x80058860; // type:function size:0x154 +SLSaveDataInfoSet = .text:0x800589B4; // type:function size:0x218 +SLCommonSet = .text:0x80058BCC; // type:function size:0x254 +SLSaveBoard = .text:0x80058E20; // type:function size:0x8C +SLSaveBoardStory = .text:0x80058EAC; // type:function size:0x8C +SLSave = .text:0x80058F38; // type:function size:0x380 +SLCreateSaveWin = .text:0x800592B8; // type:function size:0xDC scope:local +SLKillSaveWin = .text:0x80059394; // type:function size:0x48 scope:local +SLLoad = .text:0x800593DC; // type:function size:0x110 +SLLoadGameStat = .text:0x800594EC; // type:function size:0x38 +SLLoadBoard = .text:0x80059524; // type:function size:0x1A0 +SLLoadBoardStory = .text:0x800596C4; // type:function size:0x184 +SLSerialNoGet = .text:0x80059848; // type:function size:0x28 +SLSerialNoCheck = .text:0x80059870; // type:function size:0xA0 +SLCheckSumCheck = .text:0x80059910; // type:function size:0x60 +SLCheckSumGet = .text:0x80059970; // type:function size:0x54 +SLCheckSumSet = .text:0x800599C4; // type:function size:0x90 +SLStatSet = .text:0x80059A54; // type:function size:0x1D4 +SLCardMount = .text:0x80059C28; // type:function size:0x12C +SLFormat = .text:0x80059D54; // type:function size:0x5A8 +SLMessOut = .text:0x8005A2FC; // type:function size:0x3FC +HuSoftResetButtonCheck = .text:0x8005A6F8; // type:function size:0x50 +HuDvdErrDispIntFunc = .text:0x8005A748; // type:function size:0x28 +HuDvdErrDispInit = .text:0x8005A770; // type:function size:0x1F4 +ToeThreadFunc = .text:0x8005A964; // type:function size:0xD8 scope:local +ToeDispCheck = .text:0x8005AA3C; // type:function size:0x128 scope:local +_HuDvdErrDispXFB = .text:0x8005AB64; // type:function size:0x2D0 scope:local +HuRestartSystem = .text:0x8005AE34; // type:function size:0xDC +HuSoftResetCheck = .text:0x8005AF10; // type:function size:0xFC scope:local +HuSoftResetCountCheck = .text:0x8005B00C; // type:function size:0xCC scope:local +HuSoftResetPostProc = .text:0x8005B0D8; // type:function size:0x78 scope:local +BoardObjectSetup = .text:0x8005B150; // type:function size:0x2E0 +InitBoardFunc = .text:0x8005B430; // type:function size:0x64 scope:local +ExecBoardFunc = .text:0x8005B494; // type:function size:0x9C scope:local +KillBoardFunc = .text:0x8005B530; // type:function size:0xCC scope:local +BoardKill = .text:0x8005B5FC; // type:function size:0xAC +BoardIsKill = .text:0x8005B6A8; // type:function size:0x48 +BoardPauseDisableSet = .text:0x8005B6F0; // type:function size:0x74 +BoardPauseDisableGet = .text:0x8005B764; // type:function size:0x48 +BoardSaveInit = .text:0x8005B7AC; // type:function size:0x524 +BoardStoryConfigSet = .text:0x8005BCD0; // type:function size:0x160 +BoardPartyConfigSet = .text:0x8005BE30; // type:function size:0x160 +DestroyMainFunc = .text:0x8005BF90; // type:function size:0xC scope:local +MainFunc = .text:0x8005BF9C; // type:function size:0x7D0 scope:local +BoardTurnNext = .text:0x8005C76C; // type:function size:0x8C +ExecTurnStart = .text:0x8005C7F8; // type:function size:0x28C scope:local +BoardNextOvlSet = .text:0x8005CA84; // type:function size:0xC4 +BoardStartCheck = .text:0x8005CB48; // type:function size:0x8C +CreateBoard = .text:0x8005CBD4; // type:function size:0x410 scope:local +DestroyBoard = .text:0x8005CFE4; // type:function size:0x128 scope:local +BoardLightHookSet = .text:0x8005D10C; // type:function size:0xC +BoardLightSetExec = .text:0x8005D118; // type:function size:0x44 +BoardLightResetExec = .text:0x8005D15C; // type:function size:0x50 +BoardCameraBackup = .text:0x8005D1AC; // type:function size:0x3C +BoardCameraRestore = .text:0x8005D1E8; // type:function size:0x48 +BoardCameraScissorSet = .text:0x8005D230; // type:function size:0x54 +BoardCameraViewSet = .text:0x8005D284; // type:function size:0x2AC +BoardCameraPosGet = .text:0x8005D530; // type:function size:0x48 +BoardCameraTargetGet = .text:0x8005D578; // type:function size:0x48 +BoardCameraRotGet = .text:0x8005D5C0; // type:function size:0x48 +BoardCameraZoomGet = .text:0x8005D608; // type:function size:0x20 +BoardCameraDirGet = .text:0x8005D628; // type:function size:0xA8 +BoardCameraPointDirGet = .text:0x8005D6D0; // type:function size:0xBC +BoardCameraMaskSet = .text:0x8005D78C; // type:function size:0x28 +BoardCameraMoveSet = .text:0x8005D7B4; // type:function size:0x50 +BoardCameraOffsetSet = .text:0x8005D804; // type:function size:0x30 +BoardCameraTargetPlayerSet = .text:0x8005D834; // type:function size:0xB4 +BoardCameraTargetModelSet = .text:0x8005D8E8; // type:function size:0x40 +BoardCameraTargetSpaceSet = .text:0x8005D928; // type:function size:0x44 +BoardCameraPosCalcFuncSet = .text:0x8005D96C; // type:function size:0x28 +BoardCameraQuakeSet = .text:0x8005D994; // type:function size:0x3C +BoardCameraQuakeReset = .text:0x8005D9D0; // type:function size:0x3C +BoardCameraTargetSet = .text:0x8005DA0C; // type:function size:0x28 +BoardCameraPosSet = .text:0x8005DA34; // type:function size:0x28 +BoardCameraXRotZoomSet = .text:0x8005DA5C; // type:function size:0x24 +BoardCameraZoomSet = .text:0x8005DA80; // type:function size:0x20 +BoardCameraRotSet = .text:0x8005DAA0; // type:function size:0x24 +BoardCameraNearFarSet = .text:0x8005DAC4; // type:function size:0x24 +BoardCameraNearFarGet = .text:0x8005DAE8; // type:function size:0x3C +BoardCameraMotionStart = .text:0x8005DB24; // type:function size:0x48 +BoardCameraMotionStartEx = .text:0x8005DB6C; // type:function size:0x230 +BoardCameraFovSet = .text:0x8005DD9C; // type:function size:0x20 +BoardCameraCullCheck = .text:0x8005DDBC; // type:function size:0x2BC +BoardCameraMotionIsDone = .text:0x8005E078; // type:function size:0x48 +BoardCameraMotionWait = .text:0x8005E0C0; // type:function size:0x58 +BoardCameraInit = .text:0x8005E118; // type:function size:0x24C +UpdateCamera = .text:0x8005E364; // type:function size:0x350 scope:local +CalcCameraTarget = .text:0x8005E6B4; // type:function size:0xE4 scope:local +CalcCameraPos = .text:0x8005E798; // type:function size:0x764 scope:local +BoardMGDoneFlagSet = .text:0x8005EEFC; // type:function size:0x48 +BoardMGDoneFlagGet = .text:0x8005EF44; // type:function size:0x48 +BoardMGExit = .text:0x8005EF8C; // type:function size:0x170 +KillBoardMG = .text:0x8005F0FC; // type:function size:0x60 scope:local +ExecBoardMG = .text:0x8005F15C; // type:function size:0xC4 scope:local +BoardMGCreate = .text:0x8005F220; // type:function size:0x74 +BoardEventFlagSet = .text:0x8005F294; // type:function size:0x28 +BoardEventFlagReset = .text:0x8005F2BC; // type:function size:0x28 +BoardEventFlagGet = .text:0x8005F2E4; // type:function size:0x48 +BoardMTXCalcLookAt = .text:0x8005F32C; // type:function size:0x10C +BoardArcSin = .text:0x8005F438; // type:function size:0x330 +BoardArcCos = .text:0x8005F768; // type:function size:0x390 +BoardRandInit = .text:0x8005FAF8; // type:function size:0x24 +BoardRand = .text:0x8005FB1C; // type:function size:0x24 +BoardRandMod = .text:0x8005FB40; // type:function size:0x50 +BoardRandFloat = .text:0x8005FB90; // type:function size:0x58 +BoardVecDistXZCalc = .text:0x8005FBE8; // type:function size:0x134 +BoardVecMaxDistXZCheck = .text:0x8005FD1C; // type:function size:0x15C +BoardDAngleCalcVec = .text:0x8005FE78; // type:function size:0x7C +BoardDAngleCalc = .text:0x8005FEF4; // type:function size:0x34 +BoardDAngleCalcRange = .text:0x8005FF28; // type:function size:0x1C0 +BoardVecMinDistCheck = .text:0x800600E8; // type:function size:0x6C +BoardFilterFadeOut = .text:0x80060154; // type:function size:0xD4 +BoardFilterFadeInit = .text:0x80060228; // type:function size:0x174 +BoardFilterFadePauseCheck = .text:0x8006039C; // type:function size:0x5C +BoardFilterFadeCheck = .text:0x800603F8; // type:function size:0x34 +UpdateFilter = .text:0x8006042C; // type:function size:0x178 scope:local +DrawFilter = .text:0x800605A4; // type:function size:0x350 scope:local +BoardConfettiCreate = .text:0x800608F4; // type:function size:0x164 +BoardConfettiKill = .text:0x80060A58; // type:function size:0x24 +BoardConfettiStop = .text:0x80060A7C; // type:function size:0x88 +UpdateConfetti = .text:0x80060B04; // type:function size:0xB8 scope:local +SpawnConfetti = .text:0x80060BBC; // type:function size:0x564 scope:local +MoveConfetti = .text:0x80061120; // type:function size:0x14C scope:local +DrawConfetti = .text:0x8006126C; // type:function size:0x254 scope:local +BoardLast5GfxInit = .text:0x800614C0; // type:function size:0x2B4 +UpdateLast5Gfx = .text:0x80061774; // type:function size:0x2AC scope:local +BoardLast5GfxShowSet = .text:0x80061A20; // type:function size:0xAC +BoardTauntInit = .text:0x80061ACC; // type:function size:0x80 +BoardTauntKill = .text:0x80061B4C; // type:function size:0x54 +TauntUpdate = .text:0x80061BA0; // type:function size:0x3A4 scope:local +BoardDataDirReadAsync = .text:0x80061F44; // type:function size:0x38 +BoardDataAsyncWait = .text:0x80061F7C; // type:function size:0x48 +BoardItemPrevGet = .text:0x80061FC4; // type:function size:0xC +BoardItemPrevSet = .text:0x80061FD0; // type:function size:0xC +BoardPlayerGetCharMess = .text:0x80061FDC; // type:function size:0x78 +BoardPlayerGetCharName = .text:0x80062054; // type:function size:0x78 +BoardPlayerIsAllCom = .text:0x800620CC; // type:function size:0x80 +BoardPlayerInit = .text:0x8006214C; // type:function size:0x16C +BoardPlayerModelInit = .text:0x800622B8; // type:function size:0x588 +BoardPlayerModelKill = .text:0x80062840; // type:function size:0xFC +BoardPlayerLayerSet = .text:0x8006293C; // type:function size:0x84 +BoardPlayerCameraSet = .text:0x800629C0; // type:function size:0x80 +fn_80062A40 = .text:0x80062A40; // type:function size:0x80 +BoardPlayerExistCheck = .text:0x80062AC0; // type:function size:0xB4 +BoardPlayerItemAdd = .text:0x80062B74; // type:function size:0xB0 +BoardPlayerItemRemove = .text:0x80062C24; // type:function size:0xB4 +BoardPlayerItemFind = .text:0x80062CD8; // type:function size:0x58 +BoardPlayerItemCount = .text:0x80062D30; // type:function size:0x60 +BoardPlayerCornerPosSet = .text:0x80062D90; // type:function size:0x40 +BoardPlayerCornerPosGet = .text:0x80062DD0; // type:function size:0xC4 +BoardPlayerAmbSet = .text:0x80062E94; // type:function size:0x90 +BoardPlayerMtxSet = .text:0x80062F24; // type:function size:0x80 +BoardPlayerPosSetV = .text:0x80062FA4; // type:function size:0x9C +BoardPlayerPosSet = .text:0x80063040; // type:function size:0xCC +BoardPlayerPosGet = .text:0x8006310C; // type:function size:0x80 +BoardPlayerRotSetV = .text:0x8006318C; // type:function size:0x9C +BoardPlayerRotSet = .text:0x80063228; // type:function size:0xCC +BoardPlayerRotGet = .text:0x800632F4; // type:function size:0x80 +BoardPlayerRotYSet = .text:0x80063374; // type:function size:0xD4 +BoardPlayerRotYGet = .text:0x80063448; // type:function size:0xA8 +BoardPlayerScaleSetV = .text:0x800634F0; // type:function size:0x80 +BoardPlayerScaleSet = .text:0x80063570; // type:function size:0x90 +BoardPlayerScaleGet = .text:0x80063600; // type:function size:0x80 +BoardPlayerCurrMotionGet = .text:0x80063680; // type:function size:0x44 +BoardPlayerVoiceEnableSet = .text:0x800636C4; // type:function size:0x88 +BoardPlayerMotionCreate = .text:0x8006374C; // type:function size:0x80 +BoardPlayerMotionKill = .text:0x800637CC; // type:function size:0x80 +BoardPlayerMotionEndCheck = .text:0x8006384C; // type:function size:0x78 +BoardPlayerMotionEndWait = .text:0x800638C4; // type:function size:0x88 +BoardPlayerMotionStart = .text:0x8006394C; // type:function size:0xD0 +BoardPlayerMotionShiftSet = .text:0x80063A1C; // type:function size:0xE0 +BoardPlayerMotionSpeedSet = .text:0x80063AFC; // type:function size:0x80 +BoardPlayerMotionTimeSet = .text:0x80063B7C; // type:function size:0x80 +BoardPlayerMotionTimeGet = .text:0x80063BFC; // type:function size:0x78 +BoardPlayerMotionMaxTimeGet = .text:0x80063C74; // type:function size:0x78 +BoardPlayerMotionStartEndSet = .text:0x80063CEC; // type:function size:0xA0 +BoardPlayerModelAttrSet = .text:0x80063D8C; // type:function size:0x80 +BoardPlayerModelAttrReset = .text:0x80063E0C; // type:function size:0x80 +BoardPlayerCoinsSet = .text:0x80063E8C; // type:function size:0x34 +BoardPlayerCoinsGet = .text:0x80063EC0; // type:function size:0x2C +BoardPlayerCoinsAdd = .text:0x80063EEC; // type:function size:0x9C +BoardPlayerStarsAdd = .text:0x80063F88; // type:function size:0x48 +BoardPlayerSizeSet = .text:0x80063FD0; // type:function size:0x16C +BoardPlayerSizeGet = .text:0x8006413C; // type:function size:0x40 +BoardPlayerSameTeamFind = .text:0x8006417C; // type:function size:0x7C +BoardPlayerTeamFind = .text:0x800641F8; // type:function size:0x7C +BoardPlayerRankCalc = .text:0x80064274; // type:function size:0xC4 +BoardPlayerPreTurnHookSet = .text:0x80064338; // type:function size:0x18 +BoardPlayerPostTurnHookSet = .text:0x80064350; // type:function size:0x18 +BoardPlayerTurnExec = .text:0x80064368; // type:function size:0x15C +BoardPlayerTurnRollExec = .text:0x800644C4; // type:function size:0x160 +BoardPlayerTurnMoveExec = .text:0x80064624; // type:function size:0x420 +BoardPlayerPostTurnHookExec = .text:0x80064A44; // type:function size:0x80 +BoardPlayerSizeRestore = .text:0x80064AC4; // type:function size:0x18C +BoardPlayerZoomRestore = .text:0x80064C50; // type:function size:0x134 +BoardJunctionMaskSet = .text:0x80064D84; // type:function size:0x10 +BoardJunctionMaskReset = .text:0x80064D94; // type:function size:0x10 +BoardJunctionMaskZero = .text:0x80064DA4; // type:function size:0xC +InitJunction = .text:0x80064DB0; // type:function size:0x634 scope:local +UpdateJunctionGfx = .text:0x800653E4; // type:function size:0x1A0 scope:local +StopJunctionPlayer = .text:0x80065584; // type:function size:0x70 scope:local +RestoreJunction = .text:0x800655F4; // type:function size:0x180 scope:local +GetDefaultDirection = .text:0x80065774; // type:function size:0x114 scope:local +DoDebugMove = .text:0x80065888; // type:function size:0x8E8 scope:local +ExecJunction = .text:0x80066170; // type:function size:0xBF8 scope:local +BoardPlayerMoveTo = .text:0x80066D68; // type:function size:0xBC +BoardPlayerMoveBetween = .text:0x80066E24; // type:function size:0x90 +BoardPlayerMoveToAsync = .text:0x80066EB4; // type:function size:0x90 +BoardPlayerPosLerpStart = .text:0x80066F44; // type:function size:0x430 +PlayerPosLerpFunc = .text:0x80067374; // type:function size:0x218 scope:local +BoardPlayerDiceJumpStart = .text:0x8006758C; // type:function size:0x1D4 +BoardPlayerDiceJumpCheck = .text:0x80067760; // type:function size:0x54 +DiceJumpFunc = .text:0x800677B4; // type:function size:0x3E4 scope:local +BoardPlayerIdleSet = .text:0x80067B98; // type:function size:0xF8 +BoardPlayerMotBlendSet = .text:0x80067C90; // type:function size:0x5A0 +ExecMotBlend = .text:0x80068230; // type:function size:0x51C scope:local +BoardPlayerMotBlendCheck = .text:0x8006874C; // type:function size:0x2C +BoardRollCreate = .text:0x80068778; // type:function size:0x138 +BoardRollUpdateSet = .text:0x800688B0; // type:function size:0x38 +BoardRollDispSet = .text:0x800688E8; // type:function size:0x10C +UpdateRollSprite = .text:0x800689F4; // type:function size:0x194 scope:local +UpdateRoll = .text:0x80068B88; // type:function size:0x278 scope:local +BoardPlayerBtnDownWait = .text:0x80068E00; // type:function size:0x6C +BoardPlayerAutoSizeSet = .text:0x80068E6C; // type:function size:0x9C +BoardPlayerAutoSizeGet = .text:0x80068F08; // type:function size:0x40 +BoardPlayerMoveAwayIsDone = .text:0x80068F48; // type:function size:0x1C +BoardPlayerMoveAwayStart = .text:0x80068F64; // type:function size:0x224 +BoardPlayerMoveAwayStartCurr = .text:0x80069188; // type:function size:0x40 +MoveAwayObjFunc = .text:0x800691C8; // type:function size:0x100 scope:local +BoardBowserSuitInit = .text:0x800692C8; // type:function size:0x1A4 +BoardBowserSuitKill = .text:0x8006946C; // type:function size:0x128 +BoardBowserSuitModelGet = .text:0x80069594; // type:function size:0x8 +BoardBowserSuitPlayerModelGet = .text:0x8006959C; // type:function size:0x8 +BoardBowserSuitMotionCreate = .text:0x800695A4; // type:function size:0x74 +BoardBowserSuitMotionSetWait = .text:0x80069618; // type:function size:0x54 +BoardBowserSuitMotionSetWalk = .text:0x8006966C; // type:function size:0x4C +BoardBowserSuitMotionSetWin = .text:0x800696B8; // type:function size:0x44 +BoardBowserSuitMotionSetJump = .text:0x800696FC; // type:function size:0x44 +BoardBowserSuitPlayerModelKill = .text:0x80069740; // type:function size:0x44 +UpdateBowserSuit = .text:0x80069784; // type:function size:0x1F0 scope:local +BoardPlayerSparkSet = .text:0x80069974; // type:function size:0x5C +DoSparkSpace = .text:0x800699D0; // type:function size:0x1294 scope:local +RemoveSparkSpace = .text:0x8006AC64; // type:function size:0xA0 scope:local +SetPlayerSizeAuto = .text:0x8006AD04; // type:function size:0x24C scope:local +BoardMegaDoubleDiceCheck = .text:0x8006AF50; // type:function size:0x8 +BoardPlayerResizeAnimExec = .text:0x8006AF58; // type:function size:0x38C +MegaSquishFunc = .text:0x8006B2E4; // type:function size:0x950 scope:local +MegaPlayerPassFunc = .text:0x8006BC34; // type:function size:0x980 scope:local +MegaExecJump = .text:0x8006C5B4; // type:function size:0xA48 scope:local +BoardPlayerCopyEyeMat = .text:0x8006CFFC; // type:function size:0x24C +BoardPlayerCopyMat = .text:0x8006D248; // type:function size:0xC0 +BoardModelInit = .text:0x8006D308; // type:function size:0xF0 +BoardModelKillAll = .text:0x8006D3F8; // type:function size:0xA0 +ModelMgrFunc = .text:0x8006D498; // type:function size:0x70 scope:local +BoardModelDummyUpdate = .text:0x8006D508; // type:function size:0x4 +BoardModelVisibilityUpdate = .text:0x8006D50C; // type:function size:0xCC +BoardModelHideSetAll = .text:0x8006D5D8; // type:function size:0x90 +BoardModelAmbSetAll = .text:0x8006D668; // type:function size:0x70 +BoardModelCameraSetAll = .text:0x8006D6D8; // type:function size:0x7C +CreateInstance = .text:0x8006D754; // type:function size:0x250 scope:local +BoardModelCreate = .text:0x8006D9A4; // type:function size:0x40 +BoardModelCreateCharacter = .text:0x8006D9E4; // type:function size:0x44 +BoardModelCreateParam = .text:0x8006DA28; // type:function size:0x168 +BoardModelKill = .text:0x8006DB90; // type:function size:0x44 +BoardModelIDGet = .text:0x8006DBD4; // type:function size:0x48 +fn_8006DC1C = .text:0x8006DC1C; // type:function size:0x60 +BoardModelPassSet = .text:0x8006DC7C; // type:function size:0x74 +BoardModelAmbSet = .text:0x8006DCF0; // type:function size:0x68 +BoardModelExistCheck = .text:0x8006DD58; // type:function size:0x48 +BoardModelExistDupe = .text:0x8006DDA0; // type:function size:0x48 +fn_8006DDE8 = .text:0x8006DDE8; // type:function size:0x70 +BoardModelMotionCreate = .text:0x8006DE58; // type:function size:0x140 +BoardModelMotionKill = .text:0x8006DF98; // type:function size:0x118 +BoardModelMotionStartEndSet = .text:0x8006E0B0; // type:function size:0xE8 +BoardModelMotionUpdateSet = .text:0x8006E198; // type:function size:0x7C +BoardModelVoiceEnableSet = .text:0x8006E214; // type:function size:0xA4 +BoardModelMotionStart = .text:0x8006E2B8; // type:function size:0x174 +BoardModelMotionShiftIDGet = .text:0x8006E42C; // type:function size:0x50 +BoardModelMotionShiftSet = .text:0x8006E47C; // type:function size:0x148 +BoardModelAttrSet = .text:0x8006E5C4; // type:function size:0x58 +BoardModelAttrReset = .text:0x8006E61C; // type:function size:0x58 +BoardModelMotionTimeSet = .text:0x8006E674; // type:function size:0x84 +BoardModelMotionTimeGet = .text:0x8006E6F8; // type:function size:0x94 +BoardModelMotionMaxTimeGet = .text:0x8006E78C; // type:function size:0x88 +BoardModelMotionSpeedGet = .text:0x8006E814; // type:function size:0x64 +BoardModelMotionSpeedSet = .text:0x8006E878; // type:function size:0xA4 +BoardModelMotionEndCheck = .text:0x8006E91C; // type:function size:0x80 +BoardModelMotionShapeSet = .text:0x8006E99C; // type:function size:0x100 +BoardModelMotionShapeTimeGet = .text:0x8006EA9C; // type:function size:0x7C +BoardModelMotionShapeMaxTimeGet = .text:0x8006EB18; // type:function size:0xBC +BoardModelMotionShapeSpeedSet = .text:0x8006EBD4; // type:function size:0x88 +BoardModelMotionShapeSpeedGet = .text:0x8006EC5C; // type:function size:0x64 +BoardModelMotionShapeEndCheck = .text:0x8006ECC0; // type:function size:0x14C +BoardModelMotionShapeStartEndSet = .text:0x8006EE0C; // type:function size:0x100 +BoardModelAlphaSet = .text:0x8006EF0C; // type:function size:0xB0 +BoardModelMtxSet = .text:0x8006EFBC; // type:function size:0x8C +BoardModelMtxGet = .text:0x8006F048; // type:function size:0x8C +BoardModelRotYSet = .text:0x8006F0D4; // type:function size:0x54 +BoardModelRotYGet = .text:0x8006F128; // type:function size:0x30 +BoardModelPosSetV = .text:0x8006F158; // type:function size:0x50 +BoardModelPosSet = .text:0x8006F1A8; // type:function size:0x78 +BoardModelRotSetV = .text:0x8006F220; // type:function size:0x50 +BoardModelRotSet = .text:0x8006F270; // type:function size:0x78 +BoardModelScaleSetV = .text:0x8006F2E8; // type:function size:0x50 +BoardModelScaleSet = .text:0x8006F338; // type:function size:0x78 +BoardModelPosGet = .text:0x8006F3B0; // type:function size:0x74 +BoardModelRotGet = .text:0x8006F424; // type:function size:0x74 +BoardModelScaleGet = .text:0x8006F498; // type:function size:0x74 +BoardModelVisibilitySet = .text:0x8006F50C; // type:function size:0x60 +BoardModelVisibilityGet = .text:0x8006F56C; // type:function size:0x4C +BoardModelCameraSet = .text:0x8006F5B8; // type:function size:0x64 +BoardModelLayerSet = .text:0x8006F61C; // type:function size:0x64 +BoardModelLayerGet = .text:0x8006F680; // type:function size:0x48 +BoardModelLayerSetAll = .text:0x8006F6C8; // type:function size:0x74 +BoardModelHookSet = .text:0x8006F73C; // type:function size:0xC4 +BoardModelHookReset = .text:0x8006F800; // type:function size:0x50 +BoardModelHookObjReset = .text:0x8006F850; // type:function size:0x58 +SearchBoardModel = .text:0x8006F8A8; // type:function size:0x9C scope:local +KillBoardModel = .text:0x8006F944; // type:function size:0x178 scope:local +CreateBoardModel = .text:0x8006FABC; // type:function size:0x194 scope:local +CreateBoardModelMotion = .text:0x8006FC50; // type:function size:0x12C scope:local +BoardWinInit = .text:0x8006FD7C; // type:function size:0x24 +BoardWinUnusedArraySet = .text:0x8006FDA0; // type:function size:0x34 +BoardWinKillAll = .text:0x8006FDD4; // type:function size:0x24 +BoardWinDestroy = .text:0x8006FDF8; // type:function size:0x6C +ExecBoardWindow = .text:0x8006FE64; // type:function size:0x514 scope:local +BoardWinChoiceGet = .text:0x80070378; // type:function size:0xC +BoardWinPause = .text:0x80070384; // type:function size:0xC +BoardWinCreateChoice = .text:0x80070390; // type:function size:0x1A0 +BoardWinCreate = .text:0x80070530; // type:function size:0x1A0 +BoardWinInsertMesSet = .text:0x800706D0; // type:function size:0x18 +BoardWinWait = .text:0x800706E8; // type:function size:0x50 +BoardWinKill = .text:0x80070738; // type:function size:0x38 +BoardWinAttrSet = .text:0x80070770; // type:function size:0x48 +BoardWinAttrReset = .text:0x800707B8; // type:function size:0x48 +BoardWinChoiceDisable = .text:0x80070800; // type:function size:0x1C +BoardWinKeyWait = .text:0x8007081C; // type:function size:0xC +BoardWinSpeedGet = .text:0x80070828; // type:function size:0x64 +BoardWinSpeedSet = .text:0x8007088C; // type:function size:0x50 +BoardWinChoiceNowGet = .text:0x800708DC; // type:function size:0x38 +BoardWinPriSet = .text:0x80070914; // type:function size:0x44 +BoardWinChoiceNowGet2 = .text:0x80070958; // type:function size:0x38 +BoardWinPortraitGet = .text:0x80070990; // type:function size:0x38 +BoardWinPortraitGetStar = .text:0x800709C8; // type:function size:0x38 +BoardWinPlayerSet = .text:0x80070A00; // type:function size:0x168 +BoardWinStartComKeySet = .text:0x80070B68; // type:function size:0x214 +BoardWinComKeyFuncSet = .text:0x80070D7C; // type:function size:0x8 +BoardMusStartBoard = .text:0x80070D84; // type:function size:0x68 +BoardMusStart = .text:0x80070DEC; // type:function size:0xD0 +BoardAudSeqFadeOutFast = .text:0x80070EBC; // type:function size:0x2C +BoardAudSeqFadeOut = .text:0x80070EE8; // type:function size:0x60 +BoardMusLoudSet = .text:0x80070F48; // type:function size:0x5C +BoardMusVolPanSet = .text:0x80070FA4; // type:function size:0x90 +BoardAudSeqPause = .text:0x80071034; // type:function size:0x94 +BoardMusStatusGet = .text:0x800710C8; // type:function size:0x54 +BoardAudSeqClear = .text:0x8007111C; // type:function size:0x50 +BoardAudSeqFadeOutAll = .text:0x8007116C; // type:function size:0x74 +BoardAudFXPlay = .text:0x800711E0; // type:function size:0x78 +BoardAudFXStop = .text:0x80071258; // type:function size:0x38 +ExecComKeyLeft = .text:0x80071290; // type:function size:0x38 scope:local +BoardComKeySetLeft = .text:0x800712C8; // type:function size:0x28 +ExecComKeyRight = .text:0x800712F0; // type:function size:0x38 scope:local +BoardComKeySetRight = .text:0x80071328; // type:function size:0x28 +ExecComKeyUp = .text:0x80071350; // type:function size:0x38 scope:local +BoardComKeySetUp = .text:0x80071388; // type:function size:0x28 +ExecComKeyDown = .text:0x800713B0; // type:function size:0x38 scope:local +BoardComKeySetDown = .text:0x800713E8; // type:function size:0x28 +ExecComKey = .text:0x80071410; // type:function size:0xE8 scope:local +BoardComPreferItemGet = .text:0x800714F8; // type:function size:0x100 +BoardComPreferItemCheck = .text:0x800715F8; // type:function size:0x120 +BoardComItemWeightGet = .text:0x80071718; // type:function size:0x74 +BoardComUseItemSlotGet = .text:0x8007178C; // type:function size:0xD0 +BoardComUseItemSet = .text:0x8007185C; // type:function size:0x6C +BoardComUseItemCheck = .text:0x800718C8; // type:function size:0x68 +ChooseUseItem = .text:0x80071930; // type:function size:0x16C scope:local +CheckMiniUse = .text:0x80071A9C; // type:function size:0x220 scope:local +CheckMegaUse = .text:0x80071CBC; // type:function size:0x248 scope:local +CheckSparkUse = .text:0x80071F04; // type:function size:0x158 scope:local +CheckBoardChangeUse = .text:0x8007205C; // type:function size:0x314 scope:local +CheckSwapUse = .text:0x80072370; // type:function size:0x198 scope:local +CheckBooUse = .text:0x80072508; // type:function size:0x7C scope:local +CheckLampUse = .text:0x80072584; // type:function size:0x74 scope:local +BoardComJunctionInputGet = .text:0x800725F8; // type:function size:0x304 +BoardComFarPlayerFind = .text:0x800728FC; // type:function size:0xA8 +BoardViewOverheadExec = .text:0x800729A4; // type:function size:0x134 +BoardViewFocusGetPos = .text:0x80072AD8; // type:function size:0x3C +BoardViewFocusSet = .text:0x80072B14; // type:function size:0xF0 +BoardViewMoveStart = .text:0x80072C04; // type:function size:0x128 +BoardViewMoveCheck = .text:0x80072D2C; // type:function size:0x34 +BoardViewMoveEnd = .text:0x80072D60; // type:function size:0xC +BoardViewWait = .text:0x80072D6C; // type:function size:0x3C +BoardViewMapExec = .text:0x80072DA8; // type:function size:0xC8 +ExecMapView = .text:0x80072E70; // type:function size:0x398 scope:local +ExecStarView = .text:0x80073208; // type:function size:0x170 scope:local +ExecOverheadView = .text:0x80073378; // type:function size:0x158 scope:local +DestroyView = .text:0x800734D0; // type:function size:0x80 scope:local +SetTargetView = .text:0x80073550; // type:function size:0x178 scope:local +DestroyFocus = .text:0x800736C8; // type:function size:0x4C scope:local +CreateButtonWin = .text:0x80073714; // type:function size:0xE0 scope:local +DestroyButtonWin = .text:0x800737F4; // type:function size:0x38 scope:local +InitOverheadView = .text:0x8007382C; // type:function size:0x374 scope:local +DestroyOverheadView = .text:0x80073BA0; // type:function size:0x24 scope:local +UpdateOverheadView = .text:0x80073BC4; // type:function size:0x400 scope:local +WaitOverheadView = .text:0x80073FC4; // type:function size:0x30 scope:local +BoardSpaceWalkEventFuncSet = .text:0x80073FF4; // type:function size:0x8 +BoardSpaceWalkMiniEventFuncSet = .text:0x80073FFC; // type:function size:0x8 +BoardSpaceLandEventFuncSet = .text:0x80074004; // type:function size:0x8 +BoardSpaceWalkEventExec = .text:0x8007400C; // type:function size:0x48 +BoardSpaceWalkMiniEventExec = .text:0x80074054; // type:function size:0x60 +BoardSpaceCountGet = .text:0x800740B4; // type:function size:0x10 +BoardSpaceGet = .text:0x800740C4; // type:function size:0x44 +BoardSpaceAttrSet = .text:0x80074108; // type:function size:0x18 +BoardSpaceAttrReset = .text:0x80074120; // type:function size:0x18 +BoardSpaceFlagGet = .text:0x80074138; // type:function size:0x48 +BoardSpaceTypeGet = .text:0x80074180; // type:function size:0x48 +BoardSpaceTypeSet = .text:0x800741C8; // type:function size:0x48 +BoardSpacePosGet = .text:0x80074210; // type:function size:0x8C +BoardSpaceCornerPosGet = .text:0x8007429C; // type:function size:0x2C8 +BoardSpaceRotGet = .text:0x80074564; // type:function size:0x8C +BoardSpaceFlagSearch = .text:0x800745F0; // type:function size:0xA0 +BoardSpaceFlagPosGet = .text:0x80074690; // type:function size:0x134 +BoardSpaceLinkFlagSearch = .text:0x800747C4; // type:function size:0x134 +BoardSpaceLinkTypeListGet = .text:0x800748F8; // type:function size:0x148 +BoardSpaceLinkTargetListGet = .text:0x80074A40; // type:function size:0x104 +BoardSpaceLinkTypeSearch = .text:0x80074B44; // type:function size:0x110 +BoardSpaceLinkTransformGet = .text:0x80074C54; // type:function size:0x1FC +BoardSpaceHostSet = .text:0x80074E50; // type:function size:0x1BC +BoardSpaceStarSetIndex = .text:0x8007500C; // type:function size:0x4AC +BoardSpaceStarGetNext = .text:0x800754B8; // type:function size:0x344 +BoardSpaceStarGetRandom = .text:0x800757FC; // type:function size:0x9C +BoardSpaceStarMove = .text:0x80075898; // type:function size:0xF0 +BoardSpaceStarGet = .text:0x80075988; // type:function size:0x1C +BoardSpaceStarGetCurr = .text:0x800759A4; // type:function size:0x3C +BoardSpaceStarCheck = .text:0x800759E0; // type:function size:0x110 +BoardSpaceLandExec = .text:0x80075AF0; // type:function size:0x474 +BoardSpaceWalkExec = .text:0x80075F64; // type:function size:0x2A4 +BoardSpaceBlockExec = .text:0x80076208; // type:function size:0x180 +ExecPipeSpace = .text:0x80076388; // type:function size:0x268 scope:local +BoardSpaceTypeForce = .text:0x800765F0; // type:function size:0x5C +BoardSpaceHide = .text:0x8007664C; // type:function size:0x48 +DrawSpaces = .text:0x80076694; // type:function size:0x9E8 scope:local +BoardSpaceRead = .text:0x8007707C; // type:function size:0x174 +BoardSpaceCameraSet = .text:0x800771F0; // type:function size:0x2C +BoardSpaceBlockPosSet = .text:0x8007721C; // type:function size:0xD0 +BoardSpaceInit = .text:0x800772EC; // type:function size:0x750 +BoardSpaceDestroy = .text:0x80077A3C; // type:function size:0x70 +BoardShopHostSet = .text:0x80077AAC; // type:function size:0x8 +BoardShopHostGet = .text:0x80077AB4; // type:function size:0x8 +BoardShopInit = .text:0x80077ABC; // type:function size:0xD4 +BoardShopKill = .text:0x80077B90; // type:function size:0xA0 +BoardShopExec = .text:0x80077C30; // type:function size:0x9C +ExecShop = .text:0x80077CCC; // type:function size:0x800 scope:local +DestroyShop = .text:0x800784CC; // type:function size:0xD4 scope:local +PopupShop = .text:0x800785A0; // type:function size:0x1B4 scope:local +CloseShop = .text:0x80078754; // type:function size:0xBC scope:local +CreateShopWin = .text:0x80078810; // type:function size:0x13C scope:local +UpdateShopWin = .text:0x8007894C; // type:function size:0x314 scope:local +SetShopWinItem = .text:0x80078C60; // type:function size:0x168 scope:local +PauseShopWin = .text:0x80078DC8; // type:function size:0x2C scope:local +StartItemGive = .text:0x80078DF4; // type:function size:0x18C scope:local +ExecItemGive = .text:0x80078F80; // type:function size:0x168 scope:local +MoveItemGive = .text:0x800790E8; // type:function size:0x34C scope:local +ShrinkItemGive = .text:0x80079434; // type:function size:0x144 scope:local +WaitItemGive = .text:0x80079578; // type:function size:0x6C scope:local +GetShopItems = .text:0x800795E4; // type:function size:0x280 scope:local +GetDefaultShopItems = .text:0x80079864; // type:function size:0xA0 scope:local +SortShopItems = .text:0x80079904; // type:function size:0x14C scope:local +DecideComEnter = .text:0x80079A50; // type:function size:0x1C8 scope:local +DecideComBuy = .text:0x80079C18; // type:function size:0x60 scope:local +GetComItemChoice = .text:0x80079C78; // type:function size:0x158 scope:local +WaitItemChoice = .text:0x80079DD0; // type:function size:0x30 scope:local +CreateShopItemChoice = .text:0x80079E00; // type:function size:0x188 scope:local +GetShopItemChoice = .text:0x80079F88; // type:function size:0xC scope:local +GetShopItemWinChoice = .text:0x80079F94; // type:function size:0x38 scope:local +MoveShopItemChoice = .text:0x80079FCC; // type:function size:0x260 scope:local +UpdateShopItemChoice = .text:0x8007A22C; // type:function size:0x104 scope:local +GetShopItemChoiceInput = .text:0x8007A330; // type:function size:0x30 scope:local +BoardShopTutorialExec = .text:0x8007A360; // type:function size:0x4DC +BoardLotteryHostSet = .text:0x8007A83C; // type:function size:0x8 +BoardLotteryHostGet = .text:0x8007A844; // type:function size:0x8 +BoardLotteryExec = .text:0x8007A84C; // type:function size:0x8C +BoardLotteryInit = .text:0x8007A8D8; // type:function size:0x16C +CreateModel = .text:0x8007AA44; // type:function size:0x3B4 scope:local +KillModel = .text:0x8007ADF8; // type:function size:0x1FC scope:local +BoardLotteryKill = .text:0x8007AFF4; // type:function size:0x64 +DestroyLottery = .text:0x8007B058; // type:function size:0xB0 scope:local +ExecLottery = .text:0x8007B108; // type:function size:0x798 scope:local +DoMiniJumpUp = .text:0x8007B8A0; // type:function size:0x20C scope:local +DoMiniJumpDown = .text:0x8007BAAC; // type:function size:0x1BC scope:local +PayEnterFee = .text:0x8007BC68; // type:function size:0xF0 scope:local +ShowTicket = .text:0x8007BD58; // type:function size:0x3C8 scope:local +SetupTicket = .text:0x8007C120; // type:function size:0x140 scope:local +ExecBallGame = .text:0x8007C260; // type:function size:0x914 scope:local +SetBallPrize = .text:0x8007CB74; // type:function size:0xC8 scope:local +ExecBallPrize = .text:0x8007CC3C; // type:function size:0x27C scope:local +ExecScratchTicket = .text:0x8007CEB8; // type:function size:0x30C scope:local +ExecScratch = .text:0x8007D1C4; // type:function size:0x3AC scope:local +KillScratch = .text:0x8007D570; // type:function size:0x6C scope:local +ExecScratchSpr = .text:0x8007D5DC; // type:function size:0x21C scope:local +HideScratchSpr = .text:0x8007D7F8; // type:function size:0x68 scope:local +InitScratchSpr = .text:0x8007D860; // type:function size:0x288 scope:local +ExecScratchPick = .text:0x8007DAE8; // type:function size:0x3DC scope:local +InitScratchPick = .text:0x8007DEC4; // type:function size:0x14C scope:local +InitTicketPrizes = .text:0x8007E010; // type:function size:0xD0 scope:local +ExecTicketFocus = .text:0x8007E0E0; // type:function size:0x160 scope:local +ScratchTicketCheckDone = .text:0x8007E240; // type:function size:0xA8 scope:local +TicketGetPixel = .text:0x8007E2E8; // type:function size:0x84 scope:local +TicketUpdate = .text:0x8007E36C; // type:function size:0x6B0 scope:local +ExecCoinPrize = .text:0x8007EA1C; // type:function size:0x440 scope:local +ExecItemPrize = .text:0x8007EE5C; // type:function size:0x338 scope:local +KillCoin = .text:0x8007F194; // type:function size:0x68 scope:local +ExecPrize = .text:0x8007F1FC; // type:function size:0x4C0 scope:local +ExecLose = .text:0x8007F6BC; // type:function size:0xA4 scope:local +CreateLotteryWin = .text:0x8007F760; // type:function size:0xFC scope:local +KillLotteryWin = .text:0x8007F85C; // type:function size:0x38 scope:local +BoardLotteryTutorialExec = .text:0x8007F894; // type:function size:0x2BC +BoardLandBlueExec = .text:0x8007FB50; // type:function size:0x184 +BoardLandRedExec = .text:0x8007FCD4; // type:function size:0x19C +BoardCoinChgCreate = .text:0x8007FE70; // type:function size:0x1E8 +BoardCoinChgExist = .text:0x80080058; // type:function size:0x6C +BoardCoinChgHide = .text:0x800800C4; // type:function size:0x60 +CreateCoinChg = .text:0x80080124; // type:function size:0x23C scope:local +UpdateCoinChg = .text:0x80080360; // type:function size:0x198 scope:local +CoinChgAppear = .text:0x800804F8; // type:function size:0x1B8 scope:local +CoinChgSeparate = .text:0x800806B0; // type:function size:0x29C scope:local +CoinChgShow = .text:0x8008094C; // type:function size:0x1A8 scope:local +CoinChgDisappear = .text:0x80080AF4; // type:function size:0x260 scope:local +BoardWarpExec = .text:0x80080D54; // type:function size:0xA4 +WarpProcess = .text:0x80080DF8; // type:function size:0x250 scope:local +WarpKill = .text:0x80081048; // type:function size:0x5C scope:local +WarpInit = .text:0x800810A4; // type:function size:0x118 scope:local +WarpLaunch = .text:0x800811BC; // type:function size:0xBC scope:local +WarpStartImpact = .text:0x80081278; // type:function size:0x1B0 scope:local +WarpFall = .text:0x80081428; // type:function size:0xA4 scope:local +WarpImpact = .text:0x800814CC; // type:function size:0x200 scope:local +BoardCharWheelInit = .text:0x800816CC; // type:function size:0x11C +BoardCharWheelCheck = .text:0x800817E8; // type:function size:0x34 +BoardCharWheelWait = .text:0x8008181C; // type:function size:0x50 +BoardCharWheelResultGet = .text:0x8008186C; // type:function size:0x18 +BoardCharWheelSpeedSet = .text:0x80081884; // type:function size:0x1C +ExecCharWheel = .text:0x800818A0; // type:function size:0xFC scope:local +InitCharWheel = .text:0x8008199C; // type:function size:0x754 scope:local +UpdateCharWheel = .text:0x800820F0; // type:function size:0x314 scope:local +StopCharWheel = .text:0x80082404; // type:function size:0x164 scope:local +GrowCharWheel = .text:0x80082568; // type:function size:0x120 scope:local +ShrinkCharWheel = .text:0x80082688; // type:function size:0x10C scope:local +KillCharWheelSpr = .text:0x80082794; // type:function size:0x38 scope:local +SetCharWheelChars = .text:0x800827CC; // type:function size:0xBC scope:local +GetInput = .text:0x80082888; // type:function size:0x224 scope:local +BoardCharWheelTargetSet = .text:0x80082AAC; // type:function size:0x10 +GetComDelay = .text:0x80082ABC; // type:function size:0x148 scope:local +GetComInput = .text:0x80082C04; // type:function size:0x8C scope:local +BoardMushroomExec = .text:0x80082C90; // type:function size:0xA4 +MushroomMain = .text:0x80082D34; // type:function size:0x38C scope:local +KillMushroom = .text:0x800830C0; // type:function size:0x58 scope:local +BoxMain = .text:0x80083118; // type:function size:0x118 scope:local +ShowBox = .text:0x80083230; // type:function size:0x114 scope:local +ExitBox = .text:0x80083344; // type:function size:0x160 scope:local +HideBox = .text:0x800834A4; // type:function size:0x68 scope:local +CenterBox = .text:0x8008350C; // type:function size:0xD4 scope:local +InitBox = .text:0x800835E0; // type:function size:0x2EC scope:local +MarkKillBox = .text:0x800838CC; // type:function size:0x64 scope:local +SetBoxHide = .text:0x80083930; // type:function size:0x34 scope:local +SetBoxCenter = .text:0x80083964; // type:function size:0x54 scope:local +SetBoxShow = .text:0x800839B8; // type:function size:0x34 scope:local +WaitBoxOpen = .text:0x800839EC; // type:function size:0x5C scope:local +WaitBoxCenter = .text:0x80083A48; // type:function size:0x58 scope:local +CheckBox = .text:0x80083AA0; // type:function size:0x60 scope:local +DoItemGive = .text:0x80083B00; // type:function size:0x240 scope:local +StartItemGive = .text:0x80083D40; // type:function size:0xD4 scope:local +KillItemMdl = .text:0x80083E14; // type:function size:0x38 scope:local +ShowItemMdl = .text:0x80083E4C; // type:function size:0x48 scope:local +WaitItemGive = .text:0x80083E94; // type:function size:0x48 scope:local +BoardStarHostSet = .text:0x80083EDC; // type:function size:0xA8 +BoardStarHostMdlGet = .text:0x80083F84; // type:function size:0x8 +BoardStarExec = .text:0x80083F8C; // type:function size:0xCC +ExecStar = .text:0x80084058; // type:function size:0x8F4 scope:local +DestroyStar = .text:0x8008494C; // type:function size:0x84 scope:local +GiveStarMain = .text:0x800849D0; // type:function size:0x160 scope:local +UpdateStarAngle = .text:0x80084B30; // type:function size:0x144 scope:local +InitGiveStar = .text:0x80084C74; // type:function size:0x10C scope:local +MoveGiveStar = .text:0x80084D80; // type:function size:0x180 scope:local +ShrinkGiveStar = .text:0x80084F00; // type:function size:0x204 scope:local +StopGiveStar = .text:0x80085104; // type:function size:0x38 scope:local +InitGiveStarEffect = .text:0x8008513C; // type:function size:0xB4 scope:local +KillGiveStarEffect = .text:0x800851F0; // type:function size:0x40 scope:local +BoardStarGive = .text:0x80085230; // type:function size:0x31C +BoardStarShowNext = .text:0x8008554C; // type:function size:0x628 +ShowNextUpdate = .text:0x80085B74; // type:function size:0x130 scope:local +HideNextHost = .text:0x80085CA4; // type:function size:0x24 scope:local +BoardRollExec = .text:0x80085CC8; // type:function size:0x1EC +BoardRollKill = .text:0x80085EB4; // type:function size:0x38 +BoardRollUPauseSet = .text:0x80085EEC; // type:function size:0x84 +BoardRollWinDispSet = .text:0x80085F70; // type:function size:0x4C +RollMain = .text:0x80085FBC; // type:function size:0x490 scope:local +DiceCreate = .text:0x8008644C; // type:function size:0x280 scope:local +DoInput = .text:0x800866CC; // type:function size:0x1C8 scope:local +DiceWaitFull = .text:0x80086894; // type:function size:0x60 scope:local +DiceSetHit = .text:0x800868F4; // type:function size:0x130 scope:local +RollDestroy = .text:0x80086A24; // type:function size:0x60 scope:local +DiceMain = .text:0x80086A84; // type:function size:0x7E4 scope:local +DicePause = .text:0x80087268; // type:function size:0x40 scope:local +DicePauseAll = .text:0x800872A8; // type:function size:0x90 scope:local +BoardDiceEffectCreate = .text:0x80087338; // type:function size:0xE0 +DiceHideEffect = .text:0x80087418; // type:function size:0x84 scope:local +BoardDicePauseAll = .text:0x8008749C; // type:function size:0x94 +BoardDiceDoneCheck = .text:0x80087530; // type:function size:0x8C +BoardDiceStop = .text:0x800875BC; // type:function size:0x58 +BoardDiceVisibleSet = .text:0x80087614; // type:function size:0xC0 +BoardDiceValueSet = .text:0x800876D4; // type:function size:0x200 +DiceDigitMain = .text:0x800878D4; // type:function size:0xAC scope:local +DiceDigitKill = .text:0x80087980; // type:function size:0x68 scope:local +DiceKill = .text:0x800879E8; // type:function size:0xB4 scope:local +DiceDigitMove = .text:0x80087A9C; // type:function size:0x390 scope:local +DiceDigitRotate = .text:0x80087E2C; // type:function size:0x110 scope:local +SameRollExec = .text:0x80087F3C; // type:function size:0x248 scope:local +GetBtnRoll = .text:0x80088184; // type:function size:0x110 scope:local +GetComBtnRoll = .text:0x80088294; // type:function size:0x88 scope:local +BoardRollTutorialSet = .text:0x8008831C; // type:function size:0x4C +BoardItemModelGet = .text:0x80088368; // type:function size:0x90 +BoardItemNameGet = .text:0x800883F8; // type:function size:0x98 +BoardStatusStopCheck = .text:0x80088490; // type:function size:0x48 +BoardStatusVisibleGet = .text:0x800884D8; // type:function size:0x1C +BoardStatusShowSetAll = .text:0x800884F4; // type:function size:0x48 +BoardStatusItemSet = .text:0x8008853C; // type:function size:0xFC +BoardStatusShowSetForce = .text:0x80088638; // type:function size:0x24 +BoardStatusGraySet = .text:0x8008865C; // type:function size:0x134 +BoardStatusShowSet = .text:0x80088790; // type:function size:0x138 +BoardStatusItemHideSet = .text:0x800888C8; // type:function size:0x50 +BoardStatusTargetPosSet = .text:0x80088918; // type:function size:0x44 +BoardStatusPosGet = .text:0x8008895C; // type:function size:0x34 +BoardStatusPosSet = .text:0x80088990; // type:function size:0x6C +BoardStatusHammerCreate = .text:0x800889FC; // type:function size:0x158 +BoardStatusHammerShowSet = .text:0x80088B54; // type:function size:0x94 +BoardStatusHammerKill = .text:0x80088BE8; // type:function size:0x6C +BoardStatusKill = .text:0x80088C54; // type:function size:0x90 +BoardStatusCreate = .text:0x80088CE4; // type:function size:0x20C +KillAllBoardStatus = .text:0x80088EF0; // type:function size:0x98 scope:local +CreateBoardStatusSprite = .text:0x80088F88; // type:function size:0x36C scope:local +BoardSpriteCreate = .text:0x800892F4; // type:function size:0x8C +UpdateBoardStatus = .text:0x80089380; // type:function size:0x210 scope:local +BoardStatusProc = .text:0x80089590; // type:function size:0x40 scope:local +MoveBoardStatus = .text:0x800895D0; // type:function size:0x180 scope:local +BoardSpriteDigitUpdate = .text:0x80089750; // type:function size:0x140 +UpdateStatusItem = .text:0x80089890; // type:function size:0xB8 scope:local +BoardPickerCreate = .text:0x80089948; // type:function size:0x29C +BoardPickerBackFlagSet = .text:0x80089BE4; // type:function size:0x74 +BoardPickerDoneCheck = .text:0x80089C58; // type:function size:0x1C +BoardPickerPosGet = .text:0x80089C74; // type:function size:0x48 +BoardPickerChoiceGet = .text:0x80089CBC; // type:function size:0xC +UpdatePicker = .text:0x80089CC8; // type:function size:0xFC scope:local +UpdatePickerInput = .text:0x80089DC4; // type:function size:0x15C scope:local +MovePicker = .text:0x80089F20; // type:function size:0x110 scope:local +UpdateComPickerButton = .text:0x8008A030; // type:function size:0x30 scope:local +CheckPickerButton = .text:0x8008A060; // type:function size:0x19C scope:local +BoardYourTurnExec = .text:0x8008A1FC; // type:function size:0x1E4 +UpdateYourTurn = .text:0x8008A3E0; // type:function size:0xD4 scope:local +GrowYourTurn = .text:0x8008A4B4; // type:function size:0xD8 scope:local +WaitYourTurn = .text:0x8008A58C; // type:function size:0xEC scope:local +ShrinkYourTurn = .text:0x8008A678; // type:function size:0xC8 scope:local +BoardItemUseExec = .text:0x8008A740; // type:function size:0x80 +ItemUseTeamProc = .text:0x8008A7C0; // type:function size:0x4A8 scope:local +ItemUseProc = .text:0x8008AC68; // type:function size:0x370 scope:local +FinishItemUse = .text:0x8008AFD8; // type:function size:0x174 scope:local +DestroyItemUse = .text:0x8008B14C; // type:function size:0x78 scope:local +BoardMakeRandomItem = .text:0x8008B1C4; // type:function size:0x74 +TeamItemPosSet = .text:0x8008B238; // type:function size:0xE8 scope:local +ExecItemPick = .text:0x8008B320; // type:function size:0x650 scope:local +UpdateItemPick = .text:0x8008B970; // type:function size:0x3AC scope:local +MakeItemPickSpace = .text:0x8008BD1C; // type:function size:0x420 scope:local +SetItemUIStatus = .text:0x8008C13C; // type:function size:0x248 scope:local +BoardItemGetDestPos = .text:0x8008C384; // type:function size:0xA8 +ItemGetPos = .text:0x8008C42C; // type:function size:0x104 scope:local +BoardItemStatusKill = .text:0x8008C530; // type:function size:0x400 +UpdateItemPickGfx = .text:0x8008C930; // type:function size:0x388 scope:local +UpdateItemPickup = .text:0x8008CCB8; // type:function size:0x674 scope:local +CheckItemWindow = .text:0x8008D32C; // type:function size:0x50 scope:local +HideItemWindow = .text:0x8008D37C; // type:function size:0x38 scope:local +CreateItemWindow = .text:0x8008D3B4; // type:function size:0x5A4 scope:local +CheckItemWindowSlide = .text:0x8008D958; // type:function size:0x58 scope:local +KillItemWindow = .text:0x8008D9B0; // type:function size:0x38 scope:local +SetItemWindowCurr = .text:0x8008D9E8; // type:function size:0xA4 scope:local +UpdateItemWindow = .text:0x8008DA8C; // type:function size:0x350 scope:local +CreatePickerWindow = .text:0x8008DDDC; // type:function size:0x148 scope:local +KillPickerWindow = .text:0x8008DF24; // type:function size:0x44 scope:local +BoardBlockExec = .text:0x8008DF68; // type:function size:0x84 +BlockProc = .text:0x8008DFEC; // type:function size:0x358 scope:local +DestroyBlock = .text:0x8008E344; // type:function size:0x54 scope:local +CreateBlockObj = .text:0x8008E398; // type:function size:0x1F4 scope:local +ExecBlockObj = .text:0x8008E58C; // type:function size:0x12C scope:local +DestroyBlockObj = .text:0x8008E6B8; // type:function size:0x38 scope:local +SpawnBlock = .text:0x8008E6F0; // type:function size:0x120 scope:local +HitBlock = .text:0x8008E810; // type:function size:0xCC scope:local +OpenBlock = .text:0x8008E8DC; // type:function size:0x140 scope:local +SetBlockOpen = .text:0x8008EA1C; // type:function size:0x2C scope:local +SetBlockStop = .text:0x8008EA48; // type:function size:0x2C scope:local +WaitBlockHit = .text:0x8008EA74; // type:function size:0x48 scope:local +CreateCoinMdl = .text:0x8008EABC; // type:function size:0x94 scope:local +KillCoinMdl = .text:0x8008EB50; // type:function size:0x9C scope:local +PopupCoin = .text:0x8008EBEC; // type:function size:0x10C scope:local +PopupCoinExec = .text:0x8008ECF8; // type:function size:0x130 scope:local +BoardItemStart = .text:0x8008EE28; // type:function size:0x74 +BoardItemDoneCheck = .text:0x8008EE9C; // type:function size:0x1C +BoardItemPlayerRestore = .text:0x8008EEB8; // type:function size:0x6C +ItemProcess = .text:0x8008EF24; // type:function size:0x64 scope:local +RestoreProcess = .text:0x8008EF88; // type:function size:0x64 scope:local +ItemDestroy = .text:0x8008EFEC; // type:function size:0xC scope:local +RestoreDestroy = .text:0x8008EFF8; // type:function size:0xC scope:local +ItemSizeShowAnim = .text:0x8008F004; // type:function size:0x180 scope:local +ItemRotProc = .text:0x8008F184; // type:function size:0x1BC scope:local +ItemShowProc = .text:0x8008F340; // type:function size:0x220 scope:local +ItemGetTarget = .text:0x8008F560; // type:function size:0x374 scope:local +ItemSizeSet = .text:0x8008F8D4; // type:function size:0x204 scope:local +ExecItemMini = .text:0x8008FAD8; // type:function size:0xA4 scope:local +ExecItemMega = .text:0x8008FB7C; // type:function size:0xA4 scope:local +ExecItemMiniSuper = .text:0x8008FC20; // type:function size:0xA4 scope:local +ExecItemMegaSuper = .text:0x8008FCC4; // type:function size:0xA4 scope:local +ExecItemHammer = .text:0x8008FD68; // type:function size:0x584 scope:local +ExecItemPipe = .text:0x800902EC; // type:function size:0xD34 scope:local +ExecItemSwap = .text:0x80091020; // type:function size:0xEBC scope:local +ExecItemSpark = .text:0x80091EDC; // type:function size:0x4FC scope:local +ExecItemLight = .text:0x800923D8; // type:function size:0xC8 scope:local +ExecItemWhistle = .text:0x800924A0; // type:function size:0xE3C scope:local +ExecItemBowser = .text:0x800932DC; // type:function size:0x3D4 scope:local +ExecItemBooBall = .text:0x800936B0; // type:function size:0x1370 scope:local +LampParticleUpdate = .text:0x80094A20; // type:function size:0x488 scope:local +GenieParticleUpdate = .text:0x80094EA8; // type:function size:0x388 scope:local +GenieCameraProc = .text:0x80095230; // type:function size:0xB0 scope:local +GenieCameraCalc = .text:0x800952E0; // type:function size:0x7A4 scope:local +GenieSceneExec = .text:0x80095A84; // type:function size:0x9D8 scope:local +ExecItemGenie = .text:0x8009645C; // type:function size:0x628 scope:local +BoardItemBagItemSet = .text:0x80096A84; // type:function size:0x3C +ExecItemBagJump = .text:0x80096AC0; // type:function size:0x13C scope:local +ExecItemBagShow = .text:0x80096BFC; // type:function size:0xDC scope:local +ExecItemBag = .text:0x80096CD8; // type:function size:0x584 scope:local +RestoreItemNull = .text:0x8009725C; // type:function size:0x1C scope:local +RestoreItemMini = .text:0x80097278; // type:function size:0x2C scope:local +RestoreItemMega = .text:0x800972A4; // type:function size:0x2C scope:local +RestoreItemMiniSuper = .text:0x800972D0; // type:function size:0x2C scope:local +RestoreItemMegaSuper = .text:0x800972FC; // type:function size:0x2C scope:local +RestoreItemBowser = .text:0x80097328; // type:function size:0x284 scope:local +BoardBowserExec = .text:0x800975AC; // type:function size:0x144 +ExecBowser = .text:0x800976F0; // type:function size:0x28C scope:local +ExecBowserMain = .text:0x8009797C; // type:function size:0x208 scope:local +ExecMGReturn = .text:0x80097B84; // type:function size:0x1DC scope:local +DestroyBowser = .text:0x80097D60; // type:function size:0x30 scope:local +SquishPlayers = .text:0x80097D90; // type:function size:0x148 scope:local +ExecBowserSpecial = .text:0x80097ED8; // type:function size:0x1B4 scope:local +ExecBowserGame = .text:0x8009808C; // type:function size:0x250 scope:local +DoMGReturnEffect = .text:0x800982DC; // type:function size:0x220 scope:local +ExecBowserShuffle = .text:0x800984FC; // type:function size:0x2B0 scope:local +ExecBowserRevo = .text:0x800987AC; // type:function size:0x160 scope:local +ExecBowserSuit = .text:0x8009890C; // type:function size:0xB8 scope:local +CheckSuitGive = .text:0x800989C4; // type:function size:0x1C scope:local +StartSuitGive = .text:0x800989E0; // type:function size:0x148 scope:local +SuitGiveMain = .text:0x80098B28; // type:function size:0x210 scope:local +CreateBowserObj = .text:0x80098D38; // type:function size:0x228 scope:local +ExecBowserObj = .text:0x80098F60; // type:function size:0x230 scope:local +ExecBowserFall = .text:0x80099190; // type:function size:0x270 scope:local +ExecBowserLaugh = .text:0x80099400; // type:function size:0x58 scope:local +ExecBowserFire = .text:0x80099458; // type:function size:0x44 scope:local +ExecBowserJump = .text:0x8009949C; // type:function size:0x150 scope:local +ExecBowserPowerUp = .text:0x800995EC; // type:function size:0x128 scope:local +SetBowserState = .text:0x80099714; // type:function size:0x34 scope:local +CheckBowserIdle = .text:0x80099748; // type:function size:0x5C scope:local +CreateMiniBowser = .text:0x800997A4; // type:function size:0xD4 scope:local +CheckMiniBowser = .text:0x80099878; // type:function size:0x1C scope:local +ExecMiniBowser = .text:0x80099894; // type:function size:0x18C scope:local +CreateBowserEvent = .text:0x80099A20; // type:function size:0x1E8 scope:local +CheckBowserEvent = .text:0x80099C08; // type:function size:0x38 scope:local +StopBowserEvent = .text:0x80099C40; // type:function size:0x24 scope:local +ExecBowserEvent = .text:0x80099C64; // type:function size:0xEC scope:local +ShowBowserEvent = .text:0x80099D50; // type:function size:0x1C8 scope:local +HideBowserEvent = .text:0x80099F18; // type:function size:0x108 scope:local +ConfigBowserEvent = .text:0x8009A020; // type:function size:0x160 scope:local +CreatePlayerMot = .text:0x8009A180; // type:function size:0x1AC scope:local +KillPlayerMot = .text:0x8009A32C; // type:function size:0xB8 scope:local +InitBowserFire = .text:0x8009A3E4; // type:function size:0x90 scope:local +BowserFireHook = .text:0x8009A474; // type:function size:0x160 scope:local +SpawnBowserFire = .text:0x8009A5D4; // type:function size:0xE4 scope:local +CheckBowserFire = .text:0x8009A6B8; // type:function size:0xCC scope:local +KillBowserFire = .text:0x8009A784; // type:function size:0x40 scope:local +ExecMiniBowserEvent = .text:0x8009A7C4; // type:function size:0x188 scope:local +MiniBowserTake = .text:0x8009A94C; // type:function size:0x2C4 scope:local +MiniBowserTakeAll = .text:0x8009AC10; // type:function size:0x2B8 scope:local +MiniBowserBalloonStop = .text:0x8009AEC8; // type:function size:0x24 scope:local +GetMiniBowserBalloonState = .text:0x8009AEEC; // type:function size:0xC scope:local +SetMiniBowserBalloonState = .text:0x8009AEF8; // type:function size:0x10 scope:local +CreateMiniBowserBalloon = .text:0x8009AF08; // type:function size:0x14C scope:local +ExecMiniBowserBalloon = .text:0x8009B054; // type:function size:0x120 scope:local +MiniBowserBalloonHover = .text:0x8009B174; // type:function size:0xB4 scope:local +MiniBowserBalloonFall = .text:0x8009B228; // type:function size:0x88 scope:local +MiniBowserBalloonRaise = .text:0x8009B2B0; // type:function size:0x80 scope:local +SetMiniBowserMotion = .text:0x8009B330; // type:function size:0xD8 scope:local +SetMiniBowserMotionPause = .text:0x8009B408; // type:function size:0x6C scope:local +WaitMiniBowserMotion = .text:0x8009B474; // type:function size:0x60 scope:local +BoardBattleExec = .text:0x8009B4D4; // type:function size:0x124 +DestroyBattle = .text:0x8009B5F8; // type:function size:0x2C scope:local +ExecBattle = .text:0x8009B624; // type:function size:0x708 scope:local +TakeCoins = .text:0x8009BD2C; // type:function size:0x1D4 scope:local +InitExplode = .text:0x8009BF00; // type:function size:0x1FC scope:local +CheckExplode = .text:0x8009C0FC; // type:function size:0x24 scope:local +UpdateExplode = .text:0x8009C120; // type:function size:0x2D0 scope:local +CreateBattleMain = .text:0x8009C3F0; // type:function size:0x1E8 scope:local +UpdateBattleMain = .text:0x8009C5D8; // type:function size:0x1A0 scope:local +DescendBattleBomb = .text:0x8009C778; // type:function size:0x64 scope:local +EndBattle = .text:0x8009C7DC; // type:function size:0x88 scope:local +ShowBattleGame = .text:0x8009C864; // type:function size:0x124 scope:local +RaiseBattleGame = .text:0x8009C988; // type:function size:0x8C scope:local +UpdateBattleCoin = .text:0x8009CA14; // type:function size:0x260 scope:local +ShowBattleCoin = .text:0x8009CC74; // type:function size:0x128 scope:local +InitBattleGameSpr = .text:0x8009CD9C; // type:function size:0x12C scope:local +HideBattleSpr = .text:0x8009CEC8; // type:function size:0x58 scope:local +VibratePad = .text:0x8009CF20; // type:function size:0x64 scope:local +StopBattleBomb = .text:0x8009CF84; // type:function size:0x24 scope:local +GetBattleBombState = .text:0x8009CFA8; // type:function size:0x10 scope:local +SetBattleBombState = .text:0x8009CFB8; // type:function size:0x34 scope:local +SetBattleCoinValue = .text:0x8009CFEC; // type:function size:0x15C scope:local +BoardFortuneExec = .text:0x8009D148; // type:function size:0x124 +FortuneExec = .text:0x8009D26C; // type:function size:0x74 scope:local +DestroyFortune = .text:0x8009D2E0; // type:function size:0xC scope:local +FortuneMain = .text:0x8009D2EC; // type:function size:0x340 scope:local +FortunePostMG = .text:0x8009D62C; // type:function size:0xF8 scope:local +CreateFortunePlatform = .text:0x8009D724; // type:function size:0x160 scope:local +CameraCalcFortune = .text:0x8009D884; // type:function size:0x5C scope:local +ExecFortunePlatform = .text:0x8009D8E0; // type:function size:0x198 scope:local +ExecComFortuneWin = .text:0x8009DA78; // type:function size:0x18C scope:local +ConfigComFortune = .text:0x8009DC04; // type:function size:0x20C scope:local +ComFortuneAddStar = .text:0x8009DE10; // type:function size:0x78 scope:local +ComFortuneAddCoin = .text:0x8009DE88; // type:function size:0x78 scope:local +ComFortuneSwapCoin = .text:0x8009DF00; // type:function size:0x68 scope:local +ComFortuneSwapStar = .text:0x8009DF68; // type:function size:0x68 scope:local +BoardBooCreate = .text:0x8009DFD0; // type:function size:0x11C +BoardBooKill = .text:0x8009E0EC; // type:function size:0x2C +BoardBooStealTypeSet = .text:0x8009E118; // type:function size:0x2A8 +ComSetupStealPlayer = .text:0x8009E3C0; // type:function size:0x1D4 scope:local +ComSetStealPlayerInput = .text:0x8009E594; // type:function size:0xE8 scope:local +BoardBooStealMain = .text:0x8009E67C; // type:function size:0x280 +ExecCoinSteal = .text:0x8009E8FC; // type:function size:0xC0 scope:local +ExecStarSteal = .text:0x8009E9BC; // type:function size:0xA8 scope:local +ExecLightSteal = .text:0x8009EA64; // type:function size:0x94 scope:local +SetBooMode = .text:0x8009EAF8; // type:function size:0x10 scope:local +CreateBallMdl = .text:0x8009EB08; // type:function size:0xBC scope:local +CreateBallView = .text:0x8009EBC4; // type:function size:0x1D4 scope:local +SetBallView = .text:0x8009ED98; // type:function size:0xAC scope:local +SetBallActive = .text:0x8009EE44; // type:function size:0x28 scope:local +CheckBallKill = .text:0x8009EE6C; // type:function size:0x4C scope:local +BallMain = .text:0x8009EEB8; // type:function size:0x300 scope:local +BallRenderHook = .text:0x8009F1B8; // type:function size:0x4A0 scope:local +ExecBoo = .text:0x8009F658; // type:function size:0x9C scope:local +UpdateBallCamera = .text:0x8009F6F4; // type:function size:0x1DC scope:local +CreateBallPlayer = .text:0x8009F8D0; // type:function size:0x358 scope:local +GetBallPlayerState = .text:0x8009FC28; // type:function size:0x24 scope:local +SetBallPlayerState = .text:0x8009FC4C; // type:function size:0x2C scope:local +ExecBallPlayer = .text:0x8009FC78; // type:function size:0x214 scope:local +BallPlayerZoomOut = .text:0x8009FE8C; // type:function size:0x15C scope:local +BallPlayerScare = .text:0x8009FFE8; // type:function size:0x110 scope:local +BallPlayerTurn = .text:0x800A00F8; // type:function size:0x68 scope:local +BallPlayerPunch = .text:0x800A0160; // type:function size:0x1E0 scope:local +BallPlayerUseLight = .text:0x800A0340; // type:function size:0x10C scope:local +BallPlayerCatch = .text:0x800A044C; // type:function size:0x190 scope:local +BallBooCreate = .text:0x800A05DC; // type:function size:0x328 scope:local +SetBallBooState = .text:0x800A0904; // type:function size:0x170 scope:local +GetBallBooState = .text:0x800A0A74; // type:function size:0x24 scope:local +ExecBallBoo = .text:0x800A0A98; // type:function size:0x128 scope:local +BallBooSpawn = .text:0x800A0BC0; // type:function size:0x54 scope:local +BallBooChase = .text:0x800A0C14; // type:function size:0x104 scope:local +BallBooBattle = .text:0x800A0D18; // type:function size:0x218 scope:local +BallBooAttack = .text:0x800A0F30; // type:function size:0xF4 scope:local +BallBooFlash = .text:0x800A1024; // type:function size:0x178 scope:local +TakeBallCoin = .text:0x800A119C; // type:function size:0x1B0 scope:local +ExecTakeBallCoin = .text:0x800A134C; // type:function size:0xDC scope:local +TakeBallCoinPosSet = .text:0x800A1428; // type:function size:0x9C scope:local +CheckBallCoinDone = .text:0x800A14C4; // type:function size:0x68 +TakeBallStar = .text:0x800A152C; // type:function size:0x168 +ExecTakeBallStar = .text:0x800A1694; // type:function size:0x184 +CheckTakeBallStarDone = .text:0x800A1818; // type:function size:0x1C +BoardBooStealValueGet = .text:0x800A1834; // type:function size:0x30 +BoardBooStealLightCheck = .text:0x800A1864; // type:function size:0x20 +UpdatePlayerCoins = .text:0x800A1884; // type:function size:0x1B0 scope:local +BoardMGSetupExec = .text:0x800A1A34; // type:function size:0x60 +DestroyMGSetup = .text:0x800A1A94; // type:function size:0x1C scope:local +ExecMGSetup = .text:0x800A1AB0; // type:function size:0x6FC scope:local +DetermineMGList = .text:0x800A21AC; // type:function size:0x3B0 scope:local +SetupStatusLayout = .text:0x800A255C; // type:function size:0x3A8 scope:local +GetMGType = .text:0x800A2904; // type:function size:0x388 scope:local +GetMGTypeTeam = .text:0x800A2C8C; // type:function size:0x3A4 scope:local +CreateMGSetup = .text:0x800A3030; // type:function size:0x194 scope:local +UpdateMGSetup = .text:0x800A31C4; // type:function size:0x198 scope:local +CenterStatus = .text:0x800A335C; // type:function size:0x174 scope:local +SeparateStatus = .text:0x800A34D0; // type:function size:0x200 scope:local +PopupVS = .text:0x800A36D0; // type:function size:0x20C scope:local +FallMGType = .text:0x800A38DC; // type:function size:0x1C8 scope:local +LuckyMGFall = .text:0x800A3AA4; // type:function size:0x204 scope:local +HideLuckyValue = .text:0x800A3CA8; // type:function size:0xA8 scope:local +UpdateLuckyValue = .text:0x800A3D50; // type:function size:0x430 scope:local +UpdateMGList = .text:0x800A4180; // type:function size:0x8FC scope:local +BoardMGSetupPlayClear = .text:0x800A4A7C; // type:function size:0x74 +BoardMGSetupPlaySearch = .text:0x800A4AF0; // type:function size:0xC8 +BoardMGSetupPlayPush = .text:0x800A4BB8; // type:function size:0xD0 +BoardMGSetupTutorialExec = .text:0x800A4C88; // type:function size:0x2E4 +BoardBooHouseHostSet = .text:0x800A4F6C; // type:function size:0x8 +BoardBooHouseHostGet = .text:0x800A4F74; // type:function size:0x8 +BoardBooHouseCreate = .text:0x800A4F7C; // type:function size:0xB4 +BoardBooHouseKill = .text:0x800A5030; // type:function size:0x50 +BoardBooHouseExec = .text:0x800A5080; // type:function size:0x94 +ExecBooHouse = .text:0x800A5114; // type:function size:0x538 scope:local +DestroyBooHouse = .text:0x800A564C; // type:function size:0xF0 scope:local +PickComStealType = .text:0x800A573C; // type:function size:0xFC scope:local +OpenBooHouse = .text:0x800A5838; // type:function size:0x3A0 scope:local +CloseBooHouse = .text:0x800A5BD8; // type:function size:0x124 scope:local +CreateBooHouseModel = .text:0x800A5CFC; // type:function size:0xB0 scope:local +KillBooHouseModel = .text:0x800A5DAC; // type:function size:0xD4 scope:local +ExecNullSteal = .text:0x800A5E80; // type:function size:0x68 scope:local +ExecStarSteal = .text:0x800A5EE8; // type:function size:0x2AC scope:local +ExecCoinSteal = .text:0x800A6194; // type:function size:0x2AC scope:local +ApplySteal = .text:0x800A6440; // type:function size:0x188 scope:local +ApplyCoinSteal = .text:0x800A65C8; // type:function size:0x16C scope:local +ApplyStarSteal = .text:0x800A6734; // type:function size:0x164 scope:local +ApplyBooLight = .text:0x800A6898; // type:function size:0x70 scope:local +SetBooBallPos = .text:0x800A6908; // type:function size:0x60 scope:local +BoardBooComUseCheck = .text:0x800A6968; // type:function size:0x1A8 +BoardBooHouseTutorialExec = .text:0x800A6B10; // type:function size:0x3D4 +BoardStartExec = .text:0x800A6EE4; // type:function size:0x64 +DestroyStart = .text:0x800A6F48; // type:function size:0x84 scope:local +ExecStart = .text:0x800A6FCC; // type:function size:0x400 scope:local +ShowLogo = .text:0x800A73CC; // type:function size:0x2FC scope:local +FocusStart = .text:0x800A76C8; // type:function size:0x17C scope:local +CreatePlayerStart = .text:0x800A7844; // type:function size:0x2D8 scope:local +ExecPlayerStart = .text:0x800A7B1C; // type:function size:0x188 scope:local +PlayerFall = .text:0x800A7CA4; // type:function size:0x1C8 scope:local +PlayerWaitSpeak = .text:0x800A7E6C; // type:function size:0xEC scope:local +PlayerDiceFall = .text:0x800A7F58; // type:function size:0x1A8 scope:local +PlayerDiceRoll = .text:0x800A8100; // type:function size:0x454 scope:local +PlayerDiceNumShow = .text:0x800A8554; // type:function size:0xD8 scope:local +PlayerDiceNumHide = .text:0x800A862C; // type:function size:0x250 scope:local +SetPlayerStartState = .text:0x800A887C; // type:function size:0xC8 scope:local +GetPlayerStartState = .text:0x800A8944; // type:function size:0x3C scope:local +ExecStartRoll = .text:0x800A8980; // type:function size:0x6D4 scope:local +InitCamera = .text:0x800A9054; // type:function size:0x318 scope:local +InitHost = .text:0x800A936C; // type:function size:0xA4 scope:local +CreateTapWin = .text:0x800A9410; // type:function size:0xDC scope:local +OrderPlayers = .text:0x800A94EC; // type:function size:0x21C scope:local +BoardLast5Exec = .text:0x800A9708; // type:function size:0x84 +DestroyLast5 = .text:0x800A978C; // type:function size:0x30 scope:local +ExecLast5 = .text:0x800A97BC; // type:function size:0x1D4 scope:local +CreateLast5 = .text:0x800A9990; // type:function size:0x184 scope:local +KillLast5 = .text:0x800A9B14; // type:function size:0x48 scope:local +InitHost = .text:0x800A9B5C; // type:function size:0x10C scope:local +KillHost = .text:0x800A9C68; // type:function size:0xA4 scope:local +Last5Main = .text:0x800A9D0C; // type:function size:0xCC0 scope:local +CheckJump = .text:0x800AA9CC; // type:function size:0xA4 scope:local +CreateLotteryDrawWheel = .text:0x800AAA70; // type:function size:0x1FC scope:local +CreateLotteryDraw = .text:0x800AAC6C; // type:function size:0xD4 scope:local +UpdateLotteryDraw = .text:0x800AAD40; // type:function size:0x170 scope:local +SetLotteryDrawState = .text:0x800AAEB0; // type:function size:0x88 scope:local +GetLotteryDrawState = .text:0x800AAF38; // type:function size:0x20 scope:local +KillLotteryDrawWheel = .text:0x800AAF58; // type:function size:0x24 scope:local +UpdateLotteryDrawWheel = .text:0x800AAF7C; // type:function size:0x2D0 scope:local +SetLotteryDrawWheelState = .text:0x800AB24C; // type:function size:0x1D8 scope:local +ExecLotteryDraw = .text:0x800AB424; // type:function size:0x950 scope:local +KillLotteryTicket = .text:0x800ABD74; // type:function size:0x4C scope:local +InitLotteryTicket = .text:0x800ABDC0; // type:function size:0x488 scope:local +UpdateLotteryTicket = .text:0x800AC248; // type:function size:0x2A4 scope:local +SetLotteryTicketState = .text:0x800AC4EC; // type:function size:0x1C0 scope:local +GetLotteryTicketPlayer = .text:0x800AC6AC; // type:function size:0x7C scope:local +CheckLotteryTicket = .text:0x800AC728; // type:function size:0x78 scope:local +UpdateLotteryTicketMatch = .text:0x800AC7A0; // type:function size:0xB0 scope:local +StartHostMove = .text:0x800AC850; // type:function size:0x1CC scope:local +ExecHostMove = .text:0x800ACA1C; // type:function size:0x228 scope:local +CheckHostMove = .text:0x800ACC44; // type:function size:0x1C scope:local +CreateStopWin = .text:0x800ACC60; // type:function size:0xC0 scope:local +CreateLast5Roulette = .text:0x800ACD20; // type:function size:0x180 scope:local +UpdateLast5Roulette = .text:0x800ACEA0; // type:function size:0x2B0 scope:local +SetLast5RouletteFade = .text:0x800AD150; // type:function size:0x44 scope:local +SetLast5RouletteState = .text:0x800AD194; // type:function size:0x38 scope:local +GetLast5RouletteState = .text:0x800AD1CC; // type:function size:0x38 scope:local +GetLast5RouletteResult = .text:0x800AD204; // type:function size:0x44 scope:local +CreateTeamResult = .text:0x800AD248; // type:function size:0x2B4 scope:local +CreateTeamResultWork = .text:0x800AD4FC; // type:function size:0x340 scope:local +SetTeamResultTarget = .text:0x800AD83C; // type:function size:0x58 scope:local +GetTeamResultTarget = .text:0x800AD894; // type:function size:0x58 scope:local +KillTeamResult = .text:0x800AD8EC; // type:function size:0x38 scope:local +UpdateTeamResult = .text:0x800AD924; // type:function size:0x260 scope:local +BoardPauseStart = .text:0x800ADB84; // type:function size:0x88 +PauseExit = .text:0x800ADC0C; // type:function size:0x3C0 scope:local +PauseProcess = .text:0x800ADFCC; // type:function size:0x108 scope:local +CreatePauseScreen = .text:0x800AE0D4; // type:function size:0xABC scope:local +DeletePauseScreen = .text:0x800AEB90; // type:function size:0x168 scope:local +SetBoxVisible = .text:0x800AECF8; // type:function size:0x58 scope:local +PauseConfigObjFunc = .text:0x800AED50; // type:function size:0x4F4 scope:local +UpdatePauseText = .text:0x800AF244; // type:function size:0x310 scope:local +InitPauseQuit = .text:0x800AF554; // type:function size:0x264 scope:local +PauseQuitProcess = .text:0x800AF7B8; // type:function size:0x110 scope:local +DeletePauseQuit = .text:0x800AF8C8; // type:function size:0x48 scope:local +UpdatePadConfig = .text:0x800AF910; // type:function size:0xD4 scope:local +CreatePadConfig = .text:0x800AF9E4; // type:function size:0x1CC scope:local +ScrollInPadConfig = .text:0x800AFBB0; // type:function size:0x178 scope:local +CursorMovePadConfig = .text:0x800AFD28; // type:function size:0x238 scope:local +ChangeDiffPadConfig = .text:0x800AFF60; // type:function size:0x3B0 scope:local +ScrollOutPadConfig = .text:0x800B0310; // type:function size:0x154 scope:local +UpdatePauseBox = .text:0x800B0464; // type:function size:0x390 scope:local +UpdatePauseBoxExt = .text:0x800B07F4; // type:function size:0x3E4 scope:local +ExecPauseConfig = .text:0x800B0BD8; // type:function size:0x240 scope:local +CreatePauseControlWin = .text:0x800B0E18; // type:function size:0x210 scope:local +DeletePauseControlWin = .text:0x800B1028; // type:function size:0x70 scope:local +WaitPauseInput = .text:0x800B1098; // type:function size:0x1B8 scope:local +ShowPauseConfig = .text:0x800B1250; // type:function size:0x12C scope:local +CreatePadConfigSprite = .text:0x800B137C; // type:function size:0x1A4 scope:local +ShowPadConfigSprite = .text:0x800B1520; // type:function size:0x10C scope:local +PauseCreateNumber = .text:0x800B162C; // type:function size:0xDC scope:local +BoardPauseActiveCheck = .text:0x800B1708; // type:function size:0x34 +BoardPauseReqCheck = .text:0x800B173C; // type:function size:0x12C +CheckPort = .text:0x800B1868; // type:function size:0x4C scope:local +RotateBox = .text:0x800B18B4; // type:function size:0xC0 scope:local +SearchPathNodeSpace = .text:0x800B1974; // type:function size:0x60 scope:local +InitPathNode = .text:0x800B19D4; // type:function size:0x180 scope:local +FindChildNode = .text:0x800B1B54; // type:function size:0xE4 scope:local +GetNumValidLinks = .text:0x800B1C38; // type:function size:0xB4 scope:local +AddValidLinks = .text:0x800B1CEC; // type:function size:0xD0 scope:local +CheckPathSpace = .text:0x800B1DBC; // type:function size:0x30 scope:local +FindValidLink = .text:0x800B1DEC; // type:function size:0xAC scope:local +CheckEndSpace = .text:0x800B1E98; // type:function size:0xF0 scope:local +BoardComPathShortcutLenGet = .text:0x800B1F88; // type:function size:0x74C +BoardComPathBestGet = .text:0x800B26D4; // type:function size:0x3E4 +BoardComPathLenGet = .text:0x800B2AB8; // type:function size:0x65C +CheckPath = .text:0x800B3114; // type:function size:0x488 scope:local +BoardComPathBestGetFlag = .text:0x800B359C; // type:function size:0x45C +CheckPathFlag = .text:0x800B39F8; // type:function size:0x4E0 scope:local +TutorialProcFunc = .text:0x800B3ED8; // type:function size:0x34 scope:local +BoardTutorialInit = .text:0x800B3F0C; // type:function size:0x80 +BoardTutorialKill = .text:0x800B3F8C; // type:function size:0x4C +BoardTutorialHookSet = .text:0x800B3FD8; // type:function size:0x8 +BoardTutorialHookExec = .text:0x800B3FE0; // type:function size:0x44 +BoardTutorialPlayerInit = .text:0x800B4024; // type:function size:0x78 +BoardTutorialWorkSave = .text:0x800B409C; // type:function size:0x10C +BoardTutorialWorkRestore = .text:0x800B41A8; // type:function size:0xBC +BoardTutorialDirInputSet = .text:0x800B4264; // type:function size:0x10 +BoardTutorialBlockSetPos = .text:0x800B4274; // type:function size:0x40 +BoardTutorialItemSet = .text:0x800B42B4; // type:function size:0x8 +BoardTutorialHostSet = .text:0x800B42BC; // type:function size:0x8 +BoardTutorialHostHide = .text:0x800B42C4; // type:function size:0x30 +PPCMfmsr = .text:0x800B42F4; // type:function size:0x8 scope:global +PPCMtmsr = .text:0x800B42FC; // type:function size:0x8 scope:global +PPCMfhid0 = .text:0x800B4304; // type:function size:0x8 scope:global +PPCMthid0 = .text:0x800B430C; // type:function size:0x8 +PPCMfl2cr = .text:0x800B4314; // type:function size:0x8 scope:global +PPCMtl2cr = .text:0x800B431C; // type:function size:0x8 scope:global +PPCMtdec = .text:0x800B4324; // type:function size:0x8 scope:weak +PPCSync = .text:0x800B432C; // type:function size:0x8 +PPCHalt = .text:0x800B4334; // type:function size:0x14 scope:weak +PPCMfhid2 = .text:0x800B4348; // type:function size:0x8 scope:global +PPCMthid2 = .text:0x800B4350; // type:function size:0x8 scope:global +PPCMfwpar = .text:0x800B4358; // type:function size:0xC +PPCMtwpar = .text:0x800B4364; // type:function size:0x8 scope:global +PPCDisableSpeculation = .text:0x800B436C; // type:function size:0x28 scope:global +PPCSetFpNonIEEEMode = .text:0x800B4394; // type:function size:0x8 scope:global +OSGetConsoleType = .text:0x800B439C; // type:function size:0x28 scope:global +ClearArena = .text:0x800B43C4; // type:function size:0x128 scope:local +InquiryCallback = .text:0x800B44EC; // type:function size:0x3C scope:local +OSInit = .text:0x800B4528; // type:function size:0x3B8 scope:global +OSExceptionInit = .text:0x800B48E0; // type:function size:0x280 scope:local +__OSDBINTSTART = .text:0x800B4B60; // type:label scope:global +__OSDBIntegrator = .text:0x800B4B60; // type:function size:0x24 scope:local +__OSDBINTEND = .text:0x800B4B84; // type:label scope:global +__OSDBJump = .text:0x800B4B84; // type:function size:0x4 scope:local +__OSDBJUMPEND = .text:0x800B4B88; // type:label scope:global +__OSSetExceptionHandler = .text:0x800B4B88; // type:function size:0x1C scope:global +__OSGetExceptionHandler = .text:0x800B4BA4; // type:function size:0x14 scope:global +__OSEVStart = .text:0x800B4BB8; // type:label scope:global +OSExceptionVector = .text:0x800B4BB8; // type:function size:0x9C scope:local +__DBVECTOR = .text:0x800B4C10; // type:label scope:global data:4byte +__OSEVSetNumber = .text:0x800B4C20; // type:label scope:global data:4byte +__OSEVEnd = .text:0x800B4C50; // type:label scope:global +OSDefaultExceptionHandler = .text:0x800B4C54; // type:function size:0x58 scope:global +__OSPSInit = .text:0x800B4CAC; // type:function size:0x38 scope:global +__OSGetDIConfig = .text:0x800B4CE4; // type:function size:0x14 +OSInitAlarm = .text:0x800B4CF8; // type:function size:0x4C scope:global +OSCreateAlarm = .text:0x800B4D44; // type:function size:0xC scope:global +InsertAlarm = .text:0x800B4D50; // type:function size:0x250 scope:local +OSSetAlarm = .text:0x800B4FA0; // type:function size:0x68 scope:global +OSCancelAlarm = .text:0x800B5008; // type:function size:0x11C +DecrementerExceptionCallback = .text:0x800B5124; // type:function size:0x230 scope:local +DecrementerExceptionHandler = .text:0x800B5354; // type:function size:0x50 scope:local +DLInsert = .text:0x800B53A4; // type:function size:0xAC scope:local +OSAllocFromHeap = .text:0x800B5450; // type:function size:0xFC +OSAllocFixed = .text:0x800B554C; // type:function size:0x284 +OSFreeToHeap = .text:0x800B57D0; // type:function size:0x7C +OSSetCurrentHeap = .text:0x800B584C; // type:function size:0x10 +OSInitAlloc = .text:0x800B585C; // type:function size:0x70 +OSCreateHeap = .text:0x800B58CC; // type:function size:0x6C +OSCheckHeap = .text:0x800B5938; // type:function size:0x360 +OSDumpHeap = .text:0x800B5C98; // type:function size:0x104 +OSGetArenaHi = .text:0x800B5D9C; // type:function size:0x8 scope:global +OSGetArenaLo = .text:0x800B5DA4; // type:function size:0x8 scope:global +OSSetArenaHi = .text:0x800B5DAC; // type:function size:0x8 scope:global +OSSetArenaLo = .text:0x800B5DB4; // type:function size:0x8 scope:global +__OSInitAudioSystem = .text:0x800B5DBC; // type:function size:0x1BC scope:global +__OSStopAudioSystem = .text:0x800B5F78; // type:function size:0xD8 scope:global +DCEnable = .text:0x800B6050; // type:function size:0x14 scope:global +DCInvalidateRange = .text:0x800B6064; // type:function size:0x30 scope:global +DCFlushRange = .text:0x800B6094; // type:function size:0x34 scope:global +DCStoreRange = .text:0x800B60C8; // type:function size:0x34 +DCFlushRangeNoSync = .text:0x800B60FC; // type:function size:0x30 scope:global +DCStoreRangeNoSync = .text:0x800B612C; // type:function size:0x30 +DCZeroRange = .text:0x800B615C; // type:function size:0x30 +ICInvalidateRange = .text:0x800B618C; // type:function size:0x38 scope:global +ICFlashInvalidate = .text:0x800B61C4; // type:function size:0x10 scope:global +ICEnable = .text:0x800B61D4; // type:function size:0x14 scope:global +__LCEnable = .text:0x800B61E8; // type:function size:0xCC scope:local +LCEnable = .text:0x800B62B4; // type:function size:0x38 +LCDisable = .text:0x800B62EC; // type:function size:0x28 scope:global +LCStoreBlocks = .text:0x800B6314; // type:function size:0x24 +LCStoreData = .text:0x800B6338; // type:function size:0xAC +LCQueueWait = .text:0x800B63E4; // type:function size:0x18 +L2GlobalInvalidate = .text:0x800B63FC; // type:function size:0x98 scope:global +DMAErrorHandler = .text:0x800B6494; // type:function size:0x160 scope:global +__OSCacheInit = .text:0x800B65F4; // type:function size:0xF4 scope:global +__OSLoadFPUContext = .text:0x800B66E8; // type:function size:0x124 scope:local +__OSSaveFPUContext = .text:0x800B680C; // type:function size:0x128 scope:local +OSSetCurrentContext = .text:0x800B6934; // type:function size:0x5C scope:global +OSGetCurrentContext = .text:0x800B6990; // type:function size:0xC +OSSaveContext = .text:0x800B699C; // type:function size:0x80 +OSLoadContext = .text:0x800B6A1C; // type:function size:0xD8 scope:global +OSClearContext = .text:0x800B6AF4; // type:function size:0x24 scope:global +OSInitContext = .text:0x800B6B18; // type:function size:0xBC +OSDumpContext = .text:0x800B6BD4; // type:function size:0x2A8 scope:global +OSSwitchFPUContext = .text:0x800B6E7C; // type:function size:0x84 scope:local +__OSContextInit = .text:0x800B6F00; // type:function size:0x48 scope:global +OSReport = .text:0x800B6F48; // type:function size:0x80 scope:global +OSSetErrorHandler = .text:0x800B6FC8; // type:function size:0x1C scope:global +__OSUnhandledException = .text:0x800B6FE4; // type:function size:0x200 scope:global +OSGetFontEncode = .text:0x800B71E4; // type:function size:0x58 +OSDisableInterrupts = .text:0x800B723C; // type:function size:0x14 scope:global +__RAS_OSDisableInterrupts_begin = .text:0x800B723C; // type:label scope:global +__RAS_OSDisableInterrupts_end = .text:0x800B724C; // type:label scope:global +OSEnableInterrupts = .text:0x800B7250; // type:function size:0x14 scope:global +OSRestoreInterrupts = .text:0x800B7264; // type:function size:0x24 scope:global +__OSSetInterruptHandler = .text:0x800B7288; // type:function size:0x1C scope:global +__OSGetInterruptHandler = .text:0x800B72A4; // type:function size:0x14 +__OSInterruptInit = .text:0x800B72B8; // type:function size:0x74 scope:global +SetInterruptMask = .text:0x800B732C; // type:function size:0x2D8 scope:local +__OSMaskInterrupts = .text:0x800B7604; // type:function size:0x88 scope:global +__OSUnmaskInterrupts = .text:0x800B768C; // type:function size:0x88 scope:global +__OSDispatchInterrupt = .text:0x800B7714; // type:function size:0x344 +ExternalInterruptHandler = .text:0x800B7A58; // type:function size:0x50 scope:local +OSNotifyLink = .text:0x800B7AA8; // type:function size:0x4 scope:weak +OSNotifyUnlink = .text:0x800B7AAC; // type:function size:0x4 scope:weak +Relocate = .text:0x800B7AB0; // type:function size:0x274 scope:local +OSLink = .text:0x800B7D24; // type:function size:0x250 +Undo = .text:0x800B7F74; // type:function size:0x20C scope:local +OSUnlink = .text:0x800B8180; // type:function size:0x94 +__OSModuleInit = .text:0x800B8214; // type:function size:0x18 scope:global +OSInitMessageQueue = .text:0x800B822C; // type:function size:0x60 +OSGetPhysicalMemSize = .text:0x800B828C; // type:function size:0xC +OSGetConsoleSimulatedMemSize = .text:0x800B8298; // type:function size:0xC +OnReset = .text:0x800B82A4; // type:function size:0x3C scope:local +MEMIntrruptHandler = .text:0x800B82E0; // type:function size:0x6C scope:local +Config24MB = .text:0x800B834C; // type:function size:0x80 scope:local +Config48MB = .text:0x800B83CC; // type:function size:0x80 scope:local +RealMode = .text:0x800B844C; // type:function size:0x18 scope:local +__OSInitMemoryProtection = .text:0x800B8464; // type:function size:0x120 scope:global +__OSUnlockAllMutex = .text:0x800B8584; // type:function size:0x70 +Run = .text:0x800B85F4; // type:function size:0x40 scope:local +Callback = .text:0x800B8634; // type:function size:0xC scope:local +__OSReboot = .text:0x800B8640; // type:function size:0x1C0 scope:global +OSRegisterResetFunction = .text:0x800B8800; // type:function size:0x84 scope:global +Reset = .text:0x800B8884; // type:function size:0x70 scope:local +__OSDoHotReset = .text:0x800B88F4; // type:function size:0x48 +OSResetSystem = .text:0x800B893C; // type:function size:0x278 scope:global +OSGetResetCode = .text:0x800B8BB4; // type:function size:0x30 scope:global +__OSResetSWInterruptHandler = .text:0x800B8BE4; // type:function size:0xF4 scope:global +OSGetResetButtonState = .text:0x800B8CD8; // type:function size:0x298 +WriteSramCallback = .text:0x800B8F70; // type:function size:0x60 scope:local +WriteSram = .text:0x800B8FD0; // type:function size:0x118 scope:local +__OSInitSram = .text:0x800B90E8; // type:function size:0x134 scope:global +__OSLockSram = .text:0x800B921C; // type:function size:0x5C scope:global +__OSLockSramEx = .text:0x800B9278; // type:function size:0x5C scope:global +UnlockSram = .text:0x800B92D4; // type:function size:0x308 scope:local +__OSUnlockSram = .text:0x800B95DC; // type:function size:0x24 scope:global +__OSUnlockSramEx = .text:0x800B9600; // type:function size:0x24 scope:global +__OSSyncSram = .text:0x800B9624; // type:function size:0x10 scope:global +OSGetSoundMode = .text:0x800B9634; // type:function size:0x80 +OSSetSoundMode = .text:0x800B96B4; // type:function size:0xA4 +OSGetProgressiveMode = .text:0x800B9758; // type:function size:0x70 +OSSetProgressiveMode = .text:0x800B97C8; // type:function size:0xA4 +OSGetWirelessID = .text:0x800B986C; // type:function size:0x84 +OSSetWirelessID = .text:0x800B98F0; // type:function size:0xAC +OSInitStopwatch = .text:0x800B999C; // type:function size:0x2C +OSStartStopwatch = .text:0x800B99C8; // type:function size:0x3C +OSStopStopwatch = .text:0x800B9A04; // type:function size:0xCC +OSCheckStopwatch = .text:0x800B9AD0; // type:function size:0x70 +OSResetStopwatch = .text:0x800B9B40; // type:function size:0x28 +OSDumpStopwatch = .text:0x800B9B68; // type:function size:0x1A4 +__OSSystemCallVectorStart = .text:0x800B9D0C; // type:label scope:global +SystemCallVector = .text:0x800B9D0C; // type:function size:0x20 scope:local +__OSSystemCallVectorEnd = .text:0x800B9D28; // type:label scope:global +__OSInitSystemCall = .text:0x800B9D2C; // type:function size:0x64 scope:global +__OSThreadInit = .text:0x800B9D90; // type:function size:0x128 scope:global +OSInitThreadQueue = .text:0x800B9EB8; // type:function size:0x10 scope:global +OSGetCurrentThread = .text:0x800B9EC8; // type:function size:0xC +OSDisableScheduler = .text:0x800B9ED4; // type:function size:0x40 scope:global +OSEnableScheduler = .text:0x800B9F14; // type:function size:0x40 scope:global +UnsetRun = .text:0x800B9F54; // type:function size:0x68 scope:local +__OSGetEffectivePriority = .text:0x800B9FBC; // type:function size:0x3C +SetEffectivePriority = .text:0x800B9FF8; // type:function size:0x1C0 scope:local +SelectThread = .text:0x800BA1B8; // type:function size:0x200 scope:local +__OSReschedule = .text:0x800BA3B8; // type:function size:0x30 scope:global +OSYieldThread = .text:0x800BA3E8; // type:function size:0x3C +OSCreateThread = .text:0x800BA424; // type:function size:0x120 +OSExitThread = .text:0x800BA544; // type:function size:0xE4 +OSCancelThread = .text:0x800BA628; // type:function size:0x1BC scope:global +OSResumeThread = .text:0x800BA7E4; // type:function size:0x288 +OSSuspendThread = .text:0x800BAA6C; // type:function size:0x170 +OSSleepThread = .text:0x800BABDC; // type:function size:0xEC +OSWakeupThread = .text:0x800BACC8; // type:function size:0x104 +OSSetIdleFunction = .text:0x800BADCC; // type:function size:0x90 +OSGetTime = .text:0x800BAE5C; // type:function size:0x18 scope:global +OSGetTick = .text:0x800BAE74; // type:function size:0x8 scope:global +__OSGetSystemTime = .text:0x800BAE7C; // type:function size:0x64 scope:global +GetDates = .text:0x800BAEE0; // type:function size:0x19C scope:local +OSTicksToCalendarTime = .text:0x800BB07C; // type:function size:0x204 +__init_user = .text:0x800BB280; // type:function size:0x20 scope:global +__init_cpp = .text:0x800BB2A0; // type:function size:0x54 scope:local +_ExitProcess = .text:0x800BB2F4; // type:function size:0x20 scope:global +DBInit = .text:0x800BB314; // type:function size:0x28 scope:global +__DBExceptionDestinationAux = .text:0x800BB33C; // type:function size:0x48 scope:global +__DBExceptionDestination = .text:0x800BB384; // type:function size:0x10 scope:local +__DBIsExceptionMarked = .text:0x800BB394; // type:function size:0x1C scope:global +DBPrintf = .text:0x800BB3B0; // type:function size:0x50 scope:global +PSMTXIdentity = .text:0x800BB400; // type:function size:0x2C +PSMTXCopy = .text:0x800BB42C; // type:function size:0x34 +PSMTXConcat = .text:0x800BB460; // type:function size:0xCC +PSMTXTranspose = .text:0x800BB52C; // type:function size:0x50 +PSMTXInverse = .text:0x800BB57C; // type:function size:0xF8 +PSMTXInvXpose = .text:0x800BB674; // type:function size:0xC8 +PSMTXRotRad = .text:0x800BB73C; // type:function size:0x70 +PSMTXRotTrig = .text:0x800BB7AC; // type:function size:0xA8 +PSMTXRotAxisRad = .text:0x800BB854; // type:function size:0x104 +PSMTXTrans = .text:0x800BB958; // type:function size:0x34 +PSMTXScale = .text:0x800BB98C; // type:function size:0x28 +PSMTXQuat = .text:0x800BB9B4; // type:function size:0xA4 +C_MTXLookAt = .text:0x800BBA58; // type:function size:0x18C +C_MTXLightPerspective = .text:0x800BBBE4; // type:function size:0xCC +PSMTXMultVec = .text:0x800BBCB0; // type:function size:0x54 +PSMTXMultVecArray = .text:0x800BBD04; // type:function size:0x8C +PSMTXMultVecSR = .text:0x800BBD90; // type:function size:0x54 +C_MTXPerspective = .text:0x800BBDE4; // type:function size:0xD0 +C_MTXOrtho = .text:0x800BBEB4; // type:function size:0x98 +PSVECAdd = .text:0x800BBF4C; // type:function size:0x24 +PSVECSubtract = .text:0x800BBF70; // type:function size:0x24 +PSVECScale = .text:0x800BBF94; // type:function size:0x1C +PSVECNormalize = .text:0x800BBFB0; // type:function size:0x44 +PSVECSquareMag = .text:0x800BBFF4; // type:function size:0x18 +PSVECMag = .text:0x800BC00C; // type:function size:0x3C +PSVECDotProduct = .text:0x800BC048; // type:function size:0x20 +PSVECCrossProduct = .text:0x800BC068; // type:function size:0x3C +C_VECHalfAngle = .text:0x800BC0A4; // type:function size:0xD8 +C_VECReflect = .text:0x800BC17C; // type:function size:0xD4 +PSVECSquareDistance = .text:0x800BC250; // type:function size:0x28 +PSVECDistance = .text:0x800BC278; // type:function size:0x4C +C_QUATAdd = .text:0x800BC2C4; // type:function size:0x44 +PSQUATAdd = .text:0x800BC308; // type:function size:0x24 +PSQUATMultiply = .text:0x800BC32C; // type:function size:0x5C +PSQUATNormalize = .text:0x800BC388; // type:function size:0x54 +PSQUATInverse = .text:0x800BC3DC; // type:function size:0x50 +C_QUATRotAxisRad = .text:0x800BC42C; // type:function size:0x8C +C_QUATMtx = .text:0x800BC4B8; // type:function size:0x258 +C_QUATSlerp = .text:0x800BC710; // type:function size:0x174 +PSMTXReorder = .text:0x800BC884; // type:function size:0x4C +PSMTXROMultVecArray = .text:0x800BC8D0; // type:function size:0x118 +__DVDInitWA = .text:0x800BC9E8; // type:function size:0x40 scope:global +__DVDInterruptHandler = .text:0x800BCA28; // type:function size:0x2F4 scope:global +AlarmHandler = .text:0x800BCD1C; // type:function size:0x84 scope:local +AlarmHandlerForTimeout = .text:0x800BCDA0; // type:function size:0x70 scope:local +Read = .text:0x800BCE10; // type:function size:0x110 scope:local +SeekTwiceBeforeRead = .text:0x800BCF20; // type:function size:0x80 scope:local +DVDLowRead = .text:0x800BCFA0; // type:function size:0x298 +DVDLowSeek = .text:0x800BD238; // type:function size:0x94 +DVDLowWaitCoverClose = .text:0x800BD2CC; // type:function size:0x2C scope:global +DVDLowReadDiskID = .text:0x800BD2F8; // type:function size:0xA4 +DVDLowStopMotor = .text:0x800BD39C; // type:function size:0x8C scope:global +DVDLowRequestError = .text:0x800BD428; // type:function size:0x8C +DVDLowInquiry = .text:0x800BD4B4; // type:function size:0x9C +DVDLowAudioStream = .text:0x800BD550; // type:function size:0x98 +DVDLowRequestAudioStatus = .text:0x800BD5E8; // type:function size:0x8C +DVDLowAudioBufferConfig = .text:0x800BD674; // type:function size:0x9C +DVDLowReset = .text:0x800BD710; // type:function size:0xBC scope:global +DVDLowBreak = .text:0x800BD7CC; // type:function size:0x14 +DVDLowClearCallback = .text:0x800BD7E0; // type:function size:0x18 +__DVDLowSetWAType = .text:0x800BD7F8; // type:function size:0x44 scope:global +__DVDFSInit = .text:0x800BD83C; // type:function size:0x38 scope:global +DVDConvertPathToEntrynum = .text:0x800BD874; // type:function size:0x2F4 +DVDFastOpen = .text:0x800BDB68; // type:function size:0x74 +DVDOpen = .text:0x800BDBDC; // type:function size:0xC8 +DVDClose = .text:0x800BDCA4; // type:function size:0x24 +entryToPath = .text:0x800BDCC8; // type:function size:0x160 scope:local +DVDGetCurrentDir = .text:0x800BDE28; // type:function size:0xC4 +DVDReadAsyncPrio = .text:0x800BDEEC; // type:function size:0xC0 +cbForReadAsync = .text:0x800BDFAC; // type:function size:0x30 scope:local +DVDReadPrio = .text:0x800BDFDC; // type:function size:0x118 +cbForReadSync = .text:0x800BE0F4; // type:function size:0x24 scope:local +DVDInit = .text:0x800BE118; // type:function size:0xFC scope:global +stateReadingFST = .text:0x800BE214; // type:function size:0x54 scope:local +cbForStateReadingFST = .text:0x800BE268; // type:function size:0x80 scope:local +cbForStateError = .text:0x800BE2E8; // type:function size:0xA8 scope:local +stateTimeout = .text:0x800BE390; // type:function size:0x9C scope:local +stateGettingError = .text:0x800BE42C; // type:function size:0x28 scope:local +CategorizeError = .text:0x800BE454; // type:function size:0xB4 scope:local +cbForStateGettingError = .text:0x800BE508; // type:function size:0x294 scope:local +cbForUnrecoveredError = .text:0x800BE79C; // type:function size:0x68 scope:local +cbForUnrecoveredErrorRetry = .text:0x800BE804; // type:function size:0x98 scope:local +stateGoToRetry = .text:0x800BE89C; // type:function size:0x28 scope:local +cbForStateGoToRetry = .text:0x800BE8C4; // type:function size:0x158 scope:local +stateCheckID = .text:0x800BEA1C; // type:function size:0xE4 scope:local +stateCheckID3 = .text:0x800BEB00; // type:function size:0x34 scope:local +stateCheckID2 = .text:0x800BEB34; // type:function size:0x38 scope:local +cbForStateCheckID1 = .text:0x800BEB6C; // type:function size:0x114 scope:local +cbForStateCheckID2 = .text:0x800BEC80; // type:function size:0xA4 scope:local +cbForStateCheckID3 = .text:0x800BED24; // type:function size:0xFC scope:local +AlarmHandler = .text:0x800BEE20; // type:function size:0x44 scope:local +stateCoverClosed = .text:0x800BEE64; // type:function size:0xCC scope:local +stateCoverClosed_CMD = .text:0x800BEF30; // type:function size:0x30 scope:local +cbForStateCoverClosed = .text:0x800BEF60; // type:function size:0x70 scope:local +stateMotorStopped = .text:0x800BEFD0; // type:function size:0x28 scope:local +cbForStateMotorStopped = .text:0x800BEFF8; // type:function size:0xE4 scope:local +stateReady = .text:0x800BF0DC; // type:function size:0x248 scope:local +stateBusy = .text:0x800BF324; // type:function size:0x2C0 scope:local +cbForStateBusy = .text:0x800BF5E4; // type:function size:0x5D4 scope:local +DVDReadAbsAsyncPrio = .text:0x800BFBB8; // type:function size:0xDC +DVDReadAbsAsyncForBS = .text:0x800BFC94; // type:function size:0xD0 +DVDReadDiskID = .text:0x800BFD64; // type:function size:0xD4 scope:global +DVDInquiryAsync = .text:0x800BFE38; // type:function size:0xD0 scope:global +DVDReset = .text:0x800BFF08; // type:function size:0x44 scope:global +DVDGetCommandBlockStatus = .text:0x800BFF4C; // type:function size:0x4C +DVDGetDriveStatus = .text:0x800BFF98; // type:function size:0xAC scope:global +DVDSetAutoInvalidation = .text:0x800C0044; // type:function size:0x10 +DVDCancelAsync = .text:0x800C0054; // type:function size:0x270 +DVDCancel = .text:0x800C02C4; // type:function size:0xAC +cbForCancelSync = .text:0x800C0370; // type:function size:0x24 scope:local +DVDGetCurrentDiskID = .text:0x800C0394; // type:function size:0x8 +DVDCheckDisk = .text:0x800C039C; // type:function size:0xE4 +__DVDPrepareResetAsync = .text:0x800C0480; // type:function size:0x11C +__DVDClearWaitingQueue = .text:0x800C059C; // type:function size:0x38 scope:global +__DVDPushWaitingQueue = .text:0x800C05D4; // type:function size:0x68 scope:global +__DVDPopWaitingQueue = .text:0x800C063C; // type:function size:0xA0 scope:global +__DVDCheckWaitingQueue = .text:0x800C06DC; // type:function size:0x58 scope:global +__DVDDequeueWaitingQueue = .text:0x800C0734; // type:function size:0x60 +ErrorCode2Num = .text:0x800C0794; // type:function size:0x11C scope:local +__DVDStoreErrorCode = .text:0x800C08B0; // type:function size:0x7C scope:global +cb = .text:0x800C092C; // type:function size:0xD8 scope:local +__fstLoad = .text:0x800C0A04; // type:function size:0x168 scope:global +__VIRetraceHandler = .text:0x800C0B6C; // type:function size:0x228 scope:local +VISetPreRetraceCallback = .text:0x800C0D94; // type:function size:0x44 +VISetPostRetraceCallback = .text:0x800C0DD8; // type:function size:0x44 +getTiming = .text:0x800C0E1C; // type:function size:0x90 scope:local +__VIInit = .text:0x800C0EAC; // type:function size:0x1F8 +VIInit = .text:0x800C10A4; // type:function size:0x478 +VIWaitForRetrace = .text:0x800C151C; // type:function size:0x54 +setFbbRegs = .text:0x800C1570; // type:function size:0x2D4 scope:local +setVerticalRegs = .text:0x800C1844; // type:function size:0x1A0 scope:local +VIConfigure = .text:0x800C19E4; // type:function size:0x79C +VIConfigurePan = .text:0x800C2180; // type:function size:0x394 +VIFlush = .text:0x800C2514; // type:function size:0x11C +VISetNextFrameBuffer = .text:0x800C2630; // type:function size:0x6C +VISetBlack = .text:0x800C269C; // type:function size:0x7C +VIGetRetraceCount = .text:0x800C2718; // type:function size:0x8 +getCurrentFieldEvenOdd = .text:0x800C2720; // type:function size:0x68 scope:local +VIGetNextField = .text:0x800C2788; // type:function size:0xA8 +VIGetCurrentLine = .text:0x800C2830; // type:function size:0x98 +VIGetTvFormat = .text:0x800C28C8; // type:function size:0x7C scope:global +VIGetDTVStatus = .text:0x800C2944; // type:function size:0x3C +DEMOGetRenderModeObj = .text:0x800C2980; // type:function size:0x8 +DEMOInitCaption = .text:0x800C2988; // type:function size:0x228 +DEMOPuts = .text:0x800C2BB0; // type:function size:0x310 +DEMOPrintf = .text:0x800C2EC0; // type:function size:0xC4 +DEMOWriteStats = .text:0x800C2F84; // type:function size:0x394 +DEMOUpdateStats = .text:0x800C3318; // type:function size:0x58 +DEMOPrintStats = .text:0x800C3370; // type:function size:0x96C +ClampStick = .text:0x800C3CDC; // type:function size:0x130 scope:local +PADClamp = .text:0x800C3E0C; // type:function size:0x108 +UpdateOrigin = .text:0x800C3F14; // type:function size:0x1A4 scope:local +PADOriginCallback = .text:0x800C40B8; // type:function size:0xC4 scope:local +PADOriginUpdateCallback = .text:0x800C417C; // type:function size:0xC0 scope:local +PADProbeCallback = .text:0x800C423C; // type:function size:0xD8 scope:local +PADTypeAndStatusCallback = .text:0x800C4314; // type:function size:0x32C scope:local +PADReceiveCheckCallback = .text:0x800C4640; // type:function size:0x134 scope:local +PADReset = .text:0x800C4774; // type:function size:0x100 +PADRecalibrate = .text:0x800C4874; // type:function size:0x104 +PADInit = .text:0x800C4978; // type:function size:0x210 +PADRead = .text:0x800C4B88; // type:function size:0x3AC +PADControlMotor = .text:0x800C4F34; // type:function size:0xA4 +PADSetSpec = .text:0x800C4FD8; // type:function size:0x60 +SPEC0_MakeStatus = .text:0x800C5038; // type:function size:0x174 scope:local +SPEC1_MakeStatus = .text:0x800C51AC; // type:function size:0x174 scope:local +SPEC2_MakeStatus = .text:0x800C5320; // type:function size:0x3F8 scope:local +OnReset = .text:0x800C5718; // type:function size:0x194 scope:local +SamplingHandler = .text:0x800C58AC; // type:function size:0x60 scope:local +PADSetSamplingCallback = .text:0x800C590C; // type:function size:0x54 +__PADDisableRecalibration = .text:0x800C5960; // type:function size:0x7C scope:global +AIRegisterDMACallback = .text:0x800C59DC; // type:function size:0x44 +AIInitDMA = .text:0x800C5A20; // type:function size:0x88 +AIStartDMA = .text:0x800C5AA8; // type:function size:0x18 +AIStopDMA = .text:0x800C5AC0; // type:function size:0x18 +AIGetDMAStartAddr = .text:0x800C5AD8; // type:function size:0x1C +AISetStreamPlayState = .text:0x800C5AF4; // type:function size:0xD8 +AIGetStreamPlayState = .text:0x800C5BCC; // type:function size:0x10 +AISetDSPSampleRate = .text:0x800C5BDC; // type:function size:0xE0 +AIGetDSPSampleRate = .text:0x800C5CBC; // type:function size:0x14 +__AI_set_stream_sample_rate = .text:0x800C5CD0; // type:function size:0xD4 scope:local +AIGetStreamSampleRate = .text:0x800C5DA4; // type:function size:0x10 +AISetStreamVolLeft = .text:0x800C5DB4; // type:function size:0x1C +AIGetStreamVolLeft = .text:0x800C5DD0; // type:function size:0x10 +AISetStreamVolRight = .text:0x800C5DE0; // type:function size:0x1C +AIGetStreamVolRight = .text:0x800C5DFC; // type:function size:0x10 +AIInit = .text:0x800C5E0C; // type:function size:0x164 +__AISHandler = .text:0x800C5F70; // type:function size:0x7C +__AIDHandler = .text:0x800C5FEC; // type:function size:0x90 +__AICallbackStackSwitch = .text:0x800C607C; // type:function size:0x58 +__AI_SRC_INIT = .text:0x800C60D4; // type:function size:0x1E4 +ARRegisterDMACallback = .text:0x800C62B8; // type:function size:0x44 +ARGetDMAStatus = .text:0x800C62FC; // type:function size:0x3C +ARStartDMA = .text:0x800C6338; // type:function size:0xF0 +ARAlloc = .text:0x800C6428; // type:function size:0x68 +ARFree = .text:0x800C6490; // type:function size:0x74 +ARCheckInit = .text:0x800C6504; // type:function size:0x8 +ARInit = .text:0x800C650C; // type:function size:0xBC +ARSetSize = .text:0x800C65C8; // type:function size:0x4 +ARGetBaseAddress = .text:0x800C65CC; // type:function size:0x8 +ARGetSize = .text:0x800C65D4; // type:function size:0x8 +__ARHandler = .text:0x800C65DC; // type:function size:0x78 scope:local +__ARChecksize = .text:0x800C6654; // type:function size:0x914 scope:local +__ARQServiceQueueLo = .text:0x800C6F68; // type:function size:0x100 +__ARQCallbackHack = .text:0x800C7068; // type:function size:0x4 +__ARQInterruptServiceRoutine = .text:0x800C706C; // type:function size:0xCC +ARQInit = .text:0x800C7138; // type:function size:0x68 +ARQPostRequest = .text:0x800C71A0; // type:function size:0x15C +DSPCheckMailToDSP = .text:0x800C72FC; // type:function size:0x10 +DSPCheckMailFromDSP = .text:0x800C730C; // type:function size:0x10 +DSPReadMailFromDSP = .text:0x800C731C; // type:function size:0x18 +DSPSendMailToDSP = .text:0x800C7334; // type:function size:0x14 +DSPInit = .text:0x800C7348; // type:function size:0xB8 +DSPReset = .text:0x800C7400; // type:function size:0x48 +DSPHalt = .text:0x800C7448; // type:function size:0x40 +DSPGetDMAStatus = .text:0x800C7488; // type:function size:0x10 +DSPAddTask = .text:0x800C7498; // type:function size:0x70 +__DSP_debug_printf = .text:0x800C7508; // type:function size:0x50 +__DSPHandler = .text:0x800C7558; // type:function size:0x424 +__DSP_exec_task = .text:0x800C797C; // type:function size:0x1A0 +__DSP_boot_task = .text:0x800C7B1C; // type:function size:0x18C +__DSP_insert_task = .text:0x800C7CA8; // type:function size:0xA0 +__DSP_remove_task = .text:0x800C7D48; // type:function size:0x94 +__GXDefaultTexRegionCallback = .text:0x800C7DDC; // type:function size:0x7C +__GXDefaultTlutRegionCallback = .text:0x800C7E58; // type:function size:0x24 +GXInit = .text:0x800C7E7C; // type:function size:0x7CC scope:global +__GXInitGX = .text:0x800C8648; // type:function size:0x884 scope:global +GXCPInterruptHandler = .text:0x800C8ECC; // type:function size:0x13C scope:local +GXInitFifoBase = .text:0x800C9008; // type:function size:0x6C scope:global +GXInitFifoPtrs = .text:0x800C9074; // type:function size:0x70 +GXInitFifoLimits = .text:0x800C90E4; // type:function size:0xC +GXSetCPUFifo = .text:0x800C90F0; // type:function size:0x110 scope:global +GXSetGPFifo = .text:0x800C9200; // type:function size:0x178 scope:global +GXSaveCPUFifo = .text:0x800C9378; // type:function size:0x20 +__GXSaveCPUFifoAux = .text:0x800C9398; // type:function size:0xDC +__GXFifoInit = .text:0x800C9474; // type:function size:0x4C scope:global +__GXFifoReadEnable = .text:0x800C94C0; // type:function size:0x28 +__GXFifoReadDisable = .text:0x800C94E8; // type:function size:0x24 +__GXFifoLink = .text:0x800C950C; // type:function size:0x44 +__GXWriteFifoIntEnable = .text:0x800C9550; // type:function size:0x4C +__GXWriteFifoIntReset = .text:0x800C959C; // type:function size:0x4C +__GXCleanGPFifo = .text:0x800C95E8; // type:function size:0xFC +GXGetCPUFifo = .text:0x800C96E4; // type:function size:0x8 +GXGetGPFifo = .text:0x800C96EC; // type:function size:0x8 +__GXXfVtxSpecs = .text:0x800C96F4; // type:function size:0x158 +GXSetVtxDesc = .text:0x800C984C; // type:function size:0x360 +__GXSetVCD = .text:0x800C9BAC; // type:function size:0x54 +__GXCalculateVLim = .text:0x800C9C00; // type:function size:0x124 +GXClearVtxDesc = .text:0x800C9D24; // type:function size:0x4C +GXSetVtxAttrFmt = .text:0x800C9D70; // type:function size:0x35C +__GXSetVAT = .text:0x800CA0CC; // type:function size:0x9C +GXSetArray = .text:0x800CA168; // type:function size:0x8C +GXInvalidateVtxCache = .text:0x800CA1F4; // type:function size:0x10 +GXSetTexCoordGen2 = .text:0x800CA204; // type:function size:0x2D0 +GXSetNumTexGens = .text:0x800CA4D4; // type:function size:0x48 +GXSetMisc = .text:0x800CA51C; // type:function size:0x78 scope:global +GXFlush = .text:0x800CA594; // type:function size:0x5C +GXResetWriteGatherPipe = .text:0x800CA5F0; // type:function size:0x34 +__GXAbortWaitPECopyDone = .text:0x800CA624; // type:function size:0xCC +GXSetDrawSync = .text:0x800CA6F0; // type:function size:0xB8 +GXSetDrawDone = .text:0x800CA7A8; // type:function size:0x98 +GXWaitDrawDone = .text:0x800CA840; // type:function size:0x4C +GXDrawDone = .text:0x800CA88C; // type:function size:0x80 +GXPixModeSync = .text:0x800CA90C; // type:function size:0x24 +GXPokeAlphaMode = .text:0x800CA930; // type:function size:0x14 +GXPokeAlphaRead = .text:0x800CA944; // type:function size:0x14 +GXPokeAlphaUpdate = .text:0x800CA958; // type:function size:0x1C +GXPokeBlendMode = .text:0x800CA974; // type:function size:0x88 +GXPokeColorUpdate = .text:0x800CA9FC; // type:function size:0x1C +GXPokeDstAlpha = .text:0x800CAA18; // type:function size:0x14 +GXPokeDither = .text:0x800CAA2C; // type:function size:0x1C +GXPokeZMode = .text:0x800CAA48; // type:function size:0x28 +GXSetDrawSyncCallback = .text:0x800CAA70; // type:function size:0x44 +GXTokenInterruptHandler = .text:0x800CAAB4; // type:function size:0x88 +GXFinishInterruptHandler = .text:0x800CAB3C; // type:function size:0x84 +__GXPEInit = .text:0x800CABC0; // type:function size:0x80 scope:global +__GXSetDirtyState = .text:0x800CAC40; // type:function size:0xA0 +GXBegin = .text:0x800CACE0; // type:function size:0xF0 +__GXSendFlushPrim = .text:0x800CADD0; // type:function size:0x88 +GXSetLineWidth = .text:0x800CAE58; // type:function size:0x58 +GXSetPointSize = .text:0x800CAEB0; // type:function size:0x54 +GXEnableTexOffsets = .text:0x800CAF04; // type:function size:0x64 +GXSetCullMode = .text:0x800CAF68; // type:function size:0x50 +GXSetCoPlanar = .text:0x800CAFB8; // type:function size:0x44 +__GXSetGenMode = .text:0x800CAFFC; // type:function size:0x24 +GXAdjustForOverscan = .text:0x800CB020; // type:function size:0x120 +GXSetDispCopySrc = .text:0x800CB140; // type:function size:0xC0 +GXSetTexCopySrc = .text:0x800CB200; // type:function size:0xC0 +GXSetDispCopyDst = .text:0x800CB2C0; // type:function size:0x44 +GXSetTexCopyDst = .text:0x800CB304; // type:function size:0x170 +GXSetDispCopyFrame2Field = .text:0x800CB474; // type:function size:0x2C +GXSetCopyClamp = .text:0x800CB4A0; // type:function size:0x7C +GXSetDispCopyYScale = .text:0x800CB51C; // type:function size:0xD4 +GXSetCopyClear = .text:0x800CB5F0; // type:function size:0x68 +GXSetCopyFilter = .text:0x800CB658; // type:function size:0x228 +GXSetDispCopyGamma = .text:0x800CB880; // type:function size:0x1C +GXCopyDisp = .text:0x800CB89C; // type:function size:0x170 +GXCopyTex = .text:0x800CBA0C; // type:function size:0x190 +GXClearBoundingBox = .text:0x800CBB9C; // type:function size:0x38 +GXInitLightAttn = .text:0x800CBBD4; // type:function size:0x1C +GXInitLightAttnK = .text:0x800CBBF0; // type:function size:0x10 +GXInitLightSpot = .text:0x800CBC00; // type:function size:0x180 +GXInitLightDistAttn = .text:0x800CBD80; // type:function size:0xD0 +GXInitLightPos = .text:0x800CBE50; // type:function size:0x10 +GXInitLightDir = .text:0x800CBE60; // type:function size:0x1C +GXInitSpecularDir = .text:0x800CBE7C; // type:function size:0xD4 +GXInitLightColor = .text:0x800CBF50; // type:function size:0x28 +GXLoadLightObjImm = .text:0x800CBF78; // type:function size:0x148 +GXSetChanAmbColor = .text:0x800CC0C0; // type:function size:0x168 +GXSetChanMatColor = .text:0x800CC228; // type:function size:0x168 +GXSetNumChans = .text:0x800CC390; // type:function size:0x4C +GXSetChanCtrl = .text:0x800CC3DC; // type:function size:0x1E4 +GXGetTexBufferSize = .text:0x800CC5C0; // type:function size:0x15C +__GetImageTileCount = .text:0x800CC71C; // type:function size:0xC8 +GXInitTexObj = .text:0x800CC7E4; // type:function size:0x274 +GXInitTexObjCI = .text:0x800CCA58; // type:function size:0x48 +GXInitTexObjLOD = .text:0x800CCAA0; // type:function size:0x194 +GXGetTexObjFmt = .text:0x800CCC34; // type:function size:0x8 +GXLoadTexObjPreLoaded = .text:0x800CCC3C; // type:function size:0x1A8 +GXLoadTexObj = .text:0x800CCDE4; // type:function size:0x54 +GXInitTlutObj = .text:0x800CCE38; // type:function size:0x48 +GXLoadTlut = .text:0x800CCE80; // type:function size:0x9C +GXInitTexCacheRegion = .text:0x800CCF1C; // type:function size:0x120 scope:global +GXInitTlutRegion = .text:0x800CD03C; // type:function size:0x48 scope:global +GXInvalidateTexAll = .text:0x800CD084; // type:function size:0x48 +GXSetTexRegionCallback = .text:0x800CD0CC; // type:function size:0x14 +GXSetTlutRegionCallback = .text:0x800CD0E0; // type:function size:0x14 +GXSetTexCoordScaleManually = .text:0x800CD0F4; // type:function size:0x9C +__SetSURegs = .text:0x800CD190; // type:function size:0xCC scope:local +__GXSetSUTexRegs = .text:0x800CD25C; // type:function size:0x17C +__GXSetTmemConfig = .text:0x800CD3D8; // type:function size:0x240 scope:global +GXSetTevIndirect = .text:0x800CD618; // type:function size:0x9C +GXSetIndTexMtx = .text:0x800CD6B4; // type:function size:0x160 +GXSetIndTexCoordScale = .text:0x800CD814; // type:function size:0x1D4 +GXSetIndTexOrder = .text:0x800CD9E8; // type:function size:0x138 +GXSetNumIndStages = .text:0x800CDB20; // type:function size:0x2C +GXSetTevDirect = .text:0x800CDB4C; // type:function size:0x48 +GXSetTevIndWarp = .text:0x800CDB94; // type:function size:0x64 +GXSetTevIndTile = .text:0x800CDBF8; // type:function size:0x1AC +__GXUpdateBPMask = .text:0x800CDDA4; // type:function size:0xCC +__GXFlushTextureState = .text:0x800CDE70; // type:function size:0x24 scope:global +GXSetTevOp = .text:0x800CDE94; // type:function size:0x1A4 +GXSetTevColorIn = .text:0x800CE038; // type:function size:0x80 +GXSetTevAlphaIn = .text:0x800CE0B8; // type:function size:0x84 +GXSetTevColorOp = .text:0x800CE13C; // type:function size:0xC0 +GXSetTevAlphaOp = .text:0x800CE1FC; // type:function size:0xC0 +GXSetTevColor = .text:0x800CE2BC; // type:function size:0x74 +GXSetTevColorS10 = .text:0x800CE330; // type:function size:0x74 +GXSetTevKColor = .text:0x800CE3A4; // type:function size:0x74 +GXSetTevKColorSel = .text:0x800CE418; // type:function size:0x6C +GXSetTevKAlphaSel = .text:0x800CE484; // type:function size:0x6C +GXSetTevSwapMode = .text:0x800CE4F0; // type:function size:0x58 +GXSetTevSwapModeTable = .text:0x800CE548; // type:function size:0xA0 +GXSetAlphaCompare = .text:0x800CE5E8; // type:function size:0x50 +GXSetZTexture = .text:0x800CE638; // type:function size:0x84 +GXSetTevOrder = .text:0x800CE6BC; // type:function size:0x1DC +GXSetNumTevStages = .text:0x800CE898; // type:function size:0x34 +GXSetFog = .text:0x800CE8CC; // type:function size:0x1B0 +GXSetFogRangeAdj = .text:0x800CEA7C; // type:function size:0x100 +GXSetBlendMode = .text:0x800CEB7C; // type:function size:0x104 +GXSetColorUpdate = .text:0x800CEC80; // type:function size:0x40 +GXSetAlphaUpdate = .text:0x800CECC0; // type:function size:0x40 +GXSetZMode = .text:0x800CED00; // type:function size:0x78 +GXSetZCompLoc = .text:0x800CED78; // type:function size:0x40 +GXSetPixelFmt = .text:0x800CEDB8; // type:function size:0x110 +GXSetDither = .text:0x800CEEC8; // type:function size:0x40 +GXSetDstAlpha = .text:0x800CEF08; // type:function size:0x54 +GXSetFieldMask = .text:0x800CEF5C; // type:function size:0x38 +GXSetFieldMode = .text:0x800CEF94; // type:function size:0x80 +__GXSetRange = .text:0x800CF014; // type:function size:0x4 +GXBeginDisplayList = .text:0x800CF018; // type:function size:0xC8 +GXEndDisplayList = .text:0x800CF0E0; // type:function size:0xD4 +GXCallDisplayList = .text:0x800CF1B4; // type:function size:0x70 +GXProject = .text:0x800CF224; // type:function size:0x174 +GXSetProjection = .text:0x800CF398; // type:function size:0xD4 +GXSetProjectionv = .text:0x800CF46C; // type:function size:0x78 +WriteMTXPS4x3 = .text:0x800CF4E4; // type:function size:0x34 scope:local +WriteMTXPS3x3from3x4 = .text:0x800CF518; // type:function size:0x34 scope:local +WriteMTXPS4x2 = .text:0x800CF54C; // type:function size:0x24 scope:local +GXLoadPosMtxImm = .text:0x800CF570; // type:function size:0x3C +GXLoadNrmMtxImm = .text:0x800CF5AC; // type:function size:0x40 +GXSetCurrentMtx = .text:0x800CF5EC; // type:function size:0x3C +GXLoadTexMtxImm = .text:0x800CF628; // type:function size:0x84 +GXSetViewportJitter = .text:0x800CF6AC; // type:function size:0x11C +GXSetViewport = .text:0x800CF7C8; // type:function size:0x24 +GXGetViewportv = .text:0x800CF7EC; // type:function size:0x4C +GXSetScissor = .text:0x800CF838; // type:function size:0xB0 +GXSetScissorBoxOffset = .text:0x800CF8E8; // type:function size:0x44 +GXSetClipMode = .text:0x800CF92C; // type:function size:0x28 +__GXSetMatrixIndex = .text:0x800CF954; // type:function size:0x84 +GXSetGPMetric = .text:0x800CF9D8; // type:function size:0x898 +GXReadGPMetric = .text:0x800D0270; // type:function size:0x1A8 +GXClearGPMetric = .text:0x800D0418; // type:function size:0x10 +GXReadGP0Metric = .text:0x800D0428; // type:function size:0x2C +GXReadGP1Metric = .text:0x800D0454; // type:function size:0x2C +GXReadMemMetric = .text:0x800D0480; // type:function size:0x214 +GXClearMemMetric = .text:0x800D0694; // type:function size:0xA8 +GXReadPixMetric = .text:0x800D073C; // type:function size:0x138 +GXClearPixMetric = .text:0x800D0874; // type:function size:0x30 +GXSetVCacheMetric = .text:0x800D08A4; // type:function size:0x50 +GXReadVCacheMetric = .text:0x800D08F4; // type:function size:0x94 +GXClearVCacheMetric = .text:0x800D0988; // type:function size:0x1C +__CARDDefaultApiCallback = .text:0x800D09A4; // type:function size:0x4 +__CARDSyncCallback = .text:0x800D09A8; // type:function size:0x34 +__CARDExtHandler = .text:0x800D09DC; // type:function size:0xD8 +__CARDExiHandler = .text:0x800D0AB4; // type:function size:0x118 +__CARDTxHandler = .text:0x800D0BCC; // type:function size:0xA8 +__CARDUnlockedHandler = .text:0x800D0C74; // type:function size:0x84 +__CARDEnableInterrupt = .text:0x800D0CF8; // type:function size:0xC0 +__CARDReadStatus = .text:0x800D0DB8; // type:function size:0xF0 +__CARDClearStatus = .text:0x800D0EA8; // type:function size:0xAC +TimeoutHandler = .text:0x800D0F54; // type:function size:0xA4 scope:local +Retry = .text:0x800D0FF8; // type:function size:0x22C scope:local +UnlockedCallback = .text:0x800D1224; // type:function size:0x110 scope:local +__CARDStart = .text:0x800D1334; // type:function size:0x1B4 +__CARDReadSegment = .text:0x800D14E8; // type:function size:0x134 +__CARDWritePage = .text:0x800D161C; // type:function size:0x11C +__CARDEraseSector = .text:0x800D1738; // type:function size:0xE0 +CARDInit = .text:0x800D1818; // type:function size:0x9C +__CARDSetDiskID = .text:0x800D18B4; // type:function size:0x38 +__CARDGetControlBlock = .text:0x800D18EC; // type:function size:0xB8 +__CARDPutControlBlock = .text:0x800D19A4; // type:function size:0x64 +CARDFreeBlocks = .text:0x800D1A08; // type:function size:0x150 +CARDGetSectorSize = .text:0x800D1B58; // type:function size:0x84 +__CARDSync = .text:0x800D1BDC; // type:function size:0x98 +OnReset = .text:0x800D1C74; // type:function size:0x50 scope:local +bitrev = .text:0x800D1CC4; // type:function size:0x16C scope:local +ReadArrayUnlock = .text:0x800D1E30; // type:function size:0x144 scope:local +DummyLen = .text:0x800D1F74; // type:function size:0xC4 scope:local +__CARDUnlock = .text:0x800D2038; // type:function size:0xB58 +InitCallback = .text:0x800D2B90; // type:function size:0x70 scope:local +DoneCallback = .text:0x800D2C00; // type:function size:0x324 scope:local +BlockReadCallback = .text:0x800D2F24; // type:function size:0xDC scope:local +__CARDRead = .text:0x800D3000; // type:function size:0x64 +BlockWriteCallback = .text:0x800D3064; // type:function size:0xDC scope:local +__CARDWrite = .text:0x800D3140; // type:function size:0x64 +__CARDGetFatBlock = .text:0x800D31A4; // type:function size:0x8 +WriteCallback = .text:0x800D31AC; // type:function size:0xD4 scope:local +EraseCallback = .text:0x800D3280; // type:function size:0xC8 scope:local +__CARDAllocBlock = .text:0x800D3348; // type:function size:0x118 +__CARDFreeBlock = .text:0x800D3460; // type:function size:0x9C +__CARDUpdateFatBlock = .text:0x800D34FC; // type:function size:0xAC +__CARDGetDirBlock = .text:0x800D35A8; // type:function size:0x8 +WriteCallback = .text:0x800D35B0; // type:function size:0xD0 scope:local +EraseCallback = .text:0x800D3680; // type:function size:0xC8 scope:local +__CARDUpdateDir = .text:0x800D3748; // type:function size:0xC4 +__CARDCheckSum = .text:0x800D380C; // type:function size:0x1B0 +VerifyID = .text:0x800D39BC; // type:function size:0x284 scope:local +VerifyDir = .text:0x800D3C40; // type:function size:0x240 scope:local +VerifyFAT = .text:0x800D3E80; // type:function size:0x284 scope:local +__CARDVerify = .text:0x800D4104; // type:function size:0x8C +CARDCheckExAsync = .text:0x800D4190; // type:function size:0x590 +CARDCheck = .text:0x800D4720; // type:function size:0x54 +IsCard = .text:0x800D4774; // type:function size:0xCC scope:local +CARDProbeEx = .text:0x800D4840; // type:function size:0x17C +DoMount = .text:0x800D49BC; // type:function size:0x410 scope:local +__CARDMountCallback = .text:0x800D4DCC; // type:function size:0x138 +CARDMountAsync = .text:0x800D4F04; // type:function size:0x1A0 +CARDMount = .text:0x800D50A4; // type:function size:0x48 +DoUnmount = .text:0x800D50EC; // type:function size:0x9C scope:local +CARDUnmount = .text:0x800D5188; // type:function size:0xAC +FormatCallback = .text:0x800D5234; // type:function size:0x144 scope:local +__CARDFormatRegionAsync = .text:0x800D5378; // type:function size:0x658 +CARDFormat = .text:0x800D59D0; // type:function size:0x54 +__CARDCompareFileName = .text:0x800D5A24; // type:function size:0x68 +__CARDAccess = .text:0x800D5A8C; // type:function size:0x98 +__CARDIsPublic = .text:0x800D5B24; // type:function size:0x30 +__CARDGetFileNo = .text:0x800D5B54; // type:function size:0x150 +CARDOpen = .text:0x800D5CA4; // type:function size:0x178 +CARDClose = .text:0x800D5E1C; // type:function size:0x54 +__CARDIsOpened = .text:0x800D5E70; // type:function size:0x8 +CreateCallbackFat = .text:0x800D5E78; // type:function size:0x130 scope:local +CARDCreateAsync = .text:0x800D5FA8; // type:function size:0x220 +CARDCreate = .text:0x800D61C8; // type:function size:0x48 +__CARDSeek = .text:0x800D6210; // type:function size:0x1B8 +ReadCallback = .text:0x800D63C8; // type:function size:0x130 scope:local +CARDReadAsync = .text:0x800D64F8; // type:function size:0x148 +CARDRead = .text:0x800D6640; // type:function size:0x48 +WriteCallback = .text:0x800D6688; // type:function size:0x170 scope:local +EraseCallback = .text:0x800D67F8; // type:function size:0xB0 scope:local +CARDWriteAsync = .text:0x800D68A8; // type:function size:0x114 +CARDWrite = .text:0x800D69BC; // type:function size:0x48 +DeleteCallback = .text:0x800D6A04; // type:function size:0xA4 scope:local +CARDDeleteAsync = .text:0x800D6AA8; // type:function size:0x110 +CARDDelete = .text:0x800D6BB8; // type:function size:0x48 +UpdateIconOffsets = .text:0x800D6C00; // type:function size:0x1F8 scope:local +CARDGetStatus = .text:0x800D6DF8; // type:function size:0x12C +CARDSetStatusAsync = .text:0x800D6F24; // type:function size:0x174 +CARDSetStatus = .text:0x800D7098; // type:function size:0x48 +CARDGetSerialNo = .text:0x800D70E0; // type:function size:0xC4 +SetExiInterruptMask = .text:0x800D71A4; // type:function size:0xF4 scope:local +EXIImm = .text:0x800D7298; // type:function size:0x25C scope:global +EXIImmEx = .text:0x800D74F4; // type:function size:0xA0 +EXIDma = .text:0x800D7594; // type:function size:0xEC scope:global +EXISync = .text:0x800D7680; // type:function size:0x238 scope:global +EXIClearInterrupts = .text:0x800D78B8; // type:function size:0x48 +EXISetExiCallback = .text:0x800D7900; // type:function size:0x7C +__EXIProbe = .text:0x800D797C; // type:function size:0x174 scope:local +EXIProbe = .text:0x800D7AF0; // type:function size:0x80 +EXIProbeEx = .text:0x800D7B70; // type:function size:0xB4 +EXIAttach = .text:0x800D7C24; // type:function size:0x10C +EXIDetach = .text:0x800D7D30; // type:function size:0xBC +EXISelect = .text:0x800D7DEC; // type:function size:0x12C scope:global +EXIDeselect = .text:0x800D7F18; // type:function size:0x110 scope:global +EXIIntrruptHandler = .text:0x800D8028; // type:function size:0xC8 scope:local +TCIntrruptHandler = .text:0x800D80F0; // type:function size:0x218 scope:local +EXTIntrruptHandler = .text:0x800D8308; // type:function size:0xD0 scope:local +EXIInit = .text:0x800D83D8; // type:function size:0x114 scope:global +EXILock = .text:0x800D84EC; // type:function size:0xF4 scope:global +EXIUnlock = .text:0x800D85E0; // type:function size:0xDC scope:global +EXIGetState = .text:0x800D86BC; // type:function size:0x18 +UnlockedHandler = .text:0x800D86D4; // type:function size:0x28 scope:local +EXIGetID = .text:0x800D86FC; // type:function size:0x37C +InitializeUART = .text:0x800D8A78; // type:function size:0x70 +WriteUARTN = .text:0x800D8AE8; // type:function size:0x200 +SIBusy = .text:0x800D8CE8; // type:function size:0x20 +SIIsChanBusy = .text:0x800D8D08; // type:function size:0x3C +CompleteTransfer = .text:0x800D8D44; // type:function size:0x2FC +SIInterruptHandler = .text:0x800D9040; // type:function size:0x344 scope:local +SIEnablePollingInterrupt = .text:0x800D9384; // type:function size:0x98 +SIRegisterPollingHandler = .text:0x800D941C; // type:function size:0xCC +SIUnregisterPollingHandler = .text:0x800D94E8; // type:function size:0xF4 +SIInit = .text:0x800D95DC; // type:function size:0xA4 scope:global +__SITransfer = .text:0x800D9680; // type:function size:0x20C +SIGetStatus = .text:0x800D988C; // type:function size:0x7C +SISetCommand = .text:0x800D9908; // type:function size:0x14 +SITransferCommands = .text:0x800D991C; // type:function size:0x10 +SISetXY = .text:0x800D992C; // type:function size:0x6C scope:global +SIEnablePolling = .text:0x800D9998; // type:function size:0x9C +SIDisablePolling = .text:0x800D9A34; // type:function size:0x6C +SIGetResponseRaw = .text:0x800D9AA0; // type:function size:0xD4 +SIGetResponse = .text:0x800D9B74; // type:function size:0xC4 +AlarmHandler = .text:0x800D9C38; // type:function size:0x8C scope:local +SITransfer = .text:0x800D9CC4; // type:function size:0x16C scope:global +GetTypeCallback = .text:0x800D9E30; // type:function size:0x298 scope:local +SIGetType = .text:0x800DA0C8; // type:function size:0x1C4 scope:global +SIGetTypeAsync = .text:0x800DA28C; // type:function size:0x13C +SISetSamplingRate = .text:0x800DA3C8; // type:function size:0xE4 scope:global +SIRefreshSamplingRate = .text:0x800DA4AC; // type:function size:0x24 +THPVideoDecode = .text:0x800DA4D0; // type:function size:0x244 +__THPSetupBuffers = .text:0x800DA714; // type:function size:0x44 scope:local +__THPReadFrameHeader = .text:0x800DA758; // type:function size:0x13C scope:local +__THPReadScaneHeader = .text:0x800DA894; // type:function size:0x11C scope:local +__THPReadQuantizationTable = .text:0x800DA9B0; // type:function size:0x3BC scope:local +__THPReadHuffmanTableSpecification = .text:0x800DAD6C; // type:function size:0x1E0 scope:local +__THPHuffGenerateSizeTable = .text:0x800DAF4C; // type:function size:0xF0 scope:local +__THPHuffGenerateCodeTable = .text:0x800DB03C; // type:function size:0x68 scope:local +__THPHuffGenerateDecoderTables = .text:0x800DB0A4; // type:function size:0x1BC scope:local +__THPRestartDefinition = .text:0x800DB260; // type:function size:0x54 scope:local +__THPPrepBitStream = .text:0x800DB2B4; // type:function size:0x24C scope:local +__THPDecompressYUV = .text:0x800DB500; // type:function size:0x10C scope:local +__THPDecompressiMCURow512x448 = .text:0x800DB60C; // type:function size:0x1A88 scope:local +__THPDecompressiMCURow640x480 = .text:0x800DD094; // type:function size:0x1A8C scope:local +__THPDecompressiMCURowNxN = .text:0x800DEB20; // type:function size:0x1AAC scope:local +__THPHuffDecodeDCTCompY = .text:0x800E05CC; // type:function size:0x67C scope:local +__THPHuffDecodeDCTCompU = .text:0x800E0C48; // type:function size:0x6A8 scope:local +__THPHuffDecodeDCTCompV = .text:0x800E12F0; // type:function size:0x6A8 scope:local +THPInit = .text:0x800E1998; // type:function size:0x78 +THPAudioDecode = .text:0x800E1A10; // type:function size:0x464 +__THPAudioGetNewSample = .text:0x800E1E74; // type:function size:0x90 +__THPAudioInitialize = .text:0x800E1F04; // type:function size:0x3C +__va_arg = .text:0x800E1F40; // type:function size:0xC8 scope:global +__destroy_global_chain = .text:0x800E2008; // type:function size:0x48 scope:global +__register_global_object = .text:0x800E2050; // type:function size:0x18 scope:global +__dl__FPv = .text:0x800E2068; // type:function size:0x4C +__dt__Q23std9exceptionFv = .text:0x800E20B4; // type:function size:0x48 +what__Q23std9exceptionCFv = .text:0x800E20FC; // type:function size:0xC +__throw_catch_compare = .text:0x800E2108; // type:function size:0x22C +unexpected__3stdFv = .text:0x800E2334; // type:function size:0x28 +terminate__3stdFv = .text:0x800E235C; // type:function size:0x28 +duhandler__3stdFv = .text:0x800E2384; // type:function size:0x28 +dthandler__3stdFv = .text:0x800E23AC; // type:function size:0x20 +__cvt_fp2unsigned = .text:0x800E23CC; // type:function size:0x5C +__save_fpr = .text:0x800E2428; // type:function size:0x4C +_savefpr_14 = .text:0x800E2428; // type:label scope:global +_savefpr_15 = .text:0x800E242C; // type:label scope:global +_savefpr_16 = .text:0x800E2430; // type:label scope:global +_savefpr_17 = .text:0x800E2434; // type:label scope:global +_savefpr_18 = .text:0x800E2438; // type:label scope:global +_savefpr_19 = .text:0x800E243C; // type:label scope:global +_savefpr_20 = .text:0x800E2440; // type:label scope:global +_savefpr_21 = .text:0x800E2444; // type:label scope:global +_savefpr_22 = .text:0x800E2448; // type:label scope:global +_savefpr_23 = .text:0x800E244C; // type:label scope:global +_savefpr_24 = .text:0x800E2450; // type:label scope:global +_savefpr_25 = .text:0x800E2454; // type:label scope:global +_savefpr_26 = .text:0x800E2458; // type:label scope:global +_savefpr_27 = .text:0x800E245C; // type:label scope:global +_savefpr_28 = .text:0x800E2460; // type:label scope:global +_savefpr_29 = .text:0x800E2464; // type:label scope:global +_savefpr_30 = .text:0x800E2468; // type:label scope:global +_savefpr_31 = .text:0x800E246C; // type:label scope:global +__restore_fpr = .text:0x800E2474; // type:function size:0x4C +_restfpr_14 = .text:0x800E2474; // type:label scope:global +_restfpr_15 = .text:0x800E2478; // type:label scope:global +_restfpr_16 = .text:0x800E247C; // type:label scope:global +_restfpr_17 = .text:0x800E2480; // type:label scope:global +_restfpr_18 = .text:0x800E2484; // type:label scope:global +_restfpr_19 = .text:0x800E2488; // type:label scope:global +_restfpr_20 = .text:0x800E248C; // type:label scope:global +_restfpr_21 = .text:0x800E2490; // type:label scope:global +_restfpr_22 = .text:0x800E2494; // type:label scope:global +_restfpr_23 = .text:0x800E2498; // type:label scope:global +_restfpr_24 = .text:0x800E249C; // type:label scope:global +_restfpr_25 = .text:0x800E24A0; // type:label scope:global +_restfpr_26 = .text:0x800E24A4; // type:label scope:global +_restfpr_27 = .text:0x800E24A8; // type:label scope:global +_restfpr_28 = .text:0x800E24AC; // type:label scope:global +_restfpr_29 = .text:0x800E24B0; // type:label scope:global +_restfpr_30 = .text:0x800E24B4; // type:label scope:global +_restfpr_31 = .text:0x800E24B8; // type:label scope:global +__save_gpr = .text:0x800E24C0; // type:function size:0x4C +_savegpr_14 = .text:0x800E24C0; // type:label scope:global +_savegpr_15 = .text:0x800E24C4; // type:label scope:global +_savegpr_16 = .text:0x800E24C8; // type:label scope:global +_savegpr_17 = .text:0x800E24CC; // type:label scope:global +_savegpr_18 = .text:0x800E24D0; // type:label scope:global +_savegpr_19 = .text:0x800E24D4; // type:label scope:global +_savegpr_20 = .text:0x800E24D8; // type:label scope:global +_savegpr_21 = .text:0x800E24DC; // type:label scope:global +_savegpr_22 = .text:0x800E24E0; // type:label scope:global +_savegpr_23 = .text:0x800E24E4; // type:label scope:global +_savegpr_24 = .text:0x800E24E8; // type:label scope:global +_savegpr_25 = .text:0x800E24EC; // type:label scope:global +_savegpr_26 = .text:0x800E24F0; // type:label scope:global +_savegpr_27 = .text:0x800E24F4; // type:label scope:global +_savegpr_28 = .text:0x800E24F8; // type:label scope:global +_savegpr_29 = .text:0x800E24FC; // type:label scope:global +_savegpr_30 = .text:0x800E2500; // type:label scope:global +_savegpr_31 = .text:0x800E2504; // type:label scope:global +__restore_gpr = .text:0x800E250C; // type:function size:0x4C +_restgpr_14 = .text:0x800E250C; // type:label scope:global +_restgpr_15 = .text:0x800E2510; // type:label scope:global +_restgpr_16 = .text:0x800E2514; // type:label scope:global +_restgpr_17 = .text:0x800E2518; // type:label scope:global +_restgpr_18 = .text:0x800E251C; // type:label scope:global +_restgpr_19 = .text:0x800E2520; // type:label scope:global +_restgpr_20 = .text:0x800E2524; // type:label scope:global +_restgpr_21 = .text:0x800E2528; // type:label scope:global +_restgpr_22 = .text:0x800E252C; // type:label scope:global +_restgpr_23 = .text:0x800E2530; // type:label scope:global +_restgpr_24 = .text:0x800E2534; // type:label scope:global +_restgpr_25 = .text:0x800E2538; // type:label scope:global +_restgpr_26 = .text:0x800E253C; // type:label scope:global +_restgpr_27 = .text:0x800E2540; // type:label scope:global +_restgpr_28 = .text:0x800E2544; // type:label scope:global +_restgpr_29 = .text:0x800E2548; // type:label scope:global +_restgpr_30 = .text:0x800E254C; // type:label scope:global +_restgpr_31 = .text:0x800E2550; // type:label scope:global +__div2u = .text:0x800E2558; // type:function size:0xEC scope:global +__div2i = .text:0x800E2644; // type:function size:0x138 +__mod2u = .text:0x800E277C; // type:function size:0xE4 scope:global +__mod2i = .text:0x800E2860; // type:function size:0x10C +__shl2i = .text:0x800E296C; // type:function size:0x24 +__shr2u = .text:0x800E2990; // type:function size:0x24 +__shr2i = .text:0x800E29B4; // type:function size:0x28 +__cvt_dbl_usll = .text:0x800E29DC; // type:function size:0xCC +GetR2__Fv = .text:0x800E2AA8; // type:function size:0x8 scope:local +__fini_cpp_exceptions = .text:0x800E2AB0; // type:function size:0x34 scope:global +__init_cpp_exceptions = .text:0x800E2AE4; // type:function size:0x40 scope:global +ExPPC_LongJump__FP12ThrowContextPvPv = .text:0x800E2B24; // type:function size:0x104 +__throw = .text:0x800E2C28; // type:function size:0x144 +__end__catch = .text:0x800E2D6C; // type:function size:0x44 +ExPPC_ThrowHandler__FP12ThrowContext = .text:0x800E2DB0; // type:function size:0x410 +__unexpected = .text:0x800E31C0; // type:function size:0x1B4 +__dt__Q23std13bad_exceptionFv = .text:0x800E3374; // type:function size:0x5C +ExPPC_UnwindStack__FP12ThrowContextP15MWExceptionInfoPv = .text:0x800E33D0; // type:function size:0x50C +ExPPC_PopStackFrame__FP12ThrowContextP15MWExceptionInfo = .text:0x800E38DC; // type:function size:0x248 +ExPPC_NextAction__FP14ActionIterator = .text:0x800E3B24; // type:function size:0x1C0 +ExPPC_FindExceptionRecord__FPcP15MWExceptionInfo = .text:0x800E3CE4; // type:function size:0x204 +__unregister_fragment = .text:0x800E3EE8; // type:function size:0x34 scope:global +__register_fragment = .text:0x800E3F1C; // type:function size:0x34 scope:global +what__Q23std13bad_exceptionCFv = .text:0x800E3F50; // type:function size:0xC +__sys_free = .text:0x800E3F5C; // type:function size:0xB8 +exit = .text:0x800E4014; // type:function size:0xCC scope:global +abort = .text:0x800E40E0; // type:function size:0x88 +free = .text:0x800E4168; // type:function size:0x134 +deallocate_from_fixed_pools = .text:0x800E429C; // type:function size:0x1FC +SubBlock_merge_next = .text:0x800E4498; // type:function size:0xBC scope:local +Block_link = .text:0x800E4554; // type:function size:0x17C scope:local +__flush_all = .text:0x800E46D0; // type:function size:0x70 +__close_all = .text:0x800E4740; // type:function size:0x98 scope:global +__num2dec = .text:0x800E47D8; // type:function size:0x1A4 +__num2dec_internal = .text:0x800E497C; // type:function size:0x23C scope:local +__two_exp = .text:0x800E4BB8; // type:function size:0x340 scope:local +__str2dec = .text:0x800E4EF8; // type:function size:0xEC scope:local +__timesdec = .text:0x800E4FE4; // type:function size:0x28C scope:local +__ull2dec = .text:0x800E5270; // type:function size:0x110 scope:local +__count_trailing_zerol = .text:0x800E5380; // type:function size:0x70 scope:local +abs = .text:0x800E53F0; // type:function size:0x10 +__flush_buffer = .text:0x800E5400; // type:function size:0xC4 scope:global +__prep_buffer = .text:0x800E54C4; // type:function size:0x34 scope:global +tolower = .text:0x800E54F8; // type:function size:0x24 +isalpha = .text:0x800E551C; // type:function size:0x18 +__fwrite = .text:0x800E5534; // type:function size:0x30C scope:global +fwrite = .text:0x800E5840; // type:function size:0x20 scope:global +fflush = .text:0x800E5860; // type:function size:0x138 +fclose = .text:0x800E5998; // type:function size:0xC0 +fseek = .text:0x800E5A58; // type:function size:0x20 scope:global +_fseek = .text:0x800E5A78; // type:function size:0x23C +ftell = .text:0x800E5CB4; // type:function size:0x70 +wcstombs = .text:0x800E5D24; // type:function size:0xA0 scope:global +unicode_to_UTF8 = .text:0x800E5DC4; // type:function size:0xA4 scope:local +memcmp = .text:0x800E5E68; // type:function size:0x4C +__memrchr = .text:0x800E5EB4; // type:function size:0x2C scope:global +memchr = .text:0x800E5EE0; // type:function size:0x2C scope:global +memmove = .text:0x800E5F0C; // type:function size:0xCC +__copy_longs_rev_unaligned = .text:0x800E5FD8; // type:function size:0xB0 +__copy_longs_unaligned = .text:0x800E6088; // type:function size:0xC4 +__copy_longs_rev_aligned = .text:0x800E614C; // type:function size:0xAC +__copy_longs_aligned = .text:0x800E61F8; // type:function size:0xC0 +__stdio_atexit = .text:0x800E62B8; // type:function size:0x10 scope:global +sprintf = .text:0x800E62C8; // type:function size:0xE0 +vsprintf = .text:0x800E63A8; // type:function size:0x78 +vsnprintf = .text:0x800E6420; // type:function size:0x74 +vprintf = .text:0x800E6494; // type:function size:0x7C scope:global +printf = .text:0x800E6510; // type:function size:0xCC +__StringWrite = .text:0x800E65DC; // type:function size:0x6C +__FileWrite = .text:0x800E6648; // type:function size:0x58 scope:global +__pformatter = .text:0x800E66A0; // type:function size:0x774 scope:local +float2str = .text:0x800E6E14; // type:function size:0x6EC scope:local +round_decimal = .text:0x800E7500; // type:function size:0x12C +double2hex = .text:0x800E762C; // type:function size:0x338 scope:local +longlong2str = .text:0x800E7964; // type:function size:0x2DC scope:local +long2str = .text:0x800E7C40; // type:function size:0x220 scope:local +parse_format = .text:0x800E7E60; // type:function size:0x504 scope:local +raise = .text:0x800E8364; // type:function size:0xB0 +strchr = .text:0x800E8414; // type:function size:0x30 scope:global +strncmp = .text:0x800E8444; // type:function size:0x40 +strcmp = .text:0x800E8484; // type:function size:0x128 +strcat = .text:0x800E85AC; // type:function size:0x44 +strcpy = .text:0x800E85F0; // type:function size:0xB8 +strlen = .text:0x800E86A8; // type:function size:0x1C scope:global +__close_console = .text:0x800E86C4; // type:function size:0x8 +__write_console = .text:0x800E86CC; // type:function size:0xC4 +fwide = .text:0x800E8790; // type:function size:0x88 scope:global +__ieee754_acos = .text:0x800E8818; // type:function size:0x310 +__ieee754_asin = .text:0x800E8B28; // type:function size:0x264 +__ieee754_atan2 = .text:0x800E8D8C; // type:function size:0x290 +__ieee754_fmod = .text:0x800E901C; // type:function size:0x33C +__ieee754_pow = .text:0x800E9358; // type:function size:0x88C +__ieee754_rem_pio2 = .text:0x800E9BE4; // type:function size:0x3A0 +__kernel_cos = .text:0x800E9F84; // type:function size:0xF4 +__kernel_rem_pio2 = .text:0x800EA078; // type:function size:0xE54 +__kernel_sin = .text:0x800EAECC; // type:function size:0xA0 +__kernel_tan = .text:0x800EAF6C; // type:function size:0x214 +atan = .text:0x800EB180; // type:function size:0x200 +copysign = .text:0x800EB380; // type:function size:0x28 +cos = .text:0x800EB3A8; // type:function size:0xD4 +floor = .text:0x800EB47C; // type:function size:0x148 +frexp = .text:0x800EB5C4; // type:function size:0x8C +ldexp = .text:0x800EB650; // type:function size:0x1C4 +modf = .text:0x800EB814; // type:function size:0xFC +sin = .text:0x800EB910; // type:function size:0xD8 +tan = .text:0x800EB9E8; // type:function size:0x78 +acos = .text:0x800EBA60; // type:function size:0x20 +asin = .text:0x800EBA80; // type:function size:0x20 +atan2 = .text:0x800EBAA0; // type:function size:0x20 +fmod = .text:0x800EBAC0; // type:function size:0x20 +pow = .text:0x800EBAE0; // type:function size:0x20 +tanf = .text:0x800EBB00; // type:function size:0x24 scope:weak +sinf = .text:0x800EBB24; // type:function size:0x24 scope:weak +cosf = .text:0x800EBB48; // type:function size:0x24 scope:weak +atan2f = .text:0x800EBB6C; // type:function size:0x24 scope:weak +acosf = .text:0x800EBB90; // type:function size:0x24 scope:weak +TRKNubMainLoop = .text:0x800EBBB4; // type:function size:0xF8 scope:global +TRKDestructEvent = .text:0x800EBCAC; // type:function size:0x24 scope:global +TRKConstructEvent = .text:0x800EBCD0; // type:function size:0x18 +TRKPostEvent = .text:0x800EBCE8; // type:function size:0xE0 +TRKGetNextEvent = .text:0x800EBDC8; // type:function size:0xB4 scope:global +TRKInitializeEventQueue = .text:0x800EBE7C; // type:function size:0x58 scope:global +TRKNubWelcome = .text:0x800EBED4; // type:function size:0x28 scope:global +TRKTerminateNub = .text:0x800EBEFC; // type:function size:0x24 scope:global +TRKInitializeNub = .text:0x800EBF20; // type:function size:0x134 scope:global +TRKMessageSend = .text:0x800EC054; // type:function size:0x1DC +TRKReadBuffer_ui32 = .text:0x800EC230; // type:function size:0xF0 +TRKReadBuffer_ui8 = .text:0x800EC320; // type:function size:0x98 +TRKReadBuffer1_ui64 = .text:0x800EC3B8; // type:function size:0xE8 +TRKReadBuffer1_ui32 = .text:0x800EC4A0; // type:function size:0xC8 +TRKReadBuffer1_ui16 = .text:0x800EC568; // type:function size:0xB8 +TRKReadBuffer1_ui8 = .text:0x800EC620; // type:function size:0x80 +TRKAppendBuffer_ui32 = .text:0x800EC6A0; // type:function size:0xA8 +TRKAppendBuffer_ui8 = .text:0x800EC748; // type:function size:0x68 +TRKAppendBuffer1_ui64 = .text:0x800EC7B0; // type:function size:0x88 +TRKAppendBuffer1_ui32 = .text:0x800EC838; // type:function size:0x64 +TRKAppendBuffer1_ui16 = .text:0x800EC89C; // type:function size:0x54 +TRKReadBuffer = .text:0x800EC8F0; // type:function size:0x8C +TRKAppendBuffer = .text:0x800EC97C; // type:function size:0xA4 +TRKSetBufferPosition = .text:0x800ECA20; // type:function size:0x30 +TRKResetBuffer = .text:0x800ECA50; // type:function size:0x40 +TRKReleaseBuffer = .text:0x800ECA90; // type:function size:0x64 +TRKGetBuffer = .text:0x800ECAF4; // type:function size:0x2C scope:global +TRKGetFreeBuffer = .text:0x800ECB20; // type:function size:0xC8 +TRKInitializeMessageBuffers = .text:0x800ECBE8; // type:function size:0x74 scope:global +TRKTerminateSerialHandler = .text:0x800ECC5C; // type:function size:0x8 +TRKInitializeSerialHandler = .text:0x800ECC64; // type:function size:0x24 scope:global +TRKProcessInput = .text:0x800ECC88; // type:function size:0x50 +TRKGetInput = .text:0x800ECCD8; // type:function size:0x98 scope:global +TRKTestForPacket = .text:0x800ECD70; // type:function size:0x2B8 +usr_put_initialize = .text:0x800ED028; // type:function size:0x4 scope:global +usr_puts_serial = .text:0x800ED02C; // type:function size:0x88 +TRKDispatchMessage = .text:0x800ED0B4; // type:function size:0x84 scope:global +TRKInitializeDispatcher = .text:0x800ED138; // type:function size:0x18 scope:global +TRKDoSetOption = .text:0x800ED150; // type:function size:0x1A4 +TRKDoStop = .text:0x800ED2F4; // type:function size:0x100 +TRKDoStep = .text:0x800ED3F4; // type:function size:0x530 +TRKDoContinue = .text:0x800ED924; // type:function size:0x154 +TRKDoFlushCache = .text:0x800EDA78; // type:function size:0x2F8 +TRKDoWriteRegisters = .text:0x800EDD70; // type:function size:0x3C8 +TRKDoReadRegisters = .text:0x800EE138; // type:function size:0x3CC +TRKDoWriteMemory = .text:0x800EE504; // type:function size:0x420 +TRKDoReadMemory = .text:0x800EE924; // type:function size:0x410 +TRKDoCPUType = .text:0x800EED34; // type:function size:0x398 +TRKDoSupportMask = .text:0x800EF0CC; // type:function size:0x230 +TRKDoVersions = .text:0x800EF2FC; // type:function size:0x2D8 +TRKDoReset = .text:0x800EF5D4; // type:function size:0xB8 +TRKDoDisconnect = .text:0x800EF68C; // type:function size:0xE4 +TRKDoConnect = .text:0x800EF770; // type:function size:0xBC +TRKDoUnsupported = .text:0x800EF82C; // type:function size:0xB0 +TRKStandardACK = .text:0x800EF8DC; // type:function size:0xB8 +SetTRKConnected = .text:0x800EF994; // type:function size:0xC +GetTRKConnected = .text:0x800EF9A0; // type:function size:0x10 +HandlePositionFileSupportRequest = .text:0x800EF9B0; // type:function size:0x190 +HandleCloseFileSupportRequest = .text:0x800EFB40; // type:function size:0x120 +HandleOpenFileSupportRequest = .text:0x800EFC60; // type:function size:0x1A8 +TRKRequestSend = .text:0x800EFE08; // type:function size:0x1A4 +TRKSuppAccessFile = .text:0x800EFFAC; // type:function size:0x2C4 +TRKReleaseMutex = .text:0x800F0270; // type:function size:0x8 +TRKAcquireMutex = .text:0x800F0278; // type:function size:0x8 +TRKInitializeMutex = .text:0x800F0280; // type:function size:0x8 +TRKDoNotifyStopped = .text:0x800F0288; // type:function size:0xD8 +TRK_flush_cache = .text:0x800F0360; // type:function size:0x38 +TRK_fill_mem = .text:0x800F0398; // type:function size:0xBC +__TRK_get_MSR = .text:0x800F0454; // type:function size:0x8 +__TRK_set_MSR = .text:0x800F045C; // type:function size:0x8 +TRK_ppc_memcpy = .text:0x800F0464; // type:function size:0x3C +TRKInterruptHandler = .text:0x800F04A0; // type:function size:0x194 scope:global +TRKExceptionHandler = .text:0x800F0634; // type:function size:0x9C scope:global +TRKSwapAndGo = .text:0x800F06D0; // type:function size:0xC4 scope:global +TRKInterruptHandlerEnableInterrupts = .text:0x800F0794; // type:function size:0x54 scope:global +TRKTargetSetInputPendingPtr = .text:0x800F07E8; // type:function size:0x10 scope:global +TRKPPCAccessFPRegister = .text:0x800F07F8; // type:function size:0x21C +TRKTargetStop = .text:0x800F0A14; // type:function size:0x18 +TRKTargetSetStopped = .text:0x800F0A2C; // type:function size:0x10 scope:global +TRKTargetStopped = .text:0x800F0A3C; // type:function size:0x10 scope:global +TRKTargetFlushCache = .text:0x800F0A4C; // type:function size:0x3C +TRKTargetSupportRequest = .text:0x800F0A88; // type:function size:0x208 scope:global +TRKTargetGetPC = .text:0x800F0C90; // type:function size:0x10 +TRKTargetStepOutOfRange = .text:0x800F0CA0; // type:function size:0x7C +TRKTargetSingleStep = .text:0x800F0D1C; // type:function size:0x6C +TRKTargetAddExceptionInfo = .text:0x800F0D88; // type:function size:0xAC +TRKTargetAddStopInfo = .text:0x800F0E34; // type:function size:0x124 +TRKTargetInterrupt = .text:0x800F0F58; // type:function size:0x15C scope:global +TRKPostInterruptEvent = .text:0x800F10B4; // type:function size:0xC0 scope:global +TRKTargetCPUType = .text:0x800F1174; // type:function size:0x60 +TRKTargetSupportMask = .text:0x800F11D4; // type:function size:0xA4 +TRKTargetVersions = .text:0x800F1278; // type:function size:0x24 +TRKTargetAccessExtended2 = .text:0x800F129C; // type:function size:0x438 +TRKTargetAccessExtended1 = .text:0x800F16D4; // type:function size:0x170 +TRKTargetAccessFP = .text:0x800F1844; // type:function size:0x13C +TRKTargetAccessDefault = .text:0x800F1980; // type:function size:0xF4 +TRKTargetAccessMemory = .text:0x800F1A74; // type:function size:0x14C +TRKValidMemory32 = .text:0x800F1BC0; // type:function size:0x124 +TRKAccessFile = .text:0x800F1CF0; // type:function size:0x8 +TRKOpenFile = .text:0x800F1CF8; // type:function size:0x8 +TRKCloseFile = .text:0x800F1D00; // type:function size:0x8 +TRKPositionFile = .text:0x800F1D08; // type:function size:0x8 +InitMetroTRK = .text:0x800F1D10; // type:function size:0x94 scope:global +TRKInitializeTarget = .text:0x800F1DA4; // type:function size:0x4C scope:global +TRKTargetTranslate = .text:0x800F1DF0; // type:function size:0x40 +EnableMetroTRKInterrupts = .text:0x800F1E30; // type:function size:0x20 scope:global +TRKSaveExtended1Block = .text:0x800F1E50; // type:function size:0x1B8 scope:global +TRKRestoreExtended1Block = .text:0x800F2008; // type:function size:0x1B8 scope:global +TRKTargetCPUMinorType = .text:0x800F21C0; // type:function size:0x8 +TRK_main = .text:0x800F21C8; // type:function size:0x44 scope:global +TRKLoadContext = .text:0x800F220C; // type:function size:0x88 scope:global +TRKUARTInterruptHandler = .text:0x800F2294; // type:function size:0x4 scope:global +TRK_board_display = .text:0x800F2298; // type:function size:0x24 scope:global +UnreserveEXI2Port = .text:0x800F22BC; // type:function size:0x30 scope:global +ReserveEXI2Port = .text:0x800F22EC; // type:function size:0x30 scope:global +TRKReadUARTPoll = .text:0x800F231C; // type:function size:0xF0 +WriteUART1 = .text:0x800F240C; // type:function size:0x28 +WriteUARTFlush = .text:0x800F2434; // type:function size:0xE0 +EnableEXI2Interrupts = .text:0x800F2514; // type:function size:0x30 +TRKInitializeIntDrivenUART = .text:0x800F2544; // type:function size:0x3C scope:global +InitMetroTRKCommTable = .text:0x800F2580; // type:function size:0x100 scope:global +TRKEXICallBack = .text:0x800F2680; // type:function size:0x38 scope:global +TRKTargetContinue = .text:0x800F26B8; // type:function size:0x34 scope:global +GetUseSerialIO = .text:0x800F26EC; // type:function size:0x10 +SetUseSerialIO = .text:0x800F26FC; // type:function size:0xC +__TRK_write_console = .text:0x800F2708; // type:function size:0xBC +__read_console = .text:0x800F27C4; // type:function size:0xBC +seqGetPrivateId = .text:0x800F2880; // type:function size:0x68 +seqStartPlay = .text:0x800F28E8; // type:function size:0xAC4 +StartPause = .text:0x800F33AC; // type:function size:0x64 +seqPause = .text:0x800F3410; // type:function size:0x27C +seqStop = .text:0x800F368C; // type:function size:0x2B0 +seqKillInstancesByGroupID = .text:0x800F393C; // type:function size:0x90 +seqSpeed = .text:0x800F39CC; // type:function size:0xE4 +seqContinue = .text:0x800F3AB0; // type:function size:0x108 +seqMute = .text:0x800F3BB8; // type:function size:0xBC +seqVolume = .text:0x800F3C74; // type:function size:0x1CC +seqCrossFade = .text:0x800F3E40; // type:function size:0xB58 +GenerateNextTrackEvent = .text:0x800F4998; // type:function size:0x218 scope:local +HandleEvent = .text:0x800F4BB0; // type:function size:0xA94 scope:local +InitTrackEvents = .text:0x800F5644; // type:function size:0x174 scope:local +HandleTrackEvents = .text:0x800F57B8; // type:function size:0x49C scope:local +seqHandle = .text:0x800F5C54; // type:function size:0x9F4 +seqInit = .text:0x800F6648; // type:function size:0x1A8 +synthSetBpm = .text:0x800F67F0; // type:function size:0x44 +synthGetTicksPerSecond = .text:0x800F6834; // type:function size:0x34 +synthInitPortamento = .text:0x800F6868; // type:function size:0x78 +do_voice_portamento = .text:0x800F68E0; // type:function size:0x2A0 scope:local +StartLayer = .text:0x800F6B80; // type:function size:0x3C0 scope:local +StartKeymap = .text:0x800F6F40; // type:function size:0x25C scope:local +synthStartSound = .text:0x800F719C; // type:function size:0x45C +LowPrecisionHandler = .text:0x800F75F8; // type:function size:0x744 scope:local +ZeroOffsetHandler = .text:0x800F7D3C; // type:function size:0x6FC scope:local +synthAddJob = .text:0x800F8438; // type:function size:0x150 scope:local +synthStartSynthJobHandling = .text:0x800F8588; // type:function size:0x64 +synthForceLowPrecisionUpdate = .text:0x800F85EC; // type:function size:0x44 +synthKeyStateUpdate = .text:0x800F8630; // type:function size:0x28 +synthHandle = .text:0x800F8658; // type:function size:0x510 +synthFXGetMaxVoices = .text:0x800F8B68; // type:function size:0x34 +synthFXStart = .text:0x800F8B9C; // type:function size:0xC8 +synthFXSetCtrl = .text:0x800F8C64; // type:function size:0xE4 +synthFXSetCtrl14 = .text:0x800F8D48; // type:function size:0xE4 +synthFXCloneMidiSetup = .text:0x800F8E2C; // type:function size:0x84 +synthSendKeyOff = .text:0x800F8EB0; // type:function size:0x88 +synthVolume = .text:0x800F8F38; // type:function size:0x530 +synthIsFadeOutActive = .text:0x800F9468; // type:function size:0x54 +synthSetMusicVolumeType = .text:0x800F94BC; // type:function size:0x28 +synthHWMessageHandler = .text:0x800F94E4; // type:function size:0xD0 +synthInit = .text:0x800F95B4; // type:function size:0x574 +synthExit = .text:0x800F9B28; // type:function size:0x24 +sndSeqGetValid = .text:0x800F9B4C; // type:function size:0x30 +sndSeqPause = .text:0x800F9B7C; // type:function size:0x38 +sndSeqStop = .text:0x800F9BB4; // type:function size:0x38 +sndSeqSpeed = .text:0x800F9BEC; // type:function size:0x48 +sndSeqContinue = .text:0x800F9C34; // type:function size:0x38 +sndSeqMute = .text:0x800F9C6C; // type:function size:0x58 +sndSeqVolume = .text:0x800F9CC4; // type:function size:0x68 +sndSeqGetMidiCtrl = .text:0x800F9D2C; // type:function size:0x84 +seqGetMIDIPriority = .text:0x800F9DB0; // type:function size:0x1C +sndFXCtrl = .text:0x800F9DCC; // type:function size:0x60 +sndFXCtrl14 = .text:0x800F9E2C; // type:function size:0x60 +sndFXKeyOff = .text:0x800F9E8C; // type:function size:0x40 +sndFXStartParaInfo = .text:0x800F9ECC; // type:function size:0xE0 +sndFXCheck = .text:0x800F9FAC; // type:function size:0x40 +sndSendMessage = .text:0x800F9FEC; // type:function size:0x50 +sndVolume = .text:0x800FA03C; // type:function size:0x60 +sndMasterVolume = .text:0x800FA09C; // type:function size:0x94 +sndOutputMode = .text:0x800FA130; // type:function size:0xEC +sndSetAuxProcessingCallbacks = .text:0x800FA21C; // type:function size:0x158 +synthActivateStudio = .text:0x800FA374; // type:function size:0xA8 +synthDeactivateStudio = .text:0x800FA41C; // type:function size:0xF0 +synthAddStudioInput = .text:0x800FA50C; // type:function size:0x20 +synthRemoveStudioInput = .text:0x800FA52C; // type:function size:0x20 +streamInit = .text:0x800FA54C; // type:function size:0xBC +SetHWMix = .text:0x800FA608; // type:function size:0x8C scope:local +streamHandle = .text:0x800FA694; // type:function size:0x8AC +streamCorrectLoops = .text:0x800FAF40; // type:function size:0x4 +streamKill = .text:0x800FAF44; // type:function size:0x84 +GetPrivateIndex = .text:0x800FAFC8; // type:function size:0x160 +sndStreamARAMUpdate = .text:0x800FB128; // type:function size:0x2C4 +CheckOutputMode = .text:0x800FB3EC; // type:function size:0x34 +SetupVolumeAndPan = .text:0x800FB420; // type:function size:0x44 +streamOutputModeChanged = .text:0x800FB464; // type:function size:0x130 +sndStreamAllocEx = .text:0x800FB594; // type:function size:0x458 +sndStreamAllocLength = .text:0x800FB9EC; // type:function size:0x44 +sndStreamADPCMParameter = .text:0x800FBA30; // type:function size:0x6E8 +sndStreamMixParameterEx = .text:0x800FC118; // type:function size:0x560 +sndStreamFrq = .text:0x800FC678; // type:function size:0x654 +sndStreamFree = .text:0x800FCCCC; // type:function size:0x6B8 +sndStreamActivate = .text:0x800FD384; // type:function size:0x634 +sndStreamDeactivate = .text:0x800FD9B8; // type:function size:0x700 +dataInsertKeymap = .text:0x800FE0B8; // type:function size:0x1F0 +dataRemoveKeymap = .text:0x800FE2A8; // type:function size:0x17C +dataInsertLayer = .text:0x800FE424; // type:function size:0x248 +dataRemoveLayer = .text:0x800FE66C; // type:function size:0x1C4 +dataInsertCurve = .text:0x800FE830; // type:function size:0x204 +dataRemoveCurve = .text:0x800FEA34; // type:function size:0x17C +dataInsertSDir = .text:0x800FEBB0; // type:function size:0x188 +dataRemoveSDir = .text:0x800FED38; // type:function size:0x2C8 +dataAddSampleReference = .text:0x800FF000; // type:function size:0xD8 +dataRemoveSampleReference = .text:0x800FF0D8; // type:function size:0x98 +dataInsertFX = .text:0x800FF170; // type:function size:0x11C +dataRemoveFX = .text:0x800FF28C; // type:function size:0x15C +dataInsertMacro = .text:0x800FF3E8; // type:function size:0x304 +dataRemoveMacro = .text:0x800FF6EC; // type:function size:0x284 +maccmp = .text:0x800FF970; // type:function size:0x10 scope:local +dataGetMacro = .text:0x800FF980; // type:function size:0x8C +smpcmp = .text:0x800FFA0C; // type:function size:0x10 scope:local +dataGetSample = .text:0x800FFA1C; // type:function size:0x128 +curvecmp = .text:0x800FFB44; // type:function size:0x10 scope:local +dataGetCurve = .text:0x800FFB54; // type:function size:0x5C +dataGetKeymap = .text:0x800FFBB0; // type:function size:0x5C +layercmp = .text:0x800FFC0C; // type:function size:0x10 scope:local +dataGetLayer = .text:0x800FFC1C; // type:function size:0x7C +fxcmp = .text:0x800FFC98; // type:function size:0x10 scope:local +dataGetFX = .text:0x800FFCA8; // type:function size:0x9C +dataInit = .text:0x800FFD44; // type:function size:0xE4 +dataExit = .text:0x800FFE28; // type:function size:0x20 +mcmdWait = .text:0x800FFE48; // type:function size:0x2F0 scope:local +mcmdGosub = .text:0x80100138; // type:function size:0xD0 scope:local +mcmdLoop = .text:0x80100208; // type:function size:0x154 scope:local +mcmdPlayMacro = .text:0x8010035C; // type:function size:0x18C scope:local +mcmdAddKey = .text:0x801004E8; // type:function size:0xD8 scope:local +mcmdStartSample = .text:0x801005C0; // type:function size:0x1FC scope:local +mcmdVibrato = .text:0x801007BC; // type:function size:0x17C scope:local +DoSetPitch = .text:0x80100938; // type:function size:0x1A0 scope:local +mcmdSetADSR = .text:0x80100AD8; // type:function size:0x258 scope:local +mcmdSetADSRFromCtrl = .text:0x80100D30; // type:function size:0x12C scope:local +mcmdSetPitchADSR = .text:0x80100E5C; // type:function size:0x27C scope:local +mcmdSetPanning = .text:0x801010D8; // type:function size:0x9C scope:local +mcmdSetSurroundPanning = .text:0x80101174; // type:function size:0x9C scope:local +mcmdScaleVolume = .text:0x80101210; // type:function size:0x134 scope:local +mcmdEnvelope = .text:0x80101344; // type:function size:0x130 scope:local +mcmdFadeIn = .text:0x80101474; // type:function size:0x13C scope:local +mcmdRandomKey = .text:0x801015B0; // type:function size:0x19C scope:local +mcmdVolumeSelect = .text:0x8010174C; // type:function size:0x104 scope:local +mcmdPanningSelect = .text:0x80101850; // type:function size:0x104 scope:local +mcmdPitchWheelSelect = .text:0x80101954; // type:function size:0x104 scope:local +mcmdModWheelSelect = .text:0x80101A58; // type:function size:0x104 scope:local +mcmdPedalSelect = .text:0x80101B5C; // type:function size:0x104 scope:local +mcmdPortamentoSelect = .text:0x80101C60; // type:function size:0x104 scope:local +mcmdReverbSelect = .text:0x80101D64; // type:function size:0x104 scope:local +mcmdPreAuxASelect = .text:0x80101E68; // type:function size:0x104 scope:local +mcmdPreAuxBSelect = .text:0x80101F6C; // type:function size:0x104 scope:local +mcmdPostAuxBSelect = .text:0x80102070; // type:function size:0x104 scope:local +mcmdSurroundPanningSelect = .text:0x80102174; // type:function size:0x104 scope:local +mcmdDopplerSelect = .text:0x80102278; // type:function size:0x104 scope:local +mcmdTremoloSelect = .text:0x8010237C; // type:function size:0x104 scope:local +mcmdAuxAFXSelect = .text:0x80102480; // type:function size:0x17C scope:local +mcmdAuxBFXSelect = .text:0x801025FC; // type:function size:0x17C scope:local +mcmdPortamento = .text:0x80102778; // type:function size:0x164 scope:local +varGet = .text:0x801028DC; // type:function size:0x68 +mcmdVarCalculation = .text:0x80102944; // type:function size:0x220 scope:local +mcmdIfVarCompare = .text:0x80102B64; // type:function size:0x14C scope:local +macPostMessage = .text:0x80102CB0; // type:function size:0xBC +mcmdSendMessage = .text:0x80102D6C; // type:function size:0x244 scope:local +mcmdGetVID = .text:0x80102FB0; // type:function size:0x80 scope:local +mcmdSetKeyGroup = .text:0x80103030; // type:function size:0xDC scope:local +macHandleActive = .text:0x8010310C; // type:function size:0xF58 scope:local +macHandle = .text:0x80104064; // type:function size:0x150 +macSampleEndNotify = .text:0x801041B4; // type:function size:0xAC +macSetExternalKeyoff = .text:0x80104260; // type:function size:0xF0 +macSetPedalState = .text:0x80104350; // type:function size:0x108 +TimeQueueAdd = .text:0x80104458; // type:function size:0xA4 scope:local +macMakeActive = .text:0x801044FC; // type:function size:0x108 +macMakeInactive = .text:0x80104604; // type:function size:0xFC +macStart = .text:0x80104700; // type:function size:0x438 +macInit = .text:0x80104B38; // type:function size:0x68 +vidInit = .text:0x80104BA0; // type:function size:0xE0 +vidRemoveVoiceReferences = .text:0x80104C80; // type:function size:0x350 +vidMakeRoot = .text:0x80104FD0; // type:function size:0x14 +vidMakeNew = .text:0x80104FE4; // type:function size:0x104 +vidGetInternalId = .text:0x801050E8; // type:function size:0x50 +voiceSetPriority = .text:0x80105138; // type:function size:0x24C +voiceAllocate = .text:0x80105384; // type:function size:0x460 +voiceFree = .text:0x801057E4; // type:function size:0x1C4 +synthInitAllocationAids = .text:0x801059A8; // type:function size:0x2A0 +voiceBlock = .text:0x80105C48; // type:function size:0xFC +voiceUnblock = .text:0x80105D44; // type:function size:0x218 +voiceKill = .text:0x80105F5C; // type:function size:0x234 +voiceKillSound = .text:0x80106190; // type:function size:0xC4 +synthKillVoicesByMacroReferences = .text:0x80106254; // type:function size:0x15C +voiceIsLastStarted = .text:0x801063B0; // type:function size:0x74 +voiceSetLastStarted = .text:0x80106424; // type:function size:0x54 +voiceResetLastStarted = .text:0x80106478; // type:function size:0x74 +voiceInitLastStarted = .text:0x801064EC; // type:function size:0x144 +sndPitchUpOne = .text:0x80106630; // type:function size:0x3C +sndGetPitch = .text:0x8010666C; // type:function size:0xE4 +adsrConvertTimeCents = .text:0x80106750; // type:function size:0x58 +salChangeADSRState = .text:0x801067A8; // type:function size:0x26C +adsrSetup = .text:0x80106A14; // type:function size:0x28 +adsrStartRelease = .text:0x80106A3C; // type:function size:0x150 +adsrRelease = .text:0x80106B8C; // type:function size:0x168 +adsrHandle = .text:0x80106CF4; // type:function size:0x198 +adsrHandleLowPrecision = .text:0x80106E8C; // type:function size:0x84 +vsInit = .text:0x80106F10; // type:function size:0xBC +vsSampleStartNotify = .text:0x80106FCC; // type:function size:0x248 +vsSampleEndNotify = .text:0x80107214; // type:function size:0xA8 +vsUpdateBuffer = .text:0x801072BC; // type:function size:0x1F8 +vsSampleUpdates = .text:0x801074B4; // type:function size:0x1E4 +dataInitStack = .text:0x80107698; // type:function size:0xC +InsertData = .text:0x801076A4; // type:function size:0x27C scope:local +sndPushGroup = .text:0x80107920; // type:function size:0x32C +sndPopGroup = .text:0x80107C4C; // type:function size:0x33C +seqPlaySong = .text:0x80107F88; // type:function size:0x14C +sndSeqPlayEx = .text:0x801080D4; // type:function size:0x11C +salInitDspCtrl = .text:0x801081F0; // type:function size:0x3B4 +salInitHRTFBuffer = .text:0x801085A4; // type:function size:0x38 +salExitDspCtrl = .text:0x801085DC; // type:function size:0xE0 +salActivateStudio = .text:0x801086BC; // type:function size:0x150 +salDeactivateStudio = .text:0x8010880C; // type:function size:0x20 +salCheckVolErrorAndResetDelta = .text:0x8010882C; // type:function size:0xF4 +sal_setup_dspvol = .text:0x80108920; // type:function size:0x48 scope:local +sal_update_hostplayinfo = .text:0x80108968; // type:function size:0x74 scope:local +DoDepopFade = .text:0x801089DC; // type:function size:0xAC scope:local +HandleDepopVoice = .text:0x80108A88; // type:function size:0x2DC scope:local +SortVoices = .text:0x80108D64; // type:function size:0x258 scope:local +salBuildCommandList = .text:0x80108FBC; // type:function size:0x21B8 +salSynthSendMessage = .text:0x8010B174; // type:function size:0x44 +salActivateVoice = .text:0x8010B1B8; // type:function size:0xA0 +salDeactivateVoice = .text:0x8010B258; // type:function size:0x60 +salReconnectVoice = .text:0x8010B2B8; // type:function size:0xC8 +salAddStudioInput = .text:0x8010B380; // type:function size:0xA8 +salRemoveStudioInput = .text:0x8010B428; // type:function size:0x84 +salHandleAuxProcessing = .text:0x8010B4AC; // type:function size:0x158 +salCalcVolume = .text:0x8010B604; // type:function size:0x6F0 +CheckRoomStatus = .text:0x8010BCF4; // type:function size:0x4B4 scope:local +CalcEmitter = .text:0x8010C1A8; // type:function size:0x51C scope:local +sndUpdateEmitter = .text:0x8010C6C4; // type:function size:0x130 +sndCheckEmitter = .text:0x8010C7F4; // type:function size:0x20 +AddEmitter = .text:0x8010C814; // type:function size:0x3F8 scope:local +sndAddEmitterParaEx = .text:0x8010CC0C; // type:function size:0x50 +sndRemoveEmitter = .text:0x8010CC5C; // type:function size:0xA8 +sndEmitterVoiceID = .text:0x8010CD04; // type:function size:0x5C +s3dKillEmitterByFXID = .text:0x8010CD60; // type:function size:0xFC +sndUpdateListener = .text:0x8010CE5C; // type:function size:0x204 +sndAddListenerEx = .text:0x8010D060; // type:function size:0x230 +sndRemoveListener = .text:0x8010D290; // type:function size:0xD0 +AddStartingEmitter = .text:0x8010D360; // type:function size:0x14C scope:local +StartContinousEmitters = .text:0x8010D4AC; // type:function size:0x3B0 scope:local +s3dHandle = .text:0x8010D85C; // type:function size:0x82C +s3dInit = .text:0x8010E088; // type:function size:0x38 +s3dExit = .text:0x8010E0C0; // type:function size:0x4 +sndInit = .text:0x8010E0C4; // type:function size:0x118 +sndQuit = .text:0x8010E1DC; // type:function size:0x34 +sndIsInstalled = .text:0x8010E210; // type:function size:0x8 +salApplyMatrix = .text:0x8010E218; // type:function size:0xAC +salNormalizeVector = .text:0x8010E2C4; // type:function size:0xB4 +salCrossProduct = .text:0x8010E378; // type:function size:0x64 +salInvertMatrix = .text:0x8010E3DC; // type:function size:0x1FC +inpSetGlobalMIDIDirtyFlag = .text:0x8010E5D8; // type:function size:0x24 +inpSetMidiCtrl = .text:0x8010E5FC; // type:function size:0x608 +inpSetMidiCtrl14 = .text:0x8010EC04; // type:function size:0x124 +inpResetMidiCtrl = .text:0x8010ED28; // type:function size:0xF0 +inpGetMidiCtrl = .text:0x8010EE18; // type:function size:0x2C4 +inpGetChannelDefaults = .text:0x8010F0DC; // type:function size:0x34 +inpResetChannelDefaults = .text:0x8010F110; // type:function size:0x3C +inpAddCtrl = .text:0x8010F14C; // type:function size:0x98 +inpFXCopyCtrl = .text:0x8010F1E4; // type:function size:0x114 +inpSetMidiLastNote = .text:0x8010F2F8; // type:function size:0x3C +inpGetMidiLastNote = .text:0x8010F334; // type:function size:0x3C +_GetInputValue = .text:0x8010F370; // type:function size:0x4A0 scope:local +inpGetVolume = .text:0x8010F810; // type:function size:0x48 +inpGetPanning = .text:0x8010F858; // type:function size:0x48 +inpGetSurPanning = .text:0x8010F8A0; // type:function size:0x48 +inpGetPitchBend = .text:0x8010F8E8; // type:function size:0x48 +inpGetDoppler = .text:0x8010F930; // type:function size:0x48 +inpGetModulation = .text:0x8010F978; // type:function size:0x48 +inpGetPedal = .text:0x8010F9C0; // type:function size:0x48 +inpGetPreAuxA = .text:0x8010FA08; // type:function size:0x48 +inpGetReverb = .text:0x8010FA50; // type:function size:0x48 +inpGetPreAuxB = .text:0x8010FA98; // type:function size:0x48 +inpGetPostAuxB = .text:0x8010FAE0; // type:function size:0x48 +inpGetTremolo = .text:0x8010FB28; // type:function size:0x48 +inpGetAuxA = .text:0x8010FB70; // type:function size:0xB4 +inpGetAuxB = .text:0x8010FC24; // type:function size:0xB4 +inpInit = .text:0x8010FCD8; // type:function size:0x284 +inpTranslateExCtrl = .text:0x8010FF5C; // type:function size:0x70 +inpGetExCtrl = .text:0x8010FFCC; // type:function size:0xFC +inpSetExCtrl = .text:0x801100C8; // type:function size:0x1E4 +sndRand = .text:0x801102AC; // type:function size:0x1C +sndSin = .text:0x801102C8; // type:function size:0x8C +sndBSearch = .text:0x80110354; // type:function size:0xA4 +sndConvertMs = .text:0x801103F8; // type:function size:0x10 +sndConvertTicks = .text:0x80110408; // type:function size:0x48 +sndConvert2Ms = .text:0x80110450; // type:function size:0x8 +snd_handle_irq = .text:0x80110458; // type:function size:0x154 scope:local +hwInit = .text:0x801105AC; // type:function size:0xB8 +hwExit = .text:0x80110664; // type:function size:0x34 +hwSetTimeOffset = .text:0x80110698; // type:function size:0x8 +hwGetTimeOffset = .text:0x801106A0; // type:function size:0x8 +hwIsActive = .text:0x801106A8; // type:function size:0x20 +hwSetMesgCallback = .text:0x801106C8; // type:function size:0x8 +hwSetPriority = .text:0x801106D0; // type:function size:0x14 +hwInitSamplePlayback = .text:0x801106E4; // type:function size:0x1B4 +hwBreak = .text:0x80110898; // type:function size:0x50 +hwSetADSR = .text:0x801108E8; // type:function size:0x1AC +hwSetVirtualSampleLoopBuffer = .text:0x80110A94; // type:function size:0x20 +hwGetVirtualSampleState = .text:0x80110AB4; // type:function size:0x14 +hwGetSampleType = .text:0x80110AC8; // type:function size:0x14 +hwGetSampleID = .text:0x80110ADC; // type:function size:0x14 +hwSetStreamLoopPS = .text:0x80110AF0; // type:function size:0x14 +hwStart = .text:0x80110B04; // type:function size:0x3C +hwKeyOff = .text:0x80110B40; // type:function size:0x28 +hwSetPitch = .text:0x80110B68; // type:function size:0x78 +hwSetSRCType = .text:0x80110BE0; // type:function size:0x2C +hwSetPolyPhaseFilter = .text:0x80110C0C; // type:function size:0x2C +hwSetITDMode = .text:0x80110C38; // type:function size:0x5C +hwSetVolume = .text:0x80110C94; // type:function size:0x2C0 +hwOff = .text:0x80110F54; // type:function size:0x2C +hwSetAUXProcessingCallbacks = .text:0x80110F80; // type:function size:0x28 +hwActivateStudio = .text:0x80110FA8; // type:function size:0x20 +hwDeactivateStudio = .text:0x80110FC8; // type:function size:0x20 +hwAddInput = .text:0x80110FE8; // type:function size:0x34 +hwRemoveInput = .text:0x8011101C; // type:function size:0x34 +hwChangeStudio = .text:0x80111050; // type:function size:0x2C +hwGetPos = .text:0x8011107C; // type:function size:0xA4 +hwFlushStream = .text:0x80111120; // type:function size:0x90 +hwInitStream = .text:0x801111B0; // type:function size:0x20 +hwExitStream = .text:0x801111D0; // type:function size:0x20 +hwGetStreamPlayBuffer = .text:0x801111F0; // type:function size:0x24 +hwTransAddr = .text:0x80111214; // type:function size:0x4 +hwFrq2Pitch = .text:0x80111218; // type:function size:0x5C +hwInitSampleMem = .text:0x80111274; // type:function size:0x24 +hwExitSampleMem = .text:0x80111298; // type:function size:0x20 +hwSaveSample = .text:0x801112B8; // type:function size:0x94 +hwRemoveSample = .text:0x8011134C; // type:function size:0x84 +hwSyncSampleMem = .text:0x801113D0; // type:function size:0x20 +hwFrameDone = .text:0x801113F0; // type:function size:0x4 +sndSetHooks = .text:0x801113F4; // type:function size:0x14 +hwDisableHRTF = .text:0x80111408; // type:function size:0xC +hwGetVirtualSampleID = .text:0x80111414; // type:function size:0x28 +hwVoiceInStartup = .text:0x8011143C; // type:function size:0x20 +aramQueueCallback = .text:0x8011145C; // type:function size:0xA0 +aramUploadData = .text:0x801114FC; // type:function size:0x1DC +aramSyncTransferQueue = .text:0x801116D8; // type:function size:0x18 +aramInit = .text:0x801116F0; // type:function size:0x2EC +aramExit = .text:0x801119DC; // type:function size:0x4 +aramGetZeroBuffer = .text:0x801119E0; // type:function size:0x20 +aramStoreData = .text:0x80111A00; // type:function size:0x3BC +aramRemoveData = .text:0x80111DBC; // type:function size:0x18 +InitStreamBuffers = .text:0x80111DD4; // type:function size:0xC4 scope:local +aramAllocateStreamBuffer = .text:0x80111E98; // type:function size:0x108 +aramGetStreamBufferAddress = .text:0x80111FA0; // type:function size:0x38 +aramFreeStreamBuffer = .text:0x80111FD8; // type:function size:0xF8 +salCallback = .text:0x801120D0; // type:function size:0xA8 scope:local +dspInitCallback = .text:0x80112178; // type:function size:0x10 scope:local +dspResumeCallback = .text:0x80112188; // type:function size:0x64 scope:local +salInitAi = .text:0x801121EC; // type:function size:0xC8 +salStartAi = .text:0x801122B4; // type:function size:0x20 +salExitAi = .text:0x801122D4; // type:function size:0x34 +salAiGetDest = .text:0x80112308; // type:function size:0x30 +salInitDsp = .text:0x80112338; // type:function size:0xBC +salExitDsp = .text:0x801123F4; // type:function size:0x34 +salCtrlDsp = .text:0x80112428; // type:function size:0x74 +salGetStartDelay = .text:0x8011249C; // type:function size:0x4C +hwInitIrq = .text:0x801124E8; // type:function size:0x2C +hwExitIrq = .text:0x80112514; // type:function size:0x4 +hwEnableIrq = .text:0x80112518; // type:function size:0x38 +hwDisableIrq = .text:0x80112550; // type:function size:0x38 +hwIRQEnterCritical = .text:0x80112588; // type:function size:0x20 +hwIRQLeaveCritical = .text:0x801125A8; // type:function size:0x20 +salMalloc = .text:0x801125C8; // type:function size:0x28 +salFree = .text:0x801125F0; // type:function size:0x2C +sndAuxCallbackReverbSTD = .text:0x8011261C; // type:function size:0x5C +sndAuxCallbackPrepareReverbSTD = .text:0x80112678; // type:function size:0x3C +sndAuxCallbackShutdownReverbSTD = .text:0x801126B4; // type:function size:0x24 +ReverbSTDCreate = .text:0x801126D8; // type:function size:0x428 +HandleReverb = .text:0x80112B00; // type:function size:0x3B4 scope:local +ReverbSTDCallback = .text:0x80112EB4; // type:function size:0x24 +ReverbSTDFree = .text:0x80112ED8; // type:function size:0xBC +sndAuxCallbackReverbHI = .text:0x80112F94; // type:function size:0x5C +sndAuxCallbackPrepareReverbHI = .text:0x80112FF0; // type:function size:0x40 +sndAuxCallbackShutdownReverbHI = .text:0x80113030; // type:function size:0x24 +ReverbHICreate = .text:0x80113054; // type:function size:0x50C +DoCrossTalk = .text:0x80113560; // type:function size:0x190 scope:local +HandleReverb = .text:0x801136F0; // type:function size:0x50C +ReverbHICallback = .text:0x80113BFC; // type:function size:0xE0 +ReverbHIFree = .text:0x80113CDC; // type:function size:0xBC +sndAuxCallbackDelay = .text:0x80113D98; // type:function size:0x168 +sndAuxCallbackUpdateSettingsDelay = .text:0x80113F00; // type:function size:0x1D0 +sndAuxCallbackPrepareDelay = .text:0x801140D0; // type:function size:0x28 +sndAuxCallbackShutdownDelay = .text:0x801140F8; // type:function size:0x4C +do_src1 = .text:0x80114144; // type:function size:0x198 scope:local +do_src2 = .text:0x801142DC; // type:function size:0x1EC scope:local +sndAuxCallbackChorus = .text:0x801144C8; // type:function size:0x2BC +sndAuxCallbackPrepareChorus = .text:0x80114784; // type:function size:0x200 +sndAuxCallbackShutdownChorus = .text:0x80114984; // type:function size:0x28 +DBClose = .text:0x801149AC; // type:function size:0x4 scope:global align:4 +DBOpen = .text:0x801149B0; // type:function size:0x4 scope:global align:4 +DBWrite = .text:0x801149B4; // type:function size:0x260 scope:global align:4 +DBRead = .text:0x80114C14; // type:function size:0x8C scope:global align:4 +DBQueryData = .text:0x80114CA0; // type:function size:0x9C scope:global align:4 +DBInitInterrupts = .text:0x80114D3C; // type:function size:0x54 scope:global align:4 +DBInitComm = .text:0x80114D90; // type:function size:0x78 scope:global align:4 +DBGHandler = .text:0x80114E08; // type:function size:0x40 scope:global align:4 +MWCallback = .text:0x80114E48; // type:function size:0x3C scope:global align:4 +DBGReadStatus = .text:0x80114E84; // type:function size:0xAC scope:global align:4 +DBGWrite = .text:0x80114F30; // type:function size:0xDC scope:global align:4 +DBGRead = .text:0x8011500C; // type:function size:0xDC scope:global align:4 +DBGReadMailbox = .text:0x801150E8; // type:function size:0xAC scope:global align:4 +DBGEXIImm = .text:0x80115194; // type:function size:0x298 scope:global align:4 +EXI2_Init = .text:0x8011542C; // type:function size:0x4 scope:global +EXI2_EnableInterrupts = .text:0x80115430; // type:function size:0x4 scope:global +EXI2_Poll = .text:0x80115434; // type:function size:0x8 scope:global +EXI2_ReadN = .text:0x8011543C; // type:function size:0x8 scope:global +EXI2_WriteN = .text:0x80115444; // type:function size:0x8 scope:global +EXI2_Reserve = .text:0x8011544C; // type:function size:0x4 scope:global +EXI2_Unreserve = .text:0x80115450; // type:function size:0x4 scope:global +AMC_IsStub = .text:0x80115454; // type:function size:0x8 scope:global +Hu_IsStub = .text:0x8011545C; // type:function size:0x8 scope:weak +HuSetVecF = .text:0x80115464; // type:function size:0x10 +HuSubVecF = .text:0x80115474; // type:function size:0x34 +msmSysServer = .text:0x801154A8; // type:function size:0x6C scope:local +msmSysSetAuxParam = .text:0x80115514; // type:function size:0x27C scope:local +msmSysLoadBaseGroup = .text:0x80115790; // type:function size:0x15C scope:local +msmSysSearchGroupStack = .text:0x801158EC; // type:function size:0xB4 scope:local +msmSysGroupInit = .text:0x801159A0; // type:function size:0x31C scope:local +msmSysIrqDisable = .text:0x80115CBC; // type:function size:0x48 +msmSysIrqEnable = .text:0x80115D04; // type:function size:0x48 +msmSysCheckBaseGroup = .text:0x80115D4C; // type:function size:0x68 +msmSysGetGroupDataPtr = .text:0x80115DB4; // type:function size:0xD8 +msmSysCheckLoadGroupID = .text:0x80115E8C; // type:function size:0xFC +msmSysRegularProc = .text:0x80115F88; // type:function size:0x4 +msmSysGetOutputMode = .text:0x80115F8C; // type:function size:0x14 +msmSysSetOutputMode = .text:0x80115FA0; // type:function size:0xD8 +msmSysSetAux = .text:0x80116078; // type:function size:0x114 +msmSysGetSampSize = .text:0x8011618C; // type:function size:0x28 +msmSysDelGroupAll = .text:0x801161B4; // type:function size:0x140 +msmSysDelGroupBase = .text:0x801162F4; // type:function size:0x28C +msmSysLoadGroupBase = .text:0x80116580; // type:function size:0x298 +msmSysLoadGroupSet = .text:0x80116818; // type:function size:0x3F0 +msmSysLoadGroupSub = .text:0x80116C08; // type:function size:0x3B4 +msmSysLoadGroup = .text:0x80116FBC; // type:function size:0x278 +msmSysCheckInit = .text:0x80117234; // type:function size:0x20 +msmSysInit = .text:0x80117254; // type:function size:0x474 +msmMemFree = .text:0x801176C8; // type:function size:0xC8 +msmMemAlloc = .text:0x80117790; // type:function size:0x104 +msmMemInit = .text:0x80117894; // type:function size:0x64 +msmFioClose = .text:0x801178F8; // type:function size:0x30 +msmFioRead = .text:0x80117928; // type:function size:0x34 +msmFioOpen = .text:0x8011795C; // type:function size:0x2C +msmFioInit = .text:0x80117988; // type:function size:0x60 +msmMusPauseSub = .text:0x801179E8; // type:function size:0x154 scope:local +msmMusPauseFade = .text:0x80117B3C; // type:function size:0x174 scope:local +msmMusFade = .text:0x80117CB0; // type:function size:0x1BC scope:local +msmMusFdoutEnd = .text:0x80117E6C; // type:function size:0x4 +msmMusPeriodicProc = .text:0x80117E70; // type:function size:0x1CC +msmMusGetMidiCtrl = .text:0x8011803C; // type:function size:0x9C +msmMusGetNumPlay = .text:0x801180D8; // type:function size:0x38 +msmMusGetStatus = .text:0x80118110; // type:function size:0x3C +msmMusSetMasterVolume = .text:0x8011814C; // type:function size:0x30 +msmMusSetParam = .text:0x8011817C; // type:function size:0x16C +msmMusPauseAll = .text:0x801182E8; // type:function size:0x88 +msmMusPause = .text:0x80118370; // type:function size:0x74 +msmMusStopAll = .text:0x801183E4; // type:function size:0x134 +msmMusStop = .text:0x80118518; // type:function size:0xCC +msmMusPlay = .text:0x801185E4; // type:function size:0x328 +msmMusInit = .text:0x8011890C; // type:function size:0x174 +msmSeFade = .text:0x80118A80; // type:function size:0x250 scope:local +msmSePauseSub = .text:0x80118CD0; // type:function size:0x184 scope:local +msmSePeriodicProc = .text:0x80118E54; // type:function size:0x270 +msmSeGetIndexPtr = .text:0x801190C4; // type:function size:0x30 +msmSeDelListener = .text:0x801190F4; // type:function size:0x4C +msmSeUpdataListener = .text:0x80119140; // type:function size:0xD8 +msmSeSetListener = .text:0x80119218; // type:function size:0x13C +msmSeGetEntryID = .text:0x80119354; // type:function size:0x74 +msmSeGetNumPlay = .text:0x801193C8; // type:function size:0x38 +msmSeGetStatus = .text:0x80119400; // type:function size:0x60 +msmSeSetMasterVolume = .text:0x80119460; // type:function size:0x30 +msmSeSetParam = .text:0x80119490; // type:function size:0x320 +msmSePauseAll = .text:0x801197B0; // type:function size:0x80 +msmSeStopAll = .text:0x80119830; // type:function size:0x168 +msmSeStop = .text:0x80119998; // type:function size:0xFC +msmSePlay = .text:0x80119A94; // type:function size:0x480 +msmSeInit = .text:0x80119F14; // type:function size:0x130 +msmStreamGetStatus = .text:0x8011A044; // type:function size:0xC8 +msmStreamSetMasterVolume = .text:0x8011A10C; // type:function size:0x118 +msmStreamStopAll = .text:0x8011A224; // type:function size:0xE0 +msmStreamStop = .text:0x8011A304; // type:function size:0x204 +msmStreamPlay = .text:0x8011A508; // type:function size:0x88 +msmStreamPeriodicProc = .text:0x8011A590; // type:function size:0x8C +msmStreamSetOutputMode = .text:0x8011A61C; // type:function size:0x114 +msmStreamAmemFree = .text:0x8011A730; // type:function size:0x68 +msmStreamAmemAlloc = .text:0x8011A798; // type:function size:0x10C +msmStreamInit = .text:0x8011A8A4; // type:function size:0x2A8 +msmStreamPauseOff = .text:0x8011AB4C; // type:function size:0x2B8 +msmStreamPauseOn = .text:0x8011AE04; // type:function size:0x1AC +msmStreamPauseFade = .text:0x8011AFB0; // type:function size:0x2E8 +msmStreamFade = .text:0x8011B298; // type:function size:0x33C +msmStreamStopSub = .text:0x8011B5D4; // type:function size:0x13C scope:local +msmStreamSetParamSub = .text:0x8011B710; // type:function size:0xE0 scope:local +msmStreamPackStartStereo = .text:0x8011B7F0; // type:function size:0x448 +msmStreamPackStartMono = .text:0x8011BC38; // type:function size:0x2DC +msmStreamSlotOff = .text:0x8011BF14; // type:function size:0xD0 +msmStreamData = .text:0x8011BFE4; // type:function size:0x320 scope:local +msmStreamDvdCallback = .text:0x8011C304; // type:function size:0x4A8 scope:local +msmStreamDvdCallback2 = .text:0x8011C7AC; // type:function size:0x188 scope:local +msmStreamUpdateFunc = .text:0x8011C934; // type:function size:0x17C scope:local +msmStreamSlotInit = .text:0x8011CAB0; // type:function size:0x214 scope:local +_kerent = .text:0x8011CCC4; // type:function size:0xFE4 scope:global +_ctors = .ctors:0x8011DCC0; // type:label scope:global data:4byte +__init_cpp_exceptions_reference = .ctors:0x8011DCC0; // type:object size:0x4 scope:global +_dtors = .dtors:0x8011DCE0; // type:label scope:global data:4byte +__destroy_global_chain_reference = .dtors:0x8011DCE0; // type:object size:0x4 scope:global +__fini_cpp_exceptions_reference = .dtors:0x8011DCE4; // type:object size:0x4 scope:global +lbl_8011DD00 = .rodata:0x8011DD00; // type:object size:0x10 data:4byte +lbl_8011DD10 = .rodata:0x8011DD10; // type:object size:0x10 data:4byte +lbl_8011DD20 = .rodata:0x8011DD20; // type:object size:0xC data:4byte +lbl_8011DD30 = .rodata:0x8011DD30; // type:object size:0x20 data:byte +lbl_8011DD50 = .rodata:0x8011DD50; // type:object size:0x10 data:4byte +lbl_8011DD60 = .rodata:0x8011DD60; // type:object size:0x24 data:4byte +lbl_8011DD84 = .rodata:0x8011DD84; // type:object size:0xC data:4byte +lbl_8011DD90 = .rodata:0x8011DD90; // type:object size:0x20 data:4byte +lbl_8011DDB0 = .rodata:0x8011DDB0; // type:object size:0x20 data:4byte +lbl_8011DDD0 = .rodata:0x8011DDD0; // type:object size:0x5C data:4byte +lbl_8011DE2C = .rodata:0x8011DE2C; // type:object size:0x24 data:4byte +lbl_8011DE50 = .rodata:0x8011DE50; // type:object size:0x10 data:4byte +lbl_8011DE60 = .rodata:0x8011DE60; // type:object size:0x38 data:4byte +lbl_8011DE98 = .rodata:0x8011DE98; // type:object size:0x38 data:4byte +lbl_8011DED0 = .rodata:0x8011DED0; // type:object size:0x20 data:4byte +lbl_8011DEF0 = .rodata:0x8011DEF0; // type:object size:0x10 data:4byte +lbl_8011DF00 = .rodata:0x8011DF00; // type:object size:0x90 data:4byte +lbl_8011DF90 = .rodata:0x8011DF90; // type:object size:0x20 data:4byte +lbl_8011DFB0 = .rodata:0x8011DFB0; // type:object size:0x20 data:4byte +pickSpr = .rodata:0x8011DFD0; // type:object size:0x20 scope:local +handMdl = .rodata:0x8011DFF0; // type:object size:0x20 scope:local +ticketSpr = .rodata:0x8011E010; // type:object size:0x10 scope:local +lbl_8011E020 = .rodata:0x8011E020; // type:object size:0x20 data:4byte +lbl_8011E040 = .rodata:0x8011E040; // type:object size:0x24 +lbl_8011E064 = .rodata:0x8011E064; // type:object size:0x4C +lbl_8011E0B0 = .rodata:0x8011E0B0; // type:object size:0x10 data:4byte +lbl_8011E0C0 = .rodata:0x8011E0C0; // type:object size:0x54 data:4byte +lbl_8011E118 = .rodata:0x8011E118; // type:object size:0x38 data:4byte +lbl_8011E150 = .rodata:0x8011E150; // type:object size:0x3C data:4byte +lbl_8011E18C = .rodata:0x8011E18C; // type:object size:0x14 data:2byte +lbl_8011E1A0 = .rodata:0x8011E1A0; // type:object size:0x20 data:4byte +lbl_8011E1C0 = .rodata:0x8011E1C0; // type:object size:0x20 data:4byte +lbl_8011E1E0 = .rodata:0x8011E1E0; // type:object size:0x20 data:4byte +lbl_8011E200 = .rodata:0x8011E200; // type:object size:0x20 data:4byte +lbl_8011E220 = .rodata:0x8011E220; // type:object size:0xC data:4byte +lbl_8011E22C = .rodata:0x8011E22C; // type:object size:0xC data:4byte +lbl_8011E238 = .rodata:0x8011E238; // type:object size:0xC data:4byte +lbl_8011E244 = .rodata:0x8011E244; // type:object size:0xC data:4byte +bowserMotTbl = .rodata:0x8011E250; // type:object size:0x18 scope:local +lbl_8011E268 = .rodata:0x8011E268; // type:object size:0x10 data:4byte +lbl_8011E278 = .rodata:0x8011E278; // type:object size:0x60 data:4byte +lbl_8011E2D8 = .rodata:0x8011E2D8; // type:object size:0xC data:byte +miniBowserMotTbl = .rodata:0x8011E2E4; // type:object size:0x1C scope:local +lbl_8011E300 = .rodata:0x8011E300; // type:object size:0x24 data:4byte +lbl_8011E324 = .rodata:0x8011E324; // type:object size:0x20 data:4byte +lbl_8011E344 = .rodata:0x8011E344; // type:object size:0x2C data:4byte +lbl_8011E370 = .rodata:0x8011E370; // type:object size:0x10 data:4byte +lbl_8011E380 = .rodata:0x8011E380; // type:object size:0x24 data:4byte +lbl_8011E3A8 = .rodata:0x8011E3A8; // type:object size:0x24 data:4byte +lbl_8011E3D0 = .rodata:0x8011E3D0; // type:object size:0x20 data:4byte +lbl_8011E3F0 = .rodata:0x8011E3F0; // type:object size:0x20 data:4byte +lbl_8011E410 = .rodata:0x8011E410; // type:object size:0x20 data:4byte +lbl_8011E430 = .rodata:0x8011E430; // type:object size:0x10 data:4byte +__THPJpegNaturalOrder = .rodata:0x8011E440; // type:object size:0x50 data:byte +__THPAANScaleFactor = .rodata:0x8011E490; // type:object size:0x40 data:byte +lbl_8011E4D0 = .rodata:0x8011E4D0; // type:object size:0x10 +lbl_8011E4E0 = .rodata:0x8011E4E0; // type:object size:0x10 +__constants = .rodata:0x8011E4F0; // type:object size:0x18 scope:local data:double +lbl_8011E508 = .rodata:0x8011E508; // type:object size:0x54 +lbl_8011E55C = .rodata:0x8011E55C; // type:object size:0x14 +lbl_8011E570 = .rodata:0x8011E570; // type:object size:0x10 +lbl_8011E580 = .rodata:0x8011E580; // type:object size:0x20 +lbl_8011E5A0 = .rodata:0x8011E5A0; // type:object size:0x38 +lbl_8011E5D8 = .rodata:0x8011E5D8; // type:object size:0x40 +fix_pool_sizes = .rodata:0x8011E618; // type:object size:0x18 scope:local data:4byte +lbl_8011E630 = .rodata:0x8011E630; // type:object size:0xE0 +@stringBase0 = .rodata:0x8011E710; // type:object size:0x25 scope:local data:string_table +Zero = .rodata:0x8011E738; // type:object size:0x10 scope:local +bp = .rodata:0x8011E748; // type:object size:0x10 scope:local data:double +dp_h = .rodata:0x8011E758; // type:object size:0x10 scope:local +dp_l = .rodata:0x8011E768; // type:object size:0x10 scope:local +two_over_pi = .rodata:0x8011E778; // type:object size:0x108 scope:local +npio2_hw = .rodata:0x8011E880; // type:object size:0x80 scope:local +init_jk = .rodata:0x8011E900; // type:object size:0x10 scope:local +PIo2 = .rodata:0x8011E910; // type:object size:0x40 scope:local data:double +T = .rodata:0x8011E950; // type:object size:0x68 scope:local data:double +atanhi = .rodata:0x8011E9B8; // type:object size:0x20 scope:local +atanlo = .rodata:0x8011E9D8; // type:object size:0x20 scope:local +aT = .rodata:0x8011E9F8; // type:object size:0x58 scope:local +@62 = .rodata:0x8011EA50; // type:object size:0x1C scope:local data:string +lbl_8011EA70 = .rodata:0x8011EA70; // type:object size:0x20 +gTRKMemMap = .rodata:0x8011EA90; // type:object size:0x10 data:4byte +lbl_8011EAA0 = .rodata:0x8011EAA0; // type:object size:0x28 data:4byte +lbl_8011EAC8 = .rodata:0x8011EAC8; // type:object size:0x28 data:4byte +lbl_8011EAF0 = .rodata:0x8011EAF0; // type:object size:0x28 data:4byte +@154 = .rodata:0x8011EB18; // type:object size:0x21 scope:local data:string +@155 = .rodata:0x8011EB3C; // type:object size:0x24 scope:local data:string +dspMixerCycles = .rodata:0x8011EB60; // type:object size:0x40 +pbOffsets$890 = .rodata:0x8011EBA0; // type:object size:0x18 scope:local +inpColdMIDIDefaults = .rodata:0x8011EBB8; // type:object size:0x88 scope:local +inpWarmMIDIDefaults = .rodata:0x8011EC40; // type:object size:0x88 scope:local data:byte +itdOffTab = .rodata:0x8011ECC8; // type:object size:0x100 scope:local +lbl_8011EDE0 = .data:0x8011EDE0; // type:object size:0x10 data:string +chanTbl = .data:0x8011EDF0; // type:object size:0x10 scope:local +correctDiskID = .data:0x8011EE00; // type:object size:0x124 scope:local +jumptable_8011EF24 = .data:0x8011EF24; // type:object size:0x34 scope:local +lbl_8011EF58 = .data:0x8011EF58; // type:object size:0x11 data:string +lbl_8011EF69 = .data:0x8011EF69; // type:object size:0x11 data:string +lbl_8011EF7A = .data:0x8011EF7A; // type:object size:0x10 data:string +lbl_8011EF8A = .data:0x8011EF8A; // type:object size:0x10 data:string +lbl_8011EF9A = .data:0x8011EF9A; // type:object size:0x14 data:string +lbl_8011EFAE = .data:0x8011EFAE; // type:object size:0x11 data:string +lbl_8011EFBF = .data:0x8011EFBF; // type:object size:0x10 data:string +lbl_8011EFCF = .data:0x8011EFCF; // type:object size:0xF data:string +lbl_8011EFDE = .data:0x8011EFDE; // type:object size:0x10 data:string +lbl_8011EFEE = .data:0x8011EFEE; // type:object size:0x13 data:string +lbl_8011F001 = .data:0x8011F001; // type:object size:0xF data:string +lbl_8011F010 = .data:0x8011F010; // type:object size:0x13 data:string +lbl_8011F023 = .data:0x8011F023; // type:object size:0x13 data:string +lbl_8011F036 = .data:0x8011F036; // type:object size:0x12 data:string +lbl_8011F048 = .data:0x8011F048; // type:object size:0x10 data:string +lbl_8011F058 = .data:0x8011F058; // type:object size:0x14 data:string +lbl_8011F06C = .data:0x8011F06C; // type:object size:0x14 data:string +lbl_8011F080 = .data:0x8011F080; // type:object size:0x13 data:string +lbl_8011F093 = .data:0x8011F093; // type:object size:0x10 data:string +lbl_8011F0A3 = .data:0x8011F0A3; // type:object size:0x11 data:string +lbl_8011F0B4 = .data:0x8011F0B4; // type:object size:0xE data:string +lbl_8011F0C2 = .data:0x8011F0C2; // type:object size:0x12 data:string +lbl_8011F0D4 = .data:0x8011F0D4; // type:object size:0x11 data:string +lbl_8011F0E5 = .data:0x8011F0E5; // type:object size:0xF data:string +lbl_8011F0F4 = .data:0x8011F0F4; // type:object size:0x13 data:string +lbl_8011F107 = .data:0x8011F107; // type:object size:0x13 data:string +lbl_8011F11A = .data:0x8011F11A; // type:object size:0x12 data:string +lbl_8011F12C = .data:0x8011F12C; // type:object size:0xE data:string +lbl_8011F13A = .data:0x8011F13A; // type:object size:0xE data:string +lbl_8011F148 = .data:0x8011F148; // type:object size:0xE data:string +lbl_8011F156 = .data:0x8011F156; // type:object size:0xE data:string +lbl_8011F164 = .data:0x8011F164; // type:object size:0xE data:string +lbl_8011F172 = .data:0x8011F172; // type:object size:0xE data:string +lbl_8011F180 = .data:0x8011F180; // type:object size:0xE data:string +lbl_8011F18E = .data:0x8011F18E; // type:object size:0xE data:string +lbl_8011F19C = .data:0x8011F19C; // type:object size:0xE data:string +lbl_8011F1AA = .data:0x8011F1AA; // type:object size:0xE data:string +lbl_8011F1B8 = .data:0x8011F1B8; // type:object size:0xE data:string +lbl_8011F1C6 = .data:0x8011F1C6; // type:object size:0xE data:string +lbl_8011F1D4 = .data:0x8011F1D4; // type:object size:0xE data:string +lbl_8011F1E2 = .data:0x8011F1E2; // type:object size:0xE data:string +lbl_8011F1F0 = .data:0x8011F1F0; // type:object size:0xE data:string +lbl_8011F1FE = .data:0x8011F1FE; // type:object size:0xE data:string +lbl_8011F20C = .data:0x8011F20C; // type:object size:0xE data:string +lbl_8011F21A = .data:0x8011F21A; // type:object size:0xE data:string +lbl_8011F228 = .data:0x8011F228; // type:object size:0xE data:string +lbl_8011F236 = .data:0x8011F236; // type:object size:0xE data:string +lbl_8011F244 = .data:0x8011F244; // type:object size:0xE data:string +lbl_8011F252 = .data:0x8011F252; // type:object size:0xE data:string +lbl_8011F260 = .data:0x8011F260; // type:object size:0xE data:string +lbl_8011F26E = .data:0x8011F26E; // type:object size:0xE data:string +lbl_8011F27C = .data:0x8011F27C; // type:object size:0xE data:string +lbl_8011F28A = .data:0x8011F28A; // type:object size:0xE data:string +lbl_8011F298 = .data:0x8011F298; // type:object size:0xE data:string +lbl_8011F2A6 = .data:0x8011F2A6; // type:object size:0xE data:string +lbl_8011F2B4 = .data:0x8011F2B4; // type:object size:0xE data:string +lbl_8011F2C2 = .data:0x8011F2C2; // type:object size:0xE data:string +lbl_8011F2D0 = .data:0x8011F2D0; // type:object size:0xE data:string +lbl_8011F2DE = .data:0x8011F2DE; // type:object size:0xE data:string +lbl_8011F2EC = .data:0x8011F2EC; // type:object size:0xE data:string +lbl_8011F2FA = .data:0x8011F2FA; // type:object size:0xE data:string +lbl_8011F308 = .data:0x8011F308; // type:object size:0xE data:string +lbl_8011F316 = .data:0x8011F316; // type:object size:0xE data:string +lbl_8011F324 = .data:0x8011F324; // type:object size:0xE data:string +lbl_8011F332 = .data:0x8011F332; // type:object size:0xE data:string +lbl_8011F340 = .data:0x8011F340; // type:object size:0xE data:string +lbl_8011F34E = .data:0x8011F34E; // type:object size:0xE data:string +lbl_8011F35C = .data:0x8011F35C; // type:object size:0xE data:string +lbl_8011F36A = .data:0x8011F36A; // type:object size:0xE data:string +lbl_8011F378 = .data:0x8011F378; // type:object size:0xE data:string +lbl_8011F386 = .data:0x8011F386; // type:object size:0xE data:string +lbl_8011F394 = .data:0x8011F394; // type:object size:0xE data:string +lbl_8011F3A2 = .data:0x8011F3A2; // type:object size:0xE data:string +lbl_8011F3B0 = .data:0x8011F3B0; // type:object size:0xE data:string +lbl_8011F3BE = .data:0x8011F3BE; // type:object size:0xE data:string +lbl_8011F3CC = .data:0x8011F3CC; // type:object size:0xE data:string +lbl_8011F3DA = .data:0x8011F3DA; // type:object size:0xE data:string +lbl_8011F3E8 = .data:0x8011F3E8; // type:object size:0xE data:string +lbl_8011F3F6 = .data:0x8011F3F6; // type:object size:0xE data:string +lbl_8011F404 = .data:0x8011F404; // type:object size:0xE data:string +lbl_8011F412 = .data:0x8011F412; // type:object size:0xE data:string +lbl_8011F420 = .data:0x8011F420; // type:object size:0xE data:string +lbl_8011F42E = .data:0x8011F42E; // type:object size:0xE data:string +lbl_8011F43C = .data:0x8011F43C; // type:object size:0xE data:string +lbl_8011F44A = .data:0x8011F44A; // type:object size:0xE data:string +lbl_8011F458 = .data:0x8011F458; // type:object size:0xE data:string +lbl_8011F466 = .data:0x8011F466; // type:object size:0xE data:string +lbl_8011F474 = .data:0x8011F474; // type:object size:0xE data:string +lbl_8011F482 = .data:0x8011F482; // type:object size:0xE data:string +lbl_8011F490 = .data:0x8011F490; // type:object size:0xE data:string +lbl_8011F49E = .data:0x8011F49E; // type:object size:0xE data:string +lbl_8011F4AC = .data:0x8011F4AC; // type:object size:0xE data:string +lbl_8011F4BA = .data:0x8011F4BA; // type:object size:0xF data:string +lbl_8011F4C9 = .data:0x8011F4C9; // type:object size:0x13 data:string +lbl_8011F4DC = .data:0x8011F4DC; // type:object size:0x13 data:string +lbl_8011F4EF = .data:0x8011F4EF; // type:object size:0x12 data:string +lbl_8011F501 = .data:0x8011F501; // type:object size:0xE data:string +lbl_8011F50F = .data:0x8011F50F; // type:object size:0x11 data:string +lbl_8011F520 = .data:0x8011F520; // type:object size:0x10 data:string +lbl_8011F530 = .data:0x8011F530; // type:object size:0x11 data:string +lbl_8011F541 = .data:0x8011F541; // type:object size:0xE data:string +lbl_8011F54F = .data:0x8011F54F; // type:object size:0x10 data:string +lbl_8011F55F = .data:0x8011F55F; // type:object size:0x11 data:string +lbl_8011F570 = .data:0x8011F570; // type:object size:0x11 data:string +lbl_8011F581 = .data:0x8011F581; // type:object size:0x11 data:string +lbl_8011F592 = .data:0x8011F592; // type:object size:0x10 data:string +lbl_8011F5A2 = .data:0x8011F5A2; // type:object size:0xF data:string +lbl_8011F5B1 = .data:0x8011F5B1; // type:object size:0x13 data:string +lbl_8011F5C4 = .data:0x8011F5C4; // type:object size:0x13 data:string +lbl_8011F5D7 = .data:0x8011F5D7; // type:object size:0x12 data:string +lbl_8011F5E9 = .data:0x8011F5E9; // type:object size:0x11 data:string +lbl_8011F5FA = .data:0x8011F5FA; // type:object size:0x10 data:string +lbl_8011F60A = .data:0x8011F60A; // type:object size:0xD data:string +lbl_8011F617 = .data:0x8011F617; // type:object size:0x11 data:string +lbl_8011F628 = .data:0x8011F628; // type:object size:0xF data:string +lbl_8011F637 = .data:0x8011F637; // type:object size:0xF data:string +lbl_8011F646 = .data:0x8011F646; // type:object size:0xF data:string +lbl_8011F655 = .data:0x8011F655; // type:object size:0xD data:string +lbl_8011F662 = .data:0x8011F662; // type:object size:0xD data:string +lbl_8011F66F = .data:0x8011F66F; // type:object size:0xD data:string +lbl_8011F67C = .data:0x8011F67C; // type:object size:0xD data:string +lbl_8011F689 = .data:0x8011F689; // type:object size:0xD data:string +lbl_8011F696 = .data:0x8011F696; // type:object size:0xD data:string +lbl_8011F6A3 = .data:0x8011F6A3; // type:object size:0xD data:string +lbl_8011F6B0 = .data:0x8011F6B0; // type:object size:0xD data:string +lbl_8011F6BD = .data:0x8011F6BD; // type:object size:0xD data:string +lbl_8011F6CA = .data:0x8011F6CA; // type:object size:0x11 data:string +lbl_8011F6DB = .data:0x8011F6DB; // type:object size:0x15 data:string +lbl_8011F6F0 = .data:0x8011F6F0; // type:object size:0x15 data:string +lbl_8011F705 = .data:0x8011F705; // type:object size:0x14 data:string +lbl_8011F719 = .data:0x8011F719; // type:object size:0xF data:string +lbl_8011F728 = .data:0x8011F728; // type:object size:0x13 data:string +lbl_8011F73B = .data:0x8011F73B; // type:object size:0x13 data:string +lbl_8011F74E = .data:0x8011F74E; // type:object size:0x12 data:string +lbl_8011F760 = .data:0x8011F760; // type:object size:0xD data:string +lbl_8011F76D = .data:0x8011F76D; // type:object size:0xF data:string +lbl_8011F77C = .data:0x8011F77C; // type:object size:0x13 data:string +lbl_8011F78F = .data:0x8011F78F; // type:object size:0x13 data:string +lbl_8011F7A2 = .data:0x8011F7A2; // type:object size:0x12 data:string +lbl_8011F7B4 = .data:0x8011F7B4; // type:object size:0x10 +DataDirStat = .data:0x8011F7C4; // type:object size:0x468 scope:local data:4byte +lbl_8011FC2C = .data:0x8011FC2C; // type:object size:0x1D data:string +lbl_8011FC49 = .data:0x8011FC49; // type:object size:0x1F data:string +lbl_8011FC68 = .data:0x8011FC68; // type:object size:0x1D data:string +lbl_8011FC85 = .data:0x8011FC85; // type:object size:0x12 data:string +lbl_8011FC97 = .data:0x8011FC97; // type:object size:0xD data:string +lbl_8011FCA4 = .data:0x8011FCA4; // type:object size:0x1A data:string +lbl_8011FCBE = .data:0x8011FCBE; // type:object size:0x122 +lbl_8011FDE0 = .data:0x8011FDE0; // type:object size:0x20 +ank8x8_4b = .data:0x8011FE00; // type:object size:0x2000 align:32 +lbl_80121E00 = .data:0x80121E00; // type:object size:0x150 +HeapSizeTbl = .data:0x80121F50; // type:object size:0x78 scope:local +lbl_80121FC8 = .data:0x80121FC8; // type:object size:0x50 +lbl_80122018 = .data:0x80122018; // type:object size:0x128 +fcoltbl = .data:0x80122140; // type:object size:0x40 scope:local align:32 +lbl_80122180 = .data:0x80122180; // type:object size:0x1F data:string +lbl_8012219F = .data:0x8012219F; // type:object size:0x31 +lbl_801221D0 = .data:0x801221D0; // type:object size:0x12 +bitSizeTbl = .data:0x801221E2; // type:object size:0x16 scope:local +lbl_801221F8 = .data:0x801221F8; // type:object size:0xF8 scope:local +jumptable_801222F0 = .data:0x801222F0; // type:object size:0x2C scope:local +jumptable_80122320 = .data:0x80122320; // type:object size:0x28 scope:local +jumptable_80122348 = .data:0x80122348; // type:object size:0x2C scope:local +lbl_80122374 = .data:0x80122374; // type:object size:0x1C +texMtxTbl = .data:0x80122390; // type:object size:0xC data:byte +jumptable_8012239C = .data:0x8012239C; // type:object size:0x28 scope:local +lbl_801223C4 = .data:0x801223C4; // type:object size:0x18 data:string +jumptable_801223DC = .data:0x801223DC; // type:object size:0x28 scope:local +jumptable_80122404 = .data:0x80122404; // type:object size:0x28 scope:local +refMtx = .data:0x8012242C; // type:object size:0x30 scope:local +kColorSelTbl = .data:0x8012245C; // type:object size:0x30 scope:local +kColorTbl = .data:0x8012248C; // type:object size:0x10 scope:local +kColorSelTbl2 = .data:0x8012249C; // type:object size:0x10 scope:local +kColorSelATbl = .data:0x801224AC; // type:object size:0x10 scope:local +lbl_801224BC = .data:0x801224BC; // type:object size:0x14 +jumptable_801224D0 = .data:0x801224D0; // type:object size:0x30 scope:local +jumptable_80122500 = .data:0x80122500; // type:object size:0x28 scope:local +jumptable_80122528 = .data:0x80122528; // type:object size:0x28 scope:local +lbl_80122550 = .data:0x80122550; // type:object size:0x19 data:string +lbl_80122569 = .data:0x80122569; // type:object size:0xA data:string +lbl_80122573 = .data:0x80122573; // type:object size:0x2D +refMapData0 = .data:0x801225A0; // type:object size:0x1240 align:32 noreloc +refMapData1 = .data:0x801237E0; // type:object size:0x1100 align:32 noreloc +refMapData2 = .data:0x801248E0; // type:object size:0x2080 align:32 noreloc +refMapData3 = .data:0x80126960; // type:object size:0x2080 align:32 noreloc +refMapData4 = .data:0x801289E0; // type:object size:0x2080 align:32 noreloc +toonMapData = .data:0x8012AA60; // type:object size:0x880 align:32 noreloc +toonMapData2 = .data:0x8012B2E0; // type:object size:0x1080 align:32 noreloc +hiliteData = .data:0x8012C360; // type:object size:0x480 align:32 noreloc +hiliteData2 = .data:0x8012C7E0; // type:object size:0x480 align:32 noreloc +hiliteData3 = .data:0x8012CC60; // type:object size:0x480 align:32 noreloc +hiliteData4 = .data:0x8012D0E0; // type:object size:0x480 align:32 noreloc +lbl_8012D560 = .data:0x8012D560; // type:object size:0x1B data:string +lbl_8012D57B = .data:0x8012D57B; // type:object size:0x16 data:string +lbl_8012D591 = .data:0x8012D591; // type:object size:0x21 data:string +lbl_8012D5B2 = .data:0x8012D5B2; // type:object size:0x26 +defCamera = .data:0x8012D5D8; // type:object size:0x58 data:4byte +lbl_8012D630 = .data:0x8012D630; // type:object size:0x28 +lbl_8012D658 = .data:0x8012D658; // type:object size:0x1C data:string +lbl_8012D674 = .data:0x8012D674; // type:object size:0x1C +jumptable_8012D690 = .data:0x8012D690; // type:object size:0x2C scope:local +jumptable_8012D6BC = .data:0x8012D6BC; // type:object size:0x68 scope:local +jumptable_8012D724 = .data:0x8012D724; // type:object size:0xF0 scope:local +jumptable_8012D814 = .data:0x8012D814; // type:object size:0x20 scope:local +lbl_8012D838 = .data:0x8012D838; // type:object size:0x15 data:string +lbl_8012D84D = .data:0x8012D84D; // type:object size:0x1F data:string +lbl_8012D86C = .data:0x8012D86C; // type:object size:0x18 +basePos = .data:0x8012D884; // type:object size:0x30 scope:local +baseST = .data:0x8012D8B4; // type:object size:0x20 scope:local +jitterTbl = .data:0x8012D8D4; // type:object size:0x24 scope:local +jumptable_8012D8F8 = .data:0x8012D8F8; // type:object size:0x1C scope:local +lbl_8012D918 = .data:0x8012D918; // type:object size:0xCA +lbl_8012D9E2 = .data:0x8012D9E2; // type:object size:0x1C data:string +lbl_8012D9FE = .data:0x8012D9FE; // type:object size:0x1C data:string +lbl_8012DA1A = .data:0x8012DA1A; // type:object size:0x1D data:string +lbl_8012DA37 = .data:0x8012DA37; // type:object size:0x18 data:string +lbl_8012DA4F = .data:0x8012DA4F; // type:object size:0xC data:string +lbl_8012DA5B = .data:0x8012DA5B; // type:object size:0x45 +lbl_8012DAA0 = .data:0x8012DAA0; // type:object size:0x45 +lbl_8012DAE5 = .data:0x8012DAE5; // type:object size:0x19 data:string +lbl_8012DAFE = .data:0x8012DAFE; // type:object size:0x17 data:string +lbl_8012DB15 = .data:0x8012DB15; // type:object size:0x1B3 +XFB_Colors = .data:0x8012DCC8; // type:object size:0xF scope:local data:byte +Ascii8x8_1bpp = .data:0x8012DCD7; // type:object size:0x800 scope:local align:1 +lbl_8012E4D7 = .data:0x8012E4D7; // type:object size:0x19 +lbl_8012E4F0 = .data:0x8012E4F0; // type:object size:0x21A +lbl_8012E70A = .data:0x8012E70A; // type:object size:0xB data:string +lbl_8012E715 = .data:0x8012E715; // type:object size:0x273 +lbl_8012E988 = .data:0x8012E988; // type:object size:0x12 data:string +lbl_8012E99A = .data:0x8012E99A; // type:object size:0xD6 +sndGrpTable = .data:0x8012EA70; // type:object size:0x5B0 +lbl_8012F020 = .data:0x8012F020; // type:object size:0x94 +lbl_8012F0B4 = .data:0x8012F0B4; // type:object size:0x11 data:string +lbl_8012F0C5 = .data:0x8012F0C5; // type:object size:0x3A +lbl_8012F0FF = .data:0x8012F0FF; // type:object size:0x31 +seqInfoTbl = .data:0x8012F130; // type:object size:0x1DC scope:local +seqType2SprTbl = .data:0x8012F30C; // type:object size:0x18 scope:local +mgSeqTypeTbl = .data:0x8012F324; // type:object size:0x12 scope:local +lbl_8012F336 = .data:0x8012F336; // type:object size:0x53 scope:local data:string +lbl_8012F389 = .data:0x8012F389; // type:object size:0x9 scope:local data:string +lbl_8012F392 = .data:0x8012F392; // type:object size:0x9 scope:local data:string +seqFontAlphaTbl = .data:0x8012F39B; // type:object size:0x35 scope:local data:string +seqFontKanaTbl = .data:0x8012F3D0; // type:object size:0x52 scope:local data:string +seqFontNumTbl = .data:0x8012F422; // type:object size:0xB scope:local data:string +letterBufTbl = .data:0x8012F430; // type:object size:0x14 scope:local +wordMgTbl = .data:0x8012F444; // type:object size:0x18 scope:local +letterOfs$909 = .data:0x8012F45C; // type:object size:0x40 scope:local +letterOfs$1386 = .data:0x8012F49C; // type:object size:0x1C scope:local +letterOfs$1761 = .data:0x8012F4B8; // type:object size:0x38 scope:local +lbl_8012F4F0 = .data:0x8012F4F0; // type:object size:0xA scope:local data:string +winCharNameTbl = .data:0x8012F4FC; // type:object size:0x78 scope:local +lbl_8012F574 = .data:0x8012F574; // type:object size:0xA scope:local data:string +winWordTbl = .data:0x8012F580; // type:object size:0x18 scope:local +winPosOfs = .data:0x8012F598; // type:object size:0x50 scope:local +practiceTbl = .data:0x8012F5E8; // type:object size:0xAC scope:local +yPosTbl$2366 = .data:0x8012F694; // type:object size:0xC scope:local +seqStartFXTbl = .data:0x8012F6A0; // type:object size:0xF0 scope:local +lbl_8012F790 = .data:0x8012F790; // type:object size:0x15 data:string +lbl_8012F7A5 = .data:0x8012F7A5; // type:object size:0x10 data:string +lbl_8012F7B5 = .data:0x8012F7B5; // type:object size:0x13 data:string +lbl_8012F7C8 = .data:0x8012F7C8; // type:object size:0x10 data:string +lbl_8012F7D8 = .data:0x8012F7D8; // type:object size:0x10 data:string +lbl_8012F7E8 = .data:0x8012F7E8; // type:object size:0x10 data:string +lbl_8012F7F8 = .data:0x8012F7F8; // type:object size:0x10 data:string +lbl_8012F808 = .data:0x8012F808; // type:object size:0x10 data:string +lbl_8012F818 = .data:0x8012F818; // type:object size:0x10 data:string +lbl_8012F828 = .data:0x8012F828; // type:object size:0x10 data:string +lbl_8012F838 = .data:0x8012F838; // type:object size:0x10 data:string +lbl_8012F848 = .data:0x8012F848; // type:object size:0x10 data:string +lbl_8012F858 = .data:0x8012F858; // type:object size:0x10 data:string +lbl_8012F868 = .data:0x8012F868; // type:object size:0x10 data:string +lbl_8012F878 = .data:0x8012F878; // type:object size:0x10 data:string +lbl_8012F888 = .data:0x8012F888; // type:object size:0x10 data:string +lbl_8012F898 = .data:0x8012F898; // type:object size:0x10 data:string +lbl_8012F8A8 = .data:0x8012F8A8; // type:object size:0x10 data:string +lbl_8012F8B8 = .data:0x8012F8B8; // type:object size:0x10 data:string +lbl_8012F8C8 = .data:0x8012F8C8; // type:object size:0x10 data:string +lbl_8012F8D8 = .data:0x8012F8D8; // type:object size:0x10 data:string +lbl_8012F8E8 = .data:0x8012F8E8; // type:object size:0x10 data:string +lbl_8012F8F8 = .data:0x8012F8F8; // type:object size:0x10 data:string +lbl_8012F908 = .data:0x8012F908; // type:object size:0x10 data:string +lbl_8012F918 = .data:0x8012F918; // type:object size:0x10 data:string +lbl_8012F928 = .data:0x8012F928; // type:object size:0x10 data:string +lbl_8012F938 = .data:0x8012F938; // type:object size:0x10 data:string +lbl_8012F948 = .data:0x8012F948; // type:object size:0x10 data:string +lbl_8012F958 = .data:0x8012F958; // type:object size:0x10 data:string +lbl_8012F968 = .data:0x8012F968; // type:object size:0x10 data:string +lbl_8012F978 = .data:0x8012F978; // type:object size:0x10 data:string +lbl_8012F988 = .data:0x8012F988; // type:object size:0x10 data:string +lbl_8012F998 = .data:0x8012F998; // type:object size:0x10 data:string +lbl_8012F9A8 = .data:0x8012F9A8; // type:object size:0x10 data:string +lbl_8012F9B8 = .data:0x8012F9B8; // type:object size:0x10 data:string +lbl_8012F9C8 = .data:0x8012F9C8; // type:object size:0x10 data:string +lbl_8012F9D8 = .data:0x8012F9D8; // type:object size:0x10 data:string +lbl_8012F9E8 = .data:0x8012F9E8; // type:object size:0x10 data:string +lbl_8012F9F8 = .data:0x8012F9F8; // type:object size:0x10 data:string +lbl_8012FA08 = .data:0x8012FA08; // type:object size:0x10 data:string +lbl_8012FA18 = .data:0x8012FA18; // type:object size:0x10 data:string +lbl_8012FA28 = .data:0x8012FA28; // type:object size:0x10 data:string +lbl_8012FA38 = .data:0x8012FA38; // type:object size:0x10 data:string +lbl_8012FA48 = .data:0x8012FA48; // type:object size:0x10 data:string +lbl_8012FA58 = .data:0x8012FA58; // type:object size:0x10 data:string +lbl_8012FA68 = .data:0x8012FA68; // type:object size:0x10 data:string +lbl_8012FA78 = .data:0x8012FA78; // type:object size:0x10 data:string +lbl_8012FA88 = .data:0x8012FA88; // type:object size:0x10 data:string +lbl_8012FA98 = .data:0x8012FA98; // type:object size:0x10 data:string +lbl_8012FAA8 = .data:0x8012FAA8; // type:object size:0x10 data:string +lbl_8012FAB8 = .data:0x8012FAB8; // type:object size:0x10 data:string +lbl_8012FAC8 = .data:0x8012FAC8; // type:object size:0x10 data:string +lbl_8012FAD8 = .data:0x8012FAD8; // type:object size:0x10 data:string +lbl_8012FAE8 = .data:0x8012FAE8; // type:object size:0x10 data:string +lbl_8012FAF8 = .data:0x8012FAF8; // type:object size:0x10 data:string +lbl_8012FB08 = .data:0x8012FB08; // type:object size:0x10 data:string +lbl_8012FB18 = .data:0x8012FB18; // type:object size:0x10 data:string +lbl_8012FB28 = .data:0x8012FB28; // type:object size:0x10 data:string +lbl_8012FB38 = .data:0x8012FB38; // type:object size:0x10 data:string +lbl_8012FB48 = .data:0x8012FB48; // type:object size:0x10 data:string +lbl_8012FB58 = .data:0x8012FB58; // type:object size:0x10 data:string +lbl_8012FB68 = .data:0x8012FB68; // type:object size:0x10 data:string +lbl_8012FB78 = .data:0x8012FB78; // type:object size:0x10 data:string +lbl_8012FB88 = .data:0x8012FB88; // type:object size:0x10 data:string +lbl_8012FB98 = .data:0x8012FB98; // type:object size:0x10 data:string +lbl_8012FBA8 = .data:0x8012FBA8; // type:object size:0x10 data:string +lbl_8012FBB8 = .data:0x8012FBB8; // type:object size:0x10 data:string +lbl_8012FBC8 = .data:0x8012FBC8; // type:object size:0x10 data:string +lbl_8012FBD8 = .data:0x8012FBD8; // type:object size:0x10 data:string +lbl_8012FBE8 = .data:0x8012FBE8; // type:object size:0x10 data:string +lbl_8012FBF8 = .data:0x8012FBF8; // type:object size:0x10 data:string +lbl_8012FC08 = .data:0x8012FC08; // type:object size:0x10 data:string +lbl_8012FC18 = .data:0x8012FC18; // type:object size:0x12 data:string +lbl_8012FC2A = .data:0x8012FC2A; // type:object size:0x15 data:string +lbl_8012FC3F = .data:0x8012FC3F; // type:object size:0x13 data:string +lbl_8012FC52 = .data:0x8012FC52; // type:object size:0x10 data:string +lbl_8012FC62 = .data:0x8012FC62; // type:object size:0x12 data:string +lbl_8012FC74 = .data:0x8012FC74; // type:object size:0x13 data:string +lbl_8012FC87 = .data:0x8012FC87; // type:object size:0x13 data:string +lbl_8012FC9A = .data:0x8012FC9A; // type:object size:0x13 data:string +lbl_8012FCAD = .data:0x8012FCAD; // type:object size:0x12 data:string +lbl_8012FCBF = .data:0x8012FCBF; // type:object size:0xF data:string +lbl_8012FCCE = .data:0x8012FCCE; // type:object size:0xF data:string +lbl_8012FCDD = .data:0x8012FCDD; // type:object size:0x10 data:string +lbl_8012FCED = .data:0x8012FCED; // type:object size:0x12 data:string +lbl_8012FCFF = .data:0x8012FCFF; // type:object size:0xF data:string +lbl_8012FD0E = .data:0x8012FD0E; // type:object size:0x13 data:string +lbl_8012FD21 = .data:0x8012FD21; // type:object size:0x11 data:string +lbl_8012FD32 = .data:0x8012FD32; // type:object size:0x15 data:string +lbl_8012FD47 = .data:0x8012FD47; // type:object size:0xF data:string +lbl_8012FD56 = .data:0x8012FD56; // type:object size:0xF data:string +lbl_8012FD65 = .data:0x8012FD65; // type:object size:0xF data:string +lbl_8012FD74 = .data:0x8012FD74; // type:object size:0xF data:string +lbl_8012FD83 = .data:0x8012FD83; // type:object size:0xF data:string +lbl_8012FD92 = .data:0x8012FD92; // type:object size:0xF data:string +lbl_8012FDA1 = .data:0x8012FDA1; // type:object size:0xF data:string +lbl_8012FDB0 = .data:0x8012FDB0; // type:object size:0xF data:string +lbl_8012FDBF = .data:0x8012FDBF; // type:object size:0xF data:string +lbl_8012FDCE = .data:0x8012FDCE; // type:object size:0x12 +_ovltbl = .data:0x8012FDE0; // type:object size:0x320 +lbl_80130100 = .data:0x80130100; // type:object size:0x20 +fadeInFunc = .data:0x80130120; // type:object size:0xC scope:local +fadeOutFunc = .data:0x8013012C; // type:object size:0xC scope:local +spcFontTbl = .data:0x80130140; // type:object size:0x170 scope:local +charWETbl = .data:0x801302B0; // type:object size:0x130 +charWJTbl = .data:0x801303E0; // type:object size:0x140 +charColPal = .data:0x80130520; // type:object size:0x3C scope:local align:32 +frameFileTbl = .data:0x8013055C; // type:object size:0x10 scope:local +lbl_8013056C = .data:0x8013056C; // type:object size:0xE data:string +lbl_8013057A = .data:0x8013057A; // type:object size:0xF data:string +lbl_80130589 = .data:0x80130589; // type:object size:0x10 data:string +lbl_80130599 = .data:0x80130599; // type:object size:0x13 +mesDataTbl = .data:0x801305AC; // type:object size:0x10 scope:local +winVoiceTbl = .data:0x801305BC; // type:object size:0x54 scope:local +lbl_80130610 = .data:0x80130610; // type:object size:0x13 data:string +lbl_80130623 = .data:0x80130623; // type:object size:0x19 +winPortraitTbl = .data:0x8013063C; // type:object size:0x4C scope:local +lbl_80130688 = .data:0x80130688; // type:object size:0x26 data:string +lbl_801306AE = .data:0x801306AE; // type:object size:0x2A +lbl_801306D8 = .data:0x801306D8; // type:object size:0x19 data:string +lbl_801306F1 = .data:0x801306F1; // type:object size:0x14 data:string +lbl_80130705 = .data:0x80130705; // type:object size:0x93 +lbl_80130798 = .data:0x80130798; // type:object size:0x30 +effectDataTbl = .data:0x801307C8; // type:object size:0x60 scope:local +charDirTbl = .data:0x80130828; // type:object size:0x60 scope:local +effectDustParam = .data:0x80130888; // type:object size:0x38 scope:local +effectDotParam = .data:0x801308C0; // type:object size:0x38 scope:local +effectStarParam = .data:0x801308F8; // type:object size:0x38 scope:local +effectWarnParam = .data:0x80130930; // type:object size:0x38 scope:local +effectSmokeParam = .data:0x80130968; // type:object size:0x38 scope:local +lbl_801309A0 = .data:0x801309A0; // type:object size:0x20 scope:local +lbl_801309C0 = .data:0x801309C0; // type:object size:0x20 scope:local +lbl_801309E0 = .data:0x801309E0; // type:object size:0x10 scope:local +jumptable_801309F0 = .data:0x801309F0; // type:object size:0x1E8 scope:local +voiceParam = .data:0x80130BD8; // type:object size:0x40 scope:local +lbl_80130C18 = .data:0x80130C18; // type:object size:0xE data:string +lbl_80130C26 = .data:0x80130C26; // type:object size:0xE data:string +lbl_80130C34 = .data:0x80130C34; // type:object size:0xE data:string +lbl_80130C42 = .data:0x80130C42; // type:object size:0xD data:string +lbl_80130C4F = .data:0x80130C4F; // type:object size:0xD data:string +lbl_80130C5C = .data:0x80130C5C; // type:object size:0xB data:string +lbl_80130C67 = .data:0x80130C67; // type:object size:0xF data:string +lbl_80130C76 = .data:0x80130C76; // type:object size:0xF data:string +lbl_80130C85 = .data:0x80130C85; // type:object size:0xF data:string +lbl_80130C94 = .data:0x80130C94; // type:object size:0xF data:string +lbl_80130CA3 = .data:0x80130CA3; // type:object size:0xF data:string +lbl_80130CB2 = .data:0x80130CB2; // type:object size:0xF data:string +lbl_80130CC1 = .data:0x80130CC1; // type:object size:0x9 data:string +lbl_80130CCA = .data:0x80130CCA; // type:object size:0xD data:string +lbl_80130CD7 = .data:0x80130CD7; // type:object size:0x17 data:string +lbl_80130CEE = .data:0x80130CEE; // type:object size:0x17 data:string +lbl_80130D05 = .data:0x80130D05; // type:object size:0xE data:string +lbl_80130D13 = .data:0x80130D13; // type:object size:0xE data:string +lbl_80130D21 = .data:0x80130D21; // type:object size:0xD data:string +lbl_80130D2E = .data:0x80130D2E; // type:object size:0xE data:string +lbl_80130D3C = .data:0x80130D3C; // type:object size:0xE data:string +lbl_80130D4A = .data:0x80130D4A; // type:object size:0xF data:string +lbl_80130D59 = .data:0x80130D59; // type:object size:0xF data:string +lbl_80130D68 = .data:0x80130D68; // type:object size:0x18 data:string +lbl_80130D80 = .data:0x80130D80; // type:object size:0x18 data:string +lbl_80130D98 = .data:0x80130D98; // type:object size:0xE data:string +lbl_80130DA6 = .data:0x80130DA6; // type:object size:0x18 data:string +lbl_80130DBE = .data:0x80130DBE; // type:object size:0x1A +charTexNameTbl = .data:0x80130DD8; // type:object size:0x100 +lbl_80130ED8 = .data:0x80130ED8; // type:object size:0xD data:string +lbl_80130EE5 = .data:0x80130EE5; // type:object size:0xD data:string +lbl_80130EF2 = .data:0x80130EF2; // type:object size:0xE data:string +lbl_80130F00 = .data:0x80130F00; // type:object size:0xE data:string +lbl_80130F0E = .data:0x80130F0E; // type:object size:0x12 +hookNameTbl = .data:0x80130F20; // type:object size:0xA0 scope:local +modelParticleParam = .data:0x80130FC0; // type:object size:0x38 scope:local +coinParticleParam = .data:0x80130FF8; // type:object size:0x38 scope:local +lbl_80131030 = .data:0x80131030; // type:object size:0x38 scope:local +lbl_80131068 = .data:0x80131068; // type:object size:0x38 scope:local +lbl_801310A0 = .data:0x801310A0; // type:object size:0x1C +lbl_801310BC = .data:0x801310BC; // type:object size:0x38 scope:local +lbl_801310F4 = .data:0x801310F4; // type:object size:0x38 scope:local +lbl_8013112C = .data:0x8013112C; // type:object size:0x1A data:string +lbl_80131146 = .data:0x80131146; // type:object size:0x12 scope:local +lbl_80131158 = .data:0x80131158; // type:object size:0x12 scope:local +lbl_8013116A = .data:0x8013116A; // type:object size:0x12 scope:local +lbl_8013117C = .data:0x8013117C; // type:object size:0x12 scope:local +lbl_8013118E = .data:0x8013118E; // type:object size:0xE scope:local +lbl_8013119C = .data:0x8013119C; // type:object size:0xE scope:local +lbl_801311AA = .data:0x801311AA; // type:object size:0xE scope:local +lbl_801311B8 = .data:0x801311B8; // type:object size:0xE scope:local +lbl_801311C6 = .data:0x801311C6; // type:object size:0xE scope:local +lbl_801311D4 = .data:0x801311D4; // type:object size:0xE scope:local +VolumeTable = .data:0x801311E8; // type:object size:0x100 scope:local +lbl_801312E8 = .data:0x801312E8; // type:object size:0x4D +lbl_80131335 = .data:0x80131335; // type:object size:0x1B +mgInfoTbl = .data:0x80131350; // type:object size:0xE00 data:2byte +commentTbl = .data:0x80132150; // type:object size:0x40 scope:local +lbl_80132190 = .data:0x80132190; // type:object size:0xC data:string +lbl_8013219C = .data:0x8013219C; // type:object size:0xC data:string +lbl_801321A8 = .data:0x801321A8; // type:object size:0xC data:string +SaveFileNameTbl = .data:0x801321B4; // type:object size:0xC +jumptable_801321C0 = .data:0x801321C0; // type:object size:0x34 scope:local +SR_PreRstChk = .data:0x801321F8; // type:object size:0x10 scope:local +coveropen_en = .data:0x80132208; // type:object size:0x1384 noreloc +fatalerror_en = .data:0x8013358C; // type:object size:0x1384 noreloc +loading_en = .data:0x80134910; // type:object size:0x1384 noreloc +nodisc_en = .data:0x80135C94; // type:object size:0x1384 noreloc +retryerror_en = .data:0x80137018; // type:object size:0x1384 noreloc +wrongdisc_en = .data:0x8013839C; // type:object size:0x1384 noreloc +jumptable_80139720 = .data:0x80139720; // type:object size:0x34 scope:local +bmpMes$493 = .data:0x80139754; // type:object size:0x18 scope:local +lbl_8013976C = .data:0x8013976C; // type:object size:0x13 data:string +lbl_8013977F = .data:0x8013977F; // type:object size:0x12 data:string +camViewTbl = .data:0x80139798; // type:object size:0x24 scope:local +jumptable_801397BC = .data:0x801397BC; // type:object size:0x24 scope:local +confettiLightTbl = .data:0x801397E0; // type:object size:0x48 scope:local +last5GfxSprTbl = .data:0x80139828; // type:object size:0xC scope:local +last5GfxPosTbl = .data:0x80139834; // type:object size:0x30 scope:local +tauntActiveFXTbl = .data:0x80139864; // type:object size:0x10 scope:local +tauntFXTbl = .data:0x80139874; // type:object size:0x24 scope:local +diceJumpObj = .data:0x80139898; // type:object size:0x10 scope:local +motDoneF = .data:0x801398A8; // type:object size:0x10 scope:local +bowserSuitMot = .data:0x801398B8; // type:object size:0xA scope:local data:2byte +lbl_801398C2 = .data:0x801398C2; // type:object size:0x17 data:string +lbl_801398D9 = .data:0x801398D9; // type:object size:0x17 data:string +lbl_801398F0 = .data:0x801398F0; // type:object size:0xE data:string +lbl_801398FE = .data:0x801398FE; // type:object size:0xE data:string +lbl_8013990C = .data:0x8013990C; // type:object size:0x18 data:string +lbl_80139924 = .data:0x80139924; // type:object size:0x18 data:string +eyeMatTbl = .data:0x8013993C; // type:object size:0x40 scope:local +lbl_8013997C = .data:0x8013997C; // type:object size:0x20 +boardMotTbl = .data:0x8013999C; // type:object size:0x20 scope:local +boardMotRevTbl = .data:0x801399BC; // type:object size:0x20 scope:local +bowserSuitCharMdlTbl = .data:0x801399DC; // type:object size:0x20 scope:local +bowserSuitMotTbl = .data:0x801399FC; // type:object size:0x14 scope:local +sparkMotTbl = .data:0x80139A10; // type:object size:0x20 scope:local +boardSparkSfxTbl = .data:0x80139A30; // type:object size:0x20 scope:local +boardSparkSfxTblAlt = .data:0x80139A50; // type:object size:0x20 scope:local +megaSquishObj = .data:0x80139A70; // type:object size:0x10 scope:local +megaSquishSfxTbl = .data:0x80139A80; // type:object size:0x20 scope:local +PortraitTbl = .data:0x80139AA0; // type:object size:0x24 scope:local +StarPortraitTbl = .data:0x80139AC4; // type:object size:0x24 scope:local +boardMusTbl = .data:0x80139AE8; // type:object size:0x12 scope:local +comItemPreferTbl = .data:0x80139B00; // type:object size:0x60 scope:local +comItemUseCheckFuncTbl = .data:0x80139B60; // type:object size:0x38 scope:local +comJunctionDirTbl = .data:0x80139B98; // type:object size:0x30 scope:local +overhead2DPos = .data:0x80139BC8; // type:object size:0x28 scope:local +mapViewMinZ = .data:0x80139BF0; // type:object size:0x24 scope:local +mapViewMaxZ = .data:0x80139C14; // type:object size:0x24 scope:local +mapViewMinX = .data:0x80139C38; // type:object size:0x24 scope:local +mapViewMaxX = .data:0x80139C5C; // type:object size:0x24 scope:local +overheadCamZoom = .data:0x80139C80; // type:object size:0x24 scope:local +overheadCamPosZ = .data:0x80139CA4; // type:object size:0x24 scope:local +spaceImgIdx = .data:0x80139CC8; // type:object size:0xC scope:local +spaceHiliteImgIdx = .data:0x80139CD4; // type:object size:0xC scope:local +jumptable_80139CE0 = .data:0x80139CE0; // type:object size:0x28 scope:local +hostMessTbl = .data:0x80139D08; // type:object size:0x24 scope:local +itemPriceTbl = .data:0x80139D2C; // type:object size:0x10 scope:local data:byte +shopMotTbl = .data:0x80139D3C; // type:object size:0x6C scope:local +lbl_80139DA8 = .data:0x80139DA8; // type:object size:0xA data:string +itemPrioTbl = .data:0x80139DB2; // type:object size:0x8C scope:local data:byte +rankItemGroupTbl = .data:0x80139E3E; // type:object size:0x18 scope:local data:byte +cursorPosTbl = .data:0x80139E58; // type:object size:0x30 scope:local data:float +comInputDraw1 = .data:0x80139E88; // type:object size:0xEE scope:local data:2byte +comInputDraw2 = .data:0x80139F76; // type:object size:0xBA scope:local data:2byte +comInputBall = .data:0x8013A030; // type:object size:0xCE scope:local data:2byte +lbl_8013A0FE = .data:0x8013A0FE; // type:object size:0xC data:string +lbl_8013A10A = .data:0x8013A10A; // type:object size:0xA data:string +lbl_8013A114 = .data:0x8013A114; // type:object size:0x9 data:string +lbl_8013A11D = .data:0x8013A11D; // type:object size:0xE data:string +lbl_8013A12B = .data:0x8013A12B; // type:object size:0xA data:string +lbl_8013A135 = .data:0x8013A135; // type:object size:0xB data:string +jumptable_8013A140 = .data:0x8013A140; // type:object size:0x24 scope:local +ticketObj = .data:0x8013A164; // type:object size:0x30 scope:local +ticketPrize = .data:0x8013A194; // type:object size:0xC scope:local +handLastPos = .data:0x8013A1A0; // type:object size:0xC scope:local data:4byte +loseSoundTbl = .data:0x8013A1AC; // type:object size:0x20 scope:local +loseMotTbl = .data:0x8013A1CC; // type:object size:0x20 scope:local +coinChgObj = .data:0x8013A1F0; // type:object size:0x10 scope:local +coinDigitMdl = .data:0x8013A200; // type:object size:0x28 scope:local +jumptable_8013A228 = .data:0x8013A228; // type:object size:0x1C scope:local +wheelSprTbl = .data:0x8013A248; // type:object size:0x28 scope:local +wheelSprPrio = .data:0x8013A270; // type:object size:0xE scope:local data:byte +wheelCharIconTbl = .data:0x8013A280; // type:object size:0x20 scope:local +lbl_8013A2A0 = .data:0x8013A2A0; // type:object size:0xF data:string +boardStarSndTbl = .data:0x8013A2B0; // type:object size:0x20 +hostMotTbl = .data:0x8013A2D0; // type:object size:0x48 scope:local +starEffParam = .data:0x8013A318; // type:object size:0x50 scope:local noreloc +diceObj = .data:0x8013A368; // type:object size:0xC scope:local data:4byte +diceDigitObj = .data:0x8013A374; // type:object size:0xC scope:local data:4byte +diceSndStatus = .data:0x8013A380; // type:object size:0xC scope:local +diceEffParam = .data:0x8013A38C; // type:object size:0x50 scope:local +diceDigitMdlTbl = .data:0x8013A3DC; // type:object size:0x28 scope:local +uiStatus = .data:0x8013A408; // type:object size:0x70 scope:local data:4byte +statusSprTbl = .data:0x8013A478; // type:object size:0x2C scope:local +statusSprPrioTbl = .data:0x8013A4A4; // type:object size:0x18 scope:local +statusHideOfsTbl = .data:0x8013A4BC; // type:object size:0x10 scope:local data:float +statusPosTbl = .data:0x8013A4CC; // type:object size:0x20 scope:local data:float +statusColTbl = .data:0x8013A4EC; // type:object size:0x10 scope:local +statusSprPosTbl = .data:0x8013A4FC; // type:object size:0x88 scope:local data:float +statusItemPosTbl = .data:0x8013A584; // type:object size:0x30 scope:local data:float +itemMdlTbl = .data:0x8013A5B4; // type:object size:0x38 scope:local +teamItemStatusPosTbl = .data:0x8013A5EC; // type:object size:0x18 scope:local data:float +coinMdl = .data:0x8013A608; // type:object size:0x14 scope:local +itemFuncTbl = .data:0x8013A620; // type:object size:0x38 scope:local +itemRestoreFuncTbl = .data:0x8013A658; // type:object size:0x38 scope:local +itemMdlTbl = .data:0x8013A690; // type:object size:0x38 scope:local +forceMoveSfxTbl = .data:0x8013A6C8; // type:object size:0x18 scope:local +callMotTbl = .data:0x8013A6E0; // type:object size:0x20 scope:local +lbl_8013A700 = .data:0x8013A700; // type:object size:0x13 data:string +lbl_8013A713 = .data:0x8013A713; // type:object size:0x13 data:string +lbl_8013A726 = .data:0x8013A726; // type:object size:0x13 data:string +lbl_8013A739 = .data:0x8013A739; // type:object size:0x13 data:string +lbl_8013A74C = .data:0x8013A74C; // type:object size:0x13 data:string +lbl_8013A75F = .data:0x8013A75F; // type:object size:0x13 data:string +lbl_8013A772 = .data:0x8013A772; // type:object size:0x13 data:string +lbl_8013A785 = .data:0x8013A785; // type:object size:0x13 data:string +callHookTbl = .data:0x8013A798; // type:object size:0x20 scope:local +callAttackMotTbl = .data:0x8013A7B8; // type:object size:0x18 scope:local +callAttackMotTbl2 = .data:0x8013A7D0; // type:object size:0x18 scope:local +suitMotTbl = .data:0x8013A7E8; // type:object size:0x40 scope:local +lbl_8013A828 = .data:0x8013A828; // type:object size:0xE data:string +booMotTbl = .data:0x8013A838; // type:object size:0xC scope:local +shadowPos = .data:0x8013A844; // type:object size:0xC scope:local +shadowTarget = .data:0x8013A850; // type:object size:0xC scope:local +shadowUp = .data:0x8013A85C; // type:object size:0xC scope:local +armUpMotTbl = .data:0x8013A868; // type:object size:0x20 scope:local +scareMotTbl = .data:0x8013A888; // type:object size:0x20 scope:local +impactMotTbl = .data:0x8013A8A8; // type:object size:0x20 scope:local +cameraDataTbl = .data:0x8013A8C8; // type:object size:0x134 scope:local +genieMotTbl = .data:0x8013A9FC; // type:object size:0x10 scope:local +scareFXTbl = .data:0x8013AA10; // type:object size:0x20 scope:local +jumptable_8013AA30 = .data:0x8013AA30; // type:object size:0x1C scope:local +lbl_8013AA4C = .data:0x8013AA4C; // type:object size:0xD data:string +battleCursorPosTbl = .data:0x8013AA60; // type:object size:0x18 scope:local data:float +bombFXTbl = .data:0x8013AA78; // type:object size:0x20 scope:local +battleSprPrioTbl = .data:0x8013AA98; // type:object size:0x16 scope:local +jumptable_8013AAB0 = .data:0x8013AAB0; // type:object size:0x24 scope:local +battleChanceTbl = .data:0x8013AAD4; // type:object size:0x3C scope:local +comPrizeMessTbl = .data:0x8013AB10; // type:object size:0x18 scope:local +booPlayerMotTbl = .data:0x8013AB28; // type:object size:0xC0 scope:local +booSfxTbl = .data:0x8013ABE8; // type:object size:0x80 scope:local +hostMess = .data:0x8013AC68; // type:object size:0x18 scope:local +lbl_8013AC80 = .data:0x8013AC80; // type:object size:0xC data:string +ballBooMdl = .data:0x8013AC8C; // type:object size:0x18 scope:local +jumptable_8013ACA4 = .data:0x8013ACA4; // type:object size:0x20 scope:local +stealSuccessTbl = .data:0x8013ACC4; // type:object size:0x24 scope:local +stealTbl = .data:0x8013ACE8; // type:object size:0x12 scope:local +mgSetupSprTbl = .data:0x8013AD00; // type:object size:0x34 scope:local +statusLayout4P = .data:0x8013AD34; // type:object size:0x30 scope:local data:float +statusLayout1Vs3 = .data:0x8013AD64; // type:object size:0x30 scope:local data:float +statusLayout2Vs2 = .data:0x8013AD94; // type:object size:0x30 scope:local data:float +luckyMessTbl = .data:0x8013ADC4; // type:object size:0x24 scope:local +jumptable_8013ADE8 = .data:0x8013ADE8; // type:object size:0x20 scope:local +hiliteYTbl = .data:0x8013AE08; // type:object size:0x10 scope:local +hiliteColTbl = .data:0x8013AE28; // type:object size:0xC scope:local +hostMesTbl = .data:0x8013AE38; // type:object size:0x90 scope:local +houseMdlTbl = .data:0x8013AEC8; // type:object size:0x30 scope:local +booMotTbl = .data:0x8013AEF8; // type:object size:0xC scope:local +houseMotTbl = .data:0x8013AF04; // type:object size:0x6C scope:local +playerStartObj = .data:0x8013AF70; // type:object size:0x10 scope:local data:4byte +hitFX = .data:0x8013AF80; // type:object size:0x10 scope:local +startMesTbl = .data:0x8013AF90; // type:object size:0xB4 scope:local +logoSprTbl = .data:0x8013B044; // type:object size:0x24 scope:local +jumptable_8013B068 = .data:0x8013B068; // type:object size:0x1C scope:local +digitMdlTbl = .data:0x8013B084; // type:object size:0x24 scope:local +playerOrderMesTbl = .data:0x8013B0A8; // type:object size:0xC scope:local +jumptable_8013B0B4 = .data:0x8013B0B4; // type:object size:0x24 scope:local +hostMotTbl = .data:0x8013B0D8; // type:object size:0x120 scope:local +messBaseTbl = .data:0x8013B1F8; // type:object size:0x24 scope:local +playerOfsTbl = .data:0x8013B21C; // type:object size:0x18 scope:local +plateObjNameTbl = .data:0x8013B234; // type:object size:0x10 scope:local +hiliteObjNameTbl = .data:0x8013B244; // type:object size:0x10 scope:local +faceObjNameTbl = .data:0x8013B254; // type:object size:0x10 scope:local +resultRankFX12Tbl = .data:0x8013B264; // type:object size:0x20 scope:local +resultRankFX3Tbl = .data:0x8013B284; // type:object size:0x20 scope:local +resultRankFX4Tbl = .data:0x8013B2A4; // type:object size:0x20 scope:local +impactFXTbl = .data:0x8013B2C4; // type:object size:0x20 scope:local +lotteryWheelMdlTbl = .data:0x8013B2E4; // type:object size:0x20 scope:local +teamSprPrioTbl = .data:0x8013B304; // type:object size:0x1E scope:local +teamSprTbl = .data:0x8013B324; // type:object size:0x34 scope:local +teamSprPosTbl = .data:0x8013B358; // type:object size:0x78 scope:local +teamCharSprTbl = .data:0x8013B3D0; // type:object size:0x20 scope:local +boxModelID = .data:0x8013B3F0; // type:object size:0x10 scope:local data:2byte +boxPosTbl = .data:0x8013B400; // type:object size:0x40 scope:local data:float +padConfigPosTbl = .data:0x8013B440; // type:object size:0x20 scope:local +boardLogoTbl = .data:0x8013B460; // type:object size:0x24 scope:local +turnDigitPosTbl = .data:0x8013B484; // type:object size:0x10 scope:local +boxMdlTbl = .data:0x8013B494; // type:object size:0x20 scope:local +jumptable_8013B4B4 = .data:0x8013B4B4; // type:object size:0x20 scope:local +jumptable_8013B4D4 = .data:0x8013B4D4; // type:object size:0x20 scope:local +jumptable_8013B4F4 = .data:0x8013B4F4; // type:object size:0x20 scope:local +lbl_8013B518 = .data:0x8013B518; // type:object size:0x24 data:string +lbl_8013B53C = .data:0x8013B53C; // type:object size:0x24 data:string +@82 = .data:0x8013B560; // type:object size:0x1E scope:local data:string +lbl_8013B580 = .data:0x8013B580; // type:object size:0x16 scope:local data:string +lbl_8013B598 = .data:0x8013B598; // type:object size:0xC scope:local data:string +lbl_8013B5A4 = .data:0x8013B5A4; // type:object size:0x9 scope:local data:string +lbl_8013B5B4 = .data:0x8013B5B0; // type:object size:0x10 scope:local data:string +lbl_8013B5C0 = .data:0x8013B5C0; // type:object size:0xB scope:local data:string +lbl_8013B5CC = .data:0x8013B5CC; // type:object size:0xE scope:local data:string +lbl_8013B5DC = .data:0x8013B5DC; // type:object size:0xD scope:local data:string +lbl_8013B5EC = .data:0x8013B5EC; // type:object size:0xD scope:local data:string +lbl_8013B5FC = .data:0x8013B5FC; // type:object size:0xD scope:local data:string +lbl_8013B60C = .data:0x8013B60C; // type:object size:0x12 scope:local data:string +lbl_8013B620 = .data:0x8013B620; // type:object size:0xE scope:local data:string +lbl_8013B630 = .data:0x8013B630; // type:object size:0x15 scope:local data:string +__OSExceptionLocations = .data:0x8013B648; // type:object size:0x3C scope:local +lbl_8013B720 = .data:0x8013B720; // type:object size:0x24 scope:local data:string +lbl_8013B744 = .data:0x8013B744; // type:object size:0x37 scope:local data:string +lbl_8013B77C = .data:0x8013B77C; // type:object size:0x28 scope:local data:string +lbl_8013B7A4 = .data:0x8013B7A4; // type:object size:0x4F scope:local data:string +lbl_8013B7F4 = .data:0x8013B7F4; // type:object size:0x3E scope:local data:string +lbl_8013B834 = .data:0x8013B834; // type:object size:0x37 scope:local data:string +lbl_8013B86C = .data:0x8013B86C; // type:object size:0x49 scope:local data:string +lbl_8013B8B8 = .data:0x8013B8B8; // type:object size:0x33 scope:local data:string +lbl_8013B8EC = .data:0x8013B8EC; // type:object size:0x3D scope:local data:string +lbl_8013B92C = .data:0x8013B92C; // type:object size:0x39 scope:local data:string +lbl_8013B968 = .data:0x8013B968; // type:object size:0x45 scope:local data:string +lbl_8013B9B0 = .data:0x8013B9B0; // type:object size:0x5F scope:local data:string +lbl_8013BA10 = .data:0x8013BA10; // type:object size:0x2C scope:local data:string +lbl_8013BA3C = .data:0x8013BA3C; // type:object size:0x12 scope:local data:string +lbl_8013BA50 = .data:0x8013BA50; // type:object size:0x12 scope:local data:string +lbl_8013BA64 = .data:0x8013BA64; // type:object size:0x1A scope:local data:string +lbl_8013BA80 = .data:0x8013BA80; // type:object size:0x13 scope:local data:string +lbl_8013BA94 = .data:0x8013BA94; // type:object size:0x10 scope:local data:string +lbl_8013BAA4 = .data:0x8013BAA4; // type:object size:0xE scope:local data:string +DSPInitCode = .data:0x8013BAB8; // type:object size:0x80 scope:local +@69 = .data:0x8013BB38; // type:object size:0x29 scope:local data:string +lbl_8013BB64 = .data:0x8013BB64; // type:object size:0x18 scope:local data:string +lbl_8013BB7C = .data:0x8013BB7C; // type:object size:0x1B scope:local data:string +lbl_8013BB98 = .data:0x8013BB98; // type:object size:0x30 scope:local data:string +lbl_8013BBC8 = .data:0x8013BBC8; // type:object size:0x3C scope:local data:string +lbl_8013BC04 = .data:0x8013BC04; // type:object size:0x37 scope:local data:string +lbl_8013BC3D = .data:0x8013BC3D; // type:object size:0x3E scope:local data:string +lbl_8013BC7C = .data:0x8013BC7C; // type:object size:0x29 scope:local data:string +lbl_8013BCA8 = .data:0x8013BCA8; // type:object size:0x1D scope:local data:string +lbl_8013BCC8 = .data:0x8013BCC8; // type:object size:0x19 scope:local data:string +lbl_8013BCE4 = .data:0x8013BCE4; // type:object size:0x19 scope:local data:string +lbl_8013BD00 = .data:0x8013BD00; // type:object size:0x19 scope:local data:string +lbl_8013BD1C = .data:0x8013BD1C; // type:object size:0x16 scope:local data:string +lbl_8013BD34 = .data:0x8013BD34; // type:object size:0x2E scope:local data:string +lbl_8013BD68 = .data:0x8013BD68; // type:object size:0x44 scope:local data:string +lbl_8013BDAC = .data:0x8013BDAC; // type:object size:0x30 scope:local data:string +lbl_8013BDDC = .data:0x8013BDDC; // type:object size:0x2F scope:local data:string +lbl_8013BE0C = .data:0x8013BE0C; // type:object size:0x2F scope:local data:string +lbl_8013BE3C = .data:0x8013BE3C; // type:object size:0x11 scope:local data:string +lbl_8013BE50 = .data:0x8013BE50; // type:object size:0x21 scope:local data:string +lbl_8013BE74 = .data:0x8013BE74; // type:object size:0x12 scope:local data:string +lbl_8013BE88 = .data:0x8013BE88; // type:object size:0x19 scope:local data:string +lbl_8013BEA4 = .data:0x8013BEA4; // type:object size:0x12 scope:local data:string +lbl_8013BEB8 = .data:0x8013BEB8; // type:object size:0x1D scope:local data:string +lbl_8013BED8 = .data:0x8013BED8; // type:object size:0x26 scope:local data:string +lbl_8013BF00 = .data:0x8013BF00; // type:object size:0x1C scope:local data:string +@76 = .data:0x8013BF1C; // type:object size:0x23 scope:local data:string +@10 = .data:0x8013BF40; // type:object size:0x16 scope:local data:string +lbl_8013BF58 = .data:0x8013BF58; // type:object size:0x26 scope:local data:string +lbl_8013BF80 = .data:0x8013BF80; // type:object size:0x1C scope:local data:string +lbl_8013BF9C = .data:0x8013BF9C; // type:object size:0x1D scope:local data:string +lbl_8013BFBC = .data:0x8013BFBC; // type:object size:0x17 scope:local data:string +lbl_8013BFD4 = .data:0x8013BFD4; // type:object size:0x31 scope:local data:string +lbl_8013C008 = .data:0x8013C008; // type:object size:0x10 scope:local data:string +lbl_8013C018 = .data:0x8013C018; // type:object size:0x60 scope:local data:string +lbl_8013C078 = .data:0x8013C078; // type:object size:0x4C scope:local data:string +lbl_8013C0C4 = .data:0x8013C0C4; // type:object size:0x62 scope:local data:string +lbl_8013C128 = .data:0x8013C128; // type:object size:0x60 scope:local data:string +lbl_8013C188 = .data:0x8013C188; // type:object size:0x1F scope:local data:string +lbl_8013C1A8 = .data:0x8013C1A8; // type:object size:0x1F scope:local data:string +lbl_8013C1C8 = .data:0x8013C1C8; // type:object size:0x1B scope:local data:string +lbl_8013C1E4 = .data:0x8013C1E4; // type:object size:0x35 scope:local data:string +@87 = .data:0x8013C21C; // type:object size:0x40 scope:local +InterruptPrioTable = .data:0x8013C260; // type:object size:0x2C scope:local data:4byte +lbl_8013C290 = .data:0x8013C290; // type:object size:0x25 scope:local data:string +lbl_8013C2B8 = .data:0x8013C2B8; // type:object size:0x27 scope:local data:string +ResetFunctionInfo = .data:0x8013C2E0; // type:object size:0x10 scope:local +lbl_8013C2F0 = .data:0x8013C2F0; // type:object size:0x12 scope:local data:string +lbl_8013C304 = .data:0x8013C304; // type:object size:0x11 scope:local data:string +lbl_8013C318 = .data:0x8013C318; // type:object size:0xD scope:local data:string +lbl_8013C328 = .data:0x8013C328; // type:object size:0x11 scope:local data:string +lbl_8013C33C = .data:0x8013C33C; // type:object size:0x11 scope:local data:string +lbl_8013C350 = .data:0x8013C350; // type:object size:0x11 scope:local data:string +YearDays = .data:0x8013C368; // type:object size:0x30 scope:local +LeapYearDays = .data:0x8013C398; // type:object size:0x30 scope:local +lbl_8013C3C8 = .data:0x8013C3C8; // type:object size:0x18 scope:local data:string +lbl_8013C3E0 = .data:0x8013C3E0; // type:object size:0xC8 scope:local data:string +lbl_8013C4A8 = .data:0x8013C4A8; // type:object size:0x38 scope:local +lbl_8013C4E0 = .data:0x8013C4E0; // type:object size:0x34 scope:local data:string +lbl_8013C514 = .data:0x8013C514; // type:object size:0x34 scope:local +@13 = .data:0x8013C548; // type:object size:0x15 scope:local data:string +@293 = .data:0x8013C594; // type:object size:0x20 scope:local +jumptable_8013C5B4 = .data:0x8013C5B4; // type:object size:0x40 scope:local +jumptable_8013C5F4 = .data:0x8013C5F4; // type:object size:0x34 scope:local +jumptable_8013C628 = .data:0x8013C628; // type:object size:0x34 scope:local +ErrorTable = .data:0x8013C660; // type:object size:0x48 scope:local data:4byte +@36 = .data:0x8013C6A8; // type:object size:0x1A scope:local data:string +timing = .data:0x8013C718; // type:object size:0x130 scope:local +taps = .data:0x8013C848; // type:object size:0x32 scope:local +jumptable_8013C87C = .data:0x8013C87C; // type:object size:0x58 scope:local +lbl_8013C8D4 = .data:0x8013C8D4; // type:object size:0x29 scope:local data:string +lbl_8013C900 = .data:0x8013C900; // type:object size:0x29 scope:local data:string +lbl_8013C92C = .data:0x8013C92C; // type:object size:0x29 scope:local data:string +lbl_8013C958 = .data:0x8013C958; // type:object size:0x29 scope:local data:string +lbl_8013C984 = .data:0x8013C984; // type:object size:0x29 scope:local data:string +lbl_8013C9B0 = .data:0x8013C9B0; // type:object size:0x29 scope:local data:string +DEMOFontBitmap = .data:0x8013C9E0; // type:object size:0xC00 align:32 +lbl_8013D5E0 = .data:0x8013D5E0; // type:object size:0xC scope:local data:string +lbl_8013D5EC = .data:0x8013D5EC; // type:object size:0x26 scope:local data:string +jumptable_8013D614 = .data:0x8013D614; // type:object size:0x28 scope:local +jumptable_8013D698 = .data:0x8013D698; // type:object size:0x28 scope:local +jumptable_8013D6C0 = .data:0x8013D6C0; // type:object size:0x28 scope:local +jumptable_8013D6E8 = .data:0x8013D6E8; // type:object size:0x28 scope:local +jumptable_8013D710 = .data:0x8013D710; // type:object size:0x28 scope:local +ResetFunctionInfo = .data:0x8013D738; // type:object size:0x10 +lbl_8013D748 = .data:0x8013D748; // type:object size:0x1E scope:local data:string +lbl_8013D768 = .data:0x8013D768; // type:object size:0xC scope:local data:string +lbl_8013D774 = .data:0x8013D774; // type:object size:0x9 scope:local data:string +lbl_8013D780 = .data:0x8013D780; // type:object size:0x1D scope:local data:string +lbl_8013D7A0 = .data:0x8013D7A0; // type:object size:0x2D scope:local data:string +lbl_8013D7D0 = .data:0x8013D7D0; // type:object size:0x2D scope:local data:string +lbl_8013D800 = .data:0x8013D800; // type:object size:0x2D scope:local data:string +lbl_8013D830 = .data:0x8013D830; // type:object size:0x2D scope:local data:string +lbl_8013D860 = .data:0x8013D860; // type:object size:0x2D scope:local data:string +lbl_8013D890 = .data:0x8013D890; // type:object size:0x2B scope:local data:string +jumptable_8013D8C0 = .data:0x8013D8C0; // type:object size:0x68 scope:local +jumptable_8013D928 = .data:0x8013D928; // type:object size:0x44 scope:local +jumptable_8013D96C = .data:0x8013D96C; // type:object size:0x1C scope:local +jumptable_8013D988 = .data:0x8013D988; // type:object size:0x54 scope:local +GXNtsc480IntDf = .data:0x8013D9E0; // type:object size:0x3C +GXNtsc480Prog = .data:0x8013DA1C; // type:object size:0x3C +GXMpal480IntDf = .data:0x8013DA58; // type:object size:0x3C +GXPal528IntDf = .data:0x8013DA94; // type:object size:0x3C +GXEurgb60Hz480IntDf = .data:0x8013DAD0; // type:object size:0x3C +jumptable_8013DB10 = .data:0x8013DB10; // type:object size:0x1C scope:local +jumptable_8013DB30 = .data:0x8013DB30; // type:object size:0xF4 scope:local +jumptable_8013DC24 = .data:0x8013DC24; // type:object size:0xF4 scope:local +jumptable_8013DD18 = .data:0x8013DD18; // type:object size:0x3C scope:local +c2r$364 = .data:0x8013DD58; // type:object size:0x24 scope:local +p2f$194 = .data:0x8013DD80; // type:object size:0x20 scope:local +jumptable_8013DDA0 = .data:0x8013DDA0; // type:object size:0x5C scope:local +jumptable_8013DDFC = .data:0x8013DDFC; // type:object size:0x90 scope:local +jumptable_8013DE8C = .data:0x8013DE8C; // type:object size:0x5C scope:local +ResetFunctionInfo = .data:0x8013DEE8; // type:object size:0x10 scope:local +CardData = .data:0x8013DF00; // type:object size:0x160 scope:local align:32 +SectorSizeTable = .data:0x8013E060; // type:object size:0x20 scope:local +LatencyTable = .data:0x8013E080; // type:object size:0x20 scope:local +Si = .data:0x8013E0A0; // type:object size:0x14 scope:local data:4byte +Type = .data:0x8013E0B4; // type:object size:0x10 scope:local +@464 = .data:0x8013E0C4; // type:object size:0xC scope:local data:string +lbl_8013E0D0 = .data:0x8013E0D0; // type:object size:0xF scope:local data:string +lbl_8013E0E0 = .data:0x8013E0E0; // type:object size:0xF scope:local data:string +lbl_8013E0F0 = .data:0x8013E0F0; // type:object size:0xD scope:local data:string +lbl_8013E100 = .data:0x8013E100; // type:object size:0xA scope:local data:string +lbl_8013E10C = .data:0x8013E10C; // type:object size:0x10 scope:local data:string +lbl_8013E11C = .data:0x8013E11C; // type:object size:0x14 scope:local data:string +lbl_8013E130 = .data:0x8013E130; // type:object size:0x12 scope:local data:string +lbl_8013E144 = .data:0x8013E144; // type:object size:0x14 scope:local data:string +lbl_8013E158 = .data:0x8013E158; // type:object size:0x9 scope:local data:string +lbl_8013E164 = .data:0x8013E164; // type:object size:0x9 scope:local data:string +XYNTSC = .data:0x8013E170; // type:object size:0x30 scope:local +XYPAL = .data:0x8013E1A0; // type:object size:0x30 scope:local +__vt__Q23std9exception = .data:0x8013E208; // type:object size:0x10 scope:weak +jumptable_8013E218 = .data:0x8013E218; // type:object size:0x44 scope:local +jumptable_8013E25C = .data:0x8013E25C; // type:object size:0x44 scope:local +jumptable_8013E2A0 = .data:0x8013E2A0; // type:object size:0x44 scope:local +lbl_8013E2E4 = .data:0x8013E2E4; // type:object size:0xC +__vt__Q23std13bad_exception = .data:0x8013E2F0; // type:object size:0x10 scope:weak +__files = .data:0x8013E300; // type:object size:0x140 scope:global +jumptable_8013E440 = .data:0x8013E440; // type:object size:0x124 scope:local +__ctype_map = .data:0x8013E568; // type:object size:0x100 +__lower_map = .data:0x8013E668; // type:object size:0x100 +@1249 = .data:0x8013E768; // type:object size:0x84 scope:local +jumptable_8013E7EC = .data:0x8013E7EC; // type:object size:0x84 scope:local +jumptable_8013E870 = .data:0x8013E870; // type:object size:0xE0 scope:local +jumptable_8013E950 = .data:0x8013E950; // type:object size:0x44 scope:local +gTRKDispatchTable = .data:0x8013E998; // type:object size:0x84 +jumptable_8013EA20 = .data:0x8013EA20; // type:object size:0x1C scope:local +jumptable_8013EA3C = .data:0x8013EA3C; // type:object size:0x1C scope:local +gTRKRestoreFlags = .data:0x8013EA58; // type:object size:0x9 scope:global data:byte +gTRKExceptionStatus = .data:0x8013EA64; // type:object size:0x10 scope:local data:4byte +gTRKStepStatus = .data:0x8013EA74; // type:object size:0x14 data:4byte +TRK_ISR_OFFSETS = .data:0x8013EA88; // type:object size:0x3C scope:local data:4byte +gDBCommTable = .data:0x8013EAC8; // type:object size:0x1C scope:global data:4byte +jumptable_8013EAE8 = .data:0x8013EAE8; // type:object size:0x50 scope:local +kf$703 = .data:0x8013EB38; // type:object size:0x1C scope:local +midi2TimeTab = .data:0x8013EB54; // type:object size:0x204 scope:local +mask$1265 = .data:0x8013ED58; // type:object size:0x20 scope:local +dirty$1266 = .data:0x8013ED78; // type:object size:0x10 scope:local +mask$1285 = .data:0x8013ED88; // type:object size:0x20 scope:local +dirty$1286 = .data:0x8013EDA8; // type:object size:0x10 scope:local +jumptable_8013EDB8 = .data:0x8013EDB8; // type:object size:0x1C8 scope:local +toneup_tab = .data:0x8013EF80; // type:object size:0x200 scope:local +tonedown_tab = .data:0x8013F180; // type:object size:0x200 scope:local +dspAttenuationTab = .data:0x8013F380; // type:object size:0x184 +dspScale2IndexTab = .data:0x8013F504; // type:object size:0x400 +dspDLSVolTab = .data:0x8013F904; // type:object size:0x204 +dspSRCCycles = .data:0x8013FB08; // type:object size:0x18 +musyx_vol_tab = .data:0x8013FB20; // type:object size:0x204 scope:local +pan_tab = .data:0x8013FD24; // type:object size:0x10 scope:local +pan_tab_dpl2 = .data:0x8013FD34; // type:object size:0x10 scope:local +dirtyMask$1062 = .data:0x8013FD48; // type:object size:0x10 scope:local +dirtyMask$1075 = .data:0x8013FD58; // type:object size:0x10 scope:local +jumptable_8013FD68 = .data:0x8013FD68; // type:object size:0x24 scope:local +jumptable_8013FD8C = .data:0x8013FD8C; // type:object size:0x24 scope:local +jumptable_8013FDB0 = .data:0x8013FDB0; // type:object size:0x24 scope:local +sndSintab = .data:0x8013FDD8; // type:object size:0x800 +dspSlave = .data:0x801405E0; // type:object size:0x19E0 align:32 +lens$301 = .data:0x80141FC0; // type:object size:0x10 scope:local +lens$301 = .data:0x80141FD0; // type:object size:0x20 scope:local +rsmpTab12khz = .data:0x80141FF0; // type:object size:0x800 scope:local +padStatErrOld = .bss:0x80142800; // type:object size:0x10 scope:local +rumbleData = .bss:0x80142810; // type:object size:0x20 scope:local +ReadDataStat = .bss:0x80142840; // type:object size:0x2E00 scope:local align:32 data:4byte +TextBuffer = .bss:0x80145640; // type:object size:0x400 +rmodeobj = .bss:0x80145A40; // type:object size:0x40 scope:local +HeapTbl = .bss:0x80145A80; // type:object size:0x14 scope:local +strline = .bss:0x80145A98; // type:object size:0x6800 scope:local +pfStrBuf = .bss:0x8014C298; // type:object size:0x100 scope:local data:byte +processjmpbuf = .bss:0x8014C398; // type:object size:0xF8 align:8 +HuSprData = .bss:0x8014C490; // type:object size:0x9600 +HuSprGrpData = .bss:0x80155A90; // type:object size:0x5400 data:2byte +HuSprOrder = .bss:0x8015AE90; // type:object size:0x1800 +bmpNoCC = .bss:0x8015C690; // type:object size:0x20 scope:local +HuSprLayerDrawNo = .bss:0x8015C6B0; // type:object size:0x10 scope:local +Model = .bss:0x8015C6C0; // type:object size:0x80 +head = .bss:0x8015C740; // type:object size:0xB0 +rgba = .bss:0x8015C7F0; // type:object size:0x190 +lbl_8015C980 = .bss:0x8015C980; // type:object size:0x300 scope:local data:byte +DrawObjData = .bss:0x8015CC80; // type:object size:0x9000 scope:local +BmpPtrBak = .bss:0x80165C80; // type:object size:0x20 scope:local data:4byte +MTXBuf = .bss:0x80165CA0; // type:object size:0x1200 scope:local +scaleBuf = .bss:0x80166EA0; // type:object size:0x480 scope:local data:4byte +texCol = .bss:0x80167320; // type:object size:0x40 scope:local data:byte +hiliteMtx = .bss:0x80167360; // type:object size:0x30 scope:local +DrawObjNum = .bss:0x80167390; // type:object size:0x400 scope:local +NBTB = .bss:0x80167790; // type:object size:0xC scope:local data:float +NBTT = .bss:0x8016779C; // type:object size:0xC scope:local data:float +PGMaxPos = .bss:0x801677A8; // type:object size:0xC data:float +PGMinPos = .bss:0x801677B4; // type:object size:0xC data:float +Hu3DData = .bss:0x801677C0; // type:object size:0x24800 data:byte +Hu3DCamera = .bss:0x8018BFC0; // type:object size:0x580 data:float +layerNum = .bss:0x8018C540; // type:object size:0x10 scope:local data:2byte +layerHook = .bss:0x8018C550; // type:object size:0x20 scope:local +reflectAnim = .bss:0x8018C570; // type:object size:0x14 data:4byte +hiliteAnim = .bss:0x8018C584; // type:object size:0x10 data:4byte +Hu3DProjection = .bss:0x8018C594; // type:object size:0x260 data:byte +Hu3DShadowData = .bss:0x8018C7F4; // type:object size:0x98 data:byte +FogData = .bss:0x8018C88C; // type:object size:0x10 data:4byte +Hu3DCameraMtx = .bss:0x8018C89C; // type:object size:0x30 +Hu3DCameraMtxXPose = .bss:0x8018C8CC; // type:object size:0x30 +Hu3DGlobalLight = .bss:0x8018C8FC; // type:object size:0x220 data:2byte +Hu3DLocalLight = .bss:0x8018CB1C; // type:object size:0x880 data:2byte +lbl_8018D39C = .bss:0x8018D39C; // type:object size:0x30 +Hu3DMotion = .bss:0x8018D3D0; // type:object size:0x800 data:2byte +Hu3DTexAnimData = .bss:0x8018DBD0; // type:object size:0x1400 data:2byte +Hu3DTexScrData = .bss:0x8018EFD0; // type:object size:0x6C0 data:2byte +parManProc = .bss:0x8018F690; // type:object size:0x100 scope:local +perf = .bss:0x8018F790; // type:object size:0x370 scope:local +Ssw = .bss:0x8018FB00; // type:object size:0x38 scope:local +omovlhis = .bss:0x8018FB38; // type:object size:0xC0 scope:local +XFB_Geometry = .bss:0x8018FBF8; // type:object size:0x18 scope:local +GWPlayerCfg = .bss:0x8018FC10; // type:object size:0x28 +GWPlayer = .bss:0x8018FC38; // type:object size:0xC0 data:byte +GWSystem = .bss:0x8018FCF8; // type:object size:0xDC data:byte +GWGameStat = .bss:0x8018FDD8; // type:object size:0x118 +GWGameStatDefault = .bss:0x8018FEF0; // type:object size:0x118 +CRot = .bss:0x80190008; // type:object size:0xC data:float +Center = .bss:0x80190014; // type:object size:0xC data:float +CRotM = .bss:0x80190020; // type:object size:0xC0 +CenterM = .bss:0x801900E0; // type:object size:0xC0 +CZoomM = .bss:0x801901A0; // type:object size:0x40 +omDLLinfoTbl = .bss:0x801901E0; // type:object size:0x50 +sndFXBuf = .bss:0x80190230; // type:object size:0x200 scope:local +charVoiceGroupStat = .bss:0x80190430; // type:object size:0x20 scope:local +seqWorkData = .bss:0x80190450; // type:object size:0x400 scope:local data:4byte +winnerNameW = .bss:0x80190850; // type:object size:0x10 scope:local data:2byte +esprite = .bss:0x80190860; // type:object size:0x600 data:2byte +espanim = .bss:0x80190E60; // type:object size:0x1200 data:4byte +lbl_80192060 = .bss:0x80192060; // type:object size:0x100 +lbl_80192160 = .bss:0x80192160; // type:object size:0x100 +lbl_80192260 = .bss:0x80192260; // type:object size:0x100 +wipeData = .bss:0x80192360; // type:object size:0x4C data:4byte +winData = .bss:0x801923C0; // type:object size:0x3000 align:32 data:byte +winKey = .bss:0x801953C0; // type:object size:0x10 +winComKeyBuf = .bss:0x801953D0; // type:object size:0x1400 +ARInfo = .bss:0x801967E0; // type:object size:0x400 data:byte +arqReq = .bss:0x80196BE0; // type:object size:0x20 scope:local +ARQueBuf = .bss:0x80196C00; // type:object size:0x280 scope:local +preLoadBuf = .bss:0x80196E80; // type:object size:0x40 scope:local align:32 +charInstance = .bss:0x80196EC0; // type:object size:0x640 scope:local +effectMdl = .bss:0x80197500; // type:object size:0x10 scope:local data:2byte +particleData = .bss:0x80197510; // type:object size:0x20 scope:local +itemHookProcess = .bss:0x80197530; // type:object size:0x80 scope:local +lbl_801975B0 = .bss:0x801975B0; // type:object size:0x10 scope:local +lbl_801975C0 = .bss:0x801975C0; // type:object size:0x90 scope:local +MapObject = .bss:0x80197650; // type:object size:0x40 +MapMT = .bss:0x80197690; // type:object size:0x30 +MapMTR = .bss:0x801976C0; // type:object size:0x30 +MTRAdd = .bss:0x801976F0; // type:object size:0xC scope:local data:float +FieldVec = .bss:0x801976FC; // type:object size:0xC scope:local data:float +ColisionIdx = .bss:0x80197708; // type:object size:0x78 +HitFaceVec = .bss:0x80197780; // type:object size:0x180 +OldXYZ = .bss:0x80197900; // type:object size:0xC scope:local +HitFace = .bss:0x8019790C; // type:object size:0x180 +CharObject = .bss:0x80197A8C; // type:object size:0x30 +SimpleControl = .bss:0x80197AC0; // type:object size:0x19C +SoundBuffer = .bss:0x80197C60; // type:object size:0x500 scope:local align:32 +WorkBuffer = .bss:0x80198160; // type:object size:0x40 scope:local align:32 +THPFileName = .bss:0x801981A0; // type:object size:0x40 scope:local +mgGameStatBackup = .bss:0x801981E0; // type:object size:0x118 +mgIndexList = .bss:0x801982F8; // type:object size:0x100 +mgTicTacToeGrid = .bss:0x801983F8; // type:object size:0x12 +_Sys_Flag = .bss:0x80198410; // type:object size:0x10 +curFileInfo = .bss:0x80198420; // type:object size:0x20 +saveBuf = .bss:0x80198440; // type:object size:0x4000 align:32 +ToeMessageQueue = .bss:0x8019C440; // type:object size:0x20 scope:local +padStat$377 = .bss:0x8019C460; // type:object size:0x30 scope:local +ToeMessageArray = .bss:0x8019C490; // type:object size:0x40 scope:local +ToeThread = .bss:0x8019C4D0; // type:object size:0x310 scope:local align:8 +ToeThreadStack = .bss:0x8019C7E0; // type:object size:0x1000 scope:local +boardCamera = .bss:0x8019D7E0; // type:object size:0xC4 data:byte +cameraBackup = .bss:0x8019D8A4; // type:object size:0xC4 scope:local +preTurnHook = .bss:0x8019D968; // type:object size:0x10 scope:local +postTurnHook = .bss:0x8019D978; // type:object size:0x10 scope:local +playerMatCopy = .bss:0x8019D988; // type:object size:0x10 scope:local +winInsertMesTbl = .bss:0x8019D998; // type:object size:0x20 scope:local +choiceDisableTbl = .bss:0x8019D9B8; // type:object size:0x40 scope:local +focusPos = .bss:0x8019D9F8; // type:object size:0xC scope:local data:float +focusPosTarget = .bss:0x8019DA04; // type:object size:0xC scope:local data:4byte +spaceData = .bss:0x8019DA10; // type:object size:0x7000 scope:local data:float +boardSpaceStarTbl = .bss:0x801A4A10; // type:object size:0x10 +spaceTex = .bss:0x801A4A20; // type:object size:0x20 scope:local +spaceHiliteTex = .bss:0x801A4A40; // type:object size:0x20 scope:local +activeItemTbl = .bss:0x801A4A60; // type:object size:0x14 scope:local data:4byte +choiceEnableTbl = .bss:0x801A4A74; // type:object size:0x18 scope:local +lotteryMdl = .bss:0x801A4A90; // type:object size:0xC scope:local data:2byte +coinF = .bss:0x801A4A9C; // type:object size:0xC scope:local +coinMdl = .bss:0x801A4AA8; // type:object size:0x14 scope:local data:2byte +warpPos = .bss:0x801A4AC0; // type:object size:0x10 scope:local +starCharPos = .bss:0x801A4AD0; // type:object size:0xC scope:local data:4byte +tutorialRoll = .bss:0x801A4AE0; // type:object size:0xC scope:local +itemMdlId = .bss:0x801A4AF0; // type:object size:0x18 scope:local +pickerPos = .bss:0x801A4B08; // type:object size:0x30 scope:local +itemPosTemp = .bss:0x801A4B38; // type:object size:0x48 scope:local +coinF = .bss:0x801A4B80; // type:object size:0x28 scope:local +booBallPos = .bss:0x801A4BA8; // type:object size:0xC scope:local data:4byte +booBallScale = .bss:0x801A4BB4; // type:object size:0xC scope:local data:float +booCamPos = .bss:0x801A4BC0; // type:object size:0xC scope:local data:float +booCamTarget = .bss:0x801A4BCC; // type:object size:0xC scope:local data:float +booCamUp = .bss:0x801A4BD8; // type:object size:0xC scope:local data:float +playerPosTemp = .bss:0x801A4BE8; // type:object size:0x30 scope:local +bowserEvent = .bss:0x801A4C18; // type:object size:0x16 scope:local +battleMGList = .bss:0x801A4C30; // type:object size:0x10 scope:local data:2byte +camPosFortune = .bss:0x801A4C40; // type:object size:0xC scope:local data:4byte +camTargetFortune = .bss:0x801A4C4C; // type:object size:0xC scope:local data:float +activeMG = .bss:0x801A4C58; // type:object size:0x20 scope:local data:2byte +mgListAll = .bss:0x801A4C78; // type:object size:0x40 scope:local data:2byte +mgPlay4P = .bss:0x801A4CB8; // type:object size:0x10 scope:local +houseMdl = .bss:0x801A4CC8; // type:object size:0xC scope:local data:2byte +spacePos = .bss:0x801A4CD8; // type:object size:0xC scope:local data:float +camStartFocusPos = .bss:0x801A4CE4; // type:object size:0xC scope:local data:float +spacePos = .bss:0x801A4CF0; // type:object size:0xC scope:local data:float +focusPos = .bss:0x801A4CFC; // type:object size:0xC scope:local data:float +hostPos = .bss:0x801A4D08; // type:object size:0xC scope:local +hostMot = .bss:0x801A4D14; // type:object size:0x10 scope:local data:2byte +lotteryTicketObj = .bss:0x801A4D24; // type:object size:0x14 scope:local data:4byte +boxRot = .bss:0x801A4D38; // type:object size:0x20 scope:local +padBoxPos = .bss:0x801A4D58; // type:object size:0xC scope:local data:float +pathNodeData = .bss:0x801A4D68; // type:object size:0x500 scope:local data:byte +candidateNodes = .bss:0x801A5268; // type:object size:0x40 scope:local +startPathSpaceSearch = .bss:0x801A52A8; // type:object size:0x20 scope:local +startPathSpace = .bss:0x801A52C8; // type:object size:0x20 scope:local +boardTutorialData = .bss:0x801A52E8; // type:object size:0x10 data:4byte +DriveInfo = .bss:0x801A5300; // type:object size:0x20 scope:local align:32 +DriveBlock = .bss:0x801A5320; // type:object size:0x30 scope:local +__OSErrorTable = .bss:0x801A5350; // type:object size:0x40 scope:global +Header = .bss:0x801A53A0; // type:object size:0x20 scope:local align:32 +Scb = .bss:0x801A53C0; // type:object size:0x54 scope:local align:32 data:4byte +RunQueue = .bss:0x801A5418; // type:object size:0x100 scope:local data:4byte +IdleThread = .bss:0x801A5518; // type:object size:0x310 scope:local align:8 data:4byte +DefaultThread = .bss:0x801A5828; // type:object size:0x310 scope:local align:8 data:4byte +IdleContext = .bss:0x801A5B38; // type:object size:0x2C8 scope:local align:8 data:4byte +CommandList = .bss:0x801A5E00; // type:object size:0x3C scope:local data:4byte +AlarmForWA = .bss:0x801A5E40; // type:object size:0x28 scope:local align:8 +AlarmForTimeout = .bss:0x801A5E68; // type:object size:0x28 scope:local align:8 +AlarmForBreak = .bss:0x801A5E90; // type:object size:0x28 scope:local align:8 +Prev = .bss:0x801A5EB8; // type:object size:0xC scope:local +Curr = .bss:0x801A5EC4; // type:object size:0xC scope:local +tmpBuffer = .bss:0x801A5EE0; // type:object size:0x80 scope:local align:32 +DummyCommandBlock = .bss:0x801A5F60; // type:object size:0x30 scope:local +ResetAlarm = .bss:0x801A5F90; // type:object size:0x28 scope:local align:8 +WaitingQueue = .bss:0x801A5FB8; // type:object size:0x20 scope:local data:4byte +bb2Buf = .bss:0x801A5FD8; // type:object size:0x3F scope:local +block$16 = .bss:0x801A6018; // type:object size:0x30 scope:local +regs = .bss:0x801A6048; // type:object size:0x78 scope:local data:2byte +shdwRegs = .bss:0x801A60C0; // type:object size:0x78 scope:local +HorVer = .bss:0x801A6138; // type:object size:0x58 scope:local data:2byte +fontTexObj = .bss:0x801A6190; // type:object size:0x20 scope:local +Type = .bss:0x801A61B0; // type:object size:0x10 scope:local +Origin = .bss:0x801A61C0; // type:object size:0x1E scope:local +CmdProbeDevice = .bss:0x801A61F0; // type:object size:0x10 scope:local +gxData = .bss:0x801A6200; // type:object size:0x4F8 scope:local +FifoObj = .bss:0x801A66F8; // type:object size:0x80 +DisplayListFifo = .bss:0x801A6778; // type:object size:0x24 scope:local data:4byte +__savedGXdata = .bss:0x801A679C; // type:object size:0x4F8 scope:local data:4byte +__CARDBlock = .bss:0x801A6C98; // type:object size:0x220 data:4byte +__CARDDiskNone = .bss:0x801A6EB8; // type:object size:0x20 +Ecb = .bss:0x801A6ED8; // type:object size:0xC0 scope:local data:4byte +Packet = .bss:0x801A6F98; // type:object size:0x80 scope:local align:8 data:4byte +Alarm = .bss:0x801A7018; // type:object size:0xA0 scope:local align:8 +TypeTime = .bss:0x801A70B8; // type:object size:0x20 scope:local align:8 +XferTime = .bss:0x801A70D8; // type:object size:0x20 scope:local align:8 +TypeCallback = .bss:0x801A70F8; // type:object size:0x40 scope:local +RDSTHandler = .bss:0x801A7138; // type:object size:0x10 scope:local data:4byte +InputBufferValid = .bss:0x801A7148; // type:object size:0x10 scope:local data:4byte +InputBuffer = .bss:0x801A7158; // type:object size:0x20 scope:local data:4byte +InputBufferVcount = .bss:0x801A7178; // type:object size:0x10 scope:local data:4byte +cmdFixDevice$327 = .bss:0x801A7188; // type:object size:0x10 scope:local data:4byte +__THPIDCTWorkspace = .bss:0x801A71A0; // type:object size:0x100 scope:local align:32 +__THPLCWork512 = .bss:0x801A72A0; // type:object size:0xC scope:local +__THPLCWork640 = .bss:0x801A72AC; // type:object size:0xC scope:local +__THPMCUBuffer = .bss:0x801A72B8; // type:object size:0x18 scope:local data:4byte +fragmentinfo = .bss:0x801A72D0; // type:object size:0xC scope:local data:4byte +__atexit_funcs = .bss:0x801A72E0; // type:object size:0x100 scope:local +protopool$192 = .bss:0x801A73E0; // type:object size:0x38 scope:local data:4byte +stderr_buff = .bss:0x801A7418; // type:object size:0x100 scope:local +stdout_buff = .bss:0x801A7518; // type:object size:0x100 scope:local +stdin_buff = .bss:0x801A7618; // type:object size:0x100 scope:local +signal_funcs = .bss:0x801A7718; // type:object size:0x18 scope:local +gTRKEventQueue = .bss:0x801A7730; // type:object size:0x28 +gTRKBigEndian = .bss:0x801A7758; // type:object size:0x4 scope:global data:4byte +gTRKMsgBufs = .bss:0x801A7760; // type:object size:0x19B0 +gTRKInputPendingPtr = .bss:0x801A9110; // type:object size:0x4 scope:global data:4byte +gTRKFramingState = .bss:0x801A9114; // type:object size:0x14 scope:local data:4byte +gTRKDispatchTableSize = .bss:0x801A9128; // type:object size:0x4 data:4byte +IsTRKConnected = .bss:0x801A9130; // type:object size:0x4 scope:local data:4byte +TRK_saved_exceptionID = .bss:0x801A9138; // type:object size:0x2 scope:local data:2byte +gTRKState = .bss:0x801A913C; // type:object size:0xA4 scope:global data:4byte +gTRKCPUState = .bss:0x801A91E0; // type:object size:0x430 scope:global +gTRKSaveState = .bss:0x801A9610; // type:object size:0x94 scope:global data:4byte +TRKvalue128_temp = .bss:0x801A96A4; // type:object size:0x10 +lc_base = .bss:0x801A96B8; // type:object size:0x4 scope:local data:4byte +TRK_mainError = .bss:0x801A96C0; // type:object size:0x4 scope:local data:4byte +gWritePos = .bss:0x801A96C8; // type:object size:0x4 scope:local data:4byte +gReadPos = .bss:0x801A96CC; // type:object size:0x4 scope:local data:4byte +gReadCount = .bss:0x801A96D0; // type:object size:0x4 scope:local data:4byte +_MetroTRK_Has_Framing = .bss:0x801A96D4; // type:object size:0x4 data:4byte +gReadBuf = .bss:0x801A96D8; // type:object size:0x110A scope:local +gWriteBuf = .bss:0x801AA7E4; // type:object size:0x110A scope:local +bUseSerialIO = .bss:0x801AB8F0; // type:object size:0x1 scope:local data:byte +seqNote = .bss:0x801AB8F8; // type:object size:0x1400 scope:local data:4byte +seqInstance = .bss:0x801ACCF8; // type:object size:0xC340 +seqMIDIPriority = .bss:0x801B9038; // type:object size:0x100 data:2byte +synthTicksPerSecond = .bss:0x801B9138; // type:object size:0x240 scope:local +synthInfo = .bss:0x801B9378; // type:object size:0x214 data:4byte +synthMasterFader = .bss:0x801B958C; // type:object size:0x600 data:float +synthTrackVolume = .bss:0x801B9B8C; // type:object size:0x40 data:byte +synthJobTable = .bss:0x801B9BCC; // type:object size:0x180 scope:local +synthAuxAUser = .bss:0x801B9D4C; // type:object size:0x20 data:4byte +synthAuxACallback = .bss:0x801B9D6C; // type:object size:0x20 data:4byte +synthAuxBUser = .bss:0x801B9D8C; // type:object size:0x20 data:4byte +synthAuxBCallback = .bss:0x801B9DAC; // type:object size:0x20 data:4byte +synthITDDefault = .bss:0x801B9DCC; // type:object size:0x10 data:byte +synthGlobalVariable = .bss:0x801B9DDC; // type:object size:0x40 data:4byte +inpAuxB = .bss:0x801B9E1C; // type:object size:0x480 +inpAuxA = .bss:0x801BA29C; // type:object size:0x480 +streamInfo = .bss:0x801BA720; // type:object size:0x1900 data:4byte +dataKeymapTab = .bss:0x801BC020; // type:object size:0x800 scope:local +dataLayerTab = .bss:0x801BC820; // type:object size:0xC00 scope:local +dataCurveTab = .bss:0x801BD420; // type:object size:0x4000 scope:local +dataSmpSDirs = .bss:0x801C1420; // type:object size:0x600 scope:local data:4byte +dataFXGroups = .bss:0x801C1A20; // type:object size:0x400 scope:local data:2byte +dataMacMainTab = .bss:0x801C1E20; // type:object size:0x800 scope:local data:2byte +dataMacSubTabmem = .bss:0x801C2620; // type:object size:0x4000 scope:local +key$787 = .bss:0x801C6620; // type:object size:0x20 scope:local data:2byte +key$836 = .bss:0x801C6640; // type:object size:0xC scope:local +key$850 = .bss:0x801C664C; // type:object size:0xA scope:local data:2byte +newsmp$473 = .bss:0x801C6658; // type:object size:0x20 scope:local data:4byte +vidList = .bss:0x801C6678; // type:object size:0x800 scope:local data:4byte +voicePrioSortVoices = .bss:0x801C6E78; // type:object size:0x100 +voicePrioSortVoicesRoot = .bss:0x801C6F78; // type:object size:0x100 +voicePrioSortRootList = .bss:0x801C7078; // type:object size:0x400 +voiceList = .bss:0x801C7478; // type:object size:0x100 +synth_last_fxstarted = .bss:0x801C7578; // type:object size:0x40 scope:local data:byte +synth_last_started = .bss:0x801C75B8; // type:object size:0x80 scope:local data:byte +vs = .bss:0x801C7638; // type:object size:0x950 data:byte +gs = .bss:0x801C7F88; // type:object size:0x600 scope:local data:4byte +dspStudio = .bss:0x801C8588; // type:object size:0x5E0 data:4byte +voices$591 = .bss:0x801C8B68; // type:object size:0x100 scope:local data:4byte +tmp_em$515 = .bss:0x801C8C68; // type:object size:0x50 scope:local +startGroup = .bss:0x801C8CB8; // type:object size:0x400 scope:local data:4byte +runList = .bss:0x801C90B8; // type:object size:0x300 scope:local +startListNum = .bss:0x801C93B8; // type:object size:0x700 scope:local +inpGlobalMIDIDirtyFlags = .bss:0x801C9AB8; // type:object size:0x200 scope:local data:4byte +midi_ctrl = .bss:0x801C9CB8; // type:object size:0x4300 scope:local +inpChannelDefaults = .bss:0x801CDFB8; // type:object size:0x80 scope:local +fx_ctrl = .bss:0x801CE038; // type:object size:0x2180 scope:local +inpFXChannelDefaults = .bss:0x801D01B8; // type:object size:0x40 scope:local +midi_lastNote = .bss:0x801D01F8; // type:object size:0x80 scope:local +fx_lastNote = .bss:0x801D0278; // type:object size:0x40 scope:local +aramQueueLo = .bss:0x801D02B8; // type:object size:0x284 scope:local +aramQueueHi = .bss:0x801D053C; // type:object size:0x284 scope:local +aramStreamBuffers = .bss:0x801D07C0; // type:object size:0x400 scope:local data:4byte +dsp_task = .bss:0x801D0BC0; // type:object size:0x60 scope:local align:8 +dram_image = .bss:0x801D0C20; // type:object size:0x2000 scope:local align:32 +sys = .bss:0x801D2C20; // type:object size:0x4FC scope:local data:4byte +mem = .bss:0x801D3120; // type:object size:0x2C scope:local data:4byte +fio = .bss:0x801D3150; // type:object size:0xC scope:local data:4byte +mus = .bss:0x801D3160; // type:object size:0x178 scope:local data:2byte +se = .bss:0x801D32D8; // type:object size:0xDC scope:local data:4byte +StreamInfo = .bss:0x801D33C0; // type:object size:0x60 scope:local align:32 data:4byte +lbl_801D3420 = .sdata:0x801D3420; // type:object size:0x5 data:string +lbl_801D3425 = .sdata:0x801D3425; // type:object size:0x7 +rnd_seed = .sdata:0x801D342C; // type:object size:0x4 data:4byte +lbl_801D3430 = .sdata:0x801D3430; // type:object size:0x6 data:string +lbl_801D3436 = .sdata:0x801D3436; // type:object size:0x2 data:string +lbl_801D3438 = .sdata:0x801D3438; // type:object size:0x7 data:string +lbl_801D343F = .sdata:0x801D343F; // type:object size:0x9 +FirstFrame = .sdata:0x801D3448; // type:object size:0x4 scope:local data:4byte +lbl_801D344C = .sdata:0x801D344C; // type:object size:0x7 data:string +lbl_801D3453 = .sdata:0x801D3453; // type:object size:0xD +lbl_801D3460 = .sdata:0x801D3460; // type:object size:0x2 data:string +lbl_801D3462 = .sdata:0x801D3462; // type:object size:0xE +oneceF = .sdata:0x801D3470; // type:object size:0x2 scope:local data:2byte +firstTev = .sdata:0x801D3472; // type:object size:0x4 scope:local +secondTev = .sdata:0x801D3476; // type:object size:0x4 scope:local +lbl_801D347A = .sdata:0x801D347A; // type:object size:0xE +lbl_801D3488 = .sdata:0x801D3488; // type:object size:0x4 data:string +lbl_801D348C = .sdata:0x801D348C; // type:object size:0xC +omSysPauseEnableFlag = .sdata:0x801D3498; // type:object size:0x1 data:byte +omprevovl = .sdata:0x801D349C; // type:object size:0x4 data:4byte +titleMes$442 = .sdata:0x801D34A0; // type:object size:0x4 scope:local data:4byte +lbl_801D34A4 = .sdata:0x801D34A4; // type:object size:0xC +lbl_801D34B0 = .sdata:0x801D34B0; // type:object size:0x1 +lbl_801D34B1 = .sdata:0x801D34B1; // type:object size:0x7 +mgSeqOvlPrev = .sdata:0x801D34B8; // type:object size:0x4 data:4byte +wordStartE = .sdata:0x801D34BC; // type:object size:0x7 scope:local data:string +seqPunctTbl = .sdata:0x801D34C3; // type:object size:0x3 scope:local data:byte +wordStartJ = .sdata:0x801D34C6; // type:object size:0x6 scope:local +wordFinishJ = .sdata:0x801D34CC; // type:object size:0x8 scope:local +wordDrawJ = .sdata:0x801D34D4; // type:object size:0x6 scope:local +wordFinishE = .sdata:0x801D34DA; // type:object size:0x8 scope:local data:string +wordDrawE = .sdata:0x801D34E2; // type:object size:0x6 scope:local data:string +lbl_801D34E8 = .sdata:0x801D34E8; // type:object size:0x4 scope:local +lbl_801D34EC = .sdata:0x801D34EC; // type:object size:0x6 scope:local data:string +lbl_801D34F2 = .sdata:0x801D34F2; // type:object size:0x6 scope:local +lbl_801D34F8 = .sdata:0x801D34F8; // type:object size:0x6 scope:local data:string +lbl_801D34FE = .sdata:0x801D34FE; // type:object size:0x5 scope:local +lbl_801D3503 = .sdata:0x801D3503; // type:object size:0x6 scope:local data:string +lbl_801D3509 = .sdata:0x801D3509; // type:object size:0x5 scope:local +lbl_801D350E = .sdata:0x801D350E; // type:object size:0x6 scope:local data:string +lbl_801D3514 = .sdata:0x801D3514; // type:object size:0x4 scope:local +lbl_801D3518 = .sdata:0x801D3518; // type:object size:0x6 scope:local data:string +lbl_801D351E = .sdata:0x801D351E; // type:object size:0x6 scope:local +lbl_801D3524 = .sdata:0x801D3524; // type:object size:0x5 scope:local data:string +lbl_801D3529 = .sdata:0x801D3529; // type:object size:0x7 scope:local +lbl_801D3530 = .sdata:0x801D3530; // type:object size:0x6 scope:local data:string +lbl_801D3536 = .sdata:0x801D3536; // type:object size:0x7 scope:local +lbl_801D353D = .sdata:0x801D353D; // type:object size:0x8 scope:local data:string +lbl_801D3545 = .sdata:0x801D3545; // type:object size:0x5 scope:local +lbl_801D354A = .sdata:0x801D354A; // type:object size:0x7 scope:local data:string +lbl_801D3551 = .sdata:0x801D3551; // type:object size:0x6 scope:local +lbl_801D3557 = .sdata:0x801D3557; // type:object size:0x5 scope:local data:string +lbl_801D355C = .sdata:0x801D355C; // type:object size:0x5 scope:local +lbl_801D3561 = .sdata:0x801D3561; // type:object size:0x8 scope:local data:string +lbl_801D3569 = .sdata:0x801D3569; // type:object size:0x4 scope:local +lbl_801D356D = .sdata:0x801D356D; // type:object size:0x4 scope:local data:string +lbl_801D3571 = .sdata:0x801D3571; // type:object size:0x5 scope:local +lbl_801D3576 = .sdata:0x801D3576; // type:object size:0x6 scope:local data:string +lbl_801D357C = .sdata:0x801D357C; // type:object size:0x7 scope:local +lbl_801D3583 = .sdata:0x801D3583; // type:object size:0x6 scope:local +lbl_801D3589 = .sdata:0x801D3589; // type:object size:0x7 scope:local data:string +lbl_801D3590 = .sdata:0x801D3590; // type:object size:0x3 scope:local +lbl_801D3593 = .sdata:0x801D3593; // type:object size:0x5 scope:local data:string +lbl_801D3598 = .sdata:0x801D3598; // type:object size:0x6 scope:local +lbl_801D359E = .sdata:0x801D359E; // type:object size:0x5 scope:local data:string +lbl_801D35A3 = .sdata:0x801D35A3; // type:object size:0x7 scope:local +lbl_801D35AA = .sdata:0x801D35AA; // type:object size:0x6 scope:local +lbl_801D35B0 = .sdata:0x801D35B0; // type:object size:0x6 scope:local data:string +pauseStr$2216 = .sdata:0x801D35B8; // type:object size:0x8 scope:local +lbl_801D35C0 = .sdata:0x801D35C0; // type:object size:0x8 +lbl_801D35C8 = .sdata:0x801D35C8; // type:object size:0x8 +lbl_801D35D0 = .sdata:0x801D35D0; // type:object size:0x8 +lbl_801D35D8 = .sdata:0x801D35D8; // type:object size:0x8 +colorN$400 = .sdata:0x801D35E0; // type:object size:0x4 data:byte +colorN$444 = .sdata:0x801D35E4; // type:object size:0x4 data:byte +winPrio = .sdata:0x801D35E8; // type:object size:0x8 scope:local data:2byte +lbl_801D35F0 = .sdata:0x801D35F0; // type:object size:0x8 scope:local +lbl_801D35F8 = .sdata:0x801D35F8; // type:object size:0x8 scope:local +lbl_801D3600 = .sdata:0x801D3600; // type:object size:0x8 scope:local +lbl_801D3608 = .sdata:0x801D3608; // type:object size:0x8 scope:local +lbl_801D3610 = .sdata:0x801D3610; // type:object size:0x8 scope:local +lbl_801D3618 = .sdata:0x801D3618; // type:object size:0x1 +lbl_801D3619 = .sdata:0x801D3619; // type:object size:0x5 data:string +lbl_801D361E = .sdata:0x801D361E; // type:object size:0x5 data:string +lbl_801D3623 = .sdata:0x801D3623; // type:object size:0x8 data:string +lbl_801D362B = .sdata:0x801D362B; // type:object size:0x6 data:string +lbl_801D3631 = .sdata:0x801D3631; // type:object size:0x7 +lbl_801D3638 = .sdata:0x801D3638; // type:object size:0x8 +SaveEnableF = .sdata:0x801D3640; // type:object size:0x4 data:4byte +lbl_801D3644 = .sdata:0x801D3644; // type:object size:0x2 data:string +lbl_801D3646 = .sdata:0x801D3646; // type:object size:0x2 data:string +SlotNameTbl = .sdata:0x801D3648; // type:object size:0x8 scope:local +saveMessWin = .sdata:0x801D3650; // type:object size:0x4 scope:local data:4byte +SR_PushTime = .sdata:0x801D3658; // type:object size:0x8 scope:local data:2byte +SR_ResetPad = .sdata:0x801D3660; // type:object size:0x1 scope:local data:byte +Xfb = .sdata:0x801D3664; // type:object size:0x8 scope:local data:4byte +nextOvl = .sdata:0x801D3670; // type:object size:0x4 scope:local data:4byte +colorN$488 = .sdata:0x801D3674; // type:object size:0x4 scope:local data:byte +lbl_801D3678 = .sdata:0x801D3678; // type:object size:0x8 +suitMdl = .sdata:0x801D3680; // type:object size:0x2 scope:local data:2byte +suitPlayerMdl = .sdata:0x801D3682; // type:object size:0x2 scope:local data:2byte +suitCurrMot = .sdata:0x801D3684; // type:object size:0x2 scope:local data:2byte +lbl_801D3686 = .sdata:0x801D3686; // type:object size:0x5 data:string +lbl_801D368B = .sdata:0x801D368B; // type:object size:0x5 data:string +lbl_801D3690 = .sdata:0x801D3690; // type:object size:0x6 data:string +lbl_801D3696 = .sdata:0x801D3696; // type:object size:0x6 data:string +lbl_801D369C = .sdata:0x801D369C; // type:object size:0x6 data:string +lbl_801D36A2 = .sdata:0x801D36A2; // type:object size:0x6 data:string +lbl_801D36A8 = .sdata:0x801D36A8; // type:object size:0x6 data:string +lbl_801D36AE = .sdata:0x801D36AE; // type:object size:0x6 data:string +lbl_801D36B4 = .sdata:0x801D36B4; // type:object size:0x6 data:string +lbl_801D36BA = .sdata:0x801D36BA; // type:object size:0x6 data:string +lbl_801D36C0 = .sdata:0x801D36C0; // type:object size:0x6 data:string +lbl_801D36C6 = .sdata:0x801D36C6; // type:object size:0x6 data:string +lbl_801D36CC = .sdata:0x801D36CC; // type:object size:0x6 data:string +lbl_801D36D2 = .sdata:0x801D36D2; // type:object size:0x8 data:string +windowID = .sdata:0x801D36E0; // type:object size:0x2 scope:local data:2byte +boardFX = .sdata:0x801D36E8; // type:object size:0x4 scope:local data:4byte +itemUse = .sdata:0x801D36F0; // type:object size:0x1 scope:local data:byte +buttonWin = .sdata:0x801D36F8; // type:object size:0x2 scope:local data:2byte +focusMdl = .sdata:0x801D36FA; // type:object size:0x2 scope:local data:2byte +spaceDrawMdl = .sdata:0x801D3700; // type:object size:0x2 scope:local data:2byte +starPlatMdl = .sdata:0x801D3702; // type:object size:0x2 scope:local data:2byte +itemMdl = .sdata:0x801D3708; // type:object size:0x2 scope:local data:2byte +itemChoice = .sdata:0x801D370A; // type:object size:0x1 scope:local data:byte +shopMdlParam = .sdata:0x801D370C; // type:object size:0x8 scope:local +hostMdl = .sdata:0x801D3714; // type:object size:0x2 scope:local data:2byte +shopMot = .sdata:0x801D3716; // type:object size:0x6 scope:local data:2byte +itemCurChoice = .sdata:0x801D371C; // type:object size:0x1 scope:local data:byte +defaultItemTbl = .sdata:0x801D371D; // type:object size:0x5 scope:local data:byte +hostMdl = .sdata:0x801D3728; // type:object size:0x2 scope:local data:2byte +lotteryMot = .sdata:0x801D372A; // type:object size:0x8 scope:local data:2byte +lotterySpr = .sdata:0x801D3732; // type:object size:0x2 scope:local data:2byte +lotteryInstWin = .sdata:0x801D3734; // type:object size:0x2 scope:local data:2byte +gripMdl = .sdata:0x801D3736; // type:object size:0x4 scope:local data:2byte +turnMot = .sdata:0x801D373A; // type:object size:0x2 scope:local data:2byte +ballMdl = .sdata:0x801D373C; // type:object size:0x8 scope:local data:2byte +loseMot = .sdata:0x801D3744; // type:object size:0x2 scope:local data:2byte +ticketSprGrp = .sdata:0x801D3746; // type:object size:0x2 scope:local data:2byte +warpSpringMdl = .sdata:0x801D3748; // type:object size:0x2 scope:local data:2byte +warpImpactMdl = .sdata:0x801D374A; // type:object size:0x2 scope:local data:2byte +warpImpactPlayer = .sdata:0x801D374C; // type:object size:0x4 scope:local +lbl_801D3750 = .sdata:0x801D3750; // type:object size:0x8 +wheelPos = .sdata:0x801D3758; // type:object size:0x1 scope:local data:byte +wheelSprGrp = .sdata:0x801D375A; // type:object size:0x2 scope:local data:2byte +wheelFXStat = .sdata:0x801D375C; // type:object size:0x4 scope:local data:4byte +boxObj = .sdata:0x801D3760; // type:object size:0x8 scope:local +itemMdl = .sdata:0x801D3768; // type:object size:0x2 scope:local data:2byte +starParman = .sdata:0x801D3770; // type:object size:0x2 scope:local data:2byte +hostMdl = .sdata:0x801D3772; // type:object size:0x2 scope:local data:2byte +diceMdl = .sdata:0x801D3778; // type:object size:0x6 scope:local +diceEff = .sdata:0x801D377E; // type:object size:0x6 scope:local +rollWin = .sdata:0x801D3784; // type:object size:0x2 scope:local data:2byte +lbl_801D3786 = .sdata:0x801D3786; // type:object size:0x3 scope:local data:string +itemPickupMdlId = .sdata:0x801D3790; // type:object size:0x2 scope:local data:2byte +yourTurnSprGrp = .sdata:0x801D3792; // type:object size:0x2 scope:local data:2byte +jumpMot = .sdata:0x801D3798; // type:object size:0x2 scope:local data:2byte +starMdl = .sdata:0x801D379A; // type:object size:0x2 scope:local data:2byte +lbl_801D37A0 = .sdata:0x801D37A0; // type:object size:0x8 +lbl_801D37A8 = .sdata:0x801D37A8; // type:object size:0x8 +jumpMot = .sdata:0x801D37B0; // type:object size:0x2 scope:local data:2byte +scareMot = .sdata:0x801D37B2; // type:object size:0x2 scope:local data:2byte +suitItemMdl = .sdata:0x801D37B4; // type:object size:0x2 scope:local data:2byte +bowserMdl = .sdata:0x801D37B6; // type:object size:0x2 scope:local data:2byte +lbl_801D37B8 = .sdata:0x801D37B8; // type:object size:0x3 data:string +lbl_801D37BB = .sdata:0x801D37BB; // type:object size:0x8 data:string +lbl_801D37C8 = .sdata:0x801D37C8; // type:object size:0x3 data:string +lbl_801D37D0 = .sdata:0x801D37D0; // type:object size:0x7 data:string +ballMdlTbl = .sdata:0x801D37D8; // type:object size:0x8 scope:local +lbl_801D37E0 = .sdata:0x801D37E0; // type:object size:0x4 data:string +luckyValue = .sdata:0x801D37E8; // type:object size:0x1 scope:local data:byte +cursorPos = .sdata:0x801D37E9; // type:object size:0x1 scope:local data:byte +houseShowMot = .sdata:0x801D37F0; // type:object size:0x2 scope:local data:2byte +houseHideMot = .sdata:0x801D37F2; // type:object size:0x2 scope:local data:2byte +ballMdl = .sdata:0x801D37F4; // type:object size:0x2 scope:local data:2byte +booMdl = .sdata:0x801D37F6; // type:object size:0x2 scope:local data:2byte +lbl_801D37F8 = .sdata:0x801D37F8; // type:object size:0x2 scope:local data:2byte +hostMdl = .sdata:0x801D37FA; // type:object size:0x2 scope:local data:2byte +houseMot = .sdata:0x801D37FC; // type:object size:0x6 scope:local data:2byte +lbl_801D3802 = .sdata:0x801D3802; // type:object size:0x7 data:string +lbl_801D3809 = .sdata:0x801D3809; // type:object size:0x7 data:string +lbl_801D3810 = .sdata:0x801D3810; // type:object size:0x7 data:string +lbl_801D3817 = .sdata:0x801D3817; // type:object size:0x7 data:string +lbl_801D381E = .sdata:0x801D381E; // type:object size:0x7 data:string +lbl_801D3825 = .sdata:0x801D3825; // type:object size:0x6 data:string +lbl_801D382B = .sdata:0x801D382B; // type:object size:0x7 data:string +lbl_801D3832 = .sdata:0x801D3832; // type:object size:0x6 data:string +lbl_801D3838 = .sdata:0x801D3838; // type:object size:0x3 data:string +logoSprGrp = .sdata:0x801D3840; // type:object size:0x2 scope:local data:2byte +logoSpr = .sdata:0x801D3842; // type:object size:0x2 scope:local data:2byte +camFocus = .sdata:0x801D3844; // type:object size:0x2 scope:local data:2byte +tapWin = .sdata:0x801D3846; // type:object size:0x2 scope:local data:2byte +streamStatus = .sdata:0x801D3848; // type:object size:0x4 scope:local data:4byte +tutorialRollTbl = .sdata:0x801D384C; // type:object size:0x4 scope:local +stopWin = .sdata:0x801D3850; // type:object size:0x2 scope:local data:2byte +wheelMdl = .sdata:0x801D3852; // type:object size:0x2 scope:local data:2byte +lbl_801D3854 = .sdata:0x801D3854; // type:object size:0x2 data:2byte +focusMdl = .sdata:0x801D3856; // type:object size:0x2 scope:local data:2byte +messBase = .sdata:0x801D3858; // type:object size:0x4 scope:local data:4byte +lbl_801D385C = .sdata:0x801D385C; // type:object size:0x6 data:string +lbl_801D3862 = .sdata:0x801D3862; // type:object size:0x7 data:string +lbl_801D3869 = .sdata:0x801D3869; // type:object size:0x7 data:string +lbl_801D3870 = .sdata:0x801D3870; // type:object size:0x7 data:string +lbl_801D3877 = .sdata:0x801D3877; // type:object size:0x5 data:string +lbl_801D387C = .sdata:0x801D387C; // type:object size:0x6 data:string +lbl_801D3882 = .sdata:0x801D3882; // type:object size:0x6 data:string +lbl_801D3888 = .sdata:0x801D3888; // type:object size:0x6 data:string +lbl_801D388E = .sdata:0x801D388E; // type:object size:0x4 data:string +lbl_801D3892 = .sdata:0x801D3892; // type:object size:0x5 data:string +lbl_801D3897 = .sdata:0x801D3897; // type:object size:0x5 data:string +lbl_801D389C = .sdata:0x801D389C; // type:object size:0x5 data:string +pausePad = .sdata:0x801D38A8; // type:object size:0x1 scope:local data:byte +pauseSprGrp = .sdata:0x801D38AA; // type:object size:0x2 scope:local data:2byte +padConfigSprGrp = .sdata:0x801D38AC; // type:object size:0x2 scope:local data:2byte +pauseCursorPos = .sdata:0x801D38AE; // type:object size:0x2 scope:local data:2byte +settingsControlWin = .sdata:0x801D38B0; // type:object size:0x2 scope:local data:2byte +controlWin = .sdata:0x801D38B2; // type:object size:0x2 scope:local data:2byte +quitWin = .sdata:0x801D38B4; // type:object size:0x2 scope:local data:2byte +settingsWin = .sdata:0x801D38B6; // type:object size:0x2 scope:local data:2byte +__OSCurrHeap = .sdata:0x801D38B8; // type:object size:0x8 data:4byte +__OSArenaLo = .sdata:0x801D38C0; // type:object size:0x4 scope:local data:4byte +@32 = .sdata:0x801D38C8; // type:object size:0x2 scope:local data:string +fontEncode$80 = .sdata:0x801D38D0; // type:object size:0x8 scope:local data:2byte +Unit01 = .sdata:0x801D38D8; // type:object size:0x8 +FirstRead = .sdata:0x801D38E0; // type:object size:0x4 scope:local data:4byte +lbl_801D38E8 = .sdata:0x801D38E8; // type:object size:0x8 scope:local data:string +autoInvalidation = .sdata:0x801D38F0; // type:object size:0x4 scope:local data:4byte +@35 = .sdata:0x801D38F8; // type:object size:0x2 scope:local data:string +@40 = .sdata:0x801D38FC; // type:object size:0x4 scope:local data:string +@41 = .sdata:0x801D3900; // type:object size:0x3 scope:local data:string +lbl_801D3908 = .sdata:0x801D3908; // type:object size:0x8 scope:local data:string +ClampRegion = .sdata:0x801D3910; // type:object size:0x8 scope:local data:byte +ResettingChan = .sdata:0x801D3918; // type:object size:0x4 scope:local data:4byte +XPatchBits = .sdata:0x801D391C; // type:object size:0x4 scope:local data:4byte +AnalogMode = .sdata:0x801D3920; // type:object size:0x4 scope:local data:4byte +Spec = .sdata:0x801D3924; // type:object size:0x4 scope:local data:4byte +MakeStatus = .sdata:0x801D3928; // type:object size:0x4 scope:local data:4byte +CmdReadOrigin = .sdata:0x801D392C; // type:object size:0x4 scope:local +CmdCalibrate = .sdata:0x801D3930; // type:object size:0x4 scope:local +gx = .sdata:0x801D3938; // type:object size:0x4 scope:global data:4byte +tbl1$215 = .sdata:0x801D3940; // type:object size:0x4 scope:local +tbl2$216 = .sdata:0x801D3944; // type:object size:0x4 scope:local +tbl3$217 = .sdata:0x801D3948; // type:object size:0x4 scope:local +GXTexMode0Ids = .sdata:0x801D3950; // type:object size:0x8 scope:local +GXTexMode1Ids = .sdata:0x801D3958; // type:object size:0x8 scope:local +GXTexImage0Ids = .sdata:0x801D3960; // type:object size:0x8 scope:local +GXTexImage1Ids = .sdata:0x801D3968; // type:object size:0x8 scope:local +GXTexImage2Ids = .sdata:0x801D3970; // type:object size:0x8 scope:local +GXTexImage3Ids = .sdata:0x801D3978; // type:object size:0x8 scope:local +GXTexTlutIds = .sdata:0x801D3980; // type:object size:0x8 scope:local +GX2HWFiltConv = .sdata:0x801D3988; // type:object size:0x6 scope:local +next = .sdata:0x801D3990; // type:object size:0x4 scope:local data:4byte +__CARDVendorID = .sdata:0x801D3998; // type:object size:0x2 data:2byte +__RTTI__Q23std9exception = .sdata:0x801D39A0; // type:object size:0x8 scope:local +thandler__3std = .sdata:0x801D39A8; // type:object size:0x4 scope:local data:4byte +uhandler__3std = .sdata:0x801D39AC; // type:object size:0x4 scope:local data:4byte +fragmentID = .sdata:0x801D39B0; // type:object size:0x4 scope:local data:4byte +__RTTI__Q23std9exception = .sdata:0x801D39B8; // type:object size:0x8 scope:local +__RTTI__Q23std13bad_exception = .sdata:0x801D39C0; // type:object size:0x8 scope:local +@wstringBase0 = .sdata:0x801D39C8; // type:object size:0x2 scope:local +__float_nan = .sdata:0x801D39D0; // type:object size:0x4 data:float +__float_huge = .sdata:0x801D39D4; // type:object size:0x4 data:float +last_rnd = .sdata:0x801D39D8; // type:object size:0x4 scope:local data:4byte +dspSRCType$437 = .sdata:0x801D39E0; // type:object size:0x6 align:4 +dspCoefSel$442 = .sdata:0x801D39E8; // type:object size:0x6 align:4 +dspSlaveLength = .sdata:0x801D39F0; // type:object size:0x2 data:2byte +SendCount = .sdata:0x801D39F8; // type:object size:0x1 scope:local data:byte +SystemInitF = .sbss:0x801D3A00; // type:object size:0x4 data:4byte +HuDvdErrWait = .sbss:0x801D3A04; // type:object size:0x4 data:4byte +fi_req = .sbss:0x801D3A08; // type:object size:0x4 scope:local +rf_req = .sbss:0x801D3A0C; // type:object size:0x4 scope:local +pe_req = .sbss:0x801D3A10; // type:object size:0x4 scope:local +vi_req = .sbss:0x801D3A14; // type:object size:0x4 scope:local +io_req = .sbss:0x801D3A18; // type:object size:0x4 scope:local +dsp_req = .sbss:0x801D3A1C; // type:object size:0x4 scope:local +cpu_wr_req = .sbss:0x801D3A20; // type:object size:0x4 scope:local +cpu_rd_req = .sbss:0x801D3A24; // type:object size:0x4 scope:local +tc_req = .sbss:0x801D3A28; // type:object size:0x4 scope:local +cp_req = .sbss:0x801D3A2C; // type:object size:0x4 scope:local +total_copy_clks = .sbss:0x801D3A30; // type:object size:0x4 scope:local +clr_pixels_in = .sbss:0x801D3A34; // type:object size:0x4 scope:local +bot_pixels_out = .sbss:0x801D3A38; // type:object size:0x4 scope:local +bot_pixels_in = .sbss:0x801D3A3C; // type:object size:0x4 scope:local +top_pixels_out = .sbss:0x801D3A40; // type:object size:0x4 scope:local +top_pixels_in = .sbss:0x801D3A44; // type:object size:0x4 scope:local +vstall = .sbss:0x801D3A48; // type:object size:0x4 scope:local +vmiss = .sbss:0x801D3A4C; // type:object size:0x4 scope:local +vcheck = .sbss:0x801D3A50; // type:object size:0x4 scope:local +GlobalCounter = .sbss:0x801D3A54; // type:object size:0x4 data:4byte +VCounter = .sbss:0x801D3A58; // type:object size:0x4 data:4byte +RumbleBit = .sbss:0x801D3A5C; // type:object size:0x4 scope:local data:4byte +_PadErr = .sbss:0x801D3A60; // type:object size:0x4 scope:local +_PadDStkRepOld = .sbss:0x801D3A64; // type:object size:0x4 scope:local +_PadDStkRepCnt = .sbss:0x801D3A68; // type:object size:0x4 scope:local +_PadDStkRep = .sbss:0x801D3A6C; // type:object size:0x4 scope:local +_PadDStk = .sbss:0x801D3A70; // type:object size:0x4 scope:local +_PadTrigR = .sbss:0x801D3A74; // type:object size:0x4 scope:local +_PadTrigL = .sbss:0x801D3A78; // type:object size:0x4 scope:local +_PadSubStkY = .sbss:0x801D3A7C; // type:object size:0x4 scope:local +_PadSubStkX = .sbss:0x801D3A80; // type:object size:0x4 scope:local +_PadStkY = .sbss:0x801D3A84; // type:object size:0x4 scope:local +_PadStkX = .sbss:0x801D3A88; // type:object size:0x4 scope:local +_PadRepCnt = .sbss:0x801D3A8C; // type:object size:0x8 scope:local +_PadBtnDown = .sbss:0x801D3A94; // type:object size:0x8 +_PadBtn = .sbss:0x801D3A9C; // type:object size:0x8 +HuPadErr = .sbss:0x801D3AA4; // type:object size:0x4 +HuPadDStkRep = .sbss:0x801D3AA8; // type:object size:0x4 +HuPadDStk = .sbss:0x801D3AAC; // type:object size:0x4 +HuPadTrigR = .sbss:0x801D3AB0; // type:object size:0x4 +HuPadTrigL = .sbss:0x801D3AB4; // type:object size:0x4 +HuPadSubStkY = .sbss:0x801D3AB8; // type:object size:0x4 +HuPadSubStkX = .sbss:0x801D3ABC; // type:object size:0x4 +HuPadStkY = .sbss:0x801D3AC0; // type:object size:0x4 +HuPadStkX = .sbss:0x801D3AC4; // type:object size:0x4 +HuPadBtnRep = .sbss:0x801D3AC8; // type:object size:0x8 +HuPadBtnDown = .sbss:0x801D3AD0; // type:object size:0x8 data:2byte +HuPadBtn = .sbss:0x801D3AD8; // type:object size:0x8 +beforeDvdStatus = .sbss:0x801D3AE0; // type:object size:0x4 scope:local data:4byte +CallBackStatus = .sbss:0x801D3AE4; // type:object size:0x4 scope:local data:4byte +shortAccessSleep = .sbss:0x801D3AE8; // type:object size:0x4 scope:local data:4byte +DataDirMax = .sbss:0x801D3AEC; // type:object size:0x4 scope:local data:4byte +DirDataSize = .sbss:0x801D3AF0; // type:object size:0x8 data:4byte +DemoStatEnable = .sbss:0x801D3AF8; // type:object size:0x4 scope:local data:4byte +worstVcount = .sbss:0x801D3AFC; // type:object size:0x4 data:4byte +minimumVcountf = .sbss:0x801D3B00; // type:object size:0x4 data:float +minimumVcount = .sbss:0x801D3B04; // type:object size:0x4 data:4byte +DemoCurrentBuffer = .sbss:0x801D3B08; // type:object size:0x4 data:4byte +DemoFrameBuffer2 = .sbss:0x801D3B0C; // type:object size:0x4 data:4byte +DemoFrameBuffer1 = .sbss:0x801D3B10; // type:object size:0x4 data:4byte +DefaultFifoObj = .sbss:0x801D3B14; // type:object size:0x4 scope:local data:4byte +DefaultFifo = .sbss:0x801D3B18; // type:object size:0x4 scope:local data:4byte +currentHeapHandle = .sbss:0x801D3B1C; // type:object size:0x4 data:4byte +RenderMode = .sbss:0x801D3B20; // type:object size:0x8 data:4byte +saftyFrameF = .sbss:0x801D3B28; // type:object size:0x4 data:4byte +strlinecnt = .sbss:0x801D3B2C; // type:object size:0x2 data:2byte +empstrline = .sbss:0x801D3B2E; // type:object size:0x2 data:2byte +fontcolor = .sbss:0x801D3B30; // type:object size:0x8 data:4byte +procfunc = .sbss:0x801D3B38; // type:object size:0x4 data:4byte +processcnt = .sbss:0x801D3B3C; // type:object size:0x2 scope:local data:2byte +processcur = .sbss:0x801D3B40; // type:object size:0x4 scope:local data:4byte +processtop = .sbss:0x801D3B44; // type:object size:0x4 scope:local data:4byte +HuSprPauseF = .sbss:0x801D3B48; // type:object size:0x4 scope:local data:4byte +HuSprOrderNo = .sbss:0x801D3B4C; // type:object size:0x2 scope:local data:2byte +HuSprOrderNum = .sbss:0x801D3B4E; // type:object size:0x2 scope:local data:2byte +bmpCCIdx = .sbss:0x801D3B50; // type:object size:0x8 scope:local data:2byte +MaterialTop = .sbss:0x801D3B58; // type:object size:0x4 data:4byte +AttributeTop = .sbss:0x801D3B5C; // type:object size:0x4 data:4byte +ClusterTop = .sbss:0x801D3B60; // type:object size:0x4 data:4byte +vtxtop = .sbss:0x801D3B64; // type:object size:0x4 data:4byte +objtop = .sbss:0x801D3B68; // type:object size:0x4 data:4byte +NSymIndex = .sbss:0x801D3B6C; // type:object size:0x4 data:4byte +DicStringTable = .sbss:0x801D3B70; // type:object size:0x4 data:4byte +StringTable = .sbss:0x801D3B74; // type:object size:0x4 data:4byte +fileptr = .sbss:0x801D3B78; // type:object size:0x4 data:4byte +NormalDataTop = .sbss:0x801D3B7C; // type:object size:0x4 scope:local data:4byte +VertexDataTop = .sbss:0x801D3B80; // type:object size:0x4 scope:local data:4byte +MotionModel = .sbss:0x801D3B84; // type:object size:0x4 scope:local data:4byte +MotionOnly = .sbss:0x801D3B88; // type:object size:0x8 scope:local data:4byte +CancelTRXF = .sbss:0x801D3B90; // type:object size:0x4 scope:local data:4byte +TL32F = .sbss:0x801D3B94; // type:object size:0x4 scope:local data:4byte +PGName = .sbss:0x801D3B98; // type:object size:0x4 scope:local data:4byte +PGFinishF = .sbss:0x801D3B9C; // type:object size:0x4 scope:local data:4byte +polySize = .sbss:0x801D3BA0; // type:object size:0x2 scope:local data:2byte +curModelID = .sbss:0x801D3BA4; // type:object size:0x4 scope:local data:4byte +mallocNo = .sbss:0x801D3BA8; // type:object size:0x4 scope:local data:4byte +totalSize = .sbss:0x801D3BAC; // type:object size:0x4 scope:local data:4byte +DLTotalNum = .sbss:0x801D3BB0; // type:object size:0x4 scope:local data:4byte +faceNumBuf = .sbss:0x801D3BB4; // type:object size:0x4 scope:local data:4byte +faceCnt = .sbss:0x801D3BB8; // type:object size:0x2 scope:local data:2byte +quadCnt = .sbss:0x801D3BBA; // type:object size:0x2 scope:local data:2byte +triCnt = .sbss:0x801D3BBC; // type:object size:0x2 scope:local data:2byte +matChgCnt = .sbss:0x801D3BBE; // type:object size:0x2 scope:local data:2byte +DLFirstF = .sbss:0x801D3BC0; // type:object size:0x4 scope:local data:4byte +modelObjNum = .sbss:0x801D3BC4; // type:object size:0x2 data:2byte +modelMeshNum = .sbss:0x801D3BC6; // type:object size:0x2 data:2byte +totalTexCacheCnted = .sbss:0x801D3BC8; // type:object size:0x4 data:4byte +totalTexCacheCnt = .sbss:0x801D3BCC; // type:object size:0x4 data:4byte +totalTexCnted = .sbss:0x801D3BD0; // type:object size:0x4 data:4byte +totalTexCnt = .sbss:0x801D3BD4; // type:object size:0x4 data:4byte +totalMatCnted = .sbss:0x801D3BD8; // type:object size:0x4 data:4byte +totalMatCnt = .sbss:0x801D3BDC; // type:object size:0x4 data:4byte +totalPolyCnted = .sbss:0x801D3BE0; // type:object size:0x4 data:4byte +totalPolyCnt = .sbss:0x801D3BE4; // type:object size:0x4 data:4byte +hookIdx = .sbss:0x801D3BE8; // type:object size:0x2 scope:local data:2byte +kColorIdx = .sbss:0x801D3BEC; // type:object size:0x4 scope:local data:4byte +kColor = .sbss:0x801D3BF0; // type:object size:0x4 scope:local data:byte +projectionMapNo = .sbss:0x801D3BF4; // type:object size:0x2 scope:local data:2byte +toonMapNo = .sbss:0x801D3BF6; // type:object size:0x2 scope:local data:2byte +shadowMapNo = .sbss:0x801D3BF8; // type:object size:0x2 scope:local data:2byte +attachMotionF = .sbss:0x801D3BFC; // type:object size:0x4 scope:local data:4byte +vtxModeBak = .sbss:0x801D3C00; // type:object size:0x2 scope:local data:2byte +hiliteMapNo = .sbss:0x801D3C02; // type:object size:0x2 scope:local data:2byte +reflectionMapNo = .sbss:0x801D3C04; // type:object size:0x2 scope:local data:2byte +Hu3DObjInfoP = .sbss:0x801D3C08; // type:object size:0x4 scope:local data:4byte +DrawObjIdx = .sbss:0x801D3C0C; // type:object size:0x2 scope:local data:2byte +lightBit = .sbss:0x801D3C0E; // type:object size:0x2 scope:local data:2byte +drawCnt = .sbss:0x801D3C10; // type:object size:0x4 scope:local data:4byte +DrawData = .sbss:0x801D3C14; // type:object size:0x4 scope:local data:4byte +DLBufStartP = .sbss:0x801D3C18; // type:object size:0x4 scope:local data:4byte +DLBufP = .sbss:0x801D3C1C; // type:object size:0x4 scope:local data:4byte +shadingBak = .sbss:0x801D3C20; // type:object size:0x4 scope:local data:4byte +polyTypeBak = .sbss:0x801D3C24; // type:object size:0x1 scope:local data:byte +materialBak = .sbss:0x801D3C28; // type:object size:0x4 scope:local data:4byte +MTXIdx = .sbss:0x801D3C2C; // type:object size:0x2 data:2byte +modelKillAllF = .sbss:0x801D3C30; // type:object size:0x4 data:4byte +NoSyncF = .sbss:0x801D3C34; // type:object size:0x2 scope:local data:2byte +Hu3DCameraExistF = .sbss:0x801D3C36; // type:object size:0x2 data:2byte +Hu3DPauseF = .sbss:0x801D3C38; // type:object size:0x2 data:2byte +Hu3DMallocNo = .sbss:0x801D3C3C; // type:object size:0x4 data:4byte +Hu3DCameraBit = .sbss:0x801D3C40; // type:object size:0x2 data:2byte +Hu3DCameraNo = .sbss:0x801D3C42; // type:object size:0x2 data:2byte +Hu3DProjectionNum = .sbss:0x801D3C44; // type:object size:0x2 data:2byte +shadowModelDrawF = .sbss:0x801D3C48; // type:object size:0x4 data:4byte +Hu3DShadowF = .sbss:0x801D3C4C; // type:object size:0x4 data:4byte +Hu3DShadowCamBit = .sbss:0x801D3C50; // type:object size:0x2 data:2byte +toonAnim = .sbss:0x801D3C54; // type:object size:0x4 data:4byte +reflectMapNo = .sbss:0x801D3C58; // type:object size:0x2 data:2byte +BGColor = .sbss:0x801D3C5A; // type:object size:0x4 data:byte +bitMapPtr = .sbss:0x801D3C60; // type:object size:0x4 scope:local data:4byte +metf = .sbss:0x801D3C68; // type:object size:0x1 scope:local data:byte +tokenEndF = .sbss:0x801D3C6A; // type:object size:0x2 scope:local data:2byte +total_copy_clks = .sbss:0x801D3C6C; // type:object size:0x4 scope:local data:4byte +clr_pixels_in = .sbss:0x801D3C70; // type:object size:0x4 scope:local +bot_pixels_out = .sbss:0x801D3C74; // type:object size:0x4 scope:local +bot_pixels_in = .sbss:0x801D3C78; // type:object size:0x4 scope:local +top_pixels_out = .sbss:0x801D3C7C; // type:object size:0x4 scope:local +top_pixels_in = .sbss:0x801D3C80; // type:object size:0x4 scope:local +fi_req = .sbss:0x801D3C84; // type:object size:0x4 scope:local +rf_req = .sbss:0x801D3C88; // type:object size:0x4 scope:local +pe_req = .sbss:0x801D3C8C; // type:object size:0x4 scope:local +vi_req = .sbss:0x801D3C90; // type:object size:0x4 scope:local +io_req = .sbss:0x801D3C94; // type:object size:0x4 scope:local +dsp_req = .sbss:0x801D3C98; // type:object size:0x4 scope:local +cpu_wr_req = .sbss:0x801D3C9C; // type:object size:0x4 scope:local +cpu_rd_req = .sbss:0x801D3CA0; // type:object size:0x4 scope:local +tc_req = .sbss:0x801D3CA4; // type:object size:0x4 scope:local +cp_req = .sbss:0x801D3CA8; // type:object size:0x4 scope:local +vstall = .sbss:0x801D3CAC; // type:object size:0x4 scope:local +vmiss = .sbss:0x801D3CB0; // type:object size:0x4 scope:local +vcheck = .sbss:0x801D3CB4; // type:object size:0x4 scope:local +met1 = .sbss:0x801D3CB8; // type:object size:0x4 scope:local +met0 = .sbss:0x801D3CBC; // type:object size:0x4 scope:local +omdispinfo = .sbss:0x801D3CC0; // type:object size:0x2 data:2byte +omSysExitReq = .sbss:0x801D3CC2; // type:object size:0x2 data:2byte +omUPauseFlag = .sbss:0x801D3CC4; // type:object size:0x1 data:byte +omnextovlstat = .sbss:0x801D3CC8; // type:object size:0x4 scope:local data:4byte +omovlstat = .sbss:0x801D3CCC; // type:object size:0x4 data:4byte +omnextovlevtno = .sbss:0x801D3CD0; // type:object size:0x4 scope:local data:4byte +omovlevtno = .sbss:0x801D3CD4; // type:object size:0x4 data:4byte +omovlhisidx = .sbss:0x801D3CD8; // type:object size:0x4 data:4byte +omcurdll = .sbss:0x801D3CDC; // type:object size:0x4 data:4byte +omcurovl = .sbss:0x801D3CE0; // type:object size:0x4 data:4byte +omnextovl = .sbss:0x801D3CE4; // type:object size:0x4 data:4byte +omwatchproc = .sbss:0x801D3CE8; // type:object size:0x4 data:4byte +omDBGSysKeyObj = .sbss:0x801D3CEC; // type:object size:0x4 data:4byte +y_start = .sbss:0x801D3CF0; // type:object size:0x4 scope:local data:4byte +x_start = .sbss:0x801D3CF4; // type:object size:0x4 scope:local data:4byte +Draw_Color = .sbss:0x801D3CF8; // type:object size:0x3 scope:local data:byte +XFB_putc = .sbss:0x801D3CFC; // type:object size:0x4 scope:local data:4byte +omDBGMenuButton = .sbss:0x801D3D00; // type:object size:0x2 +CZoom = .sbss:0x801D3D04; // type:object size:0x4 data:float +omDLLFileList = .sbss:0x801D3D08; // type:object size:0x8 scope:local data:4byte +frand_seed = .sbss:0x801D3D10; // type:object size:0x8 scope:local data:4byte +fadeStat = .sbss:0x801D3D18; // type:object size:0x1 data:byte +musicOffF = .sbss:0x801D3D1C; // type:object size:0x4 data:4byte +Snd3DDistOffset = .sbss:0x801D3D20; // type:object size:0x4 data:float +Snd3DSpeedOffset = .sbss:0x801D3D24; // type:object size:0x4 data:float +Snd3DStartDisOffset = .sbss:0x801D3D28; // type:object size:0x4 data:float +Snd3DFrontSurDisOffset = .sbss:0x801D3D2C; // type:object size:0x4 data:float +Snd3DBackSurDisOffset = .sbss:0x801D3D30; // type:object size:0x4 data:float +HuAuxBVol = .sbss:0x801D3D34; // type:object size:0x1 scope:local data:byte +HuAuxAVol = .sbss:0x801D3D35; // type:object size:0x1 scope:local data:byte +auxBNoBak = .sbss:0x801D3D38; // type:object size:0x4 scope:local data:4byte +auxANoBak = .sbss:0x801D3D3C; // type:object size:0x4 scope:local data:4byte +sndGroupBak = .sbss:0x801D3D40; // type:object size:0x2 scope:local data:2byte +Hu3DAudVol = .sbss:0x801D3D42; // type:object size:0x2 scope:local data:2byte +Meshno = .sbss:0x801D3D48; // type:object size:0x4 scope:local data:4byte +Meshcnt = .sbss:0x801D3D4C; // type:object size:0x4 scope:local data:4byte +normtop = .sbss:0x801D3D50; // type:object size:0x4 scope:local data:4byte +normenv = .sbss:0x801D3D54; // type:object size:0x4 scope:local data:4byte +vtxenv = .sbss:0x801D3D58; // type:object size:0x4 scope:local data:4byte +CurHsf = .sbss:0x801D3D5C; // type:object size:0x4 scope:local data:4byte +objtop = .sbss:0x801D3D60; // type:object size:0x4 scope:local data:4byte +nMesh = .sbss:0x801D3D64; // type:object size:0x4 scope:local data:4byte +nObj = .sbss:0x801D3D68; // type:object size:0x4 scope:local data:4byte +MtxTop = .sbss:0x801D3D6C; // type:object size:0x4 data:4byte +Vertextop = .sbss:0x801D3D70; // type:object size:0x4 data:4byte +seqLanguage = .sbss:0x801D3D78; // type:object size:0x4 scope:local data:4byte +pauseProcess = .sbss:0x801D3D7C; // type:object size:0x4 scope:local data:4byte +pauseActiveF = .sbss:0x801D3D80; // type:object size:0x4 scope:local data:4byte +pauseExitF = .sbss:0x801D3D84; // type:object size:0x4 scope:local data:4byte +pauseWaitF = .sbss:0x801D3D88; // type:object size:0x4 scope:local data:4byte +seqRecordVal = .sbss:0x801D3D8C; // type:object size:0x4 scope:local data:4byte +seqPauseF = .sbss:0x801D3D90; // type:object size:0x2 scope:local data:2byte +seqSpeed = .sbss:0x801D3D92; // type:object size:0x2 scope:local data:2byte +lbl_801D3D94 = .sbss:0x801D3D94; // type:object size:0x1 data:byte +seqDoneF = .sbss:0x801D3D95; // type:object size:0x1 scope:local data:byte +seqTimer = .sbss:0x801D3D96; // type:object size:0x2 scope:local data:2byte +gid = .sbss:0x801D3D98; // type:object size:0x2 scope:local data:2byte +lbl_801D3DA0 = .sbss:0x801D3DA0; // type:object size:0x8 +wipeFadeInF = .sbss:0x801D3DA8; // type:object size:0x8 data:4byte +fontAnim = .sbss:0x801D3DB0; // type:object size:0x4 data:4byte +LanguageNo = .sbss:0x801D3DB4; // type:object size:0x1 scope:local data:byte +comKeyIdx = .sbss:0x801D3DB6; // type:object size:0x2 scope:local data:2byte +comKeyIdxNow = .sbss:0x801D3DB8; // type:object size:0x2 scope:local data:2byte +mesCharCnt = .sbss:0x801D3DBA; // type:object size:0x2 scope:local data:2byte +cancelCRF = .sbss:0x801D3DBC; // type:object size:0x4 scope:local data:4byte +fontWidthP = .sbss:0x801D3DC0; // type:object size:0x4 scope:local data:4byte +winAMemP = .sbss:0x801D3DC4; // type:object size:0x4 scope:local data:4byte +winInsertF = .sbss:0x801D3DC8; // type:object size:0x1 scope:local data:byte +winTabSize = .sbss:0x801D3DC9; // type:object size:0x1 scope:local data:byte +mesWInsert = .sbss:0x801D3DCA; // type:object size:0x8 scope:local +winMaxHeight = .sbss:0x801D3DD2; // type:object size:0x2 scope:local data:2byte +winMaxWidth = .sbss:0x801D3DD4; // type:object size:0x2 scope:local data:2byte +messDataNo = .sbss:0x801D3DD8; // type:object size:0x4 scope:local data:4byte +messDataPtr = .sbss:0x801D3DDC; // type:object size:0x4 data:4byte +winProc = .sbss:0x801D3DE0; // type:object size:0x4 scope:local data:4byte +cardAnimB = .sbss:0x801D3DE4; // type:object size:0x4 scope:local data:4byte +cardAnimA = .sbss:0x801D3DE8; // type:object size:0x4 scope:local data:4byte +cursorAnim = .sbss:0x801D3DEC; // type:object size:0x4 scope:local data:4byte +iconAnim = .sbss:0x801D3DF0; // type:object size:0x4 scope:local data:4byte +UnMountCnt = .sbss:0x801D3DF8; // type:object size:0x1 data:byte +cardWork = .sbss:0x801D3DFC; // type:object size:0x4 scope:local data:4byte +arqIdx = .sbss:0x801D3E00; // type:object size:0x2 scope:local data:2byte +arqCnt = .sbss:0x801D3E04; // type:object size:0x4 scope:local data:4byte +ARBase = .sbss:0x801D3E08; // type:object size:0x8 scope:local data:4byte +effectAMemP = .sbss:0x801D3E10; // type:object size:0x4 scope:local data:4byte +skipAnimUpdate = .sbss:0x801D3E14; // type:object size:0x4 scope:local data:4byte +ColisionCount = .sbss:0x801D3E18; // type:object size:0x4 data:4byte +topvtx = .sbss:0x801D3E1C; // type:object size:0x4 scope:local data:4byte +AttrHsf = .sbss:0x801D3E20; // type:object size:0x4 scope:local data:4byte +HitFaceCount = .sbss:0x801D3E24; // type:object size:0x4 data:4byte +nChar = .sbss:0x801D3E28; // type:object size:0x4 +nMap = .sbss:0x801D3E2C; // type:object size:0x4 data:4byte +AddZ = .sbss:0x801D3E30; // type:object size:0x4 data:float +AddX = .sbss:0x801D3E34; // type:object size:0x4 data:float +Initialized = .sbss:0x801D3E38; // type:object size:0x4 scope:local data:4byte +OldAIDCallback = .sbss:0x801D3E3C; // type:object size:0x4 scope:local data:4byte +AudioSystem = .sbss:0x801D3E40; // type:object size:0x4 scope:local data:4byte +bufIdx = .sbss:0x801D3E44; // type:object size:0x4 scope:local data:4byte +CurAudioBuffer = .sbss:0x801D3E48; // type:object size:0x4 scope:local data:4byte +LastAudioBuffer = .sbss:0x801D3E4C; // type:object size:0x4 scope:local data:4byte +SoundBufferIndex = .sbss:0x801D3E50; // type:object size:0x4 scope:local data:4byte +THPProc = .sbss:0x801D3E58; // type:object size:0x4 data:4byte +THPStart = .sbss:0x801D3E5C; // type:object size:0x2 scope:local data:2byte +THPFrame = .sbss:0x801D3E60; // type:object size:0x4 scope:local data:4byte +THPStat = .sbss:0x801D3E64; // type:object size:0x2 scope:local data:2byte +THPLoopF = .sbss:0x801D3E66; // type:object size:0x2 scope:local data:2byte +decodeThread = .sbss:0x801D3E68; // type:object size:0x4 scope:local data:4byte +decodeStackP = .sbss:0x801D3E6C; // type:object size:0x4 scope:local data:4byte +decodeRate = .sbss:0x801D3E70; // type:object size:0x4 scope:local data:4byte +audioTrack = .sbss:0x801D3E74; // type:object size:0x8 scope:local data:4byte +mgBoardHostEnableF = .sbss:0x801D3E80; // type:object size:0x1 +mgInstExitEnableF = .sbss:0x801D3E84; // type:object size:0x4 +mgPracticeEnableF = .sbss:0x801D3E88; // type:object size:0x4 data:4byte +mgQuitExtraF = .sbss:0x801D3E8C; // type:object size:0x4 data:4byte +mgRecordExtra = .sbss:0x801D3E90; // type:object size:0x4 +lbl_801D3E94 = .sbss:0x801D3E94; // type:object size:0x1 +mgBattleStarMax = .sbss:0x801D3E96; // type:object size:0x2 +mgBattleStar = .sbss:0x801D3E98; // type:object size:0x8 +mgTypeCurr = .sbss:0x801D3EA0; // type:object size:0x2 data:2byte +curSlotNo = .sbss:0x801D3EA8; // type:object size:0x2 data:2byte +curBoxNo = .sbss:0x801D3EAA; // type:object size:0x1 data:byte +saveExecF = .sbss:0x801D3EAC; // type:object size:0x4 +SLSerialNo = .sbss:0x801D3EB0; // type:object size:0x8 data:4byte +H_ResetReady = .sbss:0x801D3EB8; // type:object size:0x4 scope:local data:4byte +SR_RestartChk = .sbss:0x801D3EBC; // type:object size:0x4 scope:local data:4byte +SR_ExecReset = .sbss:0x801D3EC0; // type:object size:0x4 data:4byte +trychkBusyWait = .sbss:0x801D3EC4; // type:object size:0x4 scope:local data:4byte +XfbProg = .sbss:0x801D3EC8; // type:object size:0x4 scope:local data:4byte +XfbH = .sbss:0x801D3ECC; // type:object size:0x2 scope:local data:2byte +XfbW = .sbss:0x801D3ECE; // type:object size:0x2 scope:local data:2byte +boardMainProc = .sbss:0x801D3ED0; // type:object size:0x4 data:4byte +boardObjMan = .sbss:0x801D3ED4; // type:object size:0x4 data:4byte +cameraObj = .sbss:0x801D3ED8; // type:object size:0x4 scope:local data:4byte +tauntObj = .sbss:0x801D3EDC; // type:object size:0x4 scope:local data:4byte +cameraUseBackup = .sbss:0x801D3EE0; // type:object size:0x4 scope:local data:4byte +createFunc = .sbss:0x801D3EE4; // type:object size:0x4 scope:local data:4byte +destroyFunc = .sbss:0x801D3EE8; // type:object size:0x4 scope:local data:4byte +boardLightSetHook = .sbss:0x801D3EEC; // type:object size:0x4 data:4byte +boardLightResetHook = .sbss:0x801D3EF0; // type:object size:0x4 data:4byte +boardTurnFunc = .sbss:0x801D3EF4; // type:object size:0x4 data:4byte +boardStarGiveHook = .sbss:0x801D3EF8; // type:object size:0x4 data:4byte +boardStarShowNextHook = .sbss:0x801D3EFC; // type:object size:0x4 data:4byte +boardBowserHook = .sbss:0x801D3F00; // type:object size:0x4 data:4byte +boardTurnStartFunc = .sbss:0x801D3F04; // type:object size:0x4 data:4byte +filterObj = .sbss:0x801D3F08; // type:object size:0x4 scope:local data:4byte +confettiObj = .sbss:0x801D3F0C; // type:object size:0x4 scope:local data:4byte +last5GfxObj = .sbss:0x801D3F10; // type:object size:0x4 scope:local data:4byte +boardRandSeed = .sbss:0x801D3F14; // type:object size:0x4 data:4byte +boardMainObj = .sbss:0x801D3F18; // type:object size:0x4 data:4byte +megaDoubleDiceF = .sbss:0x801D3F20; // type:object size:0x4 scope:local data:4byte +bowserSuitObj = .sbss:0x801D3F24; // type:object size:0x4 scope:local data:4byte +junctionMask = .sbss:0x801D3F28; // type:object size:0x4 scope:local data:4byte +junctionObj = .sbss:0x801D3F2C; // type:object size:0x4 scope:local data:4byte +rollObj = .sbss:0x801D3F30; // type:object size:0x4 scope:local data:4byte +moveAwayObj = .sbss:0x801D3F34; // type:object size:0x4 scope:local data:4byte +junctionArrowRot = .sbss:0x801D3F38; // type:object size:0x8 scope:local +moveAwayPlayer = .sbss:0x801D3F40; // type:object size:0x4 scope:local data:byte +itemPrev = .sbss:0x801D3F44; // type:object size:0x1 scope:local data:byte +playerMot = .sbss:0x801D3F46; // type:object size:0x8 scope:local +boardPlayerMdl = .sbss:0x801D3F4E; // type:object size:0x8 +modelDataList = .sbss:0x801D3F58; // type:object size:0x4 scope:local data:4byte +modelMgrObj = .sbss:0x801D3F5C; // type:object size:0x4 scope:local data:4byte +modelDataNum = .sbss:0x801D3F60; // type:object size:0x2 scope:local data:2byte +winProc = .sbss:0x801D3F68; // type:object size:0x4 scope:local data:4byte +comKeyFunc = .sbss:0x801D3F6C; // type:object size:0x4 scope:local data:4byte +lbl_801D3F70 = .sbss:0x801D3F70; // type:object size:0x8 data:float +winAttr = .sbss:0x801D3F78; // type:object size:0x4 scope:local data:4byte +winMess = .sbss:0x801D3F7C; // type:object size:0x4 scope:local data:4byte +defaultChoice = .sbss:0x801D3F80; // type:object size:0x2 scope:local data:2byte +messSpeed = .sbss:0x801D3F82; // type:object size:0x2 scope:local data:2byte +winPrio = .sbss:0x801D3F84; // type:object size:0x2 scope:local data:2byte +winWait = .sbss:0x801D3F86; // type:object size:0x1 scope:local data:byte +winPause = .sbss:0x801D3F87; // type:object size:0x1 scope:local data:byte +disablePlayer = .sbss:0x801D3F88; // type:object size:0x1 scope:local data:byte +winPosIdx = .sbss:0x801D3F89; // type:object size:0x1 scope:local data:byte +winPortrait = .sbss:0x801D3F8A; // type:object size:0x1 scope:local data:byte +autoPickF = .sbss:0x801D3F8B; // type:object size:0x1 scope:local data:byte +winChoice = .sbss:0x801D3F8C; // type:object size:0x1 scope:local data:byte +boardSeq = .sbss:0x801D3F90; // type:object size:0x8 scope:local +viewProc = .sbss:0x801D3F98; // type:object size:0x4 scope:local data:4byte +pauseDisableF = .sbss:0x801D3F9C; // type:object size:0x1 scope:local data:byte +overheadObj = .sbss:0x801D3FA0; // type:object size:0x4 scope:local data:4byte +focusTimer = .sbss:0x801D3FA4; // type:object size:0x2 scope:local data:2byte +focusDestroyF = .sbss:0x801D3FA6; // type:object size:0x1 scope:local data:byte +viewMoveF = .sbss:0x801D3FA7; // type:object size:0x1 scope:local data:byte +viewPlayer = .sbss:0x801D3FA8; // type:object size:0x1 scope:local data:byte +viewControls = .sbss:0x801D3FA9; // type:object size:0x1 scope:local data:byte +spaceDrawF = .sbss:0x801D3FB0; // type:object size:0x2 scope:local data:2byte +spaceDrawCnt = .sbss:0x801D3FB4; // type:object size:0x4 scope:local data:4byte +walkEventFunc = .sbss:0x801D3FB8; // type:object size:0x4 scope:local data:4byte +walkMiniEventFunc = .sbss:0x801D3FBC; // type:object size:0x4 scope:local data:4byte +landEventFunc = .sbss:0x801D3FC0; // type:object size:0x4 scope:local data:4byte +lbl_801D3FC4 = .sbss:0x801D3FC4; // type:object size:0x8 data:2byte +spaceHiliteTexFmt = .sbss:0x801D3FCC; // type:object size:0x4 scope:local data:4byte +spaceTexFmt = .sbss:0x801D3FD0; // type:object size:0x4 scope:local data:4byte +spaceHiliteTexData = .sbss:0x801D3FD4; // type:object size:0x4 scope:local data:4byte +spaceTexData = .sbss:0x801D3FD8; // type:object size:0x4 scope:local data:4byte +spaceAttr = .sbss:0x801D3FDC; // type:object size:0x8 scope:local data:4byte +spaceCnt = .sbss:0x801D3FE4; // type:object size:0x4 scope:local data:2byte +shopProc = .sbss:0x801D3FE8; // type:object size:0x4 scope:local data:4byte +shopWinObj = .sbss:0x801D3FEC; // type:object size:0x4 scope:local data:4byte +itemGiveObj = .sbss:0x801D3FF0; // type:object size:0x4 scope:local data:4byte +itemChoiceObj = .sbss:0x801D3FF4; // type:object size:0x4 scope:local data:4byte +comF = .sbss:0x801D3FF8; // type:object size:0x4 scope:local data:4byte +angleVal = .sbss:0x801D3FFC; // type:object size:0x2 scope:local data:2byte +shopPlayer = .sbss:0x801D3FFE; // type:object size:0x1 scope:local data:byte +shopMdlPtr = .sbss:0x801D4000; // type:object size:0x4 scope:local data:4byte +shopMdlIdx = .sbss:0x801D4004; // type:object size:0x4 scope:local +lotteryProc = .sbss:0x801D4008; // type:object size:0x4 scope:local data:4byte +comInputDrawP = .sbss:0x801D400C; // type:object size:0x4 scope:local data:4byte +lotteryTicketPickObj = .sbss:0x801D4010; // type:object size:0x4 scope:local data:4byte +handUpdateF = .sbss:0x801D4014; // type:object size:0x4 scope:local data:4byte +comInputPos = .sbss:0x801D4018; // type:object size:0x1 scope:local data:byte +comLotteryWinType = .sbss:0x801D4019; // type:object size:0x1 scope:local data:byte +comLotteryType = .sbss:0x801D401A; // type:object size:0x1 scope:local data:byte +lbl_801D401B = .sbss:0x801D401B; // type:object size:0x1 data:byte +currPrize = .sbss:0x801D401C; // type:object size:0x1 scope:local data:byte +lotterySpace = .sbss:0x801D401E; // type:object size:0x2 scope:local data:2byte +lotteryMessBase = .sbss:0x801D4020; // type:object size:0x4 scope:local data:4byte +warpProcess = .sbss:0x801D4028; // type:object size:0x4 scope:local data:4byte +warpYVel = .sbss:0x801D402C; // type:object size:0x4 scope:local data:float +warpYFloor = .sbss:0x801D4030; // type:object size:0x4 scope:local data:float +warpSpace = .sbss:0x801D4034; // type:object size:0x2 scope:local data:2byte +warpImpactCnt = .sbss:0x801D4036; // type:object size:0x1 scope:local data:byte +warpTarget = .sbss:0x801D4037; // type:object size:0x1 scope:local data:byte +warpState = .sbss:0x801D4038; // type:object size:0x1 scope:local data:byte +charWheelObj = .sbss:0x801D4040; // type:object size:0x4 scope:local data:4byte +targetF = .sbss:0x801D4044; // type:object size:0x2 scope:local data:2byte +angleOfs = .sbss:0x801D4048; // type:object size:0x4 scope:local data:float +targetVal = .sbss:0x801D404C; // type:object size:0x2 scope:local data:2byte +wheelSpeed = .sbss:0x801D4050; // type:object size:0x4 scope:local data:float +wheelTimer = .sbss:0x801D4054; // type:object size:0x2 scope:local data:2byte +comDelay = .sbss:0x801D4056; // type:object size:0x2 scope:local data:2byte +wheelChars = .sbss:0x801D4058; // type:object size:0x4 scope:local data:byte +mushroomProc = .sbss:0x801D4060; // type:object size:0x4 scope:local data:4byte +itemGiveObj = .sbss:0x801D4064; // type:object size:0x4 scope:local data:4byte +pickerChoice = .sbss:0x801D4068; // type:object size:0x1 scope:local data:byte +itemResult = .sbss:0x801D4069; // type:object size:0x1 scope:local data:byte +starProc = .sbss:0x801D4070; // type:object size:0x4 scope:local data:4byte +giveStarObj = .sbss:0x801D4074; // type:object size:0x4 scope:local data:4byte +starEffAnim = .sbss:0x801D4078; // type:object size:0x4 scope:local data:4byte +starDoneF = .sbss:0x801D407C; // type:object size:0x2 scope:local data:2byte +showNextObj = .sbss:0x801D4080; // type:object size:0x4 scope:local data:4byte +hostMot = .sbss:0x801D4084; // type:object size:0x4 scope:local data:2byte +rollProc = .sbss:0x801D4088; // type:object size:0x4 scope:local data:4byte +tutorialRollF = .sbss:0x801D408C; // type:object size:0x1 scope:local data:byte +sameRollCoinStr = .sbss:0x801D408D; // type:object size:0x8 scope:local +lbl_801D4098 = .sbss:0x801D4098; // type:object size:0x4 data:4byte +diceSize = .sbss:0x801D409C; // type:object size:0x1 scope:local data:byte +destMode = .sbss:0x801D409D; // type:object size:0x1 scope:local data:byte +maxRoll = .sbss:0x801D409E; // type:object size:0x1 scope:local data:byte +inputTimer = .sbss:0x801D409F; // type:object size:0x1 scope:local data:byte +numDice = .sbss:0x801D40A0; // type:object size:0x1 scope:local data:byte +rollPlayer = .sbss:0x801D40A1; // type:object size:0x1 scope:local data:byte +diceValue = .sbss:0x801D40A2; // type:object size:0x3 scope:local data:byte +statusProc = .sbss:0x801D40A8; // type:object size:0x4 scope:local data:4byte +itemWindowObj = .sbss:0x801D40AC; // type:object size:0x4 scope:local data:4byte +pickerObj = .sbss:0x801D40B0; // type:object size:0x4 scope:local data:4byte +yourTurnObj = .sbss:0x801D40B4; // type:object size:0x4 scope:local data:4byte +itemUseProc = .sbss:0x801D40B8; // type:object size:0x4 scope:local data:4byte +itemPickObj = .sbss:0x801D40BC; // type:object size:0x4 scope:local data:4byte +itemPickupPos = .sbss:0x801D40C0; // type:object size:0x4 scope:local data:float +itemRandTbl = .sbss:0x801D40C4; // type:object size:0x6 scope:local +teamItemPlayer = .sbss:0x801D40CA; // type:object size:0x1 scope:local data:byte +itemUsed = .sbss:0x801D40CB; // type:object size:0x1 scope:local data:byte +itemPlayer = .sbss:0x801D40CC; // type:object size:0x1 scope:local data:byte +yourTurnSpr = .sbss:0x801D40CE; // type:object size:0x2 scope:local data:2byte +lbl_801D40D0 = .sbss:0x801D40D0; // type:object size:0x4 data:4byte +pickerBackF = .sbss:0x801D40D4; // type:object size:0x4 scope:local data:4byte +pickerChoiceDefault = .sbss:0x801D40D8; // type:object size:0x1 scope:local data:byte +pickerChoice = .sbss:0x801D40D9; // type:object size:0x1 scope:local data:byte +boardItemUser = .sbss:0x801D40DA; // type:object size:0x1 data:byte +itemTeamF = .sbss:0x801D40DB; // type:object size:0x1 scope:local data:byte +itemTeam = .sbss:0x801D40DC; // type:object size:0x1 scope:local data:byte +blockProc = .sbss:0x801D40E0; // type:object size:0x4 scope:local data:4byte +blockObj = .sbss:0x801D40E4; // type:object size:0x4 scope:local data:4byte +rotY = .sbss:0x801D40E8; // type:object size:0x4 scope:local data:float +scaleAngle = .sbss:0x801D40EC; // type:object size:0x4 scope:local data:float +rotMax = .sbss:0x801D40F0; // type:object size:0x4 scope:local data:float +itemProc = .sbss:0x801D40F8; // type:object size:0x4 scope:local data:4byte +geniePlayerMot = .sbss:0x801D40FC; // type:object size:0x6 scope:local data:2byte +genieParticleAnim = .sbss:0x801D4104; // type:object size:0x4 scope:local data:4byte +genieFov = .sbss:0x801D4108; // type:object size:0x4 scope:local data:float +booCoinStr = .sbss:0x801D410C; // type:object size:0x8 scope:local +booBallAlpha = .sbss:0x801D4114; // type:object size:0x4 scope:local data:float +booBallMdl = .sbss:0x801D4118; // type:object size:0x2 scope:local data:2byte +suitCommonMot = .sbss:0x801D411C; // type:object size:0x8 scope:local data:4byte +suitMot = .sbss:0x801D4124; // type:object size:0x8 scope:local data:4byte +suitMdl = .sbss:0x801D412C; // type:object size:0x2 scope:local data:2byte +currItem = .sbss:0x801D412E; // type:object size:0x1 scope:local data:byte +currItemRestore = .sbss:0x801D412F; // type:object size:0x1 scope:local data:byte +itemBagItems = .sbss:0x801D4130; // type:object size:0x6 scope:local +bowserProc = .sbss:0x801D4138; // type:object size:0x4 scope:local data:4byte +bowserObj = .sbss:0x801D413C; // type:object size:0x4 scope:local data:4byte +miniBowserObj = .sbss:0x801D4140; // type:object size:0x4 scope:local data:4byte +bowserEventObj = .sbss:0x801D4144; // type:object size:0x4 scope:local data:4byte +miniBowserBalloonObj = .sbss:0x801D4148; // type:object size:0x4 scope:local data:4byte +suitGiveObj = .sbss:0x801D414C; // type:object size:0x4 scope:local data:4byte +coinStealStr = .sbss:0x801D4150; // type:object size:0x8 scope:local +coinStealStrAll = .sbss:0x801D4158; // type:object size:0x8 scope:local +fireAnim = .sbss:0x801D4160; // type:object size:0x4 scope:local data:4byte +fireParMan = .sbss:0x801D4164; // type:object size:0x2 scope:local data:2byte +playerMot = .sbss:0x801D4166; // type:object size:0x8 scope:local data:2byte +eventSpace = .sbss:0x801D416E; // type:object size:0x2 scope:local data:2byte +eventType = .sbss:0x801D4170; // type:object size:0x1 scope:local data:byte +eventPlayer = .sbss:0x801D4171; // type:object size:0x1 scope:local data:byte +battleProc = .sbss:0x801D4178; // type:object size:0x4 scope:local data:4byte +battleObj = .sbss:0x801D417C; // type:object size:0x4 scope:local data:4byte +explodeObj = .sbss:0x801D4180; // type:object size:0x4 scope:local data:4byte +battleCoinPosF = .sbss:0x801D4184; // type:object size:0x4 scope:local data:float +battleCoinSpeed = .sbss:0x801D4188; // type:object size:0x4 scope:local data:float +totalCoinStr = .sbss:0x801D418C; // type:object size:0x8 scope:local +battleMGIdx = .sbss:0x801D4194; // type:object size:0x2 scope:local data:byte +battleCoinIdx = .sbss:0x801D4196; // type:object size:0x1 scope:local data:byte +currSpace = .sbss:0x801D4198; // type:object size:0x2 scope:local data:2byte +mgChoice = .sbss:0x801D419A; // type:object size:0x1 scope:local data:byte +coinTakeMax = .sbss:0x801D419B; // type:object size:0x1 scope:local data:byte +currPlayer = .sbss:0x801D419C; // type:object size:0x1 scope:local data:byte +fortuneProc = .sbss:0x801D41A0; // type:object size:0x4 scope:local data:4byte +fortunePlatformObj = .sbss:0x801D41A4; // type:object size:0x4 scope:local data:4byte +comStar = .sbss:0x801D41A8; // type:object size:0x1 scope:local data:byte +comCoin = .sbss:0x801D41A9; // type:object size:0x1 scope:local data:byte +comPrize = .sbss:0x801D41AA; // type:object size:0x1 scope:local data:byte +comPlayer1 = .sbss:0x801D41AB; // type:object size:0x1 scope:local data:byte +comPlayer2 = .sbss:0x801D41AC; // type:object size:0x1 scope:local data:byte +currPlayer = .sbss:0x801D41AD; // type:object size:0x1 scope:local data:byte +booEventObj = .sbss:0x801D41B0; // type:object size:0x4 scope:local data:4byte +ballObj = .sbss:0x801D41B4; // type:object size:0x4 scope:local data:4byte +ballCameraObj = .sbss:0x801D41B8; // type:object size:0x4 scope:local data:4byte +ballBooObj = .sbss:0x801D41BC; // type:object size:0x4 scope:local data:4byte +ballPlayerObj = .sbss:0x801D41C0; // type:object size:0x4 scope:local data:4byte +ballTakeCoinObj = .sbss:0x801D41C4; // type:object size:0x4 scope:local data:4byte +attackTimer = .sbss:0x801D41C8; // type:object size:0x4 scope:local data:4byte +battleTimer = .sbss:0x801D41CC; // type:object size:0x4 scope:local data:4byte +starChoiceEnable = .sbss:0x801D41D0; // type:object size:0x3 scope:local +stealAvail = .sbss:0x801D41D3; // type:object size:0x3 scope:local +punchCount = .sbss:0x801D41D6; // type:object size:0x1 scope:local data:byte +stealSuccess = .sbss:0x801D41D7; // type:object size:0x1 scope:local data:byte +stealValue = .sbss:0x801D41D8; // type:object size:0x1 scope:local data:byte +booKillF = .sbss:0x801D41DC; // type:object size:0x4 scope:local data:4byte +stealType = .sbss:0x801D41E0; // type:object size:0x1 scope:local data:byte +stealTarget = .sbss:0x801D41E1; // type:object size:0x1 scope:local data:byte +lbl_801D41E2 = .sbss:0x801D41E2; // type:object size:0x1 data:byte +mgSetupProc = .sbss:0x801D41E8; // type:object size:0x4 scope:local data:4byte +mgSetupObj = .sbss:0x801D41EC; // type:object size:0x4 scope:local data:4byte +hiliteShowF = .sbss:0x801D41F0; // type:object size:0x1 scope:local data:byte +hiliteBlinkLen = .sbss:0x801D41F1; // type:object size:0x1 scope:local data:byte +hiliteTimer = .sbss:0x801D41F2; // type:object size:0x1 scope:local data:byte +mgPlayBattle = .sbss:0x801D41F4; // type:object size:0x4 scope:local +mgPlay2Vs2 = .sbss:0x801D41F8; // type:object size:0x6 scope:local +mgPlay1Vs3 = .sbss:0x801D41FE; // type:object size:0x6 scope:local +mgPlayBattleLen = .sbss:0x801D4204; // type:object size:0x1 scope:local data:byte +mgPlay2Vs2Len = .sbss:0x801D4205; // type:object size:0x1 scope:local data:byte +mgPlay1Vs3Len = .sbss:0x801D4206; // type:object size:0x1 scope:local data:byte +mgPlay4PLen = .sbss:0x801D4207; // type:object size:0x1 scope:local data:byte +mgNext = .sbss:0x801D4208; // type:object size:0x2 scope:local data:2byte +hilitePos = .sbss:0x801D420C; // type:object size:0x4 scope:local data:float +luckyF = .sbss:0x801D4210; // type:object size:0x4 scope:local data:4byte +mgType = .sbss:0x801D4214; // type:object size:0x1 scope:local data:byte +houseProc = .sbss:0x801D4218; // type:object size:0x4 scope:local data:4byte +stealAmountStr = .sbss:0x801D421C; // type:object size:0x8 scope:local +comCoinStealTarget = .sbss:0x801D4224; // type:object size:0x4 scope:local data:4byte +comStarStealTarget = .sbss:0x801D4228; // type:object size:0x1 scope:local data:byte +stealTarget = .sbss:0x801D4229; // type:object size:0x1 scope:local data:byte +currPlayer = .sbss:0x801D422A; // type:object size:0x1 scope:local data:byte +startProc = .sbss:0x801D4230; // type:object size:0x4 scope:local data:4byte +playerOrderOld = .sbss:0x801D4234; // type:object size:0x4 scope:local +playerOrderNew = .sbss:0x801D4238; // type:object size:0x4 scope:local +startSpace = .sbss:0x801D423C; // type:object size:0x2 scope:local data:2byte +hostMdl = .sbss:0x801D423E; // type:object size:0x2 scope:local data:2byte +lotteryDrawWheelObj = .sbss:0x801D4240; // type:object size:0x4 scope:local data:4byte +lotteryDrawObj = .sbss:0x801D4244; // type:object size:0x4 scope:local data:4byte +hostMoveObj = .sbss:0x801D4248; // type:object size:0x4 scope:local data:4byte +teamResultObj = .sbss:0x801D424C; // type:object size:0x4 scope:local data:4byte +last5Proc = .sbss:0x801D4250; // type:object size:0x4 scope:local data:4byte +last5RouletteObj = .sbss:0x801D4254; // type:object size:0x4 scope:local data:4byte +hostMdl = .sbss:0x801D4258; // type:object size:0x2 scope:local data:2byte +last5Space = .sbss:0x801D425A; // type:object size:0x2 scope:local data:2byte +last5Player = .sbss:0x801D425C; // type:object size:0x1 scope:local data:byte +numTickets = .sbss:0x801D425D; // type:object size:0x1 scope:local data:byte +currTicket = .sbss:0x801D425E; // type:object size:0x1 scope:local data:byte +mainProcess = .sbss:0x801D4260; // type:object size:0x4 scope:local data:4byte +quitProcess = .sbss:0x801D4264; // type:object size:0x4 scope:local data:4byte +configObj = .sbss:0x801D4268; // type:object size:0x4 scope:local data:4byte +boxState = .sbss:0x801D426C; // type:object size:0x8 scope:local +cursorPos = .sbss:0x801D4274; // type:object size:0x1 scope:local data:byte +hostMdl = .sbss:0x801D4276; // type:object size:0x2 scope:local data:2byte +hostOldLayer = .sbss:0x801D4278; // type:object size:0x1 scope:local data:byte +mainScreenF = .sbss:0x801D4279; // type:object size:0x1 scope:local data:byte +pauseQuitF = .sbss:0x801D427A; // type:object size:0x1 scope:local data:byte +childNodeCnt = .sbss:0x801D4280; // type:object size:0x2 scope:local data:2byte +numCandidates = .sbss:0x801D4282; // type:object size:0x2 scope:local data:2byte +gameStatCopy = .sbss:0x801D4288; // type:object size:0x4 scope:local data:4byte +systemCopy = .sbss:0x801D428C; // type:object size:0x4 scope:local data:4byte +playerCopy = .sbss:0x801D4290; // type:object size:0x4 scope:local data:4byte +playerCfgCopy = .sbss:0x801D4294; // type:object size:0x4 scope:local data:4byte +tutorialProcess = .sbss:0x801D4298; // type:object size:0x4 scope:local data:4byte +boardTutorialF = .sbss:0x801D429C; // type:object size:0x1 data:byte +hostMdl = .sbss:0x801D429E; // type:object size:0x2 scope:local data:2byte +boardTutorialUseItem = .sbss:0x801D42A0; // type:object size:0x1 data:byte +boardTutorialBlockF = .sbss:0x801D42A1; // type:object size:0x1 data:byte +boardTutorialBlockItem = .sbss:0x801D42A2; // type:object size:0x1 data:byte +boardTutorialBlockPos = .sbss:0x801D42A4; // type:object size:0x4 data:4byte +boardTutorialDirInputTime = .sbss:0x801D42A8; // type:object size:0x2 data:2byte +boardTutorialDirInputY = .sbss:0x801D42AA; // type:object size:0x1 data:byte +boardTutorialDirInputX = .sbss:0x801D42AB; // type:object size:0x1 data:byte +tutorialHook = .sbss:0x801D42AC; // type:object size:0x4 scope:local data:4byte +BootInfo = .sbss:0x801D42B0; // type:object size:0x4 scope:local data:4byte +BI2DebugFlag = .sbss:0x801D42B4; // type:object size:0x4 scope:local data:4byte +BI2DebugFlagHolder = .sbss:0x801D42B8; // type:object size:0x4 scope:local data:4byte +__OSIsGcam = .sbss:0x801D42BC; // type:object size:0x4 scope:global data:4byte +AreWeInitialized = .sbss:0x801D42C0; // type:object size:0x4 scope:local data:4byte +OSExceptionTable = .sbss:0x801D42C4; // type:object size:0x4 scope:local data:4byte +__OSSavedRegionEnd = .sbss:0x801D42C8; // type:object size:0x4 scope:global data:4byte +__OSSavedRegionStart = .sbss:0x801D42CC; // type:object size:0x4 scope:global data:4byte +__OSInIPL = .sbss:0x801D42D0; // type:object size:0x4 scope:global data:4byte +__OSStartTime = .sbss:0x801D42D8; // type:object size:0x8 scope:global data:4byte +AlarmQueue = .sbss:0x801D42E0; // type:object size:0x8 scope:local data:4byte +HeapArray = .sbss:0x801D42E8; // type:object size:0x4 scope:local data:4byte +NumHeaps = .sbss:0x801D42EC; // type:object size:0x4 scope:local data:4byte +ArenaStart = .sbss:0x801D42F0; // type:object size:0x4 scope:local data:4byte +ArenaEnd = .sbss:0x801D42F4; // type:object size:0x4 scope:local data:4byte +__OSArenaHi = .sbss:0x801D42F8; // type:object size:0x4 scope:local data:4byte +InterruptHandlerTable = .sbss:0x801D4300; // type:object size:0x4 scope:local data:4byte +__OSLastInterruptSrr0 = .sbss:0x801D4304; // type:object size:0x4 scope:global data:4byte +__OSLastInterrupt = .sbss:0x801D4308; // type:object size:0x2 scope:global data:2byte +__OSLastInterruptTime = .sbss:0x801D4310; // type:object size:0x8 scope:global data:4byte +SaveStart = .sbss:0x801D4318; // type:object size:0x4 scope:local data:4byte +SaveEnd = .sbss:0x801D431C; // type:object size:0x4 scope:local data:4byte +Prepared = .sbss:0x801D4320; // type:object size:0x8 scope:local data:4byte +ResetFunctionQueue = .sbss:0x801D4328; // type:object size:0x8 scope:local data:4byte +ResetCallback = .sbss:0x801D4330; // type:object size:0x4 data:4byte +Down = .sbss:0x801D4334; // type:object size:0x4 data:4byte +LastState = .sbss:0x801D4338; // type:object size:0x8 scope:local data:4byte +HoldUp = .sbss:0x801D4340; // type:object size:0x8 align:8 data:4byte +HoldDown = .sbss:0x801D4348; // type:object size:0x8 align:8 data:4byte +RunQueueBits = .sbss:0x801D4350; // type:object size:0x4 scope:local data:4byte +RunQueueHint = .sbss:0x801D4354; // type:object size:0x4 scope:local data:4byte +Reschedule = .sbss:0x801D4358; // type:object size:0x4 scope:local data:4byte +__DBInterface = .sbss:0x801D4360; // type:object size:0x4 scope:global data:4byte +DBVerbose = .sbss:0x801D4364; // type:object size:0x4 scope:global data:4byte +StopAtNextInt = .sbss:0x801D4368; // type:object size:0x4 scope:local data:4byte +LastLength = .sbss:0x801D436C; // type:object size:0x4 scope:local data:4byte +Callback = .sbss:0x801D4370; // type:object size:0x4 scope:local data:4byte +ResetCoverCallback = .sbss:0x801D4374; // type:object size:0x4 scope:local data:4byte +LastResetEnd = .sbss:0x801D4378; // type:object size:0x8 scope:local data:4byte +ResetOccurred = .sbss:0x801D4380; // type:object size:0x4 scope:local data:4byte +WaitingCoverClose = .sbss:0x801D4384; // type:object size:0x4 scope:local data:4byte +Breaking = .sbss:0x801D4388; // type:object size:0x4 scope:local data:4byte +WorkAroundType = .sbss:0x801D438C; // type:object size:0x4 scope:local data:4byte +WorkAroundSeekLocation = .sbss:0x801D4390; // type:object size:0x4 scope:local data:4byte +LastReadFinished = .sbss:0x801D4398; // type:object size:0x8 scope:local data:4byte +LastReadIssued = .sbss:0x801D43A0; // type:object size:0x8 scope:local data:4byte +LastCommandWasRead = .sbss:0x801D43A8; // type:object size:0x4 scope:local data:4byte +NextCommandNumber = .sbss:0x801D43AC; // type:object size:0x4 scope:local data:4byte +BootInfo = .sbss:0x801D43B0; // type:object size:0x4 scope:local data:4byte +FstStart = .sbss:0x801D43B4; // type:object size:0x4 scope:local data:4byte +FstStringStart = .sbss:0x801D43B8; // type:object size:0x4 scope:local data:4byte +MaxEntryNum = .sbss:0x801D43BC; // type:object size:0x4 scope:local data:4byte +currentDirectory = .sbss:0x801D43C0; // type:object size:0x4 scope:local data:4byte +__DVDLongFileNameFlag = .sbss:0x801D43C4; // type:object size:0x4 scope:global data:4byte +__DVDThreadQueue = .sbss:0x801D43C8; // type:object size:0x8 scope:global +executing = .sbss:0x801D43D0; // type:object size:0x4 scope:local data:4byte +currID = .sbss:0x801D43D4; // type:object size:0x4 scope:local data:4byte +bootInfo = .sbss:0x801D43D8; // type:object size:0x4 scope:local data:4byte +PauseFlag = .sbss:0x801D43DC; // type:object size:0x4 scope:local data:4byte +PausingFlag = .sbss:0x801D43E0; // type:object size:0x4 scope:local data:4byte +AutoFinishing = .sbss:0x801D43E4; // type:object size:0x4 scope:local data:4byte +FatalErrorFlag = .sbss:0x801D43E8; // type:object size:0x4 scope:local data:4byte +CurrCommand = .sbss:0x801D43EC; // type:object size:0x4 scope:local data:4byte +Canceling = .sbss:0x801D43F0; // type:object size:0x4 scope:local data:4byte +CancelCallback = .sbss:0x801D43F4; // type:object size:0x4 scope:local data:4byte +ResumeFromHere = .sbss:0x801D43F8; // type:object size:0x4 scope:local data:4byte +CancelLastError = .sbss:0x801D43FC; // type:object size:0x4 scope:local data:4byte +LastError = .sbss:0x801D4400; // type:object size:0x4 scope:local data:4byte +NumInternalRetry = .sbss:0x801D4404; // type:object size:0x4 scope:local data:4byte +ResetRequired = .sbss:0x801D4408; // type:object size:0x4 scope:local data:4byte +FirstTimeInBootrom = .sbss:0x801D440C; // type:object size:0x4 scope:local data:4byte +DVDInitialized = .sbss:0x801D4410; // type:object size:0x4 scope:local data:4byte +LastState = .sbss:0x801D4414; // type:object size:0x4 scope:local data:4byte +status = .sbss:0x801D4418; // type:object size:0x4 scope:local data:4byte +bb2 = .sbss:0x801D441C; // type:object size:0x4 scope:local data:4byte +idTmp = .sbss:0x801D4420; // type:object size:0x4 scope:local data:4byte +retraceCount = .sbss:0x801D4428; // type:object size:0x4 scope:local data:4byte +flushFlag = .sbss:0x801D442C; // type:object size:0x4 scope:local data:4byte +retraceQueue = .sbss:0x801D4430; // type:object size:0x8 scope:local +PreCB = .sbss:0x801D4438; // type:object size:0x4 scope:local data:4byte +PostCB = .sbss:0x801D443C; // type:object size:0x4 scope:local data:4byte +encoderType = .sbss:0x801D4440; // type:object size:0x4 scope:local data:4byte +displayOffsetH = .sbss:0x801D4444; // type:object size:0x2 scope:local data:2byte +displayOffsetV = .sbss:0x801D4446; // type:object size:0x2 scope:local data:2byte +changeMode = .sbss:0x801D4448; // type:object size:0x4 scope:local data:4byte +changed = .sbss:0x801D4450; // type:object size:0x8 scope:local align:8 data:4byte +shdwChangeMode = .sbss:0x801D4458; // type:object size:0x4 scope:local data:4byte +shdwChanged = .sbss:0x801D4460; // type:object size:0x8 scope:local align:8 data:4byte +CurrTiming = .sbss:0x801D4468; // type:object size:0x4 scope:local data:4byte +CurrTvMode = .sbss:0x801D446C; // type:object size:0x4 scope:local data:4byte +FBSet = .sbss:0x801D4470; // type:object size:0x4 scope:local data:4byte +message$320 = .sbss:0x801D4474; // type:object size:0x4 scope:local data:4byte +rmode = .sbss:0x801D4478; // type:object size:0x8 scope:local data:4byte +fontShift = .sbss:0x801D4480; // type:object size:0x8 scope:local data:4byte +DemoStat = .sbss:0x801D4488; // type:object size:0x4 scope:local data:4byte +DemoStatIndx = .sbss:0x801D448C; // type:object size:0x4 scope:local data:4byte +DemoStatMaxIndx = .sbss:0x801D4490; // type:object size:0x4 scope:local data:4byte +DemoStatClocks = .sbss:0x801D4494; // type:object size:0x4 scope:local data:4byte +DemoStatDisp = .sbss:0x801D4498; // type:object size:0x4 scope:local data:4byte +topPixIn = .sbss:0x801D449C; // type:object size:0x4 scope:local data:4byte +topPixOut = .sbss:0x801D44A0; // type:object size:0x4 scope:local data:4byte +botPixIn = .sbss:0x801D44A4; // type:object size:0x4 scope:local data:4byte +botPixOut = .sbss:0x801D44A8; // type:object size:0x4 scope:local data:4byte +clrPixIn = .sbss:0x801D44AC; // type:object size:0x4 scope:local data:4byte +copyClks = .sbss:0x801D44B0; // type:object size:0x4 scope:local data:4byte +vcCheck = .sbss:0x801D44B4; // type:object size:0x4 scope:local data:4byte +vcMiss = .sbss:0x801D44B8; // type:object size:0x4 scope:local data:4byte +vcStall = .sbss:0x801D44BC; // type:object size:0x4 scope:local data:4byte +cpReq = .sbss:0x801D44C0; // type:object size:0x4 scope:local data:4byte +tcReq = .sbss:0x801D44C4; // type:object size:0x4 scope:local data:4byte +cpuRdReq = .sbss:0x801D44C8; // type:object size:0x4 scope:local data:4byte +cpuWrReq = .sbss:0x801D44CC; // type:object size:0x4 scope:local data:4byte +dspReq = .sbss:0x801D44D0; // type:object size:0x4 scope:local data:4byte +ioReq = .sbss:0x801D44D4; // type:object size:0x4 scope:local data:4byte +viReq = .sbss:0x801D44D8; // type:object size:0x4 scope:local data:4byte +peReq = .sbss:0x801D44DC; // type:object size:0x4 scope:local data:4byte +rfReq = .sbss:0x801D44E0; // type:object size:0x4 scope:local data:4byte +fiReq = .sbss:0x801D44E4; // type:object size:0x4 scope:local data:4byte +Initialized = .sbss:0x801D44E8; // type:object size:0x4 scope:local data:4byte +EnabledBits = .sbss:0x801D44EC; // type:object size:0x4 scope:local data:4byte +ResettingBits = .sbss:0x801D44F0; // type:object size:0x4 scope:local data:4byte +RecalibrateBits = .sbss:0x801D44F4; // type:object size:0x4 scope:local data:4byte +WaitingBits = .sbss:0x801D44F8; // type:object size:0x4 scope:local data:4byte +CheckingBits = .sbss:0x801D44FC; // type:object size:0x4 scope:local data:4byte +PendingBits = .sbss:0x801D4500; // type:object size:0x4 scope:local data:4byte +SamplingCallback = .sbss:0x801D4504; // type:object size:0x4 scope:local data:4byte +recalibrated$397 = .sbss:0x801D4508; // type:object size:0x4 scope:local data:4byte +__PADSpec = .sbss:0x801D450C; // type:object size:0x4 scope:global data:4byte +__AIS_Callback = .sbss:0x801D4510; // type:object size:0x4 scope:local data:4byte +__AID_Callback = .sbss:0x801D4514; // type:object size:0x4 scope:local data:4byte +__CallbackStack = .sbss:0x801D4518; // type:object size:0x4 scope:local data:4byte +__OldStack = .sbss:0x801D451C; // type:object size:0x4 scope:local data:4byte +__AI_init_flag = .sbss:0x801D4520; // type:object size:0x4 scope:local data:4byte +bound_32KHz = .sbss:0x801D4528; // type:object size:0x8 scope:local align:8 data:4byte +bound_48KHz = .sbss:0x801D4530; // type:object size:0x8 scope:local align:8 data:4byte +min_wait = .sbss:0x801D4538; // type:object size:0x8 scope:local align:8 data:4byte +max_wait = .sbss:0x801D4540; // type:object size:0x8 scope:local align:8 data:4byte +buffer = .sbss:0x801D4548; // type:object size:0x8 scope:local align:8 data:4byte +__AR_Callback = .sbss:0x801D4550; // type:object size:0x4 scope:local data:4byte +__AR_Size = .sbss:0x801D4554; // type:object size:0x4 scope:local data:4byte +__AR_InternalSize = .sbss:0x801D4558; // type:object size:0x4 scope:local data:4byte +__AR_ExpansionSize = .sbss:0x801D455C; // type:object size:0x4 scope:local data:4byte +__AR_StackPointer = .sbss:0x801D4560; // type:object size:0x4 scope:local data:4byte +__AR_FreeBlocks = .sbss:0x801D4564; // type:object size:0x4 scope:local data:4byte +__AR_BlockLength = .sbss:0x801D4568; // type:object size:0x4 scope:local data:4byte +__AR_init_flag = .sbss:0x801D456C; // type:object size:0x4 scope:local data:4byte +__ARQRequestQueueHi = .sbss:0x801D4570; // type:object size:0x4 scope:local data:4byte +__ARQRequestTailHi = .sbss:0x801D4574; // type:object size:0x4 scope:local data:4byte +__ARQRequestQueueLo = .sbss:0x801D4578; // type:object size:0x4 scope:local data:4byte +__ARQRequestTailLo = .sbss:0x801D457C; // type:object size:0x4 scope:local data:4byte +__ARQRequestPendingHi = .sbss:0x801D4580; // type:object size:0x4 scope:local data:4byte +__ARQRequestPendingLo = .sbss:0x801D4584; // type:object size:0x4 scope:local data:4byte +__ARQCallbackHi = .sbss:0x801D4588; // type:object size:0x4 scope:local data:4byte +__ARQCallbackLo = .sbss:0x801D458C; // type:object size:0x4 scope:local data:4byte +__ARQChunkSize = .sbss:0x801D4590; // type:object size:0x4 scope:local data:4byte +__ARQ_init_flag = .sbss:0x801D4594; // type:object size:0x4 scope:local data:4byte +__DSP_init_flag = .sbss:0x801D4598; // type:object size:0x8 scope:local data:4byte +__DSP_rude_task_pending = .sbss:0x801D45A0; // type:object size:0x4 data:4byte +__DSP_rude_task = .sbss:0x801D45A4; // type:object size:0x4 data:4byte +__DSP_tmp_task = .sbss:0x801D45A8; // type:object size:0x4 data:4byte +__DSP_last_task = .sbss:0x801D45AC; // type:object size:0x4 data:4byte +__DSP_first_task = .sbss:0x801D45B0; // type:object size:0x4 data:4byte +__DSP_curr_task = .sbss:0x801D45B4; // type:object size:0x4 data:4byte +__piReg = .sbss:0x801D45B8; // type:object size:0x4 scope:global data:4byte +__cpReg = .sbss:0x801D45BC; // type:object size:0x4 scope:global data:4byte +__peReg = .sbss:0x801D45C0; // type:object size:0x4 scope:global data:4byte +__memReg = .sbss:0x801D45C4; // type:object size:0x4 scope:global data:4byte +CPUFifo = .sbss:0x801D45C8; // type:object size:0x4 scope:local data:4byte +GPFifo = .sbss:0x801D45CC; // type:object size:0x4 scope:local data:4byte +__GXCurrentThread = .sbss:0x801D45D0; // type:object size:0x4 scope:local data:4byte +CPGPLinked = .sbss:0x801D45D4; // type:object size:0x1 scope:local data:byte +GXOverflowSuspendInProgress = .sbss:0x801D45D8; // type:object size:0x4 scope:local data:4byte +BreakPointCB = .sbss:0x801D45DC; // type:object size:0x4 scope:local data:4byte +__GXOverflowCount = .sbss:0x801D45E0; // type:object size:0x4 scope:local data:4byte +TokenCB = .sbss:0x801D45E8; // type:object size:0x4 scope:local data:4byte +DrawDoneCB = .sbss:0x801D45EC; // type:object size:0x4 scope:local data:4byte +DrawDone = .sbss:0x801D45F0; // type:object size:0x1 scope:local data:byte +FinishQueue = .sbss:0x801D45F4; // type:object size:0x8 scope:local +OldCPUFifo = .sbss:0x801D4600; // type:object size:0x4 scope:local data:4byte +Chan = .sbss:0x801D4608; // type:object size:0x4 scope:local data:4byte +Dev = .sbss:0x801D460C; // type:object size:0x4 scope:local data:4byte +Enabled = .sbss:0x801D4610; // type:object size:0x4 scope:local data:4byte +BarnacleEnabled = .sbss:0x801D4614; // type:object size:0x4 scope:local data:4byte +cmdTypeAndStatus$78 = .sbss:0x801D4618; // type:object size:0x4 scope:local +cmdTypeAndStatus$371 = .sbss:0x801D461C; // type:object size:0x4 scope:local +__PADFixBits = .sbss:0x801D4620; // type:object size:0x8 data:4byte +SamplingRate = .sbss:0x801D4628; // type:object size:0x4 scope:local data:4byte +Ydchuff = .sbss:0x801D4640; // type:object size:0x4 scope:local align:32 data:4byte +Udchuff = .sbss:0x801D4660; // type:object size:0x4 scope:local align:32 data:4byte +Vdchuff = .sbss:0x801D4680; // type:object size:0x4 scope:local align:32 data:4byte +Yachuff = .sbss:0x801D46A0; // type:object size:0x4 scope:local align:32 data:4byte +Uachuff = .sbss:0x801D46C0; // type:object size:0x4 scope:local align:32 data:4byte +Vachuff = .sbss:0x801D46E0; // type:object size:0x4 scope:local align:32 data:4byte +__THPHuffmanBits = .sbss:0x801D46E4; // type:object size:0x4 scope:local data:4byte +__THPHuffmanSizeTab = .sbss:0x801D46E8; // type:object size:0x4 scope:local data:4byte +__THPHuffmanCodeTab = .sbss:0x801D46EC; // type:object size:0x4 scope:local data:4byte +Gbase = .sbss:0x801D4700; // type:object size:0x20 scope:local align:32 data:4byte +Gwid = .sbss:0x801D4720; // type:object size:0x20 scope:local align:32 data:4byte +Gq = .sbss:0x801D4740; // type:object size:0x4 scope:local align:32 data:4byte +__THPOldGQR5 = .sbss:0x801D4744; // type:object size:0x4 scope:local data:4byte +__THPOldGQR6 = .sbss:0x801D4748; // type:object size:0x4 scope:local data:4byte +__THPWorkArea = .sbss:0x801D474C; // type:object size:0x4 scope:local data:4byte +__THPInfo = .sbss:0x801D4750; // type:object size:0x4 scope:local data:4byte +__THPInitFlag = .sbss:0x801D4754; // type:object size:0x4 scope:local data:4byte +__global_destructor_chain = .sbss:0x801D4758; // type:object size:0x4 scope:global data:4byte +__aborting = .sbss:0x801D4760; // type:object size:0x4 scope:global data:4byte +__atexit_curr_func = .sbss:0x801D4764; // type:object size:0x4 scope:local data:4byte +__stdio_exit = .sbss:0x801D4768; // type:object size:0x4 scope:global data:4byte +__console_exit = .sbss:0x801D476C; // type:object size:0x4 scope:global data:4byte +init$193 = .sbss:0x801D4770; // type:object size:0x1 scope:local data:byte +errno = .sbss:0x801D4778; // type:object size:0x4 data:4byte +initialized$16 = .sbss:0x801D4780; // type:object size:0x4 scope:local data:4byte +seq_next_id = .sbss:0x801D4788; // type:object size:0x4 scope:local data:4byte +curFadeOutState = .sbss:0x801D478C; // type:object size:0x1 scope:local data:byte +curSeqId = .sbss:0x801D4790; // type:object size:0x4 scope:local data:4byte +noteFree = .sbss:0x801D4794; // type:object size:0x4 scope:local data:4byte +cseq = .sbss:0x801D4798; // type:object size:0x4 scope:local data:4byte +seqFreeRoot = .sbss:0x801D479C; // type:object size:0x4 data:4byte +seqPausedRoot = .sbss:0x801D47A0; // type:object size:0x4 data:4byte +seqActiveRoot = .sbss:0x801D47A4; // type:object size:0x4 data:4byte +sndActive = .sbss:0x801D47A8; // type:object size:0x1 data:byte +synthJobTableIndex = .sbss:0x801D47A9; // type:object size:0x1 scope:local data:byte +synthAuxBMIDISet = .sbss:0x801D47AC; // type:object size:0x8 data:byte +synthAuxBMIDI = .sbss:0x801D47B4; // type:object size:0x8 data:byte +synthAuxAMIDISet = .sbss:0x801D47BC; // type:object size:0x8 data:byte +synthAuxAMIDI = .sbss:0x801D47C4; // type:object size:0x8 data:byte +synthMasterFaderPauseActiveFlags = .sbss:0x801D47CC; // type:object size:0x4 data:4byte +synthMasterFaderActiveFlags = .sbss:0x801D47D0; // type:object size:0x4 data:4byte +synthFlags = .sbss:0x801D47D4; // type:object size:0x4 data:4byte +synthVoice = .sbss:0x801D47D8; // type:object size:0x4 data:4byte +synthMessageCallback = .sbss:0x801D47DC; // type:object size:0x4 data:4byte +synthIdleWaitActive = .sbss:0x801D47E0; // type:object size:0x1 data:byte +synthRealTime = .sbss:0x801D47E8; // type:object size:0x8 align:8 data:4byte +nextPublicID = .sbss:0x801D47F0; // type:object size:0x4 scope:local data:4byte +streamCallDelay = .sbss:0x801D47F4; // type:object size:0x1 scope:local data:byte +streamCallCnt = .sbss:0x801D47F5; // type:object size:0x1 scope:local data:byte +result$837 = .sbss:0x801D47F8; // type:object size:0x4 data:4byte +result$823 = .sbss:0x801D47FC; // type:object size:0x4 data:4byte +key$822 = .sbss:0x801D4800; // type:object size:0x8 +result$815 = .sbss:0x801D4808; // type:object size:0x4 data:4byte +key$814 = .sbss:0x801D480C; // type:object size:0x8 +sheader$789 = .sbss:0x801D4814; // type:object size:0x4 data:4byte +result$788 = .sbss:0x801D4818; // type:object size:0x4 data:4byte +result$770 = .sbss:0x801D481C; // type:object size:0x4 data:4byte +key$769 = .sbss:0x801D4820; // type:object size:0x8 +main$768 = .sbss:0x801D4828; // type:object size:0x4 data:4byte +base$767 = .sbss:0x801D482C; // type:object size:0x4 data:4byte +dataFXGroupNum = .sbss:0x801D4830; // type:object size:0x2 data:2byte +dataMacTotal = .sbss:0x801D4832; // type:object size:0x2 data:2byte +dataLayerNum = .sbss:0x801D4834; // type:object size:0x2 data:2byte +dataKeymapNum = .sbss:0x801D4836; // type:object size:0x2 data:2byte +dataCurveNum = .sbss:0x801D4838; // type:object size:0x2 data:2byte +dataSmpSDirNum = .sbss:0x801D483A; // type:object size:0x2 data:2byte +cstep$1643 = .sbss:0x801D4840; // type:object size:0x8 scope:local data:4byte +macRealTime = .sbss:0x801D4848; // type:object size:0x8 scope:local data:4byte +macTimeQueueRoot = .sbss:0x801D4850; // type:object size:0x4 scope:local data:4byte +macActiveMacroRoot = .sbss:0x801D4854; // type:object size:0x4 scope:local data:4byte +DebugMacroSteps = .sbss:0x801D4858; // type:object size:0x8 scope:local data:byte +vidFree = .sbss:0x801D4860; // type:object size:0x4 scope:local data:4byte +vidRoot = .sbss:0x801D4864; // type:object size:0x4 scope:local data:4byte +vidCurrentId = .sbss:0x801D4868; // type:object size:0x4 scope:local data:4byte +voicePrioSortRootListRoot = .sbss:0x801D486C; // type:object size:0x2 data:2byte +voiceMusicRunning = .sbss:0x801D486E; // type:object size:0x1 data:byte +voiceFxRunning = .sbss:0x801D486F; // type:object size:0x1 data:byte +voiceListInsert = .sbss:0x801D4870; // type:object size:0x1 data:byte +voiceListRoot = .sbss:0x801D4871; // type:object size:0x1 data:byte +sp = .sbss:0x801D4878; // type:object size:0x2 scope:local data:2byte +dspARAMZeroBuffer = .sbss:0x801D4880; // type:object size:0x4 data:4byte +dspCmdLastLoad = .sbss:0x801D4884; // type:object size:0x4 data:4byte +dspCmdLastBase = .sbss:0x801D4888; // type:object size:0x4 data:4byte +dspCmdLastSize = .sbss:0x801D488C; // type:object size:0x2 data:2byte +dspCmdCurBase = .sbss:0x801D4890; // type:object size:0x4 data:4byte +dspCmdMaxPtr = .sbss:0x801D4894; // type:object size:0x4 data:4byte +dspCmdPtr = .sbss:0x801D4898; // type:object size:0x4 data:4byte +dspCmdFirstSize = .sbss:0x801D489C; // type:object size:0x2 data:2byte +dspCmdList = .sbss:0x801D48A0; // type:object size:0x4 data:4byte +dspHRTFOn = .sbss:0x801D48A4; // type:object size:0x4 data:4byte +dspHrtfHistoryBuffer = .sbss:0x801D48A8; // type:object size:0x4 data:4byte +dspSurround = .sbss:0x801D48AC; // type:object size:0x4 data:4byte +dspITDBuffer = .sbss:0x801D48B0; // type:object size:0x4 data:4byte +dspVoice = .sbss:0x801D48B4; // type:object size:0x4 data:4byte +salMessageCallback = .sbss:0x801D48B8; // type:object size:0x4 data:4byte +runListNum = .sbss:0x801D48C0; // type:object size:0x1 scope:local data:byte +startListNumnum = .sbss:0x801D48C1; // type:object size:0x1 scope:local data:byte +startGroupNum = .sbss:0x801D48C2; // type:object size:0x1 scope:local data:byte +s3dUseLegacyLogic = .sbss:0x801D48C3; // type:object size:0x1 scope:local data:byte +s3dUseMaxVoices = .sbss:0x801D48C4; // type:object size:0x1 scope:local data:byte +snd_max_studios = .sbss:0x801D48C5; // type:object size:0x1 scope:local data:byte +snd_used_studios = .sbss:0x801D48C8; // type:object size:0x4 scope:local data:4byte +s3dDoorRoot = .sbss:0x801D48CC; // type:object size:0x4 scope:local data:4byte +s3dRoomRoot = .sbss:0x801D48D0; // type:object size:0x4 scope:local data:4byte +s3dListenerRoot = .sbss:0x801D48D4; // type:object size:0x4 scope:local data:4byte +s3dEmitterRoot = .sbss:0x801D48D8; // type:object size:0x4 scope:local data:4byte +s3dCallCnt = .sbss:0x801D48DC; // type:object size:0x1 scope:local data:byte +salTimeOffset = .sbss:0x801D48E0; // type:object size:0x1 data:byte +salHooks = .sbss:0x801D48E4; // type:object size:0x8 data:4byte +salMaxStudioNum = .sbss:0x801D48EC; // type:object size:0x1 data:byte +salNumVoices = .sbss:0x801D48ED; // type:object size:0x1 data:byte +salAuxFrame = .sbss:0x801D48EE; // type:object size:0x1 data:byte +salFrame = .sbss:0x801D48EF; // type:object size:0x1 data:byte +aramIdleStreamBuffers = .sbss:0x801D48F0; // type:object size:0x4 scope:local data:4byte +aramFreeStreamBuffers = .sbss:0x801D48F4; // type:object size:0x4 scope:local data:4byte +aramUsedStreamBuffers = .sbss:0x801D48F8; // type:object size:0x4 scope:local data:4byte +aramUploadChunkSize = .sbss:0x801D48FC; // type:object size:0x4 scope:local data:4byte +aramUploadCallback = .sbss:0x801D4900; // type:object size:0x4 scope:local data:4byte +aramStream = .sbss:0x801D4904; // type:object size:0x4 scope:local data:4byte +aramWrite = .sbss:0x801D4908; // type:object size:0x4 scope:local data:4byte +aramTop = .sbss:0x801D490C; // type:object size:0x4 scope:local data:4byte +oldState = .sbss:0x801D4910; // type:object size:0x4 scope:local data:4byte +hwIrqLevel = .sbss:0x801D4914; // type:object size:0x2 scope:local data:2byte +salDspInitIsDone = .sbss:0x801D4918; // type:object size:0x4 scope:local data:4byte +salLastTick = .sbss:0x801D491C; // type:object size:0x4 scope:local data:4byte +salLogicActive = .sbss:0x801D4920; // type:object size:0x4 scope:local data:4byte +salLogicIsWaiting = .sbss:0x801D4924; // type:object size:0x4 scope:local data:4byte +salDspIsDone = .sbss:0x801D4928; // type:object size:0x4 scope:local data:4byte +salAIBufferBase = .sbss:0x801D492C; // type:object size:0x4 scope:local data:4byte +salAIBufferIndex = .sbss:0x801D4930; // type:object size:0x1 scope:local data:byte +userCallback = .sbss:0x801D4934; // type:object size:0x4 scope:local data:4byte +MTRCallback = .sbss:0x801D4938; // type:object size:0x4 scope:local data:4byte +DBGCallback = .sbss:0x801D493C; // type:object size:0x4 scope:local data:4byte +SendMailData = .sbss:0x801D4940; // type:object size:0x4 scope:local data:4byte +RecvDataLeng = .sbss:0x801D4944; // type:object size:0x4 scope:local data:4byte +pEXIInputFlag = .sbss:0x801D4948; // type:object size:0x4 scope:local data:4byte +EXIInputFlag = .sbss:0x801D494C; // type:object size:0x1 scope:local data:byte +lbl_801D4960 = .sdata2:0x801D4960; // type:object size:0x8 data:double +lbl_801D4968 = .sdata2:0x801D4968; // type:object size:0x4 data:float +lbl_801D496C = .sdata2:0x801D496C; // type:object size:0x4 data:float +lbl_801D4970 = .sdata2:0x801D4970; // type:object size:0x8 data:double +lbl_801D4978 = .sdata2:0x801D4978; // type:object size:0x4 data:float +lbl_801D497C = .sdata2:0x801D497C; // type:object size:0x4 data:float +lbl_801D4980 = .sdata2:0x801D4980; // type:object size:0x4 data:float +lbl_801D4984 = .sdata2:0x801D4984; // type:object size:0x4 data:float +lbl_801D4988 = .sdata2:0x801D4988; // type:object size:0x4 data:float +lbl_801D498C = .sdata2:0x801D498C; // type:object size:0x4 data:float +lbl_801D4990 = .sdata2:0x801D4990; // type:object size:0x4 data:float +lbl_801D4994 = .sdata2:0x801D4994; // type:object size:0x4 data:float +lbl_801D4998 = .sdata2:0x801D4998; // type:object size:0x4 data:float +lbl_801D49A0 = .sdata2:0x801D49A0; // type:object size:0x8 data:double +lbl_801D49A8 = .sdata2:0x801D49A8; // type:object size:0x8 data:double +lbl_801D49B0 = .sdata2:0x801D49B0; // type:object size:0x4 data:float +lbl_801D49B4 = .sdata2:0x801D49B4; // type:object size:0x4 data:float +lbl_801D49B8 = .sdata2:0x801D49B8; // type:object size:0x4 data:float +lbl_801D49BC = .sdata2:0x801D49BC; // type:object size:0x4 data:float +lbl_801D49C0 = .sdata2:0x801D49C0; // type:object size:0x8 data:float +lbl_801D49C8 = .sdata2:0x801D49C8; // type:object size:0x4 data:float +lbl_801D49CC = .sdata2:0x801D49CC; // type:object size:0x4 data:float +lbl_801D49D0 = .sdata2:0x801D49D0; // type:object size:0x4 data:float +lbl_801D49D8 = .sdata2:0x801D49D8; // type:object size:0x8 data:double +lbl_801D49E0 = .sdata2:0x801D49E0; // type:object size:0x8 data:double +lbl_801D49E8 = .sdata2:0x801D49E8; // type:object size:0x8 data:float +lbl_801D49F0 = .sdata2:0x801D49F0; // type:object size:0x4 data:float +lbl_801D49F4 = .sdata2:0x801D49F4; // type:object size:0x4 data:float +lbl_801D49F8 = .sdata2:0x801D49F8; // type:object size:0x4 data:float +lbl_801D49FC = .sdata2:0x801D49FC; // type:object size:0x4 data:float +lbl_801D4A00 = .sdata2:0x801D4A00; // type:object size:0x4 data:float +lbl_801D4A04 = .sdata2:0x801D4A04; // type:object size:0x4 data:float +lbl_801D4A08 = .sdata2:0x801D4A08; // type:object size:0x4 data:float +lbl_801D4A10 = .sdata2:0x801D4A10; // type:object size:0x8 data:double +lbl_801D4A18 = .sdata2:0x801D4A18; // type:object size:0x8 data:double +lbl_801D4A20 = .sdata2:0x801D4A20; // type:object size:0x8 data:double +lbl_801D4A28 = .sdata2:0x801D4A28; // type:object size:0x4 data:float +lbl_801D4A2C = .sdata2:0x801D4A2C; // type:object size:0x4 data:float +lbl_801D4A30 = .sdata2:0x801D4A30; // type:object size:0x4 data:float +lbl_801D4A34 = .sdata2:0x801D4A34; // type:object size:0x4 data:float +lbl_801D4A38 = .sdata2:0x801D4A38; // type:object size:0x8 data:double +lbl_801D4A40 = .sdata2:0x801D4A40; // type:object size:0x8 data:double +lbl_801D4A48 = .sdata2:0x801D4A48; // type:object size:0x8 data:double +lbl_801D4A50 = .sdata2:0x801D4A50; // type:object size:0x8 data:double +lbl_801D4A58 = .sdata2:0x801D4A58; // type:object size:0x4 data:float +lbl_801D4A60 = .sdata2:0x801D4A60; // type:object size:0x8 data:double +lbl_801D4A68 = .sdata2:0x801D4A68; // type:object size:0x4 data:float +lbl_801D4A6C = .sdata2:0x801D4A6C; // type:object size:0x4 data:float +lbl_801D4A70 = .sdata2:0x801D4A70; // type:object size:0x4 data:float +lbl_801D4A74 = .sdata2:0x801D4A74; // type:object size:0x4 data:float +lbl_801D4A78 = .sdata2:0x801D4A78; // type:object size:0x8 data:double +lbl_801D4A80 = .sdata2:0x801D4A80; // type:object size:0x4 data:float +lbl_801D4A84 = .sdata2:0x801D4A84; // type:object size:0x4 data:float +lbl_801D4A88 = .sdata2:0x801D4A88; // type:object size:0x4 data:float +lbl_801D4A8C = .sdata2:0x801D4A8C; // type:object size:0x4 data:float +lbl_801D4A90 = .sdata2:0x801D4A90; // type:object size:0x8 data:double +lbl_801D4A98 = .sdata2:0x801D4A98; // type:object size:0x4 data:float +lbl_801D4AA0 = .sdata2:0x801D4AA0; // type:object size:0x8 data:double +lbl_801D4AA8 = .sdata2:0x801D4AA8; // type:object size:0x4 data:float +lbl_801D4AAC = .sdata2:0x801D4AAC; // type:object size:0x4 data:float +lbl_801D4AB0 = .sdata2:0x801D4AB0; // type:object size:0x4 data:float +lbl_801D4AB4 = .sdata2:0x801D4AB4; // type:object size:0x4 data:float +lbl_801D4AB8 = .sdata2:0x801D4AB8; // type:object size:0x4 data:float +lbl_801D4AC0 = .sdata2:0x801D4AC0; // type:object size:0x8 data:double +lbl_801D4AC8 = .sdata2:0x801D4AC8; // type:object size:0x8 data:double +lbl_801D4AD0 = .sdata2:0x801D4AD0; // type:object size:0x8 data:double +lbl_801D4AD8 = .sdata2:0x801D4AD8; // type:object size:0x8 data:double +lbl_801D4AE0 = .sdata2:0x801D4AE0; // type:object size:0x4 data:float +lbl_801D4AE4 = .sdata2:0x801D4AE4; // type:object size:0x4 data:float +lbl_801D4AE8 = .sdata2:0x801D4AE8; // type:object size:0x4 data:float +lbl_801D4AEC = .sdata2:0x801D4AEC; // type:object size:0x4 data:float +lbl_801D4AF0 = .sdata2:0x801D4AF0; // type:object size:0x4 data:float +lbl_801D4AF4 = .sdata2:0x801D4AF4; // type:object size:0x4 data:float +lbl_801D4AF8 = .sdata2:0x801D4AF8; // type:object size:0x4 data:float +lbl_801D4AFC = .sdata2:0x801D4AFC; // type:object size:0x4 data:float +lbl_801D4B00 = .sdata2:0x801D4B00; // type:object size:0x8 data:double +lbl_801D4B08 = .sdata2:0x801D4B08; // type:object size:0x8 data:float +lbl_801D4B10 = .sdata2:0x801D4B10; // type:object size:0x4 data:float +lbl_801D4B14 = .sdata2:0x801D4B14; // type:object size:0x4 data:float +lbl_801D4B18 = .sdata2:0x801D4B18; // type:object size:0x8 data:double +lbl_801D4B20 = .sdata2:0x801D4B20; // type:object size:0x8 data:double +lbl_801D4B28 = .sdata2:0x801D4B28; // type:object size:0x4 data:float +lbl_801D4B2C = .sdata2:0x801D4B2C; // type:object size:0x4 data:float +lbl_801D4B30 = .sdata2:0x801D4B30; // type:object size:0x4 data:float +lbl_801D4B38 = .sdata2:0x801D4B38; // type:object size:0x8 data:double +lbl_801D4B40 = .sdata2:0x801D4B40; // type:object size:0x8 data:double +lbl_801D4B48 = .sdata2:0x801D4B48; // type:object size:0x8 data:double +lbl_801D4B50 = .sdata2:0x801D4B50; // type:object size:0x4 data:float +lbl_801D4B54 = .sdata2:0x801D4B54; // type:object size:0x4 data:float +lbl_801D4B58 = .sdata2:0x801D4B58; // type:object size:0x8 data:float +lbl_801D4B60 = .sdata2:0x801D4B60; // type:object size:0x4 data:float +lbl_801D4B64 = .sdata2:0x801D4B64; // type:object size:0x4 data:float +lbl_801D4B68 = .sdata2:0x801D4B68; // type:object size:0x8 data:double +lbl_801D4B70 = .sdata2:0x801D4B70; // type:object size:0x4 data:float +lbl_801D4B74 = .sdata2:0x801D4B74; // type:object size:0x4 data:float +lbl_801D4B78 = .sdata2:0x801D4B78; // type:object size:0x4 data:float +lbl_801D4B7C = .sdata2:0x801D4B7C; // type:object size:0x4 data:float +lbl_801D4B80 = .sdata2:0x801D4B80; // type:object size:0x8 data:double +lbl_801D4B88 = .sdata2:0x801D4B88; // type:object size:0x4 data:float +lbl_801D4B90 = .sdata2:0x801D4B90; // type:object size:0x8 data:double +lbl_801D4B98 = .sdata2:0x801D4B98; // type:object size:0x8 data:double +lbl_801D4BA0 = .sdata2:0x801D4BA0; // type:object size:0x8 data:double +lbl_801D4BA8 = .sdata2:0x801D4BA8; // type:object size:0x4 data:float +lbl_801D4BB0 = .sdata2:0x801D4BB0; // type:object size:0x8 data:double +lbl_801D4BB8 = .sdata2:0x801D4BB8; // type:object size:0x8 data:double +lbl_801D4BC0 = .sdata2:0x801D4BC0; // type:object size:0x4 data:float +lbl_801D4BC8 = .sdata2:0x801D4BC8; // type:object size:0x8 data:double +lbl_801D4BD0 = .sdata2:0x801D4BD0; // type:object size:0x8 data:double +lbl_801D4BD8 = .sdata2:0x801D4BD8; // type:object size:0x8 data:double +lbl_801D4BE0 = .sdata2:0x801D4BE0; // type:object size:0x8 data:double +lbl_801D4BE8 = .sdata2:0x801D4BE8; // type:object size:0x4 data:float +lbl_801D4BEC = .sdata2:0x801D4BEC; // type:object size:0x4 data:float +lbl_801D4BF0 = .sdata2:0x801D4BF0; // type:object size:0x4 data:float +lbl_801D4BF4 = .sdata2:0x801D4BF4; // type:object size:0x4 data:float +lbl_801D4BF8 = .sdata2:0x801D4BF8; // type:object size:0x8 data:double +lbl_801D4C00 = .sdata2:0x801D4C00; // type:object size:0x4 data:float +lbl_801D4C08 = .sdata2:0x801D4C08; // type:object size:0x8 data:double +lbl_801D4C10 = .sdata2:0x801D4C10; // type:object size:0x8 data:double +lbl_801D4C18 = .sdata2:0x801D4C18; // type:object size:0x4 data:float +lbl_801D4C20 = .sdata2:0x801D4C20; // type:object size:0x8 data:double +lbl_801D4C28 = .sdata2:0x801D4C28; // type:object size:0x4 data:float +lbl_801D4C2C = .sdata2:0x801D4C2C; // type:object size:0x4 data:float +lbl_801D4C30 = .sdata2:0x801D4C30; // type:object size:0x4 data:float +lbl_801D4C34 = .sdata2:0x801D4C34; // type:object size:0x4 data:float +lbl_801D4C38 = .sdata2:0x801D4C38; // type:object size:0x8 data:double +lbl_801D4C40 = .sdata2:0x801D4C40; // type:object size:0x8 data:double +lbl_801D4C48 = .sdata2:0x801D4C48; // type:object size:0x4 data:float +lbl_801D4C4C = .sdata2:0x801D4C4C; // type:object size:0x4 data:float +lbl_801D4C50 = .sdata2:0x801D4C50; // type:object size:0x8 data:double +lbl_801D4C58 = .sdata2:0x801D4C58; // type:object size:0x4 data:float +lbl_801D4C5C = .sdata2:0x801D4C5C; // type:object size:0x4 data:float +lbl_801D4C60 = .sdata2:0x801D4C60; // type:object size:0x4 data:float +lbl_801D4C64 = .sdata2:0x801D4C64; // type:object size:0x4 data:float +lbl_801D4C68 = .sdata2:0x801D4C68; // type:object size:0x8 data:double +lbl_801D4C70 = .sdata2:0x801D4C70; // type:object size:0x8 data:double +lbl_801D4C78 = .sdata2:0x801D4C78; // type:object size:0x4 data:float +lbl_801D4C7C = .sdata2:0x801D4C7C; // type:object size:0x4 data:float +lbl_801D4C80 = .sdata2:0x801D4C80; // type:object size:0x4 data:float +lbl_801D4C84 = .sdata2:0x801D4C84; // type:object size:0x4 data:float +lbl_801D4C88 = .sdata2:0x801D4C88; // type:object size:0x4 data:float +lbl_801D4C8C = .sdata2:0x801D4C8C; // type:object size:0x4 data:float +lbl_801D4C90 = .sdata2:0x801D4C90; // type:object size:0x4 data:float +lbl_801D4C94 = .sdata2:0x801D4C94; // type:object size:0x4 data:float +lbl_801D4C98 = .sdata2:0x801D4C98; // type:object size:0x4 data:float +lbl_801D4CA0 = .sdata2:0x801D4CA0; // type:object size:0x8 data:double +lbl_801D4CA8 = .sdata2:0x801D4CA8; // type:object size:0x8 data:double +lbl_801D4CB0 = .sdata2:0x801D4CB0; // type:object size:0x4 data:float +lbl_801D4CB8 = .sdata2:0x801D4CB8; // type:object size:0x8 data:double +lbl_801D4CC0 = .sdata2:0x801D4CC0; // type:object size:0x8 data:double +lbl_801D4CC8 = .sdata2:0x801D4CC8; // type:object size:0x8 data:double +lbl_801D4CD0 = .sdata2:0x801D4CD0; // type:object size:0x4 data:float +lbl_801D4CD4 = .sdata2:0x801D4CD4; // type:object size:0x4 data:float +lbl_801D4CD8 = .sdata2:0x801D4CD8; // type:object size:0x4 data:float +lbl_801D4CE0 = .sdata2:0x801D4CE0; // type:object size:0x8 data:double +lbl_801D4CE8 = .sdata2:0x801D4CE8; // type:object size:0x4 data:float +lbl_801D4CEC = .sdata2:0x801D4CEC; // type:object size:0x4 data:float +lbl_801D4CF0 = .sdata2:0x801D4CF0; // type:object size:0x8 data:double +lbl_801D4CF8 = .sdata2:0x801D4CF8; // type:object size:0x8 data:double +lbl_801D4D00 = .sdata2:0x801D4D00; // type:object size:0x8 data:double +lbl_801D4D08 = .sdata2:0x801D4D08; // type:object size:0x8 data:double +lbl_801D4D10 = .sdata2:0x801D4D10; // type:object size:0x8 data:double +lbl_801D4D18 = .sdata2:0x801D4D18; // type:object size:0x8 data:double +lbl_801D4D20 = .sdata2:0x801D4D20; // type:object size:0x4 data:float +lbl_801D4D24 = .sdata2:0x801D4D24; // type:object size:0x4 data:float +lbl_801D4D28 = .sdata2:0x801D4D28; // type:object size:0x8 data:double +lbl_801D4D30 = .sdata2:0x801D4D30; // type:object size:0x4 data:float +lbl_801D4D34 = .sdata2:0x801D4D34; // type:object size:0x4 data:float +lbl_801D4D38 = .sdata2:0x801D4D38; // type:object size:0x4 data:float +lbl_801D4D3C = .sdata2:0x801D4D3C; // type:object size:0x4 data:float +lbl_801D4D40 = .sdata2:0x801D4D40; // type:object size:0x4 data:float +lbl_801D4D44 = .sdata2:0x801D4D44; // type:object size:0x4 data:float +lbl_801D4D48 = .sdata2:0x801D4D48; // type:object size:0x4 data:float +lbl_801D4D4C = .sdata2:0x801D4D4C; // type:object size:0x4 data:float +lbl_801D4D50 = .sdata2:0x801D4D50; // type:object size:0x4 data:float +lbl_801D4D54 = .sdata2:0x801D4D54; // type:object size:0x4 data:float +lbl_801D4D58 = .sdata2:0x801D4D58; // type:object size:0x4 data:float +lbl_801D4D5C = .sdata2:0x801D4D5C; // type:object size:0x4 data:float +lbl_801D4D60 = .sdata2:0x801D4D60; // type:object size:0x4 data:float +lbl_801D4D64 = .sdata2:0x801D4D64; // type:object size:0x4 data:float +lbl_801D4D68 = .sdata2:0x801D4D68; // type:object size:0x4 data:float +lbl_801D4D6C = .sdata2:0x801D4D6C; // type:object size:0x4 data:float +lbl_801D4D70 = .sdata2:0x801D4D70; // type:object size:0x4 data:float +lbl_801D4D74 = .sdata2:0x801D4D74; // type:object size:0x4 data:float +lbl_801D4D78 = .sdata2:0x801D4D78; // type:object size:0x8 data:double +lbl_801D4D80 = .sdata2:0x801D4D80; // type:object size:0x4 data:float +lbl_801D4D84 = .sdata2:0x801D4D84; // type:object size:0x4 data:float +lbl_801D4D88 = .sdata2:0x801D4D88; // type:object size:0x8 data:double +lbl_801D4D90 = .sdata2:0x801D4D90; // type:object size:0x8 data:double +lbl_801D4D98 = .sdata2:0x801D4D98; // type:object size:0x4 data:float +lbl_801D4D9C = .sdata2:0x801D4D9C; // type:object size:0x4 data:float +lbl_801D4DA0 = .sdata2:0x801D4DA0; // type:object size:0x8 data:double +lbl_801D4DA8 = .sdata2:0x801D4DA8; // type:object size:0x4 data:float +lbl_801D4DAC = .sdata2:0x801D4DAC; // type:object size:0x4 data:float +lbl_801D4DB0 = .sdata2:0x801D4DB0; // type:object size:0x4 data:float +lbl_801D4DB4 = .sdata2:0x801D4DB4; // type:object size:0x4 data:float +lbl_801D4DB8 = .sdata2:0x801D4DB8; // type:object size:0x4 data:float +lbl_801D4DC0 = .sdata2:0x801D4DC0; // type:object size:0x8 data:double +lbl_801D4DC8 = .sdata2:0x801D4DC8; // type:object size:0x4 data:float +lbl_801D4DD0 = .sdata2:0x801D4DD0; // type:object size:0x8 data:double +lbl_801D4DD8 = .sdata2:0x801D4DD8; // type:object size:0x4 data:float +lbl_801D4DDC = .sdata2:0x801D4DDC; // type:object size:0x4 data:float +lbl_801D4DE0 = .sdata2:0x801D4DE0; // type:object size:0x4 data:float +lbl_801D4DE4 = .sdata2:0x801D4DE4; // type:object size:0x4 data:float +lbl_801D4DE8 = .sdata2:0x801D4DE8; // type:object size:0x8 data:double +lbl_801D4DF0 = .sdata2:0x801D4DF0; // type:object size:0x4 data:float +lbl_801D4DF8 = .sdata2:0x801D4DF8; // type:object size:0x8 data:double +lbl_801D4E00 = .sdata2:0x801D4E00; // type:object size:0x8 data:double +lbl_801D4E08 = .sdata2:0x801D4E08; // type:object size:0x8 data:double +lbl_801D4E10 = .sdata2:0x801D4E10; // type:object size:0x4 data:float +lbl_801D4E18 = .sdata2:0x801D4E18; // type:object size:0x8 data:double +lbl_801D4E20 = .sdata2:0x801D4E20; // type:object size:0x8 data:double +lbl_801D4E28 = .sdata2:0x801D4E28; // type:object size:0x4 data:float +lbl_801D4E2C = .sdata2:0x801D4E2C; // type:object size:0x4 data:float +lbl_801D4E30 = .sdata2:0x801D4E30; // type:object size:0x4 data:float +lbl_801D4E34 = .sdata2:0x801D4E34; // type:object size:0x4 data:float +lbl_801D4E38 = .sdata2:0x801D4E38; // type:object size:0x4 data:float +lbl_801D4E3C = .sdata2:0x801D4E3C; // type:object size:0x4 data:float +lbl_801D4E40 = .sdata2:0x801D4E40; // type:object size:0x4 data:float +lbl_801D4E44 = .sdata2:0x801D4E44; // type:object size:0x4 data:float +lbl_801D4E48 = .sdata2:0x801D4E48; // type:object size:0x8 data:double +lbl_801D4E50 = .sdata2:0x801D4E50; // type:object size:0x8 data:double +lbl_801D4E58 = .sdata2:0x801D4E58; // type:object size:0x8 data:double +lbl_801D4E60 = .sdata2:0x801D4E60; // type:object size:0x6 data:2byte +lbl_801D4E68 = .sdata2:0x801D4E68; // type:object size:0x4 data:float +lbl_801D4E6C = .sdata2:0x801D4E6C; // type:object size:0x4 data:float +lbl_801D4E70 = .sdata2:0x801D4E70; // type:object size:0x4 data:float +lbl_801D4E74 = .sdata2:0x801D4E74; // type:object size:0x4 data:float +lbl_801D4E78 = .sdata2:0x801D4E78; // type:object size:0x4 data:float +lbl_801D4E7C = .sdata2:0x801D4E7C; // type:object size:0x4 data:float +lbl_801D4E80 = .sdata2:0x801D4E80; // type:object size:0x4 data:float +lbl_801D4E84 = .sdata2:0x801D4E84; // type:object size:0x4 data:float +lbl_801D4E88 = .sdata2:0x801D4E88; // type:object size:0x4 data:float +lbl_801D4E8C = .sdata2:0x801D4E8C; // type:object size:0x4 data:float +lbl_801D4E90 = .sdata2:0x801D4E90; // type:object size:0x8 data:double +lbl_801D4E98 = .sdata2:0x801D4E98; // type:object size:0x8 data:double +lbl_801D4EA0 = .sdata2:0x801D4EA0; // type:object size:0x4 data:float +lbl_801D4EA4 = .sdata2:0x801D4EA4; // type:object size:0x4 data:float +lbl_801D4EA8 = .sdata2:0x801D4EA8; // type:object size:0x4 data:float +lbl_801D4EB0 = .sdata2:0x801D4EB0; // type:object size:0x8 data:double +lbl_801D4EB8 = .sdata2:0x801D4EB8; // type:object size:0x8 data:double +lbl_801D4EC0 = .sdata2:0x801D4EC0; // type:object size:0x4 data:float +lbl_801D4EC4 = .sdata2:0x801D4EC4; // type:object size:0x4 data:float +lbl_801D4EC8 = .sdata2:0x801D4EC8; // type:object size:0x8 data:double +lbl_801D4ED0 = .sdata2:0x801D4ED0; // type:object size:0x4 data:float +lbl_801D4ED4 = .sdata2:0x801D4ED4; // type:object size:0x4 data:float +lbl_801D4ED8 = .sdata2:0x801D4ED8; // type:object size:0x8 data:double +lbl_801D4EE0 = .sdata2:0x801D4EE0; // type:object size:0x4 data:float +lbl_801D4EE8 = .sdata2:0x801D4EE8; // type:object size:0x8 data:double +lbl_801D4EF0 = .sdata2:0x801D4EF0; // type:object size:0x4 data:float +lbl_801D4EF4 = .sdata2:0x801D4EF4; // type:object size:0x4 data:float +lbl_801D4EF8 = .sdata2:0x801D4EF8; // type:object size:0x4 data:float +lbl_801D4EFC = .sdata2:0x801D4EFC; // type:object size:0x4 data:float +lbl_801D4F00 = .sdata2:0x801D4F00; // type:object size:0x8 data:double +lbl_801D4F08 = .sdata2:0x801D4F08; // type:object size:0x4 data:float +lbl_801D4F0C = .sdata2:0x801D4F0C; // type:object size:0x4 data:float +lbl_801D4F10 = .sdata2:0x801D4F10; // type:object size:0x4 data:float +lbl_801D4F14 = .sdata2:0x801D4F14; // type:object size:0x4 data:float +lbl_801D4F18 = .sdata2:0x801D4F18; // type:object size:0x4 data:float +lbl_801D4F20 = .sdata2:0x801D4F20; // type:object size:0x8 data:double +lbl_801D4F28 = .sdata2:0x801D4F28; // type:object size:0x4 data:float +lbl_801D4F2C = .sdata2:0x801D4F2C; // type:object size:0x4 data:float +lbl_801D4F30 = .sdata2:0x801D4F30; // type:object size:0x4 data:float +lbl_801D4F34 = .sdata2:0x801D4F34; // type:object size:0x4 data:float +lbl_801D4F38 = .sdata2:0x801D4F38; // type:object size:0x4 data:float +lbl_801D4F3C = .sdata2:0x801D4F3C; // type:object size:0x4 data:float +lbl_801D4F40 = .sdata2:0x801D4F40; // type:object size:0x4 data:float +lbl_801D4F48 = .sdata2:0x801D4F48; // type:object size:0x8 data:double +lbl_801D4F50 = .sdata2:0x801D4F50; // type:object size:0x4 data:float +lbl_801D4F58 = .sdata2:0x801D4F58; // type:object size:0x8 data:double +lbl_801D4F60 = .sdata2:0x801D4F60; // type:object size:0x4 data:float +lbl_801D4F64 = .sdata2:0x801D4F64; // type:object size:0x4 data:float +lbl_801D4F68 = .sdata2:0x801D4F68; // type:object size:0x4 data:float +lbl_801D4F70 = .sdata2:0x801D4F70; // type:object size:0x8 data:double +lbl_801D4F78 = .sdata2:0x801D4F78; // type:object size:0x8 data:double +lbl_801D4F80 = .sdata2:0x801D4F80; // type:object size:0x8 data:double +lbl_801D4F88 = .sdata2:0x801D4F88; // type:object size:0x4 data:float +lbl_801D4F90 = .sdata2:0x801D4F90; // type:object size:0x8 data:double +lbl_801D4F98 = .sdata2:0x801D4F98; // type:object size:0x8 data:double +lbl_801D4FA0 = .sdata2:0x801D4FA0; // type:object size:0x8 data:double +lbl_801D4FA8 = .sdata2:0x801D4FA8; // type:object size:0x8 data:double +lbl_801D4FB0 = .sdata2:0x801D4FB0; // type:object size:0x8 data:double +lbl_801D4FB8 = .sdata2:0x801D4FB8; // type:object size:0x8 data:double +lbl_801D4FC0 = .sdata2:0x801D4FC0; // type:object size:0x8 data:double +lbl_801D4FC8 = .sdata2:0x801D4FC8; // type:object size:0x8 data:double +lbl_801D4FD0 = .sdata2:0x801D4FD0; // type:object size:0x8 data:double +lbl_801D4FD8 = .sdata2:0x801D4FD8; // type:object size:0x4 data:float +lbl_801D4FDC = .sdata2:0x801D4FDC; // type:object size:0x4 data:float +lbl_801D4FE0 = .sdata2:0x801D4FE0; // type:object size:0x4 data:float +lbl_801D4FE4 = .sdata2:0x801D4FE4; // type:object size:0x4 data:float +lbl_801D4FE8 = .sdata2:0x801D4FE8; // type:object size:0x8 data:double +lbl_801D4FF0 = .sdata2:0x801D4FF0; // type:object size:0x4 data:float +lbl_801D4FF8 = .sdata2:0x801D4FF8; // type:object size:0x8 data:double +lbl_801D5000 = .sdata2:0x801D5000; // type:object size:0x8 data:double +lbl_801D5008 = .sdata2:0x801D5008; // type:object size:0x4 data:float +lbl_801D500C = .sdata2:0x801D500C; // type:object size:0x4 data:float +lbl_801D5010 = .sdata2:0x801D5010; // type:object size:0x8 data:double +lbl_801D5018 = .sdata2:0x801D5018; // type:object size:0x4 data:float +lbl_801D501C = .sdata2:0x801D501C; // type:object size:0x4 data:float +lbl_801D5020 = .sdata2:0x801D5020; // type:object size:0x4 data:float +lbl_801D5024 = .sdata2:0x801D5024; // type:object size:0x4 data:float +lbl_801D5028 = .sdata2:0x801D5028; // type:object size:0x4 data:float +lbl_801D502C = .sdata2:0x801D502C; // type:object size:0x4 data:float +lbl_801D5030 = .sdata2:0x801D5030; // type:object size:0x8 data:double +lbl_801D5038 = .sdata2:0x801D5038; // type:object size:0x4 data:float +lbl_801D5040 = .sdata2:0x801D5040; // type:object size:0x8 data:double +lbl_801D5048 = .sdata2:0x801D5048; // type:object size:0x8 data:double +lbl_801D5050 = .sdata2:0x801D5050; // type:object size:0x4 data:float +lbl_801D5058 = .sdata2:0x801D5058; // type:object size:0x8 data:double +lbl_801D5060 = .sdata2:0x801D5060; // type:object size:0x4 data:float +lbl_801D5064 = .sdata2:0x801D5064; // type:object size:0x4 data:float +lbl_801D5068 = .sdata2:0x801D5068; // type:object size:0x8 data:double +lbl_801D5070 = .sdata2:0x801D5070; // type:object size:0x8 data:double +lbl_801D5078 = .sdata2:0x801D5078; // type:object size:0x4 data:float +lbl_801D507C = .sdata2:0x801D507C; // type:object size:0x4 data:float +lbl_801D5080 = .sdata2:0x801D5080; // type:object size:0x4 data:float +lbl_801D5088 = .sdata2:0x801D5088; // type:object size:0x8 data:double +lbl_801D5090 = .sdata2:0x801D5090; // type:object size:0x4 data:float +lbl_801D5094 = .sdata2:0x801D5094; // type:object size:0x4 data:float +lbl_801D5098 = .sdata2:0x801D5098; // type:object size:0x4 data:float +lbl_801D509C = .sdata2:0x801D509C; // type:object size:0x4 data:float +lbl_801D50A0 = .sdata2:0x801D50A0; // type:object size:0x8 data:double +lbl_801D50A8 = .sdata2:0x801D50A8; // type:object size:0x4 data:float +lbl_801D50B0 = .sdata2:0x801D50B0; // type:object size:0x8 data:double +lbl_801D50B8 = .sdata2:0x801D50B8; // type:object size:0x4 data:float +lbl_801D50C0 = .sdata2:0x801D50C0; // type:object size:0x8 data:double +lbl_801D50C8 = .sdata2:0x801D50C8; // type:object size:0x8 data:float +lbl_801D50D0 = .sdata2:0x801D50D0; // type:object size:0x4 data:float +lbl_801D50D4 = .sdata2:0x801D50D4; // type:object size:0x4 data:float +lbl_801D50D8 = .sdata2:0x801D50D8; // type:object size:0x4 data:float +lbl_801D50DC = .sdata2:0x801D50DC; // type:object size:0x4 data:float +lbl_801D50E0 = .sdata2:0x801D50E0; // type:object size:0x8 data:double +lbl_801D50E8 = .sdata2:0x801D50E8; // type:object size:0x8 data:double +lbl_801D50F0 = .sdata2:0x801D50F0; // type:object size:0x8 data:double +lbl_801D50F8 = .sdata2:0x801D50F8; // type:object size:0x4 data:float +lbl_801D5100 = .sdata2:0x801D5100; // type:object size:0x8 data:double +lbl_801D5108 = .sdata2:0x801D5108; // type:object size:0x2 data:2byte +lbl_801D510A = .sdata2:0x801D510A; // type:object size:0x2 data:2byte +lbl_801D510C = .sdata2:0x801D510C; // type:object size:0x2 data:2byte +lbl_801D510E = .sdata2:0x801D510E; // type:object size:0x2 data:2byte +lbl_801D5110 = .sdata2:0x801D5110; // type:object size:0x1 data:byte +lbl_801D5111 = .sdata2:0x801D5111; // type:object size:0x1 data:byte +lbl_801D5112 = .sdata2:0x801D5112; // type:object size:0x1 data:byte +lbl_801D5113 = .sdata2:0x801D5113; // type:object size:0x1 data:byte +lbl_801D5114 = .sdata2:0x801D5114; // type:object size:0x1 data:byte +lbl_801D5115 = .sdata2:0x801D5115; // type:object size:0x1 data:byte +lbl_801D5116 = .sdata2:0x801D5116; // type:object size:0x1 data:byte +lbl_801D5117 = .sdata2:0x801D5117; // type:object size:0x1 data:byte +lbl_801D5118 = .sdata2:0x801D5118; // type:object size:0x1 data:byte +lbl_801D5119 = .sdata2:0x801D5119; // type:object size:0x1 data:byte +lbl_801D511A = .sdata2:0x801D511A; // type:object size:0x1 data:byte +lbl_801D511B = .sdata2:0x801D511B; // type:object size:0x1 data:byte +lbl_801D511C = .sdata2:0x801D511C; // type:object size:0x4 data:float +lbl_801D5120 = .sdata2:0x801D5120; // type:object size:0x4 data:float +lbl_801D5124 = .sdata2:0x801D5124; // type:object size:0x1 data:byte +lbl_801D5125 = .sdata2:0x801D5125; // type:object size:0x1 data:byte +lbl_801D5126 = .sdata2:0x801D5126; // type:object size:0x1 data:byte +lbl_801D5127 = .sdata2:0x801D5127; // type:object size:0x1 data:byte +lbl_801D5128 = .sdata2:0x801D5128; // type:object size:0x4 data:float +lbl_801D512C = .sdata2:0x801D512C; // type:object size:0x4 data:float +lbl_801D5130 = .sdata2:0x801D5130; // type:object size:0x8 data:float +lbl_801D5138 = .sdata2:0x801D5138; // type:object size:0x4 data:float +lbl_801D513C = .sdata2:0x801D513C; // type:object size:0x4 data:float +lbl_801D5140 = .sdata2:0x801D5140; // type:object size:0x8 data:float +lbl_801D5148 = .sdata2:0x801D5148; // type:object size:0x4 data:float +lbl_801D514C = .sdata2:0x801D514C; // type:object size:0x4 data:float +lbl_801D5150 = .sdata2:0x801D5150; // type:object size:0x4 data:float +lbl_801D5154 = .sdata2:0x801D5154; // type:object size:0x4 data:float +lbl_801D5158 = .sdata2:0x801D5158; // type:object size:0x4 data:float +lbl_801D515C = .sdata2:0x801D515C; // type:object size:0x4 data:float +lbl_801D5160 = .sdata2:0x801D5160; // type:object size:0x8 data:double +lbl_801D5168 = .sdata2:0x801D5168; // type:object size:0x8 data:double +lbl_801D5170 = .sdata2:0x801D5170; // type:object size:0x4 data:float +lbl_801D5174 = .sdata2:0x801D5174; // type:object size:0x4 data:float +lbl_801D5178 = .sdata2:0x801D5178; // type:object size:0x8 data:double +lbl_801D5180 = .sdata2:0x801D5180; // type:object size:0x8 data:double +lbl_801D5188 = .sdata2:0x801D5188; // type:object size:0x4 data:float +lbl_801D518C = .sdata2:0x801D518C; // type:object size:0x4 data:float +lbl_801D5190 = .sdata2:0x801D5190; // type:object size:0x4 data:float +lbl_801D5194 = .sdata2:0x801D5194; // type:object size:0x4 data:float +lbl_801D5198 = .sdata2:0x801D5198; // type:object size:0x4 data:float +lbl_801D519C = .sdata2:0x801D519C; // type:object size:0x4 data:float +lbl_801D51A0 = .sdata2:0x801D51A0; // type:object size:0x8 data:double +lbl_801D51A8 = .sdata2:0x801D51A8; // type:object size:0x4 data:float +lbl_801D51AC = .sdata2:0x801D51AC; // type:object size:0x4 data:float +lbl_801D51B0 = .sdata2:0x801D51B0; // type:object size:0x8 data:double +lbl_801D51B8 = .sdata2:0x801D51B8; // type:object size:0x4 data:float +lbl_801D51BC = .sdata2:0x801D51BC; // type:object size:0x4 data:float +lbl_801D51C0 = .sdata2:0x801D51C0; // type:object size:0x4 data:float +lbl_801D51C4 = .sdata2:0x801D51C4; // type:object size:0x4 data:float +lbl_801D51C8 = .sdata2:0x801D51C8; // type:object size:0x4 data:float +lbl_801D51CC = .sdata2:0x801D51CC; // type:object size:0x4 data:float +lbl_801D51D0 = .sdata2:0x801D51D0; // type:object size:0x4 data:float +lbl_801D51D4 = .sdata2:0x801D51D4; // type:object size:0x4 data:float +lbl_801D51D8 = .sdata2:0x801D51D8; // type:object size:0x4 data:float +lbl_801D51DC = .sdata2:0x801D51DC; // type:object size:0x4 data:float +lbl_801D51E0 = .sdata2:0x801D51E0; // type:object size:0x4 data:float +lbl_801D51E4 = .sdata2:0x801D51E4; // type:object size:0x4 data:float +lbl_801D51E8 = .sdata2:0x801D51E8; // type:object size:0x4 data:float +lbl_801D51EC = .sdata2:0x801D51EC; // type:object size:0x4 data:float +lbl_801D51F0 = .sdata2:0x801D51F0; // type:object size:0x4 data:float +lbl_801D51F4 = .sdata2:0x801D51F4; // type:object size:0x4 data:float +lbl_801D51F8 = .sdata2:0x801D51F8; // type:object size:0x4 data:float +lbl_801D51FC = .sdata2:0x801D51FC; // type:object size:0x4 data:float +lbl_801D5200 = .sdata2:0x801D5200; // type:object size:0x4 data:float +lbl_801D5204 = .sdata2:0x801D5204; // type:object size:0x4 data:float +lbl_801D5208 = .sdata2:0x801D5208; // type:object size:0x4 data:float +lbl_801D520C = .sdata2:0x801D520C; // type:object size:0x4 data:float +lbl_801D5210 = .sdata2:0x801D5210; // type:object size:0x4 data:float +lbl_801D5218 = .sdata2:0x801D5218; // type:object size:0x8 data:double +lbl_801D5220 = .sdata2:0x801D5220; // type:object size:0x8 data:double +lbl_801D5228 = .sdata2:0x801D5228; // type:object size:0x4 data:float +lbl_801D5230 = .sdata2:0x801D5230; // type:object size:0x8 data:double +lbl_801D5238 = .sdata2:0x801D5238; // type:object size:0x4 data:float +lbl_801D5240 = .sdata2:0x801D5240; // type:object size:0x8 data:double +lbl_801D5248 = .sdata2:0x801D5248; // type:object size:0x4 data:float +lbl_801D524C = .sdata2:0x801D524C; // type:object size:0x4 data:float +lbl_801D5250 = .sdata2:0x801D5250; // type:object size:0x4 data:float +lbl_801D5254 = .sdata2:0x801D5254; // type:object size:0x4 data:float +lbl_801D5258 = .sdata2:0x801D5258; // type:object size:0x8 data:double +lbl_801D5260 = .sdata2:0x801D5260; // type:object size:0x8 data:double +lbl_801D5268 = .sdata2:0x801D5268; // type:object size:0x4 data:float +lbl_801D526C = .sdata2:0x801D526C; // type:object size:0x4 data:float +lbl_801D5270 = .sdata2:0x801D5270; // type:object size:0x4 data:float +lbl_801D5274 = .sdata2:0x801D5274; // type:object size:0x4 data:float +lbl_801D5278 = .sdata2:0x801D5278; // type:object size:0x4 data:float +lbl_801D527C = .sdata2:0x801D527C; // type:object size:0x4 data:float +lbl_801D5280 = .sdata2:0x801D5280; // type:object size:0x4 data:float +lbl_801D5284 = .sdata2:0x801D5284; // type:object size:0x4 data:float +lbl_801D5288 = .sdata2:0x801D5288; // type:object size:0x4 data:float +lbl_801D528C = .sdata2:0x801D528C; // type:object size:0x4 data:float +lbl_801D5290 = .sdata2:0x801D5290; // type:object size:0x4 data:float +lbl_801D5294 = .sdata2:0x801D5294; // type:object size:0x4 data:float +lbl_801D5298 = .sdata2:0x801D5298; // type:object size:0x4 data:float +lbl_801D529C = .sdata2:0x801D529C; // type:object size:0x4 data:float +lbl_801D52A0 = .sdata2:0x801D52A0; // type:object size:0x4 data:4byte +lbl_801D52A4 = .sdata2:0x801D52A4; // type:object size:0x4 data:4byte +lbl_801D52A8 = .sdata2:0x801D52A8; // type:object size:0x4 data:float +lbl_801D52AC = .sdata2:0x801D52AC; // type:object size:0x4 data:float +lbl_801D52B0 = .sdata2:0x801D52B0; // type:object size:0x4 data:float +lbl_801D52B4 = .sdata2:0x801D52B4; // type:object size:0x4 data:float +lbl_801D52B8 = .sdata2:0x801D52B8; // type:object size:0x4 data:float +lbl_801D52BC = .sdata2:0x801D52BC; // type:object size:0x4 data:float +lbl_801D52C0 = .sdata2:0x801D52C0; // type:object size:0x4 data:float +lbl_801D52C4 = .sdata2:0x801D52C4; // type:object size:0x4 data:float +lbl_801D52C8 = .sdata2:0x801D52C8; // type:object size:0x4 data:float +lbl_801D52CC = .sdata2:0x801D52CC; // type:object size:0x2 data:2byte +lbl_801D52CE = .sdata2:0x801D52CE; // type:object size:0x2 data:2byte +lbl_801D52D0 = .sdata2:0x801D52D0; // type:object size:0x2 data:2byte +lbl_801D52D2 = .sdata2:0x801D52D2; // type:object size:0x2 data:2byte +lbl_801D52D4 = .sdata2:0x801D52D4; // type:object size:0x1 data:byte +lbl_801D52D5 = .sdata2:0x801D52D5; // type:object size:0x1 data:byte +lbl_801D52D6 = .sdata2:0x801D52D6; // type:object size:0x1 data:byte +lbl_801D52D7 = .sdata2:0x801D52D7; // type:object size:0x1 data:byte +lbl_801D52D8 = .sdata2:0x801D52D8; // type:object size:0x1 data:byte +lbl_801D52D9 = .sdata2:0x801D52D9; // type:object size:0x1 data:byte +lbl_801D52DA = .sdata2:0x801D52DA; // type:object size:0x1 data:byte +lbl_801D52DB = .sdata2:0x801D52DB; // type:object size:0x1 data:byte +lbl_801D52DC = .sdata2:0x801D52DC; // type:object size:0x4 data:float +lbl_801D52E0 = .sdata2:0x801D52E0; // type:object size:0x4 data:float +lbl_801D52E4 = .sdata2:0x801D52E4; // type:object size:0x4 data:float +lbl_801D52E8 = .sdata2:0x801D52E8; // type:object size:0x4 data:float +lbl_801D52EC = .sdata2:0x801D52EC; // type:object size:0x4 data:float +lbl_801D52F0 = .sdata2:0x801D52F0; // type:object size:0x4 data:float +lbl_801D52F8 = .sdata2:0x801D52F8; // type:object size:0x8 data:double +lbl_801D5300 = .sdata2:0x801D5300; // type:object size:0x4 data:float +lbl_801D5304 = .sdata2:0x801D5304; // type:object size:0x4 data:float +lbl_801D5308 = .sdata2:0x801D5308; // type:object size:0x4 data:float +lbl_801D530C = .sdata2:0x801D530C; // type:object size:0x4 data:float +lbl_801D5310 = .sdata2:0x801D5310; // type:object size:0x8 data:float +winSpeedTbl = .sdata2:0x801D5318; // type:object size:0x4 scope:local +lbl_801D531C = .sdata2:0x801D531C; // type:object size:0x4 data:float +lbl_801D5320 = .sdata2:0x801D5320; // type:object size:0x4 data:float +lbl_801D5328 = .sdata2:0x801D5328; // type:object size:0x8 data:double +lbl_801D5330 = .sdata2:0x801D5330; // type:object size:0x8 data:double +lbl_801D5338 = .sdata2:0x801D5338; // type:object size:0x8 data:double +lbl_801D5340 = .sdata2:0x801D5340; // type:object size:0x4 data:float +lbl_801D5344 = .sdata2:0x801D5344; // type:object size:0x4 data:float +lbl_801D5348 = .sdata2:0x801D5348; // type:object size:0x8 data:float +lbl_801D5350 = .sdata2:0x801D5350; // type:object size:0x4 data:float +lbl_801D5354 = .sdata2:0x801D5354; // type:object size:0x4 data:float +lbl_801D5358 = .sdata2:0x801D5358; // type:object size:0x4 data:float +lbl_801D5360 = .sdata2:0x801D5360; // type:object size:0x8 data:double +lbl_801D5368 = .sdata2:0x801D5368; // type:object size:0x8 data:double +lbl_801D5370 = .sdata2:0x801D5370; // type:object size:0x4 data:float +lbl_801D5374 = .sdata2:0x801D5374; // type:object size:0x4 data:float +lbl_801D5378 = .sdata2:0x801D5378; // type:object size:0x4 data:float +lbl_801D537C = .sdata2:0x801D537C; // type:object size:0x4 data:float +lbl_801D5380 = .sdata2:0x801D5380; // type:object size:0x4 data:float +lbl_801D5384 = .sdata2:0x801D5384; // type:object size:0x4 data:float +lbl_801D5388 = .sdata2:0x801D5388; // type:object size:0x4 data:float +lbl_801D538C = .sdata2:0x801D538C; // type:object size:0x4 data:float +lbl_801D5390 = .sdata2:0x801D5390; // type:object size:0x4 data:float +lbl_801D5394 = .sdata2:0x801D5394; // type:object size:0x4 data:float +lbl_801D5398 = .sdata2:0x801D5398; // type:object size:0x4 data:float +lbl_801D539C = .sdata2:0x801D539C; // type:object size:0x4 data:float +lbl_801D53A0 = .sdata2:0x801D53A0; // type:object size:0x4 data:float +lbl_801D53A8 = .sdata2:0x801D53A8; // type:object size:0x8 data:double +lbl_801D53B0 = .sdata2:0x801D53B0; // type:object size:0x4 data:float +lbl_801D53B4 = .sdata2:0x801D53B4; // type:object size:0x4 data:float +lbl_801D53B8 = .sdata2:0x801D53B8; // type:object size:0x8 data:float +lbl_801D53C0 = .sdata2:0x801D53C0; // type:object size:0x1 data:byte +lbl_801D53C1 = .sdata2:0x801D53C1; // type:object size:0x1 data:byte +lbl_801D53C2 = .sdata2:0x801D53C2; // type:object size:0x1 data:byte +lbl_801D53C3 = .sdata2:0x801D53C3; // type:object size:0x1 data:byte +lbl_801D53C4 = .sdata2:0x801D53C4; // type:object size:0x1 data:byte +lbl_801D53C5 = .sdata2:0x801D53C5; // type:object size:0x1 data:byte +lbl_801D53C6 = .sdata2:0x801D53C6; // type:object size:0x1 data:byte +lbl_801D53C7 = .sdata2:0x801D53C7; // type:object size:0x1 data:byte +lbl_801D53C8 = .sdata2:0x801D53C8; // type:object size:0x4 data:float +lbl_801D53CC = .sdata2:0x801D53CC; // type:object size:0x4 data:float +lbl_801D53D0 = .sdata2:0x801D53D0; // type:object size:0x8 data:double +lbl_801D53D8 = .sdata2:0x801D53D8; // type:object size:0x8 data:double +lbl_801D53E0 = .sdata2:0x801D53E0; // type:object size:0x8 data:double +lbl_801D53E8 = .sdata2:0x801D53E8; // type:object size:0x4 data:float +lbl_801D53F0 = .sdata2:0x801D53F0; // type:object size:0x8 data:double +lbl_801D53F8 = .sdata2:0x801D53F8; // type:object size:0x4 data:float +lbl_801D53FC = .sdata2:0x801D53FC; // type:object size:0x4 data:float +lbl_801D5400 = .sdata2:0x801D5400; // type:object size:0x4 data:float +lbl_801D5404 = .sdata2:0x801D5404; // type:object size:0x4 data:float +lbl_801D5408 = .sdata2:0x801D5408; // type:object size:0x4 data:float +lbl_801D540C = .sdata2:0x801D540C; // type:object size:0x4 data:float +lbl_801D5410 = .sdata2:0x801D5410; // type:object size:0x4 data:float +lbl_801D5414 = .sdata2:0x801D5414; // type:object size:0x1 data:byte +lbl_801D5415 = .sdata2:0x801D5415; // type:object size:0x1 data:byte +lbl_801D5416 = .sdata2:0x801D5416; // type:object size:0x1 data:byte +lbl_801D5417 = .sdata2:0x801D5417; // type:object size:0x1 data:byte +lbl_801D5418 = .sdata2:0x801D5418; // type:object size:0x4 data:float +lbl_801D541C = .sdata2:0x801D541C; // type:object size:0x4 data:float +lbl_801D5420 = .sdata2:0x801D5420; // type:object size:0x4 data:float +lbl_801D5424 = .sdata2:0x801D5424; // type:object size:0x4 data:float +lbl_801D5428 = .sdata2:0x801D5428; // type:object size:0x4 data:float +lbl_801D542C = .sdata2:0x801D542C; // type:object size:0x4 data:float +lbl_801D5430 = .sdata2:0x801D5430; // type:object size:0x4 data:float +lbl_801D5434 = .sdata2:0x801D5434; // type:object size:0x4 data:float +lbl_801D5438 = .sdata2:0x801D5438; // type:object size:0x4 data:float +lbl_801D543C = .sdata2:0x801D543C; // type:object size:0x4 data:float +lbl_801D5440 = .sdata2:0x801D5440; // type:object size:0x4 data:4byte +lbl_801D5444 = .sdata2:0x801D5444; // type:object size:0x4 data:4byte +lbl_801D5448 = .sdata2:0x801D5448; // type:object size:0x4 data:float +lbl_801D5450 = .sdata2:0x801D5450; // type:object size:0x8 data:double +lbl_801D5458 = .sdata2:0x801D5458; // type:object size:0x8 data:double +lbl_801D5460 = .sdata2:0x801D5460; // type:object size:0x4 data:float +lbl_801D5464 = .sdata2:0x801D5464; // type:object size:0x4 data:float +lbl_801D5468 = .sdata2:0x801D5468; // type:object size:0x4 data:float +lbl_801D546C = .sdata2:0x801D546C; // type:object size:0x4 data:float +lbl_801D5470 = .sdata2:0x801D5470; // type:object size:0x4 data:float +lbl_801D5474 = .sdata2:0x801D5474; // type:object size:0x4 data:float +lbl_801D5478 = .sdata2:0x801D5478; // type:object size:0x4 data:float +lbl_801D547C = .sdata2:0x801D547C; // type:object size:0x4 data:float +lbl_801D5480 = .sdata2:0x801D5480; // type:object size:0x4 data:float +lbl_801D5484 = .sdata2:0x801D5484; // type:object size:0x4 data:float +lbl_801D5488 = .sdata2:0x801D5488; // type:object size:0x4 data:float +lbl_801D548C = .sdata2:0x801D548C; // type:object size:0x4 data:float +lbl_801D5490 = .sdata2:0x801D5490; // type:object size:0x4 data:float +lbl_801D5494 = .sdata2:0x801D5494; // type:object size:0x4 data:float +lbl_801D5498 = .sdata2:0x801D5498; // type:object size:0x4 data:float +lbl_801D549C = .sdata2:0x801D549C; // type:object size:0x4 data:float +lbl_801D54A0 = .sdata2:0x801D54A0; // type:object size:0x4 data:float +lbl_801D54A8 = .sdata2:0x801D54A8; // type:object size:0x8 data:double +lbl_801D54B0 = .sdata2:0x801D54B0; // type:object size:0x4 data:float +lbl_801D54B4 = .sdata2:0x801D54B4; // type:object size:0x4 data:float +lbl_801D54B8 = .sdata2:0x801D54B8; // type:object size:0x4 data:float +lbl_801D54BC = .sdata2:0x801D54BC; // type:object size:0x4 data:float +lbl_801D54C0 = .sdata2:0x801D54C0; // type:object size:0x4 data:float +lbl_801D54C4 = .sdata2:0x801D54C4; // type:object size:0x4 data:float +lbl_801D54C8 = .sdata2:0x801D54C8; // type:object size:0x4 data:float +lbl_801D54CC = .sdata2:0x801D54CC; // type:object size:0x4 data:float +lbl_801D54D0 = .sdata2:0x801D54D0; // type:object size:0x4 data:float +lbl_801D54D4 = .sdata2:0x801D54D4; // type:object size:0x4 data:float +lbl_801D54D8 = .sdata2:0x801D54D8; // type:object size:0x4 data:float +lbl_801D54DC = .sdata2:0x801D54DC; // type:object size:0x4 data:float +lbl_801D54E0 = .sdata2:0x801D54E0; // type:object size:0x4 data:float +lbl_801D54E8 = .sdata2:0x801D54E8; // type:object size:0x8 data:double +lbl_801D54F0 = .sdata2:0x801D54F0; // type:object size:0x4 data:float +lbl_801D54F4 = .sdata2:0x801D54F4; // type:object size:0x4 data:float +lbl_801D54F8 = .sdata2:0x801D54F8; // type:object size:0x4 data:float +lbl_801D5500 = .sdata2:0x801D5500; // type:object size:0x8 data:double +lbl_801D5508 = .sdata2:0x801D5508; // type:object size:0x8 data:float +lbl_801D5510 = .sdata2:0x801D5510; // type:object size:0x4 data:float +lbl_801D5514 = .sdata2:0x801D5514; // type:object size:0x4 data:4byte +lbl_801D5518 = .sdata2:0x801D5518; // type:object size:0x4 data:4byte +lbl_801D551C = .sdata2:0x801D551C; // type:object size:0x4 data:float +lbl_801D5520 = .sdata2:0x801D5520; // type:object size:0x4 data:float +lbl_801D5528 = .sdata2:0x801D5528; // type:object size:0x8 data:double +lbl_801D5530 = .sdata2:0x801D5530; // type:object size:0x8 data:double +lbl_801D5538 = .sdata2:0x801D5538; // type:object size:0x4 data:float +lbl_801D553C = .sdata2:0x801D553C; // type:object size:0x4 data:float +lbl_801D5540 = .sdata2:0x801D5540; // type:object size:0x4 data:float +lbl_801D5544 = .sdata2:0x801D5544; // type:object size:0x4 data:float +lbl_801D5548 = .sdata2:0x801D5548; // type:object size:0x8 data:double +lbl_801D5550 = .sdata2:0x801D5550; // type:object size:0x4 data:float +lbl_801D5554 = .sdata2:0x801D5554; // type:object size:0x4 data:float +lbl_801D5558 = .sdata2:0x801D5558; // type:object size:0x4 data:float +lbl_801D555C = .sdata2:0x801D555C; // type:object size:0x4 data:float +lbl_801D5560 = .sdata2:0x801D5560; // type:object size:0x4 data:float +lbl_801D5564 = .sdata2:0x801D5564; // type:object size:0x4 data:float +lbl_801D5568 = .sdata2:0x801D5568; // type:object size:0x4 data:float +lbl_801D556C = .sdata2:0x801D556C; // type:object size:0x4 data:float +lbl_801D5570 = .sdata2:0x801D5570; // type:object size:0x4 data:float +lbl_801D5574 = .sdata2:0x801D5574; // type:object size:0x4 data:float +lbl_801D5578 = .sdata2:0x801D5578; // type:object size:0x4 data:float +lbl_801D557C = .sdata2:0x801D557C; // type:object size:0x4 data:float +lbl_801D5580 = .sdata2:0x801D5580; // type:object size:0x4 data:float +lbl_801D5584 = .sdata2:0x801D5584; // type:object size:0x4 data:4byte +lbl_801D5588 = .sdata2:0x801D5588; // type:object size:0x4 data:4byte +lbl_801D558C = .sdata2:0x801D558C; // type:object size:0x2 data:2byte +lbl_801D558E = .sdata2:0x801D558E; // type:object size:0x2 data:2byte +lbl_801D5590 = .sdata2:0x801D5590; // type:object size:0x2 data:2byte +lbl_801D5592 = .sdata2:0x801D5592; // type:object size:0x2 data:2byte +lbl_801D5594 = .sdata2:0x801D5594; // type:object size:0x4 data:float +lbl_801D5598 = .sdata2:0x801D5598; // type:object size:0x4 data:float +lbl_801D559C = .sdata2:0x801D559C; // type:object size:0x4 data:float +lbl_801D55A0 = .sdata2:0x801D55A0; // type:object size:0x4 data:float +lbl_801D55A4 = .sdata2:0x801D55A4; // type:object size:0x4 data:float +lbl_801D55A8 = .sdata2:0x801D55A8; // type:object size:0x4 data:float +lbl_801D55AC = .sdata2:0x801D55AC; // type:object size:0x4 data:float +lbl_801D55B0 = .sdata2:0x801D55B0; // type:object size:0x4 data:float +lbl_801D55B4 = .sdata2:0x801D55B4; // type:object size:0x4 data:float +lbl_801D55B8 = .sdata2:0x801D55B8; // type:object size:0x4 data:float +lbl_801D55BC = .sdata2:0x801D55BC; // type:object size:0x4 data:float +lbl_801D55C0 = .sdata2:0x801D55C0; // type:object size:0x4 data:float +lbl_801D55C4 = .sdata2:0x801D55C4; // type:object size:0x4 data:float +lbl_801D55C8 = .sdata2:0x801D55C8; // type:object size:0x4 data:float +lbl_801D55CC = .sdata2:0x801D55CC; // type:object size:0x4 data:float +lbl_801D55D0 = .sdata2:0x801D55D0; // type:object size:0x4 data:float +lbl_801D55D4 = .sdata2:0x801D55D4; // type:object size:0x4 data:float +lbl_801D55D8 = .sdata2:0x801D55D8; // type:object size:0x4 data:float +lbl_801D55DC = .sdata2:0x801D55DC; // type:object size:0x4 data:float +lbl_801D55E0 = .sdata2:0x801D55E0; // type:object size:0x4 data:float +lbl_801D55E4 = .sdata2:0x801D55E4; // type:object size:0x4 data:float +lbl_801D55E8 = .sdata2:0x801D55E8; // type:object size:0x4 data:float +lbl_801D55EC = .sdata2:0x801D55EC; // type:object size:0x4 data:float +lbl_801D55F0 = .sdata2:0x801D55F0; // type:object size:0x4 data:float +lbl_801D55F4 = .sdata2:0x801D55F4; // type:object size:0x4 data:float +lbl_801D55F8 = .sdata2:0x801D55F8; // type:object size:0x4 data:float +lbl_801D55FC = .sdata2:0x801D55FC; // type:object size:0x4 data:float +lbl_801D5600 = .sdata2:0x801D5600; // type:object size:0x4 data:float +lbl_801D5604 = .sdata2:0x801D5604; // type:object size:0x4 data:float +lbl_801D5608 = .sdata2:0x801D5608; // type:object size:0x4 data:float +lbl_801D560C = .sdata2:0x801D560C; // type:object size:0x4 data:float +lbl_801D5610 = .sdata2:0x801D5610; // type:object size:0x4 data:float +lbl_801D5614 = .sdata2:0x801D5614; // type:object size:0x4 data:float +lbl_801D5618 = .sdata2:0x801D5618; // type:object size:0x4 data:float +lbl_801D561C = .sdata2:0x801D561C; // type:object size:0x4 data:float +lbl_801D5620 = .sdata2:0x801D5620; // type:object size:0x4 data:float +lbl_801D5624 = .sdata2:0x801D5624; // type:object size:0x4 data:float +lbl_801D5628 = .sdata2:0x801D5628; // type:object size:0x8 data:double +lbl_801D5630 = .sdata2:0x801D5630; // type:object size:0x8 data:double +lbl_801D5638 = .sdata2:0x801D5638; // type:object size:0x4 data:float +lbl_801D563C = .sdata2:0x801D563C; // type:object size:0x4 data:float +lbl_801D5640 = .sdata2:0x801D5640; // type:object size:0x4 data:float +lbl_801D5644 = .sdata2:0x801D5644; // type:object size:0x4 data:float +lbl_801D5648 = .sdata2:0x801D5648; // type:object size:0x4 data:float +lbl_801D564C = .sdata2:0x801D564C; // type:object size:0x4 data:float +lbl_801D5650 = .sdata2:0x801D5650; // type:object size:0x4 data:float +lbl_801D5654 = .sdata2:0x801D5654; // type:object size:0x4 data:float +lbl_801D5658 = .sdata2:0x801D5658; // type:object size:0x4 data:float +lbl_801D565C = .sdata2:0x801D565C; // type:object size:0x4 data:float +lbl_801D5660 = .sdata2:0x801D5660; // type:object size:0x4 data:float +lbl_801D5664 = .sdata2:0x801D5664; // type:object size:0x4 data:float +lbl_801D5668 = .sdata2:0x801D5668; // type:object size:0x8 data:double +lbl_801D5670 = .sdata2:0x801D5670; // type:object size:0x4 data:4byte +lbl_801D5674 = .sdata2:0x801D5674; // type:object size:0x4 data:4byte +lbl_801D5678 = .sdata2:0x801D5678; // type:object size:0x1 data:byte +lbl_801D5679 = .sdata2:0x801D5679; // type:object size:0x1 data:byte +lbl_801D567C = .sdata2:0x801D567C; // type:object size:0x4 data:float +lbl_801D5680 = .sdata2:0x801D5680; // type:object size:0x4 data:float +lbl_801D5684 = .sdata2:0x801D5684; // type:object size:0x4 data:float +lbl_801D5688 = .sdata2:0x801D5688; // type:object size:0x4 data:float +lbl_801D568C = .sdata2:0x801D568C; // type:object size:0x4 data:float +lbl_801D5690 = .sdata2:0x801D5690; // type:object size:0x4 data:float +lbl_801D5694 = .sdata2:0x801D5694; // type:object size:0x4 data:float +lbl_801D5698 = .sdata2:0x801D5698; // type:object size:0x8 data:float +lbl_801D56A0 = .sdata2:0x801D56A0; // type:object size:0x4 data:float +lbl_801D56A4 = .sdata2:0x801D56A4; // type:object size:0x4 data:float +lbl_801D56A8 = .sdata2:0x801D56A8; // type:object size:0x4 data:float +lbl_801D56AC = .sdata2:0x801D56AC; // type:object size:0x4 data:float +coinSignMdl = .sdata2:0x801D56B0; // type:object size:0x8 scope:local +lbl_801D56B8 = .sdata2:0x801D56B8; // type:object size:0x4 data:float +lbl_801D56BC = .sdata2:0x801D56BC; // type:object size:0x4 data:float +lbl_801D56C0 = .sdata2:0x801D56C0; // type:object size:0x4 data:float +lbl_801D56C8 = .sdata2:0x801D56C8; // type:object size:0x8 data:double +lbl_801D56D0 = .sdata2:0x801D56D0; // type:object size:0x8 data:double +lbl_801D56D8 = .sdata2:0x801D56D8; // type:object size:0x4 data:float +lbl_801D56DC = .sdata2:0x801D56DC; // type:object size:0x4 data:float +lbl_801D56E0 = .sdata2:0x801D56E0; // type:object size:0x4 data:float +lbl_801D56E8 = .sdata2:0x801D56E8; // type:object size:0x8 data:double +lbl_801D56F0 = .sdata2:0x801D56F0; // type:object size:0x4 data:float +lbl_801D56F4 = .sdata2:0x801D56F4; // type:object size:0x4 data:float +lbl_801D56F8 = .sdata2:0x801D56F8; // type:object size:0x4 data:float +lbl_801D56FC = .sdata2:0x801D56FC; // type:object size:0x4 data:float +lbl_801D5700 = .sdata2:0x801D5700; // type:object size:0x4 data:float +lbl_801D5704 = .sdata2:0x801D5704; // type:object size:0x4 data:float +lbl_801D5708 = .sdata2:0x801D5708; // type:object size:0x4 data:float +lbl_801D570C = .sdata2:0x801D570C; // type:object size:0x4 data:float +lbl_801D5710 = .sdata2:0x801D5710; // type:object size:0x8 data:double +lbl_801D5718 = .sdata2:0x801D5718; // type:object size:0x8 data:double +lbl_801D5720 = .sdata2:0x801D5720; // type:object size:0x4 data:float +lbl_801D5728 = .sdata2:0x801D5728; // type:object size:0x8 data:double +lbl_801D5730 = .sdata2:0x801D5730; // type:object size:0x4 data:float +lbl_801D5734 = .sdata2:0x801D5734; // type:object size:0x4 data:float +lbl_801D5738 = .sdata2:0x801D5738; // type:object size:0x4 data:float +lbl_801D573C = .sdata2:0x801D573C; // type:object size:0x4 data:float +lbl_801D5740 = .sdata2:0x801D5740; // type:object size:0x4 data:float +lbl_801D5744 = .sdata2:0x801D5744; // type:object size:0x4 data:float +lbl_801D5748 = .sdata2:0x801D5748; // type:object size:0x4 data:float +lbl_801D574C = .sdata2:0x801D574C; // type:object size:0x4 data:float +lbl_801D5750 = .sdata2:0x801D5750; // type:object size:0x4 data:float +lbl_801D5754 = .sdata2:0x801D5754; // type:object size:0x4 data:float +lbl_801D5758 = .sdata2:0x801D5758; // type:object size:0x4 data:float +lbl_801D575C = .sdata2:0x801D575C; // type:object size:0x4 data:float +lbl_801D5760 = .sdata2:0x801D5760; // type:object size:0x4 data:float +lbl_801D5768 = .sdata2:0x801D5768; // type:object size:0x8 data:double +lbl_801D5770 = .sdata2:0x801D5770; // type:object size:0x8 data:double +lbl_801D5778 = .sdata2:0x801D5778; // type:object size:0x8 data:float +lbl_801D5780 = .sdata2:0x801D5780; // type:object size:0x4 data:float +lbl_801D5784 = .sdata2:0x801D5784; // type:object size:0x4 data:float +lbl_801D5788 = .sdata2:0x801D5788; // type:object size:0x4 data:float +lbl_801D578C = .sdata2:0x801D578C; // type:object size:0x4 data:float +lbl_801D5790 = .sdata2:0x801D5790; // type:object size:0x4 data:float +lbl_801D5794 = .sdata2:0x801D5794; // type:object size:0x4 data:float +lbl_801D5798 = .sdata2:0x801D5798; // type:object size:0x4 data:float +lbl_801D579C = .sdata2:0x801D579C; // type:object size:0x4 data:float +lbl_801D57A0 = .sdata2:0x801D57A0; // type:object size:0x4 data:float +lbl_801D57A4 = .sdata2:0x801D57A4; // type:object size:0x4 data:float +lbl_801D57A8 = .sdata2:0x801D57A8; // type:object size:0x4 data:float +lbl_801D57AC = .sdata2:0x801D57AC; // type:object size:0x4 data:float +lbl_801D57B0 = .sdata2:0x801D57B0; // type:object size:0x4 data:float +lbl_801D57B4 = .sdata2:0x801D57B4; // type:object size:0x4 data:float +lbl_801D57B8 = .sdata2:0x801D57B8; // type:object size:0x4 data:float +lbl_801D57BC = .sdata2:0x801D57BC; // type:object size:0x4 data:float +lbl_801D57C0 = .sdata2:0x801D57C0; // type:object size:0x8 data:double +lbl_801D57C8 = .sdata2:0x801D57C8; // type:object size:0x4 data:float +lbl_801D57CC = .sdata2:0x801D57CC; // type:object size:0x4 data:float +lbl_801D57D0 = .sdata2:0x801D57D0; // type:object size:0x4 data:float +lbl_801D57D4 = .sdata2:0x801D57D4; // type:object size:0x4 data:float +lbl_801D57D8 = .sdata2:0x801D57D8; // type:object size:0x4 data:float +lbl_801D57DC = .sdata2:0x801D57DC; // type:object size:0x4 data:float +lbl_801D57E0 = .sdata2:0x801D57E0; // type:object size:0x4 data:float +lbl_801D57E4 = .sdata2:0x801D57E4; // type:object size:0x4 data:float +lbl_801D57E8 = .sdata2:0x801D57E8; // type:object size:0x8 data:double +lbl_801D57F0 = .sdata2:0x801D57F0; // type:object size:0x8 data:double +lbl_801D57F8 = .sdata2:0x801D57F8; // type:object size:0x4 data:float +lbl_801D5800 = .sdata2:0x801D5800; // type:object size:0x8 data:double +lbl_801D5808 = .sdata2:0x801D5808; // type:object size:0x8 data:float +boxOfs = .sdata2:0x801D5810; // type:object size:0x8 scope:local data:float +lbl_801D5818 = .sdata2:0x801D5818; // type:object size:0x4 data:float +lbl_801D581C = .sdata2:0x801D581C; // type:object size:0x4 data:float +lbl_801D5820 = .sdata2:0x801D5820; // type:object size:0x4 data:float +lbl_801D5824 = .sdata2:0x801D5824; // type:object size:0x4 data:float +lbl_801D5828 = .sdata2:0x801D5828; // type:object size:0x4 data:float +lbl_801D582C = .sdata2:0x801D582C; // type:object size:0x4 data:float +lbl_801D5830 = .sdata2:0x801D5830; // type:object size:0x8 data:double +lbl_801D5838 = .sdata2:0x801D5838; // type:object size:0x8 data:double +lbl_801D5840 = .sdata2:0x801D5840; // type:object size:0x8 data:double +lbl_801D5848 = .sdata2:0x801D5848; // type:object size:0x4 data:float +lbl_801D584C = .sdata2:0x801D584C; // type:object size:0x4 data:float +lbl_801D5850 = .sdata2:0x801D5850; // type:object size:0x4 data:float +lbl_801D5854 = .sdata2:0x801D5854; // type:object size:0x4 data:4byte +lbl_801D5858 = .sdata2:0x801D5858; // type:object size:0x4 data:4byte +lbl_801D585C = .sdata2:0x801D585C; // type:object size:0x4 data:float +lbl_801D5860 = .sdata2:0x801D5860; // type:object size:0x4 data:float +lbl_801D5864 = .sdata2:0x801D5864; // type:object size:0x4 data:float +lbl_801D5868 = .sdata2:0x801D5868; // type:object size:0x4 data:float +lbl_801D586C = .sdata2:0x801D586C; // type:object size:0x4 data:4byte +lbl_801D5870 = .sdata2:0x801D5870; // type:object size:0x4 data:4byte +lbl_801D5874 = .sdata2:0x801D5874; // type:object size:0x4 data:float +lbl_801D5878 = .sdata2:0x801D5878; // type:object size:0x4 data:float +lbl_801D587C = .sdata2:0x801D587C; // type:object size:0x4 data:float +lbl_801D5880 = .sdata2:0x801D5880; // type:object size:0x4 data:float +lbl_801D5884 = .sdata2:0x801D5884; // type:object size:0x4 data:float +lbl_801D5888 = .sdata2:0x801D5888; // type:object size:0x8 data:double +lbl_801D5890 = .sdata2:0x801D5890; // type:object size:0x4 data:float +lbl_801D5898 = .sdata2:0x801D5898; // type:object size:0x8 data:double +lbl_801D58A0 = .sdata2:0x801D58A0; // type:object size:0x8 data:double +lbl_801D58A8 = .sdata2:0x801D58A8; // type:object size:0x8 data:double +lbl_801D58B0 = .sdata2:0x801D58B0; // type:object size:0x4 data:float +lbl_801D58B4 = .sdata2:0x801D58B4; // type:object size:0x4 data:float +lbl_801D58B8 = .sdata2:0x801D58B8; // type:object size:0x4 data:float +lbl_801D58BC = .sdata2:0x801D58BC; // type:object size:0x4 data:float +lbl_801D58C0 = .sdata2:0x801D58C0; // type:object size:0x4 data:float +lbl_801D58C4 = .sdata2:0x801D58C4; // type:object size:0x4 data:float +lbl_801D58C8 = .sdata2:0x801D58C8; // type:object size:0x4 data:float +lbl_801D58CC = .sdata2:0x801D58CC; // type:object size:0x4 data:float +lbl_801D58D0 = .sdata2:0x801D58D0; // type:object size:0x4 data:float +lbl_801D58D4 = .sdata2:0x801D58D4; // type:object size:0x4 data:float +lbl_801D58D8 = .sdata2:0x801D58D8; // type:object size:0x4 data:float +lbl_801D58E0 = .sdata2:0x801D58E0; // type:object size:0x8 data:double +lbl_801D58E8 = .sdata2:0x801D58E8; // type:object size:0x4 data:float +lbl_801D58EC = .sdata2:0x801D58EC; // type:object size:0x4 data:float +lbl_801D58F0 = .sdata2:0x801D58F0; // type:object size:0x4 data:float +lbl_801D58F4 = .sdata2:0x801D58F4; // type:object size:0x4 data:float +lbl_801D58F8 = .sdata2:0x801D58F8; // type:object size:0x4 data:float +lbl_801D58FC = .sdata2:0x801D58FC; // type:object size:0x4 data:float +lbl_801D5900 = .sdata2:0x801D5900; // type:object size:0x4 data:float +lbl_801D5904 = .sdata2:0x801D5904; // type:object size:0x4 data:float +lbl_801D5908 = .sdata2:0x801D5908; // type:object size:0x4 data:float +lbl_801D590C = .sdata2:0x801D590C; // type:object size:0x4 data:float +lbl_801D5910 = .sdata2:0x801D5910; // type:object size:0x4 data:float +lbl_801D5914 = .sdata2:0x801D5914; // type:object size:0x4 data:float +lbl_801D5918 = .sdata2:0x801D5918; // type:object size:0x4 data:float +lbl_801D591C = .sdata2:0x801D591C; // type:object size:0x4 data:float +lbl_801D5920 = .sdata2:0x801D5920; // type:object size:0x4 data:float +lbl_801D5924 = .sdata2:0x801D5924; // type:object size:0x4 data:float +lbl_801D5928 = .sdata2:0x801D5928; // type:object size:0x4 data:float +lbl_801D592C = .sdata2:0x801D592C; // type:object size:0x4 data:float +lbl_801D5930 = .sdata2:0x801D5930; // type:object size:0x8 data:float +lbl_801D5938 = .sdata2:0x801D5938; // type:object size:0x4 data:float +lbl_801D593C = .sdata2:0x801D593C; // type:object size:0x4 data:float +lbl_801D5940 = .sdata2:0x801D5940; // type:object size:0x4 data:float +lbl_801D5944 = .sdata2:0x801D5944; // type:object size:0x4 data:float +lbl_801D5948 = .sdata2:0x801D5948; // type:object size:0x4 data:float +lbl_801D594C = .sdata2:0x801D594C; // type:object size:0x4 data:float +lbl_801D5950 = .sdata2:0x801D5950; // type:object size:0x4 data:float +lbl_801D5954 = .sdata2:0x801D5954; // type:object size:0x4 data:float +lbl_801D5958 = .sdata2:0x801D5958; // type:object size:0x4 data:float +lbl_801D595C = .sdata2:0x801D595C; // type:object size:0x4 data:float +lbl_801D5960 = .sdata2:0x801D5960; // type:object size:0x4 data:float +lbl_801D5964 = .sdata2:0x801D5964; // type:object size:0x4 data:float +lbl_801D5968 = .sdata2:0x801D5968; // type:object size:0x8 data:double +lbl_801D5970 = .sdata2:0x801D5970; // type:object size:0x8 data:double +lbl_801D5978 = .sdata2:0x801D5978; // type:object size:0x4 data:float +lbl_801D5980 = .sdata2:0x801D5980; // type:object size:0x8 data:double +lbl_801D5988 = .sdata2:0x801D5988; // type:object size:0x8 data:double +lbl_801D5990 = .sdata2:0x801D5990; // type:object size:0x8 data:double +lbl_801D5998 = .sdata2:0x801D5998; // type:object size:0x4 data:float +lbl_801D59A0 = .sdata2:0x801D59A0; // type:object size:0x8 data:double +lbl_801D59A8 = .sdata2:0x801D59A8; // type:object size:0x4 data:float +lbl_801D59AC = .sdata2:0x801D59AC; // type:object size:0x4 data:float +lbl_801D59B0 = .sdata2:0x801D59B0; // type:object size:0x4 data:float +lbl_801D59B4 = .sdata2:0x801D59B4; // type:object size:0x4 data:float +lbl_801D59B8 = .sdata2:0x801D59B8; // type:object size:0x4 data:float +lbl_801D59BC = .sdata2:0x801D59BC; // type:object size:0x4 data:float +lbl_801D59C0 = .sdata2:0x801D59C0; // type:object size:0x4 data:float +lbl_801D59C4 = .sdata2:0x801D59C4; // type:object size:0x4 data:float +lbl_801D59C8 = .sdata2:0x801D59C8; // type:object size:0x4 data:float +lbl_801D59CC = .sdata2:0x801D59CC; // type:object size:0x4 data:float +lbl_801D59D0 = .sdata2:0x801D59D0; // type:object size:0x4 data:float +lbl_801D59D4 = .sdata2:0x801D59D4; // type:object size:0x4 data:float +lbl_801D59D8 = .sdata2:0x801D59D8; // type:object size:0x8 data:float +lbl_801D59E0 = .sdata2:0x801D59E0; // type:object size:0x4 data:float +lbl_801D59E4 = .sdata2:0x801D59E4; // type:object size:0x4 data:float +lbl_801D59E8 = .sdata2:0x801D59E8; // type:object size:0x4 data:float +lbl_801D59EC = .sdata2:0x801D59EC; // type:object size:0x4 data:float +lbl_801D59F0 = .sdata2:0x801D59F0; // type:object size:0x4 data:float +lbl_801D59F4 = .sdata2:0x801D59F4; // type:object size:0x4 data:float +lbl_801D59F8 = .sdata2:0x801D59F8; // type:object size:0x4 data:float +lbl_801D59FC = .sdata2:0x801D59FC; // type:object size:0x4 data:float +lbl_801D5A00 = .sdata2:0x801D5A00; // type:object size:0x4 data:float +lbl_801D5A08 = .sdata2:0x801D5A08; // type:object size:0x8 data:double +lbl_801D5A10 = .sdata2:0x801D5A10; // type:object size:0x8 data:double +lbl_801D5A18 = .sdata2:0x801D5A18; // type:object size:0x8 data:double +lbl_801D5A20 = .sdata2:0x801D5A20; // type:object size:0x4 data:float +lbl_801D5A24 = .sdata2:0x801D5A24; // type:object size:0x4 data:float +lbl_801D5A28 = .sdata2:0x801D5A28; // type:object size:0x4 data:float +lbl_801D5A2C = .sdata2:0x801D5A2C; // type:object size:0x4 data:float +lbl_801D5A30 = .sdata2:0x801D5A30; // type:object size:0x8 data:double +lbl_801D5A38 = .sdata2:0x801D5A38; // type:object size:0x8 data:double +lbl_801D5A40 = .sdata2:0x801D5A40; // type:object size:0x4 data:float +lbl_801D5A44 = .sdata2:0x801D5A44; // type:object size:0x4 data:float +lbl_801D5A48 = .sdata2:0x801D5A48; // type:object size:0x4 data:float +lbl_801D5A4C = .sdata2:0x801D5A4C; // type:object size:0x4 data:float +lbl_801D5A50 = .sdata2:0x801D5A50; // type:object size:0x4 data:float +lbl_801D5A54 = .sdata2:0x801D5A54; // type:object size:0x4 data:float +lbl_801D5A58 = .sdata2:0x801D5A58; // type:object size:0x4 data:float +lbl_801D5A60 = .sdata2:0x801D5A60; // type:object size:0x8 data:double +lbl_801D5A68 = .sdata2:0x801D5A68; // type:object size:0x4 data:float +lbl_801D5A6C = .sdata2:0x801D5A6C; // type:object size:0x4 data:float +lbl_801D5A70 = .sdata2:0x801D5A70; // type:object size:0x4 data:float +lbl_801D5A74 = .sdata2:0x801D5A74; // type:object size:0x4 data:float +lbl_801D5A78 = .sdata2:0x801D5A78; // type:object size:0x4 data:float +lbl_801D5A7C = .sdata2:0x801D5A7C; // type:object size:0x4 data:float +lbl_801D5A80 = .sdata2:0x801D5A80; // type:object size:0x4 data:float +lbl_801D5A84 = .sdata2:0x801D5A84; // type:object size:0x4 data:float +lbl_801D5A88 = .sdata2:0x801D5A88; // type:object size:0x4 data:float +lbl_801D5A8C = .sdata2:0x801D5A8C; // type:object size:0x4 data:float +lbl_801D5A90 = .sdata2:0x801D5A90; // type:object size:0x4 data:float +lbl_801D5A94 = .sdata2:0x801D5A94; // type:object size:0x4 data:float +lbl_801D5A98 = .sdata2:0x801D5A98; // type:object size:0x4 data:float +lbl_801D5A9C = .sdata2:0x801D5A9C; // type:object size:0x4 data:float +lbl_801D5AA0 = .sdata2:0x801D5AA0; // type:object size:0x4 data:float +lbl_801D5AA4 = .sdata2:0x801D5AA4; // type:object size:0x4 data:float +lbl_801D5AA8 = .sdata2:0x801D5AA8; // type:object size:0x4 data:float +lbl_801D5AAC = .sdata2:0x801D5AAC; // type:object size:0x4 data:float +lbl_801D5AB0 = .sdata2:0x801D5AB0; // type:object size:0x4 data:float +lbl_801D5AB4 = .sdata2:0x801D5AB4; // type:object size:0x4 data:float +lbl_801D5AB8 = .sdata2:0x801D5AB8; // type:object size:0x4 data:float +lbl_801D5ABC = .sdata2:0x801D5ABC; // type:object size:0x4 data:float +lbl_801D5AC0 = .sdata2:0x801D5AC0; // type:object size:0x4 data:float +lbl_801D5AC4 = .sdata2:0x801D5AC4; // type:object size:0x4 data:float +lbl_801D5AC8 = .sdata2:0x801D5AC8; // type:object size:0x4 data:float +lbl_801D5ACC = .sdata2:0x801D5ACC; // type:object size:0x4 data:float +lbl_801D5AD0 = .sdata2:0x801D5AD0; // type:object size:0x8 data:double +lbl_801D5AD8 = .sdata2:0x801D5AD8; // type:object size:0x8 data:double +lbl_801D5AE0 = .sdata2:0x801D5AE0; // type:object size:0x8 data:double +lbl_801D5AE8 = .sdata2:0x801D5AE8; // type:object size:0x4 data:float +lbl_801D5AEC = .sdata2:0x801D5AEC; // type:object size:0x4 data:float +lbl_801D5AF0 = .sdata2:0x801D5AF0; // type:object size:0x4 data:float +lbl_801D5AF4 = .sdata2:0x801D5AF4; // type:object size:0x4 data:float +lbl_801D5AF8 = .sdata2:0x801D5AF8; // type:object size:0x4 data:float +lbl_801D5AFC = .sdata2:0x801D5AFC; // type:object size:0x4 data:float +lbl_801D5B00 = .sdata2:0x801D5B00; // type:object size:0x4 data:float +lbl_801D5B08 = .sdata2:0x801D5B08; // type:object size:0x8 data:double +lbl_801D5B10 = .sdata2:0x801D5B10; // type:object size:0x8 data:double +lbl_801D5B18 = .sdata2:0x801D5B18; // type:object size:0x8 data:double +lbl_801D5B20 = .sdata2:0x801D5B20; // type:object size:0x4 data:float +lbl_801D5B24 = .sdata2:0x801D5B24; // type:object size:0x4 data:float +lbl_801D5B28 = .sdata2:0x801D5B28; // type:object size:0x4 data:float +lbl_801D5B2C = .sdata2:0x801D5B2C; // type:object size:0x4 data:float +lbl_801D5B30 = .sdata2:0x801D5B30; // type:object size:0x4 data:float +lbl_801D5B34 = .sdata2:0x801D5B34; // type:object size:0x4 data:float +lbl_801D5B38 = .sdata2:0x801D5B38; // type:object size:0x4 data:float +lbl_801D5B3C = .sdata2:0x801D5B3C; // type:object size:0x4 data:float +lbl_801D5B40 = .sdata2:0x801D5B40; // type:object size:0x4 data:float +lbl_801D5B44 = .sdata2:0x801D5B44; // type:object size:0x4 data:float +lbl_801D5B48 = .sdata2:0x801D5B48; // type:object size:0x8 data:double +lbl_801D5B50 = .sdata2:0x801D5B50; // type:object size:0x4 data:float +lbl_801D5B54 = .sdata2:0x801D5B54; // type:object size:0x4 data:float +lbl_801D5B58 = .sdata2:0x801D5B58; // type:object size:0x4 data:float +lbl_801D5B5C = .sdata2:0x801D5B5C; // type:object size:0x4 data:float +lbl_801D5B60 = .sdata2:0x801D5B60; // type:object size:0x4 data:float +lbl_801D5B64 = .sdata2:0x801D5B64; // type:object size:0x4 data:float +lbl_801D5B68 = .sdata2:0x801D5B68; // type:object size:0x4 data:float +lbl_801D5B6C = .sdata2:0x801D5B6C; // type:object size:0x4 data:float +lbl_801D5B70 = .sdata2:0x801D5B70; // type:object size:0x4 data:float +lbl_801D5B74 = .sdata2:0x801D5B74; // type:object size:0x4 data:float +lbl_801D5B78 = .sdata2:0x801D5B78; // type:object size:0x4 data:float +lbl_801D5B7C = .sdata2:0x801D5B7C; // type:object size:0x4 data:float +lbl_801D5B80 = .sdata2:0x801D5B80; // type:object size:0x4 data:float +lbl_801D5B84 = .sdata2:0x801D5B84; // type:object size:0x4 data:float +lbl_801D5B88 = .sdata2:0x801D5B88; // type:object size:0x4 data:float +lbl_801D5B8C = .sdata2:0x801D5B8C; // type:object size:0x4 data:float +lbl_801D5B90 = .sdata2:0x801D5B90; // type:object size:0x4 data:float +lbl_801D5B94 = .sdata2:0x801D5B94; // type:object size:0x4 data:float +lbl_801D5B98 = .sdata2:0x801D5B98; // type:object size:0x4 data:float +lbl_801D5B9C = .sdata2:0x801D5B9C; // type:object size:0x4 data:float +lbl_801D5BA0 = .sdata2:0x801D5BA0; // type:object size:0x4 data:float +lbl_801D5BA4 = .sdata2:0x801D5BA4; // type:object size:0x4 data:float +lbl_801D5BA8 = .sdata2:0x801D5BA8; // type:object size:0x4 data:float +lbl_801D5BAC = .sdata2:0x801D5BAC; // type:object size:0x4 data:float +lbl_801D5BB0 = .sdata2:0x801D5BB0; // type:object size:0x8 data:double +lbl_801D5BB8 = .sdata2:0x801D5BB8; // type:object size:0x8 data:double +lbl_801D5BC0 = .sdata2:0x801D5BC0; // type:object size:0x4 data:float +lbl_801D5BC4 = .sdata2:0x801D5BC4; // type:object size:0x4 data:float +lbl_801D5BC8 = .sdata2:0x801D5BC8; // type:object size:0x4 data:float +lbl_801D5BCC = .sdata2:0x801D5BCC; // type:object size:0x4 data:float +lbl_801D5BD0 = .sdata2:0x801D5BD0; // type:object size:0x4 data:float +lbl_801D5BD8 = .sdata2:0x801D5BD8; // type:object size:0x8 data:double +lbl_801D5BE0 = .sdata2:0x801D5BE0; // type:object size:0x4 data:float +lbl_801D5BE4 = .sdata2:0x801D5BE4; // type:object size:0x4 data:float +lbl_801D5BE8 = .sdata2:0x801D5BE8; // type:object size:0x4 data:float +lbl_801D5BEC = .sdata2:0x801D5BEC; // type:object size:0x4 data:float +lbl_801D5BF0 = .sdata2:0x801D5BF0; // type:object size:0x4 data:float +lbl_801D5BF4 = .sdata2:0x801D5BF4; // type:object size:0x4 data:float +lbl_801D5BF8 = .sdata2:0x801D5BF8; // type:object size:0x4 data:float +lbl_801D5BFC = .sdata2:0x801D5BFC; // type:object size:0x4 data:float +lbl_801D5C00 = .sdata2:0x801D5C00; // type:object size:0x4 data:float +lbl_801D5C04 = .sdata2:0x801D5C04; // type:object size:0x4 data:float +lbl_801D5C08 = .sdata2:0x801D5C08; // type:object size:0x4 data:float +lbl_801D5C10 = .sdata2:0x801D5C10; // type:object size:0x8 data:double +lbl_801D5C18 = .sdata2:0x801D5C18; // type:object size:0x4 data:float +lbl_801D5C1C = .sdata2:0x801D5C1C; // type:object size:0x4 data:float +lbl_801D5C20 = .sdata2:0x801D5C20; // type:object size:0x4 data:float +lbl_801D5C24 = .sdata2:0x801D5C24; // type:object size:0x4 data:float +lbl_801D5C28 = .sdata2:0x801D5C28; // type:object size:0x4 data:float +lbl_801D5C2C = .sdata2:0x801D5C2C; // type:object size:0x4 data:float +lbl_801D5C30 = .sdata2:0x801D5C30; // type:object size:0x4 data:float +lbl_801D5C34 = .sdata2:0x801D5C34; // type:object size:0x4 data:float +lbl_801D5C38 = .sdata2:0x801D5C38; // type:object size:0x4 data:float +lbl_801D5C3C = .sdata2:0x801D5C3C; // type:object size:0x4 data:float +lbl_801D5C40 = .sdata2:0x801D5C40; // type:object size:0x4 data:float +lbl_801D5C44 = .sdata2:0x801D5C44; // type:object size:0x4 data:float +lbl_801D5C48 = .sdata2:0x801D5C48; // type:object size:0x4 data:float +lbl_801D5C4C = .sdata2:0x801D5C4C; // type:object size:0x4 data:float +lbl_801D5C50 = .sdata2:0x801D5C50; // type:object size:0x4 data:float +lbl_801D5C54 = .sdata2:0x801D5C54; // type:object size:0x4 data:float +lbl_801D5C58 = .sdata2:0x801D5C58; // type:object size:0x4 data:float +lbl_801D5C5C = .sdata2:0x801D5C5C; // type:object size:0x4 data:float +lbl_801D5C60 = .sdata2:0x801D5C60; // type:object size:0x4 data:float +lbl_801D5C68 = .sdata2:0x801D5C68; // type:object size:0x8 data:double +lbl_801D5C70 = .sdata2:0x801D5C70; // type:object size:0x4 data:float +lbl_801D5C78 = .sdata2:0x801D5C78; // type:object size:0x8 data:double +lbl_801D5C80 = .sdata2:0x801D5C80; // type:object size:0x4 data:float +lbl_801D5C84 = .sdata2:0x801D5C84; // type:object size:0x4 data:float +lbl_801D5C88 = .sdata2:0x801D5C88; // type:object size:0x4 data:float +lbl_801D5C8C = .sdata2:0x801D5C8C; // type:object size:0x4 data:float +lbl_801D5C90 = .sdata2:0x801D5C90; // type:object size:0x4 data:float +lbl_801D5C98 = .sdata2:0x801D5C98; // type:object size:0x8 data:double +lbl_801D5CA0 = .sdata2:0x801D5CA0; // type:object size:0x4 data:float +lbl_801D5CA4 = .sdata2:0x801D5CA4; // type:object size:0x4 data:float +lbl_801D5CA8 = .sdata2:0x801D5CA8; // type:object size:0x4 data:float +lbl_801D5CAC = .sdata2:0x801D5CAC; // type:object size:0x4 data:float +lbl_801D5CB0 = .sdata2:0x801D5CB0; // type:object size:0x4 data:float +lbl_801D5CB4 = .sdata2:0x801D5CB4; // type:object size:0x4 data:float +lbl_801D5CB8 = .sdata2:0x801D5CB8; // type:object size:0x4 data:float +lbl_801D5CBC = .sdata2:0x801D5CBC; // type:object size:0x4 data:float +lbl_801D5CC0 = .sdata2:0x801D5CC0; // type:object size:0x4 data:float +lbl_801D5CC4 = .sdata2:0x801D5CC4; // type:object size:0x4 data:float +lbl_801D5CC8 = .sdata2:0x801D5CC8; // type:object size:0x4 data:float +lbl_801D5CCC = .sdata2:0x801D5CCC; // type:object size:0x4 data:float +lbl_801D5CD0 = .sdata2:0x801D5CD0; // type:object size:0x1 data:byte +lbl_801D5CD1 = .sdata2:0x801D5CD1; // type:object size:0x1 data:byte +lbl_801D5CD2 = .sdata2:0x801D5CD2; // type:object size:0x1 data:byte +lbl_801D5CD3 = .sdata2:0x801D5CD3; // type:object size:0x1 data:byte +lbl_801D5CD4 = .sdata2:0x801D5CD4; // type:object size:0x4 data:float +lbl_801D5CD8 = .sdata2:0x801D5CD8; // type:object size:0x4 data:float +lbl_801D5CDC = .sdata2:0x801D5CDC; // type:object size:0x4 data:float +lbl_801D5CE0 = .sdata2:0x801D5CE0; // type:object size:0x4 data:float +lbl_801D5CE4 = .sdata2:0x801D5CE4; // type:object size:0x4 data:float +lbl_801D5CE8 = .sdata2:0x801D5CE8; // type:object size:0x8 data:double +lbl_801D5CF0 = .sdata2:0x801D5CF0; // type:object size:0x8 data:double +lbl_801D5CF8 = .sdata2:0x801D5CF8; // type:object size:0x4 data:float +lbl_801D5CFC = .sdata2:0x801D5CFC; // type:object size:0x4 data:float +lbl_801D5D00 = .sdata2:0x801D5D00; // type:object size:0x4 data:float +lbl_801D5D04 = .sdata2:0x801D5D04; // type:object size:0x4 data:float +lbl_801D5D08 = .sdata2:0x801D5D08; // type:object size:0x4 data:float +lbl_801D5D0C = .sdata2:0x801D5D0C; // type:object size:0x4 data:float +lbl_801D5D10 = .sdata2:0x801D5D10; // type:object size:0x8 data:double +lbl_801D5D18 = .sdata2:0x801D5D18; // type:object size:0x4 data:float +lbl_801D5D1C = .sdata2:0x801D5D1C; // type:object size:0x4 data:float +lbl_801D5D20 = .sdata2:0x801D5D20; // type:object size:0x8 data:double +lbl_801D5D28 = .sdata2:0x801D5D28; // type:object size:0x8 data:float +lbl_801D5D30 = .sdata2:0x801D5D30; // type:object size:0x4 data:float +lbl_801D5D34 = .sdata2:0x801D5D34; // type:object size:0x4 data:float +lbl_801D5D38 = .sdata2:0x801D5D38; // type:object size:0x4 data:float +lbl_801D5D3C = .sdata2:0x801D5D3C; // type:object size:0x4 data:float +lbl_801D5D40 = .sdata2:0x801D5D40; // type:object size:0x4 data:float +lbl_801D5D44 = .sdata2:0x801D5D44; // type:object size:0x4 data:float +lbl_801D5D48 = .sdata2:0x801D5D48; // type:object size:0x4 data:float +lbl_801D5D4C = .sdata2:0x801D5D4C; // type:object size:0x4 data:float +lbl_801D5D50 = .sdata2:0x801D5D50; // type:object size:0x4 data:float +lbl_801D5D54 = .sdata2:0x801D5D54; // type:object size:0x4 data:float +lbl_801D5D58 = .sdata2:0x801D5D58; // type:object size:0x2 data:2byte +lbl_801D5D5A = .sdata2:0x801D5D5A; // type:object size:0x2 data:2byte +lbl_801D5D5C = .sdata2:0x801D5D5C; // type:object size:0x2 data:2byte +lbl_801D5D60 = .sdata2:0x801D5D60; // type:object size:0x4 data:float +lbl_801D5D64 = .sdata2:0x801D5D64; // type:object size:0x4 data:float +lbl_801D5D68 = .sdata2:0x801D5D68; // type:object size:0x4 data:float +lbl_801D5D6C = .sdata2:0x801D5D6C; // type:object size:0x4 data:float +lbl_801D5D70 = .sdata2:0x801D5D70; // type:object size:0x4 data:float +lbl_801D5D74 = .sdata2:0x801D5D74; // type:object size:0x4 data:float +lbl_801D5D78 = .sdata2:0x801D5D78; // type:object size:0x4 data:float +lbl_801D5D7C = .sdata2:0x801D5D7C; // type:object size:0x4 data:float +lbl_801D5D80 = .sdata2:0x801D5D80; // type:object size:0x8 data:double +lbl_801D5D88 = .sdata2:0x801D5D88; // type:object size:0x8 data:double +lbl_801D5D90 = .sdata2:0x801D5D90; // type:object size:0x8 data:double +lbl_801D5D98 = .sdata2:0x801D5D98; // type:object size:0x4 data:float +lbl_801D5D9C = .sdata2:0x801D5D9C; // type:object size:0x4 data:float +lbl_801D5DA0 = .sdata2:0x801D5DA0; // type:object size:0x4 data:float +lbl_801D5DA4 = .sdata2:0x801D5DA4; // type:object size:0x4 data:float +lbl_801D5DA8 = .sdata2:0x801D5DA8; // type:object size:0x4 data:float +lbl_801D5DAC = .sdata2:0x801D5DAC; // type:object size:0x4 data:float +lbl_801D5DB0 = .sdata2:0x801D5DB0; // type:object size:0x4 data:float +lbl_801D5DB4 = .sdata2:0x801D5DB4; // type:object size:0x4 data:float +lbl_801D5DB8 = .sdata2:0x801D5DB8; // type:object size:0x4 data:float +lbl_801D5DC0 = .sdata2:0x801D5DC0; // type:object size:0x8 data:double +lbl_801D5DC8 = .sdata2:0x801D5DC8; // type:object size:0x1 data:byte +lbl_801D5DC9 = .sdata2:0x801D5DC9; // type:object size:0x1 data:byte +lbl_801D5DCA = .sdata2:0x801D5DCA; // type:object size:0x1 data:byte +lbl_801D5DCC = .sdata2:0x801D5DCC; // type:object size:0x4 data:float +lbl_801D5DD0 = .sdata2:0x801D5DD0; // type:object size:0x8 data:double +lbl_801D5DD8 = .sdata2:0x801D5DD8; // type:object size:0x8 data:float +battleCoinTbl = .sdata2:0x801D5DE0; // type:object size:0x5 scope:local +lbl_801D5DE8 = .sdata2:0x801D5DE8; // type:object size:0x4 data:float +lbl_801D5DEC = .sdata2:0x801D5DEC; // type:object size:0x4 data:float +lbl_801D5DF0 = .sdata2:0x801D5DF0; // type:object size:0x4 data:float +lbl_801D5DF4 = .sdata2:0x801D5DF4; // type:object size:0x4 data:float +lbl_801D5DF8 = .sdata2:0x801D5DF8; // type:object size:0x4 data:float +lbl_801D5DFC = .sdata2:0x801D5DFC; // type:object size:0x4 data:float +lbl_801D5E00 = .sdata2:0x801D5E00; // type:object size:0x4 data:float +lbl_801D5E04 = .sdata2:0x801D5E04; // type:object size:0x4 data:float +lbl_801D5E08 = .sdata2:0x801D5E08; // type:object size:0x4 data:float +lbl_801D5E0C = .sdata2:0x801D5E0C; // type:object size:0x4 data:float +lbl_801D5E10 = .sdata2:0x801D5E10; // type:object size:0x4 data:float +lbl_801D5E14 = .sdata2:0x801D5E14; // type:object size:0x4 data:float +lbl_801D5E18 = .sdata2:0x801D5E18; // type:object size:0x4 data:float +lbl_801D5E1C = .sdata2:0x801D5E1C; // type:object size:0x4 data:float +lbl_801D5E20 = .sdata2:0x801D5E20; // type:object size:0x4 data:float +lbl_801D5E24 = .sdata2:0x801D5E24; // type:object size:0x4 data:float +lbl_801D5E28 = .sdata2:0x801D5E28; // type:object size:0x4 data:float +lbl_801D5E2C = .sdata2:0x801D5E2C; // type:object size:0x4 data:float +lbl_801D5E30 = .sdata2:0x801D5E30; // type:object size:0x4 data:float +lbl_801D5E34 = .sdata2:0x801D5E34; // type:object size:0x4 data:float +lbl_801D5E38 = .sdata2:0x801D5E38; // type:object size:0x4 data:float +lbl_801D5E40 = .sdata2:0x801D5E40; // type:object size:0x8 data:double +lbl_801D5E48 = .sdata2:0x801D5E48; // type:object size:0x8 data:double +lbl_801D5E50 = .sdata2:0x801D5E50; // type:object size:0x4 data:float +lbl_801D5E54 = .sdata2:0x801D5E54; // type:object size:0x4 data:float +lbl_801D5E58 = .sdata2:0x801D5E58; // type:object size:0x4 data:float +lbl_801D5E5C = .sdata2:0x801D5E5C; // type:object size:0x4 data:float +lbl_801D5E60 = .sdata2:0x801D5E60; // type:object size:0x4 data:float +lbl_801D5E64 = .sdata2:0x801D5E64; // type:object size:0x4 data:float +lbl_801D5E68 = .sdata2:0x801D5E68; // type:object size:0x4 data:float +lbl_801D5E6C = .sdata2:0x801D5E6C; // type:object size:0x4 data:float +lbl_801D5E70 = .sdata2:0x801D5E70; // type:object size:0x8 data:double +lbl_801D5E78 = .sdata2:0x801D5E78; // type:object size:0x4 data:float +lbl_801D5E80 = .sdata2:0x801D5E80; // type:object size:0x8 data:double +lbl_801D5E88 = .sdata2:0x801D5E88; // type:object size:0x4 data:float +lbl_801D5E8C = .sdata2:0x801D5E8C; // type:object size:0x4 data:float +lbl_801D5E90 = .sdata2:0x801D5E90; // type:object size:0x1 data:byte +lbl_801D5E91 = .sdata2:0x801D5E91; // type:object size:0x1 data:byte +lbl_801D5E92 = .sdata2:0x801D5E92; // type:object size:0x1 data:byte +lbl_801D5E93 = .sdata2:0x801D5E93; // type:object size:0x1 data:byte +lbl_801D5E94 = .sdata2:0x801D5E94; // type:object size:0x1 data:byte +lbl_801D5E98 = .sdata2:0x801D5E98; // type:object size:0x4 data:float +lbl_801D5E9C = .sdata2:0x801D5E9C; // type:object size:0x4 data:float +lbl_801D5EA0 = .sdata2:0x801D5EA0; // type:object size:0x4 data:float +lbl_801D5EA4 = .sdata2:0x801D5EA4; // type:object size:0x4 data:float +lbl_801D5EA8 = .sdata2:0x801D5EA8; // type:object size:0x4 data:float +lbl_801D5EAC = .sdata2:0x801D5EAC; // type:object size:0x4 data:float +lbl_801D5EB0 = .sdata2:0x801D5EB0; // type:object size:0x4 data:float +lbl_801D5EB4 = .sdata2:0x801D5EB4; // type:object size:0x4 data:float +lbl_801D5EB8 = .sdata2:0x801D5EB8; // type:object size:0x4 data:float +lbl_801D5EBC = .sdata2:0x801D5EBC; // type:object size:0x4 data:float +lbl_801D5EC0 = .sdata2:0x801D5EC0; // type:object size:0x4 data:float +lbl_801D5EC4 = .sdata2:0x801D5EC4; // type:object size:0x4 data:float +lbl_801D5EC8 = .sdata2:0x801D5EC8; // type:object size:0x4 data:float +lbl_801D5ECC = .sdata2:0x801D5ECC; // type:object size:0x4 data:float +lbl_801D5ED0 = .sdata2:0x801D5ED0; // type:object size:0x8 data:double +lbl_801D5ED8 = .sdata2:0x801D5ED8; // type:object size:0x8 data:double +lbl_801D5EE0 = .sdata2:0x801D5EE0; // type:object size:0x4 data:float +lbl_801D5EE8 = .sdata2:0x801D5EE8; // type:object size:0x8 data:double +lbl_801D5EF0 = .sdata2:0x801D5EF0; // type:object size:0x8 data:double +lbl_801D5EF8 = .sdata2:0x801D5EF8; // type:object size:0x8 data:double +lbl_801D5F00 = .sdata2:0x801D5F00; // type:object size:0x8 data:double +lbl_801D5F08 = .sdata2:0x801D5F08; // type:object size:0x4 data:float +lbl_801D5F10 = .sdata2:0x801D5F10; // type:object size:0x8 data:double +lbl_801D5F18 = .sdata2:0x801D5F18; // type:object size:0x4 data:float +lbl_801D5F1C = .sdata2:0x801D5F1C; // type:object size:0x4 data:float +lbl_801D5F20 = .sdata2:0x801D5F20; // type:object size:0x4 data:float +lbl_801D5F28 = .sdata2:0x801D5F28; // type:object size:0x8 data:double +lbl_801D5F30 = .sdata2:0x801D5F30; // type:object size:0x8 data:double +lbl_801D5F38 = .sdata2:0x801D5F38; // type:object size:0x4 data:float +lbl_801D5F40 = .sdata2:0x801D5F40; // type:object size:0x8 data:double +lbl_801D5F48 = .sdata2:0x801D5F48; // type:object size:0x4 data:float +lbl_801D5F4C = .sdata2:0x801D5F4C; // type:object size:0x4 data:float +lbl_801D5F50 = .sdata2:0x801D5F50; // type:object size:0x4 data:float +lbl_801D5F54 = .sdata2:0x801D5F54; // type:object size:0x4 data:float +lbl_801D5F58 = .sdata2:0x801D5F58; // type:object size:0x8 data:double +lbl_801D5F60 = .sdata2:0x801D5F60; // type:object size:0x8 data:double +lbl_801D5F68 = .sdata2:0x801D5F68; // type:object size:0x4 data:float +lbl_801D5F6C = .sdata2:0x801D5F6C; // type:object size:0x4 data:float +lbl_801D5F70 = .sdata2:0x801D5F70; // type:object size:0x4 data:float +lbl_801D5F78 = .sdata2:0x801D5F78; // type:object size:0x8 data:double +lbl_801D5F80 = .sdata2:0x801D5F80; // type:object size:0x4 data:float +lbl_801D5F84 = .sdata2:0x801D5F84; // type:object size:0x4 data:float +lbl_801D5F88 = .sdata2:0x801D5F88; // type:object size:0x4 data:float +lbl_801D5F8C = .sdata2:0x801D5F8C; // type:object size:0x4 data:float +lbl_801D5F90 = .sdata2:0x801D5F90; // type:object size:0x8 data:double +lbl_801D5F98 = .sdata2:0x801D5F98; // type:object size:0x4 data:float +lbl_801D5F9C = .sdata2:0x801D5F9C; // type:object size:0x4 data:float +lbl_801D5FA0 = .sdata2:0x801D5FA0; // type:object size:0x4 data:float +lbl_801D5FA4 = .sdata2:0x801D5FA4; // type:object size:0x4 data:float +lbl_801D5FA8 = .sdata2:0x801D5FA8; // type:object size:0x4 data:float +lbl_801D5FAC = .sdata2:0x801D5FAC; // type:object size:0x4 data:float +lbl_801D5FB0 = .sdata2:0x801D5FB0; // type:object size:0x4 data:float +lbl_801D5FB4 = .sdata2:0x801D5FB4; // type:object size:0x4 data:float +lbl_801D5FB8 = .sdata2:0x801D5FB8; // type:object size:0x4 data:float +lbl_801D5FBC = .sdata2:0x801D5FBC; // type:object size:0x4 data:float +lbl_801D5FC0 = .sdata2:0x801D5FC0; // type:object size:0x4 data:float +lbl_801D5FC4 = .sdata2:0x801D5FC4; // type:object size:0x1 data:byte +lbl_801D5FC5 = .sdata2:0x801D5FC5; // type:object size:0x1 data:byte +lbl_801D5FC8 = .sdata2:0x801D5FC8; // type:object size:0x4 data:float +lbl_801D5FD0 = .sdata2:0x801D5FD0; // type:object size:0x8 data:double +lbl_801D5FD8 = .sdata2:0x801D5FD8; // type:object size:0x8 data:double +lbl_801D5FE0 = .sdata2:0x801D5FE0; // type:object size:0x8 data:double +lbl_801D5FE8 = .sdata2:0x801D5FE8; // type:object size:0x8 data:double +lbl_801D5FF0 = .sdata2:0x801D5FF0; // type:object size:0x4 data:float +lbl_801D5FF4 = .sdata2:0x801D5FF4; // type:object size:0x4 data:float +lbl_801D5FF8 = .sdata2:0x801D5FF8; // type:object size:0x8 data:double +lbl_801D6000 = .sdata2:0x801D6000; // type:object size:0x4 data:float +lbl_801D6004 = .sdata2:0x801D6004; // type:object size:0x4 data:float +lbl_801D6008 = .sdata2:0x801D6008; // type:object size:0x8 data:double +lbl_801D6010 = .sdata2:0x801D6010; // type:object size:0x4 data:float +lbl_801D6014 = .sdata2:0x801D6014; // type:object size:0x2 data:2byte +lbl_801D6016 = .sdata2:0x801D6016; // type:object size:0x2 data:2byte +lbl_801D6018 = .sdata2:0x801D6018; // type:object size:0x2 data:2byte +lbl_801D601C = .sdata2:0x801D601C; // type:object size:0x4 data:float +lbl_801D6020 = .sdata2:0x801D6020; // type:object size:0x4 data:float +lbl_801D6024 = .sdata2:0x801D6024; // type:object size:0x4 data:float +lbl_801D6028 = .sdata2:0x801D6028; // type:object size:0x2 data:2byte +lbl_801D602A = .sdata2:0x801D602A; // type:object size:0x2 data:2byte +lbl_801D602C = .sdata2:0x801D602C; // type:object size:0x2 data:2byte +lbl_801D6030 = .sdata2:0x801D6030; // type:object size:0x4 data:float +lbl_801D6034 = .sdata2:0x801D6034; // type:object size:0x4 data:float +lbl_801D6038 = .sdata2:0x801D6038; // type:object size:0x4 data:float +lbl_801D603C = .sdata2:0x801D603C; // type:object size:0x4 data:float +lbl_801D6040 = .sdata2:0x801D6040; // type:object size:0x4 data:float +lbl_801D6044 = .sdata2:0x801D6044; // type:object size:0x4 data:float +lbl_801D6048 = .sdata2:0x801D6048; // type:object size:0x4 data:float +lbl_801D6050 = .sdata2:0x801D6050; // type:object size:0x8 data:double +lbl_801D6058 = .sdata2:0x801D6058; // type:object size:0x4 data:float +lbl_801D605C = .sdata2:0x801D605C; // type:object size:0x4 data:float +lbl_801D6060 = .sdata2:0x801D6060; // type:object size:0x4 data:float +lbl_801D6064 = .sdata2:0x801D6064; // type:object size:0x4 data:float +lbl_801D6068 = .sdata2:0x801D6068; // type:object size:0x4 data:float +lbl_801D606C = .sdata2:0x801D606C; // type:object size:0x4 data:float +lbl_801D6070 = .sdata2:0x801D6070; // type:object size:0x4 data:float +lbl_801D6078 = .sdata2:0x801D6078; // type:object size:0x8 data:double +lbl_801D6080 = .sdata2:0x801D6080; // type:object size:0x8 data:double +lbl_801D6088 = .sdata2:0x801D6088; // type:object size:0x8 data:double +lbl_801D6090 = .sdata2:0x801D6090; // type:object size:0x4 data:float +lbl_801D6094 = .sdata2:0x801D6094; // type:object size:0x4 data:float +lbl_801D6098 = .sdata2:0x801D6098; // type:object size:0x4 data:float +lbl_801D609C = .sdata2:0x801D609C; // type:object size:0x4 data:float +lbl_801D60A0 = .sdata2:0x801D60A0; // type:object size:0x4 data:float +lbl_801D60A4 = .sdata2:0x801D60A4; // type:object size:0x4 data:float +lbl_801D60A8 = .sdata2:0x801D60A8; // type:object size:0x4 data:float +lbl_801D60AC = .sdata2:0x801D60AC; // type:object size:0x4 data:float +lbl_801D60B0 = .sdata2:0x801D60B0; // type:object size:0x4 data:float +lbl_801D60B4 = .sdata2:0x801D60B4; // type:object size:0x4 data:float +lbl_801D60B8 = .sdata2:0x801D60B8; // type:object size:0x4 data:float +lbl_801D60BC = .sdata2:0x801D60BC; // type:object size:0x4 data:float +lbl_801D60C0 = .sdata2:0x801D60C0; // type:object size:0x4 data:float +lbl_801D60C4 = .sdata2:0x801D60C4; // type:object size:0x4 data:float +lbl_801D60C8 = .sdata2:0x801D60C8; // type:object size:0x4 data:float +lbl_801D60CC = .sdata2:0x801D60CC; // type:object size:0x4 data:float +lbl_801D60D0 = .sdata2:0x801D60D0; // type:object size:0x4 data:float +lbl_801D60D4 = .sdata2:0x801D60D4; // type:object size:0x4 data:float +lbl_801D60D8 = .sdata2:0x801D60D8; // type:object size:0x4 data:float +lbl_801D60DC = .sdata2:0x801D60DC; // type:object size:0x4 data:float +lbl_801D60E0 = .sdata2:0x801D60E0; // type:object size:0x8 data:double +lbl_801D60E8 = .sdata2:0x801D60E8; // type:object size:0x8 data:double +lbl_801D60F0 = .sdata2:0x801D60F0; // type:object size:0x4 data:float +lbl_801D60F8 = .sdata2:0x801D60F8; // type:object size:0x8 data:double +lbl_801D6100 = .sdata2:0x801D6100; // type:object size:0x8 data:double +lbl_801D6108 = .sdata2:0x801D6108; // type:object size:0x4 data:float +lbl_801D610C = .sdata2:0x801D610C; // type:object size:0x4 data:float +lbl_801D6110 = .sdata2:0x801D6110; // type:object size:0x4 data:float +lbl_801D6114 = .sdata2:0x801D6114; // type:object size:0x4 data:float +lbl_801D6118 = .sdata2:0x801D6118; // type:object size:0x4 data:float +lbl_801D611C = .sdata2:0x801D611C; // type:object size:0x4 data:float +lbl_801D6120 = .sdata2:0x801D6120; // type:object size:0x4 data:float +lbl_801D6124 = .sdata2:0x801D6124; // type:object size:0x4 data:float +lbl_801D6128 = .sdata2:0x801D6128; // type:object size:0x4 data:float +lbl_801D612C = .sdata2:0x801D612C; // type:object size:0x4 data:float +lbl_801D6130 = .sdata2:0x801D6130; // type:object size:0x4 data:float +lbl_801D6134 = .sdata2:0x801D6134; // type:object size:0x4 data:float +lbl_801D6138 = .sdata2:0x801D6138; // type:object size:0x4 data:float +lbl_801D613C = .sdata2:0x801D613C; // type:object size:0x4 data:float +lbl_801D6140 = .sdata2:0x801D6140; // type:object size:0x4 data:float +lbl_801D6144 = .sdata2:0x801D6144; // type:object size:0x4 data:float +lbl_801D6148 = .sdata2:0x801D6148; // type:object size:0x4 data:float +lbl_801D614C = .sdata2:0x801D614C; // type:object size:0x4 data:float +lbl_801D6150 = .sdata2:0x801D6150; // type:object size:0x4 data:float +lbl_801D6158 = .sdata2:0x801D6158; // type:object size:0x8 data:double +lbl_801D6160 = .sdata2:0x801D6160; // type:object size:0x8 data:double +lbl_801D6168 = .sdata2:0x801D6168; // type:object size:0x8 data:double +lbl_801D6170 = .sdata2:0x801D6170; // type:object size:0x8 data:double +lbl_801D6178 = .sdata2:0x801D6178; // type:object size:0x4 data:float +lbl_801D617C = .sdata2:0x801D617C; // type:object size:0x4 data:float +lbl_801D6180 = .sdata2:0x801D6180; // type:object size:0x4 data:float +lbl_801D6184 = .sdata2:0x801D6184; // type:object size:0x4 data:float +lbl_801D6188 = .sdata2:0x801D6188; // type:object size:0x4 data:float +lbl_801D618C = .sdata2:0x801D618C; // type:object size:0x4 data:float +lbl_801D6190 = .sdata2:0x801D6190; // type:object size:0x4 data:float +lbl_801D6194 = .sdata2:0x801D6194; // type:object size:0x4 data:float +lbl_801D6198 = .sdata2:0x801D6198; // type:object size:0x4 data:float +lbl_801D619C = .sdata2:0x801D619C; // type:object size:0x4 data:float +lbl_801D61A0 = .sdata2:0x801D61A0; // type:object size:0x4 data:float +lbl_801D61A4 = .sdata2:0x801D61A4; // type:object size:0x4 data:float +lbl_801D61A8 = .sdata2:0x801D61A8; // type:object size:0x4 data:float +lbl_801D61AC = .sdata2:0x801D61AC; // type:object size:0x4 data:float +lbl_801D61B0 = .sdata2:0x801D61B0; // type:object size:0x4 data:float +lbl_801D61B4 = .sdata2:0x801D61B4; // type:object size:0x4 data:float +lbl_801D61B8 = .sdata2:0x801D61B8; // type:object size:0x4 data:float +lbl_801D61BC = .sdata2:0x801D61BC; // type:object size:0x4 data:float +lbl_801D61C0 = .sdata2:0x801D61C0; // type:object size:0x4 data:float +lbl_801D61C4 = .sdata2:0x801D61C4; // type:object size:0x4 data:float +lbl_801D61C8 = .sdata2:0x801D61C8; // type:object size:0x4 data:float +lbl_801D61CC = .sdata2:0x801D61CC; // type:object size:0x4 data:float +lbl_801D61D0 = .sdata2:0x801D61D0; // type:object size:0x8 data:double +lbl_801D61D8 = .sdata2:0x801D61D8; // type:object size:0x8 data:double +lbl_801D61E0 = .sdata2:0x801D61E0; // type:object size:0x4 data:float +lbl_801D61E4 = .sdata2:0x801D61E4; // type:object size:0x4 data:float +lbl_801D61E8 = .sdata2:0x801D61E8; // type:object size:0x8 data:double +lbl_801D61F0 = .sdata2:0x801D61F0; // type:object size:0x4 data:float +lbl_801D61F4 = .sdata2:0x801D61F4; // type:object size:0x4 data:float +lbl_801D61F8 = .sdata2:0x801D61F8; // type:object size:0x4 data:float +lbl_801D61FC = .sdata2:0x801D61FC; // type:object size:0x4 data:float +lbl_801D6200 = .sdata2:0x801D6200; // type:object size:0x4 data:float +lbl_801D6204 = .sdata2:0x801D6204; // type:object size:0x4 data:float +lbl_801D6208 = .sdata2:0x801D6208; // type:object size:0x4 data:float +lbl_801D620C = .sdata2:0x801D620C; // type:object size:0x4 data:float +lbl_801D6210 = .sdata2:0x801D6210; // type:object size:0x4 data:float +lbl_801D6214 = .sdata2:0x801D6214; // type:object size:0x4 data:float +lbl_801D6218 = .sdata2:0x801D6218; // type:object size:0x4 data:float +lbl_801D621C = .sdata2:0x801D621C; // type:object size:0x4 data:float +lbl_801D6220 = .sdata2:0x801D6220; // type:object size:0x4 data:float +lbl_801D6224 = .sdata2:0x801D6224; // type:object size:0x4 data:float +lbl_801D6228 = .sdata2:0x801D6228; // type:object size:0x4 data:float +lbl_801D622C = .sdata2:0x801D622C; // type:object size:0x4 data:float +lbl_801D6230 = .sdata2:0x801D6230; // type:object size:0x4 data:float +lbl_801D6234 = .sdata2:0x801D6234; // type:object size:0x4 data:float +lbl_801D6238 = .sdata2:0x801D6238; // type:object size:0x4 data:float +lbl_801D623C = .sdata2:0x801D623C; // type:object size:0x4 data:float +lbl_801D6240 = .sdata2:0x801D6240; // type:object size:0x4 data:float +lbl_801D6248 = .sdata2:0x801D6248; // type:object size:0x8 data:double +lbl_801D6250 = .sdata2:0x801D6250; // type:object size:0x8 data:double +lbl_801D6258 = .sdata2:0x801D6258; // type:object size:0x8 data:double +lbl_801D6260 = .sdata2:0x801D6260; // type:object size:0x8 data:double +lbl_801D6268 = .sdata2:0x801D6268; // type:object size:0x4 data:float +lbl_801D626C = .sdata2:0x801D626C; // type:object size:0x4 data:float +lbl_801D6270 = .sdata2:0x801D6270; // type:object size:0x4 data:float +lbl_801D6274 = .sdata2:0x801D6274; // type:object size:0x4 data:float +lbl_801D6278 = .sdata2:0x801D6278; // type:object size:0x4 data:float +lbl_801D627C = .sdata2:0x801D627C; // type:object size:0x4 data:float +lbl_801D6280 = .sdata2:0x801D6280; // type:object size:0x4 data:float +lbl_801D6284 = .sdata2:0x801D6284; // type:object size:0x4 data:float +lbl_801D6288 = .sdata2:0x801D6288; // type:object size:0x4 data:float +lbl_801D628C = .sdata2:0x801D628C; // type:object size:0x1 data:byte +lbl_801D628D = .sdata2:0x801D628D; // type:object size:0x1 data:byte +lbl_801D628E = .sdata2:0x801D628E; // type:object size:0x1 data:byte +lbl_801D628F = .sdata2:0x801D628F; // type:object size:0x1 data:byte +lbl_801D6290 = .sdata2:0x801D6290; // type:object size:0x8 data:float +lbl_801D6298 = .sdata2:0x801D6298; // type:object size:0x4 data:float +lbl_801D629C = .sdata2:0x801D629C; // type:object size:0x4 data:float +lbl_801D62A0 = .sdata2:0x801D62A0; // type:object size:0x4 data:float +lbl_801D62A4 = .sdata2:0x801D62A4; // type:object size:0x4 data:float +lbl_801D62A8 = .sdata2:0x801D62A8; // type:object size:0x4 data:float +lbl_801D62AC = .sdata2:0x801D62AC; // type:object size:0x4 data:float +lbl_801D62B0 = .sdata2:0x801D62B0; // type:object size:0x4 data:float +lbl_801D62B4 = .sdata2:0x801D62B4; // type:object size:0x4 data:float +lbl_801D62B8 = .sdata2:0x801D62B8; // type:object size:0x4 data:float +lbl_801D62BC = .sdata2:0x801D62BC; // type:object size:0x4 data:float +lbl_801D62C0 = .sdata2:0x801D62C0; // type:object size:0x4 data:float +lbl_801D62C4 = .sdata2:0x801D62C4; // type:object size:0x4 data:float +lbl_801D62C8 = .sdata2:0x801D62C8; // type:object size:0x4 data:float +lbl_801D62CC = .sdata2:0x801D62CC; // type:object size:0x4 data:float +lbl_801D62D0 = .sdata2:0x801D62D0; // type:object size:0x4 data:float +lbl_801D62D4 = .sdata2:0x801D62D4; // type:object size:0x4 data:float +lbl_801D62D8 = .sdata2:0x801D62D8; // type:object size:0x4 data:float +lbl_801D62DC = .sdata2:0x801D62DC; // type:object size:0x4 data:float +lbl_801D62E0 = .sdata2:0x801D62E0; // type:object size:0x4 data:float +lbl_801D62E4 = .sdata2:0x801D62E4; // type:object size:0x4 data:float +lbl_801D62E8 = .sdata2:0x801D62E8; // type:object size:0x4 data:float +lbl_801D62EC = .sdata2:0x801D62EC; // type:object size:0x4 data:float +lbl_801D62F0 = .sdata2:0x801D62F0; // type:object size:0x4 data:float +lbl_801D62F4 = .sdata2:0x801D62F4; // type:object size:0x4 data:float +lbl_801D62F8 = .sdata2:0x801D62F8; // type:object size:0x4 data:float +lbl_801D62FC = .sdata2:0x801D62FC; // type:object size:0x4 data:float +lbl_801D6300 = .sdata2:0x801D6300; // type:object size:0x4 data:float +lbl_801D6304 = .sdata2:0x801D6304; // type:object size:0x4 data:float +lbl_801D6308 = .sdata2:0x801D6308; // type:object size:0x4 data:float +lbl_801D630C = .sdata2:0x801D630C; // type:object size:0x4 data:float +lbl_801D6310 = .sdata2:0x801D6310; // type:object size:0x4 data:float +lbl_801D6314 = .sdata2:0x801D6314; // type:object size:0x4 data:float +lbl_801D6318 = .sdata2:0x801D6318; // type:object size:0x4 data:float +lbl_801D631C = .sdata2:0x801D631C; // type:object size:0x4 data:float +lbl_801D6320 = .sdata2:0x801D6320; // type:object size:0x4 data:float +lbl_801D6324 = .sdata2:0x801D6324; // type:object size:0x4 data:float +lbl_801D6328 = .sdata2:0x801D6328; // type:object size:0x4 data:float +lbl_801D632C = .sdata2:0x801D632C; // type:object size:0x4 data:float +lbl_801D6330 = .sdata2:0x801D6330; // type:object size:0x4 data:float +lbl_801D6334 = .sdata2:0x801D6334; // type:object size:0x4 data:float +lbl_801D6338 = .sdata2:0x801D6338; // type:object size:0x4 data:float +lbl_801D633C = .sdata2:0x801D633C; // type:object size:0x4 data:float +lbl_801D6340 = .sdata2:0x801D6340; // type:object size:0x8 data:double +lbl_801D6348 = .sdata2:0x801D6348; // type:object size:0x8 data:float +lbl_801D6350 = .sdata2:0x801D6350; // type:object size:0x4 scope:local data:float +lbl_801D6354 = .sdata2:0x801D6354; // type:object size:0x4 scope:local data:float +lbl_801D6358 = .sdata2:0x801D6358; // type:object size:0x4 scope:local data:float +lbl_801D635C = .sdata2:0x801D635C; // type:object size:0x4 scope:local data:float +lbl_801D6360 = .sdata2:0x801D6360; // type:object size:0x8 scope:local data:float +lbl_801D6368 = .sdata2:0x801D6368; // type:object size:0x4 scope:local data:float +lbl_801D636C = .sdata2:0x801D636C; // type:object size:0x4 scope:local data:float +lbl_801D6370 = .sdata2:0x801D6370; // type:object size:0x4 scope:local data:float +lbl_801D6374 = .sdata2:0x801D6374; // type:object size:0x4 scope:local data:float +lbl_801D6378 = .sdata2:0x801D6378; // type:object size:0x4 scope:local data:float +lbl_801D637C = .sdata2:0x801D637C; // type:object size:0x4 scope:local data:float +lbl_801D6380 = .sdata2:0x801D6380; // type:object size:0x4 scope:local data:float +lbl_801D6384 = .sdata2:0x801D6384; // type:object size:0x4 scope:local data:float +lbl_801D6388 = .sdata2:0x801D6388; // type:object size:0x4 scope:local data:float +lbl_801D638C = .sdata2:0x801D638C; // type:object size:0x4 scope:local data:float +lbl_801D6390 = .sdata2:0x801D6390; // type:object size:0x4 data:float +lbl_801D6394 = .sdata2:0x801D6394; // type:object size:0x4 data:float +lbl_801D6398 = .sdata2:0x801D6398; // type:object size:0x8 data:double +lbl_801D63A0 = .sdata2:0x801D63A0; // type:object size:0x8 data:double +lbl_801D63A8 = .sdata2:0x801D63A8; // type:object size:0x4 data:float +lbl_801D63AC = .sdata2:0x801D63AC; // type:object size:0x4 data:float +lbl_801D63B0 = .sdata2:0x801D63B0; // type:object size:0x4 data:float +lbl_801D63B4 = .sdata2:0x801D63B4; // type:object size:0x4 data:float +lbl_801D63B8 = .sdata2:0x801D63B8; // type:object size:0x4 scope:local data:float +lbl_801D63BC = .sdata2:0x801D63BC; // type:object size:0x4 scope:local data:float +lbl_801D63C0 = .sdata2:0x801D63C0; // type:object size:0x8 scope:local data:double +lbl_801D63C8 = .sdata2:0x801D63C8; // type:object size:0x8 scope:local data:double +lbl_801D63D0 = .sdata2:0x801D63D0; // type:object size:0x8 scope:local data:float +lbl_801D63D8 = .sdata2:0x801D63D8; // type:object size:0x4 scope:local data:float +lbl_801D63E0 = .sdata2:0x801D63E0; // type:object size:0x8 scope:local data:double +lbl_801D63E8 = .sdata2:0x801D63E8; // type:object size:0x4 data:4byte +lbl_801D63EC = .sdata2:0x801D63EC; // type:object size:0x4 data:4byte +lbl_801D63F0 = .sdata2:0x801D63F0; // type:object size:0x4 data:4byte +lbl_801D63F4 = .sdata2:0x801D63F4; // type:object size:0x4 data:float +lbl_801D63F8 = .sdata2:0x801D63F8; // type:object size:0x4 data:float +lbl_801D63FC = .sdata2:0x801D63FC; // type:object size:0x4 data:float +lbl_801D6400 = .sdata2:0x801D6400; // type:object size:0x8 data:double +lbl_801D6408 = .sdata2:0x801D6408; // type:object size:0x8 data:float +lbl_801D6410 = .sdata2:0x801D6410; // type:object size:0x4 data:float +lbl_801D6414 = .sdata2:0x801D6414; // type:object size:0x4 data:float +lbl_801D6418 = .sdata2:0x801D6418; // type:object size:0x4 data:float +lbl_801D641C = .sdata2:0x801D641C; // type:object size:0x4 data:float +lbl_801D6420 = .sdata2:0x801D6420; // type:object size:0x4 data:float +lbl_801D6424 = .sdata2:0x801D6424; // type:object size:0x4 data:float +lbl_801D6428 = .sdata2:0x801D6428; // type:object size:0x4 data:float +lbl_801D642C = .sdata2:0x801D642C; // type:object size:0x4 data:float +lbl_801D6430 = .sdata2:0x801D6430; // type:object size:0x4 data:float +lbl_801D6434 = .sdata2:0x801D6434; // type:object size:0x4 data:float +lbl_801D6438 = .sdata2:0x801D6438; // type:object size:0x4 data:float +lbl_801D643C = .sdata2:0x801D643C; // type:object size:0x4 data:float +lbl_801D6440 = .sdata2:0x801D6440; // type:object size:0x4 data:float +lbl_801D6448 = .sdata2:0x801D6448; // type:object size:0x8 data:double +lbl_801D6450 = .sdata2:0x801D6450; // type:object size:0x8 data:double +lbl_801D6458 = .sdata2:0x801D6458; // type:object size:0x8 data:float +lbl_801D6460 = .sdata2:0x801D6460; // type:object size:0x4 data:float +lbl_801D6468 = .sdata2:0x801D6468; // type:object size:0x8 data:double +lbl_801D6470 = .sdata2:0x801D6470; // type:object size:0x4 data:float +lbl_801D6474 = .sdata2:0x801D6474; // type:object size:0x4 data:float +lbl_801D6478 = .sdata2:0x801D6478; // type:object size:0x4 data:float +lbl_801D647C = .sdata2:0x801D647C; // type:object size:0x4 data:float +lbl_801D6480 = .sdata2:0x801D6480; // type:object size:0x4 data:float +lbl_801D6484 = .sdata2:0x801D6484; // type:object size:0x4 data:float +lbl_801D6488 = .sdata2:0x801D6488; // type:object size:0x4 data:float +lbl_801D648C = .sdata2:0x801D648C; // type:object size:0x4 data:float +lbl_801D6490 = .sdata2:0x801D6490; // type:object size:0x4 data:float +lbl_801D6498 = .sdata2:0x801D6498; // type:object size:0x8 data:double +lbl_801D64A0 = .sdata2:0x801D64A0; // type:object size:0x4 data:float +lbl_801D64A4 = .sdata2:0x801D64A4; // type:object size:0x4 data:float +lbl_801D64A8 = .sdata2:0x801D64A8; // type:object size:0x8 data:double +lbl_801D64B0 = .sdata2:0x801D64B0; // type:object size:0x4 data:float +lbl_801D64B8 = .sdata2:0x801D64B8; // type:object size:0x8 data:double +lbl_801D64C0 = .sdata2:0x801D64C0; // type:object size:0x4 data:float +lbl_801D64C8 = .sdata2:0x801D64C8; // type:object size:0x8 data:double +lbl_801D64D0 = .sdata2:0x801D64D0; // type:object size:0x4 data:float +lbl_801D64D4 = .sdata2:0x801D64D4; // type:object size:0x4 data:float +lbl_801D64D8 = .sdata2:0x801D64D8; // type:object size:0x4 data:float +lbl_801D64E0 = .sdata2:0x801D64E0; // type:object size:0x8 data:double +lbl_801D64E8 = .sdata2:0x801D64E8; // type:object size:0x4 data:float +lbl_801D64EC = .sdata2:0x801D64EC; // type:object size:0x4 data:float +lbl_801D64F0 = .sdata2:0x801D64F0; // type:object size:0x8 data:double +lbl_801D64F8 = .sdata2:0x801D64F8; // type:object size:0x4 data:float +lbl_801D64FC = .sdata2:0x801D64FC; // type:object size:0x4 data:float +lbl_801D6500 = .sdata2:0x801D6500; // type:object size:0x4 data:float +lbl_801D6504 = .sdata2:0x801D6504; // type:object size:0x4 data:float +lbl_801D6508 = .sdata2:0x801D6508; // type:object size:0x4 data:float +lbl_801D6510 = .sdata2:0x801D6510; // type:object size:0x8 data:double +lbl_801D6518 = .sdata2:0x801D6518; // type:object size:0x4 data:4byte +lbl_801D6520 = .sdata2:0x801D6520; // type:object size:0x8 data:double +lbl_801D6528 = .sdata2:0x801D6528; // type:object size:0x8 data:double +lbl_801D6530 = .sdata2:0x801D6530; // type:object size:0x8 data:double +lbl_801D6538 = .sdata2:0x801D6538; // type:object size:0x8 data:double +lbl_801D6540 = .sdata2:0x801D6540; // type:object size:0x8 data:double +lbl_801D6548 = .sdata2:0x801D6548; // type:object size:0x8 data:double +lbl_801D6550 = .sdata2:0x801D6550; // type:object size:0x8 data:double +lbl_801D6558 = .sdata2:0x801D6558; // type:object size:0x8 data:double +lbl_801D6560 = .sdata2:0x801D6560; // type:object size:0x8 data:double +lbl_801D6568 = .sdata2:0x801D6568; // type:object size:0x8 data:double +lbl_801D6570 = .sdata2:0x801D6570; // type:object size:0x8 data:double +lbl_801D6578 = .sdata2:0x801D6578; // type:object size:0x8 data:double +lbl_801D6580 = .sdata2:0x801D6580; // type:object size:0x8 data:double +lbl_801D6588 = .sdata2:0x801D6588; // type:object size:0x8 data:double +lbl_801D6590 = .sdata2:0x801D6590; // type:object size:0x8 data:double +lbl_801D6598 = .sdata2:0x801D6598; // type:object size:0x8 data:double +lbl_801D65A0 = .sdata2:0x801D65A0; // type:object size:0x8 data:double +lbl_801D65A8 = .sdata2:0x801D65A8; // type:object size:0x8 data:double +lbl_801D65B0 = .sdata2:0x801D65B0; // type:object size:0x8 data:double +lbl_801D65B8 = .sdata2:0x801D65B8; // type:object size:0x8 data:double +lbl_801D65C0 = .sdata2:0x801D65C0; // type:object size:0x8 data:double +lbl_801D65C8 = .sdata2:0x801D65C8; // type:object size:0x8 data:double +lbl_801D65D0 = .sdata2:0x801D65D0; // type:object size:0x8 data:double +lbl_801D65D8 = .sdata2:0x801D65D8; // type:object size:0x8 data:double +lbl_801D65E0 = .sdata2:0x801D65E0; // type:object size:0x8 data:double +lbl_801D65E8 = .sdata2:0x801D65E8; // type:object size:0x8 data:double +lbl_801D65F0 = .sdata2:0x801D65F0; // type:object size:0x8 data:double +lbl_801D65F8 = .sdata2:0x801D65F8; // type:object size:0x8 data:double +lbl_801D6600 = .sdata2:0x801D6600; // type:object size:0x8 data:double +lbl_801D6608 = .sdata2:0x801D6608; // type:object size:0x8 data:double +lbl_801D6610 = .sdata2:0x801D6610; // type:object size:0x8 data:double +lbl_801D6618 = .sdata2:0x801D6618; // type:object size:0x8 data:double +lbl_801D6620 = .sdata2:0x801D6620; // type:object size:0x8 data:double +lbl_801D6628 = .sdata2:0x801D6628; // type:object size:0x8 data:double +lbl_801D6630 = .sdata2:0x801D6630; // type:object size:0x8 data:double +lbl_801D6638 = .sdata2:0x801D6638; // type:object size:0x8 data:double +lbl_801D6640 = .sdata2:0x801D6640; // type:object size:0x8 data:double +lbl_801D6648 = .sdata2:0x801D6648; // type:object size:0x8 data:double +lbl_801D6650 = .sdata2:0x801D6650; // type:object size:0x8 data:double +lbl_801D6658 = .sdata2:0x801D6658; // type:object size:0x8 data:double +lbl_801D6660 = .sdata2:0x801D6660; // type:object size:0x8 data:double +lbl_801D6668 = .sdata2:0x801D6668; // type:object size:0x8 data:double +lbl_801D6670 = .sdata2:0x801D6670; // type:object size:0x8 data:double +lbl_801D6678 = .sdata2:0x801D6678; // type:object size:0x8 data:double +lbl_801D6680 = .sdata2:0x801D6680; // type:object size:0x8 data:double +lbl_801D6688 = .sdata2:0x801D6688; // type:object size:0x8 data:double +lbl_801D6690 = .sdata2:0x801D6690; // type:object size:0x8 data:double +lbl_801D6698 = .sdata2:0x801D6698; // type:object size:0x8 data:double +lbl_801D66A0 = .sdata2:0x801D66A0; // type:object size:0x8 data:double +lbl_801D66A8 = .sdata2:0x801D66A8; // type:object size:0x8 data:double +lbl_801D66B0 = .sdata2:0x801D66B0; // type:object size:0x8 data:double +lbl_801D66B8 = .sdata2:0x801D66B8; // type:object size:0x8 data:double +lbl_801D66C0 = .sdata2:0x801D66C0; // type:object size:0x8 data:double +lbl_801D66C8 = .sdata2:0x801D66C8; // type:object size:0x8 data:double +lbl_801D66D0 = .sdata2:0x801D66D0; // type:object size:0x8 data:double +lbl_801D66D8 = .sdata2:0x801D66D8; // type:object size:0x8 data:double +lbl_801D66E0 = .sdata2:0x801D66E0; // type:object size:0x8 data:double +lbl_801D66E8 = .sdata2:0x801D66E8; // type:object size:0x8 data:double +lbl_801D66F0 = .sdata2:0x801D66F0; // type:object size:0x8 data:double +lbl_801D66F8 = .sdata2:0x801D66F8; // type:object size:0x8 data:double +lbl_801D6700 = .sdata2:0x801D6700; // type:object size:0x8 data:double +lbl_801D6708 = .sdata2:0x801D6708; // type:object size:0x8 data:double +lbl_801D6710 = .sdata2:0x801D6710; // type:object size:0x8 data:double +lbl_801D6718 = .sdata2:0x801D6718; // type:object size:0x8 data:double +lbl_801D6720 = .sdata2:0x801D6720; // type:object size:0x8 data:double +lbl_801D6728 = .sdata2:0x801D6728; // type:object size:0x8 data:double +lbl_801D6730 = .sdata2:0x801D6730; // type:object size:0x8 data:double +lbl_801D6738 = .sdata2:0x801D6738; // type:object size:0x8 data:double +lbl_801D6740 = .sdata2:0x801D6740; // type:object size:0x8 data:double +lbl_801D6748 = .sdata2:0x801D6748; // type:object size:0x8 data:double +lbl_801D6750 = .sdata2:0x801D6750; // type:object size:0x8 data:double +lbl_801D6758 = .sdata2:0x801D6758; // type:object size:0x8 data:double +lbl_801D6760 = .sdata2:0x801D6760; // type:object size:0x8 data:double +lbl_801D6768 = .sdata2:0x801D6768; // type:object size:0x8 data:double +lbl_801D6770 = .sdata2:0x801D6770; // type:object size:0x8 data:double +lbl_801D6778 = .sdata2:0x801D6778; // type:object size:0x8 data:double +lbl_801D6780 = .sdata2:0x801D6780; // type:object size:0x8 data:double +lbl_801D6788 = .sdata2:0x801D6788; // type:object size:0x8 data:double +lbl_801D6790 = .sdata2:0x801D6790; // type:object size:0x8 data:double +lbl_801D6798 = .sdata2:0x801D6798; // type:object size:0x8 data:double +lbl_801D67A0 = .sdata2:0x801D67A0; // type:object size:0x8 data:double +lbl_801D67A8 = .sdata2:0x801D67A8; // type:object size:0x8 data:double +lbl_801D67B0 = .sdata2:0x801D67B0; // type:object size:0x8 data:double +lbl_801D67B8 = .sdata2:0x801D67B8; // type:object size:0x8 data:double +lbl_801D67C0 = .sdata2:0x801D67C0; // type:object size:0x8 data:double +lbl_801D67C8 = .sdata2:0x801D67C8; // type:object size:0x8 data:double +lbl_801D67D0 = .sdata2:0x801D67D0; // type:object size:0x8 data:double +lbl_801D67D8 = .sdata2:0x801D67D8; // type:object size:0x8 data:double +lbl_801D67E0 = .sdata2:0x801D67E0; // type:object size:0x8 data:double +lbl_801D67E8 = .sdata2:0x801D67E8; // type:object size:0x8 data:double +lbl_801D67F0 = .sdata2:0x801D67F0; // type:object size:0x8 data:double +lbl_801D67F8 = .sdata2:0x801D67F8; // type:object size:0x8 data:double +lbl_801D6800 = .sdata2:0x801D6800; // type:object size:0x8 data:double +lbl_801D6808 = .sdata2:0x801D6808; // type:object size:0x8 data:double +lbl_801D6810 = .sdata2:0x801D6810; // type:object size:0x8 data:double +lbl_801D6818 = .sdata2:0x801D6818; // type:object size:0x8 data:double +lbl_801D6820 = .sdata2:0x801D6820; // type:object size:0x8 data:double +lbl_801D6828 = .sdata2:0x801D6828; // type:object size:0x8 data:double +lbl_801D6830 = .sdata2:0x801D6830; // type:object size:0x8 data:double +lbl_801D6838 = .sdata2:0x801D6838; // type:object size:0x8 data:double +lbl_801D6840 = .sdata2:0x801D6840; // type:object size:0x8 data:double +lbl_801D6848 = .sdata2:0x801D6848; // type:object size:0x8 data:double +lbl_801D6850 = .sdata2:0x801D6850; // type:object size:0x8 data:double +lbl_801D6858 = .sdata2:0x801D6858; // type:object size:0x8 data:double +lbl_801D6860 = .sdata2:0x801D6860; // type:object size:0x8 data:double +lbl_801D6868 = .sdata2:0x801D6868; // type:object size:0x8 data:double +lbl_801D6870 = .sdata2:0x801D6870; // type:object size:0x8 data:double +lbl_801D6878 = .sdata2:0x801D6878; // type:object size:0x8 data:double +lbl_801D6880 = .sdata2:0x801D6880; // type:object size:0x8 data:double +lbl_801D6888 = .sdata2:0x801D6888; // type:object size:0x8 data:double +lbl_801D6890 = .sdata2:0x801D6890; // type:object size:0x8 data:double +lbl_801D6898 = .sdata2:0x801D6898; // type:object size:0x8 data:double +lbl_801D68A0 = .sdata2:0x801D68A0; // type:object size:0x8 data:double +lbl_801D68A8 = .sdata2:0x801D68A8; // type:object size:0x8 data:double +lbl_801D68B0 = .sdata2:0x801D68B0; // type:object size:0x8 data:double +lbl_801D68B8 = .sdata2:0x801D68B8; // type:object size:0x8 data:double +lbl_801D68C0 = .sdata2:0x801D68C0; // type:object size:0x8 data:double +lbl_801D68C8 = .sdata2:0x801D68C8; // type:object size:0x8 data:double +lbl_801D68D0 = .sdata2:0x801D68D0; // type:object size:0x8 data:double +lbl_801D68D8 = .sdata2:0x801D68D8; // type:object size:0x8 data:double +lbl_801D68E0 = .sdata2:0x801D68E0; // type:object size:0x8 data:double +lbl_801D68E8 = .sdata2:0x801D68E8; // type:object size:0x8 data:double +lbl_801D68F0 = .sdata2:0x801D68F0; // type:object size:0x8 data:double +lbl_801D68F8 = .sdata2:0x801D68F8; // type:object size:0x8 data:double +lbl_801D6900 = .sdata2:0x801D6900; // type:object size:0x8 data:double +lbl_801D6908 = .sdata2:0x801D6908; // type:object size:0x8 data:double +lbl_801D6910 = .sdata2:0x801D6910; // type:object size:0x8 data:double +lbl_801D6918 = .sdata2:0x801D6918; // type:object size:0x8 data:double +lbl_801D6920 = .sdata2:0x801D6920; // type:object size:0x8 data:double +lbl_801D6928 = .sdata2:0x801D6928; // type:object size:0x8 data:double +lbl_801D6930 = .sdata2:0x801D6930; // type:object size:0x8 data:double +lbl_801D6938 = .sdata2:0x801D6938; // type:object size:0x8 data:double +lbl_801D6940 = .sdata2:0x801D6940; // type:object size:0x8 data:double +lbl_801D6948 = .sdata2:0x801D6948; // type:object size:0x8 data:double +lbl_801D6950 = .sdata2:0x801D6950; // type:object size:0x8 data:double +lbl_801D6958 = .sdata2:0x801D6958; // type:object size:0x8 data:double +lbl_801D6960 = .sdata2:0x801D6960; // type:object size:0x8 data:double +lbl_801D6968 = .sdata2:0x801D6968; // type:object size:0x8 data:double +lbl_801D6970 = .sdata2:0x801D6970; // type:object size:0x8 data:double +lbl_801D6978 = .sdata2:0x801D6978; // type:object size:0x8 data:double +lbl_801D6980 = .sdata2:0x801D6980; // type:object size:0x8 data:double +lbl_801D6988 = .sdata2:0x801D6988; // type:object size:0x4 data:float +lbl_801D698C = .sdata2:0x801D698C; // type:object size:0x4 data:float +lbl_801D6990 = .sdata2:0x801D6990; // type:object size:0x4 data:float +lbl_801D6998 = .sdata2:0x801D6998; // type:object size:0x8 data:double +lbl_801D69A0 = .sdata2:0x801D69A0; // type:object size:0x8 data:double +lbl_801D69A8 = .sdata2:0x801D69A8; // type:object size:0x4 data:float +lbl_801D69AC = .sdata2:0x801D69AC; // type:object size:0x4 data:float +lbl_801D69B0 = .sdata2:0x801D69B0; // type:object size:0x4 data:float +lbl_801D69B4 = .sdata2:0x801D69B4; // type:object size:0x4 data:float +lbl_801D69B8 = .sdata2:0x801D69B8; // type:object size:0x4 data:float +lbl_801D69BC = .sdata2:0x801D69BC; // type:object size:0x4 data:float +lbl_801D69C0 = .sdata2:0x801D69C0; // type:object size:0x4 data:float +lbl_801D69C4 = .sdata2:0x801D69C4; // type:object size:0x4 data:float +lbl_801D69C8 = .sdata2:0x801D69C8; // type:object size:0x4 data:float +lbl_801D69D0 = .sdata2:0x801D69D0; // type:object size:0x8 data:double +lbl_801D69D8 = .sdata2:0x801D69D8; // type:object size:0x8 data:double +lbl_801D69E0 = .sdata2:0x801D69E0; // type:object size:0x4 data:float +lbl_801D69E4 = .sdata2:0x801D69E4; // type:object size:0x4 data:float +lbl_801D69E8 = .sdata2:0x801D69E8; // type:object size:0x4 data:float +lbl_801D69F0 = .sdata2:0x801D69F0; // type:object size:0x8 data:double +lbl_801D69F8 = .sdata2:0x801D69F8; // type:object size:0x8 data:float +lbl_801D6A00 = .sdata2:0x801D6A00; // type:object size:0x4 data:float +lbl_801D6A04 = .sdata2:0x801D6A04; // type:object size:0x4 data:float +lbl_801D6A08 = .sdata2:0x801D6A08; // type:object size:0x4 data:float +lbl_801D6A10 = .sdata2:0x801D6A10; // type:object size:0x8 data:double +lbl_801D6A18 = .sdata2:0x801D6A18; // type:object size:0x8 data:double +lbl_801D6A20 = .sdata2:0x801D6A20; // type:object size:0x4 data:float +lbl_801D6A24 = .sdata2:0x801D6A24; // type:object size:0x4 data:float +lbl_801D6A28 = .sdata2:0x801D6A28; // type:object size:0x4 data:float +lbl_801D6A30 = .sdata2:0x801D6A30; // type:object size:0x8 data:double +lbl_801D6A38 = .sdata2:0x801D6A38; // type:object size:0x4 data:float +lbl_801D6A40 = .sdata2:0x801D6A40; // type:object size:0x8 data:double +lbl_801D6A48 = .sdata2:0x801D6A48; // type:object size:0x4 data:float +lbl_801D6A4C = .sdata2:0x801D6A4C; // type:object size:0x4 data:float +lbl_801D6A50 = .sdata2:0x801D6A50; // type:object size:0x8 data:double +lbl_801D6A58 = .sdata2:0x801D6A58; // type:object size:0x4 data:float +lbl_801D6A60 = .sdata2:0x801D6A60; // type:object size:0x8 data:double +lbl_801D6A68 = .sdata2:0x801D6A68; // type:object size:0x4 data:float +lbl_801D6A6C = .sdata2:0x801D6A6C; // type:object size:0x4 data:float +lbl_801D6A70 = .sdata2:0x801D6A70; // type:object size:0x4 data:float +lbl_801D6A78 = .sdata2:0x801D6A78; // type:object size:0x8 data:double +lbl_801D6A80 = .sdata2:0x801D6A80; // type:object size:0x4 data:float +lbl_801D6A88 = .sdata2:0x801D6A88; // type:object size:0x8 data:double +lbl_801D6A90 = .sdata2:0x801D6A90; // type:object size:0x4 data:float +lbl_801D6A94 = .sdata2:0x801D6A94; // type:object size:0x4 data:float +lbl_801D6A98 = .sdata2:0x801D6A98; // type:object size:0x8 data:float +lbl_801D6AA0 = .sdata2:0x801D6AA0; // type:object size:0x4 data:float +lbl_801D6AA8 = .sdata2:0x801D6AA8; // type:object size:0x8 data:double +lbl_801D6AB0 = .sdata2:0x801D6AB0; // type:object size:0x4 data:float +lbl_801D6AB4 = .sdata2:0x801D6AB4; // type:object size:0x4 data:float +lbl_801D6AB8 = .sdata2:0x801D6AB8; // type:object size:0x8 data:double +lbl_801D6AC0 = .sdata2:0x801D6AC0; // type:object size:0x4 data:float +lbl_801D6AC4 = .sdata2:0x801D6AC4; // type:object size:0x4 data:float +lbl_801D6AC8 = .sdata2:0x801D6AC8; // type:object size:0x8 data:double +lbl_801D6AD0 = .sdata2:0x801D6AD0; // type:object size:0x4 data:float +lbl_801D6AD4 = .sdata2:0x801D6AD4; // type:object size:0x4 data:float +lbl_801D6AD8 = .sdata2:0x801D6AD8; // type:object size:0x4 data:float +lbl_801D6ADC = .sdata2:0x801D6ADC; // type:object size:0x4 data:float +lbl_801D6AE0 = .sdata2:0x801D6AE0; // type:object size:0x4 data:float +lbl_801D6AE4 = .sdata2:0x801D6AE4; // type:object size:0x4 data:float +lbl_801D6AE8 = .sdata2:0x801D6AE8; // type:object size:0x8 data:float +lbl_801D6AF0 = .sdata2:0x801D6AF0; // type:object size:0x4 data:float +lbl_801D6AF8 = .sdata2:0x801D6AF8; // type:object size:0x8 data:double +lbl_801D6B00 = .sdata2:0x801D6B00; // type:object size:0x8 data:double +lbl_801D6B08 = .sdata2:0x801D6B08; // type:object size:0x8 data:float +lbl_801D6B10 = .sdata2:0x801D6B10; // type:object size:0x4 data:float +lbl_801D6B14 = .sdata2:0x801D6B14; // type:object size:0x4 data:float +lbl_801D6B18 = .sdata2:0x801D6B18; // type:object size:0x4 data:float +lbl_801D6B20 = .sdata2:0x801D6B20; // type:object size:0x8 data:double +lbl_801D6B28 = .sdata2:0x801D6B28; // type:object size:0x4 data:float +lbl_801D6B2C = .sdata2:0x801D6B2C; // type:object size:0x4 data:float +lbl_801D6B30 = .sdata2:0x801D6B30; // type:object size:0x4 data:float +lbl_801D6B34 = .sdata2:0x801D6B34; // type:object size:0x4 data:float +lbl_801D6B38 = .sdata2:0x801D6B38; // type:object size:0x4 data:float +lbl_801D6B3C = .sdata2:0x801D6B3C; // type:object size:0x4 data:float +lbl_801D6B40 = .sdata2:0x801D6B40; // type:object size:0x8 data:double +lbl_801D6B48 = .sdata2:0x801D6B48; // type:object size:0x4 data:float +lbl_801D6B4C = .sdata2:0x801D6B4C; // type:object size:0x4 data:float +lbl_801D6B50 = .sdata2:0x801D6B50; // type:object size:0x8 data:double +value0_3 = .sdata2:0x801D6B58; // type:object size:0x4 scope:local data:float +value0_6 = .sdata2:0x801D6B5C; // type:object size:0x4 scope:local data:float +i2fMagic = .sdata2:0x801D6B60; // type:object size:0x8 scope:local data:double +lbl_801D6B68 = .sdata2:0x801D6B68; // type:object size:0x4 data:float +lbl_801D6B6C = .sdata2:0x801D6B6C; // type:object size:0x4 data:float +lbl_801D6B70 = .sdata2:0x801D6B70; // type:object size:0x4 data:float +lbl_801D6B74 = .sdata2:0x801D6B74; // type:object size:0x4 data:float +lbl_801D6B78 = .sdata2:0x801D6B78; // type:object size:0x4 data:float +lbl_801D6B7C = .sdata2:0x801D6B7C; // type:object size:0x4 data:float +lbl_801D6B80 = .sdata2:0x801D6B80; // type:object size:0x8 data:double +lbl_801D6B88 = .sdata2:0x801D6B88; // type:object size:0x4 data:float +lbl_801D6B8C = .sdata2:0x801D6B8C; // type:object size:0x4 data:float +lbl_801D6B90 = .sdata2:0x801D6B90; // type:object size:0x8 data:double +i2fMagic = .sdata2:0x801D6B98; // type:object size:0x8 scope:local data:double +value0_3 = .sdata2:0x801D6BA0; // type:object size:0x4 scope:local data:float +value0_6 = .sdata2:0x801D6BA4; // type:object size:0x4 scope:local data:float +lbl_801D6BA8 = .sdata2:0x801D6BA8; // type:object size:0x4 data:float +i2fMagic = .sdata2:0x801D6BB0; // type:object size:0x8 scope:local data:double +lbl_801D6BB8 = .sdata2:0x801D6BB8; // type:object size:0x8 data:4byte +lbl_801D6BC0 = .sdata2:0x801D6BC0; // type:object size:0x4 data:float +lbl_801D6BC4 = .sdata2:0x801D6BC4; // type:object size:0x4 data:float +lbl_801D6BC8 = .sdata2:0x801D6BC8; // type:object size:0x4 data:float +lbl_801D6BCC = .sdata2:0x801D6BCC; // type:object size:0x4 data:float +lbl_801D6BD0 = .sdata2:0x801D6BD0; // type:object size:0x8 data:double +lbl_801D6BE0 = .sbss2:0x801D6BE0; // type:object size:0x1 data:byte +lbl_801D6BE1 = .sbss2:0x801D6BE1; // type:object size:0x1 data:byte +lbl_801D6BE2 = .sbss2:0x801D6BE2; // type:object size:0x1 data:byte +lbl_801D6BE3 = .sbss2:0x801D6BE3; // type:object size:0x1 data:byte +lbl_801D6BE4 = .sbss2:0x801D6BE4; // type:object size:0x1 data:byte +lbl_801D6BE5 = .sbss2:0x801D6BE5; // type:object size:0x1 data:byte +lbl_801D6BE6 = .sbss2:0x801D6BE6; // type:object size:0x1 data:byte +lbl_801D6BE7 = .sbss2:0x801D6BE7; // type:object size:0x1 data:byte diff --git a/configure.py b/configure.py index f8a43598..f9ba9bf9 100644 --- a/configure.py +++ b/configure.py @@ -30,6 +30,7 @@ from tools.project import ( DEFAULT_VERSION = 0 VERSIONS = [ "GMPE01_00", # USA 1.0 + "GMPE01_01", # USA 1.1 ] parser = argparse.ArgumentParser() @@ -245,6 +246,9 @@ cflags_odemuexi = [ # TODO figure out flags ] +if version_num > 0: + cflags_odemuexi.append("-inline auto,deferred") + cflags_amcstub = [ *cflags_base, "-inline auto,deferred", @@ -760,11 +764,11 @@ config.libs = [ ), { "lib": "OdemuExi2", - "mw_version": "GC/1.2.5", + "mw_version": "GC/1.2.5" if version_num == 0 else "GC/1.2.5n", "cflags": cflags_odemuexi, "host": False, "objects": [ - Object(NonMatching, "OdemuExi2/DebuggerDriver.c"), + Object(MatchingFor("GMPE01_01"), "OdemuExi2/DebuggerDriver.c"), ], }, { @@ -844,7 +848,7 @@ config.libs = [ "instDll", objects={ Object(Matching, "REL/instDll/main.c"), - Object(NonMatching, "REL/instDll/font.c"), + Object(Matching, "REL/instDll/font.c"), }, ), Rel( diff --git a/orig/GMPE01_01/.gitkeep b/orig/GMPE01_01/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/src/OdemuExi2/DebuggerDriver.c b/src/OdemuExi2/DebuggerDriver.c index e9be8b4e..e01a42e4 100644 --- a/src/OdemuExi2/DebuggerDriver.c +++ b/src/OdemuExi2/DebuggerDriver.c @@ -2,7 +2,6 @@ #include #include - typedef void (*MTRCallbackType)(int); static MTRCallbackType MTRCallback; @@ -268,8 +267,13 @@ u32 DBQueryData(void) if (!RecvDataLeng) { interrupts = OSDisableInterrupts(); CheckMailBox(); +#if VERSION > 0 + OSRestoreInterrupts(interrupts); + } +#else } OSRestoreInterrupts(interrupts); +#endif return RecvDataLeng; } diff --git a/src/REL/m444dll/pinball.c b/src/REL/m444dll/pinball.c index 5e77d561..167aee6e 100644 --- a/src/REL/m444dll/pinball.c +++ b/src/REL/m444dll/pinball.c @@ -714,6 +714,14 @@ float fn_1_CB70(Vec *arg0, Vec *arg1, Vec *arg2); s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2) { + Vec sp4C; + Vec sp40; + Vec sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + s32 spC; + float temp_f31; float temp_f30; float temp_f28; @@ -724,17 +732,8 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2) s32 temp_r27; Vec *temp_r25; u8 temp_r24; - s16 temp_r23; - Vec sp4C; - Vec sp40; - Vec sp34; - Vec sp28; - Vec sp1C; - Vec sp10; - s32 spC; - - temp_r23 = -1; + s16 temp_r23 = -1; spC = 1; temp_f28 = VECMag(arg1); sp1C = *arg1; @@ -845,6 +844,12 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2) if (temp_f31 < 0.0f) { temp_f28 -= temp_f31; temp_f31 = ABS(temp_f31); +#if VERSION > 0 + if (temp_f31 == 0.0) { + sp1C.x = sp1C.y = sp1C.z = 0.0f; + break; + } +#endif } sp34 = sp40; sp34.z = 1; @@ -881,6 +886,13 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2) } } temp_f31 = VECMag(arg1); +#if VERSION > 0 + if (VECMag(&sp1C) == 0.0) { + sp1C.x = 0.0f; + sp1C.y = 1.0f; + sp1C.z = 0.0f; + } +#endif VECNormalize(&sp1C, &sp1C); VECScale(&sp1C, arg1, temp_f31); if (temp_r27 != 0) { @@ -894,12 +906,16 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2) VECSubtract(temp_r28, arg0, &sp34); temp_f30 = VECMag(&sp34); if (temp_f30 < 3.0f && VECMag(arg1) < 1.0f) { - arg1->x = arg1->y = arg1->z = 0; + arg1->x = arg1->y = arg1->z = 0.0f; *arg0 = *temp_r28; temp_r23 = temp_r30; break; } - if (temp_f30 < 20.0f) { + if (temp_f30 < 20.0f +#if VERSION > 0 + && !(temp_f30 < 0.000001) +#endif + ) { VECScale(arg1, arg1, 0.9f); VECNormalize(&sp34, &sp34); VECScale(&sp34, &sp34, 0.1 * (20.0f - temp_f30)); @@ -909,6 +925,11 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2) } if (temp_r30 == lbl_1_data_3A4[arg2]) { arg1->y += 0.3; +#if VERSION > 0 + if (VECMag((Vec *)&arg1) < 0.000001) { + arg1->y += 0.3; + } +#endif } if (arg0->x >= lbl_1_bss_77C.x - 13.0f) { arg0->x = lbl_1_bss_77C.x - 13.0f - 1.0f; From ed36f018eef3812d343e1a2bcec2ccd1782b3502 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Thu, 14 Nov 2024 20:44:19 -0600 Subject: [PATCH 135/311] Fix mstory3 1.01 symbols --- config/GMPE01_01/rels/mstory3Dll/symbols.txt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/config/GMPE01_01/rels/mstory3Dll/symbols.txt b/config/GMPE01_01/rels/mstory3Dll/symbols.txt index 4f3ee426..e0915adf 100644 --- a/config/GMPE01_01/rels/mstory3Dll/symbols.txt +++ b/config/GMPE01_01/rels/mstory3Dll/symbols.txt @@ -158,10 +158,7 @@ fn_1_16ED4 = .text:0x00016ED4; // type:function size:0x258 fn_1_1712C = .text:0x0001712C; // type:function size:0x160 fn_1_1728C = .text:0x0001728C; // type:function size:0x210 fn_1_17484 = .text:0x0001749C; // type:function size:0xEC -fn_1_17570 = .text:0x00017588; // type:function size:0x838 -lbl_1_text_17DC4 = .text:0x00017DC4; // type:label -lbl_1_text_17DC8 = .text:0x00017DC8; // type:label -lbl_1_text_17DD0 = .text:0x00017DD0; // type:label +fn_1_17570 = .text:0x00017588; // type:function size:0x850 fn_1_17DC0 = .text:0x00017DD8; // type:function size:0x2C0 fn_1_18080 = .text:0x00018098; // type:function size:0x9C fn_1_1811C = .text:0x00018134; // type:function size:0x218 From e804f78fb399a92baeb137e0e21a5c0312f324ca Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Fri, 15 Nov 2024 04:12:57 +0100 Subject: [PATCH 136/311] Split and matched nisDll --- config/GMPE01_00/rels/nisDll/splits.txt | 3 +++ config/GMPE01_00/rels/nisDll/symbols.txt | 2 +- configure.py | 6 ++++++ src/REL/nisDll/main.c | 21 +++++++++++++++++++++ 4 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 src/REL/nisDll/main.c diff --git a/config/GMPE01_00/rels/nisDll/splits.txt b/config/GMPE01_00/rels/nisDll/splits.txt index ac3125d0..d512c836 100644 --- a/config/GMPE01_00/rels/nisDll/splits.txt +++ b/config/GMPE01_00/rels/nisDll/splits.txt @@ -3,3 +3,6 @@ Sections: .ctors type:rodata align:4 .dtors type:rodata align:4 .data type:data align:8 + +REL/nisDll/main.c: + .text start:0x00000000 end:0x0000017C diff --git a/config/GMPE01_00/rels/nisDll/symbols.txt b/config/GMPE01_00/rels/nisDll/symbols.txt index 1143328c..8cabd560 100644 --- a/config/GMPE01_00/rels/nisDll/symbols.txt +++ b/config/GMPE01_00/rels/nisDll/symbols.txt @@ -1,4 +1,4 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x68 +ObjectSetup = .text:0x00000000; // type:function size:0x68 fn_1_68 = .text:0x00000068; // type:function size:0x2C _prolog = .text:0x00000094; // type:function size:0x9C scope:global _epilog = .text:0x00000130; // type:function size:0x4C scope:global diff --git a/configure.py b/configure.py index f9ba9bf9..c9a29b4f 100644 --- a/configure.py +++ b/configure.py @@ -1386,6 +1386,12 @@ config.libs = [ Object(NonMatching, "REL/mstoryDll/save.c"), }, ), + Rel( + "nisDll", + objects={ + Object(Matching, "REL/nisDll/main.c") + }, + ), Rel( "option", objects={ diff --git a/src/REL/nisDll/main.c b/src/REL/nisDll/main.c new file mode 100644 index 00000000..a50c5b18 --- /dev/null +++ b/src/REL/nisDll/main.c @@ -0,0 +1,21 @@ +#include "game/object.h" + +void fn_1_68(omObjData *object); + +void ObjectSetup(void) +{ + Process *process = omInitObjMan(0xA, 0x2000); + omObjData *object = omAddObjEx(process, 0, 0, 0, -1, fn_1_68); + u32 *work = object->work; +} + +void fn_1_68(omObjData *object) +{ + s8 *work = (s8 *)object->work; + if (*work != 0) { + (void)work; + return; + } +} + +#include "src/REL/executor.c" From 96a7ca2e8df81c4faddb8fefffdc09b4532db09f Mon Sep 17 00:00:00 2001 From: CreateSource Date: Sat, 16 Nov 2024 00:24:49 -0500 Subject: [PATCH 137/311] continued to 2894 --- .vscode/settings.json | 5 +- src/REL/m418Dll/main.c | 197 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 199 insertions(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index f453e015..6f6e1099 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -22,7 +22,10 @@ "m443dll.h": "c", "object.h": "c", "m417dll.h": "c", - "m418dll.h": "c" + "m418dll.h": "c", + "hsfman.h": "c", + "math.h": "c", + "corecrt_math.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { diff --git a/src/REL/m418Dll/main.c b/src/REL/m418Dll/main.c index 9f4e9cad..a9f5f9c2 100644 --- a/src/REL/m418Dll/main.c +++ b/src/REL/m418Dll/main.c @@ -1,9 +1,10 @@ +#include "math.h" +#include "ext_math.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" -#include "rel_sqrt_consts.h" #include "REL/m418Dll.h" @@ -27,7 +28,7 @@ typedef struct M418DllUnkStruct4 { s32 unkC; s32 unk10; f32 unk14; - char unk18[0x4]; + f32 unk18; } M418DllUnkStruct4; // sizeof 0x1C typedef struct M418DllUnkStruct5 { @@ -54,8 +55,12 @@ s32 lbl_1_bss_4; Process* lbl_1_bss_0; // data +s32 lbl_1_data_0[2] = { -1, -1 }; s32 lbl_1_data_8 = -1; +// protos +void fn_1_AD14(omObjData*, s32, s32, s32, s32); + void fn_1_0(void) { Hu3DGLightCreate(-2500.0f, 5000.0f, 5000.0f, 0.0f, -1.0f, -1.0f, 0xFF, 0xD8, 0xA0); } @@ -412,3 +417,191 @@ void fn_1_18AC(omObjData* object) { var_r31->unk14 = 1.0f; } } + +s32 fn_1_18FC(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { + M418DllUnkStruct4* temp_r30; + s32 var_r28; + f32 var_f31; + f32 var_f30; + f32 var_f27; + f32 var_f26; + f32 var_f24; + f32 var_f20; + + var_r28 = 0; + temp_r30 = &lbl_1_bss_11C[object->work[0]]; + var_f31 = arg1.x - object->trans.x; + var_f30 = object->trans.z - arg1.z; + var_f26 = 90.0 + atan2d(var_f30, var_f31); + var_f27 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f27 <= 15.0f) { + var_f31 = var_f30 = 0.0f; + } else { + var_f31 = 55.0f * (var_f31 / var_f27); + var_f30 = 55.0f * (var_f30 / var_f27); + } + if (temp_r30->unk14 == 1.0f) { + temp_r30->unk18 = -1.47f; + } + var_f27 = arg9 * (sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)) / 72.0f); + if (var_f27 >= arg9) { + var_f27 = arg9; + } else if (var_f27 <= 1.0f) { + var_f31 = var_f30 = var_f27 = 0.0f; + var_r28 = 1; + } + if (var_f31 != 0.0f || var_f30 != 0.0f || arg8 >= 0.0f) { + if (arg8 >= 0.0f && var_f31 == 0.0f && var_f30 == 0.0f) { + var_f26 = arg8; + } + if (var_f26 >= 180.0f) { + if (object->rot.y - var_f26 >= 180.0f) { + object->rot.y -= 360.0f; + } + if (object->rot.y - var_f26 < -180.0f) { + object->rot.y += 360.0f; + } + } else { + if (object->rot.y - var_f26 > 180.0f) { + object->rot.y -= 360.0f; + } + if (object->rot.y - var_f26 <= -180.0f) { + object->rot.y += 360.0f; + } + } + object->rot.y = (((9.0f * object->rot.y) + var_f26) / 10.0f); + } + object->trans.x += var_f27 * sind(object->rot.y); + object->trans.z += var_f27 * cosd(object->rot.y); + if (temp_r30->unk14) { + temp_r30->unk14 = 2.0f; + if (temp_r30->unk18 > 1.7f) { + temp_r30->unk18 = 1.7f; + } + var_f20 = (temp_r30->unk18 * temp_r30->unk18) * (temp_r30->unk18 >= 0.0f ? -3.5f : 3.5f); + object->trans.y += var_f20; + if (object->trans.y <= arg1.y) { + object->trans.y = arg1.y; + temp_r30->unk14 = temp_r30->unk18 = 0.0f; + var_r28 = 2; + } + temp_r30->unk18 += 0.11f; + } + if (var_f27 > 0.0f) { + fn_1_AD14(object, 0, 1, 10, 1); + } else { + fn_1_AD14(object, 0, 0, 10, 1); + } + return var_r28; +} + +s32 fn_1_20B0(omObjData* object, Vec arg1, f32 arg8, f32 arg9, s32 arg2) { + if (arg2 == 1) fn_1_18AC(object); + return fn_1_18FC(object, arg1, arg9, arg8); +} + +Vec lbl_1_data_8C[9] = { + { 140.0f, 0.0f, -90.0f }, + { -200.0f, 0.0f, 50.0f }, + { -300.0f, 0.0f, -150.0f }, + { -250.0f, 0.0f, -500.0f }, + { 0.0f, 0.0f, 150.0f }, + { 700.0f, 0.0f, 50.0f }, + { 1000.0f, -50.0f, 500.0f }, + { 1000.0f, -100.0f, 500.0f }, + { 1000.0f, -150.0f, 500.0f } +}; + +s32 fn_1_2178(omObjData* object) { + s32 var_r30; + + switch (object->work[1]) { + case 1: + object->work[2] = 0; + object->work[1] = 10; + case 10: + fn_1_20B0(object, lbl_1_data_8C[1], 0.0f, 25.0f, 0); + if (object->work[2]++ >= 15) { + object->work[1] = 11; + object->work[2] = 0; + } + break; + case 11: + var_r30 = fn_1_20B0(object, lbl_1_data_8C[1], 6.0f, -1.0f, 0); + if (var_r30 != 0) { + object->work[1] = 12; + object->work[2] = 0; + } + break; + case 12: + fn_1_20B0(object, lbl_1_data_8C[1], 0.0f, 0.0f, 0); + if (object->work[2]++ >= 15) { + object->work[1] = 13; + object->work[2] = 0; + } + break; + + case 2: + object->work[2] = 0; + object->work[1] = 0x14; + case 20: + fn_1_20B0(object, lbl_1_data_8C[0], 0.0f, 25.0f, 0); + if (object->work[2]++ >= 15) { + object->work[1] = 21; + object->work[2] = 0; + } + break; + case 21: + var_r30 = fn_1_20B0(object, lbl_1_data_8C[4], 6.0f, -1.0f, 0); + if (var_r30 != 0) { + object->work[1] = 22; + object->work[2] = 0; + } + break; + case 22: + var_r30 = fn_1_20B0(object, lbl_1_data_8C[0], 6.0f, 0.0f, 0); + if (var_r30 != 0) { + object->work[1] = 24; + object->work[2] = 0; + } + break; + case 23: + fn_1_20B0(object, lbl_1_data_8C[1], 0.0f, 0.0f, 0); + if (object->work[2]++ >= 30) { + object->work[1] = 24; + object->work[2] = 0; + } + break; + case 3: + object->work[2] = 0; + object->work[1] = 30; + case 30: + var_r30 = fn_1_20B0(object, lbl_1_data_8C[5], 6.0f, -1.0f, 0); + if (var_r30 == 1) { + object->work[1] = 31; + object->work[2] = 0; + } + break; + case 31: + var_r30 = fn_1_20B0(object, lbl_1_data_8C[6], 6.0f, -1.0f, 1); + if (var_r30 != 0) { + object->work[1] = 32; + object->work[2] = 0; + } + break; + case 32: + var_r30 = fn_1_20B0(object, lbl_1_data_8C[7], 6.0f, -1.0f, 1); + if (var_r30 != 0) { + object->work[1] = 33; + object->work[2] = 0; + } + break; + case 33: + var_r30 = fn_1_20B0(object, lbl_1_data_8C[8], 6.0f, -1.0f, 1); + if (var_r30 != 0) { + object->work[1] = 34; + object->work[2] = 0; + } + break; + } +} From d0a5c85d3e3d835196d52617b647dbb4739eccac Mon Sep 17 00:00:00 2001 From: Liam Coleman Date: Sat, 16 Nov 2024 12:35:24 -0600 Subject: [PATCH 138/311] Add support for PAL version (#464) * Initial setup for PAL version * Add hashes to config.yml Set REL/empty.c to matching for every version Turn off quick-analysis for PAL * Set nisDll matching only for the US version * More config.yml fixes and reran auto-analysis * Split PAL to sprput * Add more symbols * Split a lot more code in PAL * Split more Also introduce version.h header * Split to board stuff * Port early board TUs to PAL * More board PAL ports * Split rest of board code * Board RELs porting to PAL * Match w06Dll/fire.c in PAL * Match w04 big boo for PAL --------- Co-authored-by: dbalatoni13 --- config/GMPE01_00/config.yml | 5 +- config/GMPE01_00/symbols.txt | 52 +- config/GMPP01_00/build.sha1 | 100 + config/GMPP01_00/config.yml | 657 ++ config/GMPP01_00/rels/E3setupDLL/splits.txt | 7 + config/GMPP01_00/rels/E3setupDLL/symbols.txt | 192 + config/GMPP01_00/rels/_minigameDll/splits.txt | 6 + .../GMPP01_00/rels/_minigameDll/symbols.txt | 7 + config/GMPP01_00/rels/bootDll/splits.txt | 7 + config/GMPP01_00/rels/bootDll/symbols.txt | 107 + config/GMPP01_00/rels/instDll/splits.txt | 7 + config/GMPP01_00/rels/instDll/symbols.txt | 147 + config/GMPP01_00/rels/m300Dll/splits.txt | 3 + config/GMPP01_00/rels/m300Dll/symbols.txt | 2 + config/GMPP01_00/rels/m302Dll/splits.txt | 3 + config/GMPP01_00/rels/m302Dll/symbols.txt | 2 + config/GMPP01_00/rels/m303Dll/splits.txt | 3 + config/GMPP01_00/rels/m303Dll/symbols.txt | 2 + config/GMPP01_00/rels/m330Dll/splits.txt | 3 + config/GMPP01_00/rels/m330Dll/symbols.txt | 2 + config/GMPP01_00/rels/m333Dll/splits.txt | 3 + config/GMPP01_00/rels/m333Dll/symbols.txt | 2 + config/GMPP01_00/rels/m401Dll/splits.txt | 7 + config/GMPP01_00/rels/m401Dll/symbols.txt | 522 + config/GMPP01_00/rels/m402Dll/splits.txt | 7 + config/GMPP01_00/rels/m402Dll/symbols.txt | 206 + config/GMPP01_00/rels/m403Dll/splits.txt | 7 + config/GMPP01_00/rels/m403Dll/symbols.txt | 259 + config/GMPP01_00/rels/m404Dll/splits.txt | 7 + config/GMPP01_00/rels/m404Dll/symbols.txt | 155 + config/GMPP01_00/rels/m405Dll/splits.txt | 7 + config/GMPP01_00/rels/m405Dll/symbols.txt | 256 + config/GMPP01_00/rels/m406Dll/splits.txt | 7 + config/GMPP01_00/rels/m406Dll/symbols.txt | 438 + config/GMPP01_00/rels/m407dll/splits.txt | 7 + config/GMPP01_00/rels/m407dll/symbols.txt | 271 + config/GMPP01_00/rels/m408Dll/splits.txt | 7 + config/GMPP01_00/rels/m408Dll/symbols.txt | 548 ++ config/GMPP01_00/rels/m409Dll/splits.txt | 7 + config/GMPP01_00/rels/m409Dll/symbols.txt | 332 + config/GMPP01_00/rels/m410Dll/splits.txt | 7 + config/GMPP01_00/rels/m410Dll/symbols.txt | 316 + config/GMPP01_00/rels/m411Dll/splits.txt | 7 + config/GMPP01_00/rels/m411Dll/symbols.txt | 278 + config/GMPP01_00/rels/m412Dll/splits.txt | 7 + config/GMPP01_00/rels/m412Dll/symbols.txt | 190 + config/GMPP01_00/rels/m413Dll/splits.txt | 7 + config/GMPP01_00/rels/m413Dll/symbols.txt | 211 + config/GMPP01_00/rels/m414Dll/splits.txt | 7 + config/GMPP01_00/rels/m414Dll/symbols.txt | 183 + config/GMPP01_00/rels/m415Dll/splits.txt | 7 + config/GMPP01_00/rels/m415Dll/symbols.txt | 234 + config/GMPP01_00/rels/m416Dll/splits.txt | 7 + config/GMPP01_00/rels/m416Dll/symbols.txt | 209 + config/GMPP01_00/rels/m417Dll/splits.txt | 7 + config/GMPP01_00/rels/m417Dll/symbols.txt | 361 + config/GMPP01_00/rels/m418Dll/splits.txt | 7 + config/GMPP01_00/rels/m418Dll/symbols.txt | 304 + config/GMPP01_00/rels/m419Dll/splits.txt | 7 + config/GMPP01_00/rels/m419Dll/symbols.txt | 184 + config/GMPP01_00/rels/m420dll/splits.txt | 7 + config/GMPP01_00/rels/m420dll/symbols.txt | 249 + config/GMPP01_00/rels/m421Dll/splits.txt | 7 + config/GMPP01_00/rels/m421Dll/symbols.txt | 269 + config/GMPP01_00/rels/m422Dll/splits.txt | 7 + config/GMPP01_00/rels/m422Dll/symbols.txt | 249 + config/GMPP01_00/rels/m423Dll/splits.txt | 7 + config/GMPP01_00/rels/m423Dll/symbols.txt | 367 + config/GMPP01_00/rels/m424Dll/splits.txt | 7 + config/GMPP01_00/rels/m424Dll/symbols.txt | 314 + config/GMPP01_00/rels/m425Dll/splits.txt | 7 + config/GMPP01_00/rels/m425Dll/symbols.txt | 300 + config/GMPP01_00/rels/m426Dll/splits.txt | 7 + config/GMPP01_00/rels/m426Dll/symbols.txt | 225 + config/GMPP01_00/rels/m427Dll/splits.txt | 7 + config/GMPP01_00/rels/m427Dll/symbols.txt | 439 + config/GMPP01_00/rels/m428Dll/splits.txt | 7 + config/GMPP01_00/rels/m428Dll/symbols.txt | 410 + config/GMPP01_00/rels/m429Dll/splits.txt | 7 + config/GMPP01_00/rels/m429Dll/symbols.txt | 316 + config/GMPP01_00/rels/m430Dll/splits.txt | 7 + config/GMPP01_00/rels/m430Dll/symbols.txt | 490 + config/GMPP01_00/rels/m431Dll/splits.txt | 7 + config/GMPP01_00/rels/m431Dll/symbols.txt | 251 + config/GMPP01_00/rels/m432Dll/splits.txt | 7 + config/GMPP01_00/rels/m432Dll/symbols.txt | 359 + config/GMPP01_00/rels/m433Dll/splits.txt | 7 + config/GMPP01_00/rels/m433Dll/symbols.txt | 465 + config/GMPP01_00/rels/m434Dll/splits.txt | 7 + config/GMPP01_00/rels/m434Dll/symbols.txt | 334 + config/GMPP01_00/rels/m435Dll/splits.txt | 7 + config/GMPP01_00/rels/m435Dll/symbols.txt | 471 + config/GMPP01_00/rels/m436Dll/splits.txt | 7 + config/GMPP01_00/rels/m436Dll/symbols.txt | 352 + config/GMPP01_00/rels/m437Dll/splits.txt | 7 + config/GMPP01_00/rels/m437Dll/symbols.txt | 411 + config/GMPP01_00/rels/m438Dll/splits.txt | 7 + config/GMPP01_00/rels/m438Dll/symbols.txt | 458 + config/GMPP01_00/rels/m439Dll/splits.txt | 7 + config/GMPP01_00/rels/m439Dll/symbols.txt | 322 + config/GMPP01_00/rels/m440Dll/splits.txt | 7 + config/GMPP01_00/rels/m440Dll/symbols.txt | 293 + config/GMPP01_00/rels/m441Dll/splits.txt | 7 + config/GMPP01_00/rels/m441Dll/symbols.txt | 224 + config/GMPP01_00/rels/m442Dll/splits.txt | 7 + config/GMPP01_00/rels/m442Dll/symbols.txt | 222 + config/GMPP01_00/rels/m443Dll/splits.txt | 7 + config/GMPP01_00/rels/m443Dll/symbols.txt | 326 + config/GMPP01_00/rels/m444dll/splits.txt | 7 + config/GMPP01_00/rels/m444dll/symbols.txt | 320 + config/GMPP01_00/rels/m445Dll/splits.txt | 7 + config/GMPP01_00/rels/m445Dll/symbols.txt | 173 + config/GMPP01_00/rels/m446dll/splits.txt | 7 + config/GMPP01_00/rels/m446dll/symbols.txt | 305 + config/GMPP01_00/rels/m447dll/splits.txt | 7 + config/GMPP01_00/rels/m447dll/symbols.txt | 309 + config/GMPP01_00/rels/m448Dll/splits.txt | 7 + config/GMPP01_00/rels/m448Dll/symbols.txt | 200 + config/GMPP01_00/rels/m449Dll/splits.txt | 7 + config/GMPP01_00/rels/m449Dll/symbols.txt | 209 + config/GMPP01_00/rels/m450Dll/splits.txt | 7 + config/GMPP01_00/rels/m450Dll/symbols.txt | 558 ++ config/GMPP01_00/rels/m451Dll/splits.txt | 7 + config/GMPP01_00/rels/m451Dll/symbols.txt | 216 + config/GMPP01_00/rels/m453Dll/splits.txt | 7 + config/GMPP01_00/rels/m453Dll/symbols.txt | 282 + config/GMPP01_00/rels/m455Dll/splits.txt | 7 + config/GMPP01_00/rels/m455Dll/symbols.txt | 293 + config/GMPP01_00/rels/m456Dll/splits.txt | 7 + config/GMPP01_00/rels/m456Dll/symbols.txt | 283 + config/GMPP01_00/rels/m457Dll/splits.txt | 7 + config/GMPP01_00/rels/m457Dll/symbols.txt | 177 + config/GMPP01_00/rels/m458Dll/splits.txt | 7 + config/GMPP01_00/rels/m458Dll/symbols.txt | 176 + config/GMPP01_00/rels/m459dll/splits.txt | 7 + config/GMPP01_00/rels/m459dll/symbols.txt | 169 + config/GMPP01_00/rels/m460Dll/splits.txt | 7 + config/GMPP01_00/rels/m460Dll/symbols.txt | 298 + config/GMPP01_00/rels/m461Dll/splits.txt | 7 + config/GMPP01_00/rels/m461Dll/symbols.txt | 223 + config/GMPP01_00/rels/m462Dll/splits.txt | 7 + config/GMPP01_00/rels/m462Dll/symbols.txt | 144 + config/GMPP01_00/rels/m463Dll/splits.txt | 7 + config/GMPP01_00/rels/m463Dll/symbols.txt | 164 + config/GMPP01_00/rels/mentDll/splits.txt | 7 + config/GMPP01_00/rels/mentDll/symbols.txt | 440 + config/GMPP01_00/rels/messDll/splits.txt | 7 + config/GMPP01_00/rels/messDll/symbols.txt | 113 + config/GMPP01_00/rels/mgmodedll/splits.txt | 7 + config/GMPP01_00/rels/mgmodedll/symbols.txt | 584 ++ config/GMPP01_00/rels/modeltestDll/splits.txt | 7 + .../GMPP01_00/rels/modeltestDll/symbols.txt | 230 + config/GMPP01_00/rels/modeseldll/splits.txt | 7 + config/GMPP01_00/rels/modeseldll/symbols.txt | 269 + config/GMPP01_00/rels/mpexDll/splits.txt | 7 + config/GMPP01_00/rels/mpexDll/symbols.txt | 474 + config/GMPP01_00/rels/msetupDll/splits.txt | 3 + config/GMPP01_00/rels/msetupDll/symbols.txt | 2 + config/GMPP01_00/rels/mstory2Dll/splits.txt | 7 + config/GMPP01_00/rels/mstory2Dll/symbols.txt | 709 ++ config/GMPP01_00/rels/mstory3Dll/splits.txt | 7 + config/GMPP01_00/rels/mstory3Dll/symbols.txt | 549 ++ config/GMPP01_00/rels/mstory4Dll/splits.txt | 7 + config/GMPP01_00/rels/mstory4Dll/symbols.txt | 67 + config/GMPP01_00/rels/mstoryDll/splits.txt | 7 + config/GMPP01_00/rels/mstoryDll/symbols.txt | 498 + config/GMPP01_00/rels/nisDll/splits.txt | 5 + config/GMPP01_00/rels/nisDll/symbols.txt | 6 + config/GMPP01_00/rels/option/splits.txt | 7 + config/GMPP01_00/rels/option/symbols.txt | 379 + config/GMPP01_00/rels/present/splits.txt | 7 + config/GMPP01_00/rels/present/symbols.txt | 189 + config/GMPP01_00/rels/resultDll/splits.txt | 7 + config/GMPP01_00/rels/resultDll/symbols.txt | 203 + config/GMPP01_00/rels/safDll/splits.txt | 7 + config/GMPP01_00/rels/safDll/symbols.txt | 13 + config/GMPP01_00/rels/selmenuDll/splits.txt | 7 + config/GMPP01_00/rels/selmenuDll/symbols.txt | 201 + config/GMPP01_00/rels/staffDll/splits.txt | 7 + config/GMPP01_00/rels/staffDll/symbols.txt | 55 + config/GMPP01_00/rels/subchrselDll/splits.txt | 7 + .../GMPP01_00/rels/subchrselDll/symbols.txt | 33 + config/GMPP01_00/rels/w01Dll/splits.txt | 29 + config/GMPP01_00/rels/w01Dll/symbols.txt | 469 + config/GMPP01_00/rels/w02Dll/splits.txt | 52 + config/GMPP01_00/rels/w02Dll/symbols.txt | 457 + config/GMPP01_00/rels/w03Dll/splits.txt | 53 + config/GMPP01_00/rels/w03Dll/symbols.txt | 443 + config/GMPP01_00/rels/w04Dll/splits.txt | 47 + config/GMPP01_00/rels/w04Dll/symbols.txt | 452 + config/GMPP01_00/rels/w05Dll/splits.txt | 47 + config/GMPP01_00/rels/w05Dll/symbols.txt | 356 + config/GMPP01_00/rels/w06Dll/splits.txt | 47 + config/GMPP01_00/rels/w06Dll/symbols.txt | 373 + config/GMPP01_00/rels/w10Dll/splits.txt | 33 + config/GMPP01_00/rels/w10Dll/symbols.txt | 116 + config/GMPP01_00/rels/w20Dll/splits.txt | 17 + config/GMPP01_00/rels/w20Dll/symbols.txt | 33 + config/GMPP01_00/rels/w21Dll/splits.txt | 15 + config/GMPP01_00/rels/w21Dll/symbols.txt | 18 + config/GMPP01_00/rels/ztardll/splits.txt | 7 + config/GMPP01_00/rels/ztardll/symbols.txt | 258 + config/GMPP01_00/splits.txt | 567 ++ config/GMPP01_00/symbols.txt | 8670 +++++++++++++++++ config/GMPP01_02/build.sha1 | 100 + config/GMPP01_02/config.yml | 639 ++ config/GMPP01_02/rels/m444dll/splits.txt | 7 + config/GMPP01_02/rels/m444dll/symbols.txt | 321 + config/GMPP01_02/rels/mstory2Dll/splits.txt | 7 + config/GMPP01_02/rels/mstory2Dll/symbols.txt | 709 ++ config/GMPP01_02/rels/mstory3Dll/splits.txt | 7 + config/GMPP01_02/rels/mstory3Dll/symbols.txt | 549 ++ config/GMPP01_02/rels/mstoryDll/splits.txt | 7 + config/GMPP01_02/rels/mstoryDll/symbols.txt | 498 + configure.py | 524 +- include/game/board/window.h | 1 + include/game/gamework_data.h | 22 + include/version.h | 18 + src/REL/w04Dll/big_boo.c | 4 + src/REL/w06Dll/fire.c | 31 +- src/game/audio.c | 2 +- src/game/board/boo.c | 8 +- src/game/board/char_wheel.c | 19 + src/game/board/item.c | 4 +- src/game/board/main.c | 7 +- src/game/board/roll.c | 107 +- src/game/board/shop.c | 27 +- src/game/board/star.c | 28 +- src/game/board/ui.c | 22 +- src/game/board/view.c | 24 +- src/game/board/window.c | 27 +- src/game/data.c | 4 +- src/game/decode.c | 8 +- src/game/hsfanim.c | 6 +- src/game/sreset.c | 127 +- src/game/wipe.c | 6 + 236 files changed, 40998 insertions(+), 390 deletions(-) create mode 100644 config/GMPP01_00/build.sha1 create mode 100644 config/GMPP01_00/config.yml create mode 100644 config/GMPP01_00/rels/E3setupDLL/splits.txt create mode 100644 config/GMPP01_00/rels/E3setupDLL/symbols.txt create mode 100644 config/GMPP01_00/rels/_minigameDll/splits.txt create mode 100644 config/GMPP01_00/rels/_minigameDll/symbols.txt create mode 100644 config/GMPP01_00/rels/bootDll/splits.txt create mode 100644 config/GMPP01_00/rels/bootDll/symbols.txt create mode 100644 config/GMPP01_00/rels/instDll/splits.txt create mode 100644 config/GMPP01_00/rels/instDll/symbols.txt create mode 100644 config/GMPP01_00/rels/m300Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m300Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m302Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m302Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m303Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m303Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m330Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m330Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m333Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m333Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m401Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m401Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m402Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m402Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m403Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m403Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m404Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m404Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m405Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m405Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m406Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m406Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m407dll/splits.txt create mode 100644 config/GMPP01_00/rels/m407dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m408Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m408Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m409Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m409Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m410Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m410Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m411Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m411Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m412Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m412Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m413Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m413Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m414Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m414Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m415Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m415Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m416Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m416Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m417Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m417Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m418Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m418Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m419Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m419Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m420dll/splits.txt create mode 100644 config/GMPP01_00/rels/m420dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m421Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m421Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m422Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m422Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m423Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m423Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m424Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m424Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m425Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m425Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m426Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m426Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m427Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m427Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m428Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m428Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m429Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m429Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m430Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m430Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m431Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m431Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m432Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m432Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m433Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m433Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m434Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m434Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m435Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m435Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m436Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m436Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m437Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m437Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m438Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m438Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m439Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m439Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m440Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m440Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m441Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m441Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m442Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m442Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m443Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m443Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m444dll/splits.txt create mode 100644 config/GMPP01_00/rels/m444dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m445Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m445Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m446dll/splits.txt create mode 100644 config/GMPP01_00/rels/m446dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m447dll/splits.txt create mode 100644 config/GMPP01_00/rels/m447dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m448Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m448Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m449Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m449Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m450Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m450Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m451Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m451Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m453Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m453Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m455Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m455Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m456Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m456Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m457Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m457Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m458Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m458Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m459dll/splits.txt create mode 100644 config/GMPP01_00/rels/m459dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m460Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m460Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m461Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m461Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m462Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m462Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/m463Dll/splits.txt create mode 100644 config/GMPP01_00/rels/m463Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/mentDll/splits.txt create mode 100644 config/GMPP01_00/rels/mentDll/symbols.txt create mode 100644 config/GMPP01_00/rels/messDll/splits.txt create mode 100644 config/GMPP01_00/rels/messDll/symbols.txt create mode 100644 config/GMPP01_00/rels/mgmodedll/splits.txt create mode 100644 config/GMPP01_00/rels/mgmodedll/symbols.txt create mode 100644 config/GMPP01_00/rels/modeltestDll/splits.txt create mode 100644 config/GMPP01_00/rels/modeltestDll/symbols.txt create mode 100644 config/GMPP01_00/rels/modeseldll/splits.txt create mode 100644 config/GMPP01_00/rels/modeseldll/symbols.txt create mode 100644 config/GMPP01_00/rels/mpexDll/splits.txt create mode 100644 config/GMPP01_00/rels/mpexDll/symbols.txt create mode 100644 config/GMPP01_00/rels/msetupDll/splits.txt create mode 100644 config/GMPP01_00/rels/msetupDll/symbols.txt create mode 100644 config/GMPP01_00/rels/mstory2Dll/splits.txt create mode 100644 config/GMPP01_00/rels/mstory2Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/mstory3Dll/splits.txt create mode 100644 config/GMPP01_00/rels/mstory3Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/mstory4Dll/splits.txt create mode 100644 config/GMPP01_00/rels/mstory4Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/mstoryDll/splits.txt create mode 100644 config/GMPP01_00/rels/mstoryDll/symbols.txt create mode 100644 config/GMPP01_00/rels/nisDll/splits.txt create mode 100644 config/GMPP01_00/rels/nisDll/symbols.txt create mode 100644 config/GMPP01_00/rels/option/splits.txt create mode 100644 config/GMPP01_00/rels/option/symbols.txt create mode 100644 config/GMPP01_00/rels/present/splits.txt create mode 100644 config/GMPP01_00/rels/present/symbols.txt create mode 100644 config/GMPP01_00/rels/resultDll/splits.txt create mode 100644 config/GMPP01_00/rels/resultDll/symbols.txt create mode 100644 config/GMPP01_00/rels/safDll/splits.txt create mode 100644 config/GMPP01_00/rels/safDll/symbols.txt create mode 100644 config/GMPP01_00/rels/selmenuDll/splits.txt create mode 100644 config/GMPP01_00/rels/selmenuDll/symbols.txt create mode 100644 config/GMPP01_00/rels/staffDll/splits.txt create mode 100644 config/GMPP01_00/rels/staffDll/symbols.txt create mode 100644 config/GMPP01_00/rels/subchrselDll/splits.txt create mode 100644 config/GMPP01_00/rels/subchrselDll/symbols.txt create mode 100644 config/GMPP01_00/rels/w01Dll/splits.txt create mode 100644 config/GMPP01_00/rels/w01Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/w02Dll/splits.txt create mode 100644 config/GMPP01_00/rels/w02Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/w03Dll/splits.txt create mode 100644 config/GMPP01_00/rels/w03Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/w04Dll/splits.txt create mode 100644 config/GMPP01_00/rels/w04Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/w05Dll/splits.txt create mode 100644 config/GMPP01_00/rels/w05Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/w06Dll/splits.txt create mode 100644 config/GMPP01_00/rels/w06Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/w10Dll/splits.txt create mode 100644 config/GMPP01_00/rels/w10Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/w20Dll/splits.txt create mode 100644 config/GMPP01_00/rels/w20Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/w21Dll/splits.txt create mode 100644 config/GMPP01_00/rels/w21Dll/symbols.txt create mode 100644 config/GMPP01_00/rels/ztardll/splits.txt create mode 100644 config/GMPP01_00/rels/ztardll/symbols.txt create mode 100644 config/GMPP01_00/splits.txt create mode 100644 config/GMPP01_00/symbols.txt create mode 100644 config/GMPP01_02/build.sha1 create mode 100644 config/GMPP01_02/config.yml create mode 100644 config/GMPP01_02/rels/m444dll/splits.txt create mode 100644 config/GMPP01_02/rels/m444dll/symbols.txt create mode 100644 config/GMPP01_02/rels/mstory2Dll/splits.txt create mode 100644 config/GMPP01_02/rels/mstory2Dll/symbols.txt create mode 100644 config/GMPP01_02/rels/mstory3Dll/splits.txt create mode 100644 config/GMPP01_02/rels/mstory3Dll/symbols.txt create mode 100644 config/GMPP01_02/rels/mstoryDll/splits.txt create mode 100644 config/GMPP01_02/rels/mstoryDll/symbols.txt create mode 100644 include/version.h diff --git a/config/GMPE01_00/config.yml b/config/GMPE01_00/config.yml index 81fc8915..9512c05c 100644 --- a/config/GMPE01_00/config.yml +++ b/config/GMPE01_00/config.yml @@ -565,7 +565,4 @@ extract: header: retryerror_en.inc - symbol: wrongdisc_en binary: wrongdisc_en.bin - header: wrongdisc_en.inc -- symbol: DEMOFontBitmap - binary: DEMOFontBitmap.bin - header: DEMOFontBitmap.inc \ No newline at end of file + header: wrongdisc_en.inc \ No newline at end of file diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 144dc6c3..cfa1a176 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -475,7 +475,7 @@ Hu3DParticleAttrSet = .text:0x8002A544; // type:function size:0x40 Hu3DParticleAttrReset = .text:0x8002A584; // type:function size:0x44 Hu3DParticleCntSet = .text:0x8002A5C8; // type:function size:0x3C Hu3DParticleAnimModeSet = .text:0x8002A604; // type:function size:0x60 -_Hu3DParticleAttrReset = .text:0x8002A664; // type:function size:0xAD4 scope:local +particleFunc = .text:0x8002A664; // type:function size:0xAD4 scope:local Hu3DParManInit = .text:0x8002B138; // type:function size:0x48 Hu3DParManCreate = .text:0x8002B180; // type:function size:0x1D4 Hu3DParManLink = .text:0x8002B354; // type:function size:0x17C @@ -721,7 +721,7 @@ fn_80040374 = .text:0x80040374; // type:function size:0x98 fn_8004040C = .text:0x8004040C; // type:function size:0xF4 GetClusterCurve = .text:0x80040500; // type:function size:0xA8 GetClusterWeightCurve = .text:0x800405A8; // type:function size:0xA8 -SetClusterMain = .text:0x80040650; // type:function size:0x3A0 +SetClusterMain = .text:0x80040650; // type:function size:0x3A0 scope:local ClusterProc = .text:0x800409F0; // type:function size:0x160 ClusterMotionExec = .text:0x80040B50; // type:function size:0x210 SetShapeMain = .text:0x80040D60; // type:function size:0x36C scope:local @@ -1841,10 +1841,10 @@ BallBooFlash = .text:0x800A1024; // type:function size:0x178 scope:local TakeBallCoin = .text:0x800A119C; // type:function size:0x1B0 scope:local ExecTakeBallCoin = .text:0x800A134C; // type:function size:0xDC scope:local TakeBallCoinPosSet = .text:0x800A1428; // type:function size:0x9C scope:local -CheckBallCoinDone = .text:0x800A14C4; // type:function size:0x68 -TakeBallStar = .text:0x800A152C; // type:function size:0x168 -ExecTakeBallStar = .text:0x800A1694; // type:function size:0x184 -CheckTakeBallStarDone = .text:0x800A1818; // type:function size:0x1C +CheckBallCoinDone = .text:0x800A14C4; // type:function size:0x68 scope:local +TakeBallStar = .text:0x800A152C; // type:function size:0x168 scope:local +ExecTakeBallStar = .text:0x800A1694; // type:function size:0x184 scope:local +CheckTakeBallStarDone = .text:0x800A1818; // type:function size:0x1C scope:local BoardBooStealValueGet = .text:0x800A1834; // type:function size:0x30 BoardBooStealLightCheck = .text:0x800A1864; // type:function size:0x20 UpdatePlayerCoins = .text:0x800A1884; // type:function size:0x1B0 scope:local @@ -2756,8 +2756,8 @@ __THPHuffDecodeDCTCompU = .text:0x800E0C48; // type:function size:0x6A8 scope:lo __THPHuffDecodeDCTCompV = .text:0x800E12F0; // type:function size:0x6A8 scope:local THPInit = .text:0x800E1998; // type:function size:0x78 THPAudioDecode = .text:0x800E1A10; // type:function size:0x464 -__THPAudioGetNewSample = .text:0x800E1E74; // type:function size:0x90 -__THPAudioInitialize = .text:0x800E1F04; // type:function size:0x3C +__THPAudioGetNewSample = .text:0x800E1E74; // type:function size:0x90 scope:local +__THPAudioInitialize = .text:0x800E1F04; // type:function size:0x3C scope:local __va_arg = .text:0x800E1F40; // type:function size:0xC8 scope:global __destroy_global_chain = .text:0x800E2008; // type:function size:0x48 scope:global __register_global_object = .text:0x800E2050; // type:function size:0x18 scope:global @@ -2918,7 +2918,7 @@ __StringWrite = .text:0x800E65DC; // type:function size:0x6C __FileWrite = .text:0x800E6648; // type:function size:0x58 scope:global __pformatter = .text:0x800E66A0; // type:function size:0x774 scope:local float2str = .text:0x800E6E14; // type:function size:0x6EC scope:local -round_decimal = .text:0x800E7500; // type:function size:0x12C +round_decimal = .text:0x800E7500; // type:function size:0x12C scope:local double2hex = .text:0x800E762C; // type:function size:0x338 scope:local longlong2str = .text:0x800E7964; // type:function size:0x2DC scope:local long2str = .text:0x800E7C40; // type:function size:0x220 scope:local @@ -3514,7 +3514,7 @@ msmSysDelGroupAll = .text:0x801161B4; // type:function size:0x140 msmSysDelGroupBase = .text:0x801162F4; // type:function size:0x28C msmSysLoadGroupBase = .text:0x80116580; // type:function size:0x298 msmSysLoadGroupSet = .text:0x80116818; // type:function size:0x3F0 -msmSysLoadGroupSub = .text:0x80116C08; // type:function size:0x3B4 +msmSysLoadGroupSub = .text:0x80116C08; // type:function size:0x3B4 scope:local msmSysLoadGroup = .text:0x80116FBC; // type:function size:0x278 msmSysCheckInit = .text:0x80117234; // type:function size:0x20 msmSysInit = .text:0x80117254; // type:function size:0x474 @@ -3570,8 +3570,8 @@ msmStreamAmemAlloc = .text:0x8011A798; // type:function size:0x10C msmStreamInit = .text:0x8011A8A4; // type:function size:0x2A8 msmStreamPauseOff = .text:0x8011AB4C; // type:function size:0x2B8 msmStreamPauseOn = .text:0x8011AE04; // type:function size:0x1AC -msmStreamPauseFade = .text:0x8011AFB0; // type:function size:0x2E8 -msmStreamFade = .text:0x8011B298; // type:function size:0x33C +msmStreamPauseFade = .text:0x8011AFB0; // type:function size:0x2E8 scope:local +msmStreamFade = .text:0x8011B298; // type:function size:0x33C scope:local msmStreamStopSub = .text:0x8011B5D4; // type:function size:0x13C scope:local msmStreamSetParamSub = .text:0x8011B710; // type:function size:0xE0 scope:local msmStreamPackStartStereo = .text:0x8011B7F0; // type:function size:0x448 @@ -3611,8 +3611,8 @@ pickSpr = .rodata:0x8011DFD0; // type:object size:0x20 scope:local handMdl = .rodata:0x8011DFF0; // type:object size:0x20 scope:local ticketSpr = .rodata:0x8011E010; // type:object size:0x10 scope:local lbl_8011E020 = .rodata:0x8011E020; // type:object size:0x20 data:4byte -lbl_8011E040 = .rodata:0x8011E040; // type:object size:0x24 -lbl_8011E064 = .rodata:0x8011E064; // type:object size:0x4C +starMesTbl1 = .rodata:0x8011E040; // type:object size:0x24 scope:local +starMesTbl2 = .rodata:0x8011E064; // type:object size:0x48 scope:local lbl_8011E0B0 = .rodata:0x8011E0B0; // type:object size:0x10 data:4byte lbl_8011E0C0 = .rodata:0x8011E0C0; // type:object size:0x54 data:4byte lbl_8011E118 = .rodata:0x8011E118; // type:object size:0x38 data:4byte @@ -4291,7 +4291,9 @@ statusLayout1Vs3 = .data:0x8013AD64; // type:object size:0x30 scope:local data:f statusLayout2Vs2 = .data:0x8013AD94; // type:object size:0x30 scope:local data:float luckyMessTbl = .data:0x8013ADC4; // type:object size:0x24 scope:local jumptable_8013ADE8 = .data:0x8013ADE8; // type:object size:0x20 scope:local -hiliteYTbl = .data:0x8013AE08; // type:object size:0x10 scope:local +cursorYTbl = .data:0x8013AE08; // type:object size:0x10 scope:local +hiliteYTbl = .data:0x8013AE18; // type:object size:0x10 scope:local + hiliteColTbl = .data:0x8013AE28; // type:object size:0xC scope:local hostMesTbl = .data:0x8013AE38; // type:object size:0x90 scope:local houseMdlTbl = .data:0x8013AEC8; // type:object size:0x30 scope:local @@ -4549,12 +4551,12 @@ rsmpTab12khz = .data:0x80141FF0; // type:object size:0x800 scope:local padStatErrOld = .bss:0x80142800; // type:object size:0x10 scope:local rumbleData = .bss:0x80142810; // type:object size:0x20 scope:local ReadDataStat = .bss:0x80142840; // type:object size:0x2E00 scope:local align:32 data:4byte -TextBuffer = .bss:0x80145640; // type:object size:0x400 +textBuffer = .bss:0x80145640; // type:object size:0x400 scope:local rmodeobj = .bss:0x80145A40; // type:object size:0x40 scope:local HeapTbl = .bss:0x80145A80; // type:object size:0x14 scope:local strline = .bss:0x80145A98; // type:object size:0x6800 scope:local pfStrBuf = .bss:0x8014C298; // type:object size:0x100 scope:local data:byte -processjmpbuf = .bss:0x8014C398; // type:object size:0xF8 align:8 +processjmpbuf = .bss:0x8014C398; // type:object size:0xF8 scope:local align:8 HuSprData = .bss:0x8014C490; // type:object size:0x9600 HuSprGrpData = .bss:0x80155A90; // type:object size:0x5400 data:2byte HuSprOrder = .bss:0x8015AE90; // type:object size:0x1800 @@ -4609,7 +4611,7 @@ CenterM = .bss:0x801900E0; // type:object size:0xC0 CZoomM = .bss:0x801901A0; // type:object size:0x40 omDLLinfoTbl = .bss:0x801901E0; // type:object size:0x50 sndFXBuf = .bss:0x80190230; // type:object size:0x200 scope:local -charVoiceGroupStat = .bss:0x80190430; // type:object size:0x20 scope:local +charVoiceGroupStat = .bss:0x80190430; // type:object size:0x20 seqWorkData = .bss:0x80190450; // type:object size:0x400 scope:local data:4byte winnerNameW = .bss:0x80190850; // type:object size:0x10 scope:local data:2byte esprite = .bss:0x80190860; // type:object size:0x600 data:2byte @@ -4648,7 +4650,7 @@ THPFileName = .bss:0x801981A0; // type:object size:0x40 scope:local mgGameStatBackup = .bss:0x801981E0; // type:object size:0x118 mgIndexList = .bss:0x801982F8; // type:object size:0x100 mgTicTacToeGrid = .bss:0x801983F8; // type:object size:0x12 -_Sys_Flag = .bss:0x80198410; // type:object size:0x10 +_Sys_Flag = .bss:0x80198410; // type:object size:0x10 scope:local curFileInfo = .bss:0x80198420; // type:object size:0x20 saveBuf = .bss:0x80198440; // type:object size:0x4000 align:32 ToeMessageQueue = .bss:0x8019C440; // type:object size:0x20 scope:local @@ -4701,7 +4703,7 @@ spacePos = .bss:0x801A4CF0; // type:object size:0xC scope:local data:float focusPos = .bss:0x801A4CFC; // type:object size:0xC scope:local data:float hostPos = .bss:0x801A4D08; // type:object size:0xC scope:local hostMot = .bss:0x801A4D14; // type:object size:0x10 scope:local data:2byte -lotteryTicketObj = .bss:0x801A4D24; // type:object size:0x14 scope:local data:4byte +lotteryTicketObj = .bss:0x801A4D24; // type:object size:0x10 scope:local data:4byte boxRot = .bss:0x801A4D38; // type:object size:0x20 scope:local padBoxPos = .bss:0x801A4D58; // type:object size:0xC scope:local data:float pathNodeData = .bss:0x801A4D68; // type:object size:0x500 scope:local data:byte @@ -5005,7 +5007,7 @@ itemPickupMdlId = .sdata:0x801D3790; // type:object size:0x2 scope:local data:2b yourTurnSprGrp = .sdata:0x801D3792; // type:object size:0x2 scope:local data:2byte jumpMot = .sdata:0x801D3798; // type:object size:0x2 scope:local data:2byte starMdl = .sdata:0x801D379A; // type:object size:0x2 scope:local data:2byte -lbl_801D37A0 = .sdata:0x801D37A0; // type:object size:0x8 +itemMotTbl = .sdata:0x801D37A0; // type:object size:0x8 scope:local lbl_801D37A8 = .sdata:0x801D37A8; // type:object size:0x8 jumpMot = .sdata:0x801D37B0; // type:object size:0x2 scope:local data:2byte scareMot = .sdata:0x801D37B2; // type:object size:0x2 scope:local data:2byte @@ -5023,9 +5025,9 @@ houseShowMot = .sdata:0x801D37F0; // type:object size:0x2 scope:local data:2byte houseHideMot = .sdata:0x801D37F2; // type:object size:0x2 scope:local data:2byte ballMdl = .sdata:0x801D37F4; // type:object size:0x2 scope:local data:2byte booMdl = .sdata:0x801D37F6; // type:object size:0x2 scope:local data:2byte -lbl_801D37F8 = .sdata:0x801D37F8; // type:object size:0x2 scope:local data:2byte +smokeMdl = .sdata:0x801D37F8; // type:object size:0x2 scope:local data:2byte hostMdl = .sdata:0x801D37FA; // type:object size:0x2 scope:local data:2byte -houseMot = .sdata:0x801D37FC; // type:object size:0x6 scope:local data:2byte +hostMot = .sdata:0x801D37FC; // type:object size:0x6 scope:local data:2byte lbl_801D3802 = .sdata:0x801D3802; // type:object size:0x7 data:string lbl_801D3809 = .sdata:0x801D3809; // type:object size:0x7 data:string lbl_801D3810 = .sdata:0x801D3810; // type:object size:0x7 data:string @@ -5299,8 +5301,8 @@ omovlevtno = .sbss:0x801D3CD4; // type:object size:0x4 data:4byte omovlhisidx = .sbss:0x801D3CD8; // type:object size:0x4 data:4byte omcurdll = .sbss:0x801D3CDC; // type:object size:0x4 data:4byte omcurovl = .sbss:0x801D3CE0; // type:object size:0x4 data:4byte -omnextovl = .sbss:0x801D3CE4; // type:object size:0x4 data:4byte -omwatchproc = .sbss:0x801D3CE8; // type:object size:0x4 data:4byte +omnextovl = .sbss:0x801D3CE4; // type:object size:0x4 scope:local data:4byte +omwatchproc = .sbss:0x801D3CE8; // type:object size:0x4 scope:local data:4byte omDBGSysKeyObj = .sbss:0x801D3CEC; // type:object size:0x4 data:4byte y_start = .sbss:0x801D3CF0; // type:object size:0x4 scope:local data:4byte x_start = .sbss:0x801D3CF4; // type:object size:0x4 scope:local data:4byte diff --git a/config/GMPP01_00/build.sha1 b/config/GMPP01_00/build.sha1 new file mode 100644 index 00000000..3cccde01 --- /dev/null +++ b/config/GMPP01_00/build.sha1 @@ -0,0 +1,100 @@ +65ef91650e9201047f50a3c39c7693a21fff2b29 build/GMPP01_00/main.dol +7101a759bcd45edee5bbc00a36d347c1f787c2a1 build/GMPP01_00/_minigameDll/_minigameDll.rel +b60fe8dd6faa20663224d64651b80c25b9b202ef build/GMPP01_00/bootDll/bootDll.rel +eef3ac50923ab2f20d588ef10ae15f3bc739f2b8 build/GMPP01_00/instDll/instDll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPP01_00/m302Dll/m302Dll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPP01_00/m303Dll/m303Dll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPP01_00/m330Dll/m330Dll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPP01_00/m333Dll/m333Dll.rel +cd3532af828e8217924296c4cadbd31ddd915a05 build/GMPP01_00/m402Dll/m402Dll.rel +b2e3cdd9167c579e02c6ecc5643b6aadcc5b6a99 build/GMPP01_00/m403Dll/m403Dll.rel +56c825a1e0bbe33e3a0e1e70396c21af9b575243 build/GMPP01_00/m404Dll/m404Dll.rel +cc76ded0a41aea632fd9b3c5e37fe6d847107d91 build/GMPP01_00/m405Dll/m405Dll.rel +5c2aee9c8f10dc763c9ff763874f3a4b58880f02 build/GMPP01_00/m406Dll/m406Dll.rel +7133701b7c28a66f9d24ab64081e472d458dad51 build/GMPP01_00/m407dll/m407dll.rel +6f2552516b8e151ccbed99ee6730ca2cb2e0fd49 build/GMPP01_00/m408Dll/m408Dll.rel +71a91946651b40cc217b08d293f23fbf01c7407a build/GMPP01_00/m409Dll/m409Dll.rel +e938c2f354224a6a5a7b015f9abae596298788ee build/GMPP01_00/m410Dll/m410Dll.rel +e29bae44753c7ce8e5213881b10d6b27c02c4f7a build/GMPP01_00/m411Dll/m411Dll.rel +23da1cff677f992bb76dcbf4a9f9061542b4be7f build/GMPP01_00/m412Dll/m412Dll.rel +6ed381e5b4d75eeab2c3ded39473a482f61ee32d build/GMPP01_00/m413Dll/m413Dll.rel +902f32cc75ac0030c7c531dbeefda055bc8d7f27 build/GMPP01_00/m414Dll/m414Dll.rel +7063ae505540bafebf802128d8d2f394b7f6f921 build/GMPP01_00/m415Dll/m415Dll.rel +2979d5f934b9099116fbd943a91d6a3bb56e6ec0 build/GMPP01_00/m416Dll/m416Dll.rel +b20482a2af7c839456fe7580dcbd92ca9984ec71 build/GMPP01_00/m417Dll/m417Dll.rel +762f56820668c74cdcde436a08419bdb59a35a89 build/GMPP01_00/m418Dll/m418Dll.rel +5fba3dfcfca6ef78eb46833f665019bca641063e build/GMPP01_00/m419Dll/m419Dll.rel +bb514277a33821093fd2acfae2cb86531b317d17 build/GMPP01_00/m420dll/m420dll.rel +216ba8bbc8905f33370ae651d478f6bd56c17b27 build/GMPP01_00/m421Dll/m421Dll.rel +6c152ddb5f518c9c6444030dfc30ab53ef931b40 build/GMPP01_00/m422Dll/m422Dll.rel +db80fcb993ce09d808de29d2488f2b1ab2afc8cd build/GMPP01_00/m423Dll/m423Dll.rel +827da0897edcc2706a3623722430d4e70512c653 build/GMPP01_00/m424Dll/m424Dll.rel +26eb36bfc9106af2462a0d7e013f5321dbaecdd1 build/GMPP01_00/m425Dll/m425Dll.rel +04b649fb6eb248e506cf15fdcfbed3e915a80682 build/GMPP01_00/m426Dll/m426Dll.rel +810a1c91f794897862ac9b6a4e076a70c6b0238a build/GMPP01_00/m427Dll/m427Dll.rel +888af662a228e349ea6a0c60e19de74f8fa47914 build/GMPP01_00/m428Dll/m428Dll.rel +88b2330f175d1346a71f67491dcf9eff62d2d2d1 build/GMPP01_00/m429Dll/m429Dll.rel +e611007dd71ab515de65e9a6879f0508193fd58a build/GMPP01_00/m430Dll/m430Dll.rel +6a2b097a6d57c36bff5aaeb8c9ea2f01df7407ad build/GMPP01_00/m431Dll/m431Dll.rel +17b6a0c65c7cb759fc460fe7b8eed3dd7dc7184d build/GMPP01_00/m432Dll/m432Dll.rel +ce90f494ced6f2611603c247bdc733a458b5a523 build/GMPP01_00/m433Dll/m433Dll.rel +100fe402942821dc8e5753f3cada5e2bf5ab6214 build/GMPP01_00/m434Dll/m434Dll.rel +4936db381fa068395cff28c0d635c5ec7cc7218f build/GMPP01_00/m435Dll/m435Dll.rel +ba1c3bdc5f250996a5c873791347ce4c20b38692 build/GMPP01_00/m436Dll/m436Dll.rel +7273786a2995182baf9a85148c5974097999fe8e build/GMPP01_00/m437Dll/m437Dll.rel +d7c4bdf1729695a7348f8a36de2911db7aa24abb build/GMPP01_00/m438Dll/m438Dll.rel +4d5a719b49edb55e0b0b52c0d81b31c14d197d20 build/GMPP01_00/m439Dll/m439Dll.rel +469b18886221ae8a5b90f3e85b01ce6a01befb0b build/GMPP01_00/m440Dll/m440Dll.rel +7d6e99b67d2dde25d3fc75ac314c2a69be34137e build/GMPP01_00/m441Dll/m441Dll.rel +63af3c4f33fd362f17aa1be9f764d0549f92598d build/GMPP01_00/m442Dll/m442Dll.rel +5118a0bab1877455eae9002c3cc561d3360fd792 build/GMPP01_00/m443Dll/m443Dll.rel +4939f755142efe362f67898358fff1cdeffe508e build/GMPP01_00/m444dll/m444dll.rel +02f7c52aa6fd4b21a5700615aeaee9ef59e6b9f3 build/GMPP01_00/m445Dll/m445Dll.rel +2ab71adae47a3d9632dcf45cf18ca0b1fc33d157 build/GMPP01_00/m446dll/m446dll.rel +0640357fe4d0148dac4bc382c8231410e24fe951 build/GMPP01_00/m447dll/m447dll.rel +78bcdd8d1fdb810784fca4d5bbec92c63e2e6b54 build/GMPP01_00/m448Dll/m448Dll.rel +fcf6e4b0089e19ffddf01a119c8c515a4acc943a build/GMPP01_00/m449Dll/m449Dll.rel +ebcf95781e8078813ed041dd0a869ae2e413679b build/GMPP01_00/m450Dll/m450Dll.rel +aa16b743f7b64f22abfd8bb93646883cc73bd7e0 build/GMPP01_00/m451Dll/m451Dll.rel +f6fd7a6537e56c535d02ac4a48c9008605f93ea1 build/GMPP01_00/m453Dll/m453Dll.rel +cc3431f55b523d474a952f3a0e927fac6b5402ab build/GMPP01_00/m455Dll/m455Dll.rel +09797251306bbd0f6fd712d6f832128ca8c58690 build/GMPP01_00/m456Dll/m456Dll.rel +8a992a09077fd5e1f6ca3e717547792938a519c1 build/GMPP01_00/m457Dll/m457Dll.rel +5dea2127d51d621b30d78b22cfa32327797e6e0b build/GMPP01_00/m458Dll/m458Dll.rel +e96dafe5949909cb7cc839174aa38e8e6661a63b build/GMPP01_00/m459dll/m459dll.rel +ea1e0bda22675840d39c74117e2a11ffe45f8dd4 build/GMPP01_00/m460Dll/m460Dll.rel +8d515f3b92a786df53bb88291b5cfc4bc59a3c8d build/GMPP01_00/m461Dll/m461Dll.rel +f02ba47e4459d9b0de174c5619a4efe61942962d build/GMPP01_00/m462Dll/m462Dll.rel +352ad6d84ded6cf28b9ff2f9e5da8812ac9164db build/GMPP01_00/m463Dll/m463Dll.rel +4705ada9d259a81ab2815fee3516f6217d848dd9 build/GMPP01_00/mentDll/mentDll.rel +b966ce340e98dbda624ff80f96c78d51ff1ed687 build/GMPP01_00/messDll/messDll.rel +7a3fed787df2d1bc942efd56a160eaf59605b94f build/GMPP01_00/mgmodedll/mgmodedll.rel +1e5bf1777b1470fcead2174c25b291b8f0513284 build/GMPP01_00/modeltestDll/modeltestDll.rel +d958038528a774801a4f5a0aee9e7aaae4bd94ce build/GMPP01_00/modeseldll/modeseldll.rel +a3e1e06937703f98191f4080e092bf06c4f449b3 build/GMPP01_00/mpexDll/mpexDll.rel +86ff8288bb92472376d02cade1d3c9603b613c57 build/GMPP01_00/msetupDll/msetupDll.rel +ea9878a7af1787c0789d29bf812e1d9972c2ff20 build/GMPP01_00/mstory2Dll/mstory2Dll.rel +58decb3dba8e167bd2c238a55339888469a07381 build/GMPP01_00/mstory3Dll/mstory3Dll.rel +a8eee3981f4965412490cb9eef76aaa798957db1 build/GMPP01_00/mstory4Dll/mstory4Dll.rel +0fd54549734531303fb5471690cee96709833114 build/GMPP01_00/mstoryDll/mstoryDll.rel +45619d95e61d9296f25d94d7c6756f397fb89bee build/GMPP01_00/nisDll/nisDll.rel +1304967e3aa58a46492d4c736a7c86cf8a3b2e11 build/GMPP01_00/option/option.rel +7845814c6be2546930cfd8e0b9dec263fc1a959f build/GMPP01_00/present/present.rel +d9bd10433d1e2a6c0c4d9f942b766d743f99deec build/GMPP01_00/resultDll/resultDll.rel +c13262cf14f00e1d70bd65d20bbf988479816ca7 build/GMPP01_00/safDll/safDll.rel +51f53e1398c86c5a22251a457e3af86339b4b11f build/GMPP01_00/selmenuDll/selmenuDll.rel +af869e37d004f687fab2ff6897d75d6c15e31a00 build/GMPP01_00/staffDll/staffDll.rel +21de7aff7d39f8e130b4ef7602b8de85e51cf3e5 build/GMPP01_00/subchrselDll/subchrselDll.rel +70ee81af67a4f55de2fef65823583d22312f09be build/GMPP01_00/w01Dll/w01Dll.rel +33b5663ece821df4dbc50870e00de0e22e099efd build/GMPP01_00/w02Dll/w02Dll.rel +97aa16f847cdf2d6fd014f06df14c55f5f02024d build/GMPP01_00/w03Dll/w03Dll.rel +135cf03d803b9d8d39721b2a96769909aa719ee6 build/GMPP01_00/w04Dll/w04Dll.rel +e6d07092b69cc3b0514d9c12e3f5949edeb25f5f build/GMPP01_00/w05Dll/w05Dll.rel +0d5445461f58fac4c043c75bed7237b7f4045188 build/GMPP01_00/w06Dll/w06Dll.rel +5678fedd4a0490aeb9703328e959fdedea7da117 build/GMPP01_00/w10Dll/w10Dll.rel +58ae9e311cc8bd0291921480f423e2ad4774e1a2 build/GMPP01_00/w20Dll/w20Dll.rel +8ea052be8c7585a1ab152682a0698b631c5b566f build/GMPP01_00/w21Dll/w21Dll.rel +8987f11fafd11f69161ca275967afe9c8b4e7b20 build/GMPP01_00/ztardll/ztardll.rel +d59c60b0149a85782fa98d1a4da6cc768a09b473 build/GMPP01_00/E3setupDLL/E3setupDLL.rel +eba8a17e8b263bc9cd601b1aea7e698a8785416a build/GMPP01_00/m300Dll/m300Dll.rel +c457a4a45ebae776331484ba94f5798041a77a57 build/GMPP01_00/m401Dll/m401Dll.rel diff --git a/config/GMPP01_00/config.yml b/config/GMPP01_00/config.yml new file mode 100644 index 00000000..352ced1a --- /dev/null +++ b/config/GMPP01_00/config.yml @@ -0,0 +1,657 @@ +object_base: orig/GMPP01_00 +object: sys/main.dol +hash: 65ef91650e9201047f50a3c39c7693a21fff2b29 +symbols: config/GMPP01_00/symbols.txt +splits: config/GMPP01_00/splits.txt +quick_analysis: false # Faster re-runs after initial analysis +mw_comment_version: 10 # GC 2.6 linker +force_active: [__register_global_object, lbl_801D40D0] + +detect_objects: true +detect_strings: true +fill_gaps: true +modules: +- object: files/dll/_minigameDll.rel + hash: 7101a759bcd45edee5bbc00a36d347c1f787c2a1 + symbols: config/GMPP01_00/rels/_minigameDll/symbols.txt + splits: config/GMPP01_00/rels/_minigameDll/splits.txt + links: [] +- object: files/dll/bootDll.rel + hash: b60fe8dd6faa20663224d64651b80c25b9b202ef + symbols: config/GMPP01_00/rels/bootDll/symbols.txt + splits: config/GMPP01_00/rels/bootDll/splits.txt + links: [] +- object: files/dll/instDll.rel + hash: eef3ac50923ab2f20d588ef10ae15f3bc739f2b8 + symbols: config/GMPP01_00/rels/instDll/symbols.txt + splits: config/GMPP01_00/rels/instDll/splits.txt + links: [] +- object: files/dll/m302Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPP01_00/rels/m302Dll/symbols.txt + splits: config/GMPP01_00/rels/m302Dll/splits.txt + links: [] +- object: files/dll/m303Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPP01_00/rels/m303Dll/symbols.txt + splits: config/GMPP01_00/rels/m303Dll/splits.txt + links: [] +- object: files/dll/m330Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPP01_00/rels/m330Dll/symbols.txt + splits: config/GMPP01_00/rels/m330Dll/splits.txt + links: [] +- object: files/dll/m333Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPP01_00/rels/m333Dll/symbols.txt + splits: config/GMPP01_00/rels/m333Dll/splits.txt + links: [] +- object: files/dll/m402Dll.rel + hash: cd3532af828e8217924296c4cadbd31ddd915a05 + symbols: config/GMPP01_00/rels/m402Dll/symbols.txt + splits: config/GMPP01_00/rels/m402Dll/splits.txt + links: [] +- object: files/dll/m403Dll.rel + hash: b2e3cdd9167c579e02c6ecc5643b6aadcc5b6a99 + symbols: config/GMPP01_00/rels/m403Dll/symbols.txt + splits: config/GMPP01_00/rels/m403Dll/splits.txt + links: [] +- object: files/dll/m404Dll.rel + hash: 56c825a1e0bbe33e3a0e1e70396c21af9b575243 + symbols: config/GMPP01_00/rels/m404Dll/symbols.txt + splits: config/GMPP01_00/rels/m404Dll/splits.txt + links: [] +- object: files/dll/m405Dll.rel + hash: cc76ded0a41aea632fd9b3c5e37fe6d847107d91 + symbols: config/GMPP01_00/rels/m405Dll/symbols.txt + splits: config/GMPP01_00/rels/m405Dll/splits.txt + links: [] +- object: files/dll/m406Dll.rel + hash: 5c2aee9c8f10dc763c9ff763874f3a4b58880f02 + symbols: config/GMPP01_00/rels/m406Dll/symbols.txt + splits: config/GMPP01_00/rels/m406Dll/splits.txt + links: [] +- object: files/dll/m407dll.rel + hash: 7133701b7c28a66f9d24ab64081e472d458dad51 + symbols: config/GMPP01_00/rels/m407dll/symbols.txt + splits: config/GMPP01_00/rels/m407dll/splits.txt + links: [] +- object: files/dll/m408Dll.rel + hash: 6f2552516b8e151ccbed99ee6730ca2cb2e0fd49 + symbols: config/GMPP01_00/rels/m408Dll/symbols.txt + splits: config/GMPP01_00/rels/m408Dll/splits.txt + links: [] +- object: files/dll/m409Dll.rel + hash: 71a91946651b40cc217b08d293f23fbf01c7407a + symbols: config/GMPP01_00/rels/m409Dll/symbols.txt + splits: config/GMPP01_00/rels/m409Dll/splits.txt + links: [] +- object: files/dll/m410Dll.rel + hash: e938c2f354224a6a5a7b015f9abae596298788ee + symbols: config/GMPP01_00/rels/m410Dll/symbols.txt + splits: config/GMPP01_00/rels/m410Dll/splits.txt + links: [] +- object: files/dll/m411Dll.rel + hash: e29bae44753c7ce8e5213881b10d6b27c02c4f7a + symbols: config/GMPP01_00/rels/m411Dll/symbols.txt + splits: config/GMPP01_00/rels/m411Dll/splits.txt + links: [] +- object: files/dll/m412Dll.rel + hash: 23da1cff677f992bb76dcbf4a9f9061542b4be7f + symbols: config/GMPP01_00/rels/m412Dll/symbols.txt + splits: config/GMPP01_00/rels/m412Dll/splits.txt + links: [] +- object: files/dll/m413Dll.rel + hash: 6ed381e5b4d75eeab2c3ded39473a482f61ee32d + symbols: config/GMPP01_00/rels/m413Dll/symbols.txt + splits: config/GMPP01_00/rels/m413Dll/splits.txt + links: [] +- object: files/dll/m414Dll.rel + hash: 902f32cc75ac0030c7c531dbeefda055bc8d7f27 + symbols: config/GMPP01_00/rels/m414Dll/symbols.txt + splits: config/GMPP01_00/rels/m414Dll/splits.txt + links: [] +- object: files/dll/m415Dll.rel + hash: 7063ae505540bafebf802128d8d2f394b7f6f921 + symbols: config/GMPP01_00/rels/m415Dll/symbols.txt + splits: config/GMPP01_00/rels/m415Dll/splits.txt + links: [] +- object: files/dll/m416Dll.rel + hash: 2979d5f934b9099116fbd943a91d6a3bb56e6ec0 + symbols: config/GMPP01_00/rels/m416Dll/symbols.txt + splits: config/GMPP01_00/rels/m416Dll/splits.txt + links: [] +- object: files/dll/m417Dll.rel + hash: b20482a2af7c839456fe7580dcbd92ca9984ec71 + symbols: config/GMPP01_00/rels/m417Dll/symbols.txt + splits: config/GMPP01_00/rels/m417Dll/splits.txt + links: [] +- object: files/dll/m418Dll.rel + hash: 762f56820668c74cdcde436a08419bdb59a35a89 + symbols: config/GMPP01_00/rels/m418Dll/symbols.txt + splits: config/GMPP01_00/rels/m418Dll/splits.txt + links: [] +- object: files/dll/m419Dll.rel + hash: 5fba3dfcfca6ef78eb46833f665019bca641063e + symbols: config/GMPP01_00/rels/m419Dll/symbols.txt + splits: config/GMPP01_00/rels/m419Dll/splits.txt + links: [] +- object: files/dll/m420dll.rel + hash: bb514277a33821093fd2acfae2cb86531b317d17 + symbols: config/GMPP01_00/rels/m420dll/symbols.txt + splits: config/GMPP01_00/rels/m420dll/splits.txt + links: [] +- object: files/dll/m421Dll.rel + hash: 216ba8bbc8905f33370ae651d478f6bd56c17b27 + symbols: config/GMPP01_00/rels/m421Dll/symbols.txt + splits: config/GMPP01_00/rels/m421Dll/splits.txt + links: [] +- object: files/dll/m422Dll.rel + hash: 6c152ddb5f518c9c6444030dfc30ab53ef931b40 + symbols: config/GMPP01_00/rels/m422Dll/symbols.txt + splits: config/GMPP01_00/rels/m422Dll/splits.txt + links: [] +- object: files/dll/m423Dll.rel + hash: db80fcb993ce09d808de29d2488f2b1ab2afc8cd + symbols: config/GMPP01_00/rels/m423Dll/symbols.txt + splits: config/GMPP01_00/rels/m423Dll/splits.txt + links: [] +- object: files/dll/m424Dll.rel + hash: 827da0897edcc2706a3623722430d4e70512c653 + symbols: config/GMPP01_00/rels/m424Dll/symbols.txt + splits: config/GMPP01_00/rels/m424Dll/splits.txt + links: [] +- object: files/dll/m425Dll.rel + hash: 26eb36bfc9106af2462a0d7e013f5321dbaecdd1 + symbols: config/GMPP01_00/rels/m425Dll/symbols.txt + splits: config/GMPP01_00/rels/m425Dll/splits.txt + links: [] +- object: files/dll/m426Dll.rel + hash: 04b649fb6eb248e506cf15fdcfbed3e915a80682 + symbols: config/GMPP01_00/rels/m426Dll/symbols.txt + splits: config/GMPP01_00/rels/m426Dll/splits.txt + links: [] +- object: files/dll/m427Dll.rel + hash: 810a1c91f794897862ac9b6a4e076a70c6b0238a + symbols: config/GMPP01_00/rels/m427Dll/symbols.txt + splits: config/GMPP01_00/rels/m427Dll/splits.txt + links: [] +- object: files/dll/m428Dll.rel + hash: 888af662a228e349ea6a0c60e19de74f8fa47914 + symbols: config/GMPP01_00/rels/m428Dll/symbols.txt + splits: config/GMPP01_00/rels/m428Dll/splits.txt + links: [] +- object: files/dll/m429Dll.rel + hash: 88b2330f175d1346a71f67491dcf9eff62d2d2d1 + symbols: config/GMPP01_00/rels/m429Dll/symbols.txt + splits: config/GMPP01_00/rels/m429Dll/splits.txt + links: [] +- object: files/dll/m430Dll.rel + hash: e611007dd71ab515de65e9a6879f0508193fd58a + symbols: config/GMPP01_00/rels/m430Dll/symbols.txt + splits: config/GMPP01_00/rels/m430Dll/splits.txt + links: [] +- object: files/dll/m431Dll.rel + hash: 6a2b097a6d57c36bff5aaeb8c9ea2f01df7407ad + symbols: config/GMPP01_00/rels/m431Dll/symbols.txt + splits: config/GMPP01_00/rels/m431Dll/splits.txt + links: [] +- object: files/dll/m432Dll.rel + hash: 17b6a0c65c7cb759fc460fe7b8eed3dd7dc7184d + symbols: config/GMPP01_00/rels/m432Dll/symbols.txt + splits: config/GMPP01_00/rels/m432Dll/splits.txt + links: [] +- object: files/dll/m433Dll.rel + hash: ce90f494ced6f2611603c247bdc733a458b5a523 + symbols: config/GMPP01_00/rels/m433Dll/symbols.txt + splits: config/GMPP01_00/rels/m433Dll/splits.txt + links: [] +- object: files/dll/m434Dll.rel + hash: 100fe402942821dc8e5753f3cada5e2bf5ab6214 + symbols: config/GMPP01_00/rels/m434Dll/symbols.txt + splits: config/GMPP01_00/rels/m434Dll/splits.txt + links: [] +- object: files/dll/m435Dll.rel + hash: 4936db381fa068395cff28c0d635c5ec7cc7218f + symbols: config/GMPP01_00/rels/m435Dll/symbols.txt + splits: config/GMPP01_00/rels/m435Dll/splits.txt + links: [] +- object: files/dll/m436Dll.rel + hash: ba1c3bdc5f250996a5c873791347ce4c20b38692 + symbols: config/GMPP01_00/rels/m436Dll/symbols.txt + splits: config/GMPP01_00/rels/m436Dll/splits.txt + links: [] +- object: files/dll/m437Dll.rel + hash: 7273786a2995182baf9a85148c5974097999fe8e + symbols: config/GMPP01_00/rels/m437Dll/symbols.txt + splits: config/GMPP01_00/rels/m437Dll/splits.txt + links: [] +- object: files/dll/m438Dll.rel + hash: d7c4bdf1729695a7348f8a36de2911db7aa24abb + symbols: config/GMPP01_00/rels/m438Dll/symbols.txt + splits: config/GMPP01_00/rels/m438Dll/splits.txt + links: [] +- object: files/dll/m439Dll.rel + hash: 4d5a719b49edb55e0b0b52c0d81b31c14d197d20 + symbols: config/GMPP01_00/rels/m439Dll/symbols.txt + splits: config/GMPP01_00/rels/m439Dll/splits.txt + links: [] +- object: files/dll/m440Dll.rel + hash: 469b18886221ae8a5b90f3e85b01ce6a01befb0b + symbols: config/GMPP01_00/rels/m440Dll/symbols.txt + splits: config/GMPP01_00/rels/m440Dll/splits.txt + links: [] +- object: files/dll/m441Dll.rel + hash: 7d6e99b67d2dde25d3fc75ac314c2a69be34137e + symbols: config/GMPP01_00/rels/m441Dll/symbols.txt + splits: config/GMPP01_00/rels/m441Dll/splits.txt + links: [] +- object: files/dll/m442Dll.rel + hash: 63af3c4f33fd362f17aa1be9f764d0549f92598d + symbols: config/GMPP01_00/rels/m442Dll/symbols.txt + splits: config/GMPP01_00/rels/m442Dll/splits.txt + links: [] +- object: files/dll/m443Dll.rel + hash: 5118a0bab1877455eae9002c3cc561d3360fd792 + symbols: config/GMPP01_00/rels/m443Dll/symbols.txt + splits: config/GMPP01_00/rels/m443Dll/splits.txt + links: [] +- object: files/dll/m444dll.rel + hash: 4939f755142efe362f67898358fff1cdeffe508e + symbols: config/GMPP01_00/rels/m444dll/symbols.txt + splits: config/GMPP01_00/rels/m444dll/splits.txt + links: [] +- object: files/dll/m445Dll.rel + hash: 02f7c52aa6fd4b21a5700615aeaee9ef59e6b9f3 + symbols: config/GMPP01_00/rels/m445Dll/symbols.txt + splits: config/GMPP01_00/rels/m445Dll/splits.txt + links: [] +- object: files/dll/m446dll.rel + hash: 2ab71adae47a3d9632dcf45cf18ca0b1fc33d157 + symbols: config/GMPP01_00/rels/m446dll/symbols.txt + splits: config/GMPP01_00/rels/m446dll/splits.txt + links: [] +- object: files/dll/m447dll.rel + hash: 0640357fe4d0148dac4bc382c8231410e24fe951 + symbols: config/GMPP01_00/rels/m447dll/symbols.txt + splits: config/GMPP01_00/rels/m447dll/splits.txt + links: [] +- object: files/dll/m448Dll.rel + hash: 78bcdd8d1fdb810784fca4d5bbec92c63e2e6b54 + symbols: config/GMPP01_00/rels/m448Dll/symbols.txt + splits: config/GMPP01_00/rels/m448Dll/splits.txt + links: [] +- object: files/dll/m449Dll.rel + hash: fcf6e4b0089e19ffddf01a119c8c515a4acc943a + symbols: config/GMPP01_00/rels/m449Dll/symbols.txt + splits: config/GMPP01_00/rels/m449Dll/splits.txt + links: [] +- object: files/dll/m450Dll.rel + hash: ebcf95781e8078813ed041dd0a869ae2e413679b + symbols: config/GMPP01_00/rels/m450Dll/symbols.txt + splits: config/GMPP01_00/rels/m450Dll/splits.txt + links: [] +- object: files/dll/m451Dll.rel + hash: aa16b743f7b64f22abfd8bb93646883cc73bd7e0 + symbols: config/GMPP01_00/rels/m451Dll/symbols.txt + splits: config/GMPP01_00/rels/m451Dll/splits.txt + links: [] +- object: files/dll/m453Dll.rel + hash: f6fd7a6537e56c535d02ac4a48c9008605f93ea1 + symbols: config/GMPP01_00/rels/m453Dll/symbols.txt + splits: config/GMPP01_00/rels/m453Dll/splits.txt + links: [] +- object: files/dll/m455Dll.rel + hash: cc3431f55b523d474a952f3a0e927fac6b5402ab + symbols: config/GMPP01_00/rels/m455Dll/symbols.txt + splits: config/GMPP01_00/rels/m455Dll/splits.txt + links: [] +- object: files/dll/m456Dll.rel + hash: 09797251306bbd0f6fd712d6f832128ca8c58690 + symbols: config/GMPP01_00/rels/m456Dll/symbols.txt + splits: config/GMPP01_00/rels/m456Dll/splits.txt + links: [] +- object: files/dll/m457Dll.rel + hash: 8a992a09077fd5e1f6ca3e717547792938a519c1 + symbols: config/GMPP01_00/rels/m457Dll/symbols.txt + splits: config/GMPP01_00/rels/m457Dll/splits.txt + links: [] +- object: files/dll/m458Dll.rel + hash: 5dea2127d51d621b30d78b22cfa32327797e6e0b + symbols: config/GMPP01_00/rels/m458Dll/symbols.txt + splits: config/GMPP01_00/rels/m458Dll/splits.txt + links: [] +- object: files/dll/m459dll.rel + hash: e96dafe5949909cb7cc839174aa38e8e6661a63b + symbols: config/GMPP01_00/rels/m459dll/symbols.txt + splits: config/GMPP01_00/rels/m459dll/splits.txt + links: [] +- object: files/dll/m460Dll.rel + hash: ea1e0bda22675840d39c74117e2a11ffe45f8dd4 + symbols: config/GMPP01_00/rels/m460Dll/symbols.txt + splits: config/GMPP01_00/rels/m460Dll/splits.txt + links: [] +- object: files/dll/m461Dll.rel + hash: 8d515f3b92a786df53bb88291b5cfc4bc59a3c8d + symbols: config/GMPP01_00/rels/m461Dll/symbols.txt + splits: config/GMPP01_00/rels/m461Dll/splits.txt + links: [] +- object: files/dll/m462Dll.rel + hash: f02ba47e4459d9b0de174c5619a4efe61942962d + symbols: config/GMPP01_00/rels/m462Dll/symbols.txt + splits: config/GMPP01_00/rels/m462Dll/splits.txt + links: [] +- object: files/dll/m463Dll.rel + hash: 352ad6d84ded6cf28b9ff2f9e5da8812ac9164db + symbols: config/GMPP01_00/rels/m463Dll/symbols.txt + splits: config/GMPP01_00/rels/m463Dll/splits.txt + links: [] +- object: files/dll/mentDll.rel + hash: 4705ada9d259a81ab2815fee3516f6217d848dd9 + symbols: config/GMPP01_00/rels/mentDll/symbols.txt + splits: config/GMPP01_00/rels/mentDll/splits.txt + links: [] +- object: files/dll/messDll.rel + hash: b966ce340e98dbda624ff80f96c78d51ff1ed687 + symbols: config/GMPP01_00/rels/messDll/symbols.txt + splits: config/GMPP01_00/rels/messDll/splits.txt + links: [] +- object: files/dll/mgmodedll.rel + hash: 7a3fed787df2d1bc942efd56a160eaf59605b94f + symbols: config/GMPP01_00/rels/mgmodedll/symbols.txt + splits: config/GMPP01_00/rels/mgmodedll/splits.txt + links: [] +- object: files/dll/modeltestDll.rel + hash: 1e5bf1777b1470fcead2174c25b291b8f0513284 + symbols: config/GMPP01_00/rels/modeltestDll/symbols.txt + splits: config/GMPP01_00/rels/modeltestDll/splits.txt + links: [] +- object: files/dll/modeseldll.rel + hash: d958038528a774801a4f5a0aee9e7aaae4bd94ce + symbols: config/GMPP01_00/rels/modeseldll/symbols.txt + splits: config/GMPP01_00/rels/modeseldll/splits.txt + links: [] +- object: files/dll/mpexDll.rel + hash: a3e1e06937703f98191f4080e092bf06c4f449b3 + symbols: config/GMPP01_00/rels/mpexDll/symbols.txt + splits: config/GMPP01_00/rels/mpexDll/splits.txt + links: [] +- object: files/dll/msetupDll.rel + hash: 86ff8288bb92472376d02cade1d3c9603b613c57 + symbols: config/GMPP01_00/rels/msetupDll/symbols.txt + splits: config/GMPP01_00/rels/msetupDll/splits.txt + links: [] +- object: files/dll/mstory2Dll.rel + hash: ea9878a7af1787c0789d29bf812e1d9972c2ff20 + symbols: config/GMPP01_00/rels/mstory2Dll/symbols.txt + splits: config/GMPP01_00/rels/mstory2Dll/splits.txt + links: [] +- object: files/dll/mstory3Dll.rel + hash: 58decb3dba8e167bd2c238a55339888469a07381 + symbols: config/GMPP01_00/rels/mstory3Dll/symbols.txt + splits: config/GMPP01_00/rels/mstory3Dll/splits.txt + links: [] +- object: files/dll/mstory4Dll.rel + hash: a8eee3981f4965412490cb9eef76aaa798957db1 + symbols: config/GMPP01_00/rels/mstory4Dll/symbols.txt + splits: config/GMPP01_00/rels/mstory4Dll/splits.txt + links: [] +- object: files/dll/mstoryDll.rel + hash: 0fd54549734531303fb5471690cee96709833114 + symbols: config/GMPP01_00/rels/mstoryDll/symbols.txt + splits: config/GMPP01_00/rels/mstoryDll/splits.txt + links: [] +- object: files/dll/nisDll.rel + hash: 45619d95e61d9296f25d94d7c6756f397fb89bee + symbols: config/GMPP01_00/rels/nisDll/symbols.txt + splits: config/GMPP01_00/rels/nisDll/splits.txt + links: [] +- object: files/dll/option.rel + hash: 1304967e3aa58a46492d4c736a7c86cf8a3b2e11 + symbols: config/GMPP01_00/rels/option/symbols.txt + splits: config/GMPP01_00/rels/option/splits.txt + links: [] +- object: files/dll/present.rel + hash: 7845814c6be2546930cfd8e0b9dec263fc1a959f + symbols: config/GMPP01_00/rels/present/symbols.txt + splits: config/GMPP01_00/rels/present/splits.txt + links: [] +- object: files/dll/resultDll.rel + hash: d9bd10433d1e2a6c0c4d9f942b766d743f99deec + symbols: config/GMPP01_00/rels/resultDll/symbols.txt + splits: config/GMPP01_00/rels/resultDll/splits.txt + links: [] +- object: files/dll/safDll.rel + hash: c13262cf14f00e1d70bd65d20bbf988479816ca7 + symbols: config/GMPP01_00/rels/safDll/symbols.txt + splits: config/GMPP01_00/rels/safDll/splits.txt + links: [] +- object: files/dll/selmenuDll.rel + hash: 51f53e1398c86c5a22251a457e3af86339b4b11f + symbols: config/GMPP01_00/rels/selmenuDll/symbols.txt + splits: config/GMPP01_00/rels/selmenuDll/splits.txt + links: [] +- object: files/dll/staffDll.rel + hash: af869e37d004f687fab2ff6897d75d6c15e31a00 + symbols: config/GMPP01_00/rels/staffDll/symbols.txt + splits: config/GMPP01_00/rels/staffDll/splits.txt + links: [] +- object: files/dll/subchrselDll.rel + hash: 21de7aff7d39f8e130b4ef7602b8de85e51cf3e5 + symbols: config/GMPP01_00/rels/subchrselDll/symbols.txt + splits: config/GMPP01_00/rels/subchrselDll/splits.txt + links: [] +- object: files/dll/w01Dll.rel + hash: 70ee81af67a4f55de2fef65823583d22312f09be + symbols: config/GMPP01_00/rels/w01Dll/symbols.txt + splits: config/GMPP01_00/rels/w01Dll/splits.txt + links: [] +- object: files/dll/w02Dll.rel + hash: 33b5663ece821df4dbc50870e00de0e22e099efd + symbols: config/GMPP01_00/rels/w02Dll/symbols.txt + splits: config/GMPP01_00/rels/w02Dll/splits.txt + links: [] +- object: files/dll/w03Dll.rel + hash: 97aa16f847cdf2d6fd014f06df14c55f5f02024d + symbols: config/GMPP01_00/rels/w03Dll/symbols.txt + splits: config/GMPP01_00/rels/w03Dll/splits.txt + links: [] +- object: files/dll/w04Dll.rel + hash: 135cf03d803b9d8d39721b2a96769909aa719ee6 + symbols: config/GMPP01_00/rels/w04Dll/symbols.txt + splits: config/GMPP01_00/rels/w04Dll/splits.txt + links: [] +- object: files/dll/w05Dll.rel + hash: e6d07092b69cc3b0514d9c12e3f5949edeb25f5f + symbols: config/GMPP01_00/rels/w05Dll/symbols.txt + splits: config/GMPP01_00/rels/w05Dll/splits.txt + links: [] +- object: files/dll/w06Dll.rel + hash: 0d5445461f58fac4c043c75bed7237b7f4045188 + symbols: config/GMPP01_00/rels/w06Dll/symbols.txt + splits: config/GMPP01_00/rels/w06Dll/splits.txt + links: [] +- object: files/dll/w10Dll.rel + hash: 5678fedd4a0490aeb9703328e959fdedea7da117 + symbols: config/GMPP01_00/rels/w10Dll/symbols.txt + splits: config/GMPP01_00/rels/w10Dll/splits.txt + links: [] +- object: files/dll/w20Dll.rel + hash: 58ae9e311cc8bd0291921480f423e2ad4774e1a2 + symbols: config/GMPP01_00/rels/w20Dll/symbols.txt + splits: config/GMPP01_00/rels/w20Dll/splits.txt + links: [] +- object: files/dll/w21Dll.rel + hash: 8ea052be8c7585a1ab152682a0698b631c5b566f + symbols: config/GMPP01_00/rels/w21Dll/symbols.txt + splits: config/GMPP01_00/rels/w21Dll/splits.txt + links: [] +- object: files/dll/ztardll.rel + hash: 8987f11fafd11f69161ca275967afe9c8b4e7b20 + symbols: config/GMPP01_00/rels/ztardll/symbols.txt + splits: config/GMPP01_00/rels/ztardll/splits.txt + links: [] +- object: files/dll/E3setupDLL.rel + hash: d59c60b0149a85782fa98d1a4da6cc768a09b473 + symbols: config/GMPP01_00/rels/E3setupDLL/symbols.txt + splits: config/GMPP01_00/rels/E3setupDLL/splits.txt + links: [_minigameDll] +- object: files/dll/m300Dll.rel + hash: eba8a17e8b263bc9cd601b1aea7e698a8785416a + symbols: config/GMPP01_00/rels/m300Dll/symbols.txt + splits: config/GMPP01_00/rels/m300Dll/splits.txt + links: [_minigameDll] +- object: files/dll/m401Dll.rel + hash: c457a4a45ebae776331484ba94f5798041a77a57 + symbols: config/GMPP01_00/rels/m401Dll/symbols.txt + splits: config/GMPP01_00/rels/m401Dll/splits.txt + links: [_minigameDll] + +extract: +- symbol: ank8x8_4b + binary: ank8x8_4b.bin + header: ank8x8_4b.inc +- symbol: refMapData0 + binary: refMapData0.anm + header: refMapData0.inc +- symbol: refMapData1 + binary: refMapData1.anm + header: refMapData1.inc +- symbol: refMapData2 + binary: refMapData2.anm + header: refMapData2.inc +- symbol: refMapData3 + binary: refMapData3.anm + header: refMapData3.inc +- symbol: refMapData4 + binary: refMapData4.anm + header: refMapData4.inc +- symbol: toonMapData + binary: toonMapData.anm + header: toonMapData.inc +- symbol: toonMapData2 + binary: toonMapData2.anm + header: toonMapData2.inc +- symbol: hiliteData + binary: hiliteData.anm + header: hiliteData.inc +- symbol: hiliteData2 + binary: hiliteData2.anm + header: hiliteData2.inc +- symbol: hiliteData3 + binary: hiliteData3.anm + header: hiliteData3.inc +- symbol: hiliteData4 + binary: hiliteData4.anm + header: hiliteData4.inc +- symbol: Ascii8x8_1bpp + binary: Ascii8x8_1bpp.bin + header: Ascii8x8_1bpp.inc +- symbol: coveropen_en + binary: coveropen_en.bin + header: coveropen_en.inc +- symbol: fatalerror_en + binary: fatalerror_en.bin + header: fatalerror_en.inc +- symbol: loading_en + binary: loading_en.bin + header: loading_en.inc +- symbol: nodisc_en + binary: nodisc_en.bin + header: nodisc_en.inc +- symbol: retryerror_en + binary: retryerror_en.bin + header: retryerror_en.inc +- symbol: wrongdisc_en + binary: wrongdisc_en.bin + header: wrongdisc_en.inc +- symbol: coveropen_en + binary: coveropen_en.bin + header: coveropen_en.inc +- symbol: fatalerror_en + binary: fatalerror_en.bin + header: fatalerror_en.inc +- symbol: loading_en + binary: loading_en.bin + header: loading_en.inc +- symbol: nodisc_en + binary: nodisc_en.bin + header: nodisc_en.inc +- symbol: retryerror_en + binary: retryerror_en.bin + header: retryerror_en.inc +- symbol: wrongdisc_en + binary: wrongdisc_en.bin + header: wrongdisc_en.inc +- symbol: coveropen_fr + binary: coveropen_fr.bin + header: coveropen_fr.inc +- symbol: fatalerror_fr + binary: fatalerror_fr.bin + header: fatalerror_fr.inc +- symbol: loading_fr + binary: loading_fr.bin + header: loading_fr.inc +- symbol: nodisc_fr + binary: nodisc_fr.bin + header: nodisc_fr.inc +- symbol: retryerror_fr + binary: retryerror_fr.bin + header: retryerror_fr.inc +- symbol: wrongdisc_fr + binary: wrongdisc_fr.bin + header: wrongdisc_fr.inc +- symbol: coveropen_ge + binary: coveropen_ge.bin + header: coveropen_ge.inc +- symbol: fatalerror_ge + binary: fatalerror_ge.bin + header: fatalerror_ge.inc +- symbol: loading_ge + binary: loading_ge.bin + header: loading_ge.inc +- symbol: nodisc_ge + binary: nodisc_ge.bin + header: nodisc_ge.inc +- symbol: retryerror_ge + binary: retryerror_ge.bin + header: retryerror_ge.inc +- symbol: wrongdisc_ge + binary: wrongdisc_ge.bin + header: wrongdisc_ge.inc +- symbol: coveropen_it + binary: coveropen_it.bin + header: coveropen_it.inc +- symbol: fatalerror_it + binary: fatalerror_it.bin + header: fatalerror_it.inc +- symbol: loading_it + binary: loading_it.bin + header: loading_it.inc +- symbol: nodisc_it + binary: nodisc_it.bin + header: nodisc_it.inc +- symbol: retryerror_it + binary: retryerror_it.bin + header: retryerror_it.inc +- symbol: wrongdisc_it + binary: wrongdisc_it.bin + header: wrongdisc_it.inc +- symbol: coveropen_sp + binary: coveropen_sp.bin + header: coveropen_sp.inc +- symbol: fatalerror_sp + binary: fatalerror_sp.bin + header: fatalerror_sp.inc +- symbol: loading_sp + binary: loading_sp.bin + header: loading_sp.inc +- symbol: nodisc_sp + binary: nodisc_sp.bin + header: nodisc_sp.inc +- symbol: retryerror_sp + binary: retryerror_sp.bin + header: retryerror_sp.inc +- symbol: wrongdisc_sp + binary: wrongdisc_sp.bin + header: wrongdisc_sp.inc \ No newline at end of file diff --git a/config/GMPP01_00/rels/E3setupDLL/splits.txt b/config/GMPP01_00/rels/E3setupDLL/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/E3setupDLL/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/E3setupDLL/symbols.txt b/config/GMPP01_00/rels/E3setupDLL/symbols.txt new file mode 100644 index 00000000..382731fd --- /dev/null +++ b/config/GMPP01_00/rels/E3setupDLL/symbols.txt @@ -0,0 +1,192 @@ +fn_2_0 = .text:0x00000000; // type:function size:0x324 +fn_2_324 = .text:0x00000324; // type:function size:0x9C +fn_2_3C0 = .text:0x000003C0; // type:function size:0xA0 +fn_2_460 = .text:0x00000460; // type:function size:0x584 +fn_2_9E4 = .text:0x000009E4; // type:function size:0x528 +fn_2_F0C = .text:0x00000F0C; // type:function size:0x80 +fn_2_F8C = .text:0x00000F8C; // type:function size:0x1AC +fn_2_1138 = .text:0x00001138; // type:function size:0x14 +fn_2_114C = .text:0x0000114C; // type:function size:0x1F0 +_prolog = .text:0x0000133C; // type:function size:0x54 scope:global +_epilog = .text:0x00001390; // type:function size:0x4C scope:global +fn_2_13DC = .text:0x000013DC; // type:function size:0x108 +fn_2_14E4 = .text:0x000014E4; // type:function size:0x514 +fn_2_19F8 = .text:0x000019F8; // type:function size:0x1AC +fn_2_1BA4 = .text:0x00001BA4; // type:function size:0x7C +fn_2_1C20 = .text:0x00001C20; // type:function size:0x84 +fn_2_1CA4 = .text:0x00001CA4; // type:function size:0x90 +fn_2_1D34 = .text:0x00001D34; // type:function size:0x24 +fn_2_1D58 = .text:0x00001D58; // type:function size:0xFC +fn_2_1E54 = .text:0x00001E54; // type:function size:0x1C0 +fn_2_2014 = .text:0x00002014; // type:function size:0x78 +fn_2_208C = .text:0x0000208C; // type:function size:0x2C +fn_2_20B8 = .text:0x000020B8; // type:function size:0xA4 +fn_2_215C = .text:0x0000215C; // type:function size:0x400 +fn_2_255C = .text:0x0000255C; // type:function size:0x124 +fn_2_2680 = .text:0x00002680; // type:function size:0x74 +fn_2_26F4 = .text:0x000026F4; // type:function size:0x344 +fn_2_2A38 = .text:0x00002A38; // type:function size:0x59C +fn_2_2FD4 = .text:0x00002FD4; // type:function size:0x208 +fn_2_31DC = .text:0x000031DC; // type:function size:0x37C +fn_2_3558 = .text:0x00003558; // type:function size:0x3B4 +fn_2_390C = .text:0x0000390C; // type:function size:0xAC +fn_2_39B8 = .text:0x000039B8; // type:function size:0x2B8 +fn_2_3C70 = .text:0x00003C70; // type:function size:0x534 +fn_2_41A4 = .text:0x000041A4; // type:function size:0x2DC +fn_2_4480 = .text:0x00004480; // type:function size:0x520 +fn_2_49A0 = .text:0x000049A0; // type:function size:0x59C +fn_2_4F3C = .text:0x00004F3C; // type:function size:0x4E8 +fn_2_5424 = .text:0x00005424; // type:function size:0x100 +fn_2_5524 = .text:0x00005524; // type:function size:0x184 +fn_2_56A8 = .text:0x000056A8; // type:function size:0x7C +fn_2_5724 = .text:0x00005724; // type:function size:0x12C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_2_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_2_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_2_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_2_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_2_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_2_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_2_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_2_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_2_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_2_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_2_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_2_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_2_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_2_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_2_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_2_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_2_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_2_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_2_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_2_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_2_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_2_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_2_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_2_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_2_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_2_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_2_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_2_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_2_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:float +lbl_2_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_2_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_2_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_2_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_2_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_2_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_2_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_2_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_2_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_2_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_2_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_2_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_2_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_2_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_2_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_2_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_2_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_2_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_2_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_2_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_2_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_2_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_2_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_2_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_2_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_2_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_2_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_2_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_2_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_2_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_2_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_2_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_2_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_2_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_2_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_2_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_2_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_2_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_2_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_2_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_2_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_2_data_24 = .data:0x00000024; // type:object size:0x1A +lbl_2_data_3E = .data:0x0000003E; // type:object size:0x1A +lbl_2_data_58 = .data:0x00000058; // type:object size:0x1C +lbl_2_data_74 = .data:0x00000074; // type:object size:0x34 +lbl_2_data_A8 = .data:0x000000A8; // type:object size:0x21 +lbl_2_data_C9 = .data:0x000000C9; // type:object size:0x16 +lbl_2_data_DF = .data:0x000000DF; // type:object size:0x16 +lbl_2_data_F5 = .data:0x000000F5; // type:object size:0x16 +lbl_2_data_10B = .data:0x0000010B; // type:object size:0xD +lbl_2_data_118 = .data:0x00000118; // type:object size:0x16 +lbl_2_data_12E = .data:0x0000012E; // type:object size:0xD +lbl_2_data_13B = .data:0x0000013B; // type:object size:0x16 +lbl_2_data_151 = .data:0x00000151; // type:object size:0x16 +lbl_2_data_167 = .data:0x00000167; // type:object size:0x16 +lbl_2_data_17D = .data:0x0000017D; // type:object size:0x16 +lbl_2_data_193 = .data:0x00000193; // type:object size:0x16 +lbl_2_data_1A9 = .data:0x000001A9; // type:object size:0x4B +lbl_2_data_1F4 = .data:0x000001F4; // type:object size:0x14 +lbl_2_data_208 = .data:0x00000208; // type:object size:0x34 +lbl_2_data_23C = .data:0x0000023C; // type:object size:0x14 +lbl_2_data_250 = .data:0x00000250; // type:object size:0xC +lbl_2_data_25C = .data:0x0000025C; // type:object size:0xC +lbl_2_data_268 = .data:0x00000268; // type:object size:0x6C +lbl_2_data_2D4 = .data:0x000002D4; // type:object size:0x8 +lbl_2_data_2DC = .data:0x000002DC; // type:object size:0x10 +lbl_2_data_2EC = .data:0x000002EC; // type:object size:0x20 +lbl_2_data_30C = .data:0x0000030C; // type:object size:0x1C +lbl_2_data_328 = .data:0x00000328; // type:object size:0x10 +lbl_2_data_338 = .data:0x00000338; // type:object size:0x40 +lbl_2_data_378 = .data:0x00000378; // type:object size:0x20 +lbl_2_data_398 = .data:0x00000398; // type:object size:0x10 +lbl_2_data_3A8 = .data:0x000003A8; // type:object size:0x20 +lbl_2_data_3C8 = .data:0x000003C8; // type:object size:0x14 +lbl_2_data_3DC = .data:0x000003DC; // type:object size:0x14 +lbl_2_data_3F0 = .data:0x000003F0; // type:object size:0x8 +lbl_2_data_3F8 = .data:0x000003F8; // type:object size:0x10 +lbl_2_data_408 = .data:0x00000408; // type:object size:0x10 +lbl_2_data_418 = .data:0x00000418; // type:object size:0x60 +lbl_2_data_478 = .data:0x00000478; // type:object size:0x24 +lbl_2_data_49C = .data:0x0000049C; // type:object size:0x34 +lbl_2_bss_A = .bss:0x0000000A; // type:object size:0x2 data:2byte +lbl_2_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_2_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_2_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_2_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_2_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_2_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_2_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_2_bss_28 = .bss:0x00000028; // type:object size:0xC data:2byte +lbl_2_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte +lbl_2_bss_36 = .bss:0x00000036; // type:object size:0x2 data:2byte +lbl_2_bss_3A = .bss:0x0000003A; // type:object size:0x2 data:2byte +lbl_2_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_2_bss_40 = .bss:0x00000040; // type:object size:0x2 data:2byte +lbl_2_bss_44 = .bss:0x00000044; // type:object size:0x4 data:float +lbl_2_bss_48 = .bss:0x00000048; // type:object size:0xC data:float +lbl_2_bss_54 = .bss:0x00000054; // type:object size:0xC data:float +lbl_2_bss_60 = .bss:0x00000060; // type:object size:0x2 data:2byte +lbl_2_bss_62 = .bss:0x00000062; // type:object size:0x8 +lbl_2_bss_6A = .bss:0x0000006A; // type:object size:0x6 data:2byte +lbl_2_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_2_bss_74 = .bss:0x00000074; // type:object size:0x18 data:4byte +lbl_2_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_2_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_2_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_2_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_2_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:float +lbl_2_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_2_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_2_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_2_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lbl_2_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_2_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_2_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_2_bss_BC = .bss:0x000000BC; // type:object size:0x2 data:2byte +lbl_2_bss_BE = .bss:0x000000BE; // type:object size:0x2 data:2byte +lbl_2_bss_C0 = .bss:0x000000C0; // type:object size:0x20 +lbl_2_bss_E0 = .bss:0x000000E0; // type:object size:0x18 data:2byte diff --git a/config/GMPP01_00/rels/_minigameDll/splits.txt b/config/GMPP01_00/rels/_minigameDll/splits.txt new file mode 100644 index 00000000..be323846 --- /dev/null +++ b/config/GMPP01_00/rels/_minigameDll/splits.txt @@ -0,0 +1,6 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 diff --git a/config/GMPP01_00/rels/_minigameDll/symbols.txt b/config/GMPP01_00/rels/_minigameDll/symbols.txt new file mode 100644 index 00000000..5c4a5ab3 --- /dev/null +++ b/config/GMPP01_00/rels/_minigameDll/symbols.txt @@ -0,0 +1,7 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x2C +fn_1_CC = .text:0x000000CC; // type:function size:0x24 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x14 data:string diff --git a/config/GMPP01_00/rels/bootDll/splits.txt b/config/GMPP01_00/rels/bootDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/bootDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/bootDll/symbols.txt b/config/GMPP01_00/rels/bootDll/symbols.txt new file mode 100644 index 00000000..b9ed4f1e --- /dev/null +++ b/config/GMPP01_00/rels/bootDll/symbols.txt @@ -0,0 +1,107 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x204 +fn_1_2A4 = .text:0x000002A4; // type:function size:0x8B4 +fn_1_B58 = .text:0x00000B58; // type:function size:0xC8 +fn_1_C20 = .text:0x00000C20; // type:function size:0x3B4 +fn_1_FD4 = .text:0x00000FD4; // type:function size:0xB88 +fn_1_1B5C = .text:0x00001B5C; // type:function size:0x460 +fn_1_1FBC = .text:0x00001FBC; // type:function size:0xAA0 +fn_1_2A5C = .text:0x00002A5C; // type:function size:0x84 +fn_1_2AE0 = .text:0x00002AE0; // type:function size:0x10C8 +fn_1_3BA8 = .text:0x00003BA8; // type:function size:0x1F4 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 data:string +lbl_1_data_24 = .data:0x00000024; // type:object size:0x14 data:string +lbl_1_data_38 = .data:0x00000038; // type:object size:0x18 data:2byte +lbl_1_data_50 = .data:0x00000050; // type:object size:0x4 +lbl_1_data_54 = .data:0x00000054; // type:object size:0x1A data:string +lbl_1_data_6E = .data:0x0000006E; // type:object size:0x13 data:string +lbl_1_data_81 = .data:0x00000081; // type:object size:0x1F +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x3080 data:4byte +lbl_1_data_3120 = .data:0x00003120; // type:object size:0x14 +lbl_1_data_3134 = .data:0x00003134; // type:object size:0x5 data:string +lbl_1_data_3139 = .data:0x00003139; // type:object size:0xD data:string +lbl_1_data_3146 = .data:0x00003146; // type:object size:0x10 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x6 +lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x2 data:2byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x6 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0xE data:2byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x18 data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x18 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:4byte diff --git a/config/GMPP01_00/rels/instDll/splits.txt b/config/GMPP01_00/rels/instDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/instDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/instDll/symbols.txt b/config/GMPP01_00/rels/instDll/symbols.txt new file mode 100644 index 00000000..d927e6ae --- /dev/null +++ b/config/GMPP01_00/rels/instDll/symbols.txt @@ -0,0 +1,147 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x8F4 +fn_1_994 = .text:0x00000994; // type:function size:0xE50 +fn_1_17E4 = .text:0x000017E4; // type:function size:0xA28 +fn_1_220C = .text:0x0000220C; // type:function size:0x5F8 +fn_1_2804 = .text:0x00002804; // type:function size:0x79C +fn_1_2FA0 = .text:0x00002FA0; // type:function size:0x11D4 +fn_1_4174 = .text:0x00004174; // type:function size:0x3B4 +fn_1_4528 = .text:0x00004528; // type:function size:0xB88 +fn_1_50B0 = .text:0x000050B0; // type:function size:0xAB4 +fn_1_5B64 = .text:0x00005B64; // type:function size:0x340 +fn_1_5EA4 = .text:0x00005EA4; // type:function size:0x3F8 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_2 = .data:0x00000002; // type:object size:0x24 data:string +lbl_1_data_26 = .data:0x00000026; // type:object size:0x20 +lbl_1_data_46 = .data:0x00000046; // type:object size:0xA +lbl_1_data_50 = .data:0x00000050; // type:object size:0x20 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x20 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x8 data:string +lbl_1_data_98 = .data:0x00000098; // type:object size:0x8 data:string +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x8 data:string +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x8 data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x4 +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x48 +lbl_1_data_10C = .data:0x0000010C; // type:object size:0x18 +lbl_1_data_124 = .data:0x00000124; // type:object size:0x20 data:float +lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 +lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4 data:float +lbl_1_data_150 = .data:0x00000150; // type:object size:0x4C0 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x1 data:byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x18 data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x18 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x8 data:4byte diff --git a/config/GMPP01_00/rels/m300Dll/splits.txt b/config/GMPP01_00/rels/m300Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPP01_00/rels/m300Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPP01_00/rels/m300Dll/symbols.txt b/config/GMPP01_00/rels/m300Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPP01_00/rels/m300Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPP01_00/rels/m302Dll/splits.txt b/config/GMPP01_00/rels/m302Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPP01_00/rels/m302Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPP01_00/rels/m302Dll/symbols.txt b/config/GMPP01_00/rels/m302Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPP01_00/rels/m302Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPP01_00/rels/m303Dll/splits.txt b/config/GMPP01_00/rels/m303Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPP01_00/rels/m303Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPP01_00/rels/m303Dll/symbols.txt b/config/GMPP01_00/rels/m303Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPP01_00/rels/m303Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPP01_00/rels/m330Dll/splits.txt b/config/GMPP01_00/rels/m330Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPP01_00/rels/m330Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPP01_00/rels/m330Dll/symbols.txt b/config/GMPP01_00/rels/m330Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPP01_00/rels/m330Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPP01_00/rels/m333Dll/splits.txt b/config/GMPP01_00/rels/m333Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPP01_00/rels/m333Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPP01_00/rels/m333Dll/symbols.txt b/config/GMPP01_00/rels/m333Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPP01_00/rels/m333Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPP01_00/rels/m401Dll/splits.txt b/config/GMPP01_00/rels/m401Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m401Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m401Dll/symbols.txt b/config/GMPP01_00/rels/m401Dll/symbols.txt new file mode 100644 index 00000000..c4412263 --- /dev/null +++ b/config/GMPP01_00/rels/m401Dll/symbols.txt @@ -0,0 +1,522 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_2_A0 = .text:0x000000A0; // type:function size:0x66C +fn_2_70C = .text:0x0000070C; // type:function size:0x304 +fn_2_A10 = .text:0x00000A10; // type:function size:0x88 +fn_2_A98 = .text:0x00000A98; // type:function size:0x54 +fn_2_AEC = .text:0x00000AEC; // type:function size:0x130 +fn_2_C1C = .text:0x00000C1C; // type:function size:0x5B4 +fn_2_11D0 = .text:0x000011D0; // type:function size:0x3F4 +fn_2_15C4 = .text:0x000015C4; // type:function size:0xD8 +fn_2_169C = .text:0x0000169C; // type:function size:0x1BC +fn_2_1858 = .text:0x00001858; // type:function size:0x1E0 +fn_2_1A38 = .text:0x00001A38; // type:function size:0x148 +fn_2_1B80 = .text:0x00001B80; // type:function size:0x170 +fn_2_1CF0 = .text:0x00001CF0; // type:function size:0xF8 +fn_2_1DE8 = .text:0x00001DE8; // type:function size:0x2C8 +fn_2_20B0 = .text:0x000020B0; // type:function size:0x148 +fn_2_21F8 = .text:0x000021F8; // type:function size:0x4E8 +fn_2_26E0 = .text:0x000026E0; // type:function size:0x5DC +fn_2_2CBC = .text:0x00002CBC; // type:function size:0xA8 +fn_2_2D64 = .text:0x00002D64; // type:function size:0x68 +fn_2_2DCC = .text:0x00002DCC; // type:function size:0x54 +fn_2_2E20 = .text:0x00002E20; // type:function size:0xB0 +fn_2_2ED0 = .text:0x00002ED0; // type:function size:0xCC +fn_2_2F9C = .text:0x00002F9C; // type:function size:0x4 +fn_2_2FA0 = .text:0x00002FA0; // type:function size:0x4 +fn_2_2FA4 = .text:0x00002FA4; // type:function size:0x410 +fn_2_33B4 = .text:0x000033B4; // type:function size:0x104 +fn_2_34B8 = .text:0x000034B8; // type:function size:0x380 +fn_2_3838 = .text:0x00003838; // type:function size:0x2EC +fn_2_3B24 = .text:0x00003B24; // type:function size:0x404 +fn_2_3F28 = .text:0x00003F28; // type:function size:0x978 +fn_2_48A0 = .text:0x000048A0; // type:function size:0x1420 +fn_2_5CC0 = .text:0x00005CC0; // type:function size:0x93C +fn_2_65FC = .text:0x000065FC; // type:function size:0x4F8 +fn_2_6AF4 = .text:0x00006AF4; // type:function size:0x50 +fn_2_6B44 = .text:0x00006B44; // type:function size:0x150 +fn_2_6C94 = .text:0x00006C94; // type:function size:0x9AC +fn_2_7640 = .text:0x00007640; // type:function size:0x6C +fn_2_76AC = .text:0x000076AC; // type:function size:0x280 +fn_2_792C = .text:0x0000792C; // type:function size:0x310 +fn_2_7C3C = .text:0x00007C3C; // type:function size:0x78 +fn_2_7CB4 = .text:0x00007CB4; // type:function size:0x1B8 +fn_2_7E6C = .text:0x00007E6C; // type:function size:0x70 +fn_2_7EDC = .text:0x00007EDC; // type:function size:0x574 +fn_2_8450 = .text:0x00008450; // type:function size:0x2EC +fn_2_873C = .text:0x0000873C; // type:function size:0x12C +fn_2_8868 = .text:0x00008868; // type:function size:0x100 +fn_2_8968 = .text:0x00008968; // type:function size:0x1F0 +fn_2_8B58 = .text:0x00008B58; // type:function size:0x100 +fn_2_8C58 = .text:0x00008C58; // type:function size:0x21C +fn_2_8E74 = .text:0x00008E74; // type:function size:0x338 +fn_2_91AC = .text:0x000091AC; // type:function size:0xEC +fn_2_9298 = .text:0x00009298; // type:function size:0x34C +fn_2_95E4 = .text:0x000095E4; // type:function size:0x150 +fn_2_9734 = .text:0x00009734; // type:function size:0x68 +fn_2_979C = .text:0x0000979C; // type:function size:0xF0 +fn_2_988C = .text:0x0000988C; // type:function size:0x118 +fn_2_99A4 = .text:0x000099A4; // type:function size:0x1EC +fn_2_9B90 = .text:0x00009B90; // type:function size:0x170 +fn_2_9D00 = .text:0x00009D00; // type:function size:0x128 +fn_2_9E28 = .text:0x00009E28; // type:function size:0x288 +fn_2_A0B0 = .text:0x0000A0B0; // type:function size:0x268 +fn_2_A318 = .text:0x0000A318; // type:function size:0x58C +fn_2_A8A4 = .text:0x0000A8A4; // type:function size:0x70 +fn_2_A914 = .text:0x0000A914; // type:function size:0x2C +fn_2_A940 = .text:0x0000A940; // type:function size:0x2EC +fn_2_AC2C = .text:0x0000AC2C; // type:function size:0x1164 +fn_2_BD90 = .text:0x0000BD90; // type:function size:0x3A0 +fn_2_C130 = .text:0x0000C130; // type:function size:0x5B0 +fn_2_C6E0 = .text:0x0000C6E0; // type:function size:0x164 +fn_2_C844 = .text:0x0000C844; // type:function size:0x270 +fn_2_CAB4 = .text:0x0000CAB4; // type:function size:0x5D8 +fn_2_D08C = .text:0x0000D08C; // type:function size:0xF8 +fn_2_D184 = .text:0x0000D184; // type:function size:0x268 +fn_2_D3EC = .text:0x0000D3EC; // type:function size:0x4E4 +fn_2_D8D0 = .text:0x0000D8D0; // type:function size:0x300 +fn_2_DBD0 = .text:0x0000DBD0; // type:function size:0x250 +fn_2_DE20 = .text:0x0000DE20; // type:function size:0xA0 +fn_2_DEC0 = .text:0x0000DEC0; // type:function size:0x390 +fn_2_E250 = .text:0x0000E250; // type:function size:0x118 +fn_2_E368 = .text:0x0000E368; // type:function size:0xBC +fn_2_E424 = .text:0x0000E424; // type:function size:0x24C +fn_2_E670 = .text:0x0000E670; // type:function size:0x30 +fn_2_E6A0 = .text:0x0000E6A0; // type:function size:0x20 +fn_2_E6C0 = .text:0x0000E6C0; // type:function size:0x2C +fn_2_E6EC = .text:0x0000E6EC; // type:function size:0x1090 +fn_2_F77C = .text:0x0000F77C; // type:function size:0x4C8 +fn_2_FC44 = .text:0x0000FC44; // type:function size:0x358 +fn_2_FF9C = .text:0x0000FF9C; // type:function size:0x2A8 +fn_2_10244 = .text:0x00010244; // type:function size:0x1DC +fn_2_10420 = .text:0x00010420; // type:function size:0x2F4 +fn_2_10714 = .text:0x00010714; // type:function size:0x8C +fn_2_107A0 = .text:0x000107A0; // type:function size:0x12C +fn_2_108CC = .text:0x000108CC; // type:function size:0xB8 +fn_2_10984 = .text:0x00010984; // type:function size:0x88 +fn_2_10A0C = .text:0x00010A0C; // type:function size:0x80 +fn_2_10A8C = .text:0x00010A8C; // type:function size:0x924 +fn_2_113B0 = .text:0x000113B0; // type:function size:0x504 +fn_2_118B4 = .text:0x000118B4; // type:function size:0x1B8 +fn_2_11A6C = .text:0x00011A6C; // type:function size:0x110 +fn_2_11B7C = .text:0x00011B7C; // type:function size:0xB8 +fn_2_11C34 = .text:0x00011C34; // type:function size:0x110 +fn_2_11D44 = .text:0x00011D44; // type:function size:0x104 +fn_2_11E48 = .text:0x00011E48; // type:function size:0xB8 +fn_2_11F00 = .text:0x00011F00; // type:function size:0xB8 +fn_2_11FB8 = .text:0x00011FB8; // type:function size:0x444 +fn_2_123FC = .text:0x000123FC; // type:function size:0x2D0 +fn_2_126CC = .text:0x000126CC; // type:function size:0x2C +fn_2_126F8 = .text:0x000126F8; // type:function size:0x43C +fn_2_12B34 = .text:0x00012B34; // type:function size:0x4EC +fn_2_13020 = .text:0x00013020; // type:function size:0x4F0 +fn_2_13510 = .text:0x00013510; // type:function size:0x670 +fn_2_13B80 = .text:0x00013B80; // type:function size:0x634 +fn_2_141B4 = .text:0x000141B4; // type:function size:0x120 +fn_2_142D4 = .text:0x000142D4; // type:function size:0x4 +fn_2_142D8 = .text:0x000142D8; // type:function size:0x36C +fn_2_14644 = .text:0x00014644; // type:function size:0xF8 +fn_2_1473C = .text:0x0001473C; // type:function size:0x7C +fn_2_147B8 = .text:0x000147B8; // type:function size:0x660 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_2_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_2_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_2_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_2_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_2_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_2_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_2_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_2_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_2_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_2_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_2_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_2_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_2_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_2_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_2_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_2_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_2_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_2_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_2_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_2_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_2_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_2_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_2_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_2_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_2_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_2_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_2_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_2_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_2_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_2_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_2_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_2_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_2_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_2_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_2_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_2_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_2_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_2_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_2_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_2_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_2_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_2_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_2_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_2_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_2_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_2_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_2_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_2_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_2_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_2_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_2_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_2_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_2_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_2_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_2_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_2_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_2_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_2_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_2_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_2_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_2_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_2_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_2_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_2_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_2_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_2_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_2_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_2_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_2_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_2_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_2_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_2_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_2_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_2_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_2_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_2_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_2_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_2_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_2_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_2_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_2_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_2_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_2_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_2_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_2_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_2_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_2_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_2_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_2_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_2_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_2_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_2_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_2_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_2_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_2_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_2_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_2_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_2_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_2_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_2_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_2_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_2_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_2_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_2_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_2_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_2_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_2_rodata_1DC = .rodata:0x000001DC; // type:object size:0x10 data:4byte +lbl_2_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_2_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_2_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_2_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_2_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_2_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_2_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_2_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_2_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_2_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_2_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_2_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_2_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_2_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_2_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_2_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_2_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_2_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_2_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_2_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_2_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_2_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_2_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_2_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_2_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_2_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_2_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_2_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_2_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_2_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_2_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_2_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_2_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_2_rodata_290 = .rodata:0x00000290; // type:object size:0x40 data:2byte +lbl_2_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:2byte +lbl_2_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:2byte +lbl_2_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:2byte +lbl_2_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_2_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_2_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_2_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_2_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_2_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_2_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_2_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_2_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_2_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_2_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_2_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_2_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_2_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_2_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_2_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_2_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_2_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_2_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_2_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double +lbl_2_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_2_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_2_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_2_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_2_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_2_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_2_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_2_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_2_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_2_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_2_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_2_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_2_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_2_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_2_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_2_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_2_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_2_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_2_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_2_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_2_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_2_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_2_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_2_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_2_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_2_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_2_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_2_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_2_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_2_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_2_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_2_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_2_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_2_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_2_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_2_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_2_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_2_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_2_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_2_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_2_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_2_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_2_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_2_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_2_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_2_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_2_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_2_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_2_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_2_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_2_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double +lbl_2_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_2_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_2_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_2_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_2_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_2_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_2_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_2_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_2_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_2_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_2_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_2_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_2_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_2_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double +lbl_2_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_2_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_2_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_2_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_2_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_2_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_2_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_2_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_2_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_2_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double +lbl_2_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double +lbl_2_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double +lbl_2_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_2_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_2_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_2_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_2_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_2_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_2_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_2_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_2_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_2_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_2_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_2_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_2_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_2_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double +lbl_2_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double +lbl_2_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_2_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_2_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_2_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_2_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_2_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_2_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_2_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_2_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float +lbl_2_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float +lbl_2_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_2_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float +lbl_2_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float +lbl_2_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float +lbl_2_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float +lbl_2_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float +lbl_2_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double +lbl_2_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_2_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float +lbl_2_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:double +lbl_2_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_2_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float +lbl_2_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_2_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_2_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_2_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_2_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_2_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_2_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_2_rodata_590 = .rodata:0x00000590; // type:object size:0x8 data:double +lbl_2_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_2_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_2_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_2_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float +lbl_2_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_2_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_2_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_2_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_2_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 data:double +lbl_2_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float +lbl_2_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float +lbl_2_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float +lbl_2_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_2_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_2_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_2_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_2_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float +lbl_2_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_2_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_2_data_0 = .data:0x00000000; // type:object size:0x4 data:float +lbl_2_data_4 = .data:0x00000004; // type:object size:0x10 +lbl_2_data_14 = .data:0x00000014; // type:object size:0xC +lbl_2_data_20 = .data:0x00000020; // type:object size:0xC +lbl_2_data_2C = .data:0x0000002C; // type:object size:0x4 +lbl_2_data_30 = .data:0x00000030; // type:object size:0xC data:float +lbl_2_data_3C = .data:0x0000003C; // type:object size:0xC +lbl_2_data_48 = .data:0x00000048; // type:object size:0xC data:float +lbl_2_data_54 = .data:0x00000054; // type:object size:0x1B data:string +lbl_2_data_6F = .data:0x0000006F; // type:object size:0x11 +lbl_2_data_80 = .data:0x00000080; // type:object size:0x20 +lbl_2_data_A0 = .data:0x000000A0; // type:object size:0x14 +lbl_2_data_B4 = .data:0x000000B4; // type:object size:0x18 +lbl_2_data_CC = .data:0x000000CC; // type:object size:0x28 +lbl_2_data_F4 = .data:0x000000F4; // type:object size:0x9 data:string +lbl_2_data_FD = .data:0x000000FD; // type:object size:0x9 data:string +lbl_2_data_106 = .data:0x00000106; // type:object size:0x9 data:string +lbl_2_data_10F = .data:0x0000010F; // type:object size:0x9 data:string +lbl_2_data_118 = .data:0x00000118; // type:object size:0xC +lbl_2_data_124 = .data:0x00000124; // type:object size:0x34 data:4byte +lbl_2_data_158 = .data:0x00000158; // type:object size:0x140 +lbl_2_data_298 = .data:0x00000298; // type:object size:0x30 +lbl_2_data_2C8 = .data:0x000002C8; // type:object size:0x30 +jumptable_2_data_2F8 = .data:0x000002F8; // type:object size:0x30 scope:local +lbl_2_data_32C = .data:0x0000032C; // type:object size:0x8 +lbl_2_data_334 = .data:0x00000334; // type:object size:0xF0 +lbl_2_data_424 = .data:0x00000424; // type:object size:0x8 +lbl_2_data_42C = .data:0x0000042C; // type:object size:0x28 +lbl_2_data_454 = .data:0x00000454; // type:object size:0xC data:string +lbl_2_data_460 = .data:0x00000460; // type:object size:0xC +lbl_2_data_46C = .data:0x0000046C; // type:object size:0x5 data:string +lbl_2_data_471 = .data:0x00000471; // type:object size:0x7 +jumptable_2_data_478 = .data:0x00000478; // type:object size:0x20 scope:local +lbl_2_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_2_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_2_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_2_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte +lbl_2_bss_10 = .bss:0x00000010; // type:object size:0x4 data:float +lbl_2_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_2_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_2_bss_1A = .bss:0x0000001A; // type:object size:0x2 data:2byte +lbl_2_bss_1C = .bss:0x0000001C; // type:object size:0x10 data:4byte +lbl_2_bss_2C = .bss:0x0000002C; // type:object size:0xC data:float +lbl_2_bss_38 = .bss:0x00000038; // type:object size:0xC data:float +lbl_2_bss_44 = .bss:0x00000044; // type:object size:0xC data:float +lbl_2_bss_50 = .bss:0x00000050; // type:object size:0x4 data:float +lbl_2_bss_54 = .bss:0x00000054; // type:object size:0xC data:4byte +lbl_2_bss_60 = .bss:0x00000060; // type:object size:0xC data:float +lbl_2_bss_6C = .bss:0x0000006C; // type:object size:0xC data:float +lbl_2_bss_78 = .bss:0x00000078; // type:object size:0xC data:float +lbl_2_bss_84 = .bss:0x00000084; // type:object size:0x4 data:float +lbl_2_bss_88 = .bss:0x00000088; // type:object size:0x4 data:float +lbl_2_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_2_bss_90 = .bss:0x00000090; // type:object size:0x14 data:4byte +lbl_2_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_2_bss_A8 = .bss:0x000000A8; // type:object size:0x2 data:2byte +lbl_2_bss_AA = .bss:0x000000AA; // type:object size:0x8 data:2byte +lbl_2_bss_B2 = .bss:0x000000B2; // type:object size:0x8 data:2byte +lbl_2_bss_BA = .bss:0x000000BA; // type:object size:0x2 data:2byte +lbl_2_bss_BE = .bss:0x000000BE; // type:object size:0x2 data:2byte +lbl_2_bss_C0 = .bss:0x000000C0; // type:object size:0x2 data:2byte +lbl_2_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte +lbl_2_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_2_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_2_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_2_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte +lbl_2_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte +lbl_2_bss_DC = .bss:0x000000DC; // type:object size:0x4 data:4byte +lbl_2_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte +lbl_2_bss_E4 = .bss:0x000000E4; // type:object size:0x10 +lbl_2_bss_F4 = .bss:0x000000F4; // type:object size:0x4 data:4byte +lbl_2_bss_F8 = .bss:0x000000F8; // type:object size:0x4 data:4byte +lbl_2_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_2_bss_100 = .bss:0x00000100; // type:object size:0x8 data:4byte +lbl_2_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte +lbl_2_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte +lbl_2_bss_110 = .bss:0x00000110; // type:object size:0x4 data:4byte +lbl_2_bss_114 = .bss:0x00000114; // type:object size:0x4 data:4byte +lbl_2_bss_118 = .bss:0x00000118; // type:object size:0x4 data:4byte +lbl_2_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte +lbl_2_bss_120 = .bss:0x00000120; // type:object size:0x2 data:2byte +lbl_2_bss_124 = .bss:0x00000124; // type:object size:0x4 data:float +lbl_2_bss_128 = .bss:0x00000128; // type:object size:0x4 data:float +lbl_2_bss_12C = .bss:0x0000012C; // type:object size:0x8 data:float +lbl_2_bss_134 = .bss:0x00000134; // type:object size:0x2 data:2byte +lbl_2_bss_136 = .bss:0x00000136; // type:object size:0x8 +lbl_2_bss_13E = .bss:0x0000013E; // type:object size:0xE2 +lbl_2_bss_220 = .bss:0x00000220; // type:object size:0x18 data:4byte +lbl_2_bss_238 = .bss:0x00000238; // type:object size:0x4 data:4byte +lbl_2_bss_23C = .bss:0x0000023C; // type:object size:0x4 data:4byte +lbl_2_bss_240 = .bss:0x00000240; // type:object size:0x4 data:4byte +lbl_2_bss_244 = .bss:0x00000244; // type:object size:0x4 data:4byte +lbl_2_bss_248 = .bss:0x00000248; // type:object size:0x4 data:4byte +lbl_2_bss_24C = .bss:0x0000024C; // type:object size:0x4 data:4byte +lbl_2_bss_250 = .bss:0x00000250; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m402Dll/splits.txt b/config/GMPP01_00/rels/m402Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m402Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m402Dll/symbols.txt b/config/GMPP01_00/rels/m402Dll/symbols.txt new file mode 100644 index 00000000..c3491cd9 --- /dev/null +++ b/config/GMPP01_00/rels/m402Dll/symbols.txt @@ -0,0 +1,206 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x204 +fn_1_784 = .text:0x00000784; // type:function size:0x240 +fn_1_9C4 = .text:0x000009C4; // type:function size:0x54 +fn_1_A18 = .text:0x00000A18; // type:function size:0x10C +fn_1_B24 = .text:0x00000B24; // type:function size:0x680 +fn_1_11A4 = .text:0x000011A4; // type:function size:0x15C +fn_1_1300 = .text:0x00001300; // type:function size:0x8C +fn_1_138C = .text:0x0000138C; // type:function size:0x334 +fn_1_16C0 = .text:0x000016C0; // type:function size:0x350 +fn_1_1A10 = .text:0x00001A10; // type:function size:0x2B8 +fn_1_1CC8 = .text:0x00001CC8; // type:function size:0x58 +fn_1_1D20 = .text:0x00001D20; // type:function size:0xB0 +fn_1_1DD0 = .text:0x00001DD0; // type:function size:0x104 +fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x34 +fn_1_1F08 = .text:0x00001F08; // type:function size:0x6C +fn_1_1F74 = .text:0x00001F74; // type:function size:0x3F0 +_prolog = .text:0x00002364; // type:function size:0x54 scope:global +_epilog = .text:0x000023B8; // type:function size:0x4C scope:global +fn_1_2404 = .text:0x00002404; // type:function size:0x2F0 +fn_1_26F4 = .text:0x000026F4; // type:function size:0x64 +fn_1_2758 = .text:0x00002758; // type:function size:0xD8 +fn_1_2830 = .text:0x00002830; // type:function size:0xF0 +fn_1_2920 = .text:0x00002920; // type:function size:0x1C0 +fn_1_2AE0 = .text:0x00002AE0; // type:function size:0x28C +fn_1_2D6C = .text:0x00002D6C; // type:function size:0x380 +fn_1_30EC = .text:0x000030EC; // type:function size:0xC8 +fn_1_31B4 = .text:0x000031B4; // type:function size:0xF8C +fn_1_4140 = .text:0x00004140; // type:function size:0xF4 +fn_1_4234 = .text:0x00004234; // type:function size:0x154 +fn_1_4388 = .text:0x00004388; // type:function size:0x1FF0 +fn_1_6378 = .text:0x00006378; // type:function size:0x490 +fn_1_6808 = .text:0x00006808; // type:function size:0x4 +fn_1_680C = .text:0x0000680C; // type:function size:0x258 +fn_1_6A64 = .text:0x00006A64; // type:function size:0x3B0 +fn_1_6E14 = .text:0x00006E14; // type:function size:0x1BC +fn_1_6FD0 = .text:0x00006FD0; // type:function size:0xC4 +fn_1_7094 = .text:0x00007094; // type:function size:0x86C +fn_1_7900 = .text:0x00007900; // type:function size:0x19C +fn_1_7A9C = .text:0x00007A9C; // type:function size:0x25C +fn_1_7CF8 = .text:0x00007CF8; // type:function size:0x4 +fn_1_7CFC = .text:0x00007CFC; // type:function size:0x134 +fn_1_7E30 = .text:0x00007E30; // type:function size:0x4 +fn_1_7E34 = .text:0x00007E34; // type:function size:0x1C4 +fn_1_7FF8 = .text:0x00007FF8; // type:function size:0x1D0 +fn_1_81C8 = .text:0x000081C8; // type:function size:0xE38 +fn_1_9000 = .text:0x00009000; // type:function size:0x1EC +fn_1_91EC = .text:0x000091EC; // type:function size:0x8B0 +fn_1_9A9C = .text:0x00009A9C; // type:function size:0xD0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0xC data:4byte +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:4byte +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x14 +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC +lbl_1_data_78 = .data:0x00000078; // type:object size:0x160 +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x10 +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0xC +lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x4 data:4byte +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x8 +lbl_1_data_200 = .data:0x00000200; // type:object size:0x18 +lbl_1_data_218 = .data:0x00000218; // type:object size:0x1C +lbl_1_data_234 = .data:0x00000234; // type:object size:0x190 +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x14 +lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x1A data:string +lbl_1_data_3F2 = .data:0x000003F2; // type:object size:0x9 data:string +lbl_1_data_3FB = .data:0x000003FB; // type:object size:0x6 data:string +lbl_1_data_401 = .data:0x00000401; // type:object size:0x10 data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x1F +jumptable_1_data_430 = .data:0x00000430; // type:object size:0x40 scope:local +lbl_1_data_470 = .data:0x00000470; // type:object size:0x17 data:string +lbl_1_data_487 = .data:0x00000487; // type:object size:0x1B data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x24 data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0xE +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x100 +lbl_1_bss_15C = .bss:0x0000015C; // type:object size:0x40 data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x4 data:float +lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 data:4byte +lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x2 data:2byte +lbl_1_bss_1AA = .bss:0x000001AA; // type:object size:0x2 data:2byte +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 data:4byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x4 data:4byte +lbl_1_bss_1B4 = .bss:0x000001B4; // type:object size:0x4 data:4byte +lbl_1_bss_1B8 = .bss:0x000001B8; // type:object size:0xC data:4byte +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0xC data:4byte +lbl_1_bss_1D0 = .bss:0x000001D0; // type:object size:0xC data:4byte +lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0xC data:4byte +lbl_1_bss_1E8 = .bss:0x000001E8; // type:object size:0x4 data:4byte +lbl_1_bss_1EC = .bss:0x000001EC; // type:object size:0x18 data:4byte +lbl_1_bss_204 = .bss:0x00000204; // type:object size:0xC data:4byte diff --git a/config/GMPP01_00/rels/m403Dll/splits.txt b/config/GMPP01_00/rels/m403Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m403Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m403Dll/symbols.txt b/config/GMPP01_00/rels/m403Dll/symbols.txt new file mode 100644 index 00000000..33bec762 --- /dev/null +++ b/config/GMPP01_00/rels/m403Dll/symbols.txt @@ -0,0 +1,259 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x384 +fn_1_424 = .text:0x00000424; // type:function size:0x20 +fn_1_444 = .text:0x00000444; // type:function size:0x3E8 +fn_1_82C = .text:0x0000082C; // type:function size:0x9E8 +fn_1_1214 = .text:0x00001214; // type:function size:0x60 +fn_1_1274 = .text:0x00001274; // type:function size:0x1EC +fn_1_1460 = .text:0x00001460; // type:function size:0x288 +fn_1_16E8 = .text:0x000016E8; // type:function size:0x104 +fn_1_17EC = .text:0x000017EC; // type:function size:0x274 +fn_1_1A60 = .text:0x00001A60; // type:function size:0xA0 +fn_1_1B00 = .text:0x00001B00; // type:function size:0x2B8 +fn_1_1DB8 = .text:0x00001DB8; // type:function size:0x28 +fn_1_1DE0 = .text:0x00001DE0; // type:function size:0x388 +fn_1_2168 = .text:0x00002168; // type:function size:0x14C +fn_1_22B4 = .text:0x000022B4; // type:function size:0x2F4 +fn_1_25A8 = .text:0x000025A8; // type:function size:0xA44 +fn_1_2FEC = .text:0x00002FEC; // type:function size:0x824 +fn_1_3810 = .text:0x00003810; // type:function size:0x94 +fn_1_38A4 = .text:0x000038A4; // type:function size:0x2EC +fn_1_3B90 = .text:0x00003B90; // type:function size:0x1EC +fn_1_3D7C = .text:0x00003D7C; // type:function size:0xE0 +fn_1_3E5C = .text:0x00003E5C; // type:function size:0x1C0 +fn_1_401C = .text:0x0000401C; // type:function size:0x9C +fn_1_40B8 = .text:0x000040B8; // type:function size:0x480 +fn_1_4538 = .text:0x00004538; // type:function size:0x54 +fn_1_458C = .text:0x0000458C; // type:function size:0x168 +fn_1_46F4 = .text:0x000046F4; // type:function size:0x120 +fn_1_4814 = .text:0x00004814; // type:function size:0x30C +fn_1_4B20 = .text:0x00004B20; // type:function size:0x78 +fn_1_4B98 = .text:0x00004B98; // type:function size:0x11C +fn_1_4CB4 = .text:0x00004CB4; // type:function size:0x78 +fn_1_4D2C = .text:0x00004D2C; // type:function size:0x2D8 +fn_1_5004 = .text:0x00005004; // type:function size:0x2B8 +fn_1_52BC = .text:0x000052BC; // type:function size:0x154 +fn_1_5410 = .text:0x00005410; // type:function size:0x3E0 +fn_1_57F0 = .text:0x000057F0; // type:function size:0x214 +fn_1_5A04 = .text:0x00005A04; // type:function size:0x198 +fn_1_5B9C = .text:0x00005B9C; // type:function size:0xD8 +fn_1_5C74 = .text:0x00005C74; // type:function size:0xBC +fn_1_5D30 = .text:0x00005D30; // type:function size:0x33C +fn_1_606C = .text:0x0000606C; // type:function size:0x4B0 +fn_1_651C = .text:0x0000651C; // type:function size:0x260 +fn_1_677C = .text:0x0000677C; // type:function size:0x20 +fn_1_679C = .text:0x0000679C; // type:function size:0x84 +fn_1_6820 = .text:0x00006820; // type:function size:0x4 +fn_1_6824 = .text:0x00006824; // type:function size:0x16C +fn_1_6990 = .text:0x00006990; // type:function size:0x318 +fn_1_6CA8 = .text:0x00006CA8; // type:function size:0x240 +fn_1_6EE8 = .text:0x00006EE8; // type:function size:0x110 +fn_1_6FF8 = .text:0x00006FF8; // type:function size:0x400 +fn_1_73F8 = .text:0x000073F8; // type:function size:0x5B4 +fn_1_79AC = .text:0x000079AC; // type:function size:0xFC +fn_1_7AA8 = .text:0x00007AA8; // type:function size:0x88 +fn_1_7B30 = .text:0x00007B30; // type:function size:0xB4 +fn_1_7BE4 = .text:0x00007BE4; // type:function size:0x4C +fn_1_7C30 = .text:0x00007C30; // type:function size:0x10 +fn_1_7C40 = .text:0x00007C40; // type:function size:0x20 +fn_1_7C60 = .text:0x00007C60; // type:function size:0x10 +fn_1_7C70 = .text:0x00007C70; // type:function size:0xA4 +fn_1_7D14 = .text:0x00007D14; // type:function size:0x274 +fn_1_7F88 = .text:0x00007F88; // type:function size:0x15C +fn_1_80E4 = .text:0x000080E4; // type:function size:0x180 +fn_1_8264 = .text:0x00008264; // type:function size:0x10 +fn_1_8274 = .text:0x00008274; // type:function size:0x10 +fn_1_8284 = .text:0x00008284; // type:function size:0x5C +fn_1_82E0 = .text:0x000082E0; // type:function size:0x1A0 +fn_1_8480 = .text:0x00008480; // type:function size:0x200 +fn_1_8680 = .text:0x00008680; // type:function size:0x30 +fn_1_86B0 = .text:0x000086B0; // type:function size:0x8CC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x9 data:byte +lbl_1_rodata_AD = .rodata:0x000000AD; // type:object size:0xB data:byte +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0xC +lbl_1_data_10 = .data:0x00000010; // type:object size:0xC +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x28 +lbl_1_data_44 = .data:0x00000044; // type:object size:0x24 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x4 data:4byte +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x20 +jumptable_1_data_8C = .data:0x0000008C; // type:object size:0x1C scope:local +jumptable_1_data_A8 = .data:0x000000A8; // type:object size:0x1C scope:local +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x20 +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x30 +lbl_1_data_114 = .data:0x00000114; // type:object size:0x20 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x20 +lbl_1_data_154 = .data:0x00000154; // type:object size:0x4 data:4byte +lbl_1_data_158 = .data:0x00000158; // type:object size:0xC0 +lbl_1_data_218 = .data:0x00000218; // type:object size:0xC0 +lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x78 +lbl_1_data_350 = .data:0x00000350; // type:object size:0x78 +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0xC0 +lbl_1_data_488 = .data:0x00000488; // type:object size:0xC0 +lbl_1_data_548 = .data:0x00000548; // type:object size:0x78 +lbl_1_data_5C0 = .data:0x000005C0; // type:object size:0x78 +lbl_1_data_638 = .data:0x00000638; // type:object size:0x108 +lbl_1_data_740 = .data:0x00000740; // type:object size:0x108 +lbl_1_data_848 = .data:0x00000848; // type:object size:0x108 +lbl_1_data_950 = .data:0x00000950; // type:object size:0x108 +lbl_1_data_A58 = .data:0x00000A58; // type:object size:0x30 +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x48 +lbl_1_data_AD0 = .data:0x00000AD0; // type:object size:0xC data:4byte +lbl_1_data_ADC = .data:0x00000ADC; // type:object size:0xC data:4byte +lbl_1_data_AE8 = .data:0x00000AE8; // type:object size:0x14 data:4byte +lbl_1_data_AFC = .data:0x00000AFC; // type:object size:0x18 +lbl_1_data_B14 = .data:0x00000B14; // type:object size:0x18 +lbl_1_data_B2C = .data:0x00000B2C; // type:object size:0x48 +lbl_1_data_B74 = .data:0x00000B74; // type:object size:0x30 +lbl_1_data_BA4 = .data:0x00000BA4; // type:object size:0x18 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x2 data:2byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:2byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0xC data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x2 data:2byte +lbl_1_bss_2A = .bss:0x0000002A; // type:object size:0x2 data:2byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_2E = .bss:0x0000002E; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x2 data:2byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x10 +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x8 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x18 +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:float +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x14 +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m404Dll/splits.txt b/config/GMPP01_00/rels/m404Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m404Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m404Dll/symbols.txt b/config/GMPP01_00/rels/m404Dll/symbols.txt new file mode 100644 index 00000000..3f46d237 --- /dev/null +++ b/config/GMPP01_00/rels/m404Dll/symbols.txt @@ -0,0 +1,155 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x2DC +fn_1_37C = .text:0x0000037C; // type:function size:0x10 +fn_1_38C = .text:0x0000038C; // type:function size:0x10 +fn_1_39C = .text:0x0000039C; // type:function size:0x64 +fn_1_400 = .text:0x00000400; // type:function size:0x384 +fn_1_784 = .text:0x00000784; // type:function size:0x5C +fn_1_7E0 = .text:0x000007E0; // type:function size:0x2BC +fn_1_A9C = .text:0x00000A9C; // type:function size:0x234 +fn_1_CD0 = .text:0x00000CD0; // type:function size:0x30 +fn_1_D00 = .text:0x00000D00; // type:function size:0xEC +fn_1_DEC = .text:0x00000DEC; // type:function size:0x5C +fn_1_E48 = .text:0x00000E48; // type:function size:0x8C +fn_1_ED4 = .text:0x00000ED4; // type:function size:0x9C +fn_1_F70 = .text:0x00000F70; // type:function size:0x1F0 +fn_1_1160 = .text:0x00001160; // type:function size:0x1E4 +fn_1_1344 = .text:0x00001344; // type:function size:0x7B8 +fn_1_1AFC = .text:0x00001AFC; // type:function size:0x184 +fn_1_1C80 = .text:0x00001C80; // type:function size:0xA8 +fn_1_1D28 = .text:0x00001D28; // type:function size:0xD0 +fn_1_1DF8 = .text:0x00001DF8; // type:function size:0x38C +fn_1_2184 = .text:0x00002184; // type:function size:0xD38 +fn_1_2EBC = .text:0x00002EBC; // type:function size:0xB7C +fn_1_3A38 = .text:0x00003A38; // type:function size:0x3F4 +fn_1_3E2C = .text:0x00003E2C; // type:function size:0x104 +fn_1_3F30 = .text:0x00003F30; // type:function size:0x52C +fn_1_445C = .text:0x0000445C; // type:function size:0x44 +fn_1_44A0 = .text:0x000044A0; // type:function size:0x7DC +fn_1_4C7C = .text:0x00004C7C; // type:function size:0x2D0 +fn_1_4F4C = .text:0x00004F4C; // type:function size:0x32C +fn_1_5278 = .text:0x00005278; // type:function size:0x2C4 +fn_1_553C = .text:0x0000553C; // type:function size:0x5C +fn_1_5598 = .text:0x00005598; // type:function size:0x58 +fn_1_55F0 = .text:0x000055F0; // type:function size:0x4 +fn_1_55F4 = .text:0x000055F4; // type:function size:0x1AC +fn_1_57A0 = .text:0x000057A0; // type:function size:0x4 +fn_1_57A4 = .text:0x000057A4; // type:function size:0x140 +fn_1_58E4 = .text:0x000058E4; // type:function size:0x480 +fn_1_5D64 = .text:0x00005D64; // type:function size:0x110 +fn_1_5E74 = .text:0x00005E74; // type:function size:0x208 +fn_1_607C = .text:0x0000607C; // type:function size:0x1CC +fn_1_6248 = .text:0x00006248; // type:function size:0x1F8 +fn_1_6440 = .text:0x00006440; // type:function size:0x4C +fn_1_648C = .text:0x0000648C; // type:function size:0x250 +fn_1_66DC = .text:0x000066DC; // type:function size:0x5AC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:2byte +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x20 data:byte +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x1 data:byte +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x1 data:byte +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x248 +lbl_1_data_248 = .data:0x00000248; // type:object size:0x260 +lbl_1_data_4A8 = .data:0x000004A8; // type:object size:0x290 +lbl_1_data_738 = .data:0x00000738; // type:object size:0x38 data:float +lbl_1_data_770 = .data:0x00000770; // type:object size:0xC data:float +lbl_1_data_77C = .data:0x0000077C; // type:object size:0xC data:float +lbl_1_data_788 = .data:0x00000788; // type:object size:0x4 +lbl_1_data_78C = .data:0x0000078C; // type:object size:0xC +lbl_1_data_798 = .data:0x00000798; // type:object size:0xC +lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x24 +lbl_1_data_7C8 = .data:0x000007C8; // type:object size:0x4 data:4byte +jumptable_1_data_7CC = .data:0x000007CC; // type:object size:0x28 scope:local +lbl_1_data_7F4 = .data:0x000007F4; // type:object size:0x1C data:string +lbl_1_data_810 = .data:0x00000810; // type:object size:0xC +lbl_1_data_81C = .data:0x0000081C; // type:object size:0x30 +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x20 +lbl_1_data_86C = .data:0x0000086C; // type:object size:0x20 +lbl_1_data_88C = .data:0x0000088C; // type:object size:0x4 data:4byte +lbl_1_data_890 = .data:0x00000890; // type:object size:0x28 +lbl_1_data_8B8 = .data:0x000008B8; // type:object size:0x20 +lbl_1_data_8D8 = .data:0x000008D8; // type:object size:0x10 +lbl_1_data_8E8 = .data:0x000008E8; // type:object size:0xC +lbl_1_data_8F4 = .data:0x000008F4; // type:object size:0x8 data:wstring +lbl_1_data_8FC = .data:0x000008FC; // type:object size:0x18 +lbl_1_data_914 = .data:0x00000914; // type:object size:0x1C +lbl_1_data_930 = .data:0x00000930; // type:object size:0x20 +lbl_1_data_950 = .data:0x00000950; // type:object size:0x20 +lbl_1_data_970 = .data:0x00000970; // type:object size:0x7 data:string +lbl_1_data_977 = .data:0x00000977; // type:object size:0x7 data:string +lbl_1_data_97E = .data:0x0000097E; // type:object size:0x7 data:string +lbl_1_data_985 = .data:0x00000985; // type:object size:0x7 data:string +lbl_1_data_98C = .data:0x0000098C; // type:object size:0x10 +lbl_1_data_99C = .data:0x0000099C; // type:object size:0x10 +lbl_1_data_9AC = .data:0x000009AC; // type:object size:0x30 +lbl_1_data_9DC = .data:0x000009DC; // type:object size:0x18 data:4byte +lbl_1_data_9F4 = .data:0x000009F4; // type:object size:0x18 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0xC data:float +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x10 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x10 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m405Dll/splits.txt b/config/GMPP01_00/rels/m405Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m405Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m405Dll/symbols.txt b/config/GMPP01_00/rels/m405Dll/symbols.txt new file mode 100644 index 00000000..0dccfd63 --- /dev/null +++ b/config/GMPP01_00/rels/m405Dll/symbols.txt @@ -0,0 +1,256 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x204 +fn_1_784 = .text:0x00000784; // type:function size:0x240 +fn_1_9C4 = .text:0x000009C4; // type:function size:0x54 +fn_1_A18 = .text:0x00000A18; // type:function size:0x10C +fn_1_B24 = .text:0x00000B24; // type:function size:0x680 +fn_1_11A4 = .text:0x000011A4; // type:function size:0x15C +fn_1_1300 = .text:0x00001300; // type:function size:0x8C +fn_1_138C = .text:0x0000138C; // type:function size:0x334 +fn_1_16C0 = .text:0x000016C0; // type:function size:0x350 +fn_1_1A10 = .text:0x00001A10; // type:function size:0x2B8 +fn_1_1CC8 = .text:0x00001CC8; // type:function size:0x58 +fn_1_1D20 = .text:0x00001D20; // type:function size:0xB0 +fn_1_1DD0 = .text:0x00001DD0; // type:function size:0x104 +fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x34 +fn_1_1F08 = .text:0x00001F08; // type:function size:0x6C +fn_1_1F74 = .text:0x00001F74; // type:function size:0x3F0 +fn_1_2364 = .text:0x00002364; // type:function size:0xCC +fn_1_2430 = .text:0x00002430; // type:function size:0x88 +fn_1_24B8 = .text:0x000024B8; // type:function size:0x20C +fn_1_26C4 = .text:0x000026C4; // type:function size:0xF8 +fn_1_27BC = .text:0x000027BC; // type:function size:0x2A0 +fn_1_2A5C = .text:0x00002A5C; // type:function size:0xCF8 +fn_1_3754 = .text:0x00003754; // type:function size:0x778 +fn_1_3ECC = .text:0x00003ECC; // type:function size:0x24 +fn_1_3EF0 = .text:0x00003EF0; // type:function size:0xE4 +fn_1_3FD4 = .text:0x00003FD4; // type:function size:0x6DC +fn_1_46B0 = .text:0x000046B0; // type:function size:0x828 +fn_1_4ED8 = .text:0x00004ED8; // type:function size:0x4DC +fn_1_53B4 = .text:0x000053B4; // type:function size:0x12C +fn_1_54E0 = .text:0x000054E0; // type:function size:0x4C +fn_1_552C = .text:0x0000552C; // type:function size:0xE8 +fn_1_5614 = .text:0x00005614; // type:function size:0xF8 +_prolog = .text:0x0000570C; // type:function size:0x54 scope:global +_epilog = .text:0x00005760; // type:function size:0x4C scope:global +fn_1_57AC = .text:0x000057AC; // type:function size:0xA4 +fn_1_5850 = .text:0x00005850; // type:function size:0x288 +fn_1_5AD8 = .text:0x00005AD8; // type:function size:0x214 +fn_1_5CEC = .text:0x00005CEC; // type:function size:0x90 +fn_1_5D7C = .text:0x00005D7C; // type:function size:0x274 +fn_1_5FF0 = .text:0x00005FF0; // type:function size:0x57C +fn_1_656C = .text:0x0000656C; // type:function size:0x26C +fn_1_67D8 = .text:0x000067D8; // type:function size:0xA4 +fn_1_687C = .text:0x0000687C; // type:function size:0x330 +fn_1_6BAC = .text:0x00006BAC; // type:function size:0xD90 +fn_1_793C = .text:0x0000793C; // type:function size:0x828 +fn_1_8164 = .text:0x00008164; // type:function size:0x93C +fn_1_8AA0 = .text:0x00008AA0; // type:function size:0x798 +fn_1_9238 = .text:0x00009238; // type:function size:0x1A50 +fn_1_AC88 = .text:0x0000AC88; // type:function size:0x3CC +fn_1_B054 = .text:0x0000B054; // type:function size:0x4EC +fn_1_B540 = .text:0x0000B540; // type:function size:0x16C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x1 data:byte +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x1 data:byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x1 data:byte +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0x30 data:2byte +lbl_1_data_40 = .data:0x00000040; // type:object size:0x60 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x48 +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x1 data:byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x14 +lbl_1_data_100 = .data:0x00000100; // type:object size:0xC +lbl_1_data_10C = .data:0x0000010C; // type:object size:0xC data:4byte +lbl_1_data_118 = .data:0x00000118; // type:object size:0xC data:4byte +lbl_1_data_124 = .data:0x00000124; // type:object size:0xC data:4byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0xC data:4byte +lbl_1_data_13C = .data:0x0000013C; // type:object size:0xC data:4byte +lbl_1_data_148 = .data:0x00000148; // type:object size:0xC data:4byte +lbl_1_data_154 = .data:0x00000154; // type:object size:0xC +lbl_1_data_160 = .data:0x00000160; // type:object size:0xC +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x4 +lbl_1_data_170 = .data:0x00000170; // type:object size:0xC +lbl_1_data_17C = .data:0x0000017C; // type:object size:0xC +lbl_1_data_188 = .data:0x00000188; // type:object size:0x100 +lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x20 +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x10 +lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0x50 +lbl_1_data_310 = .data:0x00000310; // type:object size:0x18 data:4byte +lbl_1_data_328 = .data:0x00000328; // type:object size:0x14 +lbl_1_data_33C = .data:0x0000033C; // type:object size:0xA +lbl_1_data_346 = .data:0x00000346; // type:object size:0xA +lbl_1_data_350 = .data:0x00000350; // type:object size:0x8 +lbl_1_data_358 = .data:0x00000358; // type:object size:0x8 +lbl_1_data_360 = .data:0x00000360; // type:object size:0x8 +lbl_1_data_368 = .data:0x00000368; // type:object size:0x8 +lbl_1_data_370 = .data:0x00000370; // type:object size:0x50 +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x50 +lbl_1_data_410 = .data:0x00000410; // type:object size:0xC data:string +lbl_1_data_41C = .data:0x0000041C; // type:object size:0x16 data:string +lbl_1_data_432 = .data:0x00000432; // type:object size:0x1D data:string +lbl_1_data_44F = .data:0x0000044F; // type:object size:0x1D +jumptable_1_data_46C = .data:0x0000046C; // type:object size:0x24 scope:local +lbl_1_data_490 = .data:0x00000490; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x18 data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x18 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x18 data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x18 data:float +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:float +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:float +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:float +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x2 data:2byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x2 data:2byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x8 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x1 data:byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x500 data:float +lbl_1_bss_5AC = .bss:0x000005AC; // type:object size:0x2C data:4byte +lbl_1_bss_5D8 = .bss:0x000005D8; // type:object size:0x4 data:4byte +lbl_1_bss_5DC = .bss:0x000005DC; // type:object size:0x4 data:4byte +lbl_1_bss_5E0 = .bss:0x000005E0; // type:object size:0x4 data:4byte +lbl_1_bss_5E4 = .bss:0x000005E4; // type:object size:0x4 data:4byte +lbl_1_bss_5E8 = .bss:0x000005E8; // type:object size:0x100 +lbl_1_bss_6E8 = .bss:0x000006E8; // type:object size:0x40 data:4byte +lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x4 data:float +lbl_1_bss_72C = .bss:0x0000072C; // type:object size:0x4 data:4byte +lbl_1_bss_730 = .bss:0x00000730; // type:object size:0x4 data:4byte +lbl_1_bss_734 = .bss:0x00000734; // type:object size:0x2 data:2byte +lbl_1_bss_736 = .bss:0x00000736; // type:object size:0x2 data:2byte +lbl_1_bss_738 = .bss:0x00000738; // type:object size:0x4 data:4byte +lbl_1_bss_73C = .bss:0x0000073C; // type:object size:0x4 data:4byte +lbl_1_bss_740 = .bss:0x00000740; // type:object size:0x4 data:4byte +lbl_1_bss_744 = .bss:0x00000744; // type:object size:0xC data:float +lbl_1_bss_750 = .bss:0x00000750; // type:object size:0xC data:4byte +lbl_1_bss_75C = .bss:0x0000075C; // type:object size:0xC data:float +lbl_1_bss_768 = .bss:0x00000768; // type:object size:0xC data:4byte +lbl_1_bss_774 = .bss:0x00000774; // type:object size:0x4 data:4byte +lbl_1_bss_778 = .bss:0x00000778; // type:object size:0x18 data:4byte +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0xC data:4byte diff --git a/config/GMPP01_00/rels/m406Dll/splits.txt b/config/GMPP01_00/rels/m406Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m406Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m406Dll/symbols.txt b/config/GMPP01_00/rels/m406Dll/symbols.txt new file mode 100644 index 00000000..410427a0 --- /dev/null +++ b/config/GMPP01_00/rels/m406Dll/symbols.txt @@ -0,0 +1,438 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x318 +fn_1_3B8 = .text:0x000003B8; // type:function size:0x54 +fn_1_40C = .text:0x0000040C; // type:function size:0xD00 +fn_1_110C = .text:0x0000110C; // type:function size:0x5C +fn_1_1168 = .text:0x00001168; // type:function size:0xC4 +fn_1_122C = .text:0x0000122C; // type:function size:0x10 +fn_1_123C = .text:0x0000123C; // type:function size:0x38 +fn_1_1274 = .text:0x00001274; // type:function size:0x10 +fn_1_1284 = .text:0x00001284; // type:function size:0x38 +fn_1_12BC = .text:0x000012BC; // type:function size:0x84 +fn_1_1340 = .text:0x00001340; // type:function size:0x1DC +fn_1_151C = .text:0x0000151C; // type:function size:0x4 +fn_1_1520 = .text:0x00001520; // type:function size:0x4 +fn_1_1524 = .text:0x00001524; // type:function size:0xAC +fn_1_15D0 = .text:0x000015D0; // type:function size:0x26C +fn_1_183C = .text:0x0000183C; // type:function size:0x35C +fn_1_1B98 = .text:0x00001B98; // type:function size:0x10 +fn_1_1BA8 = .text:0x00001BA8; // type:function size:0x118 +fn_1_1CC0 = .text:0x00001CC0; // type:function size:0x250 +fn_1_1F10 = .text:0x00001F10; // type:function size:0x3F8 +fn_1_2308 = .text:0x00002308; // type:function size:0x624 +fn_1_292C = .text:0x0000292C; // type:function size:0x2C0 +fn_1_2BEC = .text:0x00002BEC; // type:function size:0x38 +fn_1_2C24 = .text:0x00002C24; // type:function size:0x440 +fn_1_3064 = .text:0x00003064; // type:function size:0xF4 +fn_1_3158 = .text:0x00003158; // type:function size:0xF2C +fn_1_4084 = .text:0x00004084; // type:function size:0x4E4 +fn_1_4568 = .text:0x00004568; // type:function size:0x54 +fn_1_45BC = .text:0x000045BC; // type:function size:0x3A8 +fn_1_4964 = .text:0x00004964; // type:function size:0x1810 +fn_1_6174 = .text:0x00006174; // type:function size:0x190 +fn_1_6304 = .text:0x00006304; // type:function size:0x1F4 +fn_1_64F8 = .text:0x000064F8; // type:function size:0x1FC +fn_1_66F4 = .text:0x000066F4; // type:function size:0xD8 +fn_1_67CC = .text:0x000067CC; // type:function size:0x1A0 +fn_1_696C = .text:0x0000696C; // type:function size:0x54 +fn_1_69C0 = .text:0x000069C0; // type:function size:0x84 +fn_1_6A44 = .text:0x00006A44; // type:function size:0x118 +fn_1_6B5C = .text:0x00006B5C; // type:function size:0x58 +fn_1_6BB4 = .text:0x00006BB4; // type:function size:0x370 +fn_1_6F24 = .text:0x00006F24; // type:function size:0xD8 +fn_1_6FFC = .text:0x00006FFC; // type:function size:0x180 +fn_1_717C = .text:0x0000717C; // type:function size:0x48 +fn_1_71C4 = .text:0x000071C4; // type:function size:0x134 +fn_1_72F8 = .text:0x000072F8; // type:function size:0x3B0 +fn_1_76A8 = .text:0x000076A8; // type:function size:0x70 +fn_1_7718 = .text:0x00007718; // type:function size:0xD8 +fn_1_77F0 = .text:0x000077F0; // type:function size:0x1C0 +fn_1_79B0 = .text:0x000079B0; // type:function size:0x48 +fn_1_79F8 = .text:0x000079F8; // type:function size:0x134 +fn_1_7B2C = .text:0x00007B2C; // type:function size:0x70 +fn_1_7B9C = .text:0x00007B9C; // type:function size:0xB0 +fn_1_7C4C = .text:0x00007C4C; // type:function size:0x160 +fn_1_7DAC = .text:0x00007DAC; // type:function size:0x4 +fn_1_7DB0 = .text:0x00007DB0; // type:function size:0x120 +fn_1_7ED0 = .text:0x00007ED0; // type:function size:0xB0 +fn_1_7F80 = .text:0x00007F80; // type:function size:0x180 +fn_1_8100 = .text:0x00008100; // type:function size:0x4 +fn_1_8104 = .text:0x00008104; // type:function size:0x140 +fn_1_8244 = .text:0x00008244; // type:function size:0x84 +fn_1_82C8 = .text:0x000082C8; // type:function size:0xCD0 +fn_1_8F98 = .text:0x00008F98; // type:function size:0x248 +fn_1_91E0 = .text:0x000091E0; // type:function size:0x2DC +fn_1_94BC = .text:0x000094BC; // type:function size:0x4 +fn_1_94C0 = .text:0x000094C0; // type:function size:0xAB8 +fn_1_9F78 = .text:0x00009F78; // type:function size:0x300 +fn_1_A278 = .text:0x0000A278; // type:function size:0x50 +fn_1_A2C8 = .text:0x0000A2C8; // type:function size:0xAEC +fn_1_ADB4 = .text:0x0000ADB4; // type:function size:0x350 +fn_1_B104 = .text:0x0000B104; // type:function size:0xDC +fn_1_B1E0 = .text:0x0000B1E0; // type:function size:0x7C +fn_1_B25C = .text:0x0000B25C; // type:function size:0x1C0 +fn_1_B41C = .text:0x0000B41C; // type:function size:0x54 +fn_1_B470 = .text:0x0000B470; // type:function size:0x4 +fn_1_B474 = .text:0x0000B474; // type:function size:0x488 +fn_1_B8FC = .text:0x0000B8FC; // type:function size:0x31C +fn_1_BC18 = .text:0x0000BC18; // type:function size:0x8DC +fn_1_C4F4 = .text:0x0000C4F4; // type:function size:0x378 +fn_1_C86C = .text:0x0000C86C; // type:function size:0x4C8 +fn_1_CD34 = .text:0x0000CD34; // type:function size:0xA4 +fn_1_CDD8 = .text:0x0000CDD8; // type:function size:0x14C +fn_1_CF24 = .text:0x0000CF24; // type:function size:0x74 +fn_1_CF98 = .text:0x0000CF98; // type:function size:0xD4 +fn_1_D06C = .text:0x0000D06C; // type:function size:0xD0 +fn_1_D13C = .text:0x0000D13C; // type:function size:0x34C +fn_1_D488 = .text:0x0000D488; // type:function size:0x90 +fn_1_D518 = .text:0x0000D518; // type:function size:0xB4 +fn_1_D5CC = .text:0x0000D5CC; // type:function size:0x90 +fn_1_D65C = .text:0x0000D65C; // type:function size:0x254 +fn_1_D8B0 = .text:0x0000D8B0; // type:function size:0x5C +fn_1_D90C = .text:0x0000D90C; // type:function size:0x490 +fn_1_DD9C = .text:0x0000DD9C; // type:function size:0xE4 +fn_1_DE80 = .text:0x0000DE80; // type:function size:0x3B4 +fn_1_E234 = .text:0x0000E234; // type:function size:0xF80 +fn_1_F1B4 = .text:0x0000F1B4; // type:function size:0x500 +fn_1_F6B4 = .text:0x0000F6B4; // type:function size:0x3BC +fn_1_FA70 = .text:0x0000FA70; // type:function size:0xC0C +fn_1_1067C = .text:0x0001067C; // type:function size:0xE8 +fn_1_10764 = .text:0x00010764; // type:function size:0x9E4 +fn_1_11148 = .text:0x00011148; // type:function size:0x448 +fn_1_11590 = .text:0x00011590; // type:function size:0x31C +fn_1_118AC = .text:0x000118AC; // type:function size:0x228 +fn_1_11AD4 = .text:0x00011AD4; // type:function size:0x5E0 +fn_1_120B4 = .text:0x000120B4; // type:function size:0x1D0 +fn_1_12284 = .text:0x00012284; // type:function size:0xDC +fn_1_12360 = .text:0x00012360; // type:function size:0x4EC +fn_1_1284C = .text:0x0001284C; // type:function size:0x5C +fn_1_128A8 = .text:0x000128A8; // type:function size:0x22C +fn_1_12AD4 = .text:0x00012AD4; // type:function size:0xD4 +fn_1_12BA8 = .text:0x00012BA8; // type:function size:0x48 +fn_1_12BF0 = .text:0x00012BF0; // type:function size:0x38 +fn_1_12C28 = .text:0x00012C28; // type:function size:0x8C +fn_1_12CB4 = .text:0x00012CB4; // type:function size:0xAE4 +fn_1_13798 = .text:0x00013798; // type:function size:0x4 +fn_1_1379C = .text:0x0001379C; // type:function size:0x3DC +fn_1_13B78 = .text:0x00013B78; // type:function size:0x6C +fn_1_13BE4 = .text:0x00013BE4; // type:function size:0x11C +fn_1_13D00 = .text:0x00013D00; // type:function size:0x7E4 +fn_1_144E4 = .text:0x000144E4; // type:function size:0x330 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x1 data:byte +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x8C data:float +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x24 +jumptable_1_data_B0 = .data:0x000000B0; // type:object size:0x40 scope:local +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x348 +lbl_1_data_438 = .data:0x00000438; // type:object size:0x348 +lbl_1_data_780 = .data:0x00000780; // type:object size:0x24 data:float +lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x2 data:2byte +lbl_1_data_7A8 = .data:0x000007A8; // type:object size:0x1C +lbl_1_data_7C4 = .data:0x000007C4; // type:object size:0x1C +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x18 +lbl_1_data_7F8 = .data:0x000007F8; // type:object size:0xC +lbl_1_data_804 = .data:0x00000804; // type:object size:0xC +lbl_1_data_810 = .data:0x00000810; // type:object size:0x4 +lbl_1_data_814 = .data:0x00000814; // type:object size:0xC +lbl_1_data_820 = .data:0x00000820; // type:object size:0xC +lbl_1_data_82C = .data:0x0000082C; // type:object size:0xC +lbl_1_data_838 = .data:0x00000838; // type:object size:0xC +lbl_1_data_844 = .data:0x00000844; // type:object size:0xC +lbl_1_data_850 = .data:0x00000850; // type:object size:0x20 +lbl_1_data_870 = .data:0x00000870; // type:object size:0x1F data:string +lbl_1_data_88F = .data:0x0000088F; // type:object size:0x1 data:byte +lbl_1_data_893 = .data:0x00000893; // type:object size:0x1 data:byte +lbl_1_data_897 = .data:0x00000897; // type:object size:0x1 data:byte +lbl_1_data_89B = .data:0x0000089B; // type:object size:0x1 data:byte +lbl_1_data_89F = .data:0x0000089F; // type:object size:0x5 data:byte +lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x10 +lbl_1_data_8B4 = .data:0x000008B4; // type:object size:0x10 +lbl_1_data_8C4 = .data:0x000008C4; // type:object size:0xC +lbl_1_data_8D0 = .data:0x000008D0; // type:object size:0xC +lbl_1_data_8DC = .data:0x000008DC; // type:object size:0x4 +lbl_1_data_8E0 = .data:0x000008E0; // type:object size:0x30 +lbl_1_data_910 = .data:0x00000910; // type:object size:0x20 +lbl_1_data_930 = .data:0x00000930; // type:object size:0x30 +lbl_1_data_960 = .data:0x00000960; // type:object size:0x348 +lbl_1_data_CA8 = .data:0x00000CA8; // type:object size:0x348 +lbl_1_data_FF0 = .data:0x00000FF0; // type:object size:0x10 +lbl_1_data_1000 = .data:0x00001000; // type:object size:0x19 data:string +lbl_1_data_1019 = .data:0x00001019; // type:object size:0x19 data:string +lbl_1_data_1032 = .data:0x00001032; // type:object size:0x1A data:string +lbl_1_data_104C = .data:0x0000104C; // type:object size:0x1C +lbl_1_data_1068 = .data:0x00001068; // type:object size:0x10 +lbl_1_data_1078 = .data:0x00001078; // type:object size:0x28 +lbl_1_data_10A0 = .data:0x000010A0; // type:object size:0x80 +lbl_1_data_1120 = .data:0x00001120; // type:object size:0x20 +lbl_1_data_1140 = .data:0x00001140; // type:object size:0x8 +lbl_1_data_1148 = .data:0x00001148; // type:object size:0x1C data:string +lbl_1_data_1164 = .data:0x00001164; // type:object size:0x90 +lbl_1_data_11F4 = .data:0x000011F4; // type:object size:0x4 data:4byte +lbl_1_data_11F8 = .data:0x000011F8; // type:object size:0x20 +lbl_1_data_1218 = .data:0x00001218; // type:object size:0x18 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0xC data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x50 +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:4byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x8 data:4byte +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x18 data:float +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x8 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:float +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0xC0 +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0x4 data:4byte +lbl_1_bss_1C8 = .bss:0x000001C8; // type:object size:0x4 data:4byte +lbl_1_bss_1CC = .bss:0x000001CC; // type:object size:0x4 data:4byte +lbl_1_bss_1D0 = .bss:0x000001D0; // type:object size:0xC +lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0xC +lbl_1_bss_1E8 = .bss:0x000001E8; // type:object size:0xC +lbl_1_bss_1F4 = .bss:0x000001F4; // type:object size:0x2 data:2byte +lbl_1_bss_1F6 = .bss:0x000001F6; // type:object size:0x2 data:2byte +lbl_1_bss_1F8 = .bss:0x000001F8; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m407dll/splits.txt b/config/GMPP01_00/rels/m407dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m407dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m407dll/symbols.txt b/config/GMPP01_00/rels/m407dll/symbols.txt new file mode 100644 index 00000000..51e3c09c --- /dev/null +++ b/config/GMPP01_00/rels/m407dll/symbols.txt @@ -0,0 +1,271 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x54 +fn_1_F4 = .text:0x000000F4; // type:function size:0xA0 +fn_1_194 = .text:0x00000194; // type:function size:0x50 +fn_1_1E4 = .text:0x000001E4; // type:function size:0x54 +fn_1_238 = .text:0x00000238; // type:function size:0x54 +fn_1_28C = .text:0x0000028C; // type:function size:0x54 +fn_1_2E0 = .text:0x000002E0; // type:function size:0x54 +fn_1_334 = .text:0x00000334; // type:function size:0x54 +fn_1_388 = .text:0x00000388; // type:function size:0x3C +fn_1_3C4 = .text:0x000003C4; // type:function size:0x40 +fn_1_404 = .text:0x00000404; // type:function size:0xBC +fn_1_4C0 = .text:0x000004C0; // type:function size:0x48 +fn_1_508 = .text:0x00000508; // type:function size:0x34 +fn_1_53C = .text:0x0000053C; // type:function size:0x2C +fn_1_568 = .text:0x00000568; // type:function size:0xC0 +fn_1_628 = .text:0x00000628; // type:function size:0x24 +fn_1_64C = .text:0x0000064C; // type:function size:0x350 +fn_1_99C = .text:0x0000099C; // type:function size:0x80 +fn_1_A1C = .text:0x00000A1C; // type:function size:0x6C +fn_1_A88 = .text:0x00000A88; // type:function size:0x4 +fn_1_A8C = .text:0x00000A8C; // type:function size:0x1CC +fn_1_C58 = .text:0x00000C58; // type:function size:0x9C +fn_1_CF4 = .text:0x00000CF4; // type:function size:0xC0 +fn_1_DB4 = .text:0x00000DB4; // type:function size:0x1D8 +fn_1_F8C = .text:0x00000F8C; // type:function size:0xE8 +fn_1_1074 = .text:0x00001074; // type:function size:0x158 +fn_1_11CC = .text:0x000011CC; // type:function size:0x218 +fn_1_13E4 = .text:0x000013E4; // type:function size:0x7C +fn_1_1460 = .text:0x00001460; // type:function size:0x90 +fn_1_14F0 = .text:0x000014F0; // type:function size:0xE8 +fn_1_15D8 = .text:0x000015D8; // type:function size:0x54 +fn_1_162C = .text:0x0000162C; // type:function size:0x460 +fn_1_1A8C = .text:0x00001A8C; // type:function size:0x90 +fn_1_1B1C = .text:0x00001B1C; // type:function size:0x18C +fn_1_1CA8 = .text:0x00001CA8; // type:function size:0x4 +fn_1_1CAC = .text:0x00001CAC; // type:function size:0x28 +fn_1_1CD4 = .text:0x00001CD4; // type:function size:0x34 +fn_1_1D08 = .text:0x00001D08; // type:function size:0x28 +fn_1_1D30 = .text:0x00001D30; // type:function size:0x34 +fn_1_1D64 = .text:0x00001D64; // type:function size:0x10 +fn_1_1D74 = .text:0x00001D74; // type:function size:0x14 +fn_1_1D88 = .text:0x00001D88; // type:function size:0x28 +fn_1_1DB0 = .text:0x00001DB0; // type:function size:0x16C +fn_1_1F1C = .text:0x00001F1C; // type:function size:0x108 +fn_1_2024 = .text:0x00002024; // type:function size:0x330 +fn_1_2354 = .text:0x00002354; // type:function size:0x19C +fn_1_24F0 = .text:0x000024F0; // type:function size:0x74 +fn_1_2564 = .text:0x00002564; // type:function size:0x5C +fn_1_25C0 = .text:0x000025C0; // type:function size:0x10C +fn_1_26CC = .text:0x000026CC; // type:function size:0xA4 +fn_1_2770 = .text:0x00002770; // type:function size:0x110 +fn_1_2880 = .text:0x00002880; // type:function size:0x38 +fn_1_28B8 = .text:0x000028B8; // type:function size:0x1C +fn_1_28D4 = .text:0x000028D4; // type:function size:0x10 +fn_1_28E4 = .text:0x000028E4; // type:function size:0x28 +fn_1_290C = .text:0x0000290C; // type:function size:0x24 +fn_1_2930 = .text:0x00002930; // type:function size:0x24C +fn_1_2B7C = .text:0x00002B7C; // type:function size:0x67C +fn_1_31F8 = .text:0x000031F8; // type:function size:0x168 +fn_1_3360 = .text:0x00003360; // type:function size:0x4 +fn_1_3364 = .text:0x00003364; // type:function size:0x140 +fn_1_34A4 = .text:0x000034A4; // type:function size:0x22C +fn_1_36D0 = .text:0x000036D0; // type:function size:0xE0 +fn_1_37B0 = .text:0x000037B0; // type:function size:0x318 +fn_1_3AC8 = .text:0x00003AC8; // type:function size:0xA0 +fn_1_3B68 = .text:0x00003B68; // type:function size:0x50 +fn_1_3BB8 = .text:0x00003BB8; // type:function size:0x170 +fn_1_3D28 = .text:0x00003D28; // type:function size:0x24 +fn_1_3D4C = .text:0x00003D4C; // type:function size:0xE8 +fn_1_3E34 = .text:0x00003E34; // type:function size:0x148 +fn_1_3F7C = .text:0x00003F7C; // type:function size:0x74 +fn_1_3FF0 = .text:0x00003FF0; // type:function size:0x4 +fn_1_3FF4 = .text:0x00003FF4; // type:function size:0x100 +fn_1_40F4 = .text:0x000040F4; // type:function size:0xD8 +fn_1_41CC = .text:0x000041CC; // type:function size:0x328 +fn_1_44F4 = .text:0x000044F4; // type:function size:0x50 +fn_1_4544 = .text:0x00004544; // type:function size:0x118 +fn_1_465C = .text:0x0000465C; // type:function size:0x24 +fn_1_4680 = .text:0x00004680; // type:function size:0x6C +fn_1_46EC = .text:0x000046EC; // type:function size:0x11C +fn_1_4808 = .text:0x00004808; // type:function size:0x50 +fn_1_4858 = .text:0x00004858; // type:function size:0x4 +fn_1_485C = .text:0x0000485C; // type:function size:0x124 +fn_1_4980 = .text:0x00004980; // type:function size:0x1FC +fn_1_4B7C = .text:0x00004B7C; // type:function size:0xC0 +fn_1_4C3C = .text:0x00004C3C; // type:function size:0x30 +fn_1_4C6C = .text:0x00004C6C; // type:function size:0xA0 +fn_1_4D0C = .text:0x00004D0C; // type:function size:0x48 +fn_1_4D54 = .text:0x00004D54; // type:function size:0x138 +fn_1_4E8C = .text:0x00004E8C; // type:function size:0x11C +fn_1_4FA8 = .text:0x00004FA8; // type:function size:0x134 +fn_1_50DC = .text:0x000050DC; // type:function size:0xFC +fn_1_51D8 = .text:0x000051D8; // type:function size:0xC8 +fn_1_52A0 = .text:0x000052A0; // type:function size:0x10C +fn_1_53AC = .text:0x000053AC; // type:function size:0x1BC +fn_1_5568 = .text:0x00005568; // type:function size:0xBC +fn_1_5624 = .text:0x00005624; // type:function size:0x1D4 +fn_1_57F8 = .text:0x000057F8; // type:function size:0x27C +fn_1_5A74 = .text:0x00005A74; // type:function size:0x130 +fn_1_5BA4 = .text:0x00005BA4; // type:function size:0xAC +fn_1_5C50 = .text:0x00005C50; // type:function size:0x270 +fn_1_5EC0 = .text:0x00005EC0; // type:function size:0x74 +fn_1_5F34 = .text:0x00005F34; // type:function size:0x50 +fn_1_5F84 = .text:0x00005F84; // type:function size:0x24 +fn_1_5FA8 = .text:0x00005FA8; // type:function size:0x30 +fn_1_5FD8 = .text:0x00005FD8; // type:function size:0x1BC +fn_1_6194 = .text:0x00006194; // type:function size:0x78 +fn_1_620C = .text:0x0000620C; // type:function size:0x88 +fn_1_6294 = .text:0x00006294; // type:function size:0x164 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x20 +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC data:4byte +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x100 +lbl_1_data_100 = .data:0x00000100; // type:object size:0x20 +lbl_1_data_120 = .data:0x00000120; // type:object size:0x1C +lbl_1_data_13C = .data:0x0000013C; // type:object size:0x20 +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 +lbl_1_data_184 = .data:0x00000184; // type:object size:0x8 +lbl_1_data_18C = .data:0x0000018C; // type:object size:0xC +lbl_1_data_198 = .data:0x00000198; // type:object size:0x34 data:4byte +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x30 +lbl_1_data_1FC = .data:0x000001FC; // type:object size:0xC data:float +lbl_1_data_208 = .data:0x00000208; // type:object size:0xC +lbl_1_data_214 = .data:0x00000214; // type:object size:0x4 +lbl_1_data_218 = .data:0x00000218; // type:object size:0x10 +lbl_1_data_228 = .data:0x00000228; // type:object size:0x10 data:4byte +lbl_1_data_238 = .data:0x00000238; // type:object size:0x20 data:4byte +lbl_1_data_258 = .data:0x00000258; // type:object size:0x14 +lbl_1_data_26C = .data:0x0000026C; // type:object size:0xC +lbl_1_data_278 = .data:0x00000278; // type:object size:0x10 +lbl_1_data_288 = .data:0x00000288; // type:object size:0x14 +lbl_1_data_29C = .data:0x0000029C; // type:object size:0xC +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x34 +lbl_1_data_2DC = .data:0x000002DC; // type:object size:0x10 +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xC +lbl_1_data_2F8 = .data:0x000002F8; // type:object size:0xC +lbl_1_data_304 = .data:0x00000304; // type:object size:0x4 +lbl_1_data_308 = .data:0x00000308; // type:object size:0xC +lbl_1_data_314 = .data:0x00000314; // type:object size:0xC +lbl_1_data_320 = .data:0x00000320; // type:object size:0x4 +lbl_1_data_324 = .data:0x00000324; // type:object size:0xC +lbl_1_data_330 = .data:0x00000330; // type:object size:0xC +lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 +lbl_1_data_340 = .data:0x00000340; // type:object size:0xC +lbl_1_data_34C = .data:0x0000034C; // type:object size:0xC +lbl_1_data_358 = .data:0x00000358; // type:object size:0x8 +lbl_1_data_360 = .data:0x00000360; // type:object size:0xC +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x8 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x10 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x2 data:2byte +lbl_1_bss_3A = .bss:0x0000003A; // type:object size:0x2A +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte +lbl_1_bss_66 = .bss:0x00000066; // type:object size:0x2 data:2byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x1E30 data:2byte +lbl_1_bss_1E98 = .bss:0x00001E98; // type:object size:0xF18 +lbl_1_bss_2DB0 = .bss:0x00002DB0; // type:object size:0xA10 +lbl_1_bss_37C0 = .bss:0x000037C0; // type:object size:0x8 data:4byte +lbl_1_bss_37C8 = .bss:0x000037C8; // type:object size:0x10 +lbl_1_bss_37D8 = .bss:0x000037D8; // type:object size:0x8 data:4byte +lbl_1_bss_37E0 = .bss:0x000037E0; // type:object size:0x190 +lbl_1_bss_3970 = .bss:0x00003970; // type:object size:0x8 data:4byte +lbl_1_bss_3978 = .bss:0x00003978; // type:object size:0x2 data:2byte +lbl_1_bss_397C = .bss:0x0000397C; // type:object size:0x4 data:4byte +lbl_1_bss_3980 = .bss:0x00003980; // type:object size:0x8 data:4byte +lbl_1_bss_3988 = .bss:0x00003988; // type:object size:0x4 data:4byte +lbl_1_bss_398C = .bss:0x0000398C; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m408Dll/splits.txt b/config/GMPP01_00/rels/m408Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m408Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m408Dll/symbols.txt b/config/GMPP01_00/rels/m408Dll/symbols.txt new file mode 100644 index 00000000..650a8242 --- /dev/null +++ b/config/GMPP01_00/rels/m408Dll/symbols.txt @@ -0,0 +1,548 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x47C +fn_1_51C = .text:0x0000051C; // type:function size:0x50 +fn_1_56C = .text:0x0000056C; // type:function size:0x438 +fn_1_9A4 = .text:0x000009A4; // type:function size:0x4C +fn_1_9F0 = .text:0x000009F0; // type:function size:0x50 +fn_1_A40 = .text:0x00000A40; // type:function size:0x298 +fn_1_CD8 = .text:0x00000CD8; // type:function size:0x220 +fn_1_EF8 = .text:0x00000EF8; // type:function size:0x3A8 +fn_1_12A0 = .text:0x000012A0; // type:function size:0x1EC +fn_1_148C = .text:0x0000148C; // type:function size:0x434 +fn_1_18C0 = .text:0x000018C0; // type:function size:0x80 +fn_1_1940 = .text:0x00001940; // type:function size:0x120 +fn_1_1A60 = .text:0x00001A60; // type:function size:0x98 +fn_1_1AF8 = .text:0x00001AF8; // type:function size:0xF0 +fn_1_1BE8 = .text:0x00001BE8; // type:function size:0x26C +fn_1_1E54 = .text:0x00001E54; // type:function size:0x68 +fn_1_1EBC = .text:0x00001EBC; // type:function size:0x718 +fn_1_25D4 = .text:0x000025D4; // type:function size:0x110 +fn_1_26E4 = .text:0x000026E4; // type:function size:0x8C8 +fn_1_2FAC = .text:0x00002FAC; // type:function size:0x924 +fn_1_38D0 = .text:0x000038D0; // type:function size:0x5B0 +fn_1_3E80 = .text:0x00003E80; // type:function size:0xBD8 +fn_1_4A58 = .text:0x00004A58; // type:function size:0x640 +fn_1_5098 = .text:0x00005098; // type:function size:0x44C +fn_1_54E4 = .text:0x000054E4; // type:function size:0x1A0 +fn_1_5684 = .text:0x00005684; // type:function size:0x41C +fn_1_5AA0 = .text:0x00005AA0; // type:function size:0x14 +fn_1_5AB4 = .text:0x00005AB4; // type:function size:0x318 +fn_1_5DCC = .text:0x00005DCC; // type:function size:0x430 +fn_1_61FC = .text:0x000061FC; // type:function size:0x344 +fn_1_6540 = .text:0x00006540; // type:function size:0x284 +fn_1_67C4 = .text:0x000067C4; // type:function size:0xA4 +fn_1_6868 = .text:0x00006868; // type:function size:0x10 +fn_1_6878 = .text:0x00006878; // type:function size:0x10 +fn_1_6888 = .text:0x00006888; // type:function size:0x10 +fn_1_6898 = .text:0x00006898; // type:function size:0x4 +fn_1_689C = .text:0x0000689C; // type:function size:0x8 +fn_1_68A4 = .text:0x000068A4; // type:function size:0x4 +fn_1_68A8 = .text:0x000068A8; // type:function size:0x1C +fn_1_68C4 = .text:0x000068C4; // type:function size:0x364 +fn_1_6C28 = .text:0x00006C28; // type:function size:0x324 +fn_1_6F4C = .text:0x00006F4C; // type:function size:0x66C +fn_1_75B8 = .text:0x000075B8; // type:function size:0x260 +fn_1_7818 = .text:0x00007818; // type:function size:0xC0 +fn_1_78D8 = .text:0x000078D8; // type:function size:0x748 +fn_1_8020 = .text:0x00008020; // type:function size:0x15C +fn_1_817C = .text:0x0000817C; // type:function size:0x348 +fn_1_84C4 = .text:0x000084C4; // type:function size:0x378 +fn_1_883C = .text:0x0000883C; // type:function size:0x11C +fn_1_8958 = .text:0x00008958; // type:function size:0xC8 +fn_1_8A20 = .text:0x00008A20; // type:function size:0x58C +fn_1_8FAC = .text:0x00008FAC; // type:function size:0x568 +fn_1_9514 = .text:0x00009514; // type:function size:0x25C +fn_1_9770 = .text:0x00009770; // type:function size:0x258 +fn_1_99C8 = .text:0x000099C8; // type:function size:0x96C +fn_1_A334 = .text:0x0000A334; // type:function size:0x48 +fn_1_A37C = .text:0x0000A37C; // type:function size:0x16C +fn_1_A4E8 = .text:0x0000A4E8; // type:function size:0x3AC +fn_1_A894 = .text:0x0000A894; // type:function size:0x760 +fn_1_AFF4 = .text:0x0000AFF4; // type:function size:0x70C +fn_1_B700 = .text:0x0000B700; // type:function size:0x494 +fn_1_BB94 = .text:0x0000BB94; // type:function size:0x24C +fn_1_BDE0 = .text:0x0000BDE0; // type:function size:0x5E0 +fn_1_C3C0 = .text:0x0000C3C0; // type:function size:0x7C +fn_1_C43C = .text:0x0000C43C; // type:function size:0x10 +fn_1_C44C = .text:0x0000C44C; // type:function size:0x98 +fn_1_C4E4 = .text:0x0000C4E4; // type:function size:0x4C +fn_1_C530 = .text:0x0000C530; // type:function size:0x7E4 +fn_1_CD14 = .text:0x0000CD14; // type:function size:0x154 +fn_1_CE68 = .text:0x0000CE68; // type:function size:0x84 +fn_1_CEEC = .text:0x0000CEEC; // type:function size:0x118 +fn_1_D004 = .text:0x0000D004; // type:function size:0x6EC +fn_1_D6F0 = .text:0x0000D6F0; // type:function size:0x288 +fn_1_D978 = .text:0x0000D978; // type:function size:0xF4 +fn_1_DA6C = .text:0x0000DA6C; // type:function size:0x564 +fn_1_DFD0 = .text:0x0000DFD0; // type:function size:0x340 +fn_1_E310 = .text:0x0000E310; // type:function size:0x6A4 +fn_1_E9B4 = .text:0x0000E9B4; // type:function size:0x544 +fn_1_EEF8 = .text:0x0000EEF8; // type:function size:0x174 +fn_1_F06C = .text:0x0000F06C; // type:function size:0x444 +fn_1_F4B0 = .text:0x0000F4B0; // type:function size:0xB4 +fn_1_F564 = .text:0x0000F564; // type:function size:0x33C +fn_1_F8A0 = .text:0x0000F8A0; // type:function size:0x2F8 +fn_1_FB98 = .text:0x0000FB98; // type:function size:0x8EC +fn_1_10484 = .text:0x00010484; // type:function size:0x3AC +fn_1_10830 = .text:0x00010830; // type:function size:0x330 +fn_1_10B60 = .text:0x00010B60; // type:function size:0xB10 +fn_1_11670 = .text:0x00011670; // type:function size:0x54 +fn_1_116C4 = .text:0x000116C4; // type:function size:0xBC +fn_1_11780 = .text:0x00011780; // type:function size:0x150 +fn_1_118D0 = .text:0x000118D0; // type:function size:0x90 +fn_1_11960 = .text:0x00011960; // type:function size:0x4DC +fn_1_11E3C = .text:0x00011E3C; // type:function size:0x518 +fn_1_12354 = .text:0x00012354; // type:function size:0x74 +fn_1_123C8 = .text:0x000123C8; // type:function size:0x2A8 +fn_1_12670 = .text:0x00012670; // type:function size:0x4 +fn_1_12674 = .text:0x00012674; // type:function size:0x12C +fn_1_127A0 = .text:0x000127A0; // type:function size:0x4CC +fn_1_12C6C = .text:0x00012C6C; // type:function size:0x3F0 +fn_1_1305C = .text:0x0001305C; // type:function size:0x47C +fn_1_134D8 = .text:0x000134D8; // type:function size:0x348 +fn_1_13820 = .text:0x00013820; // type:function size:0x568 +fn_1_13D88 = .text:0x00013D88; // type:function size:0x2E4 +fn_1_1406C = .text:0x0001406C; // type:function size:0x464 +fn_1_144D0 = .text:0x000144D0; // type:function size:0x8E4 +fn_1_14DB4 = .text:0x00014DB4; // type:function size:0x3F0 +fn_1_151A4 = .text:0x000151A4; // type:function size:0x43C +fn_1_155E0 = .text:0x000155E0; // type:function size:0x38 +fn_1_15618 = .text:0x00015618; // type:function size:0x40 +fn_1_15658 = .text:0x00015658; // type:function size:0x4F8 +fn_1_15B50 = .text:0x00015B50; // type:function size:0x7C +fn_1_15BCC = .text:0x00015BCC; // type:function size:0xD8 +fn_1_15CA4 = .text:0x00015CA4; // type:function size:0xC0 +fn_1_15D64 = .text:0x00015D64; // type:function size:0x568 +fn_1_162CC = .text:0x000162CC; // type:function size:0xFC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC data:4byte +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x10 data:4byte +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x30 data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x10 data:4byte +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x20 data:4byte +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x38 data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x48 +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x10 data:4byte +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x10 data:4byte +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x28 data:2byte +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x10 data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x10 data:4byte +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:double +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x8 data:double +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 data:double +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x8 data:double +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 data:double +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 data:double +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x8 data:double +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:double +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 data:double +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 data:double +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 data:double +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x8 data:double +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x8 data:double +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x8 data:double +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x8 data:double +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 data:float +lbl_1_rodata_66C = .rodata:0x0000066C; // type:object size:0x4 data:float +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 data:double +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 data:float +lbl_1_rodata_67C = .rodata:0x0000067C; // type:object size:0x4 data:float +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 data:float +lbl_1_rodata_684 = .rodata:0x00000684; // type:object size:0x4 data:float +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x4 data:float +lbl_1_rodata_68C = .rodata:0x0000068C; // type:object size:0x4 data:float +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x4 data:float +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x8 data:double +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x8 data:double +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float +lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 data:float +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x4 data:float +lbl_1_rodata_6B4 = .rodata:0x000006B4; // type:object size:0x4 data:float +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x4 data:float +lbl_1_rodata_6BC = .rodata:0x000006BC; // type:object size:0x4 data:float +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x4 data:float +lbl_1_rodata_6C4 = .rodata:0x000006C4; // type:object size:0x4 data:float +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x8 data:double +lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x4 data:float +lbl_1_rodata_6D4 = .rodata:0x000006D4; // type:object size:0x4 data:float +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 data:float +lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 data:float +lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x8 data:double +lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0x8 data:double +lbl_1_rodata_6F8 = .rodata:0x000006F8; // type:object size:0x4 data:float +lbl_1_rodata_700 = .rodata:0x00000700; // type:object size:0x8 data:double +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x8 data:double +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x4 data:float +lbl_1_rodata_714 = .rodata:0x00000714; // type:object size:0x4 data:float +lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 data:float +lbl_1_rodata_71C = .rodata:0x0000071C; // type:object size:0x4 data:float +lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x4 data:float +lbl_1_rodata_724 = .rodata:0x00000724; // type:object size:0x4 data:float +lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float +lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float +lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float +lbl_1_rodata_738 = .rodata:0x00000738; // type:object size:0x8 data:double +lbl_1_rodata_740 = .rodata:0x00000740; // type:object size:0x4 data:float +lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x8 data:double +lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 data:float +lbl_1_rodata_754 = .rodata:0x00000754; // type:object size:0x4 data:float +lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x4 data:float +lbl_1_rodata_75C = .rodata:0x0000075C; // type:object size:0x4 data:float +lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x4 data:float +lbl_1_rodata_764 = .rodata:0x00000764; // type:object size:0x4 data:float +lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x4 data:float +lbl_1_rodata_76C = .rodata:0x0000076C; // type:object size:0x4 data:float +lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0x4 data:float +lbl_1_rodata_774 = .rodata:0x00000774; // type:object size:0x4 data:float +lbl_1_rodata_778 = .rodata:0x00000778; // type:object size:0x8 data:double +lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x4 data:float +lbl_1_rodata_784 = .rodata:0x00000784; // type:object size:0x4 data:float +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x4 data:float +lbl_1_rodata_78C = .rodata:0x0000078C; // type:object size:0x4 data:float +lbl_1_rodata_790 = .rodata:0x00000790; // type:object size:0x4 data:float +lbl_1_rodata_794 = .rodata:0x00000794; // type:object size:0x4 data:float +lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x4 data:float +lbl_1_rodata_79C = .rodata:0x0000079C; // type:object size:0x4 data:float +lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x4 data:float +lbl_1_rodata_7A4 = .rodata:0x000007A4; // type:object size:0x4 data:float +lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 data:float +lbl_1_rodata_7AC = .rodata:0x000007AC; // type:object size:0x4 data:float +lbl_1_rodata_7B0 = .rodata:0x000007B0; // type:object size:0x4 data:float +lbl_1_rodata_7B4 = .rodata:0x000007B4; // type:object size:0x4 data:float +lbl_1_rodata_7B8 = .rodata:0x000007B8; // type:object size:0x8 data:double +lbl_1_rodata_7C0 = .rodata:0x000007C0; // type:object size:0x4 data:float +lbl_1_rodata_7C4 = .rodata:0x000007C4; // type:object size:0x4 data:float +lbl_1_rodata_7C8 = .rodata:0x000007C8; // type:object size:0x4 data:float +lbl_1_rodata_7D0 = .rodata:0x000007D0; // type:object size:0x8 data:double +lbl_1_rodata_7D8 = .rodata:0x000007D8; // type:object size:0x8 data:double +lbl_1_rodata_7E0 = .rodata:0x000007E0; // type:object size:0x4 data:float +lbl_1_rodata_7E4 = .rodata:0x000007E4; // type:object size:0x4 data:float +lbl_1_rodata_7E8 = .rodata:0x000007E8; // type:object size:0x4 data:float +lbl_1_rodata_7EC = .rodata:0x000007EC; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 +lbl_1_data_20 = .data:0x00000020; // type:object size:0xC +lbl_1_data_2C = .data:0x0000002C; // type:object size:0xC +lbl_1_data_38 = .data:0x00000038; // type:object size:0x20 +lbl_1_data_58 = .data:0x00000058; // type:object size:0xC +lbl_1_data_64 = .data:0x00000064; // type:object size:0xC +lbl_1_data_70 = .data:0x00000070; // type:object size:0xC +lbl_1_data_7C = .data:0x0000007C; // type:object size:0x7 data:string +lbl_1_data_83 = .data:0x00000083; // type:object size:0x7 data:string +lbl_1_data_8A = .data:0x0000008A; // type:object size:0x7 data:string +lbl_1_data_91 = .data:0x00000091; // type:object size:0x7 data:string +lbl_1_data_98 = .data:0x00000098; // type:object size:0x8 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x28 +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x20 +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x1C +lbl_1_data_104 = .data:0x00000104; // type:object size:0x40 +lbl_1_data_144 = .data:0x00000144; // type:object size:0x58 +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x4 data:4byte +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x24 +lbl_1_data_1C4 = .data:0x000001C4; // type:object size:0x24 +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x24 +lbl_1_data_20C = .data:0x0000020C; // type:object size:0x2E8 +lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0x10 +lbl_1_data_504 = .data:0x00000504; // type:object size:0x4 +lbl_1_data_508 = .data:0x00000508; // type:object size:0xC +lbl_1_data_514 = .data:0x00000514; // type:object size:0xC +lbl_1_data_520 = .data:0x00000520; // type:object size:0x30 +jumptable_1_data_550 = .data:0x00000550; // type:object size:0x24 scope:local +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x14 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:float +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x2 data:2byte +lbl_1_bss_62 = .bss:0x00000062; // type:object size:0x2 data:2byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte +lbl_1_bss_66 = .bss:0x00000066; // type:object size:0x6 data:2byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x8 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0xC +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0xC +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x50 data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0xC data:float +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0xC data:float +lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x8 data:4byte +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x2 data:2byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x8 data:4byte +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x8 data:4byte +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x4 data:4byte +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte +lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x4 data:4byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x4 data:4byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x2 data:2byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x1C data:4byte +lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x4 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0xC00 +lbl_1_bss_D6C = .bss:0x00000D6C; // type:object size:0x30 +lbl_1_bss_D9C = .bss:0x00000D9C; // type:object size:0x4 data:4byte +lbl_1_bss_DA0 = .bss:0x00000DA0; // type:object size:0x4 data:4byte +lbl_1_bss_DA4 = .bss:0x00000DA4; // type:object size:0x6800 data:float +lbl_1_bss_75A4 = .bss:0x000075A4; // type:object size:0x4 data:4byte +lbl_1_bss_75A8 = .bss:0x000075A8; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m409Dll/splits.txt b/config/GMPP01_00/rels/m409Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m409Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m409Dll/symbols.txt b/config/GMPP01_00/rels/m409Dll/symbols.txt new file mode 100644 index 00000000..7c66be88 --- /dev/null +++ b/config/GMPP01_00/rels/m409Dll/symbols.txt @@ -0,0 +1,332 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x394 +fn_1_434 = .text:0x00000434; // type:function size:0x78 +fn_1_4AC = .text:0x000004AC; // type:function size:0x78 +fn_1_524 = .text:0x00000524; // type:function size:0x65C +fn_1_B80 = .text:0x00000B80; // type:function size:0x25C +fn_1_DDC = .text:0x00000DDC; // type:function size:0x194 +fn_1_F70 = .text:0x00000F70; // type:function size:0x178 +fn_1_10E8 = .text:0x000010E8; // type:function size:0xA8C +fn_1_1B74 = .text:0x00001B74; // type:function size:0x524 +fn_1_2098 = .text:0x00002098; // type:function size:0x354 +fn_1_23EC = .text:0x000023EC; // type:function size:0x28 +fn_1_2414 = .text:0x00002414; // type:function size:0x40 +fn_1_2454 = .text:0x00002454; // type:function size:0x30 +fn_1_2484 = .text:0x00002484; // type:function size:0x948 +fn_1_2DCC = .text:0x00002DCC; // type:function size:0xA74 +fn_1_3840 = .text:0x00003840; // type:function size:0x148 +fn_1_3988 = .text:0x00003988; // type:function size:0x150 +fn_1_3AD8 = .text:0x00003AD8; // type:function size:0x5CC +fn_1_40A4 = .text:0x000040A4; // type:function size:0x7C +fn_1_4120 = .text:0x00004120; // type:function size:0x5C +fn_1_417C = .text:0x0000417C; // type:function size:0x374 +fn_1_44F0 = .text:0x000044F0; // type:function size:0xB0C +fn_1_4FFC = .text:0x00004FFC; // type:function size:0x40C +fn_1_5408 = .text:0x00005408; // type:function size:0x1D8 +fn_1_55E0 = .text:0x000055E0; // type:function size:0x1FC +fn_1_57DC = .text:0x000057DC; // type:function size:0x104 +fn_1_58E0 = .text:0x000058E0; // type:function size:0x138 +fn_1_5A18 = .text:0x00005A18; // type:function size:0x544 +fn_1_5F5C = .text:0x00005F5C; // type:function size:0x60 +fn_1_5FBC = .text:0x00005FBC; // type:function size:0x38 +fn_1_5FF4 = .text:0x00005FF4; // type:function size:0x38 +fn_1_602C = .text:0x0000602C; // type:function size:0x5DC +fn_1_6608 = .text:0x00006608; // type:function size:0xCC +fn_1_66D4 = .text:0x000066D4; // type:function size:0xA4 +fn_1_6778 = .text:0x00006778; // type:function size:0x68 +fn_1_67E0 = .text:0x000067E0; // type:function size:0x120 +fn_1_6900 = .text:0x00006900; // type:function size:0x28 +fn_1_6928 = .text:0x00006928; // type:function size:0xA1C +fn_1_7344 = .text:0x00007344; // type:function size:0xCA4 +fn_1_7FE8 = .text:0x00007FE8; // type:function size:0x850 +fn_1_8838 = .text:0x00008838; // type:function size:0x4D0 +fn_1_8D08 = .text:0x00008D08; // type:function size:0x64 +fn_1_8D6C = .text:0x00008D6C; // type:function size:0x454 +fn_1_91C0 = .text:0x000091C0; // type:function size:0x46C +fn_1_962C = .text:0x0000962C; // type:function size:0xF58 +fn_1_A584 = .text:0x0000A584; // type:function size:0x43C +fn_1_A9C0 = .text:0x0000A9C0; // type:function size:0x1F4 +fn_1_ABB4 = .text:0x0000ABB4; // type:function size:0x54 +fn_1_AC08 = .text:0x0000AC08; // type:function size:0x138 +fn_1_AD40 = .text:0x0000AD40; // type:function size:0x154 +fn_1_AE94 = .text:0x0000AE94; // type:function size:0x78 +fn_1_AF0C = .text:0x0000AF0C; // type:function size:0x11C +fn_1_B028 = .text:0x0000B028; // type:function size:0x78 +fn_1_B0A0 = .text:0x0000B0A0; // type:function size:0x2D8 +fn_1_B378 = .text:0x0000B378; // type:function size:0x198 +fn_1_B510 = .text:0x0000B510; // type:function size:0xD8 +fn_1_B5E8 = .text:0x0000B5E8; // type:function size:0xBC +fn_1_B6A4 = .text:0x0000B6A4; // type:function size:0x33C +fn_1_B9E0 = .text:0x0000B9E0; // type:function size:0x4B0 +fn_1_BE90 = .text:0x0000BE90; // type:function size:0xA8 +fn_1_BF38 = .text:0x0000BF38; // type:function size:0x50 +fn_1_BF88 = .text:0x0000BF88; // type:function size:0x138 +fn_1_C0C0 = .text:0x0000C0C0; // type:function size:0xA4 +fn_1_C164 = .text:0x0000C164; // type:function size:0xA34 +fn_1_CB98 = .text:0x0000CB98; // type:function size:0x118 +fn_1_CCB0 = .text:0x0000CCB0; // type:function size:0x1C +fn_1_CCCC = .text:0x0000CCCC; // type:function size:0x2C +fn_1_CCF8 = .text:0x0000CCF8; // type:function size:0x184 +fn_1_CE7C = .text:0x0000CE7C; // type:function size:0xA0 +fn_1_CF1C = .text:0x0000CF1C; // type:function size:0xA8 +fn_1_CFC4 = .text:0x0000CFC4; // type:function size:0x8C +fn_1_D050 = .text:0x0000D050; // type:function size:0x98 +fn_1_D0E8 = .text:0x0000D0E8; // type:function size:0x348 +fn_1_D430 = .text:0x0000D430; // type:function size:0x618 +fn_1_DA48 = .text:0x0000DA48; // type:function size:0x370 +fn_1_DDB8 = .text:0x0000DDB8; // type:function size:0x13C +fn_1_DEF4 = .text:0x0000DEF4; // type:function size:0x2C +fn_1_DF20 = .text:0x0000DF20; // type:function size:0x308 +fn_1_E228 = .text:0x0000E228; // type:function size:0x80 +fn_1_E2A8 = .text:0x0000E2A8; // type:function size:0x520 +fn_1_E7C8 = .text:0x0000E7C8; // type:function size:0x50 +fn_1_E818 = .text:0x0000E818; // type:function size:0x44 +fn_1_E85C = .text:0x0000E85C; // type:function size:0x70 +fn_1_E8CC = .text:0x0000E8CC; // type:function size:0x74 +fn_1_E940 = .text:0x0000E940; // type:function size:0x5C +fn_1_E99C = .text:0x0000E99C; // type:function size:0x88 +fn_1_EA24 = .text:0x0000EA24; // type:function size:0x8C +fn_1_EAB0 = .text:0x0000EAB0; // type:function size:0x44 +fn_1_EAF4 = .text:0x0000EAF4; // type:function size:0x70 +fn_1_EB64 = .text:0x0000EB64; // type:function size:0x74 +fn_1_EBD8 = .text:0x0000EBD8; // type:function size:0x44 +fn_1_EC1C = .text:0x0000EC1C; // type:function size:0x70 +fn_1_EC8C = .text:0x0000EC8C; // type:function size:0x74 +fn_1_ED00 = .text:0x0000ED00; // type:function size:0x44 +fn_1_ED44 = .text:0x0000ED44; // type:function size:0x70 +fn_1_EDB4 = .text:0x0000EDB4; // type:function size:0x70 +fn_1_EE24 = .text:0x0000EE24; // type:function size:0x44 +fn_1_EE68 = .text:0x0000EE68; // type:function size:0x70 +fn_1_EED8 = .text:0x0000EED8; // type:function size:0x70 +fn_1_EF48 = .text:0x0000EF48; // type:function size:0x5C +fn_1_EFA4 = .text:0x0000EFA4; // type:function size:0x80 +fn_1_F024 = .text:0x0000F024; // type:function size:0x74 +fn_1_F098 = .text:0x0000F098; // type:function size:0x78 +fn_1_F110 = .text:0x0000F110; // type:function size:0x6C +fn_1_F17C = .text:0x0000F17C; // type:function size:0x78 +fn_1_F1F4 = .text:0x0000F1F4; // type:function size:0x98 +fn_1_F28C = .text:0x0000F28C; // type:function size:0x6C +fn_1_F2F8 = .text:0x0000F2F8; // type:function size:0x78 +fn_1_F370 = .text:0x0000F370; // type:function size:0x98 +fn_1_F408 = .text:0x0000F408; // type:function size:0x70 +fn_1_F478 = .text:0x0000F478; // type:function size:0x78 +fn_1_F4F0 = .text:0x0000F4F0; // type:function size:0x98 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x30 data:4byte +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x100 +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x30 data:4byte +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x10 data:byte +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0x10 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x70 data:float +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x4 data:4byte +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x9 data:string +lbl_1_data_CD = .data:0x000000CD; // type:object size:0x9 data:string +lbl_1_data_D6 = .data:0x000000D6; // type:object size:0x3 data:string +lbl_1_data_D9 = .data:0x000000D9; // type:object size:0x10 data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x26 data:string +lbl_1_data_10F = .data:0x0000010F; // type:object size:0x2D +lbl_1_data_13C = .data:0x0000013C; // type:object size:0x1C +lbl_1_data_158 = .data:0x00000158; // type:object size:0x20 +lbl_1_data_178 = .data:0x00000178; // type:object size:0x40 +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x14 +jumptable_1_data_1CC = .data:0x000001CC; // type:object size:0x20 scope:local +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x4 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x2 data:2byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x1 data:byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte +lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x1 data:byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:float +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x1 data:byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:float +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x1 data:byte +lbl_1_bss_21 = .bss:0x00000021; // type:object size:0x1 data:byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x9C data:2byte +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x4 data:4byte +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x2 data:2byte +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x8 data:4byte +lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x14 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x2 data:2byte +lbl_1_bss_106 = .bss:0x00000106; // type:object size:0x2 data:2byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x2 data:2byte +lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x280 data:float +lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x10 +lbl_1_bss_39C = .bss:0x0000039C; // type:object size:0x4 data:4byte +lbl_1_bss_3A0 = .bss:0x000003A0; // type:object size:0x10 diff --git a/config/GMPP01_00/rels/m410Dll/splits.txt b/config/GMPP01_00/rels/m410Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m410Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m410Dll/symbols.txt b/config/GMPP01_00/rels/m410Dll/symbols.txt new file mode 100644 index 00000000..8d84a25d --- /dev/null +++ b/config/GMPP01_00/rels/m410Dll/symbols.txt @@ -0,0 +1,316 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x444 +fn_1_4E4 = .text:0x000004E4; // type:function size:0xC4 +fn_1_5A8 = .text:0x000005A8; // type:function size:0x94 +fn_1_63C = .text:0x0000063C; // type:function size:0x16C +fn_1_7A8 = .text:0x000007A8; // type:function size:0x314 +fn_1_ABC = .text:0x00000ABC; // type:function size:0x330 +fn_1_DEC = .text:0x00000DEC; // type:function size:0x204 +fn_1_FF0 = .text:0x00000FF0; // type:function size:0x3AC +fn_1_139C = .text:0x0000139C; // type:function size:0x2AC +fn_1_1648 = .text:0x00001648; // type:function size:0x380 +fn_1_19C8 = .text:0x000019C8; // type:function size:0xB4 +fn_1_1A7C = .text:0x00001A7C; // type:function size:0x6F0 +fn_1_216C = .text:0x0000216C; // type:function size:0x1C +fn_1_2188 = .text:0x00002188; // type:function size:0x664 +fn_1_27EC = .text:0x000027EC; // type:function size:0x18 +fn_1_2804 = .text:0x00002804; // type:function size:0x18 +fn_1_281C = .text:0x0000281C; // type:function size:0x18 +fn_1_2834 = .text:0x00002834; // type:function size:0x18 +fn_1_284C = .text:0x0000284C; // type:function size:0x18 +fn_1_2864 = .text:0x00002864; // type:function size:0x18 +fn_1_287C = .text:0x0000287C; // type:function size:0x30 +fn_1_28AC = .text:0x000028AC; // type:function size:0x30 +fn_1_28DC = .text:0x000028DC; // type:function size:0x38 +fn_1_2914 = .text:0x00002914; // type:function size:0x348 +fn_1_2C5C = .text:0x00002C5C; // type:function size:0x378 +fn_1_2FD4 = .text:0x00002FD4; // type:function size:0x11C +fn_1_30F0 = .text:0x000030F0; // type:function size:0xB4 +fn_1_31A4 = .text:0x000031A4; // type:function size:0x54 +fn_1_31F8 = .text:0x000031F8; // type:function size:0x4 +fn_1_31FC = .text:0x000031FC; // type:function size:0x154 +fn_1_3350 = .text:0x00003350; // type:function size:0x58 +fn_1_33A8 = .text:0x000033A8; // type:function size:0xDC +fn_1_3484 = .text:0x00003484; // type:function size:0x3C +fn_1_34C0 = .text:0x000034C0; // type:function size:0x154 +fn_1_3614 = .text:0x00003614; // type:function size:0x5CC +fn_1_3BE0 = .text:0x00003BE0; // type:function size:0xCF8 +fn_1_48D8 = .text:0x000048D8; // type:function size:0x32C +fn_1_4C04 = .text:0x00004C04; // type:function size:0x3E8 +fn_1_4FEC = .text:0x00004FEC; // type:function size:0x5DC +fn_1_55C8 = .text:0x000055C8; // type:function size:0x3C4 +fn_1_598C = .text:0x0000598C; // type:function size:0x168 +fn_1_5AF4 = .text:0x00005AF4; // type:function size:0x1AC +fn_1_5CA0 = .text:0x00005CA0; // type:function size:0x23C +fn_1_5EDC = .text:0x00005EDC; // type:function size:0x300 +fn_1_61DC = .text:0x000061DC; // type:function size:0x188 +fn_1_6364 = .text:0x00006364; // type:function size:0x354 +fn_1_66B8 = .text:0x000066B8; // type:function size:0x11C +fn_1_67D4 = .text:0x000067D4; // type:function size:0x194 +fn_1_6968 = .text:0x00006968; // type:function size:0x41C +fn_1_6D84 = .text:0x00006D84; // type:function size:0x30 +fn_1_6DB4 = .text:0x00006DB4; // type:function size:0x384 +fn_1_7138 = .text:0x00007138; // type:function size:0x32C +fn_1_7464 = .text:0x00007464; // type:function size:0x30 +fn_1_7494 = .text:0x00007494; // type:function size:0x8C +fn_1_7520 = .text:0x00007520; // type:function size:0x80 +fn_1_75A0 = .text:0x000075A0; // type:function size:0x114 +fn_1_76B4 = .text:0x000076B4; // type:function size:0xEC +fn_1_77A0 = .text:0x000077A0; // type:function size:0x44 +fn_1_77E4 = .text:0x000077E4; // type:function size:0x10 +fn_1_77F4 = .text:0x000077F4; // type:function size:0x48 +fn_1_783C = .text:0x0000783C; // type:function size:0x48 +fn_1_7884 = .text:0x00007884; // type:function size:0x170 +fn_1_79F4 = .text:0x000079F4; // type:function size:0xCC +fn_1_7AC0 = .text:0x00007AC0; // type:function size:0x36C +fn_1_7E2C = .text:0x00007E2C; // type:function size:0x23C +fn_1_8068 = .text:0x00008068; // type:function size:0x34 +fn_1_809C = .text:0x0000809C; // type:function size:0x374 +fn_1_8410 = .text:0x00008410; // type:function size:0x264 +fn_1_8674 = .text:0x00008674; // type:function size:0x260 +fn_1_88D4 = .text:0x000088D4; // type:function size:0x138 +fn_1_8A0C = .text:0x00008A0C; // type:function size:0xAC +fn_1_8AB8 = .text:0x00008AB8; // type:function size:0x584 +fn_1_903C = .text:0x0000903C; // type:function size:0x6B4 +fn_1_96F0 = .text:0x000096F0; // type:function size:0x39C +fn_1_9A8C = .text:0x00009A8C; // type:function size:0x1F4 +fn_1_9C80 = .text:0x00009C80; // type:function size:0x188 +fn_1_9E08 = .text:0x00009E08; // type:function size:0xF0 +fn_1_9EF8 = .text:0x00009EF8; // type:function size:0x74 +fn_1_9F6C = .text:0x00009F6C; // type:function size:0x134 +fn_1_A0A0 = .text:0x0000A0A0; // type:function size:0x31C +fn_1_A3BC = .text:0x0000A3BC; // type:function size:0x468 +fn_1_A824 = .text:0x0000A824; // type:function size:0x17C +fn_1_A9A0 = .text:0x0000A9A0; // type:function size:0x79C +fn_1_B13C = .text:0x0000B13C; // type:function size:0x644 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x10 data:4byte +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x10 data:4byte +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x20 data:4byte +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x1 data:byte +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x3C +lbl_1_data_88 = .data:0x00000088; // type:object size:0x3C +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x14 +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x2 data:2byte +lbl_1_data_DC = .data:0x000000DC; // type:object size:0x20 +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x8 +lbl_1_data_104 = .data:0x00000104; // type:object size:0xC +lbl_1_data_110 = .data:0x00000110; // type:object size:0x4 data:4byte +lbl_1_data_114 = .data:0x00000114; // type:object size:0x1C +lbl_1_data_130 = .data:0x00000130; // type:object size:0x10 +lbl_1_data_140 = .data:0x00000140; // type:object size:0x20 +lbl_1_data_160 = .data:0x00000160; // type:object size:0xC +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x20 +lbl_1_data_18C = .data:0x0000018C; // type:object size:0x20 +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x28 +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0xA0 +lbl_1_data_274 = .data:0x00000274; // type:object size:0x20 +lbl_1_data_294 = .data:0x00000294; // type:object size:0x20 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x6 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x2 data:2byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:float +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:float +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:float +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x10 +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m411Dll/splits.txt b/config/GMPP01_00/rels/m411Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m411Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m411Dll/symbols.txt b/config/GMPP01_00/rels/m411Dll/symbols.txt new file mode 100644 index 00000000..a4cd3909 --- /dev/null +++ b/config/GMPP01_00/rels/m411Dll/symbols.txt @@ -0,0 +1,278 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0xDE0 +fn_1_E80 = .text:0x00000E80; // type:function size:0x10C +fn_1_F8C = .text:0x00000F8C; // type:function size:0xE8 +fn_1_1074 = .text:0x00001074; // type:function size:0x424 +fn_1_1498 = .text:0x00001498; // type:function size:0x88 +fn_1_1520 = .text:0x00001520; // type:function size:0x72C +fn_1_1C4C = .text:0x00001C4C; // type:function size:0x47C +fn_1_20C8 = .text:0x000020C8; // type:function size:0x508 +fn_1_25D0 = .text:0x000025D0; // type:function size:0xEE0 +fn_1_34B0 = .text:0x000034B0; // type:function size:0x5B0 +fn_1_3A60 = .text:0x00003A60; // type:function size:0x3C +fn_1_3A9C = .text:0x00003A9C; // type:function size:0x3C +fn_1_3AD8 = .text:0x00003AD8; // type:function size:0x3C +fn_1_3B14 = .text:0x00003B14; // type:function size:0x3C +fn_1_3B50 = .text:0x00003B50; // type:function size:0x3E4 +fn_1_3F34 = .text:0x00003F34; // type:function size:0x2E4 +fn_1_4218 = .text:0x00004218; // type:function size:0x23C +fn_1_4454 = .text:0x00004454; // type:function size:0x514 +fn_1_4968 = .text:0x00004968; // type:function size:0x248 +fn_1_4BB0 = .text:0x00004BB0; // type:function size:0x2DC +fn_1_4E8C = .text:0x00004E8C; // type:function size:0x1F0 +fn_1_507C = .text:0x0000507C; // type:function size:0x308 +fn_1_5384 = .text:0x00005384; // type:function size:0xC8 +fn_1_544C = .text:0x0000544C; // type:function size:0x108 +fn_1_5554 = .text:0x00005554; // type:function size:0x368 +fn_1_58BC = .text:0x000058BC; // type:function size:0x54 +fn_1_5910 = .text:0x00005910; // type:function size:0x448 +fn_1_5D58 = .text:0x00005D58; // type:function size:0xB8 +fn_1_5E10 = .text:0x00005E10; // type:function size:0xC0 +fn_1_5ED0 = .text:0x00005ED0; // type:function size:0x6C +fn_1_5F3C = .text:0x00005F3C; // type:function size:0x4EC +fn_1_6428 = .text:0x00006428; // type:function size:0x3F8 +fn_1_6820 = .text:0x00006820; // type:function size:0x21C +fn_1_6A3C = .text:0x00006A3C; // type:function size:0x2B8 +fn_1_6CF4 = .text:0x00006CF4; // type:function size:0xE4 +fn_1_6DD8 = .text:0x00006DD8; // type:function size:0xC4 +fn_1_6E9C = .text:0x00006E9C; // type:function size:0xAC +fn_1_6F48 = .text:0x00006F48; // type:function size:0x680 +fn_1_75C8 = .text:0x000075C8; // type:function size:0xB8 +fn_1_7680 = .text:0x00007680; // type:function size:0xB8 +fn_1_7738 = .text:0x00007738; // type:function size:0x1348 +fn_1_8A80 = .text:0x00008A80; // type:function size:0x33C +fn_1_8DBC = .text:0x00008DBC; // type:function size:0x6D4 +fn_1_9490 = .text:0x00009490; // type:function size:0x730 +fn_1_9BC0 = .text:0x00009BC0; // type:function size:0x444 +fn_1_A004 = .text:0x0000A004; // type:function size:0x78 +fn_1_A07C = .text:0x0000A07C; // type:function size:0xA4 +fn_1_A120 = .text:0x0000A120; // type:function size:0x394 +fn_1_A4B4 = .text:0x0000A4B4; // type:function size:0x2D4 +fn_1_A788 = .text:0x0000A788; // type:function size:0x528 +fn_1_ACB0 = .text:0x0000ACB0; // type:function size:0xA8 +fn_1_AD58 = .text:0x0000AD58; // type:function size:0xB48 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC +lbl_1_data_78 = .data:0x00000078; // type:object size:0xE data:string +lbl_1_data_86 = .data:0x00000086; // type:object size:0xE data:string +lbl_1_data_94 = .data:0x00000094; // type:object size:0xE data:string +lbl_1_data_A2 = .data:0x000000A2; // type:object size:0xE data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0xE data:string +lbl_1_data_BE = .data:0x000000BE; // type:object size:0xE data:string +lbl_1_data_CC = .data:0x000000CC; // type:object size:0xE data:string +lbl_1_data_DA = .data:0x000000DA; // type:object size:0xE data:string +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0xE data:string +lbl_1_data_F6 = .data:0x000000F6; // type:object size:0xE data:string +lbl_1_data_104 = .data:0x00000104; // type:object size:0xE data:string +lbl_1_data_112 = .data:0x00000112; // type:object size:0xE data:string +lbl_1_data_120 = .data:0x00000120; // type:object size:0xE data:string +lbl_1_data_12E = .data:0x0000012E; // type:object size:0xE data:string +lbl_1_data_13C = .data:0x0000013C; // type:object size:0xE data:string +lbl_1_data_14A = .data:0x0000014A; // type:object size:0xE data:string +lbl_1_data_158 = .data:0x00000158; // type:object size:0xE data:string +lbl_1_data_166 = .data:0x00000166; // type:object size:0xE data:string +lbl_1_data_174 = .data:0x00000174; // type:object size:0xE data:string +lbl_1_data_182 = .data:0x00000182; // type:object size:0xE data:string +lbl_1_data_190 = .data:0x00000190; // type:object size:0xE data:string +lbl_1_data_19E = .data:0x0000019E; // type:object size:0xE data:string +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0xE data:string +lbl_1_data_1BA = .data:0x000001BA; // type:object size:0xE data:string +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x78 +lbl_1_data_240 = .data:0x00000240; // type:object size:0x20 +lbl_1_data_260 = .data:0x00000260; // type:object size:0x20 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x24 +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x20 +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0xC +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x14 +lbl_1_data_2E4 = .data:0x000002E4; // type:object size:0xB data:string +lbl_1_data_2EF = .data:0x000002EF; // type:object size:0xB data:string +lbl_1_data_2FA = .data:0x000002FA; // type:object size:0x8 data:string +lbl_1_data_302 = .data:0x00000302; // type:object size:0xA +lbl_1_data_30C = .data:0x0000030C; // type:object size:0x10 +lbl_1_data_31C = .data:0x0000031C; // type:object size:0xC data:string +lbl_1_data_328 = .data:0x00000328; // type:object size:0x7 data:string +lbl_1_data_32F = .data:0x0000032F; // type:object size:0x7 data:string +lbl_1_data_336 = .data:0x00000336; // type:object size:0x7 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x60 data:float +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x60 data:float +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x60 data:float +lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x10 +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte +lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x33C data:float +lbl_1_bss_474 = .bss:0x00000474; // type:object size:0x9B0 +lbl_1_bss_E24 = .bss:0x00000E24; // type:object size:0x4 data:float +lbl_1_bss_E28 = .bss:0x00000E28; // type:object size:0x4 data:4byte +lbl_1_bss_E2C = .bss:0x00000E2C; // type:object size:0xC data:4byte +lbl_1_bss_E38 = .bss:0x00000E38; // type:object size:0x4 data:4byte +lbl_1_bss_E3C = .bss:0x00000E3C; // type:object size:0x4 data:4byte +lbl_1_bss_E40 = .bss:0x00000E40; // type:object size:0x4 data:4byte +lbl_1_bss_E44 = .bss:0x00000E44; // type:object size:0x28 data:4byte +lbl_1_bss_E6C = .bss:0x00000E6C; // type:object size:0x28 data:4byte +lbl_1_bss_E94 = .bss:0x00000E94; // type:object size:0x4 data:4byte +lbl_1_bss_E98 = .bss:0x00000E98; // type:object size:0x4 data:4byte +lbl_1_bss_E9C = .bss:0x00000E9C; // type:object size:0x2 data:2byte +lbl_1_bss_E9E = .bss:0x00000E9E; // type:object size:0x2 data:2byte +lbl_1_bss_EA0 = .bss:0x00000EA0; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/m412Dll/splits.txt b/config/GMPP01_00/rels/m412Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m412Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m412Dll/symbols.txt b/config/GMPP01_00/rels/m412Dll/symbols.txt new file mode 100644 index 00000000..577e6f3e --- /dev/null +++ b/config/GMPP01_00/rels/m412Dll/symbols.txt @@ -0,0 +1,190 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x64C +fn_1_6EC = .text:0x000006EC; // type:function size:0x50 +fn_1_73C = .text:0x0000073C; // type:function size:0x80 +fn_1_7BC = .text:0x000007BC; // type:function size:0xD8 +fn_1_894 = .text:0x00000894; // type:function size:0x4 +fn_1_898 = .text:0x00000898; // type:function size:0x24 +fn_1_8BC = .text:0x000008BC; // type:function size:0x144C +fn_1_1D08 = .text:0x00001D08; // type:function size:0x80 +fn_1_1D88 = .text:0x00001D88; // type:function size:0x34 +fn_1_1DBC = .text:0x00001DBC; // type:function size:0x258 +fn_1_2014 = .text:0x00002014; // type:function size:0x50 +fn_1_2064 = .text:0x00002064; // type:function size:0x6A4 +fn_1_2708 = .text:0x00002708; // type:function size:0xBC +fn_1_27C4 = .text:0x000027C4; // type:function size:0x258 +fn_1_2A1C = .text:0x00002A1C; // type:function size:0xF2C +fn_1_3948 = .text:0x00003948; // type:function size:0x128C +fn_1_4BD4 = .text:0x00004BD4; // type:function size:0xB8 +fn_1_4C8C = .text:0x00004C8C; // type:function size:0x1BC +fn_1_4E48 = .text:0x00004E48; // type:function size:0x404 +fn_1_524C = .text:0x0000524C; // type:function size:0xC0 +fn_1_530C = .text:0x0000530C; // type:function size:0x6C +fn_1_5378 = .text:0x00005378; // type:function size:0x6C +fn_1_53E4 = .text:0x000053E4; // type:function size:0x228 +fn_1_560C = .text:0x0000560C; // type:function size:0x21C +fn_1_5828 = .text:0x00005828; // type:function size:0xD5C +fn_1_6584 = .text:0x00006584; // type:function size:0x104 +fn_1_6688 = .text:0x00006688; // type:function size:0x17C +fn_1_6804 = .text:0x00006804; // type:function size:0x144C +fn_1_7C50 = .text:0x00007C50; // type:function size:0x23BC +fn_1_A00C = .text:0x0000A00C; // type:function size:0x5FC +fn_1_A608 = .text:0x0000A608; // type:function size:0x470 +fn_1_AA78 = .text:0x0000AA78; // type:function size:0x340 +fn_1_ADB8 = .text:0x0000ADB8; // type:function size:0x374 +fn_1_B12C = .text:0x0000B12C; // type:function size:0x24 +fn_1_B150 = .text:0x0000B150; // type:function size:0x60 +fn_1_B1B0 = .text:0x0000B1B0; // type:function size:0x498 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 +lbl_1_data_20 = .data:0x00000020; // type:object size:0x20 +lbl_1_data_40 = .data:0x00000040; // type:object size:0x20 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x18 +lbl_1_data_78 = .data:0x00000078; // type:object size:0x54 data:float +lbl_1_data_CC = .data:0x000000CC; // type:object size:0x14 data:string +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x14 data:string +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x14 data:string +lbl_1_data_108 = .data:0x00000108; // type:object size:0x14 data:string +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x14 data:string +lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 data:string +lbl_1_data_144 = .data:0x00000144; // type:object size:0x14 data:string +lbl_1_data_158 = .data:0x00000158; // type:object size:0x14 data:string +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x14 data:string +lbl_1_data_180 = .data:0x00000180; // type:object size:0x14 data:string +lbl_1_data_194 = .data:0x00000194; // type:object size:0x14 data:string +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x14 data:string +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x14 data:string +lbl_1_data_1D0 = .data:0x000001D0; // type:object size:0x14 data:string +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x14 data:string +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x14 data:string +lbl_1_data_20C = .data:0x0000020C; // type:object size:0x14 data:string +lbl_1_data_220 = .data:0x00000220; // type:object size:0x14 data:string +lbl_1_data_234 = .data:0x00000234; // type:object size:0x14 data:string +lbl_1_data_248 = .data:0x00000248; // type:object size:0x14 data:string +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x14 data:string +lbl_1_data_270 = .data:0x00000270; // type:object size:0x14 data:string +lbl_1_data_284 = .data:0x00000284; // type:object size:0x14 data:string +lbl_1_data_298 = .data:0x00000298; // type:object size:0x5C +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0xC data:string +lbl_1_data_300 = .data:0x00000300; // type:object size:0x7 data:string +lbl_1_data_307 = .data:0x00000307; // type:object size:0x9 +lbl_1_data_310 = .data:0x00000310; // type:object size:0x30 +lbl_1_data_340 = .data:0x00000340; // type:object size:0x8 +lbl_1_data_348 = .data:0x00000348; // type:object size:0x18 +lbl_1_data_360 = .data:0x00000360; // type:object size:0x9 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x10 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x114 +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x114 +lbl_1_bss_250 = .bss:0x00000250; // type:object size:0xC data:float +lbl_1_bss_25C = .bss:0x0000025C; // type:object size:0xC data:float +lbl_1_bss_268 = .bss:0x00000268; // type:object size:0xC data:float +lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x4 data:4byte +lbl_1_bss_278 = .bss:0x00000278; // type:object size:0x80 +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x44 data:2byte +lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x198 +lbl_1_bss_4D4 = .bss:0x000004D4; // type:object size:0x2A0 +lbl_1_bss_774 = .bss:0x00000774; // type:object size:0x4 data:float +lbl_1_bss_778 = .bss:0x00000778; // type:object size:0x4 data:float +lbl_1_bss_77C = .bss:0x0000077C; // type:object size:0x4 data:float +lbl_1_bss_780 = .bss:0x00000780; // type:object size:0x10 data:4byte +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x4 data:4byte +lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x4 data:4byte +lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x2 data:2byte +lbl_1_bss_79C = .bss:0x0000079C; // type:object size:0x2 data:2byte +lbl_1_bss_79E = .bss:0x0000079E; // type:object size:0x2 data:2byte +lbl_1_bss_7A0 = .bss:0x000007A0; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/m413Dll/splits.txt b/config/GMPP01_00/rels/m413Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m413Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m413Dll/symbols.txt b/config/GMPP01_00/rels/m413Dll/symbols.txt new file mode 100644 index 00000000..a3598af6 --- /dev/null +++ b/config/GMPP01_00/rels/m413Dll/symbols.txt @@ -0,0 +1,211 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x2EC +fn_1_38C = .text:0x0000038C; // type:function size:0x134 +fn_1_4C0 = .text:0x000004C0; // type:function size:0xBC +fn_1_57C = .text:0x0000057C; // type:function size:0x154 +fn_1_6D0 = .text:0x000006D0; // type:function size:0x128 +fn_1_7F8 = .text:0x000007F8; // type:function size:0x6C8 +fn_1_EC0 = .text:0x00000EC0; // type:function size:0x1F8 +fn_1_10B8 = .text:0x000010B8; // type:function size:0x90C +fn_1_19C4 = .text:0x000019C4; // type:function size:0x4 +fn_1_19C8 = .text:0x000019C8; // type:function size:0x38DC +fn_1_52A4 = .text:0x000052A4; // type:function size:0x3824 +fn_1_8AC8 = .text:0x00008AC8; // type:function size:0x148 +fn_1_8C10 = .text:0x00008C10; // type:function size:0x192C +fn_1_A53C = .text:0x0000A53C; // type:function size:0x1188 +fn_1_B6C4 = .text:0x0000B6C4; // type:function size:0x101C +fn_1_C6E0 = .text:0x0000C6E0; // type:function size:0x4D4 +fn_1_CBB4 = .text:0x0000CBB4; // type:function size:0x78C +fn_1_D340 = .text:0x0000D340; // type:function size:0x60 +fn_1_D3A0 = .text:0x0000D3A0; // type:function size:0x360 +fn_1_D700 = .text:0x0000D700; // type:function size:0x64 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xCC +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC data:byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:4byte +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 data:4byte +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x10 data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x19 data:byte +lbl_1_rodata_201 = .rodata:0x00000201; // type:object size:0x1F data:byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0xC data:4byte +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0xC data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x30 data:4byte +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x10 data:4byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0xC data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x10 data:4byte +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0xC data:4byte +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0xC data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 data:4byte +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x428 +lbl_1_rodata_764 = .rodata:0x00000764; // type:object size:0xC data:4byte +lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0xC data:4byte +lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0x4 data:float +lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x4 data:float +lbl_1_rodata_784 = .rodata:0x00000784; // type:object size:0x4 data:float +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x8 data:double +lbl_1_rodata_790 = .rodata:0x00000790; // type:object size:0x8 data:double +lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x8 data:double +lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x8 data:double +lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 data:float +lbl_1_rodata_7AC = .rodata:0x000007AC; // type:object size:0x10 data:4byte +lbl_1_rodata_7BC = .rodata:0x000007BC; // type:object size:0x14 data:4byte +lbl_1_rodata_7D0 = .rodata:0x000007D0; // type:object size:0x60 +lbl_1_rodata_830 = .rodata:0x00000830; // type:object size:0x8 data:double +lbl_1_rodata_838 = .rodata:0x00000838; // type:object size:0x8 data:double +lbl_1_rodata_840 = .rodata:0x00000840; // type:object size:0x4 data:float +lbl_1_rodata_848 = .rodata:0x00000848; // type:object size:0x8 data:double +lbl_1_rodata_850 = .rodata:0x00000850; // type:object size:0x4 data:float +lbl_1_rodata_858 = .rodata:0x00000858; // type:object size:0x8 data:double +lbl_1_rodata_860 = .rodata:0x00000860; // type:object size:0x8 data:double +lbl_1_rodata_868 = .rodata:0x00000868; // type:object size:0x8 data:double +lbl_1_rodata_870 = .rodata:0x00000870; // type:object size:0x8 data:double +lbl_1_rodata_878 = .rodata:0x00000878; // type:object size:0x4 data:float +lbl_1_rodata_87C = .rodata:0x0000087C; // type:object size:0x4 data:float +lbl_1_rodata_880 = .rodata:0x00000880; // type:object size:0x4 data:float +lbl_1_rodata_884 = .rodata:0x00000884; // type:object size:0x4 data:float +lbl_1_rodata_888 = .rodata:0x00000888; // type:object size:0x4 data:float +lbl_1_rodata_88C = .rodata:0x0000088C; // type:object size:0x4 data:float +lbl_1_rodata_890 = .rodata:0x00000890; // type:object size:0x1C data:4byte +lbl_1_rodata_8AC = .rodata:0x000008AC; // type:object size:0x4 data:float +lbl_1_rodata_8B0 = .rodata:0x000008B0; // type:object size:0x8 data:double +lbl_1_rodata_8B8 = .rodata:0x000008B8; // type:object size:0x4 data:float +lbl_1_rodata_8BC = .rodata:0x000008BC; // type:object size:0x4 data:float +lbl_1_rodata_8C0 = .rodata:0x000008C0; // type:object size:0x4 data:float +lbl_1_rodata_8C4 = .rodata:0x000008C4; // type:object size:0x4 data:float +lbl_1_rodata_8C8 = .rodata:0x000008C8; // type:object size:0x8 data:double +lbl_1_rodata_8D0 = .rodata:0x000008D0; // type:object size:0x4 data:float +lbl_1_rodata_8D8 = .rodata:0x000008D8; // type:object size:0x8 data:double +lbl_1_rodata_8E0 = .rodata:0x000008E0; // type:object size:0x4 data:float +lbl_1_rodata_8E4 = .rodata:0x000008E4; // type:object size:0x4 data:float +lbl_1_rodata_8E8 = .rodata:0x000008E8; // type:object size:0x4 data:float +lbl_1_rodata_8EC = .rodata:0x000008EC; // type:object size:0x4 data:float +lbl_1_rodata_8F0 = .rodata:0x000008F0; // type:object size:0x4 data:float +lbl_1_rodata_8F4 = .rodata:0x000008F4; // type:object size:0x4 data:float +lbl_1_rodata_8F8 = .rodata:0x000008F8; // type:object size:0x4 data:float +lbl_1_rodata_8FC = .rodata:0x000008FC; // type:object size:0x4 data:float +lbl_1_rodata_900 = .rodata:0x00000900; // type:object size:0x8 data:double +lbl_1_rodata_908 = .rodata:0x00000908; // type:object size:0x8 data:double +lbl_1_rodata_910 = .rodata:0x00000910; // type:object size:0x4 data:float +lbl_1_rodata_914 = .rodata:0x00000914; // type:object size:0x4 data:float +lbl_1_rodata_918 = .rodata:0x00000918; // type:object size:0xC data:byte +lbl_1_rodata_924 = .rodata:0x00000924; // type:object size:0x18 data:4byte +lbl_1_rodata_93C = .rodata:0x0000093C; // type:object size:0x8 data:byte +lbl_1_rodata_944 = .rodata:0x00000944; // type:object size:0x10 data:4byte +lbl_1_rodata_954 = .rodata:0x00000954; // type:object size:0x1 data:byte +lbl_1_rodata_958 = .rodata:0x00000958; // type:object size:0x10 data:4byte +lbl_1_rodata_968 = .rodata:0x00000968; // type:object size:0x10 data:4byte +lbl_1_rodata_978 = .rodata:0x00000978; // type:object size:0x8 data:double +lbl_1_rodata_980 = .rodata:0x00000980; // type:object size:0x4 data:float +lbl_1_rodata_984 = .rodata:0x00000984; // type:object size:0x4 data:float +lbl_1_rodata_988 = .rodata:0x00000988; // type:object size:0x4 data:float +lbl_1_rodata_98C = .rodata:0x0000098C; // type:object size:0x4 data:float +lbl_1_rodata_990 = .rodata:0x00000990; // type:object size:0x8 data:double +lbl_1_rodata_998 = .rodata:0x00000998; // type:object size:0x4 data:float +lbl_1_rodata_99C = .rodata:0x0000099C; // type:object size:0x4 data:float +lbl_1_rodata_9A0 = .rodata:0x000009A0; // type:object size:0x8 data:double +lbl_1_rodata_9A8 = .rodata:0x000009A8; // type:object size:0x8 data:double +lbl_1_rodata_9B0 = .rodata:0x000009B0; // type:object size:0x10 data:4byte +lbl_1_rodata_9C0 = .rodata:0x000009C0; // type:object size:0x4 data:float +lbl_1_rodata_9C4 = .rodata:0x000009C4; // type:object size:0x4 data:float +lbl_1_rodata_9C8 = .rodata:0x000009C8; // type:object size:0x4 data:float +lbl_1_rodata_9CC = .rodata:0x000009CC; // type:object size:0xC data:4byte +lbl_1_rodata_9D8 = .rodata:0x000009D8; // type:object size:0xC data:4byte +lbl_1_rodata_9E4 = .rodata:0x000009E4; // type:object size:0xC data:4byte +lbl_1_rodata_9F0 = .rodata:0x000009F0; // type:object size:0xC data:4byte +lbl_1_rodata_9FC = .rodata:0x000009FC; // type:object size:0xC data:4byte +lbl_1_rodata_A08 = .rodata:0x00000A08; // type:object size:0xC data:4byte +lbl_1_rodata_A14 = .rodata:0x00000A14; // type:object size:0xC data:4byte +lbl_1_rodata_A20 = .rodata:0x00000A20; // type:object size:0x1 data:byte +lbl_1_rodata_A24 = .rodata:0x00000A24; // type:object size:0x4 data:float +lbl_1_rodata_A28 = .rodata:0x00000A28; // type:object size:0x4 data:float +lbl_1_rodata_A2C = .rodata:0x00000A2C; // type:object size:0x4 data:float +lbl_1_rodata_A30 = .rodata:0x00000A30; // type:object size:0x4 data:float +lbl_1_rodata_A34 = .rodata:0x00000A34; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x4 data:4byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0x8 data:4byte +lbl_1_data_C = .data:0x0000000C; // type:object size:0x2C data:4byte +lbl_1_data_38 = .data:0x00000038; // type:object size:0x9 data:string +lbl_1_data_41 = .data:0x00000041; // type:object size:0x19 data:string +lbl_1_data_5A = .data:0x0000005A; // type:object size:0x1B data:string +lbl_1_data_75 = .data:0x00000075; // type:object size:0x10 data:string +lbl_1_data_85 = .data:0x00000085; // type:object size:0x10 data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0x10 data:string +lbl_1_data_A5 = .data:0x000000A5; // type:object size:0x10 data:string +lbl_1_data_B5 = .data:0x000000B5; // type:object size:0x11 data:string +lbl_1_data_C6 = .data:0x000000C6; // type:object size:0x11 data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x12 data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x12 data:string +lbl_1_data_FB = .data:0x000000FB; // type:object size:0x12 data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0xF data:string +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x19 data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x8 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x10 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x70 +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x18 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x28 +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x2580 +lbl_1_bss_2680 = .bss:0x00002680; // type:object size:0x4 data:4byte +lbl_1_bss_2684 = .bss:0x00002684; // type:object size:0x3E8 +lbl_1_bss_2A6C = .bss:0x00002A6C; // type:object size:0x4E18 +lbl_1_bss_7884 = .bss:0x00007884; // type:object size:0x30 diff --git a/config/GMPP01_00/rels/m414Dll/splits.txt b/config/GMPP01_00/rels/m414Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m414Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m414Dll/symbols.txt b/config/GMPP01_00/rels/m414Dll/symbols.txt new file mode 100644 index 00000000..b04c8e01 --- /dev/null +++ b/config/GMPP01_00/rels/m414Dll/symbols.txt @@ -0,0 +1,183 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x87C +fn_1_91C = .text:0x0000091C; // type:function size:0x268 +fn_1_B84 = .text:0x00000B84; // type:function size:0x154 +fn_1_CD8 = .text:0x00000CD8; // type:function size:0x7C +fn_1_D54 = .text:0x00000D54; // type:function size:0x634 +fn_1_1388 = .text:0x00001388; // type:function size:0x3C +fn_1_13C4 = .text:0x000013C4; // type:function size:0x3C +fn_1_1400 = .text:0x00001400; // type:function size:0x3C +fn_1_143C = .text:0x0000143C; // type:function size:0x3C +fn_1_1478 = .text:0x00001478; // type:function size:0x214 +fn_1_168C = .text:0x0000168C; // type:function size:0x3C +fn_1_16C8 = .text:0x000016C8; // type:function size:0x3C +fn_1_1704 = .text:0x00001704; // type:function size:0x3C +fn_1_1740 = .text:0x00001740; // type:function size:0x3C +fn_1_177C = .text:0x0000177C; // type:function size:0x3DC +fn_1_1B58 = .text:0x00001B58; // type:function size:0x3C +fn_1_1B94 = .text:0x00001B94; // type:function size:0x3C +fn_1_1BD0 = .text:0x00001BD0; // type:function size:0x3C +fn_1_1C0C = .text:0x00001C0C; // type:function size:0x3C +fn_1_1C48 = .text:0x00001C48; // type:function size:0x1BC +fn_1_1E04 = .text:0x00001E04; // type:function size:0x1B78 +fn_1_397C = .text:0x0000397C; // type:function size:0xDC +fn_1_3A58 = .text:0x00003A58; // type:function size:0xDC +fn_1_3B34 = .text:0x00003B34; // type:function size:0x214 +fn_1_3D48 = .text:0x00003D48; // type:function size:0x184 +fn_1_3ECC = .text:0x00003ECC; // type:function size:0x3E0 +fn_1_42AC = .text:0x000042AC; // type:function size:0x958 +fn_1_4C04 = .text:0x00004C04; // type:function size:0x70 +fn_1_4C74 = .text:0x00004C74; // type:function size:0x19C +fn_1_4E10 = .text:0x00004E10; // type:function size:0x744 +fn_1_5554 = .text:0x00005554; // type:function size:0xD0 +fn_1_5624 = .text:0x00005624; // type:function size:0xD8 +fn_1_56FC = .text:0x000056FC; // type:function size:0x84 +fn_1_5780 = .text:0x00005780; // type:function size:0x2BC +fn_1_5A3C = .text:0x00005A3C; // type:function size:0x4AC +fn_1_5EE8 = .text:0x00005EE8; // type:function size:0x24C +fn_1_6134 = .text:0x00006134; // type:function size:0x418 +fn_1_654C = .text:0x0000654C; // type:function size:0x90 +fn_1_65DC = .text:0x000065DC; // type:function size:0x68 +fn_1_6644 = .text:0x00006644; // type:function size:0x10B0 +fn_1_76F4 = .text:0x000076F4; // type:function size:0x2B4 +fn_1_79A8 = .text:0x000079A8; // type:function size:0x620 +fn_1_7FC8 = .text:0x00007FC8; // type:function size:0x90C +fn_1_88D4 = .text:0x000088D4; // type:function size:0x78 +fn_1_894C = .text:0x0000894C; // type:function size:0xC4 +fn_1_8A10 = .text:0x00008A10; // type:function size:0x60 +fn_1_8A70 = .text:0x00008A70; // type:function size:0x450 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0x10 +lbl_1_data_20 = .data:0x00000020; // type:object size:0x10 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x20 +lbl_1_data_50 = .data:0x00000050; // type:object size:0x18 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x24 +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x18 +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x10 +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x10 +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x60 +lbl_1_data_124 = .data:0x00000124; // type:object size:0x10 data:string +lbl_1_data_134 = .data:0x00000134; // type:object size:0x7 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0xC data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x3C +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x3C +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x3C +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x4 data:4byte +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x10 +lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x820 data:2byte +lbl_1_bss_910 = .bss:0x00000910; // type:object size:0x10 data:float +lbl_1_bss_920 = .bss:0x00000920; // type:object size:0x10 data:float +lbl_1_bss_930 = .bss:0x00000930; // type:object size:0x8 data:4byte +lbl_1_bss_938 = .bss:0x00000938; // type:object size:0x40 +lbl_1_bss_978 = .bss:0x00000978; // type:object size:0x4 data:4byte +lbl_1_bss_97C = .bss:0x0000097C; // type:object size:0x10 +lbl_1_bss_98C = .bss:0x0000098C; // type:object size:0x4 data:4byte +lbl_1_bss_990 = .bss:0x00000990; // type:object size:0x80 +lbl_1_bss_A10 = .bss:0x00000A10; // type:object size:0x2 data:2byte +lbl_1_bss_A12 = .bss:0x00000A12; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/m415Dll/splits.txt b/config/GMPP01_00/rels/m415Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m415Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m415Dll/symbols.txt b/config/GMPP01_00/rels/m415Dll/symbols.txt new file mode 100644 index 00000000..f68c9a44 --- /dev/null +++ b/config/GMPP01_00/rels/m415Dll/symbols.txt @@ -0,0 +1,234 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x39C +fn_1_43C = .text:0x0000043C; // type:function size:0x74 +fn_1_4B0 = .text:0x000004B0; // type:function size:0x328 +fn_1_7D8 = .text:0x000007D8; // type:function size:0xCE0 +fn_1_14B8 = .text:0x000014B8; // type:function size:0x64 +fn_1_151C = .text:0x0000151C; // type:function size:0xAC +fn_1_15C8 = .text:0x000015C8; // type:function size:0x390 +fn_1_1958 = .text:0x00001958; // type:function size:0x100 +fn_1_1A58 = .text:0x00001A58; // type:function size:0x10B8 +fn_1_2B10 = .text:0x00002B10; // type:function size:0xFC +fn_1_2C0C = .text:0x00002C0C; // type:function size:0x274 +fn_1_2E80 = .text:0x00002E80; // type:function size:0xA0 +fn_1_2F20 = .text:0x00002F20; // type:function size:0x2B8 +fn_1_31D8 = .text:0x000031D8; // type:function size:0x28 +fn_1_3200 = .text:0x00003200; // type:function size:0x438 +fn_1_3638 = .text:0x00003638; // type:function size:0x124 +fn_1_375C = .text:0x0000375C; // type:function size:0x3E0 +fn_1_3B3C = .text:0x00003B3C; // type:function size:0xB1C +fn_1_4658 = .text:0x00004658; // type:function size:0x14C0 +fn_1_5B18 = .text:0x00005B18; // type:function size:0x490 +fn_1_5FA8 = .text:0x00005FA8; // type:function size:0x354 +fn_1_62FC = .text:0x000062FC; // type:function size:0x64 +fn_1_6360 = .text:0x00006360; // type:function size:0x40 +fn_1_63A0 = .text:0x000063A0; // type:function size:0xA0 +fn_1_6440 = .text:0x00006440; // type:function size:0x94 +fn_1_64D4 = .text:0x000064D4; // type:function size:0xA8 +fn_1_657C = .text:0x0000657C; // type:function size:0x108 +fn_1_6684 = .text:0x00006684; // type:function size:0x20 +fn_1_66A4 = .text:0x000066A4; // type:function size:0xF0 +fn_1_6794 = .text:0x00006794; // type:function size:0x54 +fn_1_67E8 = .text:0x000067E8; // type:function size:0x168 +fn_1_6950 = .text:0x00006950; // type:function size:0x120 +fn_1_6A70 = .text:0x00006A70; // type:function size:0x30C +fn_1_6D7C = .text:0x00006D7C; // type:function size:0x78 +fn_1_6DF4 = .text:0x00006DF4; // type:function size:0x11C +fn_1_6F10 = .text:0x00006F10; // type:function size:0x78 +fn_1_6F88 = .text:0x00006F88; // type:function size:0x2D8 +fn_1_7260 = .text:0x00007260; // type:function size:0x2B8 +fn_1_7518 = .text:0x00007518; // type:function size:0x154 +fn_1_766C = .text:0x0000766C; // type:function size:0x3E0 +fn_1_7A4C = .text:0x00007A4C; // type:function size:0x214 +fn_1_7C60 = .text:0x00007C60; // type:function size:0x198 +fn_1_7DF8 = .text:0x00007DF8; // type:function size:0xD8 +fn_1_7ED0 = .text:0x00007ED0; // type:function size:0xBC +fn_1_7F8C = .text:0x00007F8C; // type:function size:0x33C +fn_1_82C8 = .text:0x000082C8; // type:function size:0x4B0 +fn_1_8778 = .text:0x00008778; // type:function size:0x138 +fn_1_88B0 = .text:0x000088B0; // type:function size:0xD08 +fn_1_95B8 = .text:0x000095B8; // type:function size:0x12C +fn_1_96E4 = .text:0x000096E4; // type:function size:0x1C +fn_1_9700 = .text:0x00009700; // type:function size:0x2C +fn_1_972C = .text:0x0000972C; // type:function size:0x1C +fn_1_9748 = .text:0x00009748; // type:function size:0x184 +fn_1_98CC = .text:0x000098CC; // type:function size:0xA0 +fn_1_996C = .text:0x0000996C; // type:function size:0xA8 +fn_1_9A14 = .text:0x00009A14; // type:function size:0x8C +fn_1_9AA0 = .text:0x00009AA0; // type:function size:0x98 +fn_1_9B38 = .text:0x00009B38; // type:function size:0x288 +fn_1_9DC0 = .text:0x00009DC0; // type:function size:0x508 +fn_1_A2C8 = .text:0x0000A2C8; // type:function size:0x530 +fn_1_A7F8 = .text:0x0000A7F8; // type:function size:0x120 +fn_1_A918 = .text:0x0000A918; // type:function size:0x2C +fn_1_A944 = .text:0x0000A944; // type:function size:0x3A8 +fn_1_ACEC = .text:0x0000ACEC; // type:function size:0x254 +fn_1_AF40 = .text:0x0000AF40; // type:function size:0x80 +fn_1_AFC0 = .text:0x0000AFC0; // type:function size:0x70 +fn_1_B030 = .text:0x0000B030; // type:function size:0x80 +fn_1_B0B0 = .text:0x0000B0B0; // type:function size:0x57C +fn_1_B62C = .text:0x0000B62C; // type:function size:0x230 +fn_1_B85C = .text:0x0000B85C; // type:function size:0x6C +fn_1_B8C8 = .text:0x0000B8C8; // type:function size:0x70 +fn_1_B938 = .text:0x0000B938; // type:function size:0x74 +fn_1_B9AC = .text:0x0000B9AC; // type:function size:0x84 +fn_1_BA30 = .text:0x0000BA30; // type:function size:0x88 +fn_1_BAB8 = .text:0x0000BAB8; // type:function size:0x8C +fn_1_BB44 = .text:0x0000BB44; // type:function size:0x6C +fn_1_BBB0 = .text:0x0000BBB0; // type:function size:0x70 +fn_1_BC20 = .text:0x0000BC20; // type:function size:0x74 +fn_1_BC94 = .text:0x0000BC94; // type:function size:0x6C +fn_1_BD00 = .text:0x0000BD00; // type:function size:0x70 +fn_1_BD70 = .text:0x0000BD70; // type:function size:0x74 +fn_1_BDE4 = .text:0x0000BDE4; // type:function size:0x44 +fn_1_BE28 = .text:0x0000BE28; // type:function size:0x70 +fn_1_BE98 = .text:0x0000BE98; // type:function size:0x70 +fn_1_BF08 = .text:0x0000BF08; // type:function size:0x44 +fn_1_BF4C = .text:0x0000BF4C; // type:function size:0x70 +fn_1_BFBC = .text:0x0000BFBC; // type:function size:0x70 +fn_1_C02C = .text:0x0000C02C; // type:function size:0x5C +fn_1_C088 = .text:0x0000C088; // type:function size:0x80 +fn_1_C108 = .text:0x0000C108; // type:function size:0x74 +fn_1_C17C = .text:0x0000C17C; // type:function size:0x78 +fn_1_C1F4 = .text:0x0000C1F4; // type:function size:0x68 +fn_1_C25C = .text:0x0000C25C; // type:function size:0x6C +fn_1_C2C8 = .text:0x0000C2C8; // type:function size:0x68 +fn_1_C330 = .text:0x0000C330; // type:function size:0x6C +fn_1_C39C = .text:0x0000C39C; // type:function size:0x6C +fn_1_C408 = .text:0x0000C408; // type:function size:0x78 +fn_1_C480 = .text:0x0000C480; // type:function size:0x98 +fn_1_C518 = .text:0x0000C518; // type:function size:0x6C +fn_1_C584 = .text:0x0000C584; // type:function size:0x78 +fn_1_C5FC = .text:0x0000C5FC; // type:function size:0x98 +fn_1_C694 = .text:0x0000C694; // type:function size:0x70 +fn_1_C704 = .text:0x0000C704; // type:function size:0x78 +fn_1_C77C = .text:0x0000C77C; // type:function size:0x98 +fn_1_C814 = .text:0x0000C814; // type:function size:0x40 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x10 data:byte +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x20 data:byte +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x20 data:byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x10 data:byte +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 data:byte +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x30 data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x10 data:byte +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC +lbl_1_data_40 = .data:0x00000040; // type:object size:0x24 +lbl_1_data_64 = .data:0x00000064; // type:object size:0x4 data:4byte +lbl_1_data_68 = .data:0x00000068; // type:object size:0x7 data:string +lbl_1_data_6F = .data:0x0000006F; // type:object size:0x6 data:string +lbl_1_data_75 = .data:0x00000075; // type:object size:0xB +lbl_1_data_80 = .data:0x00000080; // type:object size:0x28 +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x30 +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x8 data:string +jumptable_1_data_E0 = .data:0x000000E0; // type:object size:0x28 scope:local +lbl_1_data_108 = .data:0x00000108; // type:object size:0x8 data:string +lbl_1_data_110 = .data:0x00000110; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x30 +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x200 +lbl_1_bss_234 = .bss:0x00000234; // type:object size:0x100 +lbl_1_bss_334 = .bss:0x00000334; // type:object size:0x4 data:4byte +lbl_1_bss_338 = .bss:0x00000338; // type:object size:0x2 data:2byte +lbl_1_bss_33A = .bss:0x0000033A; // type:object size:0x8 data:2byte +lbl_1_bss_342 = .bss:0x00000342; // type:object size:0x2 data:2byte +lbl_1_bss_344 = .bss:0x00000344; // type:object size:0x2 data:2byte +lbl_1_bss_346 = .bss:0x00000346; // type:object size:0x2 data:2byte +lbl_1_bss_348 = .bss:0x00000348; // type:object size:0x2 data:2byte +lbl_1_bss_34A = .bss:0x0000034A; // type:object size:0x2 data:2byte +lbl_1_bss_34C = .bss:0x0000034C; // type:object size:0x10 +lbl_1_bss_35C = .bss:0x0000035C; // type:object size:0x4 data:4byte +lbl_1_bss_360 = .bss:0x00000360; // type:object size:0x4 data:4byte +lbl_1_bss_364 = .bss:0x00000364; // type:object size:0x4 data:4byte +lbl_1_bss_368 = .bss:0x00000368; // type:object size:0x4 data:4byte +lbl_1_bss_36C = .bss:0x0000036C; // type:object size:0x44 data:4byte diff --git a/config/GMPP01_00/rels/m416Dll/splits.txt b/config/GMPP01_00/rels/m416Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m416Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m416Dll/symbols.txt b/config/GMPP01_00/rels/m416Dll/symbols.txt new file mode 100644 index 00000000..8a25d373 --- /dev/null +++ b/config/GMPP01_00/rels/m416Dll/symbols.txt @@ -0,0 +1,209 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x3B8 +fn_1_458 = .text:0x00000458; // type:function size:0xA4 +fn_1_4FC = .text:0x000004FC; // type:function size:0xCEC +fn_1_11E8 = .text:0x000011E8; // type:function size:0x58 +fn_1_1240 = .text:0x00001240; // type:function size:0x10 +fn_1_1250 = .text:0x00001250; // type:function size:0x10 +fn_1_1260 = .text:0x00001260; // type:function size:0x220 +fn_1_1480 = .text:0x00001480; // type:function size:0x68 +fn_1_14E8 = .text:0x000014E8; // type:function size:0x84 +fn_1_156C = .text:0x0000156C; // type:function size:0x3F8 +fn_1_1964 = .text:0x00001964; // type:function size:0x178 +fn_1_1ADC = .text:0x00001ADC; // type:function size:0x1A4 +fn_1_1C80 = .text:0x00001C80; // type:function size:0x104 +fn_1_1D84 = .text:0x00001D84; // type:function size:0xBAC +fn_1_2930 = .text:0x00002930; // type:function size:0xAC +fn_1_29DC = .text:0x000029DC; // type:function size:0x4C8 +fn_1_2EA4 = .text:0x00002EA4; // type:function size:0x778 +fn_1_361C = .text:0x0000361C; // type:function size:0x280 +fn_1_389C = .text:0x0000389C; // type:function size:0x54 +fn_1_38F0 = .text:0x000038F0; // type:function size:0x10D4 +fn_1_49C4 = .text:0x000049C4; // type:function size:0x640 +fn_1_5004 = .text:0x00005004; // type:function size:0x54 +fn_1_5058 = .text:0x00005058; // type:function size:0x264 +fn_1_52BC = .text:0x000052BC; // type:function size:0x274 +fn_1_5530 = .text:0x00005530; // type:function size:0x704 +fn_1_5C34 = .text:0x00005C34; // type:function size:0xE4 +fn_1_5D18 = .text:0x00005D18; // type:function size:0x60 +fn_1_5D78 = .text:0x00005D78; // type:function size:0x3C4 +fn_1_613C = .text:0x0000613C; // type:function size:0x504 +fn_1_6640 = .text:0x00006640; // type:function size:0x4A8 +fn_1_6AE8 = .text:0x00006AE8; // type:function size:0x304 +fn_1_6DEC = .text:0x00006DEC; // type:function size:0x70 +fn_1_6E5C = .text:0x00006E5C; // type:function size:0x240 +fn_1_709C = .text:0x0000709C; // type:function size:0x250 +fn_1_72EC = .text:0x000072EC; // type:function size:0x6E4 +fn_1_79D0 = .text:0x000079D0; // type:function size:0x84 +fn_1_7A54 = .text:0x00007A54; // type:function size:0x20 +fn_1_7A74 = .text:0x00007A74; // type:function size:0x300 +fn_1_7D74 = .text:0x00007D74; // type:function size:0x1BC +fn_1_7F30 = .text:0x00007F30; // type:function size:0x484 +fn_1_83B4 = .text:0x000083B4; // type:function size:0x550 +fn_1_8904 = .text:0x00008904; // type:function size:0xB8 +fn_1_89BC = .text:0x000089BC; // type:function size:0x4E4 +fn_1_8EA0 = .text:0x00008EA0; // type:function size:0x14 +fn_1_8EB4 = .text:0x00008EB4; // type:function size:0xAC +fn_1_8F60 = .text:0x00008F60; // type:function size:0x90 +fn_1_8FF0 = .text:0x00008FF0; // type:function size:0x4 +fn_1_8FF4 = .text:0x00008FF4; // type:function size:0x34 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x1 data:byte +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float +lbl_1_data_38 = .data:0x00000038; // type:object size:0x1 data:byte +lbl_1_data_3C = .data:0x0000003C; // type:object size:0x1 data:byte +lbl_1_data_40 = .data:0x00000040; // type:object size:0x24 +lbl_1_data_64 = .data:0x00000064; // type:object size:0x4 data:4byte +jumptable_1_data_68 = .data:0x00000068; // type:object size:0x2C scope:local +lbl_1_data_94 = .data:0x00000094; // type:object size:0x1C data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x40 +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x1C +lbl_1_data_10C = .data:0x0000010C; // type:object size:0x48 +lbl_1_data_154 = .data:0x00000154; // type:object size:0x24 +lbl_1_data_178 = .data:0x00000178; // type:object size:0x8 +lbl_1_data_180 = .data:0x00000180; // type:object size:0x18 +lbl_1_data_198 = .data:0x00000198; // type:object size:0x30 +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x20 +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0xC data:4byte +lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x24 +lbl_1_data_218 = .data:0x00000218; // type:object size:0x48 +lbl_1_data_260 = .data:0x00000260; // type:object size:0x8 data:float +lbl_1_data_268 = .data:0x00000268; // type:object size:0x1 data:byte +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x60 data:float +lbl_1_data_2CC = .data:0x000002CC; // type:object size:0x18 +lbl_1_data_2E4 = .data:0x000002E4; // type:object size:0x8 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x10 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x900 +lbl_1_bss_914 = .bss:0x00000914; // type:object size:0x4 data:4byte +lbl_1_bss_918 = .bss:0x00000918; // type:object size:0x2 data:2byte +lbl_1_bss_91A = .bss:0x0000091A; // type:object size:0x6 data:2byte +lbl_1_bss_920 = .bss:0x00000920; // type:object size:0x4 data:float +lbl_1_bss_924 = .bss:0x00000924; // type:object size:0x2 data:2byte +lbl_1_bss_926 = .bss:0x00000926; // type:object size:0x2 data:2byte +lbl_1_bss_928 = .bss:0x00000928; // type:object size:0x2 data:2byte +lbl_1_bss_92A = .bss:0x0000092A; // type:object size:0x2 data:2byte +lbl_1_bss_92E = .bss:0x0000092E; // type:object size:0x2 data:2byte +lbl_1_bss_930 = .bss:0x00000930; // type:object size:0x20 data:4byte +lbl_1_bss_950 = .bss:0x00000950; // type:object size:0x4 data:4byte +lbl_1_bss_954 = .bss:0x00000954; // type:object size:0x4 data:4byte +lbl_1_bss_958 = .bss:0x00000958; // type:object size:0x4 data:4byte +lbl_1_bss_95C = .bss:0x0000095C; // type:object size:0x2 data:2byte +lbl_1_bss_960 = .bss:0x00000960; // type:object size:0x8 data:4byte +lbl_1_bss_968 = .bss:0x00000968; // type:object size:0x800 data:2byte +lbl_1_bss_1168 = .bss:0x00001168; // type:object size:0x2 data:2byte +lbl_1_bss_116C = .bss:0x0000116C; // type:object size:0x8 data:float +lbl_1_bss_1174 = .bss:0x00001174; // type:object size:0x8 +lbl_1_bss_117C = .bss:0x0000117C; // type:object size:0x4 data:float +lbl_1_bss_1180 = .bss:0x00001180; // type:object size:0x4 data:4byte +lbl_1_bss_1184 = .bss:0x00001184; // type:object size:0x4 data:4byte +lbl_1_bss_1188 = .bss:0x00001188; // type:object size:0x4 data:4byte +lbl_1_bss_118C = .bss:0x0000118C; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m417Dll/splits.txt b/config/GMPP01_00/rels/m417Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m417Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m417Dll/symbols.txt b/config/GMPP01_00/rels/m417Dll/symbols.txt new file mode 100644 index 00000000..7118da97 --- /dev/null +++ b/config/GMPP01_00/rels/m417Dll/symbols.txt @@ -0,0 +1,361 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x438 +fn_1_4D8 = .text:0x000004D8; // type:function size:0xD8 +fn_1_5B0 = .text:0x000005B0; // type:function size:0x250 +fn_1_800 = .text:0x00000800; // type:function size:0x190 +fn_1_990 = .text:0x00000990; // type:function size:0x518 +fn_1_EA8 = .text:0x00000EA8; // type:function size:0x534 +fn_1_13DC = .text:0x000013DC; // type:function size:0x3E4 +fn_1_17C0 = .text:0x000017C0; // type:function size:0x4E8 +fn_1_1CA8 = .text:0x00001CA8; // type:function size:0x4B0 +fn_1_2158 = .text:0x00002158; // type:function size:0x570 +fn_1_26C8 = .text:0x000026C8; // type:function size:0x18 +fn_1_26E0 = .text:0x000026E0; // type:function size:0x18 +fn_1_26F8 = .text:0x000026F8; // type:function size:0x18 +fn_1_2710 = .text:0x00002710; // type:function size:0x18 +fn_1_2728 = .text:0x00002728; // type:function size:0x18 +fn_1_2740 = .text:0x00002740; // type:function size:0x30 +fn_1_2770 = .text:0x00002770; // type:function size:0x30 +fn_1_27A0 = .text:0x000027A0; // type:function size:0x30 +fn_1_27D0 = .text:0x000027D0; // type:function size:0x38 +fn_1_2808 = .text:0x00002808; // type:function size:0x40 +fn_1_2848 = .text:0x00002848; // type:function size:0x348 +fn_1_2B90 = .text:0x00002B90; // type:function size:0x378 +fn_1_2F08 = .text:0x00002F08; // type:function size:0x11C +fn_1_3024 = .text:0x00003024; // type:function size:0xB4 +fn_1_30D8 = .text:0x000030D8; // type:function size:0x34 +fn_1_310C = .text:0x0000310C; // type:function size:0x168 +fn_1_3274 = .text:0x00003274; // type:function size:0x140 +fn_1_33B4 = .text:0x000033B4; // type:function size:0x4C +fn_1_3400 = .text:0x00003400; // type:function size:0x134 +fn_1_3534 = .text:0x00003534; // type:function size:0x40 +fn_1_3574 = .text:0x00003574; // type:function size:0x22C +fn_1_37A0 = .text:0x000037A0; // type:function size:0x37C +fn_1_3B1C = .text:0x00003B1C; // type:function size:0xA8 +fn_1_3BC4 = .text:0x00003BC4; // type:function size:0x190 +fn_1_3D54 = .text:0x00003D54; // type:function size:0x4 +fn_1_3D58 = .text:0x00003D58; // type:function size:0xE70 +fn_1_4BC8 = .text:0x00004BC8; // type:function size:0x29C +fn_1_4E64 = .text:0x00004E64; // type:function size:0x94C +fn_1_57B0 = .text:0x000057B0; // type:function size:0x68C +fn_1_5E3C = .text:0x00005E3C; // type:function size:0x210 +fn_1_604C = .text:0x0000604C; // type:function size:0xAB8 +fn_1_6B04 = .text:0x00006B04; // type:function size:0x5C +fn_1_6B60 = .text:0x00006B60; // type:function size:0x34 +fn_1_6B94 = .text:0x00006B94; // type:function size:0x1D0 +fn_1_6D64 = .text:0x00006D64; // type:function size:0x7AC +fn_1_7510 = .text:0x00007510; // type:function size:0xAC +fn_1_75BC = .text:0x000075BC; // type:function size:0x34 +fn_1_75F0 = .text:0x000075F0; // type:function size:0x10 +fn_1_7600 = .text:0x00007600; // type:function size:0x24 +fn_1_7624 = .text:0x00007624; // type:function size:0x298 +fn_1_78BC = .text:0x000078BC; // type:function size:0xAC +fn_1_7968 = .text:0x00007968; // type:function size:0xC0 +fn_1_7A28 = .text:0x00007A28; // type:function size:0xC +fn_1_7A34 = .text:0x00007A34; // type:function size:0x234 +fn_1_7C68 = .text:0x00007C68; // type:function size:0x24 +fn_1_7C8C = .text:0x00007C8C; // type:function size:0x670 +fn_1_82FC = .text:0x000082FC; // type:function size:0x3EC +fn_1_86E8 = .text:0x000086E8; // type:function size:0x424 +fn_1_8B0C = .text:0x00008B0C; // type:function size:0x224 +fn_1_8D30 = .text:0x00008D30; // type:function size:0x114 +fn_1_8E44 = .text:0x00008E44; // type:function size:0x39C +fn_1_91E0 = .text:0x000091E0; // type:function size:0xB8 +fn_1_9298 = .text:0x00009298; // type:function size:0x784 +fn_1_9A1C = .text:0x00009A1C; // type:function size:0x1F8 +fn_1_9C14 = .text:0x00009C14; // type:function size:0x3EC +fn_1_A000 = .text:0x0000A000; // type:function size:0xD34 +fn_1_AD34 = .text:0x0000AD34; // type:function size:0xA0 +fn_1_ADD4 = .text:0x0000ADD4; // type:function size:0x4FC +fn_1_B2D0 = .text:0x0000B2D0; // type:function size:0x5E0 +fn_1_B8B0 = .text:0x0000B8B0; // type:function size:0x1A4 +fn_1_BA54 = .text:0x0000BA54; // type:function size:0x74 +fn_1_BAC8 = .text:0x0000BAC8; // type:function size:0x1E8 +fn_1_BCB0 = .text:0x0000BCB0; // type:function size:0x3C +fn_1_BCEC = .text:0x0000BCEC; // type:function size:0xF0 +fn_1_BDDC = .text:0x0000BDDC; // type:function size:0x214 +fn_1_BFF0 = .text:0x0000BFF0; // type:function size:0xA0 +fn_1_C090 = .text:0x0000C090; // type:function size:0x3E4 +fn_1_C474 = .text:0x0000C474; // type:function size:0x224 +fn_1_C698 = .text:0x0000C698; // type:function size:0x134 +fn_1_C7CC = .text:0x0000C7CC; // type:function size:0xF0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC data:4byte +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x24 data:4byte +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x24 data:4byte +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0xC data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x1 data:byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x1 data:byte +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:4byte +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x10 data:4byte +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x10 data:4byte +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x10 data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0xC data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0xC data:4byte +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x10 data:4byte +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0xC data:4byte +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:4byte +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x18 data:4byte +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x18 data:4byte +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:double +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x8 data:double +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:double +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 data:double +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0x10 data:float +lbl_1_data_50 = .data:0x00000050; // type:object size:0x40 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x84 +lbl_1_data_114 = .data:0x00000114; // type:object size:0xDC +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x38 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x2 data:2byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x110 data:float +lbl_1_bss_178 = .bss:0x00000178; // type:object size:0x700 data:4byte +lbl_1_bss_878 = .bss:0x00000878; // type:object size:0x8 data:4byte +lbl_1_bss_880 = .bss:0x00000880; // type:object size:0x4 data:4byte +lbl_1_bss_884 = .bss:0x00000884; // type:object size:0x4 data:4byte +lbl_1_bss_888 = .bss:0x00000888; // type:object size:0x10 +lbl_1_bss_898 = .bss:0x00000898; // type:object size:0x10 data:4byte +lbl_1_bss_8A8 = .bss:0x000008A8; // type:object size:0x4 data:4byte +lbl_1_bss_8AC = .bss:0x000008AC; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m418Dll/splits.txt b/config/GMPP01_00/rels/m418Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m418Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m418Dll/symbols.txt b/config/GMPP01_00/rels/m418Dll/symbols.txt new file mode 100644 index 00000000..f4a0ef38 --- /dev/null +++ b/config/GMPP01_00/rels/m418Dll/symbols.txt @@ -0,0 +1,304 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x74 +fn_1_74 = .text:0x00000074; // type:function size:0xE4 +fn_1_158 = .text:0x00000158; // type:function size:0x28 +fn_1_180 = .text:0x00000180; // type:function size:0xC8 +fn_1_248 = .text:0x00000248; // type:function size:0x20 +fn_1_268 = .text:0x00000268; // type:function size:0x298 +fn_1_500 = .text:0x00000500; // type:function size:0x118 +fn_1_618 = .text:0x00000618; // type:function size:0xC4 +fn_1_6DC = .text:0x000006DC; // type:function size:0x38 +fn_1_714 = .text:0x00000714; // type:function size:0x34 +fn_1_748 = .text:0x00000748; // type:function size:0x38 +fn_1_780 = .text:0x00000780; // type:function size:0x1C8 +fn_1_948 = .text:0x00000948; // type:function size:0x48 +fn_1_990 = .text:0x00000990; // type:function size:0x110 +fn_1_AA0 = .text:0x00000AA0; // type:function size:0xA4 +fn_1_B44 = .text:0x00000B44; // type:function size:0x328 +fn_1_E6C = .text:0x00000E6C; // type:function size:0x67C +fn_1_14E8 = .text:0x000014E8; // type:function size:0x3BC +fn_1_18A4 = .text:0x000018A4; // type:function size:0x50 +fn_1_18F4 = .text:0x000018F4; // type:function size:0x7B4 +fn_1_20A8 = .text:0x000020A8; // type:function size:0xC8 +fn_1_2170 = .text:0x00002170; // type:function size:0x71C +fn_1_288C = .text:0x0000288C; // type:function size:0x10C +fn_1_2998 = .text:0x00002998; // type:function size:0x224 +fn_1_2BBC = .text:0x00002BBC; // type:function size:0x48 +fn_1_2C04 = .text:0x00002C04; // type:function size:0x448 +fn_1_304C = .text:0x0000304C; // type:function size:0xE4 +fn_1_3130 = .text:0x00003130; // type:function size:0x108 +fn_1_3238 = .text:0x00003238; // type:function size:0x1C8 +fn_1_3400 = .text:0x00003400; // type:function size:0x3C +fn_1_343C = .text:0x0000343C; // type:function size:0xA6C +fn_1_3EA8 = .text:0x00003EA8; // type:function size:0x814 +fn_1_46BC = .text:0x000046BC; // type:function size:0x5C0 +fn_1_4C7C = .text:0x00004C7C; // type:function size:0x2DC +fn_1_4F58 = .text:0x00004F58; // type:function size:0x3F8 +fn_1_5350 = .text:0x00005350; // type:function size:0xE4 +fn_1_5434 = .text:0x00005434; // type:function size:0x150 +fn_1_5584 = .text:0x00005584; // type:function size:0x120 +fn_1_56A4 = .text:0x000056A4; // type:function size:0xBC +fn_1_5760 = .text:0x00005760; // type:function size:0x7C +fn_1_57DC = .text:0x000057DC; // type:function size:0x18C +fn_1_5968 = .text:0x00005968; // type:function size:0xFC +fn_1_5A64 = .text:0x00005A64; // type:function size:0x2BC +fn_1_5D20 = .text:0x00005D20; // type:function size:0x30 +fn_1_5D50 = .text:0x00005D50; // type:function size:0x98 +fn_1_5DE8 = .text:0x00005DE8; // type:function size:0x248 +fn_1_6030 = .text:0x00006030; // type:function size:0x2DC +fn_1_630C = .text:0x0000630C; // type:function size:0xE4 +fn_1_63F0 = .text:0x000063F0; // type:function size:0x118 +fn_1_6508 = .text:0x00006508; // type:function size:0x108 +fn_1_6610 = .text:0x00006610; // type:function size:0x128 +fn_1_6738 = .text:0x00006738; // type:function size:0xC8 +fn_1_6800 = .text:0x00006800; // type:function size:0x10C +fn_1_690C = .text:0x0000690C; // type:function size:0x4B8 +fn_1_6DC4 = .text:0x00006DC4; // type:function size:0xA0 +fn_1_6E64 = .text:0x00006E64; // type:function size:0x48 +fn_1_6EAC = .text:0x00006EAC; // type:function size:0x84 +fn_1_6F30 = .text:0x00006F30; // type:function size:0x35C +fn_1_728C = .text:0x0000728C; // type:function size:0x4 +fn_1_7290 = .text:0x00007290; // type:function size:0x2D8 +fn_1_7568 = .text:0x00007568; // type:function size:0x74 +fn_1_75DC = .text:0x000075DC; // type:function size:0x214 +fn_1_77F0 = .text:0x000077F0; // type:function size:0x68 +fn_1_7858 = .text:0x00007858; // type:function size:0x208 +fn_1_7A60 = .text:0x00007A60; // type:function size:0x100 +fn_1_7B60 = .text:0x00007B60; // type:function size:0x218 +fn_1_7D78 = .text:0x00007D78; // type:function size:0xA4 +fn_1_7E1C = .text:0x00007E1C; // type:function size:0xF8 +fn_1_7F14 = .text:0x00007F14; // type:function size:0xB8 +fn_1_7FCC = .text:0x00007FCC; // type:function size:0x1CC +fn_1_8198 = .text:0x00008198; // type:function size:0x4 +fn_1_819C = .text:0x0000819C; // type:function size:0x2DC +fn_1_8478 = .text:0x00008478; // type:function size:0x30 +fn_1_84A8 = .text:0x000084A8; // type:function size:0x98 +fn_1_8540 = .text:0x00008540; // type:function size:0x120 +fn_1_8660 = .text:0x00008660; // type:function size:0xC0 +fn_1_8720 = .text:0x00008720; // type:function size:0xA8 +fn_1_87C8 = .text:0x000087C8; // type:function size:0xBC +fn_1_8884 = .text:0x00008884; // type:function size:0x28 +fn_1_88AC = .text:0x000088AC; // type:function size:0xFC +fn_1_89A8 = .text:0x000089A8; // type:function size:0x164 +fn_1_8B0C = .text:0x00008B0C; // type:function size:0x170 +fn_1_8C7C = .text:0x00008C7C; // type:function size:0xEC +fn_1_8D68 = .text:0x00008D68; // type:function size:0x204 +fn_1_8F6C = .text:0x00008F6C; // type:function size:0x120 +fn_1_908C = .text:0x0000908C; // type:function size:0x48 +fn_1_90D4 = .text:0x000090D4; // type:function size:0x64 +fn_1_9138 = .text:0x00009138; // type:function size:0xA4 +fn_1_91DC = .text:0x000091DC; // type:function size:0x108 +fn_1_92E4 = .text:0x000092E4; // type:function size:0x48 +fn_1_932C = .text:0x0000932C; // type:function size:0x30 +fn_1_935C = .text:0x0000935C; // type:function size:0x98 +fn_1_93F4 = .text:0x000093F4; // type:function size:0x130 +fn_1_9524 = .text:0x00009524; // type:function size:0x60 +fn_1_9584 = .text:0x00009584; // type:function size:0x618 +fn_1_9B9C = .text:0x00009B9C; // type:function size:0x3F0 +fn_1_9F8C = .text:0x00009F8C; // type:function size:0x1BC +_prolog = .text:0x0000A148; // type:function size:0x54 scope:global +_epilog = .text:0x0000A19C; // type:function size:0x4C scope:global +fn_1_A1E8 = .text:0x0000A1E8; // type:function size:0x398 +fn_1_A580 = .text:0x0000A580; // type:function size:0x398 +fn_1_A918 = .text:0x0000A918; // type:function size:0x20 +fn_1_A938 = .text:0x0000A938; // type:function size:0x28 +fn_1_A960 = .text:0x0000A960; // type:function size:0xC8 +fn_1_AA28 = .text:0x0000AA28; // type:function size:0xBC +fn_1_AAE4 = .text:0x0000AAE4; // type:function size:0xD8 +fn_1_ABBC = .text:0x0000ABBC; // type:function size:0x150 +fn_1_AD0C = .text:0x0000AD0C; // type:function size:0x178 +fn_1_AE84 = .text:0x0000AE84; // type:function size:0x50 +fn_1_AED4 = .text:0x0000AED4; // type:function size:0x5C +fn_1_AF30 = .text:0x0000AF30; // type:function size:0x88 +fn_1_AFB8 = .text:0x0000AFB8; // type:function size:0x74 +fn_1_B02C = .text:0x0000B02C; // type:function size:0x94 +fn_1_B0C0 = .text:0x0000B0C0; // type:function size:0x3C +fn_1_B0FC = .text:0x0000B0FC; // type:function size:0x318 +fn_1_B414 = .text:0x0000B414; // type:function size:0x3C +fn_1_B450 = .text:0x0000B450; // type:function size:0x4C +fn_1_B49C = .text:0x0000B49C; // type:function size:0x26C +fn_1_B708 = .text:0x0000B708; // type:function size:0x26C +fn_1_B974 = .text:0x0000B974; // type:function size:0x27C +fn_1_BBF0 = .text:0x0000BBF0; // type:function size:0x2B4 +fn_1_BEA4 = .text:0x0000BEA4; // type:function size:0x46C +fn_1_C310 = .text:0x0000C310; // type:function size:0x454 +fn_1_C764 = .text:0x0000C764; // type:function size:0x48C +fn_1_CBF0 = .text:0x0000CBF0; // type:function size:0x658 +fn_1_D248 = .text:0x0000D248; // type:function size:0x4C4 +fn_1_D70C = .text:0x0000D70C; // type:function size:0x4FC +fn_1_DC08 = .text:0x0000DC08; // type:function size:0x6C8 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0xC data:4byte +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0xC data:4byte +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0xC data:4byte +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0xC data:4byte +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0xC data:4byte +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:4byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0xC data:4byte +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x10 data:4byte +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 data:4byte +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x10 data:4byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x10 data:4byte +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC data:4byte +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0xC data:4byte +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0xC data:4byte +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0xC data:4byte +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0xC data:4byte +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0xC data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0xC data:4byte +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0xC data:4byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0xC data:4byte +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0xC data:4byte +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0xC data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0xC data:4byte +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0xC data:4byte +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0xC data:4byte +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 data:4byte +lbl_1_data_8 = .data:0x00000008; // type:object size:0x4 data:4byte +lbl_1_data_C = .data:0x0000000C; // type:object size:0x12 data:string +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x13 data:string +lbl_1_data_31 = .data:0x00000031; // type:object size:0x10 data:string +lbl_1_data_41 = .data:0x00000041; // type:object size:0x10 data:string +lbl_1_data_51 = .data:0x00000051; // type:object size:0x10 data:string +lbl_1_data_61 = .data:0x00000061; // type:object size:0x10 data:string +lbl_1_data_71 = .data:0x00000071; // type:object size:0xD data:string +lbl_1_data_7E = .data:0x0000007E; // type:object size:0xE data:string +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x6C data:4byte +jumptable_1_data_F8 = .data:0x000000F8; // type:object size:0x88 scope:local +lbl_1_data_180 = .data:0x00000180; // type:object size:0x12 data:string +lbl_1_data_192 = .data:0x00000192; // type:object size:0x15 data:string +lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x19 data:string +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x20 +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x60 +lbl_1_data_240 = .data:0x00000240; // type:object size:0x24 +lbl_1_data_264 = .data:0x00000264; // type:object size:0x30 +lbl_1_data_294 = .data:0x00000294; // type:object size:0x24 +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x60 +lbl_1_data_318 = .data:0x00000318; // type:object size:0x30 +lbl_1_data_348 = .data:0x00000348; // type:object size:0x84 +lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x30 +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x48 +lbl_1_data_444 = .data:0x00000444; // type:object size:0x60 +jumptable_1_data_4A4 = .data:0x000004A4; // type:object size:0x28 scope:local +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x18 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x18 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x18 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0xB4 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x54 data:4byte +lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x70 +lbl_1_bss_1E0 = .bss:0x000001E0; // type:object size:0x14 data:4byte +lbl_1_bss_1F4 = .bss:0x000001F4; // type:object size:0x4C data:4byte +lbl_1_bss_240 = .bss:0x00000240; // type:object size:0x2C data:4byte +lbl_1_bss_26C = .bss:0x0000026C; // type:object size:0x180 +lbl_1_bss_3EC = .bss:0x000003EC; // type:object size:0x44 data:4byte diff --git a/config/GMPP01_00/rels/m419Dll/splits.txt b/config/GMPP01_00/rels/m419Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m419Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m419Dll/symbols.txt b/config/GMPP01_00/rels/m419Dll/symbols.txt new file mode 100644 index 00000000..cf313005 --- /dev/null +++ b/config/GMPP01_00/rels/m419Dll/symbols.txt @@ -0,0 +1,184 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x400 +fn_1_4A0 = .text:0x000004A0; // type:function size:0xDC +fn_1_57C = .text:0x0000057C; // type:function size:0x2CC +fn_1_848 = .text:0x00000848; // type:function size:0x288 +fn_1_AD0 = .text:0x00000AD0; // type:function size:0x488 +fn_1_F58 = .text:0x00000F58; // type:function size:0x102C +fn_1_1F84 = .text:0x00001F84; // type:function size:0x128 +fn_1_20AC = .text:0x000020AC; // type:function size:0x128 +fn_1_21D4 = .text:0x000021D4; // type:function size:0x80 +fn_1_2254 = .text:0x00002254; // type:function size:0x4F0 +fn_1_2744 = .text:0x00002744; // type:function size:0x498 +fn_1_2BDC = .text:0x00002BDC; // type:function size:0x220 +fn_1_2DFC = .text:0x00002DFC; // type:function size:0x4FC +fn_1_32F8 = .text:0x000032F8; // type:function size:0x154 +fn_1_344C = .text:0x0000344C; // type:function size:0x1398 +fn_1_47E4 = .text:0x000047E4; // type:function size:0x33C +fn_1_4B20 = .text:0x00004B20; // type:function size:0x334 +fn_1_4E54 = .text:0x00004E54; // type:function size:0xB8 +fn_1_4F0C = .text:0x00004F0C; // type:function size:0xC0 +fn_1_4FCC = .text:0x00004FCC; // type:function size:0x6C +fn_1_5038 = .text:0x00005038; // type:function size:0x6C +fn_1_50A4 = .text:0x000050A4; // type:function size:0x244 +fn_1_52E8 = .text:0x000052E8; // type:function size:0x570 +fn_1_5858 = .text:0x00005858; // type:function size:0x104 +fn_1_595C = .text:0x0000595C; // type:function size:0x17C +fn_1_5AD8 = .text:0x00005AD8; // type:function size:0x45C +fn_1_5F34 = .text:0x00005F34; // type:function size:0x358 +fn_1_628C = .text:0x0000628C; // type:function size:0x334 +fn_1_65C0 = .text:0x000065C0; // type:function size:0x1E0 +fn_1_67A0 = .text:0x000067A0; // type:function size:0x564 +fn_1_6D04 = .text:0x00006D04; // type:function size:0x198 +fn_1_6E9C = .text:0x00006E9C; // type:function size:0xA18 +fn_1_78B4 = .text:0x000078B4; // type:function size:0x223C +fn_1_9AF0 = .text:0x00009AF0; // type:function size:0x130C +fn_1_ADFC = .text:0x0000ADFC; // type:function size:0x258 +fn_1_B054 = .text:0x0000B054; // type:function size:0x2E78 +fn_1_DECC = .text:0x0000DECC; // type:function size:0x70 +fn_1_DF3C = .text:0x0000DF3C; // type:function size:0x5C +fn_1_DF98 = .text:0x0000DF98; // type:function size:0x17A4 +fn_1_F73C = .text:0x0000F73C; // type:function size:0x280 +fn_1_F9BC = .text:0x0000F9BC; // type:function size:0x89C +fn_1_10258 = .text:0x00010258; // type:function size:0x248 +fn_1_104A0 = .text:0x000104A0; // type:function size:0x60 +fn_1_10500 = .text:0x00010500; // type:function size:0x3D8 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 +lbl_1_data_20 = .data:0x00000020; // type:object size:0x2C +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x10 +lbl_1_data_5C = .data:0x0000005C; // type:object size:0x60 +lbl_1_data_BC = .data:0x000000BC; // type:object size:0xB data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x60 +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x1 data:byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x20 +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x20 +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0xC data:float +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0xC data:float +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0xC data:float +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0xB8 data:4byte +lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x10 +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x58 data:2byte +lbl_1_bss_1E8 = .bss:0x000001E8; // type:object size:0x18 data:2byte +lbl_1_bss_200 = .bss:0x00000200; // type:object size:0x380 +lbl_1_bss_580 = .bss:0x00000580; // type:object size:0x4 data:4byte +lbl_1_bss_584 = .bss:0x00000584; // type:object size:0x10 data:4byte +lbl_1_bss_594 = .bss:0x00000594; // type:object size:0x10 +lbl_1_bss_5A4 = .bss:0x000005A4; // type:object size:0x4 data:4byte +lbl_1_bss_5A8 = .bss:0x000005A8; // type:object size:0x4 data:4byte +lbl_1_bss_5AC = .bss:0x000005AC; // type:object size:0x4 data:4byte +lbl_1_bss_5B0 = .bss:0x000005B0; // type:object size:0x4 data:4byte +lbl_1_bss_5B4 = .bss:0x000005B4; // type:object size:0x4 data:4byte +lbl_1_bss_5B8 = .bss:0x000005B8; // type:object size:0x2 data:2byte +lbl_1_bss_5BA = .bss:0x000005BA; // type:object size:0x2 data:2byte +lbl_1_bss_5BC = .bss:0x000005BC; // type:object size:0x2 data:2byte +lbl_1_bss_5BE = .bss:0x000005BE; // type:object size:0x2 data:2byte +lbl_1_bss_5C2 = .bss:0x000005C2; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/m420dll/splits.txt b/config/GMPP01_00/rels/m420dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m420dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m420dll/symbols.txt b/config/GMPP01_00/rels/m420dll/symbols.txt new file mode 100644 index 00000000..8077c937 --- /dev/null +++ b/config/GMPP01_00/rels/m420dll/symbols.txt @@ -0,0 +1,249 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x78 +fn_1_118 = .text:0x00000118; // type:function size:0x80 +fn_1_198 = .text:0x00000198; // type:function size:0x23C +fn_1_3D4 = .text:0x000003D4; // type:function size:0x68 +fn_1_43C = .text:0x0000043C; // type:function size:0x8C0 +fn_1_CFC = .text:0x00000CFC; // type:function size:0x84 +fn_1_D80 = .text:0x00000D80; // type:function size:0x1B0 +fn_1_F30 = .text:0x00000F30; // type:function size:0x2C +fn_1_F5C = .text:0x00000F5C; // type:function size:0xBC +fn_1_1018 = .text:0x00001018; // type:function size:0xBC +fn_1_10D4 = .text:0x000010D4; // type:function size:0x98 +fn_1_116C = .text:0x0000116C; // type:function size:0x718 +fn_1_1884 = .text:0x00001884; // type:function size:0x214 +fn_1_1A98 = .text:0x00001A98; // type:function size:0xDC +fn_1_1B74 = .text:0x00001B74; // type:function size:0x288 +fn_1_1DFC = .text:0x00001DFC; // type:function size:0x50 +fn_1_1E4C = .text:0x00001E4C; // type:function size:0xB0 +fn_1_1EFC = .text:0x00001EFC; // type:function size:0x40 +fn_1_1F3C = .text:0x00001F3C; // type:function size:0x40 +fn_1_1F7C = .text:0x00001F7C; // type:function size:0x78 +fn_1_1FF4 = .text:0x00001FF4; // type:function size:0xE0 +fn_1_20D4 = .text:0x000020D4; // type:function size:0x30 +fn_1_2104 = .text:0x00002104; // type:function size:0x58 +fn_1_215C = .text:0x0000215C; // type:function size:0x54 +fn_1_21B0 = .text:0x000021B0; // type:function size:0x98 +fn_1_2248 = .text:0x00002248; // type:function size:0x6C +fn_1_22B4 = .text:0x000022B4; // type:function size:0x4A0 +fn_1_2754 = .text:0x00002754; // type:function size:0x574 +fn_1_2CC8 = .text:0x00002CC8; // type:function size:0x9C +fn_1_2D64 = .text:0x00002D64; // type:function size:0x12C +fn_1_2E90 = .text:0x00002E90; // type:function size:0x1F0 +fn_1_3080 = .text:0x00003080; // type:function size:0x1D4 +fn_1_3254 = .text:0x00003254; // type:function size:0x1E4 +fn_1_3438 = .text:0x00003438; // type:function size:0x5C +fn_1_3494 = .text:0x00003494; // type:function size:0xB0 +fn_1_3544 = .text:0x00003544; // type:function size:0x188 +fn_1_36CC = .text:0x000036CC; // type:function size:0x68 +fn_1_3734 = .text:0x00003734; // type:function size:0x40 +fn_1_3774 = .text:0x00003774; // type:function size:0xC8 +fn_1_383C = .text:0x0000383C; // type:function size:0x11C +fn_1_3958 = .text:0x00003958; // type:function size:0x624 +fn_1_3F7C = .text:0x00003F7C; // type:function size:0x300 +fn_1_427C = .text:0x0000427C; // type:function size:0x2E0 +fn_1_455C = .text:0x0000455C; // type:function size:0x1F8 +fn_1_4754 = .text:0x00004754; // type:function size:0x1F8 +fn_1_494C = .text:0x0000494C; // type:function size:0x1008 +fn_1_5954 = .text:0x00005954; // type:function size:0x88 +fn_1_59DC = .text:0x000059DC; // type:function size:0x88 +fn_1_5A64 = .text:0x00005A64; // type:function size:0x2C +fn_1_5A90 = .text:0x00005A90; // type:function size:0x1E4 +fn_1_5C74 = .text:0x00005C74; // type:function size:0x464 +fn_1_60D8 = .text:0x000060D8; // type:function size:0x178 +fn_1_6250 = .text:0x00006250; // type:function size:0x104 +fn_1_6354 = .text:0x00006354; // type:function size:0x80 +fn_1_63D4 = .text:0x000063D4; // type:function size:0x120 +fn_1_64F4 = .text:0x000064F4; // type:function size:0x48 +fn_1_653C = .text:0x0000653C; // type:function size:0x10C +fn_1_6648 = .text:0x00006648; // type:function size:0x10 +fn_1_6658 = .text:0x00006658; // type:function size:0x2C +fn_1_6684 = .text:0x00006684; // type:function size:0x8C +fn_1_6710 = .text:0x00006710; // type:function size:0x7C +fn_1_678C = .text:0x0000678C; // type:function size:0x44 +fn_1_67D0 = .text:0x000067D0; // type:function size:0x28 +fn_1_67F8 = .text:0x000067F8; // type:function size:0x10 +fn_1_6808 = .text:0x00006808; // type:function size:0x64 +fn_1_686C = .text:0x0000686C; // type:function size:0xCC +fn_1_6938 = .text:0x00006938; // type:function size:0x3BC +fn_1_6CF4 = .text:0x00006CF4; // type:function size:0x50 +fn_1_6D44 = .text:0x00006D44; // type:function size:0x94 +fn_1_6DD8 = .text:0x00006DD8; // type:function size:0x440 +fn_1_7218 = .text:0x00007218; // type:function size:0x98 +fn_1_72B0 = .text:0x000072B0; // type:function size:0x98 +fn_1_7348 = .text:0x00007348; // type:function size:0x98 +fn_1_73E0 = .text:0x000073E0; // type:function size:0x100 +fn_1_74E0 = .text:0x000074E0; // type:function size:0x20C +fn_1_76EC = .text:0x000076EC; // type:function size:0x720 +fn_1_7E0C = .text:0x00007E0C; // type:function size:0x41C +fn_1_8228 = .text:0x00008228; // type:function size:0x1D4 +fn_1_83FC = .text:0x000083FC; // type:function size:0x520 +fn_1_891C = .text:0x0000891C; // type:function size:0x10 +fn_1_892C = .text:0x0000892C; // type:function size:0x34 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x54 +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 data:4byte +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x160 +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x60 +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x10 +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x1C +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x6C +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0xC data:4byte +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0xC data:4byte +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x30 data:4byte +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x30 data:4byte +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0xC data:4byte +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1E data:string +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x1E data:string +lbl_1_data_3C = .data:0x0000003C; // type:object size:0x14 +lbl_1_data_50 = .data:0x00000050; // type:object size:0x80 +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x1C +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x30 +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x19 data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0x3 +lbl_1_data_138 = .data:0x00000138; // type:object size:0x1C +lbl_1_data_154 = .data:0x00000154; // type:object size:0x10 data:4byte +lbl_1_data_164 = .data:0x00000164; // type:object size:0xD data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x10 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:float +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:float +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x1C data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x1C data:float +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x1C data:float +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x8 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x80 data:float +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x8AC data:4byte +lbl_1_bss_9EC = .bss:0x000009EC; // type:object size:0x2 data:2byte +lbl_1_bss_9F0 = .bss:0x000009F0; // type:object size:0x38 data:2byte +lbl_1_bss_A28 = .bss:0x00000A28; // type:object size:0x4 data:4byte +lbl_1_bss_A2C = .bss:0x00000A2C; // type:object size:0x10 data:4byte +lbl_1_bss_A3C = .bss:0x00000A3C; // type:object size:0x4 data:4byte +lbl_1_bss_A40 = .bss:0x00000A40; // type:object size:0x8 data:4byte +lbl_1_bss_A48 = .bss:0x00000A48; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m421Dll/splits.txt b/config/GMPP01_00/rels/m421Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m421Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m421Dll/symbols.txt b/config/GMPP01_00/rels/m421Dll/symbols.txt new file mode 100644 index 00000000..30da45c8 --- /dev/null +++ b/config/GMPP01_00/rels/m421Dll/symbols.txt @@ -0,0 +1,269 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x400 +fn_1_4A0 = .text:0x000004A0; // type:function size:0xD8 +fn_1_578 = .text:0x00000578; // type:function size:0x20C +fn_1_784 = .text:0x00000784; // type:function size:0x134 +fn_1_8B8 = .text:0x000008B8; // type:function size:0x404 +fn_1_CBC = .text:0x00000CBC; // type:function size:0x430 +fn_1_10EC = .text:0x000010EC; // type:function size:0x340 +fn_1_142C = .text:0x0000142C; // type:function size:0x424 +fn_1_1850 = .text:0x00001850; // type:function size:0x440 +fn_1_1C90 = .text:0x00001C90; // type:function size:0x4AC +fn_1_213C = .text:0x0000213C; // type:function size:0x70 +fn_1_21AC = .text:0x000021AC; // type:function size:0x87C +fn_1_2A28 = .text:0x00002A28; // type:function size:0x190 +fn_1_2BB8 = .text:0x00002BB8; // type:function size:0x468 +fn_1_3020 = .text:0x00003020; // type:function size:0xB0 +fn_1_30D0 = .text:0x000030D0; // type:function size:0x264 +fn_1_3334 = .text:0x00003334; // type:function size:0x28 +fn_1_335C = .text:0x0000335C; // type:function size:0x5A0 +fn_1_38FC = .text:0x000038FC; // type:function size:0x254 +fn_1_3B50 = .text:0x00003B50; // type:function size:0x14 +fn_1_3B64 = .text:0x00003B64; // type:function size:0x14 +fn_1_3B78 = .text:0x00003B78; // type:function size:0x9C +fn_1_3C14 = .text:0x00003C14; // type:function size:0x9C +fn_1_3CB0 = .text:0x00003CB0; // type:function size:0x68 +fn_1_3D18 = .text:0x00003D18; // type:function size:0x6C +fn_1_3D84 = .text:0x00003D84; // type:function size:0x98 +fn_1_3E1C = .text:0x00003E1C; // type:function size:0x18 +fn_1_3E34 = .text:0x00003E34; // type:function size:0x18 +fn_1_3E4C = .text:0x00003E4C; // type:function size:0x18 +fn_1_3E64 = .text:0x00003E64; // type:function size:0x18 +fn_1_3E7C = .text:0x00003E7C; // type:function size:0x7C +fn_1_3EF8 = .text:0x00003EF8; // type:function size:0x30 +fn_1_3F28 = .text:0x00003F28; // type:function size:0x40 +fn_1_3F68 = .text:0x00003F68; // type:function size:0x30 +fn_1_3F98 = .text:0x00003F98; // type:function size:0x30 +fn_1_3FC8 = .text:0x00003FC8; // type:function size:0x30 +fn_1_3FF8 = .text:0x00003FF8; // type:function size:0x38 +fn_1_4030 = .text:0x00004030; // type:function size:0x208 +fn_1_4238 = .text:0x00004238; // type:function size:0x240 +fn_1_4478 = .text:0x00004478; // type:function size:0x11C +fn_1_4594 = .text:0x00004594; // type:function size:0xB4 +fn_1_4648 = .text:0x00004648; // type:function size:0x268 +fn_1_48B0 = .text:0x000048B0; // type:function size:0x24 +fn_1_48D4 = .text:0x000048D4; // type:function size:0x62C +fn_1_4F00 = .text:0x00004F00; // type:function size:0x160 +fn_1_5060 = .text:0x00005060; // type:function size:0x368 +fn_1_53C8 = .text:0x000053C8; // type:function size:0x3C4 +fn_1_578C = .text:0x0000578C; // type:function size:0x410 +fn_1_5B9C = .text:0x00005B9C; // type:function size:0x5E8 +fn_1_6184 = .text:0x00006184; // type:function size:0x27C +fn_1_6400 = .text:0x00006400; // type:function size:0x2B4 +fn_1_66B4 = .text:0x000066B4; // type:function size:0xB8 +fn_1_676C = .text:0x0000676C; // type:function size:0x5DC +fn_1_6D48 = .text:0x00006D48; // type:function size:0x730 +fn_1_7478 = .text:0x00007478; // type:function size:0x1F8 +fn_1_7670 = .text:0x00007670; // type:function size:0x430 +fn_1_7AA0 = .text:0x00007AA0; // type:function size:0x418 +fn_1_7EB8 = .text:0x00007EB8; // type:function size:0x208 +fn_1_80C0 = .text:0x000080C0; // type:function size:0x87C +fn_1_893C = .text:0x0000893C; // type:function size:0xB38 +fn_1_9474 = .text:0x00009474; // type:function size:0xF8 +fn_1_956C = .text:0x0000956C; // type:function size:0x2C0 +fn_1_982C = .text:0x0000982C; // type:function size:0x18C +fn_1_99B8 = .text:0x000099B8; // type:function size:0x74 +fn_1_9A2C = .text:0x00009A2C; // type:function size:0x1D0 +fn_1_9BFC = .text:0x00009BFC; // type:function size:0x3C +fn_1_9C38 = .text:0x00009C38; // type:function size:0x198 +fn_1_9DD0 = .text:0x00009DD0; // type:function size:0x758 +fn_1_A528 = .text:0x0000A528; // type:function size:0x640 +fn_1_AB68 = .text:0x0000AB68; // type:function size:0x4 +fn_1_AB6C = .text:0x0000AB6C; // type:function size:0x70 +fn_1_ABDC = .text:0x0000ABDC; // type:function size:0x580 +fn_1_B15C = .text:0x0000B15C; // type:function size:0x60 +fn_1_B1BC = .text:0x0000B1BC; // type:function size:0x4 +fn_1_B1C0 = .text:0x0000B1C0; // type:function size:0x1D8 +fn_1_B398 = .text:0x0000B398; // type:function size:0x4 +fn_1_B39C = .text:0x0000B39C; // type:function size:0x40 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC data:4byte +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x50 +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x14 data:4byte +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x10 data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x10 data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x10 data:4byte +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x30 data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x30 data:4byte +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0xC data:4byte +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 +lbl_1_data_94 = .data:0x00000094; // type:object size:0xC +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x1 data:byte +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x1A data:string +lbl_1_data_BE = .data:0x000000BE; // type:object size:0x1A +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x2C +lbl_1_data_104 = .data:0x00000104; // type:object size:0x60 +lbl_1_data_164 = .data:0x00000164; // type:object size:0x20 +lbl_1_data_184 = .data:0x00000184; // type:object size:0x20 +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x18 +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x78 +lbl_1_data_234 = .data:0x00000234; // type:object size:0x30 +lbl_1_data_264 = .data:0x00000264; // type:object size:0x30 +lbl_1_data_294 = .data:0x00000294; // type:object size:0x18 +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0xC +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0xC +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0xC +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0xC +lbl_1_data_2DC = .data:0x000002DC; // type:object size:0xC +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0xC +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x6 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x10 +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m422Dll/splits.txt b/config/GMPP01_00/rels/m422Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m422Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m422Dll/symbols.txt b/config/GMPP01_00/rels/m422Dll/symbols.txt new file mode 100644 index 00000000..118c4a8d --- /dev/null +++ b/config/GMPP01_00/rels/m422Dll/symbols.txt @@ -0,0 +1,249 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x25C +fn_1_2FC = .text:0x000002FC; // type:function size:0x31C0 +fn_1_34BC = .text:0x000034BC; // type:function size:0x6B8 +fn_1_3B74 = .text:0x00003B74; // type:function size:0x4E60 +fn_1_89D4 = .text:0x000089D4; // type:function size:0xA28 +fn_1_93FC = .text:0x000093FC; // type:function size:0x4F0 +fn_1_98EC = .text:0x000098EC; // type:function size:0x134C +fn_1_AC38 = .text:0x0000AC38; // type:function size:0x3B8 +fn_1_AFF0 = .text:0x0000AFF0; // type:function size:0x54 +fn_1_B044 = .text:0x0000B044; // type:function size:0x428 +fn_1_B46C = .text:0x0000B46C; // type:function size:0xAC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x30 +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x30 +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x30 +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x30 +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x30 +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x30 +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x30 +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x1C data:4byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x1C data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 data:4byte +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x10 data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC data:4byte +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0xC data:4byte +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC data:4byte +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0xC data:4byte +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0xC data:4byte +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x20 data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x60 +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:4byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x60 +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x30 data:4byte +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x34 data:4byte +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 data:double +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x8 data:double +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:double +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x8 data:double +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:double +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 data:double +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 data:double +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x8 data:double +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:double +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:double +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 data:double +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 data:double +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float +lbl_1_rodata_5EC = .rodata:0x000005EC; // type:object size:0x4 data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x2C data:4byte +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x8 data:double +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x8 data:double +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x8 data:double +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x28 data:4byte +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x20 data:4byte +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 data:4byte +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 data:4byte +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x8 data:4byte +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x40 data:4byte +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x40 data:4byte +lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x4 data:float +lbl_1_rodata_74C = .rodata:0x0000074C; // type:object size:0x4 data:float +lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 data:float +lbl_1_rodata_754 = .rodata:0x00000754; // type:object size:0x4 data:float +lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x4 data:float +lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x8 data:double +lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x4 data:float +lbl_1_rodata_76C = .rodata:0x0000076C; // type:object size:0x10 data:4byte +lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0xC data:4byte +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0xC data:4byte +lbl_1_rodata_794 = .rodata:0x00000794; // type:object size:0x1 data:byte +lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x4 data:float +lbl_1_rodata_79C = .rodata:0x0000079C; // type:object size:0x4 data:float +lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x4 data:float +lbl_1_rodata_7A4 = .rodata:0x000007A4; // type:object size:0x4 data:float +lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x40 +lbl_1_data_40 = .data:0x00000040; // type:object size:0x60 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x20 +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x20 +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x7 +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x9 +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x1680 data:float +lbl_1_data_1770 = .data:0x00001770; // type:object size:0xF data:string +lbl_1_data_177F = .data:0x0000177F; // type:object size:0x10 data:string +lbl_1_data_178F = .data:0x0000178F; // type:object size:0x10 data:string +lbl_1_data_179F = .data:0x0000179F; // type:object size:0xF data:string +lbl_1_data_17AE = .data:0x000017AE; // type:object size:0x10 data:string +lbl_1_data_17BE = .data:0x000017BE; // type:object size:0x10 data:string +lbl_1_data_17CE = .data:0x000017CE; // type:object size:0xF data:string +lbl_1_data_17DD = .data:0x000017DD; // type:object size:0x11 data:string +lbl_1_data_17EE = .data:0x000017EE; // type:object size:0x11 data:string +lbl_1_data_17FF = .data:0x000017FF; // type:object size:0x12 data:string +lbl_1_data_1811 = .data:0x00001811; // type:object size:0x5 data:string +lbl_1_data_1816 = .data:0x00001816; // type:object size:0x12 +lbl_1_data_1828 = .data:0x00001828; // type:object size:0x50 +lbl_1_data_1878 = .data:0x00001878; // type:object size:0x2C +lbl_1_data_18A4 = .data:0x000018A4; // type:object size:0x8 data:4byte +lbl_1_data_18AC = .data:0x000018AC; // type:object size:0x4 data:4byte +lbl_1_data_18B0 = .data:0x000018B0; // type:object size:0x4 data:4byte +lbl_1_data_18B4 = .data:0x000018B4; // type:object size:0x40 +lbl_1_data_18F4 = .data:0x000018F4; // type:object size:0xC data:4byte +lbl_1_data_1900 = .data:0x00001900; // type:object size:0x4 data:4byte +lbl_1_data_1904 = .data:0x00001904; // type:object size:0x1B data:string +lbl_1_data_191F = .data:0x0000191F; // type:object size:0x19 data:string +lbl_1_data_1938 = .data:0x00001938; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x8 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_2E = .bss:0x0000002E; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x10 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0xB0 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0xC0 diff --git a/config/GMPP01_00/rels/m423Dll/splits.txt b/config/GMPP01_00/rels/m423Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m423Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m423Dll/symbols.txt b/config/GMPP01_00/rels/m423Dll/symbols.txt new file mode 100644 index 00000000..7087bc41 --- /dev/null +++ b/config/GMPP01_00/rels/m423Dll/symbols.txt @@ -0,0 +1,367 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x278 +fn_1_318 = .text:0x00000318; // type:function size:0x98 +fn_1_3B0 = .text:0x000003B0; // type:function size:0xA44 +fn_1_DF4 = .text:0x00000DF4; // type:function size:0x64 +fn_1_E58 = .text:0x00000E58; // type:function size:0xA0 +fn_1_EF8 = .text:0x00000EF8; // type:function size:0x10 +fn_1_F08 = .text:0x00000F08; // type:function size:0x50 +fn_1_F58 = .text:0x00000F58; // type:function size:0x244 +fn_1_119C = .text:0x0000119C; // type:function size:0x34 +fn_1_11D0 = .text:0x000011D0; // type:function size:0x60 +fn_1_1230 = .text:0x00001230; // type:function size:0x68 +fn_1_1298 = .text:0x00001298; // type:function size:0x100 +fn_1_1398 = .text:0x00001398; // type:function size:0xA4 +fn_1_143C = .text:0x0000143C; // type:function size:0x5C +fn_1_1498 = .text:0x00001498; // type:function size:0x45C +fn_1_18F4 = .text:0x000018F4; // type:function size:0x260 +fn_1_1B54 = .text:0x00001B54; // type:function size:0x400 +fn_1_1F54 = .text:0x00001F54; // type:function size:0x334 +fn_1_2288 = .text:0x00002288; // type:function size:0x394 +fn_1_261C = .text:0x0000261C; // type:function size:0x394 +fn_1_29B0 = .text:0x000029B0; // type:function size:0x4 +fn_1_29B4 = .text:0x000029B4; // type:function size:0x24C +fn_1_2C00 = .text:0x00002C00; // type:function size:0x8D0 +fn_1_34D0 = .text:0x000034D0; // type:function size:0x50 +fn_1_3520 = .text:0x00003520; // type:function size:0x370 +fn_1_3890 = .text:0x00003890; // type:function size:0x1C0 +fn_1_3A50 = .text:0x00003A50; // type:function size:0xC +fn_1_3A5C = .text:0x00003A5C; // type:function size:0x28 +fn_1_3A84 = .text:0x00003A84; // type:function size:0x170 +fn_1_3BF4 = .text:0x00003BF4; // type:function size:0x3E4 +fn_1_3FD8 = .text:0x00003FD8; // type:function size:0x798 +fn_1_4770 = .text:0x00004770; // type:function size:0x1628 +fn_1_5D98 = .text:0x00005D98; // type:function size:0x1B6C +fn_1_7904 = .text:0x00007904; // type:function size:0xC +fn_1_7910 = .text:0x00007910; // type:function size:0x4C +fn_1_795C = .text:0x0000795C; // type:function size:0x100 +fn_1_7A5C = .text:0x00007A5C; // type:function size:0x18C +fn_1_7BE8 = .text:0x00007BE8; // type:function size:0xA0 +fn_1_7C88 = .text:0x00007C88; // type:function size:0x780 +fn_1_8408 = .text:0x00008408; // type:function size:0x70 +fn_1_8478 = .text:0x00008478; // type:function size:0x97C +fn_1_8DF4 = .text:0x00008DF4; // type:function size:0x910 +fn_1_9704 = .text:0x00009704; // type:function size:0x50 +fn_1_9754 = .text:0x00009754; // type:function size:0x28C +fn_1_99E0 = .text:0x000099E0; // type:function size:0x1100 +fn_1_AAE0 = .text:0x0000AAE0; // type:function size:0xC +fn_1_AAEC = .text:0x0000AAEC; // type:function size:0x28 +fn_1_AB14 = .text:0x0000AB14; // type:function size:0x238 +fn_1_AD4C = .text:0x0000AD4C; // type:function size:0x74 +fn_1_ADC0 = .text:0x0000ADC0; // type:function size:0x1E4 +fn_1_AFA4 = .text:0x0000AFA4; // type:function size:0x84 +fn_1_B028 = .text:0x0000B028; // type:function size:0x254 +fn_1_B27C = .text:0x0000B27C; // type:function size:0x68 +fn_1_B2E4 = .text:0x0000B2E4; // type:function size:0x160 +fn_1_B444 = .text:0x0000B444; // type:function size:0x12C +fn_1_B570 = .text:0x0000B570; // type:function size:0x8A8 +fn_1_BE18 = .text:0x0000BE18; // type:function size:0x7C0 +fn_1_C5D8 = .text:0x0000C5D8; // type:function size:0x1498 +fn_1_DA70 = .text:0x0000DA70; // type:function size:0x108 +fn_1_DB78 = .text:0x0000DB78; // type:function size:0x190 +fn_1_DD08 = .text:0x0000DD08; // type:function size:0x5C +fn_1_DD64 = .text:0x0000DD64; // type:function size:0x14C +fn_1_DEB0 = .text:0x0000DEB0; // type:function size:0x44C +fn_1_E2FC = .text:0x0000E2FC; // type:function size:0xD4 +fn_1_E3D0 = .text:0x0000E3D0; // type:function size:0xA0 +fn_1_E470 = .text:0x0000E470; // type:function size:0x4 +fn_1_E474 = .text:0x0000E474; // type:function size:0x12C +fn_1_E5A0 = .text:0x0000E5A0; // type:function size:0x8C +fn_1_E62C = .text:0x0000E62C; // type:function size:0x120 +fn_1_E74C = .text:0x0000E74C; // type:function size:0x6C +fn_1_E7B8 = .text:0x0000E7B8; // type:function size:0x8CC +fn_1_F084 = .text:0x0000F084; // type:function size:0x630 +fn_1_F6B4 = .text:0x0000F6B4; // type:function size:0x11C +fn_1_F7D0 = .text:0x0000F7D0; // type:function size:0x50 +fn_1_F820 = .text:0x0000F820; // type:function size:0x360 +fn_1_FB80 = .text:0x0000FB80; // type:function size:0x4D0 +fn_1_10050 = .text:0x00010050; // type:function size:0x88 +fn_1_100D8 = .text:0x000100D8; // type:function size:0x90 +fn_1_10168 = .text:0x00010168; // type:function size:0xB4 +fn_1_1021C = .text:0x0001021C; // type:function size:0x3A4 +fn_1_105C0 = .text:0x000105C0; // type:function size:0xAC +fn_1_1066C = .text:0x0001066C; // type:function size:0x4 +fn_1_10670 = .text:0x00010670; // type:function size:0x10 +fn_1_10680 = .text:0x00010680; // type:function size:0x198 +fn_1_10818 = .text:0x00010818; // type:function size:0x4F0 +fn_1_10D08 = .text:0x00010D08; // type:function size:0x440 +fn_1_11148 = .text:0x00011148; // type:function size:0x10C +fn_1_11254 = .text:0x00011254; // type:function size:0x4B0 +fn_1_11704 = .text:0x00011704; // type:function size:0x33C +fn_1_11A40 = .text:0x00011A40; // type:function size:0x8DC +fn_1_1231C = .text:0x0001231C; // type:function size:0x118 +fn_1_12434 = .text:0x00012434; // type:function size:0x250 +fn_1_12684 = .text:0x00012684; // type:function size:0x3F8 +fn_1_12A7C = .text:0x00012A7C; // type:function size:0xB4 +fn_1_12B30 = .text:0x00012B30; // type:function size:0x27C +fn_1_12DAC = .text:0x00012DAC; // type:function size:0x100 +fn_1_12EAC = .text:0x00012EAC; // type:function size:0xFC +fn_1_12FA8 = .text:0x00012FA8; // type:function size:0x4E4 +fn_1_1348C = .text:0x0001348C; // type:function size:0x330 +fn_1_137BC = .text:0x000137BC; // type:function size:0x148 +fn_1_13904 = .text:0x00013904; // type:function size:0x78C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x1 data:byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float +lbl_1_data_38 = .data:0x00000038; // type:object size:0x118 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x30 data:float +lbl_1_data_180 = .data:0x00000180; // type:object size:0x30 data:float +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x24 +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0xC +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0xC +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xC +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x24 +lbl_1_data_21C = .data:0x0000021C; // type:object size:0xC +lbl_1_data_228 = .data:0x00000228; // type:object size:0xC +lbl_1_data_234 = .data:0x00000234; // type:object size:0x4 +lbl_1_data_238 = .data:0x00000238; // type:object size:0x18 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x18 +jumptable_1_data_268 = .data:0x00000268; // type:object size:0x30 scope:local +lbl_1_data_298 = .data:0x00000298; // type:object size:0x1 data:byte +lbl_1_data_29C = .data:0x0000029C; // type:object size:0x30 +lbl_1_data_2CC = .data:0x000002CC; // type:object size:0x20 +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x20 +lbl_1_data_30C = .data:0x0000030C; // type:object size:0x4 +lbl_1_data_310 = .data:0x00000310; // type:object size:0x1 data:byte +lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 data:4byte +lbl_1_data_334 = .data:0x00000334; // type:object size:0x30 +lbl_1_data_364 = .data:0x00000364; // type:object size:0x24 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x1 data:byte +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x1F data:string +lbl_1_data_3AB = .data:0x000003AB; // type:object size:0x1 data:byte +lbl_1_data_3AF = .data:0x000003AF; // type:object size:0x1 data:byte +lbl_1_data_3B3 = .data:0x000003B3; // type:object size:0x5 data:byte +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0xF0 +lbl_1_data_4A8 = .data:0x000004A8; // type:object size:0x54 +lbl_1_data_4FC = .data:0x000004FC; // type:object size:0xC +lbl_1_data_508 = .data:0x00000508; // type:object size:0x18 +lbl_1_data_520 = .data:0x00000520; // type:object size:0x6 +lbl_1_data_526 = .data:0x00000526; // type:object size:0x6 +lbl_1_data_52C = .data:0x0000052C; // type:object size:0x8 +lbl_1_data_534 = .data:0x00000534; // type:object size:0x40 +lbl_1_data_574 = .data:0x00000574; // type:object size:0xC +lbl_1_data_580 = .data:0x00000580; // type:object size:0x58 +lbl_1_data_5D8 = .data:0x000005D8; // type:object size:0x10 +lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0xC data:4byte +lbl_1_data_5F4 = .data:0x000005F4; // type:object size:0x1 data:byte +lbl_1_data_5F8 = .data:0x000005F8; // type:object size:0x1 data:byte +jumptable_1_data_5FC = .data:0x000005FC; // type:object size:0x34 scope:local +lbl_1_data_630 = .data:0x00000630; // type:object size:0x1 data:byte +jumptable_1_data_634 = .data:0x00000634; // type:object size:0x34 scope:local +lbl_1_data_668 = .data:0x00000668; // type:object size:0x10 +lbl_1_data_678 = .data:0x00000678; // type:object size:0x10 +lbl_1_data_688 = .data:0x00000688; // type:object size:0x20 +lbl_1_data_6A8 = .data:0x000006A8; // type:object size:0x20 data:4byte +lbl_1_data_6C8 = .data:0x000006C8; // type:object size:0x10 +lbl_1_data_6D8 = .data:0x000006D8; // type:object size:0x20 +lbl_1_data_6F8 = .data:0x000006F8; // type:object size:0x20 +lbl_1_data_718 = .data:0x00000718; // type:object size:0x20 +lbl_1_data_738 = .data:0x00000738; // type:object size:0x20 +lbl_1_data_758 = .data:0x00000758; // type:object size:0x1 data:byte +lbl_1_data_75C = .data:0x0000075C; // type:object size:0x48 +jumptable_1_data_7A4 = .data:0x000007A4; // type:object size:0x20 scope:local +lbl_1_data_7C4 = .data:0x000007C4; // type:object size:0x18 +jumptable_1_data_7DC = .data:0x000007DC; // type:object size:0x20 scope:local +lbl_1_data_7FC = .data:0x000007FC; // type:object size:0x20 +lbl_1_data_81C = .data:0x0000081C; // type:object size:0x20 +lbl_1_data_83C = .data:0x0000083C; // type:object size:0x8 +lbl_1_data_844 = .data:0x00000844; // type:object size:0x60 +lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x20 +lbl_1_data_8C4 = .data:0x000008C4; // type:object size:0x30 +lbl_1_data_8F4 = .data:0x000008F4; // type:object size:0x20 +lbl_1_data_914 = .data:0x00000914; // type:object size:0x6 data:byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x3C data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x3C data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0xC data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x10 +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x10 data:4byte +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x10 data:4byte +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x8 data:4byte +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:4byte +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:4byte +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x4 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m424Dll/splits.txt b/config/GMPP01_00/rels/m424Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m424Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m424Dll/symbols.txt b/config/GMPP01_00/rels/m424Dll/symbols.txt new file mode 100644 index 00000000..73453dab --- /dev/null +++ b/config/GMPP01_00/rels/m424Dll/symbols.txt @@ -0,0 +1,314 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x1C4 +fn_1_264 = .text:0x00000264; // type:function size:0x1B8 +fn_1_41C = .text:0x0000041C; // type:function size:0xAB8 +fn_1_ED4 = .text:0x00000ED4; // type:function size:0x60 +fn_1_F34 = .text:0x00000F34; // type:function size:0xA0 +fn_1_FD4 = .text:0x00000FD4; // type:function size:0x10 +fn_1_FE4 = .text:0x00000FE4; // type:function size:0x1FC +fn_1_11E0 = .text:0x000011E0; // type:function size:0x4 +fn_1_11E4 = .text:0x000011E4; // type:function size:0x4 +fn_1_11E8 = .text:0x000011E8; // type:function size:0x10 +fn_1_11F8 = .text:0x000011F8; // type:function size:0x154 +fn_1_134C = .text:0x0000134C; // type:function size:0x118 +fn_1_1464 = .text:0x00001464; // type:function size:0x250 +fn_1_16B4 = .text:0x000016B4; // type:function size:0x3F8 +fn_1_1AAC = .text:0x00001AAC; // type:function size:0xD4 +fn_1_1B80 = .text:0x00001B80; // type:function size:0x2C +fn_1_1BAC = .text:0x00001BAC; // type:function size:0x264 +fn_1_1E10 = .text:0x00001E10; // type:function size:0x314 +fn_1_2124 = .text:0x00002124; // type:function size:0xC +fn_1_2130 = .text:0x00002130; // type:function size:0x74 +fn_1_21A4 = .text:0x000021A4; // type:function size:0x70 +fn_1_2214 = .text:0x00002214; // type:function size:0x218 +fn_1_242C = .text:0x0000242C; // type:function size:0xF4 +fn_1_2520 = .text:0x00002520; // type:function size:0x94 +fn_1_25B4 = .text:0x000025B4; // type:function size:0xB0 +fn_1_2664 = .text:0x00002664; // type:function size:0xB0 +fn_1_2714 = .text:0x00002714; // type:function size:0x160 +fn_1_2874 = .text:0x00002874; // type:function size:0x20 +fn_1_2894 = .text:0x00002894; // type:function size:0x598 +fn_1_2E2C = .text:0x00002E2C; // type:function size:0x4 +fn_1_2E30 = .text:0x00002E30; // type:function size:0x384 +fn_1_31B4 = .text:0x000031B4; // type:function size:0x63C +fn_1_37F0 = .text:0x000037F0; // type:function size:0xA24 +fn_1_4214 = .text:0x00004214; // type:function size:0x478 +fn_1_468C = .text:0x0000468C; // type:function size:0x4 +fn_1_4690 = .text:0x00004690; // type:function size:0x234 +fn_1_48C4 = .text:0x000048C4; // type:function size:0x1C0 +fn_1_4A84 = .text:0x00004A84; // type:function size:0x588 +fn_1_500C = .text:0x0000500C; // type:function size:0x1020 +fn_1_602C = .text:0x0000602C; // type:function size:0x40 +fn_1_606C = .text:0x0000606C; // type:function size:0xA0 +fn_1_610C = .text:0x0000610C; // type:function size:0x94 +fn_1_61A0 = .text:0x000061A0; // type:function size:0x84 +fn_1_6224 = .text:0x00006224; // type:function size:0x4C +fn_1_6270 = .text:0x00006270; // type:function size:0x54 +fn_1_62C4 = .text:0x000062C4; // type:function size:0x13C +fn_1_6400 = .text:0x00006400; // type:function size:0x168 +fn_1_6568 = .text:0x00006568; // type:function size:0x120 +fn_1_6688 = .text:0x00006688; // type:function size:0x39C +fn_1_6A24 = .text:0x00006A24; // type:function size:0x2E0 +fn_1_6D04 = .text:0x00006D04; // type:function size:0x38C +fn_1_7090 = .text:0x00007090; // type:function size:0x384 +fn_1_7414 = .text:0x00007414; // type:function size:0x3A4 +fn_1_77B8 = .text:0x000077B8; // type:function size:0x238 +fn_1_79F0 = .text:0x000079F0; // type:function size:0x2A4 +fn_1_7C94 = .text:0x00007C94; // type:function size:0x130 +fn_1_7DC4 = .text:0x00007DC4; // type:function size:0x198 +fn_1_7F5C = .text:0x00007F5C; // type:function size:0xD8 +fn_1_8034 = .text:0x00008034; // type:function size:0xBC +fn_1_80F0 = .text:0x000080F0; // type:function size:0x33C +fn_1_842C = .text:0x0000842C; // type:function size:0x4B0 +fn_1_88DC = .text:0x000088DC; // type:function size:0x3C +fn_1_8918 = .text:0x00008918; // type:function size:0x2C +fn_1_8944 = .text:0x00008944; // type:function size:0x2C +fn_1_8970 = .text:0x00008970; // type:function size:0x2C +fn_1_899C = .text:0x0000899C; // type:function size:0x2C +fn_1_89C8 = .text:0x000089C8; // type:function size:0x2C +fn_1_89F4 = .text:0x000089F4; // type:function size:0x2C +fn_1_8A20 = .text:0x00008A20; // type:function size:0x7C +fn_1_8A9C = .text:0x00008A9C; // type:function size:0x1D0 +fn_1_8C6C = .text:0x00008C6C; // type:function size:0x404 +fn_1_9070 = .text:0x00009070; // type:function size:0x374 +fn_1_93E4 = .text:0x000093E4; // type:function size:0xB4 +fn_1_9498 = .text:0x00009498; // type:function size:0x2C +fn_1_94C4 = .text:0x000094C4; // type:function size:0x594 +fn_1_9A58 = .text:0x00009A58; // type:function size:0x13F4 +fn_1_AE4C = .text:0x0000AE4C; // type:function size:0xC +fn_1_AE58 = .text:0x0000AE58; // type:function size:0x938 +fn_1_B790 = .text:0x0000B790; // type:function size:0x68 +fn_1_B7F8 = .text:0x0000B7F8; // type:function size:0x84 +fn_1_B87C = .text:0x0000B87C; // type:function size:0x24 +fn_1_B8A0 = .text:0x0000B8A0; // type:function size:0x78 +fn_1_B918 = .text:0x0000B918; // type:function size:0x78 +fn_1_B990 = .text:0x0000B990; // type:function size:0x44 +fn_1_B9D4 = .text:0x0000B9D4; // type:function size:0x830 +fn_1_C204 = .text:0x0000C204; // type:function size:0xD0 +fn_1_C2D4 = .text:0x0000C2D4; // type:function size:0x324 +fn_1_C5F8 = .text:0x0000C5F8; // type:function size:0x250 +fn_1_C848 = .text:0x0000C848; // type:function size:0x24 +fn_1_C86C = .text:0x0000C86C; // type:function size:0x124 +fn_1_C990 = .text:0x0000C990; // type:function size:0x4D8 +fn_1_CE68 = .text:0x0000CE68; // type:function size:0x8C +fn_1_CEF4 = .text:0x0000CEF4; // type:function size:0x80 +fn_1_CF74 = .text:0x0000CF74; // type:function size:0x90 +fn_1_D004 = .text:0x0000D004; // type:function size:0x64 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0xC data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC +lbl_1_data_78 = .data:0x00000078; // type:object size:0x24 +lbl_1_data_9C = .data:0x0000009C; // type:object size:0xC +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xC +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4 +jumptable_1_data_B8 = .data:0x000000B8; // type:object size:0x28 scope:local +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0xC +lbl_1_data_EC = .data:0x000000EC; // type:object size:0xC +lbl_1_data_F8 = .data:0x000000F8; // type:object size:0xC +lbl_1_data_104 = .data:0x00000104; // type:object size:0x4C +lbl_1_data_150 = .data:0x00000150; // type:object size:0x5C +jumptable_1_data_1AC = .data:0x000001AC; // type:object size:0x2C scope:local +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x8 data:4byte +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x30 data:float +lbl_1_data_210 = .data:0x00000210; // type:object size:0xC data:float +lbl_1_data_21C = .data:0x0000021C; // type:object size:0xC0 +lbl_1_data_2DC = .data:0x000002DC; // type:object size:0xC +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x24 +lbl_1_data_30C = .data:0x0000030C; // type:object size:0xC data:4byte +lbl_1_data_318 = .data:0x00000318; // type:object size:0x6 data:string +lbl_1_data_31E = .data:0x0000031E; // type:object size:0x6 data:string +lbl_1_data_324 = .data:0x00000324; // type:object size:0x8 +jumptable_1_data_32C = .data:0x0000032C; // type:object size:0x40 scope:local +lbl_1_data_36C = .data:0x0000036C; // type:object size:0x20 +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x20 +lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x19 data:string +lbl_1_data_3C5 = .data:0x000003C5; // type:object size:0x5 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x8 data:2byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x534 data:4byte +lbl_1_bss_594 = .bss:0x00000594; // type:object size:0x18 +lbl_1_bss_5AC = .bss:0x000005AC; // type:object size:0x10 data:4byte +lbl_1_bss_5BC = .bss:0x000005BC; // type:object size:0x84 +lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x80 data:4byte +lbl_1_bss_6C0 = .bss:0x000006C0; // type:object size:0x4 data:4byte +lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x4 data:4byte +lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x4 data:4byte +lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0xC data:4byte +lbl_1_bss_6D8 = .bss:0x000006D8; // type:object size:0x4 data:4byte +lbl_1_bss_6DC = .bss:0x000006DC; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m425Dll/splits.txt b/config/GMPP01_00/rels/m425Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m425Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m425Dll/symbols.txt b/config/GMPP01_00/rels/m425Dll/symbols.txt new file mode 100644 index 00000000..4e26a147 --- /dev/null +++ b/config/GMPP01_00/rels/m425Dll/symbols.txt @@ -0,0 +1,300 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x3C0 +fn_1_460 = .text:0x00000460; // type:function size:0x20 +fn_1_480 = .text:0x00000480; // type:function size:0x464 +fn_1_8E4 = .text:0x000008E4; // type:function size:0x65C +fn_1_F40 = .text:0x00000F40; // type:function size:0x60 +fn_1_FA0 = .text:0x00000FA0; // type:function size:0x524 +fn_1_14C4 = .text:0x000014C4; // type:function size:0x120 +fn_1_15E4 = .text:0x000015E4; // type:function size:0xC4 +fn_1_16A8 = .text:0x000016A8; // type:function size:0x490 +fn_1_1B38 = .text:0x00001B38; // type:function size:0xC44 +fn_1_277C = .text:0x0000277C; // type:function size:0xEC +fn_1_2868 = .text:0x00002868; // type:function size:0x224 +fn_1_2A8C = .text:0x00002A8C; // type:function size:0x98 +fn_1_2B24 = .text:0x00002B24; // type:function size:0x34C +fn_1_2E70 = .text:0x00002E70; // type:function size:0x568 +fn_1_33D8 = .text:0x000033D8; // type:function size:0x384 +fn_1_375C = .text:0x0000375C; // type:function size:0x76C +fn_1_3EC8 = .text:0x00003EC8; // type:function size:0xB0 +fn_1_3F78 = .text:0x00003F78; // type:function size:0xB08 +fn_1_4A80 = .text:0x00004A80; // type:function size:0x5BC +fn_1_503C = .text:0x0000503C; // type:function size:0x524 +fn_1_5560 = .text:0x00005560; // type:function size:0xA0 +fn_1_5600 = .text:0x00005600; // type:function size:0xA8 +fn_1_56A8 = .text:0x000056A8; // type:function size:0x8C +fn_1_5734 = .text:0x00005734; // type:function size:0x98 +fn_1_57CC = .text:0x000057CC; // type:function size:0x44C +fn_1_5C18 = .text:0x00005C18; // type:function size:0x8B4 +fn_1_64CC = .text:0x000064CC; // type:function size:0x54 +fn_1_6520 = .text:0x00006520; // type:function size:0x78 +fn_1_6598 = .text:0x00006598; // type:function size:0x11C +fn_1_66B4 = .text:0x000066B4; // type:function size:0x78 +fn_1_672C = .text:0x0000672C; // type:function size:0x2D8 +fn_1_6A04 = .text:0x00006A04; // type:function size:0x1CC +fn_1_6BD0 = .text:0x00006BD0; // type:function size:0x30 +fn_1_6C00 = .text:0x00006C00; // type:function size:0xC8 +fn_1_6CC8 = .text:0x00006CC8; // type:function size:0x12C +fn_1_6DF4 = .text:0x00006DF4; // type:function size:0xC8 +fn_1_6EBC = .text:0x00006EBC; // type:function size:0x69D8 +fn_1_D894 = .text:0x0000D894; // type:function size:0x10 +fn_1_D8A4 = .text:0x0000D8A4; // type:function size:0x10 +fn_1_D8B4 = .text:0x0000D8B4; // type:function size:0x10 +fn_1_D8C4 = .text:0x0000D8C4; // type:function size:0x10 +fn_1_D8D4 = .text:0x0000D8D4; // type:function size:0xCC +fn_1_D9A0 = .text:0x0000D9A0; // type:function size:0x19C +fn_1_DB3C = .text:0x0000DB3C; // type:function size:0x2F8 +fn_1_DE34 = .text:0x0000DE34; // type:function size:0x3D4 +fn_1_E208 = .text:0x0000E208; // type:function size:0x704 +fn_1_E90C = .text:0x0000E90C; // type:function size:0x18B0 +fn_1_101BC = .text:0x000101BC; // type:function size:0x828 +fn_1_109E4 = .text:0x000109E4; // type:function size:0x318 +fn_1_10CFC = .text:0x00010CFC; // type:function size:0x60 +fn_1_10D5C = .text:0x00010D5C; // type:function size:0x60 +fn_1_10DBC = .text:0x00010DBC; // type:function size:0x88 +fn_1_10E44 = .text:0x00010E44; // type:function size:0xBC +fn_1_10F00 = .text:0x00010F00; // type:function size:0x38C +fn_1_1128C = .text:0x0001128C; // type:function size:0x78 +fn_1_11304 = .text:0x00011304; // type:function size:0x11C +fn_1_11420 = .text:0x00011420; // type:function size:0x3C +fn_1_1145C = .text:0x0001145C; // type:function size:0x180 +fn_1_115DC = .text:0x000115DC; // type:function size:0x110 +fn_1_116EC = .text:0x000116EC; // type:function size:0x390 +fn_1_11A7C = .text:0x00011A7C; // type:function size:0x46C +fn_1_11EE8 = .text:0x00011EE8; // type:function size:0x7B4 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x10 data:4byte +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC0 +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x10 data:4byte +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x10 data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x20 data:4byte +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:double +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0xC +lbl_1_data_10 = .data:0x00000010; // type:object size:0x30 +lbl_1_data_40 = .data:0x00000040; // type:object size:0x4 +lbl_1_data_44 = .data:0x00000044; // type:object size:0x24 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x4 data:4byte +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x28 +lbl_1_data_94 = .data:0x00000094; // type:object size:0x30 +jumptable_1_data_C4 = .data:0x000000C4; // type:object size:0x28 scope:local +jumptable_1_data_EC = .data:0x000000EC; // type:object size:0x28 scope:local +lbl_1_data_114 = .data:0x00000114; // type:object size:0x4 data:4byte +lbl_1_data_118 = .data:0x00000118; // type:object size:0x18 +lbl_1_data_130 = .data:0x00000130; // type:object size:0x20 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x18 +lbl_1_data_168 = .data:0x00000168; // type:object size:0x1 data:byte +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x30 +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x30 +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x20 +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x630 +lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x2 data:2byte +lbl_1_bss_642 = .bss:0x00000642; // type:object size:0x2 data:2byte +lbl_1_bss_644 = .bss:0x00000644; // type:object size:0x2 data:2byte +lbl_1_bss_646 = .bss:0x00000646; // type:object size:0x2 data:2byte +lbl_1_bss_648 = .bss:0x00000648; // type:object size:0x2 data:2byte +lbl_1_bss_64C = .bss:0x0000064C; // type:object size:0x10 +lbl_1_bss_65C = .bss:0x0000065C; // type:object size:0x4 data:4byte +lbl_1_bss_660 = .bss:0x00000660; // type:object size:0x4 data:4byte +lbl_1_bss_664 = .bss:0x00000664; // type:object size:0x4 data:4byte +lbl_1_bss_668 = .bss:0x00000668; // type:object size:0x8 data:4byte +lbl_1_bss_670 = .bss:0x00000670; // type:object size:0xC data:float +lbl_1_bss_67C = .bss:0x0000067C; // type:object size:0xC data:float +lbl_1_bss_688 = .bss:0x00000688; // type:object size:0x40 +lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x1 data:byte +lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0x4 data:4byte +lbl_1_bss_6D0 = .bss:0x000006D0; // type:object size:0x1 data:byte +lbl_1_bss_6D4 = .bss:0x000006D4; // type:object size:0x4 data:4byte +lbl_1_bss_6D8 = .bss:0x000006D8; // type:object size:0x4 data:4byte +lbl_1_bss_6DC = .bss:0x000006DC; // type:object size:0x4 data:4byte +lbl_1_bss_6E0 = .bss:0x000006E0; // type:object size:0x4 data:4byte +lbl_1_bss_6E4 = .bss:0x000006E4; // type:object size:0x4 data:4byte +lbl_1_bss_6E8 = .bss:0x000006E8; // type:object size:0x4 data:4byte +lbl_1_bss_6EC = .bss:0x000006EC; // type:object size:0x4 data:4byte +lbl_1_bss_6F0 = .bss:0x000006F0; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m426Dll/splits.txt b/config/GMPP01_00/rels/m426Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m426Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m426Dll/symbols.txt b/config/GMPP01_00/rels/m426Dll/symbols.txt new file mode 100644 index 00000000..fa92aeb2 --- /dev/null +++ b/config/GMPP01_00/rels/m426Dll/symbols.txt @@ -0,0 +1,225 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x16C +fn_1_20C = .text:0x0000020C; // type:function size:0x124 +fn_1_330 = .text:0x00000330; // type:function size:0xA80 +fn_1_DB0 = .text:0x00000DB0; // type:function size:0x60 +fn_1_E10 = .text:0x00000E10; // type:function size:0xA0 +fn_1_EB0 = .text:0x00000EB0; // type:function size:0x14C +fn_1_FFC = .text:0x00000FFC; // type:function size:0x178 +fn_1_1174 = .text:0x00001174; // type:function size:0x70 +fn_1_11E4 = .text:0x000011E4; // type:function size:0x70 +fn_1_1254 = .text:0x00001254; // type:function size:0x49C +fn_1_16F0 = .text:0x000016F0; // type:function size:0x13F4 +fn_1_2AE4 = .text:0x00002AE4; // type:function size:0x14 +fn_1_2AF8 = .text:0x00002AF8; // type:function size:0x98 +fn_1_2B90 = .text:0x00002B90; // type:function size:0x368 +fn_1_2EF8 = .text:0x00002EF8; // type:function size:0x80 +fn_1_2F78 = .text:0x00002F78; // type:function size:0x6F8 +fn_1_3670 = .text:0x00003670; // type:function size:0x70 +fn_1_36E0 = .text:0x000036E0; // type:function size:0x50 +fn_1_3730 = .text:0x00003730; // type:function size:0x7E8 +fn_1_3F18 = .text:0x00003F18; // type:function size:0x700 +fn_1_4618 = .text:0x00004618; // type:function size:0x48 +fn_1_4660 = .text:0x00004660; // type:function size:0x60 +fn_1_46C0 = .text:0x000046C0; // type:function size:0x94 +fn_1_4754 = .text:0x00004754; // type:function size:0x15C +fn_1_48B0 = .text:0x000048B0; // type:function size:0x5C +fn_1_490C = .text:0x0000490C; // type:function size:0x178 +fn_1_4A84 = .text:0x00004A84; // type:function size:0x8C +fn_1_4B10 = .text:0x00004B10; // type:function size:0x3D0 +fn_1_4EE0 = .text:0x00004EE0; // type:function size:0x50 +fn_1_4F30 = .text:0x00004F30; // type:function size:0x220 +fn_1_5150 = .text:0x00005150; // type:function size:0xA20 +fn_1_5B70 = .text:0x00005B70; // type:function size:0x14 +fn_1_5B84 = .text:0x00005B84; // type:function size:0x40 +fn_1_5BC4 = .text:0x00005BC4; // type:function size:0xE4 +fn_1_5CA8 = .text:0x00005CA8; // type:function size:0xD0 +fn_1_5D78 = .text:0x00005D78; // type:function size:0x130 +fn_1_5EA8 = .text:0x00005EA8; // type:function size:0x50 +fn_1_5EF8 = .text:0x00005EF8; // type:function size:0x14C +fn_1_6044 = .text:0x00006044; // type:function size:0x178 +fn_1_61BC = .text:0x000061BC; // type:function size:0x60 +fn_1_621C = .text:0x0000621C; // type:function size:0x68 +fn_1_6284 = .text:0x00006284; // type:function size:0xC8 +fn_1_634C = .text:0x0000634C; // type:function size:0xA8 +fn_1_63F4 = .text:0x000063F4; // type:function size:0x1DC +fn_1_65D0 = .text:0x000065D0; // type:function size:0x50 +fn_1_6620 = .text:0x00006620; // type:function size:0x120 +fn_1_6740 = .text:0x00006740; // type:function size:0x118 +fn_1_6858 = .text:0x00006858; // type:function size:0x28 +fn_1_6880 = .text:0x00006880; // type:function size:0x44 +fn_1_68C4 = .text:0x000068C4; // type:function size:0x15C +fn_1_6A20 = .text:0x00006A20; // type:function size:0x50 +fn_1_6A70 = .text:0x00006A70; // type:function size:0x38C +fn_1_6DFC = .text:0x00006DFC; // type:function size:0x410 +fn_1_720C = .text:0x0000720C; // type:function size:0xA8 +fn_1_72B4 = .text:0x000072B4; // type:function size:0xB0 +fn_1_7364 = .text:0x00007364; // type:function size:0xB4 +fn_1_7418 = .text:0x00007418; // type:function size:0x1B0 +fn_1_75C8 = .text:0x000075C8; // type:function size:0x20 +fn_1_75E8 = .text:0x000075E8; // type:function size:0x4 +fn_1_75EC = .text:0x000075EC; // type:function size:0xC +fn_1_75F8 = .text:0x000075F8; // type:function size:0x38 +fn_1_7630 = .text:0x00007630; // type:function size:0x118 +fn_1_7748 = .text:0x00007748; // type:function size:0x250 +fn_1_7998 = .text:0x00007998; // type:function size:0x46C +fn_1_7E04 = .text:0x00007E04; // type:function size:0x314 +fn_1_8118 = .text:0x00008118; // type:function size:0x7D8 +fn_1_88F0 = .text:0x000088F0; // type:function size:0x55C +fn_1_8E4C = .text:0x00008E4C; // type:function size:0x38 +fn_1_8E84 = .text:0x00008E84; // type:function size:0x2E8 +fn_1_916C = .text:0x0000916C; // type:function size:0x100 +fn_1_926C = .text:0x0000926C; // type:function size:0x314 +fn_1_9580 = .text:0x00009580; // type:function size:0x1D8 +fn_1_9758 = .text:0x00009758; // type:function size:0x7C +fn_1_97D4 = .text:0x000097D4; // type:function size:0x54 +fn_1_9828 = .text:0x00009828; // type:function size:0x7C +fn_1_98A4 = .text:0x000098A4; // type:function size:0x7C +fn_1_9920 = .text:0x00009920; // type:function size:0x78 +fn_1_9998 = .text:0x00009998; // type:function size:0x12C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:4byte +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x1 data:byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x30 +lbl_1_data_30 = .data:0x00000030; // type:object size:0xC +lbl_1_data_3C = .data:0x0000003C; // type:object size:0xC +lbl_1_data_48 = .data:0x00000048; // type:object size:0x1 data:byte +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x54 data:float +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC +lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0xC +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x24 +jumptable_1_data_E8 = .data:0x000000E8; // type:object size:0x24 scope:local +lbl_1_data_10C = .data:0x0000010C; // type:object size:0x4 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x60 data:4byte +lbl_1_data_170 = .data:0x00000170; // type:object size:0x60 +lbl_1_data_1D0 = .data:0x000001D0; // type:object size:0x8 +jumptable_1_data_1D8 = .data:0x000001D8; // type:object size:0x28 scope:local +lbl_1_data_200 = .data:0x00000200; // type:object size:0x18 +lbl_1_data_218 = .data:0x00000218; // type:object size:0x8 +lbl_1_data_220 = .data:0x00000220; // type:object size:0xC +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x30 +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x20 +lbl_1_data_27C = .data:0x0000027C; // type:object size:0x30 +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x10 +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x20 +jumptable_1_data_2DC = .data:0x000002DC; // type:object size:0x1C scope:local +jumptable_1_data_2F8 = .data:0x000002F8; // type:object size:0x1C scope:local +jumptable_1_data_314 = .data:0x00000314; // type:object size:0x1C scope:local +jumptable_1_data_330 = .data:0x00000330; // type:object size:0x1C scope:local +jumptable_1_data_34C = .data:0x0000034C; // type:object size:0x1C scope:local +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x1 data:byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x10 +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x8 +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m427Dll/splits.txt b/config/GMPP01_00/rels/m427Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m427Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m427Dll/symbols.txt b/config/GMPP01_00/rels/m427Dll/symbols.txt new file mode 100644 index 00000000..2f1c580a --- /dev/null +++ b/config/GMPP01_00/rels/m427Dll/symbols.txt @@ -0,0 +1,439 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x1FC +fn_1_29C = .text:0x0000029C; // type:function size:0x64 +fn_1_300 = .text:0x00000300; // type:function size:0x1360 +fn_1_1660 = .text:0x00001660; // type:function size:0x60 +fn_1_16C0 = .text:0x000016C0; // type:function size:0xC4 +fn_1_1784 = .text:0x00001784; // type:function size:0x10 +fn_1_1794 = .text:0x00001794; // type:function size:0xCC +fn_1_1860 = .text:0x00001860; // type:function size:0x20 +fn_1_1880 = .text:0x00001880; // type:function size:0xD0 +fn_1_1950 = .text:0x00001950; // type:function size:0x5E0 +fn_1_1F30 = .text:0x00001F30; // type:function size:0x254 +fn_1_2184 = .text:0x00002184; // type:function size:0x60 +fn_1_21E4 = .text:0x000021E4; // type:function size:0x144 +fn_1_2328 = .text:0x00002328; // type:function size:0x1E4 +fn_1_250C = .text:0x0000250C; // type:function size:0x1E4 +fn_1_26F0 = .text:0x000026F0; // type:function size:0x28 +fn_1_2718 = .text:0x00002718; // type:function size:0x64 +fn_1_277C = .text:0x0000277C; // type:function size:0x390 +fn_1_2B0C = .text:0x00002B0C; // type:function size:0x4 +fn_1_2B10 = .text:0x00002B10; // type:function size:0x4 +fn_1_2B14 = .text:0x00002B14; // type:function size:0x1C0 +fn_1_2CD4 = .text:0x00002CD4; // type:function size:0x1F8 +fn_1_2ECC = .text:0x00002ECC; // type:function size:0x8C +fn_1_2F58 = .text:0x00002F58; // type:function size:0x1F8 +fn_1_3150 = .text:0x00003150; // type:function size:0x188 +fn_1_32D8 = .text:0x000032D8; // type:function size:0x8 +fn_1_32E0 = .text:0x000032E0; // type:function size:0x438 +fn_1_3718 = .text:0x00003718; // type:function size:0x35C +fn_1_3A74 = .text:0x00003A74; // type:function size:0x98 +fn_1_3B0C = .text:0x00003B0C; // type:function size:0x29C +fn_1_3DA8 = .text:0x00003DA8; // type:function size:0x9C +fn_1_3E44 = .text:0x00003E44; // type:function size:0x3C0 +fn_1_4204 = .text:0x00004204; // type:function size:0x2DC +fn_1_44E0 = .text:0x000044E0; // type:function size:0x7C +fn_1_455C = .text:0x0000455C; // type:function size:0x37C +fn_1_48D8 = .text:0x000048D8; // type:function size:0x490 +fn_1_4D68 = .text:0x00004D68; // type:function size:0x324 +fn_1_508C = .text:0x0000508C; // type:function size:0x6C +fn_1_50F8 = .text:0x000050F8; // type:function size:0x480 +fn_1_5578 = .text:0x00005578; // type:function size:0xC00 +fn_1_6178 = .text:0x00006178; // type:function size:0x5D4 +fn_1_674C = .text:0x0000674C; // type:function size:0xB84 +fn_1_72D0 = .text:0x000072D0; // type:function size:0xD8 +fn_1_73A8 = .text:0x000073A8; // type:function size:0x590 +fn_1_7938 = .text:0x00007938; // type:function size:0x2E8 +fn_1_7C20 = .text:0x00007C20; // type:function size:0x22C +fn_1_7E4C = .text:0x00007E4C; // type:function size:0xD8 +fn_1_7F24 = .text:0x00007F24; // type:function size:0x69C +fn_1_85C0 = .text:0x000085C0; // type:function size:0x194 +fn_1_8754 = .text:0x00008754; // type:function size:0x6B4 +fn_1_8E08 = .text:0x00008E08; // type:function size:0x174 +fn_1_8F7C = .text:0x00008F7C; // type:function size:0x250 +fn_1_91CC = .text:0x000091CC; // type:function size:0x60 +fn_1_922C = .text:0x0000922C; // type:function size:0xD8 +fn_1_9304 = .text:0x00009304; // type:function size:0xD4 +fn_1_93D8 = .text:0x000093D8; // type:function size:0xD0 +fn_1_94A8 = .text:0x000094A8; // type:function size:0x12C +fn_1_95D4 = .text:0x000095D4; // type:function size:0x370 +fn_1_9944 = .text:0x00009944; // type:function size:0x44 +fn_1_9988 = .text:0x00009988; // type:function size:0x48 +fn_1_99D0 = .text:0x000099D0; // type:function size:0x48 +fn_1_9A18 = .text:0x00009A18; // type:function size:0x74 +fn_1_9A8C = .text:0x00009A8C; // type:function size:0x74 +fn_1_9B00 = .text:0x00009B00; // type:function size:0x74 +fn_1_9B74 = .text:0x00009B74; // type:function size:0x5C0 +fn_1_A134 = .text:0x0000A134; // type:function size:0xAC +fn_1_A1E0 = .text:0x0000A1E0; // type:function size:0x604 +fn_1_A7E4 = .text:0x0000A7E4; // type:function size:0x680 +fn_1_AE64 = .text:0x0000AE64; // type:function size:0x31C +fn_1_B180 = .text:0x0000B180; // type:function size:0x238 +fn_1_B3B8 = .text:0x0000B3B8; // type:function size:0x960 +fn_1_BD18 = .text:0x0000BD18; // type:function size:0x428 +fn_1_C140 = .text:0x0000C140; // type:function size:0xAC +fn_1_C1EC = .text:0x0000C1EC; // type:function size:0xAC +fn_1_C298 = .text:0x0000C298; // type:function size:0x10 +fn_1_C2A8 = .text:0x0000C2A8; // type:function size:0xC +fn_1_C2B4 = .text:0x0000C2B4; // type:function size:0xD8 +fn_1_C38C = .text:0x0000C38C; // type:function size:0x7C +fn_1_C408 = .text:0x0000C408; // type:function size:0x10C +fn_1_C514 = .text:0x0000C514; // type:function size:0x164 +fn_1_C678 = .text:0x0000C678; // type:function size:0xE0 +fn_1_C758 = .text:0x0000C758; // type:function size:0xAC0 +fn_1_D218 = .text:0x0000D218; // type:function size:0x204 +fn_1_D41C = .text:0x0000D41C; // type:function size:0xCC +fn_1_D4E8 = .text:0x0000D4E8; // type:function size:0x140 +fn_1_D628 = .text:0x0000D628; // type:function size:0x544 +fn_1_DB6C = .text:0x0000DB6C; // type:function size:0x60 +fn_1_DBCC = .text:0x0000DBCC; // type:function size:0x2C +fn_1_DBF8 = .text:0x0000DBF8; // type:function size:0x58 +fn_1_DC50 = .text:0x0000DC50; // type:function size:0x38 +fn_1_DC88 = .text:0x0000DC88; // type:function size:0x38 +fn_1_DCC0 = .text:0x0000DCC0; // type:function size:0x5DC +fn_1_E29C = .text:0x0000E29C; // type:function size:0xCC +fn_1_E368 = .text:0x0000E368; // type:function size:0xA4 +fn_1_E40C = .text:0x0000E40C; // type:function size:0x68 +fn_1_E474 = .text:0x0000E474; // type:function size:0x504 +fn_1_E978 = .text:0x0000E978; // type:function size:0x2C8 +fn_1_EC40 = .text:0x0000EC40; // type:function size:0x20 +fn_1_EC60 = .text:0x0000EC60; // type:function size:0x20 +fn_1_EC80 = .text:0x0000EC80; // type:function size:0x44C +fn_1_F0CC = .text:0x0000F0CC; // type:function size:0x1750 +fn_1_1081C = .text:0x0001081C; // type:function size:0x75C +fn_1_10F78 = .text:0x00010F78; // type:function size:0x5C +fn_1_10FD4 = .text:0x00010FD4; // type:function size:0x100 +fn_1_110D4 = .text:0x000110D4; // type:function size:0xD8 +fn_1_111AC = .text:0x000111AC; // type:function size:0xD8 +fn_1_11284 = .text:0x00011284; // type:function size:0x158 +fn_1_113DC = .text:0x000113DC; // type:function size:0x4C +fn_1_11428 = .text:0x00011428; // type:function size:0x178 +fn_1_115A0 = .text:0x000115A0; // type:function size:0x40C +fn_1_119AC = .text:0x000119AC; // type:function size:0xB4 +fn_1_11A60 = .text:0x00011A60; // type:function size:0x464 +fn_1_11EC4 = .text:0x00011EC4; // type:function size:0x63C +fn_1_12500 = .text:0x00012500; // type:function size:0x4 +fn_1_12504 = .text:0x00012504; // type:function size:0x68 +fn_1_1256C = .text:0x0001256C; // type:function size:0x588 +fn_1_12AF4 = .text:0x00012AF4; // type:function size:0x141C +fn_1_13F10 = .text:0x00013F10; // type:function size:0x94 +fn_1_13FA4 = .text:0x00013FA4; // type:function size:0x4 +fn_1_13FA8 = .text:0x00013FA8; // type:function size:0x14FC +fn_1_154A4 = .text:0x000154A4; // type:function size:0x4 +fn_1_154A8 = .text:0x000154A8; // type:function size:0x124 +fn_1_155CC = .text:0x000155CC; // type:function size:0x134 +fn_1_15700 = .text:0x00015700; // type:function size:0x1C4 +fn_1_158C4 = .text:0x000158C4; // type:function size:0x218 +fn_1_15ADC = .text:0x00015ADC; // type:function size:0x420 +fn_1_15EFC = .text:0x00015EFC; // type:function size:0xC0 +fn_1_15FBC = .text:0x00015FBC; // type:function size:0xAC +fn_1_16068 = .text:0x00016068; // type:function size:0x58 +fn_1_160C0 = .text:0x000160C0; // type:function size:0x18C +fn_1_1624C = .text:0x0001624C; // type:function size:0x334 +fn_1_16580 = .text:0x00016580; // type:function size:0x118 +fn_1_16698 = .text:0x00016698; // type:function size:0x250 +fn_1_168E8 = .text:0x000168E8; // type:function size:0x3F8 +fn_1_16CE0 = .text:0x00016CE0; // type:function size:0x148 +fn_1_16E28 = .text:0x00016E28; // type:function size:0xBC +fn_1_16EE4 = .text:0x00016EE4; // type:function size:0x150 +fn_1_17034 = .text:0x00017034; // type:function size:0x1F0 +fn_1_17224 = .text:0x00017224; // type:function size:0x4 +fn_1_17228 = .text:0x00017228; // type:function size:0xB4 +fn_1_172DC = .text:0x000172DC; // type:function size:0x140 +fn_1_1741C = .text:0x0001741C; // type:function size:0xA4 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC data:2byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x3C data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x6 data:2byte +lbl_1_rodata_136 = .rodata:0x00000136; // type:object size:0xC data:2byte +lbl_1_rodata_142 = .rodata:0x00000142; // type:object size:0x1A data:2byte +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x24 data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x30 data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x10 data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0xC data:4byte +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0xC data:4byte +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x1 data:byte +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x1 data:byte +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x1 data:byte +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x1 data:byte +lbl_1_rodata_38A = .rodata:0x0000038A; // type:object size:0x1 data:byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 data:double +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:float +lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 +jumptable_1_data_94 = .data:0x00000094; // type:object size:0x3C scope:local +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x8 +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x4 +lbl_1_data_DC = .data:0x000000DC; // type:object size:0x4 +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0xC data:2byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x8 +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x4 data:float +lbl_1_data_F8 = .data:0x000000F8; // type:object size:0x4 data:float +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x30 +lbl_1_data_12C = .data:0x0000012C; // type:object size:0x8 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x10 +lbl_1_data_144 = .data:0x00000144; // type:object size:0x90 data:float +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x8 +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x8 +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x8 +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x4 +lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x13 data:string +lbl_1_data_203 = .data:0x00000203; // type:object size:0x10 data:string +lbl_1_data_213 = .data:0x00000213; // type:object size:0x26 data:string +lbl_1_data_239 = .data:0x00000239; // type:object size:0x27 +lbl_1_data_260 = .data:0x00000260; // type:object size:0x15C +lbl_1_data_3BC = .data:0x000003BC; // type:object size:0x178 +lbl_1_data_534 = .data:0x00000534; // type:object size:0x18 +lbl_1_data_54C = .data:0x0000054C; // type:object size:0x18 data:float +lbl_1_data_564 = .data:0x00000564; // type:object size:0xC data:float +lbl_1_data_570 = .data:0x00000570; // type:object size:0xC data:float +lbl_1_data_57C = .data:0x0000057C; // type:object size:0x4 +lbl_1_data_580 = .data:0x00000580; // type:object size:0x10 +lbl_1_data_590 = .data:0x00000590; // type:object size:0x1C +lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x1C +lbl_1_data_5C8 = .data:0x000005C8; // type:object size:0x8 +lbl_1_data_5D0 = .data:0x000005D0; // type:object size:0x8 +jumptable_1_data_5D8 = .data:0x000005D8; // type:object size:0x20 scope:local +lbl_1_data_5F8 = .data:0x000005F8; // type:object size:0x8 +lbl_1_data_600 = .data:0x00000600; // type:object size:0x8 +lbl_1_data_608 = .data:0x00000608; // type:object size:0x10 +lbl_1_data_618 = .data:0x00000618; // type:object size:0x10 +jumptable_1_data_628 = .data:0x00000628; // type:object size:0x20 scope:local +lbl_1_data_648 = .data:0x00000648; // type:object size:0x4 +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1 data:byte +lbl_1_data_650 = .data:0x00000650; // type:object size:0x4 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x40 +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x8 +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x1 data:byte +lbl_1_bss_91 = .bss:0x00000091; // type:object size:0x1 data:byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:float +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4C data:4byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x4 data:4byte +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x4 +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x4 +lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x4 data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x4 data:4byte +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x60 data:2byte +lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x3F0 data:byte +lbl_1_bss_548 = .bss:0x00000548; // type:object size:0x8 data:4byte +lbl_1_bss_550 = .bss:0x00000550; // type:object size:0x4 data:4byte +lbl_1_bss_554 = .bss:0x00000554; // type:object size:0x4 data:4byte +lbl_1_bss_558 = .bss:0x00000558; // type:object size:0x4 data:4byte +lbl_1_bss_55C = .bss:0x0000055C; // type:object size:0x10 +lbl_1_bss_56C = .bss:0x0000056C; // type:object size:0x8 +lbl_1_bss_574 = .bss:0x00000574; // type:object size:0x4 data:4byte +lbl_1_bss_578 = .bss:0x00000578; // type:object size:0x4 data:4byte +lbl_1_bss_57C = .bss:0x0000057C; // type:object size:0x4 data:4byte +lbl_1_bss_580 = .bss:0x00000580; // type:object size:0x4 data:4byte +lbl_1_bss_584 = .bss:0x00000584; // type:object size:0x4 data:4byte +lbl_1_bss_588 = .bss:0x00000588; // type:object size:0x4 data:4byte +lbl_1_bss_58C = .bss:0x0000058C; // type:object size:0x4 data:4byte +lbl_1_bss_590 = .bss:0x00000590; // type:object size:0x4 data:4byte +lbl_1_bss_594 = .bss:0x00000594; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m428Dll/splits.txt b/config/GMPP01_00/rels/m428Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m428Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m428Dll/symbols.txt b/config/GMPP01_00/rels/m428Dll/symbols.txt new file mode 100644 index 00000000..8abe3e61 --- /dev/null +++ b/config/GMPP01_00/rels/m428Dll/symbols.txt @@ -0,0 +1,410 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x218 +fn_1_2B8 = .text:0x000002B8; // type:function size:0x1C0 +fn_1_478 = .text:0x00000478; // type:function size:0x21A0 +fn_1_2618 = .text:0x00002618; // type:function size:0x50 +fn_1_2668 = .text:0x00002668; // type:function size:0xC4 +fn_1_272C = .text:0x0000272C; // type:function size:0x10 +fn_1_273C = .text:0x0000273C; // type:function size:0x2F8 +fn_1_2A34 = .text:0x00002A34; // type:function size:0x4 +fn_1_2A38 = .text:0x00002A38; // type:function size:0x4 +fn_1_2A3C = .text:0x00002A3C; // type:function size:0x10 +fn_1_2A4C = .text:0x00002A4C; // type:function size:0xCC +fn_1_2B18 = .text:0x00002B18; // type:function size:0x1C4 +fn_1_2CDC = .text:0x00002CDC; // type:function size:0x19C +fn_1_2E78 = .text:0x00002E78; // type:function size:0xD38 +fn_1_3BB0 = .text:0x00003BB0; // type:function size:0x540 +fn_1_40F0 = .text:0x000040F0; // type:function size:0xCC +fn_1_41BC = .text:0x000041BC; // type:function size:0xF4 +fn_1_42B0 = .text:0x000042B0; // type:function size:0xC0 +fn_1_4370 = .text:0x00004370; // type:function size:0xA4 +fn_1_4414 = .text:0x00004414; // type:function size:0x268 +fn_1_467C = .text:0x0000467C; // type:function size:0x20 +fn_1_469C = .text:0x0000469C; // type:function size:0x10C +fn_1_47A8 = .text:0x000047A8; // type:function size:0x420 +fn_1_4BC8 = .text:0x00004BC8; // type:function size:0x2C8 +fn_1_4E90 = .text:0x00004E90; // type:function size:0x34 +fn_1_4EC4 = .text:0x00004EC4; // type:function size:0x8C +fn_1_4F50 = .text:0x00004F50; // type:function size:0x2DC +fn_1_522C = .text:0x0000522C; // type:function size:0xF8 +fn_1_5324 = .text:0x00005324; // type:function size:0x4 +fn_1_5328 = .text:0x00005328; // type:function size:0x94 +fn_1_53BC = .text:0x000053BC; // type:function size:0x1E8 +fn_1_55A4 = .text:0x000055A4; // type:function size:0x12C +fn_1_56D0 = .text:0x000056D0; // type:function size:0x648 +fn_1_5D18 = .text:0x00005D18; // type:function size:0x5B4 +fn_1_62CC = .text:0x000062CC; // type:function size:0xF2C +fn_1_71F8 = .text:0x000071F8; // type:function size:0xE8 +fn_1_72E0 = .text:0x000072E0; // type:function size:0x40 +fn_1_7320 = .text:0x00007320; // type:function size:0xC8 +fn_1_73E8 = .text:0x000073E8; // type:function size:0x94 +fn_1_747C = .text:0x0000747C; // type:function size:0x84 +fn_1_7500 = .text:0x00007500; // type:function size:0x4C +fn_1_754C = .text:0x0000754C; // type:function size:0x54 +fn_1_75A0 = .text:0x000075A0; // type:function size:0x13C +fn_1_76DC = .text:0x000076DC; // type:function size:0x168 +fn_1_7844 = .text:0x00007844; // type:function size:0x120 +fn_1_7964 = .text:0x00007964; // type:function size:0x39C +fn_1_7D00 = .text:0x00007D00; // type:function size:0x2E0 +fn_1_7FE0 = .text:0x00007FE0; // type:function size:0x198 +fn_1_8178 = .text:0x00008178; // type:function size:0xD8 +fn_1_8250 = .text:0x00008250; // type:function size:0xBC +fn_1_830C = .text:0x0000830C; // type:function size:0x33C +fn_1_8648 = .text:0x00008648; // type:function size:0x4B0 +fn_1_8AF8 = .text:0x00008AF8; // type:function size:0x78 +fn_1_8B70 = .text:0x00008B70; // type:function size:0x11C +fn_1_8C8C = .text:0x00008C8C; // type:function size:0x78 +fn_1_8D04 = .text:0x00008D04; // type:function size:0x2D8 +fn_1_8FDC = .text:0x00008FDC; // type:function size:0x2B8 +fn_1_9294 = .text:0x00009294; // type:function size:0x154 +fn_1_93E8 = .text:0x000093E8; // type:function size:0x3E0 +fn_1_97C8 = .text:0x000097C8; // type:function size:0x214 +fn_1_99DC = .text:0x000099DC; // type:function size:0xA0 +fn_1_9A7C = .text:0x00009A7C; // type:function size:0xAC +fn_1_9B28 = .text:0x00009B28; // type:function size:0x30C +fn_1_9E34 = .text:0x00009E34; // type:function size:0xC0 +fn_1_9EF4 = .text:0x00009EF4; // type:function size:0x60 +fn_1_9F54 = .text:0x00009F54; // type:function size:0x54 +fn_1_9FA8 = .text:0x00009FA8; // type:function size:0x154 +fn_1_A0FC = .text:0x0000A0FC; // type:function size:0x58 +fn_1_A154 = .text:0x0000A154; // type:function size:0x3C0 +fn_1_A514 = .text:0x0000A514; // type:function size:0xF0C +fn_1_B420 = .text:0x0000B420; // type:function size:0x68 +fn_1_B488 = .text:0x0000B488; // type:function size:0x794 +fn_1_BC1C = .text:0x0000BC1C; // type:function size:0x2A40 +fn_1_E65C = .text:0x0000E65C; // type:function size:0xC +fn_1_E668 = .text:0x0000E668; // type:function size:0xA78 +fn_1_F0E0 = .text:0x0000F0E0; // type:function size:0x208 +fn_1_F2E8 = .text:0x0000F2E8; // type:function size:0xCC +fn_1_F3B4 = .text:0x0000F3B4; // type:function size:0x68 +fn_1_F41C = .text:0x0000F41C; // type:function size:0x58 +fn_1_F474 = .text:0x0000F474; // type:function size:0x40 +fn_1_F4B4 = .text:0x0000F4B4; // type:function size:0x18 +fn_1_F4CC = .text:0x0000F4CC; // type:function size:0x48 +fn_1_F514 = .text:0x0000F514; // type:function size:0x34 +fn_1_F548 = .text:0x0000F548; // type:function size:0x50 +fn_1_F598 = .text:0x0000F598; // type:function size:0x354 +fn_1_F8EC = .text:0x0000F8EC; // type:function size:0x300 +fn_1_FBEC = .text:0x0000FBEC; // type:function size:0x30C +fn_1_FEF8 = .text:0x0000FEF8; // type:function size:0x410 +fn_1_10308 = .text:0x00010308; // type:function size:0x288 +fn_1_10590 = .text:0x00010590; // type:function size:0x60 +fn_1_105F0 = .text:0x000105F0; // type:function size:0x58 +fn_1_10648 = .text:0x00010648; // type:function size:0xC0 +fn_1_10708 = .text:0x00010708; // type:function size:0xE0 +fn_1_107E8 = .text:0x000107E8; // type:function size:0x300 +fn_1_10AE8 = .text:0x00010AE8; // type:function size:0x58C +fn_1_11074 = .text:0x00011074; // type:function size:0x5E4 +fn_1_11658 = .text:0x00011658; // type:function size:0xCC +fn_1_11724 = .text:0x00011724; // type:function size:0x90 +fn_1_117B4 = .text:0x000117B4; // type:function size:0x44 +fn_1_117F8 = .text:0x000117F8; // type:function size:0x110 +fn_1_11908 = .text:0x00011908; // type:function size:0x88 +fn_1_11990 = .text:0x00011990; // type:function size:0x130 +fn_1_11AC0 = .text:0x00011AC0; // type:function size:0x1C0 +fn_1_11C80 = .text:0x00011C80; // type:function size:0x6C +fn_1_11CEC = .text:0x00011CEC; // type:function size:0x158 +fn_1_11E44 = .text:0x00011E44; // type:function size:0x470 +fn_1_122B4 = .text:0x000122B4; // type:function size:0x118 +fn_1_123CC = .text:0x000123CC; // type:function size:0x250 +fn_1_1261C = .text:0x0001261C; // type:function size:0x3F8 +fn_1_12A14 = .text:0x00012A14; // type:function size:0x78 +fn_1_12A8C = .text:0x00012A8C; // type:function size:0x78 +fn_1_12B04 = .text:0x00012B04; // type:function size:0x230 +fn_1_12D34 = .text:0x00012D34; // type:function size:0x4B0 +fn_1_131E4 = .text:0x000131E4; // type:function size:0x33C +fn_1_13520 = .text:0x00013520; // type:function size:0x8DC +fn_1_13DFC = .text:0x00013DFC; // type:function size:0x78 +fn_1_13E74 = .text:0x00013E74; // type:function size:0xB4 +fn_1_13F28 = .text:0x00013F28; // type:function size:0x8C +fn_1_13FB4 = .text:0x00013FB4; // type:function size:0x134 +fn_1_140E8 = .text:0x000140E8; // type:function size:0x4D8 +fn_1_145C0 = .text:0x000145C0; // type:function size:0x98 +fn_1_14658 = .text:0x00014658; // type:function size:0x98 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 data:double +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC +lbl_1_data_78 = .data:0x00000078; // type:object size:0x24 +lbl_1_data_9C = .data:0x0000009C; // type:object size:0xC +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xC +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4 +jumptable_1_data_B8 = .data:0x000000B8; // type:object size:0x30 scope:local +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x48 data:byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 +lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 +lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4 data:4byte +lbl_1_data_150 = .data:0x00000150; // type:object size:0x30 data:float +lbl_1_data_180 = .data:0x00000180; // type:object size:0x30 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2A0 +lbl_1_data_450 = .data:0x00000450; // type:object size:0x30 +lbl_1_data_480 = .data:0x00000480; // type:object size:0x30 +lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0x50 data:float +lbl_1_data_500 = .data:0x00000500; // type:object size:0x60 +lbl_1_data_560 = .data:0x00000560; // type:object size:0x80 +lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0x60 +lbl_1_data_640 = .data:0x00000640; // type:object size:0x10 +lbl_1_data_650 = .data:0x00000650; // type:object size:0x1 data:byte +lbl_1_data_654 = .data:0x00000654; // type:object size:0x1 data:byte +lbl_1_data_658 = .data:0x00000658; // type:object size:0x14 +jumptable_1_data_66C = .data:0x0000066C; // type:object size:0x28 scope:local +lbl_1_data_694 = .data:0x00000694; // type:object size:0x8 +lbl_1_data_69C = .data:0x0000069C; // type:object size:0x4 +lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x2 data:2byte +lbl_1_data_6A4 = .data:0x000006A4; // type:object size:0x30 +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x20 +lbl_1_data_6F4 = .data:0x000006F4; // type:object size:0x19 data:string +lbl_1_data_70D = .data:0x0000070D; // type:object size:0x5 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x10 data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x10 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x8 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x8 data:2byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:2byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x8 data:float +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x8 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x8 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x8 +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x80 +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x4 data:4byte +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte +lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x4 data:4byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x4 data:4byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x80 +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0x80 +lbl_1_bss_244 = .bss:0x00000244; // type:object size:0x60 +lbl_1_bss_2A4 = .bss:0x000002A4; // type:object size:0x8 data:4byte +lbl_1_bss_2AC = .bss:0x000002AC; // type:object size:0x4 data:4byte +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 data:4byte +lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0x4 data:4byte +lbl_1_bss_2B8 = .bss:0x000002B8; // type:object size:0x4 data:4byte +lbl_1_bss_2BC = .bss:0x000002BC; // type:object size:0x4 data:4byte +lbl_1_bss_2C0 = .bss:0x000002C0; // type:object size:0x10 +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x8 +lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m429Dll/splits.txt b/config/GMPP01_00/rels/m429Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m429Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m429Dll/symbols.txt b/config/GMPP01_00/rels/m429Dll/symbols.txt new file mode 100644 index 00000000..3bd2a26f --- /dev/null +++ b/config/GMPP01_00/rels/m429Dll/symbols.txt @@ -0,0 +1,316 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x204 +fn_1_784 = .text:0x00000784; // type:function size:0x240 +fn_1_9C4 = .text:0x000009C4; // type:function size:0x54 +fn_1_A18 = .text:0x00000A18; // type:function size:0x10C +fn_1_B24 = .text:0x00000B24; // type:function size:0x680 +fn_1_11A4 = .text:0x000011A4; // type:function size:0x15C +fn_1_1300 = .text:0x00001300; // type:function size:0x8C +fn_1_138C = .text:0x0000138C; // type:function size:0x334 +fn_1_16C0 = .text:0x000016C0; // type:function size:0x350 +fn_1_1A10 = .text:0x00001A10; // type:function size:0x2B8 +fn_1_1CC8 = .text:0x00001CC8; // type:function size:0x58 +fn_1_1D20 = .text:0x00001D20; // type:function size:0xB0 +fn_1_1DD0 = .text:0x00001DD0; // type:function size:0x104 +fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x34 +fn_1_1F08 = .text:0x00001F08; // type:function size:0x6C +fn_1_1F74 = .text:0x00001F74; // type:function size:0x3F0 +fn_1_2364 = .text:0x00002364; // type:function size:0x260 +fn_1_25C4 = .text:0x000025C4; // type:function size:0x70 +fn_1_2634 = .text:0x00002634; // type:function size:0x2CC +fn_1_2900 = .text:0x00002900; // type:function size:0x290 +fn_1_2B90 = .text:0x00002B90; // type:function size:0x234 +fn_1_2DC4 = .text:0x00002DC4; // type:function size:0xD8 +fn_1_2E9C = .text:0x00002E9C; // type:function size:0x2BC +fn_1_3158 = .text:0x00003158; // type:function size:0x4 +fn_1_315C = .text:0x0000315C; // type:function size:0xD8 +fn_1_3234 = .text:0x00003234; // type:function size:0x174 +fn_1_33A8 = .text:0x000033A8; // type:function size:0x304 +fn_1_36AC = .text:0x000036AC; // type:function size:0x170 +fn_1_381C = .text:0x0000381C; // type:function size:0x560 +fn_1_3D7C = .text:0x00003D7C; // type:function size:0x254 +_prolog = .text:0x00003FD0; // type:function size:0x54 scope:global +_epilog = .text:0x00004024; // type:function size:0x4C scope:global +fn_1_4070 = .text:0x00004070; // type:function size:0x164 +fn_1_41D4 = .text:0x000041D4; // type:function size:0xBCC +fn_1_4DA0 = .text:0x00004DA0; // type:function size:0x60 +fn_1_4E00 = .text:0x00004E00; // type:function size:0x25C +fn_1_505C = .text:0x0000505C; // type:function size:0x410 +fn_1_546C = .text:0x0000546C; // type:function size:0x380 +fn_1_57EC = .text:0x000057EC; // type:function size:0x120 +fn_1_590C = .text:0x0000590C; // type:function size:0x380 +fn_1_5C8C = .text:0x00005C8C; // type:function size:0x268 +fn_1_5EF4 = .text:0x00005EF4; // type:function size:0x1154 +fn_1_7048 = .text:0x00007048; // type:function size:0x158 +fn_1_71A0 = .text:0x000071A0; // type:function size:0xB48 +fn_1_7CE8 = .text:0x00007CE8; // type:function size:0x1230 +fn_1_8F18 = .text:0x00008F18; // type:function size:0xA84 +fn_1_999C = .text:0x0000999C; // type:function size:0x4 +fn_1_99A0 = .text:0x000099A0; // type:function size:0x1BC +fn_1_9B5C = .text:0x00009B5C; // type:function size:0x340 +fn_1_9E9C = .text:0x00009E9C; // type:function size:0x1BC +fn_1_A058 = .text:0x0000A058; // type:function size:0x70 +fn_1_A0C8 = .text:0x0000A0C8; // type:function size:0x470 +fn_1_A538 = .text:0x0000A538; // type:function size:0x22C +fn_1_A764 = .text:0x0000A764; // type:function size:0x5C0 +fn_1_AD24 = .text:0x0000AD24; // type:function size:0x2A8 +fn_1_AFCC = .text:0x0000AFCC; // type:function size:0x738 +fn_1_B704 = .text:0x0000B704; // type:function size:0x18C +fn_1_B890 = .text:0x0000B890; // type:function size:0x1D00 +fn_1_D590 = .text:0x0000D590; // type:function size:0x6B4 +fn_1_DC44 = .text:0x0000DC44; // type:function size:0xCD0 +fn_1_E914 = .text:0x0000E914; // type:function size:0x104 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0xD data:string +lbl_1_data_1D = .data:0x0000001D; // type:object size:0xE data:string +lbl_1_data_2B = .data:0x0000002B; // type:object size:0xE data:string +lbl_1_data_39 = .data:0x00000039; // type:object size:0xE data:string +lbl_1_data_47 = .data:0x00000047; // type:object size:0xD data:string +lbl_1_data_54 = .data:0x00000054; // type:object size:0xD data:string +lbl_1_data_61 = .data:0x00000061; // type:object size:0xE data:string +lbl_1_data_6F = .data:0x0000006F; // type:object size:0xE data:string +lbl_1_data_7D = .data:0x0000007D; // type:object size:0xE data:string +lbl_1_data_8B = .data:0x0000008B; // type:object size:0xD data:string +lbl_1_data_98 = .data:0x00000098; // type:object size:0xE data:string +lbl_1_data_A6 = .data:0x000000A6; // type:object size:0xE data:string +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0xE data:string +lbl_1_data_C2 = .data:0x000000C2; // type:object size:0xD data:string +lbl_1_data_CF = .data:0x000000CF; // type:object size:0xD data:string +lbl_1_data_DC = .data:0x000000DC; // type:object size:0xD data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0xD data:string +lbl_1_data_F6 = .data:0x000000F6; // type:object size:0xE data:string +lbl_1_data_104 = .data:0x00000104; // type:object size:0xE data:string +lbl_1_data_112 = .data:0x00000112; // type:object size:0xE data:string +lbl_1_data_120 = .data:0x00000120; // type:object size:0xE data:string +lbl_1_data_12E = .data:0x0000012E; // type:object size:0xE data:string +lbl_1_data_13C = .data:0x0000013C; // type:object size:0xE data:string +lbl_1_data_14A = .data:0x0000014A; // type:object size:0xE data:string +lbl_1_data_158 = .data:0x00000158; // type:object size:0xE data:string +lbl_1_data_166 = .data:0x00000166; // type:object size:0xE data:string +lbl_1_data_174 = .data:0x00000174; // type:object size:0xE data:string +lbl_1_data_182 = .data:0x00000182; // type:object size:0xE data:string +lbl_1_data_190 = .data:0x00000190; // type:object size:0xE data:string +lbl_1_data_19E = .data:0x0000019E; // type:object size:0xE data:string +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0xE data:string +lbl_1_data_1BA = .data:0x000001BA; // type:object size:0xE data:string +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0xE data:string +lbl_1_data_1D6 = .data:0x000001D6; // type:object size:0xE data:string +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0xE data:string +lbl_1_data_1F2 = .data:0x000001F2; // type:object size:0xE data:string +lbl_1_data_200 = .data:0x00000200; // type:object size:0xE data:string +lbl_1_data_20E = .data:0x0000020E; // type:object size:0xE data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x10 +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x57C +lbl_1_data_7A8 = .data:0x000007A8; // type:object size:0xD data:string +lbl_1_data_7B5 = .data:0x000007B5; // type:object size:0xD data:string +lbl_1_data_7C2 = .data:0x000007C2; // type:object size:0xD data:string +lbl_1_data_7CF = .data:0x000007CF; // type:object size:0xE data:string +lbl_1_data_7DD = .data:0x000007DD; // type:object size:0xE data:string +lbl_1_data_7EB = .data:0x000007EB; // type:object size:0xE data:string +lbl_1_data_7F9 = .data:0x000007F9; // type:object size:0xE data:string +lbl_1_data_807 = .data:0x00000807; // type:object size:0xD data:string +lbl_1_data_814 = .data:0x00000814; // type:object size:0xD data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0xD data:string +lbl_1_data_82E = .data:0x0000082E; // type:object size:0xE data:string +lbl_1_data_83C = .data:0x0000083C; // type:object size:0xE data:string +lbl_1_data_84A = .data:0x0000084A; // type:object size:0xD data:string +lbl_1_data_857 = .data:0x00000857; // type:object size:0xD data:string +lbl_1_data_864 = .data:0x00000864; // type:object size:0xD data:string +lbl_1_data_871 = .data:0x00000871; // type:object size:0xE data:string +lbl_1_data_87F = .data:0x0000087F; // type:object size:0xE data:string +lbl_1_data_88D = .data:0x0000088D; // type:object size:0xE data:string +lbl_1_data_89B = .data:0x0000089B; // type:object size:0xE data:string +lbl_1_data_8A9 = .data:0x000008A9; // type:object size:0xE data:string +lbl_1_data_8B7 = .data:0x000008B7; // type:object size:0xE data:string +lbl_1_data_8C5 = .data:0x000008C5; // type:object size:0xE data:string +lbl_1_data_8D3 = .data:0x000008D3; // type:object size:0xE data:string +lbl_1_data_8E1 = .data:0x000008E1; // type:object size:0xE data:string +lbl_1_data_8EF = .data:0x000008EF; // type:object size:0xE data:string +lbl_1_data_8FD = .data:0x000008FD; // type:object size:0xE data:string +lbl_1_data_90B = .data:0x0000090B; // type:object size:0xE data:string +lbl_1_data_919 = .data:0x00000919; // type:object size:0xE data:string +lbl_1_data_927 = .data:0x00000927; // type:object size:0xE data:string +lbl_1_data_935 = .data:0x00000935; // type:object size:0xE data:string +lbl_1_data_943 = .data:0x00000943; // type:object size:0xE data:string +lbl_1_data_951 = .data:0x00000951; // type:object size:0xE data:string +lbl_1_data_95F = .data:0x0000095F; // type:object size:0xE data:string +lbl_1_data_96D = .data:0x0000096D; // type:object size:0xE data:string +lbl_1_data_97B = .data:0x0000097B; // type:object size:0xE data:string +lbl_1_data_989 = .data:0x00000989; // type:object size:0xE data:string +lbl_1_data_997 = .data:0x00000997; // type:object size:0xE data:string +lbl_1_data_9A5 = .data:0x000009A5; // type:object size:0xE data:string +lbl_1_data_9B3 = .data:0x000009B3; // type:object size:0xE data:string +lbl_1_data_9C1 = .data:0x000009C1; // type:object size:0xE data:string +lbl_1_data_9CF = .data:0x000009CF; // type:object size:0xE data:string +lbl_1_data_9DD = .data:0x000009DD; // type:object size:0xF +lbl_1_data_9EC = .data:0x000009EC; // type:object size:0x5E8 +lbl_1_data_FD4 = .data:0x00000FD4; // type:object size:0xC +lbl_1_data_FE0 = .data:0x00000FE0; // type:object size:0xC +lbl_1_data_FEC = .data:0x00000FEC; // type:object size:0x10 +lbl_1_data_FFC = .data:0x00000FFC; // type:object size:0x40 +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x40 data:float +lbl_1_data_107C = .data:0x0000107C; // type:object size:0x40 +lbl_1_data_10BC = .data:0x000010BC; // type:object size:0x40 +lbl_1_data_10FC = .data:0x000010FC; // type:object size:0x20 +lbl_1_data_111C = .data:0x0000111C; // type:object size:0xC +lbl_1_data_1128 = .data:0x00001128; // type:object size:0xC +lbl_1_data_1134 = .data:0x00001134; // type:object size:0x4 +lbl_1_data_1138 = .data:0x00001138; // type:object size:0xC +lbl_1_data_1144 = .data:0x00001144; // type:object size:0xC +lbl_1_data_1150 = .data:0x00001150; // type:object size:0x140 +lbl_1_data_1290 = .data:0x00001290; // type:object size:0x20 +lbl_1_data_12B0 = .data:0x000012B0; // type:object size:0x20 +lbl_1_data_12D0 = .data:0x000012D0; // type:object size:0x10 +lbl_1_data_12E0 = .data:0x000012E0; // type:object size:0x30 +lbl_1_data_1310 = .data:0x00001310; // type:object size:0x10 +lbl_1_data_1320 = .data:0x00001320; // type:object size:0x10 +lbl_1_data_1330 = .data:0x00001330; // type:object size:0x10 +lbl_1_data_1340 = .data:0x00001340; // type:object size:0x48 +lbl_1_data_1388 = .data:0x00001388; // type:object size:0x20 +lbl_1_data_13A8 = .data:0x000013A8; // type:object size:0x10 +lbl_1_data_13B8 = .data:0x000013B8; // type:object size:0x10 +lbl_1_data_13C8 = .data:0x000013C8; // type:object size:0x10 +lbl_1_data_13D8 = .data:0x000013D8; // type:object size:0x10 +lbl_1_data_13E8 = .data:0x000013E8; // type:object size:0x50 +lbl_1_data_1438 = .data:0x00001438; // type:object size:0x21 data:string +lbl_1_data_1459 = .data:0x00001459; // type:object size:0x1F +jumptable_1_data_1478 = .data:0x00001478; // type:object size:0x24 scope:local +lbl_1_data_149C = .data:0x0000149C; // type:object size:0x1C +jumptable_1_data_14B8 = .data:0x000014B8; // type:object size:0x34 scope:local +lbl_1_data_14EC = .data:0x000014EC; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0xA data:2byte +lbl_1_bss_1A = .bss:0x0000001A; // type:object size:0x2 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x30 +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x30 +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x30 +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x30 +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x18 data:float +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:float +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:float +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x4 data:float +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:float +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:float +lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x4 data:float +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x4 data:float +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4 data:float +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x60 +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x8 data:4byte +lbl_1_bss_198 = .bss:0x00000198; // type:object size:0x4 data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x4 data:4byte +lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 data:4byte +lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x4 data:4byte +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 data:4byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x100 +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x40 data:4byte +lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0x4 data:float +lbl_1_bss_2F4 = .bss:0x000002F4; // type:object size:0x4 data:4byte +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x4 data:4byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0x2 data:2byte +lbl_1_bss_2FE = .bss:0x000002FE; // type:object size:0x2 data:2byte +lbl_1_bss_300 = .bss:0x00000300; // type:object size:0x4 data:4byte +lbl_1_bss_304 = .bss:0x00000304; // type:object size:0x4 data:4byte +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0x4 data:4byte +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0xC data:float +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0xC data:4byte +lbl_1_bss_324 = .bss:0x00000324; // type:object size:0xC data:float +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0xC data:4byte +lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x4 data:4byte +lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x18 data:4byte +lbl_1_bss_358 = .bss:0x00000358; // type:object size:0xC data:4byte diff --git a/config/GMPP01_00/rels/m430Dll/splits.txt b/config/GMPP01_00/rels/m430Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m430Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m430Dll/symbols.txt b/config/GMPP01_00/rels/m430Dll/symbols.txt new file mode 100644 index 00000000..e3b8f841 --- /dev/null +++ b/config/GMPP01_00/rels/m430Dll/symbols.txt @@ -0,0 +1,490 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x630 +fn_1_6D0 = .text:0x000006D0; // type:function size:0xC4 +fn_1_794 = .text:0x00000794; // type:function size:0x334 +fn_1_AC8 = .text:0x00000AC8; // type:function size:0x144 +fn_1_C0C = .text:0x00000C0C; // type:function size:0x564 +fn_1_1170 = .text:0x00001170; // type:function size:0x590 +fn_1_1700 = .text:0x00001700; // type:function size:0x478 +fn_1_1B78 = .text:0x00001B78; // type:function size:0x6E0 +fn_1_2258 = .text:0x00002258; // type:function size:0x52C +fn_1_2784 = .text:0x00002784; // type:function size:0x638 +fn_1_2DBC = .text:0x00002DBC; // type:function size:0x138 +fn_1_2EF4 = .text:0x00002EF4; // type:function size:0x81C +fn_1_3710 = .text:0x00003710; // type:function size:0xCC +fn_1_37DC = .text:0x000037DC; // type:function size:0x8C8 +fn_1_40A4 = .text:0x000040A4; // type:function size:0x10 +fn_1_40B4 = .text:0x000040B4; // type:function size:0x18 +fn_1_40CC = .text:0x000040CC; // type:function size:0x18 +fn_1_40E4 = .text:0x000040E4; // type:function size:0x18 +fn_1_40FC = .text:0x000040FC; // type:function size:0x18 +fn_1_4114 = .text:0x00004114; // type:function size:0x18 +fn_1_412C = .text:0x0000412C; // type:function size:0x18 +fn_1_4144 = .text:0x00004144; // type:function size:0x30 +fn_1_4174 = .text:0x00004174; // type:function size:0x30 +fn_1_41A4 = .text:0x000041A4; // type:function size:0xC0 +fn_1_4264 = .text:0x00004264; // type:function size:0x348 +fn_1_45AC = .text:0x000045AC; // type:function size:0x378 +fn_1_4924 = .text:0x00004924; // type:function size:0x11C +fn_1_4A40 = .text:0x00004A40; // type:function size:0xB4 +fn_1_4AF4 = .text:0x00004AF4; // type:function size:0x1C8 +fn_1_4CBC = .text:0x00004CBC; // type:function size:0x6C +fn_1_4D28 = .text:0x00004D28; // type:function size:0x1144 +fn_1_5E6C = .text:0x00005E6C; // type:function size:0x388 +fn_1_61F4 = .text:0x000061F4; // type:function size:0x3C0 +fn_1_65B4 = .text:0x000065B4; // type:function size:0x214 +fn_1_67C8 = .text:0x000067C8; // type:function size:0x674 +fn_1_6E3C = .text:0x00006E3C; // type:function size:0x2E4 +fn_1_7120 = .text:0x00007120; // type:function size:0x280 +fn_1_73A0 = .text:0x000073A0; // type:function size:0x3AC +fn_1_774C = .text:0x0000774C; // type:function size:0x170 +fn_1_78BC = .text:0x000078BC; // type:function size:0x464 +fn_1_7D20 = .text:0x00007D20; // type:function size:0x200 +fn_1_7F20 = .text:0x00007F20; // type:function size:0x110 +fn_1_8030 = .text:0x00008030; // type:function size:0x40 +fn_1_8070 = .text:0x00008070; // type:function size:0x40 +fn_1_80B0 = .text:0x000080B0; // type:function size:0x228 +fn_1_82D8 = .text:0x000082D8; // type:function size:0x90 +fn_1_8368 = .text:0x00008368; // type:function size:0x3C0 +fn_1_8728 = .text:0x00008728; // type:function size:0x4A8 +fn_1_8BD0 = .text:0x00008BD0; // type:function size:0x184 +fn_1_8D54 = .text:0x00008D54; // type:function size:0x95C +fn_1_96B0 = .text:0x000096B0; // type:function size:0x654 +fn_1_9D04 = .text:0x00009D04; // type:function size:0x718 +fn_1_A41C = .text:0x0000A41C; // type:function size:0x7F0 +fn_1_AC0C = .text:0x0000AC0C; // type:function size:0xEC +fn_1_ACF8 = .text:0x0000ACF8; // type:function size:0x80 +fn_1_AD78 = .text:0x0000AD78; // type:function size:0x1DC +fn_1_AF54 = .text:0x0000AF54; // type:function size:0x4B4 +fn_1_B408 = .text:0x0000B408; // type:function size:0x1DC +fn_1_B5E4 = .text:0x0000B5E4; // type:function size:0x5E4 +fn_1_BBC8 = .text:0x0000BBC8; // type:function size:0x34 +fn_1_BBFC = .text:0x0000BBFC; // type:function size:0x10 +fn_1_BC0C = .text:0x0000BC0C; // type:function size:0x2C +fn_1_BC38 = .text:0x0000BC38; // type:function size:0x260 +fn_1_BE98 = .text:0x0000BE98; // type:function size:0x1E8 +fn_1_C080 = .text:0x0000C080; // type:function size:0x34 +fn_1_C0B4 = .text:0x0000C0B4; // type:function size:0x1A4 +fn_1_C258 = .text:0x0000C258; // type:function size:0x858 +fn_1_CAB0 = .text:0x0000CAB0; // type:function size:0x894 +fn_1_D344 = .text:0x0000D344; // type:function size:0x558 +fn_1_D89C = .text:0x0000D89C; // type:function size:0x10D4 +fn_1_E970 = .text:0x0000E970; // type:function size:0x7DC +fn_1_F14C = .text:0x0000F14C; // type:function size:0x554 +fn_1_F6A0 = .text:0x0000F6A0; // type:function size:0x74 +fn_1_F714 = .text:0x0000F714; // type:function size:0x5FC +fn_1_FD10 = .text:0x0000FD10; // type:function size:0x404 +fn_1_10114 = .text:0x00010114; // type:function size:0x29C +fn_1_103B0 = .text:0x000103B0; // type:function size:0x200 +fn_1_105B0 = .text:0x000105B0; // type:function size:0x4 +fn_1_105B4 = .text:0x000105B4; // type:function size:0x4C +fn_1_10600 = .text:0x00010600; // type:function size:0x2C +fn_1_1062C = .text:0x0001062C; // type:function size:0x64 +fn_1_10690 = .text:0x00010690; // type:function size:0x32C +fn_1_109BC = .text:0x000109BC; // type:function size:0x240 +fn_1_10BFC = .text:0x00010BFC; // type:function size:0x194 +fn_1_10D90 = .text:0x00010D90; // type:function size:0x204 +fn_1_10F94 = .text:0x00010F94; // type:function size:0x4 +fn_1_10F98 = .text:0x00010F98; // type:function size:0x184 +fn_1_1111C = .text:0x0001111C; // type:function size:0x114 +fn_1_11230 = .text:0x00011230; // type:function size:0x158 +fn_1_11388 = .text:0x00011388; // type:function size:0x98 +fn_1_11420 = .text:0x00011420; // type:function size:0x144 +fn_1_11564 = .text:0x00011564; // type:function size:0x154 +fn_1_116B8 = .text:0x000116B8; // type:function size:0x4 +fn_1_116BC = .text:0x000116BC; // type:function size:0x15C +fn_1_11818 = .text:0x00011818; // type:function size:0x278 +fn_1_11A90 = .text:0x00011A90; // type:function size:0x148 +fn_1_11BD8 = .text:0x00011BD8; // type:function size:0x30 +fn_1_11C08 = .text:0x00011C08; // type:function size:0x88 +fn_1_11C90 = .text:0x00011C90; // type:function size:0x154 +fn_1_11DE4 = .text:0x00011DE4; // type:function size:0x1F0 +fn_1_11FD4 = .text:0x00011FD4; // type:function size:0x30 +fn_1_12004 = .text:0x00012004; // type:function size:0x5C0 +fn_1_125C4 = .text:0x000125C4; // type:function size:0x74 +fn_1_12638 = .text:0x00012638; // type:function size:0x408 +fn_1_12A40 = .text:0x00012A40; // type:function size:0x3A8 +fn_1_12DE8 = .text:0x00012DE8; // type:function size:0x7C +fn_1_12E64 = .text:0x00012E64; // type:function size:0xB8 +fn_1_12F1C = .text:0x00012F1C; // type:function size:0x78 +fn_1_12F94 = .text:0x00012F94; // type:function size:0x11C +fn_1_130B0 = .text:0x000130B0; // type:function size:0x118 +fn_1_131C8 = .text:0x000131C8; // type:function size:0x250 +fn_1_13418 = .text:0x00013418; // type:function size:0x38 +fn_1_13450 = .text:0x00013450; // type:function size:0xB4 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x10 data:4byte +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x10 data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x10 data:4byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x10 data:4byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:4byte +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x18 data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:4byte +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0xC data:4byte +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0xC data:4byte +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0xC data:4byte +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0xC data:4byte +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x18 data:4byte +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x30 data:4byte +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x18 data:4byte +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x8 data:4byte +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x8 data:4byte +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x20 data:4byte +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x14 data:4byte +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x10 data:4byte +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x10 data:4byte +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x1 data:byte +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x1 data:byte +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x1 data:byte +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x1 data:byte +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x1 data:byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x1 data:byte +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x1 data:byte +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x1 data:byte +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:4byte +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:4byte +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x8 data:double +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:double +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:double +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x8 data:double +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 data:float +lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 data:float +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x8 data:double +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 data:float +lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 data:float +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 data:float +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x8 data:double +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x8 data:double +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 data:float +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 data:double +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 data:float +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x8 data:double +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x8 data:double +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 data:double +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 data:float +lbl_1_rodata_69C = .rodata:0x0000069C; // type:object size:0x4 data:float +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x8 data:double +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float +lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 data:float +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 data:double +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 data:double +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x8 data:double +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x4 data:float +lbl_1_rodata_6CC = .rodata:0x000006CC; // type:object size:0x4 data:float +lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0x10 data:float +lbl_1_data_50 = .data:0x00000050; // type:object size:0x7 data:string +lbl_1_data_57 = .data:0x00000057; // type:object size:0x9 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x48 +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x18 +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x60 +lbl_1_data_120 = .data:0x00000120; // type:object size:0x48 +lbl_1_data_168 = .data:0x00000168; // type:object size:0x8 +lbl_1_data_170 = .data:0x00000170; // type:object size:0x38 +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x20 +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x14 +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x1C +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x60 +lbl_1_data_258 = .data:0x00000258; // type:object size:0x20 +lbl_1_data_278 = .data:0x00000278; // type:object size:0x8 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x8 +lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x14 +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x8 +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x54 +lbl_1_data_300 = .data:0x00000300; // type:object size:0x8 data:4byte +lbl_1_data_308 = .data:0x00000308; // type:object size:0x4 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte +lbl_1_bss_22 = .bss:0x00000022; // type:object size:0x2 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x6 data:2byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:float +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:float +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0xE0 data:4byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x4 data:4byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x4 data:4byte +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x8 data:4byte +lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x4 data:4byte +lbl_1_bss_15C = .bss:0x0000015C; // type:object size:0x4 data:4byte +lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x4 data:4byte +lbl_1_bss_164 = .bss:0x00000164; // type:object size:0x4 data:4byte +lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x4 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x4 data:4byte +lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x4 data:4byte +lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x4 data:4byte +lbl_1_bss_178 = .bss:0x00000178; // type:object size:0x4 data:4byte +lbl_1_bss_17C = .bss:0x0000017C; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m431Dll/splits.txt b/config/GMPP01_00/rels/m431Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m431Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m431Dll/symbols.txt b/config/GMPP01_00/rels/m431Dll/symbols.txt new file mode 100644 index 00000000..c0040e1f --- /dev/null +++ b/config/GMPP01_00/rels/m431Dll/symbols.txt @@ -0,0 +1,251 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x384 +fn_1_424 = .text:0x00000424; // type:function size:0x78 +fn_1_49C = .text:0x0000049C; // type:function size:0xE0 +fn_1_57C = .text:0x0000057C; // type:function size:0x234 +fn_1_7B0 = .text:0x000007B0; // type:function size:0x294 +fn_1_A44 = .text:0x00000A44; // type:function size:0x660 +fn_1_10A4 = .text:0x000010A4; // type:function size:0x364 +fn_1_1408 = .text:0x00001408; // type:function size:0x228 +fn_1_1630 = .text:0x00001630; // type:function size:0x40C +fn_1_1A3C = .text:0x00001A3C; // type:function size:0x5C0 +fn_1_1FFC = .text:0x00001FFC; // type:function size:0x50 +fn_1_204C = .text:0x0000204C; // type:function size:0x40 +fn_1_208C = .text:0x0000208C; // type:function size:0x40 +fn_1_20CC = .text:0x000020CC; // type:function size:0x40 +fn_1_210C = .text:0x0000210C; // type:function size:0x9A0 +fn_1_2AAC = .text:0x00002AAC; // type:function size:0x10 +fn_1_2ABC = .text:0x00002ABC; // type:function size:0x1D4 +fn_1_2C90 = .text:0x00002C90; // type:function size:0x44C +fn_1_30DC = .text:0x000030DC; // type:function size:0x460 +fn_1_353C = .text:0x0000353C; // type:function size:0x83C +fn_1_3D78 = .text:0x00003D78; // type:function size:0x254 +fn_1_3FCC = .text:0x00003FCC; // type:function size:0x58 +fn_1_4024 = .text:0x00004024; // type:function size:0x6FC +fn_1_4720 = .text:0x00004720; // type:function size:0x14 +fn_1_4734 = .text:0x00004734; // type:function size:0x60 +fn_1_4794 = .text:0x00004794; // type:function size:0x138 +fn_1_48CC = .text:0x000048CC; // type:function size:0xBC +fn_1_4988 = .text:0x00004988; // type:function size:0x188 +fn_1_4B10 = .text:0x00004B10; // type:function size:0x1C8 +fn_1_4CD8 = .text:0x00004CD8; // type:function size:0x70 +fn_1_4D48 = .text:0x00004D48; // type:function size:0xE4 +fn_1_4E2C = .text:0x00004E2C; // type:function size:0x4A8 +fn_1_52D4 = .text:0x000052D4; // type:function size:0x1A8 +fn_1_547C = .text:0x0000547C; // type:function size:0xA4 +fn_1_5520 = .text:0x00005520; // type:function size:0x148 +fn_1_5668 = .text:0x00005668; // type:function size:0x9C +fn_1_5704 = .text:0x00005704; // type:function size:0x468 +fn_1_5B6C = .text:0x00005B6C; // type:function size:0x4C0 +fn_1_602C = .text:0x0000602C; // type:function size:0x154 +fn_1_6180 = .text:0x00006180; // type:function size:0x380 +fn_1_6500 = .text:0x00006500; // type:function size:0xC8 +fn_1_65C8 = .text:0x000065C8; // type:function size:0x10 +fn_1_65D8 = .text:0x000065D8; // type:function size:0x5C +fn_1_6634 = .text:0x00006634; // type:function size:0xA4 +fn_1_66D8 = .text:0x000066D8; // type:function size:0xE4 +fn_1_67BC = .text:0x000067BC; // type:function size:0x374 +fn_1_6B30 = .text:0x00006B30; // type:function size:0x140 +fn_1_6C70 = .text:0x00006C70; // type:function size:0x544 +fn_1_71B4 = .text:0x000071B4; // type:function size:0x60 +fn_1_7214 = .text:0x00007214; // type:function size:0x2C +fn_1_7240 = .text:0x00007240; // type:function size:0x38 +fn_1_7278 = .text:0x00007278; // type:function size:0x38 +fn_1_72B0 = .text:0x000072B0; // type:function size:0x570 +fn_1_7820 = .text:0x00007820; // type:function size:0xCC +fn_1_78EC = .text:0x000078EC; // type:function size:0xA4 +fn_1_7990 = .text:0x00007990; // type:function size:0x68 +fn_1_79F8 = .text:0x000079F8; // type:function size:0x7C +fn_1_7A74 = .text:0x00007A74; // type:function size:0x44 +fn_1_7AB8 = .text:0x00007AB8; // type:function size:0x4FC +fn_1_7FB4 = .text:0x00007FB4; // type:function size:0x4BC +fn_1_8470 = .text:0x00008470; // type:function size:0x118 +fn_1_8588 = .text:0x00008588; // type:function size:0x204 +fn_1_878C = .text:0x0000878C; // type:function size:0x344 +fn_1_8AD0 = .text:0x00008AD0; // type:function size:0x1EC +fn_1_8CBC = .text:0x00008CBC; // type:function size:0x6CC +fn_1_9388 = .text:0x00009388; // type:function size:0xB4 +fn_1_943C = .text:0x0000943C; // type:function size:0x494 +fn_1_98D0 = .text:0x000098D0; // type:function size:0x130 +fn_1_9A00 = .text:0x00009A00; // type:function size:0x278 +fn_1_9C78 = .text:0x00009C78; // type:function size:0x49C +fn_1_A114 = .text:0x0000A114; // type:function size:0x360 +fn_1_A474 = .text:0x0000A474; // type:function size:0x380 +fn_1_A7F4 = .text:0x0000A7F4; // type:function size:0x134 +fn_1_A928 = .text:0x0000A928; // type:function size:0x13C +fn_1_AA64 = .text:0x0000AA64; // type:function size:0xB0 +fn_1_AB14 = .text:0x0000AB14; // type:function size:0xB0 +fn_1_ABC4 = .text:0x0000ABC4; // type:function size:0x20 +fn_1_ABE4 = .text:0x0000ABE4; // type:function size:0x30 +fn_1_AC14 = .text:0x0000AC14; // type:function size:0x90 +fn_1_ACA4 = .text:0x0000ACA4; // type:function size:0x108 +fn_1_ADAC = .text:0x0000ADAC; // type:function size:0x7C +fn_1_AE28 = .text:0x0000AE28; // type:function size:0x2E4 +fn_1_B10C = .text:0x0000B10C; // type:function size:0x48 +fn_1_B154 = .text:0x0000B154; // type:function size:0x20 +fn_1_B174 = .text:0x0000B174; // type:function size:0x1C +fn_1_B190 = .text:0x0000B190; // type:function size:0x20 +fn_1_B1B0 = .text:0x0000B1B0; // type:function size:0x1F8 +fn_1_B3A8 = .text:0x0000B3A8; // type:function size:0x80 +fn_1_B428 = .text:0x0000B428; // type:function size:0x90 +fn_1_B4B8 = .text:0x0000B4B8; // type:function size:0x64 +fn_1_B51C = .text:0x0000B51C; // type:function size:0x38 +fn_1_B554 = .text:0x0000B554; // type:function size:0x28 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 data:byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:2byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0x10 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x70 data:float +lbl_1_data_BC = .data:0x000000BC; // type:object size:0xC +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x8 data:4byte +jumptable_1_data_D0 = .data:0x000000D0; // type:object size:0x44 scope:local +lbl_1_data_114 = .data:0x00000114; // type:object size:0x10 +lbl_1_data_124 = .data:0x00000124; // type:object size:0x10 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x14 +lbl_1_data_148 = .data:0x00000148; // type:object size:0x14 +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x6 data:string +lbl_1_data_162 = .data:0x00000162; // type:object size:0x2 data:2byte +lbl_1_data_164 = .data:0x00000164; // type:object size:0x10 data:4byte +lbl_1_data_174 = .data:0x00000174; // type:object size:0x10 data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x26 data:string +lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x26 +lbl_1_data_1D0 = .data:0x000001D0; // type:object size:0x4 data:float +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x20 +lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x20 +lbl_1_data_214 = .data:0x00000214; // type:object size:0x1C +lbl_1_data_230 = .data:0x00000230; // type:object size:0x20 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x10 +lbl_1_data_260 = .data:0x00000260; // type:object size:0x8 +lbl_1_data_268 = .data:0x00000268; // type:object size:0x2 data:2byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte +lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x2 data:2byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x1 data:byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x1 data:byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x2 data:2byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x28 +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x3C data:2byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x1 data:byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x10 +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x80 data:4byte +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4F0 data:2byte +lbl_1_bss_61C = .bss:0x0000061C; // type:object size:0x10 +lbl_1_bss_62C = .bss:0x0000062C; // type:object size:0x50 data:float diff --git a/config/GMPP01_00/rels/m432Dll/splits.txt b/config/GMPP01_00/rels/m432Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m432Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m432Dll/symbols.txt b/config/GMPP01_00/rels/m432Dll/symbols.txt new file mode 100644 index 00000000..dd9786bc --- /dev/null +++ b/config/GMPP01_00/rels/m432Dll/symbols.txt @@ -0,0 +1,359 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x204 +fn_1_784 = .text:0x00000784; // type:function size:0x240 +fn_1_9C4 = .text:0x000009C4; // type:function size:0x54 +fn_1_A18 = .text:0x00000A18; // type:function size:0x10C +fn_1_B24 = .text:0x00000B24; // type:function size:0x680 +fn_1_11A4 = .text:0x000011A4; // type:function size:0x15C +fn_1_1300 = .text:0x00001300; // type:function size:0x8C +fn_1_138C = .text:0x0000138C; // type:function size:0x334 +fn_1_16C0 = .text:0x000016C0; // type:function size:0x350 +fn_1_1A10 = .text:0x00001A10; // type:function size:0x2B8 +fn_1_1CC8 = .text:0x00001CC8; // type:function size:0x58 +fn_1_1D20 = .text:0x00001D20; // type:function size:0xB0 +fn_1_1DD0 = .text:0x00001DD0; // type:function size:0x104 +fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x34 +fn_1_1F08 = .text:0x00001F08; // type:function size:0x6C +fn_1_1F74 = .text:0x00001F74; // type:function size:0x3F0 +fn_1_2364 = .text:0x00002364; // type:function size:0x64 +fn_1_23C8 = .text:0x000023C8; // type:function size:0xE0 +fn_1_24A8 = .text:0x000024A8; // type:function size:0x32C +fn_1_27D4 = .text:0x000027D4; // type:function size:0x3AC +fn_1_2B80 = .text:0x00002B80; // type:function size:0x30 +fn_1_2BB0 = .text:0x00002BB0; // type:function size:0x1C +fn_1_2BCC = .text:0x00002BCC; // type:function size:0x18C +fn_1_2D58 = .text:0x00002D58; // type:function size:0x8 +fn_1_2D60 = .text:0x00002D60; // type:function size:0x8 +fn_1_2D68 = .text:0x00002D68; // type:function size:0x8 +fn_1_2D70 = .text:0x00002D70; // type:function size:0x8 +fn_1_2D78 = .text:0x00002D78; // type:function size:0xC +fn_1_2D84 = .text:0x00002D84; // type:function size:0x60 +fn_1_2DE4 = .text:0x00002DE4; // type:function size:0xB90 +fn_1_3974 = .text:0x00003974; // type:function size:0x31C +fn_1_3C90 = .text:0x00003C90; // type:function size:0xD8 +fn_1_3D68 = .text:0x00003D68; // type:function size:0x114 +fn_1_3E7C = .text:0x00003E7C; // type:function size:0xB8 +fn_1_3F34 = .text:0x00003F34; // type:function size:0xA0 +fn_1_3FD4 = .text:0x00003FD4; // type:function size:0x9C +fn_1_4070 = .text:0x00004070; // type:function size:0xE18 +fn_1_4E88 = .text:0x00004E88; // type:function size:0x250 +fn_1_50D8 = .text:0x000050D8; // type:function size:0x10 +fn_1_50E8 = .text:0x000050E8; // type:function size:0x10 +fn_1_50F8 = .text:0x000050F8; // type:function size:0x60 +fn_1_5158 = .text:0x00005158; // type:function size:0x60 +fn_1_51B8 = .text:0x000051B8; // type:function size:0xB0 +fn_1_5268 = .text:0x00005268; // type:function size:0xAC +fn_1_5314 = .text:0x00005314; // type:function size:0x408 +fn_1_571C = .text:0x0000571C; // type:function size:0xDC +fn_1_57F8 = .text:0x000057F8; // type:function size:0x364 +fn_1_5B5C = .text:0x00005B5C; // type:function size:0x380 +fn_1_5EDC = .text:0x00005EDC; // type:function size:0x310 +fn_1_61EC = .text:0x000061EC; // type:function size:0xAF8 +fn_1_6CE4 = .text:0x00006CE4; // type:function size:0x1F4 +fn_1_6ED8 = .text:0x00006ED8; // type:function size:0xCF4 +fn_1_7BCC = .text:0x00007BCC; // type:function size:0x924 +fn_1_84F0 = .text:0x000084F0; // type:function size:0x6C +fn_1_855C = .text:0x0000855C; // type:function size:0x70 +fn_1_85CC = .text:0x000085CC; // type:function size:0x1F8 +fn_1_87C4 = .text:0x000087C4; // type:function size:0x200 +fn_1_89C4 = .text:0x000089C4; // type:function size:0x2A0 +fn_1_8C64 = .text:0x00008C64; // type:function size:0x288 +fn_1_8EEC = .text:0x00008EEC; // type:function size:0x130 +fn_1_901C = .text:0x0000901C; // type:function size:0x350 +fn_1_936C = .text:0x0000936C; // type:function size:0x15B8 +fn_1_A924 = .text:0x0000A924; // type:function size:0x8C +fn_1_A9B0 = .text:0x0000A9B0; // type:function size:0x1C +fn_1_A9CC = .text:0x0000A9CC; // type:function size:0x2AC +fn_1_AC78 = .text:0x0000AC78; // type:function size:0x260 +fn_1_AED8 = .text:0x0000AED8; // type:function size:0x26C +_prolog = .text:0x0000B144; // type:function size:0x54 scope:global +_epilog = .text:0x0000B198; // type:function size:0x4C scope:global +fn_1_B1E4 = .text:0x0000B1E4; // type:function size:0x224 +fn_1_B408 = .text:0x0000B408; // type:function size:0xC0 +fn_1_B4C8 = .text:0x0000B4C8; // type:function size:0x2CC +fn_1_B794 = .text:0x0000B794; // type:function size:0x190 +fn_1_B924 = .text:0x0000B924; // type:function size:0x134 +fn_1_BA58 = .text:0x0000BA58; // type:function size:0x460 +fn_1_BEB8 = .text:0x0000BEB8; // type:function size:0x94 +fn_1_BF4C = .text:0x0000BF4C; // type:function size:0x3A0 +fn_1_C2EC = .text:0x0000C2EC; // type:function size:0x3E8 +fn_1_C6D4 = .text:0x0000C6D4; // type:function size:0x9BC +fn_1_D090 = .text:0x0000D090; // type:function size:0x90C +fn_1_D99C = .text:0x0000D99C; // type:function size:0x9C8 +fn_1_E364 = .text:0x0000E364; // type:function size:0x630 +fn_1_E994 = .text:0x0000E994; // type:function size:0x298 +fn_1_EC2C = .text:0x0000EC2C; // type:function size:0x90 +fn_1_ECBC = .text:0x0000ECBC; // type:function size:0x1544 +fn_1_10200 = .text:0x00010200; // type:function size:0xA7C +fn_1_10C7C = .text:0x00010C7C; // type:function size:0x724 +fn_1_113A0 = .text:0x000113A0; // type:function size:0x4 +fn_1_113A4 = .text:0x000113A4; // type:function size:0x140C +fn_1_127B0 = .text:0x000127B0; // type:function size:0x4 +fn_1_127B4 = .text:0x000127B4; // type:function size:0xC4 +fn_1_12878 = .text:0x00012878; // type:function size:0x4D0 +fn_1_12D48 = .text:0x00012D48; // type:function size:0x300 +fn_1_13048 = .text:0x00013048; // type:function size:0x2150 +fn_1_15198 = .text:0x00015198; // type:function size:0x9C +fn_1_15234 = .text:0x00015234; // type:function size:0xDA0 +fn_1_15FD4 = .text:0x00015FD4; // type:function size:0x104 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 +lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 +lbl_1_data_80 = .data:0x00000080; // type:object size:0x20 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x8 +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x20 data:float +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0xC +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0xC +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0xC +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x4 +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0xC +lbl_1_data_FC = .data:0x000000FC; // type:object size:0xC +lbl_1_data_108 = .data:0x00000108; // type:object size:0x160 +lbl_1_data_268 = .data:0x00000268; // type:object size:0x20 +lbl_1_data_288 = .data:0x00000288; // type:object size:0x24 +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x24 +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x24 +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x24 +lbl_1_data_318 = .data:0x00000318; // type:object size:0x3C +lbl_1_data_354 = .data:0x00000354; // type:object size:0x18 +lbl_1_data_36C = .data:0x0000036C; // type:object size:0x18 +lbl_1_data_384 = .data:0x00000384; // type:object size:0xB data:string +lbl_1_data_38F = .data:0x0000038F; // type:object size:0xB data:string +lbl_1_data_39A = .data:0x0000039A; // type:object size:0xB data:string +lbl_1_data_3A5 = .data:0x000003A5; // type:object size:0xB data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0xB data:string +lbl_1_data_3BB = .data:0x000003BB; // type:object size:0xB data:string +lbl_1_data_3C6 = .data:0x000003C6; // type:object size:0xB data:string +lbl_1_data_3D1 = .data:0x000003D1; // type:object size:0xB data:string +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x20 +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0xB data:string +lbl_1_data_407 = .data:0x00000407; // type:object size:0xB data:string +lbl_1_data_412 = .data:0x00000412; // type:object size:0xB data:string +lbl_1_data_41D = .data:0x0000041D; // type:object size:0xB data:string +lbl_1_data_428 = .data:0x00000428; // type:object size:0xB data:string +lbl_1_data_433 = .data:0x00000433; // type:object size:0xD +lbl_1_data_440 = .data:0x00000440; // type:object size:0x18 data:4byte +lbl_1_data_458 = .data:0x00000458; // type:object size:0xB data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0xB data:string +lbl_1_data_46E = .data:0x0000046E; // type:object size:0xB data:string +lbl_1_data_479 = .data:0x00000479; // type:object size:0xB data:string +lbl_1_data_484 = .data:0x00000484; // type:object size:0xB data:string +lbl_1_data_48F = .data:0x0000048F; // type:object size:0xB data:string +lbl_1_data_49A = .data:0x0000049A; // type:object size:0xB data:string +lbl_1_data_4A5 = .data:0x000004A5; // type:object size:0xB data:string +lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0xB data:string +lbl_1_data_4BB = .data:0x000004BB; // type:object size:0xD +lbl_1_data_4C8 = .data:0x000004C8; // type:object size:0x28 data:4byte +lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x14 +lbl_1_data_504 = .data:0x00000504; // type:object size:0x24 +lbl_1_data_528 = .data:0x00000528; // type:object size:0x8 +lbl_1_data_530 = .data:0x00000530; // type:object size:0xB data:string +lbl_1_data_53B = .data:0x0000053B; // type:object size:0xB data:string +lbl_1_data_546 = .data:0x00000546; // type:object size:0xB data:string +lbl_1_data_551 = .data:0x00000551; // type:object size:0xB data:string +lbl_1_data_55C = .data:0x0000055C; // type:object size:0xB data:string +lbl_1_data_567 = .data:0x00000567; // type:object size:0xB data:string +lbl_1_data_572 = .data:0x00000572; // type:object size:0xB data:string +lbl_1_data_57D = .data:0x0000057D; // type:object size:0xB data:string +lbl_1_data_588 = .data:0x00000588; // type:object size:0xB data:string +lbl_1_data_593 = .data:0x00000593; // type:object size:0xB data:string +lbl_1_data_59E = .data:0x0000059E; // type:object size:0xB data:string +lbl_1_data_5A9 = .data:0x000005A9; // type:object size:0xB data:string +lbl_1_data_5B4 = .data:0x000005B4; // type:object size:0xB data:string +lbl_1_data_5BF = .data:0x000005BF; // type:object size:0xB data:string +lbl_1_data_5CA = .data:0x000005CA; // type:object size:0xB data:string +lbl_1_data_5D5 = .data:0x000005D5; // type:object size:0xB data:string +lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0xC +lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x8B8 +lbl_1_data_EA4 = .data:0x00000EA4; // type:object size:0xB data:string +lbl_1_data_EAF = .data:0x00000EAF; // type:object size:0xB data:string +lbl_1_data_EBA = .data:0x00000EBA; // type:object size:0xB data:string +lbl_1_data_EC5 = .data:0x00000EC5; // type:object size:0xB data:string +lbl_1_data_ED0 = .data:0x00000ED0; // type:object size:0xC +lbl_1_data_EDC = .data:0x00000EDC; // type:object size:0x8B8 +lbl_1_data_1794 = .data:0x00001794; // type:object size:0x20 +lbl_1_data_17B4 = .data:0x000017B4; // type:object size:0x20 +lbl_1_data_17D4 = .data:0x000017D4; // type:object size:0x20 data:float +lbl_1_data_17F4 = .data:0x000017F4; // type:object size:0x20 +lbl_1_data_1814 = .data:0x00001814; // type:object size:0x50 +lbl_1_data_1864 = .data:0x00001864; // type:object size:0x11 data:string +lbl_1_data_1875 = .data:0x00001875; // type:object size:0x11 data:string +lbl_1_data_1886 = .data:0x00001886; // type:object size:0x11 data:string +lbl_1_data_1897 = .data:0x00001897; // type:object size:0x18 data:string +lbl_1_data_18AF = .data:0x000018AF; // type:object size:0xB data:string +lbl_1_data_18BA = .data:0x000018BA; // type:object size:0x18 data:string +lbl_1_data_18D2 = .data:0x000018D2; // type:object size:0xC data:string +lbl_1_data_18DE = .data:0x000018DE; // type:object size:0x6 data:string +lbl_1_data_18E4 = .data:0x000018E4; // type:object size:0x21 data:string +lbl_1_data_1905 = .data:0x00001905; // type:object size:0x1F +jumptable_1_data_1924 = .data:0x00001924; // type:object size:0x1C scope:local +jumptable_1_data_1940 = .data:0x00001940; // type:object size:0x44 scope:local +lbl_1_data_1984 = .data:0x00001984; // type:object size:0xB data:string +lbl_1_data_198F = .data:0x0000198F; // type:object size:0x1D +jumptable_1_data_19AC = .data:0x000019AC; // type:object size:0x28 scope:local +lbl_1_data_19D4 = .data:0x000019D4; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x3F0 data:float +lbl_1_bss_3F0 = .bss:0x000003F0; // type:object size:0x4 data:float +lbl_1_bss_3F4 = .bss:0x000003F4; // type:object size:0x4 data:4byte +lbl_1_bss_3F8 = .bss:0x000003F8; // type:object size:0x4 data:4byte +lbl_1_bss_3FC = .bss:0x000003FC; // type:object size:0x4 data:4byte +lbl_1_bss_400 = .bss:0x00000400; // type:object size:0x2 data:2byte +lbl_1_bss_402 = .bss:0x00000402; // type:object size:0x2 data:2byte +lbl_1_bss_404 = .bss:0x00000404; // type:object size:0x2 data:2byte +lbl_1_bss_408 = .bss:0x00000408; // type:object size:0x8 data:4byte +lbl_1_bss_410 = .bss:0x00000410; // type:object size:0x4 data:4byte +lbl_1_bss_414 = .bss:0x00000414; // type:object size:0x4 data:4byte +lbl_1_bss_418 = .bss:0x00000418; // type:object size:0x4 data:4byte +lbl_1_bss_41C = .bss:0x0000041C; // type:object size:0x4 data:4byte +lbl_1_bss_420 = .bss:0x00000420; // type:object size:0x4 data:float +lbl_1_bss_424 = .bss:0x00000424; // type:object size:0x4 data:4byte +lbl_1_bss_428 = .bss:0x00000428; // type:object size:0x100 +lbl_1_bss_528 = .bss:0x00000528; // type:object size:0x40 data:4byte +lbl_1_bss_568 = .bss:0x00000568; // type:object size:0x4 data:float +lbl_1_bss_56C = .bss:0x0000056C; // type:object size:0x4 data:4byte +lbl_1_bss_570 = .bss:0x00000570; // type:object size:0x4 data:4byte +lbl_1_bss_574 = .bss:0x00000574; // type:object size:0x2 data:2byte +lbl_1_bss_576 = .bss:0x00000576; // type:object size:0x2 data:2byte +lbl_1_bss_578 = .bss:0x00000578; // type:object size:0x4 data:4byte +lbl_1_bss_57C = .bss:0x0000057C; // type:object size:0x4 data:4byte +lbl_1_bss_580 = .bss:0x00000580; // type:object size:0x4 data:4byte +lbl_1_bss_584 = .bss:0x00000584; // type:object size:0xC data:float +lbl_1_bss_590 = .bss:0x00000590; // type:object size:0xC data:4byte +lbl_1_bss_59C = .bss:0x0000059C; // type:object size:0xC data:float +lbl_1_bss_5A8 = .bss:0x000005A8; // type:object size:0xC data:4byte +lbl_1_bss_5B4 = .bss:0x000005B4; // type:object size:0x4 data:4byte +lbl_1_bss_5B8 = .bss:0x000005B8; // type:object size:0x18 data:4byte +lbl_1_bss_5D0 = .bss:0x000005D0; // type:object size:0xC data:4byte diff --git a/config/GMPP01_00/rels/m433Dll/splits.txt b/config/GMPP01_00/rels/m433Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m433Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m433Dll/symbols.txt b/config/GMPP01_00/rels/m433Dll/symbols.txt new file mode 100644 index 00000000..ebeb6d4e --- /dev/null +++ b/config/GMPP01_00/rels/m433Dll/symbols.txt @@ -0,0 +1,465 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x420 +fn_1_4C0 = .text:0x000004C0; // type:function size:0xC4 +fn_1_584 = .text:0x00000584; // type:function size:0x94 +fn_1_618 = .text:0x00000618; // type:function size:0x180 +fn_1_798 = .text:0x00000798; // type:function size:0x33C +fn_1_AD4 = .text:0x00000AD4; // type:function size:0x358 +fn_1_E2C = .text:0x00000E2C; // type:function size:0x214 +fn_1_1040 = .text:0x00001040; // type:function size:0x3BC +fn_1_13FC = .text:0x000013FC; // type:function size:0x2D4 +fn_1_16D0 = .text:0x000016D0; // type:function size:0x36C +fn_1_1A3C = .text:0x00001A3C; // type:function size:0xC +fn_1_1A48 = .text:0x00001A48; // type:function size:0x6F4 +fn_1_213C = .text:0x0000213C; // type:function size:0x18 +fn_1_2154 = .text:0x00002154; // type:function size:0x18 +fn_1_216C = .text:0x0000216C; // type:function size:0x18 +fn_1_2184 = .text:0x00002184; // type:function size:0x18 +fn_1_219C = .text:0x0000219C; // type:function size:0x30 +fn_1_21CC = .text:0x000021CC; // type:function size:0x18 +fn_1_21E4 = .text:0x000021E4; // type:function size:0x30 +fn_1_2214 = .text:0x00002214; // type:function size:0x30 +fn_1_2244 = .text:0x00002244; // type:function size:0x38 +fn_1_227C = .text:0x0000227C; // type:function size:0x208 +fn_1_2484 = .text:0x00002484; // type:function size:0x240 +fn_1_26C4 = .text:0x000026C4; // type:function size:0x11C +fn_1_27E0 = .text:0x000027E0; // type:function size:0xB4 +fn_1_2894 = .text:0x00002894; // type:function size:0xF0 +fn_1_2984 = .text:0x00002984; // type:function size:0x20 +fn_1_29A4 = .text:0x000029A4; // type:function size:0x120 +fn_1_2AC4 = .text:0x00002AC4; // type:function size:0x21C +fn_1_2CE0 = .text:0x00002CE0; // type:function size:0x5EC +fn_1_32CC = .text:0x000032CC; // type:function size:0x6E0 +fn_1_39AC = .text:0x000039AC; // type:function size:0x270 +fn_1_3C1C = .text:0x00003C1C; // type:function size:0x240 +fn_1_3E5C = .text:0x00003E5C; // type:function size:0xB8 +fn_1_3F14 = .text:0x00003F14; // type:function size:0xB80 +fn_1_4A94 = .text:0x00004A94; // type:function size:0x10C +fn_1_4BA0 = .text:0x00004BA0; // type:function size:0x334 +fn_1_4ED4 = .text:0x00004ED4; // type:function size:0xEC +fn_1_4FC0 = .text:0x00004FC0; // type:function size:0x28 +fn_1_4FE8 = .text:0x00004FE8; // type:function size:0x80 +fn_1_5068 = .text:0x00005068; // type:function size:0x40 +fn_1_50A8 = .text:0x000050A8; // type:function size:0xA0 +fn_1_5148 = .text:0x00005148; // type:function size:0x94 +fn_1_51DC = .text:0x000051DC; // type:function size:0x84 +fn_1_5260 = .text:0x00005260; // type:function size:0x54 +fn_1_52B4 = .text:0x000052B4; // type:function size:0x168 +fn_1_541C = .text:0x0000541C; // type:function size:0x120 +fn_1_553C = .text:0x0000553C; // type:function size:0x39C +fn_1_58D8 = .text:0x000058D8; // type:function size:0x2C +fn_1_5904 = .text:0x00005904; // type:function size:0x270 +fn_1_5B74 = .text:0x00005B74; // type:function size:0x24 +fn_1_5B98 = .text:0x00005B98; // type:function size:0x4D8 +fn_1_6070 = .text:0x00006070; // type:function size:0x50 +fn_1_60C0 = .text:0x000060C0; // type:function size:0x76C +fn_1_682C = .text:0x0000682C; // type:function size:0xA00 +fn_1_722C = .text:0x0000722C; // type:function size:0x2A8 +fn_1_74D4 = .text:0x000074D4; // type:function size:0xF34 +fn_1_8408 = .text:0x00008408; // type:function size:0x334 +fn_1_873C = .text:0x0000873C; // type:function size:0x1FC +fn_1_8938 = .text:0x00008938; // type:function size:0x298 +fn_1_8BD0 = .text:0x00008BD0; // type:function size:0x3B0 +fn_1_8F80 = .text:0x00008F80; // type:function size:0x708 +fn_1_9688 = .text:0x00009688; // type:function size:0xF90 +fn_1_A618 = .text:0x0000A618; // type:function size:0x570 +fn_1_AB88 = .text:0x0000AB88; // type:function size:0x624 +fn_1_B1AC = .text:0x0000B1AC; // type:function size:0x340 +fn_1_B4EC = .text:0x0000B4EC; // type:function size:0x20C +fn_1_B6F8 = .text:0x0000B6F8; // type:function size:0xCC +fn_1_B7C4 = .text:0x0000B7C4; // type:function size:0x8C +fn_1_B850 = .text:0x0000B850; // type:function size:0x2A8 +fn_1_BAF8 = .text:0x0000BAF8; // type:function size:0x268 +fn_1_BD60 = .text:0x0000BD60; // type:function size:0x4F8 +fn_1_C258 = .text:0x0000C258; // type:function size:0x46C +fn_1_C6C4 = .text:0x0000C6C4; // type:function size:0x4 +fn_1_C6C8 = .text:0x0000C6C8; // type:function size:0x51C +fn_1_CBE4 = .text:0x0000CBE4; // type:function size:0x220 +fn_1_CE04 = .text:0x0000CE04; // type:function size:0x3C8 +fn_1_D1CC = .text:0x0000D1CC; // type:function size:0x1B8 +fn_1_D384 = .text:0x0000D384; // type:function size:0x1A8 +fn_1_D52C = .text:0x0000D52C; // type:function size:0x1C8 +fn_1_D6F4 = .text:0x0000D6F4; // type:function size:0x1E0 +fn_1_D8D4 = .text:0x0000D8D4; // type:function size:0x4E8 +fn_1_DDBC = .text:0x0000DDBC; // type:function size:0xB8 +fn_1_DE74 = .text:0x0000DE74; // type:function size:0x11C +fn_1_DF90 = .text:0x0000DF90; // type:function size:0xA0 +fn_1_E030 = .text:0x0000E030; // type:function size:0x138 +fn_1_E168 = .text:0x0000E168; // type:function size:0x4A4 +fn_1_E60C = .text:0x0000E60C; // type:function size:0x4CC +fn_1_EAD8 = .text:0x0000EAD8; // type:function size:0x158 +fn_1_EC30 = .text:0x0000EC30; // type:function size:0x118 +fn_1_ED48 = .text:0x0000ED48; // type:function size:0x1168 +fn_1_FEB0 = .text:0x0000FEB0; // type:function size:0x28 +fn_1_FED8 = .text:0x0000FED8; // type:function size:0x2A4 +fn_1_1017C = .text:0x0001017C; // type:function size:0x130 +fn_1_102AC = .text:0x000102AC; // type:function size:0x3B4 +fn_1_10660 = .text:0x00010660; // type:function size:0xF8 +fn_1_10758 = .text:0x00010758; // type:function size:0x34 +fn_1_1078C = .text:0x0001078C; // type:function size:0x70 +fn_1_107FC = .text:0x000107FC; // type:function size:0x98 +fn_1_10894 = .text:0x00010894; // type:function size:0x30 +fn_1_108C4 = .text:0x000108C4; // type:function size:0x4C +fn_1_10910 = .text:0x00010910; // type:function size:0x3C +fn_1_1094C = .text:0x0001094C; // type:function size:0x28 +fn_1_10974 = .text:0x00010974; // type:function size:0x1F8 +fn_1_10B6C = .text:0x00010B6C; // type:function size:0x204 +fn_1_10D70 = .text:0x00010D70; // type:function size:0x180 +fn_1_10EF0 = .text:0x00010EF0; // type:function size:0x28 +fn_1_10F18 = .text:0x00010F18; // type:function size:0x34 +fn_1_10F4C = .text:0x00010F4C; // type:function size:0x38 +fn_1_10F84 = .text:0x00010F84; // type:function size:0x34 +fn_1_10FB8 = .text:0x00010FB8; // type:function size:0x38 +fn_1_10FF0 = .text:0x00010FF0; // type:function size:0x38 +fn_1_11028 = .text:0x00011028; // type:function size:0x28 +fn_1_11050 = .text:0x00011050; // type:function size:0x5C +fn_1_110AC = .text:0x000110AC; // type:function size:0x38 +fn_1_110E4 = .text:0x000110E4; // type:function size:0x98 +fn_1_1117C = .text:0x0001117C; // type:function size:0x1B0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x10 data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0xC0 +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x10 data:4byte +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x10 data:4byte +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 data:4byte +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x10 data:4byte +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x18 data:4byte +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x18 data:4byte +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x8 data:double +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:4byte +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x8 data:double +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x24 data:4byte +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x8 data:4byte +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:4byte +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:4byte +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x8 data:4byte +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x8 data:double +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x8 data:4byte +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 data:double +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 data:double +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float +lbl_1_rodata_5FC = .rodata:0x000005FC; // type:object size:0x4 data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x4 data:float +lbl_1_rodata_604 = .rodata:0x00000604; // type:object size:0x4 data:float +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 data:float +lbl_1_rodata_60C = .rodata:0x0000060C; // type:object size:0x4 data:float +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 data:float +lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 data:float +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 data:float +lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 data:float +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 data:float +lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 data:float +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 data:float +lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 data:float +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 data:float +lbl_1_rodata_66C = .rodata:0x0000066C; // type:object size:0x4 data:float +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 data:double +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 data:float +lbl_1_rodata_67C = .rodata:0x0000067C; // type:object size:0x4 data:float +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 data:float +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0xC data:float +lbl_1_data_58 = .data:0x00000058; // type:object size:0x50 data:float +jumptable_1_data_A8 = .data:0x000000A8; // type:object size:0x1C scope:local +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x1C data:4byte +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x38 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x38 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x30 +lbl_1_data_180 = .data:0x00000180; // type:object size:0x44 +lbl_1_data_1C4 = .data:0x000001C4; // type:object size:0x44 +lbl_1_data_208 = .data:0x00000208; // type:object size:0x44 +lbl_1_data_24C = .data:0x0000024C; // type:object size:0x1A4 +lbl_1_data_3F0 = .data:0x000003F0; // type:object size:0x38 +lbl_1_data_428 = .data:0x00000428; // type:object size:0x9 data:string +lbl_1_data_431 = .data:0x00000431; // type:object size:0x9 data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0xB data:string +lbl_1_data_445 = .data:0x00000445; // type:object size:0xB data:string +lbl_1_data_450 = .data:0x00000450; // type:object size:0x18 +lbl_1_data_468 = .data:0x00000468; // type:object size:0x24 +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x48 +lbl_1_data_4D4 = .data:0x000004D4; // type:object size:0x6C +lbl_1_data_540 = .data:0x00000540; // type:object size:0x24 +lbl_1_data_564 = .data:0x00000564; // type:object size:0x2 data:string +lbl_1_data_566 = .data:0x00000566; // type:object size:0x15 data:string +lbl_1_data_57B = .data:0x0000057B; // type:object size:0x15 data:string +lbl_1_data_590 = .data:0x00000590; // type:object size:0x15 data:string +lbl_1_data_5A5 = .data:0x000005A5; // type:object size:0x15 data:string +lbl_1_data_5BA = .data:0x000005BA; // type:object size:0x18 data:string +lbl_1_data_5D2 = .data:0x000005D2; // type:object size:0x18 data:string +lbl_1_data_5EA = .data:0x000005EA; // type:object size:0x15 data:string +lbl_1_data_5FF = .data:0x000005FF; // type:object size:0x15 data:string +lbl_1_data_614 = .data:0x00000614; // type:object size:0x15 data:string +lbl_1_data_629 = .data:0x00000629; // type:object size:0x15 data:string +lbl_1_data_63E = .data:0x0000063E; // type:object size:0x16 +jumptable_1_data_654 = .data:0x00000654; // type:object size:0x20 scope:local +lbl_1_data_674 = .data:0x00000674; // type:object size:0xC +lbl_1_data_680 = .data:0x00000680; // type:object size:0x8 +lbl_1_data_688 = .data:0x00000688; // type:object size:0x28 +lbl_1_data_6B0 = .data:0x000006B0; // type:object size:0x10 +lbl_1_data_6C0 = .data:0x000006C0; // type:object size:0xB0 data:4byte +lbl_1_data_770 = .data:0x00000770; // type:object size:0x24 +lbl_1_data_794 = .data:0x00000794; // type:object size:0x6C +lbl_1_data_800 = .data:0x00000800; // type:object size:0x24 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0xA data:2byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0xC data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x6F0 +lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x80 +lbl_1_bss_7A8 = .bss:0x000007A8; // type:object size:0x4 data:4byte +lbl_1_bss_7AC = .bss:0x000007AC; // type:object size:0x4 data:4byte +lbl_1_bss_7B0 = .bss:0x000007B0; // type:object size:0x8 data:4byte +lbl_1_bss_7B8 = .bss:0x000007B8; // type:object size:0x10 +lbl_1_bss_7C8 = .bss:0x000007C8; // type:object size:0x4 data:4byte +lbl_1_bss_7CC = .bss:0x000007CC; // type:object size:0x4 data:4byte +lbl_1_bss_7D0 = .bss:0x000007D0; // type:object size:0x14 diff --git a/config/GMPP01_00/rels/m434Dll/splits.txt b/config/GMPP01_00/rels/m434Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m434Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m434Dll/symbols.txt b/config/GMPP01_00/rels/m434Dll/symbols.txt new file mode 100644 index 00000000..08f8f83e --- /dev/null +++ b/config/GMPP01_00/rels/m434Dll/symbols.txt @@ -0,0 +1,334 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x45C +fn_1_4FC = .text:0x000004FC; // type:function size:0x5C +fn_1_558 = .text:0x00000558; // type:function size:0x70C +fn_1_C64 = .text:0x00000C64; // type:function size:0x64 +fn_1_CC8 = .text:0x00000CC8; // type:function size:0x17C +fn_1_E44 = .text:0x00000E44; // type:function size:0x278 +fn_1_10BC = .text:0x000010BC; // type:function size:0x38 +fn_1_10F4 = .text:0x000010F4; // type:function size:0x10 +fn_1_1104 = .text:0x00001104; // type:function size:0x4C +fn_1_1150 = .text:0x00001150; // type:function size:0x320 +fn_1_1470 = .text:0x00001470; // type:function size:0x1C8 +fn_1_1638 = .text:0x00001638; // type:function size:0x4C +fn_1_1684 = .text:0x00001684; // type:function size:0x30 +fn_1_16B4 = .text:0x000016B4; // type:function size:0x24 +fn_1_16D8 = .text:0x000016D8; // type:function size:0xB0 +fn_1_1788 = .text:0x00001788; // type:function size:0xB0 +fn_1_1838 = .text:0x00001838; // type:function size:0x118 +fn_1_1950 = .text:0x00001950; // type:function size:0xB0 +fn_1_1A00 = .text:0x00001A00; // type:function size:0x10 +fn_1_1A10 = .text:0x00001A10; // type:function size:0x234 +fn_1_1C44 = .text:0x00001C44; // type:function size:0x44 +fn_1_1C88 = .text:0x00001C88; // type:function size:0x30 +fn_1_1CB8 = .text:0x00001CB8; // type:function size:0x8C +fn_1_1D44 = .text:0x00001D44; // type:function size:0x10 +fn_1_1D54 = .text:0x00001D54; // type:function size:0x10 +fn_1_1D64 = .text:0x00001D64; // type:function size:0x10 +fn_1_1D74 = .text:0x00001D74; // type:function size:0x18 +fn_1_1D8C = .text:0x00001D8C; // type:function size:0x10 +fn_1_1D9C = .text:0x00001D9C; // type:function size:0x14 +fn_1_1DB0 = .text:0x00001DB0; // type:function size:0x94 +fn_1_1E44 = .text:0x00001E44; // type:function size:0x20 +fn_1_1E64 = .text:0x00001E64; // type:function size:0x7A4 +fn_1_2608 = .text:0x00002608; // type:function size:0x9C +fn_1_26A4 = .text:0x000026A4; // type:function size:0x24C +fn_1_28F0 = .text:0x000028F0; // type:function size:0x88 +fn_1_2978 = .text:0x00002978; // type:function size:0x68C +fn_1_3004 = .text:0x00003004; // type:function size:0x124 +fn_1_3128 = .text:0x00003128; // type:function size:0x1B4 +fn_1_32DC = .text:0x000032DC; // type:function size:0xC8 +fn_1_33A4 = .text:0x000033A4; // type:function size:0xF8 +fn_1_349C = .text:0x0000349C; // type:function size:0xF8 +fn_1_3594 = .text:0x00003594; // type:function size:0x734 +fn_1_3CC8 = .text:0x00003CC8; // type:function size:0x6E4 +fn_1_43AC = .text:0x000043AC; // type:function size:0x90 +fn_1_443C = .text:0x0000443C; // type:function size:0x3B0 +fn_1_47EC = .text:0x000047EC; // type:function size:0x68 +fn_1_4854 = .text:0x00004854; // type:function size:0x110 +fn_1_4964 = .text:0x00004964; // type:function size:0x24 +fn_1_4988 = .text:0x00004988; // type:function size:0x46C +fn_1_4DF4 = .text:0x00004DF4; // type:function size:0x5C +fn_1_4E50 = .text:0x00004E50; // type:function size:0xC60 +fn_1_5AB0 = .text:0x00005AB0; // type:function size:0x13C +fn_1_5BEC = .text:0x00005BEC; // type:function size:0xAC +fn_1_5C98 = .text:0x00005C98; // type:function size:0x414 +fn_1_60AC = .text:0x000060AC; // type:function size:0x19C +fn_1_6248 = .text:0x00006248; // type:function size:0x74 +fn_1_62BC = .text:0x000062BC; // type:function size:0x1E0 +fn_1_649C = .text:0x0000649C; // type:function size:0x24 +fn_1_64C0 = .text:0x000064C0; // type:function size:0x1D0 +fn_1_6690 = .text:0x00006690; // type:function size:0x11C +fn_1_67AC = .text:0x000067AC; // type:function size:0xB4 +fn_1_6860 = .text:0x00006860; // type:function size:0x224 +fn_1_6A84 = .text:0x00006A84; // type:function size:0x4 +fn_1_6A88 = .text:0x00006A88; // type:function size:0x2F4 +fn_1_6D7C = .text:0x00006D7C; // type:function size:0x3C +fn_1_6DB8 = .text:0x00006DB8; // type:function size:0x4 +fn_1_6DBC = .text:0x00006DBC; // type:function size:0x1034 +fn_1_7DF0 = .text:0x00007DF0; // type:function size:0x464 +fn_1_8254 = .text:0x00008254; // type:function size:0x174 +fn_1_83C8 = .text:0x000083C8; // type:function size:0x108 +fn_1_84D0 = .text:0x000084D0; // type:function size:0xF4 +fn_1_85C4 = .text:0x000085C4; // type:function size:0x2C0 +fn_1_8884 = .text:0x00008884; // type:function size:0x268 +fn_1_8AEC = .text:0x00008AEC; // type:function size:0x6C +fn_1_8B58 = .text:0x00008B58; // type:function size:0xBC +fn_1_8C14 = .text:0x00008C14; // type:function size:0x164 +fn_1_8D78 = .text:0x00008D78; // type:function size:0xB4 +fn_1_8E2C = .text:0x00008E2C; // type:function size:0x110 +fn_1_8F3C = .text:0x00008F3C; // type:function size:0x64 +fn_1_8FA0 = .text:0x00008FA0; // type:function size:0x1EC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x10 data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x10 data:4byte +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC data:4byte +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0xC data:4byte +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:4byte +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 data:double +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x48 +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x48 +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:4byte +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x48 +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x48 +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC data:float +lbl_1_data_C = .data:0x0000000C; // type:object size:0x18 data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x28 +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x4 data:4byte +lbl_1_data_74 = .data:0x00000074; // type:object size:0x12 data:string +lbl_1_data_86 = .data:0x00000086; // type:object size:0x1E +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x8 +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0xC +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x30 +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x10 +lbl_1_data_100 = .data:0x00000100; // type:object size:0x34 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x5 data:string +lbl_1_data_139 = .data:0x00000139; // type:object size:0x7 data:byte +lbl_1_data_140 = .data:0x00000140; // type:object size:0x18 +lbl_1_data_158 = .data:0x00000158; // type:object size:0x1C +lbl_1_data_174 = .data:0x00000174; // type:object size:0x1 data:byte +lbl_1_data_178 = .data:0x00000178; // type:object size:0x8 data:byte +lbl_1_data_180 = .data:0x00000180; // type:object size:0x10 +lbl_1_data_190 = .data:0x00000190; // type:object size:0x20 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2C +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x8 +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x18 +lbl_1_data_1FC = .data:0x000001FC; // type:object size:0x28 +lbl_1_data_224 = .data:0x00000224; // type:object size:0x90 +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3 data:string +lbl_1_data_2B7 = .data:0x000002B7; // type:object size:0x3 data:string +lbl_1_data_2BA = .data:0x000002BA; // type:object size:0x6 +lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0x8 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x380 +lbl_1_bss_39C = .bss:0x0000039C; // type:object size:0x4 data:4byte +lbl_1_bss_3A0 = .bss:0x000003A0; // type:object size:0x8 +lbl_1_bss_3A8 = .bss:0x000003A8; // type:object size:0x2 data:2byte +lbl_1_bss_3AA = .bss:0x000003AA; // type:object size:0x2 data:2byte +lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x2 data:2byte +lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x8 data:2byte +lbl_1_bss_3B8 = .bss:0x000003B8; // type:object size:0x4 data:4byte +lbl_1_bss_3BC = .bss:0x000003BC; // type:object size:0x4 data:4byte +lbl_1_bss_3C0 = .bss:0x000003C0; // type:object size:0x2 data:2byte +lbl_1_bss_3C2 = .bss:0x000003C2; // type:object size:0x2 data:2byte +lbl_1_bss_3C4 = .bss:0x000003C4; // type:object size:0x8 data:4byte +lbl_1_bss_3CC = .bss:0x000003CC; // type:object size:0x4 data:4byte +lbl_1_bss_3D0 = .bss:0x000003D0; // type:object size:0x4 data:4byte +lbl_1_bss_3D4 = .bss:0x000003D4; // type:object size:0x1C data:4byte +lbl_1_bss_3F0 = .bss:0x000003F0; // type:object size:0x50 data:4byte +lbl_1_bss_440 = .bss:0x00000440; // type:object size:0x10 data:4byte +lbl_1_bss_450 = .bss:0x00000450; // type:object size:0x8 data:4byte +lbl_1_bss_458 = .bss:0x00000458; // type:object size:0x4 data:4byte +lbl_1_bss_45C = .bss:0x0000045C; // type:object size:0x8 data:4byte +lbl_1_bss_464 = .bss:0x00000464; // type:object size:0x2000 data:float +lbl_1_bss_2464 = .bss:0x00002464; // type:object size:0x4 data:4byte +lbl_1_bss_2468 = .bss:0x00002468; // type:object size:0x400 data:2byte +lbl_1_bss_2868 = .bss:0x00002868; // type:object size:0x3000 data:float +lbl_1_bss_5868 = .bss:0x00005868; // type:object size:0x8 data:4byte +lbl_1_bss_5870 = .bss:0x00005870; // type:object size:0x10 +lbl_1_bss_5880 = .bss:0x00005880; // type:object size:0x800 +lbl_1_bss_6080 = .bss:0x00006080; // type:object size:0x400 +lbl_1_bss_6480 = .bss:0x00006480; // type:object size:0x1000 +lbl_1_bss_7480 = .bss:0x00007480; // type:object size:0x400 data:4byte +lbl_1_bss_7880 = .bss:0x00007880; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m435Dll/splits.txt b/config/GMPP01_00/rels/m435Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m435Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m435Dll/symbols.txt b/config/GMPP01_00/rels/m435Dll/symbols.txt new file mode 100644 index 00000000..38995f87 --- /dev/null +++ b/config/GMPP01_00/rels/m435Dll/symbols.txt @@ -0,0 +1,471 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x1A8 +fn_1_1A8 = .text:0x000001A8; // type:function size:0x88 +fn_1_230 = .text:0x00000230; // type:function size:0x68 +fn_1_298 = .text:0x00000298; // type:function size:0x6C +fn_1_304 = .text:0x00000304; // type:function size:0x130 +fn_1_434 = .text:0x00000434; // type:function size:0x3E4 +fn_1_818 = .text:0x00000818; // type:function size:0x8C +fn_1_8A4 = .text:0x000008A4; // type:function size:0x20 +fn_1_8C4 = .text:0x000008C4; // type:function size:0x20 +fn_1_8E4 = .text:0x000008E4; // type:function size:0x48 +fn_1_92C = .text:0x0000092C; // type:function size:0x6B0 +fn_1_FDC = .text:0x00000FDC; // type:function size:0x134 +fn_1_1110 = .text:0x00001110; // type:function size:0xC4 +fn_1_11D4 = .text:0x000011D4; // type:function size:0x644 +fn_1_1818 = .text:0x00001818; // type:function size:0x24 +fn_1_183C = .text:0x0000183C; // type:function size:0x458 +fn_1_1C94 = .text:0x00001C94; // type:function size:0x1EC +fn_1_1E80 = .text:0x00001E80; // type:function size:0x1EC +fn_1_206C = .text:0x0000206C; // type:function size:0x458 +fn_1_24C4 = .text:0x000024C4; // type:function size:0x68 +fn_1_252C = .text:0x0000252C; // type:function size:0x68 +fn_1_2594 = .text:0x00002594; // type:function size:0xE8 +fn_1_267C = .text:0x0000267C; // type:function size:0x11C +fn_1_2798 = .text:0x00002798; // type:function size:0x84 +fn_1_281C = .text:0x0000281C; // type:function size:0x70 +fn_1_288C = .text:0x0000288C; // type:function size:0x38 +fn_1_28C4 = .text:0x000028C4; // type:function size:0x24 +fn_1_28E8 = .text:0x000028E8; // type:function size:0x38 +fn_1_2920 = .text:0x00002920; // type:function size:0x1C8 +fn_1_2AE8 = .text:0x00002AE8; // type:function size:0x64 +fn_1_2B4C = .text:0x00002B4C; // type:function size:0xA8 +fn_1_2BF4 = .text:0x00002BF4; // type:function size:0x20 +fn_1_2C14 = .text:0x00002C14; // type:function size:0x5A0 +fn_1_31B4 = .text:0x000031B4; // type:function size:0xCC +fn_1_3280 = .text:0x00003280; // type:function size:0x2D0 +fn_1_3550 = .text:0x00003550; // type:function size:0x59C +fn_1_3AEC = .text:0x00003AEC; // type:function size:0x20 +fn_1_3B0C = .text:0x00003B0C; // type:function size:0x370 +fn_1_3E7C = .text:0x00003E7C; // type:function size:0x20 +fn_1_3E9C = .text:0x00003E9C; // type:function size:0x260 +fn_1_40FC = .text:0x000040FC; // type:function size:0x2C +fn_1_4128 = .text:0x00004128; // type:function size:0x5A8 +fn_1_46D0 = .text:0x000046D0; // type:function size:0x22C +fn_1_48FC = .text:0x000048FC; // type:function size:0x3E8 +fn_1_4CE4 = .text:0x00004CE4; // type:function size:0x11C +fn_1_4E00 = .text:0x00004E00; // type:function size:0x1AC +fn_1_4FAC = .text:0x00004FAC; // type:function size:0x484 +fn_1_5430 = .text:0x00005430; // type:function size:0x1C8 +fn_1_55F8 = .text:0x000055F8; // type:function size:0x44 +fn_1_563C = .text:0x0000563C; // type:function size:0x1C18 +fn_1_7254 = .text:0x00007254; // type:function size:0x48 +fn_1_729C = .text:0x0000729C; // type:function size:0x384 +fn_1_7620 = .text:0x00007620; // type:function size:0x374 +fn_1_7994 = .text:0x00007994; // type:function size:0x24 +fn_1_79B8 = .text:0x000079B8; // type:function size:0xB8 +fn_1_7A70 = .text:0x00007A70; // type:function size:0xCC +fn_1_7B3C = .text:0x00007B3C; // type:function size:0x1E4 +fn_1_7D20 = .text:0x00007D20; // type:function size:0x28 +fn_1_7D48 = .text:0x00007D48; // type:function size:0x24 +fn_1_7D6C = .text:0x00007D6C; // type:function size:0x160 +fn_1_7ECC = .text:0x00007ECC; // type:function size:0x37C +fn_1_8248 = .text:0x00008248; // type:function size:0x24 +fn_1_826C = .text:0x0000826C; // type:function size:0x2D0 +fn_1_853C = .text:0x0000853C; // type:function size:0x4C +fn_1_8588 = .text:0x00008588; // type:function size:0x1A4 +fn_1_872C = .text:0x0000872C; // type:function size:0x17C +fn_1_88A8 = .text:0x000088A8; // type:function size:0x598 +fn_1_8E40 = .text:0x00008E40; // type:function size:0x28 +fn_1_8E68 = .text:0x00008E68; // type:function size:0x58 +fn_1_8EC0 = .text:0x00008EC0; // type:function size:0x2C +fn_1_8EEC = .text:0x00008EEC; // type:function size:0x40 +fn_1_8F2C = .text:0x00008F2C; // type:function size:0x18 +fn_1_8F44 = .text:0x00008F44; // type:function size:0x150 +fn_1_9094 = .text:0x00009094; // type:function size:0x6CC +fn_1_9760 = .text:0x00009760; // type:function size:0x28 +fn_1_9788 = .text:0x00009788; // type:function size:0x94 +fn_1_981C = .text:0x0000981C; // type:function size:0x28 +fn_1_9844 = .text:0x00009844; // type:function size:0x380 +fn_1_9BC4 = .text:0x00009BC4; // type:function size:0x3C +fn_1_9C00 = .text:0x00009C00; // type:function size:0x180 +fn_1_9D80 = .text:0x00009D80; // type:function size:0x1F4 +fn_1_9F74 = .text:0x00009F74; // type:function size:0x1CC +fn_1_A140 = .text:0x0000A140; // type:function size:0x370 +fn_1_A4B0 = .text:0x0000A4B0; // type:function size:0x28 +fn_1_A4D8 = .text:0x0000A4D8; // type:function size:0x190 +fn_1_A668 = .text:0x0000A668; // type:function size:0x64 +fn_1_A6CC = .text:0x0000A6CC; // type:function size:0x1F0 +fn_1_A8BC = .text:0x0000A8BC; // type:function size:0x338 +fn_1_ABF4 = .text:0x0000ABF4; // type:function size:0x160 +fn_1_AD54 = .text:0x0000AD54; // type:function size:0x498 +fn_1_B1EC = .text:0x0000B1EC; // type:function size:0x634 +fn_1_B820 = .text:0x0000B820; // type:function size:0x128 +fn_1_B948 = .text:0x0000B948; // type:function size:0x298 +fn_1_BBE0 = .text:0x0000BBE0; // type:function size:0xB0 +fn_1_BC90 = .text:0x0000BC90; // type:function size:0xD8 +fn_1_BD68 = .text:0x0000BD68; // type:function size:0xB0 +fn_1_BE18 = .text:0x0000BE18; // type:function size:0xB0 +fn_1_BEC8 = .text:0x0000BEC8; // type:function size:0xB0 +fn_1_BF78 = .text:0x0000BF78; // type:function size:0xE4 +fn_1_C05C = .text:0x0000C05C; // type:function size:0xD8 +fn_1_C134 = .text:0x0000C134; // type:function size:0xD8 +fn_1_C20C = .text:0x0000C20C; // type:function size:0xD8 +fn_1_C2E4 = .text:0x0000C2E4; // type:function size:0xD8 +fn_1_C3BC = .text:0x0000C3BC; // type:function size:0xD8 +fn_1_C494 = .text:0x0000C494; // type:function size:0xB0 +fn_1_C544 = .text:0x0000C544; // type:function size:0xB0 +fn_1_C5F4 = .text:0x0000C5F4; // type:function size:0x168 +fn_1_C75C = .text:0x0000C75C; // type:function size:0x558 +fn_1_CCB4 = .text:0x0000CCB4; // type:function size:0x3A0 +fn_1_D054 = .text:0x0000D054; // type:function size:0x43C +fn_1_D490 = .text:0x0000D490; // type:function size:0x424 +fn_1_D8B4 = .text:0x0000D8B4; // type:function size:0x8D4 +fn_1_E188 = .text:0x0000E188; // type:function size:0x4E0 +fn_1_E668 = .text:0x0000E668; // type:function size:0x3E4 +fn_1_EA4C = .text:0x0000EA4C; // type:function size:0x340 +fn_1_ED8C = .text:0x0000ED8C; // type:function size:0x448 +fn_1_F1D4 = .text:0x0000F1D4; // type:function size:0x4 +fn_1_F1D8 = .text:0x0000F1D8; // type:function size:0x18C +fn_1_F364 = .text:0x0000F364; // type:function size:0x3C +fn_1_F3A0 = .text:0x0000F3A0; // type:function size:0x5C +fn_1_F3FC = .text:0x0000F3FC; // type:function size:0x78 +fn_1_F474 = .text:0x0000F474; // type:function size:0x5C +fn_1_F4D0 = .text:0x0000F4D0; // type:function size:0x5C +fn_1_F52C = .text:0x0000F52C; // type:function size:0x48 +fn_1_F574 = .text:0x0000F574; // type:function size:0x3C +fn_1_F5B0 = .text:0x0000F5B0; // type:function size:0x80 +fn_1_F630 = .text:0x0000F630; // type:function size:0x64 +fn_1_F694 = .text:0x0000F694; // type:function size:0x5C +fn_1_F6F0 = .text:0x0000F6F0; // type:function size:0x70 +fn_1_F760 = .text:0x0000F760; // type:function size:0x48 +fn_1_F7A8 = .text:0x0000F7A8; // type:function size:0xA8 +fn_1_F850 = .text:0x0000F850; // type:function size:0x44 +fn_1_F894 = .text:0x0000F894; // type:function size:0x5C +fn_1_F8F0 = .text:0x0000F8F0; // type:function size:0x5C +fn_1_F94C = .text:0x0000F94C; // type:function size:0x4 +fn_1_F950 = .text:0x0000F950; // type:function size:0x48 +fn_1_F998 = .text:0x0000F998; // type:function size:0x4C +fn_1_F9E4 = .text:0x0000F9E4; // type:function size:0x5C +fn_1_FA40 = .text:0x0000FA40; // type:function size:0x108 +fn_1_FB48 = .text:0x0000FB48; // type:function size:0x5C +fn_1_FBA4 = .text:0x0000FBA4; // type:function size:0xB0 +fn_1_FC54 = .text:0x0000FC54; // type:function size:0x208 +fn_1_FE5C = .text:0x0000FE5C; // type:function size:0x30 +fn_1_FE8C = .text:0x0000FE8C; // type:function size:0x98 +fn_1_FF24 = .text:0x0000FF24; // type:function size:0x808 +fn_1_1072C = .text:0x0001072C; // type:function size:0x28 +fn_1_10754 = .text:0x00010754; // type:function size:0xD8 +fn_1_1082C = .text:0x0001082C; // type:function size:0xD8 +fn_1_10904 = .text:0x00010904; // type:function size:0x108 +fn_1_10A0C = .text:0x00010A0C; // type:function size:0x408 +fn_1_10E14 = .text:0x00010E14; // type:function size:0x404 +fn_1_11218 = .text:0x00011218; // type:function size:0x488 +fn_1_116A0 = .text:0x000116A0; // type:function size:0x45C +fn_1_11AFC = .text:0x00011AFC; // type:function size:0x478 +fn_1_11F74 = .text:0x00011F74; // type:function size:0x4 +fn_1_11F78 = .text:0x00011F78; // type:function size:0x48 +fn_1_11FC0 = .text:0x00011FC0; // type:function size:0x9C +fn_1_1205C = .text:0x0001205C; // type:function size:0x1AC +fn_1_12208 = .text:0x00012208; // type:function size:0x50 +fn_1_12258 = .text:0x00012258; // type:function size:0x48 +fn_1_122A0 = .text:0x000122A0; // type:function size:0x38 +fn_1_122D8 = .text:0x000122D8; // type:function size:0x134 +fn_1_1240C = .text:0x0001240C; // type:function size:0x2C +fn_1_12438 = .text:0x00012438; // type:function size:0x134 +fn_1_1256C = .text:0x0001256C; // type:function size:0x48 +fn_1_125B4 = .text:0x000125B4; // type:function size:0x48 +fn_1_125FC = .text:0x000125FC; // type:function size:0xF0 +fn_1_126EC = .text:0x000126EC; // type:function size:0xC0 +fn_1_127AC = .text:0x000127AC; // type:function size:0x5C +fn_1_12808 = .text:0x00012808; // type:function size:0x48 +fn_1_12850 = .text:0x00012850; // type:function size:0x100 +fn_1_12950 = .text:0x00012950; // type:function size:0x1F8 +fn_1_12B48 = .text:0x00012B48; // type:function size:0x3C +fn_1_12B84 = .text:0x00012B84; // type:function size:0x5C +fn_1_12BE0 = .text:0x00012BE0; // type:function size:0x3C +fn_1_12C1C = .text:0x00012C1C; // type:function size:0x5C +fn_1_12C78 = .text:0x00012C78; // type:function size:0x3C +fn_1_12CB4 = .text:0x00012CB4; // type:function size:0x5C +fn_1_12D10 = .text:0x00012D10; // type:function size:0x230 +fn_1_12F40 = .text:0x00012F40; // type:function size:0xF4 +fn_1_13034 = .text:0x00013034; // type:function size:0x4C +fn_1_13080 = .text:0x00013080; // type:function size:0x128 +fn_1_131A8 = .text:0x000131A8; // type:function size:0x40 +fn_1_131E8 = .text:0x000131E8; // type:function size:0x98 +fn_1_13280 = .text:0x00013280; // type:function size:0xB0 +fn_1_13330 = .text:0x00013330; // type:function size:0xAC +fn_1_133DC = .text:0x000133DC; // type:function size:0x30 +fn_1_1340C = .text:0x0001340C; // type:function size:0x98 +fn_1_134A4 = .text:0x000134A4; // type:function size:0xF4 +fn_1_13598 = .text:0x00013598; // type:function size:0x60 +fn_1_135F8 = .text:0x000135F8; // type:function size:0xD84 +fn_1_1437C = .text:0x0001437C; // type:function size:0x3DC +fn_1_14758 = .text:0x00014758; // type:function size:0x254 +_prolog = .text:0x000149AC; // type:function size:0x54 scope:global +_epilog = .text:0x00014A00; // type:function size:0x4C scope:global +fn_1_14A4C = .text:0x00014A4C; // type:function size:0x40C +fn_1_14E58 = .text:0x00014E58; // type:function size:0x40C +fn_1_15264 = .text:0x00015264; // type:function size:0x28 +fn_1_1528C = .text:0x0001528C; // type:function size:0x40 +fn_1_152CC = .text:0x000152CC; // type:function size:0xC8 +fn_1_15394 = .text:0x00015394; // type:function size:0xD8 +fn_1_1546C = .text:0x0001546C; // type:function size:0x50 +fn_1_154BC = .text:0x000154BC; // type:function size:0x5C +fn_1_15518 = .text:0x00015518; // type:function size:0x88 +fn_1_155A0 = .text:0x000155A0; // type:function size:0x74 +fn_1_15614 = .text:0x00015614; // type:function size:0x54 +fn_1_15668 = .text:0x00015668; // type:function size:0x3C +fn_1_156A4 = .text:0x000156A4; // type:function size:0x110 +fn_1_157B4 = .text:0x000157B4; // type:function size:0x178 +fn_1_1592C = .text:0x0001592C; // type:function size:0x1C8 +fn_1_15AF4 = .text:0x00015AF4; // type:function size:0x318 +fn_1_15E0C = .text:0x00015E0C; // type:function size:0x3C +fn_1_15E48 = .text:0x00015E48; // type:function size:0x4C +fn_1_15E94 = .text:0x00015E94; // type:function size:0x314 +fn_1_161A8 = .text:0x000161A8; // type:function size:0x314 +fn_1_164BC = .text:0x000164BC; // type:function size:0x27C +fn_1_16738 = .text:0x00016738; // type:function size:0x2B4 +fn_1_169EC = .text:0x000169EC; // type:function size:0x530 +fn_1_16F1C = .text:0x00016F1C; // type:function size:0x454 +fn_1_17370 = .text:0x00017370; // type:function size:0x48C +fn_1_177FC = .text:0x000177FC; // type:function size:0x71C +fn_1_17F18 = .text:0x00017F18; // type:function size:0x4C4 +fn_1_183DC = .text:0x000183DC; // type:function size:0x4FC +fn_1_188D8 = .text:0x000188D8; // type:function size:0x78C +fn_1_19064 = .text:0x00019064; // type:function size:0x4C4 +fn_1_19528 = .text:0x00019528; // type:function size:0x60 +fn_1_19588 = .text:0x00019588; // type:function size:0x64 +fn_1_195EC = .text:0x000195EC; // type:function size:0x64 +fn_1_19650 = .text:0x00019650; // type:function size:0x23C +fn_1_1988C = .text:0x0001988C; // type:function size:0x64 +fn_1_198F0 = .text:0x000198F0; // type:function size:0x68 +fn_1_19958 = .text:0x00019958; // type:function size:0x8 +fn_1_19960 = .text:0x00019960; // type:function size:0xC +fn_1_1996C = .text:0x0001996C; // type:function size:0x8 +fn_1_19974 = .text:0x00019974; // type:function size:0x344 +fn_1_19CB8 = .text:0x00019CB8; // type:function size:0x190 +fn_1_19E48 = .text:0x00019E48; // type:function size:0x4EC +fn_1_1A334 = .text:0x0001A334; // type:function size:0x110 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x48 +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x20 data:4byte +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x30 data:4byte +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x30 data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x30 data:4byte +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x8 data:4byte +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x8 data:4byte +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x8 data:4byte +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x8 data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x24 data:4byte +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:4byte +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x24 data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x8 data:4byte +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x8 data:4byte +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:4byte +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:4byte +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x8 data:4byte +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x8 data:4byte +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x10 data:4byte +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x8 data:4byte +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x8 data:4byte +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x8 data:4byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x8 data:4byte +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x30 data:4byte +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x64 data:4byte +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x8 data:double +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x10 data:string +lbl_1_data_70 = .data:0x00000070; // type:object size:0x10 data:string +lbl_1_data_80 = .data:0x00000080; // type:object size:0x10 data:string +lbl_1_data_90 = .data:0x00000090; // type:object size:0x10 data:string +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x10 data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 data:string +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x10 data:string +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x10 data:string +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x20 +lbl_1_data_100 = .data:0x00000100; // type:object size:0x40 +lbl_1_data_140 = .data:0x00000140; // type:object size:0xA0 +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x4 data:4byte +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x4 data:4byte +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x4 data:4byte +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x1B data:string +lbl_1_data_207 = .data:0x00000207; // type:object size:0x22 data:string +lbl_1_data_229 = .data:0x00000229; // type:object size:0x1A data:string +lbl_1_data_243 = .data:0x00000243; // type:object size:0x1A data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0xF +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x4 data:4byte +jumptable_1_data_270 = .data:0x00000270; // type:object size:0x54 scope:local +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x4 data:float +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x13 data:string +lbl_1_data_2DB = .data:0x000002DB; // type:object size:0x11 +jumptable_1_data_2EC = .data:0x000002EC; // type:object size:0x24 scope:local +jumptable_1_data_310 = .data:0x00000310; // type:object size:0x2C scope:local +lbl_1_data_33C = .data:0x0000033C; // type:object size:0xE data:string +lbl_1_data_34A = .data:0x0000034A; // type:object size:0x12 data:string +lbl_1_data_35C = .data:0x0000035C; // type:object size:0x14 +jumptable_1_data_370 = .data:0x00000370; // type:object size:0x30 scope:local +lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0xA8 +jumptable_1_data_448 = .data:0x00000448; // type:object size:0x1C scope:local +lbl_1_data_464 = .data:0x00000464; // type:object size:0x4 +lbl_1_data_468 = .data:0x00000468; // type:object size:0xB4 +lbl_1_data_51C = .data:0x0000051C; // type:object size:0x18 +jumptable_1_data_534 = .data:0x00000534; // type:object size:0x28 scope:local +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x8 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x30 +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x18 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x18 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0xA8 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x160 +lbl_1_bss_2A4 = .bss:0x000002A4; // type:object size:0x978 data:4byte +lbl_1_bss_C1C = .bss:0x00000C1C; // type:object size:0x14 data:4byte +lbl_1_bss_C30 = .bss:0x00000C30; // type:object size:0x1B4 data:4byte +lbl_1_bss_DE4 = .bss:0x00000DE4; // type:object size:0x24 data:4byte +lbl_1_bss_E08 = .bss:0x00000E08; // type:object size:0x80 data:4byte +lbl_1_bss_E88 = .bss:0x00000E88; // type:object size:0x4060 data:4byte +lbl_1_bss_4EE8 = .bss:0x00004EE8; // type:object size:0x20 data:4byte +lbl_1_bss_4F08 = .bss:0x00004F08; // type:object size:0x8 data:4byte +lbl_1_bss_4F10 = .bss:0x00004F10; // type:object size:0x38 data:4byte diff --git a/config/GMPP01_00/rels/m436Dll/splits.txt b/config/GMPP01_00/rels/m436Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m436Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m436Dll/symbols.txt b/config/GMPP01_00/rels/m436Dll/symbols.txt new file mode 100644 index 00000000..057ebf99 --- /dev/null +++ b/config/GMPP01_00/rels/m436Dll/symbols.txt @@ -0,0 +1,352 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x1A8 +fn_1_1A8 = .text:0x000001A8; // type:function size:0x88 +fn_1_230 = .text:0x00000230; // type:function size:0x3E4 +fn_1_614 = .text:0x00000614; // type:function size:0x68 +fn_1_67C = .text:0x0000067C; // type:function size:0x6C +fn_1_6E8 = .text:0x000006E8; // type:function size:0x130 +fn_1_818 = .text:0x00000818; // type:function size:0x8C +fn_1_8A4 = .text:0x000008A4; // type:function size:0x20 +fn_1_8C4 = .text:0x000008C4; // type:function size:0x6A8 +fn_1_F6C = .text:0x00000F6C; // type:function size:0x118 +fn_1_1084 = .text:0x00001084; // type:function size:0xC4 +fn_1_1148 = .text:0x00001148; // type:function size:0x644 +fn_1_178C = .text:0x0000178C; // type:function size:0x24 +fn_1_17B0 = .text:0x000017B0; // type:function size:0x458 +fn_1_1C08 = .text:0x00001C08; // type:function size:0x458 +fn_1_2060 = .text:0x00002060; // type:function size:0x1D0 +fn_1_2230 = .text:0x00002230; // type:function size:0x1D0 +fn_1_2400 = .text:0x00002400; // type:function size:0x68 +fn_1_2468 = .text:0x00002468; // type:function size:0x68 +fn_1_24D0 = .text:0x000024D0; // type:function size:0xE8 +fn_1_25B8 = .text:0x000025B8; // type:function size:0x11C +fn_1_26D4 = .text:0x000026D4; // type:function size:0x70 +fn_1_2744 = .text:0x00002744; // type:function size:0x84 +fn_1_27C8 = .text:0x000027C8; // type:function size:0x38 +fn_1_2800 = .text:0x00002800; // type:function size:0x24 +fn_1_2824 = .text:0x00002824; // type:function size:0x38 +fn_1_285C = .text:0x0000285C; // type:function size:0x1C8 +fn_1_2A24 = .text:0x00002A24; // type:function size:0x64 +fn_1_2A88 = .text:0x00002A88; // type:function size:0x304 +fn_1_2D8C = .text:0x00002D8C; // type:function size:0x28C +fn_1_3018 = .text:0x00003018; // type:function size:0x68 +fn_1_3080 = .text:0x00003080; // type:function size:0x174 +fn_1_31F4 = .text:0x000031F4; // type:function size:0x7B8 +fn_1_39AC = .text:0x000039AC; // type:function size:0x23C +fn_1_3BE8 = .text:0x00003BE8; // type:function size:0x61C +fn_1_4204 = .text:0x00004204; // type:function size:0xF8 +fn_1_42FC = .text:0x000042FC; // type:function size:0x290 +fn_1_458C = .text:0x0000458C; // type:function size:0x318 +fn_1_48A4 = .text:0x000048A4; // type:function size:0x150 +fn_1_49F4 = .text:0x000049F4; // type:function size:0xB8 +fn_1_4AAC = .text:0x00004AAC; // type:function size:0x68 +fn_1_4B14 = .text:0x00004B14; // type:function size:0x38C +fn_1_4EA0 = .text:0x00004EA0; // type:function size:0x108 +fn_1_4FA8 = .text:0x00004FA8; // type:function size:0x3DC +fn_1_5384 = .text:0x00005384; // type:function size:0x28 +fn_1_53AC = .text:0x000053AC; // type:function size:0x60 +fn_1_540C = .text:0x0000540C; // type:function size:0x3C +fn_1_5448 = .text:0x00005448; // type:function size:0x50 +fn_1_5498 = .text:0x00005498; // type:function size:0x168 +fn_1_5600 = .text:0x00005600; // type:function size:0x6C8 +fn_1_5CC8 = .text:0x00005CC8; // type:function size:0x390 +fn_1_6058 = .text:0x00006058; // type:function size:0x264 +fn_1_62BC = .text:0x000062BC; // type:function size:0x624 +fn_1_68E0 = .text:0x000068E0; // type:function size:0x5C +fn_1_693C = .text:0x0000693C; // type:function size:0x298 +fn_1_6BD4 = .text:0x00006BD4; // type:function size:0xB0 +fn_1_6C84 = .text:0x00006C84; // type:function size:0xD8 +fn_1_6D5C = .text:0x00006D5C; // type:function size:0xB0 +fn_1_6E0C = .text:0x00006E0C; // type:function size:0xB0 +fn_1_6EBC = .text:0x00006EBC; // type:function size:0xB0 +fn_1_6F6C = .text:0x00006F6C; // type:function size:0xD8 +fn_1_7044 = .text:0x00007044; // type:function size:0xB0 +fn_1_70F4 = .text:0x000070F4; // type:function size:0xB0 +fn_1_71A4 = .text:0x000071A4; // type:function size:0x120 +fn_1_72C4 = .text:0x000072C4; // type:function size:0x524 +fn_1_77E8 = .text:0x000077E8; // type:function size:0x368 +fn_1_7B50 = .text:0x00007B50; // type:function size:0x3C4 +fn_1_7F14 = .text:0x00007F14; // type:function size:0x268C +fn_1_A5A0 = .text:0x0000A5A0; // type:function size:0xE2C +fn_1_B3CC = .text:0x0000B3CC; // type:function size:0x40C +fn_1_B7D8 = .text:0x0000B7D8; // type:function size:0x4 +fn_1_B7DC = .text:0x0000B7DC; // type:function size:0x184 +fn_1_B960 = .text:0x0000B960; // type:function size:0x4C +fn_1_B9AC = .text:0x0000B9AC; // type:function size:0x5C +fn_1_BA08 = .text:0x0000BA08; // type:function size:0x94 +fn_1_BA9C = .text:0x0000BA9C; // type:function size:0x100 +fn_1_BB9C = .text:0x0000BB9C; // type:function size:0x50 +fn_1_BBEC = .text:0x0000BBEC; // type:function size:0x48 +fn_1_BC34 = .text:0x0000BC34; // type:function size:0x3C +fn_1_BC70 = .text:0x0000BC70; // type:function size:0x80 +fn_1_BCF0 = .text:0x0000BCF0; // type:function size:0x74 +fn_1_BD64 = .text:0x0000BD64; // type:function size:0xB0 +fn_1_BE14 = .text:0x0000BE14; // type:function size:0x50 +fn_1_BE64 = .text:0x0000BE64; // type:function size:0x48 +fn_1_BEAC = .text:0x0000BEAC; // type:function size:0x4C +fn_1_BEF8 = .text:0x0000BEF8; // type:function size:0xC8 +fn_1_BFC0 = .text:0x0000BFC0; // type:function size:0x30 +fn_1_BFF0 = .text:0x0000BFF0; // type:function size:0x98 +fn_1_C088 = .text:0x0000C088; // type:function size:0x458 +fn_1_C4E0 = .text:0x0000C4E0; // type:function size:0xFC +fn_1_C5DC = .text:0x0000C5DC; // type:function size:0xB0 +fn_1_C68C = .text:0x0000C68C; // type:function size:0xD8 +fn_1_C764 = .text:0x0000C764; // type:function size:0xD8 +fn_1_C83C = .text:0x0000C83C; // type:function size:0xC8 +fn_1_C904 = .text:0x0000C904; // type:function size:0x398 +fn_1_CC9C = .text:0x0000CC9C; // type:function size:0x374 +fn_1_D010 = .text:0x0000D010; // type:function size:0x32C +fn_1_D33C = .text:0x0000D33C; // type:function size:0xD4 +fn_1_D410 = .text:0x0000D410; // type:function size:0x2A8 +fn_1_D6B8 = .text:0x0000D6B8; // type:function size:0x24 +fn_1_D6DC = .text:0x0000D6DC; // type:function size:0x37C +fn_1_DA58 = .text:0x0000DA58; // type:function size:0xA0 +fn_1_DAF8 = .text:0x0000DAF8; // type:function size:0x2BC +fn_1_DDB4 = .text:0x0000DDB4; // type:function size:0xF4 +fn_1_DEA8 = .text:0x0000DEA8; // type:function size:0x200 +fn_1_E0A8 = .text:0x0000E0A8; // type:function size:0x94 +fn_1_E13C = .text:0x0000E13C; // type:function size:0x248 +fn_1_E384 = .text:0x0000E384; // type:function size:0x140 +fn_1_E4C4 = .text:0x0000E4C4; // type:function size:0xA0 +fn_1_E564 = .text:0x0000E564; // type:function size:0xBC +fn_1_E620 = .text:0x0000E620; // type:function size:0x58 +fn_1_E678 = .text:0x0000E678; // type:function size:0x90 +fn_1_E708 = .text:0x0000E708; // type:function size:0x220 +fn_1_E928 = .text:0x0000E928; // type:function size:0xD4 +fn_1_E9FC = .text:0x0000E9FC; // type:function size:0x348 +fn_1_ED44 = .text:0x0000ED44; // type:function size:0xC4 +fn_1_EE08 = .text:0x0000EE08; // type:function size:0x5F4 +fn_1_F3FC = .text:0x0000F3FC; // type:function size:0xEC +fn_1_F4E8 = .text:0x0000F4E8; // type:function size:0x48 +fn_1_F530 = .text:0x0000F530; // type:function size:0x30 +fn_1_F560 = .text:0x0000F560; // type:function size:0x98 +fn_1_F5F8 = .text:0x0000F5F8; // type:function size:0xB0 +fn_1_F6A8 = .text:0x0000F6A8; // type:function size:0xAC +fn_1_F754 = .text:0x0000F754; // type:function size:0x30 +fn_1_F784 = .text:0x0000F784; // type:function size:0x98 +fn_1_F81C = .text:0x0000F81C; // type:function size:0x100 +fn_1_F91C = .text:0x0000F91C; // type:function size:0x60 +fn_1_F97C = .text:0x0000F97C; // type:function size:0x8E8 +fn_1_10264 = .text:0x00010264; // type:function size:0x404 +fn_1_10668 = .text:0x00010668; // type:function size:0x1CC +_prolog = .text:0x00010834; // type:function size:0x54 scope:global +_epilog = .text:0x00010888; // type:function size:0x4C scope:global +fn_1_108D4 = .text:0x000108D4; // type:function size:0x410 +fn_1_10CE4 = .text:0x00010CE4; // type:function size:0x410 +fn_1_110F4 = .text:0x000110F4; // type:function size:0x40 +fn_1_11134 = .text:0x00011134; // type:function size:0x28 +fn_1_1115C = .text:0x0001115C; // type:function size:0xC8 +fn_1_11224 = .text:0x00011224; // type:function size:0xC8 +fn_1_112EC = .text:0x000112EC; // type:function size:0xD8 +fn_1_113C4 = .text:0x000113C4; // type:function size:0x33C +fn_1_11700 = .text:0x00011700; // type:function size:0x110 +fn_1_11810 = .text:0x00011810; // type:function size:0x178 +fn_1_11988 = .text:0x00011988; // type:function size:0x188 +fn_1_11B10 = .text:0x00011B10; // type:function size:0x1B0 +fn_1_11CC0 = .text:0x00011CC0; // type:function size:0x50 +fn_1_11D10 = .text:0x00011D10; // type:function size:0x5C +fn_1_11D6C = .text:0x00011D6C; // type:function size:0x88 +fn_1_11DF4 = .text:0x00011DF4; // type:function size:0x74 +fn_1_11E68 = .text:0x00011E68; // type:function size:0x94 +fn_1_11EFC = .text:0x00011EFC; // type:function size:0x3C +fn_1_11F38 = .text:0x00011F38; // type:function size:0x318 +fn_1_12250 = .text:0x00012250; // type:function size:0x3C +fn_1_1228C = .text:0x0001228C; // type:function size:0x4C +fn_1_122D8 = .text:0x000122D8; // type:function size:0x314 +fn_1_125EC = .text:0x000125EC; // type:function size:0x314 +fn_1_12900 = .text:0x00012900; // type:function size:0x27C +fn_1_12B7C = .text:0x00012B7C; // type:function size:0x2B4 +fn_1_12E30 = .text:0x00012E30; // type:function size:0x530 +fn_1_13360 = .text:0x00013360; // type:function size:0x454 +fn_1_137B4 = .text:0x000137B4; // type:function size:0x48C +fn_1_13C40 = .text:0x00013C40; // type:function size:0x71C +fn_1_1435C = .text:0x0001435C; // type:function size:0x4C4 +fn_1_14820 = .text:0x00014820; // type:function size:0x4FC +fn_1_14D1C = .text:0x00014D1C; // type:function size:0x78C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x3C data:4byte +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC data:4byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x30 data:4byte +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:4byte +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:4byte +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x18 data:4byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:4byte +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:4byte +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:4byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x8 data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0xC data:4byte +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:4byte +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:4byte +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x30 data:4byte +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x34 data:4byte +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 +lbl_1_data_20 = .data:0x00000020; // type:object size:0x20 +lbl_1_data_40 = .data:0x00000040; // type:object size:0xA0 +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x4 data:4byte +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x4 data:4byte +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x4 data:4byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x1B data:string +lbl_1_data_107 = .data:0x00000107; // type:object size:0x22 data:string +lbl_1_data_129 = .data:0x00000129; // type:object size:0x1A data:string +lbl_1_data_143 = .data:0x00000143; // type:object size:0x1A data:string +lbl_1_data_15D = .data:0x0000015D; // type:object size:0xF +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x4 data:4byte +lbl_1_data_170 = .data:0x00000170; // type:object size:0x34 +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x14 +jumptable_1_data_1B8 = .data:0x000001B8; // type:object size:0x30 scope:local +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x6C +lbl_1_data_254 = .data:0x00000254; // type:object size:0x18 data:float +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x12 data:string +lbl_1_data_27E = .data:0x0000027E; // type:object size:0x12 data:string +lbl_1_data_290 = .data:0x00000290; // type:object size:0x9C +lbl_1_data_32C = .data:0x0000032C; // type:object size:0x18 +jumptable_1_data_344 = .data:0x00000344; // type:object size:0x28 scope:local +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x30 data:float +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x30 data:float +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x18 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x18 data:4byte +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0xA8 data:4byte +lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x28 data:4byte +lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x14 data:4byte +lbl_1_bss_1BC = .bss:0x000001BC; // type:object size:0x64 data:4byte +lbl_1_bss_220 = .bss:0x00000220; // type:object size:0x14 data:4byte +lbl_1_bss_234 = .bss:0x00000234; // type:object size:0xF8 data:4byte +lbl_1_bss_32C = .bss:0x0000032C; // type:object size:0x78 data:4byte +lbl_1_bss_3A4 = .bss:0x000003A4; // type:object size:0x8 data:4byte +lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x38 data:4byte +lbl_1_bss_3E4 = .bss:0x000003E4; // type:object size:0xC0 +lbl_1_bss_4A4 = .bss:0x000004A4; // type:object size:0x10 data:4byte diff --git a/config/GMPP01_00/rels/m437Dll/splits.txt b/config/GMPP01_00/rels/m437Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m437Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m437Dll/symbols.txt b/config/GMPP01_00/rels/m437Dll/symbols.txt new file mode 100644 index 00000000..ae5723b4 --- /dev/null +++ b/config/GMPP01_00/rels/m437Dll/symbols.txt @@ -0,0 +1,411 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x1A8 +fn_1_1A8 = .text:0x000001A8; // type:function size:0x88 +fn_1_230 = .text:0x00000230; // type:function size:0x68 +fn_1_298 = .text:0x00000298; // type:function size:0x6C +fn_1_304 = .text:0x00000304; // type:function size:0x130 +fn_1_434 = .text:0x00000434; // type:function size:0x8C +fn_1_4C0 = .text:0x000004C0; // type:function size:0x3E4 +fn_1_8A4 = .text:0x000008A4; // type:function size:0x20 +fn_1_8C4 = .text:0x000008C4; // type:function size:0x20 +fn_1_8E4 = .text:0x000008E4; // type:function size:0x6A8 +fn_1_F8C = .text:0x00000F8C; // type:function size:0x134 +fn_1_10C0 = .text:0x000010C0; // type:function size:0xC4 +fn_1_1184 = .text:0x00001184; // type:function size:0x38 +fn_1_11BC = .text:0x000011BC; // type:function size:0x24 +fn_1_11E0 = .text:0x000011E0; // type:function size:0x38 +fn_1_1218 = .text:0x00001218; // type:function size:0x1C8 +fn_1_13E0 = .text:0x000013E0; // type:function size:0x64 +fn_1_1444 = .text:0x00001444; // type:function size:0x644 +fn_1_1A88 = .text:0x00001A88; // type:function size:0x24 +fn_1_1AAC = .text:0x00001AAC; // type:function size:0x458 +fn_1_1F04 = .text:0x00001F04; // type:function size:0x1EC +fn_1_20F0 = .text:0x000020F0; // type:function size:0x1EC +fn_1_22DC = .text:0x000022DC; // type:function size:0x458 +fn_1_2734 = .text:0x00002734; // type:function size:0x68 +fn_1_279C = .text:0x0000279C; // type:function size:0x68 +fn_1_2804 = .text:0x00002804; // type:function size:0xE8 +fn_1_28EC = .text:0x000028EC; // type:function size:0x11C +fn_1_2A08 = .text:0x00002A08; // type:function size:0x84 +fn_1_2A8C = .text:0x00002A8C; // type:function size:0x70 +fn_1_2AFC = .text:0x00002AFC; // type:function size:0xA8 +fn_1_2BA4 = .text:0x00002BA4; // type:function size:0x10 +fn_1_2BB4 = .text:0x00002BB4; // type:function size:0x5D8 +fn_1_318C = .text:0x0000318C; // type:function size:0xCC +fn_1_3258 = .text:0x00003258; // type:function size:0x1B0 +fn_1_3408 = .text:0x00003408; // type:function size:0x284 +fn_1_368C = .text:0x0000368C; // type:function size:0x20 +fn_1_36AC = .text:0x000036AC; // type:function size:0x120 +fn_1_37CC = .text:0x000037CC; // type:function size:0x14 +fn_1_37E0 = .text:0x000037E0; // type:function size:0x1A8 +fn_1_3988 = .text:0x00003988; // type:function size:0x34 +fn_1_39BC = .text:0x000039BC; // type:function size:0x20 +fn_1_39DC = .text:0x000039DC; // type:function size:0x16C +fn_1_3B48 = .text:0x00003B48; // type:function size:0x14 +fn_1_3B5C = .text:0x00003B5C; // type:function size:0x154 +fn_1_3CB0 = .text:0x00003CB0; // type:function size:0x88 +fn_1_3D38 = .text:0x00003D38; // type:function size:0x204 +fn_1_3F3C = .text:0x00003F3C; // type:function size:0x5F4 +fn_1_4530 = .text:0x00004530; // type:function size:0x188 +fn_1_46B8 = .text:0x000046B8; // type:function size:0x268 +fn_1_4920 = .text:0x00004920; // type:function size:0x10 +fn_1_4930 = .text:0x00004930; // type:function size:0x1C0 +fn_1_4AF0 = .text:0x00004AF0; // type:function size:0xB4 +fn_1_4BA4 = .text:0x00004BA4; // type:function size:0x94 +fn_1_4C38 = .text:0x00004C38; // type:function size:0x1C0 +fn_1_4DF8 = .text:0x00004DF8; // type:function size:0xE0 +fn_1_4ED8 = .text:0x00004ED8; // type:function size:0x268 +fn_1_5140 = .text:0x00005140; // type:function size:0x94 +fn_1_51D4 = .text:0x000051D4; // type:function size:0x94 +fn_1_5268 = .text:0x00005268; // type:function size:0x94 +fn_1_52FC = .text:0x000052FC; // type:function size:0x28 +fn_1_5324 = .text:0x00005324; // type:function size:0x32C +fn_1_5650 = .text:0x00005650; // type:function size:0x32C +fn_1_597C = .text:0x0000597C; // type:function size:0x154 +fn_1_5AD0 = .text:0x00005AD0; // type:function size:0x4E4 +fn_1_5FB4 = .text:0x00005FB4; // type:function size:0x150 +fn_1_6104 = .text:0x00006104; // type:function size:0x28 +fn_1_612C = .text:0x0000612C; // type:function size:0x64 +fn_1_6190 = .text:0x00006190; // type:function size:0x68 +fn_1_61F8 = .text:0x000061F8; // type:function size:0x380 +fn_1_6578 = .text:0x00006578; // type:function size:0x60 +fn_1_65D8 = .text:0x000065D8; // type:function size:0xB18 +fn_1_70F0 = .text:0x000070F0; // type:function size:0x3C +fn_1_712C = .text:0x0000712C; // type:function size:0x198 +fn_1_72C4 = .text:0x000072C4; // type:function size:0x1E4 +fn_1_74A8 = .text:0x000074A8; // type:function size:0x1C8 +fn_1_7670 = .text:0x00007670; // type:function size:0x368 +fn_1_79D8 = .text:0x000079D8; // type:function size:0x34 +fn_1_7A0C = .text:0x00007A0C; // type:function size:0x8CC +fn_1_82D8 = .text:0x000082D8; // type:function size:0x28 +fn_1_8300 = .text:0x00008300; // type:function size:0x1BC +fn_1_84BC = .text:0x000084BC; // type:function size:0x1C0 +fn_1_867C = .text:0x0000867C; // type:function size:0xB0 +fn_1_872C = .text:0x0000872C; // type:function size:0xF0 +fn_1_881C = .text:0x0000881C; // type:function size:0xB0 +fn_1_88CC = .text:0x000088CC; // type:function size:0xB0 +fn_1_897C = .text:0x0000897C; // type:function size:0xB0 +fn_1_8A2C = .text:0x00008A2C; // type:function size:0xF0 +fn_1_8B1C = .text:0x00008B1C; // type:function size:0xB0 +fn_1_8BCC = .text:0x00008BCC; // type:function size:0xB0 +fn_1_8C7C = .text:0x00008C7C; // type:function size:0x120 +fn_1_8D9C = .text:0x00008D9C; // type:function size:0x57C +fn_1_9318 = .text:0x00009318; // type:function size:0x3B8 +fn_1_96D0 = .text:0x000096D0; // type:function size:0x454 +fn_1_9B24 = .text:0x00009B24; // type:function size:0x474 +fn_1_9F98 = .text:0x00009F98; // type:function size:0x4A0 +fn_1_A438 = .text:0x0000A438; // type:function size:0x420 +fn_1_A858 = .text:0x0000A858; // type:function size:0x4 +fn_1_A85C = .text:0x0000A85C; // type:function size:0x184 +fn_1_A9E0 = .text:0x0000A9E0; // type:function size:0x3C +fn_1_AA1C = .text:0x0000AA1C; // type:function size:0x5C +fn_1_AA78 = .text:0x0000AA78; // type:function size:0x3C +fn_1_AAB4 = .text:0x0000AAB4; // type:function size:0x5C +fn_1_AB10 = .text:0x0000AB10; // type:function size:0x50 +fn_1_AB60 = .text:0x0000AB60; // type:function size:0x48 +fn_1_ABA8 = .text:0x0000ABA8; // type:function size:0x3C +fn_1_ABE4 = .text:0x0000ABE4; // type:function size:0x84 +fn_1_AC68 = .text:0x0000AC68; // type:function size:0x5C +fn_1_ACC4 = .text:0x0000ACC4; // type:function size:0x5C +fn_1_AD20 = .text:0x0000AD20; // type:function size:0x70 +fn_1_AD90 = .text:0x0000AD90; // type:function size:0x48 +fn_1_ADD8 = .text:0x0000ADD8; // type:function size:0x3C +fn_1_AE14 = .text:0x0000AE14; // type:function size:0x5C +fn_1_AE70 = .text:0x0000AE70; // type:function size:0xD4 +fn_1_AF44 = .text:0x0000AF44; // type:function size:0x248 +fn_1_B18C = .text:0x0000B18C; // type:function size:0x30 +fn_1_B1BC = .text:0x0000B1BC; // type:function size:0x8C +fn_1_B248 = .text:0x0000B248; // type:function size:0x20 +fn_1_B268 = .text:0x0000B268; // type:function size:0x180 +fn_1_B3E8 = .text:0x0000B3E8; // type:function size:0x104 +fn_1_B4EC = .text:0x0000B4EC; // type:function size:0x2EC +fn_1_B7D8 = .text:0x0000B7D8; // type:function size:0xF0 +fn_1_B8C8 = .text:0x0000B8C8; // type:function size:0x348 +fn_1_BC10 = .text:0x0000BC10; // type:function size:0xB0 +fn_1_BCC0 = .text:0x0000BCC0; // type:function size:0xF0 +fn_1_BDB0 = .text:0x0000BDB0; // type:function size:0xC8 +fn_1_BE78 = .text:0x0000BE78; // type:function size:0x3C8 +fn_1_C240 = .text:0x0000C240; // type:function size:0x3C8 +fn_1_C608 = .text:0x0000C608; // type:function size:0x3B4 +fn_1_C9BC = .text:0x0000C9BC; // type:function size:0x35C +fn_1_CD18 = .text:0x0000CD18; // type:function size:0x31C +fn_1_D034 = .text:0x0000D034; // type:function size:0x384 +fn_1_D3B8 = .text:0x0000D3B8; // type:function size:0x394 +fn_1_D74C = .text:0x0000D74C; // type:function size:0x1DC +fn_1_D928 = .text:0x0000D928; // type:function size:0x3BC +fn_1_DCE4 = .text:0x0000DCE4; // type:function size:0x1D8 +fn_1_DEBC = .text:0x0000DEBC; // type:function size:0x3E4 +fn_1_E2A0 = .text:0x0000E2A0; // type:function size:0x2F0 +fn_1_E590 = .text:0x0000E590; // type:function size:0x9C +fn_1_E62C = .text:0x0000E62C; // type:function size:0x310 +fn_1_E93C = .text:0x0000E93C; // type:function size:0x5C +fn_1_E998 = .text:0x0000E998; // type:function size:0x104 +fn_1_EA9C = .text:0x0000EA9C; // type:function size:0x94 +fn_1_EB30 = .text:0x0000EB30; // type:function size:0xD8 +fn_1_EC08 = .text:0x0000EC08; // type:function size:0x1C4 +fn_1_EDCC = .text:0x0000EDCC; // type:function size:0xCC +fn_1_EE98 = .text:0x0000EE98; // type:function size:0x12C +fn_1_EFC4 = .text:0x0000EFC4; // type:function size:0xEC +fn_1_F0B0 = .text:0x0000F0B0; // type:function size:0x40 +fn_1_F0F0 = .text:0x0000F0F0; // type:function size:0x4C +fn_1_F13C = .text:0x0000F13C; // type:function size:0x48 +fn_1_F184 = .text:0x0000F184; // type:function size:0x108 +fn_1_F28C = .text:0x0000F28C; // type:function size:0x144 +fn_1_F3D0 = .text:0x0000F3D0; // type:function size:0xBC +fn_1_F48C = .text:0x0000F48C; // type:function size:0x40 +fn_1_F4CC = .text:0x0000F4CC; // type:function size:0x30 +fn_1_F4FC = .text:0x0000F4FC; // type:function size:0x8C +fn_1_F588 = .text:0x0000F588; // type:function size:0xB0 +fn_1_F638 = .text:0x0000F638; // type:function size:0xAC +fn_1_F6E4 = .text:0x0000F6E4; // type:function size:0x30 +fn_1_F714 = .text:0x0000F714; // type:function size:0x8C +fn_1_F7A0 = .text:0x0000F7A0; // type:function size:0xF4 +fn_1_F894 = .text:0x0000F894; // type:function size:0x10 +fn_1_F8A4 = .text:0x0000F8A4; // type:function size:0xB90 +fn_1_10434 = .text:0x00010434; // type:function size:0x468 +fn_1_1089C = .text:0x0001089C; // type:function size:0x1EC +_prolog = .text:0x00010A88; // type:function size:0x54 scope:global +_epilog = .text:0x00010ADC; // type:function size:0x4C scope:global +fn_1_10B28 = .text:0x00010B28; // type:function size:0x40C +fn_1_10F34 = .text:0x00010F34; // type:function size:0x40C +fn_1_11340 = .text:0x00011340; // type:function size:0x28 +fn_1_11368 = .text:0x00011368; // type:function size:0x40 +fn_1_113A8 = .text:0x000113A8; // type:function size:0xC8 +fn_1_11470 = .text:0x00011470; // type:function size:0xC8 +fn_1_11538 = .text:0x00011538; // type:function size:0xD8 +fn_1_11610 = .text:0x00011610; // type:function size:0x50 +fn_1_11660 = .text:0x00011660; // type:function size:0x5C +fn_1_116BC = .text:0x000116BC; // type:function size:0x88 +fn_1_11744 = .text:0x00011744; // type:function size:0x74 +fn_1_117B8 = .text:0x000117B8; // type:function size:0x94 +fn_1_1184C = .text:0x0001184C; // type:function size:0x3C +fn_1_11888 = .text:0x00011888; // type:function size:0x110 +fn_1_11998 = .text:0x00011998; // type:function size:0x178 +fn_1_11B10 = .text:0x00011B10; // type:function size:0x1C8 +fn_1_11CD8 = .text:0x00011CD8; // type:function size:0x7B4 +fn_1_1248C = .text:0x0001248C; // type:function size:0x4C4 +fn_1_12950 = .text:0x00012950; // type:function size:0x60 +fn_1_129B0 = .text:0x000129B0; // type:function size:0x64 +fn_1_12A14 = .text:0x00012A14; // type:function size:0x64 +fn_1_12A78 = .text:0x00012A78; // type:function size:0x3C +fn_1_12AB4 = .text:0x00012AB4; // type:function size:0x44 +fn_1_12AF8 = .text:0x00012AF8; // type:function size:0x314 +fn_1_12E0C = .text:0x00012E0C; // type:function size:0x314 +fn_1_13120 = .text:0x00013120; // type:function size:0x27C +fn_1_1339C = .text:0x0001339C; // type:function size:0x2B4 +fn_1_13650 = .text:0x00013650; // type:function size:0x530 +fn_1_13B80 = .text:0x00013B80; // type:function size:0x454 +fn_1_13FD4 = .text:0x00013FD4; // type:function size:0x48C +fn_1_14460 = .text:0x00014460; // type:function size:0x71C +fn_1_14B7C = .text:0x00014B7C; // type:function size:0x4C4 +fn_1_15040 = .text:0x00015040; // type:function size:0x4FC +fn_1_1553C = .text:0x0001553C; // type:function size:0x78C +fn_1_15CC8 = .text:0x00015CC8; // type:function size:0x6C +fn_1_15D34 = .text:0x00015D34; // type:function size:0x68 +fn_1_15D9C = .text:0x00015D9C; // type:function size:0x10 +fn_1_15DAC = .text:0x00015DAC; // type:function size:0xC +fn_1_15DB8 = .text:0x00015DB8; // type:function size:0x8 +fn_1_15DC0 = .text:0x00015DC0; // type:function size:0x48 +fn_1_15E08 = .text:0x00015E08; // type:function size:0x344 +fn_1_1614C = .text:0x0001614C; // type:function size:0x190 +fn_1_162DC = .text:0x000162DC; // type:function size:0x64 +fn_1_16340 = .text:0x00016340; // type:function size:0x4 +fn_1_16344 = .text:0x00016344; // type:function size:0x164 +fn_1_164A8 = .text:0x000164A8; // type:function size:0x15C +fn_1_16604 = .text:0x00016604; // type:function size:0x190 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x48 +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x78 +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x78 +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC8 +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x78 +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x14 data:4byte +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x30 data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x30 data:4byte +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:4byte +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 data:4byte +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:4byte +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:4byte +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x20 data:4byte +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:4byte +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x20 data:4byte +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:4byte +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x30 data:4byte +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x10 data:4byte +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x8 data:4byte +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0xC data:4byte +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:4byte +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:4byte +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x8 data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:4byte +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0xC data:4byte +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x8 data:4byte +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x8 data:4byte +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x30 data:4byte +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x18 data:4byte +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 data:float +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 data:double +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xA0 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x1B data:string +lbl_1_data_C7 = .data:0x000000C7; // type:object size:0x22 data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x1A data:string +lbl_1_data_103 = .data:0x00000103; // type:object size:0x1A data:string +lbl_1_data_11D = .data:0x0000011D; // type:object size:0xF +lbl_1_data_12C = .data:0x0000012C; // type:object size:0x4 data:4byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0x16 data:string +lbl_1_data_146 = .data:0x00000146; // type:object size:0x13 data:string +lbl_1_data_159 = .data:0x00000159; // type:object size:0xE data:string +lbl_1_data_167 = .data:0x00000167; // type:object size:0xE data:string +lbl_1_data_175 = .data:0x00000175; // type:object size:0x13 +lbl_1_data_188 = .data:0x00000188; // type:object size:0x4 data:float +lbl_1_data_18C = .data:0x0000018C; // type:object size:0x14 data:string +jumptable_1_data_1A0 = .data:0x000001A0; // type:object size:0x20 scope:local +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x14 +jumptable_1_data_1D4 = .data:0x000001D4; // type:object size:0x30 scope:local +lbl_1_data_204 = .data:0x00000204; // type:object size:0x78 +lbl_1_data_27C = .data:0x0000027C; // type:object size:0x90 +lbl_1_data_30C = .data:0x0000030C; // type:object size:0x18 +jumptable_1_data_324 = .data:0x00000324; // type:object size:0x2C scope:local +lbl_1_data_350 = .data:0x00000350; // type:object size:0x10 data:string +lbl_1_data_360 = .data:0x00000360; // type:object size:0x10 data:string +lbl_1_data_370 = .data:0x00000370; // type:object size:0x10 data:string +lbl_1_data_380 = .data:0x00000380; // type:object size:0x10 data:string +lbl_1_data_390 = .data:0x00000390; // type:object size:0x10 data:string +lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x10 data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x10 data:string +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x10 data:string +lbl_1_data_3D0 = .data:0x000003D0; // type:object size:0x20 +lbl_1_data_3F0 = .data:0x000003F0; // type:object size:0x40 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x18 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x18 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x18 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0xE4 data:4byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x4 data:float +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x4 data:float +lbl_1_bss_154 = .bss:0x00000154; // type:object size:0x4 data:float +lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x4 data:float +lbl_1_bss_15C = .bss:0x0000015C; // type:object size:0x4 data:float +lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x7C data:4byte +lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0x4E0 data:4byte +lbl_1_bss_6BC = .bss:0x000006BC; // type:object size:0x218 data:4byte +lbl_1_bss_8D4 = .bss:0x000008D4; // type:object size:0x28 data:4byte +lbl_1_bss_8FC = .bss:0x000008FC; // type:object size:0x24 data:4byte +lbl_1_bss_920 = .bss:0x00000920; // type:object size:0x24 data:4byte +lbl_1_bss_944 = .bss:0x00000944; // type:object size:0x24 data:4byte +lbl_1_bss_968 = .bss:0x00000968; // type:object size:0x40 data:4byte diff --git a/config/GMPP01_00/rels/m438Dll/splits.txt b/config/GMPP01_00/rels/m438Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m438Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m438Dll/symbols.txt b/config/GMPP01_00/rels/m438Dll/symbols.txt new file mode 100644 index 00000000..8bd76a83 --- /dev/null +++ b/config/GMPP01_00/rels/m438Dll/symbols.txt @@ -0,0 +1,458 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x43C +fn_1_4DC = .text:0x000004DC; // type:function size:0x20 +fn_1_4FC = .text:0x000004FC; // type:function size:0x478 +fn_1_974 = .text:0x00000974; // type:function size:0x7F4 +fn_1_1168 = .text:0x00001168; // type:function size:0x90 +fn_1_11F8 = .text:0x000011F8; // type:function size:0x19C +fn_1_1394 = .text:0x00001394; // type:function size:0x9C0 +fn_1_1D54 = .text:0x00001D54; // type:function size:0x1AC +fn_1_1F00 = .text:0x00001F00; // type:function size:0x164 +fn_1_2064 = .text:0x00002064; // type:function size:0x4F4 +fn_1_2558 = .text:0x00002558; // type:function size:0xA0 +fn_1_25F8 = .text:0x000025F8; // type:function size:0x2B8 +fn_1_28B0 = .text:0x000028B0; // type:function size:0x28 +fn_1_28D8 = .text:0x000028D8; // type:function size:0x80 +fn_1_2958 = .text:0x00002958; // type:function size:0x3EC +fn_1_2D44 = .text:0x00002D44; // type:function size:0xFC +fn_1_2E40 = .text:0x00002E40; // type:function size:0x770 +fn_1_35B0 = .text:0x000035B0; // type:function size:0x4 +fn_1_35B4 = .text:0x000035B4; // type:function size:0xDB4 +fn_1_4368 = .text:0x00004368; // type:function size:0x3B0 +fn_1_4718 = .text:0x00004718; // type:function size:0x260 +fn_1_4978 = .text:0x00004978; // type:function size:0x5CC +fn_1_4F44 = .text:0x00004F44; // type:function size:0xDFC +fn_1_5D40 = .text:0x00005D40; // type:function size:0x570 +fn_1_62B0 = .text:0x000062B0; // type:function size:0xF4 +fn_1_63A4 = .text:0x000063A4; // type:function size:0x68C +fn_1_6A30 = .text:0x00006A30; // type:function size:0x8C4 +fn_1_72F4 = .text:0x000072F4; // type:function size:0x558 +fn_1_784C = .text:0x0000784C; // type:function size:0x300 +fn_1_7B4C = .text:0x00007B4C; // type:function size:0x64 +fn_1_7BB0 = .text:0x00007BB0; // type:function size:0x40 +fn_1_7BF0 = .text:0x00007BF0; // type:function size:0xA0 +fn_1_7C90 = .text:0x00007C90; // type:function size:0x94 +fn_1_7D24 = .text:0x00007D24; // type:function size:0x84 +fn_1_7DA8 = .text:0x00007DA8; // type:function size:0x24 +fn_1_7DCC = .text:0x00007DCC; // type:function size:0x104 +fn_1_7ED0 = .text:0x00007ED0; // type:function size:0x168 +fn_1_8038 = .text:0x00008038; // type:function size:0x120 +fn_1_8158 = .text:0x00008158; // type:function size:0x39C +fn_1_84F4 = .text:0x000084F4; // type:function size:0x250 +fn_1_8744 = .text:0x00008744; // type:function size:0x78 +fn_1_87BC = .text:0x000087BC; // type:function size:0x11C +fn_1_88D8 = .text:0x000088D8; // type:function size:0x78 +fn_1_8950 = .text:0x00008950; // type:function size:0x2D8 +fn_1_8C28 = .text:0x00008C28; // type:function size:0x2B8 +fn_1_8EE0 = .text:0x00008EE0; // type:function size:0x154 +fn_1_9034 = .text:0x00009034; // type:function size:0x3E0 +fn_1_9414 = .text:0x00009414; // type:function size:0x214 +fn_1_9628 = .text:0x00009628; // type:function size:0x198 +fn_1_97C0 = .text:0x000097C0; // type:function size:0xD8 +fn_1_9898 = .text:0x00009898; // type:function size:0xBC +fn_1_9954 = .text:0x00009954; // type:function size:0x33C +fn_1_9C90 = .text:0x00009C90; // type:function size:0x4B0 +fn_1_A140 = .text:0x0000A140; // type:function size:0x4C0 +fn_1_A600 = .text:0x0000A600; // type:function size:0x7C +fn_1_A67C = .text:0x0000A67C; // type:function size:0x4 +fn_1_A680 = .text:0x0000A680; // type:function size:0x270 +fn_1_A8F0 = .text:0x0000A8F0; // type:function size:0x51C +fn_1_AE0C = .text:0x0000AE0C; // type:function size:0x628 +fn_1_B434 = .text:0x0000B434; // type:function size:0x98 +fn_1_B4CC = .text:0x0000B4CC; // type:function size:0x70 +fn_1_B53C = .text:0x0000B53C; // type:function size:0x4 +fn_1_B540 = .text:0x0000B540; // type:function size:0x9D4 +fn_1_BF14 = .text:0x0000BF14; // type:function size:0x844 +fn_1_C758 = .text:0x0000C758; // type:function size:0x184 +fn_1_C8DC = .text:0x0000C8DC; // type:function size:0x1C8 +fn_1_CAA4 = .text:0x0000CAA4; // type:function size:0x94C +fn_1_D3F0 = .text:0x0000D3F0; // type:function size:0x180 +fn_1_D570 = .text:0x0000D570; // type:function size:0x4E8 +fn_1_DA58 = .text:0x0000DA58; // type:function size:0x43C +fn_1_DE94 = .text:0x0000DE94; // type:function size:0xD0 +fn_1_DF64 = .text:0x0000DF64; // type:function size:0xC4 +fn_1_E028 = .text:0x0000E028; // type:function size:0x454 +fn_1_E47C = .text:0x0000E47C; // type:function size:0x11C +fn_1_E598 = .text:0x0000E598; // type:function size:0xB4 +fn_1_E64C = .text:0x0000E64C; // type:function size:0x138 +fn_1_E784 = .text:0x0000E784; // type:function size:0xDA8 +fn_1_F52C = .text:0x0000F52C; // type:function size:0x12C +fn_1_F658 = .text:0x0000F658; // type:function size:0x1C +fn_1_F674 = .text:0x0000F674; // type:function size:0x2C +fn_1_F6A0 = .text:0x0000F6A0; // type:function size:0x1C +fn_1_F6BC = .text:0x0000F6BC; // type:function size:0x184 +fn_1_F840 = .text:0x0000F840; // type:function size:0xA0 +fn_1_F8E0 = .text:0x0000F8E0; // type:function size:0xA8 +fn_1_F988 = .text:0x0000F988; // type:function size:0x8C +fn_1_FA14 = .text:0x0000FA14; // type:function size:0x98 +fn_1_FAAC = .text:0x0000FAAC; // type:function size:0x288 +fn_1_FD34 = .text:0x0000FD34; // type:function size:0x518 +fn_1_1024C = .text:0x0001024C; // type:function size:0x564 +fn_1_107B0 = .text:0x000107B0; // type:function size:0x128 +fn_1_108D8 = .text:0x000108D8; // type:function size:0x2C +fn_1_10904 = .text:0x00010904; // type:function size:0x3A8 +fn_1_10CAC = .text:0x00010CAC; // type:function size:0x254 +fn_1_10F00 = .text:0x00010F00; // type:function size:0x80 +fn_1_10F80 = .text:0x00010F80; // type:function size:0x8C +fn_1_1100C = .text:0x0001100C; // type:function size:0x9C +fn_1_110A8 = .text:0x000110A8; // type:function size:0x5A4 +fn_1_1164C = .text:0x0001164C; // type:function size:0x238 +fn_1_11884 = .text:0x00011884; // type:function size:0x6C +fn_1_118F0 = .text:0x000118F0; // type:function size:0x70 +fn_1_11960 = .text:0x00011960; // type:function size:0x74 +fn_1_119D4 = .text:0x000119D4; // type:function size:0x84 +fn_1_11A58 = .text:0x00011A58; // type:function size:0x88 +fn_1_11AE0 = .text:0x00011AE0; // type:function size:0x8C +fn_1_11B6C = .text:0x00011B6C; // type:function size:0x70 +fn_1_11BDC = .text:0x00011BDC; // type:function size:0x74 +fn_1_11C50 = .text:0x00011C50; // type:function size:0x6C +fn_1_11CBC = .text:0x00011CBC; // type:function size:0x70 +fn_1_11D2C = .text:0x00011D2C; // type:function size:0x74 +fn_1_11DA0 = .text:0x00011DA0; // type:function size:0x6C +fn_1_11E0C = .text:0x00011E0C; // type:function size:0x70 +fn_1_11E7C = .text:0x00011E7C; // type:function size:0x74 +fn_1_11EF0 = .text:0x00011EF0; // type:function size:0x6C +fn_1_11F5C = .text:0x00011F5C; // type:function size:0x70 +fn_1_11FCC = .text:0x00011FCC; // type:function size:0x74 +fn_1_12040 = .text:0x00012040; // type:function size:0x44 +fn_1_12084 = .text:0x00012084; // type:function size:0x70 +fn_1_120F4 = .text:0x000120F4; // type:function size:0x74 +fn_1_12168 = .text:0x00012168; // type:function size:0x44 +fn_1_121AC = .text:0x000121AC; // type:function size:0x70 +fn_1_1221C = .text:0x0001221C; // type:function size:0x74 +fn_1_12290 = .text:0x00012290; // type:function size:0x5C +fn_1_122EC = .text:0x000122EC; // type:function size:0x80 +fn_1_1236C = .text:0x0001236C; // type:function size:0x74 +fn_1_123E0 = .text:0x000123E0; // type:function size:0x78 +fn_1_12458 = .text:0x00012458; // type:function size:0x68 +fn_1_124C0 = .text:0x000124C0; // type:function size:0x6C +fn_1_1252C = .text:0x0001252C; // type:function size:0x68 +fn_1_12594 = .text:0x00012594; // type:function size:0x6C +fn_1_12600 = .text:0x00012600; // type:function size:0x68 +fn_1_12668 = .text:0x00012668; // type:function size:0x6C +fn_1_126D4 = .text:0x000126D4; // type:function size:0x6C +fn_1_12740 = .text:0x00012740; // type:function size:0x78 +fn_1_127B8 = .text:0x000127B8; // type:function size:0x98 +fn_1_12850 = .text:0x00012850; // type:function size:0x6C +fn_1_128BC = .text:0x000128BC; // type:function size:0x78 +fn_1_12934 = .text:0x00012934; // type:function size:0x98 +fn_1_129CC = .text:0x000129CC; // type:function size:0x70 +fn_1_12A3C = .text:0x00012A3C; // type:function size:0x78 +fn_1_12AB4 = .text:0x00012AB4; // type:function size:0x98 +fn_1_12B4C = .text:0x00012B4C; // type:function size:0x40 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x10 data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 data:double +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x30 data:4byte +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x10 data:byte +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC +lbl_1_data_40 = .data:0x00000040; // type:object size:0x24 +lbl_1_data_64 = .data:0x00000064; // type:object size:0x4 data:4byte +lbl_1_data_68 = .data:0x00000068; // type:object size:0x420 +lbl_1_data_488 = .data:0x00000488; // type:object size:0x2C +lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x30 +jumptable_1_data_4E4 = .data:0x000004E4; // type:object size:0x2C scope:local +lbl_1_data_514 = .data:0x00000514; // type:object size:0xC +lbl_1_data_520 = .data:0x00000520; // type:object size:0x64 +lbl_1_data_584 = .data:0x00000584; // type:object size:0x64 +lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0x24 +lbl_1_data_60C = .data:0x0000060C; // type:object size:0x6C +lbl_1_data_678 = .data:0x00000678; // type:object size:0x24 +lbl_1_data_69C = .data:0x0000069C; // type:object size:0x6C +lbl_1_data_708 = .data:0x00000708; // type:object size:0x24 +lbl_1_data_72C = .data:0x0000072C; // type:object size:0x24 +lbl_1_data_750 = .data:0x00000750; // type:object size:0x7 data:string +lbl_1_data_757 = .data:0x00000757; // type:object size:0x7 data:string +lbl_1_data_75E = .data:0x0000075E; // type:object size:0x7 data:string +lbl_1_data_765 = .data:0x00000765; // type:object size:0x7 data:string +lbl_1_data_76C = .data:0x0000076C; // type:object size:0x7 data:string +lbl_1_data_773 = .data:0x00000773; // type:object size:0x7 data:string +lbl_1_data_77A = .data:0x0000077A; // type:object size:0x7 data:string +lbl_1_data_781 = .data:0x00000781; // type:object size:0x7 data:string +lbl_1_data_788 = .data:0x00000788; // type:object size:0x7 data:string +lbl_1_data_78F = .data:0x0000078F; // type:object size:0x8 data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x8 data:string +lbl_1_data_79F = .data:0x0000079F; // type:object size:0x8 data:string +lbl_1_data_7A7 = .data:0x000007A7; // type:object size:0x8 data:string +lbl_1_data_7AF = .data:0x000007AF; // type:object size:0x8 data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x8 data:string +lbl_1_data_7BF = .data:0x000007BF; // type:object size:0x8 data:string +lbl_1_data_7C7 = .data:0x000007C7; // type:object size:0x8 data:string +lbl_1_data_7CF = .data:0x000007CF; // type:object size:0x8 data:string +lbl_1_data_7D7 = .data:0x000007D7; // type:object size:0x8 data:string +lbl_1_data_7DF = .data:0x000007DF; // type:object size:0x8 data:string +lbl_1_data_7E7 = .data:0x000007E7; // type:object size:0x8 data:string +lbl_1_data_7EF = .data:0x000007EF; // type:object size:0x8 data:string +lbl_1_data_7F7 = .data:0x000007F7; // type:object size:0x8 data:string +lbl_1_data_7FF = .data:0x000007FF; // type:object size:0x8 data:string +lbl_1_data_807 = .data:0x00000807; // type:object size:0x8 data:string +lbl_1_data_80F = .data:0x0000080F; // type:object size:0x8 data:string +lbl_1_data_817 = .data:0x00000817; // type:object size:0x8 data:string +lbl_1_data_81F = .data:0x0000081F; // type:object size:0x8 data:string +lbl_1_data_827 = .data:0x00000827; // type:object size:0x8 data:string +lbl_1_data_82F = .data:0x0000082F; // type:object size:0x8 data:string +lbl_1_data_837 = .data:0x00000837; // type:object size:0x8 data:string +lbl_1_data_83F = .data:0x0000083F; // type:object size:0x9 +lbl_1_data_848 = .data:0x00000848; // type:object size:0x80 +lbl_1_data_8C8 = .data:0x000008C8; // type:object size:0x9 data:string +lbl_1_data_8D1 = .data:0x000008D1; // type:object size:0x7 data:string +lbl_1_data_8D8 = .data:0x000008D8; // type:object size:0x60 +lbl_1_data_938 = .data:0x00000938; // type:object size:0xB data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x288 +lbl_1_bss_294 = .bss:0x00000294; // type:object size:0x4 data:4byte +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x900 data:float +lbl_1_bss_B98 = .bss:0x00000B98; // type:object size:0xC data:4byte +lbl_1_bss_BA4 = .bss:0x00000BA4; // type:object size:0x200 +lbl_1_bss_DA4 = .bss:0x00000DA4; // type:object size:0x4 data:4byte +lbl_1_bss_DA8 = .bss:0x00000DA8; // type:object size:0x2 data:2byte +lbl_1_bss_DAA = .bss:0x00000DAA; // type:object size:0x8 data:2byte +lbl_1_bss_DB2 = .bss:0x00000DB2; // type:object size:0x2 data:2byte +lbl_1_bss_DB4 = .bss:0x00000DB4; // type:object size:0x2 data:2byte +lbl_1_bss_DB6 = .bss:0x00000DB6; // type:object size:0x2 data:2byte +lbl_1_bss_DB8 = .bss:0x00000DB8; // type:object size:0x2 data:2byte +lbl_1_bss_DBA = .bss:0x00000DBA; // type:object size:0x2 data:2byte +lbl_1_bss_DBC = .bss:0x00000DBC; // type:object size:0x4 data:4byte +lbl_1_bss_DC0 = .bss:0x00000DC0; // type:object size:0x4 data:4byte +lbl_1_bss_DC4 = .bss:0x00000DC4; // type:object size:0x10 +lbl_1_bss_DD4 = .bss:0x00000DD4; // type:object size:0x4 data:4byte +lbl_1_bss_DD8 = .bss:0x00000DD8; // type:object size:0x4 data:4byte +lbl_1_bss_DDC = .bss:0x00000DDC; // type:object size:0x4 data:4byte +lbl_1_bss_DE0 = .bss:0x00000DE0; // type:object size:0x4 data:4byte +lbl_1_bss_DE4 = .bss:0x00000DE4; // type:object size:0x48 data:4byte +lbl_1_bss_E2C = .bss:0x00000E2C; // type:object size:0x4 data:4byte +lbl_1_bss_E30 = .bss:0x00000E30; // type:object size:0x4 data:4byte +lbl_1_bss_E34 = .bss:0x00000E34; // type:object size:0x258 data:4byte +lbl_1_bss_108C = .bss:0x0000108C; // type:object size:0x18 data:4byte diff --git a/config/GMPP01_00/rels/m439Dll/splits.txt b/config/GMPP01_00/rels/m439Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m439Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m439Dll/symbols.txt b/config/GMPP01_00/rels/m439Dll/symbols.txt new file mode 100644 index 00000000..c7cb102e --- /dev/null +++ b/config/GMPP01_00/rels/m439Dll/symbols.txt @@ -0,0 +1,322 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x2C4 +fn_1_364 = .text:0x00000364; // type:function size:0x10 +fn_1_374 = .text:0x00000374; // type:function size:0x10 +fn_1_384 = .text:0x00000384; // type:function size:0x84 +fn_1_408 = .text:0x00000408; // type:function size:0x5B4 +fn_1_9BC = .text:0x000009BC; // type:function size:0x5C +fn_1_A18 = .text:0x00000A18; // type:function size:0x108 +fn_1_B20 = .text:0x00000B20; // type:function size:0x5C +fn_1_B7C = .text:0x00000B7C; // type:function size:0x84 +fn_1_C00 = .text:0x00000C00; // type:function size:0x10C +fn_1_D0C = .text:0x00000D0C; // type:function size:0x318 +fn_1_1024 = .text:0x00001024; // type:function size:0x104 +fn_1_1128 = .text:0x00001128; // type:function size:0x588 +fn_1_16B0 = .text:0x000016B0; // type:function size:0x5A4 +fn_1_1C54 = .text:0x00001C54; // type:function size:0x2E8 +fn_1_1F3C = .text:0x00001F3C; // type:function size:0x248 +fn_1_2184 = .text:0x00002184; // type:function size:0xB8 +fn_1_223C = .text:0x0000223C; // type:function size:0x978 +fn_1_2BB4 = .text:0x00002BB4; // type:function size:0xD0 +fn_1_2C84 = .text:0x00002C84; // type:function size:0xF98 +fn_1_3C1C = .text:0x00003C1C; // type:function size:0x90C +fn_1_4528 = .text:0x00004528; // type:function size:0x450 +fn_1_4978 = .text:0x00004978; // type:function size:0x50 +fn_1_49C8 = .text:0x000049C8; // type:function size:0x84 +fn_1_4A4C = .text:0x00004A4C; // type:function size:0x5C +fn_1_4AA8 = .text:0x00004AA8; // type:function size:0x218 +fn_1_4CC0 = .text:0x00004CC0; // type:function size:0x294 +fn_1_4F54 = .text:0x00004F54; // type:function size:0xC48 +fn_1_5B9C = .text:0x00005B9C; // type:function size:0x4 +fn_1_5BA0 = .text:0x00005BA0; // type:function size:0x10C +fn_1_5CAC = .text:0x00005CAC; // type:function size:0x4 +fn_1_5CB0 = .text:0x00005CB0; // type:function size:0x3B8 +fn_1_6068 = .text:0x00006068; // type:function size:0xB8 +fn_1_6120 = .text:0x00006120; // type:function size:0x1C0 +fn_1_62E0 = .text:0x000062E0; // type:function size:0x48 +fn_1_6328 = .text:0x00006328; // type:function size:0x1F8 +fn_1_6520 = .text:0x00006520; // type:function size:0xFC +fn_1_661C = .text:0x0000661C; // type:function size:0xA0 +fn_1_66BC = .text:0x000066BC; // type:function size:0xF8 +fn_1_67B4 = .text:0x000067B4; // type:function size:0x454 +fn_1_6C08 = .text:0x00006C08; // type:function size:0xC8 +fn_1_6CD0 = .text:0x00006CD0; // type:function size:0x11C +fn_1_6DEC = .text:0x00006DEC; // type:function size:0x3A4 +fn_1_7190 = .text:0x00007190; // type:function size:0x5C +fn_1_71EC = .text:0x000071EC; // type:function size:0x208 +fn_1_73F4 = .text:0x000073F4; // type:function size:0x184 +fn_1_7578 = .text:0x00007578; // type:function size:0x26C +fn_1_77E4 = .text:0x000077E4; // type:function size:0x9A8 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0xC data:2byte +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x50 +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x1 data:byte +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x18 +lbl_1_data_18 = .data:0x00000018; // type:object size:0x18 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x8 +lbl_1_data_38 = .data:0x00000038; // type:object size:0x84 +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x84 +lbl_1_data_140 = .data:0x00000140; // type:object size:0x2C +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x90 +lbl_1_data_1FC = .data:0x000001FC; // type:object size:0x90 +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x30 +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0xA8 +lbl_1_data_364 = .data:0x00000364; // type:object size:0xA8 +lbl_1_data_40C = .data:0x0000040C; // type:object size:0x38 +lbl_1_data_444 = .data:0x00000444; // type:object size:0xB4 +lbl_1_data_4F8 = .data:0x000004F8; // type:object size:0xB4 +lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x3C +lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0x18 +lbl_1_data_600 = .data:0x00000600; // type:object size:0x18 +lbl_1_data_618 = .data:0x00000618; // type:object size:0x8 +lbl_1_data_620 = .data:0x00000620; // type:object size:0xA8 +lbl_1_data_6C8 = .data:0x000006C8; // type:object size:0xA8 +lbl_1_data_770 = .data:0x00000770; // type:object size:0x38 +lbl_1_data_7A8 = .data:0x000007A8; // type:object size:0xD8 +lbl_1_data_880 = .data:0x00000880; // type:object size:0xD8 +lbl_1_data_958 = .data:0x00000958; // type:object size:0x48 +lbl_1_data_9A0 = .data:0x000009A0; // type:object size:0xC0 +lbl_1_data_A60 = .data:0x00000A60; // type:object size:0xC0 +lbl_1_data_B20 = .data:0x00000B20; // type:object size:0x40 +lbl_1_data_B60 = .data:0x00000B60; // type:object size:0xC0 +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xC0 +lbl_1_data_CE0 = .data:0x00000CE0; // type:object size:0x40 +lbl_1_data_D20 = .data:0x00000D20; // type:object size:0xA8 +lbl_1_data_DC8 = .data:0x00000DC8; // type:object size:0xA8 +lbl_1_data_E70 = .data:0x00000E70; // type:object size:0x38 +lbl_1_data_EA8 = .data:0x00000EA8; // type:object size:0x9C +lbl_1_data_F44 = .data:0x00000F44; // type:object size:0x9C +lbl_1_data_FE0 = .data:0x00000FE0; // type:object size:0x34 +lbl_1_data_1014 = .data:0x00001014; // type:object size:0x60 +lbl_1_data_1074 = .data:0x00001074; // type:object size:0x18 +lbl_1_data_108C = .data:0x0000108C; // type:object size:0x30 +lbl_1_data_10BC = .data:0x000010BC; // type:object size:0x204 +lbl_1_data_12C0 = .data:0x000012C0; // type:object size:0x204 +lbl_1_data_14C4 = .data:0x000014C4; // type:object size:0x204 +lbl_1_data_16C8 = .data:0x000016C8; // type:object size:0xC +lbl_1_data_16D4 = .data:0x000016D4; // type:object size:0x4 +lbl_1_data_16D8 = .data:0x000016D8; // type:object size:0x1D4 +lbl_1_data_18AC = .data:0x000018AC; // type:object size:0x1D4 +lbl_1_data_1A80 = .data:0x00001A80; // type:object size:0x1D4 +lbl_1_data_1C54 = .data:0x00001C54; // type:object size:0x120 +lbl_1_data_1D74 = .data:0x00001D74; // type:object size:0x120 +lbl_1_data_1E94 = .data:0x00001E94; // type:object size:0x120 +lbl_1_data_1FB4 = .data:0x00001FB4; // type:object size:0xF0 +lbl_1_data_20A4 = .data:0x000020A4; // type:object size:0xF0 +lbl_1_data_2194 = .data:0x00002194; // type:object size:0xF0 +lbl_1_data_2284 = .data:0x00002284; // type:object size:0x24 +lbl_1_data_22A8 = .data:0x000022A8; // type:object size:0xC +lbl_1_data_22B4 = .data:0x000022B4; // type:object size:0x174 +lbl_1_data_2428 = .data:0x00002428; // type:object size:0x174 +lbl_1_data_259C = .data:0x0000259C; // type:object size:0x174 +lbl_1_data_2710 = .data:0x00002710; // type:object size:0x144 +lbl_1_data_2854 = .data:0x00002854; // type:object size:0x144 +lbl_1_data_2998 = .data:0x00002998; // type:object size:0x144 +lbl_1_data_2ADC = .data:0x00002ADC; // type:object size:0x1A4 +lbl_1_data_2C80 = .data:0x00002C80; // type:object size:0x1A4 +lbl_1_data_2E24 = .data:0x00002E24; // type:object size:0x1A4 +lbl_1_data_2FC8 = .data:0x00002FC8; // type:object size:0x24 +lbl_1_data_2FEC = .data:0x00002FEC; // type:object size:0xC +lbl_1_data_2FF8 = .data:0x00002FF8; // type:object size:0x294 +lbl_1_data_328C = .data:0x0000328C; // type:object size:0x294 +lbl_1_data_3520 = .data:0x00003520; // type:object size:0x294 +lbl_1_data_37B4 = .data:0x000037B4; // type:object size:0xC +lbl_1_data_37C0 = .data:0x000037C0; // type:object size:0x4 +lbl_1_data_37C4 = .data:0x000037C4; // type:object size:0x198 +lbl_1_data_395C = .data:0x0000395C; // type:object size:0x198 +lbl_1_data_3AF4 = .data:0x00003AF4; // type:object size:0x198 +lbl_1_data_3C8C = .data:0x00003C8C; // type:object size:0x198 +lbl_1_data_3E24 = .data:0x00003E24; // type:object size:0x198 +lbl_1_data_3FBC = .data:0x00003FBC; // type:object size:0x198 +lbl_1_data_4154 = .data:0x00004154; // type:object size:0x18 +lbl_1_data_416C = .data:0x0000416C; // type:object size:0x8 +lbl_1_data_4174 = .data:0x00004174; // type:object size:0x210 +lbl_1_data_4384 = .data:0x00004384; // type:object size:0x210 +lbl_1_data_4594 = .data:0x00004594; // type:object size:0x210 +lbl_1_data_47A4 = .data:0x000047A4; // type:object size:0x210 +lbl_1_data_49B4 = .data:0x000049B4; // type:object size:0x210 +lbl_1_data_4BC4 = .data:0x00004BC4; // type:object size:0x210 +lbl_1_data_4DD4 = .data:0x00004DD4; // type:object size:0x18 +lbl_1_data_4DEC = .data:0x00004DEC; // type:object size:0x8 +lbl_1_data_4DF4 = .data:0x00004DF4; // type:object size:0x1D4 +lbl_1_data_4FC8 = .data:0x00004FC8; // type:object size:0x1D4 +lbl_1_data_519C = .data:0x0000519C; // type:object size:0x1D4 +lbl_1_data_5370 = .data:0x00005370; // type:object size:0x1D4 +lbl_1_data_5544 = .data:0x00005544; // type:object size:0x1D4 +lbl_1_data_5718 = .data:0x00005718; // type:object size:0x1D4 +lbl_1_data_58EC = .data:0x000058EC; // type:object size:0x18 +lbl_1_data_5904 = .data:0x00005904; // type:object size:0x8 +lbl_1_data_590C = .data:0x0000590C; // type:object size:0x18C +lbl_1_data_5A98 = .data:0x00005A98; // type:object size:0x18C +lbl_1_data_5C24 = .data:0x00005C24; // type:object size:0x18C +lbl_1_data_5DB0 = .data:0x00005DB0; // type:object size:0x168 +lbl_1_data_5F18 = .data:0x00005F18; // type:object size:0x168 +lbl_1_data_6080 = .data:0x00006080; // type:object size:0x168 +lbl_1_data_61E8 = .data:0x000061E8; // type:object size:0x18 +lbl_1_data_6200 = .data:0x00006200; // type:object size:0x8 +lbl_1_data_6208 = .data:0x00006208; // type:object size:0x174 +lbl_1_data_637C = .data:0x0000637C; // type:object size:0x174 +lbl_1_data_64F0 = .data:0x000064F0; // type:object size:0x174 +lbl_1_data_6664 = .data:0x00006664; // type:object size:0x15C +lbl_1_data_67C0 = .data:0x000067C0; // type:object size:0x15C +lbl_1_data_691C = .data:0x0000691C; // type:object size:0x15C +lbl_1_data_6A78 = .data:0x00006A78; // type:object size:0x18 +lbl_1_data_6A90 = .data:0x00006A90; // type:object size:0x8 +lbl_1_data_6A98 = .data:0x00006A98; // type:object size:0x18C +lbl_1_data_6C24 = .data:0x00006C24; // type:object size:0x18C +lbl_1_data_6DB0 = .data:0x00006DB0; // type:object size:0x18C +lbl_1_data_6F3C = .data:0x00006F3C; // type:object size:0x174 +lbl_1_data_70B0 = .data:0x000070B0; // type:object size:0x174 +lbl_1_data_7224 = .data:0x00007224; // type:object size:0x174 +lbl_1_data_7398 = .data:0x00007398; // type:object size:0x18 +lbl_1_data_73B0 = .data:0x000073B0; // type:object size:0x8 +lbl_1_data_73B8 = .data:0x000073B8; // type:object size:0x14 +lbl_1_data_73CC = .data:0x000073CC; // type:object size:0x28 +lbl_1_data_73F4 = .data:0x000073F4; // type:object size:0x28 +lbl_1_data_741C = .data:0x0000741C; // type:object size:0x70 data:float +lbl_1_data_748C = .data:0x0000748C; // type:object size:0x140 +lbl_1_data_75CC = .data:0x000075CC; // type:object size:0x14 +lbl_1_data_75E0 = .data:0x000075E0; // type:object size:0x10 data:4byte +lbl_1_data_75F0 = .data:0x000075F0; // type:object size:0xC data:float +lbl_1_data_75FC = .data:0x000075FC; // type:object size:0xC data:float +lbl_1_data_7608 = .data:0x00007608; // type:object size:0x4 +lbl_1_data_760C = .data:0x0000760C; // type:object size:0xC +lbl_1_data_7618 = .data:0x00007618; // type:object size:0xC +lbl_1_data_7624 = .data:0x00007624; // type:object size:0x24 +lbl_1_data_7648 = .data:0x00007648; // type:object size:0x4 data:4byte +lbl_1_data_764C = .data:0x0000764C; // type:object size:0x4 data:4byte +jumptable_1_data_7650 = .data:0x00007650; // type:object size:0x28 scope:local +lbl_1_data_7678 = .data:0x00007678; // type:object size:0x1C data:string +lbl_1_data_7694 = .data:0x00007694; // type:object size:0x1C +lbl_1_data_76B0 = .data:0x000076B0; // type:object size:0x58 +lbl_1_data_7708 = .data:0x00007708; // type:object size:0x30 +lbl_1_data_7738 = .data:0x00007738; // type:object size:0x5C +lbl_1_data_7794 = .data:0x00007794; // type:object size:0x4 +lbl_1_data_7798 = .data:0x00007798; // type:object size:0x4 data:4byte +lbl_1_data_779C = .data:0x0000779C; // type:object size:0x4 data:4byte +lbl_1_data_77A0 = .data:0x000077A0; // type:object size:0x28 +lbl_1_data_77C8 = .data:0x000077C8; // type:object size:0x70 +lbl_1_data_7838 = .data:0x00007838; // type:object size:0x1C +lbl_1_data_7854 = .data:0x00007854; // type:object size:0x6 data:string +lbl_1_data_785A = .data:0x0000785A; // type:object size:0x6 data:string +lbl_1_data_7860 = .data:0x00007860; // type:object size:0x8 data:string +lbl_1_data_7868 = .data:0x00007868; // type:object size:0x6 data:string +lbl_1_data_786E = .data:0x0000786E; // type:object size:0x8 data:string +lbl_1_data_7876 = .data:0x00007876; // type:object size:0x6 data:string +lbl_1_data_787C = .data:0x0000787C; // type:object size:0x6 data:string +lbl_1_data_7882 = .data:0x00007882; // type:object size:0x6 data:string +lbl_1_data_7888 = .data:0x00007888; // type:object size:0x6 data:string +lbl_1_data_788E = .data:0x0000788E; // type:object size:0x6 data:string +lbl_1_data_7894 = .data:0x00007894; // type:object size:0x6 data:string +lbl_1_data_789A = .data:0x0000789A; // type:object size:0x6 data:string +lbl_1_data_78A0 = .data:0x000078A0; // type:object size:0x20 +lbl_1_data_78C0 = .data:0x000078C0; // type:object size:0x30 +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x20 +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x2 data:2byte +lbl_1_bss_32 = .bss:0x00000032; // type:object size:0x2 data:2byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0xC data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x90 +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x24 +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x24 +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0xC +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x4 data:4byte +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x2 data:2byte +lbl_1_bss_12E = .bss:0x0000012E; // type:object size:0x2 data:2byte +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x2 data:2byte +lbl_1_bss_132 = .bss:0x00000132; // type:object size:0x8 data:2byte +lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x2 data:2byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x2 data:2byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x4 data:4byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x4 data:4byte +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x10 data:4byte +lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x8 data:4byte +lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x4 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x4 data:4byte +lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m440Dll/splits.txt b/config/GMPP01_00/rels/m440Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m440Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m440Dll/symbols.txt b/config/GMPP01_00/rels/m440Dll/symbols.txt new file mode 100644 index 00000000..2f3f212b --- /dev/null +++ b/config/GMPP01_00/rels/m440Dll/symbols.txt @@ -0,0 +1,293 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x324 +fn_1_3C4 = .text:0x000003C4; // type:function size:0x70 +fn_1_434 = .text:0x00000434; // type:function size:0x70 +fn_1_4A4 = .text:0x000004A4; // type:function size:0x224 +fn_1_6C8 = .text:0x000006C8; // type:function size:0x228 +fn_1_8F0 = .text:0x000008F0; // type:function size:0x1F0 +fn_1_AE0 = .text:0x00000AE0; // type:function size:0x330 +fn_1_E10 = .text:0x00000E10; // type:function size:0x324 +fn_1_1134 = .text:0x00001134; // type:function size:0x5A0 +fn_1_16D4 = .text:0x000016D4; // type:function size:0x30 +fn_1_1704 = .text:0x00001704; // type:function size:0x60 +fn_1_1764 = .text:0x00001764; // type:function size:0x64 +fn_1_17C8 = .text:0x000017C8; // type:function size:0x28 +fn_1_17F0 = .text:0x000017F0; // type:function size:0x28 +fn_1_1818 = .text:0x00001818; // type:function size:0x74 +fn_1_188C = .text:0x0000188C; // type:function size:0x50 +fn_1_18DC = .text:0x000018DC; // type:function size:0x74 +fn_1_1950 = .text:0x00001950; // type:function size:0x5C +fn_1_19AC = .text:0x000019AC; // type:function size:0x2FC +fn_1_1CA8 = .text:0x00001CA8; // type:function size:0xA8 +fn_1_1D50 = .text:0x00001D50; // type:function size:0x4EC +fn_1_223C = .text:0x0000223C; // type:function size:0x1A4 +fn_1_23E0 = .text:0x000023E0; // type:function size:0x44 +fn_1_2424 = .text:0x00002424; // type:function size:0x48 +fn_1_246C = .text:0x0000246C; // type:function size:0x604 +fn_1_2A70 = .text:0x00002A70; // type:function size:0x40 +fn_1_2AB0 = .text:0x00002AB0; // type:function size:0x50 +fn_1_2B00 = .text:0x00002B00; // type:function size:0x1A4 +fn_1_2CA4 = .text:0x00002CA4; // type:function size:0x80 +fn_1_2D24 = .text:0x00002D24; // type:function size:0x6AC +fn_1_33D0 = .text:0x000033D0; // type:function size:0xA04 +fn_1_3DD4 = .text:0x00003DD4; // type:function size:0x780 +fn_1_4554 = .text:0x00004554; // type:function size:0x64 +fn_1_45B8 = .text:0x000045B8; // type:function size:0xA4 +fn_1_465C = .text:0x0000465C; // type:function size:0x80 +fn_1_46DC = .text:0x000046DC; // type:function size:0x340 +fn_1_4A1C = .text:0x00004A1C; // type:function size:0x124 +fn_1_4B40 = .text:0x00004B40; // type:function size:0x2BC +fn_1_4DFC = .text:0x00004DFC; // type:function size:0x2C +fn_1_4E28 = .text:0x00004E28; // type:function size:0x28 +fn_1_4E50 = .text:0x00004E50; // type:function size:0x54 +fn_1_4EA4 = .text:0x00004EA4; // type:function size:0x44 +fn_1_4EE8 = .text:0x00004EE8; // type:function size:0x48 +fn_1_4F30 = .text:0x00004F30; // type:function size:0xDC +fn_1_500C = .text:0x0000500C; // type:function size:0x7A4 +fn_1_57B0 = .text:0x000057B0; // type:function size:0x478 +fn_1_5C28 = .text:0x00005C28; // type:function size:0x928 +fn_1_6550 = .text:0x00006550; // type:function size:0x604 +fn_1_6B54 = .text:0x00006B54; // type:function size:0x6A4 +fn_1_71F8 = .text:0x000071F8; // type:function size:0x738 +fn_1_7930 = .text:0x00007930; // type:function size:0x42C +fn_1_7D5C = .text:0x00007D5C; // type:function size:0x30C +fn_1_8068 = .text:0x00008068; // type:function size:0x404 +fn_1_846C = .text:0x0000846C; // type:function size:0x654 +fn_1_8AC0 = .text:0x00008AC0; // type:function size:0x258 +fn_1_8D18 = .text:0x00008D18; // type:function size:0x488 +fn_1_91A0 = .text:0x000091A0; // type:function size:0xD8 +fn_1_9278 = .text:0x00009278; // type:function size:0xC8 +fn_1_9340 = .text:0x00009340; // type:function size:0x7C +fn_1_93BC = .text:0x000093BC; // type:function size:0x10 +fn_1_93CC = .text:0x000093CC; // type:function size:0x5C +fn_1_9428 = .text:0x00009428; // type:function size:0x140 +fn_1_9568 = .text:0x00009568; // type:function size:0x544 +fn_1_9AAC = .text:0x00009AAC; // type:function size:0x60 +fn_1_9B0C = .text:0x00009B0C; // type:function size:0x2C +fn_1_9B38 = .text:0x00009B38; // type:function size:0x58 +fn_1_9B90 = .text:0x00009B90; // type:function size:0x38 +fn_1_9BC8 = .text:0x00009BC8; // type:function size:0x38 +fn_1_9C00 = .text:0x00009C00; // type:function size:0x5B4 +fn_1_A1B4 = .text:0x0000A1B4; // type:function size:0xCC +fn_1_A280 = .text:0x0000A280; // type:function size:0xA4 +fn_1_A324 = .text:0x0000A324; // type:function size:0x68 +fn_1_A38C = .text:0x0000A38C; // type:function size:0x704 +fn_1_AA90 = .text:0x0000AA90; // type:function size:0x374 +fn_1_AE04 = .text:0x0000AE04; // type:function size:0xDC +fn_1_AEE0 = .text:0x0000AEE0; // type:function size:0x298 +fn_1_B178 = .text:0x0000B178; // type:function size:0x4 +fn_1_B17C = .text:0x0000B17C; // type:function size:0x224 +fn_1_B3A0 = .text:0x0000B3A0; // type:function size:0x4E0 +fn_1_B880 = .text:0x0000B880; // type:function size:0x950 +fn_1_C1D0 = .text:0x0000C1D0; // type:function size:0x770 +fn_1_C940 = .text:0x0000C940; // type:function size:0x668 +fn_1_CFA8 = .text:0x0000CFA8; // type:function size:0x2A0 +fn_1_D248 = .text:0x0000D248; // type:function size:0x100 +fn_1_D348 = .text:0x0000D348; // type:function size:0x4AC +fn_1_D7F4 = .text:0x0000D7F4; // type:function size:0x83C +fn_1_E030 = .text:0x0000E030; // type:function size:0x858 +fn_1_E888 = .text:0x0000E888; // type:function size:0x4DC +fn_1_ED64 = .text:0x0000ED64; // type:function size:0xF0 +fn_1_EE54 = .text:0x0000EE54; // type:function size:0xD8 +fn_1_EF2C = .text:0x0000EF2C; // type:function size:0x1AC +fn_1_F0D8 = .text:0x0000F0D8; // type:function size:0x6C +fn_1_F144 = .text:0x0000F144; // type:function size:0xC0 +fn_1_F204 = .text:0x0000F204; // type:function size:0x298 +fn_1_F49C = .text:0x0000F49C; // type:function size:0x14 +fn_1_F4B0 = .text:0x0000F4B0; // type:function size:0x28 +fn_1_F4D8 = .text:0x0000F4D8; // type:function size:0x18 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x1 data:byte +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0xC data:2byte +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC data:2byte +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x14 +lbl_1_data_14 = .data:0x00000014; // type:object size:0xC +lbl_1_data_20 = .data:0x00000020; // type:object size:0xC data:float +lbl_1_data_2C = .data:0x0000002C; // type:object size:0xC data:float +lbl_1_data_38 = .data:0x00000038; // type:object size:0xC +lbl_1_data_44 = .data:0x00000044; // type:object size:0x10 +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC data:float +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC data:float +lbl_1_data_78 = .data:0x00000078; // type:object size:0x54 data:float +lbl_1_data_CC = .data:0x000000CC; // type:object size:0x18 +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x2 data:2byte +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x2 data:2byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x2 data:2byte +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x2 data:2byte +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x10 +lbl_1_data_104 = .data:0x00000104; // type:object size:0x2 data:2byte +lbl_1_data_108 = .data:0x00000108; // type:object size:0x2 data:2byte +lbl_1_data_10C = .data:0x0000010C; // type:object size:0x12 +lbl_1_data_11E = .data:0x0000011E; // type:object size:0x13 data:string +lbl_1_data_131 = .data:0x00000131; // type:object size:0x18 +lbl_1_data_149 = .data:0x00000149; // type:object size:0x19 data:string +lbl_1_data_162 = .data:0x00000162; // type:object size:0x1C data:string +lbl_1_data_17E = .data:0x0000017E; // type:object size:0x10 data:string +lbl_1_data_18E = .data:0x0000018E; // type:object size:0x26 data:string +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x2 data:2byte +lbl_1_data_1DA = .data:0x000001DA; // type:object size:0x2 data:2byte +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x40 +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x10 +jumptable_1_data_22C = .data:0x0000022C; // type:object size:0x24 scope:local +lbl_1_data_250 = .data:0x00000250; // type:object size:0x4 data:float +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte +lbl_1_bss_1 = .bss:0x00000001; // type:object size:0x1 data:byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x1 data:byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte +lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x1 data:byte +lbl_1_bss_B = .bss:0x0000000B; // type:object size:0x1 data:byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x1 data:byte +lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x14 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x30 +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x2 data:2byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x2 data:2byte +lbl_1_bss_72 = .bss:0x00000072; // type:object size:0x1 data:byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x2 data:2byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0xC data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:float +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x30 data:float +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x8 +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x10 diff --git a/config/GMPP01_00/rels/m441Dll/splits.txt b/config/GMPP01_00/rels/m441Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m441Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m441Dll/symbols.txt b/config/GMPP01_00/rels/m441Dll/symbols.txt new file mode 100644 index 00000000..d2b885ed --- /dev/null +++ b/config/GMPP01_00/rels/m441Dll/symbols.txt @@ -0,0 +1,224 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x204 +fn_1_784 = .text:0x00000784; // type:function size:0x240 +fn_1_9C4 = .text:0x000009C4; // type:function size:0x54 +fn_1_A18 = .text:0x00000A18; // type:function size:0x10C +fn_1_B24 = .text:0x00000B24; // type:function size:0x680 +fn_1_11A4 = .text:0x000011A4; // type:function size:0x15C +fn_1_1300 = .text:0x00001300; // type:function size:0x8C +fn_1_138C = .text:0x0000138C; // type:function size:0x334 +fn_1_16C0 = .text:0x000016C0; // type:function size:0x350 +fn_1_1A10 = .text:0x00001A10; // type:function size:0x2B8 +fn_1_1CC8 = .text:0x00001CC8; // type:function size:0x58 +fn_1_1D20 = .text:0x00001D20; // type:function size:0xB0 +fn_1_1DD0 = .text:0x00001DD0; // type:function size:0x104 +fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x34 +fn_1_1F08 = .text:0x00001F08; // type:function size:0x6C +fn_1_1F74 = .text:0x00001F74; // type:function size:0x3F0 +_prolog = .text:0x00002364; // type:function size:0x54 scope:global +_epilog = .text:0x000023B8; // type:function size:0x4C scope:global +fn_1_2404 = .text:0x00002404; // type:function size:0x2E8 +fn_1_26EC = .text:0x000026EC; // type:function size:0x1C8 +fn_1_28B4 = .text:0x000028B4; // type:function size:0x2D0 +fn_1_2B84 = .text:0x00002B84; // type:function size:0x830 +fn_1_33B4 = .text:0x000033B4; // type:function size:0x700 +fn_1_3AB4 = .text:0x00003AB4; // type:function size:0xFC +fn_1_3BB0 = .text:0x00003BB0; // type:function size:0x4A8 +fn_1_4058 = .text:0x00004058; // type:function size:0x1340 +fn_1_5398 = .text:0x00005398; // type:function size:0x744 +fn_1_5ADC = .text:0x00005ADC; // type:function size:0xD8 +fn_1_5BB4 = .text:0x00005BB4; // type:function size:0x1538 +fn_1_70EC = .text:0x000070EC; // type:function size:0x3B8 +fn_1_74A4 = .text:0x000074A4; // type:function size:0x464 +fn_1_7908 = .text:0x00007908; // type:function size:0xD4 +fn_1_79DC = .text:0x000079DC; // type:function size:0x610 +fn_1_7FEC = .text:0x00007FEC; // type:function size:0x4DC +fn_1_84C8 = .text:0x000084C8; // type:function size:0x414 +fn_1_88DC = .text:0x000088DC; // type:function size:0x174 +fn_1_8A50 = .text:0x00008A50; // type:function size:0x2B8 +fn_1_8D08 = .text:0x00008D08; // type:function size:0x11D8 +fn_1_9EE0 = .text:0x00009EE0; // type:function size:0x570 +fn_1_A450 = .text:0x0000A450; // type:function size:0x59C +fn_1_A9EC = .text:0x0000A9EC; // type:function size:0xD0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0xC data:4byte +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:4byte +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:4byte +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC +lbl_1_data_4C = .data:0x0000004C; // type:object size:0xC data:4byte +lbl_1_data_58 = .data:0x00000058; // type:object size:0xC data:4byte +lbl_1_data_64 = .data:0x00000064; // type:object size:0xC +lbl_1_data_70 = .data:0x00000070; // type:object size:0xC data:4byte +lbl_1_data_7C = .data:0x0000007C; // type:object size:0xC +lbl_1_data_88 = .data:0x00000088; // type:object size:0xC +lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 +lbl_1_data_98 = .data:0x00000098; // type:object size:0xC +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0xC +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x200 +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x8 +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0xC +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x10 +lbl_1_data_2D4 = .data:0x000002D4; // type:object size:0x40 +lbl_1_data_314 = .data:0x00000314; // type:object size:0xC +lbl_1_data_320 = .data:0x00000320; // type:object size:0x6 +lbl_1_data_326 = .data:0x00000326; // type:object size:0x6 +lbl_1_data_32C = .data:0x0000032C; // type:object size:0x24 +lbl_1_data_350 = .data:0x00000350; // type:object size:0x18 +lbl_1_data_368 = .data:0x00000368; // type:object size:0x4 +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC +lbl_1_data_378 = .data:0x00000378; // type:object size:0xC +lbl_1_data_384 = .data:0x00000384; // type:object size:0xC +lbl_1_data_390 = .data:0x00000390; // type:object size:0xC +lbl_1_data_39C = .data:0x0000039C; // type:object size:0x50 +lbl_1_data_3EC = .data:0x000003EC; // type:object size:0x50 +lbl_1_data_43C = .data:0x0000043C; // type:object size:0x50 +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x50 +lbl_1_data_4DC = .data:0x000004DC; // type:object size:0x18 data:string +lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0x9 data:string +lbl_1_data_4FD = .data:0x000004FD; // type:object size:0x6 data:string +lbl_1_data_503 = .data:0x00000503; // type:object size:0x1D data:string +jumptable_1_data_520 = .data:0x00000520; // type:object size:0x40 scope:local +lbl_1_data_560 = .data:0x00000560; // type:object size:0x8 data:string +lbl_1_data_568 = .data:0x00000568; // type:object size:0x1C +jumptable_1_data_584 = .data:0x00000584; // type:object size:0x24 scope:local +lbl_1_data_5A8 = .data:0x000005A8; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x6 +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x6 +lbl_1_bss_1E = .bss:0x0000001E; // type:object size:0x2 data:2byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x100 +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x40 data:4byte +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:float +lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x4 data:4byte +lbl_1_bss_198 = .bss:0x00000198; // type:object size:0x4 data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x2 data:2byte +lbl_1_bss_19E = .bss:0x0000019E; // type:object size:0x2 data:2byte +lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 data:4byte +lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x4 data:4byte +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0xC data:4byte +lbl_1_bss_1B8 = .bss:0x000001B8; // type:object size:0xC data:4byte +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0xC data:4byte +lbl_1_bss_1D0 = .bss:0x000001D0; // type:object size:0xC data:4byte +lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0x4 data:4byte +lbl_1_bss_1E0 = .bss:0x000001E0; // type:object size:0x18 data:4byte +lbl_1_bss_1F8 = .bss:0x000001F8; // type:object size:0xC data:4byte diff --git a/config/GMPP01_00/rels/m442Dll/splits.txt b/config/GMPP01_00/rels/m442Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m442Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m442Dll/symbols.txt b/config/GMPP01_00/rels/m442Dll/symbols.txt new file mode 100644 index 00000000..f7292ca9 --- /dev/null +++ b/config/GMPP01_00/rels/m442Dll/symbols.txt @@ -0,0 +1,222 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x2D4 +fn_1_374 = .text:0x00000374; // type:function size:0x10 +fn_1_384 = .text:0x00000384; // type:function size:0x10 +fn_1_394 = .text:0x00000394; // type:function size:0xB4 +fn_1_448 = .text:0x00000448; // type:function size:0x5E8 +fn_1_A30 = .text:0x00000A30; // type:function size:0x60 +fn_1_A90 = .text:0x00000A90; // type:function size:0x31C +fn_1_DAC = .text:0x00000DAC; // type:function size:0x68 +fn_1_E14 = .text:0x00000E14; // type:function size:0x84 +fn_1_E98 = .text:0x00000E98; // type:function size:0x380 +fn_1_1218 = .text:0x00001218; // type:function size:0x30 +fn_1_1248 = .text:0x00001248; // type:function size:0xDE0 +fn_1_2028 = .text:0x00002028; // type:function size:0x244 +fn_1_226C = .text:0x0000226C; // type:function size:0xF9C +fn_1_3208 = .text:0x00003208; // type:function size:0x3B0 +fn_1_35B8 = .text:0x000035B8; // type:function size:0xAC +fn_1_3664 = .text:0x00003664; // type:function size:0x160 +fn_1_37C4 = .text:0x000037C4; // type:function size:0x150 +fn_1_3914 = .text:0x00003914; // type:function size:0x1DC +fn_1_3AF0 = .text:0x00003AF0; // type:function size:0x13C +fn_1_3C2C = .text:0x00003C2C; // type:function size:0x74 +fn_1_3CA0 = .text:0x00003CA0; // type:function size:0x180 +fn_1_3E20 = .text:0x00003E20; // type:function size:0x50 +fn_1_3E70 = .text:0x00003E70; // type:function size:0x58 +fn_1_3EC8 = .text:0x00003EC8; // type:function size:0x4 +fn_1_3ECC = .text:0x00003ECC; // type:function size:0x4A4 +fn_1_4370 = .text:0x00004370; // type:function size:0x4 +fn_1_4374 = .text:0x00004374; // type:function size:0xDC +fn_1_4450 = .text:0x00004450; // type:function size:0x418 +fn_1_4868 = .text:0x00004868; // type:function size:0xC6C +fn_1_54D4 = .text:0x000054D4; // type:function size:0x450 +fn_1_5924 = .text:0x00005924; // type:function size:0xA8 +fn_1_59CC = .text:0x000059CC; // type:function size:0x88 +fn_1_5A54 = .text:0x00005A54; // type:function size:0x494 +fn_1_5EE8 = .text:0x00005EE8; // type:function size:0x5D8 +fn_1_64C0 = .text:0x000064C0; // type:function size:0x700 +fn_1_6BC0 = .text:0x00006BC0; // type:function size:0x114 +fn_1_6CD4 = .text:0x00006CD4; // type:function size:0x5C +fn_1_6D30 = .text:0x00006D30; // type:function size:0x5A0 +fn_1_72D0 = .text:0x000072D0; // type:function size:0x318 +fn_1_75E8 = .text:0x000075E8; // type:function size:0x158 +fn_1_7740 = .text:0x00007740; // type:function size:0x114 +fn_1_7854 = .text:0x00007854; // type:function size:0x48 +fn_1_789C = .text:0x0000789C; // type:function size:0x3FC +fn_1_7C98 = .text:0x00007C98; // type:function size:0x230 +fn_1_7EC8 = .text:0x00007EC8; // type:function size:0x664 +fn_1_852C = .text:0x0000852C; // type:function size:0xC8 +fn_1_85F4 = .text:0x000085F4; // type:function size:0x104 +fn_1_86F8 = .text:0x000086F8; // type:function size:0x4C +fn_1_8744 = .text:0x00008744; // type:function size:0x250 +fn_1_8994 = .text:0x00008994; // type:function size:0x764 +fn_1_90F8 = .text:0x000090F8; // type:function size:0x10 +fn_1_9108 = .text:0x00009108; // type:function size:0xB0 +fn_1_91B8 = .text:0x000091B8; // type:function size:0x28C +fn_1_9444 = .text:0x00009444; // type:function size:0x74 +fn_1_94B8 = .text:0x000094B8; // type:function size:0x50 +fn_1_9508 = .text:0x00009508; // type:function size:0x24 +fn_1_952C = .text:0x0000952C; // type:function size:0x30 +fn_1_955C = .text:0x0000955C; // type:function size:0x1BC +fn_1_9718 = .text:0x00009718; // type:function size:0x78 +fn_1_9790 = .text:0x00009790; // type:function size:0x88 +fn_1_9818 = .text:0x00009818; // type:function size:0x164 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x10 data:4byte +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0xC data:4byte +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC data:float +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC data:float +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x4 +lbl_1_data_70 = .data:0x00000070; // type:object size:0xC +lbl_1_data_7C = .data:0x0000007C; // type:object size:0xC +lbl_1_data_88 = .data:0x00000088; // type:object size:0x24 +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x4 data:4byte +jumptable_1_data_B0 = .data:0x000000B0; // type:object size:0x30 scope:local +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x1C data:string +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x1C +lbl_1_data_118 = .data:0x00000118; // type:object size:0x8 +lbl_1_data_120 = .data:0x00000120; // type:object size:0x30 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x1A +lbl_1_data_16A = .data:0x0000016A; // type:object size:0x20 +lbl_1_data_18A = .data:0x0000018A; // type:object size:0x16 +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0xC +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0xC data:string +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x1 data:byte +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x1 data:byte +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x30 +lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x1 data:byte +lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x24 +lbl_1_data_218 = .data:0x00000218; // type:object size:0x1 data:byte +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x20 +lbl_1_data_23C = .data:0x0000023C; // type:object size:0xC +lbl_1_data_248 = .data:0x00000248; // type:object size:0x8 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x8 data:float +lbl_1_data_258 = .data:0x00000258; // type:object size:0x10 +lbl_1_data_268 = .data:0x00000268; // type:object size:0xC +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0xC data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x3C +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0xC000 data:2byte +lbl_1_bss_C060 = .bss:0x0000C060; // type:object size:0x28 data:2byte +lbl_1_bss_C088 = .bss:0x0000C088; // type:object size:0x974 +lbl_1_bss_C9FC = .bss:0x0000C9FC; // type:object size:0x5000 data:4byte +lbl_1_bss_119FC = .bss:0x000119FC; // type:object size:0x4 data:4byte +lbl_1_bss_11A00 = .bss:0x00011A00; // type:object size:0x271 +lbl_1_bss_11C71 = .bss:0x00011C71; // type:object size:0x273 +lbl_1_bss_11EE4 = .bss:0x00011EE4; // type:object size:0x4 data:4byte +lbl_1_bss_11EE8 = .bss:0x00011EE8; // type:object size:0x4 data:4byte +lbl_1_bss_11EEC = .bss:0x00011EEC; // type:object size:0x2 data:2byte +lbl_1_bss_11EF0 = .bss:0x00011EF0; // type:object size:0x10 +lbl_1_bss_11F00 = .bss:0x00011F00; // type:object size:0x4 data:4byte +lbl_1_bss_11F04 = .bss:0x00011F04; // type:object size:0x4 data:4byte +lbl_1_bss_11F08 = .bss:0x00011F08; // type:object size:0xC +lbl_1_bss_11F14 = .bss:0x00011F14; // type:object size:0x4 data:4byte +lbl_1_bss_11F18 = .bss:0x00011F18; // type:object size:0x2 data:2byte +lbl_1_bss_11F1A = .bss:0x00011F1A; // type:object size:0x2 data:2byte +lbl_1_bss_11F1C = .bss:0x00011F1C; // type:object size:0x2 data:2byte +lbl_1_bss_11F1E = .bss:0x00011F1E; // type:object size:0x2 data:2byte +lbl_1_bss_11F20 = .bss:0x00011F20; // type:object size:0x2 data:2byte +lbl_1_bss_11F24 = .bss:0x00011F24; // type:object size:0x4 data:4byte +lbl_1_bss_11F28 = .bss:0x00011F28; // type:object size:0x4 data:4byte +lbl_1_bss_11F2C = .bss:0x00011F2C; // type:object size:0x4 data:4byte +lbl_1_bss_11F30 = .bss:0x00011F30; // type:object size:0x4 data:4byte +lbl_1_bss_11F34 = .bss:0x00011F34; // type:object size:0x8 data:4byte +lbl_1_bss_11F3C = .bss:0x00011F3C; // type:object size:0x4 data:4byte +lbl_1_bss_11F40 = .bss:0x00011F40; // type:object size:0x4 data:4byte +lbl_1_bss_11F44 = .bss:0x00011F44; // type:object size:0xC data:4byte +lbl_1_bss_11F50 = .bss:0x00011F50; // type:object size:0x4 data:4byte +lbl_1_bss_11F54 = .bss:0x00011F54; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m443Dll/splits.txt b/config/GMPP01_00/rels/m443Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m443Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m443Dll/symbols.txt b/config/GMPP01_00/rels/m443Dll/symbols.txt new file mode 100644 index 00000000..17d910d7 --- /dev/null +++ b/config/GMPP01_00/rels/m443Dll/symbols.txt @@ -0,0 +1,326 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x380 +fn_1_420 = .text:0x00000420; // type:function size:0xC4 +fn_1_4E4 = .text:0x000004E4; // type:function size:0xA0 +fn_1_584 = .text:0x00000584; // type:function size:0x14C +fn_1_6D0 = .text:0x000006D0; // type:function size:0x2E0 +fn_1_9B0 = .text:0x000009B0; // type:function size:0x330 +fn_1_CE0 = .text:0x00000CE0; // type:function size:0x1EC +fn_1_ECC = .text:0x00000ECC; // type:function size:0x3C8 +fn_1_1294 = .text:0x00001294; // type:function size:0x544 +fn_1_17D8 = .text:0x000017D8; // type:function size:0x4C0 +fn_1_1C98 = .text:0x00001C98; // type:function size:0xF4 +fn_1_1D8C = .text:0x00001D8C; // type:function size:0x704 +fn_1_2490 = .text:0x00002490; // type:function size:0x114 +fn_1_25A4 = .text:0x000025A4; // type:function size:0x834 +fn_1_2DD8 = .text:0x00002DD8; // type:function size:0x17C +fn_1_2F54 = .text:0x00002F54; // type:function size:0x36C +fn_1_32C0 = .text:0x000032C0; // type:function size:0xB0 +fn_1_3370 = .text:0x00003370; // type:function size:0x3A0 +fn_1_3710 = .text:0x00003710; // type:function size:0x60 +fn_1_3770 = .text:0x00003770; // type:function size:0x608 +fn_1_3D78 = .text:0x00003D78; // type:function size:0x270 +fn_1_3FE8 = .text:0x00003FE8; // type:function size:0x14 +fn_1_3FFC = .text:0x00003FFC; // type:function size:0x14 +fn_1_4010 = .text:0x00004010; // type:function size:0x9C +fn_1_40AC = .text:0x000040AC; // type:function size:0x9C +fn_1_4148 = .text:0x00004148; // type:function size:0x68 +fn_1_41B0 = .text:0x000041B0; // type:function size:0x6C +fn_1_421C = .text:0x0000421C; // type:function size:0x98 +fn_1_42B4 = .text:0x000042B4; // type:function size:0x18 +fn_1_42CC = .text:0x000042CC; // type:function size:0x18 +fn_1_42E4 = .text:0x000042E4; // type:function size:0x18 +fn_1_42FC = .text:0x000042FC; // type:function size:0x18 +fn_1_4314 = .text:0x00004314; // type:function size:0x54 +fn_1_4368 = .text:0x00004368; // type:function size:0x44 +fn_1_43AC = .text:0x000043AC; // type:function size:0x30 +fn_1_43DC = .text:0x000043DC; // type:function size:0x30 +fn_1_440C = .text:0x0000440C; // type:function size:0x38 +fn_1_4444 = .text:0x00004444; // type:function size:0x208 +fn_1_464C = .text:0x0000464C; // type:function size:0x240 +fn_1_488C = .text:0x0000488C; // type:function size:0x11C +fn_1_49A8 = .text:0x000049A8; // type:function size:0xB4 +fn_1_4A5C = .text:0x00004A5C; // type:function size:0x54 +fn_1_4AB0 = .text:0x00004AB0; // type:function size:0x4 +fn_1_4AB4 = .text:0x00004AB4; // type:function size:0x260 +fn_1_4D14 = .text:0x00004D14; // type:function size:0x730 +fn_1_5444 = .text:0x00005444; // type:function size:0x218 +fn_1_565C = .text:0x0000565C; // type:function size:0x24 +fn_1_5680 = .text:0x00005680; // type:function size:0x554 +fn_1_5BD4 = .text:0x00005BD4; // type:function size:0x884 +fn_1_6458 = .text:0x00006458; // type:function size:0x21C +fn_1_6674 = .text:0x00006674; // type:function size:0xDC +fn_1_6750 = .text:0x00006750; // type:function size:0x264 +fn_1_69B4 = .text:0x000069B4; // type:function size:0x1DC +fn_1_6B90 = .text:0x00006B90; // type:function size:0x218 +fn_1_6DA8 = .text:0x00006DA8; // type:function size:0x388 +fn_1_7130 = .text:0x00007130; // type:function size:0x210 +fn_1_7340 = .text:0x00007340; // type:function size:0xDF8 +fn_1_8138 = .text:0x00008138; // type:function size:0x18C +fn_1_82C4 = .text:0x000082C4; // type:function size:0x74 +fn_1_8338 = .text:0x00008338; // type:function size:0x1D0 +fn_1_8508 = .text:0x00008508; // type:function size:0x178 +fn_1_8680 = .text:0x00008680; // type:function size:0x2D8 +fn_1_8958 = .text:0x00008958; // type:function size:0x38 +fn_1_8990 = .text:0x00008990; // type:function size:0x138 +fn_1_8AC8 = .text:0x00008AC8; // type:function size:0x1A0 +fn_1_8C68 = .text:0x00008C68; // type:function size:0x24 +fn_1_8C8C = .text:0x00008C8C; // type:function size:0x74 +fn_1_8D00 = .text:0x00008D00; // type:function size:0x74 +fn_1_8D74 = .text:0x00008D74; // type:function size:0x18 +fn_1_8D8C = .text:0x00008D8C; // type:function size:0x54 +fn_1_8DE0 = .text:0x00008DE0; // type:function size:0x54 +fn_1_8E34 = .text:0x00008E34; // type:function size:0x1C8 +fn_1_8FFC = .text:0x00008FFC; // type:function size:0x5A8 +fn_1_95A4 = .text:0x000095A4; // type:function size:0x94 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x50 +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x14 data:4byte +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x10 data:4byte +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x10 data:4byte +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC data:4byte +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x34 data:4byte +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x10 data:4byte +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x40 data:4byte +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x10 data:4byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x10 data:4byte +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x20 data:4byte +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x14 data:string +lbl_1_data_60 = .data:0x00000060; // type:object size:0x48 +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x48 +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x18 +lbl_1_data_108 = .data:0x00000108; // type:object size:0x80 +lbl_1_data_188 = .data:0x00000188; // type:object size:0x80 +lbl_1_data_208 = .data:0x00000208; // type:object size:0x1 data:byte +lbl_1_data_20C = .data:0x0000020C; // type:object size:0x1A data:string +lbl_1_data_226 = .data:0x00000226; // type:object size:0x1A +lbl_1_data_240 = .data:0x00000240; // type:object size:0x18 +lbl_1_data_258 = .data:0x00000258; // type:object size:0x2C +lbl_1_data_284 = .data:0x00000284; // type:object size:0x40 +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x10 +lbl_1_data_2D4 = .data:0x000002D4; // type:object size:0x50 +lbl_1_data_324 = .data:0x00000324; // type:object size:0x10 +lbl_1_data_334 = .data:0x00000334; // type:object size:0x10 +lbl_1_data_344 = .data:0x00000344; // type:object size:0x10 +lbl_1_data_354 = .data:0x00000354; // type:object size:0x10 +lbl_1_data_364 = .data:0x00000364; // type:object size:0x30 +lbl_1_data_394 = .data:0x00000394; // type:object size:0x30 +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x30 +lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x5 data:string +lbl_1_data_3F9 = .data:0x000003F9; // type:object size:0x7 data:string +lbl_1_data_400 = .data:0x00000400; // type:object size:0x7 data:string +lbl_1_data_407 = .data:0x00000407; // type:object size:0x9 +lbl_1_data_410 = .data:0x00000410; // type:object size:0x58 +lbl_1_data_468 = .data:0x00000468; // type:object size:0x20 +lbl_1_data_488 = .data:0x00000488; // type:object size:0x58 +lbl_1_data_4E0 = .data:0x000004E0; // type:object size:0x10 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x3C data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x2 data:2byte +lbl_1_bss_56 = .bss:0x00000056; // type:object size:0x2 data:2byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x2 data:2byte +lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x2 data:2byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x8 data:2byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x18 +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x10 diff --git a/config/GMPP01_00/rels/m444dll/splits.txt b/config/GMPP01_00/rels/m444dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m444dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m444dll/symbols.txt b/config/GMPP01_00/rels/m444dll/symbols.txt new file mode 100644 index 00000000..df37999d --- /dev/null +++ b/config/GMPP01_00/rels/m444dll/symbols.txt @@ -0,0 +1,320 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x3D0 +fn_1_470 = .text:0x00000470; // type:function size:0x3788 +fn_1_3BF8 = .text:0x00003BF8; // type:function size:0x1270 +fn_1_4E68 = .text:0x00004E68; // type:function size:0x7C4 +fn_1_562C = .text:0x0000562C; // type:function size:0x1C4 +fn_1_57F0 = .text:0x000057F0; // type:function size:0x6F4 +fn_1_5EE4 = .text:0x00005EE4; // type:function size:0x6F4 +fn_1_65D8 = .text:0x000065D8; // type:function size:0x824 +fn_1_6DFC = .text:0x00006DFC; // type:function size:0xBC +fn_1_6EB8 = .text:0x00006EB8; // type:function size:0xA0 +fn_1_6F58 = .text:0x00006F58; // type:function size:0x3B4 +fn_1_730C = .text:0x0000730C; // type:function size:0xC2C +fn_1_7F38 = .text:0x00007F38; // type:function size:0x2C4 +fn_1_81FC = .text:0x000081FC; // type:function size:0x90 +fn_1_828C = .text:0x0000828C; // type:function size:0xEC +fn_1_8378 = .text:0x00008378; // type:function size:0x128 +fn_1_84A0 = .text:0x000084A0; // type:function size:0x1F8 +fn_1_8698 = .text:0x00008698; // type:function size:0x7B4 +fn_1_8E4C = .text:0x00008E4C; // type:function size:0x648 +fn_1_9494 = .text:0x00009494; // type:function size:0x894 +fn_1_9D28 = .text:0x00009D28; // type:function size:0x3B4 +fn_1_A0DC = .text:0x0000A0DC; // type:function size:0xB70 +fn_1_AC4C = .text:0x0000AC4C; // type:function size:0x618 +fn_1_B264 = .text:0x0000B264; // type:function size:0x102C +fn_1_C290 = .text:0x0000C290; // type:function size:0x528 +fn_1_C7B8 = .text:0x0000C7B8; // type:function size:0x2F4 +fn_1_CAAC = .text:0x0000CAAC; // type:function size:0x140 +fn_1_CBEC = .text:0x0000CBEC; // type:function size:0x298 +fn_1_CE84 = .text:0x0000CE84; // type:function size:0x194 +fn_1_D018 = .text:0x0000D018; // type:function size:0x244 +fn_1_D25C = .text:0x0000D25C; // type:function size:0x3A8 +fn_1_D604 = .text:0x0000D604; // type:function size:0x290 +fn_1_D894 = .text:0x0000D894; // type:function size:0x138 +fn_1_D9CC = .text:0x0000D9CC; // type:function size:0x78 +fn_1_DA44 = .text:0x0000DA44; // type:function size:0x2C +fn_1_DA70 = .text:0x0000DA70; // type:function size:0x42C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0xC data:4byte +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x118 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x28 +lbl_1_data_140 = .data:0x00000140; // type:object size:0x54 data:float +lbl_1_data_194 = .data:0x00000194; // type:object size:0x20 +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0xA data:string +lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0xA data:string +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xA data:string +lbl_1_data_1F6 = .data:0x000001F6; // type:object size:0xD data:string +lbl_1_data_203 = .data:0x00000203; // type:object size:0xD data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0xD data:string +lbl_1_data_21D = .data:0x0000021D; // type:object size:0xD data:string +lbl_1_data_22A = .data:0x0000022A; // type:object size:0xB data:string +lbl_1_data_235 = .data:0x00000235; // type:object size:0xB data:string +lbl_1_data_240 = .data:0x00000240; // type:object size:0x4 +lbl_1_data_244 = .data:0x00000244; // type:object size:0xA data:string +lbl_1_data_24E = .data:0x0000024E; // type:object size:0xA +lbl_1_data_258 = .data:0x00000258; // type:object size:0xC +lbl_1_data_264 = .data:0x00000264; // type:object size:0x3C +lbl_1_data_2A0 = .data:0x000002A0; // type:object size:0x28 +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0xA +lbl_1_data_2D2 = .data:0x000002D2; // type:object size:0xD data:string +lbl_1_data_2DF = .data:0x000002DF; // type:object size:0xD data:string +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xD data:string +lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0xD data:string +lbl_1_data_306 = .data:0x00000306; // type:object size:0xD data:string +lbl_1_data_313 = .data:0x00000313; // type:object size:0xD data:string +lbl_1_data_320 = .data:0x00000320; // type:object size:0xD data:string +lbl_1_data_32D = .data:0x0000032D; // type:object size:0xD data:string +lbl_1_data_33A = .data:0x0000033A; // type:object size:0xD data:string +lbl_1_data_347 = .data:0x00000347; // type:object size:0xD data:string +lbl_1_data_354 = .data:0x00000354; // type:object size:0xD data:string +lbl_1_data_361 = .data:0x00000361; // type:object size:0xD data:string +lbl_1_data_36E = .data:0x0000036E; // type:object size:0xD data:string +lbl_1_data_37B = .data:0x0000037B; // type:object size:0xD data:string +jumptable_1_data_388 = .data:0x00000388; // type:object size:0x1C scope:local +lbl_1_data_3A4 = .data:0x000003A4; // type:object size:0x8 +lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x30 +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x24 +lbl_1_data_400 = .data:0x00000400; // type:object size:0x54 +lbl_1_data_454 = .data:0x00000454; // type:object size:0xC +lbl_1_data_460 = .data:0x00000460; // type:object size:0x10 data:string +lbl_1_data_470 = .data:0x00000470; // type:object size:0x127C +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x140 data:2byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x140 data:2byte +lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x8 data:float +lbl_1_bss_290 = .bss:0x00000290; // type:object size:0x18 data:4byte +lbl_1_bss_2A8 = .bss:0x000002A8; // type:object size:0x18 data:float +lbl_1_bss_2C0 = .bss:0x000002C0; // type:object size:0x10 data:2byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x2 data:2byte +lbl_1_bss_2D2 = .bss:0x000002D2; // type:object size:0x2 data:2byte +lbl_1_bss_2D4 = .bss:0x000002D4; // type:object size:0x2 data:2byte +lbl_1_bss_2D6 = .bss:0x000002D6; // type:object size:0x2 data:2byte +lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0x2 data:2byte +lbl_1_bss_2DA = .bss:0x000002DA; // type:object size:0x2 data:2byte +lbl_1_bss_2DC = .bss:0x000002DC; // type:object size:0x2 data:2byte +lbl_1_bss_2E0 = .bss:0x000002E0; // type:object size:0x4 data:float +lbl_1_bss_2E4 = .bss:0x000002E4; // type:object size:0xC data:float +lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0xC data:4byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0xC data:4byte +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0x4 data:4byte +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0x4 data:4byte +lbl_1_bss_310 = .bss:0x00000310; // type:object size:0x1 data:byte +lbl_1_bss_312 = .bss:0x00000312; // type:object size:0x2 data:2byte +lbl_1_bss_314 = .bss:0x00000314; // type:object size:0xC data:float +lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x8 data:2byte +lbl_1_bss_328 = .bss:0x00000328; // type:object size:0x24 data:float +lbl_1_bss_34C = .bss:0x0000034C; // type:object size:0x24 data:float +lbl_1_bss_370 = .bss:0x00000370; // type:object size:0x400 +lbl_1_bss_770 = .bss:0x00000770; // type:object size:0xC data:float +lbl_1_bss_77C = .bss:0x0000077C; // type:object size:0xC data:float +lbl_1_bss_788 = .bss:0x00000788; // type:object size:0xC +lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x90 +lbl_1_bss_824 = .bss:0x00000824; // type:object size:0x3C +lbl_1_bss_860 = .bss:0x00000860; // type:object size:0x24 +lbl_1_bss_884 = .bss:0x00000884; // type:object size:0x1000 +lbl_1_bss_1884 = .bss:0x00001884; // type:object size:0x2 data:2byte +lbl_1_bss_1888 = .bss:0x00001888; // type:object size:0xC data:float +lbl_1_bss_1894 = .bss:0x00001894; // type:object size:0xC data:float +lbl_1_bss_18A0 = .bss:0x000018A0; // type:object size:0x14 +lbl_1_bss_18B4 = .bss:0x000018B4; // type:object size:0x3C +lbl_1_bss_18F0 = .bss:0x000018F0; // type:object size:0xC000 +lbl_1_bss_D8F0 = .bss:0x0000D8F0; // type:object size:0xC000 +lbl_1_bss_198F0 = .bss:0x000198F0; // type:object size:0x1A +lbl_1_bss_1990A = .bss:0x0001990A; // type:object size:0x2 data:2byte +lbl_1_bss_1990E = .bss:0x0001990E; // type:object size:0xB4 data:2byte +lbl_1_bss_199C2 = .bss:0x000199C2; // type:object size:0xB4 data:2byte diff --git a/config/GMPP01_00/rels/m445Dll/splits.txt b/config/GMPP01_00/rels/m445Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m445Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m445Dll/symbols.txt b/config/GMPP01_00/rels/m445Dll/symbols.txt new file mode 100644 index 00000000..d8326fcd --- /dev/null +++ b/config/GMPP01_00/rels/m445Dll/symbols.txt @@ -0,0 +1,173 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x418 +fn_1_4B8 = .text:0x000004B8; // type:function size:0x54 +fn_1_50C = .text:0x0000050C; // type:function size:0x4 +fn_1_510 = .text:0x00000510; // type:function size:0x10 +fn_1_520 = .text:0x00000520; // type:function size:0x30 +fn_1_550 = .text:0x00000550; // type:function size:0x1308 +fn_1_1858 = .text:0x00001858; // type:function size:0x80 +fn_1_18D8 = .text:0x000018D8; // type:function size:0x5C +fn_1_1934 = .text:0x00001934; // type:function size:0x34 +fn_1_1968 = .text:0x00001968; // type:function size:0x168 +fn_1_1AD0 = .text:0x00001AD0; // type:function size:0x3C +fn_1_1B0C = .text:0x00001B0C; // type:function size:0x154 +fn_1_1C60 = .text:0x00001C60; // type:function size:0xF88 +fn_1_2BE8 = .text:0x00002BE8; // type:function size:0xB8 +fn_1_2CA0 = .text:0x00002CA0; // type:function size:0x1BC +fn_1_2E5C = .text:0x00002E5C; // type:function size:0xD0 +fn_1_2F2C = .text:0x00002F2C; // type:function size:0xD8 +fn_1_3004 = .text:0x00003004; // type:function size:0x84 +fn_1_3088 = .text:0x00003088; // type:function size:0x80 +fn_1_3108 = .text:0x00003108; // type:function size:0x220 +fn_1_3328 = .text:0x00003328; // type:function size:0x214 +fn_1_353C = .text:0x0000353C; // type:function size:0xD58 +fn_1_4294 = .text:0x00004294; // type:function size:0x104 +fn_1_4398 = .text:0x00004398; // type:function size:0x22C +fn_1_45C4 = .text:0x000045C4; // type:function size:0xFAC +fn_1_5570 = .text:0x00005570; // type:function size:0x74 +fn_1_55E4 = .text:0x000055E4; // type:function size:0x74 +fn_1_5658 = .text:0x00005658; // type:function size:0x9C +fn_1_56F4 = .text:0x000056F4; // type:function size:0xB68 +fn_1_625C = .text:0x0000625C; // type:function size:0x1D58 +fn_1_7FB4 = .text:0x00007FB4; // type:function size:0x360 +fn_1_8314 = .text:0x00008314; // type:function size:0x618 +fn_1_892C = .text:0x0000892C; // type:function size:0x80 +fn_1_89AC = .text:0x000089AC; // type:function size:0x60 +fn_1_8A0C = .text:0x00008A0C; // type:function size:0x334 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x40 +lbl_1_data_40 = .data:0x00000040; // type:object size:0x20 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x18 +lbl_1_data_78 = .data:0x00000078; // type:object size:0x18 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x40 +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x40 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x40 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x12 data:string +lbl_1_data_162 = .data:0x00000162; // type:object size:0x12 data:string +lbl_1_data_174 = .data:0x00000174; // type:object size:0x13 data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x13 data:string +lbl_1_data_19A = .data:0x0000019A; // type:object size:0x14 data:string +lbl_1_data_1AE = .data:0x000001AE; // type:object size:0x14 data:string +lbl_1_data_1C2 = .data:0x000001C2; // type:object size:0x10 data:string +lbl_1_data_1D2 = .data:0x000001D2; // type:object size:0x10 data:string +lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0x13 data:string +lbl_1_data_1F5 = .data:0x000001F5; // type:object size:0xF data:string +lbl_1_data_204 = .data:0x00000204; // type:object size:0xE data:string +lbl_1_data_212 = .data:0x00000212; // type:object size:0xE +lbl_1_data_220 = .data:0x00000220; // type:object size:0x40 +lbl_1_data_260 = .data:0x00000260; // type:object size:0x20 +lbl_1_data_280 = .data:0x00000280; // type:object size:0xF data:string +lbl_1_data_28F = .data:0x0000028F; // type:object size:0xB data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:float +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0xC data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0xC data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x28 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x230 +lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x300 data:2byte +lbl_1_bss_588 = .bss:0x00000588; // type:object size:0x13C data:4byte +lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x4 data:4byte +lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x4 data:4byte +lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0xC data:4byte +lbl_1_bss_6D8 = .bss:0x000006D8; // type:object size:0x4 data:4byte +lbl_1_bss_6DC = .bss:0x000006DC; // type:object size:0x4 data:4byte +lbl_1_bss_6E0 = .bss:0x000006E0; // type:object size:0x2 data:2byte +lbl_1_bss_6E2 = .bss:0x000006E2; // type:object size:0x2 data:2byte +lbl_1_bss_6E6 = .bss:0x000006E6; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/m446dll/splits.txt b/config/GMPP01_00/rels/m446dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m446dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m446dll/symbols.txt b/config/GMPP01_00/rels/m446dll/symbols.txt new file mode 100644 index 00000000..ddaa394d --- /dev/null +++ b/config/GMPP01_00/rels/m446dll/symbols.txt @@ -0,0 +1,305 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x9C +fn_1_13C = .text:0x0000013C; // type:function size:0x168 +fn_1_2A4 = .text:0x000002A4; // type:function size:0x158 +fn_1_3FC = .text:0x000003FC; // type:function size:0xB8 +fn_1_4B4 = .text:0x000004B4; // type:function size:0x88 +fn_1_53C = .text:0x0000053C; // type:function size:0x41C +fn_1_958 = .text:0x00000958; // type:function size:0x220 +fn_1_B78 = .text:0x00000B78; // type:function size:0x94 +fn_1_C0C = .text:0x00000C0C; // type:function size:0x94 +fn_1_CA0 = .text:0x00000CA0; // type:function size:0xB30 +fn_1_17D0 = .text:0x000017D0; // type:function size:0x40 +fn_1_1810 = .text:0x00001810; // type:function size:0x38 +fn_1_1848 = .text:0x00001848; // type:function size:0x3C +fn_1_1884 = .text:0x00001884; // type:function size:0x3C +fn_1_18C0 = .text:0x000018C0; // type:function size:0x84 +fn_1_1944 = .text:0x00001944; // type:function size:0x64 +fn_1_19A8 = .text:0x000019A8; // type:function size:0x290 +fn_1_1C38 = .text:0x00001C38; // type:function size:0x94 +fn_1_1CCC = .text:0x00001CCC; // type:function size:0x38 +fn_1_1D04 = .text:0x00001D04; // type:function size:0x3C +fn_1_1D40 = .text:0x00001D40; // type:function size:0x3C +fn_1_1D7C = .text:0x00001D7C; // type:function size:0x34 +fn_1_1DB0 = .text:0x00001DB0; // type:function size:0x10 +fn_1_1DC0 = .text:0x00001DC0; // type:function size:0x8 +fn_1_1DC8 = .text:0x00001DC8; // type:function size:0x68 +fn_1_1E30 = .text:0x00001E30; // type:function size:0x28 +fn_1_1E58 = .text:0x00001E58; // type:function size:0x44 +fn_1_1E9C = .text:0x00001E9C; // type:function size:0x3C +fn_1_1ED8 = .text:0x00001ED8; // type:function size:0x34 +fn_1_1F0C = .text:0x00001F0C; // type:function size:0x4C +fn_1_1F58 = .text:0x00001F58; // type:function size:0x3C +fn_1_1F94 = .text:0x00001F94; // type:function size:0x3C +fn_1_1FD0 = .text:0x00001FD0; // type:function size:0x68 +fn_1_2038 = .text:0x00002038; // type:function size:0x18 +fn_1_2050 = .text:0x00002050; // type:function size:0x58 +fn_1_20A8 = .text:0x000020A8; // type:function size:0x338 +fn_1_23E0 = .text:0x000023E0; // type:function size:0x27C +fn_1_265C = .text:0x0000265C; // type:function size:0xA4 +fn_1_2700 = .text:0x00002700; // type:function size:0x68 +fn_1_2768 = .text:0x00002768; // type:function size:0x68 +fn_1_27D0 = .text:0x000027D0; // type:function size:0x94 +fn_1_2864 = .text:0x00002864; // type:function size:0x98 +fn_1_28FC = .text:0x000028FC; // type:function size:0x8C +fn_1_2988 = .text:0x00002988; // type:function size:0x68 +fn_1_29F0 = .text:0x000029F0; // type:function size:0x3C +fn_1_2A2C = .text:0x00002A2C; // type:function size:0x3C +fn_1_2A68 = .text:0x00002A68; // type:function size:0x14 +fn_1_2A7C = .text:0x00002A7C; // type:function size:0x2EC +fn_1_2D68 = .text:0x00002D68; // type:function size:0x14 +fn_1_2D7C = .text:0x00002D7C; // type:function size:0x118 +fn_1_2E94 = .text:0x00002E94; // type:function size:0xA4 +fn_1_2F38 = .text:0x00002F38; // type:function size:0x100 +fn_1_3038 = .text:0x00003038; // type:function size:0x11C +fn_1_3154 = .text:0x00003154; // type:function size:0x58 +fn_1_31AC = .text:0x000031AC; // type:function size:0x2C8 +fn_1_3474 = .text:0x00003474; // type:function size:0x260 +fn_1_36D4 = .text:0x000036D4; // type:function size:0x154 +fn_1_3828 = .text:0x00003828; // type:function size:0x5C +fn_1_3884 = .text:0x00003884; // type:function size:0x30 +fn_1_38B4 = .text:0x000038B4; // type:function size:0x10 +fn_1_38C4 = .text:0x000038C4; // type:function size:0x34 +fn_1_38F8 = .text:0x000038F8; // type:function size:0x18 +fn_1_3910 = .text:0x00003910; // type:function size:0x58 +fn_1_3968 = .text:0x00003968; // type:function size:0x3C +fn_1_39A4 = .text:0x000039A4; // type:function size:0x17C +fn_1_3B20 = .text:0x00003B20; // type:function size:0xA4 +fn_1_3BC4 = .text:0x00003BC4; // type:function size:0x2C4 +fn_1_3E88 = .text:0x00003E88; // type:function size:0x11C +fn_1_3FA4 = .text:0x00003FA4; // type:function size:0x30 +fn_1_3FD4 = .text:0x00003FD4; // type:function size:0x88 +fn_1_405C = .text:0x0000405C; // type:function size:0x624 +fn_1_4680 = .text:0x00004680; // type:function size:0x24 +fn_1_46A4 = .text:0x000046A4; // type:function size:0x50 +fn_1_46F4 = .text:0x000046F4; // type:function size:0x78 +fn_1_476C = .text:0x0000476C; // type:function size:0x74 +fn_1_47E0 = .text:0x000047E0; // type:function size:0x18 +fn_1_47F8 = .text:0x000047F8; // type:function size:0x58 +fn_1_4850 = .text:0x00004850; // type:function size:0x284 +fn_1_4AD4 = .text:0x00004AD4; // type:function size:0x59C +fn_1_5070 = .text:0x00005070; // type:function size:0x11C +fn_1_518C = .text:0x0000518C; // type:function size:0x34C +fn_1_54D8 = .text:0x000054D8; // type:function size:0x144 +fn_1_561C = .text:0x0000561C; // type:function size:0x30 +fn_1_564C = .text:0x0000564C; // type:function size:0x4BC +fn_1_5B08 = .text:0x00005B08; // type:function size:0x14 +fn_1_5B1C = .text:0x00005B1C; // type:function size:0xC8 +fn_1_5BE4 = .text:0x00005BE4; // type:function size:0x14 +fn_1_5BF8 = .text:0x00005BF8; // type:function size:0xC8 +fn_1_5CC0 = .text:0x00005CC0; // type:function size:0x14 +fn_1_5CD4 = .text:0x00005CD4; // type:function size:0x154 +fn_1_5E28 = .text:0x00005E28; // type:function size:0x220 +fn_1_6048 = .text:0x00006048; // type:function size:0x1F0 +fn_1_6238 = .text:0x00006238; // type:function size:0x8C +fn_1_62C4 = .text:0x000062C4; // type:function size:0x8C +fn_1_6350 = .text:0x00006350; // type:function size:0x140 +fn_1_6490 = .text:0x00006490; // type:function size:0xBC +fn_1_654C = .text:0x0000654C; // type:function size:0xA8 +fn_1_65F4 = .text:0x000065F4; // type:function size:0x158 +fn_1_674C = .text:0x0000674C; // type:function size:0x160 +fn_1_68AC = .text:0x000068AC; // type:function size:0x4 +fn_1_68B0 = .text:0x000068B0; // type:function size:0x5C4 +fn_1_6E74 = .text:0x00006E74; // type:function size:0x24 +fn_1_6E98 = .text:0x00006E98; // type:function size:0x24 +fn_1_6EBC = .text:0x00006EBC; // type:function size:0x10 +fn_1_6ECC = .text:0x00006ECC; // type:function size:0x194 +fn_1_7060 = .text:0x00007060; // type:function size:0x10 +fn_1_7070 = .text:0x00007070; // type:function size:0x244 +fn_1_72B4 = .text:0x000072B4; // type:function size:0x18 +fn_1_72CC = .text:0x000072CC; // type:function size:0x58 +fn_1_7324 = .text:0x00007324; // type:function size:0x1A4 +fn_1_74C8 = .text:0x000074C8; // type:function size:0x1F4 +fn_1_76BC = .text:0x000076BC; // type:function size:0xE0 +fn_1_779C = .text:0x0000779C; // type:function size:0xBC +fn_1_7858 = .text:0x00007858; // type:function size:0x84 +fn_1_78DC = .text:0x000078DC; // type:function size:0x94 +fn_1_7970 = .text:0x00007970; // type:function size:0x9C +fn_1_7A0C = .text:0x00007A0C; // type:function size:0x7C +fn_1_7A88 = .text:0x00007A88; // type:function size:0x13C +fn_1_7BC4 = .text:0x00007BC4; // type:function size:0x18 +fn_1_7BDC = .text:0x00007BDC; // type:function size:0x58 +fn_1_7C34 = .text:0x00007C34; // type:function size:0x460 +fn_1_8094 = .text:0x00008094; // type:function size:0x330 +fn_1_83C4 = .text:0x000083C4; // type:function size:0xBC +fn_1_8480 = .text:0x00008480; // type:function size:0x80 +fn_1_8500 = .text:0x00008500; // type:function size:0xE0 +fn_1_85E0 = .text:0x000085E0; // type:function size:0xC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x30 data:4byte +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x14 +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x14 +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x28 +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x18 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 data:float +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC +lbl_1_data_34 = .data:0x00000034; // type:object size:0x4 +lbl_1_data_38 = .data:0x00000038; // type:object size:0x18 +lbl_1_data_50 = .data:0x00000050; // type:object size:0x18 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x8 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x10 +lbl_1_data_80 = .data:0x00000080; // type:object size:0x20 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x14 +jumptable_1_data_B4 = .data:0x000000B4; // type:object size:0x30 scope:local +jumptable_1_data_E4 = .data:0x000000E4; // type:object size:0x68 scope:local +lbl_1_data_150 = .data:0x00000150; // type:object size:0xC +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x20 +jumptable_1_data_17C = .data:0x0000017C; // type:object size:0x2C scope:local +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x1F data:string +lbl_1_data_1C7 = .data:0x000001C7; // type:object size:0x21 +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x1E data:string +lbl_1_data_206 = .data:0x00000206; // type:object size:0x22 +lbl_1_data_228 = .data:0x00000228; // type:object size:0x24 +lbl_1_data_24C = .data:0x0000024C; // type:object size:0x90 +lbl_1_data_2DC = .data:0x000002DC; // type:object size:0x14 +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x1F data:string +lbl_1_data_30F = .data:0x0000030F; // type:object size:0x1F data:string +lbl_1_data_32E = .data:0x0000032E; // type:object size:0x22 +jumptable_1_data_350 = .data:0x00000350; // type:object size:0x1C scope:local +lbl_1_data_37C = .data:0x0000037C; // type:object size:0x1E data:string +lbl_1_data_39A = .data:0x0000039A; // type:object size:0x1E data:string +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x10 +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x24 +lbl_1_data_3EC = .data:0x000003EC; // type:object size:0x24 +lbl_1_data_410 = .data:0x00000410; // type:object size:0x14 +lbl_1_data_424 = .data:0x00000424; // type:object size:0x3C +lbl_1_data_460 = .data:0x00000460; // type:object size:0x54 data:byte +lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x24 +lbl_1_data_4D8 = .data:0x000004D8; // type:object size:0x1E data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:float +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0xC data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0xC data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:float +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0xC data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0xC data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:float +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0xC data:float +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0xC data:float +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x8 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m447dll/splits.txt b/config/GMPP01_00/rels/m447dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m447dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m447dll/symbols.txt b/config/GMPP01_00/rels/m447dll/symbols.txt new file mode 100644 index 00000000..e191dd83 --- /dev/null +++ b/config/GMPP01_00/rels/m447dll/symbols.txt @@ -0,0 +1,309 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x8C +fn_1_12C = .text:0x0000012C; // type:function size:0x8C +fn_1_1B8 = .text:0x000001B8; // type:function size:0x284 +fn_1_43C = .text:0x0000043C; // type:function size:0x54 +fn_1_490 = .text:0x00000490; // type:function size:0x10 +fn_1_4A0 = .text:0x000004A0; // type:function size:0x10 +fn_1_4B0 = .text:0x000004B0; // type:function size:0x94 +fn_1_544 = .text:0x00000544; // type:function size:0x264 +fn_1_7A8 = .text:0x000007A8; // type:function size:0x3B4 +fn_1_B5C = .text:0x00000B5C; // type:function size:0x3CC +fn_1_F28 = .text:0x00000F28; // type:function size:0x134 +fn_1_105C = .text:0x0000105C; // type:function size:0x32C +fn_1_1388 = .text:0x00001388; // type:function size:0x88 +fn_1_1410 = .text:0x00001410; // type:function size:0x68 +fn_1_1478 = .text:0x00001478; // type:function size:0x2D0 +fn_1_1748 = .text:0x00001748; // type:function size:0xDC +fn_1_1824 = .text:0x00001824; // type:function size:0x54 +fn_1_1878 = .text:0x00001878; // type:function size:0x278 +fn_1_1AF0 = .text:0x00001AF0; // type:function size:0xFC +fn_1_1BEC = .text:0x00001BEC; // type:function size:0xE8 +fn_1_1CD4 = .text:0x00001CD4; // type:function size:0x54 +fn_1_1D28 = .text:0x00001D28; // type:function size:0x5C +fn_1_1D84 = .text:0x00001D84; // type:function size:0xE0 +fn_1_1E64 = .text:0x00001E64; // type:function size:0x40 +fn_1_1EA4 = .text:0x00001EA4; // type:function size:0x10 +fn_1_1EB4 = .text:0x00001EB4; // type:function size:0x14 +fn_1_1EC8 = .text:0x00001EC8; // type:function size:0x2C +fn_1_1EF4 = .text:0x00001EF4; // type:function size:0x9C +fn_1_1F90 = .text:0x00001F90; // type:function size:0x50 +fn_1_1FE0 = .text:0x00001FE0; // type:function size:0x8 +fn_1_1FE8 = .text:0x00001FE8; // type:function size:0x170 +fn_1_2158 = .text:0x00002158; // type:function size:0x1B8 +fn_1_2310 = .text:0x00002310; // type:function size:0x50 +fn_1_2360 = .text:0x00002360; // type:function size:0x124 +fn_1_2484 = .text:0x00002484; // type:function size:0x4 +fn_1_2488 = .text:0x00002488; // type:function size:0x150 +fn_1_25D8 = .text:0x000025D8; // type:function size:0x11C +fn_1_26F4 = .text:0x000026F4; // type:function size:0x33C +fn_1_2A30 = .text:0x00002A30; // type:function size:0x2CC +fn_1_2CFC = .text:0x00002CFC; // type:function size:0xA4 +fn_1_2DA0 = .text:0x00002DA0; // type:function size:0x384 +fn_1_3124 = .text:0x00003124; // type:function size:0x1B0 +fn_1_32D4 = .text:0x000032D4; // type:function size:0x2C +fn_1_3300 = .text:0x00003300; // type:function size:0xBC +fn_1_33BC = .text:0x000033BC; // type:function size:0xBC +fn_1_3478 = .text:0x00003478; // type:function size:0x98 +fn_1_3510 = .text:0x00003510; // type:function size:0x24 +fn_1_3534 = .text:0x00003534; // type:function size:0x24 +fn_1_3558 = .text:0x00003558; // type:function size:0x718 +fn_1_3C70 = .text:0x00003C70; // type:function size:0x22C +fn_1_3E9C = .text:0x00003E9C; // type:function size:0xDC +fn_1_3F78 = .text:0x00003F78; // type:function size:0x40 +fn_1_3FB8 = .text:0x00003FB8; // type:function size:0x33C +fn_1_42F4 = .text:0x000042F4; // type:function size:0xCC +fn_1_43C0 = .text:0x000043C0; // type:function size:0x10 +fn_1_43D0 = .text:0x000043D0; // type:function size:0x1C +fn_1_43EC = .text:0x000043EC; // type:function size:0x4C +fn_1_4438 = .text:0x00004438; // type:function size:0x6C +fn_1_44A4 = .text:0x000044A4; // type:function size:0xE0 +fn_1_4584 = .text:0x00004584; // type:function size:0xA8 +fn_1_462C = .text:0x0000462C; // type:function size:0x48 +fn_1_4674 = .text:0x00004674; // type:function size:0x8C +fn_1_4700 = .text:0x00004700; // type:function size:0x54 +fn_1_4754 = .text:0x00004754; // type:function size:0x4 +fn_1_4758 = .text:0x00004758; // type:function size:0x520 +fn_1_4C78 = .text:0x00004C78; // type:function size:0x2F8 +fn_1_4F70 = .text:0x00004F70; // type:function size:0x104 +fn_1_5074 = .text:0x00005074; // type:function size:0x218 +fn_1_528C = .text:0x0000528C; // type:function size:0x288 +fn_1_5514 = .text:0x00005514; // type:function size:0x240 +fn_1_5754 = .text:0x00005754; // type:function size:0x278 +fn_1_59CC = .text:0x000059CC; // type:function size:0x118 +fn_1_5AE4 = .text:0x00005AE4; // type:function size:0xE0 +fn_1_5BC4 = .text:0x00005BC4; // type:function size:0xA8 +fn_1_5C6C = .text:0x00005C6C; // type:function size:0xAA4 +fn_1_6710 = .text:0x00006710; // type:function size:0x9A0 +fn_1_70B0 = .text:0x000070B0; // type:function size:0xC0 +fn_1_7170 = .text:0x00007170; // type:function size:0x80 +fn_1_71F0 = .text:0x000071F0; // type:function size:0xAC +fn_1_729C = .text:0x0000729C; // type:function size:0x3E0 +fn_1_767C = .text:0x0000767C; // type:function size:0x220 +fn_1_789C = .text:0x0000789C; // type:function size:0xDC +fn_1_7978 = .text:0x00007978; // type:function size:0xB0 +fn_1_7A28 = .text:0x00007A28; // type:function size:0x38 +fn_1_7A60 = .text:0x00007A60; // type:function size:0x38 +fn_1_7A98 = .text:0x00007A98; // type:function size:0xB0 +fn_1_7B48 = .text:0x00007B48; // type:function size:0x240 +fn_1_7D88 = .text:0x00007D88; // type:function size:0x1D0 +fn_1_7F58 = .text:0x00007F58; // type:function size:0x158 +fn_1_80B0 = .text:0x000080B0; // type:function size:0x6E0 +fn_1_8790 = .text:0x00008790; // type:function size:0x220 +fn_1_89B0 = .text:0x000089B0; // type:function size:0x43C +fn_1_8DEC = .text:0x00008DEC; // type:function size:0x184 +fn_1_8F70 = .text:0x00008F70; // type:function size:0x78 +fn_1_8FE8 = .text:0x00008FE8; // type:function size:0x10 +fn_1_8FF8 = .text:0x00008FF8; // type:function size:0xF8 +fn_1_90F0 = .text:0x000090F0; // type:function size:0x10 +fn_1_9100 = .text:0x00009100; // type:function size:0x4C +fn_1_914C = .text:0x0000914C; // type:function size:0x1C8 +fn_1_9314 = .text:0x00009314; // type:function size:0x54 +fn_1_9368 = .text:0x00009368; // type:function size:0x1C4 +fn_1_952C = .text:0x0000952C; // type:function size:0x4 +fn_1_9530 = .text:0x00009530; // type:function size:0x21C +fn_1_974C = .text:0x0000974C; // type:function size:0x1C4 +fn_1_9910 = .text:0x00009910; // type:function size:0x2B0 +fn_1_9BC0 = .text:0x00009BC0; // type:function size:0x120 +fn_1_9CE0 = .text:0x00009CE0; // type:function size:0x200 +fn_1_9EE0 = .text:0x00009EE0; // type:function size:0x54 +fn_1_9F34 = .text:0x00009F34; // type:function size:0x2F0 +fn_1_A224 = .text:0x0000A224; // type:function size:0x10 +fn_1_A234 = .text:0x0000A234; // type:function size:0x34 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x64 +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC data:4byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x18 +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x18 data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x58 +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x3C +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x1 data:byte +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x144 +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x24 +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x60 +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x14 +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x20 +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x60 +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 data:double +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 data:double +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x8 data:double +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 data:double +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x50 +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x50 +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 data:float +lbl_1_rodata_69C = .rodata:0x0000069C; // type:object size:0x4 data:float +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x4 data:float +lbl_1_rodata_6A4 = .rodata:0x000006A4; // type:object size:0x4 data:float +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float +lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 data:float +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x4 data:float +lbl_1_rodata_6B4 = .rodata:0x000006B4; // type:object size:0x4 data:float +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 data:double +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x4 data:float +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x8 data:double +lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x4 data:float +lbl_1_rodata_6D4 = .rodata:0x000006D4; // type:object size:0x4 data:float +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 data:float +lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 data:float +lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 data:float +lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 data:float +lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0x8 data:double +lbl_1_rodata_6F8 = .rodata:0x000006F8; // type:object size:0x4 data:float +lbl_1_rodata_700 = .rodata:0x00000700; // type:object size:0x8 data:double +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x4 data:float +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x8 data:double +lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 data:float +lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x8 data:double +lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float +lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float +lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float +lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x1 data:byte +lbl_1_rodata_738 = .rodata:0x00000738; // type:object size:0x4 data:float +lbl_1_rodata_73C = .rodata:0x0000073C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1C +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x14 +jumptable_1_data_30 = .data:0x00000030; // type:object size:0x28 scope:local +jumptable_1_data_58 = .data:0x00000058; // type:object size:0x28 scope:local +jumptable_1_data_80 = .data:0x00000080; // type:object size:0x20 scope:local +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA8 +lbl_1_data_148 = .data:0x00000148; // type:object size:0x18 +lbl_1_data_160 = .data:0x00000160; // type:object size:0x1E data:string +lbl_1_data_17E = .data:0x0000017E; // type:object size:0x1E data:string +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x14 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x1C +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x2C +jumptable_1_data_1F8 = .data:0x000001F8; // type:object size:0x24 scope:local +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x40 +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x1C +lbl_1_data_278 = .data:0x00000278; // type:object size:0x1C +lbl_1_data_294 = .data:0x00000294; // type:object size:0x18 +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x37 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:float +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x1C data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x1C data:float +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x1C data:float +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x8 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x8 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x14 +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m448Dll/splits.txt b/config/GMPP01_00/rels/m448Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m448Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m448Dll/symbols.txt b/config/GMPP01_00/rels/m448Dll/symbols.txt new file mode 100644 index 00000000..0ffb9d58 --- /dev/null +++ b/config/GMPP01_00/rels/m448Dll/symbols.txt @@ -0,0 +1,200 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x2EC +fn_1_38C = .text:0x0000038C; // type:function size:0xEC +fn_1_478 = .text:0x00000478; // type:function size:0x84 +fn_1_4FC = .text:0x000004FC; // type:function size:0xE3C +fn_1_1338 = .text:0x00001338; // type:function size:0x2FDC +fn_1_4314 = .text:0x00004314; // type:function size:0x2A94 +fn_1_6DA8 = .text:0x00006DA8; // type:function size:0x3E4 +fn_1_718C = .text:0x0000718C; // type:function size:0xC70 +fn_1_7DFC = .text:0x00007DFC; // type:function size:0x3FC +fn_1_81F8 = .text:0x000081F8; // type:function size:0xC10 +fn_1_8E08 = .text:0x00008E08; // type:function size:0x738 +fn_1_9540 = .text:0x00009540; // type:function size:0x154 +fn_1_9694 = .text:0x00009694; // type:function size:0x4A4 +fn_1_9B38 = .text:0x00009B38; // type:function size:0x120 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x14 data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x14 data:4byte +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x14 data:4byte +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x14 data:4byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x14 data:4byte +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x10 data:4byte +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x10 data:4byte +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0xC data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x54 +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x10 data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:4byte +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x50 +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x50 +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x50 +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x24 data:4byte +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x34 data:4byte +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x24 data:4byte +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x50 +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x50 +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x18 data:4byte +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x18 data:4byte +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x8 data:4byte +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x28 data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x28 data:4byte +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0xC data:4byte +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0xC data:4byte +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x1 data:byte +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float +lbl_1_rodata_5EC = .rodata:0x000005EC; // type:object size:0x4 data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x28 +lbl_1_data_28 = .data:0x00000028; // type:object size:0x28 +lbl_1_data_50 = .data:0x00000050; // type:object size:0x2C +lbl_1_data_7C = .data:0x0000007C; // type:object size:0x2C +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xB data:byte +lbl_1_data_B3 = .data:0x000000B3; // type:object size:0xD +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x2C +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x2C data:4byte +lbl_1_data_118 = .data:0x00000118; // type:object size:0x58 +lbl_1_data_170 = .data:0x00000170; // type:object size:0x8 data:4byte +lbl_1_data_178 = .data:0x00000178; // type:object size:0x20 +lbl_1_data_198 = .data:0x00000198; // type:object size:0x2 data:2byte +lbl_1_data_19A = .data:0x0000019A; // type:object size:0x2 data:2byte +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x2 data:2byte +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x8 data:4byte +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x8 +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x8 +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x20 +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x10 data:float +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x9 data:string +lbl_1_data_1F5 = .data:0x000001F5; // type:object size:0x1B +jumptable_1_data_210 = .data:0x00000210; // type:object size:0x2C scope:local +jumptable_1_data_23C = .data:0x0000023C; // type:object size:0x20 scope:local +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x4 data:4byte +lbl_1_data_260 = .data:0x00000260; // type:object size:0x4 data:float +lbl_1_data_264 = .data:0x00000264; // type:object size:0x4 data:float +lbl_1_data_268 = .data:0x00000268; // type:object size:0x4 data:float +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x4 data:float +jumptable_1_data_270 = .data:0x00000270; // type:object size:0x24 scope:local +jumptable_1_data_294 = .data:0x00000294; // type:object size:0x20 scope:local +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x19 data:string +lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x20 +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x8 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0xD0 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x2D0 data:4byte diff --git a/config/GMPP01_00/rels/m449Dll/splits.txt b/config/GMPP01_00/rels/m449Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m449Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m449Dll/symbols.txt b/config/GMPP01_00/rels/m449Dll/symbols.txt new file mode 100644 index 00000000..acf85bcc --- /dev/null +++ b/config/GMPP01_00/rels/m449Dll/symbols.txt @@ -0,0 +1,209 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x358 +fn_1_3F8 = .text:0x000003F8; // type:function size:0x360 +fn_1_758 = .text:0x00000758; // type:function size:0x5EB8 +fn_1_6610 = .text:0x00006610; // type:function size:0x8 +fn_1_6618 = .text:0x00006618; // type:function size:0x2C +fn_1_6644 = .text:0x00006644; // type:function size:0x140 +fn_1_6784 = .text:0x00006784; // type:function size:0xCC +fn_1_6850 = .text:0x00006850; // type:function size:0x958 +fn_1_71A8 = .text:0x000071A8; // type:function size:0x39C +fn_1_7544 = .text:0x00007544; // type:function size:0x988 +fn_1_7ECC = .text:0x00007ECC; // type:function size:0xC8 +fn_1_7F94 = .text:0x00007F94; // type:function size:0x5A4 +fn_1_8538 = .text:0x00008538; // type:function size:0xFC0 +fn_1_94F8 = .text:0x000094F8; // type:function size:0xE0 +fn_1_95D8 = .text:0x000095D8; // type:function size:0x460 +fn_1_9A38 = .text:0x00009A38; // type:function size:0x9C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x10 +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC0 +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0xC0 +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC0 +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x20 data:4byte +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:double +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x60 +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 data:double +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x18 data:4byte +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x34 data:4byte +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 data:double +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 data:double +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x20 data:4byte +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x8 data:4byte +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x48 +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x48 +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 data:float +lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 data:float +lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 data:float +lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 data:float +lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0xC data:4byte +lbl_1_rodata_6FC = .rodata:0x000006FC; // type:object size:0xC data:4byte +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x1 data:byte +lbl_1_rodata_70C = .rodata:0x0000070C; // type:object size:0x4 data:float +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x4 data:float +lbl_1_rodata_714 = .rodata:0x00000714; // type:object size:0x4 data:float +lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 data:float +lbl_1_rodata_71C = .rodata:0x0000071C; // type:object size:0x4 data:float +lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x4 data:float +lbl_1_rodata_724 = .rodata:0x00000724; // type:object size:0x4 data:float +lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float +lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float +lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float +lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x48 +lbl_1_data_48 = .data:0x00000048; // type:object size:0x48 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x10 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x10 +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x38 +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x50 +lbl_1_data_138 = .data:0x00000138; // type:object size:0x50 +lbl_1_data_188 = .data:0x00000188; // type:object size:0x50 +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x50 +lbl_1_data_228 = .data:0x00000228; // type:object size:0x2 data:2byte +lbl_1_data_22A = .data:0x0000022A; // type:object size:0x2 data:2byte +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x4 data:4byte +lbl_1_data_230 = .data:0x00000230; // type:object size:0xC data:4byte +lbl_1_data_23C = .data:0x0000023C; // type:object size:0x28 data:4byte +lbl_1_data_264 = .data:0x00000264; // type:object size:0x20 +lbl_1_data_284 = .data:0x00000284; // type:object size:0x4 data:4byte +lbl_1_data_288 = .data:0x00000288; // type:object size:0x4 data:float +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x4 data:float +lbl_1_data_290 = .data:0x00000290; // type:object size:0x4 data:float +lbl_1_data_294 = .data:0x00000294; // type:object size:0x4 data:float +jumptable_1_data_298 = .data:0x00000298; // type:object size:0x1C scope:local +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x19 data:string +lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x24 data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:float +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x90 data:4byte diff --git a/config/GMPP01_00/rels/m450Dll/splits.txt b/config/GMPP01_00/rels/m450Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m450Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m450Dll/symbols.txt b/config/GMPP01_00/rels/m450Dll/symbols.txt new file mode 100644 index 00000000..09e43eee --- /dev/null +++ b/config/GMPP01_00/rels/m450Dll/symbols.txt @@ -0,0 +1,558 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x204 +fn_1_784 = .text:0x00000784; // type:function size:0x240 +fn_1_9C4 = .text:0x000009C4; // type:function size:0x54 +fn_1_A18 = .text:0x00000A18; // type:function size:0x10C +fn_1_B24 = .text:0x00000B24; // type:function size:0x680 +fn_1_11A4 = .text:0x000011A4; // type:function size:0x15C +fn_1_1300 = .text:0x00001300; // type:function size:0x8C +fn_1_138C = .text:0x0000138C; // type:function size:0x334 +fn_1_16C0 = .text:0x000016C0; // type:function size:0x350 +fn_1_1A10 = .text:0x00001A10; // type:function size:0x2B8 +fn_1_1CC8 = .text:0x00001CC8; // type:function size:0x58 +fn_1_1D20 = .text:0x00001D20; // type:function size:0xB0 +fn_1_1DD0 = .text:0x00001DD0; // type:function size:0x104 +fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x34 +fn_1_1F08 = .text:0x00001F08; // type:function size:0x6C +fn_1_1F74 = .text:0x00001F74; // type:function size:0x3F0 +fn_1_2364 = .text:0x00002364; // type:function size:0x64 +fn_1_23C8 = .text:0x000023C8; // type:function size:0xE0 +fn_1_24A8 = .text:0x000024A8; // type:function size:0x32C +fn_1_27D4 = .text:0x000027D4; // type:function size:0x3AC +fn_1_2B80 = .text:0x00002B80; // type:function size:0x30 +fn_1_2BB0 = .text:0x00002BB0; // type:function size:0x1C +fn_1_2BCC = .text:0x00002BCC; // type:function size:0x18C +fn_1_2D58 = .text:0x00002D58; // type:function size:0x8 +fn_1_2D60 = .text:0x00002D60; // type:function size:0x8 +fn_1_2D68 = .text:0x00002D68; // type:function size:0x8 +fn_1_2D70 = .text:0x00002D70; // type:function size:0x8 +fn_1_2D78 = .text:0x00002D78; // type:function size:0xC +fn_1_2D84 = .text:0x00002D84; // type:function size:0x60 +fn_1_2DE4 = .text:0x00002DE4; // type:function size:0xB90 +fn_1_3974 = .text:0x00003974; // type:function size:0x31C +fn_1_3C90 = .text:0x00003C90; // type:function size:0xD8 +fn_1_3D68 = .text:0x00003D68; // type:function size:0x114 +fn_1_3E7C = .text:0x00003E7C; // type:function size:0xB8 +fn_1_3F34 = .text:0x00003F34; // type:function size:0xA0 +fn_1_3FD4 = .text:0x00003FD4; // type:function size:0x9C +fn_1_4070 = .text:0x00004070; // type:function size:0xE18 +fn_1_4E88 = .text:0x00004E88; // type:function size:0x250 +fn_1_50D8 = .text:0x000050D8; // type:function size:0x10 +fn_1_50E8 = .text:0x000050E8; // type:function size:0x10 +fn_1_50F8 = .text:0x000050F8; // type:function size:0x400 +fn_1_54F8 = .text:0x000054F8; // type:function size:0x7C +fn_1_5574 = .text:0x00005574; // type:function size:0x5C +fn_1_55D0 = .text:0x000055D0; // type:function size:0xA4 +fn_1_5674 = .text:0x00005674; // type:function size:0x748 +fn_1_5DBC = .text:0x00005DBC; // type:function size:0xCC +fn_1_5E88 = .text:0x00005E88; // type:function size:0x658 +fn_1_64E0 = .text:0x000064E0; // type:function size:0x108 +fn_1_65E8 = .text:0x000065E8; // type:function size:0x38 +fn_1_6620 = .text:0x00006620; // type:function size:0x30 +fn_1_6650 = .text:0x00006650; // type:function size:0x3C +fn_1_668C = .text:0x0000668C; // type:function size:0xBC +fn_1_6748 = .text:0x00006748; // type:function size:0x260 +fn_1_69A8 = .text:0x000069A8; // type:function size:0xD0 +fn_1_6A78 = .text:0x00006A78; // type:function size:0xC8 +fn_1_6B40 = .text:0x00006B40; // type:function size:0xD8 +fn_1_6C18 = .text:0x00006C18; // type:function size:0x48 +fn_1_6C60 = .text:0x00006C60; // type:function size:0x7C +fn_1_6CDC = .text:0x00006CDC; // type:function size:0x3C +fn_1_6D18 = .text:0x00006D18; // type:function size:0x70 +fn_1_6D88 = .text:0x00006D88; // type:function size:0x714 +fn_1_749C = .text:0x0000749C; // type:function size:0x6A4 +fn_1_7B40 = .text:0x00007B40; // type:function size:0x84 +fn_1_7BC4 = .text:0x00007BC4; // type:function size:0x84 +fn_1_7C48 = .text:0x00007C48; // type:function size:0xA8 +fn_1_7CF0 = .text:0x00007CF0; // type:function size:0x3E0 +fn_1_80D0 = .text:0x000080D0; // type:function size:0x3E0 +fn_1_84B0 = .text:0x000084B0; // type:function size:0x6DC +fn_1_8B8C = .text:0x00008B8C; // type:function size:0x498 +fn_1_9024 = .text:0x00009024; // type:function size:0x64C +fn_1_9670 = .text:0x00009670; // type:function size:0x164 +fn_1_97D4 = .text:0x000097D4; // type:function size:0x380 +fn_1_9B54 = .text:0x00009B54; // type:function size:0x3A8 +fn_1_9EFC = .text:0x00009EFC; // type:function size:0x478 +fn_1_A374 = .text:0x0000A374; // type:function size:0xAC +fn_1_A420 = .text:0x0000A420; // type:function size:0x190 +fn_1_A5B0 = .text:0x0000A5B0; // type:function size:0x1CC +fn_1_A77C = .text:0x0000A77C; // type:function size:0x5C +fn_1_A7D8 = .text:0x0000A7D8; // type:function size:0x140 +fn_1_A918 = .text:0x0000A918; // type:function size:0x148 +fn_1_AA60 = .text:0x0000AA60; // type:function size:0xD8 +fn_1_AB38 = .text:0x0000AB38; // type:function size:0x48 +fn_1_AB80 = .text:0x0000AB80; // type:function size:0x188 +fn_1_AD08 = .text:0x0000AD08; // type:function size:0x2E98 +fn_1_DBA0 = .text:0x0000DBA0; // type:function size:0x4F8 +fn_1_E098 = .text:0x0000E098; // type:function size:0x90 +fn_1_E128 = .text:0x0000E128; // type:function size:0x30 +fn_1_E158 = .text:0x0000E158; // type:function size:0x114 +fn_1_E26C = .text:0x0000E26C; // type:function size:0x10C +fn_1_E378 = .text:0x0000E378; // type:function size:0xB0 +fn_1_E428 = .text:0x0000E428; // type:function size:0x18C +fn_1_E5B4 = .text:0x0000E5B4; // type:function size:0x314 +fn_1_E8C8 = .text:0x0000E8C8; // type:function size:0x138 +fn_1_EA00 = .text:0x0000EA00; // type:function size:0x11C +fn_1_EB1C = .text:0x0000EB1C; // type:function size:0x1E0 +fn_1_ECFC = .text:0x0000ECFC; // type:function size:0x3010 +fn_1_11D0C = .text:0x00011D0C; // type:function size:0x4D8 +fn_1_121E4 = .text:0x000121E4; // type:function size:0x30C +fn_1_124F0 = .text:0x000124F0; // type:function size:0x80 +fn_1_12570 = .text:0x00012570; // type:function size:0xC8 +fn_1_12638 = .text:0x00012638; // type:function size:0x294 +fn_1_128CC = .text:0x000128CC; // type:function size:0x100 +fn_1_129CC = .text:0x000129CC; // type:function size:0x164 +fn_1_12B30 = .text:0x00012B30; // type:function size:0x1F8 +fn_1_12D28 = .text:0x00012D28; // type:function size:0x4 +fn_1_12D2C = .text:0x00012D2C; // type:function size:0xE0 +fn_1_12E0C = .text:0x00012E0C; // type:function size:0x248 +fn_1_13054 = .text:0x00013054; // type:function size:0xD0 +fn_1_13124 = .text:0x00013124; // type:function size:0x3EC +fn_1_13510 = .text:0x00013510; // type:function size:0x1B4 +fn_1_136C4 = .text:0x000136C4; // type:function size:0x29C +fn_1_13960 = .text:0x00013960; // type:function size:0x19C +fn_1_13AFC = .text:0x00013AFC; // type:function size:0xC +fn_1_13B08 = .text:0x00013B08; // type:function size:0x38 +fn_1_13B40 = .text:0x00013B40; // type:function size:0x34 +fn_1_13B74 = .text:0x00013B74; // type:function size:0x364 +fn_1_13ED8 = .text:0x00013ED8; // type:function size:0x988 +fn_1_14860 = .text:0x00014860; // type:function size:0x110 +fn_1_14970 = .text:0x00014970; // type:function size:0xF8 +fn_1_14A68 = .text:0x00014A68; // type:function size:0x110 +fn_1_14B78 = .text:0x00014B78; // type:function size:0x60 +fn_1_14BD8 = .text:0x00014BD8; // type:function size:0xC0 +fn_1_14C98 = .text:0x00014C98; // type:function size:0x620 +fn_1_152B8 = .text:0x000152B8; // type:function size:0x840 +fn_1_15AF8 = .text:0x00015AF8; // type:function size:0x64 +fn_1_15B5C = .text:0x00015B5C; // type:function size:0x500 +fn_1_1605C = .text:0x0001605C; // type:function size:0x1D4 +fn_1_16230 = .text:0x00016230; // type:function size:0x94 +fn_1_162C4 = .text:0x000162C4; // type:function size:0x64 +fn_1_16328 = .text:0x00016328; // type:function size:0x598 +fn_1_168C0 = .text:0x000168C0; // type:function size:0x2B4 +fn_1_16B74 = .text:0x00016B74; // type:function size:0x130 +fn_1_16CA4 = .text:0x00016CA4; // type:function size:0x4D0 +fn_1_17174 = .text:0x00017174; // type:function size:0x19C +fn_1_17310 = .text:0x00017310; // type:function size:0x114 +fn_1_17424 = .text:0x00017424; // type:function size:0x4FC +fn_1_17920 = .text:0x00017920; // type:function size:0x24C +fn_1_17B6C = .text:0x00017B6C; // type:function size:0x868 +fn_1_183D4 = .text:0x000183D4; // type:function size:0x284 +fn_1_18658 = .text:0x00018658; // type:function size:0x888 +fn_1_18EE0 = .text:0x00018EE0; // type:function size:0x37C +fn_1_1925C = .text:0x0001925C; // type:function size:0xE4 +fn_1_19340 = .text:0x00019340; // type:function size:0xC0 +fn_1_19400 = .text:0x00019400; // type:function size:0x1FC +fn_1_195FC = .text:0x000195FC; // type:function size:0x14C +fn_1_19748 = .text:0x00019748; // type:function size:0x278 +fn_1_199C0 = .text:0x000199C0; // type:function size:0x208 +fn_1_19BC8 = .text:0x00019BC8; // type:function size:0xC8 +fn_1_19C90 = .text:0x00019C90; // type:function size:0x334 +fn_1_19FC4 = .text:0x00019FC4; // type:function size:0x4C +fn_1_1A010 = .text:0x0001A010; // type:function size:0x1BC +fn_1_1A1CC = .text:0x0001A1CC; // type:function size:0x1D4 +fn_1_1A3A0 = .text:0x0001A3A0; // type:function size:0x284 +_prolog = .text:0x0001A624; // type:function size:0x54 scope:global +_epilog = .text:0x0001A678; // type:function size:0x4C scope:global +fn_1_1A6C4 = .text:0x0001A6C4; // type:function size:0x22C +fn_1_1A8F0 = .text:0x0001A8F0; // type:function size:0x784 +fn_1_1B074 = .text:0x0001B074; // type:function size:0x94 +fn_1_1B108 = .text:0x0001B108; // type:function size:0x154 +fn_1_1B25C = .text:0x0001B25C; // type:function size:0x21C +fn_1_1B478 = .text:0x0001B478; // type:function size:0x48 +fn_1_1B4C0 = .text:0x0001B4C0; // type:function size:0x134 +fn_1_1B5F4 = .text:0x0001B5F4; // type:function size:0x1EC +fn_1_1B7E0 = .text:0x0001B7E0; // type:function size:0x830 +fn_1_1C010 = .text:0x0001C010; // type:function size:0x274 +fn_1_1C284 = .text:0x0001C284; // type:function size:0xC8 +fn_1_1C34C = .text:0x0001C34C; // type:function size:0x98 +fn_1_1C3E4 = .text:0x0001C3E4; // type:function size:0x2B0 +fn_1_1C694 = .text:0x0001C694; // type:function size:0x98 +fn_1_1C72C = .text:0x0001C72C; // type:function size:0x11C +fn_1_1C848 = .text:0x0001C848; // type:function size:0x18B8 +fn_1_1E100 = .text:0x0001E100; // type:function size:0x1F6C +fn_1_2006C = .text:0x0002006C; // type:function size:0xB4 +fn_1_20120 = .text:0x00020120; // type:function size:0x31C0 +fn_1_232E0 = .text:0x000232E0; // type:function size:0x440 +fn_1_23720 = .text:0x00023720; // type:function size:0x530 +fn_1_23C50 = .text:0x00023C50; // type:function size:0x980 +fn_1_245D0 = .text:0x000245D0; // type:function size:0x4A08 +fn_1_28FD8 = .text:0x00028FD8; // type:function size:0x8C0 +fn_1_29898 = .text:0x00029898; // type:function size:0xD0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x1 data:byte +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:4byte +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x58 +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x58 +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:4byte +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x8 data:4byte +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:4byte +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 +lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 +lbl_1_data_80 = .data:0x00000080; // type:object size:0x1F data:string +lbl_1_data_9F = .data:0x0000009F; // type:object size:0xD +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x8 +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4C +lbl_1_data_100 = .data:0x00000100; // type:object size:0x14 +lbl_1_data_114 = .data:0x00000114; // type:object size:0x3C +lbl_1_data_150 = .data:0x00000150; // type:object size:0x3C +lbl_1_data_18C = .data:0x0000018C; // type:object size:0x20 +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x20 +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x10 +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x28 +lbl_1_data_204 = .data:0x00000204; // type:object size:0x30 +lbl_1_data_234 = .data:0x00000234; // type:object size:0x20 +lbl_1_data_254 = .data:0x00000254; // type:object size:0x14 +lbl_1_data_268 = .data:0x00000268; // type:object size:0x14 +lbl_1_data_27C = .data:0x0000027C; // type:object size:0x14 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x14 +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x12 data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x13 data:string +lbl_1_data_2C9 = .data:0x000002C9; // type:object size:0x14 data:string +lbl_1_data_2DD = .data:0x000002DD; // type:object size:0x1C data:string +lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0x12 data:string +lbl_1_data_30B = .data:0x0000030B; // type:object size:0x11 +jumptable_1_data_31C = .data:0x0000031C; // type:object size:0x60 scope:local +lbl_1_data_37C = .data:0x0000037C; // type:object size:0x12 data:string +lbl_1_data_38E = .data:0x0000038E; // type:object size:0x12 data:string +lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x13 data:string +lbl_1_data_3B3 = .data:0x000003B3; // type:object size:0x14 data:string +lbl_1_data_3C7 = .data:0x000003C7; // type:object size:0x14 data:string +lbl_1_data_3DB = .data:0x000003DB; // type:object size:0x13 data:string +lbl_1_data_3EE = .data:0x000003EE; // type:object size:0x1E +jumptable_1_data_40C = .data:0x0000040C; // type:object size:0x44 scope:local +lbl_1_data_450 = .data:0x00000450; // type:object size:0x14 +lbl_1_data_464 = .data:0x00000464; // type:object size:0xC data:4byte +lbl_1_data_470 = .data:0x00000470; // type:object size:0xC +lbl_1_data_47C = .data:0x0000047C; // type:object size:0xC data:4byte +lbl_1_data_488 = .data:0x00000488; // type:object size:0xC data:4byte +lbl_1_data_494 = .data:0x00000494; // type:object size:0xC data:4byte +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0xC data:4byte +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0xC data:4byte +lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0xC data:4byte +lbl_1_data_4C4 = .data:0x000004C4; // type:object size:0xC data:4byte +lbl_1_data_4D0 = .data:0x000004D0; // type:object size:0xC data:4byte +lbl_1_data_4DC = .data:0x000004DC; // type:object size:0xC data:4byte +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0xC +lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0xC +lbl_1_data_500 = .data:0x00000500; // type:object size:0x4 +lbl_1_data_504 = .data:0x00000504; // type:object size:0xC +lbl_1_data_510 = .data:0x00000510; // type:object size:0xC +lbl_1_data_51C = .data:0x0000051C; // type:object size:0x30 +lbl_1_data_54C = .data:0x0000054C; // type:object size:0x10 data:string +lbl_1_data_55C = .data:0x0000055C; // type:object size:0x10 data:string +lbl_1_data_56C = .data:0x0000056C; // type:object size:0x10 data:string +lbl_1_data_57C = .data:0x0000057C; // type:object size:0x10 data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x10 data:string +lbl_1_data_59C = .data:0x0000059C; // type:object size:0x10 data:string +lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x10 data:string +lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x10 data:string +lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x80 +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x2E0 +lbl_1_data_92C = .data:0x0000092C; // type:object size:0x20 +lbl_1_data_94C = .data:0x0000094C; // type:object size:0xA0 +lbl_1_data_9EC = .data:0x000009EC; // type:object size:0x20 +lbl_1_data_A0C = .data:0x00000A0C; // type:object size:0x38 data:4byte +lbl_1_data_A44 = .data:0x00000A44; // type:object size:0x13 data:string +lbl_1_data_A57 = .data:0x00000A57; // type:object size:0x13 data:string +lbl_1_data_A6A = .data:0x00000A6A; // type:object size:0x16 +lbl_1_data_A80 = .data:0x00000A80; // type:object size:0x18C +lbl_1_data_C0C = .data:0x00000C0C; // type:object size:0x13 data:string +lbl_1_data_C1F = .data:0x00000C1F; // type:object size:0x13 data:string +lbl_1_data_C32 = .data:0x00000C32; // type:object size:0x13 data:string +lbl_1_data_C45 = .data:0x00000C45; // type:object size:0x13 data:string +lbl_1_data_C58 = .data:0x00000C58; // type:object size:0x1B8 +lbl_1_data_E10 = .data:0x00000E10; // type:object size:0x11 data:string +lbl_1_data_E21 = .data:0x00000E21; // type:object size:0x11 data:string +lbl_1_data_E32 = .data:0x00000E32; // type:object size:0x11 data:string +lbl_1_data_E43 = .data:0x00000E43; // type:object size:0x11 data:string +lbl_1_data_E54 = .data:0x00000E54; // type:object size:0x14 +lbl_1_data_E68 = .data:0x00000E68; // type:object size:0x14 +lbl_1_data_E7C = .data:0x00000E7C; // type:object size:0x84 +lbl_1_data_F00 = .data:0x00000F00; // type:object size:0x5C +lbl_1_data_F5C = .data:0x00000F5C; // type:object size:0x10 +lbl_1_data_F6C = .data:0x00000F6C; // type:object size:0x18 +lbl_1_data_F84 = .data:0x00000F84; // type:object size:0x14 +lbl_1_data_F98 = .data:0x00000F98; // type:object size:0x14 +lbl_1_data_FAC = .data:0x00000FAC; // type:object size:0x18 +lbl_1_data_FC4 = .data:0x00000FC4; // type:object size:0x14 +lbl_1_data_FD8 = .data:0x00000FD8; // type:object size:0x14 +lbl_1_data_FEC = .data:0x00000FEC; // type:object size:0x14 +lbl_1_data_1000 = .data:0x00001000; // type:object size:0x14 +lbl_1_data_1014 = .data:0x00001014; // type:object size:0x28 +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x28 +lbl_1_data_1064 = .data:0x00001064; // type:object size:0x28 +lbl_1_data_108C = .data:0x0000108C; // type:object size:0x28 +lbl_1_data_10B4 = .data:0x000010B4; // type:object size:0x28 +lbl_1_data_10DC = .data:0x000010DC; // type:object size:0x28 +lbl_1_data_1104 = .data:0x00001104; // type:object size:0x28 +lbl_1_data_112C = .data:0x0000112C; // type:object size:0x28 +lbl_1_data_1154 = .data:0x00001154; // type:object size:0x28 +lbl_1_data_117C = .data:0x0000117C; // type:object size:0x28 +lbl_1_data_11A4 = .data:0x000011A4; // type:object size:0x28 +lbl_1_data_11CC = .data:0x000011CC; // type:object size:0x28 +lbl_1_data_11F4 = .data:0x000011F4; // type:object size:0x10 +lbl_1_data_1204 = .data:0x00001204; // type:object size:0xC +lbl_1_data_1210 = .data:0x00001210; // type:object size:0xC +lbl_1_data_121C = .data:0x0000121C; // type:object size:0xC +lbl_1_data_1228 = .data:0x00001228; // type:object size:0xC +lbl_1_data_1234 = .data:0x00001234; // type:object size:0x20 +lbl_1_data_1254 = .data:0x00001254; // type:object size:0x13 data:string +lbl_1_data_1267 = .data:0x00001267; // type:object size:0x13 data:string +lbl_1_data_127A = .data:0x0000127A; // type:object size:0x13 data:string +lbl_1_data_128D = .data:0x0000128D; // type:object size:0x13 data:string +lbl_1_data_12A0 = .data:0x000012A0; // type:object size:0x10 +lbl_1_data_12B0 = .data:0x000012B0; // type:object size:0x13 data:string +lbl_1_data_12C3 = .data:0x000012C3; // type:object size:0x13 data:string +lbl_1_data_12D6 = .data:0x000012D6; // type:object size:0x13 data:string +lbl_1_data_12E9 = .data:0x000012E9; // type:object size:0x13 data:string +lbl_1_data_12FC = .data:0x000012FC; // type:object size:0x13 data:string +lbl_1_data_130F = .data:0x0000130F; // type:object size:0x13 data:string +lbl_1_data_1322 = .data:0x00001322; // type:object size:0x13 data:string +lbl_1_data_1335 = .data:0x00001335; // type:object size:0x13 data:string +lbl_1_data_1348 = .data:0x00001348; // type:object size:0x14 +lbl_1_data_135C = .data:0x0000135C; // type:object size:0x24 +lbl_1_data_1380 = .data:0x00001380; // type:object size:0x38 data:4byte +lbl_1_data_13B8 = .data:0x000013B8; // type:object size:0x38 data:4byte +lbl_1_data_13F0 = .data:0x000013F0; // type:object size:0x13 data:string +lbl_1_data_1403 = .data:0x00001403; // type:object size:0x13 data:string +lbl_1_data_1416 = .data:0x00001416; // type:object size:0x13 data:string +lbl_1_data_1429 = .data:0x00001429; // type:object size:0x13 data:string +lbl_1_data_143C = .data:0x0000143C; // type:object size:0x14 +lbl_1_data_1450 = .data:0x00001450; // type:object size:0xB4 +lbl_1_data_1504 = .data:0x00001504; // type:object size:0x50 +lbl_1_data_1554 = .data:0x00001554; // type:object size:0x13 data:string +lbl_1_data_1567 = .data:0x00001567; // type:object size:0x13 data:string +lbl_1_data_157A = .data:0x0000157A; // type:object size:0x13 data:string +lbl_1_data_158D = .data:0x0000158D; // type:object size:0x13 data:string +lbl_1_data_15A0 = .data:0x000015A0; // type:object size:0x13 data:string +lbl_1_data_15B3 = .data:0x000015B3; // type:object size:0x12 data:string +lbl_1_data_15C5 = .data:0x000015C5; // type:object size:0x25 data:string +lbl_1_data_15EA = .data:0x000015EA; // type:object size:0x22 data:string +lbl_1_data_160C = .data:0x0000160C; // type:object size:0x9 data:string +lbl_1_data_1615 = .data:0x00001615; // type:object size:0xA data:string +lbl_1_data_161F = .data:0x0000161F; // type:object size:0xE data:string +lbl_1_data_162D = .data:0x0000162D; // type:object size:0x6 data:string +lbl_1_data_1633 = .data:0x00001633; // type:object size:0x1D data:string +jumptable_1_data_1650 = .data:0x00001650; // type:object size:0x70 scope:local +lbl_1_data_16C0 = .data:0x000016C0; // type:object size:0x1C +jumptable_1_data_16DC = .data:0x000016DC; // type:object size:0xC4 scope:local +lbl_1_data_17A0 = .data:0x000017A0; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 data:2byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x18 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x3C data:float +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x30 +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0xC data:4byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:float +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0xC data:float +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x8 +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x4 +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x4 +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0xC data:4byte +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x4 data:4byte +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte +lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:4byte +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:4byte +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x4 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:4byte +lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x4 data:float +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x8 data:float +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x4 data:4byte +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte +lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x4 data:4byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x4 data:4byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x5C data:4byte +lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 data:4byte +lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x4 data:float +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 data:4byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x100 +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x40 data:4byte +lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0x4 data:float +lbl_1_bss_2F4 = .bss:0x000002F4; // type:object size:0x4 data:4byte +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x4 data:4byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0x2 data:2byte +lbl_1_bss_2FE = .bss:0x000002FE; // type:object size:0x2 data:2byte +lbl_1_bss_300 = .bss:0x00000300; // type:object size:0x4 data:4byte +lbl_1_bss_304 = .bss:0x00000304; // type:object size:0x4 data:4byte +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0x4 data:4byte +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0xC data:4byte +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0xC data:4byte +lbl_1_bss_324 = .bss:0x00000324; // type:object size:0xC data:4byte +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0xC data:4byte +lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x4 data:4byte +lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x18 data:4byte +lbl_1_bss_358 = .bss:0x00000358; // type:object size:0xC data:4byte diff --git a/config/GMPP01_00/rels/m451Dll/splits.txt b/config/GMPP01_00/rels/m451Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m451Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m451Dll/symbols.txt b/config/GMPP01_00/rels/m451Dll/symbols.txt new file mode 100644 index 00000000..31e776c0 --- /dev/null +++ b/config/GMPP01_00/rels/m451Dll/symbols.txt @@ -0,0 +1,216 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x71C +fn_1_7BC = .text:0x000007BC; // type:function size:0x9C +fn_1_858 = .text:0x00000858; // type:function size:0xC0 +fn_1_918 = .text:0x00000918; // type:function size:0x214 +fn_1_B2C = .text:0x00000B2C; // type:function size:0x1038 +fn_1_1B64 = .text:0x00001B64; // type:function size:0x598 +fn_1_20FC = .text:0x000020FC; // type:function size:0xB8 +fn_1_21B4 = .text:0x000021B4; // type:function size:0xC0 +fn_1_2274 = .text:0x00002274; // type:function size:0x6C +fn_1_22E0 = .text:0x000022E0; // type:function size:0x35C +fn_1_263C = .text:0x0000263C; // type:function size:0x3F8 +fn_1_2A34 = .text:0x00002A34; // type:function size:0x21C +fn_1_2C50 = .text:0x00002C50; // type:function size:0x2B8 +fn_1_2F08 = .text:0x00002F08; // type:function size:0xE4 +fn_1_2FEC = .text:0x00002FEC; // type:function size:0xC4 +fn_1_30B0 = .text:0x000030B0; // type:function size:0xA4 +fn_1_3154 = .text:0x00003154; // type:function size:0x670 +fn_1_37C4 = .text:0x000037C4; // type:function size:0xFA4 +fn_1_4768 = .text:0x00004768; // type:function size:0xFC +fn_1_4864 = .text:0x00004864; // type:function size:0x60 +fn_1_48C4 = .text:0x000048C4; // type:function size:0x8F0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC +lbl_1_data_78 = .data:0x00000078; // type:object size:0xC +lbl_1_data_84 = .data:0x00000084; // type:object size:0xB data:string +lbl_1_data_8F = .data:0x0000008F; // type:object size:0xB data:string +lbl_1_data_9A = .data:0x0000009A; // type:object size:0xB data:string +lbl_1_data_A5 = .data:0x000000A5; // type:object size:0xB data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0xB data:string +lbl_1_data_BB = .data:0x000000BB; // type:object size:0xB data:string +lbl_1_data_C6 = .data:0x000000C6; // type:object size:0xB data:string +lbl_1_data_D1 = .data:0x000000D1; // type:object size:0xB data:string +lbl_1_data_DC = .data:0x000000DC; // type:object size:0xB data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0xB data:string +lbl_1_data_F2 = .data:0x000000F2; // type:object size:0xB data:string +lbl_1_data_FD = .data:0x000000FD; // type:object size:0xB data:string +lbl_1_data_108 = .data:0x00000108; // type:object size:0xB data:string +lbl_1_data_113 = .data:0x00000113; // type:object size:0xB data:string +lbl_1_data_11E = .data:0x0000011E; // type:object size:0xB data:string +lbl_1_data_129 = .data:0x00000129; // type:object size:0xB data:string +lbl_1_data_134 = .data:0x00000134; // type:object size:0xB data:string +lbl_1_data_13F = .data:0x0000013F; // type:object size:0xB data:string +lbl_1_data_14A = .data:0x0000014A; // type:object size:0xB data:string +lbl_1_data_155 = .data:0x00000155; // type:object size:0xB data:string +lbl_1_data_160 = .data:0x00000160; // type:object size:0xB data:string +lbl_1_data_16B = .data:0x0000016B; // type:object size:0xB data:string +lbl_1_data_176 = .data:0x00000176; // type:object size:0xB data:string +lbl_1_data_181 = .data:0x00000181; // type:object size:0xB data:string +lbl_1_data_18C = .data:0x0000018C; // type:object size:0xB data:string +lbl_1_data_197 = .data:0x00000197; // type:object size:0xB data:string +lbl_1_data_1A2 = .data:0x000001A2; // type:object size:0xB data:string +lbl_1_data_1AD = .data:0x000001AD; // type:object size:0xB data:string +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0xB data:string +lbl_1_data_1C3 = .data:0x000001C3; // type:object size:0xB data:string +lbl_1_data_1CE = .data:0x000001CE; // type:object size:0xB data:string +lbl_1_data_1D9 = .data:0x000001D9; // type:object size:0xB data:string +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0xB data:string +lbl_1_data_1EF = .data:0x000001EF; // type:object size:0xB data:string +lbl_1_data_1FA = .data:0x000001FA; // type:object size:0xB data:string +lbl_1_data_205 = .data:0x00000205; // type:object size:0xB data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0xB data:string +lbl_1_data_21B = .data:0x0000021B; // type:object size:0xB data:string +lbl_1_data_226 = .data:0x00000226; // type:object size:0xB data:string +lbl_1_data_231 = .data:0x00000231; // type:object size:0xB data:string +lbl_1_data_23C = .data:0x0000023C; // type:object size:0xB data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0xB data:string +lbl_1_data_252 = .data:0x00000252; // type:object size:0xB data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0xB data:string +lbl_1_data_268 = .data:0x00000268; // type:object size:0xB data:string +lbl_1_data_273 = .data:0x00000273; // type:object size:0xB data:string +lbl_1_data_27E = .data:0x0000027E; // type:object size:0xB data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0xB data:string +lbl_1_data_294 = .data:0x00000294; // type:object size:0xB data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0xB data:string +lbl_1_data_2AA = .data:0x000002AA; // type:object size:0xB data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0xB data:string +lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0xB data:string +lbl_1_data_2CB = .data:0x000002CB; // type:object size:0xB data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0xB data:string +lbl_1_data_2E1 = .data:0x000002E1; // type:object size:0xB data:string +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xB data:string +lbl_1_data_2F7 = .data:0x000002F7; // type:object size:0xB data:string +lbl_1_data_302 = .data:0x00000302; // type:object size:0xB data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0xB data:string +lbl_1_data_318 = .data:0x00000318; // type:object size:0xB data:string +lbl_1_data_323 = .data:0x00000323; // type:object size:0xB data:string +lbl_1_data_32E = .data:0x0000032E; // type:object size:0xB data:string +lbl_1_data_339 = .data:0x00000339; // type:object size:0xB data:string +lbl_1_data_344 = .data:0x00000344; // type:object size:0xB data:string +lbl_1_data_34F = .data:0x0000034F; // type:object size:0xB data:string +lbl_1_data_35A = .data:0x0000035A; // type:object size:0xB data:string +lbl_1_data_365 = .data:0x00000365; // type:object size:0xB data:string +lbl_1_data_370 = .data:0x00000370; // type:object size:0xB data:string +lbl_1_data_37B = .data:0x0000037B; // type:object size:0xB data:string +lbl_1_data_386 = .data:0x00000386; // type:object size:0xB data:string +lbl_1_data_391 = .data:0x00000391; // type:object size:0xB data:string +lbl_1_data_39C = .data:0x0000039C; // type:object size:0xB data:string +lbl_1_data_3A7 = .data:0x000003A7; // type:object size:0xB data:string +lbl_1_data_3B2 = .data:0x000003B2; // type:object size:0xB data:string +lbl_1_data_3BD = .data:0x000003BD; // type:object size:0xB data:string +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0xB data:string +lbl_1_data_3D3 = .data:0x000003D3; // type:object size:0xB data:string +lbl_1_data_3DE = .data:0x000003DE; // type:object size:0xB data:string +lbl_1_data_3E9 = .data:0x000003E9; // type:object size:0xB data:string +lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0xB data:string +lbl_1_data_3FF = .data:0x000003FF; // type:object size:0xB data:string +lbl_1_data_40A = .data:0x0000040A; // type:object size:0xB data:string +lbl_1_data_415 = .data:0x00000415; // type:object size:0xB data:string +lbl_1_data_420 = .data:0x00000420; // type:object size:0xB data:string +lbl_1_data_42B = .data:0x0000042B; // type:object size:0xB data:string +lbl_1_data_436 = .data:0x00000436; // type:object size:0xB data:string +lbl_1_data_441 = .data:0x00000441; // type:object size:0xB data:string +lbl_1_data_44C = .data:0x0000044C; // type:object size:0xB data:string +lbl_1_data_457 = .data:0x00000457; // type:object size:0xD +lbl_1_data_464 = .data:0x00000464; // type:object size:0x264 +lbl_1_data_6C8 = .data:0x000006C8; // type:object size:0xC +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x78 data:float +lbl_1_data_74C = .data:0x0000074C; // type:object size:0xC +lbl_1_data_758 = .data:0x00000758; // type:object size:0xC +lbl_1_data_764 = .data:0x00000764; // type:object size:0xC data:string +lbl_1_data_770 = .data:0x00000770; // type:object size:0xC data:string +lbl_1_data_77C = .data:0x0000077C; // type:object size:0x7 data:string +lbl_1_data_783 = .data:0x00000783; // type:object size:0x8 data:string +lbl_1_data_78B = .data:0x0000078B; // type:object size:0x8 data:string +lbl_1_data_793 = .data:0x00000793; // type:object size:0x8 data:string +lbl_1_data_79B = .data:0x0000079B; // type:object size:0xB data:string +lbl_1_data_7A6 = .data:0x000007A6; // type:object size:0xF data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x340 data:4byte +lbl_1_bss_348 = .bss:0x00000348; // type:object size:0x810 data:float +lbl_1_bss_B58 = .bss:0x00000B58; // type:object size:0x4 data:4byte +lbl_1_bss_B5C = .bss:0x00000B5C; // type:object size:0x4 data:4byte +lbl_1_bss_B60 = .bss:0x00000B60; // type:object size:0x4 data:4byte +lbl_1_bss_B64 = .bss:0x00000B64; // type:object size:0xA0 data:4byte +lbl_1_bss_C04 = .bss:0x00000C04; // type:object size:0xA0 data:4byte +lbl_1_bss_CA4 = .bss:0x00000CA4; // type:object size:0x4 data:4byte +lbl_1_bss_CA8 = .bss:0x00000CA8; // type:object size:0x6 +lbl_1_bss_CAE = .bss:0x00000CAE; // type:object size:0x6 data:2byte +lbl_1_bss_CB4 = .bss:0x00000CB4; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/m453Dll/splits.txt b/config/GMPP01_00/rels/m453Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m453Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m453Dll/symbols.txt b/config/GMPP01_00/rels/m453Dll/symbols.txt new file mode 100644 index 00000000..5473789f --- /dev/null +++ b/config/GMPP01_00/rels/m453Dll/symbols.txt @@ -0,0 +1,282 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x3A0 +fn_1_440 = .text:0x00000440; // type:function size:0x20 +fn_1_460 = .text:0x00000460; // type:function size:0x3E8 +fn_1_848 = .text:0x00000848; // type:function size:0x7B4 +fn_1_FFC = .text:0x00000FFC; // type:function size:0x60 +fn_1_105C = .text:0x0000105C; // type:function size:0x1EC +fn_1_1248 = .text:0x00001248; // type:function size:0x2C0 +fn_1_1508 = .text:0x00001508; // type:function size:0x104 +fn_1_160C = .text:0x0000160C; // type:function size:0x274 +fn_1_1880 = .text:0x00001880; // type:function size:0xA0 +fn_1_1920 = .text:0x00001920; // type:function size:0x2B8 +fn_1_1BD8 = .text:0x00001BD8; // type:function size:0x28 +fn_1_1C00 = .text:0x00001C00; // type:function size:0x3B0 +fn_1_1FB0 = .text:0x00001FB0; // type:function size:0x14C +fn_1_20FC = .text:0x000020FC; // type:function size:0x2F4 +fn_1_23F0 = .text:0x000023F0; // type:function size:0xA44 +fn_1_2E34 = .text:0x00002E34; // type:function size:0x824 +fn_1_3658 = .text:0x00003658; // type:function size:0x94 +fn_1_36EC = .text:0x000036EC; // type:function size:0x2EC +fn_1_39D8 = .text:0x000039D8; // type:function size:0x1EC +fn_1_3BC4 = .text:0x00003BC4; // type:function size:0xE0 +fn_1_3CA4 = .text:0x00003CA4; // type:function size:0x208 +fn_1_3EAC = .text:0x00003EAC; // type:function size:0x9C +fn_1_3F48 = .text:0x00003F48; // type:function size:0x480 +fn_1_43C8 = .text:0x000043C8; // type:function size:0x54 +fn_1_441C = .text:0x0000441C; // type:function size:0x168 +fn_1_4584 = .text:0x00004584; // type:function size:0x120 +fn_1_46A4 = .text:0x000046A4; // type:function size:0x30C +fn_1_49B0 = .text:0x000049B0; // type:function size:0x78 +fn_1_4A28 = .text:0x00004A28; // type:function size:0x11C +fn_1_4B44 = .text:0x00004B44; // type:function size:0x78 +fn_1_4BBC = .text:0x00004BBC; // type:function size:0x2D8 +fn_1_4E94 = .text:0x00004E94; // type:function size:0x2B8 +fn_1_514C = .text:0x0000514C; // type:function size:0x154 +fn_1_52A0 = .text:0x000052A0; // type:function size:0x3E0 +fn_1_5680 = .text:0x00005680; // type:function size:0x214 +fn_1_5894 = .text:0x00005894; // type:function size:0x198 +fn_1_5A2C = .text:0x00005A2C; // type:function size:0xD8 +fn_1_5B04 = .text:0x00005B04; // type:function size:0xBC +fn_1_5BC0 = .text:0x00005BC0; // type:function size:0x33C +fn_1_5EFC = .text:0x00005EFC; // type:function size:0x4B0 +fn_1_63AC = .text:0x000063AC; // type:function size:0x10 +fn_1_63BC = .text:0x000063BC; // type:function size:0x9C +fn_1_6458 = .text:0x00006458; // type:function size:0xA0 +fn_1_64F8 = .text:0x000064F8; // type:function size:0x260 +fn_1_6758 = .text:0x00006758; // type:function size:0x20 +fn_1_6778 = .text:0x00006778; // type:function size:0x84 +fn_1_67FC = .text:0x000067FC; // type:function size:0x4 +fn_1_6800 = .text:0x00006800; // type:function size:0x16C +fn_1_696C = .text:0x0000696C; // type:function size:0x318 +fn_1_6C84 = .text:0x00006C84; // type:function size:0x240 +fn_1_6EC4 = .text:0x00006EC4; // type:function size:0x110 +fn_1_6FD4 = .text:0x00006FD4; // type:function size:0x400 +fn_1_73D4 = .text:0x000073D4; // type:function size:0x5B4 +fn_1_7988 = .text:0x00007988; // type:function size:0xFC +fn_1_7A84 = .text:0x00007A84; // type:function size:0x88 +fn_1_7B0C = .text:0x00007B0C; // type:function size:0xB4 +fn_1_7BC0 = .text:0x00007BC0; // type:function size:0x4C +fn_1_7C0C = .text:0x00007C0C; // type:function size:0x10 +fn_1_7C1C = .text:0x00007C1C; // type:function size:0x20 +fn_1_7C3C = .text:0x00007C3C; // type:function size:0x10 +fn_1_7C4C = .text:0x00007C4C; // type:function size:0xA4 +fn_1_7CF0 = .text:0x00007CF0; // type:function size:0x274 +fn_1_7F64 = .text:0x00007F64; // type:function size:0x15C +fn_1_80C0 = .text:0x000080C0; // type:function size:0x180 +fn_1_8240 = .text:0x00008240; // type:function size:0x10 +fn_1_8250 = .text:0x00008250; // type:function size:0x10 +fn_1_8260 = .text:0x00008260; // type:function size:0x5C +fn_1_82BC = .text:0x000082BC; // type:function size:0x1A0 +fn_1_845C = .text:0x0000845C; // type:function size:0x200 +fn_1_865C = .text:0x0000865C; // type:function size:0x30 +fn_1_868C = .text:0x0000868C; // type:function size:0x8CC +fn_1_8F58 = .text:0x00008F58; // type:function size:0x290 +fn_1_91E8 = .text:0x000091E8; // type:function size:0x74 +fn_1_925C = .text:0x0000925C; // type:function size:0x50 +fn_1_92AC = .text:0x000092AC; // type:function size:0x24 +fn_1_92D0 = .text:0x000092D0; // type:function size:0x30 +fn_1_9300 = .text:0x00009300; // type:function size:0x11C +fn_1_941C = .text:0x0000941C; // type:function size:0x78 +fn_1_9494 = .text:0x00009494; // type:function size:0x8C +fn_1_9520 = .text:0x00009520; // type:function size:0x164 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x9 data:byte +lbl_1_rodata_91 = .rodata:0x00000091; // type:object size:0xB data:byte +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0xC +lbl_1_data_10 = .data:0x00000010; // type:object size:0xC +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x28 +lbl_1_data_44 = .data:0x00000044; // type:object size:0x24 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x24 data:4byte +jumptable_1_data_8C = .data:0x0000008C; // type:object size:0x1C scope:local +jumptable_1_data_A8 = .data:0x000000A8; // type:object size:0x1C scope:local +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x20 +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x30 +lbl_1_data_114 = .data:0x00000114; // type:object size:0x20 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x20 +lbl_1_data_154 = .data:0x00000154; // type:object size:0x4 data:4byte +lbl_1_data_158 = .data:0x00000158; // type:object size:0xC0 +lbl_1_data_218 = .data:0x00000218; // type:object size:0xC0 +lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x78 +lbl_1_data_350 = .data:0x00000350; // type:object size:0x78 +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0xC0 +lbl_1_data_488 = .data:0x00000488; // type:object size:0xC0 +lbl_1_data_548 = .data:0x00000548; // type:object size:0x78 +lbl_1_data_5C0 = .data:0x000005C0; // type:object size:0x78 +lbl_1_data_638 = .data:0x00000638; // type:object size:0x108 +lbl_1_data_740 = .data:0x00000740; // type:object size:0x108 +lbl_1_data_848 = .data:0x00000848; // type:object size:0x108 +lbl_1_data_950 = .data:0x00000950; // type:object size:0x108 +lbl_1_data_A58 = .data:0x00000A58; // type:object size:0x30 +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x48 +lbl_1_data_AD0 = .data:0x00000AD0; // type:object size:0xC data:4byte +lbl_1_data_ADC = .data:0x00000ADC; // type:object size:0xC data:4byte +lbl_1_data_AE8 = .data:0x00000AE8; // type:object size:0x14 data:4byte +lbl_1_data_AFC = .data:0x00000AFC; // type:object size:0x18 +lbl_1_data_B14 = .data:0x00000B14; // type:object size:0x18 +lbl_1_data_B2C = .data:0x00000B2C; // type:object size:0x48 +lbl_1_data_B74 = .data:0x00000B74; // type:object size:0x30 +lbl_1_data_BA4 = .data:0x00000BA4; // type:object size:0x1C +lbl_1_data_BC0 = .data:0x00000BC0; // type:object size:0xC +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x6 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x2 data:2byte +lbl_1_bss_1E = .bss:0x0000001E; // type:object size:0x14 data:2byte +lbl_1_bss_32 = .bss:0x00000032; // type:object size:0x2 data:2byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte +lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x2 data:2byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x2 data:2byte +lbl_1_bss_3A = .bss:0x0000003A; // type:object size:0x2 data:2byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x10 +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x18 +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:float +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x14 +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:4byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m455Dll/splits.txt b/config/GMPP01_00/rels/m455Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m455Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m455Dll/symbols.txt b/config/GMPP01_00/rels/m455Dll/symbols.txt new file mode 100644 index 00000000..c63b35b3 --- /dev/null +++ b/config/GMPP01_00/rels/m455Dll/symbols.txt @@ -0,0 +1,293 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x270 +fn_1_310 = .text:0x00000310; // type:function size:0x10 +fn_1_320 = .text:0x00000320; // type:function size:0x10 +fn_1_330 = .text:0x00000330; // type:function size:0x148 +fn_1_478 = .text:0x00000478; // type:function size:0x6C0 +fn_1_B38 = .text:0x00000B38; // type:function size:0x5C +fn_1_B94 = .text:0x00000B94; // type:function size:0xA4 +fn_1_C38 = .text:0x00000C38; // type:function size:0x68 +fn_1_CA0 = .text:0x00000CA0; // type:function size:0x84 +fn_1_D24 = .text:0x00000D24; // type:function size:0x6F4 +fn_1_1418 = .text:0x00001418; // type:function size:0x44 +fn_1_145C = .text:0x0000145C; // type:function size:0xBCC +fn_1_2028 = .text:0x00002028; // type:function size:0x50 +fn_1_2078 = .text:0x00002078; // type:function size:0x330 +fn_1_23A8 = .text:0x000023A8; // type:function size:0x104 +fn_1_24AC = .text:0x000024AC; // type:function size:0x5C +fn_1_2508 = .text:0x00002508; // type:function size:0x208 +fn_1_2710 = .text:0x00002710; // type:function size:0xA8 +fn_1_27B8 = .text:0x000027B8; // type:function size:0x2F0 +fn_1_2AA8 = .text:0x00002AA8; // type:function size:0x64 +fn_1_2B0C = .text:0x00002B0C; // type:function size:0x250 +fn_1_2D5C = .text:0x00002D5C; // type:function size:0x4D0 +fn_1_322C = .text:0x0000322C; // type:function size:0xB0 +fn_1_32DC = .text:0x000032DC; // type:function size:0x148 +fn_1_3424 = .text:0x00003424; // type:function size:0x70 +fn_1_3494 = .text:0x00003494; // type:function size:0x960 +fn_1_3DF4 = .text:0x00003DF4; // type:function size:0x328 +fn_1_411C = .text:0x0000411C; // type:function size:0x7C +fn_1_4198 = .text:0x00004198; // type:function size:0x82C +fn_1_49C4 = .text:0x000049C4; // type:function size:0x68 +fn_1_4A2C = .text:0x00004A2C; // type:function size:0x108 +fn_1_4B34 = .text:0x00004B34; // type:function size:0x348 +fn_1_4E7C = .text:0x00004E7C; // type:function size:0xB3C +fn_1_59B8 = .text:0x000059B8; // type:function size:0x6E8 +fn_1_60A0 = .text:0x000060A0; // type:function size:0xBC +fn_1_615C = .text:0x0000615C; // type:function size:0x450 +fn_1_65AC = .text:0x000065AC; // type:function size:0x104 +fn_1_66B0 = .text:0x000066B0; // type:function size:0x1E4 +fn_1_6894 = .text:0x00006894; // type:function size:0x4C +fn_1_68E0 = .text:0x000068E0; // type:function size:0x4C +fn_1_692C = .text:0x0000692C; // type:function size:0x158 +fn_1_6A84 = .text:0x00006A84; // type:function size:0x1F4 +fn_1_6C78 = .text:0x00006C78; // type:function size:0x50 +fn_1_6CC8 = .text:0x00006CC8; // type:function size:0x5D0 +fn_1_7298 = .text:0x00007298; // type:function size:0xE8 +fn_1_7380 = .text:0x00007380; // type:function size:0xC8 +fn_1_7448 = .text:0x00007448; // type:function size:0x4 +fn_1_744C = .text:0x0000744C; // type:function size:0x18C +fn_1_75D8 = .text:0x000075D8; // type:function size:0xF0 +fn_1_76C8 = .text:0x000076C8; // type:function size:0x2C4 +fn_1_798C = .text:0x0000798C; // type:function size:0x54 +fn_1_79E0 = .text:0x000079E0; // type:function size:0x2B0 +fn_1_7C90 = .text:0x00007C90; // type:function size:0x408 +fn_1_8098 = .text:0x00008098; // type:function size:0x444 +fn_1_84DC = .text:0x000084DC; // type:function size:0x4 +fn_1_84E0 = .text:0x000084E0; // type:function size:0x100 +fn_1_85E0 = .text:0x000085E0; // type:function size:0x104 +fn_1_86E4 = .text:0x000086E4; // type:function size:0x2A0 +fn_1_8984 = .text:0x00008984; // type:function size:0x474 +fn_1_8DF8 = .text:0x00008DF8; // type:function size:0x11C +fn_1_8F14 = .text:0x00008F14; // type:function size:0x2BC +fn_1_91D0 = .text:0x000091D0; // type:function size:0x50 +fn_1_9220 = .text:0x00009220; // type:function size:0xB44 +fn_1_9D64 = .text:0x00009D64; // type:function size:0x104 +fn_1_9E68 = .text:0x00009E68; // type:function size:0x118 +fn_1_9F80 = .text:0x00009F80; // type:function size:0x250 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float +lbl_1_data_38 = .data:0x00000038; // type:object size:0xC data:float +lbl_1_data_44 = .data:0x00000044; // type:object size:0xC data:float +lbl_1_data_50 = .data:0x00000050; // type:object size:0x4 +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x2 data:2byte +lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 data:4byte +lbl_1_data_98 = .data:0x00000098; // type:object size:0x4 data:4byte +jumptable_1_data_9C = .data:0x0000009C; // type:object size:0x28 scope:local +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x1C data:string +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x28 +lbl_1_data_108 = .data:0x00000108; // type:object size:0x30 +lbl_1_data_138 = .data:0x00000138; // type:object size:0x1C +lbl_1_data_154 = .data:0x00000154; // type:object size:0x10 +lbl_1_data_164 = .data:0x00000164; // type:object size:0xC +lbl_1_data_170 = .data:0x00000170; // type:object size:0x1 data:byte +lbl_1_data_174 = .data:0x00000174; // type:object size:0x5 data:string +lbl_1_data_179 = .data:0x00000179; // type:object size:0xB data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x8 data:float +lbl_1_data_18C = .data:0x0000018C; // type:object size:0x4C +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x30 +lbl_1_data_208 = .data:0x00000208; // type:object size:0x1 data:byte +lbl_1_data_20C = .data:0x0000020C; // type:object size:0x50 +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x7 data:string +lbl_1_data_263 = .data:0x00000263; // type:object size:0x7 data:string +lbl_1_data_26A = .data:0x0000026A; // type:object size:0x1 data:byte +lbl_1_data_26E = .data:0x0000026E; // type:object size:0x1 data:byte +lbl_1_data_272 = .data:0x00000272; // type:object size:0x6 data:byte +lbl_1_data_278 = .data:0x00000278; // type:object size:0x30 +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x138 +lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x68 +lbl_1_data_448 = .data:0x00000448; // type:object size:0xD0 +lbl_1_data_518 = .data:0x00000518; // type:object size:0xD0 +lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0x18 +lbl_1_data_600 = .data:0x00000600; // type:object size:0x1 data:byte +lbl_1_data_604 = .data:0x00000604; // type:object size:0x6C +lbl_1_data_670 = .data:0x00000670; // type:object size:0x24 +lbl_1_data_694 = .data:0x00000694; // type:object size:0x8 data:byte +lbl_1_data_69C = .data:0x0000069C; // type:object size:0x1 data:byte +lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x10 +lbl_1_data_6B0 = .data:0x000006B0; // type:object size:0x10 +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:float +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_1_bss_1A = .bss:0x0000001A; // type:object size:0x2 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x2 data:2byte +lbl_1_bss_2A = .bss:0x0000002A; // type:object size:0x2 data:2byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m456Dll/splits.txt b/config/GMPP01_00/rels/m456Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m456Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m456Dll/symbols.txt b/config/GMPP01_00/rels/m456Dll/symbols.txt new file mode 100644 index 00000000..3dfe3a85 --- /dev/null +++ b/config/GMPP01_00/rels/m456Dll/symbols.txt @@ -0,0 +1,283 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x300 +fn_1_3A0 = .text:0x000003A0; // type:function size:0x10 +fn_1_3B0 = .text:0x000003B0; // type:function size:0x10 +fn_1_3C0 = .text:0x000003C0; // type:function size:0xD8 +fn_1_498 = .text:0x00000498; // type:function size:0x74C +fn_1_BE4 = .text:0x00000BE4; // type:function size:0x5C +fn_1_C40 = .text:0x00000C40; // type:function size:0x84 +fn_1_CC4 = .text:0x00000CC4; // type:function size:0x68 +fn_1_D2C = .text:0x00000D2C; // type:function size:0x220 +fn_1_F4C = .text:0x00000F4C; // type:function size:0x84 +fn_1_FD0 = .text:0x00000FD0; // type:function size:0x2B8 +fn_1_1288 = .text:0x00001288; // type:function size:0xD8 +fn_1_1360 = .text:0x00001360; // type:function size:0xD9C +fn_1_20FC = .text:0x000020FC; // type:function size:0x50 +fn_1_214C = .text:0x0000214C; // type:function size:0x104 +fn_1_2250 = .text:0x00002250; // type:function size:0x64 +fn_1_22B4 = .text:0x000022B4; // type:function size:0x250 +fn_1_2504 = .text:0x00002504; // type:function size:0x4D0 +fn_1_29D4 = .text:0x000029D4; // type:function size:0x1AC +fn_1_2B80 = .text:0x00002B80; // type:function size:0x330 +fn_1_2EB0 = .text:0x00002EB0; // type:function size:0x148 +fn_1_2FF8 = .text:0x00002FF8; // type:function size:0x70 +fn_1_3068 = .text:0x00003068; // type:function size:0x960 +fn_1_39C8 = .text:0x000039C8; // type:function size:0x328 +fn_1_3CF0 = .text:0x00003CF0; // type:function size:0x7C +fn_1_3D6C = .text:0x00003D6C; // type:function size:0x82C +fn_1_4598 = .text:0x00004598; // type:function size:0x68 +fn_1_4600 = .text:0x00004600; // type:function size:0x108 +fn_1_4708 = .text:0x00004708; // type:function size:0x348 +fn_1_4A50 = .text:0x00004A50; // type:function size:0xB3C +fn_1_558C = .text:0x0000558C; // type:function size:0x6E8 +fn_1_5C74 = .text:0x00005C74; // type:function size:0xBC +fn_1_5D30 = .text:0x00005D30; // type:function size:0x450 +fn_1_6180 = .text:0x00006180; // type:function size:0x104 +fn_1_6284 = .text:0x00006284; // type:function size:0x1E4 +fn_1_6468 = .text:0x00006468; // type:function size:0x4C +fn_1_64B4 = .text:0x000064B4; // type:function size:0x4C +fn_1_6500 = .text:0x00006500; // type:function size:0x158 +fn_1_6658 = .text:0x00006658; // type:function size:0x1F4 +fn_1_684C = .text:0x0000684C; // type:function size:0x50 +fn_1_689C = .text:0x0000689C; // type:function size:0x5D0 +fn_1_6E6C = .text:0x00006E6C; // type:function size:0xE8 +fn_1_6F54 = .text:0x00006F54; // type:function size:0xC8 +fn_1_701C = .text:0x0000701C; // type:function size:0x4 +fn_1_7020 = .text:0x00007020; // type:function size:0x18C +fn_1_71AC = .text:0x000071AC; // type:function size:0xF0 +fn_1_729C = .text:0x0000729C; // type:function size:0x2C4 +fn_1_7560 = .text:0x00007560; // type:function size:0x54 +fn_1_75B4 = .text:0x000075B4; // type:function size:0x2B0 +fn_1_7864 = .text:0x00007864; // type:function size:0x3D8 +fn_1_7C3C = .text:0x00007C3C; // type:function size:0x444 +fn_1_8080 = .text:0x00008080; // type:function size:0x4 +fn_1_8084 = .text:0x00008084; // type:function size:0x100 +fn_1_8184 = .text:0x00008184; // type:function size:0x104 +fn_1_8288 = .text:0x00008288; // type:function size:0x2A0 +fn_1_8528 = .text:0x00008528; // type:function size:0x474 +fn_1_899C = .text:0x0000899C; // type:function size:0x11C +fn_1_8AB8 = .text:0x00008AB8; // type:function size:0x2BC +fn_1_8D74 = .text:0x00008D74; // type:function size:0x50 +fn_1_8DC4 = .text:0x00008DC4; // type:function size:0xB44 +fn_1_9908 = .text:0x00009908; // type:function size:0x104 +fn_1_9A0C = .text:0x00009A0C; // type:function size:0x118 +fn_1_9B24 = .text:0x00009B24; // type:function size:0x250 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float +lbl_1_data_38 = .data:0x00000038; // type:object size:0xC data:float +lbl_1_data_44 = .data:0x00000044; // type:object size:0xC data:float +lbl_1_data_50 = .data:0x00000050; // type:object size:0x4 +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x4 data:4byte +lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 data:4byte +jumptable_1_data_98 = .data:0x00000098; // type:object size:0x30 scope:local +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x1C data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x50 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x30 +lbl_1_data_164 = .data:0x00000164; // type:object size:0x20 +lbl_1_data_184 = .data:0x00000184; // type:object size:0x4 +jumptable_1_data_188 = .data:0x00000188; // type:object size:0x20 scope:local +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x8 data:float +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x80 +lbl_1_data_230 = .data:0x00000230; // type:object size:0xB8 +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x30 +lbl_1_data_318 = .data:0x00000318; // type:object size:0x1 data:byte +lbl_1_data_31C = .data:0x0000031C; // type:object size:0x50 +lbl_1_data_36C = .data:0x0000036C; // type:object size:0x7 data:string +lbl_1_data_373 = .data:0x00000373; // type:object size:0x7 data:string +lbl_1_data_37A = .data:0x0000037A; // type:object size:0x1 data:byte +lbl_1_data_37E = .data:0x0000037E; // type:object size:0x1 data:byte +lbl_1_data_382 = .data:0x00000382; // type:object size:0x6 data:byte +lbl_1_data_388 = .data:0x00000388; // type:object size:0x30 +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x138 +lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x68 +lbl_1_data_558 = .data:0x00000558; // type:object size:0xD0 +lbl_1_data_628 = .data:0x00000628; // type:object size:0xD0 +lbl_1_data_6F8 = .data:0x000006F8; // type:object size:0x18 +lbl_1_data_710 = .data:0x00000710; // type:object size:0x1 data:byte +lbl_1_data_714 = .data:0x00000714; // type:object size:0x6C +lbl_1_data_780 = .data:0x00000780; // type:object size:0x24 +lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x8 data:byte +lbl_1_data_7AC = .data:0x000007AC; // type:object size:0x1 data:byte +lbl_1_data_7B0 = .data:0x000007B0; // type:object size:0x10 +lbl_1_data_7C0 = .data:0x000007C0; // type:object size:0x10 +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:float +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x40 data:2byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x2 data:2byte +lbl_1_bss_62 = .bss:0x00000062; // type:object size:0x2 data:2byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x10 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x10 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m457Dll/splits.txt b/config/GMPP01_00/rels/m457Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m457Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m457Dll/symbols.txt b/config/GMPP01_00/rels/m457Dll/symbols.txt new file mode 100644 index 00000000..71fd03bb --- /dev/null +++ b/config/GMPP01_00/rels/m457Dll/symbols.txt @@ -0,0 +1,177 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x3CC +fn_1_46C = .text:0x0000046C; // type:function size:0x2858 +fn_1_2CC4 = .text:0x00002CC4; // type:function size:0x2654 +fn_1_5318 = .text:0x00005318; // type:function size:0x220 +fn_1_5538 = .text:0x00005538; // type:function size:0x510 +fn_1_5A48 = .text:0x00005A48; // type:function size:0xB34 +fn_1_657C = .text:0x0000657C; // type:function size:0xAB8 +fn_1_7034 = .text:0x00007034; // type:function size:0x5F4 +fn_1_7628 = .text:0x00007628; // type:function size:0xC0 +fn_1_76E8 = .text:0x000076E8; // type:function size:0x480 +fn_1_7B68 = .text:0x00007B68; // type:function size:0x9C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x24 data:4byte +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 data:4byte +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x64 +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x8 data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x8 data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x40 data:4byte +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x40 data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:4byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x90 +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x14 data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:4byte +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:4byte +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x40 data:4byte +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x40 data:4byte +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x5C +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x5C +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0xC data:4byte +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0xC data:4byte +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x1 data:byte +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x5C +lbl_1_data_5C = .data:0x0000005C; // type:object size:0x5C data:4byte +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x30 +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x30 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x30 +lbl_1_data_148 = .data:0x00000148; // type:object size:0xC +lbl_1_data_154 = .data:0x00000154; // type:object size:0x30 +lbl_1_data_184 = .data:0x00000184; // type:object size:0x30 +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x6C +lbl_1_data_220 = .data:0x00000220; // type:object size:0x6C +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x18 data:float +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x2 data:2byte +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x2 data:2byte +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x4 data:4byte +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x4 data:4byte +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x2 data:2byte +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x4 data:4byte +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x4 data:4byte +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x9 data:string +lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0x3 data:string +jumptable_1_data_2C8 = .data:0x000002C8; // type:object size:0x2C scope:local +jumptable_1_data_2F4 = .data:0x000002F4; // type:object size:0x48 scope:local +lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 data:4byte +lbl_1_data_340 = .data:0x00000340; // type:object size:0x4 data:float +lbl_1_data_344 = .data:0x00000344; // type:object size:0x4 data:float +lbl_1_data_348 = .data:0x00000348; // type:object size:0x4 data:float +jumptable_1_data_34C = .data:0x0000034C; // type:object size:0x20 scope:local +jumptable_1_data_36C = .data:0x0000036C; // type:object size:0x2C scope:local +lbl_1_data_398 = .data:0x00000398; // type:object size:0x12 data:string +lbl_1_data_3AA = .data:0x000003AA; // type:object size:0x19 data:string +lbl_1_data_3C3 = .data:0x000003C3; // type:object size:0x24 data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:float +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x8 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x50 data:4byte diff --git a/config/GMPP01_00/rels/m458Dll/splits.txt b/config/GMPP01_00/rels/m458Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m458Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m458Dll/symbols.txt b/config/GMPP01_00/rels/m458Dll/symbols.txt new file mode 100644 index 00000000..5c135c78 --- /dev/null +++ b/config/GMPP01_00/rels/m458Dll/symbols.txt @@ -0,0 +1,176 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x428 +fn_1_4C8 = .text:0x000004C8; // type:function size:0x3044 +fn_1_350C = .text:0x0000350C; // type:function size:0x16DC +fn_1_4BE8 = .text:0x00004BE8; // type:function size:0x15C +fn_1_4D44 = .text:0x00004D44; // type:function size:0x2D0 +fn_1_5014 = .text:0x00005014; // type:function size:0x9C8 +fn_1_59DC = .text:0x000059DC; // type:function size:0x938 +fn_1_6314 = .text:0x00006314; // type:function size:0x548 +fn_1_685C = .text:0x0000685C; // type:function size:0xC0 +fn_1_691C = .text:0x0000691C; // type:function size:0x480 +fn_1_6D9C = .text:0x00006D9C; // type:function size:0xD0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x94 +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x50 +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:4byte +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x70 +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:4byte +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:4byte +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0xC data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0xC data:4byte +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 +lbl_1_data_8 = .data:0x00000008; // type:object size:0x8 data:4byte +lbl_1_data_10 = .data:0x00000010; // type:object size:0x28 +lbl_1_data_38 = .data:0x00000038; // type:object size:0x28 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x28 +lbl_1_data_88 = .data:0x00000088; // type:object size:0xA +lbl_1_data_92 = .data:0x00000092; // type:object size:0xA +lbl_1_data_9C = .data:0x0000009C; // type:object size:0x28 +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x28 +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x28 +lbl_1_data_114 = .data:0x00000114; // type:object size:0x18 data:float +lbl_1_data_12C = .data:0x0000012C; // type:object size:0x2 data:2byte +lbl_1_data_12E = .data:0x0000012E; // type:object size:0x2 data:2byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0x4 data:4byte +lbl_1_data_134 = .data:0x00000134; // type:object size:0x4 data:4byte +lbl_1_data_138 = .data:0x00000138; // type:object size:0x24 data:2byte +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x4 data:4byte +lbl_1_data_160 = .data:0x00000160; // type:object size:0x9 data:string +lbl_1_data_169 = .data:0x00000169; // type:object size:0x3 data:string +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x4 data:4byte +jumptable_1_data_170 = .data:0x00000170; // type:object size:0x30 scope:local +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x4 data:float +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x4 data:float +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x4 data:float +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x4 data:string +jumptable_1_data_1B4 = .data:0x000001B4; // type:object size:0x34 scope:local +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x2C +lbl_1_data_214 = .data:0x00000214; // type:object size:0x8 data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x19 data:string +lbl_1_data_235 = .data:0x00000235; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:float +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x50 +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x8 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x8 data:4byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x1C0 data:4byte +lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x90 diff --git a/config/GMPP01_00/rels/m459dll/splits.txt b/config/GMPP01_00/rels/m459dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m459dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m459dll/symbols.txt b/config/GMPP01_00/rels/m459dll/symbols.txt new file mode 100644 index 00000000..704f4761 --- /dev/null +++ b/config/GMPP01_00/rels/m459dll/symbols.txt @@ -0,0 +1,169 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x138 +fn_1_1D8 = .text:0x000001D8; // type:function size:0x468 +fn_1_640 = .text:0x00000640; // type:function size:0xFC +fn_1_73C = .text:0x0000073C; // type:function size:0x73C +fn_1_E78 = .text:0x00000E78; // type:function size:0x364 +fn_1_11DC = .text:0x000011DC; // type:function size:0x28 +fn_1_1204 = .text:0x00001204; // type:function size:0x28 +fn_1_122C = .text:0x0000122C; // type:function size:0x200 +fn_1_142C = .text:0x0000142C; // type:function size:0x8C +fn_1_14B8 = .text:0x000014B8; // type:function size:0x2C0 +fn_1_1778 = .text:0x00001778; // type:function size:0x124 +fn_1_189C = .text:0x0000189C; // type:function size:0x118 +fn_1_19B4 = .text:0x000019B4; // type:function size:0x4C +fn_1_1A00 = .text:0x00001A00; // type:function size:0x5DC +fn_1_1FDC = .text:0x00001FDC; // type:function size:0x68 +fn_1_2044 = .text:0x00002044; // type:function size:0x168 +fn_1_21AC = .text:0x000021AC; // type:function size:0x200 +fn_1_23AC = .text:0x000023AC; // type:function size:0x21C +fn_1_25C8 = .text:0x000025C8; // type:function size:0x200 +fn_1_27C8 = .text:0x000027C8; // type:function size:0x168 +fn_1_2930 = .text:0x00002930; // type:function size:0x1F4 +fn_1_2B24 = .text:0x00002B24; // type:function size:0x3F4 +fn_1_2F18 = .text:0x00002F18; // type:function size:0xEC +fn_1_3004 = .text:0x00003004; // type:function size:0x388 +fn_1_338C = .text:0x0000338C; // type:function size:0x374 +fn_1_3700 = .text:0x00003700; // type:function size:0xA60 +fn_1_4160 = .text:0x00004160; // type:function size:0xB0 +fn_1_4210 = .text:0x00004210; // type:function size:0x104 +fn_1_4314 = .text:0x00004314; // type:function size:0x21C +fn_1_4530 = .text:0x00004530; // type:function size:0xBC +fn_1_45EC = .text:0x000045EC; // type:function size:0x178 +fn_1_4764 = .text:0x00004764; // type:function size:0x80 +fn_1_47E4 = .text:0x000047E4; // type:function size:0x6C +fn_1_4850 = .text:0x00004850; // type:function size:0x94 +fn_1_48E4 = .text:0x000048E4; // type:function size:0x190 +fn_1_4A74 = .text:0x00004A74; // type:function size:0xF4 +fn_1_4B68 = .text:0x00004B68; // type:function size:0xB4 +fn_1_4C1C = .text:0x00004C1C; // type:function size:0xB4 +fn_1_4CD0 = .text:0x00004CD0; // type:function size:0x178 +fn_1_4E48 = .text:0x00004E48; // type:function size:0x10 +fn_1_4E58 = .text:0x00004E58; // type:function size:0x20 +fn_1_4E78 = .text:0x00004E78; // type:function size:0x14 +fn_1_4E8C = .text:0x00004E8C; // type:function size:0x14 +fn_1_4EA0 = .text:0x00004EA0; // type:function size:0xE0 +fn_1_4F80 = .text:0x00004F80; // type:function size:0x20 +fn_1_4FA0 = .text:0x00004FA0; // type:function size:0x1C +fn_1_4FBC = .text:0x00004FBC; // type:function size:0x310 +fn_1_52CC = .text:0x000052CC; // type:function size:0x18 +fn_1_52E4 = .text:0x000052E4; // type:function size:0x10 +fn_1_52F4 = .text:0x000052F4; // type:function size:0x10 +fn_1_5304 = .text:0x00005304; // type:function size:0x4C +fn_1_5350 = .text:0x00005350; // type:function size:0x134 +fn_1_5484 = .text:0x00005484; // type:function size:0xDC +fn_1_5560 = .text:0x00005560; // type:function size:0x44 +fn_1_55A4 = .text:0x000055A4; // type:function size:0x4C8 +fn_1_5A6C = .text:0x00005A6C; // type:function size:0x3C4 +fn_1_5E30 = .text:0x00005E30; // type:function size:0x70 +fn_1_5EA0 = .text:0x00005EA0; // type:function size:0x94 +fn_1_5F34 = .text:0x00005F34; // type:function size:0x44 +fn_1_5F78 = .text:0x00005F78; // type:function size:0x214 +fn_1_618C = .text:0x0000618C; // type:function size:0x2C0 +fn_1_644C = .text:0x0000644C; // type:function size:0x128 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x30 +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x78 +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x18 +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:wstring +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x20 +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x20 +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x19C +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x8 +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x14 +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x14 +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x14 +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x14 +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0xC data:4byte +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0xC data:4byte +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0xC data:4byte +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x48 +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B data:string +lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1D +jumptable_1_data_38 = .data:0x00000038; // type:object size:0x38 scope:local +lbl_1_data_70 = .data:0x00000070; // type:object size:0x1C +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x1 data:byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x30 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x2 data:2byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x18 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0xC data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0xC data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x50 +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x550 data:4byte +lbl_1_bss_61C = .bss:0x0000061C; // type:object size:0x7C data:float +lbl_1_bss_698 = .bss:0x00000698; // type:object size:0x4C data:4byte +lbl_1_bss_6E4 = .bss:0x000006E4; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m460Dll/splits.txt b/config/GMPP01_00/rels/m460Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m460Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m460Dll/symbols.txt b/config/GMPP01_00/rels/m460Dll/symbols.txt new file mode 100644 index 00000000..2b961299 --- /dev/null +++ b/config/GMPP01_00/rels/m460Dll/symbols.txt @@ -0,0 +1,298 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x428 +fn_1_4C8 = .text:0x000004C8; // type:function size:0x128 +fn_1_5F0 = .text:0x000005F0; // type:function size:0x20C +fn_1_7FC = .text:0x000007FC; // type:function size:0x14C +fn_1_948 = .text:0x00000948; // type:function size:0x434 +fn_1_D7C = .text:0x00000D7C; // type:function size:0x470 +fn_1_11EC = .text:0x000011EC; // type:function size:0x35C +fn_1_1548 = .text:0x00001548; // type:function size:0x434 +fn_1_197C = .text:0x0000197C; // type:function size:0x6A0 +fn_1_201C = .text:0x0000201C; // type:function size:0x4D8 +fn_1_24F4 = .text:0x000024F4; // type:function size:0x70 +fn_1_2564 = .text:0x00002564; // type:function size:0x800 +fn_1_2D64 = .text:0x00002D64; // type:function size:0xC +fn_1_2D70 = .text:0x00002D70; // type:function size:0x55C +fn_1_32CC = .text:0x000032CC; // type:function size:0xB0 +fn_1_337C = .text:0x0000337C; // type:function size:0x274 +fn_1_35F0 = .text:0x000035F0; // type:function size:0x28 +fn_1_3618 = .text:0x00003618; // type:function size:0x5A8 +fn_1_3BC0 = .text:0x00003BC0; // type:function size:0x2A8 +fn_1_3E68 = .text:0x00003E68; // type:function size:0x14 +fn_1_3E7C = .text:0x00003E7C; // type:function size:0x14 +fn_1_3E90 = .text:0x00003E90; // type:function size:0x9C +fn_1_3F2C = .text:0x00003F2C; // type:function size:0x9C +fn_1_3FC8 = .text:0x00003FC8; // type:function size:0x68 +fn_1_4030 = .text:0x00004030; // type:function size:0x6C +fn_1_409C = .text:0x0000409C; // type:function size:0x98 +fn_1_4134 = .text:0x00004134; // type:function size:0x18 +fn_1_414C = .text:0x0000414C; // type:function size:0x18 +fn_1_4164 = .text:0x00004164; // type:function size:0x18 +fn_1_417C = .text:0x0000417C; // type:function size:0x18 +fn_1_4194 = .text:0x00004194; // type:function size:0x8 +fn_1_419C = .text:0x0000419C; // type:function size:0x18 +fn_1_41B4 = .text:0x000041B4; // type:function size:0x40 +fn_1_41F4 = .text:0x000041F4; // type:function size:0x30 +fn_1_4224 = .text:0x00004224; // type:function size:0x30 +fn_1_4254 = .text:0x00004254; // type:function size:0x30 +fn_1_4284 = .text:0x00004284; // type:function size:0x38 +fn_1_42BC = .text:0x000042BC; // type:function size:0x34 +fn_1_42F0 = .text:0x000042F0; // type:function size:0x18 +fn_1_4308 = .text:0x00004308; // type:function size:0x1C +fn_1_4324 = .text:0x00004324; // type:function size:0x18 +fn_1_433C = .text:0x0000433C; // type:function size:0x1C +fn_1_4358 = .text:0x00004358; // type:function size:0x18 +fn_1_4370 = .text:0x00004370; // type:function size:0x18 +fn_1_4388 = .text:0x00004388; // type:function size:0x208 +fn_1_4590 = .text:0x00004590; // type:function size:0x240 +fn_1_47D0 = .text:0x000047D0; // type:function size:0x11C +fn_1_48EC = .text:0x000048EC; // type:function size:0xB4 +fn_1_49A0 = .text:0x000049A0; // type:function size:0x244 +fn_1_4BE4 = .text:0x00004BE4; // type:function size:0x24 +fn_1_4C08 = .text:0x00004C08; // type:function size:0x364 +fn_1_4F6C = .text:0x00004F6C; // type:function size:0x1FC +fn_1_5168 = .text:0x00005168; // type:function size:0x484 +fn_1_55EC = .text:0x000055EC; // type:function size:0x1EC +fn_1_57D8 = .text:0x000057D8; // type:function size:0xF0 +fn_1_58C8 = .text:0x000058C8; // type:function size:0x14C +fn_1_5A14 = .text:0x00005A14; // type:function size:0x274 +fn_1_5C88 = .text:0x00005C88; // type:function size:0x58 +fn_1_5CE0 = .text:0x00005CE0; // type:function size:0x18C +fn_1_5E6C = .text:0x00005E6C; // type:function size:0x74 +fn_1_5EE0 = .text:0x00005EE0; // type:function size:0x1D0 +fn_1_60B0 = .text:0x000060B0; // type:function size:0x144 +fn_1_61F4 = .text:0x000061F4; // type:function size:0x5C0 +fn_1_67B4 = .text:0x000067B4; // type:function size:0x60 +fn_1_6814 = .text:0x00006814; // type:function size:0x4 +fn_1_6818 = .text:0x00006818; // type:function size:0x3E8 +fn_1_6C00 = .text:0x00006C00; // type:function size:0x7F8 +fn_1_73F8 = .text:0x000073F8; // type:function size:0x2CC +fn_1_76C4 = .text:0x000076C4; // type:function size:0x60 +fn_1_7724 = .text:0x00007724; // type:function size:0x6C +fn_1_7790 = .text:0x00007790; // type:function size:0x404 +fn_1_7B94 = .text:0x00007B94; // type:function size:0x214 +fn_1_7DA8 = .text:0x00007DA8; // type:function size:0xDF8 +fn_1_8BA0 = .text:0x00008BA0; // type:function size:0xD8 +fn_1_8C78 = .text:0x00008C78; // type:function size:0x34 +fn_1_8CAC = .text:0x00008CAC; // type:function size:0x28C +fn_1_8F38 = .text:0x00008F38; // type:function size:0x74 +fn_1_8FAC = .text:0x00008FAC; // type:function size:0x50 +fn_1_8FFC = .text:0x00008FFC; // type:function size:0x24 +fn_1_9020 = .text:0x00009020; // type:function size:0x30 +fn_1_9050 = .text:0x00009050; // type:function size:0x11C +fn_1_916C = .text:0x0000916C; // type:function size:0x78 +fn_1_91E4 = .text:0x000091E4; // type:function size:0x8C +fn_1_9270 = .text:0x00009270; // type:function size:0x164 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC data:4byte +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:4byte +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x50 +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x14 data:4byte +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x10 data:4byte +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x10 data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x30 data:4byte +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x18 data:4byte +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x18 data:4byte +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x18 data:4byte +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x8 data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x1 data:byte +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x1 data:byte +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0xC data:4byte +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 +lbl_1_data_94 = .data:0x00000094; // type:object size:0xC +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC +lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x1 data:byte +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x1A data:string +lbl_1_data_D6 = .data:0x000000D6; // type:object size:0x1A +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x20 +lbl_1_data_110 = .data:0x00000110; // type:object size:0xA0 +jumptable_1_data_1B0 = .data:0x000001B0; // type:object size:0x24 scope:local +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x14 +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x100 +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x40 +lbl_1_data_328 = .data:0x00000328; // type:object size:0xC +lbl_1_data_334 = .data:0x00000334; // type:object size:0xC +lbl_1_data_340 = .data:0x00000340; // type:object size:0xC +lbl_1_data_34C = .data:0x0000034C; // type:object size:0x8 +lbl_1_data_354 = .data:0x00000354; // type:object size:0x8 +lbl_1_data_35C = .data:0x0000035C; // type:object size:0x7 data:string +lbl_1_data_363 = .data:0x00000363; // type:object size:0x9 +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC +lbl_1_data_378 = .data:0x00000378; // type:object size:0x8 data:byte +lbl_1_data_380 = .data:0x00000380; // type:object size:0xC +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_1_bss_1A = .bss:0x0000001A; // type:object size:0x6 data:2byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x8 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x8 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m461Dll/splits.txt b/config/GMPP01_00/rels/m461Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m461Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m461Dll/symbols.txt b/config/GMPP01_00/rels/m461Dll/symbols.txt new file mode 100644 index 00000000..f3be51a3 --- /dev/null +++ b/config/GMPP01_00/rels/m461Dll/symbols.txt @@ -0,0 +1,223 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x204 +fn_1_784 = .text:0x00000784; // type:function size:0x240 +fn_1_9C4 = .text:0x000009C4; // type:function size:0x54 +fn_1_A18 = .text:0x00000A18; // type:function size:0x10C +fn_1_B24 = .text:0x00000B24; // type:function size:0x680 +fn_1_11A4 = .text:0x000011A4; // type:function size:0x15C +fn_1_1300 = .text:0x00001300; // type:function size:0x8C +fn_1_138C = .text:0x0000138C; // type:function size:0x334 +fn_1_16C0 = .text:0x000016C0; // type:function size:0x350 +fn_1_1A10 = .text:0x00001A10; // type:function size:0x2B8 +fn_1_1CC8 = .text:0x00001CC8; // type:function size:0x58 +fn_1_1D20 = .text:0x00001D20; // type:function size:0xB0 +fn_1_1DD0 = .text:0x00001DD0; // type:function size:0x104 +fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x34 +fn_1_1F08 = .text:0x00001F08; // type:function size:0x6C +fn_1_1F74 = .text:0x00001F74; // type:function size:0x3F0 +fn_1_2364 = .text:0x00002364; // type:function size:0x64 +fn_1_23C8 = .text:0x000023C8; // type:function size:0xE0 +fn_1_24A8 = .text:0x000024A8; // type:function size:0x32C +fn_1_27D4 = .text:0x000027D4; // type:function size:0x3AC +fn_1_2B80 = .text:0x00002B80; // type:function size:0x30 +fn_1_2BB0 = .text:0x00002BB0; // type:function size:0x1C +fn_1_2BCC = .text:0x00002BCC; // type:function size:0x18C +fn_1_2D58 = .text:0x00002D58; // type:function size:0x8 +fn_1_2D60 = .text:0x00002D60; // type:function size:0x8 +fn_1_2D68 = .text:0x00002D68; // type:function size:0x8 +fn_1_2D70 = .text:0x00002D70; // type:function size:0x8 +fn_1_2D78 = .text:0x00002D78; // type:function size:0xC +fn_1_2D84 = .text:0x00002D84; // type:function size:0x60 +fn_1_2DE4 = .text:0x00002DE4; // type:function size:0xB90 +fn_1_3974 = .text:0x00003974; // type:function size:0x2B0 +fn_1_3C24 = .text:0x00003C24; // type:function size:0xD8 +fn_1_3CFC = .text:0x00003CFC; // type:function size:0x114 +fn_1_3E10 = .text:0x00003E10; // type:function size:0xB8 +fn_1_3EC8 = .text:0x00003EC8; // type:function size:0xA0 +fn_1_3F68 = .text:0x00003F68; // type:function size:0x9C +fn_1_4004 = .text:0x00004004; // type:function size:0xDC8 +fn_1_4DCC = .text:0x00004DCC; // type:function size:0x250 +fn_1_501C = .text:0x0000501C; // type:function size:0x10 +fn_1_502C = .text:0x0000502C; // type:function size:0x10 +_prolog = .text:0x0000503C; // type:function size:0x54 scope:global +_epilog = .text:0x00005090; // type:function size:0x4C scope:global +fn_1_50DC = .text:0x000050DC; // type:function size:0x308 +fn_1_53E4 = .text:0x000053E4; // type:function size:0xF0 +fn_1_54D4 = .text:0x000054D4; // type:function size:0x36C +fn_1_5840 = .text:0x00005840; // type:function size:0x1E8 +fn_1_5A28 = .text:0x00005A28; // type:function size:0x178 +fn_1_5BA0 = .text:0x00005BA0; // type:function size:0xE0C +fn_1_69AC = .text:0x000069AC; // type:function size:0x928 +fn_1_72D4 = .text:0x000072D4; // type:function size:0x288 +fn_1_755C = .text:0x0000755C; // type:function size:0x11C +fn_1_7678 = .text:0x00007678; // type:function size:0x40C +fn_1_7A84 = .text:0x00007A84; // type:function size:0x1230 +fn_1_8CB4 = .text:0x00008CB4; // type:function size:0x45C +fn_1_9110 = .text:0x00009110; // type:function size:0x408 +fn_1_9518 = .text:0x00009518; // type:function size:0x1B8 +fn_1_96D0 = .text:0x000096D0; // type:function size:0x130 +fn_1_9800 = .text:0x00009800; // type:function size:0x450 +fn_1_9C50 = .text:0x00009C50; // type:function size:0x248 +fn_1_9E98 = .text:0x00009E98; // type:function size:0xEE8 +fn_1_AD80 = .text:0x0000AD80; // type:function size:0x458 +fn_1_B1D8 = .text:0x0000B1D8; // type:function size:0x7F8 +fn_1_B9D0 = .text:0x0000B9D0; // type:function size:0xF14 +fn_1_C8E4 = .text:0x0000C8E4; // type:function size:0x240 +fn_1_CB24 = .text:0x0000CB24; // type:function size:0xB5C +fn_1_D680 = .text:0x0000D680; // type:function size:0xD0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 +lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 +lbl_1_data_80 = .data:0x00000080; // type:object size:0x20 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC data:4byte +lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0xC data:4byte +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0xC data:4byte +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0xC +lbl_1_data_DC = .data:0x000000DC; // type:object size:0xC data:4byte +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0xC +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0xC +lbl_1_data_100 = .data:0x00000100; // type:object size:0x4 +lbl_1_data_104 = .data:0x00000104; // type:object size:0xC +lbl_1_data_110 = .data:0x00000110; // type:object size:0xC +lbl_1_data_11C = .data:0x0000011C; // type:object size:0xC +lbl_1_data_128 = .data:0x00000128; // type:object size:0xA0 +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0xC +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x10 +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0xC +lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x50 data:float +lbl_1_data_240 = .data:0x00000240; // type:object size:0x24 +lbl_1_data_264 = .data:0x00000264; // type:object size:0xC data:4byte +lbl_1_data_270 = .data:0x00000270; // type:object size:0x80 +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x30 +lbl_1_data_320 = .data:0x00000320; // type:object size:0x23 data:string +lbl_1_data_343 = .data:0x00000343; // type:object size:0x9 data:string +lbl_1_data_34C = .data:0x0000034C; // type:object size:0x6 data:string +lbl_1_data_352 = .data:0x00000352; // type:object size:0x1D data:string +lbl_1_data_36F = .data:0x0000036F; // type:object size:0x1D data:string +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x1C +jumptable_1_data_3A8 = .data:0x000003A8; // type:object size:0x20 scope:local +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x10 +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x10 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x50 +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:float +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x100 +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x40 data:4byte +lbl_1_bss_1EC = .bss:0x000001EC; // type:object size:0x4 data:float +lbl_1_bss_1F0 = .bss:0x000001F0; // type:object size:0x4 data:4byte +lbl_1_bss_1F4 = .bss:0x000001F4; // type:object size:0x4 data:4byte +lbl_1_bss_1F8 = .bss:0x000001F8; // type:object size:0x2 data:2byte +lbl_1_bss_1FA = .bss:0x000001FA; // type:object size:0x2 data:2byte +lbl_1_bss_1FC = .bss:0x000001FC; // type:object size:0x4 data:4byte +lbl_1_bss_200 = .bss:0x00000200; // type:object size:0x4 data:4byte +lbl_1_bss_204 = .bss:0x00000204; // type:object size:0x4 data:4byte +lbl_1_bss_208 = .bss:0x00000208; // type:object size:0xC data:4byte +lbl_1_bss_214 = .bss:0x00000214; // type:object size:0xC data:4byte +lbl_1_bss_220 = .bss:0x00000220; // type:object size:0xC data:4byte +lbl_1_bss_22C = .bss:0x0000022C; // type:object size:0xC data:4byte +lbl_1_bss_238 = .bss:0x00000238; // type:object size:0x4 data:4byte +lbl_1_bss_23C = .bss:0x0000023C; // type:object size:0x18 data:4byte +lbl_1_bss_254 = .bss:0x00000254; // type:object size:0xC data:4byte diff --git a/config/GMPP01_00/rels/m462Dll/splits.txt b/config/GMPP01_00/rels/m462Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m462Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m462Dll/symbols.txt b/config/GMPP01_00/rels/m462Dll/symbols.txt new file mode 100644 index 00000000..8b39ae68 --- /dev/null +++ b/config/GMPP01_00/rels/m462Dll/symbols.txt @@ -0,0 +1,144 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x400 +fn_1_4A0 = .text:0x000004A0; // type:function size:0x1014 +fn_1_14B4 = .text:0x000014B4; // type:function size:0x80 +fn_1_1534 = .text:0x00001534; // type:function size:0x80 +fn_1_15B4 = .text:0x000015B4; // type:function size:0x80 +fn_1_1634 = .text:0x00001634; // type:function size:0xC4 +fn_1_16F8 = .text:0x000016F8; // type:function size:0x54 +fn_1_174C = .text:0x0000174C; // type:function size:0x54 +fn_1_17A0 = .text:0x000017A0; // type:function size:0xE0 +fn_1_1880 = .text:0x00001880; // type:function size:0x354 +fn_1_1BD4 = .text:0x00001BD4; // type:function size:0x23C +fn_1_1E10 = .text:0x00001E10; // type:function size:0x11CC +fn_1_2FDC = .text:0x00002FDC; // type:function size:0x14FC +fn_1_44D8 = .text:0x000044D8; // type:function size:0x16C +fn_1_4644 = .text:0x00004644; // type:function size:0x580 +fn_1_4BC4 = .text:0x00004BC4; // type:function size:0x894 +fn_1_5458 = .text:0x00005458; // type:function size:0x4F0 +fn_1_5948 = .text:0x00005948; // type:function size:0x498 +fn_1_5DE0 = .text:0x00005DE0; // type:function size:0x498 +fn_1_6278 = .text:0x00006278; // type:function size:0x74 +fn_1_62EC = .text:0x000062EC; // type:function size:0x7C +fn_1_6368 = .text:0x00006368; // type:function size:0x48 +fn_1_63B0 = .text:0x000063B0; // type:function size:0x48 +fn_1_63F8 = .text:0x000063F8; // type:function size:0x1D4 +fn_1_65CC = .text:0x000065CC; // type:function size:0x220 +fn_1_67EC = .text:0x000067EC; // type:function size:0x104 +fn_1_68F0 = .text:0x000068F0; // type:function size:0x70 +fn_1_6960 = .text:0x00006960; // type:function size:0x5C +fn_1_69BC = .text:0x000069BC; // type:function size:0x137C +fn_1_7D38 = .text:0x00007D38; // type:function size:0x4 +fn_1_7D3C = .text:0x00007D3C; // type:function size:0x60 +fn_1_7D9C = .text:0x00007D9C; // type:function size:0x3B4 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 +lbl_1_data_20 = .data:0x00000020; // type:object size:0x10 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x60 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x30 data:float +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x3C +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x14 data:float +lbl_1_data_110 = .data:0x00000110; // type:object size:0xB data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0xC data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x48 data:float +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x2D0 +lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x98 data:float +lbl_1_bss_3D8 = .bss:0x000003D8; // type:object size:0x4 data:4byte +lbl_1_bss_3DC = .bss:0x000003DC; // type:object size:0x4 data:4byte +lbl_1_bss_3E0 = .bss:0x000003E0; // type:object size:0x4 data:4byte +lbl_1_bss_3E4 = .bss:0x000003E4; // type:object size:0x4 data:4byte +lbl_1_bss_3E8 = .bss:0x000003E8; // type:object size:0x2 data:2byte +lbl_1_bss_3EA = .bss:0x000003EA; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/m463Dll/splits.txt b/config/GMPP01_00/rels/m463Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/m463Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/m463Dll/symbols.txt b/config/GMPP01_00/rels/m463Dll/symbols.txt new file mode 100644 index 00000000..aad2e6b8 --- /dev/null +++ b/config/GMPP01_00/rels/m463Dll/symbols.txt @@ -0,0 +1,164 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x428 +fn_1_4C8 = .text:0x000004C8; // type:function size:0x2D9C +fn_1_3264 = .text:0x00003264; // type:function size:0x1210 +fn_1_4474 = .text:0x00004474; // type:function size:0x184 +fn_1_45F8 = .text:0x000045F8; // type:function size:0xDA4 +fn_1_539C = .text:0x0000539C; // type:function size:0x4B0 +fn_1_584C = .text:0x0000584C; // type:function size:0x854 +fn_1_60A0 = .text:0x000060A0; // type:function size:0x98 +fn_1_6138 = .text:0x00006138; // type:function size:0x460 +fn_1_6598 = .text:0x00006598; // type:function size:0x11C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC data:4byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:4byte +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x94 +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:4byte +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x50 +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x70 +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x24 data:4byte +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x24 data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x10 data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0xC data:4byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0xC data:4byte +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x1 data:byte +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 +lbl_1_data_24 = .data:0x00000024; // type:object size:0x24 +lbl_1_data_48 = .data:0x00000048; // type:object size:0x24 +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x24 +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x9 +lbl_1_data_BD = .data:0x000000BD; // type:object size:0xB +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x24 +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x24 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x24 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x18 data:float +lbl_1_data_14C = .data:0x0000014C; // type:object size:0x2 data:2byte +lbl_1_data_14E = .data:0x0000014E; // type:object size:0x2 data:2byte +lbl_1_data_150 = .data:0x00000150; // type:object size:0x4 data:4byte +lbl_1_data_154 = .data:0x00000154; // type:object size:0x24 data:4byte +lbl_1_data_178 = .data:0x00000178; // type:object size:0x9 data:string +lbl_1_data_181 = .data:0x00000181; // type:object size:0x3 data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x4 data:4byte +jumptable_1_data_188 = .data:0x00000188; // type:object size:0x1C scope:local +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x10 +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x4 data:4byte +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x4 data:float +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x4 data:float +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x4 data:float +jumptable_1_data_1C4 = .data:0x000001C4; // type:object size:0x20 scope:local +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x2C +lbl_1_data_210 = .data:0x00000210; // type:object size:0x19 data:string +lbl_1_data_229 = .data:0x00000229; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x8 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x8 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x2D0 +lbl_1_bss_32C = .bss:0x0000032C; // type:object size:0x4 data:4byte +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0x24 data:4byte +lbl_1_bss_354 = .bss:0x00000354; // type:object size:0x4 data:4byte +lbl_1_bss_358 = .bss:0x00000358; // type:object size:0x4 data:4byte +lbl_1_bss_35C = .bss:0x0000035C; // type:object size:0x1C0 data:4byte +lbl_1_bss_51C = .bss:0x0000051C; // type:object size:0x90 diff --git a/config/GMPP01_00/rels/mentDll/splits.txt b/config/GMPP01_00/rels/mentDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/mentDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/mentDll/symbols.txt b/config/GMPP01_00/rels/mentDll/symbols.txt new file mode 100644 index 00000000..8e7e77e2 --- /dev/null +++ b/config/GMPP01_00/rels/mentDll/symbols.txt @@ -0,0 +1,440 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +_prolog = .text:0x000000A4; // type:function size:0x54 scope:global +_epilog = .text:0x000000F8; // type:function size:0x4C scope:global +fn_1_144 = .text:0x00000144; // type:function size:0xC8 +fn_1_20C = .text:0x0000020C; // type:function size:0x28 +fn_1_234 = .text:0x00000234; // type:function size:0x20 +fn_1_254 = .text:0x00000254; // type:function size:0xD8 +fn_1_32C = .text:0x0000032C; // type:function size:0xC8 +fn_1_3F4 = .text:0x000003F4; // type:function size:0xBC +fn_1_4B0 = .text:0x000004B0; // type:function size:0x28 +fn_1_4D8 = .text:0x000004D8; // type:function size:0x20 +fn_1_4F8 = .text:0x000004F8; // type:function size:0x14 +fn_1_50C = .text:0x0000050C; // type:function size:0xDC +fn_1_5E8 = .text:0x000005E8; // type:function size:0xE8 +fn_1_6D0 = .text:0x000006D0; // type:function size:0x24 +fn_1_6F4 = .text:0x000006F4; // type:function size:0xA48 +fn_1_113C = .text:0x0000113C; // type:function size:0x2F8 +fn_1_1434 = .text:0x00001434; // type:function size:0x218 +fn_1_164C = .text:0x0000164C; // type:function size:0x60 +fn_1_16AC = .text:0x000016AC; // type:function size:0x68 +fn_1_1714 = .text:0x00001714; // type:function size:0x90 +fn_1_17A4 = .text:0x000017A4; // type:function size:0x134 +fn_1_18D8 = .text:0x000018D8; // type:function size:0x50 +fn_1_1928 = .text:0x00001928; // type:function size:0x40 +fn_1_1968 = .text:0x00001968; // type:function size:0xF4 +fn_1_1A5C = .text:0x00001A5C; // type:function size:0x37C +fn_1_1DD8 = .text:0x00001DD8; // type:function size:0x37C +fn_1_2154 = .text:0x00002154; // type:function size:0x1C4 +fn_1_2318 = .text:0x00002318; // type:function size:0x54 +fn_1_236C = .text:0x0000236C; // type:function size:0x3E4 +fn_1_2750 = .text:0x00002750; // type:function size:0xB8 +fn_1_2808 = .text:0x00002808; // type:function size:0x3C +fn_1_2844 = .text:0x00002844; // type:function size:0x120 +fn_1_2964 = .text:0x00002964; // type:function size:0x3C +fn_1_29A0 = .text:0x000029A0; // type:function size:0x44 +fn_1_29E4 = .text:0x000029E4; // type:function size:0x26C +fn_1_2C50 = .text:0x00002C50; // type:function size:0x26C +fn_1_2EBC = .text:0x00002EBC; // type:function size:0x27C +fn_1_3138 = .text:0x00003138; // type:function size:0x2B4 +fn_1_33EC = .text:0x000033EC; // type:function size:0x46C +fn_1_3858 = .text:0x00003858; // type:function size:0x454 +fn_1_3CAC = .text:0x00003CAC; // type:function size:0x48C +fn_1_4138 = .text:0x00004138; // type:function size:0x658 +fn_1_4790 = .text:0x00004790; // type:function size:0x4C4 +fn_1_4C54 = .text:0x00004C54; // type:function size:0x4FC +fn_1_5150 = .text:0x00005150; // type:function size:0x6C8 +fn_1_5818 = .text:0x00005818; // type:function size:0x188 +fn_1_59A0 = .text:0x000059A0; // type:function size:0x1B0 +fn_1_5B50 = .text:0x00005B50; // type:function size:0xB8 +fn_1_5C08 = .text:0x00005C08; // type:function size:0xD4 +fn_1_5CDC = .text:0x00005CDC; // type:function size:0x5C +fn_1_5D38 = .text:0x00005D38; // type:function size:0x7FC +fn_1_6534 = .text:0x00006534; // type:function size:0x58 +fn_1_658C = .text:0x0000658C; // type:function size:0x6C0 +fn_1_6C4C = .text:0x00006C4C; // type:function size:0x4D8 +fn_1_7124 = .text:0x00007124; // type:function size:0xF4 +fn_1_7218 = .text:0x00007218; // type:function size:0xEC +fn_1_7304 = .text:0x00007304; // type:function size:0x380 +fn_1_7684 = .text:0x00007684; // type:function size:0x13C +fn_1_77C0 = .text:0x000077C0; // type:function size:0x98 +fn_1_7858 = .text:0x00007858; // type:function size:0xA8 +fn_1_7900 = .text:0x00007900; // type:function size:0x114 +fn_1_7A14 = .text:0x00007A14; // type:function size:0x794 +fn_1_81A8 = .text:0x000081A8; // type:function size:0x30 +fn_1_81D8 = .text:0x000081D8; // type:function size:0x18 +fn_1_81F0 = .text:0x000081F0; // type:function size:0x5C +fn_1_824C = .text:0x0000824C; // type:function size:0x180 +fn_1_83CC = .text:0x000083CC; // type:function size:0x1FC +fn_1_85C8 = .text:0x000085C8; // type:function size:0x2DC +fn_1_88A4 = .text:0x000088A4; // type:function size:0x29C +fn_1_8B40 = .text:0x00008B40; // type:function size:0x28 +fn_1_8B68 = .text:0x00008B68; // type:function size:0x3DC +fn_1_8F44 = .text:0x00008F44; // type:function size:0x54 +fn_1_8F98 = .text:0x00008F98; // type:function size:0x20 +fn_1_8FB8 = .text:0x00008FB8; // type:function size:0x314 +fn_1_92CC = .text:0x000092CC; // type:function size:0x618 +fn_1_98E4 = .text:0x000098E4; // type:function size:0xC8 +fn_1_99AC = .text:0x000099AC; // type:function size:0x20 +fn_1_99CC = .text:0x000099CC; // type:function size:0x6D8 +fn_1_A0A4 = .text:0x0000A0A4; // type:function size:0x20 +fn_1_A0C4 = .text:0x0000A0C4; // type:function size:0x2D8 +fn_1_A39C = .text:0x0000A39C; // type:function size:0x20 +fn_1_A3BC = .text:0x0000A3BC; // type:function size:0x5D4 +fn_1_A990 = .text:0x0000A990; // type:function size:0x20 +fn_1_A9B0 = .text:0x0000A9B0; // type:function size:0x3C8 +fn_1_AD78 = .text:0x0000AD78; // type:function size:0x30C +fn_1_B084 = .text:0x0000B084; // type:function size:0x5D0 +fn_1_B654 = .text:0x0000B654; // type:function size:0xB20 +fn_1_C174 = .text:0x0000C174; // type:function size:0x1E0 +fn_1_C354 = .text:0x0000C354; // type:function size:0xEC +fn_1_C440 = .text:0x0000C440; // type:function size:0x78 +fn_1_C4B8 = .text:0x0000C4B8; // type:function size:0x62C +fn_1_CAE4 = .text:0x0000CAE4; // type:function size:0x288 +fn_1_CD6C = .text:0x0000CD6C; // type:function size:0x20 +fn_1_CD8C = .text:0x0000CD8C; // type:function size:0x200 +fn_1_CF8C = .text:0x0000CF8C; // type:function size:0x384 +fn_1_D310 = .text:0x0000D310; // type:function size:0x20 +fn_1_D330 = .text:0x0000D330; // type:function size:0x20 +fn_1_D350 = .text:0x0000D350; // type:function size:0x2E4 +fn_1_D634 = .text:0x0000D634; // type:function size:0x82C +fn_1_DE60 = .text:0x0000DE60; // type:function size:0x17C +fn_1_DFDC = .text:0x0000DFDC; // type:function size:0x268 +fn_1_E244 = .text:0x0000E244; // type:function size:0x70 +fn_1_E2B4 = .text:0x0000E2B4; // type:function size:0x148 +fn_1_E3FC = .text:0x0000E3FC; // type:function size:0x90 +fn_1_E48C = .text:0x0000E48C; // type:function size:0x1C8 +fn_1_E654 = .text:0x0000E654; // type:function size:0xC8 +fn_1_E71C = .text:0x0000E71C; // type:function size:0x158 +fn_1_E874 = .text:0x0000E874; // type:function size:0xFC8 +fn_1_F83C = .text:0x0000F83C; // type:function size:0x670 +fn_1_FEAC = .text:0x0000FEAC; // type:function size:0x388 +fn_1_10234 = .text:0x00010234; // type:function size:0x308 +fn_1_1053C = .text:0x0001053C; // type:function size:0x7C +fn_1_105B8 = .text:0x000105B8; // type:function size:0x39C +fn_1_10954 = .text:0x00010954; // type:function size:0x308 +fn_1_10C5C = .text:0x00010C5C; // type:function size:0x7C +fn_1_10CD8 = .text:0x00010CD8; // type:function size:0x39C +fn_1_11074 = .text:0x00011074; // type:function size:0x2F4 +fn_1_11368 = .text:0x00011368; // type:function size:0x138 +fn_1_114A0 = .text:0x000114A0; // type:function size:0x74 +fn_1_11514 = .text:0x00011514; // type:function size:0x1E0 +fn_1_116F4 = .text:0x000116F4; // type:function size:0x158 +fn_1_1184C = .text:0x0001184C; // type:function size:0xBC +fn_1_11908 = .text:0x00011908; // type:function size:0x1C8 +fn_1_11AD0 = .text:0x00011AD0; // type:function size:0x2D4 +fn_1_11DA4 = .text:0x00011DA4; // type:function size:0x434 +fn_1_121D8 = .text:0x000121D8; // type:function size:0x624 +fn_1_127FC = .text:0x000127FC; // type:function size:0x210 +fn_1_12A0C = .text:0x00012A0C; // type:function size:0x434 +fn_1_12E40 = .text:0x00012E40; // type:function size:0x508 +fn_1_13348 = .text:0x00013348; // type:function size:0x160 +fn_1_134A8 = .text:0x000134A8; // type:function size:0x1E4 +fn_1_1368C = .text:0x0001368C; // type:function size:0x64 +fn_1_136F0 = .text:0x000136F0; // type:function size:0xB4 +fn_1_137A4 = .text:0x000137A4; // type:function size:0x1CC +fn_1_13970 = .text:0x00013970; // type:function size:0x3F0 +fn_1_13D60 = .text:0x00013D60; // type:function size:0x8C +fn_1_13DEC = .text:0x00013DEC; // type:function size:0xF0 +fn_1_13EDC = .text:0x00013EDC; // type:function size:0x8C +fn_1_13F68 = .text:0x00013F68; // type:function size:0xF0 +fn_1_14058 = .text:0x00014058; // type:function size:0xF0 +fn_1_14148 = .text:0x00014148; // type:function size:0xF0 +fn_1_14238 = .text:0x00014238; // type:function size:0xF0 +fn_1_14328 = .text:0x00014328; // type:function size:0xF0 +fn_1_14418 = .text:0x00014418; // type:function size:0x2B8 +fn_1_146D0 = .text:0x000146D0; // type:function size:0xF0 +fn_1_147C0 = .text:0x000147C0; // type:function size:0xF0 +fn_1_148B0 = .text:0x000148B0; // type:function size:0xF0 +fn_1_149A0 = .text:0x000149A0; // type:function size:0x8C +fn_1_14A2C = .text:0x00014A2C; // type:function size:0x8C +fn_1_14AB8 = .text:0x00014AB8; // type:function size:0xF0 +fn_1_14BA8 = .text:0x00014BA8; // type:function size:0x138 +fn_1_14CE0 = .text:0x00014CE0; // type:function size:0x3B8 +fn_1_15098 = .text:0x00015098; // type:function size:0x120 +fn_1_151B8 = .text:0x000151B8; // type:function size:0x798 +fn_1_15950 = .text:0x00015950; // type:function size:0x364 +fn_1_15CB4 = .text:0x00015CB4; // type:function size:0x5EC +fn_1_162A0 = .text:0x000162A0; // type:function size:0x1EC +fn_1_1648C = .text:0x0001648C; // type:function size:0x6DC +fn_1_16B68 = .text:0x00016B68; // type:function size:0x894 +fn_1_173FC = .text:0x000173FC; // type:function size:0x518 +fn_1_17914 = .text:0x00017914; // type:function size:0xC8 +fn_1_179DC = .text:0x000179DC; // type:function size:0x2EC +fn_1_17CC8 = .text:0x00017CC8; // type:function size:0x454 +fn_1_1811C = .text:0x0001811C; // type:function size:0x3F0 +fn_1_1850C = .text:0x0001850C; // type:function size:0x220 +fn_1_1872C = .text:0x0001872C; // type:function size:0x5C +fn_1_18788 = .text:0x00018788; // type:function size:0x2CC +fn_1_18A54 = .text:0x00018A54; // type:function size:0x378 +fn_1_18DCC = .text:0x00018DCC; // type:function size:0x1A8 +fn_1_18F74 = .text:0x00018F74; // type:function size:0x174 +fn_1_190E8 = .text:0x000190E8; // type:function size:0xB38 +fn_1_19C20 = .text:0x00019C20; // type:function size:0x1D98 +fn_1_1B9B8 = .text:0x0001B9B8; // type:function size:0xA28 +fn_1_1C3E0 = .text:0x0001C3E0; // type:function size:0x120 +fn_1_1C500 = .text:0x0001C500; // type:function size:0xE0 +fn_1_1C5E0 = .text:0x0001C5E0; // type:function size:0x23C +fn_1_1C81C = .text:0x0001C81C; // type:function size:0x238 +fn_1_1CA54 = .text:0x0001CA54; // type:function size:0x3A0 +fn_1_1CDF4 = .text:0x0001CDF4; // type:function size:0x594 +fn_1_1D388 = .text:0x0001D388; // type:function size:0x9DC +fn_1_1DD64 = .text:0x0001DD64; // type:function size:0x70 +fn_1_1DDD4 = .text:0x0001DDD4; // type:function size:0x70 +fn_1_1DE44 = .text:0x0001DE44; // type:function size:0x1FC +fn_1_1E040 = .text:0x0001E040; // type:function size:0x250 +fn_1_1E290 = .text:0x0001E290; // type:function size:0x4A0 +fn_1_1E730 = .text:0x0001E730; // type:function size:0xD4C +fn_1_1F47C = .text:0x0001F47C; // type:function size:0xC8 +fn_1_1F544 = .text:0x0001F544; // type:function size:0x1B0 +fn_1_1F6F4 = .text:0x0001F6F4; // type:function size:0x1CC +fn_1_1F8C0 = .text:0x0001F8C0; // type:function size:0x220 +fn_1_1FAE0 = .text:0x0001FAE0; // type:function size:0x1B4 +fn_1_1FC94 = .text:0x0001FC94; // type:function size:0x144 +fn_1_1FDD8 = .text:0x0001FDD8; // type:function size:0x610 +fn_1_203E8 = .text:0x000203E8; // type:function size:0x260 +fn_1_20648 = .text:0x00020648; // type:function size:0x138 +fn_1_20780 = .text:0x00020780; // type:function size:0x130 +fn_1_208B0 = .text:0x000208B0; // type:function size:0x130 +fn_1_209E0 = .text:0x000209E0; // type:function size:0x5E0 +fn_1_20FC0 = .text:0x00020FC0; // type:function size:0x5F0 +fn_1_215B0 = .text:0x000215B0; // type:function size:0xED0 +fn_1_22480 = .text:0x00022480; // type:function size:0xE38 +fn_1_232B8 = .text:0x000232B8; // type:function size:0x60C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0xC data:4byte +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x1 data:byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x1C data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0xC data:4byte +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x10 data:4byte +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x18 data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0xC data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC data:4byte +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x18 data:4byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC data:4byte +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC data:4byte +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0xC data:4byte +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x1C data:4byte +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x10 data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x18 data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0xC data:4byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0xC data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x1C data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0xC data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0xC data:4byte +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0xC data:4byte +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0xC data:4byte +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC data:4byte +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x18 data:4byte +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x90 +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x18 data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x40 data:4byte +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x20 data:4byte +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x20 data:4byte +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte +lbl_1_data_70 = .data:0x00000070; // type:object size:0x4 data:4byte +lbl_1_data_74 = .data:0x00000074; // type:object size:0x22 data:string +lbl_1_data_96 = .data:0x00000096; // type:object size:0x1A data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x1A data:string +lbl_1_data_CA = .data:0x000000CA; // type:object size:0xE data:string +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x48 data:float +lbl_1_data_120 = .data:0x00000120; // type:object size:0x18 +jumptable_1_data_138 = .data:0x00000138; // type:object size:0x30 scope:local +lbl_1_data_168 = .data:0x00000168; // type:object size:0x16 data:string +lbl_1_data_17E = .data:0x0000017E; // type:object size:0x15 data:string +lbl_1_data_193 = .data:0x00000193; // type:object size:0x17 data:string +lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x16 data:string +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x17 data:string +lbl_1_data_1D7 = .data:0x000001D7; // type:object size:0x16 data:string +lbl_1_data_1ED = .data:0x000001ED; // type:object size:0x17 data:string +lbl_1_data_204 = .data:0x00000204; // type:object size:0x16 data:string +lbl_1_data_21A = .data:0x0000021A; // type:object size:0xF data:string +lbl_1_data_229 = .data:0x00000229; // type:object size:0x1C data:string +lbl_1_data_245 = .data:0x00000245; // type:object size:0x1D data:string +lbl_1_data_262 = .data:0x00000262; // type:object size:0x14 data:string +lbl_1_data_276 = .data:0x00000276; // type:object size:0x15 data:string +lbl_1_data_28B = .data:0x0000028B; // type:object size:0x14 data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x15 +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3C +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x4 data:4byte +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20 data:string +lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 data:string +lbl_1_data_334 = .data:0x00000334; // type:object size:0x2A data:string +lbl_1_data_35E = .data:0x0000035E; // type:object size:0x3 data:string +lbl_1_data_361 = .data:0x00000361; // type:object size:0x1B data:string +lbl_1_data_37C = .data:0x0000037C; // type:object size:0x1A data:string +lbl_1_data_396 = .data:0x00000396; // type:object size:0x29 data:string +lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x2A data:string +lbl_1_data_3E9 = .data:0x000003E9; // type:object size:0x2A data:string +lbl_1_data_413 = .data:0x00000413; // type:object size:0x2B data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x29 data:string +lbl_1_data_467 = .data:0x00000467; // type:object size:0x2B data:string +lbl_1_data_492 = .data:0x00000492; // type:object size:0x20 data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x22 +jumptable_1_data_4D4 = .data:0x000004D4; // type:object size:0x54 scope:local +lbl_1_data_528 = .data:0x00000528; // type:object size:0x1B data:string +lbl_1_data_543 = .data:0x00000543; // type:object size:0x1A data:string +lbl_1_data_55D = .data:0x0000055D; // type:object size:0xF data:string +lbl_1_data_56C = .data:0x0000056C; // type:object size:0x10 data:string +lbl_1_data_57C = .data:0x0000057C; // type:object size:0x40 +lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x20 +lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x64 data:float +lbl_1_data_640 = .data:0x00000640; // type:object size:0x50 data:4byte +lbl_1_data_690 = .data:0x00000690; // type:object size:0x40 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x14 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x10 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x40 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x44 data:float +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x20 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x4 data:4byte +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x15E0 +lbl_1_bss_16C4 = .bss:0x000016C4; // type:object size:0x1A40 +lbl_1_bss_3104 = .bss:0x00003104; // type:object size:0x4 data:4byte +lbl_1_bss_3108 = .bss:0x00003108; // type:object size:0xC data:4byte +lbl_1_bss_3114 = .bss:0x00003114; // type:object size:0x240 data:4byte +lbl_1_bss_3354 = .bss:0x00003354; // type:object size:0x58 data:4byte +lbl_1_bss_33AC = .bss:0x000033AC; // type:object size:0x210 data:4byte +lbl_1_bss_35BC = .bss:0x000035BC; // type:object size:0xB0 data:4byte +lbl_1_bss_366C = .bss:0x0000366C; // type:object size:0x58 data:4byte diff --git a/config/GMPP01_00/rels/messDll/splits.txt b/config/GMPP01_00/rels/messDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/messDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/messDll/symbols.txt b/config/GMPP01_00/rels/messDll/symbols.txt new file mode 100644 index 00000000..2c96428e --- /dev/null +++ b/config/GMPP01_00/rels/messDll/symbols.txt @@ -0,0 +1,113 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x22C +fn_1_2CC = .text:0x000002CC; // type:function size:0x44 +fn_1_310 = .text:0x00000310; // type:function size:0xB88 +fn_1_E98 = .text:0x00000E98; // type:function size:0x2EC +fn_1_1184 = .text:0x00001184; // type:function size:0x158 +fn_1_12DC = .text:0x000012DC; // type:function size:0x310 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 data:string +lbl_1_data_22 = .data:0x00000022; // type:object size:0x16 data:string +lbl_1_data_38 = .data:0x00000038; // type:object size:0x11 data:string +lbl_1_data_49 = .data:0x00000049; // type:object size:0xD data:string +lbl_1_data_56 = .data:0x00000056; // type:object size:0xD data:string +lbl_1_data_63 = .data:0x00000063; // type:object size:0xB data:string +lbl_1_data_6E = .data:0x0000006E; // type:object size:0xF data:string +lbl_1_data_7D = .data:0x0000007D; // type:object size:0xE data:string +lbl_1_data_8B = .data:0x0000008B; // type:object size:0xE data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0xD data:string +lbl_1_data_A6 = .data:0x000000A6; // type:object size:0x9 data:string +lbl_1_data_AF = .data:0x000000AF; // type:object size:0xE data:string +lbl_1_data_BD = .data:0x000000BD; // type:object size:0xF data:string +lbl_1_data_CC = .data:0x000000CC; // type:object size:0xB data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x12 data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0xA data:string +lbl_1_data_F3 = .data:0x000000F3; // type:object size:0xD data:string +lbl_1_data_100 = .data:0x00000100; // type:object size:0xB data:string +lbl_1_data_10B = .data:0x0000010B; // type:object size:0xF data:string +lbl_1_data_11A = .data:0x0000011A; // type:object size:0x9 data:string +lbl_1_data_123 = .data:0x00000123; // type:object size:0xF data:string +lbl_1_data_132 = .data:0x00000132; // type:object size:0x13 data:string +lbl_1_data_145 = .data:0x00000145; // type:object size:0xF data:string +lbl_1_data_154 = .data:0x00000154; // type:object size:0xF data:string +lbl_1_data_163 = .data:0x00000163; // type:object size:0x12 data:string +lbl_1_data_175 = .data:0x00000175; // type:object size:0xB data:string +lbl_1_data_180 = .data:0x00000180; // type:object size:0xD data:string +lbl_1_data_18D = .data:0x0000018D; // type:object size:0xF data:string +lbl_1_data_19C = .data:0x0000019C; // type:object size:0xA data:string +lbl_1_data_1A6 = .data:0x000001A6; // type:object size:0xC data:string +lbl_1_data_1B2 = .data:0x000001B2; // type:object size:0xD data:string +lbl_1_data_1BF = .data:0x000001BF; // type:object size:0xF data:string +lbl_1_data_1CE = .data:0x000001CE; // type:object size:0x11 data:string +lbl_1_data_1DF = .data:0x000001DF; // type:object size:0xF data:string +lbl_1_data_1EE = .data:0x000001EE; // type:object size:0xC data:string +lbl_1_data_1FA = .data:0x000001FA; // type:object size:0xC data:string +lbl_1_data_206 = .data:0x00000206; // type:object size:0x8 data:string +lbl_1_data_20E = .data:0x0000020E; // type:object size:0x11 data:string +lbl_1_data_21F = .data:0x0000021F; // type:object size:0x11 data:string +lbl_1_data_230 = .data:0x00000230; // type:object size:0x12 data:string +lbl_1_data_242 = .data:0x00000242; // type:object size:0xF data:string +lbl_1_data_251 = .data:0x00000251; // type:object size:0xC data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0xB data:string +lbl_1_data_268 = .data:0x00000268; // type:object size:0xB data:string +lbl_1_data_273 = .data:0x00000273; // type:object size:0xB data:string +lbl_1_data_27E = .data:0x0000027E; // type:object size:0xB data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0xB data:string +lbl_1_data_294 = .data:0x00000294; // type:object size:0xD data:string +lbl_1_data_2A1 = .data:0x000002A1; // type:object size:0x11 data:string +lbl_1_data_2B2 = .data:0x000002B2; // type:object size:0xF data:string +lbl_1_data_2C1 = .data:0x000002C1; // type:object size:0xC data:string +lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x11 data:string +lbl_1_data_2DE = .data:0x000002DE; // type:object size:0xF data:string +lbl_1_data_2ED = .data:0x000002ED; // type:object size:0xF data:string +lbl_1_data_2FC = .data:0x000002FC; // type:object size:0xF data:string +lbl_1_data_30B = .data:0x0000030B; // type:object size:0x11 data:string +lbl_1_data_31C = .data:0x0000031C; // type:object size:0x10 +lbl_1_data_32C = .data:0x0000032C; // type:object size:0xE4 +lbl_1_data_410 = .data:0x00000410; // type:object size:0x8 data:string +lbl_1_data_418 = .data:0x00000418; // type:object size:0x8 data:string +lbl_1_data_420 = .data:0x00000420; // type:object size:0x7 data:string +lbl_1_data_427 = .data:0x00000427; // type:object size:0x6 data:string +lbl_1_data_42D = .data:0x0000042D; // type:object size:0xB +lbl_1_data_438 = .data:0x00000438; // type:object size:0x14 data:4byte +lbl_1_data_44C = .data:0x0000044C; // type:object size:0x2 data:2byte +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x6 +lbl_1_data_454 = .data:0x00000454; // type:object size:0x5 data:string +lbl_1_data_459 = .data:0x00000459; // type:object size:0x4 data:string +lbl_1_data_45D = .data:0x0000045D; // type:object size:0x4 data:string +lbl_1_data_461 = .data:0x00000461; // type:object size:0x4 data:string +lbl_1_data_465 = .data:0x00000465; // type:object size:0x4 data:string +lbl_1_data_469 = .data:0x00000469; // type:object size:0x4 data:string +lbl_1_data_46D = .data:0x0000046D; // type:object size:0x4 data:string +lbl_1_data_471 = .data:0x00000471; // type:object size:0x4 data:string +lbl_1_data_475 = .data:0x00000475; // type:object size:0x7 +lbl_1_data_47C = .data:0x0000047C; // type:object size:0x20 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x2 data:2byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:2byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x24 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/mgmodedll/splits.txt b/config/GMPP01_00/rels/mgmodedll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/mgmodedll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/mgmodedll/symbols.txt b/config/GMPP01_00/rels/mgmodedll/symbols.txt new file mode 100644 index 00000000..ec6ed6c9 --- /dev/null +++ b/config/GMPP01_00/rels/mgmodedll/symbols.txt @@ -0,0 +1,584 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x3C4 +fn_1_464 = .text:0x00000464; // type:function size:0x294 +fn_1_6F8 = .text:0x000006F8; // type:function size:0x6F8 +fn_1_DF0 = .text:0x00000DF0; // type:function size:0xD1C +fn_1_1B0C = .text:0x00001B0C; // type:function size:0x6B8 +fn_1_21C4 = .text:0x000021C4; // type:function size:0x77C +fn_1_2940 = .text:0x00002940; // type:function size:0x810 +fn_1_3150 = .text:0x00003150; // type:function size:0x788 +fn_1_38D8 = .text:0x000038D8; // type:function size:0x738 +fn_1_4010 = .text:0x00004010; // type:function size:0x86C +fn_1_487C = .text:0x0000487C; // type:function size:0x260 +fn_1_4ADC = .text:0x00004ADC; // type:function size:0x800 +fn_1_52DC = .text:0x000052DC; // type:function size:0x220 +fn_1_54FC = .text:0x000054FC; // type:function size:0xCC +fn_1_55C8 = .text:0x000055C8; // type:function size:0x3B4 +fn_1_597C = .text:0x0000597C; // type:function size:0xC78 +fn_1_65F4 = .text:0x000065F4; // type:function size:0xC4 +fn_1_66B8 = .text:0x000066B8; // type:function size:0x2C4 +fn_1_697C = .text:0x0000697C; // type:function size:0x90 +fn_1_6A0C = .text:0x00006A0C; // type:function size:0xEC +fn_1_6AF8 = .text:0x00006AF8; // type:function size:0x128 +fn_1_6C20 = .text:0x00006C20; // type:function size:0x110 +fn_1_6D30 = .text:0x00006D30; // type:function size:0x31FC +fn_1_9F2C = .text:0x00009F2C; // type:function size:0x120 +fn_1_A04C = .text:0x0000A04C; // type:function size:0x400 +fn_1_A44C = .text:0x0000A44C; // type:function size:0x2C0 +fn_1_A70C = .text:0x0000A70C; // type:function size:0x84 +fn_1_A790 = .text:0x0000A790; // type:function size:0x604 +fn_1_AD94 = .text:0x0000AD94; // type:function size:0xF4 +fn_1_AE88 = .text:0x0000AE88; // type:function size:0x80 +fn_1_AF08 = .text:0x0000AF08; // type:function size:0xB0 +fn_1_AFB8 = .text:0x0000AFB8; // type:function size:0x6D8 +fn_1_B690 = .text:0x0000B690; // type:function size:0x1C8 +fn_1_B858 = .text:0x0000B858; // type:function size:0x248 +fn_1_BAA0 = .text:0x0000BAA0; // type:function size:0x16C +fn_1_BC0C = .text:0x0000BC0C; // type:function size:0x47C +fn_1_C088 = .text:0x0000C088; // type:function size:0x128 +fn_1_C1B0 = .text:0x0000C1B0; // type:function size:0x1808 +fn_1_D9B8 = .text:0x0000D9B8; // type:function size:0x56C +fn_1_DF24 = .text:0x0000DF24; // type:function size:0x17C +fn_1_E0A0 = .text:0x0000E0A0; // type:function size:0x74 +fn_1_E114 = .text:0x0000E114; // type:function size:0x6F8 +fn_1_E80C = .text:0x0000E80C; // type:function size:0x18F8 +fn_1_10104 = .text:0x00010104; // type:function size:0x608 +fn_1_1070C = .text:0x0001070C; // type:function size:0xD38 +fn_1_11444 = .text:0x00011444; // type:function size:0xBCC +fn_1_12010 = .text:0x00012010; // type:function size:0x3C4 +fn_1_123D4 = .text:0x000123D4; // type:function size:0x938 +fn_1_12D0C = .text:0x00012D0C; // type:function size:0x88 +fn_1_12D94 = .text:0x00012D94; // type:function size:0x82C +fn_1_135C0 = .text:0x000135C0; // type:function size:0x18E4 +fn_1_14EA4 = .text:0x00014EA4; // type:function size:0x119C +fn_1_16040 = .text:0x00016040; // type:function size:0x5A0 +fn_1_165E0 = .text:0x000165E0; // type:function size:0x6F8 +fn_1_16CD8 = .text:0x00016CD8; // type:function size:0xF2C +fn_1_17C04 = .text:0x00017C04; // type:function size:0x184 +fn_1_17D88 = .text:0x00017D88; // type:function size:0x1218 +fn_1_18FA0 = .text:0x00018FA0; // type:function size:0x220 +fn_1_191C0 = .text:0x000191C0; // type:function size:0x4B0 +fn_1_19670 = .text:0x00019670; // type:function size:0x568 +fn_1_19BD8 = .text:0x00019BD8; // type:function size:0x15C +fn_1_19D34 = .text:0x00019D34; // type:function size:0x174 +fn_1_19EA8 = .text:0x00019EA8; // type:function size:0x194 +fn_1_1A03C = .text:0x0001A03C; // type:function size:0xC8 +fn_1_1A104 = .text:0x0001A104; // type:function size:0x608 +fn_1_1A70C = .text:0x0001A70C; // type:function size:0x13C +fn_1_1A848 = .text:0x0001A848; // type:function size:0x248 +fn_1_1AA90 = .text:0x0001AA90; // type:function size:0x140 +fn_1_1ABD0 = .text:0x0001ABD0; // type:function size:0x130 +fn_1_1AD00 = .text:0x0001AD00; // type:function size:0x130 +fn_1_1AE30 = .text:0x0001AE30; // type:function size:0x5D8 +fn_1_1B408 = .text:0x0001B408; // type:function size:0xA8C +fn_1_1BE94 = .text:0x0001BE94; // type:function size:0x1E0 +fn_1_1C074 = .text:0x0001C074; // type:function size:0x1D0 +fn_1_1C244 = .text:0x0001C244; // type:function size:0xAB0 +fn_1_1CCF4 = .text:0x0001CCF4; // type:function size:0x364 +fn_1_1D058 = .text:0x0001D058; // type:function size:0x5EC +fn_1_1D644 = .text:0x0001D644; // type:function size:0x1EC +fn_1_1D830 = .text:0x0001D830; // type:function size:0x6EC +fn_1_1DF1C = .text:0x0001DF1C; // type:function size:0x894 +fn_1_1E7B0 = .text:0x0001E7B0; // type:function size:0x518 +fn_1_1ECC8 = .text:0x0001ECC8; // type:function size:0xD8 +fn_1_1EDA0 = .text:0x0001EDA0; // type:function size:0x138 +fn_1_1EED8 = .text:0x0001EED8; // type:function size:0x138 +fn_1_1F010 = .text:0x0001F010; // type:function size:0x4D4 +fn_1_1F4E4 = .text:0x0001F4E4; // type:function size:0x790 +fn_1_1FC74 = .text:0x0001FC74; // type:function size:0x188 +fn_1_1FDFC = .text:0x0001FDFC; // type:function size:0xAE4 +fn_1_208E0 = .text:0x000208E0; // type:function size:0x248 +fn_1_20B28 = .text:0x00020B28; // type:function size:0x514 +fn_1_2103C = .text:0x0002103C; // type:function size:0x150 +fn_1_2118C = .text:0x0002118C; // type:function size:0x1E0 +fn_1_2136C = .text:0x0002136C; // type:function size:0x2F0 +fn_1_2165C = .text:0x0002165C; // type:function size:0x830 +fn_1_21E8C = .text:0x00021E8C; // type:function size:0x5F8 +fn_1_22484 = .text:0x00022484; // type:function size:0x4AC +fn_1_22930 = .text:0x00022930; // type:function size:0x4F0 +fn_1_22E20 = .text:0x00022E20; // type:function size:0x5E8 +fn_1_23408 = .text:0x00023408; // type:function size:0xEF4 +fn_1_242FC = .text:0x000242FC; // type:function size:0x28 +fn_1_24324 = .text:0x00024324; // type:function size:0x20 +fn_1_24344 = .text:0x00024344; // type:function size:0xD8 +fn_1_2441C = .text:0x0002441C; // type:function size:0xC8 +fn_1_244E4 = .text:0x000244E4; // type:function size:0xBC +fn_1_245A0 = .text:0x000245A0; // type:function size:0x28 +fn_1_245C8 = .text:0x000245C8; // type:function size:0x20 +fn_1_245E8 = .text:0x000245E8; // type:function size:0x14 +fn_1_245FC = .text:0x000245FC; // type:function size:0xDC +fn_1_246D8 = .text:0x000246D8; // type:function size:0xE8 +fn_1_247C0 = .text:0x000247C0; // type:function size:0x24 +fn_1_247E4 = .text:0x000247E4; // type:function size:0xA48 +fn_1_2522C = .text:0x0002522C; // type:function size:0x2F8 +fn_1_25524 = .text:0x00025524; // type:function size:0x218 +fn_1_2573C = .text:0x0002573C; // type:function size:0x60 +fn_1_2579C = .text:0x0002579C; // type:function size:0x68 +fn_1_25804 = .text:0x00025804; // type:function size:0x90 +fn_1_25894 = .text:0x00025894; // type:function size:0x134 +fn_1_259C8 = .text:0x000259C8; // type:function size:0x48 +fn_1_25A10 = .text:0x00025A10; // type:function size:0x40 +fn_1_25A50 = .text:0x00025A50; // type:function size:0xF4 +fn_1_25B44 = .text:0x00025B44; // type:function size:0x37C +fn_1_25EC0 = .text:0x00025EC0; // type:function size:0x1CC +fn_1_2608C = .text:0x0002608C; // type:function size:0x54 +fn_1_260E0 = .text:0x000260E0; // type:function size:0x13C +fn_1_2621C = .text:0x0002621C; // type:function size:0x78C +fn_1_269A8 = .text:0x000269A8; // type:function size:0x58 +fn_1_26A00 = .text:0x00026A00; // type:function size:0x290 +fn_1_26C90 = .text:0x00026C90; // type:function size:0x138 +fn_1_26DC8 = .text:0x00026DC8; // type:function size:0x78 +fn_1_26E40 = .text:0x00026E40; // type:function size:0x2C +fn_1_26E6C = .text:0x00026E6C; // type:function size:0x42C +fn_1_27298 = .text:0x00027298; // type:function size:0x134 +fn_1_273CC = .text:0x000273CC; // type:function size:0x264 +fn_1_27630 = .text:0x00027630; // type:function size:0x424 +fn_1_27A54 = .text:0x00027A54; // type:function size:0x1C0 +fn_1_27C14 = .text:0x00027C14; // type:function size:0x210 +fn_1_27E24 = .text:0x00027E24; // type:function size:0xE4 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0xC data:4byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0xC data:4byte +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0xC data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:double +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 data:double +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:double +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x8 data:double +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 data:double +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:double +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:double +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 data:double +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 data:double +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:double +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0xC data:4byte +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float +lbl_1_rodata_5FC = .rodata:0x000005FC; // type:object size:0x4 data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x4 data:float +lbl_1_rodata_604 = .rodata:0x00000604; // type:object size:0x4 data:float +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 data:float +lbl_1_rodata_60C = .rodata:0x0000060C; // type:object size:0x4 data:float +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 data:float +lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 data:float +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 data:float +lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 data:float +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 data:float +lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 data:float +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 data:float +lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 data:float +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 data:float +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 data:double +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x8 data:double +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 data:float +lbl_1_rodata_684 = .rodata:0x00000684; // type:object size:0x4 data:float +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x8 data:double +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 data:double +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 data:float +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x8 data:double +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float +lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 data:float +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x4 data:float +lbl_1_rodata_6B4 = .rodata:0x000006B4; // type:object size:0xC data:4byte +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0xC data:4byte +lbl_1_rodata_6CC = .rodata:0x000006CC; // type:object size:0xC data:4byte +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 data:float +lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 data:float +lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 data:float +lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 data:float +lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0x4 data:float +lbl_1_rodata_6F4 = .rodata:0x000006F4; // type:object size:0x4 data:float +lbl_1_rodata_6F8 = .rodata:0x000006F8; // type:object size:0x4 data:float +lbl_1_rodata_6FC = .rodata:0x000006FC; // type:object size:0x4 data:float +lbl_1_rodata_700 = .rodata:0x00000700; // type:object size:0x4 data:float +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x8 data:double +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x8 data:float +lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 data:float +lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x8 data:double +lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float +lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float +lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float +lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x4 data:float +lbl_1_rodata_738 = .rodata:0x00000738; // type:object size:0x4 data:float +lbl_1_rodata_740 = .rodata:0x00000740; // type:object size:0x8 data:double +lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x8 data:double +lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 data:float +lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x8 data:double +lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x4 data:float +lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x8 data:double +lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0x8 data:double +lbl_1_rodata_778 = .rodata:0x00000778; // type:object size:0x4 data:float +lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x8 data:double +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x4 data:float +lbl_1_rodata_78C = .rodata:0x0000078C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1C +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x24 +lbl_1_data_40 = .data:0x00000040; // type:object size:0x30 data:4byte +lbl_1_data_70 = .data:0x00000070; // type:object size:0x16 data:string +lbl_1_data_86 = .data:0x00000086; // type:object size:0x6 +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x10 +lbl_1_data_9C = .data:0x0000009C; // type:object size:0x4 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA data:string +lbl_1_data_AA = .data:0x000000AA; // type:object size:0x6 +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x2 data:2byte +lbl_1_data_B2 = .data:0x000000B2; // type:object size:0xE +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x10 +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x10 +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x6 +lbl_1_data_E6 = .data:0x000000E6; // type:object size:0xA +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x20 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x10 +lbl_1_data_120 = .data:0x00000120; // type:object size:0x10 +lbl_1_data_130 = .data:0x00000130; // type:object size:0x28 +lbl_1_data_158 = .data:0x00000158; // type:object size:0x2 data:2byte +lbl_1_data_15A = .data:0x0000015A; // type:object size:0x8 +lbl_1_data_162 = .data:0x00000162; // type:object size:0x16 +lbl_1_data_178 = .data:0x00000178; // type:object size:0x2 data:2byte +lbl_1_data_17A = .data:0x0000017A; // type:object size:0x32 +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x10 +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x10 +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0xA data:string +lbl_1_data_1D6 = .data:0x000001D6; // type:object size:0xE data:string +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x10 +lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x24 data:string +lbl_1_data_218 = .data:0x00000218; // type:object size:0x26 data:string +lbl_1_data_23E = .data:0x0000023E; // type:object size:0x27 data:string +lbl_1_data_265 = .data:0x00000265; // type:object size:0x1C data:string +lbl_1_data_281 = .data:0x00000281; // type:object size:0x1B data:string +lbl_1_data_29C = .data:0x0000029C; // type:object size:0x1C data:string +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x1D data:string +lbl_1_data_2D5 = .data:0x000002D5; // type:object size:0xC data:string +lbl_1_data_2E1 = .data:0x000002E1; // type:object size:0x1A data:string +lbl_1_data_2FB = .data:0x000002FB; // type:object size:0x1A data:string +lbl_1_data_315 = .data:0x00000315; // type:object size:0x27 +lbl_1_data_33C = .data:0x0000033C; // type:object size:0x40 data:4byte +lbl_1_data_37C = .data:0x0000037C; // type:object size:0x60 +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x18 data:4byte +lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x64 +lbl_1_data_458 = .data:0x00000458; // type:object size:0x40 +lbl_1_data_498 = .data:0x00000498; // type:object size:0x8 data:4byte +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x2D8 +lbl_1_data_778 = .data:0x00000778; // type:object size:0x258 +lbl_1_data_9D0 = .data:0x000009D0; // type:object size:0x20 +lbl_1_data_9F0 = .data:0x000009F0; // type:object size:0x20 +lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x2 data:2byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x264 data:4byte +lbl_1_bss_26C = .bss:0x0000026C; // type:object size:0x8 data:float +lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x18 data:4byte +lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x18 data:4byte +lbl_1_bss_2A4 = .bss:0x000002A4; // type:object size:0x2 data:2byte +lbl_1_bss_2A6 = .bss:0x000002A6; // type:object size:0xA data:2byte +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 data:float +lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0xC data:4byte +lbl_1_bss_2C0 = .bss:0x000002C0; // type:object size:0xC data:4byte +lbl_1_bss_2CC = .bss:0x000002CC; // type:object size:0x2 data:2byte +lbl_1_bss_2CE = .bss:0x000002CE; // type:object size:0x2 data:2byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x8 data:4byte +lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0x4 data:4byte +lbl_1_bss_2DC = .bss:0x000002DC; // type:object size:0x6 +lbl_1_bss_2E2 = .bss:0x000002E2; // type:object size:0x2 data:2byte +lbl_1_bss_2E4 = .bss:0x000002E4; // type:object size:0x2 data:2byte +lbl_1_bss_2E6 = .bss:0x000002E6; // type:object size:0x2 data:2byte +lbl_1_bss_2E8 = .bss:0x000002E8; // type:object size:0x4 data:float +lbl_1_bss_2EC = .bss:0x000002EC; // type:object size:0x2 data:2byte +lbl_1_bss_2EE = .bss:0x000002EE; // type:object size:0x2 data:2byte +lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0x2 data:2byte +lbl_1_bss_2F4 = .bss:0x000002F4; // type:object size:0x18 +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0x2 data:2byte +lbl_1_bss_30E = .bss:0x0000030E; // type:object size:0x8 +lbl_1_bss_316 = .bss:0x00000316; // type:object size:0x2 data:2byte +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0x28 data:2byte +lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x8 +lbl_1_bss_348 = .bss:0x00000348; // type:object size:0x2 data:2byte +lbl_1_bss_34A = .bss:0x0000034A; // type:object size:0x8 data:2byte +lbl_1_bss_352 = .bss:0x00000352; // type:object size:0x1E +lbl_1_bss_370 = .bss:0x00000370; // type:object size:0xC +lbl_1_bss_37C = .bss:0x0000037C; // type:object size:0xC +lbl_1_bss_388 = .bss:0x00000388; // type:object size:0x2 data:2byte +lbl_1_bss_38A = .bss:0x0000038A; // type:object size:0x2 data:2byte +lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x8 +lbl_1_bss_394 = .bss:0x00000394; // type:object size:0x2 data:2byte +lbl_1_bss_396 = .bss:0x00000396; // type:object size:0xA +lbl_1_bss_3A0 = .bss:0x000003A0; // type:object size:0x4 data:4byte +lbl_1_bss_3A4 = .bss:0x000003A4; // type:object size:0x2 data:2byte +lbl_1_bss_3A8 = .bss:0x000003A8; // type:object size:0x2 data:2byte +lbl_1_bss_3AA = .bss:0x000003AA; // type:object size:0x2 data:2byte +lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x2 data:2byte +lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x2 data:2byte +lbl_1_bss_3B4 = .bss:0x000003B4; // type:object size:0x2 data:2byte +lbl_1_bss_3B8 = .bss:0x000003B8; // type:object size:0x8 data:2byte +lbl_1_bss_3C0 = .bss:0x000003C0; // type:object size:0x4 data:4byte +lbl_1_bss_3C4 = .bss:0x000003C4; // type:object size:0x4 data:4byte +lbl_1_bss_3C8 = .bss:0x000003C8; // type:object size:0x4 data:4byte +lbl_1_bss_3CC = .bss:0x000003CC; // type:object size:0x1A40 +lbl_1_bss_1E0C = .bss:0x00001E0C; // type:object size:0x4 data:4byte +lbl_1_bss_1E10 = .bss:0x00001E10; // type:object size:0x240 data:4byte +lbl_1_bss_2050 = .bss:0x00002050; // type:object size:0x5A +lbl_1_bss_20AA = .bss:0x000020AA; // type:object size:0x2 data:2byte +lbl_1_bss_20AC = .bss:0x000020AC; // type:object size:0x14 data:2byte +lbl_1_bss_20C0 = .bss:0x000020C0; // type:object size:0x578 +lbl_1_bss_2638 = .bss:0x00002638; // type:object size:0x14 data:2byte +lbl_1_bss_264C = .bss:0x0000264C; // type:object size:0x578 +lbl_1_bss_2BC4 = .bss:0x00002BC4; // type:object size:0x50 +lbl_1_bss_2C14 = .bss:0x00002C14; // type:object size:0x8 +lbl_1_bss_2C1C = .bss:0x00002C1C; // type:object size:0x8 +lbl_1_bss_2C24 = .bss:0x00002C24; // type:object size:0x8 +lbl_1_bss_2C2C = .bss:0x00002C2C; // type:object size:0x3A data:2byte +lbl_1_bss_2C66 = .bss:0x00002C66; // type:object size:0x1A data:2byte +lbl_1_bss_2C80 = .bss:0x00002C80; // type:object size:0x1A data:2byte diff --git a/config/GMPP01_00/rels/modeltestDll/splits.txt b/config/GMPP01_00/rels/modeltestDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/modeltestDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/modeltestDll/symbols.txt b/config/GMPP01_00/rels/modeltestDll/symbols.txt new file mode 100644 index 00000000..3c87f506 --- /dev/null +++ b/config/GMPP01_00/rels/modeltestDll/symbols.txt @@ -0,0 +1,230 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x1FC +fn_1_29C = .text:0x0000029C; // type:function size:0xC9C +fn_1_F38 = .text:0x00000F38; // type:function size:0x64 +fn_1_F9C = .text:0x00000F9C; // type:function size:0x1158 +fn_1_20F4 = .text:0x000020F4; // type:function size:0x804 +fn_1_28F8 = .text:0x000028F8; // type:function size:0x204 +fn_1_2AFC = .text:0x00002AFC; // type:function size:0x6C +fn_1_2B68 = .text:0x00002B68; // type:function size:0x948 +fn_1_34B0 = .text:0x000034B0; // type:function size:0x32C +fn_1_37DC = .text:0x000037DC; // type:function size:0xBC0 +fn_1_439C = .text:0x0000439C; // type:function size:0x354 +fn_1_46F0 = .text:0x000046F0; // type:function size:0x3D8 +fn_1_4AC8 = .text:0x00004AC8; // type:function size:0x330 +fn_1_4DF8 = .text:0x00004DF8; // type:function size:0xC68 +fn_1_5A60 = .text:0x00005A60; // type:function size:0x348 +fn_1_5DA8 = .text:0x00005DA8; // type:function size:0xC20 +fn_1_69C8 = .text:0x000069C8; // type:function size:0x118 +fn_1_6AE0 = .text:0x00006AE0; // type:function size:0x166C +fn_1_814C = .text:0x0000814C; // type:function size:0x17C +fn_1_82C8 = .text:0x000082C8; // type:function size:0xEC +fn_1_83B4 = .text:0x000083B4; // type:function size:0x304 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0xC data:4byte +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0xC data:4byte +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x10 data:2byte +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0xC data:4byte +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0xC data:4byte +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0xC data:4byte +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0xC data:4byte +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0xC data:4byte +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0xC data:4byte +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 data:4byte +lbl_1_data_20 = .data:0x00000020; // type:object size:0x28 data:string +lbl_1_data_48 = .data:0x00000048; // type:object size:0x9 data:string +lbl_1_data_51 = .data:0x00000051; // type:object size:0x9 data:string +lbl_1_data_5A = .data:0x0000005A; // type:object size:0x9 data:string +lbl_1_data_63 = .data:0x00000063; // type:object size:0x9 data:string +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x9 data:string +lbl_1_data_75 = .data:0x00000075; // type:object size:0x9 data:string +lbl_1_data_7E = .data:0x0000007E; // type:object size:0x9 data:string +lbl_1_data_87 = .data:0x00000087; // type:object size:0x9 data:string +lbl_1_data_90 = .data:0x00000090; // type:object size:0x9 data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0x9 data:string +lbl_1_data_A2 = .data:0x000000A2; // type:object size:0x9 data:string +lbl_1_data_AB = .data:0x000000AB; // type:object size:0x9 data:string +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x9 data:string +lbl_1_data_BD = .data:0x000000BD; // type:object size:0x9 data:string +lbl_1_data_C6 = .data:0x000000C6; // type:object size:0x9 data:string +lbl_1_data_CF = .data:0x000000CF; // type:object size:0x9 data:string +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x40 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x50 data:float +lbl_1_data_168 = .data:0x00000168; // type:object size:0xA0 +lbl_1_data_208 = .data:0x00000208; // type:object size:0x50 +lbl_1_data_258 = .data:0x00000258; // type:object size:0x50 +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x1A data:string +lbl_1_data_2C2 = .data:0x000002C2; // type:object size:0x16 +lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x10 data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x4 data:string +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x2C data:string +lbl_1_data_318 = .data:0x00000318; // type:object size:0x40 +lbl_1_data_358 = .data:0x00000358; // type:object size:0x8 +lbl_1_data_360 = .data:0x00000360; // type:object size:0x28 data:string +lbl_1_data_388 = .data:0x00000388; // type:object size:0x28 data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x58 +lbl_1_data_408 = .data:0x00000408; // type:object size:0x58 +lbl_1_data_460 = .data:0x00000460; // type:object size:0x58 +lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0x58 +lbl_1_data_510 = .data:0x00000510; // type:object size:0x58 +lbl_1_data_568 = .data:0x00000568; // type:object size:0x58 +lbl_1_data_5C0 = .data:0x000005C0; // type:object size:0x58 +lbl_1_data_618 = .data:0x00000618; // type:object size:0x58 +lbl_1_data_670 = .data:0x00000670; // type:object size:0x20 +lbl_1_data_690 = .data:0x00000690; // type:object size:0x10 data:string +lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0xD data:string +lbl_1_data_6AD = .data:0x000006AD; // type:object size:0xD data:string +lbl_1_data_6BA = .data:0x000006BA; // type:object size:0xD data:string +lbl_1_data_6C7 = .data:0x000006C7; // type:object size:0xB data:string +lbl_1_data_6D2 = .data:0x000006D2; // type:object size:0x8 data:string +lbl_1_data_6DA = .data:0x000006DA; // type:object size:0xF data:string +lbl_1_data_6E9 = .data:0x000006E9; // type:object size:0xB +lbl_1_data_6F4 = .data:0x000006F4; // type:object size:0x60 +lbl_1_data_754 = .data:0x00000754; // type:object size:0x4 data:4byte +lbl_1_data_758 = .data:0x00000758; // type:object size:0x12 +lbl_1_data_76A = .data:0x0000076A; // type:object size:0x2E +lbl_1_data_798 = .data:0x00000798; // type:object size:0x14 +lbl_1_data_7AC = .data:0x000007AC; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x1 data:byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x10 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x414 +lbl_1_bss_454 = .bss:0x00000454; // type:object size:0x4 data:4byte +lbl_1_bss_458 = .bss:0x00000458; // type:object size:0x2 data:2byte +lbl_1_bss_45A = .bss:0x0000045A; // type:object size:0x6 data:2byte +lbl_1_bss_460 = .bss:0x00000460; // type:object size:0x204 data:2byte +lbl_1_bss_664 = .bss:0x00000664; // type:object size:0x200 data:2byte +lbl_1_bss_864 = .bss:0x00000864; // type:object size:0x20 +lbl_1_bss_884 = .bss:0x00000884; // type:object size:0x2 data:2byte +lbl_1_bss_888 = .bss:0x00000888; // type:object size:0x2 data:2byte +lbl_1_bss_88A = .bss:0x0000088A; // type:object size:0x100 +lbl_1_bss_98A = .bss:0x0000098A; // type:object size:0x10 data:2byte +lbl_1_bss_99A = .bss:0x0000099A; // type:object size:0x2 data:2byte +lbl_1_bss_99C = .bss:0x0000099C; // type:object size:0x2 data:2byte +lbl_1_bss_9A0 = .bss:0x000009A0; // type:object size:0x4 data:4byte +lbl_1_bss_9A4 = .bss:0x000009A4; // type:object size:0x4 data:4byte +lbl_1_bss_9A8 = .bss:0x000009A8; // type:object size:0x4 data:4byte +lbl_1_bss_9AC = .bss:0x000009AC; // type:object size:0x40 +lbl_1_bss_9EC = .bss:0x000009EC; // type:object size:0x8 +lbl_1_bss_9F4 = .bss:0x000009F4; // type:object size:0x4 data:4byte +lbl_1_bss_9F8 = .bss:0x000009F8; // type:object size:0x8 data:4byte +lbl_1_bss_A00 = .bss:0x00000A00; // type:object size:0x4 data:4byte +lbl_1_bss_A04 = .bss:0x00000A04; // type:object size:0x4 data:4byte +lbl_1_bss_A08 = .bss:0x00000A08; // type:object size:0x2 data:2byte +lbl_1_bss_A0C = .bss:0x00000A0C; // type:object size:0x8 data:float +lbl_1_bss_A14 = .bss:0x00000A14; // type:object size:0x4 data:4byte +lbl_1_bss_A18 = .bss:0x00000A18; // type:object size:0xA4 data:float +lbl_1_bss_ABC = .bss:0x00000ABC; // type:object size:0x4 data:4byte +lbl_1_bss_AC0 = .bss:0x00000AC0; // type:object size:0x8 data:4byte diff --git a/config/GMPP01_00/rels/modeseldll/splits.txt b/config/GMPP01_00/rels/modeseldll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/modeseldll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/modeseldll/symbols.txt b/config/GMPP01_00/rels/modeseldll/symbols.txt new file mode 100644 index 00000000..5cfb1784 --- /dev/null +++ b/config/GMPP01_00/rels/modeseldll/symbols.txt @@ -0,0 +1,269 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x374 +fn_1_414 = .text:0x00000414; // type:function size:0x678 +fn_1_A8C = .text:0x00000A8C; // type:function size:0xFC +fn_1_B88 = .text:0x00000B88; // type:function size:0x9C +fn_1_C24 = .text:0x00000C24; // type:function size:0x3B4 +fn_1_FD8 = .text:0x00000FD8; // type:function size:0xC2C +fn_1_1C04 = .text:0x00001C04; // type:function size:0x2C4 +fn_1_1EC8 = .text:0x00001EC8; // type:function size:0x90 +fn_1_1F58 = .text:0x00001F58; // type:function size:0x4A8 +fn_1_2400 = .text:0x00002400; // type:function size:0x128 +fn_1_2528 = .text:0x00002528; // type:function size:0x11D8 +fn_1_3700 = .text:0x00003700; // type:function size:0x174 +fn_1_3874 = .text:0x00003874; // type:function size:0x2DC +fn_1_3B50 = .text:0x00003B50; // type:function size:0x1B80 +fn_1_56D0 = .text:0x000056D0; // type:function size:0x19C +fn_1_586C = .text:0x0000586C; // type:function size:0x88 +fn_1_58F4 = .text:0x000058F4; // type:function size:0x35C +fn_1_5C50 = .text:0x00005C50; // type:function size:0x8C +fn_1_5CDC = .text:0x00005CDC; // type:function size:0xF8 +fn_1_5DD4 = .text:0x00005DD4; // type:function size:0x484 +fn_1_6258 = .text:0x00006258; // type:function size:0x1188 +fn_1_73E0 = .text:0x000073E0; // type:function size:0x34C +fn_1_772C = .text:0x0000772C; // type:function size:0x8C +fn_1_77B8 = .text:0x000077B8; // type:function size:0x4C0 +fn_1_7C78 = .text:0x00007C78; // type:function size:0x5B8 +fn_1_8230 = .text:0x00008230; // type:function size:0x288 +fn_1_84B8 = .text:0x000084B8; // type:function size:0x18C +fn_1_8644 = .text:0x00008644; // type:function size:0x6F0 +fn_1_8D34 = .text:0x00008D34; // type:function size:0x11E4 +fn_1_9F18 = .text:0x00009F18; // type:function size:0x38 +fn_1_9F50 = .text:0x00009F50; // type:function size:0xA74 +fn_1_A9C4 = .text:0x0000A9C4; // type:function size:0x1F8 +fn_1_ABBC = .text:0x0000ABBC; // type:function size:0xE14 +fn_1_B9D0 = .text:0x0000B9D0; // type:function size:0x154 +fn_1_BB24 = .text:0x0000BB24; // type:function size:0x60 +fn_1_BB84 = .text:0x0000BB84; // type:function size:0x458 +fn_1_BFDC = .text:0x0000BFDC; // type:function size:0x290 +fn_1_C26C = .text:0x0000C26C; // type:function size:0x154 +fn_1_C3C0 = .text:0x0000C3C0; // type:function size:0x78 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:byte +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 +lbl_1_data_38 = .data:0x00000038; // type:object size:0x22 data:string +lbl_1_data_5A = .data:0x0000005A; // type:object size:0x14 data:string +lbl_1_data_6E = .data:0x0000006E; // type:object size:0x4 +lbl_1_data_72 = .data:0x00000072; // type:object size:0xA data:string +lbl_1_data_7C = .data:0x0000007C; // type:object size:0x4 data:string +lbl_1_data_80 = .data:0x00000080; // type:object size:0xC +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x18 +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x18 +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x18 +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x14 data:string +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x9 data:string +lbl_1_data_F1 = .data:0x000000F1; // type:object size:0xF +lbl_1_data_100 = .data:0x00000100; // type:object size:0x11C data:2byte +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x48 data:4byte +lbl_1_data_264 = .data:0x00000264; // type:object size:0x3 +lbl_1_data_267 = .data:0x00000267; // type:object size:0xD +lbl_1_data_274 = .data:0x00000274; // type:object size:0x2 data:string +lbl_1_data_276 = .data:0x00000276; // type:object size:0x2 data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0x8 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:string +lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:string +lbl_1_data_284 = .data:0x00000284; // type:object size:0x4 +lbl_1_data_288 = .data:0x00000288; // type:object size:0xC +lbl_1_data_294 = .data:0x00000294; // type:object size:0x19 data:string +lbl_1_data_2AD = .data:0x000002AD; // type:object size:0x23 data:string +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x1B data:string +lbl_1_data_2EB = .data:0x000002EB; // type:object size:0x19 data:string +lbl_1_data_304 = .data:0x00000304; // type:object size:0x19 data:string +lbl_1_data_31D = .data:0x0000031D; // type:object size:0x20 data:string +lbl_1_data_33D = .data:0x0000033D; // type:object size:0x1B data:string +lbl_1_data_358 = .data:0x00000358; // type:object size:0x1B data:string +lbl_1_data_373 = .data:0x00000373; // type:object size:0x22 data:string +lbl_1_data_395 = .data:0x00000395; // type:object size:0x5 data:string +lbl_1_data_39A = .data:0x0000039A; // type:object size:0x15 data:string +lbl_1_data_3AF = .data:0x000003AF; // type:object size:0x15 data:string +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x1F data:string +lbl_1_data_3E3 = .data:0x000003E3; // type:object size:0x10 data:string +lbl_1_data_3F3 = .data:0x000003F3; // type:object size:0xD data:string +lbl_1_data_400 = .data:0x00000400; // type:object size:0x16 +lbl_1_data_416 = .data:0x00000416; // type:object size:0x6 data:string +lbl_1_data_41C = .data:0x0000041C; // type:object size:0x2 data:2byte +lbl_1_data_41E = .data:0x0000041E; // type:object size:0xA +lbl_1_data_428 = .data:0x00000428; // type:object size:0x514 +lbl_1_data_93C = .data:0x0000093C; // type:object size:0xF0 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x18 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x30 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0xC data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0xC data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x8 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x2 data:2byte +lbl_1_bss_82 = .bss:0x00000082; // type:object size:0x6 data:2byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x2 data:2byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:float +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x2 data:2byte +lbl_1_bss_92 = .bss:0x00000092; // type:object size:0x6 +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x6 +lbl_1_bss_9E = .bss:0x0000009E; // type:object size:0x6 +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x8 +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0xC +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0xC +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0xC +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x18 +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x6 +lbl_1_bss_EE = .bss:0x000000EE; // type:object size:0x6 +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x4 data:4byte +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x4 data:4byte +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x8 data:float +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x8 data:float +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x6 +lbl_1_bss_116 = .bss:0x00000116; // type:object size:0x6 +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x2 data:2byte +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0xC data:4byte +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x8 data:4byte +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x6 +lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x6 +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x6 +lbl_1_bss_146 = .bss:0x00000146; // type:object size:0x2 data:2byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x2 data:2byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x6 +lbl_1_bss_152 = .bss:0x00000152; // type:object size:0x18 data:2byte +lbl_1_bss_16A = .bss:0x0000016A; // type:object size:0x30 data:2byte +lbl_1_bss_19A = .bss:0x0000019A; // type:object size:0x30 data:2byte diff --git a/config/GMPP01_00/rels/mpexDll/splits.txt b/config/GMPP01_00/rels/mpexDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/mpexDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/mpexDll/symbols.txt b/config/GMPP01_00/rels/mpexDll/symbols.txt new file mode 100644 index 00000000..eb374c16 --- /dev/null +++ b/config/GMPP01_00/rels/mpexDll/symbols.txt @@ -0,0 +1,474 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0xE8 +fn_1_188 = .text:0x00000188; // type:function size:0x38 +fn_1_1C0 = .text:0x000001C0; // type:function size:0x70 +fn_1_230 = .text:0x00000230; // type:function size:0x68 +fn_1_298 = .text:0x00000298; // type:function size:0xDC +fn_1_374 = .text:0x00000374; // type:function size:0xC4 +fn_1_438 = .text:0x00000438; // type:function size:0x3E4 +fn_1_81C = .text:0x0000081C; // type:function size:0xB8 +fn_1_8D4 = .text:0x000008D4; // type:function size:0x3C +fn_1_910 = .text:0x00000910; // type:function size:0x124 +fn_1_A34 = .text:0x00000A34; // type:function size:0x3C +fn_1_A70 = .text:0x00000A70; // type:function size:0x44 +fn_1_AB4 = .text:0x00000AB4; // type:function size:0x1D0 +fn_1_C84 = .text:0x00000C84; // type:function size:0x1C4 +fn_1_E48 = .text:0x00000E48; // type:function size:0x200 +fn_1_1048 = .text:0x00001048; // type:function size:0x238 +fn_1_1280 = .text:0x00001280; // type:function size:0x39C +fn_1_161C = .text:0x0000161C; // type:function size:0x200 +fn_1_181C = .text:0x0000181C; // type:function size:0x238 +fn_1_1A54 = .text:0x00001A54; // type:function size:0x39C +fn_1_1DF0 = .text:0x00001DF0; // type:function size:0x200 +fn_1_1FF0 = .text:0x00001FF0; // type:function size:0x238 +fn_1_2228 = .text:0x00002228; // type:function size:0x39C +fn_1_25C4 = .text:0x000025C4; // type:function size:0x178 +fn_1_273C = .text:0x0000273C; // type:function size:0x1A0 +fn_1_28DC = .text:0x000028DC; // type:function size:0x4 +fn_1_28E0 = .text:0x000028E0; // type:function size:0x764 +fn_1_3044 = .text:0x00003044; // type:function size:0x294 +fn_1_32D8 = .text:0x000032D8; // type:function size:0xAC +fn_1_3384 = .text:0x00003384; // type:function size:0x74 +fn_1_33F8 = .text:0x000033F8; // type:function size:0x110 +fn_1_3508 = .text:0x00003508; // type:function size:0x19C +fn_1_36A4 = .text:0x000036A4; // type:function size:0xB4 +fn_1_3758 = .text:0x00003758; // type:function size:0x224 +fn_1_397C = .text:0x0000397C; // type:function size:0x78 +fn_1_39F4 = .text:0x000039F4; // type:function size:0x104 +fn_1_3AF8 = .text:0x00003AF8; // type:function size:0x51C +fn_1_4014 = .text:0x00004014; // type:function size:0x98 +fn_1_40AC = .text:0x000040AC; // type:function size:0x98 +fn_1_4144 = .text:0x00004144; // type:function size:0x40 +fn_1_4184 = .text:0x00004184; // type:function size:0x2C8 +fn_1_444C = .text:0x0000444C; // type:function size:0xC8 +fn_1_4514 = .text:0x00004514; // type:function size:0x21C +fn_1_4730 = .text:0x00004730; // type:function size:0x40 +fn_1_4770 = .text:0x00004770; // type:function size:0x2E8 +fn_1_4A58 = .text:0x00004A58; // type:function size:0xE4 +fn_1_4B3C = .text:0x00004B3C; // type:function size:0x3C +fn_1_4B78 = .text:0x00004B78; // type:function size:0xF4 +fn_1_4C6C = .text:0x00004C6C; // type:function size:0x18C +fn_1_4DF8 = .text:0x00004DF8; // type:function size:0x18C +fn_1_4F84 = .text:0x00004F84; // type:function size:0x2B4 +fn_1_5238 = .text:0x00005238; // type:function size:0x2F8 +fn_1_5530 = .text:0x00005530; // type:function size:0x188 +fn_1_56B8 = .text:0x000056B8; // type:function size:0x128 +fn_1_57E0 = .text:0x000057E0; // type:function size:0x3C +fn_1_581C = .text:0x0000581C; // type:function size:0x140 +fn_1_595C = .text:0x0000595C; // type:function size:0x19C +fn_1_5AF8 = .text:0x00005AF8; // type:function size:0x124 +fn_1_5C1C = .text:0x00005C1C; // type:function size:0x124 +fn_1_5D40 = .text:0x00005D40; // type:function size:0x1E88 +fn_1_7BC8 = .text:0x00007BC8; // type:function size:0x1B8 +fn_1_7D80 = .text:0x00007D80; // type:function size:0x244 +fn_1_7FC4 = .text:0x00007FC4; // type:function size:0x1A8 +fn_1_816C = .text:0x0000816C; // type:function size:0x1B4 +fn_1_8320 = .text:0x00008320; // type:function size:0x2A4 +fn_1_85C4 = .text:0x000085C4; // type:function size:0x194 +fn_1_8758 = .text:0x00008758; // type:function size:0x194 +fn_1_88EC = .text:0x000088EC; // type:function size:0xD8 +fn_1_89C4 = .text:0x000089C4; // type:function size:0x118 +fn_1_8ADC = .text:0x00008ADC; // type:function size:0x540 +fn_1_901C = .text:0x0000901C; // type:function size:0x414 +fn_1_9430 = .text:0x00009430; // type:function size:0x284 +fn_1_96B4 = .text:0x000096B4; // type:function size:0x8C +fn_1_9740 = .text:0x00009740; // type:function size:0x150 +fn_1_9890 = .text:0x00009890; // type:function size:0x78 +fn_1_9908 = .text:0x00009908; // type:function size:0x80 +fn_1_9988 = .text:0x00009988; // type:function size:0x33C +fn_1_9CC4 = .text:0x00009CC4; // type:function size:0x98 +fn_1_9D5C = .text:0x00009D5C; // type:function size:0x1A4 +fn_1_9F00 = .text:0x00009F00; // type:function size:0x1D4 +fn_1_A0D4 = .text:0x0000A0D4; // type:function size:0x1C8 +fn_1_A29C = .text:0x0000A29C; // type:function size:0xF8 +fn_1_A394 = .text:0x0000A394; // type:function size:0x264 +fn_1_A5F8 = .text:0x0000A5F8; // type:function size:0x72C +fn_1_AD24 = .text:0x0000AD24; // type:function size:0x2D0 +fn_1_AFF4 = .text:0x0000AFF4; // type:function size:0x20C +fn_1_B200 = .text:0x0000B200; // type:function size:0x38 +fn_1_B238 = .text:0x0000B238; // type:function size:0x9C +fn_1_B2D4 = .text:0x0000B2D4; // type:function size:0x510 +fn_1_B7E4 = .text:0x0000B7E4; // type:function size:0x7C +fn_1_B860 = .text:0x0000B860; // type:function size:0x138 +fn_1_B998 = .text:0x0000B998; // type:function size:0x18C +fn_1_BB24 = .text:0x0000BB24; // type:function size:0xE4 +fn_1_BC08 = .text:0x0000BC08; // type:function size:0xC0 +fn_1_BCC8 = .text:0x0000BCC8; // type:function size:0x38 +fn_1_BD00 = .text:0x0000BD00; // type:function size:0x68 +fn_1_BD68 = .text:0x0000BD68; // type:function size:0x2F4 +fn_1_C05C = .text:0x0000C05C; // type:function size:0x70 +fn_1_C0CC = .text:0x0000C0CC; // type:function size:0x3F8 +fn_1_C4C4 = .text:0x0000C4C4; // type:function size:0x70 +fn_1_C534 = .text:0x0000C534; // type:function size:0x31C +fn_1_C850 = .text:0x0000C850; // type:function size:0x38 +fn_1_C888 = .text:0x0000C888; // type:function size:0x200 +fn_1_CA88 = .text:0x0000CA88; // type:function size:0x420 +fn_1_CEA8 = .text:0x0000CEA8; // type:function size:0x49C +fn_1_D344 = .text:0x0000D344; // type:function size:0xBC +fn_1_D400 = .text:0x0000D400; // type:function size:0x244 +fn_1_D644 = .text:0x0000D644; // type:function size:0x524 +fn_1_DB68 = .text:0x0000DB68; // type:function size:0x5A4 +fn_1_E10C = .text:0x0000E10C; // type:function size:0x210 +fn_1_E31C = .text:0x0000E31C; // type:function size:0x1E4 +fn_1_E500 = .text:0x0000E500; // type:function size:0x5A4 +fn_1_EAA4 = .text:0x0000EAA4; // type:function size:0x25C +fn_1_ED00 = .text:0x0000ED00; // type:function size:0x348 +fn_1_F048 = .text:0x0000F048; // type:function size:0x34C +fn_1_F394 = .text:0x0000F394; // type:function size:0x70 +fn_1_F404 = .text:0x0000F404; // type:function size:0x2B4 +fn_1_F6B8 = .text:0x0000F6B8; // type:function size:0x174 +fn_1_F82C = .text:0x0000F82C; // type:function size:0x4FC +fn_1_FD28 = .text:0x0000FD28; // type:function size:0x3BC +fn_1_100E4 = .text:0x000100E4; // type:function size:0xCC +fn_1_101B0 = .text:0x000101B0; // type:function size:0x40 +fn_1_101F0 = .text:0x000101F0; // type:function size:0x1F4 +fn_1_103E4 = .text:0x000103E4; // type:function size:0x390 +fn_1_10774 = .text:0x00010774; // type:function size:0x70 +fn_1_107E4 = .text:0x000107E4; // type:function size:0x260 +fn_1_10A44 = .text:0x00010A44; // type:function size:0x174 +fn_1_10BB8 = .text:0x00010BB8; // type:function size:0x4C8 +fn_1_11080 = .text:0x00011080; // type:function size:0x3DC +fn_1_1145C = .text:0x0001145C; // type:function size:0xCC +fn_1_11528 = .text:0x00011528; // type:function size:0x40 +fn_1_11568 = .text:0x00011568; // type:function size:0x1F4 +fn_1_1175C = .text:0x0001175C; // type:function size:0x15C +fn_1_118B8 = .text:0x000118B8; // type:function size:0x54 +fn_1_1190C = .text:0x0001190C; // type:function size:0x5C +fn_1_11968 = .text:0x00011968; // type:function size:0x5C +fn_1_119C4 = .text:0x000119C4; // type:function size:0x3EC +fn_1_11DB0 = .text:0x00011DB0; // type:function size:0x198 +fn_1_11F48 = .text:0x00011F48; // type:function size:0x228 +fn_1_12170 = .text:0x00012170; // type:function size:0x3E4 +fn_1_12554 = .text:0x00012554; // type:function size:0x70 +fn_1_125C4 = .text:0x000125C4; // type:function size:0xA0 +fn_1_12664 = .text:0x00012664; // type:function size:0x224 +fn_1_12888 = .text:0x00012888; // type:function size:0x2DC +fn_1_12B64 = .text:0x00012B64; // type:function size:0x2C +fn_1_12B90 = .text:0x00012B90; // type:function size:0x518 +fn_1_130A8 = .text:0x000130A8; // type:function size:0x2C +fn_1_130D4 = .text:0x000130D4; // type:function size:0x28 +fn_1_130FC = .text:0x000130FC; // type:function size:0x274 +fn_1_13370 = .text:0x00013370; // type:function size:0x2C +fn_1_1339C = .text:0x0001339C; // type:function size:0x2C +fn_1_133C8 = .text:0x000133C8; // type:function size:0x24 +fn_1_133EC = .text:0x000133EC; // type:function size:0x2BC +fn_1_136A8 = .text:0x000136A8; // type:function size:0x500 +fn_1_13BA8 = .text:0x00013BA8; // type:function size:0x480 +fn_1_14028 = .text:0x00014028; // type:function size:0x80C +fn_1_14834 = .text:0x00014834; // type:function size:0x28 +fn_1_1485C = .text:0x0001485C; // type:function size:0x28 +fn_1_14884 = .text:0x00014884; // type:function size:0x21C +fn_1_14AA0 = .text:0x00014AA0; // type:function size:0x194 +fn_1_14C34 = .text:0x00014C34; // type:function size:0x198 +fn_1_14DCC = .text:0x00014DCC; // type:function size:0x9C +fn_1_14E68 = .text:0x00014E68; // type:function size:0x2D8 +fn_1_15140 = .text:0x00015140; // type:function size:0x2DC +fn_1_1541C = .text:0x0001541C; // type:function size:0x1E0 +fn_1_155FC = .text:0x000155FC; // type:function size:0xF0 +fn_1_156EC = .text:0x000156EC; // type:function size:0x50 +fn_1_1573C = .text:0x0001573C; // type:function size:0x584 +fn_1_15CC0 = .text:0x00015CC0; // type:function size:0x5D8 +fn_1_16298 = .text:0x00016298; // type:function size:0x2E0 +fn_1_16578 = .text:0x00016578; // type:function size:0x274 +fn_1_167EC = .text:0x000167EC; // type:function size:0x7C +fn_1_16868 = .text:0x00016868; // type:function size:0x44C +fn_1_16CB4 = .text:0x00016CB4; // type:function size:0x434 +fn_1_170E8 = .text:0x000170E8; // type:function size:0x204 +fn_1_172EC = .text:0x000172EC; // type:function size:0x790 +fn_1_17A7C = .text:0x00017A7C; // type:function size:0xB0C +fn_1_18588 = .text:0x00018588; // type:function size:0x720 +fn_1_18CA8 = .text:0x00018CA8; // type:function size:0x9C +fn_1_18D44 = .text:0x00018D44; // type:function size:0xCCC +fn_1_19A10 = .text:0x00019A10; // type:function size:0x924 +fn_1_1A334 = .text:0x0001A334; // type:function size:0x1E8 +fn_1_1A51C = .text:0x0001A51C; // type:function size:0x958 +fn_1_1AE74 = .text:0x0001AE74; // type:function size:0x7C +fn_1_1AEF0 = .text:0x0001AEF0; // type:function size:0x164 +fn_1_1B054 = .text:0x0001B054; // type:function size:0x1B8 +fn_1_1B20C = .text:0x0001B20C; // type:function size:0xA4 +fn_1_1B2B0 = .text:0x0001B2B0; // type:function size:0xF4 +fn_1_1B3A4 = .text:0x0001B3A4; // type:function size:0x80 +fn_1_1B424 = .text:0x0001B424; // type:function size:0x80 +fn_1_1B4A4 = .text:0x0001B4A4; // type:function size:0x28 +fn_1_1B4CC = .text:0x0001B4CC; // type:function size:0x20 +fn_1_1B4EC = .text:0x0001B4EC; // type:function size:0xD8 +fn_1_1B5C4 = .text:0x0001B5C4; // type:function size:0xC8 +fn_1_1B68C = .text:0x0001B68C; // type:function size:0xBC +fn_1_1B748 = .text:0x0001B748; // type:function size:0x40 +fn_1_1B788 = .text:0x0001B788; // type:function size:0x24 +fn_1_1B7AC = .text:0x0001B7AC; // type:function size:0x1C0 +fn_1_1B96C = .text:0x0001B96C; // type:function size:0x84 +fn_1_1B9F0 = .text:0x0001B9F0; // type:function size:0xD4 +fn_1_1BAC4 = .text:0x0001BAC4; // type:function size:0x58 +fn_1_1BB1C = .text:0x0001BB1C; // type:function size:0x15C +fn_1_1BC78 = .text:0x0001BC78; // type:function size:0x21C +fn_1_1BE94 = .text:0x0001BE94; // type:function size:0x204 +fn_1_1C098 = .text:0x0001C098; // type:function size:0x54 +fn_1_1C0EC = .text:0x0001C0EC; // type:function size:0x304 +fn_1_1C3F0 = .text:0x0001C3F0; // type:function size:0x304 +fn_1_1C6F4 = .text:0x0001C6F4; // type:function size:0x340 +fn_1_1CA34 = .text:0x0001CA34; // type:function size:0xC4 +fn_1_1CAF8 = .text:0x0001CAF8; // type:function size:0x3B0 +fn_1_1CEA8 = .text:0x0001CEA8; // type:function size:0x16C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0xC data:4byte +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0xC data:4byte +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x78 +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0xC data:4byte +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0xC data:4byte +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0xC data:4byte +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC data:4byte +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0xC data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC data:4byte +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC data:4byte +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:4byte +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0xB4 +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x6C +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x2C data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0xB0 +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0xC data:4byte +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x18 data:4byte +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0xC data:4byte +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 data:double +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x8 data:double +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x38 data:4byte +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x4F data:string +lbl_1_data_4F = .data:0x0000004F; // type:object size:0x50 data:string +lbl_1_data_9F = .data:0x0000009F; // type:object size:0x50 data:string +lbl_1_data_EF = .data:0x000000EF; // type:object size:0x4E data:string +lbl_1_data_13D = .data:0x0000013D; // type:object size:0x50 data:string +lbl_1_data_18D = .data:0x0000018D; // type:object size:0x4F data:string +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x22 data:string +lbl_1_data_1FE = .data:0x000001FE; // type:object size:0x1A data:string +lbl_1_data_218 = .data:0x00000218; // type:object size:0x1A data:string +lbl_1_data_232 = .data:0x00000232; // type:object size:0x62 +lbl_1_data_294 = .data:0x00000294; // type:object size:0x4 data:4byte +lbl_1_data_298 = .data:0x00000298; // type:object size:0x4 data:4byte +lbl_1_data_29C = .data:0x0000029C; // type:object size:0x18 +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x10 data:4byte +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x4 data:4byte +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x3 data:string +lbl_1_data_2CB = .data:0x000002CB; // type:object size:0x5 data:string +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x19 data:string +lbl_1_data_2E9 = .data:0x000002E9; // type:object size:0x12 data:string +lbl_1_data_2FB = .data:0x000002FB; // type:object size:0x29 +lbl_1_data_324 = .data:0x00000324; // type:object size:0x4 data:4byte +lbl_1_data_328 = .data:0x00000328; // type:object size:0x4 data:4byte +lbl_1_data_32C = .data:0x0000032C; // type:object size:0xC data:4byte +lbl_1_data_338 = .data:0x00000338; // type:object size:0x2B data:string +lbl_1_data_363 = .data:0x00000363; // type:object size:0x28 data:string +lbl_1_data_38B = .data:0x0000038B; // type:object size:0x4 data:string +lbl_1_data_38F = .data:0x0000038F; // type:object size:0x5 +jumptable_1_data_394 = .data:0x00000394; // type:object size:0x2C scope:local +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x3C data:string +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x16 data:string +lbl_1_data_412 = .data:0x00000412; // type:object size:0x1A data:string +lbl_1_data_42C = .data:0x0000042C; // type:object size:0x1A data:string +lbl_1_data_446 = .data:0x00000446; // type:object size:0x1A data:string +lbl_1_data_460 = .data:0x00000460; // type:object size:0x17 data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x16 data:string +lbl_1_data_48D = .data:0x0000048D; // type:object size:0x16 data:string +lbl_1_data_4A3 = .data:0x000004A3; // type:object size:0x19 data:string +lbl_1_data_4BC = .data:0x000004BC; // type:object size:0x16 data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x3E +lbl_1_data_510 = .data:0x00000510; // type:object size:0x3C data:string +lbl_1_data_54C = .data:0x0000054C; // type:object size:0x19 data:string +lbl_1_data_565 = .data:0x00000565; // type:object size:0x1A data:string +lbl_1_data_57F = .data:0x0000057F; // type:object size:0x3D +lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x20 data:4byte +lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x40 data:4byte +lbl_1_data_61C = .data:0x0000061C; // type:object size:0x70 +lbl_1_data_68C = .data:0x0000068C; // type:object size:0x90 data:4byte +lbl_1_data_71C = .data:0x0000071C; // type:object size:0x20 +lbl_1_data_73C = .data:0x0000073C; // type:object size:0x8 data:4byte +lbl_1_data_744 = .data:0x00000744; // type:object size:0x10 +lbl_1_data_754 = .data:0x00000754; // type:object size:0x20 +lbl_1_data_774 = .data:0x00000774; // type:object size:0x4 data:4byte +lbl_1_data_778 = .data:0x00000778; // type:object size:0x8 data:4byte +lbl_1_data_780 = .data:0x00000780; // type:object size:0x4C0 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x64 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x44 data:float +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:float +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:4byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x18 +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x8 +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x8 +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x8 +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x8 +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte +lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x8 +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x8 +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x10 +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x50 +lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x2C data:4byte +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 data:4byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x4 data:4byte +lbl_1_bss_1B4 = .bss:0x000001B4; // type:object size:0x4 data:4byte +lbl_1_bss_1B8 = .bss:0x000001B8; // type:object size:0x120 data:4byte +lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0xD8 data:4byte +lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x48 data:4byte +lbl_1_bss_3F8 = .bss:0x000003F8; // type:object size:0x48 data:4byte +lbl_1_bss_440 = .bss:0x00000440; // type:object size:0x4 data:4byte +lbl_1_bss_444 = .bss:0x00000444; // type:object size:0x4 data:4byte +lbl_1_bss_448 = .bss:0x00000448; // type:object size:0x14 data:4byte +lbl_1_bss_45C = .bss:0x0000045C; // type:object size:0x180 data:4byte +lbl_1_bss_5DC = .bss:0x000005DC; // type:object size:0x60 data:4byte +lbl_1_bss_63C = .bss:0x0000063C; // type:object size:0x70 data:4byte +lbl_1_bss_6AC = .bss:0x000006AC; // type:object size:0x1 data:byte diff --git a/config/GMPP01_00/rels/msetupDll/splits.txt b/config/GMPP01_00/rels/msetupDll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPP01_00/rels/msetupDll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPP01_00/rels/msetupDll/symbols.txt b/config/GMPP01_00/rels/msetupDll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPP01_00/rels/msetupDll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPP01_00/rels/mstory2Dll/splits.txt b/config/GMPP01_00/rels/mstory2Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/mstory2Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/mstory2Dll/symbols.txt b/config/GMPP01_00/rels/mstory2Dll/symbols.txt new file mode 100644 index 00000000..67aae470 --- /dev/null +++ b/config/GMPP01_00/rels/mstory2Dll/symbols.txt @@ -0,0 +1,709 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x2A0 +_prolog = .text:0x00000344; // type:function size:0x54 scope:global +_epilog = .text:0x00000398; // type:function size:0x4C scope:global +fn_1_3E4 = .text:0x000003E4; // type:function size:0x110 +fn_1_4F4 = .text:0x000004F4; // type:function size:0x1B8 +fn_1_6AC = .text:0x000006AC; // type:function size:0x1B8 +fn_1_864 = .text:0x00000864; // type:function size:0x28 +fn_1_88C = .text:0x0000088C; // type:function size:0x20 +fn_1_8AC = .text:0x000008AC; // type:function size:0xD8 +fn_1_984 = .text:0x00000984; // type:function size:0xC8 +fn_1_A4C = .text:0x00000A4C; // type:function size:0xBC +fn_1_B08 = .text:0x00000B08; // type:function size:0xBC +fn_1_BC4 = .text:0x00000BC4; // type:function size:0x4 +fn_1_BC8 = .text:0x00000BC8; // type:function size:0x20 +fn_1_BE8 = .text:0x00000BE8; // type:function size:0x28 +fn_1_C10 = .text:0x00000C10; // type:function size:0x20 +fn_1_C30 = .text:0x00000C30; // type:function size:0x24 +fn_1_C54 = .text:0x00000C54; // type:function size:0x4 +fn_1_C58 = .text:0x00000C58; // type:function size:0xA48 +fn_1_16A0 = .text:0x000016A0; // type:function size:0x1BC +fn_1_185C = .text:0x0000185C; // type:function size:0x1D8 +fn_1_1A34 = .text:0x00001A34; // type:function size:0x60 +fn_1_1A94 = .text:0x00001A94; // type:function size:0x68 +fn_1_1AFC = .text:0x00001AFC; // type:function size:0xAC +fn_1_1BA8 = .text:0x00001BA8; // type:function size:0xBC +fn_1_1C64 = .text:0x00001C64; // type:function size:0xB4 +fn_1_1D18 = .text:0x00001D18; // type:function size:0x34 +fn_1_1D4C = .text:0x00001D4C; // type:function size:0x40 +fn_1_1D8C = .text:0x00001D8C; // type:function size:0x70 +fn_1_1DFC = .text:0x00001DFC; // type:function size:0x188 +fn_1_1F84 = .text:0x00001F84; // type:function size:0x2E0 +fn_1_2264 = .text:0x00002264; // type:function size:0x90 +fn_1_22F4 = .text:0x000022F4; // type:function size:0x48 +fn_1_233C = .text:0x0000233C; // type:function size:0x54 +fn_1_2390 = .text:0x00002390; // type:function size:0x3C0 +fn_1_2750 = .text:0x00002750; // type:function size:0x10 +fn_1_2760 = .text:0x00002760; // type:function size:0x10 +fn_1_2770 = .text:0x00002770; // type:function size:0xB8 +fn_1_2828 = .text:0x00002828; // type:function size:0x120 +fn_1_2948 = .text:0x00002948; // type:function size:0x3B8 +fn_1_2D00 = .text:0x00002D00; // type:function size:0x7F4 +fn_1_34F4 = .text:0x000034F4; // type:function size:0x88 +fn_1_357C = .text:0x0000357C; // type:function size:0x94 +fn_1_3610 = .text:0x00003610; // type:function size:0x58 +fn_1_3668 = .text:0x00003668; // type:function size:0xEC +fn_1_3754 = .text:0x00003754; // type:function size:0xC4 +fn_1_3818 = .text:0x00003818; // type:function size:0x3C +fn_1_3854 = .text:0x00003854; // type:function size:0x44 +fn_1_3898 = .text:0x00003898; // type:function size:0x26C +fn_1_3B04 = .text:0x00003B04; // type:function size:0x26C +fn_1_3D70 = .text:0x00003D70; // type:function size:0x27C +fn_1_3FEC = .text:0x00003FEC; // type:function size:0x2B4 +fn_1_42A0 = .text:0x000042A0; // type:function size:0x46C +fn_1_470C = .text:0x0000470C; // type:function size:0x454 +fn_1_4B60 = .text:0x00004B60; // type:function size:0x48C +fn_1_4FEC = .text:0x00004FEC; // type:function size:0x658 +fn_1_5644 = .text:0x00005644; // type:function size:0x4C4 +fn_1_5B08 = .text:0x00005B08; // type:function size:0x4FC +fn_1_6004 = .text:0x00006004; // type:function size:0x6C8 +fn_1_66CC = .text:0x000066CC; // type:function size:0x38 +fn_1_6704 = .text:0x00006704; // type:function size:0xD4 +fn_1_67D8 = .text:0x000067D8; // type:function size:0x198 +fn_1_6970 = .text:0x00006970; // type:function size:0x34 +fn_1_69A4 = .text:0x000069A4; // type:function size:0x40 +fn_1_69E4 = .text:0x000069E4; // type:function size:0xAC +fn_1_6A90 = .text:0x00006A90; // type:function size:0x2E8 +fn_1_6D78 = .text:0x00006D78; // type:function size:0x44 +fn_1_6DBC = .text:0x00006DBC; // type:function size:0x1F4 +fn_1_6FB0 = .text:0x00006FB0; // type:function size:0xB4 +fn_1_7064 = .text:0x00007064; // type:function size:0x178 +fn_1_71DC = .text:0x000071DC; // type:function size:0x68 +fn_1_7244 = .text:0x00007244; // type:function size:0x140 +fn_1_7384 = .text:0x00007384; // type:function size:0xA2C +fn_1_7DB0 = .text:0x00007DB0; // type:function size:0x1A4 +fn_1_7F54 = .text:0x00007F54; // type:function size:0x118 +fn_1_806C = .text:0x0000806C; // type:function size:0x8C +fn_1_80F8 = .text:0x000080F8; // type:function size:0x488 +fn_1_8580 = .text:0x00008580; // type:function size:0x5C +fn_1_85DC = .text:0x000085DC; // type:function size:0x1F8 +fn_1_87D4 = .text:0x000087D4; // type:function size:0x2E8 +fn_1_8ABC = .text:0x00008ABC; // type:function size:0x578 +fn_1_9034 = .text:0x00009034; // type:function size:0x164 +fn_1_9198 = .text:0x00009198; // type:function size:0x124 +fn_1_92BC = .text:0x000092BC; // type:function size:0x4AC +fn_1_9768 = .text:0x00009768; // type:function size:0xB4 +fn_1_981C = .text:0x0000981C; // type:function size:0x138 +fn_1_9954 = .text:0x00009954; // type:function size:0xBC +fn_1_9A10 = .text:0x00009A10; // type:function size:0x1C4 +fn_1_9BD4 = .text:0x00009BD4; // type:function size:0xE4 +fn_1_9CB8 = .text:0x00009CB8; // type:function size:0x214 +fn_1_9ECC = .text:0x00009ECC; // type:function size:0x110 +fn_1_9FDC = .text:0x00009FDC; // type:function size:0x2AC +fn_1_A288 = .text:0x0000A288; // type:function size:0x220 +fn_1_A4A8 = .text:0x0000A4A8; // type:function size:0xE4 +fn_1_A58C = .text:0x0000A58C; // type:function size:0x2BC +fn_1_A848 = .text:0x0000A848; // type:function size:0x2C8 +fn_1_AB10 = .text:0x0000AB10; // type:function size:0x2A0 +fn_1_ADB0 = .text:0x0000ADB0; // type:function size:0xAC +fn_1_AE5C = .text:0x0000AE5C; // type:function size:0x364 +fn_1_B1C0 = .text:0x0000B1C0; // type:function size:0x8C +fn_1_B24C = .text:0x0000B24C; // type:function size:0x130 +fn_1_B37C = .text:0x0000B37C; // type:function size:0x68 +fn_1_B3E4 = .text:0x0000B3E4; // type:function size:0x134 +fn_1_B518 = .text:0x0000B518; // type:function size:0x8C +fn_1_B5A4 = .text:0x0000B5A4; // type:function size:0x3E0 +fn_1_B984 = .text:0x0000B984; // type:function size:0x5C +fn_1_B9E0 = .text:0x0000B9E0; // type:function size:0xB0 +fn_1_BA90 = .text:0x0000BA90; // type:function size:0x360 +fn_1_BDF0 = .text:0x0000BDF0; // type:function size:0x158 +fn_1_BF48 = .text:0x0000BF48; // type:function size:0x328 +fn_1_C270 = .text:0x0000C270; // type:function size:0x250 +fn_1_C4C0 = .text:0x0000C4C0; // type:function size:0xB4 +fn_1_C574 = .text:0x0000C574; // type:function size:0x228 +fn_1_C79C = .text:0x0000C79C; // type:function size:0xBC +fn_1_C858 = .text:0x0000C858; // type:function size:0x2B4 +fn_1_CB0C = .text:0x0000CB0C; // type:function size:0x1C0 +fn_1_CCCC = .text:0x0000CCCC; // type:function size:0xAC +fn_1_CD78 = .text:0x0000CD78; // type:function size:0x2B8 +fn_1_D030 = .text:0x0000D030; // type:function size:0x1F4 +fn_1_D224 = .text:0x0000D224; // type:function size:0xAC +fn_1_D2D0 = .text:0x0000D2D0; // type:function size:0xC4 +fn_1_D394 = .text:0x0000D394; // type:function size:0xE4 +fn_1_D478 = .text:0x0000D478; // type:function size:0x2EC +fn_1_D764 = .text:0x0000D764; // type:function size:0x134 +fn_1_D898 = .text:0x0000D898; // type:function size:0x2C0 +fn_1_DB58 = .text:0x0000DB58; // type:function size:0xFC +fn_1_DC54 = .text:0x0000DC54; // type:function size:0x170 +fn_1_DDC4 = .text:0x0000DDC4; // type:function size:0x3F4 +fn_1_E1B8 = .text:0x0000E1B8; // type:function size:0x8C +fn_1_E244 = .text:0x0000E244; // type:function size:0xF0 +fn_1_E334 = .text:0x0000E334; // type:function size:0x23C +fn_1_E570 = .text:0x0000E570; // type:function size:0xC8 +fn_1_E638 = .text:0x0000E638; // type:function size:0x2B4 +fn_1_E8EC = .text:0x0000E8EC; // type:function size:0x140 +fn_1_EA2C = .text:0x0000EA2C; // type:function size:0x134 +fn_1_EB60 = .text:0x0000EB60; // type:function size:0x8C +fn_1_EBEC = .text:0x0000EBEC; // type:function size:0x3E0 +fn_1_EFCC = .text:0x0000EFCC; // type:function size:0x5C +fn_1_F028 = .text:0x0000F028; // type:function size:0x128 +fn_1_F150 = .text:0x0000F150; // type:function size:0xDC +fn_1_F22C = .text:0x0000F22C; // type:function size:0xD0 +fn_1_F2FC = .text:0x0000F2FC; // type:function size:0xD4 +fn_1_F3D0 = .text:0x0000F3D0; // type:function size:0x468 +fn_1_F838 = .text:0x0000F838; // type:function size:0x4 +fn_1_F83C = .text:0x0000F83C; // type:function size:0x78 +fn_1_F8B4 = .text:0x0000F8B4; // type:function size:0x548 +fn_1_FDFC = .text:0x0000FDFC; // type:function size:0xB4 +fn_1_FEB0 = .text:0x0000FEB0; // type:function size:0x228 +fn_1_100D8 = .text:0x000100D8; // type:function size:0xBC +fn_1_10194 = .text:0x00010194; // type:function size:0x2B4 +fn_1_10448 = .text:0x00010448; // type:function size:0x1BC +fn_1_10604 = .text:0x00010604; // type:function size:0xAC +fn_1_106B0 = .text:0x000106B0; // type:function size:0x29C +fn_1_1094C = .text:0x0001094C; // type:function size:0x2B4 +fn_1_10C00 = .text:0x00010C00; // type:function size:0x1F4 +fn_1_10DF4 = .text:0x00010DF4; // type:function size:0xAC +fn_1_10EA0 = .text:0x00010EA0; // type:function size:0xE4 +fn_1_10F84 = .text:0x00010F84; // type:function size:0xC4 +fn_1_11048 = .text:0x00011048; // type:function size:0xE4 +fn_1_1112C = .text:0x0001112C; // type:function size:0x2EC +fn_1_11418 = .text:0x00011418; // type:function size:0x134 +fn_1_1154C = .text:0x0001154C; // type:function size:0x2EC +fn_1_11838 = .text:0x00011838; // type:function size:0xFC +fn_1_11934 = .text:0x00011934; // type:function size:0x164 +fn_1_11A98 = .text:0x00011A98; // type:function size:0x118 +fn_1_11BB0 = .text:0x00011BB0; // type:function size:0x420 +fn_1_11FD0 = .text:0x00011FD0; // type:function size:0x8C +fn_1_1205C = .text:0x0001205C; // type:function size:0x130 +fn_1_1218C = .text:0x0001218C; // type:function size:0x23C +fn_1_123C8 = .text:0x000123C8; // type:function size:0x1A4 +fn_1_1256C = .text:0x0001256C; // type:function size:0x124 +fn_1_12690 = .text:0x00012690; // type:function size:0x8C +fn_1_1271C = .text:0x0001271C; // type:function size:0x3AC +fn_1_12AC8 = .text:0x00012AC8; // type:function size:0x48 +fn_1_12B10 = .text:0x00012B10; // type:function size:0x2C4 +fn_1_12DD4 = .text:0x00012DD4; // type:function size:0x37C +fn_1_13150 = .text:0x00013150; // type:function size:0x70 +fn_1_131C0 = .text:0x000131C0; // type:function size:0xA4 +fn_1_13264 = .text:0x00013264; // type:function size:0x5C4 +fn_1_13828 = .text:0x00013828; // type:function size:0xA4 +fn_1_138CC = .text:0x000138CC; // type:function size:0x14C +fn_1_13A18 = .text:0x00013A18; // type:function size:0x1A0 +fn_1_13BB8 = .text:0x00013BB8; // type:function size:0xB4 +fn_1_13C6C = .text:0x00013C6C; // type:function size:0x348 +fn_1_13FB4 = .text:0x00013FB4; // type:function size:0xEC +fn_1_140A0 = .text:0x000140A0; // type:function size:0xCC +fn_1_1416C = .text:0x0001416C; // type:function size:0x330 +fn_1_1449C = .text:0x0001449C; // type:function size:0x3CC +fn_1_14868 = .text:0x00014868; // type:function size:0x234 +fn_1_14A9C = .text:0x00014A9C; // type:function size:0xAC +fn_1_14B48 = .text:0x00014B48; // type:function size:0xF8 +fn_1_14C40 = .text:0x00014C40; // type:function size:0x32C +fn_1_14F6C = .text:0x00014F6C; // type:function size:0x1C8 +fn_1_15134 = .text:0x00015134; // type:function size:0xAC +fn_1_151E0 = .text:0x000151E0; // type:function size:0xE4 +fn_1_152C4 = .text:0x000152C4; // type:function size:0xE4 +fn_1_153A8 = .text:0x000153A8; // type:function size:0x2C0 +fn_1_15668 = .text:0x00015668; // type:function size:0xE4 +fn_1_1574C = .text:0x0001574C; // type:function size:0x1F8 +fn_1_15944 = .text:0x00015944; // type:function size:0xAC +fn_1_159F0 = .text:0x000159F0; // type:function size:0x2EC +fn_1_15CDC = .text:0x00015CDC; // type:function size:0x8C +fn_1_15D68 = .text:0x00015D68; // type:function size:0xF0 +fn_1_15E58 = .text:0x00015E58; // type:function size:0x118 +fn_1_15F70 = .text:0x00015F70; // type:function size:0xF0 +fn_1_16060 = .text:0x00016060; // type:function size:0x118 +fn_1_16178 = .text:0x00016178; // type:function size:0x8C +fn_1_16204 = .text:0x00016204; // type:function size:0x3AC +fn_1_165B0 = .text:0x000165B0; // type:function size:0x5C +fn_1_1660C = .text:0x0001660C; // type:function size:0x110 +fn_1_1671C = .text:0x0001671C; // type:function size:0x194 +fn_1_168B0 = .text:0x000168B0; // type:function size:0xD4 +fn_1_16984 = .text:0x00016984; // type:function size:0x50 +fn_1_169D4 = .text:0x000169D4; // type:function size:0x4 +fn_1_169D8 = .text:0x000169D8; // type:function size:0xF4 +fn_1_16ACC = .text:0x00016ACC; // type:function size:0x4F4 +fn_1_16FC0 = .text:0x00016FC0; // type:function size:0xB4 +fn_1_17074 = .text:0x00017074; // type:function size:0x208 +fn_1_1727C = .text:0x0001727C; // type:function size:0xBC +fn_1_17338 = .text:0x00017338; // type:function size:0x294 +fn_1_175CC = .text:0x000175CC; // type:function size:0x180 +fn_1_1774C = .text:0x0001774C; // type:function size:0xAC +fn_1_177F8 = .text:0x000177F8; // type:function size:0x278 +fn_1_17A70 = .text:0x00017A70; // type:function size:0x128 +fn_1_17B98 = .text:0x00017B98; // type:function size:0xAC +fn_1_17C44 = .text:0x00017C44; // type:function size:0x220 +fn_1_17E64 = .text:0x00017E64; // type:function size:0xE4 +fn_1_17F48 = .text:0x00017F48; // type:function size:0x190 +fn_1_180D8 = .text:0x000180D8; // type:function size:0xAC +fn_1_18184 = .text:0x00018184; // type:function size:0x284 +fn_1_18408 = .text:0x00018408; // type:function size:0x8C +fn_1_18494 = .text:0x00018494; // type:function size:0x23C +fn_1_186D0 = .text:0x000186D0; // type:function size:0x220 +fn_1_188F0 = .text:0x000188F0; // type:function size:0x144 +fn_1_18A34 = .text:0x00018A34; // type:function size:0x8C +fn_1_18AC0 = .text:0x00018AC0; // type:function size:0x3BC +fn_1_18E7C = .text:0x00018E7C; // type:function size:0x48 +fn_1_18EC4 = .text:0x00018EC4; // type:function size:0x274 +fn_1_19138 = .text:0x00019138; // type:function size:0x1FC +fn_1_19334 = .text:0x00019334; // type:function size:0x6B0 +fn_1_199E4 = .text:0x000199E4; // type:function size:0x248 +fn_1_19C2C = .text:0x00019C2C; // type:function size:0x84 +fn_1_19CB0 = .text:0x00019CB0; // type:function size:0x2A8 +fn_1_19F58 = .text:0x00019F58; // type:function size:0xB4 +fn_1_1A00C = .text:0x0001A00C; // type:function size:0x198 +fn_1_1A1A4 = .text:0x0001A1A4; // type:function size:0x208 +fn_1_1A3AC = .text:0x0001A3AC; // type:function size:0x1D0 +fn_1_1A57C = .text:0x0001A57C; // type:function size:0x40 +fn_1_1A5BC = .text:0x0001A5BC; // type:function size:0x254 +fn_1_1A810 = .text:0x0001A810; // type:function size:0x204 +fn_1_1AA14 = .text:0x0001AA14; // type:function size:0xE4 +fn_1_1AAF8 = .text:0x0001AAF8; // type:function size:0x288 +fn_1_1AD80 = .text:0x0001AD80; // type:function size:0xE4 +fn_1_1AE64 = .text:0x0001AE64; // type:function size:0x1B4 +fn_1_1B018 = .text:0x0001B018; // type:function size:0x110 +fn_1_1B128 = .text:0x0001B128; // type:function size:0x234 +fn_1_1B35C = .text:0x0001B35C; // type:function size:0x8C +fn_1_1B3E8 = .text:0x0001B3E8; // type:function size:0x8C +fn_1_1B474 = .text:0x0001B474; // type:function size:0x130 +fn_1_1B5A4 = .text:0x0001B5A4; // type:function size:0xEC +fn_1_1B690 = .text:0x0001B690; // type:function size:0x224 +fn_1_1B8B4 = .text:0x0001B8B4; // type:function size:0x9C +fn_1_1B950 = .text:0x0001B950; // type:function size:0x50 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC data:4byte +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC data:4byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 data:byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 data:byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC data:4byte +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 data:byte +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC data:4byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC data:4byte +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 data:byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 data:byte +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC data:4byte +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte +lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 data:string +lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0xF +lbl_1_data_144 = .data:0x00000144; // type:object size:0x18 +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 data:string +jumptable_1_data_19C = .data:0x0000019C; // type:object size:0x54 scope:local +jumptable_1_data_1F0 = .data:0x000001F0; // type:object size:0x54 scope:local +lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A data:string +lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0xE data:string +lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 data:string +lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 data:string +lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 data:string +lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 data:string +lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 +lbl_1_data_308 = .data:0x00000308; // type:object size:0x20 +lbl_1_data_328 = .data:0x00000328; // type:object size:0x60 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 data:string +lbl_1_data_399 = .data:0x00000399; // type:object size:0x33 +lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x10 +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x4 data:4byte +lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x8 data:4byte +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 data:string +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 data:string +lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 data:string +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 data:string +lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA data:string +lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C data:string +lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D data:string +lbl_1_data_50C = .data:0x0000050C; // type:object size:0x14 +lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 data:string +lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 data:string +lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 data:string +lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 data:string +lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 data:string +lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 data:string +lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 data:string +lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 data:string +lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA data:string +lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C data:string +lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D data:string +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 data:string +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C data:string +lbl_1_data_668 = .data:0x00000668; // type:object size:0x30 +lbl_1_data_698 = .data:0x00000698; // type:object size:0x3C +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 data:string +lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 data:string +lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 data:string +lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 data:string +lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 data:string +lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 data:string +lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 data:string +lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 data:string +lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 data:string +lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C data:string +lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D data:string +lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 data:string +lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C +lbl_1_data_81C = .data:0x0000081C; // type:object size:0x34 +lbl_1_data_850 = .data:0x00000850; // type:object size:0x3C0 +lbl_1_data_C10 = .data:0x00000C10; // type:object size:0x10 +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0x4 data:4byte +lbl_1_data_C24 = .data:0x00000C24; // type:object size:0x8 data:4byte +lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 data:string +lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 data:string +lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 data:string +lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 data:string +lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 data:string +lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 data:string +lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 data:string +lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 data:string +lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 data:string +lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 data:string +lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 data:string +lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA data:string +lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C data:string +lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D data:string +lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C data:string +lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 data:string +lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 data:string +lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0xB +lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 data:string +lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 data:string +lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 data:string +lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 data:string +lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 data:string +lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 data:string +lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 data:string +lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 data:string +lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 data:string +lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 data:string +lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA data:string +lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C data:string +lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D data:string +lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 data:string +lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x20 +lbl_1_data_EF8 = .data:0x00000EF8; // type:object size:0x10 +lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x4 data:4byte +lbl_1_data_F0C = .data:0x00000F0C; // type:object size:0x8 data:4byte +lbl_1_data_F14 = .data:0x00000F14; // type:object size:0x4 data:4byte +lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 data:string +lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 data:string +lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 data:string +lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 data:string +lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 data:string +lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 data:string +lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 data:string +lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 data:string +lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 data:string +lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 data:string +lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 data:string +lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA data:string +lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C data:string +lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D data:string +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 data:string +lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 data:string +lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 data:string +lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 data:string +lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 data:string +lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 data:string +lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 data:string +lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 data:string +lbl_1_data_10E4 = .data:0x000010E4; // type:object size:0x20 +lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x24 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x54 data:float +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x10 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x40 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x28 data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x28 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x28 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x28 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x28 data:4byte +lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x104 data:float +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x4 data:4byte +lbl_1_bss_29C = .bss:0x0000029C; // type:object size:0xA0 +lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x28 data:4byte +lbl_1_bss_364 = .bss:0x00000364; // type:object size:0x28 data:4byte +lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x28 data:4byte +lbl_1_bss_3B4 = .bss:0x000003B4; // type:object size:0x28 data:4byte +lbl_1_bss_3DC = .bss:0x000003DC; // type:object size:0x104 data:4byte +lbl_1_bss_4E0 = .bss:0x000004E0; // type:object size:0x4 data:4byte +lbl_1_bss_4E4 = .bss:0x000004E4; // type:object size:0x4 data:4byte +lbl_1_bss_4E8 = .bss:0x000004E8; // type:object size:0x60 data:4byte +lbl_1_bss_548 = .bss:0x00000548; // type:object size:0xA0 +lbl_1_bss_5E8 = .bss:0x000005E8; // type:object size:0x28 data:4byte +lbl_1_bss_610 = .bss:0x00000610; // type:object size:0x28 data:4byte +lbl_1_bss_638 = .bss:0x00000638; // type:object size:0x28 data:4byte +lbl_1_bss_660 = .bss:0x00000660; // type:object size:0x28 data:4byte +lbl_1_bss_688 = .bss:0x00000688; // type:object size:0x108 data:float +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x4 data:4byte +lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x4 data:4byte +lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x28 data:4byte +lbl_1_bss_7C0 = .bss:0x000007C0; // type:object size:0x28 data:4byte +lbl_1_bss_7E8 = .bss:0x000007E8; // type:object size:0x28 data:4byte +lbl_1_bss_810 = .bss:0x00000810; // type:object size:0x28 data:4byte +lbl_1_bss_838 = .bss:0x00000838; // type:object size:0x28 data:4byte +lbl_1_bss_860 = .bss:0x00000860; // type:object size:0x108 data:4byte +lbl_1_bss_968 = .bss:0x00000968; // type:object size:0x4 data:4byte +lbl_1_bss_96C = .bss:0x0000096C; // type:object size:0x28 data:4byte +lbl_1_bss_994 = .bss:0x00000994; // type:object size:0x28 data:4byte +lbl_1_bss_9BC = .bss:0x000009BC; // type:object size:0x28 data:4byte +lbl_1_bss_9E4 = .bss:0x000009E4; // type:object size:0x28 data:4byte +lbl_1_bss_A0C = .bss:0x00000A0C; // type:object size:0x28 data:4byte +lbl_1_bss_A34 = .bss:0x00000A34; // type:object size:0x104 data:4byte +lbl_1_bss_B38 = .bss:0x00000B38; // type:object size:0x4 data:4byte +lbl_1_bss_B3C = .bss:0x00000B3C; // type:object size:0x4 data:4byte +lbl_1_bss_B40 = .bss:0x00000B40; // type:object size:0x4 data:4byte +lbl_1_bss_B44 = .bss:0x00000B44; // type:object size:0x28 data:4byte +lbl_1_bss_B6C = .bss:0x00000B6C; // type:object size:0x28 data:4byte +lbl_1_bss_B94 = .bss:0x00000B94; // type:object size:0x28 data:4byte +lbl_1_bss_BBC = .bss:0x00000BBC; // type:object size:0x28 data:4byte +lbl_1_bss_BE4 = .bss:0x00000BE4; // type:object size:0x28 data:4byte +lbl_1_bss_C0C = .bss:0x00000C0C; // type:object size:0x104 data:float +lbl_1_bss_D10 = .bss:0x00000D10; // type:object size:0x4 data:4byte +lbl_1_bss_D14 = .bss:0x00000D14; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/mstory3Dll/splits.txt b/config/GMPP01_00/rels/mstory3Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/mstory3Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/mstory3Dll/symbols.txt b/config/GMPP01_00/rels/mstory3Dll/symbols.txt new file mode 100644 index 00000000..9835d8ae --- /dev/null +++ b/config/GMPP01_00/rels/mstory3Dll/symbols.txt @@ -0,0 +1,549 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x2C8 +_prolog = .text:0x0000036C; // type:function size:0x54 scope:global +_epilog = .text:0x000003C0; // type:function size:0x4C scope:global +fn_1_40C = .text:0x0000040C; // type:function size:0xE4 +fn_1_4F0 = .text:0x000004F0; // type:function size:0xE4 +fn_1_5D4 = .text:0x000005D4; // type:function size:0x28 +fn_1_5FC = .text:0x000005FC; // type:function size:0x20 +fn_1_61C = .text:0x0000061C; // type:function size:0xD8 +fn_1_6F4 = .text:0x000006F4; // type:function size:0xC8 +fn_1_7BC = .text:0x000007BC; // type:function size:0xBC +fn_1_878 = .text:0x00000878; // type:function size:0xBC +fn_1_934 = .text:0x00000934; // type:function size:0x4 +fn_1_938 = .text:0x00000938; // type:function size:0x20 +fn_1_958 = .text:0x00000958; // type:function size:0x28 +fn_1_980 = .text:0x00000980; // type:function size:0x20 +fn_1_9A0 = .text:0x000009A0; // type:function size:0x24 +fn_1_9C4 = .text:0x000009C4; // type:function size:0x20 +fn_1_9E4 = .text:0x000009E4; // type:function size:0xA48 +fn_1_142C = .text:0x0000142C; // type:function size:0x1F8 +fn_1_1624 = .text:0x00001624; // type:function size:0x210 +fn_1_1834 = .text:0x00001834; // type:function size:0x1F0 +fn_1_1A24 = .text:0x00001A24; // type:function size:0x2C +fn_1_1A50 = .text:0x00001A50; // type:function size:0x60 +fn_1_1AB0 = .text:0x00001AB0; // type:function size:0x68 +fn_1_1B18 = .text:0x00001B18; // type:function size:0xAC +fn_1_1BC4 = .text:0x00001BC4; // type:function size:0xC4 +fn_1_1C88 = .text:0x00001C88; // type:function size:0xBC +fn_1_1D44 = .text:0x00001D44; // type:function size:0x34 +fn_1_1D78 = .text:0x00001D78; // type:function size:0x40 +fn_1_1DB8 = .text:0x00001DB8; // type:function size:0x70 +fn_1_1E28 = .text:0x00001E28; // type:function size:0x178 +fn_1_1FA0 = .text:0x00001FA0; // type:function size:0x2E0 +fn_1_2280 = .text:0x00002280; // type:function size:0x90 +fn_1_2310 = .text:0x00002310; // type:function size:0xC8 +fn_1_23D8 = .text:0x000023D8; // type:function size:0x48 +fn_1_2420 = .text:0x00002420; // type:function size:0x54 +fn_1_2474 = .text:0x00002474; // type:function size:0x3C0 +fn_1_2834 = .text:0x00002834; // type:function size:0x10 +fn_1_2844 = .text:0x00002844; // type:function size:0x10 +fn_1_2854 = .text:0x00002854; // type:function size:0xB8 +fn_1_290C = .text:0x0000290C; // type:function size:0x120 +fn_1_2A2C = .text:0x00002A2C; // type:function size:0x3A8 +fn_1_2DD4 = .text:0x00002DD4; // type:function size:0x7F4 +fn_1_35C8 = .text:0x000035C8; // type:function size:0x88 +fn_1_3650 = .text:0x00003650; // type:function size:0x94 +fn_1_36E4 = .text:0x000036E4; // type:function size:0x58 +fn_1_373C = .text:0x0000373C; // type:function size:0x8C +fn_1_37C8 = .text:0x000037C8; // type:function size:0xEC +fn_1_38B4 = .text:0x000038B4; // type:function size:0xC4 +fn_1_3978 = .text:0x00003978; // type:function size:0x3C +fn_1_39B4 = .text:0x000039B4; // type:function size:0x44 +fn_1_39F8 = .text:0x000039F8; // type:function size:0x26C +fn_1_3C64 = .text:0x00003C64; // type:function size:0x26C +fn_1_3ED0 = .text:0x00003ED0; // type:function size:0x27C +fn_1_414C = .text:0x0000414C; // type:function size:0x2B4 +fn_1_4400 = .text:0x00004400; // type:function size:0x46C +fn_1_486C = .text:0x0000486C; // type:function size:0x454 +fn_1_4CC0 = .text:0x00004CC0; // type:function size:0x48C +fn_1_514C = .text:0x0000514C; // type:function size:0x658 +fn_1_57A4 = .text:0x000057A4; // type:function size:0x4C4 +fn_1_5C68 = .text:0x00005C68; // type:function size:0x4FC +fn_1_6164 = .text:0x00006164; // type:function size:0x6C8 +fn_1_682C = .text:0x0000682C; // type:function size:0xC4 +fn_1_68F0 = .text:0x000068F0; // type:function size:0x188 +fn_1_6A78 = .text:0x00006A78; // type:function size:0x34 +fn_1_6AAC = .text:0x00006AAC; // type:function size:0x40 +fn_1_6AEC = .text:0x00006AEC; // type:function size:0xAC +fn_1_6B98 = .text:0x00006B98; // type:function size:0x1E8 +fn_1_6D80 = .text:0x00006D80; // type:function size:0xB4 +fn_1_6E34 = .text:0x00006E34; // type:function size:0x1D0 +fn_1_7004 = .text:0x00007004; // type:function size:0x394 +fn_1_7398 = .text:0x00007398; // type:function size:0x640 +fn_1_79D8 = .text:0x000079D8; // type:function size:0x4B0 +fn_1_7E88 = .text:0x00007E88; // type:function size:0x2C4 +fn_1_814C = .text:0x0000814C; // type:function size:0x118 +fn_1_8264 = .text:0x00008264; // type:function size:0x7C +fn_1_82E0 = .text:0x000082E0; // type:function size:0x8C +fn_1_836C = .text:0x0000836C; // type:function size:0xF0 +fn_1_845C = .text:0x0000845C; // type:function size:0x2FC +fn_1_8758 = .text:0x00008758; // type:function size:0x100 +fn_1_8858 = .text:0x00008858; // type:function size:0xF0 +fn_1_8948 = .text:0x00008948; // type:function size:0xF0 +fn_1_8A38 = .text:0x00008A38; // type:function size:0xF0 +fn_1_8B28 = .text:0x00008B28; // type:function size:0xF0 +fn_1_8C18 = .text:0x00008C18; // type:function size:0x7C +fn_1_8C94 = .text:0x00008C94; // type:function size:0x4AC +fn_1_9140 = .text:0x00009140; // type:function size:0x88 +fn_1_91C8 = .text:0x000091C8; // type:function size:0x58 +fn_1_9220 = .text:0x00009220; // type:function size:0x1B0 +fn_1_93D0 = .text:0x000093D0; // type:function size:0xB8 +fn_1_9488 = .text:0x00009488; // type:function size:0x228 +fn_1_96B0 = .text:0x000096B0; // type:function size:0xB8 +fn_1_9768 = .text:0x00009768; // type:function size:0x228 +fn_1_9990 = .text:0x00009990; // type:function size:0x78 +fn_1_9A08 = .text:0x00009A08; // type:function size:0x5C +fn_1_9A64 = .text:0x00009A64; // type:function size:0x8B0 +fn_1_A314 = .text:0x0000A314; // type:function size:0x1DC +fn_1_A4F0 = .text:0x0000A4F0; // type:function size:0x6BC +fn_1_ABAC = .text:0x0000ABAC; // type:function size:0xAC4 +fn_1_B670 = .text:0x0000B670; // type:function size:0x118 +fn_1_B788 = .text:0x0000B788; // type:function size:0x6D4 +fn_1_BE5C = .text:0x0000BE5C; // type:function size:0x104 +fn_1_BF60 = .text:0x0000BF60; // type:function size:0x100 +fn_1_C060 = .text:0x0000C060; // type:function size:0xE0C +fn_1_CE6C = .text:0x0000CE6C; // type:function size:0x620 +fn_1_D48C = .text:0x0000D48C; // type:function size:0xAC +fn_1_D538 = .text:0x0000D538; // type:function size:0x1E0 +fn_1_D718 = .text:0x0000D718; // type:function size:0xC0 +fn_1_D7D8 = .text:0x0000D7D8; // type:function size:0x390 +fn_1_DB68 = .text:0x0000DB68; // type:function size:0x5F8 +fn_1_E160 = .text:0x0000E160; // type:function size:0x1BD0 +fn_1_FD30 = .text:0x0000FD30; // type:function size:0x150 +fn_1_FE80 = .text:0x0000FE80; // type:function size:0xFC +fn_1_FF7C = .text:0x0000FF7C; // type:function size:0x3F0 +fn_1_1036C = .text:0x0001036C; // type:function size:0xA08 +fn_1_10D74 = .text:0x00010D74; // type:function size:0xA20 +fn_1_11794 = .text:0x00011794; // type:function size:0xA0 +fn_1_11834 = .text:0x00011834; // type:function size:0xBA4 +fn_1_123D8 = .text:0x000123D8; // type:function size:0x44 +fn_1_1241C = .text:0x0001241C; // type:function size:0x4 +fn_1_12420 = .text:0x00012420; // type:function size:0x678 +fn_1_12A98 = .text:0x00012A98; // type:function size:0x170 +fn_1_12C08 = .text:0x00012C08; // type:function size:0x1A4 +fn_1_12DAC = .text:0x00012DAC; // type:function size:0x2FC +fn_1_130A8 = .text:0x000130A8; // type:function size:0xD4 +fn_1_1317C = .text:0x0001317C; // type:function size:0x130 +fn_1_132AC = .text:0x000132AC; // type:function size:0x65C +fn_1_13908 = .text:0x00013908; // type:function size:0x130 +fn_1_13A38 = .text:0x00013A38; // type:function size:0x4 +fn_1_13A3C = .text:0x00013A3C; // type:function size:0x23C +fn_1_13C78 = .text:0x00013C78; // type:function size:0xC0 +fn_1_13D38 = .text:0x00013D38; // type:function size:0x60 +fn_1_13D98 = .text:0x00013D98; // type:function size:0x308 +fn_1_140A0 = .text:0x000140A0; // type:function size:0x38C +fn_1_1442C = .text:0x0001442C; // type:function size:0x140 +fn_1_1456C = .text:0x0001456C; // type:function size:0x118 +fn_1_14684 = .text:0x00014684; // type:function size:0x7C +fn_1_14700 = .text:0x00014700; // type:function size:0x48 +fn_1_14748 = .text:0x00014748; // type:function size:0x724 +fn_1_14E6C = .text:0x00014E6C; // type:function size:0x114 +fn_1_14F80 = .text:0x00014F80; // type:function size:0x54 +fn_1_14FD4 = .text:0x00014FD4; // type:function size:0x31C +fn_1_152F0 = .text:0x000152F0; // type:function size:0x160 +fn_1_15450 = .text:0x00015450; // type:function size:0x3A0 +fn_1_157F0 = .text:0x000157F0; // type:function size:0x1B4 +fn_1_159A4 = .text:0x000159A4; // type:function size:0x268 +fn_1_15C0C = .text:0x00015C0C; // type:function size:0xFC +fn_1_15D08 = .text:0x00015D08; // type:function size:0xC0 +fn_1_15DC8 = .text:0x00015DC8; // type:function size:0x3F0 +fn_1_161B8 = .text:0x000161B8; // type:function size:0x3BC +fn_1_16574 = .text:0x00016574; // type:function size:0x54 +fn_1_165C8 = .text:0x000165C8; // type:function size:0x35C +fn_1_16924 = .text:0x00016924; // type:function size:0x1B0 +fn_1_16AD4 = .text:0x00016AD4; // type:function size:0x400 +fn_1_16ED4 = .text:0x00016ED4; // type:function size:0x258 +fn_1_1712C = .text:0x0001712C; // type:function size:0x160 +fn_1_1728C = .text:0x0001728C; // type:function size:0x1F8 +fn_1_17484 = .text:0x00017484; // type:function size:0xEC +fn_1_17570 = .text:0x00017570; // type:function size:0x850 +fn_1_17DC0 = .text:0x00017DC0; // type:function size:0x2C0 +fn_1_18080 = .text:0x00018080; // type:function size:0x9C +fn_1_1811C = .text:0x0001811C; // type:function size:0x218 +fn_1_18334 = .text:0x00018334; // type:function size:0x1B4 +fn_1_184E8 = .text:0x000184E8; // type:function size:0x70 +fn_1_18558 = .text:0x00018558; // type:function size:0x110 +fn_1_18668 = .text:0x00018668; // type:function size:0x694 +fn_1_18CFC = .text:0x00018CFC; // type:function size:0x29C +fn_1_18F98 = .text:0x00018F98; // type:function size:0x1AC +fn_1_19144 = .text:0x00019144; // type:function size:0xD0 +fn_1_19214 = .text:0x00019214; // type:function size:0x28C +fn_1_194A0 = .text:0x000194A0; // type:function size:0xF0 +fn_1_19590 = .text:0x00019590; // type:function size:0x224 +fn_1_197B4 = .text:0x000197B4; // type:function size:0x854 +fn_1_1A008 = .text:0x0001A008; // type:function size:0x1EF4 +fn_1_1BEFC = .text:0x0001BEFC; // type:function size:0x3F8 +fn_1_1C2F4 = .text:0x0001C2F4; // type:function size:0x16C +fn_1_1C460 = .text:0x0001C460; // type:function size:0xD4 +fn_1_1C534 = .text:0x0001C534; // type:function size:0x3E0 +fn_1_1C914 = .text:0x0001C914; // type:function size:0x184 +fn_1_1CA98 = .text:0x0001CA98; // type:function size:0xE4 +fn_1_1CB7C = .text:0x0001CB7C; // type:function size:0xE0 +fn_1_1CC5C = .text:0x0001CC5C; // type:function size:0x104 +fn_1_1CD60 = .text:0x0001CD60; // type:function size:0x90 +fn_1_1CDF0 = .text:0x0001CDF0; // type:function size:0x334 +fn_1_1D124 = .text:0x0001D124; // type:function size:0x518 +fn_1_1D63C = .text:0x0001D63C; // type:function size:0x140 +fn_1_1D77C = .text:0x0001D77C; // type:function size:0x150 +fn_1_1D8CC = .text:0x0001D8CC; // type:function size:0x98 +fn_1_1D964 = .text:0x0001D964; // type:function size:0x100 +fn_1_1DA64 = .text:0x0001DA64; // type:function size:0x48 +fn_1_1DAAC = .text:0x0001DAAC; // type:function size:0x3A0 +fn_1_1DE4C = .text:0x0001DE4C; // type:function size:0x8C +fn_1_1DED8 = .text:0x0001DED8; // type:function size:0x21C +fn_1_1E0F4 = .text:0x0001E0F4; // type:function size:0x14 +fn_1_1E108 = .text:0x0001E108; // type:function size:0x10 +fn_1_1E118 = .text:0x0001E118; // type:function size:0x14 +fn_1_1E12C = .text:0x0001E12C; // type:function size:0x10 +fn_1_1E13C = .text:0x0001E13C; // type:function size:0x41C +fn_1_1E558 = .text:0x0001E558; // type:function size:0x2C8 +fn_1_1E820 = .text:0x0001E820; // type:function size:0x8E0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC data:4byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC data:4byte +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 data:4byte +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 data:4byte +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 data:4byte +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x2C data:4byte +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 data:byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 data:4byte +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0xF +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 data:string +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A data:string +lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A data:string +lbl_1_data_11B = .data:0x0000011B; // type:object size:0x15 +lbl_1_data_130 = .data:0x00000130; // type:object size:0x30 data:float +lbl_1_data_160 = .data:0x00000160; // type:object size:0x50 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x50 +lbl_1_data_200 = .data:0x00000200; // type:object size:0x50 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 data:string +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 data:string +lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 data:string +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 data:string +lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 data:string +lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D data:string +lbl_1_data_346 = .data:0x00000346; // type:object size:0x1E +lbl_1_data_364 = .data:0x00000364; // type:object size:0x8 data:4byte +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC +lbl_1_data_378 = .data:0x00000378; // type:object size:0xF data:string +lbl_1_data_387 = .data:0x00000387; // type:object size:0x11 +jumptable_1_data_398 = .data:0x00000398; // type:object size:0x30 scope:local +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 data:string +lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 data:string +lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 data:string +lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 data:string +lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 data:string +lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 data:string +lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 data:string +lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12 +lbl_1_data_504 = .data:0x00000504; // type:object size:0x288 +lbl_1_data_78C = .data:0x0000078C; // type:object size:0x54 +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 data:string +lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 data:string +lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 data:string +lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 data:string +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 data:string +lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 data:string +lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 data:string +lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF data:string +lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C data:string +lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D data:string +lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 data:string +lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 data:string +lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 data:string +lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 data:string +lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 data:string +lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A data:string +lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A data:string +lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x1B +lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 data:string +lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x54 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:float +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:float +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:float +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:float +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:float +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x1340 +lbl_1_bss_1408 = .bss:0x00001408; // type:object size:0x18 +lbl_1_bss_1420 = .bss:0x00001420; // type:object size:0x4 data:4byte +lbl_1_bss_1424 = .bss:0x00001424; // type:object size:0x4 data:float +lbl_1_bss_1428 = .bss:0x00001428; // type:object size:0x10 data:4byte +lbl_1_bss_1438 = .bss:0x00001438; // type:object size:0x10 +lbl_1_bss_1448 = .bss:0x00001448; // type:object size:0x10 data:4byte +lbl_1_bss_1458 = .bss:0x00001458; // type:object size:0x10 data:4byte +lbl_1_bss_1468 = .bss:0x00001468; // type:object size:0x28 data:4byte +lbl_1_bss_1490 = .bss:0x00001490; // type:object size:0xA0 data:4byte +lbl_1_bss_1530 = .bss:0x00001530; // type:object size:0x28 data:4byte +lbl_1_bss_1558 = .bss:0x00001558; // type:object size:0x28 data:4byte +lbl_1_bss_1580 = .bss:0x00001580; // type:object size:0x350 data:4byte +lbl_1_bss_18D0 = .bss:0x000018D0; // type:object size:0x4 data:4byte +lbl_1_bss_18D4 = .bss:0x000018D4; // type:object size:0x4 data:4byte +lbl_1_bss_18D8 = .bss:0x000018D8; // type:object size:0xC data:4byte +lbl_1_bss_18E4 = .bss:0x000018E4; // type:object size:0x8 data:4byte +lbl_1_bss_18EC = .bss:0x000018EC; // type:object size:0x8 data:4byte +lbl_1_bss_18F4 = .bss:0x000018F4; // type:object size:0xA0 +lbl_1_bss_1994 = .bss:0x00001994; // type:object size:0x28 data:4byte +lbl_1_bss_19BC = .bss:0x000019BC; // type:object size:0x28 data:4byte +lbl_1_bss_19E4 = .bss:0x000019E4; // type:object size:0x28 data:4byte +lbl_1_bss_1A0C = .bss:0x00001A0C; // type:object size:0x2DC data:float +lbl_1_bss_1CE8 = .bss:0x00001CE8; // type:object size:0x2 data:2byte +lbl_1_bss_1CEC = .bss:0x00001CEC; // type:object size:0x4 data:4byte +lbl_1_bss_1CF0 = .bss:0x00001CF0; // type:object size:0x4 data:4byte +lbl_1_bss_1CF4 = .bss:0x00001CF4; // type:object size:0x4 data:4byte +lbl_1_bss_1CF8 = .bss:0x00001CF8; // type:object size:0x58 data:2byte diff --git a/config/GMPP01_00/rels/mstory4Dll/splits.txt b/config/GMPP01_00/rels/mstory4Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/mstory4Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/mstory4Dll/symbols.txt b/config/GMPP01_00/rels/mstory4Dll/symbols.txt new file mode 100644 index 00000000..e98f616c --- /dev/null +++ b/config/GMPP01_00/rels/mstory4Dll/symbols.txt @@ -0,0 +1,67 @@ +fn_1_0 = .text:0x00000000; // type:function size:0xEC +fn_1_EC = .text:0x000000EC; // type:function size:0xE68 +_prolog = .text:0x00000F54; // type:function size:0x54 scope:global +_epilog = .text:0x00000FA8; // type:function size:0x4C scope:global +fn_1_FF4 = .text:0x00000FF4; // type:function size:0xB8 +fn_1_10AC = .text:0x000010AC; // type:function size:0x68C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x1 data:byte +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x1C data:4byte +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x1 data:byte +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x3C0 +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0xF data:string +lbl_1_data_3CF = .data:0x000003CF; // type:object size:0x14 data:string +lbl_1_data_3E3 = .data:0x000003E3; // type:object size:0x15 data:string +lbl_1_data_3F8 = .data:0x000003F8; // type:object size:0x11 data:string +lbl_1_data_409 = .data:0x00000409; // type:object size:0x12 data:string +lbl_1_data_41B = .data:0x0000041B; // type:object size:0x15 +lbl_1_data_430 = .data:0x00000430; // type:object size:0x18 +lbl_1_data_448 = .data:0x00000448; // type:object size:0x20 data:string +lbl_1_data_468 = .data:0x00000468; // type:object size:0x24 data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x23 data:string +lbl_1_data_4AF = .data:0x000004AF; // type:object size:0x27 data:string +lbl_1_data_4D6 = .data:0x000004D6; // type:object size:0x26 data:string +lbl_1_data_4FC = .data:0x000004FC; // type:object size:0x29 data:string +lbl_1_data_525 = .data:0x00000525; // type:object size:0x1B +lbl_1_data_540 = .data:0x00000540; // type:object size:0x1C +lbl_1_data_55C = .data:0x0000055C; // type:object size:0x8 data:string +lbl_1_data_564 = .data:0x00000564; // type:object size:0x7 data:string +lbl_1_data_56B = .data:0x0000056B; // type:object size:0x6 data:string +lbl_1_data_571 = .data:0x00000571; // type:object size:0xB +lbl_1_data_57C = .data:0x0000057C; // type:object size:0x10 +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x1C data:4byte +lbl_1_data_5A8 = .data:0x000005A8; // type:object size:0x1C +lbl_1_data_5C4 = .data:0x000005C4; // type:object size:0x7 data:string +lbl_1_data_5CB = .data:0x000005CB; // type:object size:0x33 data:string +lbl_1_data_5FE = .data:0x000005FE; // type:object size:0x3 data:string +lbl_1_data_601 = .data:0x00000601; // type:object size:0x9 data:string +lbl_1_data_60A = .data:0x0000060A; // type:object size:0x12 +jumptable_1_data_61C = .data:0x0000061C; // type:object size:0x1C scope:local +lbl_1_data_638 = .data:0x00000638; // type:object size:0x6 data:string +lbl_1_data_63E = .data:0x0000063E; // type:object size:0x6 data:string +lbl_1_data_644 = .data:0x00000644; // type:object size:0x6 data:string +lbl_1_data_64A = .data:0x0000064A; // type:object size:0x6 data:string +lbl_1_data_650 = .data:0x00000650; // type:object size:0x6 data:string +lbl_1_data_656 = .data:0x00000656; // type:object size:0x7 data:string +lbl_1_data_65D = .data:0x0000065D; // type:object size:0x6 data:string +lbl_1_data_663 = .data:0x00000663; // type:object size:0x9 +lbl_1_data_66C = .data:0x0000066C; // type:object size:0x20 +lbl_1_data_68C = .data:0x0000068C; // type:object size:0x16 data:string +lbl_1_data_6A2 = .data:0x000006A2; // type:object size:0x11 data:string +lbl_1_data_6B3 = .data:0x000006B3; // type:object size:0x10 data:string +lbl_1_data_6C3 = .data:0x000006C3; // type:object size:0xD data:string +lbl_1_data_6D0 = .data:0x000006D0; // type:object size:0x10 data:string +lbl_1_data_6E0 = .data:0x000006E0; // type:object size:0xD data:string +lbl_1_data_6ED = .data:0x000006ED; // type:object size:0x1B data:string +lbl_1_data_708 = .data:0x00000708; // type:object size:0x1A data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/mstoryDll/splits.txt b/config/GMPP01_00/rels/mstoryDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/mstoryDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/mstoryDll/symbols.txt b/config/GMPP01_00/rels/mstoryDll/symbols.txt new file mode 100644 index 00000000..e9076690 --- /dev/null +++ b/config/GMPP01_00/rels/mstoryDll/symbols.txt @@ -0,0 +1,498 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x344 +_prolog = .text:0x000003E8; // type:function size:0x54 scope:global +_epilog = .text:0x0000043C; // type:function size:0x4C scope:global +fn_1_488 = .text:0x00000488; // type:function size:0x1D0 +fn_1_658 = .text:0x00000658; // type:function size:0x1D0 +fn_1_828 = .text:0x00000828; // type:function size:0x28 +fn_1_850 = .text:0x00000850; // type:function size:0x20 +fn_1_870 = .text:0x00000870; // type:function size:0xD8 +fn_1_948 = .text:0x00000948; // type:function size:0xC8 +fn_1_A10 = .text:0x00000A10; // type:function size:0xBC +fn_1_ACC = .text:0x00000ACC; // type:function size:0xBC +fn_1_B88 = .text:0x00000B88; // type:function size:0x4 +fn_1_B8C = .text:0x00000B8C; // type:function size:0x20 +fn_1_BAC = .text:0x00000BAC; // type:function size:0x28 +fn_1_BD4 = .text:0x00000BD4; // type:function size:0x20 +fn_1_BF4 = .text:0x00000BF4; // type:function size:0x24 +fn_1_C18 = .text:0x00000C18; // type:function size:0x20 +fn_1_C38 = .text:0x00000C38; // type:function size:0xA48 +fn_1_1680 = .text:0x00001680; // type:function size:0x1B4 +fn_1_1834 = .text:0x00001834; // type:function size:0x1D0 +fn_1_1A04 = .text:0x00001A04; // type:function size:0x60 +fn_1_1A64 = .text:0x00001A64; // type:function size:0x68 +fn_1_1ACC = .text:0x00001ACC; // type:function size:0xAC +fn_1_1B78 = .text:0x00001B78; // type:function size:0xBC +fn_1_1C34 = .text:0x00001C34; // type:function size:0xB4 +fn_1_1CE8 = .text:0x00001CE8; // type:function size:0x34 +fn_1_1D1C = .text:0x00001D1C; // type:function size:0x40 +fn_1_1D5C = .text:0x00001D5C; // type:function size:0x70 +fn_1_1DCC = .text:0x00001DCC; // type:function size:0x178 +fn_1_1F44 = .text:0x00001F44; // type:function size:0x2E0 +fn_1_2224 = .text:0x00002224; // type:function size:0x90 +fn_1_22B4 = .text:0x000022B4; // type:function size:0x48 +fn_1_22FC = .text:0x000022FC; // type:function size:0x54 +fn_1_2350 = .text:0x00002350; // type:function size:0x3C0 +fn_1_2710 = .text:0x00002710; // type:function size:0x10 +fn_1_2720 = .text:0x00002720; // type:function size:0x10 +fn_1_2730 = .text:0x00002730; // type:function size:0xB8 +fn_1_27E8 = .text:0x000027E8; // type:function size:0x120 +fn_1_2908 = .text:0x00002908; // type:function size:0x3A8 +fn_1_2CB0 = .text:0x00002CB0; // type:function size:0x7F4 +fn_1_34A4 = .text:0x000034A4; // type:function size:0x88 +fn_1_352C = .text:0x0000352C; // type:function size:0x94 +fn_1_35C0 = .text:0x000035C0; // type:function size:0x58 +fn_1_3618 = .text:0x00003618; // type:function size:0xEC +fn_1_3704 = .text:0x00003704; // type:function size:0xC4 +fn_1_37C8 = .text:0x000037C8; // type:function size:0x3C +fn_1_3804 = .text:0x00003804; // type:function size:0x44 +fn_1_3848 = .text:0x00003848; // type:function size:0x274 +fn_1_3ABC = .text:0x00003ABC; // type:function size:0x26C +fn_1_3D28 = .text:0x00003D28; // type:function size:0x22C +fn_1_3F54 = .text:0x00003F54; // type:function size:0x27C +fn_1_41D0 = .text:0x000041D0; // type:function size:0x2B4 +fn_1_4484 = .text:0x00004484; // type:function size:0x46C +fn_1_48F0 = .text:0x000048F0; // type:function size:0x454 +fn_1_4D44 = .text:0x00004D44; // type:function size:0x48C +fn_1_51D0 = .text:0x000051D0; // type:function size:0x658 +fn_1_5828 = .text:0x00005828; // type:function size:0x4C4 +fn_1_5CEC = .text:0x00005CEC; // type:function size:0x4FC +fn_1_61E8 = .text:0x000061E8; // type:function size:0x6C8 +fn_1_68B0 = .text:0x000068B0; // type:function size:0xC4 +fn_1_6974 = .text:0x00006974; // type:function size:0x188 +fn_1_6AFC = .text:0x00006AFC; // type:function size:0x34 +fn_1_6B30 = .text:0x00006B30; // type:function size:0x40 +fn_1_6B70 = .text:0x00006B70; // type:function size:0xAC +fn_1_6C1C = .text:0x00006C1C; // type:function size:0x1E8 +fn_1_6E04 = .text:0x00006E04; // type:function size:0xB4 +fn_1_6EB8 = .text:0x00006EB8; // type:function size:0x170 +fn_1_7028 = .text:0x00007028; // type:function size:0x68 +fn_1_7090 = .text:0x00007090; // type:function size:0xA4 +fn_1_7134 = .text:0x00007134; // type:function size:0x1E8 +fn_1_731C = .text:0x0000731C; // type:function size:0x69C +fn_1_79B8 = .text:0x000079B8; // type:function size:0x128 +fn_1_7AE0 = .text:0x00007AE0; // type:function size:0x390 +fn_1_7E70 = .text:0x00007E70; // type:function size:0x5C +fn_1_7ECC = .text:0x00007ECC; // type:function size:0x1C4 +fn_1_8090 = .text:0x00008090; // type:function size:0x320 +fn_1_83B0 = .text:0x000083B0; // type:function size:0x58 +fn_1_8408 = .text:0x00008408; // type:function size:0x3D4 +fn_1_87DC = .text:0x000087DC; // type:function size:0x268 +fn_1_8A44 = .text:0x00008A44; // type:function size:0x9C +fn_1_8AE0 = .text:0x00008AE0; // type:function size:0x2E0 +fn_1_8DC0 = .text:0x00008DC0; // type:function size:0xAC +fn_1_8E6C = .text:0x00008E6C; // type:function size:0xFC +fn_1_8F68 = .text:0x00008F68; // type:function size:0x36C +fn_1_92D4 = .text:0x000092D4; // type:function size:0x134 +fn_1_9408 = .text:0x00009408; // type:function size:0x310 +fn_1_9718 = .text:0x00009718; // type:function size:0x18C +fn_1_98A4 = .text:0x000098A4; // type:function size:0x88 +fn_1_992C = .text:0x0000992C; // type:function size:0x3DC +fn_1_9D08 = .text:0x00009D08; // type:function size:0x300 +fn_1_A008 = .text:0x0000A008; // type:function size:0xE4 +fn_1_A0EC = .text:0x0000A0EC; // type:function size:0x38C +fn_1_A478 = .text:0x0000A478; // type:function size:0x8C +fn_1_A504 = .text:0x0000A504; // type:function size:0xF0 +fn_1_A5F4 = .text:0x0000A5F4; // type:function size:0x23C +fn_1_A830 = .text:0x0000A830; // type:function size:0xC8 +fn_1_A8F8 = .text:0x0000A8F8; // type:function size:0x2B4 +fn_1_ABAC = .text:0x0000ABAC; // type:function size:0x150 +fn_1_ACFC = .text:0x0000ACFC; // type:function size:0x134 +fn_1_AE30 = .text:0x0000AE30; // type:function size:0x8C +fn_1_AEBC = .text:0x0000AEBC; // type:function size:0x374 +fn_1_B230 = .text:0x0000B230; // type:function size:0x5C +fn_1_B28C = .text:0x0000B28C; // type:function size:0x214 +fn_1_B4A0 = .text:0x0000B4A0; // type:function size:0xE8 +fn_1_B588 = .text:0x0000B588; // type:function size:0xE8 +fn_1_B670 = .text:0x0000B670; // type:function size:0x11C +fn_1_B78C = .text:0x0000B78C; // type:function size:0x13C +fn_1_B8C8 = .text:0x0000B8C8; // type:function size:0x4 +fn_1_B8CC = .text:0x0000B8CC; // type:function size:0x104 +fn_1_B9D0 = .text:0x0000B9D0; // type:function size:0x208 +fn_1_BBD8 = .text:0x0000BBD8; // type:function size:0x788 +fn_1_C360 = .text:0x0000C360; // type:function size:0xB4 +fn_1_C414 = .text:0x0000C414; // type:function size:0x2F4 +fn_1_C708 = .text:0x0000C708; // type:function size:0xBC +fn_1_C7C4 = .text:0x0000C7C4; // type:function size:0x384 +fn_1_CB48 = .text:0x0000CB48; // type:function size:0x300 +fn_1_CE48 = .text:0x0000CE48; // type:function size:0xAC +fn_1_CEF4 = .text:0x0000CEF4; // type:function size:0xE4 +fn_1_CFD8 = .text:0x0000CFD8; // type:function size:0xC4 +fn_1_D09C = .text:0x0000D09C; // type:function size:0xE4 +fn_1_D180 = .text:0x0000D180; // type:function size:0x3FC +fn_1_D57C = .text:0x0000D57C; // type:function size:0x134 +fn_1_D6B0 = .text:0x0000D6B0; // type:function size:0x2F8 +fn_1_D9A8 = .text:0x0000D9A8; // type:function size:0xFC +fn_1_DAA4 = .text:0x0000DAA4; // type:function size:0x164 +fn_1_DC08 = .text:0x0000DC08; // type:function size:0x118 +fn_1_DD20 = .text:0x0000DD20; // type:function size:0xE4 +fn_1_DE04 = .text:0x0000DE04; // type:function size:0x424 +fn_1_E228 = .text:0x0000E228; // type:function size:0x8C +fn_1_E2B4 = .text:0x0000E2B4; // type:function size:0x130 +fn_1_E3E4 = .text:0x0000E3E4; // type:function size:0x23C +fn_1_E620 = .text:0x0000E620; // type:function size:0xF0 +fn_1_E710 = .text:0x0000E710; // type:function size:0x118 +fn_1_E828 = .text:0x0000E828; // type:function size:0x8C +fn_1_E8B4 = .text:0x0000E8B4; // type:function size:0x34C +fn_1_EC00 = .text:0x0000EC00; // type:function size:0x5C +fn_1_EC5C = .text:0x0000EC5C; // type:function size:0x384 +fn_1_EFE0 = .text:0x0000EFE0; // type:function size:0x70 +fn_1_F050 = .text:0x0000F050; // type:function size:0x14C +fn_1_F19C = .text:0x0000F19C; // type:function size:0x5E4 +fn_1_F780 = .text:0x0000F780; // type:function size:0xEC +fn_1_F86C = .text:0x0000F86C; // type:function size:0xA4 +fn_1_F910 = .text:0x0000F910; // type:function size:0x1D4 +fn_1_FAE4 = .text:0x0000FAE4; // type:function size:0x238 +fn_1_FD1C = .text:0x0000FD1C; // type:function size:0xB4 +fn_1_FDD0 = .text:0x0000FDD0; // type:function size:0x4C8 +fn_1_10298 = .text:0x00010298; // type:function size:0xEC +fn_1_10384 = .text:0x00010384; // type:function size:0xCC +fn_1_10450 = .text:0x00010450; // type:function size:0xFC +fn_1_1054C = .text:0x0001054C; // type:function size:0xAC +fn_1_105F8 = .text:0x000105F8; // type:function size:0x300 +fn_1_108F8 = .text:0x000108F8; // type:function size:0x374 +fn_1_10C6C = .text:0x00010C6C; // type:function size:0xE4 +fn_1_10D50 = .text:0x00010D50; // type:function size:0x1D4 +fn_1_10F24 = .text:0x00010F24; // type:function size:0xAC +fn_1_10FD0 = .text:0x00010FD0; // type:function size:0x2D0 +fn_1_112A0 = .text:0x000112A0; // type:function size:0x8C +fn_1_1132C = .text:0x0001132C; // type:function size:0xF0 +fn_1_1141C = .text:0x0001141C; // type:function size:0x118 +fn_1_11534 = .text:0x00011534; // type:function size:0xF0 +fn_1_11624 = .text:0x00011624; // type:function size:0x10C +fn_1_11730 = .text:0x00011730; // type:function size:0x35C +fn_1_11A8C = .text:0x00011A8C; // type:function size:0x5C +fn_1_11AE8 = .text:0x00011AE8; // type:function size:0x184 +fn_1_11C6C = .text:0x00011C6C; // type:function size:0x16C +fn_1_11DD8 = .text:0x00011DD8; // type:function size:0xEC +fn_1_11EC4 = .text:0x00011EC4; // type:function size:0x64 +fn_1_11F28 = .text:0x00011F28; // type:function size:0x4 +fn_1_11F2C = .text:0x00011F2C; // type:function size:0x144 +fn_1_12070 = .text:0x00012070; // type:function size:0x5C0 +fn_1_12630 = .text:0x00012630; // type:function size:0xB4 +fn_1_126E4 = .text:0x000126E4; // type:function size:0x234 +fn_1_12918 = .text:0x00012918; // type:function size:0xBC +fn_1_129D4 = .text:0x000129D4; // type:function size:0x2C0 +fn_1_12C94 = .text:0x00012C94; // type:function size:0xE4 +fn_1_12D78 = .text:0x00012D78; // type:function size:0x1A8 +fn_1_12F20 = .text:0x00012F20; // type:function size:0x88 +fn_1_12FA8 = .text:0x00012FA8; // type:function size:0x118 +fn_1_130C0 = .text:0x000130C0; // type:function size:0x22C +fn_1_132EC = .text:0x000132EC; // type:function size:0x284 +fn_1_13570 = .text:0x00013570; // type:function size:0x310 +fn_1_13880 = .text:0x00013880; // type:function size:0x8C +fn_1_1390C = .text:0x0001390C; // type:function size:0x23C +fn_1_13B48 = .text:0x00013B48; // type:function size:0xEC +fn_1_13C34 = .text:0x00013C34; // type:function size:0x1F8 +fn_1_13E2C = .text:0x00013E2C; // type:function size:0x324 +fn_1_14150 = .text:0x00014150; // type:function size:0x50 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC data:4byte +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC data:4byte +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC data:4byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 data:byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC data:2byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC data:4byte +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 data:4byte +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x1 data:byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 data:4byte +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC data:4byte +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC data:4byte +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC data:4byte +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 data:4byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 data:4byte +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 data:4byte +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 data:byte +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 data:4byte +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 data:4byte +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C data:4byte +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 data:string +lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 data:string +lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 data:string +lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 data:string +lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 data:string +lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 data:string +lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A data:string +lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A data:string +lbl_1_data_17F = .data:0x0000017F; // type:object size:0x11 +lbl_1_data_190 = .data:0x00000190; // type:object size:0x50 +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 data:string +lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 data:string +lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 data:string +lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C data:string +lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D data:string +lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0xF data:string +lbl_1_data_338 = .data:0x00000338; // type:object size:0x1C +lbl_1_data_354 = .data:0x00000354; // type:object size:0x34 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x50 +lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C +lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 data:string +lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 data:string +lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 data:string +lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 data:string +lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 data:string +lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 data:string +lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 data:string +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA data:string +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C data:string +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D data:string +lbl_1_data_505 = .data:0x00000505; // type:object size:0xF data:string +lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B data:string +lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 data:string +lbl_1_data_537 = .data:0x00000537; // type:object size:0x9 +lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 +lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0 +lbl_1_data_930 = .data:0x00000930; // type:object size:0x50 +lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 data:string +lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 data:string +lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 data:string +lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 data:string +lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 data:string +lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 data:string +lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 data:string +lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 data:string +lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF data:string +lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C data:string +lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D data:string +lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C data:string +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 data:string +lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF data:string +lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 data:string +lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA data:string +lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 data:string +lbl_1_data_AED = .data:0x00000AED; // type:object size:0xB +lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C +lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 data:string +lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 data:string +lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 data:string +lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 data:string +lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 data:string +lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 data:string +lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 data:string +lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 data:string +lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF data:string +lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C data:string +lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D data:string +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF data:string +lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x21 +lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x54 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x28 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0xA0 +lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x28 data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x28 data:4byte +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0x104 data:4byte +lbl_1_bss_2C8 = .bss:0x000002C8; // type:object size:0x4 data:4byte +lbl_1_bss_2CC = .bss:0x000002CC; // type:object size:0x4 data:4byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x60 data:4byte +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0x8 data:4byte +lbl_1_bss_338 = .bss:0x00000338; // type:object size:0xA0 +lbl_1_bss_3D8 = .bss:0x000003D8; // type:object size:0x28 data:4byte +lbl_1_bss_400 = .bss:0x00000400; // type:object size:0x28 data:4byte +lbl_1_bss_428 = .bss:0x00000428; // type:object size:0x28 data:4byte +lbl_1_bss_450 = .bss:0x00000450; // type:object size:0x108 data:float +lbl_1_bss_558 = .bss:0x00000558; // type:object size:0x4 data:4byte +lbl_1_bss_55C = .bss:0x0000055C; // type:object size:0x4 data:4byte +lbl_1_bss_560 = .bss:0x00000560; // type:object size:0x8 data:4byte +lbl_1_bss_568 = .bss:0x00000568; // type:object size:0x28 data:4byte +lbl_1_bss_590 = .bss:0x00000590; // type:object size:0x28 data:4byte +lbl_1_bss_5B8 = .bss:0x000005B8; // type:object size:0x28 data:4byte +lbl_1_bss_5E0 = .bss:0x000005E0; // type:object size:0x28 data:4byte +lbl_1_bss_608 = .bss:0x00000608; // type:object size:0x108 data:4byte +lbl_1_bss_710 = .bss:0x00000710; // type:object size:0x4 data:4byte +lbl_1_bss_714 = .bss:0x00000714; // type:object size:0x28 data:4byte +lbl_1_bss_73C = .bss:0x0000073C; // type:object size:0x28 data:4byte +lbl_1_bss_764 = .bss:0x00000764; // type:object size:0x28 data:4byte +lbl_1_bss_78C = .bss:0x0000078C; // type:object size:0x28 data:4byte +lbl_1_bss_7B4 = .bss:0x000007B4; // type:object size:0x104 data:4byte +lbl_1_bss_8B8 = .bss:0x000008B8; // type:object size:0x4 data:4byte +lbl_1_bss_8BC = .bss:0x000008BC; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/nisDll/splits.txt b/config/GMPP01_00/rels/nisDll/splits.txt new file mode 100644 index 00000000..2e500fe0 --- /dev/null +++ b/config/GMPP01_00/rels/nisDll/splits.txt @@ -0,0 +1,5 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 diff --git a/config/GMPP01_00/rels/nisDll/symbols.txt b/config/GMPP01_00/rels/nisDll/symbols.txt new file mode 100644 index 00000000..1143328c --- /dev/null +++ b/config/GMPP01_00/rels/nisDll/symbols.txt @@ -0,0 +1,6 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x68 +fn_1_68 = .text:0x00000068; // type:function size:0x2C +_prolog = .text:0x00000094; // type:function size:0x9C scope:global +_epilog = .text:0x00000130; // type:function size:0x4C scope:global +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte diff --git a/config/GMPP01_00/rels/option/splits.txt b/config/GMPP01_00/rels/option/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/option/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/option/symbols.txt b/config/GMPP01_00/rels/option/symbols.txt new file mode 100644 index 00000000..26d4655e --- /dev/null +++ b/config/GMPP01_00/rels/option/symbols.txt @@ -0,0 +1,379 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0xC0 +fn_1_160 = .text:0x00000160; // type:function size:0x110 +fn_1_270 = .text:0x00000270; // type:function size:0xE4 +fn_1_354 = .text:0x00000354; // type:function size:0x114 +fn_1_468 = .text:0x00000468; // type:function size:0xE8 +fn_1_550 = .text:0x00000550; // type:function size:0x34 +fn_1_584 = .text:0x00000584; // type:function size:0x34 +fn_1_5B8 = .text:0x000005B8; // type:function size:0x34 +fn_1_5EC = .text:0x000005EC; // type:function size:0xFC +fn_1_6E8 = .text:0x000006E8; // type:function size:0x110 +fn_1_7F8 = .text:0x000007F8; // type:function size:0x244 +fn_1_A3C = .text:0x00000A3C; // type:function size:0x30 +fn_1_A6C = .text:0x00000A6C; // type:function size:0x84 +fn_1_AF0 = .text:0x00000AF0; // type:function size:0x84 +fn_1_B74 = .text:0x00000B74; // type:function size:0x84 +fn_1_BF8 = .text:0x00000BF8; // type:function size:0x30 +fn_1_C28 = .text:0x00000C28; // type:function size:0x30 +fn_1_C58 = .text:0x00000C58; // type:function size:0x30 +fn_1_C88 = .text:0x00000C88; // type:function size:0x30 +fn_1_CB8 = .text:0x00000CB8; // type:function size:0x8C +fn_1_D44 = .text:0x00000D44; // type:function size:0x28 +fn_1_D6C = .text:0x00000D6C; // type:function size:0x578 +fn_1_12E4 = .text:0x000012E4; // type:function size:0x200 +fn_1_14E4 = .text:0x000014E4; // type:function size:0xC0 +fn_1_15A4 = .text:0x000015A4; // type:function size:0x1F4 +fn_1_1798 = .text:0x00001798; // type:function size:0xAC +fn_1_1844 = .text:0x00001844; // type:function size:0x1E8 +fn_1_1A2C = .text:0x00001A2C; // type:function size:0x44 +fn_1_1A70 = .text:0x00001A70; // type:function size:0x1C +fn_1_1A8C = .text:0x00001A8C; // type:function size:0x5FC +fn_1_2088 = .text:0x00002088; // type:function size:0x88 +fn_1_2110 = .text:0x00002110; // type:function size:0x34 +fn_1_2144 = .text:0x00002144; // type:function size:0x80 +fn_1_21C4 = .text:0x000021C4; // type:function size:0x34 +fn_1_21F8 = .text:0x000021F8; // type:function size:0x224 +fn_1_241C = .text:0x0000241C; // type:function size:0x8C +fn_1_24A8 = .text:0x000024A8; // type:function size:0x44 +fn_1_24EC = .text:0x000024EC; // type:function size:0x1C +fn_1_2508 = .text:0x00002508; // type:function size:0xA4 +fn_1_25AC = .text:0x000025AC; // type:function size:0x46C +fn_1_2A18 = .text:0x00002A18; // type:function size:0x2E8 +fn_1_2D00 = .text:0x00002D00; // type:function size:0x104 +fn_1_2E04 = .text:0x00002E04; // type:function size:0x148 +fn_1_2F4C = .text:0x00002F4C; // type:function size:0x64 +fn_1_2FB0 = .text:0x00002FB0; // type:function size:0x1A8 +fn_1_3158 = .text:0x00003158; // type:function size:0xD4 +fn_1_322C = .text:0x0000322C; // type:function size:0x64 +fn_1_3290 = .text:0x00003290; // type:function size:0x44 +fn_1_32D4 = .text:0x000032D4; // type:function size:0x1C +fn_1_32F0 = .text:0x000032F0; // type:function size:0x4BC +fn_1_37AC = .text:0x000037AC; // type:function size:0xBC +fn_1_3868 = .text:0x00003868; // type:function size:0x54 +fn_1_38BC = .text:0x000038BC; // type:function size:0xD0 +fn_1_398C = .text:0x0000398C; // type:function size:0x54 +fn_1_39E0 = .text:0x000039E0; // type:function size:0x128 +fn_1_3B08 = .text:0x00003B08; // type:function size:0x84 +fn_1_3B8C = .text:0x00003B8C; // type:function size:0x54 +fn_1_3BE0 = .text:0x00003BE0; // type:function size:0x8C +fn_1_3C6C = .text:0x00003C6C; // type:function size:0x94 +fn_1_3D00 = .text:0x00003D00; // type:function size:0x54 +fn_1_3D54 = .text:0x00003D54; // type:function size:0xC8 +fn_1_3E1C = .text:0x00003E1C; // type:function size:0xB4 +fn_1_3ED0 = .text:0x00003ED0; // type:function size:0x58 +fn_1_3F28 = .text:0x00003F28; // type:function size:0xAC +fn_1_3FD4 = .text:0x00003FD4; // type:function size:0x54 +fn_1_4028 = .text:0x00004028; // type:function size:0x2B4 +fn_1_42DC = .text:0x000042DC; // type:function size:0xAC +fn_1_4388 = .text:0x00004388; // type:function size:0x44 +fn_1_43CC = .text:0x000043CC; // type:function size:0x1C +fn_1_43E8 = .text:0x000043E8; // type:function size:0x270 +fn_1_4658 = .text:0x00004658; // type:function size:0x424 +fn_1_4A7C = .text:0x00004A7C; // type:function size:0x3D4 +fn_1_4E50 = .text:0x00004E50; // type:function size:0x93C +fn_1_578C = .text:0x0000578C; // type:function size:0x8B8 +fn_1_6044 = .text:0x00006044; // type:function size:0xF8 +fn_1_613C = .text:0x0000613C; // type:function size:0x64 +fn_1_61A0 = .text:0x000061A0; // type:function size:0xFC +fn_1_629C = .text:0x0000629C; // type:function size:0x54 +fn_1_62F0 = .text:0x000062F0; // type:function size:0xFC +fn_1_63EC = .text:0x000063EC; // type:function size:0x54 +fn_1_6440 = .text:0x00006440; // type:function size:0x94 +fn_1_64D4 = .text:0x000064D4; // type:function size:0x54 +fn_1_6528 = .text:0x00006528; // type:function size:0x118 +fn_1_6640 = .text:0x00006640; // type:function size:0x54 +fn_1_6694 = .text:0x00006694; // type:function size:0x38 +fn_1_66CC = .text:0x000066CC; // type:function size:0x38 +fn_1_6704 = .text:0x00006704; // type:function size:0xC4 +fn_1_67C8 = .text:0x000067C8; // type:function size:0x60 +fn_1_6828 = .text:0x00006828; // type:function size:0x1E4 +fn_1_6A0C = .text:0x00006A0C; // type:function size:0x74 +fn_1_6A80 = .text:0x00006A80; // type:function size:0x1DC +fn_1_6C5C = .text:0x00006C5C; // type:function size:0x74 +fn_1_6CD0 = .text:0x00006CD0; // type:function size:0x1D4 +fn_1_6EA4 = .text:0x00006EA4; // type:function size:0xA4 +fn_1_6F48 = .text:0x00006F48; // type:function size:0x1D4 +fn_1_711C = .text:0x0000711C; // type:function size:0xA4 +fn_1_71C0 = .text:0x000071C0; // type:function size:0xE8 +fn_1_72A8 = .text:0x000072A8; // type:function size:0x68 +fn_1_7310 = .text:0x00007310; // type:function size:0x400 +fn_1_7710 = .text:0x00007710; // type:function size:0x190 +fn_1_78A0 = .text:0x000078A0; // type:function size:0x60 +fn_1_7900 = .text:0x00007900; // type:function size:0x3C +fn_1_793C = .text:0x0000793C; // type:function size:0x5C4 +fn_1_7F00 = .text:0x00007F00; // type:function size:0x148 +fn_1_8048 = .text:0x00008048; // type:function size:0x9C +fn_1_80E4 = .text:0x000080E4; // type:function size:0x178 +fn_1_825C = .text:0x0000825C; // type:function size:0x54 +fn_1_82B0 = .text:0x000082B0; // type:function size:0x44 +fn_1_82F4 = .text:0x000082F4; // type:function size:0x1C +fn_1_8310 = .text:0x00008310; // type:function size:0x778 +fn_1_8A88 = .text:0x00008A88; // type:function size:0xD0 +fn_1_8B58 = .text:0x00008B58; // type:function size:0x54 +fn_1_8BAC = .text:0x00008BAC; // type:function size:0xD8 +fn_1_8C84 = .text:0x00008C84; // type:function size:0xFC +fn_1_8D80 = .text:0x00008D80; // type:function size:0x54 +fn_1_8DD4 = .text:0x00008DD4; // type:function size:0xC4 +fn_1_8E98 = .text:0x00008E98; // type:function size:0x60 +fn_1_8EF8 = .text:0x00008EF8; // type:function size:0x40 +fn_1_8F38 = .text:0x00008F38; // type:function size:0x72C +fn_1_9664 = .text:0x00009664; // type:function size:0x9C +fn_1_9700 = .text:0x00009700; // type:function size:0x344 +fn_1_9A44 = .text:0x00009A44; // type:function size:0x7C +fn_1_9AC0 = .text:0x00009AC0; // type:function size:0x88C +fn_1_A34C = .text:0x0000A34C; // type:function size:0x9C +fn_1_A3E8 = .text:0x0000A3E8; // type:function size:0x260 +fn_1_A648 = .text:0x0000A648; // type:function size:0x40 +fn_1_A688 = .text:0x0000A688; // type:function size:0x18 +fn_1_A6A0 = .text:0x0000A6A0; // type:function size:0x18 +fn_1_A6B8 = .text:0x0000A6B8; // type:function size:0x54 +fn_1_A70C = .text:0x0000A70C; // type:function size:0x40 +fn_1_A74C = .text:0x0000A74C; // type:function size:0x40 +fn_1_A78C = .text:0x0000A78C; // type:function size:0x38 +fn_1_A7C4 = .text:0x0000A7C4; // type:function size:0x38 +fn_1_A7FC = .text:0x0000A7FC; // type:function size:0x20 +fn_1_A81C = .text:0x0000A81C; // type:function size:0x24 +fn_1_A840 = .text:0x0000A840; // type:function size:0x108 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0xC data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x38 +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8C0 +lbl_1_rodata_AA0 = .rodata:0x00000AA0; // type:object size:0x30 +lbl_1_rodata_AD0 = .rodata:0x00000AD0; // type:object size:0x780 +lbl_1_rodata_1250 = .rodata:0x00001250; // type:object size:0x4 data:float +lbl_1_rodata_1254 = .rodata:0x00001254; // type:object size:0x4 data:float +lbl_1_rodata_1258 = .rodata:0x00001258; // type:object size:0x4 data:float +lbl_1_rodata_125C = .rodata:0x0000125C; // type:object size:0x4 data:float +lbl_1_rodata_1260 = .rodata:0x00001260; // type:object size:0x4 data:float +lbl_1_rodata_1264 = .rodata:0x00001264; // type:object size:0x4 data:float +lbl_1_rodata_1268 = .rodata:0x00001268; // type:object size:0x4 data:float +lbl_1_rodata_1270 = .rodata:0x00001270; // type:object size:0x8 data:double +lbl_1_rodata_1278 = .rodata:0x00001278; // type:object size:0x8 +lbl_1_rodata_1280 = .rodata:0x00001280; // type:object size:0x8 +lbl_1_rodata_1288 = .rodata:0x00001288; // type:object size:0x8 +lbl_1_rodata_1290 = .rodata:0x00001290; // type:object size:0x4 data:float +lbl_1_rodata_1294 = .rodata:0x00001294; // type:object size:0x4 data:float +lbl_1_rodata_1298 = .rodata:0x00001298; // type:object size:0x4 data:float +lbl_1_rodata_129C = .rodata:0x0000129C; // type:object size:0x4 data:float +lbl_1_rodata_12A0 = .rodata:0x000012A0; // type:object size:0x4 data:float +lbl_1_rodata_12A4 = .rodata:0x000012A4; // type:object size:0x4 data:float +lbl_1_rodata_12A8 = .rodata:0x000012A8; // type:object size:0x4 data:float +lbl_1_rodata_12AC = .rodata:0x000012AC; // type:object size:0x4 data:float +lbl_1_rodata_12B0 = .rodata:0x000012B0; // type:object size:0x4 data:float +lbl_1_rodata_12B4 = .rodata:0x000012B4; // type:object size:0x4 data:float +lbl_1_rodata_12B8 = .rodata:0x000012B8; // type:object size:0x4 data:float +lbl_1_rodata_12BC = .rodata:0x000012BC; // type:object size:0x4 data:float +lbl_1_rodata_12C0 = .rodata:0x000012C0; // type:object size:0x4 data:float +lbl_1_rodata_12C4 = .rodata:0x000012C4; // type:object size:0x4 data:float +lbl_1_rodata_12C8 = .rodata:0x000012C8; // type:object size:0x4 data:float +lbl_1_rodata_12CC = .rodata:0x000012CC; // type:object size:0x4 data:float +lbl_1_rodata_12D0 = .rodata:0x000012D0; // type:object size:0x24 +lbl_1_rodata_12F4 = .rodata:0x000012F4; // type:object size:0x4 data:float +lbl_1_rodata_12F8 = .rodata:0x000012F8; // type:object size:0x4 data:float +lbl_1_rodata_12FC = .rodata:0x000012FC; // type:object size:0x4 data:float +lbl_1_rodata_1300 = .rodata:0x00001300; // type:object size:0x4 data:float +lbl_1_rodata_1304 = .rodata:0x00001304; // type:object size:0x4 data:float +lbl_1_rodata_1308 = .rodata:0x00001308; // type:object size:0x1C +lbl_1_rodata_1324 = .rodata:0x00001324; // type:object size:0x4 data:float +lbl_1_rodata_1328 = .rodata:0x00001328; // type:object size:0x4 data:float +lbl_1_rodata_132C = .rodata:0x0000132C; // type:object size:0x4 data:float +lbl_1_rodata_1330 = .rodata:0x00001330; // type:object size:0x14 +lbl_1_rodata_1344 = .rodata:0x00001344; // type:object size:0x4 data:float +lbl_1_rodata_1348 = .rodata:0x00001348; // type:object size:0x4 data:float +lbl_1_rodata_134C = .rodata:0x0000134C; // type:object size:0x4 +lbl_1_rodata_1350 = .rodata:0x00001350; // type:object size:0x8 +lbl_1_rodata_1358 = .rodata:0x00001358; // type:object size:0x8 data:double +lbl_1_rodata_1360 = .rodata:0x00001360; // type:object size:0x8 data:double +lbl_1_rodata_1368 = .rodata:0x00001368; // type:object size:0x4 data:float +lbl_1_rodata_136C = .rodata:0x0000136C; // type:object size:0x4 data:float +lbl_1_rodata_1370 = .rodata:0x00001370; // type:object size:0x8 data:double +lbl_1_rodata_1378 = .rodata:0x00001378; // type:object size:0x8 data:double +lbl_1_rodata_1380 = .rodata:0x00001380; // type:object size:0x4 data:float +lbl_1_rodata_1384 = .rodata:0x00001384; // type:object size:0x4 data:float +lbl_1_rodata_1388 = .rodata:0x00001388; // type:object size:0x8 data:double +lbl_1_rodata_1390 = .rodata:0x00001390; // type:object size:0x4 data:float +lbl_1_rodata_1394 = .rodata:0x00001394; // type:object size:0x4 data:float +lbl_1_rodata_1398 = .rodata:0x00001398; // type:object size:0x4 data:float +lbl_1_rodata_139C = .rodata:0x0000139C; // type:object size:0x4 data:float +lbl_1_rodata_13A0 = .rodata:0x000013A0; // type:object size:0x8 data:double +lbl_1_rodata_13A8 = .rodata:0x000013A8; // type:object size:0x8 data:double +lbl_1_rodata_13B0 = .rodata:0x000013B0; // type:object size:0x4 data:float +lbl_1_rodata_13B4 = .rodata:0x000013B4; // type:object size:0x4 data:float +lbl_1_rodata_13B8 = .rodata:0x000013B8; // type:object size:0x8 data:float +lbl_1_rodata_13C0 = .rodata:0x000013C0; // type:object size:0x18 +lbl_1_rodata_13D8 = .rodata:0x000013D8; // type:object size:0x4 data:float +lbl_1_rodata_13DC = .rodata:0x000013DC; // type:object size:0x4 data:float +lbl_1_rodata_13E0 = .rodata:0x000013E0; // type:object size:0x4 data:float +lbl_1_rodata_13E4 = .rodata:0x000013E4; // type:object size:0x4 data:float +lbl_1_rodata_13E8 = .rodata:0x000013E8; // type:object size:0x4 data:float +lbl_1_rodata_13EC = .rodata:0x000013EC; // type:object size:0x4 data:float +lbl_1_rodata_13F0 = .rodata:0x000013F0; // type:object size:0x4 data:float +lbl_1_rodata_13F4 = .rodata:0x000013F4; // type:object size:0x4 data:float +lbl_1_rodata_13F8 = .rodata:0x000013F8; // type:object size:0x8 data:double +lbl_1_rodata_1400 = .rodata:0x00001400; // type:object size:0x8 data:double +lbl_1_rodata_1408 = .rodata:0x00001408; // type:object size:0x4 data:float +lbl_1_rodata_140C = .rodata:0x0000140C; // type:object size:0x4 data:float +lbl_1_rodata_1410 = .rodata:0x00001410; // type:object size:0x4 data:float +lbl_1_rodata_1414 = .rodata:0x00001414; // type:object size:0x4 data:float +lbl_1_rodata_1418 = .rodata:0x00001418; // type:object size:0x4 data:float +lbl_1_rodata_1420 = .rodata:0x00001420; // type:object size:0x8 data:double +lbl_1_rodata_1428 = .rodata:0x00001428; // type:object size:0x4 data:float +lbl_1_rodata_142C = .rodata:0x0000142C; // type:object size:0x4 data:float +lbl_1_rodata_1430 = .rodata:0x00001430; // type:object size:0x4 data:float +lbl_1_rodata_1434 = .rodata:0x00001434; // type:object size:0x4 data:float +lbl_1_rodata_1438 = .rodata:0x00001438; // type:object size:0x4 data:float +lbl_1_rodata_143C = .rodata:0x0000143C; // type:object size:0x264 +lbl_1_rodata_16A0 = .rodata:0x000016A0; // type:object size:0x4 data:float +lbl_1_rodata_16A4 = .rodata:0x000016A4; // type:object size:0x4 data:float +lbl_1_rodata_16A8 = .rodata:0x000016A8; // type:object size:0x4 data:float +lbl_1_rodata_16AC = .rodata:0x000016AC; // type:object size:0x4 data:float +lbl_1_rodata_16B0 = .rodata:0x000016B0; // type:object size:0x4 data:float +lbl_1_rodata_16B4 = .rodata:0x000016B4; // type:object size:0x4 data:float +lbl_1_rodata_16B8 = .rodata:0x000016B8; // type:object size:0x4 data:float +lbl_1_rodata_16BC = .rodata:0x000016BC; // type:object size:0x4 data:float +lbl_1_rodata_16C0 = .rodata:0x000016C0; // type:object size:0x4 data:float +lbl_1_rodata_16C4 = .rodata:0x000016C4; // type:object size:0x4 data:float +lbl_1_rodata_16C8 = .rodata:0x000016C8; // type:object size:0x4 data:float +lbl_1_rodata_16CC = .rodata:0x000016CC; // type:object size:0x4 data:float +lbl_1_rodata_16D0 = .rodata:0x000016D0; // type:object size:0x4 data:float +lbl_1_rodata_16D4 = .rodata:0x000016D4; // type:object size:0x4 data:float +lbl_1_rodata_16D8 = .rodata:0x000016D8; // type:object size:0x4 data:float +lbl_1_rodata_16DC = .rodata:0x000016DC; // type:object size:0x4 data:float +lbl_1_rodata_16E0 = .rodata:0x000016E0; // type:object size:0x4 data:float +lbl_1_rodata_16E4 = .rodata:0x000016E4; // type:object size:0x4 data:float +lbl_1_rodata_16E8 = .rodata:0x000016E8; // type:object size:0x4 data:float +lbl_1_rodata_16EC = .rodata:0x000016EC; // type:object size:0x4 data:float +lbl_1_rodata_16F0 = .rodata:0x000016F0; // type:object size:0xD4 +lbl_1_rodata_17C4 = .rodata:0x000017C4; // type:object size:0x4 data:float +lbl_1_rodata_17C8 = .rodata:0x000017C8; // type:object size:0x4 data:float +lbl_1_rodata_17CC = .rodata:0x000017CC; // type:object size:0x4 data:float +lbl_1_rodata_17D0 = .rodata:0x000017D0; // type:object size:0x4 data:float +lbl_1_rodata_17D4 = .rodata:0x000017D4; // type:object size:0x4 data:float +lbl_1_rodata_17D8 = .rodata:0x000017D8; // type:object size:0x4 data:float +lbl_1_rodata_17DC = .rodata:0x000017DC; // type:object size:0x4 data:float +lbl_1_rodata_17E0 = .rodata:0x000017E0; // type:object size:0x84 +lbl_1_rodata_1864 = .rodata:0x00001864; // type:object size:0x48 +lbl_1_rodata_18AC = .rodata:0x000018AC; // type:object size:0x4 data:float +lbl_1_rodata_18B0 = .rodata:0x000018B0; // type:object size:0x4 data:float +lbl_1_rodata_18B4 = .rodata:0x000018B4; // type:object size:0x4 data:float +lbl_1_rodata_18B8 = .rodata:0x000018B8; // type:object size:0x4 data:float +lbl_1_rodata_18BC = .rodata:0x000018BC; // type:object size:0x4 data:float +lbl_1_rodata_18C0 = .rodata:0x000018C0; // type:object size:0x108 +lbl_1_rodata_19C8 = .rodata:0x000019C8; // type:object size:0x4 data:float +lbl_1_rodata_19CC = .rodata:0x000019CC; // type:object size:0x4 data:float +lbl_1_rodata_19D0 = .rodata:0x000019D0; // type:object size:0x4 data:float +lbl_1_rodata_19D4 = .rodata:0x000019D4; // type:object size:0x4 data:float +lbl_1_rodata_19D8 = .rodata:0x000019D8; // type:object size:0x4 data:float +lbl_1_rodata_19DC = .rodata:0x000019DC; // type:object size:0x4 data:float +lbl_1_rodata_19E0 = .rodata:0x000019E0; // type:object size:0x4 data:float +lbl_1_rodata_19E4 = .rodata:0x000019E4; // type:object size:0x4 data:float +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x1B data:string +lbl_1_data_37 = .data:0x00000037; // type:object size:0x1B data:string +lbl_1_data_52 = .data:0x00000052; // type:object size:0x16 data:string +lbl_1_data_68 = .data:0x00000068; // type:object size:0x8 data:4byte +jumptable_1_data_70 = .data:0x00000070; // type:object size:0x24 scope:local +lbl_1_data_98 = .data:0x00000098; // type:object size:0x8 data:4byte +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x1C +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x24 +jumptable_1_data_E0 = .data:0x000000E0; // type:object size:0x24 scope:local +lbl_1_data_108 = .data:0x00000108; // type:object size:0x8 data:4byte +lbl_1_data_110 = .data:0x00000110; // type:object size:0x8 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x38 data:4byte +lbl_1_data_150 = .data:0x00000150; // type:object size:0x18 data:4byte +lbl_1_data_168 = .data:0x00000168; // type:object size:0xC +jumptable_1_data_174 = .data:0x00000174; // type:object size:0x24 scope:local +jumptable_1_data_198 = .data:0x00000198; // type:object size:0x24 scope:local +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x4C +lbl_1_data_208 = .data:0x00000208; // type:object size:0x8 +lbl_1_data_210 = .data:0x00000210; // type:object size:0x8 data:4byte +jumptable_1_data_218 = .data:0x00000218; // type:object size:0x1C scope:local +jumptable_1_data_234 = .data:0x00000234; // type:object size:0x20 scope:local +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/present/splits.txt b/config/GMPP01_00/rels/present/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/present/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/present/symbols.txt b/config/GMPP01_00/rels/present/symbols.txt new file mode 100644 index 00000000..e6b4d8f0 --- /dev/null +++ b/config/GMPP01_00/rels/present/symbols.txt @@ -0,0 +1,189 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0xA4 +fn_1_144 = .text:0x00000144; // type:function size:0x110 +fn_1_254 = .text:0x00000254; // type:function size:0xE0 +fn_1_334 = .text:0x00000334; // type:function size:0x128 +fn_1_45C = .text:0x0000045C; // type:function size:0xF4 +fn_1_550 = .text:0x00000550; // type:function size:0x34 +fn_1_584 = .text:0x00000584; // type:function size:0x34 +fn_1_5B8 = .text:0x000005B8; // type:function size:0x34 +fn_1_5EC = .text:0x000005EC; // type:function size:0xC8 +fn_1_6B4 = .text:0x000006B4; // type:function size:0x23C +fn_1_8F0 = .text:0x000008F0; // type:function size:0x30 +fn_1_920 = .text:0x00000920; // type:function size:0x84 +fn_1_9A4 = .text:0x000009A4; // type:function size:0x84 +fn_1_A28 = .text:0x00000A28; // type:function size:0x84 +fn_1_AAC = .text:0x00000AAC; // type:function size:0x30 +fn_1_ADC = .text:0x00000ADC; // type:function size:0x30 +fn_1_B0C = .text:0x00000B0C; // type:function size:0x30 +fn_1_B3C = .text:0x00000B3C; // type:function size:0x30 +fn_1_B6C = .text:0x00000B6C; // type:function size:0x8C +fn_1_BF8 = .text:0x00000BF8; // type:function size:0x28 +fn_1_C20 = .text:0x00000C20; // type:function size:0x578 +fn_1_1198 = .text:0x00001198; // type:function size:0x200 +fn_1_1398 = .text:0x00001398; // type:function size:0xC0 +fn_1_1458 = .text:0x00001458; // type:function size:0x32C +fn_1_1784 = .text:0x00001784; // type:function size:0x88 +fn_1_180C = .text:0x0000180C; // type:function size:0x44 +fn_1_1850 = .text:0x00001850; // type:function size:0x1C +fn_1_186C = .text:0x0000186C; // type:function size:0xBC +fn_1_1928 = .text:0x00001928; // type:function size:0x680 +fn_1_1FA8 = .text:0x00001FA8; // type:function size:0x140 +fn_1_20E8 = .text:0x000020E8; // type:function size:0x5A4 +fn_1_268C = .text:0x0000268C; // type:function size:0x7C +fn_1_2708 = .text:0x00002708; // type:function size:0x6C +fn_1_2774 = .text:0x00002774; // type:function size:0x17C +fn_1_28F0 = .text:0x000028F0; // type:function size:0x34 +fn_1_2924 = .text:0x00002924; // type:function size:0x260 +fn_1_2B84 = .text:0x00002B84; // type:function size:0x48 +fn_1_2BCC = .text:0x00002BCC; // type:function size:0x90 +fn_1_2C5C = .text:0x00002C5C; // type:function size:0x738 +fn_1_3394 = .text:0x00003394; // type:function size:0x18 +fn_1_33AC = .text:0x000033AC; // type:function size:0x590 +fn_1_393C = .text:0x0000393C; // type:function size:0x6C +fn_1_39A8 = .text:0x000039A8; // type:function size:0x170 +fn_1_3B18 = .text:0x00003B18; // type:function size:0x74 +fn_1_3B8C = .text:0x00003B8C; // type:function size:0x22C +fn_1_3DB8 = .text:0x00003DB8; // type:function size:0xEC +fn_1_3EA4 = .text:0x00003EA4; // type:function size:0x19C +fn_1_4040 = .text:0x00004040; // type:function size:0x40 +fn_1_4080 = .text:0x00004080; // type:function size:0x18 +fn_1_4098 = .text:0x00004098; // type:function size:0x18 +fn_1_40B0 = .text:0x000040B0; // type:function size:0x54 +fn_1_4104 = .text:0x00004104; // type:function size:0x40 +fn_1_4144 = .text:0x00004144; // type:function size:0x40 +fn_1_4184 = .text:0x00004184; // type:function size:0xC +fn_1_4190 = .text:0x00004190; // type:function size:0xC +fn_1_419C = .text:0x0000419C; // type:function size:0x20 +fn_1_41BC = .text:0x000041BC; // type:function size:0x24 +fn_1_41E0 = .text:0x000041E0; // type:function size:0x114 +fn_1_42F4 = .text:0x000042F4; // type:function size:0x240 +fn_1_4534 = .text:0x00004534; // type:function size:0x8C +fn_1_45C0 = .text:0x000045C0; // type:function size:0x44 +fn_1_4604 = .text:0x00004604; // type:function size:0x1C +fn_1_4620 = .text:0x00004620; // type:function size:0x260 +fn_1_4880 = .text:0x00004880; // type:function size:0x184 +fn_1_4A04 = .text:0x00004A04; // type:function size:0x2E8 +fn_1_4CEC = .text:0x00004CEC; // type:function size:0x104 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x218 +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x708 +lbl_1_rodata_9C0 = .rodata:0x000009C0; // type:object size:0x4 data:float +lbl_1_rodata_9C4 = .rodata:0x000009C4; // type:object size:0x4 data:float +lbl_1_rodata_9C8 = .rodata:0x000009C8; // type:object size:0x4 data:float +lbl_1_rodata_9D0 = .rodata:0x000009D0; // type:object size:0x8 data:double +lbl_1_rodata_9D8 = .rodata:0x000009D8; // type:object size:0x20 +lbl_1_rodata_9F8 = .rodata:0x000009F8; // type:object size:0x28 +lbl_1_rodata_A20 = .rodata:0x00000A20; // type:object size:0x4 data:float +lbl_1_rodata_A24 = .rodata:0x00000A24; // type:object size:0x4 data:float +lbl_1_rodata_A28 = .rodata:0x00000A28; // type:object size:0x4 data:float +lbl_1_rodata_A2C = .rodata:0x00000A2C; // type:object size:0x4 data:float +lbl_1_rodata_A30 = .rodata:0x00000A30; // type:object size:0x4 data:float +lbl_1_rodata_A34 = .rodata:0x00000A34; // type:object size:0x4 data:float +lbl_1_rodata_A38 = .rodata:0x00000A38; // type:object size:0x4 data:float +lbl_1_rodata_A3C = .rodata:0x00000A3C; // type:object size:0x4 data:float +lbl_1_rodata_A40 = .rodata:0x00000A40; // type:object size:0x4 data:float +lbl_1_rodata_A44 = .rodata:0x00000A44; // type:object size:0x4 data:float +lbl_1_rodata_A48 = .rodata:0x00000A48; // type:object size:0x4 data:float +lbl_1_rodata_A50 = .rodata:0x00000A50; // type:object size:0x8 data:double +lbl_1_rodata_A58 = .rodata:0x00000A58; // type:object size:0x4 data:float +lbl_1_rodata_A60 = .rodata:0x00000A60; // type:object size:0x8 data:double +lbl_1_rodata_A68 = .rodata:0x00000A68; // type:object size:0x8 data:double +lbl_1_rodata_A70 = .rodata:0x00000A70; // type:object size:0x4 data:float +lbl_1_rodata_A74 = .rodata:0x00000A74; // type:object size:0x28 +lbl_1_rodata_A9C = .rodata:0x00000A9C; // type:object size:0x4 data:float +lbl_1_rodata_AA0 = .rodata:0x00000AA0; // type:object size:0x4 data:float +lbl_1_rodata_AA4 = .rodata:0x00000AA4; // type:object size:0x4 data:float +lbl_1_rodata_AA8 = .rodata:0x00000AA8; // type:object size:0x4 data:float +lbl_1_rodata_AAC = .rodata:0x00000AAC; // type:object size:0x4 data:float +lbl_1_rodata_AB0 = .rodata:0x00000AB0; // type:object size:0x4 data:float +lbl_1_rodata_AB8 = .rodata:0x00000AB8; // type:object size:0x8 data:double +lbl_1_rodata_AC0 = .rodata:0x00000AC0; // type:object size:0x8 data:double +lbl_1_rodata_AC8 = .rodata:0x00000AC8; // type:object size:0x28 +lbl_1_rodata_AF0 = .rodata:0x00000AF0; // type:object size:0x28 +lbl_1_rodata_B18 = .rodata:0x00000B18; // type:object size:0x28 +lbl_1_rodata_B40 = .rodata:0x00000B40; // type:object size:0x28 +lbl_1_rodata_B68 = .rodata:0x00000B68; // type:object size:0x28 +lbl_1_rodata_B90 = .rodata:0x00000B90; // type:object size:0x4 data:float +lbl_1_rodata_B94 = .rodata:0x00000B94; // type:object size:0x4 data:float +lbl_1_rodata_B98 = .rodata:0x00000B98; // type:object size:0x4 data:float +lbl_1_rodata_B9C = .rodata:0x00000B9C; // type:object size:0x4 data:float +lbl_1_rodata_BA0 = .rodata:0x00000BA0; // type:object size:0x4 data:float +lbl_1_rodata_BA4 = .rodata:0x00000BA4; // type:object size:0xC +lbl_1_rodata_BB0 = .rodata:0x00000BB0; // type:object size:0x4 data:float +lbl_1_rodata_BB4 = .rodata:0x00000BB4; // type:object size:0x4 data:float +lbl_1_rodata_BB8 = .rodata:0x00000BB8; // type:object size:0x4 data:float +lbl_1_rodata_BBC = .rodata:0x00000BBC; // type:object size:0x4 data:float +lbl_1_rodata_BC0 = .rodata:0x00000BC0; // type:object size:0x4 data:float +lbl_1_rodata_BC4 = .rodata:0x00000BC4; // type:object size:0x4 data:float +lbl_1_rodata_BC8 = .rodata:0x00000BC8; // type:object size:0x4 data:float +lbl_1_rodata_BCC = .rodata:0x00000BCC; // type:object size:0x4 data:float +lbl_1_rodata_BD0 = .rodata:0x00000BD0; // type:object size:0x8 data:float +lbl_1_rodata_BD8 = .rodata:0x00000BD8; // type:object size:0xC +lbl_1_rodata_BE4 = .rodata:0x00000BE4; // type:object size:0x4 data:float +lbl_1_rodata_BE8 = .rodata:0x00000BE8; // type:object size:0x4 data:float +lbl_1_rodata_BEC = .rodata:0x00000BEC; // type:object size:0x4 data:float +lbl_1_rodata_BF0 = .rodata:0x00000BF0; // type:object size:0x4 data:float +lbl_1_rodata_BF4 = .rodata:0x00000BF4; // type:object size:0x4 data:float +lbl_1_rodata_BF8 = .rodata:0x00000BF8; // type:object size:0x8 data:double +lbl_1_rodata_C00 = .rodata:0x00000C00; // type:object size:0x4 data:float +lbl_1_rodata_C08 = .rodata:0x00000C08; // type:object size:0x8 data:double +lbl_1_rodata_C10 = .rodata:0x00000C10; // type:object size:0x4 data:float +lbl_1_rodata_C14 = .rodata:0x00000C14; // type:object size:0x4 data:float +lbl_1_rodata_C18 = .rodata:0x00000C18; // type:object size:0x4 data:float +lbl_1_rodata_C1C = .rodata:0x00000C1C; // type:object size:0x4 data:float +lbl_1_rodata_C20 = .rodata:0x00000C20; // type:object size:0x8 data:double +lbl_1_rodata_C28 = .rodata:0x00000C28; // type:object size:0x8 data:double +lbl_1_rodata_C30 = .rodata:0x00000C30; // type:object size:0x4 data:float +lbl_1_rodata_C34 = .rodata:0x00000C34; // type:object size:0x4 data:float +lbl_1_rodata_C38 = .rodata:0x00000C38; // type:object size:0x4 data:float +lbl_1_rodata_C40 = .rodata:0x00000C40; // type:object size:0x8 data:double +lbl_1_rodata_C48 = .rodata:0x00000C48; // type:object size:0x4 data:float +lbl_1_rodata_C4C = .rodata:0x00000C4C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B data:string +lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1B data:string +lbl_1_data_36 = .data:0x00000036; // type:object size:0x1A +lbl_1_data_50 = .data:0x00000050; // type:object size:0x1C +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x10 data:4byte +lbl_1_data_7C = .data:0x0000007C; // type:object size:0x8 +lbl_1_data_84 = .data:0x00000084; // type:object size:0x20 +jumptable_1_data_A4 = .data:0x000000A4; // type:object size:0x2C scope:local +jumptable_1_data_D0 = .data:0x000000D0; // type:object size:0x1C scope:local +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x24 +lbl_1_data_114 = .data:0x00000114; // type:object size:0x2A data:string +lbl_1_data_13E = .data:0x0000013E; // type:object size:0x2E +jumptable_1_data_16C = .data:0x0000016C; // type:object size:0x34 scope:local +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0xC data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/resultDll/splits.txt b/config/GMPP01_00/rels/resultDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/resultDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/resultDll/symbols.txt b/config/GMPP01_00/rels/resultDll/symbols.txt new file mode 100644 index 00000000..07d67720 --- /dev/null +++ b/config/GMPP01_00/rels/resultDll/symbols.txt @@ -0,0 +1,203 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x438 +fn_1_4D8 = .text:0x000004D8; // type:function size:0x3B0 +fn_1_888 = .text:0x00000888; // type:function size:0x2F0 +fn_1_B78 = .text:0x00000B78; // type:function size:0x13D4 +fn_1_1F4C = .text:0x00001F4C; // type:function size:0xB90 +fn_1_2ADC = .text:0x00002ADC; // type:function size:0x1074 +fn_1_3B50 = .text:0x00003B50; // type:function size:0x15C +fn_1_3CAC = .text:0x00003CAC; // type:function size:0x15C +fn_1_3E08 = .text:0x00003E08; // type:function size:0x1D0 +fn_1_3FD8 = .text:0x00003FD8; // type:function size:0x104 +fn_1_40DC = .text:0x000040DC; // type:function size:0x160 +fn_1_423C = .text:0x0000423C; // type:function size:0x3E0 +fn_1_461C = .text:0x0000461C; // type:function size:0x1E0 +fn_1_47FC = .text:0x000047FC; // type:function size:0x1084 +fn_1_5880 = .text:0x00005880; // type:function size:0xC10 +fn_1_6490 = .text:0x00006490; // type:function size:0x2D0 +fn_1_6760 = .text:0x00006760; // type:function size:0xC4 +fn_1_6824 = .text:0x00006824; // type:function size:0xD20 +fn_1_7544 = .text:0x00007544; // type:function size:0xA54 +fn_1_7F98 = .text:0x00007F98; // type:function size:0x3A0 +fn_1_8338 = .text:0x00008338; // type:function size:0x14C +fn_1_8484 = .text:0x00008484; // type:function size:0x1D4 +fn_1_8658 = .text:0x00008658; // type:function size:0x84 +fn_1_86DC = .text:0x000086DC; // type:function size:0x2BC +fn_1_8998 = .text:0x00008998; // type:function size:0x320 +fn_1_8CB8 = .text:0x00008CB8; // type:function size:0x340 +fn_1_8FF8 = .text:0x00008FF8; // type:function size:0x284 +fn_1_927C = .text:0x0000927C; // type:function size:0x138 +fn_1_93B4 = .text:0x000093B4; // type:function size:0x78 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x10 data:4byte +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2A4 +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0xDC data:4byte +lbl_1_data_380 = .data:0x00000380; // type:object size:0x2 data:2byte +lbl_1_data_382 = .data:0x00000382; // type:object size:0x26 data:string +lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x18 +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x18 +lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x20 +lbl_1_data_3F8 = .data:0x000003F8; // type:object size:0x10 +lbl_1_data_408 = .data:0x00000408; // type:object size:0x30 +lbl_1_data_438 = .data:0x00000438; // type:object size:0x10 +lbl_1_data_448 = .data:0x00000448; // type:object size:0x8 +lbl_1_data_450 = .data:0x00000450; // type:object size:0x38 +lbl_1_data_488 = .data:0x00000488; // type:object size:0x30 +lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0x11 data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0x11 data:string +lbl_1_data_4DA = .data:0x000004DA; // type:object size:0xE +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x270 +lbl_1_data_758 = .data:0x00000758; // type:object size:0x28 +lbl_1_data_780 = .data:0x00000780; // type:object size:0x70 +lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x40 +lbl_1_data_830 = .data:0x00000830; // type:object size:0x10 +lbl_1_data_840 = .data:0x00000840; // type:object size:0x20 +lbl_1_data_860 = .data:0x00000860; // type:object size:0x20 +lbl_1_data_880 = .data:0x00000880; // type:object size:0x20 +lbl_1_data_8A0 = .data:0x000008A0; // type:object size:0x6 data:2byte +lbl_1_data_8A6 = .data:0x000008A6; // type:object size:0x8 data:string +lbl_1_data_8AE = .data:0x000008AE; // type:object size:0xA +lbl_1_data_8B8 = .data:0x000008B8; // type:object size:0x60 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte +lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x8 +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x28 +lbl_1_bss_3A = .bss:0x0000003A; // type:object size:0x8 +lbl_1_bss_42 = .bss:0x00000042; // type:object size:0x8 +lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x8 +lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x2 data:2byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x40 +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x2 data:2byte +lbl_1_bss_9E = .bss:0x0000009E; // type:object size:0x30 +lbl_1_bss_CE = .bss:0x000000CE; // type:object size:0x12 +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x60 +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x14 +lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x10 +lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x8 +lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x2 data:2byte +lbl_1_bss_172 = .bss:0x00000172; // type:object size:0x2 data:2byte +lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x4 data:4byte +lbl_1_bss_178 = .bss:0x00000178; // type:object size:0x4 data:4byte +lbl_1_bss_17C = .bss:0x0000017C; // type:object size:0x2 data:2byte +lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x4 data:4byte +lbl_1_bss_184 = .bss:0x00000184; // type:object size:0xC data:4byte +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:4byte +lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x1680 +lbl_1_bss_1814 = .bss:0x00001814; // type:object size:0x14 +lbl_1_bss_1828 = .bss:0x00001828; // type:object size:0x168 data:2byte +lbl_1_bss_1990 = .bss:0x00001990; // type:object size:0x20 +lbl_1_bss_19B0 = .bss:0x000019B0; // type:object size:0x8 +lbl_1_bss_19B8 = .bss:0x000019B8; // type:object size:0x28 +lbl_1_bss_19E0 = .bss:0x000019E0; // type:object size:0x8 +lbl_1_bss_19E8 = .bss:0x000019E8; // type:object size:0x8 +lbl_1_bss_19F0 = .bss:0x000019F0; // type:object size:0x2A +lbl_1_bss_1A1A = .bss:0x00001A1A; // type:object size:0x42 data:2byte +lbl_1_bss_1A5C = .bss:0x00001A5C; // type:object size:0x40 data:2byte +lbl_1_bss_1A9C = .bss:0x00001A9C; // type:object size:0x40 data:2byte diff --git a/config/GMPP01_00/rels/safDll/splits.txt b/config/GMPP01_00/rels/safDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/safDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/safDll/symbols.txt b/config/GMPP01_00/rels/safDll/symbols.txt new file mode 100644 index 00000000..11ae3d8d --- /dev/null +++ b/config/GMPP01_00/rels/safDll/symbols.txt @@ -0,0 +1,13 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4 +fn_1_4 = .text:0x00000004; // type:function size:0x284 +fn_1_288 = .text:0x00000288; // type:function size:0x124 +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_data_4 = .data:0x00000004; // type:object size:0xE data:string +lbl_1_data_12 = .data:0x00000012; // type:object size:0xB data:string +lbl_1_data_1D = .data:0x0000001D; // type:object size:0xE data:string +lbl_1_data_2B = .data:0x0000002B; // type:object size:0xE data:string diff --git a/config/GMPP01_00/rels/selmenuDll/splits.txt b/config/GMPP01_00/rels/selmenuDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/selmenuDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/selmenuDll/symbols.txt b/config/GMPP01_00/rels/selmenuDll/symbols.txt new file mode 100644 index 00000000..d5cd5a48 --- /dev/null +++ b/config/GMPP01_00/rels/selmenuDll/symbols.txt @@ -0,0 +1,201 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x4B8 +fn_1_558 = .text:0x00000558; // type:function size:0x60 +fn_1_5B8 = .text:0x000005B8; // type:function size:0x324 +fn_1_8DC = .text:0x000008DC; // type:function size:0x170 +fn_1_A4C = .text:0x00000A4C; // type:function size:0x180 +fn_1_BCC = .text:0x00000BCC; // type:function size:0x88 +fn_1_C54 = .text:0x00000C54; // type:function size:0x474 +fn_1_10C8 = .text:0x000010C8; // type:function size:0xA78 +fn_1_1B40 = .text:0x00001B40; // type:function size:0x334 +fn_1_1E74 = .text:0x00001E74; // type:function size:0x110 +fn_1_1F84 = .text:0x00001F84; // type:function size:0x50 +fn_1_1FD4 = .text:0x00001FD4; // type:function size:0x10C +fn_1_20E0 = .text:0x000020E0; // type:function size:0x1F8 +fn_1_22D8 = .text:0x000022D8; // type:function size:0xD6C +fn_1_3044 = .text:0x00003044; // type:function size:0x2FC +fn_1_3340 = .text:0x00003340; // type:function size:0x804 +fn_1_3B44 = .text:0x00003B44; // type:function size:0x40 +fn_1_3B84 = .text:0x00003B84; // type:function size:0x968 +fn_1_44EC = .text:0x000044EC; // type:function size:0x20 +fn_1_450C = .text:0x0000450C; // type:function size:0x4 +fn_1_4510 = .text:0x00004510; // type:function size:0x64 +fn_1_4574 = .text:0x00004574; // type:function size:0x854 +fn_1_4DC8 = .text:0x00004DC8; // type:function size:0x3D0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x8 data:4byte +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x10 data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x8 data:4byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x6 data:string +lbl_1_data_6 = .data:0x00000006; // type:object size:0x6 data:string +lbl_1_data_C = .data:0x0000000C; // type:object size:0x6 data:string +lbl_1_data_12 = .data:0x00000012; // type:object size:0x6 data:string +lbl_1_data_18 = .data:0x00000018; // type:object size:0x6 data:string +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x7 data:string +lbl_1_data_25 = .data:0x00000025; // type:object size:0x6 data:string +lbl_1_data_2B = .data:0x0000002B; // type:object size:0x9 +lbl_1_data_34 = .data:0x00000034; // type:object size:0x20 +lbl_1_data_54 = .data:0x00000054; // type:object size:0x14 data:string +lbl_1_data_68 = .data:0x00000068; // type:object size:0x16 data:string +lbl_1_data_7E = .data:0x0000007E; // type:object size:0x11 data:string +lbl_1_data_8F = .data:0x0000008F; // type:object size:0x12 data:string +lbl_1_data_A1 = .data:0x000000A1; // type:object size:0x10 data:string +lbl_1_data_B1 = .data:0x000000B1; // type:object size:0xD data:string +lbl_1_data_BE = .data:0x000000BE; // type:object size:0x11 data:string +lbl_1_data_CF = .data:0x000000CF; // type:object size:0xD data:string +lbl_1_data_DC = .data:0x000000DC; // type:object size:0xE data:string +lbl_1_data_EA = .data:0x000000EA; // type:object size:0x16 data:string +lbl_1_data_100 = .data:0x00000100; // type:object size:0x13 data:string +lbl_1_data_113 = .data:0x00000113; // type:object size:0xF data:string +lbl_1_data_122 = .data:0x00000122; // type:object size:0x14 data:string +lbl_1_data_136 = .data:0x00000136; // type:object size:0x11 data:string +lbl_1_data_147 = .data:0x00000147; // type:object size:0x13 data:string +lbl_1_data_15A = .data:0x0000015A; // type:object size:0x10 data:string +lbl_1_data_16A = .data:0x0000016A; // type:object size:0x11 data:string +lbl_1_data_17B = .data:0x0000017B; // type:object size:0x15 data:string +lbl_1_data_190 = .data:0x00000190; // type:object size:0x17 data:string +lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x11 data:string +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x10 data:string +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x10 data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x12 data:string +lbl_1_data_1EA = .data:0x000001EA; // type:object size:0x10 data:string +lbl_1_data_1FA = .data:0x000001FA; // type:object size:0xF data:string +lbl_1_data_209 = .data:0x00000209; // type:object size:0x15 data:string +lbl_1_data_21E = .data:0x0000021E; // type:object size:0xE data:string +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x13 data:string +lbl_1_data_23F = .data:0x0000023F; // type:object size:0x14 data:string +lbl_1_data_253 = .data:0x00000253; // type:object size:0x13 data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x11 data:string +lbl_1_data_277 = .data:0x00000277; // type:object size:0x11 data:string +lbl_1_data_288 = .data:0x00000288; // type:object size:0x11 data:string +lbl_1_data_299 = .data:0x00000299; // type:object size:0x10 data:string +lbl_1_data_2A9 = .data:0x000002A9; // type:object size:0x10 data:string +lbl_1_data_2B9 = .data:0x000002B9; // type:object size:0x1B data:string +lbl_1_data_2D4 = .data:0x000002D4; // type:object size:0x11 data:string +lbl_1_data_2E5 = .data:0x000002E5; // type:object size:0x1D data:string +lbl_1_data_302 = .data:0x00000302; // type:object size:0x17 data:string +lbl_1_data_319 = .data:0x00000319; // type:object size:0x16 data:string +lbl_1_data_32F = .data:0x0000032F; // type:object size:0x15 data:string +lbl_1_data_344 = .data:0x00000344; // type:object size:0x13 data:string +lbl_1_data_357 = .data:0x00000357; // type:object size:0xE data:string +lbl_1_data_365 = .data:0x00000365; // type:object size:0x14 data:string +lbl_1_data_379 = .data:0x00000379; // type:object size:0x13 data:string +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x12 data:string +lbl_1_data_39E = .data:0x0000039E; // type:object size:0xD data:string +lbl_1_data_3AB = .data:0x000003AB; // type:object size:0xD data:string +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x17 data:string +lbl_1_data_3CF = .data:0x000003CF; // type:object size:0xE data:string +lbl_1_data_3DD = .data:0x000003DD; // type:object size:0xB data:string +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x11 data:string +lbl_1_data_3F9 = .data:0x000003F9; // type:object size:0x11 data:string +lbl_1_data_40A = .data:0x0000040A; // type:object size:0xA data:string +lbl_1_data_414 = .data:0x00000414; // type:object size:0x13 data:string +lbl_1_data_427 = .data:0x00000427; // type:object size:0xD data:string +lbl_1_data_434 = .data:0x00000434; // type:object size:0x5 data:string +lbl_1_data_439 = .data:0x00000439; // type:object size:0x15 data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x5 data:string +lbl_1_data_453 = .data:0x00000453; // type:object size:0xF data:string +lbl_1_data_462 = .data:0x00000462; // type:object size:0xE data:string +lbl_1_data_470 = .data:0x00000470; // type:object size:0xE data:string +lbl_1_data_47E = .data:0x0000047E; // type:object size:0xE data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0xE data:string +lbl_1_data_49A = .data:0x0000049A; // type:object size:0xE data:string +lbl_1_data_4A8 = .data:0x000004A8; // type:object size:0xE data:string +lbl_1_data_4B6 = .data:0x000004B6; // type:object size:0xE data:string +lbl_1_data_4C4 = .data:0x000004C4; // type:object size:0xE data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0xA data:string +lbl_1_data_4DC = .data:0x000004DC; // type:object size:0x10 +lbl_1_data_4EC = .data:0x000004EC; // type:object size:0x348 +lbl_1_data_834 = .data:0x00000834; // type:object size:0x28 +lbl_1_data_85C = .data:0x0000085C; // type:object size:0x12 data:string +lbl_1_data_86E = .data:0x0000086E; // type:object size:0x12 data:string +lbl_1_data_880 = .data:0x00000880; // type:object size:0x12 data:string +lbl_1_data_892 = .data:0x00000892; // type:object size:0x12 data:string +lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x12 data:string +lbl_1_data_8B6 = .data:0x000008B6; // type:object size:0x12 data:string +lbl_1_data_8C8 = .data:0x000008C8; // type:object size:0x11 data:string +lbl_1_data_8D9 = .data:0x000008D9; // type:object size:0x23 +lbl_1_data_8FC = .data:0x000008FC; // type:object size:0x2 data:2byte +lbl_1_data_8FE = .data:0x000008FE; // type:object size:0x8 +lbl_1_data_906 = .data:0x00000906; // type:object size:0x12 +lbl_1_data_918 = .data:0x00000918; // type:object size:0x4 data:4byte +lbl_1_data_91C = .data:0x0000091C; // type:object size:0x12 data:string +lbl_1_data_92E = .data:0x0000092E; // type:object size:0x24 data:string +lbl_1_data_952 = .data:0x00000952; // type:object size:0xB data:string +lbl_1_data_95D = .data:0x0000095D; // type:object size:0x3 data:string +lbl_1_data_960 = .data:0x00000960; // type:object size:0x10 +lbl_1_data_970 = .data:0x00000970; // type:object size:0x20 +lbl_1_data_990 = .data:0x00000990; // type:object size:0x20 +lbl_1_data_9B0 = .data:0x000009B0; // type:object size:0xD data:string +lbl_1_data_9BD = .data:0x000009BD; // type:object size:0x5 +lbl_1_data_9C2 = .data:0x000009C2; // type:object size:0x5 +lbl_1_data_9C7 = .data:0x000009C7; // type:object size:0x6 +lbl_1_data_9CD = .data:0x000009CD; // type:object size:0x9 data:string +lbl_1_data_9D6 = .data:0x000009D6; // type:object size:0xA data:string +lbl_1_data_9E0 = .data:0x000009E0; // type:object size:0xA data:string +lbl_1_data_9EA = .data:0x000009EA; // type:object size:0x9 data:string +lbl_1_data_9F3 = .data:0x000009F3; // type:object size:0x9 data:string +lbl_1_data_9FC = .data:0x000009FC; // type:object size:0xC +lbl_1_data_A08 = .data:0x00000A08; // type:object size:0x14 data:4byte +lbl_1_data_A1C = .data:0x00000A1C; // type:object size:0x6 data:string +lbl_1_data_A22 = .data:0x00000A22; // type:object size:0x4 data:string +lbl_1_data_A26 = .data:0x00000A26; // type:object size:0x5 data:string +lbl_1_data_A2B = .data:0x00000A2B; // type:object size:0x7 data:string +lbl_1_data_A32 = .data:0x00000A32; // type:object size:0x5 data:string +lbl_1_data_A37 = .data:0x00000A37; // type:object size:0x9 data:string +jumptable_1_data_A40 = .data:0x00000A40; // type:object size:0x20 scope:local +jumptable_1_data_A60 = .data:0x00000A60; // type:object size:0x20 scope:local +lbl_1_data_A80 = .data:0x00000A80; // type:object size:0x4 data:string +lbl_1_data_A84 = .data:0x00000A84; // type:object size:0x4 data:string +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x10 data:string +lbl_1_data_A98 = .data:0x00000A98; // type:object size:0x15 data:string +lbl_1_data_AAD = .data:0x00000AAD; // type:object size:0x15 data:string +lbl_1_data_AC2 = .data:0x00000AC2; // type:object size:0x15 data:string +lbl_1_data_AD7 = .data:0x00000AD7; // type:object size:0x15 data:string +lbl_1_data_AEC = .data:0x00000AEC; // type:object size:0x15 data:string +lbl_1_data_B01 = .data:0x00000B01; // type:object size:0x15 data:string +lbl_1_data_B16 = .data:0x00000B16; // type:object size:0x15 data:string +lbl_1_data_B2B = .data:0x00000B2B; // type:object size:0x14 data:string +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x2 data:2byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte +lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x2 data:2byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x10 +lbl_1_bss_1E = .bss:0x0000001E; // type:object size:0x8 +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x10 +lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x8 +lbl_1_bss_3E = .bss:0x0000003E; // type:object size:0x8 +lbl_1_bss_46 = .bss:0x00000046; // type:object size:0x8 +lbl_1_bss_4E = .bss:0x0000004E; // type:object size:0x2 data:2byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x2 data:2byte +lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x2 data:2byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x2 data:2byte +lbl_1_bss_56 = .bss:0x00000056; // type:object size:0x2A data:2byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0xE +lbl_1_bss_96 = .bss:0x00000096; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/staffDll/splits.txt b/config/GMPP01_00/rels/staffDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/staffDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/staffDll/symbols.txt b/config/GMPP01_00/rels/staffDll/symbols.txt new file mode 100644 index 00000000..15413e32 --- /dev/null +++ b/config/GMPP01_00/rels/staffDll/symbols.txt @@ -0,0 +1,55 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x218 +fn_1_2B8 = .text:0x000002B8; // type:function size:0x60 +fn_1_318 = .text:0x00000318; // type:function size:0x444 +fn_1_75C = .text:0x0000075C; // type:function size:0x3AC +fn_1_B08 = .text:0x00000B08; // type:function size:0x12C +fn_1_C34 = .text:0x00000C34; // type:function size:0x1C4 +fn_1_DF8 = .text:0x00000DF8; // type:function size:0x500 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1308 +lbl_1_data_1308 = .data:0x00001308; // type:object size:0xC data:float +lbl_1_data_1314 = .data:0x00001314; // type:object size:0x14 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x6 data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x34 data:2byte diff --git a/config/GMPP01_00/rels/subchrselDll/splits.txt b/config/GMPP01_00/rels/subchrselDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/subchrselDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/subchrselDll/symbols.txt b/config/GMPP01_00/rels/subchrselDll/symbols.txt new file mode 100644 index 00000000..22a9a485 --- /dev/null +++ b/config/GMPP01_00/rels/subchrselDll/symbols.txt @@ -0,0 +1,33 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x6C +fn_1_10C = .text:0x0000010C; // type:function size:0x58 +fn_1_164 = .text:0x00000164; // type:function size:0x654 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 data:string +lbl_1_data_8 = .data:0x00000008; // type:object size:0x8 data:string +lbl_1_data_10 = .data:0x00000010; // type:object size:0x8 data:string +lbl_1_data_18 = .data:0x00000018; // type:object size:0x8 data:string +lbl_1_data_20 = .data:0x00000020; // type:object size:0x10 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x6 data:string +lbl_1_data_36 = .data:0x00000036; // type:object size:0x6 data:string +lbl_1_data_3C = .data:0x0000003C; // type:object size:0x6 data:string +lbl_1_data_42 = .data:0x00000042; // type:object size:0x6 data:string +lbl_1_data_48 = .data:0x00000048; // type:object size:0x6 data:string +lbl_1_data_4E = .data:0x0000004E; // type:object size:0x7 data:string +lbl_1_data_55 = .data:0x00000055; // type:object size:0x6 data:string +lbl_1_data_5B = .data:0x0000005B; // type:object size:0x9 +lbl_1_data_64 = .data:0x00000064; // type:object size:0x20 +lbl_1_data_84 = .data:0x00000084; // type:object size:0x1 +lbl_1_data_85 = .data:0x00000085; // type:object size:0x6 data:string +lbl_1_data_8B = .data:0x0000008B; // type:object size:0x8 data:string +lbl_1_data_93 = .data:0x00000093; // type:object size:0x7 data:string +lbl_1_data_9A = .data:0x0000009A; // type:object size:0x7 data:string +lbl_1_data_A1 = .data:0x000000A1; // type:object size:0x6 data:string +lbl_1_data_A7 = .data:0x000000A7; // type:object size:0x9 +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x1C +lbl_1_data_CC = .data:0x000000CC; // type:object size:0x15 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte diff --git a/config/GMPP01_00/rels/w01Dll/splits.txt b/config/GMPP01_00/rels/w01Dll/splits.txt new file mode 100644 index 00000000..7baca9d9 --- /dev/null +++ b/config/GMPP01_00/rels/w01Dll/splits.txt @@ -0,0 +1,29 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w01Dll/main.c: + .text start:0x000000E0 end:0x00009D00 + .rodata start:0x00000010 end:0x00000198 + .data start:0x00000000 end:0x00000658 + .bss start:0x00000000 end:0x00000708 + +REL/w01Dll/mg_coin.c: + .text start:0x00009D00 end:0x0000D740 + .rodata start:0x00000198 end:0x000002C8 + .data start:0x00000658 end:0x00000F08 + .bss start:0x00000708 end:0x000007A0 + +REL/w01Dll/mg_item.c: + .text start:0x0000D740 end:0x000119F0 + .rodata start:0x000002C8 end:0x000003C4 + .data start:0x00000F08 end:0x00000FAC + .bss start:0x000007A0 end:0x0000081C diff --git a/config/GMPP01_00/rels/w01Dll/symbols.txt b/config/GMPP01_00/rels/w01Dll/symbols.txt new file mode 100644 index 00000000..94ae2e2e --- /dev/null +++ b/config/GMPP01_00/rels/w01Dll/symbols.txt @@ -0,0 +1,469 @@ +ObjectSetup = .text:0x00000000; // type:function size:0x30 scope:local +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +BoardCreate = .text:0x000000E0; // type:function size:0x4BC +BoardDestroy = .text:0x0000059C; // type:function size:0x194 +fn_1_730 = .text:0x00000730; // type:function size:0x44 +fn_1_774 = .text:0x00000774; // type:function size:0x4 +fn_1_778 = .text:0x00000778; // type:function size:0x9C +fn_1_814 = .text:0x00000814; // type:function size:0x1D4 +fn_1_9E8 = .text:0x000009E8; // type:function size:0x318 +fn_1_D00 = .text:0x00000D00; // type:function size:0x4 +fn_1_D04 = .text:0x00000D04; // type:function size:0x550 +fn_1_1254 = .text:0x00001254; // type:function size:0x38 +fn_1_128C = .text:0x0000128C; // type:function size:0x80 +fn_1_130C = .text:0x0000130C; // type:function size:0x270 +fn_1_157C = .text:0x0000157C; // type:function size:0xF4 +fn_1_1670 = .text:0x00001670; // type:function size:0x90 +fn_1_1700 = .text:0x00001700; // type:function size:0x290 +fn_1_1990 = .text:0x00001990; // type:function size:0x148 +fn_1_1AD8 = .text:0x00001AD8; // type:function size:0x64 +fn_1_1B3C = .text:0x00001B3C; // type:function size:0x3A8 +fn_1_1EE4 = .text:0x00001EE4; // type:function size:0x48 +fn_1_1F2C = .text:0x00001F2C; // type:function size:0x78 +fn_1_1FA4 = .text:0x00001FA4; // type:function size:0x580 +fn_1_2524 = .text:0x00002524; // type:function size:0x248 +fn_1_276C = .text:0x0000276C; // type:function size:0x7AC +fn_1_2F18 = .text:0x00002F18; // type:function size:0x438 +fn_1_3350 = .text:0x00003350; // type:function size:0x1C4 +fn_1_3514 = .text:0x00003514; // type:function size:0xA0 +fn_1_35B4 = .text:0x000035B4; // type:function size:0x70 +fn_1_3624 = .text:0x00003624; // type:function size:0xFD0 +fn_1_45F4 = .text:0x000045F4; // type:function size:0x180 +fn_1_4774 = .text:0x00004774; // type:function size:0xF0 +fn_1_4864 = .text:0x00004864; // type:function size:0x50 +fn_1_48B4 = .text:0x000048B4; // type:function size:0x560 +fn_1_4E14 = .text:0x00004E14; // type:function size:0x194 +fn_1_4FA8 = .text:0x00004FA8; // type:function size:0x30 +fn_1_4FD8 = .text:0x00004FD8; // type:function size:0xFC +fn_1_50D4 = .text:0x000050D4; // type:function size:0x2E4 +fn_1_53B8 = .text:0x000053B8; // type:function size:0x84 +fn_1_543C = .text:0x0000543C; // type:function size:0x258 +fn_1_5694 = .text:0x00005694; // type:function size:0x1D8 +fn_1_586C = .text:0x0000586C; // type:function size:0xC0 +fn_1_592C = .text:0x0000592C; // type:function size:0x200 +fn_1_5B2C = .text:0x00005B2C; // type:function size:0x14 +fn_1_5B40 = .text:0x00005B40; // type:function size:0x190 +fn_1_5CD0 = .text:0x00005CD0; // type:function size:0x38 +fn_1_5D08 = .text:0x00005D08; // type:function size:0x390 +fn_1_6098 = .text:0x00006098; // type:function size:0xFC +fn_1_6194 = .text:0x00006194; // type:function size:0x25C +fn_1_63F0 = .text:0x000063F0; // type:function size:0x624 +fn_1_6A14 = .text:0x00006A14; // type:function size:0x1AC +fn_1_6BC0 = .text:0x00006BC0; // type:function size:0x3F4 +fn_1_6FB4 = .text:0x00006FB4; // type:function size:0x574 +fn_1_7528 = .text:0x00007528; // type:function size:0x2C4 +fn_1_77EC = .text:0x000077EC; // type:function size:0xA8 +fn_1_7894 = .text:0x00007894; // type:function size:0x1D0 +fn_1_7A64 = .text:0x00007A64; // type:function size:0xAC8 +fn_1_852C = .text:0x0000852C; // type:function size:0x280 +fn_1_87AC = .text:0x000087AC; // type:function size:0x34 +fn_1_87E0 = .text:0x000087E0; // type:function size:0x1A8 +fn_1_8988 = .text:0x00008988; // type:function size:0xC8 +fn_1_8A50 = .text:0x00008A50; // type:function size:0x11C +fn_1_8B6C = .text:0x00008B6C; // type:function size:0x270 +fn_1_8DDC = .text:0x00008DDC; // type:function size:0x3B0 +fn_1_918C = .text:0x0000918C; // type:function size:0xF0 +fn_1_927C = .text:0x0000927C; // type:function size:0xB0 +fn_1_932C = .text:0x0000932C; // type:function size:0x17C +fn_1_94A8 = .text:0x000094A8; // type:function size:0x14C +fn_1_95F4 = .text:0x000095F4; // type:function size:0x200 +fn_1_97F4 = .text:0x000097F4; // type:function size:0xF8 +fn_1_98EC = .text:0x000098EC; // type:function size:0x34 +fn_1_9920 = .text:0x00009920; // type:function size:0x104 +fn_1_9A24 = .text:0x00009A24; // type:function size:0x198 +fn_1_9BBC = .text:0x00009BBC; // type:function size:0x144 +fn_1_9D00 = .text:0x00009D00; // type:function size:0xD8 +fn_1_9DD8 = .text:0x00009DD8; // type:function size:0x6E0 +fn_1_A4B8 = .text:0x0000A4B8; // type:function size:0x9C +fn_1_A554 = .text:0x0000A554; // type:function size:0xA8 +fn_1_A5FC = .text:0x0000A5FC; // type:function size:0xE4 +fn_1_A6E0 = .text:0x0000A6E0; // type:function size:0x938 +fn_1_B018 = .text:0x0000B018; // type:function size:0x70 +fn_1_B088 = .text:0x0000B088; // type:function size:0x144 +fn_1_B1CC = .text:0x0000B1CC; // type:function size:0x1EC +fn_1_B3B8 = .text:0x0000B3B8; // type:function size:0xC0 +fn_1_B478 = .text:0x0000B478; // type:function size:0x680 +fn_1_BAF8 = .text:0x0000BAF8; // type:function size:0x1E4 +fn_1_BCDC = .text:0x0000BCDC; // type:function size:0x224 +fn_1_BF00 = .text:0x0000BF00; // type:function size:0x68 +fn_1_BF68 = .text:0x0000BF68; // type:function size:0x98 +fn_1_C000 = .text:0x0000C000; // type:function size:0xFC +fn_1_C0FC = .text:0x0000C0FC; // type:function size:0x160 +fn_1_C25C = .text:0x0000C25C; // type:function size:0x5E8 +fn_1_C844 = .text:0x0000C844; // type:function size:0x50 +fn_1_C894 = .text:0x0000C894; // type:function size:0xB8 +fn_1_C94C = .text:0x0000C94C; // type:function size:0x4C +fn_1_C998 = .text:0x0000C998; // type:function size:0x1AC +fn_1_CB44 = .text:0x0000CB44; // type:function size:0x380 +fn_1_CEC4 = .text:0x0000CEC4; // type:function size:0x170 +fn_1_D034 = .text:0x0000D034; // type:function size:0x48 +fn_1_D07C = .text:0x0000D07C; // type:function size:0x98 +fn_1_D114 = .text:0x0000D114; // type:function size:0x62C +fn_1_D740 = .text:0x0000D740; // type:function size:0x644 +fn_1_DD84 = .text:0x0000DD84; // type:function size:0x110 +fn_1_DE94 = .text:0x0000DE94; // type:function size:0x26C +fn_1_E100 = .text:0x0000E100; // type:function size:0x54 +fn_1_E154 = .text:0x0000E154; // type:function size:0x164 +fn_1_E2B8 = .text:0x0000E2B8; // type:function size:0x194 +fn_1_E44C = .text:0x0000E44C; // type:function size:0x4C8 +fn_1_E914 = .text:0x0000E914; // type:function size:0x3C0 +fn_1_ECD4 = .text:0x0000ECD4; // type:function size:0x1CC +fn_1_EEA0 = .text:0x0000EEA0; // type:function size:0x38 +fn_1_EED8 = .text:0x0000EED8; // type:function size:0x1C4 +fn_1_F09C = .text:0x0000F09C; // type:function size:0x2AC +fn_1_F348 = .text:0x0000F348; // type:function size:0xB0 +fn_1_F3F8 = .text:0x0000F3F8; // type:function size:0x2F0 +fn_1_F6E8 = .text:0x0000F6E8; // type:function size:0x1A8 +fn_1_F890 = .text:0x0000F890; // type:function size:0x18C +fn_1_FA1C = .text:0x0000FA1C; // type:function size:0xA0 +fn_1_FABC = .text:0x0000FABC; // type:function size:0x9C +fn_1_FB58 = .text:0x0000FB58; // type:function size:0xE4 +fn_1_FC3C = .text:0x0000FC3C; // type:function size:0xB0 +fn_1_FCEC = .text:0x0000FCEC; // type:function size:0x50 +fn_1_FD3C = .text:0x0000FD3C; // type:function size:0x108 +fn_1_FE44 = .text:0x0000FE44; // type:function size:0x8C +fn_1_FED0 = .text:0x0000FED0; // type:function size:0x14C +fn_1_1001C = .text:0x0001001C; // type:function size:0x19C +fn_1_101B8 = .text:0x000101B8; // type:function size:0x4AC +fn_1_10664 = .text:0x00010664; // type:function size:0x1BC +fn_1_10820 = .text:0x00010820; // type:function size:0x2C8 +fn_1_10AE8 = .text:0x00010AE8; // type:function size:0xC8 +fn_1_10BB0 = .text:0x00010BB0; // type:function size:0x140 +fn_1_10CF0 = .text:0x00010CF0; // type:function size:0x1C8 +fn_1_10EB8 = .text:0x00010EB8; // type:function size:0x1AC +fn_1_11064 = .text:0x00011064; // type:function size:0x420 +fn_1_11484 = .text:0x00011484; // type:function size:0x56C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x10 data:4byte +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x8 data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x8 data:4byte +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x2 data:2byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x2 data:2byte +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0xC data:2byte +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x528 +lbl_1_data_528 = .data:0x00000528; // type:object size:0x2 data:2byte +lbl_1_data_52A = .data:0x0000052A; // type:object size:0x2 data:2byte +lbl_1_data_52C = .data:0x0000052C; // type:object size:0x2 data:2byte +lbl_1_data_52E = .data:0x0000052E; // type:object size:0x2 data:2byte +lbl_1_data_530 = .data:0x00000530; // type:object size:0x2 data:2byte +lbl_1_data_534 = .data:0x00000534; // type:object size:0x8 +lbl_1_data_53C = .data:0x0000053C; // type:object size:0x8 +lbl_1_data_544 = .data:0x00000544; // type:object size:0x14 data:string +lbl_1_data_558 = .data:0x00000558; // type:object size:0x14 data:string +lbl_1_data_56C = .data:0x0000056C; // type:object size:0x14 +lbl_1_data_580 = .data:0x00000580; // type:object size:0x2 data:2byte +lbl_1_data_582 = .data:0x00000582; // type:object size:0x12 +lbl_1_data_594 = .data:0x00000594; // type:object size:0x40 +lbl_1_data_5D4 = .data:0x000005D4; // type:object size:0x4 data:4byte +lbl_1_data_5D8 = .data:0x000005D8; // type:object size:0x4 data:4byte +lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x10 +lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x7 data:string +lbl_1_data_5F3 = .data:0x000005F3; // type:object size:0x7 data:string +lbl_1_data_5FA = .data:0x000005FA; // type:object size:0xA +lbl_1_data_604 = .data:0x00000604; // type:object size:0xC +lbl_1_data_610 = .data:0x00000610; // type:object size:0x10 +lbl_1_data_620 = .data:0x00000620; // type:object size:0x5 data:string +lbl_1_data_625 = .data:0x00000625; // type:object size:0x5 data:string +lbl_1_data_62A = .data:0x0000062A; // type:object size:0x5 data:string +lbl_1_data_62F = .data:0x0000062F; // type:object size:0x4 data:string +lbl_1_data_633 = .data:0x00000633; // type:object size:0x1 data:byte +lbl_1_data_634 = .data:0x00000634; // type:object size:0x24 +lbl_1_data_658 = .data:0x00000658; // type:object size:0x24 +lbl_1_data_67C = .data:0x0000067C; // type:object size:0x14 +lbl_1_data_690 = .data:0x00000690; // type:object size:0x2D0 +lbl_1_data_960 = .data:0x00000960; // type:object size:0x2D0 +lbl_1_data_C30 = .data:0x00000C30; // type:object size:0x2D0 +lbl_1_data_F00 = .data:0x00000F00; // type:object size:0x8 +lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x38 +lbl_1_data_F40 = .data:0x00000F40; // type:object size:0x20 +lbl_1_data_F60 = .data:0x00000F60; // type:object size:0x20 +lbl_1_data_F80 = .data:0x00000F80; // type:object size:0x7 data:string +lbl_1_data_F87 = .data:0x00000F87; // type:object size:0x5 data:string +lbl_1_data_F8C = .data:0x00000F8C; // type:object size:0x5 data:string +lbl_1_data_F91 = .data:0x00000F91; // type:object size:0x5 data:string +lbl_1_data_F96 = .data:0x00000F96; // type:object size:0x6 +lbl_1_data_F9C = .data:0x00000F9C; // type:object size:0x10 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 data:byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x1 data:byte +lbl_1_bss_29 = .bss:0x00000029; // type:object size:0x1 data:byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x5A0 +lbl_1_bss_5CC = .bss:0x000005CC; // type:object size:0x2 data:2byte +lbl_1_bss_5D0 = .bss:0x000005D0; // type:object size:0x30 +lbl_1_bss_600 = .bss:0x00000600; // type:object size:0x18 +lbl_1_bss_618 = .bss:0x00000618; // type:object size:0xC data:4byte +lbl_1_bss_624 = .bss:0x00000624; // type:object size:0xC data:float +lbl_1_bss_630 = .bss:0x00000630; // type:object size:0xC data:4byte +lbl_1_bss_63C = .bss:0x0000063C; // type:object size:0x4 data:float +lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x4 data:float +lbl_1_bss_644 = .bss:0x00000644; // type:object size:0x4 data:float +lbl_1_bss_648 = .bss:0x00000648; // type:object size:0xC data:4byte +lbl_1_bss_654 = .bss:0x00000654; // type:object size:0xC data:float +lbl_1_bss_660 = .bss:0x00000660; // type:object size:0xC data:float +lbl_1_bss_66C = .bss:0x0000066C; // type:object size:0x4 data:float +lbl_1_bss_670 = .bss:0x00000670; // type:object size:0x4 data:float +lbl_1_bss_674 = .bss:0x00000674; // type:object size:0x4 data:float +lbl_1_bss_678 = .bss:0x00000678; // type:object size:0x30 +lbl_1_bss_6A8 = .bss:0x000006A8; // type:object size:0x4 data:float +lbl_1_bss_6AC = .bss:0x000006AC; // type:object size:0x2 data:2byte +lbl_1_bss_6AE = .bss:0x000006AE; // type:object size:0x2 data:2byte +lbl_1_bss_6B0 = .bss:0x000006B0; // type:object size:0x1 data:byte +lbl_1_bss_6B1 = .bss:0x000006B1; // type:object size:0x1 data:byte +lbl_1_bss_6B2 = .bss:0x000006B2; // type:object size:0x1 data:byte +lbl_1_bss_6B3 = .bss:0x000006B3; // type:object size:0x1 data:byte +lbl_1_bss_6B4 = .bss:0x000006B4; // type:object size:0x1 data:byte +lbl_1_bss_6B6 = .bss:0x000006B6; // type:object size:0xA data:2byte +lbl_1_bss_6C0 = .bss:0x000006C0; // type:object size:0x4 data:4byte +lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x44 data:2byte +lbl_1_bss_708 = .bss:0x00000708; // type:object size:0x2 data:2byte +lbl_1_bss_70C = .bss:0x0000070C; // type:object size:0x4 data:4byte +lbl_1_bss_710 = .bss:0x00000710; // type:object size:0x4 data:4byte +lbl_1_bss_714 = .bss:0x00000714; // type:object size:0xC +lbl_1_bss_720 = .bss:0x00000720; // type:object size:0x4 data:4byte +lbl_1_bss_724 = .bss:0x00000724; // type:object size:0x4 data:4byte +lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x2 data:2byte +lbl_1_bss_72A = .bss:0x0000072A; // type:object size:0x2 data:2byte +lbl_1_bss_72C = .bss:0x0000072C; // type:object size:0x4 data:4byte +lbl_1_bss_730 = .bss:0x00000730; // type:object size:0x4 data:4byte +lbl_1_bss_734 = .bss:0x00000734; // type:object size:0x4 data:4byte +lbl_1_bss_738 = .bss:0x00000738; // type:object size:0xC data:float +lbl_1_bss_744 = .bss:0x00000744; // type:object size:0x2 data:2byte +lbl_1_bss_748 = .bss:0x00000748; // type:object size:0x4 data:4byte +lbl_1_bss_74C = .bss:0x0000074C; // type:object size:0x4 data:4byte +lbl_1_bss_750 = .bss:0x00000750; // type:object size:0x2 data:2byte +lbl_1_bss_754 = .bss:0x00000754; // type:object size:0x4 data:float +lbl_1_bss_758 = .bss:0x00000758; // type:object size:0x4 data:4byte +lbl_1_bss_75C = .bss:0x0000075C; // type:object size:0x4 data:4byte +lbl_1_bss_760 = .bss:0x00000760; // type:object size:0x28 +lbl_1_bss_788 = .bss:0x00000788; // type:object size:0x2 data:2byte +lbl_1_bss_78A = .bss:0x0000078A; // type:object size:0x6 data:2byte +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x6 data:2byte +lbl_1_bss_796 = .bss:0x00000796; // type:object size:0x2 data:2byte +lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x4 data:4byte +lbl_1_bss_79C = .bss:0x0000079C; // type:object size:0x4 data:4byte +lbl_1_bss_7A0 = .bss:0x000007A0; // type:object size:0x4 data:4byte +lbl_1_bss_7A4 = .bss:0x000007A4; // type:object size:0x4 data:4byte +lbl_1_bss_7A8 = .bss:0x000007A8; // type:object size:0x2 data:2byte +lbl_1_bss_7AA = .bss:0x000007AA; // type:object size:0x2 data:2byte +lbl_1_bss_7AC = .bss:0x000007AC; // type:object size:0x8 data:4byte +lbl_1_bss_7B4 = .bss:0x000007B4; // type:object size:0x2 data:2byte +lbl_1_bss_7B8 = .bss:0x000007B8; // type:object size:0x4 data:4byte +lbl_1_bss_7BC = .bss:0x000007BC; // type:object size:0x8 data:4byte +lbl_1_bss_7C4 = .bss:0x000007C4; // type:object size:0xC data:float +lbl_1_bss_7D0 = .bss:0x000007D0; // type:object size:0x2 data:2byte +lbl_1_bss_7D2 = .bss:0x000007D2; // type:object size:0x2 data:2byte +lbl_1_bss_7D4 = .bss:0x000007D4; // type:object size:0x2 data:2byte +lbl_1_bss_7D6 = .bss:0x000007D6; // type:object size:0x2 data:2byte +lbl_1_bss_7D8 = .bss:0x000007D8; // type:object size:0xC data:4byte +lbl_1_bss_7E4 = .bss:0x000007E4; // type:object size:0x4 data:4byte +lbl_1_bss_7E8 = .bss:0x000007E8; // type:object size:0x4 data:float +lbl_1_bss_7EC = .bss:0x000007EC; // type:object size:0x4 data:float +lbl_1_bss_7F0 = .bss:0x000007F0; // type:object size:0x4 data:4byte +lbl_1_bss_7F4 = .bss:0x000007F4; // type:object size:0x4 data:4byte +lbl_1_bss_7F8 = .bss:0x000007F8; // type:object size:0x4 data:4byte +lbl_1_bss_7FC = .bss:0x000007FC; // type:object size:0x10 data:4byte +lbl_1_bss_80C = .bss:0x0000080C; // type:object size:0xC data:float +lbl_1_bss_818 = .bss:0x00000818; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/w02Dll/splits.txt b/config/GMPP01_00/rels/w02Dll/splits.txt new file mode 100644 index 00000000..a94f9206 --- /dev/null +++ b/config/GMPP01_00/rels/w02Dll/splits.txt @@ -0,0 +1,52 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w02Dll/main.c: + .text start:0x000000E0 end:0x00001254 + .rodata start:0x00000010 end:0x00000038 + .data start:0x00000000 end:0x000002A8 + .bss start:0x00000000 end:0x00000050 + +REL/w02Dll/gendice.c: + .text start:0x00001254 end:0x00002D04 + .rodata start:0x00000038 end:0x00000108 + .data start:0x000002A8 end:0x00000360 + +REL/w02Dll/gamble.c: + .text start:0x00002D04 end:0x000039F4 + .rodata start:0x00000108 end:0x00000178 + .data start:0x00000360 end:0x00000378 + .bss start:0x00000050 end:0x00000058 + +REL/w02Dll/mg_coin.c: + .text start:0x000039F4 end:0x00005CF8 + .rodata start:0x00000178 end:0x00000218 + .data start:0x00000378 end:0x00000428 + .bss start:0x00000058 end:0x000000C8 + +REL/w02Dll/mg_item.c: + .text start:0x00005CF8 end:0x00009250 + .rodata start:0x00000218 end:0x000002F8 + .data start:0x00000428 end:0x00000490 + .bss start:0x000000C8 end:0x000001A0 + +REL/w02Dll/shuffleboard.c: + .text start:0x00009250 end:0x0000BC1C + .rodata start:0x000002F8 end:0x00000410 + .data start:0x00000490 end:0x000004D0 + .bss start:0x000001A0 end:0x00000380 + +REL/w02Dll/roulette.c: + .text start:0x0000BC1C end:0x0000E4D4 + .rodata start:0x00000410 end:0x00000538 + .data start:0x000004D0 end:0x00000524 + .bss start:0x00000380 end:0x00000390 diff --git a/config/GMPP01_00/rels/w02Dll/symbols.txt b/config/GMPP01_00/rels/w02Dll/symbols.txt new file mode 100644 index 00000000..0383d0e6 --- /dev/null +++ b/config/GMPP01_00/rels/w02Dll/symbols.txt @@ -0,0 +1,457 @@ +ObjectSetup = .text:0x00000000; // type:function size:0x30 scope:local +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +BoardCreate = .text:0x000000E0; // type:function size:0x4F4 +BoardDestroy = .text:0x000005D4; // type:function size:0x158 +fn_1_72C = .text:0x0000072C; // type:function size:0x44 +fn_1_770 = .text:0x00000770; // type:function size:0x4 +fn_1_774 = .text:0x00000774; // type:function size:0x8C +fn_1_800 = .text:0x00000800; // type:function size:0x12C +fn_1_92C = .text:0x0000092C; // type:function size:0x24 +fn_1_950 = .text:0x00000950; // type:function size:0x4 +fn_1_954 = .text:0x00000954; // type:function size:0x3C +fn_1_990 = .text:0x00000990; // type:function size:0x2C0 +fn_1_C50 = .text:0x00000C50; // type:function size:0x420 +fn_1_1070 = .text:0x00001070; // type:function size:0x38 +fn_1_10A8 = .text:0x000010A8; // type:function size:0x80 +fn_1_1128 = .text:0x00001128; // type:function size:0xF4 +fn_1_121C = .text:0x0000121C; // type:function size:0x38 +fn_1_1254 = .text:0x00001254; // type:function size:0x17C +fn_1_13D0 = .text:0x000013D0; // type:function size:0x148 +fn_1_1518 = .text:0x00001518; // type:function size:0x5C +fn_1_1574 = .text:0x00001574; // type:function size:0x220 +fn_1_1794 = .text:0x00001794; // type:function size:0x60 +fn_1_17F4 = .text:0x000017F4; // type:function size:0x5C +fn_1_1850 = .text:0x00001850; // type:function size:0x744 +fn_1_1F94 = .text:0x00001F94; // type:function size:0x9C +fn_1_2030 = .text:0x00002030; // type:function size:0xD0 +fn_1_2100 = .text:0x00002100; // type:function size:0x120 +fn_1_2220 = .text:0x00002220; // type:function size:0x9C +fn_1_22BC = .text:0x000022BC; // type:function size:0x80 +fn_1_233C = .text:0x0000233C; // type:function size:0x78 +fn_1_23B4 = .text:0x000023B4; // type:function size:0x48 +fn_1_23FC = .text:0x000023FC; // type:function size:0x1D4 +fn_1_25D0 = .text:0x000025D0; // type:function size:0xC4 +fn_1_2694 = .text:0x00002694; // type:function size:0x98 +fn_1_272C = .text:0x0000272C; // type:function size:0x104 +fn_1_2830 = .text:0x00002830; // type:function size:0x3B4 +fn_1_2BE4 = .text:0x00002BE4; // type:function size:0x120 +fn_1_2D04 = .text:0x00002D04; // type:function size:0xC34 +fn_1_3938 = .text:0x00003938; // type:function size:0x14 +fn_1_394C = .text:0x0000394C; // type:function size:0xA8 +fn_1_39F4 = .text:0x000039F4; // type:function size:0x200 +fn_1_3BF4 = .text:0x00003BF4; // type:function size:0x318 +fn_1_3F0C = .text:0x00003F0C; // type:function size:0x58 +fn_1_3F64 = .text:0x00003F64; // type:function size:0x30 +fn_1_3F94 = .text:0x00003F94; // type:function size:0xBC +fn_1_4050 = .text:0x00004050; // type:function size:0xB0 +fn_1_4100 = .text:0x00004100; // type:function size:0xB8 +fn_1_41B8 = .text:0x000041B8; // type:function size:0x1C0 +fn_1_4378 = .text:0x00004378; // type:function size:0x320 +fn_1_4698 = .text:0x00004698; // type:function size:0x50 +fn_1_46E8 = .text:0x000046E8; // type:function size:0xA34 +fn_1_511C = .text:0x0000511C; // type:function size:0x98 +fn_1_51B4 = .text:0x000051B4; // type:function size:0xDC +fn_1_5290 = .text:0x00005290; // type:function size:0x128 +fn_1_53B8 = .text:0x000053B8; // type:function size:0x27C +fn_1_5634 = .text:0x00005634; // type:function size:0x234 +fn_1_5868 = .text:0x00005868; // type:function size:0x258 +fn_1_5AC0 = .text:0x00005AC0; // type:function size:0x1C4 +fn_1_5C84 = .text:0x00005C84; // type:function size:0x74 +fn_1_5CF8 = .text:0x00005CF8; // type:function size:0x30 +fn_1_5D28 = .text:0x00005D28; // type:function size:0x1E0 +fn_1_5F08 = .text:0x00005F08; // type:function size:0x58 +fn_1_5F60 = .text:0x00005F60; // type:function size:0x30 +fn_1_5F90 = .text:0x00005F90; // type:function size:0x9C +fn_1_602C = .text:0x0000602C; // type:function size:0x40 +fn_1_606C = .text:0x0000606C; // type:function size:0x100 +fn_1_616C = .text:0x0000616C; // type:function size:0xDC +fn_1_6248 = .text:0x00006248; // type:function size:0x868 +fn_1_6AB0 = .text:0x00006AB0; // type:function size:0x1F4 +fn_1_6CA4 = .text:0x00006CA4; // type:function size:0x60 +fn_1_6D04 = .text:0x00006D04; // type:function size:0x130 +fn_1_6E34 = .text:0x00006E34; // type:function size:0x74 +fn_1_6EA8 = .text:0x00006EA8; // type:function size:0x43C +fn_1_72E4 = .text:0x000072E4; // type:function size:0x48 +fn_1_732C = .text:0x0000732C; // type:function size:0x2C +fn_1_7358 = .text:0x00007358; // type:function size:0x70 +fn_1_73C8 = .text:0x000073C8; // type:function size:0x11C +fn_1_74E4 = .text:0x000074E4; // type:function size:0x26C +fn_1_7750 = .text:0x00007750; // type:function size:0xC8 +fn_1_7818 = .text:0x00007818; // type:function size:0x80 +fn_1_7898 = .text:0x00007898; // type:function size:0x124 +fn_1_79BC = .text:0x000079BC; // type:function size:0x888 +fn_1_8244 = .text:0x00008244; // type:function size:0x32C +fn_1_8570 = .text:0x00008570; // type:function size:0x8C +fn_1_85FC = .text:0x000085FC; // type:function size:0x7B0 +fn_1_8DAC = .text:0x00008DAC; // type:function size:0x8C +fn_1_8E38 = .text:0x00008E38; // type:function size:0x418 +fn_1_9250 = .text:0x00009250; // type:function size:0x178 +fn_1_93C8 = .text:0x000093C8; // type:function size:0xE4 +fn_1_94AC = .text:0x000094AC; // type:function size:0x14 +fn_1_94C0 = .text:0x000094C0; // type:function size:0x418 +fn_1_98D8 = .text:0x000098D8; // type:function size:0x5EC +fn_1_9EC4 = .text:0x00009EC4; // type:function size:0x694 +fn_1_A558 = .text:0x0000A558; // type:function size:0x390 +fn_1_A8E8 = .text:0x0000A8E8; // type:function size:0xB68 +fn_1_B450 = .text:0x0000B450; // type:function size:0x458 +fn_1_B8A8 = .text:0x0000B8A8; // type:function size:0x288 +fn_1_BB30 = .text:0x0000BB30; // type:function size:0xEC +fn_1_BC1C = .text:0x0000BC1C; // type:function size:0xE0 +fn_1_BCFC = .text:0x0000BCFC; // type:function size:0x178 +fn_1_BE74 = .text:0x0000BE74; // type:function size:0x14 +fn_1_BE88 = .text:0x0000BE88; // type:function size:0x280 +fn_1_C108 = .text:0x0000C108; // type:function size:0xBFC +fn_1_CD04 = .text:0x0000CD04; // type:function size:0x6A8 +fn_1_D3AC = .text:0x0000D3AC; // type:function size:0x518 +fn_1_D8C4 = .text:0x0000D8C4; // type:function size:0x684 +fn_1_DF48 = .text:0x0000DF48; // type:function size:0x364 +fn_1_E2AC = .text:0x0000E2AC; // type:function size:0x64 +fn_1_E310 = .text:0x0000E310; // type:function size:0x10C +fn_1_E41C = .text:0x0000E41C; // type:function size:0xB8 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0xC data:4byte +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x18 data:4byte +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x24 data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x28 data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:double +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0xC data:4byte +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 data:double +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x280 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:2byte +lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:2byte +lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 data:2byte +lbl_1_data_286 = .data:0x00000286; // type:object size:0x2 data:2byte +lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x18 +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x12 data:string +lbl_1_data_2BA = .data:0x000002BA; // type:object size:0xE data:string +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x10 data:string +lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x50 +lbl_1_data_328 = .data:0x00000328; // type:object size:0x1D data:string +lbl_1_data_345 = .data:0x00000345; // type:object size:0x1B data:string +lbl_1_data_360 = .data:0x00000360; // type:object size:0x11 data:string +lbl_1_data_371 = .data:0x00000371; // type:object size:0x7 +lbl_1_data_378 = .data:0x00000378; // type:object size:0x24 +lbl_1_data_39C = .data:0x0000039C; // type:object size:0x24 +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x24 +lbl_1_data_3E4 = .data:0x000003E4; // type:object size:0x20 +lbl_1_data_404 = .data:0x00000404; // type:object size:0x20 +lbl_1_data_424 = .data:0x00000424; // type:object size:0x4 +lbl_1_data_428 = .data:0x00000428; // type:object size:0x38 +lbl_1_data_460 = .data:0x00000460; // type:object size:0x5 data:string +lbl_1_data_465 = .data:0x00000465; // type:object size:0x6 data:string +lbl_1_data_46B = .data:0x0000046B; // type:object size:0x9 +lbl_1_data_474 = .data:0x00000474; // type:object size:0xC +lbl_1_data_480 = .data:0x00000480; // type:object size:0x10 +lbl_1_data_490 = .data:0x00000490; // type:object size:0x20 +lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0x20 +lbl_1_data_4D0 = .data:0x000004D0; // type:object size:0x40 +lbl_1_data_510 = .data:0x00000510; // type:object size:0x14 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0xC +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0xC +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_2E = .bss:0x0000002E; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x20 data:2byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x28 data:2byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x2 data:2byte +lbl_1_bss_86 = .bss:0x00000086; // type:object size:0xE data:2byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0xC data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x2 data:2byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0xC +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x6 +lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x6 +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0xC +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x24 +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte +lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:float +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:float +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x24 +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x24 +lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x24 data:float +lbl_1_bss_184 = .bss:0x00000184; // type:object size:0x6 data:2byte +lbl_1_bss_18A = .bss:0x0000018A; // type:object size:0x6 data:2byte +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x6 data:2byte +lbl_1_bss_196 = .bss:0x00000196; // type:object size:0x2 data:2byte +lbl_1_bss_198 = .bss:0x00000198; // type:object size:0x8 data:2byte +lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0xC data:float +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x2 data:2byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0xC data:float +lbl_1_bss_1BC = .bss:0x000001BC; // type:object size:0x4 data:float +lbl_1_bss_1C0 = .bss:0x000001C0; // type:object size:0x2 data:2byte +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0x20 +lbl_1_bss_1E4 = .bss:0x000001E4; // type:object size:0xB4 +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0xB4 data:float +lbl_1_bss_34C = .bss:0x0000034C; // type:object size:0x1E +lbl_1_bss_36A = .bss:0x0000036A; // type:object size:0x2 data:2byte +lbl_1_bss_36C = .bss:0x0000036C; // type:object size:0x2 data:2byte +lbl_1_bss_36E = .bss:0x0000036E; // type:object size:0x2 data:2byte +lbl_1_bss_370 = .bss:0x00000370; // type:object size:0x2 data:2byte +lbl_1_bss_374 = .bss:0x00000374; // type:object size:0x4 data:4byte +lbl_1_bss_378 = .bss:0x00000378; // type:object size:0x8 data:4byte +lbl_1_bss_380 = .bss:0x00000380; // type:object size:0x4 data:float +lbl_1_bss_384 = .bss:0x00000384; // type:object size:0x4 data:4byte +lbl_1_bss_388 = .bss:0x00000388; // type:object size:0x2 data:2byte +lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/w03Dll/splits.txt b/config/GMPP01_00/rels/w03Dll/splits.txt new file mode 100644 index 00000000..2ba2bee3 --- /dev/null +++ b/config/GMPP01_00/rels/w03Dll/splits.txt @@ -0,0 +1,53 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w03Dll/main.c: + .text start:0x000000E0 end:0x000012C8 + .rodata start:0x00000010 end:0x00000038 + .data start:0x00000000 end:0x00000280 + .bss start:0x00000000 end:0x00000028 + +REL/w03Dll/statue.c: + .text start:0x000012C8 end:0x00003058 + .rodata start:0x00000038 end:0x000000D8 + .data start:0x00000280 end:0x00000310 + .bss start:0x00000028 end:0x00000070 + +REL/w03Dll/condor.c: + .text start:0x00003058 end:0x000063F4 + .rodata start:0x000000D8 end:0x00000218 + .data start:0x00000310 end:0x00000368 + .bss start:0x00000070 end:0x00000120 + +REL/w03Dll/river.c: + .text start:0x000063F4 end:0x0000785C + .rodata start:0x00000218 end:0x000002A8 + .data start:0x00000368 end:0x00000410 + .bss start:0x00000120 end:0x00000138 + +REL/w03Dll/smoke.c: + .text start:0x0000785C end:0x00007ABC + .rodata start:0x000002A8 end:0x000002B0 + .data start:0x00000410 end:0x00000450 + .bss start:0x00000138 end:0x00000140 + +REL/w03Dll/mg_coin.c: + .text start:0x00007ABC end:0x00009A7C + .rodata start:0x000002B0 end:0x00000360 + .data start:0x00000450 end:0x000004D8 + .bss start:0x00000140 end:0x00000180 + +REL/w03Dll/mg_item.c: + .text start:0x00009A7C end:0x0000C248 + .rodata start:0x00000360 end:0x00000418 + .data start:0x000004D8 end:0x0000054C + .bss start:0x00000180 end:0x00000197 diff --git a/config/GMPP01_00/rels/w03Dll/symbols.txt b/config/GMPP01_00/rels/w03Dll/symbols.txt new file mode 100644 index 00000000..cac4adfe --- /dev/null +++ b/config/GMPP01_00/rels/w03Dll/symbols.txt @@ -0,0 +1,443 @@ +ObjectSetup = .text:0x00000000; // type:function size:0x30 scope:local +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +BoardCreate = .text:0x000000E0; // type:function size:0x660 +BoardDestroy = .text:0x00000740; // type:function size:0x144 +fn_1_884 = .text:0x00000884; // type:function size:0x6C +fn_1_8F0 = .text:0x000008F0; // type:function size:0x20 +fn_1_910 = .text:0x00000910; // type:function size:0x164 +fn_1_A74 = .text:0x00000A74; // type:function size:0x84 +fn_1_AF8 = .text:0x00000AF8; // type:function size:0x64 +fn_1_B5C = .text:0x00000B5C; // type:function size:0x198 +fn_1_CF4 = .text:0x00000CF4; // type:function size:0xF8 +fn_1_DEC = .text:0x00000DEC; // type:function size:0x2C4 +fn_1_10B0 = .text:0x000010B0; // type:function size:0x34 +fn_1_10E4 = .text:0x000010E4; // type:function size:0x1E4 +fn_1_12C8 = .text:0x000012C8; // type:function size:0x90 +fn_1_1358 = .text:0x00001358; // type:function size:0x1D4 +fn_1_152C = .text:0x0000152C; // type:function size:0xBC +fn_1_15E8 = .text:0x000015E8; // type:function size:0x68 +fn_1_1650 = .text:0x00001650; // type:function size:0x38C +fn_1_19DC = .text:0x000019DC; // type:function size:0x340 +fn_1_1D1C = .text:0x00001D1C; // type:function size:0x1B8 +fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x20C +fn_1_20E0 = .text:0x000020E0; // type:function size:0x600 +fn_1_26E0 = .text:0x000026E0; // type:function size:0x138 +fn_1_2818 = .text:0x00002818; // type:function size:0x118 +fn_1_2930 = .text:0x00002930; // type:function size:0x110 +fn_1_2A40 = .text:0x00002A40; // type:function size:0x80 +fn_1_2AC0 = .text:0x00002AC0; // type:function size:0x84 +fn_1_2B44 = .text:0x00002B44; // type:function size:0x514 +fn_1_3058 = .text:0x00003058; // type:function size:0x44 +fn_1_309C = .text:0x0000309C; // type:function size:0xA0 +fn_1_313C = .text:0x0000313C; // type:function size:0xDC +fn_1_3218 = .text:0x00003218; // type:function size:0xEC +fn_1_3304 = .text:0x00003304; // type:function size:0x174 +fn_1_3478 = .text:0x00003478; // type:function size:0x39C +fn_1_3814 = .text:0x00003814; // type:function size:0x154 +fn_1_3968 = .text:0x00003968; // type:function size:0x520 +fn_1_3E88 = .text:0x00003E88; // type:function size:0xD4 +fn_1_3F5C = .text:0x00003F5C; // type:function size:0x3F8 +fn_1_4354 = .text:0x00004354; // type:function size:0xD0 +fn_1_4424 = .text:0x00004424; // type:function size:0x4C8 +fn_1_48EC = .text:0x000048EC; // type:function size:0x1B0 +fn_1_4A9C = .text:0x00004A9C; // type:function size:0x20 +fn_1_4ABC = .text:0x00004ABC; // type:function size:0x250 +fn_1_4D0C = .text:0x00004D0C; // type:function size:0x54 +fn_1_4D60 = .text:0x00004D60; // type:function size:0x1C4 +fn_1_4F24 = .text:0x00004F24; // type:function size:0x1B0 +fn_1_50D4 = .text:0x000050D4; // type:function size:0x764 +fn_1_5838 = .text:0x00005838; // type:function size:0x290 +fn_1_5AC8 = .text:0x00005AC8; // type:function size:0x194 +fn_1_5C5C = .text:0x00005C5C; // type:function size:0x3D0 +fn_1_602C = .text:0x0000602C; // type:function size:0x178 +fn_1_61A4 = .text:0x000061A4; // type:function size:0xF8 +fn_1_629C = .text:0x0000629C; // type:function size:0x34 +fn_1_62D0 = .text:0x000062D0; // type:function size:0x2C +fn_1_62FC = .text:0x000062FC; // type:function size:0xF8 +fn_1_63F4 = .text:0x000063F4; // type:function size:0xA0 +fn_1_6494 = .text:0x00006494; // type:function size:0x204 +fn_1_6698 = .text:0x00006698; // type:function size:0xC4 +fn_1_675C = .text:0x0000675C; // type:function size:0x9C +fn_1_67F8 = .text:0x000067F8; // type:function size:0x8C +fn_1_6884 = .text:0x00006884; // type:function size:0x14 +fn_1_6898 = .text:0x00006898; // type:function size:0x300 +fn_1_6B98 = .text:0x00006B98; // type:function size:0x404 +fn_1_6F9C = .text:0x00006F9C; // type:function size:0x3C0 +fn_1_735C = .text:0x0000735C; // type:function size:0x320 +fn_1_767C = .text:0x0000767C; // type:function size:0x168 +fn_1_77E4 = .text:0x000077E4; // type:function size:0x78 +fn_1_785C = .text:0x0000785C; // type:function size:0x184 +fn_1_79E0 = .text:0x000079E0; // type:function size:0xDC +fn_1_7ABC = .text:0x00007ABC; // type:function size:0x9C +fn_1_7B58 = .text:0x00007B58; // type:function size:0x50 +fn_1_7BA8 = .text:0x00007BA8; // type:function size:0x90 +fn_1_7C38 = .text:0x00007C38; // type:function size:0x60 +fn_1_7C98 = .text:0x00007C98; // type:function size:0x80 +fn_1_7D18 = .text:0x00007D18; // type:function size:0x428 +fn_1_8140 = .text:0x00008140; // type:function size:0xA0 +fn_1_81E0 = .text:0x000081E0; // type:function size:0x254 +fn_1_8434 = .text:0x00008434; // type:function size:0x74 +fn_1_84A8 = .text:0x000084A8; // type:function size:0x88 +fn_1_8530 = .text:0x00008530; // type:function size:0x168 +fn_1_8698 = .text:0x00008698; // type:function size:0x570 +fn_1_8C08 = .text:0x00008C08; // type:function size:0x23C +fn_1_8E44 = .text:0x00008E44; // type:function size:0x200 +fn_1_9044 = .text:0x00009044; // type:function size:0x174 +fn_1_91B8 = .text:0x000091B8; // type:function size:0x78 +fn_1_9230 = .text:0x00009230; // type:function size:0x154 +fn_1_9384 = .text:0x00009384; // type:function size:0xF0 +fn_1_9474 = .text:0x00009474; // type:function size:0x144 +fn_1_95B8 = .text:0x000095B8; // type:function size:0x240 +fn_1_97F8 = .text:0x000097F8; // type:function size:0x224 +fn_1_9A1C = .text:0x00009A1C; // type:function size:0x60 +fn_1_9A7C = .text:0x00009A7C; // type:function size:0x20 +fn_1_9A9C = .text:0x00009A9C; // type:function size:0x4 +fn_1_9AA0 = .text:0x00009AA0; // type:function size:0x90 +fn_1_9B30 = .text:0x00009B30; // type:function size:0x15C +fn_1_9C8C = .text:0x00009C8C; // type:function size:0x68 +fn_1_9CF4 = .text:0x00009CF4; // type:function size:0x284 +fn_1_9F78 = .text:0x00009F78; // type:function size:0x6C +fn_1_9FE4 = .text:0x00009FE4; // type:function size:0x468 +fn_1_A44C = .text:0x0000A44C; // type:function size:0x194 +fn_1_A5E0 = .text:0x0000A5E0; // type:function size:0xD0 +fn_1_A6B0 = .text:0x0000A6B0; // type:function size:0xF0 +fn_1_A7A0 = .text:0x0000A7A0; // type:function size:0x10C +fn_1_A8AC = .text:0x0000A8AC; // type:function size:0xE8 +fn_1_A994 = .text:0x0000A994; // type:function size:0x184 +fn_1_AB18 = .text:0x0000AB18; // type:function size:0xB8 +fn_1_ABD0 = .text:0x0000ABD0; // type:function size:0x108 +fn_1_ACD8 = .text:0x0000ACD8; // type:function size:0x148 +fn_1_AE20 = .text:0x0000AE20; // type:function size:0x2C +fn_1_AE4C = .text:0x0000AE4C; // type:function size:0xD8 +fn_1_AF24 = .text:0x0000AF24; // type:function size:0x180 +fn_1_B0A4 = .text:0x0000B0A4; // type:function size:0x2AC +fn_1_B350 = .text:0x0000B350; // type:function size:0x15C +fn_1_B4AC = .text:0x0000B4AC; // type:function size:0x1DC +fn_1_B688 = .text:0x0000B688; // type:function size:0xC0 +fn_1_B748 = .text:0x0000B748; // type:function size:0x1A0 +fn_1_B8E8 = .text:0x0000B8E8; // type:function size:0x260 +fn_1_BB48 = .text:0x0000BB48; // type:function size:0x2C +fn_1_BB74 = .text:0x0000BB74; // type:function size:0x50 +fn_1_BBC4 = .text:0x0000BBC4; // type:function size:0x34 +fn_1_BBF8 = .text:0x0000BBF8; // type:function size:0x84 +fn_1_BC7C = .text:0x0000BC7C; // type:function size:0x130 +fn_1_BDAC = .text:0x0000BDAC; // type:function size:0x84 +fn_1_BE30 = .text:0x0000BE30; // type:function size:0x418 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0xC data:4byte +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x24 data:4byte +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x6 data:2byte +lbl_1_rodata_BE = .rodata:0x000000BE; // type:object size:0x1 data:byte +lbl_1_rodata_C2 = .rodata:0x000000C2; // type:object size:0x6 data:byte +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x20 data:4byte +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:4byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x10 data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1E0 +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x2 data:2byte +lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0x2 data:2byte +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x2 data:2byte +lbl_1_data_1E6 = .data:0x000001E6; // type:object size:0x2 data:2byte +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x2 data:2byte +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x20 data:float +lbl_1_data_20C = .data:0x0000020C; // type:object size:0x8 +lbl_1_data_214 = .data:0x00000214; // type:object size:0x8 +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x10 +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x30 +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x10 +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x14 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:2byte +lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:2byte +lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 data:2byte +lbl_1_data_286 = .data:0x00000286; // type:object size:0x2 data:2byte +lbl_1_data_288 = .data:0x00000288; // type:object size:0x4 data:4byte +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x4 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x20 +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x20 +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x20 +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x20 +lbl_1_data_310 = .data:0x00000310; // type:object size:0x2 data:2byte +lbl_1_data_312 = .data:0x00000312; // type:object size:0x2 data:2byte +lbl_1_data_314 = .data:0x00000314; // type:object size:0x2 data:2byte +lbl_1_data_316 = .data:0x00000316; // type:object size:0x2 data:2byte +lbl_1_data_318 = .data:0x00000318; // type:object size:0x18 +lbl_1_data_330 = .data:0x00000330; // type:object size:0xD data:string +lbl_1_data_33D = .data:0x0000033D; // type:object size:0x6 data:string +lbl_1_data_343 = .data:0x00000343; // type:object size:0x9 +lbl_1_data_34C = .data:0x0000034C; // type:object size:0x8 +lbl_1_data_354 = .data:0x00000354; // type:object size:0x8 +lbl_1_data_35C = .data:0x0000035C; // type:object size:0xC +lbl_1_data_368 = .data:0x00000368; // type:object size:0x20 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x2 data:2byte +lbl_1_data_38A = .data:0x0000038A; // type:object size:0x2 data:2byte +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x2 data:2byte +lbl_1_data_390 = .data:0x00000390; // type:object size:0x10 +lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0xB data:string +lbl_1_data_3AB = .data:0x000003AB; // type:object size:0x6 data:string +lbl_1_data_3B1 = .data:0x000003B1; // type:object size:0x7 +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x48 +lbl_1_data_400 = .data:0x00000400; // type:object size:0x3 data:string +lbl_1_data_403 = .data:0x00000403; // type:object size:0xD +lbl_1_data_410 = .data:0x00000410; // type:object size:0x8 data:string +lbl_1_data_418 = .data:0x00000418; // type:object size:0x8 data:string +lbl_1_data_420 = .data:0x00000420; // type:object size:0x8 data:string +lbl_1_data_428 = .data:0x00000428; // type:object size:0x8 data:string +lbl_1_data_430 = .data:0x00000430; // type:object size:0x8 data:string +lbl_1_data_438 = .data:0x00000438; // type:object size:0x18 +lbl_1_data_450 = .data:0x00000450; // type:object size:0x4 data:4byte +lbl_1_data_454 = .data:0x00000454; // type:object size:0x2 data:2byte +lbl_1_data_456 = .data:0x00000456; // type:object size:0x2 data:2byte +lbl_1_data_458 = .data:0x00000458; // type:object size:0x2 data:2byte +lbl_1_data_45C = .data:0x0000045C; // type:object size:0xC +lbl_1_data_468 = .data:0x00000468; // type:object size:0x8 +lbl_1_data_470 = .data:0x00000470; // type:object size:0x20 +lbl_1_data_490 = .data:0x00000490; // type:object size:0x20 +lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0x1 data:byte +lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x14 +lbl_1_data_4C8 = .data:0x000004C8; // type:object size:0x6 +lbl_1_data_4CE = .data:0x000004CE; // type:object size:0xA +lbl_1_data_4D8 = .data:0x000004D8; // type:object size:0x2 data:2byte +lbl_1_data_4DA = .data:0x000004DA; // type:object size:0x2 data:2byte +lbl_1_data_4DC = .data:0x000004DC; // type:object size:0x2 data:2byte +lbl_1_data_4E0 = .data:0x000004E0; // type:object size:0x4 data:4byte +lbl_1_data_4E4 = .data:0x000004E4; // type:object size:0x2 data:2byte +lbl_1_data_4E6 = .data:0x000004E6; // type:object size:0xE +lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0x5 data:string +lbl_1_data_4F9 = .data:0x000004F9; // type:object size:0x6 data:string +lbl_1_data_4FF = .data:0x000004FF; // type:object size:0x9 +lbl_1_data_508 = .data:0x00000508; // type:object size:0xC +lbl_1_data_514 = .data:0x00000514; // type:object size:0x38 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x1C data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x1 data:byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0xC +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x20 +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x2 data:2byte +lbl_1_bss_6A = .bss:0x0000006A; // type:object size:0x2 data:2byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x2 data:2byte +lbl_1_bss_6E = .bss:0x0000006E; // type:object size:0x1 data:byte +lbl_1_bss_6F = .bss:0x0000006F; // type:object size:0x1 data:byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x1 data:byte +lbl_1_bss_7D = .bss:0x0000007D; // type:object size:0x1 data:byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0xA0 +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:4byte +lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x4 data:4byte +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x2 data:2byte +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4 data:4byte +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x8 +lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x8 data:4byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x4 data:4byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x1 data:byte +lbl_1_bss_14E = .bss:0x0000014E; // type:object size:0x2 data:2byte +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x30 +lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x4 data:4byte +lbl_1_bss_184 = .bss:0x00000184; // type:object size:0x4 data:4byte +lbl_1_bss_188 = .bss:0x00000188; // type:object size:0x4 data:4byte +lbl_1_bss_18C = .bss:0x0000018C; // type:object size:0x1 data:byte +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:4byte +lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x3 diff --git a/config/GMPP01_00/rels/w04Dll/splits.txt b/config/GMPP01_00/rels/w04Dll/splits.txt new file mode 100644 index 00000000..d977e9ab --- /dev/null +++ b/config/GMPP01_00/rels/w04Dll/splits.txt @@ -0,0 +1,47 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w04Dll/main.c: + .text start:0x000000E0 end:0x000012FC + .rodata start:0x00000010 end:0x00000040 + .data start:0x00000000 end:0x00000298 + .bss start:0x00000000 end:0x00000038 + +REL/w04Dll/bridge.c: + .text start:0x000012FC end:0x000020EC + .rodata start:0x00000040 end:0x00000098 + .data start:0x00000298 end:0x000002D0 + .bss start:0x00000038 end:0x00000048 + +REL/w04Dll/boo_event.c: + .text start:0x000020EC end:0x00006024 + .rodata start:0x00000098 end:0x00000180 + .data start:0x000002D0 end:0x000003A8 + .bss start:0x00000048 end:0x00000100 + +REL/w04Dll/big_boo.c: + .text start:0x00006024 end:0x0000A0DC + .rodata start:0x00000180 end:0x000002C0 + .data start:0x000003A8 end:0x000004F0 + .bss start:0x00000100 end:0x00000288 + +REL/w04Dll/mg_item.c: + .text start:0x0000A0DC end:0x0000C784 + .rodata start:0x000002C0 end:0x000003A0 + .data start:0x000004F0 end:0x00000588 + .bss start:0x00000288 end:0x000002B0 + +REL/w04Dll/mg_coin.c: + .text start:0x0000C784 end:0x0000E9F0 + .rodata start:0x000003A0 end:0x00000428 + .data start:0x00000588 end:0x0000063F + .bss start:0x000002B0 end:0x00000328 diff --git a/config/GMPP01_00/rels/w04Dll/symbols.txt b/config/GMPP01_00/rels/w04Dll/symbols.txt new file mode 100644 index 00000000..44c0c8eb --- /dev/null +++ b/config/GMPP01_00/rels/w04Dll/symbols.txt @@ -0,0 +1,452 @@ +ObjectSetup = .text:0x00000000; // type:function size:0x30 scope:local +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +BoardCreate = .text:0x000000E0; // type:function size:0x514 +BoardDestroy = .text:0x000005F4; // type:function size:0x15C +fn_1_750 = .text:0x00000750; // type:function size:0x44 +fn_1_794 = .text:0x00000794; // type:function size:0x4 +fn_1_798 = .text:0x00000798; // type:function size:0x64 +fn_1_7FC = .text:0x000007FC; // type:function size:0x134 +fn_1_930 = .text:0x00000930; // type:function size:0x24 +fn_1_954 = .text:0x00000954; // type:function size:0x4 +fn_1_958 = .text:0x00000958; // type:function size:0x3A0 +fn_1_CF8 = .text:0x00000CF8; // type:function size:0x38 +fn_1_D30 = .text:0x00000D30; // type:function size:0x80 +fn_1_DB0 = .text:0x00000DB0; // type:function size:0x28C +fn_1_103C = .text:0x0000103C; // type:function size:0xF4 +fn_1_1130 = .text:0x00001130; // type:function size:0x1CC +fn_1_12FC = .text:0x000012FC; // type:function size:0x2CC +fn_1_15C8 = .text:0x000015C8; // type:function size:0x50 +fn_1_1618 = .text:0x00001618; // type:function size:0x19C +fn_1_17B4 = .text:0x000017B4; // type:function size:0x168 +fn_1_191C = .text:0x0000191C; // type:function size:0x27C +fn_1_1B98 = .text:0x00001B98; // type:function size:0x94 +fn_1_1C2C = .text:0x00001C2C; // type:function size:0x234 +fn_1_1E60 = .text:0x00001E60; // type:function size:0x1A8 +fn_1_2008 = .text:0x00002008; // type:function size:0x3C +fn_1_2044 = .text:0x00002044; // type:function size:0x14 +fn_1_2058 = .text:0x00002058; // type:function size:0x94 +fn_1_20EC = .text:0x000020EC; // type:function size:0x7D0 +fn_1_28BC = .text:0x000028BC; // type:function size:0x2D0 +fn_1_2B8C = .text:0x00002B8C; // type:function size:0x84 +fn_1_2C10 = .text:0x00002C10; // type:function size:0x250 +fn_1_2E60 = .text:0x00002E60; // type:function size:0x88 +fn_1_2EE8 = .text:0x00002EE8; // type:function size:0x6C +fn_1_2F54 = .text:0x00002F54; // type:function size:0x68 +fn_1_2FBC = .text:0x00002FBC; // type:function size:0x20 +fn_1_2FDC = .text:0x00002FDC; // type:function size:0xC8 +fn_1_30A4 = .text:0x000030A4; // type:function size:0x834 +fn_1_38D8 = .text:0x000038D8; // type:function size:0x3C4 +fn_1_3C9C = .text:0x00003C9C; // type:function size:0x90C +fn_1_45A8 = .text:0x000045A8; // type:function size:0x88 +fn_1_4630 = .text:0x00004630; // type:function size:0x50 +fn_1_4680 = .text:0x00004680; // type:function size:0x1C8 +fn_1_4848 = .text:0x00004848; // type:function size:0x7D0 +fn_1_5018 = .text:0x00005018; // type:function size:0x288 +fn_1_52A0 = .text:0x000052A0; // type:function size:0x300 +fn_1_55A0 = .text:0x000055A0; // type:function size:0x14 +fn_1_55B4 = .text:0x000055B4; // type:function size:0x94 +fn_1_5648 = .text:0x00005648; // type:function size:0x1E0 +fn_1_5828 = .text:0x00005828; // type:function size:0x7C +fn_1_58A4 = .text:0x000058A4; // type:function size:0xDC +fn_1_5980 = .text:0x00005980; // type:function size:0x44 +fn_1_59C4 = .text:0x000059C4; // type:function size:0x68 +fn_1_5A2C = .text:0x00005A2C; // type:function size:0x5F8 +fn_1_6024 = .text:0x00006024; // type:function size:0x28C +fn_1_62B0 = .text:0x000062B0; // type:function size:0x628 +fn_1_68D8 = .text:0x000068D8; // type:function size:0x420 +fn_1_6CF8 = .text:0x00006CF8; // type:function size:0x608 +fn_1_7300 = .text:0x00007300; // type:function size:0x27C +fn_1_757C = .text:0x0000757C; // type:function size:0x5C +fn_1_75D8 = .text:0x000075D8; // type:function size:0x2B0 +fn_1_7888 = .text:0x00007888; // type:function size:0x11D8 +fn_1_8A60 = .text:0x00008A60; // type:function size:0xE24 +fn_1_9884 = .text:0x00009884; // type:function size:0x294 +fn_1_9B18 = .text:0x00009B18; // type:function size:0xA8 +fn_1_9BC0 = .text:0x00009BC0; // type:function size:0x3C +fn_1_9BFC = .text:0x00009BFC; // type:function size:0x290 +fn_1_9E8C = .text:0x00009E8C; // type:function size:0x14 +fn_1_9EBC = .text:0x00009EA0; // type:function size:0x94 +fn_1_9F34 = .text:0x00009F34; // type:function size:0x124 +fn_1_A058 = .text:0x0000A058; // type:function size:0x84 +fn_1_A0F8 = .text:0x0000A0DC; // type:function size:0xF8 +fn_1_A1F0 = .text:0x0000A1D4; // type:function size:0x52C +fn_1_A700 = .text:0x0000A700; // type:function size:0xCC +fn_1_A7CC = .text:0x0000A7CC; // type:function size:0x1294 +fn_1_BA7C = .text:0x0000BA60; // type:function size:0x84 +fn_1_BB00 = .text:0x0000BAE4; // type:function size:0x7BC +fn_1_C2BC = .text:0x0000C2A0; // type:function size:0xCC +fn_1_C36C = .text:0x0000C36C; // type:function size:0x418 +fn_1_C7A0 = .text:0x0000C784; // type:function size:0x34 +fn_1_C7D4 = .text:0x0000C7B8; // type:function size:0x7B8 +fn_1_CF70 = .text:0x0000CF70; // type:function size:0x120 +fn_1_D090 = .text:0x0000D090; // type:function size:0x30 +fn_1_D0C0 = .text:0x0000D0C0; // type:function size:0x98 +fn_1_D158 = .text:0x0000D158; // type:function size:0xBC +fn_1_D214 = .text:0x0000D214; // type:function size:0x74 +fn_1_D288 = .text:0x0000D288; // type:function size:0x2B0 +fn_1_D538 = .text:0x0000D538; // type:function size:0x154 +fn_1_D68C = .text:0x0000D68C; // type:function size:0x64 +fn_1_D6F0 = .text:0x0000D6F0; // type:function size:0x64 +fn_1_D754 = .text:0x0000D754; // type:function size:0x894 +fn_1_DFE8 = .text:0x0000DFE8; // type:function size:0x140 +fn_1_E128 = .text:0x0000E128; // type:function size:0x48 +fn_1_E170 = .text:0x0000E170; // type:function size:0x1E8 +fn_1_E358 = .text:0x0000E358; // type:function size:0x14C +fn_1_E4A4 = .text:0x0000E4A4; // type:function size:0x1EC +fn_1_E690 = .text:0x0000E690; // type:function size:0x1D4 +fn_1_E864 = .text:0x0000E864; // type:function size:0x18C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0xC data:4byte +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC data:4byte +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x280 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:2byte +lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:2byte +lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 data:2byte +lbl_1_data_286 = .data:0x00000286; // type:object size:0x2 data:2byte +lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x8 +lbl_1_data_298 = .data:0x00000298; // type:object size:0x8 +lbl_1_data_2A0 = .data:0x000002A0; // type:object size:0xC +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x24 +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x20 +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x4 data:4byte +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20 +lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 +lbl_1_data_334 = .data:0x00000334; // type:object size:0x5 data:string +lbl_1_data_339 = .data:0x00000339; // type:object size:0x5 data:string +lbl_1_data_33E = .data:0x0000033E; // type:object size:0x5 data:string +lbl_1_data_343 = .data:0x00000343; // type:object size:0x5 data:string +lbl_1_data_348 = .data:0x00000348; // type:object size:0x10 +lbl_1_data_358 = .data:0x00000358; // type:object size:0x10 +lbl_1_data_368 = .data:0x00000368; // type:object size:0x8 data:string +lbl_1_data_370 = .data:0x00000370; // type:object size:0x12 data:string +lbl_1_data_382 = .data:0x00000382; // type:object size:0x11 data:string +lbl_1_data_393 = .data:0x00000393; // type:object size:0x15 +lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x8 data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x9 data:string +lbl_1_data_3B9 = .data:0x000003B9; // type:object size:0x6 data:string +lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x5 data:string +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x8 +lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x14 data:4byte +lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x14 +lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x20 +lbl_1_data_414 = .data:0x00000414; // type:object size:0x10 +lbl_1_data_424 = .data:0x00000424; // type:object size:0x30 data:2byte +lbl_1_data_454 = .data:0x00000454; // type:object size:0xB data:string +lbl_1_data_45F = .data:0x0000045F; // type:object size:0x2 data:string +lbl_1_data_461 = .data:0x00000461; // type:object size:0xC data:string +lbl_1_data_46D = .data:0x0000046D; // type:object size:0x1B +lbl_1_data_488 = .data:0x00000488; // type:object size:0x3 data:string +lbl_1_data_48B = .data:0x0000048B; // type:object size:0x11 +lbl_1_data_49C = .data:0x0000049C; // type:object size:0x54 +lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x6 data:string +lbl_1_data_4F6 = .data:0x000004F6; // type:object size:0x6 data:string +lbl_1_data_4FC = .data:0x000004FC; // type:object size:0x6 data:string +lbl_1_data_502 = .data:0x00000502; // type:object size:0x8 data:string +lbl_1_data_50A = .data:0x0000050A; // type:object size:0x8 data:string +lbl_1_data_512 = .data:0x00000512; // type:object size:0xA +lbl_1_data_51C = .data:0x0000051C; // type:object size:0x18 data:4byte +lbl_1_data_534 = .data:0x00000534; // type:object size:0xC +lbl_1_data_540 = .data:0x00000540; // type:object size:0x48 +lbl_1_data_588 = .data:0x00000588; // type:object size:0x4 data:4byte +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x5 data:string +lbl_1_data_591 = .data:0x00000591; // type:object size:0x5 data:string +lbl_1_data_596 = .data:0x00000596; // type:object size:0x5 data:string +lbl_1_data_59B = .data:0x0000059B; // type:object size:0x5 data:string +lbl_1_data_5A0 = .data:0x000005A0; // type:object size:0x5 data:string +lbl_1_data_5A5 = .data:0x000005A5; // type:object size:0x5 data:string +lbl_1_data_5AA = .data:0x000005AA; // type:object size:0x5 data:string +lbl_1_data_5AF = .data:0x000005AF; // type:object size:0x5 data:string +lbl_1_data_5B4 = .data:0x000005B4; // type:object size:0x8 +lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x24 data:4byte +lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0x10 +lbl_1_data_5F0 = .data:0x000005F0; // type:object size:0x20 +lbl_1_data_610 = .data:0x00000610; // type:object size:0xE data:string +lbl_1_data_61E = .data:0x0000061E; // type:object size:0xE data:string +lbl_1_data_62C = .data:0x0000062C; // type:object size:0x10 +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x3 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x24 data:2byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x2 data:2byte +lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x18 +lbl_1_bss_6A = .bss:0x0000006A; // type:object size:0x2 data:2byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x2 data:2byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x2 data:2byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x30 +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x2 data:2byte +lbl_1_bss_B2 = .bss:0x000000B2; // type:object size:0x8 +lbl_1_bss_BA = .bss:0x000000BA; // type:object size:0x8 data:2byte +lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x2 data:2byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x10 +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x10 +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x10 +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x6 data:2byte +lbl_1_bss_FA = .bss:0x000000FA; // type:object size:0x6 data:2byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0xC +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x20 +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x6 +lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x2 data:2byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0xD4 data:2byte +lbl_1_bss_210 = .bss:0x00000210; // type:object size:0x30 +lbl_1_bss_240 = .bss:0x00000240; // type:object size:0x30 +lbl_1_bss_270 = .bss:0x00000270; // type:object size:0x2 data:2byte +lbl_1_bss_272 = .bss:0x00000272; // type:object size:0x2 data:2byte +lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x2 data:2byte +lbl_1_bss_278 = .bss:0x00000278; // type:object size:0x4 data:4byte +lbl_1_bss_27C = .bss:0x0000027C; // type:object size:0x2 data:2byte +lbl_1_bss_27E = .bss:0x0000027E; // type:object size:0x2 data:2byte +lbl_1_bss_280 = .bss:0x00000280; // type:object size:0x2 data:2byte +lbl_1_bss_282 = .bss:0x00000282; // type:object size:0x6 data:2byte +lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x4 data:4byte +lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x8 data:4byte +lbl_1_bss_294 = .bss:0x00000294; // type:object size:0x4 data:float +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x6 +lbl_1_bss_29E = .bss:0x0000029E; // type:object size:0x8 +lbl_1_bss_2A6 = .bss:0x000002A6; // type:object size:0x6 +lbl_1_bss_2AC = .bss:0x000002AC; // type:object size:0x2 data:2byte +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 data:4byte +lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0xE +lbl_1_bss_2C2 = .bss:0x000002C2; // type:object size:0xE +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x28 data:2byte +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x2 data:2byte +lbl_1_bss_2FA = .bss:0x000002FA; // type:object size:0x2 data:2byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0xC +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0xC data:float +lbl_1_bss_314 = .bss:0x00000314; // type:object size:0x2 data:2byte +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0x4 data:4byte +lbl_1_bss_31C = .bss:0x0000031C; // type:object size:0x4 data:4byte +lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x4 data:4byte +lbl_1_bss_324 = .bss:0x00000324; // type:object size:0x2 data:2byte +lbl_1_bss_326 = .bss:0x00000326; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/w05Dll/splits.txt b/config/GMPP01_00/rels/w05Dll/splits.txt new file mode 100644 index 00000000..fc4cdcea --- /dev/null +++ b/config/GMPP01_00/rels/w05Dll/splits.txt @@ -0,0 +1,47 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w05Dll/main.c: + .text start:0x000000E0 end:0x000013D4 + .rodata start:0x00000010 end:0x00000048 + .data start:0x00000000 end:0x00000150 + .bss start:0x00000000 end:0x00000028 + +REL/w05Dll/hotel.c: + .text start:0x000013D4 end:0x00002B40 + .rodata start:0x00000048 end:0x00000090 + .data start:0x00000150 end:0x000001A8 + .bss start:0x00000028 end:0x00000030 + +REL/w05Dll/monkey.c: + .text start:0x00002B40 end:0x00003F74 + .rodata start:0x00000090 end:0x000000F8 + .data start:0x000001A8 end:0x00000200 + .bss start:0x00000030 end:0x00000058 + +REL/w05Dll/dolphin.c: + .text start:0x00003F74 end:0x00006B28 + .rodata start:0x000000F8 end:0x000001A8 + .data start:0x00000200 end:0x00000310 + .bss start:0x00000058 end:0x00000078 + +REL/w05Dll/mg_item.c: + .text start:0x00006B28 end:0x00009680 + .rodata start:0x000001A8 end:0x00000268 + .data start:0x00000310 end:0x00000450 + .bss start:0x00000078 end:0x000000B8 + +REL/w05Dll/mg_coin.c: + .text start:0x00009680 end:0x0000B644 + .rodata start:0x00000268 end:0x00000300 + .data start:0x00000450 end:0x000004C7 + .bss start:0x000000B8 end:0x00000108 diff --git a/config/GMPP01_00/rels/w05Dll/symbols.txt b/config/GMPP01_00/rels/w05Dll/symbols.txt new file mode 100644 index 00000000..faed8cbe --- /dev/null +++ b/config/GMPP01_00/rels/w05Dll/symbols.txt @@ -0,0 +1,356 @@ +ObjectSetup = .text:0x00000000; // type:function size:0x30 scope:local +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +BoardCreate = .text:0x000000E0; // type:function size:0x4D8 +BoardDestroy = .text:0x000005B8; // type:function size:0x18C +fn_1_744 = .text:0x00000744; // type:function size:0x44 +fn_1_788 = .text:0x00000788; // type:function size:0x4 +fn_1_78C = .text:0x0000078C; // type:function size:0xA0 +fn_1_82C = .text:0x0000082C; // type:function size:0x100 +fn_1_92C = .text:0x0000092C; // type:function size:0x24 +fn_1_950 = .text:0x00000950; // type:function size:0x4 +fn_1_954 = .text:0x00000954; // type:function size:0x3F8 +fn_1_D4C = .text:0x00000D4C; // type:function size:0x38 +fn_1_D84 = .text:0x00000D84; // type:function size:0x80 +fn_1_E04 = .text:0x00000E04; // type:function size:0x3C +fn_1_E40 = .text:0x00000E40; // type:function size:0x2D4 +fn_1_1114 = .text:0x00001114; // type:function size:0xF4 +fn_1_1208 = .text:0x00001208; // type:function size:0x1CC +fn_1_13D4 = .text:0x000013D4; // type:function size:0xFC +fn_1_14D0 = .text:0x000014D0; // type:function size:0x2C +fn_1_14FC = .text:0x000014FC; // type:function size:0x60 +fn_1_155C = .text:0x0000155C; // type:function size:0x8E8 +fn_1_1E44 = .text:0x00001E44; // type:function size:0xCFC +fn_1_2B40 = .text:0x00002B40; // type:function size:0x13C +fn_1_2C7C = .text:0x00002C7C; // type:function size:0x3C8 +fn_1_3044 = .text:0x00003044; // type:function size:0x3EC +fn_1_3430 = .text:0x00003430; // type:function size:0xE4 +fn_1_3514 = .text:0x00003514; // type:function size:0x874 +fn_1_3D88 = .text:0x00003D88; // type:function size:0x104 +fn_1_3E8C = .text:0x00003E8C; // type:function size:0xE8 +fn_1_3F74 = .text:0x00003F74; // type:function size:0x64 +fn_1_3FD8 = .text:0x00003FD8; // type:function size:0x5C +fn_1_4034 = .text:0x00004034; // type:function size:0xE80 +fn_1_4EB4 = .text:0x00004EB4; // type:function size:0x794 +fn_1_5648 = .text:0x00005648; // type:function size:0x14C +fn_1_5794 = .text:0x00005794; // type:function size:0xB18 +fn_1_62AC = .text:0x000062AC; // type:function size:0x210 +fn_1_64BC = .text:0x000064BC; // type:function size:0x12C +fn_1_65E8 = .text:0x000065E8; // type:function size:0x88 +fn_1_6670 = .text:0x00006670; // type:function size:0x50 +fn_1_66C0 = .text:0x000066C0; // type:function size:0x254 +fn_1_6914 = .text:0x00006914; // type:function size:0x214 +fn_1_6B28 = .text:0x00006B28; // type:function size:0x54 +fn_1_6B7C = .text:0x00006B7C; // type:function size:0x708 +fn_1_7284 = .text:0x00007284; // type:function size:0x60 +fn_1_72E4 = .text:0x000072E4; // type:function size:0x30 +fn_1_7314 = .text:0x00007314; // type:function size:0xAC +fn_1_73C0 = .text:0x000073C0; // type:function size:0x40 +fn_1_7400 = .text:0x00007400; // type:function size:0xD0 +fn_1_74D0 = .text:0x000074D0; // type:function size:0x2E0 +fn_1_77B0 = .text:0x000077B0; // type:function size:0xF0 +fn_1_78A0 = .text:0x000078A0; // type:function size:0x88 +fn_1_7928 = .text:0x00007928; // type:function size:0x74 +fn_1_799C = .text:0x0000799C; // type:function size:0x4B0 +fn_1_7E4C = .text:0x00007E4C; // type:function size:0x48 +fn_1_7E94 = .text:0x00007E94; // type:function size:0x70 +fn_1_7F04 = .text:0x00007F04; // type:function size:0x1D4 +fn_1_80D8 = .text:0x000080D8; // type:function size:0x338 +fn_1_8410 = .text:0x00008410; // type:function size:0xFC +fn_1_850C = .text:0x0000850C; // type:function size:0x15C +fn_1_8668 = .text:0x00008668; // type:function size:0x130 +fn_1_8798 = .text:0x00008798; // type:function size:0xEC +fn_1_8884 = .text:0x00008884; // type:function size:0x34 +fn_1_88B8 = .text:0x000088B8; // type:function size:0xB4 +fn_1_896C = .text:0x0000896C; // type:function size:0x870 +fn_1_91DC = .text:0x000091DC; // type:function size:0x8C +fn_1_9268 = .text:0x00009268; // type:function size:0x418 +fn_1_9680 = .text:0x00009680; // type:function size:0x34 +fn_1_96B4 = .text:0x000096B4; // type:function size:0xAC +fn_1_9760 = .text:0x00009760; // type:function size:0x4C +fn_1_97AC = .text:0x000097AC; // type:function size:0x2BC +fn_1_9A68 = .text:0x00009A68; // type:function size:0x58 +fn_1_9AC0 = .text:0x00009AC0; // type:function size:0x30 +fn_1_9AF0 = .text:0x00009AF0; // type:function size:0x84 +fn_1_9B74 = .text:0x00009B74; // type:function size:0xB0 +fn_1_9C24 = .text:0x00009C24; // type:function size:0x74 +fn_1_9C98 = .text:0x00009C98; // type:function size:0x74 +fn_1_9D0C = .text:0x00009D0C; // type:function size:0x218 +fn_1_9F24 = .text:0x00009F24; // type:function size:0x300 +fn_1_A224 = .text:0x0000A224; // type:function size:0x2D4 +fn_1_A4F8 = .text:0x0000A4F8; // type:function size:0xB8 +fn_1_A5B0 = .text:0x0000A5B0; // type:function size:0x3E0 +fn_1_A990 = .text:0x0000A990; // type:function size:0x194 +fn_1_AB24 = .text:0x0000AB24; // type:function size:0x6F0 +fn_1_B214 = .text:0x0000B214; // type:function size:0x9C +fn_1_B2B0 = .text:0x0000B2B0; // type:function size:0x114 +fn_1_B3C4 = .text:0x0000B3C4; // type:function size:0x280 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:4byte +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x118 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x2 data:2byte +lbl_1_data_11A = .data:0x0000011A; // type:object size:0x2 data:2byte +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x2 data:2byte +lbl_1_data_11E = .data:0x0000011E; // type:object size:0x2 data:2byte +lbl_1_data_120 = .data:0x00000120; // type:object size:0x2 data:2byte +lbl_1_data_124 = .data:0x00000124; // type:object size:0x20 +lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 +lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x14 +lbl_1_data_164 = .data:0x00000164; // type:object size:0x2 data:2byte +lbl_1_data_166 = .data:0x00000166; // type:object size:0xA +lbl_1_data_170 = .data:0x00000170; // type:object size:0x10 +lbl_1_data_180 = .data:0x00000180; // type:object size:0x4 data:4byte +lbl_1_data_184 = .data:0x00000184; // type:object size:0x4 +lbl_1_data_188 = .data:0x00000188; // type:object size:0x10 +lbl_1_data_198 = .data:0x00000198; // type:object size:0x8 +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x8 data:string +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0xC +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x7 data:string +lbl_1_data_1BB = .data:0x000001BB; // type:object size:0x9 +lbl_1_data_1C4 = .data:0x000001C4; // type:object size:0x8 data:4byte +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0xC +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x8 data:string +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x8 data:string +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0xA data:string +lbl_1_data_1F2 = .data:0x000001F2; // type:object size:0xE +lbl_1_data_200 = .data:0x00000200; // type:object size:0x8 data:string +lbl_1_data_208 = .data:0x00000208; // type:object size:0x8 data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0x6 data:string +lbl_1_data_216 = .data:0x00000216; // type:object size:0x6 data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x7 data:string +lbl_1_data_223 = .data:0x00000223; // type:object size:0x9 +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x18 +lbl_1_data_244 = .data:0x00000244; // type:object size:0x18 +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x48 +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x48 +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x8 +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x1C +lbl_1_data_310 = .data:0x00000310; // type:object size:0x8 +lbl_1_data_318 = .data:0x00000318; // type:object size:0x7 data:string +lbl_1_data_31F = .data:0x0000031F; // type:object size:0x7 data:string +lbl_1_data_326 = .data:0x00000326; // type:object size:0xA +lbl_1_data_330 = .data:0x00000330; // type:object size:0xC +lbl_1_data_33C = .data:0x0000033C; // type:object size:0x7 data:string +lbl_1_data_343 = .data:0x00000343; // type:object size:0xD data:string +lbl_1_data_350 = .data:0x00000350; // type:object size:0xF0 +lbl_1_data_440 = .data:0x00000440; // type:object size:0x10 +lbl_1_data_450 = .data:0x00000450; // type:object size:0x6 data:string +lbl_1_data_456 = .data:0x00000456; // type:object size:0x7 data:string +lbl_1_data_45D = .data:0x0000045D; // type:object size:0x7 data:string +lbl_1_data_464 = .data:0x00000464; // type:object size:0xC +lbl_1_data_470 = .data:0x00000470; // type:object size:0xC +lbl_1_data_47C = .data:0x0000047C; // type:object size:0xC +lbl_1_data_488 = .data:0x00000488; // type:object size:0x3 data:string +lbl_1_data_48B = .data:0x0000048B; // type:object size:0x4 data:string +lbl_1_data_48F = .data:0x0000048F; // type:object size:0x5 +lbl_1_data_494 = .data:0x00000494; // type:object size:0xC +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0xD data:string +lbl_1_data_4AD = .data:0x000004AD; // type:object size:0x5 data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x6 +lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0xC +lbl_1_data_4C4 = .data:0x000004C4; // type:object size:0x3 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x14 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:2byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0xC data:float +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x2 data:2byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x2 data:2byte +lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x2 data:2byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x2 data:2byte +lbl_1_bss_4E = .bss:0x0000004E; // type:object size:0xA data:2byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0xC +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x6 +lbl_1_bss_72 = .bss:0x00000072; // type:object size:0x6 data:2byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0xC +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x2 data:2byte +lbl_1_bss_9E = .bss:0x0000009E; // type:object size:0x2 data:2byte +lbl_1_bss_A2 = .bss:0x000000A2; // type:object size:0x2 data:2byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x6 +lbl_1_bss_AA = .bss:0x000000AA; // type:object size:0x6 +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x6 +lbl_1_bss_B6 = .bss:0x000000B6; // type:object size:0x2 data:2byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x2 data:2byte +lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x2 data:2byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x2 data:2byte +lbl_1_bss_C6 = .bss:0x000000C6; // type:object size:0x2 data:2byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x2 data:2byte +lbl_1_bss_D6 = .bss:0x000000D6; // type:object size:0x28 data:2byte +lbl_1_bss_FE = .bss:0x000000FE; // type:object size:0x2 data:2byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x2 data:2byte +lbl_1_bss_102 = .bss:0x00000102; // type:object size:0x6 data:2byte diff --git a/config/GMPP01_00/rels/w06Dll/splits.txt b/config/GMPP01_00/rels/w06Dll/splits.txt new file mode 100644 index 00000000..eee27cef --- /dev/null +++ b/config/GMPP01_00/rels/w06Dll/splits.txt @@ -0,0 +1,47 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w06Dll/main.c: + .text start:0x000000E0 end:0x00000D70 + .rodata start:0x00000010 end:0x00000040 + .data start:0x00000000 end:0x000001A8 + .bss start:0x00000000 end:0x00000018 + +REL/w06Dll/mg_item.c: + .text start:0x00000D70 end:0x00004878 + .rodata start:0x00000040 end:0x000000F0 + .data start:0x000001A8 end:0x000001D8 + .bss start:0x00000018 end:0x00000048 + +REL/w06Dll/mg_coin.c: + .text start:0x00004878 end:0x00006EF0 + .rodata start:0x000000F0 end:0x000001B0 + .data start:0x000001D8 end:0x00000208 + .bss start:0x00000048 end:0x00000090 + +REL/w06Dll/fire.c: + .text start:0x00006EF0 end:0x00007BD0 + .rodata start:0x000001B0 end:0x000001E8 + .data start:0x00000208 end:0x00000418 + .bss start:0x00000090 end:0x000000C8 + +REL/w06Dll/bridge.c: + .text start:0x00007BD0 end:0x00008F40 + .rodata start:0x000001E8 end:0x00000228 + .data start:0x00000418 end:0x00000498 + .bss start:0x000000C8 end:0x000000E8 + +REL/w06Dll/bowser.c: + .text start:0x00008F40 end:0x0000D0C4 + .rodata start:0x00000228 end:0x000002D8 + .data start:0x00000498 end:0x00000541 + .bss start:0x000000E8 end:0x000000F5 diff --git a/config/GMPP01_00/rels/w06Dll/symbols.txt b/config/GMPP01_00/rels/w06Dll/symbols.txt new file mode 100644 index 00000000..43936054 --- /dev/null +++ b/config/GMPP01_00/rels/w06Dll/symbols.txt @@ -0,0 +1,373 @@ +ObjectSetup = .text:0x00000000; // type:function size:0x30 scope:local +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +BoardCreate = .text:0x000000E0; // type:function size:0x4C4 +BoardDestroy = .text:0x000005A4; // type:function size:0x18C +fn_1_730 = .text:0x00000730; // type:function size:0x6C +fn_1_79C = .text:0x0000079C; // type:function size:0x20 +fn_1_7BC = .text:0x000007BC; // type:function size:0x144 +fn_1_900 = .text:0x00000900; // type:function size:0x84 +fn_1_984 = .text:0x00000984; // type:function size:0x3C +fn_1_9C0 = .text:0x000009C0; // type:function size:0x168 +fn_1_B28 = .text:0x00000B28; // type:function size:0x34 +fn_1_B5C = .text:0x00000B5C; // type:function size:0x214 +fn_1_D70 = .text:0x00000D70; // type:function size:0x1FC +fn_1_F6C = .text:0x00000F6C; // type:function size:0xE8 +fn_1_1054 = .text:0x00001054; // type:function size:0x90 +fn_1_10E4 = .text:0x000010E4; // type:function size:0x64 +fn_1_1148 = .text:0x00001148; // type:function size:0x68 +fn_1_11B0 = .text:0x000011B0; // type:function size:0xF0 +fn_1_12A0 = .text:0x000012A0; // type:function size:0x32C +fn_1_15CC = .text:0x000015CC; // type:function size:0x614 +fn_1_1BE0 = .text:0x00001BE0; // type:function size:0xD0 +fn_1_1CB0 = .text:0x00001CB0; // type:function size:0xAC +fn_1_1D5C = .text:0x00001D5C; // type:function size:0xD4 +fn_1_1E30 = .text:0x00001E30; // type:function size:0xD8 +fn_1_1F08 = .text:0x00001F08; // type:function size:0x140 +fn_1_2048 = .text:0x00002048; // type:function size:0x84 +fn_1_20CC = .text:0x000020CC; // type:function size:0xA8 +fn_1_2174 = .text:0x00002174; // type:function size:0x58 +fn_1_21CC = .text:0x000021CC; // type:function size:0x54 +fn_1_2220 = .text:0x00002220; // type:function size:0x21C +fn_1_243C = .text:0x0000243C; // type:function size:0x5E0 +fn_1_2A1C = .text:0x00002A1C; // type:function size:0x144 +fn_1_2B60 = .text:0x00002B60; // type:function size:0xB8 +fn_1_2C18 = .text:0x00002C18; // type:function size:0x178 +fn_1_2D90 = .text:0x00002D90; // type:function size:0x40 +fn_1_2DD0 = .text:0x00002DD0; // type:function size:0x48 +fn_1_2E18 = .text:0x00002E18; // type:function size:0xDC +fn_1_2EF4 = .text:0x00002EF4; // type:function size:0x57C +fn_1_3470 = .text:0x00003470; // type:function size:0xF0 +fn_1_3560 = .text:0x00003560; // type:function size:0x5C +fn_1_35BC = .text:0x000035BC; // type:function size:0x48 +fn_1_3604 = .text:0x00003604; // type:function size:0x94 +fn_1_3698 = .text:0x00003698; // type:function size:0x2DC +fn_1_3974 = .text:0x00003974; // type:function size:0x6FC +fn_1_4070 = .text:0x00004070; // type:function size:0xB4 +fn_1_4124 = .text:0x00004124; // type:function size:0x70 +fn_1_4194 = .text:0x00004194; // type:function size:0x118 +fn_1_42AC = .text:0x000042AC; // type:function size:0x130 +fn_1_43DC = .text:0x000043DC; // type:function size:0x84 +fn_1_4460 = .text:0x00004460; // type:function size:0x418 +fn_1_4878 = .text:0x00004878; // type:function size:0x198 +fn_1_4A10 = .text:0x00004A10; // type:function size:0x50 +fn_1_4A60 = .text:0x00004A60; // type:function size:0xA0 +fn_1_4B00 = .text:0x00004B00; // type:function size:0xA0 +fn_1_4BA0 = .text:0x00004BA0; // type:function size:0x58 +fn_1_4BF8 = .text:0x00004BF8; // type:function size:0x3C0 +fn_1_4FB8 = .text:0x00004FB8; // type:function size:0x1E4 +fn_1_519C = .text:0x0000519C; // type:function size:0x204 +fn_1_53A0 = .text:0x000053A0; // type:function size:0xF0 +fn_1_5490 = .text:0x00005490; // type:function size:0x23C +fn_1_56CC = .text:0x000056CC; // type:function size:0x110 +fn_1_57DC = .text:0x000057DC; // type:function size:0xA0 +fn_1_587C = .text:0x0000587C; // type:function size:0x80 +fn_1_58FC = .text:0x000058FC; // type:function size:0x6C +fn_1_5968 = .text:0x00005968; // type:function size:0x68 +fn_1_59D0 = .text:0x000059D0; // type:function size:0x13C +fn_1_5B0C = .text:0x00005B0C; // type:function size:0x48 +fn_1_5B54 = .text:0x00005B54; // type:function size:0x190 +fn_1_5CE4 = .text:0x00005CE4; // type:function size:0x1D8 +fn_1_5EBC = .text:0x00005EBC; // type:function size:0x40 +fn_1_5EFC = .text:0x00005EFC; // type:function size:0x5C +fn_1_5F58 = .text:0x00005F58; // type:function size:0x114 +fn_1_606C = .text:0x0000606C; // type:function size:0x9A0 +fn_1_6A0C = .text:0x00006A0C; // type:function size:0x240 +fn_1_6C4C = .text:0x00006C4C; // type:function size:0x244 +fn_1_6E90 = .text:0x00006E90; // type:function size:0x60 +fn_1_6EF0 = .text:0x00006EF0; // type:function size:0x90 +fn_1_6F80 = .text:0x00006F80; // type:function size:0x290 +fn_1_7210 = .text:0x00007210; // type:function size:0x94 +fn_1_72A4 = .text:0x000072A4; // type:function size:0x28 +fn_1_72CC = .text:0x000072CC; // type:function size:0x120 +fn_1_73EC = .text:0x000073EC; // type:function size:0xD0 +fn_1_74BC = .text:0x000074BC; // type:function size:0xB8 +fn_1_7574 = .text:0x00007574; // type:function size:0x120 +fn_1_7694 = .text:0x00007694; // type:function size:0xEC +fn_1_7780 = .text:0x00007780; // type:function size:0x1E4 +fn_1_7964 = .text:0x00007964; // type:function size:0x26C +fn_1_7BB0 = .text:0x00007BD0; // type:function size:0x38C +fn_1_7F3C = .text:0x00007F5C; // type:function size:0x68 +fn_1_7FA4 = .text:0x00007FC4; // type:function size:0x2C0 +fn_1_8264 = .text:0x00008284; // type:function size:0xBC +fn_1_8340 = .text:0x00008340; // type:function size:0x100 +fn_1_8440 = .text:0x00008440; // type:function size:0x70 +fn_1_84B0 = .text:0x000084B0; // type:function size:0x5C8 +fn_1_8A78 = .text:0x00008A78; // type:function size:0x4C8 +fn_1_8F20 = .text:0x00008F40; // type:function size:0x2B8 +fn_1_91D8 = .text:0x000091F8; // type:function size:0xBC +fn_1_9294 = .text:0x000092B4; // type:function size:0x44 +fn_1_92D8 = .text:0x000092F8; // type:function size:0xF0 +fn_1_93E8 = .text:0x000093E8; // type:function size:0x10C +fn_1_94F4 = .text:0x000094F4; // type:function size:0xD8 +fn_1_95CC = .text:0x000095CC; // type:function size:0x8B0 +fn_1_9E7C = .text:0x00009E7C; // type:function size:0x5AC +fn_1_A428 = .text:0x0000A428; // type:function size:0x744 +fn_1_AB6C = .text:0x0000AB6C; // type:function size:0x730 +fn_1_B29C = .text:0x0000B29C; // type:function size:0x424 +fn_1_B6C0 = .text:0x0000B6C0; // type:function size:0x240 +fn_1_B900 = .text:0x0000B900; // type:function size:0x230 +fn_1_BB30 = .text:0x0000BB30; // type:function size:0x1F8 +fn_1_BD28 = .text:0x0000BD28; // type:function size:0x3C +fn_1_BD64 = .text:0x0000BD64; // type:function size:0x48 +fn_1_BDAC = .text:0x0000BDAC; // type:function size:0x37C +fn_1_C108 = .text:0x0000C128; // type:function size:0x1AC +fn_1_C2B4 = .text:0x0000C2D4; // type:function size:0x158 +fn_1_C42C = .text:0x0000C42C; // type:function size:0x5B0 +fn_1_C9DC = .text:0x0000C9DC; // type:function size:0xD0 +fn_1_CAAC = .text:0x0000CAAC; // type:function size:0x40 +fn_1_CAEC = .text:0x0000CAEC; // type:function size:0x1C4 +fn_1_CC90 = .text:0x0000CCB0; // type:function size:0x7C +fn_1_CD0C = .text:0x0000CD2C; // type:function size:0x398 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:4byte +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x1 data:byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x1 data:byte +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x6 data:2byte +lbl_1_rodata_9A = .rodata:0x0000009A; // type:object size:0x1 data:byte +lbl_1_rodata_9E = .rodata:0x0000009E; // type:object size:0x6 data:2byte +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x5 +lbl_1_rodata_F5 = .rodata:0x000000F5; // type:object size:0x7 +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0xC data:4byte +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xF0 +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x2 data:2byte +lbl_1_data_F2 = .data:0x000000F2; // type:object size:0x2 data:2byte +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x2 data:2byte +lbl_1_data_F6 = .data:0x000000F6; // type:object size:0x2 data:2byte +lbl_1_data_F8 = .data:0x000000F8; // type:object size:0x8 +lbl_1_data_100 = .data:0x00000100; // type:object size:0x8 +lbl_1_data_108 = .data:0x00000108; // type:object size:0xA0 +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x2 data:2byte +lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x1 data:byte +lbl_1_data_1AD = .data:0x000001AD; // type:object size:0x3 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2 data:2byte +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0xC +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x5 data:string +lbl_1_data_1C5 = .data:0x000001C5; // type:object size:0x13 +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x2 data:2byte +lbl_1_data_1DA = .data:0x000001DA; // type:object size:0x2 data:2byte +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x2 data:2byte +lbl_1_data_1DE = .data:0x000001DE; // type:object size:0x6 +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x24 +lbl_1_data_208 = .data:0x00000208; // type:object size:0x20 +lbl_1_data_228 = .data:0x00000228; // type:object size:0x1 data:byte +lbl_1_data_22A = .data:0x0000022A; // type:object size:0x2 data:2byte +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x2 data:2byte +lbl_1_data_230 = .data:0x00000230; // type:object size:0x38 +lbl_1_data_268 = .data:0x00000268; // type:object size:0x5 data:string +lbl_1_data_26D = .data:0x0000026D; // type:object size:0xE +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x4 +lbl_1_data_27F = .data:0x0000027F; // type:object size:0x8 +lbl_1_data_287 = .data:0x00000287; // type:object size:0x12 data:string +lbl_1_data_299 = .data:0x00000299; // type:object size:0x11 data:string +lbl_1_data_2AA = .data:0x000002AA; // type:object size:0x18 data:string +lbl_1_data_2C2 = .data:0x000002C2; // type:object size:0x17 data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x16 data:string +lbl_1_data_2EF = .data:0x000002EF; // type:object size:0x10 data:string +lbl_1_data_2FF = .data:0x000002FF; // type:object size:0x10 data:string +lbl_1_data_30F = .data:0x0000030F; // type:object size:0x11 data:string +lbl_1_data_320 = .data:0x00000320; // type:object size:0x15 data:string +lbl_1_data_335 = .data:0x00000335; // type:object size:0x15 data:string +lbl_1_data_34A = .data:0x0000034A; // type:object size:0x10 data:string +lbl_1_data_35A = .data:0x0000035A; // type:object size:0x13 data:string +lbl_1_data_36D = .data:0x0000036D; // type:object size:0x13 data:string +lbl_1_data_380 = .data:0x00000380; // type:object size:0x98 +lbl_1_data_418 = .data:0x00000418; // type:object size:0x2 data:2byte +lbl_1_data_41C = .data:0x0000041C; // type:object size:0x18 +lbl_1_data_434 = .data:0x00000434; // type:object size:0x18 +lbl_1_data_44C = .data:0x0000044C; // type:object size:0xC +lbl_1_data_458 = .data:0x00000458; // type:object size:0x20 +lbl_1_data_478 = .data:0x00000478; // type:object size:0x20 +lbl_1_data_498 = .data:0x00000498; // type:object size:0x2 data:2byte +lbl_1_data_49A = .data:0x0000049A; // type:object size:0x2 data:2byte +lbl_1_data_49C = .data:0x0000049C; // type:object size:0x2 data:2byte +lbl_1_data_49E = .data:0x0000049E; // type:object size:0x2 data:2byte +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x2 data:2byte +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x2 data:2byte +lbl_1_data_4A4 = .data:0x000004A4; // type:object size:0x8 +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x20 +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x20 +lbl_1_data_4EC = .data:0x000004EC; // type:object size:0x24 +lbl_1_data_510 = .data:0x00000510; // type:object size:0x20 +lbl_1_data_530 = .data:0x00000530; // type:object size:0x6 data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0xB data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 data:byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x1 data:byte +lbl_1_bss_33 = .bss:0x00000033; // type:object size:0x1 data:byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte +lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x6 +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC data:2byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x1 data:byte +lbl_1_bss_59 = .bss:0x00000059; // type:object size:0x1 data:byte +lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x1 data:byte +lbl_1_bss_5B = .bss:0x0000005B; // type:object size:0x31 +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x28 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x2 data:2byte +lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x4 +lbl_1_bss_C6 = .bss:0x000000C6; // type:object size:0x1 data:byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x6 +lbl_1_bss_D6 = .bss:0x000000D6; // type:object size:0xC +lbl_1_bss_E2 = .bss:0x000000E2; // type:object size:0x2 data:2byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x2 data:2byte +lbl_1_bss_E6 = .bss:0x000000E6; // type:object size:0x1 data:byte +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x4 data:4byte +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x4 data:4byte +lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x4 data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x1 data:byte diff --git a/config/GMPP01_00/rels/w10Dll/splits.txt b/config/GMPP01_00/rels/w10Dll/splits.txt new file mode 100644 index 00000000..c6adc1ab --- /dev/null +++ b/config/GMPP01_00/rels/w10Dll/splits.txt @@ -0,0 +1,33 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w10Dll/main.c: + .text start:0x000000E0 end:0x00000AEC + .rodata start:0x00000010 end:0x00000038 + .data start:0x00000000 end:0x00000078 + .bss start:0x00000000 end:0x00000018 + +REL/w10Dll/host.c: + .text start:0x00000AEC end:0x00000D2C + .rodata start:0x00000038 end:0x00000048 + .data start:0x00000078 end:0x00000098 + .bss start:0x00000018 end:0x00000020 + +REL/w10Dll/scene.c: + .text start:0x00000D2C end:0x00001984 + .rodata start:0x00000048 end:0x00000058 + +REL/w10Dll/tutorial.c: + .text start:0x00001984 end:0x0000206C + .rodata start:0x00000058 end:0x00000070 + .data start:0x00000098 end:0x000002D4 + .bss start:0x00000020 end:0x00000038 diff --git a/config/GMPP01_00/rels/w10Dll/symbols.txt b/config/GMPP01_00/rels/w10Dll/symbols.txt new file mode 100644 index 00000000..f10220e4 --- /dev/null +++ b/config/GMPP01_00/rels/w10Dll/symbols.txt @@ -0,0 +1,116 @@ +ObjectSetup = .text:0x00000000; // type:function size:0x30 scope:local +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +BoardCreate = .text:0x000000E0; // type:function size:0x5F8 +BoardDestroy = .text:0x000006D8; // type:function size:0x1E8 +LightSetHook = .text:0x000008C0; // type:function size:0x44 scope:local +LightResetHook = .text:0x00000904; // type:function size:0x4 scope:local +LandEvent = .text:0x00000908; // type:function size:0x4 scope:local +WalkEvent = .text:0x0000090C; // type:function size:0x8 scope:local +fn_1_914 = .text:0x00000914; // type:function size:0x4 +fn_1_918 = .text:0x00000918; // type:function size:0x4 +WalkMiniEvent = .text:0x0000091C; // type:function size:0x4 scope:local +fn_1_920 = .text:0x00000920; // type:function size:0x1CC +HostCreate = .text:0x00000AEC; // type:function size:0xB4 +HostWinExec = .text:0x00000BA0; // type:function size:0x70 +HostPosSet = .text:0x00000C10; // type:function size:0x10 +UpdateHost = .text:0x00000C20; // type:function size:0x10C scope:local +TutorialStartExec = .text:0x00000D2C; // type:function size:0x28 +TutorialPreRollExec = .text:0x00000D54; // type:function size:0x28 +TutorialOrderExec = .text:0x00000D7C; // type:function size:0x28 +TutorialP1StartExec = .text:0x00000DA4; // type:function size:0x28 +TutorialP2StartExec = .text:0x00000DCC; // type:function size:0x28 +TutorialP3StartExec = .text:0x00000DF4; // type:function size:0x28 +TutorialP4StartExec = .text:0x00000E1C; // type:function size:0x28 +TutorialGameStartExec = .text:0x00000E44; // type:function size:0x50 +TutorialRollExec = .text:0x00000E94; // type:function size:0x28 +TutorialMoveExec = .text:0x00000EBC; // type:function size:0x28 +TutorialLandExec = .text:0x00000EE4; // type:function size:0x4 +TutorialLandBlueExec = .text:0x00000EE8; // type:function size:0x48 +TutorialLandRedExec = .text:0x00000F30; // type:function size:0x3C +TutorialLandHappenExec = .text:0x00000F6C; // type:function size:0x4C +TutorialLandFortuneExec = .text:0x00000FB8; // type:function size:0x58 +TutorialLandBowserExec = .text:0x00001010; // type:function size:0x4C +TutorialLandMushroomExec = .text:0x0000105C; // type:function size:0x3C +TutorialMushroomMegaExec = .text:0x00001098; // type:function size:0x28 +TutorialMushroomMiniExec = .text:0x000010C0; // type:function size:0x38 +TutorialLandBattleExec = .text:0x000010F8; // type:function size:0x3C +TutorialLandWarpExec = .text:0x00001134; // type:function size:0x44 +TutorialWarpDecideExec = .text:0x00001178; // type:function size:0x28 +TutorialBlockStarExec = .text:0x000011A0; // type:function size:0x4C +TutorialBlockCoinExec = .text:0x000011EC; // type:function size:0x54 +TutorialMiniMegaExec = .text:0x00001240; // type:function size:0x38 +TutorialMiniUseExec = .text:0x00001278; // type:function size:0x28 +TutorialMiniStopExec = .text:0x000012A0; // type:function size:0x3C +TutorialMegaUseExec = .text:0x000012DC; // type:function size:0x28 +TutorialMegaDiceExec = .text:0x00001304; // type:function size:0x28 +TutorialMegaStompExec = .text:0x0000132C; // type:function size:0x28 +TutorialMegaEventExec = .text:0x00001354; // type:function size:0x28 +TutorialMegaStopExec = .text:0x0000137C; // type:function size:0x28 +TutorialEndExec = .text:0x000013A4; // type:function size:0x3C8 +TutorialMGStatusExec = .text:0x0000176C; // type:function size:0x30 +TutorialMG4PExec = .text:0x0000179C; // type:function size:0x58 +TutorialMG2Vs2Exec = .text:0x000017F4; // type:function size:0x40 +TutorialMG1Vs3Exec = .text:0x00001834; // type:function size:0x88 +TutorialMG1Vs3AltExec = .text:0x000018BC; // type:function size:0x4C +TutorialShopExec = .text:0x00001908; // type:function size:0x28 +TutorialLotteryExec = .text:0x00001930; // type:function size:0x28 +TutorialBooHouseExec = .text:0x00001958; // type:function size:0x28 +TutorialNullExec = .text:0x00001980; // type:function size:0x4 +CloseTutorial = .text:0x00001984; // type:function size:0x128 scope:local +TutorialHookExec = .text:0x00001AAC; // type:function size:0x2BC +TutorialSprCreate = .text:0x00001D68; // type:function size:0x84 +TutorialSprKill = .text:0x00001DEC; // type:function size:0x50 +TutorialSpaceShow = .text:0x00001E3C; // type:function size:0x174 +TutorialSpaceHide = .text:0x00001FB0; // type:function size:0xBC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +mapObjTbl = .data:0x00000000; // type:object size:0x28 scope:local data:float +bgMdl = .data:0x00000028; // type:object size:0x2 scope:local data:2byte +fgMdl = .data:0x0000002A; // type:object size:0x2 scope:local data:2byte +boardStarHostMdl = .data:0x0000002C; // type:object size:0x2 data:2byte +boardShopHostMdl = .data:0x0000002E; // type:object size:0x2 data:2byte +boardLotteryHostMdl = .data:0x00000030; // type:object size:0x2 data:2byte +boardBooHouseHostMdl = .data:0x00000032; // type:object size:0x2 data:2byte +charMotDirTbl = .data:0x00000034; // type:object size:0x20 scope:local data:4byte +starHostMot = .data:0x00000054; // type:object size:0x8 scope:local +shopHostMot = .data:0x0000005C; // type:object size:0x8 scope:local +lotteryHostMot = .data:0x00000064; // type:object size:0x8 scope:local +booHouseHostMot = .data:0x0000006C; // type:object size:0x8 scope:local +hostMot = .data:0x00000078; // type:object size:0x8 scope:local +hostPosTbl = .data:0x00000080; // type:object size:0x18 scope:local data:float +lbl_1_data_98 = .data:0x00000098; // type:object size:0x2D scope:local data:string +rollDataTbl = .data:0x000000C6; // type:object size:0x42 scope:local +sceneTbl = .data:0x00000108; // type:object size:0x150 scope:local +lbl_1_data_258 = .data:0x00000258; // type:object size:0x50 scope:local data:string +tutorialSprTbl = .data:0x000002A8; // type:object size:0x2C scope:local +boardWork = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +motTbl = .bss:0x00000008; // type:object size:0x4 scope:local data:4byte +tutorialDoneF = .bss:0x0000000C; // type:object size:0x2 data:2byte +tutorialExitWin = .bss:0x0000000E; // type:object size:0x2 data:2byte +boardMapObjMdl = .bss:0x00000010; // type:object size:0x2 data:2byte +hostProc = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte +hostPos = .bss:0x0000001C; // type:object size:0x2 scope:local data:2byte +hostMdl = .bss:0x0000001E; // type:object size:0x2 scope:local data:2byte +sprCurr = .bss:0x00000020; // type:object size:0x2 scope:local data:2byte +sprList = .bss:0x00000022; // type:object size:0x16 scope:local diff --git a/config/GMPP01_00/rels/w20Dll/splits.txt b/config/GMPP01_00/rels/w20Dll/splits.txt new file mode 100644 index 00000000..9df8ed45 --- /dev/null +++ b/config/GMPP01_00/rels/w20Dll/splits.txt @@ -0,0 +1,17 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w20Dll/main.c: + .text start:0x000000E0 end:0x00000678 + .rodata start:0x00000010 end:0x00000030 + .data start:0x00000000 end:0x00000034 + .bss start:0x00000000 end:0x0000000E diff --git a/config/GMPP01_00/rels/w20Dll/symbols.txt b/config/GMPP01_00/rels/w20Dll/symbols.txt new file mode 100644 index 00000000..0e84011e --- /dev/null +++ b/config/GMPP01_00/rels/w20Dll/symbols.txt @@ -0,0 +1,33 @@ +ObjectSetup = .text:0x00000000; // type:function size:0x30 scope:local +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +BoardCreate = .text:0x000000E0; // type:function size:0x2B0 +BoardDestroy = .text:0x00000390; // type:function size:0xBC +fn_1_44C = .text:0x0000044C; // type:function size:0x44 +fn_1_490 = .text:0x00000490; // type:function size:0x4 +fn_1_494 = .text:0x00000494; // type:function size:0x4 +fn_1_498 = .text:0x00000498; // type:function size:0x8 +fn_1_4A0 = .text:0x000004A0; // type:function size:0x4 +fn_1_4A4 = .text:0x000004A4; // type:function size:0x4 +fn_1_4A8 = .text:0x000004A8; // type:function size:0x4 +fn_1_4AC = .text:0x000004AC; // type:function size:0x1CC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_2 = .data:0x00000002; // type:object size:0x2 data:2byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0x2 data:2byte +lbl_1_data_6 = .data:0x00000006; // type:object size:0x2 data:2byte +lbl_1_data_8 = .data:0x00000008; // type:object size:0x2 data:2byte +lbl_1_data_A = .data:0x0000000A; // type:object size:0x2 data:2byte +lbl_1_data_C = .data:0x0000000C; // type:object size:0x20 data:4byte +unkMotTbl = .data:0x0000002C; // type:object size:0x8 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 diff --git a/config/GMPP01_00/rels/w21Dll/splits.txt b/config/GMPP01_00/rels/w21Dll/splits.txt new file mode 100644 index 00000000..1ab21815 --- /dev/null +++ b/config/GMPP01_00/rels/w21Dll/splits.txt @@ -0,0 +1,15 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w21Dll/main.c: + .text start:0x000000E0 end:0x000003E0 + .rodata start:0x00000010 end:0x00000018 + .data start:0x00000000 end:0x00000010 diff --git a/config/GMPP01_00/rels/w21Dll/symbols.txt b/config/GMPP01_00/rels/w21Dll/symbols.txt new file mode 100644 index 00000000..708d3b88 --- /dev/null +++ b/config/GMPP01_00/rels/w21Dll/symbols.txt @@ -0,0 +1,18 @@ +ObjectSetup = .text:0x00000000; // type:function size:0x30 scope:local +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +BoardCreate = .text:0x000000E0; // type:function size:0x1D4 +BoardDestroy = .text:0x000002B4; // type:function size:0xB8 +LightSetHook = .text:0x0000036C; // type:function size:0x44 scope:local +LightResetHook = .text:0x000003B0; // type:function size:0x20 scope:local +WalkEvent = .text:0x000003D0; // type:function size:0x8 scope:local +WalkMiniEvent = .text:0x000003D8; // type:function size:0x4 scope:local +LandEvent = .text:0x000003DC; // type:function size:0x4 scope:local +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +bgMdl = .data:0x00000000; // type:object size:0x2 scope:local data:2byte +fgMdl = .data:0x00000002; // type:object size:0x2 scope:local data:2byte +hostMdl = .data:0x00000004; // type:object size:0x2 scope:local data:2byte +hostMotTbl = .data:0x00000008; // type:object size:0x8 scope:local diff --git a/config/GMPP01_00/rels/ztardll/splits.txt b/config/GMPP01_00/rels/ztardll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_00/rels/ztardll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_00/rels/ztardll/symbols.txt b/config/GMPP01_00/rels/ztardll/symbols.txt new file mode 100644 index 00000000..2d23cebb --- /dev/null +++ b/config/GMPP01_00/rels/ztardll/symbols.txt @@ -0,0 +1,258 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x384 +fn_1_424 = .text:0x00000424; // type:function size:0x1350 +fn_1_1774 = .text:0x00001774; // type:function size:0x57C +fn_1_1CF0 = .text:0x00001CF0; // type:function size:0xB0 +fn_1_1DA0 = .text:0x00001DA0; // type:function size:0x5B0 +fn_1_2350 = .text:0x00002350; // type:function size:0x1060 +fn_1_33B0 = .text:0x000033B0; // type:function size:0xD34 +fn_1_40E4 = .text:0x000040E4; // type:function size:0x290 +fn_1_4374 = .text:0x00004374; // type:function size:0x5D4 +fn_1_4948 = .text:0x00004948; // type:function size:0x874 +fn_1_51BC = .text:0x000051BC; // type:function size:0x194 +fn_1_5350 = .text:0x00005350; // type:function size:0x14BC +fn_1_680C = .text:0x0000680C; // type:function size:0x140 +fn_1_694C = .text:0x0000694C; // type:function size:0xC10 +fn_1_755C = .text:0x0000755C; // type:function size:0x340 +fn_1_789C = .text:0x0000789C; // type:function size:0x3A4 +fn_1_7C40 = .text:0x00007C40; // type:function size:0x16C +fn_1_7DAC = .text:0x00007DAC; // type:function size:0xA0 +fn_1_7E4C = .text:0x00007E4C; // type:function size:0x224 +fn_1_8070 = .text:0x00008070; // type:function size:0x2DC +fn_1_834C = .text:0x0000834C; // type:function size:0x2C +fn_1_8378 = .text:0x00008378; // type:function size:0x518 +fn_1_8890 = .text:0x00008890; // type:function size:0x2C +fn_1_88BC = .text:0x000088BC; // type:function size:0x28 +fn_1_88E4 = .text:0x000088E4; // type:function size:0x274 +fn_1_8B58 = .text:0x00008B58; // type:function size:0x2C +fn_1_8B84 = .text:0x00008B84; // type:function size:0x2C +fn_1_8BB0 = .text:0x00008BB0; // type:function size:0x24 +fn_1_8BD4 = .text:0x00008BD4; // type:function size:0x2BC +fn_1_8E90 = .text:0x00008E90; // type:function size:0x500 +fn_1_9390 = .text:0x00009390; // type:function size:0x480 +fn_1_9810 = .text:0x00009810; // type:function size:0x80C +fn_1_A01C = .text:0x0000A01C; // type:function size:0x28 +fn_1_A044 = .text:0x0000A044; // type:function size:0x28 +fn_1_A06C = .text:0x0000A06C; // type:function size:0x21C +fn_1_A288 = .text:0x0000A288; // type:function size:0x194 +fn_1_A41C = .text:0x0000A41C; // type:function size:0x198 +fn_1_A5B4 = .text:0x0000A5B4; // type:function size:0x9C +fn_1_A650 = .text:0x0000A650; // type:function size:0x2D8 +fn_1_A928 = .text:0x0000A928; // type:function size:0x2DC +fn_1_AC04 = .text:0x0000AC04; // type:function size:0x1E0 +fn_1_ADE4 = .text:0x0000ADE4; // type:function size:0xF0 +fn_1_AED4 = .text:0x0000AED4; // type:function size:0x50 +fn_1_AF24 = .text:0x0000AF24; // type:function size:0x584 +fn_1_B4A8 = .text:0x0000B4A8; // type:function size:0x5D8 +fn_1_BA80 = .text:0x0000BA80; // type:function size:0x33C +fn_1_BDBC = .text:0x0000BDBC; // type:function size:0x274 +fn_1_C030 = .text:0x0000C030; // type:function size:0x7C +fn_1_C0AC = .text:0x0000C0AC; // type:function size:0x44C +fn_1_C4F8 = .text:0x0000C4F8; // type:function size:0x434 +fn_1_C92C = .text:0x0000C92C; // type:function size:0x204 +fn_1_CB30 = .text:0x0000CB30; // type:function size:0x790 +fn_1_D2C0 = .text:0x0000D2C0; // type:function size:0xB0C +fn_1_DDCC = .text:0x0000DDCC; // type:function size:0x720 +fn_1_E4EC = .text:0x0000E4EC; // type:function size:0x9C +fn_1_E588 = .text:0x0000E588; // type:function size:0xCCC +fn_1_F254 = .text:0x0000F254; // type:function size:0x924 +fn_1_FB78 = .text:0x0000FB78; // type:function size:0x258 +fn_1_FDD0 = .text:0x0000FDD0; // type:function size:0x958 +fn_1_10728 = .text:0x00010728; // type:function size:0x7C +fn_1_107A4 = .text:0x000107A4; // type:function size:0x164 +fn_1_10908 = .text:0x00010908; // type:function size:0x1B8 +fn_1_10AC0 = .text:0x00010AC0; // type:function size:0xA4 +fn_1_10B64 = .text:0x00010B64; // type:function size:0xF4 +fn_1_10C58 = .text:0x00010C58; // type:function size:0x80 +fn_1_10CD8 = .text:0x00010CD8; // type:function size:0x80 +fn_1_10D58 = .text:0x00010D58; // type:function size:0x28 +fn_1_10D80 = .text:0x00010D80; // type:function size:0x20 +fn_1_10DA0 = .text:0x00010DA0; // type:function size:0xD8 +fn_1_10E78 = .text:0x00010E78; // type:function size:0xC8 +fn_1_10F40 = .text:0x00010F40; // type:function size:0xBC +fn_1_10FFC = .text:0x00010FFC; // type:function size:0x40 +fn_1_1103C = .text:0x0001103C; // type:function size:0x24 +fn_1_11060 = .text:0x00011060; // type:function size:0x1C0 +fn_1_11220 = .text:0x00011220; // type:function size:0x84 +fn_1_112A4 = .text:0x000112A4; // type:function size:0xD4 +fn_1_11378 = .text:0x00011378; // type:function size:0x58 +fn_1_113D0 = .text:0x000113D0; // type:function size:0x15C +fn_1_1152C = .text:0x0001152C; // type:function size:0x21C +fn_1_11748 = .text:0x00011748; // type:function size:0x204 +fn_1_1194C = .text:0x0001194C; // type:function size:0x54 +fn_1_119A0 = .text:0x000119A0; // type:function size:0x304 +fn_1_11CA4 = .text:0x00011CA4; // type:function size:0x304 +fn_1_11FA8 = .text:0x00011FA8; // type:function size:0x340 +fn_1_122E8 = .text:0x000122E8; // type:function size:0xC4 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x38 data:4byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 data:string +lbl_1_data_22 = .data:0x00000022; // type:object size:0xA +lbl_1_data_2C = .data:0x0000002C; // type:object size:0x18 +lbl_1_data_44 = .data:0x00000044; // type:object size:0x6 +lbl_1_data_4A = .data:0x0000004A; // type:object size:0xC +lbl_1_data_56 = .data:0x00000056; // type:object size:0xE data:wstring +lbl_1_data_64 = .data:0x00000064; // type:object size:0x20 +lbl_1_data_84 = .data:0x00000084; // type:object size:0x10 +lbl_1_data_94 = .data:0x00000094; // type:object size:0xC +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA data:string +lbl_1_data_AA = .data:0x000000AA; // type:object size:0x6 +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x4C0 +lbl_1_data_570 = .data:0x00000570; // type:object size:0x20 +lbl_1_data_590 = .data:0x00000590; // type:object size:0x20 +lbl_1_data_5B0 = .data:0x000005B0; // type:object size:0x3C data:string +lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x19 data:string +lbl_1_data_605 = .data:0x00000605; // type:object size:0x1A data:string +lbl_1_data_61F = .data:0x0000061F; // type:object size:0x3D +lbl_1_data_65C = .data:0x0000065C; // type:object size:0x20 data:4byte +lbl_1_data_67C = .data:0x0000067C; // type:object size:0x40 data:4byte +lbl_1_data_6BC = .data:0x000006BC; // type:object size:0x70 +lbl_1_data_72C = .data:0x0000072C; // type:object size:0x90 data:4byte +lbl_1_data_7BC = .data:0x000007BC; // type:object size:0x20 +lbl_1_data_7DC = .data:0x000007DC; // type:object size:0x8 data:4byte +lbl_1_data_7E4 = .data:0x000007E4; // type:object size:0x10 +lbl_1_data_7F4 = .data:0x000007F4; // type:object size:0x20 +lbl_1_data_814 = .data:0x00000814; // type:object size:0x4 data:4byte +lbl_1_data_818 = .data:0x00000818; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x28 data:2byte +lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x8 data:2byte +lbl_1_bss_3E = .bss:0x0000003E; // type:object size:0x2 data:2byte +lbl_1_bss_42 = .bss:0x00000042; // type:object size:0x2 data:2byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x2 data:2byte +lbl_1_bss_46 = .bss:0x00000046; // type:object size:0x2 data:2byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x2 data:2byte +lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x2 data:2byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x2 data:2byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x2 data:2byte +lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x2 data:2byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x2 data:2byte +lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x2 data:2byte +lbl_1_bss_5E = .bss:0x0000005E; // type:object size:0x2 data:2byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x8 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x14 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x180 data:4byte +lbl_1_bss_20C = .bss:0x0000020C; // type:object size:0x60 data:4byte +lbl_1_bss_26C = .bss:0x0000026C; // type:object size:0x6C data:4byte diff --git a/config/GMPP01_00/splits.txt b/config/GMPP01_00/splits.txt new file mode 100644 index 00000000..3706997a --- /dev/null +++ b/config/GMPP01_00/splits.txt @@ -0,0 +1,567 @@ +Sections: + .init type:code align:4 + extab type:rodata align:32 + extabindex type:rodata align:32 + .text type:code align:8 + .ctors type:rodata align:4 + .dtors type:rodata align:32 + .rodata type:rodata align:32 + .data type:data align:32 + .bss type:bss align:32 + .sdata type:data align:4 + .sbss type:bss align:32 + .sdata2 type:rodata align:32 + .sbss2 type:bss align:32 + +game/main.c: + .text start:0x800057C0 end:0x80005A64 + .data start:0x8011EC00 end:0x8011EC10 + .sdata start:0x801F07C0 end:0x801F07D0 + .sbss start:0x801F0DC0 end:0x801F0E18 + .sdata2 start:0x801F1D20 end:0x801F1D28 + +game/pad.c: + .text start:0x80005A64 end:0x80006480 + .data start:0x8011EC10 end:0x8011EC20 + .bss start:0x8015FBA0 end:0x8015FBE0 + .sbss start:0x801F0E18 end:0x801F0EA0 + +game/dvd.c: + .text start:0x80006480 end:0x80006E40 + .data start:0x8011EC20 end:0x8011ED78 + .sdata start:0x801F07D0 end:0x801F07D8 + .sbss start:0x801F0EA0 end:0x801F0EA8 + +game/data.c: + .text start:0x80006E40 end:0x80009408 + .data start:0x8011ED78 end:0x8011FC00 + .bss start:0x8015FBE0 end:0x801629E0 + .sdata start:0x801F07D8 end:0x801F07E8 + .sbss start:0x801F0EA8 end:0x801F0EB8 + +game/decode.c: + .text start:0x80009408 end:0x80009B04 + .data start:0x8011FC00 end:0x8011FC20 + .bss start:0x801629E0 end:0x80162DE0 + +game/font.c: + .data start:0x8011FC20 end:0x80121C20 + +game/init.c: + .text start:0x80009B04 end:0x8000A46C + .data start:0x80121C20 end:0x80121D70 + .bss start:0x80162DE0 end:0x80162E20 + .sdata start:0x801F07E8 end:0x801F0800 + .sbss start:0x801F0EB8 end:0x801F0EE8 + .sdata2 start:0x801F1D28 end:0x801F1D38 + +game/jmp.c: + .text start:0x8000A46C end:0x8000A560 + +game/malloc.c: + .text start:0x8000A560 end:0x8000A940 + .data start:0x80121D70 end:0x80121DE8 + .bss start:0x80162E20 end:0x80162E38 + +game/memory.c: + .text start:0x8000A940 end:0x8000AEF8 + .data start:0x80121DE8 end:0x80121F60 + +game/printfunc.c: + .text start:0x8000AEF8 end:0x8000C4AC + .data start:0x80121F60 end:0x80121FA0 + .bss start:0x80162E38 end:0x80169738 + .sbss start:0x801F0EE8 end:0x801F0EF8 + .sdata2 start:0x801F1D38 end:0x801F1D88 + +game/process.c: + .text start:0x8000C4AC end:0x8000D350 + .data start:0x80121FA0 end:0x80121FF0 + .bss start:0x80169738 end:0x80169830 + .sbss start:0x801F0EF8 end:0x801F0F08 + +game/sprman.c: + .text start:0x8000D350 end:0x8000F6A8 + .rodata start:0x8011DB20 end:0x8011DB30 + .data start:0x80121FF0 end:0x80122110 + .bss start:0x80169830 end:0x80179A30 + .sdata start:0x801F0800 end:0x801F0810 + .sbss start:0x801F0F08 end:0x801F0F10 + .sdata2 start:0x801F1D88 end:0x801F1DB0 + +game/sprput.c: + .text start:0x8000F6A8 end:0x80010B38 + .rodata start:0x8011DB30 end:0x8011DB40 + .data start:0x80122110 end:0x80122140 + .bss start:0x80179A30 end:0x80179A60 + .sbss start:0x801F0F10 end:0x801F0F18 + .sdata2 start:0x801F1DB0 end:0x801F1DE8 + +game/hsfload.c: + .text start:0x80010B38 end:0x80014020 + .data start:0x80122140 end:0x801221B0 + .bss start:0x80179A60 end:0x8017A020 + .sbss start:0x801F0F18 end:0x801F0F50 + +game/hsfdraw.c: + .text start:0x80014020 end:0x8001F9B4 + .rodata start:0x8011DB40 end:0x8011DB50 + .data start:0x801221B0 end:0x801223C0 + .bss start:0x8017A020 end:0x80184B60 + .sdata start:0x801F0810 end:0x801F0828 + .sbss start:0x801F0F50 end:0x801F0FF0 + .sdata2 start:0x801F1DE8 end:0x801F1E70 + +game/hsfman.c: + .text start:0x8001F9B4 end:0x800250F0 + .data start:0x801223C0 end:0x8012D478 + .bss start:0x80184B60 end:0x801AA770 + .sbss start:0x801F0FF0 end:0x801F1020 + .sdata2 start:0x801F1E70 end:0x801F1ED0 + .sbss2 start:0x801F3FC0 end:0x801F3FC8 + +game/hsfmotion.c: + .text start:0x800250F0 end:0x80028B0C + .data start:0x8012D478 end:0x8012D658 + .bss start:0x801AA770 end:0x801AAF70 + .sbss start:0x801F1020 end:0x801F1028 + .sdata2 start:0x801F1ED0 end:0x801F1F20 + +game/hsfanim.c: + .text start:0x80028B0C end:0x8002CB7C + .data start:0x8012D658 end:0x8012D718 + .bss start:0x801AAF70 end:0x801ACB30 + .sdata2 start:0x801F1F20 end:0x801F1FA8 + +game/hsfex.c: + .text start:0x8002CB7C end:0x8002E754 + .data start:0x8012D718 end:0x8012D738 + .sdata2 start:0x801F1FA8 end:0x801F2038 + +game/perf.c: + .text start:0x8002E754 end:0x8002EBE0 + .bss start:0x801ACB30 end:0x801ACED8 + .sdata start:0x801F0828 end:0x801F0838 + .sbss start:0x801F1028 end:0x801F1080 + +game/objmain.c: + .text start:0x8002EBE0 end:0x8002FF54 + .data start:0x8012D738 end:0x8012DAE8 + .bss start:0x801ACED8 end:0x801ACF98 + .sdata start:0x801F0838 end:0x801F0840 + .sbss start:0x801F1080 end:0x801F10B0 + .sdata2 start:0x801F2038 end:0x801F2060 + +game/fault.c: + .text start:0x8002FF54 end:0x800308C0 + .data start:0x8012DAE8 end:0x8012E310 + .bss start:0x801ACF98 end:0x801ACFB0 + .sdata start:0x801F0840 end:0x801F0850 + .sbss start:0x801F10B0 end:0x801F10C0 + +game/gamework.c: + .text start:0x800308C0 end:0x800315D4 + .rodata start:0x8011DB50 end:0x8011DB70 + .bss start:0x801ACFB0 end:0x801AD3A8 + .sdata start:0x801F0850 end:0x801F0858 + +game/objsysobj.c: + .text start:0x800315D4 end:0x80031DCC + .bss start:0x801AD3A8 end:0x801AD580 + .sbss start:0x801F10C0 end:0x801F10C8 + .sdata2 start:0x801F2060 end:0x801F2070 + +game/objdll.c: + .text start:0x80031DCC end:0x8003260C + .data start:0x8012E310 end:0x8012E7A8 + .bss start:0x801AD580 end:0x801AD5D0 + .sbss start:0x801F10C8 end:0x801F10D0 + +game/frand.c: + .text start:0x8003260C end:0x80032848 + .sbss start:0x801F10D0 end:0x801F10D8 + .sdata2 start:0x801F2070 end:0x801F2080 + +game/audio.c: + .text start:0x80032848 end:0x80033F08 + .data start:0x8012E7A8 end:0x8012EF50 + .bss start:0x801AD5D0 end:0x801AD7F0 + .sdata start:0x801F0858 end:0x801F0860 + .sbss start:0x801F10D8 end:0x801F1108 + .sdata2 start:0x801F2080 end:0x801F2090 + +game/EnvelopeExec.c: + .text start:0x80033F08 end:0x800353C8 + .sbss start:0x801F1108 end:0x801F1138 + .sdata2 start:0x801F2090 end:0x801F20A8 + +game/minigame_seq.c: + .text start:0x800353C8 end:0x8003F6E0 + .data start:0x8012EF50 end:0x8012F5B0 + .bss start:0x801AD7F0 end:0x801ADC00 + .sdata start:0x801F0860 end:0x801F0968 + .sbss start:0x801F1138 end:0x801F1158 + .sdata2 start:0x801F20A8 end:0x801F2268 + +game/ovllist.c: + .data start:0x8012F5B0 end:0x8012FF20 + +game/esprite.c: + .text start:0x8003F6E0 end:0x8003FD90 + .bss start:0x801ADC00 end:0x801AF400 + .sbss start:0x801F1158 end:0x801F1160 + +game/code_8003FF68.c: + .text start:0x8003FD90 end:0x80040328 + .data start:0x8012FF20 end:0x8012FF40 + .bss start:0x801AF400 end:0x801AF700 + .sdata start:0x801F0968 end:0x801F0988 + .sbss start:0x801F1160 end:0x801F1168 + .sdata2 start:0x801F2268 end:0x801F2280 + +game/ClusterExec.c: + .text start:0x80040328 end:0x80040B88 + .sdata2 start:0x801F2280 end:0x801F2290 + +game/ShapeExec.c: + .text start:0x80040B88 end:0x80040F98 + .sdata2 start:0x801F2290 end:0x801F22A0 + +game/wipe.c: + .text start:0x80040F98 end:0x80041ED4 + .data start:0x8012FF40 end:0x8012FF60 + .bss start:0x801AF700 end:0x801AF760 + .sdata start:0x801F0988 end:0x801F0990 + .sbss start:0x801F1168 end:0x801F1170 + .sdata2 start:0x801F22A0 end:0x801F22C8 + +game/window.c: + .text start:0x80041ED4 end:0x80048110 + .data start:0x8012FF60 end:0x80130550 + .bss start:0x801AF760 end:0x801B3B80 + .sdata start:0x801F0990 end:0x801F0998 + .sbss start:0x801F1170 end:0x801F11B0 + .sdata2 start:0x801F22C8 end:0x801F2358 + +game/messdata.c: + .text start:0x80048110 end:0x800481F8 + +game/card.c: + .text start:0x800481F8 end:0x800487FC + .data start:0x80130550 end:0x801305A0 + .sbss start:0x801F11B0 end:0x801F11B8 + +game/armem.c: + .text start:0x800487FC end:0x80049668 + .data start:0x801305A0 end:0x80130690 + .bss start:0x801B3B80 end:0x801B4260 + .sbss start:0x801F11B8 end:0x801F11C8 + +game/chrman.c: + .text start:0x80049668 end:0x800509D4 + .data start:0x80130690 end:0x801310B0 + .bss start:0x801B4260 end:0x801B49F0 + .sdata start:0x801F0998 end:0x801F09E0 + .sbss start:0x801F11C8 end:0x801F11D0 + .sdata2 start:0x801F2358 end:0x801F2490 + +game/mapspace.c: + .text start:0x800509D4 end:0x80054778 + .bss start:0x801B49F0 end:0x801B4E60 + .sbss start:0x801F11D0 end:0x801F11F0 + .sdata2 start:0x801F2490 end:0x801F24C0 + +game/THPSimple.c: + .text start:0x80054778 end:0x8005687C + .data start:0x801310B0 end:0x801311B0 + .bss start:0x801B4E60 end:0x801B5540 + .sdata start:0x801F09E0 end:0x801F09E8 + .sbss start:0x801F11F0 end:0x801F1210 + .sdata2 start:0x801F24C0 end:0x801F24C8 + +game/THPDraw.c: + .text start:0x8005687C end:0x800571D4 + .sdata2 start:0x801F24C8 end:0x801F24E0 + +game/thpmain.c: + .text start:0x800571D4 end:0x80057B9C + .rodata start:0x8011DB70 end:0x8011DB80 + .data start:0x801311B0 end:0x80131218 + .bss start:0x801B5540 end:0x801B5580 + .sbss start:0x801F1210 end:0x801F1238 + .sdata2 start:0x801F24E0 end:0x801F24F8 + +game/objsub.c: + .text start:0x80057B9C end:0x80057D88 + .data start:0x80131218 end:0x80132018 + .bss start:0x801B5580 end:0x801B57B0 + .sbss start:0x801F1238 end:0x801F1260 + +game/flag.c: + .text start:0x80057D88 end:0x80057FA0 + .bss start:0x801B57B0 end:0x801B57C0 + +game/saveload.c: + .text start:0x80057FA0 end:0x8005A40C + .data start:0x80132018 end:0x801320C0 + .bss start:0x801B57C0 end:0x801B97E0 + .sdata start:0x801F09E8 end:0x801F0A00 + .sbss start:0x801F1260 end:0x801F1270 + .sdata2 start:0x801F24F8 end:0x801F2508 + +game/sreset.c: + .text start:0x8005A40C end:0x8005AEF0 + .data start:0x801320C0 end:0x80156B20 + .bss start:0x801B97E0 end:0x801BAB80 + .sdata start:0x801F0A00 end:0x801F0A18 + .sbss start:0x801F1270 end:0x801F1288 + +game/board/main.c: + .text start:0x8005AEF0 end:0x80061D78 + .rodata start:0x8011DB80 end:0x8011DBB0 + .data start:0x80156B20 end:0x80156C20 + .bss start:0x801BAB80 end:0x801BAD08 + .sdata start:0x801F0A18 end:0x801F0A28 + .sbss start:0x801F1288 end:0x801F12D8 + .sdata2 start:0x801F2508 end:0x801F25B8 + +game/board/player.c: + .text start:0x80061D78 end:0x8006D0BC + .rodata start:0x8011DBB0 end:0x8011DC80 + .data start:0x80156C20 end:0x80156E28 + .bss start:0x801BAD08 end:0x801BAD38 + .sdata start:0x801F0A28 end:0x801F0A88 + .sbss start:0x801F12D8 end:0x801F1310 + .sdata2 start:0x801F25B8 end:0x801F26C0 + +game/board/model.c: + .text start:0x8006D0BC end:0x8006FB30 + .sbss start:0x801F1310 end:0x801F1320 + .sdata2 start:0x801F26C0 end:0x801F26D8 + +game/board/window.c: + .text start:0x8006FB30 end:0x80070B30 + .rodata start:0x8011DC80 end:0x8011DCF0 + .data start:0x80156E28 end:0x80156E70 + .bss start:0x801BAD38 end:0x801BAD98 + .sdata start:0x801F0A88 end:0x801F0A90 + .sbss start:0x801F1320 end:0x801F1348 + .sdata2 start:0x801F26D8 end:0x801F26E8 + +game/board/audio.c: + .text start:0x80070B30 end:0x8007103C + .data start:0x80156E70 end:0x80156E88 + .sdata start:0x801F0A90 end:0x801F0A98 + .sbss start:0x801F1348 end:0x801F1350 + +game/board/com.c: + .text start:0x8007103C end:0x80072750 + .data start:0x80156E88 end:0x80156F50 + .sdata start:0x801F0A98 end:0x801F0AA0 + .sdata2 start:0x801F26E8 end:0x801F2710 + +game/board/view.c: + .text start:0x80072750 end:0x80073DD0 + .rodata start:0x8011DCF0 end:0x8011DD10 + .data start:0x80156F50 end:0x80157050 + .bss start:0x801BAD98 end:0x801BADB0 + .sdata start:0x801F0AA0 end:0x801F0AA8 + .sbss start:0x801F1350 end:0x801F1368 + .sdata2 start:0x801F2710 end:0x801F2780 + +game/board/space.c: + .text start:0x80073DD0 end:0x80077888 + .data start:0x80157050 end:0x80157090 + .bss start:0x801BADB0 end:0x801C1E00 + .sdata start:0x801F0AA8 end:0x801F0AB0 + .sbss start:0x801F1368 end:0x801F13A0 + .sdata2 start:0x801F2780 end:0x801F2800 + +game/board/shop.c: + .text start:0x80077888 end:0x8007A6B4 + .data start:0x80157090 end:0x80157210 + .bss start:0x801C1E00 end:0x801C1E30 + .sdata start:0x801F0AB0 end:0x801F0AD0 + .sbss start:0x801F13A0 end:0x801F13C0 + .sdata2 start:0x801F2800 end:0x801F28D8 + +game/board/lottery.c: + .text start:0x8007A6B4 end:0x8007F9C8 + .rodata start:0x8011DD10 end:0x8011DE40 + .data start:0x80157210 end:0x80157578 + .bss start:0x801C1E30 end:0x801C1E60 + .sdata start:0x801F0AD0 end:0x801F0AF0 + .sbss start:0x801F13C0 end:0x801F13E0 + .sdata2 start:0x801F28D8 end:0x801F2A68 + +game/board/basic_space.c: + .text start:0x8007F9C8 end:0x80080BCC + .data start:0x80157578 end:0x801575B0 + .sdata2 start:0x801F2A68 end:0x801F2AF8 + +game/board/warp.c: + .text start:0x80080BCC end:0x80081544 + .rodata start:0x8011DE40 end:0x8011DE60 + .data start:0x801575B0 end:0x801575D0 + .bss start:0x801C1E60 end:0x801C1E70 + .sdata start:0x801F0AF0 end:0x801F0B00 + .sbss start:0x801F13E0 end:0x801F13F8 + .sdata2 start:0x801F2AF8 end:0x801F2B48 + +game/board/char_wheel.c: + .text start:0x80081544 end:0x80082B3C + .data start:0x801575D0 end:0x80157638 + .sdata start:0x801F0B00 end:0x801F0B08 + .sbss start:0x801F13F8 end:0x801F1418 + .sdata2 start:0x801F2B48 end:0x801F2BD8 + +game/board/mushroom.c: + .text start:0x80082B3C end:0x80083D88 + .sdata start:0x801F0B08 end:0x801F0B18 + .sbss start:0x801F1418 end:0x801F1428 + .sdata2 start:0x801F2BD8 end:0x801F2C60 + +game/board/star.c: + .text start:0x80083D88 end:0x80085B74 + .rodata start:0x8011DE60 end:0x8011DED0 + .data start:0x80157638 end:0x801576F0 + .bss start:0x801C1E70 end:0x801C1E80 + .sdata start:0x801F0B18 end:0x801F0B20 + .sbss start:0x801F1428 end:0x801F1440 + .sdata2 start:0x801F2C60 end:0x801F2D00 + +game/board/roll.c: + .text start:0x80085B74 end:0x800882B4 + .rodata start:0x8011DED0 end:0x8011DF38 + .data start:0x801576F0 end:0x80157790 + .bss start:0x801C1E80 end:0x801C1E90 + .sdata start:0x801F0B20 end:0x801F0B38 + .sbss start:0x801F1440 end:0x801F1460 + .sdata2 start:0x801F2D00 end:0x801F2DB0 + +game/board/ui.c: + .text start:0x800882B4 end:0x8008DE88 + .rodata start:0x8011DF38 end:0x8011E020 + .data start:0x80157790 end:0x80157990 + .bss start:0x801C1E90 end:0x801C1F20 + .sdata start:0x801F0B38 end:0x801F0B40 + .sbss start:0x801F1460 end:0x801F1498 + .sdata2 start:0x801F2DB0 end:0x801F2E70 + +game/board/block.c: + .text start:0x8008DE88 end:0x8008ED48 + .rodata start:0x8011E020 end:0x8011E040 + .data start:0x80157990 end:0x801579A8 + .bss start:0x801C1F20 end:0x801C1F48 + .sdata start:0x801F0B40 end:0x801F0B48 + .sbss start:0x801F1498 end:0x801F14B0 + .sdata2 start:0x801F2E70 end:0x801F2EC8 + +game/board/item.c: + .text start:0x8008ED48 end:0x800974CC + .rodata start:0x8011E040 end:0x8011E058 + .data start:0x801579A8 end:0x80157D98 + .bss start:0x801C1F48 end:0x801C1F88 + .sdata start:0x801F0B48 end:0x801F0B58 + .sbss start:0x801F14B0 end:0x801F14F0 + .sdata2 start:0x801F2EC8 end:0x801F3100 + +game/board/bowser.c: + .text start:0x800974CC end:0x8009B3F4 + .rodata start:0x8011E058 end:0x8011E120 + .data start:0x80157D98 end:0x80157DE8 + .bss start:0x801C1F88 end:0x801C1FD0 + .sdata start:0x801F0B58 end:0x801F0B70 + .sbss start:0x801F14F0 end:0x801F1530 + .sdata2 start:0x801F3100 end:0x801F31B0 + +game/board/battle.c: + .text start:0x8009B3F4 end:0x8009D068 + .rodata start:0x8011E120 end:0x8011E1A0 + .data start:0x80157DE8 end:0x80157E98 + .bss start:0x801C1FD0 end:0x801C1FE0 + .sdata start:0x801F0B70 end:0x801F0B78 + .sbss start:0x801F1530 end:0x801F1558 + .sdata2 start:0x801F31B0 end:0x801F3258 + +game/board/fortune.c: + .text start:0x8009D068 end:0x8009DEF0 + .rodata start:0x8011E1A0 end:0x8011E1C8 + .data start:0x80157E98 end:0x80157EB0 + .bss start:0x801C1FE0 end:0x801C1FF8 + .sdata start:0x801F0B78 end:0x801F0B80 + .sbss start:0x801F1558 end:0x801F1568 + .sdata2 start:0x801F3258 end:0x801F3268 + +game/board/boo.c: + .text start:0x8009DEF0 end:0x800A1954 + .data start:0x80157EB0 end:0x80158088 + .sdata start:0x801F0B80 end:0x801F0B90 + .sbss start:0x801F1568 end:0x801F15A0 + .sdata2 start:0x801F3268 end:0x801F3378 + +game/board/mg_setup.c: + .text start:0x800A1954 end:0x800A4E8C + .rodata start:0x8011E1C8 end:0x8011E1F0 + .data start:0x80158088 end:0x801581C0 + .bss start:0x801C1FF8 end:0x801C2068 + .sdata start:0x801F0B90 end:0x801F0B98 + .sbss start:0x801F15A0 end:0x801F15D0 + .sdata2 start:0x801F3378 end:0x801F3450 + +game/board/boo_house.c: + .text start:0x800A4E8C end:0x800A6E04 + .data start:0x801581C0 end:0x801582F8 + .bss start:0x801C2068 end:0x801C2078 + .sdata start:0x801F0B98 end:0x801F0BE8 + .sbss start:0x801F15D0 end:0x801F15E8 + .sdata2 start:0x801F3450 end:0x801F3498 + +game/board/start.c: + .text start:0x800A6E04 end:0x800A9628 + .rodata start:0x8011E1F0 end:0x8011E210 + .data start:0x801582F8 end:0x80158460 + .bss start:0x801C2078 end:0x801C2090 + .sdata start:0x801F0BE8 end:0x801F0BF8 + .sbss start:0x801F15E8 end:0x801F15F8 + .sdata2 start:0x801F3498 end:0x801F3568 + +game/board/last5.c: + .text start:0x800A9628 end:0x800ADAA4 + .rodata start:0x8011E210 end:0x8011E250 + .data start:0x80158460 end:0x80158778 + .bss start:0x801C2090 end:0x801C20D8 + .sdata start:0x801F0BF8 end:0x801F0C50 + .sbss start:0x801F15F8 end:0x801F1618 + .sdata2 start:0x801F3568 end:0x801F3668 + +game/board/pause.c: + .text start:0x800ADAA4 end:0x800B1894 + .data start:0x80158778 end:0x801588A0 + .bss start:0x801C20D8 end:0x801C2108 + .sdata start:0x801F0C50 end:0x801F0C60 + .sbss start:0x801F1618 end:0x801F1638 + .sdata2 start:0x801F3668 end:0x801F3720 + +game/board/com_path.c: + .text start:0x800B1894 end:0x800B3DF8 + .bss start:0x801C2108 end:0x801C2688 + .sbss start:0x801F1638 end:0x801F1640 + +game/board/tutorial.c: + .text start:0x800B3DF8 end:0x800B4214 + .data start:0x801588A0 end:0x801588E8 + .bss start:0x801C2688 end:0x801C26A0 + .sbss start:0x801F1640 end:0x801F1668 + +dolphin/os/__start.c: + .init start:0x80003100 end:0x80003354 + +dolphin/PPCArch.c: + .text start:0x800B4214 end:0x800B42BC + +dolphin/os/OS.c: + .text start:0x800B42BC end:0x800B4C18 + .data start:0x801588E8 end:0x80158AA8 + .bss start:0x801C26A0 end:0x801C26F0 + .sbss start:0x801F1668 end:0x801F1698 diff --git a/config/GMPP01_00/symbols.txt b/config/GMPP01_00/symbols.txt new file mode 100644 index 00000000..36e40d58 --- /dev/null +++ b/config/GMPP01_00/symbols.txt @@ -0,0 +1,8670 @@ +__check_pad3 = .init:0x80003100; // type:function size:0x40 scope:local +__start = .init:0x80003140; // type:function size:0x138 scope:weak +__init_registers = .init:0x80003278; // type:function size:0x1C scope:local +__init_data = .init:0x80003294; // type:function size:0xC0 scope:local +__init_hardware = .init:0x80003354; // type:function size:0x20 scope:global +__flush_cache = .init:0x80003374; // type:function size:0x34 scope:global +memset = .init:0x800033A8; // type:function size:0x30 scope:global +__fill_mem = .init:0x800033D8; // type:function size:0xB8 scope:global +memcpy = .init:0x80003490; // type:function size:0x50 scope:global +TRK_memset = .init:0x800034E0; // type:function size:0x30 +TRK_memcpy = .init:0x80003510; // type:function size:0x24 +gTRKInterruptVectorTable = .init:0x80003534; // type:label scope:global +lbl_8000387C = .init:0x8000387C; // type:label +lbl_800038E0 = .init:0x800038E0; // type:label +__TRK_reset = .init:0x80005468; // type:function size:0x104 +gTRKInterruptVectorTableEnd = .init:0x80005468; // type:label scope:global +_rom_copy_info = .init:0x8000556C; // type:object size:0x84 scope:global data:4byte +_bss_init_info = .init:0x800055F0; // type:object size:0x20 scope:global data:4byte +@etb_80005620 = extab:0x80005620; // type:object size:0x28 scope:local hidden +@etb_80005648 = extab:0x80005648; // type:object size:0x8 scope:local hidden +@etb_80005650 = extab:0x80005650; // type:object size:0x8 scope:local hidden +@etb_80005658 = extab:0x80005658; // type:object size:0x8 scope:local hidden +@etb_80005660 = extab:0x80005660; // type:object size:0x8 scope:local hidden +@etb_80005668 = extab:0x80005668; // type:object size:0x8 scope:local hidden +@etb_80005670 = extab:0x80005670; // type:object size:0x8 scope:local hidden +@etb_80005678 = extab:0x80005678; // type:object size:0x14 scope:local hidden +@etb_8000568C = extab:0x8000568C; // type:object size:0x2C scope:local hidden +@etb_800056B8 = extab:0x800056B8; // type:object size:0x8 scope:local hidden +@etb_800056C0 = extab:0x800056C0; // type:object size:0x14 scope:local hidden +@etb_800056D4 = extab:0x800056D4; // type:object size:0x8 scope:local hidden +@etb_800056DC = extab:0x800056DC; // type:object size:0x8 scope:local hidden +@eti_80005700 = extabindex:0x80005700; // type:object size:0xC scope:local hidden +@eti_8000570C = extabindex:0x8000570C; // type:object size:0xC scope:local hidden +@eti_80005718 = extabindex:0x80005718; // type:object size:0xC scope:local hidden +@eti_80005724 = extabindex:0x80005724; // type:object size:0xC scope:local hidden +@eti_80005730 = extabindex:0x80005730; // type:object size:0xC scope:local hidden +@eti_8000573C = extabindex:0x8000573C; // type:object size:0xC scope:local hidden +@eti_80005748 = extabindex:0x80005748; // type:object size:0xC scope:local hidden +@eti_80005754 = extabindex:0x80005754; // type:object size:0xC scope:local hidden +@eti_80005760 = extabindex:0x80005760; // type:object size:0xC scope:local hidden +@eti_8000576C = extabindex:0x8000576C; // type:object size:0xC scope:local hidden +@eti_80005778 = extabindex:0x80005778; // type:object size:0xC scope:local hidden +@eti_80005784 = extabindex:0x80005784; // type:object size:0xC scope:local hidden +@eti_80005790 = extabindex:0x80005790; // type:object size:0xC scope:local hidden +_eti_init_info = extabindex:0x8000579C; // type:object size:0x20 scope:global +main = .text:0x800057C0; // type:function size:0x234 scope:global +HuSysVWaitSet = .text:0x800059F4; // type:function size:0x38 +HuSysVWaitGet = .text:0x80005A2C; // type:function size:0xC +rand8 = .text:0x80005A38; // type:function size:0x2C +HuPadInit = .text:0x80005A64; // type:function size:0xF0 +HuPadRead = .text:0x80005B54; // type:function size:0x168 +PadReadVSync = .text:0x80005CBC; // type:function size:0x440 scope:local +PadADConv = .text:0x800060FC; // type:function size:0x234 scope:local +HuPadRumbleSet = .text:0x80006330; // type:function size:0x54 +HuPadRumbleStop = .text:0x80006384; // type:function size:0x70 +HuPadRumbleAllStop = .text:0x800063F4; // type:function size:0x70 +HuPadStatGet = .text:0x80006464; // type:function size:0x14 +HuPadRumbleGet = .text:0x80006478; // type:function size:0x8 +HuDVDReadAsyncCallBack = .text:0x80006480; // type:function size:0xC scope:local +HuDvdDataRead = .text:0x8000648C; // type:function size:0x16C +HuDvdDataReadMulti = .text:0x800065F8; // type:function size:0x1B4 +HuDvdDataReadDirect = .text:0x800067AC; // type:function size:0x170 +HuDvdDataFastRead = .text:0x8000691C; // type:function size:0x16C +HuDvdDataFastReadNum = .text:0x80006A88; // type:function size:0x174 +HuDvdDataFastReadAsync = .text:0x80006BFC; // type:function size:0x150 +HuDvdDataClose = .text:0x80006D4C; // type:function size:0x38 +HuDvdErrorWatch = .text:0x80006D84; // type:function size:0xBC +HuDataInit = .text:0x80006E40; // type:function size:0xD0 +HuDataReadChk = .text:0x80006F10; // type:function size:0x74 +HuDataGetStatus = .text:0x80006F84; // type:function size:0x64 +HuDataGetDirPtr = .text:0x80006FE8; // type:function size:0xB8 +HuDataDirRead = .text:0x800070A0; // type:function size:0x224 +HuDataDirSet = .text:0x800072C4; // type:function size:0x188 +HuDataDirReadAsyncCallBack = .text:0x8000744C; // type:function size:0xC8 +HuDataDirReadAsync = .text:0x80007514; // type:function size:0x1A8 +HuDataDirReadNumAsync = .text:0x800076BC; // type:function size:0x1A8 +HuDataGetAsyncStat = .text:0x80007864; // type:function size:0x60 +HuDataRead = .text:0x800078C4; // type:function size:0x344 +HuDataReadNum = .text:0x80007C08; // type:function size:0x3A0 +HuDataSelHeapRead = .text:0x80007FA8; // type:function size:0x3C4 +HuDataSelHeapReadNum = .text:0x8000836C; // type:function size:0x428 +HuDataReadMulti = .text:0x80008794; // type:function size:0x30 +HuDataReadMultiSub = .text:0x800087C4; // type:function size:0x3FC +HuDataGetSize = .text:0x80008BC0; // type:function size:0x104 +HuDataClose = .text:0x80008CC4; // type:function size:0x38 +HuDataCloseMulti = .text:0x80008CFC; // type:function size:0x7C +HuDataDirClose = .text:0x80008D78; // type:function size:0xD4 +HuDataDirCloseNum = .text:0x80008E4C; // type:function size:0x130 +HuDataReadNumHeapShortForce = .text:0x80008F7C; // type:function size:0x48C +HuDecodeSlide = .text:0x80009408; // type:function size:0x200 +HuDecodeFslide = .text:0x80009608; // type:function size:0x1D8 +HuDecodeData = .text:0x800097E0; // type:function size:0x324 +HuSysInit = .text:0x80009B04; // type:function size:0x10C +InitRenderMode = .text:0x80009C10; // type:function size:0xD0 scope:local +InitGX = .text:0x80009CE0; // type:function size:0x148 scope:local +InitMem = .text:0x80009E28; // type:function size:0x184 scope:local +InitVI = .text:0x80009FAC; // type:function size:0x54 scope:local +HuSysBeforeRender = .text:0x8000A000; // type:function size:0xE4 +HuSysDoneRender = .text:0x8000A0E4; // type:function size:0xC8 +SwapBuffers = .text:0x8000A1AC; // type:function size:0x6C scope:local +LoadMemInfo = .text:0x8000A218; // type:function size:0x254 scope:local +gcsetjmp = .text:0x8000A46C; // type:function size:0x74 +gclongjmp = .text:0x8000A4E0; // type:function size:0x80 +HuMemInitAll = .text:0x8000A560; // type:function size:0x12C +HuMemInit = .text:0x8000A68C; // type:function size:0x30 +HuMemDCFlushAll = .text:0x8000A6BC; // type:function size:0x2C +HuMemDCFlush = .text:0x8000A6E8; // type:function size:0x54 +HuMemDirectMalloc = .text:0x8000A73C; // type:function size:0x64 +HuMemDirectMallocNum = .text:0x8000A7A0; // type:function size:0x6C +HuMemDirectFree = .text:0x8000A80C; // type:function size:0x38 +HuMemDirectFreeNum = .text:0x8000A844; // type:function size:0x54 +HuMemUsedMallocSizeGet = .text:0x8000A898; // type:function size:0x3C +HuMemUsedMallocBlockGet = .text:0x8000A8D4; // type:function size:0x3C +HuMemHeapSizeGet = .text:0x8000A910; // type:function size:0x18 +HuMemHeapPtrGet = .text:0x8000A928; // type:function size:0x18 +HuMemHeapInit = .text:0x8000A940; // type:function size:0x4C +HuMemMemoryAllocNum = .text:0x8000A98C; // type:function size:0x40 +HuMemMemoryAlloc = .text:0x8000A9CC; // type:function size:0x3C +HuMemMemoryAlloc2 = .text:0x8000AA08; // type:function size:0x108 scope:local +HuMemMemoryFreeNum = .text:0x8000AB10; // type:function size:0x7C +HuMemMemoryFree = .text:0x8000AB8C; // type:function size:0x12C +HuMemUsedMemorySizeGet = .text:0x8000ACB8; // type:function size:0x48 +HuMemUsedMemoryBlockGet = .text:0x8000AD00; // type:function size:0x44 +HuMemMemoryAllocSizeGet = .text:0x8000AD44; // type:function size:0xC +HuMemHeapDump = .text:0x8000AD50; // type:function size:0x158 +HuMemMemorySizeGet = .text:0x8000AEA8; // type:function size:0x50 +pfInit = .text:0x8000AEF8; // type:function size:0x64 +pfClsScr = .text:0x8000AF5C; // type:function size:0xA0 +print8 = .text:0x8000AFFC; // type:function size:0x15C +printWin = .text:0x8000B158; // type:function size:0xAC +pfDrawFonts = .text:0x8000B204; // type:function size:0xEE8 +WireDraw = .text:0x8000C0EC; // type:function size:0x3C0 scope:local +HuPrcInit = .text:0x8000C4AC; // type:function size:0x14 +HuPrcCreate = .text:0x8000C4C0; // type:function size:0x1E8 +HuPrcChildLink = .text:0x8000C6A8; // type:function size:0x68 +HuPrcChildUnlink = .text:0x8000C710; // type:function size:0x58 +HuPrcChildCreate = .text:0x8000C768; // type:function size:0x27C +HuPrcChildWatch = .text:0x8000C9E4; // type:function size:0x60 +HuPrcCurrentGet = .text:0x8000CA44; // type:function size:0x8 +SetKillStatusProcess = .text:0x8000CA4C; // type:function size:0x50 scope:local +HuPrcKill = .text:0x8000CA9C; // type:function size:0xD4 +HuPrcChildKill = .text:0x8000CB70; // type:function size:0x2A4 +HuPrcEnd = .text:0x8000CE14; // type:function size:0x100 +HuPrcSleep = .text:0x8000CF14; // type:function size:0x80 +HuPrcVSleep = .text:0x8000CF94; // type:function size:0x54 +HuPrcWakeup = .text:0x8000CFE8; // type:function size:0xC +HuPrcDestructorSet2 = .text:0x8000CFF4; // type:function size:0x8 +HuPrcDestructorSet = .text:0x8000CFFC; // type:function size:0x28 +HuPrcCall = .text:0x8000D024; // type:function size:0x184 +HuPrcMemAlloc = .text:0x8000D1A8; // type:function size:0x4C +HuPrcMemFree = .text:0x8000D1F4; // type:function size:0x30 +HuPrcSetStat = .text:0x8000D224; // type:function size:0x10 +HuPrcResetStat = .text:0x8000D234; // type:function size:0x14 +HuPrcAllPause = .text:0x8000D248; // type:function size:0x84 +HuPrcAllUPause = .text:0x8000D2CC; // type:function size:0x84 +HuSprInit = .text:0x8000D350; // type:function size:0xA0 +HuSprClose = .text:0x8000D3F0; // type:function size:0xB0 +HuSprExec = .text:0x8000D4A0; // type:function size:0x64 +HuSprBegin = .text:0x8000D504; // type:function size:0x188 +HuSprOrderEntry = .text:0x8000D68C; // type:function size:0x14C +HuSprCall = .text:0x8000D7D8; // type:function size:0xF4 +HuSprFinish = .text:0x8000D8CC; // type:function size:0x458 +HuSprPauseSet = .text:0x8000DD24; // type:function size:0x8 +HuSprAnimRead = .text:0x8000DD2C; // type:function size:0x114 +HuSprAnimLock = .text:0x8000DE40; // type:function size:0x10 +HuSprCreate = .text:0x8000DE50; // type:function size:0x128 +HuSprFuncCreate = .text:0x8000DF78; // type:function size:0x188 +HuSprGrpCreate = .text:0x8000E100; // type:function size:0xF4 +HuSprGrpCopy = .text:0x8000E1F4; // type:function size:0x334 +HuSprGrpMemberSet = .text:0x8000E528; // type:function size:0x8C +HuSprGrpMemberKill = .text:0x8000E5B4; // type:function size:0xAC +HuSprGrpKill = .text:0x8000E660; // type:function size:0x9C +HuSprKill = .text:0x8000E6FC; // type:function size:0x84 +HuSprAnimKill = .text:0x8000E780; // type:function size:0x90 +HuSprAttrSet = .text:0x8000E810; // type:function size:0xAC +HuSprAttrReset = .text:0x8000E8BC; // type:function size:0xAC +HuSprPosSet = .text:0x8000E968; // type:function size:0x60 +HuSprZRotSet = .text:0x8000E9C8; // type:function size:0x5C +HuSprScaleSet = .text:0x8000EA24; // type:function size:0x60 +HuSprTPLvlSet = .text:0x8000EA84; // type:function size:0x64 +HuSprColorSet = .text:0x8000EAE8; // type:function size:0x64 +HuSprSpeedSet = .text:0x8000EB4C; // type:function size:0x4C +HuSprBankSet = .text:0x8000EB98; // type:function size:0xF0 +HuSprGrpPosSet = .text:0x8000EC88; // type:function size:0x9C +HuSprGrpCenterSet = .text:0x8000ED24; // type:function size:0x9C +HuSprGrpZRotSet = .text:0x8000EDC0; // type:function size:0x98 +HuSprGrpScaleSet = .text:0x8000EE58; // type:function size:0x9C +HuSprGrpTPLvlSet = .text:0x8000EEF4; // type:function size:0xC0 +HuSprGrpDrawNoSet = .text:0x8000EFB4; // type:function size:0x8C +HuSprDrawNoSet = .text:0x8000F040; // type:function size:0x50 +HuSprPriSet = .text:0x8000F090; // type:function size:0x4C +HuSprGrpScissorSet = .text:0x8000F0DC; // type:function size:0xAC +HuSprScissorSet = .text:0x8000F188; // type:function size:0x58 +HuSprAnimMake = .text:0x8000F1E0; // type:function size:0x1FC +HuSprBGSet = .text:0x8000F3DC; // type:function size:0x68 +HuSprSprBGSet = .text:0x8000F444; // type:function size:0x50 +AnimDebug = .text:0x8000F494; // type:function size:0x214 +HuSprDispInit = .text:0x8000F6A8; // type:function size:0x158 +HuSprDisp = .text:0x8000F800; // type:function size:0xECC +HuSprTexLoad = .text:0x800106CC; // type:function size:0x29C +HuSprExecLayerSet = .text:0x80010968; // type:function size:0x58 +HuSprLayerHook = .text:0x800109C0; // type:function size:0x178 scope:local +LoadHSF = .text:0x80010B38; // type:function size:0xB0 +ClusterAdjustObject = .text:0x80010BE8; // type:function size:0xA0 +FileLoad = .text:0x80010C88; // type:function size:0xC8 scope:local +SetHsfModel = .text:0x80010D50; // type:function size:0x284 scope:local +SetName = .text:0x80010FD4; // type:function size:0x38 +MaterialLoad = .text:0x8001100C; // type:function size:0x210 scope:local +AttributeLoad = .text:0x8001121C; // type:function size:0xF8 scope:local +SceneLoad = .text:0x80011314; // type:function size:0x80 scope:local +ColorLoad = .text:0x80011394; // type:function size:0x130 scope:local +VertexLoad = .text:0x800114C4; // type:function size:0x1C0 scope:local +NormalLoad = .text:0x80011684; // type:function size:0x128 scope:local +STLoad = .text:0x800117AC; // type:function size:0x1A8 scope:local +FaceLoad = .text:0x80011954; // type:function size:0x190 scope:local +DispObject = .text:0x80011AE4; // type:function size:0x7A8 scope:local +ObjectLoad = .text:0x8001228C; // type:function size:0x15C scope:local +CenvLoad = .text:0x800123E8; // type:function size:0x464 scope:local +SkeletonLoad = .text:0x8001284C; // type:function size:0x198 scope:local +PartLoad = .text:0x800129E4; // type:function size:0x12C scope:local +ClusterLoad = .text:0x80012B10; // type:function size:0x1E8 scope:local +ShapeLoad = .text:0x80012CF8; // type:function size:0x168 scope:local +MapAttrLoad = .text:0x80012E60; // type:function size:0xD0 scope:local +BitmapLoad = .text:0x80012F30; // type:function size:0x174 scope:local +PaletteLoad = .text:0x800130A4; // type:function size:0x16C scope:local +MakeObjectName = .text:0x80013210; // type:function size:0xE8 +CmpObjectName = .text:0x800132F8; // type:function size:0x38 +MotionLoad = .text:0x80013330; // type:function size:0x938 scope:local +MatrixLoad = .text:0x80013C68; // type:function size:0x80 scope:local +SearchObjectSetName = .text:0x80013CE8; // type:function size:0x94 scope:local +SearchVertexPtr = .text:0x80013D7C; // type:function size:0x44 scope:local +SearchNormalPtr = .text:0x80013DC0; // type:function size:0x44 scope:local +SearchStPtr = .text:0x80013E04; // type:function size:0x44 scope:local +SearchColorPtr = .text:0x80013E48; // type:function size:0x44 scope:local +SearchFacePtr = .text:0x80013E8C; // type:function size:0x44 scope:local +SearchCenvPtr = .text:0x80013ED0; // type:function size:0x44 scope:local +SearchPartPtr = .text:0x80013F14; // type:function size:0x44 scope:local +SearchPalettePtr = .text:0x80013F58; // type:function size:0x3C scope:local +SearchBitmapPtr = .text:0x80013F94; // type:function size:0x44 scope:local +GetString = .text:0x80013FD8; // type:function size:0x24 scope:local +GetMotionString = .text:0x80013FFC; // type:function size:0x24 scope:local +Hu3DDrawPreInit = .text:0x80014020; // type:function size:0xC +Hu3DDraw = .text:0x8001402C; // type:function size:0x1A0 +objCall = .text:0x800141CC; // type:function size:0xEC scope:local +objMesh = .text:0x800142B8; // type:function size:0x86C scope:local +ObjCullCheck = .text:0x80014B24; // type:function size:0x4C0 +FaceDraw = .text:0x80014FE4; // type:function size:0x10DC scope:local +SetTevStageNoTex = .text:0x800160C0; // type:function size:0x8E8 scope:local +SetTevStageTex = .text:0x800169A8; // type:function size:0x2588 scope:local +SetKColor = .text:0x80018F30; // type:function size:0x164 scope:local +SetKColorRGB = .text:0x80019094; // type:function size:0x180 scope:local +FlushKColor = .text:0x80019214; // type:function size:0xB0 scope:local +SetReflect = .text:0x800192C4; // type:function size:0x280 scope:local +SetProjection = .text:0x80019544; // type:function size:0x29C scope:local +SetShadowTex = .text:0x800197E0; // type:function size:0x8C scope:local +SetShadow = .text:0x8001986C; // type:function size:0xCC scope:local +FaceDrawShadow = .text:0x80019938; // type:function size:0x5E4 scope:local +LoadTexture = .text:0x80019F1C; // type:function size:0x75C scope:local +objNull = .text:0x8001A678; // type:function size:0x248 scope:local +objRoot = .text:0x8001A8C0; // type:function size:0x198 scope:local +objJoint = .text:0x8001AA58; // type:function size:0x248 scope:local +objMap = .text:0x8001ACA0; // type:function size:0x17C scope:local +objReplica = .text:0x8001AE1C; // type:function size:0x1B4 scope:local +Hu3DDrawPost = .text:0x8001AFD0; // type:function size:0xB00 +ObjDraw = .text:0x8001BAD0; // type:function size:0x6D0 scope:local +MakeDisplayList = .text:0x8001C1A0; // type:function size:0xBC +MDObjCall = .text:0x8001C25C; // type:function size:0x438 scope:local +MDObjMesh = .text:0x8001C694; // type:function size:0x2A8 scope:local +ObjConstantMake = .text:0x8001C93C; // type:function size:0x68 +MDFaceDraw = .text:0x8001C9A4; // type:function size:0xD08 scope:local +MakeCalcNBT = .text:0x8001D6AC; // type:function size:0x3A8 scope:local +MakeNBT = .text:0x8001DA54; // type:function size:0x2C4 scope:local +MDFaceCnt = .text:0x8001DD18; // type:function size:0x2C8 scope:local +mtxTransCat = .text:0x8001DFE0; // type:function size:0x4C +mtxRotCat = .text:0x8001E02C; // type:function size:0xF4 +mtxRot = .text:0x8001E120; // type:function size:0xF0 +mtxScaleCat = .text:0x8001E210; // type:function size:0x70 +HmfInverseMtxF3X3 = .text:0x8001E280; // type:function size:0x1E0 +SetDefLight = .text:0x8001E460; // type:function size:0x190 +Hu3DModelObjPosGet = .text:0x8001E5F0; // type:function size:0x90 +Hu3DModelObjMtxGet = .text:0x8001E680; // type:function size:0x318 +PGObjCall = .text:0x8001E998; // type:function size:0x80 +PGObjCalc = .text:0x8001EA18; // type:function size:0x7B0 +PGObjReplica = .text:0x8001F1C8; // type:function size:0x574 +Hu3DObjDuplicate = .text:0x8001F73C; // type:function size:0x158 +Hu3DModelObjDrawInit = .text:0x8001F894; // type:function size:0x90 +Hu3DModelObjDraw = .text:0x8001F924; // type:function size:0x90 +Hu3DInit = .text:0x8001F9B4; // type:function size:0x220 +Hu3DPreProc = .text:0x8001FBD4; // type:function size:0xD8 +Hu3DExec = .text:0x8001FCAC; // type:function size:0x688 +Hu3DAllKill = .text:0x80020334; // type:function size:0x158 +Hu3DBGColorSet = .text:0x8002048C; // type:function size:0x18 +Hu3DLayerHookSet = .text:0x800204A4; // type:function size:0x1C +Hu3DPauseSet = .text:0x800204C0; // type:function size:0xC +Hu3DNoSyncSet = .text:0x800204CC; // type:function size:0xC +Hu3DModelCreate = .text:0x800204D8; // type:function size:0x330 +Hu3DModelLink = .text:0x80020808; // type:function size:0x2E8 +Hu3DHookFuncCreate = .text:0x80020AF0; // type:function size:0x1C8 +Hu3DModelKill = .text:0x80020CB8; // type:function size:0x34C +Hu3DModelAllKill = .text:0x80021004; // type:function size:0xD0 +Hu3DModelPosSet = .text:0x800210D4; // type:function size:0x34 +Hu3DModelPosSetV = .text:0x80021108; // type:function size:0x40 +Hu3DModelRotSet = .text:0x80021148; // type:function size:0x34 +Hu3DModelRotSetV = .text:0x8002117C; // type:function size:0x40 +Hu3DModelScaleSet = .text:0x800211BC; // type:function size:0x34 +Hu3DModelScaleSetV = .text:0x800211F0; // type:function size:0x40 +Hu3DModelAttrSet = .text:0x80021230; // type:function size:0x54 +Hu3DModelAttrReset = .text:0x80021284; // type:function size:0x50 +Hu3DModelAttrGet = .text:0x800212D4; // type:function size:0x2C +Hu3DModelMotionAttrGet = .text:0x80021300; // type:function size:0x2C +Hu3DModelClusterAttrSet = .text:0x8002132C; // type:function size:0x44 +Hu3DModelClusterAttrReset = .text:0x80021370; // type:function size:0x44 +Hu3DModelCameraSet = .text:0x800213B4; // type:function size:0x2C +Hu3DModelLayerSet = .text:0x800213E0; // type:function size:0x6C +Hu3DModelObjPtrGet = .text:0x8002144C; // type:function size:0xD8 +Hu3DModelTPLvlSet = .text:0x80021524; // type:function size:0xF8 +Hu3DModelHiliteMapSet = .text:0x8002161C; // type:function size:0x98 +Hu3DModelShadowSet = .text:0x800216B4; // type:function size:0xB0 +Hu3DModelShadowReset = .text:0x80021764; // type:function size:0xA0 +Hu3DModelShadowDispOn = .text:0x80021804; // type:function size:0x34 +Hu3DModelShadowDispOff = .text:0x80021838; // type:function size:0x34 +Hu3DModelShadowMapSet = .text:0x8002186C; // type:function size:0x88 +Hu3DModelShadowMapObjSet = .text:0x800218F4; // type:function size:0xBC +Hu3DModelAmbSet = .text:0x800219B0; // type:function size:0x34 +Hu3DModelHookSet = .text:0x800219E4; // type:function size:0xEC +Hu3DModelHookReset = .text:0x80021AD0; // type:function size:0xB4 +Hu3DModelHookObjReset = .text:0x80021B84; // type:function size:0xF0 +Hu3DModelProjectionSet = .text:0x80021C74; // type:function size:0x44 +Hu3DModelProjectionReset = .text:0x80021CB8; // type:function size:0x44 +Hu3DModelHiliteTypeSet = .text:0x80021CFC; // type:function size:0xBC +Hu3DModelReflectTypeSet = .text:0x80021DB8; // type:function size:0x30 +Hu3DCameraCreate = .text:0x80021DE8; // type:function size:0x134 +Hu3DCameraPerspectiveSet = .text:0x80021F1C; // type:function size:0x80 +Hu3DCameraViewportSet = .text:0x80021F9C; // type:function size:0x88 +Hu3DCameraScissorSet = .text:0x80022024; // type:function size:0x90 +Hu3DCameraPosSet = .text:0x800220B4; // type:function size:0x98 +Hu3DCameraPosSetV = .text:0x8002214C; // type:function size:0xB8 +Hu3DCameraKill = .text:0x80022204; // type:function size:0x78 +Hu3DCameraAllKill = .text:0x8002227C; // type:function size:0xD0 +Hu3DCameraSet = .text:0x8002234C; // type:function size:0xDC +Hu3DModelCameraInfoSet = .text:0x80022428; // type:function size:0x3C0 +Hu3DModelCameraCreate = .text:0x800227E8; // type:function size:0x88 +Hu3DCameraMotionOn = .text:0x80022870; // type:function size:0x58 +Hu3DCameraMotionStart = .text:0x800228C8; // type:function size:0xD4 +Hu3DCameraMotionOff = .text:0x8002299C; // type:function size:0x34 +Hu3DLighInit = .text:0x800229D0; // type:function size:0x74 +Hu3DGLightCreate = .text:0x80022A44; // type:function size:0xA0 +Hu3DGLightCreateV = .text:0x80022AE4; // type:function size:0x104 +Hu3DLLightCreate = .text:0x80022BE8; // type:function size:0xA8 +Hu3DLLightCreateV = .text:0x80022C90; // type:function size:0x17C +Hu3DGLightSpotSet = .text:0x80022E0C; // type:function size:0x44 +Hu3DLLightSpotSet = .text:0x80022E50; // type:function size:0x6C +Hu3DGLightInfinitytSet = .text:0x80022EBC; // type:function size:0x48 +Hu3DLLightInfinitytSet = .text:0x80022F04; // type:function size:0x70 +Hu3DGLightPointSet = .text:0x80022F74; // type:function size:0x58 +Hu3DLLightPointSet = .text:0x80022FCC; // type:function size:0x80 +Hu3DGLightKill = .text:0x8002304C; // type:function size:0x20 +Hu3DLLightKill = .text:0x8002306C; // type:function size:0xBC +Hu3DLightAllKill = .text:0x80023128; // type:function size:0x68 +Hu3DGLightColorSet = .text:0x80023190; // type:function size:0x38 +Hu3DLLightColorSet = .text:0x800231C8; // type:function size:0x60 +Hu3DGLightPosSetV = .text:0x80023228; // type:function size:0x70 +Hu3DLLightPosSetV = .text:0x80023298; // type:function size:0x9C +Hu3DGLightPosSet = .text:0x80023334; // type:function size:0x90 +Hu3DLLightPosSet = .text:0x800233C4; // type:function size:0xBC +Hu3DGLightPosAimSetV = .text:0x80023480; // type:function size:0x80 +Hu3DLLightPosAimSetV = .text:0x80023500; // type:function size:0xAC +Hu3DGLightPosAimSet = .text:0x800235AC; // type:function size:0xC4 +Hu3DLLightPosAimSet = .text:0x80023670; // type:function size:0xF0 +Hu3DGLightStaticSet = .text:0x80023760; // type:function size:0x54 +Hu3DLLightStaticSet = .text:0x800237B4; // type:function size:0x7C +Hu3DModelLightInfoSet = .text:0x80023830; // type:function size:0x4D0 +Hu3DLightSet = .text:0x80023D00; // type:function size:0x130 +lightSet = .text:0x80023E30; // type:function size:0x254 scope:local +Hu3DReflectMapSet = .text:0x80024084; // type:function size:0x68 +Hu3DReflectNoSet = .text:0x800240EC; // type:function size:0x8 +Hu3DFogSet = .text:0x800240F4; // type:function size:0x60 +Hu3DFogClear = .text:0x80024154; // type:function size:0x74 +Hu3DShadowCreate = .text:0x800241C8; // type:function size:0x188 +Hu3DShadowPosSet = .text:0x80024350; // type:function size:0x64 +Hu3DShadowTPLvlSet = .text:0x800243B4; // type:function size:0x2C +Hu3DShadowSizeSet = .text:0x800243E0; // type:function size:0x78 +Hu3DShadowExec = .text:0x80024458; // type:function size:0x860 +Hu3DProjectionCreate = .text:0x80024CB8; // type:function size:0x130 +Hu3DProjectionKill = .text:0x80024DE8; // type:function size:0x60 +Hu3DProjectionPosSet = .text:0x80024E48; // type:function size:0x88 +Hu3DProjectionTPLvlSet = .text:0x80024ED0; // type:function size:0x38 +Hu3DMipMapSet = .text:0x80024F08; // type:function size:0x1E8 +Hu3DMotionInit = .text:0x800250F0; // type:function size:0x48 +Hu3DMotionCreate = .text:0x80025138; // type:function size:0xA4 +Hu3DMotionModelCreate = .text:0x800251DC; // type:function size:0xC4 +Hu3DMotionKill = .text:0x800252A0; // type:function size:0x114 +Hu3DMotionAllKill = .text:0x800253B4; // type:function size:0x11C +Hu3DMotionSet = .text:0x800254D0; // type:function size:0xBC +Hu3DMotionOverlaySet = .text:0x8002558C; // type:function size:0x54 +Hu3DMotionOverlayReset = .text:0x800255E0; // type:function size:0x20 +Hu3DMotionOverlayTimeGet = .text:0x80025600; // type:function size:0x1C +Hu3DMotionOverlayTimeSet = .text:0x8002561C; // type:function size:0x1C +Hu3DMotionOverlaySpeedSet = .text:0x80025638; // type:function size:0x1C +Hu3DMotionShiftSet = .text:0x80025654; // type:function size:0x1F4 +Hu3DMotionShapeSet = .text:0x80025848; // type:function size:0xBC +Hu3DMotionShapeIDGet = .text:0x80025904; // type:function size:0x1C +Hu3DMotionShapeSpeedSet = .text:0x80025920; // type:function size:0x2C +Hu3DMotionShapeTimeSet = .text:0x8002594C; // type:function size:0x1C +Hu3DMotionShapeMaxTimeGet = .text:0x80025968; // type:function size:0x44 +Hu3DMotionShapeStartEndSet = .text:0x800259AC; // type:function size:0x30 +Hu3DMotionClusterSet = .text:0x800259DC; // type:function size:0x114 +Hu3DMotionClusterNoSet = .text:0x80025AF0; // type:function size:0xD0 +Hu3DMotionShapeReset = .text:0x80025BC0; // type:function size:0x20 +Hu3DMotionClusterReset = .text:0x80025BE0; // type:function size:0xC8 +Hu3DMotionIDGet = .text:0x80025CA8; // type:function size:0x2C +Hu3DMotionShiftIDGet = .text:0x80025CD4; // type:function size:0x2C +Hu3DMotionTimeSet = .text:0x80025D00; // type:function size:0xF4 +Hu3DMotionTimeGet = .text:0x80025DF4; // type:function size:0x2C +Hu3DMotionShiftTimeGet = .text:0x80025E20; // type:function size:0x2C +Hu3DMotionMaxTimeGet = .text:0x80025E4C; // type:function size:0xA8 +Hu3DMotionShiftMaxTimeGet = .text:0x80025EF4; // type:function size:0xA8 +Hu3DMotionShiftStartEndSet = .text:0x80025F9C; // type:function size:0x30 +Hu3DMotionMotionMaxTimeGet = .text:0x80025FCC; // type:function size:0x8C +Hu3DMotionStartEndSet = .text:0x80026058; // type:function size:0x30 +Hu3DMotionEndCheck = .text:0x80026088; // type:function size:0x170 +Hu3DMotionSpeedSet = .text:0x800261F8; // type:function size:0x2C +Hu3DMotionShiftSpeedSet = .text:0x80026224; // type:function size:0x2C +Hu3DMotionNoMotSet = .text:0x80026250; // type:function size:0x114 +Hu3DMotionNoMotReset = .text:0x80026364; // type:function size:0x5C +Hu3DMotionForceSet = .text:0x800263C0; // type:function size:0x108 +Hu3DMotionNext = .text:0x800264C8; // type:function size:0x798 +Hu3DMotionExec = .text:0x80026C60; // type:function size:0x534 +Hu3DCameraMotionExec = .text:0x80027194; // type:function size:0xC0 +Hu3DSubMotionExec = .text:0x80027254; // type:function size:0x2A8 +GetObjTRXPtr = .text:0x800274FC; // type:function size:0x14C scope:weak +SetObjMatMotion = .text:0x80027648; // type:function size:0x208 +SetObjAttrMotion = .text:0x80027850; // type:function size:0x218 +SetObjCameraMotion = .text:0x80027A68; // type:function size:0x558 +SetObjLightMotion = .text:0x80027FC0; // type:function size:0x1D8 +GetCurve = .text:0x80028198; // type:function size:0xD8 +GetConstant = .text:0x80028270; // type:function size:0x70 +GetLinear = .text:0x800282E0; // type:function size:0x110 +GetBezier = .text:0x800283F0; // type:function size:0x200 scope:weak +GetBitMap = .text:0x800285F0; // type:function size:0x64 +Hu3DJointMotion = .text:0x80028654; // type:function size:0xCC +JointModel_Motion = .text:0x80028720; // type:function size:0x124 +Hu3DMotionCalc = .text:0x80028844; // type:function size:0x19C +SearchObjectIndex = .text:0x800289E0; // type:function size:0x90 scope:local +SearchAttributeIndex = .text:0x80028A70; // type:function size:0x9C scope:local +Hu3DAnimInit = .text:0x80028B0C; // type:function size:0x7C +Hu3DAnimCreate = .text:0x80028B88; // type:function size:0x1D0 +Hu3DAnimLink = .text:0x80028D58; // type:function size:0x1C4 +Hu3DAnimKill = .text:0x80028F1C; // type:function size:0x104 +Hu3DAnimModelKill = .text:0x80029020; // type:function size:0x13C +Hu3DAnimAllKill = .text:0x8002915C; // type:function size:0x134 +Hu3DAnimAttrSet = .text:0x80029290; // type:function size:0x34 +Hu3DAnimAttrReset = .text:0x800292C4; // type:function size:0x38 +Hu3DAnimSpeedSet = .text:0x800292FC; // type:function size:0x2C +Hu3DAnimBankSet = .text:0x80029328; // type:function size:0x48 +Hu3DAnmNoSet = .text:0x80029370; // type:function size:0x38 +Hu3DAnimSet = .text:0x800293A8; // type:function size:0x240 +Hu3DAnimExec = .text:0x800295E8; // type:function size:0x474 +Hu3DTexScrollCreate = .text:0x80029A5C; // type:function size:0x1AC +Hu3DTexScrollKill = .text:0x80029C08; // type:function size:0xE0 +Hu3DTexScrollAllKill = .text:0x80029CE8; // type:function size:0x10C +Hu3DTexScrollPosSet = .text:0x80029DF4; // type:function size:0x44 +Hu3DTexScrollPosMoveSet = .text:0x80029E38; // type:function size:0xA4 +Hu3DTexScrollRotSet = .text:0x80029EDC; // type:function size:0x3C +Hu3DTexScrollRotMoveSet = .text:0x80029F18; // type:function size:0x5C +Hu3DTexScrollPauseDisableSet = .text:0x80029F74; // type:function size:0x54 +Hu3DParticleCreate = .text:0x80029FC8; // type:function size:0x348 +Hu3DParticleScaleSet = .text:0x8002A310; // type:function size:0x6C +Hu3DParticleZRotSet = .text:0x8002A37C; // type:function size:0x6C +Hu3DParticleColSet = .text:0x8002A3E8; // type:function size:0x74 +Hu3DParticleTPLvlSet = .text:0x8002A45C; // type:function size:0x80 +Hu3DParticleBlendModeSet = .text:0x8002A4DC; // type:function size:0x38 +Hu3DParticleHookSet = .text:0x8002A514; // type:function size:0x38 +Hu3DParticleAttrSet = .text:0x8002A54C; // type:function size:0x40 +Hu3DParticleAttrReset = .text:0x8002A58C; // type:function size:0x44 +Hu3DParticleCntSet = .text:0x8002A5D0; // type:function size:0x3C +Hu3DParticleAnimModeSet = .text:0x8002A60C; // type:function size:0x60 +particleFunc = .text:0x8002A66C; // type:function size:0xAD4 scope:local +Hu3DParManInit = .text:0x8002B140; // type:function size:0x48 +Hu3DParManCreate = .text:0x8002B188; // type:function size:0x1D4 +Hu3DParManLink = .text:0x8002B35C; // type:function size:0x17C +Hu3DParManKill = .text:0x8002B4D8; // type:function size:0x190 +Hu3DParManAllKill = .text:0x8002B668; // type:function size:0x1C4 +Hu3DParManPtrGet = .text:0x8002B82C; // type:function size:0x20 +Hu3DParManPosSet = .text:0x8002B84C; // type:function size:0x3C +Hu3DParManVecSet = .text:0x8002B888; // type:function size:0x3C +Hu3DParManRotSet = .text:0x8002B8C4; // type:function size:0x7C +Hu3DParManAttrSet = .text:0x8002B940; // type:function size:0x40 +Hu3DParManAttrReset = .text:0x8002B980; // type:function size:0x40 +Hu3DParManModelIDGet = .text:0x8002B9C0; // type:function size:0x34 +Hu3DParManTimeLimitSet = .text:0x8002B9F4; // type:function size:0x38 +Hu3DParManVacumeSet = .text:0x8002BA2C; // type:function size:0x74 +Hu3DParManColorSet = .text:0x8002BAA0; // type:function size:0x68 +ParManFunc = .text:0x8002BB08; // type:function size:0xBC0 scope:local +ParManHook = .text:0x8002C6C8; // type:function size:0x4B4 scope:local +CamMotionEx2 = .text:0x8002CB7C; // type:function size:0xAC +CamMotionEx = .text:0x8002CC28; // type:function size:0xA14 +SetObjCamMotion = .text:0x8002D63C; // type:function size:0x244 scope:local +InterpolateBMLine = .text:0x8002D880; // type:function size:0x40C +Hu3D2Dto3D = .text:0x8002DC8C; // type:function size:0x1D4 +Hu3D3Dto2D = .text:0x8002DE60; // type:function size:0x1D0 +Hu3DMtxTransGet = .text:0x8002E030; // type:function size:0x1C +Hu3DMtxRotGet = .text:0x8002E04C; // type:function size:0x540 +Hu3DMtxScaleGet = .text:0x8002E58C; // type:function size:0x1C8 +HuPerfInit = .text:0x8002E754; // type:function size:0x94 +HuPerfCreate = .text:0x8002E7E8; // type:function size:0x130 +HuPerfZero = .text:0x8002E918; // type:function size:0x40 +HuPerfBegin = .text:0x8002E958; // type:function size:0x7C +HuPerfEnd = .text:0x8002E9D4; // type:function size:0xA0 +DSCallbackFunc = .text:0x8002EA74; // type:function size:0x16C +omMasterInit = .text:0x8002EBE0; // type:function size:0x90 +omWatchOverlayProc = .text:0x8002EC70; // type:function size:0x170 scope:local +omOvlCallEx = .text:0x8002EDE0; // type:function size:0xE8 +omOvlGotoEx = .text:0x8002EEC8; // type:function size:0x60 +omOvlReturnEx = .text:0x8002EF28; // type:function size:0xF4 +omOvlKill = .text:0x8002F01C; // type:function size:0xB8 +omOvlHisChg = .text:0x8002F0D4; // type:function size:0xA0 +omOvlHisGet = .text:0x8002F174; // type:function size:0x78 +omInitObjMan = .text:0x8002F1EC; // type:function size:0x220 +omDestroyObjMan = .text:0x8002F40C; // type:function size:0x50 +omAddObjEx = .text:0x8002F45C; // type:function size:0x1DC +omInsertObj = .text:0x8002F638; // type:function size:0xF8 +omAddMember = .text:0x8002F730; // type:function size:0x84 +omDelObjEx = .text:0x8002F7B4; // type:function size:0x190 +omDelMember = .text:0x8002F944; // type:function size:0x88 +omMakeGroupEx = .text:0x8002F9CC; // type:function size:0xFC +omGetGroupMemberListEx = .text:0x8002FAC8; // type:function size:0x2C +omSetStatBit = .text:0x8002FAF4; // type:function size:0x10 +omResetStatBit = .text:0x8002FB04; // type:function size:0x14 +omSetTra = .text:0x8002FB18; // type:function size:0x10 +omSetRot = .text:0x8002FB28; // type:function size:0x10 +omSetSca = .text:0x8002FB38; // type:function size:0x10 +omMain = .text:0x8002FB48; // type:function size:0x2F8 +omAllPause = .text:0x8002FE40; // type:function size:0xE0 +omPauseChk = .text:0x8002FF20; // type:function size:0x2C +omCurrentOvlGet = .text:0x8002FF4C; // type:function size:0x8 +OSPanic = .text:0x8002FF54; // type:function size:0x150 +HuFaultInitXfbDirectDraw = .text:0x800300A4; // type:function size:0x118 +HuFaultSetXfbAddress = .text:0x800301BC; // type:function size:0x34 +XFB_WriteBackCache = .text:0x800301F0; // type:function size:0x98 scope:local +XFB_CR = .text:0x80030288; // type:function size:0x50 scope:local +XFB_puts = .text:0x800302D8; // type:function size:0xF4 scope:local +XFB_putcS = .text:0x800303CC; // type:function size:0x150 scope:local +XFB_putcProgressive = .text:0x8003051C; // type:function size:0x1F0 scope:local +XFB_putcInterlace = .text:0x8003070C; // type:function size:0x1B4 scope:local +GWInit = .text:0x800308C0; // type:function size:0x158 +GWGameStatReset = .text:0x80030A18; // type:function size:0x31C +GWMessDelayGet = .text:0x80030D34; // type:function size:0x4C +GWMGRecordSet = .text:0x80030D80; // type:function size:0x54 +GWMGRecordGet = .text:0x80030DD4; // type:function size:0x18 +GWCharColorGet = .text:0x80030DEC; // type:function size:0x140 +GWBoardPlayCountSet = .text:0x80030F2C; // type:function size:0x24 +GWBoardPlayCountAdd = .text:0x80030F50; // type:function size:0x38 +GWBoardPlayCountGet = .text:0x80030F88; // type:function size:0x14 +GWBoardMaxStarsSet = .text:0x80030F9C; // type:function size:0x1C +GWBoardMaxStarsGet = .text:0x80030FB8; // type:function size:0x18 +GWBoardMaxCoinsSet = .text:0x80030FD0; // type:function size:0x1C +GWBoardMaxCoinsGet = .text:0x80030FEC; // type:function size:0x18 +GWBoardWinCountInc = .text:0x80031004; // type:function size:0x5C +GWBoardWinCountGet = .text:0x80031060; // type:function size:0x1C +GWBoardWinCountSet = .text:0x8003107C; // type:function size:0x20 +GWMGAvailGet = .text:0x8003109C; // type:function size:0x6C +GWMGAvailSet = .text:0x80031108; // type:function size:0x5C +GWMGCustomGet = .text:0x80031164; // type:function size:0x6C +GWMGCustomSet = .text:0x800311D0; // type:function size:0x5C +GWMGCustomReset = .text:0x8003122C; // type:function size:0x60 +GWCoinsGet = .text:0x8003128C; // type:function size:0x18 +GWCoinsSet = .text:0x800312A4; // type:function size:0xB0 +GWCoinsAdd = .text:0x80031354; // type:function size:0xD0 +GWStarsSet = .text:0x80031424; // type:function size:0x6C +GWStarsAdd = .text:0x80031490; // type:function size:0x94 +GWStarsGet = .text:0x80031524; // type:function size:0x18 +GWTotalStarsSet = .text:0x8003153C; // type:function size:0x34 +GWTotalStarsAdd = .text:0x80031570; // type:function size:0x54 +GWTotalStarsGet = .text:0x800315C4; // type:function size:0x10 +omOutView = .text:0x800315D4; // type:function size:0x238 +omOutViewMulti = .text:0x8003180C; // type:function size:0x2C4 +omSystemKeyCheckSetup = .text:0x80031AD0; // type:function size:0x74 +omSystemKeyCheck = .text:0x80031B44; // type:function size:0x230 +omSysPauseEnable = .text:0x80031D74; // type:function size:0x8 +omSysPauseCtrl = .text:0x80031D7C; // type:function size:0x50 +omDLLDBGOut = .text:0x80031DCC; // type:function size:0x2C +omDLLInit = .text:0x80031DF8; // type:function size:0x6C +omDLLStart = .text:0x80031E64; // type:function size:0x154 +omDLLNumEnd = .text:0x80031FB8; // type:function size:0xB4 +omDLLEnd = .text:0x8003206C; // type:function size:0x13C +omDLLLink = .text:0x800321A8; // type:function size:0x138 +omDLLUnlink = .text:0x800322E0; // type:function size:0xB4 +omDLLSearch = .text:0x80032394; // type:function size:0xC8 +omDLLInfoDump = .text:0x8003245C; // type:function size:0xD0 +omDLLHeaderDump = .text:0x8003252C; // type:function size:0xE0 +frand = .text:0x8003260C; // type:function size:0xAC +frandf = .text:0x800326B8; // type:function size:0xD8 +frandmod = .text:0x80032790; // type:function size:0xB8 +HuAudInit = .text:0x80032848; // type:function size:0x170 +HuAudStreamPlay = .text:0x800329B8; // type:function size:0x8 +HuAudStreamVolSet = .text:0x800329C0; // type:function size:0x3C +HuAudStreamPauseOn = .text:0x800329FC; // type:function size:0x24 +HuAudStreamPauseOff = .text:0x80032A20; // type:function size:0x24 +HuAudStreamFadeOut = .text:0x80032A44; // type:function size:0x4 +HuAudAllStop = .text:0x80032A48; // type:function size:0x28 +HuAudFadeOut = .text:0x80032A70; // type:function size:0x3C +HuAudFXPlay = .text:0x80032AAC; // type:function size:0x80 +HuAudFXPlayVol = .text:0x80032B2C; // type:function size:0x48 +HuAudFXPlayVolPan = .text:0x80032B74; // type:function size:0x68 +HuAudFXStop = .text:0x80032BDC; // type:function size:0x2C +HuAudFXAllStop = .text:0x80032C08; // type:function size:0x28 +HuAudFXFadeOut = .text:0x80032C30; // type:function size:0x30 +HuAudFXPanning = .text:0x80032C60; // type:function size:0x50 +HuAudFXListnerSet = .text:0x80032CB0; // type:function size:0xA4 +HuAudFXListnerSetEX = .text:0x80032D54; // type:function size:0x134 +HuAudFXListnerUpdate = .text:0x80032E88; // type:function size:0x3C +HuAudFXEmiterPlay = .text:0x80032EC4; // type:function size:0x6C +HuAudFXEmiterUpDate = .text:0x80032F30; // type:function size:0x64 +HuAudFXListnerKill = .text:0x80032F94; // type:function size:0x20 +HuAudFXPauseAll = .text:0x80032FB4; // type:function size:0x2C +HuAudFXStatusGet = .text:0x80032FE0; // type:function size:0x28 +HuAudFXPitchSet = .text:0x80033008; // type:function size:0x54 +HuAudFXVolSet = .text:0x8003305C; // type:function size:0x58 +HuAudSeqPlay = .text:0x800330B4; // type:function size:0x5C +HuAudSeqStop = .text:0x80033110; // type:function size:0x48 +HuAudSeqFadeOut = .text:0x80033158; // type:function size:0x3C +HuAudSeqAllFadeOut = .text:0x80033194; // type:function size:0x5C +HuAudSeqAllStop = .text:0x800331F0; // type:function size:0x28 +HuAudSeqPauseAll = .text:0x80033218; // type:function size:0x2C +HuAudSeqPause = .text:0x80033244; // type:function size:0x54 +HuAudSeqMidiCtrlGet = .text:0x80033298; // type:function size:0x60 +HuAudSStreamPlay = .text:0x800332F8; // type:function size:0x64 +HuAudSStreamStop = .text:0x8003335C; // type:function size:0x38 +HuAudSStreamFadeOut = .text:0x80033394; // type:function size:0x3C +HuAudSStreamAllFadeOut = .text:0x800333D0; // type:function size:0x28 +HuAudSStreamAllStop = .text:0x800333F8; // type:function size:0x24 +HuAudSStreamStatGet = .text:0x8003341C; // type:function size:0x28 +HuAudDllSndGrpSet = .text:0x80033444; // type:function size:0x104 +HuAudSndGrpSetSet = .text:0x80033548; // type:function size:0x1A4 +HuAudSndGrpSet = .text:0x800336EC; // type:function size:0x60 +HuAudSndCommonGrpSet = .text:0x8003374C; // type:function size:0x154 +HuAudAUXSet = .text:0x800338A0; // type:function size:0x58 +HuAudAUXVolSet = .text:0x800338F8; // type:function size:0xC +HuAudVoiceInit = .text:0x80033904; // type:function size:0x298 +HuAudPlayerVoicePlay = .text:0x80033B9C; // type:function size:0x50 +HuAudPlayerVoicePlayPos = .text:0x80033BEC; // type:function size:0x58 +HuAudPlayerVoicePlayEntry = .text:0x80033C44; // type:function size:0x50 +HuAudCharVoicePlay = .text:0x80033C94; // type:function size:0xAC +HuAudCharVoicePlayPos = .text:0x80033D40; // type:function size:0xD0 +HuAudCharVoicePlayEntry = .text:0x80033E10; // type:function size:0x90 +HuSePlay = .text:0x80033EA0; // type:function size:0x68 scope:local +InitEnvelope = .text:0x80033F08; // type:function size:0x1A4 +SetEnvelopMtx = .text:0x800340AC; // type:function size:0x23C scope:local +EnvelopeProc = .text:0x800342E8; // type:function size:0x80 +InitVtxParm = .text:0x80034368; // type:function size:0x50 +SetEnvelopMain = .text:0x800343B8; // type:function size:0x158 scope:local +SetEnvelop = .text:0x80034510; // type:function size:0x9F0 scope:local +SetMtx = .text:0x80034F00; // type:function size:0x334 scope:local +SetRevMtx = .text:0x80035234; // type:function size:0x11C scope:local +SearchSklenton = .text:0x80035350; // type:function size:0x78 scope:local +MGSeqInit = .text:0x800353C8; // type:function size:0xBC +MGSeqMain = .text:0x80035484; // type:function size:0x188 +CreateSeq = .text:0x8003560C; // type:function size:0x1A4 scope:local +MGSeqCreate = .text:0x800357B0; // type:function size:0x100 +MGSeqStatGet = .text:0x800358B0; // type:function size:0x88 +MGSeqPosSet = .text:0x80035938; // type:function size:0x4C +MGSeqParamSet = .text:0x80035984; // type:function size:0x4C +MGSeqKill = .text:0x800359D0; // type:function size:0x58 +MGSeqKillAll = .text:0x80035A28; // type:function size:0x3C +MGSeqDoneCheck = .text:0x80035A64; // type:function size:0xA4 +MGSeqStub = .text:0x80035B08; // type:function size:0x4 +MGSeqSprKill = .text:0x80035B0C; // type:function size:0x8C +SeqInitTimer = .text:0x80035B98; // type:function size:0x2F0 scope:local +SeqUpdateTimer = .text:0x80035E88; // type:function size:0x69C scope:local +SeqInitType2 = .text:0x80036524; // type:function size:0x3D8 +SeqUpdateType2 = .text:0x800368FC; // type:function size:0x2F8 +fn_80036BC8 = .text:0x80036BF4; // type:function size:0x188 +SeqMakeWord = .text:0x80036D7C; // type:function size:0x1D0 scope:local +SeqLoadFontChar = .text:0x80036F4C; // type:function size:0x26C scope:local +SeqInitMGBasic = .text:0x800371B8; // type:function size:0x194 scope:local +SeqUpdateMGBasic = .text:0x8003734C; // type:function size:0x9D0 scope:local +SeqInitMGCommon = .text:0x80037D1C; // type:function size:0x2A4 scope:local +SeqUpdateMGBattle = .text:0x80037FC0; // type:function size:0xDA4 scope:local +SeqUpdateMG1vs3 = .text:0x80038D64; // type:function size:0xDA4 scope:local +SeqUpdateMGStory = .text:0x80039B08; // type:function size:0xBB8 scope:local +SeqUpdateMG2vs2 = .text:0x8003A6C0; // type:function size:0xAB4 scope:local +SeqInitFlip = .text:0x8003B174; // type:function size:0x3C4 scope:local +SeqUpdateFlip = .text:0x8003B538; // type:function size:0x91C scope:local +SeqUpdateMGBowser = .text:0x8003BE54; // type:function size:0xC84 scope:local +SeqInitDraw = .text:0x8003CAD8; // type:function size:0xDC scope:local +SeqUpdateDraw = .text:0x8003CBB4; // type:function size:0x3DC scope:local +SeqInitWin = .text:0x8003CF90; // type:function size:0x6D0 scope:local +SeqUpdateWin = .text:0x8003D660; // type:function size:0x708 scope:local +SeqInitRecord = .text:0x8003DD68; // type:function size:0x764 scope:local +SeqUpdateRecord = .text:0x8003E4CC; // type:function size:0x304 scope:local +MGSeqPauseInit = .text:0x8003E7D0; // type:function size:0x6C +PauseProc = .text:0x8003E83C; // type:function size:0x94C scope:local +MGSeqPauseKill = .text:0x8003F188; // type:function size:0xC +MGSeqPauseEnableCtrl = .text:0x8003F194; // type:function size:0x40 +MGSeqPracticeInit = .text:0x8003F1D4; // type:function size:0xDC +PracticeProc = .text:0x8003F2B0; // type:function size:0x234 scope:local +SeqPlayStartFX = .text:0x8003F4E4; // type:function size:0xD4 scope:local +MGSeqPracticeExitCheck = .text:0x8003F5B8; // type:function size:0x128 +espInit = .text:0x8003F6E0; // type:function size:0xA0 +espEntry = .text:0x8003F780; // type:function size:0x1B0 +espKill = .text:0x8003F930; // type:function size:0x98 +espGrpIDGet = .text:0x8003F9C8; // type:function size:0x8 +espDispOn = .text:0x8003F9D0; // type:function size:0x44 +espDispOff = .text:0x8003FA14; // type:function size:0x44 +espAttrSet = .text:0x8003FA58; // type:function size:0x48 +espAttrReset = .text:0x8003FAA0; // type:function size:0x48 +espPosSet = .text:0x8003FAE8; // type:function size:0x50 +espScaleSet = .text:0x8003FB38; // type:function size:0x50 +espZRotSet = .text:0x8003FB88; // type:function size:0x48 +espTPLvlSet = .text:0x8003FBD0; // type:function size:0x48 +espColorSet = .text:0x8003FC18; // type:function size:0x58 +espSpeedSet = .text:0x8003FC70; // type:function size:0x48 +espBankSet = .text:0x8003FCB8; // type:function size:0x48 +espDrawNoSet = .text:0x8003FD00; // type:function size:0x48 +espPriSet = .text:0x8003FD48; // type:function size:0x48 +fn_8003FF68 = .text:0x8003FD90; // type:function size:0x268 +fn_800401D0 = .text:0x8003FFF8; // type:function size:0x12C +fn_800402FC = .text:0x80040124; // type:function size:0x78 +fn_80040374 = .text:0x8004019C; // type:function size:0x98 +fn_8004040C = .text:0x80040234; // type:function size:0xF4 +GetClusterCurve = .text:0x80040328; // type:function size:0xA8 +GetClusterWeightCurve = .text:0x800403D0; // type:function size:0xA8 +SetClusterMain = .text:0x80040478; // type:function size:0x3A0 scope:local +ClusterProc = .text:0x80040818; // type:function size:0x160 +ClusterMotionExec = .text:0x80040978; // type:function size:0x210 +SetShapeMain = .text:0x80040B88; // type:function size:0x36C scope:local +ShapeProc = .text:0x80040EF4; // type:function size:0xA4 +WipeInit = .text:0x80040F98; // type:function size:0xB4 +WipeExecAlways = .text:0x8004104C; // type:function size:0x288 +WipeCreate = .text:0x800412D4; // type:function size:0x12C +WipeColorSet = .text:0x80041400; // type:function size:0x58 +WipeStatGet = .text:0x80041458; // type:function size:0x10 +WipeDummyFade = .text:0x80041468; // type:function size:0x8 scope:local +WipeNormalFade = .text:0x80041470; // type:function size:0xFC scope:local +WipeColorFill = .text:0x8004156C; // type:function size:0x31C scope:local +WipeCrossFade = .text:0x80041888; // type:function size:0x184 scope:local +WipeFrameStill = .text:0x80041A0C; // type:function size:0x4C8 scope:local +HuWindowInit = .text:0x80041ED4; // type:function size:0x74 +HuWinInit = .text:0x80041F48; // type:function size:0x214 +HuWinCreate = .text:0x8004215C; // type:function size:0x544 +HuWinKill = .text:0x800426A0; // type:function size:0xA4 +HuWinAllKill = .text:0x80042744; // type:function size:0x1AC +MesDispFunc = .text:0x800428F0; // type:function size:0x7C4 scope:local +winBGMake = .text:0x800430B4; // type:function size:0x480 scope:local +HuWinProc = .text:0x80043534; // type:function size:0xF4 scope:local +HuWinDrawMes = .text:0x80043628; // type:function size:0xF60 scope:local +HuWinCR = .text:0x80044588; // type:function size:0x54 +_HuWinHomeClear = .text:0x800445DC; // type:function size:0x90 +HuWinHomeClear = .text:0x8004466C; // type:function size:0xA4 +HuWinKeyWaitEntry = .text:0x80044710; // type:function size:0x88 +HuWinKeyWait = .text:0x80044798; // type:function size:0x10C scope:local +HuWinSpcFontEntry = .text:0x800448A4; // type:function size:0x1A4 scope:local +HuWinSpcFontClear = .text:0x80044A48; // type:function size:0x80 scope:local +HuWinChoice = .text:0x80044AC8; // type:function size:0xA9C scope:local +HuWinActivePadGet = .text:0x80045564; // type:function size:0x68 +HuWinActiveKeyGetX = .text:0x800455CC; // type:function size:0xE8 +HuWinPosSet = .text:0x800456B4; // type:function size:0x6C +HuWinScaleSet = .text:0x80045720; // type:function size:0x6C +HuWinZRotSet = .text:0x8004578C; // type:function size:0x58 +HuWinCenterPosSet = .text:0x800457E4; // type:function size:0xAC +HuWinDrawNoSet = .text:0x80045890; // type:function size:0x4C +HuWinScissorSet = .text:0x800458DC; // type:function size:0x64 +HuWinPriSet = .text:0x80045940; // type:function size:0xB8 +HuWinAttrSet = .text:0x800459F8; // type:function size:0x34 +HuWinAttrReset = .text:0x80045A2C; // type:function size:0x34 +HuWinStatGet = .text:0x80045A60; // type:function size:0x2C +HuWinMesColSet = .text:0x80045A8C; // type:function size:0x3C +HuWinMesPalSet = .text:0x80045AC8; // type:function size:0x58 +HuWinBGTPLvlSet = .text:0x80045B20; // type:function size:0x50 +HuWinBGColSet = .text:0x80045B70; // type:function size:0x60 +HuWinMesSpeedSet = .text:0x80045BD0; // type:function size:0x2C +HuWinMesRead = .text:0x80045BFC; // type:function size:0xA4 +HuWinMesSet = .text:0x80045CA0; // type:function size:0x398 +HuWinInsertMesSet = .text:0x80046038; // type:function size:0xD8 +HuWinChoiceGet = .text:0x80046110; // type:function size:0x27C +HuWinChoiceNumGet = .text:0x8004638C; // type:function size:0x2C +HuWinChoiceDisable = .text:0x800463B8; // type:function size:0x38 +HuWinChoiceNowGet = .text:0x800463F0; // type:function size:0x40 +HuWinMesWait = .text:0x80046430; // type:function size:0x50 +HuWinAnimSet = .text:0x80046480; // type:function size:0x8C +HuWinSprSet = .text:0x8004650C; // type:function size:0xF0 +HuWinSprPosSet = .text:0x800465FC; // type:function size:0x88 +HuWinSprPriSet = .text:0x80046684; // type:function size:0x6C +HuWinSprIDGet = .text:0x800466F0; // type:function size:0x38 +HuWinSprKill = .text:0x80046728; // type:function size:0x68 +HuWinDispOff = .text:0x80046790; // type:function size:0x90 +HuWinDispOn = .text:0x80046820; // type:function size:0x90 +HuWinComKeyWait = .text:0x800468B0; // type:function size:0xC0 +HuWinComKeySet = .text:0x80046970; // type:function size:0x44 +_HuWinComKeySet = .text:0x800469B4; // type:function size:0x98 +HuWinComKeyGet = .text:0x80046A4C; // type:function size:0x1D4 +HuWinComKeyReset = .text:0x80046C20; // type:function size:0x10 +HuWinMesMaxSizeGet = .text:0x80046C30; // type:function size:0x17C +HuWinInsertMesSizeGet = .text:0x80046DAC; // type:function size:0x60 +HuWinMesSizeCancelCRSet = .text:0x80046E0C; // type:function size:0x8 +HuWinMesMaxSizeBetGet = .text:0x80046E14; // type:function size:0x120 +GetMesMaxSizeSub = .text:0x80046F34; // type:function size:0x2C0 scope:local +GetMesMaxSizeSub2 = .text:0x800471F4; // type:function size:0x1CC scope:local +HuWinKeyWaitNumGet = .text:0x800473C0; // type:function size:0x88 +HuWinPushKeySet = .text:0x80047448; // type:function size:0x2C +HuWinDisablePlayerSet = .text:0x80047474; // type:function size:0x34 +HuWinDisablePlayerReset = .text:0x800474A8; // type:function size:0x38 +HuWinExCreate = .text:0x800474E0; // type:function size:0x4C +HuWinExCreateStyled = .text:0x8004752C; // type:function size:0x228 +HuWinExAnimIn = .text:0x80047754; // type:function size:0x3B0 +HuWinExAnimOut = .text:0x80047B04; // type:function size:0x304 +HuWinExCleanup = .text:0x80047E08; // type:function size:0xA4 +HuWinExAnimPopIn = .text:0x80047EAC; // type:function size:0x264 +MessData_MesPtrGet = .text:0x80048110; // type:function size:0xE8 +HuCardInit = .text:0x800481F8; // type:function size:0x34 +HuCardCheck = .text:0x8004822C; // type:function size:0xC4 +HuCardSlotCheck = .text:0x800482F0; // type:function size:0x58 +HuCardMount = .text:0x80048348; // type:function size:0xEC +HuCardUnMount = .text:0x80048434; // type:function size:0x28 +HuCardFormat = .text:0x8004845C; // type:function size:0x50 +MountCallBack = .text:0x800484AC; // type:function size:0x1C scope:local +HuCardOpen = .text:0x800484C8; // type:function size:0x70 +HuCardRead = .text:0x80048538; // type:function size:0x68 +HuCardCreate = .text:0x800485A0; // type:function size:0x100 +HuCardClose = .text:0x800486A0; // type:function size:0x38 +HuCardWrite = .text:0x800486D8; // type:function size:0x50 +HuCardDelete = .text:0x80048728; // type:function size:0x40 +HuCardSectorSizeGet = .text:0x80048768; // type:function size:0x4C +HuCardFreeSpaceGet = .text:0x800487B4; // type:function size:0x48 +HuARInit = .text:0x800487FC; // type:function size:0x148 +HuARMalloc = .text:0x80048944; // type:function size:0x16C +HuARFree = .text:0x80048AB0; // type:function size:0x16C +HuAMemDump = .text:0x80048C1C; // type:function size:0xA8 +HuAR_DVDtoARAM = .text:0x80048CC4; // type:function size:0x160 +ArqCallBack = .text:0x80048E24; // type:function size:0x10 scope:local +HuAR_MRAMtoARAM = .text:0x80048E34; // type:function size:0x2C +HuAR_MRAMtoARAM2 = .text:0x80048E60; // type:function size:0x140 +HuAR_ARAMtoMRAM = .text:0x80048FA0; // type:function size:0x2C +HuAR_ARAMtoMRAMNum = .text:0x80048FCC; // type:function size:0x1F0 +ArqCallBackAM = .text:0x800491BC; // type:function size:0x44 scope:local +HuARDMACheck = .text:0x80049200; // type:function size:0x8 +HuARDirCheck = .text:0x80049208; // type:function size:0x58 +HuARDirFree = .text:0x80049260; // type:function size:0x68 +HuAR_ARAMtoMRAMFileRead = .text:0x800492C8; // type:function size:0x390 +ArqCallBackAMFileRead = .text:0x80049658; // type:function size:0x10 scope:local +CharManInit = .text:0x80049668; // type:function size:0x134 +CharAMemPtrGet = .text:0x8004979C; // type:function size:0x1C +CharARAMOpen = .text:0x800497B8; // type:function size:0x98 +CharARAMClose = .text:0x80049850; // type:function size:0x58 +CharKill = .text:0x800498A8; // type:function size:0x428 +CharKillAll = .text:0x80049CD0; // type:function size:0x3C +CharModelCreate = .text:0x80049D0C; // type:function size:0x180 +UpdateChar = .text:0x80049E8C; // type:function size:0x20C scope:local +UpdateCharAnim = .text:0x8004A098; // type:function size:0x173C scope:local +PlayCharVoice = .text:0x8004B7D4; // type:function size:0xB0 scope:local +InitEffect = .text:0x8004B884; // type:function size:0x254 scope:local +CreateEffectDust = .text:0x8004BAD8; // type:function size:0xB0 scope:local +CreateEffectSmoke = .text:0x8004BB88; // type:function size:0xB0 scope:local +CreateEffectDot = .text:0x8004BC38; // type:function size:0xB0 scope:local +CreateEffectStar = .text:0x8004BCE8; // type:function size:0xB0 scope:local +CreateEffectWarn = .text:0x8004BD98; // type:function size:0xB0 scope:local +CreateEffectBird = .text:0x8004BE48; // type:function size:0xB0 scope:local +CreateEffect = .text:0x8004BEF8; // type:function size:0x1CC scope:local +UpdateEffect = .text:0x8004C0C4; // type:function size:0x4A0 scope:local +RotateEffect = .text:0x8004C564; // type:function size:0x1E8 +PlayEffectSound = .text:0x8004C74C; // type:function size:0x344 +CharModelMotionCreate = .text:0x8004CA90; // type:function size:0x1D0 +CharModelMotionIndexSet = .text:0x8004CC60; // type:function size:0x88 +CharModelMotionKill = .text:0x8004CCE8; // type:function size:0x9C +CharModelMotionDataClose = .text:0x8004CD84; // type:function size:0x2B8 +CharModelDataClose = .text:0x8004D03C; // type:function size:0x430 +CharModelKill = .text:0x8004D46C; // type:function size:0x244 +CharModelMotionSet = .text:0x8004D6B0; // type:function size:0x7C +CharModelTexAnimSet = .text:0x8004D72C; // type:function size:0x17C +CharModelTexNameGet = .text:0x8004D8A8; // type:function size:0x7C +CharModelHookNameGet = .text:0x8004D924; // type:function size:0x7C +CharModelMotionTimeSet = .text:0x8004D9A0; // type:function size:0x4C +CharModelMotionTimeGet = .text:0x8004D9EC; // type:function size:0x44 +CharModelMotionMaxTimeGet = .text:0x8004DA30; // type:function size:0x44 +CharModelMotionEndCheck = .text:0x8004DA74; // type:function size:0x44 +CharModelMotionShiftIDGet = .text:0x8004DAB8; // type:function size:0x44 +CharModelMotionShiftSet = .text:0x8004DAFC; // type:function size:0x84 +CharModelMotionShiftTimeGet = .text:0x8004DB80; // type:function size:0x44 +CharModelMotionSpeedSet = .text:0x8004DBC4; // type:function size:0x4C +CharModelLayerSetAll = .text:0x8004DC10; // type:function size:0x80 +CharModelItemHookCreate = .text:0x8004DC90; // type:function size:0x1D4 +UpdateItemHook = .text:0x8004DE64; // type:function size:0x484 scope:local +CharModelEffectCreate = .text:0x8004E2E8; // type:function size:0x3FC +OrbitEffect = .text:0x8004E6E4; // type:function size:0x168 scope:local +CharModelCoinEffectCreate = .text:0x8004E84C; // type:function size:0x1A0 +fn_8004EC74 = .text:0x8004E9EC; // type:function size:0x130 +fn_8004EDA4 = .text:0x8004EB1C; // type:function size:0x2B4 +fn_8004F058 = .text:0x8004EDD0; // type:function size:0xE4 +fn_8004F13C = .text:0x8004EEB4; // type:function size:0x2B4 +CharModelLayerSetAll2 = .text:0x8004F168; // type:function size:0x80 +CharModelVoiceEnableSet = .text:0x8004F1E8; // type:function size:0xBC +fn_8004F52C = .text:0x8004F2A4; // type:function size:0x4C +CharModelEffectEnableSet = .text:0x8004F2F0; // type:function size:0xB0 +CharModelEffectNpcInit = .text:0x8004F3A0; // type:function size:0x2CC +CharModelEffectNpcInitSilent = .text:0x8004F66C; // type:function size:0x2CC +UpdateNpcEffect = .text:0x8004F938; // type:function size:0xF80 scope:local +CharModelStepTypeSet = .text:0x800508B8; // type:function size:0x30 +PlayStepFX = .text:0x800508E8; // type:function size:0xEC scope:local +MapWall = .text:0x800509D4; // type:function size:0x1B8 +MapWallCheck = .text:0x80050B8C; // type:function size:0x110 +MapPos = .text:0x80050C9C; // type:function size:0x2A8 +PolygonRangeCheck = .text:0x80050F44; // type:function size:0x38C scope:local +DefIfnnerMapCircle = .text:0x800512D0; // type:function size:0x470 scope:local +CalcPPLength = .text:0x80051740; // type:function size:0x5D4 scope:local +MapIflnnerCalc = .text:0x80051D14; // type:function size:0xF4 scope:local +MapCalcPoint = .text:0x80051E08; // type:function size:0x388 scope:local +AreaCheck = .text:0x80052190; // type:function size:0x148 scope:local +MapIflnnerTriangle = .text:0x800522D8; // type:function size:0x518 scope:local +MapIflnnerQuadrangle = .text:0x800527F0; // type:function size:0x994 scope:local +GetPolygonCircleMtx = .text:0x80053184; // type:function size:0xC28 scope:local +PrecalcPntToTriangle = .text:0x80053DAC; // type:function size:0x43C scope:local +Hitcheck_Triangle_with_Sphere = .text:0x800541E8; // type:function size:0x100 +Hitcheck_Quadrangle_with_Sphere = .text:0x800542E8; // type:function size:0x19C +DefSetHitFace = .text:0x80054484; // type:function size:0x4C scope:local +AppendAddXZ = .text:0x800544D0; // type:function size:0x184 +CharRotInv = .text:0x80054654; // type:function size:0x124 +THPSimpleInit = .text:0x80054778; // type:function size:0x124 +THPSimpleQuit = .text:0x8005489C; // type:function size:0x54 +THPSimpleOpen = .text:0x800548F0; // type:function size:0x408 +THPSimpleClose = .text:0x80054CF8; // type:function size:0xC0 +THPSimpleCalcNeedMemory = .text:0x80054DB8; // type:function size:0x184 +THPSimpleSetBuffer = .text:0x80054F3C; // type:function size:0x240 +__THPSimpleDVDCallback = .text:0x8005517C; // type:function size:0x2A4 scope:local +THPSimplePreLoad = .text:0x80055420; // type:function size:0x2A4 +THPSimpleAudioStart = .text:0x800556C4; // type:function size:0x14 +THPSimpleAudioStop = .text:0x800556D8; // type:function size:0x14 +THPSimpleLoadStop = .text:0x800556EC; // type:function size:0x1B8 +THPSimpleDecode = .text:0x800558A4; // type:function size:0x47C +VideoDecode = .text:0x80055D20; // type:function size:0xD8 scope:local +THPSimpleDrawCurrentFrame = .text:0x80055DF8; // type:function size:0x104 +MixAudio = .text:0x80055EFC; // type:function size:0x5F8 scope:local +THPSimpleGetVideoInfo = .text:0x800564F4; // type:function size:0x58 +THPSimpleGetTotalFrame = .text:0x8005654C; // type:function size:0x2C +THPAudioMixCallback = .text:0x80056578; // type:function size:0x188 scope:local +THPSimpleSetVolume = .text:0x80056700; // type:function size:0x17C +THPGXRestore = .text:0x8005687C; // type:function size:0x130 +THPGXYuv2RgbSetup = .text:0x800569AC; // type:function size:0x5A0 +THPGXYuv2RgbDraw = .text:0x80056F4C; // type:function size:0x288 +HuTHPSprCreateVol = .text:0x800571D4; // type:function size:0x108 +HuTHPSprCreate = .text:0x800572DC; // type:function size:0x110 +HuTHP3DCreateVol = .text:0x800573EC; // type:function size:0xF8 +HuTHP3DCreate = .text:0x800574E4; // type:function size:0x100 +HuTHPStop = .text:0x800575E4; // type:function size:0xC +HuTHPClose = .text:0x800575F0; // type:function size:0xC +HuTHPRestart = .text:0x800575FC; // type:function size:0xC +HuTHPEndCheck = .text:0x80057608; // type:function size:0x54 +HuTHPFrameGet = .text:0x8005765C; // type:function size:0x8 +HuTHPTotalFrameGet = .text:0x80057664; // type:function size:0x20 +HuTHPSetVolume = .text:0x80057684; // type:function size:0x30 +THPTestProc = .text:0x800576B4; // type:function size:0x27C scope:local +THPViewFunc = .text:0x80057930; // type:function size:0xA4 scope:local +THPViewSprFunc = .text:0x800579D4; // type:function size:0x17C scope:local +THPDecodeFunc = .text:0x80057B50; // type:function size:0x4C scope:local +omMgIndexGet = .text:0x80057B9C; // type:function size:0x5C +omGameSysInit = .text:0x80057BF8; // type:function size:0xF4 +omVibrate = .text:0x80057CEC; // type:function size:0x9C +_CheckFlag = .text:0x80057D88; // type:function size:0xA0 +_SetFlag = .text:0x80057E28; // type:function size:0xA4 +_ClearFlag = .text:0x80057ECC; // type:function size:0xA4 +_InitFlag = .text:0x80057F70; // type:function size:0x30 +SLFileOpen = .text:0x80057FA0; // type:function size:0x140 +SLFileCreate = .text:0x800580E0; // type:function size:0x280 +SLFileWrite = .text:0x80058360; // type:function size:0x10C +SLFileRead = .text:0x8005846C; // type:function size:0x84 +SLFileClose = .text:0x800584F0; // type:function size:0x4C +SLCurSlotNoSet = .text:0x8005853C; // type:function size:0x8 +SLCurBoxNoSet = .text:0x80058544; // type:function size:0xC +SLSaveFlagSet = .text:0x80058550; // type:function size:0x40 +SLSaveFlagGet = .text:0x80058590; // type:function size:0x8 +SLSaveDataMake = .text:0x80058598; // type:function size:0x154 +SLSaveDataInfoSet = .text:0x800586EC; // type:function size:0x218 +SLCommonSet = .text:0x80058904; // type:function size:0x254 +SLSaveBoard = .text:0x80058B58; // type:function size:0x8C +SLSaveBoardStory = .text:0x80058BE4; // type:function size:0x8C +SLSave = .text:0x80058C70; // type:function size:0x370 +SLCreateSaveWin = .text:0x80058FE0; // type:function size:0xDC scope:local +SLKillSaveWin = .text:0x800590BC; // type:function size:0x48 scope:local +SLLoad = .text:0x80059104; // type:function size:0x110 +SLLoadGameStat = .text:0x80059214; // type:function size:0x38 +SLLoadBoard = .text:0x8005924C; // type:function size:0x1A0 +SLLoadBoardStory = .text:0x800593EC; // type:function size:0x184 +SLSerialNoGet = .text:0x80059570; // type:function size:0x28 +SLSerialNoCheck = .text:0x80059598; // type:function size:0xA0 +SLCheckSumCheck = .text:0x80059638; // type:function size:0x60 +SLCheckSumGet = .text:0x80059698; // type:function size:0x54 +SLCheckSumSet = .text:0x800596EC; // type:function size:0x90 +SLStatSet = .text:0x8005977C; // type:function size:0x1D4 +SLCardMount = .text:0x80059950; // type:function size:0x12C +SLFormat = .text:0x80059A7C; // type:function size:0x594 +SLMessOut = .text:0x8005A010; // type:function size:0x3FC +HuSoftResetButtonCheck = .text:0x8005A40C; // type:function size:0x50 +HuDvdErrDispIntFunc = .text:0x8005A45C; // type:function size:0x28 +HuDvdErrDispInit = .text:0x8005A484; // type:function size:0x208 +ToeThreadFunc = .text:0x8005A68C; // type:function size:0xD8 scope:local +ToeDispCheck = .text:0x8005A764; // type:function size:0x128 scope:local +_HuDvdErrDispXFB = .text:0x8005A88C; // type:function size:0x348 scope:local +HuRestartSystem = .text:0x8005ABD4; // type:function size:0xDC +HuSoftResetCheck = .text:0x8005ACB0; // type:function size:0xFC scope:local +HuSoftResetCountCheck = .text:0x8005ADAC; // type:function size:0xCC scope:local +HuSoftResetPostProc = .text:0x8005AE78; // type:function size:0x78 scope:local +BoardObjectSetup = .text:0x8005AEF0; // type:function size:0x2E0 +InitBoardFunc = .text:0x8005B1D0; // type:function size:0x64 scope:local +ExecBoardFunc = .text:0x8005B234; // type:function size:0x9C scope:local +KillBoardFunc = .text:0x8005B2D0; // type:function size:0xCC scope:local +BoardKill = .text:0x8005B39C; // type:function size:0xAC +BoardIsKill = .text:0x8005B448; // type:function size:0x48 +BoardPauseDisableSet = .text:0x8005B490; // type:function size:0x74 +BoardPauseDisableGet = .text:0x8005B504; // type:function size:0x48 +BoardSaveInit = .text:0x8005B54C; // type:function size:0x524 +BoardStoryConfigSet = .text:0x8005BA70; // type:function size:0x160 +BoardPartyConfigSet = .text:0x8005BBD0; // type:function size:0x160 +DestroyMainFunc = .text:0x8005BD30; // type:function size:0xC scope:local +MainFunc = .text:0x8005BD3C; // type:function size:0x7D0 scope:local +BoardTurnNext = .text:0x8005C50C; // type:function size:0x8C +ExecTurnStart = .text:0x8005C598; // type:function size:0x28C scope:local +BoardNextOvlSet = .text:0x8005C824; // type:function size:0xC4 +BoardStartCheck = .text:0x8005C8E8; // type:function size:0x8C +CreateBoard = .text:0x8005C974; // type:function size:0x424 scope:local +DestroyBoard = .text:0x8005CD98; // type:function size:0x128 scope:local +BoardLightHookSet = .text:0x8005CEC0; // type:function size:0xC +BoardLightSetExec = .text:0x8005CECC; // type:function size:0x44 +BoardLightResetExec = .text:0x8005CF10; // type:function size:0x50 +BoardCameraBackup = .text:0x8005CF60; // type:function size:0x3C +BoardCameraRestore = .text:0x8005CF9C; // type:function size:0x48 +BoardCameraScissorSet = .text:0x8005CFE4; // type:function size:0x54 +BoardCameraViewSet = .text:0x8005D038; // type:function size:0x2AC +BoardCameraPosGet = .text:0x8005D2E4; // type:function size:0x48 +BoardCameraTargetGet = .text:0x8005D32C; // type:function size:0x48 +BoardCameraRotGet = .text:0x8005D374; // type:function size:0x48 +BoardCameraZoomGet = .text:0x8005D3BC; // type:function size:0x20 +BoardCameraDirGet = .text:0x8005D3DC; // type:function size:0xA8 +BoardCameraPointDirGet = .text:0x8005D484; // type:function size:0xBC +BoardCameraMaskSet = .text:0x8005D540; // type:function size:0x28 +BoardCameraMoveSet = .text:0x8005D568; // type:function size:0x50 +BoardCameraOffsetSet = .text:0x8005D5B8; // type:function size:0x30 +BoardCameraTargetPlayerSet = .text:0x8005D5E8; // type:function size:0xB4 +BoardCameraTargetModelSet = .text:0x8005D69C; // type:function size:0x40 +BoardCameraTargetSpaceSet = .text:0x8005D6DC; // type:function size:0x44 +BoardCameraPosCalcFuncSet = .text:0x8005D720; // type:function size:0x28 +BoardCameraQuakeSet = .text:0x8005D748; // type:function size:0x3C +BoardCameraQuakeReset = .text:0x8005D784; // type:function size:0x3C +BoardCameraTargetSet = .text:0x8005D7C0; // type:function size:0x28 +BoardCameraPosSet = .text:0x8005D7E8; // type:function size:0x28 +BoardCameraXRotZoomSet = .text:0x8005D810; // type:function size:0x24 +BoardCameraZoomSet = .text:0x8005D834; // type:function size:0x20 +BoardCameraRotSet = .text:0x8005D854; // type:function size:0x24 +BoardCameraNearFarSet = .text:0x8005D878; // type:function size:0x24 +BoardCameraNearFarGet = .text:0x8005D89C; // type:function size:0x3C +BoardCameraMotionStart = .text:0x8005D8D8; // type:function size:0x48 +BoardCameraMotionStartEx = .text:0x8005D920; // type:function size:0x230 +BoardCameraFovSet = .text:0x8005DB50; // type:function size:0x20 +BoardCameraCullCheck = .text:0x8005DB70; // type:function size:0x2BC +BoardCameraMotionIsDone = .text:0x8005DE2C; // type:function size:0x48 +BoardCameraMotionWait = .text:0x8005DE74; // type:function size:0x58 +BoardCameraInit = .text:0x8005DECC; // type:function size:0x24C +UpdateCamera = .text:0x8005E118; // type:function size:0x350 scope:local +CalcCameraTarget = .text:0x8005E468; // type:function size:0xE4 scope:local +CalcCameraPos = .text:0x8005E54C; // type:function size:0x764 scope:local +BoardMGDoneFlagSet = .text:0x8005ECB0; // type:function size:0x48 +BoardMGDoneFlagGet = .text:0x8005ECF8; // type:function size:0x48 +BoardMGExit = .text:0x8005ED40; // type:function size:0x170 +KillBoardMG = .text:0x8005EEB0; // type:function size:0x60 scope:local +ExecBoardMG = .text:0x8005EF10; // type:function size:0xC4 scope:local +BoardMGCreate = .text:0x8005EFD4; // type:function size:0x74 +BoardEventFlagSet = .text:0x8005F048; // type:function size:0x28 +BoardEventFlagReset = .text:0x8005F070; // type:function size:0x28 +BoardEventFlagGet = .text:0x8005F098; // type:function size:0x48 +BoardMTXCalcLookAt = .text:0x8005F0E0; // type:function size:0x10C +BoardArcSin = .text:0x8005F1EC; // type:function size:0x330 +BoardArcCos = .text:0x8005F51C; // type:function size:0x390 +BoardRandInit = .text:0x8005F8AC; // type:function size:0x24 +BoardRand = .text:0x8005F8D0; // type:function size:0x24 +BoardRandMod = .text:0x8005F8F4; // type:function size:0x50 +BoardRandFloat = .text:0x8005F944; // type:function size:0x58 +BoardVecDistXZCalc = .text:0x8005F99C; // type:function size:0x134 +BoardVecMaxDistXZCheck = .text:0x8005FAD0; // type:function size:0x15C +BoardDAngleCalcVec = .text:0x8005FC2C; // type:function size:0x7C +BoardDAngleCalc = .text:0x8005FCA8; // type:function size:0x34 +BoardDAngleCalcRange = .text:0x8005FCDC; // type:function size:0x1C0 +BoardVecMinDistCheck = .text:0x8005FE9C; // type:function size:0x6C +BoardFilterFadeOut = .text:0x8005FF08; // type:function size:0xD4 +BoardFilterFadeInit = .text:0x8005FFDC; // type:function size:0x174 +BoardFilterFadePauseCheck = .text:0x80060150; // type:function size:0x5C +BoardFilterFadeCheck = .text:0x800601AC; // type:function size:0x34 +UpdateFilter = .text:0x800601E0; // type:function size:0x178 scope:local +DrawFilter = .text:0x80060358; // type:function size:0x350 scope:local +BoardConfettiCreate = .text:0x800606A8; // type:function size:0x164 +BoardConfettiKill = .text:0x8006080C; // type:function size:0x24 +BoardConfettiStop = .text:0x80060830; // type:function size:0x88 +UpdateConfetti = .text:0x800608B8; // type:function size:0xB8 scope:local +SpawnConfetti = .text:0x80060970; // type:function size:0x564 scope:local +MoveConfetti = .text:0x80060ED4; // type:function size:0x14C scope:local +DrawConfetti = .text:0x80061020; // type:function size:0x254 scope:local +BoardLast5GfxInit = .text:0x80061274; // type:function size:0x2B4 +UpdateLast5Gfx = .text:0x80061528; // type:function size:0x2AC scope:local +BoardLast5GfxShowSet = .text:0x800617D4; // type:function size:0xAC +BoardTauntInit = .text:0x80061880; // type:function size:0x80 +BoardTauntKill = .text:0x80061900; // type:function size:0x54 +TauntUpdate = .text:0x80061954; // type:function size:0x3A4 scope:local +BoardDataDirReadAsync = .text:0x80061CF8; // type:function size:0x38 +BoardDataAsyncWait = .text:0x80061D30; // type:function size:0x48 +BoardItemPrevGet = .text:0x80061D78; // type:function size:0xC +BoardItemPrevSet = .text:0x80061D84; // type:function size:0xC +BoardPlayerGetCharMess = .text:0x80061D90; // type:function size:0x78 +BoardPlayerGetCharName = .text:0x80061E08; // type:function size:0x78 +BoardPlayerIsAllCom = .text:0x80061E80; // type:function size:0x80 +BoardPlayerInit = .text:0x80061F00; // type:function size:0x16C +BoardPlayerModelInit = .text:0x8006206C; // type:function size:0x588 +BoardPlayerModelKill = .text:0x800625F4; // type:function size:0xFC +BoardPlayerLayerSet = .text:0x800626F0; // type:function size:0x84 +BoardPlayerCameraSet = .text:0x80062774; // type:function size:0x80 +fn_80062A40 = .text:0x800627F4; // type:function size:0x80 +BoardPlayerExistCheck = .text:0x80062874; // type:function size:0xB4 +BoardPlayerItemAdd = .text:0x80062928; // type:function size:0xB0 +BoardPlayerItemRemove = .text:0x800629D8; // type:function size:0xB4 +BoardPlayerItemFind = .text:0x80062A8C; // type:function size:0x58 +BoardPlayerItemCount = .text:0x80062AE4; // type:function size:0x60 +BoardPlayerCornerPosSet = .text:0x80062B44; // type:function size:0x40 +BoardPlayerCornerPosGet = .text:0x80062B84; // type:function size:0xC4 +BoardPlayerAmbSet = .text:0x80062C48; // type:function size:0x90 +BoardPlayerMtxSet = .text:0x80062CD8; // type:function size:0x80 +BoardPlayerPosSetV = .text:0x80062D58; // type:function size:0x9C +BoardPlayerPosSet = .text:0x80062DF4; // type:function size:0xCC +BoardPlayerPosGet = .text:0x80062EC0; // type:function size:0x80 +BoardPlayerRotSetV = .text:0x80062F40; // type:function size:0x9C +BoardPlayerRotSet = .text:0x80062FDC; // type:function size:0xCC +BoardPlayerRotGet = .text:0x800630A8; // type:function size:0x80 +BoardPlayerRotYSet = .text:0x80063128; // type:function size:0xD4 +BoardPlayerRotYGet = .text:0x800631FC; // type:function size:0xA8 +BoardPlayerScaleSetV = .text:0x800632A4; // type:function size:0x80 +BoardPlayerScaleSet = .text:0x80063324; // type:function size:0x90 +BoardPlayerScaleGet = .text:0x800633B4; // type:function size:0x80 +BoardPlayerCurrMotionGet = .text:0x80063434; // type:function size:0x44 +BoardPlayerVoiceEnableSet = .text:0x80063478; // type:function size:0x88 +BoardPlayerMotionCreate = .text:0x80063500; // type:function size:0x80 +BoardPlayerMotionKill = .text:0x80063580; // type:function size:0x80 +BoardPlayerMotionEndCheck = .text:0x80063600; // type:function size:0x78 +BoardPlayerMotionEndWait = .text:0x80063678; // type:function size:0x88 +BoardPlayerMotionStart = .text:0x80063700; // type:function size:0xD0 +BoardPlayerMotionShiftSet = .text:0x800637D0; // type:function size:0xE0 +BoardPlayerMotionSpeedSet = .text:0x800638B0; // type:function size:0x80 +BoardPlayerMotionTimeSet = .text:0x80063930; // type:function size:0x80 +BoardPlayerMotionTimeGet = .text:0x800639B0; // type:function size:0x78 +BoardPlayerMotionMaxTimeGet = .text:0x80063A28; // type:function size:0x78 +BoardPlayerMotionStartEndSet = .text:0x80063AA0; // type:function size:0xA0 +BoardPlayerModelAttrSet = .text:0x80063B40; // type:function size:0x80 +BoardPlayerModelAttrReset = .text:0x80063BC0; // type:function size:0x80 +BoardPlayerCoinsSet = .text:0x80063C40; // type:function size:0x34 +BoardPlayerCoinsGet = .text:0x80063C74; // type:function size:0x2C +BoardPlayerCoinsAdd = .text:0x80063CA0; // type:function size:0x9C +BoardPlayerStarsAdd = .text:0x80063D3C; // type:function size:0x48 +BoardPlayerSizeSet = .text:0x80063D84; // type:function size:0x16C +BoardPlayerSizeGet = .text:0x80063EF0; // type:function size:0x40 +BoardPlayerSameTeamFind = .text:0x80063F30; // type:function size:0x7C +BoardPlayerTeamFind = .text:0x80063FAC; // type:function size:0x7C +BoardPlayerRankCalc = .text:0x80064028; // type:function size:0xC4 +BoardPlayerPreTurnHookSet = .text:0x800640EC; // type:function size:0x18 +BoardPlayerPostTurnHookSet = .text:0x80064104; // type:function size:0x18 +BoardPlayerTurnExec = .text:0x8006411C; // type:function size:0x15C +BoardPlayerTurnRollExec = .text:0x80064278; // type:function size:0x160 +BoardPlayerTurnMoveExec = .text:0x800643D8; // type:function size:0x420 +BoardPlayerPostTurnHookExec = .text:0x800647F8; // type:function size:0x80 +BoardPlayerSizeRestore = .text:0x80064878; // type:function size:0x18C +BoardPlayerZoomRestore = .text:0x80064A04; // type:function size:0x134 +BoardJunctionMaskSet = .text:0x80064B38; // type:function size:0x10 +BoardJunctionMaskReset = .text:0x80064B48; // type:function size:0x10 +BoardJunctionMaskZero = .text:0x80064B58; // type:function size:0xC +InitJunction = .text:0x80064B64; // type:function size:0x634 scope:local +UpdateJunctionGfx = .text:0x80065198; // type:function size:0x1A0 scope:local +StopJunctionPlayer = .text:0x80065338; // type:function size:0x70 scope:local +RestoreJunction = .text:0x800653A8; // type:function size:0x180 scope:local +GetDefaultDirection = .text:0x80065528; // type:function size:0x114 scope:local +DoDebugMove = .text:0x8006563C; // type:function size:0x8E8 scope:local +ExecJunction = .text:0x80065F24; // type:function size:0xBF8 scope:local +BoardPlayerMoveTo = .text:0x80066B1C; // type:function size:0xBC +BoardPlayerMoveBetween = .text:0x80066BD8; // type:function size:0x90 +BoardPlayerMoveToAsync = .text:0x80066C68; // type:function size:0x90 +BoardPlayerPosLerpStart = .text:0x80066CF8; // type:function size:0x430 +PlayerPosLerpFunc = .text:0x80067128; // type:function size:0x218 scope:local +BoardPlayerDiceJumpStart = .text:0x80067340; // type:function size:0x1D4 +BoardPlayerDiceJumpCheck = .text:0x80067514; // type:function size:0x54 +DiceJumpFunc = .text:0x80067568; // type:function size:0x3E4 scope:local +BoardPlayerIdleSet = .text:0x8006794C; // type:function size:0xF8 +BoardPlayerMotBlendSet = .text:0x80067A44; // type:function size:0x5A0 +ExecMotBlend = .text:0x80067FE4; // type:function size:0x51C scope:local +BoardPlayerMotBlendCheck = .text:0x80068500; // type:function size:0x2C +BoardRollCreate = .text:0x8006852C; // type:function size:0x138 +BoardRollUpdateSet = .text:0x80068664; // type:function size:0x38 +BoardRollDispSet = .text:0x8006869C; // type:function size:0x10C +UpdateRollSprite = .text:0x800687A8; // type:function size:0x194 scope:local +UpdateRoll = .text:0x8006893C; // type:function size:0x278 scope:local +BoardPlayerBtnDownWait = .text:0x80068BB4; // type:function size:0x6C +BoardPlayerAutoSizeSet = .text:0x80068C20; // type:function size:0x9C +BoardPlayerAutoSizeGet = .text:0x80068CBC; // type:function size:0x40 +BoardPlayerMoveAwayIsDone = .text:0x80068CFC; // type:function size:0x1C +BoardPlayerMoveAwayStart = .text:0x80068D18; // type:function size:0x224 +BoardPlayerMoveAwayStartCurr = .text:0x80068F3C; // type:function size:0x40 +MoveAwayObjFunc = .text:0x80068F7C; // type:function size:0x100 scope:local +BoardBowserSuitInit = .text:0x8006907C; // type:function size:0x1A4 +BoardBowserSuitKill = .text:0x80069220; // type:function size:0x128 +BoardBowserSuitModelGet = .text:0x80069348; // type:function size:0x8 +BoardBowserSuitPlayerModelGet = .text:0x80069350; // type:function size:0x8 +BoardBowserSuitMotionCreate = .text:0x80069358; // type:function size:0x74 +BoardBowserSuitMotionSetWait = .text:0x800693CC; // type:function size:0x54 +BoardBowserSuitMotionSetWalk = .text:0x80069420; // type:function size:0x4C +BoardBowserSuitMotionSetWin = .text:0x8006946C; // type:function size:0x44 +BoardBowserSuitMotionSetJump = .text:0x800694B0; // type:function size:0x44 +BoardBowserSuitPlayerModelKill = .text:0x800694F4; // type:function size:0x44 +UpdateBowserSuit = .text:0x80069538; // type:function size:0x1F0 scope:local +BoardPlayerSparkSet = .text:0x80069728; // type:function size:0x5C +DoSparkSpace = .text:0x80069784; // type:function size:0x1294 scope:local +RemoveSparkSpace = .text:0x8006AA18; // type:function size:0xA0 scope:local +SetPlayerSizeAuto = .text:0x8006AAB8; // type:function size:0x24C scope:local +BoardMegaDoubleDiceCheck = .text:0x8006AD04; // type:function size:0x8 +BoardPlayerResizeAnimExec = .text:0x8006AD0C; // type:function size:0x38C +MegaSquishFunc = .text:0x8006B098; // type:function size:0x950 scope:local +MegaPlayerPassFunc = .text:0x8006B9E8; // type:function size:0x980 scope:local +MegaExecJump = .text:0x8006C368; // type:function size:0xA48 scope:local +BoardPlayerCopyEyeMat = .text:0x8006CDB0; // type:function size:0x24C +BoardPlayerCopyMat = .text:0x8006CFFC; // type:function size:0xC0 +BoardModelInit = .text:0x8006D0BC; // type:function size:0xF0 +BoardModelKillAll = .text:0x8006D1AC; // type:function size:0xA0 +ModelMgrFunc = .text:0x8006D24C; // type:function size:0x70 scope:local +BoardModelDummyUpdate = .text:0x8006D2BC; // type:function size:0x4 +BoardModelVisibilityUpdate = .text:0x8006D2C0; // type:function size:0xCC +BoardModelHideSetAll = .text:0x8006D38C; // type:function size:0x90 +BoardModelAmbSetAll = .text:0x8006D41C; // type:function size:0x70 +BoardModelCameraSetAll = .text:0x8006D48C; // type:function size:0x7C +CreateInstance = .text:0x8006D508; // type:function size:0x250 scope:local +BoardModelCreate = .text:0x8006D758; // type:function size:0x40 +BoardModelCreateCharacter = .text:0x8006D798; // type:function size:0x44 +BoardModelCreateParam = .text:0x8006D7DC; // type:function size:0x168 +BoardModelKill = .text:0x8006D944; // type:function size:0x44 +BoardModelIDGet = .text:0x8006D988; // type:function size:0x48 +fn_8006DC1C = .text:0x8006D9D0; // type:function size:0x60 +BoardModelPassSet = .text:0x8006DA30; // type:function size:0x74 +BoardModelAmbSet = .text:0x8006DAA4; // type:function size:0x68 +BoardModelExistCheck = .text:0x8006DB0C; // type:function size:0x48 +BoardModelExistDupe = .text:0x8006DB54; // type:function size:0x48 +fn_8006DDE8 = .text:0x8006DB9C; // type:function size:0x70 +BoardModelMotionCreate = .text:0x8006DC0C; // type:function size:0x140 +BoardModelMotionKill = .text:0x8006DD4C; // type:function size:0x118 +BoardModelMotionStartEndSet = .text:0x8006DE64; // type:function size:0xE8 +BoardModelMotionUpdateSet = .text:0x8006DF4C; // type:function size:0x7C +BoardModelVoiceEnableSet = .text:0x8006DFC8; // type:function size:0xA4 +BoardModelMotionStart = .text:0x8006E06C; // type:function size:0x174 +BoardModelMotionShiftIDGet = .text:0x8006E1E0; // type:function size:0x50 +BoardModelMotionShiftSet = .text:0x8006E230; // type:function size:0x148 +BoardModelAttrSet = .text:0x8006E378; // type:function size:0x58 +BoardModelAttrReset = .text:0x8006E3D0; // type:function size:0x58 +BoardModelMotionTimeSet = .text:0x8006E428; // type:function size:0x84 +BoardModelMotionTimeGet = .text:0x8006E4AC; // type:function size:0x94 +BoardModelMotionMaxTimeGet = .text:0x8006E540; // type:function size:0x88 +BoardModelMotionSpeedGet = .text:0x8006E5C8; // type:function size:0x64 +BoardModelMotionSpeedSet = .text:0x8006E62C; // type:function size:0xA4 +BoardModelMotionEndCheck = .text:0x8006E6D0; // type:function size:0x80 +BoardModelMotionShapeSet = .text:0x8006E750; // type:function size:0x100 +BoardModelMotionShapeTimeGet = .text:0x8006E850; // type:function size:0x7C +BoardModelMotionShapeMaxTimeGet = .text:0x8006E8CC; // type:function size:0xBC +BoardModelMotionShapeSpeedSet = .text:0x8006E988; // type:function size:0x88 +BoardModelMotionShapeSpeedGet = .text:0x8006EA10; // type:function size:0x64 +BoardModelMotionShapeEndCheck = .text:0x8006EA74; // type:function size:0x14C +BoardModelMotionShapeStartEndSet = .text:0x8006EBC0; // type:function size:0x100 +BoardModelAlphaSet = .text:0x8006ECC0; // type:function size:0xB0 +BoardModelMtxSet = .text:0x8006ED70; // type:function size:0x8C +BoardModelMtxGet = .text:0x8006EDFC; // type:function size:0x8C +BoardModelRotYSet = .text:0x8006EE88; // type:function size:0x54 +BoardModelRotYGet = .text:0x8006EEDC; // type:function size:0x30 +BoardModelPosSetV = .text:0x8006EF0C; // type:function size:0x50 +BoardModelPosSet = .text:0x8006EF5C; // type:function size:0x78 +BoardModelRotSetV = .text:0x8006EFD4; // type:function size:0x50 +BoardModelRotSet = .text:0x8006F024; // type:function size:0x78 +BoardModelScaleSetV = .text:0x8006F09C; // type:function size:0x50 +BoardModelScaleSet = .text:0x8006F0EC; // type:function size:0x78 +BoardModelPosGet = .text:0x8006F164; // type:function size:0x74 +BoardModelRotGet = .text:0x8006F1D8; // type:function size:0x74 +BoardModelScaleGet = .text:0x8006F24C; // type:function size:0x74 +BoardModelVisibilitySet = .text:0x8006F2C0; // type:function size:0x60 +BoardModelVisibilityGet = .text:0x8006F320; // type:function size:0x4C +BoardModelCameraSet = .text:0x8006F36C; // type:function size:0x64 +BoardModelLayerSet = .text:0x8006F3D0; // type:function size:0x64 +BoardModelLayerGet = .text:0x8006F434; // type:function size:0x48 +BoardModelLayerSetAll = .text:0x8006F47C; // type:function size:0x74 +BoardModelHookSet = .text:0x8006F4F0; // type:function size:0xC4 +BoardModelHookReset = .text:0x8006F5B4; // type:function size:0x50 +BoardModelHookObjReset = .text:0x8006F604; // type:function size:0x58 +SearchBoardModel = .text:0x8006F65C; // type:function size:0x9C scope:local +KillBoardModel = .text:0x8006F6F8; // type:function size:0x178 scope:local +CreateBoardModel = .text:0x8006F870; // type:function size:0x194 scope:local +CreateBoardModelMotion = .text:0x8006FA04; // type:function size:0x12C scope:local +BoardWinInit = .text:0x8006FB30; // type:function size:0x24 +BoardWinUnusedArraySet = .text:0x8006FB54; // type:function size:0x34 +BoardWinKillAll = .text:0x8006FB88; // type:function size:0x24 +BoardWinDestroy = .text:0x8006FBAC; // type:function size:0x6C +ExecBoardWindow = .text:0x8006FC18; // type:function size:0x534 scope:local +BoardWinChoiceGet = .text:0x8007014C; // type:function size:0xC +BoardWinPause = .text:0x80070158; // type:function size:0xC +BoardWinCreateChoice = .text:0x80070164; // type:function size:0x1A0 +BoardWinCreate = .text:0x80070304; // type:function size:0x1A0 +BoardWinInsertMesSet = .text:0x800704A4; // type:function size:0x18 +BoardWinWait = .text:0x800704BC; // type:function size:0x50 +BoardWinKill = .text:0x8007050C; // type:function size:0x38 +BoardWinAttrSet = .text:0x80070544; // type:function size:0x48 +BoardWinAttrReset = .text:0x8007058C; // type:function size:0x48 +BoardWinChoiceDisable = .text:0x800705D4; // type:function size:0x1C +BoardWinKeyWait = .text:0x800705F0; // type:function size:0xC +BoardWinSpeedGet = .text:0x800705FC; // type:function size:0x64 +BoardWinSpeedSet = .text:0x80070660; // type:function size:0x50 +BoardWinChoiceNowGet = .text:0x800706B0; // type:function size:0x38 +BoardWinPriSet = .text:0x800706E8; // type:function size:0x44 +BoardWinChoiceNowGet2 = .text:0x8007072C; // type:function size:0x38 +BoardWinPortraitGet = .text:0x80070764; // type:function size:0x38 +BoardWinPortraitGetStar = .text:0x8007079C; // type:function size:0x38 +BoardWinPlayerSet = .text:0x800707D4; // type:function size:0x138 +BoardWinStartComKeySet = .text:0x8007090C; // type:function size:0x214 +BoardWinComKeyFuncSet = .text:0x80070B20; // type:function size:0x8 +BoardWinIDGet = .text:0x80070B28; // type:function size:0x8 +BoardMusStartBoard = .text:0x80070B30; // type:function size:0x68 +BoardMusStart = .text:0x80070B98; // type:function size:0xD0 +BoardAudSeqFadeOutFast = .text:0x80070C68; // type:function size:0x2C +BoardAudSeqFadeOut = .text:0x80070C94; // type:function size:0x60 +BoardMusLoudSet = .text:0x80070CF4; // type:function size:0x5C +BoardMusVolPanSet = .text:0x80070D50; // type:function size:0x90 +BoardAudSeqPause = .text:0x80070DE0; // type:function size:0x94 +BoardMusStatusGet = .text:0x80070E74; // type:function size:0x54 +BoardAudSeqClear = .text:0x80070EC8; // type:function size:0x50 +BoardAudSeqFadeOutAll = .text:0x80070F18; // type:function size:0x74 +BoardAudFXPlay = .text:0x80070F8C; // type:function size:0x78 +BoardAudFXStop = .text:0x80071004; // type:function size:0x38 +ExecComKeyLeft = .text:0x8007103C; // type:function size:0x38 scope:local +BoardComKeySetLeft = .text:0x80071074; // type:function size:0x28 +ExecComKeyRight = .text:0x8007109C; // type:function size:0x38 scope:local +BoardComKeySetRight = .text:0x800710D4; // type:function size:0x28 +ExecComKeyUp = .text:0x800710FC; // type:function size:0x38 scope:local +BoardComKeySetUp = .text:0x80071134; // type:function size:0x28 +ExecComKeyDown = .text:0x8007115C; // type:function size:0x38 scope:local +BoardComKeySetDown = .text:0x80071194; // type:function size:0x28 +ExecComKey = .text:0x800711BC; // type:function size:0xE8 scope:local +BoardComPreferItemGet = .text:0x800712A4; // type:function size:0x100 +BoardComPreferItemCheck = .text:0x800713A4; // type:function size:0x120 +BoardComItemWeightGet = .text:0x800714C4; // type:function size:0x74 +BoardComUseItemSlotGet = .text:0x80071538; // type:function size:0xD0 +BoardComUseItemSet = .text:0x80071608; // type:function size:0x6C +BoardComUseItemCheck = .text:0x80071674; // type:function size:0x68 +ChooseUseItem = .text:0x800716DC; // type:function size:0x16C scope:local +CheckMiniUse = .text:0x80071848; // type:function size:0x220 scope:local +CheckMegaUse = .text:0x80071A68; // type:function size:0x248 scope:local +CheckSparkUse = .text:0x80071CB0; // type:function size:0x158 scope:local +CheckBoardChangeUse = .text:0x80071E08; // type:function size:0x314 scope:local +CheckSwapUse = .text:0x8007211C; // type:function size:0x198 scope:local +CheckBooUse = .text:0x800722B4; // type:function size:0x7C scope:local +CheckLampUse = .text:0x80072330; // type:function size:0x74 scope:local +BoardComJunctionInputGet = .text:0x800723A4; // type:function size:0x304 +BoardComFarPlayerFind = .text:0x800726A8; // type:function size:0xA8 +BoardViewOverheadExec = .text:0x80072750; // type:function size:0x134 +BoardViewFocusGetPos = .text:0x80072884; // type:function size:0x3C +BoardViewFocusSet = .text:0x800728C0; // type:function size:0xF0 +BoardViewMoveStart = .text:0x800729B0; // type:function size:0x128 +BoardViewMoveCheck = .text:0x80072AD8; // type:function size:0x34 +BoardViewMoveEnd = .text:0x80072B0C; // type:function size:0xC +BoardViewWait = .text:0x80072B18; // type:function size:0x3C +BoardViewMapExec = .text:0x80072B54; // type:function size:0xC8 +ExecMapView = .text:0x80072C1C; // type:function size:0x398 scope:local +ExecStarView = .text:0x80072FB4; // type:function size:0x170 scope:local +ExecOverheadView = .text:0x80073124; // type:function size:0x158 scope:local +DestroyView = .text:0x8007327C; // type:function size:0x80 scope:local +SetTargetView = .text:0x800732FC; // type:function size:0x178 scope:local +DestroyFocus = .text:0x80073474; // type:function size:0x4C scope:local +CreateButtonWin = .text:0x800734C0; // type:function size:0x110 scope:local +DestroyButtonWin = .text:0x800735D0; // type:function size:0x38 scope:local +InitOverheadView = .text:0x80073608; // type:function size:0x374 scope:local +DestroyOverheadView = .text:0x8007397C; // type:function size:0x24 scope:local +UpdateOverheadView = .text:0x800739A0; // type:function size:0x400 scope:local +WaitOverheadView = .text:0x80073DA0; // type:function size:0x30 scope:local +BoardSpaceWalkEventFuncSet = .text:0x80073DD0; // type:function size:0x8 +BoardSpaceWalkMiniEventFuncSet = .text:0x80073DD8; // type:function size:0x8 +BoardSpaceLandEventFuncSet = .text:0x80073DE0; // type:function size:0x8 +BoardSpaceWalkEventExec = .text:0x80073DE8; // type:function size:0x48 +BoardSpaceWalkMiniEventExec = .text:0x80073E30; // type:function size:0x60 +BoardSpaceCountGet = .text:0x80073E90; // type:function size:0x10 +BoardSpaceGet = .text:0x80073EA0; // type:function size:0x44 +BoardSpaceAttrSet = .text:0x80073EE4; // type:function size:0x18 +BoardSpaceAttrReset = .text:0x80073EFC; // type:function size:0x18 +BoardSpaceFlagGet = .text:0x80073F14; // type:function size:0x48 +BoardSpaceTypeGet = .text:0x80073F5C; // type:function size:0x48 +BoardSpaceTypeSet = .text:0x80073FA4; // type:function size:0x48 +BoardSpacePosGet = .text:0x80073FEC; // type:function size:0x8C +BoardSpaceCornerPosGet = .text:0x80074078; // type:function size:0x2C8 +BoardSpaceRotGet = .text:0x80074340; // type:function size:0x8C +BoardSpaceFlagSearch = .text:0x800743CC; // type:function size:0xA0 +BoardSpaceFlagPosGet = .text:0x8007446C; // type:function size:0x134 +BoardSpaceLinkFlagSearch = .text:0x800745A0; // type:function size:0x134 +BoardSpaceLinkTypeListGet = .text:0x800746D4; // type:function size:0x148 +BoardSpaceLinkTargetListGet = .text:0x8007481C; // type:function size:0x104 +BoardSpaceLinkTypeSearch = .text:0x80074920; // type:function size:0x110 +BoardSpaceLinkTransformGet = .text:0x80074A30; // type:function size:0x1FC +BoardSpaceHostSet = .text:0x80074C2C; // type:function size:0x1BC +BoardSpaceStarSetIndex = .text:0x80074DE8; // type:function size:0x4AC +BoardSpaceStarGetNext = .text:0x80075294; // type:function size:0x344 +BoardSpaceStarGetRandom = .text:0x800755D8; // type:function size:0x9C +BoardSpaceStarMove = .text:0x80075674; // type:function size:0xF0 +BoardSpaceStarGet = .text:0x80075764; // type:function size:0x1C +BoardSpaceStarGetCurr = .text:0x80075780; // type:function size:0x3C +BoardSpaceStarCheck = .text:0x800757BC; // type:function size:0x110 +BoardSpaceLandExec = .text:0x800758CC; // type:function size:0x474 +BoardSpaceWalkExec = .text:0x80075D40; // type:function size:0x2A4 +BoardSpaceBlockExec = .text:0x80075FE4; // type:function size:0x180 +ExecPipeSpace = .text:0x80076164; // type:function size:0x268 scope:local +BoardSpaceTypeForce = .text:0x800763CC; // type:function size:0x5C +BoardSpaceHide = .text:0x80076428; // type:function size:0x48 +DrawSpaces = .text:0x80076470; // type:function size:0x9E8 scope:local +BoardSpaceRead = .text:0x80076E58; // type:function size:0x174 +BoardSpaceCameraSet = .text:0x80076FCC; // type:function size:0x2C +BoardSpaceBlockPosSet = .text:0x80076FF8; // type:function size:0xD0 +BoardSpaceInit = .text:0x800770C8; // type:function size:0x750 +BoardSpaceDestroy = .text:0x80077818; // type:function size:0x70 +BoardShopHostSet = .text:0x80077888; // type:function size:0x8 +BoardShopHostGet = .text:0x80077890; // type:function size:0x8 +BoardShopInit = .text:0x80077898; // type:function size:0xD4 +BoardShopKill = .text:0x8007796C; // type:function size:0xA0 +BoardShopExec = .text:0x80077A0C; // type:function size:0x9C +ExecShop = .text:0x80077AA8; // type:function size:0x800 scope:local +DestroyShop = .text:0x800782A8; // type:function size:0xD4 scope:local +PopupShop = .text:0x8007837C; // type:function size:0x1B4 scope:local +CloseShop = .text:0x80078530; // type:function size:0xBC scope:local +CreateShopWin = .text:0x800785EC; // type:function size:0x13C scope:local +UpdateShopWin = .text:0x80078728; // type:function size:0x314 scope:local +SetShopWinItem = .text:0x80078A3C; // type:function size:0x168 scope:local +PauseShopWin = .text:0x80078BA4; // type:function size:0x2C scope:local +StartItemGive = .text:0x80078BD0; // type:function size:0x18C scope:local +ExecItemGive = .text:0x80078D5C; // type:function size:0x168 scope:local +MoveItemGive = .text:0x80078EC4; // type:function size:0x34C scope:local +ShrinkItemGive = .text:0x80079210; // type:function size:0x144 scope:local +WaitItemGive = .text:0x80079354; // type:function size:0x6C scope:local +GetShopItems = .text:0x800793C0; // type:function size:0x280 scope:local +GetDefaultShopItems = .text:0x80079640; // type:function size:0xA0 scope:local +SortShopItems = .text:0x800796E0; // type:function size:0x14C scope:local +DecideComEnter = .text:0x8007982C; // type:function size:0x1C8 scope:local +DecideComBuy = .text:0x800799F4; // type:function size:0x60 scope:local +GetComItemChoice = .text:0x80079A54; // type:function size:0x158 scope:local +WaitItemChoice = .text:0x80079BAC; // type:function size:0x30 scope:local +CreateShopItemChoice = .text:0x80079BDC; // type:function size:0x238 scope:local +GetShopItemChoice = .text:0x80079E14; // type:function size:0xC scope:local +GetShopItemWinChoice = .text:0x80079E20; // type:function size:0x38 scope:local +MoveShopItemChoice = .text:0x80079E58; // type:function size:0x24C scope:local +UpdateShopItemChoice = .text:0x8007A0A4; // type:function size:0x104 scope:local +GetShopItemChoiceInput = .text:0x8007A1A8; // type:function size:0x30 scope:local +BoardShopTutorialExec = .text:0x8007A1D8; // type:function size:0x4DC +BoardLotteryHostSet = .text:0x8007A6B4; // type:function size:0x8 +BoardLotteryHostGet = .text:0x8007A6BC; // type:function size:0x8 +BoardLotteryExec = .text:0x8007A6C4; // type:function size:0x8C +BoardLotteryInit = .text:0x8007A750; // type:function size:0x16C +CreateModel = .text:0x8007A8BC; // type:function size:0x3B4 scope:local +KillModel = .text:0x8007AC70; // type:function size:0x1FC scope:local +BoardLotteryKill = .text:0x8007AE6C; // type:function size:0x64 +DestroyLottery = .text:0x8007AED0; // type:function size:0xB0 scope:local +ExecLottery = .text:0x8007AF80; // type:function size:0x798 scope:local +DoMiniJumpUp = .text:0x8007B718; // type:function size:0x20C scope:local +DoMiniJumpDown = .text:0x8007B924; // type:function size:0x1BC scope:local +PayEnterFee = .text:0x8007BAE0; // type:function size:0xF0 scope:local +ShowTicket = .text:0x8007BBD0; // type:function size:0x3C8 scope:local +SetupTicket = .text:0x8007BF98; // type:function size:0x140 scope:local +ExecBallGame = .text:0x8007C0D8; // type:function size:0x914 scope:local +SetBallPrize = .text:0x8007C9EC; // type:function size:0xC8 scope:local +ExecBallPrize = .text:0x8007CAB4; // type:function size:0x27C scope:local +ExecScratchTicket = .text:0x8007CD30; // type:function size:0x30C scope:local +ExecScratch = .text:0x8007D03C; // type:function size:0x3AC scope:local +KillScratch = .text:0x8007D3E8; // type:function size:0x6C scope:local +ExecScratchSpr = .text:0x8007D454; // type:function size:0x21C scope:local +HideScratchSpr = .text:0x8007D670; // type:function size:0x68 scope:local +InitScratchSpr = .text:0x8007D6D8; // type:function size:0x288 scope:local +ExecScratchPick = .text:0x8007D960; // type:function size:0x3DC scope:local +InitScratchPick = .text:0x8007DD3C; // type:function size:0x14C scope:local +InitTicketPrizes = .text:0x8007DE88; // type:function size:0xD0 scope:local +ExecTicketFocus = .text:0x8007DF58; // type:function size:0x160 scope:local +ScratchTicketCheckDone = .text:0x8007E0B8; // type:function size:0xA8 scope:local +TicketGetPixel = .text:0x8007E160; // type:function size:0x84 scope:local +TicketUpdate = .text:0x8007E1E4; // type:function size:0x6B0 scope:local +ExecCoinPrize = .text:0x8007E894; // type:function size:0x440 scope:local +ExecItemPrize = .text:0x8007ECD4; // type:function size:0x338 scope:local +KillCoin = .text:0x8007F00C; // type:function size:0x68 scope:local +ExecPrize = .text:0x8007F074; // type:function size:0x4C0 scope:local +ExecLose = .text:0x8007F534; // type:function size:0xA4 scope:local +CreateLotteryWin = .text:0x8007F5D8; // type:function size:0xFC scope:local +KillLotteryWin = .text:0x8007F6D4; // type:function size:0x38 scope:local +BoardLotteryTutorialExec = .text:0x8007F70C; // type:function size:0x2BC +BoardLandBlueExec = .text:0x8007F9C8; // type:function size:0x184 +BoardLandRedExec = .text:0x8007FB4C; // type:function size:0x19C +BoardCoinChgCreate = .text:0x8007FCE8; // type:function size:0x1E8 +BoardCoinChgExist = .text:0x8007FED0; // type:function size:0x6C +BoardCoinChgHide = .text:0x8007FF3C; // type:function size:0x60 +CreateCoinChg = .text:0x8007FF9C; // type:function size:0x23C scope:local +UpdateCoinChg = .text:0x800801D8; // type:function size:0x198 scope:local +CoinChgAppear = .text:0x80080370; // type:function size:0x1B8 scope:local +CoinChgSeparate = .text:0x80080528; // type:function size:0x29C scope:local +CoinChgShow = .text:0x800807C4; // type:function size:0x1A8 scope:local +CoinChgDisappear = .text:0x8008096C; // type:function size:0x260 scope:local +BoardWarpExec = .text:0x80080BCC; // type:function size:0xA4 +WarpProcess = .text:0x80080C70; // type:function size:0x250 scope:local +WarpKill = .text:0x80080EC0; // type:function size:0x5C scope:local +WarpInit = .text:0x80080F1C; // type:function size:0x118 scope:local +WarpLaunch = .text:0x80081034; // type:function size:0xBC scope:local +WarpStartImpact = .text:0x800810F0; // type:function size:0x1B0 scope:local +WarpFall = .text:0x800812A0; // type:function size:0xA4 scope:local +WarpImpact = .text:0x80081344; // type:function size:0x200 scope:local +BoardCharWheelInit = .text:0x80081544; // type:function size:0x11C +BoardCharWheelCheck = .text:0x80081660; // type:function size:0x34 +BoardCharWheelWait = .text:0x80081694; // type:function size:0x50 +BoardCharWheelResultGet = .text:0x800816E4; // type:function size:0x18 +BoardCharWheelSpeedSet = .text:0x800816FC; // type:function size:0x1C +ExecCharWheel = .text:0x80081718; // type:function size:0x118 scope:local +InitCharWheel = .text:0x80081830; // type:function size:0x754 scope:local +UpdateCharWheel = .text:0x80081F84; // type:function size:0x320 scope:local +StopCharWheel = .text:0x800822A4; // type:function size:0x164 scope:local +GrowCharWheel = .text:0x80082408; // type:function size:0x12C scope:local +ShrinkCharWheel = .text:0x80082534; // type:function size:0x10C scope:local +KillCharWheelSpr = .text:0x80082640; // type:function size:0x38 scope:local +SetCharWheelChars = .text:0x80082678; // type:function size:0xBC scope:local +GetInput = .text:0x80082734; // type:function size:0x224 scope:local +BoardCharWheelTargetSet = .text:0x80082958; // type:function size:0x10 +GetComDelay = .text:0x80082968; // type:function size:0x148 scope:local +GetComInput = .text:0x80082AB0; // type:function size:0x8C scope:local +BoardMushroomExec = .text:0x80082B3C; // type:function size:0xA4 +MushroomMain = .text:0x80082BE0; // type:function size:0x38C scope:local +KillMushroom = .text:0x80082F6C; // type:function size:0x58 scope:local +BoxMain = .text:0x80082FC4; // type:function size:0x118 scope:local +ShowBox = .text:0x800830DC; // type:function size:0x114 scope:local +ExitBox = .text:0x800831F0; // type:function size:0x160 scope:local +HideBox = .text:0x80083350; // type:function size:0x68 scope:local +CenterBox = .text:0x800833B8; // type:function size:0xD4 scope:local +InitBox = .text:0x8008348C; // type:function size:0x2EC scope:local +MarkKillBox = .text:0x80083778; // type:function size:0x64 scope:local +SetBoxHide = .text:0x800837DC; // type:function size:0x34 scope:local +SetBoxCenter = .text:0x80083810; // type:function size:0x54 scope:local +SetBoxShow = .text:0x80083864; // type:function size:0x34 scope:local +WaitBoxOpen = .text:0x80083898; // type:function size:0x5C scope:local +WaitBoxCenter = .text:0x800838F4; // type:function size:0x58 scope:local +CheckBox = .text:0x8008394C; // type:function size:0x60 scope:local +DoItemGive = .text:0x800839AC; // type:function size:0x240 scope:local +StartItemGive = .text:0x80083BEC; // type:function size:0xD4 scope:local +KillItemMdl = .text:0x80083CC0; // type:function size:0x38 scope:local +ShowItemMdl = .text:0x80083CF8; // type:function size:0x48 scope:local +WaitItemGive = .text:0x80083D40; // type:function size:0x48 scope:local +BoardStarHostSet = .text:0x80083D88; // type:function size:0xA8 +BoardStarHostMdlGet = .text:0x80083E30; // type:function size:0x8 +BoardStarExec = .text:0x80083E38; // type:function size:0xCC +ExecStar = .text:0x80083F04; // type:function size:0x8F4 scope:local +DestroyStar = .text:0x800847F8; // type:function size:0x84 scope:local +GiveStarMain = .text:0x8008487C; // type:function size:0x160 scope:local +UpdateStarAngle = .text:0x800849DC; // type:function size:0x144 scope:local +InitGiveStar = .text:0x80084B20; // type:function size:0x10C scope:local +MoveGiveStar = .text:0x80084C2C; // type:function size:0x180 scope:local +ShrinkGiveStar = .text:0x80084DAC; // type:function size:0x204 scope:local +StopGiveStar = .text:0x80084FB0; // type:function size:0x38 scope:local +InitGiveStarEffect = .text:0x80084FE8; // type:function size:0xB4 scope:local +KillGiveStarEffect = .text:0x8008509C; // type:function size:0x40 scope:local +BoardStarGive = .text:0x800850DC; // type:function size:0x31C +BoardStarShowNext = .text:0x800853F8; // type:function size:0x628 +ShowNextUpdate = .text:0x80085A20; // type:function size:0x130 scope:local +HideNextHost = .text:0x80085B50; // type:function size:0x24 scope:local +BoardRollExec = .text:0x80085B74; // type:function size:0x1EC +RollWinCreate = .text:0x80085D60; // type:function size:0x21C scope:local +BoardRollKill = .text:0x80085F7C; // type:function size:0x38 +BoardRollUPauseSet = .text:0x80085FB4; // type:function size:0x84 +BoardRollWinDispSet = .text:0x80086038; // type:function size:0x4C +RollMain = .text:0x80086084; // type:function size:0x314 scope:local +DiceCreate = .text:0x80086398; // type:function size:0x280 scope:local +DoInput = .text:0x80086618; // type:function size:0x1C8 scope:local +DiceWaitFull = .text:0x800867E0; // type:function size:0x60 scope:local +DiceSetHit = .text:0x80086840; // type:function size:0x130 scope:local +RollDestroy = .text:0x80086970; // type:function size:0x60 scope:local +DiceMain = .text:0x800869D0; // type:function size:0x7E4 scope:local +DicePause = .text:0x800871B4; // type:function size:0x40 scope:local +DicePauseAll = .text:0x800871F4; // type:function size:0x90 scope:local +BoardDiceEffectCreate = .text:0x80087284; // type:function size:0xE0 +DiceHideEffect = .text:0x80087364; // type:function size:0x84 scope:local +BoardDicePauseAll = .text:0x800873E8; // type:function size:0x94 +BoardDiceDoneCheck = .text:0x8008747C; // type:function size:0x8C +BoardDiceStop = .text:0x80087508; // type:function size:0x58 +BoardDiceVisibleSet = .text:0x80087560; // type:function size:0xC0 +BoardDiceValueSet = .text:0x80087620; // type:function size:0x200 +DiceDigitMain = .text:0x80087820; // type:function size:0xAC scope:local +DiceDigitKill = .text:0x800878CC; // type:function size:0x68 scope:local +DiceKill = .text:0x80087934; // type:function size:0xB4 scope:local +DiceDigitMove = .text:0x800879E8; // type:function size:0x390 scope:local +DiceDigitRotate = .text:0x80087D78; // type:function size:0x110 scope:local +SameRollExec = .text:0x80087E88; // type:function size:0x248 scope:local +GetBtnRoll = .text:0x800880D0; // type:function size:0x110 scope:local +GetComBtnRoll = .text:0x800881E0; // type:function size:0x88 scope:local +BoardRollTutorialSet = .text:0x80088268; // type:function size:0x4C +BoardItemModelGet = .text:0x800882B4; // type:function size:0x90 +BoardItemNameGet = .text:0x80088344; // type:function size:0x98 +BoardStatusStopCheck = .text:0x800883DC; // type:function size:0x48 +BoardStatusVisibleGet = .text:0x80088424; // type:function size:0x1C +BoardStatusShowSetAll = .text:0x80088440; // type:function size:0x48 +BoardStatusItemSet = .text:0x80088488; // type:function size:0xFC +BoardStatusShowSetForce = .text:0x80088584; // type:function size:0x24 +BoardStatusGraySet = .text:0x800885A8; // type:function size:0x134 +BoardStatusShowSet = .text:0x800886DC; // type:function size:0x138 +BoardStatusItemHideSet = .text:0x80088814; // type:function size:0x50 +BoardStatusTargetPosSet = .text:0x80088864; // type:function size:0x44 +BoardStatusPosGet = .text:0x800888A8; // type:function size:0x34 +BoardStatusPosSet = .text:0x800888DC; // type:function size:0x6C +BoardStatusHammerCreate = .text:0x80088948; // type:function size:0x158 +BoardStatusHammerShowSet = .text:0x80088AA0; // type:function size:0x94 +BoardStatusHammerKill = .text:0x80088B34; // type:function size:0x6C +BoardStatusKill = .text:0x80088BA0; // type:function size:0x90 +BoardStatusCreate = .text:0x80088C30; // type:function size:0x20C +KillAllBoardStatus = .text:0x80088E3C; // type:function size:0x98 scope:local +CreateBoardStatusSprite = .text:0x80088ED4; // type:function size:0x36C scope:local +BoardSpriteCreate = .text:0x80089240; // type:function size:0x8C +UpdateBoardStatus = .text:0x800892CC; // type:function size:0x210 scope:local +BoardStatusProc = .text:0x800894DC; // type:function size:0x40 scope:local +MoveBoardStatus = .text:0x8008951C; // type:function size:0x180 scope:local +BoardSpriteDigitUpdate = .text:0x8008969C; // type:function size:0x140 +UpdateStatusItem = .text:0x800897DC; // type:function size:0xB8 scope:local +BoardPickerCreate = .text:0x80089894; // type:function size:0x29C +BoardPickerBackFlagSet = .text:0x80089B30; // type:function size:0x74 +BoardPickerDoneCheck = .text:0x80089BA4; // type:function size:0x1C +BoardPickerPosGet = .text:0x80089BC0; // type:function size:0x48 +BoardPickerChoiceGet = .text:0x80089C08; // type:function size:0xC +UpdatePicker = .text:0x80089C14; // type:function size:0xFC scope:local +UpdatePickerInput = .text:0x80089D10; // type:function size:0x15C scope:local +MovePicker = .text:0x80089E6C; // type:function size:0x110 scope:local +UpdateComPickerButton = .text:0x80089F7C; // type:function size:0x30 scope:local +CheckPickerButton = .text:0x80089FAC; // type:function size:0x19C scope:local +BoardYourTurnExec = .text:0x8008A148; // type:function size:0x1E4 +UpdateYourTurn = .text:0x8008A32C; // type:function size:0xD4 scope:local +GrowYourTurn = .text:0x8008A400; // type:function size:0xD8 scope:local +WaitYourTurn = .text:0x8008A4D8; // type:function size:0xEC scope:local +ShrinkYourTurn = .text:0x8008A5C4; // type:function size:0xC8 scope:local +BoardItemUseExec = .text:0x8008A68C; // type:function size:0x80 +ItemUseTeamProc = .text:0x8008A70C; // type:function size:0x4A8 scope:local +ItemUseProc = .text:0x8008ABB4; // type:function size:0x370 scope:local +FinishItemUse = .text:0x8008AF24; // type:function size:0x174 scope:local +DestroyItemUse = .text:0x8008B098; // type:function size:0x78 scope:local +BoardMakeRandomItem = .text:0x8008B110; // type:function size:0x74 +TeamItemPosSet = .text:0x8008B184; // type:function size:0xE8 scope:local +ExecItemPick = .text:0x8008B26C; // type:function size:0x650 scope:local +UpdateItemPick = .text:0x8008B8BC; // type:function size:0x3AC scope:local +MakeItemPickSpace = .text:0x8008BC68; // type:function size:0x420 scope:local +SetItemUIStatus = .text:0x8008C088; // type:function size:0x248 scope:local +BoardItemGetDestPos = .text:0x8008C2D0; // type:function size:0xA8 +ItemGetPos = .text:0x8008C378; // type:function size:0x104 scope:local +BoardItemStatusKill = .text:0x8008C47C; // type:function size:0x400 +UpdateItemPickGfx = .text:0x8008C87C; // type:function size:0x388 scope:local +UpdateItemPickup = .text:0x8008CC04; // type:function size:0x674 scope:local +CheckItemWindow = .text:0x8008D278; // type:function size:0x50 scope:local +HideItemWindow = .text:0x8008D2C8; // type:function size:0x38 scope:local +CreateItemWindow = .text:0x8008D300; // type:function size:0x5A4 scope:local +CheckItemWindowSlide = .text:0x8008D8A4; // type:function size:0x58 scope:local +KillItemWindow = .text:0x8008D8FC; // type:function size:0x38 scope:local +SetItemWindowCurr = .text:0x8008D934; // type:function size:0xA4 scope:local +UpdateItemWindow = .text:0x8008D9D8; // type:function size:0x350 scope:local +CreatePickerWindow = .text:0x8008DD28; // type:function size:0x11C scope:local +KillPickerWindow = .text:0x8008DE44; // type:function size:0x44 scope:local +BoardBlockExec = .text:0x8008DE88; // type:function size:0x84 +BlockProc = .text:0x8008DF0C; // type:function size:0x358 scope:local +DestroyBlock = .text:0x8008E264; // type:function size:0x54 scope:local +CreateBlockObj = .text:0x8008E2B8; // type:function size:0x1F4 scope:local +ExecBlockObj = .text:0x8008E4AC; // type:function size:0x12C scope:local +DestroyBlockObj = .text:0x8008E5D8; // type:function size:0x38 scope:local +SpawnBlock = .text:0x8008E610; // type:function size:0x120 scope:local +HitBlock = .text:0x8008E730; // type:function size:0xCC scope:local +OpenBlock = .text:0x8008E7FC; // type:function size:0x140 scope:local +SetBlockOpen = .text:0x8008E93C; // type:function size:0x2C scope:local +SetBlockStop = .text:0x8008E968; // type:function size:0x2C scope:local +WaitBlockHit = .text:0x8008E994; // type:function size:0x48 scope:local +CreateCoinMdl = .text:0x8008E9DC; // type:function size:0x94 scope:local +KillCoinMdl = .text:0x8008EA70; // type:function size:0x9C scope:local +PopupCoin = .text:0x8008EB0C; // type:function size:0x10C scope:local +PopupCoinExec = .text:0x8008EC18; // type:function size:0x130 scope:local +BoardItemStart = .text:0x8008ED48; // type:function size:0x74 +BoardItemDoneCheck = .text:0x8008EDBC; // type:function size:0x1C +BoardItemPlayerRestore = .text:0x8008EDD8; // type:function size:0x6C +ItemProcess = .text:0x8008EE44; // type:function size:0x64 scope:local +RestoreProcess = .text:0x8008EEA8; // type:function size:0x64 scope:local +ItemDestroy = .text:0x8008EF0C; // type:function size:0xC scope:local +RestoreDestroy = .text:0x8008EF18; // type:function size:0xC scope:local +ItemSizeShowAnim = .text:0x8008EF24; // type:function size:0x180 scope:local +ItemRotProc = .text:0x8008F0A4; // type:function size:0x1BC scope:local +ItemShowProc = .text:0x8008F260; // type:function size:0x220 scope:local +ItemGetTarget = .text:0x8008F480; // type:function size:0x374 scope:local +ItemSizeSet = .text:0x8008F7F4; // type:function size:0x204 scope:local +ExecItemMini = .text:0x8008F9F8; // type:function size:0xA4 scope:local +ExecItemMega = .text:0x8008FA9C; // type:function size:0xA4 scope:local +ExecItemMiniSuper = .text:0x8008FB40; // type:function size:0xA4 scope:local +ExecItemMegaSuper = .text:0x8008FBE4; // type:function size:0xA4 scope:local +ExecItemHammer = .text:0x8008FC88; // type:function size:0x584 scope:local +ExecItemPipe = .text:0x8009020C; // type:function size:0xD34 scope:local +ExecItemSwap = .text:0x80090F40; // type:function size:0xEBC scope:local +ExecItemSpark = .text:0x80091DFC; // type:function size:0x4FC scope:local +ExecItemLight = .text:0x800922F8; // type:function size:0xC8 scope:local +ExecItemWhistle = .text:0x800923C0; // type:function size:0xE3C scope:local +ExecItemBowser = .text:0x800931FC; // type:function size:0x3D4 scope:local +ExecItemBooBall = .text:0x800935D0; // type:function size:0x1370 scope:local +LampParticleUpdate = .text:0x80094940; // type:function size:0x488 scope:local +GenieParticleUpdate = .text:0x80094DC8; // type:function size:0x388 scope:local +GenieCameraProc = .text:0x80095150; // type:function size:0xB0 scope:local +GenieCameraCalc = .text:0x80095200; // type:function size:0x7A4 scope:local +GenieSceneExec = .text:0x800959A4; // type:function size:0x9D8 scope:local +ExecItemGenie = .text:0x8009637C; // type:function size:0x628 scope:local +BoardItemBagItemSet = .text:0x800969A4; // type:function size:0x3C +ExecItemBagJump = .text:0x800969E0; // type:function size:0x13C scope:local +ExecItemBagShow = .text:0x80096B1C; // type:function size:0xDC scope:local +ExecItemBag = .text:0x80096BF8; // type:function size:0x584 scope:local +RestoreItemNull = .text:0x8009717C; // type:function size:0x1C scope:local +RestoreItemMini = .text:0x80097198; // type:function size:0x2C scope:local +RestoreItemMega = .text:0x800971C4; // type:function size:0x2C scope:local +RestoreItemMiniSuper = .text:0x800971F0; // type:function size:0x2C scope:local +RestoreItemMegaSuper = .text:0x8009721C; // type:function size:0x2C scope:local +RestoreItemBowser = .text:0x80097248; // type:function size:0x284 scope:local +BoardBowserExec = .text:0x800974CC; // type:function size:0x144 +ExecBowser = .text:0x80097610; // type:function size:0x28C scope:local +ExecBowserMain = .text:0x8009789C; // type:function size:0x208 scope:local +ExecMGReturn = .text:0x80097AA4; // type:function size:0x1DC scope:local +DestroyBowser = .text:0x80097C80; // type:function size:0x30 scope:local +SquishPlayers = .text:0x80097CB0; // type:function size:0x148 scope:local +ExecBowserSpecial = .text:0x80097DF8; // type:function size:0x1B4 scope:local +ExecBowserGame = .text:0x80097FAC; // type:function size:0x250 scope:local +DoMGReturnEffect = .text:0x800981FC; // type:function size:0x220 scope:local +ExecBowserShuffle = .text:0x8009841C; // type:function size:0x2B0 scope:local +ExecBowserRevo = .text:0x800986CC; // type:function size:0x160 scope:local +ExecBowserSuit = .text:0x8009882C; // type:function size:0xB8 scope:local +CheckSuitGive = .text:0x800988E4; // type:function size:0x1C scope:local +StartSuitGive = .text:0x80098900; // type:function size:0x148 scope:local +SuitGiveMain = .text:0x80098A48; // type:function size:0x210 scope:local +CreateBowserObj = .text:0x80098C58; // type:function size:0x228 scope:local +ExecBowserObj = .text:0x80098E80; // type:function size:0x230 scope:local +ExecBowserFall = .text:0x800990B0; // type:function size:0x270 scope:local +ExecBowserLaugh = .text:0x80099320; // type:function size:0x58 scope:local +ExecBowserFire = .text:0x80099378; // type:function size:0x44 scope:local +ExecBowserJump = .text:0x800993BC; // type:function size:0x150 scope:local +ExecBowserPowerUp = .text:0x8009950C; // type:function size:0x128 scope:local +SetBowserState = .text:0x80099634; // type:function size:0x34 scope:local +CheckBowserIdle = .text:0x80099668; // type:function size:0x5C scope:local +CreateMiniBowser = .text:0x800996C4; // type:function size:0xD4 scope:local +CheckMiniBowser = .text:0x80099798; // type:function size:0x1C scope:local +ExecMiniBowser = .text:0x800997B4; // type:function size:0x18C scope:local +CreateBowserEvent = .text:0x80099940; // type:function size:0x1E8 scope:local +CheckBowserEvent = .text:0x80099B28; // type:function size:0x38 scope:local +StopBowserEvent = .text:0x80099B60; // type:function size:0x24 scope:local +ExecBowserEvent = .text:0x80099B84; // type:function size:0xEC scope:local +ShowBowserEvent = .text:0x80099C70; // type:function size:0x1C8 scope:local +HideBowserEvent = .text:0x80099E38; // type:function size:0x108 scope:local +ConfigBowserEvent = .text:0x80099F40; // type:function size:0x160 scope:local +CreatePlayerMot = .text:0x8009A0A0; // type:function size:0x1AC scope:local +KillPlayerMot = .text:0x8009A24C; // type:function size:0xB8 scope:local +InitBowserFire = .text:0x8009A304; // type:function size:0x90 scope:local +BowserFireHook = .text:0x8009A394; // type:function size:0x160 scope:local +SpawnBowserFire = .text:0x8009A4F4; // type:function size:0xE4 scope:local +CheckBowserFire = .text:0x8009A5D8; // type:function size:0xCC scope:local +KillBowserFire = .text:0x8009A6A4; // type:function size:0x40 scope:local +ExecMiniBowserEvent = .text:0x8009A6E4; // type:function size:0x188 scope:local +MiniBowserTake = .text:0x8009A86C; // type:function size:0x2C4 scope:local +MiniBowserTakeAll = .text:0x8009AB30; // type:function size:0x2B8 scope:local +MiniBowserBalloonStop = .text:0x8009ADE8; // type:function size:0x24 scope:local +GetMiniBowserBalloonState = .text:0x8009AE0C; // type:function size:0xC scope:local +SetMiniBowserBalloonState = .text:0x8009AE18; // type:function size:0x10 scope:local +CreateMiniBowserBalloon = .text:0x8009AE28; // type:function size:0x14C scope:local +ExecMiniBowserBalloon = .text:0x8009AF74; // type:function size:0x120 scope:local +MiniBowserBalloonHover = .text:0x8009B094; // type:function size:0xB4 scope:local +MiniBowserBalloonFall = .text:0x8009B148; // type:function size:0x88 scope:local +MiniBowserBalloonRaise = .text:0x8009B1D0; // type:function size:0x80 scope:local +SetMiniBowserMotion = .text:0x8009B250; // type:function size:0xD8 scope:local +SetMiniBowserMotionPause = .text:0x8009B328; // type:function size:0x6C scope:local +WaitMiniBowserMotion = .text:0x8009B394; // type:function size:0x60 scope:local +BoardBattleExec = .text:0x8009B3F4; // type:function size:0x124 +DestroyBattle = .text:0x8009B518; // type:function size:0x2C scope:local +ExecBattle = .text:0x8009B544; // type:function size:0x708 scope:local +TakeCoins = .text:0x8009BC4C; // type:function size:0x1D4 scope:local +InitExplode = .text:0x8009BE20; // type:function size:0x1FC scope:local +CheckExplode = .text:0x8009C01C; // type:function size:0x24 scope:local +UpdateExplode = .text:0x8009C040; // type:function size:0x2D0 scope:local +CreateBattleMain = .text:0x8009C310; // type:function size:0x1E8 scope:local +UpdateBattleMain = .text:0x8009C4F8; // type:function size:0x1A0 scope:local +DescendBattleBomb = .text:0x8009C698; // type:function size:0x64 scope:local +EndBattle = .text:0x8009C6FC; // type:function size:0x88 scope:local +ShowBattleGame = .text:0x8009C784; // type:function size:0x124 scope:local +RaiseBattleGame = .text:0x8009C8A8; // type:function size:0x8C scope:local +UpdateBattleCoin = .text:0x8009C934; // type:function size:0x260 scope:local +ShowBattleCoin = .text:0x8009CB94; // type:function size:0x128 scope:local +InitBattleGameSpr = .text:0x8009CCBC; // type:function size:0x12C scope:local +HideBattleSpr = .text:0x8009CDE8; // type:function size:0x58 scope:local +VibratePad = .text:0x8009CE40; // type:function size:0x64 scope:local +StopBattleBomb = .text:0x8009CEA4; // type:function size:0x24 scope:local +GetBattleBombState = .text:0x8009CEC8; // type:function size:0x10 scope:local +SetBattleBombState = .text:0x8009CED8; // type:function size:0x34 scope:local +SetBattleCoinValue = .text:0x8009CF0C; // type:function size:0x15C scope:local +BoardFortuneExec = .text:0x8009D068; // type:function size:0x124 +FortuneExec = .text:0x8009D18C; // type:function size:0x74 scope:local +DestroyFortune = .text:0x8009D200; // type:function size:0xC scope:local +FortuneMain = .text:0x8009D20C; // type:function size:0x340 scope:local +FortunePostMG = .text:0x8009D54C; // type:function size:0xF8 scope:local +CreateFortunePlatform = .text:0x8009D644; // type:function size:0x160 scope:local +CameraCalcFortune = .text:0x8009D7A4; // type:function size:0x5C scope:local +ExecFortunePlatform = .text:0x8009D800; // type:function size:0x198 scope:local +ExecComFortuneWin = .text:0x8009D998; // type:function size:0x18C scope:local +ConfigComFortune = .text:0x8009DB24; // type:function size:0x20C scope:local +ComFortuneAddStar = .text:0x8009DD30; // type:function size:0x78 scope:local +ComFortuneAddCoin = .text:0x8009DDA8; // type:function size:0x78 scope:local +ComFortuneSwapCoin = .text:0x8009DE20; // type:function size:0x68 scope:local +ComFortuneSwapStar = .text:0x8009DE88; // type:function size:0x68 scope:local +BoardBooCreate = .text:0x8009DEF0; // type:function size:0x11C +BoardBooKill = .text:0x8009E00C; // type:function size:0x2C +BoardBooStealTypeSet = .text:0x8009E038; // type:function size:0x2A8 +ComSetupStealPlayer = .text:0x8009E2E0; // type:function size:0x1D4 scope:local +ComSetStealPlayerInput = .text:0x8009E4B4; // type:function size:0xE8 scope:local +BoardBooStealMain = .text:0x8009E59C; // type:function size:0x280 +ExecCoinSteal = .text:0x8009E81C; // type:function size:0xC0 scope:local +ExecStarSteal = .text:0x8009E8DC; // type:function size:0xA8 scope:local +ExecLightSteal = .text:0x8009E984; // type:function size:0x94 scope:local +SetBooMode = .text:0x8009EA18; // type:function size:0x10 scope:local +CreateBallMdl = .text:0x8009EA28; // type:function size:0xBC scope:local +CreateBallView = .text:0x8009EAE4; // type:function size:0x1D4 scope:local +SetBallView = .text:0x8009ECB8; // type:function size:0xAC scope:local +SetBallActive = .text:0x8009ED64; // type:function size:0x28 scope:local +CheckBallKill = .text:0x8009ED8C; // type:function size:0x4C scope:local +BallMain = .text:0x8009EDD8; // type:function size:0x300 scope:local +BallRenderHook = .text:0x8009F0D8; // type:function size:0x4A0 scope:local +ExecBoo = .text:0x8009F578; // type:function size:0x9C scope:local +UpdateBallCamera = .text:0x8009F614; // type:function size:0x1DC scope:local +CreateBallPlayer = .text:0x8009F7F0; // type:function size:0x358 scope:local +GetBallPlayerState = .text:0x8009FB48; // type:function size:0x24 scope:local +SetBallPlayerState = .text:0x8009FB6C; // type:function size:0x2C scope:local +ExecBallPlayer = .text:0x8009FB98; // type:function size:0x214 scope:local +BallPlayerZoomOut = .text:0x8009FDAC; // type:function size:0x15C scope:local +BallPlayerScare = .text:0x8009FF08; // type:function size:0x110 scope:local +BallPlayerTurn = .text:0x800A0018; // type:function size:0x68 scope:local +BallPlayerPunch = .text:0x800A0080; // type:function size:0x1E0 scope:local +BallPlayerUseLight = .text:0x800A0260; // type:function size:0x10C scope:local +BallPlayerCatch = .text:0x800A036C; // type:function size:0x190 scope:local +BallBooCreate = .text:0x800A04FC; // type:function size:0x328 scope:local +SetBallBooState = .text:0x800A0824; // type:function size:0x170 scope:local +GetBallBooState = .text:0x800A0994; // type:function size:0x24 scope:local +ExecBallBoo = .text:0x800A09B8; // type:function size:0x128 scope:local +BallBooSpawn = .text:0x800A0AE0; // type:function size:0x54 scope:local +BallBooChase = .text:0x800A0B34; // type:function size:0x104 scope:local +BallBooBattle = .text:0x800A0C38; // type:function size:0x218 scope:local +BallBooAttack = .text:0x800A0E50; // type:function size:0xF4 scope:local +BallBooFlash = .text:0x800A0F44; // type:function size:0x178 scope:local +TakeBallCoin = .text:0x800A10BC; // type:function size:0x1B0 scope:local +ExecTakeBallCoin = .text:0x800A126C; // type:function size:0xDC scope:local +TakeBallCoinPosSet = .text:0x800A1348; // type:function size:0x9C scope:local +CheckBallCoinDone = .text:0x800A13E4; // type:function size:0x68 scope:local +TakeBallStar = .text:0x800A144C; // type:function size:0x168 scope:local +ExecTakeBallStar = .text:0x800A15B4; // type:function size:0x184 scope:local +CheckTakeBallStarDone = .text:0x800A1738; // type:function size:0x1C scope:local +BoardBooStealValueGet = .text:0x800A1754; // type:function size:0x30 +BoardBooStealLightCheck = .text:0x800A1784; // type:function size:0x20 +UpdatePlayerCoins = .text:0x800A17A4; // type:function size:0x1B0 scope:local +BoardMGSetupExec = .text:0x800A1954; // type:function size:0x60 +DestroyMGSetup = .text:0x800A19B4; // type:function size:0x1C scope:local +ExecMGSetup = .text:0x800A19D0; // type:function size:0x6FC scope:local +DetermineMGList = .text:0x800A20CC; // type:function size:0x3B0 scope:local +SetupStatusLayout = .text:0x800A247C; // type:function size:0x3A8 scope:local +GetMGType = .text:0x800A2824; // type:function size:0x388 scope:local +GetMGTypeTeam = .text:0x800A2BAC; // type:function size:0x3A4 scope:local +CreateMGSetup = .text:0x800A2F50; // type:function size:0x194 scope:local +UpdateMGSetup = .text:0x800A30E4; // type:function size:0x198 scope:local +CenterStatus = .text:0x800A327C; // type:function size:0x174 scope:local +SeparateStatus = .text:0x800A33F0; // type:function size:0x200 scope:local +PopupVS = .text:0x800A35F0; // type:function size:0x20C scope:local +FallMGType = .text:0x800A37FC; // type:function size:0x1C8 scope:local +LuckyMGFall = .text:0x800A39C4; // type:function size:0x204 scope:local +HideLuckyValue = .text:0x800A3BC8; // type:function size:0xA8 scope:local +UpdateLuckyValue = .text:0x800A3C70; // type:function size:0x430 scope:local +UpdateMGList = .text:0x800A40A0; // type:function size:0x8FC scope:local +BoardMGSetupPlayClear = .text:0x800A499C; // type:function size:0x74 +BoardMGSetupPlaySearch = .text:0x800A4A10; // type:function size:0xC8 +BoardMGSetupPlayPush = .text:0x800A4AD8; // type:function size:0xD0 +BoardMGSetupTutorialExec = .text:0x800A4BA8; // type:function size:0x2E4 +BoardBooHouseHostSet = .text:0x800A4E8C; // type:function size:0x8 +BoardBooHouseHostGet = .text:0x800A4E94; // type:function size:0x8 +BoardBooHouseCreate = .text:0x800A4E9C; // type:function size:0xB4 +BoardBooHouseKill = .text:0x800A4F50; // type:function size:0x50 +BoardBooHouseExec = .text:0x800A4FA0; // type:function size:0x94 +ExecBooHouse = .text:0x800A5034; // type:function size:0x538 scope:local +DestroyBooHouse = .text:0x800A556C; // type:function size:0xF0 scope:local +PickComStealType = .text:0x800A565C; // type:function size:0xFC scope:local +OpenBooHouse = .text:0x800A5758; // type:function size:0x3A0 scope:local +CloseBooHouse = .text:0x800A5AF8; // type:function size:0x124 scope:local +CreateBooHouseModel = .text:0x800A5C1C; // type:function size:0xB0 scope:local +KillBooHouseModel = .text:0x800A5CCC; // type:function size:0xD4 scope:local +ExecNullSteal = .text:0x800A5DA0; // type:function size:0x68 scope:local +ExecStarSteal = .text:0x800A5E08; // type:function size:0x2AC scope:local +ExecCoinSteal = .text:0x800A60B4; // type:function size:0x2AC scope:local +ApplySteal = .text:0x800A6360; // type:function size:0x188 scope:local +ApplyCoinSteal = .text:0x800A64E8; // type:function size:0x16C scope:local +ApplyStarSteal = .text:0x800A6654; // type:function size:0x164 scope:local +ApplyBooLight = .text:0x800A67B8; // type:function size:0x70 scope:local +SetBooBallPos = .text:0x800A6828; // type:function size:0x60 scope:local +BoardBooComUseCheck = .text:0x800A6888; // type:function size:0x1A8 +BoardBooHouseTutorialExec = .text:0x800A6A30; // type:function size:0x3D4 +BoardStartExec = .text:0x800A6E04; // type:function size:0x64 +DestroyStart = .text:0x800A6E68; // type:function size:0x84 scope:local +ExecStart = .text:0x800A6EEC; // type:function size:0x400 scope:local +ShowLogo = .text:0x800A72EC; // type:function size:0x2FC scope:local +FocusStart = .text:0x800A75E8; // type:function size:0x17C scope:local +CreatePlayerStart = .text:0x800A7764; // type:function size:0x2D8 scope:local +ExecPlayerStart = .text:0x800A7A3C; // type:function size:0x188 scope:local +PlayerFall = .text:0x800A7BC4; // type:function size:0x1C8 scope:local +PlayerWaitSpeak = .text:0x800A7D8C; // type:function size:0xEC scope:local +PlayerDiceFall = .text:0x800A7E78; // type:function size:0x1A8 scope:local +PlayerDiceRoll = .text:0x800A8020; // type:function size:0x454 scope:local +PlayerDiceNumShow = .text:0x800A8474; // type:function size:0xD8 scope:local +PlayerDiceNumHide = .text:0x800A854C; // type:function size:0x250 scope:local +SetPlayerStartState = .text:0x800A879C; // type:function size:0xC8 scope:local +GetPlayerStartState = .text:0x800A8864; // type:function size:0x3C scope:local +ExecStartRoll = .text:0x800A88A0; // type:function size:0x6D4 scope:local +InitCamera = .text:0x800A8F74; // type:function size:0x318 scope:local +InitHost = .text:0x800A928C; // type:function size:0xA4 scope:local +CreateTapWin = .text:0x800A9330; // type:function size:0xDC scope:local +OrderPlayers = .text:0x800A940C; // type:function size:0x21C scope:local +BoardLast5Exec = .text:0x800A9628; // type:function size:0x84 +DestroyLast5 = .text:0x800A96AC; // type:function size:0x30 scope:local +ExecLast5 = .text:0x800A96DC; // type:function size:0x1D4 scope:local +CreateLast5 = .text:0x800A98B0; // type:function size:0x184 scope:local +KillLast5 = .text:0x800A9A34; // type:function size:0x48 scope:local +InitHost = .text:0x800A9A7C; // type:function size:0x10C scope:local +KillHost = .text:0x800A9B88; // type:function size:0xA4 scope:local +Last5Main = .text:0x800A9C2C; // type:function size:0xCC0 scope:local +CheckJump = .text:0x800AA8EC; // type:function size:0xA4 scope:local +CreateLotteryDrawWheel = .text:0x800AA990; // type:function size:0x1FC scope:local +CreateLotteryDraw = .text:0x800AAB8C; // type:function size:0xD4 scope:local +UpdateLotteryDraw = .text:0x800AAC60; // type:function size:0x170 scope:local +SetLotteryDrawState = .text:0x800AADD0; // type:function size:0x88 scope:local +GetLotteryDrawState = .text:0x800AAE58; // type:function size:0x20 scope:local +KillLotteryDrawWheel = .text:0x800AAE78; // type:function size:0x24 scope:local +UpdateLotteryDrawWheel = .text:0x800AAE9C; // type:function size:0x2D0 scope:local +SetLotteryDrawWheelState = .text:0x800AB16C; // type:function size:0x1D8 scope:local +ExecLotteryDraw = .text:0x800AB344; // type:function size:0x950 scope:local +KillLotteryTicket = .text:0x800ABC94; // type:function size:0x4C scope:local +InitLotteryTicket = .text:0x800ABCE0; // type:function size:0x488 scope:local +UpdateLotteryTicket = .text:0x800AC168; // type:function size:0x2A4 scope:local +SetLotteryTicketState = .text:0x800AC40C; // type:function size:0x1C0 scope:local +GetLotteryTicketPlayer = .text:0x800AC5CC; // type:function size:0x7C scope:local +CheckLotteryTicket = .text:0x800AC648; // type:function size:0x78 scope:local +UpdateLotteryTicketMatch = .text:0x800AC6C0; // type:function size:0xB0 scope:local +StartHostMove = .text:0x800AC770; // type:function size:0x1CC scope:local +ExecHostMove = .text:0x800AC93C; // type:function size:0x228 scope:local +CheckHostMove = .text:0x800ACB64; // type:function size:0x1C scope:local +CreateStopWin = .text:0x800ACB80; // type:function size:0xC0 scope:local +CreateLast5Roulette = .text:0x800ACC40; // type:function size:0x180 scope:local +UpdateLast5Roulette = .text:0x800ACDC0; // type:function size:0x2B0 scope:local +SetLast5RouletteFade = .text:0x800AD070; // type:function size:0x44 scope:local +SetLast5RouletteState = .text:0x800AD0B4; // type:function size:0x38 scope:local +GetLast5RouletteState = .text:0x800AD0EC; // type:function size:0x38 scope:local +GetLast5RouletteResult = .text:0x800AD124; // type:function size:0x44 scope:local +CreateTeamResult = .text:0x800AD168; // type:function size:0x2B4 scope:local +CreateTeamResultWork = .text:0x800AD41C; // type:function size:0x340 scope:local +SetTeamResultTarget = .text:0x800AD75C; // type:function size:0x58 scope:local +GetTeamResultTarget = .text:0x800AD7B4; // type:function size:0x58 scope:local +KillTeamResult = .text:0x800AD80C; // type:function size:0x38 scope:local +UpdateTeamResult = .text:0x800AD844; // type:function size:0x260 scope:local +BoardPauseStart = .text:0x800ADAA4; // type:function size:0x88 +PauseExit = .text:0x800ADB2C; // type:function size:0x3C0 scope:local +PauseProcess = .text:0x800ADEEC; // type:function size:0x108 scope:local +CreatePauseScreen = .text:0x800ADFF4; // type:function size:0xABC scope:local +DeletePauseScreen = .text:0x800AEAB0; // type:function size:0x168 scope:local +SetBoxVisible = .text:0x800AEC18; // type:function size:0x58 scope:local +PauseConfigObjFunc = .text:0x800AEC70; // type:function size:0x4F4 scope:local +UpdatePauseText = .text:0x800AF164; // type:function size:0x310 scope:local +InitPauseQuit = .text:0x800AF474; // type:function size:0x264 scope:local +PauseQuitProcess = .text:0x800AF6D8; // type:function size:0x110 scope:local +DeletePauseQuit = .text:0x800AF7E8; // type:function size:0x48 scope:local +UpdatePadConfig = .text:0x800AF830; // type:function size:0xD4 scope:local +CreatePadConfig = .text:0x800AF904; // type:function size:0x1CC scope:local +ScrollInPadConfig = .text:0x800AFAD0; // type:function size:0x178 scope:local +CursorMovePadConfig = .text:0x800AFC48; // type:function size:0x238 scope:local +ChangeDiffPadConfig = .text:0x800AFE80; // type:function size:0x3B0 scope:local +ScrollOutPadConfig = .text:0x800B0230; // type:function size:0x154 scope:local +UpdatePauseBox = .text:0x800B0384; // type:function size:0x390 scope:local +UpdatePauseBoxExt = .text:0x800B0714; // type:function size:0x3E4 scope:local +ExecPauseConfig = .text:0x800B0AF8; // type:function size:0x240 scope:local +CreatePauseControlWin = .text:0x800B0D38; // type:function size:0x210 scope:local +DeletePauseControlWin = .text:0x800B0F48; // type:function size:0x70 scope:local +WaitPauseInput = .text:0x800B0FB8; // type:function size:0x1B8 scope:local +ShowPauseConfig = .text:0x800B1170; // type:function size:0x12C scope:local +CreatePadConfigSprite = .text:0x800B129C; // type:function size:0x1A4 scope:local +ShowPadConfigSprite = .text:0x800B1440; // type:function size:0x10C scope:local +PauseCreateNumber = .text:0x800B154C; // type:function size:0xDC scope:local +BoardPauseActiveCheck = .text:0x800B1628; // type:function size:0x34 +BoardPauseReqCheck = .text:0x800B165C; // type:function size:0x12C +CheckPort = .text:0x800B1788; // type:function size:0x4C scope:local +RotateBox = .text:0x800B17D4; // type:function size:0xC0 scope:local +SearchPathNodeSpace = .text:0x800B1894; // type:function size:0x60 scope:local +InitPathNode = .text:0x800B18F4; // type:function size:0x180 scope:local +FindChildNode = .text:0x800B1A74; // type:function size:0xE4 scope:local +GetNumValidLinks = .text:0x800B1B58; // type:function size:0xB4 scope:local +AddValidLinks = .text:0x800B1C0C; // type:function size:0xD0 scope:local +CheckPathSpace = .text:0x800B1CDC; // type:function size:0x30 scope:local +FindValidLink = .text:0x800B1D0C; // type:function size:0xAC scope:local +CheckEndSpace = .text:0x800B1DB8; // type:function size:0xF0 scope:local +BoardComPathShortcutLenGet = .text:0x800B1EA8; // type:function size:0x74C +BoardComPathBestGet = .text:0x800B25F4; // type:function size:0x3E4 +BoardComPathLenGet = .text:0x800B29D8; // type:function size:0x65C +CheckPath = .text:0x800B3034; // type:function size:0x488 scope:local +BoardComPathBestGetFlag = .text:0x800B34BC; // type:function size:0x45C +CheckPathFlag = .text:0x800B3918; // type:function size:0x4E0 scope:local +TutorialProcFunc = .text:0x800B3DF8; // type:function size:0x34 scope:local +BoardTutorialInit = .text:0x800B3E2C; // type:function size:0x80 +BoardTutorialKill = .text:0x800B3EAC; // type:function size:0x4C +BoardTutorialHookSet = .text:0x800B3EF8; // type:function size:0x8 +BoardTutorialHookExec = .text:0x800B3F00; // type:function size:0x44 +BoardTutorialPlayerInit = .text:0x800B3F44; // type:function size:0x78 +BoardTutorialWorkSave = .text:0x800B3FBC; // type:function size:0x10C +BoardTutorialWorkRestore = .text:0x800B40C8; // type:function size:0xBC +BoardTutorialDirInputSet = .text:0x800B4184; // type:function size:0x10 +BoardTutorialBlockSetPos = .text:0x800B4194; // type:function size:0x40 +BoardTutorialItemSet = .text:0x800B41D4; // type:function size:0x8 +BoardTutorialHostSet = .text:0x800B41DC; // type:function size:0x8 +BoardTutorialHostHide = .text:0x800B41E4; // type:function size:0x30 +PPCMfmsr = .text:0x800B4214; // type:function size:0x8 scope:global +PPCMtmsr = .text:0x800B421C; // type:function size:0x8 scope:global +PPCMfhid0 = .text:0x800B4224; // type:function size:0x8 scope:global +PPCMthid0 = .text:0x800B422C; // type:function size:0x8 +PPCMfl2cr = .text:0x800B4234; // type:function size:0x8 scope:global +PPCMtl2cr = .text:0x800B423C; // type:function size:0x8 scope:global +PPCMtdec = .text:0x800B4244; // type:function size:0x8 scope:weak +PPCSync = .text:0x800B424C; // type:function size:0x8 +PPCHalt = .text:0x800B4254; // type:function size:0x14 scope:weak +PPCMfhid2 = .text:0x800B4268; // type:function size:0x8 scope:global +PPCMthid2 = .text:0x800B4270; // type:function size:0x8 scope:global +PPCMfwpar = .text:0x800B4278; // type:function size:0xC +PPCMtwpar = .text:0x800B4284; // type:function size:0x8 scope:global +PPCDisableSpeculation = .text:0x800B428C; // type:function size:0x28 scope:global +PPCSetFpNonIEEEMode = .text:0x800B42B4; // type:function size:0x8 scope:global +OSGetConsoleType = .text:0x800B42BC; // type:function size:0x28 scope:global +ClearArena = .text:0x800B42E4; // type:function size:0x128 scope:local +InquiryCallback = .text:0x800B440C; // type:function size:0x3C scope:local +OSInit = .text:0x800B4448; // type:function size:0x3B8 scope:global +OSExceptionInit = .text:0x800B4800; // type:function size:0x280 scope:local +__OSDBINTSTART = .text:0x800B4A80; // type:label scope:global +__OSDBIntegrator = .text:0x800B4A80; // type:function size:0x24 scope:local +__OSDBINTEND = .text:0x800B4AA4; // type:label scope:global +__OSDBJump = .text:0x800B4AA4; // type:function size:0x4 scope:local +__OSDBJUMPEND = .text:0x800B4AA8; // type:label scope:global +__OSSetExceptionHandler = .text:0x800B4AA8; // type:function size:0x1C scope:global +__OSGetExceptionHandler = .text:0x800B4AC4; // type:function size:0x14 scope:global +__OSEVStart = .text:0x800B4AD8; // type:label scope:global +OSExceptionVector = .text:0x800B4AD8; // type:function size:0x9C scope:local +__DBVECTOR = .text:0x800B4B30; // type:label scope:global data:4byte +__OSEVSetNumber = .text:0x800B4B40; // type:label scope:global data:4byte +__OSEVEnd = .text:0x800B4B70; // type:label scope:global +OSDefaultExceptionHandler = .text:0x800B4B74; // type:function size:0x58 scope:global +__OSPSInit = .text:0x800B4BCC; // type:function size:0x38 scope:global +__OSGetDIConfig = .text:0x800B4C04; // type:function size:0x14 +OSInitAlarm = .text:0x800B4C18; // type:function size:0x4C scope:global +OSCreateAlarm = .text:0x800B4C64; // type:function size:0xC scope:global +InsertAlarm = .text:0x800B4C70; // type:function size:0x250 scope:local +OSSetAlarm = .text:0x800B4EC0; // type:function size:0x68 scope:global +fn_800B4F28 = .text:0x800B4F28; // type:function size:0x11C +DecrementerExceptionCallback = .text:0x800B5044; // type:function size:0x230 scope:local +DecrementerExceptionHandler = .text:0x800B5274; // type:function size:0x50 scope:local +fn_800B52C4 = .text:0x800B52C4; // type:function size:0xAC +OSAllocFromHeap = .text:0x800B5370; // type:function size:0xFC +OSAllocFixed = .text:0x800B546C; // type:function size:0x284 +OSFreeToHeap = .text:0x800B56F0; // type:function size:0x7C +OSSetCurrentHeap = .text:0x800B576C; // type:function size:0x10 +OSInitAlloc = .text:0x800B577C; // type:function size:0x70 +OSCreateHeap = .text:0x800B57EC; // type:function size:0x6C +OSCheckHeap = .text:0x800B5858; // type:function size:0x360 +OSDumpHeap = .text:0x800B5BB8; // type:function size:0x104 +OSGetArenaHi = .text:0x800B5CBC; // type:function size:0x8 scope:global +OSGetArenaLo = .text:0x800B5CC4; // type:function size:0x8 scope:global +OSSetArenaHi = .text:0x800B5CCC; // type:function size:0x8 scope:global +OSSetArenaLo = .text:0x800B5CD4; // type:function size:0x8 scope:global +__OSInitAudioSystem = .text:0x800B5CDC; // type:function size:0x1BC scope:global +__OSStopAudioSystem = .text:0x800B5E98; // type:function size:0xD8 scope:global +DCEnable = .text:0x800B5F70; // type:function size:0x14 scope:global +DCInvalidateRange = .text:0x800B5F84; // type:function size:0x30 scope:global +DCFlushRange = .text:0x800B5FB4; // type:function size:0x34 scope:global +DCStoreRange = .text:0x800B5FE8; // type:function size:0x34 +DCFlushRangeNoSync = .text:0x800B601C; // type:function size:0x30 scope:global +DCStoreRangeNoSync = .text:0x800B604C; // type:function size:0x30 +DCZeroRange = .text:0x800B607C; // type:function size:0x30 +ICInvalidateRange = .text:0x800B60AC; // type:function size:0x38 scope:global +ICFlashInvalidate = .text:0x800B60E4; // type:function size:0x10 scope:global +ICEnable = .text:0x800B60F4; // type:function size:0x14 scope:global +fn_800B6108 = .text:0x800B6108; // type:function size:0xCC +LCEnable = .text:0x800B61D4; // type:function size:0x38 +LCDisable = .text:0x800B620C; // type:function size:0x28 scope:global +LCStoreBlocks = .text:0x800B6234; // type:function size:0x24 +LCStoreData = .text:0x800B6258; // type:function size:0xAC +LCQueueWait = .text:0x800B6304; // type:function size:0x18 +L2GlobalInvalidate = .text:0x800B631C; // type:function size:0x98 scope:global +DMAErrorHandler = .text:0x800B63B4; // type:function size:0x160 scope:global +__OSCacheInit = .text:0x800B6514; // type:function size:0xF4 scope:global +__OSLoadFPUContext = .text:0x800B6608; // type:function size:0x124 scope:local +__OSSaveFPUContext = .text:0x800B672C; // type:function size:0x128 scope:local +OSSetCurrentContext = .text:0x800B6854; // type:function size:0x5C scope:global +fn_800B68B0 = .text:0x800B68B0; // type:function size:0xC +fn_800B68BC = .text:0x800B68BC; // type:function size:0x80 +OSLoadContext = .text:0x800B693C; // type:function size:0xD8 scope:global +OSClearContext = .text:0x800B6A14; // type:function size:0x24 scope:global +fn_800B6A38 = .text:0x800B6A38; // type:function size:0xBC +OSDumpContext = .text:0x800B6AF4; // type:function size:0x2A8 scope:global +OSSwitchFPUContext = .text:0x800B6D9C; // type:function size:0x84 scope:local +__OSContextInit = .text:0x800B6E20; // type:function size:0x48 scope:global +OSReport = .text:0x800B6E68; // type:function size:0x80 scope:global +OSSetErrorHandler = .text:0x800B6EE8; // type:function size:0x1C scope:global +__OSUnhandledException = .text:0x800B6F04; // type:function size:0x200 scope:global +fn_800B7104 = .text:0x800B7104; // type:function size:0x58 +OSDisableInterrupts = .text:0x800B715C; // type:function size:0x14 scope:global +OSEnableInterrupts = .text:0x800B7170; // type:function size:0x14 scope:global +OSRestoreInterrupts = .text:0x800B7184; // type:function size:0x24 scope:global +__OSSetInterruptHandler = .text:0x800B71A8; // type:function size:0x1C scope:global +fn_800B71C4 = .text:0x800B71C4; // type:function size:0x14 +__OSInterruptInit = .text:0x800B71D8; // type:function size:0x74 scope:global +fn_800B724C = .text:0x800B724C; // type:function size:0x2D8 +__OSMaskInterrupts = .text:0x800B7524; // type:function size:0x88 scope:global +__OSUnmaskInterrupts = .text:0x800B75AC; // type:function size:0x88 scope:global +fn_800B7634 = .text:0x800B7634; // type:function size:0x344 +ExternalInterruptHandler = .text:0x800B7978; // type:function size:0x50 scope:local +OSNotifyLink = .text:0x800B79C8; // type:function size:0x4 +OSNotifyUnlink = .text:0x800B79CC; // type:function size:0x4 +fn_800B79D0 = .text:0x800B79D0; // type:function size:0x274 +OSLink = .text:0x800B7C44; // type:function size:0x250 +fn_800B7E94 = .text:0x800B7E94; // type:function size:0x20C +OSUnlink = .text:0x800B80A0; // type:function size:0x94 +__OSModuleInit = .text:0x800B8134; // type:function size:0x18 scope:global +OSInitMessageQueue = .text:0x800B814C; // type:function size:0x60 +OSGetPhysicalMemSize = .text:0x800B81AC; // type:function size:0xC +OSGetConsoleSimulatedMemSize = .text:0x800B81B8; // type:function size:0xC +fn_800B81C4 = .text:0x800B81C4; // type:function size:0x3C +MEMIntrruptHandler = .text:0x800B8200; // type:function size:0x6C scope:local +Config24MB = .text:0x800B826C; // type:function size:0x80 scope:local +Config48MB = .text:0x800B82EC; // type:function size:0x80 scope:local +RealMode = .text:0x800B836C; // type:function size:0x18 scope:local +__OSInitMemoryProtection = .text:0x800B8384; // type:function size:0x120 scope:global +fn_800B84A4 = .text:0x800B84A4; // type:function size:0x70 +fn_800B8514 = .text:0x800B8514; // type:function size:0x2C +fn_800B8540 = .text:0x800B8540; // type:function size:0x14 +fn_800B8554 = .text:0x800B8554; // type:function size:0xC +__OSReboot = .text:0x800B8560; // type:function size:0x1C0 scope:global +OSRegisterResetFunction = .text:0x800B8720; // type:function size:0x84 scope:global +Reset = .text:0x800B87A4; // type:function size:0x70 scope:local +__OSDoHotReset = .text:0x800B8814; // type:function size:0x48 +OSResetSystem = .text:0x800B885C; // type:function size:0x278 scope:global +OSGetResetCode = .text:0x800B8AD4; // type:function size:0x30 scope:global +__OSResetSWInterruptHandler = .text:0x800B8B04; // type:function size:0xF4 scope:global +OSGetResetButtonState = .text:0x800B8BF8; // type:function size:0x298 +fn_800B8E90 = .text:0x800B8E90; // type:function size:0x60 +fn_800B8EF0 = .text:0x800B8EF0; // type:function size:0x118 +__OSInitSram = .text:0x800B9008; // type:function size:0x134 scope:global +__OSLockSram = .text:0x800B913C; // type:function size:0x5C scope:global +__OSLockSramEx = .text:0x800B9198; // type:function size:0x5C scope:global +fn_800B91F4 = .text:0x800B91F4; // type:function size:0x308 +__OSUnlockSram = .text:0x800B94FC; // type:function size:0x24 scope:global +__OSUnlockSramEx = .text:0x800B9520; // type:function size:0x24 scope:global +__OSSyncSram = .text:0x800B9544; // type:function size:0x10 scope:global +OSGetSoundMode = .text:0x800B9554; // type:function size:0x80 +OSSetSoundMode = .text:0x800B95D4; // type:function size:0xA4 +OSGetProgressiveMode = .text:0x800B9678; // type:function size:0x70 +OSSetProgressiveMode = .text:0x800B96E8; // type:function size:0xA4 +OSGetLanguage = .text:0x800B978C; // type:function size:0x6C +OSGetWirelessID = .text:0x800B97F8; // type:function size:0x84 +OSSetWirelessID = .text:0x800B987C; // type:function size:0xAC +OSInitStopwatch = .text:0x800B9928; // type:function size:0x2C +OSStartStopwatch = .text:0x800B9954; // type:function size:0x3C +OSStopStopwatch = .text:0x800B9990; // type:function size:0xCC +OSCheckStopwatch = .text:0x800B9A5C; // type:function size:0x70 +OSResetStopwatch = .text:0x800B9ACC; // type:function size:0x28 +OSDumpStopwatch = .text:0x800B9AF4; // type:function size:0x1A4 +__OSSystemCallVectorStart = .text:0x800B9C98; // type:label scope:global +fn_800B9C98 = .text:0x800B9C98; // type:function size:0x20 +__OSSystemCallVectorEnd = .text:0x800B9CB4; // type:label scope:global +__OSInitSystemCall = .text:0x800B9CB8; // type:function size:0x64 scope:global +__OSThreadInit = .text:0x800B9D1C; // type:function size:0x128 scope:global +OSInitThreadQueue = .text:0x800B9E44; // type:function size:0x10 scope:global +OSGetCurrentThread = .text:0x800B9E54; // type:function size:0xC +OSDisableScheduler = .text:0x800B9E60; // type:function size:0x40 scope:global +OSEnableScheduler = .text:0x800B9EA0; // type:function size:0x40 scope:global +fn_800B9EE0 = .text:0x800B9EE0; // type:function size:0x68 +__OSGetEffectivePriority = .text:0x800B9F48; // type:function size:0x3C +fn_800B9F84 = .text:0x800B9F84; // type:function size:0x1C0 +SelectThread = .text:0x800BA144; // type:function size:0x200 scope:local +__OSReschedule = .text:0x800BA344; // type:function size:0x30 scope:global +OSYieldThread = .text:0x800BA374; // type:function size:0x3C +OSCreateThread = .text:0x800BA3B0; // type:function size:0x120 +OSExitThread = .text:0x800BA4D0; // type:function size:0xE4 +OSCancelThread = .text:0x800BA5B4; // type:function size:0x1BC scope:global +OSResumeThread = .text:0x800BA770; // type:function size:0x288 +OSSuspendThread = .text:0x800BA9F8; // type:function size:0x170 +OSSleepThread = .text:0x800BAB68; // type:function size:0xEC +OSWakeupThread = .text:0x800BAC54; // type:function size:0x104 +OSSetIdleFunction = .text:0x800BAD58; // type:function size:0x90 +OSGetTime = .text:0x800BADE8; // type:function size:0x18 scope:global +OSGetTick = .text:0x800BAE00; // type:function size:0x8 scope:global +__OSGetSystemTime = .text:0x800BAE08; // type:function size:0x64 scope:global +fn_800BAE6C = .text:0x800BAE6C; // type:function size:0x19C +OSTicksToCalendarTime = .text:0x800BB008; // type:function size:0x204 +__init_user = .text:0x800BB20C; // type:function size:0x20 scope:global +__init_cpp = .text:0x800BB22C; // type:function size:0x54 scope:local +_ExitProcess = .text:0x800BB280; // type:function size:0x20 scope:global +DBInit = .text:0x800BB2A0; // type:function size:0x28 scope:global +fn_800BB2C8 = .text:0x800BB2C8; // type:function size:0x48 +__DBExceptionDestination = .text:0x800BB310; // type:function size:0x10 scope:global +__DBIsExceptionMarked = .text:0x800BB320; // type:function size:0x1C scope:global +DBPrintf = .text:0x800BB33C; // type:function size:0x50 scope:global +PSMTXIdentity = .text:0x800BB38C; // type:function size:0x2C +PSMTXCopy = .text:0x800BB3B8; // type:function size:0x34 +PSMTXConcat = .text:0x800BB3EC; // type:function size:0xCC +PSMTXTranspose = .text:0x800BB4B8; // type:function size:0x50 +PSMTXInverse = .text:0x800BB508; // type:function size:0xF8 +PSMTXInvXpose = .text:0x800BB600; // type:function size:0xC8 +PSMTXRotRad = .text:0x800BB6C8; // type:function size:0x70 +PSMTXRotTrig = .text:0x800BB738; // type:function size:0xA8 +PSMTXRotAxisRad = .text:0x800BB7E0; // type:function size:0x104 +PSMTXTrans = .text:0x800BB8E4; // type:function size:0x34 +PSMTXScale = .text:0x800BB918; // type:function size:0x28 +PSMTXQuat = .text:0x800BB940; // type:function size:0xA4 +C_MTXLookAt = .text:0x800BB9E4; // type:function size:0x18C +C_MTXLightPerspective = .text:0x800BBB70; // type:function size:0xCC +PSMTXMultVec = .text:0x800BBC3C; // type:function size:0x54 +PSMTXMultVecArray = .text:0x800BBC90; // type:function size:0x8C +PSMTXMultVecSR = .text:0x800BBD1C; // type:function size:0x54 +C_MTXPerspective = .text:0x800BBD70; // type:function size:0xD0 +C_MTXOrtho = .text:0x800BBE40; // type:function size:0x98 +PSVECAdd = .text:0x800BBED8; // type:function size:0x24 +PSVECSubtract = .text:0x800BBEFC; // type:function size:0x24 +PSVECScale = .text:0x800BBF20; // type:function size:0x1C +PSVECNormalize = .text:0x800BBF3C; // type:function size:0x44 +PSVECSquareMag = .text:0x800BBF80; // type:function size:0x18 +PSVECMag = .text:0x800BBF98; // type:function size:0x3C +PSVECDotProduct = .text:0x800BBFD4; // type:function size:0x20 +PSVECCrossProduct = .text:0x800BBFF4; // type:function size:0x3C +C_VECHalfAngle = .text:0x800BC030; // type:function size:0xD8 +C_VECReflect = .text:0x800BC108; // type:function size:0xD4 +PSVECSquareDistance = .text:0x800BC1DC; // type:function size:0x28 +PSVECDistance = .text:0x800BC204; // type:function size:0x4C +C_QUATAdd = .text:0x800BC250; // type:function size:0x44 +PSQUATAdd = .text:0x800BC294; // type:function size:0x24 +PSQUATMultiply = .text:0x800BC2B8; // type:function size:0x5C +PSQUATNormalize = .text:0x800BC314; // type:function size:0x54 +PSQUATInverse = .text:0x800BC368; // type:function size:0x50 +C_QUATRotAxisRad = .text:0x800BC3B8; // type:function size:0x8C +C_QUATMtx = .text:0x800BC444; // type:function size:0x258 +C_QUATSlerp = .text:0x800BC69C; // type:function size:0x174 +PSMTXReorder = .text:0x800BC810; // type:function size:0x4C +PSMTXROMultVecArray = .text:0x800BC85C; // type:function size:0x118 +__DVDInitWA = .text:0x800BC974; // type:function size:0x40 scope:global +__DVDInterruptHandler = .text:0x800BC9B4; // type:function size:0x2F4 scope:global +fn_800BCCA8 = .text:0x800BCCA8; // type:function size:0x84 +AlarmHandlerForTimeout = .text:0x800BCD2C; // type:function size:0x70 scope:local +fn_800BCD9C = .text:0x800BCD9C; // type:function size:0x110 +fn_800BCEAC = .text:0x800BCEAC; // type:function size:0x80 +fn_800BCF2C = .text:0x800BCF2C; // type:function size:0x298 +fn_800BD1C4 = .text:0x800BD1C4; // type:function size:0x94 +DVDLowWaitCoverClose = .text:0x800BD258; // type:function size:0x2C scope:global +fn_800BD284 = .text:0x800BD284; // type:function size:0xA4 +DVDLowStopMotor = .text:0x800BD328; // type:function size:0x8C scope:global +fn_800BD3B4 = .text:0x800BD3B4; // type:function size:0x8C +fn_800BD440 = .text:0x800BD440; // type:function size:0x9C +fn_800BD4DC = .text:0x800BD4DC; // type:function size:0x98 +fn_800BD574 = .text:0x800BD574; // type:function size:0x8C +fn_800BD600 = .text:0x800BD600; // type:function size:0x9C +DVDLowReset = .text:0x800BD69C; // type:function size:0xBC scope:global +fn_800BD758 = .text:0x800BD758; // type:function size:0x14 +fn_800BD76C = .text:0x800BD76C; // type:function size:0x18 +__DVDLowSetWAType = .text:0x800BD784; // type:function size:0x44 scope:global +__DVDFSInit = .text:0x800BD7C8; // type:function size:0x38 scope:global +DVDConvertPathToEntrynum = .text:0x800BD800; // type:function size:0x2F4 +DVDFastOpen = .text:0x800BDAF4; // type:function size:0x74 +DVDOpen = .text:0x800BDB68; // type:function size:0xC8 +DVDClose = .text:0x800BDC30; // type:function size:0x24 +fn_800BDC54 = .text:0x800BDC54; // type:function size:0x160 +DVDGetCurrentDir = .text:0x800BDDB4; // type:function size:0xC4 +DVDReadAsyncPrio = .text:0x800BDE78; // type:function size:0xC0 +fn_800BDF38 = .text:0x800BDF38; // type:function size:0x30 +DVDReadPrio = .text:0x800BDF68; // type:function size:0x118 +fn_800BE080 = .text:0x800BE080; // type:function size:0x24 +DVDInit = .text:0x800BE0A4; // type:function size:0xFC scope:global +fn_800BE1A0 = .text:0x800BE1A0; // type:function size:0x54 +fn_800BE1F4 = .text:0x800BE1F4; // type:function size:0x80 +cbForStateError = .text:0x800BE274; // type:function size:0xA8 scope:local +fn_800BE31C = .text:0x800BE31C; // type:function size:0x9C +fn_800BE3B8 = .text:0x800BE3B8; // type:function size:0x28 +fn_800BE3E0 = .text:0x800BE3E0; // type:function size:0xB4 +fn_800BE494 = .text:0x800BE494; // type:function size:0x294 +fn_800BE728 = .text:0x800BE728; // type:function size:0x68 +fn_800BE790 = .text:0x800BE790; // type:function size:0x98 +fn_800BE828 = .text:0x800BE828; // type:function size:0x28 +fn_800BE850 = .text:0x800BE850; // type:function size:0x158 +fn_800BE9A8 = .text:0x800BE9A8; // type:function size:0xE4 +fn_800BEA8C = .text:0x800BEA8C; // type:function size:0x34 +fn_800BEAC0 = .text:0x800BEAC0; // type:function size:0x38 +fn_800BEAF8 = .text:0x800BEAF8; // type:function size:0x114 +fn_800BEC0C = .text:0x800BEC0C; // type:function size:0xA4 +fn_800BECB0 = .text:0x800BECB0; // type:function size:0xFC +AlarmHandler = .text:0x800BEDAC; // type:function size:0x44 scope:local +fn_800BEDF0 = .text:0x800BEDF0; // type:function size:0xCC +fn_800BEEBC = .text:0x800BEEBC; // type:function size:0x30 +fn_800BEEEC = .text:0x800BEEEC; // type:function size:0x70 +fn_800BEF5C = .text:0x800BEF5C; // type:function size:0x28 +cbForStateMotorStopped = .text:0x800BEF84; // type:function size:0xE4 scope:local +stateReady = .text:0x800BF068; // type:function size:0x248 scope:local +stateBusy = .text:0x800BF2B0; // type:function size:0x2C0 scope:local +fn_800BF570 = .text:0x800BF570; // type:function size:0x5D4 +fn_800BFB44 = .text:0x800BFB44; // type:function size:0xDC +fn_800BFC20 = .text:0x800BFC20; // type:function size:0xD0 +DVDReadDiskID = .text:0x800BFCF0; // type:function size:0xD4 scope:global +DVDInquiryAsync = .text:0x800BFDC4; // type:function size:0xD0 scope:global +DVDReset = .text:0x800BFE94; // type:function size:0x44 scope:global +DVDGetCommandBlockStatus = .text:0x800BFED8; // type:function size:0x4C +DVDGetDriveStatus = .text:0x800BFF24; // type:function size:0xAC scope:global +DVDSetAutoInvalidation = .text:0x800BFFD0; // type:function size:0x10 +DVDCancelAsync = .text:0x800BFFE0; // type:function size:0x270 +DVDCancel = .text:0x800C0250; // type:function size:0xAC +fn_800C02FC = .text:0x800C02FC; // type:function size:0x24 +DVDGetCurrentDiskID = .text:0x800C0320; // type:function size:0x8 +DVDCheckDisk = .text:0x800C0328; // type:function size:0xE4 +__DVDPrepareResetAsync = .text:0x800C040C; // type:function size:0x11C +__DVDClearWaitingQueue = .text:0x800C0528; // type:function size:0x38 scope:global +__DVDPushWaitingQueue = .text:0x800C0560; // type:function size:0x68 scope:global +__DVDPopWaitingQueue = .text:0x800C05C8; // type:function size:0xA0 scope:global +__DVDCheckWaitingQueue = .text:0x800C0668; // type:function size:0x58 scope:global +__DVDDequeueWaitingQueue = .text:0x800C06C0; // type:function size:0x60 +ErrorCode2Num = .text:0x800C0720; // type:function size:0x11C scope:local +__DVDStoreErrorCode = .text:0x800C083C; // type:function size:0x7C scope:global +cb = .text:0x800C08B8; // type:function size:0xD8 scope:local +__fstLoad = .text:0x800C0990; // type:function size:0x168 scope:global +fn_800C0AF8 = .text:0x800C0AF8; // type:function size:0x228 +VISetPreRetraceCallback = .text:0x800C0D20; // type:function size:0x44 +VISetPostRetraceCallback = .text:0x800C0D64; // type:function size:0x44 +fn_800C0DA8 = .text:0x800C0DA8; // type:function size:0x90 +__VIInit = .text:0x800C0E38; // type:function size:0x1F8 +VIInit = .text:0x800C1030; // type:function size:0x478 +VIWaitForRetrace = .text:0x800C14A8; // type:function size:0x54 +fn_800C14FC = .text:0x800C14FC; // type:function size:0x2D4 +fn_800C17D0 = .text:0x800C17D0; // type:function size:0x1A0 +VIConfigure = .text:0x800C1970; // type:function size:0x79C +VIFlush = .text:0x800C210C; // type:function size:0x11C +VISetNextFrameBuffer = .text:0x800C2228; // type:function size:0x6C +VISetBlack = .text:0x800C2294; // type:function size:0x7C +VIGetRetraceCount = .text:0x800C2310; // type:function size:0x8 +fn_800C2318 = .text:0x800C2318; // type:function size:0x68 +VIGetNextField = .text:0x800C2380; // type:function size:0xA8 +VIGetCurrentLine = .text:0x800C2428; // type:function size:0x98 +VIGetTvFormat = .text:0x800C24C0; // type:function size:0x7C scope:global +VIGetDTVStatus = .text:0x800C253C; // type:function size:0x3C +DEMOGetRenderModeObj = .text:0x800C2578; // type:function size:0x8 +DEMOInitCaption = .text:0x800C2580; // type:function size:0x228 +DEMOPuts = .text:0x800C27A8; // type:function size:0x310 +DEMOPrintf = .text:0x800C2AB8; // type:function size:0xC4 +DEMOWriteStats = .text:0x800C2B7C; // type:function size:0x394 +DEMOUpdateStats = .text:0x800C2F10; // type:function size:0x58 +DEMOPrintStats = .text:0x800C2F68; // type:function size:0x96C +fn_800C38D4 = .text:0x800C38D4; // type:function size:0x130 +PADClamp = .text:0x800C3A04; // type:function size:0x108 +fn_800C3B0C = .text:0x800C3B0C; // type:function size:0x1A4 +fn_800C3CB0 = .text:0x800C3CB0; // type:function size:0xC4 +fn_800C3D74 = .text:0x800C3D74; // type:function size:0xC0 +fn_800C3E34 = .text:0x800C3E34; // type:function size:0xD8 +fn_800C3F0C = .text:0x800C3F0C; // type:function size:0x32C +fn_800C4238 = .text:0x800C4238; // type:function size:0x134 +PADReset = .text:0x800C436C; // type:function size:0x100 +PADRecalibrate = .text:0x800C446C; // type:function size:0x104 +PADInit = .text:0x800C4570; // type:function size:0x210 +PADRead = .text:0x800C4780; // type:function size:0x3AC +PADControlMotor = .text:0x800C4B2C; // type:function size:0xA4 +PADSetSpec = .text:0x800C4BD0; // type:function size:0x60 +fn_800C4C30 = .text:0x800C4C30; // type:function size:0x174 +fn_800C4DA4 = .text:0x800C4DA4; // type:function size:0x174 +fn_800C4F18 = .text:0x800C4F18; // type:function size:0x3F8 +fn_800C5310 = .text:0x800C5310; // type:function size:0x194 +fn_800C54A4 = .text:0x800C54A4; // type:function size:0x60 +PADSetSamplingCallback = .text:0x800C5504; // type:function size:0x54 +__PADDisableRecalibration = .text:0x800C5558; // type:function size:0x7C scope:global +AIRegisterDMACallback = .text:0x800C55D4; // type:function size:0x44 +AIInitDMA = .text:0x800C5618; // type:function size:0x88 +AIStartDMA = .text:0x800C56A0; // type:function size:0x18 +AIStopDMA = .text:0x800C56B8; // type:function size:0x18 +AIGetDMAStartAddr = .text:0x800C56D0; // type:function size:0x1C +AISetStreamPlayState = .text:0x800C56EC; // type:function size:0xD8 +AIGetStreamPlayState = .text:0x800C57C4; // type:function size:0x10 +AISetDSPSampleRate = .text:0x800C57D4; // type:function size:0xE0 +AIGetDSPSampleRate = .text:0x800C58B4; // type:function size:0x14 +fn_800C58C8 = .text:0x800C58C8; // type:function size:0xD4 +AIGetStreamSampleRate = .text:0x800C599C; // type:function size:0x10 +AISetStreamVolLeft = .text:0x800C59AC; // type:function size:0x1C +AIGetStreamVolLeft = .text:0x800C59C8; // type:function size:0x10 +AISetStreamVolRight = .text:0x800C59D8; // type:function size:0x1C +AIGetStreamVolRight = .text:0x800C59F4; // type:function size:0x10 +AIInit = .text:0x800C5A04; // type:function size:0x164 +fn_800C5B68 = .text:0x800C5B68; // type:function size:0x7C +fn_800C5BE4 = .text:0x800C5BE4; // type:function size:0x90 +fn_800C5C74 = .text:0x800C5C74; // type:function size:0x58 +fn_800C5CCC = .text:0x800C5CCC; // type:function size:0x1E4 +fn_800C5EB0 = .text:0x800C5EB0; // type:function size:0x44 +fn_800C5EF4 = .text:0x800C5EF4; // type:function size:0x3C +fn_800C5F30 = .text:0x800C5F30; // type:function size:0xF0 +fn_800C6020 = .text:0x800C6020; // type:function size:0x68 +fn_800C6088 = .text:0x800C6088; // type:function size:0x74 +ARCheckInit = .text:0x800C60FC; // type:function size:0x8 +ARInit = .text:0x800C6104; // type:function size:0xBC +fn_800C61C0 = .text:0x800C61C0; // type:function size:0x4 +fn_800C61C4 = .text:0x800C61C4; // type:function size:0x8 +ARGetSize = .text:0x800C61CC; // type:function size:0x8 +fn_800C61D4 = .text:0x800C61D4; // type:function size:0x78 +fn_800C624C = .text:0x800C624C; // type:function size:0x914 +fn_800C6B60 = .text:0x800C6B60; // type:function size:0x100 +fn_800C6C60 = .text:0x800C6C60; // type:function size:0x4 +fn_800C6C64 = .text:0x800C6C64; // type:function size:0xCC +ARQInit = .text:0x800C6D30; // type:function size:0x68 +ARQPostRequest = .text:0x800C6D98; // type:function size:0x15C +fn_800C6EF4 = .text:0x800C6EF4; // type:function size:0x10 +fn_800C6F04 = .text:0x800C6F04; // type:function size:0x10 +fn_800C6F14 = .text:0x800C6F14; // type:function size:0x18 +fn_800C6F2C = .text:0x800C6F2C; // type:function size:0x14 +fn_800C6F40 = .text:0x800C6F40; // type:function size:0xB8 +fn_800C6FF8 = .text:0x800C6FF8; // type:function size:0x48 +fn_800C7040 = .text:0x800C7040; // type:function size:0x40 +fn_800C7080 = .text:0x800C7080; // type:function size:0x10 +fn_800C7090 = .text:0x800C7090; // type:function size:0x70 +fn_800C7100 = .text:0x800C7100; // type:function size:0x50 +fn_800C7150 = .text:0x800C7150; // type:function size:0x424 +fn_800C7574 = .text:0x800C7574; // type:function size:0x1A0 +fn_800C7714 = .text:0x800C7714; // type:function size:0x18C +fn_800C78A0 = .text:0x800C78A0; // type:function size:0xA0 +fn_800C7940 = .text:0x800C7940; // type:function size:0x94 +fn_800C79D4 = .text:0x800C79D4; // type:function size:0x7C +fn_800C7A50 = .text:0x800C7A50; // type:function size:0x24 +GXInit = .text:0x800C7A74; // type:function size:0x7CC scope:global +__GXInitGX = .text:0x800C8240; // type:function size:0x884 scope:global +fn_800C8AC4 = .text:0x800C8AC4; // type:function size:0x13C +GXInitFifoBase = .text:0x800C8C00; // type:function size:0x6C scope:global +fn_800C8C6C = .text:0x800C8C6C; // type:function size:0x70 +fn_800C8CDC = .text:0x800C8CDC; // type:function size:0xC +GXSetCPUFifo = .text:0x800C8CE8; // type:function size:0x110 scope:global +GXSetGPFifo = .text:0x800C8DF8; // type:function size:0x178 scope:global +fn_800C8F70 = .text:0x800C8F70; // type:function size:0x20 +fn_800C8F90 = .text:0x800C8F90; // type:function size:0xDC +__GXFifoInit = .text:0x800C906C; // type:function size:0x4C scope:global +fn_800C90B8 = .text:0x800C90B8; // type:function size:0x28 +fn_800C90E0 = .text:0x800C90E0; // type:function size:0x24 +fn_800C9104 = .text:0x800C9104; // type:function size:0x44 +fn_800C9148 = .text:0x800C9148; // type:function size:0x4C +fn_800C9194 = .text:0x800C9194; // type:function size:0x4C +fn_800C91E0 = .text:0x800C91E0; // type:function size:0xFC +GXGetCPUFifo = .text:0x800C92DC; // type:function size:0x8 +GXGetGPFifo = .text:0x800C92E4; // type:function size:0x8 +__GXXfVtxSpecs = .text:0x800C92EC; // type:function size:0x158 +GXSetVtxDesc = .text:0x800C9444; // type:function size:0x360 +__GXSetVCD = .text:0x800C97A4; // type:function size:0x54 +__GXCalculateVLim = .text:0x800C97F8; // type:function size:0x124 +GXClearVtxDesc = .text:0x800C991C; // type:function size:0x4C +GXSetVtxAttrFmt = .text:0x800C9968; // type:function size:0x35C +__GXSetVAT = .text:0x800C9CC4; // type:function size:0x9C +GXSetArray = .text:0x800C9D60; // type:function size:0x8C +GXInvalidateVtxCache = .text:0x800C9DEC; // type:function size:0x10 +GXSetTexCoordGen2 = .text:0x800C9DFC; // type:function size:0x2D0 +GXSetNumTexGens = .text:0x800CA0CC; // type:function size:0x48 +GXSetMisc = .text:0x800CA114; // type:function size:0x78 scope:global +GXFlush = .text:0x800CA18C; // type:function size:0x5C +GXResetWriteGatherPipe = .text:0x800CA1E8; // type:function size:0x34 +__GXAbortWaitPECopyDone = .text:0x800CA21C; // type:function size:0xCC +GXSetDrawSync = .text:0x800CA2E8; // type:function size:0xB8 +GXSetDrawDone = .text:0x800CA3A0; // type:function size:0x98 +GXWaitDrawDone = .text:0x800CA438; // type:function size:0x4C +GXDrawDone = .text:0x800CA484; // type:function size:0x80 +GXPixModeSync = .text:0x800CA504; // type:function size:0x24 +GXPokeAlphaMode = .text:0x800CA528; // type:function size:0x14 +GXPokeAlphaRead = .text:0x800CA53C; // type:function size:0x14 +GXPokeAlphaUpdate = .text:0x800CA550; // type:function size:0x1C +GXPokeBlendMode = .text:0x800CA56C; // type:function size:0x88 +GXPokeColorUpdate = .text:0x800CA5F4; // type:function size:0x1C +GXPokeDstAlpha = .text:0x800CA610; // type:function size:0x14 +GXPokeDither = .text:0x800CA624; // type:function size:0x1C +GXPokeZMode = .text:0x800CA640; // type:function size:0x28 +GXSetDrawSyncCallback = .text:0x800CA668; // type:function size:0x44 +GXTokenInterruptHandler = .text:0x800CA6AC; // type:function size:0x88 +GXFinishInterruptHandler = .text:0x800CA734; // type:function size:0x84 +__GXPEInit = .text:0x800CA7B8; // type:function size:0x80 scope:global +__GXSetDirtyState = .text:0x800CA838; // type:function size:0xA0 +GXBegin = .text:0x800CA8D8; // type:function size:0xF0 +__GXSendFlushPrim = .text:0x800CA9C8; // type:function size:0x88 +GXSetLineWidth = .text:0x800CAA50; // type:function size:0x58 +GXSetPointSize = .text:0x800CAAA8; // type:function size:0x54 +GXEnableTexOffsets = .text:0x800CAAFC; // type:function size:0x64 +GXSetCullMode = .text:0x800CAB60; // type:function size:0x50 +GXSetCoPlanar = .text:0x800CABB0; // type:function size:0x44 +__GXSetGenMode = .text:0x800CABF4; // type:function size:0x24 +GXAdjustForOverscan = .text:0x800CAC18; // type:function size:0x120 +GXSetDispCopySrc = .text:0x800CAD38; // type:function size:0xC0 +GXSetTexCopySrc = .text:0x800CADF8; // type:function size:0xC0 +GXSetDispCopyDst = .text:0x800CAEB8; // type:function size:0x44 +GXSetTexCopyDst = .text:0x800CAEFC; // type:function size:0x170 +GXSetDispCopyFrame2Field = .text:0x800CB06C; // type:function size:0x2C +GXSetCopyClamp = .text:0x800CB098; // type:function size:0x7C +GXGetYScaleFactor = .text:0x800CB114; // type:function size:0x238 +GXSetDispCopyYScale = .text:0x800CB34C; // type:function size:0xD4 +GXSetCopyClear = .text:0x800CB420; // type:function size:0x68 +GXSetCopyFilter = .text:0x800CB488; // type:function size:0x228 +GXSetDispCopyGamma = .text:0x800CB6B0; // type:function size:0x1C +GXCopyDisp = .text:0x800CB6CC; // type:function size:0x170 +GXCopyTex = .text:0x800CB83C; // type:function size:0x190 +GXClearBoundingBox = .text:0x800CB9CC; // type:function size:0x38 +GXInitLightAttn = .text:0x800CBA04; // type:function size:0x1C +GXInitLightAttnK = .text:0x800CBA20; // type:function size:0x10 +GXInitLightSpot = .text:0x800CBA30; // type:function size:0x180 +GXInitLightDistAttn = .text:0x800CBBB0; // type:function size:0xD0 +GXInitLightPos = .text:0x800CBC80; // type:function size:0x10 +GXInitLightDir = .text:0x800CBC90; // type:function size:0x1C +GXInitSpecularDir = .text:0x800CBCAC; // type:function size:0xD4 +GXInitLightColor = .text:0x800CBD80; // type:function size:0x28 +GXLoadLightObjImm = .text:0x800CBDA8; // type:function size:0x148 +GXSetChanAmbColor = .text:0x800CBEF0; // type:function size:0x168 +GXSetChanMatColor = .text:0x800CC058; // type:function size:0x168 +GXSetNumChans = .text:0x800CC1C0; // type:function size:0x4C +GXSetChanCtrl = .text:0x800CC20C; // type:function size:0x1E4 +GXGetTexBufferSize = .text:0x800CC3F0; // type:function size:0x15C +__GetImageTileCount = .text:0x800CC54C; // type:function size:0xC8 +GXInitTexObj = .text:0x800CC614; // type:function size:0x274 +GXInitTexObjCI = .text:0x800CC888; // type:function size:0x48 +GXInitTexObjLOD = .text:0x800CC8D0; // type:function size:0x194 +GXGetTexObjFmt = .text:0x800CCA64; // type:function size:0x8 +GXLoadTexObjPreLoaded = .text:0x800CCA6C; // type:function size:0x1A8 +GXLoadTexObj = .text:0x800CCC14; // type:function size:0x54 +GXInitTlutObj = .text:0x800CCC68; // type:function size:0x48 +GXLoadTlut = .text:0x800CCCB0; // type:function size:0x9C +GXInitTexCacheRegion = .text:0x800CCD4C; // type:function size:0x120 scope:global +GXInitTlutRegion = .text:0x800CCE6C; // type:function size:0x48 scope:global +GXInvalidateTexAll = .text:0x800CCEB4; // type:function size:0x48 +GXSetTexRegionCallback = .text:0x800CCEFC; // type:function size:0x14 +GXSetTlutRegionCallback = .text:0x800CCF10; // type:function size:0x14 +GXSetTexCoordScaleManually = .text:0x800CCF24; // type:function size:0x9C +fn_800CCFC0 = .text:0x800CCFC0; // type:function size:0xCC +__GXSetSUTexRegs = .text:0x800CD08C; // type:function size:0x17C +__GXSetTmemConfig = .text:0x800CD208; // type:function size:0x240 scope:global +GXSetTevIndirect = .text:0x800CD448; // type:function size:0x9C +GXSetIndTexMtx = .text:0x800CD4E4; // type:function size:0x160 +GXSetIndTexCoordScale = .text:0x800CD644; // type:function size:0x1D4 +GXSetIndTexOrder = .text:0x800CD818; // type:function size:0x138 +GXSetNumIndStages = .text:0x800CD950; // type:function size:0x2C +GXSetTevDirect = .text:0x800CD97C; // type:function size:0x48 +GXSetTevIndWarp = .text:0x800CD9C4; // type:function size:0x64 +GXSetTevIndTile = .text:0x800CDA28; // type:function size:0x1AC +__GXUpdateBPMask = .text:0x800CDBD4; // type:function size:0xCC +__GXFlushTextureState = .text:0x800CDCA0; // type:function size:0x24 scope:global +GXSetTevOp = .text:0x800CDCC4; // type:function size:0x1A4 +GXSetTevColorIn = .text:0x800CDE68; // type:function size:0x80 +GXSetTevAlphaIn = .text:0x800CDEE8; // type:function size:0x84 +GXSetTevColorOp = .text:0x800CDF6C; // type:function size:0xC0 +GXSetTevAlphaOp = .text:0x800CE02C; // type:function size:0xC0 +GXSetTevColor = .text:0x800CE0EC; // type:function size:0x74 +GXSetTevColorS10 = .text:0x800CE160; // type:function size:0x74 +GXSetTevKColor = .text:0x800CE1D4; // type:function size:0x74 +GXSetTevKColorSel = .text:0x800CE248; // type:function size:0x6C +GXSetTevKAlphaSel = .text:0x800CE2B4; // type:function size:0x6C +GXSetTevSwapMode = .text:0x800CE320; // type:function size:0x58 +GXSetTevSwapModeTable = .text:0x800CE378; // type:function size:0xA0 +GXSetAlphaCompare = .text:0x800CE418; // type:function size:0x50 +GXSetZTexture = .text:0x800CE468; // type:function size:0x84 +GXSetTevOrder = .text:0x800CE4EC; // type:function size:0x1DC +GXSetNumTevStages = .text:0x800CE6C8; // type:function size:0x34 +GXSetFog = .text:0x800CE6FC; // type:function size:0x1B0 +GXSetFogRangeAdj = .text:0x800CE8AC; // type:function size:0x100 +GXSetBlendMode = .text:0x800CE9AC; // type:function size:0x104 +GXSetColorUpdate = .text:0x800CEAB0; // type:function size:0x40 +GXSetAlphaUpdate = .text:0x800CEAF0; // type:function size:0x40 +GXSetZMode = .text:0x800CEB30; // type:function size:0x78 +GXSetZCompLoc = .text:0x800CEBA8; // type:function size:0x40 +GXSetPixelFmt = .text:0x800CEBE8; // type:function size:0x110 +GXSetDither = .text:0x800CECF8; // type:function size:0x40 +GXSetDstAlpha = .text:0x800CED38; // type:function size:0x54 +GXSetFieldMask = .text:0x800CED8C; // type:function size:0x38 +GXSetFieldMode = .text:0x800CEDC4; // type:function size:0x80 +__GXSetRange = .text:0x800CEE44; // type:function size:0x4 +GXBeginDisplayList = .text:0x800CEE48; // type:function size:0xC8 +GXEndDisplayList = .text:0x800CEF10; // type:function size:0xD4 +GXCallDisplayList = .text:0x800CEFE4; // type:function size:0x70 +GXProject = .text:0x800CF054; // type:function size:0x174 +GXSetProjection = .text:0x800CF1C8; // type:function size:0xD4 +GXSetProjectionv = .text:0x800CF29C; // type:function size:0x78 +fn_800CF314 = .text:0x800CF314; // type:function size:0x34 +fn_800CF348 = .text:0x800CF348; // type:function size:0x34 +fn_800CF37C = .text:0x800CF37C; // type:function size:0x24 +GXLoadPosMtxImm = .text:0x800CF3A0; // type:function size:0x3C +GXLoadNrmMtxImm = .text:0x800CF3DC; // type:function size:0x40 +GXSetCurrentMtx = .text:0x800CF41C; // type:function size:0x3C +GXLoadTexMtxImm = .text:0x800CF458; // type:function size:0x84 +GXSetViewportJitter = .text:0x800CF4DC; // type:function size:0x11C +GXSetViewport = .text:0x800CF5F8; // type:function size:0x24 +GXGetViewportv = .text:0x800CF61C; // type:function size:0x4C +GXSetScissor = .text:0x800CF668; // type:function size:0xB0 +GXSetScissorBoxOffset = .text:0x800CF718; // type:function size:0x44 +GXSetClipMode = .text:0x800CF75C; // type:function size:0x28 +__GXSetMatrixIndex = .text:0x800CF784; // type:function size:0x84 +GXSetGPMetric = .text:0x800CF808; // type:function size:0x898 +GXReadGPMetric = .text:0x800D00A0; // type:function size:0x1A8 +GXClearGPMetric = .text:0x800D0248; // type:function size:0x10 +GXReadGP0Metric = .text:0x800D0258; // type:function size:0x2C +GXReadGP1Metric = .text:0x800D0284; // type:function size:0x2C +GXReadMemMetric = .text:0x800D02B0; // type:function size:0x214 +GXClearMemMetric = .text:0x800D04C4; // type:function size:0xA8 +GXReadPixMetric = .text:0x800D056C; // type:function size:0x138 +GXClearPixMetric = .text:0x800D06A4; // type:function size:0x30 +GXSetVCacheMetric = .text:0x800D06D4; // type:function size:0x50 +GXReadVCacheMetric = .text:0x800D0724; // type:function size:0x94 +GXClearVCacheMetric = .text:0x800D07B8; // type:function size:0x1C +fn_800D07D4 = .text:0x800D07D4; // type:function size:0x4 +fn_800D07D8 = .text:0x800D07D8; // type:function size:0x34 +fn_800D080C = .text:0x800D080C; // type:function size:0xD8 +fn_800D08E4 = .text:0x800D08E4; // type:function size:0x118 +fn_800D09FC = .text:0x800D09FC; // type:function size:0xA8 +fn_800D0AA4 = .text:0x800D0AA4; // type:function size:0x84 +fn_800D0B28 = .text:0x800D0B28; // type:function size:0xC0 +fn_800D0BE8 = .text:0x800D0BE8; // type:function size:0xF0 +fn_800D0CD8 = .text:0x800D0CD8; // type:function size:0xAC +fn_800D0D84 = .text:0x800D0D84; // type:function size:0xA4 +fn_800D0E28 = .text:0x800D0E28; // type:function size:0x22C +fn_800D1054 = .text:0x800D1054; // type:function size:0x110 +__CARDStart = .text:0x800D1164; // type:function size:0x1B4 +__CARDReadSegment = .text:0x800D1318; // type:function size:0x134 +__CARDWritePage = .text:0x800D144C; // type:function size:0x11C +__CARDEraseSector = .text:0x800D1568; // type:function size:0xE0 +CARDInit = .text:0x800D1648; // type:function size:0x9C +__CARDSetDiskID = .text:0x800D16E4; // type:function size:0x38 +__CARDGetControlBlock = .text:0x800D171C; // type:function size:0xB8 +__CARDPutControlBlock = .text:0x800D17D4; // type:function size:0x64 +CARDFreeBlocks = .text:0x800D1838; // type:function size:0x150 +CARDGetSectorSize = .text:0x800D1988; // type:function size:0x84 +__CARDSync = .text:0x800D1A0C; // type:function size:0x98 +fn_800D1AA4 = .text:0x800D1AA4; // type:function size:0x50 +fn_800D1AF4 = .text:0x800D1AF4; // type:function size:0x16C +fn_800D1C60 = .text:0x800D1C60; // type:function size:0x144 +fn_800D1DA4 = .text:0x800D1DA4; // type:function size:0xC4 +__CARDUnlock = .text:0x800D1E68; // type:function size:0xB58 +fn_800D29C0 = .text:0x800D29C0; // type:function size:0x70 +fn_800D2A30 = .text:0x800D2A30; // type:function size:0x324 +fn_800D2D54 = .text:0x800D2D54; // type:function size:0xDC +__CARDRead = .text:0x800D2E30; // type:function size:0x64 +fn_800D2E94 = .text:0x800D2E94; // type:function size:0xDC +__CARDWrite = .text:0x800D2F70; // type:function size:0x64 +__CARDGetFatBlock = .text:0x800D2FD4; // type:function size:0x8 +fn_800D2FDC = .text:0x800D2FDC; // type:function size:0xD4 +fn_800D30B0 = .text:0x800D30B0; // type:function size:0xC8 +__CARDAllocBlock = .text:0x800D3178; // type:function size:0x118 +__CARDFreeBlock = .text:0x800D3290; // type:function size:0x9C +__CARDUpdateFatBlock = .text:0x800D332C; // type:function size:0xAC +__CARDGetDirBlock = .text:0x800D33D8; // type:function size:0x8 +fn_800D33E0 = .text:0x800D33E0; // type:function size:0xD0 +fn_800D34B0 = .text:0x800D34B0; // type:function size:0xC8 +__CARDUpdateDir = .text:0x800D3578; // type:function size:0xC4 +__CARDCheckSum = .text:0x800D363C; // type:function size:0x1B0 +fn_800D37EC = .text:0x800D37EC; // type:function size:0x284 +fn_800D3A70 = .text:0x800D3A70; // type:function size:0x240 +fn_800D3CB0 = .text:0x800D3CB0; // type:function size:0x284 +__CARDVerify = .text:0x800D3F34; // type:function size:0x8C +CARDCheckExAsync = .text:0x800D3FC0; // type:function size:0x590 +CARDCheck = .text:0x800D4550; // type:function size:0x54 +fn_800D45A4 = .text:0x800D45A4; // type:function size:0xCC +CARDProbeEx = .text:0x800D4670; // type:function size:0x17C +fn_800D47EC = .text:0x800D47EC; // type:function size:0x410 +__CARDMountCallback = .text:0x800D4BFC; // type:function size:0x138 +CARDMountAsync = .text:0x800D4D34; // type:function size:0x1A0 +CARDMount = .text:0x800D4ED4; // type:function size:0x48 +fn_800D4F1C = .text:0x800D4F1C; // type:function size:0x9C +CARDUnmount = .text:0x800D4FB8; // type:function size:0xAC +fn_800D5064 = .text:0x800D5064; // type:function size:0x144 +__CARDFormatRegionAsync = .text:0x800D51A8; // type:function size:0x658 +CARDFormat = .text:0x800D5800; // type:function size:0x54 +__CARDCompareFileName = .text:0x800D5854; // type:function size:0x68 +__CARDAccess = .text:0x800D58BC; // type:function size:0x98 +__CARDIsPublic = .text:0x800D5954; // type:function size:0x30 +__CARDGetFileNo = .text:0x800D5984; // type:function size:0x150 +CARDOpen = .text:0x800D5AD4; // type:function size:0x178 +CARDClose = .text:0x800D5C4C; // type:function size:0x54 +__CARDIsOpened = .text:0x800D5CA0; // type:function size:0x8 +fn_800D5CA8 = .text:0x800D5CA8; // type:function size:0x130 +CARDCreateAsync = .text:0x800D5DD8; // type:function size:0x220 +CARDCreate = .text:0x800D5FF8; // type:function size:0x48 +__CARDSeek = .text:0x800D6040; // type:function size:0x1B8 +fn_800D61F8 = .text:0x800D61F8; // type:function size:0x130 +CARDReadAsync = .text:0x800D6328; // type:function size:0x148 +CARDRead = .text:0x800D6470; // type:function size:0x48 +fn_800D64B8 = .text:0x800D64B8; // type:function size:0x170 +fn_800D6628 = .text:0x800D6628; // type:function size:0xB0 +CARDWriteAsync = .text:0x800D66D8; // type:function size:0x114 +CARDWrite = .text:0x800D67EC; // type:function size:0x48 +fn_800D6834 = .text:0x800D6834; // type:function size:0xA4 +CARDDeleteAsync = .text:0x800D68D8; // type:function size:0x110 +CARDDelete = .text:0x800D69E8; // type:function size:0x48 +fn_800D6A30 = .text:0x800D6A30; // type:function size:0x1F8 +CARDGetStatus = .text:0x800D6C28; // type:function size:0x12C +CARDSetStatusAsync = .text:0x800D6D54; // type:function size:0x174 +CARDSetStatus = .text:0x800D6EC8; // type:function size:0x48 +CARDGetSerialNo = .text:0x800D6F10; // type:function size:0xC4 +fn_800D6FD4 = .text:0x800D6FD4; // type:function size:0xF4 +EXIImm = .text:0x800D70C8; // type:function size:0x25C scope:global +fn_800D7324 = .text:0x800D7324; // type:function size:0xA0 +EXIDma = .text:0x800D73C4; // type:function size:0xEC scope:global +EXISync = .text:0x800D74B0; // type:function size:0x238 scope:global +fn_800D76E8 = .text:0x800D76E8; // type:function size:0x48 +fn_800D7730 = .text:0x800D7730; // type:function size:0x7C +__EXIProbe = .text:0x800D77AC; // type:function size:0x174 scope:local +fn_800D7920 = .text:0x800D7920; // type:function size:0x80 +fn_800D79A0 = .text:0x800D79A0; // type:function size:0xB4 +fn_800D7A54 = .text:0x800D7A54; // type:function size:0x10C +fn_800D7B60 = .text:0x800D7B60; // type:function size:0xBC +EXISelect = .text:0x800D7C1C; // type:function size:0x12C scope:global +EXIDeselect = .text:0x800D7D48; // type:function size:0x110 scope:global +EXIIntrruptHandler = .text:0x800D7E58; // type:function size:0xC8 scope:local +TCIntrruptHandler = .text:0x800D7F20; // type:function size:0x218 scope:local +EXTIntrruptHandler = .text:0x800D8138; // type:function size:0xD0 scope:local +EXIInit = .text:0x800D8208; // type:function size:0x114 scope:global +EXILock = .text:0x800D831C; // type:function size:0xF4 scope:global +EXIUnlock = .text:0x800D8410; // type:function size:0xDC scope:global +fn_800D84EC = .text:0x800D84EC; // type:function size:0x18 +fn_800D8504 = .text:0x800D8504; // type:function size:0x28 +fn_800D852C = .text:0x800D852C; // type:function size:0x37C +fn_800D88A8 = .text:0x800D88A8; // type:function size:0x70 +fn_800D8918 = .text:0x800D8918; // type:function size:0x200 +fn_800D8B18 = .text:0x800D8B18; // type:function size:0x20 +fn_800D8B38 = .text:0x800D8B38; // type:function size:0x3C +fn_800D8B74 = .text:0x800D8B74; // type:function size:0x2FC +SIInterruptHandler = .text:0x800D8E70; // type:function size:0x344 scope:local +fn_800D91B4 = .text:0x800D91B4; // type:function size:0x98 +fn_800D924C = .text:0x800D924C; // type:function size:0xCC +fn_800D9318 = .text:0x800D9318; // type:function size:0xF4 +SIInit = .text:0x800D940C; // type:function size:0xA4 scope:global +fn_800D94B0 = .text:0x800D94B0; // type:function size:0x20C +fn_800D96BC = .text:0x800D96BC; // type:function size:0x7C +fn_800D9738 = .text:0x800D9738; // type:function size:0x14 +fn_800D974C = .text:0x800D974C; // type:function size:0x10 +SISetXY = .text:0x800D975C; // type:function size:0x6C scope:global +fn_800D97C8 = .text:0x800D97C8; // type:function size:0x9C +fn_800D9864 = .text:0x800D9864; // type:function size:0x6C +fn_800D98D0 = .text:0x800D98D0; // type:function size:0xD4 +fn_800D99A4 = .text:0x800D99A4; // type:function size:0xC4 +fn_800D9A68 = .text:0x800D9A68; // type:function size:0x8C +SITransfer = .text:0x800D9AF4; // type:function size:0x16C scope:global +GetTypeCallback = .text:0x800D9C60; // type:function size:0x298 scope:local +SIGetType = .text:0x800D9EF8; // type:function size:0x1C4 scope:global +fn_800DA0BC = .text:0x800DA0BC; // type:function size:0x13C +SISetSamplingRate = .text:0x800DA1F8; // type:function size:0xE4 scope:global +SIRefreshSamplingRate = .text:0x800DA2DC; // type:function size:0x24 +THPVideoDecode = .text:0x800DA300; // type:function size:0x244 +fn_800DA544 = .text:0x800DA544; // type:function size:0x44 +fn_800DA588 = .text:0x800DA588; // type:function size:0x13C +fn_800DA6C4 = .text:0x800DA6C4; // type:function size:0x11C +fn_800DA7E0 = .text:0x800DA7E0; // type:function size:0x3BC +fn_800DAB9C = .text:0x800DAB9C; // type:function size:0x1E0 +fn_800DAD7C = .text:0x800DAD7C; // type:function size:0xF0 +fn_800DAE6C = .text:0x800DAE6C; // type:function size:0x68 +fn_800DAED4 = .text:0x800DAED4; // type:function size:0x1BC +fn_800DB090 = .text:0x800DB090; // type:function size:0x54 +fn_800DB0E4 = .text:0x800DB0E4; // type:function size:0x24C +fn_800DB330 = .text:0x800DB330; // type:function size:0x10C +fn_800DB43C = .text:0x800DB43C; // type:function size:0x1A88 +fn_800DCEC4 = .text:0x800DCEC4; // type:function size:0x1A8C +fn_800DE950 = .text:0x800DE950; // type:function size:0x1AAC +fn_800E03FC = .text:0x800E03FC; // type:function size:0x67C +fn_800E0A78 = .text:0x800E0A78; // type:function size:0x6A8 +fn_800E1120 = .text:0x800E1120; // type:function size:0x6A8 +THPInit = .text:0x800E17C8; // type:function size:0x78 +THPAudioDecode = .text:0x800E1840; // type:function size:0x464 +fn_800E1CA4 = .text:0x800E1CA4; // type:function size:0x90 +fn_800E1D34 = .text:0x800E1D34; // type:function size:0x3C +__va_arg = .text:0x800E1D70; // type:function size:0xC8 scope:global +__destroy_global_chain = .text:0x800E1E38; // type:function size:0x48 scope:global +__register_global_object = .text:0x800E1E80; // type:function size:0x18 scope:global +fn_800E1E98 = .text:0x800E1E98; // type:function size:0x4C +fn_800E1EE4 = .text:0x800E1EE4; // type:function size:0x48 +fn_800E1F2C = .text:0x800E1F2C; // type:function size:0xC +fn_800E1F38 = .text:0x800E1F38; // type:function size:0x22C +fn_800E2164 = .text:0x800E2164; // type:function size:0x28 +fn_800E218C = .text:0x800E218C; // type:function size:0x28 +fn_800E21B4 = .text:0x800E21B4; // type:function size:0x28 +fn_800E21DC = .text:0x800E21DC; // type:function size:0x20 +__cvt_fp2unsigned = .text:0x800E21FC; // type:function size:0x5C +__save_fpr = .text:0x800E2258; // type:function size:0x4C scope:global +_savefpr_14 = .text:0x800E2258; // type:label scope:global +_savefpr_15 = .text:0x800E225C; // type:label scope:global +_savefpr_16 = .text:0x800E2260; // type:label scope:global +_savefpr_17 = .text:0x800E2264; // type:label scope:global +_savefpr_18 = .text:0x800E2268; // type:label scope:global +_savefpr_19 = .text:0x800E226C; // type:label scope:global +_savefpr_20 = .text:0x800E2270; // type:label scope:global +_savefpr_21 = .text:0x800E2274; // type:label scope:global +_savefpr_22 = .text:0x800E2278; // type:label scope:global +_savefpr_23 = .text:0x800E227C; // type:label scope:global +_savefpr_24 = .text:0x800E2280; // type:label scope:global +_savefpr_25 = .text:0x800E2284; // type:label scope:global +_savefpr_26 = .text:0x800E2288; // type:label scope:global +_savefpr_27 = .text:0x800E228C; // type:label scope:global +_savefpr_28 = .text:0x800E2290; // type:label scope:global +_savefpr_29 = .text:0x800E2294; // type:label scope:global +_savefpr_30 = .text:0x800E2298; // type:label scope:global +_savefpr_31 = .text:0x800E229C; // type:label scope:global +__restore_fpr = .text:0x800E22A4; // type:function size:0x4C scope:global +_restfpr_14 = .text:0x800E22A4; // type:label scope:global +_restfpr_15 = .text:0x800E22A8; // type:label scope:global +_restfpr_16 = .text:0x800E22AC; // type:label scope:global +_restfpr_17 = .text:0x800E22B0; // type:label scope:global +_restfpr_18 = .text:0x800E22B4; // type:label scope:global +_restfpr_19 = .text:0x800E22B8; // type:label scope:global +_restfpr_20 = .text:0x800E22BC; // type:label scope:global +_restfpr_21 = .text:0x800E22C0; // type:label scope:global +_restfpr_22 = .text:0x800E22C4; // type:label scope:global +_restfpr_23 = .text:0x800E22C8; // type:label scope:global +_restfpr_24 = .text:0x800E22CC; // type:label scope:global +_restfpr_25 = .text:0x800E22D0; // type:label scope:global +_restfpr_26 = .text:0x800E22D4; // type:label scope:global +_restfpr_27 = .text:0x800E22D8; // type:label scope:global +_restfpr_28 = .text:0x800E22DC; // type:label scope:global +_restfpr_29 = .text:0x800E22E0; // type:label scope:global +_restfpr_30 = .text:0x800E22E4; // type:label scope:global +_restfpr_31 = .text:0x800E22E8; // type:label scope:global +__save_gpr = .text:0x800E22F0; // type:function size:0x4C scope:global +_savegpr_14 = .text:0x800E22F0; // type:label scope:global +_savegpr_15 = .text:0x800E22F4; // type:label scope:global +_savegpr_16 = .text:0x800E22F8; // type:label scope:global +_savegpr_17 = .text:0x800E22FC; // type:label scope:global +_savegpr_18 = .text:0x800E2300; // type:label scope:global +_savegpr_19 = .text:0x800E2304; // type:label scope:global +_savegpr_20 = .text:0x800E2308; // type:label scope:global +_savegpr_21 = .text:0x800E230C; // type:label scope:global +_savegpr_22 = .text:0x800E2310; // type:label scope:global +_savegpr_23 = .text:0x800E2314; // type:label scope:global +_savegpr_24 = .text:0x800E2318; // type:label scope:global +_savegpr_25 = .text:0x800E231C; // type:label scope:global +_savegpr_26 = .text:0x800E2320; // type:label scope:global +_savegpr_27 = .text:0x800E2324; // type:label scope:global +_savegpr_28 = .text:0x800E2328; // type:label scope:global +_savegpr_29 = .text:0x800E232C; // type:label scope:global +_savegpr_30 = .text:0x800E2330; // type:label scope:global +_savegpr_31 = .text:0x800E2334; // type:label scope:global +__restore_gpr = .text:0x800E233C; // type:function size:0x4C scope:global +_restgpr_14 = .text:0x800E233C; // type:label scope:global +_restgpr_15 = .text:0x800E2340; // type:label scope:global +_restgpr_16 = .text:0x800E2344; // type:label scope:global +_restgpr_17 = .text:0x800E2348; // type:label scope:global +_restgpr_18 = .text:0x800E234C; // type:label scope:global +_restgpr_19 = .text:0x800E2350; // type:label scope:global +_restgpr_20 = .text:0x800E2354; // type:label scope:global +_restgpr_21 = .text:0x800E2358; // type:label scope:global +_restgpr_22 = .text:0x800E235C; // type:label scope:global +_restgpr_23 = .text:0x800E2360; // type:label scope:global +_restgpr_24 = .text:0x800E2364; // type:label scope:global +_restgpr_25 = .text:0x800E2368; // type:label scope:global +_restgpr_26 = .text:0x800E236C; // type:label scope:global +_restgpr_27 = .text:0x800E2370; // type:label scope:global +_restgpr_28 = .text:0x800E2374; // type:label scope:global +_restgpr_29 = .text:0x800E2378; // type:label scope:global +_restgpr_30 = .text:0x800E237C; // type:label scope:global +_restgpr_31 = .text:0x800E2380; // type:label scope:global +__div2u = .text:0x800E2388; // type:function size:0xEC scope:global +__div2i = .text:0x800E2474; // type:function size:0x138 +__mod2u = .text:0x800E25AC; // type:function size:0xE4 scope:global +__mod2i = .text:0x800E2690; // type:function size:0x10C +__shl2i = .text:0x800E279C; // type:function size:0x24 +__shr2u = .text:0x800E27C0; // type:function size:0x24 +__shr2i = .text:0x800E27E4; // type:function size:0x28 +__cvt_dbl_usll = .text:0x800E280C; // type:function size:0xCC +GetR2__Fv = .text:0x800E28D8; // type:function size:0x8 scope:local +__fini_cpp_exceptions = .text:0x800E28E0; // type:function size:0x34 scope:global +__init_cpp_exceptions = .text:0x800E2914; // type:function size:0x40 scope:global +fn_800E2954 = .text:0x800E2954; // type:function size:0x104 +fn_800E2A58 = .text:0x800E2A58; // type:function size:0x144 +fn_800E2B9C = .text:0x800E2B9C; // type:function size:0x44 +fn_800E2BE0 = .text:0x800E2BE0; // type:function size:0x410 +fn_800E2FF0 = .text:0x800E2FF0; // type:function size:0x1B4 +fn_800E31A4 = .text:0x800E31A4; // type:function size:0x5C +fn_800E3200 = .text:0x800E3200; // type:function size:0x50C +fn_800E370C = .text:0x800E370C; // type:function size:0x248 +fn_800E3954 = .text:0x800E3954; // type:function size:0x1C0 +fn_800E3B14 = .text:0x800E3B14; // type:function size:0x204 +__unregister_fragment = .text:0x800E3D18; // type:function size:0x34 scope:global +__register_fragment = .text:0x800E3D4C; // type:function size:0x34 scope:global +fn_800E3D80 = .text:0x800E3D80; // type:function size:0xC +fn_800E3D8C = .text:0x800E3D8C; // type:function size:0xB8 +exit = .text:0x800E3E44; // type:function size:0xCC scope:global +fn_800E3F10 = .text:0x800E3F10; // type:function size:0x88 +fn_800E3F98 = .text:0x800E3F98; // type:function size:0x134 +fn_800E40CC = .text:0x800E40CC; // type:function size:0x1FC +fn_800E42C8 = .text:0x800E42C8; // type:function size:0xBC +fn_800E4384 = .text:0x800E4384; // type:function size:0x17C +fn_800E4500 = .text:0x800E4500; // type:function size:0x70 +__close_all = .text:0x800E4570; // type:function size:0x98 scope:global +fn_800E4608 = .text:0x800E4608; // type:function size:0x1A4 +fn_800E47AC = .text:0x800E47AC; // type:function size:0x23C +fn_800E49E8 = .text:0x800E49E8; // type:function size:0x340 +fn_800E4D28 = .text:0x800E4D28; // type:function size:0xEC +fn_800E4E14 = .text:0x800E4E14; // type:function size:0x28C +fn_800E50A0 = .text:0x800E50A0; // type:function size:0x110 +fn_800E51B0 = .text:0x800E51B0; // type:function size:0x70 +abs = .text:0x800E5220; // type:function size:0x10 +__flush_buffer = .text:0x800E5230; // type:function size:0xC4 scope:global +__prep_buffer = .text:0x800E52F4; // type:function size:0x34 scope:global +tolower = .text:0x800E5328; // type:function size:0x24 +isalpha = .text:0x800E534C; // type:function size:0x18 +__fwrite = .text:0x800E5364; // type:function size:0x30C scope:global +fwrite = .text:0x800E5670; // type:function size:0x20 scope:global +fflush = .text:0x800E5690; // type:function size:0x138 +fclose = .text:0x800E57C8; // type:function size:0xC0 +fseek = .text:0x800E5888; // type:function size:0x20 scope:global +_fseek = .text:0x800E58A8; // type:function size:0x23C +ftell = .text:0x800E5AE4; // type:function size:0x70 +wcstombs = .text:0x800E5B54; // type:function size:0xA0 scope:global +fn_800E5BF4 = .text:0x800E5BF4; // type:function size:0xA4 +memcmp = .text:0x800E5C98; // type:function size:0x4C +__memrchr = .text:0x800E5CE4; // type:function size:0x2C scope:global +memchr = .text:0x800E5D10; // type:function size:0x2C scope:global +memmove = .text:0x800E5D3C; // type:function size:0xCC +__copy_longs_rev_unaligned = .text:0x800E5E08; // type:function size:0xB0 +__copy_longs_unaligned = .text:0x800E5EB8; // type:function size:0xC4 +__copy_longs_rev_aligned = .text:0x800E5F7C; // type:function size:0xAC +__copy_longs_aligned = .text:0x800E6028; // type:function size:0xC0 +__stdio_atexit = .text:0x800E60E8; // type:function size:0x10 scope:global +sprintf = .text:0x800E60F8; // type:function size:0xE0 +vsprintf = .text:0x800E61D8; // type:function size:0x78 +vsnprintf = .text:0x800E6250; // type:function size:0x74 +vprintf = .text:0x800E62C4; // type:function size:0x7C scope:global +printf = .text:0x800E6340; // type:function size:0xCC +__StringWrite = .text:0x800E640C; // type:function size:0x6C +__FileWrite = .text:0x800E6478; // type:function size:0x58 scope:global +__pformatter = .text:0x800E64D0; // type:function size:0x774 scope:local +float2str = .text:0x800E6C44; // type:function size:0x6EC scope:local +fn_800E7330 = .text:0x800E7330; // type:function size:0x12C +double2hex = .text:0x800E745C; // type:function size:0x338 scope:local +longlong2str = .text:0x800E7794; // type:function size:0x2DC scope:local +long2str = .text:0x800E7A70; // type:function size:0x220 scope:local +parse_format = .text:0x800E7C90; // type:function size:0x504 scope:local +raise = .text:0x800E8194; // type:function size:0xB0 +strchr = .text:0x800E8244; // type:function size:0x30 scope:global +strncmp = .text:0x800E8274; // type:function size:0x40 +strcmp = .text:0x800E82B4; // type:function size:0x128 +strcat = .text:0x800E83DC; // type:function size:0x44 +strcpy = .text:0x800E8420; // type:function size:0xB8 +strlen = .text:0x800E84D8; // type:function size:0x1C scope:global +__close_console = .text:0x800E84F4; // type:function size:0x8 +__write_console = .text:0x800E84FC; // type:function size:0xC4 +fwide = .text:0x800E85C0; // type:function size:0x88 scope:global +__ieee754_acos = .text:0x800E8648; // type:function size:0x310 +__ieee754_asin = .text:0x800E8958; // type:function size:0x264 +__ieee754_atan2 = .text:0x800E8BBC; // type:function size:0x290 +__ieee754_fmod = .text:0x800E8E4C; // type:function size:0x33C +__ieee754_pow = .text:0x800E9188; // type:function size:0x88C +__ieee754_rem_pio2 = .text:0x800E9A14; // type:function size:0x3A0 +__kernel_cos = .text:0x800E9DB4; // type:function size:0xF4 +__kernel_rem_pio2 = .text:0x800E9EA8; // type:function size:0xE54 +__kernel_sin = .text:0x800EACFC; // type:function size:0xA0 +__kernel_tan = .text:0x800EAD9C; // type:function size:0x214 +atan = .text:0x800EAFB0; // type:function size:0x200 +copysign = .text:0x800EB1B0; // type:function size:0x28 +cos = .text:0x800EB1D8; // type:function size:0xD4 +floor = .text:0x800EB2AC; // type:function size:0x148 +frexp = .text:0x800EB3F4; // type:function size:0x8C +ldexp = .text:0x800EB480; // type:function size:0x1C4 +modf = .text:0x800EB644; // type:function size:0xFC +sin = .text:0x800EB740; // type:function size:0xD8 +tan = .text:0x800EB818; // type:function size:0x78 +acos = .text:0x800EB890; // type:function size:0x20 +asin = .text:0x800EB8B0; // type:function size:0x20 +atan2 = .text:0x800EB8D0; // type:function size:0x20 +fmod = .text:0x800EB8F0; // type:function size:0x20 +pow = .text:0x800EB910; // type:function size:0x20 +tanf = .text:0x800EB930; // type:function size:0x24 scope:weak +sinf = .text:0x800EB954; // type:function size:0x24 scope:weak +cosf = .text:0x800EB978; // type:function size:0x24 scope:weak +atan2f = .text:0x800EB99C; // type:function size:0x24 scope:weak +acosf = .text:0x800EB9C0; // type:function size:0x24 scope:weak +TRKNubMainLoop = .text:0x800EB9E4; // type:function size:0xF8 scope:global +TRKDestructEvent = .text:0x800EBADC; // type:function size:0x24 scope:global +fn_800EBB00 = .text:0x800EBB00; // type:function size:0x18 +fn_800EBB18 = .text:0x800EBB18; // type:function size:0xE0 +TRKGetNextEvent = .text:0x800EBBF8; // type:function size:0xB4 scope:global +TRKInitializeEventQueue = .text:0x800EBCAC; // type:function size:0x58 scope:global +TRKNubWelcome = .text:0x800EBD04; // type:function size:0x28 scope:global +TRKTerminateNub = .text:0x800EBD2C; // type:function size:0x24 scope:global +TRKInitializeNub = .text:0x800EBD50; // type:function size:0x134 scope:global +fn_800EBE84 = .text:0x800EBE84; // type:function size:0x1DC +fn_800EC060 = .text:0x800EC060; // type:function size:0xF0 +fn_800EC150 = .text:0x800EC150; // type:function size:0x98 +fn_800EC1E8 = .text:0x800EC1E8; // type:function size:0xE8 +fn_800EC2D0 = .text:0x800EC2D0; // type:function size:0xC8 +fn_800EC398 = .text:0x800EC398; // type:function size:0xB8 +fn_800EC450 = .text:0x800EC450; // type:function size:0x80 +fn_800EC4D0 = .text:0x800EC4D0; // type:function size:0xA8 +fn_800EC578 = .text:0x800EC578; // type:function size:0x68 +fn_800EC5E0 = .text:0x800EC5E0; // type:function size:0x88 +fn_800EC668 = .text:0x800EC668; // type:function size:0x64 +fn_800EC6CC = .text:0x800EC6CC; // type:function size:0x54 +fn_800EC720 = .text:0x800EC720; // type:function size:0x8C +fn_800EC7AC = .text:0x800EC7AC; // type:function size:0xA4 +fn_800EC850 = .text:0x800EC850; // type:function size:0x30 +fn_800EC880 = .text:0x800EC880; // type:function size:0x40 +fn_800EC8C0 = .text:0x800EC8C0; // type:function size:0x64 +TRKGetBuffer = .text:0x800EC924; // type:function size:0x2C scope:global +fn_800EC950 = .text:0x800EC950; // type:function size:0xC8 +TRKInitializeMessageBuffers = .text:0x800ECA18; // type:function size:0x74 scope:global +fn_800ECA8C = .text:0x800ECA8C; // type:function size:0x8 +TRKInitializeSerialHandler = .text:0x800ECA94; // type:function size:0x24 scope:global +fn_800ECAB8 = .text:0x800ECAB8; // type:function size:0x50 +TRKGetInput = .text:0x800ECB08; // type:function size:0x98 scope:global +fn_800ECBA0 = .text:0x800ECBA0; // type:function size:0x2B8 +usr_put_initialize = .text:0x800ECE58; // type:function size:0x4 scope:global +fn_800ECE5C = .text:0x800ECE5C; // type:function size:0x88 +TRKDispatchMessage = .text:0x800ECEE4; // type:function size:0x84 scope:global +TRKInitializeDispatcher = .text:0x800ECF68; // type:function size:0x18 scope:global +fn_800ECF80 = .text:0x800ECF80; // type:function size:0x1A4 +fn_800ED124 = .text:0x800ED124; // type:function size:0x100 +fn_800ED224 = .text:0x800ED224; // type:function size:0x530 +fn_800ED754 = .text:0x800ED754; // type:function size:0x154 +fn_800ED8A8 = .text:0x800ED8A8; // type:function size:0x2F8 +fn_800EDBA0 = .text:0x800EDBA0; // type:function size:0x3C8 +fn_800EDF68 = .text:0x800EDF68; // type:function size:0x3CC +fn_800EE334 = .text:0x800EE334; // type:function size:0x420 +fn_800EE754 = .text:0x800EE754; // type:function size:0x410 +fn_800EEB64 = .text:0x800EEB64; // type:function size:0x398 +fn_800EEEFC = .text:0x800EEEFC; // type:function size:0x230 +fn_800EF12C = .text:0x800EF12C; // type:function size:0x2D8 +fn_800EF404 = .text:0x800EF404; // type:function size:0xB8 +fn_800EF4BC = .text:0x800EF4BC; // type:function size:0xE4 +fn_800EF5A0 = .text:0x800EF5A0; // type:function size:0xBC +fn_800EF65C = .text:0x800EF65C; // type:function size:0xB0 +fn_800EF70C = .text:0x800EF70C; // type:function size:0xB8 +fn_800EF7C4 = .text:0x800EF7C4; // type:function size:0xC +fn_800EF7D0 = .text:0x800EF7D0; // type:function size:0x10 +fn_800EF7E0 = .text:0x800EF7E0; // type:function size:0x190 +fn_800EF970 = .text:0x800EF970; // type:function size:0x120 +fn_800EFA90 = .text:0x800EFA90; // type:function size:0x1A8 +fn_800EFC38 = .text:0x800EFC38; // type:function size:0x1A4 +fn_800EFDDC = .text:0x800EFDDC; // type:function size:0x2C4 +fn_800F00A0 = .text:0x800F00A0; // type:function size:0x8 +fn_800F00A8 = .text:0x800F00A8; // type:function size:0x8 +fn_800F00B0 = .text:0x800F00B0; // type:function size:0x8 +fn_800F00B8 = .text:0x800F00B8; // type:function size:0xD8 +fn_800F0190 = .text:0x800F0190; // type:function size:0x38 +fn_800F01C8 = .text:0x800F01C8; // type:function size:0xBC +fn_800F0284 = .text:0x800F0284; // type:function size:0x8 +fn_800F028C = .text:0x800F028C; // type:function size:0x8 +fn_800F0294 = .text:0x800F0294; // type:function size:0x3C +TRKInterruptHandler = .text:0x800F02D0; // type:function size:0x194 scope:global +TRKExceptionHandler = .text:0x800F0464; // type:function size:0x9C scope:global +TRKSwapAndGo = .text:0x800F0500; // type:function size:0xC4 scope:global +TRKInterruptHandlerEnableInterrupts = .text:0x800F05C4; // type:function size:0x54 scope:global +TRKTargetSetInputPendingPtr = .text:0x800F0618; // type:function size:0x10 scope:global +fn_800F0628 = .text:0x800F0628; // type:function size:0x21C +fn_800F0844 = .text:0x800F0844; // type:function size:0x18 +TRKTargetSetStopped = .text:0x800F085C; // type:function size:0x10 scope:global +TRKTargetStopped = .text:0x800F086C; // type:function size:0x10 scope:global +fn_800F087C = .text:0x800F087C; // type:function size:0x3C +TRKTargetSupportRequest = .text:0x800F08B8; // type:function size:0x208 scope:global +fn_800F0AC0 = .text:0x800F0AC0; // type:function size:0x10 +fn_800F0AD0 = .text:0x800F0AD0; // type:function size:0x7C +fn_800F0B4C = .text:0x800F0B4C; // type:function size:0x6C +fn_800F0BB8 = .text:0x800F0BB8; // type:function size:0xAC +fn_800F0C64 = .text:0x800F0C64; // type:function size:0x124 +TRKTargetInterrupt = .text:0x800F0D88; // type:function size:0x15C scope:global +TRKPostInterruptEvent = .text:0x800F0EE4; // type:function size:0xC0 scope:global +fn_800F0FA4 = .text:0x800F0FA4; // type:function size:0x60 +fn_800F1004 = .text:0x800F1004; // type:function size:0xA4 +fn_800F10A8 = .text:0x800F10A8; // type:function size:0x24 +fn_800F10CC = .text:0x800F10CC; // type:function size:0x438 +fn_800F1504 = .text:0x800F1504; // type:function size:0x170 +fn_800F1674 = .text:0x800F1674; // type:function size:0x13C +fn_800F17B0 = .text:0x800F17B0; // type:function size:0xF4 +fn_800F18A4 = .text:0x800F18A4; // type:function size:0x14C +fn_800F19F0 = .text:0x800F19F0; // type:function size:0x124 +fn_800F1B20 = .text:0x800F1B20; // type:function size:0x8 +fn_800F1B28 = .text:0x800F1B28; // type:function size:0x8 +fn_800F1B30 = .text:0x800F1B30; // type:function size:0x8 +fn_800F1B38 = .text:0x800F1B38; // type:function size:0x8 +InitMetroTRK = .text:0x800F1B40; // type:function size:0x94 scope:global +TRKInitializeTarget = .text:0x800F1BD4; // type:function size:0x4C scope:global +fn_800F1C20 = .text:0x800F1C20; // type:function size:0x40 +EnableMetroTRKInterrupts = .text:0x800F1C60; // type:function size:0x20 scope:global +TRKSaveExtended1Block = .text:0x800F1C80; // type:function size:0x1B8 scope:global +TRKRestoreExtended1Block = .text:0x800F1E38; // type:function size:0x1B8 scope:global +fn_800F1FF0 = .text:0x800F1FF0; // type:function size:0x8 +TRK_main = .text:0x800F1FF8; // type:function size:0x44 scope:global +TRKLoadContext = .text:0x800F203C; // type:function size:0x88 scope:global +TRKUARTInterruptHandler = .text:0x800F20C4; // type:function size:0x4 scope:global +TRK_board_display = .text:0x800F20C8; // type:function size:0x24 scope:global +UnreserveEXI2Port = .text:0x800F20EC; // type:function size:0x30 scope:global +ReserveEXI2Port = .text:0x800F211C; // type:function size:0x30 scope:global +fn_800F214C = .text:0x800F214C; // type:function size:0xF0 +fn_800F223C = .text:0x800F223C; // type:function size:0x28 +fn_800F2264 = .text:0x800F2264; // type:function size:0xE0 +fn_800F2344 = .text:0x800F2344; // type:function size:0x30 +TRKInitializeIntDrivenUART = .text:0x800F2374; // type:function size:0x3C scope:global +InitMetroTRKCommTable = .text:0x800F23B0; // type:function size:0x100 scope:global +TRKEXICallBack = .text:0x800F24B0; // type:function size:0x38 scope:global +TRKTargetContinue = .text:0x800F24E8; // type:function size:0x34 scope:global +fn_800F251C = .text:0x800F251C; // type:function size:0x10 +fn_800F252C = .text:0x800F252C; // type:function size:0xC +fn_800F2538 = .text:0x800F2538; // type:function size:0xBC +fn_800F25F4 = .text:0x800F25F4; // type:function size:0xBC +fn_800F26B0 = .text:0x800F26B0; // type:function size:0x68 +fn_800F2718 = .text:0x800F2718; // type:function size:0xAC4 +fn_800F31DC = .text:0x800F31DC; // type:function size:0x64 +fn_800F3240 = .text:0x800F3240; // type:function size:0x27C +fn_800F34BC = .text:0x800F34BC; // type:function size:0x2B0 +fn_800F376C = .text:0x800F376C; // type:function size:0x90 +fn_800F37FC = .text:0x800F37FC; // type:function size:0xE4 +fn_800F38E0 = .text:0x800F38E0; // type:function size:0x108 +fn_800F39E8 = .text:0x800F39E8; // type:function size:0xBC +fn_800F3AA4 = .text:0x800F3AA4; // type:function size:0x1CC +fn_800F3C70 = .text:0x800F3C70; // type:function size:0xB58 +fn_800F47C8 = .text:0x800F47C8; // type:function size:0x218 +fn_800F49E0 = .text:0x800F49E0; // type:function size:0xA94 +fn_800F5474 = .text:0x800F5474; // type:function size:0x174 +fn_800F55E8 = .text:0x800F55E8; // type:function size:0x49C +fn_800F5A84 = .text:0x800F5A84; // type:function size:0x9F4 +fn_800F6478 = .text:0x800F6478; // type:function size:0x1A8 +fn_800F6620 = .text:0x800F6620; // type:function size:0x44 +fn_800F6664 = .text:0x800F6664; // type:function size:0x34 +fn_800F6698 = .text:0x800F6698; // type:function size:0x78 +fn_800F6710 = .text:0x800F6710; // type:function size:0x2A0 +fn_800F69B0 = .text:0x800F69B0; // type:function size:0x3C0 +fn_800F6D70 = .text:0x800F6D70; // type:function size:0x25C +fn_800F6FCC = .text:0x800F6FCC; // type:function size:0x45C +fn_800F7428 = .text:0x800F7428; // type:function size:0x744 +fn_800F7B6C = .text:0x800F7B6C; // type:function size:0x6FC +fn_800F8268 = .text:0x800F8268; // type:function size:0x150 +fn_800F83B8 = .text:0x800F83B8; // type:function size:0x64 +fn_800F841C = .text:0x800F841C; // type:function size:0x44 +fn_800F8460 = .text:0x800F8460; // type:function size:0x28 +fn_800F8488 = .text:0x800F8488; // type:function size:0x510 +fn_800F8998 = .text:0x800F8998; // type:function size:0x34 +fn_800F89CC = .text:0x800F89CC; // type:function size:0xC8 +fn_800F8A94 = .text:0x800F8A94; // type:function size:0xE4 +fn_800F8B78 = .text:0x800F8B78; // type:function size:0xE4 +fn_800F8C5C = .text:0x800F8C5C; // type:function size:0x84 +fn_800F8CE0 = .text:0x800F8CE0; // type:function size:0x88 +fn_800F8D68 = .text:0x800F8D68; // type:function size:0x530 +fn_800F9298 = .text:0x800F9298; // type:function size:0x54 +fn_800F92EC = .text:0x800F92EC; // type:function size:0x28 +fn_800F9314 = .text:0x800F9314; // type:function size:0xD0 +fn_800F93E4 = .text:0x800F93E4; // type:function size:0x574 +fn_800F9958 = .text:0x800F9958; // type:function size:0x24 +fn_800F997C = .text:0x800F997C; // type:function size:0x30 +fn_800F99AC = .text:0x800F99AC; // type:function size:0x38 +fn_800F99E4 = .text:0x800F99E4; // type:function size:0x38 +fn_800F9A1C = .text:0x800F9A1C; // type:function size:0x48 +fn_800F9A64 = .text:0x800F9A64; // type:function size:0x38 +fn_800F9A9C = .text:0x800F9A9C; // type:function size:0x58 +fn_800F9AF4 = .text:0x800F9AF4; // type:function size:0x68 +fn_800F9B5C = .text:0x800F9B5C; // type:function size:0x84 +fn_800F9BE0 = .text:0x800F9BE0; // type:function size:0x1C +fn_800F9BFC = .text:0x800F9BFC; // type:function size:0x60 +fn_800F9C5C = .text:0x800F9C5C; // type:function size:0x60 +fn_800F9CBC = .text:0x800F9CBC; // type:function size:0x40 +fn_800F9CFC = .text:0x800F9CFC; // type:function size:0xE0 +fn_800F9DDC = .text:0x800F9DDC; // type:function size:0x40 +fn_800F9E1C = .text:0x800F9E1C; // type:function size:0x50 +fn_800F9E6C = .text:0x800F9E6C; // type:function size:0x60 +fn_800F9ECC = .text:0x800F9ECC; // type:function size:0x94 +fn_800F9F60 = .text:0x800F9F60; // type:function size:0xEC +fn_800FA04C = .text:0x800FA04C; // type:function size:0x158 +fn_800FA1A4 = .text:0x800FA1A4; // type:function size:0xA8 +fn_800FA24C = .text:0x800FA24C; // type:function size:0xF0 +fn_800FA33C = .text:0x800FA33C; // type:function size:0x20 +fn_800FA35C = .text:0x800FA35C; // type:function size:0x20 +fn_800FA37C = .text:0x800FA37C; // type:function size:0xBC +fn_800FA438 = .text:0x800FA438; // type:function size:0x8C +fn_800FA4C4 = .text:0x800FA4C4; // type:function size:0x8AC +fn_800FAD70 = .text:0x800FAD70; // type:function size:0x4 +fn_800FAD74 = .text:0x800FAD74; // type:function size:0x84 +fn_800FADF8 = .text:0x800FADF8; // type:function size:0x160 +fn_800FAF58 = .text:0x800FAF58; // type:function size:0x2C4 +fn_800FB21C = .text:0x800FB21C; // type:function size:0x34 +fn_800FB250 = .text:0x800FB250; // type:function size:0x44 +fn_800FB294 = .text:0x800FB294; // type:function size:0x130 +fn_800FB3C4 = .text:0x800FB3C4; // type:function size:0x458 +fn_800FB81C = .text:0x800FB81C; // type:function size:0x44 +fn_800FB860 = .text:0x800FB860; // type:function size:0x6E8 +fn_800FBF48 = .text:0x800FBF48; // type:function size:0x560 +fn_800FC4A8 = .text:0x800FC4A8; // type:function size:0x654 +fn_800FCAFC = .text:0x800FCAFC; // type:function size:0x6B8 +fn_800FD1B4 = .text:0x800FD1B4; // type:function size:0x634 +fn_800FD7E8 = .text:0x800FD7E8; // type:function size:0x700 +fn_800FDEE8 = .text:0x800FDEE8; // type:function size:0x1F0 +fn_800FE0D8 = .text:0x800FE0D8; // type:function size:0x17C +fn_800FE254 = .text:0x800FE254; // type:function size:0x248 +fn_800FE49C = .text:0x800FE49C; // type:function size:0x1C4 +fn_800FE660 = .text:0x800FE660; // type:function size:0x204 +fn_800FE864 = .text:0x800FE864; // type:function size:0x17C +fn_800FE9E0 = .text:0x800FE9E0; // type:function size:0x188 +fn_800FEB68 = .text:0x800FEB68; // type:function size:0x2C8 +fn_800FEE30 = .text:0x800FEE30; // type:function size:0xD8 +fn_800FEF08 = .text:0x800FEF08; // type:function size:0x98 +fn_800FEFA0 = .text:0x800FEFA0; // type:function size:0x11C +fn_800FF0BC = .text:0x800FF0BC; // type:function size:0x15C +fn_800FF218 = .text:0x800FF218; // type:function size:0x304 +fn_800FF51C = .text:0x800FF51C; // type:function size:0x284 +fn_800FF7A0 = .text:0x800FF7A0; // type:function size:0x10 +fn_800FF7B0 = .text:0x800FF7B0; // type:function size:0x8C +fn_800FF83C = .text:0x800FF83C; // type:function size:0x10 +fn_800FF84C = .text:0x800FF84C; // type:function size:0x128 +fn_800FF974 = .text:0x800FF974; // type:function size:0x10 +fn_800FF984 = .text:0x800FF984; // type:function size:0x5C +fn_800FF9E0 = .text:0x800FF9E0; // type:function size:0x5C +fn_800FFA3C = .text:0x800FFA3C; // type:function size:0x10 +fn_800FFA4C = .text:0x800FFA4C; // type:function size:0x7C +fn_800FFAC8 = .text:0x800FFAC8; // type:function size:0x10 +fn_800FFAD8 = .text:0x800FFAD8; // type:function size:0x9C +fn_800FFB74 = .text:0x800FFB74; // type:function size:0xE4 +fn_800FFC58 = .text:0x800FFC58; // type:function size:0x20 +fn_800FFC78 = .text:0x800FFC78; // type:function size:0x2F0 +fn_800FFF68 = .text:0x800FFF68; // type:function size:0xD0 +fn_80100038 = .text:0x80100038; // type:function size:0x154 +fn_8010018C = .text:0x8010018C; // type:function size:0x18C +fn_80100318 = .text:0x80100318; // type:function size:0xD8 +fn_801003F0 = .text:0x801003F0; // type:function size:0x1FC +fn_801005EC = .text:0x801005EC; // type:function size:0x17C +fn_80100768 = .text:0x80100768; // type:function size:0x1A0 +fn_80100908 = .text:0x80100908; // type:function size:0x258 +fn_80100B60 = .text:0x80100B60; // type:function size:0x12C +fn_80100C8C = .text:0x80100C8C; // type:function size:0x27C +fn_80100F08 = .text:0x80100F08; // type:function size:0x9C +fn_80100FA4 = .text:0x80100FA4; // type:function size:0x9C +fn_80101040 = .text:0x80101040; // type:function size:0x134 +fn_80101174 = .text:0x80101174; // type:function size:0x130 +fn_801012A4 = .text:0x801012A4; // type:function size:0x13C +fn_801013E0 = .text:0x801013E0; // type:function size:0x19C +fn_8010157C = .text:0x8010157C; // type:function size:0x104 +fn_80101680 = .text:0x80101680; // type:function size:0x104 +fn_80101784 = .text:0x80101784; // type:function size:0x104 +fn_80101888 = .text:0x80101888; // type:function size:0x104 +fn_8010198C = .text:0x8010198C; // type:function size:0x104 +fn_80101A90 = .text:0x80101A90; // type:function size:0x104 +fn_80101B94 = .text:0x80101B94; // type:function size:0x104 +fn_80101C98 = .text:0x80101C98; // type:function size:0x104 +fn_80101D9C = .text:0x80101D9C; // type:function size:0x104 +fn_80101EA0 = .text:0x80101EA0; // type:function size:0x104 +fn_80101FA4 = .text:0x80101FA4; // type:function size:0x104 +fn_801020A8 = .text:0x801020A8; // type:function size:0x104 +fn_801021AC = .text:0x801021AC; // type:function size:0x104 +fn_801022B0 = .text:0x801022B0; // type:function size:0x17C +fn_8010242C = .text:0x8010242C; // type:function size:0x17C +fn_801025A8 = .text:0x801025A8; // type:function size:0x164 +fn_8010270C = .text:0x8010270C; // type:function size:0x68 +fn_80102774 = .text:0x80102774; // type:function size:0x220 +fn_80102994 = .text:0x80102994; // type:function size:0x14C +fn_80102AE0 = .text:0x80102AE0; // type:function size:0xBC +fn_80102B9C = .text:0x80102B9C; // type:function size:0x244 +fn_80102DE0 = .text:0x80102DE0; // type:function size:0x80 +fn_80102E60 = .text:0x80102E60; // type:function size:0xDC +fn_80102F3C = .text:0x80102F3C; // type:function size:0xF58 +fn_80103E94 = .text:0x80103E94; // type:function size:0x150 +fn_80103FE4 = .text:0x80103FE4; // type:function size:0xAC +fn_80104090 = .text:0x80104090; // type:function size:0xF0 +fn_80104180 = .text:0x80104180; // type:function size:0x108 +fn_80104288 = .text:0x80104288; // type:function size:0xA4 +fn_8010432C = .text:0x8010432C; // type:function size:0x108 +fn_80104434 = .text:0x80104434; // type:function size:0xFC +fn_80104530 = .text:0x80104530; // type:function size:0x438 +fn_80104968 = .text:0x80104968; // type:function size:0x68 +fn_801049D0 = .text:0x801049D0; // type:function size:0xE0 +fn_80104AB0 = .text:0x80104AB0; // type:function size:0x350 +fn_80104E00 = .text:0x80104E00; // type:function size:0x14 +fn_80104E14 = .text:0x80104E14; // type:function size:0x104 +fn_80104F18 = .text:0x80104F18; // type:function size:0x50 +fn_80104F68 = .text:0x80104F68; // type:function size:0x24C +fn_801051B4 = .text:0x801051B4; // type:function size:0x460 +fn_80105614 = .text:0x80105614; // type:function size:0x1C4 +fn_801057D8 = .text:0x801057D8; // type:function size:0x2A0 +fn_80105A78 = .text:0x80105A78; // type:function size:0xFC +fn_80105B74 = .text:0x80105B74; // type:function size:0x218 +fn_80105D8C = .text:0x80105D8C; // type:function size:0x234 +fn_80105FC0 = .text:0x80105FC0; // type:function size:0xC4 +fn_80106084 = .text:0x80106084; // type:function size:0x15C +fn_801061E0 = .text:0x801061E0; // type:function size:0x74 +fn_80106254 = .text:0x80106254; // type:function size:0x54 +fn_801062A8 = .text:0x801062A8; // type:function size:0x74 +fn_8010631C = .text:0x8010631C; // type:function size:0x144 +fn_80106460 = .text:0x80106460; // type:function size:0x3C +fn_8010649C = .text:0x8010649C; // type:function size:0xE4 +fn_80106580 = .text:0x80106580; // type:function size:0x58 +fn_801065D8 = .text:0x801065D8; // type:function size:0x26C +fn_80106844 = .text:0x80106844; // type:function size:0x28 +fn_8010686C = .text:0x8010686C; // type:function size:0x150 +fn_801069BC = .text:0x801069BC; // type:function size:0x168 +fn_80106B24 = .text:0x80106B24; // type:function size:0x198 +fn_80106CBC = .text:0x80106CBC; // type:function size:0x84 +fn_80106D40 = .text:0x80106D40; // type:function size:0xBC +fn_80106DFC = .text:0x80106DFC; // type:function size:0x248 +fn_80107044 = .text:0x80107044; // type:function size:0xA8 +fn_801070EC = .text:0x801070EC; // type:function size:0x1F8 +fn_801072E4 = .text:0x801072E4; // type:function size:0x1E4 +fn_801074C8 = .text:0x801074C8; // type:function size:0xC +fn_801074D4 = .text:0x801074D4; // type:function size:0x27C +fn_80107750 = .text:0x80107750; // type:function size:0x32C +fn_80107A7C = .text:0x80107A7C; // type:function size:0x33C +fn_80107DB8 = .text:0x80107DB8; // type:function size:0x14C +fn_80107F04 = .text:0x80107F04; // type:function size:0x11C +fn_80108020 = .text:0x80108020; // type:function size:0x3B4 +fn_801083D4 = .text:0x801083D4; // type:function size:0x38 +fn_8010840C = .text:0x8010840C; // type:function size:0xE0 +fn_801084EC = .text:0x801084EC; // type:function size:0x150 +fn_8010863C = .text:0x8010863C; // type:function size:0x20 +fn_8010865C = .text:0x8010865C; // type:function size:0xF4 +fn_80108750 = .text:0x80108750; // type:function size:0x48 +fn_80108798 = .text:0x80108798; // type:function size:0x74 +fn_8010880C = .text:0x8010880C; // type:function size:0xAC +fn_801088B8 = .text:0x801088B8; // type:function size:0x2DC +fn_80108B94 = .text:0x80108B94; // type:function size:0x258 +fn_80108DEC = .text:0x80108DEC; // type:function size:0x21B8 +fn_8010AFA4 = .text:0x8010AFA4; // type:function size:0x44 +fn_8010AFE8 = .text:0x8010AFE8; // type:function size:0xA0 +fn_8010B088 = .text:0x8010B088; // type:function size:0x60 +fn_8010B0E8 = .text:0x8010B0E8; // type:function size:0xC8 +fn_8010B1B0 = .text:0x8010B1B0; // type:function size:0xA8 +fn_8010B258 = .text:0x8010B258; // type:function size:0x84 +fn_8010B2DC = .text:0x8010B2DC; // type:function size:0x158 +fn_8010B434 = .text:0x8010B434; // type:function size:0x6F0 +fn_8010BB24 = .text:0x8010BB24; // type:function size:0x4B4 +fn_8010BFD8 = .text:0x8010BFD8; // type:function size:0x51C +fn_8010C4F4 = .text:0x8010C4F4; // type:function size:0x130 +fn_8010C624 = .text:0x8010C624; // type:function size:0x20 +fn_8010C644 = .text:0x8010C644; // type:function size:0x3F8 +fn_8010CA3C = .text:0x8010CA3C; // type:function size:0x50 +fn_8010CA8C = .text:0x8010CA8C; // type:function size:0xA8 +fn_8010CB34 = .text:0x8010CB34; // type:function size:0x5C +fn_8010CB90 = .text:0x8010CB90; // type:function size:0xFC +fn_8010CC8C = .text:0x8010CC8C; // type:function size:0x204 +fn_8010CE90 = .text:0x8010CE90; // type:function size:0x230 +fn_8010D0C0 = .text:0x8010D0C0; // type:function size:0xD0 +fn_8010D190 = .text:0x8010D190; // type:function size:0x14C +fn_8010D2DC = .text:0x8010D2DC; // type:function size:0x3B0 +fn_8010D68C = .text:0x8010D68C; // type:function size:0x82C +fn_8010DEB8 = .text:0x8010DEB8; // type:function size:0x38 +fn_8010DEF0 = .text:0x8010DEF0; // type:function size:0x4 +fn_8010DEF4 = .text:0x8010DEF4; // type:function size:0x118 +fn_8010E00C = .text:0x8010E00C; // type:function size:0x34 +fn_8010E040 = .text:0x8010E040; // type:function size:0x8 +fn_8010E048 = .text:0x8010E048; // type:function size:0xAC +fn_8010E0F4 = .text:0x8010E0F4; // type:function size:0xB4 +fn_8010E1A8 = .text:0x8010E1A8; // type:function size:0x64 +fn_8010E20C = .text:0x8010E20C; // type:function size:0x1FC +fn_8010E408 = .text:0x8010E408; // type:function size:0x24 +fn_8010E42C = .text:0x8010E42C; // type:function size:0x608 +fn_8010EA34 = .text:0x8010EA34; // type:function size:0x124 +fn_8010EB58 = .text:0x8010EB58; // type:function size:0xF0 +fn_8010EC48 = .text:0x8010EC48; // type:function size:0x2C4 +fn_8010EF0C = .text:0x8010EF0C; // type:function size:0x34 +fn_8010EF40 = .text:0x8010EF40; // type:function size:0x3C +fn_8010EF7C = .text:0x8010EF7C; // type:function size:0x98 +fn_8010F014 = .text:0x8010F014; // type:function size:0x114 +fn_8010F128 = .text:0x8010F128; // type:function size:0x3C +fn_8010F164 = .text:0x8010F164; // type:function size:0x3C +fn_8010F1A0 = .text:0x8010F1A0; // type:function size:0x4A0 +fn_8010F640 = .text:0x8010F640; // type:function size:0x48 +fn_8010F688 = .text:0x8010F688; // type:function size:0x48 +fn_8010F6D0 = .text:0x8010F6D0; // type:function size:0x48 +fn_8010F718 = .text:0x8010F718; // type:function size:0x48 +fn_8010F760 = .text:0x8010F760; // type:function size:0x48 +fn_8010F7A8 = .text:0x8010F7A8; // type:function size:0x48 +fn_8010F7F0 = .text:0x8010F7F0; // type:function size:0x48 +fn_8010F838 = .text:0x8010F838; // type:function size:0x48 +fn_8010F880 = .text:0x8010F880; // type:function size:0x48 +fn_8010F8C8 = .text:0x8010F8C8; // type:function size:0x48 +fn_8010F910 = .text:0x8010F910; // type:function size:0x48 +fn_8010F958 = .text:0x8010F958; // type:function size:0x48 +fn_8010F9A0 = .text:0x8010F9A0; // type:function size:0xB4 +fn_8010FA54 = .text:0x8010FA54; // type:function size:0xB4 +fn_8010FB08 = .text:0x8010FB08; // type:function size:0x284 +fn_8010FD8C = .text:0x8010FD8C; // type:function size:0x70 +fn_8010FDFC = .text:0x8010FDFC; // type:function size:0xFC +fn_8010FEF8 = .text:0x8010FEF8; // type:function size:0x1E4 +fn_801100DC = .text:0x801100DC; // type:function size:0x1C +fn_801100F8 = .text:0x801100F8; // type:function size:0x8C +fn_80110184 = .text:0x80110184; // type:function size:0xA4 +fn_80110228 = .text:0x80110228; // type:function size:0x10 +fn_80110238 = .text:0x80110238; // type:function size:0x48 +fn_80110280 = .text:0x80110280; // type:function size:0x8 +fn_80110288 = .text:0x80110288; // type:function size:0x154 +fn_801103DC = .text:0x801103DC; // type:function size:0xB8 +fn_80110494 = .text:0x80110494; // type:function size:0x34 +fn_801104C8 = .text:0x801104C8; // type:function size:0x8 +fn_801104D0 = .text:0x801104D0; // type:function size:0x8 +fn_801104D8 = .text:0x801104D8; // type:function size:0x20 +fn_801104F8 = .text:0x801104F8; // type:function size:0x8 +fn_80110500 = .text:0x80110500; // type:function size:0x14 +fn_80110514 = .text:0x80110514; // type:function size:0x1B4 +fn_801106C8 = .text:0x801106C8; // type:function size:0x50 +fn_80110718 = .text:0x80110718; // type:function size:0x1AC +fn_801108C4 = .text:0x801108C4; // type:function size:0x20 +fn_801108E4 = .text:0x801108E4; // type:function size:0x14 +fn_801108F8 = .text:0x801108F8; // type:function size:0x14 +fn_8011090C = .text:0x8011090C; // type:function size:0x14 +fn_80110920 = .text:0x80110920; // type:function size:0x14 +fn_80110934 = .text:0x80110934; // type:function size:0x3C +fn_80110970 = .text:0x80110970; // type:function size:0x28 +fn_80110998 = .text:0x80110998; // type:function size:0x78 +fn_80110A10 = .text:0x80110A10; // type:function size:0x2C +fn_80110A3C = .text:0x80110A3C; // type:function size:0x2C +fn_80110A68 = .text:0x80110A68; // type:function size:0x5C +fn_80110AC4 = .text:0x80110AC4; // type:function size:0x2C0 +fn_80110D84 = .text:0x80110D84; // type:function size:0x2C +fn_80110DB0 = .text:0x80110DB0; // type:function size:0x28 +fn_80110DD8 = .text:0x80110DD8; // type:function size:0x20 +fn_80110DF8 = .text:0x80110DF8; // type:function size:0x20 +fn_80110E18 = .text:0x80110E18; // type:function size:0x34 +fn_80110E4C = .text:0x80110E4C; // type:function size:0x34 +fn_80110E80 = .text:0x80110E80; // type:function size:0x2C +fn_80110EAC = .text:0x80110EAC; // type:function size:0xA4 +fn_80110F50 = .text:0x80110F50; // type:function size:0x90 +fn_80110FE0 = .text:0x80110FE0; // type:function size:0x20 +fn_80111000 = .text:0x80111000; // type:function size:0x20 +fn_80111020 = .text:0x80111020; // type:function size:0x24 +fn_80111044 = .text:0x80111044; // type:function size:0x4 +fn_80111048 = .text:0x80111048; // type:function size:0x5C +fn_801110A4 = .text:0x801110A4; // type:function size:0x24 +fn_801110C8 = .text:0x801110C8; // type:function size:0x20 +fn_801110E8 = .text:0x801110E8; // type:function size:0x94 +fn_8011117C = .text:0x8011117C; // type:function size:0x84 +fn_80111200 = .text:0x80111200; // type:function size:0x20 +fn_80111220 = .text:0x80111220; // type:function size:0x4 +fn_80111224 = .text:0x80111224; // type:function size:0x14 +fn_80111238 = .text:0x80111238; // type:function size:0xC +fn_80111244 = .text:0x80111244; // type:function size:0x28 +fn_8011126C = .text:0x8011126C; // type:function size:0x20 +fn_8011128C = .text:0x8011128C; // type:function size:0xA0 +fn_8011132C = .text:0x8011132C; // type:function size:0x1DC +fn_80111508 = .text:0x80111508; // type:function size:0x18 +fn_80111520 = .text:0x80111520; // type:function size:0x2EC +fn_8011180C = .text:0x8011180C; // type:function size:0x4 +fn_80111810 = .text:0x80111810; // type:function size:0x20 +fn_80111830 = .text:0x80111830; // type:function size:0x3BC +fn_80111BEC = .text:0x80111BEC; // type:function size:0x18 +fn_80111C04 = .text:0x80111C04; // type:function size:0xC4 +fn_80111CC8 = .text:0x80111CC8; // type:function size:0x108 +fn_80111DD0 = .text:0x80111DD0; // type:function size:0x38 +fn_80111E08 = .text:0x80111E08; // type:function size:0xF8 +fn_80111F00 = .text:0x80111F00; // type:function size:0xA8 +fn_80111FA8 = .text:0x80111FA8; // type:function size:0x10 +fn_80111FB8 = .text:0x80111FB8; // type:function size:0x64 +fn_8011201C = .text:0x8011201C; // type:function size:0xC8 +fn_801120E4 = .text:0x801120E4; // type:function size:0x20 +fn_80112104 = .text:0x80112104; // type:function size:0x34 +fn_80112138 = .text:0x80112138; // type:function size:0x30 +fn_80112168 = .text:0x80112168; // type:function size:0xBC +fn_80112224 = .text:0x80112224; // type:function size:0x34 +fn_80112258 = .text:0x80112258; // type:function size:0x74 +fn_801122CC = .text:0x801122CC; // type:function size:0x4C +fn_80112318 = .text:0x80112318; // type:function size:0x2C +fn_80112344 = .text:0x80112344; // type:function size:0x4 +fn_80112348 = .text:0x80112348; // type:function size:0x38 +fn_80112380 = .text:0x80112380; // type:function size:0x38 +fn_801123B8 = .text:0x801123B8; // type:function size:0x20 +fn_801123D8 = .text:0x801123D8; // type:function size:0x20 +fn_801123F8 = .text:0x801123F8; // type:function size:0x28 +fn_80112420 = .text:0x80112420; // type:function size:0x2C +fn_8011244C = .text:0x8011244C; // type:function size:0x5C +fn_801124A8 = .text:0x801124A8; // type:function size:0x3C +fn_801124E4 = .text:0x801124E4; // type:function size:0x24 +fn_80112508 = .text:0x80112508; // type:function size:0x428 +fn_80112930 = .text:0x80112930; // type:function size:0x3B4 +fn_80112CE4 = .text:0x80112CE4; // type:function size:0x24 +fn_80112D08 = .text:0x80112D08; // type:function size:0xBC +fn_80112DC4 = .text:0x80112DC4; // type:function size:0x5C +fn_80112E20 = .text:0x80112E20; // type:function size:0x40 +fn_80112E60 = .text:0x80112E60; // type:function size:0x24 +fn_80112E84 = .text:0x80112E84; // type:function size:0x50C +fn_80113390 = .text:0x80113390; // type:function size:0x190 +fn_80113520 = .text:0x80113520; // type:function size:0x50C +fn_80113A2C = .text:0x80113A2C; // type:function size:0xE0 +fn_80113B0C = .text:0x80113B0C; // type:function size:0xBC +fn_80113BC8 = .text:0x80113BC8; // type:function size:0x168 +fn_80113D30 = .text:0x80113D30; // type:function size:0x1D0 +fn_80113F00 = .text:0x80113F00; // type:function size:0x28 +fn_80113F28 = .text:0x80113F28; // type:function size:0x4C +fn_80113F74 = .text:0x80113F74; // type:function size:0x198 +fn_8011410C = .text:0x8011410C; // type:function size:0x1EC +fn_801142F8 = .text:0x801142F8; // type:function size:0x2BC +fn_801145B4 = .text:0x801145B4; // type:function size:0x200 +fn_801147B4 = .text:0x801147B4; // type:function size:0x28 +DBClose = .text:0x801147DC; // type:function size:0x4 scope:global +DBOpen = .text:0x801147E0; // type:function size:0x4 scope:global +DBWrite = .text:0x801147E4; // type:function size:0x260 scope:global +DBRead = .text:0x80114A44; // type:function size:0x8C scope:global +DBQueryData = .text:0x80114AD0; // type:function size:0x9C scope:global +DBInitInterrupts = .text:0x80114B6C; // type:function size:0x54 scope:global +DBInitComm = .text:0x80114BC0; // type:function size:0x78 scope:global +fn_80114C38 = .text:0x80114C38; // type:function size:0x40 +fn_80114C78 = .text:0x80114C78; // type:function size:0x3C +fn_80114CB4 = .text:0x80114CB4; // type:function size:0xAC +fn_80114D60 = .text:0x80114D60; // type:function size:0xDC +fn_80114E3C = .text:0x80114E3C; // type:function size:0xDC +fn_80114F18 = .text:0x80114F18; // type:function size:0xAC +fn_80114FC4 = .text:0x80114FC4; // type:function size:0x298 +EXI2_Init = .text:0x8011525C; // type:function size:0x4 scope:global +EXI2_EnableInterrupts = .text:0x80115260; // type:function size:0x4 scope:global +EXI2_Poll = .text:0x80115264; // type:function size:0x8 scope:global +EXI2_ReadN = .text:0x8011526C; // type:function size:0x8 scope:global +EXI2_WriteN = .text:0x80115274; // type:function size:0x8 scope:global +EXI2_Reserve = .text:0x8011527C; // type:function size:0x4 scope:global +EXI2_Unreserve = .text:0x80115280; // type:function size:0x4 scope:global +AMC_IsStub = .text:0x80115284; // type:function size:0x8 scope:global +Hu_IsStub = .text:0x8011528C; // type:function size:0x8 scope:weak +HuSetVecF = .text:0x80115294; // type:function size:0x10 +HuSubVecF = .text:0x801152A4; // type:function size:0x34 +fn_801152D8 = .text:0x801152D8; // type:function size:0x6C +fn_80115344 = .text:0x80115344; // type:function size:0x27C +fn_801155C0 = .text:0x801155C0; // type:function size:0x15C +fn_8011571C = .text:0x8011571C; // type:function size:0xB4 +fn_801157D0 = .text:0x801157D0; // type:function size:0x31C +fn_80115AEC = .text:0x80115AEC; // type:function size:0x48 +fn_80115B34 = .text:0x80115B34; // type:function size:0x48 +fn_80115B7C = .text:0x80115B7C; // type:function size:0x68 +fn_80115BE4 = .text:0x80115BE4; // type:function size:0xD8 +fn_80115CBC = .text:0x80115CBC; // type:function size:0xFC +msmSysRegularProc = .text:0x80115DB8; // type:function size:0x4 +msmSysGetOutputMode = .text:0x80115DBC; // type:function size:0x14 +msmSysSetOutputMode = .text:0x80115DD0; // type:function size:0xD8 +msmSysSetAux = .text:0x80115EA8; // type:function size:0x114 +msmSysGetSampSize = .text:0x80115FBC; // type:function size:0x28 +msmSysDelGroupAll = .text:0x80115FE4; // type:function size:0x140 +msmSysDelGroupBase = .text:0x80116124; // type:function size:0x28C +msmSysLoadGroupBase = .text:0x801163B0; // type:function size:0x298 +msmSysLoadGroupSet = .text:0x80116648; // type:function size:0x3F0 +fn_80116A38 = .text:0x80116A38; // type:function size:0x3B4 +msmSysLoadGroup = .text:0x80116DEC; // type:function size:0x278 +msmSysCheckInit = .text:0x80117064; // type:function size:0x20 +msmSysInit = .text:0x80117084; // type:function size:0x474 +fn_801174F8 = .text:0x801174F8; // type:function size:0xC8 +fn_801175C0 = .text:0x801175C0; // type:function size:0x104 +fn_801176C4 = .text:0x801176C4; // type:function size:0x64 +fn_80117728 = .text:0x80117728; // type:function size:0x30 +fn_80117758 = .text:0x80117758; // type:function size:0x34 +fn_8011778C = .text:0x8011778C; // type:function size:0x2C +fn_801177B8 = .text:0x801177B8; // type:function size:0x60 +fn_80117818 = .text:0x80117818; // type:function size:0x154 +fn_8011796C = .text:0x8011796C; // type:function size:0x174 +fn_80117AE0 = .text:0x80117AE0; // type:function size:0x1BC +msmMusFdoutEnd = .text:0x80117C9C; // type:function size:0x4 +msmMusPeriodicProc = .text:0x80117CA0; // type:function size:0x1CC +msmMusGetMidiCtrl = .text:0x80117E6C; // type:function size:0x9C +msmMusGetNumPlay = .text:0x80117F08; // type:function size:0x38 +msmMusGetStatus = .text:0x80117F40; // type:function size:0x3C +msmMusSetMasterVolume = .text:0x80117F7C; // type:function size:0x30 +msmMusSetParam = .text:0x80117FAC; // type:function size:0x16C +msmMusPauseAll = .text:0x80118118; // type:function size:0x88 +msmMusPause = .text:0x801181A0; // type:function size:0x74 +msmMusStopAll = .text:0x80118214; // type:function size:0x134 +msmMusStop = .text:0x80118348; // type:function size:0xCC +msmMusPlay = .text:0x80118414; // type:function size:0x328 +msmMusInit = .text:0x8011873C; // type:function size:0x174 +fn_801188B0 = .text:0x801188B0; // type:function size:0x250 +fn_80118B00 = .text:0x80118B00; // type:function size:0x184 +msmSePeriodicProc = .text:0x80118C84; // type:function size:0x270 +msmSeGetIndexPtr = .text:0x80118EF4; // type:function size:0x30 +msmSeDelListener = .text:0x80118F24; // type:function size:0x4C +msmSeUpdataListener = .text:0x80118F70; // type:function size:0xD8 +msmSeSetListener = .text:0x80119048; // type:function size:0x13C +msmSeGetEntryID = .text:0x80119184; // type:function size:0x74 +msmSeGetNumPlay = .text:0x801191F8; // type:function size:0x38 +msmSeGetStatus = .text:0x80119230; // type:function size:0x60 +msmSeSetMasterVolume = .text:0x80119290; // type:function size:0x30 +msmSeSetParam = .text:0x801192C0; // type:function size:0x320 +msmSePauseAll = .text:0x801195E0; // type:function size:0x80 +msmSeStopAll = .text:0x80119660; // type:function size:0x168 +msmSeStop = .text:0x801197C8; // type:function size:0xFC +msmSePlay = .text:0x801198C4; // type:function size:0x480 +msmSeInit = .text:0x80119D44; // type:function size:0x130 +msmStreamGetStatus = .text:0x80119E74; // type:function size:0xC8 +msmStreamSetMasterVolume = .text:0x80119F3C; // type:function size:0x118 +msmStreamStopAll = .text:0x8011A054; // type:function size:0xE0 +msmStreamStop = .text:0x8011A134; // type:function size:0x204 +msmStreamPlay = .text:0x8011A338; // type:function size:0x88 +msmStreamPeriodicProc = .text:0x8011A3C0; // type:function size:0x8C +msmStreamSetOutputMode = .text:0x8011A44C; // type:function size:0x114 +msmStreamAmemFree = .text:0x8011A560; // type:function size:0x68 +msmStreamAmemAlloc = .text:0x8011A5C8; // type:function size:0x10C +msmStreamInit = .text:0x8011A6D4; // type:function size:0x2A8 +msmStreamPauseOff = .text:0x8011A97C; // type:function size:0x2B8 +msmStreamPauseOn = .text:0x8011AC34; // type:function size:0x1AC +fn_8011ADE0 = .text:0x8011ADE0; // type:function size:0x2E8 +fn_8011B0C8 = .text:0x8011B0C8; // type:function size:0x33C +fn_8011B404 = .text:0x8011B404; // type:function size:0x13C +fn_8011B540 = .text:0x8011B540; // type:function size:0xE0 +fn_8011B620 = .text:0x8011B620; // type:function size:0x448 +fn_8011BA68 = .text:0x8011BA68; // type:function size:0x2DC +fn_8011BD44 = .text:0x8011BD44; // type:function size:0xD0 +fn_8011BE14 = .text:0x8011BE14; // type:function size:0x320 +fn_8011C134 = .text:0x8011C134; // type:function size:0x4A8 +fn_8011C5DC = .text:0x8011C5DC; // type:function size:0x188 +fn_8011C764 = .text:0x8011C764; // type:function size:0x17C +fn_8011C8E0 = .text:0x8011C8E0; // type:function size:0x214 +fn_8011CAF4 = .text:0x8011CAF4; // type:function size:0x4 +fn_8011CAF8 = .text:0x8011CAF8; // type:function size:0x4 +fn_8011CAFC = .text:0x8011CAFC; // type:function size:0x4 +fn_8011CB00 = .text:0x8011CB00; // type:function size:0x4 +fn_8011CB04 = .text:0x8011CB04; // type:function size:0x4 +fn_8011CB08 = .text:0x8011CB08; // type:function size:0x4 +fn_8011CB0C = .text:0x8011CB0C; // type:function size:0x4 +fn_8011CB10 = .text:0x8011CB10; // type:function size:0x4 +fn_8011CB14 = .text:0x8011CB14; // type:function size:0x4 +fn_8011CB18 = .text:0x8011CB18; // type:function size:0x4 +fn_8011CB1C = .text:0x8011CB1C; // type:function size:0x4 +fn_8011CB20 = .text:0x8011CB20; // type:function size:0x4 +fn_8011CB24 = .text:0x8011CB24; // type:function size:0x4 +fn_8011CB28 = .text:0x8011CB28; // type:function size:0x4 +fn_8011CB2C = .text:0x8011CB2C; // type:function size:0x4 +fn_8011CB30 = .text:0x8011CB30; // type:function size:0x4 +fn_8011CB34 = .text:0x8011CB34; // type:function size:0x4 +fn_8011CB38 = .text:0x8011CB38; // type:function size:0x4 +fn_8011CB3C = .text:0x8011CB3C; // type:function size:0x4 +fn_8011CB40 = .text:0x8011CB40; // type:function size:0x4 +fn_8011CB44 = .text:0x8011CB44; // type:function size:0x4 +fn_8011CB48 = .text:0x8011CB48; // type:function size:0x4 +fn_8011CB4C = .text:0x8011CB4C; // type:function size:0x4 +fn_8011CB50 = .text:0x8011CB50; // type:function size:0x4 +fn_8011CB54 = .text:0x8011CB54; // type:function size:0x4 +fn_8011CB58 = .text:0x8011CB58; // type:function size:0x4 +fn_8011CB5C = .text:0x8011CB5C; // type:function size:0x4 +fn_8011CB60 = .text:0x8011CB60; // type:function size:0x4 +fn_8011CB64 = .text:0x8011CB64; // type:function size:0x4 +fn_8011CB68 = .text:0x8011CB68; // type:function size:0x4 +fn_8011CB6C = .text:0x8011CB6C; // type:function size:0x4 +fn_8011CB70 = .text:0x8011CB70; // type:function size:0x4 +fn_8011CB74 = .text:0x8011CB74; // type:function size:0x4 +fn_8011CB78 = .text:0x8011CB78; // type:function size:0x4 +fn_8011CB7C = .text:0x8011CB7C; // type:function size:0x4 +fn_8011CB80 = .text:0x8011CB80; // type:function size:0x4 +fn_8011CB84 = .text:0x8011CB84; // type:function size:0x4 +fn_8011CB88 = .text:0x8011CB88; // type:function size:0x4 +fn_8011CB8C = .text:0x8011CB8C; // type:function size:0x4 +fn_8011CB90 = .text:0x8011CB90; // type:function size:0x4 +fn_8011CB94 = .text:0x8011CB94; // type:function size:0x4 +fn_8011CB98 = .text:0x8011CB98; // type:function size:0x4 +fn_8011CB9C = .text:0x8011CB9C; // type:function size:0x4 +fn_8011CBA0 = .text:0x8011CBA0; // type:function size:0x4 +fn_8011CBA4 = .text:0x8011CBA4; // type:function size:0x4 +fn_8011CBA8 = .text:0x8011CBA8; // type:function size:0x4 +fn_8011CBAC = .text:0x8011CBAC; // type:function size:0x4 +fn_8011CBB0 = .text:0x8011CBB0; // type:function size:0x4 +fn_8011CBB4 = .text:0x8011CBB4; // type:function size:0x4 +fn_8011CBB8 = .text:0x8011CBB8; // type:function size:0x4 +fn_8011CBBC = .text:0x8011CBBC; // type:function size:0x4 +fn_8011CBC0 = .text:0x8011CBC0; // type:function size:0x4 +fn_8011CBC4 = .text:0x8011CBC4; // type:function size:0x4 +fn_8011CBC8 = .text:0x8011CBC8; // type:function size:0x4 +fn_8011CBCC = .text:0x8011CBCC; // type:function size:0x4 +fn_8011CBD0 = .text:0x8011CBD0; // type:function size:0x4 +fn_8011CBD4 = .text:0x8011CBD4; // type:function size:0x4 +fn_8011CBD8 = .text:0x8011CBD8; // type:function size:0x4 +fn_8011CBDC = .text:0x8011CBDC; // type:function size:0x4 +fn_8011CBE0 = .text:0x8011CBE0; // type:function size:0x4 +fn_8011CBE4 = .text:0x8011CBE4; // type:function size:0x4 +fn_8011CBE8 = .text:0x8011CBE8; // type:function size:0x4 +fn_8011CBEC = .text:0x8011CBEC; // type:function size:0x4 +fn_8011CBF0 = .text:0x8011CBF0; // type:function size:0x4 +fn_8011CBF4 = .text:0x8011CBF4; // type:function size:0x4 +fn_8011CBF8 = .text:0x8011CBF8; // type:function size:0x4 +fn_8011CBFC = .text:0x8011CBFC; // type:function size:0x4 +fn_8011CC00 = .text:0x8011CC00; // type:function size:0x4 +fn_8011CC04 = .text:0x8011CC04; // type:function size:0x4 +fn_8011CC08 = .text:0x8011CC08; // type:function size:0x4 +fn_8011CC0C = .text:0x8011CC0C; // type:function size:0x4 +fn_8011CC10 = .text:0x8011CC10; // type:function size:0x4 +fn_8011CC14 = .text:0x8011CC14; // type:function size:0x4 +fn_8011CC18 = .text:0x8011CC18; // type:function size:0x4 +fn_8011CC1C = .text:0x8011CC1C; // type:function size:0x4 +fn_8011CC20 = .text:0x8011CC20; // type:function size:0x4 +fn_8011CC24 = .text:0x8011CC24; // type:function size:0x4 +fn_8011CC28 = .text:0x8011CC28; // type:function size:0x4 +fn_8011CC2C = .text:0x8011CC2C; // type:function size:0x4 +fn_8011CC30 = .text:0x8011CC30; // type:function size:0x4 +fn_8011CC34 = .text:0x8011CC34; // type:function size:0x4 +fn_8011CC38 = .text:0x8011CC38; // type:function size:0x4 +fn_8011CC3C = .text:0x8011CC3C; // type:function size:0x4 +fn_8011CC40 = .text:0x8011CC40; // type:function size:0x4 +fn_8011CC44 = .text:0x8011CC44; // type:function size:0x4 +fn_8011CC48 = .text:0x8011CC48; // type:function size:0x4 +fn_8011CC4C = .text:0x8011CC4C; // type:function size:0x4 +fn_8011CC50 = .text:0x8011CC50; // type:function size:0x4 +fn_8011CC54 = .text:0x8011CC54; // type:function size:0x4 +fn_8011CC58 = .text:0x8011CC58; // type:function size:0x4 +fn_8011CC5C = .text:0x8011CC5C; // type:function size:0x4 +fn_8011CC60 = .text:0x8011CC60; // type:function size:0x4 +fn_8011CC64 = .text:0x8011CC64; // type:function size:0x4 +fn_8011CC68 = .text:0x8011CC68; // type:function size:0x4 +fn_8011CC6C = .text:0x8011CC6C; // type:function size:0x4 +fn_8011CC70 = .text:0x8011CC70; // type:function size:0x4 +fn_8011CC74 = .text:0x8011CC74; // type:function size:0x4 +fn_8011CC78 = .text:0x8011CC78; // type:function size:0x4 +fn_8011CC7C = .text:0x8011CC7C; // type:function size:0x4 +fn_8011CC80 = .text:0x8011CC80; // type:function size:0x4 +fn_8011CC84 = .text:0x8011CC84; // type:function size:0x4 +fn_8011CC88 = .text:0x8011CC88; // type:function size:0x4 +fn_8011CC8C = .text:0x8011CC8C; // type:function size:0x4 +fn_8011CC90 = .text:0x8011CC90; // type:function size:0x4 +fn_8011CC94 = .text:0x8011CC94; // type:function size:0x4 +fn_8011CC98 = .text:0x8011CC98; // type:function size:0x4 +fn_8011CC9C = .text:0x8011CC9C; // type:function size:0x4 +fn_8011CCA0 = .text:0x8011CCA0; // type:function size:0x4 +fn_8011CCA4 = .text:0x8011CCA4; // type:function size:0x4 +fn_8011CCA8 = .text:0x8011CCA8; // type:function size:0x4 +fn_8011CCAC = .text:0x8011CCAC; // type:function size:0x4 +fn_8011CCB0 = .text:0x8011CCB0; // type:function size:0x4 +fn_8011CCB4 = .text:0x8011CCB4; // type:function size:0x4 +fn_8011CCB8 = .text:0x8011CCB8; // type:function size:0x4 +fn_8011CCBC = .text:0x8011CCBC; // type:function size:0x4 +fn_8011CCC0 = .text:0x8011CCC0; // type:function size:0x4 +fn_8011CCC4 = .text:0x8011CCC4; // type:function size:0x4 +fn_8011CCC8 = .text:0x8011CCC8; // type:function size:0x4 +fn_8011CCCC = .text:0x8011CCCC; // type:function size:0x4 +fn_8011CCD0 = .text:0x8011CCD0; // type:function size:0x4 +fn_8011CCD4 = .text:0x8011CCD4; // type:function size:0x4 +fn_8011CCD8 = .text:0x8011CCD8; // type:function size:0x4 +fn_8011CCDC = .text:0x8011CCDC; // type:function size:0x4 +fn_8011CCE0 = .text:0x8011CCE0; // type:function size:0x4 +fn_8011CCE4 = .text:0x8011CCE4; // type:function size:0x4 +fn_8011CCE8 = .text:0x8011CCE8; // type:function size:0x4 +fn_8011CCEC = .text:0x8011CCEC; // type:function size:0x4 +fn_8011CCF0 = .text:0x8011CCF0; // type:function size:0x4 +fn_8011CCF4 = .text:0x8011CCF4; // type:function size:0x4 +fn_8011CCF8 = .text:0x8011CCF8; // type:function size:0x4 +fn_8011CCFC = .text:0x8011CCFC; // type:function size:0x4 +fn_8011CD00 = .text:0x8011CD00; // type:function size:0x4 +fn_8011CD04 = .text:0x8011CD04; // type:function size:0x4 +fn_8011CD08 = .text:0x8011CD08; // type:function size:0x4 +fn_8011CD0C = .text:0x8011CD0C; // type:function size:0x4 +fn_8011CD10 = .text:0x8011CD10; // type:function size:0x4 +fn_8011CD14 = .text:0x8011CD14; // type:function size:0x4 +fn_8011CD18 = .text:0x8011CD18; // type:function size:0x4 +fn_8011CD1C = .text:0x8011CD1C; // type:function size:0x4 +fn_8011CD20 = .text:0x8011CD20; // type:function size:0x4 +fn_8011CD24 = .text:0x8011CD24; // type:function size:0x4 +fn_8011CD28 = .text:0x8011CD28; // type:function size:0x4 +fn_8011CD2C = .text:0x8011CD2C; // type:function size:0x4 +fn_8011CD30 = .text:0x8011CD30; // type:function size:0x4 +fn_8011CD34 = .text:0x8011CD34; // type:function size:0x4 +fn_8011CD38 = .text:0x8011CD38; // type:function size:0x4 +fn_8011CD3C = .text:0x8011CD3C; // type:function size:0x4 +fn_8011CD40 = .text:0x8011CD40; // type:function size:0x4 +fn_8011CD44 = .text:0x8011CD44; // type:function size:0x4 +fn_8011CD48 = .text:0x8011CD48; // type:function size:0x4 +fn_8011CD4C = .text:0x8011CD4C; // type:function size:0x4 +fn_8011CD50 = .text:0x8011CD50; // type:function size:0x4 +fn_8011CD54 = .text:0x8011CD54; // type:function size:0x4 +fn_8011CD58 = .text:0x8011CD58; // type:function size:0x4 +fn_8011CD5C = .text:0x8011CD5C; // type:function size:0x4 +fn_8011CD60 = .text:0x8011CD60; // type:function size:0x4 +fn_8011CD64 = .text:0x8011CD64; // type:function size:0x4 +fn_8011CD68 = .text:0x8011CD68; // type:function size:0x4 +fn_8011CD6C = .text:0x8011CD6C; // type:function size:0x4 +fn_8011CD70 = .text:0x8011CD70; // type:function size:0x4 +fn_8011CD74 = .text:0x8011CD74; // type:function size:0x4 +fn_8011CD78 = .text:0x8011CD78; // type:function size:0x4 +fn_8011CD7C = .text:0x8011CD7C; // type:function size:0x4 +fn_8011CD80 = .text:0x8011CD80; // type:function size:0x4 +fn_8011CD84 = .text:0x8011CD84; // type:function size:0x4 +fn_8011CD88 = .text:0x8011CD88; // type:function size:0x4 +fn_8011CD8C = .text:0x8011CD8C; // type:function size:0x4 +fn_8011CD90 = .text:0x8011CD90; // type:function size:0x4 +fn_8011CD94 = .text:0x8011CD94; // type:function size:0x4 +fn_8011CD98 = .text:0x8011CD98; // type:function size:0x4 +fn_8011CD9C = .text:0x8011CD9C; // type:function size:0x4 +fn_8011CDA0 = .text:0x8011CDA0; // type:function size:0x4 +fn_8011CDA4 = .text:0x8011CDA4; // type:function size:0x4 +fn_8011CDA8 = .text:0x8011CDA8; // type:function size:0x4 +fn_8011CDAC = .text:0x8011CDAC; // type:function size:0x4 +fn_8011CDB0 = .text:0x8011CDB0; // type:function size:0x4 +fn_8011CDB4 = .text:0x8011CDB4; // type:function size:0x4 +fn_8011CDB8 = .text:0x8011CDB8; // type:function size:0x4 +fn_8011CDBC = .text:0x8011CDBC; // type:function size:0x4 +fn_8011CDC0 = .text:0x8011CDC0; // type:function size:0x4 +fn_8011CDC4 = .text:0x8011CDC4; // type:function size:0x4 +fn_8011CDC8 = .text:0x8011CDC8; // type:function size:0x4 +fn_8011CDCC = .text:0x8011CDCC; // type:function size:0x4 +fn_8011CDD0 = .text:0x8011CDD0; // type:function size:0x4 +fn_8011CDD4 = .text:0x8011CDD4; // type:function size:0x4 +fn_8011CDD8 = .text:0x8011CDD8; // type:function size:0x4 +fn_8011CDDC = .text:0x8011CDDC; // type:function size:0x4 +fn_8011CDE0 = .text:0x8011CDE0; // type:function size:0x4 +fn_8011CDE4 = .text:0x8011CDE4; // type:function size:0x4 +fn_8011CDE8 = .text:0x8011CDE8; // type:function size:0x4 +fn_8011CDEC = .text:0x8011CDEC; // type:function size:0x4 +fn_8011CDF0 = .text:0x8011CDF0; // type:function size:0x4 +fn_8011CDF4 = .text:0x8011CDF4; // type:function size:0x4 +fn_8011CDF8 = .text:0x8011CDF8; // type:function size:0x4 +fn_8011CDFC = .text:0x8011CDFC; // type:function size:0x4 +fn_8011CE00 = .text:0x8011CE00; // type:function size:0x4 +fn_8011CE04 = .text:0x8011CE04; // type:function size:0x4 +fn_8011CE08 = .text:0x8011CE08; // type:function size:0x4 +fn_8011CE0C = .text:0x8011CE0C; // type:function size:0x4 +fn_8011CE10 = .text:0x8011CE10; // type:function size:0x4 +fn_8011CE14 = .text:0x8011CE14; // type:function size:0x4 +fn_8011CE18 = .text:0x8011CE18; // type:function size:0x4 +fn_8011CE1C = .text:0x8011CE1C; // type:function size:0x4 +fn_8011CE20 = .text:0x8011CE20; // type:function size:0x4 +fn_8011CE24 = .text:0x8011CE24; // type:function size:0x4 +fn_8011CE28 = .text:0x8011CE28; // type:function size:0x4 +fn_8011CE2C = .text:0x8011CE2C; // type:function size:0x4 +fn_8011CE30 = .text:0x8011CE30; // type:function size:0x4 +fn_8011CE34 = .text:0x8011CE34; // type:function size:0x4 +fn_8011CE38 = .text:0x8011CE38; // type:function size:0x4 +fn_8011CE3C = .text:0x8011CE3C; // type:function size:0x4 +fn_8011CE40 = .text:0x8011CE40; // type:function size:0x4 +fn_8011CE44 = .text:0x8011CE44; // type:function size:0x4 +fn_8011CE48 = .text:0x8011CE48; // type:function size:0x4 +fn_8011CE4C = .text:0x8011CE4C; // type:function size:0x4 +fn_8011CE50 = .text:0x8011CE50; // type:function size:0x4 +fn_8011CE54 = .text:0x8011CE54; // type:function size:0x4 +fn_8011CE58 = .text:0x8011CE58; // type:function size:0x4 +fn_8011CE5C = .text:0x8011CE5C; // type:function size:0x4 +fn_8011CE60 = .text:0x8011CE60; // type:function size:0x4 +fn_8011CE64 = .text:0x8011CE64; // type:function size:0x4 +fn_8011CE68 = .text:0x8011CE68; // type:function size:0x4 +fn_8011CE6C = .text:0x8011CE6C; // type:function size:0x4 +fn_8011CE70 = .text:0x8011CE70; // type:function size:0x4 +fn_8011CE74 = .text:0x8011CE74; // type:function size:0x4 +fn_8011CE78 = .text:0x8011CE78; // type:function size:0x4 +fn_8011CE7C = .text:0x8011CE7C; // type:function size:0x4 +fn_8011CE80 = .text:0x8011CE80; // type:function size:0x4 +fn_8011CE84 = .text:0x8011CE84; // type:function size:0x4 +fn_8011CE88 = .text:0x8011CE88; // type:function size:0x4 +fn_8011CE8C = .text:0x8011CE8C; // type:function size:0x4 +fn_8011CE90 = .text:0x8011CE90; // type:function size:0x4 +fn_8011CE94 = .text:0x8011CE94; // type:function size:0x4 +fn_8011CE98 = .text:0x8011CE98; // type:function size:0x4 +fn_8011CE9C = .text:0x8011CE9C; // type:function size:0x4 +fn_8011CEA0 = .text:0x8011CEA0; // type:function size:0x4 +fn_8011CEA4 = .text:0x8011CEA4; // type:function size:0x4 +fn_8011CEA8 = .text:0x8011CEA8; // type:function size:0x4 +fn_8011CEAC = .text:0x8011CEAC; // type:function size:0x4 +fn_8011CEB0 = .text:0x8011CEB0; // type:function size:0x4 +fn_8011CEB4 = .text:0x8011CEB4; // type:function size:0x4 +fn_8011CEB8 = .text:0x8011CEB8; // type:function size:0x4 +fn_8011CEBC = .text:0x8011CEBC; // type:function size:0x4 +fn_8011CEC0 = .text:0x8011CEC0; // type:function size:0x4 +fn_8011CEC4 = .text:0x8011CEC4; // type:function size:0x4 +fn_8011CEC8 = .text:0x8011CEC8; // type:function size:0x4 +fn_8011CECC = .text:0x8011CECC; // type:function size:0x4 +fn_8011CED0 = .text:0x8011CED0; // type:function size:0x4 +fn_8011CED4 = .text:0x8011CED4; // type:function size:0x4 +fn_8011CED8 = .text:0x8011CED8; // type:function size:0x4 +fn_8011CEDC = .text:0x8011CEDC; // type:function size:0x4 +fn_8011CEE0 = .text:0x8011CEE0; // type:function size:0x4 +fn_8011CEE4 = .text:0x8011CEE4; // type:function size:0x4 +fn_8011CEE8 = .text:0x8011CEE8; // type:function size:0x4 +fn_8011CEEC = .text:0x8011CEEC; // type:function size:0x4 +fn_8011CEF0 = .text:0x8011CEF0; // type:function size:0x4 +fn_8011CEF4 = .text:0x8011CEF4; // type:function size:0x4 +fn_8011CEF8 = .text:0x8011CEF8; // type:function size:0x4 +fn_8011CEFC = .text:0x8011CEFC; // type:function size:0x4 +fn_8011CF00 = .text:0x8011CF00; // type:function size:0x4 +fn_8011CF04 = .text:0x8011CF04; // type:function size:0x4 +fn_8011CF08 = .text:0x8011CF08; // type:function size:0x4 +fn_8011CF0C = .text:0x8011CF0C; // type:function size:0x4 +fn_8011CF10 = .text:0x8011CF10; // type:function size:0x4 +fn_8011CF14 = .text:0x8011CF14; // type:function size:0x4 +fn_8011CF18 = .text:0x8011CF18; // type:function size:0x4 +fn_8011CF1C = .text:0x8011CF1C; // type:function size:0x4 +fn_8011CF20 = .text:0x8011CF20; // type:function size:0x4 +fn_8011CF24 = .text:0x8011CF24; // type:function size:0x4 +fn_8011CF28 = .text:0x8011CF28; // type:function size:0x4 +fn_8011CF2C = .text:0x8011CF2C; // type:function size:0x4 +fn_8011CF30 = .text:0x8011CF30; // type:function size:0x4 +fn_8011CF34 = .text:0x8011CF34; // type:function size:0x4 +fn_8011CF38 = .text:0x8011CF38; // type:function size:0x4 +fn_8011CF3C = .text:0x8011CF3C; // type:function size:0x4 +fn_8011CF40 = .text:0x8011CF40; // type:function size:0x4 +fn_8011CF44 = .text:0x8011CF44; // type:function size:0x4 +fn_8011CF48 = .text:0x8011CF48; // type:function size:0x4 +fn_8011CF4C = .text:0x8011CF4C; // type:function size:0x4 +fn_8011CF50 = .text:0x8011CF50; // type:function size:0x4 +fn_8011CF54 = .text:0x8011CF54; // type:function size:0x4 +fn_8011CF58 = .text:0x8011CF58; // type:function size:0x4 +fn_8011CF5C = .text:0x8011CF5C; // type:function size:0x4 +fn_8011CF60 = .text:0x8011CF60; // type:function size:0x4 +fn_8011CF64 = .text:0x8011CF64; // type:function size:0x4 +fn_8011CF68 = .text:0x8011CF68; // type:function size:0x4 +fn_8011CF6C = .text:0x8011CF6C; // type:function size:0x4 +fn_8011CF70 = .text:0x8011CF70; // type:function size:0x4 +fn_8011CF74 = .text:0x8011CF74; // type:function size:0x4 +fn_8011CF78 = .text:0x8011CF78; // type:function size:0x4 +fn_8011CF7C = .text:0x8011CF7C; // type:function size:0x4 +fn_8011CF80 = .text:0x8011CF80; // type:function size:0x4 +fn_8011CF84 = .text:0x8011CF84; // type:function size:0x4 +fn_8011CF88 = .text:0x8011CF88; // type:function size:0x4 +fn_8011CF8C = .text:0x8011CF8C; // type:function size:0x4 +fn_8011CF90 = .text:0x8011CF90; // type:function size:0x4 +fn_8011CF94 = .text:0x8011CF94; // type:function size:0x4 +fn_8011CF98 = .text:0x8011CF98; // type:function size:0x4 +fn_8011CF9C = .text:0x8011CF9C; // type:function size:0x4 +fn_8011CFA0 = .text:0x8011CFA0; // type:function size:0x4 +fn_8011CFA4 = .text:0x8011CFA4; // type:function size:0x4 +fn_8011CFA8 = .text:0x8011CFA8; // type:function size:0x4 +fn_8011CFAC = .text:0x8011CFAC; // type:function size:0x4 +fn_8011CFB0 = .text:0x8011CFB0; // type:function size:0x4 +fn_8011CFB4 = .text:0x8011CFB4; // type:function size:0x4 +fn_8011CFB8 = .text:0x8011CFB8; // type:function size:0x4 +fn_8011CFBC = .text:0x8011CFBC; // type:function size:0x4 +fn_8011CFC0 = .text:0x8011CFC0; // type:function size:0x4 +fn_8011CFC4 = .text:0x8011CFC4; // type:function size:0x4 +fn_8011CFC8 = .text:0x8011CFC8; // type:function size:0x4 +fn_8011CFCC = .text:0x8011CFCC; // type:function size:0x4 +fn_8011CFD0 = .text:0x8011CFD0; // type:function size:0x4 +fn_8011CFD4 = .text:0x8011CFD4; // type:function size:0x4 +fn_8011CFD8 = .text:0x8011CFD8; // type:function size:0x4 +fn_8011CFDC = .text:0x8011CFDC; // type:function size:0x4 +fn_8011CFE0 = .text:0x8011CFE0; // type:function size:0x4 +fn_8011CFE4 = .text:0x8011CFE4; // type:function size:0x4 +fn_8011CFE8 = .text:0x8011CFE8; // type:function size:0x4 +fn_8011CFEC = .text:0x8011CFEC; // type:function size:0x4 +fn_8011CFF0 = .text:0x8011CFF0; // type:function size:0x4 +fn_8011CFF4 = .text:0x8011CFF4; // type:function size:0x4 +fn_8011CFF8 = .text:0x8011CFF8; // type:function size:0x4 +fn_8011CFFC = .text:0x8011CFFC; // type:function size:0x4 +fn_8011D000 = .text:0x8011D000; // type:function size:0x4 +fn_8011D004 = .text:0x8011D004; // type:function size:0x4 +fn_8011D008 = .text:0x8011D008; // type:function size:0x4 +fn_8011D00C = .text:0x8011D00C; // type:function size:0x4 +fn_8011D010 = .text:0x8011D010; // type:function size:0x4 +fn_8011D014 = .text:0x8011D014; // type:function size:0x4 +fn_8011D018 = .text:0x8011D018; // type:function size:0x4 +fn_8011D01C = .text:0x8011D01C; // type:function size:0x4 +fn_8011D020 = .text:0x8011D020; // type:function size:0x4 +fn_8011D024 = .text:0x8011D024; // type:function size:0x4 +fn_8011D028 = .text:0x8011D028; // type:function size:0x4 +fn_8011D02C = .text:0x8011D02C; // type:function size:0x4 +fn_8011D030 = .text:0x8011D030; // type:function size:0x4 +fn_8011D034 = .text:0x8011D034; // type:function size:0x4 +fn_8011D038 = .text:0x8011D038; // type:function size:0x4 +fn_8011D03C = .text:0x8011D03C; // type:function size:0x4 +fn_8011D040 = .text:0x8011D040; // type:function size:0x4 +fn_8011D044 = .text:0x8011D044; // type:function size:0x4 +fn_8011D048 = .text:0x8011D048; // type:function size:0x4 +fn_8011D04C = .text:0x8011D04C; // type:function size:0x4 +fn_8011D050 = .text:0x8011D050; // type:function size:0x4 +fn_8011D054 = .text:0x8011D054; // type:function size:0x4 +fn_8011D058 = .text:0x8011D058; // type:function size:0x4 +fn_8011D05C = .text:0x8011D05C; // type:function size:0x4 +fn_8011D060 = .text:0x8011D060; // type:function size:0x4 +fn_8011D064 = .text:0x8011D064; // type:function size:0x4 +fn_8011D068 = .text:0x8011D068; // type:function size:0x4 +fn_8011D06C = .text:0x8011D06C; // type:function size:0x4 +fn_8011D070 = .text:0x8011D070; // type:function size:0x4 +fn_8011D074 = .text:0x8011D074; // type:function size:0x4 +fn_8011D078 = .text:0x8011D078; // type:function size:0x4 +fn_8011D07C = .text:0x8011D07C; // type:function size:0x4 +fn_8011D080 = .text:0x8011D080; // type:function size:0x4 +fn_8011D084 = .text:0x8011D084; // type:function size:0x4 +fn_8011D088 = .text:0x8011D088; // type:function size:0x4 +fn_8011D08C = .text:0x8011D08C; // type:function size:0x4 +fn_8011D090 = .text:0x8011D090; // type:function size:0x4 +fn_8011D094 = .text:0x8011D094; // type:function size:0x4 +fn_8011D098 = .text:0x8011D098; // type:function size:0x4 +fn_8011D09C = .text:0x8011D09C; // type:function size:0x4 +fn_8011D0A0 = .text:0x8011D0A0; // type:function size:0x4 +fn_8011D0A4 = .text:0x8011D0A4; // type:function size:0x4 +fn_8011D0A8 = .text:0x8011D0A8; // type:function size:0x4 +fn_8011D0AC = .text:0x8011D0AC; // type:function size:0x4 +fn_8011D0B0 = .text:0x8011D0B0; // type:function size:0x4 +fn_8011D0B4 = .text:0x8011D0B4; // type:function size:0x4 +fn_8011D0B8 = .text:0x8011D0B8; // type:function size:0x4 +fn_8011D0BC = .text:0x8011D0BC; // type:function size:0x4 +fn_8011D0C0 = .text:0x8011D0C0; // type:function size:0x4 +fn_8011D0C4 = .text:0x8011D0C4; // type:function size:0x4 +fn_8011D0C8 = .text:0x8011D0C8; // type:function size:0x4 +fn_8011D0CC = .text:0x8011D0CC; // type:function size:0x4 +fn_8011D0D0 = .text:0x8011D0D0; // type:function size:0x4 +fn_8011D0D4 = .text:0x8011D0D4; // type:function size:0x4 +fn_8011D0D8 = .text:0x8011D0D8; // type:function size:0x4 +fn_8011D0DC = .text:0x8011D0DC; // type:function size:0x4 +fn_8011D0E0 = .text:0x8011D0E0; // type:function size:0x4 +fn_8011D0E4 = .text:0x8011D0E4; // type:function size:0x4 +fn_8011D0E8 = .text:0x8011D0E8; // type:function size:0x4 +fn_8011D0EC = .text:0x8011D0EC; // type:function size:0x4 +fn_8011D0F0 = .text:0x8011D0F0; // type:function size:0x4 +fn_8011D0F4 = .text:0x8011D0F4; // type:function size:0x4 +fn_8011D0F8 = .text:0x8011D0F8; // type:function size:0x4 +fn_8011D0FC = .text:0x8011D0FC; // type:function size:0x4 +fn_8011D100 = .text:0x8011D100; // type:function size:0x4 +fn_8011D104 = .text:0x8011D104; // type:function size:0x4 +fn_8011D108 = .text:0x8011D108; // type:function size:0x4 +fn_8011D10C = .text:0x8011D10C; // type:function size:0x4 +fn_8011D110 = .text:0x8011D110; // type:function size:0x4 +fn_8011D114 = .text:0x8011D114; // type:function size:0x4 +fn_8011D118 = .text:0x8011D118; // type:function size:0x4 +fn_8011D11C = .text:0x8011D11C; // type:function size:0x4 +fn_8011D120 = .text:0x8011D120; // type:function size:0x4 +fn_8011D124 = .text:0x8011D124; // type:function size:0x4 +fn_8011D128 = .text:0x8011D128; // type:function size:0x4 +fn_8011D12C = .text:0x8011D12C; // type:function size:0x4 +fn_8011D130 = .text:0x8011D130; // type:function size:0x4 +fn_8011D134 = .text:0x8011D134; // type:function size:0x4 +fn_8011D138 = .text:0x8011D138; // type:function size:0x4 +fn_8011D13C = .text:0x8011D13C; // type:function size:0x4 +fn_8011D140 = .text:0x8011D140; // type:function size:0x4 +fn_8011D144 = .text:0x8011D144; // type:function size:0x4 +fn_8011D148 = .text:0x8011D148; // type:function size:0x4 +fn_8011D14C = .text:0x8011D14C; // type:function size:0x4 +fn_8011D150 = .text:0x8011D150; // type:function size:0x4 +fn_8011D154 = .text:0x8011D154; // type:function size:0x4 +fn_8011D158 = .text:0x8011D158; // type:function size:0x4 +fn_8011D15C = .text:0x8011D15C; // type:function size:0x4 +fn_8011D160 = .text:0x8011D160; // type:function size:0x4 +fn_8011D164 = .text:0x8011D164; // type:function size:0x4 +fn_8011D168 = .text:0x8011D168; // type:function size:0x4 +fn_8011D16C = .text:0x8011D16C; // type:function size:0x4 +fn_8011D170 = .text:0x8011D170; // type:function size:0x4 +fn_8011D174 = .text:0x8011D174; // type:function size:0x4 +fn_8011D178 = .text:0x8011D178; // type:function size:0x4 +fn_8011D17C = .text:0x8011D17C; // type:function size:0x4 +fn_8011D180 = .text:0x8011D180; // type:function size:0x4 +fn_8011D184 = .text:0x8011D184; // type:function size:0x4 +fn_8011D188 = .text:0x8011D188; // type:function size:0x4 +fn_8011D18C = .text:0x8011D18C; // type:function size:0x4 +fn_8011D190 = .text:0x8011D190; // type:function size:0x4 +fn_8011D194 = .text:0x8011D194; // type:function size:0x4 +fn_8011D198 = .text:0x8011D198; // type:function size:0x4 +fn_8011D19C = .text:0x8011D19C; // type:function size:0x4 +fn_8011D1A0 = .text:0x8011D1A0; // type:function size:0x4 +fn_8011D1A4 = .text:0x8011D1A4; // type:function size:0x4 +fn_8011D1A8 = .text:0x8011D1A8; // type:function size:0x4 +fn_8011D1AC = .text:0x8011D1AC; // type:function size:0x4 +fn_8011D1B0 = .text:0x8011D1B0; // type:function size:0x4 +fn_8011D1B4 = .text:0x8011D1B4; // type:function size:0x4 +fn_8011D1B8 = .text:0x8011D1B8; // type:function size:0x4 +fn_8011D1BC = .text:0x8011D1BC; // type:function size:0x4 +fn_8011D1C0 = .text:0x8011D1C0; // type:function size:0x4 +fn_8011D1C4 = .text:0x8011D1C4; // type:function size:0x4 +fn_8011D1C8 = .text:0x8011D1C8; // type:function size:0x4 +fn_8011D1CC = .text:0x8011D1CC; // type:function size:0x4 +fn_8011D1D0 = .text:0x8011D1D0; // type:function size:0x4 +fn_8011D1D4 = .text:0x8011D1D4; // type:function size:0x4 +fn_8011D1D8 = .text:0x8011D1D8; // type:function size:0x4 +fn_8011D1DC = .text:0x8011D1DC; // type:function size:0x4 +fn_8011D1E0 = .text:0x8011D1E0; // type:function size:0x4 +fn_8011D1E4 = .text:0x8011D1E4; // type:function size:0x4 +fn_8011D1E8 = .text:0x8011D1E8; // type:function size:0x4 +fn_8011D1EC = .text:0x8011D1EC; // type:function size:0x4 +fn_8011D1F0 = .text:0x8011D1F0; // type:function size:0x4 +fn_8011D1F4 = .text:0x8011D1F4; // type:function size:0x4 +fn_8011D1F8 = .text:0x8011D1F8; // type:function size:0x4 +fn_8011D1FC = .text:0x8011D1FC; // type:function size:0x4 +fn_8011D200 = .text:0x8011D200; // type:function size:0x4 +fn_8011D204 = .text:0x8011D204; // type:function size:0x4 +fn_8011D208 = .text:0x8011D208; // type:function size:0x4 +fn_8011D20C = .text:0x8011D20C; // type:function size:0x4 +fn_8011D210 = .text:0x8011D210; // type:function size:0x4 +fn_8011D214 = .text:0x8011D214; // type:function size:0x4 +fn_8011D218 = .text:0x8011D218; // type:function size:0x4 +fn_8011D21C = .text:0x8011D21C; // type:function size:0x4 +fn_8011D220 = .text:0x8011D220; // type:function size:0x4 +fn_8011D224 = .text:0x8011D224; // type:function size:0x4 +fn_8011D228 = .text:0x8011D228; // type:function size:0x4 +fn_8011D22C = .text:0x8011D22C; // type:function size:0x4 +fn_8011D230 = .text:0x8011D230; // type:function size:0x4 +fn_8011D234 = .text:0x8011D234; // type:function size:0x4 +fn_8011D238 = .text:0x8011D238; // type:function size:0x4 +fn_8011D23C = .text:0x8011D23C; // type:function size:0x4 +fn_8011D240 = .text:0x8011D240; // type:function size:0x4 +fn_8011D244 = .text:0x8011D244; // type:function size:0x4 +fn_8011D248 = .text:0x8011D248; // type:function size:0x4 +fn_8011D24C = .text:0x8011D24C; // type:function size:0x4 +fn_8011D250 = .text:0x8011D250; // type:function size:0x4 +fn_8011D254 = .text:0x8011D254; // type:function size:0x4 +fn_8011D258 = .text:0x8011D258; // type:function size:0x4 +fn_8011D25C = .text:0x8011D25C; // type:function size:0x4 +fn_8011D260 = .text:0x8011D260; // type:function size:0x4 +fn_8011D264 = .text:0x8011D264; // type:function size:0x4 +fn_8011D268 = .text:0x8011D268; // type:function size:0x4 +fn_8011D26C = .text:0x8011D26C; // type:function size:0x4 +fn_8011D270 = .text:0x8011D270; // type:function size:0x4 +fn_8011D274 = .text:0x8011D274; // type:function size:0x4 +fn_8011D278 = .text:0x8011D278; // type:function size:0x4 +fn_8011D27C = .text:0x8011D27C; // type:function size:0x4 +fn_8011D280 = .text:0x8011D280; // type:function size:0x4 +fn_8011D284 = .text:0x8011D284; // type:function size:0x4 +fn_8011D288 = .text:0x8011D288; // type:function size:0x4 +fn_8011D28C = .text:0x8011D28C; // type:function size:0x4 +fn_8011D290 = .text:0x8011D290; // type:function size:0x4 +fn_8011D294 = .text:0x8011D294; // type:function size:0x4 +fn_8011D298 = .text:0x8011D298; // type:function size:0x4 +fn_8011D29C = .text:0x8011D29C; // type:function size:0x4 +fn_8011D2A0 = .text:0x8011D2A0; // type:function size:0x4 +fn_8011D2A4 = .text:0x8011D2A4; // type:function size:0x4 +fn_8011D2A8 = .text:0x8011D2A8; // type:function size:0x4 +fn_8011D2AC = .text:0x8011D2AC; // type:function size:0x4 +fn_8011D2B0 = .text:0x8011D2B0; // type:function size:0x4 +fn_8011D2B4 = .text:0x8011D2B4; // type:function size:0x4 +fn_8011D2B8 = .text:0x8011D2B8; // type:function size:0x4 +fn_8011D2BC = .text:0x8011D2BC; // type:function size:0x4 +fn_8011D2C0 = .text:0x8011D2C0; // type:function size:0x4 +fn_8011D2C4 = .text:0x8011D2C4; // type:function size:0x4 +fn_8011D2C8 = .text:0x8011D2C8; // type:function size:0x4 +fn_8011D2CC = .text:0x8011D2CC; // type:function size:0x4 +fn_8011D2D0 = .text:0x8011D2D0; // type:function size:0x4 +fn_8011D2D4 = .text:0x8011D2D4; // type:function size:0x4 +fn_8011D2D8 = .text:0x8011D2D8; // type:function size:0x4 +fn_8011D2DC = .text:0x8011D2DC; // type:function size:0x4 +fn_8011D2E0 = .text:0x8011D2E0; // type:function size:0x4 +fn_8011D2E4 = .text:0x8011D2E4; // type:function size:0x4 +fn_8011D2E8 = .text:0x8011D2E8; // type:function size:0x4 +fn_8011D2EC = .text:0x8011D2EC; // type:function size:0x4 +fn_8011D2F0 = .text:0x8011D2F0; // type:function size:0x4 +fn_8011D2F4 = .text:0x8011D2F4; // type:function size:0x4 +fn_8011D2F8 = .text:0x8011D2F8; // type:function size:0x4 +fn_8011D2FC = .text:0x8011D2FC; // type:function size:0x4 +fn_8011D300 = .text:0x8011D300; // type:function size:0x4 +fn_8011D304 = .text:0x8011D304; // type:function size:0x4 +fn_8011D308 = .text:0x8011D308; // type:function size:0x4 +fn_8011D30C = .text:0x8011D30C; // type:function size:0x4 +fn_8011D310 = .text:0x8011D310; // type:function size:0x4 +fn_8011D314 = .text:0x8011D314; // type:function size:0x4 +fn_8011D318 = .text:0x8011D318; // type:function size:0x4 +fn_8011D31C = .text:0x8011D31C; // type:function size:0x4 +fn_8011D320 = .text:0x8011D320; // type:function size:0x4 +fn_8011D324 = .text:0x8011D324; // type:function size:0x4 +fn_8011D328 = .text:0x8011D328; // type:function size:0x4 +fn_8011D32C = .text:0x8011D32C; // type:function size:0x4 +fn_8011D330 = .text:0x8011D330; // type:function size:0x4 +fn_8011D334 = .text:0x8011D334; // type:function size:0x4 +fn_8011D338 = .text:0x8011D338; // type:function size:0x4 +fn_8011D33C = .text:0x8011D33C; // type:function size:0x4 +fn_8011D340 = .text:0x8011D340; // type:function size:0x4 +fn_8011D344 = .text:0x8011D344; // type:function size:0x4 +fn_8011D348 = .text:0x8011D348; // type:function size:0x4 +fn_8011D34C = .text:0x8011D34C; // type:function size:0x4 +fn_8011D350 = .text:0x8011D350; // type:function size:0x4 +fn_8011D354 = .text:0x8011D354; // type:function size:0x4 +fn_8011D358 = .text:0x8011D358; // type:function size:0x4 +fn_8011D35C = .text:0x8011D35C; // type:function size:0x4 +fn_8011D360 = .text:0x8011D360; // type:function size:0x4 +fn_8011D364 = .text:0x8011D364; // type:function size:0x4 +fn_8011D368 = .text:0x8011D368; // type:function size:0x4 +fn_8011D36C = .text:0x8011D36C; // type:function size:0x4 +fn_8011D370 = .text:0x8011D370; // type:function size:0x4 +fn_8011D374 = .text:0x8011D374; // type:function size:0x4 +fn_8011D378 = .text:0x8011D378; // type:function size:0x4 +fn_8011D37C = .text:0x8011D37C; // type:function size:0x4 +fn_8011D380 = .text:0x8011D380; // type:function size:0x4 +fn_8011D384 = .text:0x8011D384; // type:function size:0x4 +fn_8011D388 = .text:0x8011D388; // type:function size:0x4 +fn_8011D38C = .text:0x8011D38C; // type:function size:0x4 +fn_8011D390 = .text:0x8011D390; // type:function size:0x4 +fn_8011D394 = .text:0x8011D394; // type:function size:0x4 +fn_8011D398 = .text:0x8011D398; // type:function size:0x4 +fn_8011D39C = .text:0x8011D39C; // type:function size:0x4 +fn_8011D3A0 = .text:0x8011D3A0; // type:function size:0x4 +fn_8011D3A4 = .text:0x8011D3A4; // type:function size:0x4 +fn_8011D3A8 = .text:0x8011D3A8; // type:function size:0x4 +fn_8011D3AC = .text:0x8011D3AC; // type:function size:0x4 +fn_8011D3B0 = .text:0x8011D3B0; // type:function size:0x4 +fn_8011D3B4 = .text:0x8011D3B4; // type:function size:0x4 +fn_8011D3B8 = .text:0x8011D3B8; // type:function size:0x4 +fn_8011D3BC = .text:0x8011D3BC; // type:function size:0x4 +fn_8011D3C0 = .text:0x8011D3C0; // type:function size:0x4 +fn_8011D3C4 = .text:0x8011D3C4; // type:function size:0x4 +fn_8011D3C8 = .text:0x8011D3C8; // type:function size:0x4 +fn_8011D3CC = .text:0x8011D3CC; // type:function size:0x4 +fn_8011D3D0 = .text:0x8011D3D0; // type:function size:0x4 +fn_8011D3D4 = .text:0x8011D3D4; // type:function size:0x4 +fn_8011D3D8 = .text:0x8011D3D8; // type:function size:0x4 +fn_8011D3DC = .text:0x8011D3DC; // type:function size:0x4 +fn_8011D3E0 = .text:0x8011D3E0; // type:function size:0x4 +fn_8011D3E4 = .text:0x8011D3E4; // type:function size:0x4 +fn_8011D3E8 = .text:0x8011D3E8; // type:function size:0x4 +fn_8011D3EC = .text:0x8011D3EC; // type:function size:0x4 +fn_8011D3F0 = .text:0x8011D3F0; // type:function size:0x4 +fn_8011D3F4 = .text:0x8011D3F4; // type:function size:0x4 +fn_8011D3F8 = .text:0x8011D3F8; // type:function size:0x4 +fn_8011D3FC = .text:0x8011D3FC; // type:function size:0x4 +fn_8011D400 = .text:0x8011D400; // type:function size:0x4 +fn_8011D404 = .text:0x8011D404; // type:function size:0x4 +fn_8011D408 = .text:0x8011D408; // type:function size:0x4 +fn_8011D40C = .text:0x8011D40C; // type:function size:0x4 +fn_8011D410 = .text:0x8011D410; // type:function size:0x4 +fn_8011D414 = .text:0x8011D414; // type:function size:0x4 +fn_8011D418 = .text:0x8011D418; // type:function size:0x4 +fn_8011D41C = .text:0x8011D41C; // type:function size:0x4 +fn_8011D420 = .text:0x8011D420; // type:function size:0x4 +fn_8011D424 = .text:0x8011D424; // type:function size:0x4 +fn_8011D428 = .text:0x8011D428; // type:function size:0x4 +fn_8011D42C = .text:0x8011D42C; // type:function size:0x4 +fn_8011D430 = .text:0x8011D430; // type:function size:0x4 +fn_8011D434 = .text:0x8011D434; // type:function size:0x4 +fn_8011D438 = .text:0x8011D438; // type:function size:0x4 +fn_8011D43C = .text:0x8011D43C; // type:function size:0x4 +fn_8011D440 = .text:0x8011D440; // type:function size:0x4 +fn_8011D444 = .text:0x8011D444; // type:function size:0x4 +fn_8011D448 = .text:0x8011D448; // type:function size:0x4 +fn_8011D44C = .text:0x8011D44C; // type:function size:0x4 +fn_8011D450 = .text:0x8011D450; // type:function size:0x4 +fn_8011D454 = .text:0x8011D454; // type:function size:0x4 +fn_8011D458 = .text:0x8011D458; // type:function size:0x4 +fn_8011D45C = .text:0x8011D45C; // type:function size:0x4 +fn_8011D460 = .text:0x8011D460; // type:function size:0x4 +fn_8011D464 = .text:0x8011D464; // type:function size:0x4 +fn_8011D468 = .text:0x8011D468; // type:function size:0x4 +fn_8011D46C = .text:0x8011D46C; // type:function size:0x4 +fn_8011D470 = .text:0x8011D470; // type:function size:0x4 +fn_8011D474 = .text:0x8011D474; // type:function size:0x4 +fn_8011D478 = .text:0x8011D478; // type:function size:0x4 +fn_8011D47C = .text:0x8011D47C; // type:function size:0x4 +fn_8011D480 = .text:0x8011D480; // type:function size:0x4 +fn_8011D484 = .text:0x8011D484; // type:function size:0x4 +fn_8011D488 = .text:0x8011D488; // type:function size:0x4 +fn_8011D48C = .text:0x8011D48C; // type:function size:0x4 +fn_8011D490 = .text:0x8011D490; // type:function size:0x4 +fn_8011D494 = .text:0x8011D494; // type:function size:0x4 +fn_8011D498 = .text:0x8011D498; // type:function size:0x4 +fn_8011D49C = .text:0x8011D49C; // type:function size:0x4 +fn_8011D4A0 = .text:0x8011D4A0; // type:function size:0x4 +fn_8011D4A4 = .text:0x8011D4A4; // type:function size:0x4 +fn_8011D4A8 = .text:0x8011D4A8; // type:function size:0x4 +fn_8011D4AC = .text:0x8011D4AC; // type:function size:0x4 +fn_8011D4B0 = .text:0x8011D4B0; // type:function size:0x4 +fn_8011D4B4 = .text:0x8011D4B4; // type:function size:0x4 +fn_8011D4B8 = .text:0x8011D4B8; // type:function size:0x4 +fn_8011D4BC = .text:0x8011D4BC; // type:function size:0x4 +fn_8011D4C0 = .text:0x8011D4C0; // type:function size:0x4 +fn_8011D4C4 = .text:0x8011D4C4; // type:function size:0x4 +fn_8011D4C8 = .text:0x8011D4C8; // type:function size:0x4 +fn_8011D4CC = .text:0x8011D4CC; // type:function size:0x4 +fn_8011D4D0 = .text:0x8011D4D0; // type:function size:0x4 +fn_8011D4D4 = .text:0x8011D4D4; // type:function size:0x4 +fn_8011D4D8 = .text:0x8011D4D8; // type:function size:0x4 +fn_8011D4DC = .text:0x8011D4DC; // type:function size:0x4 +fn_8011D4E0 = .text:0x8011D4E0; // type:function size:0x4 +fn_8011D4E4 = .text:0x8011D4E4; // type:function size:0x4 +fn_8011D4E8 = .text:0x8011D4E8; // type:function size:0x4 +fn_8011D4EC = .text:0x8011D4EC; // type:function size:0x4 +fn_8011D4F0 = .text:0x8011D4F0; // type:function size:0x4 +fn_8011D4F4 = .text:0x8011D4F4; // type:function size:0x4 +fn_8011D4F8 = .text:0x8011D4F8; // type:function size:0x4 +fn_8011D4FC = .text:0x8011D4FC; // type:function size:0x4 +fn_8011D500 = .text:0x8011D500; // type:function size:0x4 +fn_8011D504 = .text:0x8011D504; // type:function size:0x4 +fn_8011D508 = .text:0x8011D508; // type:function size:0x4 +fn_8011D50C = .text:0x8011D50C; // type:function size:0x4 +fn_8011D510 = .text:0x8011D510; // type:function size:0x4 +fn_8011D514 = .text:0x8011D514; // type:function size:0x4 +fn_8011D518 = .text:0x8011D518; // type:function size:0x4 +fn_8011D51C = .text:0x8011D51C; // type:function size:0x4 +fn_8011D520 = .text:0x8011D520; // type:function size:0x4 +fn_8011D524 = .text:0x8011D524; // type:function size:0x4 +fn_8011D528 = .text:0x8011D528; // type:function size:0x4 +fn_8011D52C = .text:0x8011D52C; // type:function size:0x4 +fn_8011D530 = .text:0x8011D530; // type:function size:0x4 +fn_8011D534 = .text:0x8011D534; // type:function size:0x4 +fn_8011D538 = .text:0x8011D538; // type:function size:0x4 +fn_8011D53C = .text:0x8011D53C; // type:function size:0x4 +fn_8011D540 = .text:0x8011D540; // type:function size:0x4 +fn_8011D544 = .text:0x8011D544; // type:function size:0x4 +fn_8011D548 = .text:0x8011D548; // type:function size:0x4 +fn_8011D54C = .text:0x8011D54C; // type:function size:0x4 +fn_8011D550 = .text:0x8011D550; // type:function size:0x4 +fn_8011D554 = .text:0x8011D554; // type:function size:0x4 +fn_8011D558 = .text:0x8011D558; // type:function size:0x4 +fn_8011D55C = .text:0x8011D55C; // type:function size:0x4 +fn_8011D560 = .text:0x8011D560; // type:function size:0x4 +fn_8011D564 = .text:0x8011D564; // type:function size:0x4 +fn_8011D568 = .text:0x8011D568; // type:function size:0x4 +fn_8011D56C = .text:0x8011D56C; // type:function size:0x4 +fn_8011D570 = .text:0x8011D570; // type:function size:0x4 +fn_8011D574 = .text:0x8011D574; // type:function size:0x4 +fn_8011D578 = .text:0x8011D578; // type:function size:0x4 +fn_8011D57C = .text:0x8011D57C; // type:function size:0x4 +fn_8011D580 = .text:0x8011D580; // type:function size:0x4 +fn_8011D584 = .text:0x8011D584; // type:function size:0x4 +fn_8011D588 = .text:0x8011D588; // type:function size:0x4 +fn_8011D58C = .text:0x8011D58C; // type:function size:0x4 +fn_8011D590 = .text:0x8011D590; // type:function size:0x4 +fn_8011D594 = .text:0x8011D594; // type:function size:0x4 +fn_8011D598 = .text:0x8011D598; // type:function size:0x4 +fn_8011D59C = .text:0x8011D59C; // type:function size:0x4 +fn_8011D5A0 = .text:0x8011D5A0; // type:function size:0x4 +fn_8011D5A4 = .text:0x8011D5A4; // type:function size:0x4 +fn_8011D5A8 = .text:0x8011D5A8; // type:function size:0x4 +fn_8011D5AC = .text:0x8011D5AC; // type:function size:0x4 +fn_8011D5B0 = .text:0x8011D5B0; // type:function size:0x4 +fn_8011D5B4 = .text:0x8011D5B4; // type:function size:0x4 +fn_8011D5B8 = .text:0x8011D5B8; // type:function size:0x4 +fn_8011D5BC = .text:0x8011D5BC; // type:function size:0x4 +fn_8011D5C0 = .text:0x8011D5C0; // type:function size:0x4 +fn_8011D5C4 = .text:0x8011D5C4; // type:function size:0x4 +fn_8011D5C8 = .text:0x8011D5C8; // type:function size:0x4 +fn_8011D5CC = .text:0x8011D5CC; // type:function size:0x4 +fn_8011D5D0 = .text:0x8011D5D0; // type:function size:0x4 +fn_8011D5D4 = .text:0x8011D5D4; // type:function size:0x4 +fn_8011D5D8 = .text:0x8011D5D8; // type:function size:0x4 +fn_8011D5DC = .text:0x8011D5DC; // type:function size:0x4 +fn_8011D5E0 = .text:0x8011D5E0; // type:function size:0x4 +fn_8011D5E4 = .text:0x8011D5E4; // type:function size:0x4 +fn_8011D5E8 = .text:0x8011D5E8; // type:function size:0x4 +fn_8011D5EC = .text:0x8011D5EC; // type:function size:0x4 +fn_8011D5F0 = .text:0x8011D5F0; // type:function size:0x4 +fn_8011D5F4 = .text:0x8011D5F4; // type:function size:0x4 +fn_8011D5F8 = .text:0x8011D5F8; // type:function size:0x4 +fn_8011D5FC = .text:0x8011D5FC; // type:function size:0x4 +fn_8011D600 = .text:0x8011D600; // type:function size:0x4 +fn_8011D604 = .text:0x8011D604; // type:function size:0x4 +fn_8011D608 = .text:0x8011D608; // type:function size:0x4 +fn_8011D60C = .text:0x8011D60C; // type:function size:0x4 +fn_8011D610 = .text:0x8011D610; // type:function size:0x4 +fn_8011D614 = .text:0x8011D614; // type:function size:0x4 +fn_8011D618 = .text:0x8011D618; // type:function size:0x4 +fn_8011D61C = .text:0x8011D61C; // type:function size:0x4 +fn_8011D620 = .text:0x8011D620; // type:function size:0x4 +fn_8011D624 = .text:0x8011D624; // type:function size:0x4 +fn_8011D628 = .text:0x8011D628; // type:function size:0x4 +fn_8011D62C = .text:0x8011D62C; // type:function size:0x4 +fn_8011D630 = .text:0x8011D630; // type:function size:0x4 +fn_8011D634 = .text:0x8011D634; // type:function size:0x4 +fn_8011D638 = .text:0x8011D638; // type:function size:0x4 +fn_8011D63C = .text:0x8011D63C; // type:function size:0x4 +fn_8011D640 = .text:0x8011D640; // type:function size:0x4 +fn_8011D644 = .text:0x8011D644; // type:function size:0x4 +fn_8011D648 = .text:0x8011D648; // type:function size:0x4 +fn_8011D64C = .text:0x8011D64C; // type:function size:0x4 +fn_8011D650 = .text:0x8011D650; // type:function size:0x4 +fn_8011D654 = .text:0x8011D654; // type:function size:0x4 +fn_8011D658 = .text:0x8011D658; // type:function size:0x4 +fn_8011D65C = .text:0x8011D65C; // type:function size:0x4 +fn_8011D660 = .text:0x8011D660; // type:function size:0x4 +fn_8011D664 = .text:0x8011D664; // type:function size:0x4 +fn_8011D668 = .text:0x8011D668; // type:function size:0x4 +fn_8011D66C = .text:0x8011D66C; // type:function size:0x4 +fn_8011D670 = .text:0x8011D670; // type:function size:0x4 +fn_8011D674 = .text:0x8011D674; // type:function size:0x4 +fn_8011D678 = .text:0x8011D678; // type:function size:0x4 +fn_8011D67C = .text:0x8011D67C; // type:function size:0x4 +fn_8011D680 = .text:0x8011D680; // type:function size:0x4 +fn_8011D684 = .text:0x8011D684; // type:function size:0x4 +fn_8011D688 = .text:0x8011D688; // type:function size:0x4 +fn_8011D68C = .text:0x8011D68C; // type:function size:0x4 +fn_8011D690 = .text:0x8011D690; // type:function size:0x4 +fn_8011D694 = .text:0x8011D694; // type:function size:0x4 +fn_8011D698 = .text:0x8011D698; // type:function size:0x4 +fn_8011D69C = .text:0x8011D69C; // type:function size:0x4 +fn_8011D6A0 = .text:0x8011D6A0; // type:function size:0x4 +fn_8011D6A4 = .text:0x8011D6A4; // type:function size:0x4 +fn_8011D6A8 = .text:0x8011D6A8; // type:function size:0x4 +fn_8011D6AC = .text:0x8011D6AC; // type:function size:0x4 +fn_8011D6B0 = .text:0x8011D6B0; // type:function size:0x4 +fn_8011D6B4 = .text:0x8011D6B4; // type:function size:0x4 +fn_8011D6B8 = .text:0x8011D6B8; // type:function size:0x4 +fn_8011D6BC = .text:0x8011D6BC; // type:function size:0x4 +fn_8011D6C0 = .text:0x8011D6C0; // type:function size:0x4 +fn_8011D6C4 = .text:0x8011D6C4; // type:function size:0x4 +fn_8011D6C8 = .text:0x8011D6C8; // type:function size:0x4 +fn_8011D6CC = .text:0x8011D6CC; // type:function size:0x4 +fn_8011D6D0 = .text:0x8011D6D0; // type:function size:0x4 +fn_8011D6D4 = .text:0x8011D6D4; // type:function size:0x4 +fn_8011D6D8 = .text:0x8011D6D8; // type:function size:0x4 +fn_8011D6DC = .text:0x8011D6DC; // type:function size:0x4 +fn_8011D6E0 = .text:0x8011D6E0; // type:function size:0x4 +fn_8011D6E4 = .text:0x8011D6E4; // type:function size:0x4 +fn_8011D6E8 = .text:0x8011D6E8; // type:function size:0x4 +fn_8011D6EC = .text:0x8011D6EC; // type:function size:0x4 +fn_8011D6F0 = .text:0x8011D6F0; // type:function size:0x4 +fn_8011D6F4 = .text:0x8011D6F4; // type:function size:0x4 +fn_8011D6F8 = .text:0x8011D6F8; // type:function size:0x4 +fn_8011D6FC = .text:0x8011D6FC; // type:function size:0x4 +fn_8011D700 = .text:0x8011D700; // type:function size:0x4 +fn_8011D704 = .text:0x8011D704; // type:function size:0x4 +fn_8011D708 = .text:0x8011D708; // type:function size:0x4 +fn_8011D70C = .text:0x8011D70C; // type:function size:0x4 +fn_8011D710 = .text:0x8011D710; // type:function size:0x4 +fn_8011D714 = .text:0x8011D714; // type:function size:0x4 +fn_8011D718 = .text:0x8011D718; // type:function size:0x4 +fn_8011D71C = .text:0x8011D71C; // type:function size:0x4 +fn_8011D720 = .text:0x8011D720; // type:function size:0x4 +fn_8011D724 = .text:0x8011D724; // type:function size:0x4 +fn_8011D728 = .text:0x8011D728; // type:function size:0x4 +fn_8011D72C = .text:0x8011D72C; // type:function size:0x4 +fn_8011D730 = .text:0x8011D730; // type:function size:0x4 +fn_8011D734 = .text:0x8011D734; // type:function size:0x4 +fn_8011D738 = .text:0x8011D738; // type:function size:0x4 +fn_8011D73C = .text:0x8011D73C; // type:function size:0x4 +fn_8011D740 = .text:0x8011D740; // type:function size:0x4 +fn_8011D744 = .text:0x8011D744; // type:function size:0x4 +fn_8011D748 = .text:0x8011D748; // type:function size:0x4 +fn_8011D74C = .text:0x8011D74C; // type:function size:0x4 +fn_8011D750 = .text:0x8011D750; // type:function size:0x4 +fn_8011D754 = .text:0x8011D754; // type:function size:0x4 +fn_8011D758 = .text:0x8011D758; // type:function size:0x4 +fn_8011D75C = .text:0x8011D75C; // type:function size:0x4 +fn_8011D760 = .text:0x8011D760; // type:function size:0x4 +fn_8011D764 = .text:0x8011D764; // type:function size:0x4 +fn_8011D768 = .text:0x8011D768; // type:function size:0x4 +fn_8011D76C = .text:0x8011D76C; // type:function size:0x4 +fn_8011D770 = .text:0x8011D770; // type:function size:0x4 +fn_8011D774 = .text:0x8011D774; // type:function size:0x4 +fn_8011D778 = .text:0x8011D778; // type:function size:0x4 +fn_8011D77C = .text:0x8011D77C; // type:function size:0x4 +fn_8011D780 = .text:0x8011D780; // type:function size:0x4 +fn_8011D784 = .text:0x8011D784; // type:function size:0x4 +fn_8011D788 = .text:0x8011D788; // type:function size:0x4 +fn_8011D78C = .text:0x8011D78C; // type:function size:0x4 +fn_8011D790 = .text:0x8011D790; // type:function size:0x4 +fn_8011D794 = .text:0x8011D794; // type:function size:0x4 +fn_8011D798 = .text:0x8011D798; // type:function size:0x4 +fn_8011D79C = .text:0x8011D79C; // type:function size:0x4 +fn_8011D7A0 = .text:0x8011D7A0; // type:function size:0x4 +fn_8011D7A4 = .text:0x8011D7A4; // type:function size:0x4 +fn_8011D7A8 = .text:0x8011D7A8; // type:function size:0x4 +fn_8011D7AC = .text:0x8011D7AC; // type:function size:0x4 +fn_8011D7B0 = .text:0x8011D7B0; // type:function size:0x4 +fn_8011D7B4 = .text:0x8011D7B4; // type:function size:0x4 +fn_8011D7B8 = .text:0x8011D7B8; // type:function size:0x4 +fn_8011D7BC = .text:0x8011D7BC; // type:function size:0x4 +fn_8011D7C0 = .text:0x8011D7C0; // type:function size:0x4 +fn_8011D7C4 = .text:0x8011D7C4; // type:function size:0x4 +fn_8011D7C8 = .text:0x8011D7C8; // type:function size:0x4 +fn_8011D7CC = .text:0x8011D7CC; // type:function size:0x4 +fn_8011D7D0 = .text:0x8011D7D0; // type:function size:0x4 +fn_8011D7D4 = .text:0x8011D7D4; // type:function size:0x4 +fn_8011D7D8 = .text:0x8011D7D8; // type:function size:0x4 +fn_8011D7DC = .text:0x8011D7DC; // type:function size:0x4 +fn_8011D7E0 = .text:0x8011D7E0; // type:function size:0x4 +fn_8011D7E4 = .text:0x8011D7E4; // type:function size:0x4 +fn_8011D7E8 = .text:0x8011D7E8; // type:function size:0x4 +fn_8011D7EC = .text:0x8011D7EC; // type:function size:0x4 +fn_8011D7F0 = .text:0x8011D7F0; // type:function size:0x4 +fn_8011D7F4 = .text:0x8011D7F4; // type:function size:0x4 +fn_8011D7F8 = .text:0x8011D7F8; // type:function size:0x4 +fn_8011D7FC = .text:0x8011D7FC; // type:function size:0x4 +fn_8011D800 = .text:0x8011D800; // type:function size:0x4 +fn_8011D804 = .text:0x8011D804; // type:function size:0x4 +fn_8011D808 = .text:0x8011D808; // type:function size:0x4 +fn_8011D80C = .text:0x8011D80C; // type:function size:0x4 +fn_8011D810 = .text:0x8011D810; // type:function size:0x4 +fn_8011D814 = .text:0x8011D814; // type:function size:0x4 +fn_8011D818 = .text:0x8011D818; // type:function size:0x4 +fn_8011D81C = .text:0x8011D81C; // type:function size:0x4 +fn_8011D820 = .text:0x8011D820; // type:function size:0x4 +fn_8011D824 = .text:0x8011D824; // type:function size:0x4 +fn_8011D828 = .text:0x8011D828; // type:function size:0x4 +fn_8011D82C = .text:0x8011D82C; // type:function size:0x4 +fn_8011D830 = .text:0x8011D830; // type:function size:0x4 +fn_8011D834 = .text:0x8011D834; // type:function size:0x4 +fn_8011D838 = .text:0x8011D838; // type:function size:0x4 +fn_8011D83C = .text:0x8011D83C; // type:function size:0x4 +fn_8011D840 = .text:0x8011D840; // type:function size:0x4 +fn_8011D844 = .text:0x8011D844; // type:function size:0x4 +fn_8011D848 = .text:0x8011D848; // type:function size:0x4 +fn_8011D84C = .text:0x8011D84C; // type:function size:0x4 +fn_8011D850 = .text:0x8011D850; // type:function size:0x4 +fn_8011D854 = .text:0x8011D854; // type:function size:0x4 +fn_8011D858 = .text:0x8011D858; // type:function size:0x4 +fn_8011D85C = .text:0x8011D85C; // type:function size:0x4 +fn_8011D860 = .text:0x8011D860; // type:function size:0x4 +fn_8011D864 = .text:0x8011D864; // type:function size:0x4 +fn_8011D868 = .text:0x8011D868; // type:function size:0x4 +fn_8011D86C = .text:0x8011D86C; // type:function size:0x4 +fn_8011D870 = .text:0x8011D870; // type:function size:0x4 +fn_8011D874 = .text:0x8011D874; // type:function size:0x4 +fn_8011D878 = .text:0x8011D878; // type:function size:0x4 +fn_8011D87C = .text:0x8011D87C; // type:function size:0x4 +fn_8011D880 = .text:0x8011D880; // type:function size:0x4 +fn_8011D884 = .text:0x8011D884; // type:function size:0x4 +fn_8011D888 = .text:0x8011D888; // type:function size:0x4 +fn_8011D88C = .text:0x8011D88C; // type:function size:0x4 +fn_8011D890 = .text:0x8011D890; // type:function size:0x4 +fn_8011D894 = .text:0x8011D894; // type:function size:0x4 +fn_8011D898 = .text:0x8011D898; // type:function size:0x4 +fn_8011D89C = .text:0x8011D89C; // type:function size:0x4 +fn_8011D8A0 = .text:0x8011D8A0; // type:function size:0x4 +fn_8011D8A4 = .text:0x8011D8A4; // type:function size:0x4 +fn_8011D8A8 = .text:0x8011D8A8; // type:function size:0x4 +fn_8011D8AC = .text:0x8011D8AC; // type:function size:0x4 +fn_8011D8B0 = .text:0x8011D8B0; // type:function size:0x4 +fn_8011D8B4 = .text:0x8011D8B4; // type:function size:0x4 +fn_8011D8B8 = .text:0x8011D8B8; // type:function size:0x4 +fn_8011D8BC = .text:0x8011D8BC; // type:function size:0x4 +fn_8011D8C0 = .text:0x8011D8C0; // type:function size:0x4 +fn_8011D8C4 = .text:0x8011D8C4; // type:function size:0x4 +fn_8011D8C8 = .text:0x8011D8C8; // type:function size:0x4 +fn_8011D8CC = .text:0x8011D8CC; // type:function size:0x4 +fn_8011D8D0 = .text:0x8011D8D0; // type:function size:0x4 +fn_8011D8D4 = .text:0x8011D8D4; // type:function size:0x4 +fn_8011D8D8 = .text:0x8011D8D8; // type:function size:0x4 +fn_8011D8DC = .text:0x8011D8DC; // type:function size:0x4 +fn_8011D8E0 = .text:0x8011D8E0; // type:function size:0x4 +fn_8011D8E4 = .text:0x8011D8E4; // type:function size:0x4 +fn_8011D8E8 = .text:0x8011D8E8; // type:function size:0x4 +fn_8011D8EC = .text:0x8011D8EC; // type:function size:0x4 +fn_8011D8F0 = .text:0x8011D8F0; // type:function size:0x4 +fn_8011D8F4 = .text:0x8011D8F4; // type:function size:0x4 +fn_8011D8F8 = .text:0x8011D8F8; // type:function size:0x4 +fn_8011D8FC = .text:0x8011D8FC; // type:function size:0x4 +fn_8011D900 = .text:0x8011D900; // type:function size:0x4 +fn_8011D904 = .text:0x8011D904; // type:function size:0x4 +fn_8011D908 = .text:0x8011D908; // type:function size:0x4 +fn_8011D90C = .text:0x8011D90C; // type:function size:0x4 +fn_8011D910 = .text:0x8011D910; // type:function size:0x4 +fn_8011D914 = .text:0x8011D914; // type:function size:0x4 +fn_8011D918 = .text:0x8011D918; // type:function size:0x4 +fn_8011D91C = .text:0x8011D91C; // type:function size:0x4 +fn_8011D920 = .text:0x8011D920; // type:function size:0x4 +fn_8011D924 = .text:0x8011D924; // type:function size:0x4 +fn_8011D928 = .text:0x8011D928; // type:function size:0x4 +fn_8011D92C = .text:0x8011D92C; // type:function size:0x4 +fn_8011D930 = .text:0x8011D930; // type:function size:0x4 +fn_8011D934 = .text:0x8011D934; // type:function size:0x4 +fn_8011D938 = .text:0x8011D938; // type:function size:0x4 +fn_8011D93C = .text:0x8011D93C; // type:function size:0x4 +fn_8011D940 = .text:0x8011D940; // type:function size:0x4 +fn_8011D944 = .text:0x8011D944; // type:function size:0x4 +fn_8011D948 = .text:0x8011D948; // type:function size:0x4 +fn_8011D94C = .text:0x8011D94C; // type:function size:0x4 +fn_8011D950 = .text:0x8011D950; // type:function size:0x4 +fn_8011D954 = .text:0x8011D954; // type:function size:0x4 +fn_8011D958 = .text:0x8011D958; // type:function size:0x4 +fn_8011D95C = .text:0x8011D95C; // type:function size:0x4 +fn_8011D960 = .text:0x8011D960; // type:function size:0x4 +fn_8011D964 = .text:0x8011D964; // type:function size:0x4 +fn_8011D968 = .text:0x8011D968; // type:function size:0x4 +fn_8011D96C = .text:0x8011D96C; // type:function size:0x4 +fn_8011D970 = .text:0x8011D970; // type:function size:0x4 +fn_8011D974 = .text:0x8011D974; // type:function size:0x4 +fn_8011D978 = .text:0x8011D978; // type:function size:0x4 +fn_8011D97C = .text:0x8011D97C; // type:function size:0x4 +fn_8011D980 = .text:0x8011D980; // type:function size:0x4 +fn_8011D984 = .text:0x8011D984; // type:function size:0x4 +fn_8011D988 = .text:0x8011D988; // type:function size:0x4 +fn_8011D98C = .text:0x8011D98C; // type:function size:0x4 +fn_8011D990 = .text:0x8011D990; // type:function size:0x4 +fn_8011D994 = .text:0x8011D994; // type:function size:0x4 +fn_8011D998 = .text:0x8011D998; // type:function size:0x4 +fn_8011D99C = .text:0x8011D99C; // type:function size:0x4 +fn_8011D9A0 = .text:0x8011D9A0; // type:function size:0x4 +fn_8011D9A4 = .text:0x8011D9A4; // type:function size:0x4 +fn_8011D9A8 = .text:0x8011D9A8; // type:function size:0x4 +fn_8011D9AC = .text:0x8011D9AC; // type:function size:0x4 +fn_8011D9B0 = .text:0x8011D9B0; // type:function size:0x4 +fn_8011D9B4 = .text:0x8011D9B4; // type:function size:0x4 +fn_8011D9B8 = .text:0x8011D9B8; // type:function size:0x4 +fn_8011D9BC = .text:0x8011D9BC; // type:function size:0x4 +fn_8011D9C0 = .text:0x8011D9C0; // type:function size:0x4 +fn_8011D9C4 = .text:0x8011D9C4; // type:function size:0x4 +fn_8011D9C8 = .text:0x8011D9C8; // type:function size:0x4 +fn_8011D9CC = .text:0x8011D9CC; // type:function size:0x4 +fn_8011D9D0 = .text:0x8011D9D0; // type:function size:0x4 +fn_8011D9D4 = .text:0x8011D9D4; // type:function size:0x4 +fn_8011D9D8 = .text:0x8011D9D8; // type:function size:0x4 +fn_8011D9DC = .text:0x8011D9DC; // type:function size:0x4 +fn_8011D9E0 = .text:0x8011D9E0; // type:function size:0x4 +fn_8011D9E4 = .text:0x8011D9E4; // type:function size:0x4 +fn_8011D9E8 = .text:0x8011D9E8; // type:function size:0x4 +fn_8011D9EC = .text:0x8011D9EC; // type:function size:0x4 +fn_8011D9F0 = .text:0x8011D9F0; // type:function size:0x4 +fn_8011D9F4 = .text:0x8011D9F4; // type:function size:0x4 +fn_8011D9F8 = .text:0x8011D9F8; // type:function size:0x4 +fn_8011D9FC = .text:0x8011D9FC; // type:function size:0x4 +fn_8011DA00 = .text:0x8011DA00; // type:function size:0x4 +fn_8011DA04 = .text:0x8011DA04; // type:function size:0x4 +fn_8011DA08 = .text:0x8011DA08; // type:function size:0x4 +fn_8011DA0C = .text:0x8011DA0C; // type:function size:0x4 +fn_8011DA10 = .text:0x8011DA10; // type:function size:0x4 +fn_8011DA14 = .text:0x8011DA14; // type:function size:0x4 +fn_8011DA18 = .text:0x8011DA18; // type:function size:0x4 +fn_8011DA1C = .text:0x8011DA1C; // type:function size:0x4 +fn_8011DA20 = .text:0x8011DA20; // type:function size:0x4 +fn_8011DA24 = .text:0x8011DA24; // type:function size:0x4 +fn_8011DA28 = .text:0x8011DA28; // type:function size:0x4 +fn_8011DA2C = .text:0x8011DA2C; // type:function size:0x4 +fn_8011DA30 = .text:0x8011DA30; // type:function size:0x4 +fn_8011DA34 = .text:0x8011DA34; // type:function size:0x4 +fn_8011DA38 = .text:0x8011DA38; // type:function size:0x4 +fn_8011DA3C = .text:0x8011DA3C; // type:function size:0x4 +fn_8011DA40 = .text:0x8011DA40; // type:function size:0x4 +fn_8011DA44 = .text:0x8011DA44; // type:function size:0x4 +fn_8011DA48 = .text:0x8011DA48; // type:function size:0x4 +fn_8011DA4C = .text:0x8011DA4C; // type:function size:0x4 +fn_8011DA50 = .text:0x8011DA50; // type:function size:0x4 +fn_8011DA54 = .text:0x8011DA54; // type:function size:0x4 +fn_8011DA58 = .text:0x8011DA58; // type:function size:0x4 +fn_8011DA5C = .text:0x8011DA5C; // type:function size:0x4 +fn_8011DA60 = .text:0x8011DA60; // type:function size:0x4 +fn_8011DA64 = .text:0x8011DA64; // type:function size:0x4 +fn_8011DA68 = .text:0x8011DA68; // type:function size:0x4 +fn_8011DA6C = .text:0x8011DA6C; // type:function size:0x4 +fn_8011DA70 = .text:0x8011DA70; // type:function size:0x4 +fn_8011DA74 = .text:0x8011DA74; // type:function size:0x4 +fn_8011DA78 = .text:0x8011DA78; // type:function size:0x4 +fn_8011DA7C = .text:0x8011DA7C; // type:function size:0x4 +fn_8011DA80 = .text:0x8011DA80; // type:function size:0x4 +fn_8011DA84 = .text:0x8011DA84; // type:function size:0x4 +fn_8011DA88 = .text:0x8011DA88; // type:function size:0x4 +fn_8011DA8C = .text:0x8011DA8C; // type:function size:0x4 +fn_8011DA90 = .text:0x8011DA90; // type:function size:0x4 +fn_8011DA94 = .text:0x8011DA94; // type:function size:0x4 +fn_8011DA98 = .text:0x8011DA98; // type:function size:0x4 +fn_8011DA9C = .text:0x8011DA9C; // type:function size:0x4 +fn_8011DAA0 = .text:0x8011DAA0; // type:function size:0x4 +fn_8011DAA4 = .text:0x8011DAA4; // type:function size:0x4 +fn_8011DAA8 = .text:0x8011DAA8; // type:function size:0x4 +fn_8011DAAC = .text:0x8011DAAC; // type:function size:0x4 +fn_8011DAB0 = .text:0x8011DAB0; // type:function size:0x4 +fn_8011DAB4 = .text:0x8011DAB4; // type:function size:0x4 +fn_8011DAB8 = .text:0x8011DAB8; // type:function size:0x4 +fn_8011DABC = .text:0x8011DABC; // type:function size:0x4 +fn_8011DAC0 = .text:0x8011DAC0; // type:function size:0x4 +fn_8011DAC4 = .text:0x8011DAC4; // type:function size:0x4 +fn_8011DAC8 = .text:0x8011DAC8; // type:function size:0x4 +fn_8011DACC = .text:0x8011DACC; // type:function size:0x4 +fn_8011DAD0 = .text:0x8011DAD0; // type:function size:0x4 +fn_8011DAD4 = .text:0x8011DAD4; // type:function size:0x4 +fn_8011DAD8 = .text:0x8011DAD8; // type:function size:0x4 +fn_8011DADC = .text:0x8011DADC; // type:function size:0x4 +_ctors = .ctors:0x8011DAE0; // type:label scope:global data:4byte +__init_cpp_exceptions_reference = .ctors:0x8011DAE0; // type:object size:0x4 scope:global +_dtors = .dtors:0x8011DB00; // type:label scope:global data:4byte +__destroy_global_chain_reference = .dtors:0x8011DB00; // type:object size:0x4 scope:global +__fini_cpp_exceptions_reference = .dtors:0x8011DB04; // type:object size:0x4 scope:global +lbl_8011DB20 = .rodata:0x8011DB20; // type:object size:0x10 data:4byte +lbl_8011DB30 = .rodata:0x8011DB30; // type:object size:0x10 data:4byte +lbl_8011DB40 = .rodata:0x8011DB40; // type:object size:0x10 data:4byte +lbl_8011DB50 = .rodata:0x8011DB50; // type:object size:0x20 data:byte +lbl_8011DB70 = .rodata:0x8011DB70; // type:object size:0x10 data:4byte +lbl_8011DB80 = .rodata:0x8011DB80; // type:object size:0x24 data:4byte +lbl_8011DBA4 = .rodata:0x8011DBA4; // type:object size:0xC data:4byte +lbl_8011DBB0 = .rodata:0x8011DBB0; // type:object size:0x20 data:4byte +lbl_8011DBD0 = .rodata:0x8011DBD0; // type:object size:0x7C data:4byte +lbl_8011DC4C = .rodata:0x8011DC4C; // type:object size:0x24 data:4byte +lbl_8011DC70 = .rodata:0x8011DC70; // type:object size:0x10 data:4byte +lbl_8011DC80 = .rodata:0x8011DC80; // type:object size:0x38 data:4byte +lbl_8011DCB8 = .rodata:0x8011DCB8; // type:object size:0x38 data:4byte +lbl_8011DCF0 = .rodata:0x8011DCF0; // type:object size:0x20 data:4byte +lbl_8011DD10 = .rodata:0x8011DD10; // type:object size:0x10 data:4byte +lbl_8011DD20 = .rodata:0x8011DD20; // type:object size:0x90 data:4byte +lbl_8011DDB0 = .rodata:0x8011DDB0; // type:object size:0x20 data:4byte +lbl_8011DDD0 = .rodata:0x8011DDD0; // type:object size:0x20 data:4byte +pickSpr = .rodata:0x8011DDF0; // type:object size:0x20 scope:local +handMdl = .rodata:0x8011DE10; // type:object size:0x20 scope:local +ticketSpr = .rodata:0x8011DE30; // type:object size:0x10 scope:local +lbl_8011DE40 = .rodata:0x8011DE40; // type:object size:0x20 data:4byte +starMesTbl1 = .rodata:0x8011DE60; // type:object size:0x24 scope:local +starMesTbl2 = .rodata:0x8011DE84; // type:object size:0x48 scope:local +lbl_8011DED0 = .rodata:0x8011DED0; // type:object size:0x68 data:4byte +lbl_8011DF38 = .rodata:0x8011DF38; // type:object size:0x38 data:4byte +lbl_8011DF70 = .rodata:0x8011DF70; // type:object size:0x3C data:4byte +lbl_8011DFAC = .rodata:0x8011DFAC; // type:object size:0x14 data:2byte +lbl_8011DFC0 = .rodata:0x8011DFC0; // type:object size:0x20 data:4byte +lbl_8011DFE0 = .rodata:0x8011DFE0; // type:object size:0x20 data:4byte +lbl_8011E000 = .rodata:0x8011E000; // type:object size:0x20 data:4byte +lbl_8011E020 = .rodata:0x8011E020; // type:object size:0x20 data:4byte +lbl_8011E040 = .rodata:0x8011E040; // type:object size:0xC data:4byte +lbl_8011E04C = .rodata:0x8011E04C; // type:object size:0xC data:4byte +lbl_8011E058 = .rodata:0x8011E058; // type:object size:0xC data:4byte +lbl_8011E064 = .rodata:0x8011E064; // type:object size:0xC data:4byte +bowserMotTbl = .rodata:0x8011E070; // type:object size:0x18 scope:local +lbl_8011E088 = .rodata:0x8011E088; // type:object size:0x70 data:4byte +lbl_8011E0F8 = .rodata:0x8011E0F8; // type:object size:0xC data:byte +miniBowserMotTbl = .rodata:0x8011E104; // type:object size:0x1C scope:local +lbl_8011E120 = .rodata:0x8011E120; // type:object size:0x24 data:4byte +lbl_8011E144 = .rodata:0x8011E144; // type:object size:0x20 data:4byte +lbl_8011E164 = .rodata:0x8011E164; // type:object size:0x2C data:4byte +lbl_8011E190 = .rodata:0x8011E190; // type:object size:0x10 data:4byte +lbl_8011E1A0 = .rodata:0x8011E1A0; // type:object size:0x28 data:4byte +lbl_8011E1C8 = .rodata:0x8011E1C8; // type:object size:0x28 data:4byte +lbl_8011E1F0 = .rodata:0x8011E1F0; // type:object size:0x20 data:4byte +lbl_8011E210 = .rodata:0x8011E210; // type:object size:0x20 data:4byte +lbl_8011E230 = .rodata:0x8011E230; // type:object size:0x20 data:4byte +lbl_8011E250 = .rodata:0x8011E250; // type:object size:0x10 data:4byte +lbl_8011E260 = .rodata:0x8011E260; // type:object size:0x90 data:byte +lbl_8011E2F0 = .rodata:0x8011E2F0; // type:object size:0x10 +lbl_8011E300 = .rodata:0x8011E300; // type:object size:0x10 +lbl_8011E310 = .rodata:0x8011E310; // type:object size:0x18 data:double +lbl_8011E328 = .rodata:0x8011E328; // type:object size:0x54 +lbl_8011E37C = .rodata:0x8011E37C; // type:object size:0x14 +lbl_8011E390 = .rodata:0x8011E390; // type:object size:0x10 +lbl_8011E3A0 = .rodata:0x8011E3A0; // type:object size:0x20 +lbl_8011E3C0 = .rodata:0x8011E3C0; // type:object size:0x38 +lbl_8011E3F8 = .rodata:0x8011E3F8; // type:object size:0x40 +lbl_8011E438 = .rodata:0x8011E438; // type:object size:0x18 data:4byte +lbl_8011E450 = .rodata:0x8011E450; // type:object size:0xE0 +@stringBase0 = .rodata:0x8011E530; // type:object size:0x25 scope:local data:string_table +lbl_8011E558 = .rodata:0x8011E558; // type:object size:0x10 +lbl_8011E568 = .rodata:0x8011E568; // type:object size:0x30 data:double +lbl_8011E598 = .rodata:0x8011E598; // type:object size:0x108 +lbl_8011E6A0 = .rodata:0x8011E6A0; // type:object size:0x80 +lbl_8011E720 = .rodata:0x8011E720; // type:object size:0x10 +lbl_8011E730 = .rodata:0x8011E730; // type:object size:0x40 data:double +lbl_8011E770 = .rodata:0x8011E770; // type:object size:0x68 data:double +lbl_8011E7D8 = .rodata:0x8011E7D8; // type:object size:0x98 +@62 = .rodata:0x8011E870; // type:object size:0x1B scope:local data:string +lbl_8011E890 = .rodata:0x8011E890; // type:object size:0x20 +lbl_8011E8B0 = .rodata:0x8011E8B0; // type:object size:0x10 data:4byte +lbl_8011E8C0 = .rodata:0x8011E8C0; // type:object size:0x28 data:4byte +lbl_8011E8E8 = .rodata:0x8011E8E8; // type:object size:0x28 data:4byte +lbl_8011E910 = .rodata:0x8011E910; // type:object size:0x28 data:4byte +@154 = .rodata:0x8011E938; // type:object size:0x21 scope:local data:string +@155 = .rodata:0x8011E95C; // type:object size:0x24 scope:local data:string +lbl_8011E980 = .rodata:0x8011E980; // type:object size:0x40 +lbl_8011E9C0 = .rodata:0x8011E9C0; // type:object size:0x18 +lbl_8011E9D8 = .rodata:0x8011E9D8; // type:object size:0x88 +lbl_8011EA60 = .rodata:0x8011EA60; // type:object size:0x88 data:byte +lbl_8011EAE8 = .rodata:0x8011EAE8; // type:object size:0x100 +lbl_8011EC00 = .data:0x8011EC00; // type:object size:0x10 data:string +chanTbl = .data:0x8011EC10; // type:object size:0x10 scope:local +lbl_8011EC20 = .data:0x8011EC20; // type:object size:0x124 +jumptable_8011ED44 = .data:0x8011ED44; // type:object size:0x34 scope:local +lbl_8011ED78 = .data:0x8011ED78; // type:object size:0x11 data:string +lbl_8011ED89 = .data:0x8011ED89; // type:object size:0x11 data:string +lbl_8011ED9A = .data:0x8011ED9A; // type:object size:0x10 data:string +lbl_8011EDAA = .data:0x8011EDAA; // type:object size:0x10 data:string +lbl_8011EDBA = .data:0x8011EDBA; // type:object size:0x14 data:string +lbl_8011EDCE = .data:0x8011EDCE; // type:object size:0x11 data:string +lbl_8011EDDF = .data:0x8011EDDF; // type:object size:0x10 data:string +lbl_8011EDEF = .data:0x8011EDEF; // type:object size:0xF data:string +lbl_8011EDFE = .data:0x8011EDFE; // type:object size:0x10 data:string +lbl_8011EE0E = .data:0x8011EE0E; // type:object size:0x13 data:string +lbl_8011EE21 = .data:0x8011EE21; // type:object size:0xF data:string +lbl_8011EE30 = .data:0x8011EE30; // type:object size:0x13 data:string +lbl_8011EE43 = .data:0x8011EE43; // type:object size:0x13 data:string +lbl_8011EE56 = .data:0x8011EE56; // type:object size:0x12 data:string +lbl_8011EE68 = .data:0x8011EE68; // type:object size:0x10 data:string +lbl_8011EE78 = .data:0x8011EE78; // type:object size:0x14 data:string +lbl_8011EE8C = .data:0x8011EE8C; // type:object size:0x14 data:string +lbl_8011EEA0 = .data:0x8011EEA0; // type:object size:0x13 data:string +lbl_8011EEB3 = .data:0x8011EEB3; // type:object size:0x10 data:string +lbl_8011EEC3 = .data:0x8011EEC3; // type:object size:0x11 data:string +lbl_8011EED4 = .data:0x8011EED4; // type:object size:0xE data:string +lbl_8011EEE2 = .data:0x8011EEE2; // type:object size:0x12 data:string +lbl_8011EEF4 = .data:0x8011EEF4; // type:object size:0x11 data:string +lbl_8011EF05 = .data:0x8011EF05; // type:object size:0xF data:string +lbl_8011EF14 = .data:0x8011EF14; // type:object size:0x13 data:string +lbl_8011EF27 = .data:0x8011EF27; // type:object size:0x13 data:string +lbl_8011EF3A = .data:0x8011EF3A; // type:object size:0x12 data:string +lbl_8011EF4C = .data:0x8011EF4C; // type:object size:0xE data:string +lbl_8011EF5A = .data:0x8011EF5A; // type:object size:0xE data:string +lbl_8011EF68 = .data:0x8011EF68; // type:object size:0xE data:string +lbl_8011EF76 = .data:0x8011EF76; // type:object size:0xE data:string +lbl_8011EF84 = .data:0x8011EF84; // type:object size:0xE data:string +lbl_8011EF92 = .data:0x8011EF92; // type:object size:0xE data:string +lbl_8011EFA0 = .data:0x8011EFA0; // type:object size:0xE data:string +lbl_8011EFAE = .data:0x8011EFAE; // type:object size:0xE data:string +lbl_8011EFBC = .data:0x8011EFBC; // type:object size:0xE data:string +lbl_8011EFCA = .data:0x8011EFCA; // type:object size:0xE data:string +lbl_8011EFD8 = .data:0x8011EFD8; // type:object size:0xE data:string +lbl_8011EFE6 = .data:0x8011EFE6; // type:object size:0xE data:string +lbl_8011EFF4 = .data:0x8011EFF4; // type:object size:0xE data:string +lbl_8011F002 = .data:0x8011F002; // type:object size:0xE data:string +lbl_8011F010 = .data:0x8011F010; // type:object size:0xE data:string +lbl_8011F01E = .data:0x8011F01E; // type:object size:0xE data:string +lbl_8011F02C = .data:0x8011F02C; // type:object size:0xE data:string +lbl_8011F03A = .data:0x8011F03A; // type:object size:0xE data:string +lbl_8011F048 = .data:0x8011F048; // type:object size:0xE data:string +lbl_8011F056 = .data:0x8011F056; // type:object size:0xE data:string +lbl_8011F064 = .data:0x8011F064; // type:object size:0xE data:string +lbl_8011F072 = .data:0x8011F072; // type:object size:0xE data:string +lbl_8011F080 = .data:0x8011F080; // type:object size:0xE data:string +lbl_8011F08E = .data:0x8011F08E; // type:object size:0xE data:string +lbl_8011F09C = .data:0x8011F09C; // type:object size:0xE data:string +lbl_8011F0AA = .data:0x8011F0AA; // type:object size:0xE data:string +lbl_8011F0B8 = .data:0x8011F0B8; // type:object size:0xE data:string +lbl_8011F0C6 = .data:0x8011F0C6; // type:object size:0xE data:string +lbl_8011F0D4 = .data:0x8011F0D4; // type:object size:0xE data:string +lbl_8011F0E2 = .data:0x8011F0E2; // type:object size:0xE data:string +lbl_8011F0F0 = .data:0x8011F0F0; // type:object size:0xE data:string +lbl_8011F0FE = .data:0x8011F0FE; // type:object size:0xE data:string +lbl_8011F10C = .data:0x8011F10C; // type:object size:0xE data:string +lbl_8011F11A = .data:0x8011F11A; // type:object size:0xE data:string +lbl_8011F128 = .data:0x8011F128; // type:object size:0xE data:string +lbl_8011F136 = .data:0x8011F136; // type:object size:0xE data:string +lbl_8011F144 = .data:0x8011F144; // type:object size:0xE data:string +lbl_8011F152 = .data:0x8011F152; // type:object size:0xE data:string +lbl_8011F160 = .data:0x8011F160; // type:object size:0xE data:string +lbl_8011F16E = .data:0x8011F16E; // type:object size:0xE data:string +lbl_8011F17C = .data:0x8011F17C; // type:object size:0xE data:string +lbl_8011F18A = .data:0x8011F18A; // type:object size:0xE data:string +lbl_8011F198 = .data:0x8011F198; // type:object size:0xE data:string +lbl_8011F1A6 = .data:0x8011F1A6; // type:object size:0xE data:string +lbl_8011F1B4 = .data:0x8011F1B4; // type:object size:0xE data:string +lbl_8011F1C2 = .data:0x8011F1C2; // type:object size:0xE data:string +lbl_8011F1D0 = .data:0x8011F1D0; // type:object size:0xE data:string +lbl_8011F1DE = .data:0x8011F1DE; // type:object size:0xE data:string +lbl_8011F1EC = .data:0x8011F1EC; // type:object size:0xE data:string +lbl_8011F1FA = .data:0x8011F1FA; // type:object size:0xE data:string +lbl_8011F208 = .data:0x8011F208; // type:object size:0xE data:string +lbl_8011F216 = .data:0x8011F216; // type:object size:0xE data:string +lbl_8011F224 = .data:0x8011F224; // type:object size:0xE data:string +lbl_8011F232 = .data:0x8011F232; // type:object size:0xE data:string +lbl_8011F240 = .data:0x8011F240; // type:object size:0xE data:string +lbl_8011F24E = .data:0x8011F24E; // type:object size:0xE data:string +lbl_8011F25C = .data:0x8011F25C; // type:object size:0xE data:string +lbl_8011F26A = .data:0x8011F26A; // type:object size:0xE data:string +lbl_8011F278 = .data:0x8011F278; // type:object size:0xE data:string +lbl_8011F286 = .data:0x8011F286; // type:object size:0xE data:string +lbl_8011F294 = .data:0x8011F294; // type:object size:0xE data:string +lbl_8011F2A2 = .data:0x8011F2A2; // type:object size:0xE data:string +lbl_8011F2B0 = .data:0x8011F2B0; // type:object size:0xE data:string +lbl_8011F2BE = .data:0x8011F2BE; // type:object size:0xE data:string +lbl_8011F2CC = .data:0x8011F2CC; // type:object size:0xE data:string +lbl_8011F2DA = .data:0x8011F2DA; // type:object size:0xF data:string +lbl_8011F2E9 = .data:0x8011F2E9; // type:object size:0x13 data:string +lbl_8011F2FC = .data:0x8011F2FC; // type:object size:0x13 data:string +lbl_8011F30F = .data:0x8011F30F; // type:object size:0x12 data:string +lbl_8011F321 = .data:0x8011F321; // type:object size:0xE data:string +lbl_8011F32F = .data:0x8011F32F; // type:object size:0x11 data:string +lbl_8011F340 = .data:0x8011F340; // type:object size:0x10 data:string +lbl_8011F350 = .data:0x8011F350; // type:object size:0x11 data:string +lbl_8011F361 = .data:0x8011F361; // type:object size:0xE data:string +lbl_8011F36F = .data:0x8011F36F; // type:object size:0x10 data:string +lbl_8011F37F = .data:0x8011F37F; // type:object size:0x11 data:string +lbl_8011F390 = .data:0x8011F390; // type:object size:0x11 data:string +lbl_8011F3A1 = .data:0x8011F3A1; // type:object size:0x11 data:string +lbl_8011F3B2 = .data:0x8011F3B2; // type:object size:0x10 data:string +lbl_8011F3C2 = .data:0x8011F3C2; // type:object size:0xF data:string +lbl_8011F3D1 = .data:0x8011F3D1; // type:object size:0x13 data:string +lbl_8011F3E4 = .data:0x8011F3E4; // type:object size:0x13 data:string +lbl_8011F3F7 = .data:0x8011F3F7; // type:object size:0x12 data:string +lbl_8011F409 = .data:0x8011F409; // type:object size:0x11 data:string +lbl_8011F41A = .data:0x8011F41A; // type:object size:0x10 data:string +lbl_8011F42A = .data:0x8011F42A; // type:object size:0xD data:string +lbl_8011F437 = .data:0x8011F437; // type:object size:0x11 data:string +lbl_8011F448 = .data:0x8011F448; // type:object size:0xF data:string +lbl_8011F457 = .data:0x8011F457; // type:object size:0xF data:string +lbl_8011F466 = .data:0x8011F466; // type:object size:0xF data:string +lbl_8011F475 = .data:0x8011F475; // type:object size:0xD data:string +lbl_8011F482 = .data:0x8011F482; // type:object size:0xD data:string +lbl_8011F48F = .data:0x8011F48F; // type:object size:0xD data:string +lbl_8011F49C = .data:0x8011F49C; // type:object size:0xD data:string +lbl_8011F4A9 = .data:0x8011F4A9; // type:object size:0xD data:string +lbl_8011F4B6 = .data:0x8011F4B6; // type:object size:0xD data:string +lbl_8011F4C3 = .data:0x8011F4C3; // type:object size:0xD data:string +lbl_8011F4D0 = .data:0x8011F4D0; // type:object size:0xD data:string +lbl_8011F4DD = .data:0x8011F4DD; // type:object size:0xD data:string +lbl_8011F4EA = .data:0x8011F4EA; // type:object size:0x11 data:string +lbl_8011F4FB = .data:0x8011F4FB; // type:object size:0x15 data:string +lbl_8011F510 = .data:0x8011F510; // type:object size:0x15 data:string +lbl_8011F525 = .data:0x8011F525; // type:object size:0x14 data:string +lbl_8011F539 = .data:0x8011F539; // type:object size:0xF data:string +lbl_8011F548 = .data:0x8011F548; // type:object size:0x13 data:string +lbl_8011F55B = .data:0x8011F55B; // type:object size:0x13 data:string +lbl_8011F56E = .data:0x8011F56E; // type:object size:0x12 data:string +lbl_8011F580 = .data:0x8011F580; // type:object size:0xD data:string +lbl_8011F58D = .data:0x8011F58D; // type:object size:0xF data:string +lbl_8011F59C = .data:0x8011F59C; // type:object size:0x13 data:string +lbl_8011F5AF = .data:0x8011F5AF; // type:object size:0x13 data:string +lbl_8011F5C2 = .data:0x8011F5C2; // type:object size:0x12 data:string +lbl_8011F5D4 = .data:0x8011F5D4; // type:object size:0xE data:string +DataDirStat = .data:0x8011F5E4; // type:object size:0x468 scope:local data:4byte +lbl_8011FA4C = .data:0x8011FA4C; // type:object size:0x1D data:string +lbl_8011FA69 = .data:0x8011FA69; // type:object size:0x1F data:string +lbl_8011FA88 = .data:0x8011FA88; // type:object size:0x3C +lbl_8011FAC4 = .data:0x8011FAC4; // type:object size:0x1A data:string +lbl_8011FADE = .data:0x8011FADE; // type:object size:0x122 +lbl_8011FC00 = .data:0x8011FC00; // type:object size:0x20 +ank8x8_4b = .data:0x8011FC20; // type:object size:0x2000 align:32 +lbl_80121C20 = .data:0x80121C20; // type:object size:0x150 +HeapSizeTbl = .data:0x80121D70; // type:object size:0x78 scope:local +lbl_80121DE8 = .data:0x80121DE8; // type:object size:0x50 +lbl_80121E38 = .data:0x80121E38; // type:object size:0x128 +fcoltbl = .data:0x80121F60; // type:object size:0x40 scope:local align:32 +lbl_80121FA0 = .data:0x80121FA0; // type:object size:0x1F data:string +lbl_80121FBF = .data:0x80121FBF; // type:object size:0x31 +lbl_80121FF0 = .data:0x80121FF0; // type:object size:0x12 +bitSizeTbl = .data:0x80122002; // type:object size:0x16 scope:local +lbl_80122018 = .data:0x80122018; // type:object size:0xF8 +jumptable_80122110 = .data:0x80122110; // type:object size:0x2C scope:local +jumptable_80122140 = .data:0x80122140; // type:object size:0x28 scope:local +jumptable_80122168 = .data:0x80122168; // type:object size:0x2C scope:local +lbl_80122194 = .data:0x80122194; // type:object size:0x18 data:string +texMtxTbl = .data:0x801221B0; // type:object size:0xC data:byte +jumptable_801221BC = .data:0x801221BC; // type:object size:0x28 scope:local +lbl_801221E4 = .data:0x801221E4; // type:object size:0x18 data:string +jumptable_801221FC = .data:0x801221FC; // type:object size:0x28 scope:local +jumptable_80122224 = .data:0x80122224; // type:object size:0x28 scope:local +refMtx = .data:0x8012224C; // type:object size:0x30 scope:local +kColorSelTbl = .data:0x8012227C; // type:object size:0x30 scope:local +kColorTbl = .data:0x801222AC; // type:object size:0x10 scope:local +kColorSelTbl2 = .data:0x801222BC; // type:object size:0x10 scope:local +kColorSelATbl = .data:0x801222CC; // type:object size:0x10 scope:local +lbl_801222DC = .data:0x801222DC; // type:object size:0x14 +jumptable_801222F0 = .data:0x801222F0; // type:object size:0x30 scope:local +jumptable_80122320 = .data:0x80122320; // type:object size:0x28 scope:local +jumptable_80122348 = .data:0x80122348; // type:object size:0x28 scope:local +lbl_80122370 = .data:0x80122370; // type:object size:0x19 data:string +lbl_80122389 = .data:0x80122389; // type:object size:0xA data:string +lbl_80122393 = .data:0x80122393; // type:object size:0x2D +refMapData0 = .data:0x801223C0; // type:object size:0x1240 align:32 noreloc +refMapData1 = .data:0x80123600; // type:object size:0x1100 align:32 noreloc +refMapData2 = .data:0x80124700; // type:object size:0x2080 align:32 noreloc +refMapData3 = .data:0x80126780; // type:object size:0x2080 align:32 noreloc +refMapData4 = .data:0x80128800; // type:object size:0x2080 align:32 noreloc +toonMapData = .data:0x8012A880; // type:object size:0x880 align:32 noreloc +toonMapData2 = .data:0x8012B100; // type:object size:0x1080 align:32 noreloc +hiliteData = .data:0x8012C180; // type:object size:0x480 align:32 noreloc +hiliteData2 = .data:0x8012C600; // type:object size:0x480 align:32 noreloc +hiliteData3 = .data:0x8012CA80; // type:object size:0x480 align:32 noreloc +hiliteData4 = .data:0x8012CF00; // type:object size:0x480 align:32 noreloc +lbl_8012D380 = .data:0x8012D380; // type:object size:0x1B data:string +lbl_8012D39B = .data:0x8012D39B; // type:object size:0x16 data:string +lbl_8012D3B1 = .data:0x8012D3B1; // type:object size:0x21 data:string +lbl_8012D3D2 = .data:0x8012D3D2; // type:object size:0x26 +defCamera = .data:0x8012D3F8; // type:object size:0x58 data:4byte +lbl_8012D450 = .data:0x8012D450; // type:object size:0x28 +lbl_8012D478 = .data:0x8012D478; // type:object size:0x1C data:string +lbl_8012D494 = .data:0x8012D494; // type:object size:0x1C +jumptable_8012D4B0 = .data:0x8012D4B0; // type:object size:0x2C scope:local +jumptable_8012D4DC = .data:0x8012D4DC; // type:object size:0x68 scope:local +jumptable_8012D544 = .data:0x8012D544; // type:object size:0xF0 scope:local +jumptable_8012D634 = .data:0x8012D634; // type:object size:0x20 scope:local +lbl_8012D658 = .data:0x8012D658; // type:object size:0x15 data:string +lbl_8012D66D = .data:0x8012D66D; // type:object size:0x1F data:string +lbl_8012D68C = .data:0x8012D68C; // type:object size:0x18 +basePos = .data:0x8012D6A4; // type:object size:0x30 scope:local +baseST = .data:0x8012D6D4; // type:object size:0x20 scope:local +jitterTbl = .data:0x8012D6F4; // type:object size:0x24 scope:local +jumptable_8012D718 = .data:0x8012D718; // type:object size:0x1C scope:local +lbl_8012D738 = .data:0x8012D738; // type:object size:0xCA +lbl_8012D802 = .data:0x8012D802; // type:object size:0x1C data:string +lbl_8012D81E = .data:0x8012D81E; // type:object size:0x1C data:string +lbl_8012D83A = .data:0x8012D83A; // type:object size:0x1D data:string +lbl_8012D857 = .data:0x8012D857; // type:object size:0x18 data:string +lbl_8012D86F = .data:0x8012D86F; // type:object size:0xC data:string +lbl_8012D87B = .data:0x8012D87B; // type:object size:0x45 +lbl_8012D8C0 = .data:0x8012D8C0; // type:object size:0x45 +lbl_8012D905 = .data:0x8012D905; // type:object size:0x19 data:string +lbl_8012D91E = .data:0x8012D91E; // type:object size:0x17 data:string +lbl_8012D935 = .data:0x8012D935; // type:object size:0x1B3 +XFB_Colors = .data:0x8012DAE8; // type:object size:0xF scope:local data:byte +Ascii8x8_1bpp = .data:0x8012DAF7; // type:object size:0x800 scope:local align:1 +lbl_8012E2F7 = .data:0x8012E2F7; // type:object size:0x19 +lbl_8012E310 = .data:0x8012E310; // type:object size:0x21A +lbl_8012E52A = .data:0x8012E52A; // type:object size:0xB data:string +lbl_8012E535 = .data:0x8012E535; // type:object size:0x273 +lbl_8012E7A8 = .data:0x8012E7A8; // type:object size:0x12 data:string +lbl_8012E7BA = .data:0x8012E7BA; // type:object size:0xD6 +sndGrpTable = .data:0x8012E890; // type:object size:0x5B0 +lbl_8012EE40 = .data:0x8012EE40; // type:object size:0x94 +lbl_8012EED4 = .data:0x8012EED4; // type:object size:0x11 data:string +lbl_8012EEE5 = .data:0x8012EEE5; // type:object size:0x3A +lbl_8012EF1F = .data:0x8012EF1F; // type:object size:0x31 +seqInfoTbl = .data:0x8012EF50; // type:object size:0x1DC scope:local +seqType2SprTbl = .data:0x8012F12C; // type:object size:0x18 scope:local +mgSeqTypeTbl = .data:0x8012F144; // type:object size:0x12 scope:local +lbl_8012F156 = .data:0x8012F156; // type:object size:0x53 scope:local data:string +lbl_8012F1A2 = .data:0x8012F1A9; // type:object size:0x9 scope:local data:string +lbl_8012F1B2 = .data:0x8012F1B2; // type:object size:0x9 scope:local data:string +seqFontAlphaTbl = .data:0x8012F1BB; // type:object size:0x35 scope:local data:string +seqFontKanaTbl = .data:0x8012F1F0; // type:object size:0x52 scope:local +seqFontNumTbl = .data:0x8012F242; // type:object size:0xB scope:local data:string +letterBufTbl = .data:0x8012F250; // type:object size:0x14 scope:local +wordMgTbl = .data:0x8012F264; // type:object size:0x18 scope:local +letterOfs$1002 = .data:0x8012F27C; // type:object size:0x40 +letterOfs$1479 = .data:0x8012F2BC; // type:object size:0x1C +letterOfs$1853 = .data:0x8012F2D8; // type:object size:0x38 +lbl_8012F310 = .data:0x8012F310; // type:object size:0xC data:string +winCharNameTbl = .data:0x8012F31C; // type:object size:0x78 scope:local +lbl_8012F394 = .data:0x8012F394; // type:object size:0xC +winWordTbl = .data:0x8012F3A0; // type:object size:0x18 scope:local +winPosOfs = .data:0x8012F3B8; // type:object size:0x50 scope:local +practiceTbl = .data:0x8012F408; // type:object size:0xAC scope:local +yPosTbl$2458 = .data:0x8012F4B4; // type:object size:0xC scope:local +seqStartFXTbl = .data:0x8012F4C0; // type:object size:0xEC scope:local +lbl_8012F5B0 = .data:0x8012F5B0; // type:object size:0x15 data:string +lbl_8012F5C5 = .data:0x8012F5C5; // type:object size:0x10 data:string +lbl_8012F5D5 = .data:0x8012F5D5; // type:object size:0x13 data:string +lbl_8012F5E8 = .data:0x8012F5E8; // type:object size:0x10 data:string +lbl_8012F5F8 = .data:0x8012F5F8; // type:object size:0x10 data:string +lbl_8012F608 = .data:0x8012F608; // type:object size:0x10 data:string +lbl_8012F618 = .data:0x8012F618; // type:object size:0x10 data:string +lbl_8012F628 = .data:0x8012F628; // type:object size:0x10 data:string +lbl_8012F638 = .data:0x8012F638; // type:object size:0x10 data:string +lbl_8012F648 = .data:0x8012F648; // type:object size:0x10 data:string +lbl_8012F658 = .data:0x8012F658; // type:object size:0x10 data:string +lbl_8012F668 = .data:0x8012F668; // type:object size:0x10 data:string +lbl_8012F678 = .data:0x8012F678; // type:object size:0x10 data:string +lbl_8012F688 = .data:0x8012F688; // type:object size:0x10 data:string +lbl_8012F698 = .data:0x8012F698; // type:object size:0x10 data:string +lbl_8012F6A8 = .data:0x8012F6A8; // type:object size:0x10 data:string +lbl_8012F6B8 = .data:0x8012F6B8; // type:object size:0x10 data:string +lbl_8012F6C8 = .data:0x8012F6C8; // type:object size:0x10 data:string +lbl_8012F6D8 = .data:0x8012F6D8; // type:object size:0x10 data:string +lbl_8012F6E8 = .data:0x8012F6E8; // type:object size:0x10 data:string +lbl_8012F6F8 = .data:0x8012F6F8; // type:object size:0x10 data:string +lbl_8012F708 = .data:0x8012F708; // type:object size:0x10 data:string +lbl_8012F718 = .data:0x8012F718; // type:object size:0x10 data:string +lbl_8012F728 = .data:0x8012F728; // type:object size:0x10 data:string +lbl_8012F738 = .data:0x8012F738; // type:object size:0x10 data:string +lbl_8012F748 = .data:0x8012F748; // type:object size:0x10 data:string +lbl_8012F758 = .data:0x8012F758; // type:object size:0x10 data:string +lbl_8012F768 = .data:0x8012F768; // type:object size:0x10 data:string +lbl_8012F778 = .data:0x8012F778; // type:object size:0x10 data:string +lbl_8012F788 = .data:0x8012F788; // type:object size:0x10 data:string +lbl_8012F798 = .data:0x8012F798; // type:object size:0x10 data:string +lbl_8012F7A8 = .data:0x8012F7A8; // type:object size:0x10 data:string +lbl_8012F7B8 = .data:0x8012F7B8; // type:object size:0x10 data:string +lbl_8012F7C8 = .data:0x8012F7C8; // type:object size:0x10 data:string +lbl_8012F7D8 = .data:0x8012F7D8; // type:object size:0x10 data:string +lbl_8012F7E8 = .data:0x8012F7E8; // type:object size:0x10 data:string +lbl_8012F7F8 = .data:0x8012F7F8; // type:object size:0x10 data:string +lbl_8012F808 = .data:0x8012F808; // type:object size:0x10 data:string +lbl_8012F818 = .data:0x8012F818; // type:object size:0x10 data:string +lbl_8012F828 = .data:0x8012F828; // type:object size:0x10 data:string +lbl_8012F838 = .data:0x8012F838; // type:object size:0x10 data:string +lbl_8012F848 = .data:0x8012F848; // type:object size:0x10 data:string +lbl_8012F858 = .data:0x8012F858; // type:object size:0x10 data:string +lbl_8012F868 = .data:0x8012F868; // type:object size:0x10 data:string +lbl_8012F878 = .data:0x8012F878; // type:object size:0x10 data:string +lbl_8012F888 = .data:0x8012F888; // type:object size:0x10 data:string +lbl_8012F898 = .data:0x8012F898; // type:object size:0x10 data:string +lbl_8012F8A8 = .data:0x8012F8A8; // type:object size:0x10 data:string +lbl_8012F8B8 = .data:0x8012F8B8; // type:object size:0x10 data:string +lbl_8012F8C8 = .data:0x8012F8C8; // type:object size:0x10 data:string +lbl_8012F8D8 = .data:0x8012F8D8; // type:object size:0x10 data:string +lbl_8012F8E8 = .data:0x8012F8E8; // type:object size:0x10 data:string +lbl_8012F8F8 = .data:0x8012F8F8; // type:object size:0x10 data:string +lbl_8012F908 = .data:0x8012F908; // type:object size:0x10 data:string +lbl_8012F918 = .data:0x8012F918; // type:object size:0x10 data:string +lbl_8012F928 = .data:0x8012F928; // type:object size:0x10 data:string +lbl_8012F938 = .data:0x8012F938; // type:object size:0x10 data:string +lbl_8012F948 = .data:0x8012F948; // type:object size:0x10 data:string +lbl_8012F958 = .data:0x8012F958; // type:object size:0x10 data:string +lbl_8012F968 = .data:0x8012F968; // type:object size:0x10 data:string +lbl_8012F978 = .data:0x8012F978; // type:object size:0x10 data:string +lbl_8012F988 = .data:0x8012F988; // type:object size:0x10 data:string +lbl_8012F998 = .data:0x8012F998; // type:object size:0x10 data:string +lbl_8012F9A8 = .data:0x8012F9A8; // type:object size:0x10 data:string +lbl_8012F9B8 = .data:0x8012F9B8; // type:object size:0x10 data:string +lbl_8012F9C8 = .data:0x8012F9C8; // type:object size:0x10 data:string +lbl_8012F9D8 = .data:0x8012F9D8; // type:object size:0x10 data:string +lbl_8012F9E8 = .data:0x8012F9E8; // type:object size:0x10 data:string +lbl_8012F9F8 = .data:0x8012F9F8; // type:object size:0x10 data:string +lbl_8012FA08 = .data:0x8012FA08; // type:object size:0x10 data:string +lbl_8012FA18 = .data:0x8012FA18; // type:object size:0x10 data:string +lbl_8012FA28 = .data:0x8012FA28; // type:object size:0x10 data:string +lbl_8012FA38 = .data:0x8012FA38; // type:object size:0x12 data:string +lbl_8012FA4A = .data:0x8012FA4A; // type:object size:0x15 data:string +lbl_8012FA5F = .data:0x8012FA5F; // type:object size:0x13 data:string +lbl_8012FA72 = .data:0x8012FA72; // type:object size:0x10 data:string +lbl_8012FA82 = .data:0x8012FA82; // type:object size:0x12 data:string +lbl_8012FA94 = .data:0x8012FA94; // type:object size:0x13 data:string +lbl_8012FAA7 = .data:0x8012FAA7; // type:object size:0x13 data:string +lbl_8012FABA = .data:0x8012FABA; // type:object size:0x13 data:string +lbl_8012FACD = .data:0x8012FACD; // type:object size:0x12 data:string +lbl_8012FADF = .data:0x8012FADF; // type:object size:0xF data:string +lbl_8012FAEE = .data:0x8012FAEE; // type:object size:0xF data:string +lbl_8012FAFD = .data:0x8012FAFD; // type:object size:0x10 data:string +lbl_8012FB0D = .data:0x8012FB0D; // type:object size:0x12 data:string +lbl_8012FB1F = .data:0x8012FB1F; // type:object size:0xF data:string +lbl_8012FB2E = .data:0x8012FB2E; // type:object size:0x13 data:string +lbl_8012FB41 = .data:0x8012FB41; // type:object size:0x11 data:string +lbl_8012FB52 = .data:0x8012FB52; // type:object size:0x15 data:string +lbl_8012FB67 = .data:0x8012FB67; // type:object size:0xF data:string +lbl_8012FB76 = .data:0x8012FB76; // type:object size:0xF data:string +lbl_8012FB85 = .data:0x8012FB85; // type:object size:0xF data:string +lbl_8012FB94 = .data:0x8012FB94; // type:object size:0xF data:string +lbl_8012FBA3 = .data:0x8012FBA3; // type:object size:0xF data:string +lbl_8012FBB2 = .data:0x8012FBB2; // type:object size:0xF data:string +lbl_8012FBC1 = .data:0x8012FBC1; // type:object size:0xF data:string +lbl_8012FBD0 = .data:0x8012FBD0; // type:object size:0xF data:string +lbl_8012FBDF = .data:0x8012FBDF; // type:object size:0xF data:string +lbl_8012FBEE = .data:0x8012FBEE; // type:object size:0x12 +_ovltbl = .data:0x8012FC00; // type:object size:0x320 +lbl_8012FF20 = .data:0x8012FF20; // type:object size:0x20 +fadeInFunc = .data:0x8012FF40; // type:object size:0xC scope:local +fadeOutFunc = .data:0x8012FF4C; // type:object size:0xC scope:local +spcFontTbl = .data:0x8012FF60; // type:object size:0x170 scope:local +charWETbl = .data:0x801300D0; // type:object size:0x130 +charWJTbl = .data:0x80130200; // type:object size:0x140 +charColPal = .data:0x80130340; // type:object size:0x3C scope:local align:32 +frameFileTbl = .data:0x8013037C; // type:object size:0x10 scope:local +lbl_8013038C = .data:0x8013038C; // type:object size:0xE data:string +lbl_8013039A = .data:0x8013039A; // type:object size:0xF data:string +lbl_801303A9 = .data:0x801303A9; // type:object size:0x10 data:string +lbl_801303B9 = .data:0x801303B9; // type:object size:0x11 data:string +lbl_801303CA = .data:0x801303CA; // type:object size:0x10 data:string +lbl_801303DA = .data:0x801303DA; // type:object size:0x11 data:string +lbl_801303EB = .data:0x801303EB; // type:object size:0x10 data:string +lbl_801303FB = .data:0x801303FB; // type:object size:0x11 data:string +lbl_8013040C = .data:0x8013040C; // type:object size:0x10 data:string +lbl_8013041C = .data:0x8013041C; // type:object size:0x11 data:string +lbl_8013042D = .data:0x8013042D; // type:object size:0x10 data:string +lbl_8013043D = .data:0x8013043D; // type:object size:0x13 +mesDataTbl = .data:0x80130450; // type:object size:0x30 scope:local +winVoiceTbl = .data:0x80130480; // type:object size:0x54 scope:local +lbl_801304D4 = .data:0x801304D4; // type:object size:0x13 data:string +lbl_801304E7 = .data:0x801304E7; // type:object size:0x19 +winPortraitTbl = .data:0x80130500; // type:object size:0x50 scope:local +lbl_80130550 = .data:0x80130550; // type:object size:0x26 data:string +lbl_80130576 = .data:0x80130576; // type:object size:0x2A +lbl_801305A0 = .data:0x801305A0; // type:object size:0x19 data:string +lbl_801305B9 = .data:0x801305B9; // type:object size:0x14 data:string +lbl_801305CD = .data:0x801305CD; // type:object size:0x93 +lbl_80130660 = .data:0x80130660; // type:object size:0x30 +effectDataTbl = .data:0x80130690; // type:object size:0x60 scope:local +charDirTbl = .data:0x801306F0; // type:object size:0x60 scope:local +effectDustParam = .data:0x80130750; // type:object size:0x38 scope:local +effectDotParam = .data:0x80130788; // type:object size:0x38 scope:local +effectStarParam = .data:0x801307C0; // type:object size:0x38 scope:local +effectWarnParam = .data:0x801307F8; // type:object size:0x38 scope:local +effectSmokeParam = .data:0x80130830; // type:object size:0x38 scope:local +lbl_801309A0 = .data:0x80130868; // type:object size:0x20 scope:local +lbl_801309C0 = .data:0x80130888; // type:object size:0x20 scope:local +lbl_801309E0 = .data:0x801308A8; // type:object size:0x10 scope:local +jumptable_801308B8 = .data:0x801308B8; // type:object size:0x1E8 scope:local +voiceParam = .data:0x80130AA0; // type:object size:0x40 scope:local +lbl_80130AE0 = .data:0x80130AE0; // type:object size:0xE data:string +lbl_80130AEE = .data:0x80130AEE; // type:object size:0xE data:string +lbl_80130AFC = .data:0x80130AFC; // type:object size:0xE data:string +lbl_80130B0A = .data:0x80130B0A; // type:object size:0xD data:string +lbl_80130B17 = .data:0x80130B17; // type:object size:0xD data:string +lbl_80130B24 = .data:0x80130B24; // type:object size:0xB data:string +lbl_80130B2F = .data:0x80130B2F; // type:object size:0xF data:string +lbl_80130B3E = .data:0x80130B3E; // type:object size:0xF data:string +lbl_80130B4D = .data:0x80130B4D; // type:object size:0xF data:string +lbl_80130B5C = .data:0x80130B5C; // type:object size:0xF data:string +lbl_80130B6B = .data:0x80130B6B; // type:object size:0xF data:string +lbl_80130B7A = .data:0x80130B7A; // type:object size:0xF data:string +lbl_80130B89 = .data:0x80130B89; // type:object size:0x9 data:string +lbl_80130B92 = .data:0x80130B92; // type:object size:0xD data:string +lbl_80130B9F = .data:0x80130B9F; // type:object size:0x17 data:string +lbl_80130BB6 = .data:0x80130BB6; // type:object size:0x17 data:string +lbl_80130BCD = .data:0x80130BCD; // type:object size:0xE data:string +lbl_80130BDB = .data:0x80130BDB; // type:object size:0xE data:string +lbl_80130BE9 = .data:0x80130BE9; // type:object size:0xD data:string +lbl_80130BF6 = .data:0x80130BF6; // type:object size:0xE data:string +lbl_80130C04 = .data:0x80130C04; // type:object size:0xE data:string +lbl_80130C12 = .data:0x80130C12; // type:object size:0xF data:string +lbl_80130C21 = .data:0x80130C21; // type:object size:0xF data:string +lbl_80130C30 = .data:0x80130C30; // type:object size:0x18 data:string +lbl_80130C48 = .data:0x80130C48; // type:object size:0x18 data:string +lbl_80130C60 = .data:0x80130C60; // type:object size:0xE data:string +lbl_80130C6E = .data:0x80130C6E; // type:object size:0x18 data:string +lbl_80130C86 = .data:0x80130C86; // type:object size:0x1A +charTexNameTbl = .data:0x80130CA0; // type:object size:0x100 +lbl_80130DA0 = .data:0x80130DA0; // type:object size:0xD data:string +lbl_80130DAD = .data:0x80130DAD; // type:object size:0xD data:string +lbl_80130DBA = .data:0x80130DBA; // type:object size:0xE data:string +lbl_80130DC8 = .data:0x80130DC8; // type:object size:0xE data:string +lbl_80130DD6 = .data:0x80130DD6; // type:object size:0x12 +hookNameTbl = .data:0x80130DE8; // type:object size:0xA0 scope:local +modelParticleParam = .data:0x80130E88; // type:object size:0x38 scope:local +coinParticleParam = .data:0x80130EC0; // type:object size:0x38 +lbl_80130EF8 = .data:0x80130EF8; // type:object size:0x38 scope:local +lbl_80130F30 = .data:0x80130F30; // type:object size:0x38 scope:local +lbl_80130F68 = .data:0x80130F68; // type:object size:0x1C +lbl_80130F84 = .data:0x80130F84; // type:object size:0x38 +lbl_80130FBC = .data:0x80130FBC; // type:object size:0x38 +lbl_80130FF4 = .data:0x80130FF4; // type:object size:0xBC +VolumeTable = .data:0x801310B0; // type:object size:0x100 scope:local +lbl_801311B0 = .data:0x801311B0; // type:object size:0x4D +lbl_801311FD = .data:0x801311FD; // type:object size:0x1B +mgInfoTbl = .data:0x80131218; // type:object size:0xE00 data:2byte +commentTbl = .data:0x80132018; // type:object size:0x40 scope:local +lbl_80132058 = .data:0x80132058; // type:object size:0xC data:string +lbl_80132064 = .data:0x80132064; // type:object size:0xC data:string +lbl_80132070 = .data:0x80132070; // type:object size:0xC data:string +SaveFileNameTbl = .data:0x8013207C; // type:object size:0xC +jumptable_80132088 = .data:0x80132088; // type:object size:0x34 scope:local +SR_PreRstChk = .data:0x801320C0; // type:object size:0x10 scope:local +coveropen_en = .data:0x801320D0; // type:object size:0x1384 noreloc +fatalerror_en = .data:0x80133454; // type:object size:0x1384 noreloc +loading_en = .data:0x801347D8; // type:object size:0x1384 noreloc +nodisc_en = .data:0x80135B5C; // type:object size:0x1384 noreloc +retryerror_en = .data:0x80136EE0; // type:object size:0x1384 noreloc +wrongdisc_en = .data:0x80138264; // type:object size:0x1384 noreloc +coveropen_fr = .data:0x801395E8; // type:object size:0x1384 noreloc +fatalerror_fr = .data:0x8013A96C; // type:object size:0x1384 noreloc +loading_fr = .data:0x8013BCF0; // type:object size:0x1384 noreloc +nodisc_fr = .data:0x8013D074; // type:object size:0x1384 noreloc +retryerror_fr = .data:0x8013E3F8; // type:object size:0x1384 noreloc +wrongdisc_fr = .data:0x8013F77C; // type:object size:0x1384 noreloc +coveropen_ge = .data:0x80140B00; // type:object size:0x1384 noreloc +fatalerror_ge = .data:0x80141E84; // type:object size:0x1384 noreloc +loading_ge = .data:0x80143208; // type:object size:0x1384 noreloc +nodisc_ge = .data:0x8014458C; // type:object size:0x1384 noreloc +retryerror_ge = .data:0x80145910; // type:object size:0x1384 noreloc +wrongdisc_ge = .data:0x80146C94; // type:object size:0x1384 noreloc +coveropen_it = .data:0x80148018; // type:object size:0x1384 noreloc +fatalerror_it = .data:0x8014939C; // type:object size:0x1384 noreloc +loading_it = .data:0x8014A720; // type:object size:0x1384 noreloc +nodisc_it = .data:0x8014BAA4; // type:object size:0x1384 noreloc +retryerror_it = .data:0x8014CE28; // type:object size:0x1384 noreloc +wrongdisc_it = .data:0x8014E1AC; // type:object size:0x1384 noreloc +coveropen_sp = .data:0x8014F530; // type:object size:0x1384 noreloc +fatalerror_sp = .data:0x801508B4; // type:object size:0x1384 noreloc +loading_sp = .data:0x80151C38; // type:object size:0x1384 noreloc +nodisc_sp = .data:0x80152FBC; // type:object size:0x1384 noreloc +retryerror_sp = .data:0x80154340; // type:object size:0x1384 noreloc +wrongdisc_sp = .data:0x801556C4; // type:object size:0x1384 noreloc +jumptable_80156A48 = .data:0x80156A48; // type:object size:0x34 scope:local +bmpMes$493 = .data:0x80156A7C; // type:object size:0x78 scope:local +lbl_80156AF4 = .data:0x80156AF4; // type:object size:0x13 data:string +lbl_80156B07 = .data:0x80156B07; // type:object size:0x12 data:string +camViewTbl = .data:0x80156B20; // type:object size:0x24 scope:local +jumptable_80156B44 = .data:0x80156B44; // type:object size:0x24 scope:local +confettiLightTbl = .data:0x80156B68; // type:object size:0x48 scope:local +last5GfxSprTbl = .data:0x80156BB0; // type:object size:0xC scope:local +last5GfxPosTbl = .data:0x80156BBC; // type:object size:0x30 scope:local +tauntActiveFXTbl = .data:0x80156BEC; // type:object size:0x10 scope:local +tauntFXTbl = .data:0x80156BFC; // type:object size:0x20 scope:local +diceJumpObj = .data:0x80156C20; // type:object size:0x10 scope:local +motDoneF = .data:0x80156C30; // type:object size:0x10 scope:local +bowserSuitMot = .data:0x80156C40; // type:object size:0xA scope:local data:2byte +lbl_80156C4A = .data:0x80156C4A; // type:object size:0x17 data:string +lbl_80156C61 = .data:0x80156C61; // type:object size:0x17 data:string +lbl_80156C78 = .data:0x80156C78; // type:object size:0xE data:string +lbl_80156C86 = .data:0x80156C86; // type:object size:0xE data:string +lbl_80156C94 = .data:0x80156C94; // type:object size:0x18 data:string +lbl_80156CAC = .data:0x80156CAC; // type:object size:0x18 data:string +eyeMatTbl = .data:0x80156CC4; // type:object size:0x40 scope:local +lbl_80156D04 = .data:0x80156D04; // type:object size:0x20 +boardMotTbl = .data:0x80156D24; // type:object size:0x20 scope:local +boardMotRevTbl = .data:0x80156D44; // type:object size:0x20 scope:local +bowserSuitCharMdlTbl = .data:0x80156D64; // type:object size:0x20 scope:local +bowserSuitMotTbl = .data:0x80156D84; // type:object size:0x14 scope:local +sparkMotTbl = .data:0x80156D98; // type:object size:0x20 scope:local +boardSparkSfxTbl = .data:0x80156DB8; // type:object size:0x20 scope:local +boardSparkSfxTblAlt = .data:0x80156DD8; // type:object size:0x20 scope:local +megaSquishObj = .data:0x80156DF8; // type:object size:0x10 scope:local +megaSquishSfxTbl = .data:0x80156E08; // type:object size:0x20 scope:local +PortraitTbl = .data:0x80156E28; // type:object size:0x24 scope:local +StarPortraitTbl = .data:0x80156E4C; // type:object size:0x24 scope:local +boardMusTbl = .data:0x80156E70; // type:object size:0x18 scope:local +comItemPreferTbl = .data:0x80156E88; // type:object size:0x60 scope:local +comItemUseCheckFuncTbl = .data:0x80156EE8; // type:object size:0x38 scope:local +comJunctionDirTbl = .data:0x80156F20; // type:object size:0x30 scope:local +overhead2DPos = .data:0x80156F50; // type:object size:0x28 scope:local +mapViewMinZ = .data:0x80156F78; // type:object size:0x24 scope:local +mapViewMaxZ = .data:0x80156F9C; // type:object size:0x24 scope:local +mapViewMinX = .data:0x80156FC0; // type:object size:0x24 scope:local +mapViewMaxX = .data:0x80156FE4; // type:object size:0x24 scope:local +overheadCamZoom = .data:0x80157008; // type:object size:0x24 scope:local +overheadCamPosZ = .data:0x8015702C; // type:object size:0x24 scope:local +spaceImgIdx = .data:0x80157050; // type:object size:0xC scope:local +spaceHiliteImgIdx = .data:0x8015705C; // type:object size:0xC scope:local +jumptable_80157068 = .data:0x80157068; // type:object size:0x28 scope:local +hostMessTbl = .data:0x80157090; // type:object size:0x24 scope:local +itemPriceTbl = .data:0x801570B4; // type:object size:0x10 scope:local +shopMotTbl = .data:0x801570C4; // type:object size:0x6C scope:local +lbl_80157130 = .data:0x80157130; // type:object size:0xA data:string +itemPrioTbl = .data:0x8015713A; // type:object size:0x8C scope:local +rankItemGroupTbl = .data:0x801571C6; // type:object size:0x18 scope:local +cursorPosTbl = .data:0x801571E0; // type:object size:0x30 scope:local data:float +comInputDraw1 = .data:0x80157210; // type:object size:0xEE scope:local +comInputDraw2 = .data:0x801572FE; // type:object size:0xBA scope:local +comInputBall = .data:0x801573B8; // type:object size:0xCE scope:local +lbl_80157486 = .data:0x80157486; // type:object size:0xC scope:local data:string +lbl_80157492 = .data:0x80157492; // type:object size:0x13 +lbl_801574A5 = .data:0x801574A5; // type:object size:0x23 +jumptable_801574C8 = .data:0x801574C8; // type:object size:0x24 scope:local +ticketObj = .data:0x801574EC; // type:object size:0x30 scope:local +ticketPrize = .data:0x8015751C; // type:object size:0xC scope:local +handLastPos = .data:0x80157528; // type:object size:0xC scope:local data:4byte +loseSoundTbl = .data:0x80157534; // type:object size:0x20 scope:local +loseMotTbl = .data:0x80157554; // type:object size:0x24 scope:local +coinChgObj = .data:0x80157578; // type:object size:0x10 scope:local +coinDigitMdl = .data:0x80157588; // type:object size:0x28 scope:local +jumptable_801575B0 = .data:0x801575B0; // type:object size:0x1C scope:local +wheelSprTbl = .data:0x801575D0; // type:object size:0x28 scope:local +wheelSprPrio = .data:0x801575F8; // type:object size:0xE scope:local +wheelCharIconTbl = .data:0x80157608; // type:object size:0x20 scope:local +lbl_80157628 = .data:0x80157628; // type:object size:0x10 +boardStarSndTbl = .data:0x80157638; // type:object size:0x20 +hostMotTbl = .data:0x80157658; // type:object size:0x48 scope:local +starEffParam = .data:0x801576A0; // type:object size:0x50 scope:local noreloc +diceObj = .data:0x801576F0; // type:object size:0xC scope:local data:4byte +diceDigitObj = .data:0x801576FC; // type:object size:0xC scope:local data:4byte +diceSndStatus = .data:0x80157708; // type:object size:0xC scope:local +diceEffParam = .data:0x80157714; // type:object size:0x50 scope:local +diceDigitMdlTbl = .data:0x80157764; // type:object size:0x28 scope:local +uiStatus = .data:0x80157790; // type:object size:0x70 scope:local data:byte +statusSprTbl = .data:0x80157800; // type:object size:0x2C scope:local data:byte +statusSprPrioTbl = .data:0x8015782C; // type:object size:0x18 scope:local data:byte +statusHideOfsTbl = .data:0x80157844; // type:object size:0x10 scope:local data:byte +statusPosTbl = .data:0x80157854; // type:object size:0x20 scope:local data:float +statusColTbl = .data:0x80157874; // type:object size:0x10 scope:local +statusSprPosTbl = .data:0x80157884; // type:object size:0x88 scope:local +statusItemPosTbl = .data:0x8015790C; // type:object size:0x30 scope:local +itemMdlTbl = .data:0x8015793C; // type:object size:0x38 scope:local +teamItemStatusPosTbl = .data:0x80157974; // type:object size:0x18 scope:local +coinMdl = .data:0x80157990; // type:object size:0x14 scope:local +itemFuncTbl = .data:0x801579A8; // type:object size:0x38 scope:local +itemRestoreFuncTbl = .data:0x801579E0; // type:object size:0x38 scope:local +itemMdlTbl = .data:0x80157A18; // type:object size:0x38 scope:local +forceMoveSfxTbl = .data:0x80157A50; // type:object size:0x18 scope:local +callMotTbl = .data:0x80157A68; // type:object size:0x20 scope:local +lbl_80157A88 = .data:0x80157A88; // type:object size:0x13 data:string +lbl_80157A9B = .data:0x80157A9B; // type:object size:0x13 data:string +lbl_80157AAE = .data:0x80157AAE; // type:object size:0x13 data:string +lbl_80157AC1 = .data:0x80157AC1; // type:object size:0x13 data:string +lbl_80157AD4 = .data:0x80157AD4; // type:object size:0x13 data:string +lbl_80157AE7 = .data:0x80157AE7; // type:object size:0x13 data:string +lbl_80157AFA = .data:0x80157AFA; // type:object size:0x13 data:string +lbl_80157B0D = .data:0x80157B0D; // type:object size:0x13 data:string +callHookTbl = .data:0x80157B20; // type:object size:0x20 scope:local +callAttackMotTbl = .data:0x80157B40; // type:object size:0x18 scope:local +callAttackMotTbl2 = .data:0x80157B58; // type:object size:0x18 scope:local +suitMotTbl = .data:0x80157B70; // type:object size:0x40 scope:local +lbl_80157BB0 = .data:0x80157BB0; // type:object size:0x10 +booMotTbl = .data:0x80157BC0; // type:object size:0xC scope:local +shadowPos = .data:0x80157BCC; // type:object size:0xC scope:local +shadowTarget = .data:0x80157BD8; // type:object size:0xC scope:local +shadowUp = .data:0x80157BE4; // type:object size:0xC scope:local +armUpMotTbl = .data:0x80157BF0; // type:object size:0x20 scope:local +scareMotTbl = .data:0x80157C10; // type:object size:0x20 scope:local +impactMotTbl = .data:0x80157C30; // type:object size:0x20 scope:local +cameraDataTbl = .data:0x80157C50; // type:object size:0x134 scope:local +genieMotTbl = .data:0x80157D84; // type:object size:0x10 scope:local +scareFXTbl = .data:0x80157D98; // type:object size:0x20 scope:local +jumptable_80157DB8 = .data:0x80157DB8; // type:object size:0x1C scope:local +lbl_80157DD4 = .data:0x80157DD4; // type:object size:0x14 +battleCursorPosTbl = .data:0x80157DE8; // type:object size:0x18 scope:local +bombFXTbl = .data:0x80157E00; // type:object size:0x20 scope:local +battleSprPrioTbl = .data:0x80157E20; // type:object size:0x16 scope:local +jumptable_80157E38 = .data:0x80157E38; // type:object size:0x24 scope:local +battleChanceTbl = .data:0x80157E5C; // type:object size:0x3C scope:local +comPrizeMessTbl = .data:0x80157E98; // type:object size:0x18 scope:local +booPlayerMotTbl = .data:0x80157EB0; // type:object size:0xC0 scope:local +booSfxTbl = .data:0x80157F70; // type:object size:0x80 scope:local +hostMess = .data:0x80157FF0; // type:object size:0x18 scope:local +lbl_80158008 = .data:0x80158008; // type:object size:0xC data:string +ballBooMdl = .data:0x80158014; // type:object size:0x18 scope:local +jumptable_8015802C = .data:0x8015802C; // type:object size:0x20 scope:local +stealSuccessTbl = .data:0x8015804C; // type:object size:0x24 scope:local +stealTbl = .data:0x80158070; // type:object size:0x12 scope:local +mgSetupSprTbl = .data:0x80158088; // type:object size:0x34 scope:local +statusLayout4P = .data:0x801580BC; // type:object size:0x30 scope:local +statusLayout1Vs3 = .data:0x801580EC; // type:object size:0x30 scope:local +statusLayout2Vs2 = .data:0x8015811C; // type:object size:0x30 scope:local +luckyMessTbl = .data:0x8015814C; // type:object size:0x24 scope:local +jumptable_80158170 = .data:0x80158170; // type:object size:0x20 scope:local +cursorYTbl = .data:0x80158190; // type:object size:0x10 scope:local +hiliteYTbl = .data:0x801581A0; // type:object size:0x10 scope:local +hiliteColTbl = .data:0x801581B0; // type:object size:0xC scope:local +hostMesTbl = .data:0x801581C0; // type:object size:0x90 scope:local +houseMdlTbl = .data:0x80158250; // type:object size:0x30 scope:local +booMotTbl = .data:0x80158280; // type:object size:0xC scope:local +hostMotTbl = .data:0x8015828C; // type:object size:0x6C scope:local +playerStartObj = .data:0x801582F8; // type:object size:0x10 scope:local data:4byte +hitFX = .data:0x80158308; // type:object size:0x10 scope:local +startMesTbl = .data:0x80158318; // type:object size:0xB4 scope:local +logoSprTbl = .data:0x801583CC; // type:object size:0x24 scope:local +jumptable_801583F0 = .data:0x801583F0; // type:object size:0x1C scope:local +digitMdlTbl = .data:0x8015840C; // type:object size:0x24 scope:local +playerOrderMesTbl = .data:0x80158430; // type:object size:0xC scope:local +jumptable_8015843C = .data:0x8015843C; // type:object size:0x24 scope:local +hostMotTbl = .data:0x80158460; // type:object size:0x120 scope:local +messBaseTbl = .data:0x80158580; // type:object size:0x24 scope:local +playerOfsTbl = .data:0x801585A4; // type:object size:0x18 scope:local +plateObjNameTbl = .data:0x801585BC; // type:object size:0x10 scope:local +hiliteObjNameTbl = .data:0x801585CC; // type:object size:0x10 scope:local +faceObjNameTbl = .data:0x801585DC; // type:object size:0x10 scope:local +resultRankFX12Tbl = .data:0x801585EC; // type:object size:0x20 scope:local +resultRankFX3Tbl = .data:0x8015860C; // type:object size:0x20 scope:local +resultRankFX4Tbl = .data:0x8015862C; // type:object size:0x20 scope:local +impactFXTbl = .data:0x8015864C; // type:object size:0x20 scope:local +lotteryWheelMdlTbl = .data:0x8015866C; // type:object size:0x20 scope:local +teamSprPrioTbl = .data:0x8015868C; // type:object size:0x1E scope:local +teamSprTbl = .data:0x801586AC; // type:object size:0x34 scope:local +teamSprPosTbl = .data:0x801586E0; // type:object size:0x78 scope:local +teamCharSprTbl = .data:0x80158758; // type:object size:0x20 scope:local +boxModelID = .data:0x80158778; // type:object size:0x10 scope:local data:2byte +boxPosTbl = .data:0x80158788; // type:object size:0x40 scope:local data:float +padConfigPosTbl = .data:0x801587C8; // type:object size:0x20 scope:local +boardLogoTbl = .data:0x801587E8; // type:object size:0x24 scope:local +turnDigitPosTbl = .data:0x8015880C; // type:object size:0x10 scope:local +boxMdlTbl = .data:0x8015881C; // type:object size:0x20 scope:local +jumptable_8015883C = .data:0x8015883C; // type:object size:0x20 scope:local +jumptable_8015885C = .data:0x8015885C; // type:object size:0x20 scope:local +jumptable_8015887C = .data:0x8015887C; // type:object size:0x20 scope:local +lbl_801588A0 = .data:0x801588A0; // type:object size:0x24 data:string +lbl_801588C4 = .data:0x801588C4; // type:object size:0x24 data:string +@84 = .data:0x801588E8; // type:object size:0x1E scope:local data:string +__OSExceptionLocations = .data:0x801589D0; // type:object size:0x3C scope:local +lbl_80158AA8 = .data:0x80158AA8; // type:object size:0x398 +DSPInitCode = .data:0x80158E40; // type:object size:0x80 scope:local +@69 = .data:0x80158EC0; // type:object size:0x29 scope:local data:string +lbl_801590F0 = .data:0x801590F0; // type:object size:0x1B4 +@74 = .data:0x801592A4; // type:object size:0x23 scope:local data:string +@10 = .data:0x801592C8; // type:object size:0x16 scope:local data:string +@43 = .data:0x801595A4; // type:object size:0x40 scope:local +lbl_801595E8 = .data:0x801595E8; // type:object size:0x30 data:4byte +lbl_80159618 = .data:0x80159618; // type:object size:0x28 +lbl_80159640 = .data:0x80159640; // type:object size:0x28 +ResetFunctionInfo = .data:0x80159668; // type:object size:0x10 scope:local +lbl_80159678 = .data:0x80159678; // type:object size:0x78 +lbl_801596F0 = .data:0x801596F0; // type:object size:0x30 +lbl_80159720 = .data:0x80159720; // type:object size:0x30 +lbl_80159750 = .data:0x80159750; // type:object size:0x18 data:string +lbl_80159768 = .data:0x80159768; // type:object size:0xC8 data:string +lbl_80159830 = .data:0x80159830; // type:object size:0x38 +lbl_80159868 = .data:0x80159868; // type:object size:0x34 data:string +lbl_8015989C = .data:0x8015989C; // type:object size:0x34 +@13 = .data:0x801598D0; // type:object size:0x15 scope:local data:string +@293 = .data:0x8015991C; // type:object size:0x20 scope:local +jumptable_8015993C = .data:0x8015993C; // type:object size:0x40 scope:local +jumptable_8015997C = .data:0x8015997C; // type:object size:0x34 scope:local +jumptable_801599B0 = .data:0x801599B0; // type:object size:0x34 scope:local +lbl_801599E8 = .data:0x801599E8; // type:object size:0x48 data:4byte +@36 = .data:0x80159A30; // type:object size:0x1A scope:local data:string +lbl_80159AA0 = .data:0x80159AA0; // type:object size:0x164 +jumptable_80159C04 = .data:0x80159C04; // type:object size:0x58 scope:local +lbl_80159D80 = .data:0x80159D80; // type:object size:0xC00 +lbl_8015A980 = .data:0x8015A980; // type:object size:0xC data:string +lbl_8015A98C = .data:0x8015A98C; // type:object size:0x28 +jumptable_8015A9B4 = .data:0x8015A9B4; // type:object size:0x28 scope:local +jumptable_8015AA38 = .data:0x8015AA38; // type:object size:0x28 scope:local +jumptable_8015AA60 = .data:0x8015AA60; // type:object size:0x28 scope:local +jumptable_8015AA88 = .data:0x8015AA88; // type:object size:0x28 scope:local +jumptable_8015AAB0 = .data:0x8015AAB0; // type:object size:0x28 scope:local +lbl_8015AAD8 = .data:0x8015AAD8; // type:object size:0x10 +lbl_8015AAE8 = .data:0x8015AAE8; // type:object size:0x38 +lbl_8015AB20 = .data:0x8015AB20; // type:object size:0x140 +jumptable_8015AC60 = .data:0x8015AC60; // type:object size:0x68 scope:local +jumptable_8015ACC8 = .data:0x8015ACC8; // type:object size:0x44 scope:local +jumptable_8015AD0C = .data:0x8015AD0C; // type:object size:0x1C scope:local +jumptable_8015AD28 = .data:0x8015AD28; // type:object size:0x54 scope:local +GXNtsc480IntDf = .data:0x8015AD80; // type:object size:0x3C +GXNtsc480Prog = .data:0x8015ADBC; // type:object size:0x3C +GXMpal480IntDf = .data:0x8015ADF8; // type:object size:0x3C +GXPal528IntDf = .data:0x8015AE34; // type:object size:0x3C +GXEurgb60Hz480IntDf = .data:0x8015AE70; // type:object size:0x3C +jumptable_8015AEB0 = .data:0x8015AEB0; // type:object size:0x1C scope:local +jumptable_8015AED0 = .data:0x8015AED0; // type:object size:0xF4 scope:local +jumptable_8015AFC4 = .data:0x8015AFC4; // type:object size:0xF4 scope:local +jumptable_8015B0B8 = .data:0x8015B0B8; // type:object size:0x3C scope:local +lbl_8015B0F8 = .data:0x8015B0F8; // type:object size:0x28 +lbl_8015B120 = .data:0x8015B120; // type:object size:0x20 +jumptable_8015B140 = .data:0x8015B140; // type:object size:0x5C scope:local +jumptable_8015B19C = .data:0x8015B19C; // type:object size:0x90 scope:local +jumptable_8015B22C = .data:0x8015B22C; // type:object size:0x5C scope:local +lbl_8015B288 = .data:0x8015B288; // type:object size:0x18 +lbl_8015B2A0 = .data:0x8015B2A0; // type:object size:0x160 +lbl_8015B400 = .data:0x8015B400; // type:object size:0x20 +lbl_8015B420 = .data:0x8015B420; // type:object size:0x20 +Si = .data:0x8015B440; // type:object size:0x14 scope:local data:4byte +Type = .data:0x8015B454; // type:object size:0x10 scope:local +XYNTSC = .data:0x8015B510; // type:object size:0x30 scope:local +lbl_8015B5A8 = .data:0x8015B5A8; // type:object size:0x10 +jumptable_8015B5B8 = .data:0x8015B5B8; // type:object size:0x44 scope:local +jumptable_8015B5FC = .data:0x8015B5FC; // type:object size:0x44 scope:local +jumptable_8015B640 = .data:0x8015B640; // type:object size:0x44 scope:local +lbl_8015B684 = .data:0x8015B684; // type:object size:0xC +lbl_8015B690 = .data:0x8015B690; // type:object size:0x10 +__files = .data:0x8015B6A0; // type:object size:0x140 scope:global +jumptable_8015B7E0 = .data:0x8015B7E0; // type:object size:0x124 scope:local +lbl_8015B908 = .data:0x8015B908; // type:object size:0x100 +lbl_8015BA08 = .data:0x8015BA08; // type:object size:0x100 +@1249 = .data:0x8015BB08; // type:object size:0x84 scope:local +jumptable_8015BB8C = .data:0x8015BB8C; // type:object size:0x84 scope:local +jumptable_8015BC10 = .data:0x8015BC10; // type:object size:0xE0 scope:local +jumptable_8015BCF0 = .data:0x8015BCF0; // type:object size:0x44 scope:local +lbl_8015BD38 = .data:0x8015BD38; // type:object size:0x88 +jumptable_8015BDC0 = .data:0x8015BDC0; // type:object size:0x1C scope:local +jumptable_8015BDDC = .data:0x8015BDDC; // type:object size:0x1C scope:local +gTRKRestoreFlags = .data:0x8015BDF8; // type:object size:0x9 scope:global data:byte +gTRKExceptionStatus = .data:0x8015BE04; // type:object size:0x10 scope:local data:4byte +lbl_8015BE14 = .data:0x8015BE14; // type:object size:0x14 data:4byte +lbl_8015BE28 = .data:0x8015BE28; // type:object size:0x40 data:4byte +gDBCommTable = .data:0x8015BE68; // type:object size:0x1C scope:global data:4byte +jumptable_8015BE88 = .data:0x8015BE88; // type:object size:0x50 scope:local +lbl_8015BED8 = .data:0x8015BED8; // type:object size:0x1C +lbl_8015BEF4 = .data:0x8015BEF4; // type:object size:0x204 +lbl_8015C0F8 = .data:0x8015C0F8; // type:object size:0x20 +lbl_8015C118 = .data:0x8015C118; // type:object size:0x10 +lbl_8015C128 = .data:0x8015C128; // type:object size:0x20 +lbl_8015C148 = .data:0x8015C148; // type:object size:0x10 +jumptable_8015C158 = .data:0x8015C158; // type:object size:0x1C8 scope:local +lbl_8015C320 = .data:0x8015C320; // type:object size:0x200 +lbl_8015C520 = .data:0x8015C520; // type:object size:0x200 +lbl_8015C720 = .data:0x8015C720; // type:object size:0x184 +lbl_8015C8A4 = .data:0x8015C8A4; // type:object size:0x400 +lbl_8015CCA4 = .data:0x8015CCA4; // type:object size:0x204 +lbl_8015CEA8 = .data:0x8015CEA8; // type:object size:0x18 +lbl_8015CEC0 = .data:0x8015CEC0; // type:object size:0x228 +lbl_8015D0E8 = .data:0x8015D0E8; // type:object size:0x10 +lbl_8015D0F8 = .data:0x8015D0F8; // type:object size:0x10 +jumptable_8015D108 = .data:0x8015D108; // type:object size:0x24 scope:local +jumptable_8015D12C = .data:0x8015D12C; // type:object size:0x24 scope:local +jumptable_8015D150 = .data:0x8015D150; // type:object size:0x24 scope:local +lbl_8015D178 = .data:0x8015D178; // type:object size:0x808 +lbl_8015D980 = .data:0x8015D980; // type:object size:0x19E0 +lbl_8015F360 = .data:0x8015F360; // type:object size:0x10 +lbl_8015F370 = .data:0x8015F370; // type:object size:0x20 +lbl_8015F390 = .data:0x8015F390; // type:object size:0x800 +padStatErrOld = .bss:0x8015FBA0; // type:object size:0x10 scope:local +rumbleData = .bss:0x8015FBB0; // type:object size:0x20 scope:local +ReadDataStat = .bss:0x8015FBE0; // type:object size:0x2E00 scope:local align:32 data:4byte +textBuffer = .bss:0x801629E0; // type:object size:0x400 +rmodeobj = .bss:0x80162DE0; // type:object size:0x40 scope:local +HeapTbl = .bss:0x80162E20; // type:object size:0x14 scope:local +strline = .bss:0x80162E38; // type:object size:0x6800 scope:local +pfStrBuf = .bss:0x80169638; // type:object size:0x100 scope:local data:byte +processjmpbuf = .bss:0x80169738; // type:object size:0xF8 scope:local align:8 +HuSprData = .bss:0x80169830; // type:object size:0x9600 +HuSprGrpData = .bss:0x80172E30; // type:object size:0x5400 data:2byte +HuSprOrder = .bss:0x80178230; // type:object size:0x1800 +bmpNoCC = .bss:0x80179A30; // type:object size:0x20 scope:local +HuSprLayerDrawNo = .bss:0x80179A50; // type:object size:0x10 scope:local +Model = .bss:0x80179A60; // type:object size:0x80 +head = .bss:0x80179AE0; // type:object size:0xB0 +rgba = .bss:0x80179B90; // type:object size:0x190 +buf$648 = .bss:0x80179D20; // type:object size:0x300 scope:local data:byte +DrawObjData = .bss:0x8017A020; // type:object size:0x9000 scope:local +BmpPtrBak = .bss:0x80183020; // type:object size:0x20 scope:local data:4byte +MTXBuf = .bss:0x80183040; // type:object size:0x1200 scope:local +scaleBuf = .bss:0x80184240; // type:object size:0x480 scope:local data:4byte +texCol = .bss:0x801846C0; // type:object size:0x40 scope:local data:byte +hiliteMtx = .bss:0x80184700; // type:object size:0x30 scope:local +DrawObjNum = .bss:0x80184730; // type:object size:0x400 scope:local +NBTB = .bss:0x80184B30; // type:object size:0xC scope:local data:float +NBTT = .bss:0x80184B3C; // type:object size:0xC scope:local data:float +PGMaxPos = .bss:0x80184B48; // type:object size:0xC data:float +PGMinPos = .bss:0x80184B54; // type:object size:0xC data:float +Hu3DData = .bss:0x80184B60; // type:object size:0x24800 data:byte +Hu3DCamera = .bss:0x801A9360; // type:object size:0x580 data:float +layerNum = .bss:0x801A98E0; // type:object size:0x10 scope:local data:2byte +layerHook = .bss:0x801A98F0; // type:object size:0x20 scope:local +reflectAnim = .bss:0x801A9910; // type:object size:0x14 data:4byte +hiliteAnim = .bss:0x801A9924; // type:object size:0x10 data:4byte +Hu3DProjection = .bss:0x801A9934; // type:object size:0x260 data:byte +Hu3DShadowData = .bss:0x801A9B94; // type:object size:0x98 data:byte +FogData = .bss:0x801A9C2C; // type:object size:0x10 data:4byte +Hu3DCameraMtx = .bss:0x801A9C3C; // type:object size:0x30 +Hu3DCameraMtxXPose = .bss:0x801A9C6C; // type:object size:0x30 +Hu3DGlobalLight = .bss:0x801A9C9C; // type:object size:0x220 data:2byte +Hu3DLocalLight = .bss:0x801A9EBC; // type:object size:0x880 data:2byte +lbl_8018D39C = .bss:0x801AA73C; // type:object size:0x30 data:2byte +Hu3DMotion = .bss:0x801AA770; // type:object size:0x800 data:2byte +Hu3DTexAnimData = .bss:0x801AAF70; // type:object size:0x1400 data:2byte +Hu3DTexScrData = .bss:0x801AC370; // type:object size:0x6C0 data:2byte +parManProc = .bss:0x801ACA30; // type:object size:0x100 scope:local +perf = .bss:0x801ACB30; // type:object size:0x370 scope:local +Ssw = .bss:0x801ACEA0; // type:object size:0x38 scope:local +omovlhis = .bss:0x801ACED8; // type:object size:0xC0 scope:local +XFB_Geometry = .bss:0x801ACF98; // type:object size:0x18 scope:local +GWPlayerCfg = .bss:0x801ACFB0; // type:object size:0x28 +GWPlayer = .bss:0x801ACFD8; // type:object size:0xC0 data:byte +GWSystem = .bss:0x801AD098; // type:object size:0xDC data:byte +GWGameStat = .bss:0x801AD178; // type:object size:0x118 +GWGameStatDefault = .bss:0x801AD290; // type:object size:0x118 +CRot = .bss:0x801AD3A8; // type:object size:0xC data:float +Center = .bss:0x801AD3B4; // type:object size:0xC data:float +CRotM = .bss:0x801AD3C0; // type:object size:0xC0 +CenterM = .bss:0x801AD480; // type:object size:0xC0 +CZoomM = .bss:0x801AD540; // type:object size:0x40 +omDLLinfoTbl = .bss:0x801AD580; // type:object size:0x50 +sndFXBuf = .bss:0x801AD5D0; // type:object size:0x200 scope:local +charVoiceGroupStat = .bss:0x801AD7D0; // type:object size:0x20 +seqWorkData = .bss:0x801AD7F0; // type:object size:0x400 scope:local data:4byte +winnerNameW = .bss:0x801ADBF0; // type:object size:0x10 scope:local data:2byte +esprite = .bss:0x801ADC00; // type:object size:0x600 data:2byte +espanim = .bss:0x801AE200; // type:object size:0x1200 data:4byte +lbl_80192060 = .bss:0x801AF400; // type:object size:0x100 +lbl_80192160 = .bss:0x801AF500; // type:object size:0x100 +lbl_80192260 = .bss:0x801AF600; // type:object size:0x100 +wipeData = .bss:0x801AF700; // type:object size:0x4C data:4byte +winData = .bss:0x801AF760; // type:object size:0x3000 align:32 data:byte +winKey = .bss:0x801B2760; // type:object size:0x10 +winComKeyBuf = .bss:0x801B2770; // type:object size:0x1400 +mesWInsert = .bss:0x801B3B70; // type:object size:0x10 +ARInfo = .bss:0x801B3B80; // type:object size:0x400 data:byte +arqReq = .bss:0x801B3F80; // type:object size:0x20 scope:local +ARQueBuf = .bss:0x801B3FA0; // type:object size:0x280 scope:local +preLoadBuf = .bss:0x801B4220; // type:object size:0x40 scope:local +charInstance = .bss:0x801B4260; // type:object size:0x640 scope:local +effectMdl = .bss:0x801B48A0; // type:object size:0x10 scope:local data:2byte +particleData = .bss:0x801B48B0; // type:object size:0x20 scope:local +itemHookProcess = .bss:0x801B48D0; // type:object size:0x80 scope:local +lbl_801975B0 = .bss:0x801B4950; // type:object size:0x10 scope:local +lbl_801975C0 = .bss:0x801B4960; // type:object size:0x90 scope:local +MapObject = .bss:0x801B49F0; // type:object size:0x40 +MapMT = .bss:0x801B4A30; // type:object size:0x30 +MapMTR = .bss:0x801B4A60; // type:object size:0x30 +MTRAdd = .bss:0x801B4A90; // type:object size:0xC scope:local data:float +FieldVec = .bss:0x801B4A9C; // type:object size:0xC scope:local data:float +ColisionIdx = .bss:0x801B4AA8; // type:object size:0x78 +HitFaceVec = .bss:0x801B4B20; // type:object size:0x180 +OldXYZ = .bss:0x801B4CA0; // type:object size:0xC scope:local +HitFace = .bss:0x801B4CAC; // type:object size:0x180 +CharObject = .bss:0x801B4E2C; // type:object size:0x30 +SimpleControl = .bss:0x801B4E60; // type:object size:0x1A0 +SoundBuffer = .bss:0x801B5000; // type:object size:0x500 scope:local align:32 +WorkBuffer = .bss:0x801B5500; // type:object size:0x40 scope:local align:32 +THPFileName = .bss:0x801B5540; // type:object size:0x40 scope:local +mgGameStatBackup = .bss:0x801B5580; // type:object size:0x118 +mgIndexList = .bss:0x801B5698; // type:object size:0x100 +mgTicTacToeGrid = .bss:0x801B5798; // type:object size:0x12 +_Sys_Flag = .bss:0x801B57B0; // type:object size:0x10 scope:local +curFileInfo = .bss:0x801B57C0; // type:object size:0x20 +saveBuf = .bss:0x801B57E0; // type:object size:0x4000 +ToeMessageQueue = .bss:0x801B97E0; // type:object size:0x20 scope:local +padStat$377 = .bss:0x801B9800; // type:object size:0x30 scope:local +ToeMessageArray = .bss:0x801B9830; // type:object size:0x40 scope:local +ToeThread = .bss:0x801B9870; // type:object size:0x310 scope:local align:8 +ToeThreadStack = .bss:0x801B9B80; // type:object size:0x1000 scope:local +boardCamera = .bss:0x801BAB80; // type:object size:0xC4 data:byte +cameraBackup = .bss:0x801BAC44; // type:object size:0xC4 scope:local +preTurnHook = .bss:0x801BAD08; // type:object size:0x10 scope:local +postTurnHook = .bss:0x801BAD18; // type:object size:0x10 scope:local +playerMatCopy = .bss:0x801BAD28; // type:object size:0x10 scope:local +winInsertMesTbl = .bss:0x801BAD38; // type:object size:0x20 scope:local +choiceDisableTbl = .bss:0x801BAD58; // type:object size:0x40 scope:local +focusPos = .bss:0x801BAD98; // type:object size:0xC scope:local data:float +focusPosTarget = .bss:0x801BADA4; // type:object size:0xC scope:local data:4byte +spaceData = .bss:0x801BADB0; // type:object size:0x7000 scope:local data:4byte +boardSpaceStarTbl = .bss:0x801C1DB0; // type:object size:0x10 +spaceTex = .bss:0x801C1DC0; // type:object size:0x20 scope:local +spaceHiliteTex = .bss:0x801C1DE0; // type:object size:0x20 scope:local +activeItemTbl = .bss:0x801C1E00; // type:object size:0x14 scope:local data:4byte +choiceEnableTbl = .bss:0x801C1E14; // type:object size:0x18 scope:local +lbl_801C1E30 = .bss:0x801C1E30; // type:object size:0xC data:2byte +lbl_801C1E3C = .bss:0x801C1E3C; // type:object size:0xC +lbl_801C1E48 = .bss:0x801C1E48; // type:object size:0x18 data:2byte +warpPos = .bss:0x801C1E60; // type:object size:0xC scope:local +starCharPos = .bss:0x801C1E70; // type:object size:0xC scope:local data:4byte +tutorialRoll = .bss:0x801C1E80; // type:object size:0xC scope:local +itemMdlId = .bss:0x801C1E90; // type:object size:0x18 scope:local +pickerPos = .bss:0x801C1EA8; // type:object size:0x30 scope:local +itemPosTemp = .bss:0x801C1ED8; // type:object size:0x48 scope:local +coinF = .bss:0x801C1F20; // type:object size:0x28 scope:local +booBallPos = .bss:0x801C1F48; // type:object size:0xC scope:local data:4byte +booBallScale = .bss:0x801C1F54; // type:object size:0xC scope:local data:float +booCamPos = .bss:0x801C1F60; // type:object size:0xC scope:local data:float +booCamTarget = .bss:0x801C1F6C; // type:object size:0xC scope:local data:float +booCamUp = .bss:0x801C1F78; // type:object size:0xC scope:local data:float +playerPosTemp = .bss:0x801C1F88; // type:object size:0x30 scope:local +bowserEvent = .bss:0x801C1FB8; // type:object size:0x16 scope:local +battleMGList = .bss:0x801C1FD0; // type:object size:0x10 scope:local data:2byte +camPosFortune = .bss:0x801C1FE0; // type:object size:0xC scope:local data:4byte +camTargetFortune = .bss:0x801C1FEC; // type:object size:0xC scope:local data:float +activeMG = .bss:0x801C1FF8; // type:object size:0x20 scope:local data:2byte +mgListAll = .bss:0x801C2018; // type:object size:0x40 scope:local data:2byte +mgPlay4P = .bss:0x801C2058; // type:object size:0x10 scope:local +houseMdl = .bss:0x801C2068; // type:object size:0xC scope:local data:2byte +spacePos = .bss:0x801C2078; // type:object size:0xC scope:local data:float +camStartFocusPos = .bss:0x801C2084; // type:object size:0xC scope:local data:float +spacePos = .bss:0x801C2090; // type:object size:0xC scope:local data:float +focusPos = .bss:0x801C209C; // type:object size:0xC scope:local data:float +hostPos = .bss:0x801C20A8; // type:object size:0xC scope:local +hostMot = .bss:0x801C20B4; // type:object size:0x10 scope:local data:2byte +lotteryTicketObj = .bss:0x801C20C4; // type:object size:0x10 scope:local data:4byte +boxRot = .bss:0x801C20D8; // type:object size:0x20 scope:local +padBoxPos = .bss:0x801C20F8; // type:object size:0xC scope:local data:float +pathNodeData = .bss:0x801C2108; // type:object size:0x500 scope:local data:byte +candidateNodes = .bss:0x801C2608; // type:object size:0x40 scope:local +startPathSpaceSearch = .bss:0x801C2648; // type:object size:0x20 scope:local +startPathSpace = .bss:0x801C2668; // type:object size:0x20 scope:local +boardTutorialData = .bss:0x801C2688; // type:object size:0x10 data:4byte +DriveInfo = .bss:0x801C26A0; // type:object size:0x20 scope:local align:32 +DriveBlock = .bss:0x801C26C0; // type:object size:0x30 scope:local +__OSErrorTable = .bss:0x801C26F0; // type:object size:0x40 scope:global +lbl_801C2740 = .bss:0x801C2740; // type:object size:0x20 +Scb = .bss:0x801C2760; // type:object size:0x54 scope:local data:4byte +RunQueue = .bss:0x801C27B8; // type:object size:0x100 scope:local data:4byte +lbl_801C3079 = .bss:0x801C3079; // type:object size:0x6A +lbl_801C30E3 = .bss:0x801C30E3; // type:object size:0xBD +CommandList = .bss:0x801C31A0; // type:object size:0x3C scope:local data:4byte +AlarmForTimeout = .bss:0x801C3208; // type:object size:0x28 scope:local +tmpBuffer = .bss:0x801C3280; // type:object size:0x80 scope:local +DummyCommandBlock = .bss:0x801C3300; // type:object size:0x30 scope:local +WaitingQueue = .bss:0x801C3358; // type:object size:0x20 scope:local data:4byte +bb2Buf = .bss:0x801C3378; // type:object size:0x3F scope:local +block$16 = .bss:0x801C33B8; // type:object size:0x30 scope:local +lbl_801C33E8 = .bss:0x801C33E8; // type:object size:0x78 data:2byte +lbl_801C3460 = .bss:0x801C3460; // type:object size:0x78 +lbl_801C34D8 = .bss:0x801C34D8; // type:object size:0x58 data:2byte +lbl_801C3530 = .bss:0x801C3530; // type:object size:0x20 +lbl_801C3550 = .bss:0x801C3550; // type:object size:0x10 +lbl_801C3560 = .bss:0x801C3560; // type:object size:0x40 +gxData = .bss:0x801C35A0; // type:object size:0x4F8 scope:local +lbl_801C3B18 = .bss:0x801C3B18; // type:object size:0x520 data:4byte +lbl_801C4038 = .bss:0x801C4038; // type:object size:0x220 data:4byte +lbl_801C4258 = .bss:0x801C4258; // type:object size:0x20 +Ecb = .bss:0x801C4278; // type:object size:0xC0 scope:local data:4byte +Packet = .bss:0x801C4338; // type:object size:0x80 scope:local data:4byte +lbl_801C43B8 = .bss:0x801C43B8; // type:object size:0xA0 +TypeTime = .bss:0x801C4458; // type:object size:0x20 scope:local +lbl_801C4478 = .bss:0x801C4478; // type:object size:0x20 +lbl_801C4498 = .bss:0x801C4498; // type:object size:0x40 +lbl_801C44D8 = .bss:0x801C44D8; // type:object size:0x68 data:4byte +lbl_801C4540 = .bss:0x801C4540; // type:object size:0x118 +lbl_801C4658 = .bss:0x801C4658; // type:object size:0x18 data:4byte +fragmentinfo = .bss:0x801C4670; // type:object size:0xC scope:local data:4byte +__atexit_funcs = .bss:0x801C4680; // type:object size:0x100 scope:local +lbl_801C4780 = .bss:0x801C4780; // type:object size:0x38 data:4byte +lbl_801C47B8 = .bss:0x801C47B8; // type:object size:0x100 +lbl_801C48B8 = .bss:0x801C48B8; // type:object size:0x100 +lbl_801C49B8 = .bss:0x801C49B8; // type:object size:0x100 +lbl_801C4AB8 = .bss:0x801C4AB8; // type:object size:0x18 +lbl_801C4AD0 = .bss:0x801C4AD0; // type:object size:0x28 +gTRKBigEndian = .bss:0x801C4AF8; // type:object size:0x4 scope:global data:4byte +lbl_801C4B00 = .bss:0x801C4B00; // type:object size:0x19B0 +gTRKInputPendingPtr = .bss:0x801C64B0; // type:object size:0x4 scope:global data:4byte +lbl_801C64B4 = .bss:0x801C64B4; // type:object size:0x14 data:4byte +lbl_801C64C8 = .bss:0x801C64C8; // type:object size:0x8 data:4byte +lbl_801C64D0 = .bss:0x801C64D0; // type:object size:0x8 data:4byte +TRK_saved_exceptionID = .bss:0x801C64D8; // type:object size:0x2 scope:local data:2byte +gTRKState = .bss:0x801C64DC; // type:object size:0xA4 scope:global data:4byte +gTRKCPUState = .bss:0x801C6580; // type:object size:0x430 scope:global +gTRKSaveState = .bss:0x801C69B0; // type:object size:0x94 scope:global data:4byte +lbl_801C6A44 = .bss:0x801C6A44; // type:object size:0x14 +lbl_801C6A58 = .bss:0x801C6A58; // type:object size:0x8 data:4byte +TRK_mainError = .bss:0x801C6A60; // type:object size:0x4 scope:local data:4byte +lbl_801C6A68 = .bss:0x801C6A68; // type:object size:0x758 data:4byte +lbl_801C71C0 = .bss:0x801C71C0; // type:object size:0x7 +lbl_801C71C7 = .bss:0x801C71C7; // type:object size:0x547 +lbl_801C770E = .bss:0x801C770E; // type:object size:0x476 +lbl_801C7B84 = .bss:0x801C7B84; // type:object size:0x110C +lbl_801C8C90 = .bss:0x801C8C90; // type:object size:0x8 data:byte +lbl_801C8C98 = .bss:0x801C8C98; // type:object size:0x1400 data:4byte +lbl_801CA098 = .bss:0x801CA098; // type:object size:0x3F85 +lbl_801CE01D = .bss:0x801CE01D; // type:object size:0x300 +lbl_801CE31D = .bss:0x801CE31D; // type:object size:0x64 +lbl_801CE381 = .bss:0x801CE381; // type:object size:0xE3F +lbl_801CF1C0 = .bss:0x801CF1C0; // type:object size:0x6BC +lbl_801CF87C = .bss:0x801CF87C; // type:object size:0x480 +lbl_801CFCFC = .bss:0x801CFCFC; // type:object size:0x66DC +lbl_801D63D8 = .bss:0x801D63D8; // type:object size:0x100 data:2byte +lbl_801D64D8 = .bss:0x801D64D8; // type:object size:0x240 +lbl_801D6718 = .bss:0x801D6718; // type:object size:0x214 data:4byte +lbl_801D692C = .bss:0x801D692C; // type:object size:0x600 data:float +lbl_801D6F2C = .bss:0x801D6F2C; // type:object size:0x40 data:byte +lbl_801D6F6C = .bss:0x801D6F6C; // type:object size:0x180 +lbl_801D70EC = .bss:0x801D70EC; // type:object size:0x20 data:4byte +lbl_801D710C = .bss:0x801D710C; // type:object size:0x20 data:4byte +lbl_801D712C = .bss:0x801D712C; // type:object size:0x20 data:4byte +lbl_801D714C = .bss:0x801D714C; // type:object size:0x20 data:4byte +lbl_801D716C = .bss:0x801D716C; // type:object size:0x10 data:byte +lbl_801D717C = .bss:0x801D717C; // type:object size:0x40 data:4byte +lbl_801D71BC = .bss:0x801D71BC; // type:object size:0x480 +lbl_801D763C = .bss:0x801D763C; // type:object size:0x484 +lbl_801D7AC0 = .bss:0x801D7AC0; // type:object size:0x1900 data:4byte +lbl_801D93C0 = .bss:0x801D93C0; // type:object size:0x800 +lbl_801D9BC0 = .bss:0x801D9BC0; // type:object size:0xC00 +lbl_801DA7C0 = .bss:0x801DA7C0; // type:object size:0x184E +lbl_801DC00E = .bss:0x801DC00E; // type:object size:0x1 +lbl_801DC00F = .bss:0x801DC00F; // type:object size:0x6F4 +lbl_801DC703 = .bss:0x801DC703; // type:object size:0x1C84 +lbl_801DE387 = .bss:0x801DE387; // type:object size:0x439 +lbl_801DE7C0 = .bss:0x801DE7C0; // type:object size:0x600 data:4byte +lbl_801DEDC0 = .bss:0x801DEDC0; // type:object size:0x400 data:2byte +lbl_801DF1C0 = .bss:0x801DF1C0; // type:object size:0x800 data:2byte +lbl_801DF9C0 = .bss:0x801DF9C0; // type:object size:0x22B0 +lbl_801E1C70 = .bss:0x801E1C70; // type:object size:0x1D50 +lbl_801E39C0 = .bss:0x801E39C0; // type:object size:0x20 data:2byte +lbl_801E39E0 = .bss:0x801E39E0; // type:object size:0xC +lbl_801E39EC = .bss:0x801E39EC; // type:object size:0xC data:2byte +lbl_801E39F8 = .bss:0x801E39F8; // type:object size:0x20 data:4byte +lbl_801E3A18 = .bss:0x801E3A18; // type:object size:0xF00 data:4byte +lbl_801E4918 = .bss:0x801E4918; // type:object size:0x40 data:byte +lbl_801E4958 = .bss:0x801E4958; // type:object size:0x80 data:byte +lbl_801E49D8 = .bss:0x801E49D8; // type:object size:0x950 data:byte +lbl_801E5328 = .bss:0x801E5328; // type:object size:0x600 data:4byte +lbl_801E5928 = .bss:0x801E5928; // type:object size:0x5E0 data:4byte +lbl_801E5F08 = .bss:0x801E5F08; // type:object size:0x100 data:4byte +lbl_801E6008 = .bss:0x801E6008; // type:object size:0x50 +lbl_801E6058 = .bss:0x801E6058; // type:object size:0x400 data:4byte +lbl_801E6458 = .bss:0x801E6458; // type:object size:0x300 +lbl_801E6758 = .bss:0x801E6758; // type:object size:0x700 +lbl_801E6E58 = .bss:0x801E6E58; // type:object size:0x200 data:4byte +lbl_801E7058 = .bss:0x801E7058; // type:object size:0x8B +lbl_801E70E3 = .bss:0x801E70E3; // type:object size:0x16 +lbl_801E70F9 = .bss:0x801E70F9; // type:object size:0x740 +lbl_801E7839 = .bss:0x801E7839; // type:object size:0xAA +lbl_801E78E3 = .bss:0x801E78E3; // type:object size:0x3A75 +lbl_801EB358 = .bss:0x801EB358; // type:object size:0x80 +lbl_801EB3D8 = .bss:0x801EB3D8; // type:object size:0x2180 +lbl_801ED558 = .bss:0x801ED558; // type:object size:0x40 +lbl_801ED598 = .bss:0x801ED598; // type:object size:0x80 +lbl_801ED618 = .bss:0x801ED618; // type:object size:0x40 +lbl_801ED658 = .bss:0x801ED658; // type:object size:0x284 +lbl_801ED8DC = .bss:0x801ED8DC; // type:object size:0x284 +lbl_801EDB60 = .bss:0x801EDB60; // type:object size:0x400 data:4byte +lbl_801EDF60 = .bss:0x801EDF60; // type:object size:0x60 +lbl_801EDFC0 = .bss:0x801EDFC0; // type:object size:0x2000 +lbl_801EFFC0 = .bss:0x801EFFC0; // type:object size:0x500 data:4byte +lbl_801F04C0 = .bss:0x801F04C0; // type:object size:0x30 data:4byte +lbl_801F04F0 = .bss:0x801F04F0; // type:object size:0x10 data:4byte +lbl_801F0500 = .bss:0x801F0500; // type:object size:0x178 data:2byte +lbl_801F0678 = .bss:0x801F0678; // type:object size:0xE8 data:4byte +lbl_801F0760 = .bss:0x801F0760; // type:object size:0x60 data:4byte +lbl_801F07C0 = .sdata:0x801F07C0; // type:object size:0x5 data:string +lbl_801F07C5 = .sdata:0x801F07C5; // type:object size:0x7 +rnd_seed = .sdata:0x801F07CC; // type:object size:0x4 data:4byte +lbl_801F07D0 = .sdata:0x801F07D0; // type:object size:0x6 data:string +lbl_801F07D6 = .sdata:0x801F07D6; // type:object size:0x2 data:string +lbl_801F07D8 = .sdata:0x801F07D8; // type:object size:0x7 data:string +lbl_801F07DF = .sdata:0x801F07DF; // type:object size:0x2 data:string +FirstFrame = .sdata:0x801F07E8; // type:object size:0x4 scope:local data:4byte +lbl_801F07EC = .sdata:0x801F07EC; // type:object size:0x7 data:string +lbl_801F07F3 = .sdata:0x801F07F3; // type:object size:0x4 data:string +lbl_801F07F7 = .sdata:0x801F07F7; // type:object size:0x9 +lbl_801F0800 = .sdata:0x801F0800; // type:object size:0x2 data:string +lbl_801F0802 = .sdata:0x801F0802; // type:object size:0x8 data:string +oneceF = .sdata:0x801F0810; // type:object size:0x2 scope:local data:2byte +firstTev = .sdata:0x801F0812; // type:object size:0x4 scope:local +secondTev = .sdata:0x801F0816; // type:object size:0x4 scope:local +lbl_801F081A = .sdata:0x801F081A; // type:object size:0x7 scope:local data:string +lbl_801F0828 = .sdata:0x801F0828; // type:object size:0x4 data:string +lbl_801F082C = .sdata:0x801F082C; // type:object size:0x5 data:string +omSysPauseEnableFlag = .sdata:0x801F0838; // type:object size:0x1 data:byte +omprevovl = .sdata:0x801F083C; // type:object size:0x4 data:4byte +titleMes$442 = .sdata:0x801F0840; // type:object size:0x4 scope:local data:4byte +lbl_801F0844 = .sdata:0x801F0844; // type:object size:0xC +GwLanguage = .sdata:0x801F0850; // type:object size:0x2 data:2byte +GwLanguageSave = .sdata:0x801F0852; // type:object size:0x2 +lbl_801F0858 = .sdata:0x801F0858; // type:object size:0x1 +lbl_801F0859 = .sdata:0x801F0859; // type:object size:0x7 +mgSeqOvlPrev = .sdata:0x801F0860; // type:object size:0x4 data:4byte +wordStartE = .sdata:0x801F0864; // type:object size:0x7 scope:local data:string +seqPunctTbl = .sdata:0x801F086B; // type:object size:0x3 scope:local data:byte +wordStartJ = .sdata:0x801F086E; // type:object size:0x6 scope:local +wordFinishJ = .sdata:0x801F0874; // type:object size:0x8 scope:local +wordDrawJ = .sdata:0x801F087C; // type:object size:0x6 scope:local +wordFinishE = .sdata:0x801F0882; // type:object size:0x8 scope:local data:string +wordDrawE = .sdata:0x801F088A; // type:object size:0x6 scope:local data:string +lbl_801F0890 = .sdata:0x801F0890; // type:object size:0x4 +lbl_801F0894 = .sdata:0x801F0894; // type:object size:0x6 data:string +lbl_801F089A = .sdata:0x801F089A; // type:object size:0x6 +lbl_801F08A0 = .sdata:0x801F08A0; // type:object size:0x6 data:string +lbl_801F08A6 = .sdata:0x801F08A6; // type:object size:0x5 +lbl_801F08AB = .sdata:0x801F08AB; // type:object size:0x6 data:string +lbl_801F08B1 = .sdata:0x801F08B1; // type:object size:0x5 +lbl_801F08B6 = .sdata:0x801F08B6; // type:object size:0x6 data:string +lbl_801F08BC = .sdata:0x801F08BC; // type:object size:0x4 +lbl_801F08C0 = .sdata:0x801F08C0; // type:object size:0x6 data:string +lbl_801F08C6 = .sdata:0x801F08C6; // type:object size:0x6 +lbl_801F08CC = .sdata:0x801F08CC; // type:object size:0x5 data:string +lbl_801F08D1 = .sdata:0x801F08D1; // type:object size:0x7 +lbl_801F08D8 = .sdata:0x801F08D8; // type:object size:0x6 data:string +lbl_801F08DE = .sdata:0x801F08DE; // type:object size:0x7 +lbl_801F08E5 = .sdata:0x801F08E5; // type:object size:0x8 data:string +lbl_801F08ED = .sdata:0x801F08ED; // type:object size:0x5 +lbl_801F08F2 = .sdata:0x801F08F2; // type:object size:0x7 data:string +lbl_801F08F9 = .sdata:0x801F08F9; // type:object size:0x6 +lbl_801F08FF = .sdata:0x801F08FF; // type:object size:0x5 data:string +lbl_801F0904 = .sdata:0x801F0904; // type:object size:0x5 +lbl_801F0909 = .sdata:0x801F0909; // type:object size:0x8 data:string +lbl_801F0911 = .sdata:0x801F0911; // type:object size:0x4 +lbl_801F0915 = .sdata:0x801F0915; // type:object size:0x4 data:string +lbl_801F0919 = .sdata:0x801F0919; // type:object size:0x5 +lbl_801F091E = .sdata:0x801F091E; // type:object size:0x6 data:string +lbl_801F0924 = .sdata:0x801F0924; // type:object size:0x7 +lbl_801F092B = .sdata:0x801F092B; // type:object size:0x6 +lbl_801F0931 = .sdata:0x801F0931; // type:object size:0x7 data:string +lbl_801F0938 = .sdata:0x801F0938; // type:object size:0x3 +lbl_801F093B = .sdata:0x801F093B; // type:object size:0x5 data:string +lbl_801F0940 = .sdata:0x801F0940; // type:object size:0x6 +lbl_801F0946 = .sdata:0x801F0946; // type:object size:0x5 data:string +lbl_801F094B = .sdata:0x801F094B; // type:object size:0x7 +lbl_801F0952 = .sdata:0x801F0952; // type:object size:0x6 +lbl_801F0958 = .sdata:0x801F0958; // type:object size:0x8 +pauseStr$2309 = .sdata:0x801F0960; // type:object size:0x8 +lbl_801F0968 = .sdata:0x801F0968; // type:object size:0x8 scope:local +lbl_801F0970 = .sdata:0x801F0970; // type:object size:0x8 +lbl_801F0978 = .sdata:0x801F0978; // type:object size:0x8 +lbl_801F0980 = .sdata:0x801F0980; // type:object size:0x8 +colorN$226 = .sdata:0x801F0988; // type:object size:0x4 scope:local data:byte +colorN$271 = .sdata:0x801F098C; // type:object size:0x4 scope:local data:byte +winPrio = .sdata:0x801F0990; // type:object size:0x2 scope:local data:2byte +lbl_801F0998 = .sdata:0x801F0998; // type:object size:0x8 +lbl_801F09A0 = .sdata:0x801F09A0; // type:object size:0x8 +lbl_801F09A8 = .sdata:0x801F09A8; // type:object size:0x8 +lbl_801F09B0 = .sdata:0x801F09B0; // type:object size:0x8 +lbl_801F09B8 = .sdata:0x801F09B8; // type:object size:0x8 +lbl_801F09C0 = .sdata:0x801F09C0; // type:object size:0x1 +lbl_801F09C1 = .sdata:0x801F09C1; // type:object size:0x5 data:string +lbl_801F09C6 = .sdata:0x801F09C6; // type:object size:0x5 data:string +lbl_801F09CB = .sdata:0x801F09CB; // type:object size:0x8 data:string +lbl_801F09D3 = .sdata:0x801F09D3; // type:object size:0x6 data:string +lbl_801F09D9 = .sdata:0x801F09D9; // type:object size:0x7 +lbl_801F09E0 = .sdata:0x801F09E0; // type:object size:0x8 +SaveEnableF = .sdata:0x801F09E8; // type:object size:0x4 data:4byte +lbl_801F09EC = .sdata:0x801F09EC; // type:object size:0x2 data:string +lbl_801F09EE = .sdata:0x801F09EE; // type:object size:0x2 data:string +SlotNameTbl = .sdata:0x801F09F0; // type:object size:0x8 scope:local +saveMessWin = .sdata:0x801F09F8; // type:object size:0x4 data:4byte +SR_PushTime = .sdata:0x801F0A00; // type:object size:0x8 scope:local data:2byte +SR_ResetPad = .sdata:0x801F0A08; // type:object size:0x1 scope:local data:byte +Xfb = .sdata:0x801F0A0C; // type:object size:0x8 scope:local data:4byte +nextOvl = .sdata:0x801F0A18; // type:object size:0x4 scope:local data:4byte +colorN$1400 = .sdata:0x801F0A1C; // type:object size:0x4 scope:local data:byte +lbl_801F0A20 = .sdata:0x801F0A20; // type:object size:0x8 +suitMdl = .sdata:0x801F0A28; // type:object size:0x2 scope:local data:2byte +suitPlayerMdl = .sdata:0x801F0A2A; // type:object size:0x2 scope:local data:2byte +suitCurrMot = .sdata:0x801F0A2C; // type:object size:0x2 scope:local data:2byte +lbl_801F0A2E = .sdata:0x801F0A2E; // type:object size:0x5 data:string +lbl_801F0A33 = .sdata:0x801F0A33; // type:object size:0x5 data:string +lbl_801F0A38 = .sdata:0x801F0A38; // type:object size:0x6 data:string +lbl_801F0A3E = .sdata:0x801F0A3E; // type:object size:0x6 data:string +lbl_801F0A44 = .sdata:0x801F0A44; // type:object size:0x6 data:string +lbl_801F0A4A = .sdata:0x801F0A4A; // type:object size:0x6 data:string +lbl_801F0A50 = .sdata:0x801F0A50; // type:object size:0x6 data:string +lbl_801F0A56 = .sdata:0x801F0A56; // type:object size:0x6 data:string +lbl_801F0A5C = .sdata:0x801F0A5C; // type:object size:0x6 data:string +lbl_801F0A62 = .sdata:0x801F0A62; // type:object size:0x6 data:string +lbl_801F0A68 = .sdata:0x801F0A68; // type:object size:0x6 data:string +lbl_801F0A6E = .sdata:0x801F0A6E; // type:object size:0x6 data:string +lbl_801F0A74 = .sdata:0x801F0A74; // type:object size:0x6 data:string +lbl_801F0A7A = .sdata:0x801F0A7A; // type:object size:0xE +windowID = .sdata:0x801F0A88; // type:object size:0x2 scope:local data:2byte +boardFX = .sdata:0x801F0A90; // type:object size:0x4 scope:local data:4byte +itemUse = .sdata:0x801F0A98; // type:object size:0x1 scope:local data:byte +buttonWin = .sdata:0x801F0AA0; // type:object size:0x2 scope:local data:2byte +focusMdl = .sdata:0x801F0AA2; // type:object size:0x2 scope:local data:2byte +spaceDrawMdl = .sdata:0x801F0AA8; // type:object size:0x2 scope:local data:2byte +starPlatMdl = .sdata:0x801F0AAA; // type:object size:0x2 scope:local data:2byte +itemMdl = .sdata:0x801F0AB0; // type:object size:0x2 scope:local data:2byte +itemChoice = .sdata:0x801F0AB2; // type:object size:0x1 scope:local data:byte +shopMdlParam = .sdata:0x801F0AB4; // type:object size:0x8 scope:local +hostMdl = .sdata:0x801F0ABC; // type:object size:0x2 scope:local data:2byte +shopMot = .sdata:0x801F0ABE; // type:object size:0x6 scope:local data:2byte +itemCurChoice = .sdata:0x801F0AC4; // type:object size:0x1 scope:local data:byte +defaultItemTbl = .sdata:0x801F0AC5; // type:object size:0x5 scope:local +hostMdl = .sdata:0x801F0AD0; // type:object size:0x2 scope:local data:2byte +lotteryMot = .sdata:0x801F0AD2; // type:object size:0x8 scope:local data:2byte +lotterySpr = .sdata:0x801F0ADA; // type:object size:0x2 scope:local data:2byte +lotteryInstWin = .sdata:0x801F0ADC; // type:object size:0x2 scope:local data:2byte +gripMdl = .sdata:0x801F0ADE; // type:object size:0x4 scope:local data:2byte +turnMot = .sdata:0x801F0AE2; // type:object size:0x2 scope:local data:2byte +ballMdl = .sdata:0x801F0AE4; // type:object size:0x8 scope:local +loseMot = .sdata:0x801F0AEC; // type:object size:0x2 scope:local data:2byte +ticketSprGrp = .sdata:0x801F0AEE; // type:object size:0x2 data:2byte +warpSpringMdl = .sdata:0x801F0AF0; // type:object size:0x2 scope:local data:2byte +warpImpactMdl = .sdata:0x801F0AF2; // type:object size:0x2 scope:local data:2byte +warpImpactPlayer = .sdata:0x801F0AF4; // type:object size:0x4 scope:local +lbl_801F0AF8 = .sdata:0x801F0AF8; // type:object size:0x8 +wheelPos = .sdata:0x801F0B00; // type:object size:0x1 scope:local data:byte +wheelSprGrp = .sdata:0x801F0B02; // type:object size:0x2 scope:local data:2byte +wheelFXStat = .sdata:0x801F0B04; // type:object size:0x4 scope:local data:4byte +boxObj = .sdata:0x801F0B08; // type:object size:0x8 scope:local +itemMdl = .sdata:0x801F0B10; // type:object size:0x2 scope:local data:2byte +starParman = .sdata:0x801F0B18; // type:object size:0x2 scope:local data:2byte +hostMdl = .sdata:0x801F0B1A; // type:object size:0x2 scope:local data:2byte +diceMdl = .sdata:0x801F0B20; // type:object size:0x6 scope:local +diceEff = .sdata:0x801F0B26; // type:object size:0x6 scope:local +rollWin = .sdata:0x801F0B2C; // type:object size:0x2 scope:local data:2byte +lbl_801F0B2E = .sdata:0x801F0B2E; // type:object size:0x3 data:string +itemPickupMdlId = .sdata:0x801F0B38; // type:object size:0x2 scope:local data:2byte +yourTurnSprGrp = .sdata:0x801F0B3A; // type:object size:0x2 scope:local data:2byte +jumpMot = .sdata:0x801F0B40; // type:object size:0x2 scope:local data:2byte +starMdl = .sdata:0x801F0B42; // type:object size:0x2 scope:local data:2byte +itemMotTbl = .sdata:0x801F0B48; // type:object size:0x8 scope:local +lbl_801F0B50 = .sdata:0x801F0B50; // type:object size:0x8 +jumpMot = .sdata:0x801F0B58; // type:object size:0x2 scope:local data:2byte +scareMot = .sdata:0x801F0B5A; // type:object size:0x2 scope:local data:2byte +suitItemMdl = .sdata:0x801F0B5C; // type:object size:0x2 scope:local data:2byte +bowserMdl = .sdata:0x801F0B5E; // type:object size:0x2 scope:local data:2byte +lbl_801F0B60 = .sdata:0x801F0B60; // type:object size:0x3 data:string +lbl_801F0B63 = .sdata:0x801F0B63; // type:object size:0x8 data:string +lbl_801F0B70 = .sdata:0x801F0B70; // type:object size:0x8 +lbl_801F0B78 = .sdata:0x801F0B78; // type:object size:0x8 +ballMdlTbl = .sdata:0x801F0B80; // type:object size:0x8 scope:local +lbl_801F0B88 = .sdata:0x801F0B88; // type:object size:0x8 +luckyValue = .sdata:0x801F0B90; // type:object size:0x1 scope:local data:byte +cursorPos = .sdata:0x801F0B91; // type:object size:0x1 scope:local data:byte +houseShowMot = .sdata:0x801F0B98; // type:object size:0x2 scope:local data:2byte +houseHideMot = .sdata:0x801F0B9A; // type:object size:0x2 scope:local data:2byte +ballMdl = .sdata:0x801F0B9C; // type:object size:0x2 scope:local data:2byte +booMdl = .sdata:0x801F0B9E; // type:object size:0x2 scope:local data:2byte +smokeMdl = .sdata:0x801F0BA0; // type:object size:0x2 scope:local data:2byte +hostMdl = .sdata:0x801F0BA2; // type:object size:0x2 scope:local data:2byte +hostMot = .sdata:0x801F0BA4; // type:object size:0x6 scope:local data:2byte +lbl_801F0BAA = .sdata:0x801F0BAA; // type:object size:0x7 data:string +lbl_801F0BB1 = .sdata:0x801F0BB1; // type:object size:0x7 data:string +lbl_801F0BB8 = .sdata:0x801F0BB8; // type:object size:0x7 data:string +lbl_801F0BBF = .sdata:0x801F0BBF; // type:object size:0x7 data:string +lbl_801F0BC6 = .sdata:0x801F0BC6; // type:object size:0x7 data:string +lbl_801F0BCD = .sdata:0x801F0BCD; // type:object size:0x6 data:string +lbl_801F0BD3 = .sdata:0x801F0BD3; // type:object size:0x7 data:string +lbl_801F0BDA = .sdata:0x801F0BDA; // type:object size:0x6 data:string +lbl_801F0BE0 = .sdata:0x801F0BE0; // type:object size:0x3 data:string +logoSprGrp = .sdata:0x801F0BE8; // type:object size:0x2 scope:local data:2byte +logoSpr = .sdata:0x801F0BEA; // type:object size:0x2 scope:local data:2byte +camFocus = .sdata:0x801F0BEC; // type:object size:0x2 scope:local data:2byte +tapWin = .sdata:0x801F0BEE; // type:object size:0x2 scope:local data:2byte +streamStatus = .sdata:0x801F0BF0; // type:object size:0x4 scope:local data:4byte +tutorialRollTbl = .sdata:0x801F0BF4; // type:object size:0x4 scope:local +stopWin = .sdata:0x801F0BF8; // type:object size:0x2 scope:local data:2byte +wheelMdl = .sdata:0x801F0BFA; // type:object size:0x2 scope:local data:2byte +lbl_801D3854 = .sdata:0x801F0BFC; // type:object size:0x2 data:2byte +focusMdl = .sdata:0x801F0BFE; // type:object size:0x2 scope:local data:2byte +messBase = .sdata:0x801F0C00; // type:object size:0x4 scope:local data:4byte +lbl_801F0C04 = .sdata:0x801F0C04; // type:object size:0x6 data:string +lbl_801F0C0A = .sdata:0x801F0C0A; // type:object size:0x7 data:string +lbl_801F0C11 = .sdata:0x801F0C11; // type:object size:0x7 data:string +lbl_801F0C18 = .sdata:0x801F0C18; // type:object size:0x7 data:string +lbl_801F0C1F = .sdata:0x801F0C1F; // type:object size:0x5 data:string +lbl_801F0C24 = .sdata:0x801F0C24; // type:object size:0x6 data:string +lbl_801F0C2A = .sdata:0x801F0C2A; // type:object size:0x6 data:string +lbl_801F0C30 = .sdata:0x801F0C30; // type:object size:0x6 data:string +lbl_801F0C36 = .sdata:0x801F0C36; // type:object size:0x4 data:string +lbl_801F0C3A = .sdata:0x801F0C3A; // type:object size:0x5 data:string +lbl_801F0C3F = .sdata:0x801F0C3F; // type:object size:0x5 data:string +lbl_801F0C44 = .sdata:0x801F0C44; // type:object size:0xC +pausePad = .sdata:0x801F0C50; // type:object size:0x1 scope:local data:byte +pauseSprGrp = .sdata:0x801F0C52; // type:object size:0x2 scope:local data:2byte +padConfigSprGrp = .sdata:0x801F0C54; // type:object size:0x2 scope:local data:2byte +pauseCursorPos = .sdata:0x801F0C56; // type:object size:0x2 scope:local data:2byte +settingsControlWin = .sdata:0x801F0C58; // type:object size:0x2 scope:local data:2byte +controlWin = .sdata:0x801F0C5A; // type:object size:0x2 scope:local data:2byte +quitWin = .sdata:0x801F0C5C; // type:object size:0x2 scope:local data:2byte +settingsWin = .sdata:0x801F0C5E; // type:object size:0x2 scope:local data:2byte +__OSCurrHeap = .sdata:0x801F0C60; // type:object size:0x8 data:4byte +__OSArenaLo = .sdata:0x801F0C68; // type:object size:0x4 scope:local data:4byte +@32 = .sdata:0x801F0C70; // type:object size:0x2 scope:local data:string +lbl_801F0C78 = .sdata:0x801F0C78; // type:object size:0x8 data:2byte +lbl_801F0C80 = .sdata:0x801F0C80; // type:object size:0x8 +lbl_801F0C88 = .sdata:0x801F0C88; // type:object size:0x8 data:4byte +lbl_801F0C90 = .sdata:0x801F0C90; // type:object size:0x8 data:string +autoInvalidation = .sdata:0x801F0C98; // type:object size:0x4 scope:local data:4byte +@35 = .sdata:0x801F0CA0; // type:object size:0x2 scope:local data:string +@40 = .sdata:0x801F0CA4; // type:object size:0x4 scope:local data:string +@41 = .sdata:0x801F0CA8; // type:object size:0x3 scope:local data:string +lbl_801F0CB0 = .sdata:0x801F0CB0; // type:object size:0x8 data:string +lbl_801F0CB8 = .sdata:0x801F0CB8; // type:object size:0x8 data:byte +lbl_801F0CC0 = .sdata:0x801F0CC0; // type:object size:0x4 data:4byte +lbl_801F0CC4 = .sdata:0x801F0CC4; // type:object size:0x4 data:4byte +lbl_801F0CC8 = .sdata:0x801F0CC8; // type:object size:0x4 data:4byte +lbl_801F0CCC = .sdata:0x801F0CCC; // type:object size:0x4 data:4byte +lbl_801F0CD0 = .sdata:0x801F0CD0; // type:object size:0x4 data:4byte +lbl_801F0CD4 = .sdata:0x801F0CD4; // type:object size:0x4 +lbl_801F0CD8 = .sdata:0x801F0CD8; // type:object size:0x8 +gx = .sdata:0x801F0CE0; // type:object size:0x4 scope:global data:4byte +lbl_801F0CE8 = .sdata:0x801F0CE8; // type:object size:0x4 +lbl_801F0CEC = .sdata:0x801F0CEC; // type:object size:0x4 +lbl_801F0CF0 = .sdata:0x801F0CF0; // type:object size:0x8 +lbl_801F0CF8 = .sdata:0x801F0CF8; // type:object size:0x8 +lbl_801F0D00 = .sdata:0x801F0D00; // type:object size:0x8 +lbl_801F0D08 = .sdata:0x801F0D08; // type:object size:0x8 +lbl_801F0D10 = .sdata:0x801F0D10; // type:object size:0x8 +lbl_801F0D18 = .sdata:0x801F0D18; // type:object size:0x8 +lbl_801F0D20 = .sdata:0x801F0D20; // type:object size:0x8 +lbl_801F0D28 = .sdata:0x801F0D28; // type:object size:0x8 +lbl_801F0D30 = .sdata:0x801F0D30; // type:object size:0x8 +lbl_801F0D38 = .sdata:0x801F0D38; // type:object size:0x8 data:4byte +lbl_801F0D40 = .sdata:0x801F0D40; // type:object size:0x8 data:2byte +lbl_801F0D48 = .sdata:0x801F0D48; // type:object size:0x8 +lbl_801F0D50 = .sdata:0x801F0D50; // type:object size:0x4 data:4byte +lbl_801F0D54 = .sdata:0x801F0D54; // type:object size:0x4 data:4byte +fragmentID = .sdata:0x801F0D58; // type:object size:0x4 scope:local data:4byte +lbl_801F0D60 = .sdata:0x801F0D60; // type:object size:0x8 +lbl_801F0D68 = .sdata:0x801F0D68; // type:object size:0x8 +@wstringBase0 = .sdata:0x801F0D70; // type:object size:0x2 scope:local +lbl_801F0D78 = .sdata:0x801F0D78; // type:object size:0x4 data:float +lbl_801F0D7C = .sdata:0x801F0D7C; // type:object size:0x4 data:float +lbl_801F0D80 = .sdata:0x801F0D80; // type:object size:0x8 data:4byte +lbl_801F0D88 = .sdata:0x801F0D88; // type:object size:0x8 +lbl_801F0D90 = .sdata:0x801F0D90; // type:object size:0x8 +lbl_801F0D98 = .sdata:0x801F0D98; // type:object size:0x8 data:2byte +lbl_801F0DA0 = .sdata:0x801F0DA0; // type:object size:0x1 data:byte +SystemInitF = .sbss:0x801F0DC0; // type:object size:0x4 data:4byte +HuDvdErrWait = .sbss:0x801F0DC4; // type:object size:0x4 data:4byte +fi_req = .sbss:0x801F0DC8; // type:object size:0x4 scope:local +rf_req = .sbss:0x801F0DCC; // type:object size:0x4 scope:local +pe_req = .sbss:0x801F0DD0; // type:object size:0x4 scope:local +vi_req = .sbss:0x801F0DD4; // type:object size:0x4 scope:local +io_req = .sbss:0x801F0DD8; // type:object size:0x4 scope:local +dsp_req = .sbss:0x801F0DDC; // type:object size:0x4 scope:local +cpu_wr_req = .sbss:0x801F0DE0; // type:object size:0x4 scope:local +cpu_rd_req = .sbss:0x801F0DE4; // type:object size:0x4 scope:local +tc_req = .sbss:0x801F0DE8; // type:object size:0x4 scope:local +cp_req = .sbss:0x801F0DEC; // type:object size:0x4 scope:local +total_copy_clks = .sbss:0x801F0DF0; // type:object size:0x4 scope:local +clr_pixels_in = .sbss:0x801F0DF4; // type:object size:0x4 scope:local +bot_pixels_out = .sbss:0x801F0DF8; // type:object size:0x4 scope:local +bot_pixels_in = .sbss:0x801F0DFC; // type:object size:0x4 scope:local +top_pixels_out = .sbss:0x801F0E00; // type:object size:0x4 scope:local +top_pixels_in = .sbss:0x801F0E04; // type:object size:0x4 scope:local +vstall = .sbss:0x801F0E08; // type:object size:0x4 scope:local +vmiss = .sbss:0x801F0E0C; // type:object size:0x4 scope:local +vcheck = .sbss:0x801F0E10; // type:object size:0x4 scope:local +GlobalCounter = .sbss:0x801F0E14; // type:object size:0x4 data:4byte +VCounter = .sbss:0x801F0E18; // type:object size:0x4 data:4byte +RumbleBit = .sbss:0x801F0E1C; // type:object size:0x4 scope:local data:4byte +_PadErr = .sbss:0x801F0E20; // type:object size:0x4 scope:local +_PadDStkRepOld = .sbss:0x801F0E24; // type:object size:0x4 scope:local +_PadDStkRepCnt = .sbss:0x801F0E28; // type:object size:0x4 scope:local +_PadDStkRep = .sbss:0x801F0E2C; // type:object size:0x4 scope:local +_PadDStk = .sbss:0x801F0E30; // type:object size:0x4 scope:local +_PadTrigR = .sbss:0x801F0E34; // type:object size:0x4 scope:local +_PadTrigL = .sbss:0x801F0E38; // type:object size:0x4 scope:local +_PadSubStkY = .sbss:0x801F0E3C; // type:object size:0x4 scope:local +_PadSubStkX = .sbss:0x801F0E40; // type:object size:0x4 scope:local +_PadStkY = .sbss:0x801F0E44; // type:object size:0x4 scope:local +_PadStkX = .sbss:0x801F0E48; // type:object size:0x4 scope:local +_PadRepCnt = .sbss:0x801F0E4C; // type:object size:0x8 scope:local +_PadBtnDown = .sbss:0x801F0E54; // type:object size:0x8 +_PadBtn = .sbss:0x801F0E5C; // type:object size:0x8 +HuPadErr = .sbss:0x801F0E64; // type:object size:0x4 +HuPadDStkRep = .sbss:0x801F0E68; // type:object size:0x4 +HuPadDStk = .sbss:0x801F0E6C; // type:object size:0x4 +HuPadTrigR = .sbss:0x801F0E70; // type:object size:0x4 +HuPadTrigL = .sbss:0x801F0E74; // type:object size:0x4 +HuPadSubStkY = .sbss:0x801F0E78; // type:object size:0x4 +HuPadSubStkX = .sbss:0x801F0E7C; // type:object size:0x4 +HuPadStkY = .sbss:0x801F0E80; // type:object size:0x4 +HuPadStkX = .sbss:0x801F0E84; // type:object size:0x4 +HuPadBtnRep = .sbss:0x801F0E88; // type:object size:0x8 +HuPadBtnDown = .sbss:0x801F0E90; // type:object size:0x8 data:2byte +HuPadBtn = .sbss:0x801F0E98; // type:object size:0x8 +beforeDvdStatus = .sbss:0x801F0EA0; // type:object size:0x4 scope:local data:4byte +CallBackStatus = .sbss:0x801F0EA4; // type:object size:0x4 scope:local data:4byte +shortAccessSleep = .sbss:0x801F0EA8; // type:object size:0x4 scope:local data:4byte +DataDirMax = .sbss:0x801F0EAC; // type:object size:0x4 scope:local data:4byte +DirDataSize = .sbss:0x801F0EB0; // type:object size:0x8 data:4byte +DemoStatEnable = .sbss:0x801F0EB8; // type:object size:0x4 scope:local data:4byte +worstVcount = .sbss:0x801F0EBC; // type:object size:0x4 data:4byte +minimumVcountf = .sbss:0x801F0EC0; // type:object size:0x4 data:float +minimumVcount = .sbss:0x801F0EC4; // type:object size:0x4 data:4byte +DemoCurrentBuffer = .sbss:0x801F0EC8; // type:object size:0x4 data:4byte +DemoFrameBuffer2 = .sbss:0x801F0ECC; // type:object size:0x4 data:4byte +DemoFrameBuffer1 = .sbss:0x801F0ED0; // type:object size:0x4 data:4byte +DefaultFifoObj = .sbss:0x801F0ED4; // type:object size:0x4 scope:local data:4byte +DefaultFifo = .sbss:0x801F0ED8; // type:object size:0x4 scope:local data:4byte +currentHeapHandle = .sbss:0x801F0EDC; // type:object size:0x4 data:4byte +RenderMode = .sbss:0x801F0EE0; // type:object size:0x8 data:4byte +saftyFrameF = .sbss:0x801F0EE8; // type:object size:0x4 data:4byte +strlinecnt = .sbss:0x801F0EEC; // type:object size:0x2 data:2byte +empstrline = .sbss:0x801F0EEE; // type:object size:0x2 data:2byte +fontcolor = .sbss:0x801F0EF0; // type:object size:0x8 data:4byte +procfunc = .sbss:0x801F0EF8; // type:object size:0x4 data:4byte +processcnt = .sbss:0x801F0EFC; // type:object size:0x2 scope:local data:2byte +processcur = .sbss:0x801F0F00; // type:object size:0x4 scope:local data:4byte +processtop = .sbss:0x801F0F04; // type:object size:0x4 scope:local data:4byte +HuSprPauseF = .sbss:0x801F0F08; // type:object size:0x4 scope:local data:4byte +HuSprOrderNo = .sbss:0x801F0F0C; // type:object size:0x2 scope:local data:2byte +HuSprOrderNum = .sbss:0x801F0F0E; // type:object size:0x2 scope:local data:2byte +bmpCCIdx = .sbss:0x801F0F10; // type:object size:0x8 scope:local data:2byte +MaterialTop = .sbss:0x801F0F18; // type:object size:0x4 data:4byte +AttributeTop = .sbss:0x801F0F1C; // type:object size:0x4 data:4byte +ClusterTop = .sbss:0x801F0F20; // type:object size:0x4 data:4byte +vtxtop = .sbss:0x801F0F24; // type:object size:0x4 data:4byte +objtop = .sbss:0x801F0F28; // type:object size:0x4 data:4byte +NSymIndex = .sbss:0x801F0F2C; // type:object size:0x4 data:4byte +DicStringTable = .sbss:0x801F0F30; // type:object size:0x4 data:4byte +StringTable = .sbss:0x801F0F34; // type:object size:0x4 data:4byte +fileptr = .sbss:0x801F0F38; // type:object size:0x4 data:4byte +NormalDataTop = .sbss:0x801F0F3C; // type:object size:0x4 scope:local data:4byte +VertexDataTop = .sbss:0x801F0F40; // type:object size:0x4 scope:local data:4byte +MotionModel = .sbss:0x801F0F44; // type:object size:0x4 scope:local data:4byte +MotionOnly = .sbss:0x801F0F48; // type:object size:0x8 scope:local data:4byte +CancelTRXF = .sbss:0x801F0F50; // type:object size:0x4 scope:local data:4byte +TL32F = .sbss:0x801F0F54; // type:object size:0x4 scope:local data:4byte +PGName = .sbss:0x801F0F58; // type:object size:0x4 scope:local data:4byte +PGFinishF = .sbss:0x801F0F5C; // type:object size:0x4 scope:local data:4byte +polySize = .sbss:0x801F0F60; // type:object size:0x2 scope:local data:2byte +curModelID = .sbss:0x801F0F64; // type:object size:0x4 scope:local data:4byte +mallocNo = .sbss:0x801F0F68; // type:object size:0x4 scope:local data:4byte +totalSize = .sbss:0x801F0F6C; // type:object size:0x4 scope:local data:4byte +DLTotalNum = .sbss:0x801F0F70; // type:object size:0x4 scope:local data:4byte +faceNumBuf = .sbss:0x801F0F74; // type:object size:0x4 scope:local data:4byte +faceCnt = .sbss:0x801F0F78; // type:object size:0x2 scope:local data:2byte +quadCnt = .sbss:0x801F0F7A; // type:object size:0x2 scope:local data:2byte +triCnt = .sbss:0x801F0F7C; // type:object size:0x2 scope:local data:2byte +matChgCnt = .sbss:0x801F0F7E; // type:object size:0x2 scope:local data:2byte +DLFirstF = .sbss:0x801F0F80; // type:object size:0x4 scope:local data:4byte +modelObjNum = .sbss:0x801F0F84; // type:object size:0x2 data:2byte +modelMeshNum = .sbss:0x801F0F86; // type:object size:0x2 data:2byte +totalTexCacheCnted = .sbss:0x801F0F88; // type:object size:0x4 data:4byte +totalTexCacheCnt = .sbss:0x801F0F8C; // type:object size:0x4 data:4byte +totalTexCnted = .sbss:0x801F0F90; // type:object size:0x4 data:4byte +totalTexCnt = .sbss:0x801F0F94; // type:object size:0x4 data:4byte +totalMatCnted = .sbss:0x801F0F98; // type:object size:0x4 data:4byte +totalMatCnt = .sbss:0x801F0F9C; // type:object size:0x4 data:4byte +totalPolyCnted = .sbss:0x801F0FA0; // type:object size:0x4 data:4byte +totalPolyCnt = .sbss:0x801F0FA4; // type:object size:0x4 data:4byte +hookIdx = .sbss:0x801F0FA8; // type:object size:0x2 scope:local data:2byte +kColorIdx = .sbss:0x801F0FAC; // type:object size:0x4 scope:local data:4byte +kColor = .sbss:0x801F0FB0; // type:object size:0x4 scope:local data:byte +projectionMapNo = .sbss:0x801F0FB4; // type:object size:0x2 data:2byte +toonMapNo = .sbss:0x801F0FB6; // type:object size:0x2 scope:local data:2byte +shadowMapNo = .sbss:0x801F0FB8; // type:object size:0x2 scope:local data:2byte +attachMotionF = .sbss:0x801F0FBC; // type:object size:0x4 scope:local data:4byte +vtxModeBak = .sbss:0x801F0FC0; // type:object size:0x2 scope:local data:2byte +hiliteMapNo = .sbss:0x801F0FC2; // type:object size:0x2 scope:local data:2byte +reflectionMapNo = .sbss:0x801F0FC4; // type:object size:0x2 scope:local data:2byte +Hu3DObjInfoP = .sbss:0x801F0FC8; // type:object size:0x4 scope:local data:4byte +DrawObjIdx = .sbss:0x801F0FCC; // type:object size:0x2 scope:local data:2byte +lightBit = .sbss:0x801F0FCE; // type:object size:0x2 scope:local data:2byte +drawCnt = .sbss:0x801F0FD0; // type:object size:0x4 scope:local data:4byte +DrawData = .sbss:0x801F0FD4; // type:object size:0x4 scope:local data:4byte +DLBufStartP = .sbss:0x801F0FD8; // type:object size:0x4 scope:local data:4byte +DLBufP = .sbss:0x801F0FDC; // type:object size:0x4 scope:local data:4byte +shadingBak = .sbss:0x801F0FE0; // type:object size:0x4 scope:local data:4byte +polyTypeBak = .sbss:0x801F0FE4; // type:object size:0x1 scope:local data:byte +materialBak = .sbss:0x801F0FE8; // type:object size:0x4 scope:local data:4byte +MTXIdx = .sbss:0x801F0FEC; // type:object size:0x2 data:2byte +modelKillAllF = .sbss:0x801F0FF0; // type:object size:0x4 data:4byte +NoSyncF = .sbss:0x801F0FF4; // type:object size:0x2 scope:local data:2byte +Hu3DCameraExistF = .sbss:0x801F0FF6; // type:object size:0x2 data:2byte +Hu3DPauseF = .sbss:0x801F0FF8; // type:object size:0x2 data:2byte +Hu3DMallocNo = .sbss:0x801F0FFC; // type:object size:0x4 data:4byte +Hu3DCameraBit = .sbss:0x801F1000; // type:object size:0x2 data:2byte +Hu3DCameraNo = .sbss:0x801F1002; // type:object size:0x2 data:2byte +Hu3DProjectionNum = .sbss:0x801F1004; // type:object size:0x2 data:2byte +shadowModelDrawF = .sbss:0x801F1008; // type:object size:0x4 data:4byte +Hu3DShadowF = .sbss:0x801F100C; // type:object size:0x4 data:4byte +Hu3DShadowCamBit = .sbss:0x801F1010; // type:object size:0x2 data:2byte +toonAnim = .sbss:0x801F1014; // type:object size:0x4 data:4byte +reflectMapNo = .sbss:0x801F1018; // type:object size:0x2 data:2byte +BGColor = .sbss:0x801F101A; // type:object size:0x4 data:byte +bitMapPtr = .sbss:0x801F1020; // type:object size:0x4 scope:local data:4byte +metf = .sbss:0x801F1028; // type:object size:0x1 scope:local data:byte +tokenEndF = .sbss:0x801F102A; // type:object size:0x2 scope:local data:2byte +total_copy_clks = .sbss:0x801F102C; // type:object size:0x4 scope:local data:4byte +clr_pixels_in = .sbss:0x801F1030; // type:object size:0x4 scope:local +bot_pixels_out = .sbss:0x801F1034; // type:object size:0x4 scope:local +bot_pixels_in = .sbss:0x801F1038; // type:object size:0x4 scope:local +top_pixels_out = .sbss:0x801F103C; // type:object size:0x4 scope:local +top_pixels_in = .sbss:0x801F1040; // type:object size:0x4 scope:local +fi_req = .sbss:0x801F1044; // type:object size:0x4 scope:local +rf_req = .sbss:0x801F1048; // type:object size:0x4 scope:local +pe_req = .sbss:0x801F104C; // type:object size:0x4 scope:local +vi_req = .sbss:0x801F1050; // type:object size:0x4 scope:local +io_req = .sbss:0x801F1054; // type:object size:0x4 scope:local +dsp_req = .sbss:0x801F1058; // type:object size:0x4 scope:local +cpu_wr_req = .sbss:0x801F105C; // type:object size:0x4 scope:local +cpu_rd_req = .sbss:0x801F1060; // type:object size:0x4 scope:local +tc_req = .sbss:0x801F1064; // type:object size:0x4 scope:local +cp_req = .sbss:0x801F1068; // type:object size:0x4 scope:local +vstall = .sbss:0x801F106C; // type:object size:0x4 scope:local +vmiss = .sbss:0x801F1070; // type:object size:0x4 scope:local +vcheck = .sbss:0x801F1074; // type:object size:0x4 scope:local +met1 = .sbss:0x801F1078; // type:object size:0x4 scope:local +met0 = .sbss:0x801F107C; // type:object size:0x4 scope:local +omdispinfo = .sbss:0x801F1080; // type:object size:0x2 data:2byte +omSysExitReq = .sbss:0x801F1082; // type:object size:0x2 data:2byte +omUPauseFlag = .sbss:0x801F1084; // type:object size:0x1 data:byte +omnextovlstat = .sbss:0x801F1088; // type:object size:0x4 scope:local data:4byte +omovlstat = .sbss:0x801F108C; // type:object size:0x4 data:4byte +omnextovlevtno = .sbss:0x801F1090; // type:object size:0x4 scope:local data:4byte +omovlevtno = .sbss:0x801F1094; // type:object size:0x4 data:4byte +omovlhisidx = .sbss:0x801F1098; // type:object size:0x4 data:4byte +omcurdll = .sbss:0x801F109C; // type:object size:0x4 data:4byte +omcurovl = .sbss:0x801F10A0; // type:object size:0x4 data:4byte +omnextovl = .sbss:0x801F10A4; // type:object size:0x4 scope:local data:4byte +omwatchproc = .sbss:0x801F10A8; // type:object size:0x4 scope:local data:4byte +omDBGSysKeyObj = .sbss:0x801F10AC; // type:object size:0x4 data:4byte +y_start = .sbss:0x801F10B0; // type:object size:0x4 scope:local data:4byte +x_start = .sbss:0x801F10B4; // type:object size:0x4 scope:local data:4byte +Draw_Color = .sbss:0x801F10B8; // type:object size:0x3 scope:local data:byte +XFB_putc = .sbss:0x801F10BC; // type:object size:0x4 scope:local data:4byte +omDBGMenuButton = .sbss:0x801F10C0; // type:object size:0x2 +CZoom = .sbss:0x801F10C4; // type:object size:0x4 data:float +omDLLFileList = .sbss:0x801F10C8; // type:object size:0x8 scope:local data:4byte +frand_seed = .sbss:0x801F10D0; // type:object size:0x8 scope:local data:4byte +fadeStat = .sbss:0x801F10D8; // type:object size:0x1 data:byte +musicOffF = .sbss:0x801F10DC; // type:object size:0x4 data:4byte +Snd3DDistOffset = .sbss:0x801F10E0; // type:object size:0x4 data:float +Snd3DSpeedOffset = .sbss:0x801F10E4; // type:object size:0x4 data:float +Snd3DStartDisOffset = .sbss:0x801F10E8; // type:object size:0x4 data:float +Snd3DFrontSurDisOffset = .sbss:0x801F10EC; // type:object size:0x4 data:float +Snd3DBackSurDisOffset = .sbss:0x801F10F0; // type:object size:0x4 data:float +HuAuxBVol = .sbss:0x801F10F4; // type:object size:0x1 scope:local data:byte +HuAuxAVol = .sbss:0x801F10F5; // type:object size:0x1 scope:local data:byte +auxBNoBak = .sbss:0x801F10F8; // type:object size:0x4 scope:local data:4byte +auxANoBak = .sbss:0x801F10FC; // type:object size:0x4 scope:local data:4byte +sndGroupBak = .sbss:0x801F1100; // type:object size:0x2 scope:local data:2byte +Hu3DAudVol = .sbss:0x801F1102; // type:object size:0x2 scope:local data:2byte +Meshno = .sbss:0x801F1108; // type:object size:0x4 scope:local data:4byte +Meshcnt = .sbss:0x801F110C; // type:object size:0x4 scope:local data:4byte +normtop = .sbss:0x801F1110; // type:object size:0x4 scope:local data:4byte +normenv = .sbss:0x801F1114; // type:object size:0x4 scope:local data:4byte +vtxenv = .sbss:0x801F1118; // type:object size:0x4 scope:local data:4byte +CurHsf = .sbss:0x801F111C; // type:object size:0x4 scope:local data:4byte +objtop = .sbss:0x801F1120; // type:object size:0x4 scope:local data:4byte +nMesh = .sbss:0x801F1124; // type:object size:0x4 scope:local data:4byte +nObj = .sbss:0x801F1128; // type:object size:0x4 scope:local data:4byte +MtxTop = .sbss:0x801F112C; // type:object size:0x4 scope:local data:4byte +Vertextop = .sbss:0x801F1130; // type:object size:0x4 data:4byte +seqLanguage = .sbss:0x801F1138; // type:object size:0x4 scope:local data:4byte +pauseProcess = .sbss:0x801F113C; // type:object size:0x4 scope:local data:4byte +pauseActiveF = .sbss:0x801F1140; // type:object size:0x4 scope:local data:4byte +pauseExitF = .sbss:0x801F1144; // type:object size:0x4 scope:local data:4byte +pauseWaitF = .sbss:0x801F1148; // type:object size:0x4 scope:local data:4byte +seqRecordVal = .sbss:0x801F114C; // type:object size:0x4 scope:local data:4byte +seqPauseF = .sbss:0x801F1150; // type:object size:0x2 scope:local data:2byte +seqSpeed = .sbss:0x801F1152; // type:object size:0x2 scope:local data:2byte +lbl_801F1154 = .sbss:0x801F1154; // type:object size:0x1 data:byte +seqDoneF = .sbss:0x801F1155; // type:object size:0x1 scope:local data:byte +seqTimer = .sbss:0x801F1156; // type:object size:0x2 scope:local data:2byte +gid = .sbss:0x801F1158; // type:object size:0x2 scope:local data:2byte +lbl_801D3DA0 = .sbss:0x801F1160; // type:object size:0x8 +wipeFadeInF = .sbss:0x801F1168; // type:object size:0x8 data:4byte +fontAnim = .sbss:0x801F1170; // type:object size:0x4 data:4byte +LanguageNo = .sbss:0x801F1174; // type:object size:0x1 scope:local data:byte +comKeyIdx = .sbss:0x801F1176; // type:object size:0x2 scope:local data:2byte +comKeyIdxNow = .sbss:0x801F1178; // type:object size:0x2 scope:local data:2byte +mesCharCnt = .sbss:0x801F117A; // type:object size:0x2 scope:local data:2byte +cancelCRF = .sbss:0x801F117C; // type:object size:0x4 scope:local data:4byte +fontWidthP = .sbss:0x801F1180; // type:object size:0x4 scope:local data:4byte +winAMemP = .sbss:0x801F1184; // type:object size:0x4 scope:local data:4byte +winInsertF = .sbss:0x801F1188; // type:object size:0x1 scope:local data:byte +winTabSize = .sbss:0x801F1189; // type:object size:0x1 scope:local data:byte +winMaxHeight = .sbss:0x801F118A; // type:object size:0x2 scope:local data:2byte +winMaxWidth = .sbss:0x801F118C; // type:object size:0x2 scope:local data:2byte +messDataNo = .sbss:0x801F1190; // type:object size:0x4 scope:local data:4byte +messDataPtr = .sbss:0x801F1194; // type:object size:0x4 data:4byte +winProc = .sbss:0x801F1198; // type:object size:0x4 scope:local data:4byte +cardAnimB = .sbss:0x801F119C; // type:object size:0x4 scope:local data:4byte +cardAnimA = .sbss:0x801F11A0; // type:object size:0x4 scope:local data:4byte +cursorAnim = .sbss:0x801F11A4; // type:object size:0x4 scope:local data:4byte +iconAnim = .sbss:0x801F11A8; // type:object size:0x8 scope:local data:4byte +UnMountCnt = .sbss:0x801F11B0; // type:object size:0x1 data:byte +cardWork = .sbss:0x801F11B4; // type:object size:0x4 scope:local data:4byte +arqIdx = .sbss:0x801F11B8; // type:object size:0x2 scope:local data:2byte +arqCnt = .sbss:0x801F11BC; // type:object size:0x4 scope:local data:4byte +ARBase = .sbss:0x801F11C0; // type:object size:0x8 scope:local data:4byte +effectAMemP = .sbss:0x801F11C8; // type:object size:0x4 scope:local data:4byte +skipAnimUpdate = .sbss:0x801F11CC; // type:object size:0x4 scope:local data:4byte +CollisionCount = .sbss:0x801F11D0; // type:object size:0x4 data:4byte +topvtx = .sbss:0x801F11D4; // type:object size:0x4 scope:local data:4byte +AttrHsf = .sbss:0x801F11D8; // type:object size:0x4 scope:local data:4byte +HitFaceCount = .sbss:0x801F11DC; // type:object size:0x4 data:4byte +nChar = .sbss:0x801F11E0; // type:object size:0x4 +nMap = .sbss:0x801F11E4; // type:object size:0x4 data:4byte +AddZ = .sbss:0x801F11E8; // type:object size:0x4 data:float +AddX = .sbss:0x801F11EC; // type:object size:0x4 data:float +Initialized = .sbss:0x801F11F0; // type:object size:0x4 scope:local data:4byte +OldAIDCallback = .sbss:0x801F11F4; // type:object size:0x4 scope:local data:4byte +AudioSystem = .sbss:0x801F11F8; // type:object size:0x4 scope:local data:4byte +bufIdx = .sbss:0x801F11FC; // type:object size:0x4 scope:local data:4byte +CurAudioBuffer = .sbss:0x801F1200; // type:object size:0x4 scope:local data:4byte +LastAudioBuffer = .sbss:0x801F1204; // type:object size:0x4 scope:local data:4byte +SoundBufferIndex = .sbss:0x801F1208; // type:object size:0x4 scope:local data:4byte +THPProc = .sbss:0x801F1210; // type:object size:0x4 data:4byte +THPStart = .sbss:0x801F1214; // type:object size:0x2 scope:local data:2byte +THPFrame = .sbss:0x801F1218; // type:object size:0x4 scope:local data:4byte +THPStat = .sbss:0x801F121C; // type:object size:0x2 scope:local data:2byte +THPLoopF = .sbss:0x801F121E; // type:object size:0x2 scope:local data:2byte +decodeThread = .sbss:0x801F1220; // type:object size:0x4 scope:local data:4byte +decodeStackP = .sbss:0x801F1224; // type:object size:0x4 scope:local data:4byte +decodeRate = .sbss:0x801F1228; // type:object size:0x4 scope:local data:4byte +audioTrack = .sbss:0x801F122C; // type:object size:0x8 scope:local data:4byte +mgBoardHostEnableF = .sbss:0x801F1238; // type:object size:0x4 +mgInstExitEnableF = .sbss:0x801F123C; // type:object size:0x4 +mgPracticeEnableF = .sbss:0x801F1240; // type:object size:0x4 data:4byte +mgQuitExtraF = .sbss:0x801F1244; // type:object size:0x4 data:4byte +mgRecordExtra = .sbss:0x801F1248; // type:object size:0x4 +lbl_801D3E94 = .sbss:0x801F124C; // type:object size:0x2 +mgBattleStarMax = .sbss:0x801F124E; // type:object size:0x2 +mgBattleStar = .sbss:0x801F1250; // type:object size:0x8 +mgTypeCurr = .sbss:0x801F1258; // type:object size:0x2 +curSlotNo = .sbss:0x801F1260; // type:object size:0x2 data:2byte +curBoxNo = .sbss:0x801F1262; // type:object size:0x1 data:byte +saveExecF = .sbss:0x801F1264; // type:object size:0x4 +SLSerialNo = .sbss:0x801F1268; // type:object size:0x8 data:4byte +H_ResetReady = .sbss:0x801F1270; // type:object size:0x4 scope:local data:4byte +SR_RestartChk = .sbss:0x801F1274; // type:object size:0x4 scope:local data:4byte +SR_ExecReset = .sbss:0x801F1278; // type:object size:0x4 data:4byte +trychkBusyWait = .sbss:0x801F127C; // type:object size:0x4 scope:local data:4byte +XfbProg = .sbss:0x801F1280; // type:object size:0x4 scope:local data:4byte +XfbH = .sbss:0x801F1284; // type:object size:0x2 scope:local data:2byte +XfbW = .sbss:0x801F1286; // type:object size:0x2 scope:local data:2byte +boardMainProc = .sbss:0x801F1288; // type:object size:0x4 data:4byte +boardObjMan = .sbss:0x801F128C; // type:object size:0x4 data:4byte +cameraObj = .sbss:0x801F1290; // type:object size:0x4 scope:local data:4byte +tauntObj = .sbss:0x801F1294; // type:object size:0x4 scope:local data:4byte +cameraUseBackup = .sbss:0x801F1298; // type:object size:0x4 scope:local data:4byte +createFunc = .sbss:0x801F129C; // type:object size:0x4 scope:local data:4byte +destroyFunc = .sbss:0x801F12A0; // type:object size:0x4 scope:local data:4byte +boardLightSetHook = .sbss:0x801F12A4; // type:object size:0x4 data:4byte +boardLightResetHook = .sbss:0x801F12A8; // type:object size:0x4 data:4byte +boardTurnFunc = .sbss:0x801F12AC; // type:object size:0x4 data:4byte +boardStarGiveHook = .sbss:0x801F12B0; // type:object size:0x4 data:4byte +boardStarShowNextHook = .sbss:0x801F12B4; // type:object size:0x4 data:4byte +boardBowserHook = .sbss:0x801F12B8; // type:object size:0x4 data:4byte +boardTurnStartFunc = .sbss:0x801F12BC; // type:object size:0x4 data:4byte +filterObj = .sbss:0x801F12C0; // type:object size:0x4 scope:local data:4byte +confettiObj = .sbss:0x801F12C4; // type:object size:0x4 scope:local data:4byte +last5GfxObj = .sbss:0x801F12C8; // type:object size:0x4 scope:local data:4byte +boardRandSeed = .sbss:0x801F12CC; // type:object size:0x4 data:4byte +boardMainObj = .sbss:0x801F12D0; // type:object size:0x8 data:4byte +megaDoubleDiceF = .sbss:0x801F12D8; // type:object size:0x4 scope:local data:4byte +bowserSuitObj = .sbss:0x801F12DC; // type:object size:0x4 scope:local data:4byte +junctionMask = .sbss:0x801F12E0; // type:object size:0x4 scope:local data:4byte +junctionObj = .sbss:0x801F12E4; // type:object size:0x4 scope:local data:4byte +rollObj = .sbss:0x801F12E8; // type:object size:0x4 scope:local data:4byte +moveAwayObj = .sbss:0x801F12EC; // type:object size:0x4 scope:local data:4byte +junctionArrowRot = .sbss:0x801F12F0; // type:object size:0x8 scope:local +moveAwayPlayer = .sbss:0x801F12F8; // type:object size:0x4 scope:local data:byte +itemPrev = .sbss:0x801F12FC; // type:object size:0x1 scope:local data:byte +playerMot = .sbss:0x801F12FE; // type:object size:0x8 scope:local +boardPlayerMdl = .sbss:0x801F1306; // type:object size:0x8 +modelDataList = .sbss:0x801F1310; // type:object size:0x4 scope:local data:4byte +modelMgrObj = .sbss:0x801F1314; // type:object size:0x4 scope:local data:4byte +modelDataNum = .sbss:0x801F1318; // type:object size:0x2 scope:local data:2byte +winProc = .sbss:0x801F1320; // type:object size:0x4 scope:local data:4byte +comKeyFunc = .sbss:0x801F1324; // type:object size:0x4 scope:local data:4byte +lbl_801D3F70 = .sbss:0x801F1328; // type:object size:0x8 scope:local data:float +winAttr = .sbss:0x801F1330; // type:object size:0x4 scope:local data:4byte +winMess = .sbss:0x801F1334; // type:object size:0x4 scope:local data:4byte +defaultChoice = .sbss:0x801F1338; // type:object size:0x2 scope:local data:2byte +messSpeed = .sbss:0x801F133A; // type:object size:0x2 scope:local data:2byte +winPrio = .sbss:0x801F133C; // type:object size:0x2 scope:local data:2byte +winWait = .sbss:0x801F133E; // type:object size:0x1 scope:local data:byte +winPause = .sbss:0x801F133F; // type:object size:0x1 scope:local data:byte +disablePlayer = .sbss:0x801F1340; // type:object size:0x1 scope:local data:byte +winPosIdx = .sbss:0x801F1341; // type:object size:0x1 scope:local data:byte +winPortrait = .sbss:0x801F1342; // type:object size:0x1 scope:local data:byte +autoPickF = .sbss:0x801F1343; // type:object size:0x1 scope:local data:byte +winChoice = .sbss:0x801F1344; // type:object size:0x1 scope:local data:byte +boardSeq = .sbss:0x801F1348; // type:object size:0x8 scope:local +viewProc = .sbss:0x801F1350; // type:object size:0x4 scope:local data:4byte +pauseDisableF = .sbss:0x801F1354; // type:object size:0x1 scope:local data:byte +overheadObj = .sbss:0x801F1358; // type:object size:0x4 scope:local data:4byte +focusTimer = .sbss:0x801F135C; // type:object size:0x2 scope:local data:2byte +focusDestroyF = .sbss:0x801F135E; // type:object size:0x1 scope:local data:byte +viewMoveF = .sbss:0x801F135F; // type:object size:0x1 scope:local data:byte +viewPlayer = .sbss:0x801F1360; // type:object size:0x1 scope:local data:byte +viewControls = .sbss:0x801F1361; // type:object size:0x1 scope:local data:byte +spaceDrawF = .sbss:0x801F1368; // type:object size:0x2 scope:local data:2byte +spaceDrawCnt = .sbss:0x801F136C; // type:object size:0x4 scope:local data:4byte +walkEventFunc = .sbss:0x801F1370; // type:object size:0x4 scope:local data:4byte +walkMiniEventFunc = .sbss:0x801F1374; // type:object size:0x4 scope:local data:4byte +landEventFunc = .sbss:0x801F1378; // type:object size:0x4 scope:local data:4byte +lbl_801D3FC4 = .sbss:0x801F137C; // type:object size:0x8 data:2byte +spaceHiliteTexFmt = .sbss:0x801F1384; // type:object size:0x4 scope:local data:4byte +spaceTexFmt = .sbss:0x801F1388; // type:object size:0x4 scope:local data:4byte +spaceHiliteTexData = .sbss:0x801F138C; // type:object size:0x4 scope:local data:4byte +spaceTexData = .sbss:0x801F1390; // type:object size:0x4 scope:local data:4byte +spaceAttr = .sbss:0x801F1394; // type:object size:0x8 scope:local data:4byte +spaceCnt = .sbss:0x801F139C; // type:object size:0x4 scope:local data:2byte +shopProc = .sbss:0x801F13A0; // type:object size:0x4 scope:local data:4byte +shopWinObj = .sbss:0x801F13A4; // type:object size:0x4 scope:local data:4byte +itemGiveObj = .sbss:0x801F13A8; // type:object size:0x4 scope:local data:4byte +itemChoiceObj = .sbss:0x801F13AC; // type:object size:0x4 scope:local data:4byte +comF = .sbss:0x801F13B0; // type:object size:0x4 scope:local data:4byte +angleVal = .sbss:0x801F13B4; // type:object size:0x2 scope:local data:2byte +shopPlayer = .sbss:0x801F13B6; // type:object size:0x1 scope:local data:byte +shopMdlPtr = .sbss:0x801F13B8; // type:object size:0x4 scope:local data:4byte +shopMdlIdx = .sbss:0x801F13BC; // type:object size:0x4 scope:local +lotteryProc = .sbss:0x801F13C0; // type:object size:0x4 scope:local data:4byte +comInputDrawP = .sbss:0x801F13C4; // type:object size:0x4 scope:local data:4byte +lotteryTicketPickObj = .sbss:0x801F13C8; // type:object size:0x4 scope:local data:4byte +handUpdateF = .sbss:0x801F13CC; // type:object size:0x4 scope:local data:4byte +comInputPos = .sbss:0x801F13D0; // type:object size:0x1 scope:local data:byte +comLotteryWinType = .sbss:0x801F13D1; // type:object size:0x1 scope:local data:byte +comLotteryType = .sbss:0x801F13D2; // type:object size:0x1 scope:local data:byte +lbl_801D401B = .sbss:0x801F13D3; // type:object size:0x1 scope:local data:byte +currPrize = .sbss:0x801F13D4; // type:object size:0x1 scope:local data:byte +lotterySpace = .sbss:0x801F13D6; // type:object size:0x2 scope:local data:2byte +lotteryMessBase = .sbss:0x801F13D8; // type:object size:0x4 scope:local data:4byte +warpProcess = .sbss:0x801F13E0; // type:object size:0x4 scope:local data:4byte +warpYVel = .sbss:0x801F13E4; // type:object size:0x4 scope:local data:float +warpYFloor = .sbss:0x801F13E8; // type:object size:0x4 scope:local data:float +warpSpace = .sbss:0x801F13EC; // type:object size:0x2 scope:local data:2byte +warpImpactCnt = .sbss:0x801F13EE; // type:object size:0x1 scope:local data:byte +warpTarget = .sbss:0x801F13EF; // type:object size:0x1 scope:local data:byte +warpState = .sbss:0x801F13F0; // type:object size:0x1 scope:local data:byte +charWheelObj = .sbss:0x801F13F8; // type:object size:0x4 scope:local data:4byte +targetF = .sbss:0x801F13FC; // type:object size:0x2 scope:local data:2byte +angleOfs = .sbss:0x801F1400; // type:object size:0x4 scope:local data:float +targetVal = .sbss:0x801F1404; // type:object size:0x2 scope:local data:2byte +wheelSpeed = .sbss:0x801F1408; // type:object size:0x4 scope:local data:float +wheelTimer = .sbss:0x801F140C; // type:object size:0x2 scope:local data:2byte +comDelay = .sbss:0x801F140E; // type:object size:0x2 scope:local data:2byte +wheelChars = .sbss:0x801F1410; // type:object size:0x4 scope:local data:byte +mushroomProc = .sbss:0x801F1418; // type:object size:0x4 scope:local data:4byte +itemGiveObj = .sbss:0x801F141C; // type:object size:0x4 scope:local data:4byte +pickerChoice = .sbss:0x801F1420; // type:object size:0x1 scope:local data:byte +itemResult = .sbss:0x801F1421; // type:object size:0x1 scope:local data:byte +starProc = .sbss:0x801F1428; // type:object size:0x4 scope:local data:4byte +giveStarObj = .sbss:0x801F142C; // type:object size:0x4 scope:local data:4byte +starEffAnim = .sbss:0x801F1430; // type:object size:0x4 scope:local data:4byte +starDoneF = .sbss:0x801F1434; // type:object size:0x2 scope:local data:2byte +showNextObj = .sbss:0x801F1438; // type:object size:0x4 scope:local data:4byte +hostMot = .sbss:0x801F143C; // type:object size:0x4 scope:local data:2byte +rollProc = .sbss:0x801F1440; // type:object size:0x4 scope:local data:4byte +tutorialRollF = .sbss:0x801F1444; // type:object size:0x1 scope:local data:byte +sameRollCoinStr = .sbss:0x801F1445; // type:object size:0x8 scope:local +lbl_801D4098 = .sbss:0x801F1450; // type:object size:0x4 data:4byte +diceSize = .sbss:0x801F1454; // type:object size:0x1 scope:local data:byte +destMode = .sbss:0x801F1455; // type:object size:0x1 scope:local data:byte +maxRoll = .sbss:0x801F1456; // type:object size:0x1 scope:local data:byte +inputTimer = .sbss:0x801F1457; // type:object size:0x1 scope:local data:byte +numDice = .sbss:0x801F1458; // type:object size:0x1 scope:local data:byte +rollPlayer = .sbss:0x801F1459; // type:object size:0x1 scope:local data:byte +diceValue = .sbss:0x801F145A; // type:object size:0x3 scope:local data:byte +statusProc = .sbss:0x801F1460; // type:object size:0x4 scope:local data:4byte +itemWindowObj = .sbss:0x801F1464; // type:object size:0x4 scope:local data:4byte +pickerObj = .sbss:0x801F1468; // type:object size:0x4 scope:local data:4byte +yourTurnObj = .sbss:0x801F146C; // type:object size:0x4 scope:local data:4byte +itemUseProc = .sbss:0x801F1470; // type:object size:0x4 scope:local data:4byte +itemPickObj = .sbss:0x801F1474; // type:object size:0x4 scope:local data:4byte +itemPickupPos = .sbss:0x801F1478; // type:object size:0x4 scope:local data:float +itemRandTbl = .sbss:0x801F147C; // type:object size:0x6 scope:local +teamItemPlayer = .sbss:0x801F1482; // type:object size:0x1 scope:local data:byte +itemUsed = .sbss:0x801F1483; // type:object size:0x1 scope:local data:byte +itemPlayer = .sbss:0x801F1484; // type:object size:0x1 scope:local data:byte +yourTurnSpr = .sbss:0x801F1486; // type:object size:0x2 scope:local data:2byte +lbl_801D40D0 = .sbss:0x801F1488; // type:object size:0x4 data:2byte +pickerBackF = .sbss:0x801F148C; // type:object size:0x4 scope:local data:4byte +pickerChoiceDefault = .sbss:0x801F1490; // type:object size:0x1 scope:local data:byte +pickerChoice = .sbss:0x801F1491; // type:object size:0x1 scope:local data:byte +boardItemUser = .sbss:0x801F1492; // type:object size:0x1 data:byte +itemTeamF = .sbss:0x801F1493; // type:object size:0x1 scope:local data:byte +itemTeam = .sbss:0x801F1494; // type:object size:0x1 scope:local data:byte +blockProc = .sbss:0x801F1498; // type:object size:0x4 scope:local data:4byte +blockObj = .sbss:0x801F149C; // type:object size:0x4 scope:local data:4byte +rotY = .sbss:0x801F14A0; // type:object size:0x4 scope:local data:float +scaleAngle = .sbss:0x801F14A4; // type:object size:0x4 scope:local data:float +rotMax = .sbss:0x801F14A8; // type:object size:0x4 scope:local data:float +itemProc = .sbss:0x801F14B0; // type:object size:0x4 scope:local data:4byte +geniePlayerMot = .sbss:0x801F14B4; // type:object size:0x6 scope:local data:2byte +genieParticleAnim = .sbss:0x801F14BC; // type:object size:0x4 scope:local data:4byte +genieFov = .sbss:0x801F14C0; // type:object size:0x4 scope:local data:float +booCoinStr = .sbss:0x801F14C4; // type:object size:0x8 scope:local +booBallAlpha = .sbss:0x801F14CC; // type:object size:0x4 scope:local data:float +booBallMdl = .sbss:0x801F14D0; // type:object size:0x2 scope:local data:2byte +suitCommonMot = .sbss:0x801F14D4; // type:object size:0x8 scope:local data:4byte +suitMot = .sbss:0x801F14DC; // type:object size:0x8 scope:local data:4byte +suitMdl = .sbss:0x801F14E4; // type:object size:0x2 scope:local data:2byte +currItem = .sbss:0x801F14E6; // type:object size:0x1 scope:local data:byte +currItemRestore = .sbss:0x801F14E7; // type:object size:0x1 scope:local data:byte +itemBagItems = .sbss:0x801F14E8; // type:object size:0x6 scope:local +bowserProc = .sbss:0x801F14F0; // type:object size:0x4 scope:local data:4byte +bowserObj = .sbss:0x801F14F4; // type:object size:0x4 scope:local data:4byte +miniBowserObj = .sbss:0x801F14F8; // type:object size:0x4 scope:local data:4byte +bowserEventObj = .sbss:0x801F14FC; // type:object size:0x4 scope:local data:4byte +miniBowserBalloonObj = .sbss:0x801F1500; // type:object size:0x4 scope:local data:4byte +suitGiveObj = .sbss:0x801F1504; // type:object size:0x4 scope:local data:4byte +coinStealStr = .sbss:0x801F1508; // type:object size:0x8 scope:local +coinStealStrAll = .sbss:0x801F1510; // type:object size:0x8 scope:local +fireAnim = .sbss:0x801F1518; // type:object size:0x4 scope:local data:4byte +fireParMan = .sbss:0x801F151C; // type:object size:0x2 scope:local data:2byte +playerMot = .sbss:0x801F151E; // type:object size:0x8 scope:local data:2byte +eventSpace = .sbss:0x801F1526; // type:object size:0x2 scope:local data:2byte +eventType = .sbss:0x801F1528; // type:object size:0x1 scope:local data:byte +eventPlayer = .sbss:0x801F1529; // type:object size:0x1 scope:local data:byte +battleProc = .sbss:0x801F1530; // type:object size:0x4 scope:local data:4byte +battleObj = .sbss:0x801F1534; // type:object size:0x4 scope:local data:4byte +explodeObj = .sbss:0x801F1538; // type:object size:0x4 scope:local data:4byte +battleCoinPosF = .sbss:0x801F153C; // type:object size:0x4 scope:local data:float +battleCoinSpeed = .sbss:0x801F1540; // type:object size:0x4 scope:local data:float +totalCoinStr = .sbss:0x801F1544; // type:object size:0x8 scope:local +battleMGIdx = .sbss:0x801F154C; // type:object size:0x2 scope:local data:byte +battleCoinIdx = .sbss:0x801F154E; // type:object size:0x1 scope:local data:byte +currSpace = .sbss:0x801F1550; // type:object size:0x2 scope:local data:2byte +mgChoice = .sbss:0x801F1552; // type:object size:0x1 scope:local data:byte +coinTakeMax = .sbss:0x801F1553; // type:object size:0x1 scope:local data:byte +currPlayer = .sbss:0x801F1554; // type:object size:0x1 scope:local data:byte +fortuneProc = .sbss:0x801F1558; // type:object size:0x4 scope:local data:4byte +fortunePlatformObj = .sbss:0x801F155C; // type:object size:0x4 scope:local data:4byte +comStar = .sbss:0x801F1560; // type:object size:0x1 scope:local data:byte +comCoin = .sbss:0x801F1561; // type:object size:0x1 scope:local data:byte +comPrize = .sbss:0x801F1562; // type:object size:0x1 scope:local data:byte +comPlayer1 = .sbss:0x801F1563; // type:object size:0x1 scope:local data:byte +comPlayer2 = .sbss:0x801F1564; // type:object size:0x1 scope:local data:byte +currPlayer = .sbss:0x801F1565; // type:object size:0x1 scope:local data:byte +booEventObj = .sbss:0x801F1568; // type:object size:0x4 scope:local data:4byte +ballObj = .sbss:0x801F156C; // type:object size:0x4 scope:local data:4byte +ballCameraObj = .sbss:0x801F1570; // type:object size:0x4 scope:local data:4byte +ballBooObj = .sbss:0x801F1574; // type:object size:0x4 scope:local data:4byte +ballPlayerObj = .sbss:0x801F1578; // type:object size:0x4 scope:local data:4byte +ballTakeCoinObj = .sbss:0x801F157C; // type:object size:0x4 scope:local data:4byte +attackTimer = .sbss:0x801F1580; // type:object size:0x4 scope:local data:4byte +battleTimer = .sbss:0x801F1584; // type:object size:0x4 scope:local data:4byte +starChoiceEnable = .sbss:0x801F1588; // type:object size:0x3 scope:local +stealAvail = .sbss:0x801F158B; // type:object size:0x3 scope:local +punchCount = .sbss:0x801F158E; // type:object size:0x1 scope:local data:byte +stealSuccess = .sbss:0x801F158F; // type:object size:0x1 scope:local data:byte +stealValue = .sbss:0x801F1590; // type:object size:0x1 scope:local data:byte +booKillF = .sbss:0x801F1594; // type:object size:0x4 scope:local data:4byte +stealType = .sbss:0x801F1598; // type:object size:0x1 scope:local data:byte +stealTarget = .sbss:0x801F1599; // type:object size:0x1 scope:local data:byte +lbl_801D41E2 = .sbss:0x801F159A; // type:object size:0x1 data:byte +mgSetupProc = .sbss:0x801F15A0; // type:object size:0x4 scope:local data:4byte +mgSetupObj = .sbss:0x801F15A4; // type:object size:0x4 scope:local data:4byte +hiliteShowF = .sbss:0x801F15A8; // type:object size:0x1 scope:local data:byte +hiliteBlinkLen = .sbss:0x801F15A9; // type:object size:0x1 scope:local data:byte +hiliteTimer = .sbss:0x801F15AA; // type:object size:0x1 scope:local data:byte +mgPlayBattle = .sbss:0x801F15AC; // type:object size:0x4 scope:local +mgPlay2Vs2 = .sbss:0x801F15B0; // type:object size:0x6 scope:local +mgPlay1Vs3 = .sbss:0x801F15B6; // type:object size:0x6 scope:local +mgPlayBattleLen = .sbss:0x801F15BC; // type:object size:0x1 scope:local data:byte +mgPlay2Vs2Len = .sbss:0x801F15BD; // type:object size:0x1 scope:local data:byte +mgPlay1Vs3Len = .sbss:0x801F15BE; // type:object size:0x1 scope:local data:byte +mgPlay4PLen = .sbss:0x801F15BF; // type:object size:0x1 scope:local data:byte +mgNext = .sbss:0x801F15C0; // type:object size:0x2 scope:local data:2byte +hilitePos = .sbss:0x801F15C4; // type:object size:0x4 scope:local data:float +luckyF = .sbss:0x801F15C8; // type:object size:0x4 scope:local data:4byte +mgType = .sbss:0x801F15CC; // type:object size:0x1 scope:local data:byte +houseProc = .sbss:0x801F15D0; // type:object size:0x4 scope:local data:4byte +stealAmountStr = .sbss:0x801F15D4; // type:object size:0x8 scope:local +comCoinStealTarget = .sbss:0x801F15DC; // type:object size:0x4 scope:local data:4byte +comStarStealTarget = .sbss:0x801F15E0; // type:object size:0x1 scope:local data:byte +stealTarget = .sbss:0x801F15E1; // type:object size:0x1 scope:local data:byte +currPlayer = .sbss:0x801F15E2; // type:object size:0x1 scope:local data:byte +startProc = .sbss:0x801F15E8; // type:object size:0x4 scope:local data:4byte +playerOrderOld = .sbss:0x801F15EC; // type:object size:0x4 scope:local +playerOrderNew = .sbss:0x801F15F0; // type:object size:0x4 scope:local +startSpace = .sbss:0x801F15F4; // type:object size:0x2 scope:local data:2byte +hostMdl = .sbss:0x801F15F6; // type:object size:0x2 scope:local data:2byte +lotteryDrawWheelObj = .sbss:0x801F15F8; // type:object size:0x4 scope:local data:4byte +lotteryDrawObj = .sbss:0x801F15FC; // type:object size:0x4 scope:local data:4byte +hostMoveObj = .sbss:0x801F1600; // type:object size:0x4 scope:local data:4byte +teamResultObj = .sbss:0x801F1604; // type:object size:0x4 scope:local data:4byte +last5Proc = .sbss:0x801F1608; // type:object size:0x4 scope:local data:4byte +last5RouletteObj = .sbss:0x801F160C; // type:object size:0x4 scope:local data:4byte +hostMdl = .sbss:0x801F1610; // type:object size:0x2 scope:local data:2byte +last5Space = .sbss:0x801F1612; // type:object size:0x2 scope:local data:2byte +last5Player = .sbss:0x801F1614; // type:object size:0x1 scope:local data:byte +numTickets = .sbss:0x801F1615; // type:object size:0x1 scope:local data:byte +currTicket = .sbss:0x801F1616; // type:object size:0x1 scope:local data:byte +mainProcess = .sbss:0x801F1618; // type:object size:0x4 scope:local data:4byte +quitProcess = .sbss:0x801F161C; // type:object size:0x4 scope:local data:4byte +configObj = .sbss:0x801F1620; // type:object size:0x4 scope:local data:4byte +boxState = .sbss:0x801F1624; // type:object size:0x8 scope:local +cursorPos = .sbss:0x801F162C; // type:object size:0x1 scope:local data:byte +hostMdl = .sbss:0x801F162E; // type:object size:0x2 scope:local data:2byte +hostOldLayer = .sbss:0x801F1630; // type:object size:0x1 scope:local data:byte +mainScreenF = .sbss:0x801F1631; // type:object size:0x1 scope:local data:byte +pauseQuitF = .sbss:0x801F1632; // type:object size:0x1 scope:local data:byte +childNodeCnt = .sbss:0x801F1638; // type:object size:0x2 scope:local data:2byte +numCandidates = .sbss:0x801F163A; // type:object size:0x2 scope:local data:2byte +gameStatCopy = .sbss:0x801F1640; // type:object size:0x4 scope:local data:4byte +systemCopy = .sbss:0x801F1644; // type:object size:0x4 scope:local data:4byte +playerCopy = .sbss:0x801F1648; // type:object size:0x4 scope:local data:4byte +playerCfgCopy = .sbss:0x801F164C; // type:object size:0x4 scope:local data:4byte +tutorialProcess = .sbss:0x801F1650; // type:object size:0x4 scope:local data:4byte +boardTutorialF = .sbss:0x801F1654; // type:object size:0x1 data:byte +hostMdl = .sbss:0x801F1656; // type:object size:0x2 scope:local data:2byte +boardTutorialUseItem = .sbss:0x801F1658; // type:object size:0x1 data:byte +boardTutorialBlockF = .sbss:0x801F1659; // type:object size:0x1 data:byte +boardTutorialBlockItem = .sbss:0x801F165A; // type:object size:0x1 data:byte +boardTutorialBlockPos = .sbss:0x801F165C; // type:object size:0x4 data:4byte +boardTutorialDirInputTime = .sbss:0x801F1660; // type:object size:0x2 data:2byte +boardTutorialDirInputY = .sbss:0x801F1662; // type:object size:0x1 data:byte +boardTutorialDirInputX = .sbss:0x801F1663; // type:object size:0x1 data:byte +tutorialHook = .sbss:0x801F1664; // type:object size:0x4 scope:local data:4byte +BootInfo = .sbss:0x801F1668; // type:object size:0x4 scope:local data:4byte +BI2DebugFlag = .sbss:0x801F166C; // type:object size:0x4 scope:local data:4byte +BI2DebugFlagHolder = .sbss:0x801F1670; // type:object size:0x4 scope:local data:4byte +__OSIsGcam = .sbss:0x801F1674; // type:object size:0x4 scope:global data:4byte +AreWeInitialized = .sbss:0x801F1678; // type:object size:0x4 scope:local data:4byte +OSExceptionTable = .sbss:0x801F167C; // type:object size:0x4 scope:local data:4byte +__OSSavedRegionEnd = .sbss:0x801F1680; // type:object size:0x4 scope:global data:4byte +__OSSavedRegionStart = .sbss:0x801F1684; // type:object size:0x4 scope:global data:4byte +__OSInIPL = .sbss:0x801F1688; // type:object size:0x4 scope:global data:4byte +__OSStartTime = .sbss:0x801F1690; // type:object size:0x8 scope:global data:4byte +AlarmQueue = .sbss:0x801F1698; // type:object size:0x8 scope:local data:4byte +lbl_801F16A0 = .sbss:0x801F16A0; // type:object size:0x4 data:4byte +lbl_801F16A4 = .sbss:0x801F16A4; // type:object size:0x4 data:4byte +lbl_801F16A8 = .sbss:0x801F16A8; // type:object size:0x4 data:4byte +lbl_801F16AC = .sbss:0x801F16AC; // type:object size:0x4 data:4byte +__OSArenaHi = .sbss:0x801F16B0; // type:object size:0x4 scope:local data:4byte +InterruptHandlerTable = .sbss:0x801F16B8; // type:object size:0x4 scope:local data:4byte +__OSLastInterruptSrr0 = .sbss:0x801F16BC; // type:object size:0x4 scope:global data:4byte +__OSLastInterrupt = .sbss:0x801F16C0; // type:object size:0x2 scope:global data:2byte +__OSLastInterruptTime = .sbss:0x801F16C8; // type:object size:0x8 scope:global data:4byte +lbl_801F16D0 = .sbss:0x801F16D0; // type:object size:0x4 data:4byte +lbl_801F16D4 = .sbss:0x801F16D4; // type:object size:0x4 data:4byte +lbl_801F16D8 = .sbss:0x801F16D8; // type:object size:0x8 data:4byte +ResetFunctionQueue = .sbss:0x801F16E0; // type:object size:0x8 scope:local data:4byte +lbl_801F16E8 = .sbss:0x801F16E8; // type:object size:0x4 data:4byte +lbl_801F16EC = .sbss:0x801F16EC; // type:object size:0x4 data:4byte +lbl_801F16F0 = .sbss:0x801F16F0; // type:object size:0x8 data:4byte +lbl_801F16F8 = .sbss:0x801F16F8; // type:object size:0x4 data:4byte +lbl_801F16FC = .sbss:0x801F16FC; // type:object size:0x4 data:4byte +lbl_801F1700 = .sbss:0x801F1700; // type:object size:0x4 data:4byte +lbl_801F1704 = .sbss:0x801F1704; // type:object size:0x4 data:4byte +RunQueueBits = .sbss:0x801F1708; // type:object size:0x4 scope:local data:4byte +RunQueueHint = .sbss:0x801F170C; // type:object size:0x4 scope:local data:4byte +Reschedule = .sbss:0x801F1710; // type:object size:0x4 scope:local data:4byte +__DBInterface = .sbss:0x801F1718; // type:object size:0x4 scope:global data:4byte +DBVerbose = .sbss:0x801F171C; // type:object size:0x4 scope:global data:4byte +StopAtNextInt = .sbss:0x801F1720; // type:object size:0x4 scope:local data:4byte +lbl_801F1724 = .sbss:0x801F1724; // type:object size:0x4 data:4byte +Callback = .sbss:0x801F1728; // type:object size:0x4 scope:local data:4byte +lbl_801F172C = .sbss:0x801F172C; // type:object size:0x4 data:4byte +LastResetEnd = .sbss:0x801F1730; // type:object size:0x8 scope:local data:4byte +ResetOccurred = .sbss:0x801F1738; // type:object size:0x4 scope:local data:4byte +WaitingCoverClose = .sbss:0x801F173C; // type:object size:0x4 scope:local data:4byte +lbl_801F1740 = .sbss:0x801F1740; // type:object size:0x4 data:4byte +WorkAroundType = .sbss:0x801F1744; // type:object size:0x4 scope:local data:4byte +WorkAroundSeekLocation = .sbss:0x801F1748; // type:object size:0x4 scope:local data:4byte +lbl_801F1750 = .sbss:0x801F1750; // type:object size:0x4 data:4byte +lbl_801F1754 = .sbss:0x801F1754; // type:object size:0x4 data:4byte +lbl_801F1758 = .sbss:0x801F1758; // type:object size:0x4 data:4byte +lbl_801F175C = .sbss:0x801F175C; // type:object size:0x4 data:4byte +lbl_801F1760 = .sbss:0x801F1760; // type:object size:0x4 data:4byte +NextCommandNumber = .sbss:0x801F1764; // type:object size:0x4 scope:local data:4byte +BootInfo = .sbss:0x801F1768; // type:object size:0x4 scope:local data:4byte +FstStart = .sbss:0x801F176C; // type:object size:0x4 scope:local data:4byte +FstStringStart = .sbss:0x801F1770; // type:object size:0x4 scope:local data:4byte +MaxEntryNum = .sbss:0x801F1774; // type:object size:0x4 scope:local data:4byte +lbl_801F1778 = .sbss:0x801F1778; // type:object size:0x4 data:4byte +__DVDLongFileNameFlag = .sbss:0x801F177C; // type:object size:0x4 scope:global data:4byte +__DVDThreadQueue = .sbss:0x801F1780; // type:object size:0x8 scope:global +executing = .sbss:0x801F1788; // type:object size:0x4 scope:local data:4byte +currID = .sbss:0x801F178C; // type:object size:0x4 scope:local data:4byte +bootInfo = .sbss:0x801F1790; // type:object size:0x4 scope:local data:4byte +PauseFlag = .sbss:0x801F1794; // type:object size:0x4 scope:local data:4byte +PausingFlag = .sbss:0x801F1798; // type:object size:0x4 scope:local data:4byte +lbl_801F179C = .sbss:0x801F179C; // type:object size:0x4 data:4byte +FatalErrorFlag = .sbss:0x801F17A0; // type:object size:0x4 scope:local data:4byte +CurrCommand = .sbss:0x801F17A4; // type:object size:0x4 scope:local data:4byte +lbl_801F17A8 = .sbss:0x801F17A8; // type:object size:0x4 data:4byte +lbl_801F17AC = .sbss:0x801F17AC; // type:object size:0x4 data:4byte +ResumeFromHere = .sbss:0x801F17B0; // type:object size:0x4 scope:local data:4byte +CancelLastError = .sbss:0x801F17B4; // type:object size:0x4 scope:local data:4byte +lbl_801F17B8 = .sbss:0x801F17B8; // type:object size:0x4 data:4byte +lbl_801F17BC = .sbss:0x801F17BC; // type:object size:0x4 data:4byte +ResetRequired = .sbss:0x801F17C0; // type:object size:0x4 scope:local data:4byte +FirstTimeInBootrom = .sbss:0x801F17C4; // type:object size:0x4 scope:local data:4byte +DVDInitialized = .sbss:0x801F17C8; // type:object size:0x4 scope:local data:4byte +lbl_801F17CC = .sbss:0x801F17CC; // type:object size:0x4 data:4byte +lbl_801F17D0 = .sbss:0x801F17D0; // type:object size:0x4 data:4byte +bb2 = .sbss:0x801F17D4; // type:object size:0x4 scope:local data:4byte +idTmp = .sbss:0x801F17D8; // type:object size:0x4 scope:local data:4byte +lbl_801F17E0 = .sbss:0x801F17E0; // type:object size:0x4 data:4byte +lbl_801F17E4 = .sbss:0x801F17E4; // type:object size:0x4 data:4byte +lbl_801F17E8 = .sbss:0x801F17E8; // type:object size:0x8 +lbl_801F17F0 = .sbss:0x801F17F0; // type:object size:0x4 data:4byte +lbl_801F17F4 = .sbss:0x801F17F4; // type:object size:0x4 data:4byte +lbl_801F17F8 = .sbss:0x801F17F8; // type:object size:0x4 data:4byte +lbl_801F17FC = .sbss:0x801F17FC; // type:object size:0x2 data:2byte +lbl_801F17FE = .sbss:0x801F17FE; // type:object size:0x2 data:2byte +lbl_801F1800 = .sbss:0x801F1800; // type:object size:0x8 data:4byte +lbl_801F1808 = .sbss:0x801F1808; // type:object size:0x4 data:4byte +lbl_801F180C = .sbss:0x801F180C; // type:object size:0x4 data:4byte +lbl_801F1810 = .sbss:0x801F1810; // type:object size:0x8 data:4byte +lbl_801F1818 = .sbss:0x801F1818; // type:object size:0x4 data:4byte +lbl_801F181C = .sbss:0x801F181C; // type:object size:0x4 data:4byte +lbl_801F1820 = .sbss:0x801F1820; // type:object size:0x4 data:4byte +CurrTvMode = .sbss:0x801F1824; // type:object size:0x4 scope:local data:4byte +lbl_801F1828 = .sbss:0x801F1828; // type:object size:0x4 data:4byte +lbl_801F182C = .sbss:0x801F182C; // type:object size:0x4 data:4byte +lbl_801F1830 = .sbss:0x801F1830; // type:object size:0x8 data:4byte +lbl_801F1838 = .sbss:0x801F1838; // type:object size:0x8 data:4byte +lbl_801F1840 = .sbss:0x801F1840; // type:object size:0x4 data:4byte +lbl_801F1844 = .sbss:0x801F1844; // type:object size:0x4 data:4byte +lbl_801F1848 = .sbss:0x801F1848; // type:object size:0x4 data:4byte +lbl_801F184C = .sbss:0x801F184C; // type:object size:0x4 data:4byte +lbl_801F1850 = .sbss:0x801F1850; // type:object size:0x4 data:4byte +lbl_801F1854 = .sbss:0x801F1854; // type:object size:0x4 data:4byte +lbl_801F1858 = .sbss:0x801F1858; // type:object size:0x4 data:4byte +lbl_801F185C = .sbss:0x801F185C; // type:object size:0x4 data:4byte +lbl_801F1860 = .sbss:0x801F1860; // type:object size:0x4 data:4byte +lbl_801F1864 = .sbss:0x801F1864; // type:object size:0x4 data:4byte +lbl_801F1868 = .sbss:0x801F1868; // type:object size:0x4 data:4byte +lbl_801F186C = .sbss:0x801F186C; // type:object size:0x4 data:4byte +lbl_801F1870 = .sbss:0x801F1870; // type:object size:0x4 data:4byte +lbl_801F1874 = .sbss:0x801F1874; // type:object size:0x4 data:4byte +lbl_801F1878 = .sbss:0x801F1878; // type:object size:0x4 data:4byte +lbl_801F187C = .sbss:0x801F187C; // type:object size:0x4 data:4byte +lbl_801F1880 = .sbss:0x801F1880; // type:object size:0x4 data:4byte +lbl_801F1884 = .sbss:0x801F1884; // type:object size:0x4 data:4byte +lbl_801F1888 = .sbss:0x801F1888; // type:object size:0x4 data:4byte +lbl_801F188C = .sbss:0x801F188C; // type:object size:0x4 data:4byte +lbl_801F1890 = .sbss:0x801F1890; // type:object size:0x4 data:4byte +lbl_801F1894 = .sbss:0x801F1894; // type:object size:0x4 data:4byte +lbl_801F1898 = .sbss:0x801F1898; // type:object size:0x4 data:4byte +lbl_801F189C = .sbss:0x801F189C; // type:object size:0x4 data:4byte +lbl_801F18A0 = .sbss:0x801F18A0; // type:object size:0x4 data:4byte +lbl_801F18A4 = .sbss:0x801F18A4; // type:object size:0x4 data:4byte +lbl_801F18A8 = .sbss:0x801F18A8; // type:object size:0x4 data:4byte +lbl_801F18AC = .sbss:0x801F18AC; // type:object size:0x4 data:4byte +lbl_801F18B0 = .sbss:0x801F18B0; // type:object size:0x4 data:4byte +lbl_801F18B4 = .sbss:0x801F18B4; // type:object size:0x4 data:4byte +lbl_801F18B8 = .sbss:0x801F18B8; // type:object size:0x4 data:4byte +lbl_801F18BC = .sbss:0x801F18BC; // type:object size:0x4 data:4byte +lbl_801F18C0 = .sbss:0x801F18C0; // type:object size:0x4 data:4byte +__PADSpec = .sbss:0x801F18C4; // type:object size:0x4 scope:global data:4byte +lbl_801F18C8 = .sbss:0x801F18C8; // type:object size:0x4 data:4byte +lbl_801F18CC = .sbss:0x801F18CC; // type:object size:0x4 data:4byte +lbl_801F18D0 = .sbss:0x801F18D0; // type:object size:0x4 data:4byte +lbl_801F18D4 = .sbss:0x801F18D4; // type:object size:0x4 data:4byte +lbl_801F18D8 = .sbss:0x801F18D8; // type:object size:0x8 data:4byte +lbl_801F18E0 = .sbss:0x801F18E0; // type:object size:0x4 data:4byte +lbl_801F18E4 = .sbss:0x801F18E4; // type:object size:0x4 data:4byte +lbl_801F18E8 = .sbss:0x801F18E8; // type:object size:0x4 data:4byte +lbl_801F18EC = .sbss:0x801F18EC; // type:object size:0x4 data:4byte +lbl_801F18F0 = .sbss:0x801F18F0; // type:object size:0x4 data:4byte +lbl_801F18F4 = .sbss:0x801F18F4; // type:object size:0x4 data:4byte +lbl_801F18F8 = .sbss:0x801F18F8; // type:object size:0x4 data:4byte +lbl_801F18FC = .sbss:0x801F18FC; // type:object size:0x4 data:4byte +lbl_801F1900 = .sbss:0x801F1900; // type:object size:0x4 data:4byte +lbl_801F1904 = .sbss:0x801F1904; // type:object size:0x4 data:4byte +lbl_801F1908 = .sbss:0x801F1908; // type:object size:0x4 data:4byte +lbl_801F190C = .sbss:0x801F190C; // type:object size:0x4 data:4byte +lbl_801F1910 = .sbss:0x801F1910; // type:object size:0x4 data:4byte +lbl_801F1914 = .sbss:0x801F1914; // type:object size:0x4 data:4byte +lbl_801F1918 = .sbss:0x801F1918; // type:object size:0x4 data:4byte +lbl_801F191C = .sbss:0x801F191C; // type:object size:0x4 data:4byte +lbl_801F1920 = .sbss:0x801F1920; // type:object size:0x4 data:4byte +lbl_801F1924 = .sbss:0x801F1924; // type:object size:0x4 data:4byte +lbl_801F1928 = .sbss:0x801F1928; // type:object size:0x4 data:4byte +lbl_801F192C = .sbss:0x801F192C; // type:object size:0x4 data:4byte +lbl_801F1930 = .sbss:0x801F1930; // type:object size:0x4 data:4byte +lbl_801F1934 = .sbss:0x801F1934; // type:object size:0x4 data:4byte +lbl_801F1938 = .sbss:0x801F1938; // type:object size:0x4 data:4byte +lbl_801F193C = .sbss:0x801F193C; // type:object size:0x4 data:4byte +lbl_801F1940 = .sbss:0x801F1940; // type:object size:0x4 data:4byte +lbl_801F1944 = .sbss:0x801F1944; // type:object size:0x4 data:4byte +lbl_801F1948 = .sbss:0x801F1948; // type:object size:0x4 data:4byte +lbl_801F194C = .sbss:0x801F194C; // type:object size:0x4 data:4byte +lbl_801F1950 = .sbss:0x801F1950; // type:object size:0x8 data:4byte +lbl_801F1958 = .sbss:0x801F1958; // type:object size:0x4 data:4byte +lbl_801F195C = .sbss:0x801F195C; // type:object size:0x4 data:4byte +lbl_801F1960 = .sbss:0x801F1960; // type:object size:0x4 data:4byte +lbl_801F1964 = .sbss:0x801F1964; // type:object size:0x4 data:4byte +lbl_801F1968 = .sbss:0x801F1968; // type:object size:0x4 data:4byte +lbl_801F196C = .sbss:0x801F196C; // type:object size:0x4 data:4byte +__piReg = .sbss:0x801F1970; // type:object size:0x4 scope:global data:4byte +__cpReg = .sbss:0x801F1974; // type:object size:0x4 scope:global data:4byte +__peReg = .sbss:0x801F1978; // type:object size:0x4 scope:global data:4byte +__memReg = .sbss:0x801F197C; // type:object size:0x4 scope:global data:4byte +lbl_801F1980 = .sbss:0x801F1980; // type:object size:0x4 data:4byte +lbl_801F1984 = .sbss:0x801F1984; // type:object size:0x4 data:4byte +lbl_801F1988 = .sbss:0x801F1988; // type:object size:0x4 data:4byte +lbl_801F198C = .sbss:0x801F198C; // type:object size:0x1 data:byte +lbl_801F1990 = .sbss:0x801F1990; // type:object size:0x4 data:4byte +lbl_801F1994 = .sbss:0x801F1994; // type:object size:0x4 data:4byte +lbl_801F1998 = .sbss:0x801F1998; // type:object size:0x8 data:4byte +lbl_801F19A0 = .sbss:0x801F19A0; // type:object size:0x4 data:4byte +lbl_801F19A4 = .sbss:0x801F19A4; // type:object size:0x4 data:4byte +lbl_801F19A8 = .sbss:0x801F19A8; // type:object size:0x1 data:byte +lbl_801F19AC = .sbss:0x801F19AC; // type:object size:0xC +lbl_801F19B8 = .sbss:0x801F19B8; // type:object size:0x8 data:4byte +lbl_801F19C0 = .sbss:0x801F19C0; // type:object size:0x4 data:4byte +lbl_801F19C4 = .sbss:0x801F19C4; // type:object size:0x4 data:4byte +lbl_801F19C8 = .sbss:0x801F19C8; // type:object size:0x4 data:4byte +lbl_801F19CC = .sbss:0x801F19CC; // type:object size:0x4 data:4byte +lbl_801F19D0 = .sbss:0x801F19D0; // type:object size:0x4 +cmdTypeAndStatus$371 = .sbss:0x801F19D4; // type:object size:0x4 scope:local +lbl_801F19D8 = .sbss:0x801F19D8; // type:object size:0x8 data:4byte +SamplingRate = .sbss:0x801F19E0; // type:object size:0x4 scope:local data:4byte +lbl_801F1A00 = .sbss:0x801F1A00; // type:object size:0x20 data:4byte +lbl_801F1A20 = .sbss:0x801F1A20; // type:object size:0x20 data:4byte +lbl_801F1A40 = .sbss:0x801F1A40; // type:object size:0x20 data:4byte +lbl_801F1A60 = .sbss:0x801F1A60; // type:object size:0x20 data:4byte +lbl_801F1A80 = .sbss:0x801F1A80; // type:object size:0x20 data:4byte +lbl_801F1AA0 = .sbss:0x801F1AA0; // type:object size:0x4 data:4byte +lbl_801F1AA4 = .sbss:0x801F1AA4; // type:object size:0x4 data:4byte +lbl_801F1AA8 = .sbss:0x801F1AA8; // type:object size:0x4 data:4byte +lbl_801F1AAC = .sbss:0x801F1AAC; // type:object size:0x14 data:4byte +lbl_801F1AC0 = .sbss:0x801F1AC0; // type:object size:0x20 data:4byte +lbl_801F1AE0 = .sbss:0x801F1AE0; // type:object size:0x20 data:4byte +lbl_801F1B00 = .sbss:0x801F1B00; // type:object size:0x4 data:4byte +lbl_801F1B04 = .sbss:0x801F1B04; // type:object size:0x4 data:4byte +lbl_801F1B08 = .sbss:0x801F1B08; // type:object size:0x4 data:4byte +lbl_801F1B0C = .sbss:0x801F1B0C; // type:object size:0x4 data:4byte +lbl_801F1B10 = .sbss:0x801F1B10; // type:object size:0x4 data:4byte +lbl_801F1B14 = .sbss:0x801F1B14; // type:object size:0x4 data:4byte +__global_destructor_chain = .sbss:0x801F1B18; // type:object size:0x4 scope:global data:4byte +__aborting = .sbss:0x801F1B20; // type:object size:0x4 scope:global data:4byte +__atexit_curr_func = .sbss:0x801F1B24; // type:object size:0x4 scope:local data:4byte +__stdio_exit = .sbss:0x801F1B28; // type:object size:0x4 scope:global data:4byte +__console_exit = .sbss:0x801F1B2C; // type:object size:0x4 scope:global data:4byte +lbl_801F1B30 = .sbss:0x801F1B30; // type:object size:0x8 data:byte +lbl_801F1B38 = .sbss:0x801F1B38; // type:object size:0x8 data:4byte +lbl_801F1B40 = .sbss:0x801F1B40; // type:object size:0x8 data:4byte +lbl_801F1B48 = .sbss:0x801F1B48; // type:object size:0x4 data:4byte +lbl_801F1B4C = .sbss:0x801F1B4C; // type:object size:0x1 data:byte +lbl_801F1B50 = .sbss:0x801F1B50; // type:object size:0x4 data:4byte +lbl_801F1B54 = .sbss:0x801F1B54; // type:object size:0x4 data:4byte +lbl_801F1B58 = .sbss:0x801F1B58; // type:object size:0x4 data:4byte +lbl_801F1B5C = .sbss:0x801F1B5C; // type:object size:0x4 data:4byte +lbl_801F1B60 = .sbss:0x801F1B60; // type:object size:0x4 data:4byte +lbl_801F1B64 = .sbss:0x801F1B64; // type:object size:0x4 data:4byte +lbl_801F1B68 = .sbss:0x801F1B68; // type:object size:0x1 data:byte +lbl_801F1B69 = .sbss:0x801F1B69; // type:object size:0x1 data:byte +lbl_801F1B6C = .sbss:0x801F1B6C; // type:object size:0x8 data:byte +lbl_801F1B74 = .sbss:0x801F1B74; // type:object size:0x8 data:byte +lbl_801F1B7C = .sbss:0x801F1B7C; // type:object size:0x8 data:byte +lbl_801F1B84 = .sbss:0x801F1B84; // type:object size:0x8 data:byte +lbl_801F1B8C = .sbss:0x801F1B8C; // type:object size:0x4 data:4byte +lbl_801F1B90 = .sbss:0x801F1B90; // type:object size:0x4 data:4byte +lbl_801F1B94 = .sbss:0x801F1B94; // type:object size:0x4 data:4byte +lbl_801F1B98 = .sbss:0x801F1B98; // type:object size:0x4 data:4byte +lbl_801F1B9C = .sbss:0x801F1B9C; // type:object size:0x4 data:4byte +lbl_801F1BA0 = .sbss:0x801F1BA0; // type:object size:0x8 data:byte +lbl_801F1BA8 = .sbss:0x801F1BA8; // type:object size:0x4 data:4byte +lbl_801F1BAC = .sbss:0x801F1BAC; // type:object size:0x4 data:4byte +lbl_801F1BB0 = .sbss:0x801F1BB0; // type:object size:0x4 data:4byte +lbl_801F1BB4 = .sbss:0x801F1BB4; // type:object size:0x1 data:byte +lbl_801F1BB5 = .sbss:0x801F1BB5; // type:object size:0x1 data:byte +lbl_801F1BB8 = .sbss:0x801F1BB8; // type:object size:0x4 data:4byte +lbl_801F1BBC = .sbss:0x801F1BBC; // type:object size:0x4 data:4byte +lbl_801F1BC0 = .sbss:0x801F1BC0; // type:object size:0x8 +lbl_801F1BC8 = .sbss:0x801F1BC8; // type:object size:0x4 data:4byte +lbl_801F1BCC = .sbss:0x801F1BCC; // type:object size:0x8 +lbl_801F1BD4 = .sbss:0x801F1BD4; // type:object size:0x4 data:4byte +lbl_801F1BD8 = .sbss:0x801F1BD8; // type:object size:0x4 data:4byte +lbl_801F1BDC = .sbss:0x801F1BDC; // type:object size:0x4 data:4byte +lbl_801F1BE0 = .sbss:0x801F1BE0; // type:object size:0x8 +lbl_801F1BE8 = .sbss:0x801F1BE8; // type:object size:0x4 data:4byte +lbl_801F1BEC = .sbss:0x801F1BEC; // type:object size:0x4 data:4byte +lbl_801F1BF0 = .sbss:0x801F1BF0; // type:object size:0x2 data:2byte +lbl_801F1BF2 = .sbss:0x801F1BF2; // type:object size:0x2 data:2byte +lbl_801F1BF4 = .sbss:0x801F1BF4; // type:object size:0x2 data:2byte +lbl_801F1BF6 = .sbss:0x801F1BF6; // type:object size:0x2 data:2byte +lbl_801F1BF8 = .sbss:0x801F1BF8; // type:object size:0x2 data:2byte +lbl_801F1BFA = .sbss:0x801F1BFA; // type:object size:0x6 data:2byte +lbl_801F1C00 = .sbss:0x801F1C00; // type:object size:0x8 data:4byte +lbl_801F1C08 = .sbss:0x801F1C08; // type:object size:0x4 data:4byte +lbl_801F1C0C = .sbss:0x801F1C0C; // type:object size:0x4 data:4byte +lbl_801F1C10 = .sbss:0x801F1C10; // type:object size:0x4 data:4byte +lbl_801F1C14 = .sbss:0x801F1C14; // type:object size:0x4 data:4byte +lbl_801F1C18 = .sbss:0x801F1C18; // type:object size:0x8 data:byte +lbl_801F1C20 = .sbss:0x801F1C20; // type:object size:0x4 data:4byte +lbl_801F1C24 = .sbss:0x801F1C24; // type:object size:0x4 data:4byte +lbl_801F1C28 = .sbss:0x801F1C28; // type:object size:0x4 data:4byte +lbl_801F1C2C = .sbss:0x801F1C2C; // type:object size:0x2 data:2byte +lbl_801F1C2E = .sbss:0x801F1C2E; // type:object size:0x1 data:byte +lbl_801F1C2F = .sbss:0x801F1C2F; // type:object size:0x1 data:byte +lbl_801F1C30 = .sbss:0x801F1C30; // type:object size:0x1 data:byte +lbl_801F1C31 = .sbss:0x801F1C31; // type:object size:0x7 data:byte +lbl_801F1C38 = .sbss:0x801F1C38; // type:object size:0x8 data:2byte +lbl_801F1C40 = .sbss:0x801F1C40; // type:object size:0x4 data:4byte +lbl_801F1C44 = .sbss:0x801F1C44; // type:object size:0x4 data:4byte +lbl_801F1C48 = .sbss:0x801F1C48; // type:object size:0x4 data:4byte +lbl_801F1C4C = .sbss:0x801F1C4C; // type:object size:0x2 data:2byte +lbl_801F1C50 = .sbss:0x801F1C50; // type:object size:0x4 data:4byte +lbl_801F1C54 = .sbss:0x801F1C54; // type:object size:0x4 data:4byte +lbl_801F1C58 = .sbss:0x801F1C58; // type:object size:0x4 data:4byte +lbl_801F1C5C = .sbss:0x801F1C5C; // type:object size:0x2 data:2byte +lbl_801F1C60 = .sbss:0x801F1C60; // type:object size:0x4 data:4byte +lbl_801F1C64 = .sbss:0x801F1C64; // type:object size:0x4 data:4byte +lbl_801F1C68 = .sbss:0x801F1C68; // type:object size:0x4 data:4byte +lbl_801F1C6C = .sbss:0x801F1C6C; // type:object size:0x4 data:4byte +lbl_801F1C70 = .sbss:0x801F1C70; // type:object size:0x3 +lbl_801F1C73 = .sbss:0x801F1C73; // type:object size:0x1 +lbl_801F1C74 = .sbss:0x801F1C74; // type:object size:0x4 data:4byte +lbl_801F1C78 = .sbss:0x801F1C78; // type:object size:0x8 data:4byte +lbl_801F1C80 = .sbss:0x801F1C80; // type:object size:0x1 data:byte +lbl_801F1C81 = .sbss:0x801F1C81; // type:object size:0x1 data:byte +lbl_801F1C82 = .sbss:0x801F1C82; // type:object size:0x1 data:byte +lbl_801F1C83 = .sbss:0x801F1C83; // type:object size:0x1 data:byte +lbl_801F1C84 = .sbss:0x801F1C84; // type:object size:0x1 data:byte +lbl_801F1C85 = .sbss:0x801F1C85; // type:object size:0x1 data:byte +lbl_801F1C88 = .sbss:0x801F1C88; // type:object size:0x4 data:4byte +lbl_801F1C8C = .sbss:0x801F1C8C; // type:object size:0x4 data:4byte +lbl_801F1C90 = .sbss:0x801F1C90; // type:object size:0x4 data:4byte +lbl_801F1C94 = .sbss:0x801F1C94; // type:object size:0x4 data:4byte +lbl_801F1C98 = .sbss:0x801F1C98; // type:object size:0x4 data:4byte +lbl_801F1C9C = .sbss:0x801F1C9C; // type:object size:0x1 data:byte +lbl_801F1CA0 = .sbss:0x801F1CA0; // type:object size:0x1 data:byte +lbl_801F1CA4 = .sbss:0x801F1CA4; // type:object size:0x4 data:4byte +lbl_801F1CA8 = .sbss:0x801F1CA8; // type:object size:0x4 data:4byte +lbl_801F1CAC = .sbss:0x801F1CAC; // type:object size:0x1 data:byte +lbl_801F1CAD = .sbss:0x801F1CAD; // type:object size:0x1 data:byte +lbl_801F1CAE = .sbss:0x801F1CAE; // type:object size:0x1 data:byte +lbl_801F1CAF = .sbss:0x801F1CAF; // type:object size:0x1 data:byte +lbl_801F1CB0 = .sbss:0x801F1CB0; // type:object size:0x4 data:4byte +lbl_801F1CB4 = .sbss:0x801F1CB4; // type:object size:0x4 data:4byte +lbl_801F1CB8 = .sbss:0x801F1CB8; // type:object size:0x4 data:4byte +lbl_801F1CBC = .sbss:0x801F1CBC; // type:object size:0x4 data:4byte +lbl_801F1CC0 = .sbss:0x801F1CC0; // type:object size:0x4 data:4byte +lbl_801F1CC4 = .sbss:0x801F1CC4; // type:object size:0x4 data:4byte +lbl_801F1CC8 = .sbss:0x801F1CC8; // type:object size:0x4 data:4byte +lbl_801F1CCC = .sbss:0x801F1CCC; // type:object size:0x4 data:4byte +lbl_801F1CD0 = .sbss:0x801F1CD0; // type:object size:0x4 data:4byte +lbl_801F1CD4 = .sbss:0x801F1CD4; // type:object size:0x2 data:2byte +lbl_801F1CD8 = .sbss:0x801F1CD8; // type:object size:0x4 data:4byte +lbl_801F1CDC = .sbss:0x801F1CDC; // type:object size:0x4 data:4byte +lbl_801F1CE0 = .sbss:0x801F1CE0; // type:object size:0x4 data:4byte +lbl_801F1CE4 = .sbss:0x801F1CE4; // type:object size:0x4 data:4byte +lbl_801F1CE8 = .sbss:0x801F1CE8; // type:object size:0x4 data:4byte +lbl_801F1CEC = .sbss:0x801F1CEC; // type:object size:0x4 data:4byte +lbl_801F1CF0 = .sbss:0x801F1CF0; // type:object size:0x1 data:byte +lbl_801F1CF4 = .sbss:0x801F1CF4; // type:object size:0x4 data:4byte +lbl_801F1CF8 = .sbss:0x801F1CF8; // type:object size:0x4 data:4byte +lbl_801F1CFC = .sbss:0x801F1CFC; // type:object size:0x4 data:4byte +lbl_801F1D00 = .sbss:0x801F1D00; // type:object size:0x4 data:4byte +lbl_801F1D04 = .sbss:0x801F1D04; // type:object size:0x4 data:4byte +lbl_801F1D08 = .sbss:0x801F1D08; // type:object size:0x4 data:4byte +lbl_801F1D0C = .sbss:0x801F1D0C; // type:object size:0x1 data:byte +lbl_801F1D20 = .sdata2:0x801F1D20; // type:object size:0x8 data:double +lbl_801F1D28 = .sdata2:0x801F1D28; // type:object size:0x4 data:float +lbl_801F1D2C = .sdata2:0x801F1D2C; // type:object size:0x4 data:float +lbl_801F1D30 = .sdata2:0x801F1D30; // type:object size:0x8 data:double +lbl_801F1D38 = .sdata2:0x801F1D38; // type:object size:0x4 data:float +lbl_801F1D3C = .sdata2:0x801F1D3C; // type:object size:0x4 data:float +lbl_801F1D40 = .sdata2:0x801F1D40; // type:object size:0x4 data:float +lbl_801F1D44 = .sdata2:0x801F1D44; // type:object size:0x4 data:float +lbl_801F1D48 = .sdata2:0x801F1D48; // type:object size:0x4 data:float +lbl_801F1D4C = .sdata2:0x801F1D4C; // type:object size:0x4 data:float +lbl_801F1D50 = .sdata2:0x801F1D50; // type:object size:0x4 data:float +lbl_801F1D54 = .sdata2:0x801F1D54; // type:object size:0x4 data:float +lbl_801F1D58 = .sdata2:0x801F1D58; // type:object size:0x4 data:float +lbl_801F1D60 = .sdata2:0x801F1D60; // type:object size:0x8 data:double +lbl_801F1D68 = .sdata2:0x801F1D68; // type:object size:0x8 data:double +lbl_801F1D70 = .sdata2:0x801F1D70; // type:object size:0x4 data:float +lbl_801F1D74 = .sdata2:0x801F1D74; // type:object size:0x4 data:float +lbl_801F1D78 = .sdata2:0x801F1D78; // type:object size:0x4 data:float +lbl_801F1D7C = .sdata2:0x801F1D7C; // type:object size:0x4 data:float +lbl_801F1D80 = .sdata2:0x801F1D80; // type:object size:0x8 data:float +lbl_801F1D88 = .sdata2:0x801F1D88; // type:object size:0x4 data:float +lbl_801F1D8C = .sdata2:0x801F1D8C; // type:object size:0x4 data:float +lbl_801F1D90 = .sdata2:0x801F1D90; // type:object size:0x4 data:float +lbl_801F1D98 = .sdata2:0x801F1D98; // type:object size:0x8 data:double +lbl_801F1DA0 = .sdata2:0x801F1DA0; // type:object size:0x8 data:double +lbl_801F1DA8 = .sdata2:0x801F1DA8; // type:object size:0x8 data:float +lbl_801F1DB0 = .sdata2:0x801F1DB0; // type:object size:0x4 data:float +lbl_801F1DB4 = .sdata2:0x801F1DB4; // type:object size:0x4 data:float +lbl_801F1DB8 = .sdata2:0x801F1DB8; // type:object size:0x4 data:float +lbl_801F1DBC = .sdata2:0x801F1DBC; // type:object size:0x4 data:float +lbl_801F1DC0 = .sdata2:0x801F1DC0; // type:object size:0x4 data:float +lbl_801F1DC4 = .sdata2:0x801F1DC4; // type:object size:0x4 data:float +lbl_801F1DC8 = .sdata2:0x801F1DC8; // type:object size:0x4 data:float +lbl_801F1DD0 = .sdata2:0x801F1DD0; // type:object size:0x8 data:double +lbl_801F1DD8 = .sdata2:0x801F1DD8; // type:object size:0x8 data:double +lbl_801F1DE0 = .sdata2:0x801F1DE0; // type:object size:0x8 data:double +lbl_801F1DE8 = .sdata2:0x801F1DE8; // type:object size:0x4 data:float +lbl_801F1DEC = .sdata2:0x801F1DEC; // type:object size:0x4 data:float +lbl_801F1DF0 = .sdata2:0x801F1DF0; // type:object size:0x4 data:float +lbl_801F1DF4 = .sdata2:0x801F1DF4; // type:object size:0x4 data:float +lbl_801F1DF8 = .sdata2:0x801F1DF8; // type:object size:0x8 data:double +lbl_801F1E00 = .sdata2:0x801F1E00; // type:object size:0x8 data:double +lbl_801F1E08 = .sdata2:0x801F1E08; // type:object size:0x8 data:double +lbl_801F1E10 = .sdata2:0x801F1E10; // type:object size:0x8 data:double +lbl_801F1E18 = .sdata2:0x801F1E18; // type:object size:0x4 data:float +lbl_801F1E20 = .sdata2:0x801F1E20; // type:object size:0x8 data:double +lbl_801F1E28 = .sdata2:0x801F1E28; // type:object size:0x4 data:float +lbl_801F1E2C = .sdata2:0x801F1E2C; // type:object size:0x4 data:float +lbl_801F1E30 = .sdata2:0x801F1E30; // type:object size:0x4 data:float +lbl_801F1E34 = .sdata2:0x801F1E34; // type:object size:0x4 data:float +lbl_801F1E38 = .sdata2:0x801F1E38; // type:object size:0x8 data:double +lbl_801F1E40 = .sdata2:0x801F1E40; // type:object size:0x4 data:float +lbl_801F1E44 = .sdata2:0x801F1E44; // type:object size:0x4 data:float +lbl_801F1E48 = .sdata2:0x801F1E48; // type:object size:0x4 data:float +lbl_801F1E4C = .sdata2:0x801F1E4C; // type:object size:0x4 data:float +lbl_801F1E50 = .sdata2:0x801F1E50; // type:object size:0x8 data:double +lbl_801F1E58 = .sdata2:0x801F1E58; // type:object size:0x4 data:float +lbl_801F1E60 = .sdata2:0x801F1E60; // type:object size:0x8 data:double +lbl_801F1E68 = .sdata2:0x801F1E68; // type:object size:0x4 data:float +lbl_801F1E6C = .sdata2:0x801F1E6C; // type:object size:0x4 data:float +lbl_801F1E70 = .sdata2:0x801F1E70; // type:object size:0x4 data:float +lbl_801F1E74 = .sdata2:0x801F1E74; // type:object size:0x4 data:float +lbl_801F1E78 = .sdata2:0x801F1E78; // type:object size:0x4 data:float +lbl_801F1E80 = .sdata2:0x801F1E80; // type:object size:0x8 data:double +lbl_801F1E88 = .sdata2:0x801F1E88; // type:object size:0x8 data:double +lbl_801F1E90 = .sdata2:0x801F1E90; // type:object size:0x8 data:double +lbl_801F1E98 = .sdata2:0x801F1E98; // type:object size:0x8 data:double +lbl_801F1EA0 = .sdata2:0x801F1EA0; // type:object size:0x4 data:float +lbl_801F1EA4 = .sdata2:0x801F1EA4; // type:object size:0x4 data:float +lbl_801F1EA8 = .sdata2:0x801F1EA8; // type:object size:0x4 data:float +lbl_801F1EAC = .sdata2:0x801F1EAC; // type:object size:0x4 data:float +lbl_801F1EB0 = .sdata2:0x801F1EB0; // type:object size:0x4 data:float +lbl_801F1EB4 = .sdata2:0x801F1EB4; // type:object size:0x4 data:float +lbl_801F1EB8 = .sdata2:0x801F1EB8; // type:object size:0x4 data:float +lbl_801F1EBC = .sdata2:0x801F1EBC; // type:object size:0x4 data:float +lbl_801F1EC0 = .sdata2:0x801F1EC0; // type:object size:0x8 data:double +lbl_801F1EC8 = .sdata2:0x801F1EC8; // type:object size:0x8 data:float +lbl_801F1ED0 = .sdata2:0x801F1ED0; // type:object size:0x4 data:float +lbl_801F1ED4 = .sdata2:0x801F1ED4; // type:object size:0x4 data:float +lbl_801F1ED8 = .sdata2:0x801F1ED8; // type:object size:0x8 data:double +lbl_801F1EE0 = .sdata2:0x801F1EE0; // type:object size:0x8 data:double +lbl_801F1EE8 = .sdata2:0x801F1EE8; // type:object size:0x4 data:float +lbl_801F1EEC = .sdata2:0x801F1EEC; // type:object size:0x4 data:float +lbl_801F1EF0 = .sdata2:0x801F1EF0; // type:object size:0x4 data:float +lbl_801F1EF8 = .sdata2:0x801F1EF8; // type:object size:0x8 data:double +lbl_801F1F00 = .sdata2:0x801F1F00; // type:object size:0x8 data:double +lbl_801F1F08 = .sdata2:0x801F1F08; // type:object size:0x8 data:double +lbl_801F1F10 = .sdata2:0x801F1F10; // type:object size:0x4 data:float +lbl_801F1F14 = .sdata2:0x801F1F14; // type:object size:0x4 data:float +lbl_801F1F18 = .sdata2:0x801F1F18; // type:object size:0x8 data:float +lbl_801F1F20 = .sdata2:0x801F1F20; // type:object size:0x4 data:float +lbl_801F1F24 = .sdata2:0x801F1F24; // type:object size:0x4 data:float +lbl_801F1F28 = .sdata2:0x801F1F28; // type:object size:0x8 data:double +lbl_801F1F30 = .sdata2:0x801F1F30; // type:object size:0x4 data:float +lbl_801F1F34 = .sdata2:0x801F1F34; // type:object size:0x4 data:float +lbl_801F1F38 = .sdata2:0x801F1F38; // type:object size:0x4 data:float +lbl_801F1F3C = .sdata2:0x801F1F3C; // type:object size:0x4 data:float +lbl_801F1F40 = .sdata2:0x801F1F40; // type:object size:0x8 data:double +lbl_801F1F48 = .sdata2:0x801F1F48; // type:object size:0x4 data:float +lbl_801F1F50 = .sdata2:0x801F1F50; // type:object size:0x8 data:double +lbl_801F1F58 = .sdata2:0x801F1F58; // type:object size:0x8 data:double +lbl_801F1F60 = .sdata2:0x801F1F60; // type:object size:0x8 data:double +lbl_801F1F68 = .sdata2:0x801F1F68; // type:object size:0x4 data:float +lbl_801F1F70 = .sdata2:0x801F1F70; // type:object size:0x8 data:double +lbl_801F1F78 = .sdata2:0x801F1F78; // type:object size:0x8 data:double +lbl_801F1F80 = .sdata2:0x801F1F80; // type:object size:0x4 data:float +lbl_801F1F88 = .sdata2:0x801F1F88; // type:object size:0x8 data:double +lbl_801F1F90 = .sdata2:0x801F1F90; // type:object size:0x8 data:double +lbl_801F1F98 = .sdata2:0x801F1F98; // type:object size:0x8 data:double +lbl_801F1FA0 = .sdata2:0x801F1FA0; // type:object size:0x8 data:double +lbl_801F1FA8 = .sdata2:0x801F1FA8; // type:object size:0x4 data:float +lbl_801F1FAC = .sdata2:0x801F1FAC; // type:object size:0x4 data:float +lbl_801F1FB0 = .sdata2:0x801F1FB0; // type:object size:0x4 data:float +lbl_801F1FB4 = .sdata2:0x801F1FB4; // type:object size:0x4 data:float +lbl_801F1FB8 = .sdata2:0x801F1FB8; // type:object size:0x8 data:double +lbl_801F1FC0 = .sdata2:0x801F1FC0; // type:object size:0x4 data:float +lbl_801F1FC8 = .sdata2:0x801F1FC8; // type:object size:0x8 data:double +lbl_801F1FD0 = .sdata2:0x801F1FD0; // type:object size:0x8 data:double +lbl_801F1FD8 = .sdata2:0x801F1FD8; // type:object size:0x4 data:float +lbl_801F1FE0 = .sdata2:0x801F1FE0; // type:object size:0x8 data:double +lbl_801F1FE8 = .sdata2:0x801F1FE8; // type:object size:0x4 data:float +lbl_801F1FEC = .sdata2:0x801F1FEC; // type:object size:0x4 data:float +lbl_801F1FF0 = .sdata2:0x801F1FF0; // type:object size:0x4 data:float +lbl_801F1FF4 = .sdata2:0x801F1FF4; // type:object size:0x4 data:float +lbl_801F1FF8 = .sdata2:0x801F1FF8; // type:object size:0x8 data:double +lbl_801F2000 = .sdata2:0x801F2000; // type:object size:0x8 data:double +lbl_801F2008 = .sdata2:0x801F2008; // type:object size:0x4 data:float +lbl_801F200C = .sdata2:0x801F200C; // type:object size:0x4 data:float +lbl_801F2010 = .sdata2:0x801F2010; // type:object size:0x8 data:double +lbl_801F2018 = .sdata2:0x801F2018; // type:object size:0x4 data:float +lbl_801F201C = .sdata2:0x801F201C; // type:object size:0x4 data:float +lbl_801F2020 = .sdata2:0x801F2020; // type:object size:0x4 data:float +lbl_801F2024 = .sdata2:0x801F2024; // type:object size:0x4 data:float +lbl_801F2028 = .sdata2:0x801F2028; // type:object size:0x8 data:double +lbl_801F2030 = .sdata2:0x801F2030; // type:object size:0x8 data:double +lbl_801F2038 = .sdata2:0x801F2038; // type:object size:0x4 data:float +lbl_801F203C = .sdata2:0x801F203C; // type:object size:0x4 data:float +lbl_801F2040 = .sdata2:0x801F2040; // type:object size:0x4 data:float +lbl_801F2044 = .sdata2:0x801F2044; // type:object size:0x4 data:float +lbl_801F2048 = .sdata2:0x801F2048; // type:object size:0x4 data:float +lbl_801F204C = .sdata2:0x801F204C; // type:object size:0x4 data:float +lbl_801F2050 = .sdata2:0x801F2050; // type:object size:0x4 data:float +lbl_801F2054 = .sdata2:0x801F2054; // type:object size:0x4 data:float +lbl_801F2058 = .sdata2:0x801F2058; // type:object size:0x4 data:float +lbl_801F2060 = .sdata2:0x801F2060; // type:object size:0x8 data:double +lbl_801F2068 = .sdata2:0x801F2068; // type:object size:0x8 data:double +lbl_801F2070 = .sdata2:0x801F2070; // type:object size:0x4 data:float +lbl_801F2078 = .sdata2:0x801F2078; // type:object size:0x8 data:double +lbl_801F2080 = .sdata2:0x801F2080; // type:object size:0x8 data:double +lbl_801F2088 = .sdata2:0x801F2088; // type:object size:0x8 data:double +lbl_801F2090 = .sdata2:0x801F2090; // type:object size:0x4 data:float +lbl_801F2094 = .sdata2:0x801F2094; // type:object size:0x4 data:float +lbl_801F2098 = .sdata2:0x801F2098; // type:object size:0x4 data:float +lbl_801F20A0 = .sdata2:0x801F20A0; // type:object size:0x8 data:double +lbl_801F20A8 = .sdata2:0x801F20A8; // type:object size:0x4 data:float +lbl_801F20AC = .sdata2:0x801F20AC; // type:object size:0x4 data:float +lbl_801F20B0 = .sdata2:0x801F20B0; // type:object size:0x4 data:float +lbl_801F20B8 = .sdata2:0x801F20B8; // type:object size:0x8 data:double +lbl_801F20C0 = .sdata2:0x801F20C0; // type:object size:0x8 data:double +lbl_801F20C8 = .sdata2:0x801F20C8; // type:object size:0x8 data:double +lbl_801F20D0 = .sdata2:0x801F20D0; // type:object size:0x8 data:double +lbl_801F20D8 = .sdata2:0x801F20D8; // type:object size:0x8 data:double +lbl_801F20E0 = .sdata2:0x801F20E0; // type:object size:0x8 data:double +lbl_801F20E8 = .sdata2:0x801F20E8; // type:object size:0x4 data:float +lbl_801F20EC = .sdata2:0x801F20EC; // type:object size:0x4 data:float +lbl_801F20F0 = .sdata2:0x801F20F0; // type:object size:0x8 data:double +lbl_801F20F8 = .sdata2:0x801F20F8; // type:object size:0x4 data:float +lbl_801F20FC = .sdata2:0x801F20FC; // type:object size:0x4 data:float +lbl_801F2100 = .sdata2:0x801F2100; // type:object size:0x4 data:float +lbl_801F2104 = .sdata2:0x801F2104; // type:object size:0x4 data:float +lbl_801F2108 = .sdata2:0x801F2108; // type:object size:0x4 data:float +lbl_801F210C = .sdata2:0x801F210C; // type:object size:0x4 data:float +lbl_801F2110 = .sdata2:0x801F2110; // type:object size:0x4 data:float +lbl_801F2114 = .sdata2:0x801F2114; // type:object size:0x4 data:float +lbl_801F2118 = .sdata2:0x801F2118; // type:object size:0x4 data:float +lbl_801F211C = .sdata2:0x801F211C; // type:object size:0x4 data:float +lbl_801F2120 = .sdata2:0x801F2120; // type:object size:0x4 data:float +lbl_801F2124 = .sdata2:0x801F2124; // type:object size:0x4 data:float +lbl_801F2128 = .sdata2:0x801F2128; // type:object size:0x4 data:float +lbl_801F212C = .sdata2:0x801F212C; // type:object size:0x4 data:float +lbl_801F2130 = .sdata2:0x801F2130; // type:object size:0x4 data:float +lbl_801F2134 = .sdata2:0x801F2134; // type:object size:0x4 data:float +lbl_801F2138 = .sdata2:0x801F2138; // type:object size:0x4 data:float +lbl_801F213C = .sdata2:0x801F213C; // type:object size:0x4 data:float +lbl_801F2140 = .sdata2:0x801F2140; // type:object size:0x8 data:double +lbl_801F2148 = .sdata2:0x801F2148; // type:object size:0x4 data:float +lbl_801F214C = .sdata2:0x801F214C; // type:object size:0x4 data:float +lbl_801F2150 = .sdata2:0x801F2150; // type:object size:0x8 data:double +lbl_801F2158 = .sdata2:0x801F2158; // type:object size:0x8 data:double +lbl_801F2160 = .sdata2:0x801F2160; // type:object size:0x4 data:float +lbl_801F2164 = .sdata2:0x801F2164; // type:object size:0x4 data:float +lbl_801F2168 = .sdata2:0x801F2168; // type:object size:0x8 data:double +lbl_801F2170 = .sdata2:0x801F2170; // type:object size:0x4 data:float +lbl_801F2174 = .sdata2:0x801F2174; // type:object size:0x4 data:float +lbl_801F2178 = .sdata2:0x801F2178; // type:object size:0x4 data:float +lbl_801F217C = .sdata2:0x801F217C; // type:object size:0x4 data:float +lbl_801F2180 = .sdata2:0x801F2180; // type:object size:0x4 data:float +lbl_801F2188 = .sdata2:0x801F2188; // type:object size:0x8 data:double +lbl_801F2190 = .sdata2:0x801F2190; // type:object size:0x4 data:float +lbl_801F2198 = .sdata2:0x801F2198; // type:object size:0x8 data:double +lbl_801F21A0 = .sdata2:0x801F21A0; // type:object size:0x4 data:float +lbl_801F21A4 = .sdata2:0x801F21A4; // type:object size:0x4 data:float +lbl_801F21A8 = .sdata2:0x801F21A8; // type:object size:0x4 data:float +lbl_801F21AC = .sdata2:0x801F21AC; // type:object size:0x4 data:float +lbl_801F21B0 = .sdata2:0x801F21B0; // type:object size:0x8 data:double +lbl_801F21B8 = .sdata2:0x801F21B8; // type:object size:0x4 data:float +lbl_801F21C0 = .sdata2:0x801F21C0; // type:object size:0x8 data:double +lbl_801F21C8 = .sdata2:0x801F21C8; // type:object size:0x8 data:double +lbl_801F21D0 = .sdata2:0x801F21D0; // type:object size:0x8 data:double +lbl_801F21D8 = .sdata2:0x801F21D8; // type:object size:0x4 data:float +lbl_801F21E0 = .sdata2:0x801F21E0; // type:object size:0x8 data:double +lbl_801F21E8 = .sdata2:0x801F21E8; // type:object size:0x4 data:float +lbl_801F21EC = .sdata2:0x801F21EC; // type:object size:0x4 data:float +lbl_801F21F0 = .sdata2:0x801F21F0; // type:object size:0x4 data:float +lbl_801F21F4 = .sdata2:0x801F21F4; // type:object size:0x4 data:float +lbl_801F21F8 = .sdata2:0x801F21F8; // type:object size:0x4 data:float +lbl_801F21FC = .sdata2:0x801F21FC; // type:object size:0x4 data:float +lbl_801F2200 = .sdata2:0x801F2200; // type:object size:0x4 data:float +lbl_801F2208 = .sdata2:0x801F2208; // type:object size:0x8 data:double +lbl_801F2210 = .sdata2:0x801F2210; // type:object size:0x8 data:double +lbl_801F2218 = .sdata2:0x801F2218; // type:object size:0x8 data:double +lbl_801F2220 = .sdata2:0x801F2220; // type:object size:0x2 data:2byte +lbl_801F2222 = .sdata2:0x801F2222; // type:object size:0x2 data:2byte +lbl_801F2224 = .sdata2:0x801F2224; // type:object size:0x2 data:2byte +lbl_801F2228 = .sdata2:0x801F2228; // type:object size:0x4 data:float +lbl_801F222C = .sdata2:0x801F222C; // type:object size:0x4 data:float +lbl_801F2230 = .sdata2:0x801F2230; // type:object size:0x4 data:float +lbl_801F2234 = .sdata2:0x801F2234; // type:object size:0x4 data:float +lbl_801F2238 = .sdata2:0x801F2238; // type:object size:0x4 data:float +lbl_801F223C = .sdata2:0x801F223C; // type:object size:0x4 data:float +lbl_801F2240 = .sdata2:0x801F2240; // type:object size:0x4 data:float +lbl_801F2244 = .sdata2:0x801F2244; // type:object size:0x4 data:float +lbl_801F2248 = .sdata2:0x801F2248; // type:object size:0x4 data:float +lbl_801F224C = .sdata2:0x801F224C; // type:object size:0x4 data:float +lbl_801F2250 = .sdata2:0x801F2250; // type:object size:0x8 data:double +lbl_801F2258 = .sdata2:0x801F2258; // type:object size:0x8 data:double +lbl_801F2260 = .sdata2:0x801F2260; // type:object size:0x4 data:float +lbl_801F2264 = .sdata2:0x801F2264; // type:object size:0x4 data:float +lbl_801F2268 = .sdata2:0x801F2268; // type:object size:0x4 data:float +lbl_801F2270 = .sdata2:0x801F2270; // type:object size:0x8 data:double +lbl_801F2278 = .sdata2:0x801F2278; // type:object size:0x8 data:double +lbl_801F2280 = .sdata2:0x801F2280; // type:object size:0x4 data:float +lbl_801F2284 = .sdata2:0x801F2284; // type:object size:0x4 data:float +lbl_801F2288 = .sdata2:0x801F2288; // type:object size:0x8 data:double +lbl_801F2290 = .sdata2:0x801F2290; // type:object size:0x4 data:float +lbl_801F2294 = .sdata2:0x801F2294; // type:object size:0x4 data:float +lbl_801F2298 = .sdata2:0x801F2298; // type:object size:0x8 data:double +lbl_801F22A0 = .sdata2:0x801F22A0; // type:object size:0x4 data:float +lbl_801F22A8 = .sdata2:0x801F22A8; // type:object size:0x8 data:double +lbl_801F22B0 = .sdata2:0x801F22B0; // type:object size:0x4 data:float +lbl_801F22B4 = .sdata2:0x801F22B4; // type:object size:0x4 data:float +lbl_801F22B8 = .sdata2:0x801F22B8; // type:object size:0x4 data:float +lbl_801F22BC = .sdata2:0x801F22BC; // type:object size:0x4 data:float +lbl_801F22C0 = .sdata2:0x801F22C0; // type:object size:0x8 data:double +lbl_801F22C8 = .sdata2:0x801F22C8; // type:object size:0x4 data:float +lbl_801F22CC = .sdata2:0x801F22CC; // type:object size:0x4 data:float +lbl_801F22D0 = .sdata2:0x801F22D0; // type:object size:0x4 data:float +lbl_801F22D4 = .sdata2:0x801F22D4; // type:object size:0x4 data:float +lbl_801F22D8 = .sdata2:0x801F22D8; // type:object size:0x4 data:float +lbl_801F22E0 = .sdata2:0x801F22E0; // type:object size:0x8 data:double +lbl_801F22E8 = .sdata2:0x801F22E8; // type:object size:0x4 data:float +lbl_801F22EC = .sdata2:0x801F22EC; // type:object size:0x4 data:float +lbl_801F22F0 = .sdata2:0x801F22F0; // type:object size:0x4 data:float +lbl_801F22F4 = .sdata2:0x801F22F4; // type:object size:0x4 data:float +lbl_801F22F8 = .sdata2:0x801F22F8; // type:object size:0x4 data:float +lbl_801F22FC = .sdata2:0x801F22FC; // type:object size:0x4 data:float +lbl_801F2300 = .sdata2:0x801F2300; // type:object size:0x4 data:float +lbl_801F2308 = .sdata2:0x801F2308; // type:object size:0x8 data:double +lbl_801F2310 = .sdata2:0x801F2310; // type:object size:0x4 data:float +lbl_801F2318 = .sdata2:0x801F2318; // type:object size:0x8 data:double +lbl_801F2320 = .sdata2:0x801F2320; // type:object size:0x4 data:float +lbl_801F2324 = .sdata2:0x801F2324; // type:object size:0x4 data:float +lbl_801F2328 = .sdata2:0x801F2328; // type:object size:0x4 data:float +lbl_801F2330 = .sdata2:0x801F2330; // type:object size:0x8 data:double +lbl_801F2338 = .sdata2:0x801F2338; // type:object size:0x8 data:double +lbl_801F2340 = .sdata2:0x801F2340; // type:object size:0x8 data:double +lbl_801F2348 = .sdata2:0x801F2348; // type:object size:0x4 data:float +lbl_801F2350 = .sdata2:0x801F2350; // type:object size:0x8 data:double +lbl_801F2358 = .sdata2:0x801F2358; // type:object size:0x8 data:double +lbl_801F2360 = .sdata2:0x801F2360; // type:object size:0x8 data:double +lbl_801F2368 = .sdata2:0x801F2368; // type:object size:0x8 data:double +lbl_801F2370 = .sdata2:0x801F2370; // type:object size:0x8 data:double +lbl_801F2378 = .sdata2:0x801F2378; // type:object size:0x8 data:double +lbl_801F2380 = .sdata2:0x801F2380; // type:object size:0x8 data:double +lbl_801F2388 = .sdata2:0x801F2388; // type:object size:0x8 data:double +lbl_801F2390 = .sdata2:0x801F2390; // type:object size:0x8 data:double +lbl_801F2398 = .sdata2:0x801F2398; // type:object size:0x4 data:float +lbl_801F239C = .sdata2:0x801F239C; // type:object size:0x4 data:float +lbl_801F23A0 = .sdata2:0x801F23A0; // type:object size:0x4 data:float +lbl_801F23A4 = .sdata2:0x801F23A4; // type:object size:0x4 data:float +lbl_801F23A8 = .sdata2:0x801F23A8; // type:object size:0x8 data:double +lbl_801F23B0 = .sdata2:0x801F23B0; // type:object size:0x4 data:float +lbl_801F23B8 = .sdata2:0x801F23B8; // type:object size:0x8 data:double +lbl_801F23C0 = .sdata2:0x801F23C0; // type:object size:0x8 data:double +lbl_801F23C8 = .sdata2:0x801F23C8; // type:object size:0x4 data:float +lbl_801F23CC = .sdata2:0x801F23CC; // type:object size:0x4 data:float +lbl_801F23D0 = .sdata2:0x801F23D0; // type:object size:0x8 data:double +lbl_801F23D8 = .sdata2:0x801F23D8; // type:object size:0x4 data:float +lbl_801F23DC = .sdata2:0x801F23DC; // type:object size:0x4 data:float +lbl_801F23E0 = .sdata2:0x801F23E0; // type:object size:0x4 data:float +lbl_801F23E4 = .sdata2:0x801F23E4; // type:object size:0x4 data:float +lbl_801F23E8 = .sdata2:0x801F23E8; // type:object size:0x4 data:float +lbl_801F23EC = .sdata2:0x801F23EC; // type:object size:0x4 data:float +lbl_801F23F0 = .sdata2:0x801F23F0; // type:object size:0x8 data:double +lbl_801F23F8 = .sdata2:0x801F23F8; // type:object size:0x4 data:float +lbl_801F2400 = .sdata2:0x801F2400; // type:object size:0x8 data:double +lbl_801F2408 = .sdata2:0x801F2408; // type:object size:0x8 data:double +lbl_801F2410 = .sdata2:0x801F2410; // type:object size:0x4 data:float +lbl_801F2418 = .sdata2:0x801F2418; // type:object size:0x8 data:double +lbl_801F2420 = .sdata2:0x801F2420; // type:object size:0x4 data:float +lbl_801F2424 = .sdata2:0x801F2424; // type:object size:0x4 data:float +lbl_801F2428 = .sdata2:0x801F2428; // type:object size:0x8 data:double +lbl_801F2430 = .sdata2:0x801F2430; // type:object size:0x8 data:double +lbl_801F2438 = .sdata2:0x801F2438; // type:object size:0x4 data:float +lbl_801F243C = .sdata2:0x801F243C; // type:object size:0x4 data:float +lbl_801F2440 = .sdata2:0x801F2440; // type:object size:0x4 data:float +lbl_801F2448 = .sdata2:0x801F2448; // type:object size:0x8 data:double +lbl_801F2450 = .sdata2:0x801F2450; // type:object size:0x4 data:float +lbl_801F2454 = .sdata2:0x801F2454; // type:object size:0x4 data:float +lbl_801F2458 = .sdata2:0x801F2458; // type:object size:0x4 data:float +lbl_801F245C = .sdata2:0x801F245C; // type:object size:0x4 data:float +lbl_801F2460 = .sdata2:0x801F2460; // type:object size:0x8 data:double +lbl_801F2468 = .sdata2:0x801F2468; // type:object size:0x4 data:float +lbl_801F2470 = .sdata2:0x801F2470; // type:object size:0x8 data:double +lbl_801F2478 = .sdata2:0x801F2478; // type:object size:0x4 data:float +lbl_801F2480 = .sdata2:0x801F2480; // type:object size:0x8 data:double +lbl_801F2488 = .sdata2:0x801F2488; // type:object size:0x8 data:float +lbl_801F2490 = .sdata2:0x801F2490; // type:object size:0x4 data:float +lbl_801F2494 = .sdata2:0x801F2494; // type:object size:0x4 data:float +lbl_801F2498 = .sdata2:0x801F2498; // type:object size:0x4 data:float +lbl_801F249C = .sdata2:0x801F249C; // type:object size:0x4 data:float +lbl_801F24A0 = .sdata2:0x801F24A0; // type:object size:0x8 data:double +lbl_801F24A8 = .sdata2:0x801F24A8; // type:object size:0x8 data:double +lbl_801F24B0 = .sdata2:0x801F24B0; // type:object size:0x8 data:double +lbl_801F24B8 = .sdata2:0x801F24B8; // type:object size:0x4 data:float +lbl_801F24C0 = .sdata2:0x801F24C0; // type:object size:0x8 data:double +lbl_801F24C8 = .sdata2:0x801F24C8; // type:object size:0x2 data:2byte +lbl_801F24CA = .sdata2:0x801F24CA; // type:object size:0x2 data:2byte +lbl_801F24CC = .sdata2:0x801F24CC; // type:object size:0x2 data:2byte +lbl_801F24CE = .sdata2:0x801F24CE; // type:object size:0x2 data:2byte +lbl_801F24D0 = .sdata2:0x801F24D0; // type:object size:0x1 data:byte +lbl_801F24D1 = .sdata2:0x801F24D1; // type:object size:0x1 data:byte +lbl_801F24D2 = .sdata2:0x801F24D2; // type:object size:0x1 data:byte +lbl_801F24D3 = .sdata2:0x801F24D3; // type:object size:0x1 data:byte +lbl_801F24D4 = .sdata2:0x801F24D4; // type:object size:0x1 data:byte +lbl_801F24D5 = .sdata2:0x801F24D5; // type:object size:0x1 data:byte +lbl_801F24D6 = .sdata2:0x801F24D6; // type:object size:0x1 data:byte +lbl_801F24D7 = .sdata2:0x801F24D7; // type:object size:0x1 data:byte +lbl_801F24D8 = .sdata2:0x801F24D8; // type:object size:0x1 data:byte +lbl_801F24D9 = .sdata2:0x801F24D9; // type:object size:0x1 data:byte +lbl_801F24DA = .sdata2:0x801F24DA; // type:object size:0x1 data:byte +lbl_801F24DB = .sdata2:0x801F24DB; // type:object size:0x1 data:byte +lbl_801F24DC = .sdata2:0x801F24DC; // type:object size:0x4 data:float +lbl_801F24E0 = .sdata2:0x801F24E0; // type:object size:0x4 data:float +lbl_801F24E4 = .sdata2:0x801F24E4; // type:object size:0x1 data:byte +lbl_801F24E5 = .sdata2:0x801F24E5; // type:object size:0x1 data:byte +lbl_801F24E6 = .sdata2:0x801F24E6; // type:object size:0x1 data:byte +lbl_801F24E7 = .sdata2:0x801F24E7; // type:object size:0x1 data:byte +lbl_801F24E8 = .sdata2:0x801F24E8; // type:object size:0x4 data:float +lbl_801F24EC = .sdata2:0x801F24EC; // type:object size:0x4 data:float +lbl_801F24F0 = .sdata2:0x801F24F0; // type:object size:0x8 data:float +lbl_801F24F8 = .sdata2:0x801F24F8; // type:object size:0x4 data:float +lbl_801F24FC = .sdata2:0x801F24FC; // type:object size:0x4 data:float +lbl_801F2500 = .sdata2:0x801F2500; // type:object size:0x8 data:float +lbl_801F2508 = .sdata2:0x801F2508; // type:object size:0x4 data:float +lbl_801F250C = .sdata2:0x801F250C; // type:object size:0x4 data:float +lbl_801F2510 = .sdata2:0x801F2510; // type:object size:0x4 data:float +lbl_801F2514 = .sdata2:0x801F2514; // type:object size:0x4 data:float +lbl_801F2518 = .sdata2:0x801F2518; // type:object size:0x4 data:float +lbl_801F251C = .sdata2:0x801F251C; // type:object size:0x4 data:float +lbl_801F2520 = .sdata2:0x801F2520; // type:object size:0x8 data:double +lbl_801F2528 = .sdata2:0x801F2528; // type:object size:0x8 data:double +lbl_801F2530 = .sdata2:0x801F2530; // type:object size:0x4 data:float +lbl_801F2534 = .sdata2:0x801F2534; // type:object size:0x4 data:float +lbl_801F2538 = .sdata2:0x801F2538; // type:object size:0x8 data:double +lbl_801F2540 = .sdata2:0x801F2540; // type:object size:0x8 data:double +lbl_801F2548 = .sdata2:0x801F2548; // type:object size:0x4 data:float +lbl_801F254C = .sdata2:0x801F254C; // type:object size:0x4 data:float +lbl_801F2550 = .sdata2:0x801F2550; // type:object size:0x4 data:float +lbl_801F2554 = .sdata2:0x801F2554; // type:object size:0x4 data:float +lbl_801F2558 = .sdata2:0x801F2558; // type:object size:0x4 data:float +lbl_801F255C = .sdata2:0x801F255C; // type:object size:0x4 data:float +lbl_801F2560 = .sdata2:0x801F2560; // type:object size:0x8 data:double +lbl_801F2568 = .sdata2:0x801F2568; // type:object size:0x4 data:float +lbl_801F256C = .sdata2:0x801F256C; // type:object size:0x4 data:float +lbl_801F2570 = .sdata2:0x801F2570; // type:object size:0x8 data:double +lbl_801F2578 = .sdata2:0x801F2578; // type:object size:0x4 data:float +lbl_801F257C = .sdata2:0x801F257C; // type:object size:0x4 data:float +lbl_801F2580 = .sdata2:0x801F2580; // type:object size:0x4 data:float +lbl_801F2584 = .sdata2:0x801F2584; // type:object size:0x4 data:float +lbl_801F2588 = .sdata2:0x801F2588; // type:object size:0x4 data:float +lbl_801F258C = .sdata2:0x801F258C; // type:object size:0x4 data:float +lbl_801F2590 = .sdata2:0x801F2590; // type:object size:0x4 data:float +lbl_801F2594 = .sdata2:0x801F2594; // type:object size:0x4 data:float +lbl_801F2598 = .sdata2:0x801F2598; // type:object size:0x4 data:float +lbl_801F259C = .sdata2:0x801F259C; // type:object size:0x4 data:float +lbl_801F25A0 = .sdata2:0x801F25A0; // type:object size:0x4 data:float +lbl_801F25A4 = .sdata2:0x801F25A4; // type:object size:0x4 data:float +lbl_801F25A8 = .sdata2:0x801F25A8; // type:object size:0x4 data:float +lbl_801F25AC = .sdata2:0x801F25AC; // type:object size:0x4 data:float +lbl_801F25B0 = .sdata2:0x801F25B0; // type:object size:0x4 data:float +lbl_801F25B4 = .sdata2:0x801F25B4; // type:object size:0x4 data:float +lbl_801F25B8 = .sdata2:0x801F25B8; // type:object size:0x4 data:float +lbl_801F25BC = .sdata2:0x801F25BC; // type:object size:0x4 data:float +lbl_801F25C0 = .sdata2:0x801F25C0; // type:object size:0x4 data:float +lbl_801F25C4 = .sdata2:0x801F25C4; // type:object size:0x4 data:float +lbl_801F25C8 = .sdata2:0x801F25C8; // type:object size:0x4 data:float +lbl_801F25CC = .sdata2:0x801F25CC; // type:object size:0x4 data:float +lbl_801F25D0 = .sdata2:0x801F25D0; // type:object size:0x4 data:float +lbl_801F25D8 = .sdata2:0x801F25D8; // type:object size:0x8 data:double +lbl_801F25E0 = .sdata2:0x801F25E0; // type:object size:0x8 data:double +lbl_801F25E8 = .sdata2:0x801F25E8; // type:object size:0x4 data:float +lbl_801F25F0 = .sdata2:0x801F25F0; // type:object size:0x8 data:double +lbl_801F25F8 = .sdata2:0x801F25F8; // type:object size:0x4 data:float +lbl_801F2600 = .sdata2:0x801F2600; // type:object size:0x8 data:double +lbl_801F2608 = .sdata2:0x801F2608; // type:object size:0x4 data:float +lbl_801F260C = .sdata2:0x801F260C; // type:object size:0x4 data:float +lbl_801F2610 = .sdata2:0x801F2610; // type:object size:0x4 data:float +lbl_801F2614 = .sdata2:0x801F2614; // type:object size:0x4 data:float +lbl_801F2618 = .sdata2:0x801F2618; // type:object size:0x8 data:double +lbl_801F2620 = .sdata2:0x801F2620; // type:object size:0x8 data:double +lbl_801F2628 = .sdata2:0x801F2628; // type:object size:0x4 data:float +lbl_801F262C = .sdata2:0x801F262C; // type:object size:0x4 data:float +lbl_801F2630 = .sdata2:0x801F2630; // type:object size:0x4 data:float +lbl_801F2634 = .sdata2:0x801F2634; // type:object size:0x4 data:float +lbl_801F2638 = .sdata2:0x801F2638; // type:object size:0x4 data:float +lbl_801F263C = .sdata2:0x801F263C; // type:object size:0x4 data:float +lbl_801F2640 = .sdata2:0x801F2640; // type:object size:0x4 data:float +lbl_801F2644 = .sdata2:0x801F2644; // type:object size:0x4 data:float +lbl_801F2648 = .sdata2:0x801F2648; // type:object size:0x4 data:float +lbl_801F264C = .sdata2:0x801F264C; // type:object size:0x4 data:float +lbl_801F2650 = .sdata2:0x801F2650; // type:object size:0x4 data:float +lbl_801F2654 = .sdata2:0x801F2654; // type:object size:0x4 data:float +lbl_801F2658 = .sdata2:0x801F2658; // type:object size:0x4 data:float +lbl_801F265C = .sdata2:0x801F265C; // type:object size:0x4 data:float +lbl_801F2660 = .sdata2:0x801F2660; // type:object size:0x4 data:4byte +lbl_801F2664 = .sdata2:0x801F2664; // type:object size:0x4 data:4byte +lbl_801F2668 = .sdata2:0x801F2668; // type:object size:0x4 data:float +lbl_801F266C = .sdata2:0x801F266C; // type:object size:0x4 data:float +lbl_801F2670 = .sdata2:0x801F2670; // type:object size:0x4 data:float +lbl_801F2674 = .sdata2:0x801F2674; // type:object size:0x4 data:float +lbl_801F2678 = .sdata2:0x801F2678; // type:object size:0x4 data:float +lbl_801F267C = .sdata2:0x801F267C; // type:object size:0x4 data:float +lbl_801F2680 = .sdata2:0x801F2680; // type:object size:0x4 data:float +lbl_801F2684 = .sdata2:0x801F2684; // type:object size:0x4 data:float +lbl_801F2688 = .sdata2:0x801F2688; // type:object size:0x4 data:float +lbl_801F268C = .sdata2:0x801F268C; // type:object size:0x2 data:2byte +lbl_801F268E = .sdata2:0x801F268E; // type:object size:0x2 data:2byte +lbl_801F2690 = .sdata2:0x801F2690; // type:object size:0x2 data:2byte +lbl_801F2692 = .sdata2:0x801F2692; // type:object size:0x2 data:2byte +lbl_801F2694 = .sdata2:0x801F2694; // type:object size:0x1 data:byte +lbl_801F2695 = .sdata2:0x801F2695; // type:object size:0x1 data:byte +lbl_801F2696 = .sdata2:0x801F2696; // type:object size:0x1 data:byte +lbl_801F2697 = .sdata2:0x801F2697; // type:object size:0x1 data:byte +lbl_801F2698 = .sdata2:0x801F2698; // type:object size:0x1 data:byte +lbl_801F2699 = .sdata2:0x801F2699; // type:object size:0x1 data:byte +lbl_801F269A = .sdata2:0x801F269A; // type:object size:0x1 data:byte +lbl_801F269B = .sdata2:0x801F269B; // type:object size:0x1 data:byte +lbl_801F269C = .sdata2:0x801F269C; // type:object size:0x4 data:float +lbl_801F26A0 = .sdata2:0x801F26A0; // type:object size:0x4 data:float +lbl_801F26A4 = .sdata2:0x801F26A4; // type:object size:0x4 data:float +lbl_801F26A8 = .sdata2:0x801F26A8; // type:object size:0x4 data:float +lbl_801F26AC = .sdata2:0x801F26AC; // type:object size:0x4 data:float +lbl_801F26B0 = .sdata2:0x801F26B0; // type:object size:0x4 data:float +lbl_801F26B8 = .sdata2:0x801F26B8; // type:object size:0x8 data:double +lbl_801F26C0 = .sdata2:0x801F26C0; // type:object size:0x4 data:float +lbl_801F26C4 = .sdata2:0x801F26C4; // type:object size:0x4 data:float +lbl_801F26C8 = .sdata2:0x801F26C8; // type:object size:0x4 data:float +lbl_801F26CC = .sdata2:0x801F26CC; // type:object size:0x4 data:float +lbl_801F26D0 = .sdata2:0x801F26D0; // type:object size:0x8 data:float +winSpeedTbl = .sdata2:0x801F26D8; // type:object size:0x4 scope:local +lbl_801F26DC = .sdata2:0x801F26DC; // type:object size:0x4 data:float +lbl_801F26E0 = .sdata2:0x801F26E0; // type:object size:0x4 data:float +lbl_801F26E4 = .sdata2:0x801F26E4; // type:object size:0x4 data:float +lbl_801F26E8 = .sdata2:0x801F26E8; // type:object size:0x8 data:double +lbl_801F26F0 = .sdata2:0x801F26F0; // type:object size:0x8 data:double +lbl_801F26F8 = .sdata2:0x801F26F8; // type:object size:0x8 data:double +lbl_801F2700 = .sdata2:0x801F2700; // type:object size:0x4 data:float +lbl_801F2704 = .sdata2:0x801F2704; // type:object size:0x4 data:float +lbl_801F2708 = .sdata2:0x801F2708; // type:object size:0x8 data:float +lbl_801F2710 = .sdata2:0x801F2710; // type:object size:0x4 data:float +lbl_801F2714 = .sdata2:0x801F2714; // type:object size:0x4 data:float +lbl_801F2718 = .sdata2:0x801F2718; // type:object size:0x4 data:float +lbl_801F2720 = .sdata2:0x801F2720; // type:object size:0x8 data:double +lbl_801F2728 = .sdata2:0x801F2728; // type:object size:0x8 data:double +lbl_801F2730 = .sdata2:0x801F2730; // type:object size:0x4 data:float +lbl_801F2734 = .sdata2:0x801F2734; // type:object size:0x4 data:float +lbl_801F2738 = .sdata2:0x801F2738; // type:object size:0x4 data:float +lbl_801F273C = .sdata2:0x801F273C; // type:object size:0x4 data:float +lbl_801F2740 = .sdata2:0x801F2740; // type:object size:0x4 data:float +lbl_801F2744 = .sdata2:0x801F2744; // type:object size:0x4 data:float +lbl_801F2748 = .sdata2:0x801F2748; // type:object size:0x4 data:float +lbl_801F274C = .sdata2:0x801F274C; // type:object size:0x4 data:float +lbl_801F2750 = .sdata2:0x801F2750; // type:object size:0x4 data:float +lbl_801F2754 = .sdata2:0x801F2754; // type:object size:0x4 data:float +lbl_801F2758 = .sdata2:0x801F2758; // type:object size:0x4 data:float +lbl_801F275C = .sdata2:0x801F275C; // type:object size:0x4 data:float +lbl_801F2760 = .sdata2:0x801F2760; // type:object size:0x4 data:float +lbl_801F2764 = .sdata2:0x801F2764; // type:object size:0x4 data:float +lbl_801F2768 = .sdata2:0x801F2768; // type:object size:0x4 data:float +lbl_801F2770 = .sdata2:0x801F2770; // type:object size:0x8 data:double +lbl_801F2778 = .sdata2:0x801F2778; // type:object size:0x4 data:float +lbl_801F277C = .sdata2:0x801F277C; // type:object size:0x4 data:float +lbl_801F2780 = .sdata2:0x801F2780; // type:object size:0x1 data:byte +lbl_801F2781 = .sdata2:0x801F2781; // type:object size:0x1 data:byte +lbl_801F2782 = .sdata2:0x801F2782; // type:object size:0x1 data:byte +lbl_801F2783 = .sdata2:0x801F2783; // type:object size:0x1 data:byte +lbl_801F2784 = .sdata2:0x801F2784; // type:object size:0x1 data:byte +lbl_801F2785 = .sdata2:0x801F2785; // type:object size:0x1 data:byte +lbl_801F2786 = .sdata2:0x801F2786; // type:object size:0x1 data:byte +lbl_801F2787 = .sdata2:0x801F2787; // type:object size:0x1 data:byte +lbl_801F2788 = .sdata2:0x801F2788; // type:object size:0x4 data:float +lbl_801F278C = .sdata2:0x801F278C; // type:object size:0x4 data:float +lbl_801F2790 = .sdata2:0x801F2790; // type:object size:0x8 data:double +lbl_801F2798 = .sdata2:0x801F2798; // type:object size:0x8 data:double +lbl_801F27A0 = .sdata2:0x801F27A0; // type:object size:0x8 data:double +lbl_801F27A8 = .sdata2:0x801F27A8; // type:object size:0x4 data:float +lbl_801F27B0 = .sdata2:0x801F27B0; // type:object size:0x8 data:double +lbl_801F27B8 = .sdata2:0x801F27B8; // type:object size:0x4 data:float +lbl_801F27BC = .sdata2:0x801F27BC; // type:object size:0x4 data:float +lbl_801F27C0 = .sdata2:0x801F27C0; // type:object size:0x4 data:float +lbl_801F27C4 = .sdata2:0x801F27C4; // type:object size:0x4 data:float +lbl_801F27C8 = .sdata2:0x801F27C8; // type:object size:0x4 data:float +lbl_801F27CC = .sdata2:0x801F27CC; // type:object size:0x4 data:float +lbl_801F27D0 = .sdata2:0x801F27D0; // type:object size:0x4 data:float +lbl_801F27D4 = .sdata2:0x801F27D4; // type:object size:0x1 data:byte +lbl_801F27D5 = .sdata2:0x801F27D5; // type:object size:0x1 data:byte +lbl_801F27D6 = .sdata2:0x801F27D6; // type:object size:0x1 data:byte +lbl_801F27D7 = .sdata2:0x801F27D7; // type:object size:0x1 data:byte +lbl_801F27D8 = .sdata2:0x801F27D8; // type:object size:0x4 data:float +lbl_801F27DC = .sdata2:0x801F27DC; // type:object size:0x4 data:float +lbl_801F27E0 = .sdata2:0x801F27E0; // type:object size:0x4 data:float +lbl_801F27E4 = .sdata2:0x801F27E4; // type:object size:0x4 data:float +lbl_801F27E8 = .sdata2:0x801F27E8; // type:object size:0x4 data:float +lbl_801F27EC = .sdata2:0x801F27EC; // type:object size:0x4 data:float +lbl_801F27F0 = .sdata2:0x801F27F0; // type:object size:0x4 data:float +lbl_801F27F4 = .sdata2:0x801F27F4; // type:object size:0x4 data:float +lbl_801F27F8 = .sdata2:0x801F27F8; // type:object size:0x4 data:float +lbl_801F27FC = .sdata2:0x801F27FC; // type:object size:0x4 data:float +lbl_801F2800 = .sdata2:0x801F2800; // type:object size:0x4 data:4byte +lbl_801F2804 = .sdata2:0x801F2804; // type:object size:0x4 data:4byte +lbl_801F2808 = .sdata2:0x801F2808; // type:object size:0x4 data:float +lbl_801F2810 = .sdata2:0x801F2810; // type:object size:0x8 data:double +lbl_801F2818 = .sdata2:0x801F2818; // type:object size:0x8 data:double +lbl_801F2820 = .sdata2:0x801F2820; // type:object size:0x4 data:float +lbl_801F2824 = .sdata2:0x801F2824; // type:object size:0x4 data:float +lbl_801F2828 = .sdata2:0x801F2828; // type:object size:0x4 data:float +lbl_801F282C = .sdata2:0x801F282C; // type:object size:0x4 data:float +lbl_801F2830 = .sdata2:0x801F2830; // type:object size:0x4 data:float +lbl_801F2834 = .sdata2:0x801F2834; // type:object size:0x4 data:float +lbl_801F2838 = .sdata2:0x801F2838; // type:object size:0x4 data:float +lbl_801F283C = .sdata2:0x801F283C; // type:object size:0x4 data:float +lbl_801F2840 = .sdata2:0x801F2840; // type:object size:0x4 data:float +lbl_801F2844 = .sdata2:0x801F2844; // type:object size:0x4 data:float +lbl_801F2848 = .sdata2:0x801F2848; // type:object size:0x4 data:float +lbl_801F284C = .sdata2:0x801F284C; // type:object size:0x4 data:float +lbl_801F2850 = .sdata2:0x801F2850; // type:object size:0x4 data:float +lbl_801F2854 = .sdata2:0x801F2854; // type:object size:0x4 data:float +lbl_801F2858 = .sdata2:0x801F2858; // type:object size:0x4 data:float +lbl_801F285C = .sdata2:0x801F285C; // type:object size:0x4 data:float +lbl_801F2860 = .sdata2:0x801F2860; // type:object size:0x4 data:float +lbl_801F2868 = .sdata2:0x801F2868; // type:object size:0x8 data:double +lbl_801F2870 = .sdata2:0x801F2870; // type:object size:0x4 data:float +lbl_801F2874 = .sdata2:0x801F2874; // type:object size:0x4 data:float +lbl_801F2878 = .sdata2:0x801F2878; // type:object size:0x4 data:float +lbl_801F287C = .sdata2:0x801F287C; // type:object size:0x4 data:float +lbl_801F2880 = .sdata2:0x801F2880; // type:object size:0x4 data:float +lbl_801F2884 = .sdata2:0x801F2884; // type:object size:0x4 data:float +lbl_801F2888 = .sdata2:0x801F2888; // type:object size:0x4 data:float +lbl_801F288C = .sdata2:0x801F288C; // type:object size:0x4 data:float +lbl_801F2890 = .sdata2:0x801F2890; // type:object size:0x4 data:float +lbl_801F2894 = .sdata2:0x801F2894; // type:object size:0x4 data:float +lbl_801F2898 = .sdata2:0x801F2898; // type:object size:0x4 data:float +lbl_801F289C = .sdata2:0x801F289C; // type:object size:0x4 data:float +lbl_801F28A0 = .sdata2:0x801F28A0; // type:object size:0x4 data:float +lbl_801F28A8 = .sdata2:0x801F28A8; // type:object size:0x8 data:double +lbl_801F28B0 = .sdata2:0x801F28B0; // type:object size:0x4 data:float +lbl_801F28B4 = .sdata2:0x801F28B4; // type:object size:0x4 data:float +lbl_801F28B8 = .sdata2:0x801F28B8; // type:object size:0x4 data:float +lbl_801F28C0 = .sdata2:0x801F28C0; // type:object size:0x8 data:double +lbl_801F28C8 = .sdata2:0x801F28C8; // type:object size:0x4 data:float +lbl_801F28CC = .sdata2:0x801F28CC; // type:object size:0x4 data:float +lbl_801F28D0 = .sdata2:0x801F28D0; // type:object size:0x8 data:float +lbl_801F28D8 = .sdata2:0x801F28D8; // type:object size:0x4 data:float +lbl_801F28DC = .sdata2:0x801F28DC; // type:object size:0x4 data:4byte +lbl_801F28E0 = .sdata2:0x801F28E0; // type:object size:0x4 data:4byte +lbl_801F28E4 = .sdata2:0x801F28E4; // type:object size:0x4 data:float +lbl_801F28E8 = .sdata2:0x801F28E8; // type:object size:0x4 data:float +lbl_801F28F0 = .sdata2:0x801F28F0; // type:object size:0x8 data:double +lbl_801F28F8 = .sdata2:0x801F28F8; // type:object size:0x8 data:double +lbl_801F2900 = .sdata2:0x801F2900; // type:object size:0x4 data:float +lbl_801F2904 = .sdata2:0x801F2904; // type:object size:0x4 data:float +lbl_801F2908 = .sdata2:0x801F2908; // type:object size:0x4 data:float +lbl_801F290C = .sdata2:0x801F290C; // type:object size:0x4 data:float +lbl_801F2910 = .sdata2:0x801F2910; // type:object size:0x8 data:double +lbl_801F2918 = .sdata2:0x801F2918; // type:object size:0x4 data:float +lbl_801F291C = .sdata2:0x801F291C; // type:object size:0x4 data:float +lbl_801F2920 = .sdata2:0x801F2920; // type:object size:0x4 data:float +lbl_801F2924 = .sdata2:0x801F2924; // type:object size:0x4 data:float +lbl_801F2928 = .sdata2:0x801F2928; // type:object size:0x4 data:float +lbl_801F292C = .sdata2:0x801F292C; // type:object size:0x4 data:float +lbl_801F2930 = .sdata2:0x801F2930; // type:object size:0x4 data:float +lbl_801F2934 = .sdata2:0x801F2934; // type:object size:0x4 data:float +lbl_801F2938 = .sdata2:0x801F2938; // type:object size:0x4 data:float +lbl_801F293C = .sdata2:0x801F293C; // type:object size:0x4 data:float +lbl_801F2940 = .sdata2:0x801F2940; // type:object size:0x4 data:float +lbl_801F2944 = .sdata2:0x801F2944; // type:object size:0x4 data:float +lbl_801F2948 = .sdata2:0x801F2948; // type:object size:0x4 data:float +lbl_801F294C = .sdata2:0x801F294C; // type:object size:0x4 data:4byte +lbl_801F2950 = .sdata2:0x801F2950; // type:object size:0x4 data:4byte +lbl_801F2954 = .sdata2:0x801F2954; // type:object size:0x2 data:2byte +lbl_801F2956 = .sdata2:0x801F2956; // type:object size:0x2 data:2byte +lbl_801F2958 = .sdata2:0x801F2958; // type:object size:0x2 data:2byte +lbl_801F295A = .sdata2:0x801F295A; // type:object size:0x2 data:2byte +lbl_801F295C = .sdata2:0x801F295C; // type:object size:0x4 data:float +lbl_801F2960 = .sdata2:0x801F2960; // type:object size:0x4 data:float +lbl_801F2964 = .sdata2:0x801F2964; // type:object size:0x4 data:float +lbl_801F2968 = .sdata2:0x801F2968; // type:object size:0x4 data:float +lbl_801F296C = .sdata2:0x801F296C; // type:object size:0x4 data:float +lbl_801F2970 = .sdata2:0x801F2970; // type:object size:0x4 data:float +lbl_801F2974 = .sdata2:0x801F2974; // type:object size:0x4 data:float +lbl_801F2978 = .sdata2:0x801F2978; // type:object size:0x4 data:float +lbl_801F297C = .sdata2:0x801F297C; // type:object size:0x4 data:float +lbl_801F2980 = .sdata2:0x801F2980; // type:object size:0x4 data:float +lbl_801F2984 = .sdata2:0x801F2984; // type:object size:0x4 data:float +lbl_801F2988 = .sdata2:0x801F2988; // type:object size:0x4 data:float +lbl_801F298C = .sdata2:0x801F298C; // type:object size:0x4 data:float +lbl_801F2990 = .sdata2:0x801F2990; // type:object size:0x4 data:float +lbl_801F2994 = .sdata2:0x801F2994; // type:object size:0x4 data:float +lbl_801F2998 = .sdata2:0x801F2998; // type:object size:0x4 data:float +lbl_801F299C = .sdata2:0x801F299C; // type:object size:0x4 data:float +lbl_801F29A0 = .sdata2:0x801F29A0; // type:object size:0x4 data:float +lbl_801F29A4 = .sdata2:0x801F29A4; // type:object size:0x4 data:float +lbl_801F29A8 = .sdata2:0x801F29A8; // type:object size:0x4 data:float +lbl_801F29AC = .sdata2:0x801F29AC; // type:object size:0x4 data:float +lbl_801F29B0 = .sdata2:0x801F29B0; // type:object size:0x4 data:float +lbl_801F29B4 = .sdata2:0x801F29B4; // type:object size:0x4 data:float +lbl_801F29B8 = .sdata2:0x801F29B8; // type:object size:0x4 data:float +lbl_801F29BC = .sdata2:0x801F29BC; // type:object size:0x4 data:float +lbl_801F29C0 = .sdata2:0x801F29C0; // type:object size:0x4 data:float +lbl_801F29C4 = .sdata2:0x801F29C4; // type:object size:0x4 data:float +lbl_801F29C8 = .sdata2:0x801F29C8; // type:object size:0x4 data:float +lbl_801F29CC = .sdata2:0x801F29CC; // type:object size:0x4 data:float +lbl_801F29D0 = .sdata2:0x801F29D0; // type:object size:0x4 data:float +lbl_801F29D4 = .sdata2:0x801F29D4; // type:object size:0x4 data:float +lbl_801F29D8 = .sdata2:0x801F29D8; // type:object size:0x4 data:float +lbl_801F29DC = .sdata2:0x801F29DC; // type:object size:0x4 data:float +lbl_801F29E0 = .sdata2:0x801F29E0; // type:object size:0x4 data:float +lbl_801F29E4 = .sdata2:0x801F29E4; // type:object size:0x4 data:float +lbl_801F29E8 = .sdata2:0x801F29E8; // type:object size:0x4 data:float +lbl_801F29EC = .sdata2:0x801F29EC; // type:object size:0x4 data:float +lbl_801F29F0 = .sdata2:0x801F29F0; // type:object size:0x8 data:double +lbl_801F29F8 = .sdata2:0x801F29F8; // type:object size:0x8 data:double +lbl_801F2A00 = .sdata2:0x801F2A00; // type:object size:0x4 data:float +lbl_801F2A04 = .sdata2:0x801F2A04; // type:object size:0x4 data:float +lbl_801F2A08 = .sdata2:0x801F2A08; // type:object size:0x4 data:float +lbl_801F2A0C = .sdata2:0x801F2A0C; // type:object size:0x4 data:float +lbl_801F2A10 = .sdata2:0x801F2A10; // type:object size:0x4 data:float +lbl_801F2A14 = .sdata2:0x801F2A14; // type:object size:0x4 data:float +lbl_801F2A18 = .sdata2:0x801F2A18; // type:object size:0x4 data:float +lbl_801F2A1C = .sdata2:0x801F2A1C; // type:object size:0x4 data:float +lbl_801F2A20 = .sdata2:0x801F2A20; // type:object size:0x4 data:float +lbl_801F2A24 = .sdata2:0x801F2A24; // type:object size:0x4 data:float +lbl_801F2A28 = .sdata2:0x801F2A28; // type:object size:0x4 data:float +lbl_801F2A2C = .sdata2:0x801F2A2C; // type:object size:0x4 data:float +lbl_801F2A30 = .sdata2:0x801F2A30; // type:object size:0x8 data:double +lbl_801F2A38 = .sdata2:0x801F2A38; // type:object size:0x4 data:4byte +lbl_801F2A3C = .sdata2:0x801F2A3C; // type:object size:0x4 data:4byte +lbl_801F2A40 = .sdata2:0x801F2A40; // type:object size:0x1 data:byte +lbl_801F2A41 = .sdata2:0x801F2A41; // type:object size:0x1 data:byte +lbl_801F2A44 = .sdata2:0x801F2A44; // type:object size:0x4 data:float +lbl_801F2A48 = .sdata2:0x801F2A48; // type:object size:0x4 data:float +lbl_801F2A4C = .sdata2:0x801F2A4C; // type:object size:0x4 data:float +lbl_801F2A50 = .sdata2:0x801F2A50; // type:object size:0x4 data:float +lbl_801F2A54 = .sdata2:0x801F2A54; // type:object size:0x4 data:float +lbl_801F2A58 = .sdata2:0x801F2A58; // type:object size:0x4 data:float +lbl_801F2A5C = .sdata2:0x801F2A5C; // type:object size:0x4 data:float +lbl_801F2A60 = .sdata2:0x801F2A60; // type:object size:0x8 data:float +lbl_801F2A68 = .sdata2:0x801F2A68; // type:object size:0x4 data:float +lbl_801F2A6C = .sdata2:0x801F2A6C; // type:object size:0x4 data:float +lbl_801F2A70 = .sdata2:0x801F2A70; // type:object size:0x4 data:float +lbl_801F2A74 = .sdata2:0x801F2A74; // type:object size:0x4 data:float +coinSignMdl = .sdata2:0x801F2A78; // type:object size:0x8 scope:local +lbl_801F2A80 = .sdata2:0x801F2A80; // type:object size:0x4 data:float +lbl_801F2A84 = .sdata2:0x801F2A84; // type:object size:0x4 data:float +lbl_801F2A88 = .sdata2:0x801F2A88; // type:object size:0x4 data:float +lbl_801F2A90 = .sdata2:0x801F2A90; // type:object size:0x8 data:double +lbl_801F2A98 = .sdata2:0x801F2A98; // type:object size:0x8 data:double +lbl_801F2AA0 = .sdata2:0x801F2AA0; // type:object size:0x4 data:float +lbl_801F2AA4 = .sdata2:0x801F2AA4; // type:object size:0x4 data:float +lbl_801F2AA8 = .sdata2:0x801F2AA8; // type:object size:0x4 data:float +lbl_801F2AB0 = .sdata2:0x801F2AB0; // type:object size:0x8 data:double +lbl_801F2AB8 = .sdata2:0x801F2AB8; // type:object size:0x4 data:float +lbl_801F2ABC = .sdata2:0x801F2ABC; // type:object size:0x4 data:float +lbl_801F2AC0 = .sdata2:0x801F2AC0; // type:object size:0x4 data:float +lbl_801F2AC4 = .sdata2:0x801F2AC4; // type:object size:0x4 data:float +lbl_801F2AC8 = .sdata2:0x801F2AC8; // type:object size:0x4 data:float +lbl_801F2ACC = .sdata2:0x801F2ACC; // type:object size:0x4 data:float +lbl_801F2AD0 = .sdata2:0x801F2AD0; // type:object size:0x4 data:float +lbl_801F2AD4 = .sdata2:0x801F2AD4; // type:object size:0x4 data:float +lbl_801F2AD8 = .sdata2:0x801F2AD8; // type:object size:0x8 data:double +lbl_801F2AE0 = .sdata2:0x801F2AE0; // type:object size:0x8 data:double +lbl_801F2AE8 = .sdata2:0x801F2AE8; // type:object size:0x4 data:float +lbl_801F2AF0 = .sdata2:0x801F2AF0; // type:object size:0x8 data:double +lbl_801F2AF8 = .sdata2:0x801F2AF8; // type:object size:0x4 data:float +lbl_801F2AFC = .sdata2:0x801F2AFC; // type:object size:0x4 data:float +lbl_801F2B00 = .sdata2:0x801F2B00; // type:object size:0x4 data:float +lbl_801F2B04 = .sdata2:0x801F2B04; // type:object size:0x4 data:float +lbl_801F2B08 = .sdata2:0x801F2B08; // type:object size:0x4 data:float +lbl_801F2B0C = .sdata2:0x801F2B0C; // type:object size:0x4 data:float +lbl_801F2B10 = .sdata2:0x801F2B10; // type:object size:0x4 data:float +lbl_801F2B14 = .sdata2:0x801F2B14; // type:object size:0x4 data:float +lbl_801F2B18 = .sdata2:0x801F2B18; // type:object size:0x4 data:float +lbl_801F2B1C = .sdata2:0x801F2B1C; // type:object size:0x4 data:float +lbl_801F2B20 = .sdata2:0x801F2B20; // type:object size:0x4 data:float +lbl_801F2B24 = .sdata2:0x801F2B24; // type:object size:0x4 data:float +lbl_801F2B28 = .sdata2:0x801F2B28; // type:object size:0x4 data:float +lbl_801F2B30 = .sdata2:0x801F2B30; // type:object size:0x8 data:double +lbl_801F2B38 = .sdata2:0x801F2B38; // type:object size:0x8 data:double +lbl_801F2B40 = .sdata2:0x801F2B40; // type:object size:0x8 data:float +lbl_801F2B48 = .sdata2:0x801F2B48; // type:object size:0x4 data:float +lbl_801F2B4C = .sdata2:0x801F2B4C; // type:object size:0x4 data:float +lbl_801F2B50 = .sdata2:0x801F2B50; // type:object size:0x4 data:float +lbl_801F2B54 = .sdata2:0x801F2B54; // type:object size:0x4 data:float +lbl_801F2B58 = .sdata2:0x801F2B58; // type:object size:0x4 data:float +lbl_801F2B5C = .sdata2:0x801F2B5C; // type:object size:0x4 data:float +lbl_801F2B60 = .sdata2:0x801F2B60; // type:object size:0x4 data:float +lbl_801F2B64 = .sdata2:0x801F2B64; // type:object size:0x4 data:float +lbl_801F2B68 = .sdata2:0x801F2B68; // type:object size:0x4 data:float +lbl_801F2B6C = .sdata2:0x801F2B6C; // type:object size:0x4 data:float +lbl_801F2B70 = .sdata2:0x801F2B70; // type:object size:0x4 data:float +lbl_801F2B74 = .sdata2:0x801F2B74; // type:object size:0x4 data:float +lbl_801F2B78 = .sdata2:0x801F2B78; // type:object size:0x4 data:float +lbl_801F2B7C = .sdata2:0x801F2B7C; // type:object size:0x4 data:float +lbl_801F2B80 = .sdata2:0x801F2B80; // type:object size:0x4 data:float +lbl_801F2B84 = .sdata2:0x801F2B84; // type:object size:0x4 data:float +lbl_801F2B88 = .sdata2:0x801F2B88; // type:object size:0x8 data:double +lbl_801F2B90 = .sdata2:0x801F2B90; // type:object size:0x4 data:float +lbl_801F2B94 = .sdata2:0x801F2B94; // type:object size:0x4 data:float +lbl_801F2B98 = .sdata2:0x801F2B98; // type:object size:0x4 data:float +lbl_801F2B9C = .sdata2:0x801F2B9C; // type:object size:0x4 data:float +lbl_801F2BA0 = .sdata2:0x801F2BA0; // type:object size:0x4 data:float +lbl_801F2BA4 = .sdata2:0x801F2BA4; // type:object size:0x4 data:float +lbl_801F2BA8 = .sdata2:0x801F2BA8; // type:object size:0x4 data:float +lbl_801F2BAC = .sdata2:0x801F2BAC; // type:object size:0x4 data:float +lbl_801F2BB0 = .sdata2:0x801F2BB0; // type:object size:0x8 data:double +lbl_801F2BB8 = .sdata2:0x801F2BB8; // type:object size:0x8 data:double +lbl_801F2BC0 = .sdata2:0x801F2BC0; // type:object size:0x4 data:float +lbl_801F2BC8 = .sdata2:0x801F2BC8; // type:object size:0x8 data:double +lbl_801F2BD0 = .sdata2:0x801F2BD0; // type:object size:0x8 data:float +boxOfs = .sdata2:0x801F2BD8; // type:object size:0x8 scope:local +lbl_801F2BE0 = .sdata2:0x801F2BE0; // type:object size:0x4 data:float +lbl_801F2BE4 = .sdata2:0x801F2BE4; // type:object size:0x4 data:float +lbl_801F2BE8 = .sdata2:0x801F2BE8; // type:object size:0x4 data:float +lbl_801F2BEC = .sdata2:0x801F2BEC; // type:object size:0x4 data:float +lbl_801F2BF0 = .sdata2:0x801F2BF0; // type:object size:0x4 data:float +lbl_801F2BF4 = .sdata2:0x801F2BF4; // type:object size:0x4 data:float +lbl_801F2BF8 = .sdata2:0x801F2BF8; // type:object size:0x8 data:double +lbl_801F2C00 = .sdata2:0x801F2C00; // type:object size:0x8 data:double +lbl_801F2C08 = .sdata2:0x801F2C08; // type:object size:0x8 data:double +lbl_801F2C10 = .sdata2:0x801F2C10; // type:object size:0x4 data:float +lbl_801F2C14 = .sdata2:0x801F2C14; // type:object size:0x4 data:float +lbl_801F2C18 = .sdata2:0x801F2C18; // type:object size:0x4 data:float +lbl_801F2C1C = .sdata2:0x801F2C1C; // type:object size:0x4 data:4byte +lbl_801F2C20 = .sdata2:0x801F2C20; // type:object size:0x4 data:4byte +lbl_801F2C24 = .sdata2:0x801F2C24; // type:object size:0x4 data:float +lbl_801F2C28 = .sdata2:0x801F2C28; // type:object size:0x4 data:float +lbl_801F2C2C = .sdata2:0x801F2C2C; // type:object size:0x4 data:float +lbl_801F2C30 = .sdata2:0x801F2C30; // type:object size:0x4 data:float +lbl_801F2C34 = .sdata2:0x801F2C34; // type:object size:0x4 data:4byte +lbl_801F2C38 = .sdata2:0x801F2C38; // type:object size:0x4 data:4byte +lbl_801F2C3C = .sdata2:0x801F2C3C; // type:object size:0x4 data:float +lbl_801F2C40 = .sdata2:0x801F2C40; // type:object size:0x4 data:float +lbl_801F2C44 = .sdata2:0x801F2C44; // type:object size:0x4 data:float +lbl_801F2C48 = .sdata2:0x801F2C48; // type:object size:0x4 data:float +lbl_801F2C4C = .sdata2:0x801F2C4C; // type:object size:0x4 data:float +lbl_801F2C50 = .sdata2:0x801F2C50; // type:object size:0x8 data:double +lbl_801F2C58 = .sdata2:0x801F2C58; // type:object size:0x4 data:float +lbl_801F2C60 = .sdata2:0x801F2C60; // type:object size:0x8 data:double +lbl_801F2C68 = .sdata2:0x801F2C68; // type:object size:0x8 data:double +lbl_801F2C70 = .sdata2:0x801F2C70; // type:object size:0x8 data:double +lbl_801F2C78 = .sdata2:0x801F2C78; // type:object size:0x4 data:float +lbl_801F2C7C = .sdata2:0x801F2C7C; // type:object size:0x4 data:float +lbl_801F2C80 = .sdata2:0x801F2C80; // type:object size:0x4 data:float +lbl_801F2C84 = .sdata2:0x801F2C84; // type:object size:0x4 data:float +lbl_801F2C88 = .sdata2:0x801F2C88; // type:object size:0x4 data:float +lbl_801F2C8C = .sdata2:0x801F2C8C; // type:object size:0x4 data:float +lbl_801F2C90 = .sdata2:0x801F2C90; // type:object size:0x4 data:float +lbl_801F2C94 = .sdata2:0x801F2C94; // type:object size:0x4 data:float +lbl_801F2C98 = .sdata2:0x801F2C98; // type:object size:0x4 data:float +lbl_801F2C9C = .sdata2:0x801F2C9C; // type:object size:0x4 data:float +lbl_801F2CA0 = .sdata2:0x801F2CA0; // type:object size:0x4 data:float +lbl_801F2CA8 = .sdata2:0x801F2CA8; // type:object size:0x8 data:double +lbl_801F2CB0 = .sdata2:0x801F2CB0; // type:object size:0x4 data:float +lbl_801F2CB4 = .sdata2:0x801F2CB4; // type:object size:0x4 data:float +lbl_801F2CB8 = .sdata2:0x801F2CB8; // type:object size:0x4 data:float +lbl_801F2CBC = .sdata2:0x801F2CBC; // type:object size:0x4 data:float +lbl_801F2CC0 = .sdata2:0x801F2CC0; // type:object size:0x4 data:float +lbl_801F2CC4 = .sdata2:0x801F2CC4; // type:object size:0x4 data:float +lbl_801F2CC8 = .sdata2:0x801F2CC8; // type:object size:0x4 data:float +lbl_801F2CCC = .sdata2:0x801F2CCC; // type:object size:0x4 data:float +lbl_801F2CD0 = .sdata2:0x801F2CD0; // type:object size:0x4 data:float +lbl_801F2CD4 = .sdata2:0x801F2CD4; // type:object size:0x4 data:float +lbl_801F2CD8 = .sdata2:0x801F2CD8; // type:object size:0x4 data:float +lbl_801F2CDC = .sdata2:0x801F2CDC; // type:object size:0x4 data:float +lbl_801F2CE0 = .sdata2:0x801F2CE0; // type:object size:0x4 data:float +lbl_801F2CE4 = .sdata2:0x801F2CE4; // type:object size:0x4 data:float +lbl_801F2CE8 = .sdata2:0x801F2CE8; // type:object size:0x4 data:float +lbl_801F2CEC = .sdata2:0x801F2CEC; // type:object size:0x4 data:float +lbl_801F2CF0 = .sdata2:0x801F2CF0; // type:object size:0x4 data:float +lbl_801F2CF4 = .sdata2:0x801F2CF4; // type:object size:0x4 data:float +lbl_801F2CF8 = .sdata2:0x801F2CF8; // type:object size:0x8 data:float +lbl_801F2D00 = .sdata2:0x801F2D00; // type:object size:0x4 data:float +lbl_801F2D04 = .sdata2:0x801F2D04; // type:object size:0x4 data:float +lbl_801F2D08 = .sdata2:0x801F2D08; // type:object size:0x4 data:float +lbl_801F2D0C = .sdata2:0x801F2D0C; // type:object size:0x4 data:float +lbl_801F2D10 = .sdata2:0x801F2D10; // type:object size:0x4 data:float +lbl_801F2D14 = .sdata2:0x801F2D14; // type:object size:0x4 data:float +lbl_801F2D18 = .sdata2:0x801F2D18; // type:object size:0x4 data:float +lbl_801F2D1C = .sdata2:0x801F2D1C; // type:object size:0x4 data:float +lbl_801F2D20 = .sdata2:0x801F2D20; // type:object size:0x4 data:float +lbl_801F2D24 = .sdata2:0x801F2D24; // type:object size:0x4 data:float +lbl_801F2D28 = .sdata2:0x801F2D28; // type:object size:0x4 data:float +lbl_801F2D2C = .sdata2:0x801F2D2C; // type:object size:0x4 data:float +lbl_801F2D30 = .sdata2:0x801F2D30; // type:object size:0x4 data:float +lbl_801F2D34 = .sdata2:0x801F2D34; // type:object size:0x4 data:float +lbl_801F2D38 = .sdata2:0x801F2D38; // type:object size:0x8 data:double +lbl_801F2D40 = .sdata2:0x801F2D40; // type:object size:0x8 data:double +lbl_801F2D48 = .sdata2:0x801F2D48; // type:object size:0x4 data:float +lbl_801F2D50 = .sdata2:0x801F2D50; // type:object size:0x8 data:double +lbl_801F2D58 = .sdata2:0x801F2D58; // type:object size:0x8 data:double +lbl_801F2D60 = .sdata2:0x801F2D60; // type:object size:0x8 data:double +lbl_801F2D68 = .sdata2:0x801F2D68; // type:object size:0x4 data:float +lbl_801F2D70 = .sdata2:0x801F2D70; // type:object size:0x8 data:double +lbl_801F2D78 = .sdata2:0x801F2D78; // type:object size:0x4 data:float +lbl_801F2D7C = .sdata2:0x801F2D7C; // type:object size:0x4 data:float +lbl_801F2D80 = .sdata2:0x801F2D80; // type:object size:0x4 data:float +lbl_801F2D84 = .sdata2:0x801F2D84; // type:object size:0x4 data:float +lbl_801F2D88 = .sdata2:0x801F2D88; // type:object size:0x4 data:float +lbl_801F2D8C = .sdata2:0x801F2D8C; // type:object size:0x4 data:float +lbl_801F2D90 = .sdata2:0x801F2D90; // type:object size:0x4 data:float +lbl_801F2D94 = .sdata2:0x801F2D94; // type:object size:0x4 data:float +lbl_801F2D98 = .sdata2:0x801F2D98; // type:object size:0x4 data:float +lbl_801F2D9C = .sdata2:0x801F2D9C; // type:object size:0x4 data:float +lbl_801F2DA0 = .sdata2:0x801F2DA0; // type:object size:0x4 data:float +lbl_801F2DA4 = .sdata2:0x801F2DA4; // type:object size:0x4 data:float +lbl_801F2DA8 = .sdata2:0x801F2DA8; // type:object size:0x8 data:float +lbl_801F2DB0 = .sdata2:0x801F2DB0; // type:object size:0x4 data:float +lbl_801F2DB4 = .sdata2:0x801F2DB4; // type:object size:0x4 data:float +lbl_801F2DB8 = .sdata2:0x801F2DB8; // type:object size:0x4 data:float +lbl_801F2DBC = .sdata2:0x801F2DBC; // type:object size:0x4 data:float +lbl_801F2DC0 = .sdata2:0x801F2DC0; // type:object size:0x4 data:float +lbl_801F2DC4 = .sdata2:0x801F2DC4; // type:object size:0x4 data:float +lbl_801F2DC8 = .sdata2:0x801F2DC8; // type:object size:0x4 data:float +lbl_801F2DCC = .sdata2:0x801F2DCC; // type:object size:0x4 data:float +lbl_801F2DD0 = .sdata2:0x801F2DD0; // type:object size:0x4 data:float +lbl_801F2DD8 = .sdata2:0x801F2DD8; // type:object size:0x8 data:double +lbl_801F2DE0 = .sdata2:0x801F2DE0; // type:object size:0x8 data:double +lbl_801F2DE8 = .sdata2:0x801F2DE8; // type:object size:0x8 data:double +lbl_801F2DF0 = .sdata2:0x801F2DF0; // type:object size:0x4 data:float +lbl_801F2DF4 = .sdata2:0x801F2DF4; // type:object size:0x4 data:float +lbl_801F2DF8 = .sdata2:0x801F2DF8; // type:object size:0x4 data:float +lbl_801F2DFC = .sdata2:0x801F2DFC; // type:object size:0x4 data:float +lbl_801F2E00 = .sdata2:0x801F2E00; // type:object size:0x8 data:double +lbl_801F2E08 = .sdata2:0x801F2E08; // type:object size:0x8 data:double +lbl_801F2E10 = .sdata2:0x801F2E10; // type:object size:0x4 data:float +lbl_801F2E14 = .sdata2:0x801F2E14; // type:object size:0x4 data:float +lbl_801F2E18 = .sdata2:0x801F2E18; // type:object size:0x4 data:float +lbl_801F2E1C = .sdata2:0x801F2E1C; // type:object size:0x4 data:float +lbl_801F2E20 = .sdata2:0x801F2E20; // type:object size:0x4 data:float +lbl_801F2E24 = .sdata2:0x801F2E24; // type:object size:0x4 data:float +lbl_801F2E28 = .sdata2:0x801F2E28; // type:object size:0x4 data:float +lbl_801F2E30 = .sdata2:0x801F2E30; // type:object size:0x8 data:double +lbl_801F2E38 = .sdata2:0x801F2E38; // type:object size:0x4 data:float +lbl_801F2E3C = .sdata2:0x801F2E3C; // type:object size:0x4 data:float +lbl_801F2E40 = .sdata2:0x801F2E40; // type:object size:0x4 data:float +lbl_801F2E44 = .sdata2:0x801F2E44; // type:object size:0x4 data:float +lbl_801F2E48 = .sdata2:0x801F2E48; // type:object size:0x4 data:float +lbl_801F2E4C = .sdata2:0x801F2E4C; // type:object size:0x4 data:float +lbl_801F2E50 = .sdata2:0x801F2E50; // type:object size:0x4 data:float +lbl_801F2E54 = .sdata2:0x801F2E54; // type:object size:0x4 data:float +lbl_801F2E58 = .sdata2:0x801F2E58; // type:object size:0x4 data:float +lbl_801F2E5C = .sdata2:0x801F2E5C; // type:object size:0x4 data:float +lbl_801F2E60 = .sdata2:0x801F2E60; // type:object size:0x4 data:float +lbl_801F2E64 = .sdata2:0x801F2E64; // type:object size:0x4 data:float +lbl_801F2E68 = .sdata2:0x801F2E68; // type:object size:0x4 data:float +lbl_801F2E6C = .sdata2:0x801F2E6C; // type:object size:0x4 data:float +lbl_801F2E70 = .sdata2:0x801F2E70; // type:object size:0x4 data:float +lbl_801F2E74 = .sdata2:0x801F2E74; // type:object size:0x4 data:float +lbl_801F2E78 = .sdata2:0x801F2E78; // type:object size:0x4 data:float +lbl_801F2E7C = .sdata2:0x801F2E7C; // type:object size:0x4 data:float +lbl_801F2E80 = .sdata2:0x801F2E80; // type:object size:0x4 data:float +lbl_801F2E84 = .sdata2:0x801F2E84; // type:object size:0x4 data:float +lbl_801F2E88 = .sdata2:0x801F2E88; // type:object size:0x4 data:float +lbl_801F2E8C = .sdata2:0x801F2E8C; // type:object size:0x4 data:float +lbl_801F2E90 = .sdata2:0x801F2E90; // type:object size:0x4 data:float +lbl_801F2E94 = .sdata2:0x801F2E94; // type:object size:0x4 data:float +lbl_801F2E98 = .sdata2:0x801F2E98; // type:object size:0x4 data:float +lbl_801F2E9C = .sdata2:0x801F2E9C; // type:object size:0x4 data:float +lbl_801F2EA0 = .sdata2:0x801F2EA0; // type:object size:0x8 data:double +lbl_801F2EA8 = .sdata2:0x801F2EA8; // type:object size:0x8 data:double +lbl_801F2EB0 = .sdata2:0x801F2EB0; // type:object size:0x8 data:double +lbl_801F2EB8 = .sdata2:0x801F2EB8; // type:object size:0x4 data:float +lbl_801F2EBC = .sdata2:0x801F2EBC; // type:object size:0x4 data:float +lbl_801F2EC0 = .sdata2:0x801F2EC0; // type:object size:0x4 data:float +lbl_801F2EC4 = .sdata2:0x801F2EC4; // type:object size:0x4 data:float +lbl_801F2EC8 = .sdata2:0x801F2EC8; // type:object size:0x4 data:float +lbl_801F2ECC = .sdata2:0x801F2ECC; // type:object size:0x4 data:float +lbl_801F2ED0 = .sdata2:0x801F2ED0; // type:object size:0x4 data:float +lbl_801F2ED8 = .sdata2:0x801F2ED8; // type:object size:0x8 data:double +lbl_801F2EE0 = .sdata2:0x801F2EE0; // type:object size:0x8 data:double +lbl_801F2EE8 = .sdata2:0x801F2EE8; // type:object size:0x8 data:double +lbl_801F2EF0 = .sdata2:0x801F2EF0; // type:object size:0x4 data:float +lbl_801F2EF4 = .sdata2:0x801F2EF4; // type:object size:0x4 data:float +lbl_801F2EF8 = .sdata2:0x801F2EF8; // type:object size:0x4 data:float +lbl_801F2EFC = .sdata2:0x801F2EFC; // type:object size:0x4 data:float +lbl_801F2F00 = .sdata2:0x801F2F00; // type:object size:0x4 data:float +lbl_801F2F04 = .sdata2:0x801F2F04; // type:object size:0x4 data:float +lbl_801F2F08 = .sdata2:0x801F2F08; // type:object size:0x4 data:float +lbl_801F2F0C = .sdata2:0x801F2F0C; // type:object size:0x4 data:float +lbl_801F2F10 = .sdata2:0x801F2F10; // type:object size:0x4 data:float +lbl_801F2F14 = .sdata2:0x801F2F14; // type:object size:0x4 data:float +lbl_801F2F18 = .sdata2:0x801F2F18; // type:object size:0x8 data:double +lbl_801F2F20 = .sdata2:0x801F2F20; // type:object size:0x4 data:float +lbl_801F2F24 = .sdata2:0x801F2F24; // type:object size:0x4 data:float +lbl_801F2F28 = .sdata2:0x801F2F28; // type:object size:0x4 data:float +lbl_801F2F2C = .sdata2:0x801F2F2C; // type:object size:0x4 data:float +lbl_801F2F30 = .sdata2:0x801F2F30; // type:object size:0x4 data:float +lbl_801F2F34 = .sdata2:0x801F2F34; // type:object size:0x4 data:float +lbl_801F2F38 = .sdata2:0x801F2F38; // type:object size:0x4 data:float +lbl_801F2F3C = .sdata2:0x801F2F3C; // type:object size:0x4 data:float +lbl_801F2F40 = .sdata2:0x801F2F40; // type:object size:0x4 data:float +lbl_801F2F44 = .sdata2:0x801F2F44; // type:object size:0x4 data:float +lbl_801F2F48 = .sdata2:0x801F2F48; // type:object size:0x4 data:float +lbl_801F2F4C = .sdata2:0x801F2F4C; // type:object size:0x4 data:float +lbl_801F2F50 = .sdata2:0x801F2F50; // type:object size:0x4 data:float +lbl_801F2F54 = .sdata2:0x801F2F54; // type:object size:0x4 data:float +lbl_801F2F58 = .sdata2:0x801F2F58; // type:object size:0x4 data:float +lbl_801F2F5C = .sdata2:0x801F2F5C; // type:object size:0x4 data:float +lbl_801F2F60 = .sdata2:0x801F2F60; // type:object size:0x4 data:float +lbl_801F2F64 = .sdata2:0x801F2F64; // type:object size:0x4 data:float +lbl_801F2F68 = .sdata2:0x801F2F68; // type:object size:0x4 data:float +lbl_801F2F6C = .sdata2:0x801F2F6C; // type:object size:0x4 data:float +lbl_801F2F70 = .sdata2:0x801F2F70; // type:object size:0x4 data:float +lbl_801F2F74 = .sdata2:0x801F2F74; // type:object size:0x4 data:float +lbl_801F2F78 = .sdata2:0x801F2F78; // type:object size:0x4 data:float +lbl_801F2F7C = .sdata2:0x801F2F7C; // type:object size:0x4 data:float +lbl_801F2F80 = .sdata2:0x801F2F80; // type:object size:0x8 data:double +lbl_801F2F88 = .sdata2:0x801F2F88; // type:object size:0x8 data:double +lbl_801F2F90 = .sdata2:0x801F2F90; // type:object size:0x4 data:float +lbl_801F2F94 = .sdata2:0x801F2F94; // type:object size:0x4 data:float +lbl_801F2F98 = .sdata2:0x801F2F98; // type:object size:0x4 data:float +lbl_801F2F9C = .sdata2:0x801F2F9C; // type:object size:0x4 data:float +lbl_801F2FA0 = .sdata2:0x801F2FA0; // type:object size:0x4 data:float +lbl_801F2FA8 = .sdata2:0x801F2FA8; // type:object size:0x8 data:double +lbl_801F2FB0 = .sdata2:0x801F2FB0; // type:object size:0x4 data:float +lbl_801F2FB4 = .sdata2:0x801F2FB4; // type:object size:0x4 data:float +lbl_801F2FB8 = .sdata2:0x801F2FB8; // type:object size:0x4 data:float +lbl_801F2FBC = .sdata2:0x801F2FBC; // type:object size:0x4 data:float +lbl_801F2FC0 = .sdata2:0x801F2FC0; // type:object size:0x4 data:float +lbl_801F2FC4 = .sdata2:0x801F2FC4; // type:object size:0x4 data:float +lbl_801F2FC8 = .sdata2:0x801F2FC8; // type:object size:0x4 data:float +lbl_801F2FCC = .sdata2:0x801F2FCC; // type:object size:0x4 data:float +lbl_801F2FD0 = .sdata2:0x801F2FD0; // type:object size:0x4 data:float +lbl_801F2FD4 = .sdata2:0x801F2FD4; // type:object size:0x4 data:float +lbl_801F2FD8 = .sdata2:0x801F2FD8; // type:object size:0x4 data:float +lbl_801F2FE0 = .sdata2:0x801F2FE0; // type:object size:0x8 data:double +lbl_801F2FE8 = .sdata2:0x801F2FE8; // type:object size:0x4 data:float +lbl_801F2FEC = .sdata2:0x801F2FEC; // type:object size:0x4 data:float +lbl_801F2FF0 = .sdata2:0x801F2FF0; // type:object size:0x4 data:float +lbl_801F2FF4 = .sdata2:0x801F2FF4; // type:object size:0x4 data:float +lbl_801F2FF8 = .sdata2:0x801F2FF8; // type:object size:0x4 data:float +lbl_801F2FFC = .sdata2:0x801F2FFC; // type:object size:0x4 data:float +lbl_801F3000 = .sdata2:0x801F3000; // type:object size:0x4 data:float +lbl_801F3004 = .sdata2:0x801F3004; // type:object size:0x4 data:float +lbl_801F3008 = .sdata2:0x801F3008; // type:object size:0x4 data:float +lbl_801F300C = .sdata2:0x801F300C; // type:object size:0x4 data:float +lbl_801F3010 = .sdata2:0x801F3010; // type:object size:0x4 data:float +lbl_801F3014 = .sdata2:0x801F3014; // type:object size:0x4 data:float +lbl_801F3018 = .sdata2:0x801F3018; // type:object size:0x4 data:float +lbl_801F301C = .sdata2:0x801F301C; // type:object size:0x4 data:float +lbl_801F3020 = .sdata2:0x801F3020; // type:object size:0x4 data:float +lbl_801F3024 = .sdata2:0x801F3024; // type:object size:0x4 data:float +lbl_801F3028 = .sdata2:0x801F3028; // type:object size:0x4 data:float +lbl_801F302C = .sdata2:0x801F302C; // type:object size:0x4 data:float +lbl_801F3030 = .sdata2:0x801F3030; // type:object size:0x4 data:float +lbl_801F3038 = .sdata2:0x801F3038; // type:object size:0x8 data:double +lbl_801F3040 = .sdata2:0x801F3040; // type:object size:0x4 data:float +lbl_801F3048 = .sdata2:0x801F3048; // type:object size:0x8 data:double +lbl_801F3050 = .sdata2:0x801F3050; // type:object size:0x4 data:float +lbl_801F3054 = .sdata2:0x801F3054; // type:object size:0x4 data:float +lbl_801F3058 = .sdata2:0x801F3058; // type:object size:0x4 data:float +lbl_801F305C = .sdata2:0x801F305C; // type:object size:0x4 data:float +lbl_801F3060 = .sdata2:0x801F3060; // type:object size:0x4 data:float +lbl_801F3068 = .sdata2:0x801F3068; // type:object size:0x8 data:double +lbl_801F3070 = .sdata2:0x801F3070; // type:object size:0x4 data:float +lbl_801F3074 = .sdata2:0x801F3074; // type:object size:0x4 data:float +lbl_801F3078 = .sdata2:0x801F3078; // type:object size:0x4 data:float +lbl_801F307C = .sdata2:0x801F307C; // type:object size:0x4 data:float +lbl_801F3080 = .sdata2:0x801F3080; // type:object size:0x4 data:float +lbl_801F3084 = .sdata2:0x801F3084; // type:object size:0x4 data:float +lbl_801F3088 = .sdata2:0x801F3088; // type:object size:0x4 data:float +lbl_801F308C = .sdata2:0x801F308C; // type:object size:0x4 data:float +lbl_801F3090 = .sdata2:0x801F3090; // type:object size:0x4 data:float +lbl_801F3094 = .sdata2:0x801F3094; // type:object size:0x4 data:float +lbl_801F3098 = .sdata2:0x801F3098; // type:object size:0x4 data:float +lbl_801F309C = .sdata2:0x801F309C; // type:object size:0x4 data:float +lbl_801F30A0 = .sdata2:0x801F30A0; // type:object size:0x1 data:byte +lbl_801F30A1 = .sdata2:0x801F30A1; // type:object size:0x1 data:byte +lbl_801F30A2 = .sdata2:0x801F30A2; // type:object size:0x1 data:byte +lbl_801F30A3 = .sdata2:0x801F30A3; // type:object size:0x1 data:byte +lbl_801F30A4 = .sdata2:0x801F30A4; // type:object size:0x4 data:float +lbl_801F30A8 = .sdata2:0x801F30A8; // type:object size:0x4 data:float +lbl_801F30AC = .sdata2:0x801F30AC; // type:object size:0x4 data:float +lbl_801F30B0 = .sdata2:0x801F30B0; // type:object size:0x4 data:float +lbl_801F30B4 = .sdata2:0x801F30B4; // type:object size:0x4 data:float +lbl_801F30B8 = .sdata2:0x801F30B8; // type:object size:0x8 data:double +lbl_801F30C0 = .sdata2:0x801F30C0; // type:object size:0x8 data:double +lbl_801F30C8 = .sdata2:0x801F30C8; // type:object size:0x4 data:float +lbl_801F30CC = .sdata2:0x801F30CC; // type:object size:0x4 data:float +lbl_801F30D0 = .sdata2:0x801F30D0; // type:object size:0x4 data:float +lbl_801F30D4 = .sdata2:0x801F30D4; // type:object size:0x4 data:float +lbl_801F30D8 = .sdata2:0x801F30D8; // type:object size:0x4 data:float +lbl_801F30DC = .sdata2:0x801F30DC; // type:object size:0x4 data:float +lbl_801F30E0 = .sdata2:0x801F30E0; // type:object size:0x8 data:double +lbl_801F30E8 = .sdata2:0x801F30E8; // type:object size:0x4 data:float +lbl_801F30EC = .sdata2:0x801F30EC; // type:object size:0x4 data:float +lbl_801F30F0 = .sdata2:0x801F30F0; // type:object size:0x8 data:double +lbl_801F30F8 = .sdata2:0x801F30F8; // type:object size:0x8 data:float +lbl_801F3100 = .sdata2:0x801F3100; // type:object size:0x4 data:float +lbl_801F3104 = .sdata2:0x801F3104; // type:object size:0x4 data:float +lbl_801F3108 = .sdata2:0x801F3108; // type:object size:0x4 data:float +lbl_801F310C = .sdata2:0x801F310C; // type:object size:0x4 data:float +lbl_801F3110 = .sdata2:0x801F3110; // type:object size:0x4 data:float +lbl_801F3114 = .sdata2:0x801F3114; // type:object size:0x4 data:float +lbl_801F3118 = .sdata2:0x801F3118; // type:object size:0x4 data:float +lbl_801F311C = .sdata2:0x801F311C; // type:object size:0x4 data:float +lbl_801F3120 = .sdata2:0x801F3120; // type:object size:0x4 data:float +lbl_801F3124 = .sdata2:0x801F3124; // type:object size:0x4 data:float +lbl_801F3128 = .sdata2:0x801F3128; // type:object size:0x2 data:2byte +lbl_801F312A = .sdata2:0x801F312A; // type:object size:0x2 data:2byte +lbl_801F312C = .sdata2:0x801F312C; // type:object size:0x2 data:2byte +lbl_801F3130 = .sdata2:0x801F3130; // type:object size:0x4 data:float +lbl_801F3134 = .sdata2:0x801F3134; // type:object size:0x4 data:float +lbl_801F3138 = .sdata2:0x801F3138; // type:object size:0x4 data:float +lbl_801F313C = .sdata2:0x801F313C; // type:object size:0x4 data:float +lbl_801F3140 = .sdata2:0x801F3140; // type:object size:0x4 data:float +lbl_801F3144 = .sdata2:0x801F3144; // type:object size:0x4 data:float +lbl_801F3148 = .sdata2:0x801F3148; // type:object size:0x4 data:float +lbl_801F314C = .sdata2:0x801F314C; // type:object size:0x4 data:float +lbl_801F3150 = .sdata2:0x801F3150; // type:object size:0x8 data:double +lbl_801F3158 = .sdata2:0x801F3158; // type:object size:0x8 data:double +lbl_801F3160 = .sdata2:0x801F3160; // type:object size:0x8 data:double +lbl_801F3168 = .sdata2:0x801F3168; // type:object size:0x4 data:float +lbl_801F316C = .sdata2:0x801F316C; // type:object size:0x4 data:float +lbl_801F3170 = .sdata2:0x801F3170; // type:object size:0x4 data:float +lbl_801F3174 = .sdata2:0x801F3174; // type:object size:0x4 data:float +lbl_801F3178 = .sdata2:0x801F3178; // type:object size:0x4 data:float +lbl_801F317C = .sdata2:0x801F317C; // type:object size:0x4 data:float +lbl_801F3180 = .sdata2:0x801F3180; // type:object size:0x4 data:float +lbl_801F3184 = .sdata2:0x801F3184; // type:object size:0x4 data:float +lbl_801F3188 = .sdata2:0x801F3188; // type:object size:0x4 data:float +lbl_801F3190 = .sdata2:0x801F3190; // type:object size:0x8 data:double +lbl_801F3198 = .sdata2:0x801F3198; // type:object size:0x1 data:byte +lbl_801F3199 = .sdata2:0x801F3199; // type:object size:0x1 data:byte +lbl_801F319A = .sdata2:0x801F319A; // type:object size:0x1 data:byte +lbl_801F319C = .sdata2:0x801F319C; // type:object size:0x4 data:float +lbl_801F31A0 = .sdata2:0x801F31A0; // type:object size:0x8 data:double +lbl_801F31A8 = .sdata2:0x801F31A8; // type:object size:0x8 data:float +battleCoinTbl = .sdata2:0x801F31B0; // type:object size:0x5 scope:local +lbl_801F31B8 = .sdata2:0x801F31B8; // type:object size:0x4 data:float +lbl_801F31BC = .sdata2:0x801F31BC; // type:object size:0x4 data:float +lbl_801F31C0 = .sdata2:0x801F31C0; // type:object size:0x4 data:float +lbl_801F31C4 = .sdata2:0x801F31C4; // type:object size:0x4 data:float +lbl_801F31C8 = .sdata2:0x801F31C8; // type:object size:0x4 data:float +lbl_801F31CC = .sdata2:0x801F31CC; // type:object size:0x4 data:float +lbl_801F31D0 = .sdata2:0x801F31D0; // type:object size:0x4 data:float +lbl_801F31D4 = .sdata2:0x801F31D4; // type:object size:0x4 data:float +lbl_801F31D8 = .sdata2:0x801F31D8; // type:object size:0x4 data:float +lbl_801F31DC = .sdata2:0x801F31DC; // type:object size:0x4 data:float +lbl_801F31E0 = .sdata2:0x801F31E0; // type:object size:0x4 data:float +lbl_801F31E4 = .sdata2:0x801F31E4; // type:object size:0x4 data:float +lbl_801F31E8 = .sdata2:0x801F31E8; // type:object size:0x4 data:float +lbl_801F31EC = .sdata2:0x801F31EC; // type:object size:0x4 data:float +lbl_801F31F0 = .sdata2:0x801F31F0; // type:object size:0x4 data:float +lbl_801F31F4 = .sdata2:0x801F31F4; // type:object size:0x4 data:float +lbl_801F31F8 = .sdata2:0x801F31F8; // type:object size:0x4 data:float +lbl_801F31FC = .sdata2:0x801F31FC; // type:object size:0x4 data:float +lbl_801F3200 = .sdata2:0x801F3200; // type:object size:0x4 data:float +lbl_801F3204 = .sdata2:0x801F3204; // type:object size:0x4 data:float +lbl_801F3208 = .sdata2:0x801F3208; // type:object size:0x4 data:float +lbl_801F3210 = .sdata2:0x801F3210; // type:object size:0x8 data:double +lbl_801F3218 = .sdata2:0x801F3218; // type:object size:0x8 data:double +lbl_801F3220 = .sdata2:0x801F3220; // type:object size:0x4 data:float +lbl_801F3224 = .sdata2:0x801F3224; // type:object size:0x4 data:float +lbl_801F3228 = .sdata2:0x801F3228; // type:object size:0x4 data:float +lbl_801F322C = .sdata2:0x801F322C; // type:object size:0x4 data:float +lbl_801F3230 = .sdata2:0x801F3230; // type:object size:0x4 data:float +lbl_801F3234 = .sdata2:0x801F3234; // type:object size:0x4 data:float +lbl_801F3238 = .sdata2:0x801F3238; // type:object size:0x4 data:float +lbl_801F323C = .sdata2:0x801F323C; // type:object size:0x4 data:float +lbl_801F3240 = .sdata2:0x801F3240; // type:object size:0x8 data:double +lbl_801F3248 = .sdata2:0x801F3248; // type:object size:0x4 data:float +lbl_801F3250 = .sdata2:0x801F3250; // type:object size:0x8 data:double +lbl_801F3258 = .sdata2:0x801F3258; // type:object size:0x4 data:float +lbl_801F325C = .sdata2:0x801F325C; // type:object size:0x4 data:float +lbl_801F3260 = .sdata2:0x801F3260; // type:object size:0x1 data:byte +lbl_801F3261 = .sdata2:0x801F3261; // type:object size:0x1 data:byte +lbl_801F3262 = .sdata2:0x801F3262; // type:object size:0x1 data:byte +lbl_801F3263 = .sdata2:0x801F3263; // type:object size:0x1 data:byte +lbl_801F3264 = .sdata2:0x801F3264; // type:object size:0x1 data:byte +lbl_801F3268 = .sdata2:0x801F3268; // type:object size:0x4 data:float +lbl_801F326C = .sdata2:0x801F326C; // type:object size:0x4 data:float +lbl_801F3270 = .sdata2:0x801F3270; // type:object size:0x4 data:float +lbl_801F3274 = .sdata2:0x801F3274; // type:object size:0x4 data:float +lbl_801F3278 = .sdata2:0x801F3278; // type:object size:0x4 data:float +lbl_801F327C = .sdata2:0x801F327C; // type:object size:0x4 data:float +lbl_801F3280 = .sdata2:0x801F3280; // type:object size:0x4 data:float +lbl_801F3284 = .sdata2:0x801F3284; // type:object size:0x4 data:float +lbl_801F3288 = .sdata2:0x801F3288; // type:object size:0x4 data:float +lbl_801F328C = .sdata2:0x801F328C; // type:object size:0x4 data:float +lbl_801F3290 = .sdata2:0x801F3290; // type:object size:0x4 data:float +lbl_801F3294 = .sdata2:0x801F3294; // type:object size:0x4 data:float +lbl_801F3298 = .sdata2:0x801F3298; // type:object size:0x4 data:float +lbl_801F329C = .sdata2:0x801F329C; // type:object size:0x4 data:float +lbl_801F32A0 = .sdata2:0x801F32A0; // type:object size:0x8 data:double +lbl_801F32A8 = .sdata2:0x801F32A8; // type:object size:0x8 data:double +lbl_801F32B0 = .sdata2:0x801F32B0; // type:object size:0x4 data:float +lbl_801F32B8 = .sdata2:0x801F32B8; // type:object size:0x8 data:double +lbl_801F32C0 = .sdata2:0x801F32C0; // type:object size:0x8 data:double +lbl_801F32C8 = .sdata2:0x801F32C8; // type:object size:0x8 data:double +lbl_801F32D0 = .sdata2:0x801F32D0; // type:object size:0x8 data:double +lbl_801F32D8 = .sdata2:0x801F32D8; // type:object size:0x4 data:float +lbl_801F32E0 = .sdata2:0x801F32E0; // type:object size:0x8 data:double +lbl_801F32E8 = .sdata2:0x801F32E8; // type:object size:0x4 data:float +lbl_801F32EC = .sdata2:0x801F32EC; // type:object size:0x4 data:float +lbl_801F32F0 = .sdata2:0x801F32F0; // type:object size:0x4 data:float +lbl_801F32F8 = .sdata2:0x801F32F8; // type:object size:0x8 data:double +lbl_801F3300 = .sdata2:0x801F3300; // type:object size:0x8 data:double +lbl_801F3308 = .sdata2:0x801F3308; // type:object size:0x4 data:float +lbl_801F3310 = .sdata2:0x801F3310; // type:object size:0x8 data:double +lbl_801F3318 = .sdata2:0x801F3318; // type:object size:0x4 data:float +lbl_801F331C = .sdata2:0x801F331C; // type:object size:0x4 data:float +lbl_801F3320 = .sdata2:0x801F3320; // type:object size:0x4 data:float +lbl_801F3324 = .sdata2:0x801F3324; // type:object size:0x4 data:float +lbl_801F3328 = .sdata2:0x801F3328; // type:object size:0x8 data:double +lbl_801F3330 = .sdata2:0x801F3330; // type:object size:0x8 data:double +lbl_801F3338 = .sdata2:0x801F3338; // type:object size:0x4 data:float +lbl_801F333C = .sdata2:0x801F333C; // type:object size:0x4 data:float +lbl_801F3340 = .sdata2:0x801F3340; // type:object size:0x4 data:float +lbl_801F3348 = .sdata2:0x801F3348; // type:object size:0x8 data:double +lbl_801F3350 = .sdata2:0x801F3350; // type:object size:0x4 data:float +lbl_801F3354 = .sdata2:0x801F3354; // type:object size:0x4 data:float +lbl_801F3358 = .sdata2:0x801F3358; // type:object size:0x4 data:float +lbl_801F335C = .sdata2:0x801F335C; // type:object size:0x4 data:float +lbl_801F3360 = .sdata2:0x801F3360; // type:object size:0x8 data:double +lbl_801F3368 = .sdata2:0x801F3368; // type:object size:0x4 data:float +lbl_801F336C = .sdata2:0x801F336C; // type:object size:0x4 data:float +lbl_801F3370 = .sdata2:0x801F3370; // type:object size:0x4 data:float +lbl_801F3374 = .sdata2:0x801F3374; // type:object size:0x4 data:float +lbl_801F3378 = .sdata2:0x801F3378; // type:object size:0x4 data:float +lbl_801F337C = .sdata2:0x801F337C; // type:object size:0x4 data:float +lbl_801F3380 = .sdata2:0x801F3380; // type:object size:0x4 data:float +lbl_801F3384 = .sdata2:0x801F3384; // type:object size:0x4 data:float +lbl_801F3388 = .sdata2:0x801F3388; // type:object size:0x4 data:float +lbl_801F338C = .sdata2:0x801F338C; // type:object size:0x4 data:float +lbl_801F3390 = .sdata2:0x801F3390; // type:object size:0x4 data:float +lbl_801F3394 = .sdata2:0x801F3394; // type:object size:0x1 data:byte +lbl_801F3395 = .sdata2:0x801F3395; // type:object size:0x1 data:byte +lbl_801F3398 = .sdata2:0x801F3398; // type:object size:0x4 data:float +lbl_801F33A0 = .sdata2:0x801F33A0; // type:object size:0x8 data:double +lbl_801F33A8 = .sdata2:0x801F33A8; // type:object size:0x8 data:double +lbl_801F33B0 = .sdata2:0x801F33B0; // type:object size:0x8 data:double +lbl_801F33B8 = .sdata2:0x801F33B8; // type:object size:0x8 data:double +lbl_801F33C0 = .sdata2:0x801F33C0; // type:object size:0x4 data:float +lbl_801F33C4 = .sdata2:0x801F33C4; // type:object size:0x4 data:float +lbl_801F33C8 = .sdata2:0x801F33C8; // type:object size:0x8 data:double +lbl_801F33D0 = .sdata2:0x801F33D0; // type:object size:0x4 data:float +lbl_801F33D4 = .sdata2:0x801F33D4; // type:object size:0x4 data:float +lbl_801F33D8 = .sdata2:0x801F33D8; // type:object size:0x8 data:double +lbl_801F33E0 = .sdata2:0x801F33E0; // type:object size:0x4 data:float +lbl_801F33E4 = .sdata2:0x801F33E4; // type:object size:0x2 data:2byte +lbl_801F33E6 = .sdata2:0x801F33E6; // type:object size:0x2 data:2byte +lbl_801F33E8 = .sdata2:0x801F33E8; // type:object size:0x2 data:2byte +lbl_801F33EC = .sdata2:0x801F33EC; // type:object size:0x4 data:float +lbl_801F33F0 = .sdata2:0x801F33F0; // type:object size:0x4 data:float +lbl_801F33F4 = .sdata2:0x801F33F4; // type:object size:0x4 data:float +lbl_801F33F8 = .sdata2:0x801F33F8; // type:object size:0x2 data:2byte +lbl_801F33FA = .sdata2:0x801F33FA; // type:object size:0x2 data:2byte +lbl_801F33FC = .sdata2:0x801F33FC; // type:object size:0x2 data:2byte +lbl_801F3400 = .sdata2:0x801F3400; // type:object size:0x4 data:float +lbl_801F3404 = .sdata2:0x801F3404; // type:object size:0x4 data:float +lbl_801F3408 = .sdata2:0x801F3408; // type:object size:0x4 data:float +lbl_801F340C = .sdata2:0x801F340C; // type:object size:0x4 data:float +lbl_801F3410 = .sdata2:0x801F3410; // type:object size:0x4 data:float +lbl_801F3414 = .sdata2:0x801F3414; // type:object size:0x4 data:float +lbl_801F3418 = .sdata2:0x801F3418; // type:object size:0x4 data:float +lbl_801F3420 = .sdata2:0x801F3420; // type:object size:0x8 data:double +lbl_801F3428 = .sdata2:0x801F3428; // type:object size:0x4 data:float +lbl_801F342C = .sdata2:0x801F342C; // type:object size:0x4 data:float +lbl_801F3430 = .sdata2:0x801F3430; // type:object size:0x4 data:float +lbl_801F3434 = .sdata2:0x801F3434; // type:object size:0x4 data:float +lbl_801F3438 = .sdata2:0x801F3438; // type:object size:0x4 data:float +lbl_801F343C = .sdata2:0x801F343C; // type:object size:0x4 data:float +lbl_801F3440 = .sdata2:0x801F3440; // type:object size:0x4 data:float +lbl_801F3448 = .sdata2:0x801F3448; // type:object size:0x8 data:double +lbl_801F3450 = .sdata2:0x801F3450; // type:object size:0x8 data:double +lbl_801F3458 = .sdata2:0x801F3458; // type:object size:0x8 data:double +lbl_801F3460 = .sdata2:0x801F3460; // type:object size:0x4 data:float +lbl_801F3464 = .sdata2:0x801F3464; // type:object size:0x4 data:float +lbl_801F3468 = .sdata2:0x801F3468; // type:object size:0x4 data:float +lbl_801F346C = .sdata2:0x801F346C; // type:object size:0x4 data:float +lbl_801F3470 = .sdata2:0x801F3470; // type:object size:0x4 data:float +lbl_801F3474 = .sdata2:0x801F3474; // type:object size:0x4 data:float +lbl_801F3478 = .sdata2:0x801F3478; // type:object size:0x4 data:float +lbl_801F347C = .sdata2:0x801F347C; // type:object size:0x4 data:float +lbl_801F3480 = .sdata2:0x801F3480; // type:object size:0x4 data:float +lbl_801F3484 = .sdata2:0x801F3484; // type:object size:0x4 data:float +lbl_801F3488 = .sdata2:0x801F3488; // type:object size:0x4 data:float +lbl_801F348C = .sdata2:0x801F348C; // type:object size:0x4 data:float +lbl_801F3490 = .sdata2:0x801F3490; // type:object size:0x4 data:float +lbl_801F3494 = .sdata2:0x801F3494; // type:object size:0x4 data:float +lbl_801F3498 = .sdata2:0x801F3498; // type:object size:0x4 data:float +lbl_801F349C = .sdata2:0x801F349C; // type:object size:0x4 data:float +lbl_801F34A0 = .sdata2:0x801F34A0; // type:object size:0x4 data:float +lbl_801F34A4 = .sdata2:0x801F34A4; // type:object size:0x4 data:float +lbl_801F34A8 = .sdata2:0x801F34A8; // type:object size:0x4 data:float +lbl_801F34AC = .sdata2:0x801F34AC; // type:object size:0x4 data:float +lbl_801F34B0 = .sdata2:0x801F34B0; // type:object size:0x8 data:double +lbl_801F34B8 = .sdata2:0x801F34B8; // type:object size:0x8 data:double +lbl_801F34C0 = .sdata2:0x801F34C0; // type:object size:0x4 data:float +lbl_801F34C8 = .sdata2:0x801F34C8; // type:object size:0x8 data:double +lbl_801F34D0 = .sdata2:0x801F34D0; // type:object size:0x8 data:double +lbl_801F34D8 = .sdata2:0x801F34D8; // type:object size:0x4 data:float +lbl_801F34DC = .sdata2:0x801F34DC; // type:object size:0x4 data:float +lbl_801F34E0 = .sdata2:0x801F34E0; // type:object size:0x4 data:float +lbl_801F34E4 = .sdata2:0x801F34E4; // type:object size:0x4 data:float +lbl_801F34E8 = .sdata2:0x801F34E8; // type:object size:0x4 data:float +lbl_801F34EC = .sdata2:0x801F34EC; // type:object size:0x4 data:float +lbl_801F34F0 = .sdata2:0x801F34F0; // type:object size:0x4 data:float +lbl_801F34F4 = .sdata2:0x801F34F4; // type:object size:0x4 data:float +lbl_801F34F8 = .sdata2:0x801F34F8; // type:object size:0x4 data:float +lbl_801F34FC = .sdata2:0x801F34FC; // type:object size:0x4 data:float +lbl_801F3500 = .sdata2:0x801F3500; // type:object size:0x4 data:float +lbl_801F3504 = .sdata2:0x801F3504; // type:object size:0x4 data:float +lbl_801F3508 = .sdata2:0x801F3508; // type:object size:0x4 data:float +lbl_801F350C = .sdata2:0x801F350C; // type:object size:0x4 data:float +lbl_801F3510 = .sdata2:0x801F3510; // type:object size:0x4 data:float +lbl_801F3514 = .sdata2:0x801F3514; // type:object size:0x4 data:float +lbl_801F3518 = .sdata2:0x801F3518; // type:object size:0x4 data:float +lbl_801F351C = .sdata2:0x801F351C; // type:object size:0x4 data:float +lbl_801F3520 = .sdata2:0x801F3520; // type:object size:0x4 data:float +lbl_801F3528 = .sdata2:0x801F3528; // type:object size:0x8 data:double +lbl_801F3530 = .sdata2:0x801F3530; // type:object size:0x8 data:double +lbl_801F3538 = .sdata2:0x801F3538; // type:object size:0x8 data:double +lbl_801F3540 = .sdata2:0x801F3540; // type:object size:0x8 data:double +lbl_801F3548 = .sdata2:0x801F3548; // type:object size:0x4 data:float +lbl_801F354C = .sdata2:0x801F354C; // type:object size:0x4 data:float +lbl_801F3550 = .sdata2:0x801F3550; // type:object size:0x4 data:float +lbl_801F3554 = .sdata2:0x801F3554; // type:object size:0x4 data:float +lbl_801F3558 = .sdata2:0x801F3558; // type:object size:0x4 data:float +lbl_801F355C = .sdata2:0x801F355C; // type:object size:0x4 data:float +lbl_801F3560 = .sdata2:0x801F3560; // type:object size:0x4 data:float +lbl_801F3564 = .sdata2:0x801F3564; // type:object size:0x4 data:float +lbl_801F3568 = .sdata2:0x801F3568; // type:object size:0x4 data:float +lbl_801F356C = .sdata2:0x801F356C; // type:object size:0x4 data:float +lbl_801F3570 = .sdata2:0x801F3570; // type:object size:0x4 data:float +lbl_801F3574 = .sdata2:0x801F3574; // type:object size:0x4 data:float +lbl_801F3578 = .sdata2:0x801F3578; // type:object size:0x4 data:float +lbl_801F357C = .sdata2:0x801F357C; // type:object size:0x4 data:float +lbl_801F3580 = .sdata2:0x801F3580; // type:object size:0x4 data:float +lbl_801F3584 = .sdata2:0x801F3584; // type:object size:0x4 data:float +lbl_801F3588 = .sdata2:0x801F3588; // type:object size:0x4 data:float +lbl_801F358C = .sdata2:0x801F358C; // type:object size:0x4 data:float +lbl_801F3590 = .sdata2:0x801F3590; // type:object size:0x4 data:float +lbl_801F3594 = .sdata2:0x801F3594; // type:object size:0x4 data:float +lbl_801F3598 = .sdata2:0x801F3598; // type:object size:0x4 data:float +lbl_801F359C = .sdata2:0x801F359C; // type:object size:0x4 data:float +lbl_801F35A0 = .sdata2:0x801F35A0; // type:object size:0x8 data:double +lbl_801F35A8 = .sdata2:0x801F35A8; // type:object size:0x8 data:double +lbl_801F35B0 = .sdata2:0x801F35B0; // type:object size:0x4 data:float +lbl_801F35B4 = .sdata2:0x801F35B4; // type:object size:0x4 data:float +lbl_801F35B8 = .sdata2:0x801F35B8; // type:object size:0x8 data:double +lbl_801F35C0 = .sdata2:0x801F35C0; // type:object size:0x4 data:float +lbl_801F35C4 = .sdata2:0x801F35C4; // type:object size:0x4 data:float +lbl_801F35C8 = .sdata2:0x801F35C8; // type:object size:0x4 data:float +lbl_801F35CC = .sdata2:0x801F35CC; // type:object size:0x4 data:float +lbl_801F35D0 = .sdata2:0x801F35D0; // type:object size:0x4 data:float +lbl_801F35D4 = .sdata2:0x801F35D4; // type:object size:0x4 data:float +lbl_801F35D8 = .sdata2:0x801F35D8; // type:object size:0x4 data:float +lbl_801F35DC = .sdata2:0x801F35DC; // type:object size:0x4 data:float +lbl_801F35E0 = .sdata2:0x801F35E0; // type:object size:0x4 data:float +lbl_801F35E4 = .sdata2:0x801F35E4; // type:object size:0x4 data:float +lbl_801F35E8 = .sdata2:0x801F35E8; // type:object size:0x4 data:float +lbl_801F35EC = .sdata2:0x801F35EC; // type:object size:0x4 data:float +lbl_801F35F0 = .sdata2:0x801F35F0; // type:object size:0x4 data:float +lbl_801F35F4 = .sdata2:0x801F35F4; // type:object size:0x4 data:float +lbl_801F35F8 = .sdata2:0x801F35F8; // type:object size:0x4 data:float +lbl_801F35FC = .sdata2:0x801F35FC; // type:object size:0x4 data:float +lbl_801F3600 = .sdata2:0x801F3600; // type:object size:0x4 data:float +lbl_801F3604 = .sdata2:0x801F3604; // type:object size:0x4 data:float +lbl_801F3608 = .sdata2:0x801F3608; // type:object size:0x4 data:float +lbl_801F360C = .sdata2:0x801F360C; // type:object size:0x4 data:float +lbl_801F3610 = .sdata2:0x801F3610; // type:object size:0x4 data:float +lbl_801F3618 = .sdata2:0x801F3618; // type:object size:0x8 data:double +lbl_801F3620 = .sdata2:0x801F3620; // type:object size:0x8 data:double +lbl_801F3628 = .sdata2:0x801F3628; // type:object size:0x8 data:double +lbl_801F3630 = .sdata2:0x801F3630; // type:object size:0x8 data:double +lbl_801F3638 = .sdata2:0x801F3638; // type:object size:0x4 data:float +lbl_801F363C = .sdata2:0x801F363C; // type:object size:0x4 data:float +lbl_801F3640 = .sdata2:0x801F3640; // type:object size:0x4 data:float +lbl_801F3644 = .sdata2:0x801F3644; // type:object size:0x4 data:float +lbl_801F3648 = .sdata2:0x801F3648; // type:object size:0x4 data:float +lbl_801F364C = .sdata2:0x801F364C; // type:object size:0x4 data:float +lbl_801F3650 = .sdata2:0x801F3650; // type:object size:0x4 data:float +lbl_801F3654 = .sdata2:0x801F3654; // type:object size:0x4 data:float +lbl_801F3658 = .sdata2:0x801F3658; // type:object size:0x4 data:float +lbl_801F365C = .sdata2:0x801F365C; // type:object size:0x1 data:byte +lbl_801F365D = .sdata2:0x801F365D; // type:object size:0x1 data:byte +lbl_801F365E = .sdata2:0x801F365E; // type:object size:0x1 data:byte +lbl_801F365F = .sdata2:0x801F365F; // type:object size:0x1 data:byte +lbl_801F3660 = .sdata2:0x801F3660; // type:object size:0x8 data:float +lbl_801F3668 = .sdata2:0x801F3668; // type:object size:0x4 data:float +lbl_801F366C = .sdata2:0x801F366C; // type:object size:0x4 data:float +lbl_801F3670 = .sdata2:0x801F3670; // type:object size:0x4 data:float +lbl_801F3674 = .sdata2:0x801F3674; // type:object size:0x4 data:float +lbl_801F3678 = .sdata2:0x801F3678; // type:object size:0x4 data:float +lbl_801F367C = .sdata2:0x801F367C; // type:object size:0x4 data:float +lbl_801F3680 = .sdata2:0x801F3680; // type:object size:0x4 data:float +lbl_801F3684 = .sdata2:0x801F3684; // type:object size:0x4 data:float +lbl_801F3688 = .sdata2:0x801F3688; // type:object size:0x4 data:float +lbl_801F368C = .sdata2:0x801F368C; // type:object size:0x4 data:float +lbl_801F3690 = .sdata2:0x801F3690; // type:object size:0x4 data:float +lbl_801F3694 = .sdata2:0x801F3694; // type:object size:0x4 data:float +lbl_801F3698 = .sdata2:0x801F3698; // type:object size:0x4 data:float +lbl_801F369C = .sdata2:0x801F369C; // type:object size:0x4 data:float +lbl_801F36A0 = .sdata2:0x801F36A0; // type:object size:0x4 data:float +lbl_801F36A4 = .sdata2:0x801F36A4; // type:object size:0x4 data:float +lbl_801F36A8 = .sdata2:0x801F36A8; // type:object size:0x4 data:float +lbl_801F36AC = .sdata2:0x801F36AC; // type:object size:0x4 data:float +lbl_801F36B0 = .sdata2:0x801F36B0; // type:object size:0x4 data:float +lbl_801F36B4 = .sdata2:0x801F36B4; // type:object size:0x4 data:float +lbl_801F36B8 = .sdata2:0x801F36B8; // type:object size:0x4 data:float +lbl_801F36BC = .sdata2:0x801F36BC; // type:object size:0x4 data:float +lbl_801F36C0 = .sdata2:0x801F36C0; // type:object size:0x4 data:float +lbl_801F36C4 = .sdata2:0x801F36C4; // type:object size:0x4 data:float +lbl_801F36C8 = .sdata2:0x801F36C8; // type:object size:0x4 data:float +lbl_801F36CC = .sdata2:0x801F36CC; // type:object size:0x4 data:float +lbl_801F36D0 = .sdata2:0x801F36D0; // type:object size:0x4 data:float +lbl_801F36D4 = .sdata2:0x801F36D4; // type:object size:0x4 data:float +lbl_801F36D8 = .sdata2:0x801F36D8; // type:object size:0x4 data:float +lbl_801F36DC = .sdata2:0x801F36DC; // type:object size:0x4 data:float +lbl_801F36E0 = .sdata2:0x801F36E0; // type:object size:0x4 data:float +lbl_801F36E4 = .sdata2:0x801F36E4; // type:object size:0x4 data:float +lbl_801F36E8 = .sdata2:0x801F36E8; // type:object size:0x4 data:float +lbl_801F36EC = .sdata2:0x801F36EC; // type:object size:0x4 data:float +lbl_801F36F0 = .sdata2:0x801F36F0; // type:object size:0x4 data:float +lbl_801F36F4 = .sdata2:0x801F36F4; // type:object size:0x4 data:float +lbl_801F36F8 = .sdata2:0x801F36F8; // type:object size:0x4 data:float +lbl_801F36FC = .sdata2:0x801F36FC; // type:object size:0x4 data:float +lbl_801F3700 = .sdata2:0x801F3700; // type:object size:0x4 data:float +lbl_801F3704 = .sdata2:0x801F3704; // type:object size:0x4 data:float +lbl_801F3708 = .sdata2:0x801F3708; // type:object size:0x4 data:float +lbl_801F370C = .sdata2:0x801F370C; // type:object size:0x4 data:float +lbl_801F3710 = .sdata2:0x801F3710; // type:object size:0x8 data:double +lbl_801F3718 = .sdata2:0x801F3718; // type:object size:0x8 data:float +lbl_801F3720 = .sdata2:0x801F3720; // type:object size:0x4 data:float +lbl_801F3724 = .sdata2:0x801F3724; // type:object size:0x4 data:float +lbl_801F3728 = .sdata2:0x801F3728; // type:object size:0x4 data:float +lbl_801F372C = .sdata2:0x801F372C; // type:object size:0x4 data:float +lbl_801F3730 = .sdata2:0x801F3730; // type:object size:0x8 data:float +lbl_801F3738 = .sdata2:0x801F3738; // type:object size:0x4 data:float +lbl_801F373C = .sdata2:0x801F373C; // type:object size:0x4 data:float +lbl_801F3740 = .sdata2:0x801F3740; // type:object size:0x4 data:float +lbl_801F3744 = .sdata2:0x801F3744; // type:object size:0x4 data:float +lbl_801F3748 = .sdata2:0x801F3748; // type:object size:0x4 data:float +lbl_801F374C = .sdata2:0x801F374C; // type:object size:0x4 data:float +lbl_801F3750 = .sdata2:0x801F3750; // type:object size:0x4 data:float +lbl_801F3754 = .sdata2:0x801F3754; // type:object size:0x4 data:float +lbl_801F3758 = .sdata2:0x801F3758; // type:object size:0x4 data:float +lbl_801F375C = .sdata2:0x801F375C; // type:object size:0x4 data:float +lbl_801F3760 = .sdata2:0x801F3760; // type:object size:0x4 data:float +lbl_801F3764 = .sdata2:0x801F3764; // type:object size:0x4 data:float +lbl_801F3768 = .sdata2:0x801F3768; // type:object size:0x8 data:double +lbl_801F3770 = .sdata2:0x801F3770; // type:object size:0x8 data:double +lbl_801F3778 = .sdata2:0x801F3778; // type:object size:0x4 data:float +lbl_801F377C = .sdata2:0x801F377C; // type:object size:0x4 data:float +lbl_801F3780 = .sdata2:0x801F3780; // type:object size:0x4 data:float +lbl_801F3784 = .sdata2:0x801F3784; // type:object size:0x4 data:float +lbl_801F3788 = .sdata2:0x801F3788; // type:object size:0x4 data:float +lbl_801F378C = .sdata2:0x801F378C; // type:object size:0x4 data:float +lbl_801F3790 = .sdata2:0x801F3790; // type:object size:0x8 data:double +lbl_801F3798 = .sdata2:0x801F3798; // type:object size:0x8 data:double +lbl_801F37A0 = .sdata2:0x801F37A0; // type:object size:0x8 data:float +lbl_801F37A8 = .sdata2:0x801F37A8; // type:object size:0x4 data:float +lbl_801F37B0 = .sdata2:0x801F37B0; // type:object size:0x8 data:double +lbl_801F37B8 = .sdata2:0x801F37B8; // type:object size:0x4 data:4byte +lbl_801F37BC = .sdata2:0x801F37BC; // type:object size:0x4 data:4byte +lbl_801F37C0 = .sdata2:0x801F37C0; // type:object size:0x4 data:4byte +lbl_801F37C4 = .sdata2:0x801F37C4; // type:object size:0x4 data:float +lbl_801F37C8 = .sdata2:0x801F37C8; // type:object size:0x4 data:float +lbl_801F37CC = .sdata2:0x801F37CC; // type:object size:0x4 data:float +lbl_801F37D0 = .sdata2:0x801F37D0; // type:object size:0x8 data:double +lbl_801F37D8 = .sdata2:0x801F37D8; // type:object size:0x4 data:float +lbl_801F37E0 = .sdata2:0x801F37E0; // type:object size:0x8 data:double +lbl_801F37E8 = .sdata2:0x801F37E8; // type:object size:0x4 data:float +lbl_801F37EC = .sdata2:0x801F37EC; // type:object size:0x4 data:float +lbl_801F37F0 = .sdata2:0x801F37F0; // type:object size:0x4 data:float +lbl_801F37F4 = .sdata2:0x801F37F4; // type:object size:0x4 data:float +lbl_801F37F8 = .sdata2:0x801F37F8; // type:object size:0x4 data:float +lbl_801F37FC = .sdata2:0x801F37FC; // type:object size:0x4 data:float +lbl_801F3800 = .sdata2:0x801F3800; // type:object size:0x4 data:float +lbl_801F3804 = .sdata2:0x801F3804; // type:object size:0x4 data:float +lbl_801F3808 = .sdata2:0x801F3808; // type:object size:0x4 data:float +lbl_801F380C = .sdata2:0x801F380C; // type:object size:0x4 data:float +lbl_801F3810 = .sdata2:0x801F3810; // type:object size:0x4 data:float +lbl_801F3814 = .sdata2:0x801F3814; // type:object size:0x4 data:float +lbl_801F3818 = .sdata2:0x801F3818; // type:object size:0x4 data:float +lbl_801F3820 = .sdata2:0x801F3820; // type:object size:0x8 data:double +lbl_801F3828 = .sdata2:0x801F3828; // type:object size:0x8 data:double +lbl_801F3830 = .sdata2:0x801F3830; // type:object size:0x8 data:float +lbl_801F3838 = .sdata2:0x801F3838; // type:object size:0x4 data:float +lbl_801F3840 = .sdata2:0x801F3840; // type:object size:0x8 data:double +lbl_801F3848 = .sdata2:0x801F3848; // type:object size:0x4 data:float +lbl_801F384C = .sdata2:0x801F384C; // type:object size:0x4 data:float +lbl_801F3850 = .sdata2:0x801F3850; // type:object size:0x4 data:float +lbl_801F3854 = .sdata2:0x801F3854; // type:object size:0x4 data:float +lbl_801F3858 = .sdata2:0x801F3858; // type:object size:0x4 data:float +lbl_801F385C = .sdata2:0x801F385C; // type:object size:0x4 data:float +lbl_801F3860 = .sdata2:0x801F3860; // type:object size:0x4 data:float +lbl_801F3864 = .sdata2:0x801F3864; // type:object size:0x4 data:float +lbl_801F3868 = .sdata2:0x801F3868; // type:object size:0x4 data:float +lbl_801F3870 = .sdata2:0x801F3870; // type:object size:0x8 data:double +lbl_801F3878 = .sdata2:0x801F3878; // type:object size:0x4 data:float +lbl_801F387C = .sdata2:0x801F387C; // type:object size:0x4 data:float +lbl_801F3880 = .sdata2:0x801F3880; // type:object size:0x8 data:double +lbl_801F3888 = .sdata2:0x801F3888; // type:object size:0x4 data:float +lbl_801F3890 = .sdata2:0x801F3890; // type:object size:0x8 data:double +lbl_801F3898 = .sdata2:0x801F3898; // type:object size:0x4 data:float +lbl_801F38A0 = .sdata2:0x801F38A0; // type:object size:0x8 data:double +lbl_801F38A8 = .sdata2:0x801F38A8; // type:object size:0x4 data:float +lbl_801F38AC = .sdata2:0x801F38AC; // type:object size:0x4 data:float +lbl_801F38B0 = .sdata2:0x801F38B0; // type:object size:0x4 data:float +lbl_801F38B8 = .sdata2:0x801F38B8; // type:object size:0x8 data:double +lbl_801F38C0 = .sdata2:0x801F38C0; // type:object size:0x4 data:float +lbl_801F38C4 = .sdata2:0x801F38C4; // type:object size:0x4 data:float +lbl_801F38C8 = .sdata2:0x801F38C8; // type:object size:0x8 data:double +lbl_801F38D0 = .sdata2:0x801F38D0; // type:object size:0x4 data:float +lbl_801F38D4 = .sdata2:0x801F38D4; // type:object size:0x4 data:float +lbl_801F38D8 = .sdata2:0x801F38D8; // type:object size:0x4 data:float +lbl_801F38DC = .sdata2:0x801F38DC; // type:object size:0x4 data:float +lbl_801F38E0 = .sdata2:0x801F38E0; // type:object size:0x4 data:float +lbl_801F38E8 = .sdata2:0x801F38E8; // type:object size:0x8 data:double +lbl_801F38F0 = .sdata2:0x801F38F0; // type:object size:0x4 data:4byte +lbl_801F38F8 = .sdata2:0x801F38F8; // type:object size:0x8 data:double +lbl_801F3900 = .sdata2:0x801F3900; // type:object size:0x8 data:double +lbl_801F3908 = .sdata2:0x801F3908; // type:object size:0x8 data:double +lbl_801F3910 = .sdata2:0x801F3910; // type:object size:0x8 data:double +lbl_801F3918 = .sdata2:0x801F3918; // type:object size:0x8 data:double +lbl_801F3920 = .sdata2:0x801F3920; // type:object size:0x8 data:double +lbl_801F3928 = .sdata2:0x801F3928; // type:object size:0x8 data:double +lbl_801F3930 = .sdata2:0x801F3930; // type:object size:0x8 data:double +lbl_801F3938 = .sdata2:0x801F3938; // type:object size:0x8 data:double +lbl_801F3940 = .sdata2:0x801F3940; // type:object size:0x8 data:double +lbl_801F3948 = .sdata2:0x801F3948; // type:object size:0x8 data:double +lbl_801F3950 = .sdata2:0x801F3950; // type:object size:0x8 data:double +lbl_801F3958 = .sdata2:0x801F3958; // type:object size:0x8 data:double +lbl_801F3960 = .sdata2:0x801F3960; // type:object size:0x8 data:double +lbl_801F3968 = .sdata2:0x801F3968; // type:object size:0x8 data:double +lbl_801F3970 = .sdata2:0x801F3970; // type:object size:0x8 data:double +lbl_801F3978 = .sdata2:0x801F3978; // type:object size:0x8 data:double +lbl_801F3980 = .sdata2:0x801F3980; // type:object size:0x8 data:double +lbl_801F3988 = .sdata2:0x801F3988; // type:object size:0x8 data:double +lbl_801F3990 = .sdata2:0x801F3990; // type:object size:0x8 data:double +lbl_801F3998 = .sdata2:0x801F3998; // type:object size:0x8 data:double +lbl_801F39A0 = .sdata2:0x801F39A0; // type:object size:0x8 data:double +lbl_801F39A8 = .sdata2:0x801F39A8; // type:object size:0x8 data:double +lbl_801F39B0 = .sdata2:0x801F39B0; // type:object size:0x8 data:double +lbl_801F39B8 = .sdata2:0x801F39B8; // type:object size:0x8 data:double +lbl_801F39C0 = .sdata2:0x801F39C0; // type:object size:0x8 data:double +lbl_801F39C8 = .sdata2:0x801F39C8; // type:object size:0x8 data:double +lbl_801F39D0 = .sdata2:0x801F39D0; // type:object size:0x8 data:double +lbl_801F39D8 = .sdata2:0x801F39D8; // type:object size:0x8 data:double +lbl_801F39E0 = .sdata2:0x801F39E0; // type:object size:0x8 data:double +lbl_801F39E8 = .sdata2:0x801F39E8; // type:object size:0x8 data:double +lbl_801F39F0 = .sdata2:0x801F39F0; // type:object size:0x8 data:double +lbl_801F39F8 = .sdata2:0x801F39F8; // type:object size:0x8 data:double +lbl_801F3A00 = .sdata2:0x801F3A00; // type:object size:0x8 data:double +lbl_801F3A08 = .sdata2:0x801F3A08; // type:object size:0x8 data:double +lbl_801F3A10 = .sdata2:0x801F3A10; // type:object size:0x8 data:double +lbl_801F3A18 = .sdata2:0x801F3A18; // type:object size:0x8 data:double +lbl_801F3A20 = .sdata2:0x801F3A20; // type:object size:0x8 data:double +lbl_801F3A28 = .sdata2:0x801F3A28; // type:object size:0x8 data:double +lbl_801F3A30 = .sdata2:0x801F3A30; // type:object size:0x8 data:double +lbl_801F3A38 = .sdata2:0x801F3A38; // type:object size:0x8 data:double +lbl_801F3A40 = .sdata2:0x801F3A40; // type:object size:0x8 data:double +lbl_801F3A48 = .sdata2:0x801F3A48; // type:object size:0x8 data:double +lbl_801F3A50 = .sdata2:0x801F3A50; // type:object size:0x8 data:double +lbl_801F3A58 = .sdata2:0x801F3A58; // type:object size:0x8 data:double +lbl_801F3A60 = .sdata2:0x801F3A60; // type:object size:0x8 data:double +lbl_801F3A68 = .sdata2:0x801F3A68; // type:object size:0x8 data:double +lbl_801F3A70 = .sdata2:0x801F3A70; // type:object size:0x8 data:double +lbl_801F3A78 = .sdata2:0x801F3A78; // type:object size:0x8 data:double +lbl_801F3A80 = .sdata2:0x801F3A80; // type:object size:0x8 data:double +lbl_801F3A88 = .sdata2:0x801F3A88; // type:object size:0x8 data:double +lbl_801F3A90 = .sdata2:0x801F3A90; // type:object size:0x8 data:double +lbl_801F3A98 = .sdata2:0x801F3A98; // type:object size:0x8 data:double +lbl_801F3AA0 = .sdata2:0x801F3AA0; // type:object size:0x8 data:double +lbl_801F3AA8 = .sdata2:0x801F3AA8; // type:object size:0x8 data:double +lbl_801F3AB0 = .sdata2:0x801F3AB0; // type:object size:0x8 data:double +lbl_801F3AB8 = .sdata2:0x801F3AB8; // type:object size:0x8 data:double +lbl_801F3AC0 = .sdata2:0x801F3AC0; // type:object size:0x8 data:double +lbl_801F3AC8 = .sdata2:0x801F3AC8; // type:object size:0x8 data:double +lbl_801F3AD0 = .sdata2:0x801F3AD0; // type:object size:0x8 data:double +lbl_801F3AD8 = .sdata2:0x801F3AD8; // type:object size:0x8 data:double +lbl_801F3AE0 = .sdata2:0x801F3AE0; // type:object size:0x8 data:double +lbl_801F3AE8 = .sdata2:0x801F3AE8; // type:object size:0x8 data:double +lbl_801F3AF0 = .sdata2:0x801F3AF0; // type:object size:0x8 data:double +lbl_801F3AF8 = .sdata2:0x801F3AF8; // type:object size:0x8 data:double +lbl_801F3B00 = .sdata2:0x801F3B00; // type:object size:0x8 data:double +lbl_801F3B08 = .sdata2:0x801F3B08; // type:object size:0x8 data:double +lbl_801F3B10 = .sdata2:0x801F3B10; // type:object size:0x8 data:double +lbl_801F3B18 = .sdata2:0x801F3B18; // type:object size:0x8 data:double +lbl_801F3B20 = .sdata2:0x801F3B20; // type:object size:0x8 data:double +lbl_801F3B28 = .sdata2:0x801F3B28; // type:object size:0x8 data:double +lbl_801F3B30 = .sdata2:0x801F3B30; // type:object size:0x8 data:double +lbl_801F3B38 = .sdata2:0x801F3B38; // type:object size:0x8 data:double +lbl_801F3B40 = .sdata2:0x801F3B40; // type:object size:0x8 data:double +lbl_801F3B48 = .sdata2:0x801F3B48; // type:object size:0x8 data:double +lbl_801F3B50 = .sdata2:0x801F3B50; // type:object size:0x8 data:double +lbl_801F3B58 = .sdata2:0x801F3B58; // type:object size:0x8 data:double +lbl_801F3B60 = .sdata2:0x801F3B60; // type:object size:0x8 data:double +lbl_801F3B68 = .sdata2:0x801F3B68; // type:object size:0x8 data:double +lbl_801F3B70 = .sdata2:0x801F3B70; // type:object size:0x8 data:double +lbl_801F3B78 = .sdata2:0x801F3B78; // type:object size:0x8 data:double +lbl_801F3B80 = .sdata2:0x801F3B80; // type:object size:0x8 data:double +lbl_801F3B88 = .sdata2:0x801F3B88; // type:object size:0x8 data:double +lbl_801F3B90 = .sdata2:0x801F3B90; // type:object size:0x8 data:double +lbl_801F3B98 = .sdata2:0x801F3B98; // type:object size:0x8 data:double +lbl_801F3BA0 = .sdata2:0x801F3BA0; // type:object size:0x8 data:double +lbl_801F3BA8 = .sdata2:0x801F3BA8; // type:object size:0x8 data:double +lbl_801F3BB0 = .sdata2:0x801F3BB0; // type:object size:0x8 data:double +lbl_801F3BB8 = .sdata2:0x801F3BB8; // type:object size:0x8 data:double +lbl_801F3BC0 = .sdata2:0x801F3BC0; // type:object size:0x8 data:double +lbl_801F3BC8 = .sdata2:0x801F3BC8; // type:object size:0x8 data:double +lbl_801F3BD0 = .sdata2:0x801F3BD0; // type:object size:0x8 data:double +lbl_801F3BD8 = .sdata2:0x801F3BD8; // type:object size:0x8 data:double +lbl_801F3BE0 = .sdata2:0x801F3BE0; // type:object size:0x8 data:double +lbl_801F3BE8 = .sdata2:0x801F3BE8; // type:object size:0x8 data:double +lbl_801F3BF0 = .sdata2:0x801F3BF0; // type:object size:0x8 data:double +lbl_801F3BF8 = .sdata2:0x801F3BF8; // type:object size:0x8 data:double +lbl_801F3C00 = .sdata2:0x801F3C00; // type:object size:0x8 data:double +lbl_801F3C08 = .sdata2:0x801F3C08; // type:object size:0x8 data:double +lbl_801F3C10 = .sdata2:0x801F3C10; // type:object size:0x8 data:double +lbl_801F3C18 = .sdata2:0x801F3C18; // type:object size:0x8 data:double +lbl_801F3C20 = .sdata2:0x801F3C20; // type:object size:0x8 data:double +lbl_801F3C28 = .sdata2:0x801F3C28; // type:object size:0x8 data:double +lbl_801F3C30 = .sdata2:0x801F3C30; // type:object size:0x8 data:double +lbl_801F3C38 = .sdata2:0x801F3C38; // type:object size:0x8 data:double +lbl_801F3C40 = .sdata2:0x801F3C40; // type:object size:0x8 data:double +lbl_801F3C48 = .sdata2:0x801F3C48; // type:object size:0x8 data:double +lbl_801F3C50 = .sdata2:0x801F3C50; // type:object size:0x8 data:double +lbl_801F3C58 = .sdata2:0x801F3C58; // type:object size:0x8 data:double +lbl_801F3C60 = .sdata2:0x801F3C60; // type:object size:0x8 data:double +lbl_801F3C68 = .sdata2:0x801F3C68; // type:object size:0x8 data:double +lbl_801F3C70 = .sdata2:0x801F3C70; // type:object size:0x8 data:double +lbl_801F3C78 = .sdata2:0x801F3C78; // type:object size:0x8 data:double +lbl_801F3C80 = .sdata2:0x801F3C80; // type:object size:0x8 data:double +lbl_801F3C88 = .sdata2:0x801F3C88; // type:object size:0x8 data:double +lbl_801F3C90 = .sdata2:0x801F3C90; // type:object size:0x8 data:double +lbl_801F3C98 = .sdata2:0x801F3C98; // type:object size:0x8 data:double +lbl_801F3CA0 = .sdata2:0x801F3CA0; // type:object size:0x8 data:double +lbl_801F3CA8 = .sdata2:0x801F3CA8; // type:object size:0x8 data:double +lbl_801F3CB0 = .sdata2:0x801F3CB0; // type:object size:0x8 data:double +lbl_801F3CB8 = .sdata2:0x801F3CB8; // type:object size:0x8 data:double +lbl_801F3CC0 = .sdata2:0x801F3CC0; // type:object size:0x8 data:double +lbl_801F3CC8 = .sdata2:0x801F3CC8; // type:object size:0x8 data:double +lbl_801F3CD0 = .sdata2:0x801F3CD0; // type:object size:0x8 data:double +lbl_801F3CD8 = .sdata2:0x801F3CD8; // type:object size:0x8 data:double +lbl_801F3CE0 = .sdata2:0x801F3CE0; // type:object size:0x8 data:double +lbl_801F3CE8 = .sdata2:0x801F3CE8; // type:object size:0x8 data:double +lbl_801F3CF0 = .sdata2:0x801F3CF0; // type:object size:0x8 data:double +lbl_801F3CF8 = .sdata2:0x801F3CF8; // type:object size:0x8 data:double +lbl_801F3D00 = .sdata2:0x801F3D00; // type:object size:0x8 data:double +lbl_801F3D08 = .sdata2:0x801F3D08; // type:object size:0x8 data:double +lbl_801F3D10 = .sdata2:0x801F3D10; // type:object size:0x8 data:double +lbl_801F3D18 = .sdata2:0x801F3D18; // type:object size:0x8 data:double +lbl_801F3D20 = .sdata2:0x801F3D20; // type:object size:0x8 data:double +lbl_801F3D28 = .sdata2:0x801F3D28; // type:object size:0x8 data:double +lbl_801F3D30 = .sdata2:0x801F3D30; // type:object size:0x8 data:double +lbl_801F3D38 = .sdata2:0x801F3D38; // type:object size:0x8 data:double +lbl_801F3D40 = .sdata2:0x801F3D40; // type:object size:0x8 data:double +lbl_801F3D48 = .sdata2:0x801F3D48; // type:object size:0x8 data:double +lbl_801F3D50 = .sdata2:0x801F3D50; // type:object size:0x8 data:double +lbl_801F3D58 = .sdata2:0x801F3D58; // type:object size:0x8 data:double +lbl_801F3D60 = .sdata2:0x801F3D60; // type:object size:0x4 data:float +lbl_801F3D64 = .sdata2:0x801F3D64; // type:object size:0x4 data:float +lbl_801F3D68 = .sdata2:0x801F3D68; // type:object size:0x4 data:float +lbl_801F3D70 = .sdata2:0x801F3D70; // type:object size:0x8 data:double +lbl_801F3D78 = .sdata2:0x801F3D78; // type:object size:0x8 data:double +lbl_801F3D80 = .sdata2:0x801F3D80; // type:object size:0x4 data:float +lbl_801F3D84 = .sdata2:0x801F3D84; // type:object size:0x4 data:float +lbl_801F3D88 = .sdata2:0x801F3D88; // type:object size:0x4 data:float +lbl_801F3D8C = .sdata2:0x801F3D8C; // type:object size:0x4 data:float +lbl_801F3D90 = .sdata2:0x801F3D90; // type:object size:0x4 data:float +lbl_801F3D94 = .sdata2:0x801F3D94; // type:object size:0x4 data:float +lbl_801F3D98 = .sdata2:0x801F3D98; // type:object size:0x4 data:float +lbl_801F3D9C = .sdata2:0x801F3D9C; // type:object size:0x4 data:float +lbl_801F3DA0 = .sdata2:0x801F3DA0; // type:object size:0x4 data:float +lbl_801F3DA8 = .sdata2:0x801F3DA8; // type:object size:0x8 data:double +lbl_801F3DB0 = .sdata2:0x801F3DB0; // type:object size:0x8 data:double +lbl_801F3DB8 = .sdata2:0x801F3DB8; // type:object size:0x4 data:float +lbl_801F3DBC = .sdata2:0x801F3DBC; // type:object size:0x4 data:float +lbl_801F3DC0 = .sdata2:0x801F3DC0; // type:object size:0x4 data:float +lbl_801F3DC8 = .sdata2:0x801F3DC8; // type:object size:0x8 data:double +lbl_801F3DD0 = .sdata2:0x801F3DD0; // type:object size:0x8 data:float +lbl_801F3DD8 = .sdata2:0x801F3DD8; // type:object size:0x4 data:float +lbl_801F3DDC = .sdata2:0x801F3DDC; // type:object size:0x4 data:float +lbl_801F3DE0 = .sdata2:0x801F3DE0; // type:object size:0x4 data:float +lbl_801F3DE8 = .sdata2:0x801F3DE8; // type:object size:0x8 data:double +lbl_801F3DF0 = .sdata2:0x801F3DF0; // type:object size:0x8 data:double +lbl_801F3DF8 = .sdata2:0x801F3DF8; // type:object size:0x4 data:float +lbl_801F3DFC = .sdata2:0x801F3DFC; // type:object size:0x4 data:float +lbl_801F3E00 = .sdata2:0x801F3E00; // type:object size:0x4 data:float +lbl_801F3E08 = .sdata2:0x801F3E08; // type:object size:0x8 data:double +lbl_801F3E10 = .sdata2:0x801F3E10; // type:object size:0x4 data:float +lbl_801F3E18 = .sdata2:0x801F3E18; // type:object size:0x8 data:double +lbl_801F3E20 = .sdata2:0x801F3E20; // type:object size:0x4 data:float +lbl_801F3E24 = .sdata2:0x801F3E24; // type:object size:0x4 data:float +lbl_801F3E28 = .sdata2:0x801F3E28; // type:object size:0x8 data:double +lbl_801F3E30 = .sdata2:0x801F3E30; // type:object size:0x4 data:float +lbl_801F3E38 = .sdata2:0x801F3E38; // type:object size:0x8 data:double +lbl_801F3E40 = .sdata2:0x801F3E40; // type:object size:0x4 data:float +lbl_801F3E44 = .sdata2:0x801F3E44; // type:object size:0x4 data:float +lbl_801F3E48 = .sdata2:0x801F3E48; // type:object size:0x4 data:float +lbl_801F3E50 = .sdata2:0x801F3E50; // type:object size:0x8 data:double +lbl_801F3E58 = .sdata2:0x801F3E58; // type:object size:0x4 data:float +lbl_801F3E60 = .sdata2:0x801F3E60; // type:object size:0x8 data:double +lbl_801F3E68 = .sdata2:0x801F3E68; // type:object size:0x4 data:float +lbl_801F3E6C = .sdata2:0x801F3E6C; // type:object size:0x4 data:float +lbl_801F3E70 = .sdata2:0x801F3E70; // type:object size:0x8 data:float +lbl_801F3E78 = .sdata2:0x801F3E78; // type:object size:0x4 data:float +lbl_801F3E80 = .sdata2:0x801F3E80; // type:object size:0x8 data:double +lbl_801F3E88 = .sdata2:0x801F3E88; // type:object size:0x4 data:float +lbl_801F3E8C = .sdata2:0x801F3E8C; // type:object size:0x4 data:float +lbl_801F3E90 = .sdata2:0x801F3E90; // type:object size:0x8 data:double +lbl_801F3E98 = .sdata2:0x801F3E98; // type:object size:0x4 data:float +lbl_801F3E9C = .sdata2:0x801F3E9C; // type:object size:0x4 data:float +lbl_801F3EA0 = .sdata2:0x801F3EA0; // type:object size:0x8 data:double +lbl_801F3EA8 = .sdata2:0x801F3EA8; // type:object size:0x4 data:float +lbl_801F3EAC = .sdata2:0x801F3EAC; // type:object size:0x4 data:float +lbl_801F3EB0 = .sdata2:0x801F3EB0; // type:object size:0x4 data:float +lbl_801F3EB4 = .sdata2:0x801F3EB4; // type:object size:0x4 data:float +lbl_801F3EB8 = .sdata2:0x801F3EB8; // type:object size:0x4 data:float +lbl_801F3EBC = .sdata2:0x801F3EBC; // type:object size:0x4 data:float +lbl_801F3EC0 = .sdata2:0x801F3EC0; // type:object size:0x8 data:float +lbl_801F3EC8 = .sdata2:0x801F3EC8; // type:object size:0x4 data:float +lbl_801F3ED0 = .sdata2:0x801F3ED0; // type:object size:0x8 data:double +lbl_801F3ED8 = .sdata2:0x801F3ED8; // type:object size:0x8 data:double +lbl_801F3EE0 = .sdata2:0x801F3EE0; // type:object size:0x8 data:float +lbl_801F3EE8 = .sdata2:0x801F3EE8; // type:object size:0x4 data:float +lbl_801F3EEC = .sdata2:0x801F3EEC; // type:object size:0x4 data:float +lbl_801F3EF0 = .sdata2:0x801F3EF0; // type:object size:0x4 data:float +lbl_801F3EF8 = .sdata2:0x801F3EF8; // type:object size:0x8 data:double +lbl_801F3F00 = .sdata2:0x801F3F00; // type:object size:0x4 data:float +lbl_801F3F04 = .sdata2:0x801F3F04; // type:object size:0x4 data:float +lbl_801F3F08 = .sdata2:0x801F3F08; // type:object size:0x4 data:float +lbl_801F3F0C = .sdata2:0x801F3F0C; // type:object size:0x4 data:float +lbl_801F3F10 = .sdata2:0x801F3F10; // type:object size:0x4 data:float +lbl_801F3F14 = .sdata2:0x801F3F14; // type:object size:0x4 data:float +lbl_801F3F18 = .sdata2:0x801F3F18; // type:object size:0x8 data:double +lbl_801F3F20 = .sdata2:0x801F3F20; // type:object size:0x4 data:float +lbl_801F3F24 = .sdata2:0x801F3F24; // type:object size:0x4 data:float +lbl_801F3F28 = .sdata2:0x801F3F28; // type:object size:0x8 data:double +lbl_801F3F30 = .sdata2:0x801F3F30; // type:object size:0x4 data:float +lbl_801F3F34 = .sdata2:0x801F3F34; // type:object size:0x4 data:float +lbl_801F3F38 = .sdata2:0x801F3F38; // type:object size:0x8 data:double +lbl_801F3F40 = .sdata2:0x801F3F40; // type:object size:0x4 data:float +lbl_801F3F44 = .sdata2:0x801F3F44; // type:object size:0x4 data:float +lbl_801F3F48 = .sdata2:0x801F3F48; // type:object size:0x4 data:float +lbl_801F3F4C = .sdata2:0x801F3F4C; // type:object size:0x4 data:float +lbl_801F3F50 = .sdata2:0x801F3F50; // type:object size:0x4 data:float +lbl_801F3F54 = .sdata2:0x801F3F54; // type:object size:0x4 data:float +lbl_801F3F58 = .sdata2:0x801F3F58; // type:object size:0x8 data:double +lbl_801F3F60 = .sdata2:0x801F3F60; // type:object size:0x4 data:float +lbl_801F3F64 = .sdata2:0x801F3F64; // type:object size:0x4 data:float +lbl_801F3F68 = .sdata2:0x801F3F68; // type:object size:0x8 data:double +lbl_801F3F70 = .sdata2:0x801F3F70; // type:object size:0x8 data:double +lbl_801F3F78 = .sdata2:0x801F3F78; // type:object size:0x4 data:float +lbl_801F3F7C = .sdata2:0x801F3F7C; // type:object size:0x4 data:float +lbl_801F3F80 = .sdata2:0x801F3F80; // type:object size:0x4 data:float +lbl_801F3F88 = .sdata2:0x801F3F88; // type:object size:0x8 data:double +lbl_801F3F90 = .sdata2:0x801F3F90; // type:object size:0x4 data:4byte +lbl_801F3F94 = .sdata2:0x801F3F94; // type:object size:0x4 data:4byte +lbl_801F3F98 = .sdata2:0x801F3F98; // type:object size:0x4 data:float +lbl_801F3F9C = .sdata2:0x801F3F9C; // type:object size:0x4 data:float +lbl_801F3FA0 = .sdata2:0x801F3FA0; // type:object size:0x4 data:float +lbl_801F3FA4 = .sdata2:0x801F3FA4; // type:object size:0x4 data:float +lbl_801F3FA8 = .sdata2:0x801F3FA8; // type:object size:0x8 data:double +lbl_801F3FC0 = .sbss2:0x801F3FC0; // type:object size:0x1 data:byte +lbl_801F3FC1 = .sbss2:0x801F3FC1; // type:object size:0x1 data:byte +lbl_801F3FC2 = .sbss2:0x801F3FC2; // type:object size:0x1 data:byte +lbl_801F3FC3 = .sbss2:0x801F3FC3; // type:object size:0x1 data:byte +lbl_801F3FC4 = .sbss2:0x801F3FC4; // type:object size:0x1 data:byte +lbl_801F3FC5 = .sbss2:0x801F3FC5; // type:object size:0x1 data:byte +lbl_801F3FC6 = .sbss2:0x801F3FC6; // type:object size:0x1 data:byte +lbl_801F3FC7 = .sbss2:0x801F3FC7; // type:object size:0x1 data:byte diff --git a/config/GMPP01_02/build.sha1 b/config/GMPP01_02/build.sha1 new file mode 100644 index 00000000..fcf1ec59 --- /dev/null +++ b/config/GMPP01_02/build.sha1 @@ -0,0 +1,100 @@ +65ef91650e9201047f50a3c39c7693a21fff2b29 build/GMPP01_02/main.dol +7101a759bcd45edee5bbc00a36d347c1f787c2a1 build/GMPP01_02/_minigameDll/_minigameDll.rel +b60fe8dd6faa20663224d64651b80c25b9b202ef build/GMPP01_02/bootDll/bootDll.rel +eef3ac50923ab2f20d588ef10ae15f3bc739f2b8 build/GMPP01_02/instDll/instDll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPP01_02/m302Dll/m302Dll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPP01_02/m303Dll/m303Dll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPP01_02/m330Dll/m330Dll.rel +f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 build/GMPP01_02/m333Dll/m333Dll.rel +cd3532af828e8217924296c4cadbd31ddd915a05 build/GMPP01_02/m402Dll/m402Dll.rel +b2e3cdd9167c579e02c6ecc5643b6aadcc5b6a99 build/GMPP01_02/m403Dll/m403Dll.rel +56c825a1e0bbe33e3a0e1e70396c21af9b575243 build/GMPP01_02/m404Dll/m404Dll.rel +cc76ded0a41aea632fd9b3c5e37fe6d847107d91 build/GMPP01_02/m405Dll/m405Dll.rel +5c2aee9c8f10dc763c9ff763874f3a4b58880f02 build/GMPP01_02/m406Dll/m406Dll.rel +7133701b7c28a66f9d24ab64081e472d458dad51 build/GMPP01_02/m407dll/m407dll.rel +6f2552516b8e151ccbed99ee6730ca2cb2e0fd49 build/GMPP01_02/m408Dll/m408Dll.rel +71a91946651b40cc217b08d293f23fbf01c7407a build/GMPP01_02/m409Dll/m409Dll.rel +e938c2f354224a6a5a7b015f9abae596298788ee build/GMPP01_02/m410Dll/m410Dll.rel +e29bae44753c7ce8e5213881b10d6b27c02c4f7a build/GMPP01_02/m411Dll/m411Dll.rel +23da1cff677f992bb76dcbf4a9f9061542b4be7f build/GMPP01_02/m412Dll/m412Dll.rel +6ed381e5b4d75eeab2c3ded39473a482f61ee32d build/GMPP01_02/m413Dll/m413Dll.rel +902f32cc75ac0030c7c531dbeefda055bc8d7f27 build/GMPP01_02/m414Dll/m414Dll.rel +7063ae505540bafebf802128d8d2f394b7f6f921 build/GMPP01_02/m415Dll/m415Dll.rel +2979d5f934b9099116fbd943a91d6a3bb56e6ec0 build/GMPP01_02/m416Dll/m416Dll.rel +b20482a2af7c839456fe7580dcbd92ca9984ec71 build/GMPP01_02/m417Dll/m417Dll.rel +762f56820668c74cdcde436a08419bdb59a35a89 build/GMPP01_02/m418Dll/m418Dll.rel +5fba3dfcfca6ef78eb46833f665019bca641063e build/GMPP01_02/m419Dll/m419Dll.rel +bb514277a33821093fd2acfae2cb86531b317d17 build/GMPP01_02/m420dll/m420dll.rel +216ba8bbc8905f33370ae651d478f6bd56c17b27 build/GMPP01_02/m421Dll/m421Dll.rel +6c152ddb5f518c9c6444030dfc30ab53ef931b40 build/GMPP01_02/m422Dll/m422Dll.rel +db80fcb993ce09d808de29d2488f2b1ab2afc8cd build/GMPP01_02/m423Dll/m423Dll.rel +827da0897edcc2706a3623722430d4e70512c653 build/GMPP01_02/m424Dll/m424Dll.rel +26eb36bfc9106af2462a0d7e013f5321dbaecdd1 build/GMPP01_02/m425Dll/m425Dll.rel +04b649fb6eb248e506cf15fdcfbed3e915a80682 build/GMPP01_02/m426Dll/m426Dll.rel +810a1c91f794897862ac9b6a4e076a70c6b0238a build/GMPP01_02/m427Dll/m427Dll.rel +888af662a228e349ea6a0c60e19de74f8fa47914 build/GMPP01_02/m428Dll/m428Dll.rel +88b2330f175d1346a71f67491dcf9eff62d2d2d1 build/GMPP01_02/m429Dll/m429Dll.rel +e611007dd71ab515de65e9a6879f0508193fd58a build/GMPP01_02/m430Dll/m430Dll.rel +6a2b097a6d57c36bff5aaeb8c9ea2f01df7407ad build/GMPP01_02/m431Dll/m431Dll.rel +17b6a0c65c7cb759fc460fe7b8eed3dd7dc7184d build/GMPP01_02/m432Dll/m432Dll.rel +ce90f494ced6f2611603c247bdc733a458b5a523 build/GMPP01_02/m433Dll/m433Dll.rel +100fe402942821dc8e5753f3cada5e2bf5ab6214 build/GMPP01_02/m434Dll/m434Dll.rel +4936db381fa068395cff28c0d635c5ec7cc7218f build/GMPP01_02/m435Dll/m435Dll.rel +ba1c3bdc5f250996a5c873791347ce4c20b38692 build/GMPP01_02/m436Dll/m436Dll.rel +7273786a2995182baf9a85148c5974097999fe8e build/GMPP01_02/m437Dll/m437Dll.rel +d7c4bdf1729695a7348f8a36de2911db7aa24abb build/GMPP01_02/m438Dll/m438Dll.rel +4d5a719b49edb55e0b0b52c0d81b31c14d197d20 build/GMPP01_02/m439Dll/m439Dll.rel +469b18886221ae8a5b90f3e85b01ce6a01befb0b build/GMPP01_02/m440Dll/m440Dll.rel +7d6e99b67d2dde25d3fc75ac314c2a69be34137e build/GMPP01_02/m441Dll/m441Dll.rel +63af3c4f33fd362f17aa1be9f764d0549f92598d build/GMPP01_02/m442Dll/m442Dll.rel +5118a0bab1877455eae9002c3cc561d3360fd792 build/GMPP01_02/m443Dll/m443Dll.rel +a344672428b1e3a1d4bc3ce935472af529a6dd18 build/GMPP01_02/m444dll/m444dll.rel +02f7c52aa6fd4b21a5700615aeaee9ef59e6b9f3 build/GMPP01_02/m445Dll/m445Dll.rel +2ab71adae47a3d9632dcf45cf18ca0b1fc33d157 build/GMPP01_02/m446dll/m446dll.rel +0640357fe4d0148dac4bc382c8231410e24fe951 build/GMPP01_02/m447dll/m447dll.rel +78bcdd8d1fdb810784fca4d5bbec92c63e2e6b54 build/GMPP01_02/m448Dll/m448Dll.rel +fcf6e4b0089e19ffddf01a119c8c515a4acc943a build/GMPP01_02/m449Dll/m449Dll.rel +ebcf95781e8078813ed041dd0a869ae2e413679b build/GMPP01_02/m450Dll/m450Dll.rel +aa16b743f7b64f22abfd8bb93646883cc73bd7e0 build/GMPP01_02/m451Dll/m451Dll.rel +f6fd7a6537e56c535d02ac4a48c9008605f93ea1 build/GMPP01_02/m453Dll/m453Dll.rel +cc3431f55b523d474a952f3a0e927fac6b5402ab build/GMPP01_02/m455Dll/m455Dll.rel +09797251306bbd0f6fd712d6f832128ca8c58690 build/GMPP01_02/m456Dll/m456Dll.rel +8a992a09077fd5e1f6ca3e717547792938a519c1 build/GMPP01_02/m457Dll/m457Dll.rel +5dea2127d51d621b30d78b22cfa32327797e6e0b build/GMPP01_02/m458Dll/m458Dll.rel +e96dafe5949909cb7cc839174aa38e8e6661a63b build/GMPP01_02/m459dll/m459dll.rel +ea1e0bda22675840d39c74117e2a11ffe45f8dd4 build/GMPP01_02/m460Dll/m460Dll.rel +8d515f3b92a786df53bb88291b5cfc4bc59a3c8d build/GMPP01_02/m461Dll/m461Dll.rel +f02ba47e4459d9b0de174c5619a4efe61942962d build/GMPP01_02/m462Dll/m462Dll.rel +352ad6d84ded6cf28b9ff2f9e5da8812ac9164db build/GMPP01_02/m463Dll/m463Dll.rel +4705ada9d259a81ab2815fee3516f6217d848dd9 build/GMPP01_02/mentDll/mentDll.rel +b966ce340e98dbda624ff80f96c78d51ff1ed687 build/GMPP01_02/messDll/messDll.rel +7a3fed787df2d1bc942efd56a160eaf59605b94f build/GMPP01_02/mgmodedll/mgmodedll.rel +1e5bf1777b1470fcead2174c25b291b8f0513284 build/GMPP01_02/modeltestDll/modeltestDll.rel +d958038528a774801a4f5a0aee9e7aaae4bd94ce build/GMPP01_02/modeseldll/modeseldll.rel +a3e1e06937703f98191f4080e092bf06c4f449b3 build/GMPP01_02/mpexDll/mpexDll.rel +86ff8288bb92472376d02cade1d3c9603b613c57 build/GMPP01_02/msetupDll/msetupDll.rel +24b3e03e35f5bd395ef80a14babae724b7414190 build/GMPP01_02/mstory2Dll/mstory2Dll.rel +ccac71c67e5171a02b4a086df4d2daad81455466 build/GMPP01_02/mstory3Dll/mstory3Dll.rel +a8eee3981f4965412490cb9eef76aaa798957db1 build/GMPP01_02/mstory4Dll/mstory4Dll.rel +4ef3463c5dc60771468c6ab033dda1391c39d689 build/GMPP01_02/mstoryDll/mstoryDll.rel +45619d95e61d9296f25d94d7c6756f397fb89bee build/GMPP01_02/nisDll/nisDll.rel +1304967e3aa58a46492d4c736a7c86cf8a3b2e11 build/GMPP01_02/option/option.rel +7845814c6be2546930cfd8e0b9dec263fc1a959f build/GMPP01_02/present/present.rel +d9bd10433d1e2a6c0c4d9f942b766d743f99deec build/GMPP01_02/resultDll/resultDll.rel +c13262cf14f00e1d70bd65d20bbf988479816ca7 build/GMPP01_02/safDll/safDll.rel +51f53e1398c86c5a22251a457e3af86339b4b11f build/GMPP01_02/selmenuDll/selmenuDll.rel +af869e37d004f687fab2ff6897d75d6c15e31a00 build/GMPP01_02/staffDll/staffDll.rel +21de7aff7d39f8e130b4ef7602b8de85e51cf3e5 build/GMPP01_02/subchrselDll/subchrselDll.rel +70ee81af67a4f55de2fef65823583d22312f09be build/GMPP01_02/w01Dll/w01Dll.rel +33b5663ece821df4dbc50870e00de0e22e099efd build/GMPP01_02/w02Dll/w02Dll.rel +97aa16f847cdf2d6fd014f06df14c55f5f02024d build/GMPP01_02/w03Dll/w03Dll.rel +135cf03d803b9d8d39721b2a96769909aa719ee6 build/GMPP01_02/w04Dll/w04Dll.rel +e6d07092b69cc3b0514d9c12e3f5949edeb25f5f build/GMPP01_02/w05Dll/w05Dll.rel +0d5445461f58fac4c043c75bed7237b7f4045188 build/GMPP01_02/w06Dll/w06Dll.rel +5678fedd4a0490aeb9703328e959fdedea7da117 build/GMPP01_02/w10Dll/w10Dll.rel +58ae9e311cc8bd0291921480f423e2ad4774e1a2 build/GMPP01_02/w20Dll/w20Dll.rel +8ea052be8c7585a1ab152682a0698b631c5b566f build/GMPP01_02/w21Dll/w21Dll.rel +8987f11fafd11f69161ca275967afe9c8b4e7b20 build/GMPP01_02/ztardll/ztardll.rel +d59c60b0149a85782fa98d1a4da6cc768a09b473 build/GMPP01_02/E3setupDLL/E3setupDLL.rel +eba8a17e8b263bc9cd601b1aea7e698a8785416a build/GMPP01_02/m300Dll/m300Dll.rel +c457a4a45ebae776331484ba94f5798041a77a57 build/GMPP01_02/m401Dll/m401Dll.rel diff --git a/config/GMPP01_02/config.yml b/config/GMPP01_02/config.yml new file mode 100644 index 00000000..19380dcf --- /dev/null +++ b/config/GMPP01_02/config.yml @@ -0,0 +1,639 @@ +object_base: orig/GMPP01_02 +object: sys/main.dol +hash: 65ef91650e9201047f50a3c39c7693a21fff2b29 +symbols: config/GMPP01_00/symbols.txt +splits: config/GMPP01_00/splits.txt +quick_analysis: false # Faster re-runs after initial analysis +mw_comment_version: 10 # GC 2.6 linker +force_active: [__register_global_object, lbl_801D40D0] + +detect_objects: true +detect_strings: true +fill_gaps: true +modules: +- object: files/dll/_minigameDll.rel + hash: 7101a759bcd45edee5bbc00a36d347c1f787c2a1 + symbols: config/GMPP01_00/rels/_minigameDll/symbols.txt + splits: config/GMPP01_00/rels/_minigameDll/splits.txt + links: [] +- object: files/dll/bootDll.rel + hash: b60fe8dd6faa20663224d64651b80c25b9b202ef + symbols: config/GMPP01_00/rels/bootDll/symbols.txt + splits: config/GMPP01_00/rels/bootDll/splits.txt + links: [] +- object: files/dll/instDll.rel + hash: eef3ac50923ab2f20d588ef10ae15f3bc739f2b8 + symbols: config/GMPP01_00/rels/instDll/symbols.txt + splits: config/GMPP01_00/rels/instDll/splits.txt + links: [] +- object: files/dll/m302Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPP01_00/rels/m302Dll/symbols.txt + splits: config/GMPP01_00/rels/m302Dll/splits.txt + links: [] +- object: files/dll/m303Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPP01_00/rels/m303Dll/symbols.txt + splits: config/GMPP01_00/rels/m303Dll/splits.txt + links: [] +- object: files/dll/m330Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPP01_00/rels/m330Dll/symbols.txt + splits: config/GMPP01_00/rels/m330Dll/splits.txt + links: [] +- object: files/dll/m333Dll.rel + hash: f1ad7b5a5198a14d34141b28c654bc1704c9dcd9 + symbols: config/GMPP01_00/rels/m333Dll/symbols.txt + splits: config/GMPP01_00/rels/m333Dll/splits.txt + links: [] +- object: files/dll/m402Dll.rel + hash: cd3532af828e8217924296c4cadbd31ddd915a05 + symbols: config/GMPP01_00/rels/m402Dll/symbols.txt + splits: config/GMPP01_00/rels/m402Dll/splits.txt + links: [] +- object: files/dll/m403Dll.rel + hash: b2e3cdd9167c579e02c6ecc5643b6aadcc5b6a99 + symbols: config/GMPP01_00/rels/m403Dll/symbols.txt + splits: config/GMPP01_00/rels/m403Dll/splits.txt + links: [] +- object: files/dll/m404Dll.rel + hash: 56c825a1e0bbe33e3a0e1e70396c21af9b575243 + symbols: config/GMPP01_00/rels/m404Dll/symbols.txt + splits: config/GMPP01_00/rels/m404Dll/splits.txt + links: [] +- object: files/dll/m405Dll.rel + hash: cc76ded0a41aea632fd9b3c5e37fe6d847107d91 + symbols: config/GMPP01_00/rels/m405Dll/symbols.txt + splits: config/GMPP01_00/rels/m405Dll/splits.txt + links: [] +- object: files/dll/m406Dll.rel + hash: 5c2aee9c8f10dc763c9ff763874f3a4b58880f02 + symbols: config/GMPP01_00/rels/m406Dll/symbols.txt + splits: config/GMPP01_00/rels/m406Dll/splits.txt + links: [] +- object: files/dll/m407dll.rel + hash: 7133701b7c28a66f9d24ab64081e472d458dad51 + symbols: config/GMPP01_00/rels/m407dll/symbols.txt + splits: config/GMPP01_00/rels/m407dll/splits.txt + links: [] +- object: files/dll/m408Dll.rel + hash: 6f2552516b8e151ccbed99ee6730ca2cb2e0fd49 + symbols: config/GMPP01_00/rels/m408Dll/symbols.txt + splits: config/GMPP01_00/rels/m408Dll/splits.txt + links: [] +- object: files/dll/m409Dll.rel + hash: 71a91946651b40cc217b08d293f23fbf01c7407a + symbols: config/GMPP01_00/rels/m409Dll/symbols.txt + splits: config/GMPP01_00/rels/m409Dll/splits.txt + links: [] +- object: files/dll/m410Dll.rel + hash: e938c2f354224a6a5a7b015f9abae596298788ee + symbols: config/GMPP01_00/rels/m410Dll/symbols.txt + splits: config/GMPP01_00/rels/m410Dll/splits.txt + links: [] +- object: files/dll/m411Dll.rel + hash: e29bae44753c7ce8e5213881b10d6b27c02c4f7a + symbols: config/GMPP01_00/rels/m411Dll/symbols.txt + splits: config/GMPP01_00/rels/m411Dll/splits.txt + links: [] +- object: files/dll/m412Dll.rel + hash: 23da1cff677f992bb76dcbf4a9f9061542b4be7f + symbols: config/GMPP01_00/rels/m412Dll/symbols.txt + splits: config/GMPP01_00/rels/m412Dll/splits.txt + links: [] +- object: files/dll/m413Dll.rel + hash: 6ed381e5b4d75eeab2c3ded39473a482f61ee32d + symbols: config/GMPP01_00/rels/m413Dll/symbols.txt + splits: config/GMPP01_00/rels/m413Dll/splits.txt + links: [] +- object: files/dll/m414Dll.rel + hash: 902f32cc75ac0030c7c531dbeefda055bc8d7f27 + symbols: config/GMPP01_00/rels/m414Dll/symbols.txt + splits: config/GMPP01_00/rels/m414Dll/splits.txt + links: [] +- object: files/dll/m415Dll.rel + hash: 7063ae505540bafebf802128d8d2f394b7f6f921 + symbols: config/GMPP01_00/rels/m415Dll/symbols.txt + splits: config/GMPP01_00/rels/m415Dll/splits.txt + links: [] +- object: files/dll/m416Dll.rel + hash: 2979d5f934b9099116fbd943a91d6a3bb56e6ec0 + symbols: config/GMPP01_00/rels/m416Dll/symbols.txt + splits: config/GMPP01_00/rels/m416Dll/splits.txt + links: [] +- object: files/dll/m417Dll.rel + hash: b20482a2af7c839456fe7580dcbd92ca9984ec71 + symbols: config/GMPP01_00/rels/m417Dll/symbols.txt + splits: config/GMPP01_00/rels/m417Dll/splits.txt + links: [] +- object: files/dll/m418Dll.rel + hash: 762f56820668c74cdcde436a08419bdb59a35a89 + symbols: config/GMPP01_00/rels/m418Dll/symbols.txt + splits: config/GMPP01_00/rels/m418Dll/splits.txt + links: [] +- object: files/dll/m419Dll.rel + hash: 5fba3dfcfca6ef78eb46833f665019bca641063e + symbols: config/GMPP01_00/rels/m419Dll/symbols.txt + splits: config/GMPP01_00/rels/m419Dll/splits.txt + links: [] +- object: files/dll/m420dll.rel + hash: bb514277a33821093fd2acfae2cb86531b317d17 + symbols: config/GMPP01_00/rels/m420dll/symbols.txt + splits: config/GMPP01_00/rels/m420dll/splits.txt + links: [] +- object: files/dll/m421Dll.rel + hash: 216ba8bbc8905f33370ae651d478f6bd56c17b27 + symbols: config/GMPP01_00/rels/m421Dll/symbols.txt + splits: config/GMPP01_00/rels/m421Dll/splits.txt + links: [] +- object: files/dll/m422Dll.rel + hash: 6c152ddb5f518c9c6444030dfc30ab53ef931b40 + symbols: config/GMPP01_00/rels/m422Dll/symbols.txt + splits: config/GMPP01_00/rels/m422Dll/splits.txt + links: [] +- object: files/dll/m423Dll.rel + hash: db80fcb993ce09d808de29d2488f2b1ab2afc8cd + symbols: config/GMPP01_00/rels/m423Dll/symbols.txt + splits: config/GMPP01_00/rels/m423Dll/splits.txt + links: [] +- object: files/dll/m424Dll.rel + hash: 827da0897edcc2706a3623722430d4e70512c653 + symbols: config/GMPP01_00/rels/m424Dll/symbols.txt + splits: config/GMPP01_00/rels/m424Dll/splits.txt + links: [] +- object: files/dll/m425Dll.rel + hash: 26eb36bfc9106af2462a0d7e013f5321dbaecdd1 + symbols: config/GMPP01_00/rels/m425Dll/symbols.txt + splits: config/GMPP01_00/rels/m425Dll/splits.txt + links: [] +- object: files/dll/m426Dll.rel + hash: 04b649fb6eb248e506cf15fdcfbed3e915a80682 + symbols: config/GMPP01_00/rels/m426Dll/symbols.txt + splits: config/GMPP01_00/rels/m426Dll/splits.txt + links: [] +- object: files/dll/m427Dll.rel + hash: 810a1c91f794897862ac9b6a4e076a70c6b0238a + symbols: config/GMPP01_00/rels/m427Dll/symbols.txt + splits: config/GMPP01_00/rels/m427Dll/splits.txt + links: [] +- object: files/dll/m428Dll.rel + hash: 888af662a228e349ea6a0c60e19de74f8fa47914 + symbols: config/GMPP01_00/rels/m428Dll/symbols.txt + splits: config/GMPP01_00/rels/m428Dll/splits.txt + links: [] +- object: files/dll/m429Dll.rel + hash: 88b2330f175d1346a71f67491dcf9eff62d2d2d1 + symbols: config/GMPP01_00/rels/m429Dll/symbols.txt + splits: config/GMPP01_00/rels/m429Dll/splits.txt + links: [] +- object: files/dll/m430Dll.rel + hash: e611007dd71ab515de65e9a6879f0508193fd58a + symbols: config/GMPP01_00/rels/m430Dll/symbols.txt + splits: config/GMPP01_00/rels/m430Dll/splits.txt + links: [] +- object: files/dll/m431Dll.rel + hash: 6a2b097a6d57c36bff5aaeb8c9ea2f01df7407ad + symbols: config/GMPP01_00/rels/m431Dll/symbols.txt + splits: config/GMPP01_00/rels/m431Dll/splits.txt + links: [] +- object: files/dll/m432Dll.rel + hash: 17b6a0c65c7cb759fc460fe7b8eed3dd7dc7184d + symbols: config/GMPP01_00/rels/m432Dll/symbols.txt + splits: config/GMPP01_00/rels/m432Dll/splits.txt + links: [] +- object: files/dll/m433Dll.rel + hash: ce90f494ced6f2611603c247bdc733a458b5a523 + symbols: config/GMPP01_00/rels/m433Dll/symbols.txt + splits: config/GMPP01_00/rels/m433Dll/splits.txt + links: [] +- object: files/dll/m434Dll.rel + hash: 100fe402942821dc8e5753f3cada5e2bf5ab6214 + symbols: config/GMPP01_00/rels/m434Dll/symbols.txt + splits: config/GMPP01_00/rels/m434Dll/splits.txt + links: [] +- object: files/dll/m435Dll.rel + hash: 4936db381fa068395cff28c0d635c5ec7cc7218f + symbols: config/GMPP01_00/rels/m435Dll/symbols.txt + splits: config/GMPP01_00/rels/m435Dll/splits.txt + links: [] +- object: files/dll/m436Dll.rel + hash: ba1c3bdc5f250996a5c873791347ce4c20b38692 + symbols: config/GMPP01_00/rels/m436Dll/symbols.txt + splits: config/GMPP01_00/rels/m436Dll/splits.txt + links: [] +- object: files/dll/m437Dll.rel + hash: 7273786a2995182baf9a85148c5974097999fe8e + symbols: config/GMPP01_00/rels/m437Dll/symbols.txt + splits: config/GMPP01_00/rels/m437Dll/splits.txt + links: [] +- object: files/dll/m438Dll.rel + hash: d7c4bdf1729695a7348f8a36de2911db7aa24abb + symbols: config/GMPP01_00/rels/m438Dll/symbols.txt + splits: config/GMPP01_00/rels/m438Dll/splits.txt + links: [] +- object: files/dll/m439Dll.rel + hash: 4d5a719b49edb55e0b0b52c0d81b31c14d197d20 + symbols: config/GMPP01_00/rels/m439Dll/symbols.txt + splits: config/GMPP01_00/rels/m439Dll/splits.txt + links: [] +- object: files/dll/m440Dll.rel + hash: 469b18886221ae8a5b90f3e85b01ce6a01befb0b + symbols: config/GMPP01_00/rels/m440Dll/symbols.txt + splits: config/GMPP01_00/rels/m440Dll/splits.txt + links: [] +- object: files/dll/m441Dll.rel + hash: 7d6e99b67d2dde25d3fc75ac314c2a69be34137e + symbols: config/GMPP01_00/rels/m441Dll/symbols.txt + splits: config/GMPP01_00/rels/m441Dll/splits.txt + links: [] +- object: files/dll/m442Dll.rel + hash: 63af3c4f33fd362f17aa1be9f764d0549f92598d + symbols: config/GMPP01_00/rels/m442Dll/symbols.txt + splits: config/GMPP01_00/rels/m442Dll/splits.txt + links: [] +- object: files/dll/m443Dll.rel + hash: 5118a0bab1877455eae9002c3cc561d3360fd792 + symbols: config/GMPP01_00/rels/m443Dll/symbols.txt + splits: config/GMPP01_00/rels/m443Dll/splits.txt + links: [] +- object: files/dll/m444dll.rel + hash: a344672428b1e3a1d4bc3ce935472af529a6dd18 + symbols: config/GMPP01_02/rels/m444dll/symbols.txt + splits: config/GMPP01_02/rels/m444dll/splits.txt + links: [] +- object: files/dll/m445Dll.rel + hash: 02f7c52aa6fd4b21a5700615aeaee9ef59e6b9f3 + symbols: config/GMPP01_00/rels/m445Dll/symbols.txt + splits: config/GMPP01_00/rels/m445Dll/splits.txt + links: [] +- object: files/dll/m446dll.rel + hash: 2ab71adae47a3d9632dcf45cf18ca0b1fc33d157 + symbols: config/GMPP01_00/rels/m446dll/symbols.txt + splits: config/GMPP01_00/rels/m446dll/splits.txt + links: [] +- object: files/dll/m447dll.rel + hash: 0640357fe4d0148dac4bc382c8231410e24fe951 + symbols: config/GMPP01_00/rels/m447dll/symbols.txt + splits: config/GMPP01_00/rels/m447dll/splits.txt + links: [] +- object: files/dll/m448Dll.rel + hash: 78bcdd8d1fdb810784fca4d5bbec92c63e2e6b54 + symbols: config/GMPP01_00/rels/m448Dll/symbols.txt + splits: config/GMPP01_00/rels/m448Dll/splits.txt + links: [] +- object: files/dll/m449Dll.rel + hash: fcf6e4b0089e19ffddf01a119c8c515a4acc943a + symbols: config/GMPP01_00/rels/m449Dll/symbols.txt + splits: config/GMPP01_00/rels/m449Dll/splits.txt + links: [] +- object: files/dll/m450Dll.rel + hash: ebcf95781e8078813ed041dd0a869ae2e413679b + symbols: config/GMPP01_00/rels/m450Dll/symbols.txt + splits: config/GMPP01_00/rels/m450Dll/splits.txt + links: [] +- object: files/dll/m451Dll.rel + hash: aa16b743f7b64f22abfd8bb93646883cc73bd7e0 + symbols: config/GMPP01_00/rels/m451Dll/symbols.txt + splits: config/GMPP01_00/rels/m451Dll/splits.txt + links: [] +- object: files/dll/m453Dll.rel + hash: f6fd7a6537e56c535d02ac4a48c9008605f93ea1 + symbols: config/GMPP01_00/rels/m453Dll/symbols.txt + splits: config/GMPP01_00/rels/m453Dll/splits.txt + links: [] +- object: files/dll/m455Dll.rel + hash: cc3431f55b523d474a952f3a0e927fac6b5402ab + symbols: config/GMPP01_00/rels/m455Dll/symbols.txt + splits: config/GMPP01_00/rels/m455Dll/splits.txt + links: [] +- object: files/dll/m456Dll.rel + hash: 09797251306bbd0f6fd712d6f832128ca8c58690 + symbols: config/GMPP01_00/rels/m456Dll/symbols.txt + splits: config/GMPP01_00/rels/m456Dll/splits.txt + links: [] +- object: files/dll/m457Dll.rel + hash: 8a992a09077fd5e1f6ca3e717547792938a519c1 + symbols: config/GMPP01_00/rels/m457Dll/symbols.txt + splits: config/GMPP01_00/rels/m457Dll/splits.txt + links: [] +- object: files/dll/m458Dll.rel + hash: 5dea2127d51d621b30d78b22cfa32327797e6e0b + symbols: config/GMPP01_00/rels/m458Dll/symbols.txt + splits: config/GMPP01_00/rels/m458Dll/splits.txt + links: [] +- object: files/dll/m459dll.rel + hash: e96dafe5949909cb7cc839174aa38e8e6661a63b + symbols: config/GMPP01_00/rels/m459dll/symbols.txt + splits: config/GMPP01_00/rels/m459dll/splits.txt + links: [] +- object: files/dll/m460Dll.rel + hash: ea1e0bda22675840d39c74117e2a11ffe45f8dd4 + symbols: config/GMPP01_00/rels/m460Dll/symbols.txt + splits: config/GMPP01_00/rels/m460Dll/splits.txt + links: [] +- object: files/dll/m461Dll.rel + hash: 8d515f3b92a786df53bb88291b5cfc4bc59a3c8d + symbols: config/GMPP01_00/rels/m461Dll/symbols.txt + splits: config/GMPP01_00/rels/m461Dll/splits.txt + links: [] +- object: files/dll/m462Dll.rel + hash: f02ba47e4459d9b0de174c5619a4efe61942962d + symbols: config/GMPP01_00/rels/m462Dll/symbols.txt + splits: config/GMPP01_00/rels/m462Dll/splits.txt + links: [] +- object: files/dll/m463Dll.rel + hash: 352ad6d84ded6cf28b9ff2f9e5da8812ac9164db + symbols: config/GMPP01_00/rels/m463Dll/symbols.txt + splits: config/GMPP01_00/rels/m463Dll/splits.txt + links: [] +- object: files/dll/mentDll.rel + hash: 4705ada9d259a81ab2815fee3516f6217d848dd9 + symbols: config/GMPP01_00/rels/mentDll/symbols.txt + splits: config/GMPP01_00/rels/mentDll/splits.txt + links: [] +- object: files/dll/messDll.rel + hash: b966ce340e98dbda624ff80f96c78d51ff1ed687 + symbols: config/GMPP01_00/rels/messDll/symbols.txt + splits: config/GMPP01_00/rels/messDll/splits.txt + links: [] +- object: files/dll/mgmodedll.rel + hash: 7a3fed787df2d1bc942efd56a160eaf59605b94f + symbols: config/GMPP01_00/rels/mgmodedll/symbols.txt + splits: config/GMPP01_00/rels/mgmodedll/splits.txt + links: [] +- object: files/dll/modeltestDll.rel + hash: 1e5bf1777b1470fcead2174c25b291b8f0513284 + symbols: config/GMPP01_00/rels/modeltestDll/symbols.txt + splits: config/GMPP01_00/rels/modeltestDll/splits.txt + links: [] +- object: files/dll/modeseldll.rel + hash: d958038528a774801a4f5a0aee9e7aaae4bd94ce + symbols: config/GMPP01_00/rels/modeseldll/symbols.txt + splits: config/GMPP01_00/rels/modeseldll/splits.txt + links: [] +- object: files/dll/mpexDll.rel + hash: a3e1e06937703f98191f4080e092bf06c4f449b3 + symbols: config/GMPP01_00/rels/mpexDll/symbols.txt + splits: config/GMPP01_00/rels/mpexDll/splits.txt + links: [] +- object: files/dll/msetupDll.rel + hash: 86ff8288bb92472376d02cade1d3c9603b613c57 + symbols: config/GMPP01_00/rels/msetupDll/symbols.txt + splits: config/GMPP01_00/rels/msetupDll/splits.txt + links: [] +- object: files/dll/mstory2Dll.rel + hash: 24b3e03e35f5bd395ef80a14babae724b7414190 + symbols: config/GMPP01_02/rels/mstory2Dll/symbols.txt + splits: config/GMPP01_02/rels/mstory2Dll/splits.txt + links: [] +- object: files/dll/mstory3Dll.rel + hash: ccac71c67e5171a02b4a086df4d2daad81455466 + symbols: config/GMPP01_02/rels/mstory3Dll/symbols.txt + splits: config/GMPP01_02/rels/mstory3Dll/splits.txt + links: [] +- object: files/dll/mstory4Dll.rel + hash: a8eee3981f4965412490cb9eef76aaa798957db1 + symbols: config/GMPP01_00/rels/mstory4Dll/symbols.txt + splits: config/GMPP01_00/rels/mstory4Dll/splits.txt + links: [] +- object: files/dll/mstoryDll.rel + hash: 4ef3463c5dc60771468c6ab033dda1391c39d689 + symbols: config/GMPP01_02/rels/mstoryDll/symbols.txt + splits: config/GMPP01_02/rels/mstoryDll/splits.txt + links: [] +- object: files/dll/nisDll.rel + hash: 45619d95e61d9296f25d94d7c6756f397fb89bee + symbols: config/GMPP01_00/rels/nisDll/symbols.txt + splits: config/GMPP01_00/rels/nisDll/splits.txt + links: [] +- object: files/dll/option.rel + hash: 1304967e3aa58a46492d4c736a7c86cf8a3b2e11 + symbols: config/GMPP01_00/rels/option/symbols.txt + splits: config/GMPP01_00/rels/option/splits.txt + links: [] +- object: files/dll/present.rel + hash: 7845814c6be2546930cfd8e0b9dec263fc1a959f + symbols: config/GMPP01_00/rels/present/symbols.txt + splits: config/GMPP01_00/rels/present/splits.txt + links: [] +- object: files/dll/resultDll.rel + hash: d9bd10433d1e2a6c0c4d9f942b766d743f99deec + symbols: config/GMPP01_00/rels/resultDll/symbols.txt + splits: config/GMPP01_00/rels/resultDll/splits.txt + links: [] +- object: files/dll/safDll.rel + hash: c13262cf14f00e1d70bd65d20bbf988479816ca7 + symbols: config/GMPP01_00/rels/safDll/symbols.txt + splits: config/GMPP01_00/rels/safDll/splits.txt + links: [] +- object: files/dll/selmenuDll.rel + hash: 51f53e1398c86c5a22251a457e3af86339b4b11f + symbols: config/GMPP01_00/rels/selmenuDll/symbols.txt + splits: config/GMPP01_00/rels/selmenuDll/splits.txt + links: [] +- object: files/dll/staffDll.rel + hash: af869e37d004f687fab2ff6897d75d6c15e31a00 + symbols: config/GMPP01_00/rels/staffDll/symbols.txt + splits: config/GMPP01_00/rels/staffDll/splits.txt + links: [] +- object: files/dll/subchrselDll.rel + hash: 21de7aff7d39f8e130b4ef7602b8de85e51cf3e5 + symbols: config/GMPP01_00/rels/subchrselDll/symbols.txt + splits: config/GMPP01_00/rels/subchrselDll/splits.txt + links: [] +- object: files/dll/w01Dll.rel + hash: 70ee81af67a4f55de2fef65823583d22312f09be + symbols: config/GMPP01_00/rels/w01Dll/symbols.txt + splits: config/GMPP01_00/rels/w01Dll/splits.txt + links: [] +- object: files/dll/w02Dll.rel + hash: 33b5663ece821df4dbc50870e00de0e22e099efd + symbols: config/GMPP01_00/rels/w02Dll/symbols.txt + splits: config/GMPP01_00/rels/w02Dll/splits.txt + links: [] +- object: files/dll/w03Dll.rel + hash: 97aa16f847cdf2d6fd014f06df14c55f5f02024d + symbols: config/GMPP01_00/rels/w03Dll/symbols.txt + splits: config/GMPP01_00/rels/w03Dll/splits.txt + links: [] +- object: files/dll/w04Dll.rel + hash: 135cf03d803b9d8d39721b2a96769909aa719ee6 + symbols: config/GMPP01_00/rels/w04Dll/symbols.txt + splits: config/GMPP01_00/rels/w04Dll/splits.txt + links: [] +- object: files/dll/w05Dll.rel + hash: e6d07092b69cc3b0514d9c12e3f5949edeb25f5f + symbols: config/GMPP01_00/rels/w05Dll/symbols.txt + splits: config/GMPP01_00/rels/w05Dll/splits.txt + links: [] +- object: files/dll/w06Dll.rel + hash: 0d5445461f58fac4c043c75bed7237b7f4045188 + symbols: config/GMPP01_00/rels/w06Dll/symbols.txt + splits: config/GMPP01_00/rels/w06Dll/splits.txt + links: [] +- object: files/dll/w10Dll.rel + hash: 5678fedd4a0490aeb9703328e959fdedea7da117 + symbols: config/GMPP01_00/rels/w10Dll/symbols.txt + splits: config/GMPP01_00/rels/w10Dll/splits.txt + links: [] +- object: files/dll/w20Dll.rel + hash: 58ae9e311cc8bd0291921480f423e2ad4774e1a2 + symbols: config/GMPP01_00/rels/w20Dll/symbols.txt + splits: config/GMPP01_00/rels/w20Dll/splits.txt + links: [] +- object: files/dll/w21Dll.rel + hash: 8ea052be8c7585a1ab152682a0698b631c5b566f + symbols: config/GMPP01_00/rels/w21Dll/symbols.txt + splits: config/GMPP01_00/rels/w21Dll/splits.txt + links: [] +- object: files/dll/ztardll.rel + hash: 8987f11fafd11f69161ca275967afe9c8b4e7b20 + symbols: config/GMPP01_00/rels/ztardll/symbols.txt + splits: config/GMPP01_00/rels/ztardll/splits.txt + links: [] +- object: files/dll/E3setupDLL.rel + hash: d59c60b0149a85782fa98d1a4da6cc768a09b473 + symbols: config/GMPP01_00/rels/E3setupDLL/symbols.txt + splits: config/GMPP01_00/rels/E3setupDLL/splits.txt + links: [_minigameDll] +- object: files/dll/m300Dll.rel + hash: eba8a17e8b263bc9cd601b1aea7e698a8785416a + symbols: config/GMPP01_00/rels/m300Dll/symbols.txt + splits: config/GMPP01_00/rels/m300Dll/splits.txt + links: [_minigameDll] +- object: files/dll/m401Dll.rel + hash: c457a4a45ebae776331484ba94f5798041a77a57 + symbols: config/GMPP01_00/rels/m401Dll/symbols.txt + splits: config/GMPP01_00/rels/m401Dll/splits.txt + links: [_minigameDll] + +extract: +- symbol: ank8x8_4b + binary: ank8x8_4b.bin + header: ank8x8_4b.inc +- symbol: refMapData0 + binary: refMapData0.anm + header: refMapData0.inc +- symbol: refMapData1 + binary: refMapData1.anm + header: refMapData1.inc +- symbol: refMapData2 + binary: refMapData2.anm + header: refMapData2.inc +- symbol: refMapData3 + binary: refMapData3.anm + header: refMapData3.inc +- symbol: refMapData4 + binary: refMapData4.anm + header: refMapData4.inc +- symbol: toonMapData + binary: toonMapData.anm + header: toonMapData.inc +- symbol: toonMapData2 + binary: toonMapData2.anm + header: toonMapData2.inc +- symbol: hiliteData + binary: hiliteData.anm + header: hiliteData.inc +- symbol: hiliteData2 + binary: hiliteData2.anm + header: hiliteData2.inc +- symbol: hiliteData3 + binary: hiliteData3.anm + header: hiliteData3.inc +- symbol: hiliteData4 + binary: hiliteData4.anm + header: hiliteData4.inc +- symbol: Ascii8x8_1bpp + binary: Ascii8x8_1bpp.bin + header: Ascii8x8_1bpp.inc +- symbol: coveropen_en + binary: coveropen_en.bin + header: coveropen_en.inc +- symbol: fatalerror_en + binary: fatalerror_en.bin + header: fatalerror_en.inc +- symbol: loading_en + binary: loading_en.bin + header: loading_en.inc +- symbol: nodisc_en + binary: nodisc_en.bin + header: nodisc_en.inc +- symbol: retryerror_en + binary: retryerror_en.bin + header: retryerror_en.inc +- symbol: wrongdisc_en + binary: wrongdisc_en.bin + header: wrongdisc_en.inc +- symbol: coveropen_fr + binary: coveropen_fr.bin + header: coveropen_fr.inc +- symbol: fatalerror_fr + binary: fatalerror_fr.bin + header: fatalerror_fr.inc +- symbol: loading_fr + binary: loading_fr.bin + header: loading_fr.inc +- symbol: nodisc_fr + binary: nodisc_fr.bin + header: nodisc_fr.inc +- symbol: retryerror_fr + binary: retryerror_fr.bin + header: retryerror_fr.inc +- symbol: wrongdisc_fr + binary: wrongdisc_fr.bin + header: wrongdisc_fr.inc +- symbol: coveropen_ge + binary: coveropen_ge.bin + header: coveropen_ge.inc +- symbol: fatalerror_ge + binary: fatalerror_ge.bin + header: fatalerror_ge.inc +- symbol: loading_ge + binary: loading_ge.bin + header: loading_ge.inc +- symbol: nodisc_ge + binary: nodisc_ge.bin + header: nodisc_ge.inc +- symbol: retryerror_ge + binary: retryerror_ge.bin + header: retryerror_ge.inc +- symbol: wrongdisc_ge + binary: wrongdisc_ge.bin + header: wrongdisc_ge.inc +- symbol: coveropen_it + binary: coveropen_it.bin + header: coveropen_it.inc +- symbol: fatalerror_it + binary: fatalerror_it.bin + header: fatalerror_it.inc +- symbol: loading_it + binary: loading_it.bin + header: loading_it.inc +- symbol: nodisc_it + binary: nodisc_it.bin + header: nodisc_it.inc +- symbol: retryerror_it + binary: retryerror_it.bin + header: retryerror_it.inc +- symbol: wrongdisc_it + binary: wrongdisc_it.bin + header: wrongdisc_it.inc +- symbol: coveropen_sp + binary: coveropen_sp.bin + header: coveropen_sp.inc +- symbol: fatalerror_sp + binary: fatalerror_sp.bin + header: fatalerror_sp.inc +- symbol: loading_sp + binary: loading_sp.bin + header: loading_sp.inc +- symbol: nodisc_sp + binary: nodisc_sp.bin + header: nodisc_sp.inc +- symbol: retryerror_sp + binary: retryerror_sp.bin + header: retryerror_sp.inc +- symbol: wrongdisc_sp + binary: wrongdisc_sp.bin + header: wrongdisc_sp.inc \ No newline at end of file diff --git a/config/GMPP01_02/rels/m444dll/splits.txt b/config/GMPP01_02/rels/m444dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_02/rels/m444dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_02/rels/m444dll/symbols.txt b/config/GMPP01_02/rels/m444dll/symbols.txt new file mode 100644 index 00000000..45016f3f --- /dev/null +++ b/config/GMPP01_02/rels/m444dll/symbols.txt @@ -0,0 +1,321 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x3D0 +fn_1_470 = .text:0x00000470; // type:function size:0x3788 +fn_1_3BF8 = .text:0x00003BF8; // type:function size:0x1270 +fn_1_4E68 = .text:0x00004E68; // type:function size:0x7C4 +fn_1_562C = .text:0x0000562C; // type:function size:0x1C4 +fn_1_57F0 = .text:0x000057F0; // type:function size:0x6F4 +fn_1_5EE4 = .text:0x00005EE4; // type:function size:0x6F4 +fn_1_65D8 = .text:0x000065D8; // type:function size:0x824 +fn_1_6DFC = .text:0x00006DFC; // type:function size:0xBC +fn_1_6EB8 = .text:0x00006EB8; // type:function size:0xA0 +fn_1_6F58 = .text:0x00006F58; // type:function size:0x3B4 +fn_1_730C = .text:0x0000730C; // type:function size:0xC2C +fn_1_7F38 = .text:0x00007F38; // type:function size:0x2C4 +fn_1_81FC = .text:0x000081FC; // type:function size:0x90 +fn_1_828C = .text:0x0000828C; // type:function size:0xEC +fn_1_8378 = .text:0x00008378; // type:function size:0x128 +fn_1_84A0 = .text:0x000084A0; // type:function size:0x1F8 +fn_1_8698 = .text:0x00008698; // type:function size:0x7B4 +fn_1_8E4C = .text:0x00008E4C; // type:function size:0x648 +fn_1_9494 = .text:0x00009494; // type:function size:0x894 +fn_1_9D28 = .text:0x00009D28; // type:function size:0x3B4 +fn_1_A0DC = .text:0x0000A0DC; // type:function size:0xB70 +fn_1_AC4C = .text:0x0000AC4C; // type:function size:0x618 +fn_1_B264 = .text:0x0000B264; // type:function size:0x1108 +fn_1_C36C = .text:0x0000C36C; // type:function size:0x528 +fn_1_C894 = .text:0x0000C894; // type:function size:0x2F4 +fn_1_CB88 = .text:0x0000CB88; // type:function size:0x140 +fn_1_CCC8 = .text:0x0000CCC8; // type:function size:0x298 +fn_1_CF60 = .text:0x0000CF60; // type:function size:0x194 +fn_1_D0F4 = .text:0x0000D0F4; // type:function size:0x244 +fn_1_D338 = .text:0x0000D338; // type:function size:0x3A8 +fn_1_D6E0 = .text:0x0000D6E0; // type:function size:0x290 +fn_1_D970 = .text:0x0000D970; // type:function size:0x138 +fn_1_DAA8 = .text:0x0000DAA8; // type:function size:0x78 +fn_1_DB20 = .text:0x0000DB20; // type:function size:0x2C +fn_1_DB4C = .text:0x0000DB4C; // type:function size:0x42C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0xC data:4byte +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 data:double +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x118 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x28 +lbl_1_data_140 = .data:0x00000140; // type:object size:0x54 data:float +lbl_1_data_194 = .data:0x00000194; // type:object size:0x20 +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0xA data:string +lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0xA data:string +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xA data:string +lbl_1_data_1F6 = .data:0x000001F6; // type:object size:0xD data:string +lbl_1_data_203 = .data:0x00000203; // type:object size:0xD data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0xD data:string +lbl_1_data_21D = .data:0x0000021D; // type:object size:0xD data:string +lbl_1_data_22A = .data:0x0000022A; // type:object size:0xB data:string +lbl_1_data_235 = .data:0x00000235; // type:object size:0xB data:string +lbl_1_data_240 = .data:0x00000240; // type:object size:0x4 +lbl_1_data_244 = .data:0x00000244; // type:object size:0xA data:string +lbl_1_data_24E = .data:0x0000024E; // type:object size:0xA +lbl_1_data_258 = .data:0x00000258; // type:object size:0xC +lbl_1_data_264 = .data:0x00000264; // type:object size:0x3C +lbl_1_data_2A0 = .data:0x000002A0; // type:object size:0x28 +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0xA +lbl_1_data_2D2 = .data:0x000002D2; // type:object size:0xD data:string +lbl_1_data_2DF = .data:0x000002DF; // type:object size:0xD data:string +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xD data:string +lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0xD data:string +lbl_1_data_306 = .data:0x00000306; // type:object size:0xD data:string +lbl_1_data_313 = .data:0x00000313; // type:object size:0xD data:string +lbl_1_data_320 = .data:0x00000320; // type:object size:0xD data:string +lbl_1_data_32D = .data:0x0000032D; // type:object size:0xD data:string +lbl_1_data_33A = .data:0x0000033A; // type:object size:0xD data:string +lbl_1_data_347 = .data:0x00000347; // type:object size:0xD data:string +lbl_1_data_354 = .data:0x00000354; // type:object size:0xD data:string +lbl_1_data_361 = .data:0x00000361; // type:object size:0xD data:string +lbl_1_data_36E = .data:0x0000036E; // type:object size:0xD data:string +lbl_1_data_37B = .data:0x0000037B; // type:object size:0xD data:string +jumptable_1_data_388 = .data:0x00000388; // type:object size:0x1C scope:local +lbl_1_data_3A4 = .data:0x000003A4; // type:object size:0x8 +lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x30 +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x24 +lbl_1_data_400 = .data:0x00000400; // type:object size:0x54 +lbl_1_data_454 = .data:0x00000454; // type:object size:0xC +lbl_1_data_460 = .data:0x00000460; // type:object size:0x10 data:string +lbl_1_data_470 = .data:0x00000470; // type:object size:0x127C +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x140 data:2byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x140 data:2byte +lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x8 data:float +lbl_1_bss_290 = .bss:0x00000290; // type:object size:0x18 data:4byte +lbl_1_bss_2A8 = .bss:0x000002A8; // type:object size:0x18 data:float +lbl_1_bss_2C0 = .bss:0x000002C0; // type:object size:0x10 data:2byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x2 data:2byte +lbl_1_bss_2D2 = .bss:0x000002D2; // type:object size:0x2 data:2byte +lbl_1_bss_2D4 = .bss:0x000002D4; // type:object size:0x2 data:2byte +lbl_1_bss_2D6 = .bss:0x000002D6; // type:object size:0x2 data:2byte +lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0x2 data:2byte +lbl_1_bss_2DA = .bss:0x000002DA; // type:object size:0x2 data:2byte +lbl_1_bss_2DC = .bss:0x000002DC; // type:object size:0x2 data:2byte +lbl_1_bss_2E0 = .bss:0x000002E0; // type:object size:0x4 data:float +lbl_1_bss_2E4 = .bss:0x000002E4; // type:object size:0xC data:float +lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0xC data:4byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0xC data:4byte +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0x4 data:4byte +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0x4 data:4byte +lbl_1_bss_310 = .bss:0x00000310; // type:object size:0x1 data:byte +lbl_1_bss_312 = .bss:0x00000312; // type:object size:0x2 data:2byte +lbl_1_bss_314 = .bss:0x00000314; // type:object size:0xC data:float +lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x8 data:2byte +lbl_1_bss_328 = .bss:0x00000328; // type:object size:0x24 data:float +lbl_1_bss_34C = .bss:0x0000034C; // type:object size:0x24 data:float +lbl_1_bss_370 = .bss:0x00000370; // type:object size:0x400 +lbl_1_bss_770 = .bss:0x00000770; // type:object size:0xC data:float +lbl_1_bss_77C = .bss:0x0000077C; // type:object size:0xC data:float +lbl_1_bss_788 = .bss:0x00000788; // type:object size:0xC +lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x90 +lbl_1_bss_824 = .bss:0x00000824; // type:object size:0x3C +lbl_1_bss_860 = .bss:0x00000860; // type:object size:0x24 +lbl_1_bss_884 = .bss:0x00000884; // type:object size:0x1000 +lbl_1_bss_1884 = .bss:0x00001884; // type:object size:0x2 data:2byte +lbl_1_bss_1888 = .bss:0x00001888; // type:object size:0xC data:float +lbl_1_bss_1894 = .bss:0x00001894; // type:object size:0xC data:float +lbl_1_bss_18A0 = .bss:0x000018A0; // type:object size:0x14 +lbl_1_bss_18B4 = .bss:0x000018B4; // type:object size:0x3C +lbl_1_bss_18F0 = .bss:0x000018F0; // type:object size:0xC000 +lbl_1_bss_D8F0 = .bss:0x0000D8F0; // type:object size:0xC000 +lbl_1_bss_198F0 = .bss:0x000198F0; // type:object size:0x1A +lbl_1_bss_1990A = .bss:0x0001990A; // type:object size:0x2 data:2byte +lbl_1_bss_1990E = .bss:0x0001990E; // type:object size:0xB4 data:2byte +lbl_1_bss_199C2 = .bss:0x000199C2; // type:object size:0xB4 data:2byte diff --git a/config/GMPP01_02/rels/mstory2Dll/splits.txt b/config/GMPP01_02/rels/mstory2Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_02/rels/mstory2Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_02/rels/mstory2Dll/symbols.txt b/config/GMPP01_02/rels/mstory2Dll/symbols.txt new file mode 100644 index 00000000..a43c0850 --- /dev/null +++ b/config/GMPP01_02/rels/mstory2Dll/symbols.txt @@ -0,0 +1,709 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x2A0 +_prolog = .text:0x00000344; // type:function size:0x54 scope:global +_epilog = .text:0x00000398; // type:function size:0x4C scope:global +fn_1_3E4 = .text:0x000003E4; // type:function size:0x110 +fn_1_4F4 = .text:0x000004F4; // type:function size:0x1B8 +fn_1_6AC = .text:0x000006AC; // type:function size:0x1B8 +fn_1_864 = .text:0x00000864; // type:function size:0x28 +fn_1_88C = .text:0x0000088C; // type:function size:0x20 +fn_1_8AC = .text:0x000008AC; // type:function size:0xD8 +fn_1_984 = .text:0x00000984; // type:function size:0xC8 +fn_1_A4C = .text:0x00000A4C; // type:function size:0xBC +fn_1_B08 = .text:0x00000B08; // type:function size:0xBC +fn_1_BC4 = .text:0x00000BC4; // type:function size:0x4 +fn_1_BC8 = .text:0x00000BC8; // type:function size:0x20 +fn_1_BE8 = .text:0x00000BE8; // type:function size:0x28 +fn_1_C10 = .text:0x00000C10; // type:function size:0x20 +fn_1_C30 = .text:0x00000C30; // type:function size:0x24 +fn_1_C54 = .text:0x00000C54; // type:function size:0x4 +fn_1_C58 = .text:0x00000C58; // type:function size:0xA48 +fn_1_16A0 = .text:0x000016A0; // type:function size:0x1BC +fn_1_185C = .text:0x0000185C; // type:function size:0x1D8 +fn_1_1A34 = .text:0x00001A34; // type:function size:0x60 +fn_1_1A94 = .text:0x00001A94; // type:function size:0x68 +fn_1_1AFC = .text:0x00001AFC; // type:function size:0xAC +fn_1_1BA8 = .text:0x00001BA8; // type:function size:0xBC +fn_1_1C64 = .text:0x00001C64; // type:function size:0xB4 +fn_1_1D18 = .text:0x00001D18; // type:function size:0x34 +fn_1_1D4C = .text:0x00001D4C; // type:function size:0x40 +fn_1_1D8C = .text:0x00001D8C; // type:function size:0x70 +fn_1_1DFC = .text:0x00001DFC; // type:function size:0x188 +fn_1_1F84 = .text:0x00001F84; // type:function size:0x2E0 +fn_1_2264 = .text:0x00002264; // type:function size:0x90 +fn_1_22F4 = .text:0x000022F4; // type:function size:0x48 +fn_1_233C = .text:0x0000233C; // type:function size:0x54 +fn_1_2390 = .text:0x00002390; // type:function size:0x3C0 +fn_1_2750 = .text:0x00002750; // type:function size:0x10 +fn_1_2760 = .text:0x00002760; // type:function size:0x10 +fn_1_2770 = .text:0x00002770; // type:function size:0xB8 +fn_1_2828 = .text:0x00002828; // type:function size:0x120 +fn_1_2948 = .text:0x00002948; // type:function size:0x3B8 +fn_1_2D00 = .text:0x00002D00; // type:function size:0x7F4 +fn_1_34F4 = .text:0x000034F4; // type:function size:0x88 +fn_1_357C = .text:0x0000357C; // type:function size:0x94 +fn_1_3610 = .text:0x00003610; // type:function size:0x58 +fn_1_3668 = .text:0x00003668; // type:function size:0xEC +fn_1_3754 = .text:0x00003754; // type:function size:0xC4 +fn_1_3818 = .text:0x00003818; // type:function size:0x3C +fn_1_3854 = .text:0x00003854; // type:function size:0x44 +fn_1_3898 = .text:0x00003898; // type:function size:0x26C +fn_1_3B04 = .text:0x00003B04; // type:function size:0x26C +fn_1_3D70 = .text:0x00003D70; // type:function size:0x27C +fn_1_3FEC = .text:0x00003FEC; // type:function size:0x2B4 +fn_1_42A0 = .text:0x000042A0; // type:function size:0x46C +fn_1_470C = .text:0x0000470C; // type:function size:0x454 +fn_1_4B60 = .text:0x00004B60; // type:function size:0x48C +fn_1_4FEC = .text:0x00004FEC; // type:function size:0x658 +fn_1_5644 = .text:0x00005644; // type:function size:0x4C4 +fn_1_5B08 = .text:0x00005B08; // type:function size:0x4FC +fn_1_6004 = .text:0x00006004; // type:function size:0x6C8 +fn_1_66CC = .text:0x000066CC; // type:function size:0x38 +fn_1_6704 = .text:0x00006704; // type:function size:0xD4 +fn_1_67D8 = .text:0x000067D8; // type:function size:0x198 +fn_1_6970 = .text:0x00006970; // type:function size:0x34 +fn_1_69A4 = .text:0x000069A4; // type:function size:0x40 +fn_1_69E4 = .text:0x000069E4; // type:function size:0xAC +fn_1_6A90 = .text:0x00006A90; // type:function size:0x2E8 +fn_1_6D78 = .text:0x00006D78; // type:function size:0x44 +fn_1_6DBC = .text:0x00006DBC; // type:function size:0x1F4 +fn_1_6FB0 = .text:0x00006FB0; // type:function size:0xB4 +fn_1_7064 = .text:0x00007064; // type:function size:0x178 +fn_1_71DC = .text:0x000071DC; // type:function size:0x68 +fn_1_7244 = .text:0x00007244; // type:function size:0x140 +fn_1_7384 = .text:0x00007384; // type:function size:0xA2C +fn_1_7DB0 = .text:0x00007DB0; // type:function size:0x1A4 +fn_1_7F54 = .text:0x00007F54; // type:function size:0x118 +fn_1_806C = .text:0x0000806C; // type:function size:0x8C +fn_1_80F8 = .text:0x000080F8; // type:function size:0x488 +fn_1_8580 = .text:0x00008580; // type:function size:0x5C +fn_1_85DC = .text:0x000085DC; // type:function size:0x1F8 +fn_1_87D4 = .text:0x000087D4; // type:function size:0x2E8 +fn_1_8ABC = .text:0x00008ABC; // type:function size:0x578 +fn_1_9034 = .text:0x00009034; // type:function size:0x164 +fn_1_9198 = .text:0x00009198; // type:function size:0x124 +fn_1_92BC = .text:0x000092BC; // type:function size:0x4AC +fn_1_9768 = .text:0x00009768; // type:function size:0xB4 +fn_1_981C = .text:0x0000981C; // type:function size:0x138 +fn_1_9954 = .text:0x00009954; // type:function size:0xBC +fn_1_9A10 = .text:0x00009A10; // type:function size:0x1C4 +fn_1_9BD4 = .text:0x00009BD4; // type:function size:0xE4 +fn_1_9CB8 = .text:0x00009CB8; // type:function size:0x214 +fn_1_9ECC = .text:0x00009ECC; // type:function size:0x110 +fn_1_9FDC = .text:0x00009FDC; // type:function size:0x2AC +fn_1_A288 = .text:0x0000A288; // type:function size:0x220 +fn_1_A4A8 = .text:0x0000A4A8; // type:function size:0xE4 +fn_1_A58C = .text:0x0000A58C; // type:function size:0x2BC +fn_1_A848 = .text:0x0000A848; // type:function size:0x2C8 +fn_1_AB10 = .text:0x0000AB10; // type:function size:0x2A0 +fn_1_ADB0 = .text:0x0000ADB0; // type:function size:0xAC +fn_1_AE5C = .text:0x0000AE5C; // type:function size:0x364 +fn_1_B1C0 = .text:0x0000B1C0; // type:function size:0x8C +fn_1_B24C = .text:0x0000B24C; // type:function size:0x130 +fn_1_B37C = .text:0x0000B37C; // type:function size:0x68 +fn_1_B3E4 = .text:0x0000B3E4; // type:function size:0x134 +fn_1_B518 = .text:0x0000B518; // type:function size:0x8C +fn_1_B5A4 = .text:0x0000B5A4; // type:function size:0x3E0 +fn_1_B984 = .text:0x0000B984; // type:function size:0x5C +fn_1_B9E0 = .text:0x0000B9E0; // type:function size:0xB0 +fn_1_BA90 = .text:0x0000BA90; // type:function size:0x360 +fn_1_BDF0 = .text:0x0000BDF0; // type:function size:0x158 +fn_1_BF48 = .text:0x0000BF48; // type:function size:0x328 +fn_1_C270 = .text:0x0000C270; // type:function size:0x250 +fn_1_C4C0 = .text:0x0000C4C0; // type:function size:0xB4 +fn_1_C574 = .text:0x0000C574; // type:function size:0x228 +fn_1_C79C = .text:0x0000C79C; // type:function size:0xBC +fn_1_C858 = .text:0x0000C858; // type:function size:0x2B4 +fn_1_CB0C = .text:0x0000CB0C; // type:function size:0x1C0 +fn_1_CCCC = .text:0x0000CCCC; // type:function size:0xAC +fn_1_CD78 = .text:0x0000CD78; // type:function size:0x2B8 +fn_1_D030 = .text:0x0000D030; // type:function size:0x1F4 +fn_1_D224 = .text:0x0000D224; // type:function size:0xAC +fn_1_D2D0 = .text:0x0000D2D0; // type:function size:0xC4 +fn_1_D394 = .text:0x0000D394; // type:function size:0xE4 +fn_1_D478 = .text:0x0000D478; // type:function size:0x2EC +fn_1_D764 = .text:0x0000D764; // type:function size:0x134 +fn_1_D898 = .text:0x0000D898; // type:function size:0x2C0 +fn_1_DB58 = .text:0x0000DB58; // type:function size:0xFC +fn_1_DC54 = .text:0x0000DC54; // type:function size:0x170 +fn_1_DDC4 = .text:0x0000DDC4; // type:function size:0x3F4 +fn_1_E1B8 = .text:0x0000E1B8; // type:function size:0x8C +fn_1_E244 = .text:0x0000E244; // type:function size:0xF0 +fn_1_E334 = .text:0x0000E334; // type:function size:0x23C +fn_1_E570 = .text:0x0000E570; // type:function size:0xC8 +fn_1_E638 = .text:0x0000E638; // type:function size:0x2B4 +fn_1_E8EC = .text:0x0000E8EC; // type:function size:0x140 +fn_1_EA2C = .text:0x0000EA2C; // type:function size:0x134 +fn_1_EB60 = .text:0x0000EB60; // type:function size:0x8C +fn_1_EBEC = .text:0x0000EBEC; // type:function size:0x3E0 +fn_1_EFCC = .text:0x0000EFCC; // type:function size:0x5C +fn_1_F028 = .text:0x0000F028; // type:function size:0x128 +fn_1_F150 = .text:0x0000F150; // type:function size:0xDC +fn_1_F22C = .text:0x0000F22C; // type:function size:0xD0 +fn_1_F2FC = .text:0x0000F2FC; // type:function size:0xD4 +fn_1_F3D0 = .text:0x0000F3D0; // type:function size:0x468 +fn_1_F838 = .text:0x0000F838; // type:function size:0x4 +fn_1_F83C = .text:0x0000F83C; // type:function size:0x78 +fn_1_F8B4 = .text:0x0000F8B4; // type:function size:0x548 +fn_1_FDFC = .text:0x0000FDFC; // type:function size:0xB4 +fn_1_FEB0 = .text:0x0000FEB0; // type:function size:0x228 +fn_1_100D8 = .text:0x000100D8; // type:function size:0xBC +fn_1_10194 = .text:0x00010194; // type:function size:0x2B4 +fn_1_10448 = .text:0x00010448; // type:function size:0x1BC +fn_1_10604 = .text:0x00010604; // type:function size:0xAC +fn_1_106B0 = .text:0x000106B0; // type:function size:0x29C +fn_1_1094C = .text:0x0001094C; // type:function size:0x2B4 +fn_1_10C00 = .text:0x00010C00; // type:function size:0x1F4 +fn_1_10DF4 = .text:0x00010DF4; // type:function size:0xAC +fn_1_10EA0 = .text:0x00010EA0; // type:function size:0xE4 +fn_1_10F84 = .text:0x00010F84; // type:function size:0xC4 +fn_1_11048 = .text:0x00011048; // type:function size:0xE4 +fn_1_1112C = .text:0x0001112C; // type:function size:0x2EC +fn_1_11418 = .text:0x00011418; // type:function size:0x134 +fn_1_1154C = .text:0x0001154C; // type:function size:0x2EC +fn_1_11838 = .text:0x00011838; // type:function size:0xFC +fn_1_11934 = .text:0x00011934; // type:function size:0x164 +fn_1_11A98 = .text:0x00011A98; // type:function size:0x118 +fn_1_11BB0 = .text:0x00011BB0; // type:function size:0x420 +fn_1_11FD0 = .text:0x00011FD0; // type:function size:0x8C +fn_1_1205C = .text:0x0001205C; // type:function size:0x130 +fn_1_1218C = .text:0x0001218C; // type:function size:0x23C +fn_1_123C8 = .text:0x000123C8; // type:function size:0x1A4 +fn_1_1256C = .text:0x0001256C; // type:function size:0x124 +fn_1_12690 = .text:0x00012690; // type:function size:0x8C +fn_1_1271C = .text:0x0001271C; // type:function size:0x3AC +fn_1_12AC8 = .text:0x00012AC8; // type:function size:0x48 +fn_1_12B10 = .text:0x00012B10; // type:function size:0x2C4 +fn_1_12DD4 = .text:0x00012DD4; // type:function size:0x37C +fn_1_13150 = .text:0x00013150; // type:function size:0x70 +fn_1_131C0 = .text:0x000131C0; // type:function size:0xA4 +fn_1_13264 = .text:0x00013264; // type:function size:0x5C4 +fn_1_13828 = .text:0x00013828; // type:function size:0xA4 +fn_1_138CC = .text:0x000138CC; // type:function size:0x14C +fn_1_13A18 = .text:0x00013A18; // type:function size:0x1A0 +fn_1_13BB8 = .text:0x00013BB8; // type:function size:0xB4 +fn_1_13C6C = .text:0x00013C6C; // type:function size:0x348 +fn_1_13FB4 = .text:0x00013FB4; // type:function size:0xEC +fn_1_140A0 = .text:0x000140A0; // type:function size:0xCC +fn_1_1416C = .text:0x0001416C; // type:function size:0x330 +fn_1_1449C = .text:0x0001449C; // type:function size:0x3CC +fn_1_14868 = .text:0x00014868; // type:function size:0x234 +fn_1_14A9C = .text:0x00014A9C; // type:function size:0xAC +fn_1_14B48 = .text:0x00014B48; // type:function size:0xF8 +fn_1_14C40 = .text:0x00014C40; // type:function size:0x32C +fn_1_14F6C = .text:0x00014F6C; // type:function size:0x1C8 +fn_1_15134 = .text:0x00015134; // type:function size:0xAC +fn_1_151E0 = .text:0x000151E0; // type:function size:0xE4 +fn_1_152C4 = .text:0x000152C4; // type:function size:0xE4 +fn_1_153A8 = .text:0x000153A8; // type:function size:0x2C0 +fn_1_15668 = .text:0x00015668; // type:function size:0xE4 +fn_1_1574C = .text:0x0001574C; // type:function size:0x1F8 +fn_1_15944 = .text:0x00015944; // type:function size:0xAC +fn_1_159F0 = .text:0x000159F0; // type:function size:0x2EC +fn_1_15CDC = .text:0x00015CDC; // type:function size:0x8C +fn_1_15D68 = .text:0x00015D68; // type:function size:0xF0 +fn_1_15E58 = .text:0x00015E58; // type:function size:0x118 +fn_1_15F70 = .text:0x00015F70; // type:function size:0xF0 +fn_1_16060 = .text:0x00016060; // type:function size:0x118 +fn_1_16178 = .text:0x00016178; // type:function size:0x8C +fn_1_16204 = .text:0x00016204; // type:function size:0x3AC +fn_1_165B0 = .text:0x000165B0; // type:function size:0x5C +fn_1_1660C = .text:0x0001660C; // type:function size:0x110 +fn_1_1671C = .text:0x0001671C; // type:function size:0x194 +fn_1_168B0 = .text:0x000168B0; // type:function size:0xD4 +fn_1_16984 = .text:0x00016984; // type:function size:0x50 +fn_1_169D4 = .text:0x000169D4; // type:function size:0x4 +fn_1_169D8 = .text:0x000169D8; // type:function size:0xF4 +fn_1_16ACC = .text:0x00016ACC; // type:function size:0x4F4 +fn_1_16FC0 = .text:0x00016FC0; // type:function size:0xB4 +fn_1_17074 = .text:0x00017074; // type:function size:0x208 +fn_1_1727C = .text:0x0001727C; // type:function size:0xBC +fn_1_17338 = .text:0x00017338; // type:function size:0x294 +fn_1_175CC = .text:0x000175CC; // type:function size:0x180 +fn_1_1774C = .text:0x0001774C; // type:function size:0xAC +fn_1_177F8 = .text:0x000177F8; // type:function size:0x278 +fn_1_17A70 = .text:0x00017A70; // type:function size:0x128 +fn_1_17B98 = .text:0x00017B98; // type:function size:0xAC +fn_1_17C44 = .text:0x00017C44; // type:function size:0x220 +fn_1_17E64 = .text:0x00017E64; // type:function size:0xE4 +fn_1_17F48 = .text:0x00017F48; // type:function size:0x190 +fn_1_180D8 = .text:0x000180D8; // type:function size:0xAC +fn_1_18184 = .text:0x00018184; // type:function size:0x284 +fn_1_18408 = .text:0x00018408; // type:function size:0x8C +fn_1_18494 = .text:0x00018494; // type:function size:0x23C +fn_1_186D0 = .text:0x000186D0; // type:function size:0x220 +fn_1_188F0 = .text:0x000188F0; // type:function size:0x144 +fn_1_18A34 = .text:0x00018A34; // type:function size:0x8C +fn_1_18AC0 = .text:0x00018AC0; // type:function size:0x3BC +fn_1_18E7C = .text:0x00018E7C; // type:function size:0x48 +fn_1_18EC4 = .text:0x00018EC4; // type:function size:0x274 +fn_1_19138 = .text:0x00019138; // type:function size:0x1FC +fn_1_19334 = .text:0x00019334; // type:function size:0x6B0 +fn_1_199E4 = .text:0x000199E4; // type:function size:0x248 +fn_1_19C2C = .text:0x00019C2C; // type:function size:0x84 +fn_1_19CB0 = .text:0x00019CB0; // type:function size:0x2A8 +fn_1_19F58 = .text:0x00019F58; // type:function size:0xB4 +fn_1_1A00C = .text:0x0001A00C; // type:function size:0x198 +fn_1_1A1A4 = .text:0x0001A1A4; // type:function size:0x208 +fn_1_1A3AC = .text:0x0001A3AC; // type:function size:0x1D0 +fn_1_1A57C = .text:0x0001A57C; // type:function size:0x40 +fn_1_1A5BC = .text:0x0001A5BC; // type:function size:0x254 +fn_1_1A810 = .text:0x0001A810; // type:function size:0x204 +fn_1_1AA14 = .text:0x0001AA14; // type:function size:0xE4 +fn_1_1AAF8 = .text:0x0001AAF8; // type:function size:0x288 +fn_1_1AD80 = .text:0x0001AD80; // type:function size:0xE4 +fn_1_1AE64 = .text:0x0001AE64; // type:function size:0x1B4 +fn_1_1B018 = .text:0x0001B018; // type:function size:0x110 +fn_1_1B128 = .text:0x0001B128; // type:function size:0x234 +fn_1_1B35C = .text:0x0001B35C; // type:function size:0x8C +fn_1_1B3E8 = .text:0x0001B3E8; // type:function size:0x8C +fn_1_1B474 = .text:0x0001B474; // type:function size:0x130 +fn_1_1B5A4 = .text:0x0001B5A4; // type:function size:0xEC +fn_1_1B690 = .text:0x0001B690; // type:function size:0x23C +fn_1_1B8CC = .text:0x0001B8CC; // type:function size:0x9C +fn_1_1B968 = .text:0x0001B968; // type:function size:0x50 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC data:4byte +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC data:4byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 data:byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 data:byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC data:4byte +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 data:byte +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC data:4byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC data:4byte +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 data:byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 data:byte +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC data:4byte +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte +lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 data:string +lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0xF +lbl_1_data_144 = .data:0x00000144; // type:object size:0x18 +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 data:string +jumptable_1_data_19C = .data:0x0000019C; // type:object size:0x54 scope:local +jumptable_1_data_1F0 = .data:0x000001F0; // type:object size:0x54 scope:local +lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A data:string +lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0xE data:string +lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 data:string +lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 data:string +lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 data:string +lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 data:string +lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 +lbl_1_data_308 = .data:0x00000308; // type:object size:0x20 +lbl_1_data_328 = .data:0x00000328; // type:object size:0x60 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 data:string +lbl_1_data_399 = .data:0x00000399; // type:object size:0x33 +lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x10 +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x4 data:4byte +lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x8 data:4byte +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 data:string +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 data:string +lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 data:string +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 data:string +lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA data:string +lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C data:string +lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D data:string +lbl_1_data_50C = .data:0x0000050C; // type:object size:0x14 +lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 data:string +lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 data:string +lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 data:string +lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 data:string +lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 data:string +lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 data:string +lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 data:string +lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 data:string +lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA data:string +lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C data:string +lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D data:string +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 data:string +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C data:string +lbl_1_data_668 = .data:0x00000668; // type:object size:0x30 +lbl_1_data_698 = .data:0x00000698; // type:object size:0x3C +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 data:string +lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 data:string +lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 data:string +lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 data:string +lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 data:string +lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 data:string +lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 data:string +lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 data:string +lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 data:string +lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C data:string +lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D data:string +lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 data:string +lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C +lbl_1_data_81C = .data:0x0000081C; // type:object size:0x34 +lbl_1_data_850 = .data:0x00000850; // type:object size:0x3C0 +lbl_1_data_C10 = .data:0x00000C10; // type:object size:0x10 +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0x4 data:4byte +lbl_1_data_C24 = .data:0x00000C24; // type:object size:0x8 data:4byte +lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 data:string +lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 data:string +lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 data:string +lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 data:string +lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 data:string +lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 data:string +lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 data:string +lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 data:string +lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 data:string +lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 data:string +lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 data:string +lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA data:string +lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C data:string +lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D data:string +lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C data:string +lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 data:string +lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 data:string +lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0xB +lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 data:string +lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 data:string +lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 data:string +lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 data:string +lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 data:string +lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 data:string +lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 data:string +lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 data:string +lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 data:string +lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 data:string +lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA data:string +lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C data:string +lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D data:string +lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 data:string +lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x20 +lbl_1_data_EF8 = .data:0x00000EF8; // type:object size:0x10 +lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x4 data:4byte +lbl_1_data_F0C = .data:0x00000F0C; // type:object size:0x8 data:4byte +lbl_1_data_F14 = .data:0x00000F14; // type:object size:0x4 data:4byte +lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 data:string +lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 data:string +lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 data:string +lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 data:string +lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 data:string +lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 data:string +lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 data:string +lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 data:string +lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 data:string +lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 data:string +lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 data:string +lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA data:string +lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C data:string +lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D data:string +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 data:string +lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 data:string +lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 data:string +lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 data:string +lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 data:string +lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 data:string +lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 data:string +lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 data:string +lbl_1_data_10E4 = .data:0x000010E4; // type:object size:0x20 +lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x24 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x54 data:float +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x10 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x40 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x28 data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x28 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x28 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x28 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x28 data:4byte +lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x104 data:float +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x4 data:4byte +lbl_1_bss_29C = .bss:0x0000029C; // type:object size:0xA0 +lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x28 data:4byte +lbl_1_bss_364 = .bss:0x00000364; // type:object size:0x28 data:4byte +lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x28 data:4byte +lbl_1_bss_3B4 = .bss:0x000003B4; // type:object size:0x28 data:4byte +lbl_1_bss_3DC = .bss:0x000003DC; // type:object size:0x104 data:4byte +lbl_1_bss_4E0 = .bss:0x000004E0; // type:object size:0x4 data:4byte +lbl_1_bss_4E4 = .bss:0x000004E4; // type:object size:0x4 data:4byte +lbl_1_bss_4E8 = .bss:0x000004E8; // type:object size:0x60 data:4byte +lbl_1_bss_548 = .bss:0x00000548; // type:object size:0xA0 +lbl_1_bss_5E8 = .bss:0x000005E8; // type:object size:0x28 data:4byte +lbl_1_bss_610 = .bss:0x00000610; // type:object size:0x28 data:4byte +lbl_1_bss_638 = .bss:0x00000638; // type:object size:0x28 data:4byte +lbl_1_bss_660 = .bss:0x00000660; // type:object size:0x28 data:4byte +lbl_1_bss_688 = .bss:0x00000688; // type:object size:0x108 data:float +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x4 data:4byte +lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x4 data:4byte +lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x28 data:4byte +lbl_1_bss_7C0 = .bss:0x000007C0; // type:object size:0x28 data:4byte +lbl_1_bss_7E8 = .bss:0x000007E8; // type:object size:0x28 data:4byte +lbl_1_bss_810 = .bss:0x00000810; // type:object size:0x28 data:4byte +lbl_1_bss_838 = .bss:0x00000838; // type:object size:0x28 data:4byte +lbl_1_bss_860 = .bss:0x00000860; // type:object size:0x108 data:4byte +lbl_1_bss_968 = .bss:0x00000968; // type:object size:0x4 data:4byte +lbl_1_bss_96C = .bss:0x0000096C; // type:object size:0x28 data:4byte +lbl_1_bss_994 = .bss:0x00000994; // type:object size:0x28 data:4byte +lbl_1_bss_9BC = .bss:0x000009BC; // type:object size:0x28 data:4byte +lbl_1_bss_9E4 = .bss:0x000009E4; // type:object size:0x28 data:4byte +lbl_1_bss_A0C = .bss:0x00000A0C; // type:object size:0x28 data:4byte +lbl_1_bss_A34 = .bss:0x00000A34; // type:object size:0x104 data:4byte +lbl_1_bss_B38 = .bss:0x00000B38; // type:object size:0x4 data:4byte +lbl_1_bss_B3C = .bss:0x00000B3C; // type:object size:0x4 data:4byte +lbl_1_bss_B40 = .bss:0x00000B40; // type:object size:0x4 data:4byte +lbl_1_bss_B44 = .bss:0x00000B44; // type:object size:0x28 data:4byte +lbl_1_bss_B6C = .bss:0x00000B6C; // type:object size:0x28 data:4byte +lbl_1_bss_B94 = .bss:0x00000B94; // type:object size:0x28 data:4byte +lbl_1_bss_BBC = .bss:0x00000BBC; // type:object size:0x28 data:4byte +lbl_1_bss_BE4 = .bss:0x00000BE4; // type:object size:0x28 data:4byte +lbl_1_bss_C0C = .bss:0x00000C0C; // type:object size:0x104 data:float +lbl_1_bss_D10 = .bss:0x00000D10; // type:object size:0x4 data:4byte +lbl_1_bss_D14 = .bss:0x00000D14; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_02/rels/mstory3Dll/splits.txt b/config/GMPP01_02/rels/mstory3Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_02/rels/mstory3Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_02/rels/mstory3Dll/symbols.txt b/config/GMPP01_02/rels/mstory3Dll/symbols.txt new file mode 100644 index 00000000..21c07213 --- /dev/null +++ b/config/GMPP01_02/rels/mstory3Dll/symbols.txt @@ -0,0 +1,549 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x2C8 +_prolog = .text:0x0000036C; // type:function size:0x54 scope:global +_epilog = .text:0x000003C0; // type:function size:0x4C scope:global +fn_1_40C = .text:0x0000040C; // type:function size:0xE4 +fn_1_4F0 = .text:0x000004F0; // type:function size:0xE4 +fn_1_5D4 = .text:0x000005D4; // type:function size:0x28 +fn_1_5FC = .text:0x000005FC; // type:function size:0x20 +fn_1_61C = .text:0x0000061C; // type:function size:0xD8 +fn_1_6F4 = .text:0x000006F4; // type:function size:0xC8 +fn_1_7BC = .text:0x000007BC; // type:function size:0xBC +fn_1_878 = .text:0x00000878; // type:function size:0xBC +fn_1_934 = .text:0x00000934; // type:function size:0x4 +fn_1_938 = .text:0x00000938; // type:function size:0x20 +fn_1_958 = .text:0x00000958; // type:function size:0x28 +fn_1_980 = .text:0x00000980; // type:function size:0x20 +fn_1_9A0 = .text:0x000009A0; // type:function size:0x24 +fn_1_9C4 = .text:0x000009C4; // type:function size:0x20 +fn_1_9E4 = .text:0x000009E4; // type:function size:0xA48 +fn_1_142C = .text:0x0000142C; // type:function size:0x1F8 +fn_1_1624 = .text:0x00001624; // type:function size:0x210 +fn_1_1834 = .text:0x00001834; // type:function size:0x1F0 +fn_1_1A24 = .text:0x00001A24; // type:function size:0x2C +fn_1_1A50 = .text:0x00001A50; // type:function size:0x60 +fn_1_1AB0 = .text:0x00001AB0; // type:function size:0x68 +fn_1_1B18 = .text:0x00001B18; // type:function size:0xAC +fn_1_1BC4 = .text:0x00001BC4; // type:function size:0xC4 +fn_1_1C88 = .text:0x00001C88; // type:function size:0xBC +fn_1_1D44 = .text:0x00001D44; // type:function size:0x34 +fn_1_1D78 = .text:0x00001D78; // type:function size:0x40 +fn_1_1DB8 = .text:0x00001DB8; // type:function size:0x70 +fn_1_1E28 = .text:0x00001E28; // type:function size:0x178 +fn_1_1FA0 = .text:0x00001FA0; // type:function size:0x2E0 +fn_1_2280 = .text:0x00002280; // type:function size:0x90 +fn_1_2310 = .text:0x00002310; // type:function size:0xC8 +fn_1_23D8 = .text:0x000023D8; // type:function size:0x48 +fn_1_2420 = .text:0x00002420; // type:function size:0x54 +fn_1_2474 = .text:0x00002474; // type:function size:0x3C0 +fn_1_2834 = .text:0x00002834; // type:function size:0x10 +fn_1_2844 = .text:0x00002844; // type:function size:0x10 +fn_1_2854 = .text:0x00002854; // type:function size:0xB8 +fn_1_290C = .text:0x0000290C; // type:function size:0x120 +fn_1_2A2C = .text:0x00002A2C; // type:function size:0x3A8 +fn_1_2DD4 = .text:0x00002DD4; // type:function size:0x7F4 +fn_1_35C8 = .text:0x000035C8; // type:function size:0x88 +fn_1_3650 = .text:0x00003650; // type:function size:0x94 +fn_1_36E4 = .text:0x000036E4; // type:function size:0x58 +fn_1_373C = .text:0x0000373C; // type:function size:0x8C +fn_1_37C8 = .text:0x000037C8; // type:function size:0xEC +fn_1_38B4 = .text:0x000038B4; // type:function size:0xC4 +fn_1_3978 = .text:0x00003978; // type:function size:0x3C +fn_1_39B4 = .text:0x000039B4; // type:function size:0x44 +fn_1_39F8 = .text:0x000039F8; // type:function size:0x26C +fn_1_3C64 = .text:0x00003C64; // type:function size:0x26C +fn_1_3ED0 = .text:0x00003ED0; // type:function size:0x27C +fn_1_414C = .text:0x0000414C; // type:function size:0x2B4 +fn_1_4400 = .text:0x00004400; // type:function size:0x46C +fn_1_486C = .text:0x0000486C; // type:function size:0x454 +fn_1_4CC0 = .text:0x00004CC0; // type:function size:0x48C +fn_1_514C = .text:0x0000514C; // type:function size:0x658 +fn_1_57A4 = .text:0x000057A4; // type:function size:0x4C4 +fn_1_5C68 = .text:0x00005C68; // type:function size:0x4FC +fn_1_6164 = .text:0x00006164; // type:function size:0x6C8 +fn_1_682C = .text:0x0000682C; // type:function size:0xC4 +fn_1_68F0 = .text:0x000068F0; // type:function size:0x188 +fn_1_6A78 = .text:0x00006A78; // type:function size:0x34 +fn_1_6AAC = .text:0x00006AAC; // type:function size:0x40 +fn_1_6AEC = .text:0x00006AEC; // type:function size:0xAC +fn_1_6B98 = .text:0x00006B98; // type:function size:0x1E8 +fn_1_6D80 = .text:0x00006D80; // type:function size:0xB4 +fn_1_6E34 = .text:0x00006E34; // type:function size:0x1D0 +fn_1_7004 = .text:0x00007004; // type:function size:0x394 +fn_1_7398 = .text:0x00007398; // type:function size:0x640 +fn_1_79D8 = .text:0x000079D8; // type:function size:0x4B0 +fn_1_7E88 = .text:0x00007E88; // type:function size:0x2C4 +fn_1_814C = .text:0x0000814C; // type:function size:0x118 +fn_1_8264 = .text:0x00008264; // type:function size:0x7C +fn_1_82E0 = .text:0x000082E0; // type:function size:0x8C +fn_1_836C = .text:0x0000836C; // type:function size:0xF0 +fn_1_845C = .text:0x0000845C; // type:function size:0x2FC +fn_1_8758 = .text:0x00008758; // type:function size:0x100 +fn_1_8858 = .text:0x00008858; // type:function size:0xF0 +fn_1_8948 = .text:0x00008948; // type:function size:0xF0 +fn_1_8A38 = .text:0x00008A38; // type:function size:0xF0 +fn_1_8B28 = .text:0x00008B28; // type:function size:0xF0 +fn_1_8C18 = .text:0x00008C18; // type:function size:0x7C +fn_1_8C94 = .text:0x00008C94; // type:function size:0x4AC +fn_1_9140 = .text:0x00009140; // type:function size:0x88 +fn_1_91C8 = .text:0x000091C8; // type:function size:0x58 +fn_1_9220 = .text:0x00009220; // type:function size:0x1B0 +fn_1_93D0 = .text:0x000093D0; // type:function size:0xB8 +fn_1_9488 = .text:0x00009488; // type:function size:0x228 +fn_1_96B0 = .text:0x000096B0; // type:function size:0xB8 +fn_1_9768 = .text:0x00009768; // type:function size:0x228 +fn_1_9990 = .text:0x00009990; // type:function size:0x78 +fn_1_9A08 = .text:0x00009A08; // type:function size:0x5C +fn_1_9A64 = .text:0x00009A64; // type:function size:0x8B0 +fn_1_A314 = .text:0x0000A314; // type:function size:0x1DC +fn_1_A4F0 = .text:0x0000A4F0; // type:function size:0x6BC +fn_1_ABAC = .text:0x0000ABAC; // type:function size:0xAC4 +fn_1_B670 = .text:0x0000B670; // type:function size:0x118 +fn_1_B788 = .text:0x0000B788; // type:function size:0x6D4 +fn_1_BE5C = .text:0x0000BE5C; // type:function size:0x104 +fn_1_BF60 = .text:0x0000BF60; // type:function size:0x100 +fn_1_C060 = .text:0x0000C060; // type:function size:0xE0C +fn_1_CE6C = .text:0x0000CE6C; // type:function size:0x620 +fn_1_D48C = .text:0x0000D48C; // type:function size:0xAC +fn_1_D538 = .text:0x0000D538; // type:function size:0x1E0 +fn_1_D718 = .text:0x0000D718; // type:function size:0xC0 +fn_1_D7D8 = .text:0x0000D7D8; // type:function size:0x390 +fn_1_DB68 = .text:0x0000DB68; // type:function size:0x5F8 +fn_1_E160 = .text:0x0000E160; // type:function size:0x1BD0 +fn_1_FD30 = .text:0x0000FD30; // type:function size:0x150 +fn_1_FE80 = .text:0x0000FE80; // type:function size:0xFC +fn_1_FF7C = .text:0x0000FF7C; // type:function size:0x3F0 +fn_1_1036C = .text:0x0001036C; // type:function size:0xA08 +fn_1_10D74 = .text:0x00010D74; // type:function size:0xA20 +fn_1_11794 = .text:0x00011794; // type:function size:0xA0 +fn_1_11834 = .text:0x00011834; // type:function size:0xBA4 +fn_1_123D8 = .text:0x000123D8; // type:function size:0x44 +fn_1_1241C = .text:0x0001241C; // type:function size:0x4 +fn_1_12420 = .text:0x00012420; // type:function size:0x678 +fn_1_12A98 = .text:0x00012A98; // type:function size:0x170 +fn_1_12C08 = .text:0x00012C08; // type:function size:0x1A4 +fn_1_12DAC = .text:0x00012DAC; // type:function size:0x2FC +fn_1_130A8 = .text:0x000130A8; // type:function size:0xD4 +fn_1_1317C = .text:0x0001317C; // type:function size:0x130 +fn_1_132AC = .text:0x000132AC; // type:function size:0x65C +fn_1_13908 = .text:0x00013908; // type:function size:0x130 +fn_1_13A38 = .text:0x00013A38; // type:function size:0x4 +fn_1_13A3C = .text:0x00013A3C; // type:function size:0x23C +fn_1_13C78 = .text:0x00013C78; // type:function size:0xC0 +fn_1_13D38 = .text:0x00013D38; // type:function size:0x60 +fn_1_13D98 = .text:0x00013D98; // type:function size:0x308 +fn_1_140A0 = .text:0x000140A0; // type:function size:0x38C +fn_1_1442C = .text:0x0001442C; // type:function size:0x140 +fn_1_1456C = .text:0x0001456C; // type:function size:0x118 +fn_1_14684 = .text:0x00014684; // type:function size:0x7C +fn_1_14700 = .text:0x00014700; // type:function size:0x48 +fn_1_14748 = .text:0x00014748; // type:function size:0x724 +fn_1_14E6C = .text:0x00014E6C; // type:function size:0x114 +fn_1_14F80 = .text:0x00014F80; // type:function size:0x54 +fn_1_14FD4 = .text:0x00014FD4; // type:function size:0x31C +fn_1_152F0 = .text:0x000152F0; // type:function size:0x160 +fn_1_15450 = .text:0x00015450; // type:function size:0x3A0 +fn_1_157F0 = .text:0x000157F0; // type:function size:0x1B4 +fn_1_159A4 = .text:0x000159A4; // type:function size:0x268 +fn_1_15C0C = .text:0x00015C0C; // type:function size:0xFC +fn_1_15D08 = .text:0x00015D08; // type:function size:0xC0 +fn_1_15DC8 = .text:0x00015DC8; // type:function size:0x3F0 +fn_1_161B8 = .text:0x000161B8; // type:function size:0x3BC +fn_1_16574 = .text:0x00016574; // type:function size:0x54 +fn_1_165C8 = .text:0x000165C8; // type:function size:0x35C +fn_1_16924 = .text:0x00016924; // type:function size:0x1B0 +fn_1_16AD4 = .text:0x00016AD4; // type:function size:0x400 +fn_1_16ED4 = .text:0x00016ED4; // type:function size:0x258 +fn_1_1712C = .text:0x0001712C; // type:function size:0x160 +fn_1_1728C = .text:0x0001728C; // type:function size:0x210 +fn_1_1749C = .text:0x0001749C; // type:function size:0xEC +fn_1_17588 = .text:0x00017588; // type:function size:0x850 +fn_1_17DD8 = .text:0x00017DD8; // type:function size:0x2C0 +fn_1_18098 = .text:0x00018098; // type:function size:0x9C +fn_1_18134 = .text:0x00018134; // type:function size:0x218 +fn_1_1834C = .text:0x0001834C; // type:function size:0x1B4 +fn_1_18500 = .text:0x00018500; // type:function size:0x70 +fn_1_18570 = .text:0x00018570; // type:function size:0x110 +fn_1_18680 = .text:0x00018680; // type:function size:0x694 +fn_1_18D14 = .text:0x00018D14; // type:function size:0x29C +fn_1_18FB0 = .text:0x00018FB0; // type:function size:0x1AC +fn_1_1915C = .text:0x0001915C; // type:function size:0xD0 +fn_1_1922C = .text:0x0001922C; // type:function size:0x28C +fn_1_194B8 = .text:0x000194B8; // type:function size:0xF0 +fn_1_195A8 = .text:0x000195A8; // type:function size:0x224 +fn_1_197CC = .text:0x000197CC; // type:function size:0x854 +fn_1_1A020 = .text:0x0001A020; // type:function size:0x1EF4 +fn_1_1BF14 = .text:0x0001BF14; // type:function size:0x3F8 +fn_1_1C30C = .text:0x0001C30C; // type:function size:0x16C +fn_1_1C478 = .text:0x0001C478; // type:function size:0xD4 +fn_1_1C54C = .text:0x0001C54C; // type:function size:0x3E0 +fn_1_1C92C = .text:0x0001C92C; // type:function size:0x184 +fn_1_1CAB0 = .text:0x0001CAB0; // type:function size:0xE4 +fn_1_1CB94 = .text:0x0001CB94; // type:function size:0xE0 +fn_1_1CC74 = .text:0x0001CC74; // type:function size:0x104 +fn_1_1CD78 = .text:0x0001CD78; // type:function size:0x90 +fn_1_1CE08 = .text:0x0001CE08; // type:function size:0x334 +fn_1_1D13C = .text:0x0001D13C; // type:function size:0x518 +fn_1_1D654 = .text:0x0001D654; // type:function size:0x140 +fn_1_1D794 = .text:0x0001D794; // type:function size:0x150 +fn_1_1D8E4 = .text:0x0001D8E4; // type:function size:0x98 +fn_1_1D97C = .text:0x0001D97C; // type:function size:0x100 +fn_1_1DA7C = .text:0x0001DA7C; // type:function size:0x48 +fn_1_1DAC4 = .text:0x0001DAC4; // type:function size:0x3A0 +fn_1_1DE64 = .text:0x0001DE64; // type:function size:0x8C +fn_1_1DEF0 = .text:0x0001DEF0; // type:function size:0x21C +fn_1_1E10C = .text:0x0001E10C; // type:function size:0x14 +fn_1_1E120 = .text:0x0001E120; // type:function size:0x10 +fn_1_1E130 = .text:0x0001E130; // type:function size:0x14 +fn_1_1E144 = .text:0x0001E144; // type:function size:0x10 +fn_1_1E154 = .text:0x0001E154; // type:function size:0x41C +fn_1_1E570 = .text:0x0001E570; // type:function size:0x2C8 +fn_1_1E838 = .text:0x0001E838; // type:function size:0x8E0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC data:4byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC data:4byte +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 data:4byte +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 data:4byte +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 data:4byte +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x2C data:4byte +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 data:byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 data:4byte +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0xF +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 data:string +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A data:string +lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A data:string +lbl_1_data_11B = .data:0x0000011B; // type:object size:0x15 +lbl_1_data_130 = .data:0x00000130; // type:object size:0x30 data:float +lbl_1_data_160 = .data:0x00000160; // type:object size:0x50 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x50 +lbl_1_data_200 = .data:0x00000200; // type:object size:0x50 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 data:string +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 data:string +lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 data:string +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 data:string +lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 data:string +lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D data:string +lbl_1_data_346 = .data:0x00000346; // type:object size:0x1E +lbl_1_data_364 = .data:0x00000364; // type:object size:0x8 data:4byte +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC +lbl_1_data_378 = .data:0x00000378; // type:object size:0xF data:string +lbl_1_data_387 = .data:0x00000387; // type:object size:0x11 +jumptable_1_data_398 = .data:0x00000398; // type:object size:0x30 scope:local +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 data:string +lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 data:string +lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 data:string +lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 data:string +lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 data:string +lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 data:string +lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 data:string +lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12 +lbl_1_data_504 = .data:0x00000504; // type:object size:0x288 +lbl_1_data_78C = .data:0x0000078C; // type:object size:0x54 +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 data:string +lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 data:string +lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 data:string +lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 data:string +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 data:string +lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 data:string +lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 data:string +lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF data:string +lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C data:string +lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D data:string +lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 data:string +lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 data:string +lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 data:string +lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 data:string +lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 data:string +lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A data:string +lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A data:string +lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x1B +lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 data:string +lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x54 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:float +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:float +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:float +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:float +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:float +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x1340 +lbl_1_bss_1408 = .bss:0x00001408; // type:object size:0x18 +lbl_1_bss_1420 = .bss:0x00001420; // type:object size:0x4 data:4byte +lbl_1_bss_1424 = .bss:0x00001424; // type:object size:0x4 data:float +lbl_1_bss_1428 = .bss:0x00001428; // type:object size:0x10 data:4byte +lbl_1_bss_1438 = .bss:0x00001438; // type:object size:0x10 +lbl_1_bss_1448 = .bss:0x00001448; // type:object size:0x10 data:4byte +lbl_1_bss_1458 = .bss:0x00001458; // type:object size:0x10 data:4byte +lbl_1_bss_1468 = .bss:0x00001468; // type:object size:0x28 data:4byte +lbl_1_bss_1490 = .bss:0x00001490; // type:object size:0xA0 data:4byte +lbl_1_bss_1530 = .bss:0x00001530; // type:object size:0x28 data:4byte +lbl_1_bss_1558 = .bss:0x00001558; // type:object size:0x28 data:4byte +lbl_1_bss_1580 = .bss:0x00001580; // type:object size:0x350 data:4byte +lbl_1_bss_18D0 = .bss:0x000018D0; // type:object size:0x4 data:4byte +lbl_1_bss_18D4 = .bss:0x000018D4; // type:object size:0x4 data:4byte +lbl_1_bss_18D8 = .bss:0x000018D8; // type:object size:0xC data:4byte +lbl_1_bss_18E4 = .bss:0x000018E4; // type:object size:0x8 data:4byte +lbl_1_bss_18EC = .bss:0x000018EC; // type:object size:0x8 data:4byte +lbl_1_bss_18F4 = .bss:0x000018F4; // type:object size:0xA0 +lbl_1_bss_1994 = .bss:0x00001994; // type:object size:0x28 data:4byte +lbl_1_bss_19BC = .bss:0x000019BC; // type:object size:0x28 data:4byte +lbl_1_bss_19E4 = .bss:0x000019E4; // type:object size:0x28 data:4byte +lbl_1_bss_1A0C = .bss:0x00001A0C; // type:object size:0x2DC data:float +lbl_1_bss_1CE8 = .bss:0x00001CE8; // type:object size:0x2 data:2byte +lbl_1_bss_1CEC = .bss:0x00001CEC; // type:object size:0x4 data:4byte +lbl_1_bss_1CF0 = .bss:0x00001CF0; // type:object size:0x4 data:4byte +lbl_1_bss_1CF4 = .bss:0x00001CF4; // type:object size:0x4 data:4byte +lbl_1_bss_1CF8 = .bss:0x00001CF8; // type:object size:0x58 data:2byte diff --git a/config/GMPP01_02/rels/mstoryDll/splits.txt b/config/GMPP01_02/rels/mstoryDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPP01_02/rels/mstoryDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_02/rels/mstoryDll/symbols.txt b/config/GMPP01_02/rels/mstoryDll/symbols.txt new file mode 100644 index 00000000..293cb82c --- /dev/null +++ b/config/GMPP01_02/rels/mstoryDll/symbols.txt @@ -0,0 +1,498 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x344 +_prolog = .text:0x000003E8; // type:function size:0x54 scope:global +_epilog = .text:0x0000043C; // type:function size:0x4C scope:global +fn_1_488 = .text:0x00000488; // type:function size:0x1D0 +fn_1_658 = .text:0x00000658; // type:function size:0x1D0 +fn_1_828 = .text:0x00000828; // type:function size:0x28 +fn_1_850 = .text:0x00000850; // type:function size:0x20 +fn_1_870 = .text:0x00000870; // type:function size:0xD8 +fn_1_948 = .text:0x00000948; // type:function size:0xC8 +fn_1_A10 = .text:0x00000A10; // type:function size:0xBC +fn_1_ACC = .text:0x00000ACC; // type:function size:0xBC +fn_1_B88 = .text:0x00000B88; // type:function size:0x4 +fn_1_B8C = .text:0x00000B8C; // type:function size:0x20 +fn_1_BAC = .text:0x00000BAC; // type:function size:0x28 +fn_1_BD4 = .text:0x00000BD4; // type:function size:0x20 +fn_1_BF4 = .text:0x00000BF4; // type:function size:0x24 +fn_1_C18 = .text:0x00000C18; // type:function size:0x20 +fn_1_C38 = .text:0x00000C38; // type:function size:0xA48 +fn_1_1680 = .text:0x00001680; // type:function size:0x1B4 +fn_1_1834 = .text:0x00001834; // type:function size:0x1D0 +fn_1_1A04 = .text:0x00001A04; // type:function size:0x60 +fn_1_1A64 = .text:0x00001A64; // type:function size:0x68 +fn_1_1ACC = .text:0x00001ACC; // type:function size:0xAC +fn_1_1B78 = .text:0x00001B78; // type:function size:0xBC +fn_1_1C34 = .text:0x00001C34; // type:function size:0xB4 +fn_1_1CE8 = .text:0x00001CE8; // type:function size:0x34 +fn_1_1D1C = .text:0x00001D1C; // type:function size:0x40 +fn_1_1D5C = .text:0x00001D5C; // type:function size:0x70 +fn_1_1DCC = .text:0x00001DCC; // type:function size:0x178 +fn_1_1F44 = .text:0x00001F44; // type:function size:0x2E0 +fn_1_2224 = .text:0x00002224; // type:function size:0x90 +fn_1_22B4 = .text:0x000022B4; // type:function size:0x48 +fn_1_22FC = .text:0x000022FC; // type:function size:0x54 +fn_1_2350 = .text:0x00002350; // type:function size:0x3C0 +fn_1_2710 = .text:0x00002710; // type:function size:0x10 +fn_1_2720 = .text:0x00002720; // type:function size:0x10 +fn_1_2730 = .text:0x00002730; // type:function size:0xB8 +fn_1_27E8 = .text:0x000027E8; // type:function size:0x120 +fn_1_2908 = .text:0x00002908; // type:function size:0x3A8 +fn_1_2CB0 = .text:0x00002CB0; // type:function size:0x7F4 +fn_1_34A4 = .text:0x000034A4; // type:function size:0x88 +fn_1_352C = .text:0x0000352C; // type:function size:0x94 +fn_1_35C0 = .text:0x000035C0; // type:function size:0x58 +fn_1_3618 = .text:0x00003618; // type:function size:0xEC +fn_1_3704 = .text:0x00003704; // type:function size:0xC4 +fn_1_37C8 = .text:0x000037C8; // type:function size:0x3C +fn_1_3804 = .text:0x00003804; // type:function size:0x44 +fn_1_3848 = .text:0x00003848; // type:function size:0x274 +fn_1_3ABC = .text:0x00003ABC; // type:function size:0x26C +fn_1_3D28 = .text:0x00003D28; // type:function size:0x22C +fn_1_3F54 = .text:0x00003F54; // type:function size:0x27C +fn_1_41D0 = .text:0x000041D0; // type:function size:0x2B4 +fn_1_4484 = .text:0x00004484; // type:function size:0x46C +fn_1_48F0 = .text:0x000048F0; // type:function size:0x454 +fn_1_4D44 = .text:0x00004D44; // type:function size:0x48C +fn_1_51D0 = .text:0x000051D0; // type:function size:0x658 +fn_1_5828 = .text:0x00005828; // type:function size:0x4C4 +fn_1_5CEC = .text:0x00005CEC; // type:function size:0x4FC +fn_1_61E8 = .text:0x000061E8; // type:function size:0x6C8 +fn_1_68B0 = .text:0x000068B0; // type:function size:0xC4 +fn_1_6974 = .text:0x00006974; // type:function size:0x188 +fn_1_6AFC = .text:0x00006AFC; // type:function size:0x34 +fn_1_6B30 = .text:0x00006B30; // type:function size:0x40 +fn_1_6B70 = .text:0x00006B70; // type:function size:0xAC +fn_1_6C1C = .text:0x00006C1C; // type:function size:0x1E8 +fn_1_6E04 = .text:0x00006E04; // type:function size:0xB4 +fn_1_6EB8 = .text:0x00006EB8; // type:function size:0x170 +fn_1_7028 = .text:0x00007028; // type:function size:0x68 +fn_1_7090 = .text:0x00007090; // type:function size:0xA4 +fn_1_7134 = .text:0x00007134; // type:function size:0x1E8 +fn_1_731C = .text:0x0000731C; // type:function size:0x69C +fn_1_79B8 = .text:0x000079B8; // type:function size:0x128 +fn_1_7AE0 = .text:0x00007AE0; // type:function size:0x390 +fn_1_7E70 = .text:0x00007E70; // type:function size:0x5C +fn_1_7ECC = .text:0x00007ECC; // type:function size:0x1C4 +fn_1_8090 = .text:0x00008090; // type:function size:0x320 +fn_1_83B0 = .text:0x000083B0; // type:function size:0x58 +fn_1_8408 = .text:0x00008408; // type:function size:0x3D4 +fn_1_87DC = .text:0x000087DC; // type:function size:0x268 +fn_1_8A44 = .text:0x00008A44; // type:function size:0x9C +fn_1_8AE0 = .text:0x00008AE0; // type:function size:0x2E0 +fn_1_8DC0 = .text:0x00008DC0; // type:function size:0xAC +fn_1_8E6C = .text:0x00008E6C; // type:function size:0xFC +fn_1_8F68 = .text:0x00008F68; // type:function size:0x36C +fn_1_92D4 = .text:0x000092D4; // type:function size:0x134 +fn_1_9408 = .text:0x00009408; // type:function size:0x310 +fn_1_9718 = .text:0x00009718; // type:function size:0x18C +fn_1_98A4 = .text:0x000098A4; // type:function size:0x88 +fn_1_992C = .text:0x0000992C; // type:function size:0x3DC +fn_1_9D08 = .text:0x00009D08; // type:function size:0x300 +fn_1_A008 = .text:0x0000A008; // type:function size:0xE4 +fn_1_A0EC = .text:0x0000A0EC; // type:function size:0x38C +fn_1_A478 = .text:0x0000A478; // type:function size:0x8C +fn_1_A504 = .text:0x0000A504; // type:function size:0xF0 +fn_1_A5F4 = .text:0x0000A5F4; // type:function size:0x23C +fn_1_A830 = .text:0x0000A830; // type:function size:0xC8 +fn_1_A8F8 = .text:0x0000A8F8; // type:function size:0x2B4 +fn_1_ABAC = .text:0x0000ABAC; // type:function size:0x150 +fn_1_ACFC = .text:0x0000ACFC; // type:function size:0x134 +fn_1_AE30 = .text:0x0000AE30; // type:function size:0x8C +fn_1_AEBC = .text:0x0000AEBC; // type:function size:0x374 +fn_1_B230 = .text:0x0000B230; // type:function size:0x5C +fn_1_B28C = .text:0x0000B28C; // type:function size:0x214 +fn_1_B4A0 = .text:0x0000B4A0; // type:function size:0xE8 +fn_1_B588 = .text:0x0000B588; // type:function size:0xE8 +fn_1_B670 = .text:0x0000B670; // type:function size:0x11C +fn_1_B78C = .text:0x0000B78C; // type:function size:0x13C +fn_1_B8C8 = .text:0x0000B8C8; // type:function size:0x4 +fn_1_B8CC = .text:0x0000B8CC; // type:function size:0x104 +fn_1_B9D0 = .text:0x0000B9D0; // type:function size:0x208 +fn_1_BBD8 = .text:0x0000BBD8; // type:function size:0x788 +fn_1_C360 = .text:0x0000C360; // type:function size:0xB4 +fn_1_C414 = .text:0x0000C414; // type:function size:0x2F4 +fn_1_C708 = .text:0x0000C708; // type:function size:0xBC +fn_1_C7C4 = .text:0x0000C7C4; // type:function size:0x384 +fn_1_CB48 = .text:0x0000CB48; // type:function size:0x300 +fn_1_CE48 = .text:0x0000CE48; // type:function size:0xAC +fn_1_CEF4 = .text:0x0000CEF4; // type:function size:0xE4 +fn_1_CFD8 = .text:0x0000CFD8; // type:function size:0xC4 +fn_1_D09C = .text:0x0000D09C; // type:function size:0xE4 +fn_1_D180 = .text:0x0000D180; // type:function size:0x3FC +fn_1_D57C = .text:0x0000D57C; // type:function size:0x134 +fn_1_D6B0 = .text:0x0000D6B0; // type:function size:0x2F8 +fn_1_D9A8 = .text:0x0000D9A8; // type:function size:0xFC +fn_1_DAA4 = .text:0x0000DAA4; // type:function size:0x164 +fn_1_DC08 = .text:0x0000DC08; // type:function size:0x118 +fn_1_DD20 = .text:0x0000DD20; // type:function size:0xE4 +fn_1_DE04 = .text:0x0000DE04; // type:function size:0x424 +fn_1_E228 = .text:0x0000E228; // type:function size:0x8C +fn_1_E2B4 = .text:0x0000E2B4; // type:function size:0x130 +fn_1_E3E4 = .text:0x0000E3E4; // type:function size:0x23C +fn_1_E620 = .text:0x0000E620; // type:function size:0xF0 +fn_1_E710 = .text:0x0000E710; // type:function size:0x118 +fn_1_E828 = .text:0x0000E828; // type:function size:0x8C +fn_1_E8B4 = .text:0x0000E8B4; // type:function size:0x34C +fn_1_EC00 = .text:0x0000EC00; // type:function size:0x5C +fn_1_EC5C = .text:0x0000EC5C; // type:function size:0x384 +fn_1_EFE0 = .text:0x0000EFE0; // type:function size:0x70 +fn_1_F050 = .text:0x0000F050; // type:function size:0x14C +fn_1_F19C = .text:0x0000F19C; // type:function size:0x5E4 +fn_1_F780 = .text:0x0000F780; // type:function size:0xEC +fn_1_F86C = .text:0x0000F86C; // type:function size:0xA4 +fn_1_F910 = .text:0x0000F910; // type:function size:0x1D4 +fn_1_FAE4 = .text:0x0000FAE4; // type:function size:0x238 +fn_1_FD1C = .text:0x0000FD1C; // type:function size:0xB4 +fn_1_FDD0 = .text:0x0000FDD0; // type:function size:0x4C8 +fn_1_10298 = .text:0x00010298; // type:function size:0xEC +fn_1_10384 = .text:0x00010384; // type:function size:0xCC +fn_1_10450 = .text:0x00010450; // type:function size:0xFC +fn_1_1054C = .text:0x0001054C; // type:function size:0xAC +fn_1_105F8 = .text:0x000105F8; // type:function size:0x300 +fn_1_108F8 = .text:0x000108F8; // type:function size:0x374 +fn_1_10C6C = .text:0x00010C6C; // type:function size:0xE4 +fn_1_10D50 = .text:0x00010D50; // type:function size:0x1D4 +fn_1_10F24 = .text:0x00010F24; // type:function size:0xAC +fn_1_10FD0 = .text:0x00010FD0; // type:function size:0x2D0 +fn_1_112A0 = .text:0x000112A0; // type:function size:0x8C +fn_1_1132C = .text:0x0001132C; // type:function size:0xF0 +fn_1_1141C = .text:0x0001141C; // type:function size:0x118 +fn_1_11534 = .text:0x00011534; // type:function size:0xF0 +fn_1_11624 = .text:0x00011624; // type:function size:0x10C +fn_1_11730 = .text:0x00011730; // type:function size:0x35C +fn_1_11A8C = .text:0x00011A8C; // type:function size:0x5C +fn_1_11AE8 = .text:0x00011AE8; // type:function size:0x184 +fn_1_11C6C = .text:0x00011C6C; // type:function size:0x16C +fn_1_11DD8 = .text:0x00011DD8; // type:function size:0xEC +fn_1_11EC4 = .text:0x00011EC4; // type:function size:0x64 +fn_1_11F28 = .text:0x00011F28; // type:function size:0x4 +fn_1_11F2C = .text:0x00011F2C; // type:function size:0x144 +fn_1_12070 = .text:0x00012070; // type:function size:0x5C0 +fn_1_12630 = .text:0x00012630; // type:function size:0xB4 +fn_1_126E4 = .text:0x000126E4; // type:function size:0x234 +fn_1_12918 = .text:0x00012918; // type:function size:0xBC +fn_1_129D4 = .text:0x000129D4; // type:function size:0x2C0 +fn_1_12C94 = .text:0x00012C94; // type:function size:0xE4 +fn_1_12D78 = .text:0x00012D78; // type:function size:0x1A8 +fn_1_12F20 = .text:0x00012F20; // type:function size:0x88 +fn_1_12FA8 = .text:0x00012FA8; // type:function size:0x118 +fn_1_130C0 = .text:0x000130C0; // type:function size:0x22C +fn_1_132EC = .text:0x000132EC; // type:function size:0x284 +fn_1_13570 = .text:0x00013570; // type:function size:0x310 +fn_1_13880 = .text:0x00013880; // type:function size:0x8C +fn_1_1390C = .text:0x0001390C; // type:function size:0x23C +fn_1_13B48 = .text:0x00013B48; // type:function size:0xEC +fn_1_13C34 = .text:0x00013C34; // type:function size:0x210 +fn_1_13E44 = .text:0x00013E44; // type:function size:0x324 +fn_1_14168 = .text:0x00014168; // type:function size:0x50 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC data:4byte +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC data:4byte +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC data:4byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 data:byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC data:2byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC data:4byte +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 data:4byte +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x1 data:byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 data:4byte +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC data:4byte +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC data:4byte +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC data:4byte +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 data:4byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 data:4byte +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 data:4byte +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 data:byte +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 data:4byte +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 data:4byte +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C data:4byte +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 data:string +lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 data:string +lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 data:string +lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 data:string +lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 data:string +lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 data:string +lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A data:string +lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A data:string +lbl_1_data_17F = .data:0x0000017F; // type:object size:0x11 +lbl_1_data_190 = .data:0x00000190; // type:object size:0x50 +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 data:string +lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 data:string +lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 data:string +lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C data:string +lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D data:string +lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0xF data:string +lbl_1_data_338 = .data:0x00000338; // type:object size:0x1C +lbl_1_data_354 = .data:0x00000354; // type:object size:0x34 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x50 +lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C +lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 data:string +lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 data:string +lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 data:string +lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 data:string +lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 data:string +lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 data:string +lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 data:string +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA data:string +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C data:string +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D data:string +lbl_1_data_505 = .data:0x00000505; // type:object size:0xF data:string +lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B data:string +lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 data:string +lbl_1_data_537 = .data:0x00000537; // type:object size:0x9 +lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 +lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0 +lbl_1_data_930 = .data:0x00000930; // type:object size:0x50 +lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 data:string +lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 data:string +lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 data:string +lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 data:string +lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 data:string +lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 data:string +lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 data:string +lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 data:string +lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF data:string +lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C data:string +lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D data:string +lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C data:string +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 data:string +lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF data:string +lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 data:string +lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA data:string +lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 data:string +lbl_1_data_AED = .data:0x00000AED; // type:object size:0xB +lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C +lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 data:string +lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 data:string +lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 data:string +lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 data:string +lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 data:string +lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 data:string +lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 data:string +lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 data:string +lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF data:string +lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C data:string +lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D data:string +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF data:string +lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x21 +lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x54 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x28 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0xA0 +lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x28 data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x28 data:4byte +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0x104 data:4byte +lbl_1_bss_2C8 = .bss:0x000002C8; // type:object size:0x4 data:4byte +lbl_1_bss_2CC = .bss:0x000002CC; // type:object size:0x4 data:4byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x60 data:4byte +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0x8 data:4byte +lbl_1_bss_338 = .bss:0x00000338; // type:object size:0xA0 +lbl_1_bss_3D8 = .bss:0x000003D8; // type:object size:0x28 data:4byte +lbl_1_bss_400 = .bss:0x00000400; // type:object size:0x28 data:4byte +lbl_1_bss_428 = .bss:0x00000428; // type:object size:0x28 data:4byte +lbl_1_bss_450 = .bss:0x00000450; // type:object size:0x108 data:float +lbl_1_bss_558 = .bss:0x00000558; // type:object size:0x4 data:4byte +lbl_1_bss_55C = .bss:0x0000055C; // type:object size:0x4 data:4byte +lbl_1_bss_560 = .bss:0x00000560; // type:object size:0x8 data:4byte +lbl_1_bss_568 = .bss:0x00000568; // type:object size:0x28 data:4byte +lbl_1_bss_590 = .bss:0x00000590; // type:object size:0x28 data:4byte +lbl_1_bss_5B8 = .bss:0x000005B8; // type:object size:0x28 data:4byte +lbl_1_bss_5E0 = .bss:0x000005E0; // type:object size:0x28 data:4byte +lbl_1_bss_608 = .bss:0x00000608; // type:object size:0x108 data:4byte +lbl_1_bss_710 = .bss:0x00000710; // type:object size:0x4 data:4byte +lbl_1_bss_714 = .bss:0x00000714; // type:object size:0x28 data:4byte +lbl_1_bss_73C = .bss:0x0000073C; // type:object size:0x28 data:4byte +lbl_1_bss_764 = .bss:0x00000764; // type:object size:0x28 data:4byte +lbl_1_bss_78C = .bss:0x0000078C; // type:object size:0x28 data:4byte +lbl_1_bss_7B4 = .bss:0x000007B4; // type:object size:0x104 data:4byte +lbl_1_bss_8B8 = .bss:0x000008B8; // type:object size:0x4 data:4byte +lbl_1_bss_8BC = .bss:0x000008BC; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index c9a29b4f..ba94ebfe 100644 --- a/configure.py +++ b/configure.py @@ -31,6 +31,8 @@ DEFAULT_VERSION = 0 VERSIONS = [ "GMPE01_00", # USA 1.0 "GMPE01_01", # USA 1.1 + "GMPP01_00", # PAL 1.0 + "GMPP01_02", # PAL 1.2 ] parser = argparse.ArgumentParser() @@ -371,13 +373,13 @@ config.libs = [ "cflags": cflags_game, "host": False, "objects": [ - Object(Matching, "game/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/main.c"), Object(Matching, "game/pad.c"), Object(Matching, "game/dvd.c"), Object(Matching, "game/data.c"), Object(Matching, "game/decode.c"), Object(Matching, "game/font.c"), - Object(Matching, "game/init.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/init.c"), Object(Matching, "game/jmp.c"), Object(Matching, "game/malloc.c"), Object(Matching, "game/memory.c"), @@ -394,22 +396,22 @@ config.libs = [ Object(Matching, "game/perf.c"), Object(Matching, "game/objmain.c"), Object(Matching, "game/fault.c"), - Object(Matching, "game/gamework.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/gamework.c"), Object(Matching, "game/objsysobj.c"), Object(Matching, "game/objdll.c"), Object(Matching, "game/frand.c"), - Object(Matching, "game/audio.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/audio.c"), Object(Matching, "game/EnvelopeExec.c"), - Object(Matching, "game/minigame_seq.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/minigame_seq.c"), Object(Matching, "game/ovllist.c"), Object(Matching, "game/esprite.c"), Object(Matching, "game/code_8003FF68.c"), Object(Matching, "game/ClusterExec.c"), Object(Matching, "game/ShapeExec.c"), Object(Matching, "game/wipe.c"), - Object(Matching, "game/window.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/window.c"), Object(Matching, "game/messdata.c"), - Object(Matching, "game/card.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/card.c"), Object(Matching, "game/armem.c"), Object(Matching, "game/chrman.c"), Object(Matching, "game/mapspace.c"), @@ -418,7 +420,7 @@ config.libs = [ Object(Matching, "game/thpmain.c"), Object(Matching, "game/objsub.c"), Object(Matching, "game/flag.c"), - Object(Matching, "game/saveload.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/saveload.c"), Object(Matching, "game/sreset.c"), Object(Matching, "game/board/main.c"), Object(Matching, "game/board/player.c"), @@ -450,113 +452,113 @@ config.libs = [ Object(Matching, "game/board/pause.c"), Object(Matching, "game/board/com_path.c"), Object(Matching, "game/board/tutorial.c"), - Object(Matching, "game/kerent.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/kerent.c"), ], }, DolphinLib( "base", [ - Object(Matching, "dolphin/PPCArch.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/PPCArch.c"), ], ), DolphinLib( "os", [ Object(Matching, "dolphin/os/OS.c"), - Object(Matching, "dolphin/os/OSAlarm.c"), - Object(Matching, "dolphin/os/OSAlloc.c"), - Object(Matching, "dolphin/os/OSArena.c"), - Object(Matching, "dolphin/os/OSAudioSystem.c"), - Object(Matching, "dolphin/os/OSCache.c"), - Object(Matching, "dolphin/os/OSContext.c"), - Object(Matching, "dolphin/os/OSError.c"), - Object(Matching, "dolphin/os/OSFont.c"), - Object(Matching, "dolphin/os/OSInterrupt.c"), - Object(Matching, "dolphin/os/OSLink.c"), - Object(Matching, "dolphin/os/OSMessage.c"), - Object(Matching, "dolphin/os/OSMemory.c"), - Object(Matching, "dolphin/os/OSMutex.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSAlarm.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSAlloc.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSArena.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSAudioSystem.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSCache.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSContext.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSError.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSFont.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSInterrupt.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSLink.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSMessage.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSMemory.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSMutex.c"), Object(NonMatching, "dolphin/os/OSReboot.c"), - Object(Matching, "dolphin/os/OSReset.c"), - Object(Matching, "dolphin/os/OSResetSW.c"), - Object(Matching, "dolphin/os/OSRtc.c"), - Object(Matching, "dolphin/os/OSStopwatch.c"), - Object(Matching, "dolphin/os/OSSync.c"), - Object(Matching, "dolphin/os/OSThread.c"), - Object(Matching, "dolphin/os/OSTime.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSReset.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSResetSW.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSRtc.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSStopwatch.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSSync.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSThread.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSTime.c"), Object(Matching, "dolphin/os/__start.c"), - Object(Matching, "dolphin/os/__ppc_eabi_init.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/__ppc_eabi_init.c"), ], ), DolphinLib( "db", [ - Object(Matching, "dolphin/db.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/db.c"), ], ), DolphinLib( "mtx", [ Object(NonMatching, "dolphin/mtx/mtx.c"), - Object(Matching, "dolphin/mtx/mtxvec.c"), - Object(Matching, "dolphin/mtx/mtx44.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/mtx/mtxvec.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/mtx/mtx44.c"), Object(NonMatching, "dolphin/mtx/vec.c"), Object(NonMatching, "dolphin/mtx/quat.c"), - Object(Matching, "dolphin/mtx/psmtx.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/mtx/psmtx.c"), ], ), DolphinLib( "dvd", [ - Object(Matching, "dolphin/dvd/dvdlow.c"), - Object(Matching, "dolphin/dvd/dvdfs.c"), - Object(Matching, "dolphin/dvd/dvd.c"), - Object(Matching, "dolphin/dvd/dvdqueue.c"), - Object(Matching, "dolphin/dvd/dvderror.c"), - Object(Matching, "dolphin/dvd/fstload.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dvd/dvdlow.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dvd/dvdfs.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dvd/dvd.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dvd/dvdqueue.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dvd/dvderror.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dvd/fstload.c"), ], ), DolphinLib( "vi", [ - Object(Matching, "dolphin/vi.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/vi.c"), ], ), DolphinLib( "demo", [ - Object(Matching, "dolphin/demo/DEMOInit.c"), - Object(Matching, "dolphin/demo/DEMOFont.c"), - Object(Matching, "dolphin/demo/DEMOPuts.c"), - Object(Matching, "dolphin/demo/DEMOStats.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/demo/DEMOInit.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/demo/DEMOFont.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/demo/DEMOPuts.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/demo/DEMOStats.c"), ], ), DolphinLib( "pad", [ Object(NonMatching, "dolphin/pad/Padclamp.c"), - Object(Matching, "dolphin/pad/Pad.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/pad/Pad.c"), ], ), DolphinLib( "ai", [ - Object(Matching, "dolphin/ai.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/ai.c"), ], ), DolphinLib( "ar", [ Object(NonMatching, "dolphin/ar/ar.c"), - Object(Matching, "dolphin/ar/arq.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/ar/arq.c"), ], ), DolphinLib( "dsp", [ - Object(Matching, "dolphin/dsp/dsp.c"), - Object(Matching, "dolphin/dsp/dsp_debug.c"), - Object(Matching, "dolphin/dsp/dsp_task.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dsp/dsp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dsp/dsp_debug.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/dsp/dsp_task.c"), ], ), DolphinLib( @@ -582,35 +584,35 @@ config.libs = [ DolphinLib( "card", [ - Object(Matching, "dolphin/card/CARDBios.c"), - Object(Matching, "dolphin/card/CARDUnlock.c"), - Object(Matching, "dolphin/card/CARDRdwr.c"), - Object(Matching, "dolphin/card/CARDBlock.c"), - Object(Matching, "dolphin/card/CARDDir.c"), - Object(Matching, "dolphin/card/CARDCheck.c"), - Object(Matching, "dolphin/card/CARDMount.c"), - Object(Matching, "dolphin/card/CARDFormat.c"), - Object(Matching, "dolphin/card/CARDOpen.c"), - Object(Matching, "dolphin/card/CARDCreate.c"), - Object(Matching, "dolphin/card/CARDRead.c"), - Object(Matching, "dolphin/card/CARDWrite.c"), - Object(Matching, "dolphin/card/CARDDelete.c"), - Object(Matching, "dolphin/card/CARDStat.c"), - Object(Matching, "dolphin/card/CARDNet.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDBios.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDUnlock.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDRdwr.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDBlock.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDDir.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDCheck.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDMount.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDFormat.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDOpen.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDCreate.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDRead.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDWrite.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDDelete.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDStat.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/card/CARDNet.c"), ], ), DolphinLib( "exi", [ - Object(Matching, "dolphin/exi/EXIBios.c"), - Object(Matching, "dolphin/exi/EXIUart.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/exi/EXIBios.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/exi/EXIUart.c"), ], ), DolphinLib( "si", [ - Object(Matching, "dolphin/si/SIBios.c"), - Object(Matching, "dolphin/si/SISamplingRate.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/si/SIBios.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/si/SISamplingRate.c"), ], ), { @@ -619,7 +621,7 @@ config.libs = [ "cflags": cflags_thp, "host": False, "objects": [ - Object(Matching, "dolphin/thp/THPDec.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/thp/THPDec.c"), Object(NonMatching, "dolphin/thp/THPAudio.c"), ], }, @@ -630,13 +632,13 @@ config.libs = [ "host": False, "objects": [ Object(NonMatching, "Runtime.PPCEABI.H/__va_arg.c"), - Object(Matching, "Runtime.PPCEABI.H/global_destructor_chain.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/global_destructor_chain.c"), Object(NonMatching, "Runtime.PPCEABI.H/__mem.c"), Object(NonMatching, "Runtime.PPCEABI.H/New.cp"), Object(NonMatching, "Runtime.PPCEABI.H/NewMore.cp"), Object(NonMatching, "Runtime.PPCEABI.H/NMWException.cp"), Object(NonMatching, "Runtime.PPCEABI.H/runtime.c"), - Object(Matching, "Runtime.PPCEABI.H/__init_cpp_exceptions.cpp"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/__init_cpp_exceptions.cpp"), Object(NonMatching, "Runtime.PPCEABI.H/Gecko_ExceptionPPC.cp"), Object(NonMatching, "Runtime.PPCEABI.H/GCN_mem_alloc.c"), ], @@ -729,37 +731,37 @@ config.libs = [ }, MusyX( objects={ - Object(Matching, "musyx/runtime/seq.c"), - Object(Matching, "musyx/runtime/synth.c"), - Object(Matching, "musyx/runtime/seq_api.c"), - Object(Matching, "musyx/runtime/snd_synthapi.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/seq.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synth.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/seq_api.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/snd_synthapi.c"), Object(NonMatching, "musyx/runtime/stream.c"), - Object(Matching, "musyx/runtime/synthdata.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synthdata.c"), Object(NonMatching, "musyx/runtime/synthmacros.c"), - Object(Matching, "musyx/runtime/synthvoice.c"), - Object(Matching, "musyx/runtime/synth_ac.c"), - Object(Matching, "musyx/runtime/synth_dbtab.c"), - Object(Matching, "musyx/runtime/synth_adsr.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synthvoice.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synth_ac.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synth_dbtab.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synth_adsr.c"), Object(NonMatching, "musyx/runtime/synth_vsamples.c"), - Object(Matching, "musyx/runtime/s_data.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/s_data.c"), Object(NonMatching, "musyx/runtime/hw_dspctrl.c"), - Object(Matching, "musyx/runtime/hw_volconv.c"), - Object(Matching, "musyx/runtime/snd3d.c"), - Object(Matching, "musyx/runtime/snd_init.c"), - Object(Matching, "musyx/runtime/snd_math.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/hw_volconv.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/snd3d.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/snd_init.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/snd_math.c"), Object(NonMatching, "musyx/runtime/snd_midictrl.c"), - Object(Matching, "musyx/runtime/snd_service.c"), - Object(Matching, "musyx/runtime/hardware.c"), - Object(Matching, "musyx/runtime/dsp_import.c"), - Object(Matching, "musyx/runtime/hw_aramdma.c"), - Object(Matching, "musyx/runtime/hw_dolphin.c"), - Object(Matching, "musyx/runtime/hw_memory.c"), - Object(Matching, "musyx/runtime/CheapReverb/creverb_fx.c"), - Object(Matching, "musyx/runtime/CheapReverb/creverb.c"), - Object(Matching, "musyx/runtime/StdReverb/reverb_fx.c"), - Object(Matching, "musyx/runtime/StdReverb/reverb.c"), - Object(Matching, "musyx/runtime/Delay/delay_fx.c"), - Object(Matching, "musyx/runtime/Chorus/chorus_fx.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/snd_service.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/hardware.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/dsp_import.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/hw_aramdma.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/hw_dolphin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/hw_memory.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/CheapReverb/creverb_fx.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/CheapReverb/creverb.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/StdReverb/reverb_fx.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/StdReverb/reverb.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/Delay/delay_fx.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/Chorus/chorus_fx.c"), } ), { @@ -777,7 +779,7 @@ config.libs = [ "cflags": cflags_amcstub, "host": False, "objects": [ - Object(Matching, "amcstubs/AmcExi2Stubs.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "amcstubs/AmcExi2Stubs.c"), ], }, { @@ -786,7 +788,7 @@ config.libs = [ "cflags": cflags_odenotstub, "host": False, "objects": [ - Object(Matching, "odenotstub/odenotstub.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "odenotstub/odenotstub.c"), ], }, { @@ -795,8 +797,8 @@ config.libs = [ "cflags": cflags_libhu, "host": False, "objects": [ - Object(Matching, "libhu/setvf.c"), - Object(Matching, "libhu/subvf.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "libhu/setvf.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "libhu/subvf.c"), ], }, { @@ -806,8 +808,8 @@ config.libs = [ "host": False, "objects": [ Object(NonMatching, "msm/msmsys.c"), - Object(Matching, "msm/msmmem.c"), - Object(Matching, "msm/msmfio.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmmem.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmfio.c"), Object(NonMatching, "msm/msmmus.c"), Object(NonMatching, "msm/msmse.c"), Object(NonMatching, "msm/msmstream.c"), @@ -819,7 +821,7 @@ config.libs = [ "cflags": cflags_rel, "host": False, "objects": [ - Object(Matching, "REL/executor.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/executor.c"), Object(Matching, "REL/empty.c"), # Must be marked as matching Object(Matching, "REL/board_executor.c"), ], @@ -827,119 +829,119 @@ config.libs = [ Rel( "_minigameDLL", objects={ - Object(Matching, "REL/_minigameDLL/_minigameDLL.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/_minigameDLL/_minigameDLL.c"), }, ), Rel( "bootDll", objects={ - Object(Matching, "REL/bootDll/main.c"), - Object(Matching, "REL/bootDll/nintendo_data.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/bootDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/bootDll/nintendo_data.c"), }, ), Rel( "E3setupDLL", objects={ - Object(Matching, "REL/E3setupDLL/mgselect.c"), - Object(Matching, "REL/E3setupDLL/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/E3setupDLL/mgselect.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/E3setupDLL/main.c"), }, ), Rel( "instDll", objects={ - Object(Matching, "REL/instDll/main.c"), - Object(Matching, "REL/instDll/font.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/instDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/instDll/font.c"), }, ), Rel( "m401Dll", # Manta Rings objects={ - Object(Matching, "REL/m401Dll/main.c"), - Object(Matching, "REL/m401Dll/main_ex.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m401Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m401Dll/main_ex.c"), }, ), Rel( "m402Dll", # Slime Time objects={ - Object(Matching, "REL/m402Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m402Dll/main.c"), }, ), Rel( "m403Dll", # Booksquirm objects={ - Object(Matching, "REL/m403Dll/main.c"), - Object(Matching, "REL/m403Dll/scene.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m403Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m403Dll/scene.c"), }, ), Rel( "m404Dll", # Trace Race objects={ - Object(Matching, "REL/m404Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m404Dll/main.c"), }, ), Rel( "m405Dll", # Mario Medley objects={ - Object(Matching, "REL/m405Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m405Dll/main.c"), }, ), Rel( "m406Dll", # Avalanche! objects={ - Object(Matching, "REL/m406Dll/main.c"), - Object(Matching, "REL/m406Dll/map.c"), - Object(Matching, "REL/m406Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m406Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m406Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m406Dll/player.c"), }, ), Rel( "m407dll", # Domination objects={ - Object(Matching, "REL/m407dll/player.c"), - Object(Matching, "REL/m407dll/map.c"), - Object(Matching, "REL/m407dll/camera.c"), - Object(Matching, "REL/m407dll/whomp.c"), - Object(Matching, "REL/m407dll/whomp_score.c"), - Object(Matching, "REL/m407dll/effect.c"), - Object(Matching, "REL/m407dll/main.c"), - Object(Matching, "REL/m407dll/score.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m407dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m407dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m407dll/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m407dll/whomp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m407dll/whomp_score.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m407dll/effect.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m407dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m407dll/score.c"), }, ), Rel( "m408Dll", # Paratrooper Plunge objects={ - Object(Matching, "REL/m408Dll/main.c"), - Object(Matching, "REL/m408Dll/camera.c"), - Object(Matching, "REL/m408Dll/stage.c"), - Object(Matching, "REL/m408Dll/object.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m408Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m408Dll/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m408Dll/stage.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m408Dll/object.c"), }, ), Rel( "m409Dll", # Toad's Quick Draw objects={ - Object(Matching, "REL/m409Dll/main.c"), - Object(Matching, "REL/m409Dll/player.c"), - Object(Matching, "REL/m409Dll/cursor.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m409Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m409Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m409Dll/cursor.c"), }, ), Rel( "m410Dll", # Three Throw objects={ - Object(Matching, "REL/m410Dll/main.c"), - Object(Matching, "REL/m410Dll/stage.c"), - Object(Matching, "REL/m410Dll/game.c"), - Object(Matching, "REL/m410Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m410Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m410Dll/stage.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m410Dll/game.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m410Dll/player.c"), }, ), Rel( "m411Dll", # Photo Finish objects={ - Object(Matching, "REL/m411Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m411Dll/main.c"), }, ), Rel( "m412Dll", # Mr. Blizzard's Brigade objects={ - Object(Matching, "REL/m412Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m412Dll/main.c"), }, ), Rel( @@ -951,30 +953,30 @@ config.libs = [ Rel( "m414Dll", # Long Claw of the Law objects={ - Object(Matching, "REL/m414Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m414Dll/main.c"), }, ), Rel( "m415Dll", # Stamp Out! objects={ - Object(Matching, "REL/m415Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m415Dll/main.c"), Object(NonMatching, "REL/m415Dll/map.c"), }, ), Rel( "m416Dll", # Candlelight Flight objects={ - Object(Matching, "REL/m416Dll/main.c"), - Object(Matching, "REL/m416Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m416Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m416Dll/map.c"), }, ), Rel( "m417Dll", # Makin' Waves objects={ - Object(Matching, "REL/m417Dll/main.c"), - Object(Matching, "REL/m417Dll/water.c"), - Object(Matching, "REL/m417Dll/player.c"), - Object(Matching, "REL/m417Dll/sequence.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m417Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m417Dll/water.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m417Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m417Dll/sequence.c"), }, ), Rel( @@ -993,11 +995,11 @@ config.libs = [ Rel( "m420dll", # Fish n' Drips objects={ - Object(Matching, "REL/m420dll/main.c"), - Object(Matching, "REL/m420dll/camera.c"), - Object(Matching, "REL/m420dll/player.c"), - Object(Matching, "REL/m420dll/map.c"), - Object(Matching, "REL/m420dll/rand.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/rand.c"), }, ), Rel( @@ -1061,7 +1063,7 @@ config.libs = [ Rel( "m429Dll", # Team Treasure Trek objects={ - Object(Matching, "REL/m429Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m429Dll/main.c"), }, ), Rel( @@ -1075,14 +1077,14 @@ config.libs = [ Rel( "m431Dll", # Order Up objects={ - Object(Matching, "REL/m431Dll/main.c"), - Object(Matching, "REL/m431Dll/object.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m431Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m431Dll/object.c"), }, ), Rel( "m432Dll", # Dungeon Duos objects={ - Object(Matching, "REL/m432Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m432Dll/main.c"), }, ), Rel( @@ -1096,10 +1098,10 @@ config.libs = [ Rel( "m434Dll", # Cheep Cheep Sweep objects={ - Object(Matching, "REL/m434Dll/main.c"), - Object(Matching, "REL/m434Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m434Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m434Dll/map.c"), Object(NonMatching, "REL/m434Dll/player.c"), - Object(Matching, "REL/m434Dll/fish.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m434Dll/fish.c"), }, ), Rel( @@ -1112,15 +1114,15 @@ config.libs = [ Rel( "m436Dll", # Fruits of Doom objects={ - Object(Matching, "REL/m436Dll/main.c"), - Object(Matching, "REL/m436Dll/sequence.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m436Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m436Dll/sequence.c"), }, ), Rel( "m437Dll", # Balloon of Doom objects={ - Object(Matching, "REL/m437Dll/main.c"), - Object(Matching, "REL/m437Dll/sequence.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m437Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m437Dll/sequence.c"), }, ), Rel( @@ -1134,80 +1136,80 @@ config.libs = [ Rel( "m439Dll", # Paths of Peril objects={ - Object(Matching, "REL/m439Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m439Dll/main.c"), }, ), Rel( "m440Dll", # Bowser's Bigger Blast objects={ - Object(Matching, "REL/m440Dll/main.c"), - Object(Matching, "REL/m440Dll/object.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m440Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m440Dll/object.c"), }, ), Rel( "m441Dll", # Butterfly Blitz objects={ - Object(Matching, "REL/m441Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m441Dll/main.c"), }, ), Rel( "m442Dll", # Barrel Baron objects={ - Object(Matching, "REL/m442Dll/main.c"), - Object(Matching, "REL/m442Dll/score.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m442Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m442Dll/score.c"), }, ), Rel( "m443Dll", # Mario Speedwagons objects={ - Object(Matching, "REL/m443Dll/main.c"), - Object(Matching, "REL/m443Dll/map.c"), - Object(Matching, "REL/m443Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m443Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m443Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m443Dll/player.c"), }, ), Rel( "m444dll", # Reversal of Fortune objects={ - Object(Matching, "REL/m444dll/main.c"), - Object(Matching, "REL/m444dll/pinball.c"), - Object(Matching, "REL/m444dll/datalist.c"), - Object(Matching, "REL/m444dll/shadow.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m444dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m444dll/pinball.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m444dll/datalist.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m444dll/shadow.c"), }, ), Rel( "m445Dll", # Bowser Bop objects={ - Object(Matching, "REL/m445Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m445Dll/main.c"), }, ), Rel( "m446dll", # Mystic Match 'Em objects={ - Object(Matching, "REL/m446Dll/main.c"), - Object(Matching, "REL/m446Dll/card.c"), - Object(Matching, "REL/m446Dll/deck.c"), - Object(Matching, "REL/m446Dll/table.c"), - Object(Matching, "REL/m446Dll/player.c"), - Object(Matching, "REL/m446Dll/camera.c"), - Object(Matching, "REL/m446Dll/cursor.c"), - Object(Matching, "REL/m446Dll/stage.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m446Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m446Dll/card.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m446Dll/deck.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m446Dll/table.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m446Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m446Dll/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m446Dll/cursor.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m446Dll/stage.c"), }, ), Rel( "m447dll", # Archaeologuess objects={ - Object(Matching, "REL/m447dll/main.c"), - Object(Matching, "REL/m447dll/stage.c"), - Object(Matching, "REL/m447dll/camera.c"), - Object(Matching, "REL/m447dll/player.c"), - Object(Matching, "REL/m447dll/player_col.c"), - Object(Matching, "REL/m447dll/block.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m447dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m447dll/stage.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m447dll/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m447dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m447dll/player_col.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m447dll/block.c"), }, ), Rel( "m448Dll", # Goomba's Chip Flip objects={ - Object(Matching, "REL/m448Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m448Dll/main.c"), }, ), Rel( @@ -1219,28 +1221,28 @@ config.libs = [ Rel( "m450Dll", # The Final Battle! objects={ - Object(Matching, "REL/m450Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m450Dll/main.c"), }, ), Rel( "m451Dll", # Jigsaw Jitters objects={ - Object(Matching, "REL/m451Dll/m451.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m451Dll/m451.c"), }, ), Rel( "m453Dll", # Challenge Booksquirm objects={ - Object(Matching, "REL/m453Dll/main.c"), - Object(Matching, "REL/m453Dll/map.c"), - Object(Matching, "REL/m453Dll/score.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m453Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m453Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m453Dll/score.c"), }, ), Rel( "m455Dll", # Rumble Fishing objects={ - Object(Matching, "REL/m455Dll/main.c"), - Object(Matching, "REL/m455Dll/stage.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m455Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m455Dll/stage.c"), }, ), Rel( @@ -1280,7 +1282,7 @@ config.libs = [ Rel( "m461Dll", # Bob-omb X-ing objects={ - Object(Matching, "REL/m461Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m461Dll/main.c"), }, ), Rel( @@ -1298,53 +1300,53 @@ config.libs = [ Rel( "mentDll", objects={ - Object(Matching, "REL/mentDll/common.c"), - Object(Matching, "REL/mentDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mentDll/common.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mentDll/main.c"), }, ), Rel( "messDll", objects={ - Object(Matching, "REL/messDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/messDll/main.c"), }, ), Rel( "mgmodedll", objects={ - Object(Matching, "REL/mgmodedll/mgmode.c"), - Object(Matching, "REL/mgmodedll/free_play.c"), - Object(Matching, "REL/mgmodedll/record.c"), - Object(Matching, "REL/mgmodedll/battle.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mgmodedll/mgmode.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mgmodedll/free_play.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mgmodedll/record.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mgmodedll/battle.c"), Object(NonMatching, "REL/mgmodedll/tictactoe.c"), - Object(Matching, "REL/mgmodedll/main.c"), - Object(Matching, "REL/mgmodedll/datalist.c"), - Object(Matching, "REL/mgmodedll/minigame.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mgmodedll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mgmodedll/datalist.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mgmodedll/minigame.c"), }, ), Rel( "modeltestDll", objects={ - Object(Matching, "REL/modeltestDll/main.c"), - Object(Matching, "REL/modeltestDll/modeltest00.c"), - Object(Matching, "REL/modeltestDll/modeltest01.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeltestDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeltestDll/modeltest00.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeltestDll/modeltest01.c"), }, ), Rel( "modeseldll", objects={ - Object(Matching, "REL/modeseldll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeseldll/main.c"), Object(NonMatching, "REL/modeseldll/modesel.c"), - Object(Matching, "REL/modeseldll/filesel.c"), - Object(Matching, "REL/modeseldll/datalist.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeseldll/filesel.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeseldll/datalist.c"), }, ), Rel( "mpexDll", objects={ - Object(Matching, "REL/mpexDll/main.c"), - Object(Matching, "REL/mpexDll/mpex.c"), - Object(Matching, "REL/mpexDll/charsel.c"), - Object(Matching, "REL/mpexDll/mgname.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mpexDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mpexDll/mpex.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mpexDll/charsel.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mpexDll/mgname.c"), }, ), Rel( @@ -1372,7 +1374,7 @@ config.libs = [ Rel( "mstory4Dll", objects={ - Object(Matching, "REL/mstory4Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mstory4Dll/main.c"), }, ), Rel( @@ -1389,71 +1391,71 @@ config.libs = [ Rel( "nisDll", objects={ - Object(Matching, "REL/nisDll/main.c") + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/nisDll/main.c") }, ), Rel( "option", objects={ - Object(Matching, "REL/option/scene.c"), - Object(Matching, "REL/option/camera.c"), - Object(Matching, "REL/option/room.c"), - Object(Matching, "REL/option/guide.c"), - Object(Matching, "REL/option/state.c"), - Object(Matching, "REL/option/rumble.c"), - Object(Matching, "REL/option/sound.c"), - Object(Matching, "REL/option/record.c"), - Object(Matching, "REL/option/window.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/scene.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/room.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/guide.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/state.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/rumble.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/sound.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/record.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/window.c"), }, ), Rel( "present", objects={ - Object(Matching, "REL/present/init.c"), - Object(Matching, "REL/present/camera.c"), - Object(Matching, "REL/present/present.c"), - Object(Matching, "REL/present/main.c"), - Object(Matching, "REL/present/common.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/init.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/present.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/common.c"), }, ), Rel( "resultDll", objects={ - Object(Matching, "REL/resultDll/main.c"), - Object(Matching, "REL/resultDll/battle.c"), - Object(Matching, "REL/resultDll/datalist.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/resultDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/resultDll/battle.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/resultDll/datalist.c"), }, ), Rel( "safDll", objects={ - Object(Matching, "REL/safDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/safDll/main.c"), }, ), Rel( "selmenuDll", objects={ - Object(Matching, "REL/selmenuDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/selmenuDll/main.c"), }, ), Rel( "staffDll", objects={ - Object(Matching, "REL/staffDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/staffDll/main.c"), }, ), Rel( "subchrselDll", objects={ - Object(Matching, "REL/subchrselDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/subchrselDll/main.c"), }, ), Rel( "w01Dll", # Toad's Midway Madness objects={ Object(Matching, "REL/w01Dll/main.c"), - Object(Matching, "REL/w01Dll/mg_coin.c"), - Object(Matching, "REL/w01Dll/mg_item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w01Dll/mg_coin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w01Dll/mg_item.c"), }, ), Rel( @@ -1462,8 +1464,8 @@ config.libs = [ Object(Matching, "REL/w02Dll/main.c"), Object(Matching, "REL/w02Dll/gendice.c"), Object(Matching, "REL/w02Dll/gamble.c"), - Object(Matching, "REL/w02Dll/mg_coin.c"), - Object(Matching, "REL/w02Dll/mg_item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/mg_coin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/mg_item.c"), Object(Matching, "REL/w02Dll/shuffleboard.c"), Object(Matching, "REL/w02Dll/roulette.c"), }, @@ -1487,8 +1489,8 @@ config.libs = [ Object(Matching, "REL/w04Dll/bridge.c"), Object(Matching, "REL/w04Dll/boo_event.c"), Object(Matching, "REL/w04Dll/big_boo.c"), - Object(Matching, "REL/w04Dll/mg_item.c"), - Object(Matching, "REL/w04Dll/mg_coin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w04Dll/mg_item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w04Dll/mg_coin.c"), }, ), Rel( @@ -1496,10 +1498,10 @@ config.libs = [ objects={ Object(Matching, "REL/w05Dll/main.c"), Object(Matching, "REL/w05Dll/hotel.c"), - Object(Matching, "REL/w05Dll/monkey.c"), + Object(Matching,"REL/w05Dll/monkey.c"), Object(Matching, "REL/w05Dll/dolphin.c"), - Object(Matching, "REL/w05Dll/mg_item.c"), - Object(Matching, "REL/w05Dll/mg_coin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/mg_item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/mg_coin.c"), }, ), Rel( @@ -1537,9 +1539,9 @@ config.libs = [ Rel( "ztardll", objects={ - Object(Matching, "REL/ztardll/main.c"), - Object(Matching, "REL/ztardll/font.c"), - Object(Matching, "REL/ztardll/select.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/ztardll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/ztardll/font.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/ztardll/select.c"), }, ), ] diff --git a/include/game/board/window.h b/include/game/board/window.h index eb015c5f..dd0b87df 100644 --- a/include/game/board/window.h +++ b/include/game/board/window.h @@ -31,5 +31,6 @@ s32 BoardWinPortraitGetStar(void); void BoardWinPlayerSet(s32 player); void BoardWinStartComKeySet(void); void BoardWinComKeyFuncSet(BoardWinComKeyFunc func); +s16 BoardWinIDGet(void); #endif \ No newline at end of file diff --git a/include/game/gamework_data.h b/include/game/gamework_data.h index cad58011..6e876bc1 100644 --- a/include/game/gamework_data.h +++ b/include/game/gamework_data.h @@ -3,6 +3,7 @@ #include "dolphin.h" #include "game/flag.h" +#include "version.h" //HACK: to prevent prototype errors extern void HuPadRumbleAllStop(void); @@ -235,6 +236,7 @@ static inline s32 GWMessSpeedGet(void) static inline void GWMessSpeedSet(s32 value) { + #if VERSION_NTSC GWSystem.mess_speed = value; switch(value) { case 0: @@ -249,6 +251,26 @@ static inline void GWMessSpeedSet(s32 value) GWSystem.mess_delay = 32; break; } + #else + GWSystem.mess_speed = value; + switch(value) { + case 0: + GWSystem.mess_delay = 32; + break; + + case 2: + GWSystem.mess_delay = 64; + break; + + case 1: + GWSystem.mess_delay = 48; + break; + + default: + GWSystem.mess_delay = 120; + break; + } + #endif } static inline void GWSaveModeSet(s32 value) diff --git a/include/version.h b/include/version.h new file mode 100644 index 00000000..8d91dabf --- /dev/null +++ b/include/version.h @@ -0,0 +1,18 @@ +#ifndef _VERSION_H +#define _VERSION_H + +#define VERSION_NO_ENG0 0 +#define VERSION_NO_ENG1 1 +#define VERSION_NO_PAL0 2 +#define VERSION_NO_PAL2 3 +#define VERSION_NO_JAP 4 + +#define VERSION_ENG (VERSION == VERSION_NO_ENG0 || VERSION == VERSION_NO_ENG1) +#define VERSION_PAL (VERSION == VERSION_NO_PAL0 || VERSION == VERSION_NO_PAL2) +#define VERSION_JAP (VERSION == VERSION_NO_JAP) +#define VERSION_NTSC (!VERSION_PAL) + +#define VERSION_REV0 (VERSION == VERSION_NO_ENG0 || VERSION == VERSION_NO_PAL0 || VERSION == VERSION_NO_JAP) +#define VERSION_REV1 (!VERSION_REV0) + +#endif diff --git a/src/REL/w04Dll/big_boo.c b/src/REL/w04Dll/big_boo.c index ddc030bc..b5f6b3cf 100755 --- a/src/REL/w04Dll/big_boo.c +++ b/src/REL/w04Dll/big_boo.c @@ -913,9 +913,13 @@ static void fn_1_8A60(void) { HuPrcVSleep(); } fn_1_7300(); + #if VERSION_NTSC sprintf(sp10, "%d", var_r29); BoardWinCreate(2, MAKE_MESSID(32, 11), 9); BoardWinInsertMesSet(MAKE_MESSID_PTR(sp10), 0); + #else + BoardWinCreate(2, MAKE_MESSID(32, 11), 9); + #endif BoardWinWait(); BoardWinKill(); BoardAudSeqFadeOut(1, 1000); diff --git a/src/REL/w06Dll/fire.c b/src/REL/w06Dll/fire.c index 2fcc6899..f9fb964b 100755 --- a/src/REL/w06Dll/fire.c +++ b/src/REL/w06Dll/fire.c @@ -49,6 +49,24 @@ static s16 lbl_1_data_22A = -1; static s16 lbl_1_data_22C = -1; static s16 lbl_1_data_22E = -1; +#if VERSION_PAL +static s32 lbl_1_data_230[] = { + MAKE_MESSID(8, 0), + MAKE_MESSID(8, 1), + MAKE_MESSID(8, 2), + MAKE_MESSID(8, 3), + MAKE_MESSID(8, 4), + MAKE_MESSID(8, 5), + MAKE_MESSID(8, 6), + MAKE_MESSID(8, 7), + MAKE_MESSID(8, 8), + MAKE_MESSID(8, 9), + MAKE_MESSID(8, 10), + MAKE_MESSID(8, 11), + MAKE_MESSID(8, 12), + MAKE_MESSID(8, 13) +}; +#else static s32 lbl_1_data_230[] = { MAKE_MESSID(8, 14), MAKE_MESSID(8, 15), @@ -65,7 +83,7 @@ static s32 lbl_1_data_230[] = { MAKE_MESSID(8, 26), MAKE_MESSID(8, 27) }; - +#endif void fn_1_6EF0(void) { BoardRollDispSet(0); lbl_1_bss_90 = HuPrcChildCreate(fn_1_6F80, 0x2003, 0x3800, 0, boardMainProc); @@ -203,9 +221,12 @@ static void fn_1_74BC(s32 arg0) { static void fn_1_7574(void) { s32 temp_r3; s32 temp_r29; + #if VERSION_PAL + s32 playerNo = GWSystem.player_curr; + #endif s32 temp_r28; s32 i; - + for (i = 0; i < 4; i++) { if (lbl_1_bss_C2[i] == 0) { continue; @@ -218,11 +239,17 @@ static void fn_1_7574(void) { BoardWinCreate(0, MAKE_MESSID(48, 16), -1); BoardWinInsertMesSet(temp_r28, 0); BoardWinInsertMesSet(lbl_1_data_230[temp_r29], 1); + #if VERSION_PAL + GWSystem.player_curr = i; + #endif BoardWinPlayerSet(i); BoardWinWait(); BoardWinKill(); } } + #if VERSION_PAL + GWSystem.player_curr = playerNo; + #endif } static void fn_1_7674(s32 arg0) { diff --git a/src/game/audio.c b/src/game/audio.c index 82810c52..808369d4 100644 --- a/src/game/audio.c +++ b/src/game/audio.c @@ -9,7 +9,7 @@ static int HuSePlay(int seId, MSM_SEPARAM *param); extern s16 omSysExitReq; -static s32 charVoiceGroupStat[8]; +s32 charVoiceGroupStat[8]; static s32 sndFXBuf[64][2]; static s16 Hu3DAudVol; diff --git a/src/game/board/boo.c b/src/game/board/boo.c index dc546aeb..56dff9ce 100755 --- a/src/game/board/boo.c +++ b/src/game/board/boo.c @@ -1335,7 +1335,7 @@ static void TakeBallCoinPosSet(BallTakeCoinData *arg0, Vec *arg1) { BoardModelPosSetV(arg0->unk00, &arg0->unk04); } -BOOL CheckBallCoinDone(void) { +static BOOL CheckBallCoinDone(void) { BallTakeCoinData *var_r31; s32 i; @@ -1351,7 +1351,7 @@ BOOL CheckBallCoinDone(void) { return TRUE; } -void TakeBallStar(void) { +static void TakeBallStar(void) { BallTakeCoinWork *temp_r31; Vec sp8; @@ -1376,7 +1376,7 @@ void TakeBallStar(void) { HuAudFXPlay(0x361); } -void ExecTakeBallStar(omObjData *arg0) { +static void ExecTakeBallStar(omObjData *arg0) { BallTakeCoinWork *temp_r29 = OM_GET_WORK_PTR(arg0, BallTakeCoinWork); Vec sp8; float var_f30; @@ -1405,7 +1405,7 @@ void ExecTakeBallStar(omObjData *arg0) { BoardModelRotYSet(temp_r29->unk02, arg0->rot.y); } -BOOL CheckTakeBallStarDone(void) { +static BOOL CheckTakeBallStarDone(void) { if (ballTakeCoinObj) { return FALSE; } else { diff --git a/src/game/board/char_wheel.c b/src/game/board/char_wheel.c index 380fc7bc..13e4664f 100755 --- a/src/game/board/char_wheel.c +++ b/src/game/board/char_wheel.c @@ -132,6 +132,12 @@ static void ExecCharWheel(omObjData *arg0) { temp_r31 = OM_GET_WORK_PTR(arg0, CharWheelWork);; if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { KillCharWheelSpr(); + #if VERSION_PAL + if (wheelFXStat != -1) { + HuAudFXStop(wheelFXStat); + wheelFXStat = -1; + } + #endif charWheelObj = NULL; omDelObjEx(HuPrcCurrentGet(), arg0); return; @@ -322,7 +328,13 @@ static void UpdateCharWheel(CharWheelWork *arg0) { } var_f23 = 8191.0f - 8191.0f * (var_f25 / wheelSpeed); OSf32tos16(&var_f23, &var_r17); + #if VERSION_PAL + if(wheelFXStat != -1) { + HuAudFXPitchSet(wheelFXStat, -var_r17); + } + #else HuAudFXPitchSet(wheelFXStat, -var_r17); + #endif if (var_f25 > -0.0000001f && var_f25 < 0.0000001f) { arg0->unk00_field3 = 3; if (wheelFXStat != -1) { @@ -379,7 +391,14 @@ static void GrowCharWheel(CharWheelWork *arg0) { } arg0->unk02 = 90; arg0->unk00_field3 = 2; + #if VERSION_PAL + if(!BoardIsKill()) { + wheelFXStat = HuAudFXPlay(0x30A); + } + #else wheelFXStat = HuAudFXPlay(0x30A); + #endif + } OSs8tof32(&arg0->unk02, &temp_f30); HuSprGrpScaleSet(wheelSprGrp, sind(temp_f30), sind(temp_f30)); diff --git a/src/game/board/item.c b/src/game/board/item.c index df2f49b1..4386a4a7 100755 --- a/src/game/board/item.c +++ b/src/game/board/item.c @@ -112,7 +112,7 @@ static AnimData *genieParticleAnim; static s16 geniePlayerMot[3]; static Process *itemProc; -s32 lbl_801D37A0[2] = { DATA_MAKE_NUM(DATADIR_BOARD, 117), -1 }; +static s32 itemMotTbl[2] = { DATA_MAKE_NUM(DATADIR_BOARD, 117), -1 }; static void (*itemFuncTbl[])(void) = { ExecItemMini, ExecItemMega, ExecItemMiniSuper, ExecItemMegaSuper, ExecItemHammer, ExecItemPipe, ExecItemSwap, ExecItemSpark, ExecItemLight, ExecItemWhistle, ExecItemBowser, ExecItemBooBall, ExecItemGenie, ExecItemBag }; @@ -1183,7 +1183,7 @@ static void ExecItemSpark(void) BoardModelLayerSet(temp_r30, 3); BoardModelVisibilitySet(temp_r30, 0); HuAudFXPlay(0x350); - suitMdl = BoardModelCreate(itemMdlTbl[currItem], lbl_801D37A0, 0); + suitMdl = BoardModelCreate(itemMdlTbl[currItem], itemMotTbl, 0); BoardModelLayerSet(suitMdl, 2); ItemShowProc(NULL, NULL); temp_r28 = GWPlayer[currItemRestore].space_curr; diff --git a/src/game/board/main.c b/src/game/board/main.c index e244e4df..eaa31aa0 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -403,8 +403,11 @@ static void MainFunc(void) if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { BoardTutorialWorkSave(); BoardTutorialPlayerInit(); - GWSystem.mess_speed = 1; - GWSystem.mess_delay = 32; + #if VERSION_PAL + GWMessSpeedSet(3); + #else + GWMessSpeedSet(1); + #endif } CreateBoard(); if(!_CheckFlag(FLAG_ID_MAKE(1, 1))) { diff --git a/src/game/board/roll.c b/src/game/board/roll.c index fecf6dd3..c52bd6a5 100755 --- a/src/game/board/roll.c +++ b/src/game/board/roll.c @@ -139,6 +139,71 @@ s32 BoardRollExec(s32 arg0) return destMode; } +static void RollWinCreate(s32 playerNo) +{ + float sp8[2]; + float posX; + float posY; + s32 var_r29; + s32 var_r27; + s32 temp_r25; + + if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) { + var_r27 = BoardPlayerItemCount(playerNo); + if (GWTeamGet()) { + temp_r25 = BoardPlayerSameTeamFind(playerNo); + var_r27 += BoardPlayerItemCount(temp_r25); + } + if (BoardItemPrevGet() != -1 || var_r27 == 0 || _CheckFlag(FLAG_ID_MAKE(1, 9)) || BoardMegaDoubleDiceCheck()) { + var_r29 = MAKE_MESSID(0x09, 0x04); + } + else { + var_r29 = MAKE_MESSID(0x09, 0x02); + } + if (inputTimer != 0) { + var_r29 = MAKE_MESSID(0x30, 0x25); + } + HuWinMesMaxSizeGet(1, sp8, var_r29); + #if VERSION_PAL + posY = HU_DISP_HEIGHT - 176; + switch (GWGameStat.language) { + case 0: + case 4: + posX = -10000.0f; + break; + + case 3: + posX = HU_DISP_CENTERX - (sp8[0] / 2 - 32.0f); + break; + + case 5: + posX = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f); + posY = 258; + break; + + default: + posX = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f); + break; + } + #else + switch (GWGameStat.language) { + case 0: + posX = -10000.0f; + break; + case 1: + posX = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f); + break; + } + posY = HU_DISP_HEIGHT - 176; + #endif + + rollWin = HuWinCreate(posX, posY, sp8[0], sp8[1], 0); + HuWinBGTPLvlSet(rollWin, 0.0f); + HuWinMesSpeedSet(rollWin, 0); + HuWinMesSet(rollWin, var_r29); + } +} + void BoardRollKill(void) { if (rollProc) { @@ -177,15 +242,11 @@ void BoardRollWinDispSet(s32 arg0) static void RollMain(void) { - float sp8[2]; - float var_f31; - float var_f30; + s32 var_r28; - s32 var_r27; - s32 temp_r26; - s32 temp_r25; + s32 var_r30; - s32 var_r29; + s32 i; diceValue[0] = diceValue[1] = diceValue[2] = 0; @@ -195,37 +256,7 @@ static void RollMain(void) BoardCameraMotionWait(); BoardCameraTargetModelSet(-1); for (i = 0; i < numDice; i++) { - temp_r26 = rollPlayer; - if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) { - var_r27 = BoardPlayerItemCount(temp_r26); - if (GWTeamGet()) { - temp_r25 = BoardPlayerSameTeamFind(temp_r26); - var_r27 += BoardPlayerItemCount(temp_r25); - } - if (BoardItemPrevGet() != -1 || var_r27 == 0 || _CheckFlag(FLAG_ID_MAKE(1, 9)) || BoardMegaDoubleDiceCheck()) { - var_r29 = MAKE_MESSID(0x09, 0x04); - } - else { - var_r29 = MAKE_MESSID(0x09, 0x02); - } - if (inputTimer != 0) { - var_r29 = MAKE_MESSID(0x30, 0x25); - } - HuWinMesMaxSizeGet(1, sp8, var_r29); - switch (GWGameStat.language) { - case 0: - var_f31 = -10000.0f; - break; - case 1: - var_f31 = HU_DISP_CENTERX - (sp8[0] / 2 - 16.0f); - break; - } - var_f30 = HU_DISP_HEIGHT - 176; - rollWin = HuWinCreate(var_f31, var_f30, sp8[0], sp8[1], 0); - HuWinBGTPLvlSet(rollWin, 0.0f); - HuWinMesSpeedSet(rollWin, 0); - HuWinMesSet(rollWin, var_r29); - } + RollWinCreate(rollPlayer); DiceCreate(i); DiceWaitFull(i); DoInput(i); diff --git a/src/game/board/shop.c b/src/game/board/shop.c index 92198602..47b332c3 100755 --- a/src/game/board/shop.c +++ b/src/game/board/shop.c @@ -984,7 +984,12 @@ static void CreateShopItemChoice(s32 arg0, s32 arg1) { omObjData *temp_r30; ItemChoiceWork *var_r31; s16 spC; - + s16 i; + #if VERSION_PAL + for(i=0; i<6; i++) { + cursorPosTbl[i][0] = 190; + } + #endif temp_r30 = omAddObjEx(boardObjMan, 0x7E01, 0, 0, -1, UpdateShopItemChoice); itemChoiceObj = temp_r30; itemChoice = -1; @@ -996,11 +1001,29 @@ static void CreateShopItemChoice(s32 arg0, s32 arg1) { var_r31->unk02 = 0; var_r31->unk03 = arg1; var_r31->unk06 = HuSprGrpCreate(1); + #if VERSION_PAL + if (GWLanguageGet() != 0) { + s16 winId = BoardWinIDGet(); + if(winId != -1) { + WindowData *winP = &winData[winId]; + for(i=0; i<6; i++) { + cursorPosTbl[i][0] = winP->pos_x+96; + } + } else { + for(i=0; i<6; i++) { + cursorPosTbl[i][0] = 166; + } + } + } + temp_r30->trans.x = cursorPosTbl[0][0]; + temp_r30->trans.y = cursorPosTbl[0][1]; + #else temp_r30->trans.x = cursorPosTbl[0][0]; temp_r30->trans.y = cursorPosTbl[0][1]; if (GWLanguageGet() != 0) { temp_r30->trans.x -= 24.0f; } + #endif if (GWPlayer[arg0].com) { var_r31->unk01 = GWMessDelayGet(); } @@ -1032,9 +1055,11 @@ static void MoveShopItemChoice(omObjData *arg0, ItemChoiceWork *arg1) { temp_r28 = arg1->unk02; arg0->trans.x = cursorPosTbl[arg1->unk02][0]; arg0->trans.y = cursorPosTbl[arg1->unk02][1]; + #if VERSION_NTSC if (GWLanguageGet() != 0) { arg0->trans.x -= 24.0f; } + #endif if (GWPlayer[arg1->unk00_field1].com) { GetShopItemChoiceInput(arg1, arg0, &sp8); } else { diff --git a/src/game/board/star.c b/src/game/board/star.c index f4579aa8..3f2a0ba5 100755 --- a/src/game/board/star.c +++ b/src/game/board/star.c @@ -74,7 +74,7 @@ static Process *starProc; static s16 starParman = -1; static s16 hostMdl = -1; -const s32 lbl_8011E040[9] = { +static const s32 starMesTbl1[9] = { MAKE_MESSID(12, 0), MAKE_MESSID(12, 9), MAKE_MESSID(12, 18), @@ -86,7 +86,7 @@ const s32 lbl_8011E040[9] = { MAKE_MESSID(12, 0) }; -const s32 lbl_8011E064[9][2] = { +static const s32 starMesTbl2[9][2] = { { MAKE_MESSID(21, 34), MAKE_MESSID(21, 40) }, { MAKE_MESSID(21, 35), MAKE_MESSID(21, 41) }, { MAKE_MESSID(21, 36), MAKE_MESSID(21, 42) }, @@ -249,12 +249,12 @@ static void ExecStar(void) { BoardCameraViewSet(3); BoardCameraMotionWait(); if (GWStarsGet(temp_r31) >= 999) { - temp_r29 = lbl_8011E040[temp_r27] + 5; + temp_r29 = starMesTbl1[temp_r27] + 5; BoardWinCreate(0, temp_r29, BoardWinPortraitGetStar()); BoardWinWait(); BoardWinKill(); } else if (BoardPlayerCoinsGet(temp_r31) < 20 && GWSystem.last5_effect != 4) { - temp_r29 = lbl_8011E040[temp_r27] + 2; + temp_r29 = starMesTbl1[temp_r27] + 2; BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar()); BoardWinWait(); BoardWinKill(); @@ -263,7 +263,7 @@ static void ExecStar(void) { while (!BoardStatusStopCheck(0) || !BoardStatusStopCheck(1) || !BoardStatusStopCheck(2) || !BoardStatusStopCheck(3)) { HuPrcVSleep(); } - temp_r29 = lbl_8011E040[temp_r27]; + temp_r29 = starMesTbl1[temp_r27]; BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar()); BoardWinInsertMesSet(BoardPlayerGetCharMess(temp_r31), 0); BoardWinWait(); @@ -275,12 +275,12 @@ static void ExecStar(void) { HuPrcVSleep(); } if (GWSystem.last5_effect == 4) { - temp_r29 = lbl_8011E040[temp_r27] + 8; + temp_r29 = starMesTbl1[temp_r27] + 8; BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar()); BoardWinWait(); break; } - temp_r29 = lbl_8011E040[temp_r27] + 1; + temp_r29 = starMesTbl1[temp_r27] + 1; BoardWinCreateChoice(1, temp_r29, BoardWinPortraitGetStar(), 0); BoardWinAttrSet(0x10); if (GWPlayer[temp_r31].com) { @@ -294,7 +294,7 @@ static void ExecStar(void) { switch (BoardWinChoiceGet()) { case 0: if (BoardPlayerCoinsGet(temp_r31) < 20) { - temp_r29 = lbl_8011E040[temp_r27] + 2; + temp_r29 = starMesTbl1[temp_r27] + 2; BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar()); BoardWinWait(); BoardStatusShowSet(temp_r31, 0); @@ -306,7 +306,7 @@ static void ExecStar(void) { } goto block_A; case 1: - temp_r29 = lbl_8011E040[temp_r27] + 4; + temp_r29 = starMesTbl1[temp_r27] + 4; BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar()); BoardWinWait(); BoardStatusShowSet(temp_r31, 0); @@ -326,7 +326,7 @@ static void ExecStar(void) { } } block_A: - temp_r29 = lbl_8011E040[temp_r27] + 3; + temp_r29 = starMesTbl1[temp_r27] + 3; BoardWinCreate(2, temp_r29, BoardWinPortraitGetStar()); BoardWinWait(); BoardWinKill(); @@ -734,9 +734,9 @@ void BoardStarShowNext(s32 arg0) { HuPrcVSleep(); } if (var_r28 == 0) { - var_r30 = lbl_8011E040[GWBoardGet()] + 6; + var_r30 = starMesTbl1[GWBoardGet()] + 6; } else { - var_r30 = lbl_8011E064[GWBoardGet()][0]; + var_r30 = starMesTbl2[GWBoardGet()][0]; } BoardWinCreate(3, var_r30, -1); BoardWinPause(); @@ -748,9 +748,9 @@ void BoardStarShowNext(s32 arg0) { BoardWinKill(); HuPrcSleep(3); if (var_r28 == 0) { - var_r30 = lbl_8011E040[GWBoardGet()] + 7; + var_r30 = starMesTbl1[GWBoardGet()] + 7; } else { - var_r30 = lbl_8011E064[GWBoardGet()][1]; + var_r30 = starMesTbl2[GWBoardGet()][1]; } BoardWinCreate(3, var_r30, -1); BoardWinWait(); diff --git a/src/game/board/ui.c b/src/game/board/ui.c index d8f89499..4259f29d 100755 --- a/src/game/board/ui.c +++ b/src/game/board/ui.c @@ -1951,28 +1951,32 @@ static void UpdateItemWindow(omObjData *arg0) { static void CreatePickerWindow(UnkUiWork01 *arg0, s32 arg1) { float spC[2]; - float var_f31; - float var_f30; - float var_f29; + + float posX; + float posY; + float yOfs; s32 var_r30; - + #if VERSION_NTSC switch (GWGameStat.language) { case 1: - var_f31 = 0.0f; + yOfs = 0.0f; break; case 0: - var_f31 = 0.0f; + yOfs = 0.0f; break; } + #else + yOfs = 0; + #endif if (arg1 != 0) { var_r30 = MAKE_MESSID(0x10, 0x1A); } else { var_r30 = MAKE_MESSID(0x10, 0x1B); } HuWinMesMaxSizeGet(1, spC, var_r30); - var_f30 = -10000.0f; - var_f29 = var_f31 + (HU_DISP_HEIGHT-128); - arg0->unk06 = HuWinCreate(var_f30, var_f29, spC[0], spC[1], 0); + posX = -10000.0f; + posY = yOfs + (HU_DISP_HEIGHT-128); + arg0->unk06 = HuWinCreate(posX, posY, spC[0], spC[1], 0); HuWinBGTPLvlSet(arg0->unk06, 0.0f); HuWinMesSpeedSet(arg0->unk06, 0); HuWinMesSet(arg0->unk06, var_r30); diff --git a/src/game/board/view.c b/src/game/board/view.c index 369f16f7..72d5b4b3 100755 --- a/src/game/board/view.c +++ b/src/game/board/view.c @@ -396,20 +396,32 @@ static void DestroyFocus(void) { static void CreateButtonWin(void) { float sp8[2]; - float var_f31; - float var_f30; + float posX; + float posY; s32 var_r31; if (viewControls != 2) { var_r31 = MAKE_MESSID(0x09, 0x05); - var_f31 = 286.0f; + #if VERSION_PAL + HuWinMesMaxSizeGet(1, sp8, var_r31); + posX = 288-((sp8[0]/2)-32); + #endif + posY = 286.0f; } else { var_r31 = MAKE_MESSID(0x10, 0x4D); - var_f31 = 328.0f; + #if VERSION_PAL + posX = -10000.0f; + posY = 324.0f; + #else + posY = 328.0f; + #endif + } HuWinMesMaxSizeGet(1, sp8, var_r31); - var_f30 = -10000.0f; - buttonWin = HuWinCreate(var_f30, var_f31, sp8[0], sp8[1], 0); + #if VERSION_NTSC + posX = -10000.0f; + #endif + buttonWin = HuWinCreate(posX, posY, sp8[0], sp8[1], 0); HuWinBGTPLvlSet(buttonWin, 0.0f); HuWinMesSpeedSet(buttonWin, 0); HuWinMesSet(buttonWin, var_r31); diff --git a/src/game/board/window.c b/src/game/board/window.c index 447f45e0..4fbc3f45 100644 --- a/src/game/board/window.c +++ b/src/game/board/window.c @@ -97,6 +97,11 @@ static void ExecBoardWindow(void) { if (size[0] <= size_win[0]) { size[0] = size_win[0]; pos[0] = pos_win[0]; + #if VERSION_PAL + if(winPosIdx == 1) { + size[0] += 4; + } + #endif } else { pos[0] = -10000.0f; } @@ -338,7 +343,7 @@ s32 BoardWinPortraitGetStar(void) { void BoardWinPlayerSet(s32 player) { s32 i; - + #if VERSION_NTSC if (player == -1) { if (GWPartyGet() != 1) { for (i = 0, disablePlayer = i; i < 4; i++) { @@ -354,6 +359,21 @@ void BoardWinPlayerSet(s32 player) { } else { disablePlayer = ~(1 << GWPlayer[player].port); } + #else + if (player == -1) { + if (GWPartyGet() != 1) { + for (i = 0, disablePlayer = i; i < 4; i++) { + if (GWPlayer[i].com != 0) { + disablePlayer |= 1 << GWPlayer[i].port; + } + } + } else { + disablePlayer = 0; + } + } else { + disablePlayer = ~(1 << GWPlayer[player].port); + } + #endif if (_CheckFlag(FLAG_ID_MAKE(1, 11)) != 0) { disablePlayer = 0; } @@ -405,4 +425,9 @@ void BoardWinStartComKeySet(void) { void BoardWinComKeyFuncSet(BoardWinComKeyFunc func) { comKeyFunc = func; +} + +s16 BoardWinIDGet(void) +{ + return windowID; } \ No newline at end of file diff --git a/src/game/data.c b/src/game/data.c index e630d7ed..f76419c5 100644 --- a/src/game/data.c +++ b/src/game/data.c @@ -6,7 +6,7 @@ #define PTR_OFFSET(ptr, offset) (void *)(((u8 *)(ptr)+(u32)(offset))) #define DATA_EFF_SIZE(size) (((size)+1) & ~0x1) -static void **HuDataReadMultiSub(s32 *data_ids, BOOL use_num, s32 num); +void **HuDataReadMultiSub(s32 *data_ids, BOOL use_num, s32 num); #define DATA_MAX_READSTAT 128 @@ -406,7 +406,7 @@ void **HuDataReadMulti(s32 *data_ids) return HuDataReadMultiSub(data_ids, FALSE, 0); } -static void **HuDataReadMultiSub(s32 *data_ids, BOOL use_num, s32 num) +void **HuDataReadMultiSub(s32 *data_ids, BOOL use_num, s32 num) { s32 *dir_ids; char **paths; diff --git a/src/game/decode.c b/src/game/decode.c index 6414b269..db70b788 100644 --- a/src/game/decode.c +++ b/src/game/decode.c @@ -8,7 +8,7 @@ struct decode_data u32 size; }; -static u8 TextBuffer[1024]; +static u8 textBuffer[1024]; static void HuDecodeNone(struct decode_data *decode) { @@ -27,7 +27,7 @@ static void HuDecodeLz(struct decode_data *decode) for(i=0; i<1024; i++) { - TextBuffer[i] = 0; + textBuffer[i] = 0; } while(decode->size) { flag >>= 1; @@ -35,7 +35,7 @@ static void HuDecodeLz(struct decode_data *decode) flag = (*decode->src++)|0xFF00; } if(flag & 0x1) { - TextBuffer[pos++] = *decode->dst++ = *decode->src++; + textBuffer[pos++] = *decode->dst++ = *decode->src++; pos = pos & 0x3FF; decode->size--; } else { @@ -44,7 +44,7 @@ static void HuDecodeLz(struct decode_data *decode) i |= ((copy_len & ~0x3F) << 2); copy_len = (copy_len & 0x3F)+3; for(j=0; jdst++ = TextBuffer[(i+j) & 0x3FF]; + textBuffer[pos++] = *decode->dst++ = textBuffer[(i+j) & 0x3FF]; pos &= 0x3FF; } decode->size -= j; diff --git a/src/game/hsfanim.c b/src/game/hsfanim.c index d0d7a579..7de7763f 100755 --- a/src/game/hsfanim.c +++ b/src/game/hsfanim.c @@ -24,7 +24,7 @@ typedef struct { /* 0x3C */ HsfanimStruct00 *unk3C; } ParManProcUserData; // Size 0x40 -static void _Hu3DParticleAttrReset(ModelData *arg0, Mtx arg1); +static void particleFunc(ModelData *arg0, Mtx arg1); static void ParManFunc(void); static void ParManHook(ModelData *arg0, ParticleData *arg1, Mtx matrix); @@ -493,7 +493,7 @@ s16 Hu3DParticleCreate(AnimData *arg0, s16 arg1) { s16 i; void *temp_r24; - temp_r25 = Hu3DHookFuncCreate((void*) &_Hu3DParticleAttrReset); + temp_r25 = Hu3DHookFuncCreate((void*) &particleFunc); temp_r28 = &Hu3DData[temp_r25]; Hu3DModelAttrSet(temp_r25, HU3D_ATTR_PARTICLE_KILL); temp_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(ParticleData), temp_r28->unk_48); @@ -658,7 +658,7 @@ static float baseST[] = { 1.0f, 1.0f, 0.0f, 1.0f }; -static void _Hu3DParticleAttrReset(ModelData *arg0, Mtx arg1) { +static void particleFunc(ModelData *arg0, Mtx arg1) { Vec *var_r30; float temp_f31; float temp_f29; diff --git a/src/game/sreset.c b/src/game/sreset.c index ae00c3cf..2ddadd51 100644 --- a/src/game/sreset.c +++ b/src/game/sreset.c @@ -4,6 +4,9 @@ #include "game/pad.h" #include "game/audio.h" #include "game/thpmain.h" +#include "game/gamework_data.h" + +#include "version.h" #define SR_DVD_LOADING 0 #define SR_DVD_COVER_OPEN 1 @@ -19,6 +22,8 @@ extern s32 HuDvdErrWait; static s32 SR_PreRstChk[4] = {}; +#if VERSION_NTSC + #include "coveropen_en.inc" #include "fatalerror_en.inc" #include "loading_en.inc" @@ -26,6 +31,45 @@ static s32 SR_PreRstChk[4] = {}; #include "retryerror_en.inc" #include "wrongdisc_en.inc" +#else + +#include "coveropen_en.inc" +#include "fatalerror_en.inc" +#include "loading_en.inc" +#include "nodisc_en.inc" +#include "retryerror_en.inc" +#include "wrongdisc_en.inc" + +#include "coveropen_fr.inc" +#include "fatalerror_fr.inc" +#include "loading_fr.inc" +#include "nodisc_fr.inc" +#include "retryerror_fr.inc" +#include "wrongdisc_fr.inc" + +#include "coveropen_ge.inc" +#include "fatalerror_ge.inc" +#include "loading_ge.inc" +#include "nodisc_ge.inc" +#include "retryerror_ge.inc" +#include "wrongdisc_ge.inc" + +#include "coveropen_it.inc" +#include "fatalerror_it.inc" +#include "loading_it.inc" +#include "nodisc_it.inc" +#include "retryerror_it.inc" +#include "wrongdisc_it.inc" + +#include "coveropen_sp.inc" +#include "fatalerror_sp.inc" +#include "loading_sp.inc" +#include "nodisc_sp.inc" +#include "retryerror_sp.inc" +#include "wrongdisc_sp.inc" + +#endif + static s16 SR_PushTime[4] = {}; static s8 SR_ResetPad = -1; @@ -103,9 +147,17 @@ void HuDvdErrDispInit(GXRenderModeObj *rmode, void *xfb1, void *xfb2) XfbW = (u16)(((u16)rmode->fbWidth+15) & ~0xF); XfbH = rmode->xfbHeight; } else { + #if VERSION_NTSC XfbW = 640; XfbH = 480; + #else + XfbW = 640; + XfbH = 528; + #endif } + #if VERSION_PAL + (void)(VIGetTvFormat() == VI_PAL); + #endif if((u16)rmode->xFBmode == VI_XFBMODE_SF) { XfbProg = 0; } else { @@ -223,20 +275,39 @@ static void ToeDispCheck(void) _HuDvdErrDispXFB(status); } +#if VERSION_NTSC + +#define XFB_SIZE 0x96000 + +#else + +#define XFB_SIZE (XfbW*XfbH*2) + +#endif + static void _HuDvdErrDispXFB(s32 error) { + #if VERSION_NTSC static void *bmpMes[][6] = { loading_en, coveropen_en, nodisc_en, wrongdisc_en, retryerror_en, fatalerror_en }; - volatile s32 status; - u8 color[2]; - s8 language; + #else + static void *bmpMes[][6] = { + loading_en, coveropen_en, nodisc_en, wrongdisc_en, retryerror_en, fatalerror_en, + loading_fr, coveropen_fr, nodisc_fr, wrongdisc_fr, retryerror_fr, fatalerror_fr, + loading_ge, coveropen_ge, nodisc_ge, wrongdisc_ge, retryerror_ge, fatalerror_ge, + loading_it, coveropen_it, nodisc_it, wrongdisc_it, retryerror_it, fatalerror_it, + loading_sp, coveropen_sp, nodisc_sp, wrongdisc_sp, retryerror_sp, fatalerror_sp + }; + #endif + s16 *bmpData; u8 *xfb1_ptr; u8 *xfb2_ptr; u32 i; u32 data; u32 row; + s8 language; u32 *xfb1; u32 *xfb2; u32 j; @@ -246,25 +317,59 @@ static void _HuDvdErrDispXFB(s32 error) u32 *data_ptr; u32 row_offset; u32 row_pitch; + void *tempfb1; + void *tempfb2; + s32 status; + u8 color[2]; + + + #if VERSION_PAL + switch(GWGameStat.language) { + case 2: + language = 2; + break; + + case 3: + language = 1; + break; + + case 4: + language = 3; + break; + + case 5: + language = 4; + break; + + default: + language = 0; + break; + } + #else language = 0; + #endif xfb1 = Xfb[0]; xfb2 = Xfb[1]; - for(i=0; i<0x25800; i++, xfb1++, xfb2++) { + for(i=0; i>= 2, xfb1_ptr += 4, xfb2_ptr += 4) { @@ -290,8 +395,8 @@ static void _HuDvdErrDispXFB(s32 error) } } } - DCStoreRangeNoSync(sp14[1], bmpData[0]*2); - DCStoreRangeNoSync(sp14[0], bmpData[0]*2); + DCStoreRangeNoSync(tempfb1, bmpData[0]*2); + DCStoreRangeNoSync(tempfb2, bmpData[0]*2); } status = DVDGetDriveStatus(); while(status) { diff --git a/src/game/wipe.c b/src/game/wipe.c index f3902d7e..aa7c1d9a 100644 --- a/src/game/wipe.c +++ b/src/game/wipe.c @@ -3,6 +3,7 @@ #include "game/memory.h" #include "game/flag.h" #include "game/board/tutorial.h" +#include "version.h" s16 HuSysVWaitGet(s16 old); @@ -141,6 +142,11 @@ void WipeCreate(s16 mode, s16 type, s16 duration) void WipeColorSet(u8 r, u8 g, u8 b) { + #if VERSION_PAL + if(r > 160 && g > 160 && b > 160) { + r = g = b = 160; + } + #endif wipeData.color.r = r; wipeData.color.g = g; wipeData.color.b = b; From ae81b60c47147cbbe0192bc224ed90d5733f0ba8 Mon Sep 17 00:00:00 2001 From: Liam Coleman Date: Sat, 16 Nov 2024 15:01:59 -0600 Subject: [PATCH 139/311] Port some RELs to PAL (#465) --- config/GMPP01_00/rels/E3setupDLL/splits.txt | 15 + config/GMPP01_00/rels/E3setupDLL/symbols.txt | 359 +++++++++--------- config/GMPP01_00/rels/_minigameDll/splits.txt | 8 + .../GMPP01_00/rels/_minigameDll/symbols.txt | 2 +- config/GMPP01_00/rels/instDll/splits.txt | 14 + config/GMPP01_00/rels/instDll/symbols.txt | 2 +- config/GMPP01_00/rels/mentDll/splits.txt | 12 + config/GMPP01_00/rels/mentDll/symbols.txt | 3 +- configure.py | 12 +- src/REL/instDll/main.c | 64 +++- src/REL/mentDll/main.c | 55 ++- 11 files changed, 349 insertions(+), 197 deletions(-) diff --git a/config/GMPP01_00/rels/E3setupDLL/splits.txt b/config/GMPP01_00/rels/E3setupDLL/splits.txt index 531cd645..d5a4c674 100644 --- a/config/GMPP01_00/rels/E3setupDLL/splits.txt +++ b/config/GMPP01_00/rels/E3setupDLL/splits.txt @@ -5,3 +5,18 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/E3setupDLL/mgselect.c: + .text start:0x00000000 end:0x0000133C + .rodata start:0x00000000 end:0x00000088 + .data start:0x00000000 end:0x00000250 + .bss start:0x00000000 end:0x00000028 + +REL/executor.c: + .text start:0x0000133C end:0x000013DC + +REL/E3setupDLL/main.c: + .text start:0x000013DC end:0x00005850 + .rodata start:0x00000088 end:0x00000130 + .data start:0x00000250 end:0x000004D0 + .bss start:0x00000028 end:0x000000F8 diff --git a/config/GMPP01_00/rels/E3setupDLL/symbols.txt b/config/GMPP01_00/rels/E3setupDLL/symbols.txt index 382731fd..4089dcf6 100644 --- a/config/GMPP01_00/rels/E3setupDLL/symbols.txt +++ b/config/GMPP01_00/rels/E3setupDLL/symbols.txt @@ -1,168 +1,179 @@ -fn_2_0 = .text:0x00000000; // type:function size:0x324 -fn_2_324 = .text:0x00000324; // type:function size:0x9C -fn_2_3C0 = .text:0x000003C0; // type:function size:0xA0 -fn_2_460 = .text:0x00000460; // type:function size:0x584 -fn_2_9E4 = .text:0x000009E4; // type:function size:0x528 -fn_2_F0C = .text:0x00000F0C; // type:function size:0x80 -fn_2_F8C = .text:0x00000F8C; // type:function size:0x1AC -fn_2_1138 = .text:0x00001138; // type:function size:0x14 -fn_2_114C = .text:0x0000114C; // type:function size:0x1F0 +E3MGSelectInit = .text:0x00000000; // type:function size:0x324 +StartMGSelect = .text:0x00000324; // type:function size:0x9C scope:local +UpdatePad = .text:0x000003C0; // type:function size:0xA0 scope:local +UpdateMGSelect = .text:0x00000460; // type:function size:0x584 scope:local +CreateMGSelect = .text:0x000009E4; // type:function size:0x528 scope:local +UpdateMGPic = .text:0x00000F0C; // type:function size:0x80 scope:local +CreateMGPic = .text:0x00000F8C; // type:function size:0x1AC scope:local +UpdateMGInterface = .text:0x00001138; // type:function size:0x14 scope:local +CreateMGInterface = .text:0x0000114C; // type:function size:0x1F0 scope:local _prolog = .text:0x0000133C; // type:function size:0x54 scope:global _epilog = .text:0x00001390; // type:function size:0x4C scope:global -fn_2_13DC = .text:0x000013DC; // type:function size:0x108 -fn_2_14E4 = .text:0x000014E4; // type:function size:0x514 -fn_2_19F8 = .text:0x000019F8; // type:function size:0x1AC -fn_2_1BA4 = .text:0x00001BA4; // type:function size:0x7C -fn_2_1C20 = .text:0x00001C20; // type:function size:0x84 -fn_2_1CA4 = .text:0x00001CA4; // type:function size:0x90 -fn_2_1D34 = .text:0x00001D34; // type:function size:0x24 -fn_2_1D58 = .text:0x00001D58; // type:function size:0xFC -fn_2_1E54 = .text:0x00001E54; // type:function size:0x1C0 -fn_2_2014 = .text:0x00002014; // type:function size:0x78 -fn_2_208C = .text:0x0000208C; // type:function size:0x2C -fn_2_20B8 = .text:0x000020B8; // type:function size:0xA4 -fn_2_215C = .text:0x0000215C; // type:function size:0x400 -fn_2_255C = .text:0x0000255C; // type:function size:0x124 -fn_2_2680 = .text:0x00002680; // type:function size:0x74 -fn_2_26F4 = .text:0x000026F4; // type:function size:0x344 -fn_2_2A38 = .text:0x00002A38; // type:function size:0x59C -fn_2_2FD4 = .text:0x00002FD4; // type:function size:0x208 -fn_2_31DC = .text:0x000031DC; // type:function size:0x37C -fn_2_3558 = .text:0x00003558; // type:function size:0x3B4 -fn_2_390C = .text:0x0000390C; // type:function size:0xAC -fn_2_39B8 = .text:0x000039B8; // type:function size:0x2B8 -fn_2_3C70 = .text:0x00003C70; // type:function size:0x534 -fn_2_41A4 = .text:0x000041A4; // type:function size:0x2DC -fn_2_4480 = .text:0x00004480; // type:function size:0x520 -fn_2_49A0 = .text:0x000049A0; // type:function size:0x59C -fn_2_4F3C = .text:0x00004F3C; // type:function size:0x4E8 -fn_2_5424 = .text:0x00005424; // type:function size:0x100 -fn_2_5524 = .text:0x00005524; // type:function size:0x184 -fn_2_56A8 = .text:0x000056A8; // type:function size:0x7C -fn_2_5724 = .text:0x00005724; // type:function size:0x12C +ObjectSetup = .text:0x000013DC; // type:function size:0x108 +E3MainInit = .text:0x000014E4; // type:function size:0x514 +E3LightInit = .text:0x000019F8; // type:function size:0x1AC +GetStickX = .text:0x00001BA4; // type:function size:0x7C scope:local +GetStickY = .text:0x00001C20; // type:function size:0x84 scope:local +GetBtn = .text:0x00001CA4; // type:function size:0x90 scope:local +GetBtnDown = .text:0x00001D34; // type:function size:0x24 scope:local +E3PadUpdate = .text:0x00001D58; // type:function size:0xFC +E3PadRead = .text:0x00001E54; // type:function size:0x1C0 +MotionMaxTimeGet = .text:0x00002014; // type:function size:0x78 +MotionShiftTimeGet = .text:0x0000208C; // type:function size:0x2C +InitMenuControl = .text:0x000020B8; // type:function size:0xA4 scope:local +UpdateMenuControl = .text:0x0000215C; // type:function size:0x400 scope:local +UpdateOvlWatch = .text:0x0000255C; // type:function size:0x124 scope:local +E3OvlWatchInit = .text:0x00002680; // type:function size:0x74 +UpdatePlayerCnt = .text:0x000026F4; // type:function size:0x344 scope:local +InitPlayerCnt = .text:0x00002A38; // type:function size:0x59C scope:local +UpdateCharSelCursor = .text:0x00002FD4; // type:function size:0x208 scope:local +UpdateCharSelPlayerCursor = .text:0x000031DC; // type:function size:0x37C scope:local +UpdateCharSelComCursor = .text:0x00003558; // type:function size:0x3B4 scope:local +CheckCharSel = .text:0x0000390C; // type:function size:0xAC scope:local +UpdateCharSel = .text:0x000039B8; // type:function size:0x2B8 scope:local +InitCharSel = .text:0x00003C70; // type:function size:0x534 scope:local +UpdateRumbleCfg = .text:0x000041A4; // type:function size:0x2DC scope:local +InitRumbleCfg = .text:0x00004480; // type:function size:0x520 scope:local +UpdateModeSel = .text:0x000049A0; // type:function size:0x59C scope:local +InitModeSel = .text:0x00004F3C; // type:function size:0x4E8 scope:local +E3BGUpdate = .text:0x00005424; // type:function size:0x100 scope:local +E3BGCreate = .text:0x00005524; // type:function size:0x184 +InitCamera = .text:0x000056A8; // type:function size:0x7C scope:local +UpdateCamera = .text:0x00005724; // type:function size:0x12C scope:local _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_2_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_2_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_2_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_2_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_2_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_2_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_2_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_2_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_2_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_2_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_2_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_2_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_2_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_2_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_2_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_2_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_2_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_2_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_2_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_2_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_2_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_2_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_2_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_2_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_2_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_2_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_2_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_2_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_2_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:float -lbl_2_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_2_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_2_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_2_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_2_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_2_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_2_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_2_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_2_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_2_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_2_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_2_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_2_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_2_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_2_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_2_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_2_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_2_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_2_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_2_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_2_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_2_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_2_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_2_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_2_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_2_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_2_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_2_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_2_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_2_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_2_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_2_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_2_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_2_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_2_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_2_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_2_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_2_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_2_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_2_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_2_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_2_data_24 = .data:0x00000024; // type:object size:0x1A -lbl_2_data_3E = .data:0x0000003E; // type:object size:0x1A -lbl_2_data_58 = .data:0x00000058; // type:object size:0x1C -lbl_2_data_74 = .data:0x00000074; // type:object size:0x34 -lbl_2_data_A8 = .data:0x000000A8; // type:object size:0x21 -lbl_2_data_C9 = .data:0x000000C9; // type:object size:0x16 -lbl_2_data_DF = .data:0x000000DF; // type:object size:0x16 -lbl_2_data_F5 = .data:0x000000F5; // type:object size:0x16 -lbl_2_data_10B = .data:0x0000010B; // type:object size:0xD -lbl_2_data_118 = .data:0x00000118; // type:object size:0x16 -lbl_2_data_12E = .data:0x0000012E; // type:object size:0xD -lbl_2_data_13B = .data:0x0000013B; // type:object size:0x16 -lbl_2_data_151 = .data:0x00000151; // type:object size:0x16 -lbl_2_data_167 = .data:0x00000167; // type:object size:0x16 -lbl_2_data_17D = .data:0x0000017D; // type:object size:0x16 -lbl_2_data_193 = .data:0x00000193; // type:object size:0x16 -lbl_2_data_1A9 = .data:0x000001A9; // type:object size:0x4B -lbl_2_data_1F4 = .data:0x000001F4; // type:object size:0x14 -lbl_2_data_208 = .data:0x00000208; // type:object size:0x34 -lbl_2_data_23C = .data:0x0000023C; // type:object size:0x14 -lbl_2_data_250 = .data:0x00000250; // type:object size:0xC -lbl_2_data_25C = .data:0x0000025C; // type:object size:0xC -lbl_2_data_268 = .data:0x00000268; // type:object size:0x6C -lbl_2_data_2D4 = .data:0x000002D4; // type:object size:0x8 -lbl_2_data_2DC = .data:0x000002DC; // type:object size:0x10 -lbl_2_data_2EC = .data:0x000002EC; // type:object size:0x20 -lbl_2_data_30C = .data:0x0000030C; // type:object size:0x1C -lbl_2_data_328 = .data:0x00000328; // type:object size:0x10 -lbl_2_data_338 = .data:0x00000338; // type:object size:0x40 -lbl_2_data_378 = .data:0x00000378; // type:object size:0x20 -lbl_2_data_398 = .data:0x00000398; // type:object size:0x10 -lbl_2_data_3A8 = .data:0x000003A8; // type:object size:0x20 -lbl_2_data_3C8 = .data:0x000003C8; // type:object size:0x14 -lbl_2_data_3DC = .data:0x000003DC; // type:object size:0x14 -lbl_2_data_3F0 = .data:0x000003F0; // type:object size:0x8 -lbl_2_data_3F8 = .data:0x000003F8; // type:object size:0x10 -lbl_2_data_408 = .data:0x00000408; // type:object size:0x10 -lbl_2_data_418 = .data:0x00000418; // type:object size:0x60 -lbl_2_data_478 = .data:0x00000478; // type:object size:0x24 -lbl_2_data_49C = .data:0x0000049C; // type:object size:0x34 +lbl_2_rodata_0 = .rodata:0x00000000; // type:object size:0x10 +lbl_2_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_2_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_2_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_2_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_2_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_2_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_2_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_2_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_2_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_2_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_2_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_2_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_2_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_2_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_2_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_2_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_2_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_2_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:float +lbl_2_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_2_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_2_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_2_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_2_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_2_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_2_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_2_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_2_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_2_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_2_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_2_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_2_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_2_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_2_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_2_data_0 = .data:0x00000000; // type:object size:0x24 data:float +lbl_2_data_24 = .data:0x00000024; // type:object size:0x11 scope:local data:string +lbl_2_data_36 = .data:0x00000036; // type:object size:0x8 +mgOvlTbl = .data:0x0000003E; // type:object size:0x1A scope:local +mgIdTbl = .data:0x00000058; // type:object size:0x1C scope:local +mgNameTbl = .data:0x00000074; // type:object size:0x34 scope:local +lbl_2_data_A8 = .data:0x000000A8; // type:object size:0x21 data:string +lbl_2_data_C9 = .data:0x000000C9; // type:object size:0x16 data:string +lbl_2_data_DF = .data:0x000000DF; // type:object size:0x16 data:string +lbl_2_data_F5 = .data:0x000000F5; // type:object size:0x16 data:string +lbl_2_data_10B = .data:0x0000010B; // type:object size:0xD data:string +lbl_2_data_118 = .data:0x00000118; // type:object size:0x16 data:string +lbl_2_data_12E = .data:0x0000012E; // type:object size:0xD data:string +lbl_2_data_13B = .data:0x0000013B; // type:object size:0x16 data:string +lbl_2_data_151 = .data:0x00000151; // type:object size:0x16 data:string +lbl_2_data_167 = .data:0x00000167; // type:object size:0x16 data:string +lbl_2_data_17D = .data:0x0000017D; // type:object size:0x16 data:string +lbl_2_data_193 = .data:0x00000193; // type:object size:0x16 data:string +lbl_2_data_1A9 = .data:0x000001A9; // type:object size:0x16 data:string +mgNameTestTbl = .data:0x000001C0; // type:object size:0x34 scope:local +cursorYOfsTbl = .data:0x000001F4; // type:object size:0x14 scope:local data:float +mgPicTbl = .data:0x00000208; // type:object size:0x34 scope:local +startText = .data:0x0000023C; // type:object size:0x10 scope:local data:string +shadowPos = .data:0x00000250; // type:object size:0xC scope:local +shadowTarget = .data:0x0000025C; // type:object size:0xC scope:local +shadowUp = .data:0x00000268; // type:object size:0xC scope:local +lbl_2_data_274 = .data:0x00000274; // type:object size:0x60 data:float +playerCntTbl = .data:0x000002D4; // type:object size:0x8 scope:local +charTbl = .data:0x000002DC; // type:object size:0x10 scope:local +charSfxTbl = .data:0x000002EC; // type:object size:0x20 scope:local +lbl_2_data_30C = .data:0x0000030C; // type:object size:0x12 scope:local +lbl_2_data_31E = .data:0x0000031E; // type:object size:0x8 +playerCntMessTbl = .data:0x00000328; // type:object size:0x10 scope:local +charPosTbl = .data:0x00000338; // type:object size:0x40 scope:local data:float +charComSfxTbl = .data:0x00000378; // type:object size:0x20 scope:local +lbl_2_data_398 = .data:0x00000398; // type:object size:0xF scope:local data:string +charSpriteTbl = .data:0x000003A8; // type:object size:0x20 scope:local +cursorSpriteTbl = .data:0x000003C8; // type:object size:0x14 scope:local +hiliteSprTbl = .data:0x000003DC; // type:object size:0x14 scope:local +rumbleMess = .data:0x000003F0; // type:object size:0x8 scope:local +modeSelCursorPosTbl = .data:0x000003F8; // type:object size:0x10 scope:local +boardSelCursorPosTbl = .data:0x00000408; // type:object size:0x10 scope:local +camViewTbl = .data:0x00000418; // type:object size:0x60 scope:local data:float +lbl_2_data_478 = .data:0x00000478; // type:object size:0x24 data:float +lbl_2_data_49C = .data:0x0000049C; // type:object size:0x24 data:float +lbl_2_data_4C0 = .data:0x000004C0; // type:object size:0x10 +lbl_2_bss_0 = .bss:0x00000000; // type:object size:0xA data:2byte lbl_2_bss_A = .bss:0x0000000A; // type:object size:0x2 data:2byte lbl_2_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_2_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte lbl_2_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte lbl_2_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_2_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_2_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte -lbl_2_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_2_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte -lbl_2_bss_28 = .bss:0x00000028; // type:object size:0xC data:2byte +mgPicObj = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte +mgSelectObj = .bss:0x0000001C; // type:object size:0x4 scope:local data:4byte +mgInterfaceObj = .bss:0x00000020; // type:object size:0x4 scope:local data:4byte +mgDefault = .bss:0x00000024; // type:object size:0x2 scope:local data:2byte +repBtn = .bss:0x00000028; // type:object size:0x2 scope:local data:2byte +lbl_2_bss_2A = .bss:0x0000002A; // type:object size:0xA data:2byte lbl_2_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte lbl_2_bss_36 = .bss:0x00000036; // type:object size:0x2 data:2byte +lbl_2_bss_38 = .bss:0x00000038; // type:object size:0x2 data:2byte lbl_2_bss_3A = .bss:0x0000003A; // type:object size:0x2 data:2byte lbl_2_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte lbl_2_bss_40 = .bss:0x00000040; // type:object size:0x2 data:2byte @@ -171,22 +182,24 @@ lbl_2_bss_48 = .bss:0x00000048; // type:object size:0xC data:float lbl_2_bss_54 = .bss:0x00000054; // type:object size:0xC data:float lbl_2_bss_60 = .bss:0x00000060; // type:object size:0x2 data:2byte lbl_2_bss_62 = .bss:0x00000062; // type:object size:0x8 -lbl_2_bss_6A = .bss:0x0000006A; // type:object size:0x6 data:2byte -lbl_2_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte -lbl_2_bss_74 = .bss:0x00000074; // type:object size:0x18 data:4byte -lbl_2_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte -lbl_2_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte -lbl_2_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte -lbl_2_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte -lbl_2_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:float -lbl_2_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte -lbl_2_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte -lbl_2_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte -lbl_2_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lightE3 = .bss:0x0000006A; // type:object size:0x2 scope:local data:2byte +lbl_2_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:2byte +e3BGObj = .bss:0x00000070; // type:object size:0x4 data:4byte +configModeObj = .bss:0x00000074; // type:object size:0x10 scope:local data:4byte +lbl_2_bss_84 = .bss:0x00000084; // type:object size:0x8 data:4byte +cameraObj = .bss:0x0000008C; // type:object size:0x4 scope:local data:4byte +e3OvlWatchObj = .bss:0x00000090; // type:object size:0x4 data:4byte +e3ViewObj = .bss:0x00000094; // type:object size:0x4 data:4byte +e3MenuMainObj = .bss:0x00000098; // type:object size:0x4 data:4byte +e3CameraFov = .bss:0x0000009C; // type:object size:0x4 data:float +needCharKill = .bss:0x000000A0; // type:object size:0x4 scope:local data:4byte +e3ExitMode = .bss:0x000000A4; // type:object size:0x4 data:4byte +e3NextEvent = .bss:0x000000A8; // type:object size:0x4 data:4byte +e3NextOvl = .bss:0x000000AC; // type:object size:0x4 data:4byte lbl_2_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte -lbl_2_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte -lbl_2_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte -lbl_2_bss_BC = .bss:0x000000BC; // type:object size:0x2 data:2byte -lbl_2_bss_BE = .bss:0x000000BE; // type:object size:0x2 data:2byte -lbl_2_bss_C0 = .bss:0x000000C0; // type:object size:0x20 -lbl_2_bss_E0 = .bss:0x000000E0; // type:object size:0x18 data:2byte +e3ExitEnableF = .bss:0x000000B4; // type:object size:0x4 data:4byte +e3EvtNo = .bss:0x000000B8; // type:object size:0x4 scope:local data:4byte +e3ConfigPlayerCnt = .bss:0x000000BC; // type:object size:0x2 data:2byte +e3PadCtrl = .bss:0x000000BE; // type:object size:0x2 data:2byte +e3PadData = .bss:0x000000C0; // type:object size:0x20 +configE3 = .bss:0x000000E0; // type:object size:0x18 scope:local data:2byte diff --git a/config/GMPP01_00/rels/_minigameDll/splits.txt b/config/GMPP01_00/rels/_minigameDll/splits.txt index be323846..7a4d7e18 100644 --- a/config/GMPP01_00/rels/_minigameDll/splits.txt +++ b/config/GMPP01_00/rels/_minigameDll/splits.txt @@ -4,3 +4,11 @@ Sections: .dtors type:rodata align:4 .rodata type:rodata align:8 .data type:data align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/_minigameDLL/_minigameDLL.c: + .text start:0x000000A0 end:0x000000F0 + .rodata start:0x00000000 end:0x00000010 + .data start:0x00000000 end:0x00000014 diff --git a/config/GMPP01_00/rels/_minigameDll/symbols.txt b/config/GMPP01_00/rels/_minigameDll/symbols.txt index 5c4a5ab3..032e2444 100644 --- a/config/GMPP01_00/rels/_minigameDll/symbols.txt +++ b/config/GMPP01_00/rels/_minigameDll/symbols.txt @@ -1,6 +1,6 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x2C +ObjectSetup = .text:0x000000A0; // type:function size:0x2C fn_1_CC = .text:0x000000CC; // type:function size:0x24 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte diff --git a/config/GMPP01_00/rels/instDll/splits.txt b/config/GMPP01_00/rels/instDll/splits.txt index 531cd645..83d6ff27 100644 --- a/config/GMPP01_00/rels/instDll/splits.txt +++ b/config/GMPP01_00/rels/instDll/splits.txt @@ -5,3 +5,17 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/instDll/main.c: + .text start:0x000000A0 end:0x00005EA4 + .rodata start:0x00000000 end:0x00000208 + .data start:0x00000000 end:0x00000150 + .bss start:0x00000000 end:0x00000064 + +REL/instDll/font.c: + .text start:0x00005EA4 end:0x0000629C + .rodata start:0x00000208 end:0x00000210 + .data start:0x00000150 end:0x00000610 diff --git a/config/GMPP01_00/rels/instDll/symbols.txt b/config/GMPP01_00/rels/instDll/symbols.txt index d927e6ae..5cb1ad79 100644 --- a/config/GMPP01_00/rels/instDll/symbols.txt +++ b/config/GMPP01_00/rels/instDll/symbols.txt @@ -1,6 +1,6 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x8F4 +ObjectSetup = .text:0x000000A0; // type:function size:0x8F4 fn_1_994 = .text:0x00000994; // type:function size:0xE50 fn_1_17E4 = .text:0x000017E4; // type:function size:0xA28 fn_1_220C = .text:0x0000220C; // type:function size:0x5F8 diff --git a/config/GMPP01_00/rels/mentDll/splits.txt b/config/GMPP01_00/rels/mentDll/splits.txt index 531cd645..6f4f419c 100644 --- a/config/GMPP01_00/rels/mentDll/splits.txt +++ b/config/GMPP01_00/rels/mentDll/splits.txt @@ -5,3 +5,15 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/mentDll/common.c: + .text start:0x00000000 end:0x0000658C + .rodata start:0x00000000 end:0x000000E8 + .data start:0x00000000 end:0x000000D8 + .bss start:0x00000000 end:0x00000008 + +REL/mentDll/main.c: + .text start:0x0000658C end:0x000238C4 + .rodata start:0x000000E8 end:0x00000520 + .data start:0x000000D8 end:0x000006D0 + .bss start:0x00000008 end:0x000036C4 diff --git a/config/GMPP01_00/rels/mentDll/symbols.txt b/config/GMPP01_00/rels/mentDll/symbols.txt index 8e7e77e2..7d00e49a 100644 --- a/config/GMPP01_00/rels/mentDll/symbols.txt +++ b/config/GMPP01_00/rels/mentDll/symbols.txt @@ -417,7 +417,8 @@ lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x20 lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x64 data:float lbl_1_data_640 = .data:0x00000640; // type:object size:0x50 data:4byte lbl_1_data_690 = .data:0x00000690; // type:object size:0x40 data:4byte -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x14 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:4byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x10 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x40 data:4byte lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x44 data:float diff --git a/configure.py b/configure.py index ba94ebfe..ea0272c0 100644 --- a/configure.py +++ b/configure.py @@ -829,7 +829,7 @@ config.libs = [ Rel( "_minigameDLL", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/_minigameDLL/_minigameDLL.c"), + Object(Matching, "REL/_minigameDLL/_minigameDLL.c"), }, ), Rel( @@ -842,14 +842,14 @@ config.libs = [ Rel( "E3setupDLL", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/E3setupDLL/mgselect.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/E3setupDLL/main.c"), + Object(Matching, "REL/E3setupDLL/mgselect.c"), + Object(Matching, "REL/E3setupDLL/main.c"), }, ), Rel( "instDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/instDll/main.c"), + Object(Matching, "REL/instDll/main.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/instDll/font.c"), }, ), @@ -1300,8 +1300,8 @@ config.libs = [ Rel( "mentDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mentDll/common.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mentDll/main.c"), + Object(Matching, "REL/mentDll/common.c"), + Object(Matching, "REL/mentDll/main.c"), }, ), Rel( diff --git a/src/REL/instDll/main.c b/src/REL/instDll/main.c index 3dbcc0a4..45308b70 100644 --- a/src/REL/instDll/main.c +++ b/src/REL/instDll/main.c @@ -689,7 +689,11 @@ static void fn_1_2804(void) HuWinMesPalSet(window, 7, 0, 0, 192); HuWinPosSet(window_other, 142.0f, 320.0f); for (i = 0; i <= 10; i++) { + #if VERSION_NTSC HuWinPosSet(window_other, 30.0 * sind(i * 9.0f) + 142.0, 160.0 * (1.0 - cosd(i * 9.0f)) + 320.0); + #else + HuWinPosSet(window_other, 30.0 * sind(i * 9.0f) + 142.0, 180.0 * (1.0 - cosd(i * 9.0f)) + 320.0); + #endif HuPrcVSleep(); } HuPrcSleep(5); @@ -711,6 +715,12 @@ static void fn_1_2804(void) static float lbl_1_data_124[] = { 420, 70, 488, 186, 476, 242, 400, 292 }; +#if VERSION_NTSC +#define WIN_ANIM_OFS 201 +#else +#define WIN_ANIM_OFS 219 +#endif + static void fn_1_2FA0(void) { float temp_f31; @@ -763,20 +773,39 @@ static void fn_1_2FA0(void) temp_r29++; } + #if VERSION_NTSC if (temp_r26 == 1) { temp_r22 = spC[0]; temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18)); - temp_f29 = ((576.0f - temp_r22) - 24.0f) - 16.0f + 227.0f; + temp_f29 = ((576.0f - temp_r22) - 24.0f) - 16.0f + 227; temp_f28 = 78; temp_f27 = 0.5f; } else { temp_r22 = (spC[0] > spC[1]) ? spC[0] : spC[1]; temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 15)); + temp_f29 = ((576.0f - temp_r22) - 24.0f) - 16.0f + 172.0f; temp_f28 = 84; temp_f27 = 1.0f; } + #else + if (temp_r26 == 1) { + temp_r22 = spC[0]; + temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18)); + temp_f29 = ((576.0f - temp_r22) - 24.0f) - 16.0f + 235; + temp_f28 = 78; + temp_f27 = 0.5f; + } + else { + temp_r22 = (spC[0] > spC[1]) ? spC[0] : spC[1]; + temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 15)); + + temp_f29 = ((576.0f - temp_r22) - 24.0f) - 16.0f + 235; + temp_f28 = 84; + temp_f27 = 1.0f; + } + #endif temp_r25 = HuSprGrpCreate(1); temp_r17 = HuSprCreate(temp_r28, 0, 0); HuSprGrpMemberSet(temp_r25, 0, temp_r17); @@ -809,13 +838,13 @@ static void fn_1_2FA0(void) HuWinMesSet(sp10[2], lbl_1_bss_10 + MAKE_MESSID(0x24, 0x02)); HuWinBGTPLvlSet(sp10[2], 0.0f); HuWinMesSpeedSet(sp10[2], 0); - temp_r31 = HuWinAnimSet(sp10[2], temp_r28, 0, 201, 18); + temp_r31 = HuWinAnimSet(sp10[2], temp_r28, 0, WIN_ANIM_OFS, 18); HuWinSprPriSet(sp10[2], temp_r31, 1000); temp_r27 = HuWinCreate(1000, 292, 456, 42, 0); HuWinBGTPLvlSet(temp_r27, 0.0f); HuWinMesSpeedSet(temp_r27, 0); HuWinMesSet(temp_r27, lbl_1_bss_10 + MAKE_MESSID(0x24, 0x02)); - temp_r31 = HuWinAnimSet(temp_r27, temp_r28, 0, 201, 18); + temp_r31 = HuWinAnimSet(temp_r27, temp_r28, 0, WIN_ANIM_OFS, 18); HuWinPriSet(temp_r27, 10); HuWinSprPriSet(temp_r27, temp_r31, 11); while (lbl_1_data_0 != 0) { @@ -824,12 +853,21 @@ static void fn_1_2FA0(void) for (temp_r31 = 0; temp_r31 < 36; temp_r31++) { temp_f30 = temp_r31; if (temp_f30 <= 20.0f) { + #if VERSION_NTSC temp_f31 = 300.0 * cosd(4.5f * temp_f30) + temp_f29; HuSprGrpPosSet(temp_r25, temp_f31, temp_f28); temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (576.0f - (temp_r22 / 2) - 24.0f); for (temp_r30 = 0; temp_r30 < temp_r26; temp_r30++) { HuSprGrpPosSet(work.spr_grp[temp_r30], temp_f31, (temp_r30 * 28) + 70); } + #else + temp_f31 = 500.0 * cosd(4.5f * temp_f30) + temp_f29; + HuSprGrpPosSet(temp_r25, temp_f31, temp_f28); + temp_f31 = 500.0 * cosd(4.5f * temp_f30) + (576.0f - (temp_r22 / 2) - 24.0f); + for (temp_r30 = 0; temp_r30 < temp_r26; temp_r30++) { + HuSprGrpPosSet(work.spr_grp[temp_r30], temp_f31, (temp_r30 * 28) + 70); + } + #endif } temp_f30 = temp_r31 - 3; if (temp_f30 > 0.0f) { @@ -837,7 +875,11 @@ static void fn_1_2FA0(void) temp_f31 = 300.0 * cosd(4.5f * temp_f30) + lbl_1_data_124[2]; HuSprGrpPosSet(temp_r24, temp_f31, 186.0f); temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (lbl_1_data_124[2] - 88.0f); + #if VERSION_NTSC HuWinPosSet(sp10[0], 16.0f + temp_f31, 168.0f); + #else + HuWinPosSet(sp10[0], 8.0f + temp_f31, 168.0f); + #endif } } temp_f30 = temp_r31 - 6; @@ -846,13 +888,17 @@ static void fn_1_2FA0(void) temp_f31 = 300.0 * cosd(4.5f * temp_f30) + lbl_1_data_124[4]; HuSprGrpPosSet(temp_r23, temp_f31, 242.0f); temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (lbl_1_data_124[4] - 100.0f); + #if VERSION_NTSC HuWinPosSet(sp10[1], 16.0f + temp_f31, 224.0f); + #else + HuWinPosSet(sp10[1], 8.0f + temp_f31, 224.0f); + #endif } } temp_f30 = temp_r31 - 9; if (temp_f30 > 0.0f) { if (temp_f30 <= 20.0f) { - temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (lbl_1_data_124[6] - 217.0f); + temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (lbl_1_data_124[6] - (WIN_ANIM_OFS+16)); HuWinPosSet(sp10[2], 16.0f + temp_f31, 274.0f); } } @@ -860,7 +906,7 @@ static void fn_1_2FA0(void) } while (lbl_1_data_0 != 3) { if (temp_r21 != lbl_1_bss_6) { - temp_f31 = 16.0f + (lbl_1_data_124[6] - 217.0f); + temp_f31 = 16.0f + (lbl_1_data_124[6] - (WIN_ANIM_OFS+16)); HuWinMesSet(temp_r27, MAKE_MESSID(0x24, 0x02) + lbl_1_bss_10 + temp_r21); temp_r21 = lbl_1_bss_6; if (lbl_1_bss_6 == 1) { @@ -875,7 +921,11 @@ static void fn_1_2FA0(void) HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02) + lbl_1_bss_10 + lbl_1_bss_6); } for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { + #if VERSION_NTSC HuWinPosSet(temp_r27, 30.0 * sind(temp_r31 * 9.0f) + temp_f31, 200.0 * (1.0 - cosd(temp_r31 * 9.0f)) + 274.0); + #else + HuWinPosSet(temp_r27, 30.0 * sind(temp_r31 * 9.0f) + temp_f31, 220.0 * (1.0 - cosd(temp_r31 * 9.0f)) + 274.0); + #endif HuPrcVSleep(); } } @@ -897,7 +947,11 @@ static void fn_1_2FA0(void) HuSprGrpPosSet(temp_r23, temp_f31, 242.0f); temp_f31 = (lbl_1_data_124[4] - 100.0f) + (300.0f * temp_f30); HuWinPosSet(sp10[1], 16.0f + temp_f31, 224); + #if VERSION_NTSC temp_f31 = (lbl_1_data_124[6] - 184.0f) + (400.0f * temp_f30); + #else + temp_f31 = (lbl_1_data_124[6] - 235.0f) + (400.0f * temp_f30); + #endif HuWinPosSet(sp10[2], 16.0f + temp_f31, 274); HuPrcVSleep(); } diff --git a/src/REL/mentDll/main.c b/src/REL/mentDll/main.c index 4b75201f..847ac234 100644 --- a/src/REL/mentDll/main.c +++ b/src/REL/mentDll/main.c @@ -3768,6 +3768,8 @@ s32 lbl_1_data_5BC[4][2] = { { 0x77, 0x18 }, { 0xA5, 0x18 }, }; + +#if VERSION_NTSC float lbl_1_data_5DC[5][5] = { { 262.0f, 119.0f, 1.3f, 227.0f, 455.0f }, { 314.0f, 168.0f, 0.75f, 265.0f, 416.0f }, @@ -3775,6 +3777,16 @@ float lbl_1_data_5DC[5][5] = { { 418.0f, 240.0f, 0.75f, 300.0f, 381.0f }, { -1.0f, 289.0f, 1.3f, 220.0f, 460.0f }, }; +#else +float lbl_1_data_5DC[5][5] = { + { 262.0f, 119.0f, 1.3f, 227.0f, 455.0f }, + { 314.0f, 168.0f, 0.75f, 300.0f, 381.0f }, + { 366.0f, 204.0f, 0.75f, 240.0f, 440.0f }, + { 418.0f, 240.0f, 0.75f, 300.0f, 381.0f }, + { -1.0f, 289.0f, 1.3f, 220.0f, 460.0f }, +}; +#endif + s32 lbl_1_data_640[4][5] = { { 0xB4, 0x60, 0x87, 0, 0 }, { 0xFC, 0xB8, 0xF6, 0xD4, 0x1D4 }, @@ -4633,6 +4645,18 @@ void fn_1_18F74(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) } } +#if VERSION_PAL + +#define POSX1 353 +#define POSX2 325 + +#else + +#define POSX1 321 +#define POSX2 295 + +#endif + void fn_1_190E8(void) { s32 var_r31; @@ -4690,16 +4714,18 @@ void fn_1_190E8(void) HuSprPosSet(var_r30, 0x47, 340.0f, lbl_1_data_5DC[0][1]); HuSprScaleSet(var_r30, 0x47, 0.0f, 0.0f); HuSprAttrReset(var_r30, 0x47, 4); + #if VERSION_NTSC HuSprAttrReset(var_r30, 0x48, 4); HuSprPosSet(var_r30, 0x48, 366.0f, lbl_1_data_5DC[1][1]); HuSprAttrReset(var_r30, 0x49, 4); HuSprPosSet(var_r30, 0x49, 367.0f, 2.0f + lbl_1_data_5DC[1][1]); + #endif for (var_r31 = 0; var_r31 < 2; var_r31++) { HuSprAttrReset(var_r30, var_r31 + 0x4A, 4); - HuSprPosSet(var_r30, var_r31 + 0x4A, 0x141 - (var_r31 * 0x1A), lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, var_r31 + 0x4A, POSX1 - (var_r31 * (POSX1-POSX2)), lbl_1_data_5DC[1][1]); HuSprBankSet(var_r30, var_r31 + 0x4A, var_r31); HuSprAttrReset(var_r30, var_r31 + 0x4C, 4); - HuSprPosSet(var_r30, var_r31 + 0x4C, 0x142 - (var_r31 * 0x1A), 2.0f + lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, var_r31 + 0x4C, POSX1+1 - (var_r31 * (POSX1-POSX2)), 2.0f + lbl_1_data_5DC[1][1]); HuSprBankSet(var_r30, var_r31 + 0x4C, var_r31); } HuSprAttrReset(var_r30, 0x4E, 4); @@ -4964,23 +4990,29 @@ void fn_1_19C98(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) break; case 1: if (var_r26 == 1) { + #if VERSION_NTSC HuSprPosSet(var_r30, 0x48, 366.0f + var_f31, lbl_1_data_5DC[1][1]); HuSprPosSet(var_r30, 0x49, 367.0f + var_f31, 2.0f + lbl_1_data_5DC[1][1]); - HuSprPosSet(var_r30, 0x4A, 321.0f + var_f31, lbl_1_data_5DC[1][1]); - HuSprPosSet(var_r30, 0x4C, 322.0f + var_f31, 2.0f + lbl_1_data_5DC[1][1]); - HuSprPosSet(var_r30, 0x4B, 295.0f + var_f31, lbl_1_data_5DC[1][1]); - HuSprPosSet(var_r30, 0x4D, 296.0f + var_f31, 2.0f + lbl_1_data_5DC[1][1]); + #endif + HuSprPosSet(var_r30, 0x4A, POSX1 + var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4C, POSX1+1 + var_f31, 2.0f + lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4B, POSX2 + var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4D, POSX2+1 + var_f31, 2.0f + lbl_1_data_5DC[1][1]); } else { + #if VERSION_NTSC HuSprPosSet(var_r30, 0x48, 366.0f - var_f31, lbl_1_data_5DC[1][1]); HuSprPosSet(var_r30, 0x49, 367.0f - var_f31, 2.0f + lbl_1_data_5DC[1][1]); - HuSprPosSet(var_r30, 0x4A, 321.0f - var_f31, lbl_1_data_5DC[1][1]); - HuSprPosSet(var_r30, 0x4C, 322.0f - var_f31, 2.0f + lbl_1_data_5DC[1][1]); - HuSprPosSet(var_r30, 0x4B, 295.0f - var_f31, lbl_1_data_5DC[1][1]); - HuSprPosSet(var_r30, 0x4D, 296.0f - var_f31, 2.0f + lbl_1_data_5DC[1][1]); + #endif + HuSprPosSet(var_r30, 0x4A, POSX1 - var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4C, POSX1+1 - var_f31, 2.0f + lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4B, POSX2 - var_f31, lbl_1_data_5DC[1][1]); + HuSprPosSet(var_r30, 0x4D, POSX2+1 - var_f31, 2.0f + lbl_1_data_5DC[1][1]); } + #if VERSION_NTSC HuSprScaleSet(var_r30, 0x48, 1.0f, var_f30); HuSprScaleSet(var_r30, 0x49, 1.0f, var_f30); + #endif HuSprScaleSet(var_r30, 0x4A, 1.0f, var_f30); HuSprScaleSet(var_r30, 0x4C, 1.0f, var_f30); HuSprScaleSet(var_r30, 0x4B, 1.0f, var_f30); @@ -5103,6 +5135,9 @@ void fn_1_19C98(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) } } +#undef POSX2 +#undef POSX1 + void fn_1_1BB2C(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) { s32 var_r31; From 03e0dedb8e4837ec98692568387366e536679ce9 Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Sat, 16 Nov 2024 23:17:35 +0100 Subject: [PATCH 140/311] More PAL porting (#466) * Use US splits for PAl w10, w20, w21 * Port m450 and option to PAL * Matched m420dll for PAL * Port m429Dll * Port m431Dll to PAL --- config/GMPP01_00/config.yml | 17 +- config/GMPP01_00/rels/m420dll/splits.txt | 29 + config/GMPP01_00/rels/m420dll/symbols.txt | 413 +++++------ config/GMPP01_00/rels/m429Dll/splits.txt | 6 + config/GMPP01_00/rels/m429Dll/symbols.txt | 442 ++++++------ config/GMPP01_00/rels/m431Dll/splits.txt | 15 + config/GMPP01_00/rels/m431Dll/symbols.txt | 406 +++++------ config/GMPP01_00/rels/m450Dll/splits.txt | 6 + config/GMPP01_00/rels/m450Dll/symbols.txt | 833 +++++++++++----------- config/GMPP01_00/rels/option/splits.txt | 54 ++ config/GMPP01_00/rels/option/symbols.txt | 740 +++++++++---------- config/GMPP01_00/rels/w10Dll/splits.txt | 33 - config/GMPP01_00/rels/w10Dll/symbols.txt | 116 --- config/GMPP01_00/rels/w20Dll/splits.txt | 17 - config/GMPP01_00/rels/w20Dll/symbols.txt | 33 - config/GMPP01_00/rels/w21Dll/splits.txt | 15 - config/GMPP01_00/rels/w21Dll/symbols.txt | 18 - config/GMPP01_02/config.yml | 12 +- configure.py | 40 +- include/REL/m431Dll.h | 183 ++--- include/version.h | 6 + src/REL/m402Dll/main.c | 14 +- src/REL/m405Dll/main.c | 14 +- src/REL/m420dll/main.c | 14 +- src/REL/m429Dll/main.c | 47 +- src/REL/m431Dll/main.c | 53 +- src/REL/m431Dll/object.c | 28 +- src/REL/m432Dll/main.c | 14 +- src/REL/m441Dll/main.c | 14 +- src/REL/m444dll/pinball.c | 10 +- src/REL/m450Dll/main.c | 160 ++--- src/REL/m461Dll/main.c | 14 +- src/REL/option/record.c | 25 +- src/REL/option/window.c | 6 +- 34 files changed, 1891 insertions(+), 1956 deletions(-) delete mode 100644 config/GMPP01_00/rels/w10Dll/splits.txt delete mode 100644 config/GMPP01_00/rels/w10Dll/symbols.txt delete mode 100644 config/GMPP01_00/rels/w20Dll/splits.txt delete mode 100644 config/GMPP01_00/rels/w20Dll/symbols.txt delete mode 100644 config/GMPP01_00/rels/w21Dll/splits.txt delete mode 100644 config/GMPP01_00/rels/w21Dll/symbols.txt diff --git a/config/GMPP01_00/config.yml b/config/GMPP01_00/config.yml index 352ced1a..129c2220 100644 --- a/config/GMPP01_00/config.yml +++ b/config/GMPP01_00/config.yml @@ -3,10 +3,9 @@ object: sys/main.dol hash: 65ef91650e9201047f50a3c39c7693a21fff2b29 symbols: config/GMPP01_00/symbols.txt splits: config/GMPP01_00/splits.txt -quick_analysis: false # Faster re-runs after initial analysis +quick_analysis: true # Faster re-runs after initial analysis mw_comment_version: 10 # GC 2.6 linker force_active: [__register_global_object, lbl_801D40D0] - detect_objects: true detect_strings: true fill_gaps: true @@ -473,18 +472,18 @@ modules: links: [] - object: files/dll/w10Dll.rel hash: 5678fedd4a0490aeb9703328e959fdedea7da117 - symbols: config/GMPP01_00/rels/w10Dll/symbols.txt - splits: config/GMPP01_00/rels/w10Dll/splits.txt + symbols: config/GMPE01_00/rels/w10Dll/symbols.txt + splits: config/GMPE01_00/rels/w10Dll/splits.txt links: [] - object: files/dll/w20Dll.rel hash: 58ae9e311cc8bd0291921480f423e2ad4774e1a2 - symbols: config/GMPP01_00/rels/w20Dll/symbols.txt - splits: config/GMPP01_00/rels/w20Dll/splits.txt + symbols: config/GMPE01_00/rels/w20Dll/symbols.txt + splits: config/GMPE01_00/rels/w20Dll/splits.txt links: [] - object: files/dll/w21Dll.rel hash: 8ea052be8c7585a1ab152682a0698b631c5b566f - symbols: config/GMPP01_00/rels/w21Dll/symbols.txt - splits: config/GMPP01_00/rels/w21Dll/splits.txt + symbols: config/GMPE01_00/rels/w21Dll/symbols.txt + splits: config/GMPE01_00/rels/w21Dll/splits.txt links: [] - object: files/dll/ztardll.rel hash: 8987f11fafd11f69161ca275967afe9c8b4e7b20 @@ -654,4 +653,4 @@ extract: header: retryerror_sp.inc - symbol: wrongdisc_sp binary: wrongdisc_sp.bin - header: wrongdisc_sp.inc \ No newline at end of file + header: wrongdisc_sp.inc diff --git a/config/GMPP01_00/rels/m420dll/splits.txt b/config/GMPP01_00/rels/m420dll/splits.txt index 531cd645..08f811fa 100644 --- a/config/GMPP01_00/rels/m420dll/splits.txt +++ b/config/GMPP01_00/rels/m420dll/splits.txt @@ -5,3 +5,32 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m420dll/main.c: + .text start:0x000000A0 end:0x00000D80 + .rodata start:0x00000000 end:0x00000098 + .bss start:0x00000000 end:0x00000030 + +REL/m420dll/camera.c: + .text start:0x00000D80 end:0x00001B74 + .rodata start:0x00000098 end:0x000000F8 + .data start:0x00000000 end:0x00000050 + .bss start:0x00000030 end:0x000000B0 + +REL/m420dll/player.c: + .text start:0x00001B74 end:0x0000494C + .rodata start:0x000000F8 end:0x00000360 + .data start:0x00000050 end:0x00000138 + +REL/m420dll/map.c: + .text start:0x0000494C end:0x0000891C + .rodata start:0x00000360 end:0x00000570 + .data start:0x00000138 end:0x00000171 + .bss start:0x000000B0 end:0x00000A48 + +REL/m420dll/rand.c: + .text start:0x0000891C end:0x00008960 + .bss start:0x00000A48 end:0x00000A4C diff --git a/config/GMPP01_00/rels/m420dll/symbols.txt b/config/GMPP01_00/rels/m420dll/symbols.txt index 8077c937..95aa9732 100644 --- a/config/GMPP01_00/rels/m420dll/symbols.txt +++ b/config/GMPP01_00/rels/m420dll/symbols.txt @@ -1,217 +1,219 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x78 +ObjectSetup = .text:0x000000A0; // type:function size:0x78 fn_1_118 = .text:0x00000118; // type:function size:0x80 fn_1_198 = .text:0x00000198; // type:function size:0x23C fn_1_3D4 = .text:0x000003D4; // type:function size:0x68 fn_1_43C = .text:0x0000043C; // type:function size:0x8C0 -fn_1_CFC = .text:0x00000CFC; // type:function size:0x84 -fn_1_D80 = .text:0x00000D80; // type:function size:0x1B0 -fn_1_F30 = .text:0x00000F30; // type:function size:0x2C -fn_1_F5C = .text:0x00000F5C; // type:function size:0xBC -fn_1_1018 = .text:0x00001018; // type:function size:0xBC -fn_1_10D4 = .text:0x000010D4; // type:function size:0x98 -fn_1_116C = .text:0x0000116C; // type:function size:0x718 -fn_1_1884 = .text:0x00001884; // type:function size:0x214 -fn_1_1A98 = .text:0x00001A98; // type:function size:0xDC -fn_1_1B74 = .text:0x00001B74; // type:function size:0x288 -fn_1_1DFC = .text:0x00001DFC; // type:function size:0x50 -fn_1_1E4C = .text:0x00001E4C; // type:function size:0xB0 -fn_1_1EFC = .text:0x00001EFC; // type:function size:0x40 -fn_1_1F3C = .text:0x00001F3C; // type:function size:0x40 -fn_1_1F7C = .text:0x00001F7C; // type:function size:0x78 -fn_1_1FF4 = .text:0x00001FF4; // type:function size:0xE0 -fn_1_20D4 = .text:0x000020D4; // type:function size:0x30 -fn_1_2104 = .text:0x00002104; // type:function size:0x58 -fn_1_215C = .text:0x0000215C; // type:function size:0x54 -fn_1_21B0 = .text:0x000021B0; // type:function size:0x98 -fn_1_2248 = .text:0x00002248; // type:function size:0x6C -fn_1_22B4 = .text:0x000022B4; // type:function size:0x4A0 -fn_1_2754 = .text:0x00002754; // type:function size:0x574 -fn_1_2CC8 = .text:0x00002CC8; // type:function size:0x9C -fn_1_2D64 = .text:0x00002D64; // type:function size:0x12C -fn_1_2E90 = .text:0x00002E90; // type:function size:0x1F0 -fn_1_3080 = .text:0x00003080; // type:function size:0x1D4 -fn_1_3254 = .text:0x00003254; // type:function size:0x1E4 -fn_1_3438 = .text:0x00003438; // type:function size:0x5C -fn_1_3494 = .text:0x00003494; // type:function size:0xB0 -fn_1_3544 = .text:0x00003544; // type:function size:0x188 -fn_1_36CC = .text:0x000036CC; // type:function size:0x68 -fn_1_3734 = .text:0x00003734; // type:function size:0x40 -fn_1_3774 = .text:0x00003774; // type:function size:0xC8 -fn_1_383C = .text:0x0000383C; // type:function size:0x11C -fn_1_3958 = .text:0x00003958; // type:function size:0x624 -fn_1_3F7C = .text:0x00003F7C; // type:function size:0x300 -fn_1_427C = .text:0x0000427C; // type:function size:0x2E0 -fn_1_455C = .text:0x0000455C; // type:function size:0x1F8 -fn_1_4754 = .text:0x00004754; // type:function size:0x1F8 -fn_1_494C = .text:0x0000494C; // type:function size:0x1008 -fn_1_5954 = .text:0x00005954; // type:function size:0x88 -fn_1_59DC = .text:0x000059DC; // type:function size:0x88 -fn_1_5A64 = .text:0x00005A64; // type:function size:0x2C -fn_1_5A90 = .text:0x00005A90; // type:function size:0x1E4 -fn_1_5C74 = .text:0x00005C74; // type:function size:0x464 -fn_1_60D8 = .text:0x000060D8; // type:function size:0x178 -fn_1_6250 = .text:0x00006250; // type:function size:0x104 -fn_1_6354 = .text:0x00006354; // type:function size:0x80 -fn_1_63D4 = .text:0x000063D4; // type:function size:0x120 -fn_1_64F4 = .text:0x000064F4; // type:function size:0x48 -fn_1_653C = .text:0x0000653C; // type:function size:0x10C -fn_1_6648 = .text:0x00006648; // type:function size:0x10 -fn_1_6658 = .text:0x00006658; // type:function size:0x2C -fn_1_6684 = .text:0x00006684; // type:function size:0x8C -fn_1_6710 = .text:0x00006710; // type:function size:0x7C -fn_1_678C = .text:0x0000678C; // type:function size:0x44 -fn_1_67D0 = .text:0x000067D0; // type:function size:0x28 -fn_1_67F8 = .text:0x000067F8; // type:function size:0x10 -fn_1_6808 = .text:0x00006808; // type:function size:0x64 -fn_1_686C = .text:0x0000686C; // type:function size:0xCC -fn_1_6938 = .text:0x00006938; // type:function size:0x3BC -fn_1_6CF4 = .text:0x00006CF4; // type:function size:0x50 -fn_1_6D44 = .text:0x00006D44; // type:function size:0x94 -fn_1_6DD8 = .text:0x00006DD8; // type:function size:0x440 -fn_1_7218 = .text:0x00007218; // type:function size:0x98 -fn_1_72B0 = .text:0x000072B0; // type:function size:0x98 -fn_1_7348 = .text:0x00007348; // type:function size:0x98 -fn_1_73E0 = .text:0x000073E0; // type:function size:0x100 -fn_1_74E0 = .text:0x000074E0; // type:function size:0x20C -fn_1_76EC = .text:0x000076EC; // type:function size:0x720 -fn_1_7E0C = .text:0x00007E0C; // type:function size:0x41C -fn_1_8228 = .text:0x00008228; // type:function size:0x1D4 -fn_1_83FC = .text:0x000083FC; // type:function size:0x520 -fn_1_891C = .text:0x0000891C; // type:function size:0x10 -fn_1_892C = .text:0x0000892C; // type:function size:0x34 +fn_1_D14 = .text:0x00000CFC; // type:function size:0x84 +fn_1_D98 = .text:0x00000D80; // type:function size:0x1B0 +fn_1_F48 = .text:0x00000F30; // type:function size:0x2C +fn_1_F74 = .text:0x00000F5C; // type:function size:0xBC +fn_1_1030 = .text:0x00001018; // type:function size:0xBC +fn_1_10EC = .text:0x000010D4; // type:function size:0x98 +fn_1_1184 = .text:0x0000116C; // type:function size:0x718 +fn_1_189C = .text:0x00001884; // type:function size:0x214 +fn_1_1AB0 = .text:0x00001A98; // type:function size:0xDC +fn_1_1B8C = .text:0x00001B74; // type:function size:0x288 +fn_1_1E14 = .text:0x00001DFC; // type:function size:0x50 +fn_1_1E64 = .text:0x00001E4C; // type:function size:0xB0 +fn_1_1F14 = .text:0x00001EFC; // type:function size:0x40 +fn_1_1F54 = .text:0x00001F3C; // type:function size:0x40 +fn_1_1F94 = .text:0x00001F7C; // type:function size:0x78 +fn_1_200C = .text:0x00001FF4; // type:function size:0xE0 +fn_1_20EC = .text:0x000020D4; // type:function size:0x30 +fn_1_211C = .text:0x00002104; // type:function size:0x58 +fn_1_2174 = .text:0x0000215C; // type:function size:0x54 +fn_1_21C8 = .text:0x000021B0; // type:function size:0x98 +fn_1_2260 = .text:0x00002248; // type:function size:0x6C +fn_1_22CC = .text:0x000022B4; // type:function size:0x4A0 +fn_1_276C = .text:0x00002754; // type:function size:0x574 +fn_1_2CE0 = .text:0x00002CC8; // type:function size:0x9C +fn_1_2D7C = .text:0x00002D64; // type:function size:0x12C +fn_1_2EA8 = .text:0x00002E90; // type:function size:0x1F0 +fn_1_3098 = .text:0x00003080; // type:function size:0x1D4 +fn_1_326C = .text:0x00003254; // type:function size:0x1E4 +fn_1_3450 = .text:0x00003438; // type:function size:0x5C +fn_1_34AC = .text:0x00003494; // type:function size:0xB0 +fn_1_355C = .text:0x00003544; // type:function size:0x188 +fn_1_36E4 = .text:0x000036CC; // type:function size:0x68 +fn_1_374C = .text:0x00003734; // type:function size:0x40 +fn_1_378C = .text:0x00003774; // type:function size:0xC8 +fn_1_3854 = .text:0x0000383C; // type:function size:0x11C +fn_1_3970 = .text:0x00003958; // type:function size:0x624 +fn_1_3F94 = .text:0x00003F7C; // type:function size:0x300 +fn_1_4294 = .text:0x0000427C; // type:function size:0x2E0 +fn_1_4574 = .text:0x0000455C; // type:function size:0x1F8 +fn_1_476C = .text:0x00004754; // type:function size:0x1F8 +fn_1_4964 = .text:0x0000494C; // type:function size:0x1008 +fn_1_596C = .text:0x00005954; // type:function size:0x88 +fn_1_59F4 = .text:0x000059DC; // type:function size:0x88 +fn_1_5A7C = .text:0x00005A64; // type:function size:0x2C +fn_1_5AA8 = .text:0x00005A90; // type:function size:0x1E4 +fn_1_5C8C = .text:0x00005C74; // type:function size:0x464 +fn_1_60F0 = .text:0x000060D8; // type:function size:0x178 +fn_1_6268 = .text:0x00006250; // type:function size:0x104 +fn_1_636C = .text:0x00006354; // type:function size:0x80 +fn_1_63EC = .text:0x000063D4; // type:function size:0x120 +fn_1_650C = .text:0x000064F4; // type:function size:0x48 +fn_1_6554 = .text:0x0000653C; // type:function size:0x10C +fn_1_6660 = .text:0x00006648; // type:function size:0x10 +fn_1_6670 = .text:0x00006658; // type:function size:0x2C +fn_1_669C = .text:0x00006684; // type:function size:0x8C +fn_1_6728 = .text:0x00006710; // type:function size:0x7C +fn_1_67A4 = .text:0x0000678C; // type:function size:0x44 +fn_1_67E8 = .text:0x000067D0; // type:function size:0x28 +fn_1_6810 = .text:0x000067F8; // type:function size:0x10 +fn_1_6820 = .text:0x00006808; // type:function size:0x64 +fn_1_6884 = .text:0x0000686C; // type:function size:0xCC +fn_1_6950 = .text:0x00006938; // type:function size:0x3BC +fn_1_6D0C = .text:0x00006CF4; // type:function size:0x50 +fn_1_6D5C = .text:0x00006D44; // type:function size:0x94 +fn_1_6DF0 = .text:0x00006DD8; // type:function size:0x440 +fn_1_7230 = .text:0x00007218; // type:function size:0x98 +fn_1_72C8 = .text:0x000072B0; // type:function size:0x98 +fn_1_7360 = .text:0x00007348; // type:function size:0x98 +fn_1_73F8 = .text:0x000073E0; // type:function size:0x100 +fn_1_74F8 = .text:0x000074E0; // type:function size:0x20C +fn_1_7704 = .text:0x000076EC; // type:function size:0x720 +fn_1_7E24 = .text:0x00007E0C; // type:function size:0x41C +fn_1_8240 = .text:0x00008228; // type:function size:0x1D4 +fn_1_8414 = .text:0x000083FC; // type:function size:0x520 +fn_1_8934 = .text:0x0000891C; // type:function size:0x10 +fn_1_8944 = .text:0x0000892C; // type:function size:0x34 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x54 -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 data:4byte -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x160 -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x60 -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x10 -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x1C -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x6C -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0xC data:4byte -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0xC data:4byte -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 data:double -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x30 data:4byte -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x30 data:4byte -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0xC data:4byte -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float -lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x1E data:string -lbl_1_data_1E = .data:0x0000001E; // type:object size:0x1E data:string -lbl_1_data_3C = .data:0x0000003C; // type:object size:0x14 +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x54 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x160 scope:local +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x60 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x10 scope:local +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x1C scope:local +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x6C scope:local +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0xC scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0xC scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 scope:local data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 scope:local data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 scope:local data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 scope:local data:double +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x30 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x30 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 scope:local data:double +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 scope:local data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1E scope:local data:string +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x1E scope:local data:string +lbl_1_data_3C = .data:0x0000003C; // type:object size:0x10 scope:local data:string lbl_1_data_50 = .data:0x00000050; // type:object size:0x80 -lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x1C +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x1B scope:local data:string lbl_1_data_EC = .data:0x000000EC; // type:object size:0x30 -lbl_1_data_11C = .data:0x0000011C; // type:object size:0x19 data:string -lbl_1_data_135 = .data:0x00000135; // type:object size:0x3 +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x19 scope:local data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0x1 lbl_1_data_138 = .data:0x00000138; // type:object size:0x1C lbl_1_data_154 = .data:0x00000154; // type:object size:0x10 data:4byte -lbl_1_data_164 = .data:0x00000164; // type:object size:0xD data:string +lbl_1_data_164 = .data:0x00000164; // type:object size:0xD scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte @@ -220,7 +222,8 @@ lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x10 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:float @@ -233,7 +236,7 @@ lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x1C data:4byte lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x1C data:float lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x1C data:float -lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x8 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte @@ -245,5 +248,5 @@ lbl_1_bss_9F0 = .bss:0x000009F0; // type:object size:0x38 data:2byte lbl_1_bss_A28 = .bss:0x00000A28; // type:object size:0x4 data:4byte lbl_1_bss_A2C = .bss:0x00000A2C; // type:object size:0x10 data:4byte lbl_1_bss_A3C = .bss:0x00000A3C; // type:object size:0x4 data:4byte -lbl_1_bss_A40 = .bss:0x00000A40; // type:object size:0x8 data:4byte +lbl_1_bss_A40 = .bss:0x00000A40; // type:object size:0x4 data:4byte lbl_1_bss_A48 = .bss:0x00000A48; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m429Dll/splits.txt b/config/GMPP01_00/rels/m429Dll/splits.txt index 531cd645..eddadec6 100644 --- a/config/GMPP01_00/rels/m429Dll/splits.txt +++ b/config/GMPP01_00/rels/m429Dll/splits.txt @@ -5,3 +5,9 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/m429Dll/main.c: + .text start:0x00000000 end:0x0000EA18 + .rodata start:0x00000000 end:0x00000198 + .data start:0x00000000 end:0x00001510 + .bss start:0x00000000 end:0x00000364 diff --git a/config/GMPP01_00/rels/m429Dll/symbols.txt b/config/GMPP01_00/rels/m429Dll/symbols.txt index 3bd2a26f..5ec24090 100644 --- a/config/GMPP01_00/rels/m429Dll/symbols.txt +++ b/config/GMPP01_00/rels/m429Dll/symbols.txt @@ -7,228 +7,229 @@ fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C fn_1_414 = .text:0x00000414; // type:function size:0x58 fn_1_46C = .text:0x0000046C; // type:function size:0x114 fn_1_580 = .text:0x00000580; // type:function size:0x204 -fn_1_784 = .text:0x00000784; // type:function size:0x240 -fn_1_9C4 = .text:0x000009C4; // type:function size:0x54 -fn_1_A18 = .text:0x00000A18; // type:function size:0x10C -fn_1_B24 = .text:0x00000B24; // type:function size:0x680 -fn_1_11A4 = .text:0x000011A4; // type:function size:0x15C -fn_1_1300 = .text:0x00001300; // type:function size:0x8C -fn_1_138C = .text:0x0000138C; // type:function size:0x334 -fn_1_16C0 = .text:0x000016C0; // type:function size:0x350 -fn_1_1A10 = .text:0x00001A10; // type:function size:0x2B8 -fn_1_1CC8 = .text:0x00001CC8; // type:function size:0x58 -fn_1_1D20 = .text:0x00001D20; // type:function size:0xB0 -fn_1_1DD0 = .text:0x00001DD0; // type:function size:0x104 -fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x34 -fn_1_1F08 = .text:0x00001F08; // type:function size:0x6C -fn_1_1F74 = .text:0x00001F74; // type:function size:0x3F0 -fn_1_2364 = .text:0x00002364; // type:function size:0x260 -fn_1_25C4 = .text:0x000025C4; // type:function size:0x70 -fn_1_2634 = .text:0x00002634; // type:function size:0x2CC -fn_1_2900 = .text:0x00002900; // type:function size:0x290 -fn_1_2B90 = .text:0x00002B90; // type:function size:0x234 -fn_1_2DC4 = .text:0x00002DC4; // type:function size:0xD8 -fn_1_2E9C = .text:0x00002E9C; // type:function size:0x2BC -fn_1_3158 = .text:0x00003158; // type:function size:0x4 -fn_1_315C = .text:0x0000315C; // type:function size:0xD8 -fn_1_3234 = .text:0x00003234; // type:function size:0x174 -fn_1_33A8 = .text:0x000033A8; // type:function size:0x304 -fn_1_36AC = .text:0x000036AC; // type:function size:0x170 -fn_1_381C = .text:0x0000381C; // type:function size:0x560 -fn_1_3D7C = .text:0x00003D7C; // type:function size:0x254 +fn_1_798 = .text:0x00000784; // type:function size:0x240 +fn_1_9EC = .text:0x000009C4; // type:function size:0x54 +fn_1_A40 = .text:0x00000A18; // type:function size:0x10C +fn_1_B4C = .text:0x00000B24; // type:function size:0x680 +fn_1_11F4 = .text:0x000011A4; // type:function size:0x15C +fn_1_1350 = .text:0x00001300; // type:function size:0x8C +fn_1_13DC = .text:0x0000138C; // type:function size:0x334 +fn_1_1710 = .text:0x000016C0; // type:function size:0x350 +fn_1_1A60 = .text:0x00001A10; // type:function size:0x2B8 +fn_1_1D18 = .text:0x00001CC8; // type:function size:0x58 +fn_1_1D70 = .text:0x00001D20; // type:function size:0xB0 +fn_1_1E20 = .text:0x00001DD0; // type:function size:0x104 +fn_1_1F24 = .text:0x00001ED4; // type:function size:0x34 +fn_1_1F58 = .text:0x00001F08; // type:function size:0x6C +fn_1_1FC4 = .text:0x00001F74; // type:function size:0x3F0 +fn_1_23B4 = .text:0x00002364; // type:function size:0x260 +fn_1_2614 = .text:0x000025C4; // type:function size:0x70 +fn_1_2684 = .text:0x00002634; // type:function size:0x2CC +fn_1_2950 = .text:0x00002900; // type:function size:0x290 +fn_1_2BE0 = .text:0x00002B90; // type:function size:0x234 +fn_1_2E14 = .text:0x00002DC4; // type:function size:0xD8 +fn_1_2EEC = .text:0x00002E9C; // type:function size:0x2BC +fn_1_31A8 = .text:0x00003158; // type:function size:0x4 +fn_1_31AC = .text:0x0000315C; // type:function size:0xD8 +fn_1_3284 = .text:0x00003234; // type:function size:0x174 +fn_1_33F8 = .text:0x000033A8; // type:function size:0x304 +fn_1_36FC = .text:0x000036AC; // type:function size:0x170 +fn_1_386C = .text:0x0000381C; // type:function size:0x560 +fn_1_3DCC = .text:0x00003D7C; // type:function size:0x254 _prolog = .text:0x00003FD0; // type:function size:0x54 scope:global _epilog = .text:0x00004024; // type:function size:0x4C scope:global -fn_1_4070 = .text:0x00004070; // type:function size:0x164 -fn_1_41D4 = .text:0x000041D4; // type:function size:0xBCC -fn_1_4DA0 = .text:0x00004DA0; // type:function size:0x60 -fn_1_4E00 = .text:0x00004E00; // type:function size:0x25C -fn_1_505C = .text:0x0000505C; // type:function size:0x410 -fn_1_546C = .text:0x0000546C; // type:function size:0x380 -fn_1_57EC = .text:0x000057EC; // type:function size:0x120 -fn_1_590C = .text:0x0000590C; // type:function size:0x380 -fn_1_5C8C = .text:0x00005C8C; // type:function size:0x268 -fn_1_5EF4 = .text:0x00005EF4; // type:function size:0x1154 -fn_1_7048 = .text:0x00007048; // type:function size:0x158 -fn_1_71A0 = .text:0x000071A0; // type:function size:0xB48 -fn_1_7CE8 = .text:0x00007CE8; // type:function size:0x1230 -fn_1_8F18 = .text:0x00008F18; // type:function size:0xA84 -fn_1_999C = .text:0x0000999C; // type:function size:0x4 -fn_1_99A0 = .text:0x000099A0; // type:function size:0x1BC -fn_1_9B5C = .text:0x00009B5C; // type:function size:0x340 -fn_1_9E9C = .text:0x00009E9C; // type:function size:0x1BC -fn_1_A058 = .text:0x0000A058; // type:function size:0x70 -fn_1_A0C8 = .text:0x0000A0C8; // type:function size:0x470 -fn_1_A538 = .text:0x0000A538; // type:function size:0x22C -fn_1_A764 = .text:0x0000A764; // type:function size:0x5C0 -fn_1_AD24 = .text:0x0000AD24; // type:function size:0x2A8 -fn_1_AFCC = .text:0x0000AFCC; // type:function size:0x738 -fn_1_B704 = .text:0x0000B704; // type:function size:0x18C -fn_1_B890 = .text:0x0000B890; // type:function size:0x1D00 -fn_1_D590 = .text:0x0000D590; // type:function size:0x6B4 -fn_1_DC44 = .text:0x0000DC44; // type:function size:0xCD0 -fn_1_E914 = .text:0x0000E914; // type:function size:0x104 +fn_1_40C0 = .text:0x00004070; // type:function size:0x164 +fn_1_4224 = .text:0x000041D4; // type:function size:0xBCC +fn_1_4DF0 = .text:0x00004DA0; // type:function size:0x60 +fn_1_4E50 = .text:0x00004E00; // type:function size:0x25C +fn_1_50AC = .text:0x0000505C; // type:function size:0x410 +fn_1_54BC = .text:0x0000546C; // type:function size:0x380 +fn_1_583C = .text:0x000057EC; // type:function size:0x120 +fn_1_595C = .text:0x0000590C; // type:function size:0x380 +fn_1_5CDC = .text:0x00005C8C; // type:function size:0x268 +fn_1_5F44 = .text:0x00005EF4; // type:function size:0x1154 +fn_1_7098 = .text:0x00007048; // type:function size:0x158 +fn_1_71F0 = .text:0x000071A0; // type:function size:0xB48 +fn_1_7D38 = .text:0x00007CE8; // type:function size:0x1230 +fn_1_8F68 = .text:0x00008F18; // type:function size:0xA84 +fn_1_99EC = .text:0x0000999C; // type:function size:0x4 +fn_1_99F0 = .text:0x000099A0; // type:function size:0x1BC +fn_1_9BAC = .text:0x00009B5C; // type:function size:0x340 +fn_1_9EEC = .text:0x00009E9C; // type:function size:0x1BC +fn_1_A0A8 = .text:0x0000A058; // type:function size:0x70 +fn_1_A118 = .text:0x0000A0C8; // type:function size:0x470 +fn_1_A588 = .text:0x0000A538; // type:function size:0x22C +fn_1_A7B4 = .text:0x0000A764; // type:function size:0x5C0 +fn_1_AD74 = .text:0x0000AD24; // type:function size:0x2A8 +fn_1_B01C = .text:0x0000AFCC; // type:function size:0x738 +fn_1_B754 = .text:0x0000B704; // type:function size:0x18C +fn_1_B8E0 = .text:0x0000B890; // type:function size:0x1D00 +fn_1_D5E8 = .text:0x0000D590; // type:function size:0x6B4 +ObjectSetup = .text:0x0000DC44; // type:function size:0xCD0 +fn_1_E96C = .text:0x0000E914; // type:function size:0x104 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 -lbl_1_data_10 = .data:0x00000010; // type:object size:0xD data:string -lbl_1_data_1D = .data:0x0000001D; // type:object size:0xE data:string -lbl_1_data_2B = .data:0x0000002B; // type:object size:0xE data:string -lbl_1_data_39 = .data:0x00000039; // type:object size:0xE data:string -lbl_1_data_47 = .data:0x00000047; // type:object size:0xD data:string -lbl_1_data_54 = .data:0x00000054; // type:object size:0xD data:string -lbl_1_data_61 = .data:0x00000061; // type:object size:0xE data:string -lbl_1_data_6F = .data:0x0000006F; // type:object size:0xE data:string -lbl_1_data_7D = .data:0x0000007D; // type:object size:0xE data:string -lbl_1_data_8B = .data:0x0000008B; // type:object size:0xD data:string -lbl_1_data_98 = .data:0x00000098; // type:object size:0xE data:string -lbl_1_data_A6 = .data:0x000000A6; // type:object size:0xE data:string -lbl_1_data_B4 = .data:0x000000B4; // type:object size:0xE data:string -lbl_1_data_C2 = .data:0x000000C2; // type:object size:0xD data:string -lbl_1_data_CF = .data:0x000000CF; // type:object size:0xD data:string -lbl_1_data_DC = .data:0x000000DC; // type:object size:0xD data:string -lbl_1_data_E9 = .data:0x000000E9; // type:object size:0xD data:string -lbl_1_data_F6 = .data:0x000000F6; // type:object size:0xE data:string -lbl_1_data_104 = .data:0x00000104; // type:object size:0xE data:string -lbl_1_data_112 = .data:0x00000112; // type:object size:0xE data:string -lbl_1_data_120 = .data:0x00000120; // type:object size:0xE data:string -lbl_1_data_12E = .data:0x0000012E; // type:object size:0xE data:string -lbl_1_data_13C = .data:0x0000013C; // type:object size:0xE data:string -lbl_1_data_14A = .data:0x0000014A; // type:object size:0xE data:string -lbl_1_data_158 = .data:0x00000158; // type:object size:0xE data:string -lbl_1_data_166 = .data:0x00000166; // type:object size:0xE data:string -lbl_1_data_174 = .data:0x00000174; // type:object size:0xE data:string -lbl_1_data_182 = .data:0x00000182; // type:object size:0xE data:string -lbl_1_data_190 = .data:0x00000190; // type:object size:0xE data:string -lbl_1_data_19E = .data:0x0000019E; // type:object size:0xE data:string -lbl_1_data_1AC = .data:0x000001AC; // type:object size:0xE data:string -lbl_1_data_1BA = .data:0x000001BA; // type:object size:0xE data:string -lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0xE data:string -lbl_1_data_1D6 = .data:0x000001D6; // type:object size:0xE data:string -lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0xE data:string -lbl_1_data_1F2 = .data:0x000001F2; // type:object size:0xE data:string -lbl_1_data_200 = .data:0x00000200; // type:object size:0xE data:string -lbl_1_data_20E = .data:0x0000020E; // type:object size:0xE data:string -lbl_1_data_21C = .data:0x0000021C; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0xD scope:local data:string +lbl_1_data_1D = .data:0x0000001D; // type:object size:0xE scope:local data:string +lbl_1_data_2B = .data:0x0000002B; // type:object size:0xE scope:local data:string +lbl_1_data_39 = .data:0x00000039; // type:object size:0xE scope:local data:string +lbl_1_data_47 = .data:0x00000047; // type:object size:0xD scope:local data:string +lbl_1_data_54 = .data:0x00000054; // type:object size:0xD scope:local data:string +lbl_1_data_61 = .data:0x00000061; // type:object size:0xE scope:local data:string +lbl_1_data_6F = .data:0x0000006F; // type:object size:0xE scope:local data:string +lbl_1_data_7D = .data:0x0000007D; // type:object size:0xE scope:local data:string +lbl_1_data_8B = .data:0x0000008B; // type:object size:0xD scope:local data:string +lbl_1_data_98 = .data:0x00000098; // type:object size:0xE scope:local data:string +lbl_1_data_A6 = .data:0x000000A6; // type:object size:0xE scope:local data:string +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0xE scope:local data:string +lbl_1_data_C2 = .data:0x000000C2; // type:object size:0xD scope:local data:string +lbl_1_data_CF = .data:0x000000CF; // type:object size:0xD scope:local data:string +lbl_1_data_DC = .data:0x000000DC; // type:object size:0xD scope:local data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0xD scope:local data:string +lbl_1_data_F6 = .data:0x000000F6; // type:object size:0xE scope:local data:string +lbl_1_data_104 = .data:0x00000104; // type:object size:0xE scope:local data:string +lbl_1_data_112 = .data:0x00000112; // type:object size:0xE scope:local data:string +lbl_1_data_120 = .data:0x00000120; // type:object size:0xE scope:local data:string +lbl_1_data_12E = .data:0x0000012E; // type:object size:0xE scope:local data:string +lbl_1_data_13C = .data:0x0000013C; // type:object size:0xE scope:local data:string +lbl_1_data_14A = .data:0x0000014A; // type:object size:0xE scope:local data:string +lbl_1_data_158 = .data:0x00000158; // type:object size:0xE scope:local data:string +lbl_1_data_166 = .data:0x00000166; // type:object size:0xE scope:local data:string +lbl_1_data_174 = .data:0x00000174; // type:object size:0xE scope:local data:string +lbl_1_data_182 = .data:0x00000182; // type:object size:0xE scope:local data:string +lbl_1_data_190 = .data:0x00000190; // type:object size:0xE scope:local data:string +lbl_1_data_19E = .data:0x0000019E; // type:object size:0xE scope:local data:string +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0xE scope:local data:string +lbl_1_data_1BA = .data:0x000001BA; // type:object size:0xE scope:local data:string +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0xE scope:local data:string +lbl_1_data_1D6 = .data:0x000001D6; // type:object size:0xE scope:local data:string +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0xE scope:local data:string +lbl_1_data_1F2 = .data:0x000001F2; // type:object size:0xE scope:local data:string +lbl_1_data_200 = .data:0x00000200; // type:object size:0xE scope:local data:string +lbl_1_data_20E = .data:0x0000020E; // type:object size:0xE scope:local data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0xE scope:local data:string lbl_1_data_22C = .data:0x0000022C; // type:object size:0x57C -lbl_1_data_7A8 = .data:0x000007A8; // type:object size:0xD data:string -lbl_1_data_7B5 = .data:0x000007B5; // type:object size:0xD data:string -lbl_1_data_7C2 = .data:0x000007C2; // type:object size:0xD data:string -lbl_1_data_7CF = .data:0x000007CF; // type:object size:0xE data:string -lbl_1_data_7DD = .data:0x000007DD; // type:object size:0xE data:string -lbl_1_data_7EB = .data:0x000007EB; // type:object size:0xE data:string -lbl_1_data_7F9 = .data:0x000007F9; // type:object size:0xE data:string -lbl_1_data_807 = .data:0x00000807; // type:object size:0xD data:string -lbl_1_data_814 = .data:0x00000814; // type:object size:0xD data:string -lbl_1_data_821 = .data:0x00000821; // type:object size:0xD data:string -lbl_1_data_82E = .data:0x0000082E; // type:object size:0xE data:string -lbl_1_data_83C = .data:0x0000083C; // type:object size:0xE data:string -lbl_1_data_84A = .data:0x0000084A; // type:object size:0xD data:string -lbl_1_data_857 = .data:0x00000857; // type:object size:0xD data:string -lbl_1_data_864 = .data:0x00000864; // type:object size:0xD data:string -lbl_1_data_871 = .data:0x00000871; // type:object size:0xE data:string -lbl_1_data_87F = .data:0x0000087F; // type:object size:0xE data:string -lbl_1_data_88D = .data:0x0000088D; // type:object size:0xE data:string -lbl_1_data_89B = .data:0x0000089B; // type:object size:0xE data:string -lbl_1_data_8A9 = .data:0x000008A9; // type:object size:0xE data:string -lbl_1_data_8B7 = .data:0x000008B7; // type:object size:0xE data:string -lbl_1_data_8C5 = .data:0x000008C5; // type:object size:0xE data:string -lbl_1_data_8D3 = .data:0x000008D3; // type:object size:0xE data:string -lbl_1_data_8E1 = .data:0x000008E1; // type:object size:0xE data:string -lbl_1_data_8EF = .data:0x000008EF; // type:object size:0xE data:string -lbl_1_data_8FD = .data:0x000008FD; // type:object size:0xE data:string -lbl_1_data_90B = .data:0x0000090B; // type:object size:0xE data:string -lbl_1_data_919 = .data:0x00000919; // type:object size:0xE data:string -lbl_1_data_927 = .data:0x00000927; // type:object size:0xE data:string -lbl_1_data_935 = .data:0x00000935; // type:object size:0xE data:string -lbl_1_data_943 = .data:0x00000943; // type:object size:0xE data:string -lbl_1_data_951 = .data:0x00000951; // type:object size:0xE data:string -lbl_1_data_95F = .data:0x0000095F; // type:object size:0xE data:string -lbl_1_data_96D = .data:0x0000096D; // type:object size:0xE data:string -lbl_1_data_97B = .data:0x0000097B; // type:object size:0xE data:string -lbl_1_data_989 = .data:0x00000989; // type:object size:0xE data:string -lbl_1_data_997 = .data:0x00000997; // type:object size:0xE data:string -lbl_1_data_9A5 = .data:0x000009A5; // type:object size:0xE data:string -lbl_1_data_9B3 = .data:0x000009B3; // type:object size:0xE data:string -lbl_1_data_9C1 = .data:0x000009C1; // type:object size:0xE data:string -lbl_1_data_9CF = .data:0x000009CF; // type:object size:0xE data:string -lbl_1_data_9DD = .data:0x000009DD; // type:object size:0xF +lbl_1_data_7A8 = .data:0x000007A8; // type:object size:0xD scope:local data:string +lbl_1_data_7B5 = .data:0x000007B5; // type:object size:0xD scope:local data:string +lbl_1_data_7C2 = .data:0x000007C2; // type:object size:0xD scope:local data:string +lbl_1_data_7CF = .data:0x000007CF; // type:object size:0xE scope:local data:string +lbl_1_data_7DD = .data:0x000007DD; // type:object size:0xE scope:local data:string +lbl_1_data_7EB = .data:0x000007EB; // type:object size:0xE scope:local data:string +lbl_1_data_7F9 = .data:0x000007F9; // type:object size:0xE scope:local data:string +lbl_1_data_807 = .data:0x00000807; // type:object size:0xD scope:local data:string +lbl_1_data_814 = .data:0x00000814; // type:object size:0xD scope:local data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0xD scope:local data:string +lbl_1_data_82E = .data:0x0000082E; // type:object size:0xE scope:local data:string +lbl_1_data_83C = .data:0x0000083C; // type:object size:0xE scope:local data:string +lbl_1_data_84A = .data:0x0000084A; // type:object size:0xD scope:local data:string +lbl_1_data_857 = .data:0x00000857; // type:object size:0xD scope:local data:string +lbl_1_data_864 = .data:0x00000864; // type:object size:0xD scope:local data:string +lbl_1_data_871 = .data:0x00000871; // type:object size:0xE scope:local data:string +lbl_1_data_87F = .data:0x0000087F; // type:object size:0xE scope:local data:string +lbl_1_data_88D = .data:0x0000088D; // type:object size:0xE scope:local data:string +lbl_1_data_89B = .data:0x0000089B; // type:object size:0xE scope:local data:string +lbl_1_data_8A9 = .data:0x000008A9; // type:object size:0xE scope:local data:string +lbl_1_data_8B7 = .data:0x000008B7; // type:object size:0xE scope:local data:string +lbl_1_data_8C5 = .data:0x000008C5; // type:object size:0xE scope:local data:string +lbl_1_data_8D3 = .data:0x000008D3; // type:object size:0xE scope:local data:string +lbl_1_data_8E1 = .data:0x000008E1; // type:object size:0xE scope:local data:string +lbl_1_data_8EF = .data:0x000008EF; // type:object size:0xE scope:local data:string +lbl_1_data_8FD = .data:0x000008FD; // type:object size:0xE scope:local data:string +lbl_1_data_90B = .data:0x0000090B; // type:object size:0xE scope:local data:string +lbl_1_data_919 = .data:0x00000919; // type:object size:0xE scope:local data:string +lbl_1_data_927 = .data:0x00000927; // type:object size:0xE scope:local data:string +lbl_1_data_935 = .data:0x00000935; // type:object size:0xE scope:local data:string +lbl_1_data_943 = .data:0x00000943; // type:object size:0xE scope:local data:string +lbl_1_data_951 = .data:0x00000951; // type:object size:0xE scope:local data:string +lbl_1_data_95F = .data:0x0000095F; // type:object size:0xE scope:local data:string +lbl_1_data_96D = .data:0x0000096D; // type:object size:0xE scope:local data:string +lbl_1_data_97B = .data:0x0000097B; // type:object size:0xE scope:local data:string +lbl_1_data_989 = .data:0x00000989; // type:object size:0xE scope:local data:string +lbl_1_data_997 = .data:0x00000997; // type:object size:0xE scope:local data:string +lbl_1_data_9A5 = .data:0x000009A5; // type:object size:0xE scope:local data:string +lbl_1_data_9B3 = .data:0x000009B3; // type:object size:0xE scope:local data:string +lbl_1_data_9C1 = .data:0x000009C1; // type:object size:0xE scope:local data:string +lbl_1_data_9CF = .data:0x000009CF; // type:object size:0xE scope:local data:string +lbl_1_data_9DD = .data:0x000009DD; // type:object size:0xF scope:local lbl_1_data_9EC = .data:0x000009EC; // type:object size:0x5E8 lbl_1_data_FD4 = .data:0x00000FD4; // type:object size:0xC lbl_1_data_FE0 = .data:0x00000FE0; // type:object size:0xC @@ -258,12 +259,12 @@ lbl_1_data_13B8 = .data:0x000013B8; // type:object size:0x10 lbl_1_data_13C8 = .data:0x000013C8; // type:object size:0x10 lbl_1_data_13D8 = .data:0x000013D8; // type:object size:0x10 lbl_1_data_13E8 = .data:0x000013E8; // type:object size:0x50 -lbl_1_data_1438 = .data:0x00001438; // type:object size:0x21 data:string -lbl_1_data_1459 = .data:0x00001459; // type:object size:0x1F +lbl_1_data_1438 = .data:0x00001438; // type:object size:0x21 scope:local data:string +lbl_1_data_1459 = .data:0x00001459; // type:object size:0x1F scope:local jumptable_1_data_1478 = .data:0x00001478; // type:object size:0x24 scope:local -lbl_1_data_149C = .data:0x0000149C; // type:object size:0x1C +lbl_1_data_149C = .data:0x0000149C; // type:object size:0x1B scope:local data:string jumptable_1_data_14B8 = .data:0x000014B8; // type:object size:0x34 scope:local -lbl_1_data_14EC = .data:0x000014EC; // type:object size:0x24 data:string +lbl_1_data_14EC = .data:0x000014EC; // type:object size:0x24 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte @@ -290,7 +291,8 @@ lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x4 data:float lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x4 data:float lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4 data:float lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x60 -lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x8 data:4byte +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:4byte +lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x4 data:4byte lbl_1_bss_198 = .bss:0x00000198; // type:object size:0x4 data:4byte lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x4 data:4byte lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m431Dll/splits.txt b/config/GMPP01_00/rels/m431Dll/splits.txt index 531cd645..ad48912a 100644 --- a/config/GMPP01_00/rels/m431Dll/splits.txt +++ b/config/GMPP01_00/rels/m431Dll/splits.txt @@ -5,3 +5,18 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m431Dll/main.c: + .text start:0x000000A0 end:0x00007AB8 + .rodata start:0x00000000 end:0x00000180 + .data start:0x00000000 end:0x000001D0 + .bss start:0x00000000 end:0x00000098 + +REL/m431Dll/object.c: + .text start:0x00007AB8 end:0x0000B57C + .rodata start:0x00000180 end:0x0000022C + .data start:0x000001D0 end:0x0000026C + .bss start:0x00000098 end:0x0000067C diff --git a/config/GMPP01_00/rels/m431Dll/symbols.txt b/config/GMPP01_00/rels/m431Dll/symbols.txt index c0040e1f..a67c25d3 100644 --- a/config/GMPP01_00/rels/m431Dll/symbols.txt +++ b/config/GMPP01_00/rels/m431Dll/symbols.txt @@ -1,207 +1,208 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x384 +ObjectSetup = .text:0x000000A0; // type:function size:0x384 fn_1_424 = .text:0x00000424; // type:function size:0x78 fn_1_49C = .text:0x0000049C; // type:function size:0xE0 fn_1_57C = .text:0x0000057C; // type:function size:0x234 fn_1_7B0 = .text:0x000007B0; // type:function size:0x294 fn_1_A44 = .text:0x00000A44; // type:function size:0x660 fn_1_10A4 = .text:0x000010A4; // type:function size:0x364 -fn_1_1408 = .text:0x00001408; // type:function size:0x228 -fn_1_1630 = .text:0x00001630; // type:function size:0x40C -fn_1_1A3C = .text:0x00001A3C; // type:function size:0x5C0 -fn_1_1FFC = .text:0x00001FFC; // type:function size:0x50 -fn_1_204C = .text:0x0000204C; // type:function size:0x40 -fn_1_208C = .text:0x0000208C; // type:function size:0x40 -fn_1_20CC = .text:0x000020CC; // type:function size:0x40 -fn_1_210C = .text:0x0000210C; // type:function size:0x9A0 -fn_1_2AAC = .text:0x00002AAC; // type:function size:0x10 -fn_1_2ABC = .text:0x00002ABC; // type:function size:0x1D4 -fn_1_2C90 = .text:0x00002C90; // type:function size:0x44C -fn_1_30DC = .text:0x000030DC; // type:function size:0x460 -fn_1_353C = .text:0x0000353C; // type:function size:0x83C -fn_1_3D78 = .text:0x00003D78; // type:function size:0x254 -fn_1_3FCC = .text:0x00003FCC; // type:function size:0x58 -fn_1_4024 = .text:0x00004024; // type:function size:0x6FC -fn_1_4720 = .text:0x00004720; // type:function size:0x14 -fn_1_4734 = .text:0x00004734; // type:function size:0x60 -fn_1_4794 = .text:0x00004794; // type:function size:0x138 -fn_1_48CC = .text:0x000048CC; // type:function size:0xBC -fn_1_4988 = .text:0x00004988; // type:function size:0x188 -fn_1_4B10 = .text:0x00004B10; // type:function size:0x1C8 -fn_1_4CD8 = .text:0x00004CD8; // type:function size:0x70 -fn_1_4D48 = .text:0x00004D48; // type:function size:0xE4 -fn_1_4E2C = .text:0x00004E2C; // type:function size:0x4A8 -fn_1_52D4 = .text:0x000052D4; // type:function size:0x1A8 -fn_1_547C = .text:0x0000547C; // type:function size:0xA4 -fn_1_5520 = .text:0x00005520; // type:function size:0x148 -fn_1_5668 = .text:0x00005668; // type:function size:0x9C -fn_1_5704 = .text:0x00005704; // type:function size:0x468 -fn_1_5B6C = .text:0x00005B6C; // type:function size:0x4C0 -fn_1_602C = .text:0x0000602C; // type:function size:0x154 -fn_1_6180 = .text:0x00006180; // type:function size:0x380 -fn_1_6500 = .text:0x00006500; // type:function size:0xC8 -fn_1_65C8 = .text:0x000065C8; // type:function size:0x10 -fn_1_65D8 = .text:0x000065D8; // type:function size:0x5C -fn_1_6634 = .text:0x00006634; // type:function size:0xA4 -fn_1_66D8 = .text:0x000066D8; // type:function size:0xE4 -fn_1_67BC = .text:0x000067BC; // type:function size:0x374 -fn_1_6B30 = .text:0x00006B30; // type:function size:0x140 -fn_1_6C70 = .text:0x00006C70; // type:function size:0x544 -fn_1_71B4 = .text:0x000071B4; // type:function size:0x60 -fn_1_7214 = .text:0x00007214; // type:function size:0x2C -fn_1_7240 = .text:0x00007240; // type:function size:0x38 -fn_1_7278 = .text:0x00007278; // type:function size:0x38 -fn_1_72B0 = .text:0x000072B0; // type:function size:0x570 -fn_1_7820 = .text:0x00007820; // type:function size:0xCC -fn_1_78EC = .text:0x000078EC; // type:function size:0xA4 -fn_1_7990 = .text:0x00007990; // type:function size:0x68 -fn_1_79F8 = .text:0x000079F8; // type:function size:0x7C -fn_1_7A74 = .text:0x00007A74; // type:function size:0x44 -fn_1_7AB8 = .text:0x00007AB8; // type:function size:0x4FC -fn_1_7FB4 = .text:0x00007FB4; // type:function size:0x4BC -fn_1_8470 = .text:0x00008470; // type:function size:0x118 -fn_1_8588 = .text:0x00008588; // type:function size:0x204 -fn_1_878C = .text:0x0000878C; // type:function size:0x344 -fn_1_8AD0 = .text:0x00008AD0; // type:function size:0x1EC -fn_1_8CBC = .text:0x00008CBC; // type:function size:0x6CC -fn_1_9388 = .text:0x00009388; // type:function size:0xB4 -fn_1_943C = .text:0x0000943C; // type:function size:0x494 -fn_1_98D0 = .text:0x000098D0; // type:function size:0x130 -fn_1_9A00 = .text:0x00009A00; // type:function size:0x278 -fn_1_9C78 = .text:0x00009C78; // type:function size:0x49C -fn_1_A114 = .text:0x0000A114; // type:function size:0x360 -fn_1_A474 = .text:0x0000A474; // type:function size:0x380 -fn_1_A7F4 = .text:0x0000A7F4; // type:function size:0x134 -fn_1_A928 = .text:0x0000A928; // type:function size:0x13C -fn_1_AA64 = .text:0x0000AA64; // type:function size:0xB0 -fn_1_AB14 = .text:0x0000AB14; // type:function size:0xB0 -fn_1_ABC4 = .text:0x0000ABC4; // type:function size:0x20 -fn_1_ABE4 = .text:0x0000ABE4; // type:function size:0x30 -fn_1_AC14 = .text:0x0000AC14; // type:function size:0x90 -fn_1_ACA4 = .text:0x0000ACA4; // type:function size:0x108 -fn_1_ADAC = .text:0x0000ADAC; // type:function size:0x7C -fn_1_AE28 = .text:0x0000AE28; // type:function size:0x2E4 -fn_1_B10C = .text:0x0000B10C; // type:function size:0x48 -fn_1_B154 = .text:0x0000B154; // type:function size:0x20 -fn_1_B174 = .text:0x0000B174; // type:function size:0x1C -fn_1_B190 = .text:0x0000B190; // type:function size:0x20 -fn_1_B1B0 = .text:0x0000B1B0; // type:function size:0x1F8 -fn_1_B3A8 = .text:0x0000B3A8; // type:function size:0x80 -fn_1_B428 = .text:0x0000B428; // type:function size:0x90 -fn_1_B4B8 = .text:0x0000B4B8; // type:function size:0x64 -fn_1_B51C = .text:0x0000B51C; // type:function size:0x38 -fn_1_B554 = .text:0x0000B554; // type:function size:0x28 +fn_1_140C = .text:0x00001408; // type:function size:0x228 +fn_1_1634 = .text:0x00001630; // type:function size:0x40C +fn_1_1A40 = .text:0x00001A3C; // type:function size:0x5C0 +fn_1_2000 = .text:0x00001FFC; // type:function size:0x50 +fn_1_2050 = .text:0x0000204C; // type:function size:0x40 +fn_1_2090 = .text:0x0000208C; // type:function size:0x40 +fn_1_20D0 = .text:0x000020CC; // type:function size:0x40 +fn_1_2110 = .text:0x0000210C; // type:function size:0x9A0 +fn_1_2AB0 = .text:0x00002AAC; // type:function size:0x10 +fn_1_2AC0 = .text:0x00002ABC; // type:function size:0x1D4 +fn_1_2C94 = .text:0x00002C90; // type:function size:0x44C +fn_1_30E0 = .text:0x000030DC; // type:function size:0x460 +fn_1_3540 = .text:0x0000353C; // type:function size:0x83C +fn_1_3D7C = .text:0x00003D78; // type:function size:0x254 +fn_1_3FD0 = .text:0x00003FCC; // type:function size:0x58 +fn_1_4028 = .text:0x00004024; // type:function size:0x6FC +fn_1_4724 = .text:0x00004720; // type:function size:0x14 +fn_1_4738 = .text:0x00004734; // type:function size:0x60 +fn_1_4798 = .text:0x00004794; // type:function size:0x138 +fn_1_48D0 = .text:0x000048CC; // type:function size:0xBC +fn_1_498C = .text:0x00004988; // type:function size:0x188 +fn_1_4B14 = .text:0x00004B10; // type:function size:0x1C8 +fn_1_4CDC = .text:0x00004CD8; // type:function size:0x70 +fn_1_4D4C = .text:0x00004D48; // type:function size:0xE4 +fn_1_4E30 = .text:0x00004E2C; // type:function size:0x4A8 +fn_1_52D8 = .text:0x000052D4; // type:function size:0x1A8 +fn_1_5480 = .text:0x0000547C; // type:function size:0xA4 +fn_1_5524 = .text:0x00005520; // type:function size:0x148 +fn_1_566C = .text:0x00005668; // type:function size:0x9C +fn_1_5708 = .text:0x00005704; // type:function size:0x468 +fn_1_5B70 = .text:0x00005B6C; // type:function size:0x4C0 +fn_1_6030 = .text:0x0000602C; // type:function size:0x154 +fn_1_6184 = .text:0x00006180; // type:function size:0x380 +fn_1_6504 = .text:0x00006500; // type:function size:0xC8 +fn_1_65CC = .text:0x000065C8; // type:function size:0x10 +fn_1_65DC = .text:0x000065D8; // type:function size:0x5C +fn_1_6638 = .text:0x00006634; // type:function size:0xA4 +fn_1_66DC = .text:0x000066D8; // type:function size:0xE4 +fn_1_67C0 = .text:0x000067BC; // type:function size:0x374 +fn_1_6B34 = .text:0x00006B30; // type:function size:0x140 +fn_1_6C74 = .text:0x00006C70; // type:function size:0x544 +fn_1_71B8 = .text:0x000071B4; // type:function size:0x60 +fn_1_7218 = .text:0x00007214; // type:function size:0x2C +fn_1_7244 = .text:0x00007240; // type:function size:0x38 +fn_1_727C = .text:0x00007278; // type:function size:0x38 +fn_1_72B4 = .text:0x000072B0; // type:function size:0x570 +fn_1_7824 = .text:0x00007820; // type:function size:0xCC +fn_1_78F0 = .text:0x000078EC; // type:function size:0xA4 +fn_1_7994 = .text:0x00007990; // type:function size:0x68 +fn_1_79FC = .text:0x000079F8; // type:function size:0x7C +fn_1_7A78 = .text:0x00007A74; // type:function size:0x44 +fn_1_7ABC = .text:0x00007AB8; // type:function size:0x4FC +fn_1_7FB8 = .text:0x00007FB4; // type:function size:0x4BC +fn_1_8474 = .text:0x00008470; // type:function size:0x118 +fn_1_858C = .text:0x00008588; // type:function size:0x204 +fn_1_8790 = .text:0x0000878C; // type:function size:0x344 +fn_1_8AD4 = .text:0x00008AD0; // type:function size:0x1EC +fn_1_8CC0 = .text:0x00008CBC; // type:function size:0x6CC +fn_1_938C = .text:0x00009388; // type:function size:0xB4 +fn_1_9440 = .text:0x0000943C; // type:function size:0x494 +fn_1_98D4 = .text:0x000098D0; // type:function size:0x130 +fn_1_9A04 = .text:0x00009A00; // type:function size:0x278 +fn_1_9C5C = .text:0x00009C78; // type:function size:0x49C +fn_1_A0F8 = .text:0x0000A114; // type:function size:0x360 +fn_1_A450 = .text:0x0000A474; // type:function size:0x380 +fn_1_A7D0 = .text:0x0000A7F4; // type:function size:0x134 +fn_1_A904 = .text:0x0000A928; // type:function size:0x13C +fn_1_AA40 = .text:0x0000AA64; // type:function size:0xB0 +fn_1_AAF0 = .text:0x0000AB14; // type:function size:0xB0 +fn_1_ABA0 = .text:0x0000ABC4; // type:function size:0x20 +fn_1_ABC0 = .text:0x0000ABE4; // type:function size:0x30 +fn_1_ABF0 = .text:0x0000AC14; // type:function size:0x90 +fn_1_AC80 = .text:0x0000ACA4; // type:function size:0x108 +fn_1_AD88 = .text:0x0000ADAC; // type:function size:0x7C +fn_1_AE04 = .text:0x0000AE28; // type:function size:0x2E4 +fn_1_B0E8 = .text:0x0000B10C; // type:function size:0x48 +fn_1_B130 = .text:0x0000B154; // type:function size:0x20 +fn_1_B150 = .text:0x0000B174; // type:function size:0x1C +fn_1_B16C = .text:0x0000B190; // type:function size:0x20 +fn_1_B18C = .text:0x0000B1B0; // type:function size:0x1F8 +fn_1_B384 = .text:0x0000B3A8; // type:function size:0x80 +fn_1_B404 = .text:0x0000B428; // type:function size:0x90 +fn_1_B494 = .text:0x0000B4B8; // type:function size:0x64 +fn_1_B4F8 = .text:0x0000B51C; // type:function size:0x38 +fn_1_B530 = .text:0x0000B554; // type:function size:0x28 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 data:byte -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:2byte -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:2byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC -lbl_1_data_18 = .data:0x00000018; // type:object size:0x10 +lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC lbl_1_data_28 = .data:0x00000028; // type:object size:0xC lbl_1_data_34 = .data:0x00000034; // type:object size:0xC lbl_1_data_40 = .data:0x00000040; // type:object size:0xC @@ -213,20 +214,21 @@ lbl_1_data_114 = .data:0x00000114; // type:object size:0x10 lbl_1_data_124 = .data:0x00000124; // type:object size:0x10 lbl_1_data_134 = .data:0x00000134; // type:object size:0x14 lbl_1_data_148 = .data:0x00000148; // type:object size:0x14 -lbl_1_data_15C = .data:0x0000015C; // type:object size:0x6 data:string +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x6 scope:local data:string lbl_1_data_162 = .data:0x00000162; // type:object size:0x2 data:2byte -lbl_1_data_164 = .data:0x00000164; // type:object size:0x10 data:4byte -lbl_1_data_174 = .data:0x00000174; // type:object size:0x10 data:string -lbl_1_data_184 = .data:0x00000184; // type:object size:0x26 data:string -lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x26 +lbl_1_data_164 = .data:0x00000164; // type:object size:0x4 data:4byte +lbl_1_data_168 = .data:0x00000168; // type:object size:0xC data:float +lbl_1_data_174 = .data:0x00000174; // type:object size:0x10 scope:local data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x26 scope:local data:string +lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x24 scope:local data:string lbl_1_data_1D0 = .data:0x000001D0; // type:object size:0x4 data:float -lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x20 +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x20 data:float lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x20 -lbl_1_data_214 = .data:0x00000214; // type:object size:0x1C +lbl_1_data_214 = .data:0x00000214; // type:object size:0x19 scope:local data:string lbl_1_data_230 = .data:0x00000230; // type:object size:0x20 -lbl_1_data_250 = .data:0x00000250; // type:object size:0x10 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x10 scope:local lbl_1_data_260 = .data:0x00000260; // type:object size:0x8 -lbl_1_data_268 = .data:0x00000268; // type:object size:0x2 data:2byte +lbl_1_data_268 = .data:0x00000268; // type:object size:0x4 data:2byte lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte @@ -242,7 +244,7 @@ lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x2 data:2byte lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x28 -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x3C data:2byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x38 data:2byte lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x1 data:byte lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x10 lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x80 data:4byte diff --git a/config/GMPP01_00/rels/m450Dll/splits.txt b/config/GMPP01_00/rels/m450Dll/splits.txt index 531cd645..eecefe9b 100644 --- a/config/GMPP01_00/rels/m450Dll/splits.txt +++ b/config/GMPP01_00/rels/m450Dll/splits.txt @@ -5,3 +5,9 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/m450Dll/main.c: + .text start:0x00000000 end:0x00029968 + .rodata start:0x00000000 end:0x00000398 + .data start:0x00000000 end:0x000017C4 + .bss start:0x00000000 end:0x00000364 diff --git a/config/GMPP01_00/rels/m450Dll/symbols.txt b/config/GMPP01_00/rels/m450Dll/symbols.txt index 09e43eee..feaece31 100644 --- a/config/GMPP01_00/rels/m450Dll/symbols.txt +++ b/config/GMPP01_00/rels/m450Dll/symbols.txt @@ -7,381 +7,385 @@ fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C fn_1_414 = .text:0x00000414; // type:function size:0x58 fn_1_46C = .text:0x0000046C; // type:function size:0x114 fn_1_580 = .text:0x00000580; // type:function size:0x204 -fn_1_784 = .text:0x00000784; // type:function size:0x240 -fn_1_9C4 = .text:0x000009C4; // type:function size:0x54 -fn_1_A18 = .text:0x00000A18; // type:function size:0x10C -fn_1_B24 = .text:0x00000B24; // type:function size:0x680 -fn_1_11A4 = .text:0x000011A4; // type:function size:0x15C -fn_1_1300 = .text:0x00001300; // type:function size:0x8C -fn_1_138C = .text:0x0000138C; // type:function size:0x334 -fn_1_16C0 = .text:0x000016C0; // type:function size:0x350 -fn_1_1A10 = .text:0x00001A10; // type:function size:0x2B8 -fn_1_1CC8 = .text:0x00001CC8; // type:function size:0x58 -fn_1_1D20 = .text:0x00001D20; // type:function size:0xB0 -fn_1_1DD0 = .text:0x00001DD0; // type:function size:0x104 -fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x34 -fn_1_1F08 = .text:0x00001F08; // type:function size:0x6C -fn_1_1F74 = .text:0x00001F74; // type:function size:0x3F0 -fn_1_2364 = .text:0x00002364; // type:function size:0x64 -fn_1_23C8 = .text:0x000023C8; // type:function size:0xE0 -fn_1_24A8 = .text:0x000024A8; // type:function size:0x32C -fn_1_27D4 = .text:0x000027D4; // type:function size:0x3AC -fn_1_2B80 = .text:0x00002B80; // type:function size:0x30 -fn_1_2BB0 = .text:0x00002BB0; // type:function size:0x1C -fn_1_2BCC = .text:0x00002BCC; // type:function size:0x18C -fn_1_2D58 = .text:0x00002D58; // type:function size:0x8 -fn_1_2D60 = .text:0x00002D60; // type:function size:0x8 -fn_1_2D68 = .text:0x00002D68; // type:function size:0x8 -fn_1_2D70 = .text:0x00002D70; // type:function size:0x8 -fn_1_2D78 = .text:0x00002D78; // type:function size:0xC -fn_1_2D84 = .text:0x00002D84; // type:function size:0x60 -fn_1_2DE4 = .text:0x00002DE4; // type:function size:0xB90 -fn_1_3974 = .text:0x00003974; // type:function size:0x31C -fn_1_3C90 = .text:0x00003C90; // type:function size:0xD8 -fn_1_3D68 = .text:0x00003D68; // type:function size:0x114 -fn_1_3E7C = .text:0x00003E7C; // type:function size:0xB8 -fn_1_3F34 = .text:0x00003F34; // type:function size:0xA0 -fn_1_3FD4 = .text:0x00003FD4; // type:function size:0x9C -fn_1_4070 = .text:0x00004070; // type:function size:0xE18 -fn_1_4E88 = .text:0x00004E88; // type:function size:0x250 -fn_1_50D8 = .text:0x000050D8; // type:function size:0x10 -fn_1_50E8 = .text:0x000050E8; // type:function size:0x10 -fn_1_50F8 = .text:0x000050F8; // type:function size:0x400 -fn_1_54F8 = .text:0x000054F8; // type:function size:0x7C -fn_1_5574 = .text:0x00005574; // type:function size:0x5C -fn_1_55D0 = .text:0x000055D0; // type:function size:0xA4 -fn_1_5674 = .text:0x00005674; // type:function size:0x748 -fn_1_5DBC = .text:0x00005DBC; // type:function size:0xCC -fn_1_5E88 = .text:0x00005E88; // type:function size:0x658 -fn_1_64E0 = .text:0x000064E0; // type:function size:0x108 -fn_1_65E8 = .text:0x000065E8; // type:function size:0x38 -fn_1_6620 = .text:0x00006620; // type:function size:0x30 -fn_1_6650 = .text:0x00006650; // type:function size:0x3C -fn_1_668C = .text:0x0000668C; // type:function size:0xBC -fn_1_6748 = .text:0x00006748; // type:function size:0x260 -fn_1_69A8 = .text:0x000069A8; // type:function size:0xD0 -fn_1_6A78 = .text:0x00006A78; // type:function size:0xC8 -fn_1_6B40 = .text:0x00006B40; // type:function size:0xD8 -fn_1_6C18 = .text:0x00006C18; // type:function size:0x48 -fn_1_6C60 = .text:0x00006C60; // type:function size:0x7C -fn_1_6CDC = .text:0x00006CDC; // type:function size:0x3C -fn_1_6D18 = .text:0x00006D18; // type:function size:0x70 -fn_1_6D88 = .text:0x00006D88; // type:function size:0x714 -fn_1_749C = .text:0x0000749C; // type:function size:0x6A4 -fn_1_7B40 = .text:0x00007B40; // type:function size:0x84 -fn_1_7BC4 = .text:0x00007BC4; // type:function size:0x84 -fn_1_7C48 = .text:0x00007C48; // type:function size:0xA8 -fn_1_7CF0 = .text:0x00007CF0; // type:function size:0x3E0 -fn_1_80D0 = .text:0x000080D0; // type:function size:0x3E0 -fn_1_84B0 = .text:0x000084B0; // type:function size:0x6DC -fn_1_8B8C = .text:0x00008B8C; // type:function size:0x498 -fn_1_9024 = .text:0x00009024; // type:function size:0x64C -fn_1_9670 = .text:0x00009670; // type:function size:0x164 -fn_1_97D4 = .text:0x000097D4; // type:function size:0x380 -fn_1_9B54 = .text:0x00009B54; // type:function size:0x3A8 -fn_1_9EFC = .text:0x00009EFC; // type:function size:0x478 -fn_1_A374 = .text:0x0000A374; // type:function size:0xAC -fn_1_A420 = .text:0x0000A420; // type:function size:0x190 -fn_1_A5B0 = .text:0x0000A5B0; // type:function size:0x1CC -fn_1_A77C = .text:0x0000A77C; // type:function size:0x5C -fn_1_A7D8 = .text:0x0000A7D8; // type:function size:0x140 -fn_1_A918 = .text:0x0000A918; // type:function size:0x148 -fn_1_AA60 = .text:0x0000AA60; // type:function size:0xD8 -fn_1_AB38 = .text:0x0000AB38; // type:function size:0x48 -fn_1_AB80 = .text:0x0000AB80; // type:function size:0x188 -fn_1_AD08 = .text:0x0000AD08; // type:function size:0x2E98 -fn_1_DBA0 = .text:0x0000DBA0; // type:function size:0x4F8 -fn_1_E098 = .text:0x0000E098; // type:function size:0x90 -fn_1_E128 = .text:0x0000E128; // type:function size:0x30 -fn_1_E158 = .text:0x0000E158; // type:function size:0x114 -fn_1_E26C = .text:0x0000E26C; // type:function size:0x10C -fn_1_E378 = .text:0x0000E378; // type:function size:0xB0 -fn_1_E428 = .text:0x0000E428; // type:function size:0x18C -fn_1_E5B4 = .text:0x0000E5B4; // type:function size:0x314 -fn_1_E8C8 = .text:0x0000E8C8; // type:function size:0x138 -fn_1_EA00 = .text:0x0000EA00; // type:function size:0x11C -fn_1_EB1C = .text:0x0000EB1C; // type:function size:0x1E0 -fn_1_ECFC = .text:0x0000ECFC; // type:function size:0x3010 -fn_1_11D0C = .text:0x00011D0C; // type:function size:0x4D8 -fn_1_121E4 = .text:0x000121E4; // type:function size:0x30C -fn_1_124F0 = .text:0x000124F0; // type:function size:0x80 -fn_1_12570 = .text:0x00012570; // type:function size:0xC8 -fn_1_12638 = .text:0x00012638; // type:function size:0x294 -fn_1_128CC = .text:0x000128CC; // type:function size:0x100 -fn_1_129CC = .text:0x000129CC; // type:function size:0x164 -fn_1_12B30 = .text:0x00012B30; // type:function size:0x1F8 -fn_1_12D28 = .text:0x00012D28; // type:function size:0x4 -fn_1_12D2C = .text:0x00012D2C; // type:function size:0xE0 -fn_1_12E0C = .text:0x00012E0C; // type:function size:0x248 -fn_1_13054 = .text:0x00013054; // type:function size:0xD0 -fn_1_13124 = .text:0x00013124; // type:function size:0x3EC -fn_1_13510 = .text:0x00013510; // type:function size:0x1B4 -fn_1_136C4 = .text:0x000136C4; // type:function size:0x29C -fn_1_13960 = .text:0x00013960; // type:function size:0x19C -fn_1_13AFC = .text:0x00013AFC; // type:function size:0xC -fn_1_13B08 = .text:0x00013B08; // type:function size:0x38 -fn_1_13B40 = .text:0x00013B40; // type:function size:0x34 -fn_1_13B74 = .text:0x00013B74; // type:function size:0x364 -fn_1_13ED8 = .text:0x00013ED8; // type:function size:0x988 -fn_1_14860 = .text:0x00014860; // type:function size:0x110 -fn_1_14970 = .text:0x00014970; // type:function size:0xF8 -fn_1_14A68 = .text:0x00014A68; // type:function size:0x110 -fn_1_14B78 = .text:0x00014B78; // type:function size:0x60 -fn_1_14BD8 = .text:0x00014BD8; // type:function size:0xC0 -fn_1_14C98 = .text:0x00014C98; // type:function size:0x620 -fn_1_152B8 = .text:0x000152B8; // type:function size:0x840 -fn_1_15AF8 = .text:0x00015AF8; // type:function size:0x64 -fn_1_15B5C = .text:0x00015B5C; // type:function size:0x500 -fn_1_1605C = .text:0x0001605C; // type:function size:0x1D4 -fn_1_16230 = .text:0x00016230; // type:function size:0x94 -fn_1_162C4 = .text:0x000162C4; // type:function size:0x64 -fn_1_16328 = .text:0x00016328; // type:function size:0x598 -fn_1_168C0 = .text:0x000168C0; // type:function size:0x2B4 -fn_1_16B74 = .text:0x00016B74; // type:function size:0x130 -fn_1_16CA4 = .text:0x00016CA4; // type:function size:0x4D0 -fn_1_17174 = .text:0x00017174; // type:function size:0x19C -fn_1_17310 = .text:0x00017310; // type:function size:0x114 -fn_1_17424 = .text:0x00017424; // type:function size:0x4FC -fn_1_17920 = .text:0x00017920; // type:function size:0x24C -fn_1_17B6C = .text:0x00017B6C; // type:function size:0x868 -fn_1_183D4 = .text:0x000183D4; // type:function size:0x284 -fn_1_18658 = .text:0x00018658; // type:function size:0x888 -fn_1_18EE0 = .text:0x00018EE0; // type:function size:0x37C -fn_1_1925C = .text:0x0001925C; // type:function size:0xE4 -fn_1_19340 = .text:0x00019340; // type:function size:0xC0 -fn_1_19400 = .text:0x00019400; // type:function size:0x1FC -fn_1_195FC = .text:0x000195FC; // type:function size:0x14C -fn_1_19748 = .text:0x00019748; // type:function size:0x278 -fn_1_199C0 = .text:0x000199C0; // type:function size:0x208 -fn_1_19BC8 = .text:0x00019BC8; // type:function size:0xC8 -fn_1_19C90 = .text:0x00019C90; // type:function size:0x334 -fn_1_19FC4 = .text:0x00019FC4; // type:function size:0x4C -fn_1_1A010 = .text:0x0001A010; // type:function size:0x1BC -fn_1_1A1CC = .text:0x0001A1CC; // type:function size:0x1D4 -fn_1_1A3A0 = .text:0x0001A3A0; // type:function size:0x284 +fn_1_798 = .text:0x00000784; // type:function size:0x240 +fn_1_9EC = .text:0x000009C4; // type:function size:0x54 +fn_1_A40 = .text:0x00000A18; // type:function size:0x10C +fn_1_B4C = .text:0x00000B24; // type:function size:0x680 +fn_1_11F4 = .text:0x000011A4; // type:function size:0x15C +fn_1_1350 = .text:0x00001300; // type:function size:0x8C +fn_1_13DC = .text:0x0000138C; // type:function size:0x334 +fn_1_1710 = .text:0x000016C0; // type:function size:0x350 +fn_1_1A60 = .text:0x00001A10; // type:function size:0x2B8 +fn_1_1D18 = .text:0x00001CC8; // type:function size:0x58 +fn_1_1D70 = .text:0x00001D20; // type:function size:0xB0 +fn_1_1E20 = .text:0x00001DD0; // type:function size:0x104 +fn_1_1F24 = .text:0x00001ED4; // type:function size:0x34 +fn_1_1F58 = .text:0x00001F08; // type:function size:0x6C +fn_1_1FC4 = .text:0x00001F74; // type:function size:0x3F0 +fn_1_23B4 = .text:0x00002364; // type:function size:0x64 +fn_1_2418 = .text:0x000023C8; // type:function size:0xE0 +fn_1_24F8 = .text:0x000024A8; // type:function size:0x32C +fn_1_2824 = .text:0x000027D4; // type:function size:0x3AC +fn_1_2BD0 = .text:0x00002B80; // type:function size:0x30 +fn_1_2C00 = .text:0x00002BB0; // type:function size:0x1C +fn_1_2C1C = .text:0x00002BCC; // type:function size:0x18C +fn_1_2DA8 = .text:0x00002D58; // type:function size:0x8 +fn_1_2DB0 = .text:0x00002D60; // type:function size:0x8 +fn_1_2DB8 = .text:0x00002D68; // type:function size:0x8 +fn_1_2DC0 = .text:0x00002D70; // type:function size:0x8 +fn_1_2DC8 = .text:0x00002D78; // type:function size:0xC +fn_1_2DD4 = .text:0x00002D84; // type:function size:0x60 +fn_1_2E34 = .text:0x00002DE4; // type:function size:0xB90 +fn_1_39C4 = .text:0x00003974; // type:function size:0x31C +fn_1_3CE0 = .text:0x00003C90; // type:function size:0xD8 +fn_1_3DB8 = .text:0x00003D68; // type:function size:0x114 +fn_1_3ECC = .text:0x00003E7C; // type:function size:0xB8 +fn_1_3F84 = .text:0x00003F34; // type:function size:0xA0 +fn_1_4024 = .text:0x00003FD4; // type:function size:0x9C +fn_1_40C0 = .text:0x00004070; // type:function size:0xE18 +fn_1_4ED8 = .text:0x00004E88; // type:function size:0x250 +fn_1_5128 = .text:0x000050D8; // type:function size:0x10 +fn_1_5138 = .text:0x000050E8; // type:function size:0x10 +fn_1_5148 = .text:0x000050F8; // type:function size:0x400 +fn_1_5548 = .text:0x000054F8; // type:function size:0x7C +fn_1_55C4 = .text:0x00005574; // type:function size:0x5C +fn_1_5620 = .text:0x000055D0; // type:function size:0xA4 +fn_1_56C4 = .text:0x00005674; // type:function size:0x748 +fn_1_5E0C = .text:0x00005DBC; // type:function size:0xCC +fn_1_5ED8 = .text:0x00005E88; // type:function size:0x658 +fn_1_6530 = .text:0x000064E0; // type:function size:0x108 +fn_1_6638 = .text:0x000065E8; // type:function size:0x38 +fn_1_6670 = .text:0x00006620; // type:function size:0x30 +fn_1_66A0 = .text:0x00006650; // type:function size:0x3C +fn_1_66DC = .text:0x0000668C; // type:function size:0xBC +fn_1_6798 = .text:0x00006748; // type:function size:0x260 +fn_1_69F8 = .text:0x000069A8; // type:function size:0xD0 +fn_1_6AC8 = .text:0x00006A78; // type:function size:0xC8 +fn_1_6B90 = .text:0x00006B40; // type:function size:0xD8 +fn_1_6C68 = .text:0x00006C18; // type:function size:0x48 +fn_1_6CB0 = .text:0x00006C60; // type:function size:0x7C +fn_1_6D2C = .text:0x00006CDC; // type:function size:0x3C +fn_1_6D68 = .text:0x00006D18; // type:function size:0x70 +fn_1_6DD8 = .text:0x00006D88; // type:function size:0x714 +fn_1_74EC = .text:0x0000749C; // type:function size:0x6A4 +fn_1_7B90 = .text:0x00007B40; // type:function size:0x84 +fn_1_7C14 = .text:0x00007BC4; // type:function size:0x84 +fn_1_7C98 = .text:0x00007C48; // type:function size:0xA8 +fn_1_7D40 = .text:0x00007CF0; // type:function size:0x3E0 +fn_1_8120 = .text:0x000080D0; // type:function size:0x3E0 +fn_1_8500 = .text:0x000084B0; // type:function size:0x6DC +fn_1_8BDC = .text:0x00008B8C; // type:function size:0x498 +fn_1_9074 = .text:0x00009024; // type:function size:0x64C +fn_1_96C0 = .text:0x00009670; // type:function size:0x164 +fn_1_9824 = .text:0x000097D4; // type:function size:0x380 +fn_1_9BA4 = .text:0x00009B54; // type:function size:0x3A8 +fn_1_9F4C = .text:0x00009EFC; // type:function size:0x478 +fn_1_A3C4 = .text:0x0000A374; // type:function size:0xAC +fn_1_A470 = .text:0x0000A420; // type:function size:0x190 +fn_1_A600 = .text:0x0000A5B0; // type:function size:0x1CC +fn_1_A7CC = .text:0x0000A77C; // type:function size:0x5C +fn_1_A828 = .text:0x0000A7D8; // type:function size:0x140 +fn_1_A968 = .text:0x0000A918; // type:function size:0x148 +fn_1_AAB0 = .text:0x0000AA60; // type:function size:0xD8 +fn_1_AB88 = .text:0x0000AB38; // type:function size:0x48 +fn_1_ABD0 = .text:0x0000AB80; // type:function size:0x188 +fn_1_AD58 = .text:0x0000AD08; // type:function size:0x2E98 +fn_1_DBF0 = .text:0x0000DBA0; // type:function size:0x4F8 +fn_1_E0E8 = .text:0x0000E098; // type:function size:0x90 +fn_1_E178 = .text:0x0000E128; // type:function size:0x30 +fn_1_E1A8 = .text:0x0000E158; // type:function size:0x114 +fn_1_E2BC = .text:0x0000E26C; // type:function size:0x10C +fn_1_E3C8 = .text:0x0000E378; // type:function size:0xB0 +fn_1_E478 = .text:0x0000E428; // type:function size:0x18C +fn_1_E604 = .text:0x0000E5B4; // type:function size:0x314 +fn_1_E918 = .text:0x0000E8C8; // type:function size:0x138 +fn_1_EA50 = .text:0x0000EA00; // type:function size:0x11C +fn_1_EB6C = .text:0x0000EB1C; // type:function size:0x1E0 +fn_1_ED4C = .text:0x0000ECFC; // type:function size:0x3010 +fn_1_11D5C = .text:0x00011D0C; // type:function size:0x4D8 +fn_1_12234 = .text:0x000121E4; // type:function size:0x30C +fn_1_12540 = .text:0x000124F0; // type:function size:0x80 +fn_1_125C0 = .text:0x00012570; // type:function size:0xC8 +fn_1_12688 = .text:0x00012638; // type:function size:0x294 +fn_1_1291C = .text:0x000128CC; // type:function size:0x100 +fn_1_12A1C = .text:0x000129CC; // type:function size:0x164 +fn_1_12B80 = .text:0x00012B30; // type:function size:0x1F8 +fn_1_12D78 = .text:0x00012D28; // type:function size:0x4 +fn_1_12D7C = .text:0x00012D2C; // type:function size:0xE0 +fn_1_12E5C = .text:0x00012E0C; // type:function size:0x248 +fn_1_130A4 = .text:0x00013054; // type:function size:0xD0 +fn_1_13174 = .text:0x00013124; // type:function size:0x3EC +fn_1_13560 = .text:0x00013510; // type:function size:0x1B4 +fn_1_13714 = .text:0x000136C4; // type:function size:0x29C +fn_1_139B0 = .text:0x00013960; // type:function size:0x19C +fn_1_13B4C = .text:0x00013AFC; // type:function size:0xC +fn_1_13B58 = .text:0x00013B08; // type:function size:0x38 +fn_1_13B90 = .text:0x00013B40; // type:function size:0x34 +fn_1_13BC4 = .text:0x00013B74; // type:function size:0x364 +fn_1_13F28 = .text:0x00013ED8; // type:function size:0x988 +fn_1_148B0 = .text:0x00014860; // type:function size:0x110 +fn_1_149C0 = .text:0x00014970; // type:function size:0xF8 +fn_1_14AB8 = .text:0x00014A68; // type:function size:0x110 +fn_1_14BC8 = .text:0x00014B78; // type:function size:0x60 +fn_1_14C28 = .text:0x00014BD8; // type:function size:0xC0 +fn_1_14CE8 = .text:0x00014C98; // type:function size:0x620 +fn_1_15308 = .text:0x000152B8; // type:function size:0x840 +fn_1_15B48 = .text:0x00015AF8; // type:function size:0x64 +fn_1_15BAC = .text:0x00015B5C; // type:function size:0x500 +fn_1_160AC = .text:0x0001605C; // type:function size:0x1D4 +fn_1_16280 = .text:0x00016230; // type:function size:0x94 +fn_1_16314 = .text:0x000162C4; // type:function size:0x64 +fn_1_16378 = .text:0x00016328; // type:function size:0x598 +fn_1_16910 = .text:0x000168C0; // type:function size:0x2B4 +fn_1_16BC4 = .text:0x00016B74; // type:function size:0x130 +fn_1_16CF4 = .text:0x00016CA4; // type:function size:0x4D0 +fn_1_171C4 = .text:0x00017174; // type:function size:0x19C +fn_1_17360 = .text:0x00017310; // type:function size:0x114 +fn_1_17474 = .text:0x00017424; // type:function size:0x4FC +fn_1_17970 = .text:0x00017920; // type:function size:0x24C +fn_1_17BBC = .text:0x00017B6C; // type:function size:0x868 +fn_1_18424 = .text:0x000183D4; // type:function size:0x284 +fn_1_186A8 = .text:0x00018658; // type:function size:0x888 +fn_1_18F30 = .text:0x00018EE0; // type:function size:0x37C +fn_1_192AC = .text:0x0001925C; // type:function size:0xE4 +fn_1_19390 = .text:0x00019340; // type:function size:0xC0 +fn_1_19450 = .text:0x00019400; // type:function size:0x1FC +fn_1_1964C = .text:0x000195FC; // type:function size:0x14C +fn_1_19798 = .text:0x00019748; // type:function size:0x278 +fn_1_19A10 = .text:0x000199C0; // type:function size:0x208 +fn_1_19C18 = .text:0x00019BC8; // type:function size:0xC8 +fn_1_19CE0 = .text:0x00019C90; // type:function size:0x334 +fn_1_1A014 = .text:0x00019FC4; // type:function size:0x4C +fn_1_1A060 = .text:0x0001A010; // type:function size:0x1BC +fn_1_1A21C = .text:0x0001A1CC; // type:function size:0x1D4 +fn_1_1A3F0 = .text:0x0001A3A0; // type:function size:0x284 _prolog = .text:0x0001A624; // type:function size:0x54 scope:global _epilog = .text:0x0001A678; // type:function size:0x4C scope:global -fn_1_1A6C4 = .text:0x0001A6C4; // type:function size:0x22C -fn_1_1A8F0 = .text:0x0001A8F0; // type:function size:0x784 -fn_1_1B074 = .text:0x0001B074; // type:function size:0x94 -fn_1_1B108 = .text:0x0001B108; // type:function size:0x154 -fn_1_1B25C = .text:0x0001B25C; // type:function size:0x21C -fn_1_1B478 = .text:0x0001B478; // type:function size:0x48 -fn_1_1B4C0 = .text:0x0001B4C0; // type:function size:0x134 -fn_1_1B5F4 = .text:0x0001B5F4; // type:function size:0x1EC -fn_1_1B7E0 = .text:0x0001B7E0; // type:function size:0x830 -fn_1_1C010 = .text:0x0001C010; // type:function size:0x274 -fn_1_1C284 = .text:0x0001C284; // type:function size:0xC8 -fn_1_1C34C = .text:0x0001C34C; // type:function size:0x98 -fn_1_1C3E4 = .text:0x0001C3E4; // type:function size:0x2B0 -fn_1_1C694 = .text:0x0001C694; // type:function size:0x98 -fn_1_1C72C = .text:0x0001C72C; // type:function size:0x11C -fn_1_1C848 = .text:0x0001C848; // type:function size:0x18B8 -fn_1_1E100 = .text:0x0001E100; // type:function size:0x1F6C -fn_1_2006C = .text:0x0002006C; // type:function size:0xB4 -fn_1_20120 = .text:0x00020120; // type:function size:0x31C0 -fn_1_232E0 = .text:0x000232E0; // type:function size:0x440 -fn_1_23720 = .text:0x00023720; // type:function size:0x530 -fn_1_23C50 = .text:0x00023C50; // type:function size:0x980 -fn_1_245D0 = .text:0x000245D0; // type:function size:0x4A08 -fn_1_28FD8 = .text:0x00028FD8; // type:function size:0x8C0 -fn_1_29898 = .text:0x00029898; // type:function size:0xD0 +fn_1_1A714 = .text:0x0001A6C4; // type:function size:0x22C +fn_1_1A940 = .text:0x0001A8F0; // type:function size:0x784 +fn_1_1B0C4 = .text:0x0001B074; // type:function size:0x94 +fn_1_1B158 = .text:0x0001B108; // type:function size:0x154 +fn_1_1B2AC = .text:0x0001B25C; // type:function size:0x21C +fn_1_1B4C8 = .text:0x0001B478; // type:function size:0x48 +fn_1_1B510 = .text:0x0001B4C0; // type:function size:0x134 +fn_1_1B644 = .text:0x0001B5F4; // type:function size:0x1EC +fn_1_1B830 = .text:0x0001B7E0; // type:function size:0x830 +fn_1_1C060 = .text:0x0001C010; // type:function size:0x274 +fn_1_1C2D4 = .text:0x0001C284; // type:function size:0xC8 +fn_1_1C39C = .text:0x0001C34C; // type:function size:0x98 +fn_1_1C434 = .text:0x0001C3E4; // type:function size:0x2B0 +fn_1_1C6E4 = .text:0x0001C694; // type:function size:0x98 +fn_1_1C77C = .text:0x0001C72C; // type:function size:0x11C +fn_1_1C898 = .text:0x0001C848; // type:function size:0x18B8 +fn_1_1E150 = .text:0x0001E100; // type:function size:0x1F6C +fn_1_200BC = .text:0x0002006C; // type:function size:0xB4 +fn_1_20170 = .text:0x00020120; // type:function size:0x31C0 +fn_1_23330 = .text:0x000232E0; // type:function size:0x440 +fn_1_23770 = .text:0x00023720; // type:function size:0x530 +fn_1_23CA0 = .text:0x00023C50; // type:function size:0x980 +fn_1_24620 = .text:0x000245D0; // type:function size:0x4A08 +ObjectSetup = .text:0x00028FD8; // type:function size:0x8C0 +fn_1_298EC = .text:0x00029898; // type:function size:0xD0 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x1 data:byte -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:4byte -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x58 -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:4byte -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x58 -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:4byte -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x8 data:4byte -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:4byte -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x58 scope:local +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x58 scope:local +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 -lbl_1_data_80 = .data:0x00000080; // type:object size:0x1F data:string -lbl_1_data_9F = .data:0x0000009F; // type:object size:0xD +lbl_1_data_80 = .data:0x00000080; // type:object size:0x1F scope:local data:string +lbl_1_data_9F = .data:0x0000009F; // type:object size:0xC data:byte lbl_1_data_AC = .data:0x000000AC; // type:object size:0x8 lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4C lbl_1_data_100 = .data:0x00000100; // type:object size:0x14 -lbl_1_data_114 = .data:0x00000114; // type:object size:0x3C -lbl_1_data_150 = .data:0x00000150; // type:object size:0x3C -lbl_1_data_18C = .data:0x0000018C; // type:object size:0x20 -lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x20 -lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x10 -lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x28 -lbl_1_data_204 = .data:0x00000204; // type:object size:0x30 -lbl_1_data_234 = .data:0x00000234; // type:object size:0x20 -lbl_1_data_254 = .data:0x00000254; // type:object size:0x14 -lbl_1_data_268 = .data:0x00000268; // type:object size:0x14 -lbl_1_data_27C = .data:0x0000027C; // type:object size:0x14 -lbl_1_data_290 = .data:0x00000290; // type:object size:0x14 -lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x12 data:string -lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x13 data:string -lbl_1_data_2C9 = .data:0x000002C9; // type:object size:0x14 data:string -lbl_1_data_2DD = .data:0x000002DD; // type:object size:0x1C data:string -lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0x12 data:string -lbl_1_data_30B = .data:0x0000030B; // type:object size:0x11 +lbl_1_data_114 = .data:0x00000114; // type:object size:0x3C data:4byte +lbl_1_data_150 = .data:0x00000150; // type:object size:0x3C data:4byte +lbl_1_data_18C = .data:0x0000018C; // type:object size:0x20 data:4byte +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x20 data:4byte +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x10 data:4byte +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x28 data:float +lbl_1_data_204 = .data:0x00000204; // type:object size:0x30 data:float +lbl_1_data_234 = .data:0x00000234; // type:object size:0x20 data:float +lbl_1_data_254 = .data:0x00000254; // type:object size:0x14 data:float +lbl_1_data_268 = .data:0x00000268; // type:object size:0x14 data:float +lbl_1_data_27C = .data:0x0000027C; // type:object size:0x14 data:float +lbl_1_data_290 = .data:0x00000290; // type:object size:0x14 data:float +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x12 scope:local data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x13 scope:local data:string +lbl_1_data_2C9 = .data:0x000002C9; // type:object size:0x14 scope:local data:string +lbl_1_data_2DD = .data:0x000002DD; // type:object size:0x1C scope:local data:string +lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0x12 scope:local data:string +lbl_1_data_30B = .data:0x0000030B; // type:object size:0xE scope:local data:string jumptable_1_data_31C = .data:0x0000031C; // type:object size:0x60 scope:local -lbl_1_data_37C = .data:0x0000037C; // type:object size:0x12 data:string -lbl_1_data_38E = .data:0x0000038E; // type:object size:0x12 data:string -lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x13 data:string -lbl_1_data_3B3 = .data:0x000003B3; // type:object size:0x14 data:string -lbl_1_data_3C7 = .data:0x000003C7; // type:object size:0x14 data:string -lbl_1_data_3DB = .data:0x000003DB; // type:object size:0x13 data:string -lbl_1_data_3EE = .data:0x000003EE; // type:object size:0x1E +lbl_1_data_37C = .data:0x0000037C; // type:object size:0x12 scope:local data:string +lbl_1_data_38E = .data:0x0000038E; // type:object size:0x12 scope:local data:string +lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x13 scope:local data:string +lbl_1_data_3B3 = .data:0x000003B3; // type:object size:0x14 scope:local data:string +lbl_1_data_3C7 = .data:0x000003C7; // type:object size:0x14 scope:local data:string +lbl_1_data_3DB = .data:0x000003DB; // type:object size:0x13 scope:local data:string +lbl_1_data_3EE = .data:0x000003EE; // type:object size:0x1C scope:local data:string jumptable_1_data_40C = .data:0x0000040C; // type:object size:0x44 scope:local -lbl_1_data_450 = .data:0x00000450; // type:object size:0x14 +lbl_1_data_450 = .data:0x00000450; // type:object size:0x12 scope:local data:string lbl_1_data_464 = .data:0x00000464; // type:object size:0xC data:4byte lbl_1_data_470 = .data:0x00000470; // type:object size:0xC lbl_1_data_47C = .data:0x0000047C; // type:object size:0xC data:4byte lbl_1_data_488 = .data:0x00000488; // type:object size:0xC data:4byte lbl_1_data_494 = .data:0x00000494; // type:object size:0xC data:4byte -lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0xC data:4byte +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0xC data:float lbl_1_data_4AC = .data:0x000004AC; // type:object size:0xC data:4byte lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0xC data:4byte lbl_1_data_4C4 = .data:0x000004C4; // type:object size:0xC data:4byte @@ -393,41 +397,41 @@ lbl_1_data_500 = .data:0x00000500; // type:object size:0x4 lbl_1_data_504 = .data:0x00000504; // type:object size:0xC lbl_1_data_510 = .data:0x00000510; // type:object size:0xC lbl_1_data_51C = .data:0x0000051C; // type:object size:0x30 -lbl_1_data_54C = .data:0x0000054C; // type:object size:0x10 data:string -lbl_1_data_55C = .data:0x0000055C; // type:object size:0x10 data:string -lbl_1_data_56C = .data:0x0000056C; // type:object size:0x10 data:string -lbl_1_data_57C = .data:0x0000057C; // type:object size:0x10 data:string -lbl_1_data_58C = .data:0x0000058C; // type:object size:0x10 data:string -lbl_1_data_59C = .data:0x0000059C; // type:object size:0x10 data:string -lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x10 data:string -lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x10 data:string +lbl_1_data_54C = .data:0x0000054C; // type:object size:0x10 scope:local data:string +lbl_1_data_55C = .data:0x0000055C; // type:object size:0x10 scope:local data:string +lbl_1_data_56C = .data:0x0000056C; // type:object size:0x10 scope:local data:string +lbl_1_data_57C = .data:0x0000057C; // type:object size:0x10 scope:local data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x10 scope:local data:string +lbl_1_data_59C = .data:0x0000059C; // type:object size:0x10 scope:local data:string +lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x10 scope:local data:string +lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x10 scope:local data:string lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x80 lbl_1_data_64C = .data:0x0000064C; // type:object size:0x2E0 lbl_1_data_92C = .data:0x0000092C; // type:object size:0x20 -lbl_1_data_94C = .data:0x0000094C; // type:object size:0xA0 +lbl_1_data_94C = .data:0x0000094C; // type:object size:0xA0 data:float lbl_1_data_9EC = .data:0x000009EC; // type:object size:0x20 lbl_1_data_A0C = .data:0x00000A0C; // type:object size:0x38 data:4byte -lbl_1_data_A44 = .data:0x00000A44; // type:object size:0x13 data:string -lbl_1_data_A57 = .data:0x00000A57; // type:object size:0x13 data:string -lbl_1_data_A6A = .data:0x00000A6A; // type:object size:0x16 +lbl_1_data_A44 = .data:0x00000A44; // type:object size:0x13 scope:local data:string +lbl_1_data_A57 = .data:0x00000A57; // type:object size:0x13 scope:local data:string +lbl_1_data_A6A = .data:0x00000A6A; // type:object size:0x13 scope:local data:string lbl_1_data_A80 = .data:0x00000A80; // type:object size:0x18C -lbl_1_data_C0C = .data:0x00000C0C; // type:object size:0x13 data:string -lbl_1_data_C1F = .data:0x00000C1F; // type:object size:0x13 data:string -lbl_1_data_C32 = .data:0x00000C32; // type:object size:0x13 data:string -lbl_1_data_C45 = .data:0x00000C45; // type:object size:0x13 data:string +lbl_1_data_C0C = .data:0x00000C0C; // type:object size:0x13 scope:local data:string +lbl_1_data_C1F = .data:0x00000C1F; // type:object size:0x13 scope:local data:string +lbl_1_data_C32 = .data:0x00000C32; // type:object size:0x13 scope:local data:string +lbl_1_data_C45 = .data:0x00000C45; // type:object size:0x13 scope:local data:string lbl_1_data_C58 = .data:0x00000C58; // type:object size:0x1B8 -lbl_1_data_E10 = .data:0x00000E10; // type:object size:0x11 data:string -lbl_1_data_E21 = .data:0x00000E21; // type:object size:0x11 data:string -lbl_1_data_E32 = .data:0x00000E32; // type:object size:0x11 data:string -lbl_1_data_E43 = .data:0x00000E43; // type:object size:0x11 data:string -lbl_1_data_E54 = .data:0x00000E54; // type:object size:0x14 +lbl_1_data_E10 = .data:0x00000E10; // type:object size:0x11 scope:local data:string +lbl_1_data_E21 = .data:0x00000E21; // type:object size:0x11 scope:local data:string +lbl_1_data_E32 = .data:0x00000E32; // type:object size:0x11 scope:local data:string +lbl_1_data_E43 = .data:0x00000E43; // type:object size:0x11 scope:local data:string +lbl_1_data_E54 = .data:0x00000E54; // type:object size:0x11 scope:local data:string lbl_1_data_E68 = .data:0x00000E68; // type:object size:0x14 lbl_1_data_E7C = .data:0x00000E7C; // type:object size:0x84 lbl_1_data_F00 = .data:0x00000F00; // type:object size:0x5C lbl_1_data_F5C = .data:0x00000F5C; // type:object size:0x10 lbl_1_data_F6C = .data:0x00000F6C; // type:object size:0x18 -lbl_1_data_F84 = .data:0x00000F84; // type:object size:0x14 -lbl_1_data_F98 = .data:0x00000F98; // type:object size:0x14 +lbl_1_data_F84 = .data:0x00000F84; // type:object size:0x14 data:float +lbl_1_data_F98 = .data:0x00000F98; // type:object size:0x14 data:float lbl_1_data_FAC = .data:0x00000FAC; // type:object size:0x18 lbl_1_data_FC4 = .data:0x00000FC4; // type:object size:0x14 lbl_1_data_FD8 = .data:0x00000FD8; // type:object size:0x14 @@ -451,47 +455,47 @@ lbl_1_data_1210 = .data:0x00001210; // type:object size:0xC lbl_1_data_121C = .data:0x0000121C; // type:object size:0xC lbl_1_data_1228 = .data:0x00001228; // type:object size:0xC lbl_1_data_1234 = .data:0x00001234; // type:object size:0x20 -lbl_1_data_1254 = .data:0x00001254; // type:object size:0x13 data:string -lbl_1_data_1267 = .data:0x00001267; // type:object size:0x13 data:string -lbl_1_data_127A = .data:0x0000127A; // type:object size:0x13 data:string -lbl_1_data_128D = .data:0x0000128D; // type:object size:0x13 data:string +lbl_1_data_1254 = .data:0x00001254; // type:object size:0x13 scope:local data:string +lbl_1_data_1267 = .data:0x00001267; // type:object size:0x13 scope:local data:string +lbl_1_data_127A = .data:0x0000127A; // type:object size:0x13 scope:local data:string +lbl_1_data_128D = .data:0x0000128D; // type:object size:0x13 scope:local data:string lbl_1_data_12A0 = .data:0x000012A0; // type:object size:0x10 -lbl_1_data_12B0 = .data:0x000012B0; // type:object size:0x13 data:string -lbl_1_data_12C3 = .data:0x000012C3; // type:object size:0x13 data:string -lbl_1_data_12D6 = .data:0x000012D6; // type:object size:0x13 data:string -lbl_1_data_12E9 = .data:0x000012E9; // type:object size:0x13 data:string -lbl_1_data_12FC = .data:0x000012FC; // type:object size:0x13 data:string -lbl_1_data_130F = .data:0x0000130F; // type:object size:0x13 data:string -lbl_1_data_1322 = .data:0x00001322; // type:object size:0x13 data:string -lbl_1_data_1335 = .data:0x00001335; // type:object size:0x13 data:string -lbl_1_data_1348 = .data:0x00001348; // type:object size:0x14 +lbl_1_data_12B0 = .data:0x000012B0; // type:object size:0x13 scope:local data:string +lbl_1_data_12C3 = .data:0x000012C3; // type:object size:0x13 scope:local data:string +lbl_1_data_12D6 = .data:0x000012D6; // type:object size:0x13 scope:local data:string +lbl_1_data_12E9 = .data:0x000012E9; // type:object size:0x13 scope:local data:string +lbl_1_data_12FC = .data:0x000012FC; // type:object size:0x13 scope:local data:string +lbl_1_data_130F = .data:0x0000130F; // type:object size:0x13 scope:local data:string +lbl_1_data_1322 = .data:0x00001322; // type:object size:0x13 scope:local data:string +lbl_1_data_1335 = .data:0x00001335; // type:object size:0x13 scope:local data:string +lbl_1_data_1348 = .data:0x00001348; // type:object size:0x13 scope:local data:string lbl_1_data_135C = .data:0x0000135C; // type:object size:0x24 lbl_1_data_1380 = .data:0x00001380; // type:object size:0x38 data:4byte lbl_1_data_13B8 = .data:0x000013B8; // type:object size:0x38 data:4byte -lbl_1_data_13F0 = .data:0x000013F0; // type:object size:0x13 data:string -lbl_1_data_1403 = .data:0x00001403; // type:object size:0x13 data:string -lbl_1_data_1416 = .data:0x00001416; // type:object size:0x13 data:string -lbl_1_data_1429 = .data:0x00001429; // type:object size:0x13 data:string -lbl_1_data_143C = .data:0x0000143C; // type:object size:0x14 +lbl_1_data_13F0 = .data:0x000013F0; // type:object size:0x13 scope:local data:string +lbl_1_data_1403 = .data:0x00001403; // type:object size:0x13 scope:local data:string +lbl_1_data_1416 = .data:0x00001416; // type:object size:0x13 scope:local data:string +lbl_1_data_1429 = .data:0x00001429; // type:object size:0x13 scope:local data:string +lbl_1_data_143C = .data:0x0000143C; // type:object size:0x13 scope:local data:string lbl_1_data_1450 = .data:0x00001450; // type:object size:0xB4 lbl_1_data_1504 = .data:0x00001504; // type:object size:0x50 -lbl_1_data_1554 = .data:0x00001554; // type:object size:0x13 data:string -lbl_1_data_1567 = .data:0x00001567; // type:object size:0x13 data:string -lbl_1_data_157A = .data:0x0000157A; // type:object size:0x13 data:string -lbl_1_data_158D = .data:0x0000158D; // type:object size:0x13 data:string -lbl_1_data_15A0 = .data:0x000015A0; // type:object size:0x13 data:string -lbl_1_data_15B3 = .data:0x000015B3; // type:object size:0x12 data:string -lbl_1_data_15C5 = .data:0x000015C5; // type:object size:0x25 data:string -lbl_1_data_15EA = .data:0x000015EA; // type:object size:0x22 data:string -lbl_1_data_160C = .data:0x0000160C; // type:object size:0x9 data:string -lbl_1_data_1615 = .data:0x00001615; // type:object size:0xA data:string -lbl_1_data_161F = .data:0x0000161F; // type:object size:0xE data:string -lbl_1_data_162D = .data:0x0000162D; // type:object size:0x6 data:string -lbl_1_data_1633 = .data:0x00001633; // type:object size:0x1D data:string +lbl_1_data_1554 = .data:0x00001554; // type:object size:0x13 scope:local data:string +lbl_1_data_1567 = .data:0x00001567; // type:object size:0x13 scope:local data:string +lbl_1_data_157A = .data:0x0000157A; // type:object size:0x13 scope:local data:string +lbl_1_data_158D = .data:0x0000158D; // type:object size:0x13 scope:local data:string +lbl_1_data_15A0 = .data:0x000015A0; // type:object size:0x13 scope:local data:string +lbl_1_data_15B3 = .data:0x000015B3; // type:object size:0x12 scope:local data:string +lbl_1_data_15C5 = .data:0x000015C5; // type:object size:0x25 scope:local data:string +lbl_1_data_15EA = .data:0x000015EA; // type:object size:0x22 scope:local data:string +lbl_1_data_160C = .data:0x0000160C; // type:object size:0x9 scope:local data:string +lbl_1_data_1615 = .data:0x00001615; // type:object size:0xA scope:local data:string +lbl_1_data_161F = .data:0x0000161F; // type:object size:0xE scope:local data:string +lbl_1_data_162D = .data:0x0000162D; // type:object size:0x6 scope:local data:string +lbl_1_data_1633 = .data:0x00001633; // type:object size:0x1D scope:local data:string jumptable_1_data_1650 = .data:0x00001650; // type:object size:0x70 scope:local -lbl_1_data_16C0 = .data:0x000016C0; // type:object size:0x1C +lbl_1_data_16C0 = .data:0x000016C0; // type:object size:0x1B scope:local data:string jumptable_1_data_16DC = .data:0x000016DC; // type:object size:0xC4 scope:local -lbl_1_data_17A0 = .data:0x000017A0; // type:object size:0x24 data:string +lbl_1_data_17A0 = .data:0x000017A0; // type:object size:0x24 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte @@ -528,7 +532,8 @@ lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x4 data:4byte lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:4byte lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x4 data:float -lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x8 data:float +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x4 data:float +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4 data:float lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x4 data:4byte lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/option/splits.txt b/config/GMPP01_00/rels/option/splits.txt index 531cd645..0b7d9789 100644 --- a/config/GMPP01_00/rels/option/splits.txt +++ b/config/GMPP01_00/rels/option/splits.txt @@ -5,3 +5,57 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/option/scene.c: + .text start:0x000000A0 end:0x000007F8 + .rodata start:0x00000000 end:0x00000028 + .bss start:0x00000000 end:0x00000010 + +REL/option/camera.c: + .text start:0x000007F8 end:0x000015A4 + .rodata start:0x00000028 end:0x000000A8 + .data start:0x00000000 end:0x00000068 + .bss start:0x00000010 end:0x00000018 + +REL/option/room.c: + .text start:0x000015A4 end:0x000021F8 + .rodata start:0x000000A8 end:0x000000E0 + .data start:0x00000068 end:0x00000098 + .bss start:0x00000018 end:0x00000020 + +REL/option/guide.c: + .text start:0x000021F8 end:0x00002E04 + .rodata start:0x000000E0 end:0x00000160 + .data start:0x00000098 end:0x000000A0 + .bss start:0x00000020 end:0x00000028 + +REL/option/state.c: + .text start:0x00002E04 end:0x00003158 + .rodata start:0x00000160 end:0x00000170 + .data start:0x000000A0 end:0x00000108 + .bss start:0x00000028 end:0x00000030 + +REL/option/rumble.c: + .text start:0x00003158 end:0x00004028 + .rodata start:0x00000170 end:0x000001A8 + .data start:0x00000108 end:0x00000118 + .bss start:0x00000030 end:0x00000038 + +REL/option/sound.c: + .text start:0x00004028 end:0x000080E4 + .rodata start:0x000001A8 end:0x000013C0 + .data start:0x00000118 end:0x00000210 + .bss start:0x00000038 end:0x00000040 + +REL/option/record.c: + .text start:0x000080E4 end:0x0000A3E8 + .rodata start:0x000013C0 end:0x000019C8 + .data start:0x00000210 end:0x00000254 + .bss start:0x00000040 end:0x00000044 + +REL/option/window.c: + .text start:0x0000A3E8 end:0x0000A948 + .rodata start:0x000019C8 end:0x000019E8 diff --git a/config/GMPP01_00/rels/option/symbols.txt b/config/GMPP01_00/rels/option/symbols.txt index 26d4655e..16625f3c 100644 --- a/config/GMPP01_00/rels/option/symbols.txt +++ b/config/GMPP01_00/rels/option/symbols.txt @@ -1,379 +1,381 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0xC0 -fn_1_160 = .text:0x00000160; // type:function size:0x110 -fn_1_270 = .text:0x00000270; // type:function size:0xE4 -fn_1_354 = .text:0x00000354; // type:function size:0x114 -fn_1_468 = .text:0x00000468; // type:function size:0xE8 -fn_1_550 = .text:0x00000550; // type:function size:0x34 -fn_1_584 = .text:0x00000584; // type:function size:0x34 -fn_1_5B8 = .text:0x000005B8; // type:function size:0x34 -fn_1_5EC = .text:0x000005EC; // type:function size:0xFC -fn_1_6E8 = .text:0x000006E8; // type:function size:0x110 -fn_1_7F8 = .text:0x000007F8; // type:function size:0x244 -fn_1_A3C = .text:0x00000A3C; // type:function size:0x30 -fn_1_A6C = .text:0x00000A6C; // type:function size:0x84 -fn_1_AF0 = .text:0x00000AF0; // type:function size:0x84 -fn_1_B74 = .text:0x00000B74; // type:function size:0x84 -fn_1_BF8 = .text:0x00000BF8; // type:function size:0x30 -fn_1_C28 = .text:0x00000C28; // type:function size:0x30 -fn_1_C58 = .text:0x00000C58; // type:function size:0x30 -fn_1_C88 = .text:0x00000C88; // type:function size:0x30 -fn_1_CB8 = .text:0x00000CB8; // type:function size:0x8C -fn_1_D44 = .text:0x00000D44; // type:function size:0x28 -fn_1_D6C = .text:0x00000D6C; // type:function size:0x578 -fn_1_12E4 = .text:0x000012E4; // type:function size:0x200 -fn_1_14E4 = .text:0x000014E4; // type:function size:0xC0 -fn_1_15A4 = .text:0x000015A4; // type:function size:0x1F4 -fn_1_1798 = .text:0x00001798; // type:function size:0xAC -fn_1_1844 = .text:0x00001844; // type:function size:0x1E8 -fn_1_1A2C = .text:0x00001A2C; // type:function size:0x44 -fn_1_1A70 = .text:0x00001A70; // type:function size:0x1C -fn_1_1A8C = .text:0x00001A8C; // type:function size:0x5FC -fn_1_2088 = .text:0x00002088; // type:function size:0x88 -fn_1_2110 = .text:0x00002110; // type:function size:0x34 -fn_1_2144 = .text:0x00002144; // type:function size:0x80 -fn_1_21C4 = .text:0x000021C4; // type:function size:0x34 -fn_1_21F8 = .text:0x000021F8; // type:function size:0x224 -fn_1_241C = .text:0x0000241C; // type:function size:0x8C -fn_1_24A8 = .text:0x000024A8; // type:function size:0x44 -fn_1_24EC = .text:0x000024EC; // type:function size:0x1C -fn_1_2508 = .text:0x00002508; // type:function size:0xA4 -fn_1_25AC = .text:0x000025AC; // type:function size:0x46C -fn_1_2A18 = .text:0x00002A18; // type:function size:0x2E8 -fn_1_2D00 = .text:0x00002D00; // type:function size:0x104 -fn_1_2E04 = .text:0x00002E04; // type:function size:0x148 -fn_1_2F4C = .text:0x00002F4C; // type:function size:0x64 -fn_1_2FB0 = .text:0x00002FB0; // type:function size:0x1A8 -fn_1_3158 = .text:0x00003158; // type:function size:0xD4 -fn_1_322C = .text:0x0000322C; // type:function size:0x64 -fn_1_3290 = .text:0x00003290; // type:function size:0x44 -fn_1_32D4 = .text:0x000032D4; // type:function size:0x1C -fn_1_32F0 = .text:0x000032F0; // type:function size:0x4BC -fn_1_37AC = .text:0x000037AC; // type:function size:0xBC -fn_1_3868 = .text:0x00003868; // type:function size:0x54 -fn_1_38BC = .text:0x000038BC; // type:function size:0xD0 -fn_1_398C = .text:0x0000398C; // type:function size:0x54 -fn_1_39E0 = .text:0x000039E0; // type:function size:0x128 -fn_1_3B08 = .text:0x00003B08; // type:function size:0x84 -fn_1_3B8C = .text:0x00003B8C; // type:function size:0x54 -fn_1_3BE0 = .text:0x00003BE0; // type:function size:0x8C -fn_1_3C6C = .text:0x00003C6C; // type:function size:0x94 -fn_1_3D00 = .text:0x00003D00; // type:function size:0x54 -fn_1_3D54 = .text:0x00003D54; // type:function size:0xC8 -fn_1_3E1C = .text:0x00003E1C; // type:function size:0xB4 -fn_1_3ED0 = .text:0x00003ED0; // type:function size:0x58 -fn_1_3F28 = .text:0x00003F28; // type:function size:0xAC -fn_1_3FD4 = .text:0x00003FD4; // type:function size:0x54 -fn_1_4028 = .text:0x00004028; // type:function size:0x2B4 -fn_1_42DC = .text:0x000042DC; // type:function size:0xAC -fn_1_4388 = .text:0x00004388; // type:function size:0x44 -fn_1_43CC = .text:0x000043CC; // type:function size:0x1C -fn_1_43E8 = .text:0x000043E8; // type:function size:0x270 -fn_1_4658 = .text:0x00004658; // type:function size:0x424 -fn_1_4A7C = .text:0x00004A7C; // type:function size:0x3D4 -fn_1_4E50 = .text:0x00004E50; // type:function size:0x93C -fn_1_578C = .text:0x0000578C; // type:function size:0x8B8 -fn_1_6044 = .text:0x00006044; // type:function size:0xF8 -fn_1_613C = .text:0x0000613C; // type:function size:0x64 -fn_1_61A0 = .text:0x000061A0; // type:function size:0xFC -fn_1_629C = .text:0x0000629C; // type:function size:0x54 -fn_1_62F0 = .text:0x000062F0; // type:function size:0xFC -fn_1_63EC = .text:0x000063EC; // type:function size:0x54 -fn_1_6440 = .text:0x00006440; // type:function size:0x94 -fn_1_64D4 = .text:0x000064D4; // type:function size:0x54 -fn_1_6528 = .text:0x00006528; // type:function size:0x118 -fn_1_6640 = .text:0x00006640; // type:function size:0x54 -fn_1_6694 = .text:0x00006694; // type:function size:0x38 -fn_1_66CC = .text:0x000066CC; // type:function size:0x38 -fn_1_6704 = .text:0x00006704; // type:function size:0xC4 -fn_1_67C8 = .text:0x000067C8; // type:function size:0x60 -fn_1_6828 = .text:0x00006828; // type:function size:0x1E4 -fn_1_6A0C = .text:0x00006A0C; // type:function size:0x74 -fn_1_6A80 = .text:0x00006A80; // type:function size:0x1DC -fn_1_6C5C = .text:0x00006C5C; // type:function size:0x74 -fn_1_6CD0 = .text:0x00006CD0; // type:function size:0x1D4 -fn_1_6EA4 = .text:0x00006EA4; // type:function size:0xA4 -fn_1_6F48 = .text:0x00006F48; // type:function size:0x1D4 -fn_1_711C = .text:0x0000711C; // type:function size:0xA4 -fn_1_71C0 = .text:0x000071C0; // type:function size:0xE8 -fn_1_72A8 = .text:0x000072A8; // type:function size:0x68 -fn_1_7310 = .text:0x00007310; // type:function size:0x400 -fn_1_7710 = .text:0x00007710; // type:function size:0x190 -fn_1_78A0 = .text:0x000078A0; // type:function size:0x60 -fn_1_7900 = .text:0x00007900; // type:function size:0x3C -fn_1_793C = .text:0x0000793C; // type:function size:0x5C4 -fn_1_7F00 = .text:0x00007F00; // type:function size:0x148 -fn_1_8048 = .text:0x00008048; // type:function size:0x9C -fn_1_80E4 = .text:0x000080E4; // type:function size:0x178 -fn_1_825C = .text:0x0000825C; // type:function size:0x54 -fn_1_82B0 = .text:0x000082B0; // type:function size:0x44 -fn_1_82F4 = .text:0x000082F4; // type:function size:0x1C -fn_1_8310 = .text:0x00008310; // type:function size:0x778 -fn_1_8A88 = .text:0x00008A88; // type:function size:0xD0 -fn_1_8B58 = .text:0x00008B58; // type:function size:0x54 -fn_1_8BAC = .text:0x00008BAC; // type:function size:0xD8 -fn_1_8C84 = .text:0x00008C84; // type:function size:0xFC -fn_1_8D80 = .text:0x00008D80; // type:function size:0x54 -fn_1_8DD4 = .text:0x00008DD4; // type:function size:0xC4 -fn_1_8E98 = .text:0x00008E98; // type:function size:0x60 -fn_1_8EF8 = .text:0x00008EF8; // type:function size:0x40 -fn_1_8F38 = .text:0x00008F38; // type:function size:0x72C -fn_1_9664 = .text:0x00009664; // type:function size:0x9C -fn_1_9700 = .text:0x00009700; // type:function size:0x344 -fn_1_9A44 = .text:0x00009A44; // type:function size:0x7C -fn_1_9AC0 = .text:0x00009AC0; // type:function size:0x88C -fn_1_A34C = .text:0x0000A34C; // type:function size:0x9C -fn_1_A3E8 = .text:0x0000A3E8; // type:function size:0x260 -fn_1_A648 = .text:0x0000A648; // type:function size:0x40 -fn_1_A688 = .text:0x0000A688; // type:function size:0x18 -fn_1_A6A0 = .text:0x0000A6A0; // type:function size:0x18 -fn_1_A6B8 = .text:0x0000A6B8; // type:function size:0x54 -fn_1_A70C = .text:0x0000A70C; // type:function size:0x40 -fn_1_A74C = .text:0x0000A74C; // type:function size:0x40 -fn_1_A78C = .text:0x0000A78C; // type:function size:0x38 -fn_1_A7C4 = .text:0x0000A7C4; // type:function size:0x38 -fn_1_A7FC = .text:0x0000A7FC; // type:function size:0x20 -fn_1_A81C = .text:0x0000A81C; // type:function size:0x24 -fn_1_A840 = .text:0x0000A840; // type:function size:0x108 +ObjectSetup = .text:0x000000A0; // type:function size:0xC0 +OptionFadeSprite = .text:0x00000160; // type:function size:0x110 +FadeSprite = .text:0x00000270; // type:function size:0xE4 scope:local +OptionFadeModel = .text:0x00000354; // type:function size:0x114 scope:local +FadeModel = .text:0x00000468; // type:function size:0xE8 scope:local +OptionPadCheck = .text:0x00000550; // type:function size:0x34 +OptionPadDStkRepCheck = .text:0x00000584; // type:function size:0x34 +OptionPadDStkCheck = .text:0x000005B8; // type:function size:0x34 +SceneMain = .text:0x000005EC; // type:function size:0xFC scope:local +KillScene = .text:0x000006E8; // type:function size:0x110 scope:local +OptionCameraCreate = .text:0x000007F8; // type:function size:0x244 +OptionCameraKill = .text:0x00000A3C; // type:function size:0x30 +OptionCameraTargetSet = .text:0x00000A6C; // type:function size:0x84 +OptionCameraFocusSet = .text:0x00000AF0; // type:function size:0x84 +OptionCameraViewSet = .text:0x00000B74; // type:function size:0x84 +OptionCameraZoomGet = .text:0x00000BF8; // type:function size:0x30 +OptionCameraRotGet = .text:0x00000C28; // type:function size:0x30 +OptionCameraPosGet = .text:0x00000C58; // type:function size:0x30 +OptionCameraTargetGet = .text:0x00000C88; // type:function size:0x30 +OptionCameraDoneCheck = .text:0x00000CB8; // type:function size:0x8C +ExecCameraObj = .text:0x00000D44; // type:function size:0x28 scope:local +ExecCamera = .text:0x00000D6C; // type:function size:0x578 scope:local +CameraExecDebug = .text:0x000012E4; // type:function size:0x200 scope:local +CameraPrintDebug = .text:0x000014E4; // type:function size:0xC0 scope:local +OptionRoomCreate = .text:0x000015A4; // type:function size:0x1F4 +OptionRoomKill = .text:0x00001798; // type:function size:0xAC +MoveOption = .text:0x00001844; // type:function size:0x1E8 scope:local +OptionRoomExecModeSet = .text:0x00001A2C; // type:function size:0x44 +OptionRoomExecModeGet = .text:0x00001A70; // type:function size:0x1C +ExecRoom = .text:0x00001A8C; // type:function size:0x5FC scope:local +CreateRoomBG = .text:0x00002088; // type:function size:0x88 scope:local +KillRoomBG = .text:0x00002110; // type:function size:0x34 scope:local +CreateArrow = .text:0x00002144; // type:function size:0x80 scope:local +KillArrow = .text:0x000021C4; // type:function size:0x34 scope:local +OptionGuideCreate = .text:0x000021F8; // type:function size:0x224 +OptionGuideKill = .text:0x0000241C; // type:function size:0x8C +SetExecMode = .text:0x000024A8; // type:function size:0x44 scope:local +GetExecMode = .text:0x000024EC; // type:function size:0x1C scope:local +OptionGuideWalkExec = .text:0x00002508; // type:function size:0xA4 +ExecGuide = .text:0x000025AC; // type:function size:0x46C scope:local +UpdateGuide = .text:0x00002A18; // type:function size:0x2E8 scope:local +LerpAngle = .text:0x00002D00; // type:function size:0x104 scope:local +OptionStateCreate = .text:0x00002E04; // type:function size:0x148 +OptionStateKill = .text:0x00002F4C; // type:function size:0x64 +ExecState = .text:0x00002FB0; // type:function size:0x1A8 scope:local +OptionRumbleCreate = .text:0x00003158; // type:function size:0xD4 +OptionRumbleKill = .text:0x0000322C; // type:function size:0x64 +OptionRumbleExecModeSet = .text:0x00003290; // type:function size:0x44 +OptionRumbleExecModeGet = .text:0x000032D4; // type:function size:0x1C +ExecRumble = .text:0x000032F0; // type:function size:0x4BC scope:local +CreateHand = .text:0x000037AC; // type:function size:0xBC scope:local +KillHand = .text:0x00003868; // type:function size:0x54 scope:local +CreateSystem = .text:0x000038BC; // type:function size:0xD0 scope:local +KillSystem = .text:0x0000398C; // type:function size:0x54 scope:local +StartSystemMotion = .text:0x000039E0; // type:function size:0x128 scope:local +CreatePad = .text:0x00003B08; // type:function size:0x84 scope:local +KillPad = .text:0x00003B8C; // type:function size:0x54 scope:local +ShakePad = .text:0x00003BE0; // type:function size:0x8C scope:local +CreatePadFilter = .text:0x00003C6C; // type:function size:0x94 scope:local +KillPadFilter = .text:0x00003D00; // type:function size:0x54 scope:local +OptionRumbleMotionShowStart = .text:0x00003D54; // type:function size:0xC8 +OptionRumbleMotionHideStart = .text:0x00003E1C; // type:function size:0xB4 +OptionRumbleMotionCheck = .text:0x00003ED0; // type:function size:0x58 +CreateHiliteOn = .text:0x00003F28; // type:function size:0xAC scope:local +KillHiliteOn = .text:0x00003FD4; // type:function size:0x54 scope:local +OptionSoundCreate = .text:0x00004028; // type:function size:0x2B4 +OptionSoundKill = .text:0x000042DC; // type:function size:0xAC +OptionSoundExecModeSet = .text:0x00004388; // type:function size:0x44 +OptionSoundExecModeGet = .text:0x000043CC; // type:function size:0x1C +ExecZoom = .text:0x000043E8; // type:function size:0x270 scope:local +ExecOptionSel = .text:0x00004658; // type:function size:0x424 scope:local +ExecOutputMode = .text:0x00004A7C; // type:function size:0x3D4 scope:local +ExecMusic = .text:0x00004E50; // type:function size:0x93C scope:local +ExecVoice = .text:0x0000578C; // type:function size:0x8B8 scope:local +LightSetCurr = .text:0x00006044; // type:function size:0xF8 scope:local +LightSetNone = .text:0x0000613C; // type:function size:0x64 scope:local +CreateHand = .text:0x000061A0; // type:function size:0xFC scope:local +KillHand = .text:0x0000629C; // type:function size:0x54 scope:local +CreateOutputModeHand = .text:0x000062F0; // type:function size:0xFC scope:local +KillOutputModeHand = .text:0x000063EC; // type:function size:0x54 scope:local +CreateSystem = .text:0x00006440; // type:function size:0x94 scope:local +KillSystem = .text:0x000064D4; // type:function size:0x54 scope:local +CreateLightObj = .text:0x00006528; // type:function size:0x118 scope:local +KillLightObj = .text:0x00006640; // type:function size:0x54 scope:local +LightDispOff = .text:0x00006694; // type:function size:0x38 scope:local +LightDispOn = .text:0x000066CC; // type:function size:0x38 scope:local +CreateSpr = .text:0x00006704; // type:function size:0xC4 scope:local +KillSpr = .text:0x000067C8; // type:function size:0x60 scope:local +OptionSelDisp = .text:0x00006828; // type:function size:0x1E4 scope:local +OptionSelHide = .text:0x00006A0C; // type:function size:0x74 scope:local +OutputModeDisp = .text:0x00006A80; // type:function size:0x1DC scope:local +OutputModeHide = .text:0x00006C5C; // type:function size:0x74 scope:local +MusicPageDisp = .text:0x00006CD0; // type:function size:0x1D4 scope:local +MusicPageHide = .text:0x00006EA4; // type:function size:0xA4 scope:local +VoicePageDisp = .text:0x00006F48; // type:function size:0x1D4 scope:local +VoicePageHide = .text:0x0000711C; // type:function size:0xA4 scope:local +CreateNoteObj = .text:0x000071C0; // type:function size:0xE8 scope:local +KillNote = .text:0x000072A8; // type:function size:0x68 scope:local +HandleNote = .text:0x00007310; // type:function size:0x400 scope:local +CreateNote = .text:0x00007710; // type:function size:0x190 scope:local +CreateNoteSpawner = .text:0x000078A0; // type:function size:0x60 scope:local +KillNoteSpawner = .text:0x00007900; // type:function size:0x3C scope:local +ExecNoteSpawner = .text:0x0000793C; // type:function size:0x5C4 scope:local +PlaySound = .text:0x00007F00; // type:function size:0x148 scope:local +FadeSound = .text:0x00008048; // type:function size:0x9C scope:local +OptionRecordCreate = .text:0x000080E4; // type:function size:0x178 +OptionRecordKill = .text:0x0000825C; // type:function size:0x54 +OptionRecordExecModeSet = .text:0x000082B0; // type:function size:0x44 +OptionRecordExecModeGet = .text:0x000082F4; // type:function size:0x1C +ExecRecord = .text:0x00008310; // type:function size:0x778 scope:local +CreateSystem = .text:0x00008A88; // type:function size:0xD0 scope:local +KillSystem = .text:0x00008B58; // type:function size:0x54 scope:local +StartSystemMotion = .text:0x00008BAC; // type:function size:0xD8 scope:local +CreateHand = .text:0x00008C84; // type:function size:0xFC scope:local +KillHand = .text:0x00008D80; // type:function size:0x54 scope:local +CreateSpr = .text:0x00008DD4; // type:function size:0xC4 scope:local +KillSpr = .text:0x00008E98; // type:function size:0x60 scope:local +GetDigit = .text:0x00008EF8; // type:function size:0x40 scope:local +ShowBoard = .text:0x00008F38; // type:function size:0x72C scope:local +HideBoard = .text:0x00009664; // type:function size:0x9C scope:local +ShowTotal = .text:0x00009700; // type:function size:0x344 scope:local +HideTotal = .text:0x00009A44; // type:function size:0x7C scope:local +ShowMG = .text:0x00009AC0; // type:function size:0x88C scope:local +HideMG = .text:0x0000A34C; // type:function size:0x9C scope:local +OptionWinCreate = .text:0x0000A3E8; // type:function size:0x260 +OptionWinKill = .text:0x0000A648; // type:function size:0x40 +OptionWinAnimIn = .text:0x0000A688; // type:function size:0x18 +OptionWinAnimOut = .text:0x0000A6A0; // type:function size:0x18 +OptionWinMesSet = .text:0x0000A6B8; // type:function size:0x54 +OptionWinInsertMesSet = .text:0x0000A70C; // type:function size:0x40 +OptionWinPosSet = .text:0x0000A74C; // type:function size:0x40 +OptionWinDispOn = .text:0x0000A78C; // type:function size:0x38 +OptionWinDispOff = .text:0x0000A7C4; // type:function size:0x38 +OptionWinMesWait = .text:0x0000A7FC; // type:function size:0x20 +OptionWinChoiceSet = .text:0x0000A81C; // type:function size:0x24 +ExecWindow = .text:0x0000A840; // type:function size:0x108 scope:local _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0xC data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x38 -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8C0 -lbl_1_rodata_AA0 = .rodata:0x00000AA0; // type:object size:0x30 -lbl_1_rodata_AD0 = .rodata:0x00000AD0; // type:object size:0x780 -lbl_1_rodata_1250 = .rodata:0x00001250; // type:object size:0x4 data:float -lbl_1_rodata_1254 = .rodata:0x00001254; // type:object size:0x4 data:float -lbl_1_rodata_1258 = .rodata:0x00001258; // type:object size:0x4 data:float -lbl_1_rodata_125C = .rodata:0x0000125C; // type:object size:0x4 data:float -lbl_1_rodata_1260 = .rodata:0x00001260; // type:object size:0x4 data:float -lbl_1_rodata_1264 = .rodata:0x00001264; // type:object size:0x4 data:float -lbl_1_rodata_1268 = .rodata:0x00001268; // type:object size:0x4 data:float -lbl_1_rodata_1270 = .rodata:0x00001270; // type:object size:0x8 data:double -lbl_1_rodata_1278 = .rodata:0x00001278; // type:object size:0x8 -lbl_1_rodata_1280 = .rodata:0x00001280; // type:object size:0x8 -lbl_1_rodata_1288 = .rodata:0x00001288; // type:object size:0x8 -lbl_1_rodata_1290 = .rodata:0x00001290; // type:object size:0x4 data:float -lbl_1_rodata_1294 = .rodata:0x00001294; // type:object size:0x4 data:float -lbl_1_rodata_1298 = .rodata:0x00001298; // type:object size:0x4 data:float -lbl_1_rodata_129C = .rodata:0x0000129C; // type:object size:0x4 data:float -lbl_1_rodata_12A0 = .rodata:0x000012A0; // type:object size:0x4 data:float -lbl_1_rodata_12A4 = .rodata:0x000012A4; // type:object size:0x4 data:float -lbl_1_rodata_12A8 = .rodata:0x000012A8; // type:object size:0x4 data:float -lbl_1_rodata_12AC = .rodata:0x000012AC; // type:object size:0x4 data:float -lbl_1_rodata_12B0 = .rodata:0x000012B0; // type:object size:0x4 data:float -lbl_1_rodata_12B4 = .rodata:0x000012B4; // type:object size:0x4 data:float -lbl_1_rodata_12B8 = .rodata:0x000012B8; // type:object size:0x4 data:float -lbl_1_rodata_12BC = .rodata:0x000012BC; // type:object size:0x4 data:float -lbl_1_rodata_12C0 = .rodata:0x000012C0; // type:object size:0x4 data:float -lbl_1_rodata_12C4 = .rodata:0x000012C4; // type:object size:0x4 data:float -lbl_1_rodata_12C8 = .rodata:0x000012C8; // type:object size:0x4 data:float -lbl_1_rodata_12CC = .rodata:0x000012CC; // type:object size:0x4 data:float -lbl_1_rodata_12D0 = .rodata:0x000012D0; // type:object size:0x24 -lbl_1_rodata_12F4 = .rodata:0x000012F4; // type:object size:0x4 data:float -lbl_1_rodata_12F8 = .rodata:0x000012F8; // type:object size:0x4 data:float -lbl_1_rodata_12FC = .rodata:0x000012FC; // type:object size:0x4 data:float -lbl_1_rodata_1300 = .rodata:0x00001300; // type:object size:0x4 data:float -lbl_1_rodata_1304 = .rodata:0x00001304; // type:object size:0x4 data:float -lbl_1_rodata_1308 = .rodata:0x00001308; // type:object size:0x1C -lbl_1_rodata_1324 = .rodata:0x00001324; // type:object size:0x4 data:float -lbl_1_rodata_1328 = .rodata:0x00001328; // type:object size:0x4 data:float -lbl_1_rodata_132C = .rodata:0x0000132C; // type:object size:0x4 data:float -lbl_1_rodata_1330 = .rodata:0x00001330; // type:object size:0x14 -lbl_1_rodata_1344 = .rodata:0x00001344; // type:object size:0x4 data:float -lbl_1_rodata_1348 = .rodata:0x00001348; // type:object size:0x4 data:float -lbl_1_rodata_134C = .rodata:0x0000134C; // type:object size:0x4 -lbl_1_rodata_1350 = .rodata:0x00001350; // type:object size:0x8 -lbl_1_rodata_1358 = .rodata:0x00001358; // type:object size:0x8 data:double -lbl_1_rodata_1360 = .rodata:0x00001360; // type:object size:0x8 data:double -lbl_1_rodata_1368 = .rodata:0x00001368; // type:object size:0x4 data:float -lbl_1_rodata_136C = .rodata:0x0000136C; // type:object size:0x4 data:float -lbl_1_rodata_1370 = .rodata:0x00001370; // type:object size:0x8 data:double -lbl_1_rodata_1378 = .rodata:0x00001378; // type:object size:0x8 data:double -lbl_1_rodata_1380 = .rodata:0x00001380; // type:object size:0x4 data:float -lbl_1_rodata_1384 = .rodata:0x00001384; // type:object size:0x4 data:float -lbl_1_rodata_1388 = .rodata:0x00001388; // type:object size:0x8 data:double -lbl_1_rodata_1390 = .rodata:0x00001390; // type:object size:0x4 data:float -lbl_1_rodata_1394 = .rodata:0x00001394; // type:object size:0x4 data:float -lbl_1_rodata_1398 = .rodata:0x00001398; // type:object size:0x4 data:float -lbl_1_rodata_139C = .rodata:0x0000139C; // type:object size:0x4 data:float -lbl_1_rodata_13A0 = .rodata:0x000013A0; // type:object size:0x8 data:double -lbl_1_rodata_13A8 = .rodata:0x000013A8; // type:object size:0x8 data:double -lbl_1_rodata_13B0 = .rodata:0x000013B0; // type:object size:0x4 data:float -lbl_1_rodata_13B4 = .rodata:0x000013B4; // type:object size:0x4 data:float -lbl_1_rodata_13B8 = .rodata:0x000013B8; // type:object size:0x8 data:float -lbl_1_rodata_13C0 = .rodata:0x000013C0; // type:object size:0x18 -lbl_1_rodata_13D8 = .rodata:0x000013D8; // type:object size:0x4 data:float -lbl_1_rodata_13DC = .rodata:0x000013DC; // type:object size:0x4 data:float -lbl_1_rodata_13E0 = .rodata:0x000013E0; // type:object size:0x4 data:float -lbl_1_rodata_13E4 = .rodata:0x000013E4; // type:object size:0x4 data:float -lbl_1_rodata_13E8 = .rodata:0x000013E8; // type:object size:0x4 data:float -lbl_1_rodata_13EC = .rodata:0x000013EC; // type:object size:0x4 data:float -lbl_1_rodata_13F0 = .rodata:0x000013F0; // type:object size:0x4 data:float -lbl_1_rodata_13F4 = .rodata:0x000013F4; // type:object size:0x4 data:float -lbl_1_rodata_13F8 = .rodata:0x000013F8; // type:object size:0x8 data:double -lbl_1_rodata_1400 = .rodata:0x00001400; // type:object size:0x8 data:double -lbl_1_rodata_1408 = .rodata:0x00001408; // type:object size:0x4 data:float -lbl_1_rodata_140C = .rodata:0x0000140C; // type:object size:0x4 data:float -lbl_1_rodata_1410 = .rodata:0x00001410; // type:object size:0x4 data:float -lbl_1_rodata_1414 = .rodata:0x00001414; // type:object size:0x4 data:float -lbl_1_rodata_1418 = .rodata:0x00001418; // type:object size:0x4 data:float -lbl_1_rodata_1420 = .rodata:0x00001420; // type:object size:0x8 data:double -lbl_1_rodata_1428 = .rodata:0x00001428; // type:object size:0x4 data:float -lbl_1_rodata_142C = .rodata:0x0000142C; // type:object size:0x4 data:float -lbl_1_rodata_1430 = .rodata:0x00001430; // type:object size:0x4 data:float -lbl_1_rodata_1434 = .rodata:0x00001434; // type:object size:0x4 data:float -lbl_1_rodata_1438 = .rodata:0x00001438; // type:object size:0x4 data:float -lbl_1_rodata_143C = .rodata:0x0000143C; // type:object size:0x264 -lbl_1_rodata_16A0 = .rodata:0x000016A0; // type:object size:0x4 data:float -lbl_1_rodata_16A4 = .rodata:0x000016A4; // type:object size:0x4 data:float -lbl_1_rodata_16A8 = .rodata:0x000016A8; // type:object size:0x4 data:float -lbl_1_rodata_16AC = .rodata:0x000016AC; // type:object size:0x4 data:float -lbl_1_rodata_16B0 = .rodata:0x000016B0; // type:object size:0x4 data:float -lbl_1_rodata_16B4 = .rodata:0x000016B4; // type:object size:0x4 data:float -lbl_1_rodata_16B8 = .rodata:0x000016B8; // type:object size:0x4 data:float -lbl_1_rodata_16BC = .rodata:0x000016BC; // type:object size:0x4 data:float -lbl_1_rodata_16C0 = .rodata:0x000016C0; // type:object size:0x4 data:float -lbl_1_rodata_16C4 = .rodata:0x000016C4; // type:object size:0x4 data:float -lbl_1_rodata_16C8 = .rodata:0x000016C8; // type:object size:0x4 data:float -lbl_1_rodata_16CC = .rodata:0x000016CC; // type:object size:0x4 data:float -lbl_1_rodata_16D0 = .rodata:0x000016D0; // type:object size:0x4 data:float -lbl_1_rodata_16D4 = .rodata:0x000016D4; // type:object size:0x4 data:float -lbl_1_rodata_16D8 = .rodata:0x000016D8; // type:object size:0x4 data:float -lbl_1_rodata_16DC = .rodata:0x000016DC; // type:object size:0x4 data:float -lbl_1_rodata_16E0 = .rodata:0x000016E0; // type:object size:0x4 data:float -lbl_1_rodata_16E4 = .rodata:0x000016E4; // type:object size:0x4 data:float -lbl_1_rodata_16E8 = .rodata:0x000016E8; // type:object size:0x4 data:float -lbl_1_rodata_16EC = .rodata:0x000016EC; // type:object size:0x4 data:float -lbl_1_rodata_16F0 = .rodata:0x000016F0; // type:object size:0xD4 -lbl_1_rodata_17C4 = .rodata:0x000017C4; // type:object size:0x4 data:float -lbl_1_rodata_17C8 = .rodata:0x000017C8; // type:object size:0x4 data:float -lbl_1_rodata_17CC = .rodata:0x000017CC; // type:object size:0x4 data:float -lbl_1_rodata_17D0 = .rodata:0x000017D0; // type:object size:0x4 data:float -lbl_1_rodata_17D4 = .rodata:0x000017D4; // type:object size:0x4 data:float -lbl_1_rodata_17D8 = .rodata:0x000017D8; // type:object size:0x4 data:float -lbl_1_rodata_17DC = .rodata:0x000017DC; // type:object size:0x4 data:float -lbl_1_rodata_17E0 = .rodata:0x000017E0; // type:object size:0x84 -lbl_1_rodata_1864 = .rodata:0x00001864; // type:object size:0x48 -lbl_1_rodata_18AC = .rodata:0x000018AC; // type:object size:0x4 data:float -lbl_1_rodata_18B0 = .rodata:0x000018B0; // type:object size:0x4 data:float -lbl_1_rodata_18B4 = .rodata:0x000018B4; // type:object size:0x4 data:float -lbl_1_rodata_18B8 = .rodata:0x000018B8; // type:object size:0x4 data:float -lbl_1_rodata_18BC = .rodata:0x000018BC; // type:object size:0x4 data:float -lbl_1_rodata_18C0 = .rodata:0x000018C0; // type:object size:0x108 -lbl_1_rodata_19C8 = .rodata:0x000019C8; // type:object size:0x4 data:float -lbl_1_rodata_19CC = .rodata:0x000019CC; // type:object size:0x4 data:float -lbl_1_rodata_19D0 = .rodata:0x000019D0; // type:object size:0x4 data:float -lbl_1_rodata_19D4 = .rodata:0x000019D4; // type:object size:0x4 data:float -lbl_1_rodata_19D8 = .rodata:0x000019D8; // type:object size:0x4 data:float -lbl_1_rodata_19DC = .rodata:0x000019DC; // type:object size:0x4 data:float -lbl_1_rodata_19E0 = .rodata:0x000019E0; // type:object size:0x4 data:float -lbl_1_rodata_19E4 = .rodata:0x000019E4; // type:object size:0x4 data:float -lbl_1_data_1C = .data:0x0000001C; // type:object size:0x1B data:string -lbl_1_data_37 = .data:0x00000037; // type:object size:0x1B data:string -lbl_1_data_52 = .data:0x00000052; // type:object size:0x16 data:string -lbl_1_data_68 = .data:0x00000068; // type:object size:0x8 data:4byte +_half$localstatic3$sqrtf = .rodata:0x00000000; // type:object size:0x8 scope:weak data:double +_three$localstatic4$sqrtf = .rodata:0x00000008; // type:object size:0x8 scope:weak data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +guideAngleTbl = .rodata:0x000000BC; // type:object size:0xC scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC scope:local +guideMotTbl = .rodata:0x000000E0; // type:object size:0xC scope:local +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:float +musigPageNameTbl = .rodata:0x000001A8; // type:object size:0x38 scope:local +musicTbl = .rodata:0x000001E0; // type:object size:0x8C0 scope:local +voiceCharNameTbl = .rodata:0x00000AA0; // type:object size:0x30 scope:local +lbl_1_rodata_AD0 = .rodata:0x00000AD0; // type:object size:0x780 scope:local +lbl_1_rodata_1250 = .rodata:0x00001250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1254 = .rodata:0x00001254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1258 = .rodata:0x00001258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_125C = .rodata:0x0000125C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1260 = .rodata:0x00001260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1264 = .rodata:0x00001264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1268 = .rodata:0x00001268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1270 = .rodata:0x00001270; // type:object size:0x8 scope:local data:double +outputModeTbl = .rodata:0x00001278; // type:object size:0x8 scope:local +soundModeTbl = .rodata:0x00001280; // type:object size:0x8 scope:local +soundModeNameTbl = .rodata:0x00001288; // type:object size:0x8 scope:local +lbl_1_rodata_1290 = .rodata:0x00001290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1294 = .rodata:0x00001294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1298 = .rodata:0x00001298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_129C = .rodata:0x0000129C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12A0 = .rodata:0x000012A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12A4 = .rodata:0x000012A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12A8 = .rodata:0x000012A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12AC = .rodata:0x000012AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12B0 = .rodata:0x000012B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12B4 = .rodata:0x000012B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12B8 = .rodata:0x000012B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12BC = .rodata:0x000012BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C0 = .rodata:0x000012C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C4 = .rodata:0x000012C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C8 = .rodata:0x000012C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12CC = .rodata:0x000012CC; // type:object size:0x4 scope:local data:float +lightPosTbl = .rodata:0x000012D0; // type:object size:0x24 scope:local +lbl_1_rodata_12F4 = .rodata:0x000012F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12F8 = .rodata:0x000012F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12FC = .rodata:0x000012FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1300 = .rodata:0x00001300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1304 = .rodata:0x00001304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1308 = .rodata:0x00001308; // type:object size:0x1C scope:local +lbl_1_rodata_1324 = .rodata:0x00001324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1328 = .rodata:0x00001328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_132C = .rodata:0x0000132C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1330 = .rodata:0x00001330; // type:object size:0x14 scope:local +lbl_1_rodata_1344 = .rodata:0x00001344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1348 = .rodata:0x00001348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134C = .rodata:0x0000134C; // type:object size:0x4 scope:local +lbl_1_rodata_1350 = .rodata:0x00001350; // type:object size:0x8 scope:local +lbl_1_rodata_1358 = .rodata:0x00001358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1360 = .rodata:0x00001360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1368 = .rodata:0x00001368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_136C = .rodata:0x0000136C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1370 = .rodata:0x00001370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1378 = .rodata:0x00001378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1380 = .rodata:0x00001380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1384 = .rodata:0x00001384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1388 = .rodata:0x00001388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1390 = .rodata:0x00001390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1394 = .rodata:0x00001394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1398 = .rodata:0x00001398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_139C = .rodata:0x0000139C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13A0 = .rodata:0x000013A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_13A8 = .rodata:0x000013A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_13B0 = .rodata:0x000013B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13B4 = .rodata:0x000013B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13B8 = .rodata:0x000013B8; // type:object size:0x8 scope:local data:float +mgRecordIdxTbl = .rodata:0x000013C0; // type:object size:0x18 scope:local +lbl_1_rodata_13D8 = .rodata:0x000013D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13DC = .rodata:0x000013DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13E0 = .rodata:0x000013E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13E4 = .rodata:0x000013E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13E8 = .rodata:0x000013E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13EC = .rodata:0x000013EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13F0 = .rodata:0x000013F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13F4 = .rodata:0x000013F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13F8 = .rodata:0x000013F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1400 = .rodata:0x00001400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1408 = .rodata:0x00001408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140C = .rodata:0x0000140C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1410 = .rodata:0x00001410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1414 = .rodata:0x00001414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1418 = .rodata:0x00001418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1420 = .rodata:0x00001420; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1428 = .rodata:0x00001428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_142C = .rodata:0x0000142C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1430 = .rodata:0x00001430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1434 = .rodata:0x00001434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1438 = .rodata:0x00001438; // type:object size:0x4 scope:local data:float +sprTbl = .rodata:0x0000143C; // type:object size:0x264 scope:local +lbl_1_rodata_16A0 = .rodata:0x000016A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16A4 = .rodata:0x000016A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16A8 = .rodata:0x000016A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16AC = .rodata:0x000016AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16B0 = .rodata:0x000016B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16B4 = .rodata:0x000016B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16B8 = .rodata:0x000016B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16BC = .rodata:0x000016BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C0 = .rodata:0x000016C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C4 = .rodata:0x000016C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C8 = .rodata:0x000016C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16CC = .rodata:0x000016CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16D0 = .rodata:0x000016D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16D4 = .rodata:0x000016D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16D8 = .rodata:0x000016D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16DC = .rodata:0x000016DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16E0 = .rodata:0x000016E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16E4 = .rodata:0x000016E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16E8 = .rodata:0x000016E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16EC = .rodata:0x000016EC; // type:object size:0x4 scope:local data:float +boardSprHideTbl = .rodata:0x000016F0; // type:object size:0xD4 scope:local +lbl_1_rodata_17C4 = .rodata:0x000017C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C8 = .rodata:0x000017C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17CC = .rodata:0x000017CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17D0 = .rodata:0x000017D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17D4 = .rodata:0x000017D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17D8 = .rodata:0x000017D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17DC = .rodata:0x000017DC; // type:object size:0x4 scope:local data:float +totalSprHideTbl = .rodata:0x000017E0; // type:object size:0x84 scope:local +mgTbl = .rodata:0x00001864; // type:object size:0x48 scope:local +lbl_1_rodata_18AC = .rodata:0x000018AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18B0 = .rodata:0x000018B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18B4 = .rodata:0x000018B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18B8 = .rodata:0x000018B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18BC = .rodata:0x000018BC; // type:object size:0x4 scope:local data:float +mgSprHideTbl = .rodata:0x000018C0; // type:object size:0x108 scope:local +lbl_1_rodata_19C8 = .rodata:0x000019C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19CC = .rodata:0x000019CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19D0 = .rodata:0x000019D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19D4 = .rodata:0x000019D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19D8 = .rodata:0x000019D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19DC = .rodata:0x000019DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19E0 = .rodata:0x000019E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19E4 = .rodata:0x000019E4; // type:object size:0x4 scope:local data:float +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x1B scope:local data:string +lbl_1_data_37 = .data:0x00000037; // type:object size:0x1B scope:local data:string +lbl_1_data_52 = .data:0x00000052; // type:object size:0x16 scope:local data:string +execModeTbl = .data:0x00000068; // type:object size:0x8 scope:local data:4byte jumptable_1_data_70 = .data:0x00000070; // type:object size:0x24 scope:local -lbl_1_data_98 = .data:0x00000098; // type:object size:0x8 data:4byte -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x1C -lbl_1_data_BC = .data:0x000000BC; // type:object size:0x24 +execModeTbl = .data:0x00000098; // type:object size:0x8 scope:local data:4byte +lightTbl = .data:0x000000A0; // type:object size:0x1C scope:local +shadowPosTbl = .data:0x000000BC; // type:object size:0x24 scope:local jumptable_1_data_E0 = .data:0x000000E0; // type:object size:0x24 scope:local -lbl_1_data_108 = .data:0x00000108; // type:object size:0x8 data:4byte -lbl_1_data_110 = .data:0x00000110; // type:object size:0x8 -lbl_1_data_118 = .data:0x00000118; // type:object size:0x38 data:4byte -lbl_1_data_150 = .data:0x00000150; // type:object size:0x18 data:4byte -lbl_1_data_168 = .data:0x00000168; // type:object size:0xC +execModeTbl = .data:0x00000108; // type:object size:0x8 scope:local data:4byte +lbl_1_data_110 = .data:0x00000110; // type:object size:0x8 scope:local +musicPageOn = .data:0x00000118; // type:object size:0x38 scope:local data:4byte +execModeTbl = .data:0x00000150; // type:object size:0x18 scope:local data:4byte +choiceMess = .data:0x00000168; // type:object size:0xC scope:local jumptable_1_data_174 = .data:0x00000174; // type:object size:0x24 scope:local jumptable_1_data_198 = .data:0x00000198; // type:object size:0x24 scope:local -lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x4C -lbl_1_data_208 = .data:0x00000208; // type:object size:0x8 -lbl_1_data_210 = .data:0x00000210; // type:object size:0x8 data:4byte +spriteDataTbl = .data:0x000001BC; // type:object size:0x4C scope:local +noteMdlTbl = .data:0x00000208; // type:object size:0x8 scope:local +execModeTbl = .data:0x00000210; // type:object size:0x8 scope:local data:4byte jumptable_1_data_218 = .data:0x00000218; // type:object size:0x1C scope:local jumptable_1_data_234 = .data:0x00000234; // type:object size:0x20 scope:local -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:4byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:4byte -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +rumbleF = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte +scene = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +optionObjMan = .bss:0x00000008; // type:object size:0x8 data:4byte +optionCamera = .bss:0x00000010; // type:object size:0x8 data:4byte +optionRoom = .bss:0x00000018; // type:object size:0x8 data:4byte +optionGuide = .bss:0x00000020; // type:object size:0x8 data:4byte +optionState = .bss:0x00000028; // type:object size:0x8 data:4byte +optionRumble = .bss:0x00000030; // type:object size:0x8 data:4byte +optionSound = .bss:0x00000038; // type:object size:0x8 data:4byte +optionRecord = .bss:0x00000040; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/w10Dll/splits.txt b/config/GMPP01_00/rels/w10Dll/splits.txt deleted file mode 100644 index c6adc1ab..00000000 --- a/config/GMPP01_00/rels/w10Dll/splits.txt +++ /dev/null @@ -1,33 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 - -REL/board_executor.c: - .text start:0x00000000 end:0x000000E0 - .rodata start:0x00000000 end:0x00000010 - -REL/w10Dll/main.c: - .text start:0x000000E0 end:0x00000AEC - .rodata start:0x00000010 end:0x00000038 - .data start:0x00000000 end:0x00000078 - .bss start:0x00000000 end:0x00000018 - -REL/w10Dll/host.c: - .text start:0x00000AEC end:0x00000D2C - .rodata start:0x00000038 end:0x00000048 - .data start:0x00000078 end:0x00000098 - .bss start:0x00000018 end:0x00000020 - -REL/w10Dll/scene.c: - .text start:0x00000D2C end:0x00001984 - .rodata start:0x00000048 end:0x00000058 - -REL/w10Dll/tutorial.c: - .text start:0x00001984 end:0x0000206C - .rodata start:0x00000058 end:0x00000070 - .data start:0x00000098 end:0x000002D4 - .bss start:0x00000020 end:0x00000038 diff --git a/config/GMPP01_00/rels/w10Dll/symbols.txt b/config/GMPP01_00/rels/w10Dll/symbols.txt deleted file mode 100644 index f10220e4..00000000 --- a/config/GMPP01_00/rels/w10Dll/symbols.txt +++ /dev/null @@ -1,116 +0,0 @@ -ObjectSetup = .text:0x00000000; // type:function size:0x30 scope:local -_prolog = .text:0x00000030; // type:function size:0x64 scope:global -_epilog = .text:0x00000094; // type:function size:0x4C scope:global -BoardCreate = .text:0x000000E0; // type:function size:0x5F8 -BoardDestroy = .text:0x000006D8; // type:function size:0x1E8 -LightSetHook = .text:0x000008C0; // type:function size:0x44 scope:local -LightResetHook = .text:0x00000904; // type:function size:0x4 scope:local -LandEvent = .text:0x00000908; // type:function size:0x4 scope:local -WalkEvent = .text:0x0000090C; // type:function size:0x8 scope:local -fn_1_914 = .text:0x00000914; // type:function size:0x4 -fn_1_918 = .text:0x00000918; // type:function size:0x4 -WalkMiniEvent = .text:0x0000091C; // type:function size:0x4 scope:local -fn_1_920 = .text:0x00000920; // type:function size:0x1CC -HostCreate = .text:0x00000AEC; // type:function size:0xB4 -HostWinExec = .text:0x00000BA0; // type:function size:0x70 -HostPosSet = .text:0x00000C10; // type:function size:0x10 -UpdateHost = .text:0x00000C20; // type:function size:0x10C scope:local -TutorialStartExec = .text:0x00000D2C; // type:function size:0x28 -TutorialPreRollExec = .text:0x00000D54; // type:function size:0x28 -TutorialOrderExec = .text:0x00000D7C; // type:function size:0x28 -TutorialP1StartExec = .text:0x00000DA4; // type:function size:0x28 -TutorialP2StartExec = .text:0x00000DCC; // type:function size:0x28 -TutorialP3StartExec = .text:0x00000DF4; // type:function size:0x28 -TutorialP4StartExec = .text:0x00000E1C; // type:function size:0x28 -TutorialGameStartExec = .text:0x00000E44; // type:function size:0x50 -TutorialRollExec = .text:0x00000E94; // type:function size:0x28 -TutorialMoveExec = .text:0x00000EBC; // type:function size:0x28 -TutorialLandExec = .text:0x00000EE4; // type:function size:0x4 -TutorialLandBlueExec = .text:0x00000EE8; // type:function size:0x48 -TutorialLandRedExec = .text:0x00000F30; // type:function size:0x3C -TutorialLandHappenExec = .text:0x00000F6C; // type:function size:0x4C -TutorialLandFortuneExec = .text:0x00000FB8; // type:function size:0x58 -TutorialLandBowserExec = .text:0x00001010; // type:function size:0x4C -TutorialLandMushroomExec = .text:0x0000105C; // type:function size:0x3C -TutorialMushroomMegaExec = .text:0x00001098; // type:function size:0x28 -TutorialMushroomMiniExec = .text:0x000010C0; // type:function size:0x38 -TutorialLandBattleExec = .text:0x000010F8; // type:function size:0x3C -TutorialLandWarpExec = .text:0x00001134; // type:function size:0x44 -TutorialWarpDecideExec = .text:0x00001178; // type:function size:0x28 -TutorialBlockStarExec = .text:0x000011A0; // type:function size:0x4C -TutorialBlockCoinExec = .text:0x000011EC; // type:function size:0x54 -TutorialMiniMegaExec = .text:0x00001240; // type:function size:0x38 -TutorialMiniUseExec = .text:0x00001278; // type:function size:0x28 -TutorialMiniStopExec = .text:0x000012A0; // type:function size:0x3C -TutorialMegaUseExec = .text:0x000012DC; // type:function size:0x28 -TutorialMegaDiceExec = .text:0x00001304; // type:function size:0x28 -TutorialMegaStompExec = .text:0x0000132C; // type:function size:0x28 -TutorialMegaEventExec = .text:0x00001354; // type:function size:0x28 -TutorialMegaStopExec = .text:0x0000137C; // type:function size:0x28 -TutorialEndExec = .text:0x000013A4; // type:function size:0x3C8 -TutorialMGStatusExec = .text:0x0000176C; // type:function size:0x30 -TutorialMG4PExec = .text:0x0000179C; // type:function size:0x58 -TutorialMG2Vs2Exec = .text:0x000017F4; // type:function size:0x40 -TutorialMG1Vs3Exec = .text:0x00001834; // type:function size:0x88 -TutorialMG1Vs3AltExec = .text:0x000018BC; // type:function size:0x4C -TutorialShopExec = .text:0x00001908; // type:function size:0x28 -TutorialLotteryExec = .text:0x00001930; // type:function size:0x28 -TutorialBooHouseExec = .text:0x00001958; // type:function size:0x28 -TutorialNullExec = .text:0x00001980; // type:function size:0x4 -CloseTutorial = .text:0x00001984; // type:function size:0x128 scope:local -TutorialHookExec = .text:0x00001AAC; // type:function size:0x2BC -TutorialSprCreate = .text:0x00001D68; // type:function size:0x84 -TutorialSprKill = .text:0x00001DEC; // type:function size:0x50 -TutorialSpaceShow = .text:0x00001E3C; // type:function size:0x174 -TutorialSpaceHide = .text:0x00001FB0; // type:function size:0xBC -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double -mapObjTbl = .data:0x00000000; // type:object size:0x28 scope:local data:float -bgMdl = .data:0x00000028; // type:object size:0x2 scope:local data:2byte -fgMdl = .data:0x0000002A; // type:object size:0x2 scope:local data:2byte -boardStarHostMdl = .data:0x0000002C; // type:object size:0x2 data:2byte -boardShopHostMdl = .data:0x0000002E; // type:object size:0x2 data:2byte -boardLotteryHostMdl = .data:0x00000030; // type:object size:0x2 data:2byte -boardBooHouseHostMdl = .data:0x00000032; // type:object size:0x2 data:2byte -charMotDirTbl = .data:0x00000034; // type:object size:0x20 scope:local data:4byte -starHostMot = .data:0x00000054; // type:object size:0x8 scope:local -shopHostMot = .data:0x0000005C; // type:object size:0x8 scope:local -lotteryHostMot = .data:0x00000064; // type:object size:0x8 scope:local -booHouseHostMot = .data:0x0000006C; // type:object size:0x8 scope:local -hostMot = .data:0x00000078; // type:object size:0x8 scope:local -hostPosTbl = .data:0x00000080; // type:object size:0x18 scope:local data:float -lbl_1_data_98 = .data:0x00000098; // type:object size:0x2D scope:local data:string -rollDataTbl = .data:0x000000C6; // type:object size:0x42 scope:local -sceneTbl = .data:0x00000108; // type:object size:0x150 scope:local -lbl_1_data_258 = .data:0x00000258; // type:object size:0x50 scope:local data:string -tutorialSprTbl = .data:0x000002A8; // type:object size:0x2C scope:local -boardWork = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -motTbl = .bss:0x00000008; // type:object size:0x4 scope:local data:4byte -tutorialDoneF = .bss:0x0000000C; // type:object size:0x2 data:2byte -tutorialExitWin = .bss:0x0000000E; // type:object size:0x2 data:2byte -boardMapObjMdl = .bss:0x00000010; // type:object size:0x2 data:2byte -hostProc = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte -hostPos = .bss:0x0000001C; // type:object size:0x2 scope:local data:2byte -hostMdl = .bss:0x0000001E; // type:object size:0x2 scope:local data:2byte -sprCurr = .bss:0x00000020; // type:object size:0x2 scope:local data:2byte -sprList = .bss:0x00000022; // type:object size:0x16 scope:local diff --git a/config/GMPP01_00/rels/w20Dll/splits.txt b/config/GMPP01_00/rels/w20Dll/splits.txt deleted file mode 100644 index 9df8ed45..00000000 --- a/config/GMPP01_00/rels/w20Dll/splits.txt +++ /dev/null @@ -1,17 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 - -REL/board_executor.c: - .text start:0x00000000 end:0x000000E0 - .rodata start:0x00000000 end:0x00000010 - -REL/w20Dll/main.c: - .text start:0x000000E0 end:0x00000678 - .rodata start:0x00000010 end:0x00000030 - .data start:0x00000000 end:0x00000034 - .bss start:0x00000000 end:0x0000000E diff --git a/config/GMPP01_00/rels/w20Dll/symbols.txt b/config/GMPP01_00/rels/w20Dll/symbols.txt deleted file mode 100644 index 0e84011e..00000000 --- a/config/GMPP01_00/rels/w20Dll/symbols.txt +++ /dev/null @@ -1,33 +0,0 @@ -ObjectSetup = .text:0x00000000; // type:function size:0x30 scope:local -_prolog = .text:0x00000030; // type:function size:0x64 scope:global -_epilog = .text:0x00000094; // type:function size:0x4C scope:global -BoardCreate = .text:0x000000E0; // type:function size:0x2B0 -BoardDestroy = .text:0x00000390; // type:function size:0xBC -fn_1_44C = .text:0x0000044C; // type:function size:0x44 -fn_1_490 = .text:0x00000490; // type:function size:0x4 -fn_1_494 = .text:0x00000494; // type:function size:0x4 -fn_1_498 = .text:0x00000498; // type:function size:0x8 -fn_1_4A0 = .text:0x000004A0; // type:function size:0x4 -fn_1_4A4 = .text:0x000004A4; // type:function size:0x4 -fn_1_4A8 = .text:0x000004A8; // type:function size:0x4 -fn_1_4AC = .text:0x000004AC; // type:function size:0x1CC -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte -lbl_1_data_2 = .data:0x00000002; // type:object size:0x2 data:2byte -lbl_1_data_4 = .data:0x00000004; // type:object size:0x2 data:2byte -lbl_1_data_6 = .data:0x00000006; // type:object size:0x2 data:2byte -lbl_1_data_8 = .data:0x00000008; // type:object size:0x2 data:2byte -lbl_1_data_A = .data:0x0000000A; // type:object size:0x2 data:2byte -lbl_1_data_C = .data:0x0000000C; // type:object size:0x20 data:4byte -unkMotTbl = .data:0x0000002C; // type:object size:0x8 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 diff --git a/config/GMPP01_00/rels/w21Dll/splits.txt b/config/GMPP01_00/rels/w21Dll/splits.txt deleted file mode 100644 index 1ab21815..00000000 --- a/config/GMPP01_00/rels/w21Dll/splits.txt +++ /dev/null @@ -1,15 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - -REL/board_executor.c: - .text start:0x00000000 end:0x000000E0 - .rodata start:0x00000000 end:0x00000010 - -REL/w21Dll/main.c: - .text start:0x000000E0 end:0x000003E0 - .rodata start:0x00000010 end:0x00000018 - .data start:0x00000000 end:0x00000010 diff --git a/config/GMPP01_00/rels/w21Dll/symbols.txt b/config/GMPP01_00/rels/w21Dll/symbols.txt deleted file mode 100644 index 708d3b88..00000000 --- a/config/GMPP01_00/rels/w21Dll/symbols.txt +++ /dev/null @@ -1,18 +0,0 @@ -ObjectSetup = .text:0x00000000; // type:function size:0x30 scope:local -_prolog = .text:0x00000030; // type:function size:0x64 scope:global -_epilog = .text:0x00000094; // type:function size:0x4C scope:global -BoardCreate = .text:0x000000E0; // type:function size:0x1D4 -BoardDestroy = .text:0x000002B4; // type:function size:0xB8 -LightSetHook = .text:0x0000036C; // type:function size:0x44 scope:local -LightResetHook = .text:0x000003B0; // type:function size:0x20 scope:local -WalkEvent = .text:0x000003D0; // type:function size:0x8 scope:local -WalkMiniEvent = .text:0x000003D8; // type:function size:0x4 scope:local -LandEvent = .text:0x000003DC; // type:function size:0x4 scope:local -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float -bgMdl = .data:0x00000000; // type:object size:0x2 scope:local data:2byte -fgMdl = .data:0x00000002; // type:object size:0x2 scope:local data:2byte -hostMdl = .data:0x00000004; // type:object size:0x2 scope:local data:2byte -hostMotTbl = .data:0x00000008; // type:object size:0x8 scope:local diff --git a/config/GMPP01_02/config.yml b/config/GMPP01_02/config.yml index 19380dcf..da871c96 100644 --- a/config/GMPP01_02/config.yml +++ b/config/GMPP01_02/config.yml @@ -3,7 +3,7 @@ object: sys/main.dol hash: 65ef91650e9201047f50a3c39c7693a21fff2b29 symbols: config/GMPP01_00/symbols.txt splits: config/GMPP01_00/splits.txt -quick_analysis: false # Faster re-runs after initial analysis +quick_analysis: true # Faster re-runs after initial analysis mw_comment_version: 10 # GC 2.6 linker force_active: [__register_global_object, lbl_801D40D0] @@ -473,8 +473,8 @@ modules: links: [] - object: files/dll/w10Dll.rel hash: 5678fedd4a0490aeb9703328e959fdedea7da117 - symbols: config/GMPP01_00/rels/w10Dll/symbols.txt - splits: config/GMPP01_00/rels/w10Dll/splits.txt + symbols: config/GMPE01_00/rels/w10Dll/symbols.txt + splits: config/GMPE01_00/rels/w10Dll/splits.txt links: [] - object: files/dll/w20Dll.rel hash: 58ae9e311cc8bd0291921480f423e2ad4774e1a2 @@ -483,8 +483,8 @@ modules: links: [] - object: files/dll/w21Dll.rel hash: 8ea052be8c7585a1ab152682a0698b631c5b566f - symbols: config/GMPP01_00/rels/w21Dll/symbols.txt - splits: config/GMPP01_00/rels/w21Dll/splits.txt + symbols: config/GMPE01_00/rels/w21Dll/symbols.txt + splits: config/GMPE01_00/rels/w21Dll/splits.txt links: [] - object: files/dll/ztardll.rel hash: 8987f11fafd11f69161ca275967afe9c8b4e7b20 @@ -636,4 +636,4 @@ extract: header: retryerror_sp.inc - symbol: wrongdisc_sp binary: wrongdisc_sp.bin - header: wrongdisc_sp.inc \ No newline at end of file + header: wrongdisc_sp.inc diff --git a/configure.py b/configure.py index ea0272c0..a1c14491 100644 --- a/configure.py +++ b/configure.py @@ -821,7 +821,7 @@ config.libs = [ "cflags": cflags_rel, "host": False, "objects": [ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/executor.c"), + Object(Matching, "REL/executor.c"), Object(Matching, "REL/empty.c"), # Must be marked as matching Object(Matching, "REL/board_executor.c"), ], @@ -995,11 +995,11 @@ config.libs = [ Rel( "m420dll", # Fish n' Drips objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/camera.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/player.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/map.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/rand.c"), + Object(Matching, "REL/m420dll/main.c"), + Object(Matching, "REL/m420dll/camera.c"), + Object(Matching, "REL/m420dll/player.c"), + Object(Matching, "REL/m420dll/map.c"), + Object(Matching, "REL/m420dll/rand.c"), }, ), Rel( @@ -1063,7 +1063,7 @@ config.libs = [ Rel( "m429Dll", # Team Treasure Trek objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m429Dll/main.c"), + Object(Matching, "REL/m429Dll/main.c"), }, ), Rel( @@ -1077,8 +1077,8 @@ config.libs = [ Rel( "m431Dll", # Order Up objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m431Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m431Dll/object.c"), + Object(Matching, "REL/m431Dll/main.c"), + Object(Matching, "REL/m431Dll/object.c"), }, ), Rel( @@ -1221,7 +1221,7 @@ config.libs = [ Rel( "m450Dll", # The Final Battle! objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m450Dll/main.c"), + Object(Matching, "REL/m450Dll/main.c"), }, ), Rel( @@ -1397,15 +1397,15 @@ config.libs = [ Rel( "option", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/scene.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/camera.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/room.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/guide.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/state.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/rumble.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/sound.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/record.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/window.c"), + Object(Matching, "REL/option/scene.c"), + Object(Matching, "REL/option/camera.c"), + Object(Matching, "REL/option/room.c"), + Object(Matching, "REL/option/guide.c"), + Object(Matching, "REL/option/state.c"), + Object(Matching, "REL/option/rumble.c"), + Object(Matching, "REL/option/sound.c"), + Object(Matching, "REL/option/record.c"), + Object(Matching, "REL/option/window.c"), }, ), Rel( @@ -1498,7 +1498,7 @@ config.libs = [ objects={ Object(Matching, "REL/w05Dll/main.c"), Object(Matching, "REL/w05Dll/hotel.c"), - Object(Matching,"REL/w05Dll/monkey.c"), + Object(Matching, "REL/w05Dll/monkey.c"), Object(Matching, "REL/w05Dll/dolphin.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/mg_item.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/mg_coin.c"), diff --git a/include/REL/m431Dll.h b/include/REL/m431Dll.h index 78bcb746..c4286562 100644 --- a/include/REL/m431Dll.h +++ b/include/REL/m431Dll.h @@ -3,113 +3,116 @@ #include "game/object.h" -#define rand16() ((rand8() << 8)|(rand8())) - +#define rand16() ((rand8() << 8) | (rand8())) typedef struct bss_12C_inner { - Vec unk0; - float unkC; - s8 unk10; + Vec unk0; + float unkC; + s8 unk10; } Bss12CInner; typedef struct bss_12c_struct { - s16 unk0[2]; - s16 unk4; - s16 unk6; - s16 unk8; - Vec unkC; - float unk18; - Bss12CInner unk1C[10]; - float unkE4[10][2]; - s16 unk134[2]; - s16 unk138[2]; + s16 unk0[2]; + s16 unk4; + s16 unk6; + s16 unk8; + Vec unkC; + float unk18; + Bss12CInner unk1C[10]; + float unkE4[10][2]; + s16 unk134[2]; + s16 unk138[2]; } Bss12CStruct; typedef struct bss_61C_work { - u32 unk0; - s16 unk4; - s16 unk6; - s16 unk8; - s16 unkA; - s16 unkC; - float unk10; - struct bss_61C_work *unk14; - Vec unk18; - Vec unk24; - float unk30; - omObjFunc unk34; - s16 unk38; - s16 unk3A; - u32 unk3C; - s16 unk40; - s16 unk42; - Vec unk44; - s16 unk50; - s8 unk52; - u32 unk54; - s16 unk58; - s16 unk5A; - s16 unk5C; - s16 unk5E[8]; - s16 unk6E; - s16 unk70; - s16 unk72; - u32 unk74; - s16 unk78; - s16 unk7A; - s16 unk7C; - s16 unk7E; - s16 unk80; - s16 unk82; - s16 unk84; - s16 unk86; - float unk88; - Vec unk8C; - float unk98; - Vec unk9C; - float unkA8; - s32 unkAC; - s16 unkB0; - s16 unkB2; - s8 unkB4; - s8 unkB5; + u32 unk0; + s16 unk4; + s16 unk6; + s16 unk8; + s16 unkA; + s16 unkC; + float unk10; + struct bss_61C_work *unk14; + Vec unk18; + Vec unk24; + float unk30; + omObjFunc unk34; + s16 unk38; + s16 unk3A; +#if VERSION_PAL + s16 unk3C_pal; + s16 unk3E_pal; +#endif + u32 unk3C; + s16 unk40; + s16 unk42; + Vec unk44; + s16 unk50; + s8 unk52; + u32 unk54; + s16 unk58; + s16 unk5A; + s16 unk5C; + s16 unk5E[8]; + s16 unk6E; + s16 unk70; + s16 unk72; + u32 unk74; + s16 unk78; + s16 unk7A; + s16 unk7C; + s16 unk7E; + s16 unk80; + s16 unk82; + s16 unk84; + s16 unk86; + float unk88; + Vec unk8C; + float unk98; + Vec unk9C; + float unkA8; + s32 unkAC; + s16 unkB0; + s16 unkB2; + s8 unkB4; + s8 unkB5; } Bss61CWork; typedef void (*unkHook72B4Data18)(struct unk_72B4_data_18 *); typedef void (*unkHook72B4)(ModelData *, struct work_72B4 *, Mtx); typedef struct unk_72B4_data_18 { - Vec unk0; - Vec unkC; - char unk18[16]; - s16 unk28; - s16 unk2A; - s16 unk2C; - unkHook72B4Data18 unk30; - s16 unk34; - float unk38; - Vec unk3C; - Vec unk48; - s16 unk54; - s8 unk56; + Vec unk0; + Vec unkC; + char unk18[16]; + s16 unk28; + s16 unk2A; + s16 unk2C; + unkHook72B4Data18 unk30; + s16 unk34; + float unk38; + Vec unk3C; + Vec unk48; + s16 unk54; + s8 unk56; } Unk72B4Data18; typedef struct work_72B4 { - s16 unk0; - u32 unk4; - u8 unk8; - unkHook72B4 unkC; - AnimData *unk10; - s16 unk14; - Unk72B4Data18 *unk18; - Vec *unk1C; - HsfVector2f *unk20; - GXColor *unk24; - void *unk28; - Vec unk2C[4]; - HsfVector2f *unk5C; - float unk60; - float unk64; + s16 unk0; + u32 unk4; + u8 unk8; + unkHook72B4 unkC; + AnimData *unk10; + s16 unk14; + Unk72B4Data18 *unk18; + Vec *unk1C; + HsfVector2f *unk20; + GXColor *unk24; + void *unk28; + Vec unk2C[4]; + HsfVector2f *unk5C; + float unk60; + float unk64; } Work72B4; extern s32 lbl_1_bss_4; diff --git a/include/version.h b/include/version.h index 8d91dabf..8cac62af 100644 --- a/include/version.h +++ b/include/version.h @@ -15,4 +15,10 @@ #define VERSION_REV0 (VERSION == VERSION_NO_ENG0 || VERSION == VERSION_NO_PAL0 || VERSION == VERSION_NO_JAP) #define VERSION_REV1 (!VERSION_REV0) +#if VERSION_PAL +#define REFRESH_RATE 50 +#else +#define REFRESH_RATE 60 +#endif + #endif diff --git a/src/REL/m402Dll/main.c b/src/REL/m402Dll/main.c index 59f189c3..eff45b37 100755 --- a/src/REL/m402Dll/main.c +++ b/src/REL/m402Dll/main.c @@ -425,20 +425,20 @@ static void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) espBankSet(arg0[arg1 + 1], 10); espBankSet(arg0[arg1 + 4], 11); - if (36000 <= arg2) { - arg2 = 35999; + if (600 * REFRESH_RATE <= arg2) { + arg2 = 600 * REFRESH_RATE - 1; } - var_r30 = arg2 / 3600; - arg2 -= var_r30 * 3600; + var_r30 = arg2 / (60 * REFRESH_RATE); + arg2 -= var_r30 * (60 * REFRESH_RATE); if (var_r30 > 9) { var_r30 = 9; } espBankSet(arg0[arg1], var_r30); - var_r30 = arg2 / 60; - arg2 -= var_r30 * 60; + var_r30 = arg2 / REFRESH_RATE; + arg2 -= var_r30 * REFRESH_RATE; espBankSet(arg0[arg1 + 2], var_r30 / 10); espBankSet(arg0[arg1 + 3], var_r30 % 10); - var_r30 = 101.5f * arg2 / 60.0f; + var_r30 = 101.5f * arg2 / REFRESH_RATE; espBankSet(arg0[arg1 + 5], var_r30 / 10); espBankSet(arg0[arg1 + 6], var_r30 % 10); } diff --git a/src/REL/m405Dll/main.c b/src/REL/m405Dll/main.c index 0c999c19..610db76f 100755 --- a/src/REL/m405Dll/main.c +++ b/src/REL/m405Dll/main.c @@ -418,20 +418,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) espBankSet(arg0[arg1 + 1], 10); espBankSet(arg0[arg1 + 4], 11); - if (36000 <= arg2) { - arg2 = 35999; + if (600 * REFRESH_RATE <= arg2) { + arg2 = 600 * REFRESH_RATE - 1; } - var_r30 = arg2 / 3600; - arg2 -= var_r30 * 3600; + var_r30 = arg2 / (60 * REFRESH_RATE); + arg2 -= var_r30 * (60 * REFRESH_RATE); if (var_r30 > 9) { var_r30 = 9; } espBankSet(arg0[arg1], var_r30); - var_r30 = arg2 / 60; - arg2 -= var_r30 * 60; + var_r30 = arg2 / REFRESH_RATE; + arg2 -= var_r30 * REFRESH_RATE; espBankSet(arg0[arg1 + 2], var_r30 / 10); espBankSet(arg0[arg1 + 3], var_r30 % 10); - var_r30 = 101.5f * arg2 / 60.0f; + var_r30 = 101.5f * arg2 / REFRESH_RATE; espBankSet(arg0[arg1 + 5], var_r30 / 10); espBankSet(arg0[arg1 + 6], var_r30 % 10); } diff --git a/src/REL/m420dll/main.c b/src/REL/m420dll/main.c index 18f5b3ea..d6574513 100644 --- a/src/REL/m420dll/main.c +++ b/src/REL/m420dll/main.c @@ -1,5 +1,4 @@ #include "ext_math.h" -#include "game/audio.h" #include "game/flag.h" #include "game/hsfman.h" #include "game/minigame_seq.h" @@ -9,6 +8,11 @@ #include "game/wipe.h" #include "REL/m420dll.h" +#include "version.h" + +#ifndef __MWERKS__ +#include "game/audio.h" +#endif s32 fn_1_198(void); void fn_1_3D4(void); @@ -142,8 +146,8 @@ void fn_1_43C(void) HuPrcVSleep(); } MGSeqKill(lbl_1_bss_10); - lbl_1_bss_12 = 0xE10; - lbl_1_bss_14 = MGSeqCreate(1, lbl_1_bss_12 / 60, -1, -1); + lbl_1_bss_12 = 60 * REFRESH_RATE; + lbl_1_bss_14 = MGSeqCreate(1, lbl_1_bss_12 / REFRESH_RATE, -1, -1); var_r30 = 1; while (TRUE) { if (lbl_1_bss_18[0]->unk_48 == 0) { @@ -163,8 +167,8 @@ void fn_1_43C(void) } } if (lbl_1_bss_12 >= 0) { - if (((--lbl_1_bss_12) % 60) == 0) { - MGSeqParamSet(lbl_1_bss_14, 1, lbl_1_bss_12 / 60); + if (((--lbl_1_bss_12) % REFRESH_RATE) == 0) { + MGSeqParamSet(lbl_1_bss_14, 1, lbl_1_bss_12 / REFRESH_RATE); } } if ((fn_1_67E8(0) == 0) && (fn_1_67E8(1) == 0) && (lbl_1_bss_12 > 0)) { diff --git a/src/REL/m429Dll/main.c b/src/REL/m429Dll/main.c index 7c2aa9be..f48c989e 100644 --- a/src/REL/m429Dll/main.c +++ b/src/REL/m429Dll/main.c @@ -21,6 +21,7 @@ #include "game/sprite.h" #include "ext_math.h" +#include "version.h" #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) @@ -222,20 +223,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) espBankSet(arg0[arg1 + 1], 10); espBankSet(arg0[arg1 + 4], 11); - if (36000 <= arg2) { - arg2 = 35999; + if (600 * REFRESH_RATE <= arg2) { + arg2 = 600 * REFRESH_RATE - 1; } - var_r30 = arg2 / 3600; - arg2 -= var_r30 * 3600; + var_r30 = arg2 / (60 * REFRESH_RATE); + arg2 -= var_r30 * (60 * REFRESH_RATE); if (var_r30 > 9) { var_r30 = 9; } espBankSet(arg0[arg1], var_r30); - var_r30 = arg2 / 60; - arg2 -= var_r30 * 60; + var_r30 = arg2 / REFRESH_RATE; + arg2 -= var_r30 * REFRESH_RATE; espBankSet(arg0[arg1 + 2], var_r30 / 10); espBankSet(arg0[arg1 + 3], var_r30 % 10); - var_r30 = 101.5f * arg2 / 60.0f; + var_r30 = 101.5f * arg2 / REFRESH_RATE; espBankSet(arg0[arg1 + 5], var_r30 / 10); espBankSet(arg0[arg1 + 6], var_r30 % 10); } @@ -2343,7 +2344,7 @@ void fn_1_AD74(float *arg0) float temp_f30; temp_r31 = &lbl_1_data_103C[0][0]; - temp_f30 = lbl_1_bss_12C / 60; + temp_f30 = lbl_1_bss_12C / REFRESH_RATE; temp_f31 = sind(90 * temp_f30) * sind(90 * temp_f30); for (temp_r28 = 0; temp_r28 < 4; temp_r28++, temp_r31 += 4, arg0 += 4) { sp8[0] = temp_r31[0] + (temp_f31 * (arg0[0] - temp_r31[0])); @@ -2395,8 +2396,8 @@ void fn_1_B01C(void) temp_f31 = lbl_1_bss_98[lbl_1_bss_28].x - temp_r30->unk4.x; temp_f30 = lbl_1_bss_98[lbl_1_bss_28].z - temp_r30->unk4.z; temp_r30->unk64 = atan2d(temp_f31, temp_f30); - omVibrate(temp_r31->unk114, 120, 6, 6); - omVibrate(temp_r30->unk114, 120, 6, 6); + omVibrate(temp_r31->unk114, 2 * REFRESH_RATE, 6, 6); + omVibrate(temp_r30->unk114, 2 * REFRESH_RATE, 6, 6); } void fn_1_B754(float *arg0, float arg1, float arg2, s32 arg3) @@ -2438,7 +2439,7 @@ void fn_1_B8E0(omObjData *object) WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); object->func = fn_1_E96C; } - lbl_1_bss_114 += 1.0f / 60.0f; + lbl_1_bss_114 += 1.0f / REFRESH_RATE; if (360.0f <= lbl_1_bss_114) { lbl_1_bss_114 -= 360.0f; } @@ -2464,12 +2465,12 @@ void fn_1_B8E0(omObjData *object) case 1002: lbl_1_bss_12C++; - temp_f30 = lbl_1_bss_12C / 60; + temp_f30 = lbl_1_bss_12C / REFRESH_RATE; temp_f31 = 1 - (sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f)); for (temp_r29 = 0; temp_r29 < 5; temp_r29++) { espTPLvlSet(lbl_1_bss_10[temp_r29], temp_f31); } - if (60.0f <= lbl_1_bss_12C) { + if (REFRESH_RATE <= lbl_1_bss_12C) { object->work[0]++; lbl_1_bss_12C = 0; for (temp_r29 = 0; temp_r29 < 5; temp_r29++) { @@ -2480,12 +2481,12 @@ void fn_1_B8E0(omObjData *object) case 1003: lbl_1_bss_12C++; - temp_f30 = lbl_1_bss_12C / 60; + temp_f30 = lbl_1_bss_12C / REFRESH_RATE; temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f); for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { lbl_1_bss_130[temp_r29].unk4 = temp_f31; } - if (60.0f <= lbl_1_bss_12C) { + if (REFRESH_RATE <= lbl_1_bss_12C) { object->work[0]++; lbl_1_bss_12C = 0; lbl_1_bss_4 = HuAudFXPlay(1645); @@ -2511,19 +2512,19 @@ void fn_1_B8E0(omObjData *object) } if (!MGSeqStatGet(lbl_1_bss_2FE)) { object->work[0]++; - lbl_1_bss_304 = 3600; - lbl_1_bss_2FC = MGSeqTimerCreate(lbl_1_bss_304 / 60); + lbl_1_bss_304 = 60 * REFRESH_RATE; + lbl_1_bss_2FC = MGSeqTimerCreate(lbl_1_bss_304 / REFRESH_RATE); lbl_1_bss_2FE = -1; } } break; case 1006: - MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + 59) / 60); + MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + REFRESH_RATE - 1) / REFRESH_RATE); lbl_1_bss_304--; if (lbl_1_bss_304 < 0 || lbl_1_bss_28 >= 0) { object->work[0] = 1007; - lbl_1_bss_304 = 3600; + lbl_1_bss_304 = 60 * REFRESH_RATE; lbl_1_bss_12C = 0; } break; @@ -2575,7 +2576,7 @@ void fn_1_B8E0(omObjData *object) case 1008: lbl_1_bss_12C++; - if (60.0f < lbl_1_bss_12C) { + if (REFRESH_RATE < lbl_1_bss_12C) { object->work[0]++; lbl_1_bss_12C = 0; HuAudFXPlay(1650); @@ -2587,7 +2588,7 @@ void fn_1_B8E0(omObjData *object) } else { fn_1_AD74(((lbl_1_bss_28 & 0x2) == 0) ? &lbl_1_data_107C[0][0] : &lbl_1_data_10BC[0][0]); - temp_f30 = lbl_1_bss_12C / 60.0f; + temp_f30 = lbl_1_bss_12C / REFRESH_RATE; temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f); fn_1_A588(lbl_1_bss_28, &lbl_1_data_FE0, temp_f31); } @@ -2595,13 +2596,13 @@ void fn_1_B8E0(omObjData *object) case 1009: lbl_1_bss_12C++; - if (120.0f < lbl_1_bss_12C) { + if (2 * REFRESH_RATE < lbl_1_bss_12C) { object->work[0]++; lbl_1_bss_12C = 0; HuAudFXPlay(1651); } else { - temp_f30 = lbl_1_bss_12C / 120.0f; + temp_f30 = lbl_1_bss_12C / (2 * REFRESH_RATE); temp_f31 = sind(temp_f30 * 90.0f) * sind(temp_f30 * 90.0f); temp_f20 = (6.0f * frandf()) - 3.0f; temp_f19 = (6.0f * frandf()) - 3.0f; diff --git a/src/REL/m431Dll/main.c b/src/REL/m431Dll/main.c index 9ef89c53..44ae5974 100644 --- a/src/REL/m431Dll/main.c +++ b/src/REL/m431Dll/main.c @@ -15,6 +15,7 @@ #include "ext_math.h" #include "REL/m431Dll.h" +#include "version.h" typedef struct bss_5C_struct { s16 unk0[6]; @@ -167,8 +168,8 @@ u8 fn_1_57C(void) temp_r31 = &lbl_1_data_4C[0]; temp_r30 = 0; lbl_1_bss_8++; - temp_f30 = lbl_1_bss_8 / 90.0f; - if (lbl_1_bss_8 > 90) { + temp_f30 = lbl_1_bss_8 / (1.5f * REFRESH_RATE); + if (lbl_1_bss_8 > (s32)(1.5f * REFRESH_RATE)) { lbl_1_bss_8 = 0; temp_f30 = 1; temp_r30 = 1; @@ -210,9 +211,9 @@ s32 fn_1_7B0(void) temp_r31 = &lbl_1_data_4C[0]; temp_r29 = 0; lbl_1_bss_8++; - temp_f30 = lbl_1_bss_8 / 120.0f; - if (lbl_1_bss_8 > 120) { - lbl_1_bss_8 = 120; + temp_f30 = lbl_1_bss_8 / (2.0f * REFRESH_RATE); + if (lbl_1_bss_8 > (2 * REFRESH_RATE)) { + lbl_1_bss_8 = 2 * REFRESH_RATE; temp_f30 = 1; temp_r29 = 1; } @@ -258,7 +259,7 @@ void fn_1_A44(omObjData *object) temp_r26 = object->data; temp_r26->unk0 = 4; temp_r26->unk6[0] = 0; - temp_r26->unkA = 900; + temp_r26->unkA = 15 * REFRESH_RATE; temp_r26->unk10 = -1; temp_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M431, 0x1A), MEMORY_DEFAULT_NUM)); object->model[0] = fn_1_6C74(temp_r27, 1024, 25, 64, 64); @@ -365,7 +366,7 @@ void fn_1_10A4(omObjData *object) case 12: if (temp_r31->unk10 != -1) { - temp_r28 = (temp_r31->unkA + 59) / 60; + temp_r28 = (temp_r31->unkA + REFRESH_RATE - 1) / REFRESH_RATE; if (temp_r28 < 0) { temp_r28 = 0; } @@ -426,7 +427,7 @@ void fn_1_10A4(omObjData *object) break; case 20: - if (++lbl_1_bss_C > 210.0f) { + if (++lbl_1_bss_C > (3.5f * REFRESH_RATE)) { lbl_1_bss_0 = 1; } break; @@ -442,11 +443,11 @@ void fn_1_140C(omObjData *object) return; } temp_r31->unk12++; - temp_f31 = temp_r31->unk12 / 18.0f; - if (temp_r31->unk12 > 18.0f) { + temp_f31 = temp_r31->unk12 / (3.0f / 10 * REFRESH_RATE); + if (temp_r31->unk12 > (3.0f / 10 * REFRESH_RATE)) { temp_r31->unk12 = 0; temp_f31 = 1.0f; - temp_r31->unk12 = 18; + temp_r31->unk12 = 0.3f * REFRESH_RATE; temp_r31->unk0 &= ~0x300; } temp_f30 = 1.0 - cosd(90.0f * temp_f31); @@ -848,9 +849,9 @@ void fn_1_2C94(Work2110 *arg0) HuAudFXPlay(1670); } lbl_1_bss_10++; - temp_f31 = lbl_1_bss_10 / 60.0f; + temp_f31 = lbl_1_bss_10 / (1.0f * REFRESH_RATE); if (temp_f31 >= 1.0f) { - temp_r26->unkA = 900; + temp_r26->unkA = 15 * REFRESH_RATE; lbl_1_bss_10 = 0; temp_f31 = 1; lbl_1_data_162++; @@ -870,7 +871,7 @@ void fn_1_2C94(Work2110 *arg0) HuAudFXPlay(1663); } lbl_1_bss_10++; - temp_f31 = lbl_1_bss_10 / 60.0f; + temp_f31 = lbl_1_bss_10 / (1.0f * REFRESH_RATE); if (temp_f31 >= 1.0f) { lbl_1_bss_10 = 0; temp_f31 = 1.0f; @@ -912,7 +913,7 @@ void fn_1_30E0(Work2110 *arg0) switch (lbl_1_data_162) { case 0: lbl_1_bss_10++; - if (lbl_1_bss_10 > 60) { + if (lbl_1_bss_10 > REFRESH_RATE) { lbl_1_bss_10 = 0; lbl_1_data_162++; } @@ -945,7 +946,7 @@ void fn_1_30E0(Work2110 *arg0) temp_r31 = &arg0[0].unk4[temp_r28]; switch (temp_r22 = temp_r31->unk0 & 0x1C) { case 4: - if (sp8[temp_r27] > 15) { + if (sp8[temp_r27] > (VERSION_NTSC ? 15 : 12)) { sp8[temp_r27] = 0; temp_r25 = 1; if (temp_r29 - 1 > -6) { @@ -969,7 +970,7 @@ void fn_1_30E0(Work2110 *arg0) temp_f31 = 50.0f; temp_r31->unk0 &= ~0x1C; if (temp_r22 == 8) { - temp_r31->unk20 = 6; + temp_r31->unk20 = 6.0f; temp_r31->unk0 |= 12; HuAudFXPlay(1664); } @@ -1020,7 +1021,7 @@ void fn_1_3540(Work2110 *arg0) temp_f31 += temp_r29 * 36.0f; lbl_1_bss_18[0] = lbl_1_bss_20[0] + temp_f31; lbl_1_bss_18[1] = lbl_1_bss_20[1] - temp_f31; - lbl_1_bss_14 = (0.01f * temp_f31) * 60; + lbl_1_bss_14 = (0.01f * temp_f31) * REFRESH_RATE; lbl_1_data_162++; lbl_1_data_164 = HuAudFXPlay(1665); break; @@ -1119,7 +1120,7 @@ void fn_1_3D7C(Work2110 *arg0) s16 temp_r27; switch (lbl_1_data_162) { case 0: - if (++lbl_1_bss_10 > 60) { + if (++lbl_1_bss_10 > REFRESH_RATE) { lbl_1_bss_10 = 0; lbl_1_data_162++; } @@ -1151,7 +1152,7 @@ void fn_1_3D7C(Work2110 *arg0) break; case 2: - if (++lbl_1_bss_10 > 60) { + if (++lbl_1_bss_10 > REFRESH_RATE) { lbl_1_bss_10 = lbl_1_data_162 = 0; fn_1_2050(224, 32); } @@ -1235,7 +1236,7 @@ void fn_1_4028(Work2110 *arg0) break; case 2: - if (++lbl_1_bss_10 > 90.0f) { + if (++lbl_1_bss_10 > (1.5f * REFRESH_RATE)) { lbl_1_bss_10 = 0; lbl_1_data_162 = 1; fn_1_2050(224, 128); @@ -1250,7 +1251,7 @@ void fn_1_4028(Work2110 *arg0) } if (temp_r31->unk0 & 0x2) { temp_r31->unk18++; - temp_f31 = temp_r31->unk18 / 30.0f; + temp_f31 = temp_r31->unk18 / (0.5f * REFRESH_RATE); if (temp_f31 >= 1.0f) { temp_r31->unk20 -= 1.0f; if (temp_r31->unk20 < 0.4f) { @@ -1264,16 +1265,16 @@ void fn_1_4028(Work2110 *arg0) } else { if (!temp_r31->unk20) { - if (++temp_r31->unk18 > 30.0f) { + if (++temp_r31->unk18 > (0.5f * REFRESH_RATE)) { temp_r31->unk20 = 1; temp_r31->unk18 = 0; } } else { temp_r31->unk18++; - temp_f31 = temp_r31->unk18 / 54.0f; + temp_f31 = temp_r31->unk18 / (VERSION_NTSC ? 54.0f : 45.0f); if (temp_f31 >= 1.0f) { - temp_r31->unk18 = 54; + temp_r31->unk18 = VERSION_NTSC ? 54 : 45; temp_f31 = 1.0f; } temp_f31 = cosd(temp_f31 * 90.0f); @@ -1594,7 +1595,7 @@ void fn_1_5708(void) Hu3DMotionShiftSet(lbl_1_bss_2C->model[5], lbl_1_bss_2C->motion[5], 0, 8, HU3D_MOTATTR_LOOP); } else { - if (temp_r29->unkA < 180) { + if (temp_r29->unkA < (3 * REFRESH_RATE)) { temp_r31->unk12 = 0; temp_r31->unk10 = 5; } diff --git a/src/REL/m431Dll/object.c b/src/REL/m431Dll/object.c index 4bd1247c..aaa65ed0 100644 --- a/src/REL/m431Dll/object.c +++ b/src/REL/m431Dll/object.c @@ -13,6 +13,7 @@ #include "REL/m431Dll.h" #include "ext_math.h" +#include "version.h" typedef struct bss_struct_62C { u8 unk0; @@ -319,7 +320,7 @@ void fn_1_8790(omObjData *object) } } if (temp_r31->unk7C && temp_r28 == temp_r31->unk6E - 1) { - if (++temp_r31->unk7C > 120) { + if (++temp_r31->unk7C > 2 * REFRESH_RATE) { temp_r31->unk7C = 0; } if ((temp_r31->unk14->unk0 & 0xC0) == 0x40) { @@ -704,6 +705,12 @@ void fn_1_98D4(omObjData *object) Hu3DModelRotSet(object->model[0], 0, temp_r31->unk30, 0); } +#if VERSION_NTSC +#define fn_1_9A04_CHECK (temp_r29->unk_0C == -1 && temp_r29->unk_64 == 14.0f) +#else +#define fn_1_9A04_CHECK (temp_r29->unk_0C == -1 && temp_r29->unk_64 >= 14.0f && temp_r31->unk3C_pal == 0) +#endif + void fn_1_9A04(omObjData *object) { Bss61CWork *temp_r31; @@ -725,12 +732,18 @@ void fn_1_9A04(omObjData *object) if (fn_1_4CDC(temp_r31->unkA, temp_r31->unk40)) { fn_1_B0E8(object, 3, 4); fn_1_B130(object, 0, 8); +#if VERSION_PAL + temp_r31->unk3C_pal = 0; +#endif } } } else { if (temp_r31->unk38 == 3) { - if (temp_r29->unk_0C == -1 && temp_r29->unk_64 == 14.0f) { + if (fn_1_9A04_CHECK) { +#if VERSION_PAL + temp_r31->unk3C_pal = 1; +#endif temp_r31->unk5C = fn_1_4B14(temp_r31->unkA, temp_r31->unk40, &temp_r31->unk7E); if (temp_r31->unk5C != -1) { if (temp_r31->unkA == 0) { @@ -742,18 +755,18 @@ void fn_1_9A04(omObjData *object) if (temp_r31->unk7E != 0) { omVibrate(temp_r31->unk4, 12, 6, 6); if (temp_r31->unkA == 0) { - fn_1_B494(1666, 30); + fn_1_B494(1666, 0.5f * REFRESH_RATE); } else { - fn_1_B494(1671, 30); + fn_1_B494(1671, 0.5f * REFRESH_RATE); } } else { if (temp_r31->unkA == 0) { - fn_1_B494(1667, 30); + fn_1_B494(1667, 0.5f * REFRESH_RATE); } else { - fn_1_B494(1672, 30); + fn_1_B494(1672, 0.5f * REFRESH_RATE); } } temp_r31->unk70++; @@ -891,6 +904,9 @@ void fn_1_A0F8(omObjData *object) if (fn_1_4CDC(temp_r31->unkA, temp_r31->unk40) && fn_1_2090(28) == 12 && fn_1_2090(224) == 0 && fn_1_4724() < 2) { fn_1_B0E8(object, 3, 4); fn_1_B130(object, 0, 8); +#if VERSION_PAL + temp_r31->unk3C_pal = 0; +#endif temp_r27 = 1; } if (temp_r27 == 0) { diff --git a/src/REL/m432Dll/main.c b/src/REL/m432Dll/main.c index a1b6da31..fd8e16f1 100644 --- a/src/REL/m432Dll/main.c +++ b/src/REL/m432Dll/main.c @@ -234,20 +234,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) espBankSet(arg0[arg1 + 1], 10); espBankSet(arg0[arg1 + 4], 11); - if (36000 <= arg2) { - arg2 = 35999; + if (600 * REFRESH_RATE <= arg2) { + arg2 = 600 * REFRESH_RATE - 1; } - var_r30 = arg2 / 3600; - arg2 -= var_r30 * 3600; + var_r30 = arg2 / (60 * REFRESH_RATE); + arg2 -= var_r30 * (60 * REFRESH_RATE); if (var_r30 > 9) { var_r30 = 9; } espBankSet(arg0[arg1], var_r30); - var_r30 = arg2 / 60; - arg2 -= var_r30 * 60; + var_r30 = arg2 / REFRESH_RATE; + arg2 -= var_r30 * REFRESH_RATE; espBankSet(arg0[arg1 + 2], var_r30 / 10); espBankSet(arg0[arg1 + 3], var_r30 % 10); - var_r30 = 101.5f * arg2 / 60.0f; + var_r30 = 101.5f * arg2 / REFRESH_RATE; espBankSet(arg0[arg1 + 5], var_r30 / 10); espBankSet(arg0[arg1 + 6], var_r30 % 10); } diff --git a/src/REL/m441Dll/main.c b/src/REL/m441Dll/main.c index 10409258..fbd7fe34 100644 --- a/src/REL/m441Dll/main.c +++ b/src/REL/m441Dll/main.c @@ -222,20 +222,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) espBankSet(arg0[arg1 + 1], 10); espBankSet(arg0[arg1 + 4], 11); - if (36000 <= arg2) { - arg2 = 35999; + if (600 * REFRESH_RATE <= arg2) { + arg2 = 600 * REFRESH_RATE - 1; } - var_r30 = arg2 / 3600; - arg2 -= var_r30 * 3600; + var_r30 = arg2 / (60 * REFRESH_RATE); + arg2 -= var_r30 * (60 * REFRESH_RATE); if (var_r30 > 9) { var_r30 = 9; } espBankSet(arg0[arg1], var_r30); - var_r30 = arg2 / 60; - arg2 -= var_r30 * 60; + var_r30 = arg2 / REFRESH_RATE; + arg2 -= var_r30 * REFRESH_RATE; espBankSet(arg0[arg1 + 2], var_r30 / 10); espBankSet(arg0[arg1 + 3], var_r30 % 10); - var_r30 = 101.5f * arg2 / 60.0f; + var_r30 = 101.5f * arg2 / REFRESH_RATE; espBankSet(arg0[arg1 + 5], var_r30 / 10); espBankSet(arg0[arg1 + 6], var_r30 % 10); } diff --git a/src/REL/m444dll/pinball.c b/src/REL/m444dll/pinball.c index 167aee6e..a455a9f4 100644 --- a/src/REL/m444dll/pinball.c +++ b/src/REL/m444dll/pinball.c @@ -20,8 +20,10 @@ #include "REL/m444dll.h" #include "ext_math.h" +#include "version.h" #include "math.h" + s16 lbl_1_bss_198F0[5][2]; Vec lbl_1_bss_D8F0[4096]; Vec lbl_1_bss_18F0[4096]; @@ -844,7 +846,7 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2) if (temp_f31 < 0.0f) { temp_f28 -= temp_f31; temp_f31 = ABS(temp_f31); -#if VERSION > 0 +#if VERSION_REV1 if (temp_f31 == 0.0) { sp1C.x = sp1C.y = sp1C.z = 0.0f; break; @@ -886,7 +888,7 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2) } } temp_f31 = VECMag(arg1); -#if VERSION > 0 +#if VERSION_REV1 if (VECMag(&sp1C) == 0.0) { sp1C.x = 0.0f; sp1C.y = 1.0f; @@ -912,7 +914,7 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2) break; } if (temp_f30 < 20.0f -#if VERSION > 0 +#if VERSION_REV1 && !(temp_f30 < 0.000001) #endif ) { @@ -925,7 +927,7 @@ s16 fn_1_B1E8(Vec *arg0, Vec *arg1, s16 arg2) } if (temp_r30 == lbl_1_data_3A4[arg2]) { arg1->y += 0.3; -#if VERSION > 0 +#if VERSION_REV1 if (VECMag((Vec *)&arg1) < 0.000001) { arg1->y += 0.3; } diff --git a/src/REL/m450Dll/main.c b/src/REL/m450Dll/main.c index cca17e4b..7936766b 100644 --- a/src/REL/m450Dll/main.c +++ b/src/REL/m450Dll/main.c @@ -34,6 +34,7 @@ #include "game/window.h" #include "string.h" +#include "version.h" #ifndef __MWERKS__ #include "game/audio.h" @@ -242,20 +243,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) espBankSet(arg0[arg1 + 1], 10); espBankSet(arg0[arg1 + 4], 11); - if (36000 <= arg2) { - arg2 = 35999; + if (600 * REFRESH_RATE <= arg2) { + arg2 = 600 * REFRESH_RATE - 1; } - var_r30 = arg2 / 3600; - arg2 -= var_r30 * 3600; + var_r30 = arg2 / (60 * REFRESH_RATE); + arg2 -= var_r30 * (60 * REFRESH_RATE); if (var_r30 > 9) { var_r30 = 9; } espBankSet(arg0[arg1], var_r30); - var_r30 = arg2 / 60; - arg2 -= var_r30 * 60; + var_r30 = arg2 / REFRESH_RATE; + arg2 -= var_r30 * REFRESH_RATE; espBankSet(arg0[arg1 + 2], var_r30 / 10); espBankSet(arg0[arg1 + 3], var_r30 % 10); - var_r30 = 101.5f * arg2 / 60.0f; + var_r30 = 101.5f * arg2 / REFRESH_RATE; espBankSet(arg0[arg1 + 5], var_r30 / 10); espBankSet(arg0[arg1 + 6], var_r30 % 10); } @@ -1018,7 +1019,7 @@ void fn_1_2E34(WorkPlayerOld *player) player->unk_3C |= 0x100; player->unk_A4 = 0; if (!(player2->unk_3C & 0x100)) { - player->unk_84.y = 26.766666f; + player->unk_84.y = VERSION_NTSC ? 26.766666f : 32.120003f; } } if (state == 3) { @@ -1122,7 +1123,7 @@ void fn_1_3CE0(WorkPlayerOld *player, s32 *state, u32 *motAttr) } if (player->unk_14[3] >= 0 && (player->unk_28 & 0x100)) { - fn_1_2BD0(player, 26.766666f, 1.0f); + fn_1_2BD0(player, VERSION_NTSC ? 26.766666f : 32.120003f, 1.0f); *motAttr = HU3D_MOTATTR_NONE; *state = 3; } @@ -1137,14 +1138,14 @@ void fn_1_3DB8(WorkPlayerOld *player, s32 *state, u32 *motAttr) player->unk_A4 = 0; } else { - player->unk_84.y += 3.65f; + player->unk_84.y += 219.0f / REFRESH_RATE; } } else { player->unk_A4 = 0; } } - player->unk_84.y += -2.4333334f; + player->unk_84.y += -146.0f / REFRESH_RATE; if (player->unk_14[5] >= 0 && (player->unk_28 & 0x140)) { player->unk_38 = 3; player->unk_84.y = 0; @@ -1271,7 +1272,7 @@ void fn_1_40C0(WorkPlayerOld *player) if (player->unk_3C & 0x2000) { player->unk_84.y = 0; } - temp_f28 = 0; + temp_f28 = 0.0f; if (50.0f < ABS(player->unk_84.y)) { player->unk_84.y = 50.0f * ((0.0f > player->unk_84.y) ? -1 : 1); } @@ -2019,25 +2020,25 @@ s32 lbl_1_data_18C[8] = { 0, 1, 2, 1, 1, -1, -1, -1 }; s32 lbl_1_data_1AC[8] = { 0, 1, 2, 1, 1, -1, -1, -1 }; s32 lbl_1_data_1CC[4] = { 0x3E, 0x65, 0x3F, 0x66 }; UnkData204Struct lbl_1_data_1DC[5] = { - { 510.0f, 0 }, - { 300.0f, 1 }, - { 300.0f, 0 }, - { 300.0f, 1 }, + { 8.5f * REFRESH_RATE, 0 }, + { 5.0f * REFRESH_RATE, 1 }, + { 5.0f * REFRESH_RATE, 0 }, + { 5.0f * REFRESH_RATE, 1 }, { 0.0f, 0 }, }; UnkData204Struct lbl_1_data_204[6] = { - { 210.0f, 0 }, - { 300.0f, 1 }, - { 300.0f, 0 }, - { 300.0f, 1 }, - { 300.0f, 0 }, + { 3.5f * REFRESH_RATE, 0 }, + { 5.0f * REFRESH_RATE, 1 }, + { 5.0f * REFRESH_RATE, 0 }, + { 5.0f * REFRESH_RATE, 1 }, + { 5.0f * REFRESH_RATE, 0 }, { 0.0f, 0 }, }; Vec2f lbl_1_data_234[4] = { - { 300.0f, 300.0f }, - { 300.0f, 240.0f }, - { 300.0f, 210.0f }, - { 300.0f, 180.0f }, + { 5.0f * REFRESH_RATE, 5.0f * REFRESH_RATE }, + { 5.0f * REFRESH_RATE, 4.0f * REFRESH_RATE }, + { 5.0f * REFRESH_RATE, 3.5f * REFRESH_RATE }, + { 5.0f * REFRESH_RATE, 3.0f * REFRESH_RATE }, }; float lbl_1_data_254[5] = { 0.4f, 0.35f, 0.3f, 0.25f, 0.2f }; float lbl_1_data_268[5] = { 0.45f, 0.4f, 0.35f, 0.3f, 0.25f }; @@ -2381,9 +2382,9 @@ void fn_1_8500(void) HuPrcVSleep(); } HuAudFXPlay(0x3B); - fn_1_A968(4, 8.0f, 0, 0, 60.0f); - fn_1_E1A8(0, 9, 8.0f, 0, 7, 60.0f); - fn_1_E1A8(1, 9, 8.0f, 0, 7, 60.0f); + fn_1_A968(4, 8.0f, 0, 0, REFRESH_RATE); + fn_1_E1A8(0, 9, 8.0f, 0, 7, REFRESH_RATE); + fn_1_E1A8(1, 9, 8.0f, 0, 7, REFRESH_RATE); fn_1_7B90(var_r31, 0x2D0004); fn_1_7C14(var_r31, -1); HuAudFXPlay(0x3C); @@ -2786,7 +2787,7 @@ void fn_1_AAB0(UnkM450Struct3 *arg0, Vec2f *arg1, s32 arg2) float var_f31 = 1.0f; if (arg2 != 0) { var_f31 = arg0->unk_F4; - if ((lbl_1_data_F6C[lbl_1_bss_118] - lbl_1_bss_304) > 0xE10) { + if ((lbl_1_data_F6C[lbl_1_bss_118] - lbl_1_bss_304) > 60 * REFRESH_RATE) { arg0->unk_F4 = arg0->unk_F4 - 0.1f; if (0.0f > arg0->unk_F4) { arg0->unk_F4 = 0.0f; @@ -2916,7 +2917,7 @@ void fn_1_AD58(omObjData *object) } break; case 0xBBE: - fn_1_A828(var_r31, 120.0f, 3000.0f, 1605.0f); + fn_1_A828(var_r31, 2 * REFRESH_RATE, 3000.0f, 1605.0f); if (lbl_1_bss_1A4->work[0] >= 0x40B) { var_r31->unk_150++; var_r31->unk_E0 = 0.0f; @@ -3048,7 +3049,7 @@ void fn_1_AD58(omObjData *object) fn_1_19A10(&var_r31->unk_00, &spE4); fn_1_40C0(&var_r31->unk_00); var_r31->unk_E0 += 1.0f; - spC8 = (60.0f * (3.0f + lbl_1_data_A0C[1].unk_14)); + spC8 = (REFRESH_RATE * (3.0f + lbl_1_data_A0C[1].unk_14)); if (spC8 < var_r31->unk_E0) { var_r31->unk_150++; var_r31->unk_154 &= ~0x70; @@ -3115,7 +3116,7 @@ void fn_1_AD58(omObjData *object) Hu3DMotionTimeSet(object->model[0], 50.0f); } var_r31->unk_E0 += 1.0f; - if (180.0f < var_r31->unk_E0) { + if (3 * REFRESH_RATE < var_r31->unk_E0) { var_r31->unk_150 = 0xBC6; var_r31->unk_E0 = 0.0f; var_r31->unk_154 |= 0x20; @@ -3154,7 +3155,7 @@ void fn_1_AD58(omObjData *object) fn_1_19A10(&var_r31->unk_00, &spE4); fn_1_40C0(&var_r31->unk_00); var_r31->unk_E0 += 1.0f; - if (180.0f < var_r31->unk_E0) { + if (3 * REFRESH_RATE < var_r31->unk_E0) { var_r31->unk_150 = 0xBC6; var_r31->unk_E0 = 0.0f; var_r31->unk_154 |= 0x20; @@ -3660,7 +3661,7 @@ void fn_1_ED4C(omObjData *object) } break; case 0xFA8: - fn_1_A828(var_r31, 120.0f, 3000.0f, 1605.0f); + fn_1_A828(var_r31, 2 * REFRESH_RATE, 3000.0f, 1605.0f); if (lbl_1_bss_1A4->work[0] >= 0x3F9) { var_r31->unk_150 = var_r31->unk_150 + 1; var_r31->unk_E0 = 0.0f; @@ -4038,7 +4039,7 @@ void fn_1_12688(omObjData *object) if (object->work[0] != 0) { if (lbl_1_bss_1A4->work[0] <= 0x3EB) { object->work[0] = object->work[0] - (3.0f - (lbl_1_bss_128 / 120.0f)); - if (object->work[0] > 0x258) { + if (object->work[0] > 10 * REFRESH_RATE) { object->work[0] = 1; } } @@ -4055,7 +4056,7 @@ void fn_1_12688(omObjData *object) } } else if (Hu3DMotionEndCheck(object->model[0]) != 0) { - object->work[0] = frandmod(0x258); + object->work[0] = frandmod(10 * REFRESH_RATE); Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); } @@ -4063,7 +4064,7 @@ void fn_1_12688(omObjData *object) void fn_1_1291C(omObjData *object) { - object->work[0] = frandmod(0x258); + object->work[0] = frandmod(10 * REFRESH_RATE); omSetTra(object, 0.0f, 0.0f, 0.0f); omSetRot(object, 0.0f, 0.0f, 0.0f); object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M450, 0x22)); @@ -4312,27 +4313,27 @@ UnkDataA0CStruct lbl_1_data_A0C[2] = { { 0x00510067, DATA_MAKE_NUM(DATADIR_M450, 0x66), DATA_MAKE_NUM(DATADIR_M450, 0x69), DATA_MAKE_NUM(DATADIR_M450, 0x6A), 5, 5, NULL }, }; UnkDataA80Struct lbl_1_data_A80[9] = { - { "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, 0.6f, 350.0f }, -1, 0 }, - { "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, 0.6f, 350.0f }, -2, 0 }, - { "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -0.6f, 350.0f }, -1, 0 }, - { "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -0.6f, 350.0f }, -2, 0 }, - { "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 0.6f, 350.0f }, -1, 0 }, - { "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 0.6f, 350.0f }, -2, 0 }, - { "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 0.6f, 350.0f }, -2, 0 }, - { "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 0.6f, 300.0f }, -1, 0 }, - { "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, 0.6f, 300.0f }, -2, 0 }, + { "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, 36.0f / REFRESH_RATE, 350.0f }, -1, 0 }, + { "m450mex06-s2hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, 36.0f / REFRESH_RATE, 350.0f }, -2, 0 }, + { "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -36.0f / REFRESH_RATE, 350.0f }, -1, 0 }, + { "m450mex06-s2hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -36.0f / REFRESH_RATE, 350.0f }, -2, 0 }, + { "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 36.0f / REFRESH_RATE, 350.0f }, -1, 0 }, + { "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 36.0f / REFRESH_RATE, 350.0f }, -2, 0 }, + { "m450mex06-s2hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 36.0f / REFRESH_RATE, 350.0f }, -2, 0 }, + { "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 36.0f / REFRESH_RATE, 300.0f }, -1, 0 }, + { "m450mex06-s2hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, 36.0f / REFRESH_RATE, 300.0f }, -2, 0 }, }; UnkDataA80Struct lbl_1_data_C58[0xA] = { - { "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 60.0f, -0.6f, 300.0f }, -1, 0 }, - { "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, -0.6f, 300.0f }, -2, 0 }, - { "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 300.0f, -0.6f, 300.0f }, -2, 0 }, - { "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, -1.2f, 300.0f }, -1, 0 }, - { "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, -1.2f, 300.0f }, -2, 0 }, - { "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -0.6f, 300.0f }, -1, 0 }, - { "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -0.6f, 300.0f }, -2, 0 }, - { "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 1.2f, 300.0f }, -1, 0 }, - { "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 1.2f, 300.0f }, -2, 0 }, - { "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 1.2f, 300.0f }, -2, 0 }, + { "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 60.0f, -36.0f / REFRESH_RATE, 300.0f }, -1, 0 }, + { "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 180.0f, -36.0f / REFRESH_RATE, 300.0f }, -2, 0 }, + { "m450mex06-s4hook01", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 300.0f, -36.0f / REFRESH_RATE, 300.0f }, -2, 0 }, + { "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 135.0f, -72.0f / REFRESH_RATE, 300.0f }, -1, 0 }, + { "m450mex06-s4hook03", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 315.0f, -72.0f / REFRESH_RATE, 300.0f }, -2, 0 }, + { "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 225.0f, -36.0f / REFRESH_RATE, 300.0f }, -1, 0 }, + { "m450mex06-s4hook02", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 45.0f, -36.0f / REFRESH_RATE, 300.0f }, -2, 0 }, + { "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 0.0f, 72.0f / REFRESH_RATE, 300.0f }, -1, 0 }, + { "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 120.0f, 72.0f / REFRESH_RATE, 300.0f }, -2, 0 }, + { "m450mex06-s4hook04", { 0.0f, 0.0f, 0.0f }, -1, 0.0f, { 240.0f, 72.0f / REFRESH_RATE, 300.0f }, -2, 0 }, }; char *lbl_1_data_E68[5] = { "m450m01-from1to2", @@ -4403,7 +4404,7 @@ s32 lbl_1_data_F00[0x17] = { }; s32 lbl_1_data_F5C[4] = { DATA_MAKE_NUM(DATADIR_M450, 0x24), DATA_MAKE_NUM(DATADIR_M450, 0x25), DATA_MAKE_NUM(DATADIR_M450, 0x26), DATA_MAKE_NUM(DATADIR_M450, 0x27) }; -s32 lbl_1_data_F6C[6] = { 0, 0xE10, 0x4650, 0xE10, 0x4650, 0x4650 }; +s32 lbl_1_data_F6C[6] = { 0, 60 * REFRESH_RATE, 300 * REFRESH_RATE, 60 * REFRESH_RATE, 300 * REFRESH_RATE, 300 * REFRESH_RATE }; float lbl_1_data_F84[5] = { 1200.0f, 1500.0f, 0.0f, 200.0f, 300.0f }; float lbl_1_data_F98[5] = { 1200.0f, 1500.0f, 0.0f, 200.0f, 300.0f }; float *lbl_1_data_FAC[6] = { NULL, lbl_1_data_F84, NULL, lbl_1_data_F98, NULL, NULL }; @@ -4502,7 +4503,7 @@ void fn_1_12A1C(omObjData *object) } } else if (Hu3DMotionEndCheck(object->model[0]) != 0) { - object->work[0] = frandmod(0xB4); + object->work[0] = frandmod(3 * REFRESH_RATE); Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); } @@ -4513,7 +4514,7 @@ void fn_1_12B80(omObjData *object) s32 var_r30; s16 var_r29; - object->work[0] = frandmod(0xB4); + object->work[0] = frandmod(3 * REFRESH_RATE); omSetTra(object, 0.0f, 0.0f, 0.0f); omSetRot(object, 0.0f, 0.0f, 0.0f); @@ -4813,7 +4814,7 @@ void fn_1_13F28(omObjData *object) } if (((UnkM450Struct5 *)lbl_1_bss_138->data)->unk_10C < 3) { var_r31->unk_14 += 1.0f; - if (1200.0f < var_r31->unk_14) { + if (20 * REFRESH_RATE < var_r31->unk_14) { var_r31->unk_1C = 0; fn_1_1B510(var_r29); } @@ -6012,7 +6013,7 @@ void fn_1_19CE0(omObjData *object) var_r31->unk_FC &= ~0x3000; var_r31->unk_FC &= ~0x30000; var_r31->unk_FC &= ~0x300000; - var_r31->unk_100 = 0x78; + var_r31->unk_100 = 2 * REFRESH_RATE; var_r31->unk_F8 = 0.0f; var_r31->unk_00.unk_3C &= ~0x210; } @@ -6567,7 +6568,7 @@ s32 fn_1_1C898(UnkM450Struct5 *var_r31, omObjData *var_r30) HuAudCharVoicePlay(var_r31->unk_11C, 0x123); var_r31->unk_FC |= 0x10; var_r31->unk_00.unk_3C |= 0x210; - fn_1_2BD0(&var_r31->unk_00, 48.179996f, 0.0f); + fn_1_2BD0(&var_r31->unk_00, VERSION_NTSC ? 48.179995f : 57.816f, 0.0f); Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[8], 0.0f, 8.0f, 0); if (fn_1_125C0(0, 1) <= 0) { var_r31->unk_FC |= 0x80000; @@ -6615,7 +6616,7 @@ s32 fn_1_1C898(UnkM450Struct5 *var_r31, omObjData *var_r30) var_r31->unk_FC |= 0x100000; var_r31->unk_00.unk_3C |= 0x200; var_r31->unk_00.unk_3C &= ~0x10; - var_f31 = 40.15f; + var_f31 = VERSION_NTSC ? 40.15f : 48.180005f; if (var_r31->unk_FC & 4) { var_f31 = var_f31 / 2; } @@ -6690,7 +6691,7 @@ void fn_1_1E150(omObjData *var_r29) HuAudCharVoicePlay(var_r31->unk_11C, 0x123); var_r31->unk_FC |= 0x800000; var_r31->unk_118 = 0x7EB; - fn_1_2BD0(&var_r31->unk_00, 53.533333f, 0.0f); + fn_1_2BD0(&var_r31->unk_00, VERSION_NTSC ? 53.533333f : 64.240005f, 0.0f); Hu3DMotionSet(var_r29->model[0], var_r29->motion[8]); Hu3DModelAttrReset(var_r29->model[0], HU3D_ATTR_DISPOFF); fn_1_125C0(0, 0); @@ -7074,7 +7075,7 @@ void fn_1_20170(omObjData *var_r30) break; case 0x7E9: if (lbl_1_bss_1A4->work[0] >= 0x417) { - if (100.0f < lbl_1_bss_128) { + if ((VERSION_NTSC ? 100.0f : 80.0f) < lbl_1_bss_128) { var_r31->unk_118++; GWPlayerCoinWinSet(lbl_1_bss_120, 10); Hu3DMotionShiftSet(var_r30->model[0], var_r30->motion[21], 0.0f, 8.0f, 0); @@ -7092,14 +7093,13 @@ void fn_1_20170(omObjData *var_r30) break; case 0x7EB: if (var_r31->unk_FC & 0x800000) { - // inline? var_r29 = var_r31; - var_r29->unk_00.unk_84.y += -2.4333334f; + var_r29->unk_00.unk_84.y += -146.0f / REFRESH_RATE; var_r29->unk_00.unk_6C.y += var_r29->unk_00.unk_84.y; var_r29->unk_00.unk_A8 = MapPos( var_r29->unk_00.unk_6C.x, var_r29->unk_00.unk_6C.y, var_r29->unk_00.unk_6C.z, var_r29->unk_00.unk_C0, &var_r29->unk_00.unk_AC); if (var_r29->unk_00.unk_A8 > var_r29->unk_00.unk_6C.y) { - fn_1_2BD0(&var_r31->unk_00, 53.533333f, 0.0f); + fn_1_2BD0(&var_r31->unk_00, VERSION_NTSC ? 53.533333f : 64.240005f, 0.0f); } var_f31 = var_r29->unk_00.unk_6C.x; var_f30 = var_r29->unk_00.unk_6C.z; @@ -7367,12 +7367,12 @@ void fn_1_24620(omObjData *var_r31) case 0x40D: case 0x415: if (lbl_1_bss_2FC >= 0) { - MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + 0x3B) / 60); + MGSeqParamSet(lbl_1_bss_2FC, 1, (lbl_1_bss_304 + REFRESH_RATE - 1) / REFRESH_RATE); } else { sp120 = 0; if ((lbl_1_bss_118 == 2) || (lbl_1_bss_118 == 4) || (lbl_1_bss_118 == 5)) { - if (lbl_1_bss_304 < 0x708) { + if (lbl_1_bss_304 < 30 * REFRESH_RATE) { sp120 = 1; } } @@ -7380,7 +7380,7 @@ void fn_1_24620(omObjData *var_r31) sp120 = 1; } if (sp120 != 0) { - lbl_1_bss_2FC = MGSeqCreate(1, lbl_1_bss_304 / 60, -1, -1); + lbl_1_bss_2FC = MGSeqCreate(1, lbl_1_bss_304 / REFRESH_RATE, -1, -1); } } lbl_1_bss_304--; @@ -7390,7 +7390,7 @@ void fn_1_24620(omObjData *var_r31) } break; case 0x3F4: - fn_1_23CA0(var_r31, 270.0f, 120.0f); + fn_1_23CA0(var_r31, 270.0f, 2 * REFRESH_RATE); break; case 0x3F5: lbl_1_bss_128 += 1.0f; @@ -7413,7 +7413,7 @@ void fn_1_24620(omObjData *var_r31) omVibrate(lbl_1_bss_120, 0xC, 6, 6); lbl_1_bss_128 += 1.0f; Hu3DModelPosSet(lbl_1_bss_1A0->model[6], 0.0f, -(2.0f * lbl_1_bss_128), 0.0f); - if (120.0f < lbl_1_bss_128) { + if (2 * REFRESH_RATE < lbl_1_bss_128) { var_r31->work[0] += 1; fn_1_6CB0(fn_1_9074, 2); HuAudFXPlay(0x7BB); @@ -7433,7 +7433,7 @@ void fn_1_24620(omObjData *var_r31) } break; case 0x3FC: - var_f31 = lbl_1_bss_128 / 120.0f; + var_f31 = lbl_1_bss_128 / (2 * REFRESH_RATE); if (1.0f < var_f31) { var_f31 = 1.0f; } @@ -7442,7 +7442,7 @@ void fn_1_24620(omObjData *var_r31) Hu3DModelRotSet(lbl_1_bss_1A0->model[5], 0.0f, 90.0f, 0.0f); Hu3DModelPosSet(lbl_1_bss_1A0->model[5], var_r30->unk_30[3].x, var_r30->unk_30[3].y, var_r30->unk_30[3].z); Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[5], var_f31); - fn_1_23CA0(var_r31, 270.0f, 120.0f); + fn_1_23CA0(var_r31, 270.0f, 2 * REFRESH_RATE); break; case 0x3FD: case 0x3FE: @@ -7493,7 +7493,7 @@ void fn_1_24620(omObjData *var_r31) } break; case 0x406: - fn_1_23CA0(var_r31, 270.0f, 120.0f); + fn_1_23CA0(var_r31, 270.0f, 2 * REFRESH_RATE); break; case 0x407: lbl_1_bss_128 += 1.0f; @@ -7516,7 +7516,7 @@ void fn_1_24620(omObjData *var_r31) omVibrate(lbl_1_bss_120, 0xC, 6, 6); lbl_1_bss_128 += 1.0f; Hu3DModelPosSet(lbl_1_bss_1A0->model[17], 0.0f, -(2.0f * lbl_1_bss_128), 0.0f); - if (120.0f < lbl_1_bss_128) { + if (2 * REFRESH_RATE < lbl_1_bss_128) { var_r31->work[0] += 1; fn_1_6CB0(fn_1_9824, 4); HuAudFXPlay(0x7BB); @@ -7536,7 +7536,7 @@ void fn_1_24620(omObjData *var_r31) } break; case 0x40E: - var_f31 = lbl_1_bss_128 / 120.0f; + var_f31 = lbl_1_bss_128 / (2 * REFRESH_RATE); if (1.0f < var_f31) { var_f31 = 1.0f; } @@ -7545,7 +7545,7 @@ void fn_1_24620(omObjData *var_r31) Hu3DModelRotSet(lbl_1_bss_1A0->model[16], 0.0f, -90.0f, 0.0f); Hu3DModelPosSet(lbl_1_bss_1A0->model[16], var_r30->unk_30[8].x, var_r30->unk_30[8].y, var_r30->unk_30[8].z); Hu3DModelTPLvlSet(lbl_1_bss_1A0->model[16], var_f31); - fn_1_23CA0(var_r31, 270.0f, 120.0f); + fn_1_23CA0(var_r31, 270.0f, 2 * REFRESH_RATE); break; case 0x40F: lbl_1_bss_20 = -1; @@ -7598,7 +7598,7 @@ void fn_1_24620(omObjData *var_r31) lbl_1_bss_128 += 1.0f; break; case 0x417: - fn_1_23CA0(var_r31, 0.0f, 120.0f); + fn_1_23CA0(var_r31, 0.0f, 2 * REFRESH_RATE); break; case 0x418: lbl_1_bss_128 += 1.0f; diff --git a/src/REL/m461Dll/main.c b/src/REL/m461Dll/main.c index f94c9831..d24bdfd7 100644 --- a/src/REL/m461Dll/main.c +++ b/src/REL/m461Dll/main.c @@ -223,20 +223,20 @@ void fn_1_580(s32 *arg0, s32 arg1, s32 arg2) espBankSet(arg0[arg1 + 1], 10); espBankSet(arg0[arg1 + 4], 11); - if (36000 <= arg2) { - arg2 = 35999; + if (600 * REFRESH_RATE <= arg2) { + arg2 = 600 * REFRESH_RATE - 1; } - var_r30 = arg2 / 3600; - arg2 -= var_r30 * 3600; + var_r30 = arg2 / (60 * REFRESH_RATE); + arg2 -= var_r30 * (60 * REFRESH_RATE); if (var_r30 > 9) { var_r30 = 9; } espBankSet(arg0[arg1], var_r30); - var_r30 = arg2 / 60; - arg2 -= var_r30 * 60; + var_r30 = arg2 / REFRESH_RATE; + arg2 -= var_r30 * REFRESH_RATE; espBankSet(arg0[arg1 + 2], var_r30 / 10); espBankSet(arg0[arg1 + 3], var_r30 % 10); - var_r30 = 101.5f * arg2 / 60.0f; + var_r30 = 101.5f * arg2 / REFRESH_RATE; espBankSet(arg0[arg1 + 5], var_r30 / 10); espBankSet(arg0[arg1 + 6], var_r30 % 10); } diff --git a/src/REL/option/record.c b/src/REL/option/record.c index 671f0793..fb16ee2e 100755 --- a/src/REL/option/record.c +++ b/src/REL/option/record.c @@ -10,6 +10,7 @@ #include "dolphin.h" #include "math.h" +#include "version.h" #define RECORD_TYPE_BOARD 0 #define RECORD_TYPE_MG 1 @@ -572,7 +573,7 @@ static void ShowBoard(omObjData *object, s32 board) espPosSet(work->sprList[board], 275.0f, 72.0f); value = work->boardRecord[work->board].playCount; for (i = 0; i < PLAY_COUNT_NUM_DIGITS; i++) { - espPosSet(work->sprList[i + 11], 323.0f + 20.0f * i, 116.0f); + espPosSet(work->sprList[i + 11], (VERSION_NTSC ? 323.0f : 392.0f) + 20.0f * i, 116.0f); if (value > 999) { espBankSet(work->sprList[i + 11], i + 10); } @@ -583,7 +584,7 @@ static void ShowBoard(omObjData *object, s32 board) espPosSet(work->sprList[8], 416.0f, 120.0f); value = work->boardRecord[work->board].maxCoins; for (i = 0; i < MAX_COINS_NUM_DIGITS; i++) { - espPosSet(work->sprList[i + 15], 364.0f + 20.0f * i, 268.0f); + espPosSet(work->sprList[i + 15], (VERSION_NTSC ? 364.0f : 392.0f) + 20.0f * i, 268.0f); if (value > 999) { espBankSet(work->sprList[i + 15], i + 10); } @@ -591,10 +592,12 @@ static void ShowBoard(omObjData *object, s32 board) espBankSet(work->sprList[i + 15], GetDigit(value, 3 - i)); } } +#if VERSION_NTSC espPosSet(work->sprList[9], 456.0f, 268.0f); +#endif value = work->boardRecord[work->board].maxStars; for (i = 0; i < MAX_STARS_NUM_DIGITS; i++) { - espPosSet(work->sprList[i + 19], 364.0f + 20.0f * i, 312.0f); + espPosSet(work->sprList[i + 19], (VERSION_NTSC ? 364.0f : 392.0f) + 20.0f * i, 312.0f); if (value > 999) { espBankSet(work->sprList[i + 19], i + 10); } @@ -602,7 +605,9 @@ static void ShowBoard(omObjData *object, s32 board) espBankSet(work->sprList[i + 19], GetDigit(value, 3 - i)); } } +#if VERSION_NTSC espPosSet(work->sprList[10], 456.0f, 312.0f); +#endif for (i = 0; i < NUM_CHARACTERS; i++) { espPosSet(work->sprList[i + 49], 92.0f + 50.0f * i, 200.0f); for (j = 0; j < WIN_COUNT_NUM_DIGITS; j++) { @@ -616,11 +621,15 @@ static void ShowBoard(omObjData *object, s32 board) for (i = 0; i < PLAY_COUNT_NUM_DIGITS; i++) { espDispOn(work->sprList[i + 11]); } +#if VERSION_NTSC espDispOn(work->sprList[8]); +#endif for (i = 0; i < MAX_COINS_NUM_DIGITS; i++) { espDispOn(work->sprList[i + 15]); } +#if VERSION_NTSC espDispOn(work->sprList[9]); +#endif for (i = 0; i < MAX_STARS_NUM_DIGITS; i++) { espDispOn(work->sprList[i + 19]); } @@ -759,14 +768,14 @@ static void ShowMG(omObjData *object, s32 page) } break; case DISPLAY_TYPE_TIME: - timeMin = value / 3600; - timeSec = (value % 3600) / 60; - timeCenti = (value % 3600) % 60; + timeMin = value / (60 * REFRESH_RATE); + timeSec = (value % (60 * REFRESH_RATE)) / REFRESH_RATE; + timeCenti = (value % (60 * REFRESH_RATE)) % REFRESH_RATE; if (mgTbl[mg].id == 405 || mgTbl[mg].id == 432) { - timeCenti *= 1.6916667f; + timeCenti *= (101.5f / REFRESH_RATE); } else { - timeCenti *= 1.6666666f; + timeCenti *= (100.0f / REFRESH_RATE); } for (j = 1; j < MG_TIME_NUM_DIGITS; j++) { espPosSet(work->sprList[i * 8 + 89 + j], 336.0f + 16.0f * j, 116.0f + 40.0f * i); diff --git a/src/REL/option/window.c b/src/REL/option/window.c index 6bb32d8d..7497bef7 100755 --- a/src/REL/option/window.c +++ b/src/REL/option/window.c @@ -5,6 +5,8 @@ #include "game/process.h" #include "game/sprite.h" +#include "version.h" + static void ExecWindow(void); OptionWindow *OptionWinCreate(s32 id) @@ -33,13 +35,13 @@ OptionWindow *OptionWinCreate(s32 id) HuWinMesSpeedSet(work->window, 0); break; case 2: - work->window = HuWinExCreateStyled(-10000.0f, 88.0f, 224, 34, -1, 0); + work->window = HuWinExCreateStyled(-10000.0f, 88.0f, VERSION_NTSC ? 224 : 320, 34, -1, 0); HuWinAttrSet(work->window, 0x800); HuWinBGTPLvlSet(work->window, 0.0f); HuWinMesSpeedSet(work->window, 0); break; case 3: - work->window = HuWinExCreateStyled(175.0f, 100.0f, 300, 34, -1, 0); + work->window = HuWinExCreateStyled(175.0f, 100.0f, VERSION_NTSC ? 300 : 320, 34, -1, 0); HuWinBGTPLvlSet(work->window, 0.0f); HuWinMesSpeedSet(work->window, 0); break; From be795772029dec01530956f14fdb2427e96e0ed9 Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Sun, 17 Nov 2024 00:08:24 +0100 Subject: [PATCH 141/311] Port gamework.c to PAL (#467) --- config/GMPE01_00/symbols.txt | 1 - config/GMPP01_00/symbols.txt | 2 +- configure.py | 2 +- include/game/gamework_data.h | 8 +++ src/game/gamework.c | 132 ++++++++++++++++++++--------------- 5 files changed, 85 insertions(+), 60 deletions(-) diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index cfa1a176..ff55eea2 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -4293,7 +4293,6 @@ luckyMessTbl = .data:0x8013ADC4; // type:object size:0x24 scope:local jumptable_8013ADE8 = .data:0x8013ADE8; // type:object size:0x20 scope:local cursorYTbl = .data:0x8013AE08; // type:object size:0x10 scope:local hiliteYTbl = .data:0x8013AE18; // type:object size:0x10 scope:local - hiliteColTbl = .data:0x8013AE28; // type:object size:0xC scope:local hostMesTbl = .data:0x8013AE38; // type:object size:0x90 scope:local houseMdlTbl = .data:0x8013AEC8; // type:object size:0x30 scope:local diff --git a/config/GMPP01_00/symbols.txt b/config/GMPP01_00/symbols.txt index 36e40d58..33e87867 100644 --- a/config/GMPP01_00/symbols.txt +++ b/config/GMPP01_00/symbols.txt @@ -4611,7 +4611,7 @@ __fini_cpp_exceptions_reference = .dtors:0x8011DB04; // type:object size:0x4 sco lbl_8011DB20 = .rodata:0x8011DB20; // type:object size:0x10 data:4byte lbl_8011DB30 = .rodata:0x8011DB30; // type:object size:0x10 data:4byte lbl_8011DB40 = .rodata:0x8011DB40; // type:object size:0x10 data:4byte -lbl_8011DB50 = .rodata:0x8011DB50; // type:object size:0x20 data:byte +lbl_8011DB50 = .rodata:0x8011DB50; // type:object size:0x20 scope:local data:byte lbl_8011DB70 = .rodata:0x8011DB70; // type:object size:0x10 data:4byte lbl_8011DB80 = .rodata:0x8011DB80; // type:object size:0x24 data:4byte lbl_8011DBA4 = .rodata:0x8011DBA4; // type:object size:0xC data:4byte diff --git a/configure.py b/configure.py index a1c14491..9a885735 100644 --- a/configure.py +++ b/configure.py @@ -396,7 +396,7 @@ config.libs = [ Object(Matching, "game/perf.c"), Object(Matching, "game/objmain.c"), Object(Matching, "game/fault.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/gamework.c"), + Object(Matching, "game/gamework.c"), Object(Matching, "game/objsysobj.c"), Object(Matching, "game/objdll.c"), Object(Matching, "game/frand.c"), diff --git a/include/game/gamework_data.h b/include/game/gamework_data.h index 6e876bc1..53500e51 100644 --- a/include/game/gamework_data.h +++ b/include/game/gamework_data.h @@ -144,6 +144,9 @@ typedef struct game_stat { /* 0x110 */ PauseBackupConfig party_pause; } GameStat; +extern s16 GwLanguage; +extern s16 GwLanguageSave; + extern PlayerConfig GWPlayerCfg[4]; extern PlayerState GWPlayer[4]; extern SystemState GWSystem; @@ -169,6 +172,11 @@ static inline s32 GWPartyGet(void) return GWSystem.party; } +static inline void GWLanguageSet(s16 language) +{ + GWGameStat.language = language; +} + static inline s32 GWLanguageGet(void) { return GWGameStat.language; diff --git a/src/game/gamework.c b/src/game/gamework.c index 371d8499..ea372944 100644 --- a/src/game/gamework.c +++ b/src/game/gamework.c @@ -1,7 +1,12 @@ -#include "string.h" #include "game/gamework.h" -#include "game/gamework_data.h" #include "game/flag.h" +#include "game/gamework_data.h" +#include "string.h" +#include "version.h" + + +s16 GwLanguage = 1; +s16 GwLanguageSave = -1; GameStat GWGameStatDefault; GameStat GWGameStat; @@ -20,15 +25,16 @@ static inline void InitPlayerConfig(void) { PlayerConfig *config; s32 i; - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { config = &GWPlayerCfg[i]; config->character = i; config->pad_idx = i; config->diff = 0; config->group = i; - if(!HuPadStatGet(i)) { + if (!HuPadStatGet(i)) { config->iscom = 0; - } else { + } + else { config->iscom = 1; } } @@ -36,11 +42,11 @@ static inline void InitPlayerConfig(void) static inline void ResetBoardSettings(void) { - GWRumbleSet(1); - GWMGExplainSet(1); - GWMGShowComSet(1); - GWMessSpeedSet(1); - GWSaveModeSet(0); + GWRumbleSet(1); + GWMGExplainSet(1); + GWMGShowComSet(1); + GWMessSpeedSet(1); + GWSaveModeSet(0); } void GWInit(void) @@ -49,23 +55,29 @@ void GWInit(void) _InitFlag(); GWErase(); InitPlayerConfig(); +#if VERSION_JAP + GWGameStat.language = 0; +#elif VERSION_NTSC GWGameStat.language = 1; +#else + GWLanguageSet(GwLanguage); +#endif ResetBoardSettings(); } static inline void ResetMGRecord(GameStat *game_stat) { - game_stat->mg_record[0] = 18000; + game_stat->mg_record[0] = 300 * REFRESH_RATE; game_stat->mg_record[1] = 80; - game_stat->mg_record[2] = 3600; - game_stat->mg_record[3] = 7200; + game_stat->mg_record[2] = 60 * REFRESH_RATE; + game_stat->mg_record[3] = 120 * REFRESH_RATE; game_stat->mg_record[4] = 0; - game_stat->mg_record[5] = 3600; - game_stat->mg_record[6] = 18000; - game_stat->mg_record[7] = 18000; - game_stat->mg_record[8] = 18000; + game_stat->mg_record[5] = 60 * REFRESH_RATE; + game_stat->mg_record[6] = 300 * REFRESH_RATE; + game_stat->mg_record[7] = 300 * REFRESH_RATE; + game_stat->mg_record[8] = 300 * REFRESH_RATE; game_stat->mg_record[9] = 0; - game_stat->mg_record[10] = 300; + game_stat->mg_record[10] = 5 * REFRESH_RATE; game_stat->mg_record[11] = 0; game_stat->mg_record[12] = 0; game_stat->mg_record[13] = 0; @@ -76,9 +88,9 @@ static inline void ResetBoardRecord(GameStat *game_stat) { s32 i; s32 j; - - for(i=0; i<9; i++) { - for(j=0; j<8; j++) { + + for (i = 0; i < 9; i++) { + for (j = 0; j < 8; j++) { game_stat->board_win_count[i][j] = 0; } game_stat->board_play_count[i] = 0; @@ -90,10 +102,10 @@ static inline void ResetBoardRecord(GameStat *game_stat) static inline void ResetPresent(GameStat *game_stat) { s32 i; - for(i=0; i<60; i++) { + for (i = 0; i < 60; i++) { game_stat->present[i] = 0; } - (void)i; //HACK to match GWResetGameStat + (void)i; // HACK to match GWResetGameStat } static inline void ResetFlag(GameStat *game_stat) @@ -120,7 +132,13 @@ void GWGameStatReset(void) GameStat *game_stat = &GWGameStatDefault; memset(game_stat, 0, sizeof(GameStat)); game_stat->unk_00 = 0; +#if VERSION_JAP + game_stat->language = 0; +#elif VERSION_NTSC game_stat->language = 1; +#else + game_stat->language = GwLanguage; +#endif game_stat->sound_mode = 1; game_stat->rumble = 1; game_stat->total_stars = 0; @@ -133,23 +151,30 @@ void GWGameStatReset(void) ResetBoardRecord(game_stat); ResetPresent(game_stat); ResetFlag(game_stat); - ResetPauseConfig(game_stat); + ResetPauseConfig(game_stat); memcpy(&GWGameStat, &GWGameStatDefault, sizeof(GameStat)); ResetBoardSettings(); } s32 GWMessDelayGet(void) { - if(GWSystem.mess_delay > 48) { +#if VERSION_NTSC + if (GWSystem.mess_delay > 48) { GWSystem.mess_speed = 1; GWSystem.mess_delay = 32; } +#else + if (GWSystem.mess_delay > 64) { + GWSystem.mess_speed = 1; + GWSystem.mess_delay = 48; + } +#endif return GWSystem.mess_delay; } void GWMGRecordSet(s32 index, u32 value) { - if(!_CheckFlag(FLAG_ID_MAKE(1, 12))) { + if (!_CheckFlag(FLAG_ID_MAKE(1, 12))) { GWGameStat.mg_record[index] = value; } } @@ -161,22 +186,14 @@ u32 GWMGRecordGet(s32 index) void GWCharColorGet(s32 character, GXColor *color) { - GXColor char_color[] = { - { 227, 67, 67, 255 }, - { 68, 67, 227, 255 }, - { 241, 158, 220, 255 }, - { 67, 228, 68, 255 }, - { 138, 60, 180, 255 }, - { 146, 85, 55, 255 }, - { 227, 228, 68, 255 }, - { 40, 40, 40, 255 } - }; + GXColor char_color[] = { { 227, 67, 67, 255 }, { 68, 67, 227, 255 }, { 241, 158, 220, 255 }, { 67, 228, 68, 255 }, { 138, 60, 180, 255 }, + { 146, 85, 55, 255 }, { 227, 228, 68, 255 }, { 40, 40, 40, 255 } }; *color = char_color[character]; } void GWBoardPlayCountSet(s32 board, u8 value) { - if(value > 99) { + if (value > 99) { value = 99; } GWGameStat.board_play_count[board] = value; @@ -185,13 +202,12 @@ void GWBoardPlayCountSet(s32 board, u8 value) void GWBoardPlayCountAdd(s32 board, u8 value) { value += GWGameStat.board_play_count[board]; - if(value > 99) { + if (value > 99) { value = 99; } GWGameStat.board_play_count[board] = value; } - u8 GWBoardPlayCountGet(s32 board) { return GWGameStat.board_play_count[board]; @@ -219,8 +235,8 @@ u16 GWBoardMaxCoinsGet(s32 board) s32 GWBoardWinCountInc(s32 character, s32 board) { - s32 win_count = GWGameStat.board_win_count[board][character]+1; - if(win_count > 99) { + s32 win_count = GWGameStat.board_win_count[board][character] + 1; + if (win_count > 99) { win_count = 99; } GWGameStat.board_win_count[board][character] = win_count; @@ -244,9 +260,10 @@ s32 GWMGAvailGet(s32 id) id -= 401; word = id >> 5; bit = id % 32; - if(GWGameStat.mg_avail[word] & (1 << bit)) { + if (GWGameStat.mg_avail[word] & (1 << bit)) { return 1; - } else { + } + else { return 0; } } @@ -268,9 +285,10 @@ s32 GWMGCustomGet(s32 id) id -= 401; word = id >> 5; bit = id % 32; - if(GWGameStat.mg_custom[word] & (1 << bit)) { + if (GWGameStat.mg_custom[word] & (1 << bit)) { return 1; - } else { + } + else { return 0; } } @@ -302,14 +320,14 @@ s16 GWCoinsGet(s32 player) void GWCoinsSet(s32 player, s16 value) { - if(!_CheckFlag(FLAG_ID_MAKE(1, 12))) { - if(value < 0) { + if (!_CheckFlag(FLAG_ID_MAKE(1, 12))) { + if (value < 0) { value = 0; } - if(value > 999) { + if (value > 999) { value = 999; } - if(value > GWPlayer[player].coins_max) { + if (value > GWPlayer[player].coins_max) { GWPlayer[player].coins_max = value; } GWPlayer[player].coins = value; @@ -318,18 +336,18 @@ void GWCoinsSet(s32 player, s16 value) void GWCoinsAdd(s32 player, s16 amount) { - GWCoinsSet(player, GWPlayer[player].coins+amount); + GWCoinsSet(player, GWPlayer[player].coins + amount); } void GWStarsSet(s32 player, s16 value) { - if(value < 0) { + if (value < 0) { value = 0; } - if(value > 999) { + if (value > 999) { value = 999; } - if(value > GWPlayer[player].stars_max) { + if (value > GWPlayer[player].stars_max) { GWPlayer[player].stars_max = value; } GWPlayer[player].stars = value; @@ -337,7 +355,7 @@ void GWStarsSet(s32 player, s16 value) void GWStarsAdd(s32 player, s16 amount) { - GWStarsSet(player, GWPlayer[player].stars+amount); + GWStarsSet(player, GWPlayer[player].stars + amount); } s32 GWStarsGet(s32 player) @@ -347,10 +365,10 @@ s32 GWStarsGet(s32 player) void GWTotalStarsSet(s16 value) { - if(value < 0) { + if (value < 0) { value = 0; } - if(value > 10000) { + if (value > 10000) { value = 10000; } GWGameStat.total_stars = value; @@ -358,7 +376,7 @@ void GWTotalStarsSet(s16 value) void GWTotalStarsAdd(s16 amount) { - GWTotalStarsSet(GWGameStat.total_stars+amount); + GWTotalStarsSet(GWGameStat.total_stars + amount); } u16 GWTotalStarsGet(void) From 76ad3ea249338ec69b5f1f763639a00f61d1993c Mon Sep 17 00:00:00 2001 From: Liam Coleman Date: Sat, 16 Nov 2024 20:34:04 -0600 Subject: [PATCH 142/311] Fix w20Dll linking (#468) --- config/GMPP01_00/config.yml | 4 +-- config/GMPP01_00/rels/w20Dll/splits.txt | 17 ++++++++++++ config/GMPP01_00/rels/w20Dll/symbols.txt | 33 ++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 config/GMPP01_00/rels/w20Dll/splits.txt create mode 100644 config/GMPP01_00/rels/w20Dll/symbols.txt diff --git a/config/GMPP01_00/config.yml b/config/GMPP01_00/config.yml index 129c2220..ed67d838 100644 --- a/config/GMPP01_00/config.yml +++ b/config/GMPP01_00/config.yml @@ -477,8 +477,8 @@ modules: links: [] - object: files/dll/w20Dll.rel hash: 58ae9e311cc8bd0291921480f423e2ad4774e1a2 - symbols: config/GMPE01_00/rels/w20Dll/symbols.txt - splits: config/GMPE01_00/rels/w20Dll/splits.txt + symbols: config/GMPP01_00/rels/w20Dll/symbols.txt + splits: config/GMPP01_00/rels/w20Dll/splits.txt links: [] - object: files/dll/w21Dll.rel hash: 8ea052be8c7585a1ab152682a0698b631c5b566f diff --git a/config/GMPP01_00/rels/w20Dll/splits.txt b/config/GMPP01_00/rels/w20Dll/splits.txt new file mode 100644 index 00000000..9df8ed45 --- /dev/null +++ b/config/GMPP01_00/rels/w20Dll/splits.txt @@ -0,0 +1,17 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w20Dll/main.c: + .text start:0x000000E0 end:0x00000678 + .rodata start:0x00000010 end:0x00000030 + .data start:0x00000000 end:0x00000034 + .bss start:0x00000000 end:0x0000000E diff --git a/config/GMPP01_00/rels/w20Dll/symbols.txt b/config/GMPP01_00/rels/w20Dll/symbols.txt new file mode 100644 index 00000000..0e84011e --- /dev/null +++ b/config/GMPP01_00/rels/w20Dll/symbols.txt @@ -0,0 +1,33 @@ +ObjectSetup = .text:0x00000000; // type:function size:0x30 scope:local +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +BoardCreate = .text:0x000000E0; // type:function size:0x2B0 +BoardDestroy = .text:0x00000390; // type:function size:0xBC +fn_1_44C = .text:0x0000044C; // type:function size:0x44 +fn_1_490 = .text:0x00000490; // type:function size:0x4 +fn_1_494 = .text:0x00000494; // type:function size:0x4 +fn_1_498 = .text:0x00000498; // type:function size:0x8 +fn_1_4A0 = .text:0x000004A0; // type:function size:0x4 +fn_1_4A4 = .text:0x000004A4; // type:function size:0x4 +fn_1_4A8 = .text:0x000004A8; // type:function size:0x4 +fn_1_4AC = .text:0x000004AC; // type:function size:0x1CC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_2 = .data:0x00000002; // type:object size:0x2 data:2byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0x2 data:2byte +lbl_1_data_6 = .data:0x00000006; // type:object size:0x2 data:2byte +lbl_1_data_8 = .data:0x00000008; // type:object size:0x2 data:2byte +lbl_1_data_A = .data:0x0000000A; // type:object size:0x2 data:2byte +lbl_1_data_C = .data:0x0000000C; // type:object size:0x20 data:4byte +unkMotTbl = .data:0x0000002C; // type:object size:0x8 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 From 42a72ba07ff784b10e7ed8465eb586f879ba53c8 Mon Sep 17 00:00:00 2001 From: Liam Coleman Date: Sat, 16 Nov 2024 21:02:31 -0600 Subject: [PATCH 143/311] More TU Matching in PAL (#469) * Fix w20Dll linking * Match some more TUs in PAL * Fix NTSC Build --- configure.py | 10 +-- include/dolphin/gx/GXFrameBuffer.h | 1 + src/game/audio.c | 7 ++- src/game/card.c | 5 ++ src/game/init.c | 29 ++++++++- src/game/main.c | 9 ++- src/game/saveload.c | 99 ++++++++++++++++++++++++++---- 7 files changed, 138 insertions(+), 22 deletions(-) diff --git a/configure.py b/configure.py index 9a885735..2456a535 100644 --- a/configure.py +++ b/configure.py @@ -373,13 +373,13 @@ config.libs = [ "cflags": cflags_game, "host": False, "objects": [ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/main.c"), + Object(Matching, "game/main.c"), Object(Matching, "game/pad.c"), Object(Matching, "game/dvd.c"), Object(Matching, "game/data.c"), Object(Matching, "game/decode.c"), Object(Matching, "game/font.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/init.c"), + Object(Matching, "game/init.c"), Object(Matching, "game/jmp.c"), Object(Matching, "game/malloc.c"), Object(Matching, "game/memory.c"), @@ -400,7 +400,7 @@ config.libs = [ Object(Matching, "game/objsysobj.c"), Object(Matching, "game/objdll.c"), Object(Matching, "game/frand.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/audio.c"), + Object(Matching, "game/audio.c"), Object(Matching, "game/EnvelopeExec.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/minigame_seq.c"), Object(Matching, "game/ovllist.c"), @@ -411,7 +411,7 @@ config.libs = [ Object(Matching, "game/wipe.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/window.c"), Object(Matching, "game/messdata.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/card.c"), + Object(Matching, "game/card.c"), Object(Matching, "game/armem.c"), Object(Matching, "game/chrman.c"), Object(Matching, "game/mapspace.c"), @@ -420,7 +420,7 @@ config.libs = [ Object(Matching, "game/thpmain.c"), Object(Matching, "game/objsub.c"), Object(Matching, "game/flag.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/saveload.c"), + Object(Matching, "game/saveload.c"), Object(Matching, "game/sreset.c"), Object(Matching, "game/board/main.c"), Object(Matching, "game/board/player.c"), diff --git a/include/dolphin/gx/GXFrameBuffer.h b/include/dolphin/gx/GXFrameBuffer.h index ebd81e78..f5785f8c 100644 --- a/include/dolphin/gx/GXFrameBuffer.h +++ b/include/dolphin/gx/GXFrameBuffer.h @@ -47,6 +47,7 @@ void GXCopyDisp(void* dest, GXBool clear); void GXSetDispCopyGamma(GXGamma gamma); void GXSetDispCopySrc(u16 left, u16 top, u16 wd, u16 ht); void GXSetDispCopyDst(u16 wd, u16 ht); +f32 GXGetYScaleFactor(u16 efbHeight, u16 xfbHeight); u32 GXSetDispCopyYScale(f32 vscale); void GXSetCopyFilter(GXBool aa, u8 sample_pattern[12][2], GXBool vf, u8 vfilter[7]); void GXSetPixelFmt(GXPixelFmt pix_fmt, GXZFmt16 z_fmt); diff --git a/src/game/audio.c b/src/game/audio.c index 808369d4..8b01f192 100644 --- a/src/game/audio.c +++ b/src/game/audio.c @@ -555,10 +555,11 @@ void HuAudAUXVolSet(s8 arg0, s8 arg1) { void HuAudVoiceInit(s16 ovl) { SNDGRPTBL *var_r29; OSTick temp_r23; + s16 var_r27; s16 temp_r26; s16 temp_r25; s16 temp_r30; - s16 var_r27; + void *temp_r3; s16 i; @@ -602,7 +603,11 @@ void HuAudVoiceInit(s16 ovl) { charVoiceGroupStat[temp_r30] = 1; temp_r26 = temp_r30 + 0xA; temp_r3 = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(temp_r26)); + #if VERSION_NTSC msmSysLoadGroupBase(temp_r26, temp_r3); + #else + temp_r25 = msmSysLoadGroupBase(temp_r26, temp_r3); + #endif HuMemDirectFree(temp_r3); } } diff --git a/src/game/card.c b/src/game/card.c index 845bf3b0..97fdd32d 100644 --- a/src/game/card.c +++ b/src/game/card.c @@ -1,6 +1,7 @@ #include "dolphin.h" #include "game/memory.h" #include "game/card.h" +#include "version.h" static void *cardWork; u8 UnMountCnt; @@ -98,7 +99,11 @@ s32 HuCardFormat(s16 slot) static void MountCallBack(s32 chan, s32 result) { + #if VERSION_ENG UnMountCnt = (1 << chan); + #else + UnMountCnt |= (1 << chan); + #endif } s32 HuCardOpen(s16 slot, const char *fileName, CARDFileInfo *fileInfo) diff --git a/src/game/init.c b/src/game/init.c index f3a4f853..61315c66 100644 --- a/src/game/init.c +++ b/src/game/init.c @@ -39,6 +39,8 @@ static void InitVI(); static void SwapBuffers(); static void LoadMemInfo(); +#define ASSERT_LINE(ntsc, pal) ((VERSION_NTSC) ? (ntsc) : (pal)) + void HuSysInit(GXRenderModeObj *mode) { u32 rnd_temp; @@ -46,13 +48,19 @@ void HuSysInit(GXRenderModeObj *mode) DVDInit(); VIInit(); PADInit(); + #if VERSION_NTSC if(OSGetProgressiveMode() == 1 && VIGetDTVStatus() == 1) { mode = &GXNtsc480Prog; } + #else + mode->efbHeight = 480; + #endif InitRenderMode(mode); InitMem(); VIConfigure(RenderMode); + #if VERSION_NTSC VIConfigurePan(0, 0, 640, 480); + #endif DefaultFifo = OSAlloc(0x100000); DefaultFifoObj = GXInit(DefaultFifo, 0x100000); InitGX(); @@ -91,7 +99,7 @@ static void InitRenderMode(GXRenderModeObj *mode) break; default: - OSPanic("init.c", 169, "DEMOInit: invalid TV format\n"); + OSPanic("init.c", ASSERT_LINE(169, 167), "DEMOInit: invalid TV format\n"); break; } GXAdjustForOverscan(RenderMode, &rmodeobj, 0, 16); @@ -104,7 +112,12 @@ static void InitGX() GXSetScissor(0, 0, RenderMode->fbWidth, RenderMode->efbHeight); GXSetDispCopySrc(0, 0, RenderMode->fbWidth, RenderMode->efbHeight); GXSetDispCopyDst(RenderMode->fbWidth, RenderMode->xfbHeight); + #if VERSION_NTSC GXSetDispCopyYScale((float)RenderMode->xfbHeight/(float)RenderMode->efbHeight); + #else + OSReport("%D\n", RenderMode->xfbHeight); + GXSetDispCopyYScale(GXGetYScaleFactor(RenderMode->efbHeight, RenderMode->xfbHeight)); + #endif GXSetCopyFilter(RenderMode->aa, RenderMode->sample_pattern, GX_TRUE, RenderMode->vfilter); if(RenderMode->aa) { GXSetPixelFmt(GX_PF_RGB565_Z16, GX_ZC_LINEAR); @@ -120,9 +133,21 @@ static void InitMem() void *arena_lo = OSGetArenaLo(); void *arena_hi = OSGetArenaHi(); u32 fb_size = (u16)(((u16)RenderMode->fbWidth+15) & ~15)*RenderMode->xfbHeight*2; + u32 *fb1; + u32 *fb2; + u32 i; DemoFrameBuffer1 = (void *)OSRoundUp32B((u32)arena_lo); DemoFrameBuffer2 = (void *)OSRoundUp32B((u32)DemoFrameBuffer1+fb_size); DemoCurrentBuffer = DemoFrameBuffer2; + #if VERSION_PAL + fb1 = DemoFrameBuffer1; + fb2 = DemoFrameBuffer2; + for(i=0; i Date: Sun, 17 Nov 2024 14:20:28 +0100 Subject: [PATCH 144/311] Correct macro in gamework.c --- src/game/gamework.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/game/gamework.c b/src/game/gamework.c index ea372944..dd8e2c70 100644 --- a/src/game/gamework.c +++ b/src/game/gamework.c @@ -57,7 +57,7 @@ void GWInit(void) InitPlayerConfig(); #if VERSION_JAP GWGameStat.language = 0; -#elif VERSION_NTSC +#elif VERSION_ENG GWGameStat.language = 1; #else GWLanguageSet(GwLanguage); @@ -134,7 +134,7 @@ void GWGameStatReset(void) game_stat->unk_00 = 0; #if VERSION_JAP game_stat->language = 0; -#elif VERSION_NTSC +#elif VERSION_ENG game_stat->language = 1; #else game_stat->language = GwLanguage; From 900a533d5968f39bce2f3ce989c654bb5b794142 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 17 Nov 2024 16:22:11 +0100 Subject: [PATCH 145/311] Port m432 and m434 --- config/GMPP01_00/rels/m432Dll/splits.txt | 6 + config/GMPP01_00/rels/m432Dll/symbols.txt | 561 +++++++++++----------- config/GMPP01_00/rels/m434Dll/splits.txt | 27 ++ config/GMPP01_00/rels/m434Dll/symbols.txt | 427 ++++++++-------- configure.py | 8 +- include/REL/m432data.h | 9 +- src/REL/m432Dll/main.c | 51 +- src/REL/m434Dll/fish.c | 35 +- src/REL/m434Dll/main.c | 11 +- src/REL/m434Dll/map.c | 7 +- src/REL/m434Dll/player.c | 35 +- src/REL/m450Dll/main.c | 10 +- 12 files changed, 627 insertions(+), 560 deletions(-) diff --git a/config/GMPP01_00/rels/m432Dll/splits.txt b/config/GMPP01_00/rels/m432Dll/splits.txt index 531cd645..ff3ccc71 100644 --- a/config/GMPP01_00/rels/m432Dll/splits.txt +++ b/config/GMPP01_00/rels/m432Dll/splits.txt @@ -5,3 +5,9 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/m432Dll/main.c: + .text start:0x00000000 end:0x000160D8 + .rodata start:0x00000000 end:0x00000234 + .data start:0x00000000 end:0x000019F8 + .bss start:0x00000000 end:0x000005DC diff --git a/config/GMPP01_00/rels/m432Dll/symbols.txt b/config/GMPP01_00/rels/m432Dll/symbols.txt index dd9786bc..ea91fc89 100644 --- a/config/GMPP01_00/rels/m432Dll/symbols.txt +++ b/config/GMPP01_00/rels/m432Dll/symbols.txt @@ -7,232 +7,232 @@ fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C fn_1_414 = .text:0x00000414; // type:function size:0x58 fn_1_46C = .text:0x0000046C; // type:function size:0x114 fn_1_580 = .text:0x00000580; // type:function size:0x204 -fn_1_784 = .text:0x00000784; // type:function size:0x240 -fn_1_9C4 = .text:0x000009C4; // type:function size:0x54 -fn_1_A18 = .text:0x00000A18; // type:function size:0x10C -fn_1_B24 = .text:0x00000B24; // type:function size:0x680 -fn_1_11A4 = .text:0x000011A4; // type:function size:0x15C -fn_1_1300 = .text:0x00001300; // type:function size:0x8C -fn_1_138C = .text:0x0000138C; // type:function size:0x334 -fn_1_16C0 = .text:0x000016C0; // type:function size:0x350 -fn_1_1A10 = .text:0x00001A10; // type:function size:0x2B8 -fn_1_1CC8 = .text:0x00001CC8; // type:function size:0x58 -fn_1_1D20 = .text:0x00001D20; // type:function size:0xB0 -fn_1_1DD0 = .text:0x00001DD0; // type:function size:0x104 -fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x34 -fn_1_1F08 = .text:0x00001F08; // type:function size:0x6C -fn_1_1F74 = .text:0x00001F74; // type:function size:0x3F0 -fn_1_2364 = .text:0x00002364; // type:function size:0x64 -fn_1_23C8 = .text:0x000023C8; // type:function size:0xE0 -fn_1_24A8 = .text:0x000024A8; // type:function size:0x32C -fn_1_27D4 = .text:0x000027D4; // type:function size:0x3AC -fn_1_2B80 = .text:0x00002B80; // type:function size:0x30 -fn_1_2BB0 = .text:0x00002BB0; // type:function size:0x1C -fn_1_2BCC = .text:0x00002BCC; // type:function size:0x18C -fn_1_2D58 = .text:0x00002D58; // type:function size:0x8 -fn_1_2D60 = .text:0x00002D60; // type:function size:0x8 -fn_1_2D68 = .text:0x00002D68; // type:function size:0x8 -fn_1_2D70 = .text:0x00002D70; // type:function size:0x8 -fn_1_2D78 = .text:0x00002D78; // type:function size:0xC -fn_1_2D84 = .text:0x00002D84; // type:function size:0x60 -fn_1_2DE4 = .text:0x00002DE4; // type:function size:0xB90 -fn_1_3974 = .text:0x00003974; // type:function size:0x31C -fn_1_3C90 = .text:0x00003C90; // type:function size:0xD8 -fn_1_3D68 = .text:0x00003D68; // type:function size:0x114 -fn_1_3E7C = .text:0x00003E7C; // type:function size:0xB8 -fn_1_3F34 = .text:0x00003F34; // type:function size:0xA0 -fn_1_3FD4 = .text:0x00003FD4; // type:function size:0x9C -fn_1_4070 = .text:0x00004070; // type:function size:0xE18 -fn_1_4E88 = .text:0x00004E88; // type:function size:0x250 -fn_1_50D8 = .text:0x000050D8; // type:function size:0x10 -fn_1_50E8 = .text:0x000050E8; // type:function size:0x10 -fn_1_50F8 = .text:0x000050F8; // type:function size:0x60 -fn_1_5158 = .text:0x00005158; // type:function size:0x60 -fn_1_51B8 = .text:0x000051B8; // type:function size:0xB0 -fn_1_5268 = .text:0x00005268; // type:function size:0xAC -fn_1_5314 = .text:0x00005314; // type:function size:0x408 -fn_1_571C = .text:0x0000571C; // type:function size:0xDC -fn_1_57F8 = .text:0x000057F8; // type:function size:0x364 -fn_1_5B5C = .text:0x00005B5C; // type:function size:0x380 -fn_1_5EDC = .text:0x00005EDC; // type:function size:0x310 -fn_1_61EC = .text:0x000061EC; // type:function size:0xAF8 -fn_1_6CE4 = .text:0x00006CE4; // type:function size:0x1F4 -fn_1_6ED8 = .text:0x00006ED8; // type:function size:0xCF4 -fn_1_7BCC = .text:0x00007BCC; // type:function size:0x924 -fn_1_84F0 = .text:0x000084F0; // type:function size:0x6C -fn_1_855C = .text:0x0000855C; // type:function size:0x70 -fn_1_85CC = .text:0x000085CC; // type:function size:0x1F8 -fn_1_87C4 = .text:0x000087C4; // type:function size:0x200 -fn_1_89C4 = .text:0x000089C4; // type:function size:0x2A0 -fn_1_8C64 = .text:0x00008C64; // type:function size:0x288 -fn_1_8EEC = .text:0x00008EEC; // type:function size:0x130 -fn_1_901C = .text:0x0000901C; // type:function size:0x350 -fn_1_936C = .text:0x0000936C; // type:function size:0x15B8 -fn_1_A924 = .text:0x0000A924; // type:function size:0x8C -fn_1_A9B0 = .text:0x0000A9B0; // type:function size:0x1C -fn_1_A9CC = .text:0x0000A9CC; // type:function size:0x2AC -fn_1_AC78 = .text:0x0000AC78; // type:function size:0x260 -fn_1_AED8 = .text:0x0000AED8; // type:function size:0x26C +fn_1_798 = .text:0x00000784; // type:function size:0x240 +fn_1_9EC = .text:0x000009C4; // type:function size:0x54 +fn_1_A40 = .text:0x00000A18; // type:function size:0x10C +fn_1_B4C = .text:0x00000B24; // type:function size:0x680 +fn_1_11F4 = .text:0x000011A4; // type:function size:0x15C +fn_1_1350 = .text:0x00001300; // type:function size:0x8C +fn_1_13DC = .text:0x0000138C; // type:function size:0x334 +fn_1_1710 = .text:0x000016C0; // type:function size:0x350 +fn_1_1A60 = .text:0x00001A10; // type:function size:0x2B8 +fn_1_1D18 = .text:0x00001CC8; // type:function size:0x58 +fn_1_1D70 = .text:0x00001D20; // type:function size:0xB0 +fn_1_1E20 = .text:0x00001DD0; // type:function size:0x104 +fn_1_1F24 = .text:0x00001ED4; // type:function size:0x34 +fn_1_1F58 = .text:0x00001F08; // type:function size:0x6C +fn_1_1FC4 = .text:0x00001F74; // type:function size:0x3F0 +fn_1_23B4 = .text:0x00002364; // type:function size:0x64 +fn_1_2418 = .text:0x000023C8; // type:function size:0xE0 +fn_1_24F8 = .text:0x000024A8; // type:function size:0x32C +fn_1_2824 = .text:0x000027D4; // type:function size:0x3AC +fn_1_2BD0 = .text:0x00002B80; // type:function size:0x30 +fn_1_2C00 = .text:0x00002BB0; // type:function size:0x1C +fn_1_2C1C = .text:0x00002BCC; // type:function size:0x18C +fn_1_2DA8 = .text:0x00002D58; // type:function size:0x8 +fn_1_2DB0 = .text:0x00002D60; // type:function size:0x8 +fn_1_2DB8 = .text:0x00002D68; // type:function size:0x8 +fn_1_2DC0 = .text:0x00002D70; // type:function size:0x8 +fn_1_2DC8 = .text:0x00002D78; // type:function size:0xC +fn_1_2DD4 = .text:0x00002D84; // type:function size:0x60 +fn_1_2E34 = .text:0x00002DE4; // type:function size:0xB90 +fn_1_39C4 = .text:0x00003974; // type:function size:0x31C +fn_1_3CE0 = .text:0x00003C90; // type:function size:0xD8 +fn_1_3DB8 = .text:0x00003D68; // type:function size:0x114 +fn_1_3ECC = .text:0x00003E7C; // type:function size:0xB8 +fn_1_3F84 = .text:0x00003F34; // type:function size:0xA0 +fn_1_4024 = .text:0x00003FD4; // type:function size:0x9C +fn_1_40C0 = .text:0x00004070; // type:function size:0xE18 +fn_1_4ED8 = .text:0x00004E88; // type:function size:0x250 +fn_1_5128 = .text:0x000050D8; // type:function size:0x10 +fn_1_5138 = .text:0x000050E8; // type:function size:0x10 +fn_1_5148 = .text:0x000050F8; // type:function size:0x60 +fn_1_51A8 = .text:0x00005158; // type:function size:0x60 +fn_1_5208 = .text:0x000051B8; // type:function size:0xB0 +fn_1_52B8 = .text:0x00005268; // type:function size:0xAC +fn_1_5364 = .text:0x00005314; // type:function size:0x408 +fn_1_576C = .text:0x0000571C; // type:function size:0xDC +fn_1_5848 = .text:0x000057F8; // type:function size:0x364 +fn_1_5BAC = .text:0x00005B5C; // type:function size:0x380 +fn_1_5F2C = .text:0x00005EDC; // type:function size:0x310 +fn_1_623C = .text:0x000061EC; // type:function size:0xAF8 +fn_1_6D34 = .text:0x00006CE4; // type:function size:0x1F4 +fn_1_6F28 = .text:0x00006ED8; // type:function size:0xCF4 +fn_1_7C1C = .text:0x00007BCC; // type:function size:0x924 +fn_1_8540 = .text:0x000084F0; // type:function size:0x6C +fn_1_85AC = .text:0x0000855C; // type:function size:0x70 +fn_1_861C = .text:0x000085CC; // type:function size:0x1F8 +fn_1_8814 = .text:0x000087C4; // type:function size:0x200 +fn_1_8A14 = .text:0x000089C4; // type:function size:0x2A0 +fn_1_8CB4 = .text:0x00008C64; // type:function size:0x288 +fn_1_8F3C = .text:0x00008EEC; // type:function size:0x130 +fn_1_906C = .text:0x0000901C; // type:function size:0x350 +fn_1_93BC = .text:0x0000936C; // type:function size:0x15B8 +fn_1_A974 = .text:0x0000A924; // type:function size:0x8C +fn_1_AA00 = .text:0x0000A9B0; // type:function size:0x1C +fn_1_AA1C = .text:0x0000A9CC; // type:function size:0x2AC +fn_1_ACC8 = .text:0x0000AC78; // type:function size:0x260 +fn_1_AF28 = .text:0x0000AED8; // type:function size:0x26C _prolog = .text:0x0000B144; // type:function size:0x54 scope:global _epilog = .text:0x0000B198; // type:function size:0x4C scope:global -fn_1_B1E4 = .text:0x0000B1E4; // type:function size:0x224 -fn_1_B408 = .text:0x0000B408; // type:function size:0xC0 -fn_1_B4C8 = .text:0x0000B4C8; // type:function size:0x2CC -fn_1_B794 = .text:0x0000B794; // type:function size:0x190 -fn_1_B924 = .text:0x0000B924; // type:function size:0x134 -fn_1_BA58 = .text:0x0000BA58; // type:function size:0x460 -fn_1_BEB8 = .text:0x0000BEB8; // type:function size:0x94 -fn_1_BF4C = .text:0x0000BF4C; // type:function size:0x3A0 -fn_1_C2EC = .text:0x0000C2EC; // type:function size:0x3E8 -fn_1_C6D4 = .text:0x0000C6D4; // type:function size:0x9BC -fn_1_D090 = .text:0x0000D090; // type:function size:0x90C -fn_1_D99C = .text:0x0000D99C; // type:function size:0x9C8 -fn_1_E364 = .text:0x0000E364; // type:function size:0x630 -fn_1_E994 = .text:0x0000E994; // type:function size:0x298 -fn_1_EC2C = .text:0x0000EC2C; // type:function size:0x90 -fn_1_ECBC = .text:0x0000ECBC; // type:function size:0x1544 -fn_1_10200 = .text:0x00010200; // type:function size:0xA7C -fn_1_10C7C = .text:0x00010C7C; // type:function size:0x724 -fn_1_113A0 = .text:0x000113A0; // type:function size:0x4 -fn_1_113A4 = .text:0x000113A4; // type:function size:0x140C -fn_1_127B0 = .text:0x000127B0; // type:function size:0x4 -fn_1_127B4 = .text:0x000127B4; // type:function size:0xC4 -fn_1_12878 = .text:0x00012878; // type:function size:0x4D0 -fn_1_12D48 = .text:0x00012D48; // type:function size:0x300 -fn_1_13048 = .text:0x00013048; // type:function size:0x2150 -fn_1_15198 = .text:0x00015198; // type:function size:0x9C -fn_1_15234 = .text:0x00015234; // type:function size:0xDA0 -fn_1_15FD4 = .text:0x00015FD4; // type:function size:0x104 +fn_1_B234 = .text:0x0000B1E4; // type:function size:0x224 +fn_1_B458 = .text:0x0000B408; // type:function size:0xC0 +fn_1_B518 = .text:0x0000B4C8; // type:function size:0x2CC +fn_1_B7E4 = .text:0x0000B794; // type:function size:0x190 +fn_1_B974 = .text:0x0000B924; // type:function size:0x134 +fn_1_BAA8 = .text:0x0000BA58; // type:function size:0x460 +fn_1_BF08 = .text:0x0000BEB8; // type:function size:0x94 +fn_1_BF9C = .text:0x0000BF4C; // type:function size:0x3A0 +fn_1_C33C = .text:0x0000C2EC; // type:function size:0x3E8 +fn_1_C724 = .text:0x0000C6D4; // type:function size:0x9BC +fn_1_D0E0 = .text:0x0000D090; // type:function size:0x90C +fn_1_D9EC = .text:0x0000D99C; // type:function size:0x9C8 +fn_1_E3B4 = .text:0x0000E364; // type:function size:0x630 +fn_1_E9E4 = .text:0x0000E994; // type:function size:0x298 +fn_1_EC7C = .text:0x0000EC2C; // type:function size:0x90 +fn_1_ED0C = .text:0x0000ECBC; // type:function size:0x1544 +fn_1_10250 = .text:0x00010200; // type:function size:0xA7C +fn_1_10CCC = .text:0x00010C7C; // type:function size:0x724 +fn_1_113F0 = .text:0x000113A0; // type:function size:0x4 +fn_1_113F4 = .text:0x000113A4; // type:function size:0x140C +fn_1_12800 = .text:0x000127B0; // type:function size:0x4 +fn_1_12804 = .text:0x000127B4; // type:function size:0xC4 +fn_1_128C8 = .text:0x00012878; // type:function size:0x4D0 +fn_1_12EA8 = .text:0x00012D48; // type:function size:0x300 +fn_1_131A8 = .text:0x00013048; // type:function size:0x2150 +fn_1_15320 = .text:0x00015198; // type:function size:0x9C +ObjectSetup = .text:0x00015234; // type:function size:0xDA0 +fn_1_1615C = .text:0x00015FD4; // type:function size:0x104 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 -lbl_1_data_80 = .data:0x00000080; // type:object size:0x20 +lbl_1_data_80 = .data:0x00000080; // type:object size:0x1F scope:local data:string lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x8 lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x20 data:float lbl_1_data_C8 = .data:0x000000C8; // type:object size:0xC @@ -250,81 +250,81 @@ lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x24 lbl_1_data_318 = .data:0x00000318; // type:object size:0x3C lbl_1_data_354 = .data:0x00000354; // type:object size:0x18 lbl_1_data_36C = .data:0x0000036C; // type:object size:0x18 -lbl_1_data_384 = .data:0x00000384; // type:object size:0xB data:string -lbl_1_data_38F = .data:0x0000038F; // type:object size:0xB data:string -lbl_1_data_39A = .data:0x0000039A; // type:object size:0xB data:string -lbl_1_data_3A5 = .data:0x000003A5; // type:object size:0xB data:string -lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0xB data:string -lbl_1_data_3BB = .data:0x000003BB; // type:object size:0xB data:string -lbl_1_data_3C6 = .data:0x000003C6; // type:object size:0xB data:string -lbl_1_data_3D1 = .data:0x000003D1; // type:object size:0xB data:string +lbl_1_data_384 = .data:0x00000384; // type:object size:0xB scope:local data:string +lbl_1_data_38F = .data:0x0000038F; // type:object size:0xB scope:local data:string +lbl_1_data_39A = .data:0x0000039A; // type:object size:0xB scope:local data:string +lbl_1_data_3A5 = .data:0x000003A5; // type:object size:0xB scope:local data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0xB scope:local data:string +lbl_1_data_3BB = .data:0x000003BB; // type:object size:0xB scope:local data:string +lbl_1_data_3C6 = .data:0x000003C6; // type:object size:0xB scope:local data:string +lbl_1_data_3D1 = .data:0x000003D1; // type:object size:0xB scope:local data:string lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x20 -lbl_1_data_3FC = .data:0x000003FC; // type:object size:0xB data:string -lbl_1_data_407 = .data:0x00000407; // type:object size:0xB data:string -lbl_1_data_412 = .data:0x00000412; // type:object size:0xB data:string -lbl_1_data_41D = .data:0x0000041D; // type:object size:0xB data:string -lbl_1_data_428 = .data:0x00000428; // type:object size:0xB data:string -lbl_1_data_433 = .data:0x00000433; // type:object size:0xD +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0xB scope:local data:string +lbl_1_data_407 = .data:0x00000407; // type:object size:0xB scope:local data:string +lbl_1_data_412 = .data:0x00000412; // type:object size:0xB scope:local data:string +lbl_1_data_41D = .data:0x0000041D; // type:object size:0xB scope:local data:string +lbl_1_data_428 = .data:0x00000428; // type:object size:0xB scope:local data:string +lbl_1_data_433 = .data:0x00000433; // type:object size:0xB scope:local data:string lbl_1_data_440 = .data:0x00000440; // type:object size:0x18 data:4byte -lbl_1_data_458 = .data:0x00000458; // type:object size:0xB data:string -lbl_1_data_463 = .data:0x00000463; // type:object size:0xB data:string -lbl_1_data_46E = .data:0x0000046E; // type:object size:0xB data:string -lbl_1_data_479 = .data:0x00000479; // type:object size:0xB data:string -lbl_1_data_484 = .data:0x00000484; // type:object size:0xB data:string -lbl_1_data_48F = .data:0x0000048F; // type:object size:0xB data:string -lbl_1_data_49A = .data:0x0000049A; // type:object size:0xB data:string -lbl_1_data_4A5 = .data:0x000004A5; // type:object size:0xB data:string -lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0xB data:string -lbl_1_data_4BB = .data:0x000004BB; // type:object size:0xD +lbl_1_data_458 = .data:0x00000458; // type:object size:0xB scope:local data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0xB scope:local data:string +lbl_1_data_46E = .data:0x0000046E; // type:object size:0xB scope:local data:string +lbl_1_data_479 = .data:0x00000479; // type:object size:0xB scope:local data:string +lbl_1_data_484 = .data:0x00000484; // type:object size:0xB scope:local data:string +lbl_1_data_48F = .data:0x0000048F; // type:object size:0xB scope:local data:string +lbl_1_data_49A = .data:0x0000049A; // type:object size:0xB scope:local data:string +lbl_1_data_4A5 = .data:0x000004A5; // type:object size:0xB scope:local data:string +lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0xB scope:local data:string +lbl_1_data_4BB = .data:0x000004BB; // type:object size:0xB scope:local data:string lbl_1_data_4C8 = .data:0x000004C8; // type:object size:0x28 data:4byte -lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x14 -lbl_1_data_504 = .data:0x00000504; // type:object size:0x24 +lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x14 data:byte +lbl_1_data_504 = .data:0x00000504; // type:object size:0x24 data:byte lbl_1_data_528 = .data:0x00000528; // type:object size:0x8 -lbl_1_data_530 = .data:0x00000530; // type:object size:0xB data:string -lbl_1_data_53B = .data:0x0000053B; // type:object size:0xB data:string -lbl_1_data_546 = .data:0x00000546; // type:object size:0xB data:string -lbl_1_data_551 = .data:0x00000551; // type:object size:0xB data:string -lbl_1_data_55C = .data:0x0000055C; // type:object size:0xB data:string -lbl_1_data_567 = .data:0x00000567; // type:object size:0xB data:string -lbl_1_data_572 = .data:0x00000572; // type:object size:0xB data:string -lbl_1_data_57D = .data:0x0000057D; // type:object size:0xB data:string -lbl_1_data_588 = .data:0x00000588; // type:object size:0xB data:string -lbl_1_data_593 = .data:0x00000593; // type:object size:0xB data:string -lbl_1_data_59E = .data:0x0000059E; // type:object size:0xB data:string -lbl_1_data_5A9 = .data:0x000005A9; // type:object size:0xB data:string -lbl_1_data_5B4 = .data:0x000005B4; // type:object size:0xB data:string -lbl_1_data_5BF = .data:0x000005BF; // type:object size:0xB data:string -lbl_1_data_5CA = .data:0x000005CA; // type:object size:0xB data:string -lbl_1_data_5D5 = .data:0x000005D5; // type:object size:0xB data:string -lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0xC +lbl_1_data_530 = .data:0x00000530; // type:object size:0xB scope:local data:string +lbl_1_data_53B = .data:0x0000053B; // type:object size:0xB scope:local data:string +lbl_1_data_546 = .data:0x00000546; // type:object size:0xB scope:local data:string +lbl_1_data_551 = .data:0x00000551; // type:object size:0xB scope:local data:string +lbl_1_data_55C = .data:0x0000055C; // type:object size:0xB scope:local data:string +lbl_1_data_567 = .data:0x00000567; // type:object size:0xB scope:local data:string +lbl_1_data_572 = .data:0x00000572; // type:object size:0xB scope:local data:string +lbl_1_data_57D = .data:0x0000057D; // type:object size:0xB scope:local data:string +lbl_1_data_588 = .data:0x00000588; // type:object size:0xB scope:local data:string +lbl_1_data_593 = .data:0x00000593; // type:object size:0xB scope:local data:string +lbl_1_data_59E = .data:0x0000059E; // type:object size:0xB scope:local data:string +lbl_1_data_5A9 = .data:0x000005A9; // type:object size:0xB scope:local data:string +lbl_1_data_5B4 = .data:0x000005B4; // type:object size:0xB scope:local data:string +lbl_1_data_5BF = .data:0x000005BF; // type:object size:0xB scope:local data:string +lbl_1_data_5CA = .data:0x000005CA; // type:object size:0xB scope:local data:string +lbl_1_data_5D5 = .data:0x000005D5; // type:object size:0xB scope:local data:string +lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0xB scope:local data:string lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x8B8 -lbl_1_data_EA4 = .data:0x00000EA4; // type:object size:0xB data:string -lbl_1_data_EAF = .data:0x00000EAF; // type:object size:0xB data:string -lbl_1_data_EBA = .data:0x00000EBA; // type:object size:0xB data:string -lbl_1_data_EC5 = .data:0x00000EC5; // type:object size:0xB data:string -lbl_1_data_ED0 = .data:0x00000ED0; // type:object size:0xC +lbl_1_data_EA4 = .data:0x00000EA4; // type:object size:0xB scope:local data:string +lbl_1_data_EAF = .data:0x00000EAF; // type:object size:0xB scope:local data:string +lbl_1_data_EBA = .data:0x00000EBA; // type:object size:0xB scope:local data:string +lbl_1_data_EC5 = .data:0x00000EC5; // type:object size:0xB scope:local data:string +lbl_1_data_ED0 = .data:0x00000ED0; // type:object size:0xB scope:local data:string lbl_1_data_EDC = .data:0x00000EDC; // type:object size:0x8B8 lbl_1_data_1794 = .data:0x00001794; // type:object size:0x20 lbl_1_data_17B4 = .data:0x000017B4; // type:object size:0x20 lbl_1_data_17D4 = .data:0x000017D4; // type:object size:0x20 data:float lbl_1_data_17F4 = .data:0x000017F4; // type:object size:0x20 lbl_1_data_1814 = .data:0x00001814; // type:object size:0x50 -lbl_1_data_1864 = .data:0x00001864; // type:object size:0x11 data:string -lbl_1_data_1875 = .data:0x00001875; // type:object size:0x11 data:string -lbl_1_data_1886 = .data:0x00001886; // type:object size:0x11 data:string -lbl_1_data_1897 = .data:0x00001897; // type:object size:0x18 data:string -lbl_1_data_18AF = .data:0x000018AF; // type:object size:0xB data:string -lbl_1_data_18BA = .data:0x000018BA; // type:object size:0x18 data:string -lbl_1_data_18D2 = .data:0x000018D2; // type:object size:0xC data:string -lbl_1_data_18DE = .data:0x000018DE; // type:object size:0x6 data:string -lbl_1_data_18E4 = .data:0x000018E4; // type:object size:0x21 data:string -lbl_1_data_1905 = .data:0x00001905; // type:object size:0x1F +lbl_1_data_1864 = .data:0x00001864; // type:object size:0x11 scope:local data:string +lbl_1_data_1875 = .data:0x00001875; // type:object size:0x11 scope:local data:string +lbl_1_data_1886 = .data:0x00001886; // type:object size:0x11 scope:local data:string +lbl_1_data_1897 = .data:0x00001897; // type:object size:0x18 scope:local data:string +lbl_1_data_18AF = .data:0x000018AF; // type:object size:0xB scope:local data:string +lbl_1_data_18BA = .data:0x000018BA; // type:object size:0x18 scope:local data:string +lbl_1_data_18D2 = .data:0x000018D2; // type:object size:0xC scope:local data:string +lbl_1_data_18DE = .data:0x000018DE; // type:object size:0x6 scope:local data:string +lbl_1_data_18E4 = .data:0x000018E4; // type:object size:0x21 scope:local data:string +lbl_1_data_1905 = .data:0x00001905; // type:object size:0x1D scope:local data:string jumptable_1_data_1924 = .data:0x00001924; // type:object size:0x1C scope:local jumptable_1_data_1940 = .data:0x00001940; // type:object size:0x44 scope:local -lbl_1_data_1984 = .data:0x00001984; // type:object size:0xB data:string -lbl_1_data_198F = .data:0x0000198F; // type:object size:0x1D +lbl_1_data_1984 = .data:0x00001984; // type:object size:0xB scope:local data:string +lbl_1_data_198F = .data:0x0000198F; // type:object size:0x1B scope:local data:string jumptable_1_data_19AC = .data:0x000019AC; // type:object size:0x28 scope:local -lbl_1_data_19D4 = .data:0x000019D4; // type:object size:0x24 data:string +lbl_1_data_19D4 = .data:0x000019D4; // type:object size:0x24 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x3F0 data:float lbl_1_bss_3F0 = .bss:0x000003F0; // type:object size:0x4 data:float lbl_1_bss_3F4 = .bss:0x000003F4; // type:object size:0x4 data:4byte @@ -333,7 +333,8 @@ lbl_1_bss_3FC = .bss:0x000003FC; // type:object size:0x4 data:4byte lbl_1_bss_400 = .bss:0x00000400; // type:object size:0x2 data:2byte lbl_1_bss_402 = .bss:0x00000402; // type:object size:0x2 data:2byte lbl_1_bss_404 = .bss:0x00000404; // type:object size:0x2 data:2byte -lbl_1_bss_408 = .bss:0x00000408; // type:object size:0x8 data:4byte +lbl_1_bss_408 = .bss:0x00000408; // type:object size:0x4 data:4byte +lbl_1_bss_40C = .bss:0x0000040C; // type:object size:0x4 data:4byte lbl_1_bss_410 = .bss:0x00000410; // type:object size:0x4 data:4byte lbl_1_bss_414 = .bss:0x00000414; // type:object size:0x4 data:4byte lbl_1_bss_418 = .bss:0x00000418; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m434Dll/splits.txt b/config/GMPP01_00/rels/m434Dll/splits.txt index 531cd645..f4ed5551 100644 --- a/config/GMPP01_00/rels/m434Dll/splits.txt +++ b/config/GMPP01_00/rels/m434Dll/splits.txt @@ -5,3 +5,30 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m434Dll/main.c: + .text start:0x000000A0 end:0x00001DB0 + .rodata start:0x00000000 end:0x000000B8 + .data start:0x00000000 end:0x00000100 + .bss start:0x00000000 end:0x000003D8 + +REL/m434Dll/map.c: + .text start:0x00001DB0 end:0x00004854 + .rodata start:0x000000B8 end:0x000001A8 + .data start:0x00000100 end:0x00000180 + .bss start:0x000003D8 end:0x00005870 + +REL/m434Dll/player.c: + .text start:0x00004854 end:0x00006860 + .rodata start:0x000001A8 end:0x000002C8 + .data start:0x00000180 end:0x000002C0 + .bss start:0x00005870 end:0x00005880 + +REL/m434Dll/fish.c: + .text start:0x00006860 end:0x0000918C + .rodata start:0x000002C8 end:0x000004C8 + .data start:0x000002C0 end:0x000002C8 + .bss start:0x00005880 end:0x00007884 diff --git a/config/GMPP01_00/rels/m434Dll/symbols.txt b/config/GMPP01_00/rels/m434Dll/symbols.txt index 08f8f83e..185c6a51 100644 --- a/config/GMPP01_00/rels/m434Dll/symbols.txt +++ b/config/GMPP01_00/rels/m434Dll/symbols.txt @@ -1,6 +1,6 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x45C +ObjectSetup = .text:0x000000A0; // type:function size:0x45C fn_1_4FC = .text:0x000004FC; // type:function size:0x5C fn_1_558 = .text:0x00000558; // type:function size:0x70C fn_1_C64 = .text:0x00000C64; // type:function size:0x64 @@ -82,219 +82,227 @@ fn_1_8F3C = .text:0x00008F3C; // type:function size:0x64 fn_1_8FA0 = .text:0x00008FA0; // type:function size:0x1EC _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:4byte -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x10 data:4byte -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x10 data:4byte -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC data:4byte -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0xC data:4byte -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:4byte -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 data:double -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x48 -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x48 -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:4byte -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x48 -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x48 +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 scope:local data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 scope:local data:double +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x48 scope:local +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x48 scope:local +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x48 scope:local +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x48 scope:local lbl_1_data_0 = .data:0x00000000; // type:object size:0xC data:float -lbl_1_data_C = .data:0x0000000C; // type:object size:0x18 data:float -lbl_1_data_24 = .data:0x00000024; // type:object size:0x28 -lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24 +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC data:float +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x23 scope:local data:string lbl_1_data_70 = .data:0x00000070; // type:object size:0x4 data:4byte -lbl_1_data_74 = .data:0x00000074; // type:object size:0x12 data:string -lbl_1_data_86 = .data:0x00000086; // type:object size:0x1E +lbl_1_data_74 = .data:0x00000074; // type:object size:0x12 scope:local data:string +lbl_1_data_86 = .data:0x00000086; // type:object size:0x1C scope:local data:string lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 lbl_1_data_AC = .data:0x000000AC; // type:object size:0x8 lbl_1_data_B4 = .data:0x000000B4; // type:object size:0xC -lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x30 -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x10 -lbl_1_data_100 = .data:0x00000100; // type:object size:0x34 -lbl_1_data_134 = .data:0x00000134; // type:object size:0x5 data:string -lbl_1_data_139 = .data:0x00000139; // type:object size:0x7 data:byte +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x30 data:float +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x10 data:float +lbl_1_data_100 = .data:0x00000100; // type:object size:0x32 +lbl_1_data_132 = .data:0x00000132; // type:object size:0x2 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x5 scope:local data:string +lbl_1_data_139 = .data:0x00000139; // type:object size:0x4 data:byte lbl_1_data_140 = .data:0x00000140; // type:object size:0x18 -lbl_1_data_158 = .data:0x00000158; // type:object size:0x1C -lbl_1_data_174 = .data:0x00000174; // type:object size:0x1 data:byte -lbl_1_data_178 = .data:0x00000178; // type:object size:0x8 data:byte -lbl_1_data_180 = .data:0x00000180; // type:object size:0x10 +lbl_1_data_158 = .data:0x00000158; // type:object size:0x18 +lbl_1_data_170 = .data:0x00000170; // type:object size:0x4 +lbl_1_data_174 = .data:0x00000174; // type:object size:0x4 data:byte +lbl_1_data_178 = .data:0x00000178; // type:object size:0x4 data:byte +lbl_1_data_17C = .data:0x0000017C; // type:object size:0x4 data:byte +lbl_1_data_180 = .data:0x00000180; // type:object size:0x10 scope:local lbl_1_data_190 = .data:0x00000190; // type:object size:0x20 -lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2C +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0xB scope:local data:string +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x20 lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x8 lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x18 lbl_1_data_1FC = .data:0x000001FC; // type:object size:0x28 lbl_1_data_224 = .data:0x00000224; // type:object size:0x90 lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3 data:string lbl_1_data_2B7 = .data:0x000002B7; // type:object size:0x3 data:string -lbl_1_data_2BA = .data:0x000002BA; // type:object size:0x6 +lbl_1_data_2BA = .data:0x000002BA; // type:object size:0x3 data:string lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0x8 lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte @@ -306,26 +314,31 @@ lbl_1_bss_39C = .bss:0x0000039C; // type:object size:0x4 data:4byte lbl_1_bss_3A0 = .bss:0x000003A0; // type:object size:0x8 lbl_1_bss_3A8 = .bss:0x000003A8; // type:object size:0x2 data:2byte lbl_1_bss_3AA = .bss:0x000003AA; // type:object size:0x2 data:2byte -lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x2 data:2byte -lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x8 data:2byte +lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x4 data:2byte +lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x2 data:2byte +lbl_1_bss_3B2 = .bss:0x000003B2; // type:object size:0x6 data:2byte lbl_1_bss_3B8 = .bss:0x000003B8; // type:object size:0x4 data:4byte lbl_1_bss_3BC = .bss:0x000003BC; // type:object size:0x4 data:4byte lbl_1_bss_3C0 = .bss:0x000003C0; // type:object size:0x2 data:2byte lbl_1_bss_3C2 = .bss:0x000003C2; // type:object size:0x2 data:2byte -lbl_1_bss_3C4 = .bss:0x000003C4; // type:object size:0x8 data:4byte +lbl_1_bss_3C4 = .bss:0x000003C4; // type:object size:0x4 data:4byte +lbl_1_bss_3C8 = .bss:0x000003C8; // type:object size:0x4 data:4byte lbl_1_bss_3CC = .bss:0x000003CC; // type:object size:0x4 data:4byte lbl_1_bss_3D0 = .bss:0x000003D0; // type:object size:0x4 data:4byte -lbl_1_bss_3D4 = .bss:0x000003D4; // type:object size:0x1C data:4byte +lbl_1_bss_3D4 = .bss:0x000003D4; // type:object size:0x4 data:4byte +lbl_1_bss_3D8 = .bss:0x000003D8; // type:object size:0x18 data:4byte lbl_1_bss_3F0 = .bss:0x000003F0; // type:object size:0x50 data:4byte -lbl_1_bss_440 = .bss:0x00000440; // type:object size:0x10 data:4byte +lbl_1_bss_440 = .bss:0x00000440; // type:object size:0x8 data:4byte +lbl_1_bss_448 = .bss:0x00000448; // type:object size:0x8 data:4byte lbl_1_bss_450 = .bss:0x00000450; // type:object size:0x8 data:4byte lbl_1_bss_458 = .bss:0x00000458; // type:object size:0x4 data:4byte -lbl_1_bss_45C = .bss:0x0000045C; // type:object size:0x8 data:4byte +lbl_1_bss_45C = .bss:0x0000045C; // type:object size:0x4 data:4byte +lbl_1_bss_460 = .bss:0x00000460; // type:object size:0x4 data:4byte lbl_1_bss_464 = .bss:0x00000464; // type:object size:0x2000 data:float lbl_1_bss_2464 = .bss:0x00002464; // type:object size:0x4 data:4byte lbl_1_bss_2468 = .bss:0x00002468; // type:object size:0x400 data:2byte lbl_1_bss_2868 = .bss:0x00002868; // type:object size:0x3000 data:float -lbl_1_bss_5868 = .bss:0x00005868; // type:object size:0x8 data:4byte +lbl_1_bss_5868 = .bss:0x00005868; // type:object size:0x4 data:4byte lbl_1_bss_5870 = .bss:0x00005870; // type:object size:0x10 lbl_1_bss_5880 = .bss:0x00005880; // type:object size:0x800 lbl_1_bss_6080 = .bss:0x00006080; // type:object size:0x400 diff --git a/configure.py b/configure.py index 2456a535..9e58532b 100644 --- a/configure.py +++ b/configure.py @@ -1084,7 +1084,7 @@ config.libs = [ Rel( "m432Dll", # Dungeon Duos objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m432Dll/main.c"), + Object(Matching, "REL/m432Dll/main.c"), }, ), Rel( @@ -1098,10 +1098,10 @@ config.libs = [ Rel( "m434Dll", # Cheep Cheep Sweep objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m434Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m434Dll/map.c"), + Object(Matching, "REL/m434Dll/main.c"), + Object(Matching, "REL/m434Dll/map.c"), Object(NonMatching, "REL/m434Dll/player.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m434Dll/fish.c"), + Object(Matching, "REL/m434Dll/fish.c"), }, ), Rel( diff --git a/include/REL/m432data.h b/include/REL/m432data.h index 1152d0c7..a9b72135 100644 --- a/include/REL/m432data.h +++ b/include/REL/m432data.h @@ -4,6 +4,7 @@ #include "datadir_enum.h" #include "dolphin.h" #include "game/hsfanim.h" +#include "version.h" typedef struct UnkM432DllBss0SubStruct { char *unk_00; @@ -1202,10 +1203,10 @@ UnkM432DllBss0SubStruct lbl_1_data_EDC[0x1F] = { }, }; -UnkM432DllData1794Struct lbl_1_data_1794 = { 6300.0f, 0.7f, 10.0f, 0.4f, 1.0f, 0, 2, 6 }; -UnkM432DllData1794Struct lbl_1_data_17B4 = { 5700.0f, 0.8f, 8.0f, 0.6f, 1.0f, 0, 4, 5 }; -UnkM432DllData1794Struct lbl_1_data_17D4 = { 5100.0f, 0.9f, 6.0f, 0.8f, 1.0f, 0, 6, 4 }; -UnkM432DllData1794Struct lbl_1_data_17F4 = { 4500.0f, 1.0f, 4.0f, 1.0f, 1.0f, 0, 8, 3 }; +UnkM432DllData1794Struct lbl_1_data_1794 = { 105.0f * REFRESH_RATE, 0.7f, 10.0f, 0.4f, 1.0f, 0, 2, 6 }; +UnkM432DllData1794Struct lbl_1_data_17B4 = { 95.0f * REFRESH_RATE, 0.8f, 8.0f, 0.6f, 1.0f, 0, 4, 5 }; +UnkM432DllData1794Struct lbl_1_data_17D4 = { 85.0f * REFRESH_RATE, 0.9f, 6.0f, 0.8f, 1.0f, 0, 6, 4 }; +UnkM432DllData1794Struct lbl_1_data_17F4 = { 75.0f * REFRESH_RATE, 1.0f, 4.0f, 1.0f, 1.0f, 0, 8, 3 }; HsfanimStruct00 lbl_1_data_1814 = { 0x1E, { 0, 0 }, diff --git a/src/REL/m432Dll/main.c b/src/REL/m432Dll/main.c index fd8e16f1..038512c9 100644 --- a/src/REL/m432Dll/main.c +++ b/src/REL/m432Dll/main.c @@ -26,6 +26,7 @@ #include "ext_math.h" #include "string.h" +#include "version.h" #ifndef __MWERKS__ #include "game/audio.h" @@ -76,6 +77,12 @@ float lbl_1_bss_568; s32 lbl_1_bss_528[16]; UnkBss428Struct lbl_1_bss_428[32]; +#if VERSION_NTSC +#define _1606_BY_REFRESH_RATE 26.766666f +#else +#define _1606_BY_REFRESH_RATE 32.120003f +#endif + void fn_1_0(void) { lbl_1_bss_5D0.unk04 = NULL; @@ -738,7 +745,7 @@ void fn_1_2E34(WorkPlayerOld *player) player->unk_3C |= 0x100; player->unk_A4 = 0; if (!(player2->unk_3C & 0x100)) { - player->unk_84.y = 26.766666f; + player->unk_84.y = _1606_BY_REFRESH_RATE; } } if (state == 3) { @@ -842,7 +849,7 @@ void fn_1_3CE0(WorkPlayerOld *player, s32 *state, u32 *motAttr) } if (player->unk_14[3] >= 0 && (player->unk_28 & 0x100)) { - fn_1_2BD0(player, 26.766666f, 1); + fn_1_2BD0(player, _1606_BY_REFRESH_RATE, 1); *motAttr = HU3D_MOTATTR_NONE; *state = 3; } @@ -857,14 +864,14 @@ void fn_1_3DB8(WorkPlayerOld *player, s32 *state, u32 *motAttr) player->unk_A4 = 0; } else { - player->unk_84.y += 3.65f; + player->unk_84.y += 219.0f / REFRESH_RATE; } } else { player->unk_A4 = 0; } } - player->unk_84.y += -2.4333334f; + player->unk_84.y += -146.0f / REFRESH_RATE; if (player->unk_14[5] >= 0 && (player->unk_28 & 0x140)) { player->unk_38 = 3; player->unk_84.y = 0; @@ -1317,7 +1324,7 @@ void fn_1_52B8(UnkM432DllBss0SubStruct *arg0, Vec *arg1) void fn_1_5364(s32 arg0, omObjData *object) { if (lbl_1_bss_0[arg0].unk_1D8 >= 0) { - lbl_1_bss_0[arg0].unk_1DC -= 0.016666668f; + lbl_1_bss_0[arg0].unk_1DC -= 1.0f / REFRESH_RATE; if (0.0f >= lbl_1_bss_0[arg0].unk_1DC) { HuAudFXStop(lbl_1_bss_0[arg0].unk_1D8); lbl_1_bss_0[arg0].unk_1D8 = -1; @@ -2241,7 +2248,7 @@ void fn_1_B234(void) u32 var_r28; if (HuPadBtn[0] & 2) { - lbl_1_bss_57C = 0x4650; + lbl_1_bss_57C = 300 * REFRESH_RATE; } print8(0x18, 0x20, 1.5f, "COUNT:%d MODE:%d MES:%d", lbl_1_bss_580, lbl_1_bss_41C->work[0], lbl_1_bss_576); print8(0x18, 0x30, 1.5f, "%f %f %f %f", lbl_1_bss_0[0].unk_64, lbl_1_bss_0[0].unk_68, lbl_1_bss_0[0].unk_6C, lbl_1_bss_0[0].unk_28.z); @@ -2487,7 +2494,7 @@ void fn_1_C724(UnkM432DllStruct *var_r31, omObjData *var_r25, omObjData *var_r24 var_r30 = &lbl_1_bss_0[var_r31->unk_184 >> 1]; fn_1_BF9C(var_r31); if (fn_1_BF08(var_r31) == 0x7D4) { - var_r30->unk_1D4 += 1.0f - (2.0f * (var_r31->unk_14C / 60.0f)); + var_r30->unk_1D4 += 1.0f - (2.0f * (var_r31->unk_14C / REFRESH_RATE)); if (0.0f > var_r30->unk_1D4) { var_r30->unk_1D4 = 0.0f; } @@ -2502,7 +2509,7 @@ void fn_1_C724(UnkM432DllStruct *var_r31, omObjData *var_r25, omObjData *var_r24 } else { var_r31->unk_14C += 1.0f; - var_r30->unk_1D4 -= 0.016666668f; + var_r30->unk_1D4 -= 1.0f / REFRESH_RATE; if (0.0f > var_r30->unk_1D4) { var_r30->unk_1D4 = 0.0f; } @@ -2538,7 +2545,7 @@ void fn_1_D0E0(UnkM432DllStruct *arg0, omObjData *arg1, omObjData *arg2) { fn_1_BF9C(arg0); if (fn_1_BF08(arg0) == 0x7D5) { - lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC += 1.0f - (2.0f * (arg0->unk_14C / 60.0f)); + lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC += 1.0f - (2.0f * (arg0->unk_14C / REFRESH_RATE)); if (0.0f > lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC) { lbl_1_bss_0[arg0->unk_184 >> 1].unk_1DC = 0.0f; } @@ -2705,7 +2712,7 @@ void fn_1_E9E4(UnkM432DllStruct *arg0) var_f28 = 100.0f; } if ((arg0->unk_C8->unk_2C.y + var_f28) > arg0->unk_00.unk_6C.y) { - arg0->unk_00.unk_84.y = 26.766666f; + arg0->unk_00.unk_84.y = _1606_BY_REFRESH_RATE; arg0->unk_00.unk_A4 = 1.0f; return; } @@ -2938,7 +2945,7 @@ void fn_1_10250(omObjData *object) var_r31->unk_00.unk_2C = 0x100; fn_1_40C0(&var_r31->unk_00); if (200.0f > var_r31->unk_00.unk_6C.y) { - var_r31->unk_00.unk_84.y = 26.766666f; + var_r31->unk_00.unk_84.y = _1606_BY_REFRESH_RATE; var_r31->unk_00.unk_A4 = 1.0f; } else { @@ -3296,6 +3303,7 @@ void fn_1_128C8(omObjData *object) lbl_1_bss_0[var_r31].unk_1F0[1] = 0.0f; } } +#if VERSION_NTSC if (lbl_1_bss_41C->work[0] >= 0x3EC) { for (var_r31 = 0; var_r31 < 2; var_r31++) { if (lbl_1_bss_0[var_r31].unk_1CC >= 0) { @@ -3312,6 +3320,7 @@ void fn_1_128C8(omObjData *object) lbl_1_bss_0[var_r31].unk_1D8 = -1; } } +#endif } } @@ -3416,16 +3425,16 @@ void fn_1_131A8(omObjData *var_r28) case 0x3EB: lbl_1_bss_57C++; if (lbl_1_bss_574 >= 0) { - MGSeqParamSet(lbl_1_bss_574, 1, (0x468B - lbl_1_bss_57C) / 60); + MGSeqParamSet(lbl_1_bss_574, 1, (300 * REFRESH_RATE + REFRESH_RATE - 1 - lbl_1_bss_57C) / REFRESH_RATE); } - else if (lbl_1_bss_57C > 0x3F48) { - lbl_1_bss_574 = MGSeqCreate(1, (0x468B - lbl_1_bss_57C) / 60, -1, -1); + else if (lbl_1_bss_57C > 270 * REFRESH_RATE) { + lbl_1_bss_574 = MGSeqCreate(1, (300 * REFRESH_RATE + REFRESH_RATE - 1 - lbl_1_bss_57C) / REFRESH_RATE, -1, -1); MGSeqPosSet(lbl_1_bss_574, 288.0f, 400.0f); } fn_1_580(lbl_1_bss_528, 0, lbl_1_bss_57C); fn_1_12EA8(); - if ((lbl_1_bss_57C >= 0x4650) || (lbl_1_bss_3FC >= 0)) { + if ((lbl_1_bss_57C >= 300 * REFRESH_RATE) || (lbl_1_bss_3FC >= 0)) { var_r28->work[0] = 0x3EC; lbl_1_bss_3F0 = 0.0f; } @@ -3453,7 +3462,7 @@ void fn_1_131A8(omObjData *var_r28) lbl_1_bss_3F0 += 1.0f; if ((var_r17 >= 4) && (60.0f <= lbl_1_bss_3F0) && (MGSeqStatGet(lbl_1_bss_576) == 0)) { var_r28->work[0] = 0x3EE; - if ((lbl_1_bss_3FC >= 0) && (lbl_1_bss_57C < 0x1518)) { + if ((lbl_1_bss_3FC >= 0) && (lbl_1_bss_57C < (VERSION_NTSC ? 5400 : 5250))) { if (GWPlayerCfg[fn_1_51A8(lbl_1_bss_3FC)->unk_188].iscom != 0) { if (GWPlayerCfg[fn_1_51A8(lbl_1_bss_3FC + 1)->unk_188].iscom == 0) { goto block_81; @@ -3535,17 +3544,17 @@ void fn_1_131A8(omObjData *var_r28) case 0x3F0: var_r29 = &lbl_1_bss_0[lbl_1_bss_3FC >> 1]; lbl_1_bss_3F0 += 1.0f; - var_f31 = lbl_1_bss_3F0 / 180.0f; + var_f31 = lbl_1_bss_3F0 / (3.0f * REFRESH_RATE); var_f30 = sind((90.0f * var_f31)) * sind((90.0f * var_f31)); var_r29->unk_28.y = var_r29->unk_4C.y + (var_f30 * (var_r29->unk_58.y - var_r29->unk_4C.y)); var_r29->unk_1C.y = var_r29->unk_34.y + (var_f30 * (var_r29->unk_40.y - var_r29->unk_34.y)); - if (90.0f < lbl_1_bss_3F0) { - var_f31 = (lbl_1_bss_3F0 - 90.0f) / 90.0f; + if ((1.5f * REFRESH_RATE) < lbl_1_bss_3F0) { + var_f31 = (lbl_1_bss_3F0 - 1.5f * REFRESH_RATE) / (1.5f * REFRESH_RATE); var_f30 = sind((90.0f * var_f31)) * sind((90.0f * var_f31)); var_r29->unk_1C.z = var_r29->unk_34.z + (var_f30 * (var_r29->unk_40.z - var_r29->unk_34.z)); } Hu3DCameraPosSetV(lbl_1_data_A0[lbl_1_bss_3FC >> 1], &var_r29->unk_1C, &lbl_1_data_C8, &var_r29->unk_28); - if (180.0f <= lbl_1_bss_3F0) { + if ((3 * REFRESH_RATE) <= lbl_1_bss_3F0) { var_r28->work[0]++; lbl_1_bss_3F0 = 0.0f; } @@ -3654,7 +3663,7 @@ void ObjectSetup(void) lbl_1_bss_578 = GWMGRecordGet(3); lbl_1_bss_568 = -1.0f; if (lbl_1_bss_578 == 0) { - lbl_1_bss_578 = 0x1C20; + lbl_1_bss_578 = 120 * REFRESH_RATE; } fn_1_414(); for (var_r30 = 0; var_r30 < 2; var_r30++) { diff --git a/src/REL/m434Dll/fish.c b/src/REL/m434Dll/fish.c index 37883dc7..b5940faa 100644 --- a/src/REL/m434Dll/fish.c +++ b/src/REL/m434Dll/fish.c @@ -11,6 +11,7 @@ #include "game/gamework_data.h" #include "game/minigame_seq.h" #include "math.h" +#include "version.h" typedef struct bss_7480_struct { @@ -246,16 +247,16 @@ void fn_1_6DBC(omObjData *object) temp_r31->unk34.y += (75.0f - temp_r31->unk34.y) * 0.02f; } temp_r31->unk34.x += (temp_r31->unk34.y - temp_r31->unk34.x) * 0.2f; - temp_r31->unk1C.x += sind(temp_r31->unk34.z) * ((1.0f / 60.0f) * temp_r31->unk34.x); - temp_r31->unk1C.z += cosd(temp_r31->unk34.z) * ((1.0f / 60.0f) * temp_r31->unk34.x); - temp_r31->unk40.y += (1.0f / 60.0f) * temp_r31->unk34.x; + temp_r31->unk1C.x += sind(temp_r31->unk34.z) * ((1.0f / REFRESH_RATE) * temp_r31->unk34.x); + temp_r31->unk1C.z += cosd(temp_r31->unk34.z) * ((1.0f / REFRESH_RATE) * temp_r31->unk34.x); + temp_r31->unk40.y += (1.0f / REFRESH_RATE) * temp_r31->unk34.x; temp_r31->unk18 = fn_1_8254(temp_r31->unk18, &temp_r31->unk1C); Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C); Hu3DModelRotSet(temp_r31->unk2, 0, temp_r31->unk34.z, 0); break; case 1: - temp_r31->unk34.z += 3.0000002f; + temp_r31->unk34.z += 1.0f / REFRESH_RATE * 180.0f; Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C); Hu3DModelRotSet(temp_r31->unk2, 0, temp_r31->unk34.z, 0); if (fn_1_1D54() == 4) { @@ -274,9 +275,9 @@ void fn_1_6DBC(omObjData *object) } VECSubtract(&sp8, &temp_r31->unk1C, &sp8); temp_r31->unk40.x = temp_r31->unk34.z = atan2d(sp8.x, sp8.z); - temp_r31->unk28.x = (1.0f / 60.0f) * sp8.x; - temp_r31->unk28.y = 6.666667f; - temp_r31->unk28.z = (1.0f / 60.0f) * sp8.z; + temp_r31->unk28.x = (1.0f / REFRESH_RATE) * sp8.x; + temp_r31->unk28.y = VERSION_NTSC ? 6.666667f : 8.0f; + temp_r31->unk28.z = (1.0f / REFRESH_RATE) * sp8.z; temp_r31->unk8++; HuAudFXPlay(1734); } @@ -284,7 +285,7 @@ void fn_1_6DBC(omObjData *object) if (temp_r31->unk1C.y <= -15.000001f) { temp_r29 = 1; } - temp_r31->unk28.y += -0.27222225f; + temp_r31->unk28.y += VERSION_NTSC ? -0.27222225f : -0.392f; VECAdd(&temp_r31->unk1C, &temp_r31->unk28, &temp_r31->unk1C); if (!temp_r29 && temp_r31->unk1C.y <= -15.000001f) { fn_1_43AC(&temp_r31->unk1C); @@ -345,9 +346,9 @@ void fn_1_6DBC(omObjData *object) temp_r31->unk34.z = fn_1_6690(temp_r31->unk34.z, temp_r31->unk40.x, 0.07f); temp_r31->unk34.y += (50.0f - temp_r31->unk34.y) * 0.02f; temp_r31->unk34.x += (temp_r31->unk34.y - temp_r31->unk34.x) * 0.2f; - temp_r31->unk1C.x += sind(temp_r31->unk34.z) * ((1.0f / 60.0f) * temp_r31->unk34.x); - temp_r31->unk1C.z += cosd(temp_r31->unk34.z) * ((1.0f / 60.0f) * temp_r31->unk34.x); - temp_r31->unk40.y += (1.0f / 60.0f) * temp_r31->unk34.x; + temp_r31->unk1C.x += sind(temp_r31->unk34.z) * ((1.0f / REFRESH_RATE) * temp_r31->unk34.x); + temp_r31->unk1C.z += cosd(temp_r31->unk34.z) * ((1.0f / REFRESH_RATE) * temp_r31->unk34.x); + temp_r31->unk40.y += (1.0f / REFRESH_RATE) * temp_r31->unk34.x; Hu3DModelPosSetV(temp_r31->unk2, &temp_r31->unk1C); Hu3DModelRotSet(temp_r31->unk2, 0, temp_r31->unk34.z, 0); @@ -363,16 +364,16 @@ void fn_1_6DBC(omObjData *object) } VECSubtract(&sp8, &temp_r31->unk1C, &sp8); temp_r31->unk40.x = temp_r31->unk34.z = atan2d(sp8.x, sp8.z); - temp_r31->unk28.x = (1.0f / 60.0f) * sp8.x; - temp_r31->unk28.y = 6.666667f; - temp_r31->unk28.z = (1.0f / 60.0f) * sp8.z; + temp_r31->unk28.x = (1.0f / REFRESH_RATE) * sp8.x; + temp_r31->unk28.y = VERSION_NTSC ? 6.666667f : 8.0f; + temp_r31->unk28.z = (1.0f / REFRESH_RATE) * sp8.z; temp_r31->unk8++; } temp_r29 = temp_r25 = 0; if (temp_r31->unk1C.y <= -15.000001f) { temp_r29 = 1; } - temp_r31->unk28.y += -0.27222225f; + temp_r31->unk28.y += VERSION_NTSC ? -0.27222225f : -0.392f; VECAdd(&temp_r31->unk1C, &temp_r31->unk28, &temp_r31->unk1C); if (temp_r31->unk1C.y <= -15.000001f) { temp_r25 = 1; @@ -689,8 +690,8 @@ void fn_1_8C14(s32 arg0, Vec *arg1, float arg2) temp_r31 = lbl_1_bss_7480; for (temp_r30 = 0; temp_r30 < 32; temp_r30++, temp_r31++) { if (!temp_r31->unk0) { - temp_r31->unk4 = 30; - temp_r31->unk0 = (60.0f * (3.0f * arg2)) + 150.0f; + temp_r31->unk4 = 0.5 * REFRESH_RATE; + temp_r31->unk0 = (REFRESH_RATE * (3.0f * arg2)) + 2.5f * REFRESH_RATE; temp_r31->unk8 = arg0; temp_r31->unk14 = *arg1; temp_r31->unkC = 0; diff --git a/src/REL/m434Dll/main.c b/src/REL/m434Dll/main.c index 733df325..e13e8578 100644 --- a/src/REL/m434Dll/main.c +++ b/src/REL/m434Dll/main.c @@ -11,6 +11,7 @@ #include "game/gamework_data.h" #include "game/minigame_seq.h" #include "math.h" +#include "version.h" typedef struct camera_view { float zoom; @@ -127,9 +128,9 @@ void fn_1_558(omObjData *object) switch (fn_1_1D54()) { case 0: lbl_1_bss_3C2 = 60; - lbl_1_bss_3C0 = 60; + lbl_1_bss_3C0 = REFRESH_RATE; fn_1_1D64(1); - lbl_1_bss_10[1] = 60; + lbl_1_bss_10[1] = REFRESH_RATE; WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); HuAudFXPlay(1736); break; @@ -160,7 +161,7 @@ void fn_1_558(omObjData *object) if (--lbl_1_bss_3C0 == 0) { lbl_1_bss_3C2--; MGSeqParamSet(lbl_1_bss_3B8, 1, lbl_1_bss_3C2); - lbl_1_bss_3C0 = 60; + lbl_1_bss_3C0 = REFRESH_RATE; } if (!lbl_1_bss_3C2 || lbl_1_bss_3A8 == 1) { fn_1_1D64(3); @@ -178,7 +179,7 @@ void fn_1_558(omObjData *object) } if (MGSeqStatGet(lbl_1_bss_3BC) == 0) { fn_1_1D64(4); - lbl_1_bss_10[1] = 60; + lbl_1_bss_10[1] = REFRESH_RATE; } break; @@ -215,7 +216,7 @@ void fn_1_558(omObjData *object) break; } fn_1_1D64(5); - lbl_1_bss_10[1] = 210; + lbl_1_bss_10[1] = 3.5 * REFRESH_RATE; } break; diff --git a/src/REL/m434Dll/map.c b/src/REL/m434Dll/map.c index e690b936..ee77f381 100644 --- a/src/REL/m434Dll/map.c +++ b/src/REL/m434Dll/map.c @@ -14,6 +14,7 @@ #include "game/gamework_data.h" #include "game/minigame_seq.h" #include "math.h" +#include "version.h" typedef struct bss_2468_data { Vec unk0; @@ -531,8 +532,8 @@ void fn_1_3CC8(ModelData *model, Mtx mtx) if (temp_r31->unkC == 0) { continue; } - temp_f31 = (0.2f + cosd((90.0f * temp_r31->unkC) / 60.0f)) * 128.0f; - lbl_1_data_174.a = 255.0f * sind((90.0f * temp_r31->unkC) / 60.0f); + temp_f31 = (0.2f + cosd((90.0f * temp_r31->unkC) / REFRESH_RATE)) * 128.0f; + lbl_1_data_174.a = 255.0f * sind((90.0f * temp_r31->unkC) / REFRESH_RATE); GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_174); MTXScale(sp14, 0.5f * temp_f31, 0.5f * temp_f31, 1.0f); mtxTransCat(sp14, (200.0f * (600.0f + temp_r31->unk0.x)) / 1200.0f, (200.0f * (600.0f + temp_r31->unk0.z)) / 1200.0f, 0); @@ -550,7 +551,7 @@ void fn_1_43AC(Vec *arg0) temp_r31->unk0.x = arg0->x; temp_r31->unk0.y = arg0->y; temp_r31->unk0.z = arg0->z; - temp_r31->unkC = 60; + temp_r31->unkC = REFRESH_RATE; lbl_1_bss_2464 = (lbl_1_bss_2464 + 1) % 64; return; } diff --git a/src/REL/m434Dll/player.c b/src/REL/m434Dll/player.c index 103d7352..c2dd1f93 100644 --- a/src/REL/m434Dll/player.c +++ b/src/REL/m434Dll/player.c @@ -13,6 +13,7 @@ #include "game/gamework_data.h" #include "game/minigame_seq.h" #include "math.h" +#include "version.h" typedef struct data_224_struct { @@ -54,15 +55,15 @@ Vec lbl_1_data_1E4[2] = { { -550, 0, 550 }, { 550, 0, 550 } }; u32 lbl_1_data_1FC[10] = { 0, 2, 23, 133, 0x41000E, 0x410016, 0x41001E, 0x410026, 0x41002E, 0x410036 }; Data224Struct lbl_1_data_224[9] = { - { 0, 4, 12, 0, HU3D_MOTATTR_LOOP }, - { 1, 6, 6, 0, HU3D_MOTATTR_LOOP }, - { 0, 8, 6, 0, HU3D_MOTATTR_NONE }, - { 0, 5, 6, 0, HU3D_MOTATTR_LOOP }, - { 1, 5, 6, 0, HU3D_MOTATTR_LOOP }, - { 0, 8, 6, 30, HU3D_MOTATTR_NONE }, - { 0, 9, 6, 0, HU3D_MOTATTR_NONE }, - { 2, 0, 12, 0, HU3D_MOTATTR_NONE }, - { 3, 0, 12, 0, HU3D_MOTATTR_NONE }, + { 0, 4, 0.2f * REFRESH_RATE, 0, HU3D_MOTATTR_LOOP }, + { 1, 6, 0.1f * REFRESH_RATE, 0, HU3D_MOTATTR_LOOP }, + { 0, 8, 0.1f * REFRESH_RATE, 0, HU3D_MOTATTR_NONE }, + { 0, 5, 0.1f * REFRESH_RATE, 0, HU3D_MOTATTR_LOOP }, + { 1, 5, 0.1f * REFRESH_RATE, 0, HU3D_MOTATTR_LOOP }, + { 0, 8, 0.1f * REFRESH_RATE, 0.5f * REFRESH_RATE, HU3D_MOTATTR_NONE }, + { 0, 9, 0.1f * REFRESH_RATE, 0, HU3D_MOTATTR_NONE }, + { 2, 0, 0.2f * REFRESH_RATE, 0, HU3D_MOTATTR_NONE }, + { 3, 0, 0.2f * REFRESH_RATE, 0, HU3D_MOTATTR_NONE }, }; void fn_1_4988(omObjData *object); @@ -254,8 +255,8 @@ void fn_1_4E50(omObjData *object) if (temp_r31->unk1C > spC[temp_r31->unk24]) { temp_r31->unk24 = 1; temp_r31->unk44 = temp_r31->unk20; - temp_r31->unk94.x += 225.0f * (temp_r31->unk1C * sind(temp_r31->unk20)) * (1.0f / 60.0f); - temp_r31->unk94.z += 225.0f * (temp_r31->unk1C * cosd(temp_r31->unk20)) * (1.0f / 60.0f); + temp_r31->unk94.x += 225.0f * (temp_r31->unk1C * sind(temp_r31->unk20)) * (1.0f / REFRESH_RATE); + temp_r31->unk94.z += 225.0f * (temp_r31->unk1C * cosd(temp_r31->unk20)) * (1.0f / REFRESH_RATE); temp_r31->unk48 = 0.2f; temp_r31->unk4C = 0; if (CharModelMotionShiftIDGet(temp_r31->unk8) < 0) { @@ -296,7 +297,7 @@ void fn_1_4E50(omObjData *object) temp_r31->unk3A = 0; temp_r31->unk3C++; } - else if (temp_r31->unk3C == 1 && temp_r31->unk3A > 30.0f) { + else if (temp_r31->unk3C == 1 && temp_r31->unk3A > (0.5f * REFRESH_RATE)) { if (temp_r31->unk54 < 3) { temp_r28 = fn_1_8884(&temp_r31->unk88, 20, 150, temp_r31->unk40, -30, 30, 1, object->work[0]); if (temp_r28 >= 0) { @@ -352,7 +353,7 @@ void fn_1_4E50(omObjData *object) } } else { - if (temp_r31->unk3A > 30.0f) { + if (temp_r31->unk3A > (0.5f * REFRESH_RATE)) { temp_r31->unk38 = 0; } } @@ -376,7 +377,7 @@ void fn_1_4E50(omObjData *object) temp_r31->unk3C++; } if (temp_r31->unk3E) { - if (temp_r31->unk3A > 36.0f) { + if (temp_r31->unk3A > (VERSION_NTSC ? 36.0f : 30.000002f)) { for (temp_r29 = 0; temp_r29 < temp_r31->unk54; temp_r29++) { fn_1_8B58(temp_r31->unk58[temp_r29]); } @@ -384,7 +385,7 @@ void fn_1_4E50(omObjData *object) temp_r31->unk3E = 0; } } - if (temp_r31->unk3A > 60.0f) { + if (temp_r31->unk3A > 1.0f * REFRESH_RATE) { temp_r31->unk38 = 0; } break; @@ -514,7 +515,7 @@ void fn_1_5C98(omObjData *object) } else { temp_r31->unk80++; - if (temp_r30 || temp_r31->unk80 > 60.0f) { + if (temp_r30 || temp_r31->unk80 > (1.0f * REFRESH_RATE)) { if (temp_r30 || frandmod(1000) < 10) { temp_r31->unk70 = fn_1_8FA0(&temp_r31->unk88); fn_1_8E2C(temp_r31->unk70, &temp_r31->unk74); @@ -532,7 +533,7 @@ void fn_1_5C98(omObjData *object) case 2: temp_r31->unk80++; - if (temp_r31->unk80 < 120 * temp_r31->unk64) { + if (temp_r31->unk80 < (2 * REFRESH_RATE) * temp_r31->unk64) { temp_r31->unk1C = 0.4f; temp_r31->unk20 = temp_r31->unk40 + 10.0f; temp_r31->unk14 = temp_r31->unk18 = PAD_BUTTON_A; diff --git a/src/REL/m450Dll/main.c b/src/REL/m450Dll/main.c index 7936766b..e8536366 100644 --- a/src/REL/m450Dll/main.c +++ b/src/REL/m450Dll/main.c @@ -836,6 +836,12 @@ s32 lbl_1_bss_8; s32 lbl_1_bss_4; s32 lbl_1_bss_0; +#if VERSION_NTSC +#define _1606_BY_REFRESH_RATE 26.766666f +#else +#define _1606_BY_REFRESH_RATE 32.120003f +#endif + void fn_1_23B4(WorkPlayerOld *player) { s32 i; @@ -1019,7 +1025,7 @@ void fn_1_2E34(WorkPlayerOld *player) player->unk_3C |= 0x100; player->unk_A4 = 0; if (!(player2->unk_3C & 0x100)) { - player->unk_84.y = VERSION_NTSC ? 26.766666f : 32.120003f; + player->unk_84.y = _1606_BY_REFRESH_RATE; } } if (state == 3) { @@ -1123,7 +1129,7 @@ void fn_1_3CE0(WorkPlayerOld *player, s32 *state, u32 *motAttr) } if (player->unk_14[3] >= 0 && (player->unk_28 & 0x100)) { - fn_1_2BD0(player, VERSION_NTSC ? 26.766666f : 32.120003f, 1.0f); + fn_1_2BD0(player, _1606_BY_REFRESH_RATE, 1.0f); *motAttr = HU3D_MOTATTR_NONE; *state = 3; } From 5561cdf32e1a514a8291cc2fd436671376471139 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 17 Nov 2024 16:35:49 +0100 Subject: [PATCH 146/311] Ported m436Dll --- config/GMPP01_00/rels/m436Dll/splits.txt | 10 + config/GMPP01_00/rels/m436Dll/symbols.txt | 570 +++++++++++----------- configure.py | 4 +- src/REL/m436Dll/main.c | 35 +- 4 files changed, 315 insertions(+), 304 deletions(-) diff --git a/config/GMPP01_00/rels/m436Dll/splits.txt b/config/GMPP01_00/rels/m436Dll/splits.txt index 531cd645..a76a23ab 100644 --- a/config/GMPP01_00/rels/m436Dll/splits.txt +++ b/config/GMPP01_00/rels/m436Dll/splits.txt @@ -5,3 +5,13 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/m436Dll/main.c: + .text start:0x00000000 end:0x000110F4 + .rodata start:0x00000000 end:0x00000350 + .data start:0x00000000 end:0x0000036C + .bss start:0x00000000 end:0x000004B4 + +REL/m436Dll/sequence.c: + .text start:0x000110F4 end:0x000154A8 + .rodata start:0x00000350 end:0x000003B8 diff --git a/config/GMPP01_00/rels/m436Dll/symbols.txt b/config/GMPP01_00/rels/m436Dll/symbols.txt index 057ebf99..35ef65e7 100644 --- a/config/GMPP01_00/rels/m436Dll/symbols.txt +++ b/config/GMPP01_00/rels/m436Dll/symbols.txt @@ -25,303 +25,303 @@ fn_1_27C8 = .text:0x000027C8; // type:function size:0x38 fn_1_2800 = .text:0x00002800; // type:function size:0x24 fn_1_2824 = .text:0x00002824; // type:function size:0x38 fn_1_285C = .text:0x0000285C; // type:function size:0x1C8 -fn_1_2A24 = .text:0x00002A24; // type:function size:0x64 -fn_1_2A88 = .text:0x00002A88; // type:function size:0x304 -fn_1_2D8C = .text:0x00002D8C; // type:function size:0x28C -fn_1_3018 = .text:0x00003018; // type:function size:0x68 -fn_1_3080 = .text:0x00003080; // type:function size:0x174 -fn_1_31F4 = .text:0x000031F4; // type:function size:0x7B8 -fn_1_39AC = .text:0x000039AC; // type:function size:0x23C -fn_1_3BE8 = .text:0x00003BE8; // type:function size:0x61C -fn_1_4204 = .text:0x00004204; // type:function size:0xF8 -fn_1_42FC = .text:0x000042FC; // type:function size:0x290 -fn_1_458C = .text:0x0000458C; // type:function size:0x318 -fn_1_48A4 = .text:0x000048A4; // type:function size:0x150 -fn_1_49F4 = .text:0x000049F4; // type:function size:0xB8 -fn_1_4AAC = .text:0x00004AAC; // type:function size:0x68 -fn_1_4B14 = .text:0x00004B14; // type:function size:0x38C -fn_1_4EA0 = .text:0x00004EA0; // type:function size:0x108 -fn_1_4FA8 = .text:0x00004FA8; // type:function size:0x3DC -fn_1_5384 = .text:0x00005384; // type:function size:0x28 -fn_1_53AC = .text:0x000053AC; // type:function size:0x60 -fn_1_540C = .text:0x0000540C; // type:function size:0x3C -fn_1_5448 = .text:0x00005448; // type:function size:0x50 -fn_1_5498 = .text:0x00005498; // type:function size:0x168 -fn_1_5600 = .text:0x00005600; // type:function size:0x6C8 -fn_1_5CC8 = .text:0x00005CC8; // type:function size:0x390 -fn_1_6058 = .text:0x00006058; // type:function size:0x264 -fn_1_62BC = .text:0x000062BC; // type:function size:0x624 -fn_1_68E0 = .text:0x000068E0; // type:function size:0x5C -fn_1_693C = .text:0x0000693C; // type:function size:0x298 -fn_1_6BD4 = .text:0x00006BD4; // type:function size:0xB0 -fn_1_6C84 = .text:0x00006C84; // type:function size:0xD8 -fn_1_6D5C = .text:0x00006D5C; // type:function size:0xB0 -fn_1_6E0C = .text:0x00006E0C; // type:function size:0xB0 -fn_1_6EBC = .text:0x00006EBC; // type:function size:0xB0 -fn_1_6F6C = .text:0x00006F6C; // type:function size:0xD8 -fn_1_7044 = .text:0x00007044; // type:function size:0xB0 -fn_1_70F4 = .text:0x000070F4; // type:function size:0xB0 -fn_1_71A4 = .text:0x000071A4; // type:function size:0x120 -fn_1_72C4 = .text:0x000072C4; // type:function size:0x524 -fn_1_77E8 = .text:0x000077E8; // type:function size:0x368 -fn_1_7B50 = .text:0x00007B50; // type:function size:0x3C4 -fn_1_7F14 = .text:0x00007F14; // type:function size:0x268C -fn_1_A5A0 = .text:0x0000A5A0; // type:function size:0xE2C -fn_1_B3CC = .text:0x0000B3CC; // type:function size:0x40C -fn_1_B7D8 = .text:0x0000B7D8; // type:function size:0x4 -fn_1_B7DC = .text:0x0000B7DC; // type:function size:0x184 -fn_1_B960 = .text:0x0000B960; // type:function size:0x4C -fn_1_B9AC = .text:0x0000B9AC; // type:function size:0x5C -fn_1_BA08 = .text:0x0000BA08; // type:function size:0x94 -fn_1_BA9C = .text:0x0000BA9C; // type:function size:0x100 -fn_1_BB9C = .text:0x0000BB9C; // type:function size:0x50 -fn_1_BBEC = .text:0x0000BBEC; // type:function size:0x48 -fn_1_BC34 = .text:0x0000BC34; // type:function size:0x3C -fn_1_BC70 = .text:0x0000BC70; // type:function size:0x80 -fn_1_BCF0 = .text:0x0000BCF0; // type:function size:0x74 -fn_1_BD64 = .text:0x0000BD64; // type:function size:0xB0 -fn_1_BE14 = .text:0x0000BE14; // type:function size:0x50 -fn_1_BE64 = .text:0x0000BE64; // type:function size:0x48 -fn_1_BEAC = .text:0x0000BEAC; // type:function size:0x4C -fn_1_BEF8 = .text:0x0000BEF8; // type:function size:0xC8 -fn_1_BFC0 = .text:0x0000BFC0; // type:function size:0x30 -fn_1_BFF0 = .text:0x0000BFF0; // type:function size:0x98 -fn_1_C088 = .text:0x0000C088; // type:function size:0x458 -fn_1_C4E0 = .text:0x0000C4E0; // type:function size:0xFC -fn_1_C5DC = .text:0x0000C5DC; // type:function size:0xB0 -fn_1_C68C = .text:0x0000C68C; // type:function size:0xD8 -fn_1_C764 = .text:0x0000C764; // type:function size:0xD8 -fn_1_C83C = .text:0x0000C83C; // type:function size:0xC8 -fn_1_C904 = .text:0x0000C904; // type:function size:0x398 -fn_1_CC9C = .text:0x0000CC9C; // type:function size:0x374 -fn_1_D010 = .text:0x0000D010; // type:function size:0x32C -fn_1_D33C = .text:0x0000D33C; // type:function size:0xD4 -fn_1_D410 = .text:0x0000D410; // type:function size:0x2A8 -fn_1_D6B8 = .text:0x0000D6B8; // type:function size:0x24 -fn_1_D6DC = .text:0x0000D6DC; // type:function size:0x37C -fn_1_DA58 = .text:0x0000DA58; // type:function size:0xA0 -fn_1_DAF8 = .text:0x0000DAF8; // type:function size:0x2BC -fn_1_DDB4 = .text:0x0000DDB4; // type:function size:0xF4 -fn_1_DEA8 = .text:0x0000DEA8; // type:function size:0x200 -fn_1_E0A8 = .text:0x0000E0A8; // type:function size:0x94 -fn_1_E13C = .text:0x0000E13C; // type:function size:0x248 -fn_1_E384 = .text:0x0000E384; // type:function size:0x140 -fn_1_E4C4 = .text:0x0000E4C4; // type:function size:0xA0 -fn_1_E564 = .text:0x0000E564; // type:function size:0xBC -fn_1_E620 = .text:0x0000E620; // type:function size:0x58 -fn_1_E678 = .text:0x0000E678; // type:function size:0x90 -fn_1_E708 = .text:0x0000E708; // type:function size:0x220 -fn_1_E928 = .text:0x0000E928; // type:function size:0xD4 -fn_1_E9FC = .text:0x0000E9FC; // type:function size:0x348 -fn_1_ED44 = .text:0x0000ED44; // type:function size:0xC4 -fn_1_EE08 = .text:0x0000EE08; // type:function size:0x5F4 -fn_1_F3FC = .text:0x0000F3FC; // type:function size:0xEC -fn_1_F4E8 = .text:0x0000F4E8; // type:function size:0x48 -fn_1_F530 = .text:0x0000F530; // type:function size:0x30 -fn_1_F560 = .text:0x0000F560; // type:function size:0x98 -fn_1_F5F8 = .text:0x0000F5F8; // type:function size:0xB0 -fn_1_F6A8 = .text:0x0000F6A8; // type:function size:0xAC -fn_1_F754 = .text:0x0000F754; // type:function size:0x30 -fn_1_F784 = .text:0x0000F784; // type:function size:0x98 -fn_1_F81C = .text:0x0000F81C; // type:function size:0x100 -fn_1_F91C = .text:0x0000F91C; // type:function size:0x60 -fn_1_F97C = .text:0x0000F97C; // type:function size:0x8E8 -fn_1_10264 = .text:0x00010264; // type:function size:0x404 -fn_1_10668 = .text:0x00010668; // type:function size:0x1CC +fn_1_2A2C = .text:0x00002A24; // type:function size:0x64 +fn_1_2A90 = .text:0x00002A88; // type:function size:0x304 +fn_1_2D94 = .text:0x00002D8C; // type:function size:0x28C +fn_1_3020 = .text:0x00003018; // type:function size:0x68 +fn_1_3088 = .text:0x00003080; // type:function size:0x174 +fn_1_31FC = .text:0x000031F4; // type:function size:0x7B8 +fn_1_39B4 = .text:0x000039AC; // type:function size:0x23C +fn_1_3BF0 = .text:0x00003BE8; // type:function size:0x61C +fn_1_420C = .text:0x00004204; // type:function size:0xF8 +fn_1_4304 = .text:0x000042FC; // type:function size:0x290 +fn_1_4594 = .text:0x0000458C; // type:function size:0x318 +fn_1_48AC = .text:0x000048A4; // type:function size:0x150 +fn_1_49FC = .text:0x000049F4; // type:function size:0xB8 +fn_1_4AB4 = .text:0x00004AAC; // type:function size:0x68 +fn_1_4B1C = .text:0x00004B14; // type:function size:0x38C +fn_1_4EA8 = .text:0x00004EA0; // type:function size:0x108 +fn_1_4FB0 = .text:0x00004FA8; // type:function size:0x3DC +fn_1_538C = .text:0x00005384; // type:function size:0x28 +fn_1_53B4 = .text:0x000053AC; // type:function size:0x60 +fn_1_5414 = .text:0x0000540C; // type:function size:0x3C +fn_1_5450 = .text:0x00005448; // type:function size:0x50 +fn_1_54A0 = .text:0x00005498; // type:function size:0x168 +fn_1_5608 = .text:0x00005600; // type:function size:0x6C8 +fn_1_5CD0 = .text:0x00005CC8; // type:function size:0x390 +fn_1_6060 = .text:0x00006058; // type:function size:0x264 +fn_1_62C4 = .text:0x000062BC; // type:function size:0x624 +fn_1_68E8 = .text:0x000068E0; // type:function size:0x5C +fn_1_6944 = .text:0x0000693C; // type:function size:0x298 +fn_1_6BDC = .text:0x00006BD4; // type:function size:0xB0 +fn_1_6C8C = .text:0x00006C84; // type:function size:0xD8 +fn_1_6D64 = .text:0x00006D5C; // type:function size:0xB0 +fn_1_6E14 = .text:0x00006E0C; // type:function size:0xB0 +fn_1_6EC4 = .text:0x00006EBC; // type:function size:0xB0 +fn_1_6F74 = .text:0x00006F6C; // type:function size:0xD8 +fn_1_704C = .text:0x00007044; // type:function size:0xB0 +fn_1_70FC = .text:0x000070F4; // type:function size:0xB0 +fn_1_71AC = .text:0x000071A4; // type:function size:0x120 +fn_1_72CC = .text:0x000072C4; // type:function size:0x524 +fn_1_77F0 = .text:0x000077E8; // type:function size:0x368 +fn_1_7B58 = .text:0x00007B50; // type:function size:0x3C4 +fn_1_7F1C = .text:0x00007F14; // type:function size:0x268C +fn_1_A5A8 = .text:0x0000A5A0; // type:function size:0xE2C +fn_1_B3D4 = .text:0x0000B3CC; // type:function size:0x40C +fn_1_B7E0 = .text:0x0000B7D8; // type:function size:0x4 +fn_1_B7E4 = .text:0x0000B7DC; // type:function size:0x184 +fn_1_B968 = .text:0x0000B960; // type:function size:0x4C +fn_1_B9B4 = .text:0x0000B9AC; // type:function size:0x5C +fn_1_BA10 = .text:0x0000BA08; // type:function size:0x94 +fn_1_BAA4 = .text:0x0000BA9C; // type:function size:0x100 +fn_1_BBA4 = .text:0x0000BB9C; // type:function size:0x50 +fn_1_BBF4 = .text:0x0000BBEC; // type:function size:0x48 +fn_1_BC3C = .text:0x0000BC34; // type:function size:0x3C +fn_1_BC78 = .text:0x0000BC70; // type:function size:0x80 +fn_1_BCF8 = .text:0x0000BCF0; // type:function size:0x74 +fn_1_BD6C = .text:0x0000BD64; // type:function size:0xB0 +fn_1_BE1C = .text:0x0000BE14; // type:function size:0x50 +fn_1_BE6C = .text:0x0000BE64; // type:function size:0x48 +fn_1_BEB4 = .text:0x0000BEAC; // type:function size:0x4C +fn_1_BF00 = .text:0x0000BEF8; // type:function size:0xC8 +fn_1_BFC8 = .text:0x0000BFC0; // type:function size:0x30 +fn_1_BFF8 = .text:0x0000BFF0; // type:function size:0x98 +fn_1_C090 = .text:0x0000C088; // type:function size:0x458 +fn_1_C4E8 = .text:0x0000C4E0; // type:function size:0xFC +fn_1_C5E4 = .text:0x0000C5DC; // type:function size:0xB0 +fn_1_C694 = .text:0x0000C68C; // type:function size:0xD8 +fn_1_C76C = .text:0x0000C764; // type:function size:0xD8 +fn_1_C844 = .text:0x0000C83C; // type:function size:0xC8 +fn_1_C90C = .text:0x0000C904; // type:function size:0x398 +fn_1_CCA4 = .text:0x0000CC9C; // type:function size:0x374 +fn_1_D018 = .text:0x0000D010; // type:function size:0x32C +fn_1_D344 = .text:0x0000D33C; // type:function size:0xD4 +fn_1_D418 = .text:0x0000D410; // type:function size:0x2A8 +fn_1_D6C0 = .text:0x0000D6B8; // type:function size:0x24 +fn_1_D6E4 = .text:0x0000D6DC; // type:function size:0x37C +fn_1_DA60 = .text:0x0000DA58; // type:function size:0xA0 +fn_1_DB00 = .text:0x0000DAF8; // type:function size:0x2BC +fn_1_DDBC = .text:0x0000DDB4; // type:function size:0xF4 +fn_1_DEB0 = .text:0x0000DEA8; // type:function size:0x200 +fn_1_E0B0 = .text:0x0000E0A8; // type:function size:0x94 +fn_1_E144 = .text:0x0000E13C; // type:function size:0x248 +fn_1_E38C = .text:0x0000E384; // type:function size:0x140 +fn_1_E4CC = .text:0x0000E4C4; // type:function size:0xA0 +fn_1_E56C = .text:0x0000E564; // type:function size:0xBC +fn_1_E628 = .text:0x0000E620; // type:function size:0x58 +fn_1_E680 = .text:0x0000E678; // type:function size:0x90 +fn_1_E710 = .text:0x0000E708; // type:function size:0x220 +fn_1_E930 = .text:0x0000E928; // type:function size:0xD4 +fn_1_EA04 = .text:0x0000E9FC; // type:function size:0x348 +fn_1_ED4C = .text:0x0000ED44; // type:function size:0xC4 +fn_1_EE10 = .text:0x0000EE08; // type:function size:0x5F4 +fn_1_F404 = .text:0x0000F3FC; // type:function size:0xEC +fn_1_F4F0 = .text:0x0000F4E8; // type:function size:0x48 +fn_1_F538 = .text:0x0000F530; // type:function size:0x30 +fn_1_F568 = .text:0x0000F560; // type:function size:0x98 +fn_1_F600 = .text:0x0000F5F8; // type:function size:0xB0 +fn_1_F6B0 = .text:0x0000F6A8; // type:function size:0xAC +fn_1_F75C = .text:0x0000F754; // type:function size:0x30 +fn_1_F78C = .text:0x0000F784; // type:function size:0x98 +fn_1_F824 = .text:0x0000F81C; // type:function size:0x100 +fn_1_F924 = .text:0x0000F91C; // type:function size:0x60 +fn_1_F984 = .text:0x0000F97C; // type:function size:0x8E8 +fn_1_1026C = .text:0x00010264; // type:function size:0x404 +fn_1_10670 = .text:0x00010668; // type:function size:0x1CC _prolog = .text:0x00010834; // type:function size:0x54 scope:global _epilog = .text:0x00010888; // type:function size:0x4C scope:global -fn_1_108D4 = .text:0x000108D4; // type:function size:0x410 -fn_1_10CE4 = .text:0x00010CE4; // type:function size:0x410 -fn_1_110F4 = .text:0x000110F4; // type:function size:0x40 -fn_1_11134 = .text:0x00011134; // type:function size:0x28 -fn_1_1115C = .text:0x0001115C; // type:function size:0xC8 -fn_1_11224 = .text:0x00011224; // type:function size:0xC8 -fn_1_112EC = .text:0x000112EC; // type:function size:0xD8 -fn_1_113C4 = .text:0x000113C4; // type:function size:0x33C -fn_1_11700 = .text:0x00011700; // type:function size:0x110 -fn_1_11810 = .text:0x00011810; // type:function size:0x178 -fn_1_11988 = .text:0x00011988; // type:function size:0x188 -fn_1_11B10 = .text:0x00011B10; // type:function size:0x1B0 -fn_1_11CC0 = .text:0x00011CC0; // type:function size:0x50 -fn_1_11D10 = .text:0x00011D10; // type:function size:0x5C -fn_1_11D6C = .text:0x00011D6C; // type:function size:0x88 -fn_1_11DF4 = .text:0x00011DF4; // type:function size:0x74 -fn_1_11E68 = .text:0x00011E68; // type:function size:0x94 -fn_1_11EFC = .text:0x00011EFC; // type:function size:0x3C -fn_1_11F38 = .text:0x00011F38; // type:function size:0x318 -fn_1_12250 = .text:0x00012250; // type:function size:0x3C -fn_1_1228C = .text:0x0001228C; // type:function size:0x4C -fn_1_122D8 = .text:0x000122D8; // type:function size:0x314 -fn_1_125EC = .text:0x000125EC; // type:function size:0x314 -fn_1_12900 = .text:0x00012900; // type:function size:0x27C -fn_1_12B7C = .text:0x00012B7C; // type:function size:0x2B4 -fn_1_12E30 = .text:0x00012E30; // type:function size:0x530 -fn_1_13360 = .text:0x00013360; // type:function size:0x454 -fn_1_137B4 = .text:0x000137B4; // type:function size:0x48C -fn_1_13C40 = .text:0x00013C40; // type:function size:0x71C -fn_1_1435C = .text:0x0001435C; // type:function size:0x4C4 -fn_1_14820 = .text:0x00014820; // type:function size:0x4FC -fn_1_14D1C = .text:0x00014D1C; // type:function size:0x78C +fn_1_108DC = .text:0x000108D4; // type:function size:0x410 +ObjectSetup = .text:0x00010CE4; // type:function size:0x410 +fn_1_110FC = .text:0x000110F4; // type:function size:0x40 +fn_1_1113C = .text:0x00011134; // type:function size:0x28 +fn_1_11164 = .text:0x0001115C; // type:function size:0xC8 +fn_1_1122C = .text:0x00011224; // type:function size:0xC8 +fn_1_112F4 = .text:0x000112EC; // type:function size:0xD8 +fn_1_113CC = .text:0x000113C4; // type:function size:0x33C +fn_1_11708 = .text:0x00011700; // type:function size:0x110 +fn_1_11818 = .text:0x00011810; // type:function size:0x178 +fn_1_11990 = .text:0x00011988; // type:function size:0x188 +fn_1_11B18 = .text:0x00011B10; // type:function size:0x1B0 +fn_1_11CC8 = .text:0x00011CC0; // type:function size:0x50 +fn_1_11D18 = .text:0x00011D10; // type:function size:0x5C +fn_1_11D74 = .text:0x00011D6C; // type:function size:0x88 +fn_1_11DFC = .text:0x00011DF4; // type:function size:0x74 +fn_1_11E70 = .text:0x00011E68; // type:function size:0x94 +fn_1_11F04 = .text:0x00011EFC; // type:function size:0x3C +fn_1_11F40 = .text:0x00011F38; // type:function size:0x318 +fn_1_12258 = .text:0x00012250; // type:function size:0x3C +fn_1_12294 = .text:0x0001228C; // type:function size:0x4C +fn_1_122E0 = .text:0x000122D8; // type:function size:0x314 +fn_1_125F4 = .text:0x000125EC; // type:function size:0x314 +fn_1_12908 = .text:0x00012900; // type:function size:0x27C +fn_1_12B84 = .text:0x00012B7C; // type:function size:0x2B4 +fn_1_12E38 = .text:0x00012E30; // type:function size:0x530 +fn_1_13368 = .text:0x00013360; // type:function size:0x454 +fn_1_137BC = .text:0x000137B4; // type:function size:0x48C +fn_1_13C48 = .text:0x00013C40; // type:function size:0x71C +fn_1_14364 = .text:0x0001435C; // type:function size:0x4C4 +fn_1_14828 = .text:0x00014820; // type:function size:0x4FC +fn_1_14D24 = .text:0x00014D1C; // type:function size:0x78C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x3C data:4byte -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC data:4byte -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x30 data:4byte -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:4byte -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:4byte -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:4byte -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x18 data:4byte -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:4byte -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:4byte -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:4byte -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x8 data:4byte -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0xC data:4byte -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:4byte -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:4byte -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:4byte -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x30 data:4byte -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x34 data:4byte -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x30 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x30 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x30 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 lbl_1_data_20 = .data:0x00000020; // type:object size:0x20 lbl_1_data_40 = .data:0x00000040; // type:object size:0xA0 lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x4 data:4byte lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x4 data:4byte lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x4 data:4byte -lbl_1_data_EC = .data:0x000000EC; // type:object size:0x1B data:string -lbl_1_data_107 = .data:0x00000107; // type:object size:0x22 data:string -lbl_1_data_129 = .data:0x00000129; // type:object size:0x1A data:string -lbl_1_data_143 = .data:0x00000143; // type:object size:0x1A data:string -lbl_1_data_15D = .data:0x0000015D; // type:object size:0xF +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x1B scope:local data:string +lbl_1_data_107 = .data:0x00000107; // type:object size:0x22 scope:local data:string +lbl_1_data_129 = .data:0x00000129; // type:object size:0x1A scope:local data:string +lbl_1_data_143 = .data:0x00000143; // type:object size:0x1A scope:local data:string +lbl_1_data_15D = .data:0x0000015D; // type:object size:0xE scope:local data:string lbl_1_data_16C = .data:0x0000016C; // type:object size:0x4 data:4byte -lbl_1_data_170 = .data:0x00000170; // type:object size:0x34 -lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x14 +lbl_1_data_170 = .data:0x00000170; // type:object size:0x12 scope:local data:string +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x12 scope:local data:string jumptable_1_data_1B8 = .data:0x000001B8; // type:object size:0x30 scope:local lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x6C -lbl_1_data_254 = .data:0x00000254; // type:object size:0x18 data:float -lbl_1_data_26C = .data:0x0000026C; // type:object size:0x12 data:string -lbl_1_data_27E = .data:0x0000027E; // type:object size:0x12 data:string +lbl_1_data_254 = .data:0x00000254; // type:object size:0xC data:float +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x12 scope:local data:string +lbl_1_data_27E = .data:0x0000027E; // type:object size:0x12 scope:local data:string lbl_1_data_290 = .data:0x00000290; // type:object size:0x9C lbl_1_data_32C = .data:0x0000032C; // type:object size:0x18 jumptable_1_data_344 = .data:0x00000344; // type:object size:0x28 scope:local @@ -332,7 +332,7 @@ lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:4byte lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC data:float lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x30 data:float diff --git a/configure.py b/configure.py index 9e58532b..614869f4 100644 --- a/configure.py +++ b/configure.py @@ -1114,8 +1114,8 @@ config.libs = [ Rel( "m436Dll", # Fruits of Doom objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m436Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m436Dll/sequence.c"), + Object(Matching, "REL/m436Dll/main.c"), + Object(Matching, "REL/m436Dll/sequence.c"), }, ), Rel( diff --git a/src/REL/m436Dll/main.c b/src/REL/m436Dll/main.c index c7a806b9..95440203 100755 --- a/src/REL/m436Dll/main.c +++ b/src/REL/m436Dll/main.c @@ -14,6 +14,7 @@ #include "game/wipe.h" #include "ext_math.h" +#include "version.h" typedef struct { /* 0x00 */ omObjData *unk00; @@ -650,7 +651,7 @@ void fn_1_27C8(s32 arg0) { if (lbl_1_bss_10 == 0) { lbl_1_bss_10 = 1; - lbl_1_bss_C = arg0 * 60; + lbl_1_bss_C = arg0 * REFRESH_RATE; } } @@ -679,14 +680,14 @@ void fn_1_285C(omObjData *arg0) switch (lbl_1_bss_10) { case 1: if (lbl_1_data_16C == -1) { - lbl_1_data_16C = MGSeqCreate(1, lbl_1_bss_C / 60, -1, -1); + lbl_1_data_16C = MGSeqCreate(1, lbl_1_bss_C / REFRESH_RATE, -1, -1); } lbl_1_bss_10 = 2; break; case 2: lbl_1_bss_C--; if (lbl_1_data_16C != -1) { - MGSeqParamSet(lbl_1_data_16C, 1, (lbl_1_bss_C + 59) / 60); + MGSeqParamSet(lbl_1_data_16C, 1, (lbl_1_bss_C + REFRESH_RATE - 1) / REFRESH_RATE); } if (lbl_1_bss_C <= 0) { lbl_1_bss_C = 30; @@ -1789,9 +1790,9 @@ void fn_1_77F0(void) HuAudFXPlay(0x6D2); var_r30->unk00->work[3] = 3; fn_1_2744(var_r31, MAKE_MESSID(29, 3)); - fn_1_24D0(var_r31, 60); + fn_1_24D0(var_r31, REFRESH_RATE); lbl_1_bss_4 = 2; - fn_1_24D0(var_r31, 60); + fn_1_24D0(var_r31, REFRESH_RATE); var_r30->unk00->work[3] = 2; fn_1_2468(var_r31); lbl_1_bss_4 = 1; @@ -1901,17 +1902,17 @@ void fn_1_A5A8(void) var_r28->unk00->work[3] = 2; var_r28->unk00->work[3] = 1; fn_1_2744(var_r31, MAKE_MESSID(29, 21)); - fn_1_24D0(var_r31, 180); + fn_1_24D0(var_r31, 3 * REFRESH_RATE); var_r28->unk00->work[3] = 2; sp68->unk00->work[0] = 10; fn_1_2744(var_r31, MAKE_MESSID(29, 22)); - fn_1_24D0(var_r31, 60); + fn_1_24D0(var_r31, REFRESH_RATE); var_r28->unk00->work[3] = 4; fn_1_2A90(var_r31); fn_1_2D94(var_r31); fn_1_3020(); var_r28->unk00->work[3] = 2; - HuPrcSleep(120); + HuPrcSleep(2 * REFRESH_RATE); var_r28->unk00->work[3] = 1; fn_1_2744(var_r31, MAKE_MESSID(29, 37)); fn_1_24D0(var_r31, 0); @@ -2153,7 +2154,7 @@ s32 fn_1_C090(s32 arg0, s32 arg1, s32 arg2) if (arg2 % 27 == 2 && temp_r31->unk24 == 0) { switch (temp_r31->unk10) { case 0: - if (arg2 <= 120) { + if (arg2 <= 2 * REFRESH_RATE) { var_r29 = 0; } else if (var_r28->unk04 <= 3) { @@ -2164,7 +2165,7 @@ s32 fn_1_C090(s32 arg0, s32 arg1, s32 arg2) } break; case 1: - if (arg2 <= 120) { + if (arg2 <= 2 * REFRESH_RATE) { var_r29 = 0; } else if (var_r28->unk04 <= 6) { @@ -2175,7 +2176,7 @@ s32 fn_1_C090(s32 arg0, s32 arg1, s32 arg2) } break; case 2: - if (arg2 <= 60) { + if (arg2 <= REFRESH_RATE) { var_r29 = 0; } else if (var_r28->unk04 <= 9) { @@ -2186,7 +2187,7 @@ s32 fn_1_C090(s32 arg0, s32 arg1, s32 arg2) } break; case 3: - if (arg2 <= 60) { + if (arg2 <= REFRESH_RATE) { var_r29 = 0; } else if (var_r28->unk04 <= 12) { @@ -2339,14 +2340,14 @@ void fn_1_C90C(void) s32 sp3C[] = { MAKE_MESSID(29, 31), MAKE_MESSID(29, 32), MAKE_MESSID(29, 33) }; var_r28 = rand8() % 3; - HuPrcSleep(70); + HuPrcSleep(REFRESH_RATE + 10); fn_1_26D4(sp28, sp3C[var_r28]); var_r31 = fn_1_2230((580.0f - sp28[0]) / 2, 60.0f, sp28[0], sp28[1], 2); var_r27->unk00->work[2] = 1; HuAudFXPlay(0x6D2); HuAudFXPlay(0x6E3); fn_1_2744(var_r31, sp3C[var_r28]); - fn_1_24D0(var_r31, 120); + fn_1_24D0(var_r31, 2 * REFRESH_RATE); fn_1_2468(var_r31); lbl_1_bss_4 = 1; HuPrcEnd(); @@ -2367,7 +2368,7 @@ void fn_1_CCA4(void) HuAudFXPlay(0x6D9); HuAudSeqAllFadeOut(100); fn_1_2744(var_r31, sp24[var_r28]); - fn_1_24D0(var_r31, 120); + fn_1_24D0(var_r31, 2 * REFRESH_RATE); fn_1_2468(var_r31); lbl_1_bss_4 = 1; HuPrcEnd(); @@ -2385,7 +2386,7 @@ void fn_1_D018(void) HuAudFXPlay(0x6D9); HuAudSeqAllFadeOut(100); fn_1_2744(var_r31, MAKE_MESSID(29, 36)); - fn_1_24D0(var_r31, 120); + fn_1_24D0(var_r31, 2 * REFRESH_RATE); fn_1_2468(var_r31); lbl_1_bss_4 = 1; HuPrcEnd(); @@ -2645,7 +2646,7 @@ s32 fn_1_DEB0(void) Hu3DModelScaleSet(var_r29->unk00->model[temp_r31->unk1C + 1], 1.0f, 1.0f, 1.0f); var_r30->unk0C = temp_r31->unk20 = 1; } - if (temp_r31->unk20 == 1 && temp_r31->unk24++ >= 60) { + if (temp_r31->unk20 == 1 && temp_r31->unk24++ >= REFRESH_RATE) { temp_r26 = &Hu3DData[var_r29->unk00->model[temp_r31->unk1C + 1]]; var_r28->unk00->work[1] = 3; temp_r26->pos.y = temp_r27->pos.y; From 4e5aa07dbcf96f37cf013f650a341bc014f7e8ef Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 17 Nov 2024 16:46:21 +0100 Subject: [PATCH 147/311] Ported m437Dll --- config/GMPP01_00/rels/m437Dll/splits.txt | 11 + config/GMPP01_00/rels/m437Dll/symbols.txt | 704 +++++++++++----------- configure.py | 4 +- src/REL/m402Dll/main.c | 3 +- src/REL/m426Dll/main.c | 3 +- src/REL/m437Dll/main.c | 25 +- src/REL/m441Dll/main.c | 3 +- src/REL/m448Dll/main.c | 3 +- 8 files changed, 386 insertions(+), 370 deletions(-) diff --git a/config/GMPP01_00/rels/m437Dll/splits.txt b/config/GMPP01_00/rels/m437Dll/splits.txt index 531cd645..9337d9d2 100644 --- a/config/GMPP01_00/rels/m437Dll/splits.txt +++ b/config/GMPP01_00/rels/m437Dll/splits.txt @@ -5,3 +5,14 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/m437Dll/main.c: + .text start:0x00000000 end:0x00011340 + .rodata start:0x00000000 end:0x000005D0 + .data start:0x00000000 end:0x00000350 + .bss start:0x00000000 end:0x000009A8 + +REL/m437Dll/sequence.c: + .text start:0x00011340 end:0x00016794 + .rodata start:0x000005D0 end:0x00000640 + .data start:0x00000350 end:0x00000430 diff --git a/config/GMPP01_00/rels/m437Dll/symbols.txt b/config/GMPP01_00/rels/m437Dll/symbols.txt index ae5723b4..fac6c7f3 100644 --- a/config/GMPP01_00/rels/m437Dll/symbols.txt +++ b/config/GMPP01_00/rels/m437Dll/symbols.txt @@ -14,374 +14,374 @@ fn_1_1184 = .text:0x00001184; // type:function size:0x38 fn_1_11BC = .text:0x000011BC; // type:function size:0x24 fn_1_11E0 = .text:0x000011E0; // type:function size:0x38 fn_1_1218 = .text:0x00001218; // type:function size:0x1C8 -fn_1_13E0 = .text:0x000013E0; // type:function size:0x64 -fn_1_1444 = .text:0x00001444; // type:function size:0x644 -fn_1_1A88 = .text:0x00001A88; // type:function size:0x24 -fn_1_1AAC = .text:0x00001AAC; // type:function size:0x458 -fn_1_1F04 = .text:0x00001F04; // type:function size:0x1EC -fn_1_20F0 = .text:0x000020F0; // type:function size:0x1EC -fn_1_22DC = .text:0x000022DC; // type:function size:0x458 -fn_1_2734 = .text:0x00002734; // type:function size:0x68 -fn_1_279C = .text:0x0000279C; // type:function size:0x68 -fn_1_2804 = .text:0x00002804; // type:function size:0xE8 -fn_1_28EC = .text:0x000028EC; // type:function size:0x11C -fn_1_2A08 = .text:0x00002A08; // type:function size:0x84 -fn_1_2A8C = .text:0x00002A8C; // type:function size:0x70 -fn_1_2AFC = .text:0x00002AFC; // type:function size:0xA8 -fn_1_2BA4 = .text:0x00002BA4; // type:function size:0x10 -fn_1_2BB4 = .text:0x00002BB4; // type:function size:0x5D8 -fn_1_318C = .text:0x0000318C; // type:function size:0xCC -fn_1_3258 = .text:0x00003258; // type:function size:0x1B0 -fn_1_3408 = .text:0x00003408; // type:function size:0x284 -fn_1_368C = .text:0x0000368C; // type:function size:0x20 -fn_1_36AC = .text:0x000036AC; // type:function size:0x120 -fn_1_37CC = .text:0x000037CC; // type:function size:0x14 -fn_1_37E0 = .text:0x000037E0; // type:function size:0x1A8 -fn_1_3988 = .text:0x00003988; // type:function size:0x34 -fn_1_39BC = .text:0x000039BC; // type:function size:0x20 -fn_1_39DC = .text:0x000039DC; // type:function size:0x16C -fn_1_3B48 = .text:0x00003B48; // type:function size:0x14 -fn_1_3B5C = .text:0x00003B5C; // type:function size:0x154 -fn_1_3CB0 = .text:0x00003CB0; // type:function size:0x88 -fn_1_3D38 = .text:0x00003D38; // type:function size:0x204 -fn_1_3F3C = .text:0x00003F3C; // type:function size:0x5F4 -fn_1_4530 = .text:0x00004530; // type:function size:0x188 -fn_1_46B8 = .text:0x000046B8; // type:function size:0x268 -fn_1_4920 = .text:0x00004920; // type:function size:0x10 -fn_1_4930 = .text:0x00004930; // type:function size:0x1C0 -fn_1_4AF0 = .text:0x00004AF0; // type:function size:0xB4 -fn_1_4BA4 = .text:0x00004BA4; // type:function size:0x94 -fn_1_4C38 = .text:0x00004C38; // type:function size:0x1C0 -fn_1_4DF8 = .text:0x00004DF8; // type:function size:0xE0 -fn_1_4ED8 = .text:0x00004ED8; // type:function size:0x268 -fn_1_5140 = .text:0x00005140; // type:function size:0x94 -fn_1_51D4 = .text:0x000051D4; // type:function size:0x94 -fn_1_5268 = .text:0x00005268; // type:function size:0x94 -fn_1_52FC = .text:0x000052FC; // type:function size:0x28 -fn_1_5324 = .text:0x00005324; // type:function size:0x32C -fn_1_5650 = .text:0x00005650; // type:function size:0x32C -fn_1_597C = .text:0x0000597C; // type:function size:0x154 -fn_1_5AD0 = .text:0x00005AD0; // type:function size:0x4E4 -fn_1_5FB4 = .text:0x00005FB4; // type:function size:0x150 -fn_1_6104 = .text:0x00006104; // type:function size:0x28 -fn_1_612C = .text:0x0000612C; // type:function size:0x64 -fn_1_6190 = .text:0x00006190; // type:function size:0x68 -fn_1_61F8 = .text:0x000061F8; // type:function size:0x380 -fn_1_6578 = .text:0x00006578; // type:function size:0x60 -fn_1_65D8 = .text:0x000065D8; // type:function size:0xB18 -fn_1_70F0 = .text:0x000070F0; // type:function size:0x3C -fn_1_712C = .text:0x0000712C; // type:function size:0x198 -fn_1_72C4 = .text:0x000072C4; // type:function size:0x1E4 -fn_1_74A8 = .text:0x000074A8; // type:function size:0x1C8 -fn_1_7670 = .text:0x00007670; // type:function size:0x368 -fn_1_79D8 = .text:0x000079D8; // type:function size:0x34 -fn_1_7A0C = .text:0x00007A0C; // type:function size:0x8CC -fn_1_82D8 = .text:0x000082D8; // type:function size:0x28 -fn_1_8300 = .text:0x00008300; // type:function size:0x1BC -fn_1_84BC = .text:0x000084BC; // type:function size:0x1C0 -fn_1_867C = .text:0x0000867C; // type:function size:0xB0 -fn_1_872C = .text:0x0000872C; // type:function size:0xF0 -fn_1_881C = .text:0x0000881C; // type:function size:0xB0 -fn_1_88CC = .text:0x000088CC; // type:function size:0xB0 -fn_1_897C = .text:0x0000897C; // type:function size:0xB0 -fn_1_8A2C = .text:0x00008A2C; // type:function size:0xF0 -fn_1_8B1C = .text:0x00008B1C; // type:function size:0xB0 -fn_1_8BCC = .text:0x00008BCC; // type:function size:0xB0 -fn_1_8C7C = .text:0x00008C7C; // type:function size:0x120 -fn_1_8D9C = .text:0x00008D9C; // type:function size:0x57C -fn_1_9318 = .text:0x00009318; // type:function size:0x3B8 -fn_1_96D0 = .text:0x000096D0; // type:function size:0x454 -fn_1_9B24 = .text:0x00009B24; // type:function size:0x474 -fn_1_9F98 = .text:0x00009F98; // type:function size:0x4A0 -fn_1_A438 = .text:0x0000A438; // type:function size:0x420 -fn_1_A858 = .text:0x0000A858; // type:function size:0x4 -fn_1_A85C = .text:0x0000A85C; // type:function size:0x184 -fn_1_A9E0 = .text:0x0000A9E0; // type:function size:0x3C -fn_1_AA1C = .text:0x0000AA1C; // type:function size:0x5C -fn_1_AA78 = .text:0x0000AA78; // type:function size:0x3C -fn_1_AAB4 = .text:0x0000AAB4; // type:function size:0x5C -fn_1_AB10 = .text:0x0000AB10; // type:function size:0x50 -fn_1_AB60 = .text:0x0000AB60; // type:function size:0x48 -fn_1_ABA8 = .text:0x0000ABA8; // type:function size:0x3C -fn_1_ABE4 = .text:0x0000ABE4; // type:function size:0x84 -fn_1_AC68 = .text:0x0000AC68; // type:function size:0x5C -fn_1_ACC4 = .text:0x0000ACC4; // type:function size:0x5C -fn_1_AD20 = .text:0x0000AD20; // type:function size:0x70 -fn_1_AD90 = .text:0x0000AD90; // type:function size:0x48 -fn_1_ADD8 = .text:0x0000ADD8; // type:function size:0x3C -fn_1_AE14 = .text:0x0000AE14; // type:function size:0x5C -fn_1_AE70 = .text:0x0000AE70; // type:function size:0xD4 -fn_1_AF44 = .text:0x0000AF44; // type:function size:0x248 -fn_1_B18C = .text:0x0000B18C; // type:function size:0x30 -fn_1_B1BC = .text:0x0000B1BC; // type:function size:0x8C -fn_1_B248 = .text:0x0000B248; // type:function size:0x20 -fn_1_B268 = .text:0x0000B268; // type:function size:0x180 -fn_1_B3E8 = .text:0x0000B3E8; // type:function size:0x104 -fn_1_B4EC = .text:0x0000B4EC; // type:function size:0x2EC -fn_1_B7D8 = .text:0x0000B7D8; // type:function size:0xF0 -fn_1_B8C8 = .text:0x0000B8C8; // type:function size:0x348 -fn_1_BC10 = .text:0x0000BC10; // type:function size:0xB0 -fn_1_BCC0 = .text:0x0000BCC0; // type:function size:0xF0 -fn_1_BDB0 = .text:0x0000BDB0; // type:function size:0xC8 -fn_1_BE78 = .text:0x0000BE78; // type:function size:0x3C8 -fn_1_C240 = .text:0x0000C240; // type:function size:0x3C8 -fn_1_C608 = .text:0x0000C608; // type:function size:0x3B4 -fn_1_C9BC = .text:0x0000C9BC; // type:function size:0x35C -fn_1_CD18 = .text:0x0000CD18; // type:function size:0x31C -fn_1_D034 = .text:0x0000D034; // type:function size:0x384 -fn_1_D3B8 = .text:0x0000D3B8; // type:function size:0x394 -fn_1_D74C = .text:0x0000D74C; // type:function size:0x1DC -fn_1_D928 = .text:0x0000D928; // type:function size:0x3BC -fn_1_DCE4 = .text:0x0000DCE4; // type:function size:0x1D8 -fn_1_DEBC = .text:0x0000DEBC; // type:function size:0x3E4 -fn_1_E2A0 = .text:0x0000E2A0; // type:function size:0x2F0 -fn_1_E590 = .text:0x0000E590; // type:function size:0x9C -fn_1_E62C = .text:0x0000E62C; // type:function size:0x310 -fn_1_E93C = .text:0x0000E93C; // type:function size:0x5C -fn_1_E998 = .text:0x0000E998; // type:function size:0x104 -fn_1_EA9C = .text:0x0000EA9C; // type:function size:0x94 -fn_1_EB30 = .text:0x0000EB30; // type:function size:0xD8 -fn_1_EC08 = .text:0x0000EC08; // type:function size:0x1C4 -fn_1_EDCC = .text:0x0000EDCC; // type:function size:0xCC -fn_1_EE98 = .text:0x0000EE98; // type:function size:0x12C -fn_1_EFC4 = .text:0x0000EFC4; // type:function size:0xEC -fn_1_F0B0 = .text:0x0000F0B0; // type:function size:0x40 -fn_1_F0F0 = .text:0x0000F0F0; // type:function size:0x4C -fn_1_F13C = .text:0x0000F13C; // type:function size:0x48 -fn_1_F184 = .text:0x0000F184; // type:function size:0x108 -fn_1_F28C = .text:0x0000F28C; // type:function size:0x144 -fn_1_F3D0 = .text:0x0000F3D0; // type:function size:0xBC -fn_1_F48C = .text:0x0000F48C; // type:function size:0x40 -fn_1_F4CC = .text:0x0000F4CC; // type:function size:0x30 -fn_1_F4FC = .text:0x0000F4FC; // type:function size:0x8C -fn_1_F588 = .text:0x0000F588; // type:function size:0xB0 -fn_1_F638 = .text:0x0000F638; // type:function size:0xAC -fn_1_F6E4 = .text:0x0000F6E4; // type:function size:0x30 -fn_1_F714 = .text:0x0000F714; // type:function size:0x8C -fn_1_F7A0 = .text:0x0000F7A0; // type:function size:0xF4 -fn_1_F894 = .text:0x0000F894; // type:function size:0x10 -fn_1_F8A4 = .text:0x0000F8A4; // type:function size:0xB90 -fn_1_10434 = .text:0x00010434; // type:function size:0x468 -fn_1_1089C = .text:0x0001089C; // type:function size:0x1EC +fn_1_13E8 = .text:0x000013E0; // type:function size:0x64 +fn_1_144C = .text:0x00001444; // type:function size:0x644 +fn_1_1A90 = .text:0x00001A88; // type:function size:0x24 +fn_1_1AB4 = .text:0x00001AAC; // type:function size:0x458 +fn_1_1F0C = .text:0x00001F04; // type:function size:0x1EC +fn_1_20F8 = .text:0x000020F0; // type:function size:0x1EC +fn_1_22E4 = .text:0x000022DC; // type:function size:0x458 +fn_1_273C = .text:0x00002734; // type:function size:0x68 +fn_1_27A4 = .text:0x0000279C; // type:function size:0x68 +fn_1_280C = .text:0x00002804; // type:function size:0xE8 +fn_1_28F4 = .text:0x000028EC; // type:function size:0x11C +fn_1_2A10 = .text:0x00002A08; // type:function size:0x84 +fn_1_2A94 = .text:0x00002A8C; // type:function size:0x70 +fn_1_2B04 = .text:0x00002AFC; // type:function size:0xA8 +fn_1_2BAC = .text:0x00002BA4; // type:function size:0x10 +fn_1_2BBC = .text:0x00002BB4; // type:function size:0x5D8 +fn_1_3194 = .text:0x0000318C; // type:function size:0xCC +fn_1_3260 = .text:0x00003258; // type:function size:0x1B0 +fn_1_3410 = .text:0x00003408; // type:function size:0x284 +fn_1_3694 = .text:0x0000368C; // type:function size:0x20 +fn_1_36B4 = .text:0x000036AC; // type:function size:0x120 +fn_1_37D4 = .text:0x000037CC; // type:function size:0x14 +fn_1_37E8 = .text:0x000037E0; // type:function size:0x1A8 +fn_1_3990 = .text:0x00003988; // type:function size:0x34 +fn_1_39C4 = .text:0x000039BC; // type:function size:0x20 +fn_1_39E4 = .text:0x000039DC; // type:function size:0x16C +fn_1_3B50 = .text:0x00003B48; // type:function size:0x14 +fn_1_3B64 = .text:0x00003B5C; // type:function size:0x154 +fn_1_3CB8 = .text:0x00003CB0; // type:function size:0x88 +fn_1_3D40 = .text:0x00003D38; // type:function size:0x204 +fn_1_3F44 = .text:0x00003F3C; // type:function size:0x5F4 +fn_1_4538 = .text:0x00004530; // type:function size:0x188 +fn_1_46C0 = .text:0x000046B8; // type:function size:0x268 +fn_1_4928 = .text:0x00004920; // type:function size:0x10 +fn_1_4938 = .text:0x00004930; // type:function size:0x1C0 +fn_1_4AF8 = .text:0x00004AF0; // type:function size:0xB4 +fn_1_4BAC = .text:0x00004BA4; // type:function size:0x94 +fn_1_4C40 = .text:0x00004C38; // type:function size:0x1C0 +fn_1_4E00 = .text:0x00004DF8; // type:function size:0xE0 +fn_1_4EE0 = .text:0x00004ED8; // type:function size:0x268 +fn_1_5148 = .text:0x00005140; // type:function size:0x94 +fn_1_51DC = .text:0x000051D4; // type:function size:0x94 +fn_1_5270 = .text:0x00005268; // type:function size:0x94 +fn_1_5304 = .text:0x000052FC; // type:function size:0x28 +fn_1_532C = .text:0x00005324; // type:function size:0x32C +fn_1_5658 = .text:0x00005650; // type:function size:0x32C +fn_1_5984 = .text:0x0000597C; // type:function size:0x154 +fn_1_5AD8 = .text:0x00005AD0; // type:function size:0x4E4 +fn_1_5FBC = .text:0x00005FB4; // type:function size:0x150 +fn_1_610C = .text:0x00006104; // type:function size:0x28 +fn_1_6134 = .text:0x0000612C; // type:function size:0x64 +fn_1_6198 = .text:0x00006190; // type:function size:0x68 +fn_1_6200 = .text:0x000061F8; // type:function size:0x380 +fn_1_6580 = .text:0x00006578; // type:function size:0x60 +fn_1_65E0 = .text:0x000065D8; // type:function size:0xB18 +fn_1_70F8 = .text:0x000070F0; // type:function size:0x3C +fn_1_7134 = .text:0x0000712C; // type:function size:0x198 +fn_1_72CC = .text:0x000072C4; // type:function size:0x1E4 +fn_1_74B0 = .text:0x000074A8; // type:function size:0x1C8 +fn_1_7678 = .text:0x00007670; // type:function size:0x368 +fn_1_79E0 = .text:0x000079D8; // type:function size:0x34 +fn_1_7A14 = .text:0x00007A0C; // type:function size:0x8CC +fn_1_82E0 = .text:0x000082D8; // type:function size:0x28 +fn_1_8308 = .text:0x00008300; // type:function size:0x1BC +fn_1_84C4 = .text:0x000084BC; // type:function size:0x1C0 +fn_1_8684 = .text:0x0000867C; // type:function size:0xB0 +fn_1_8734 = .text:0x0000872C; // type:function size:0xF0 +fn_1_8824 = .text:0x0000881C; // type:function size:0xB0 +fn_1_88D4 = .text:0x000088CC; // type:function size:0xB0 +fn_1_8984 = .text:0x0000897C; // type:function size:0xB0 +fn_1_8A34 = .text:0x00008A2C; // type:function size:0xF0 +fn_1_8B24 = .text:0x00008B1C; // type:function size:0xB0 +fn_1_8BD4 = .text:0x00008BCC; // type:function size:0xB0 +fn_1_8C84 = .text:0x00008C7C; // type:function size:0x120 +fn_1_8DA4 = .text:0x00008D9C; // type:function size:0x57C +fn_1_9320 = .text:0x00009318; // type:function size:0x3B8 +fn_1_96D8 = .text:0x000096D0; // type:function size:0x454 +fn_1_9B2C = .text:0x00009B24; // type:function size:0x474 +fn_1_9FA0 = .text:0x00009F98; // type:function size:0x4A0 +fn_1_A440 = .text:0x0000A438; // type:function size:0x420 +fn_1_A860 = .text:0x0000A858; // type:function size:0x4 +fn_1_A864 = .text:0x0000A85C; // type:function size:0x184 +fn_1_A9E8 = .text:0x0000A9E0; // type:function size:0x3C +fn_1_AA24 = .text:0x0000AA1C; // type:function size:0x5C +fn_1_AA80 = .text:0x0000AA78; // type:function size:0x3C +fn_1_AABC = .text:0x0000AAB4; // type:function size:0x5C +fn_1_AB18 = .text:0x0000AB10; // type:function size:0x50 +fn_1_AB68 = .text:0x0000AB60; // type:function size:0x48 +fn_1_ABB0 = .text:0x0000ABA8; // type:function size:0x3C +fn_1_ABEC = .text:0x0000ABE4; // type:function size:0x84 +fn_1_AC70 = .text:0x0000AC68; // type:function size:0x5C +fn_1_ACCC = .text:0x0000ACC4; // type:function size:0x5C +fn_1_AD28 = .text:0x0000AD20; // type:function size:0x70 +fn_1_AD98 = .text:0x0000AD90; // type:function size:0x48 +fn_1_ADE0 = .text:0x0000ADD8; // type:function size:0x3C +fn_1_AE1C = .text:0x0000AE14; // type:function size:0x5C +fn_1_AE78 = .text:0x0000AE70; // type:function size:0xD4 +fn_1_AF4C = .text:0x0000AF44; // type:function size:0x248 +fn_1_B194 = .text:0x0000B18C; // type:function size:0x30 +fn_1_B1C4 = .text:0x0000B1BC; // type:function size:0x8C +fn_1_B250 = .text:0x0000B248; // type:function size:0x20 +fn_1_B270 = .text:0x0000B268; // type:function size:0x180 +fn_1_B3F0 = .text:0x0000B3E8; // type:function size:0x104 +fn_1_B4F4 = .text:0x0000B4EC; // type:function size:0x2EC +fn_1_B7E0 = .text:0x0000B7D8; // type:function size:0xF0 +fn_1_B8D0 = .text:0x0000B8C8; // type:function size:0x348 +fn_1_BC18 = .text:0x0000BC10; // type:function size:0xB0 +fn_1_BCC8 = .text:0x0000BCC0; // type:function size:0xF0 +fn_1_BDB8 = .text:0x0000BDB0; // type:function size:0xC8 +fn_1_BE80 = .text:0x0000BE78; // type:function size:0x3C8 +fn_1_C248 = .text:0x0000C240; // type:function size:0x3C8 +fn_1_C610 = .text:0x0000C608; // type:function size:0x3B4 +fn_1_C9C4 = .text:0x0000C9BC; // type:function size:0x35C +fn_1_CD20 = .text:0x0000CD18; // type:function size:0x31C +fn_1_D03C = .text:0x0000D034; // type:function size:0x384 +fn_1_D3C0 = .text:0x0000D3B8; // type:function size:0x394 +fn_1_D754 = .text:0x0000D74C; // type:function size:0x1DC +fn_1_D930 = .text:0x0000D928; // type:function size:0x3BC +fn_1_DCEC = .text:0x0000DCE4; // type:function size:0x1D8 +fn_1_DEC4 = .text:0x0000DEBC; // type:function size:0x3E4 +fn_1_E2A8 = .text:0x0000E2A0; // type:function size:0x2F0 +fn_1_E598 = .text:0x0000E590; // type:function size:0x9C +fn_1_E634 = .text:0x0000E62C; // type:function size:0x310 +fn_1_E944 = .text:0x0000E93C; // type:function size:0x5C +fn_1_E9A0 = .text:0x0000E998; // type:function size:0x104 +fn_1_EAA4 = .text:0x0000EA9C; // type:function size:0x94 +fn_1_EB38 = .text:0x0000EB30; // type:function size:0xD8 +fn_1_EC10 = .text:0x0000EC08; // type:function size:0x1C4 +fn_1_EDD4 = .text:0x0000EDCC; // type:function size:0xCC +fn_1_EEA0 = .text:0x0000EE98; // type:function size:0x12C +fn_1_EFCC = .text:0x0000EFC4; // type:function size:0xEC +fn_1_F0B8 = .text:0x0000F0B0; // type:function size:0x40 +fn_1_F0F8 = .text:0x0000F0F0; // type:function size:0x4C +fn_1_F144 = .text:0x0000F13C; // type:function size:0x48 +fn_1_F18C = .text:0x0000F184; // type:function size:0x108 +fn_1_F294 = .text:0x0000F28C; // type:function size:0x144 +fn_1_F3D8 = .text:0x0000F3D0; // type:function size:0xBC +fn_1_F494 = .text:0x0000F48C; // type:function size:0x40 +fn_1_F4D4 = .text:0x0000F4CC; // type:function size:0x30 +fn_1_F504 = .text:0x0000F4FC; // type:function size:0x8C +fn_1_F590 = .text:0x0000F588; // type:function size:0xB0 +fn_1_F640 = .text:0x0000F638; // type:function size:0xAC +fn_1_F6EC = .text:0x0000F6E4; // type:function size:0x30 +fn_1_F71C = .text:0x0000F714; // type:function size:0x8C +fn_1_F7A8 = .text:0x0000F7A0; // type:function size:0xF4 +fn_1_F89C = .text:0x0000F894; // type:function size:0x10 +fn_1_F8AC = .text:0x0000F8A4; // type:function size:0xB90 +fn_1_1043C = .text:0x00010434; // type:function size:0x468 +fn_1_108A4 = .text:0x0001089C; // type:function size:0x1EC _prolog = .text:0x00010A88; // type:function size:0x54 scope:global _epilog = .text:0x00010ADC; // type:function size:0x4C scope:global -fn_1_10B28 = .text:0x00010B28; // type:function size:0x40C -fn_1_10F34 = .text:0x00010F34; // type:function size:0x40C -fn_1_11340 = .text:0x00011340; // type:function size:0x28 -fn_1_11368 = .text:0x00011368; // type:function size:0x40 -fn_1_113A8 = .text:0x000113A8; // type:function size:0xC8 -fn_1_11470 = .text:0x00011470; // type:function size:0xC8 -fn_1_11538 = .text:0x00011538; // type:function size:0xD8 -fn_1_11610 = .text:0x00011610; // type:function size:0x50 -fn_1_11660 = .text:0x00011660; // type:function size:0x5C -fn_1_116BC = .text:0x000116BC; // type:function size:0x88 -fn_1_11744 = .text:0x00011744; // type:function size:0x74 -fn_1_117B8 = .text:0x000117B8; // type:function size:0x94 -fn_1_1184C = .text:0x0001184C; // type:function size:0x3C -fn_1_11888 = .text:0x00011888; // type:function size:0x110 -fn_1_11998 = .text:0x00011998; // type:function size:0x178 -fn_1_11B10 = .text:0x00011B10; // type:function size:0x1C8 -fn_1_11CD8 = .text:0x00011CD8; // type:function size:0x7B4 -fn_1_1248C = .text:0x0001248C; // type:function size:0x4C4 -fn_1_12950 = .text:0x00012950; // type:function size:0x60 -fn_1_129B0 = .text:0x000129B0; // type:function size:0x64 -fn_1_12A14 = .text:0x00012A14; // type:function size:0x64 -fn_1_12A78 = .text:0x00012A78; // type:function size:0x3C -fn_1_12AB4 = .text:0x00012AB4; // type:function size:0x44 -fn_1_12AF8 = .text:0x00012AF8; // type:function size:0x314 -fn_1_12E0C = .text:0x00012E0C; // type:function size:0x314 -fn_1_13120 = .text:0x00013120; // type:function size:0x27C -fn_1_1339C = .text:0x0001339C; // type:function size:0x2B4 -fn_1_13650 = .text:0x00013650; // type:function size:0x530 -fn_1_13B80 = .text:0x00013B80; // type:function size:0x454 -fn_1_13FD4 = .text:0x00013FD4; // type:function size:0x48C -fn_1_14460 = .text:0x00014460; // type:function size:0x71C -fn_1_14B7C = .text:0x00014B7C; // type:function size:0x4C4 -fn_1_15040 = .text:0x00015040; // type:function size:0x4FC -fn_1_1553C = .text:0x0001553C; // type:function size:0x78C -fn_1_15CC8 = .text:0x00015CC8; // type:function size:0x6C -fn_1_15D34 = .text:0x00015D34; // type:function size:0x68 -fn_1_15D9C = .text:0x00015D9C; // type:function size:0x10 -fn_1_15DAC = .text:0x00015DAC; // type:function size:0xC -fn_1_15DB8 = .text:0x00015DB8; // type:function size:0x8 -fn_1_15DC0 = .text:0x00015DC0; // type:function size:0x48 -fn_1_15E08 = .text:0x00015E08; // type:function size:0x344 -fn_1_1614C = .text:0x0001614C; // type:function size:0x190 -fn_1_162DC = .text:0x000162DC; // type:function size:0x64 -fn_1_16340 = .text:0x00016340; // type:function size:0x4 -fn_1_16344 = .text:0x00016344; // type:function size:0x164 -fn_1_164A8 = .text:0x000164A8; // type:function size:0x15C -fn_1_16604 = .text:0x00016604; // type:function size:0x190 +fn_1_10B30 = .text:0x00010B28; // type:function size:0x40C +ObjectSetup = .text:0x00010F34; // type:function size:0x40C +fn_1_11348 = .text:0x00011340; // type:function size:0x28 +fn_1_11370 = .text:0x00011368; // type:function size:0x40 +fn_1_113B0 = .text:0x000113A8; // type:function size:0xC8 +fn_1_11478 = .text:0x00011470; // type:function size:0xC8 +fn_1_11540 = .text:0x00011538; // type:function size:0xD8 +fn_1_11618 = .text:0x00011610; // type:function size:0x50 +fn_1_11668 = .text:0x00011660; // type:function size:0x5C +fn_1_116C4 = .text:0x000116BC; // type:function size:0x88 +fn_1_1174C = .text:0x00011744; // type:function size:0x74 +fn_1_117C0 = .text:0x000117B8; // type:function size:0x94 +fn_1_11854 = .text:0x0001184C; // type:function size:0x3C +fn_1_11890 = .text:0x00011888; // type:function size:0x110 +fn_1_119A0 = .text:0x00011998; // type:function size:0x178 +fn_1_11B18 = .text:0x00011B10; // type:function size:0x1C8 +fn_1_11CE0 = .text:0x00011CD8; // type:function size:0x7B4 +fn_1_12494 = .text:0x0001248C; // type:function size:0x4C4 +fn_1_12958 = .text:0x00012950; // type:function size:0x60 +fn_1_129B8 = .text:0x000129B0; // type:function size:0x64 +fn_1_12A1C = .text:0x00012A14; // type:function size:0x64 +fn_1_12A80 = .text:0x00012A78; // type:function size:0x3C +fn_1_12ABC = .text:0x00012AB4; // type:function size:0x44 +fn_1_12B00 = .text:0x00012AF8; // type:function size:0x314 +fn_1_12E14 = .text:0x00012E0C; // type:function size:0x314 +fn_1_13128 = .text:0x00013120; // type:function size:0x27C +fn_1_133A4 = .text:0x0001339C; // type:function size:0x2B4 +fn_1_13658 = .text:0x00013650; // type:function size:0x530 +fn_1_13B88 = .text:0x00013B80; // type:function size:0x454 +fn_1_13FDC = .text:0x00013FD4; // type:function size:0x48C +fn_1_14468 = .text:0x00014460; // type:function size:0x71C +fn_1_14B84 = .text:0x00014B7C; // type:function size:0x4C4 +fn_1_15048 = .text:0x00015040; // type:function size:0x4FC +fn_1_15544 = .text:0x0001553C; // type:function size:0x78C +fn_1_15CD0 = .text:0x00015CC8; // type:function size:0x6C +fn_1_15D3C = .text:0x00015D34; // type:function size:0x68 +fn_1_15DA4 = .text:0x00015D9C; // type:function size:0x10 +fn_1_15DB4 = .text:0x00015DAC; // type:function size:0xC +fn_1_15DC0 = .text:0x00015DB8; // type:function size:0x8 +fn_1_15DC8 = .text:0x00015DC0; // type:function size:0x48 +fn_1_15E10 = .text:0x00015E08; // type:function size:0x344 +fn_1_16154 = .text:0x0001614C; // type:function size:0x190 +fn_1_162E4 = .text:0x000162DC; // type:function size:0x64 +fn_1_16348 = .text:0x00016340; // type:function size:0x4 +fn_1_1634C = .text:0x00016344; // type:function size:0x164 +fn_1_164B0 = .text:0x000164A8; // type:function size:0x15C +fn_1_1660C = .text:0x00016604; // type:function size:0x190 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x48 -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:4byte -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x78 -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x78 -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC8 -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x78 -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x14 data:4byte -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x30 data:4byte -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x30 data:4byte -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:4byte -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 data:4byte -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:4byte -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:4byte -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x20 data:4byte -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:4byte -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x20 data:4byte -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:4byte -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x30 data:4byte -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x10 data:4byte -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x8 data:4byte -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0xC data:4byte -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:4byte -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:4byte -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x8 data:4byte -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:4byte -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0xC data:4byte -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x8 data:4byte -lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x8 data:4byte -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x30 data:4byte -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x18 data:4byte -lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 data:float -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 data:double -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float -lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float -lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x48 scope:local +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x78 scope:local +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x78 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC8 scope:local +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x78 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x30 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x30 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x30 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x30 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x18 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 scope:local data:float +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 scope:local data:double +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 scope:local data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 scope:local data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 scope:local data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0xA0 lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x4 data:4byte lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x4 data:4byte lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x4 data:4byte -lbl_1_data_AC = .data:0x000000AC; // type:object size:0x1B data:string -lbl_1_data_C7 = .data:0x000000C7; // type:object size:0x22 data:string -lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x1A data:string -lbl_1_data_103 = .data:0x00000103; // type:object size:0x1A data:string -lbl_1_data_11D = .data:0x0000011D; // type:object size:0xF +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x1B scope:local data:string +lbl_1_data_C7 = .data:0x000000C7; // type:object size:0x22 scope:local data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x1A scope:local data:string +lbl_1_data_103 = .data:0x00000103; // type:object size:0x1A scope:local data:string +lbl_1_data_11D = .data:0x0000011D; // type:object size:0xE scope:local data:string lbl_1_data_12C = .data:0x0000012C; // type:object size:0x4 data:4byte -lbl_1_data_130 = .data:0x00000130; // type:object size:0x16 data:string -lbl_1_data_146 = .data:0x00000146; // type:object size:0x13 data:string -lbl_1_data_159 = .data:0x00000159; // type:object size:0xE data:string -lbl_1_data_167 = .data:0x00000167; // type:object size:0xE data:string -lbl_1_data_175 = .data:0x00000175; // type:object size:0x13 +lbl_1_data_130 = .data:0x00000130; // type:object size:0x16 scope:local data:string +lbl_1_data_146 = .data:0x00000146; // type:object size:0x13 scope:local data:string +lbl_1_data_159 = .data:0x00000159; // type:object size:0xE scope:local data:string +lbl_1_data_167 = .data:0x00000167; // type:object size:0xE scope:local data:string +lbl_1_data_175 = .data:0x00000175; // type:object size:0x12 scope:local data:string lbl_1_data_188 = .data:0x00000188; // type:object size:0x4 data:float -lbl_1_data_18C = .data:0x0000018C; // type:object size:0x14 data:string +lbl_1_data_18C = .data:0x0000018C; // type:object size:0x14 scope:local data:string jumptable_1_data_1A0 = .data:0x000001A0; // type:object size:0x20 scope:local -lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x14 +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x12 scope:local data:string jumptable_1_data_1D4 = .data:0x000001D4; // type:object size:0x30 scope:local lbl_1_data_204 = .data:0x00000204; // type:object size:0x78 lbl_1_data_27C = .data:0x0000027C; // type:object size:0x90 lbl_1_data_30C = .data:0x0000030C; // type:object size:0x18 jumptable_1_data_324 = .data:0x00000324; // type:object size:0x2C scope:local -lbl_1_data_350 = .data:0x00000350; // type:object size:0x10 data:string -lbl_1_data_360 = .data:0x00000360; // type:object size:0x10 data:string -lbl_1_data_370 = .data:0x00000370; // type:object size:0x10 data:string -lbl_1_data_380 = .data:0x00000380; // type:object size:0x10 data:string -lbl_1_data_390 = .data:0x00000390; // type:object size:0x10 data:string -lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x10 data:string -lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x10 data:string -lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x10 data:string +lbl_1_data_350 = .data:0x00000350; // type:object size:0x10 scope:local data:string +lbl_1_data_360 = .data:0x00000360; // type:object size:0x10 scope:local data:string +lbl_1_data_370 = .data:0x00000370; // type:object size:0x10 scope:local data:string +lbl_1_data_380 = .data:0x00000380; // type:object size:0x10 scope:local data:string +lbl_1_data_390 = .data:0x00000390; // type:object size:0x10 scope:local data:string +lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x10 scope:local data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x10 scope:local data:string +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x10 scope:local data:string lbl_1_data_3D0 = .data:0x000003D0; // type:object size:0x20 lbl_1_data_3F0 = .data:0x000003F0; // type:object size:0x40 lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 614869f4..61aba1d4 100644 --- a/configure.py +++ b/configure.py @@ -1121,8 +1121,8 @@ config.libs = [ Rel( "m437Dll", # Balloon of Doom objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m437Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m437Dll/sequence.c"), + Object(Matching, "REL/m437Dll/main.c"), + Object(Matching, "REL/m437Dll/sequence.c"), }, ), Rel( diff --git a/src/REL/m402Dll/main.c b/src/REL/m402Dll/main.c index eff45b37..53a17274 100755 --- a/src/REL/m402Dll/main.c +++ b/src/REL/m402Dll/main.c @@ -22,6 +22,7 @@ #include "dolphin.h" #include "ext_math.h" +#include "version.h" #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) @@ -1671,7 +1672,7 @@ static void fn_1_8218(omObjData *arg0) } break; case 1006: - MGSeqParamSet(lbl_1_bss_1A8, 1, (lbl_1_bss_1B0 + 59) / 60); + MGSeqParamSet(lbl_1_bss_1A8, 1, (lbl_1_bss_1B0 + REFRESH_RATE - 1) / REFRESH_RATE); lbl_1_bss_1B0--; if (lbl_1_bss_1B0 < 0 || lbl_1_bss_26 >= 0) { lbl_1_bss_1B0 = 1800; diff --git a/src/REL/m426Dll/main.c b/src/REL/m426Dll/main.c index 6f4d3a64..ae15dbe3 100644 --- a/src/REL/m426Dll/main.c +++ b/src/REL/m426Dll/main.c @@ -11,6 +11,7 @@ #include "game/sprite.h" #include "game/wipe.h" #include "string.h" +#include "version.h" typedef struct UnkM426Struct { /* 0x00 */ s32 unk_00; @@ -457,7 +458,7 @@ void fn_1_330(omObjData *object) } break; case 5: - var_r25 = (lbl_1_bss_58 + 59) / 60; + var_r25 = (lbl_1_bss_58 + REFRESH_RATE - 1) / REFRESH_RATE; if (var_r25 < 0) { var_r25 = 0; } diff --git a/src/REL/m437Dll/main.c b/src/REL/m437Dll/main.c index 6b57e11a..5ca6de46 100755 --- a/src/REL/m437Dll/main.c +++ b/src/REL/m437Dll/main.c @@ -18,6 +18,7 @@ #include "dolphin.h" #include "math.h" #include "string.h" +#include "version.h" typedef struct { /* 0x000 */ omObjData *unk00; @@ -524,7 +525,7 @@ void fn_1_1184(s32 arg0) { if (lbl_1_bss_8 == 0) { lbl_1_bss_8 = 1; - lbl_1_bss_4 = arg0 * 60; + lbl_1_bss_4 = arg0 * REFRESH_RATE; } } @@ -553,14 +554,14 @@ void fn_1_1218(omObjData *arg0) switch (lbl_1_bss_8) { case 1: if (lbl_1_data_12C == -1) { - lbl_1_data_12C = MGSeqCreate(1, lbl_1_bss_4 / 60, -1, -1); + lbl_1_data_12C = MGSeqCreate(1, lbl_1_bss_4 / REFRESH_RATE, -1, -1); } lbl_1_bss_8 = 2; break; case 2: lbl_1_bss_4--; if (lbl_1_data_12C != -1) { - MGSeqParamSet(lbl_1_data_12C, 1, (lbl_1_bss_4 + 59) / 60); + MGSeqParamSet(lbl_1_data_12C, 1, (lbl_1_bss_4 + REFRESH_RATE - 1) / REFRESH_RATE); } if (lbl_1_bss_4 <= 0) { lbl_1_bss_4 = 30; @@ -1019,7 +1020,7 @@ void fn_1_2BBC(omObjData *arg0) fn_1_230(1, 10, 4.0f); } if (temp_r30->unk04 == 0) { - if (temp_r30->unk14++ >= 300) { + if (temp_r30->unk14++ >= 5 * REFRESH_RATE) { temp_r30->unk14 = 0; if (rand8() % 2 != 0) { fn_1_2BAC(1); @@ -2272,9 +2273,9 @@ void fn_1_9320(void) HuAudFXPlay(0x6D2); fn_1_4BAC(2, 10, 0, 1); fn_1_2A10(var_r31, MAKE_MESSID(29, 4)); - fn_1_280C(var_r31, 60); + fn_1_280C(var_r31, REFRESH_RATE); fn_1_2BAC(3); - fn_1_280C(var_r31, 60); + fn_1_280C(var_r31, REFRESH_RATE); fn_1_4BAC(0, 30, 1, 1); fn_1_27A4(var_r31); lbl_1_bss_C = 1; @@ -2726,9 +2727,9 @@ void fn_1_BE80(void) HuAudFXPlay(0x6D2); fn_1_4928(1); fn_1_2A10(var_r30, sp1C[temp_r27]); - fn_1_280C(var_r30, 60); + fn_1_280C(var_r30, REFRESH_RATE); lbl_1_bss_C = 1; - fn_1_280C(var_r30, 60); + fn_1_280C(var_r30, REFRESH_RATE); fn_1_27A4(var_r30); HuPrcEnd(); } @@ -2747,9 +2748,9 @@ void fn_1_C248(void) HuAudFXPlay(0x6D2); fn_1_4928(1); fn_1_2A10(var_r31, sp1C[temp_r27]); - fn_1_280C(var_r31, 60); + fn_1_280C(var_r31, REFRESH_RATE); lbl_1_bss_C = 1; - fn_1_280C(var_r31, 60); + fn_1_280C(var_r31, REFRESH_RATE); fn_1_27A4(var_r31); HuPrcEnd(); } @@ -2814,7 +2815,7 @@ void fn_1_D03C(void) var_r31 = fn_1_20F8((580.0f - sp10[0]) / 2, 100.0f, sp10[0], sp10[1], 2); HuAudFXPlay(0x6D6); fn_1_2A10(var_r31, sp18[temp_r28]); - fn_1_280C(var_r31, 120); + fn_1_280C(var_r31, 2 * REFRESH_RATE); fn_1_27A4(var_r31); HuPrcEnd(); } @@ -2830,7 +2831,7 @@ void fn_1_D3C0(void) HuAudFXPlay(0x6D6); fn_1_4BAC(1, 10, 0, 1); fn_1_2A10(var_r31, MAKE_MESSID(29, 92)); - fn_1_280C(var_r31, 120); + fn_1_280C(var_r31, 2 * REFRESH_RATE); fn_1_4BAC(0, 30, 1, 1); fn_1_27A4(var_r31); lbl_1_bss_C = 1; diff --git a/src/REL/m441Dll/main.c b/src/REL/m441Dll/main.c index fbd7fe34..38896429 100644 --- a/src/REL/m441Dll/main.c +++ b/src/REL/m441Dll/main.c @@ -21,6 +21,7 @@ #include "game/sprite.h" #include "ext_math.h" +#include "version.h" #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) @@ -1876,7 +1877,7 @@ void fn_1_8D58(omObjData *object) break; case 1004: - MGSeqParamSet(lbl_1_bss_19C, 1, (lbl_1_bss_1A4 + 59) / 60); + MGSeqParamSet(lbl_1_bss_19C, 1, (lbl_1_bss_1A4 + REFRESH_RATE - 1) / REFRESH_RATE); lbl_1_bss_1A4--; if (lbl_1_bss_1A4 < 0) { object->work[0] = 1005; diff --git a/src/REL/m448Dll/main.c b/src/REL/m448Dll/main.c index 8309a194..fce3e974 100755 --- a/src/REL/m448Dll/main.c +++ b/src/REL/m448Dll/main.c @@ -20,6 +20,7 @@ #include "dolphin.h" #include "ext_math.h" +#include "version.h" typedef struct { /* 0x00 */ s32 unk00; @@ -1431,7 +1432,7 @@ void fn_1_7148(omObjData *arg0) case 1005: lbl_1_bss_84++; if (lbl_1_data_19A != -1) { - MGSeqParamSet(lbl_1_data_19A, 1, ((lbl_1_bss_0 < 0 ? 0 : lbl_1_bss_0) + 59) / 60); + MGSeqParamSet(lbl_1_data_19A, 1, ((lbl_1_bss_0 < 0 ? 0 : lbl_1_bss_0) + REFRESH_RATE - 1) / REFRESH_RATE); lbl_1_bss_0--; if (lbl_1_bss_0 <= -30) { MGSeqParamSet(lbl_1_data_19A, 2, -1); From 92a755ef97601f1138a5758e318e38a39016ec3d Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 17 Nov 2024 17:57:27 +0100 Subject: [PATCH 148/311] Port m439Dll --- config/GMPP01_00/rels/m439Dll/splits.txt | 9 + config/GMPP01_00/rels/m439Dll/symbols.txt | 367 +++++++++++----------- configure.py | 2 +- src/REL/m439Dll/main.c | 97 +++--- 4 files changed, 234 insertions(+), 241 deletions(-) diff --git a/config/GMPP01_00/rels/m439Dll/splits.txt b/config/GMPP01_00/rels/m439Dll/splits.txt index 531cd645..55b19f1f 100644 --- a/config/GMPP01_00/rels/m439Dll/splits.txt +++ b/config/GMPP01_00/rels/m439Dll/splits.txt @@ -5,3 +5,12 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m439Dll/main.c: + .text start:0x000000A0 end:0x0000818C + .rodata start:0x00000000 end:0x00000200 + .data start:0x00000000 end:0x000078F0 + .bss start:0x00000000 end:0x00000174 diff --git a/config/GMPP01_00/rels/m439Dll/symbols.txt b/config/GMPP01_00/rels/m439Dll/symbols.txt index c7cb102e..a4c18c94 100644 --- a/config/GMPP01_00/rels/m439Dll/symbols.txt +++ b/config/GMPP01_00/rels/m439Dll/symbols.txt @@ -1,6 +1,6 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x2C4 +ObjectSetup = .text:0x000000A0; // type:function size:0x2C4 fn_1_364 = .text:0x00000364; // type:function size:0x10 fn_1_374 = .text:0x00000374; // type:function size:0x10 fn_1_384 = .text:0x00000384; // type:function size:0x84 @@ -50,89 +50,92 @@ fn_1_7578 = .text:0x00007578; // type:function size:0x26C fn_1_77E4 = .text:0x000077E4; // type:function size:0x9A8 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0xC data:2byte -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x50 -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x1 data:byte -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x50 scope:local +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x18 lbl_1_data_18 = .data:0x00000018; // type:object size:0x18 lbl_1_data_30 = .data:0x00000030; // type:object size:0x8 @@ -170,129 +173,130 @@ lbl_1_data_EA8 = .data:0x00000EA8; // type:object size:0x9C lbl_1_data_F44 = .data:0x00000F44; // type:object size:0x9C lbl_1_data_FE0 = .data:0x00000FE0; // type:object size:0x34 lbl_1_data_1014 = .data:0x00001014; // type:object size:0x60 -lbl_1_data_1074 = .data:0x00001074; // type:object size:0x18 -lbl_1_data_108C = .data:0x0000108C; // type:object size:0x30 -lbl_1_data_10BC = .data:0x000010BC; // type:object size:0x204 -lbl_1_data_12C0 = .data:0x000012C0; // type:object size:0x204 -lbl_1_data_14C4 = .data:0x000014C4; // type:object size:0x204 +lbl_1_data_1074 = .data:0x00001074; // type:object size:0x18 data:2byte +lbl_1_data_108C = .data:0x0000108C; // type:object size:0x30 data:float +lbl_1_data_10BC = .data:0x000010BC; // type:object size:0x204 data:float +lbl_1_data_12C0 = .data:0x000012C0; // type:object size:0x204 data:float +lbl_1_data_14C4 = .data:0x000014C4; // type:object size:0x204 data:float lbl_1_data_16C8 = .data:0x000016C8; // type:object size:0xC -lbl_1_data_16D4 = .data:0x000016D4; // type:object size:0x4 -lbl_1_data_16D8 = .data:0x000016D8; // type:object size:0x1D4 -lbl_1_data_18AC = .data:0x000018AC; // type:object size:0x1D4 -lbl_1_data_1A80 = .data:0x00001A80; // type:object size:0x1D4 -lbl_1_data_1C54 = .data:0x00001C54; // type:object size:0x120 -lbl_1_data_1D74 = .data:0x00001D74; // type:object size:0x120 -lbl_1_data_1E94 = .data:0x00001E94; // type:object size:0x120 -lbl_1_data_1FB4 = .data:0x00001FB4; // type:object size:0xF0 -lbl_1_data_20A4 = .data:0x000020A4; // type:object size:0xF0 -lbl_1_data_2194 = .data:0x00002194; // type:object size:0xF0 +lbl_1_data_16D4 = .data:0x000016D4; // type:object size:0x4 data:4byte +lbl_1_data_16D8 = .data:0x000016D8; // type:object size:0x1D4 data:float +lbl_1_data_18AC = .data:0x000018AC; // type:object size:0x1D4 data:float +lbl_1_data_1A80 = .data:0x00001A80; // type:object size:0x1D4 data:float +lbl_1_data_1C54 = .data:0x00001C54; // type:object size:0x120 data:float +lbl_1_data_1D74 = .data:0x00001D74; // type:object size:0x120 data:float +lbl_1_data_1E94 = .data:0x00001E94; // type:object size:0x120 data:float +lbl_1_data_1FB4 = .data:0x00001FB4; // type:object size:0xF0 data:float +lbl_1_data_20A4 = .data:0x000020A4; // type:object size:0xF0 data:float +lbl_1_data_2194 = .data:0x00002194; // type:object size:0xF0 data:float lbl_1_data_2284 = .data:0x00002284; // type:object size:0x24 -lbl_1_data_22A8 = .data:0x000022A8; // type:object size:0xC -lbl_1_data_22B4 = .data:0x000022B4; // type:object size:0x174 -lbl_1_data_2428 = .data:0x00002428; // type:object size:0x174 -lbl_1_data_259C = .data:0x0000259C; // type:object size:0x174 -lbl_1_data_2710 = .data:0x00002710; // type:object size:0x144 -lbl_1_data_2854 = .data:0x00002854; // type:object size:0x144 -lbl_1_data_2998 = .data:0x00002998; // type:object size:0x144 -lbl_1_data_2ADC = .data:0x00002ADC; // type:object size:0x1A4 -lbl_1_data_2C80 = .data:0x00002C80; // type:object size:0x1A4 -lbl_1_data_2E24 = .data:0x00002E24; // type:object size:0x1A4 +lbl_1_data_22A8 = .data:0x000022A8; // type:object size:0xC data:4byte +lbl_1_data_22B4 = .data:0x000022B4; // type:object size:0x174 data:float +lbl_1_data_2428 = .data:0x00002428; // type:object size:0x174 data:float +lbl_1_data_259C = .data:0x0000259C; // type:object size:0x174 data:float +lbl_1_data_2710 = .data:0x00002710; // type:object size:0x144 data:float +lbl_1_data_2854 = .data:0x00002854; // type:object size:0x144 data:float +lbl_1_data_2998 = .data:0x00002998; // type:object size:0x144 data:float +lbl_1_data_2ADC = .data:0x00002ADC; // type:object size:0x1A4 data:float +lbl_1_data_2C80 = .data:0x00002C80; // type:object size:0x1A4 data:float +lbl_1_data_2E24 = .data:0x00002E24; // type:object size:0x1A4 data:float lbl_1_data_2FC8 = .data:0x00002FC8; // type:object size:0x24 -lbl_1_data_2FEC = .data:0x00002FEC; // type:object size:0xC -lbl_1_data_2FF8 = .data:0x00002FF8; // type:object size:0x294 -lbl_1_data_328C = .data:0x0000328C; // type:object size:0x294 -lbl_1_data_3520 = .data:0x00003520; // type:object size:0x294 +lbl_1_data_2FEC = .data:0x00002FEC; // type:object size:0xC data:4byte +lbl_1_data_2FF8 = .data:0x00002FF8; // type:object size:0x294 data:float +lbl_1_data_328C = .data:0x0000328C; // type:object size:0x294 data:float +lbl_1_data_3520 = .data:0x00003520; // type:object size:0x294 data:float lbl_1_data_37B4 = .data:0x000037B4; // type:object size:0xC -lbl_1_data_37C0 = .data:0x000037C0; // type:object size:0x4 -lbl_1_data_37C4 = .data:0x000037C4; // type:object size:0x198 -lbl_1_data_395C = .data:0x0000395C; // type:object size:0x198 -lbl_1_data_3AF4 = .data:0x00003AF4; // type:object size:0x198 -lbl_1_data_3C8C = .data:0x00003C8C; // type:object size:0x198 -lbl_1_data_3E24 = .data:0x00003E24; // type:object size:0x198 -lbl_1_data_3FBC = .data:0x00003FBC; // type:object size:0x198 +lbl_1_data_37C0 = .data:0x000037C0; // type:object size:0x4 data:4byte +lbl_1_data_37C4 = .data:0x000037C4; // type:object size:0x198 data:float +lbl_1_data_395C = .data:0x0000395C; // type:object size:0x198 data:float +lbl_1_data_3AF4 = .data:0x00003AF4; // type:object size:0x198 data:float +lbl_1_data_3C8C = .data:0x00003C8C; // type:object size:0x198 data:float +lbl_1_data_3E24 = .data:0x00003E24; // type:object size:0x198 data:float +lbl_1_data_3FBC = .data:0x00003FBC; // type:object size:0x198 data:float lbl_1_data_4154 = .data:0x00004154; // type:object size:0x18 -lbl_1_data_416C = .data:0x0000416C; // type:object size:0x8 -lbl_1_data_4174 = .data:0x00004174; // type:object size:0x210 -lbl_1_data_4384 = .data:0x00004384; // type:object size:0x210 -lbl_1_data_4594 = .data:0x00004594; // type:object size:0x210 -lbl_1_data_47A4 = .data:0x000047A4; // type:object size:0x210 -lbl_1_data_49B4 = .data:0x000049B4; // type:object size:0x210 -lbl_1_data_4BC4 = .data:0x00004BC4; // type:object size:0x210 +lbl_1_data_416C = .data:0x0000416C; // type:object size:0x8 data:4byte +lbl_1_data_4174 = .data:0x00004174; // type:object size:0x210 data:float +lbl_1_data_4384 = .data:0x00004384; // type:object size:0x210 data:float +lbl_1_data_4594 = .data:0x00004594; // type:object size:0x210 data:float +lbl_1_data_47A4 = .data:0x000047A4; // type:object size:0x210 data:float +lbl_1_data_49B4 = .data:0x000049B4; // type:object size:0x210 data:float +lbl_1_data_4BC4 = .data:0x00004BC4; // type:object size:0x210 data:float lbl_1_data_4DD4 = .data:0x00004DD4; // type:object size:0x18 -lbl_1_data_4DEC = .data:0x00004DEC; // type:object size:0x8 -lbl_1_data_4DF4 = .data:0x00004DF4; // type:object size:0x1D4 -lbl_1_data_4FC8 = .data:0x00004FC8; // type:object size:0x1D4 -lbl_1_data_519C = .data:0x0000519C; // type:object size:0x1D4 -lbl_1_data_5370 = .data:0x00005370; // type:object size:0x1D4 -lbl_1_data_5544 = .data:0x00005544; // type:object size:0x1D4 -lbl_1_data_5718 = .data:0x00005718; // type:object size:0x1D4 +lbl_1_data_4DEC = .data:0x00004DEC; // type:object size:0x8 data:4byte +lbl_1_data_4DF4 = .data:0x00004DF4; // type:object size:0x1D4 data:float +lbl_1_data_4FC8 = .data:0x00004FC8; // type:object size:0x1D4 data:float +lbl_1_data_519C = .data:0x0000519C; // type:object size:0x1D4 data:float +lbl_1_data_5370 = .data:0x00005370; // type:object size:0x1D4 data:float +lbl_1_data_5544 = .data:0x00005544; // type:object size:0x1D4 data:float +lbl_1_data_5718 = .data:0x00005718; // type:object size:0x1D4 data:float lbl_1_data_58EC = .data:0x000058EC; // type:object size:0x18 -lbl_1_data_5904 = .data:0x00005904; // type:object size:0x8 -lbl_1_data_590C = .data:0x0000590C; // type:object size:0x18C -lbl_1_data_5A98 = .data:0x00005A98; // type:object size:0x18C -lbl_1_data_5C24 = .data:0x00005C24; // type:object size:0x18C -lbl_1_data_5DB0 = .data:0x00005DB0; // type:object size:0x168 -lbl_1_data_5F18 = .data:0x00005F18; // type:object size:0x168 -lbl_1_data_6080 = .data:0x00006080; // type:object size:0x168 +lbl_1_data_5904 = .data:0x00005904; // type:object size:0x8 data:4byte +lbl_1_data_590C = .data:0x0000590C; // type:object size:0x18C data:float +lbl_1_data_5A98 = .data:0x00005A98; // type:object size:0x18C data:float +lbl_1_data_5C24 = .data:0x00005C24; // type:object size:0x18C data:float +lbl_1_data_5DB0 = .data:0x00005DB0; // type:object size:0x168 data:float +lbl_1_data_5F18 = .data:0x00005F18; // type:object size:0x168 data:float +lbl_1_data_6080 = .data:0x00006080; // type:object size:0x168 data:float lbl_1_data_61E8 = .data:0x000061E8; // type:object size:0x18 -lbl_1_data_6200 = .data:0x00006200; // type:object size:0x8 -lbl_1_data_6208 = .data:0x00006208; // type:object size:0x174 -lbl_1_data_637C = .data:0x0000637C; // type:object size:0x174 -lbl_1_data_64F0 = .data:0x000064F0; // type:object size:0x174 -lbl_1_data_6664 = .data:0x00006664; // type:object size:0x15C -lbl_1_data_67C0 = .data:0x000067C0; // type:object size:0x15C -lbl_1_data_691C = .data:0x0000691C; // type:object size:0x15C +lbl_1_data_6200 = .data:0x00006200; // type:object size:0x8 data:4byte +lbl_1_data_6208 = .data:0x00006208; // type:object size:0x174 data:float +lbl_1_data_637C = .data:0x0000637C; // type:object size:0x174 data:float +lbl_1_data_64F0 = .data:0x000064F0; // type:object size:0x174 data:float +lbl_1_data_6664 = .data:0x00006664; // type:object size:0x15C data:float +lbl_1_data_67C0 = .data:0x000067C0; // type:object size:0x15C data:float +lbl_1_data_691C = .data:0x0000691C; // type:object size:0x15C data:float lbl_1_data_6A78 = .data:0x00006A78; // type:object size:0x18 -lbl_1_data_6A90 = .data:0x00006A90; // type:object size:0x8 -lbl_1_data_6A98 = .data:0x00006A98; // type:object size:0x18C -lbl_1_data_6C24 = .data:0x00006C24; // type:object size:0x18C -lbl_1_data_6DB0 = .data:0x00006DB0; // type:object size:0x18C -lbl_1_data_6F3C = .data:0x00006F3C; // type:object size:0x174 -lbl_1_data_70B0 = .data:0x000070B0; // type:object size:0x174 -lbl_1_data_7224 = .data:0x00007224; // type:object size:0x174 +lbl_1_data_6A90 = .data:0x00006A90; // type:object size:0x8 data:4byte +lbl_1_data_6A98 = .data:0x00006A98; // type:object size:0x18C data:float +lbl_1_data_6C24 = .data:0x00006C24; // type:object size:0x18C data:float +lbl_1_data_6DB0 = .data:0x00006DB0; // type:object size:0x18C data:float +lbl_1_data_6F3C = .data:0x00006F3C; // type:object size:0x174 data:float +lbl_1_data_70B0 = .data:0x000070B0; // type:object size:0x174 data:float +lbl_1_data_7224 = .data:0x00007224; // type:object size:0x174 data:float lbl_1_data_7398 = .data:0x00007398; // type:object size:0x18 -lbl_1_data_73B0 = .data:0x000073B0; // type:object size:0x8 -lbl_1_data_73B8 = .data:0x000073B8; // type:object size:0x14 +lbl_1_data_73B0 = .data:0x000073B0; // type:object size:0x8 data:4byte +lbl_1_data_73B8 = .data:0x000073B8; // type:object size:0x14 data:4byte lbl_1_data_73CC = .data:0x000073CC; // type:object size:0x28 lbl_1_data_73F4 = .data:0x000073F4; // type:object size:0x28 lbl_1_data_741C = .data:0x0000741C; // type:object size:0x70 data:float lbl_1_data_748C = .data:0x0000748C; // type:object size:0x140 -lbl_1_data_75CC = .data:0x000075CC; // type:object size:0x14 +lbl_1_data_75CC = .data:0x000075CC; // type:object size:0x14 data:float lbl_1_data_75E0 = .data:0x000075E0; // type:object size:0x10 data:4byte lbl_1_data_75F0 = .data:0x000075F0; // type:object size:0xC data:float lbl_1_data_75FC = .data:0x000075FC; // type:object size:0xC data:float lbl_1_data_7608 = .data:0x00007608; // type:object size:0x4 -lbl_1_data_760C = .data:0x0000760C; // type:object size:0xC -lbl_1_data_7618 = .data:0x00007618; // type:object size:0xC -lbl_1_data_7624 = .data:0x00007624; // type:object size:0x24 +lbl_1_data_760C = .data:0x0000760C; // type:object size:0xC data:float +lbl_1_data_7618 = .data:0x00007618; // type:object size:0xC data:float +lbl_1_data_7624 = .data:0x00007624; // type:object size:0x23 scope:local data:string lbl_1_data_7648 = .data:0x00007648; // type:object size:0x4 data:4byte lbl_1_data_764C = .data:0x0000764C; // type:object size:0x4 data:4byte jumptable_1_data_7650 = .data:0x00007650; // type:object size:0x28 scope:local -lbl_1_data_7678 = .data:0x00007678; // type:object size:0x1C data:string +lbl_1_data_7678 = .data:0x00007678; // type:object size:0x1C scope:local data:string lbl_1_data_7694 = .data:0x00007694; // type:object size:0x1C -lbl_1_data_76B0 = .data:0x000076B0; // type:object size:0x58 -lbl_1_data_7708 = .data:0x00007708; // type:object size:0x30 -lbl_1_data_7738 = .data:0x00007738; // type:object size:0x5C +lbl_1_data_76B0 = .data:0x000076B0; // type:object size:0x58 data:float +lbl_1_data_7708 = .data:0x00007708; // type:object size:0x30 data:float +lbl_1_data_7738 = .data:0x00007738; // type:object size:0x3C data:2byte +lbl_1_data_7774 = .data:0x00007774; // type:object size:0x20 data:4byte lbl_1_data_7794 = .data:0x00007794; // type:object size:0x4 lbl_1_data_7798 = .data:0x00007798; // type:object size:0x4 data:4byte lbl_1_data_779C = .data:0x0000779C; // type:object size:0x4 data:4byte lbl_1_data_77A0 = .data:0x000077A0; // type:object size:0x28 -lbl_1_data_77C8 = .data:0x000077C8; // type:object size:0x70 -lbl_1_data_7838 = .data:0x00007838; // type:object size:0x1C -lbl_1_data_7854 = .data:0x00007854; // type:object size:0x6 data:string -lbl_1_data_785A = .data:0x0000785A; // type:object size:0x6 data:string -lbl_1_data_7860 = .data:0x00007860; // type:object size:0x8 data:string -lbl_1_data_7868 = .data:0x00007868; // type:object size:0x6 data:string -lbl_1_data_786E = .data:0x0000786E; // type:object size:0x8 data:string -lbl_1_data_7876 = .data:0x00007876; // type:object size:0x6 data:string -lbl_1_data_787C = .data:0x0000787C; // type:object size:0x6 data:string -lbl_1_data_7882 = .data:0x00007882; // type:object size:0x6 data:string -lbl_1_data_7888 = .data:0x00007888; // type:object size:0x6 data:string -lbl_1_data_788E = .data:0x0000788E; // type:object size:0x6 data:string -lbl_1_data_7894 = .data:0x00007894; // type:object size:0x6 data:string -lbl_1_data_789A = .data:0x0000789A; // type:object size:0x6 data:string +lbl_1_data_77C8 = .data:0x000077C8; // type:object size:0x70 data:float +lbl_1_data_7838 = .data:0x00007838; // type:object size:0x1C data:2byte +lbl_1_data_7854 = .data:0x00007854; // type:object size:0x6 scope:local data:string +lbl_1_data_785A = .data:0x0000785A; // type:object size:0x6 scope:local data:string +lbl_1_data_7860 = .data:0x00007860; // type:object size:0x8 scope:local data:string +lbl_1_data_7868 = .data:0x00007868; // type:object size:0x6 scope:local data:string +lbl_1_data_786E = .data:0x0000786E; // type:object size:0x8 scope:local data:string +lbl_1_data_7876 = .data:0x00007876; // type:object size:0x6 scope:local data:string +lbl_1_data_787C = .data:0x0000787C; // type:object size:0x6 scope:local data:string +lbl_1_data_7882 = .data:0x00007882; // type:object size:0x6 scope:local data:string +lbl_1_data_7888 = .data:0x00007888; // type:object size:0x6 scope:local data:string +lbl_1_data_788E = .data:0x0000788E; // type:object size:0x6 scope:local data:string +lbl_1_data_7894 = .data:0x00007894; // type:object size:0x6 scope:local data:string +lbl_1_data_789A = .data:0x0000789A; // type:object size:0x6 scope:local data:string lbl_1_data_78A0 = .data:0x000078A0; // type:object size:0x20 -lbl_1_data_78C0 = .data:0x000078C0; // type:object size:0x30 +lbl_1_data_78C0 = .data:0x000078C0; // type:object size:0x30 data:float lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x20 @@ -316,7 +320,8 @@ lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x4 data:4byte lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x4 data:4byte lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x10 data:4byte -lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x8 data:4byte +lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x4 data:4byte +lbl_1_bss_164 = .bss:0x00000164; // type:object size:0x4 data:4byte lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x4 data:4byte lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x4 data:4byte lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 61aba1d4..fea780ac 100644 --- a/configure.py +++ b/configure.py @@ -1136,7 +1136,7 @@ config.libs = [ Rel( "m439Dll", # Paths of Peril objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m439Dll/main.c"), + Object(Matching, "REL/m439Dll/main.c"), }, ), Rel( diff --git a/src/REL/m439Dll/main.c b/src/REL/m439Dll/main.c index 8e761bba..44c7927b 100644 --- a/src/REL/m439Dll/main.c +++ b/src/REL/m439Dll/main.c @@ -21,6 +21,7 @@ #include "ext_math.h" #include "REL/m439data.h" +#include "version.h" typedef struct camera_params { float zoom; @@ -28,34 +29,12 @@ typedef struct camera_params { Vec rot; } CameraViewParams; -CameraViewParams lbl_1_data_741C[] = { { - 4775, - -2800, - 0, - -7700, - 343, - 20, - 0, - }, - { - 5000, - 0, - 0, - 0, - 290, - 0, - 0, - }, - { - 2800, - 0, - 0, - -7600, - 347, - 0, - 0, - }, - { 2800, 0, 0, -7600, 290, 0, 0 } }; +CameraViewParams lbl_1_data_741C[] = { + { VERSION_NTSC ? 4775.0f : 4500.0f, -2800.0f, 0.0f, -7700.0f, 343.0f, 20.0f, 0.0f }, + { 5000.0f, 0.f, 0.0f, 0.0f, 290.0f, 0.0f, 0.0f }, + { 2800.0f, 0.f, 0.0f, -7600.0f, 347.0f, 0.0f, 0.0f }, + { 2800.0f, 0.f, 0.0f, -7600.0f, 290.0f, 0.0f, 0.0f }, +}; typedef struct struct_data_748C { s32 unk0; @@ -162,9 +141,9 @@ void fn_1_408(omObjData *object); void fn_1_384(omObjData *object) { fn_1_364(0); - lbl_1_bss_14C = 60; + lbl_1_bss_14C = REFRESH_RATE; lbl_1_bss_12E = 60; - lbl_1_bss_12C = 60; + lbl_1_bss_12C = REFRESH_RATE; WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); object->func = fn_1_408; } @@ -181,12 +160,12 @@ void fn_1_408(omObjData *object) { switch (fn_1_374()) { case 0: - if (lbl_1_bss_14C == 60) { + if (lbl_1_bss_14C == REFRESH_RATE) { HuAudFXPlay(1797); } if (--lbl_1_bss_14C == 0) { fn_1_364(1); - lbl_1_bss_14C = 120; + lbl_1_bss_14C = 2 * REFRESH_RATE; } break; @@ -227,7 +206,7 @@ void fn_1_408(omObjData *object) if (--lbl_1_bss_12C == 0) { lbl_1_bss_12E--; MGSeqParamSet(lbl_1_bss_30, 1, lbl_1_bss_12E); - lbl_1_bss_12C = 60; + lbl_1_bss_12C = REFRESH_RATE; } if (lbl_1_bss_130 >= 3 || lbl_1_bss_12E == 0) { fn_1_364(6); @@ -243,7 +222,7 @@ void fn_1_408(omObjData *object) } if (!MGSeqStatGet(lbl_1_bss_32)) { fn_1_364(7); - lbl_1_bss_14C = 60; + lbl_1_bss_14C = REFRESH_RATE; } break; @@ -257,7 +236,7 @@ void fn_1_408(omObjData *object) else { HuAudSStreamPlay(4); } - lbl_1_bss_14C = 210; + lbl_1_bss_14C = 3.5f * REFRESH_RATE; } break; @@ -823,7 +802,7 @@ void fn_1_2C84(omObjData *object) if (fn_1_374() >= 6 && !temp_r31->unk0_field2) { temp_r31->unk0_field7 = 1; temp_r31->unk12 = 2; - temp_r31->unk3E = 120; + temp_r31->unk3E = 2 * REFRESH_RATE; object->func = fn_1_3C1C; return; } @@ -852,18 +831,18 @@ void fn_1_2C84(omObjData *object) if (temp_f26 > 72) { temp_f26 = 72; } - temp_f23 = (10.0f * temp_f26) / 72.0f; + temp_f23 = ((600.0f / REFRESH_RATE) * temp_f26) / 72.0f; temp_r31->unk20.x = temp_f31 * temp_f23; temp_r31->unk20.z = temp_f30 * temp_f23; temp_r31->unk14.y = temp_f23; object->rot.y = fn_1_1024(object->rot.y, atan2d(temp_r31->unk20.x, temp_r31->unk20.z), 0.2f); - if (temp_r31->unk14.y < 7.5f) { + if (temp_r31->unk14.y < (450.0f / REFRESH_RATE)) { temp_r28 = 1; - temp_f25 = temp_r31->unk14.y / 7.5f; + temp_f25 = temp_r31->unk14.y / (450.0f / REFRESH_RATE); } else { temp_r28 = 2; - temp_f25 = temp_r31->unk14.y / 10.0f; + temp_f25 = temp_r31->unk14.y / (600.0f / REFRESH_RATE); } } else { @@ -900,7 +879,7 @@ void fn_1_2C84(omObjData *object) temp_r31->unk50.z = object->trans.z; temp_r31->unk68.y = -2000; temp_r31->unk12 = 2; - temp_r31->unk3E = 12; + temp_r31->unk3E = 0.2f * REFRESH_RATE; temp_r23 = Hu3DData[object->model[2]].unk_120; temp_r23->unk_00 = 0; VECSubtract(&temp_r31->unk5C, &object->trans, &temp_r23->unk_04); @@ -933,7 +912,7 @@ void fn_1_2C84(omObjData *object) temp_r31->unk0_field4 = 01; if (temp_r29 > 1 && temp_r29 < 6) { temp_r31->unk12++; - temp_r31->unk3E = 30; + temp_r31->unk3E = 0.5f * REFRESH_RATE; temp_r31->unk48 = CenterM[temp_r31->unk2].z; temp_r31->unk4C = object->trans.z - 350.0f; temp_r31->unk40 = lbl_1_data_75CC[temp_r31->unk46 - 1]; @@ -946,7 +925,7 @@ void fn_1_2C84(omObjData *object) if (--temp_r31->unk3E == 0) { temp_r31->unk12 = 0; } - CenterM[temp_r31->unk2].z = temp_r31->unk48 + ((temp_r31->unk4C - temp_r31->unk48) * cosd((temp_r31->unk3E * 90.0f) / 30.0f)); + CenterM[temp_r31->unk2].z = temp_r31->unk48 + ((temp_r31->unk4C - temp_r31->unk48) * cosd((temp_r31->unk3E * 90.0f) / (0.5f * REFRESH_RATE))); temp_r28 = 0; temp_f25 = 1; break; @@ -957,7 +936,7 @@ void fn_1_2C84(omObjData *object) temp_r24 = temp_r27->data; switch (temp_r24->unk4) { case 1: - temp_f28 = 1.0f - (temp_r24->unk24 / 90.0f); + temp_f28 = 1.0f - (temp_r24->unk24 / (1.5f * REFRESH_RATE)); object->trans.x = temp_r31->unk50.x + (temp_f28 * (temp_r31->unk5C.x - temp_r31->unk50.x)); object->trans.y = 100 + (-2000.0f * (temp_f28 - 0.1f)) * (temp_f28 - 0.1f); object->trans.z = temp_r31->unk50.z + (temp_f28 * (temp_r31->unk5C.z - temp_r31->unk50.z)); @@ -978,7 +957,7 @@ void fn_1_2C84(omObjData *object) if (temp_r31->unk3E) { temp_r31->unk3E--; } - temp_f28 = sind((temp_r31->unk3E / 30.0f) * 90.0f); + temp_f28 = sind((temp_r31->unk3E / (0.5f * REFRESH_RATE)) * 90.0f); object->trans.x = temp_r31->unk74.x - (temp_f28 * (temp_r31->unk74.x - temp_r31->unk68.x)); object->trans.y = temp_r31->unk74.y - (temp_f28 * (temp_r31->unk74.y - temp_r31->unk68.y)); object->trans.z = temp_r31->unk74.z - (temp_f28 * (temp_r31->unk74.z - temp_r31->unk68.z)); @@ -1032,7 +1011,7 @@ void fn_1_3C1C(omObjData *object) switch (temp_r31->unk12) { case 0: if (object->trans.z > -7600.0f) { - object->trans.z -= 3.75f; + object->trans.z -= 225.0f / REFRESH_RATE; } else { temp_r31->unk12++; @@ -1113,11 +1092,11 @@ void fn_1_4528(ModelData *model, ParticleData *particle, Mtx matrix) temp_r31->unk34.x = 100.0f * (0.2f * sind(temp_f31)); temp_r31->unk34.y = 0; temp_r31->unk34.z = 100.0f * (0.2f * cosd(temp_f31)); - temp_f30 = ((frand8() * 2.5f) / 256.0f) + (5.0f / 3.0f); + temp_f30 = ((frand8() * (150.0f / REFRESH_RATE)) / 256.0f) + (100.0f / REFRESH_RATE); temp_f31 = temp_f29 + (30.0f * (((s32)frand() & 0x1FF) - 256.0f) / 256.0f); temp_r31->unk08.x = temp_f30 * sind(temp_f31); temp_r31->unk08.z = temp_f30 * cosd(temp_f31); - temp_r31->unk08.y = (frand8() * (50.0f / 3.0f)) / 256.0f; + temp_r31->unk08.y = (frand8() * (1000.0f / REFRESH_RATE)) / 256.0f; temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 255; } } @@ -1128,7 +1107,7 @@ void fn_1_4528(ModelData *model, ParticleData *particle, Mtx matrix) temp_r28++; } else { - temp_r31->unk08.y += -0.50000006f; + temp_r31->unk08.y += VERSION_NTSC ? -0.50000006f : -0.6f; // -3.0f / REFRESH_RATE temp_r31->unk34.x += temp_r31->unk08.x; temp_r31->unk34.y += temp_r31->unk08.y; temp_r31->unk34.z += temp_r31->unk08.z; @@ -1193,7 +1172,7 @@ void fn_1_4AA8(omObjData *object) } Hu3DMotionSet(object->model[0], object->motion[0]); Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); - object->trans.y = 500; + object->trans.y = 500.0f; object->scale.x = object->scale.y = object->scale.z = 0.25f; if (work->unk2 == 0) { object->trans.x = -1800; @@ -1202,7 +1181,7 @@ void fn_1_4AA8(omObjData *object) object->rot.y = -90; object->func = fn_1_4CC0; Hu3DMotionSpeedSet(object->model[0], 2.0f); - work->unk24 = 60; + work->unk24 = REFRESH_RATE; } else { object->func = fn_1_4F54; @@ -1218,11 +1197,11 @@ void fn_1_4CC0(omObjData *object) Work4AA8 *work = object->data; float pan; Vec pos2D; - if (42.0f == work->unk24) { + if ((VERSION_NTSC ? 42.0f : 35.0f) == work->unk24) { HuAudFXPlay(1795); } if (work->unk24 == 0) { - object->trans.x -= 25.0f; + object->trans.x -= 1500.0f / REFRESH_RATE; } else { if (--work->unk24 == 0) { @@ -1273,7 +1252,7 @@ void fn_1_4F54(omObjData *object) case 0: if (object->work[3]) { work->unk4++; - work->unk24 = work->unk26 = 90; + work->unk24 = work->unk26 = 1.5f * REFRESH_RATE; temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); object->trans.x = work->unk28.x = temp_r29[work->unk2]->trans.x; object->trans.y = work->unk28.y = 2000; @@ -1301,11 +1280,11 @@ void fn_1_4F54(omObjData *object) if (--work->unk24 == 0) { work->unk0 = 1; work->unk4++; - work->unk24 = 90; + work->unk24 = 1.5f * REFRESH_RATE; work->unk10 = (200.0f - object->trans.y) / work->unk24; object->rot.x = 0; } - if (60.0f == work->unk24) { + if (1.0f * REFRESH_RATE == work->unk24) { HuAudFXPlay(1796); } break; @@ -1314,7 +1293,7 @@ void fn_1_4F54(omObjData *object) object->trans.y += work->unk10; if (--work->unk24 == 0) { work->unk4++; - work->unk24 = work->unk26 = 48; + work->unk24 = work->unk26 = 0.8f * REFRESH_RATE; work->unk28.x = object->trans.x; work->unk28.y = object->trans.y; work->unk28.z = object->trans.z; @@ -1350,7 +1329,7 @@ void fn_1_4F54(omObjData *object) object->work[3] = 0; Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); } - if (work->unk24 == (int)(work->unk26 - 12.0f)) { + if (work->unk24 == (int)(work->unk26 - (0.2f * REFRESH_RATE))) { work->unk0 = 0; temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); temp_r28 = temp_r29[work->unk2]->data; @@ -1686,7 +1665,7 @@ void fn_1_6DEC(omObjData *object) switch (object->work[0]) { case 0: if (fn_1_374() <= 3) { - CRotM[0].y -= 10.0f / 60.0f; + CRotM[0].y -= 10.0f / REFRESH_RATE; } if (fn_1_374() == 3) { Hu3DCameraCreate(15); From fcc2d922e8e8570b0c36e6daedc38f9e776d0846 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 17 Nov 2024 19:13:59 +0100 Subject: [PATCH 149/311] Port minigame_seq.c --- config/GMPP01_00/symbols.txt | 252 +- configure.py | 2 +- src/game/minigame_seq.c | 6535 +++++++++++++++++----------------- 3 files changed, 3401 insertions(+), 3388 deletions(-) diff --git a/config/GMPP01_00/symbols.txt b/config/GMPP01_00/symbols.txt index 33e87867..be859f5f 100644 --- a/config/GMPP01_00/symbols.txt +++ b/config/GMPP01_00/symbols.txt @@ -4940,12 +4940,12 @@ seqFontKanaTbl = .data:0x8012F1F0; // type:object size:0x52 scope:local seqFontNumTbl = .data:0x8012F242; // type:object size:0xB scope:local data:string letterBufTbl = .data:0x8012F250; // type:object size:0x14 scope:local wordMgTbl = .data:0x8012F264; // type:object size:0x18 scope:local -letterOfs$1002 = .data:0x8012F27C; // type:object size:0x40 -letterOfs$1479 = .data:0x8012F2BC; // type:object size:0x1C -letterOfs$1853 = .data:0x8012F2D8; // type:object size:0x38 -lbl_8012F310 = .data:0x8012F310; // type:object size:0xC data:string +letterOfs$1002 = .data:0x8012F27C; // type:object size:0x40 scope:local +letterOfs$1479 = .data:0x8012F2BC; // type:object size:0x1C scope:local +letterOfs$1853 = .data:0x8012F2D8; // type:object size:0x38 scope:local +lbl_8012F310 = .data:0x8012F310; // type:object size:0xC scope:local data:string winCharNameTbl = .data:0x8012F31C; // type:object size:0x78 scope:local -lbl_8012F394 = .data:0x8012F394; // type:object size:0xC +lbl_8012F394 = .data:0x8012F394; // type:object size:0xC scope:local winWordTbl = .data:0x8012F3A0; // type:object size:0x18 scope:local winPosOfs = .data:0x8012F3B8; // type:object size:0x50 scope:local practiceTbl = .data:0x8012F408; // type:object size:0xAC scope:local @@ -5806,43 +5806,43 @@ wordFinishJ = .sdata:0x801F0874; // type:object size:0x8 scope:local wordDrawJ = .sdata:0x801F087C; // type:object size:0x6 scope:local wordFinishE = .sdata:0x801F0882; // type:object size:0x8 scope:local data:string wordDrawE = .sdata:0x801F088A; // type:object size:0x6 scope:local data:string -lbl_801F0890 = .sdata:0x801F0890; // type:object size:0x4 -lbl_801F0894 = .sdata:0x801F0894; // type:object size:0x6 data:string -lbl_801F089A = .sdata:0x801F089A; // type:object size:0x6 -lbl_801F08A0 = .sdata:0x801F08A0; // type:object size:0x6 data:string -lbl_801F08A6 = .sdata:0x801F08A6; // type:object size:0x5 -lbl_801F08AB = .sdata:0x801F08AB; // type:object size:0x6 data:string -lbl_801F08B1 = .sdata:0x801F08B1; // type:object size:0x5 -lbl_801F08B6 = .sdata:0x801F08B6; // type:object size:0x6 data:string -lbl_801F08BC = .sdata:0x801F08BC; // type:object size:0x4 -lbl_801F08C0 = .sdata:0x801F08C0; // type:object size:0x6 data:string -lbl_801F08C6 = .sdata:0x801F08C6; // type:object size:0x6 -lbl_801F08CC = .sdata:0x801F08CC; // type:object size:0x5 data:string -lbl_801F08D1 = .sdata:0x801F08D1; // type:object size:0x7 -lbl_801F08D8 = .sdata:0x801F08D8; // type:object size:0x6 data:string -lbl_801F08DE = .sdata:0x801F08DE; // type:object size:0x7 -lbl_801F08E5 = .sdata:0x801F08E5; // type:object size:0x8 data:string -lbl_801F08ED = .sdata:0x801F08ED; // type:object size:0x5 -lbl_801F08F2 = .sdata:0x801F08F2; // type:object size:0x7 data:string -lbl_801F08F9 = .sdata:0x801F08F9; // type:object size:0x6 -lbl_801F08FF = .sdata:0x801F08FF; // type:object size:0x5 data:string -lbl_801F0904 = .sdata:0x801F0904; // type:object size:0x5 -lbl_801F0909 = .sdata:0x801F0909; // type:object size:0x8 data:string -lbl_801F0911 = .sdata:0x801F0911; // type:object size:0x4 -lbl_801F0915 = .sdata:0x801F0915; // type:object size:0x4 data:string -lbl_801F0919 = .sdata:0x801F0919; // type:object size:0x5 -lbl_801F091E = .sdata:0x801F091E; // type:object size:0x6 data:string -lbl_801F0924 = .sdata:0x801F0924; // type:object size:0x7 -lbl_801F092B = .sdata:0x801F092B; // type:object size:0x6 -lbl_801F0931 = .sdata:0x801F0931; // type:object size:0x7 data:string -lbl_801F0938 = .sdata:0x801F0938; // type:object size:0x3 -lbl_801F093B = .sdata:0x801F093B; // type:object size:0x5 data:string -lbl_801F0940 = .sdata:0x801F0940; // type:object size:0x6 -lbl_801F0946 = .sdata:0x801F0946; // type:object size:0x5 data:string -lbl_801F094B = .sdata:0x801F094B; // type:object size:0x7 -lbl_801F0952 = .sdata:0x801F0952; // type:object size:0x6 -lbl_801F0958 = .sdata:0x801F0958; // type:object size:0x8 -pauseStr$2309 = .sdata:0x801F0960; // type:object size:0x8 +lbl_801F0890 = .sdata:0x801F0890; // type:object size:0x4 scope:local +lbl_801F0894 = .sdata:0x801F0894; // type:object size:0x6 scope:local data:string +lbl_801F089A = .sdata:0x801F089A; // type:object size:0x6 scope:local +lbl_801F08A0 = .sdata:0x801F08A0; // type:object size:0x6 scope:local data:string +lbl_801F08A6 = .sdata:0x801F08A6; // type:object size:0x5 scope:local +lbl_801F08AB = .sdata:0x801F08AB; // type:object size:0x6 scope:local data:string +lbl_801F08B1 = .sdata:0x801F08B1; // type:object size:0x5 scope:local +lbl_801F08B6 = .sdata:0x801F08B6; // type:object size:0x6 scope:local data:string +lbl_801F08BC = .sdata:0x801F08BC; // type:object size:0x4 scope:local +lbl_801F08C0 = .sdata:0x801F08C0; // type:object size:0x6 scope:local data:string +lbl_801F08C6 = .sdata:0x801F08C6; // type:object size:0x6 scope:local +lbl_801F08CC = .sdata:0x801F08CC; // type:object size:0x5 scope:local data:string +lbl_801F08D1 = .sdata:0x801F08D1; // type:object size:0x7 scope:local +lbl_801F08D8 = .sdata:0x801F08D8; // type:object size:0x6 scope:local data:string +lbl_801F08DE = .sdata:0x801F08DE; // type:object size:0x7 scope:local +lbl_801F08E5 = .sdata:0x801F08E5; // type:object size:0x8 scope:local data:string +lbl_801F08ED = .sdata:0x801F08ED; // type:object size:0x5 scope:local +lbl_801F08F2 = .sdata:0x801F08F2; // type:object size:0x7 scope:local data:string +lbl_801F08F9 = .sdata:0x801F08F9; // type:object size:0x6 scope:local +lbl_801F08FF = .sdata:0x801F08FF; // type:object size:0x5 scope:local data:string +lbl_801F0904 = .sdata:0x801F0904; // type:object size:0x5 scope:local +lbl_801F0909 = .sdata:0x801F0909; // type:object size:0x8 scope:local data:string +lbl_801F0911 = .sdata:0x801F0911; // type:object size:0x4 scope:local +lbl_801F0915 = .sdata:0x801F0915; // type:object size:0x4 scope:local data:string +lbl_801F0919 = .sdata:0x801F0919; // type:object size:0x5 scope:local +lbl_801F091E = .sdata:0x801F091E; // type:object size:0x6 scope:local data:string +lbl_801F0924 = .sdata:0x801F0924; // type:object size:0x7 scope:local +lbl_801F092B = .sdata:0x801F092B; // type:object size:0x6 scope:local +lbl_801F0931 = .sdata:0x801F0931; // type:object size:0x7 scope:local data:string +lbl_801F0938 = .sdata:0x801F0938; // type:object size:0x3 scope:local +lbl_801F093B = .sdata:0x801F093B; // type:object size:0x5 scope:local data:string +lbl_801F0940 = .sdata:0x801F0940; // type:object size:0x6 scope:local +lbl_801F0946 = .sdata:0x801F0946; // type:object size:0x5 scope:local data:string +lbl_801F094B = .sdata:0x801F094B; // type:object size:0x7 scope:local +lbl_801F0952 = .sdata:0x801F0952; // type:object size:0x6 scope:local +lbl_801F0958 = .sdata:0x801F0958; // type:object size:0x8 scope:local +pauseStr$2309 = .sdata:0x801F0960; // type:object size:0x8 scope:local lbl_801F0968 = .sdata:0x801F0968; // type:object size:0x8 scope:local lbl_801F0970 = .sdata:0x801F0970; // type:object size:0x8 lbl_801F0978 = .sdata:0x801F0978; // type:object size:0x8 @@ -7115,90 +7115,90 @@ lbl_801F2090 = .sdata2:0x801F2090; // type:object size:0x4 data:float lbl_801F2094 = .sdata2:0x801F2094; // type:object size:0x4 data:float lbl_801F2098 = .sdata2:0x801F2098; // type:object size:0x4 data:float lbl_801F20A0 = .sdata2:0x801F20A0; // type:object size:0x8 data:double -lbl_801F20A8 = .sdata2:0x801F20A8; // type:object size:0x4 data:float -lbl_801F20AC = .sdata2:0x801F20AC; // type:object size:0x4 data:float -lbl_801F20B0 = .sdata2:0x801F20B0; // type:object size:0x4 data:float -lbl_801F20B8 = .sdata2:0x801F20B8; // type:object size:0x8 data:double -lbl_801F20C0 = .sdata2:0x801F20C0; // type:object size:0x8 data:double -lbl_801F20C8 = .sdata2:0x801F20C8; // type:object size:0x8 data:double -lbl_801F20D0 = .sdata2:0x801F20D0; // type:object size:0x8 data:double -lbl_801F20D8 = .sdata2:0x801F20D8; // type:object size:0x8 data:double -lbl_801F20E0 = .sdata2:0x801F20E0; // type:object size:0x8 data:double -lbl_801F20E8 = .sdata2:0x801F20E8; // type:object size:0x4 data:float -lbl_801F20EC = .sdata2:0x801F20EC; // type:object size:0x4 data:float -lbl_801F20F0 = .sdata2:0x801F20F0; // type:object size:0x8 data:double -lbl_801F20F8 = .sdata2:0x801F20F8; // type:object size:0x4 data:float -lbl_801F20FC = .sdata2:0x801F20FC; // type:object size:0x4 data:float -lbl_801F2100 = .sdata2:0x801F2100; // type:object size:0x4 data:float -lbl_801F2104 = .sdata2:0x801F2104; // type:object size:0x4 data:float -lbl_801F2108 = .sdata2:0x801F2108; // type:object size:0x4 data:float -lbl_801F210C = .sdata2:0x801F210C; // type:object size:0x4 data:float -lbl_801F2110 = .sdata2:0x801F2110; // type:object size:0x4 data:float -lbl_801F2114 = .sdata2:0x801F2114; // type:object size:0x4 data:float -lbl_801F2118 = .sdata2:0x801F2118; // type:object size:0x4 data:float -lbl_801F211C = .sdata2:0x801F211C; // type:object size:0x4 data:float -lbl_801F2120 = .sdata2:0x801F2120; // type:object size:0x4 data:float -lbl_801F2124 = .sdata2:0x801F2124; // type:object size:0x4 data:float -lbl_801F2128 = .sdata2:0x801F2128; // type:object size:0x4 data:float -lbl_801F212C = .sdata2:0x801F212C; // type:object size:0x4 data:float -lbl_801F2130 = .sdata2:0x801F2130; // type:object size:0x4 data:float -lbl_801F2134 = .sdata2:0x801F2134; // type:object size:0x4 data:float -lbl_801F2138 = .sdata2:0x801F2138; // type:object size:0x4 data:float -lbl_801F213C = .sdata2:0x801F213C; // type:object size:0x4 data:float -lbl_801F2140 = .sdata2:0x801F2140; // type:object size:0x8 data:double -lbl_801F2148 = .sdata2:0x801F2148; // type:object size:0x4 data:float -lbl_801F214C = .sdata2:0x801F214C; // type:object size:0x4 data:float -lbl_801F2150 = .sdata2:0x801F2150; // type:object size:0x8 data:double -lbl_801F2158 = .sdata2:0x801F2158; // type:object size:0x8 data:double -lbl_801F2160 = .sdata2:0x801F2160; // type:object size:0x4 data:float -lbl_801F2164 = .sdata2:0x801F2164; // type:object size:0x4 data:float -lbl_801F2168 = .sdata2:0x801F2168; // type:object size:0x8 data:double -lbl_801F2170 = .sdata2:0x801F2170; // type:object size:0x4 data:float -lbl_801F2174 = .sdata2:0x801F2174; // type:object size:0x4 data:float -lbl_801F2178 = .sdata2:0x801F2178; // type:object size:0x4 data:float -lbl_801F217C = .sdata2:0x801F217C; // type:object size:0x4 data:float -lbl_801F2180 = .sdata2:0x801F2180; // type:object size:0x4 data:float -lbl_801F2188 = .sdata2:0x801F2188; // type:object size:0x8 data:double -lbl_801F2190 = .sdata2:0x801F2190; // type:object size:0x4 data:float -lbl_801F2198 = .sdata2:0x801F2198; // type:object size:0x8 data:double -lbl_801F21A0 = .sdata2:0x801F21A0; // type:object size:0x4 data:float -lbl_801F21A4 = .sdata2:0x801F21A4; // type:object size:0x4 data:float -lbl_801F21A8 = .sdata2:0x801F21A8; // type:object size:0x4 data:float -lbl_801F21AC = .sdata2:0x801F21AC; // type:object size:0x4 data:float -lbl_801F21B0 = .sdata2:0x801F21B0; // type:object size:0x8 data:double -lbl_801F21B8 = .sdata2:0x801F21B8; // type:object size:0x4 data:float -lbl_801F21C0 = .sdata2:0x801F21C0; // type:object size:0x8 data:double -lbl_801F21C8 = .sdata2:0x801F21C8; // type:object size:0x8 data:double -lbl_801F21D0 = .sdata2:0x801F21D0; // type:object size:0x8 data:double -lbl_801F21D8 = .sdata2:0x801F21D8; // type:object size:0x4 data:float -lbl_801F21E0 = .sdata2:0x801F21E0; // type:object size:0x8 data:double -lbl_801F21E8 = .sdata2:0x801F21E8; // type:object size:0x4 data:float -lbl_801F21EC = .sdata2:0x801F21EC; // type:object size:0x4 data:float -lbl_801F21F0 = .sdata2:0x801F21F0; // type:object size:0x4 data:float -lbl_801F21F4 = .sdata2:0x801F21F4; // type:object size:0x4 data:float -lbl_801F21F8 = .sdata2:0x801F21F8; // type:object size:0x4 data:float -lbl_801F21FC = .sdata2:0x801F21FC; // type:object size:0x4 data:float -lbl_801F2200 = .sdata2:0x801F2200; // type:object size:0x4 data:float -lbl_801F2208 = .sdata2:0x801F2208; // type:object size:0x8 data:double -lbl_801F2210 = .sdata2:0x801F2210; // type:object size:0x8 data:double -lbl_801F2218 = .sdata2:0x801F2218; // type:object size:0x8 data:double -lbl_801F2220 = .sdata2:0x801F2220; // type:object size:0x2 data:2byte -lbl_801F2222 = .sdata2:0x801F2222; // type:object size:0x2 data:2byte -lbl_801F2224 = .sdata2:0x801F2224; // type:object size:0x2 data:2byte -lbl_801F2228 = .sdata2:0x801F2228; // type:object size:0x4 data:float -lbl_801F222C = .sdata2:0x801F222C; // type:object size:0x4 data:float -lbl_801F2230 = .sdata2:0x801F2230; // type:object size:0x4 data:float -lbl_801F2234 = .sdata2:0x801F2234; // type:object size:0x4 data:float -lbl_801F2238 = .sdata2:0x801F2238; // type:object size:0x4 data:float -lbl_801F223C = .sdata2:0x801F223C; // type:object size:0x4 data:float -lbl_801F2240 = .sdata2:0x801F2240; // type:object size:0x4 data:float -lbl_801F2244 = .sdata2:0x801F2244; // type:object size:0x4 data:float -lbl_801F2248 = .sdata2:0x801F2248; // type:object size:0x4 data:float -lbl_801F224C = .sdata2:0x801F224C; // type:object size:0x4 data:float -lbl_801F2250 = .sdata2:0x801F2250; // type:object size:0x8 data:double -lbl_801F2258 = .sdata2:0x801F2258; // type:object size:0x8 data:double -lbl_801F2260 = .sdata2:0x801F2260; // type:object size:0x4 data:float -lbl_801F2264 = .sdata2:0x801F2264; // type:object size:0x4 data:float +lbl_801F20A8 = .sdata2:0x801F20A8; // type:object size:0x4 scope:local data:float +lbl_801F20AC = .sdata2:0x801F20AC; // type:object size:0x4 scope:local data:float +lbl_801F20B0 = .sdata2:0x801F20B0; // type:object size:0x4 scope:local data:float +lbl_801F20B8 = .sdata2:0x801F20B8; // type:object size:0x8 scope:local data:double +lbl_801F20C0 = .sdata2:0x801F20C0; // type:object size:0x8 scope:local data:double +lbl_801F20C8 = .sdata2:0x801F20C8; // type:object size:0x8 scope:local data:double +lbl_801F20D0 = .sdata2:0x801F20D0; // type:object size:0x8 scope:local data:double +lbl_801F20D8 = .sdata2:0x801F20D8; // type:object size:0x8 scope:local data:double +lbl_801F20E0 = .sdata2:0x801F20E0; // type:object size:0x8 scope:local data:double +lbl_801F20E8 = .sdata2:0x801F20E8; // type:object size:0x4 scope:local data:float +lbl_801F20EC = .sdata2:0x801F20EC; // type:object size:0x4 scope:local data:float +lbl_801F20F0 = .sdata2:0x801F20F0; // type:object size:0x8 scope:local data:double +lbl_801F20F8 = .sdata2:0x801F20F8; // type:object size:0x4 scope:local data:float +lbl_801F20FC = .sdata2:0x801F20FC; // type:object size:0x4 scope:local data:float +lbl_801F2100 = .sdata2:0x801F2100; // type:object size:0x4 scope:local data:float +lbl_801F2104 = .sdata2:0x801F2104; // type:object size:0x4 scope:local data:float +lbl_801F2108 = .sdata2:0x801F2108; // type:object size:0x4 scope:local data:float +lbl_801F210C = .sdata2:0x801F210C; // type:object size:0x4 scope:local data:float +lbl_801F2110 = .sdata2:0x801F2110; // type:object size:0x4 scope:local data:float +lbl_801F2114 = .sdata2:0x801F2114; // type:object size:0x4 scope:local data:float +lbl_801F2118 = .sdata2:0x801F2118; // type:object size:0x4 scope:local data:float +lbl_801F211C = .sdata2:0x801F211C; // type:object size:0x4 scope:local data:float +lbl_801F2120 = .sdata2:0x801F2120; // type:object size:0x4 scope:local data:float +lbl_801F2124 = .sdata2:0x801F2124; // type:object size:0x4 scope:local data:float +lbl_801F2128 = .sdata2:0x801F2128; // type:object size:0x4 scope:local data:float +lbl_801F212C = .sdata2:0x801F212C; // type:object size:0x4 scope:local data:float +lbl_801F2130 = .sdata2:0x801F2130; // type:object size:0x4 scope:local data:float +lbl_801F2134 = .sdata2:0x801F2134; // type:object size:0x4 scope:local data:float +lbl_801F2138 = .sdata2:0x801F2138; // type:object size:0x4 scope:local data:float +lbl_801F213C = .sdata2:0x801F213C; // type:object size:0x4 scope:local data:float +lbl_801F2140 = .sdata2:0x801F2140; // type:object size:0x8 scope:local data:double +lbl_801F2148 = .sdata2:0x801F2148; // type:object size:0x4 scope:local data:float +lbl_801F214C = .sdata2:0x801F214C; // type:object size:0x4 scope:local data:float +lbl_801F2150 = .sdata2:0x801F2150; // type:object size:0x8 scope:local data:double +lbl_801F2158 = .sdata2:0x801F2158; // type:object size:0x8 scope:local data:double +lbl_801F2160 = .sdata2:0x801F2160; // type:object size:0x4 scope:local data:float +lbl_801F2164 = .sdata2:0x801F2164; // type:object size:0x4 scope:local data:float +lbl_801F2168 = .sdata2:0x801F2168; // type:object size:0x8 scope:local data:double +lbl_801F2170 = .sdata2:0x801F2170; // type:object size:0x4 scope:local data:float +lbl_801F2174 = .sdata2:0x801F2174; // type:object size:0x4 scope:local data:float +lbl_801F2178 = .sdata2:0x801F2178; // type:object size:0x4 scope:local data:float +lbl_801F217C = .sdata2:0x801F217C; // type:object size:0x4 scope:local data:float +lbl_801F2180 = .sdata2:0x801F2180; // type:object size:0x4 scope:local data:float +lbl_801F2188 = .sdata2:0x801F2188; // type:object size:0x8 scope:local data:double +lbl_801F2190 = .sdata2:0x801F2190; // type:object size:0x4 scope:local data:float +lbl_801F2198 = .sdata2:0x801F2198; // type:object size:0x8 scope:local data:double +lbl_801F21A0 = .sdata2:0x801F21A0; // type:object size:0x4 scope:local data:float +lbl_801F21A4 = .sdata2:0x801F21A4; // type:object size:0x4 scope:local data:float +lbl_801F21A8 = .sdata2:0x801F21A8; // type:object size:0x4 scope:local data:float +lbl_801F21AC = .sdata2:0x801F21AC; // type:object size:0x4 scope:local data:float +lbl_801F21B0 = .sdata2:0x801F21B0; // type:object size:0x8 scope:local data:double +lbl_801F21B8 = .sdata2:0x801F21B8; // type:object size:0x4 scope:local data:float +lbl_801F21C0 = .sdata2:0x801F21C0; // type:object size:0x8 scope:local data:double +lbl_801F21C8 = .sdata2:0x801F21C8; // type:object size:0x8 scope:local data:double +lbl_801F21D0 = .sdata2:0x801F21D0; // type:object size:0x8 scope:local data:double +lbl_801F21D8 = .sdata2:0x801F21D8; // type:object size:0x4 scope:local data:float +lbl_801F21E0 = .sdata2:0x801F21E0; // type:object size:0x8 scope:local data:double +lbl_801F21E8 = .sdata2:0x801F21E8; // type:object size:0x4 scope:local data:float +lbl_801F21EC = .sdata2:0x801F21EC; // type:object size:0x4 scope:local data:float +lbl_801F21F0 = .sdata2:0x801F21F0; // type:object size:0x4 scope:local data:float +lbl_801F21F4 = .sdata2:0x801F21F4; // type:object size:0x4 scope:local data:float +lbl_801F21F8 = .sdata2:0x801F21F8; // type:object size:0x4 scope:local data:float +lbl_801F21FC = .sdata2:0x801F21FC; // type:object size:0x4 scope:local data:float +lbl_801F2200 = .sdata2:0x801F2200; // type:object size:0x4 scope:local data:float +lbl_801F2208 = .sdata2:0x801F2208; // type:object size:0x8 scope:local data:double +lbl_801F2210 = .sdata2:0x801F2210; // type:object size:0x8 scope:local data:double +lbl_801F2218 = .sdata2:0x801F2218; // type:object size:0x8 scope:local data:double +lbl_801F2220 = .sdata2:0x801F2220; // type:object size:0x2 scope:local data:2byte +lbl_801F2222 = .sdata2:0x801F2222; // type:object size:0x2 scope:local data:2byte +lbl_801F2224 = .sdata2:0x801F2224; // type:object size:0x2 scope:local data:2byte +lbl_801F2228 = .sdata2:0x801F2228; // type:object size:0x4 scope:local data:float +lbl_801F222C = .sdata2:0x801F222C; // type:object size:0x4 scope:local data:float +lbl_801F2230 = .sdata2:0x801F2230; // type:object size:0x4 scope:local data:float +lbl_801F2234 = .sdata2:0x801F2234; // type:object size:0x4 scope:local data:float +lbl_801F2238 = .sdata2:0x801F2238; // type:object size:0x4 scope:local data:float +lbl_801F223C = .sdata2:0x801F223C; // type:object size:0x4 scope:local data:float +lbl_801F2240 = .sdata2:0x801F2240; // type:object size:0x4 scope:local data:float +lbl_801F2244 = .sdata2:0x801F2244; // type:object size:0x4 scope:local data:float +lbl_801F2248 = .sdata2:0x801F2248; // type:object size:0x4 scope:local data:float +lbl_801F224C = .sdata2:0x801F224C; // type:object size:0x4 scope:local data:float +lbl_801F2250 = .sdata2:0x801F2250; // type:object size:0x8 scope:local data:double +lbl_801F2258 = .sdata2:0x801F2258; // type:object size:0x8 scope:local data:double +lbl_801F2260 = .sdata2:0x801F2260; // type:object size:0x4 scope:local data:float +lbl_801F2264 = .sdata2:0x801F2264; // type:object size:0x4 scope:local data:float lbl_801F2268 = .sdata2:0x801F2268; // type:object size:0x4 data:float lbl_801F2270 = .sdata2:0x801F2270; // type:object size:0x8 data:double lbl_801F2278 = .sdata2:0x801F2278; // type:object size:0x8 data:double diff --git a/configure.py b/configure.py index fea780ac..5e690faf 100644 --- a/configure.py +++ b/configure.py @@ -402,7 +402,7 @@ config.libs = [ Object(Matching, "game/frand.c"), Object(Matching, "game/audio.c"), Object(Matching, "game/EnvelopeExec.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/minigame_seq.c"), + Object(Matching, "game/minigame_seq.c"), Object(Matching, "game/ovllist.c"), Object(Matching, "game/esprite.c"), Object(Matching, "game/code_8003FF68.c"), diff --git a/src/game/minigame_seq.c b/src/game/minigame_seq.c index ca883739..b163d790 100644 --- a/src/game/minigame_seq.c +++ b/src/game/minigame_seq.c @@ -1,36 +1,36 @@ #include "game/armem.h" -#include "game/sprite.h" -#include "game/process.h" +#include "game/disp.h" #include "game/gamework_data.h" -#include "game/objsub.h" -#include "game/object.h" #include "game/hsfman.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" -#include "game/pad.h" -#include "game/disp.h" #include "game/minigame_seq.h" #include "math.h" #include "stdarg.h" +#include "version.h" #undef abs #define ABS(x) (((x) < 0) ? -(x) : (x)) - extern s16 HuSysVWaitGet(s16 param); typedef struct seq_info { - SeqInitFunc init; - SeqUpdateFunc update; - float x; - float y; - float scale_x; - float scale_y; - s32 time_max; + SeqInitFunc init; + SeqUpdateFunc update; + float x; + float y; + float scale_x; + float scale_y; + s32 time_max; } SeqInfo; static s32 SeqInitTimer(SeqWork *work, va_list params); @@ -61,54 +61,41 @@ static s32 SeqUpdateFlip(SeqWork *work); OverlayID mgSeqOvlPrev = OVL_INVALID; static SeqInfo seqInfoTbl[] = { - { NULL, NULL, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, - { SeqInitTimer, SeqUpdateTimer, HU_DISP_CENTERX+4, 64.0f, 1.0f, 1.0f, 60 }, - { SeqInitType2, SeqUpdateType2, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 0.5f, 0.5f, 60 }, - { SeqInitMGBasic, SeqUpdateMGBasic, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitMGCommon, SeqUpdateMG1vs3, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitWin, SeqUpdateWin, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitMGCommon, SeqUpdateMGBattle, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitMGCommon, SeqUpdateMGStory, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitMGBasic, SeqUpdateMGBasic, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitMGCommon, SeqUpdateMG2vs2, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitFlip, SeqUpdateFlip, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitMGCommon, SeqUpdateMGBowser, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitWin, SeqUpdateWin, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitDraw, SeqUpdateDraw, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, - { SeqInitRecord, SeqUpdateRecord, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { NULL, NULL, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, - { NULL, NULL, HU_DISP_CENTERX+4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, + { NULL, NULL, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, + { SeqInitTimer, SeqUpdateTimer, HU_DISP_CENTERX + 4, 64.0f, 1.0f, 1.0f, 60 }, + { SeqInitType2, SeqUpdateType2, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 0.5f, 0.5f, 60 }, + { SeqInitMGBasic, SeqUpdateMGBasic, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitMGCommon, SeqUpdateMG1vs3, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitWin, SeqUpdateWin, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitMGCommon, SeqUpdateMGBattle, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitMGCommon, SeqUpdateMGStory, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitMGBasic, SeqUpdateMGBasic, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitMGCommon, SeqUpdateMG2vs2, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitFlip, SeqUpdateFlip, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitMGCommon, SeqUpdateMGBowser, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitWin, SeqUpdateWin, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { SeqInitDraw, SeqUpdateDraw, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, + { SeqInitRecord, SeqUpdateRecord, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { NULL, NULL, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, + { NULL, NULL, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, }; -static s32 seqType2SprTbl[6] = { - 0, 0, 0, 0, 0, 0 -}; +static s32 seqType2SprTbl[6] = { 0, 0, 0, 0, 0, 0 }; -static s16 mgSeqTypeTbl[9] = { - MG_SEQ_TYPE_4P, - MG_SEQ_TYPE_1VS3, - MG_SEQ_TYPE_2VS2, - MG_SEQ_TYPE_BOWSER, - MG_SEQ_TYPE_BATTLE, - MG_SEQ_TYPE_PINBALL, - MG_SEQ_TYPE_STORY, - MG_SEQ_TYPE_BOWSER, - MG_SEQ_TYPE_STORY -}; +static s16 mgSeqTypeTbl[9] = { MG_SEQ_TYPE_4P, MG_SEQ_TYPE_1VS3, MG_SEQ_TYPE_2VS2, MG_SEQ_TYPE_BOWSER, MG_SEQ_TYPE_BATTLE, MG_SEQ_TYPE_PINBALL, + MG_SEQ_TYPE_STORY, MG_SEQ_TYPE_BOWSER, MG_SEQ_TYPE_STORY }; -static char lbl_8012F336[] = { - "アイウエオカキク" - "ケコサシスセソタ" - "チツテトナニヌネ" - "ノハヒフヘホマミ" - "ムメモヤユヨラリ" - "ルレロワヲンァィ" - "ゥェォャュョッカ" - "キクコサシスセソ" - "タチツテトハヒフ" - "ヘホハヒフヘホ" - "!?ー" -}; +static char lbl_8012F336[] = { "アイウエオカキク" + "ケコサシスセソタ" + "チツテトナニヌネ" + "ノハヒフヘホマミ" + "ムメモヤユヨラリ" + "ルレロワヲンァィ" + "ゥェォャュョッカ" + "キクコサシスセソ" + "タチツテトハヒフ" + "ヘホハヒフヘホ" + "!?ー" }; static char lbl_8012F389[] = "x first\n"; static char lbl_8012F392[] = "y first\n"; @@ -129,645 +116,657 @@ static s32 seqLanguage; void fn_80036BC8(void); - void MGSeqInit(void) { - s32 i; - SeqWork *work; - work = &seqWorkData[0]; - for(i=8; i!=0; i--, work++) { - work->seq_no = 0; - work->data = NULL; - } - seqPauseF = 0; - seqDoneF = 0; - lbl_801D3D94 = 0; - seqTimer = 30; - HuAR_DVDtoARAM(DATADIR_GAMEMES); - HuAR_DVDtoARAM(DATADIR_MGCONST); - while(HuARDMACheck()); - fn_80036BC8(); - mgSeqOvlPrev = -1; - seqLanguage = GWLanguageGet(); + s32 i; + SeqWork *work; + work = &seqWorkData[0]; + for (i = 8; i != 0; i--, work++) { + work->seq_no = 0; + work->data = NULL; + } + seqPauseF = 0; + seqDoneF = 0; + lbl_801D3D94 = 0; + seqTimer = 30; + HuAR_DVDtoARAM(DATADIR_GAMEMES); + HuAR_DVDtoARAM(DATADIR_MGCONST); + while (HuARDMACheck()) + ; + fn_80036BC8(); + mgSeqOvlPrev = -1; + seqLanguage = GWLanguageGet(); } void MGSeqMain(void) { - SeqInfo *info; - s32 i; - s32 j; - s32 alive_flag; - u8 stat; - SeqWork *work; - - seqSpeed = HuSysVWaitGet(seqSpeed); - if(Hu3DPauseF) { - return; - } - alive_flag = 0; - stat = 0; - work = &seqWorkData[0]; - for(i=0; i<8; i++, work++) { - if(work->stat == 0) { - continue; - } - if(work->update) { - alive_flag = work->update(work); - } else { - info = &seqInfoTbl[work->seq_no]; - if(work->seq_no != 0 && NULL != info->update) { - alive_flag = info->update(work); - } - } - if(!alive_flag) { - work->stat = 0; - if(!lbl_801D3D94) { - for(j=0; j<8; j++) { - if(seqWorkData[j].stat) { - break; - } - } - } - if(!work->data) { - HuMemDirectFree(work->data); - work->data = NULL; - } - } - stat |= work->stat; - } - if(!stat || stat & 0x4) { - if(seqTimer > 0) { - seqTimer -= seqSpeed; - } - } + SeqInfo *info; + s32 i; + s32 j; + s32 alive_flag; + u8 stat; + SeqWork *work; + + seqSpeed = HuSysVWaitGet(seqSpeed); + if (Hu3DPauseF) { + return; + } + alive_flag = 0; + stat = 0; + work = &seqWorkData[0]; + for (i = 0; i < 8; i++, work++) { + if (work->stat == 0) { + continue; + } + if (work->update) { + alive_flag = work->update(work); + } + else { + info = &seqInfoTbl[work->seq_no]; + if (work->seq_no != 0 && NULL != info->update) { + alive_flag = info->update(work); + } + } + if (!alive_flag) { + work->stat = 0; + if (!lbl_801D3D94) { + for (j = 0; j < 8; j++) { + if (seqWorkData[j].stat) { + break; + } + } + } + if (!work->data) { + HuMemDirectFree(work->data); + work->data = NULL; + } + } + stat |= work->stat; + } + if (!stat || stat & 0x4) { + if (seqTimer > 0) { + seqTimer -= seqSpeed; + } + } } static s16 CreateSeq(s16 seq_no, va_list params) { - SeqWork *work; - SeqInfo *info; - s32 i; - s32 temp; - work = seqWorkData; - info = &seqInfoTbl[(u8)seq_no]; - for(i=0; i<8; i++, work++) { - if(work->stat == 0) { - break; - } - } - if(i >= 8) { - return -1; - } - work->stat |= 0x1; - if(work->data) { - HuMemDirectFree(work->data); - } - work->data = NULL; - work->seq_no = (u8)seq_no; - work->time = 0; - work->x = info->x; - work->y = info->y; - work->scale_x = info->scale_x; - work->scale_y = info->scale_y; - work->unk_18 = 0.0f; - work->unk_7D = 255; - work->time_max = info->time_max; - work->timer_val = work->state = work->alt_word_len = work->word_len = 0; - work->angle = work->win_scale = 0.0f; - work->param[0] = work->param[1] = 0; - for(temp=0; temp<16; temp++) { - work->sprite[temp] = work->spr_grp[temp] = -1; - } - if(NULL != info->init) { - temp = info->init(work, params); - if(temp == 0) { - work->stat = 0; - return -1; - } - } - seqTimer = 30; - return i; + SeqWork *work; + SeqInfo *info; + s32 i; + s32 temp; + work = seqWorkData; + info = &seqInfoTbl[(u8)seq_no]; + for (i = 0; i < 8; i++, work++) { + if (work->stat == 0) { + break; + } + } + if (i >= 8) { + return -1; + } + work->stat |= 0x1; + if (work->data) { + HuMemDirectFree(work->data); + } + work->data = NULL; + work->seq_no = (u8)seq_no; + work->time = 0; + work->x = info->x; + work->y = info->y; + work->scale_x = info->scale_x; + work->scale_y = info->scale_y; + work->unk_18 = 0.0f; + work->unk_7D = 255; + work->time_max = info->time_max; + work->timer_val = work->state = work->alt_word_len = work->word_len = 0; + work->angle = work->win_scale = 0.0f; + work->param[0] = work->param[1] = 0; + for (temp = 0; temp < 16; temp++) { + work->sprite[temp] = work->spr_grp[temp] = -1; + } + if (NULL != info->init) { + temp = info->init(work, params); + if (temp == 0) { + work->stat = 0; + return -1; + } + } + seqTimer = 30; + return i; } s16 MGSeqCreate(s16 type, ...) { - s16 ret; - va_list params; - va_start(params, type); - if(type == MG_SEQ_TYPE_AUTO) { - if(GWSystem.mg_next == 0xFFFF) { - type = MG_SEQ_TYPE_4P; - } else { - type = mgSeqTypeTbl[mgInfoTbl[GWSystem.mg_next].type]; - } - } - ret = CreateSeq(type, params); - va_end(params); - return ret; + s16 ret; + va_list params; + va_start(params, type); + if (type == MG_SEQ_TYPE_AUTO) { + if (GWSystem.mg_next == 0xFFFF) { + type = MG_SEQ_TYPE_4P; + } + else { + type = mgSeqTypeTbl[mgInfoTbl[GWSystem.mg_next].type]; + } + } + ret = CreateSeq(type, params); + va_end(params); + return ret; } u8 MGSeqStatGet(s16 id) { - SeqWork *work; - u8 ret = 0; - if(id < 0) { - s32 i; - work = seqWorkData; - for(i=8; i != 0; i--, work++) { - ret |= work->stat; - } - } else { - if(id < 8) { - ret = seqWorkData[id].stat; - } - } - return ret; + SeqWork *work; + u8 ret = 0; + if (id < 0) { + s32 i; + work = seqWorkData; + for (i = 8; i != 0; i--, work++) { + ret |= work->stat; + } + } + else { + if (id < 8) { + ret = seqWorkData[id].stat; + } + } + return ret; } void MGSeqPosSet(s16 id, float x, float y) { - if(id >= 0 && id < 8) { - seqWorkData[id].x = x; - seqWorkData[id].y = y; - } + if (id >= 0 && id < 8) { + seqWorkData[id].x = x; + seqWorkData[id].y = y; + } } void MGSeqParamSet(s16 id, s16 param1, s16 param2) { - if(id >= 0 && id < 8) { - seqWorkData[id].param[0] = param1; - seqWorkData[id].param[1] = param2; - } + if (id >= 0 && id < 8) { + seqWorkData[id].param[0] = param1; + seqWorkData[id].param[1] = param2; + } } void MGSeqKill(s16 id) { - if(id >= 0 && id < 8) { - if(seqWorkData[id].stat != 0) { - seqWorkData[id].stat = 8; - } - } + if (id >= 0 && id < 8) { + if (seqWorkData[id].stat != 0) { + seqWorkData[id].stat = 8; + } + } } void MGSeqKillAll(void) { - seqDoneF = 1; - MGSeqMain(); - seqDoneF = 0; - MGSeqStub(); - lbl_801D3D94 = 0; + seqDoneF = 1; + MGSeqMain(); + seqDoneF = 0; + MGSeqStub(); + lbl_801D3D94 = 0; } s32 MGSeqDoneCheck(void) { - u8 stat = MGSeqStatGet(-1); - if(stat == 0 || (stat & 0xC)) { - if(seqTimer <= 0 || (stat & 0x8)) { - return 1; - } - } - return 0; + u8 stat = MGSeqStatGet(-1); + if (stat == 0 || (stat & 0xC)) { + if (seqTimer <= 0 || (stat & 0x8)) { + return 1; + } + } + return 0; } -void MGSeqStub(void) -{ - -} +void MGSeqStub(void) { } void MGSeqSprKill(SeqWork *work) { - s32 i; - for(i=0; i<16; i++) { - if(work->spr_grp[i] >= 0) { - HuSprGrpKill(work->spr_grp[i]); - } - if(work->sprite[i] >= 0) { - HuSprKill(work->sprite[i]); - } - } + s32 i; + for (i = 0; i < 16; i++) { + if (work->spr_grp[i] >= 0) { + HuSprGrpKill(work->spr_grp[i]); + } + if (work->sprite[i] >= 0) { + HuSprKill(work->sprite[i]); + } + } } static void *SeqReadFile(s32 file) { - return HuAR_ARAMtoMRAMFileRead(file, MEMORY_DEFAULT_NUM, HEAP_DATA); + return HuAR_ARAMtoMRAMFileRead(file, MEMORY_DEFAULT_NUM, HEAP_DATA); } static s32 SeqInitTimer(SeqWork *work, va_list params) { - AnimData *spr_anim; - s16 sprite; - s16 spr_grp; - int duration, x, y; - s16 i; - - duration = va_arg(params, int); - x = va_arg(params, int); - y = va_arg(params, int); - if(duration <= 0 && duration > 99) { - duration = 99; - } - work->timer_val = duration; - if(x >= 0) { - work->x = x; - } - if(y >= 0) { - work->y = y; - } - work->alt_word_len = 0; - work->state = 2; - work->angle = 0; - work->spr_grp[0] = spr_grp = HuSprGrpCreate(4); - HuSprGrpScaleSet(spr_grp, work->scale_x, work->scale_y); - spr_anim = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 2))); - x = 12; - for(i=0; i<2; i++) { - sprite = HuSprCreate(spr_anim, 5, 0); - HuSprGrpMemberSet(spr_grp, i, sprite); - HuSprSpeedSet(spr_grp, i, 0); - HuSprPosSet(spr_grp, i, x, 0); - HuSprColorSet(spr_grp, i, 112, 233, 255); - x -= 24; - (void)i; //Hack for Matching - } - spr_anim = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 1))); - sprite = HuSprCreate(spr_anim, 7, 0); - HuSprGrpMemberSet(spr_grp, 2, sprite); - HuSprPosSet(spr_grp, 2, 0, 0); - HuSprTPLvlSet(spr_grp, 2, 0.5f); - HuSprColorSet(spr_grp, 2, 0, 0, 0); - spr_anim = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 0))); - sprite = HuSprCreate(spr_anim, 6, 0); - HuSprGrpMemberSet(spr_grp, 3, sprite); - HuSprPosSet(spr_grp, 3, 0, 0); - if(seqPauseF) { - work->state = 1; - for(i=0; i<2; i++) { - HuSprAttrSet(spr_grp, i, HUSPR_ATTR_DISPOFF); - (void)i; //Hack for Matching - } - } - return 1; + AnimData *spr_anim; + s16 sprite; + s16 spr_grp; + int duration, x, y; + s16 i; + + duration = va_arg(params, int); + x = va_arg(params, int); + y = va_arg(params, int); + if (duration <= 0 && duration > 99) { + duration = 99; + } + work->timer_val = duration; + if (x >= 0) { + work->x = x; + } + if (y >= 0) { + work->y = y; + } + work->alt_word_len = 0; + work->state = 2; + work->angle = 0; + work->spr_grp[0] = spr_grp = HuSprGrpCreate(4); + HuSprGrpScaleSet(spr_grp, work->scale_x, work->scale_y); + spr_anim = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 2))); + x = 12; + for (i = 0; i < 2; i++) { + sprite = HuSprCreate(spr_anim, 5, 0); + HuSprGrpMemberSet(spr_grp, i, sprite); + HuSprSpeedSet(spr_grp, i, 0); + HuSprPosSet(spr_grp, i, x, 0); + HuSprColorSet(spr_grp, i, 112, 233, 255); + x -= 24; + (void)i; // Hack for Matching + } + spr_anim = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 1))); + sprite = HuSprCreate(spr_anim, 7, 0); + HuSprGrpMemberSet(spr_grp, 2, sprite); + HuSprPosSet(spr_grp, 2, 0, 0); + HuSprTPLvlSet(spr_grp, 2, 0.5f); + HuSprColorSet(spr_grp, 2, 0, 0, 0); + spr_anim = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 0))); + sprite = HuSprCreate(spr_anim, 6, 0); + HuSprGrpMemberSet(spr_grp, 3, sprite); + HuSprPosSet(spr_grp, 3, 0, 0); + if (seqPauseF) { + work->state = 1; + for (i = 0; i < 2; i++) { + HuSprAttrSet(spr_grp, i, HUSPR_ATTR_DISPOFF); +#if VERSION_NTSC + //(void)i; //Hack for Matching +#endif + } + } +#if VERSION_PAL + HuSprGrpPosSet(spr_grp, -1000.0f, 0.0f); +#endif + return 1; } static s32 SeqUpdateTimer(SeqWork *work) { - float scale; - float tp_lvl; - u8 digits[2]; - s16 i; - s16 spr_grp = work->spr_grp[0]; - if(work->param[0] != 0 && work->state != -1) { - switch(work->param[0]) { - case 2: - switch(work->param[1]) { - case -1: - work->stat |= 0x4; - work->state = -1; - work->angle = 0.0f; - break; - - case 0: - work->state = 2; - work->angle = 0.0f; - break; - - case 1: - work->state = 3; - work->angle = 0.0f; - break; - - default: - break; - } - work->param[0] = 0; - break; - - case 1: - if(work->param[1] < 0 && !(work->stat & 0x4)) { - work->stat |= 0x4; - work->state = -1; - work->angle = 0.0f; - } else { - if(work->param[1] > 99) { - work->timer_val = 99; - } else { - if(work->timer_val != work->param[1]) { - work->timer_val = work->param[1]; - if(work->param[1] <= 5) { - HuAudFXPlay(6); - work->state = 3; - work->angle = 0.0f; - HuSprColorSet(spr_grp, 0, 255, 112, 160); - HuSprColorSet(spr_grp, 1, 255, 112, 160); - } else { - HuSprColorSet(spr_grp, 0, 112, 233, 255); - HuSprColorSet(spr_grp, 1, 112, 233, 255); - } - } - } - } - work->param[0] = 0; - break; - - case 3: - for(i=0; i<2; i++) { - HuSprAttrReset(spr_grp, i, HUSPR_ATTR_DISPOFF); - } - work->state = 3; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->state == 1) { - return 1; - } - if(work->timer_val > 99) { - digits[0] = digits[1] = 9; - } else { - s32 value; - value = work->timer_val/10; - digits[1] = value; - digits[0] = work->timer_val-(value*10); - } - HuSprGrpPosSet(spr_grp, work->x, work->y); - HuSprGrpScaleSet(spr_grp, work->scale_x, work->scale_y); - for(i=0; i<2; i++) { - HuSprBankSet(spr_grp, i, digits[i]); - } - if(work->state != 0) { - switch(work->state) { - case 2: - { - float scale_x, scale_y; - scale = fabs(((sin((work->angle*M_PI)/180)*5.0f)+1.0f)-(sin((130*M_PI)/180)*5.0f)); - scale_x = work->scale_x*scale; - scale_y = work->scale_y*scale; - work->angle += seqSpeed*5.0f; - if(work->angle > 130.0f) { - work->state = 0; - break; - } - HuSprGrpScaleSet(spr_grp, scale_x, scale_y); - } - break; - - case 3: - { - scale = sin((work->angle*M_PI)/180)+1.0; - tp_lvl = 1.0-(sin((work->angle*M_PI)/180)*0.5); - work->angle += seqSpeed*18.0f; - if(work->angle > 180.0f) { - work->state = 0; - scale = 1.0f; - tp_lvl = 1.0f; - } - for(i=0; i<2; i++) { - HuSprScaleSet(spr_grp, i, scale, scale); - HuSprTPLvlSet(spr_grp, i, tp_lvl); - } - } - break; - - case -1: - HuSprGrpScaleSet(spr_grp, work->scale_x, work->scale_y); - for(i=0; i<2; i++) { - HuSprScaleSet(spr_grp, i, 1.0f, 1.0f); - } - work->angle += 1.0f; - if(work->angle < 60.0f) { - break; - } - tp_lvl = 1.0-((work->angle-60.0f)/20.0f); - if(tp_lvl <= 0.0f) { - tp_lvl = 0.0f; - work->state = 0; - work->stat |= 0x8; - } - - for(i=0; i<4; i++) { - HuSprTPLvlSet(spr_grp, i, tp_lvl); - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } else { - return 1; - } + float scale; + float tp_lvl; + u8 digits[2]; + s16 i; + s16 spr_grp = work->spr_grp[0]; + if (work->param[0] != 0 && work->state != -1) { + switch (work->param[0]) { + case 2: + switch (work->param[1]) { + case -1: + work->stat |= 0x4; + work->state = -1; + work->angle = 0.0f; + break; + + case 0: + work->state = 2; + work->angle = 0.0f; + break; + + case 1: + work->state = 3; + work->angle = 0.0f; + break; + + default: + break; + } + work->param[0] = 0; + break; + + case 1: + if (work->param[1] < 0 && !(work->stat & 0x4)) { + work->stat |= 0x4; + work->state = -1; + work->angle = 0.0f; + } + else { + if (work->param[1] > 99) { + work->timer_val = 99; + } + else { + if (work->timer_val != work->param[1]) { + work->timer_val = work->param[1]; + if (work->param[1] <= 5) { + HuAudFXPlay(6); + work->state = 3; + work->angle = 0.0f; + HuSprColorSet(spr_grp, 0, 255, 112, 160); + HuSprColorSet(spr_grp, 1, 255, 112, 160); + } + else { + HuSprColorSet(spr_grp, 0, 112, 233, 255); + HuSprColorSet(spr_grp, 1, 112, 233, 255); + } + } + } + } + work->param[0] = 0; + break; + + case 3: + for (i = 0; i < 2; i++) { + HuSprAttrReset(spr_grp, i, HUSPR_ATTR_DISPOFF); + } + work->state = 3; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + if (work->state == 1) { + return 1; + } + if (work->timer_val > 99) { + digits[0] = digits[1] = 9; + } + else { + s32 value; + value = work->timer_val / 10; + digits[1] = value; + digits[0] = work->timer_val - (value * 10); + } + HuSprGrpPosSet(spr_grp, work->x, work->y); + HuSprGrpScaleSet(spr_grp, work->scale_x, work->scale_y); + for (i = 0; i < 2; i++) { + HuSprBankSet(spr_grp, i, digits[i]); + } + if (work->state != 0) { + switch (work->state) { + case 2: { + float scale_x, scale_y; + scale = fabs(((sin((work->angle * M_PI) / 180) * 5.0f) + 1.0f) - (sin((130 * M_PI) / 180) * 5.0f)); + scale_x = work->scale_x * scale; + scale_y = work->scale_y * scale; + work->angle += seqSpeed * 5.0f; + if (work->angle > 130.0f) { + work->state = 0; + break; + } + HuSprGrpScaleSet(spr_grp, scale_x, scale_y); + } break; + + case 3: { + scale = sin((work->angle * M_PI) / 180) + 1.0; + tp_lvl = 1.0 - (sin((work->angle * M_PI) / 180) * 0.5); + work->angle += seqSpeed * 18.0f; + if (work->angle > 180.0f) { + work->state = 0; + scale = 1.0f; + tp_lvl = 1.0f; + } + for (i = 0; i < 2; i++) { + HuSprScaleSet(spr_grp, i, scale, scale); + HuSprTPLvlSet(spr_grp, i, tp_lvl); + } + } break; + + case -1: + HuSprGrpScaleSet(spr_grp, work->scale_x, work->scale_y); + for (i = 0; i < 2; i++) { + HuSprScaleSet(spr_grp, i, 1.0f, 1.0f); + } + work->angle += 1.0f; + if (work->angle < 60.0f) { + break; + } + tp_lvl = 1.0 - ((work->angle - 60.0f) / 20.0f); + if (tp_lvl <= 0.0f) { + tp_lvl = 0.0f; + work->state = 0; + work->stat |= 0x8; + } + + for (i = 0; i < 4; i++) { + HuSprTPLvlSet(spr_grp, i, tp_lvl); + } + break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + else { + return 1; + } } static s32 SeqInitType2(SeqWork *work, va_list params) { - s16 spr_idx; - s16 spr_grp; - AnimData *anim_tbl[6]; - s32 i; - s16 len; - char *str; - char c; - int time_max; - int x, y; - work->data = va_arg(params, void *); - time_max = va_arg(params, int); - x = va_arg(params, int); - y = va_arg(params, int); - if(time_max < 0) { - time_max = -1; - } - work->time_max = time_max; - if(x >= 0) { - work->x = x; - } - if(y >= 0) { - work->y = y; - } - work->state = 0; - work->angle = 0.0f; - x = 0; - len = 0; - str=work->data; - while(c=*str++) { - if(c >= '0' && c <= '9') { - x |= 1; - len++; - } else if(c >= 'A' && c <= 'Z') { - x |= 2; - len++; - } else if(c >= 'a' && c <= 'z') { - x |= 4; - len++; - } else if(c == '!' || c == '?') { - x |= 8; - len++; - } - } - work->word_len = len; - for(i=0; i<6; i++) { - if(x & (1 << i)) { - anim_tbl[i] = HuSprAnimRead(SeqReadFile(seqType2SprTbl[i])); - } else { - anim_tbl[i] = NULL; - } - } - work->spr_grp[0] = spr_grp = HuSprGrpCreate(len); - x = 0; - spr_idx = 0; - str=work->data; - while(c=*str++) { - i = -2; - if(c >= '0' && c <= '9') { - c -= '0'; - i = 0; - } else if(c >= 'A' && c <= 'Z') { - c -= 'A'; - i = 1; - } else if(c >= 'a' && c <= 'z') { - c -= 'a'; - i = 2; - } else if(c == '!' || c == '?') { - if(c == '!') { - c = 0; - } else { - c = 1; - } - i = 3; - } else if(c == ' ') { - i = -1; - } - work->alt_word_len = x; - if(i == -1) { - x += 32; - } else if(i >= 0) { - s16 sprite = HuSprCreate(anim_tbl[i], 5, c); - HuSprGrpMemberSet(spr_grp, spr_idx, sprite); - HuSprSpeedSet(spr_grp, spr_idx, 0.0f); - HuSprPosSet(spr_grp, spr_idx, x, 0.0f); - spr_idx++; - x += 64; - } - } - if(seqPauseF) { - work->state = 1; - for(i=0; iword_len; i++) { - HuSprAttrSet(spr_grp, i, HUSPR_ATTR_DISPOFF); - } - } - return 1; + s16 spr_idx; + s16 spr_grp; + AnimData *anim_tbl[6]; + s32 i; + s16 len; + char *str; + char c; + int time_max; + int x, y; + work->data = va_arg(params, void *); + time_max = va_arg(params, int); + x = va_arg(params, int); + y = va_arg(params, int); + if (time_max < 0) { + time_max = -1; + } + work->time_max = time_max; + if (x >= 0) { + work->x = x; + } + if (y >= 0) { + work->y = y; + } + work->state = 0; + work->angle = 0.0f; + x = 0; + len = 0; + str = work->data; + while (c = *str++) { + if (c >= '0' && c <= '9') { + x |= 1; + len++; + } + else if (c >= 'A' && c <= 'Z') { + x |= 2; + len++; + } + else if (c >= 'a' && c <= 'z') { + x |= 4; + len++; + } + else if (c == '!' || c == '?') { + x |= 8; + len++; + } + } + work->word_len = len; + for (i = 0; i < 6; i++) { + if (x & (1 << i)) { + anim_tbl[i] = HuSprAnimRead(SeqReadFile(seqType2SprTbl[i])); + } + else { + anim_tbl[i] = NULL; + } + } + work->spr_grp[0] = spr_grp = HuSprGrpCreate(len); + x = 0; + spr_idx = 0; + str = work->data; + while (c = *str++) { + i = -2; + if (c >= '0' && c <= '9') { + c -= '0'; + i = 0; + } + else if (c >= 'A' && c <= 'Z') { + c -= 'A'; + i = 1; + } + else if (c >= 'a' && c <= 'z') { + c -= 'a'; + i = 2; + } + else if (c == '!' || c == '?') { + if (c == '!') { + c = 0; + } + else { + c = 1; + } + i = 3; + } + else if (c == ' ') { + i = -1; + } + work->alt_word_len = x; + if (i == -1) { + x += 32; + } + else if (i >= 0) { + s16 sprite = HuSprCreate(anim_tbl[i], 5, c); + HuSprGrpMemberSet(spr_grp, spr_idx, sprite); + HuSprSpeedSet(spr_grp, spr_idx, 0.0f); + HuSprPosSet(spr_grp, spr_idx, x, 0.0f); + spr_idx++; + x += 64; + } + } + if (seqPauseF) { + work->state = 1; + for (i = 0; i < work->word_len; i++) { + HuSprAttrSet(spr_grp, i, HUSPR_ATTR_DISPOFF); + } + } + return 1; } static s32 SeqUpdateType2(SeqWork *work) { - float tp_lvl; - s16 spr_grp; - spr_grp = work->spr_grp[0]; - HuSprGrpPosSet(spr_grp, work->x-((0.5f*work->scale_x)*work->alt_word_len), work->y); - HuSprGrpScaleSet(spr_grp, work->scale_x, work->scale_y); - if(work->param[0] != 0 && work->state != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->state = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - { - s32 i; - for(i=0; iword_len; i++) { - HuSprAttrReset(spr_grp, i, HUSPR_ATTR_DISPOFF); - (void)i; - } - work->state = 0; - work->param[0] = 0; - } - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->state == 1) { - return 1; - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->state != -1) { - work->stat |= 0x4; - work->state = -1; - work->angle = 0.0f; - } - if(work->state != 0) { - if(work->state != -1) { - (void)work; //HACK: to introduce extra branch - } else { - s16 i; - work->angle += seqSpeed*0.1f; - tp_lvl = 1.0f-work->angle; - if(tp_lvl <= 0.0f) { - tp_lvl = 0.0f; - work->state = 0; - work->stat |= 0x8; - } - for(i=0; iword_len; i++) { - HuSprTPLvlSet(spr_grp, i, tp_lvl); - (void)i; - } - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } else { - return 1; - } + float tp_lvl; + s16 spr_grp; + spr_grp = work->spr_grp[0]; + HuSprGrpPosSet(spr_grp, work->x - ((0.5f * work->scale_x) * work->alt_word_len), work->y); + HuSprGrpScaleSet(spr_grp, work->scale_x, work->scale_y); + if (work->param[0] != 0 && work->state != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->state = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: { + s32 i; + for (i = 0; i < work->word_len; i++) { + HuSprAttrReset(spr_grp, i, HUSPR_ATTR_DISPOFF); + (void)i; + } + work->state = 0; + work->param[0] = 0; + } break; + + default: + work->param[0] = 0; + break; + } + } + if (work->state == 1) { + return 1; + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->state != -1) { + work->stat |= 0x4; + work->state = -1; + work->angle = 0.0f; + } + if (work->state != 0) { + if (work->state != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + s16 i; + work->angle += seqSpeed * 0.1f; + tp_lvl = 1.0f - work->angle; + if (tp_lvl <= 0.0f) { + tp_lvl = 0.0f; + work->state = 0; + work->stat |= 0x8; + } + for (i = 0; i < work->word_len; i++) { + HuSprTPLvlSet(spr_grp, i, tp_lvl); + (void)i; + } + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + else { + return 1; + } } +static char seqFontAlphaTbl[] = { "ABCDEFGH" + "IJKLMNOP" + "QRSTUVWX" + "YZabcdef" + "ghijklmn" + "opqrstuv" + "wxyz" }; -static char seqFontAlphaTbl[] = { - "ABCDEFGH" - "IJKLMNOP" - "QRSTUVWX" - "YZabcdef" - "ghijklmn" - "opqrstuv" - "wxyz" -}; - -static char seqFontKanaTbl[] = { - "アイウエオカキク" - "ケコサシスセソタ" - "チツテトナニヌネ" - "ノハヒフヘホマミ" - "ムメモヤユヨラリ" - "ルレロワヲンァィ" - "ゥェォャュョッカ" - "キクケコサシスセ" - "ソタチツテトハヒ" - "フヘホハヒフヘホ" - "ー" -}; +static char seqFontKanaTbl[] = { "アイウエオカキク" + "ケコサシスセソタ" + "チツテトナニヌネ" + "ノハヒフヘホマミ" + "ムメモヤユヨラリ" + "ルレロワヲンァィ" + "ゥェォャュョッカ" + "キクケコサシスセ" + "ソタチツテトハヒ" + "フヘホハヒフヘホ" + "ー" }; static char seqFontNumTbl[] = "0123456789"; -static s32 *letterBufTbl[5] = { }; +static s32 *letterBufTbl[5] = {}; static char wordStartE[] = "START!"; @@ -783,2772 +782,2786 @@ static char wordFinishE[] = "FINISH!"; static char wordDrawE[] = "DRAW!"; static char *wordMgTbl[6] = { - wordStartJ, wordFinishJ, wordDrawJ, - wordStartE, wordFinishE, wordDrawE, + wordStartJ, + wordFinishJ, + wordDrawJ, + wordStartE, + wordFinishE, + wordDrawE, }; void fn_80036BC8(void) { - if(!letterBufTbl[0]) { - letterBufTbl[0] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32)*strlen(seqFontAlphaTbl)); - memset(letterBufTbl[0], 0, sizeof(s32)*strlen(seqFontAlphaTbl)); - } - if(!letterBufTbl[1]) { - letterBufTbl[1] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32)*strlen(seqFontKanaTbl)); - memset(letterBufTbl[1], 0, sizeof(s32)*strlen(seqFontKanaTbl)); - } - if(!letterBufTbl[2]) { - letterBufTbl[2] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32)*strlen(seqFontKanaTbl)); - memset(letterBufTbl[2], 0, sizeof(s32)*strlen(seqFontKanaTbl)); - } - if(!letterBufTbl[3]) { - letterBufTbl[3] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32)*strlen(seqFontNumTbl)); - memset(letterBufTbl[3], 0, sizeof(s32)*strlen(seqFontNumTbl)); - } - if(!letterBufTbl[4]) { - letterBufTbl[4] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32)*strlen(seqPunctTbl)); - memset(letterBufTbl[4], 0, sizeof(s32)*strlen(seqPunctTbl)); - } + if (!letterBufTbl[0]) { + letterBufTbl[0] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32) * strlen(seqFontAlphaTbl)); + memset(letterBufTbl[0], 0, sizeof(s32) * strlen(seqFontAlphaTbl)); + } + if (!letterBufTbl[1]) { + letterBufTbl[1] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32) * strlen(seqFontKanaTbl)); + memset(letterBufTbl[1], 0, sizeof(s32) * strlen(seqFontKanaTbl)); + } + if (!letterBufTbl[2]) { + letterBufTbl[2] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32) * strlen(seqFontKanaTbl)); + memset(letterBufTbl[2], 0, sizeof(s32) * strlen(seqFontKanaTbl)); + } + if (!letterBufTbl[3]) { + letterBufTbl[3] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32) * strlen(seqFontNumTbl)); + memset(letterBufTbl[3], 0, sizeof(s32) * strlen(seqFontNumTbl)); + } + if (!letterBufTbl[4]) { + letterBufTbl[4] = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s32) * strlen(seqPunctTbl)); + memset(letterBufTbl[4], 0, sizeof(s32) * strlen(seqPunctTbl)); + } } static AnimData *SeqLoadFontChar(char *str, s16 flags); static s32 SeqMakeWord(SeqWork *work, char *str, s16 flags) { - s16 *char_pos; - char *str_ptr; - s16 spr_grp; - s16 i; - s16 x; - s16 grp_idx; - s16 len; - AnimData **char_anim; - for(grp_idx=0; grp_idx<16; grp_idx++) { - if(work->spr_grp[grp_idx] == -1) { - break; - } - } - if(grp_idx == 16) { - return -1; - } - char_anim = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(AnimData *)*100); - char_pos = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s16)*100); - str_ptr = str; - x = 0; - len = 0; - while(*str_ptr != 0) { - char_anim[len] = SeqLoadFontChar(str_ptr, flags); - if(char_anim[len]) { - char_pos[len] = x; - x += 56; - len++; - } - str_ptr++; - } - work->spr_grp[grp_idx] = spr_grp = HuSprGrpCreate(len); - x = (x/2)-28; - for(i=0; iword_len = len; - HuMemDirectFree(char_anim); - HuMemDirectFree(char_pos); - return grp_idx; + s16 *char_pos; + char *str_ptr; + s16 spr_grp; + s16 i; + s16 x; + s16 grp_idx; + s16 len; + AnimData **char_anim; + for (grp_idx = 0; grp_idx < 16; grp_idx++) { + if (work->spr_grp[grp_idx] == -1) { + break; + } + } + if (grp_idx == 16) { + return -1; + } + char_anim = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(AnimData *) * 100); + char_pos = HuMemDirectMalloc(HEAP_SYSTEM, sizeof(s16) * 100); + str_ptr = str; + x = 0; + len = 0; + while (*str_ptr != 0) { + char_anim[len] = SeqLoadFontChar(str_ptr, flags); + if (char_anim[len]) { + char_pos[len] = x; + x += 56; + len++; + } + str_ptr++; + } + work->spr_grp[grp_idx] = spr_grp = HuSprGrpCreate(len); + x = (x / 2) - 28; + for (i = 0; i < len; i++) { + s16 sprite = HuSprCreate(char_anim[i], 5, 0); + HuSprGrpMemberSet(spr_grp, i, sprite); + HuSprPosSet(spr_grp, i, char_pos[i] - x, 0.0f); + } + work->word_len = len; + HuMemDirectFree(char_anim); + HuMemDirectFree(char_pos); + return grp_idx; } static AnimData *SeqLoadFontChar(char *str, s16 flags) { - s32 data_num; - s16 id; - char *list; - char c = *str; - if(c == 222 || c == 223) { - return NULL; - } - if(c == 32) { - return HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 10))); - } - for(id = 0, list=seqFontAlphaTbl; *list != 0; id++, list++) { - if(*list == c) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id+21); - return HuSprAnimRead(SeqReadFile(data_num)); - } - } - for(id = 0, list=seqFontNumTbl; *list != 0; id++, list++) { - if(*list == c) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id+11); - return HuSprAnimRead(SeqReadFile(data_num)); - } - } - for(id = 0, list=seqPunctTbl; *list != 0; id++, list++) { - if(*list == c) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id+154); - return HuSprAnimRead(SeqReadFile(data_num)); - } - } - if(str[1] == 222) { //゛ - list = seqFontKanaTbl; - list += 55; - id = 55; - } else if(str[1] == 223) { //゜ - list = seqFontKanaTbl; - list += 75; - id = 75; - } else { - list = seqFontKanaTbl; - id = 0; - } - while(*list != 0) { - if(*list == c) { - if(flags & 0x1) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id+156); - } else { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id+73); - } - return HuSprAnimRead(SeqReadFile(data_num)); - } - id++; - list++; - } - return NULL; + s32 data_num; + s16 id; + char *list; + char c = *str; + if (c == 222 || c == 223) { + return NULL; + } + if (c == 32) { + return HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 10))); + } + for (id = 0, list = seqFontAlphaTbl; *list != 0; id++, list++) { + if (*list == c) { + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + 21); + return HuSprAnimRead(SeqReadFile(data_num)); + } + } + for (id = 0, list = seqFontNumTbl; *list != 0; id++, list++) { + if (*list == c) { + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + 11); + return HuSprAnimRead(SeqReadFile(data_num)); + } + } + for (id = 0, list = seqPunctTbl; *list != 0; id++, list++) { + if (*list == c) { + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + 154); + return HuSprAnimRead(SeqReadFile(data_num)); + } + } + if (str[1] == 222) { // ゛ + list = seqFontKanaTbl; + list += 55; + id = 55; + } + else if (str[1] == 223) { // ゜ + list = seqFontKanaTbl; + list += 75; + id = 75; + } + else { + list = seqFontKanaTbl; + id = 0; + } + while (*list != 0) { + if (*list == c) { + if (flags & 0x1) { + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + 156); + } + else { + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + 73); + } + return HuSprAnimRead(SeqReadFile(data_num)); + } + id++; + list++; + } + return NULL; } static float ForceDefine480() { - return 480.0f; + return 480.0f; } static void SeqPlayStartFX(void); static s32 SeqInitMGBasic(SeqWork *work, va_list params) { - s16 i; - s16 word_grp; - - work->state = va_arg(params, int); - if(work->state == 2) { - return SeqInitDraw(work, params); - } - work->type = 0; - work->angle = 0; - - { - s32 word_katakana; - s32 word_flag; - s32 word_ofs; - word_katakana = 0; - if(work->state == 2 && seqLanguage == 0) { - word_katakana = 1; - } - if(word_katakana) { - word_flag = 1; - } else { - word_flag = 0; - } - if(seqLanguage == 0) { - word_ofs = 0; - } else { - word_ofs = 3; - } - word_grp = SeqMakeWord(work, wordMgTbl[work->state+word_ofs], word_flag); - } - HuSprGrpPosSet(work->spr_grp[word_grp], 0.0f, 0.0f); - - for(i=0; iword_len; i++) { - HuSprTPLvlSet(work->spr_grp[word_grp], i, 1.0f); - HuSprPosSet(work->spr_grp[word_grp], i, -100.0f, HU_DISP_CENTERY); - } - if(seqPauseF) { - work->type = 2; - HuSprAttrSet(word_grp, 0, HUSPR_ATTR_DISPOFF); - } else { - work->param[0] = 3; - } - return 1; + s16 i; + s16 word_grp; + + work->state = va_arg(params, int); + if (work->state == 2) { + return SeqInitDraw(work, params); + } + work->type = 0; + work->angle = 0; + + { + s32 word_katakana; + s32 word_flag; + s32 word_ofs; + word_katakana = 0; + if (work->state == 2 && seqLanguage == 0) { + word_katakana = 1; + } + if (word_katakana) { + word_flag = 1; + } + else { + word_flag = 0; + } + if (seqLanguage == 0) { + word_ofs = 0; + } + else { + word_ofs = 3; + } + word_grp = SeqMakeWord(work, wordMgTbl[work->state + word_ofs], word_flag); + } + HuSprGrpPosSet(work->spr_grp[word_grp], 0.0f, 0.0f); + + for (i = 0; i < work->word_len; i++) { + HuSprTPLvlSet(work->spr_grp[word_grp], i, 1.0f); + HuSprPosSet(work->spr_grp[word_grp], i, -100.0f, HU_DISP_CENTERY); + } + if (seqPauseF) { + work->type = 2; + HuSprAttrSet(word_grp, 0, HUSPR_ATTR_DISPOFF); + } + else { + work->param[0] = 3; + } + return 1; } static s32 SeqUpdateMGBasic(SeqWork *work) { - s16 idx; - float scale; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->type == 2) { - return 1; - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - float pos_x; - float time; - s16 i; - if(work->state == 0) { - if(work->time <= 40) { - for(i=0; iword_len; i++) { - time = work->time-((20/work->word_len)*(work->word_len-i-1)); - if(time < 0 || time > 20.0f) { - continue; - } - pos_x = (work->x-(0.5f*(work->word_len*56)))+28.0f+(i*56); - if(time == 20.0f) { - HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); - HuSprZRotSet(work->spr_grp[0], i, 0.0f); - } else { - HuSprPosSet(work->spr_grp[0], i, pos_x-(((1.0-sin(((time*4.5f)*M_PI)/180.0))*(work->word_len*56*2))), work->y); - HuSprZRotSet(work->spr_grp[0], i, (time/20.0f)*390.0f); - } - } - } else { - time = work->time-40; - scale = work->scale_x+(0.5*sin(((time*9.0f)*M_PI)/180.0)); - for(i=0; iword_len; i++) { - pos_x = ((28.0f*scale)+(work->x-(0.5f*(scale*(work->word_len*56)))))+(scale*(i*56)); - HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], i, scale, work->scale_y+sin(((time*9.0f)*M_PI)/180.0)); - } - } - if(work->time == 40) { - idx = HuAudFXPlay(36); - work->stat |= 0x10; - } - if(work->time == 60) { - SeqPlayStartFX(); - work->stat |= 0x4; - } - if(work->time >= 60) { - work->type = 0; - } - } else { - if(work->time == 1) { - if(work->state == 1) { - HuAudFXPlay(37); - } else { - HuAudFXPlay(40); - } - MGSeqPauseEnableCtrl(0); - work->stat |= 0x10; - } - if(work->time <= 20) { - time = work->time; - scale = work->scale_x+(0.5*sin(((time*9.0f)*M_PI)/180.0)); - for(i=0; iword_len; i++) { - HuSprAttrReset(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); - pos_x = ((28.0f*scale)+(work->x-(0.5f*(scale*(work->word_len*56)))))+(scale*(i*56)); - HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], i, work->scale_x+sin(((time*9.0f)*M_PI)/180.0), work->scale_y+sin(((time*9.0f)*M_PI)/180.0)); - } - if(time == 20.0f) { - for(i=0; iword_len; i++) { - HuSprAttrReset(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); - } - } - } else { - if(work->time > 80) { - for(i=0; iword_len; i++) { - time = (work->time-80)-((20/work->word_len)*(work->word_len-i-1)); - if(time < 0.0f || time > 20.0f) { - continue; - } - pos_x = (28.0f+(work->x-(0.5f*(work->word_len*56))))+(i*56); - if(time == 20.0f) { - HuSprAttrSet(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); - } else { - HuSprPosSet(work->spr_grp[0], i, pos_x+((1.0-cos(((time*4.5f)*M_PI)/180.0f))*(work->word_len*56*2)), work->y); - HuSprZRotSet(work->spr_grp[0], i, (time/20.0f)*390.0f); - } - } - } - } - if(work->time == 110) { - work->stat |= 0x4; - } - if(work->time >= 110) { - work->type = 0; - work->stat |= 8; - } - } - } - break; - - case -1: - { - work->angle += seqSpeed*0.1f; - scale = 1.0f-work->angle; - if(scale <= 0.0f) { - scale = 0.0f; - work->type = 0; - work->stat |= 0x8; - if(work->state == 0) { - MGSeqPauseEnableCtrl(1); - } - } - for(idx=0; idxword_len; idx++) { - HuSprTPLvlSet(work->spr_grp[0], idx, scale); - } - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 idx; + float scale; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + if (work->type == 2) { + return 1; + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + float pos_x; + float time; + s16 i; + if (work->state == 0) { + if (work->time <= 40) { + for (i = 0; i < work->word_len; i++) { + time = work->time - ((20 / work->word_len) * (work->word_len - i - 1)); + if (time < 0 || time > 20.0f) { + continue; + } + pos_x = (work->x - (0.5f * (work->word_len * 56))) + 28.0f + (i * 56); + if (time == 20.0f) { + HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); + HuSprZRotSet(work->spr_grp[0], i, 0.0f); + } + else { + HuSprPosSet(work->spr_grp[0], i, pos_x - (((1.0 - sin(((time * 4.5f) * M_PI) / 180.0)) * (work->word_len * 56 * 2))), + work->y); + HuSprZRotSet(work->spr_grp[0], i, (time / 20.0f) * 390.0f); + } + } + } + else { + time = work->time - 40; + scale = work->scale_x + (0.5 * sin(((time * 9.0f) * M_PI) / 180.0)); + for (i = 0; i < work->word_len; i++) { + pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (i * 56)); + HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], i, scale, work->scale_y + sin(((time * 9.0f) * M_PI) / 180.0)); + } + } + if (work->time == 40) { + idx = HuAudFXPlay(36); + work->stat |= 0x10; + } + if (work->time == 60) { + SeqPlayStartFX(); + work->stat |= 0x4; + } + if (work->time >= 60) { + work->type = 0; + } + } + else { + if (work->time == 1) { + if (work->state == 1) { + HuAudFXPlay(37); + } + else { + HuAudFXPlay(40); + } + MGSeqPauseEnableCtrl(0); + work->stat |= 0x10; + } + if (work->time <= 20) { + time = work->time; + scale = work->scale_x + (0.5 * sin(((time * 9.0f) * M_PI) / 180.0)); + for (i = 0; i < work->word_len; i++) { + HuSprAttrReset(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); + pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (i * 56)); + HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], i, work->scale_x + sin(((time * 9.0f) * M_PI) / 180.0), + work->scale_y + sin(((time * 9.0f) * M_PI) / 180.0)); + } + if (time == 20.0f) { + for (i = 0; i < work->word_len; i++) { + HuSprAttrReset(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); + } + } + } + else { + if (work->time > 80) { + for (i = 0; i < work->word_len; i++) { + time = (work->time - 80) - ((20 / work->word_len) * (work->word_len - i - 1)); + if (time < 0.0f || time > 20.0f) { + continue; + } + pos_x = (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + (i * 56); + if (time == 20.0f) { + HuSprAttrSet(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); + } + else { + HuSprPosSet(work->spr_grp[0], i, + pos_x + ((1.0 - cos(((time * 4.5f) * M_PI) / 180.0f)) * (work->word_len * 56 * 2)), work->y); + HuSprZRotSet(work->spr_grp[0], i, (time / 20.0f) * 390.0f); + } + } + } + } + if (work->time == 110) { + work->stat |= 0x4; + } + if (work->time >= 110) { + work->type = 0; + work->stat |= 8; + } + } + } break; + + case -1: { + work->angle += seqSpeed * 0.1f; + scale = 1.0f - work->angle; + if (scale <= 0.0f) { + scale = 0.0f; + work->type = 0; + work->stat |= 0x8; + if (work->state == 0) { + MGSeqPauseEnableCtrl(1); + } + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[0], idx, scale); + } + } break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } static s32 SeqInitMGCommon(SeqWork *work, va_list params) { - s16 i; - float tp_lvl; - s16 j; - s16 word_grp; - - work->state = va_arg(params, int); - if(work->state == 2) { - return SeqInitDraw(work, params); - } - work->type = 0; - work->angle = 0; - tp_lvl = 1.0f; - for(i=0; i<4; i++) { - if(i == 0) - { - s32 word_katakana; - s32 word_flag; - s32 word_ofs; - word_katakana = 0; - if(work->state == 2 && seqLanguage == 0) { - word_katakana = 1; - } - if(word_katakana) { - word_flag = 1; - } else { - word_flag = 0; - } - if(seqLanguage == 0) { - word_ofs = 0; - } else { - word_ofs = 3; - } - word_grp = SeqMakeWord(work, wordMgTbl[work->state+word_ofs], word_flag); - } else { - s16 grp_idx; - s32 new_grp; - for(grp_idx=0; grp_idx<16; grp_idx++) { - if(work->spr_grp[grp_idx] == -1) { - break; - } - } - if(grp_idx == 16) { - new_grp = -1; - } else { - work->spr_grp[grp_idx] = HuSprGrpCopy(work->spr_grp[word_grp]); - new_grp = grp_idx; - } - (void)new_grp; - word_grp = new_grp; - } - HuSprGrpPosSet(work->spr_grp[word_grp], 0.0f, 0.0f); - for(j=0; jword_len; j++) { - HuSprTPLvlSet(work->spr_grp[word_grp], j, tp_lvl); - HuSprPosSet(work->spr_grp[word_grp], j, -100.0f, HU_DISP_CENTERY); - HuSprPriSet(work->spr_grp[word_grp], j, i+5); - HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); - } - if(i == 0) { - tp_lvl -= 0.5; - } else { - tp_lvl -= 0.1f; - } - } - if(seqPauseF) { - work->type = 2; - HuSprAttrSet(word_grp, 0, HUSPR_ATTR_DISPOFF); - } else { - work->param[0] = 3; - } - return 1; + s16 i; + float tp_lvl; + s16 j; + s16 word_grp; + + work->state = va_arg(params, int); + if (work->state == 2) { + return SeqInitDraw(work, params); + } + work->type = 0; + work->angle = 0; + tp_lvl = 1.0f; + for (i = 0; i < 4; i++) { + if (i == 0) { + s32 word_katakana; + s32 word_flag; + s32 word_ofs; + word_katakana = 0; + if (work->state == 2 && seqLanguage == 0) { + word_katakana = 1; + } + if (word_katakana) { + word_flag = 1; + } + else { + word_flag = 0; + } + if (seqLanguage == 0) { + word_ofs = 0; + } + else { + word_ofs = 3; + } + word_grp = SeqMakeWord(work, wordMgTbl[work->state + word_ofs], word_flag); + } + else { + s16 grp_idx; + s32 new_grp; + for (grp_idx = 0; grp_idx < 16; grp_idx++) { + if (work->spr_grp[grp_idx] == -1) { + break; + } + } + if (grp_idx == 16) { + new_grp = -1; + } + else { + work->spr_grp[grp_idx] = HuSprGrpCopy(work->spr_grp[word_grp]); + new_grp = grp_idx; + } + (void)new_grp; + word_grp = new_grp; + } + HuSprGrpPosSet(work->spr_grp[word_grp], 0.0f, 0.0f); + for (j = 0; j < work->word_len; j++) { + HuSprTPLvlSet(work->spr_grp[word_grp], j, tp_lvl); + HuSprPosSet(work->spr_grp[word_grp], j, -100.0f, HU_DISP_CENTERY); + HuSprPriSet(work->spr_grp[word_grp], j, i + 5); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + } + if (i == 0) { + tp_lvl -= 0.5; + } + else { + tp_lvl -= 0.1f; + } + } + if (seqPauseF) { + work->type = 2; + HuSprAttrSet(word_grp, 0, HUSPR_ATTR_DISPOFF); + } + else { + work->param[0] = 3; + } + return 1; } static s32 SeqUpdateMGBattle(SeqWork *work) { - s16 idx; - float scale; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->type == 2) { - return 1; - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - s16 i, j; - float time; - float pos_x; - if(work->state == 0) { - if(work->time < 45) { - if(work->time > 10 && work->time <= 40) { - time = work->time-10; - scale = 10.0f*(1.0f-(time/30.0f)); - pos_x = (work->x-(0.5f*(work->word_len*56)))+28.0f; - HuSprPosSet(work->spr_grp[0], 0, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], 0, work->scale_x+scale, work->scale_y+scale); - scale = time/30.0f; - HuSprTPLvlSet(work->spr_grp[0], 0, scale); - } - for(i=0; i<4; i++) { - time = work->time-i; - if(time < 0 || time > 40) { - continue; - } - for(j=1; jword_len; j++) { - pos_x = (28.0f+(work->x-(0.5f*(work->word_len*56))))+(j*56); - if(time == 40.0f) { - HuSprPosSet(work->spr_grp[i], j, pos_x, work->y); - HuSprZRotSet(work->spr_grp[i], j, 0.0f); - HuSprScaleSet(work->spr_grp[i], j, work->scale_x, work->scale_y); - if(i != 0) { - HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } else { - s16 discard_cnt; - static float letterOfs[] = { - 30, 20, - 20, 3, - -4, 20, - -30, 20, - 20, 20, - -30, 20, - -10, 40, - 10, -40 - }; - float x, y; - float ofs_x, ofs_y; - float zrot, scale_ang; - x = pos_x; - y = work->y; - ofs_x = letterOfs[((j-1)&0x7)*2]; - ofs_y = letterOfs[(((j-1)&0x7)*2)+1]; - zrot = 0.0f; - discard_cnt = 0; - scale_ang = 0.0f; - for(idx=0; idx<40.0f-time; idx++) { - if(x+ofs_x > HU_DISP_WIDTH || x+ofs_x < 0) { - ofs_x = -ofs_x; - discard_cnt++; - } - if(y+ofs_y > HU_DISP_HEIGHT || y+ofs_y < 0) { - ofs_y = -ofs_y; - discard_cnt++; - } - if(discard_cnt) { - zrot += 20.0f; - scale_ang = 0.0f; - } - x += ofs_x; - y += ofs_y; - } - HuSprPosSet(work->spr_grp[i], j, x, y); - HuSprScaleSet(work->spr_grp[i], j, work->scale_x*cos((M_PI*scale_ang)/180.0), work->scale_y); - HuSprZRotSet(work->spr_grp[i], j, zrot); - } - } - } - } else { - if(work->time > 60) { - time = work->time-60; - scale = 0.5*sin((M_PI*(time*9.0f))/180.0); - for(j=0; jword_len; j++) { - pos_x = (28.0f*(scale+work->scale_x))+(work->x-(0.5f*((work->word_len*56)*(scale+work->scale_x))))+((j*56)*(scale+work->scale_x)); - HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x+scale, work->scale_y+scale); - } - } - } - if(work->time == 60) { - HuAudFXPlay(36); - work->stat |= 0x10; - } - if(work->time == 80) { - work->stat |= 0x4; - SeqPlayStartFX(); - } - if(work->time >= 80) { - work->type = 0; - } - } else { - if(work->time == 1) { - if(work->state == 1) { - HuAudFXPlay(37); - } else { - HuAudFXPlay(40); - } - MGSeqPauseEnableCtrl(0); - work->stat |= 0x10; - } - if(work->time <= 20) { - for(i=1; i<4; i++) { - for(j=0; jword_len; j++) { - HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } - time = work->time; - scale = work->scale_x+(0.5*sin((M_PI*(time*9.0f))/180.0)); - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); - pos_x = ((28.0f*scale)+(work->x-(0.5f*(scale*(work->word_len*56)))))+(scale*(j*56)); - HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x+(sin((M_PI*(time*9.0f))/180.0)), work->scale_y+(sin((M_PI*(time*9.0f))/180.0))); - } - if(time == 20.0f) { - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); - } - } - } else { - if(work->time > 80 && work->time <= 95) { - time = work->time-80; - for(j=0; jword_len; j++) { - pos_x = (28.0f+(work->x-(0.5f*(work->word_len*56))))+(j*56); - HuSprPosSet(work->spr_grp[0], j, pos_x+((HU_DISP_CENTERX-pos_x)*(1.0-cos((M_PI*(time*6.0))/180.0))), work->y); - } - if(time == 15.0f) { - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[1], j, HUSPR_ATTR_DISPOFF); - HuSprPosSet(work->spr_grp[1], j, HU_DISP_CENTERX, work->y); - HuSprTPLvlSet(work->spr_grp[1], j, 1.0f); - } - } - } else { - if(work->time > 105) { - for(j=0; jword_len; j++) { - time = work->time-105; - time -= j*3; - if(time < 0) { - continue; - } - scale = 1.0f-(time/15.0f); - if(scale < 0.0f) { - scale = 0.0f; - } - HuSprPosSet(work->spr_grp[0], j, HU_DISP_CENTERX, work->y+((-100.0f-work->y)*(time/20.0f))); - HuSprTPLvlSet(work->spr_grp[0], j, scale); - HuSprPosSet(work->spr_grp[1], j, HU_DISP_CENTERX, work->y+((580.0f-work->y)*(time/20.0f))); - HuSprTPLvlSet(work->spr_grp[1], j, scale); - } - } - } - } - if(work->time == 130) { - work->stat |= 0x4; - } - if(work->time >= 130) { - work->type = 0; - work->stat |= 0x8; - } - } - - } - break; - - case -1: - { - work->angle += seqSpeed*0.1f; - scale = 1.0f-work->angle; - if(scale <= 0.0f) { - scale = 0.0f; - work->type = 0; - work->stat |= 0x8; - if(work->state == 0) { - MGSeqPauseEnableCtrl(1); - } - } - for(idx=0; idxword_len; idx++) { - HuSprTPLvlSet(work->spr_grp[0], idx, scale); - } - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 idx; + float scale; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + if (work->type == 2) { + return 1; + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + s16 i, j; + float time; + float pos_x; + if (work->state == 0) { + if (work->time < 45) { + if (work->time > 10 && work->time <= 40) { + time = work->time - 10; + scale = 10.0f * (1.0f - (time / 30.0f)); + pos_x = (work->x - (0.5f * (work->word_len * 56))) + 28.0f; + HuSprPosSet(work->spr_grp[0], 0, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], 0, work->scale_x + scale, work->scale_y + scale); + scale = time / 30.0f; + HuSprTPLvlSet(work->spr_grp[0], 0, scale); + } + for (i = 0; i < 4; i++) { + time = work->time - i; + if (time < 0 || time > 40) { + continue; + } + for (j = 1; j < work->word_len; j++) { + pos_x = (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + (j * 56); + if (time == 40.0f) { + HuSprPosSet(work->spr_grp[i], j, pos_x, work->y); + HuSprZRotSet(work->spr_grp[i], j, 0.0f); + HuSprScaleSet(work->spr_grp[i], j, work->scale_x, work->scale_y); + if (i != 0) { + HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + else { + s16 discard_cnt; + static float letterOfs[] = { 30, 20, 20, 3, -4, 20, -30, 20, 20, 20, -30, 20, -10, 40, 10, -40 }; + float x, y; + float ofs_x, ofs_y; + float zrot, scale_ang; + x = pos_x; + y = work->y; + ofs_x = letterOfs[((j - 1) & 0x7) * 2]; + ofs_y = letterOfs[(((j - 1) & 0x7) * 2) + 1]; + zrot = 0.0f; + discard_cnt = 0; + scale_ang = 0.0f; + for (idx = 0; idx < 40.0f - time; idx++) { + if (x + ofs_x > HU_DISP_WIDTH || x + ofs_x < 0) { + ofs_x = -ofs_x; + discard_cnt++; + } + if (y + ofs_y > HU_DISP_HEIGHT || y + ofs_y < 0) { + ofs_y = -ofs_y; + discard_cnt++; + } + if (discard_cnt) { + zrot += 20.0f; + scale_ang = 0.0f; + } + x += ofs_x; + y += ofs_y; + } + HuSprPosSet(work->spr_grp[i], j, x, y); + HuSprScaleSet(work->spr_grp[i], j, work->scale_x * cos((M_PI * scale_ang) / 180.0), work->scale_y); + HuSprZRotSet(work->spr_grp[i], j, zrot); + } + } + } + } + else { + if (work->time > 60) { + time = work->time - 60; + scale = 0.5 * sin((M_PI * (time * 9.0f)) / 180.0); + for (j = 0; j < work->word_len; j++) { + pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + + ((j * 56) * (scale + work->scale_x)); + HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + scale, work->scale_y + scale); + } + } + } + if (work->time == 60) { + HuAudFXPlay(36); + work->stat |= 0x10; + } + if (work->time == 80) { + work->stat |= 0x4; + SeqPlayStartFX(); + } + if (work->time >= 80) { + work->type = 0; + } + } + else { + if (work->time == 1) { + if (work->state == 1) { + HuAudFXPlay(37); + } + else { + HuAudFXPlay(40); + } + MGSeqPauseEnableCtrl(0); + work->stat |= 0x10; + } + if (work->time <= 20) { + for (i = 1; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + time = work->time; + scale = work->scale_x + (0.5 * sin((M_PI * (time * 9.0f)) / 180.0)); + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); + pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (j * 56)); + HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + (sin((M_PI * (time * 9.0f)) / 180.0)), + work->scale_y + (sin((M_PI * (time * 9.0f)) / 180.0))); + } + if (time == 20.0f) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); + } + } + } + else { + if (work->time > 80 && work->time <= 95) { + time = work->time - 80; + for (j = 0; j < work->word_len; j++) { + pos_x = (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + (j * 56); + HuSprPosSet( + work->spr_grp[0], j, pos_x + ((HU_DISP_CENTERX - pos_x) * (1.0 - cos((M_PI * (time * 6.0)) / 180.0))), work->y); + } + if (time == 15.0f) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[1], j, HUSPR_ATTR_DISPOFF); + HuSprPosSet(work->spr_grp[1], j, HU_DISP_CENTERX, work->y); + HuSprTPLvlSet(work->spr_grp[1], j, 1.0f); + } + } + } + else { + if (work->time > 105) { + for (j = 0; j < work->word_len; j++) { + time = work->time - 105; + time -= j * 3; + if (time < 0) { + continue; + } + scale = 1.0f - (time / 15.0f); + if (scale < 0.0f) { + scale = 0.0f; + } + HuSprPosSet(work->spr_grp[0], j, HU_DISP_CENTERX, work->y + ((-100.0f - work->y) * (time / 20.0f))); + HuSprTPLvlSet(work->spr_grp[0], j, scale); + HuSprPosSet(work->spr_grp[1], j, HU_DISP_CENTERX, work->y + ((580.0f - work->y) * (time / 20.0f))); + HuSprTPLvlSet(work->spr_grp[1], j, scale); + } + } + } + } + if (work->time == 130) { + work->stat |= 0x4; + } + if (work->time >= 130) { + work->type = 0; + work->stat |= 0x8; + } + } + + } break; + + case -1: { + work->angle += seqSpeed * 0.1f; + scale = 1.0f - work->angle; + if (scale <= 0.0f) { + scale = 0.0f; + work->type = 0; + work->stat |= 0x8; + if (work->state == 0) { + MGSeqPauseEnableCtrl(1); + } + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[0], idx, scale); + } + } break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } static s32 SeqUpdateMG1vs3(SeqWork *work) { - s16 idx; - float scale; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->type == 2) { - return 1; - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - float time; - float scale_x, scale_y; - float pos_x, pos_y; - s16 i; - s16 j; - if(work->state == 0) { - if(work->time <= 10) { - scale = work->time/10.0f; - time = work->time; - for(idx=0; idxword_len; idx++) { - scale_x = 0.3*work->scale_x; - scale_y = 0.3*work->scale_y; - pos_x = ((28.0f*scale_x)+(work->x-(0.5f*(scale_x*(work->word_len*56)))))+(scale_x*(idx*56)); - pos_y = work->y-(150.0*sin((M_PI*(((16.0f/3.0f)*time)+20.0f))/180.0)); - HuSprPosSet(work->spr_grp[0], idx, pos_x, pos_y); - HuSprScaleSet(work->spr_grp[0], idx, scale_x, scale_y*cos(M_PI*(12.0f*time)/180.0)); - HuSprTPLvlSet(work->spr_grp[0], idx, scale); - } - } else { - if(work->time <= 60) { - for(i=0; i<4; i++) { - for(idx=0; idxword_len; idx++) { - time = (work->time-10)-(idx*3)-i; - if(time < 0.0f) { - time = 0.0f; - } else { - if(time > 30.0f) { - continue; - } - } - scale = 0.3+(0.7*(1.0-cos((M_PI*(time*3.0f))/180.0))); - scale_x = work->scale_x*scale; - scale_y = work->scale_y*scale; - pos_x = ((28.0f*scale_x)+(work->x-(0.5f*(scale_x*(work->word_len*56)))))+(scale_x*(idx*56)); - pos_y = work->y-(150.0*sin((M_PI*(((16.0f/3.0f)*time)+20.0f))/180.0)); - HuSprPosSet(work->spr_grp[i], idx, pos_x, pos_y); - HuSprScaleSet(work->spr_grp[i], idx, scale_x, scale_y*cos(M_PI*(12.0f*time)/180.0)); - } - } - if(work->time == 60) { - for(i=1; i<4; i++) { - for(j=0; jword_len; j++) { - HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } - } - } else { - if(work->time > 70) { - time = work->time-70; - scale = 0.5*sin((M_PI*(time*9.0f))/180.0); - for(j=0; jword_len; j++) { - pos_x = (28.0f*(scale+work->scale_x))+(work->x-(0.5f*((work->word_len*56)*(scale+work->scale_x))))+((j*56)*(scale+work->scale_x)); - HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x+scale, work->scale_y+scale); - } - } - } - } - if(work->time == 70) { - HuAudFXPlay(36); - work->stat |= 0x10; - } - if(work->time == 90) { - work->stat |= 0x4; - SeqPlayStartFX(); - } - if(work->time >= 90) { - work->type = 0; - } - } else { - if(work->time == 1) { - if(work->state == 1) { - HuAudFXPlay(37); - } else { - HuAudFXPlay(40); - } - MGSeqPauseEnableCtrl(0); - work->stat |= 0x10; - } - if(work->time <= 20) { - for(i=1; i<4; i++) { - for(j=0; jword_len; j++) { - HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } - time = work->time; - scale = work->scale_x+(0.5*sin((M_PI*(time*9.0f))/180.0)); - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); - pos_x = ((28.0f*scale)+(work->x-(0.5f*(scale*(work->word_len*56)))))+(scale*(j*56)); - HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x+(sin((M_PI*(time*9.0f))/180.0)), work->scale_y+(sin((M_PI*(time*9.0f))/180.0))); - } - if(time == 20.0f) { - for(i=1; i<4; i++) { - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } - } - } else { - if(work->time > 80 || work->time < 140) { - for(i=0; i<4; i++) { - for(j=0; jword_len; j++) { - time = (work->time-80)-i-j; - if(time < 0 || time > 40) { - continue; - } - if(time <= 20) { - float pos_base = (28.0f+(work->x-(0.5f*(work->word_len*56))))+(j*56); - pos_x = (28.0f+(work->x-(0.5f*(work->word_len*56))))+((work->word_len-j-1)*56); - HuSprPosSet(work->spr_grp[i], j, pos_base+((time/20.0f)*(pos_x-pos_base)), work->y+(((HU_DISP_HEIGHT-40)-work->y)*(time/20.0f))); - } else { - time -= 20.0f; - pos_x = (28.0f+(work->x-(0.5f*(work->word_len*56))))+((work->word_len-j-1)*56); - pos_y = HU_DISP_HEIGHT-40; - HuSprPosSet(work->spr_grp[i], j, pos_x, pos_y+((-40.0f-pos_y)*(time/20.0f))); - } - } - } - } - } - if(work->time == 140) { - work->stat |= 0x4; - } - if(work->time >= 140) { - work->type = 0; - work->stat |= 0x8; - } - } - } - break; - - case -1: - { - work->angle += seqSpeed*0.1f; - scale = 1.0f-work->angle; - if(scale <= 0.0f) { - scale = 0.0f; - work->type = 0; - work->stat |= 0x8; - if(work->state == 0) { - MGSeqPauseEnableCtrl(1); - } - } - for(idx=0; idxword_len; idx++) { - HuSprTPLvlSet(work->spr_grp[0], idx, scale); - } - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 idx; + float scale; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + if (work->type == 2) { + return 1; + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + float time; + float scale_x, scale_y; + float pos_x, pos_y; + s16 i; + s16 j; + if (work->state == 0) { + if (work->time <= 10) { + scale = work->time / 10.0f; + time = work->time; + for (idx = 0; idx < work->word_len; idx++) { + scale_x = 0.3 * work->scale_x; + scale_y = 0.3 * work->scale_y; + pos_x = ((28.0f * scale_x) + (work->x - (0.5f * (scale_x * (work->word_len * 56))))) + (scale_x * (idx * 56)); + pos_y = work->y - (150.0 * sin((M_PI * (((16.0f / 3.0f) * time) + 20.0f)) / 180.0)); + HuSprPosSet(work->spr_grp[0], idx, pos_x, pos_y); + HuSprScaleSet(work->spr_grp[0], idx, scale_x, scale_y * cos(M_PI * (12.0f * time) / 180.0)); + HuSprTPLvlSet(work->spr_grp[0], idx, scale); + } + } + else { + if (work->time <= 60) { + for (i = 0; i < 4; i++) { + for (idx = 0; idx < work->word_len; idx++) { + time = (work->time - 10) - (idx * 3) - i; + if (time < 0.0f) { + time = 0.0f; + } + else { + if (time > 30.0f) { + continue; + } + } + scale = 0.3 + (0.7 * (1.0 - cos((M_PI * (time * 3.0f)) / 180.0))); + scale_x = work->scale_x * scale; + scale_y = work->scale_y * scale; + pos_x = ((28.0f * scale_x) + (work->x - (0.5f * (scale_x * (work->word_len * 56))))) + (scale_x * (idx * 56)); + pos_y = work->y - (150.0 * sin((M_PI * (((16.0f / 3.0f) * time) + 20.0f)) / 180.0)); + HuSprPosSet(work->spr_grp[i], idx, pos_x, pos_y); + HuSprScaleSet(work->spr_grp[i], idx, scale_x, scale_y * cos(M_PI * (12.0f * time) / 180.0)); + } + } + if (work->time == 60) { + for (i = 1; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + } + } + else { + if (work->time > 70) { + time = work->time - 70; + scale = 0.5 * sin((M_PI * (time * 9.0f)) / 180.0); + for (j = 0; j < work->word_len; j++) { + pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + + ((j * 56) * (scale + work->scale_x)); + HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + scale, work->scale_y + scale); + } + } + } + } + if (work->time == 70) { + HuAudFXPlay(36); + work->stat |= 0x10; + } + if (work->time == 90) { + work->stat |= 0x4; + SeqPlayStartFX(); + } + if (work->time >= 90) { + work->type = 0; + } + } + else { + if (work->time == 1) { + if (work->state == 1) { + HuAudFXPlay(37); + } + else { + HuAudFXPlay(40); + } + MGSeqPauseEnableCtrl(0); + work->stat |= 0x10; + } + if (work->time <= 20) { + for (i = 1; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + time = work->time; + scale = work->scale_x + (0.5 * sin((M_PI * (time * 9.0f)) / 180.0)); + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); + pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (j * 56)); + HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + (sin((M_PI * (time * 9.0f)) / 180.0)), + work->scale_y + (sin((M_PI * (time * 9.0f)) / 180.0))); + } + if (time == 20.0f) { + for (i = 1; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + } + } + else { + if (work->time > 80 || work->time < 140) { + for (i = 0; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + time = (work->time - 80) - i - j; + if (time < 0 || time > 40) { + continue; + } + if (time <= 20) { + float pos_base = (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + (j * 56); + pos_x = (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + ((work->word_len - j - 1) * 56); + HuSprPosSet(work->spr_grp[i], j, pos_base + ((time / 20.0f) * (pos_x - pos_base)), + work->y + (((HU_DISP_HEIGHT - 40) - work->y) * (time / 20.0f))); + } + else { + time -= 20.0f; + pos_x = (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + ((work->word_len - j - 1) * 56); + pos_y = HU_DISP_HEIGHT - 40; + HuSprPosSet(work->spr_grp[i], j, pos_x, pos_y + ((-40.0f - pos_y) * (time / 20.0f))); + } + } + } + } + } + if (work->time == 140) { + work->stat |= 0x4; + } + if (work->time >= 140) { + work->type = 0; + work->stat |= 0x8; + } + } + } break; + + case -1: { + work->angle += seqSpeed * 0.1f; + scale = 1.0f - work->angle; + if (scale <= 0.0f) { + scale = 0.0f; + work->type = 0; + work->stat |= 0x8; + if (work->state == 0) { + MGSeqPauseEnableCtrl(1); + } + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[0], idx, scale); + } + } break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } static s32 SeqUpdateMGStory(SeqWork *work) { - s16 idx; - float scale; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->type == 2) { - return 1; - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - float pos_x, pos_y; - float time; - s16 i; - s16 j; - if(work->state == 0) { - if(work->time <= 30) { - for(idx=0; idxword_len; idx++) { - time = (work->time-(idx*2)); - if(time < 0.0f || time > 15.0f) { - continue; - } - pos_x = -50.0f; - HuSprPosSet(work->spr_grp[0], idx, pos_x+((HU_DISP_CENTERX-pos_x)*(time/15.0f)), work->y); - HuSprTPLvlSet(work->spr_grp[0], idx, 1.0f); - HuSprZRotSet(work->spr_grp[0], idx, (1.0-(time/15.0f))*180.0); - pos_x = HU_DISP_WIDTH+50; - HuSprPosSet(work->spr_grp[1], idx, pos_x+((HU_DISP_CENTERX-pos_x)*(time/15.0f)), work->y); - HuSprTPLvlSet(work->spr_grp[1], idx, 1.0f); - HuSprZRotSet(work->spr_grp[1], idx, (1.0-(time/15.0f))*-180.0); - } - if(work->time == 30) { - for(j=0; jword_len; j++) { - HuSprAttrSet(work->spr_grp[1], j, HUSPR_ATTR_DISPOFF); - } - } - } else { - if(work->time > 35 && work->time <= 45) { - time = work->time-35; - for(idx=0; idxword_len; idx++) { - pos_x = (work->x-(0.5f*(work->word_len*56)))+28.0f+(idx*56); - HuSprPosSet(work->spr_grp[0], idx, HU_DISP_CENTERX+((pos_x-HU_DISP_CENTERX)*(time/10.0f)), work->y); - } - } else { - if(work->time > 55) { - time = work->time-55; - scale = 0.5*sin(M_PI*(9.0f*time)/180.0); - for(j=0; jword_len; j++) { - pos_x = (28.0f*(scale+work->scale_x))+(work->x-(0.5f*((work->word_len*56)*(scale+work->scale_x))))+((j*56)*(scale+work->scale_x)); - HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x+scale, work->scale_y+scale); - } - } - } - } - if(work->time == 55) { - HuAudFXPlay(36); - work->stat |= 0x10; - } - if(work->time == 75) { - SeqPlayStartFX(); - work->stat |= 0x4; - } - if(work->time >= 75) { - work->type = 0; - } - } else { - if(work->time == 1) { - if(work->state == 1) { - HuAudFXPlay(37); - } else { - HuAudFXPlay(40); - } - MGSeqPauseEnableCtrl(0); - work->stat |= 0x10; - } - if(work->time <= 20) { - for(i=1; i<4; i++) { - for(j=0; jword_len; j++) { - HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } - time = work->time; - scale = work->scale_x+(0.5*sin((M_PI*(time*9.0f))/180.0)); - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); - pos_x = ((28.0f*scale)+(work->x-(0.5f*(scale*(work->word_len*56)))))+(scale*(j*56)); - HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x+(sin((M_PI*(time*9.0f))/180.0)), work->scale_y+(sin((M_PI*(time*9.0f))/180.0))); - } - if(time == 20.0f){ - for(i=1; i<4; i++) { - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } - } - } else if(work->time > 80 && work->time < 160) { - for(i=0; i<4; i++) { - for(j=0; jword_len; j++) { - s16 initF; - float dx, dy; - time = (work->time-80)-i; - if(time < 0 || time > 60) { - continue; - } - pos_x = (28.0f+(work->x-(0.5f*(work->word_len*56))))+(j*56); - dx = 28.0f+(work->x-(0.5f*(work->word_len*56))); - pos_y = work->y; - for(idx=initF=0; idxx-(0.5f*(work->word_len*56))); - initF = 1; - dy = 25.0f; - dx = 10.0f; - } - - } else { - pos_x += dx; - pos_y += dy; - dx += 0.1; - dy -= 2.0f; - if(pos_y < 0.0f) { - break; - } - } - } - - HuSprPosSet(work->spr_grp[i], j, pos_x, pos_y); - } - } - } - if(work->time == 160) { - work->stat |= 0x4; - } - if(work->time >= 160) { - work->type = 0; - work->stat |= 0x8; - } - } - } - break; - - case -1: - { - work->angle += seqSpeed*0.1f; - scale = 1.0f-work->angle; - if(scale <= 0.0f) { - scale = 0.0f; - work->type = 0; - work->stat |= 0x8; - if(work->state == 0) { - MGSeqPauseEnableCtrl(1); - } - } - for(idx=0; idxword_len; idx++) { - HuSprTPLvlSet(work->spr_grp[0], idx, scale); - } - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 idx; + float scale; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + if (work->type == 2) { + return 1; + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + float pos_x, pos_y; + float time; + s16 i; + s16 j; + if (work->state == 0) { + if (work->time <= 30) { + for (idx = 0; idx < work->word_len; idx++) { + time = (work->time - (idx * 2)); + if (time < 0.0f || time > 15.0f) { + continue; + } + pos_x = -50.0f; + HuSprPosSet(work->spr_grp[0], idx, pos_x + ((HU_DISP_CENTERX - pos_x) * (time / 15.0f)), work->y); + HuSprTPLvlSet(work->spr_grp[0], idx, 1.0f); + HuSprZRotSet(work->spr_grp[0], idx, (1.0 - (time / 15.0f)) * 180.0); + pos_x = HU_DISP_WIDTH + 50; + HuSprPosSet(work->spr_grp[1], idx, pos_x + ((HU_DISP_CENTERX - pos_x) * (time / 15.0f)), work->y); + HuSprTPLvlSet(work->spr_grp[1], idx, 1.0f); + HuSprZRotSet(work->spr_grp[1], idx, (1.0 - (time / 15.0f)) * -180.0); + } + if (work->time == 30) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrSet(work->spr_grp[1], j, HUSPR_ATTR_DISPOFF); + } + } + } + else { + if (work->time > 35 && work->time <= 45) { + time = work->time - 35; + for (idx = 0; idx < work->word_len; idx++) { + pos_x = (work->x - (0.5f * (work->word_len * 56))) + 28.0f + (idx * 56); + HuSprPosSet(work->spr_grp[0], idx, HU_DISP_CENTERX + ((pos_x - HU_DISP_CENTERX) * (time / 10.0f)), work->y); + } + } + else { + if (work->time > 55) { + time = work->time - 55; + scale = 0.5 * sin(M_PI * (9.0f * time) / 180.0); + for (j = 0; j < work->word_len; j++) { + pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + + ((j * 56) * (scale + work->scale_x)); + HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + scale, work->scale_y + scale); + } + } + } + } + if (work->time == 55) { + HuAudFXPlay(36); + work->stat |= 0x10; + } + if (work->time == 75) { + SeqPlayStartFX(); + work->stat |= 0x4; + } + if (work->time >= 75) { + work->type = 0; + } + } + else { + if (work->time == 1) { + if (work->state == 1) { + HuAudFXPlay(37); + } + else { + HuAudFXPlay(40); + } + MGSeqPauseEnableCtrl(0); + work->stat |= 0x10; + } + if (work->time <= 20) { + for (i = 1; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + time = work->time; + scale = work->scale_x + (0.5 * sin((M_PI * (time * 9.0f)) / 180.0)); + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); + pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (j * 56)); + HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + (sin((M_PI * (time * 9.0f)) / 180.0)), + work->scale_y + (sin((M_PI * (time * 9.0f)) / 180.0))); + } + if (time == 20.0f) { + for (i = 1; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + } + } + else if (work->time > 80 && work->time < 160) { + for (i = 0; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + s16 initF; + float dx, dy; + time = (work->time - 80) - i; + if (time < 0 || time > 60) { + continue; + } + pos_x = (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + (j * 56); + dx = 28.0f + (work->x - (0.5f * (work->word_len * 56))); + pos_y = work->y; + for (idx = initF = 0; idx < time; idx++) { + if (!initF) { + pos_x -= 20.0f; + if (pos_x <= dx) { + pos_x = 28.0f + (work->x - (0.5f * (work->word_len * 56))); + initF = 1; + dy = 25.0f; + dx = 10.0f; + } + } + else { + pos_x += dx; + pos_y += dy; + dx += 0.1; + dy -= 2.0f; + if (pos_y < 0.0f) { + break; + } + } + } + + HuSprPosSet(work->spr_grp[i], j, pos_x, pos_y); + } + } + } + if (work->time == 160) { + work->stat |= 0x4; + } + if (work->time >= 160) { + work->type = 0; + work->stat |= 0x8; + } + } + } break; + + case -1: { + work->angle += seqSpeed * 0.1f; + scale = 1.0f - work->angle; + if (scale <= 0.0f) { + scale = 0.0f; + work->type = 0; + work->stat |= 0x8; + if (work->state == 0) { + MGSeqPauseEnableCtrl(1); + } + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[0], idx, scale); + } + } break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } static s32 SeqUpdateMG2vs2(SeqWork *work) { - s16 idx; - float scale; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->type == 2) { - return 1; - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - static s16 letterOfs[] = { - -10, -50, - 0, -30, - 5, -60, - -10, 60, - 8, -40, - 5, 50, - -10, 20 - }; - - float pos_x; - float time; - s16 i; - s16 j; - if(work->state == 0) { - if(work->time <= 30) { - time = work->time; - for(idx=0; idxword_len; idx++) { - pos_x = (28.0f+(work->x-(0.5f*(work->scale_x*(work->word_len*56)))))+(idx*56); - HuSprPosSet(work->spr_grp[0], idx, pos_x+((1.0f-(time/30.0f))*letterOfs[(idx*2)]), work->y+((1.0f-(time/30.0f))*letterOfs[(idx*2)+1])); - HuSprTPLvlSet(work->spr_grp[0], idx, time/30.0f); - } - } else { - if(work->time > 40 && work->time <= 60) { - time = work->time-40; - scale = 0.5*sin(((time*9.0f)*M_PI)/180.0); - for(j=0; jword_len; j++) { - pos_x = (28.0f*(scale+work->scale_x))+(work->x-(0.5f*((work->word_len*56)*(scale+work->scale_x))))+((j*56)*(scale+work->scale_x)); - HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x+scale, work->scale_y+scale); - } - } - } - if(work->time == 40) { - HuAudFXPlay(36); - work->stat |= 0x10; - } - if(work->time == 60) { - work->stat |= 0x4; - SeqPlayStartFX(); - } - if(work->time >= 60) { - work->type = 0; - } - } else { - if(work->time == 1) { - if(work->state == 1) { - HuAudFXPlay(37); - } else { - HuAudFXPlay(40); - } - MGSeqPauseEnableCtrl(0); - work->stat |= 0x10; - } - if(work->time <= 20) { - for(i=1; i<4; i++) { - for(j=0; jword_len; j++) { - HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } - time = work->time; - scale = work->scale_x+(0.5*sin((M_PI*(time*9.0f))/180.0)); - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); - pos_x = ((28.0f*scale)+(work->x-(0.5f*(scale*(work->word_len*56)))))+(scale*(j*56)); - HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x+(sin((M_PI*(time*9.0f))/180.0)), work->scale_y+(sin((M_PI*(time*9.0f))/180.0))); - } - if(time == 20.0f) { - for(i=1; i<4; i++) { - for(j=0; jword_len; j++) { - HuSprAttrReset(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); - } - } - } - } else { - if(work->time > 80 && work->time < 140) { - time = work->time-80; - for(idx=0; idxword_len; idx++) { - float radius = (idx*56)-(((work->word_len-1)*56)/2); - float angle = (1.0f+(1.0f-(ABS(radius)/320.0f)))*720.0f; - float new_scale; - radius *= 1.0-(time/60.0f); - HuSprPosSet(work->spr_grp[0], idx, (radius*sin(M_PI*(((time/60.0f)*angle)+90.0f)/180.0))+work->x, (radius*cos(M_PI*(((time/60.0f)*angle)+90.0f)/180.0))+work->y); - HuSprZRotSet(work->spr_grp[0], idx, -(time/60.0f)*720.0f); - new_scale = 0.5+(0.5*(1.0f-(time/60.0f))); - HuSprScaleSet(work->spr_grp[0], idx, new_scale, new_scale); - HuSprTPLvlSet(work->spr_grp[0], idx, 1.0f-(time/60.0f)); - } - } - } - if(work->time == 140) { - work->stat |= 0x4; - } - if(work->time >= 150) { - work->type = 0; - work->stat |= 0x8; - } - } - } - break; - - case -1: - { - work->angle += seqSpeed*0.1f; - scale = 1.0f-work->angle; - if(scale <= 0.0f) { - scale = 0.0f; - work->type = 0; - work->stat |= 0x8; - if(work->state == 0) { - MGSeqPauseEnableCtrl(1); - } - } - for(idx=0; idxword_len; idx++) { - HuSprTPLvlSet(work->spr_grp[0], idx, scale); - } - } - break; - - default: - - break; - - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 idx; + float scale; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + if (work->type == 2) { + return 1; + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + static s16 letterOfs[] = { -10, -50, 0, -30, 5, -60, -10, 60, 8, -40, 5, 50, -10, 20 }; + + float pos_x; + float time; + s16 i; + s16 j; + if (work->state == 0) { + if (work->time <= 30) { + time = work->time; + for (idx = 0; idx < work->word_len; idx++) { + pos_x = (28.0f + (work->x - (0.5f * (work->scale_x * (work->word_len * 56))))) + (idx * 56); + HuSprPosSet(work->spr_grp[0], idx, pos_x + ((1.0f - (time / 30.0f)) * letterOfs[(idx * 2)]), + work->y + ((1.0f - (time / 30.0f)) * letterOfs[(idx * 2) + 1])); + HuSprTPLvlSet(work->spr_grp[0], idx, time / 30.0f); + } + } + else { + if (work->time > 40 && work->time <= 60) { + time = work->time - 40; + scale = 0.5 * sin(((time * 9.0f) * M_PI) / 180.0); + for (j = 0; j < work->word_len; j++) { + pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + + ((j * 56) * (scale + work->scale_x)); + HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + scale, work->scale_y + scale); + } + } + } + if (work->time == 40) { + HuAudFXPlay(36); + work->stat |= 0x10; + } + if (work->time == 60) { + work->stat |= 0x4; + SeqPlayStartFX(); + } + if (work->time >= 60) { + work->type = 0; + } + } + else { + if (work->time == 1) { + if (work->state == 1) { + HuAudFXPlay(37); + } + else { + HuAudFXPlay(40); + } + MGSeqPauseEnableCtrl(0); + work->stat |= 0x10; + } + if (work->time <= 20) { + for (i = 1; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrSet(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + time = work->time; + scale = work->scale_x + (0.5 * sin((M_PI * (time * 9.0f)) / 180.0)); + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); + pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (j * 56)); + HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + (sin((M_PI * (time * 9.0f)) / 180.0)), + work->scale_y + (sin((M_PI * (time * 9.0f)) / 180.0))); + } + if (time == 20.0f) { + for (i = 1; i < 4; i++) { + for (j = 0; j < work->word_len; j++) { + HuSprAttrReset(work->spr_grp[i], j, HUSPR_ATTR_DISPOFF); + } + } + } + } + else { + if (work->time > 80 && work->time < 140) { + time = work->time - 80; + for (idx = 0; idx < work->word_len; idx++) { + float radius = (idx * 56) - (((work->word_len - 1) * 56) / 2); + float angle = (1.0f + (1.0f - (ABS(radius) / 320.0f))) * 720.0f; + float new_scale; + radius *= 1.0 - (time / 60.0f); + HuSprPosSet(work->spr_grp[0], idx, (radius * sin(M_PI * (((time / 60.0f) * angle) + 90.0f) / 180.0)) + work->x, + (radius * cos(M_PI * (((time / 60.0f) * angle) + 90.0f) / 180.0)) + work->y); + HuSprZRotSet(work->spr_grp[0], idx, -(time / 60.0f) * 720.0f); + new_scale = 0.5 + (0.5 * (1.0f - (time / 60.0f))); + HuSprScaleSet(work->spr_grp[0], idx, new_scale, new_scale); + HuSprTPLvlSet(work->spr_grp[0], idx, 1.0f - (time / 60.0f)); + } + } + } + if (work->time == 140) { + work->stat |= 0x4; + } + if (work->time >= 150) { + work->type = 0; + work->stat |= 0x8; + } + } + } break; + + case -1: { + work->angle += seqSpeed * 0.1f; + scale = 1.0f - work->angle; + if (scale <= 0.0f) { + scale = 0.0f; + work->type = 0; + work->stat |= 0x8; + if (work->state == 0) { + MGSeqPauseEnableCtrl(1); + } + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[0], idx, scale); + } + } break; + + default: + + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } static s32 SeqInitFlip(SeqWork *work, va_list params) { - s16 i; - s16 word_grp; - s16 word_ofs; - work->state = va_arg(params, int); - if(work->state == 2) { - return SeqInitDraw(work, params); - } - work->type = 0; - work->angle = 0; - { - s32 word_ofs_temp; - s32 word_katakana; - s32 word_flag; + s16 i; + s16 word_grp; + s16 word_ofs; + work->state = va_arg(params, int); + if (work->state == 2) { + return SeqInitDraw(work, params); + } + work->type = 0; + work->angle = 0; + { + s32 word_ofs_temp; + s32 word_katakana; + s32 word_flag; - if(seqLanguage == 0) { - word_ofs_temp = 3; - } else { - word_ofs_temp = 0; - } - word_ofs = word_ofs_temp; - word_katakana = 0; - if(work->state == 2 && word_ofs == 0) { - word_katakana = 1; - } - if(word_katakana) { - word_flag = 1; - } else { - word_flag = 0; - } - - word_grp = SeqMakeWord(work, wordMgTbl[work->state+word_ofs], word_flag); - } - HuSprGrpPosSet(work->spr_grp[word_grp], 0.0f, 0.0f); - for(i=0; iword_len; i++) { - HuSprTPLvlSet(work->spr_grp[word_grp], i, 0.0f); - HuSprPosSet(work->spr_grp[word_grp], i, (28.0f+(work->x-(0.5f*(work->word_len*56))))+(i*56), work->y); - HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); - HuSprAttrReset(work->spr_grp[word_grp], i, HUSPR_ATTR_DISPOFF); - } - work->alt_word_len = work->word_len; - { - s32 word_ofs_temp; - s32 word_katakana; - s32 word_flag; - - if(seqLanguage == 0) { - word_ofs_temp = 0; - } else { - word_ofs_temp = 3; - } - word_ofs = word_ofs_temp; - word_katakana = 0; - if(work->state == 2 && word_ofs == 0) { - word_katakana = 1; - } - if(word_katakana) { - word_flag = 1; - } else { - word_flag = 0; - } - - word_grp = SeqMakeWord(work, wordMgTbl[work->state+word_ofs], word_flag); - } - HuSprGrpPosSet(work->spr_grp[word_grp], 0.0f, 0.0f); - for(i=0; iword_len; i++) { - HuSprTPLvlSet(work->spr_grp[word_grp], i, 0.0f); - HuSprPosSet(work->spr_grp[word_grp], i, (28.0f+(work->x-(0.5f*(work->word_len*56))))+(i*56), work->y); - HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); - HuSprAttrReset(work->spr_grp[word_grp], i, HUSPR_ATTR_DISPOFF); - } - if(seqPauseF) { - work->type = 2; - HuSprAttrSet(word_grp, 0, HUSPR_ATTR_DISPOFF); - } else { - work->param[0] = 3; - } - return 1; + if (seqLanguage == 0) { + word_ofs_temp = 3; + } + else { + word_ofs_temp = 0; + } + word_ofs = word_ofs_temp; + word_katakana = 0; + if (work->state == 2 && word_ofs == 0) { + word_katakana = 1; + } + if (word_katakana) { + word_flag = 1; + } + else { + word_flag = 0; + } + + word_grp = SeqMakeWord(work, wordMgTbl[work->state + word_ofs], word_flag); + } + HuSprGrpPosSet(work->spr_grp[word_grp], 0.0f, 0.0f); + for (i = 0; i < work->word_len; i++) { + HuSprTPLvlSet(work->spr_grp[word_grp], i, 0.0f); + HuSprPosSet(work->spr_grp[word_grp], i, (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + (i * 56), work->y); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + HuSprAttrReset(work->spr_grp[word_grp], i, HUSPR_ATTR_DISPOFF); + } + work->alt_word_len = work->word_len; + { + s32 word_ofs_temp; + s32 word_katakana; + s32 word_flag; + + if (seqLanguage == 0) { + word_ofs_temp = 0; + } + else { + word_ofs_temp = 3; + } + word_ofs = word_ofs_temp; + word_katakana = 0; + if (work->state == 2 && word_ofs == 0) { + word_katakana = 1; + } + if (word_katakana) { + word_flag = 1; + } + else { + word_flag = 0; + } + + word_grp = SeqMakeWord(work, wordMgTbl[work->state + word_ofs], word_flag); + } + HuSprGrpPosSet(work->spr_grp[word_grp], 0.0f, 0.0f); + for (i = 0; i < work->word_len; i++) { + HuSprTPLvlSet(work->spr_grp[word_grp], i, 0.0f); + HuSprPosSet(work->spr_grp[word_grp], i, (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + (i * 56), work->y); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + HuSprAttrReset(work->spr_grp[word_grp], i, HUSPR_ATTR_DISPOFF); + } + if (seqPauseF) { + work->type = 2; + HuSprAttrSet(word_grp, 0, HUSPR_ATTR_DISPOFF); + } + else { + work->param[0] = 3; + } + return 1; } static s32 SeqUpdateFlip(SeqWork *work) { - s16 idx; - float scale; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->type == 2) { - return 1; - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - float time; - float pos_x; - s16 i; - if(work->state == 0) { - if(work->time <= 10) { - for(idx=0; idxalt_word_len; idx++) { - HuSprTPLvlSet(work->spr_grp[0], idx, work->time/10.0f); - } - } else { - if(work->time <= 30) { - time = work->time-10; - if(time <= 10) { - for(idx=0; idxalt_word_len; idx++) { - HuSprScaleSet(work->spr_grp[0], idx, cos(M_PI*((time/10.0f)*90.0f)/180.0), 1.0f); - } - } else { - time -= 10.0f; - for(idx=0; idxword_len; idx++) { - HuSprTPLvlSet(work->spr_grp[1], idx, 1.0f); - HuSprScaleSet(work->spr_grp[1], idx, sin(M_PI*((time/10.0f)*90.0f)/180.0), 1.0f); - } - } - } else { - if(work->time > 35 && work->time <= 55) { - time = work->time-35; - scale = 0.5*sin(((time*9.0f)*M_PI)/180.0); - for(i=0; iword_len; i++) { - pos_x = (28.0f*(scale+work->scale_x))+(work->x-(0.5f*((work->word_len*56)*(scale+work->scale_x))))+((i*56)*(scale+work->scale_x)); - HuSprPosSet(work->spr_grp[1], i, pos_x, work->y); - HuSprScaleSet(work->spr_grp[1], i, work->scale_x+scale, work->scale_y+scale); - } - } - } - } - if(work->time == 35) { - HuAudFXPlay(36); - work->stat |= 0x10; - } - if(work->time == 55) { - work->stat |= 0x4; - SeqPlayStartFX(); - } - if(work->time >= 75) { - work->type = 0; - } - } else { - if(work->time == 1) { - if(work->state == 1) { - HuAudFXPlay(37); - } else { - HuAudFXPlay(40); - } - MGSeqPauseEnableCtrl(0); - work->stat |= 0x10; - } - if(work->time <= 20) { - time = work->time; - scale = 0.5*sin(M_PI*(9.0f*time)/180.0); - for(i=0; iword_len; i++) { - HuSprTPLvlSet(work->spr_grp[1], i, 1.0f); - pos_x = (28.0f*(scale+work->scale_x))+(work->x-(0.5f*((work->word_len*56)*(scale+work->scale_x))))+((i*56)*(scale+work->scale_x)); - HuSprPosSet(work->spr_grp[1], i, pos_x, work->y); - HuSprScaleSet(work->spr_grp[1], i, work->scale_x+scale, work->scale_y+scale); - } - } else { - if(work->time > 80 && work->time <= 160) { - time = work->time-80; - for(idx=0; idxword_len; idx++) { - scale = time-(idx*2); - if(scale < 0 || scale > 15.0f) { - continue; - } - HuSprScaleSet(work->spr_grp[1], idx, cos(M_PI*((scale/15.0f)*90.0f)/180.0), 1.0f); - } - for(idx=0; idxalt_word_len; idx++) { - scale = (time-15.0f)-(idx*2); - if(scale < 0 || scale > 30.0f) { - continue; - } - HuSprTPLvlSet(work->spr_grp[0], idx, 1.0f); - HuSprScaleSet(work->spr_grp[0], idx, sin(M_PI*((scale/30.0f)*180.0f)/180.0), 1.0f); - } - } - } - if(work->time == 160) { - work->stat |= 0x4; - } - if(work->time >= 160) { - work->type = 0; - work->stat |= 0x8; - } - } - } - break; - - case -1: - { - work->angle += seqSpeed*0.1f; - scale = 1.0f-work->angle; - if(scale <= 0.0f) { - scale = 0.0f; - work->type = 0; - work->stat |= 0x8; - if(work->state == 0) { - MGSeqPauseEnableCtrl(1); - } - } - for(idx=0; idxword_len; idx++) { - HuSprTPLvlSet(work->spr_grp[1], idx, scale); - } - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 idx; + float scale; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + if (work->type == 2) { + return 1; + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + float time; + float pos_x; + s16 i; + if (work->state == 0) { + if (work->time <= 10) { + for (idx = 0; idx < work->alt_word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[0], idx, work->time / 10.0f); + } + } + else { + if (work->time <= 30) { + time = work->time - 10; + if (time <= 10) { + for (idx = 0; idx < work->alt_word_len; idx++) { + HuSprScaleSet(work->spr_grp[0], idx, cos(M_PI * ((time / 10.0f) * 90.0f) / 180.0), 1.0f); + } + } + else { + time -= 10.0f; + for (idx = 0; idx < work->word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[1], idx, 1.0f); + HuSprScaleSet(work->spr_grp[1], idx, sin(M_PI * ((time / 10.0f) * 90.0f) / 180.0), 1.0f); + } + } + } + else { + if (work->time > 35 && work->time <= 55) { + time = work->time - 35; + scale = 0.5 * sin(((time * 9.0f) * M_PI) / 180.0); + for (i = 0; i < work->word_len; i++) { + pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + + ((i * 56) * (scale + work->scale_x)); + HuSprPosSet(work->spr_grp[1], i, pos_x, work->y); + HuSprScaleSet(work->spr_grp[1], i, work->scale_x + scale, work->scale_y + scale); + } + } + } + } + if (work->time == 35) { + HuAudFXPlay(36); + work->stat |= 0x10; + } + if (work->time == 55) { + work->stat |= 0x4; + SeqPlayStartFX(); + } + if (work->time >= 75) { + work->type = 0; + } + } + else { + if (work->time == 1) { + if (work->state == 1) { + HuAudFXPlay(37); + } + else { + HuAudFXPlay(40); + } + MGSeqPauseEnableCtrl(0); + work->stat |= 0x10; + } + if (work->time <= 20) { + time = work->time; + scale = 0.5 * sin(M_PI * (9.0f * time) / 180.0); + for (i = 0; i < work->word_len; i++) { + HuSprTPLvlSet(work->spr_grp[1], i, 1.0f); + pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + + ((i * 56) * (scale + work->scale_x)); + HuSprPosSet(work->spr_grp[1], i, pos_x, work->y); + HuSprScaleSet(work->spr_grp[1], i, work->scale_x + scale, work->scale_y + scale); + } + } + else { + if (work->time > 80 && work->time <= 160) { + time = work->time - 80; + for (idx = 0; idx < work->word_len; idx++) { + scale = time - (idx * 2); + if (scale < 0 || scale > 15.0f) { + continue; + } + HuSprScaleSet(work->spr_grp[1], idx, cos(M_PI * ((scale / 15.0f) * 90.0f) / 180.0), 1.0f); + } + for (idx = 0; idx < work->alt_word_len; idx++) { + scale = (time - 15.0f) - (idx * 2); + if (scale < 0 || scale > 30.0f) { + continue; + } + HuSprTPLvlSet(work->spr_grp[0], idx, 1.0f); + HuSprScaleSet(work->spr_grp[0], idx, sin(M_PI * ((scale / 30.0f) * 180.0f) / 180.0), 1.0f); + } + } + } + if (work->time == 160) { + work->stat |= 0x4; + } + if (work->time >= 160) { + work->type = 0; + work->stat |= 0x8; + } + } + } break; + + case -1: { + work->angle += seqSpeed * 0.1f; + scale = 1.0f - work->angle; + if (scale <= 0.0f) { + scale = 0.0f; + work->type = 0; + work->stat |= 0x8; + if (work->state == 0) { + MGSeqPauseEnableCtrl(1); + } + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[1], idx, scale); + } + } break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } static s32 SeqUpdateMGBowser(SeqWork *work) { - s16 idx; - float scale; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - if(work->type == 2) { - return 1; - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - s16 i; - s16 j; - float angle; - float time_angle; - float time; - float pos_x, pos_y; - - float temp_f25; - float center_x; - s16 spr_idx[16]; - float scale_arr[16]; - - - if(work->state == 0) { - if(work->time <= 60) { - center_x = (0.5*(work->word_len*56))+20.0; - for(idx=0; idxword_len; idx++) { - time = work->time-idx; - if(time < 0) { - scale_arr[idx] = 0.0f; - spr_idx[idx] = idx; - } else { - if(time > 50.0f) { - time = 50.0f; - } - time_angle = 540.0*(1.0f-(time/50.0f)); - pos_x = (28.0f+(0.5f*-(work->word_len*56)))+(idx*56); - angle = 180.0*(atan2(pos_x, center_x)/M_PI); - pos_x = work->x+(center_x*sin(M_PI*(angle+time_angle)/180.0)); - pos_y = work->y-(HU_DISP_CENTERY*(1.0-(time/50.0f))); - HuSprPosSet(work->spr_grp[0], idx, pos_x, pos_y); - temp_f25 = 0.9+(0.1*cos(M_PI*(angle+time_angle)/180.0)); - HuSprScaleSet(work->spr_grp[0], idx, temp_f25*cos(M_PI*(angle+time_angle)/180.0), temp_f25); - scale_arr[idx] = cos(M_PI*(angle+time_angle)/180.0); - spr_idx[idx] = idx; - } - } - for(i=1; iword_len; i++) { - for(idx=0; idxword_len-i; idx++) { - if(scale_arr[idx] > scale_arr[idx+1]) { - j= spr_idx[idx]; - spr_idx[idx] = spr_idx[idx+1]; - spr_idx[idx+1] = j; - angle = scale_arr[idx]; - scale_arr[idx] = scale_arr[idx+1]; - scale_arr[idx+1] = angle; - } - } - } - for(idx=0; idxword_len; idx++) { - HuSprPriSet(work->spr_grp[0], spr_idx[idx], idx+5); - } - } else { - if(work->time > 60 && work->time <= 80) { - time = work->time-60; - scale = 0.5*sin(((time*9.0f)*M_PI)/180.0); - for(i=0; iword_len; i++) { - pos_x = (28.0f*(scale+work->scale_x))+(work->x-(0.5f*((work->word_len*56)*(scale+work->scale_x))))+((i*56)*(scale+work->scale_x)); - HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], i, work->scale_x+scale, work->scale_y+scale); - } - } - - } - if(work->time == 60) { - HuAudFXPlay(36); - work->stat |= 0x10; - } - if(work->time == 80) { - work->stat |= 0x4; - SeqPlayStartFX(); - } - if(work->time >= 100) { - work->type = 0; - } - } else { - if(work->time == 1) { - if(work->state == 1) { - HuAudFXPlay(37); - } else { - HuAudFXPlay(40); - } - MGSeqPauseEnableCtrl(0); - work->stat |= 0x10; - } - if(work->time <= 20) { - for(j=1; j<4; j++) { - for(i=0; iword_len; i++) { - HuSprAttrSet(work->spr_grp[j], i, HUSPR_ATTR_DISPOFF); - } - } - time = work->time; - scale = work->scale_x+(0.5*sin(((time*9.0f)*M_PI)/180.0)); - for(i=0; iword_len; i++) { - HuSprAttrReset(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); - pos_x = ((28.0f*scale)+(work->x-(0.5f*(scale*(work->word_len*56)))))+(scale*(i*56)); - HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], i, work->scale_x+(sin((M_PI*(time*9.0f))/180.0)), work->scale_y+(sin((M_PI*(time*9.0f))/180.0))); - } - if(time == 20.0f) { - for(j=1; j<4; j++) { - for(i=0; iword_len; i++) { - HuSprAttrReset(work->spr_grp[j], i, HUSPR_ATTR_DISPOFF); - } - } - } - } else { - if(work->time > 80 && work->time <= 125) { - static float letterOfs[] = { - -30, -30, - HU_DISP_WIDTH+30, -30, - HU_DISP_CENTERX+52, HU_DISP_HEIGHT+30, - HU_DISP_WIDTH+30, HU_DISP_HEIGHT+30, - -30, HU_DISP_HEIGHT-30, - HU_DISP_WIDTH+30, 120, - HU_DISP_CENTERX+162, -30, - }; - for(i=0; i<4; i++) { - time = work->time-80-i; - if(time < 0.0f || time > 15.0f) { - continue; - } - for(idx=0; idxword_len; idx++) { - pos_x = (28.0f+(work->x-(0.5f*(work->word_len*56))))+(idx*56); - pos_x += (time/15.0f)*(letterOfs[(idx*2)]-pos_x); - pos_y = work->y+((time/15.0f)*(letterOfs[(idx*2)+1]-work->y)); - HuSprPosSet(work->spr_grp[i], idx, pos_x, pos_y); - } - } - } - } - if(work->time == 125) { - work->stat |= 0x4; - } - if(work->time >= 135) { - work->type = 0; - work->stat |= 0x8; - } - } - } - break; - - case -1: - { - work->angle += seqSpeed*0.1f; - scale = 1.0f-work->angle; - if(scale <= 0.0f) { - scale = 0.0f; - work->type = 0; - work->stat |= 0x8; - if(work->state == 0) { - MGSeqPauseEnableCtrl(1); - } - } - for(idx=0; idxword_len; idx++) { - HuSprTPLvlSet(work->spr_grp[0], idx, scale); - } - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 idx; + float scale; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + if (work->type == 2) { + return 1; + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + s16 i; + s16 j; + float angle; + float time_angle; + float time; + float pos_x, pos_y; + + float temp_f25; + float center_x; + s16 spr_idx[16]; + float scale_arr[16]; + + if (work->state == 0) { + if (work->time <= 60) { + center_x = (0.5 * (work->word_len * 56)) + 20.0; + for (idx = 0; idx < work->word_len; idx++) { + time = work->time - idx; + if (time < 0) { + scale_arr[idx] = 0.0f; + spr_idx[idx] = idx; + } + else { + if (time > 50.0f) { + time = 50.0f; + } + time_angle = 540.0 * (1.0f - (time / 50.0f)); + pos_x = (28.0f + (0.5f * -(work->word_len * 56))) + (idx * 56); + angle = 180.0 * (atan2(pos_x, center_x) / M_PI); + pos_x = work->x + (center_x * sin(M_PI * (angle + time_angle) / 180.0)); + pos_y = work->y - (HU_DISP_CENTERY * (1.0 - (time / 50.0f))); + HuSprPosSet(work->spr_grp[0], idx, pos_x, pos_y); + temp_f25 = 0.9 + (0.1 * cos(M_PI * (angle + time_angle) / 180.0)); + HuSprScaleSet(work->spr_grp[0], idx, temp_f25 * cos(M_PI * (angle + time_angle) / 180.0), temp_f25); + scale_arr[idx] = cos(M_PI * (angle + time_angle) / 180.0); + spr_idx[idx] = idx; + } + } + for (i = 1; i < work->word_len; i++) { + for (idx = 0; idx < work->word_len - i; idx++) { + if (scale_arr[idx] > scale_arr[idx + 1]) { + j = spr_idx[idx]; + spr_idx[idx] = spr_idx[idx + 1]; + spr_idx[idx + 1] = j; + angle = scale_arr[idx]; + scale_arr[idx] = scale_arr[idx + 1]; + scale_arr[idx + 1] = angle; + } + } + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprPriSet(work->spr_grp[0], spr_idx[idx], idx + 5); + } + } + else { + if (work->time > 60 && work->time <= 80) { + time = work->time - 60; + scale = 0.5 * sin(((time * 9.0f) * M_PI) / 180.0); + for (i = 0; i < work->word_len; i++) { + pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + + ((i * 56) * (scale + work->scale_x)); + HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], i, work->scale_x + scale, work->scale_y + scale); + } + } + } + if (work->time == 60) { + HuAudFXPlay(36); + work->stat |= 0x10; + } + if (work->time == 80) { + work->stat |= 0x4; + SeqPlayStartFX(); + } + if (work->time >= 100) { + work->type = 0; + } + } + else { + if (work->time == 1) { + if (work->state == 1) { + HuAudFXPlay(37); + } + else { + HuAudFXPlay(40); + } + MGSeqPauseEnableCtrl(0); + work->stat |= 0x10; + } + if (work->time <= 20) { + for (j = 1; j < 4; j++) { + for (i = 0; i < work->word_len; i++) { + HuSprAttrSet(work->spr_grp[j], i, HUSPR_ATTR_DISPOFF); + } + } + time = work->time; + scale = work->scale_x + (0.5 * sin(((time * 9.0f) * M_PI) / 180.0)); + for (i = 0; i < work->word_len; i++) { + HuSprAttrReset(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); + pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (i * 56)); + HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); + HuSprScaleSet(work->spr_grp[0], i, work->scale_x + (sin((M_PI * (time * 9.0f)) / 180.0)), + work->scale_y + (sin((M_PI * (time * 9.0f)) / 180.0))); + } + if (time == 20.0f) { + for (j = 1; j < 4; j++) { + for (i = 0; i < work->word_len; i++) { + HuSprAttrReset(work->spr_grp[j], i, HUSPR_ATTR_DISPOFF); + } + } + } + } + else { + if (work->time > 80 && work->time <= 125) { + static float letterOfs[] = { + -30, + -30, + HU_DISP_WIDTH + 30, + -30, + HU_DISP_CENTERX + 52, + HU_DISP_HEIGHT + 30, + HU_DISP_WIDTH + 30, + HU_DISP_HEIGHT + 30, + -30, + HU_DISP_HEIGHT - 30, + HU_DISP_WIDTH + 30, + 120, + HU_DISP_CENTERX + 162, + -30, + }; + for (i = 0; i < 4; i++) { + time = work->time - 80 - i; + if (time < 0.0f || time > 15.0f) { + continue; + } + for (idx = 0; idx < work->word_len; idx++) { + pos_x = (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + (idx * 56); + pos_x += (time / 15.0f) * (letterOfs[(idx * 2)] - pos_x); + pos_y = work->y + ((time / 15.0f) * (letterOfs[(idx * 2) + 1] - work->y)); + HuSprPosSet(work->spr_grp[i], idx, pos_x, pos_y); + } + } + } + } + if (work->time == 125) { + work->stat |= 0x4; + } + if (work->time >= 135) { + work->type = 0; + work->stat |= 0x8; + } + } + } break; + + case -1: { + work->angle += seqSpeed * 0.1f; + scale = 1.0f - work->angle; + if (scale <= 0.0f) { + scale = 0.0f; + work->type = 0; + work->stat |= 0x8; + if (work->state == 0) { + MGSeqPauseEnableCtrl(1); + } + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprTPLvlSet(work->spr_grp[0], idx, scale); + } + } break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } static s32 SeqInitDraw(SeqWork *work, va_list params) { - s16 word_grp; - work->state = 2; - work->seq_no = 13; - work->type = 0; - work->angle = 0.0f; - { - s32 word_flag; - s32 word_ofs; + s16 word_grp; + work->state = 2; + work->seq_no = 13; + work->type = 0; + work->angle = 0.0f; + { + s32 word_flag; + s32 word_ofs; - if(seqLanguage == 0) { - word_flag = 1; - } else { - word_flag = 0; - } - if(seqLanguage == 0) { - word_ofs = 0; - } else { - word_ofs = 3; - } - - word_grp = SeqMakeWord(work, wordMgTbl[2+word_ofs], word_flag); - } - HuSprGrpPosSet(work->spr_grp[word_grp], HU_DISP_CENTERX, HU_DISP_CENTERY); - work->param[0] = 3; - return 1; + if (seqLanguage == 0) { + word_flag = 1; + } + else { + word_flag = 0; + } + if (seqLanguage == 0) { + word_ofs = 0; + } + else { + word_ofs = 3; + } + + word_grp = SeqMakeWord(work, wordMgTbl[2 + word_ofs], word_flag); + } + HuSprGrpPosSet(work->spr_grp[word_grp], HU_DISP_CENTERX, HU_DISP_CENTERY); + work->param[0] = 3; + return 1; } static s32 SeqUpdateDraw(SeqWork *work) { - s16 idx; - float scale; - s16 group = work->spr_grp[0]; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - float time; - float scale; - float zrot; - if(work->time <= 20) { - time = work->time; - zrot = 365.0f*(time/20.0f); - scale = 1.3f*sin(M_PI*(90.0f*(time/20.0f))/180.0); - HuSprGrpScaleSet(group, scale, scale); - HuSprGrpZRotSet(group, zrot); - } - if(work->time > 20 && work->time <= 25) { - HuSprGrpZRotSet(group, 0.0f); - time = work->time-20; - scale = 1.0+(0.3*cos(M_PI*(90.0f*(time/5.0f))/180.0)); - HuSprGrpScaleSet(group, scale, scale); - } - if(work->time == 5) { - HuAudFXPlay(40); - } - if(work->time == 60) { - work->type = 0; - } - } - break; - - case -1: - { - float tp_lvl; - work->angle += seqSpeed*0.1f; - tp_lvl = 1.0f-work->angle; - if(tp_lvl <= 0.0f) { - tp_lvl = 0.0f; - work->state = 0; - work->stat |= 0x8; - } - HuSprGrpTPLvlSet(group, tp_lvl); - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 idx; + float scale; + s16 group = work->spr_grp[0]; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + float time; + float scale; + float zrot; + if (work->time <= 20) { + time = work->time; + zrot = 365.0f * (time / 20.0f); + scale = 1.3f * sin(M_PI * (90.0f * (time / 20.0f)) / 180.0); + HuSprGrpScaleSet(group, scale, scale); + HuSprGrpZRotSet(group, zrot); + } + if (work->time > 20 && work->time <= 25) { + HuSprGrpZRotSet(group, 0.0f); + time = work->time - 20; + scale = 1.0 + (0.3 * cos(M_PI * (90.0f * (time / 5.0f)) / 180.0)); + HuSprGrpScaleSet(group, scale, scale); + } + if (work->time == 5) { + HuAudFXPlay(40); + } + if (work->time == 60) { + work->type = 0; + } + } break; + + case -1: { + float tp_lvl; + work->angle += seqSpeed * 0.1f; + tp_lvl = 1.0f - work->angle; + if (tp_lvl <= 0.0f) { + tp_lvl = 0.0f; + work->state = 0; + work->stat |= 0x8; + } + HuSprGrpTPLvlSet(group, tp_lvl); + } break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } -static char *winCharNameTbl[] = { - "マリオ", - "MARIO", - "ルイージ", - "LUIGI", - "ピーチ", - "PEACH", - "ヨッシー", - "YOSHI", - "ワリオ", - "WARIO", - "ドンキー", - " DK ", - "デイジー", - "DAISY", - "ワルイージ", - "WALUIGI", - "クッパ", - "BOWSER", - "キノピオ", - "TOAD", - "ヘイホー", - "SHY GUY", - "テレサ", - "BOO", - "ノコノコ", - "KOOPA", - "ミニクッパ", - "KOOPA KID", - "クリボー", - "GOOMBA" -}; +static char *winCharNameTbl[] + = { "マリオ", "MARIO", "ルイージ", "LUIGI", "ピーチ", "PEACH", "ヨッシー", "YOSHI", "ワリオ", "WARIO", "ドンキー", " DK ", "デイジー", "DAISY", "ワルイージ", "WALUIGI", + "クッパ", "BOWSER", "キノピオ", "TOAD", "ヘイホー", "SHY GUY", "テレサ", "BOO", "ノコノコ", "KOOPA", "ミニクッパ", VERSION_NTSC ? "KOOPA KID" : "MINI BOWSER", "クリボー", "GOOMBA" }; -static char *winWordTbl[] = { - "カチ", - "WON!", - "ハイボク", - "LOSE", - "ユウショウ!", - "CHAMPION!" -}; +static char *winWordTbl[] = { "カチ", "WON!", "ハイボク", "LOSE", "ユウショウ!", "CHAMPION!" }; -static s16 winPosOfs[][5][2] = { - { - { 114, 0 }, - { -144, 0 }, - { 0, 0 }, - { 0, 0 }, - { 0, 0 } - }, - { - { 0, 35 }, - { -144, -35 }, - { 144, -35 }, - { 0, 0 }, - { 0, 0 } - }, - { - { 0, 105 }, - { 0, -105 }, - { -144, 0 }, - { 144, 0 }, - { 0, 0 } - }, - { - { 0, 105 }, - { -144, -105 }, - { 144, -105 }, - { -144, 0 }, - { 144, 0 } - } -}; +static s16 winPosOfs[][5][2] + = { { { 114, 0 }, { -144, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, { { 0, 35 }, { -144, -35 }, { 144, -35 }, { 0, 0 }, { 0, 0 } }, + { { 0, 105 }, { 0, -105 }, { -144, 0 }, { 144, 0 }, { 0, 0 } }, { { 0, 105 }, { -144, -105 }, { 144, -105 }, { -144, 0 }, { 144, 0 } } }; static s16 winnerNameW[8]; #define GET_LANG_IDX() ((seqLanguage == 0) ? 0 : 1) #define GET_WIN_KANAF() ((seqLanguage == 0) ? 1 : 0) - static s32 SeqInitWin(SeqWork *work, va_list params) { - int win_type = va_arg(params, int); - s16 word_idx; - s16 word_grp; - s32 i; - s32 j; - s32 num_winners; - float word_w; - float word_x; - if(win_type < 0 && win_type >= 6) { - return 0; - } - if(win_type == 3) { - word_idx = GET_LANG_IDX(); - } else { - if(win_type == 4) { - word_idx = GET_LANG_IDX()+2; - } else { - word_idx = GET_LANG_IDX()+4; - } - } - word_grp = SeqMakeWord(work, winWordTbl[word_idx], GET_WIN_KANAF()); - winnerNameW[0] = work->word_len*50; - for(i=0; iword_len; i++) { - HuSprPosSet(work->spr_grp[word_grp], i, 25.0f+((i*50)-(0.5f*(work->word_len*50))), 0.0f); - HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); - } - num_winners = 0; - work->win_scale = 1.0f; - for(j=0; j<4; j++) { - int winner = va_arg(params, int); - if(winner < 0) { - continue; - } - word_grp = SeqMakeWord(work, winCharNameTbl[(winner*2)+GET_LANG_IDX()], 0); - if(seqLanguage != 0) { - char *name = winCharNameTbl[(winner*2)+GET_LANG_IDX()]; - word_w = 0.0f; - for(i=word_w; iword_len; i++, name++) { - if(*name == ' ') { - word_w += 30.0f; - } else { - word_w += 50.0f; - } - } - name = winCharNameTbl[(winner*2)+GET_LANG_IDX()]; - word_x = 0.0f; - for(i=word_x; iword_len; i++, name++) { - HuSprPosSet(work->spr_grp[word_grp], i, 25.0+(word_x-(0.5*word_w)), 0.0f); - HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); - if(*name == ' ') { - word_x += 30.0f; - } else { - word_x += 50.0f; - } - } - if(work->win_scale == 0.6f || winner == 7 || winner == 13 || winner == 10) { - work->win_scale = 0.6f; - } else { - work->win_scale = 0.75f; - } - winnerNameW[num_winners+1] = word_w; - } else { - if(winner == 7 || winner == 13) { - for(i=0;iword_len; i++) { - HuSprPosSet(work->spr_grp[word_grp], i, 26.0f+((i*52)-(0.5f*(work->word_len*52))), 0.0f); - HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); - } - work->win_scale = 0.8f; - winnerNameW[num_winners+1] = work->word_len*52; - } else { - work->win_scale = 1.0f; - winnerNameW[num_winners+1] = work->word_len*56; - } - - } - num_winners++; - } - if(num_winners == 0) { - return 0; - } - work->state = 0; - work->word_len = num_winners+1; - work->angle = 0.0f; - work->type = 0; - for(j=0; jwin_scale)); - if(j == 0) { - word_x = (((HU_DISP_WIDTH-word_x)/2.0f)+(word_x-(winnerNameW[0]/2)))-HU_DISP_CENTERX; - } else { - word_x = (((HU_DISP_WIDTH-word_x)/2.0f)+(winnerNameW[1]/2))-HU_DISP_CENTERX; - } - } else { - if(abs(winPosOfs[num_winners-1][j][0]) == 144.0f) { - if(winnerNameW[j]+32 < HU_DISP_CENTERX) { - word_x = 176.0f; - } else { - word_x = 32.0f+((winnerNameW[j]*work->win_scale)/2.0f); - } - if(winPosOfs[num_winners-1][j][0] < 0) { - word_x = -(HU_DISP_CENTERX-word_x); - } else { - word_x = (HU_DISP_WIDTH-word_x)-HU_DISP_CENTERX; - } - } else { - word_x = winPosOfs[num_winners-1][j][0]; - } - } - HuSprGrpPosSet(work->spr_grp[j], HU_DISP_CENTERX+word_x, HU_DISP_CENTERY+winPosOfs[num_winners-1][j][1]); - } - if(seqPauseF) { - work->type = 1; - num_winners++; - for(j=0; jspr_grp[j], 0, HUSPR_ATTR_DISPOFF); - } - } else { - work->param[0] = 3; - } - return 1; + int win_type = va_arg(params, int); + s16 word_idx; + s16 word_grp; + s32 i; + s32 j; + s32 num_winners; + float word_w; + float word_x; + if (win_type < 0 && win_type >= 6) { + return 0; + } + if (win_type == 3) { + word_idx = GET_LANG_IDX(); + } + else { + if (win_type == 4) { + word_idx = GET_LANG_IDX() + 2; + } + else { + word_idx = GET_LANG_IDX() + 4; + } + } + word_grp = SeqMakeWord(work, winWordTbl[word_idx], GET_WIN_KANAF()); + winnerNameW[0] = work->word_len * 50; + for (i = 0; i < work->word_len; i++) { + HuSprPosSet(work->spr_grp[word_grp], i, 25.0f + ((i * 50) - (0.5f * (work->word_len * 50))), 0.0f); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + } + num_winners = 0; + work->win_scale = 1.0f; + for (j = 0; j < 4; j++) { + int winner = va_arg(params, int); + (void)winner; // to match PAL + if (winner < 0) { + continue; + } + word_grp = SeqMakeWord(work, winCharNameTbl[(winner * 2) + GET_LANG_IDX()], 0); +#if VERSION_NTSC + if (seqLanguage != 0) { + char *name = winCharNameTbl[(winner * 2) + GET_LANG_IDX()]; + word_w = 0.0f; + for (i = word_w; i < work->word_len; i++, name++) { + if (*name == ' ') { + word_w += 30.0f; + } + else { + word_w += 50.0f; + } + } + name = winCharNameTbl[(winner * 2) + GET_LANG_IDX()]; + word_x = 0.0f; + for (i = word_x; i < work->word_len; i++, name++) { + HuSprPosSet(work->spr_grp[word_grp], i, 25.0 + (word_x - (0.5 * word_w)), 0.0f); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + if (*name == ' ') { + word_x += 30.0f; + } + else { + word_x += 50.0f; + } + } + if (work->win_scale == 0.6f || winner == 7 || winner == 13 || winner == 10) { + work->win_scale = 0.6f; + } + else { + work->win_scale = 0.75f; + } + winnerNameW[num_winners + 1] = word_w; + } + else { + if (winner == 7 || winner == 13) { + for (i = 0; i < work->word_len; i++) { + HuSprPosSet(work->spr_grp[word_grp], i, 26.0f + ((i * 52) - (0.5f * (work->word_len * 52))), 0.0f); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + } + work->win_scale = 0.8f; + winnerNameW[num_winners + 1] = work->word_len * 52; + } + else { + work->win_scale = 1.0f; + winnerNameW[num_winners + 1] = work->word_len * 56; + } + } +#else + for (i = 0; i < work->word_len; i++) { + HuSprPosSet(work->spr_grp[word_grp], i, 25.0f + ((i * 50) - (0.5f * (work->word_len * 50))), 0.0f); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + } + if ((work->win_scale == 0.5f) || (winner == 13)) { + work->win_scale = 0.5f; + } + else if ((work->win_scale == 0.6f) || (winner == 7) || (winner == 10)) { + work->win_scale = 0.6f; + } + else { + work->win_scale = 0.75f; + } + winnerNameW[num_winners + 1] = work->word_len * 50; +#endif + num_winners++; + } + if (num_winners == 0) { + return 0; + } + work->state = 0; + work->word_len = num_winners + 1; + work->angle = 0.0f; + work->type = 0; + for (j = 0; j < num_winners + 1; j++) { + if (num_winners == 1) { + word_x = 32.0f + ((float)winnerNameW[0] + (winnerNameW[1] * work->win_scale)); + if (j == 0) { + word_x = (((HU_DISP_WIDTH - word_x) / 2.0f) + (word_x - (winnerNameW[0] / 2))) - HU_DISP_CENTERX; + } + else { + word_x = (((HU_DISP_WIDTH - word_x) / 2.0f) + (winnerNameW[1] / 2)) - HU_DISP_CENTERX; + } + } + else { + if (abs(winPosOfs[num_winners - 1][j][0]) == 144.0f) { +#if VERSION_NTSC + if (winnerNameW[j] + 32 < HU_DISP_CENTERX) { + word_x = 176.0f; + } + else { + word_x = 32.0f + ((winnerNameW[j] * work->win_scale) / 2.0f); + } + if (winPosOfs[num_winners - 1][j][0] < 0) { + word_x = -(HU_DISP_CENTERX - word_x); + } + else { + word_x = (HU_DISP_WIDTH - word_x) - HU_DISP_CENTERX; + } +#else + if (32.0f + (work->win_scale * winnerNameW[j]) < HU_DISP_CENTERX) { + word_x = 32.0f + ((winnerNameW[j] * work->win_scale) / 2.0f); + } + else { + word_x = 120.0f; + } + if (winPosOfs[num_winners - 1][j][0] < 0) { + word_x = -word_x; + } +#endif + } + else { + word_x = winPosOfs[num_winners - 1][j][0]; + } + } + HuSprGrpPosSet(work->spr_grp[j], HU_DISP_CENTERX + word_x, HU_DISP_CENTERY + winPosOfs[num_winners - 1][j][1]); + } + if (seqPauseF) { + work->type = 1; + num_winners++; + for (j = 0; j < num_winners; j++) { + HuSprAttrSet(work->spr_grp[j], 0, HUSPR_ATTR_DISPOFF); + } + } + else { + work->param[0] = 3; + } + return 1; } - static s32 SeqUpdateWin(SeqWork *work) { - s32 idx; - float tp_lvl; - s16 group = work->spr_grp[0]; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - float time; - float scale; - float zrot; - if(work->time <= 20) { - time = work->time; - zrot = 365.0f*(time/20.0f); - scale = sin(M_PI*(90.0f*(time/20.0f))/180.0); - HuSprGrpScaleSet(work->spr_grp[0], scale, scale); - HuSprGrpZRotSet(work->spr_grp[0], zrot); - scale = 1.0+(5.0*cos(M_PI*(90.0f*(time/20.0f))/180.0)); - tp_lvl = time/20.0f; - for(idx=1; idxword_len; idx++) { - HuSprGrpTPLvlSet(work->spr_grp[idx], tp_lvl); - HuSprGrpScaleSet(work->spr_grp[idx], scale*work->win_scale, scale); - } - } - if(work->time > 20 && work->time <= 22) { - HuSprGrpZRotSet(work->spr_grp[0], 0.0f); - for(idx=1; idxword_len; idx++) { - float pos_x; - float ofs[2]; - if(work->time == 21) { - ofs[0] = ((idx & 0x1)*2)-1; - ofs[1] = (idx & 0x2) ? 2 : -1; - } else { - ofs[0] = ofs[1] = 0.0f; - } - if(work->word_len == 2) { - pos_x = winnerNameW[1]+winnerNameW[0]+32; - pos_x = (((HU_DISP_WIDTH-pos_x)/2.0f)+(winnerNameW[1]/2))-HU_DISP_CENTERX; - } else { - if(abs(winPosOfs[work->word_len-2][idx][0]) == 144.0f) { - if(winnerNameW[idx]+32 < HU_DISP_CENTERX) { - pos_x = 176.0f; - } else { - pos_x = 32.0f+((winnerNameW[idx]*work->win_scale)/2.0f); - } - if(winPosOfs[work->word_len-2][idx][0] < 0) { - pos_x = -(HU_DISP_CENTERX-pos_x); - } else { - pos_x = (HU_DISP_WIDTH-pos_x)-HU_DISP_CENTERX; - } - } else { - pos_x = winPosOfs[work->word_len-2][idx][0]; - } - } - HuSprGrpPosSet(work->spr_grp[idx], (HU_DISP_CENTERX+pos_x)+ofs[0], ofs[1]+(HU_DISP_CENTERY+winPosOfs[work->word_len-2][idx][1])); - } - } - if(work->time == 125) { - work->type = 0; - } - } - break; - - case -1: - { - work->angle += seqSpeed*0.1f; - tp_lvl = 1.0f-work->angle; - if(tp_lvl <= 0.0f) { - tp_lvl = 0.0f; - work->state = 0; - work->stat |= 0x8; - } - for(idx=0; idxword_len; idx++) { - HuSprGrpTPLvlSet(work->spr_grp[idx], tp_lvl); - } - } - break; - - default: - break; - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s32 idx; + float tp_lvl; + s16 group = work->spr_grp[0]; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + float time; + float scale; + float zrot; + if (work->time <= 20) { + time = work->time; + zrot = 365.0f * (time / 20.0f); + scale = sin(M_PI * (90.0f * (time / 20.0f)) / 180.0); + HuSprGrpScaleSet(work->spr_grp[0], scale, scale); + HuSprGrpZRotSet(work->spr_grp[0], zrot); + scale = 1.0 + (5.0 * cos(M_PI * (90.0f * (time / 20.0f)) / 180.0)); + tp_lvl = time / 20.0f; + for (idx = 1; idx < work->word_len; idx++) { + HuSprGrpTPLvlSet(work->spr_grp[idx], tp_lvl); + HuSprGrpScaleSet(work->spr_grp[idx], scale * work->win_scale, scale); + } + } + if (work->time > 20 && work->time <= 22) { + HuSprGrpZRotSet(work->spr_grp[0], 0.0f); + for (idx = 1; idx < work->word_len; idx++) { + float pos_x; + float ofs[2]; + if (work->time == 21) { + ofs[0] = ((idx & 0x1) * 2) - 1; + ofs[1] = (idx & 0x2) ? 2 : -1; + } + else { + ofs[0] = ofs[1] = 0.0f; + } + if (work->word_len == 2) { + pos_x = winnerNameW[1] + winnerNameW[0] + 32; + pos_x = (((HU_DISP_WIDTH - pos_x) / 2.0f) + (winnerNameW[1] / 2)) - HU_DISP_CENTERX; + } + else { + if (abs(winPosOfs[work->word_len - 2][idx][0]) == 144.0f) { + if (winnerNameW[idx] + 32 < HU_DISP_CENTERX) { + pos_x = VERSION_NTSC ? 176.0f : winnerNameW[idx] / 2 + 32; + } + else { + pos_x = VERSION_NTSC ? 32.0f + ((winnerNameW[idx] * work->win_scale) / 2.0f) : 128.0f; + } + if (winPosOfs[work->word_len - 2][idx][0] < 0) { + pos_x = VERSION_NTSC ? -(HU_DISP_CENTERX - pos_x) : -pos_x; + } +#if VERSION_NTSC + else { + pos_x = (HU_DISP_WIDTH - pos_x) - HU_DISP_CENTERX; + } +#endif + } + else { + pos_x = winPosOfs[work->word_len - 2][idx][0]; + } + } + HuSprGrpPosSet(work->spr_grp[idx], (HU_DISP_CENTERX + pos_x) + ofs[0], + ofs[1] + (HU_DISP_CENTERY + winPosOfs[work->word_len - 2][idx][1])); + } + } + if (work->time == 125) { + work->type = 0; + } + } break; + + case -1: { + work->angle += seqSpeed * 0.1f; + tp_lvl = 1.0f - work->angle; + if (tp_lvl <= 0.0f) { + tp_lvl = 0.0f; + work->state = 0; + work->stat |= 0x8; + } + for (idx = 0; idx < work->word_len; idx++) { + HuSprGrpTPLvlSet(work->spr_grp[idx], tp_lvl); + } + } break; + + default: + break; + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } static s32 SeqInitRecord(SeqWork *work, va_list params) { - AnimData *spr_data; - s16 spr_grp; - s16 time_pos[2]; - s16 i; - s16 sprite; - s16 digit_idx; - s32 digit; - seqRecordVal = va_arg(params, int); - work->type = 0; - work->angle = 0.0f; - work->spr_grp[0] = spr_grp = HuSprGrpCreate(10); - spr_data = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 9))); - sprite = HuSprCreate(spr_data, 0, 0); - HuSprGrpMemberSet(spr_grp, 0, sprite); - HuSprPosSet(spr_grp, 0, 0.0f, -32.0f); - spr_data = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 8))); - sprite = HuSprCreate(spr_data, 0, 0); - HuSprGrpMemberSet(spr_grp, 1, sprite); - spr_data = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 7))); - for(i=0; i<8; i++) { - sprite = HuSprCreate(spr_data, 0, 0); - HuSprGrpMemberSet(spr_grp, i+2, sprite); - } - if(omcurovl == OVL_M407 || omcurovl == OVL_M453 || omcurovl == OVL_M459 || omcurovl == OVL_M460 || omcurovl == OVL_M462 || omcurovl == OVL_M442) { - digit_idx = 0; - if(seqRecordVal > 9999) { - seqRecordVal = 9999; - } - digit = seqRecordVal/1000; - if(digit != 0) { - HuSprBankSet(spr_grp, digit_idx+2, digit); - seqRecordVal -= digit*1000; - digit_idx++; - } - - digit = seqRecordVal/100; - if(digit != 0 || digit_idx != 0) { - HuSprBankSet(spr_grp, digit_idx+2, digit); - seqRecordVal -= digit*100; - digit_idx++; - } - digit = seqRecordVal/10; - if(digit != 0 || digit_idx != 0) { - HuSprBankSet(spr_grp, digit_idx+2, digit); - seqRecordVal -= digit*10; - digit_idx++; - } - HuSprBankSet(spr_grp, digit_idx+2, seqRecordVal); - digit_idx++; - for(i=digit_idx; i<8; i++) { - HuSprAttrSet(spr_grp, i+2, HUSPR_ATTR_DISPOFF); - } - HuSprPosSet(spr_grp, 1, (-((digit_idx*44)+48)/2)+24, 32.0f); - for(i=0; iparam[0] = 3; - return 1; + AnimData *spr_data; + s16 spr_grp; + s16 time_pos[2]; + s16 i; + s16 sprite; + s16 digit_idx; + s32 digit; + seqRecordVal = va_arg(params, int); + work->type = 0; + work->angle = 0.0f; + work->spr_grp[0] = spr_grp = HuSprGrpCreate(10); + spr_data = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 9))); + sprite = HuSprCreate(spr_data, 0, 0); + HuSprGrpMemberSet(spr_grp, 0, sprite); + HuSprPosSet(spr_grp, 0, 0.0f, -32.0f); + spr_data = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 8))); + sprite = HuSprCreate(spr_data, 0, 0); + HuSprGrpMemberSet(spr_grp, 1, sprite); + spr_data = HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 7))); + for (i = 0; i < 8; i++) { + sprite = HuSprCreate(spr_data, 0, 0); + HuSprGrpMemberSet(spr_grp, i + 2, sprite); + } + if (omcurovl == OVL_M407 || omcurovl == OVL_M453 || omcurovl == OVL_M459 || omcurovl == OVL_M460 || omcurovl == OVL_M462 + || omcurovl == OVL_M442) { + digit_idx = 0; + if (seqRecordVal > 9999) { + seqRecordVal = 9999; + } + digit = seqRecordVal / 1000; + if (digit != 0) { + HuSprBankSet(spr_grp, digit_idx + 2, digit); + seqRecordVal -= digit * 1000; + digit_idx++; + } + + digit = seqRecordVal / 100; + if (digit != 0 || digit_idx != 0) { + HuSprBankSet(spr_grp, digit_idx + 2, digit); + seqRecordVal -= digit * 100; + digit_idx++; + } + digit = seqRecordVal / 10; + if (digit != 0 || digit_idx != 0) { + HuSprBankSet(spr_grp, digit_idx + 2, digit); + seqRecordVal -= digit * 10; + digit_idx++; + } + HuSprBankSet(spr_grp, digit_idx + 2, seqRecordVal); + digit_idx++; + for (i = digit_idx; i < 8; i++) { + HuSprAttrSet(spr_grp, i + 2, HUSPR_ATTR_DISPOFF); + } + HuSprPosSet(spr_grp, 1, (-((digit_idx * 44) + 48) / 2) + 24, 32.0f); + for (i = 0; i < digit_idx; i++) { + HuSprPosSet(spr_grp, i + 2, (-((digit_idx * 44) + 48) / 2) + 70 + (i * 44), 32.0f); + } + } + else { + s16 x; + digit_idx = 0; + digit = seqRecordVal / (600 * REFRESH_RATE); + if (digit != 0) { + HuSprBankSet(spr_grp, digit_idx + 2, digit); + seqRecordVal -= digit * (600 * REFRESH_RATE); + digit_idx++; + } + digit = seqRecordVal / (60 * REFRESH_RATE); + HuSprBankSet(spr_grp, digit_idx + 2, digit); + seqRecordVal -= digit * (60 * REFRESH_RATE); + digit_idx++; + HuSprBankSet(spr_grp, digit_idx + 2, 10); + time_pos[0] = digit_idx; + digit_idx++; + digit = seqRecordVal / (10 * REFRESH_RATE); + HuSprBankSet(spr_grp, digit_idx + 2, digit); + seqRecordVal -= digit * (10 * REFRESH_RATE); + digit_idx++; + digit = seqRecordVal / REFRESH_RATE; + HuSprBankSet(spr_grp, digit_idx + 2, digit); + seqRecordVal -= digit * REFRESH_RATE; + digit_idx++; + HuSprBankSet(spr_grp, digit_idx + 2, 11); + time_pos[1] = digit_idx; + digit_idx++; + if (omcurovl == OVL_M405 || omcurovl == OVL_M432 || omcurovl == OVL_M461) { + seqRecordVal = (float)seqRecordVal * (101.5 / REFRESH_RATE); + } + else { + seqRecordVal = (float)seqRecordVal * (100.0 / REFRESH_RATE); + } + digit = seqRecordVal / 10; + HuSprBankSet(spr_grp, digit_idx + 2, digit); + seqRecordVal -= digit * 10; + digit_idx++; + HuSprBankSet(spr_grp, digit_idx + 2, seqRecordVal); + digit_idx++; + for (i = digit_idx; i < 8; i++) { + HuSprAttrSet(spr_grp, i + 2, HUSPR_ATTR_DISPOFF); + } + HuSprPosSet(spr_grp, 1, (-((digit_idx * 44) + 4) / 2) + 24, 32.0f); + x = (-((digit_idx * 44) + 4) / 2) + 70; + for (i = 0; i < digit_idx; i++) { + HuSprPosSet(spr_grp, i + 2, x, 32.0f); + if (time_pos[0] == i || time_pos[1] == i) { + x += 22; + } + else { + x += 44; + } + } + } + HuSprGrpPosSet(spr_grp, HU_DISP_CENTERX, HU_DISP_CENTERY); + work->param[0] = 3; + return 1; } static s32 SeqUpdateRecord(SeqWork *work) { - s16 group; - if(_CheckFlag(FLAG_ID_MAKE(1, 12))) { - work->state = 0; - work->stat |= 0xC; - } else { - group = work->spr_grp[0]; - if(work->param[0] != 0 && work->type != -1) { - switch(work->param[0]) { - case 2: - if(work->param[1] != -1) { - (void)work; //HACK: to introduce extra branch - } else { - work->type = -1; - work->angle = 0.0f; - } - work->param[0] = 0; - break; - - case 1: - work->time_max = work->param[1]; - work->param[0] = 0; - break; - - case 3: - work->type = 1; - work->param[0] = 0; - break; - - default: - work->param[0] = 0; - break; - } - } - work->time += seqSpeed; - if(work->time >= work->time_max && work->type != -1) { - work->stat |= 0x4; - work->type = -1; - work->angle = 0.0f; - } - if(work->type) { - switch(work->type) { - case 1: - { - if(work->time <= 10) { - HuSprGrpTPLvlSet(group, work->time/10.0); - } - if(work->time == 5) { - HuAudFXPlay(38); - } - if(work->time == 30) { - work->type = 0; - } - } - break; - - case -1: - { - float tp_lvl; - work->angle += seqSpeed*0.1f; - tp_lvl = 1.0f-work->angle; - if(tp_lvl <= 0.0f) { - tp_lvl = 0.0f; - work->state = 0; - work->stat |= 0x8; - } - HuSprGrpTPLvlSet(group, tp_lvl); - } - break; - - default: - break; - } - } - } - if(seqDoneF || (work->stat & 0x8)) { - MGSeqSprKill(work); - return 0; - } - return 1; + s16 group; + if (_CheckFlag(FLAG_ID_MAKE(1, 12))) { + work->state = 0; + work->stat |= 0xC; + } + else { + group = work->spr_grp[0]; + if (work->param[0] != 0 && work->type != -1) { + switch (work->param[0]) { + case 2: + if (work->param[1] != -1) { + (void)work; // HACK: to introduce extra branch + } + else { + work->type = -1; + work->angle = 0.0f; + } + work->param[0] = 0; + break; + + case 1: + work->time_max = work->param[1]; + work->param[0] = 0; + break; + + case 3: + work->type = 1; + work->param[0] = 0; + break; + + default: + work->param[0] = 0; + break; + } + } + work->time += seqSpeed; + if (work->time >= work->time_max && work->type != -1) { + work->stat |= 0x4; + work->type = -1; + work->angle = 0.0f; + } + if (work->type) { + switch (work->type) { + case 1: { + if (work->time <= 10) { + HuSprGrpTPLvlSet(group, work->time / 10.0); + } + if (work->time == 5) { + HuAudFXPlay(38); + } + if (work->time == 30) { + work->type = 0; + } + } break; + + case -1: { + float tp_lvl; + work->angle += seqSpeed * 0.1f; + tp_lvl = 1.0f - work->angle; + if (tp_lvl <= 0.0f) { + tp_lvl = 0.0f; + work->state = 0; + work->stat |= 0x8; + } + HuSprGrpTPLvlSet(group, tp_lvl); + } break; + + default: + break; + } + } + } + if (seqDoneF || (work->stat & 0x8)) { + MGSeqSprKill(work); + return 0; + } + return 1; } static void PauseProc(void); void MGSeqPauseInit(void) { - MGSeqPauseEnableCtrl(0); - HuWinInit(1); - pauseProcess = HuPrcCreate(PauseProc, 100, 4096, 0); - HuPrcSetStat(pauseProcess, PROCESS_STAT_PAUSE_EN|PROCESS_STAT_UPAUSE_EN); - pauseActiveF = 1; - pauseExitF = 0; - pauseWaitF = 0; + MGSeqPauseEnableCtrl(0); + HuWinInit(1); + pauseProcess = HuPrcCreate(PauseProc, 100, 4096, 0); + HuPrcSetStat(pauseProcess, PROCESS_STAT_PAUSE_EN | PROCESS_STAT_UPAUSE_EN); + pauseActiveF = 1; + pauseExitF = 0; + pauseWaitF = 0; } -#define PAUSE_WIN_X (HU_DISP_CENTERX-206) -#define PAUSE_WIN_DIST (HU_DISP_CENTERX+112) -#define PAUSE_EXIT_Y (HU_DISP_HEIGHT-80) +#define PAUSE_WIN_X (HU_DISP_CENTERX - 206) +#define PAUSE_WIN_DIST (HU_DISP_CENTERX + 112) +#define PAUSE_EXIT_Y (HU_DISP_HEIGHT - 80) static void PauseProc(void) { - s16 mg; - s16 i; - s16 j; - - s16 char_mess_map[4]; - s16 char_mess[4][4]; - s16 window[3] = { -1, -1, -1 }; - - SeqWork work; - static char *pauseStr[] = { - "ポーズ", - "PAUSE" - }; - float ratio; - - HuAudFXPlay(5); - for(i=0; i<16; i++) { - work.sprite[i] = work.spr_grp[i] = -1; - } - SeqMakeWord(&work, pauseStr[GET_LANG_IDX()], 0); - for(i=0; iwork[0] == 0) { - if(omMgIndexGet(omcurovl) == -1) { - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - object->work[0]++; - } - if(!omPauseChk() || _CheckFlag(FLAG_ID_MAKE(1, 12)) || !pauseWaitF) { - return; - } - for(i=input=0; i<4; i++) { - input |= HuPadBtnDown[i]; - } - if(input & PAD_TRIGGER_Z) { - HuAudFXPlay(3); - pauseExitF = 1; - omSysPauseCtrl(0); - omSysExitReq = 1; - mgQuitExtraF = 1; - omDelObjEx(HuPrcCurrentGet(), object); - } + s16 input; + s16 i; + mgQuitExtraF = 0; + if (object->work[0] == 0) { + if (omMgIndexGet(omcurovl) == -1) { + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + object->work[0]++; + } + if (!omPauseChk() || _CheckFlag(FLAG_ID_MAKE(1, 12)) || !pauseWaitF) { + return; + } + for (i = input = 0; i < 4; i++) { + input |= HuPadBtnDown[i]; + } + if (input & PAD_TRIGGER_Z) { + HuAudFXPlay(3); + pauseExitF = 1; + omSysPauseCtrl(0); + omSysExitReq = 1; + mgQuitExtraF = 1; + omDelObjEx(HuPrcCurrentGet(), object); + } } From f3b922a476230add1edb8ed44c7359d98e10b253 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sun, 17 Nov 2024 12:35:21 -0600 Subject: [PATCH 150/311] Match window.c in PAL --- config/GMPP01_00/symbols.txt | 2 +- configure.py | 2 +- src/game/window.c | 63 +++++++++++++++++++++++++++++++++++- 3 files changed, 64 insertions(+), 3 deletions(-) diff --git a/config/GMPP01_00/symbols.txt b/config/GMPP01_00/symbols.txt index be859f5f..03c4876c 100644 --- a/config/GMPP01_00/symbols.txt +++ b/config/GMPP01_00/symbols.txt @@ -5549,7 +5549,7 @@ wipeData = .bss:0x801AF700; // type:object size:0x4C data:4byte winData = .bss:0x801AF760; // type:object size:0x3000 align:32 data:byte winKey = .bss:0x801B2760; // type:object size:0x10 winComKeyBuf = .bss:0x801B2770; // type:object size:0x1400 -mesWInsert = .bss:0x801B3B70; // type:object size:0x10 +mesWInsert = .bss:0x801B3B70; // type:object size:0x10 scope:local ARInfo = .bss:0x801B3B80; // type:object size:0x400 data:byte arqReq = .bss:0x801B3F80; // type:object size:0x20 scope:local ARQueBuf = .bss:0x801B3FA0; // type:object size:0x280 scope:local diff --git a/configure.py b/configure.py index 5e690faf..d80ab1c0 100644 --- a/configure.py +++ b/configure.py @@ -409,7 +409,7 @@ config.libs = [ Object(Matching, "game/ClusterExec.c"), Object(Matching, "game/ShapeExec.c"), Object(Matching, "game/wipe.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/window.c"), + Object(Matching, "game/window.c"), Object(Matching, "game/messdata.c"), Object(Matching, "game/card.c"), Object(Matching, "game/armem.c"), diff --git a/src/game/window.c b/src/game/window.c index a2018b5d..816514f3 100644 --- a/src/game/window.c +++ b/src/game/window.c @@ -58,7 +58,12 @@ void *messDataPtr; static s32 messDataNo; static s16 winMaxWidth; static s16 winMaxHeight; +#if VERSION_NTSC static u8 mesWInsert[8]; +#else +static u16 mesWInsert[8]; +#endif + static u8 winTabSize; static u8 winInsertF; static u32 winAMemP; @@ -96,6 +101,7 @@ static spcFontTblData spcFontTbl[] = { { &cardAnimB, 0, 32, 32, 16, 16 } }; +#if VERSION_NTSC u8 charWETbl[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -118,6 +124,31 @@ u8 charWETbl[] = { 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }; +#else +u8 charWETbl[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 18, 20, 12, 12, 11, 14, + 8, 13, 12, 12, 12, 12, 12, 12, 12, 9, 11, 12, 11, 15, 12, 13, + 12, 13, 12, 12, 11, 12, 11, 15, 12, 13, 11, 12, 6, 8, 8, 12, + 20, 12, 11, 12, 11, 11, 9, 12, 11, 4, 8, 11, 4, 14, 11, 12, + 11, 12, 9, 11, 9, 11, 11, 15, 11, 11, 11, 4, 13, 8, 14, 12, + 9, 8, 8, 8, 20, 4, 12, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 12, 12, 12, 12, 12, 12, 12, 12, 8, 8, 12, 12, 12, 12, 12, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 13, 13, 6, 12, 18, 14, 14, 8, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 10, 10, 10, 12, 12, 12, 12, 12, 10, 10, 12, 12, 10, 10, 10, + 10, 7, 7, 12, 12, 10, 12, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +}; + +#endif + u8 charWJTbl[] = { 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 20, 20, 20, @@ -171,12 +202,29 @@ static s32 frameFileTbl[] = { WIN_FRAME1_ANM }; +#if VERSION_NTSC static char *mesDataTbl[] = { "mess/mini.dat", "mess/board.dat", "mess/mini_e.dat", "mess/board_e.dat" }; +#else +static char *mesDataTbl[] = { + "mess/mini.dat", + "mess/board.dat", + "mess/mini_e.dat", + "mess/board_e.dat", + "mess/mini_g.dat", + "mess/board_g.dat", + "mess/mini_f.dat", + "mess/board_f.dat", + "mess/mini_i.dat", + "mess/board_i.dat", + "mess/mini_s.dat", + "mess/board_s.dat" +}; +#endif static s32 winVoiceTbl[] = { 0x37, 0x36, 0x38, 0x44, @@ -609,12 +657,13 @@ static inline void charEntry(s16 window, s16 x, s16 y, s16 char_idx, s16 color) static void HuWinDrawMes(s16 window) { WindowData *window_ptr = &winData[window]; HuSprGrp *group = &HuSprGrpData[window_ptr->group]; - s16 c; s16 i; s16 char_w; s16 tab_w; s16 insert_mess; s16 mess_end; + s16 c; + s16 shadow_color; s16 color; s16 mess_w; @@ -790,6 +839,7 @@ static void HuWinDrawMes(s16 window) { } c = window_ptr->mess[0]; window_ptr->attr |= 0x200; + #if VERSION_NTSC if (window_ptr->mess[1] == 128) { if (c >= 150 && c <= 164) { c = c+106; @@ -809,6 +859,7 @@ static void HuWinDrawMes(s16 window) { } window_ptr->mess++; } + #endif color = (window_ptr->attr & 0x20) ? 8 : window_ptr->mess_color; if (window_ptr->attr & 1) { shadow_color = 0; @@ -1249,11 +1300,15 @@ void HuWinMesRead(s32 mess_data_no) { HuMemDirectFree(messDataPtr); } messDataNo = mess_data_no; + #if VERSION_NTSC if (LanguageNo == 0) { mess_path = mesDataTbl[messDataNo]; } else { mess_path = mesDataTbl[messDataNo + 2]; } + #else + mess_path = mesDataTbl[messDataNo+(LanguageNo*2)]; + #endif dvd_mess = HuDvdDataRead(mess_path); messDataPtr = HuMemDirectMalloc(HEAP_SYSTEM, DirDataSize); memcpy(messDataPtr, dvd_mess, DirDataSize); @@ -1653,9 +1708,15 @@ static void GetMesMaxSizeSub(u32 mess) { char_w = mesWInsert[*mess_data - 1]; break; } + #if VERSION_NTSC if ((*mess_data != 255 && *mess_data >= 32) || *mess_data == 16) { cr_flag = 1; } + #else + if ((*mess_data != 255 && *mess_data >= 32) || *mess_data == 16 || mess_data[-1] == 31) { + cr_flag = 1; + } + #endif line_w += char_w; line_h += char_h; mess_data++; From ddf7241695384781e8bafbfec6bf83657a73a34f Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sun, 17 Nov 2024 14:32:24 -0600 Subject: [PATCH 151/311] More splits and RELS m401, mpex, saf, staff have edits. Split modeltest, mstory4, present, result, saf, selmenu, and ztar --- config/GMPE01_00/rels/mpexDll/symbols.txt | 2 +- config/GMPP01_00/rels/m401Dll/splits.txt | 15 + config/GMPP01_00/rels/m401Dll/symbols.txt | 2 +- config/GMPP01_00/rels/modeltestDll/splits.txt | 21 + .../GMPP01_00/rels/modeltestDll/symbols.txt | 2 +- config/GMPP01_00/rels/mpexDll/splits.txt | 26 ++ config/GMPP01_00/rels/mpexDll/symbols.txt | 11 +- config/GMPP01_00/rels/mstory4Dll/splits.txt | 6 + config/GMPP01_00/rels/present/splits.txt | 29 ++ config/GMPP01_00/rels/present/symbols.txt | 368 +++++++++-------- config/GMPP01_00/rels/resultDll/splits.txt | 20 + config/GMPP01_00/rels/resultDll/symbols.txt | 241 +++++------ config/GMPP01_00/rels/safDll/splits.txt | 5 + config/GMPP01_00/rels/safDll/symbols.txt | 21 +- config/GMPP01_00/rels/selmenuDll/splits.txt | 9 + config/GMPP01_00/rels/selmenuDll/symbols.txt | 391 +++++++++--------- config/GMPP01_00/rels/staffDll/splits.txt | 9 + config/GMPP01_00/rels/staffDll/symbols.txt | 32 +- config/GMPP01_00/rels/ztardll/splits.txt | 20 + config/GMPP01_00/rels/ztardll/symbols.txt | 2 +- configure.py | 38 +- src/REL/m401Dll/main.c | 4 + src/REL/mpexDll/mgname.c | 4 +- src/REL/mpexDll/mpex.c | 127 ++++-- src/REL/safDll/main.c | 2 + src/REL/staffDll/main.c | 86 +++- 26 files changed, 898 insertions(+), 595 deletions(-) diff --git a/config/GMPE01_00/rels/mpexDll/symbols.txt b/config/GMPE01_00/rels/mpexDll/symbols.txt index d4725e33..994e2382 100644 --- a/config/GMPE01_00/rels/mpexDll/symbols.txt +++ b/config/GMPE01_00/rels/mpexDll/symbols.txt @@ -437,7 +437,7 @@ lbl_1_data_74C = .data:0x0000074C; // type:object size:0x10 lbl_1_data_75C = .data:0x0000075C; // type:object size:0x20 lbl_1_data_77C = .data:0x0000077C; // type:object size:0x4 data:4byte lbl_1_data_780 = .data:0x00000780; // type:object size:0x8 data:4byte -lbl_1_data_788 = .data:0x00000788; // type:object size:0x318 +fontDataTbl = .data:0x00000788; // type:object size:0x318 scope:local lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x60 data:4byte lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x44 data:float diff --git a/config/GMPP01_00/rels/m401Dll/splits.txt b/config/GMPP01_00/rels/m401Dll/splits.txt index 531cd645..d7d2d541 100644 --- a/config/GMPP01_00/rels/m401Dll/splits.txt +++ b/config/GMPP01_00/rels/m401Dll/splits.txt @@ -5,3 +5,18 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m401Dll/main.c: + .text start:0x000000A0 end:0x00010244 + .rodata start:0x00000000 end:0x00000450 + .data start:0x00000000 end:0x00000478 + .bss start:0x00000000 end:0x00000120 + +REL/m401Dll/main_ex.c: + .text start:0x00010244 end:0x00014E18 + .rodata start:0x00000450 end:0x000005E8 + .data start:0x00000478 end:0x00000498 + .bss start:0x00000120 end:0x00000254 diff --git a/config/GMPP01_00/rels/m401Dll/symbols.txt b/config/GMPP01_00/rels/m401Dll/symbols.txt index c4412263..98566a01 100644 --- a/config/GMPP01_00/rels/m401Dll/symbols.txt +++ b/config/GMPP01_00/rels/m401Dll/symbols.txt @@ -1,6 +1,6 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_2_A0 = .text:0x000000A0; // type:function size:0x66C +ObjectSetup = .text:0x000000A0; // type:function size:0x66C fn_2_70C = .text:0x0000070C; // type:function size:0x304 fn_2_A10 = .text:0x00000A10; // type:function size:0x88 fn_2_A98 = .text:0x00000A98; // type:function size:0x54 diff --git a/config/GMPP01_00/rels/modeltestDll/splits.txt b/config/GMPP01_00/rels/modeltestDll/splits.txt index 531cd645..9ff3fae5 100644 --- a/config/GMPP01_00/rels/modeltestDll/splits.txt +++ b/config/GMPP01_00/rels/modeltestDll/splits.txt @@ -5,3 +5,24 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/modeltestDll/main.c: + .text start:0x000000A0 end:0x000034B0 + .rodata start:0x00000000 end:0x00000130 + .data start:0x00000000 end:0x00000358 + .bss start:0x00000000 end:0x000009A8 + +REL/modeltestDll/modeltest00.c: + .text start:0x000034B0 end:0x00004AC8 + .rodata start:0x00000130 end:0x000001C8 + .data start:0x00000358 end:0x00000388 + .bss start:0x000009A8 end:0x00000A00 + +REL/modeltestDll/modeltest01.c: + .text start:0x00004AC8 end:0x000086B8 + .rodata start:0x000001C8 end:0x00000290 + .data start:0x00000388 end:0x000007AE + .bss start:0x00000A00 end:0x00000AC8 diff --git a/config/GMPP01_00/rels/modeltestDll/symbols.txt b/config/GMPP01_00/rels/modeltestDll/symbols.txt index 3c87f506..460a17bf 100644 --- a/config/GMPP01_00/rels/modeltestDll/symbols.txt +++ b/config/GMPP01_00/rels/modeltestDll/symbols.txt @@ -1,6 +1,6 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x1FC +ObjectSetup = .text:0x000000A0; // type:function size:0x1FC fn_1_29C = .text:0x0000029C; // type:function size:0xC9C fn_1_F38 = .text:0x00000F38; // type:function size:0x64 fn_1_F9C = .text:0x00000F9C; // type:function size:0x1158 diff --git a/config/GMPP01_00/rels/mpexDll/splits.txt b/config/GMPP01_00/rels/mpexDll/splits.txt index 531cd645..8980a70d 100644 --- a/config/GMPP01_00/rels/mpexDll/splits.txt +++ b/config/GMPP01_00/rels/mpexDll/splits.txt @@ -5,3 +5,29 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/mpexDll/main.c: + .text start:0x000000A0 end:0x00003044 + .rodata start:0x00000000 end:0x000000A0 + .data start:0x00000000 end:0x00000240 + .bss start:0x00000000 end:0x000000A8 + +REL/mpexDll/mpex.c: + .text start:0x00003044 end:0x000125C4 + .rodata start:0x000000A0 end:0x00000538 + .data start:0x00000240 end:0x00000510 + .bss start:0x000000A8 end:0x00000440 + +REL/mpexDll/charsel.c: + .text start:0x000125C4 end:0x0001CAF8 + .rodata start:0x00000538 end:0x00000610 + .data start:0x00000510 end:0x00000780 + .bss start:0x00000440 end:0x000006AD + +REL/mpexDll/mgname.c: + .text start:0x0001CAF8 end:0x0001D014 + .rodata start:0x00000610 end:0x00000620 + .data start:0x00000780 end:0x00000C40 diff --git a/config/GMPP01_00/rels/mpexDll/symbols.txt b/config/GMPP01_00/rels/mpexDll/symbols.txt index eb374c16..caa7e094 100644 --- a/config/GMPP01_00/rels/mpexDll/symbols.txt +++ b/config/GMPP01_00/rels/mpexDll/symbols.txt @@ -3,7 +3,7 @@ _epilog = .text:0x00000054; // type:function size:0x4C scope:global fn_1_A0 = .text:0x000000A0; // type:function size:0xE8 fn_1_188 = .text:0x00000188; // type:function size:0x38 fn_1_1C0 = .text:0x000001C0; // type:function size:0x70 -fn_1_230 = .text:0x00000230; // type:function size:0x68 +ObjectSetup = .text:0x00000230; // type:function size:0x68 fn_1_298 = .text:0x00000298; // type:function size:0xDC fn_1_374 = .text:0x00000374; // type:function size:0xC4 fn_1_438 = .text:0x00000438; // type:function size:0x3E4 @@ -209,8 +209,8 @@ fn_1_1C0EC = .text:0x0001C0EC; // type:function size:0x304 fn_1_1C3F0 = .text:0x0001C3F0; // type:function size:0x304 fn_1_1C6F4 = .text:0x0001C6F4; // type:function size:0x340 fn_1_1CA34 = .text:0x0001CA34; // type:function size:0xC4 -fn_1_1CAF8 = .text:0x0001CAF8; // type:function size:0x3B0 -fn_1_1CEA8 = .text:0x0001CEA8; // type:function size:0x16C +fn_1_1CB80 = .text:0x0001CAF8; // type:function size:0x3B0 +fn_1_1D02C = .text:0x0001CEA8; // type:function size:0x16C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float @@ -389,7 +389,8 @@ lbl_1_data_18D = .data:0x0000018D; // type:object size:0x4F data:string lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x22 data:string lbl_1_data_1FE = .data:0x000001FE; // type:object size:0x1A data:string lbl_1_data_218 = .data:0x00000218; // type:object size:0x1A data:string -lbl_1_data_232 = .data:0x00000232; // type:object size:0x62 +lbl_1_data_232 = .data:0x00000232; // type:object size:0xE scope:local data:string +lbl_1_data_240 = .data:0x00000240; // type:object size:0x54 data:float lbl_1_data_294 = .data:0x00000294; // type:object size:0x4 data:4byte lbl_1_data_298 = .data:0x00000298; // type:object size:0x4 data:4byte lbl_1_data_29C = .data:0x0000029C; // type:object size:0x18 @@ -433,7 +434,7 @@ lbl_1_data_744 = .data:0x00000744; // type:object size:0x10 lbl_1_data_754 = .data:0x00000754; // type:object size:0x20 lbl_1_data_774 = .data:0x00000774; // type:object size:0x4 data:4byte lbl_1_data_778 = .data:0x00000778; // type:object size:0x8 data:4byte -lbl_1_data_780 = .data:0x00000780; // type:object size:0x4C0 +fontDataTbl = .data:0x00000780; // type:object size:0x4C0 scope:local lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x64 data:4byte lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x44 data:float lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/mstory4Dll/splits.txt b/config/GMPP01_00/rels/mstory4Dll/splits.txt index 531cd645..20264b16 100644 --- a/config/GMPP01_00/rels/mstory4Dll/splits.txt +++ b/config/GMPP01_00/rels/mstory4Dll/splits.txt @@ -5,3 +5,9 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/mstory4Dll/main.c: + .text start:0x00000000 end:0x00001738 + .rodata start:0x00000000 end:0x00000048 + .data start:0x00000000 end:0x00000722 + .bss start:0x00000000 end:0x00000014 diff --git a/config/GMPP01_00/rels/present/splits.txt b/config/GMPP01_00/rels/present/splits.txt index 531cd645..3c65c150 100644 --- a/config/GMPP01_00/rels/present/splits.txt +++ b/config/GMPP01_00/rels/present/splits.txt @@ -5,3 +5,32 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/present/init.c: + .text start:0x000000A0 end:0x000006B4 + .rodata start:0x00000000 end:0x00000020 + .bss start:0x00000000 end:0x00000020 + +REL/present/camera.c: + .text start:0x000006B4 end:0x00001458 + .rodata start:0x00000020 end:0x000000A0 + .data start:0x00000000 end:0x00000050 + +REL/present/present.c: + .text start:0x00001458 end:0x000039A8 + .rodata start:0x000000A0 end:0x00000BB0 + .data start:0x00000050 end:0x000000F0 + +REL/present/main.c: + .text start:0x000039A8 end:0x000042F4 + .rodata start:0x00000BB0 end:0x00000BD8 + .data start:0x000000F0 end:0x000001A0 + .bss start:0x00000020 end:0x00000024 + +REL/present/common.c: + .text start:0x000042F4 end:0x00004DF0 + .rodata start:0x00000BD8 end:0x00000C50 + .data start:0x000001A0 end:0x000001AC diff --git a/config/GMPP01_00/rels/present/symbols.txt b/config/GMPP01_00/rels/present/symbols.txt index e6b4d8f0..332b6bce 100644 --- a/config/GMPP01_00/rels/present/symbols.txt +++ b/config/GMPP01_00/rels/present/symbols.txt @@ -1,189 +1,193 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0xA4 -fn_1_144 = .text:0x00000144; // type:function size:0x110 -fn_1_254 = .text:0x00000254; // type:function size:0xE0 -fn_1_334 = .text:0x00000334; // type:function size:0x128 -fn_1_45C = .text:0x0000045C; // type:function size:0xF4 -fn_1_550 = .text:0x00000550; // type:function size:0x34 -fn_1_584 = .text:0x00000584; // type:function size:0x34 -fn_1_5B8 = .text:0x000005B8; // type:function size:0x34 -fn_1_5EC = .text:0x000005EC; // type:function size:0xC8 -fn_1_6B4 = .text:0x000006B4; // type:function size:0x23C -fn_1_8F0 = .text:0x000008F0; // type:function size:0x30 -fn_1_920 = .text:0x00000920; // type:function size:0x84 -fn_1_9A4 = .text:0x000009A4; // type:function size:0x84 -fn_1_A28 = .text:0x00000A28; // type:function size:0x84 -fn_1_AAC = .text:0x00000AAC; // type:function size:0x30 -fn_1_ADC = .text:0x00000ADC; // type:function size:0x30 -fn_1_B0C = .text:0x00000B0C; // type:function size:0x30 -fn_1_B3C = .text:0x00000B3C; // type:function size:0x30 -fn_1_B6C = .text:0x00000B6C; // type:function size:0x8C -fn_1_BF8 = .text:0x00000BF8; // type:function size:0x28 -fn_1_C20 = .text:0x00000C20; // type:function size:0x578 -fn_1_1198 = .text:0x00001198; // type:function size:0x200 -fn_1_1398 = .text:0x00001398; // type:function size:0xC0 -fn_1_1458 = .text:0x00001458; // type:function size:0x32C -fn_1_1784 = .text:0x00001784; // type:function size:0x88 -fn_1_180C = .text:0x0000180C; // type:function size:0x44 -fn_1_1850 = .text:0x00001850; // type:function size:0x1C -fn_1_186C = .text:0x0000186C; // type:function size:0xBC -fn_1_1928 = .text:0x00001928; // type:function size:0x680 -fn_1_1FA8 = .text:0x00001FA8; // type:function size:0x140 -fn_1_20E8 = .text:0x000020E8; // type:function size:0x5A4 -fn_1_268C = .text:0x0000268C; // type:function size:0x7C -fn_1_2708 = .text:0x00002708; // type:function size:0x6C -fn_1_2774 = .text:0x00002774; // type:function size:0x17C -fn_1_28F0 = .text:0x000028F0; // type:function size:0x34 -fn_1_2924 = .text:0x00002924; // type:function size:0x260 -fn_1_2B84 = .text:0x00002B84; // type:function size:0x48 -fn_1_2BCC = .text:0x00002BCC; // type:function size:0x90 -fn_1_2C5C = .text:0x00002C5C; // type:function size:0x738 -fn_1_3394 = .text:0x00003394; // type:function size:0x18 -fn_1_33AC = .text:0x000033AC; // type:function size:0x590 -fn_1_393C = .text:0x0000393C; // type:function size:0x6C -fn_1_39A8 = .text:0x000039A8; // type:function size:0x170 -fn_1_3B18 = .text:0x00003B18; // type:function size:0x74 -fn_1_3B8C = .text:0x00003B8C; // type:function size:0x22C -fn_1_3DB8 = .text:0x00003DB8; // type:function size:0xEC -fn_1_3EA4 = .text:0x00003EA4; // type:function size:0x19C -fn_1_4040 = .text:0x00004040; // type:function size:0x40 -fn_1_4080 = .text:0x00004080; // type:function size:0x18 -fn_1_4098 = .text:0x00004098; // type:function size:0x18 -fn_1_40B0 = .text:0x000040B0; // type:function size:0x54 -fn_1_4104 = .text:0x00004104; // type:function size:0x40 -fn_1_4144 = .text:0x00004144; // type:function size:0x40 -fn_1_4184 = .text:0x00004184; // type:function size:0xC -fn_1_4190 = .text:0x00004190; // type:function size:0xC -fn_1_419C = .text:0x0000419C; // type:function size:0x20 -fn_1_41BC = .text:0x000041BC; // type:function size:0x24 -fn_1_41E0 = .text:0x000041E0; // type:function size:0x114 -fn_1_42F4 = .text:0x000042F4; // type:function size:0x240 -fn_1_4534 = .text:0x00004534; // type:function size:0x8C -fn_1_45C0 = .text:0x000045C0; // type:function size:0x44 -fn_1_4604 = .text:0x00004604; // type:function size:0x1C -fn_1_4620 = .text:0x00004620; // type:function size:0x260 -fn_1_4880 = .text:0x00004880; // type:function size:0x184 -fn_1_4A04 = .text:0x00004A04; // type:function size:0x2E8 -fn_1_4CEC = .text:0x00004CEC; // type:function size:0x104 +ObjectSetup = .text:0x000000A0; // type:function size:0xA4 +PresentFadeSprite = .text:0x00000144; // type:function size:0x110 +FadeSprite = .text:0x00000254; // type:function size:0xE0 scope:local +FadeSpriteWithMultiplier = .text:0x00000334; // type:function size:0x128 +FadeModel = .text:0x0000045C; // type:function size:0xF4 scope:local +PresentPadCheck = .text:0x00000550; // type:function size:0x34 +PresentPadDStkRepCheck = .text:0x00000584; // type:function size:0x34 +PresentPadDStkCheck = .text:0x000005B8; // type:function size:0x34 +SceneMain = .text:0x000005EC; // type:function size:0xC8 scope:local +PresentCameraCreate = .text:0x000006B4; // type:function size:0x23C +PresentCameraKill = .text:0x000008F0; // type:function size:0x30 +PresentCameraTargetSet = .text:0x00000920; // type:function size:0x84 +PresentCameraFocusSet = .text:0x000009A4; // type:function size:0x84 +PresentCameraViewSet = .text:0x00000A28; // type:function size:0x84 +PresentCameraZoomGet = .text:0x00000AAC; // type:function size:0x30 +PresentCameraRotGet = .text:0x00000ADC; // type:function size:0x30 +PresentCameraPosGet = .text:0x00000B0C; // type:function size:0x30 +PresentCameraTargetGet = .text:0x00000B3C; // type:function size:0x30 +PresentCameraDoneCheck = .text:0x00000B6C; // type:function size:0x8C +ExecCameraObj = .text:0x00000BF8; // type:function size:0x28 scope:local +ExecCamera = .text:0x00000C20; // type:function size:0x578 scope:local +CameraExecDebug = .text:0x00001198; // type:function size:0x200 scope:local +CameraPrintDebug = .text:0x00001398; // type:function size:0xC0 scope:local +PresentCreate = .text:0x00001458; // type:function size:0x32C +PresentKill = .text:0x00001784; // type:function size:0x88 +PresentExecModeSet = .text:0x0000180C; // type:function size:0x44 +PresentExecModeGet = .text:0x00001850; // type:function size:0x1C +PresentSelectedIDSet = .text:0x0000186C; // type:function size:0xBC +ExecSelectRoom = .text:0x00001928; // type:function size:0x680 scope:local +ChangeRoom = .text:0x00001FA8; // type:function size:0x140 scope:local +ExecSelectPresent = .text:0x000020E8; // type:function size:0x5A4 scope:local +GetCursorPos = .text:0x0000268C; // type:function size:0x7C scope:local +SetCameraRot = .text:0x00002708; // type:function size:0x6C scope:local +RotateCamera = .text:0x00002774; // type:function size:0x17C scope:local +CameraRotationDoneCheck = .text:0x000028F0; // type:function size:0x34 scope:local +ShowHidePresents = .text:0x00002924; // type:function size:0x260 scope:local +PresentUnlocked = .text:0x00002B84; // type:function size:0x48 scope:local +UnlockedPresents = .text:0x00002BCC; // type:function size:0x90 scope:local +MoveCursor = .text:0x00002C5C; // type:function size:0x738 scope:local +TotalPresentsInRoom = .text:0x00003394; // type:function size:0x18 scope:local +ExecPresentGet = .text:0x000033AC; // type:function size:0x590 scope:local +fn_1_393C = .text:0x0000393C; // type:function size:0x6C scope:local +PresentStateCreate = .text:0x000039A8; // type:function size:0x170 +PresentStateKill = .text:0x00003B18; // type:function size:0x74 +ExecPresentView = .text:0x00003B8C; // type:function size:0x22C scope:local +ExecPresentGet = .text:0x00003DB8; // type:function size:0xEC scope:local +PresentWinCreate = .text:0x00003EA4; // type:function size:0x19C +PresentWinKill = .text:0x00004040; // type:function size:0x40 +PresentWinAnimIn = .text:0x00004080; // type:function size:0x18 +PresentWinAnimOut = .text:0x00004098; // type:function size:0x18 +PresentWinMesSet = .text:0x000040B0; // type:function size:0x54 +PresentWinInsertMesSet = .text:0x00004104; // type:function size:0x40 +PresentWinPosSet = .text:0x00004144; // type:function size:0x40 +PresentWinDispOn = .text:0x00004184; // type:function size:0xC +PresentWinDispOff = .text:0x00004190; // type:function size:0xC +PresentWinMesWait = .text:0x0000419C; // type:function size:0x20 +PresentWinChoiceSet = .text:0x000041BC; // type:function size:0x24 +ExecWindow = .text:0x000041E0; // type:function size:0x114 scope:local +PresentGuideCreate = .text:0x000042F4; // type:function size:0x240 +PresentGuideKill = .text:0x00004534; // type:function size:0x8C +PresentGuideExecModeSet = .text:0x000045C0; // type:function size:0x44 +PresentGuideExecModeGet = .text:0x00004604; // type:function size:0x1C +ExecGuideEnter = .text:0x00004620; // type:function size:0x260 scope:local +ExecGuideLeave = .text:0x00004880; // type:function size:0x184 scope:local +UpdateGuide = .text:0x00004A04; // type:function size:0x2E8 scope:local +LerpAngle = .text:0x00004CEC; // type:function size:0x104 scope:local _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x218 -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x708 -lbl_1_rodata_9C0 = .rodata:0x000009C0; // type:object size:0x4 data:float -lbl_1_rodata_9C4 = .rodata:0x000009C4; // type:object size:0x4 data:float -lbl_1_rodata_9C8 = .rodata:0x000009C8; // type:object size:0x4 data:float -lbl_1_rodata_9D0 = .rodata:0x000009D0; // type:object size:0x8 data:double -lbl_1_rodata_9D8 = .rodata:0x000009D8; // type:object size:0x20 -lbl_1_rodata_9F8 = .rodata:0x000009F8; // type:object size:0x28 -lbl_1_rodata_A20 = .rodata:0x00000A20; // type:object size:0x4 data:float -lbl_1_rodata_A24 = .rodata:0x00000A24; // type:object size:0x4 data:float -lbl_1_rodata_A28 = .rodata:0x00000A28; // type:object size:0x4 data:float -lbl_1_rodata_A2C = .rodata:0x00000A2C; // type:object size:0x4 data:float -lbl_1_rodata_A30 = .rodata:0x00000A30; // type:object size:0x4 data:float -lbl_1_rodata_A34 = .rodata:0x00000A34; // type:object size:0x4 data:float -lbl_1_rodata_A38 = .rodata:0x00000A38; // type:object size:0x4 data:float -lbl_1_rodata_A3C = .rodata:0x00000A3C; // type:object size:0x4 data:float -lbl_1_rodata_A40 = .rodata:0x00000A40; // type:object size:0x4 data:float -lbl_1_rodata_A44 = .rodata:0x00000A44; // type:object size:0x4 data:float -lbl_1_rodata_A48 = .rodata:0x00000A48; // type:object size:0x4 data:float -lbl_1_rodata_A50 = .rodata:0x00000A50; // type:object size:0x8 data:double -lbl_1_rodata_A58 = .rodata:0x00000A58; // type:object size:0x4 data:float -lbl_1_rodata_A60 = .rodata:0x00000A60; // type:object size:0x8 data:double -lbl_1_rodata_A68 = .rodata:0x00000A68; // type:object size:0x8 data:double -lbl_1_rodata_A70 = .rodata:0x00000A70; // type:object size:0x4 data:float -lbl_1_rodata_A74 = .rodata:0x00000A74; // type:object size:0x28 -lbl_1_rodata_A9C = .rodata:0x00000A9C; // type:object size:0x4 data:float -lbl_1_rodata_AA0 = .rodata:0x00000AA0; // type:object size:0x4 data:float -lbl_1_rodata_AA4 = .rodata:0x00000AA4; // type:object size:0x4 data:float -lbl_1_rodata_AA8 = .rodata:0x00000AA8; // type:object size:0x4 data:float -lbl_1_rodata_AAC = .rodata:0x00000AAC; // type:object size:0x4 data:float -lbl_1_rodata_AB0 = .rodata:0x00000AB0; // type:object size:0x4 data:float -lbl_1_rodata_AB8 = .rodata:0x00000AB8; // type:object size:0x8 data:double -lbl_1_rodata_AC0 = .rodata:0x00000AC0; // type:object size:0x8 data:double -lbl_1_rodata_AC8 = .rodata:0x00000AC8; // type:object size:0x28 -lbl_1_rodata_AF0 = .rodata:0x00000AF0; // type:object size:0x28 -lbl_1_rodata_B18 = .rodata:0x00000B18; // type:object size:0x28 -lbl_1_rodata_B40 = .rodata:0x00000B40; // type:object size:0x28 -lbl_1_rodata_B68 = .rodata:0x00000B68; // type:object size:0x28 -lbl_1_rodata_B90 = .rodata:0x00000B90; // type:object size:0x4 data:float -lbl_1_rodata_B94 = .rodata:0x00000B94; // type:object size:0x4 data:float -lbl_1_rodata_B98 = .rodata:0x00000B98; // type:object size:0x4 data:float -lbl_1_rodata_B9C = .rodata:0x00000B9C; // type:object size:0x4 data:float -lbl_1_rodata_BA0 = .rodata:0x00000BA0; // type:object size:0x4 data:float -lbl_1_rodata_BA4 = .rodata:0x00000BA4; // type:object size:0xC -lbl_1_rodata_BB0 = .rodata:0x00000BB0; // type:object size:0x4 data:float -lbl_1_rodata_BB4 = .rodata:0x00000BB4; // type:object size:0x4 data:float -lbl_1_rodata_BB8 = .rodata:0x00000BB8; // type:object size:0x4 data:float -lbl_1_rodata_BBC = .rodata:0x00000BBC; // type:object size:0x4 data:float -lbl_1_rodata_BC0 = .rodata:0x00000BC0; // type:object size:0x4 data:float -lbl_1_rodata_BC4 = .rodata:0x00000BC4; // type:object size:0x4 data:float -lbl_1_rodata_BC8 = .rodata:0x00000BC8; // type:object size:0x4 data:float -lbl_1_rodata_BCC = .rodata:0x00000BCC; // type:object size:0x4 data:float -lbl_1_rodata_BD0 = .rodata:0x00000BD0; // type:object size:0x8 data:float -lbl_1_rodata_BD8 = .rodata:0x00000BD8; // type:object size:0xC -lbl_1_rodata_BE4 = .rodata:0x00000BE4; // type:object size:0x4 data:float -lbl_1_rodata_BE8 = .rodata:0x00000BE8; // type:object size:0x4 data:float -lbl_1_rodata_BEC = .rodata:0x00000BEC; // type:object size:0x4 data:float -lbl_1_rodata_BF0 = .rodata:0x00000BF0; // type:object size:0x4 data:float -lbl_1_rodata_BF4 = .rodata:0x00000BF4; // type:object size:0x4 data:float -lbl_1_rodata_BF8 = .rodata:0x00000BF8; // type:object size:0x8 data:double -lbl_1_rodata_C00 = .rodata:0x00000C00; // type:object size:0x4 data:float -lbl_1_rodata_C08 = .rodata:0x00000C08; // type:object size:0x8 data:double -lbl_1_rodata_C10 = .rodata:0x00000C10; // type:object size:0x4 data:float -lbl_1_rodata_C14 = .rodata:0x00000C14; // type:object size:0x4 data:float -lbl_1_rodata_C18 = .rodata:0x00000C18; // type:object size:0x4 data:float -lbl_1_rodata_C1C = .rodata:0x00000C1C; // type:object size:0x4 data:float -lbl_1_rodata_C20 = .rodata:0x00000C20; // type:object size:0x8 data:double -lbl_1_rodata_C28 = .rodata:0x00000C28; // type:object size:0x8 data:double -lbl_1_rodata_C30 = .rodata:0x00000C30; // type:object size:0x4 data:float -lbl_1_rodata_C34 = .rodata:0x00000C34; // type:object size:0x4 data:float -lbl_1_rodata_C38 = .rodata:0x00000C38; // type:object size:0x4 data:float -lbl_1_rodata_C40 = .rodata:0x00000C40; // type:object size:0x8 data:double -lbl_1_rodata_C48 = .rodata:0x00000C48; // type:object size:0x4 data:float -lbl_1_rodata_C4C = .rodata:0x00000C4C; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B data:string -lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1B data:string -lbl_1_data_36 = .data:0x00000036; // type:object size:0x1A -lbl_1_data_50 = .data:0x00000050; // type:object size:0x1C -lbl_1_data_6C = .data:0x0000006C; // type:object size:0x10 data:4byte -lbl_1_data_7C = .data:0x0000007C; // type:object size:0x8 -lbl_1_data_84 = .data:0x00000084; // type:object size:0x20 +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +presentMdlTbl = .rodata:0x000000A0; // type:object size:0x218 scope:local +roomTbl = .rodata:0x000002B8; // type:object size:0x708 scope:local +lbl_1_rodata_9C0 = .rodata:0x000009C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C4 = .rodata:0x000009C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C8 = .rodata:0x000009C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9D0 = .rodata:0x000009D0; // type:object size:0x8 scope:local data:float +roomIdxTbl = .rodata:0x000009D8; // type:object size:0x20 scope:local +roomMessTbl = .rodata:0x000009F8; // type:object size:0x28 scope:local +lbl_1_rodata_A20 = .rodata:0x00000A20; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A24 = .rodata:0x00000A24; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A28 = .rodata:0x00000A28; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A2C = .rodata:0x00000A2C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A30 = .rodata:0x00000A30; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A34 = .rodata:0x00000A34; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A38 = .rodata:0x00000A38; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A3C = .rodata:0x00000A3C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A40 = .rodata:0x00000A40; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A44 = .rodata:0x00000A44; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A48 = .rodata:0x00000A48; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A50 = .rodata:0x00000A50; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A58 = .rodata:0x00000A58; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A60 = .rodata:0x00000A60; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A68 = .rodata:0x00000A68; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A70 = .rodata:0x00000A70; // type:object size:0x4 scope:local data:float +roomPresentOffsetTbl = .rodata:0x00000A74; // type:object size:0x28 scope:local +lbl_1_rodata_A9C = .rodata:0x00000A9C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AA0 = .rodata:0x00000AA0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AA4 = .rodata:0x00000AA4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AA8 = .rodata:0x00000AA8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AAC = .rodata:0x00000AAC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AB0 = .rodata:0x00000AB0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AB8 = .rodata:0x00000AB8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_AC0 = .rodata:0x00000AC0; // type:object size:0x8 scope:local data:double +totalPresentCntTbl = .rodata:0x00000AC8; // type:object size:0x28 scope:local +presentItemIdxTbl = .rodata:0x00000AF0; // type:object size:0x28 scope:local +lbl_1_rodata_B18 = .rodata:0x00000B18; // type:object size:0x28 scope:local +constellationIdxTbl = .rodata:0x00000B40; // type:object size:0x28 scope:local +roofIdxTbl = .rodata:0x00000B68; // type:object size:0x28 scope:local +lbl_1_rodata_B90 = .rodata:0x00000B90; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B94 = .rodata:0x00000B94; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B98 = .rodata:0x00000B98; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B9C = .rodata:0x00000B9C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BA0 = .rodata:0x00000BA0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BA4 = .rodata:0x00000BA4; // type:object size:0x8 scope:local +lbl_1_rodata_BB0 = .rodata:0x00000BB0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BB4 = .rodata:0x00000BB4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BB8 = .rodata:0x00000BB8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BBC = .rodata:0x00000BBC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC0 = .rodata:0x00000BC0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC4 = .rodata:0x00000BC4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC8 = .rodata:0x00000BC8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BCC = .rodata:0x00000BCC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BD0 = .rodata:0x00000BD0; // type:object size:0x4 scope:local data:float +guideMotTbl = .rodata:0x00000BD8; // type:object size:0xC scope:local +lbl_1_rodata_BE4 = .rodata:0x00000BE4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BE8 = .rodata:0x00000BE8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BEC = .rodata:0x00000BEC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BF0 = .rodata:0x00000BF0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BF4 = .rodata:0x00000BF4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BF8 = .rodata:0x00000BF8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C00 = .rodata:0x00000C00; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C08 = .rodata:0x00000C08; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C10 = .rodata:0x00000C10; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C14 = .rodata:0x00000C14; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C18 = .rodata:0x00000C18; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C1C = .rodata:0x00000C1C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C20 = .rodata:0x00000C20; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C28 = .rodata:0x00000C28; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C30 = .rodata:0x00000C30; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C34 = .rodata:0x00000C34; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C38 = .rodata:0x00000C38; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C40 = .rodata:0x00000C40; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C48 = .rodata:0x00000C48; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4C = .rodata:0x00000C4C; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B scope:local data:string +lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1B scope:local data:string +lbl_1_data_36 = .data:0x00000036; // type:object size:0x16 scope:local data:string +lightTbl = .data:0x00000050; // type:object size:0x1C scope:local data:4byte +execModeTbl = .data:0x0000006C; // type:object size:0x10 scope:local data:4byte +lbl_1_data_7C = .data:0x0000007C; // type:object size:0x7 scope:local data:string +roomIdxTbl2 = .data:0x00000084; // type:object size:0x20 jumptable_1_data_A4 = .data:0x000000A4; // type:object size:0x2C scope:local jumptable_1_data_D0 = .data:0x000000D0; // type:object size:0x1C scope:local -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x24 -lbl_1_data_114 = .data:0x00000114; // type:object size:0x2A data:string -lbl_1_data_13E = .data:0x0000013E; // type:object size:0x2E +shadowPosTbl = .data:0x000000F0; // type:object size:0x24 scope:local data:float +lbl_1_data_114 = .data:0x00000114; // type:object size:0x2A scope:local data:string +lbl_1_data_13E = .data:0x0000013E; // type:object size:0x2B scope:local data:string jumptable_1_data_16C = .data:0x0000016C; // type:object size:0x34 scope:local -lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0xC data:4byte -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +execModeTbl = .data:0x000001A0; // type:object size:0xC scope:local data:4byte +scene = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte +presentObjMan = .bss:0x00000004; // type:object size:0x4 data:4byte +presentCamera = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +present = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +presentState = .bss:0x00000018; // type:object size:0x4 data:4byte +presentGuide = .bss:0x00000020; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/resultDll/splits.txt b/config/GMPP01_00/rels/resultDll/splits.txt index 531cd645..a2f15b2b 100644 --- a/config/GMPP01_00/rels/resultDll/splits.txt +++ b/config/GMPP01_00/rels/resultDll/splits.txt @@ -5,3 +5,23 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/resultDll/main.c: + .text start:0x000000A0 end:0x00006490 + .rodata start:0x00000000 end:0x00000160 + .data start:0x00000000 end:0x000004E8 + .bss start:0x00000000 end:0x00000190 + +REL/resultDll/battle.c: + .text start:0x00006490 end:0x00008FF8 + .rodata start:0x00000160 end:0x00000220 + .data start:0x000004E8 end:0x00000918 + .bss start:0x00000190 end:0x00001A18 + +REL/resultDll/datalist.c: + .text start:0x00008FF8 end:0x0000942C + .rodata start:0x00000220 end:0x00000230 + .bss start:0x00001A18 end:0x00001ADC diff --git a/config/GMPP01_00/rels/resultDll/symbols.txt b/config/GMPP01_00/rels/resultDll/symbols.txt index 07d67720..b0b7a9af 100644 --- a/config/GMPP01_00/rels/resultDll/symbols.txt +++ b/config/GMPP01_00/rels/resultDll/symbols.txt @@ -1,6 +1,6 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x438 +ObjectSetup = .text:0x000000A0; // type:function size:0x438 fn_1_4D8 = .text:0x000004D8; // type:function size:0x3B0 fn_1_888 = .text:0x00000888; // type:function size:0x2F0 fn_1_B78 = .text:0x00000B78; // type:function size:0x13D4 @@ -31,136 +31,139 @@ fn_1_927C = .text:0x0000927C; // type:function size:0x138 fn_1_93B4 = .text:0x000093B4; // type:function size:0x78 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x10 data:4byte -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x2A4 lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0xDC data:4byte lbl_1_data_380 = .data:0x00000380; // type:object size:0x2 data:2byte -lbl_1_data_382 = .data:0x00000382; // type:object size:0x26 data:string +lbl_1_data_382 = .data:0x00000382; // type:object size:0x26 scope:local data:string lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x18 lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x18 lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x20 lbl_1_data_3F8 = .data:0x000003F8; // type:object size:0x10 lbl_1_data_408 = .data:0x00000408; // type:object size:0x30 lbl_1_data_438 = .data:0x00000438; // type:object size:0x10 -lbl_1_data_448 = .data:0x00000448; // type:object size:0x8 -lbl_1_data_450 = .data:0x00000450; // type:object size:0x38 +lbl_1_data_448 = .data:0x00000448; // type:object size:0x8 scope:local +lbl_1_data_450 = .data:0x00000450; // type:object size:0x18 +lbl_1_data_468 = .data:0x00000468; // type:object size:0x20 lbl_1_data_488 = .data:0x00000488; // type:object size:0x30 -lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0x11 data:string -lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0x11 data:string -lbl_1_data_4DA = .data:0x000004DA; // type:object size:0xE +lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0x11 scope:local data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0x11 scope:local data:string +lbl_1_data_4DA = .data:0x000004DA; // type:object size:0xB scope:local data:string lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x270 lbl_1_data_758 = .data:0x00000758; // type:object size:0x28 -lbl_1_data_780 = .data:0x00000780; // type:object size:0x70 -lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x40 +lbl_1_data_780 = .data:0x00000780; // type:object size:0x50 +lbl_1_data_7D0 = .data:0x000007D0; // type:object size:0x20 +lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x30 +lbl_1_data_820 = .data:0x00000820; // type:object size:0x10 lbl_1_data_830 = .data:0x00000830; // type:object size:0x10 lbl_1_data_840 = .data:0x00000840; // type:object size:0x20 lbl_1_data_860 = .data:0x00000860; // type:object size:0x20 lbl_1_data_880 = .data:0x00000880; // type:object size:0x20 lbl_1_data_8A0 = .data:0x000008A0; // type:object size:0x6 data:2byte -lbl_1_data_8A6 = .data:0x000008A6; // type:object size:0x8 data:string -lbl_1_data_8AE = .data:0x000008AE; // type:object size:0xA +lbl_1_data_8A6 = .data:0x000008A6; // type:object size:0x8 scope:local data:float +lbl_1_data_8AE = .data:0x000008AE; // type:object size:0x8 scope:local data:float lbl_1_data_8B8 = .data:0x000008B8; // type:object size:0x60 lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte @@ -187,17 +190,21 @@ lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x4 data:4byte lbl_1_bss_178 = .bss:0x00000178; // type:object size:0x4 data:4byte lbl_1_bss_17C = .bss:0x0000017C; // type:object size:0x2 data:2byte lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x4 data:4byte -lbl_1_bss_184 = .bss:0x00000184; // type:object size:0xC data:4byte +lbl_1_bss_184 = .bss:0x00000184; // type:object size:0x4 data:4byte +lbl_1_bss_188 = .bss:0x00000188; // type:object size:0x4 data:4byte lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:4byte lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x1680 -lbl_1_bss_1814 = .bss:0x00001814; // type:object size:0x14 +lbl_1_bss_1814 = .bss:0x00001814; // type:object size:0x8 +lbl_1_bss_181C = .bss:0x0000181C; // type:object size:0xC lbl_1_bss_1828 = .bss:0x00001828; // type:object size:0x168 data:2byte lbl_1_bss_1990 = .bss:0x00001990; // type:object size:0x20 lbl_1_bss_19B0 = .bss:0x000019B0; // type:object size:0x8 lbl_1_bss_19B8 = .bss:0x000019B8; // type:object size:0x28 lbl_1_bss_19E0 = .bss:0x000019E0; // type:object size:0x8 lbl_1_bss_19E8 = .bss:0x000019E8; // type:object size:0x8 -lbl_1_bss_19F0 = .bss:0x000019F0; // type:object size:0x2A +lbl_1_bss_19F0 = .bss:0x000019F0; // type:object size:0x8 +lbl_1_bss_19F8 = .bss:0x000019F8; // type:object size:0x20 +lbl_1_bss_1A18 = .bss:0x00001A18; // type:object size:0x2 lbl_1_bss_1A1A = .bss:0x00001A1A; // type:object size:0x42 data:2byte lbl_1_bss_1A5C = .bss:0x00001A5C; // type:object size:0x40 data:2byte lbl_1_bss_1A9C = .bss:0x00001A9C; // type:object size:0x40 data:2byte diff --git a/config/GMPP01_00/rels/safDll/splits.txt b/config/GMPP01_00/rels/safDll/splits.txt index 531cd645..43792488 100644 --- a/config/GMPP01_00/rels/safDll/splits.txt +++ b/config/GMPP01_00/rels/safDll/splits.txt @@ -5,3 +5,8 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/safDll/main.c: + .text start:0x00000000 end:0x000003AC + .rodata start:0x00000000 end:0x00000024 + .data start:0x00000000 end:0x00000039 diff --git a/config/GMPP01_00/rels/safDll/symbols.txt b/config/GMPP01_00/rels/safDll/symbols.txt index 11ae3d8d..6a012c0c 100644 --- a/config/GMPP01_00/rels/safDll/symbols.txt +++ b/config/GMPP01_00/rels/safDll/symbols.txt @@ -1,13 +1,14 @@ fn_1_0 = .text:0x00000000; // type:function size:0x4 -fn_1_4 = .text:0x00000004; // type:function size:0x284 -fn_1_288 = .text:0x00000288; // type:function size:0x124 +safMarioEyeDim = .text:0x00000004; // type:function size:0x284 +safSaveTest = .text:0x00000288; // type:function size:0x124 _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_data_4 = .data:0x00000004; // type:object size:0xE data:string -lbl_1_data_12 = .data:0x00000012; // type:object size:0xB data:string -lbl_1_data_1D = .data:0x0000001D; // type:object size:0xE data:string -lbl_1_data_2B = .data:0x0000002B; // type:object size:0xE data:string +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x4 +lbl_1_data_4 = .data:0x00000004; // type:object size:0xE scope:local data:string +lbl_1_data_12 = .data:0x00000012; // type:object size:0xB scope:local data:string +lbl_1_data_1D = .data:0x0000001D; // type:object size:0xE scope:local data:string +lbl_1_data_2B = .data:0x0000002B; // type:object size:0xE scope:local data:string diff --git a/config/GMPP01_00/rels/selmenuDll/splits.txt b/config/GMPP01_00/rels/selmenuDll/splits.txt index 531cd645..39e27b1f 100644 --- a/config/GMPP01_00/rels/selmenuDll/splits.txt +++ b/config/GMPP01_00/rels/selmenuDll/splits.txt @@ -5,3 +5,12 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/selmenuDll/main.c: + .text start:0x000000A0 end:0x00005198 + .rodata start:0x00000000 end:0x00000084 + .data start:0x00000000 end:0x00000B3F + .bss start:0x00000000 end:0x00000098 diff --git a/config/GMPP01_00/rels/selmenuDll/symbols.txt b/config/GMPP01_00/rels/selmenuDll/symbols.txt index d5cd5a48..199e2ba8 100644 --- a/config/GMPP01_00/rels/selmenuDll/symbols.txt +++ b/config/GMPP01_00/rels/selmenuDll/symbols.txt @@ -1,201 +1,204 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x4B8 -fn_1_558 = .text:0x00000558; // type:function size:0x60 -fn_1_5B8 = .text:0x000005B8; // type:function size:0x324 -fn_1_8DC = .text:0x000008DC; // type:function size:0x170 -fn_1_A4C = .text:0x00000A4C; // type:function size:0x180 -fn_1_BCC = .text:0x00000BCC; // type:function size:0x88 -fn_1_C54 = .text:0x00000C54; // type:function size:0x474 -fn_1_10C8 = .text:0x000010C8; // type:function size:0xA78 -fn_1_1B40 = .text:0x00001B40; // type:function size:0x334 -fn_1_1E74 = .text:0x00001E74; // type:function size:0x110 -fn_1_1F84 = .text:0x00001F84; // type:function size:0x50 -fn_1_1FD4 = .text:0x00001FD4; // type:function size:0x10C -fn_1_20E0 = .text:0x000020E0; // type:function size:0x1F8 -fn_1_22D8 = .text:0x000022D8; // type:function size:0xD6C -fn_1_3044 = .text:0x00003044; // type:function size:0x2FC -fn_1_3340 = .text:0x00003340; // type:function size:0x804 -fn_1_3B44 = .text:0x00003B44; // type:function size:0x40 -fn_1_3B84 = .text:0x00003B84; // type:function size:0x968 -fn_1_44EC = .text:0x000044EC; // type:function size:0x20 +ObjectSetup = .text:0x000000A0; // type:function size:0x4B8 +CopyPlayerCfg = .text:0x00000558; // type:function size:0x60 scope:local +CalcBtns = .text:0x000005B8; // type:function size:0x324 scope:local +DrawPage = .text:0x000008DC; // type:function size:0x170 scope:local +MoveSMPage = .text:0x00000A4C; // type:function size:0x180 scope:local +MoveSMCursor = .text:0x00000BCC; // type:function size:0x88 scope:local +SMInit = .text:0x00000C54; // type:function size:0x474 scope:local +SMUpdate = .text:0x000010C8; // type:function size:0xA78 scope:local +SMGroupGen = .text:0x00001B40; // type:function size:0x334 scope:local +SMChangeChar = .text:0x00001E74; // type:function size:0x110 scope:local +SMCharKill = .text:0x00001F84; // type:function size:0x50 scope:local +CharRandomize = .text:0x00001FD4; // type:function size:0x10C scope:local +SMCharInit = .text:0x000020E0; // type:function size:0x1F8 scope:local +SMCharUpdate = .text:0x000022D8; // type:function size:0xD6C scope:local +SMExit = .text:0x00003044; // type:function size:0x2FC scope:local +SMPlayerCfgDraw = .text:0x00003340; // type:function size:0x804 scope:local +SMPlayerCfgInit = .text:0x00003B44; // type:function size:0x40 scope:local +SMPlayerCfgUpdate = .text:0x00003B84; // type:function size:0x968 scope:local +SMRand8Tick = .text:0x000044EC; // type:function size:0x20 scope:local fn_1_450C = .text:0x0000450C; // type:function size:0x4 -fn_1_4510 = .text:0x00004510; // type:function size:0x64 -fn_1_4574 = .text:0x00004574; // type:function size:0x854 -fn_1_4DC8 = .text:0x00004DC8; // type:function size:0x3D0 +SMSound3DInit = .text:0x00004510; // type:function size:0x64 scope:local +SMSound3DUpdate = .text:0x00004574; // type:function size:0x854 scope:local +SMSound3DDraw = .text:0x00004DC8; // type:function size:0x3D0 scope:local _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x8 data:4byte -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x10 data:4byte -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x8 data:4byte -lbl_1_data_0 = .data:0x00000000; // type:object size:0x6 data:string -lbl_1_data_6 = .data:0x00000006; // type:object size:0x6 data:string -lbl_1_data_C = .data:0x0000000C; // type:object size:0x6 data:string -lbl_1_data_12 = .data:0x00000012; // type:object size:0x6 data:string -lbl_1_data_18 = .data:0x00000018; // type:object size:0x6 data:string -lbl_1_data_1E = .data:0x0000001E; // type:object size:0x7 data:string -lbl_1_data_25 = .data:0x00000025; // type:object size:0x6 data:string -lbl_1_data_2B = .data:0x0000002B; // type:object size:0x9 -lbl_1_data_34 = .data:0x00000034; // type:object size:0x20 -lbl_1_data_54 = .data:0x00000054; // type:object size:0x14 data:string -lbl_1_data_68 = .data:0x00000068; // type:object size:0x16 data:string -lbl_1_data_7E = .data:0x0000007E; // type:object size:0x11 data:string -lbl_1_data_8F = .data:0x0000008F; // type:object size:0x12 data:string -lbl_1_data_A1 = .data:0x000000A1; // type:object size:0x10 data:string -lbl_1_data_B1 = .data:0x000000B1; // type:object size:0xD data:string -lbl_1_data_BE = .data:0x000000BE; // type:object size:0x11 data:string -lbl_1_data_CF = .data:0x000000CF; // type:object size:0xD data:string -lbl_1_data_DC = .data:0x000000DC; // type:object size:0xE data:string -lbl_1_data_EA = .data:0x000000EA; // type:object size:0x16 data:string -lbl_1_data_100 = .data:0x00000100; // type:object size:0x13 data:string -lbl_1_data_113 = .data:0x00000113; // type:object size:0xF data:string -lbl_1_data_122 = .data:0x00000122; // type:object size:0x14 data:string -lbl_1_data_136 = .data:0x00000136; // type:object size:0x11 data:string -lbl_1_data_147 = .data:0x00000147; // type:object size:0x13 data:string -lbl_1_data_15A = .data:0x0000015A; // type:object size:0x10 data:string -lbl_1_data_16A = .data:0x0000016A; // type:object size:0x11 data:string -lbl_1_data_17B = .data:0x0000017B; // type:object size:0x15 data:string -lbl_1_data_190 = .data:0x00000190; // type:object size:0x17 data:string -lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x11 data:string -lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x10 data:string -lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x10 data:string -lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x12 data:string -lbl_1_data_1EA = .data:0x000001EA; // type:object size:0x10 data:string -lbl_1_data_1FA = .data:0x000001FA; // type:object size:0xF data:string -lbl_1_data_209 = .data:0x00000209; // type:object size:0x15 data:string -lbl_1_data_21E = .data:0x0000021E; // type:object size:0xE data:string -lbl_1_data_22C = .data:0x0000022C; // type:object size:0x13 data:string -lbl_1_data_23F = .data:0x0000023F; // type:object size:0x14 data:string -lbl_1_data_253 = .data:0x00000253; // type:object size:0x13 data:string -lbl_1_data_266 = .data:0x00000266; // type:object size:0x11 data:string -lbl_1_data_277 = .data:0x00000277; // type:object size:0x11 data:string -lbl_1_data_288 = .data:0x00000288; // type:object size:0x11 data:string -lbl_1_data_299 = .data:0x00000299; // type:object size:0x10 data:string -lbl_1_data_2A9 = .data:0x000002A9; // type:object size:0x10 data:string -lbl_1_data_2B9 = .data:0x000002B9; // type:object size:0x1B data:string -lbl_1_data_2D4 = .data:0x000002D4; // type:object size:0x11 data:string -lbl_1_data_2E5 = .data:0x000002E5; // type:object size:0x1D data:string -lbl_1_data_302 = .data:0x00000302; // type:object size:0x17 data:string -lbl_1_data_319 = .data:0x00000319; // type:object size:0x16 data:string -lbl_1_data_32F = .data:0x0000032F; // type:object size:0x15 data:string -lbl_1_data_344 = .data:0x00000344; // type:object size:0x13 data:string -lbl_1_data_357 = .data:0x00000357; // type:object size:0xE data:string -lbl_1_data_365 = .data:0x00000365; // type:object size:0x14 data:string -lbl_1_data_379 = .data:0x00000379; // type:object size:0x13 data:string -lbl_1_data_38C = .data:0x0000038C; // type:object size:0x12 data:string -lbl_1_data_39E = .data:0x0000039E; // type:object size:0xD data:string -lbl_1_data_3AB = .data:0x000003AB; // type:object size:0xD data:string -lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x17 data:string -lbl_1_data_3CF = .data:0x000003CF; // type:object size:0xE data:string -lbl_1_data_3DD = .data:0x000003DD; // type:object size:0xB data:string -lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x11 data:string -lbl_1_data_3F9 = .data:0x000003F9; // type:object size:0x11 data:string -lbl_1_data_40A = .data:0x0000040A; // type:object size:0xA data:string -lbl_1_data_414 = .data:0x00000414; // type:object size:0x13 data:string -lbl_1_data_427 = .data:0x00000427; // type:object size:0xD data:string -lbl_1_data_434 = .data:0x00000434; // type:object size:0x5 data:string -lbl_1_data_439 = .data:0x00000439; // type:object size:0x15 data:string -lbl_1_data_44E = .data:0x0000044E; // type:object size:0x5 data:string -lbl_1_data_453 = .data:0x00000453; // type:object size:0xF data:string -lbl_1_data_462 = .data:0x00000462; // type:object size:0xE data:string -lbl_1_data_470 = .data:0x00000470; // type:object size:0xE data:string -lbl_1_data_47E = .data:0x0000047E; // type:object size:0xE data:string -lbl_1_data_48C = .data:0x0000048C; // type:object size:0xE data:string -lbl_1_data_49A = .data:0x0000049A; // type:object size:0xE data:string -lbl_1_data_4A8 = .data:0x000004A8; // type:object size:0xE data:string -lbl_1_data_4B6 = .data:0x000004B6; // type:object size:0xE data:string -lbl_1_data_4C4 = .data:0x000004C4; // type:object size:0xE data:string -lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0xA data:string -lbl_1_data_4DC = .data:0x000004DC; // type:object size:0x10 -lbl_1_data_4EC = .data:0x000004EC; // type:object size:0x348 -lbl_1_data_834 = .data:0x00000834; // type:object size:0x28 -lbl_1_data_85C = .data:0x0000085C; // type:object size:0x12 data:string -lbl_1_data_86E = .data:0x0000086E; // type:object size:0x12 data:string -lbl_1_data_880 = .data:0x00000880; // type:object size:0x12 data:string -lbl_1_data_892 = .data:0x00000892; // type:object size:0x12 data:string -lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x12 data:string -lbl_1_data_8B6 = .data:0x000008B6; // type:object size:0x12 data:string -lbl_1_data_8C8 = .data:0x000008C8; // type:object size:0x11 data:string -lbl_1_data_8D9 = .data:0x000008D9; // type:object size:0x23 -lbl_1_data_8FC = .data:0x000008FC; // type:object size:0x2 data:2byte -lbl_1_data_8FE = .data:0x000008FE; // type:object size:0x8 -lbl_1_data_906 = .data:0x00000906; // type:object size:0x12 -lbl_1_data_918 = .data:0x00000918; // type:object size:0x4 data:4byte -lbl_1_data_91C = .data:0x0000091C; // type:object size:0x12 data:string -lbl_1_data_92E = .data:0x0000092E; // type:object size:0x24 data:string -lbl_1_data_952 = .data:0x00000952; // type:object size:0xB data:string -lbl_1_data_95D = .data:0x0000095D; // type:object size:0x3 data:string -lbl_1_data_960 = .data:0x00000960; // type:object size:0x10 -lbl_1_data_970 = .data:0x00000970; // type:object size:0x20 -lbl_1_data_990 = .data:0x00000990; // type:object size:0x20 -lbl_1_data_9B0 = .data:0x000009B0; // type:object size:0xD data:string -lbl_1_data_9BD = .data:0x000009BD; // type:object size:0x5 -lbl_1_data_9C2 = .data:0x000009C2; // type:object size:0x5 -lbl_1_data_9C7 = .data:0x000009C7; // type:object size:0x6 -lbl_1_data_9CD = .data:0x000009CD; // type:object size:0x9 data:string -lbl_1_data_9D6 = .data:0x000009D6; // type:object size:0xA data:string -lbl_1_data_9E0 = .data:0x000009E0; // type:object size:0xA data:string -lbl_1_data_9EA = .data:0x000009EA; // type:object size:0x9 data:string -lbl_1_data_9F3 = .data:0x000009F3; // type:object size:0x9 data:string -lbl_1_data_9FC = .data:0x000009FC; // type:object size:0xC -lbl_1_data_A08 = .data:0x00000A08; // type:object size:0x14 data:4byte -lbl_1_data_A1C = .data:0x00000A1C; // type:object size:0x6 data:string -lbl_1_data_A22 = .data:0x00000A22; // type:object size:0x4 data:string -lbl_1_data_A26 = .data:0x00000A26; // type:object size:0x5 data:string -lbl_1_data_A2B = .data:0x00000A2B; // type:object size:0x7 data:string -lbl_1_data_A32 = .data:0x00000A32; // type:object size:0x5 data:string -lbl_1_data_A37 = .data:0x00000A37; // type:object size:0x9 data:string +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x8 scope:local data:4byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x6 scope:local data:string +lbl_1_data_6 = .data:0x00000006; // type:object size:0x6 scope:local data:string +lbl_1_data_C = .data:0x0000000C; // type:object size:0x6 scope:local data:string +lbl_1_data_12 = .data:0x00000012; // type:object size:0x6 scope:local data:string +lbl_1_data_18 = .data:0x00000018; // type:object size:0x6 scope:local data:string +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x7 scope:local data:string +lbl_1_data_25 = .data:0x00000025; // type:object size:0x6 scope:local data:string +lbl_1_data_2B = .data:0x0000002B; // type:object size:0x8 scope:local data:string +smCharTbl = .data:0x00000034; // type:object size:0x20 scope:local +lbl_1_data_54 = .data:0x00000054; // type:object size:0x14 scope:local data:string +lbl_1_data_68 = .data:0x00000068; // type:object size:0x16 scope:local data:string +lbl_1_data_7E = .data:0x0000007E; // type:object size:0x11 scope:local data:string +lbl_1_data_8F = .data:0x0000008F; // type:object size:0x12 scope:local data:string +lbl_1_data_A1 = .data:0x000000A1; // type:object size:0x10 scope:local data:string +lbl_1_data_B1 = .data:0x000000B1; // type:object size:0xD scope:local data:string +lbl_1_data_BE = .data:0x000000BE; // type:object size:0x11 scope:local data:string +lbl_1_data_CF = .data:0x000000CF; // type:object size:0xD scope:local data:string +lbl_1_data_DC = .data:0x000000DC; // type:object size:0xE scope:local data:string +lbl_1_data_EA = .data:0x000000EA; // type:object size:0x16 scope:local data:string +lbl_1_data_100 = .data:0x00000100; // type:object size:0x13 scope:local data:string +lbl_1_data_113 = .data:0x00000113; // type:object size:0xF scope:local data:string +lbl_1_data_122 = .data:0x00000122; // type:object size:0x14 scope:local data:string +lbl_1_data_136 = .data:0x00000136; // type:object size:0x11 scope:local data:string +lbl_1_data_147 = .data:0x00000147; // type:object size:0x13 scope:local data:string +lbl_1_data_15A = .data:0x0000015A; // type:object size:0x10 scope:local data:string +lbl_1_data_16A = .data:0x0000016A; // type:object size:0x11 scope:local data:string +lbl_1_data_17B = .data:0x0000017B; // type:object size:0x15 scope:local data:string +lbl_1_data_190 = .data:0x00000190; // type:object size:0x17 scope:local data:string +lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x11 scope:local data:string +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x10 scope:local data:string +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x10 scope:local data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x12 scope:local data:string +lbl_1_data_1EA = .data:0x000001EA; // type:object size:0x10 scope:local data:string +lbl_1_data_1FA = .data:0x000001FA; // type:object size:0xF scope:local data:string +lbl_1_data_209 = .data:0x00000209; // type:object size:0x15 scope:local data:string +lbl_1_data_21E = .data:0x0000021E; // type:object size:0xE scope:local data:string +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x13 scope:local data:string +lbl_1_data_23F = .data:0x0000023F; // type:object size:0x14 scope:local data:string +lbl_1_data_253 = .data:0x00000253; // type:object size:0x13 scope:local data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x11 scope:local data:string +lbl_1_data_277 = .data:0x00000277; // type:object size:0x11 scope:local data:string +lbl_1_data_288 = .data:0x00000288; // type:object size:0x11 scope:local data:string +lbl_1_data_299 = .data:0x00000299; // type:object size:0x10 scope:local data:string +lbl_1_data_2A9 = .data:0x000002A9; // type:object size:0x10 scope:local data:string +lbl_1_data_2B9 = .data:0x000002B9; // type:object size:0x1B scope:local data:string +lbl_1_data_2D4 = .data:0x000002D4; // type:object size:0x11 scope:local data:string +lbl_1_data_2E5 = .data:0x000002E5; // type:object size:0x1D scope:local data:string +lbl_1_data_302 = .data:0x00000302; // type:object size:0x17 scope:local data:string +lbl_1_data_319 = .data:0x00000319; // type:object size:0x16 scope:local data:string +lbl_1_data_32F = .data:0x0000032F; // type:object size:0x15 scope:local data:string +lbl_1_data_344 = .data:0x00000344; // type:object size:0x13 scope:local data:string +lbl_1_data_357 = .data:0x00000357; // type:object size:0xE scope:local data:string +lbl_1_data_365 = .data:0x00000365; // type:object size:0x14 scope:local data:string +lbl_1_data_379 = .data:0x00000379; // type:object size:0x13 scope:local data:string +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x12 scope:local data:string +lbl_1_data_39E = .data:0x0000039E; // type:object size:0xD scope:local data:string +lbl_1_data_3AB = .data:0x000003AB; // type:object size:0xD scope:local data:string +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x17 scope:local data:string +lbl_1_data_3CF = .data:0x000003CF; // type:object size:0xE scope:local data:string +lbl_1_data_3DD = .data:0x000003DD; // type:object size:0xB scope:local data:string +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x11 scope:local data:string +lbl_1_data_3F9 = .data:0x000003F9; // type:object size:0x11 scope:local data:string +lbl_1_data_40A = .data:0x0000040A; // type:object size:0xA scope:local data:string +lbl_1_data_414 = .data:0x00000414; // type:object size:0x13 scope:local data:string +lbl_1_data_427 = .data:0x00000427; // type:object size:0xD scope:local data:string +lbl_1_data_434 = .data:0x00000434; // type:object size:0x5 scope:local data:string +lbl_1_data_439 = .data:0x00000439; // type:object size:0x15 scope:local data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x5 scope:local data:string +lbl_1_data_453 = .data:0x00000453; // type:object size:0xF scope:local data:string +lbl_1_data_462 = .data:0x00000462; // type:object size:0xE scope:local data:string +lbl_1_data_470 = .data:0x00000470; // type:object size:0xE scope:local data:string +lbl_1_data_47E = .data:0x0000047E; // type:object size:0xE scope:local data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0xE scope:local data:string +lbl_1_data_49A = .data:0x0000049A; // type:object size:0xE scope:local data:string +lbl_1_data_4A8 = .data:0x000004A8; // type:object size:0xE scope:local data:string +lbl_1_data_4B6 = .data:0x000004B6; // type:object size:0xE scope:local data:string +lbl_1_data_4C4 = .data:0x000004C4; // type:object size:0xE scope:local data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0xA scope:local data:string +lbl_1_data_4DC = .data:0x000004DC; // type:object size:0xF scope:local data:string +smMenuTbl = .data:0x000004EC; // type:object size:0x348 scope:local +cameraMaskTbl = .data:0x00000834; // type:object size:0x10 scope:local +lbl_1_data_844 = .data:0x00000844; // type:object size:0x18 scope:local +lbl_1_data_85C = .data:0x0000085C; // type:object size:0x12 scope:local data:string +lbl_1_data_86E = .data:0x0000086E; // type:object size:0x12 scope:local data:string +lbl_1_data_880 = .data:0x00000880; // type:object size:0x12 scope:local data:string +lbl_1_data_892 = .data:0x00000892; // type:object size:0x12 scope:local data:string +lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x12 scope:local data:string +lbl_1_data_8B6 = .data:0x000008B6; // type:object size:0x12 scope:local data:string +lbl_1_data_8C8 = .data:0x000008C8; // type:object size:0x11 scope:local data:string +lbl_1_data_8D9 = .data:0x000008D9; // type:object size:0x1 scope:local +dvdMusTbl = .data:0x000008DC; // type:object size:0x20 scope:local +smSelectPosExit = .data:0x000008FC; // type:object size:0x2 scope:local data:2byte +keyDStkAllPrev = .data:0x000008FE; // type:object size:0x8 scope:local +lbl_1_data_906 = .data:0x00000906; // type:object size:0xF scope:local data:string +funcId$244 = .data:0x00000918; // type:object size:0x4 scope:local data:4byte +lbl_1_data_91C = .data:0x0000091C; // type:object size:0x12 scope:local data:string +lbl_1_data_92E = .data:0x0000092E; // type:object size:0x24 scope:local data:string +lbl_1_data_952 = .data:0x00000952; // type:object size:0xB scope:local data:string +lbl_1_data_95D = .data:0x0000095D; // type:object size:0x3 scope:local data:string +lbl_1_data_960 = .data:0x00000960; // type:object size:0xD scope:local data:string +charMdlTbl = .data:0x00000970; // type:object size:0x20 scope:local +charMdlMotTbl = .data:0x00000990; // type:object size:0x20 scope:local +lbl_1_data_9B0 = .data:0x000009B0; // type:object size:0xD scope:local data:string +lbl_1_data_9BD = .data:0x000009BD; // type:object size:0x5 scope:local +lbl_1_data_9C2 = .data:0x000009C2; // type:object size:0x5 scope:local +lbl_1_data_9C7 = .data:0x000009C7; // type:object size:0x6 scope:local +lbl_1_data_9CD = .data:0x000009CD; // type:object size:0x9 scope:local data:string +lbl_1_data_9D6 = .data:0x000009D6; // type:object size:0xA scope:local data:string +lbl_1_data_9E0 = .data:0x000009E0; // type:object size:0xA scope:local data:string +lbl_1_data_9EA = .data:0x000009EA; // type:object size:0x9 scope:local data:string +lbl_1_data_9F3 = .data:0x000009F3; // type:object size:0x9 scope:local data:string +lbl_1_data_9FC = .data:0x000009FC; // type:object size:0x9 scope:local data:string +padCfgStrTbl = .data:0x00000A08; // type:object size:0x14 scope:local data:4byte +lbl_1_data_A1C = .data:0x00000A1C; // type:object size:0x6 scope:local data:string +lbl_1_data_A22 = .data:0x00000A22; // type:object size:0x4 scope:local data:string +lbl_1_data_A26 = .data:0x00000A26; // type:object size:0x5 scope:local data:string +lbl_1_data_A2B = .data:0x00000A2B; // type:object size:0x7 scope:local data:string +lbl_1_data_A32 = .data:0x00000A32; // type:object size:0x5 scope:local data:string +lbl_1_data_A37 = .data:0x00000A37; // type:object size:0x9 scope:local data:string jumptable_1_data_A40 = .data:0x00000A40; // type:object size:0x20 scope:local jumptable_1_data_A60 = .data:0x00000A60; // type:object size:0x20 scope:local -lbl_1_data_A80 = .data:0x00000A80; // type:object size:0x4 data:string -lbl_1_data_A84 = .data:0x00000A84; // type:object size:0x4 data:string -lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x10 data:string -lbl_1_data_A98 = .data:0x00000A98; // type:object size:0x15 data:string -lbl_1_data_AAD = .data:0x00000AAD; // type:object size:0x15 data:string -lbl_1_data_AC2 = .data:0x00000AC2; // type:object size:0x15 data:string -lbl_1_data_AD7 = .data:0x00000AD7; // type:object size:0x15 data:string -lbl_1_data_AEC = .data:0x00000AEC; // type:object size:0x15 data:string -lbl_1_data_B01 = .data:0x00000B01; // type:object size:0x15 data:string -lbl_1_data_B16 = .data:0x00000B16; // type:object size:0x15 data:string -lbl_1_data_B2B = .data:0x00000B2B; // type:object size:0x14 data:string -lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x2 data:2byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte -lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 data:2byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte -lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x2 data:2byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte -lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x10 -lbl_1_bss_1E = .bss:0x0000001E; // type:object size:0x8 -lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x10 -lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x8 -lbl_1_bss_3E = .bss:0x0000003E; // type:object size:0x8 -lbl_1_bss_46 = .bss:0x00000046; // type:object size:0x8 -lbl_1_bss_4E = .bss:0x0000004E; // type:object size:0x2 data:2byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x2 data:2byte -lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x2 data:2byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x2 data:2byte -lbl_1_bss_56 = .bss:0x00000056; // type:object size:0x2A data:2byte -lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte -lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte -lbl_1_bss_88 = .bss:0x00000088; // type:object size:0xE -lbl_1_bss_96 = .bss:0x00000096; // type:object size:0x2 data:2byte +lbl_1_data_A80 = .data:0x00000A80; // type:object size:0x4 scope:local data:string +lbl_1_data_A84 = .data:0x00000A84; // type:object size:0x4 scope:local data:string +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x10 scope:local data:string +lbl_1_data_A98 = .data:0x00000A98; // type:object size:0x15 scope:local data:string +lbl_1_data_AAD = .data:0x00000AAD; // type:object size:0x15 scope:local data:string +lbl_1_data_AC2 = .data:0x00000AC2; // type:object size:0x15 scope:local data:string +lbl_1_data_AD7 = .data:0x00000AD7; // type:object size:0x15 scope:local data:string +lbl_1_data_AEC = .data:0x00000AEC; // type:object size:0x15 scope:local data:string +lbl_1_data_B01 = .data:0x00000B01; // type:object size:0x15 scope:local data:string +lbl_1_data_B16 = .data:0x00000B16; // type:object size:0x15 scope:local data:string +lbl_1_data_B2B = .data:0x00000B2B; // type:object size:0x14 scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +smSound3DPos = .bss:0x00000002; // type:object size:0x2 scope:local data:2byte +emiCompVal = .bss:0x00000004; // type:object size:0x2 scope:local data:2byte +emiCompDataNo = .bss:0x00000006; // type:object size:0x2 scope:local data:2byte +playerCfgOptionPos = .bss:0x00000008; // type:object size:0x2 scope:local data:2byte +playerCfgPlayerPos = .bss:0x0000000A; // type:object size:0x2 scope:local data:2byte +playerCfgSelF = .bss:0x0000000C; // type:object size:0x2 scope:local data:2byte +charSelProhibitF = .bss:0x0000000E; // type:object size:0x10 scope:local +playerDoneF = .bss:0x0000001E; // type:object size:0x8 scope:local +charModelID = .bss:0x00000026; // type:object size:0x10 scope:local +keyDStkAllDown = .bss:0x00000036; // type:object size:0x8 scope:local +keyDStkAll = .bss:0x0000003E; // type:object size:0x8 scope:local +btnDownAll = .bss:0x00000046; // type:object size:0x8 scope:local +keyDStkDown = .bss:0x0000004E; // type:object size:0x2 scope:local data:2byte +keyDStk = .bss:0x00000050; // type:object size:0x2 scope:local data:2byte +btnDown = .bss:0x00000052; // type:object size:0x2 scope:local data:2byte +smSelectPos = .bss:0x00000054; // type:object size:0x2 scope:local data:2byte +smPlayerCfg = .bss:0x00000056; // type:object size:0x28 scope:local data:2byte +outViewObj = .bss:0x00000080; // type:object size:0x4 scope:local data:4byte +smMainObj = .bss:0x00000084; // type:object size:0x4 scope:local data:4byte +smSelectPosBackup = .bss:0x00000088; // type:object size:0xE scope:local +smPage = .bss:0x00000096; // type:object size:0x2 scope:local data:2byte diff --git a/config/GMPP01_00/rels/staffDll/splits.txt b/config/GMPP01_00/rels/staffDll/splits.txt index 531cd645..c7a221dd 100644 --- a/config/GMPP01_00/rels/staffDll/splits.txt +++ b/config/GMPP01_00/rels/staffDll/splits.txt @@ -5,3 +5,12 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/staffDll/main.c: + .text start:0x000000A0 end:0x000012F8 + .rodata start:0x00000000 end:0x00000098 + .data start:0x00000000 end:0x00001328 + .bss start:0x00000000 end:0x0000004A diff --git a/config/GMPP01_00/rels/staffDll/symbols.txt b/config/GMPP01_00/rels/staffDll/symbols.txt index 15413e32..82c981fb 100644 --- a/config/GMPP01_00/rels/staffDll/symbols.txt +++ b/config/GMPP01_00/rels/staffDll/symbols.txt @@ -1,12 +1,12 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x218 -fn_1_2B8 = .text:0x000002B8; // type:function size:0x60 -fn_1_318 = .text:0x00000318; // type:function size:0x444 -fn_1_75C = .text:0x0000075C; // type:function size:0x3AC -fn_1_B08 = .text:0x00000B08; // type:function size:0x12C -fn_1_C34 = .text:0x00000C34; // type:function size:0x1C4 -fn_1_DF8 = .text:0x00000DF8; // type:function size:0x500 +ObjectSetup = .text:0x000000A0; // type:function size:0x218 +ExitProc = .text:0x000002B8; // type:function size:0x60 scope:local +CreateStaff = .text:0x00000318; // type:function size:0x444 scope:local +MoveStaff = .text:0x0000075C; // type:function size:0x3AC scope:local +HidePicture = .text:0x00000B08; // type:function size:0x12C scope:local +ShowPicture = .text:0x00000C34; // type:function size:0x1C4 scope:local +MainProc = .text:0x00000DF8; // type:function size:0x500 scope:local _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float @@ -43,13 +43,13 @@ lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x1308 -lbl_1_data_1308 = .data:0x00001308; // type:object size:0xC data:float +staffData = .data:0x00000000; // type:object size:0x1308 scope:local +staffLogoPosTbl = .data:0x00001308; // type:object size:0xC scope:local data:float lbl_1_data_1314 = .data:0x00001314; // type:object size:0x14 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte -lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x6 data:2byte -lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x34 data:2byte +multiViewObj = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte +currImg = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +staffSide = .bss:0x00000008; // type:object size:0x4 scope:local data:4byte +thpCoverGroup = .bss:0x0000000C; // type:object size:0x2 scope:local data:2byte +thpGroup = .bss:0x0000000E; // type:object size:0x2 scope:local data:2byte +staffLogoGroup = .bss:0x00000010; // type:object size:0x6 scope:local data:2byte +imgGroup = .bss:0x00000016; // type:object size:0x34 scope:local data:2byte diff --git a/config/GMPP01_00/rels/ztardll/splits.txt b/config/GMPP01_00/rels/ztardll/splits.txt index 531cd645..403b2201 100644 --- a/config/GMPP01_00/rels/ztardll/splits.txt +++ b/config/GMPP01_00/rels/ztardll/splits.txt @@ -5,3 +5,23 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/ztardll/main.c: + .text start:0x000000A0 end:0x0000789C + .rodata start:0x00000000 end:0x000001C0 + .data start:0x00000000 end:0x000000B0 + .bss start:0x00000000 end:0x00000070 + +REL/ztardll/font.c: + .text start:0x0000789C end:0x00007C40 + .rodata start:0x000001C0 end:0x000001C8 + .data start:0x000000B0 end:0x00000570 + +REL/ztardll/select.c: + .text start:0x00007C40 end:0x000123AC + .rodata start:0x000001C8 end:0x000002A0 + .data start:0x00000570 end:0x0000081C + .bss start:0x00000070 end:0x000002D8 diff --git a/config/GMPP01_00/rels/ztardll/symbols.txt b/config/GMPP01_00/rels/ztardll/symbols.txt index 2d23cebb..acceedbe 100644 --- a/config/GMPP01_00/rels/ztardll/symbols.txt +++ b/config/GMPP01_00/rels/ztardll/symbols.txt @@ -1,6 +1,6 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x384 +ObjectSetup = .text:0x000000A0; // type:function size:0x384 fn_1_424 = .text:0x00000424; // type:function size:0x1350 fn_1_1774 = .text:0x00001774; // type:function size:0x57C fn_1_1CF0 = .text:0x00001CF0; // type:function size:0xB0 diff --git a/configure.py b/configure.py index d80ab1c0..a5be4728 100644 --- a/configure.py +++ b/configure.py @@ -856,8 +856,8 @@ config.libs = [ Rel( "m401Dll", # Manta Rings objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m401Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m401Dll/main_ex.c"), + Object(Matching, "REL/m401Dll/main.c"), + Object(Matching, "REL/m401Dll/main_ex.c"), }, ), Rel( @@ -1326,9 +1326,9 @@ config.libs = [ Rel( "modeltestDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeltestDll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeltestDll/modeltest00.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeltestDll/modeltest01.c"), + Object(Matching, "REL/modeltestDll/main.c"), + Object(Matching, "REL/modeltestDll/modeltest00.c"), + Object(Matching, "REL/modeltestDll/modeltest01.c"), }, ), Rel( @@ -1343,9 +1343,9 @@ config.libs = [ Rel( "mpexDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mpexDll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mpexDll/mpex.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mpexDll/charsel.c"), + Object(Matching, "REL/mpexDll/main.c"), + Object(Matching, "REL/mpexDll/mpex.c"), + Object(Matching, "REL/mpexDll/charsel.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mpexDll/mgname.c"), }, ), @@ -1411,37 +1411,37 @@ config.libs = [ Rel( "present", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/init.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/camera.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/present.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/common.c"), + Object(Matching, "REL/present/init.c"), + Object(Matching, "REL/present/camera.c"), + Object(Matching, "REL/present/present.c"), + Object(Matching, "REL/present/main.c"), + Object(Matching, "REL/present/common.c"), }, ), Rel( "resultDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/resultDll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/resultDll/battle.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/resultDll/datalist.c"), + Object(Matching, "REL/resultDll/main.c"), + Object(Matching, "REL/resultDll/battle.c"), + Object(Matching, "REL/resultDll/datalist.c"), }, ), Rel( "safDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/safDll/main.c"), + Object(Matching, "REL/safDll/main.c"), }, ), Rel( "selmenuDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/selmenuDll/main.c"), + Object(Matching, "REL/selmenuDll/main.c"), }, ), Rel( "staffDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/staffDll/main.c"), + Object(Matching, "REL/staffDll/main.c"), }, ), Rel( diff --git a/src/REL/m401Dll/main.c b/src/REL/m401Dll/main.c index cb02264e..3308961a 100644 --- a/src/REL/m401Dll/main.c +++ b/src/REL/m401Dll/main.c @@ -2769,7 +2769,11 @@ void fn_2_C130(omObjData *object) case 0: if (!MGSeqStatGet(lbl_2_bss_C0)) { object->work[0] = 1; + #if VERSION_NTSC HuAudFXStop(lbl_2_bss_11C); + #else + HuAudFXFadeOut(lbl_2_bss_11C, 500); + #endif WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); WipeColorSet(255, 255, 255); } diff --git a/src/REL/mpexDll/mgname.c b/src/REL/mpexDll/mgname.c index 91f3d5b9..e173ead7 100644 --- a/src/REL/mpexDll/mgname.c +++ b/src/REL/mpexDll/mgname.c @@ -13,7 +13,7 @@ #include "REL/mpexDll.h" -s32 lbl_1_data_788[0xC6] = { +static s32 fontDataTbl[0xC6] = { 0, 0, 0, @@ -229,7 +229,7 @@ s32 fn_1_1CB80(SeqWork *arg0, u8 *arg1, s16 arg2) s16 var_r20; s16 var_r19; - var_r27 = lbl_1_data_788; + var_r27 = fontDataTbl; for (var_r23 = 0; var_r23 < 0x10; var_r23++) { if (arg0->spr_grp[var_r23] == -1) { diff --git a/src/REL/mpexDll/mpex.c b/src/REL/mpexDll/mpex.c index bfb46be1..31a7359e 100644 --- a/src/REL/mpexDll/mpex.c +++ b/src/REL/mpexDll/mpex.c @@ -1606,7 +1606,7 @@ void fn_1_9988(s32 arg0) u32 var_r29; fn_1_1B834(); - if (((mgRecordExtra == 0) && (arg0 != 4)) || ((mgRecordExtra >= 0x8CA0) && (arg0 == 4))) { + if (((mgRecordExtra == 0) && (arg0 != 4)) || ((mgRecordExtra >= 600*REFRESH_RATE) && (arg0 == 4))) { HuAudFXPlay(0x4A); fn_1_25C4(lbl_1_bss_2D8[1].unk_00, 1, 3, 0xF, 1); fn_1_1BA78(arg0 + 0x330096, -1, -1); @@ -1615,23 +1615,23 @@ void fn_1_9988(s32 arg0) else { if ((arg0 == 4) || (arg0 == 8)) { var_r31 = mgRecordExtra; - var_r30 = var_r31 / 36000; - var_r31 -= var_r30 * 36000; - var_r29 = var_r31 / 3600; - var_r31 -= var_r29 * 3600; + var_r30 = var_r31 / (600*REFRESH_RATE); + var_r31 -= var_r30 * (600*REFRESH_RATE); + var_r29 = var_r31 / (60*REFRESH_RATE); + var_r31 -= var_r29 * (60*REFRESH_RATE); sprintf(lbl_1_bss_120, "%d", var_r29); fn_1_1BB4C((u32)&lbl_1_bss_120, 0); - var_r30 = var_r31 / 600; - var_r31 -= var_r30 * 600; - var_r29 = var_r31 / 60; - var_r31 -= var_r29 * 60; + var_r30 = var_r31 / (10*REFRESH_RATE); + var_r31 -= var_r30 * (10*REFRESH_RATE); + var_r29 = var_r31 / REFRESH_RATE; + var_r31 -= var_r29 * REFRESH_RATE; sprintf(lbl_1_bss_118, "%d%d", var_r30, var_r29); fn_1_1BB4C((u32)lbl_1_bss_118, 1); if (arg0 == 8) { - var_r31 = 1.6916666666666667 * (float)var_r31; + var_r31 = (101.5/REFRESH_RATE) * (float)var_r31; } else { - var_r31 = 1.6666666666666667 * (float)var_r31; + var_r31 = (100.0/REFRESH_RATE) * (float)var_r31; } var_r30 = var_r31 / 10; var_r31 -= var_r30 * 0xA; @@ -1856,12 +1856,21 @@ void fn_1_AD34(void) HuAudFXPlay(0x9E); fn_1_1B7D0(0xA5); lbl_1_bss_1B8[0].unk_04 = (MpexDllUnkFunc2)fn_1_A0E4; - if (((mgRecordExtra == 0) && (lbl_1_bss_1B0 != 4)) || ((mgRecordExtra >= 0x8CA0) && (lbl_1_bss_1B0 == 4))) { + #if VERSION_NTSC + if (((mgRecordExtra == 0) && (lbl_1_bss_1B0 != 4)) || ((mgRecordExtra >= 600*REFRESH_RATE) && (lbl_1_bss_1B0 == 4))) { fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 5, 0xF, 0); } else { fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 4, 0xF, 0); } + #else + if (((mgRecordExtra == 0) && (lbl_1_bss_1B0 != 4)) || ((mgRecordExtra >= 500*REFRESH_RATE) && (lbl_1_bss_1B0 == 4))) { + fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 5, 0xF, 0); + } + else { + fn_1_25C4(lbl_1_bss_1B8[0].unk_00, 1, 4, 0xF, 0); + } + #endif fn_1_BC18(); fn_1_1B7D0(1); HuAudFXPlay(0x9F); @@ -2232,6 +2241,7 @@ void fn_1_C860(void) s32 fn_1_C898(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + #if VERSION_NTSC s32 sp88[5][9] = { { 0x64, 0xC8, 0x12C, 0x136, 0x140, 0x14A, 0x154, 0x15E, 0x168 }, { 0x05, 0x0A, 0x0F, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x32 }, @@ -2244,6 +2254,21 @@ s32 fn_1_C898(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { 0x4650, 0x3840, 0x2A30, 0x1C20, 0x1770, 0x12C0, 0x0E10, 0, 0 }, { 0x4650, 0x3840, 0x2A30, 0x2328, 0x1C20, 0x19C8, 0x1770, 0x1644, 0x1518 }, }; + #else + s32 sp88[5][9] = { + { 0x32, 0x64, 0xC8, 0x12C, 0x136, 0x140, 0x14A, 0x154, 0x15E }, + { 0x05, 0x0A, 0x0F, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x32 }, + { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 }, + { 60*REFRESH_RATE, 120*REFRESH_RATE, 180*REFRESH_RATE, 240*REFRESH_RATE, 300*REFRESH_RATE, + 360*REFRESH_RATE, 420*REFRESH_RATE, 480*REFRESH_RATE, 540*REFRESH_RATE }, + { 0x0A, 0xF, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x2B, 0x2D }, + }; + s32 sp1C[3][9] = { + { 300*REFRESH_RATE, 240*REFRESH_RATE, 180*REFRESH_RATE, 120*REFRESH_RATE, 60*REFRESH_RATE, 0, 0, 0, 0 }, + { 300*REFRESH_RATE, 240*REFRESH_RATE, 180*REFRESH_RATE, 120*REFRESH_RATE, 110*REFRESH_RATE, 100*REFRESH_RATE, 90*REFRESH_RATE, 0, 0 }, + { 300*REFRESH_RATE, 240*REFRESH_RATE, 180*REFRESH_RATE, 170*REFRESH_RATE, 124*REFRESH_RATE, 150*REFRESH_RATE, 140*REFRESH_RATE, 130*REFRESH_RATE, 120*REFRESH_RATE }, + }; + #endif s32 sp10[3]; s32 var_r31; s32 var_r30; @@ -2324,6 +2349,7 @@ void fn_1_CA98(s32 arg0, u32 arg1) case 3: OSReport("#################### HI-SCORE(%d) : %d\n", arg1, GWGameStat.mg_record[sp8[arg1]]); var_r31 = GWGameStat.mg_record[sp8[arg1]]; + #if VERSION_NTSC if (var_r31 < 0xA) { sprintf(lbl_1_bss_FC, " %d", var_r31); } @@ -2333,28 +2359,31 @@ void fn_1_CA98(s32 arg0, u32 arg1) else { sprintf(lbl_1_bss_FC, "%d", var_r31); } + #else + sprintf(lbl_1_bss_FC, " %d", var_r31); + #endif HuWinInsertMesSet(arg0, (u32)lbl_1_bss_FC, 0); break; case 8: OSReport("#################### HI-SCORE(%d) : %d\n", arg1, GWGameStat.mg_record[sp8[arg1]]); var_r31 = GWGameStat.mg_record[sp8[arg1]]; - var_r29 = var_r31 / 36000; - var_r31 -= var_r29 * 36000; - var_r28 = var_r31 / 3600; - var_r31 -= var_r28 * 3600; + var_r29 = var_r31 / (600 *REFRESH_RATE); + var_r31 -= var_r29 * (600 *REFRESH_RATE); + var_r28 = var_r31 / (60 *REFRESH_RATE); + var_r31 -= var_r28 * (60 *REFRESH_RATE); sprintf(lbl_1_bss_F4, " %d", var_r28); HuWinInsertMesSet(arg0, (u32)lbl_1_bss_F4, 0); - var_r29 = var_r31 / 600; - var_r31 -= var_r29 * 600; - var_r28 = var_r31 / 60; - var_r31 -= var_r28 * 60; + var_r29 = var_r31 / (10 *REFRESH_RATE); + var_r31 -= var_r29 * (10 *REFRESH_RATE); + var_r28 = var_r31 / REFRESH_RATE; + var_r31 -= var_r28 * REFRESH_RATE; sprintf(lbl_1_bss_EC, "%d%d", var_r29, var_r28); HuWinInsertMesSet(arg0, (u32)lbl_1_bss_EC, 1); - var_r31 = 1.6916666666666667 * (float)var_r31; + var_r31 = (101.5/REFRESH_RATE) * (float)var_r31; var_r29 = var_r31 / 10; var_r31 -= var_r29 * 0xA; var_r28 = var_r31; - if (GWGameStat.mg_record[sp8[arg1]] >= 0x8C9F) { + if (GWGameStat.mg_record[sp8[arg1]] >= ((600*REFRESH_RATE)-1)) { sprintf(lbl_1_bss_E4, "99"); } else { @@ -2678,24 +2707,24 @@ void fn_1_E568(void) HuSprPosSet(var_r29, 0x0D + var_r28 + (var_r31 * 7), (var_r28 * 0x14) + 0x512, (var_r31 * 0x38) + 0xBA); } var_r30 = GWGameStat.mg_record[var_r31 + 6]; - var_r27 = var_r30 / 36000; - var_r30 -= var_r27 * 36000; - var_r26 = var_r30 / 3600; - var_r30 -= var_r26 * 3600; + var_r27 = var_r30 / (600*REFRESH_RATE); + var_r30 -= var_r27 * (600*REFRESH_RATE); + var_r26 = var_r30 / (60*REFRESH_RATE); + var_r30 -= var_r26 * (60*REFRESH_RATE); HuSprBankSet(var_r29, (var_r31 * 7) + 0xD, var_r26); HuSprBankSet(var_r29, (var_r31 * 7) + 0xE, 0xA); - var_r27 = var_r30 / 600; - var_r30 -= var_r27 * 600; - var_r26 = var_r30 / 60; - var_r30 -= var_r26 * 60; + var_r27 = var_r30 / (10*REFRESH_RATE); + var_r30 -= var_r27 * (10*REFRESH_RATE); + var_r26 = var_r30 / REFRESH_RATE; + var_r30 -= var_r26 * REFRESH_RATE; HuSprBankSet(var_r29, (var_r31 * 7) + 0xF, var_r27); HuSprBankSet(var_r29, (var_r31 * 7) + 0x10, var_r26); HuSprBankSet(var_r29, (var_r31 * 7) + 0x11, 0xB); - var_r30 = 1.6666666666666667 * (float)var_r30; + var_r30 = (100.0/REFRESH_RATE) * (float)var_r30; var_r27 = var_r30 / 10; var_r30 -= var_r27 * 0xA; var_r26 = var_r30; - if (GWGameStat.mg_record[var_r31 + 6] == 0x8C9F) { + if (GWGameStat.mg_record[var_r31 + 6] == ((600*REFRESH_RATE)-1)) { HuSprBankSet(var_r29, (var_r31 * 7) + 0x12, 9); HuSprBankSet(var_r29, (var_r31 * 7) + 0x13, 9); } @@ -3426,26 +3455,38 @@ void fn_1_121E8(void) else if (GWGameStat.mg_record[9] >= 0x63) { GWGameStat.mg_record[9] = 0x63; } + #if VERSION_NTSC OSReport("HIScore 451A(0-35999):%d\n", GWGameStat.mg_record[6]); + #else + OSReport("HIScore 451A(0-29999):%d\n", GWGameStat.mg_record[6]); + #endif if (GWGameStat.mg_record[6] == 0) { GWGameStat.mg_record[6] = 0; } - else if (GWGameStat.mg_record[6] >= 0x8C9F) { - GWGameStat.mg_record[6] = 0x8C9F; + else if (GWGameStat.mg_record[6] >= ((REFRESH_RATE*600)-1)) { + GWGameStat.mg_record[6] = ((REFRESH_RATE*600)-1); } + #if VERSION_NTSC OSReport("HIScore 451B(0-35999):%d\n", GWGameStat.mg_record[7]); + #else + OSReport("HIScore 451B(0-29999):%d\n", GWGameStat.mg_record[7]); + #endif if (GWGameStat.mg_record[7] == 0) { GWGameStat.mg_record[7] = 0; } - else if (GWGameStat.mg_record[7] >= 0x8C9F) { - GWGameStat.mg_record[7] = 0x8C9F; + else if (GWGameStat.mg_record[7] >= ((REFRESH_RATE*600)-1)) { + GWGameStat.mg_record[7] = ((REFRESH_RATE*600)-1); } + #if VERSION_NTSC OSReport("HIScore 451C(0-35999):%d\n", GWGameStat.mg_record[8]); + #else + OSReport("HIScore 451C(0-29999):%d\n", GWGameStat.mg_record[8]); + #endif if (GWGameStat.mg_record[8] == 0) { GWGameStat.mg_record[8] = 0; } - else if (GWGameStat.mg_record[8] >= 0x8C9F) { - GWGameStat.mg_record[8] = 0x8C9F; + else if (GWGameStat.mg_record[8] >= ((REFRESH_RATE*600)-1)) { + GWGameStat.mg_record[8] = ((REFRESH_RATE*600)-1); } OSReport("HIScore 442(0-999):%d\n", GWGameStat.mg_record[4]); if (GWGameStat.mg_record[4] == 0) { @@ -3468,12 +3509,16 @@ void fn_1_121E8(void) else if (GWGameStat.mg_record[0xC] >= 0x63) { GWGameStat.mg_record[0xC] = 0x63; } - OSReport("HIScore 461(0-35999):%d\n", GWGameStat.mg_record[0xD]); + #if VERSION_NTSC + OSReport("HIScore 461(0-35999):%d\n", GWGameStat.mg_record[13]); + #else + OSReport("HIScore 461(0-29999):%d\n", GWGameStat.mg_record[13]); + #endif if (GWGameStat.mg_record[0xD] == 0) { GWGameStat.mg_record[0xD] = 0; } - else if (GWGameStat.mg_record[0xD] >= 0x8C9F) { - GWGameStat.mg_record[0xD] = 0x8C9F; + else if (GWGameStat.mg_record[0xD] >= ((REFRESH_RATE*600)-1)) { + GWGameStat.mg_record[0xD] = ((REFRESH_RATE*600)-1); } OSReport("HIScore 462(0-99):%d\n", GWGameStat.mg_record[0xE]); if (GWGameStat.mg_record[0xE] == 0) { diff --git a/src/REL/safDll/main.c b/src/REL/safDll/main.c index dfb34d70..8c2447d2 100644 --- a/src/REL/safDll/main.c +++ b/src/REL/safDll/main.c @@ -6,7 +6,9 @@ #include "math.h" s32 lbl_1_data_0 = 100; +#if VERSION_NTSC s32 lbl_1_bss_0[192]; +#endif void fn_1_0(void) { diff --git a/src/REL/staffDll/main.c b/src/REL/staffDll/main.c index 0580c6a1..8f880eb9 100644 --- a/src/REL/staffDll/main.c +++ b/src/REL/staffDll/main.c @@ -178,9 +178,32 @@ static StaffData staffData[] = { { 0x0035005F, 2, 0.0f, 0, 0, 0 }, { 0x00350060, 2, 0.0f, 0, 0, 0 }, { -3, 0, 48.0f, 0, 0, 0 }, + #if VERSION_PAL + { 0x00340026, 0, 0.0f, 0, 0, 0 }, + { -3, 0, 24.0f, 0, 0, 0 }, + { 0x00340027, 1, 0.0f, 0, 0, 0 }, + { -3, 0, 24.0f, 0, 0, 0 }, + { 0x00340028, 1, 0.0f, 0, 0, 0 }, + { 0x00350061, 2, 0.0f, 0, 0, 0 }, + { -3, 0, 24.0f, 0, 0, 0 }, + { 0x00340029, 1, 0.0f, 0, 0, 0 }, + { 0x0034002A, 1, 0.0f, 0, 0, 0 }, + { 0x00350062, 2, 0.0f, 0, 0, 0 }, + { 0x0034002B, 1, 0.0f, 0, 0, 0 }, + { 0x00350063, 2, 0.0f, 0, 0, 0 }, + { 0x0034002C, 1, 0.0f, 0, 0, 0 }, + { 0x00350064, 2, 0.0f, 0, 0, 0 }, + { 0x0034002D, 1, 0.0f, 0, 0, 0 }, + { 0x00350065, 2, 0.0f, 0, 0, 0 }, + { -3, 0, 24.0f, 0, 0, 0 }, + { 0x0034002E, 1, 0.0f, 0, 0, 0 }, + { -3, 0, 72.0f, 0, 0, 0 }, + #endif { 0x00340016, 0, 0.0f, 0, 0, 0 }, { 0x00350044, 2, 0.0f, 0, 0, 0 }, + #if VERSION_NTSC { 0x00350045, 2, 0.0f, 0, 0, 0 }, + #endif { -3, 0, 24.0f, 0, 0, 0 }, { 0x00350046, 2, 0.0f, 0, 0, 0 }, { 0x00350047, 2, 0.0f, 0, 0, 0 }, @@ -216,7 +239,11 @@ static StaffData staffData[] = { { -1, 0, 0.0f, 0, 0, 0 }, }; +#if VERSION_NTSC static float staffLogoPosTbl[] = { 460.0f, 293.0f, 293.0f }; +#else +static float staffLogoPosTbl[] = { 460.0f, 290.0f, 293.0f }; +#endif static void MainProc(void); static void CreateStaff(void); @@ -305,7 +332,36 @@ static void CreateStaff(void) } for (var_r31 = 0; var_r31 < 3; var_r31++) { + int languageNo; + #if VERSION_NTSC var_r29 = HuDataSelHeapReadNum(var_r31 + DATA_MAKE_NUM(DATADIR_STAFF, 0x1A), MEMORY_DEFAULT_NUM, HEAP_DATA); + #else + if(var_r31 == 2) { + switch(GWGameStat.language) { + case 1: + languageNo = 0; + break; + + case 2: + languageNo = 1; + break; + + case 4: + languageNo = 3; + break; + + default: + languageNo = 2; + break; + + } + + var_r29 = HuDataSelHeapReadNum(var_r31 + DATA_MAKE_NUM(DATADIR_STAFF, 0x1A) + languageNo, MEMORY_DEFAULT_NUM, HEAP_DATA); + } else { + var_r29 = HuDataSelHeapReadNum(var_r31 + DATA_MAKE_NUM(DATADIR_STAFF, 0x1A), MEMORY_DEFAULT_NUM, HEAP_DATA); + } + #endif + var_r28 = HuSprAnimRead(var_r29); var_r30 = HuSprCreate(var_r28, 256, 0); staffLogoGroup[var_r31] = HuSprGrpCreate(1); @@ -319,7 +375,11 @@ static void CreateStaff(void) HuSprGrpPosSet(thpGroup, 280.0f, 200.0f); HuSprAttrSet(thpGroup, 0, HUSPR_ATTR_DISPOFF); HuTHPStop(); + #if VERSION_NTSC var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_STAFF, 0x1D), MEMORY_DEFAULT_NUM, HEAP_DATA); + #else + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_STAFF, 0x20), MEMORY_DEFAULT_NUM, HEAP_DATA); + #endif var_r28 = HuSprAnimRead(var_r29); var_r30 = HuSprCreate(var_r28, 16385, 0); thpCoverGroup = HuSprGrpCreate(1); @@ -462,12 +522,19 @@ static void ShowPicture(void) HuSprTPLvlSet(imgGroup[currImg], 0, 1.0f); while (TRUE) { + #if VERSION_NTSC if (currImg >= 24) { HuPrcSleep(430); - } - else { + } else { HuPrcSleep(550); } + #else + if (currImg >= 24) { + HuPrcSleep(480); + } else { + HuPrcSleep(600); + } + #endif if (currImg >= 25) { break; } @@ -548,7 +615,11 @@ static void MainProc(void) HuPrcVSleep(); } HuSprGrpPosSet(staffLogoGroup[1], var_f29, 400.0f); + #if VERSION_NTSC HuPrcSleep(240); + #else + HuPrcSleep(60); + #endif HuSprAttrReset(thpGroup, 0, HUSPR_ATTR_DISPOFF); HuSprAttrReset(thpCoverGroup, 0, HUSPR_ATTR_DISPOFF); HuTHPRestart(); @@ -579,15 +650,20 @@ static void MainProc(void) HuSprAttrSet(staffLogoGroup[1], 0, HUSPR_ATTR_DISPOFF); HuPrcSleep(120); HuSprAttrReset(staffLogoGroup[2], 0, HUSPR_ATTR_DISPOFF); + #if VERSION_NTSC HuSprGrpPosSet(staffLogoGroup[2], 280.0f, 240.0f); - + #else + HuSprGrpPosSet(staffLogoGroup[2], 275.0f, 240.0f); + #endif for (var_r31 = 0, var_f31 = 0.0f; var_r31 < 30; var_r31++, var_f31 += 1.0f / 30.0f) { HuSprTPLvlSet(staffLogoGroup[2], 0, var_f31); HuPrcVSleep(); } - + #if VERSION_NTSC HuPrcSleep(600); - + #else + HuPrcSleep(480); + #endif while (TRUE) { for (var_r31 = 0; var_r31 < 4; var_r31++) { if (HuPadBtn[var_r31] & PAD_BUTTON_START) { From 68a6774f9b746c5f21da3fb9fc78157ff7b03706 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 18 Nov 2024 00:50:02 +0100 Subject: [PATCH 152/311] Ported m440Dll --- config/GMPE01_00/rels/m440Dll/symbols.txt | 12 +- config/GMPP01_00/rels/m440Dll/splits.txt | 15 + config/GMPP01_00/rels/m440Dll/symbols.txt | 478 +++++++++++----------- config/GMPP01_00/rels/m451Dll/symbols.txt | 194 ++++----- configure.py | 4 +- include/REL/m440Dll.h | 5 + src/REL/m440Dll/main.c | 47 +-- src/REL/m440Dll/object.c | 66 +-- 8 files changed, 427 insertions(+), 394 deletions(-) diff --git a/config/GMPE01_00/rels/m440Dll/symbols.txt b/config/GMPE01_00/rels/m440Dll/symbols.txt index 8cff0e70..47f1c944 100644 --- a/config/GMPE01_00/rels/m440Dll/symbols.txt +++ b/config/GMPE01_00/rels/m440Dll/symbols.txt @@ -238,13 +238,13 @@ lbl_1_data_60 = .data:0x00000060; // type:object size:0xC lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC data:float lbl_1_data_78 = .data:0x00000078; // type:object size:0x54 data:float lbl_1_data_CC = .data:0x000000CC; // type:object size:0x18 scope:local -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x2 data:2byte -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x2 data:2byte -lbl_1_data_EC = .data:0x000000EC; // type:object size:0x2 data:2byte -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x2 data:2byte +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x4 data:2byte +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x4 data:2byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x4 data:2byte +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x4 data:2byte lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x10 -lbl_1_data_104 = .data:0x00000104; // type:object size:0x2 data:2byte -lbl_1_data_108 = .data:0x00000108; // type:object size:0x2 data:2byte +lbl_1_data_104 = .data:0x00000104; // type:object size:0x4 data:2byte +lbl_1_data_108 = .data:0x00000108; // type:object size:0x4 data:2byte lbl_1_data_10C = .data:0x0000010C; // type:object size:0x12 lbl_1_data_11E = .data:0x0000011E; // type:object size:0x13 scope:local data:string lbl_1_data_131 = .data:0x00000131; // type:object size:0x17 scope:local data:string diff --git a/config/GMPP01_00/rels/m440Dll/splits.txt b/config/GMPP01_00/rels/m440Dll/splits.txt index 531cd645..a5cd08ba 100644 --- a/config/GMPP01_00/rels/m440Dll/splits.txt +++ b/config/GMPP01_00/rels/m440Dll/splits.txt @@ -5,3 +5,18 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m440Dll/main.c: + .text start:0x000000A0 end:0x0000AE04 + .rodata start:0x00000000 end:0x00000190 + .data start:0x00000000 end:0x000001D8 + .bss start:0x00000000 end:0x00000070 + +REL/m440Dll/object.c: + .text start:0x0000AE04 end:0x0000F4F0 + .rodata start:0x00000190 end:0x000002B8 + .data start:0x000001D8 end:0x00000254 + .bss start:0x00000070 end:0x000000D0 diff --git a/config/GMPP01_00/rels/m440Dll/symbols.txt b/config/GMPP01_00/rels/m440Dll/symbols.txt index 2f3f212b..c1d0231e 100644 --- a/config/GMPP01_00/rels/m440Dll/symbols.txt +++ b/config/GMPP01_00/rels/m440Dll/symbols.txt @@ -1,237 +1,238 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x324 +ObjectSetup = .text:0x000000A0; // type:function size:0x324 fn_1_3C4 = .text:0x000003C4; // type:function size:0x70 fn_1_434 = .text:0x00000434; // type:function size:0x70 fn_1_4A4 = .text:0x000004A4; // type:function size:0x224 fn_1_6C8 = .text:0x000006C8; // type:function size:0x228 fn_1_8F0 = .text:0x000008F0; // type:function size:0x1F0 fn_1_AE0 = .text:0x00000AE0; // type:function size:0x330 -fn_1_E10 = .text:0x00000E10; // type:function size:0x324 -fn_1_1134 = .text:0x00001134; // type:function size:0x5A0 -fn_1_16D4 = .text:0x000016D4; // type:function size:0x30 -fn_1_1704 = .text:0x00001704; // type:function size:0x60 -fn_1_1764 = .text:0x00001764; // type:function size:0x64 -fn_1_17C8 = .text:0x000017C8; // type:function size:0x28 -fn_1_17F0 = .text:0x000017F0; // type:function size:0x28 -fn_1_1818 = .text:0x00001818; // type:function size:0x74 -fn_1_188C = .text:0x0000188C; // type:function size:0x50 -fn_1_18DC = .text:0x000018DC; // type:function size:0x74 -fn_1_1950 = .text:0x00001950; // type:function size:0x5C -fn_1_19AC = .text:0x000019AC; // type:function size:0x2FC -fn_1_1CA8 = .text:0x00001CA8; // type:function size:0xA8 -fn_1_1D50 = .text:0x00001D50; // type:function size:0x4EC -fn_1_223C = .text:0x0000223C; // type:function size:0x1A4 -fn_1_23E0 = .text:0x000023E0; // type:function size:0x44 -fn_1_2424 = .text:0x00002424; // type:function size:0x48 -fn_1_246C = .text:0x0000246C; // type:function size:0x604 -fn_1_2A70 = .text:0x00002A70; // type:function size:0x40 -fn_1_2AB0 = .text:0x00002AB0; // type:function size:0x50 -fn_1_2B00 = .text:0x00002B00; // type:function size:0x1A4 -fn_1_2CA4 = .text:0x00002CA4; // type:function size:0x80 -fn_1_2D24 = .text:0x00002D24; // type:function size:0x6AC -fn_1_33D0 = .text:0x000033D0; // type:function size:0xA04 -fn_1_3DD4 = .text:0x00003DD4; // type:function size:0x780 -fn_1_4554 = .text:0x00004554; // type:function size:0x64 -fn_1_45B8 = .text:0x000045B8; // type:function size:0xA4 -fn_1_465C = .text:0x0000465C; // type:function size:0x80 -fn_1_46DC = .text:0x000046DC; // type:function size:0x340 -fn_1_4A1C = .text:0x00004A1C; // type:function size:0x124 -fn_1_4B40 = .text:0x00004B40; // type:function size:0x2BC -fn_1_4DFC = .text:0x00004DFC; // type:function size:0x2C -fn_1_4E28 = .text:0x00004E28; // type:function size:0x28 -fn_1_4E50 = .text:0x00004E50; // type:function size:0x54 -fn_1_4EA4 = .text:0x00004EA4; // type:function size:0x44 -fn_1_4EE8 = .text:0x00004EE8; // type:function size:0x48 -fn_1_4F30 = .text:0x00004F30; // type:function size:0xDC -fn_1_500C = .text:0x0000500C; // type:function size:0x7A4 -fn_1_57B0 = .text:0x000057B0; // type:function size:0x478 -fn_1_5C28 = .text:0x00005C28; // type:function size:0x928 -fn_1_6550 = .text:0x00006550; // type:function size:0x604 -fn_1_6B54 = .text:0x00006B54; // type:function size:0x6A4 -fn_1_71F8 = .text:0x000071F8; // type:function size:0x738 -fn_1_7930 = .text:0x00007930; // type:function size:0x42C -fn_1_7D5C = .text:0x00007D5C; // type:function size:0x30C -fn_1_8068 = .text:0x00008068; // type:function size:0x404 -fn_1_846C = .text:0x0000846C; // type:function size:0x654 -fn_1_8AC0 = .text:0x00008AC0; // type:function size:0x258 -fn_1_8D18 = .text:0x00008D18; // type:function size:0x488 -fn_1_91A0 = .text:0x000091A0; // type:function size:0xD8 -fn_1_9278 = .text:0x00009278; // type:function size:0xC8 -fn_1_9340 = .text:0x00009340; // type:function size:0x7C -fn_1_93BC = .text:0x000093BC; // type:function size:0x10 -fn_1_93CC = .text:0x000093CC; // type:function size:0x5C -fn_1_9428 = .text:0x00009428; // type:function size:0x140 -fn_1_9568 = .text:0x00009568; // type:function size:0x544 -fn_1_9AAC = .text:0x00009AAC; // type:function size:0x60 -fn_1_9B0C = .text:0x00009B0C; // type:function size:0x2C -fn_1_9B38 = .text:0x00009B38; // type:function size:0x58 -fn_1_9B90 = .text:0x00009B90; // type:function size:0x38 -fn_1_9BC8 = .text:0x00009BC8; // type:function size:0x38 -fn_1_9C00 = .text:0x00009C00; // type:function size:0x5B4 -fn_1_A1B4 = .text:0x0000A1B4; // type:function size:0xCC -fn_1_A280 = .text:0x0000A280; // type:function size:0xA4 -fn_1_A324 = .text:0x0000A324; // type:function size:0x68 -fn_1_A38C = .text:0x0000A38C; // type:function size:0x704 -fn_1_AA90 = .text:0x0000AA90; // type:function size:0x374 -fn_1_AE04 = .text:0x0000AE04; // type:function size:0xDC -fn_1_AEE0 = .text:0x0000AEE0; // type:function size:0x298 -fn_1_B178 = .text:0x0000B178; // type:function size:0x4 -fn_1_B17C = .text:0x0000B17C; // type:function size:0x224 -fn_1_B3A0 = .text:0x0000B3A0; // type:function size:0x4E0 -fn_1_B880 = .text:0x0000B880; // type:function size:0x950 -fn_1_C1D0 = .text:0x0000C1D0; // type:function size:0x770 -fn_1_C940 = .text:0x0000C940; // type:function size:0x668 -fn_1_CFA8 = .text:0x0000CFA8; // type:function size:0x2A0 -fn_1_D248 = .text:0x0000D248; // type:function size:0x100 -fn_1_D348 = .text:0x0000D348; // type:function size:0x4AC -fn_1_D7F4 = .text:0x0000D7F4; // type:function size:0x83C -fn_1_E030 = .text:0x0000E030; // type:function size:0x858 -fn_1_E888 = .text:0x0000E888; // type:function size:0x4DC -fn_1_ED64 = .text:0x0000ED64; // type:function size:0xF0 -fn_1_EE54 = .text:0x0000EE54; // type:function size:0xD8 -fn_1_EF2C = .text:0x0000EF2C; // type:function size:0x1AC -fn_1_F0D8 = .text:0x0000F0D8; // type:function size:0x6C -fn_1_F144 = .text:0x0000F144; // type:function size:0xC0 -fn_1_F204 = .text:0x0000F204; // type:function size:0x298 -fn_1_F49C = .text:0x0000F49C; // type:function size:0x14 -fn_1_F4B0 = .text:0x0000F4B0; // type:function size:0x28 -fn_1_F4D8 = .text:0x0000F4D8; // type:function size:0x18 +fn_1_E14 = .text:0x00000E10; // type:function size:0x324 +fn_1_1138 = .text:0x00001134; // type:function size:0x5A0 +fn_1_16D8 = .text:0x000016D4; // type:function size:0x30 +fn_1_1708 = .text:0x00001704; // type:function size:0x60 +fn_1_1768 = .text:0x00001764; // type:function size:0x64 +fn_1_17CC = .text:0x000017C8; // type:function size:0x28 +fn_1_17F4 = .text:0x000017F0; // type:function size:0x28 +fn_1_181C = .text:0x00001818; // type:function size:0x74 +fn_1_1890 = .text:0x0000188C; // type:function size:0x50 +fn_1_18E0 = .text:0x000018DC; // type:function size:0x74 +fn_1_1954 = .text:0x00001950; // type:function size:0x5C +fn_1_19B0 = .text:0x000019AC; // type:function size:0x2FC +fn_1_1CAC = .text:0x00001CA8; // type:function size:0xA8 +fn_1_1D54 = .text:0x00001D50; // type:function size:0x4EC +fn_1_2240 = .text:0x0000223C; // type:function size:0x1A4 +fn_1_23E4 = .text:0x000023E0; // type:function size:0x44 +fn_1_2428 = .text:0x00002424; // type:function size:0x48 +fn_1_2470 = .text:0x0000246C; // type:function size:0x604 +fn_1_2A74 = .text:0x00002A70; // type:function size:0x40 +fn_1_2AB4 = .text:0x00002AB0; // type:function size:0x50 +fn_1_2B04 = .text:0x00002B00; // type:function size:0x1A4 +fn_1_2CA8 = .text:0x00002CA4; // type:function size:0x80 +fn_1_2D28 = .text:0x00002D24; // type:function size:0x6AC +fn_1_33D4 = .text:0x000033D0; // type:function size:0xA04 +fn_1_3DD8 = .text:0x00003DD4; // type:function size:0x780 +fn_1_4558 = .text:0x00004554; // type:function size:0x64 +fn_1_45BC = .text:0x000045B8; // type:function size:0xA4 +fn_1_4660 = .text:0x0000465C; // type:function size:0x80 +fn_1_46E0 = .text:0x000046DC; // type:function size:0x340 +fn_1_4A20 = .text:0x00004A1C; // type:function size:0x124 +fn_1_4B44 = .text:0x00004B40; // type:function size:0x2BC +fn_1_4E00 = .text:0x00004DFC; // type:function size:0x2C +fn_1_4E2C = .text:0x00004E28; // type:function size:0x28 +fn_1_4E54 = .text:0x00004E50; // type:function size:0x54 +fn_1_4EA8 = .text:0x00004EA4; // type:function size:0x44 +fn_1_4EEC = .text:0x00004EE8; // type:function size:0x48 +fn_1_4F34 = .text:0x00004F30; // type:function size:0xDC +fn_1_5010 = .text:0x0000500C; // type:function size:0x7A4 +fn_1_57B4 = .text:0x000057B0; // type:function size:0x478 +fn_1_5C2C = .text:0x00005C28; // type:function size:0x928 +fn_1_6554 = .text:0x00006550; // type:function size:0x604 +fn_1_6B58 = .text:0x00006B54; // type:function size:0x6A4 +fn_1_71FC = .text:0x000071F8; // type:function size:0x738 +fn_1_7934 = .text:0x00007930; // type:function size:0x42C +fn_1_7D60 = .text:0x00007D5C; // type:function size:0x30C +fn_1_806C = .text:0x00008068; // type:function size:0x404 +fn_1_8470 = .text:0x0000846C; // type:function size:0x654 +fn_1_8AC4 = .text:0x00008AC0; // type:function size:0x258 +fn_1_8D1C = .text:0x00008D18; // type:function size:0x488 +fn_1_91A4 = .text:0x000091A0; // type:function size:0xD8 +fn_1_927C = .text:0x00009278; // type:function size:0xC8 +fn_1_9344 = .text:0x00009340; // type:function size:0x7C +fn_1_93C0 = .text:0x000093BC; // type:function size:0x10 +fn_1_93D0 = .text:0x000093CC; // type:function size:0x5C +fn_1_942C = .text:0x00009428; // type:function size:0x140 +fn_1_956C = .text:0x00009568; // type:function size:0x544 +fn_1_9AB0 = .text:0x00009AAC; // type:function size:0x60 +fn_1_9B10 = .text:0x00009B0C; // type:function size:0x2C +fn_1_9B3C = .text:0x00009B38; // type:function size:0x58 +fn_1_9B94 = .text:0x00009B90; // type:function size:0x38 +fn_1_9BCC = .text:0x00009BC8; // type:function size:0x38 +fn_1_9C04 = .text:0x00009C00; // type:function size:0x5B4 +fn_1_A1B8 = .text:0x0000A1B4; // type:function size:0xCC +fn_1_A284 = .text:0x0000A280; // type:function size:0xA4 +fn_1_A328 = .text:0x0000A324; // type:function size:0x68 +fn_1_A390 = .text:0x0000A38C; // type:function size:0x704 +fn_1_AA94 = .text:0x0000AA90; // type:function size:0x374 +fn_1_AE08 = .text:0x0000AE04; // type:function size:0xDC +fn_1_AEE4 = .text:0x0000AEE0; // type:function size:0x298 +fn_1_B17C = .text:0x0000B178; // type:function size:0x4 +fn_1_B180 = .text:0x0000B17C; // type:function size:0x224 +fn_1_B3A4 = .text:0x0000B3A0; // type:function size:0x4E0 +fn_1_B884 = .text:0x0000B880; // type:function size:0x950 +fn_1_C1D4 = .text:0x0000C1D0; // type:function size:0x770 +fn_1_C944 = .text:0x0000C940; // type:function size:0x668 +fn_1_CFAC = .text:0x0000CFA8; // type:function size:0x2A0 +fn_1_D24C = .text:0x0000D248; // type:function size:0x100 +fn_1_D34C = .text:0x0000D348; // type:function size:0x4AC +fn_1_D7F8 = .text:0x0000D7F4; // type:function size:0x83C +fn_1_E034 = .text:0x0000E030; // type:function size:0x858 +fn_1_E8AC = .text:0x0000E888; // type:function size:0x4DC +fn_1_ED88 = .text:0x0000ED64; // type:function size:0xF0 +fn_1_EE78 = .text:0x0000EE54; // type:function size:0xD8 +fn_1_EF50 = .text:0x0000EF2C; // type:function size:0x1AC +fn_1_F0FC = .text:0x0000F0D8; // type:function size:0x6C +fn_1_F168 = .text:0x0000F144; // type:function size:0xC0 +fn_1_F228 = .text:0x0000F204; // type:function size:0x298 +fn_1_F4C0 = .text:0x0000F49C; // type:function size:0x14 +fn_1_F4D4 = .text:0x0000F4B0; // type:function size:0x28 +fn_1_F4FC = .text:0x0000F4D8; // type:function size:0x18 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x1 data:byte -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0xC data:2byte -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC data:4byte -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC data:2byte -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x14 lbl_1_data_14 = .data:0x00000014; // type:object size:0xC lbl_1_data_20 = .data:0x00000020; // type:object size:0xC data:float @@ -242,22 +243,23 @@ lbl_1_data_54 = .data:0x00000054; // type:object size:0xC data:float lbl_1_data_60 = .data:0x00000060; // type:object size:0xC lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC data:float lbl_1_data_78 = .data:0x00000078; // type:object size:0x54 data:float -lbl_1_data_CC = .data:0x000000CC; // type:object size:0x18 -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x2 data:2byte -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x2 data:2byte -lbl_1_data_EC = .data:0x000000EC; // type:object size:0x2 data:2byte -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x2 data:2byte +lbl_1_data_CC = .data:0x000000CC; // type:object size:0x18 scope:local +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x4 data:2byte +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x4 data:2byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x4 data:2byte +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x4 data:2byte lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x10 -lbl_1_data_104 = .data:0x00000104; // type:object size:0x2 data:2byte -lbl_1_data_108 = .data:0x00000108; // type:object size:0x2 data:2byte +lbl_1_data_104 = .data:0x00000104; // type:object size:0x4 data:2byte +lbl_1_data_108 = .data:0x00000108; // type:object size:0x4 data:2byte lbl_1_data_10C = .data:0x0000010C; // type:object size:0x12 -lbl_1_data_11E = .data:0x0000011E; // type:object size:0x13 data:string -lbl_1_data_131 = .data:0x00000131; // type:object size:0x18 -lbl_1_data_149 = .data:0x00000149; // type:object size:0x19 data:string -lbl_1_data_162 = .data:0x00000162; // type:object size:0x1C data:string -lbl_1_data_17E = .data:0x0000017E; // type:object size:0x10 data:string -lbl_1_data_18E = .data:0x0000018E; // type:object size:0x26 data:string -lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 data:string +lbl_1_data_11E = .data:0x0000011E; // type:object size:0x13 scope:local data:string +lbl_1_data_131 = .data:0x00000131; // type:object size:0x17 scope:local data:string +lbl_1_data_148 = .data:0x00000148; // type:object size:0x1 scope:local +lbl_1_data_149 = .data:0x00000149; // type:object size:0x19 scope:local data:string +lbl_1_data_162 = .data:0x00000162; // type:object size:0x1C scope:local data:string +lbl_1_data_17E = .data:0x0000017E; // type:object size:0x10 scope:local data:string +lbl_1_data_18E = .data:0x0000018E; // type:object size:0x26 scope:local data:string +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 scope:local data:string lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x2 data:2byte lbl_1_data_1DA = .data:0x000001DA; // type:object size:0x2 data:2byte lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x40 diff --git a/config/GMPP01_00/rels/m451Dll/symbols.txt b/config/GMPP01_00/rels/m451Dll/symbols.txt index 31e776c0..27c352fc 100644 --- a/config/GMPP01_00/rels/m451Dll/symbols.txt +++ b/config/GMPP01_00/rels/m451Dll/symbols.txt @@ -99,109 +99,109 @@ lbl_1_data_54 = .data:0x00000054; // type:object size:0xC lbl_1_data_60 = .data:0x00000060; // type:object size:0xC lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC lbl_1_data_78 = .data:0x00000078; // type:object size:0xC -lbl_1_data_84 = .data:0x00000084; // type:object size:0xB data:string -lbl_1_data_8F = .data:0x0000008F; // type:object size:0xB data:string -lbl_1_data_9A = .data:0x0000009A; // type:object size:0xB data:string -lbl_1_data_A5 = .data:0x000000A5; // type:object size:0xB data:string -lbl_1_data_B0 = .data:0x000000B0; // type:object size:0xB data:string -lbl_1_data_BB = .data:0x000000BB; // type:object size:0xB data:string -lbl_1_data_C6 = .data:0x000000C6; // type:object size:0xB data:string -lbl_1_data_D1 = .data:0x000000D1; // type:object size:0xB data:string -lbl_1_data_DC = .data:0x000000DC; // type:object size:0xB data:string -lbl_1_data_E7 = .data:0x000000E7; // type:object size:0xB data:string -lbl_1_data_F2 = .data:0x000000F2; // type:object size:0xB data:string -lbl_1_data_FD = .data:0x000000FD; // type:object size:0xB data:string -lbl_1_data_108 = .data:0x00000108; // type:object size:0xB data:string -lbl_1_data_113 = .data:0x00000113; // type:object size:0xB data:string -lbl_1_data_11E = .data:0x0000011E; // type:object size:0xB data:string -lbl_1_data_129 = .data:0x00000129; // type:object size:0xB data:string -lbl_1_data_134 = .data:0x00000134; // type:object size:0xB data:string -lbl_1_data_13F = .data:0x0000013F; // type:object size:0xB data:string -lbl_1_data_14A = .data:0x0000014A; // type:object size:0xB data:string -lbl_1_data_155 = .data:0x00000155; // type:object size:0xB data:string -lbl_1_data_160 = .data:0x00000160; // type:object size:0xB data:string -lbl_1_data_16B = .data:0x0000016B; // type:object size:0xB data:string -lbl_1_data_176 = .data:0x00000176; // type:object size:0xB data:string -lbl_1_data_181 = .data:0x00000181; // type:object size:0xB data:string -lbl_1_data_18C = .data:0x0000018C; // type:object size:0xB data:string -lbl_1_data_197 = .data:0x00000197; // type:object size:0xB data:string -lbl_1_data_1A2 = .data:0x000001A2; // type:object size:0xB data:string -lbl_1_data_1AD = .data:0x000001AD; // type:object size:0xB data:string -lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0xB data:string -lbl_1_data_1C3 = .data:0x000001C3; // type:object size:0xB data:string -lbl_1_data_1CE = .data:0x000001CE; // type:object size:0xB data:string -lbl_1_data_1D9 = .data:0x000001D9; // type:object size:0xB data:string -lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0xB data:string -lbl_1_data_1EF = .data:0x000001EF; // type:object size:0xB data:string -lbl_1_data_1FA = .data:0x000001FA; // type:object size:0xB data:string -lbl_1_data_205 = .data:0x00000205; // type:object size:0xB data:string -lbl_1_data_210 = .data:0x00000210; // type:object size:0xB data:string -lbl_1_data_21B = .data:0x0000021B; // type:object size:0xB data:string -lbl_1_data_226 = .data:0x00000226; // type:object size:0xB data:string -lbl_1_data_231 = .data:0x00000231; // type:object size:0xB data:string -lbl_1_data_23C = .data:0x0000023C; // type:object size:0xB data:string -lbl_1_data_247 = .data:0x00000247; // type:object size:0xB data:string -lbl_1_data_252 = .data:0x00000252; // type:object size:0xB data:string -lbl_1_data_25D = .data:0x0000025D; // type:object size:0xB data:string -lbl_1_data_268 = .data:0x00000268; // type:object size:0xB data:string -lbl_1_data_273 = .data:0x00000273; // type:object size:0xB data:string -lbl_1_data_27E = .data:0x0000027E; // type:object size:0xB data:string -lbl_1_data_289 = .data:0x00000289; // type:object size:0xB data:string -lbl_1_data_294 = .data:0x00000294; // type:object size:0xB data:string -lbl_1_data_29F = .data:0x0000029F; // type:object size:0xB data:string -lbl_1_data_2AA = .data:0x000002AA; // type:object size:0xB data:string -lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0xB data:string -lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0xB data:string -lbl_1_data_2CB = .data:0x000002CB; // type:object size:0xB data:string -lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0xB data:string -lbl_1_data_2E1 = .data:0x000002E1; // type:object size:0xB data:string -lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xB data:string -lbl_1_data_2F7 = .data:0x000002F7; // type:object size:0xB data:string -lbl_1_data_302 = .data:0x00000302; // type:object size:0xB data:string -lbl_1_data_30D = .data:0x0000030D; // type:object size:0xB data:string -lbl_1_data_318 = .data:0x00000318; // type:object size:0xB data:string -lbl_1_data_323 = .data:0x00000323; // type:object size:0xB data:string -lbl_1_data_32E = .data:0x0000032E; // type:object size:0xB data:string -lbl_1_data_339 = .data:0x00000339; // type:object size:0xB data:string -lbl_1_data_344 = .data:0x00000344; // type:object size:0xB data:string -lbl_1_data_34F = .data:0x0000034F; // type:object size:0xB data:string -lbl_1_data_35A = .data:0x0000035A; // type:object size:0xB data:string -lbl_1_data_365 = .data:0x00000365; // type:object size:0xB data:string -lbl_1_data_370 = .data:0x00000370; // type:object size:0xB data:string -lbl_1_data_37B = .data:0x0000037B; // type:object size:0xB data:string -lbl_1_data_386 = .data:0x00000386; // type:object size:0xB data:string -lbl_1_data_391 = .data:0x00000391; // type:object size:0xB data:string -lbl_1_data_39C = .data:0x0000039C; // type:object size:0xB data:string -lbl_1_data_3A7 = .data:0x000003A7; // type:object size:0xB data:string -lbl_1_data_3B2 = .data:0x000003B2; // type:object size:0xB data:string -lbl_1_data_3BD = .data:0x000003BD; // type:object size:0xB data:string -lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0xB data:string -lbl_1_data_3D3 = .data:0x000003D3; // type:object size:0xB data:string -lbl_1_data_3DE = .data:0x000003DE; // type:object size:0xB data:string -lbl_1_data_3E9 = .data:0x000003E9; // type:object size:0xB data:string -lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0xB data:string -lbl_1_data_3FF = .data:0x000003FF; // type:object size:0xB data:string -lbl_1_data_40A = .data:0x0000040A; // type:object size:0xB data:string -lbl_1_data_415 = .data:0x00000415; // type:object size:0xB data:string -lbl_1_data_420 = .data:0x00000420; // type:object size:0xB data:string -lbl_1_data_42B = .data:0x0000042B; // type:object size:0xB data:string -lbl_1_data_436 = .data:0x00000436; // type:object size:0xB data:string -lbl_1_data_441 = .data:0x00000441; // type:object size:0xB data:string -lbl_1_data_44C = .data:0x0000044C; // type:object size:0xB data:string +lbl_1_data_84 = .data:0x00000084; // type:object size:0xB scope:local data:string +lbl_1_data_8F = .data:0x0000008F; // type:object size:0xB scope:local data:string +lbl_1_data_9A = .data:0x0000009A; // type:object size:0xB scope:local data:string +lbl_1_data_A5 = .data:0x000000A5; // type:object size:0xB scope:local data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0xB scope:local data:string +lbl_1_data_BB = .data:0x000000BB; // type:object size:0xB scope:local data:string +lbl_1_data_C6 = .data:0x000000C6; // type:object size:0xB scope:local data:string +lbl_1_data_D1 = .data:0x000000D1; // type:object size:0xB scope:local data:string +lbl_1_data_DC = .data:0x000000DC; // type:object size:0xB scope:local data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0xB scope:local data:string +lbl_1_data_F2 = .data:0x000000F2; // type:object size:0xB scope:local data:string +lbl_1_data_FD = .data:0x000000FD; // type:object size:0xB scope:local data:string +lbl_1_data_108 = .data:0x00000108; // type:object size:0xB scope:local data:string +lbl_1_data_113 = .data:0x00000113; // type:object size:0xB scope:local data:string +lbl_1_data_11E = .data:0x0000011E; // type:object size:0xB scope:local data:string +lbl_1_data_129 = .data:0x00000129; // type:object size:0xB scope:local data:string +lbl_1_data_134 = .data:0x00000134; // type:object size:0xB scope:local data:string +lbl_1_data_13F = .data:0x0000013F; // type:object size:0xB scope:local data:string +lbl_1_data_14A = .data:0x0000014A; // type:object size:0xB scope:local data:string +lbl_1_data_155 = .data:0x00000155; // type:object size:0xB scope:local data:string +lbl_1_data_160 = .data:0x00000160; // type:object size:0xB scope:local data:string +lbl_1_data_16B = .data:0x0000016B; // type:object size:0xB scope:local data:string +lbl_1_data_176 = .data:0x00000176; // type:object size:0xB scope:local data:string +lbl_1_data_181 = .data:0x00000181; // type:object size:0xB scope:local data:string +lbl_1_data_18C = .data:0x0000018C; // type:object size:0xB scope:local data:string +lbl_1_data_197 = .data:0x00000197; // type:object size:0xB scope:local data:string +lbl_1_data_1A2 = .data:0x000001A2; // type:object size:0xB scope:local data:string +lbl_1_data_1AD = .data:0x000001AD; // type:object size:0xB scope:local data:string +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0xB scope:local data:string +lbl_1_data_1C3 = .data:0x000001C3; // type:object size:0xB scope:local data:string +lbl_1_data_1CE = .data:0x000001CE; // type:object size:0xB scope:local data:string +lbl_1_data_1D9 = .data:0x000001D9; // type:object size:0xB scope:local data:string +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0xB scope:local data:string +lbl_1_data_1EF = .data:0x000001EF; // type:object size:0xB scope:local data:string +lbl_1_data_1FA = .data:0x000001FA; // type:object size:0xB scope:local data:string +lbl_1_data_205 = .data:0x00000205; // type:object size:0xB scope:local data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0xB scope:local data:string +lbl_1_data_21B = .data:0x0000021B; // type:object size:0xB scope:local data:string +lbl_1_data_226 = .data:0x00000226; // type:object size:0xB scope:local data:string +lbl_1_data_231 = .data:0x00000231; // type:object size:0xB scope:local data:string +lbl_1_data_23C = .data:0x0000023C; // type:object size:0xB scope:local data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0xB scope:local data:string +lbl_1_data_252 = .data:0x00000252; // type:object size:0xB scope:local data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0xB scope:local data:string +lbl_1_data_268 = .data:0x00000268; // type:object size:0xB scope:local data:string +lbl_1_data_273 = .data:0x00000273; // type:object size:0xB scope:local data:string +lbl_1_data_27E = .data:0x0000027E; // type:object size:0xB scope:local data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0xB scope:local data:string +lbl_1_data_294 = .data:0x00000294; // type:object size:0xB scope:local data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0xB scope:local data:string +lbl_1_data_2AA = .data:0x000002AA; // type:object size:0xB scope:local data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0xB scope:local data:string +lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0xB scope:local data:string +lbl_1_data_2CB = .data:0x000002CB; // type:object size:0xB scope:local data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0xB scope:local data:string +lbl_1_data_2E1 = .data:0x000002E1; // type:object size:0xB scope:local data:string +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xB scope:local data:string +lbl_1_data_2F7 = .data:0x000002F7; // type:object size:0xB scope:local data:string +lbl_1_data_302 = .data:0x00000302; // type:object size:0xB scope:local data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0xB scope:local data:string +lbl_1_data_318 = .data:0x00000318; // type:object size:0xB scope:local data:string +lbl_1_data_323 = .data:0x00000323; // type:object size:0xB scope:local data:string +lbl_1_data_32E = .data:0x0000032E; // type:object size:0xB scope:local data:string +lbl_1_data_339 = .data:0x00000339; // type:object size:0xB scope:local data:string +lbl_1_data_344 = .data:0x00000344; // type:object size:0xB scope:local data:string +lbl_1_data_34F = .data:0x0000034F; // type:object size:0xB scope:local data:string +lbl_1_data_35A = .data:0x0000035A; // type:object size:0xB scope:local data:string +lbl_1_data_365 = .data:0x00000365; // type:object size:0xB scope:local data:string +lbl_1_data_370 = .data:0x00000370; // type:object size:0xB scope:local data:string +lbl_1_data_37B = .data:0x0000037B; // type:object size:0xB scope:local data:string +lbl_1_data_386 = .data:0x00000386; // type:object size:0xB scope:local data:string +lbl_1_data_391 = .data:0x00000391; // type:object size:0xB scope:local data:string +lbl_1_data_39C = .data:0x0000039C; // type:object size:0xB scope:local data:string +lbl_1_data_3A7 = .data:0x000003A7; // type:object size:0xB scope:local data:string +lbl_1_data_3B2 = .data:0x000003B2; // type:object size:0xB scope:local data:string +lbl_1_data_3BD = .data:0x000003BD; // type:object size:0xB scope:local data:string +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0xB scope:local data:string +lbl_1_data_3D3 = .data:0x000003D3; // type:object size:0xB scope:local data:string +lbl_1_data_3DE = .data:0x000003DE; // type:object size:0xB scope:local data:string +lbl_1_data_3E9 = .data:0x000003E9; // type:object size:0xB scope:local data:string +lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0xB scope:local data:string +lbl_1_data_3FF = .data:0x000003FF; // type:object size:0xB scope:local data:string +lbl_1_data_40A = .data:0x0000040A; // type:object size:0xB scope:local data:string +lbl_1_data_415 = .data:0x00000415; // type:object size:0xB scope:local data:string +lbl_1_data_420 = .data:0x00000420; // type:object size:0xB scope:local data:string +lbl_1_data_42B = .data:0x0000042B; // type:object size:0xB scope:local data:string +lbl_1_data_436 = .data:0x00000436; // type:object size:0xB scope:local data:string +lbl_1_data_441 = .data:0x00000441; // type:object size:0xB scope:local data:string +lbl_1_data_44C = .data:0x0000044C; // type:object size:0xB scope:local data:string lbl_1_data_457 = .data:0x00000457; // type:object size:0xD lbl_1_data_464 = .data:0x00000464; // type:object size:0x264 lbl_1_data_6C8 = .data:0x000006C8; // type:object size:0xC lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x78 data:float lbl_1_data_74C = .data:0x0000074C; // type:object size:0xC lbl_1_data_758 = .data:0x00000758; // type:object size:0xC -lbl_1_data_764 = .data:0x00000764; // type:object size:0xC data:string -lbl_1_data_770 = .data:0x00000770; // type:object size:0xC data:string -lbl_1_data_77C = .data:0x0000077C; // type:object size:0x7 data:string -lbl_1_data_783 = .data:0x00000783; // type:object size:0x8 data:string -lbl_1_data_78B = .data:0x0000078B; // type:object size:0x8 data:string -lbl_1_data_793 = .data:0x00000793; // type:object size:0x8 data:string -lbl_1_data_79B = .data:0x0000079B; // type:object size:0xB data:string -lbl_1_data_7A6 = .data:0x000007A6; // type:object size:0xF data:string +lbl_1_data_764 = .data:0x00000764; // type:object size:0xC scope:local data:string +lbl_1_data_770 = .data:0x00000770; // type:object size:0xC scope:local data:string +lbl_1_data_77C = .data:0x0000077C; // type:object size:0x7 scope:local data:string +lbl_1_data_783 = .data:0x00000783; // type:object size:0x8 scope:local data:string +lbl_1_data_78B = .data:0x0000078B; // type:object size:0x8 scope:local data:string +lbl_1_data_793 = .data:0x00000793; // type:object size:0x8 scope:local data:string +lbl_1_data_79B = .data:0x0000079B; // type:object size:0xB scope:local data:string +lbl_1_data_7A6 = .data:0x000007A6; // type:object size:0xF scope:local data:string lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x340 data:4byte lbl_1_bss_348 = .bss:0x00000348; // type:object size:0x810 data:float diff --git a/configure.py b/configure.py index a5be4728..44b5348f 100644 --- a/configure.py +++ b/configure.py @@ -1142,8 +1142,8 @@ config.libs = [ Rel( "m440Dll", # Bowser's Bigger Blast objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m440Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m440Dll/object.c"), + Object(Matching, "REL/m440Dll/main.c"), + Object(Matching, "REL/m440Dll/object.c"), }, ), Rel( diff --git a/include/REL/m440Dll.h b/include/REL/m440Dll.h index 071bc6a5..d4d806b2 100644 --- a/include/REL/m440Dll.h +++ b/include/REL/m440Dll.h @@ -240,6 +240,11 @@ typedef struct _unkObjStruct { f32 unk70; } unkObjStruct; +#if VERSION_NTSC +#define REFRESH_RATE_F 60.0f +#else +#define REFRESH_RATE_F 49.998f +#endif ////// BSS ////// extern omObjData* lbl_1_bss_C0[4]; diff --git a/src/REL/m440Dll/main.c b/src/REL/m440Dll/main.c index e200145c..1ec95168 100644 --- a/src/REL/m440Dll/main.c +++ b/src/REL/m440Dll/main.c @@ -14,6 +14,7 @@ #include "math.h" #include "string.h" +#include "version.h" // bss omObjData *lbl_1_bss_6C; @@ -117,7 +118,7 @@ s32 fn_1_4A4(void) var_r31 = &lbl_1_data_78[0]; var_r30 = 0; lbl_1_bss_4++; - var_f31 = lbl_1_bss_4 / 120.0f; + var_f31 = lbl_1_bss_4 / (2 * REFRESH_RATE_F); if (var_f31 > 1.0f) { lbl_1_bss_4 = 0; var_f31 = 1.0f; @@ -144,7 +145,7 @@ s32 fn_1_6C8(void) var_r31 = &lbl_1_data_78[1]; var_r30 = 0; lbl_1_bss_4++; - var_f31 = lbl_1_bss_4 / 120.0f; + var_f31 = lbl_1_bss_4 / (2 * REFRESH_RATE_F); if (var_f31 > 1.0f) { lbl_1_bss_4 = 0; var_f31 = 1.0f; @@ -173,7 +174,7 @@ void fn_1_8F0(omObjData *arg0) temp_r31->unk0 = 1; temp_r31->unk4 = -1; temp_r31->unk8 = -1; - temp_r31->unk6 = 0x12C; + temp_r31->unk6 = 5 * REFRESH_RATE; temp_r31->unkA = 0; temp_r31->unkC = -1; @@ -215,7 +216,7 @@ void fn_1_AE0(omObjData *arg0) break; case 3: if (temp_r31->unk8 != -1) { - MGSeqParamSet(temp_r31->unk8, 1, ((temp_r31->unk6 + 0x3B) / 60)); + MGSeqParamSet(temp_r31->unk8, 1, ((temp_r31->unk6 + REFRESH_RATE - 1) / REFRESH_RATE)); } if ((temp_r31->unkC < 0) && ((MGSeqStatGet(temp_r31->unk4) & 0x10) != 0)) { temp_r31->unkC = HuAudSeqPlay(0x49); @@ -226,7 +227,7 @@ void fn_1_AE0(omObjData *arg0) temp_f31 = (((rand8() << 8) | rand8()) % 361); Center.x = (lbl_1_data_78[1].center.x + (10.0 * sind(temp_f31))); Center.y = (lbl_1_data_78[1].center.y + (10.0 * cosd(temp_f31))); - if (temp_r31->unkA > 0x28) { + if (temp_r31->unkA > (2 * REFRESH_RATE / 3)) { temp_r31->unkA = 0; return; } @@ -265,7 +266,7 @@ u8 fn_1_E14(omObjData *arg0) lbl_1_bss_6++; break; case 1: - if (++lbl_1_bss_8 > 0x1E) { + if (++lbl_1_bss_8 > (s16)(0.5f * REFRESH_RATE_F)) { fn_1_F168(); lbl_1_bss_8 = 0; lbl_1_bss_6++; @@ -275,7 +276,7 @@ u8 fn_1_E14(omObjData *arg0) var_r31 = lbl_1_data_78; var_r30 = 0; lbl_1_bss_4++; - var_f31 = lbl_1_bss_4 / 120.0f; + var_f31 = lbl_1_bss_4 / (2 * REFRESH_RATE_F); if (var_f31 > 1.0f) { lbl_1_bss_4 = 0; var_f31 = 1.0f; @@ -319,7 +320,7 @@ u8 fn_1_1138(omObjData *object) temp_r30->unk40 = temp_r30->unk34; } lbl_1_bss_8++; - var_f30 = lbl_1_bss_8 / 30.0f; + var_f30 = lbl_1_bss_8 / (0.5f * REFRESH_RATE_F); if (var_f30 >= 1.0f) { var_f30 = 1.0f; if (lbl_1_bss_B == 0) { @@ -331,7 +332,7 @@ u8 fn_1_1138(omObjData *object) var_r31 = &lbl_1_data_78[1]; // could be fn_1_6C8 var_r28 = 0; lbl_1_bss_4++; - var_f31 = lbl_1_bss_4 / 120.0f; + var_f31 = lbl_1_bss_4 / (2 * REFRESH_RATE_F); if (var_f31 > 1.0f) { lbl_1_bss_4 = 0; var_f31 = 1.0f; @@ -357,7 +358,7 @@ u8 fn_1_1138(omObjData *object) lbl_1_bss_8 = 0; break; case 2: - if (++lbl_1_bss_8 > 210.0f) { + if (++lbl_1_bss_8 > (3.5f * REFRESH_RATE)) { lbl_1_bss_6 = 0; return 1; } @@ -392,7 +393,7 @@ void fn_1_1768(void) temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data; if (temp_r31->unk8 == -1) { - temp_r31->unk6 = 0x12C; + temp_r31->unk6 = 5 * REFRESH_RATE; temp_r31->unk8 = MGSeqCreate(1, 5, -1, -1); } } @@ -695,7 +696,7 @@ void fn_1_2B04(omObjData *object) switch (lbl_1_data_E4[0]) { case 0: lbl_1_data_E8[0]++; - temp_f31 = lbl_1_data_E8[0] / 360.0f; + temp_f31 = lbl_1_data_E8[0] / (6 * REFRESH_RATE_F); if (temp_f31 > 1.0f) { temp_f31 = 1.0f; Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); @@ -752,15 +753,15 @@ void fn_1_2D28(omObjData *object) break; case 0x1: lbl_1_data_F0[0]++; - var_f31 = lbl_1_data_F0[0] / 120.0f; + var_f31 = lbl_1_data_F0[0] / (2 * REFRESH_RATE_F); if (var_f31 > 1.0f) { var_f31 = 1.0f; lbl_1_data_F0[0] = 0; - lbl_1_data_F0[1] = 0xF; + lbl_1_data_F0[1] = REFRESH_RATE / 4; lbl_1_data_EC[1] = (lbl_1_data_EC[0] + 1); lbl_1_data_EC[0] = 0x63; } - if (110.0f == lbl_1_data_F0[0]) { + if ((11 * REFRESH_RATE_F / 6) == lbl_1_data_F0[0]) { HuAudFXPlay(0x70A); } var_f31 = sin((M_PI * (90.0f * var_f31)) / 180.0); @@ -771,11 +772,11 @@ void fn_1_2D28(omObjData *object) HuAudFXPlay(0x713); } lbl_1_data_F0[0]++; - var_f31 = lbl_1_data_F0[0] / 60.0f; + var_f31 = lbl_1_data_F0[0] / REFRESH_RATE_F; if (var_f31 > 1.0f) { var_f31 = 1.0f; lbl_1_data_F0[0] = 0; - lbl_1_data_F0[1] = 0xF; + lbl_1_data_F0[1] = REFRESH_RATE / 4; lbl_1_data_EC[1] = lbl_1_data_EC[0] + 1; lbl_1_data_EC[0] = 0x63; HuAudFXPlay(0x714); @@ -788,7 +789,7 @@ void fn_1_2D28(omObjData *object) if (lbl_1_data_F0[0] == 0) { HuAudFXPlay(0x711); } - if (++lbl_1_data_F0[0] > 12.0) { + if (++lbl_1_data_F0[0] > (0.2 * REFRESH_RATE)) { if (fn_1_4EA8(0x40) != 0) { fn_1_4EEC(0x40, 0); fn_1_F228(); @@ -801,7 +802,7 @@ void fn_1_2D28(omObjData *object) break; case 0x4: lbl_1_data_F0[0]++; - var_f31 = lbl_1_data_F0[0] / 360.0f; + var_f31 = lbl_1_data_F0[0] / (6 * REFRESH_RATE_F); if (var_f31 > 1.0f) { var_f31 = 1.0f; Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); @@ -1021,7 +1022,7 @@ void fn_1_46E0(omObjData *object) break; case 0x1: lbl_1_data_108[0]++; - var_f31 = lbl_1_data_108[0] / 60.0f; + var_f31 = lbl_1_data_108[0] / REFRESH_RATE_F; if (var_f31 > 1.0f) { var_f31 = 1.0f; lbl_1_data_108[0] = 0; @@ -1083,7 +1084,7 @@ void fn_1_4B44(omObjData *object) switch (lbl_1_data_104[0]) { case 0: lbl_1_data_108[0]++; - var_f31 = lbl_1_data_108[0] / 60.0f; + var_f31 = lbl_1_data_108[0] / REFRESH_RATE_F; if (var_f31 > 1.0f) { var_f31 = 1.0f; lbl_1_data_108[0] = 0; @@ -1094,7 +1095,7 @@ void fn_1_4B44(omObjData *object) break; case 1: lbl_1_data_108[0]++; - var_f31 = (lbl_1_data_108[0] / 30.0f); + var_f31 = (lbl_1_data_108[0] / (0.5f * REFRESH_RATE_F)); if (var_f31 >= 1.0f) { lbl_1_data_108[0] = 0; lbl_1_data_104[0] = 0; @@ -1301,7 +1302,7 @@ void fn_1_57B4(unkStruct6 *arg0) } } if ((arg0->unk2 & 4) != 0) { - if (++arg0->unk3E > 0x50) { + if (++arg0->unk3E > (4 * REFRESH_RATE / 3)) { arg0->unk3C = ((arg0->unk3C - 10) < 0) ? 0 : arg0->unk3C - 10; } } diff --git a/src/REL/m440Dll/object.c b/src/REL/m440Dll/object.c index 5e94301f..941f1463 100644 --- a/src/REL/m440Dll/object.c +++ b/src/REL/m440Dll/object.c @@ -8,6 +8,12 @@ #include "game/pad.h" #include "math.h" #include "string.h" +#include "version.h" + + +#ifdef __MWERKS__ +#include "game/audio.h" +#endif // bss @@ -78,7 +84,7 @@ void fn_1_AEE4(omObjData *arg0) temp_r31->unk30.x = temp_r31->unk30.y = temp_r31->unk30.z = 0.0f; temp_r31->unk3C.y = 90.0f; temp_r31->unkC = 0; - temp_r31->unkE = 0x78; + temp_r31->unkE = 2 * REFRESH_RATE_F; temp_r31->unk10 = temp_r31->unk12 = temp_r31->unk14 = 0; if (temp_r31->unk8 == 5) { var_f31 = 350.0f; @@ -173,7 +179,7 @@ void fn_1_B3A4(omObjData *arg0) var_r31->unk18.y = 0.0f; var_r31->unk18.z = var_r31->unk24.z + (lbl_1_bss_88[var_r28].z - var_r31->unk24.z) * var_f31; var_r31->unk14++; - var_f31 = var_r31->unk14 / 20.0f; + var_f31 = var_r31->unk14 / (REFRESH_RATE_F / 3.0f); if (var_f31 >= 1.0f) { var_f31 = 1.0f; } @@ -181,7 +187,7 @@ void fn_1_B3A4(omObjData *arg0) break; case 7: var_r31->unkC++; - var_f31 = (f32)var_r31->unkC / 40.0f; + var_f31 = (f32)var_r31->unkC / (2.0f * REFRESH_RATE_F / 3); if (var_f31 >= 1.0f) { var_f31 = 1.0f; var_r31->unkC = 0; @@ -239,7 +245,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1) switch (lbl_1_bss_74) { case 0: - lbl_1_data_250 -= 0.5f; + lbl_1_data_250 -= (REFRESH_RATE_F / 120); if (lbl_1_data_250 <= 45.0f) { lbl_1_data_250 = 45.0f; lbl_1_bss_74++; @@ -258,14 +264,14 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1) return; case 1: arg1->unkE++; - var_f31 = arg1->unkE / 10.0f; + var_f31 = arg1->unkE / (REFRESH_RATE_F / 6.0f); if (var_f31 >= 1.0f) { var_f31 = 1.0f; } var_f30 = 225.0f; arg1->unk30.y = arg1->unk68 + (var_f31 * (var_f30 - arg1->unk68)); arg1->unkC++; - var_f31 = arg1->unkC / 50.0f; + var_f31 = arg1->unkC / (5.0f * REFRESH_RATE_F / 6.0f); if (var_f31 >= 1.0f) { var_f31 = 1.0f; arg1->unkC = arg1->unkE = 0; @@ -294,7 +300,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1) } break; case 2: - lbl_1_data_250++; + lbl_1_data_250 += REFRESH_RATE_F / 60.0f; if (lbl_1_data_250 >= lbl_1_data_0[arg1->unk60]) { lbl_1_data_250 = lbl_1_data_0[arg1->unk60]; lbl_1_bss_74++; @@ -309,7 +315,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1) var_f30 += 360.0f; } arg1->unkC++; - var_f31 = arg1->unkC / 10.0f; + var_f31 = arg1->unkC / (REFRESH_RATE_F / 6.0f); if (var_f31 < 1.0f) { arg1->unk30.y = arg1->unk68 + (var_f31 * (var_f30 - arg1->unk68)); } @@ -320,7 +326,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1) return; case 3: arg1->unkE++; - var_f31 = arg1->unkE / 10.0f; + var_f31 = arg1->unkE / (REFRESH_RATE_F / 6.0f); if (var_f31 >= 1.0f) { var_f31 = 1.0f; arg1->unkC = arg1->unkE = 0; @@ -332,7 +338,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1) arg1->unk30.y = fn_1_927C(arg1->unk6C, var_f30, var_f31); return; case 4: - if (++arg1->unkC > 15) { + if (++arg1->unkC > (REFRESH_RATE / 4)) { lbl_1_bss_74++; } break; @@ -443,7 +449,7 @@ void fn_1_C1D4(omObjData *arg0, unkObjStruct *arg1) if (var_f30 < 5.0f) { if (arg1->unk5A != 0) { arg1->unk56++; - var_f31 = arg1->unk56 / 40.0f; + var_f31 = arg1->unk56 / (2.0f * REFRESH_RATE_F / 3.0f); if (var_f31 > 1.0f) { var_f31 = 1.0f; arg1->unk5A = 0; @@ -523,7 +529,7 @@ void fn_1_C944(omObjData *arg0, unkObjStruct *arg1) } } if ((arg1->unk48 & 1) != 0) { - arg1->unk68 -= 1.0f; + arg1->unk68 -= REFRESH_RATE_F / 60.0f; if ((var_r30 != -1) && (lbl_1_data_0[var_r30] > arg1->unk68)) { arg1->unk68 = lbl_1_data_0[var_r30]; arg1->unk4A = var_r30; @@ -531,7 +537,7 @@ void fn_1_C944(omObjData *arg0, unkObjStruct *arg1) } } else if ((arg1->unk48 & 2) != 0) { - arg1->unk68++; + arg1->unk68 += REFRESH_RATE_F / 60.0f; if ((var_r30 != -1) && (lbl_1_data_0[var_r30] < arg1->unk68)) { arg1->unk68 = lbl_1_data_0[var_r30]; arg1->unk4A = var_r30; @@ -659,7 +665,7 @@ void fn_1_D24C(unkObjStruct *arg0, f32 arg1, f32 arg2) f32 var_f30; f32 var_f31; - var_f28 = 10.0f; + var_f28 = REFRESH_RATE_F / 6.0f; arg0->unk6C = arg1; arg0->unk70 = arg2; var_f31 = ABS(arg1 - arg2); @@ -702,7 +708,7 @@ void fn_1_D34C(omObjData *arg0, unkObjStruct *arg1) arg1->unk6C = 0.0f; arg1->unk48 = 0; lbl_1_data_14[arg1->unk4A] = 0; - if (fn_1_17CC() < 270.0f) { + if (fn_1_17CC() < (4.5f * REFRESH_RATE)) { fn_1_1708(); } fn_1_F4D4(arg1, 15, 4); @@ -793,7 +799,7 @@ void fn_1_D7F8(omObjData *arg0, unkObjStruct *arg1) } break; case 1: - if (++arg1->unkC > 0xA) { + if (++arg1->unkC > (REFRESH_RATE / 6)) { arg1->unkC = 0; Hu3DMotionSpeedSet(arg0->model[0], 2.0f); if ((arg1->unk6C - arg1->unk68) > 0.0f) { @@ -808,7 +814,7 @@ void fn_1_D7F8(omObjData *arg0, unkObjStruct *arg1) break; case 2: arg1->unkC++; - var_f31 = arg1->unkC / 30.0f; + var_f31 = arg1->unkC / (0.5f * REFRESH_RATE_F); arg1->unk18.x = ((410.0f + (var_f31 * (arg1->unk5C - 410.0f))) * cosd(lbl_1_data_0[arg1->unk4A])); arg1->unk18.z = ((410.0f + (var_f31 * (arg1->unk5C - 410.0f))) * sind(lbl_1_data_0[arg1->unk4A])); if (var_f31 >= 1.0f) { @@ -825,7 +831,7 @@ void fn_1_D7F8(omObjData *arg0, unkObjStruct *arg1) arg1->unk30.y = fn_1_927C(arg1->unk68, arg1->unk6C, var_f31); break; case 3: - if (++arg1->unkC > 0x3C) { + if (++arg1->unkC > (s32)REFRESH_RATE_F) { if (fn_1_4E54(arg1->unk4A) == 0) { fn_1_4EEC(7U, 3U); } @@ -852,7 +858,7 @@ void fn_1_D7F8(omObjData *arg0, unkObjStruct *arg1) break; } if (fn_1_17F4() >= 0) { - if (fn_1_17CC() < 270.0f) { + if (fn_1_17CC() < (4.5f * REFRESH_RATE)) { fn_1_1708(); return; } @@ -874,7 +880,11 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1) switch (arg1->unk60) { case 0: lbl_1_bss_84 = lbl_1_data_0[arg1->unk4A]; +#if VERSION_NTSC Hu3DMotionShiftSet(arg0->model[0], arg0->motion[4], 0.0f, 7.0f, HU3D_MOTATTR_LOOP); +#else + Hu3DMotionSet(arg0->model[0], arg0->motion[4]); +#endif HuAudCharVoicePlay(arg1->unk8, 0x125); arg1->unk60++; break; @@ -898,7 +908,7 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1) } break; case 2: - lbl_1_bss_84++; + lbl_1_bss_84 += REFRESH_RATE_F / 60.0f; if (lbl_1_bss_84 >= 135.0f) { lbl_1_bss_84 = 135.0f; arg1->unkE = arg1->unk10 = 0; @@ -915,7 +925,7 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1) var_f30 += 360.0f; } arg1->unkC++; - var_f31 = arg1->unkC / 10.0f; + var_f31 = arg1->unkC / (REFRESH_RATE_F / 6.0f); if (var_f31 >= 1.0f) { var_f31 = 1.0f; } @@ -924,14 +934,14 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1) break; case 3: arg1->unkE++; - var_f31 = arg1->unkE / 10.0f; + var_f31 = arg1->unkE / (REFRESH_RATE_F / 6.0f); if (var_f31 >= 1.0f) { var_f31 = 1.0f; } var_f30 = 315.0f; arg1->unk30.y = arg1->unk6C + (var_f31 * (var_f30 - arg1->unk6C)); arg1->unk10++; - var_f31 = arg1->unk10 / 50.0f; + var_f31 = arg1->unk10 / (5.0f * REFRESH_RATE_F / 6.0f); if (var_f31 >= 1.0f) { var_f31 = 1.0f; arg1->unkC = arg1->unkE = arg1->unk10 = 0; @@ -953,12 +963,12 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1) } break; case 4: - lbl_1_bss_84 -= 0.5f; + lbl_1_bss_84 -= REFRESH_RATE_F / 120; if (lbl_1_bss_84 <= 110.0f) { lbl_1_bss_84 = 110.0f; arg1->unk60 = 0; arg1->unkC = 0; - arg1->unkE = (3 - lbl_1_data_1D8) * 0x1E; + arg1->unkE = (3 - lbl_1_data_1D8) * (s32)(0.5f * REFRESH_RATE_F); arg1->unk14 = 0; arg1->unk3C.y = 90.0f; fn_1_F4D4(arg1, 15, 1); @@ -973,7 +983,7 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1) var_f30 += 360.0f; } arg1->unk10++; - var_f31 = arg1->unk10 / 10.0f; + var_f31 = arg1->unk10 / (REFRESH_RATE_F / 6.0f); if (var_f31 >= 1.0f) { var_f31 = 1.0f; } @@ -1025,7 +1035,7 @@ u8 fn_1_E8AC(omObjData *arg0, unkObjStruct *arg1) case 2: arg1->unkC++; arg1->unk68 += 40.0f; - var_f31 = arg1->unkC / 90.0f; + var_f31 = arg1->unkC / (1.5f * REFRESH_RATE_F); if (var_f31 >= 1.0f) { var_f31 = 1.0f; arg1->unk60++; @@ -1165,7 +1175,7 @@ void fn_1_F228(void) temp_r31->unkA--; temp_r31->unk24 = temp_r31->unk18; temp_r31->unkC = 0; - temp_r31->unkE = 0x1E; + temp_r31->unkE = (s32)(0.5f * REFRESH_RATE_F); temp_r31->unk14 = 0; fn_1_F4D4(temp_r31, 15, 1); } From 9693b314e0e7d44226f6d854735b93e8f25ef93a Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 18 Nov 2024 01:09:56 +0100 Subject: [PATCH 153/311] Ported m441Dll --- config/GMPP01_00/rels/m441Dll/splits.txt | 6 + config/GMPP01_00/rels/m441Dll/symbols.txt | 315 +++++++++++----------- configure.py | 2 +- src/REL/m441Dll/main.c | 24 +- 4 files changed, 177 insertions(+), 170 deletions(-) diff --git a/config/GMPP01_00/rels/m441Dll/splits.txt b/config/GMPP01_00/rels/m441Dll/splits.txt index 531cd645..b67999c6 100644 --- a/config/GMPP01_00/rels/m441Dll/splits.txt +++ b/config/GMPP01_00/rels/m441Dll/splits.txt @@ -5,3 +5,9 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/m441Dll/main.c: + .text start:0x00000000 end:0x0000AABC + .rodata start:0x00000000 end:0x000001EC + .data start:0x00000000 end:0x000005CC + .bss start:0x00000000 end:0x00000204 diff --git a/config/GMPP01_00/rels/m441Dll/symbols.txt b/config/GMPP01_00/rels/m441Dll/symbols.txt index d2b885ed..ccaec68e 100644 --- a/config/GMPP01_00/rels/m441Dll/symbols.txt +++ b/config/GMPP01_00/rels/m441Dll/symbols.txt @@ -7,185 +7,185 @@ fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C fn_1_414 = .text:0x00000414; // type:function size:0x58 fn_1_46C = .text:0x0000046C; // type:function size:0x114 fn_1_580 = .text:0x00000580; // type:function size:0x204 -fn_1_784 = .text:0x00000784; // type:function size:0x240 -fn_1_9C4 = .text:0x000009C4; // type:function size:0x54 -fn_1_A18 = .text:0x00000A18; // type:function size:0x10C -fn_1_B24 = .text:0x00000B24; // type:function size:0x680 -fn_1_11A4 = .text:0x000011A4; // type:function size:0x15C -fn_1_1300 = .text:0x00001300; // type:function size:0x8C -fn_1_138C = .text:0x0000138C; // type:function size:0x334 -fn_1_16C0 = .text:0x000016C0; // type:function size:0x350 -fn_1_1A10 = .text:0x00001A10; // type:function size:0x2B8 -fn_1_1CC8 = .text:0x00001CC8; // type:function size:0x58 -fn_1_1D20 = .text:0x00001D20; // type:function size:0xB0 -fn_1_1DD0 = .text:0x00001DD0; // type:function size:0x104 -fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x34 -fn_1_1F08 = .text:0x00001F08; // type:function size:0x6C -fn_1_1F74 = .text:0x00001F74; // type:function size:0x3F0 +fn_1_798 = .text:0x00000784; // type:function size:0x240 +fn_1_9EC = .text:0x000009C4; // type:function size:0x54 +fn_1_A40 = .text:0x00000A18; // type:function size:0x10C +fn_1_B4C = .text:0x00000B24; // type:function size:0x680 +fn_1_11F4 = .text:0x000011A4; // type:function size:0x15C +fn_1_1350 = .text:0x00001300; // type:function size:0x8C +fn_1_13DC = .text:0x0000138C; // type:function size:0x334 +fn_1_1710 = .text:0x000016C0; // type:function size:0x350 +fn_1_1A60 = .text:0x00001A10; // type:function size:0x2B8 +fn_1_1D18 = .text:0x00001CC8; // type:function size:0x58 +fn_1_1D70 = .text:0x00001D20; // type:function size:0xB0 +fn_1_1E20 = .text:0x00001DD0; // type:function size:0x104 +fn_1_1F24 = .text:0x00001ED4; // type:function size:0x34 +fn_1_1F58 = .text:0x00001F08; // type:function size:0x6C +fn_1_1FC4 = .text:0x00001F74; // type:function size:0x3F0 _prolog = .text:0x00002364; // type:function size:0x54 scope:global _epilog = .text:0x000023B8; // type:function size:0x4C scope:global -fn_1_2404 = .text:0x00002404; // type:function size:0x2E8 -fn_1_26EC = .text:0x000026EC; // type:function size:0x1C8 -fn_1_28B4 = .text:0x000028B4; // type:function size:0x2D0 -fn_1_2B84 = .text:0x00002B84; // type:function size:0x830 -fn_1_33B4 = .text:0x000033B4; // type:function size:0x700 -fn_1_3AB4 = .text:0x00003AB4; // type:function size:0xFC -fn_1_3BB0 = .text:0x00003BB0; // type:function size:0x4A8 -fn_1_4058 = .text:0x00004058; // type:function size:0x1340 -fn_1_5398 = .text:0x00005398; // type:function size:0x744 -fn_1_5ADC = .text:0x00005ADC; // type:function size:0xD8 -fn_1_5BB4 = .text:0x00005BB4; // type:function size:0x1538 -fn_1_70EC = .text:0x000070EC; // type:function size:0x3B8 -fn_1_74A4 = .text:0x000074A4; // type:function size:0x464 -fn_1_7908 = .text:0x00007908; // type:function size:0xD4 -fn_1_79DC = .text:0x000079DC; // type:function size:0x610 -fn_1_7FEC = .text:0x00007FEC; // type:function size:0x4DC -fn_1_84C8 = .text:0x000084C8; // type:function size:0x414 -fn_1_88DC = .text:0x000088DC; // type:function size:0x174 -fn_1_8A50 = .text:0x00008A50; // type:function size:0x2B8 -fn_1_8D08 = .text:0x00008D08; // type:function size:0x11D8 -fn_1_9EE0 = .text:0x00009EE0; // type:function size:0x570 -fn_1_A450 = .text:0x0000A450; // type:function size:0x59C -fn_1_A9EC = .text:0x0000A9EC; // type:function size:0xD0 +fn_1_2454 = .text:0x00002404; // type:function size:0x2E8 +fn_1_273C = .text:0x000026EC; // type:function size:0x1C8 +fn_1_2904 = .text:0x000028B4; // type:function size:0x2D0 +fn_1_2BD4 = .text:0x00002B84; // type:function size:0x830 +fn_1_3404 = .text:0x000033B4; // type:function size:0x700 +fn_1_3B04 = .text:0x00003AB4; // type:function size:0xFC +fn_1_3C00 = .text:0x00003BB0; // type:function size:0x4A8 +fn_1_40A8 = .text:0x00004058; // type:function size:0x1340 +fn_1_53E8 = .text:0x00005398; // type:function size:0x744 +fn_1_5B2C = .text:0x00005ADC; // type:function size:0xD8 +fn_1_5C04 = .text:0x00005BB4; // type:function size:0x1538 +fn_1_713C = .text:0x000070EC; // type:function size:0x3B8 +fn_1_74F4 = .text:0x000074A4; // type:function size:0x464 +fn_1_7958 = .text:0x00007908; // type:function size:0xD4 +fn_1_7A2C = .text:0x000079DC; // type:function size:0x610 +fn_1_803C = .text:0x00007FEC; // type:function size:0x4DC +fn_1_8518 = .text:0x000084C8; // type:function size:0x414 +fn_1_892C = .text:0x000088DC; // type:function size:0x174 +fn_1_8AA0 = .text:0x00008A50; // type:function size:0x2B8 +fn_1_8D58 = .text:0x00008D08; // type:function size:0x11D8 +fn_1_9F40 = .text:0x00009EE0; // type:function size:0x570 +ObjectSetup = .text:0x0000A450; // type:function size:0x59C +fn_1_AA4C = .text:0x0000A9EC; // type:function size:0xD0 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 lbl_1_data_10 = .data:0x00000010; // type:object size:0xC data:4byte lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:4byte -lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:4byte -lbl_1_data_40 = .data:0x00000040; // type:object size:0xC -lbl_1_data_4C = .data:0x0000004C; // type:object size:0xC data:4byte -lbl_1_data_58 = .data:0x00000058; // type:object size:0xC data:4byte -lbl_1_data_64 = .data:0x00000064; // type:object size:0xC -lbl_1_data_70 = .data:0x00000070; // type:object size:0xC data:4byte -lbl_1_data_7C = .data:0x0000007C; // type:object size:0xC -lbl_1_data_88 = .data:0x00000088; // type:object size:0xC +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0xC data:float +lbl_1_data_58 = .data:0x00000058; // type:object size:0xC data:float +lbl_1_data_64 = .data:0x00000064; // type:object size:0xC data:float +lbl_1_data_70 = .data:0x00000070; // type:object size:0xC data:float +lbl_1_data_7C = .data:0x0000007C; // type:object size:0xC data:float +lbl_1_data_88 = .data:0x00000088; // type:object size:0xC data:float lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 -lbl_1_data_98 = .data:0x00000098; // type:object size:0xC -lbl_1_data_A4 = .data:0x000000A4; // type:object size:0xC +lbl_1_data_98 = .data:0x00000098; // type:object size:0xC data:float +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0xC data:float lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x200 lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x8 lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0xC lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x10 -lbl_1_data_2D4 = .data:0x000002D4; // type:object size:0x40 +lbl_1_data_2D4 = .data:0x000002D4; // type:object size:0x40 data:float lbl_1_data_314 = .data:0x00000314; // type:object size:0xC lbl_1_data_320 = .data:0x00000320; // type:object size:0x6 lbl_1_data_326 = .data:0x00000326; // type:object size:0x6 -lbl_1_data_32C = .data:0x0000032C; // type:object size:0x24 -lbl_1_data_350 = .data:0x00000350; // type:object size:0x18 +lbl_1_data_32C = .data:0x0000032C; // type:object size:0x24 data:float +lbl_1_data_350 = .data:0x00000350; // type:object size:0x18 data:float lbl_1_data_368 = .data:0x00000368; // type:object size:0x4 -lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC -lbl_1_data_378 = .data:0x00000378; // type:object size:0xC -lbl_1_data_384 = .data:0x00000384; // type:object size:0xC -lbl_1_data_390 = .data:0x00000390; // type:object size:0xC +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC data:float +lbl_1_data_378 = .data:0x00000378; // type:object size:0xC data:float +lbl_1_data_384 = .data:0x00000384; // type:object size:0xC data:float +lbl_1_data_390 = .data:0x00000390; // type:object size:0xC data:float lbl_1_data_39C = .data:0x0000039C; // type:object size:0x50 lbl_1_data_3EC = .data:0x000003EC; // type:object size:0x50 lbl_1_data_43C = .data:0x0000043C; // type:object size:0x50 lbl_1_data_48C = .data:0x0000048C; // type:object size:0x50 -lbl_1_data_4DC = .data:0x000004DC; // type:object size:0x18 data:string -lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0x9 data:string -lbl_1_data_4FD = .data:0x000004FD; // type:object size:0x6 data:string -lbl_1_data_503 = .data:0x00000503; // type:object size:0x1D data:string +lbl_1_data_4DC = .data:0x000004DC; // type:object size:0x18 scope:local data:string +lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0x9 scope:local data:string +lbl_1_data_4FD = .data:0x000004FD; // type:object size:0x6 scope:local data:string +lbl_1_data_503 = .data:0x00000503; // type:object size:0x1D scope:local data:string jumptable_1_data_520 = .data:0x00000520; // type:object size:0x40 scope:local -lbl_1_data_560 = .data:0x00000560; // type:object size:0x8 data:string -lbl_1_data_568 = .data:0x00000568; // type:object size:0x1C +lbl_1_data_560 = .data:0x00000560; // type:object size:0x8 scope:local data:string +lbl_1_data_568 = .data:0x00000568; // type:object size:0x1B scope:local data:string jumptable_1_data_584 = .data:0x00000584; // type:object size:0x24 scope:local -lbl_1_data_5A8 = .data:0x000005A8; // type:object size:0x24 data:string +lbl_1_data_5A8 = .data:0x000005A8; // type:object size:0x24 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float @@ -200,7 +200,8 @@ lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 44b5348f..3c629e35 100644 --- a/configure.py +++ b/configure.py @@ -1149,7 +1149,7 @@ config.libs = [ Rel( "m441Dll", # Butterfly Blitz objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m441Dll/main.c"), + Object(Matching, "REL/m441Dll/main.c"), }, ), Rel( diff --git a/src/REL/m441Dll/main.c b/src/REL/m441Dll/main.c index 38896429..e6143406 100644 --- a/src/REL/m441Dll/main.c +++ b/src/REL/m441Dll/main.c @@ -872,7 +872,7 @@ void fn_1_3404(Work53E8 *arg0) } arg0->unk94 = 1; arg0->unk8C = arg0->unk0[1] + ((frandf() * arg0->unk0[1]) / 2); - temp_f25 = 1.0f - (lbl_1_bss_1A4 / 3600.0f); + temp_f25 = 1.0f - (lbl_1_bss_1A4 / (60.0f * REFRESH_RATE)); if (0.25f < temp_f25) { arg0->unk8C *= arg0->unk90 / (arg0->unk0[2] * temp_f25); } @@ -1491,7 +1491,7 @@ void fn_1_5C04(omObjData *object) if (2.0f > temp_f23) { temp_r31->unk24.x--; if (0.0f > temp_r31->unk24.x) { - temp_r31->unk24.x = 60.0f; + temp_r31->unk24.x = 1.0f * REFRESH_RATE; if (frandmod(100) > 50) { temp_r31->unk24.y = (frandf() * 220.0f) + 80.0f; } @@ -1619,7 +1619,7 @@ void fn_1_74F4(s32 arg0) work->unk18.z = 0; work->unk38 = 0; work->unk18.y = 2; - work->unk24.x = (frandf() * 180.0f) + 180.0f; + work->unk24.x = (frandf() * (3.0f * REFRESH_RATE)) + (3.0f * REFRESH_RATE); if (arg0) { work->unk18.y = 3; work->unk18.x = 180.0f - (frandf() * 120.0f); @@ -1821,7 +1821,7 @@ void fn_1_8D58(omObjData *object) WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); object->func = fn_1_AA4C; } - lbl_1_bss_24 += (1.0f / 60.0f); + lbl_1_bss_24 += (1.0f / REFRESH_RATE); if (360.0f <= lbl_1_bss_24) { lbl_1_bss_24 -= 360.0f; } @@ -1850,8 +1850,8 @@ void fn_1_8D58(omObjData *object) case 1002: lbl_1_bss_28++; - fn_1_13DC(lbl_1_bss_28 / 180.0f, &lbl_1_data_40); - if (180.0f <= lbl_1_bss_28) { + fn_1_13DC(lbl_1_bss_28 / (3.0f * REFRESH_RATE), &lbl_1_data_40); + if ((3.0f * REFRESH_RATE) <= lbl_1_bss_28) { object->work[0]++; fn_1_1350(&lbl_1_data_34, &lbl_1_data_40, &lbl_1_data_4C); } @@ -1869,8 +1869,8 @@ void fn_1_8D58(omObjData *object) } if (!MGSeqStatGet(lbl_1_bss_19E)) { object->work[0]++; - lbl_1_bss_1A4 = 3600; - lbl_1_bss_19C = MGSeqTimerCreate(lbl_1_bss_1A4 / 60); + lbl_1_bss_1A4 = 60 * REFRESH_RATE; + lbl_1_bss_19C = MGSeqTimerCreate(lbl_1_bss_1A4 / REFRESH_RATE); lbl_1_bss_19E = -1; } } @@ -1881,7 +1881,7 @@ void fn_1_8D58(omObjData *object) lbl_1_bss_1A4--; if (lbl_1_bss_1A4 < 0) { object->work[0] = 1005; - lbl_1_bss_1A4 = 3600; + lbl_1_bss_1A4 = 60 * REFRESH_RATE; lbl_1_bss_28 = 0; } break; @@ -1913,9 +1913,9 @@ void fn_1_8D58(omObjData *object) case 1006: lbl_1_bss_28++; - fn_1_13DC(lbl_1_bss_28 / 120.0f, &lbl_1_data_64); - if (120.0f <= lbl_1_bss_28) { - lbl_1_bss_28 = 120.0f; + fn_1_13DC(lbl_1_bss_28 / (2.0f * REFRESH_RATE), &lbl_1_data_64); + if ((2.0f * REFRESH_RATE) <= lbl_1_bss_28) { + lbl_1_bss_28 = 2.0f * REFRESH_RATE; for (i = 0; i < 4; i++) { float temp; if (OM_GET_DATA_PTR(lbl_1_bss_48[i], Work53E8)->unk98 != 2010) { From e51cba8941696356bdca0cf5e9f47a2d7f47806f Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 18 Nov 2024 03:13:05 +0100 Subject: [PATCH 154/311] Ported m442Dll/main.c, score.c needs bss fixing --- config/GMPP01_00/rels/m442Dll/splits.txt | 15 + config/GMPP01_00/rels/m442Dll/symbols.txt | 386 +++++++++++----------- configure.py | 2 +- src/REL/m442Dll/main.c | 86 +++-- 4 files changed, 267 insertions(+), 222 deletions(-) diff --git a/config/GMPP01_00/rels/m442Dll/splits.txt b/config/GMPP01_00/rels/m442Dll/splits.txt index 531cd645..87722ecf 100644 --- a/config/GMPP01_00/rels/m442Dll/splits.txt +++ b/config/GMPP01_00/rels/m442Dll/splits.txt @@ -5,3 +5,18 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m442Dll/main.c: + .text start:0x000000A0 end:0x000091B8 + .rodata start:0x00000000 end:0x000001D0 + .data start:0x00000000 end:0x00000268 + .bss start:0x00000000 end:0x00011F48 + +REL/m442Dll/score.c: + .text start:0x000091B8 end:0x0000997C + .rodata start:0x000001D0 end:0x00000200 + .data start:0x00000268 end:0x00000274 + .bss start:0x00011F48 end:0x00011F58 diff --git a/config/GMPP01_00/rels/m442Dll/symbols.txt b/config/GMPP01_00/rels/m442Dll/symbols.txt index f7292ca9..c50572e9 100644 --- a/config/GMPP01_00/rels/m442Dll/symbols.txt +++ b/config/GMPP01_00/rels/m442Dll/symbols.txt @@ -1,222 +1,234 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x2D4 +ObjectSetup = .text:0x000000A0; // type:function size:0x2D4 fn_1_374 = .text:0x00000374; // type:function size:0x10 fn_1_384 = .text:0x00000384; // type:function size:0x10 fn_1_394 = .text:0x00000394; // type:function size:0xB4 fn_1_448 = .text:0x00000448; // type:function size:0x5E8 fn_1_A30 = .text:0x00000A30; // type:function size:0x60 fn_1_A90 = .text:0x00000A90; // type:function size:0x31C -fn_1_DAC = .text:0x00000DAC; // type:function size:0x68 -fn_1_E14 = .text:0x00000E14; // type:function size:0x84 -fn_1_E98 = .text:0x00000E98; // type:function size:0x380 -fn_1_1218 = .text:0x00001218; // type:function size:0x30 -fn_1_1248 = .text:0x00001248; // type:function size:0xDE0 -fn_1_2028 = .text:0x00002028; // type:function size:0x244 -fn_1_226C = .text:0x0000226C; // type:function size:0xF9C -fn_1_3208 = .text:0x00003208; // type:function size:0x3B0 -fn_1_35B8 = .text:0x000035B8; // type:function size:0xAC -fn_1_3664 = .text:0x00003664; // type:function size:0x160 -fn_1_37C4 = .text:0x000037C4; // type:function size:0x150 -fn_1_3914 = .text:0x00003914; // type:function size:0x1DC -fn_1_3AF0 = .text:0x00003AF0; // type:function size:0x13C -fn_1_3C2C = .text:0x00003C2C; // type:function size:0x74 -fn_1_3CA0 = .text:0x00003CA0; // type:function size:0x180 -fn_1_3E20 = .text:0x00003E20; // type:function size:0x50 -fn_1_3E70 = .text:0x00003E70; // type:function size:0x58 -fn_1_3EC8 = .text:0x00003EC8; // type:function size:0x4 -fn_1_3ECC = .text:0x00003ECC; // type:function size:0x4A4 -fn_1_4370 = .text:0x00004370; // type:function size:0x4 -fn_1_4374 = .text:0x00004374; // type:function size:0xDC -fn_1_4450 = .text:0x00004450; // type:function size:0x418 -fn_1_4868 = .text:0x00004868; // type:function size:0xC6C -fn_1_54D4 = .text:0x000054D4; // type:function size:0x450 -fn_1_5924 = .text:0x00005924; // type:function size:0xA8 -fn_1_59CC = .text:0x000059CC; // type:function size:0x88 -fn_1_5A54 = .text:0x00005A54; // type:function size:0x494 -fn_1_5EE8 = .text:0x00005EE8; // type:function size:0x5D8 -fn_1_64C0 = .text:0x000064C0; // type:function size:0x700 -fn_1_6BC0 = .text:0x00006BC0; // type:function size:0x114 -fn_1_6CD4 = .text:0x00006CD4; // type:function size:0x5C -fn_1_6D30 = .text:0x00006D30; // type:function size:0x5A0 -fn_1_72D0 = .text:0x000072D0; // type:function size:0x318 -fn_1_75E8 = .text:0x000075E8; // type:function size:0x158 -fn_1_7740 = .text:0x00007740; // type:function size:0x114 -fn_1_7854 = .text:0x00007854; // type:function size:0x48 -fn_1_789C = .text:0x0000789C; // type:function size:0x3FC -fn_1_7C98 = .text:0x00007C98; // type:function size:0x230 -fn_1_7EC8 = .text:0x00007EC8; // type:function size:0x664 -fn_1_852C = .text:0x0000852C; // type:function size:0xC8 -fn_1_85F4 = .text:0x000085F4; // type:function size:0x104 -fn_1_86F8 = .text:0x000086F8; // type:function size:0x4C -fn_1_8744 = .text:0x00008744; // type:function size:0x250 -fn_1_8994 = .text:0x00008994; // type:function size:0x764 -fn_1_90F8 = .text:0x000090F8; // type:function size:0x10 -fn_1_9108 = .text:0x00009108; // type:function size:0xB0 -fn_1_91B8 = .text:0x000091B8; // type:function size:0x28C -fn_1_9444 = .text:0x00009444; // type:function size:0x74 -fn_1_94B8 = .text:0x000094B8; // type:function size:0x50 -fn_1_9508 = .text:0x00009508; // type:function size:0x24 -fn_1_952C = .text:0x0000952C; // type:function size:0x30 -fn_1_955C = .text:0x0000955C; // type:function size:0x1BC -fn_1_9718 = .text:0x00009718; // type:function size:0x78 -fn_1_9790 = .text:0x00009790; // type:function size:0x88 -fn_1_9818 = .text:0x00009818; // type:function size:0x164 +fn_1_D9C = .text:0x00000DAC; // type:function size:0x68 +fn_1_E04 = .text:0x00000E14; // type:function size:0x84 +fn_1_E88 = .text:0x00000E98; // type:function size:0x380 +fn_1_1200 = .text:0x00001218; // type:function size:0x30 +fn_1_1230 = .text:0x00001248; // type:function size:0xDE0 +fn_1_2010 = .text:0x00002028; // type:function size:0x244 +fn_1_2254 = .text:0x0000226C; // type:function size:0xF9C +fn_1_31FC = .text:0x00003208; // type:function size:0x3B0 +fn_1_35AC = .text:0x000035B8; // type:function size:0xAC +fn_1_3658 = .text:0x00003664; // type:function size:0x160 +fn_1_37B8 = .text:0x000037C4; // type:function size:0x150 +fn_1_3908 = .text:0x00003914; // type:function size:0x1DC +fn_1_3AE4 = .text:0x00003AF0; // type:function size:0x13C +fn_1_3C20 = .text:0x00003C2C; // type:function size:0x74 +fn_1_3C94 = .text:0x00003CA0; // type:function size:0x180 +fn_1_3E14 = .text:0x00003E20; // type:function size:0x50 +fn_1_3E64 = .text:0x00003E70; // type:function size:0x58 +fn_1_3EBC = .text:0x00003EC8; // type:function size:0x4 +fn_1_3EC0 = .text:0x00003ECC; // type:function size:0x4A4 +fn_1_4364 = .text:0x00004370; // type:function size:0x4 +fn_1_4368 = .text:0x00004374; // type:function size:0xDC +fn_1_4444 = .text:0x00004450; // type:function size:0x418 +fn_1_485C = .text:0x00004868; // type:function size:0xC6C +fn_1_54C8 = .text:0x000054D4; // type:function size:0x450 +fn_1_5918 = .text:0x00005924; // type:function size:0xA8 +fn_1_59C0 = .text:0x000059CC; // type:function size:0x88 +fn_1_5A48 = .text:0x00005A54; // type:function size:0x494 +fn_1_5EDC = .text:0x00005EE8; // type:function size:0x5D8 +fn_1_64B4 = .text:0x000064C0; // type:function size:0x700 +fn_1_6BB4 = .text:0x00006BC0; // type:function size:0x114 +fn_1_6CC8 = .text:0x00006CD4; // type:function size:0x5C +fn_1_6D24 = .text:0x00006D30; // type:function size:0x5A0 +fn_1_72C4 = .text:0x000072D0; // type:function size:0x318 +fn_1_75DC = .text:0x000075E8; // type:function size:0x158 +fn_1_7734 = .text:0x00007740; // type:function size:0x114 +fn_1_7848 = .text:0x00007854; // type:function size:0x48 +fn_1_7890 = .text:0x0000789C; // type:function size:0x3FC +fn_1_7C8C = .text:0x00007C98; // type:function size:0x230 +fn_1_7EBC = .text:0x00007EC8; // type:function size:0x664 +fn_1_8520 = .text:0x0000852C; // type:function size:0xC8 +fn_1_85E8 = .text:0x000085F4; // type:function size:0x104 +fn_1_86EC = .text:0x000086F8; // type:function size:0x4C +fn_1_8738 = .text:0x00008744; // type:function size:0x250 +fn_1_8988 = .text:0x00008994; // type:function size:0x764 +fn_1_90EC = .text:0x000090F8; // type:function size:0x10 +fn_1_90FC = .text:0x00009108; // type:function size:0xB0 +fn_1_91AC = .text:0x000091B8; // type:function size:0x28C +fn_1_9438 = .text:0x00009444; // type:function size:0x74 +fn_1_94AC = .text:0x000094B8; // type:function size:0x50 +fn_1_94FC = .text:0x00009508; // type:function size:0x24 +fn_1_9520 = .text:0x0000952C; // type:function size:0x30 +fn_1_9550 = .text:0x0000955C; // type:function size:0x1BC +fn_1_970C = .text:0x00009718; // type:function size:0x78 +fn_1_9784 = .text:0x00009790; // type:function size:0x88 +fn_1_980C = .text:0x00009818; // type:function size:0x164 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x10 data:4byte -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0xC data:4byte -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +__fakeHalf = .rodata:0x00000000; // type:object size:0x8 data:double +__fakeThree = .rodata:0x00000008; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0xC scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float lbl_1_data_54 = .data:0x00000054; // type:object size:0xC data:float lbl_1_data_60 = .data:0x00000060; // type:object size:0xC data:float -lbl_1_data_6C = .data:0x0000006C; // type:object size:0x4 -lbl_1_data_70 = .data:0x00000070; // type:object size:0xC -lbl_1_data_7C = .data:0x0000007C; // type:object size:0xC -lbl_1_data_88 = .data:0x00000088; // type:object size:0x24 +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x4 data:byte +lbl_1_data_70 = .data:0x00000070; // type:object size:0xC data:float +lbl_1_data_7C = .data:0x0000007C; // type:object size:0xC data:float +lbl_1_data_88 = .data:0x00000088; // type:object size:0x23 scope:local data:string lbl_1_data_AC = .data:0x000000AC; // type:object size:0x4 data:4byte jumptable_1_data_B0 = .data:0x000000B0; // type:object size:0x30 scope:local -lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x1C data:string -lbl_1_data_FC = .data:0x000000FC; // type:object size:0x1C -lbl_1_data_118 = .data:0x00000118; // type:object size:0x8 -lbl_1_data_120 = .data:0x00000120; // type:object size:0x30 -lbl_1_data_150 = .data:0x00000150; // type:object size:0x1A -lbl_1_data_16A = .data:0x0000016A; // type:object size:0x20 -lbl_1_data_18A = .data:0x0000018A; // type:object size:0x16 -lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0xC -lbl_1_data_1AC = .data:0x000001AC; // type:object size:0xC data:string -lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x1 data:byte -lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x1 data:byte -lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x30 -lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x1 data:byte -lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x24 -lbl_1_data_218 = .data:0x00000218; // type:object size:0x1 data:byte -lbl_1_data_21C = .data:0x0000021C; // type:object size:0x20 -lbl_1_data_23C = .data:0x0000023C; // type:object size:0xC -lbl_1_data_248 = .data:0x00000248; // type:object size:0x8 +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x1C scope:local data:string +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x1C data:4byte +lbl_1_data_118 = .data:0x00000118; // type:object size:0x8 data:4byte +lbl_1_data_120 = .data:0x00000120; // type:object size:0x30 data:float +lbl_1_data_150 = .data:0x00000150; // type:object size:0x19 scope:local data:string +lbl_1_data_16A = .data:0x0000016A; // type:object size:0x20 data:2byte +lbl_1_data_18A = .data:0x0000018A; // type:object size:0x14 data:2byte +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0xC data:4byte +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0xC scope:local data:string +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x4 data:byte +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x4 data:byte +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x30 data:float +lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x4 data:byte +lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x18 data:float +lbl_1_data_20C = .data:0x0000020C; // type:object size:0xC data:byte +lbl_1_data_218 = .data:0x00000218; // type:object size:0x4 data:byte +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x20 data:2byte +lbl_1_data_23C = .data:0x0000023C; // type:object size:0xC data:4byte +lbl_1_data_248 = .data:0x00000248; // type:object size:0x8 data:2byte lbl_1_data_250 = .data:0x00000250; // type:object size:0x8 data:float lbl_1_data_258 = .data:0x00000258; // type:object size:0x10 lbl_1_data_268 = .data:0x00000268; // type:object size:0xC lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0xC data:float -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x3C -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0xC000 data:2byte -lbl_1_bss_C060 = .bss:0x0000C060; // type:object size:0x28 data:2byte -lbl_1_bss_C088 = .bss:0x0000C088; // type:object size:0x974 -lbl_1_bss_C9FC = .bss:0x0000C9FC; // type:object size:0x5000 data:4byte -lbl_1_bss_119FC = .bss:0x000119FC; // type:object size:0x4 data:4byte -lbl_1_bss_11A00 = .bss:0x00011A00; // type:object size:0x271 -lbl_1_bss_11C71 = .bss:0x00011C71; // type:object size:0x273 +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x3C data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0xC000 data:2byte +lbl_1_bss_C05C = .bss:0x0000C05C; // type:object size:0x28 data:2byte +lbl_1_bss_C084 = .bss:0x0000C084; // type:object size:0x974 +lbl_1_bss_C9F8 = .bss:0x0000C9F8; // type:object size:0x5000 data:4byte +lbl_1_bss_119F8 = .bss:0x000119F8; // type:object size:0x4 data:4byte +lbl_1_bss_119FC = .bss:0x000119FC; // type:object size:0x271 +lbl_1_bss_11C6D = .bss:0x00011C6D; // type:object size:0x271 +lbl_1_bss_11EE0 = .bss:0x00011EE0; // type:object size:0x4 data:4byte lbl_1_bss_11EE4 = .bss:0x00011EE4; // type:object size:0x4 data:4byte -lbl_1_bss_11EE8 = .bss:0x00011EE8; // type:object size:0x4 data:4byte -lbl_1_bss_11EEC = .bss:0x00011EEC; // type:object size:0x2 data:2byte -lbl_1_bss_11EF0 = .bss:0x00011EF0; // type:object size:0x10 +lbl_1_bss_11EE8 = .bss:0x00011EE8; // type:object size:0x2 data:2byte +lbl_1_bss_11EEC = .bss:0x00011EEC; // type:object size:0x10 data:2byte +lbl_1_bss_11EFC = .bss:0x00011EFC; // type:object size:0x4 data:4byte lbl_1_bss_11F00 = .bss:0x00011F00; // type:object size:0x4 data:4byte -lbl_1_bss_11F04 = .bss:0x00011F04; // type:object size:0x4 data:4byte -lbl_1_bss_11F08 = .bss:0x00011F08; // type:object size:0xC -lbl_1_bss_11F14 = .bss:0x00011F14; // type:object size:0x4 data:4byte +lbl_1_bss_11F04 = .bss:0x00011F04; // type:object size:0xC data:4byte +lbl_1_bss_11F10 = .bss:0x00011F10; // type:object size:0x4 data:4byte +lbl_1_bss_11F14 = .bss:0x00011F14; // type:object size:0x2 data:2byte +lbl_1_bss_11F16 = .bss:0x00011F16; // type:object size:0x2 data:2byte lbl_1_bss_11F18 = .bss:0x00011F18; // type:object size:0x2 data:2byte lbl_1_bss_11F1A = .bss:0x00011F1A; // type:object size:0x2 data:2byte lbl_1_bss_11F1C = .bss:0x00011F1C; // type:object size:0x2 data:2byte lbl_1_bss_11F1E = .bss:0x00011F1E; // type:object size:0x2 data:2byte -lbl_1_bss_11F20 = .bss:0x00011F20; // type:object size:0x2 data:2byte +lbl_1_bss_11F20 = .bss:0x00011F20; // type:object size:0x4 data:4byte lbl_1_bss_11F24 = .bss:0x00011F24; // type:object size:0x4 data:4byte lbl_1_bss_11F28 = .bss:0x00011F28; // type:object size:0x4 data:4byte lbl_1_bss_11F2C = .bss:0x00011F2C; // type:object size:0x4 data:4byte lbl_1_bss_11F30 = .bss:0x00011F30; // type:object size:0x4 data:4byte -lbl_1_bss_11F34 = .bss:0x00011F34; // type:object size:0x8 data:4byte +lbl_1_bss_11F34 = .bss:0x00011F34; // type:object size:0x4 data:4byte +lbl_1_bss_11F38 = .bss:0x00011F38; // type:object size:0x4 data:4byte lbl_1_bss_11F3C = .bss:0x00011F3C; // type:object size:0x4 data:4byte lbl_1_bss_11F40 = .bss:0x00011F40; // type:object size:0x4 data:4byte -lbl_1_bss_11F44 = .bss:0x00011F44; // type:object size:0xC data:4byte +lbl_1_bss_11F44 = .bss:0x00011F44; // type:object size:0x4 data:4byte +lbl_1_bss_11F48 = .bss:0x00011F48; // type:object size:0x4 data:4byte +lbl_1_bss_11F4C = .bss:0x00011F4C; // type:object size:0x4 data:4byte lbl_1_bss_11F50 = .bss:0x00011F50; // type:object size:0x4 data:4byte lbl_1_bss_11F54 = .bss:0x00011F54; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 3c629e35..c8eccedb 100644 --- a/configure.py +++ b/configure.py @@ -1155,7 +1155,7 @@ config.libs = [ Rel( "m442Dll", # Barrel Baron objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m442Dll/main.c"), + Object(Matching, "REL/m442Dll/main.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m442Dll/score.c"), }, ), diff --git a/src/REL/m442Dll/main.c b/src/REL/m442Dll/main.c index b6e60e1e..28beaccd 100644 --- a/src/REL/m442Dll/main.c +++ b/src/REL/m442Dll/main.c @@ -1,3 +1,4 @@ +#include "version.h" #define HUSPR_USE_OLD_DEFS #include "ext_math.h" #include "game/audio.h" @@ -213,6 +214,9 @@ M442StructBssC084 lbl_1_bss_C084[11][11]; M442StructBssC05C lbl_1_bss_C05C[2]; M442StructBss5C lbl_1_bss_5C[0x400]; float lbl_1_bss_20[0xF]; +#if VERSION_PAL +s32 lbl_1_bss_20_pal; +#endif Vec lbl_1_bss_14; s16 lbl_1_bss_12; s16 lbl_1_bss_10; @@ -268,9 +272,9 @@ u32 fn_1_384(void) void fn_1_394(omObjData *object) { lbl_1_bss_11F30 = 0; - lbl_1_bss_11F24 = 60; + lbl_1_bss_11F24 = REFRESH_RATE; lbl_1_bss_11F1C = 60; - lbl_1_bss_11F1A = 60; + lbl_1_bss_11F1A = REFRESH_RATE; lbl_1_bss_11F18 = -1; lbl_1_bss_11F16 = 0; lbl_1_bss_11EE8 = 0; @@ -286,19 +290,19 @@ void fn_1_448(omObjData *object) switch (lbl_1_bss_11F30) { case 0: - if (lbl_1_bss_11F24 == 60) { + if (lbl_1_bss_11F24 == REFRESH_RATE) { HuAudFXPlay(0x71B); HuAudFXPlay(0x71F); } if (--lbl_1_bss_11F24 == 0) { lbl_1_bss_11F30 = 1; - lbl_1_bss_11F24 = 0x78; + lbl_1_bss_11F24 = 2 * REFRESH_RATE; } break; case 1: if (--lbl_1_bss_11F24 == 0) { lbl_1_bss_11F30 = 2; - lbl_1_bss_11F24 = 0x78; + lbl_1_bss_11F24 = 2 * REFRESH_RATE; } break; case 2: @@ -320,7 +324,7 @@ void fn_1_448(omObjData *object) if (--lbl_1_bss_11F1A == 0) { lbl_1_bss_11F1C -= 1; MGSeqParamSet(lbl_1_bss_10, 1, lbl_1_bss_11F1C); - lbl_1_bss_11F1A = 0x3C; + lbl_1_bss_11F1A = REFRESH_RATE; } if (lbl_1_bss_11F1C == 0 || lbl_1_bss_11EE4 == 0) { lbl_1_bss_11F30 = 5; @@ -337,13 +341,13 @@ void fn_1_448(omObjData *object) if (GWMGRecordGet(4) < lbl_1_bss_11EE8) { GWMGRecordSet(4, lbl_1_bss_11EE8); lbl_1_bss_11F30 = 6; - lbl_1_bss_11F24 = 60; + lbl_1_bss_11F24 = REFRESH_RATE; lbl_1_bss_12 = MGSeqCreate(0xE, lbl_1_bss_11EE8); fn_1_94AC(1); } else { lbl_1_bss_11F30 = 9; - lbl_1_bss_11F24 = 60; + lbl_1_bss_11F24 = REFRESH_RATE; } mgRecordExtra = lbl_1_bss_11EE8; } @@ -351,7 +355,7 @@ void fn_1_448(omObjData *object) case 6: if (MGSeqStatGet(lbl_1_bss_12) == 0) { lbl_1_bss_11F30 = 9; - lbl_1_bss_11F24 = 60; + lbl_1_bss_11F24 = REFRESH_RATE; } break; case 9: @@ -363,7 +367,7 @@ void fn_1_448(omObjData *object) else { HuAudSStreamPlay(4); } - lbl_1_bss_11F24 = 0xD2; + lbl_1_bss_11F24 = 3.5f * REFRESH_RATE; } break; case 11: @@ -410,6 +414,10 @@ void fn_1_A90(Process *arg0) lbl_1_bss_11F28[0] = lbl_1_bss_11F28[1] = lbl_1_bss_11F28[2] = lbl_1_bss_11F28[3] = -1; lbl_1_bss_11F20 = 0; +#if VERSION_PAL + lbl_1_bss_20_pal = fn_1_90FC(); +#endif + for (var_r31 = 0; var_r31 < 4; var_r31++) { if (GWPlayerCfg[var_r31].iscom != 1) { break; @@ -495,7 +503,11 @@ void fn_1_E88(omObjData *object) memset(var_r30, 0, sizeof(M442MainWork)); var_r30->unk_02 = lbl_1_bss_11F20++; var_r30->unk_04 = GWPlayerCfg[var_r30->unk_02].pad_idx; +#if VERSION_NTSC var_r30->unk_0C = fn_1_90FC(); +#else + var_r30->unk_0C = lbl_1_bss_20_pal; +#endif var_r26 = GWPlayerCfg[var_r30->unk_02].character; var_r30->unk_10 = var_r26; var_r30->unk_12 = GWPlayerCfg[var_r30->unk_02].diff; @@ -740,7 +752,7 @@ void fn_1_1230(omObjData *object) var_r30->unk_06 = var_f29 * sind(var_r30->unk_18); var_r30->unk_07 = var_f29 * -cosd(var_r30->unk_18); - if (++var_r30->unk_7C > 300) { + if (++var_r30->unk_7C > 5 * REFRESH_RATE) { var_r30->unk_00_field2 = 1; var_r30->unk_7C = 0; } @@ -863,18 +875,18 @@ void fn_1_2254(omObjData *object) if (var_f27 > 72.0f) { var_f27 = 72.0f; } - var_f26 = (10.0f * var_f27) / 72.0f; + var_f26 = ((VERSION_NTSC ? 10.0f : 12.0f) * var_f27) / 72.0f; var_r31->unk_24.x = var_f31 * var_f26; var_r31->unk_24.z = var_f30 * var_f26; var_r31->unk_1C = var_f26; object->rot.y = fn_1_85E8(object->rot.y, atan2d(var_r31->unk_24.x, var_r31->unk_24.z), 0.5f); - if (var_r31->unk_1C < 7.5f) { + if (var_r31->unk_1C < (450.0f / REFRESH_RATE)) { var_r29 = 1; - var_f28 = var_r31->unk_1C / 7.5f; + var_f28 = var_r31->unk_1C / (450.0f / REFRESH_RATE); } else { var_r29 = 2; - var_f28 = var_r31->unk_1C / 10.0f; + var_f28 = var_r31->unk_1C / (VERSION_NTSC ? 10.0f : 12.0f); } } else { @@ -935,7 +947,7 @@ void fn_1_2254(omObjData *object) } if ((var_r31->unk_48 >= 0) && (lbl_1_bss_C9F8[var_r31->unk_48].unk_0C < 3)) { lbl_1_bss_C9F8[var_r31->unk_48].unk_0C += 1; - lbl_1_bss_C9F8[var_r31->unk_48].unk_0E = 120; + lbl_1_bss_C9F8[var_r31->unk_48].unk_0E = 2 * REFRESH_RATE; HuAudFXPlay(0x71C); if (lbl_1_bss_C9F8[var_r31->unk_48].unk_0C == 3) { var_r31->unk_00_field2 = 1; @@ -998,21 +1010,27 @@ void fn_1_2254(omObjData *object) } switch (var_r31->unk_40) { case 0: - var_r31->unk_44 = 0.75 + sind(((90.0f * (var_r31->unk_42 % 15)) / 15.0f)); - if ((var_r31->unk_42 % 20) == 0) { - omVibrate(var_r31->unk_02, 0xC, 0xC, 0); + var_r31->unk_44 = 0.75 + sind(((90.0f * (var_r31->unk_42 % (REFRESH_RATE / 4))) / (float)(REFRESH_RATE / 4))); + if (VERSION_NTSC ? 1 : var_r31->unk_0C == 1) { + if ((var_r31->unk_42 % (REFRESH_RATE / 3)) == 0) { + omVibrate(var_r31->unk_02, 0xC, 0xC, 0); + } } break; case 1: - var_r31->unk_44 = 0.75 + (0.75 * sind(((90.0f * (var_r31->unk_42 % 30)) / 30.0f))); - if ((var_r31->unk_42 % 20) == 0) { - omVibrate(var_r31->unk_02, 0xC, 4, 2); + var_r31->unk_44 = 0.75 + (0.75 * sind(((90.0f * (var_r31->unk_42 % (REFRESH_RATE / 2))) / (0.5f * REFRESH_RATE)))); + if (VERSION_NTSC ? 1 : var_r31->unk_0C == 1) { + if ((var_r31->unk_42 % (REFRESH_RATE / 3)) == 0) { + omVibrate(var_r31->unk_02, 0xC, 4, 2); + } } break; case 2: - var_r31->unk_44 = 0.75 + (0.5 * sind(((90.0f * (var_r31->unk_42 % 60)) / 60.0f))); - if ((var_r31->unk_42 % 20) == 0) { - omVibrate(var_r31->unk_02, 12, 6, 6); + var_r31->unk_44 = 0.75 + (0.5 * sind(((90.0f * (var_r31->unk_42 % REFRESH_RATE)) / (1.0f * REFRESH_RATE)))); + if (VERSION_NTSC ? 1 : var_r31->unk_0C == 1) { + if ((var_r31->unk_42 % (REFRESH_RATE / 3)) == 0) { + omVibrate(var_r31->unk_02, 12, 6, 6); + } } break; } @@ -1273,7 +1291,7 @@ void fn_1_3C20(omObjData *object) Hu3DMotionOverlayReset(object->model[0]); Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); - var_r30->unk_3C = 10; + var_r30->unk_3C = REFRESH_RATE / 5.5; object->func = fn_1_3C94; } @@ -1414,7 +1432,7 @@ void fn_1_4444(s32 arg0) lbl_1_bss_5C[arg0].unk_04 = 0.0f; lbl_1_bss_5C[arg0].unk_08 = 100.0f * (18.0f * ((frand() & 0x1FF) - 256.0f)) / 256; lbl_1_bss_5C[arg0].unk_0C = lbl_1_bss_5C[arg0].unk_00; - lbl_1_bss_5C[arg0].unk_10 = 0.41666666f + (1.6666666f * (frand() & 0xFF) / 256); + lbl_1_bss_5C[arg0].unk_10 = (25.0f / REFRESH_RATE) + ((100.0f / REFRESH_RATE) * (frand() & 0xFF) / 256); lbl_1_bss_5C[arg0].unk_18 = lbl_1_bss_5C[arg0].unk_1A = (frand() & 0x3F) + 0x20; lbl_1_bss_5C[arg0].unk_1C = 0.1f + (0.9f * (frand() & 0xFF) / 256); lbl_1_bss_5C[arg0].unk_20 = 360.0f * (frand() & 0xFF) / 256; @@ -1965,7 +1983,7 @@ void fn_1_72C4(omObjData *object) Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); var_r31->unk_02 = 1; var_r31->unk_18 = 0.0f; - var_r31->unk_0C = 60; + var_r31->unk_0C = REFRESH_RATE; } break; case 1: @@ -1973,7 +1991,7 @@ void fn_1_72C4(omObjData *object) var_r31->unk_18 += 0.05f; } var_r31->unk_02 = 2; - var_r31->unk_0C = var_r31->unk_0E = 45; + var_r31->unk_0C = var_r31->unk_0E = 0.75 * REFRESH_RATE; var_r31->unk_10 = HuAudFXPlay(lbl_1_data_23C[var_r31->unk_14]); break; case 2: @@ -2070,11 +2088,11 @@ void fn_1_7890(ModelData *model, ParticleData *particle, Mtx matrix) var_r31->unk34.x = 100.0 * (0.20000000298023224 * sind(var_f31)); var_r31->unk34.y = 0.0f; var_r31->unk34.z = 100.0 * (0.20000000298023224 * cosd(var_f31)); - var_f30 = 1.6666666f + (2.5f * (frand() & 0xFF) / 256); + var_f30 = (100.0f / REFRESH_RATE) + ((150.0f / REFRESH_RATE) * (frand() & 0xFF) / 256); var_f31 = 360.0f * (frand() & 0xFF) / 256; var_r31->unk08.x = var_f30 * sind(var_f31); var_r31->unk08.z = var_f30 * cosd(var_f31); - var_r31->unk08.y = 16.666666f * (frand() & 0xFF) / 256; + var_r31->unk08.y = (1000.0f / REFRESH_RATE) * (frand() & 0xFF) / 256; var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = var_r31->unk40.a = 0xFF; } } @@ -2085,7 +2103,7 @@ void fn_1_7890(ModelData *model, ParticleData *particle, Mtx matrix) var_r28++; } else { - var_r31->unk08.y += -0.50000006f; + var_r31->unk08.y += VERSION_NTSC ? -0.50000006f : -0.6f; var_r31->unk34.x += var_r31->unk08.x; var_r31->unk34.y += var_r31->unk08.y; var_r31->unk34.z += var_r31->unk08.z; @@ -2210,7 +2228,7 @@ void fn_1_8988(omObjData *arg0) case 1: fn_1_8738(0, 1, sind((90.0f * lbl_1_data_250[0]))); if (lbl_1_data_250[0] < 1.0f) { - lbl_1_data_250[0] += 0.016666668f; + lbl_1_data_250[0] += 1.0f / REFRESH_RATE; if (lbl_1_data_250[0] > 1.0f) { lbl_1_data_250[0] = 1.0f; return; @@ -2222,7 +2240,7 @@ void fn_1_8988(omObjData *arg0) case 2: fn_1_8738(1, 2, 1.0 - cosd((90.0f * lbl_1_data_250[1]))); if (lbl_1_data_250[1] < 1.0f) { - lbl_1_data_250[1] += 0.016666668f; + lbl_1_data_250[1] += 1.0f / REFRESH_RATE; if (lbl_1_data_250[1] > 1.0f) { lbl_1_data_250[1] = 1.0f; return; From 6e22db3fc5eceace9463397ede7bd82ea487e767 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 18 Nov 2024 03:13:17 +0100 Subject: [PATCH 155/311] Import version.h in m440Dll.h --- include/REL/m440Dll.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/REL/m440Dll.h b/include/REL/m440Dll.h index d4d806b2..ef9426e8 100644 --- a/include/REL/m440Dll.h +++ b/include/REL/m440Dll.h @@ -4,6 +4,8 @@ #include "dolphin/types.h" #include "game/hsfman.h" +#include "version.h" + #include "game/object.h" extern s32 rand8(void); From 8a96d23ba9fd02bbad7babf029bb032703894334 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Sun, 17 Nov 2024 21:06:57 -0600 Subject: [PATCH 156/311] Match bootdll in PAL --- config/GMPE01_00/config.yml | 6 +- config/GMPE01_00/rels/bootDll/splits.txt | 8 +- config/GMPE01_00/rels/bootDll/symbols.txt | 39 +- config/GMPE01_01/config.yml | 6 +- config/GMPP01_00/config.yml | 4 + config/GMPP01_00/rels/bootDll/splits.txt | 14 + config/GMPP01_00/rels/bootDll/symbols.txt | 49 +-- config/GMPP01_02/config.yml | 4 + configure.py | 4 +- include/data_num/title.h | 39 ++ src/REL/bootDll/language.c | 280 +++++++++++++ src/REL/bootDll/main.c | 470 ++++++++++++++++------ src/REL/bootDll/nintendo_data.c | 15 - 13 files changed, 746 insertions(+), 192 deletions(-) create mode 100644 src/REL/bootDll/language.c delete mode 100644 src/REL/bootDll/nintendo_data.c diff --git a/config/GMPE01_00/config.yml b/config/GMPE01_00/config.yml index 9512c05c..7e4233af 100644 --- a/config/GMPE01_00/config.yml +++ b/config/GMPE01_00/config.yml @@ -19,9 +19,9 @@ modules: splits: config/GMPE01_00/rels/bootDll/splits.txt links: [] extract: - - symbol: logoNintendoData - binary: logoNintendoData.bin - header: logoNintendoData.inc + - symbol: nintendoData + binary: nintendoData.bin + header: nintendoData.inc - object: files/dll/instDll.rel hash: f09399fee83c63abfe2adb25341152adad959a93 symbols: config/GMPE01_00/rels/instDll/symbols.txt diff --git a/config/GMPE01_00/rels/bootDll/splits.txt b/config/GMPE01_00/rels/bootDll/splits.txt index 49f64a4a..14a67037 100644 --- a/config/GMPE01_00/rels/bootDll/splits.txt +++ b/config/GMPE01_00/rels/bootDll/splits.txt @@ -10,11 +10,7 @@ REL/executor.c: .text start:0x00000000 end:0x000000A0 REL/bootDll/main.c: - .text start:0x000000A0 end:0x00002944 + .text start:0x000000A0 end:0x000029C8 .rodata start:0x00000000 end:0x000000DC - .data start:0x00000000 end:0x000000A0 + .data start:0x00000000 end:0x0000311D .bss start:0x00000000 end:0x0000005C - -REL/bootDll/nintendo_data.c: - .text start:0x00002944 end:0x000029C8 - .data start:0x000000A0 end:0x0000311D diff --git a/config/GMPE01_00/rels/bootDll/symbols.txt b/config/GMPE01_00/rels/bootDll/symbols.txt index b576a34e..463f8400 100644 --- a/config/GMPE01_00/rels/bootDll/symbols.txt +++ b/config/GMPE01_00/rels/bootDll/symbols.txt @@ -1,14 +1,14 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global ObjectSetup = .text:0x000000A0; // type:function size:0x1CC -BootProc = .text:0x0000026C; // type:function size:0x78C scope:local +BootExec = .text:0x0000026C; // type:function size:0x78C UpdateDemoMess = .text:0x000009F8; // type:function size:0xC8 scope:local -ProgressiveProc = .text:0x00000AC0; // type:function size:0x6B8 scope:local -fn_1_1178 = .text:0x00001178; // type:function size:0x3B4 -fn_1_152C = .text:0x0000152C; // type:function size:0xBD4 -TitleInit = .text:0x00002100; // type:function size:0x374 scope:local -TitleProc = .text:0x00002474; // type:function size:0x4D0 scope:local -logoReadNintendo = .text:0x00002944; // type:function size:0x84 +BootProgExec = .text:0x00000AC0; // type:function size:0x6B8 +DebugCamOutView = .text:0x00001178; // type:function size:0x3B4 +DebugCamUpdate = .text:0x0000152C; // type:function size:0xBD4 +BootTitleCreate = .text:0x00002100; // type:function size:0x374 +BootTitleExec = .text:0x00002474; // type:function size:0x4D0 +NintendoDataDecode = .text:0x00002944; // type:function size:0x84 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float @@ -50,20 +50,21 @@ lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:d lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 scope:local data:string lbl_1_data_24 = .data:0x00000024; // type:object size:0x14 scope:local data:string -demoTimingTbl = .data:0x00000038; // type:object size:0x18 scope:local data:2byte -progressivePosTbl = .data:0x00000050; // type:object size:0x8 scope:local -lbl_1_data_58 = .data:0x00000058; // type:object size:0x4 scope:local +demoMessTimeTbl = .data:0x00000038; // type:object size:0x18 scope:local data:2byte +progPosTbl = .data:0x00000050; // type:object size:0x8 scope:local +debugCamTbl = .data:0x00000058; // type:object size:0x4 scope:local lbl_1_data_5C = .data:0x0000005C; // type:object size:0x1A scope:local data:string lbl_1_data_76 = .data:0x00000076; // type:object size:0x13 scope:local data:string lbl_1_data_89 = .data:0x00000089; // type:object size:0x17 scope:local -logoNintendoData = .data:0x000000A0; // type:object size:0x307D align:32 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 +nintendoData = .data:0x000000A0; // type:object size:0x307D align:32 +debugCamOnF = .bss:0x00000000; // type:object size:0x4 lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 -titleGroup = .bss:0x00000006; // type:object size:0x2 scope:local data:2byte -titleModel = .bss:0x00000008; // type:object size:0x6 scope:local data:2byte -demoWin = .bss:0x0000000E; // type:object size:0x2 scope:local data:2byte +bootGrpId = .bss:0x00000006; // type:object size:0x2 scope:local data:2byte +titleMdlId = .bss:0x00000008; // type:object size:0x6 scope:local data:2byte +demoWinId = .bss:0x0000000E; // type:object size:0x2 scope:local data:2byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0xC -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:float -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:float -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x18 data:float -objman = .bss:0x00000054; // type:object size:0x8 scope:local data:4byte +debugCamZoom = .bss:0x0000001C; // type:object size:0x8 data:float +debugCamPos = .bss:0x00000024; // type:object size:0x18 data:float +debugCamRot = .bss:0x0000003C; // type:object size:0x18 data:float +objman = .bss:0x00000054; // type:object size:0x4 data:4byte +debugOutView = .bss:0x00000058; // type:object size:0x4 scope:local data:4byte diff --git a/config/GMPE01_01/config.yml b/config/GMPE01_01/config.yml index f9236cb2..8445dc5f 100644 --- a/config/GMPE01_01/config.yml +++ b/config/GMPE01_01/config.yml @@ -19,9 +19,9 @@ modules: splits: config/GMPE01_00/rels/bootDll/splits.txt links: [] extract: - - symbol: logoNintendoData - binary: logoNintendoData.bin - header: logoNintendoData.inc + - symbol: nintendoData + binary: nintendoData.bin + header: nintendoData.inc - object: files/dll/instDll.rel hash: f09399fee83c63abfe2adb25341152adad959a93 symbols: config/GMPE01_00/rels/instDll/symbols.txt diff --git a/config/GMPP01_00/config.yml b/config/GMPP01_00/config.yml index ed67d838..997b2d75 100644 --- a/config/GMPP01_00/config.yml +++ b/config/GMPP01_00/config.yml @@ -20,6 +20,10 @@ modules: symbols: config/GMPP01_00/rels/bootDll/symbols.txt splits: config/GMPP01_00/rels/bootDll/splits.txt links: [] + extract: + - symbol: nintendoData + binary: nintendoData.bin + header: nintendoData.inc - object: files/dll/instDll.rel hash: eef3ac50923ab2f20d588ef10ae15f3bc739f2b8 symbols: config/GMPP01_00/rels/instDll/symbols.txt diff --git a/config/GMPP01_00/rels/bootDll/splits.txt b/config/GMPP01_00/rels/bootDll/splits.txt index 531cd645..593d873d 100644 --- a/config/GMPP01_00/rels/bootDll/splits.txt +++ b/config/GMPP01_00/rels/bootDll/splits.txt @@ -5,3 +5,17 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/bootDll/main.c: + .text start:0x000000A0 end:0x00002AE0 + .rodata start:0x00000000 end:0x000000F8 + .data start:0x00000000 end:0x00003120 + .bss start:0x00000000 end:0x00000060 + +REL/bootDll/language.c: + .text start:0x00002AE0 end:0x00003D9C + .rodata start:0x000000F8 end:0x000001A0 + .data start:0x00003120 end:0x00003156 diff --git a/config/GMPP01_00/rels/bootDll/symbols.txt b/config/GMPP01_00/rels/bootDll/symbols.txt index b9ed4f1e..fa5f8812 100644 --- a/config/GMPP01_00/rels/bootDll/symbols.txt +++ b/config/GMPP01_00/rels/bootDll/symbols.txt @@ -1,15 +1,15 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x204 -fn_1_2A4 = .text:0x000002A4; // type:function size:0x8B4 -fn_1_B58 = .text:0x00000B58; // type:function size:0xC8 -fn_1_C20 = .text:0x00000C20; // type:function size:0x3B4 -fn_1_FD4 = .text:0x00000FD4; // type:function size:0xB88 -fn_1_1B5C = .text:0x00001B5C; // type:function size:0x460 -fn_1_1FBC = .text:0x00001FBC; // type:function size:0xAA0 -fn_1_2A5C = .text:0x00002A5C; // type:function size:0x84 -fn_1_2AE0 = .text:0x00002AE0; // type:function size:0x10C8 -fn_1_3BA8 = .text:0x00003BA8; // type:function size:0x1F4 +ObjectSetup = .text:0x000000A0; // type:function size:0x204 +BootExec = .text:0x000002A4; // type:function size:0x8B4 +UpdateDemoMess = .text:0x00000B58; // type:function size:0xC8 scope:local +DebugCamOutView = .text:0x00000C20; // type:function size:0x3B4 +DebugCamUpdate = .text:0x00000FD4; // type:function size:0xB88 +BootTitleCreate = .text:0x00001B5C; // type:function size:0x460 +BootTitleExec = .text:0x00001FBC; // type:function size:0xAA0 +NintendoDataDecode = .text:0x00002A5C; // type:function size:0x84 +LanguageMenuExec = .text:0x00002AE0; // type:function size:0x10C8 +LanguageBootGet = .text:0x00003BA8; // type:function size:0x1F4 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float @@ -86,22 +86,25 @@ lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 data:string lbl_1_data_24 = .data:0x00000024; // type:object size:0x14 data:string -lbl_1_data_38 = .data:0x00000038; // type:object size:0x18 data:2byte -lbl_1_data_50 = .data:0x00000050; // type:object size:0x4 +demoMessTimeTbl = .data:0x00000038; // type:object size:0x18 scope:local data:2byte +debugCamTbl = .data:0x00000050; // type:object size:0x4 scope:local lbl_1_data_54 = .data:0x00000054; // type:object size:0x1A data:string lbl_1_data_6E = .data:0x0000006E; // type:object size:0x13 data:string lbl_1_data_81 = .data:0x00000081; // type:object size:0x1F -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x3080 data:4byte -lbl_1_data_3120 = .data:0x00003120; // type:object size:0x14 +nintendoData = .data:0x000000A0; // type:object size:0x307D align:32 +flagFileTbl = .data:0x00003120; // type:object size:0x14 scope:local lbl_1_data_3134 = .data:0x00003134; // type:object size:0x5 data:string lbl_1_data_3139 = .data:0x00003139; // type:object size:0xD data:string lbl_1_data_3146 = .data:0x00003146; // type:object size:0x10 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x6 -lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x2 data:2byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x6 data:2byte -lbl_1_bss_12 = .bss:0x00000012; // type:object size:0xE data:2byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:float -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x18 data:float -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x18 data:float -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:4byte +debugCamOnF = .bss:0x00000000; // type:object size:0x4 data:4byte +initLanguageF = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_4 = .bss:0x00000008; // type:object size:0x2 +bootGrpId = .bss:0x0000000A; // type:object size:0x2 scope:local data:2byte +titleMdlId = .bss:0x0000000C; // type:object size:0x6 scope:local data:2byte +demoWinId = .bss:0x00000012; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_10 = .bss:0x00000014; // type:object size:0xC data:float +debugCamZoom = .bss:0x00000020; // type:object size:0x8 data:float +debugCamPos = .bss:0x00000028; // type:object size:0x18 data:float +debugCamRot = .bss:0x00000040; // type:object size:0x18 data:float +objman = .bss:0x00000058; // type:object size:0x4 data:4byte +debugOutView = .bss:0x0000005C; // type:object size:0x4 scope:local data:4byte diff --git a/config/GMPP01_02/config.yml b/config/GMPP01_02/config.yml index da871c96..fa72e0a2 100644 --- a/config/GMPP01_02/config.yml +++ b/config/GMPP01_02/config.yml @@ -21,6 +21,10 @@ modules: symbols: config/GMPP01_00/rels/bootDll/symbols.txt splits: config/GMPP01_00/rels/bootDll/splits.txt links: [] + extract: + - symbol: nintendoData + binary: nintendoData.bin + header: nintendoData.inc - object: files/dll/instDll.rel hash: eef3ac50923ab2f20d588ef10ae15f3bc739f2b8 symbols: config/GMPP01_00/rels/instDll/symbols.txt diff --git a/configure.py b/configure.py index a5be4728..d3de99e8 100644 --- a/configure.py +++ b/configure.py @@ -835,8 +835,8 @@ config.libs = [ Rel( "bootDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/bootDll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/bootDll/nintendo_data.c"), + Object(Matching, "REL/bootDll/main.c"), + Object(Matching, "REL/bootDll/language.c"), }, ), Rel( diff --git a/include/data_num/title.h b/include/data_num/title.h index 2d0ce603..a50179ec 100644 --- a/include/data_num/title.h +++ b/include/data_num/title.h @@ -2,6 +2,9 @@ #define DATANUM_TITLE_H #include "datadir_enum.h" +#include "version.h" + +#if VERSION_NTSC enum { TITLE_NINTENDO_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 0), @@ -20,4 +23,40 @@ enum { TITLE_SKY_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 13), }; +#else + +enum { + TITLE_HUDSON_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 0), + TITLE_PROGRESSIVE_CHOOSE_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 1), + TITLE_PROGRESSIVE_ON_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 2), + TITLE_PROGRESSIVE_OFF_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 3), + TITLE_PROGRESSIVE_CURSOR_ON_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 4), + TITLE_PROGRESSIVE_CURSOR_OFF_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 5), + TITLE_BG_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 6), + TITLE_LOGO_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 7), + TITLE_COPYRIGHT_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 8), + TITLE_CHAR_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 9), + TITLE_CUBE_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 10), + TITLE_SKY_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 11), + TITLE_LANGUAGEBG_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 12), + TITLE_FLAG_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 13), + TITLE_FLAG_EN_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 14), + TITLE_FLAG_GE_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 15), + TITLE_FLAG_FR_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 16), + TITLE_FLAG_IT_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 17), + TITLE_FLAG_ES_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 18), + TITLE_PRESS_START_EN_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 19), + TITLE_PRESS_START_GE_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 20), + TITLE_PRESS_START_FR_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 21), + TITLE_PRESS_START_IT_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 22), + TITLE_PRESS_START_ES_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 23), + TITLE_LANGUAGE_EN_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 24), + TITLE_LANGUAGE_GE_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 25), + TITLE_LANGUAGE_FR_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 26), + TITLE_LANGUAGE_IT_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 27), + TITLE_LANGUAGE_ES_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 28), +}; + +#endif + #endif \ No newline at end of file diff --git a/src/REL/bootDll/language.c b/src/REL/bootDll/language.c new file mode 100644 index 00000000..fdc674f1 --- /dev/null +++ b/src/REL/bootDll/language.c @@ -0,0 +1,280 @@ +#include "version.h" +#if VERSION_PAL +#include "dolphin.h" +#include "game/card.h" +#include "game/saveload.h" +#include "game/sprite.h" +#include "game/hsfman.h" +#include "game/hsfanim.h" +#include "game/window.h" +#include "game/gamework_data.h" +#include "game/object.h" +#include "game/wipe.h" +#include "game/pad.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/minigame_seq.h" + +#include "math.h" +#include "ext_math.h" + +#include "data_num/title.h" + +s32 flagFileTbl[] = { + TITLE_FLAG_EN_ANM, + TITLE_FLAG_ES_ANM, + TITLE_FLAG_IT_ANM, + TITLE_FLAG_FR_ANM, + TITLE_FLAG_GE_ANM +}; + +extern int SystemInitF; + +extern Process *objman; +extern Vec debugCamRot[2]; +extern Vec debugCamPos[2]; +extern float debugCamZoom[2]; + +void DebugCamOutView(omObjData *obj); +void DebugCamUpdate(omObjData *obj); + +BOOL LanguageMenuExec(void) +{ + s16 language = GWLanguageGet()-1; + s16 i; + s16 gid; + s16 time; + s16 choiceChange; + AnimData *anim; + s16 sprid; + s16 choice; + omObjData *outView; + omObjData *updateCamera; + s16 modelId[5]; + s16 winId[5]; + + float winSize[2]; + float dist; + float posX; + float posZ; + + for(i=0; i<4; i++) { + GWPlayerCfg[i].character = i; + } + gid = HuSprGrpCreate(1); + anim = HuSprAnimReadFile(TITLE_LANGUAGEBG_ANM); + sprid = HuSprCreate(anim, 0, 0); + HuSprGrpMemberSet(gid, 0, sprid); + HuSprDrawNoSet(gid, 0, 127); + HuSprPosSet(gid, 0, 288, 240); + HuSprTPLvlSet(gid, 0, 0.6f); + Hu3DFogSet(350, 2000, 128, 128, 128); + debugCamRot[0].x = -20; + debugCamRot[0].y = 0; + debugCamRot[0].z = 0; + debugCamPos[0].x = 0; + debugCamPos[0].y = 20; + debugCamPos[0].z = -7; + debugCamZoom[0] = 600; + + Hu3DCameraPerspectiveSet(HU3D_CAM0, 60, 20, 5000, 1.2f); + outView = omAddObjEx(objman, 32730, 0, 0, -1, DebugCamOutView); + updateCamera = omAddObjEx(objman, 0, 32, 32, -1, DebugCamUpdate); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + if(!SystemInitF) { + void *group_samp; + HuWindowInit(); + group_samp = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(0)); + msmSysLoadGroup(0, group_samp, 0); + HuMemDirectFree(group_samp); + } + for(i=0; i<5; i++) { + modelId[i] = Hu3DModelCreateFile(TITLE_FLAG_HSF); + anim = HuSprAnimReadFile(flagFileTbl[i]); + Hu3DAnimCreate(anim, modelId[i], "flag"); + Hu3DModelPosSet(modelId[i], sind(i*72)*200, 70, cosd(i*72)*200); + Hu3DModelRotSet(modelId[i], -20, 0, 0); + } + for(time=1; time<=30; time++) { + dist = 1.0-(time/30.0); + for(i=0; i<5; i++) { + Hu3DModelPosSet(modelId[i], sind((dist*180.0f)+(i*72)+(language*72))*(200+(300*dist)), 70, cosd((dist*180.0f)+(i*72)+(language*72))*(200+(300*dist))); + } + HuPrcVSleep(); + } + HuWinInit(1); + HuWinMesMaxSizeGet(5, winSize, 0x380000, 0x380005, 0x38000A, 0x38000F, 0x380014); + winId[0] = HuWinExCreateStyled(-10000, 50, winSize[0], winSize[1], -1, 0); + HuWinAttrSet(winId[0], 0x800); + HuWinMesSet(winId[0], 0x380000+(language*5)); + HuWinBGTPLvlSet(winId[0], 0); + HuWinMesSpeedSet(winId[0], 0); + HuWinDispOn(winId[0]); + HuWinMesMaxSizeGet(5, winSize, 0x380001, 0x380006, 0x38000B, 0x380010, 0x380015); + winId[1] = HuWinExCreateStyled(-10000, 100, winSize[0], winSize[1], -1, 0); + HuWinAttrSet(winId[1], 0x800); + HuWinMesSet(winId[1], 0x380001+(language*5)); + HuWinBGTPLvlSet(winId[1], 0); + HuWinMesSpeedSet(winId[1], 0); + HuWinDispOn(winId[1]); + HuWinMesMaxSizeGet(5, winSize, 0x380002, 0x380007, 0x38000C, 0x380011, 0x380016); + winId[2] = HuWinExCreateStyled(-10000, 340, winSize[0], winSize[1], -1, 0); + HuWinAttrSet(winId[2], 0x800); + HuWinMesSet(winId[2], 0x380002+(language*5)); + HuWinBGTPLvlSet(winId[2], 0); + HuWinMesSpeedSet(winId[2], 0); + HuWinDispOn(winId[2]); + HuWinMesMaxSizeGet(5, winSize, 0x380004, 0x380009, 0x38000E, 0x380013, 0x380018); + winId[4] = HuWinExCreateStyled(-10000, (448-winSize[1])-10, winSize[0], winSize[1], -1, 0); + HuWinAttrSet(winId[4], 0x800); + choiceChange = FALSE; + while(1) { + if(HuPadDStkRep[0] & PAD_BUTTON_LEFT) { + HuAudFXPlay(0); + for(time=0; time<=10; time++) { + for(i=0; i<5; i++) { + posX = sind((72.0*language)+(i*72)-(72.0*(time/10.0)))*200; + posZ = cosd((72.0*language)+(i*72)-(72.0*(time/10.0)))*200; + Hu3DModelPosSet(modelId[i], posX, 70, posZ); + } + HuPrcVSleep(); + } + language--; + if(language < 0) { + language = 4; + } + choiceChange = TRUE; + } else if(HuPadDStkRep[0] & PAD_BUTTON_RIGHT) { + HuAudFXPlay(0); + for(time=0; time<=10; time++) { + for(i=0; i<5; i++) { + posX = sind((72.0*language)+(i*72)+(72.0*(time/10.0)))*200; + posZ = cosd((72.0*language)+(i*72)+(72.0*(time/10.0)))*200; + Hu3DModelPosSet(modelId[i], posX, 70, posZ); + } + HuPrcVSleep(); + } + language++; + if(language >= 5) { + language = 0; + } + choiceChange = TRUE; + } + if(choiceChange) { + HuWinMesSet(winId[0], 0x380000+(language*5)); + HuWinMesSet(winId[1], 0x380001+(language*5)); + HuWinMesSet(winId[2], 0x380002+(language*5)); + choiceChange = FALSE; + } + if(HuPadBtnDown[0] & PAD_BUTTON_A) { + HuAudFXPlay(1); + HuWinHomeClear(winId[4]); + HuWinExAnimIn(winId[4]); + HuWinMesSet(winId[4], 0x380004+(language*5)); + HuWinMesWait(winId[4]); + choice = HuWinChoiceGet(winId[4], 0); + if(choice == 0) { + GwLanguage = GwLanguageSave = language+1; + GWLanguageSet(GwLanguage); + break; + } + HuWinExAnimOut(winId[4]); + } + if(GwLanguage != -1 && (HuPadBtnDown[0] & PAD_BUTTON_B)) { + HuAudFXPlay(3); + break; + } + HuPrcVSleep(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + HuSprGrpKill(gid); + for(i=0; i<5; i++) { + Hu3DModelKill(modelId[i]); + } + omDelObjEx(objman, outView); + omDelObjEx(objman, updateCamera); + if(SystemInitF == 0) { + CharManInit(); + MGSeqInit(); + } + HuWinAllKill(); + Hu3DFogClear(); + return TRUE; +} + +s32 LanguageBootGet(void) +{ + s16 result = -1; + s16 i; + s16 j; + for(i=0; i<2; i++) { + if(HuCardSlotCheck(i) < 0) { + continue; + } + if(HuCardMount(i) < 0) { + continue; + } + for(j=0; j<3; j++) { + CARDFileInfo fileInfo; + if(HuCardOpen(i, SaveFileNameTbl[j], &fileInfo) < 0) { + continue; + } + if(HuCardRead(&fileInfo, &saveBuf, SAVE_BUF_SIZE, 0) < 0) { + continue; + } + if(!SLCheckSumCheck()) { + continue; + } + memcpy(&GWGameStat, &saveBuf.data.stat, sizeof(GameStat)); + if(GWGameStat.language < 1) { + continue; + } + if(GWGameStat.language > 5) { + continue; + } + result = GWGameStat.language; + OSReport("Language %d\n", GWGameStat.language); + HuCardClose(&fileInfo); + HuCardUnMount(i); + return result; + } + HuCardUnMount(i); + } + if(result == -1) { + OSReport("OS Language %d\n", OSGetLanguage()); + switch(OSGetLanguage()) { + case OS_LANG_ENGLISH: + result = 1; + break; + + case OS_LANG_GERMAN: + result = 2; + break; + + case OS_LANG_FRENCH: + result = 3; + break; + + case OS_LANG_SPANISH: + result = 5; + break; + + case OS_LANG_ITALIAN: + result = 4; + break; + + default: + result = -1; + break; + } + } + return result; +} + +#endif \ No newline at end of file diff --git a/src/REL/bootDll/main.c b/src/REL/bootDll/main.c index b525067a..5aa7dfcb 100644 --- a/src/REL/bootDll/main.c +++ b/src/REL/bootDll/main.c @@ -24,51 +24,69 @@ extern int SystemInitF; -static Process *objman[2]; -Vec lbl_1_bss_3C[2]; -Vec lbl_1_bss_24[2]; -float lbl_1_bss_1C[2]; +static omObjData *debugOutView; +Process *objman; +Vec debugCamRot[2]; +Vec debugCamPos[2]; +float debugCamZoom[2]; Vec lbl_1_bss_10; -static s16 demoWin; +static s16 demoWinId; -static s16 titleModel[3]; -static s16 titleGroup; +static s16 titleMdlId[3]; +static s16 bootGrpId; s16 lbl_1_bss_4; -s32 lbl_1_bss_0; +#if VERSION_PAL +static BOOL initLanguageF; +#endif +s32 debugCamOnF; -static void BootProc(void); +void BootExec(void); static void UpdateDemoMess(void); -static void ProgressiveProc(void); -static void TitleInit(void); -static BOOL TitleProc(void); +#if VERSION_NTSC +void BootProgExec(void); +#endif +void BootTitleCreate(void); +BOOL BootTitleExec(void); -void *logoReadNintendo(void); +void *NintendoDataDecode(void); void ObjectSetup(void) { omOvlHisData *history; OSReport("******* Boot ObjectSetup *********\n"); - objman[0] = omInitObjMan(50, 8192); - lbl_1_bss_3C[0].x = -67; - lbl_1_bss_3C[0].y = 40; - lbl_1_bss_3C[0].z = 0; - lbl_1_bss_24[0].x = 260; - lbl_1_bss_24[0].y = -103; - lbl_1_bss_24[0].z = -18; - lbl_1_bss_1C[0] = 2885; + objman = omInitObjMan(50, 8192); + debugCamRot[0].x = -67; + debugCamRot[0].y = 40; + debugCamRot[0].z = 0; + debugCamPos[0].x = 260; + debugCamPos[0].y = -103; + debugCamPos[0].z = -18; + debugCamZoom[0] = 2885; Hu3DCameraCreate(1); Hu3DCameraPerspectiveSet(1, 30, 20, 15000, 1.2); Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - HuPrcCreate(BootProc, 100, 12288, 0); + HuPrcCreate(BootExec, 100, 12288, 0); Hu3DBGColorSet(0, 0, 0); history = omOvlHisGet(0); omOvlHisChg(0, history->overlay, 1, history->stat); + #if VERSION_PAL + if(SystemInitF == FALSE) { + initLanguageF = FALSE; + } else { + initLanguageF = TRUE; + } + #endif } -static void BootProc(void) +#if VERSION_PAL +s32 LanguageBootGet(void); +BOOL LanguageMenuExec(void); +#endif + +void BootExec(void) { AnimData *data; s16 group; @@ -77,11 +95,24 @@ static void BootProc(void) s16 i; OSTick tick_prev; Process *curr = HuPrcCurrentGet(); + #if VERSION_NTSC if (omovlevtno == 0) { - ProgressiveProc(); + BootProgExec(); } + #else + if(SystemInitF == FALSE) { + GwLanguage = LanguageBootGet(); + if(GwLanguage == -1) { + if(LanguageMenuExec()) { + SystemInitF = TRUE; + } + } else { + GWLanguageSet(GwLanguage); + } + } + #endif group = HuSprGrpCreate(2); - data = HuSprAnimRead(logoReadNintendo()); + data = HuSprAnimRead(NintendoDataDecode()); sprite_nintendo = HuSprCreate(data, 0, 0); HuSprGrpMemberSet(group, 0, sprite_nintendo); HuSprPosSet(group, 0, 288, 240); @@ -94,7 +125,7 @@ static void BootProc(void) HuSprPosSet(group, 1, 288, 240); HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); HuWinInit(1); - TitleInit(); + BootTitleCreate(); SystemInitF = 1; } else { @@ -105,6 +136,18 @@ static void BootProc(void) for (i = 0; i < 4; i++) { GWPlayerCfg[i].pad_idx = i; } + #if VERSION_PAL + if(SystemInitF) { + data = HuSprAnimReadFile(TITLE_HUDSON_ANM); + sprite_hudson = HuSprCreate(data, 0, 0); + HuSprGrpMemberSet(group, 1, sprite_hudson); + HuSprPosSet(group, 1, 288, 240); + HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); + HuAudSndGrpSetSet(0); + BootTitleCreate(); + HuWinInit(1); + } + #endif repeat: HuSprAttrReset(group, 0, HUSPR_ATTR_DISPOFF); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); @@ -118,7 +161,7 @@ static void BootProc(void) HuWindowInit(); MGSeqInit(); HuWinInit(1); - TitleInit(); + BootTitleCreate(); data = HuSprAnimReadFile(TITLE_HUDSON_ANM); sprite_hudson = HuSprCreate(data, 0, 0); HuSprGrpMemberSet(group, 1, sprite_hudson); @@ -130,9 +173,15 @@ static void BootProc(void) } else { for (i = 0; i < 180; i++) { + #if VERSION_NTSC if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) { break; } + #else + if (initLanguageF && (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A))) { + break; + } + #endif HuPrcVSleep(); } } @@ -159,12 +208,21 @@ static void BootProc(void) } else { for (i = 0; i < 180; i++) { + #if VERSION_NTSC if (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A)) { break; } + #else + if (initLanguageF && (HuPadBtnDown[0] & (PAD_BUTTON_START | PAD_BUTTON_A))) { + break; + } + #endif HuPrcVSleep(); } } + #if VERSION_PAL + initLanguageF = TRUE; + #endif WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); while (WipeStatGet()) { HuPrcVSleep(); @@ -184,11 +242,11 @@ static void BootProc(void) HuSprGrpMemberSet(group_thp, 0, sprite_thp); HuSprPosSet(group_thp, 0, 288, 240); HuWinMesMaxSizeBetGet(win_size, MAKE_MESSID(54, 0), MAKE_MESSID(54, 4)); - demoWin = HuWinCreate(-10000, 448 - win_size[1], win_size[0], win_size[1], 0); - HuWinMesSpeedSet(demoWin, 0); - HuWinBGTPLvlSet(demoWin, 0); - HuWinPriSet(demoWin, 10); - HuWinAttrSet(demoWin, 0x800); + demoWinId = HuWinCreate(-10000, 448 - win_size[1], win_size[0], win_size[1], 0); + HuWinMesSpeedSet(demoWinId, 0); + HuWinBGTPLvlSet(demoWinId, 0); + HuWinPriSet(demoWinId, 10); + HuWinAttrSet(demoWinId, 0x800); HuPrcSleep(5); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); while (WipeStatGet()) { @@ -207,7 +265,7 @@ static void BootProc(void) while (WipeStatGet()) { HuPrcVSleep(); } - HuWinKill(demoWin); + HuWinKill(demoWinId); HuTHPClose(); HuPrcVSleep(); HuSprGrpKill(group_thp); @@ -216,7 +274,7 @@ static void BootProc(void) } skip_wait = FALSE; } - if (!TitleProc()) { + if (!BootTitleExec()) { HuPrcSleep(60); goto repeat; } @@ -242,7 +300,7 @@ static void BootProc(void) } while (1); } -static s16 demoTimingTbl[] = { +static s16 demoMessTimeTbl[] = { 1686, 1785, 1850, @@ -261,19 +319,21 @@ static void UpdateDemoMess(void) { int frame = HuTHPFrameGet(); int i; - for (i = 0; demoTimingTbl[i * 2] != -1; i++) { - if (frame == demoTimingTbl[i * 2]) { - HuWinMesSet(demoWin, MAKE_MESSID(54, i)); + for (i = 0; demoMessTimeTbl[i * 2] != -1; i++) { + if (frame == demoMessTimeTbl[i * 2]) { + HuWinMesSet(demoWinId, MAKE_MESSID(54, i)); } - if (frame == demoTimingTbl[(i * 2) + 1]) { - HuWinHomeClear(demoWin); + if (frame == demoMessTimeTbl[(i * 2) + 1]) { + HuWinHomeClear(demoWinId); } } } -static u16 progressivePosTbl[] = { 236, 313, 353, 313 }; +#if VERSION_NTSC -static void ProgressiveProc(void) +static u16 progPosTbl[] = { 236, 313, 353, 313 }; + +void BootProgExec(void) { s16 i; s16 option; @@ -303,11 +363,11 @@ static void ProgressiveProc(void) data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_ON_ANM); sprite = HuSprCreate(data, 0, 0); HuSprGrpMemberSet(group, 1, sprite); - HuSprPosSet(group, 1, progressivePosTbl[option * 2], progressivePosTbl[(option * 2) + 1]); + HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]); data = HuSprAnimReadFile(TITLE_PROGRESSIVE_CURSOR_OFF_ANM); sprite = HuSprCreate(data, 0, 0); HuSprGrpMemberSet(group, 2, sprite); - HuSprPosSet(group, 2, progressivePosTbl[option * 2], progressivePosTbl[(option * 2) + 1]); + HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]); HuSprAttrSet(group, 2, HUSPR_ATTR_DISPOFF); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 30); while (WipeStatGet()) { @@ -316,12 +376,12 @@ static void ProgressiveProc(void) for (i = 0; i < 600; i++) { if (HU_PAD_DSTK_ALL & (PAD_BUTTON_LEFT | PAD_BUTTON_RIGHT)) { option ^= 1; - HuSprPosSet(group, 1, progressivePosTbl[option * 2], progressivePosTbl[(option * 2) + 1]); + HuSprPosSet(group, 1, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]); i = 0; } if (HU_PAD_BTNDOWN_ALL & PAD_BUTTON_A) { HuSprAttrSet(group, 1, HUSPR_ATTR_DISPOFF); - HuSprPosSet(group, 2, progressivePosTbl[option * 2], progressivePosTbl[(option * 2) + 1]); + HuSprPosSet(group, 2, progPosTbl[option * 2], progPosTbl[(option * 2) + 1]); HuSprAttrReset(group, 2, HUSPR_ATTR_DISPOFF); break; } @@ -370,33 +430,35 @@ static void ProgressiveProc(void) HuPrcSleep(30); } -u16 lbl_1_data_58[] = { 1, 2 }; +#endif -void fn_1_1178(void) +static u16 debugCamTbl[] = { 1, 2 }; + +void DebugCamOutView(omObjData *obj) { s16 i; for (i = 0; i < 1; i++) { Vec pos, target, up; float x, y, z; - x = lbl_1_bss_3C[i].x; - y = lbl_1_bss_3C[i].y; - z = lbl_1_bss_3C[i].z; + x = debugCamRot[i].x; + y = debugCamRot[i].y; + z = debugCamRot[i].z; - pos.x = (((sind(y) * cosd(x)) * lbl_1_bss_1C[i]) + lbl_1_bss_24[i].x); - pos.y = (-sind(x) * lbl_1_bss_1C[i]) + lbl_1_bss_24[i].y; - pos.z = ((cosd(y) * cosd(x)) * lbl_1_bss_1C[i]) + lbl_1_bss_24[i].z; - target.x = lbl_1_bss_24[i].x; - target.y = lbl_1_bss_24[i].y; - target.z = lbl_1_bss_24[i].z; + pos.x = (((sind(y) * cosd(x)) * debugCamZoom[i]) + debugCamPos[i].x); + pos.y = (-sind(x) * debugCamZoom[i]) + debugCamPos[i].y; + pos.z = ((cosd(y) * cosd(x)) * debugCamZoom[i]) + debugCamPos[i].z; + target.x = debugCamPos[i].x; + target.y = debugCamPos[i].y; + target.z = debugCamPos[i].z; up.x = sind(y) * sind(x); up.y = cosd(x); up.z = cosd(y) * sind(x); - Hu3DCameraPosSet(lbl_1_data_58[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); + Hu3DCameraPosSet(debugCamTbl[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); } } -void fn_1_152C(void) +void DebugCamUpdate(omObjData *obj) { Vec pos; Vec offset; @@ -405,28 +467,30 @@ void fn_1_152C(void) f32 z_rot; s8 stick_pos; - + + #if VERSION_NTSC if ((HuPadBtnDown[0] & 0x800)) { - lbl_1_bss_0 = (lbl_1_bss_0) ? 0 : 1; + debugCamOnF = (debugCamOnF) ? 0 : 1; } - if (lbl_1_bss_0 != 0) { - lbl_1_bss_3C[0].y += 0.1f * HuPadStkX[0]; - lbl_1_bss_3C[0].x += 0.1f * HuPadStkY[0]; - lbl_1_bss_1C[0] += HuPadTrigL[0] / 2; - lbl_1_bss_1C[0] -= HuPadTrigR[0] / 2; - if (lbl_1_bss_1C[0] < 100.0f) { - lbl_1_bss_1C[0] = 100.0f; + #endif + if (debugCamOnF != 0) { + debugCamRot[0].y += 0.1f * HuPadStkX[0]; + debugCamRot[0].x += 0.1f * HuPadStkY[0]; + debugCamZoom[0] += HuPadTrigL[0] / 2; + debugCamZoom[0] -= HuPadTrigR[0] / 2; + if (debugCamZoom[0] < 100.0f) { + debugCamZoom[0] = 100.0f; } - pos.x = lbl_1_bss_24[0].x + (lbl_1_bss_1C[0] * (sind(lbl_1_bss_3C[0].y) * cosd(lbl_1_bss_3C[0].x))); - pos.y = (lbl_1_bss_24[0].y + (lbl_1_bss_1C[0] * -sind(lbl_1_bss_3C[0].x))); - pos.z = (lbl_1_bss_24[0].z + (lbl_1_bss_1C[0] * (cosd(lbl_1_bss_3C[0].y) * cosd(lbl_1_bss_3C[0].x)))); - offset.x = lbl_1_bss_24[0].x - pos.x; - offset.y = lbl_1_bss_24[0].y - pos.y; - offset.z = lbl_1_bss_24[0].z - pos.z; - dir.x = (sind(lbl_1_bss_3C[0].y) * sind(lbl_1_bss_3C[0].x)); - dir.y = cosd(lbl_1_bss_3C[0].x); - dir.z = (cosd(lbl_1_bss_3C[0].y) * sind(lbl_1_bss_3C[0].x)); - z_rot = lbl_1_bss_3C[0].z; + pos.x = debugCamPos[0].x + (debugCamZoom[0] * (sind(debugCamRot[0].y) * cosd(debugCamRot[0].x))); + pos.y = (debugCamPos[0].y + (debugCamZoom[0] * -sind(debugCamRot[0].x))); + pos.z = (debugCamPos[0].z + (debugCamZoom[0] * (cosd(debugCamRot[0].y) * cosd(debugCamRot[0].x)))); + offset.x = debugCamPos[0].x - pos.x; + offset.y = debugCamPos[0].y - pos.y; + offset.z = debugCamPos[0].z - pos.z; + dir.x = (sind(debugCamRot[0].y) * sind(debugCamRot[0].x)); + dir.y = cosd(debugCamRot[0].x); + dir.z = (cosd(debugCamRot[0].y) * sind(debugCamRot[0].x)); + z_rot = debugCamRot[0].z; y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot)) + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); @@ -443,70 +507,102 @@ void fn_1_152C(void) VECNormalize(&offset, &offset); stick_pos = (HuPadSubStkX[0] & 0xF8); if (stick_pos != 0) { - lbl_1_bss_24[0].x += 0.05f * (offset.x * stick_pos); - lbl_1_bss_24[0].y += 0.05f * (offset.y * stick_pos); - lbl_1_bss_24[0].z += 0.05f * (offset.z * stick_pos); + debugCamPos[0].x += 0.05f * (offset.x * stick_pos); + debugCamPos[0].y += 0.05f * (offset.y * stick_pos); + debugCamPos[0].z += 0.05f * (offset.z * stick_pos); } VECNormalize(&y_offset, &offset); stick_pos = -(HuPadSubStkY[0] & 0xF8); if (stick_pos != 0) { - lbl_1_bss_24[0].x += 0.05f * (offset.x * stick_pos); - lbl_1_bss_24[0].y += 0.05f * (offset.y * stick_pos); - lbl_1_bss_24[0].z += 0.05f * (offset.z * stick_pos); + debugCamPos[0].x += 0.05f * (offset.x * stick_pos); + debugCamPos[0].y += 0.05f * (offset.y * stick_pos); + debugCamPos[0].z += 0.05f * (offset.z * stick_pos); } } } -static void TitleInit(void) +void BootTitleCreate(void) { s16 model; s16 sprite; AnimData *sprite_data; - titleModel[0] = model = Hu3DModelCreateFile(TITLE_CHAR_HSF); + s16 i; + titleMdlId[0] = model = Hu3DModelCreateFile(TITLE_CHAR_HSF); Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP); - titleModel[1] = model = Hu3DModelCreateFile(TITLE_CUBE_HSF); + titleMdlId[1] = model = Hu3DModelCreateFile(TITLE_CUBE_HSF); Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP); - titleModel[2] = model = Hu3DModelCreateFile(TITLE_SKY_HSF); + titleMdlId[2] = model = Hu3DModelCreateFile(TITLE_SKY_HSF); Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(model, HU3D_MOTATTR_LOOP); Hu3DModelCameraInfoSet(model, 1); Hu3DModelLightInfoSet(model, 1); - titleGroup = HuSprGrpCreate(4); + #if VERSION_NTSC + bootGrpId = HuSprGrpCreate(4); + #else + bootGrpId = HuSprGrpCreate(13); + #endif sprite_data = HuSprAnimReadFile(TITLE_BG_ANM); sprite = HuSprCreate(sprite_data, 0, 0); - HuSprGrpMemberSet(titleGroup, 0, sprite); - HuSprAttrSet(titleGroup, 0, HUSPR_ATTR_DISPOFF); - HuSprDrawNoSet(titleGroup, 0, 127); - HuSprPosSet(titleGroup, 0, 288, 240); + HuSprGrpMemberSet(bootGrpId, 0, sprite); + HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF); + HuSprDrawNoSet(bootGrpId, 0, 127); + HuSprPosSet(bootGrpId, 0, 288, 240); sprite_data = HuSprAnimReadFile(TITLE_COPYRIGHT_ANM); sprite = HuSprCreate(sprite_data, 1, 0); - HuSprGrpMemberSet(titleGroup, 1, sprite); - HuSprAttrSet(titleGroup, 1, HUSPR_ATTR_DISPOFF); - HuSprPosSet(titleGroup, 1, 288, 420); + HuSprGrpMemberSet(bootGrpId, 1, sprite); + HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF); + HuSprPosSet(bootGrpId, 1, 288, 420); + #if VERSION_NTSC sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_ANM); sprite = HuSprCreate(sprite_data, 2, 0); - HuSprGrpMemberSet(titleGroup, 2, sprite); - HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); - HuSprPosSet(titleGroup, 2, 288, 380); + HuSprGrpMemberSet(bootGrpId, 2, sprite); + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); + HuSprPosSet(bootGrpId, 2, 288, 380); sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM); sprite = HuSprCreate(sprite_data, 0, 0); - HuSprGrpMemberSet(titleGroup, 3, sprite); - HuSprAttrSet(titleGroup, 3, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); - HuSprPosSet(titleGroup, 3, 288, 200); + HuSprGrpMemberSet(bootGrpId, 3, sprite); + HuSprAttrSet(bootGrpId, 3, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); + HuSprPosSet(bootGrpId, 3, 288, 200); + #else + sprite_data = HuSprAnimReadFile(TITLE_LOGO_ANM); + sprite = HuSprCreate(sprite_data, 0, 0); + HuSprGrpMemberSet(bootGrpId, 2, sprite); + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); + HuSprPosSet(bootGrpId, 2, 288, 200); + for(i=0; i<5; i++) { + sprite_data = HuSprAnimReadFile(TITLE_PRESS_START_EN_ANM+i); + sprite = HuSprCreate(sprite_data, 3+i, 0); + HuSprGrpMemberSet(bootGrpId, 3+i, sprite); + HuSprAttrSet(bootGrpId, 3+i, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); + HuSprPosSet(bootGrpId, 3+i, 288, 340); + } + for(i=0; i<5; i++) { + sprite_data = HuSprAnimReadFile(TITLE_LANGUAGE_EN_ANM+i); + sprite = HuSprCreate(sprite_data, 8+i, 0); + HuSprGrpMemberSet(bootGrpId, 8+i, sprite); + HuSprAttrSet(bootGrpId, 8+i, HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LINEAR); + HuSprPosSet(bootGrpId, 8+i, 288, 380); + } + #endif } -static BOOL TitleProc(void) +BOOL BootTitleExec(void) { float scale; float scale_time; int seNo[32]; + s16 pressStartMemberNo; + s16 languageMemberNo; s16 i; - Hu3DModelAttrReset(titleModel[0], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(titleModel[1], HU3D_ATTR_DISPOFF); - HuSprAttrReset(titleGroup, 0, HUSPR_ATTR_DISPOFF); - HuSprAttrReset(titleGroup, 1, HUSPR_ATTR_DISPOFF); + s16 choice; + float temp; + repeat: + Hu3DModelAttrReset(titleMdlId[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(titleMdlId[1], HU3D_ATTR_DISPOFF); + HuSprAttrReset(bootGrpId, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(bootGrpId, 1, HUSPR_ATTR_DISPOFF); OSReport(">>>>>>>>MSM_SE_SEL_01 %d\n", msmSeGetEntryID(2092, seNo)); OSReport(">>>>>>>>SE Num %d\n", msmSeGetNumPlay(0)); HuAudSStreamPlay(20); @@ -514,24 +610,128 @@ static BOOL TitleProc(void) while (WipeStatGet()) { HuPrcVSleep(); } - HuSprAttrReset(titleGroup, 3, HUSPR_ATTR_DISPOFF); + #if VERSION_NTSC + HuSprAttrReset(bootGrpId, 3, HUSPR_ATTR_DISPOFF); for (i = 1; i <= 50; i++) { scale = (cosd(i * 1.8) * 10.0) + 1.0; - HuSprScaleSet(titleGroup, 3, scale, scale); - HuSprTPLvlSet(titleGroup, 3, i / 50.0); + HuSprScaleSet(bootGrpId, 3, scale, scale); + HuSprTPLvlSet(bootGrpId, 3, i / 50.0); HuPrcVSleep(); } - HuSprAttrReset(titleGroup, 2, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(bootGrpId, 2, HUSPR_ATTR_DISPOFF); + #else + HuSprAttrReset(bootGrpId, 2, HUSPR_ATTR_DISPOFF); + for (i = 1; i <= 50; i++) { + scale = (cosd(i * 1.8) * 10.0) + 1.0; + HuSprScaleSet(bootGrpId, 2, scale, scale); + HuSprTPLvlSet(bootGrpId, 2, i / 50.0); + HuPrcVSleep(); + } + if(GwLanguage == -1) { + pressStartMemberNo = 3; + languageMemberNo = 8; + } else { + pressStartMemberNo = GwLanguage+3-1; + languageMemberNo = GwLanguage+8-1; + } + HuSprAttrReset(bootGrpId, pressStartMemberNo, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(bootGrpId, languageMemberNo, HUSPR_ATTR_DISPOFF); + for(i=1; i<=20; i++) { + scale = sind(i*4.5); + HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale); + HuSprScaleSet(bootGrpId, languageMemberNo, scale*0.7, scale*0.7); + HuPrcVSleep(); + } + choice = 0; + scale_time = 0; + #endif + + #if VERSION_NTSC for (i = scale_time = 0; i < 1800; i++) { + #else + for (i = temp = 0; i < 1800; i++) { + #endif + #if VERSION_PAL + if((choice == 0 && (HuPadDStkRep[0] & PAD_BUTTON_DOWN)) || (choice != 0 && (HuPadDStkRep[0] & PAD_BUTTON_UP))) { + HuAudFXPlay(0); + for(i=1; i<=10; i++) { + scale = ((1-(i/10.0))*(((cosd(scale_time)*0.1)+0.9)-0.7))+0.7; + if(choice == 0) { + HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale); + } else { + HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale); + } + scale = ((1-(i/10.0))*(((cosd(scale_time/3.0)*0.05)+0.65)-1.0))+1.0; + if(choice == 0) { + HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale); + } else { + HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale); + } + HuPrcVSleep(); + } + choice ^= 1; + scale_time = 0; + } + if (HuPadBtnDown[0] & (PAD_BUTTON_START|PAD_BUTTON_A)) { + if(choice == 0) { + s32 ret = HuAudFXPlay(2092); + if (ret < 0) { + OSReport(">>>>>Error %d\n", ret); + } + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF); + return 1; + } else { + HuAudFXPlay(1); + HuAudSStreamAllFadeOut(500); + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while (WipeStatGet()) { + HuPrcVSleep(); + } + Hu3DModelAttrSet(titleMdlId[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(titleMdlId[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(titleMdlId[2], HU3D_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF); + for(i=0; i<5; i++) { + HuSprAttrSet(bootGrpId, i+3, HUSPR_ATTR_DISPOFF); + } + for(i=0; i<5; i++) { + HuSprAttrSet(bootGrpId, i+8, HUSPR_ATTR_DISPOFF); + } + LanguageMenuExec(); + Hu3DModelCameraInfoSet(titleMdlId[2], 1); + Hu3DModelLightInfoSet(titleMdlId[2], 1); + HuWinInit(1); + goto repeat; + } + } + scale = (cosd(scale_time) * 0.1) + 0.9; + if(choice == 0) { + HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale); + } else { + HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale); + } + scale = (cosd(scale_time/3.0) * 0.05) + 0.65; + if(choice == 0) { + HuSprScaleSet(bootGrpId, languageMemberNo, scale, scale); + } else { + HuSprScaleSet(bootGrpId, pressStartMemberNo, scale, scale); + } + scale_time += 5; + HuPrcVSleep(); + #else if (i <= 10) { - HuSprTPLvlSet(titleGroup, 2, i / 10.0); + HuSprTPLvlSet(bootGrpId, 2, i / 10.0); } if (HuPadBtnDown[0] & PAD_BUTTON_START) { s32 ret = HuAudFXPlay(2092); if (ret < 0) { OSReport(">>>>>Error %d\n", ret); } - HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF); return 1; } scale = (sind(i * scale_time) * 0.1) + 0.9; @@ -539,20 +739,48 @@ static BOOL TitleProc(void) if (scale_time > 5) { scale_time = 5; } - HuSprScaleSet(titleGroup, 2, scale, scale); + HuSprScaleSet(bootGrpId, 2, scale, scale); HuPrcVSleep(); + #endif + } WipeColorSet(255, 255, 255); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); while (WipeStatGet()) { HuPrcVSleep(); } - Hu3DModelAttrSet(titleModel[0], HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(titleModel[1], HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(titleModel[2], HU3D_ATTR_DISPOFF); - HuSprAttrSet(titleGroup, 0, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(titleGroup, 1, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(titleGroup, 2, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(titleGroup, 3, HUSPR_ATTR_DISPOFF); + Hu3DModelAttrSet(titleMdlId[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(titleMdlId[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(titleMdlId[2], HU3D_ATTR_DISPOFF); + #if VERSION_NTSC + HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 3, HUSPR_ATTR_DISPOFF); + #else + HuSprAttrSet(bootGrpId, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 1, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(bootGrpId, 2, HUSPR_ATTR_DISPOFF); + for(i=0; i<5; i++) { + HuSprAttrSet(bootGrpId, i+3, HUSPR_ATTR_DISPOFF); + } + for(i=0; i<5; i++) { + HuSprAttrSet(bootGrpId, i+8, HUSPR_ATTR_DISPOFF); + } + #endif return 0; } + +#include "nintendoData.inc" + +void *NintendoDataDecode(void) +{ + u32 *src = (u32 *)nintendoData; + u32 size = *src++; + void *dst = HuMemDirectMalloc(HEAP_DATA, size); + int decode_type = *src++; + if(dst) { + HuDecodeData(src, dst, size, decode_type); + } + return dst; +} \ No newline at end of file diff --git a/src/REL/bootDll/nintendo_data.c b/src/REL/bootDll/nintendo_data.c deleted file mode 100644 index 5cb14723..00000000 --- a/src/REL/bootDll/nintendo_data.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "game/data.h" - -#include "logoNintendoData.inc" - -void *logoReadNintendo(void) -{ - u32 *src = (u32 *)logoNintendoData; - u32 size = *src++; - void *dst = HuMemDirectMalloc(HEAP_DATA, size); - int decode_type = *src++; - if(dst) { - HuDecodeData(src, dst, size, decode_type); - } - return dst; -} \ No newline at end of file From 19c4fb715799d5ae31fdad6909712d44b7ac522e Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Mon, 18 Nov 2024 09:01:11 -0600 Subject: [PATCH 157/311] Match Rest of Board RELs for PAL --- config/GMPP01_00/rels/w04Dll/splits.txt | 2 +- configure.py | 16 ++++++------- src/REL/w01Dll/mg_coin.c | 8 +++---- src/REL/w01Dll/mg_item.c | 8 +++---- src/REL/w02Dll/mg_coin.c | 6 ++--- src/REL/w02Dll/mg_item.c | 30 ++++++++++++------------- src/REL/w04Dll/mg_coin.c | 8 +++---- src/REL/w04Dll/mg_item.c | 8 +++---- src/REL/w05Dll/mg_item.c | 10 ++++----- 9 files changed, 48 insertions(+), 48 deletions(-) diff --git a/config/GMPP01_00/rels/w04Dll/splits.txt b/config/GMPP01_00/rels/w04Dll/splits.txt index d977e9ab..afc4b596 100644 --- a/config/GMPP01_00/rels/w04Dll/splits.txt +++ b/config/GMPP01_00/rels/w04Dll/splits.txt @@ -42,6 +42,6 @@ REL/w04Dll/mg_item.c: REL/w04Dll/mg_coin.c: .text start:0x0000C784 end:0x0000E9F0 - .rodata start:0x000003A0 end:0x00000428 + .rodata start:0x000003A0 end:0x0000042C .data start:0x00000588 end:0x0000063F .bss start:0x000002B0 end:0x00000328 diff --git a/configure.py b/configure.py index cd766eff..c7a4f2e5 100644 --- a/configure.py +++ b/configure.py @@ -1454,8 +1454,8 @@ config.libs = [ "w01Dll", # Toad's Midway Madness objects={ Object(Matching, "REL/w01Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w01Dll/mg_coin.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w01Dll/mg_item.c"), + Object(Matching, "REL/w01Dll/mg_coin.c"), + Object(Matching, "REL/w01Dll/mg_item.c"), }, ), Rel( @@ -1464,8 +1464,8 @@ config.libs = [ Object(Matching, "REL/w02Dll/main.c"), Object(Matching, "REL/w02Dll/gendice.c"), Object(Matching, "REL/w02Dll/gamble.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/mg_coin.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/mg_item.c"), + Object(Matching, "REL/w02Dll/mg_coin.c"), + Object(Matching, "REL/w02Dll/mg_item.c"), Object(Matching, "REL/w02Dll/shuffleboard.c"), Object(Matching, "REL/w02Dll/roulette.c"), }, @@ -1489,8 +1489,8 @@ config.libs = [ Object(Matching, "REL/w04Dll/bridge.c"), Object(Matching, "REL/w04Dll/boo_event.c"), Object(Matching, "REL/w04Dll/big_boo.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w04Dll/mg_item.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w04Dll/mg_coin.c"), + Object(Matching, "REL/w04Dll/mg_item.c"), + Object(Matching, "REL/w04Dll/mg_coin.c"), }, ), Rel( @@ -1500,8 +1500,8 @@ config.libs = [ Object(Matching, "REL/w05Dll/hotel.c"), Object(Matching, "REL/w05Dll/monkey.c"), Object(Matching, "REL/w05Dll/dolphin.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/mg_item.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/mg_coin.c"), + Object(Matching, "REL/w05Dll/mg_item.c"), + Object(Matching, "REL/w05Dll/mg_coin.c"), }, ), Rel( diff --git a/src/REL/w01Dll/mg_coin.c b/src/REL/w01Dll/mg_coin.c index 6a7c12b8..c24ee595 100755 --- a/src/REL/w01Dll/mg_coin.c +++ b/src/REL/w01Dll/mg_coin.c @@ -248,7 +248,7 @@ void fn_1_9DD8(void) } lbl_1_bss_72C = 0; lbl_1_bss_74C = 5; - lbl_1_bss_748 = 0x3C; + lbl_1_bss_748 = REFRESH_RATE; lbl_1_bss_72A = 0; fn_1_CEC4(); lbl_1_bss_788 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 17), NULL, 0); @@ -566,11 +566,11 @@ static void fn_1_B478(omObjData *arg0) u16 var_r29; temp_r31 = arg0->data; - if ((lbl_1_bss_748 -= 1) == 0) { - if ((lbl_1_bss_74C -= 1) >= 0) { + if ((--lbl_1_bss_748) == 0) { + if ((--lbl_1_bss_74C) >= 0) { MGSeqParamSet(lbl_1_bss_744, 1, lbl_1_bss_74C); } - lbl_1_bss_748 = 60; + lbl_1_bss_748 = REFRESH_RATE; } if (GWPlayerCfg[lbl_1_bss_798].iscom == 1) { fn_1_B1CC(arg0, &var_r29, &var_r27); diff --git a/src/REL/w01Dll/mg_item.c b/src/REL/w01Dll/mg_item.c index ab932863..99d31a68 100755 --- a/src/REL/w01Dll/mg_item.c +++ b/src/REL/w01Dll/mg_item.c @@ -342,7 +342,7 @@ static void fn_1_ECD4(omObjData *arg0) lbl_1_bss_7E8 = 4.0f; arg0->func = fn_1_EED8; lbl_1_bss_7D2 = 5; - lbl_1_bss_7D0 = 60; + lbl_1_bss_7D0 = REFRESH_RATE; lbl_1_bss_7D4 = MGSeqTimerCreateXY(lbl_1_bss_7D2, 288, 64); } BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], lbl_1_bss_7EC); @@ -368,11 +368,11 @@ static void fn_1_EED8(omObjData *arg0) fn_1_10CF0(arg0->work[2]); temp_r29 = GWPlayer[lbl_1_bss_7E4].port; - if ((lbl_1_bss_7D0 -= 1) == 0) { - if ((lbl_1_bss_7D2 -= 1) >= 0) { + if ((--lbl_1_bss_7D0) == 0) { + if ((--lbl_1_bss_7D2) >= 0) { MGSeqParamSet(lbl_1_bss_7D4, 1, lbl_1_bss_7D2); } - lbl_1_bss_7D0 = 60; + lbl_1_bss_7D0 = REFRESH_RATE; } if (GWPlayerCfg[lbl_1_bss_7E4].iscom == 1) { fn_1_EEA0(arg0, &var_r30); diff --git a/src/REL/w02Dll/mg_coin.c b/src/REL/w02Dll/mg_coin.c index d8678d53..054d750b 100644 --- a/src/REL/w02Dll/mg_coin.c +++ b/src/REL/w02Dll/mg_coin.c @@ -253,7 +253,7 @@ void fn_1_4378(omObjData *object) HuAudFXPlay(1067); object->work[0] &= ~temp_r28; temp_r31->unkC[temp_r30] = 0; - lbl_1_bss_A8->work[2] = 60; + lbl_1_bss_A8->work[2] = REFRESH_RATE; if (temp_r30 != 2) { lbl_1_bss_A8->func = fn_1_5290; } @@ -468,7 +468,7 @@ void fn_1_5290(omObjData *object) if (object->work[2] == 0) { temp_r31 = object->data; temp_r31->unk18 = 5; - temp_r31->unk1A = 60; + temp_r31->unk1A = REFRESH_RATE; temp_r31->unk1C = MGSeqTimerCreateXY(temp_r31->unk18, 288, 64); HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x13, 0x15)); temp_r31->unk1E = HuWinCreate(-10000, 400, sp8[0], sp8[1], 0); @@ -495,7 +495,7 @@ void fn_1_53B8(omObjData *object) temp_r31 = object->data; temp_r28 = GWPlayer[lbl_1_bss_86].port; if (--temp_r31->unk1A == 0) { - temp_r31->unk1A = 60; + temp_r31->unk1A = REFRESH_RATE; if (--temp_r31->unk18 >= 0) { MGSeqParamSet(temp_r31->unk1C, 1, temp_r31->unk18); } diff --git a/src/REL/w02Dll/mg_item.c b/src/REL/w02Dll/mg_item.c index 9429bc92..d51268e8 100644 --- a/src/REL/w02Dll/mg_item.c +++ b/src/REL/w02Dll/mg_item.c @@ -92,11 +92,11 @@ void fn_1_5D28(void) HuPrcVSleep(); } BoardPlayerIdleSet(lbl_1_bss_196); - HuPrcSleep(120); + HuPrcSleep(REFRESH_RATE*2); BoardAudSeqPause(0, 1, 1000); HuAudFXPlay(781); fn_1_8570(); - HuPrcSleep(60); + HuPrcSleep(REFRESH_RATE); lbl_1_bss_104 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_5F08); lbl_1_bss_108 = omAddObjEx(boardObjMan, 257, 0, 0, -1, fn_1_606C); lbl_1_bss_10C = omAddObjEx(boardObjMan, 257, 0, 0, -1, NULL); @@ -155,7 +155,7 @@ void fn_1_606C(omObjData *object) temp_r31->unk44[1].x += lbl_1_bss_110; BoardModelPosGet(lbl_1_bss_18A[1], &temp_r31->unk44[2]); BoardMusStart(1, 19, 127, 0); - object->work[0] = 300; + object->work[0] = REFRESH_RATE*5; object->work[1] = 0; object->func = fn_1_6248; } @@ -199,7 +199,7 @@ void fn_1_6248(omObjData *object) temp_r31->unk2A[1] = temp_r31->unk24[1]; sp28 = lbl_1_bss_160[0]; sp34 = lbl_1_bss_160[1]; - temp_f31 = 15; + temp_f31 = (VERSION_PAL) ? 13 : 15; break; case 1: @@ -207,13 +207,13 @@ void fn_1_6248(omObjData *object) temp_r31->unk2A[1] = temp_r31->unk24[2]; sp28 = lbl_1_bss_160[1]; sp34 = lbl_1_bss_160[2]; - temp_f31 = 15; + temp_f31 = (VERSION_PAL) ? 13 : 15; break; case 2: temp_r31->unk2A[0] = temp_r31->unk24[0]; temp_r31->unk2A[1] = temp_r31->unk24[2]; - temp_f31 = 22.5f; + temp_f31 = (VERSION_PAL) ? 19.5f : 22.5f; break; } temp_r31->unk68 = temp_r28; @@ -429,8 +429,8 @@ void fn_1_6EA8(void) sp20.y = sp2C.y = 0; VECSubtract(&sp20, &sp2C, &sp14); temp_f30 = VECMag(&sp14); - VECScale(&sp14, &sp14, 1.0f / 60.0f); - for (temp_r30 = 0; temp_r30 < 60; temp_r30++) { + VECScale(&sp14, &sp14, 1.0f / REFRESH_RATE); + for (temp_r30 = 0; temp_r30 < REFRESH_RATE; temp_r30++) { BoardModelPosGet(lbl_1_bss_184[temp_r31], &sp2C); VECAdd(&sp2C, &sp14, &sp2C); BoardModelPosSetV(lbl_1_bss_184[temp_r31], &sp2C); @@ -452,9 +452,9 @@ void fn_1_6EA8(void) BoardModelScaleGet(lbl_1_bss_184[temp_r31], &sp8); temp_f31 = sp8.x; temp_f29 = -0.04f; - temp_f30 = (sp20.y - sp2C.y) / 30.0f; + temp_f30 = (sp20.y - sp2C.y) / (REFRESH_RATE/2); temp_r29 = 0; - HuAudFXFadeOut(lbl_1_bss_D8, 499); + HuAudFXFadeOut(lbl_1_bss_D8, (VERSION_PAL) ? 416 : 500); while (!temp_r29) { sp2C.y += temp_f30; temp_f31 += temp_f29; @@ -476,7 +476,7 @@ void fn_1_6EA8(void) while (!BoardPlayerMotionEndCheck(lbl_1_bss_196)) { HuPrcVSleep(); } - HuPrcSleep(30); + HuPrcSleep(REFRESH_RATE/2); while (HuAudSStreamStatGet(temp_r28)) { HuPrcVSleep(); } @@ -505,7 +505,7 @@ void fn_1_732C(s32 arg0) void fn_1_7358(WorkMGItem *arg0) { if (--arg0->unk2 == 0) { - arg0->unk2 = 60; + arg0->unk2 = REFRESH_RATE; if (--arg0->unk0 >= 0) { MGSeqParamSet(arg0->unk4, 1, arg0->unk0); } @@ -520,7 +520,7 @@ void fn_1_73C8(omObjData *object) WorkMGItem *temp_r31; temp_r31 = object->data; temp_r31->unk0 = 5; - temp_r31->unk2 = 60; + temp_r31->unk2 = REFRESH_RATE; temp_r31->unk4 = MGSeqTimerCreateXY(temp_r31->unk0, 288, 64); HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(0x13, 0x1B)); temp_r31->unk6 = HuWinCreate(-10000, 368, sp8[0], sp8[1], 0); @@ -564,14 +564,14 @@ void fn_1_74E4(omObjData *object) else if (spC & PAD_BUTTON_LEFT) { if (temp_r31->unk8 != 0) { temp_r31->unk8--; - BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8 + 1], &lbl_1_bss_DC[temp_r31->unk8], 12); + BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8 + 1], &lbl_1_bss_DC[temp_r31->unk8], REFRESH_RATE/5); object->func = fn_1_7750; } } else if (spC & PAD_BUTTON_RIGHT) { if (temp_r31->unk8 != 2) { temp_r31->unk8++; - BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8 - 1], &lbl_1_bss_DC[temp_r31->unk8], 12); + BoardPlayerPosLerpStart(lbl_1_bss_196, &lbl_1_bss_DC[temp_r31->unk8 - 1], &lbl_1_bss_DC[temp_r31->unk8], REFRESH_RATE/5); object->func = fn_1_7750; } } diff --git a/src/REL/w04Dll/mg_coin.c b/src/REL/w04Dll/mg_coin.c index 11ce6a4e..72baaaff 100755 --- a/src/REL/w04Dll/mg_coin.c +++ b/src/REL/w04Dll/mg_coin.c @@ -273,7 +273,7 @@ static void fn_1_D2A4(omObjData *arg0) { sp8 = BoardModelRotYGet(lbl_1_bss_14[9]); BoardModelPosGet(lbl_1_bss_14[9], &spC); if (arg0->scale.x != 0.0f) { - arg0->scale.x -= 8.5f; + arg0->scale.x -= 510.0f/REFRESH_RATE; if (arg0->scale.x < 0.0f) { arg0->scale.x = 0.0f; } @@ -294,7 +294,7 @@ static void fn_1_D2A4(omObjData *arg0) { Hu3DMotionExec(BoardModelIDGet(lbl_1_bss_2F8), temp_r30->unk_08, temp_r30->unk_64, 0); } lbl_1_bss_31C->work[0] = 60; - lbl_1_bss_31C->unk10 = frandmod(40) + 10; + lbl_1_bss_31C->unk10 = frandmod((REFRESH_RATE*2)/3) + (REFRESH_RATE/6); lbl_1_bss_31C->work[1] = arg0->work[1]; lbl_1_bss_31C->func = fn_1_E18C; } @@ -304,7 +304,7 @@ static void fn_1_D554(omObjData *arg0) { float sp8; sp8 = BoardModelRotYGet(lbl_1_bss_14[9]); - arg0->scale.x += 8.5f; + arg0->scale.x += 510.0f/REFRESH_RATE; if (arg0->scale.x > 255.0f) { arg0->scale.x = 255.0f; } @@ -567,7 +567,7 @@ static void fn_1_E4C0(omObjData *arg0) { sp14.z = arg0->scale.z; sp20.x = arg0->trans.x; sp20.z = arg0->trans.z; - sp20.y = arg0->trans.y - arg0->rot.x * arg0->rot.x * 0.25f * 0.075f; + sp20.y = arg0->trans.y - arg0->rot.x * arg0->rot.x * 0.25f * ((VERSION_PAL) ? 0.1125f : 0.075f); arg0->rot.x += 1.0f; VECAdd(&sp2C, &sp20, &sp2C); sp8 = sp2C; diff --git a/src/REL/w04Dll/mg_item.c b/src/REL/w04Dll/mg_item.c index 6f22fb6b..fe8464a2 100755 --- a/src/REL/w04Dll/mg_item.c +++ b/src/REL/w04Dll/mg_item.c @@ -130,9 +130,9 @@ void fn_1_A1F0(void) { BoardAudSeqPause(0, 1, 1000); BoardModelMotionTimeSet(lbl_1_bss_14[6], 0.0f); BoardModelAttrReset(lbl_1_bss_14[6], 0x40000002); - HuPrcSleep(20); + HuPrcSleep((REFRESH_RATE+2)/3); HuAudFXPlay(0x469); - HuPrcSleep(50); + HuPrcSleep(((REFRESH_RATE*5)+3)/6); BoardMusStart(1, 0x1E, 0x7F, 0); HuAudFXPlay(0x46C); while (BoardModelMotionTimeGet(lbl_1_bss_14[6]) < 202.0f) { @@ -349,7 +349,7 @@ static void fn_1_A7E8(void) { } BoardModelHookSet(lbl_1_bss_14[6], lbl_1_data_51C[1], lbl_1_bss_298[temp_r29]); BoardModelAttrReset(lbl_1_bss_14[6], 0x40000002); - HuPrcSleep(30); + HuPrcSleep(REFRESH_RATE/2); HuAudFXPlay(0x310); while (BoardModelMotionTimeGet(lbl_1_bss_14[6]) < BoardModelMotionMaxTimeGet(lbl_1_bss_14[6])) { HuPrcVSleep(); @@ -471,7 +471,7 @@ static void fn_1_A7E8(void) { HuPrcVSleep(); } BoardModelRotYSet(lbl_1_bss_14[10], 0.0f); - HuPrcSleep(30); + HuPrcSleep(REFRESH_RATE/2); while (HuAudSStreamStatGet(sp8) != 0) { HuPrcVSleep(); } diff --git a/src/REL/w05Dll/mg_item.c b/src/REL/w05Dll/mg_item.c index 4a58d846..f0f6c031 100644 --- a/src/REL/w05Dll/mg_item.c +++ b/src/REL/w05Dll/mg_item.c @@ -80,7 +80,7 @@ void fn_1_6B7C(void) BoardModelAttrReset(lbl_1_bss_14[0], 0x40000002); BoardMusStart(1, 0x22, 0x7F, 0); BoardPlayerMotionShiftSet(lbl_1_bss_B6, lbl_1_bss_9E[0], 0.0f, 30.0f, HU3D_MOTATTR_LOOP); - HuPrcSleep(0x1E); + HuPrcSleep(REFRESH_RATE/2); BoardModelVisibilitySet(lbl_1_bss_A2, 1); BoardModelHookSet(BoardPlayerModelGet(lbl_1_bss_B6), "a-itemhook-r", lbl_1_bss_A2); Hu3DModelObjPosGet(BoardModelIDGet(*lbl_1_bss_14), "chara1", &sp10); @@ -353,7 +353,7 @@ void fn_1_799C(void) while (BoardPlayerMotionEndCheck(lbl_1_bss_B6) == 0) { HuPrcVSleep(); } - HuPrcSleep(0x1E); + HuPrcSleep(REFRESH_RATE/2); while (HuAudSStreamStatGet(temp_r27) != 0) { HuPrcVSleep(); @@ -605,10 +605,10 @@ void fn_1_896C(void) } } if ((temp_r30 & 0x80) != 0) { - HuPrcSleep(0x19); + HuPrcSleep(((REFRESH_RATE*5)+6)/12); } else { - HuPrcSleep(0xF); + HuPrcSleep((REFRESH_RATE+2)/4); } spC.x = spC.y = spC.z = 0.0f; @@ -706,7 +706,7 @@ void fn_1_896C(void) for (var_r31 = 0; var_r31 < 3; var_r31++) { BoardModelMotionStartEndSet(lbl_1_bss_AA[var_r31], 0x28, 0x46); } - HuPrcSleep(13); + HuPrcSleep((REFRESH_RATE*2)/9); var_f31 = -8.0f; while (1) { for (var_r28 = 0, var_r31 = 0; var_r31 < 3; var_r31++) { From 9e2c4f7e4a83af96c7b5428262a0c7ab1970113b Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Mon, 18 Nov 2024 09:05:32 -0600 Subject: [PATCH 158/311] Fix mg_item build in NTSC --- src/REL/w02Dll/mg_item.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/REL/w02Dll/mg_item.c b/src/REL/w02Dll/mg_item.c index d51268e8..e7b041b5 100644 --- a/src/REL/w02Dll/mg_item.c +++ b/src/REL/w02Dll/mg_item.c @@ -454,7 +454,7 @@ void fn_1_6EA8(void) temp_f29 = -0.04f; temp_f30 = (sp20.y - sp2C.y) / (REFRESH_RATE/2); temp_r29 = 0; - HuAudFXFadeOut(lbl_1_bss_D8, (VERSION_PAL) ? 416 : 500); + HuAudFXFadeOut(lbl_1_bss_D8, (((REFRESH_RATE*500)+30)/60)-1); while (!temp_r29) { sp2C.y += temp_f30; temp_f31 += temp_f29; From 8e91e6ecf6c5bfc4f53765c8c4c74e1b5c6dda51 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 19 Nov 2024 01:25:01 +0100 Subject: [PATCH 159/311] Matched m460Dll --- config/GMPE01_00/rels/m460Dll/symbols.txt | 334 +++---- configure.py | 8 +- include/REL/m460Dll.h | 64 ++ src/REL/m453Dll/main.c | 2 +- src/REL/m460Dll/main.c | 1015 +++++++++++++++++++++ src/REL/m460Dll/map.c | 547 +++++++++++ src/REL/m460Dll/player.c | 658 +++++++++++++ src/REL/m460Dll/score.c | 183 ++++ 8 files changed, 2639 insertions(+), 172 deletions(-) create mode 100644 include/REL/m460Dll.h create mode 100644 src/REL/m460Dll/main.c create mode 100644 src/REL/m460Dll/map.c create mode 100644 src/REL/m460Dll/player.c create mode 100644 src/REL/m460Dll/score.c diff --git a/config/GMPE01_00/rels/m460Dll/symbols.txt b/config/GMPE01_00/rels/m460Dll/symbols.txt index 0261cad3..bd1cca6f 100644 --- a/config/GMPE01_00/rels/m460Dll/symbols.txt +++ b/config/GMPE01_00/rels/m460Dll/symbols.txt @@ -86,167 +86,167 @@ fn_1_91E4 = .text:0x000091E4; // type:function size:0x8C fn_1_9270 = .text:0x00009270; // type:function size:0x164 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC data:4byte -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:4byte -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x50 -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x14 data:4byte -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x10 data:4byte -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x10 data:4byte -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x30 data:4byte -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x18 data:4byte -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x18 data:4byte -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x18 data:4byte -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:4byte -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x1 data:byte -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x1 data:byte -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0xC data:4byte -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x50 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x10 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x30 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x18 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x18 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x18 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 scope:local data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float @@ -259,9 +259,9 @@ lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 lbl_1_data_94 = .data:0x00000094; // type:object size:0xC lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC -lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x1 data:byte -lbl_1_data_BC = .data:0x000000BC; // type:object size:0x1A data:string -lbl_1_data_D6 = .data:0x000000D6; // type:object size:0x19 data:string +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x4 data:byte +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x1A scope:local data:string +lbl_1_data_D6 = .data:0x000000D6; // type:object size:0x19 scope:local data:string lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x20 lbl_1_data_110 = .data:0x00000110; // type:object size:0xA0 jumptable_1_data_1B0 = .data:0x000001B0; // type:object size:0x24 scope:local @@ -273,10 +273,10 @@ lbl_1_data_334 = .data:0x00000334; // type:object size:0xC lbl_1_data_340 = .data:0x00000340; // type:object size:0xC lbl_1_data_34C = .data:0x0000034C; // type:object size:0x8 lbl_1_data_354 = .data:0x00000354; // type:object size:0x8 -lbl_1_data_35C = .data:0x0000035C; // type:object size:0x7 data:string -lbl_1_data_363 = .data:0x00000363; // type:object size:0x7 data:string +lbl_1_data_35C = .data:0x0000035C; // type:object size:0x7 scope:local data:string +lbl_1_data_363 = .data:0x00000363; // type:object size:0x7 scope:local data:string lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC -lbl_1_data_378 = .data:0x00000378; // type:object size:0x8 data:byte +lbl_1_data_378 = .data:0x00000378; // type:object size:0x4 data:byte lbl_1_data_380 = .data:0x00000380; // type:object size:0xC lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index c7a4f2e5..3f14b329 100644 --- a/configure.py +++ b/configure.py @@ -1273,10 +1273,10 @@ config.libs = [ Rel( "m460Dll", # Doors of Doom objects={ - Object(NonMatching, "REL/m460Dll/main.c"), - Object(NonMatching, "REL/m460Dll/player.c"), - Object(NonMatching, "REL/m460Dll/map.c"), - Object(NonMatching, "REL/m460Dll/score.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m460Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m460Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m460Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m460Dll/score.c"), }, ), Rel( diff --git a/include/REL/m460Dll.h b/include/REL/m460Dll.h new file mode 100644 index 00000000..6f97310d --- /dev/null +++ b/include/REL/m460Dll.h @@ -0,0 +1,64 @@ +#ifndef M460DLL_H +#define M460DLL_H + +#include "game/object.h" + +typedef struct UnkM460DllStruct { + float unk_00; + float unk_04; + float unk_08; + float unk_0C; +} UnkM460DllStruct; + +typedef struct M460DllCameraStruct { + s32 unk_00; + s32 unk_04; + s32 unk_08; + u32 unk_0C; + float unk_10; + float unk_14; + float unk_18; + Vec unk_1C; + Vec unk_28; + float unk_34; + s32 unk_38; + s32 unk_3C; + float unk_40; + UnkM460DllStruct unk_44; + char unk54[0x30]; + float unk_84; + char unk88[0x4]; + float unk_8C; + float unk_90; + s32 unk_94; + char unk98[0xC]; +} M460DllCameraStruct; /* size = 0xA4 */ // same as M443DllCameraStruct // TODO does this have to be here? + +void fn_1_3E68(u32 arg0); +M460DllCameraStruct *fn_1_3E90(s32 arg0); +M460DllCameraStruct *fn_1_3F2C(s32 arg0); +u32 fn_1_414C(void); +u32 fn_1_4164(void); +s32 fn_1_419C(void); +void fn_1_41B4(s32 arg0, s32 arg1, s32 arg2); +void fn_1_41F4(s32 arg0); +void fn_1_4224(s32 arg0); +void fn_1_42BC(u32 arg0); +s32 fn_1_42F0(void); +void fn_1_4308(void); +s32 fn_1_4324(void); +void fn_1_433C(void); +s32 fn_1_4358(void); +u32 fn_1_4370(void); +float fn_1_47D0(float arg8, float arg9, float argA); + +void fn_1_49A0(Process *process); +void fn_1_4BE4(void); +void fn_1_67B4(Process *process); +void fn_1_6814(void); +void fn_1_8BA0(float arg8); +void fn_1_8CAC(Process *process, s16 arg1); +void fn_1_8F38(void); +void fn_1_8FAC(s32 arg0); + +#endif diff --git a/src/REL/m453Dll/main.c b/src/REL/m453Dll/main.c index 2c8f9116..f72224c2 100644 --- a/src/REL/m453Dll/main.c +++ b/src/REL/m453Dll/main.c @@ -87,7 +87,7 @@ typedef struct M453DllWork2 { M453DllUnkStruct unk_5C; u8 unk_9C; s32 unk_A0; -} M453DllWork2; /* size 0xA4 */ +} M453DllWork2; /* size 0xA4 */ // same as Unkm403Struct_01 void fn_1_440(omObjData *object); void fn_1_460(omObjData *object); diff --git a/src/REL/m460Dll/main.c b/src/REL/m460Dll/main.c new file mode 100644 index 00000000..73c153ea --- /dev/null +++ b/src/REL/m460Dll/main.c @@ -0,0 +1,1015 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/gamework.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m460Dll.h" + +#ifndef __MWERKS__ +#include "game/frand.h" +#endif + +typedef struct M460DllWork { + u32 unk_00; + s32 unk_04; + s32 unk_08; + u32 unk_0C; + s32 unk_10; + u32 unk_14; + u32 unk_18; + u32 unk_1C; + u32 unk_20; + u32 unk_24; + s32 unk_28; + u32 unk_2C; + s32 unk_30; + char unk34[0x4]; + u32 unk_38; + s32 unk_3C; + s32 unk_40; + s32 unk_44; + s32 unk_48; + s32 unk_4C; + u32 unk_50; + s32 unk_54[4]; + s32 unk_64[4]; + s32 unk_74; + s32 unk_78; + s32 unk_7C; + s32 unk_80; + char unk84[4]; + s32 unk_88; + u32 unk_8C; + u32 unk_90; + s32 unk_94; +} M460DllWork; /* size = 0x98 */ + +void fn_1_11EC(omObjData *object); +void fn_1_1548(omObjData *object); +void fn_1_197C(omObjData *object); +void fn_1_201C(omObjData *object); +omObjFunc fn_1_24F4(Process *arg1, omObjData *object); +void fn_1_2564(omObjData *object); +omObjFunc fn_1_2D64(Process *process, omObjData *object); +void fn_1_2D70(omObjData *object); +void fn_1_32CC(Process *process); +void fn_1_337C(omObjData *object); +void fn_1_35F0(omObjData *object); +void fn_1_3618(omObjData *object); +void fn_1_3BC0(ModelData *model, Mtx mtx); +M460DllCameraStruct *fn_1_3E90(s32 arg0); +M460DllCameraStruct *fn_1_3F2C(s32 arg0); +void fn_1_42BC(u32 arg0); +s32 fn_1_4358(void); +void fn_1_4C8(omObjData *object); +void fn_1_7FC(omObjData *object); +void fn_1_948(omObjData *object); +void fn_1_D7C(omObjData *object); + +Vec lbl_1_data_0 = { 100.0f, 800.0f, -100.0f }; +Vec lbl_1_data_C = { 0.3f, -0.8f, 0.3f }; +Vec lbl_1_data_18 = { 10.0f, 45.0f, 3500.0f }; +GXColor lbl_1_data_24 = { 0xFF, 0xFF, 0xFF, 0xFF }; +Vec lbl_1_data_28 = { 50.0f, 150000.0f, 50.0f }; +Vec lbl_1_data_34 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_40 = { 0.0f, 0.0f, 0.0f }; +Vec lbl_1_data_4C[3] = { + { 0.0f, 442.0f, -927.00006f }, + { 0.0f, 442.0f, -927.00006f }, + { 0.0f, 325.0f, -600.0f }, +}; +Vec lbl_1_data_70[3] = { + { 4.5f, 0.0f, 450.0f }, + { 4.5f, 0.0f, 450.0f }, + { 9.75f, 0.0f, 1275.0f }, +}; +float lbl_1_data_94[3] = { 70.0f, 70.0f, 41.5f }; +float lbl_1_data_A0[3] = { 0.0f, 0.016666668f, 0.0f }; +s32 lbl_1_data_AC[3] = { -0x3C, 0x3C, 0 }; +GXColor lbl_1_data_B8 = { 0, 0, 0, 0 }; + +Process *lbl_1_bss_30; +// M460DllWork2 +omObjData *lbl_1_bss_2C; +omObjData *lbl_1_bss_28; +// M460DllWork2 +omObjData *lbl_1_bss_24; +s16 lbl_1_bss_20; +s16 lbl_1_bss_1A[3]; +s16 lbl_1_bss_18; +s16 lbl_1_bss_16; +s16 lbl_1_bss_14; +s16 lbl_1_bss_12; +s16 lbl_1_bss_10; +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +s32 lbl_1_bss_0; + +void ObjectSetup(void) +{ + Mtx sp2C; + Process *var_r31; + LightData *var_r30; + + Vec sp20 = { 0.0f, 0.0f, 0.0f }; + Vec sp14 = { 0.0f, 0.0f, -1.0f }; + Vec sp8; + + lbl_1_bss_C = 0; + HuAudSndGrpSet(0x53); + HuAudFXListnerSetEX(&sp20, &sp14, 10000.0f, 566.6667f, 0.0f, 300.0f, 300.0f); + lbl_1_bss_8 = lbl_1_bss_4 = -1; + lbl_1_bss_20 = -1; + lbl_1_bss_0 = 1; + lbl_1_data_28.x = 200.0f; + lbl_1_data_28.y = 1200.0f; + lbl_1_data_28.z = 160.0f; + lbl_1_data_34.x = 0.0f; + lbl_1_data_34.y = 1.0f; + lbl_1_data_34.z = 0.0f; + lbl_1_data_40.x = 0.0f; + lbl_1_data_40.y = 0.0f; + lbl_1_data_40.z = 0.0f; + Hu3DShadowCreate(30.0f, 20.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); + lbl_1_bss_1A[0] = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24); + Hu3DGLightInfinitytSet(lbl_1_bss_1A[0]); + var_r30 = &Hu3DGlobalLight[lbl_1_bss_1A[0]]; + var_r30->unk_00 |= 0x8000; + lbl_1_data_18.x = 160.0f; + lbl_1_data_18.y = 0.0f; + lbl_1_data_18.z = 4200.0f; + sp8.x = sp8.z = 0.0f; + sp8.y = lbl_1_data_18.z; + mtxRot(sp2C, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); + PSMTXMultVec(sp2C, &sp8, &lbl_1_data_28); + Hu3DGLightPosAimSetV(lbl_1_bss_1A[0], &lbl_1_data_28, &lbl_1_data_40); + Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); + lbl_1_bss_18 = lbl_1_bss_16 = lbl_1_bss_14 = lbl_1_bss_12 = lbl_1_bss_10 = -1; + var_r31 = omInitObjMan(0x32, 0x2000); + lbl_1_bss_30 = var_r31; + omGameSysInit(var_r31); + fn_1_32CC(var_r31); + lbl_1_bss_2C = omAddObjEx(var_r31, 0xA, 0, 0, -1, fn_1_4C8); + fn_1_67B4(var_r31); + fn_1_49A0(var_r31); +} + +void fn_1_4C8(omObjData *var_r30) +{ + M460DllWork *var_r31; + + var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M460DllWork), MEMORY_DEFAULT_NUM); + var_r31 = var_r30->data; + memset(var_r31, 0, sizeof(M460DllWork)); + var_r31->unk_00 = 0; + var_r31->unk_04 = 0; + var_r31->unk_0C = 0; + var_r31->unk_10 = 0; + var_r31->unk_14 = 0; + var_r31->unk_18 = 0; + var_r31->unk_4C = 0; + var_r31->unk_50 = 0; + var_r31->unk_08 = 0; + var_r31->unk_88 = 0; + var_r31->unk_74 = var_r31->unk_78 = var_r31->unk_7C = var_r31->unk_80 = -1; + var_r31->unk_8C = 0; + var_r31->unk_94 = 0; + var_r31->unk_30 = 0; + var_r31->unk_30 = GWMGRecordGet(0xC); + var_r31->unk_28 = (var_r31->unk_30 >> 0x10) & 0xFF; + var_r31->unk_24 = (var_r31->unk_30 >> 0x18) & 0xFF; + var_r31->unk_30 = (u16)var_r31->unk_30; + fn_1_8CAC(lbl_1_bss_30, var_r31->unk_30); + var_r30->func = fn_1_948; +} + +void fn_1_5F0(omObjData *var_r29) +{ + Vec sp14; + Vec sp8; + M460DllCameraStruct *var_r31; + M460DllWork *var_r30; + + var_r30 = var_r29->data; + var_r30->unk_04++; + var_r30->unk_10++; + var_r30->unk_18++; + var_r30->unk_50++; + if ((omSysExitReq != 0) && (var_r30->unk_00 != 5)) { + var_r30->unk_00 = 4; + fn_1_7FC(var_r29); + } + var_r31 = fn_1_3F2C(1); + sp8.x = -(sind(var_r31->unk_28.y) * cosd(var_r31->unk_28.x)); + sp8.y = -(-sind(var_r31->unk_28.x)); + sp8.z = -(cosd(var_r31->unk_28.y) * cosd(var_r31->unk_28.x)); + sp14.x = var_r31->unk_1C.x - (sp8.x * var_r31->unk_34); + sp14.y = var_r31->unk_1C.y - (sp8.y * var_r31->unk_34); + sp14.z = var_r31->unk_1C.z - (sp8.z * var_r31->unk_34); + HuAudFXListnerUpdate(&sp14, &sp8); +} + +void fn_1_7FC(omObjData *object) +{ + M460DllWork *work = object->data; + + if (work->unk_08 == 0) { + switch (work->unk_00) { + case 0: + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x3C); + lbl_1_bss_0 = 1; + fn_1_8FAC(0); + work->unk_00 = 1; + work->unk_10 = 0; + object->func = fn_1_24F4(lbl_1_bss_30, object); + break; + case 1: + work->unk_00 = 2; + work->unk_18 = 0; + object->func = fn_1_1548; + break; + case 2: + work->unk_00 = 3; + work->unk_50 = 0; + object->func = fn_1_2D64(lbl_1_bss_30, object); + break; + case 3: + case 4: + work->unk_08 = 1; + work->unk_00 = 5; + object->func = fn_1_D7C; + break; + case 5: + default: + work->unk_00 = 5; + object->func = fn_1_11EC; + } + work->unk_04 = 0; + } +} + +void fn_1_948(omObjData *object) +{ + fn_1_5F0(object); + fn_1_7FC(object); +} + +void fn_1_D7C(omObjData *object) +{ + M460DllWork *work = object->data; + fn_1_5F0(object); + if (WipeStatGet() == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); + WipeColorSet(0xFF, 0xFF, 0xFF); + work->unk_08 = 0; + fn_1_7FC(object); + } +} + +void fn_1_11EC(omObjData *object) +{ + fn_1_5F0(object); + if (WipeStatGet() == 0) { + fn_1_4BE4(); + fn_1_6814(); + fn_1_8F38(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_1548(omObjData *object) +{ + M460DllWork *var_r28 = object->data; + fn_1_5F0(object); + switch (var_r28->unk_14) { + case 0: + var_r28->unk_1C = 0x3C; + var_r28->unk_20 = 0x3C; + lbl_1_bss_18 = MGSeqCreate(3, 0); + MGSeqPosSet(lbl_1_bss_18, 320.0f, 240.0f); + var_r28->unk_14 = 1; + var_r28->unk_18 = 0; + break; + case 1: + if ((lbl_1_bss_8 < 0) && ((MGSeqStatGet(lbl_1_bss_18) & 0x10) != 0)) { + lbl_1_bss_8 = HuAudSeqPlay(0x49); + } + if (MGSeqStatGet(lbl_1_bss_18) == 0) { + var_r28->unk_2C = 0; + var_r28->unk_44 = 0; + if (var_r28->unk_08 == 0) { + var_r28->unk_18 = 0; + object->func = fn_1_197C; + } + } + break; + } +} + +void fn_1_197C(omObjData *object) +{ + M460DllWork *var_r31 = object->data; + s32 var_r26 = 0; + s32 sp8 = 0; + fn_1_5F0(object); + switch (var_r31->unk_14) { + case 1: + if (WipeStatGet() == 0) { + var_r31->unk_38 = 3; + var_r31->unk_3C = 0; + var_r31->unk_40 = 0; + var_r31->unk_1C = 0x3C; + var_r31->unk_20 = 0x3C; + var_r31->unk_14 = 2; + var_r31->unk_18 = 0; + } + break; + case 2: + if (var_r31->unk_38 == 3) { + if ((--var_r31->unk_20) == 0) { + var_r31->unk_20 = 0x3C; + var_r31->unk_1C--; + if (var_r31->unk_1C == 0) { + var_r31->unk_44 = 1; + fn_1_42BC(frandmod(2)); + } + } + if ((lbl_1_bss_16 < 0) && (var_r31->unk_1C < 0xA)) { + lbl_1_bss_16 = MGSeqCreate(1, var_r31->unk_1C, -1, -1); + } + MGSeqParamSet(lbl_1_bss_16, 1, var_r31->unk_1C); + } + else { + if (lbl_1_bss_16 >= 0) { + MGSeqParamSet(lbl_1_bss_16, 2, -1); + lbl_1_bss_16 = -1; + } + if (frandmod(0x3E8) < 0x1F4) { + var_r31->unk_44 = 1; + } + if (var_r31->unk_2C >= 0x1E) { + var_r31->unk_44 = 1; + } + if (var_r31->unk_44 != 0) { + var_r31->unk_44 = 1; + var_r31->unk_88 = 1; + } + var_r31->unk_14 = 3; + var_r31->unk_18 = 0; + } + break; + case 3: + if (fn_1_4358() != 0) { + if (var_r31->unk_44 != 0) { + var_r26 = 1; + } + else if (var_r31->unk_18 > 60.0f) { + if (var_r31->unk_08 == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x1E); + WipeColorSet(0, 0, 0); + } + var_r31->unk_14 = 4; + var_r31->unk_18 = 0; + } + } + else { + var_r31->unk_18 = 0; + } + break; + case 4: + if (WipeStatGet() == 0) { + var_r31->unk_2C++; + if (var_r31->unk_08 == 0) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x1E); + } + var_r31->unk_14 = 1; + var_r31->unk_18 = 0; + } + break; + } + if (var_r26 != 0) { + lbl_1_bss_14 = MGSeqCreate(3, 1); + HuAudSeqFadeOut(lbl_1_bss_8, 0x64); + var_r31->unk_24++; + if (var_r31->unk_24 > 0xFF) { + var_r31->unk_24 = 0xFF; + } + if (var_r31->unk_2C > var_r31->unk_30) { + var_r31->unk_28 = var_r31->unk_24; + var_r31->unk_30 = var_r31->unk_2C; + var_r31->unk_48 = 1; + GWMGRecordSet(0xC, var_r31->unk_30); + } + mgRecordExtra = var_r31->unk_2C; + var_r31->unk_14 = 5; + var_r31->unk_18 = 0; + if (var_r31->unk_08 == 0) { + object->func = fn_1_201C; + } + } +} + +void fn_1_201C(omObjData *object) +{ + M460DllWork *var_r26 = object->data; + + if (lbl_1_bss_16 >= 0) { + MGSeqParamSet(lbl_1_bss_16, 2, -1); + lbl_1_bss_16 = -1; + } + fn_1_5F0(object); + if (MGSeqStatGet(lbl_1_bss_14) == 0) { + if (var_r26->unk_48 != 0) { + fn_1_8FAC(1); + lbl_1_bss_12 = MGSeqCreate(0xE, var_r26->unk_30); + var_r26->unk_48 = 0; + } + var_r26->unk_14 = 6; + var_r26->unk_18 = 0; + fn_1_7FC(object); + } +} + +omObjFunc fn_1_24F4(Process *process, omObjData *object) +{ + M460DllCameraStruct *var_r31; + + object->work[0] = object->work[1] = 0; + fn_1_3E68(1); + var_r31 = fn_1_3E90(1); + var_r31->unk_84 = 1.0f; + var_r31->unk_94 = 0; + return fn_1_2564; +} + +void fn_1_2564(omObjData *object) +{ + Vec sp20; + M460DllCameraStruct *var_r26; + M460DllWork *var_r25; + s32 var_r24; + float var_f31; + + var_r25 = object->data; + fn_1_5F0(object); + object->work[0]++; + var_f31 = lbl_1_data_AC[object->work[1]]; + var_r24 = 1; + if (var_f31 < 0.0f) { + var_r24 = 0; + var_f31 *= -1.0f; + } + var_f31 = object->work[0] / var_f31; + PSVECSubtract(&lbl_1_data_4C[object->work[1] + var_r24], &lbl_1_data_4C[object->work[1]], &sp20); + PSVECScale(&sp20, &sp20, var_f31); + PSVECAdd(&lbl_1_data_4C[object->work[1]], &sp20, &sp20); + Center.x = sp20.x; + Center.y = sp20.y; + Center.z = sp20.z; + PSVECSubtract(&lbl_1_data_70[object->work[1] + var_r24], &lbl_1_data_70[object->work[1]], &sp20); + PSVECScale(&sp20, &sp20, var_f31); + PSVECAdd(&lbl_1_data_70[object->work[1]], &sp20, &sp20); + CRot.x = sp20.x; + CRot.y = sp20.y; + CRot.z = 0.0f; + CZoom = sp20.z; + var_r26 = fn_1_3E90(1); + var_r26->unk_1C = Center; + var_r26->unk_28 = CRot; + var_r26->unk_34 = CZoom; + var_r26->unk_10 = lbl_1_data_94[object->work[1]] + (var_f31 * (lbl_1_data_94[object->work[1] + var_r24] - lbl_1_data_94[object->work[1]])); + if (var_f31 >= 1.0f) { + object->work[0] = 0; + object->work[1]++; + if (lbl_1_data_A0[object->work[1]] > 0.0f) { + fn_1_8BA0(lbl_1_data_A0[object->work[1]]); + } + if (lbl_1_data_AC[object->work[1]] == 0) { + var_r25->unk_0C = 2; + fn_1_7FC(object); + } + else if (lbl_1_data_AC[object->work[1] + 1] == 0) { + var_r25->unk_0C = 1; + } + } +} + +omObjFunc fn_1_2D64(Process *process, omObjData *object) +{ + return fn_1_2D70; +} + +void fn_1_2D70(omObjData *object) +{ + M460DllWork *var_r26 = object->data; + s32 var_r23 = 1; + fn_1_5F0(object); + if (lbl_1_bss_12 >= 0) { + if (MGSeqStatGet(lbl_1_bss_12) != 0) { + var_r23 = 0; + } + else { + lbl_1_bss_12 = -1; + } + } + if (var_r26->unk_8C != 1) { + var_r23 = 0; + } + if (var_r23 != 0) { + var_r26->unk_4C = 1; + if (lbl_1_bss_4 < 0) { + lbl_1_bss_4 = HuAudSStreamPlay(4); + } + if (var_r26->unk_50 >= 210.0f) { + var_r26->unk_4C = 2; + fn_1_7FC(object); + } + } + else { + var_r26->unk_50 = 0; + } +} + +void fn_1_32CC(Process *process) +{ + Hu3DCameraCreate(0x1F); + lbl_1_bss_28 = omAddObjEx(process, 0x7FDA, 0, 0, -1, omOutViewMulti); + lbl_1_bss_28->work[0] = 5; + lbl_1_bss_24 = omAddObjEx(process, 0xC, 1, 0, -1, fn_1_337C); + lbl_1_bss_24->work[0] = 0; +} + +void fn_1_337C(omObjData *object) +{ + UnkM460DllStruct sp1C[5] = { + { 320.0f, 240.0f, 640.0f, 480.0f }, + { 160.0f, 120.0f, 320.0f, 240.0f }, + { 160.0f, 360.0f, 320.0f, 240.0f }, + { 480.0f, 120.0f, 320.0f, 240.0f }, + { 480.0f, 360.0f, 320.0f, 240.0f }, + }; + s32 sp8[5] = { 1, 2, 4, 8, 16 }; + M460DllCameraStruct *var_r31; + s32 var_r29; + M460DllCameraStruct *var_r28; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 10 * sizeof(M460DllCameraStruct), MEMORY_DEFAULT_NUM); + var_r28 = object->data; + memset(var_r28, 0, 0x668); + object->model[0] = Hu3DHookFuncCreate(fn_1_3BC0); + Hu3DModelLayerSet(object->model[0], 0); + Hu3DModelCameraSet(object->model[0], 0x1E); + for (var_r31 = var_r28, var_r29 = 0; var_r29 < 5; var_r29++, var_r31++) { + var_r31->unk_00 = 0; + var_r31->unk_04 = var_r29 * 0x64; + var_r31->unk_10 = 41.5f; + var_r31->unk_14 = 100.0f; + var_r31->unk_18 = 5500.0f; + var_r31->unk_1C.x = 0.0f; + var_r31->unk_1C.y = 0.0f; + var_r31->unk_1C.z = 0.0f; + var_r31->unk_28.x = -15.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_34 = 1000.0f; + var_r31->unk_40 = 1.0f; + var_r31->unk_44.unk_00 = sp1C[var_r29].unk_00; + var_r31->unk_44.unk_04 = sp1C[var_r29].unk_04; + var_r31->unk_44.unk_08 = sp1C[var_r29].unk_08; + var_r31->unk_44.unk_0C = sp1C[var_r29].unk_0C; + var_r31->unk_3C = var_r31->unk_0C = sp8[var_r29]; + var_r31->unk_08 = var_r29; + var_r31->unk_38 = var_r29; + } + var_r31 = var_r28; + var_r31->unk_00 = 1; + object->work[1] = object->work[2] = 0; + object->work[0]++; + fn_1_3618(object); + object->func = fn_1_35F0; +} + +void fn_1_35F0(omObjData *object) +{ + fn_1_3618(object); +} + +void fn_1_3618(omObjData *var_r28) +{ + float var_f31; + M460DllCameraStruct *var_r31; + s32 var_r30; + s32 var_r29; + M460DllCameraStruct *var_r27; + u32 var_r26; + u32 var_r25; + s32 var_r24; + u32 var_r23; + u32 var_r22; + u32 var_r21; + + var_r27 = var_r28->data; + { + s32 sp40[4] = { 2, 4, 8, 16 }; + u32 sp30[4]; + s32 sp20[4]; + float sp10[4]; + float sp8[2]; + var_r24 = 0; + var_r26 = 0; + memcpy(&var_r27[5], var_r27, 5 * sizeof(M460DllCameraStruct)); + var_r28->work[1] = var_r28->work[2]; + switch (var_r28->work[1]) { + case 0: + break; + case 1: + var_r26 |= 1; + break; + case 2: + var_r26 |= 1; + case 3: + var_r24 = 1; + case 4: + var_r26 |= 0x1E; + break; + } + if (var_r24 != 0) { + Hu3DModelAttrReset(var_r28->model[0], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrSet(var_r28->model[0], HU3D_ATTR_DISPOFF); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + sp30[var_r30] = var_r27[var_r30 + 6].unk_04; + sp20[var_r30] = var_r30; + } + for (var_r30 = 0; var_r30 < 3; var_r30++) { + for (var_r29 = var_r30 + 1; var_r29 < 4; var_r29++) { + if ((var_r30 != var_r29) && (sp30[var_r30] > sp30[var_r29])) { + var_r25 = sp30[var_r30]; + sp30[var_r30] = sp30[var_r29]; + sp30[var_r29] = var_r25; + var_r25 = sp20[var_r30]; + sp20[var_r30] = sp20[var_r29]; + sp20[var_r29] = var_r25; + } + } + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r27[sp20[var_r30] + 6].unk_3C = sp40[var_r30]; + var_r27[sp20[var_r30] + 6].unk_38 = var_r30 + 1; + } + + for (var_r31 = &var_r27[5], var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if ((var_r31->unk_00 == 0) || ((var_r26 & var_r31->unk_0C) == 0)) { + Hu3DCamera[var_r31->unk_38].fov = -1.0f; + } + else { + var_f31 = 1.2f * ((var_r31->unk_44.unk_08 / 640.0f) / (var_r31->unk_44.unk_0C / 480.0f)); + sp10[2] = var_r31->unk_44.unk_08 * var_r31->unk_40; + sp10[3] = var_r31->unk_44.unk_0C * var_r31->unk_40; + Hu3DCameraPerspectiveSet(var_r31->unk_3C, var_r31->unk_10, var_r31->unk_14, var_r31->unk_18, var_f31); + Hu3DCameraViewportSet( + var_r31->unk_3C, var_r31->unk_44.unk_00 - (0.5f * sp10[2]), var_r31->unk_44.unk_04 - (0.5f * sp10[3]), sp10[2], sp10[3], 0.0f, 1.0f); + sp10[0] = var_r31->unk_44.unk_00 - (0.5f * sp10[2]); + sp10[1] = var_r31->unk_44.unk_04 - (0.5f * sp10[3]); + sp8[0] = var_r31->unk_44.unk_00 + (0.5f * sp10[2]); + sp8[1] = var_r31->unk_44.unk_04 + (0.5f * sp10[3]); + if (sp10[0] < 0.0f) { + sp10[0] = 0.0f; + } + if (sp10[1] < 0.0f) { + sp10[1] = 0.0f; + } + if (sp8[0] > 640.0f) { + sp8[0] = 640.0f; + } + if (sp8[1] > 480.0f) { + sp8[1] = 480.0f; + } + sp8[0] -= sp10[0]; + sp8[1] -= sp10[1]; + var_r21 = sp8[1]; + var_r22 = sp8[0]; + var_r23 = sp10[1]; + Hu3DCameraScissorSet(var_r31->unk_3C, sp10[0], var_r23, var_r22, var_r21); + var_r29 = var_r31->unk_38; + CenterM[var_r29].x = var_r31->unk_1C.x; + CenterM[var_r29].y = var_r31->unk_1C.y; + CenterM[var_r29].z = var_r31->unk_1C.z; + CRotM[var_r29].x = var_r31->unk_28.x; + CRotM[var_r29].y = var_r31->unk_28.y; + CRotM[var_r29].z = var_r31->unk_28.z; + CZoomM[var_r29] = var_r31->unk_34; + } + } + } +} + +void fn_1_3BC0(ModelData *model, Mtx mtx) +{ + Mtx sp3C; + Mtx spC; + float var_f31; + float var_f30; + float var_f29; + + DCStoreRange(&lbl_1_data_B8, 4); + C_MTXPerspective(spC, 41.5f, 1.2f, 100.0f, 5500.0f); + GXSetProjection(spC, GX_PERSPECTIVE); + PSMTXIdentity(sp3C); + GXLoadPosMtxImm(sp3C, 0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetTevColor(GX_TEVREG0, lbl_1_data_B8); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetBlendMode(GX_BM_NONE, GX_BL_ONE, GX_BL_ZERO, GX_LO_SET); + GXSetZMode(GX_TRUE, GX_ALWAYS, GX_TRUE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + var_f31 = 4125.0f; + var_f30 = 2750.0f; + var_f29 = 2530.0f; + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-var_f31, var_f30, -var_f29); + GXPosition3f32(var_f31, var_f30, -var_f29); + GXPosition3f32(var_f31, -var_f30, -var_f29); + GXPosition3f32(-var_f31, -var_f30, -var_f29); +} + +void fn_1_3E68(u32 arg0) +{ + lbl_1_bss_24->work[2] = arg0; +} + +u32 fn_1_3E7C(void) +{ + return lbl_1_bss_24->work[1]; +} + +M460DllCameraStruct *fn_1_3E90(s32 arg0) +{ + M460DllCameraStruct *var_r31; + s32 var_r30; + M460DllCameraStruct *var_r29; + + var_r29 = lbl_1_bss_24->data; + for (var_r31 = var_r29, var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if ((var_r31->unk_0C & arg0) != 0) { + break; + } + } + if (var_r30 >= 5) { + OSReport("M460:Camera Flag Error!!\n"); + return NULL; + } + return var_r31; +} + +M460DllCameraStruct *fn_1_3F2C(s32 arg0) +{ + M460DllCameraStruct *var_r31; + s32 var_r30; + M460DllCameraStruct *var_r29; + + var_r29 = lbl_1_bss_24->data; + for (var_r31 = &var_r29[5], var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if ((var_r31->unk_0C & arg0) != 0) { + break; + } + } + if (var_r30 >= 5) { + OSReport("M460:Camera Flag Error!!\n"); + return NULL; + } + return var_r31; +} + +M460DllCameraStruct *fn_1_3FC8(u32 arg0) +{ + M460DllCameraStruct *var_r31 = lbl_1_bss_24->data; + if (arg0 >= 5) { + OSReport("M460:Camera No. Error!!\n"); + return NULL; + } + return &var_r31[arg0]; +} + +M460DllCameraStruct *fn_1_4030(u32 arg0) +{ + M460DllCameraStruct *var_r31 = lbl_1_bss_24->data; + if (arg0 >= 5) { + OSReport("M460:Camera No. Error!!\n"); + return NULL; + } + return &var_r31[arg0 + 5]; +} + +void fn_1_409C(s32 arg0, s32 arg1) +{ + M460DllCameraStruct *var_r31; + s32 var_r30; + s32 var_r29; + M460DllCameraStruct *var_r28; + M460DllCameraStruct *var_r27; + + var_r29 = 0; + if (arg0 >= 0) { + var_r27 = lbl_1_bss_24->data; + var_r28 = &var_r27[5]; + for (var_r31 = var_r28, var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if ((var_r31->unk_0C & arg1) != 0) { + var_r29 |= var_r31->unk_3C; + } + } + Hu3DModelCameraSet(arg0, var_r29); + } +} + +s32 fn_1_4134(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_00; +} + +u32 fn_1_414C(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_0C; +} + +u32 fn_1_4164(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_14; +} + +s32 fn_1_417C(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_4C; +} + +s32 fn_1_4194(void) +{ + return 1; +} + +s32 fn_1_419C(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_88; +} + +void fn_1_41B4(s32 arg0, s32 arg1, s32 arg2) +{ + M460DllWork *var_r31 = lbl_1_bss_2C->data; + var_r31->unk_64[arg0 &= 3] = arg1; + var_r31->unk_54[arg0] = arg2; +} + +void fn_1_41F4(s32 arg0) +{ + ((M460DllWork *)lbl_1_bss_2C->data)->unk_8C |= (1 << ((arg0 & 7) * 4)); +} + +void fn_1_4224(s32 arg0) +{ + ((M460DllWork *)lbl_1_bss_2C->data)->unk_90 |= (1 << ((arg0 & 3) * 4)); +} + +void fn_1_4254(s32 arg0) +{ + ((M460DllWork *)lbl_1_bss_2C->data)->unk_94 |= (1 << ((arg0 & 3) * 4)); +} + +s32 fn_1_4284(void) +{ + return MGSeqStatGet(lbl_1_bss_14) == 0; +} + +void fn_1_42BC(u32 arg0) +{ + M460DllWork *var_r31 = lbl_1_bss_2C->data; + if (var_r31->unk_38 == 3) { + var_r31->unk_38 = arg0; + } +} + +s32 fn_1_42F0(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_38; +} + +void fn_1_4308(void) +{ + ((M460DllWork *)lbl_1_bss_2C->data)->unk_3C = 1; +} + +s32 fn_1_4324(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_3C; +} + +void fn_1_433C(void) +{ + ((M460DllWork *)lbl_1_bss_2C->data)->unk_40 = 1; +} + +s32 fn_1_4358(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_40; +} + +u32 fn_1_4370(void) +{ + return ((M460DllWork *)lbl_1_bss_2C->data)->unk_2C; +} + +void fn_1_4388(Vec *sp8, Vec *var_r31) +{ + Vec sp10; + float var_f30; + float var_f29; + + PSVECSubtract(var_r31, sp8, &sp10); + Center = *var_r31; + CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z))); + CRot.y = atan2d(-sp10.x, -sp10.z); + CRot.z = 0.0f; + CZoom = PSVECMag(&sp10); +} + +void fn_1_4590(float arg8, float arg9, float argA, float argB, float argC, float argD) +{ + Vec sp3C; + Vec sp30; + Vec sp24; + + sp3C.x = arg8; + sp3C.y = arg9; + sp3C.z = argA; + sp30.x = argB; + sp30.y = argC; + sp30.z = argD; + PSVECSubtract(&sp30, &sp3C, &sp24); + Center = sp30; + CRot.x = atan2d(sp24.y, sqrtf((sp24.x * sp24.x) + (sp24.z * sp24.z))); + CRot.y = atan2d(-sp24.x, -sp24.z); + CRot.z = 0.0f; + CZoom = PSVECMag(&sp24); +} + +float fn_1_47D0(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + float var_f29; + + var_f30 = fmod(arg9 - arg8, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + var_f29 = fmod(arg8 + (argA * var_f31), 360.0); + var_f31 = var_f29; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + return var_f31; +} + +float fn_1_48EC(float arg8, float arg9) +{ + float var_f31; + float var_f30; + + var_f30 = fmod(arg9 - arg8, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} diff --git a/src/REL/m460Dll/map.c b/src/REL/m460Dll/map.c new file mode 100644 index 00000000..c2fea221 --- /dev/null +++ b/src/REL/m460Dll/map.c @@ -0,0 +1,547 @@ +#include "datadir_enum.h" +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/object.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "string.h" + +#include "REL/m460Dll.h" + +#ifndef __MWERKS__ +#include "game/frand.h" +#endif + +typedef struct UnkM460MapWork { + s32 unk_00; + u32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + s32 unk_14; + s32 unk_18; + s32 unk_1C; + char unk20[4]; + u32 unk_24; + s32 unk_28; + s32 unk_2C; + u32 unk_30; + float unk_34; + float unk_38; + Vec unk_3C; + Vec unk_48; + HsfObject *unk_54; + u32 unk_58; + void *unk_5C; +} UnkM460MapWork; /* size = 0x60 */ + +void fn_1_6818(omObjData *object); +void fn_1_6C00(omObjData *object); +void fn_1_73F8(omObjData *object); +u32 fn_1_76C4(u32 arg0, u32 arg1); +void fn_1_7724(ModelData *model, Mtx mtx); +void fn_1_7790(ModelData *model, Mtx mtx); +void fn_1_7B94(s32 arg0); +void fn_1_7DA8(omObjData *object, Vec *arg1, u32 arg2); + +float lbl_1_data_1E8[8][8] = { + { 0.0f, 325.0f, -387.0f, -8.25f, 15.0f, 0.0f, 1208.0f, 38.65f }, + { 0.0f, 325.0f, -387.0f, -8.25f, -15.0f, 0.0f, 1208.0f, 38.65f }, + { 0.0f, 325.0f, -700.0f, -45.0f, 18.0f, 0.0f, 1500.0f, 41.5f }, + { 0.0f, 325.0f, -700.0f, -45.0f, 0.0f, 0.0f, 1500.0f, 41.5f }, + { 0.0f, 325.0f, -700.0f, -45.0f, -18.0f, 0.0f, 925.0f, 68.0f }, + { 0.0f, 302.0f, -783.0f, 14.25f, 28.5f, 0.0f, 833.0f, 61.0f }, + { 0.0f, 302.0f, -783.0f, 14.25f, 0.0f, 0.0f, 833.0f, 61.0f }, + { 0.0f, 302.0f, -783.0f, 14.25f, -28.5f, 0.0f, 833.0f, 61.0f }, +}; +float lbl_1_data_2E8[2][8] = { + { -250.0f, 200.0f, -1000.0f, -10.0f, 0.0f, 0.0f, 1200.0f, 41.5f }, + { 250.0f, 200.0f, -1000.0f, -10.0f, 0.0f, 0.0f, 1200.0f, 41.5f }, +}; +s32 lbl_1_data_328[3] = { DATA_MAKE_NUM(DATADIR_M460, 0x00), DATA_MAKE_NUM(DATADIR_M460, 0x01), DATA_MAKE_NUM(DATADIR_M460, 0x02) }; +s32 lbl_1_data_334[3] = { DATA_MAKE_NUM(DATADIR_M460, 0x03), DATA_MAKE_NUM(DATADIR_M460, 0x04), DATA_MAKE_NUM(DATADIR_M460, 0x05) }; +s32 lbl_1_data_340[3] = { DATA_MAKE_NUM(DATADIR_M460, 0x06), DATA_MAKE_NUM(DATADIR_M460, 0x07), DATA_MAKE_NUM(DATADIR_M460, 0x08) }; +s32 lbl_1_data_34C[2] = { DATA_MAKE_NUM(DATADIR_M460, 0x09), DATA_MAKE_NUM(DATADIR_M460, 0x0A) }; +s32 lbl_1_data_354[2] = { DATA_MAKE_NUM(DATADIR_M460, 0x0B), DATA_MAKE_NUM(DATADIR_M460, 0x0C) }; + +// UnkM460MapWork +omObjData *lbl_1_bss_48; + +void fn_1_67B4(Process *process) +{ + omObjData *var_r31 = omAddObjEx(process, 0x1E, 0x10, 0, -1, fn_1_6818); + lbl_1_bss_48 = var_r31; + var_r31->work[0] = 0; +} + +void fn_1_6814(void) { } + +void fn_1_6818(omObjData *object) +{ + s32 var_r31; + s32 var_r30; + UnkM460MapWork *var_r28; + HsfanimStruct01 *var_r27; + + var_r28 = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM460MapWork), MEMORY_DEFAULT_NUM); + memset(var_r28, 0, sizeof(UnkM460MapWork)); + omSetTra(object, 0.0f, 0.0f, 0.0f); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_r30 = Hu3DModelCreateFile(lbl_1_data_328[var_r31]); + object->model[var_r31] = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); + } + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_r30 = Hu3DModelCreateFile(lbl_1_data_334[var_r31]); + object->model[var_r31 + 3] = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); + } + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_r30 = Hu3DModelCreateFile(lbl_1_data_340[var_r31]); + object->model[var_r31 + 6] = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30 = Hu3DModelCreateFile(lbl_1_data_34C[var_r31]); + object->model[var_r31 + 9] = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30 = Hu3DModelCreateFile(lbl_1_data_354[var_r31]); + object->model[var_r31 + 0xB] = var_r30; + Hu3DModelLayerSet(var_r30, 3); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); + } + var_r28->unk_08 = 8; + fn_1_73F8(object); + var_r30 = Hu3DHookFuncCreate(fn_1_7724); + object->model[13] = var_r30; + Hu3DModelCameraSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 7); + var_r30 = Hu3DHookFuncCreate(fn_1_7790); + object->model[14] = var_r30; + Hu3DModelCameraSet(var_r30, 2); + Hu3DModelLayerSet(var_r30, 7); + var_r28->unk_58 = GXGetTexBufferSize(0x280, 0x1E0, 5, 0, 0); + var_r28->unk_5C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r28->unk_58, MEMORY_DEFAULT_NUM); + DCFlushRange(var_r28->unk_5C, var_r28->unk_58); + var_r30 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M460, 0x23)), 0x100); + object->model[15] = var_r30; + Hu3DModelLayerSet(var_r30, 4); + for (var_r27 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_48, var_r31 = 0; var_r31 < 0x100; var_r31++, var_r27++) { + var_r27->unk2C = 0.0f; + var_r27->unk40.a = 0; + var_r27->unk00 = 0; + } + DCStoreRange(((ParticleData *)Hu3DData[var_r30].unk_120)->unk_48, 0x4400); + var_r28->unk_28 = 1; + var_r28->unk_2C = -1; + object->func = fn_1_6C00; +} + +void fn_1_6C00(omObjData *object) +{ + Vec sp14; + Vec sp8; + float var_f31; + UnkM460MapWork *var_r31; + M460DllCameraStruct *var_r30; + M460DllCameraStruct *var_r28; + u32 var_r27; + s32 var_r26; + s32 var_r25; + + var_r31 = object->data; + var_r30 = fn_1_3E90(1); + var_r28 = fn_1_3E90(2); + switch (fn_1_4164()) { + case 1: + var_r31->unk_18 = 0; + var_r31->unk_1C = 0; + var_r31->unk_24 = 0; + if (var_r31->unk_00 != 0) { + fn_1_73F8(object); + var_r31->unk_00 = 0; + } + break; + case 3: + var_r27 = fn_1_42F0(); + Hu3DMotionSpeedSet(object->model[var_r27 + 9], 1.5f); + if (var_r31->unk_18 == 0) { + if (fn_1_4324() != 0) { + var_r31->unk_18 = 1; + if (var_r27 == 0) { + var_r31->unk_2C = object->model[var_r31->unk_14 + 3]; + var_r31->unk_54 = Hu3DModelObjPtrGet(var_r31->unk_2C, "door_l"); + } + else if (var_r27 == 1) { + var_r31->unk_2C = object->model[var_r31->unk_10 + 6]; + var_r31->unk_54 = Hu3DModelObjPtrGet(var_r31->unk_2C, "door_r"); + } + var_r31->unk_28 = 0; + var_r31->unk_30 = 0; + Hu3DModelAttrReset(object->model[var_r27 + 0xB], HU3D_ATTR_DISPOFF); + } + } + else if (var_r31->unk_28 != 0) { + fn_1_433C(); + var_r30->unk_10 -= 0.116666675f; + } + if (var_r31->unk_1C == 0) { + var_r31->unk_24++; + if (var_r31->unk_24 > 102.0f) { + var_r31->unk_1C = 1; + fn_1_8BA0(0.041666668f); + var_r30->unk_1C.x = lbl_1_data_2E8[var_r27][0]; + var_r30->unk_1C.y = lbl_1_data_2E8[var_r27][1]; + var_r30->unk_1C.z = lbl_1_data_2E8[var_r27][2]; + var_r30->unk_28.x = lbl_1_data_2E8[var_r27][3]; + var_r30->unk_28.y = lbl_1_data_2E8[var_r27][4]; + var_r30->unk_28.z = lbl_1_data_2E8[var_r27][5]; + var_r30->unk_34 = lbl_1_data_2E8[var_r27][6]; + var_r30->unk_10 = lbl_1_data_2E8[var_r27][7]; + } + } + break; + case 4: + var_r30->unk_10 -= 0.116666675f; + var_r31->unk_00 = 1; + break; + } + if ((var_r31->unk_28 == 0) && (var_r31->unk_2C >= 0)) { + if (var_r31->unk_30 == 0) { + var_r31->unk_34 = 0.0f; + var_r31->unk_38 = 0.0f; + var_r31->unk_3C.x = var_r31->unk_3C.y = var_r31->unk_3C.z = 0.0f; + var_r31->unk_48 = var_r31->unk_3C; + var_r31->unk_38 = 2.9166667f; + if (var_r31->unk_54) { + sp14.x = var_r31->unk_54->data.base.pos.x; + sp14.y = 10.0f + var_r31->unk_54->data.base.pos.y; + sp14.z = 20.0f + var_r31->unk_54->data.base.pos.z; + fn_1_7DA8(object, &sp14, 0); + } + HuAudFXPlay(0x818); + } + if (var_r31->unk_30 < 24.0f) { + var_r31->unk_38 *= 0.93f; + } + else { + var_f31 = 3.888889f; + var_r31->unk_38 = var_r31->unk_38 + (0.033333335f * var_f31); + if (var_r31->unk_38 > var_f31) { + var_r31->unk_38 = var_f31; + } + } + var_r26 = 0.5f + (0.2f * var_r31->unk_34); + var_r31->unk_34 = var_r31->unk_34 + var_r31->unk_38; + if (var_r31->unk_34 >= 350.0f) { + var_r31->unk_34 = 350.0f; + var_r31->unk_28 = 1; + HuAudFXPlay(0x819); + if (var_r31->unk_54) { + sp14.x = var_r31->unk_54->data.base.pos.x; + sp14.y = (var_r31->unk_54->data.base.pos.y + var_r31->unk_34) - 15.000001f; + sp14.z = 10.0f + var_r31->unk_54->data.base.pos.z; + fn_1_7DA8(object, &sp14, 2); + } + } + var_r25 = 0.5f + (0.2f * var_r31->unk_34); + if (var_r26 != var_r25) { + var_r31->unk_48.x = 100.0f * ((0.00003f * frandmod(0x3E8)) - 0.015f); + var_r31->unk_48.y = 100.0f * ((0.00006f * frandmod(0x3E8)) - 0.03f); + var_r31->unk_48.z = 100.0f * ((0.00006f * frandmod(0x3E8)) - 0.03f); + if (var_r31->unk_54) { + sp14.x = var_r31->unk_54->data.base.pos.x; + sp14.y = (var_r31->unk_54->data.base.pos.y + var_r31->unk_34) - 15.000001f; + sp14.z = 15.000001f + var_r31->unk_54->data.base.pos.z; + fn_1_7DA8(object, &sp14, 1); + } + } + PSVECSubtract(&var_r31->unk_48, &var_r31->unk_3C, &sp8); + PSVECScale(&sp8, &sp8, 0.4f); + PSVECAdd(&var_r31->unk_3C, &sp8, &sp14); + sp14.y += var_r31->unk_34; + Hu3DModelPosSetV(var_r31->unk_2C, &sp14); + var_r31->unk_30++; + } + fn_1_7B94(object->model[15]); + if (var_r28->unk_00 != 0) { + var_r28->unk_90 = var_r28->unk_90 + var_r28->unk_8C; + if (var_r28->unk_90 > 1.0f) { + var_r28->unk_00 = 0; + var_r28->unk_90 = 1.0f; + fn_1_3E68(1); + } + } +} + +Vec lbl_1_data_36C = { 0.0f, 0.0f, 0.0f }; +GXColor lbl_1_data_378 = { 0, 0, 0, 0x80 }; + +void fn_1_73F8(omObjData *object) +{ + UnkM460MapWork *var_r31; + M460DllCameraStruct *var_r29; + u32 var_r28; + + var_r31 = object->data; + Hu3DModelAttrSet(object->model[var_r31->unk_0C], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[var_r31->unk_10 + 6], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[var_r31->unk_14 + 3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[11], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[12], HU3D_ATTR_DISPOFF); + if (var_r31->unk_04 != 0) { + var_r31->unk_0C = fn_1_76C4(3, var_r31->unk_0C); + var_r31->unk_14 = fn_1_76C4(3, var_r31->unk_14); + var_r31->unk_10 = fn_1_76C4(3, var_r31->unk_10); + var_r29 = fn_1_3E90(1); + var_r28 = var_r31->unk_08 = fn_1_76C4(8, var_r31->unk_08); + var_r29->unk_1C.x = lbl_1_data_1E8[var_r28][0]; + var_r29->unk_1C.y = lbl_1_data_1E8[var_r28][1]; + var_r29->unk_1C.z = lbl_1_data_1E8[var_r28][2]; + var_r29->unk_28.x = lbl_1_data_1E8[var_r28][3]; + var_r29->unk_28.y = lbl_1_data_1E8[var_r28][4]; + var_r29->unk_28.z = lbl_1_data_1E8[var_r28][5]; + var_r29->unk_34 = lbl_1_data_1E8[var_r28][6]; + var_r29->unk_10 = lbl_1_data_1E8[var_r28][7]; + } + Hu3DMotionTimeSet(object->model[9], 0.0f); + Hu3DMotionSpeedSet(object->model[9], 0.0f); + Hu3DMotionTimeSet(object->model[10], 0.0f); + Hu3DMotionSpeedSet(object->model[10], 0.0f); + Hu3DModelAttrReset(object->model[var_r31->unk_0C], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[var_r31->unk_14 + 3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[var_r31->unk_10 + 6], HU3D_ATTR_DISPOFF); + Hu3DModelPosSetV(object->model[var_r31->unk_14 + 3], &lbl_1_data_36C); + Hu3DModelPosSetV(object->model[var_r31->unk_10 + 6], &lbl_1_data_36C); + var_r31->unk_04++; +} + +u32 fn_1_76C4(u32 arg0, u32 arg8) +{ + u32 var_r31 = frandmod(arg0); + if (var_r31 == arg8) { + var_r31++; + } + var_r31 %= arg0; + return var_r31; +} + +void fn_1_7724(ModelData *model, Mtx mtx) +{ + UnkM460MapWork *var_r31 = lbl_1_bss_48->data; + GXSetTexCopySrc(0, 0, 0x280, 0x1E0); + GXSetTexCopyDst(0x280, 0x1E0, GX_TF_RGB5A3, 0); + GXCopyTex(var_r31->unk_5C, 0); + GXPixModeSync(); +} + +void fn_1_7790(ModelData *model, Mtx mtx) +{ + Mtx sp5C; + Mtx sp2C; + GXTexObj spC; + float var_f31; + float var_f30; + float var_f29; + UnkM460MapWork *var_r31; + M460DllCameraStruct *var_r30; + + var_r31 = lbl_1_bss_48->data; + var_r30 = fn_1_3F2C(2); + lbl_1_data_378.a = 255.0f * var_r30->unk_90; + DCStoreRange(&lbl_1_data_378, 4); + C_MTXPerspective(sp2C, 41.5f, 1.2f, 100.0f, 5500.0f); + GXSetProjection(sp2C, GX_PERSPECTIVE); + PSMTXIdentity(sp5C); + GXLoadPosMtxImm(sp5C, 0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXInitTexObj(&spC, var_r31->unk_5C, 0x280, 0x1E0, 5, GX_CLAMP, GX_CLAMP, 0); + GXInitTexObjLOD(&spC, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1); + GXLoadTexObj(&spC, GX_TEXMAP0); + C_MTXLightPerspective(sp2C, 41.5f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + GXLoadTexMtxImm(sp2C, 0x1E, GX_MTX3x4); + GXSetNumTexGens(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x1E, 0, 0x7D); + GXSetNumTevStages(1); + GXSetTevColor(GX_TEVREG0, lbl_1_data_378); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_SET); + GXSetZMode(0, GX_LEQUAL, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + var_f31 = 4125.0f; + var_f30 = 2750.0f; + var_f29 = 2530.0f; + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-var_f31, var_f30, -var_f29); + GXPosition3f32(var_f31, var_f30, -var_f29); + GXPosition3f32(var_f31, -var_f30, -var_f29); + GXPosition3f32(-var_f31, -var_f30, -var_f29); +} + +void fn_1_7B94(s32 arg0) +{ + HsfanimStruct01 *var_r31; + ParticleData *var_r30; + s32 var_r29; + + var_r30 = Hu3DData[arg0].unk_120; + for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00_s16 != 0) { + PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + switch (var_r31->unk02) { + case 0: + var_r31->unk2C += 1.0f; + var_r31->unk20 *= 0.99f; + var_r31->unk08.y += 0.019444447f; + break; + case 1: + var_r31->unk2C += 2.0f; + var_r31->unk20 *= 0.98f; + break; + case 2: + var_r31->unk2C += 1.0f; + var_r31->unk20 *= 0.995f; + break; + } + if (var_r31->unk00_s16 < 12.0f) { + var_r31->unk20 = 0.9f * var_r31->unk20; + } + var_r31->unk40.a = var_r31->unk20; + if (--var_r31->unk00_s16 == 0) { + var_r31->unk00 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + } + } + DCStoreRange(var_r30->unk_48, var_r30->unk_30 * 0x44); +} + +void fn_1_7DA8(omObjData *object, Vec *arg1, u32 arg2) +{ + Vec sp1C; + float var_f31; + + HsfanimStruct01 *var_r31; + ParticleData *var_r30; + s32 var_r28; + u32 var_r27; + + GXColor spC = { 0xA2, 0x97, 0x7B, 0x80 }; + GXColor sp8 = { 0xE7, 0xDD, 0xC0, 0xFF }; + s32 sp10[3] = { 0x00000032, 4, 0x00000046 }; + + var_r30 = Hu3DData[object->model[15]].unk_120; + if (arg2 > 2) { + arg2 = 1; + } + var_r27 = sp10[arg2]; + for (var_r31 = var_r30->unk_48, var_r28 = 0; var_r28 < var_r30->unk_30; var_r28++, var_r31++) { + if (var_r31->unk00_s16 == 0) { + var_r31->unk02 = arg2; + sp1C.x = 100.0f * ((0.0026f * frandmod(0x3E8)) - 1.3f); + sp1C.y = 0.0f; + sp1C.z = 100.0f * ((0.000100000005f * frandmod(0x3E8)) - 0.05f); + PSVECAdd(&sp1C, arg1, &var_r31->unk34); + var_r31->unk30 = 0.0031415902f * frandmod(0x3E8); + switch (arg2) { + case 0: + var_r31->unk00_s16 = 60.0f * (0.8f + (0.0007f * frandmod(0x3E8))); + var_r31->unk08.x = 1.6666667f * (0.000100000005f * frandmod(0x3E8) - 0.05f); + var_r31->unk08.y = 1.6666667f * (0.05f + (0.00020000001f * frandmod(0x3E8))); + var_r31->unk08.z = 1.6666667f * (0.1f + (0.0006f * frandmod(0x3E8))); + var_f31 = 0.001f * frandmod(0x3E8); + var_r31->unk2C = 30.0f + (30.0f * var_f31); + var_r31->unk40.a = 40.0f + (40.0f * (1.0f - var_f31)); + var_r31->unk40.r = spC.r + (var_f31 * (sp8.r - spC.r)); + var_r31->unk40.g = spC.g + (var_f31 * (sp8.g - spC.g)); + var_r31->unk40.b = spC.b + (var_f31 * (sp8.b - spC.b)); + break; + case 1: + sp1C.x = 100.0f * (1.1f + (0.00020000001f * frandmod(0x3E8))); + sp1C.y = 100.0f * (0.2f + (0.0005f * frandmod(0x3E8))); + if (frandmod(0x3E8) < 0x1F4) { + sp1C.x *= -1.0f; + } + PSVECAdd(&sp1C, arg1, &var_r31->unk34); + var_r31->unk00 = 60.0f * (0.2f + (0.0005f * frandmod(0x3E8))); + var_r31->unk08.x = 1.6666667f * ((0.000100000005f * frandmod(0x3E8)) - 0.05f); + var_r31->unk08.y = -1.6666667f * (0.2f + (0.0003f * frandmod(0x3E8))); + var_r31->unk08.z = 1.6666667f * (0.05f + (0.000100000005f * frandmod(0x3E8))); + var_f31 = 0.001f * frandmod(0x3E8); + var_r31->unk2C = 20.0f + (30.0f * var_f31); + var_r31->unk40.a = 8.0f + (13.0f * (1.0f - var_f31)); + var_r31->unk40.r = spC.r + (var_f31 * (sp8.r - spC.r)); + var_r31->unk40.g = spC.g + (var_f31 * (sp8.g - spC.g)); + var_r31->unk40.b = spC.b + (var_f31 * (sp8.b - spC.b)); + break; + case 2: + var_r31->unk00 = 60.0f * (0.9f + (0.00080000004f * frandmod(0x3E8))); + var_r31->unk08.x = 1.6666667f * ((0.00020000001f * frandmod(0x3E8)) - 0.1f); + var_r31->unk08.y = -1.6666667f * (0.1f + (0.0007f * frandmod(0x3E8))); + var_r31->unk08.z = 1.6666667f * ((0.00020000001f * frandmod(0x3E8)) - 0.1f); + var_f31 = 0.001f * frandmod(0x3E8); + var_r31->unk2C = 40.0f + (60.0f * var_f31); + var_r31->unk40.a = 8.0f + (10.0f * (1.0f - var_f31)); + var_r31->unk40.r = spC.r + (var_f31 * (sp8.r - spC.r)); + var_r31->unk40.g = spC.g + (var_f31 * (sp8.g - spC.g)); + var_r31->unk40.b = spC.b + (var_f31 * (sp8.b - spC.b)); + break; + } + var_r31->unk20 = var_r31->unk40.a; + var_r27--; + if (var_r27 < 1) { + break; + } + } + } + + DCStoreRange(var_r30->unk_48, var_r30->unk_30 * sizeof(HsfanimStruct01)); +} + +void fn_1_8BA0(float arg8) +{ + M460DllCameraStruct *var_r31; + M460DllCameraStruct *var_r30; + + var_r30 = fn_1_3E90(1); + var_r31 = fn_1_3E90(2); + var_r31->unk_00 = 1; + var_r31->unk_1C = var_r30->unk_1C; + var_r31->unk_28 = var_r30->unk_28; + var_r31->unk_34 = var_r30->unk_34; + var_r31->unk_10 = var_r30->unk_10; + var_r31->unk_44 = var_r30->unk_44; + var_r31->unk_40 = var_r30->unk_40; + var_r31->unk_8C = arg8; + var_r31->unk_90 = 0.0f; + fn_1_3E68(2); +} + +s32 fn_1_8C78(void) +{ + M460DllCameraStruct *var_r31 = fn_1_3E90(2); + return var_r31->unk_00; +} diff --git a/src/REL/m460Dll/player.c b/src/REL/m460Dll/player.c new file mode 100644 index 00000000..740af4a2 --- /dev/null +++ b/src/REL/m460Dll/player.c @@ -0,0 +1,658 @@ +#include "datadir_enum.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/object.h" +#include "game/pad.h" +#include "string.h" + +#include "REL/m460Dll.h" + +#ifndef __MWERKS__ +#include "game/frand.h" +#endif + +typedef struct UnkData110Struct { + /* 0x00 */ u16 unk_00; + /* 0x04 */ float unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ u32 unk_10; +} UnkData110Struct; /* size = 0x14 */ + +typedef struct UnkM460DllPlayerWork { + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + u32 unk_14; + u32 unk_18; + float unk_1C; + float unk_20; + s32 unk_24; + s32 unk_28; + u16 unk_2C; + s32 unk_30; + char unk34[0x4]; + s16 unk_38; + char unk3A[6]; + s32 unk_40; + float unk_44; + float unk_48; + float unk_4C; + float unk_50; + float unk_54; + s32 unk_58; + float unk_5C; + Vec unk_60; + Vec unk_6C; + Vec unk_78; + s32 unk_84; +} UnkM460DllPlayerWork; /* size = 0x88 */ + +void fn_1_4C08(omObjData *object); +void fn_1_4F6C(omObjData *object); +void fn_1_5168(omObjData *object); +void fn_1_55EC(omObjData *object); +void fn_1_57D8(omObjData *object); +s32 fn_1_58C8(omObjData *object, float arg8, float arg9); +void fn_1_5A14(omObjData *object); +void fn_1_5C88(omObjData *object); +void fn_1_5CE0(omObjData *object, u32 arg1); +s32 fn_1_5E6C(omObjData *object); +void fn_1_60B0(omObjData *object); +void fn_1_61F4(omObjData *object); + +u32 lbl_1_data_F0[8] = { 0, 2, 3, 0x590015, 0x59000D, 0x17, 0x18, 0x1A }; +struct UnkData110Struct lbl_1_data_110[8] = { + { 0, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 1, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 2, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 3, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 4, 0.2f, 0.0f, -1.0f, 0 }, + { 5, 0.2f, 0.0f, -1.0f, 0 }, + { 6, 0.2f, 0.0f, -1.0f, 0 }, + { 7, 0.2f, 0.0f, -1.0f, 0x40000001 }, +}; + +omObjData *lbl_1_bss_40[1]; +omObjData *lbl_1_bss_3C; +s32 lbl_1_bss_38[1]; + +void fn_1_49A0(Process *process) +{ + u32 spC[1]; + u32 sp8[1]; + + s16 var_r31; + s16 var_r30; + u32 var_r29; + omObjData *var_r27; + + for (var_r31 = 0; var_r31 < 1; var_r31++) { + spC[var_r31] = GWPlayerCfg[var_r31].group; + sp8[var_r31] = var_r31; + } + for (var_r31 = 0; var_r31 < 0; var_r31++) { + for (var_r30 = var_r31 + 1; var_r30 < 1; var_r30++) { + if (spC[var_r31] > spC[var_r30]) { + var_r29 = spC[var_r31]; + spC[var_r31] = spC[var_r30]; + spC[var_r30] = var_r29; + var_r29 = sp8[var_r31]; + sp8[var_r31] = sp8[var_r30]; + sp8[var_r30] = var_r29; + } + } + } + for (var_r31 = 0; var_r31 < 1; var_r31++) { + lbl_1_bss_38[sp8[var_r31]] = var_r31; + } + omMakeGroupEx(process, 0, 1); + omGetGroupMemberListEx(process, 0); + for (var_r31 = 0; var_r31 < 1; var_r31++) { + var_r27 = lbl_1_bss_40[var_r31] = omAddObjEx(process, 0x28, 1, 8, 0, fn_1_4C08); + var_r27->work[0] = var_r31; + } + lbl_1_bss_3C = omAddObjEx(process, 0x28, 1, 5, -1, fn_1_60B0); +} + +void fn_1_4BE4(void) +{ + CharModelKill(-1); +} + +void fn_1_4C08(omObjData *object) +{ + UnkM460DllPlayerWork *var_r31; + s32 var_r29; + + float sp8[4] = { 0.25f, 0.5f, 0.75f, 1.0f }; + Vec sp18[4] = { + { 0.0f, 0.0f, 300.0f }, + { -450.0f, 0.0f, -50.0f }, + { 0.0f, 0.0f, -350.0f }, + { 450.0f, 0.0f, -50.0f }, + }; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM460DllPlayerWork), MEMORY_DEFAULT_NUM); + var_r31 = object->data; + memset(var_r31, 0, sizeof(UnkM460DllPlayerWork)); + object->stat |= 0x100; + var_r31->unk_00 = GWPlayerCfg[object->work[0]].character; + var_r31->unk_08 = lbl_1_bss_38[object->work[0]]; + fn_1_41B4(object->work[0], var_r31->unk_08, var_r31->unk_00); + var_r31->unk_54 = sp8[GWPlayerCfg[object->work[0]].diff & 3]; + var_r31->unk_24 = GWPlayerCfg[object->work[0]].iscom; + object->model[0] = CharModelCreate(var_r31->unk_00, 2); + Hu3DModelLayerSet(object->model[0], 1); + CharModelLayerSetAll(2); + Hu3DModelShadowSet(object->model[0]); + for (var_r29 = 0; var_r29 < 8; var_r29++) { + if (lbl_1_data_F0[var_r29] < 0x10000) { + object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_00, lbl_1_data_F0[var_r29]); + } + else { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], var_r31->unk_00 + lbl_1_data_F0[var_r29]); + } + } + CharModelMotionDataClose(var_r31->unk_00); + CharModelEffectNpcInitSilent(object->model[0], object->motion[3], 1); + object->trans.x = var_r31->unk_60.x = sp18[var_r31->unk_08].x; + object->trans.y = var_r31->unk_60.y = sp18[var_r31->unk_08].y; + object->trans.z = var_r31->unk_60.z = sp18[var_r31->unk_08].z; + var_r31->unk_44 = var_r31->unk_48 = 0.0f; + var_r31->unk_4C = 0.0f; + var_r31->unk_50 = 0.02f; + var_r31->unk_5C = 50.0f; + var_r31->unk_58 = 0; + var_r31->unk_2C = 0; + var_r31->unk_04 = -1; + fn_1_5CE0(object, 0); + var_r31->unk_84 = -1; + object->func = fn_1_4F6C; +} + +void fn_1_4F6C(omObjData *object) +{ + UnkM460DllPlayerWork *var_r31; + s32 var_r29; + + var_r31 = object->data; + var_r31->unk_14 = var_r31->unk_18 = 0; + var_r31->unk_0C = var_r31->unk_10 = 0; + var_r31->unk_1C = 0.0f; + var_r31->unk_20 = 0.0f; + switch (var_r31->unk_2C) { + case 0: + var_r31->unk_44 = var_r31->unk_48 = 180.0f; + var_r31->unk_60.x = 0.0f; + var_r31->unk_60.y = 0.0f; + var_r31->unk_60.z = -450.0f; + fn_1_5CE0(object, 7); + var_r31->unk_2C = 1; + var_r31->unk_30 = 0; + break; + case 1: + if (fn_1_414C() == 1) { + var_r31->unk_60.x = 0.0f; + var_r31->unk_60.y = 0.0f; + var_r31->unk_60.z = -100.0f; + var_r31->unk_78.x = 0.0f; + var_r31->unk_78.y = 0.0f; + var_r31->unk_78.z = -450.0f; + var_r31->unk_2C = 2; + var_r31->unk_30 = 0; + } + break; + case 2: + var_r29 = fn_1_58C8(object, 0.5f, 20.0f); + fn_1_5A14(object); + if (var_r29 != 0) { + var_r31->unk_2C = 3; + var_r31->unk_30 = 0; + } + break; + } + PSVECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); + fn_1_57D8(object); + if (fn_1_414C() == 2) { + var_r31->unk_2C = 0; + object->func = fn_1_5168; + } +} + +void fn_1_5168(omObjData *object) +{ + UnkM460DllPlayerWork *var_r31; + s32 var_r29; + u32 var_r28; + s32 var_r27; + + var_r31 = object->data; + var_r27 = 0; + { + Vec sp20[2] = { + { -250.0f, 0.0f, -900.0f }, + { 250.0f, 0.0f, -900.0f }, + }; + + Vec sp8[2] = { + { -250.0f, 0.0f, -1400.0f }, + { 250.0f, 0.0f, -1400.0f }, + }; + var_r31->unk_14 = var_r31->unk_18 = 0; + var_r31->unk_0C = var_r31->unk_10 = 0; + var_r31->unk_1C = 0.0f; + var_r31->unk_20 = 0.0f; + if (fn_1_4164() == 2) { + if (var_r31->unk_24 != 0) { + fn_1_5C88(object); + } + else { + if (HuPadTrigL[GWPlayerCfg[object->work[0]].pad_idx] > 0x28) { + var_r31->unk_14 = 1; + } + if (HuPadTrigR[GWPlayerCfg[object->work[0]].pad_idx] > 0x28) { + var_r31->unk_18 = 1; + } + } + } + switch (var_r31->unk_2C) { + case 0: + if (fn_1_4370() != 0) { + var_r31->unk_60.x = -140.0f; + var_r31->unk_60.y = 0.0f; + var_r31->unk_60.z = -150.0f; + } + var_r31->unk_78.x = 0.0f; + var_r31->unk_78.y = 0.0f; + var_r31->unk_78.z = -450.0f; + var_r31->unk_40 = 3; + var_r31->unk_2C = 4; + case 4: + var_r29 = fn_1_58C8(object, 0.5f, 20.0f); + fn_1_5A14(object); + if ((var_r29 != 0) && (fn_1_4164() == 2)) { + var_r31->unk_48 = 180.0f; + var_r31->unk_6C.x = var_r31->unk_6C.y = var_r31->unk_6C.z = 0.0f; + var_r31->unk_2C = 5; + } + break; + case 5: + var_r29 = 0; + fn_1_5A14(object); + if (CharModelMotionShiftIDGet(var_r31->unk_00) < 0) { + var_r29 = 1; + } + var_r28 = fn_1_42F0(); + if (var_r28 == 3) { + if (var_r29 != 0) { + if (var_r31->unk_14 != 0) { + var_r28 = 0; + } + else if (var_r31->unk_18 != 0) { + var_r28 = 1; + } + if (var_r28 != 3) { + fn_1_42BC(var_r28); + } + } + } + else { + var_r31->unk_40 = var_r28; + var_r31->unk_78 = sp20[var_r31->unk_40]; + var_r31->unk_2C = 6; + } + break; + case 6: + var_r29 = fn_1_58C8(object, 1.0f, 20.0f); + fn_1_5A14(object); + if (var_r29 != 0) { + fn_1_4308(); + var_r31->unk_48 = 180.0f; + var_r31->unk_6C.x = var_r31->unk_6C.y = var_r31->unk_6C.z = 0.0f; + var_r31->unk_2C = 7; + } + break; + case 7: + fn_1_5A14(object); + if (fn_1_4358() != 0) { + if (fn_1_419C() == 0) { + var_r31->unk_78 = sp8[var_r31->unk_40]; + var_r31->unk_2C = 8; + } + else { + var_r27 = 1; + } + } + break; + case 8: + var_r29 = fn_1_58C8(object, 0.5f, 20.0f); + fn_1_5A14(object); + + default: + if (fn_1_4164() == 1) { + var_r31->unk_2C = 0; + } + var_r27 = 1; + break; + } + } + PSVECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); + fn_1_57D8(object); + if ((fn_1_4164() == 5) && (var_r27 != 0)) { + var_r31->unk_2C = 0; + object->func = fn_1_55EC; + } +} + +void fn_1_55EC(omObjData *object) +{ + Vec sp8; + UnkM460DllPlayerWork *var_r31; + s32 var_r29; + + var_r31 = object->data; + var_r29 = 0; + switch (var_r31->unk_2C) { + case 0: + fn_1_41F4(object->work[0]); + fn_1_5CE0(object, 4); + sp8 = var_r31->unk_60; + sp8.y += 160.0f; + var_r31->unk_2C = 9; + break; + case 9: + if (fn_1_5E6C(object) != 0) { + var_r31->unk_78.x = 0.0f; + var_r31->unk_78.y = 0.0f; + var_r31->unk_78.z = 500.0f; + fn_1_4224(object->work[0]); + HuAudCharVoicePlay(var_r31->unk_00, 0x128); + var_r31->unk_28 = 1; + var_r31->unk_2C = 0xA; + } + break; + case 10: + var_r29 = fn_1_58C8(object, 1.0f, 20.0f); + fn_1_5A14(object); + if (var_r29 != 0) { + var_r31->unk_6C.x = var_r31->unk_6C.y = var_r31->unk_6C.z = 0.0f; + var_r31->unk_2C = 0xB; + } + break; + case 11: + fn_1_5CE0(object, 0); + break; + } + PSVECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); + fn_1_57D8(object); + if (var_r31->unk_84 >= 0) { + sp8 = var_r31->unk_60; + sp8.y += 160.0f; + HuAudFXEmiterUpDate(var_r31->unk_84, &sp8); + } +} + +void fn_1_57D8(omObjData *object) +{ + UnkM460DllPlayerWork *var_r31 = object->data; + var_r31->unk_38++; + var_r31->unk_30++; + object->trans.x = var_r31->unk_60.x; + object->trans.y = var_r31->unk_60.y; + object->trans.z = var_r31->unk_60.z; + var_r31->unk_4C = var_r31->unk_4C + var_r31->unk_50; + if (var_r31->unk_4C > 0.45f) { + var_r31->unk_4C = 0.45f; + } + var_r31->unk_44 = fn_1_47D0(var_r31->unk_44, var_r31->unk_48, var_r31->unk_4C); + object->rot.y = var_r31->unk_44; + Hu3DModelPosSetV(object->model[0], &var_r31->unk_60); + Hu3DModelRotSet(object->model[0], 0.0f, var_r31->unk_44, 0.0f); +} + +s32 fn_1_58C8(omObjData *object, float arg8, float arg9) +{ + Vec spC; + float var_f31; + UnkM460DllPlayerWork *var_r31; + s32 var_r30; + + var_r31 = object->data; + var_r30 = 0; + PSVECSubtract(&var_r31->unk_78, &var_r31->unk_60, &spC); + spC.y = 0.0f; + var_f31 = PSVECMag(&spC); + if (var_f31 < arg9) { + var_f31 = 0.0f; + var_r30 = 1; + } + else { + if (PSVECMag(&spC) >= 100.0f) { + var_f31 = 100.0f; + } + var_f31 = 0.2f + (0.008f * var_f31); + } + var_r31->unk_1C = atan2d(spC.x, spC.z); + var_r31->unk_20 = var_f31; + if (var_r31->unk_20 > arg8) { + var_r31->unk_20 = arg8; + } + return var_r30; +} + +void fn_1_5A14(omObjData *object) +{ + float var_f31; + float var_f30; + + UnkM460DllPlayerWork *var_r31 = object->data; + if (var_r31->unk_20 > 0.0f) { + var_r31->unk_48 = var_r31->unk_1C; + } + if (var_r31->unk_20 > 0.05f) { + // 1 / REFRESH_RATE? + var_r31->unk_6C.x = 0.01666666753590107 * (550.0 * (var_r31->unk_20 * sind(var_r31->unk_1C))); + var_r31->unk_6C.z = 0.01666666753590107 * (550.0 * (var_r31->unk_20 * cosd(var_r31->unk_1C))); + if (var_r31->unk_28 != 0) { + var_r31->unk_6C.x *= 1.5f; + var_r31->unk_6C.z *= 1.5f; + } + var_r31->unk_4C = 0.2f; + var_r31->unk_50 = 0.0f; + if (CharModelMotionShiftIDGet(var_r31->unk_00) < 0) { + var_f31 = 0.5f; + if (var_r31->unk_04 == 2) { + var_f31 = 0.45f; + } + if (var_r31->unk_20 > var_f31) { + if (var_r31->unk_28 != 0) { + fn_1_5CE0(object, 3); + } + else { + fn_1_5CE0(object, 2); + } + var_f30 = var_r31->unk_20; + } + else { + fn_1_5CE0(object, 1); + var_f30 = var_r31->unk_20 / var_f31; + } + CharModelMotionSpeedSet(var_r31->unk_00, var_f30); + } + } + else { + var_r31->unk_6C.x = var_r31->unk_6C.y = var_r31->unk_6C.z = 0.0f; + if (CharModelMotionShiftIDGet(var_r31->unk_00) < 0) { + fn_1_5CE0(object, 0); + } + } +} + +void fn_1_5C88(omObjData *object) +{ + UnkM460DllPlayerWork *var_r31 = object->data; + if (frandmod(0x3E8) < 0x1F4) { + var_r31->unk_14 = 1; + return; + } + var_r31->unk_18 = 1; +} + +void fn_1_5CE0(omObjData *object, u32 arg1) +{ + UnkM460DllPlayerWork *var_r30 = object->data; + if ((var_r30->unk_04 != arg1) && (arg1 < 8)) { + float var_f31 = 60.0f * lbl_1_data_110[arg1].unk_04; + if (var_r30->unk_04 < 0) { + var_f31 = 0.0f; + } + var_r30->unk_04 = arg1; + CharModelMotionShiftSet( + var_r30->unk_00, object->motion[lbl_1_data_110[arg1].unk_00], 60.0f * lbl_1_data_110[arg1].unk_08, var_f31, lbl_1_data_110[arg1].unk_10); + if (lbl_1_data_110[arg1].unk_0C >= 0.0f) { + Hu3DMotionShiftStartEndSet(object->model[0], 60.0f * lbl_1_data_110[arg1].unk_08, 60.0f * lbl_1_data_110[arg1].unk_0C); + } + } +} + +s32 fn_1_5E6C(omObjData *object) +{ + M460DllCameraStruct *var_r31 = object->data; + s32 var_r30 = 0; + if ((CharModelMotionEndCheck(var_r31->unk_00) != 0) && (CharModelMotionShiftIDGet(var_r31->unk_00) < 0)) { + var_r30 = 1; + } + return var_r30; +} + +s32 fn_1_5EE0(omObjData *object, u32 arg1) +{ + s32 var_r27 = 0; + if (fn_1_5E6C(object)) { + fn_1_5CE0(object, arg1); + var_r27 = 1; + } + return var_r27; +} + +s32 lbl_1_data_1D4[5] = { + DATA_MAKE_NUM(DATADIR_M460, 0x1E), + DATA_MAKE_NUM(DATADIR_M460, 0x1F), + DATA_MAKE_NUM(DATADIR_M460, 0x20), + DATA_MAKE_NUM(DATADIR_M460, 0x21), + DATA_MAKE_NUM(DATADIR_M460, 0x22), +}; + +void fn_1_60B0(omObjData *object) +{ + s32 var_r30; + s32 var_r29; + + omSetTra(object, 0.0f, 0.0f, 0.0f); + var_r30 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M460, 0x1D)); + object->model[0] = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelShadowSet(var_r30); + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); + for (var_r29 = 0; var_r29 < 5; var_r29++) { + object->motion[var_r29] = Hu3DJointMotionFile(var_r30, lbl_1_data_1D4[var_r29]); + } + CharModelEffectNpcInitSilent(var_r30, object->motion[1], 0); + CharModelEffectNpcInitSilent(var_r30, object->motion[2], 1); + CharModelEffectNpcInitSilent(var_r30, object->motion[3], 1); + object->work[1] = 0; + object->func = fn_1_61F4; +} + +void fn_1_61F4(omObjData *object) +{ + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r29; + + Vec sp1C[2] = { + { -250.0f, 0.0f, -2200.0f }, + { 250.0f, 0.0f, -2200.0f }, + }; + Vec sp10; + s32 sp8[2] = { 6, 21 }; + switch (object->work[1]) { + case 0: + if ((fn_1_4164() == 3) && (fn_1_419C() != 0) && (fn_1_4324() != 0)) { + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 0.0f, HU3D_MOTATTR_LOOP); + var_r30 = fn_1_42F0(); + object->trans.x = sp1C[var_r30].x; + object->trans.y = sp1C[var_r30].y; + object->trans.z = sp1C[var_r30].z; + object->rot.y = 0.0f; + object->work[1] = 1; + object->work[2] = 0; + } + break; + case 1: + object->work[2]++; + if (object->work[2] > 18.0f) { + Hu3DMotionShiftSet(object->model[0], object->motion[2], 0.0f, 30.0f, HU3D_MOTATTR_LOOP); + object->work[1] = 2; + } + break; + case 2: + sp10.x = (*lbl_1_bss_40)->trans.x - object->trans.x; + sp10.y = 0.0f; + sp10.z = (*lbl_1_bss_40)->trans.z - object->trans.z; + object->rot.y = fn_1_47D0(object->rot.y, atan2d(sp10.x, sp10.z), 0.1f); + object->trans.z += 6.666667f; + if (fn_1_4358() != 0) { + HuAudFXPlay(0x3C); + Hu3DMotionShiftSet(object->model[0], object->motion[3], 0.0f, 30.0f, HU3D_MOTATTR_LOOP); + object->work[1] = 3; + object->work[3] = 0x3C; + } + break; + case 3: + Hu3DMotionSpeedSet(object->model[0], 0.9f); + var_r29 = Hu3DMotionTimeGet(object->model[0]); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + if (var_r29 == sp8[var_r30]) { + var_f30 = 2.1166666f * object->work[3]; + HuAudFXPlayVol(0x6B, var_f30); + } + } + sp10.x = (*lbl_1_bss_40)->trans.x - object->trans.x; + sp10.y = 0.0f; + sp10.z = (*lbl_1_bss_40)->trans.z - object->trans.z; + object->rot.y = fn_1_47D0(object->rot.y, atan2d(sp10.x, sp10.z), 0.1f); + if (object->trans.z < -900.0f) { + // depending on refresh rate? + object->trans.z += 11.666667f; + } + else { + var_f31 = PSVECMag(&sp10); + if (var_f31 < 20.0f) { + var_f31 = 0.0f; + } + else { + if (PSVECMag(&sp10) >= 100.0f) { + var_f31 = 100.0f; + } + var_f31 = 0.2f + (0.008f * var_f31); + var_f31 *= 11.666667f; + } + object->trans.x = object->trans.x + (var_f31 * sind(object->rot.y)); + object->trans.z = object->trans.z + (var_f31 * cosd(object->rot.y)); + } + if ((object->trans.z > 450.0f) && (object->work[3] != 0)) { + object->work[3]--; + } + break; + } +} diff --git a/src/REL/m460Dll/score.c b/src/REL/m460Dll/score.c new file mode 100644 index 00000000..357c2d8c --- /dev/null +++ b/src/REL/m460Dll/score.c @@ -0,0 +1,183 @@ +#include "datadir_enum.h" +#include "game/data.h" + +#include "REL/m460Dll.h" +#include "game/memory.h" + +#include "game/esprite.h" +#ifndef __MWERKS__ +#endif + +typedef struct UnkM460DllScoreWork { + s32 unk_00; + s32 unk_04; + s16 unk_08; + s16 unk_0A; + s16 unk_0C[6]; + s32 unk_18; + float unk_1C; +} UnkM460DllScoreWork; /* size = 0x20 */ + +typedef void (*UnkM460DllScoreFunc)(void); + +void fn_1_9020(s32 arg0); +void fn_1_9050(omObjData *object); +void fn_1_916C(void); +void fn_1_91E4(void); +void fn_1_9270(void); + +UnkM460DllScoreFunc lbl_1_data_380[3] = { fn_1_916C, fn_1_91E4, fn_1_9270 }; + +Process *lbl_1_bss_54; +omObjData *lbl_1_bss_50; +// ? lbl_1_rodata_3D0; + +void fn_1_8CAC(Process *process, s16 arg1) +{ + UnkM460DllScoreWork *var_r31; + u32 var_r30; + + lbl_1_bss_54 = process; + lbl_1_bss_50 = omAddObjEx(lbl_1_bss_54, 0x800, 0, 0, 7, fn_1_9050); + lbl_1_bss_50->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(UnkM460DllScoreWork), MEMORY_DEFAULT_NUM); + var_r31 = lbl_1_bss_50->data; + var_r31->unk_08 = arg1; + var_r31->unk_0A = 0; + var_r31->unk_0C[4] = espEntry(0x590024, 2, 0); + espColorSet(var_r31->unk_0C[4], 0, 0, 0); + espTPLvlSet(var_r31->unk_0C[4], 0.5f); + espPosSet(var_r31->unk_0C[4], 508.0f, 64.0f); + var_r31->unk_0C[5] = espEntry(0x610037, 1, 0); + espPosSet(var_r31->unk_0C[5], 490.0f, 56.0f); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r31->unk_0C[var_r30] = espEntry(0x610030, 0, 0); + espPosSet(var_r31->unk_0C[var_r30], (var_r30 * 0x10) + 0x1FE, 56.0f); + espDispOff(var_r31->unk_0C[var_r30]); + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r31->unk_0C[var_r30 + 2] = espEntry(0x610031, 1, 0); + espPosSet(var_r31->unk_0C[var_r30 + 2], (var_r30 * 0x10) + 0x1FE, 74.0f); + } + for (var_r30 = 0; var_r30 < 6; var_r30++) { + espDispOff(var_r31->unk_0C[var_r30]); + } + HuDataDirClose(DATA_MAKE_NUM(DATADIR_MGCONST, 0)); + fn_1_9020(0); +} + +void fn_1_8F38(void) +{ + s32 var_r31; + UnkM460DllScoreWork *var_r30 = lbl_1_bss_50->data; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + espKill(var_r30->unk_0C[var_r31]); + } + HuMemDirectFree(lbl_1_bss_50->data); +} + +void fn_1_8FAC(s32 arg0) +{ + s32 sp8; + s32 var_r3; + + switch (arg0) { + case 0: + fn_1_9020(1); + break; + case 1: + fn_1_9020(2); + break; + } +} + +void fn_1_8FFC(void) +{ + fn_1_9020(0); +} + +void fn_1_9020(s32 arg0) +{ + UnkM460DllScoreWork *var_r31; + + var_r31 = lbl_1_bss_50->data; + var_r31->unk_00 = arg0; + var_r31->unk_04 = 0; +} + +void fn_1_9050(omObjData *arg0) +{ + UnkM460DllScoreWork *var_r31; + s16 var_r30; + + var_r31 = lbl_1_bss_50->data; + lbl_1_data_380[var_r31->unk_00](); + var_r30 = var_r31->unk_08; + espBankSet(var_r31->unk_0C[0], var_r30 / 10); + var_r30 -= (var_r30 / 10) * 10; + espBankSet(var_r31->unk_0C[1], var_r30); + var_r30 = var_r31->unk_0A; + espBankSet(var_r31->unk_0C[2], var_r30 / 10); + var_r30 -= (var_r30 / 10) * 10; + espBankSet(var_r31->unk_0C[3], var_r30); +} + +void fn_1_916C(void) +{ + UnkM460DllScoreWork *var_r31; + s32 var_r30; + + var_r31 = lbl_1_bss_50->data; + if (var_r31->unk_04 == 0) { + for (var_r30 = 0; var_r30 < 6; var_r30++) { + espDispOff(var_r31->unk_0C[var_r30]); + } + var_r31->unk_04++; + } +} + +void fn_1_91E4(void) +{ + UnkM460DllScoreWork *var_r31; + s16 var_r30; + + var_r31 = lbl_1_bss_50->data; + if (var_r31->unk_04 == 0) { + for (var_r30 = 0; var_r30 < 6; var_r30++) { + espDispOn(var_r31->unk_0C[var_r30]); + } + var_r31->unk_04++; + } + var_r31->unk_0A = fn_1_4370(); +} + +void fn_1_9270(void) +{ + UnkM460DllScoreWork *var_r31; + s32 var_r30; + + var_r31 = lbl_1_bss_50->data; + if (var_r31->unk_04 == 0) { + var_r31->unk_18 = 0; + var_r31->unk_1C = 1.0f; + if (var_r31->unk_0A > var_r31->unk_08) { + var_r31->unk_08 = var_r31->unk_0A; + } + var_r31->unk_04++; + } + if (var_r31->unk_18 == 0) { + if ((var_r31->unk_1C += 0.02f) >= 1.2f) { + var_r31->unk_1C = 1.2f; + var_r31->unk_18 = 1; + } + } + else { + if ((var_r31->unk_1C -= 0.04f) <= 1.0f) { + var_r31->unk_1C = 1.0f; + var_r31->unk_18 = 0; + } + } + for (var_r30 = 0; var_r30 <= 1; var_r30++) { + espScaleSet(var_r31->unk_0C[var_r30], var_r31->unk_1C, var_r31->unk_1C); + } + espScaleSet(var_r31->unk_0C[5], var_r31->unk_1C, var_r31->unk_1C); +} From faacc236bfefdaa46c1194c6b4954a86ae802fae Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 19 Nov 2024 02:57:22 +0100 Subject: [PATCH 160/311] Imported some runtime libraries --- configure.py | 6 +- include/Runtime.PPCEABI.H/__va_arg.h | 40 ++ include/dol2asm.h | 90 +++ include/dolphin/os.h | 10 +- src/Runtime.PPCEABI.H/GCN_Mem_Alloc.c | 30 + src/Runtime.PPCEABI.H/__mem.c | 91 +++ src/Runtime.PPCEABI.H/__va_arg.c | 50 ++ src/Runtime.PPCEABI.H/runtime.c | 827 ++++++++++++++++++++++++++ 8 files changed, 1139 insertions(+), 5 deletions(-) create mode 100644 include/Runtime.PPCEABI.H/__va_arg.h create mode 100644 include/dol2asm.h create mode 100644 src/Runtime.PPCEABI.H/GCN_Mem_Alloc.c create mode 100644 src/Runtime.PPCEABI.H/__mem.c create mode 100644 src/Runtime.PPCEABI.H/__va_arg.c create mode 100644 src/Runtime.PPCEABI.H/runtime.c diff --git a/configure.py b/configure.py index 3f14b329..608ebd22 100644 --- a/configure.py +++ b/configure.py @@ -631,13 +631,13 @@ config.libs = [ "cflags": cflags_runtime, "host": False, "objects": [ - Object(NonMatching, "Runtime.PPCEABI.H/__va_arg.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/__va_arg.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/global_destructor_chain.c"), - Object(NonMatching, "Runtime.PPCEABI.H/__mem.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/__mem.c"), Object(NonMatching, "Runtime.PPCEABI.H/New.cp"), Object(NonMatching, "Runtime.PPCEABI.H/NewMore.cp"), Object(NonMatching, "Runtime.PPCEABI.H/NMWException.cp"), - Object(NonMatching, "Runtime.PPCEABI.H/runtime.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/runtime.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/__init_cpp_exceptions.cpp"), Object(NonMatching, "Runtime.PPCEABI.H/Gecko_ExceptionPPC.cp"), Object(NonMatching, "Runtime.PPCEABI.H/GCN_mem_alloc.c"), diff --git a/include/Runtime.PPCEABI.H/__va_arg.h b/include/Runtime.PPCEABI.H/__va_arg.h new file mode 100644 index 00000000..22975640 --- /dev/null +++ b/include/Runtime.PPCEABI.H/__va_arg.h @@ -0,0 +1,40 @@ +#ifndef __VA_ARG_H +#define __VA_ARG_H + +#include "dolphin/types.h" + +typedef struct __va_list_struct { + char gpr; + char fpr; + char reserved[2]; + char* input_arg_area; + char* reg_save_area; +} _va_list_struct; + +typedef _va_list_struct __va_list[1]; + +#ifdef __cplusplus +extern "C" void* __va_arg(_va_list_struct*, int); +#else +void* __va_arg(_va_list_struct*, int); +#endif + +#ifndef __MWERKS__ +#define __builtin_va_info(...) +#define _var_arg_typeof(...) +#endif + +// from defined-string in mwcceppc.exe: +// __builtin_va_info: initialize the __va_list_struct +// _var_arg_typeof: convert type to integer for __va_arg +#define __va_start(list, fmt) __builtin_va_info(&list) +#define __va_arg(list, type) (*((type*)__va_arg(list, _var_arg_typeof(type)))) +#define va_start __va_start +#define va_arg __va_arg +#define va_end __va_end +#define va_list __va_list +#define __va_end(list) ((void)0) + +#define __va_copy(a, b) (*(a) = *(b)) + +#endif /* __VA_ARG_H */ diff --git a/include/dol2asm.h b/include/dol2asm.h new file mode 100644 index 00000000..3b28a774 --- /dev/null +++ b/include/dol2asm.h @@ -0,0 +1,90 @@ +#ifndef DOL2ASM +#define DOL2ASM + +// this helps remove useless error from the linter when using vscode. +#ifdef __MWERKS__ + +#ifdef __cplusplus +#define SECTION_INIT extern "C" __declspec(section ".init") +#define SECTION_RODATA __declspec(section ".rodata") +#define SECTION_DATA __declspec(section ".data") +#define SECTION_SDATA __declspec(section ".sdata") +#define SECTION_SDATA2 __declspec(section ".sdata2") +#define SECTION_BSS __declspec(section ".data") +#define SECTION_SBSS __declspec(section ".sdata") +#define SECTION_SBSS2 __declspec(section ".sdata2") +#define SECTION_CTORS extern "C" __declspec(section ".ctors") +#define SECTION_DTORS extern "C" __declspec(section ".dtors") +#define SECTION_EXTAB extern "C" __declspec(section "extab_") +#define SECTION_EXTABINDEX extern "C" __declspec(section "extabindex_") +#define SECTION_DEAD extern "C" __declspec(section ".dead") +#define SECTION_CTORS10 __declspec(section ".ctors$10") +#define SECTION_CTORS15 __declspec(section ".ctors$15") +#define SECTION_DTORS10 __declspec(section ".dtors$10") +#define SECTION_DTORS15 __declspec(section ".dtors$15") +#define COMPILER_STRIP_GATE(NAME, VALUE) SECTION_DEAD void* const cg_##NAME = (void*)(VALUE) +#define REGISTER_CTORS(ADDR, FUNCTION) SECTION_CTORS void* const _ctors_##ADDR = (void*)(FUNCTION); +#else +#define SECTION_INIT __declspec(section ".init") +#define SECTION_RODATA __declspec(section ".rodata") +#define SECTION_DATA __declspec(section ".data") +#define SECTION_SDATA __declspec(section ".sdata") +#define SECTION_SDATA2 __declspec(section ".sdata2") +#define SECTION_BSS __declspec(section ".data") +#define SECTION_SBSS __declspec(section ".sdata") +#define SECTION_SBSS2 __declspec(section ".sdata2") +#define SECTION_CTORS __declspec(section ".ctors") +#define SECTION_DTORS __declspec(section ".dtors") +#define SECTION_EXTAB __declspec(section "extab_") +#define SECTION_EXTABINDEX __declspec(section "extabindex_") +#define SECTION_DEAD __declspec(section ".dead") +#define SECTION_CTORS10 __declspec(section ".ctors$10") +#define SECTION_CTORS15 __declspec(section ".ctors$15") +#define SECTION_DTORS10 __declspec(section ".dtors$10") +#define SECTION_DTORS15 __declspec(section ".dtors$15") +#define COMPILER_STRIP_GATE(NAME, VALUE) SECTION_DEAD void* const cg_##NAME = (void*)(VALUE) +#define REGISTER_CTORS(ADDR, FUNCTION) SECTION_CTORS void* const _ctors_##ADDR = (void*)(FUNCTION); +#endif + +#else +#define SECTION_INIT +#define SECTION_RODATA +#define SECTION_DATA +#define SECTION_SDATA +#define SECTION_SDATA2 +#define SECTION_BSS +#define SECTION_SBSS +#define SECTION_SBSS2 +#define SECTION_CTORS +#define SECTION_DTORS +#define SECTION_EXTAB +#define SECTION_EXTABINDEX +#define SECTION_DEAD +#define SECTION_CTORS10 +#define SECTION_CTORS15 +#define SECTION_DTORS10 +#define SECTION_DTORS15 +#define COMPILER_STRIP_GATE(...) +#define REGISTER_CTORS(...) + +// vscode doesn't like asm and nofralloc very much +#define asm +#define nofralloc +#endif + +// floating-point constants +// TODO: move to different header +#define _HUGE_ENUF 1e+300 +#define INFINITY ((float)(_HUGE_ENUF * _HUGE_ENUF)) +#define HUGE_VAL ((double)INFINITY) +#define HUGE_VALL ((long double)INFINITY) + +#define DOUBLE_INF HUGE_VAL + +#pragma section ".dead" +#pragma section ".ctors$10" +#pragma section ".ctors$15" +#pragma section ".dtors$10" +#pragma section ".dtors$15" + +#endif /* DOL2ASM */ diff --git a/include/dolphin/os.h b/include/dolphin/os.h index 6394de8b..d255bb04 100644 --- a/include/dolphin/os.h +++ b/include/dolphin/os.h @@ -57,8 +57,14 @@ u32 OSUncachedToCached(void *ucaddr); #define OSDiffTick(tick1, tick0) ((s32)(tick1) - (s32)(tick0)) -#define OSRoundUp32B(v) (((u32)(v + 31) & ~31)) -#define OSRoundDown32B(x) (((u32)(x)) & ~31) +#define OSRoundUp32B(x) (((u32)(x) + 0x1F) & ~(0x1F)) +#define OSRoundDown32B(x) (((u32)(x)) & ~(0x1F)) + +#define OSRoundUp(x, align) (((x) + (align)-1) & (-(align))) +#define OSRoundUpPtr(x, align) ((void*)((((u32)(x)) + (align)-1) & (~((align)-1)))) + +#define OSRoundDown(x, align) ((x) & (-(align))) +#define OSRoundDownPtr(x, align) ((void*)(((u32)(x)) & (~((align)-1)))) void OSInit(); diff --git a/src/Runtime.PPCEABI.H/GCN_Mem_Alloc.c b/src/Runtime.PPCEABI.H/GCN_Mem_Alloc.c new file mode 100644 index 00000000..c36465e2 --- /dev/null +++ b/src/Runtime.PPCEABI.H/GCN_Mem_Alloc.c @@ -0,0 +1,30 @@ +#include "dolphin/os.h" + +inline static void InitDefaultHeap(void) { + void* arenaLo; + void* arenaHi; + + OSReport("GCN_Mem_Alloc.c : InitDefaultHeap. No Heap Available\n"); + OSReport("Metrowerks CW runtime library initializing default heap\n"); + + arenaLo = OSGetArenaLo(); + arenaHi = OSGetArenaHi(); + + arenaLo = OSInitAlloc(arenaLo, arenaHi, 1); + OSSetArenaLo(arenaLo); + + arenaLo = OSRoundUpPtr(arenaLo, 0x20); + arenaHi = OSRoundDownPtr(arenaHi, 0x20); + + OSSetCurrentHeap(OSCreateHeap(arenaLo, arenaHi)); + OSSetArenaLo(arenaLo = arenaHi); +} + +/* 80362914-803629CC 35D254 00B8+00 0/0 1/1 0/0 .text __sys_free */ +void __sys_free(void* p) { + if (__OSCurrHeap == -1) { + InitDefaultHeap(); + } + + OSFreeToHeap(__OSCurrHeap, p); +} diff --git a/src/Runtime.PPCEABI.H/__mem.c b/src/Runtime.PPCEABI.H/__mem.c new file mode 100644 index 00000000..08da3972 --- /dev/null +++ b/src/Runtime.PPCEABI.H/__mem.c @@ -0,0 +1,91 @@ +#include "dol2asm.h" +#include "stddef.h" +#include + + +/* 80003540-80003590 000440 0050+00 1/1 63/63 6/6 .init memcpy */ +SECTION_INIT void* memcpy(void* dst, const void* src, size_t n) { + const unsigned char* s; + unsigned char* d; + + if ((unsigned long)src >= (unsigned long)dst) { + s = (const unsigned char*)src - 1; + d = (unsigned char*)dst - 1; + n++; + while (--n != 0) + *++d = *++s; + } else { + s = (const unsigned char*)src + n; + d = (unsigned char*)dst + n; + n++; + while (--n != 0) + *--d = *--s; + } + return dst; +} + +/* 80003488-80003540 000388 00B8+00 1/1 0/0 0/0 .init __fill_mem */ +SECTION_INIT void __fill_mem(void* dst, int val, size_t n) { + unsigned long v = (unsigned char)val; + unsigned long i; + + ((unsigned char*)dst) = ((unsigned char*)dst) - 1; + + if (n >= 32) { + i = (~(unsigned long)dst) & 3; + + if (i) { + n -= i; + + do { + *++(((unsigned char*)dst)) = v; + } while (--i); + } + + if (v) + v |= v << 24 | v << 16 | v << 8; + + ((unsigned long*)dst) = ((unsigned long*)(((unsigned char*)dst) + 1)) - 1; + + i = n >> 5; + + if (i) { + do { + *++((unsigned long*)dst) = v; + *++((unsigned long*)dst) = v; + *++((unsigned long*)dst) = v; + *++((unsigned long*)dst) = v; + *++((unsigned long*)dst) = v; + *++((unsigned long*)dst) = v; + *++((unsigned long*)dst) = v; + *++((unsigned long*)dst) = v; + } while (--i); + } + + i = (n & 31) >> 2; + + if (i) { + do { + *++((unsigned long*)dst) = v; + } while (--i); + } + + ((unsigned char*)dst) = ((unsigned char*)(((unsigned long*)dst) + 1)) - 1; + + n &= 3; + } + + if (n) + do { + *++((unsigned char*)dst) = v; + } while (--n); + + return; +} + +/* 80003458-80003488 000358 0030+00 1/1 55/55 137/137 .init memset */ +SECTION_INIT void* memset(void* dst, int val, size_t n) { + __fill_mem(dst, val, n); + + return dst; +} diff --git a/src/Runtime.PPCEABI.H/__va_arg.c b/src/Runtime.PPCEABI.H/__va_arg.c new file mode 100644 index 00000000..c6e8bc63 --- /dev/null +++ b/src/Runtime.PPCEABI.H/__va_arg.c @@ -0,0 +1,50 @@ +#include "Runtime.PPCEABI.H/__va_arg.h" + +#undef __va_arg + +/* 80361B14-80361BDC 35C454 00C8+00 0/0 3/3 0/0 .text __va_arg */ +void* __va_arg(_va_list_struct* list, int type) { + char* addr; + char* reg = &(list->gpr); + int g_reg = list->gpr; + int maxsize = 8; + int size = 4; + int increment = 1; + int even = 0; + int fpr_offset = 0; + int regsize = 4; + + if (type == 3) { + reg = &(list->fpr); + g_reg = list->fpr; + size = 8; + fpr_offset = 32; + regsize = 8; + } + + if (type == 2) { + size = 8; + maxsize--; + if (g_reg & 1) { + even = 1; + } + increment = 2; + } + + if (g_reg < maxsize) { + g_reg += even; + addr = list->reg_save_area + fpr_offset + (g_reg * regsize); + *reg = g_reg + increment; + } else { + *reg = 8; + addr = list->input_arg_area; + addr = (char*)(((u32)(addr) + ((size)-1)) & ~((size)-1)); + list->input_arg_area = addr + size; + } + + if (type == 0) { + addr = *((char**)addr); + } + + return addr; +} diff --git a/src/Runtime.PPCEABI.H/runtime.c b/src/Runtime.PPCEABI.H/runtime.c new file mode 100644 index 00000000..8616931a --- /dev/null +++ b/src/Runtime.PPCEABI.H/runtime.c @@ -0,0 +1,827 @@ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* macros for GPR/FPR resting and saving */ +#define SAVE_FPR(reg) _savefpr_##reg +#define RESTORE_FPR(reg) _restfpr_##reg +#define SAVE_GPR(reg) _savegpr_##reg +#define RESTORE_GPR(reg) _restgpr_##reg + +#define ENTRY_SAVE_FPR(reg) entry SAVE_FPR(reg) +#define ENTRY_RESTORE_FPR(reg) entry RESTORE_FPR(reg) +#define ENTRY_SAVE_GPR(reg) entry SAVE_GPR(reg) +#define ENTRY_RESTORE_GPR(reg) entry RESTORE_GPR(reg) + +#define save_restore_reg r11 + +asm void __div2u(void); +asm void __div2i(void); +asm void __mod2u(void); +asm void __mod2i(void); +asm void __shl2i(void); +asm void __shr2u(void); +asm void __shr2i(void); +asm void __cvt_dbl_usll(void); + +void SAVE_FPR(14)(void); +void SAVE_FPR(15)(void); +void SAVE_FPR(16)(void); +void SAVE_FPR(17)(void); +void SAVE_FPR(18)(void); +void SAVE_FPR(19)(void); +void SAVE_FPR(20)(void); +void SAVE_FPR(21)(void); +void SAVE_FPR(22)(void); +void SAVE_FPR(23)(void); +void SAVE_FPR(24)(void); +void SAVE_FPR(25)(void); +void SAVE_FPR(26)(void); +void SAVE_FPR(27)(void); +void SAVE_FPR(28)(void); +void SAVE_FPR(29)(void); +void SAVE_FPR(30)(void); +void SAVE_FPR(31)(void); + +void RESTORE_FPR(14)(void); +void RESTORE_FPR(15)(void); +void RESTORE_FPR(16)(void); +void RESTORE_FPR(17)(void); +void RESTORE_FPR(18)(void); +void RESTORE_FPR(19)(void); +void RESTORE_FPR(20)(void); +void RESTORE_FPR(21)(void); +void RESTORE_FPR(22)(void); +void RESTORE_FPR(23)(void); +void RESTORE_FPR(24)(void); +void RESTORE_FPR(25)(void); +void RESTORE_FPR(26)(void); +void RESTORE_FPR(27)(void); +void RESTORE_FPR(28)(void); +void RESTORE_FPR(29)(void); +void RESTORE_FPR(30)(void); +void RESTORE_FPR(31)(void); + +void SAVE_GPR(14)(void); +void SAVE_GPR(15)(void); +void SAVE_GPR(16)(void); +void SAVE_GPR(17)(void); +void SAVE_GPR(18)(void); +void SAVE_GPR(19)(void); +void SAVE_GPR(20)(void); +void SAVE_GPR(21)(void); +void SAVE_GPR(22)(void); +void SAVE_GPR(23)(void); +void SAVE_GPR(24)(void); +void SAVE_GPR(25)(void); +void SAVE_GPR(26)(void); +void SAVE_GPR(27)(void); +void SAVE_GPR(28)(void); +void SAVE_GPR(29)(void); +void SAVE_GPR(30)(void); +void SAVE_GPR(31)(void); + +void RESTORE_GPR(14)(void); +void RESTORE_GPR(15)(void); +void RESTORE_GPR(16)(void); +void RESTORE_GPR(17)(void); +void RESTORE_GPR(18)(void); +void RESTORE_GPR(19)(void); +void RESTORE_GPR(20)(void); +void RESTORE_GPR(21)(void); +void RESTORE_GPR(22)(void); +void RESTORE_GPR(23)(void); +void RESTORE_GPR(24)(void); +void RESTORE_GPR(25)(void); +void RESTORE_GPR(26)(void); +void RESTORE_GPR(27)(void); +void RESTORE_GPR(28)(void); +void RESTORE_GPR(29)(void); +void RESTORE_GPR(30)(void); +void RESTORE_GPR(31)(void); + +static const u32 __constants[] = { + 0x00000000, 0x00000000, 0x41F00000, 0x00000000, 0x41E00000, 0x00000000, +}; + +/* 803620AC-80362108 35C9EC 005C+00 0/0 42/42 89/89 .text __cvt_fp2unsigned */ +asm u32 __cvt_fp2unsigned(register f64 d) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + stwu r1,-16(r1) + lis r4, __constants@h + ori r4, r4, __constants@l + li r3,0 + lfd fp0,0(r4) + lfd fp3,8(r4) + lfd fp4,16(r4) + fcmpu cr0,fp1,fp0 + fcmpu cr6,fp1,fp3 + blt cr0, @exit + addi r3,r3,-1 + bge cr6,@exit + fcmpu cr7,fp1,fp4 + fmr fp2,fp1 + blt cr7,@1 + fsub fp2,fp1,fp4 +@1 fctiwz fp2,fp2 + stfd fp2,8(r1) + lwz r3,12(r1) + blt cr7,@exit + addis r3,r3,-0x8000 +@exit: + addi r1,r1,16 + blr +#endif // clang-format on +} + +/* 80362108-80362134 35CA48 002C+00 0/0 0/0 0/0 .text __save_fpr */ +asm void __save_fpr(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + ENTRY_SAVE_FPR(14) + stfd fp14,-144(save_restore_reg) + ENTRY_SAVE_FPR(15) + stfd fp15,-136(save_restore_reg) + ENTRY_SAVE_FPR(16) + stfd fp16,-128(save_restore_reg) + ENTRY_SAVE_FPR(17) + stfd fp17,-120(save_restore_reg) + ENTRY_SAVE_FPR(18) + stfd fp18,-112(save_restore_reg) + ENTRY_SAVE_FPR(19) + stfd fp19,-104(save_restore_reg) + ENTRY_SAVE_FPR(20) + stfd fp20,-96(save_restore_reg) + ENTRY_SAVE_FPR(21) + stfd fp21,-88(save_restore_reg) + ENTRY_SAVE_FPR(22) + stfd fp22,-80(save_restore_reg) + ENTRY_SAVE_FPR(23) + stfd fp23,-72(save_restore_reg) + ENTRY_SAVE_FPR(24) + stfd fp24,-64(save_restore_reg) + ENTRY_SAVE_FPR(25) + stfd fp25,-56(save_restore_reg) + ENTRY_SAVE_FPR(26) + stfd fp26,-48(save_restore_reg) + ENTRY_SAVE_FPR(27) + stfd fp27,-40(save_restore_reg) + ENTRY_SAVE_FPR(28) + stfd fp28,-32(save_restore_reg) + ENTRY_SAVE_FPR(29) + stfd fp29,-24(save_restore_reg) + ENTRY_SAVE_FPR(30) + stfd fp30,-16(save_restore_reg) + ENTRY_SAVE_FPR(31) + stfd fp31,-8(save_restore_reg) + blr +#endif // clang-format on +} + +/* 80362154-80362180 35CA94 002C+00 0/0 0/0 0/0 .text __restore_fpr */ +asm void __restore_fpr(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + ENTRY_RESTORE_FPR(14) + lfd fp14,-144(save_restore_reg) + ENTRY_RESTORE_FPR(15) + lfd fp15,-136(save_restore_reg) + ENTRY_RESTORE_FPR(16) + lfd fp16,-128(save_restore_reg) + ENTRY_RESTORE_FPR(17) + lfd fp17,-120(save_restore_reg) + ENTRY_RESTORE_FPR(18) + lfd fp18,-112(save_restore_reg) + ENTRY_RESTORE_FPR(19) + lfd fp19,-104(save_restore_reg) + ENTRY_RESTORE_FPR(20) + lfd fp20,-96(save_restore_reg) + ENTRY_RESTORE_FPR(21) + lfd fp21,-88(save_restore_reg) + ENTRY_RESTORE_FPR(22) + lfd fp22,-80(save_restore_reg) + ENTRY_RESTORE_FPR(23) + lfd fp23,-72(save_restore_reg) + ENTRY_RESTORE_FPR(24) + lfd fp24,-64(save_restore_reg) + ENTRY_RESTORE_FPR(25) + lfd fp25,-56(save_restore_reg) + ENTRY_RESTORE_FPR(26) + lfd fp26,-48(save_restore_reg) + ENTRY_RESTORE_FPR(27) + lfd fp27,-40(save_restore_reg) + ENTRY_RESTORE_FPR(28) + lfd fp28,-32(save_restore_reg) + ENTRY_RESTORE_FPR(29) + lfd fp29,-24(save_restore_reg) + ENTRY_RESTORE_FPR(30) + lfd fp30,-16(save_restore_reg) + ENTRY_RESTORE_FPR(31) + lfd fp31,-8(save_restore_reg) + blr +#endif // clang-format on +} + +/* 803621A0-803621A4 35CAE0 0004+00 0/0 22/22 13/13 .text _savegpr_14 */ +asm void __save_gpr(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + ENTRY_SAVE_GPR(14) + stw r14,-72(save_restore_reg) + ENTRY_SAVE_GPR(15) + stw r15,-68(save_restore_reg) + ENTRY_SAVE_GPR(16) + stw r16,-64(save_restore_reg) + ENTRY_SAVE_GPR(17) + stw r17,-60(save_restore_reg) + ENTRY_SAVE_GPR(18) + stw r18,-56(save_restore_reg) + ENTRY_SAVE_GPR(19) + stw r19,-52(save_restore_reg) + ENTRY_SAVE_GPR(20) + stw r20,-48(save_restore_reg) + ENTRY_SAVE_GPR(21) + stw r21,-44(save_restore_reg) + ENTRY_SAVE_GPR(22) + stw r22,-40(save_restore_reg) + ENTRY_SAVE_GPR(23) + stw r23,-36(save_restore_reg) + ENTRY_SAVE_GPR(24) + stw r24,-32(save_restore_reg) + ENTRY_SAVE_GPR(25) + stw r25,-28(save_restore_reg) + ENTRY_SAVE_GPR(26) + stw r26,-24(save_restore_reg) + ENTRY_SAVE_GPR(27) + stw r27,-20(save_restore_reg) + ENTRY_SAVE_GPR(28) + stw r28,-16(save_restore_reg) + ENTRY_SAVE_GPR(29) + stw r29,-12(save_restore_reg) + ENTRY_SAVE_GPR(30) + stw r30,-8(save_restore_reg) + ENTRY_SAVE_GPR(31) + stw r31,-4(save_restore_reg) + blr +#endif // clang-format on +} + +/* 803621EC-803621F0 35CB2C 0004+00 0/0 22/22 13/13 .text _restgpr_14 */ +asm void __restore_gpr(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + ENTRY_RESTORE_GPR(14) + lwz r14,-72(save_restore_reg) + ENTRY_RESTORE_GPR(15) + lwz r15,-68(save_restore_reg) + ENTRY_RESTORE_GPR(16) + lwz r16,-64(save_restore_reg) + ENTRY_RESTORE_GPR(17) + lwz r17,-60(save_restore_reg) + ENTRY_RESTORE_GPR(18) + lwz r18,-56(save_restore_reg) + ENTRY_RESTORE_GPR(19) + lwz r19,-52(save_restore_reg) + ENTRY_RESTORE_GPR(20) + lwz r20,-48(save_restore_reg) + ENTRY_RESTORE_GPR(21) + lwz r21,-44(save_restore_reg) + ENTRY_RESTORE_GPR(22) + lwz r22,-40(save_restore_reg) + ENTRY_RESTORE_GPR(23) + lwz r23,-36(save_restore_reg) + ENTRY_RESTORE_GPR(24) + lwz r24,-32(save_restore_reg) + ENTRY_RESTORE_GPR(25) + lwz r25,-28(save_restore_reg) + ENTRY_RESTORE_GPR(26) + lwz r26,-24(save_restore_reg) + ENTRY_RESTORE_GPR(27) + lwz r27,-20(save_restore_reg) + ENTRY_RESTORE_GPR(28) + lwz r28,-16(save_restore_reg) + ENTRY_RESTORE_GPR(29) + lwz r29,-12(save_restore_reg) + ENTRY_RESTORE_GPR(30) + lwz r30,-8(save_restore_reg) + ENTRY_RESTORE_GPR(31) + lwz r31,-4(save_restore_reg) + blr +#endif // clang-format on +} + +/* 80362238-80362324 35CB78 00EC+00 0/0 2/2 0/0 .text __div2u */ +asm void __div2u(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + cmpwi cr0,r3,0 + cntlzw r0,r3 + cntlzw r9,r4 + bne cr0,lab1 + addi r0,r9,32 +lab1: + cmpwi cr0,r5,0 + cntlzw r9,r5 + cntlzw r10,r6 + bne cr0,lab2 + addi r9,r10,32 +lab2: + cmpw cr0,r0,r9 + subfic r10,r0,64 + bgt cr0,lab9 + addi r9,r9,1 + subfic r9,r9,64 + add r0,r0,r9 + subf r9,r9,r10 + mtctr r9 + cmpwi cr0,r9,32 + addi r7,r9,-32 + blt cr0,lab3 + srw r8,r3,r7 + li r7,0 + b lab4 +lab3: + srw r8,r4,r9 + subfic r7,r9,32 + slw r7,r3,r7 + or r8,r8,r7 + srw r7,r3,r9 +lab4: + cmpwi cr0,r0,32 + addic r9,r0,-32 + blt cr0,lab5 + slw r3,r4,r9 + li r4,0 + b lab6 +lab5: + slw r3,r3,r0 + subfic r9,r0,32 + srw r9,r4,r9 + or r3,r3,r9 + slw r4,r4,r0 +lab6: + li r10,-1 + addic r7,r7,0 +lab7: + adde r4,r4,r4 + adde r3,r3,r3 + adde r8,r8,r8 + adde r7,r7,r7 + subfc r0,r6,r8 + subfe. r9,r5,r7 + blt cr0,lab8 + mr r8,r0 + mr r7,r9 + addic r0,r10,1 +lab8: + bdnz lab7 + adde r4,r4,r4 + adde r3,r3,r3 + blr +lab9: + li r4,0 + li r3,0 + blr +#endif // clang-format on +} + +/* 80362324-8036245C 35CC64 0138+00 0/0 16/16 1/1 .text __div2i */ +asm void __div2i(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + stwu r1,-16(r1) + rlwinm. r9,r3,0,0,0 + beq cr0,positive1 + subfic r4,r4,0 + subfze r3,r3 +positive1: + stw r9,8(r1) + rlwinm. r10,r5,0,0,0 + beq cr0,positive2 + subfic r6,r6,0 + subfze r5,r5 +positive2: + stw r10,12(r1) + cmpwi cr0,r3,0 + cntlzw r0,r3 + cntlzw r9,r4 + bne cr0,lab1 + addi r0,r9,32 +lab1: + cmpwi cr0,r5,0 + cntlzw r9,r5 + cntlzw r10,r6 + bne cr0,lab2 + addi r9,r10,32 +lab2: + cmpw cr0,r0,r9 + subfic r10,r0,64 + bgt cr0,lab9 + addi r9,r9,1 + subfic r9,r9,64 + add r0,r0,r9 + subf r9,r9,r10 + mtctr r9 + cmpwi cr0,r9,32 + addi r7,r9,-32 + blt cr0,lab3 + srw r8,r3,r7 + li r7,0 + b lab4 +lab3: + srw r8,r4,r9 + subfic r7,r9,32 + slw r7,r3,r7 + or r8,r8,r7 + srw r7,r3,r9 +lab4: + cmpwi cr0,r0,32 + addic r9,r0,-32 + blt cr0,lab5 + slw r3,r4,r9 + li r4,0 + b lab6 +lab5: + slw r3,r3,r0 + subfic r9,r0,32 + srw r9,r4,r9 + or r3,r3,r9 + slw r4,r4,r0 +lab6: + li r10,-1 + addic r7,r7,0 +lab7: + adde r4,r4,r4 + adde r3,r3,r3 + adde r8,r8,r8 + adde r7,r7,r7 + subfc r0,r6,r8 + subfe. r9,r5,r7 + blt cr0,lab8 + mr r8,r0 + mr r7,r9 + addic r0,r10,1 +lab8: + bdnz lab7 + adde r4,r4,r4 + adde r3,r3,r3 + lwz r9,8(r1) + lwz r10,12(r1) + xor. r7,r9,r10 + beq cr0,no_adjust + cmpwi cr0,r9,0 + subfic r4,r4,0 + subfze r3,r3 + +no_adjust: + b func_end + +lab9: + li r4,0 + li r3,0 +func_end: + addi r1,r1,16 + blr +#endif // clang-format on +} + +/* 8036245C-80362540 35CD9C 00E4+00 0/0 2/2 0/0 .text __mod2u */ +asm void __mod2u(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + cmpwi cr0,r3,0 + cntlzw r0,r3 + cntlzw r9,r4 + bne cr0,lab1 + addi r0,r9,32 +lab1: + cmpwi cr0,r5,0 + cntlzw r9,r5 + cntlzw r10,r6 + bne cr0,lab2 + addi r9,r10,32 +lab2: + cmpw cr0,r0,r9 + subfic r10,r0,64 + bgt cr0,lab9 + addi r9,r9,1 + subfic r9,r9,64 + add r0,r0,r9 + subf r9,r9,r10 + mtctr r9 + cmpwi cr0,r9,32 + addi r7,r9,-32 + blt cr0,lab3 + srw r8,r3,r7 + li r7,0 + b lab4 +lab3: + srw r8,r4,r9 + subfic r7,r9,32 + slw r7,r3,r7 + or r8,r8,r7 + srw r7,r3,r9 +lab4: + cmpwi cr0,r0,32 + addic r9,r0,-32 + blt cr0,lab5 + slw r3,r4,r9 + li r4,0 + b lab6 +lab5: + slw r3,r3,r0 + subfic r9,r0,32 + srw r9,r4,r9 + or r3,r3,r9 + slw r4,r4,r0 +lab6: + li r10,-1 + addic r7,r7,0 +lab7: + adde r4,r4,r4 + adde r3,r3,r3 + adde r8,r8,r8 + adde r7,r7,r7 + subfc r0,r6,r8 + subfe. r9,r5,r7 + blt cr0,lab8 + mr r8,r0 + mr r7,r9 + addic r0,r10,1 +lab8: + bdnz lab7 + mr r4,r8 + mr r3,r7 + blr +lab9: + blr +#endif // clang-format on +} + +/* 80362540-8036264C 35CE80 010C+00 0/0 2/2 0/0 .text __mod2i */ +asm void __mod2i(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + + cmpwi cr7,r3,0 + bge cr7,positive1 + subfic r4,r4,0 + subfze r3,r3 +positive1: + cmpwi cr0,r5,0 + bge cr0,positive2 + subfic r6,r6,0 + subfze r5,r5 +positive2: + cmpwi cr0,r3,0 + cntlzw r0,r3 + cntlzw r9,r4 + bne cr0,lab1 + addi r0,r9,32 +lab1: + cmpwi cr0,r5,0 + cntlzw r9,r5 + cntlzw r10,r6 + bne cr0,lab2 + addi r9,r10,32 +lab2: + cmpw cr0,r0,r9 + subfic r10,r0,64 + bgt cr0,lab9 + addi r9,r9,1 + subfic r9,r9,64 + add r0,r0,r9 + subf r9,r9,r10 + mtctr r9 + cmpwi cr0,r9,32 + addi r7,r9,-32 + blt cr0,lab3 + srw r8,r3,r7 + li r7,0 + b lab4 +lab3: + srw r8,r4,r9 + subfic r7,r9,32 + slw r7,r3,r7 + or r8,r8,r7 + srw r7,r3,r9 +lab4: + cmpwi cr0,r0,32 + addic r9,r0,-32 + blt cr0,lab5 + slw r3,r4,r9 + li r4,0 + b lab6 +lab5: + slw r3,r3,r0 + subfic r9,r0,32 + srw r9,r4,r9 + or r3,r3,r9 + slw r4,r4,r0 +lab6: + li r10,-1 + addic r7,r7,0 +lab7: + adde r4,r4,r4 + adde r3,r3,r3 + adde r8,r8,r8 + adde r7,r7,r7 + subfc r0,r6,r8 + subfe. r9,r5,r7 + blt cr0,lab8 + mr r8,r0 + mr r7,r9 + addic r0,r10,1 +lab8: + bdnz lab7 + mr r4,r8 + mr r3,r7 +lab9: + bge cr7,no_adjust + subfic r4,r4,0 + subfze r3,r3 +no_adjust: + blr +#endif // clang-format on +} + +/* 8036264C-80362670 35CF8C 0024+00 0/0 2/2 0/0 .text __shl2i */ +asm void __shl2i(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + subfic r8,r5,32 + subic r9,r5,32 + slw r3,r3,r5 + srw r10,r4,r8 + or r3,r3,r10 + slw r10,r4,r9 + or r3,r3,r10 + slw r4,r4,r5 + blr +#endif // clang-format on +} + +/* 80362670-80362694 35CFB0 0024+00 0/0 2/2 0/0 .text __shr2u */ +asm void __shr2u(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + subfic r8,r5,32 + subic r9,r5,32 + srw r4,r4,r5 + slw r10,r3,r8 + or r4,r4,r10 + srw r10,r3,r9 + or r4,r4,r10 + srw r3,r3,r5 + blr +#endif // clang-format on +} + +/* 80362694-803626BC 35CFD4 0028+00 0/0 3/3 0/0 .text __shr2i */ +asm void __shr2i(void) { +#ifdef __MWERKS__ // clang-format off + nofralloc + subfic r8, r5, 0x20 + addic. r9, r5, -0x20 + srw r4, r4, r5 + slw r10, r3, r8 + or r4, r4, r10 + sraw r10, r3, r9 + ble around + or r4, r4, r10 +around: + sraw r3, r3, r5 + blr +#endif // clang-format on +} + +/* 803626BC-80362770 35CFFC 00B4+00 0/0 1/1 0/0 .text __cvt_sll_flt */ +asm void __cvt_sll_flt(void) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + stwu r1, -0x10(r1) + rlwinm. r5, r3, 0, 0, 0 + beq lbl_803626D0 + subfic r4, r4, 0 + subfze r3, r3 +lbl_803626D0: + or. r7, r3, r4 + li r6, 0 + beq lbl_80362758 + cntlzw r7, r3 + cntlzw r8, r4 + rlwinm r9, r7, 0x1a, 0, 4 + srawi r9, r9, 0x1f + and r9, r9, r8 + add r7, r7, r9 + subfic r8, r7, 0x20 + addic r9, r7, -32 + slw r3, r3, r7 + srw r10, r4, r8 + or r3, r3, r10 + slw r10, r4, r9 + or r3, r3, r10 + slw r4, r4, r7 + subf r6, r7, r6 + clrlwi r7, r4, 0x15 + cmpwi r7, 0x400 + addi r6, r6, 0x43e + blt lbl_80362740 + bgt lbl_80362734 + rlwinm. r7, r4, 0, 0x14, 0x14 + beq lbl_80362740 +lbl_80362734: + addic r4, r4, 0x800 + addze r3, r3 + addze r6, r6 +lbl_80362740: + rotlwi r4, r4, 0x15 + rlwimi r4, r3, 0x15, 0, 0xa + rlwinm r3, r3, 0x15, 0xc, 0x1f + slwi r6, r6, 0x14 + or r3, r6, r3 + or r3, r5, r3 +lbl_80362758: + stw r3, 8(r1) + stw r4, 0xc(r1) + lfd f1, 8(r1) + frsp f1, f1 + addi r1, r1, 0x10 + blr +#endif // clang-format on +} + +/* 80362770-8036283C 35D0B0 00CC+00 0/0 2/2 0/0 .text __cvt_dbl_usll */ +asm void __cvt_dbl_usll(void) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + stwu r1,-16(r1) + stfd f1,8(r1) + lwz r3,8(r1) + lwz r4,12(r1) + rlwinm r5,r3,12,21,31 + cmpli cr0,0,r5,1023 + bge cr0,not_fraction + li r3,0 + li r4,0 + b func_end +not_fraction: + mr r6,r3 + rlwinm r3,r3,0,12,31 + oris r3,r3,0x0010 + addi r5,r5,-1075 + cmpwi cr0,r5,0 + bge cr0,left + neg r5,r5 + subfic r8,r5,32 + subic r9,r5,32 + srw r4,r4,r5 + slw r10,r3,r8 + or r4,r4,r10 + srw r10,r3,r9 + or r4,r4,r10 + srw r3,r3,r5 + b around +left: + cmpwi cr0,r5,10 + ble+ no_overflow + rlwinm. r6,r6,0,0,0 + beq cr0,max_positive + lis r3,0x8000 + li r4,0 + b func_end +max_positive: + lis r3,0x7FFF + ori r3,r3,0xFFFF + li r4,-1 + b func_end +no_overflow: + subfic r8,r5,32 + subic r9,r5,32 + slw r3,r3,r5 + srw r10,r4,r8 + or r3,r3,r10 + slw r10,r4,r9 + or r3,r3,r10 + slw r4,r4,r5 +around: + rlwinm. r6,r6,0,0,0 + beq cr0,positive + subfic r4,r4,0 + subfze r3,r3 +positive: +func_end: + addi r1,r1,16 + blr +#endif // clang-format on +} + +#ifdef __cplusplus +} +#endif From a955c8a69b600c5c8d1003dd15c1a1e776d73baf Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 19 Nov 2024 16:48:37 +0100 Subject: [PATCH 161/311] Copied parts of m460Dll/main.c to m421Dll --- config/GMPE01_00/rels/m421Dll/symbols.txt | 2 +- include/REL/m421Dll.h | 42 ++ include/REL/m460Dll.h | 2 +- src/REL/m421Dll/main.c | 582 ++++++++++++++++++++++ src/REL/m460Dll/main.c | 222 ++++----- 5 files changed, 737 insertions(+), 113 deletions(-) create mode 100644 include/REL/m421Dll.h create mode 100644 src/REL/m421Dll/main.c diff --git a/config/GMPE01_00/rels/m421Dll/symbols.txt b/config/GMPE01_00/rels/m421Dll/symbols.txt index cb29a8cd..4afd037f 100644 --- a/config/GMPE01_00/rels/m421Dll/symbols.txt +++ b/config/GMPE01_00/rels/m421Dll/symbols.txt @@ -110,7 +110,7 @@ lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:4byte -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x50 +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x50 data:float lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x14 data:4byte lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float diff --git a/include/REL/m421Dll.h b/include/REL/m421Dll.h new file mode 100644 index 00000000..04e08da4 --- /dev/null +++ b/include/REL/m421Dll.h @@ -0,0 +1,42 @@ +#ifndef M421DLL_H +#define M421DLL_H + +#include "game/object.h" + +typedef struct UnkM421DllStruct { + float unk_00; + float unk_04; + float unk_08; + float unk_0C; +} UnkM421DllStruct; + +typedef struct M421DllCameraStruct { + s32 unk_00; + s32 unk_04; + s32 unk_08; + u32 unk_0C; + float unk_10; + float unk_14; + float unk_18; + Vec unk_1C; + Vec unk_28; + float unk_34; + s32 unk_38; + s32 unk_3C; + float unk_40; + UnkM421DllStruct unk_44; + char unk54[0x30]; + float unk_84; + char unk88[0x4]; + float unk_8C; + float unk_90; + s32 unk_94; + char unk98[0xC]; +} M421DllCameraStruct; /* size = 0xA4 */ // same as M443DllCameraStruct and M460 + +void fn_1_4648(Process *process); +void fn_1_48B0(void); +void fn_1_B15C(Process *process, omObjData *object); +void fn_1_B1BC(void); + +#endif diff --git a/include/REL/m460Dll.h b/include/REL/m460Dll.h index 6f97310d..40ca863d 100644 --- a/include/REL/m460Dll.h +++ b/include/REL/m460Dll.h @@ -32,7 +32,7 @@ typedef struct M460DllCameraStruct { float unk_90; s32 unk_94; char unk98[0xC]; -} M460DllCameraStruct; /* size = 0xA4 */ // same as M443DllCameraStruct // TODO does this have to be here? +} M460DllCameraStruct; /* size = 0xA4 */ // same as M443DllCameraStruct void fn_1_3E68(u32 arg0); M460DllCameraStruct *fn_1_3E90(s32 arg0); diff --git a/src/REL/m421Dll/main.c b/src/REL/m421Dll/main.c new file mode 100644 index 00000000..d958eb05 --- /dev/null +++ b/src/REL/m421Dll/main.c @@ -0,0 +1,582 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/gamework.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m421Dll.h" + +#ifndef __MWERKS__ +#include "game/frand.h" +#endif + +typedef struct M421DllWork { + u32 unk_00; + s32 unk_04; + s32 unk_08; + u32 unk0C; + s32 unk_10; + u32 unk_14; + u32 unk_18; + u32 unk_1C; + u32 unk_20; + u32 unk24; + s32 unk28; + u32 unk_2C; + s32 unk30; + char unk34[0x4]; + u32 unk38; + s32 unk3C; + s32 unk40; + s32 unk44; + s32 unk48; + s32 unk4C; + u32 unk50; + s32 unk54[4]; + s32 unk64[4]; +} M421DllWork; /* size = 0x74 */ // TODO check the fields, they are copy pasted + +void fn_1_10EC(omObjData *object); +void fn_1_142C(omObjData *object); +void fn_1_1850(omObjData *object); +void fn_1_1C90(omObjData *object); +omObjFunc fn_1_213C(Process *process, omObjData *object); +void fn_1_21AC(omObjData *object); +omObjFunc fn_1_2A28(Process *process, omObjData *object); +void fn_1_2BB8(omObjData *object); +void fn_1_3020(Process *process); +void fn_1_30D0(omObjData *object); +void fn_1_3334(omObjData *object); +void fn_1_335C(omObjData *object); +void fn_1_38FC(ModelData *model, Mtx mtx); +void fn_1_3B50(u32 arg0); +M421DllCameraStruct *fn_1_3B78(s32 arg0); +M421DllCameraStruct *fn_1_3CB0(u32 arg0); +float fn_1_4478(float arg8, float arg9, float argA); +void fn_1_4A0(omObjData *object); +void fn_1_784(omObjData *object); +void fn_1_8B8(omObjData *object); +void fn_1_CBC(omObjData *object); + +GXColor lbl_1_data_A0 = { 0, 0, 0, 0 }; + +Process *lbl_1_bss_28; +omObjData *lbl_1_bss_24; +omObjData *lbl_1_bss_20; +// M421DllCameraStruct +omObjData *lbl_1_bss_1C; +s16 lbl_1_bss_18; +s16 lbl_1_bss_12; +s16 lbl_1_bss_10; +s16 lbl_1_bss_E; +s16 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +s32 lbl_1_bss_0; + +void fn_1_578(omObjData *var_r29) +{ + Vec sp14; + Vec sp8; + M421DllCameraStruct *var_r31; + M421DllWork *var_r30; + + var_r30 = var_r29->data; + var_r30->unk_04++; + var_r30->unk_10++; + var_r30->unk_18++; + var_r30->unk_2C++; + if ((omSysExitReq != 0) && (var_r30->unk_00 != 5)) { + var_r30->unk_00 = 4; + fn_1_784(var_r29); + } + var_r31 = fn_1_3B78(1); + sp8.x = -(sind(var_r31->unk_28.y) * cosd(var_r31->unk_28.x)); + sp8.y = -(-sind(var_r31->unk_28.x)); + sp8.z = -(cosd(var_r31->unk_28.y) * cosd(var_r31->unk_28.x)); + sp14.x = var_r31->unk_1C.x - (sp8.x * var_r31->unk_34); + sp14.y = var_r31->unk_1C.y - (sp8.y * var_r31->unk_34); + sp14.z = var_r31->unk_1C.z - (sp8.z * var_r31->unk_34); + HuAudFXListnerUpdate(&sp14, &sp8); +} + +void fn_1_784(omObjData *object) +{ + M421DllWork *work = object->data; + + if (work->unk_08 == 0) { + switch (work->unk_00) { + case 0: + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x3C); + work->unk_00 = 1; + work->unk_10 = 0; + object->func = fn_1_213C(lbl_1_bss_28, object); + break; + case 1: + work->unk_00 = 2; + work->unk_18 = 0; + object->func = fn_1_142C; + break; + case 2: + work->unk_00 = 3; + work->unk_2C = 0; + object->func = fn_1_2A28(lbl_1_bss_28, object); + break; + case 3: + case 4: + work->unk_08 = 1; + work->unk_00 = 5; + object->func = fn_1_CBC; + break; + case 5: + default: + work->unk_00 = 5; + object->func = fn_1_10EC; + } + work->unk_04 = 0; + } +} + +void fn_1_8B8(omObjData *object) +{ + fn_1_578(object); + fn_1_784(object); +} + +void fn_1_CBC(omObjData *object) +{ + M421DllWork *work = object->data; + fn_1_578(object); + if (WipeStatGet() == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); + work->unk_08 = 0; + fn_1_784(object); + } +} + +void fn_1_10EC(omObjData *object) +{ + fn_1_578(object); + if (WipeStatGet() == 0) { + fn_1_48B0(); + fn_1_B1BC(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_142C(omObjData *object) +{ + M421DllWork *work = object->data; + fn_1_578(object); + switch (work->unk_14) { + case 0: + work->unk_1C = 0x2D; + work->unk_20 = 0x3C; + lbl_1_bss_18 = MGSeqCreate(3, 0); + MGSeqPosSet(lbl_1_bss_10, 320.0f, 240.0f); + lbl_1_bss_18 = -1; + work->unk_14 = 1; + work->unk_18 = 0; + break; + case 1: + if ((lbl_1_bss_4 < 0) && ((MGSeqStatGet(lbl_1_bss_10) & 0x10) != 0)) { + lbl_1_bss_4 = HuAudSeqPlay(0x48); + } + if (MGSeqStatGet(lbl_1_bss_18) == 0 && (work->unk_08 == 0)) { + work->unk_14 = 2; + work->unk_18 = 0; + object->func = fn_1_1850; + } + break; + } +} + +omObjFunc fn_1_213C(Process *process, omObjData *object) +{ + M421DllCameraStruct *var_r31; + + object->work[0] = object->work[1] = 0; + fn_1_3B50(1); + var_r31 = fn_1_3CB0(0); + var_r31->unk_84 = 1.0f; + var_r31->unk_94 = 0; + return fn_1_21AC; +} + +void fn_1_3020(Process *process) +{ + Hu3DCameraCreate(0x1F); + lbl_1_bss_20 = omAddObjEx(process, 0x7FDA, 0, 0, -1, omOutViewMulti); + lbl_1_bss_20->work[0] = 5; + lbl_1_bss_1C = omAddObjEx(process, 0xC, 1, 0, -1, fn_1_30D0); + lbl_1_bss_1C->work[0] = 0; +} + +void fn_1_30D0(omObjData *object) +{ + UnkM421DllStruct sp1C[5] = { + { 320.0f, 240.0f, 640.0f, 480.0f }, + { 160.0f, 120.0f, 320.0f, 240.0f }, + { 160.0f, 360.0f, 320.0f, 240.0f }, + { 480.0f, 120.0f, 320.0f, 240.0f }, + { 480.0f, 360.0f, 320.0f, 240.0f }, + }; + s32 sp8[5] = { 1, 2, 4, 8, 16 }; + M421DllCameraStruct *var_r31; + s32 var_r29; + M421DllCameraStruct *var_r28; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 10 * sizeof(M421DllCameraStruct), MEMORY_DEFAULT_NUM); + var_r28 = object->data; + memset(var_r28, 0, 10 * sizeof(M421DllCameraStruct)); + object->model[0] = Hu3DHookFuncCreate(fn_1_38FC); + Hu3DModelLayerSet(object->model[0], 0); + Hu3DModelCameraSet(object->model[0], 0x1E); + for (var_r31 = var_r28, var_r29 = 0; var_r29 < 5; var_r29++, var_r31++) { + var_r31->unk_00 = 1; + var_r31->unk_04 = var_r29 * 0x64; + var_r31->unk_10 = 41.5f; + var_r31->unk_14 = 100.0f; + var_r31->unk_18 = 5500.0f; + var_r31->unk_1C.x = 0.0f; + var_r31->unk_1C.y = 0.0f; + var_r31->unk_1C.z = 0.0f; + var_r31->unk_28.x = -15.0f; + var_r31->unk_28.y = 0.0f; + var_r31->unk_28.z = 0.0f; + var_r31->unk_34 = 1000.0f; + var_r31->unk_40 = 1.0f; + var_r31->unk_44.unk_00 = sp1C[var_r29].unk_00; + var_r31->unk_44.unk_04 = sp1C[var_r29].unk_04; + var_r31->unk_44.unk_08 = sp1C[var_r29].unk_08; + var_r31->unk_44.unk_0C = sp1C[var_r29].unk_0C; + var_r31->unk_3C = var_r31->unk_0C = sp8[var_r29]; + var_r31->unk_08 = var_r29; + var_r31->unk_38 = var_r29; + } + object->work[1] = 0; + object->work[0]++; + fn_1_335C(object); + object->func = fn_1_3334; +} + +void fn_1_3334(omObjData *object) +{ + fn_1_335C(object); +} + +void fn_1_335C(omObjData *var_r28) +{ + float var_f31; + M421DllCameraStruct *var_r31; + s32 var_r30; + s32 var_r29; + M421DllCameraStruct *var_r27; + u32 var_r26; + u32 var_r25; + s32 var_r24; + u32 var_r23; + u32 var_r22; + u32 var_r21; + + var_r27 = var_r28->data; + { + s32 sp40[4] = { 2, 4, 8, 16 }; + u32 sp30[4]; + s32 sp20[4]; + float sp10[4]; + float sp8[2]; + var_r24 = 0; + var_r26 = 0; + memcpy(&var_r27[5], var_r27, 5 * sizeof(M421DllCameraStruct)); + switch (var_r28->work[1]) { + case 0: + break; + case 1: + var_r26 |= 1; + break; + case 2: + var_r26 |= 1; + case 3: + var_r24 = 1; + case 4: + var_r26 |= 0x1E; + break; + } + if (var_r24 != 0) { + Hu3DModelAttrReset(var_r28->model[0], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrSet(var_r28->model[0], HU3D_ATTR_DISPOFF); + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + sp30[var_r30] = var_r27[var_r30 + 6].unk_04; + sp20[var_r30] = var_r30; + } + for (var_r30 = 0; var_r30 < 3; var_r30++) { + for (var_r29 = var_r30 + 1; var_r29 < 4; var_r29++) { + if ((var_r30 != var_r29) && (sp30[var_r30] > sp30[var_r29])) { + var_r25 = sp30[var_r30]; + sp30[var_r30] = sp30[var_r29]; + sp30[var_r29] = var_r25; + var_r25 = sp20[var_r30]; + sp20[var_r30] = sp20[var_r29]; + sp20[var_r29] = var_r25; + } + } + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r27[sp20[var_r30] + 6].unk_3C = sp40[var_r30]; + var_r27[sp20[var_r30] + 6].unk_38 = var_r30 + 1; + } + + for (var_r31 = &var_r27[5], var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if ((var_r31->unk_00 == 0) || ((var_r26 & var_r31->unk_0C) == 0)) { + Hu3DCamera[var_r31->unk_38].fov = -1.0f; + } + else { + var_f31 = 1.2f * ((var_r31->unk_44.unk_08 / 640.0f) / (var_r31->unk_44.unk_0C / 480.0f)); + sp10[2] = var_r31->unk_44.unk_08 * var_r31->unk_40; + sp10[3] = var_r31->unk_44.unk_0C * var_r31->unk_40; + Hu3DCameraPerspectiveSet(var_r31->unk_3C, var_r31->unk_10, var_r31->unk_14, var_r31->unk_18, var_f31); + Hu3DCameraViewportSet(var_r31->unk_3C, var_r31->unk_44.unk_00 - (0.5f * sp10[2]), var_r31->unk_44.unk_04 - (0.5f * sp10[3]), sp10[2], + sp10[3], 0.0f, 1.0f); + sp10[0] = var_r31->unk_44.unk_00 - (0.5f * sp10[2]); + sp10[1] = var_r31->unk_44.unk_04 - (0.5f * sp10[3]); + sp8[0] = var_r31->unk_44.unk_00 + (0.5f * sp10[2]); + sp8[1] = var_r31->unk_44.unk_04 + (0.5f * sp10[3]); + if (sp10[0] < 0.0f) { + sp10[0] = 0.0f; + } + if (sp10[1] < 0.0f) { + sp10[1] = 0.0f; + } + if (sp8[0] > 640.0f) { + sp8[0] = 640.0f; + } + if (sp8[1] > 480.0f) { + sp8[1] = 480.0f; + } + sp8[0] -= sp10[0]; + sp8[1] -= sp10[1]; + var_r21 = sp8[1]; + var_r22 = sp8[0]; + var_r23 = sp10[1]; + Hu3DCameraScissorSet(var_r31->unk_3C, sp10[0], var_r23, var_r22, var_r21); + var_r29 = var_r31->unk_38; + CenterM[var_r29].x = var_r31->unk_1C.x; + CenterM[var_r29].y = var_r31->unk_1C.y; + CenterM[var_r29].z = var_r31->unk_1C.z; + CRotM[var_r29].x = var_r31->unk_28.x; + CRotM[var_r29].y = var_r31->unk_28.y; + CRotM[var_r29].z = var_r31->unk_28.z; + CZoomM[var_r29] = var_r31->unk_34; + } + } + } +} + +void fn_1_38FC(ModelData *model, Mtx mtx) +{ + Mtx spC; + float var_f31; + float var_f30; + float var_f29; + + PSMTXIdentity(spC); + GXLoadPosMtxImm(spC, 0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetTevColor(GX_TEVREG0, lbl_1_data_A0); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetBlendMode(GX_BM_NONE, GX_BL_ONE, GX_BL_ZERO, GX_LO_SET); + GXSetZMode(GX_TRUE, GX_ALWAYS, GX_TRUE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + var_f31 = 4125.0f; + var_f30 = 2750.0f; + var_f29 = 5494.5f; + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-var_f31, var_f30, -var_f29); + GXPosition3f32(var_f31, var_f30, -var_f29); + GXPosition3f32(var_f31, -var_f30, -var_f29); + GXPosition3f32(-var_f31, -var_f30, -var_f29); +} + +void fn_1_3B50(u32 arg0) +{ + lbl_1_bss_1C->work[1] = arg0; +} + +u32 fn_1_3B64(void) +{ + return lbl_1_bss_1C->work[1]; +} + +M421DllCameraStruct *fn_1_3B78(s32 arg0) +{ + M421DllCameraStruct *var_r31; + s32 var_r30; + M421DllCameraStruct *var_r29; + + var_r29 = lbl_1_bss_1C->data; + for (var_r31 = var_r29, var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if ((var_r31->unk_0C & arg0) != 0) { + break; + } + } + if (var_r30 >= 5) { + OSReport("M421:Camera Flag Error!!\n"); + return NULL; + } + return var_r31; +} + +M421DllCameraStruct *fn_1_3C14(s32 arg0) +{ + M421DllCameraStruct *var_r31; + s32 var_r30; + M421DllCameraStruct *var_r29; + + var_r29 = lbl_1_bss_1C->data; + for (var_r31 = &var_r29[5], var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if ((var_r31->unk_0C & arg0) != 0) { + break; + } + } + if (var_r30 >= 5) { + OSReport("M421:Camera Flag Error!!\n"); + return NULL; + } + return var_r31; +} + +M421DllCameraStruct *fn_1_3CB0(u32 arg0) +{ + M421DllCameraStruct *var_r31 = lbl_1_bss_1C->data; + if (arg0 >= 5) { + OSReport("M421:Camera No. Error!!\n"); + return NULL; + } + return &var_r31[arg0]; +} + +M421DllCameraStruct *fn_1_3D18(u32 arg0) +{ + M421DllCameraStruct *var_r31 = lbl_1_bss_1C->data; + if (arg0 >= 5) { + OSReport("M421:Camera No. Error!!\n"); + return NULL; + } + return &var_r31[arg0 + 5]; +} + +void fn_1_3D84(s32 arg0, s32 arg1) +{ + M421DllCameraStruct *var_r31; + s32 var_r30; + s32 var_r29; + M421DllCameraStruct *var_r28; + M421DllCameraStruct *var_r27; + + var_r29 = 0; + if (arg0 >= 0) { + var_r27 = lbl_1_bss_1C->data; + var_r28 = &var_r27[5]; + for (var_r31 = var_r28, var_r30 = 0; var_r30 < 5; var_r30++, var_r31++) { + if ((var_r31->unk_0C & arg1) != 0) { + var_r29 |= var_r31->unk_3C; + } + } + Hu3DModelCameraSet(arg0, var_r29); + } +} + +void fn_1_4030(Vec *sp8, Vec *var_r31) +{ + Vec sp10; + float var_f30; + float var_f29; + + PSVECSubtract(var_r31, sp8, &sp10); + Center = *var_r31; + CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z))); + CRot.y = atan2d(-sp10.x, -sp10.z); + CRot.z = 0.0f; + CZoom = PSVECMag(&sp10); +} + +void fn_1_4238(float arg8, float arg9, float argA, float argB, float argC, float argD) +{ + Vec sp3C; + Vec sp30; + Vec sp24; + + sp3C.x = arg8; + sp3C.y = arg9; + sp3C.z = argA; + sp30.x = argB; + sp30.y = argC; + sp30.z = argD; + PSVECSubtract(&sp30, &sp3C, &sp24); + Center = sp30; + CRot.x = atan2d(sp24.y, sqrtf((sp24.x * sp24.x) + (sp24.z * sp24.z))); + CRot.y = atan2d(-sp24.x, -sp24.z); + CRot.z = 0.0f; + CZoom = PSVECMag(&sp24); +} + +float fn_1_4478(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + float var_f29; + + var_f30 = fmod(arg9 - arg8, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + var_f29 = fmod(arg8 + (argA * var_f31), 360.0); + var_f31 = var_f29; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + return var_f31; +} + +float fn_1_4594(float arg8, float arg9) +{ + float var_f31; + float var_f30; + + var_f30 = fmod(arg9 - arg8, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} diff --git a/src/REL/m460Dll/main.c b/src/REL/m460Dll/main.c index 73c153ea..123f1c3e 100644 --- a/src/REL/m460Dll/main.c +++ b/src/REL/m460Dll/main.c @@ -168,30 +168,30 @@ void ObjectSetup(void) void fn_1_4C8(omObjData *var_r30) { - M460DllWork *var_r31; + M460DllWork *work; var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M460DllWork), MEMORY_DEFAULT_NUM); - var_r31 = var_r30->data; - memset(var_r31, 0, sizeof(M460DllWork)); - var_r31->unk_00 = 0; - var_r31->unk_04 = 0; - var_r31->unk_0C = 0; - var_r31->unk_10 = 0; - var_r31->unk_14 = 0; - var_r31->unk_18 = 0; - var_r31->unk_4C = 0; - var_r31->unk_50 = 0; - var_r31->unk_08 = 0; - var_r31->unk_88 = 0; - var_r31->unk_74 = var_r31->unk_78 = var_r31->unk_7C = var_r31->unk_80 = -1; - var_r31->unk_8C = 0; - var_r31->unk_94 = 0; - var_r31->unk_30 = 0; - var_r31->unk_30 = GWMGRecordGet(0xC); - var_r31->unk_28 = (var_r31->unk_30 >> 0x10) & 0xFF; - var_r31->unk_24 = (var_r31->unk_30 >> 0x18) & 0xFF; - var_r31->unk_30 = (u16)var_r31->unk_30; - fn_1_8CAC(lbl_1_bss_30, var_r31->unk_30); + work = var_r30->data; + memset(work, 0, sizeof(M460DllWork)); + work->unk_00 = 0; + work->unk_04 = 0; + work->unk_0C = 0; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0; + work->unk_4C = 0; + work->unk_50 = 0; + work->unk_08 = 0; + work->unk_88 = 0; + work->unk_74 = work->unk_78 = work->unk_7C = work->unk_80 = -1; + work->unk_8C = 0; + work->unk_94 = 0; + work->unk_30 = 0; + work->unk_30 = GWMGRecordGet(0xC); + work->unk_28 = (work->unk_30 >> 0x10) & 0xFF; + work->unk_24 = (work->unk_30 >> 0x18) & 0xFF; + work->unk_30 = (u16)work->unk_30; + fn_1_8CAC(lbl_1_bss_30, work->unk_30); var_r30->func = fn_1_948; } @@ -200,15 +200,15 @@ void fn_1_5F0(omObjData *var_r29) Vec sp14; Vec sp8; M460DllCameraStruct *var_r31; - M460DllWork *var_r30; + M460DllWork *work; - var_r30 = var_r29->data; - var_r30->unk_04++; - var_r30->unk_10++; - var_r30->unk_18++; - var_r30->unk_50++; - if ((omSysExitReq != 0) && (var_r30->unk_00 != 5)) { - var_r30->unk_00 = 4; + work = var_r29->data; + work->unk_04++; + work->unk_10++; + work->unk_18++; + work->unk_50++; + if ((omSysExitReq != 0) && (work->unk_00 != 5)) { + work->unk_00 = 4; fn_1_7FC(var_r29); } var_r31 = fn_1_3F2C(1); @@ -293,26 +293,26 @@ void fn_1_11EC(omObjData *object) void fn_1_1548(omObjData *object) { - M460DllWork *var_r28 = object->data; + M460DllWork *work = object->data; fn_1_5F0(object); - switch (var_r28->unk_14) { + switch (work->unk_14) { case 0: - var_r28->unk_1C = 0x3C; - var_r28->unk_20 = 0x3C; + work->unk_1C = 0x3C; + work->unk_20 = 0x3C; lbl_1_bss_18 = MGSeqCreate(3, 0); MGSeqPosSet(lbl_1_bss_18, 320.0f, 240.0f); - var_r28->unk_14 = 1; - var_r28->unk_18 = 0; + work->unk_14 = 1; + work->unk_18 = 0; break; case 1: if ((lbl_1_bss_8 < 0) && ((MGSeqStatGet(lbl_1_bss_18) & 0x10) != 0)) { lbl_1_bss_8 = HuAudSeqPlay(0x49); } if (MGSeqStatGet(lbl_1_bss_18) == 0) { - var_r28->unk_2C = 0; - var_r28->unk_44 = 0; - if (var_r28->unk_08 == 0) { - var_r28->unk_18 = 0; + work->unk_2C = 0; + work->unk_44 = 0; + if (work->unk_08 == 0) { + work->unk_18 = 0; object->func = fn_1_197C; } } @@ -322,36 +322,36 @@ void fn_1_1548(omObjData *object) void fn_1_197C(omObjData *object) { - M460DllWork *var_r31 = object->data; + M460DllWork *work = object->data; s32 var_r26 = 0; s32 sp8 = 0; fn_1_5F0(object); - switch (var_r31->unk_14) { + switch (work->unk_14) { case 1: if (WipeStatGet() == 0) { - var_r31->unk_38 = 3; - var_r31->unk_3C = 0; - var_r31->unk_40 = 0; - var_r31->unk_1C = 0x3C; - var_r31->unk_20 = 0x3C; - var_r31->unk_14 = 2; - var_r31->unk_18 = 0; + work->unk_38 = 3; + work->unk_3C = 0; + work->unk_40 = 0; + work->unk_1C = 0x3C; + work->unk_20 = 0x3C; + work->unk_14 = 2; + work->unk_18 = 0; } break; case 2: - if (var_r31->unk_38 == 3) { - if ((--var_r31->unk_20) == 0) { - var_r31->unk_20 = 0x3C; - var_r31->unk_1C--; - if (var_r31->unk_1C == 0) { - var_r31->unk_44 = 1; + if (work->unk_38 == 3) { + if ((--work->unk_20) == 0) { + work->unk_20 = 0x3C; + work->unk_1C--; + if (work->unk_1C == 0) { + work->unk_44 = 1; fn_1_42BC(frandmod(2)); } } - if ((lbl_1_bss_16 < 0) && (var_r31->unk_1C < 0xA)) { - lbl_1_bss_16 = MGSeqCreate(1, var_r31->unk_1C, -1, -1); + if ((lbl_1_bss_16 < 0) && (work->unk_1C < 0xA)) { + lbl_1_bss_16 = MGSeqCreate(1, work->unk_1C, -1, -1); } - MGSeqParamSet(lbl_1_bss_16, 1, var_r31->unk_1C); + MGSeqParamSet(lbl_1_bss_16, 1, work->unk_1C); } else { if (lbl_1_bss_16 >= 0) { @@ -359,65 +359,65 @@ void fn_1_197C(omObjData *object) lbl_1_bss_16 = -1; } if (frandmod(0x3E8) < 0x1F4) { - var_r31->unk_44 = 1; + work->unk_44 = 1; } - if (var_r31->unk_2C >= 0x1E) { - var_r31->unk_44 = 1; + if (work->unk_2C >= 0x1E) { + work->unk_44 = 1; } - if (var_r31->unk_44 != 0) { - var_r31->unk_44 = 1; - var_r31->unk_88 = 1; + if (work->unk_44 != 0) { + work->unk_44 = 1; + work->unk_88 = 1; } - var_r31->unk_14 = 3; - var_r31->unk_18 = 0; + work->unk_14 = 3; + work->unk_18 = 0; } break; case 3: if (fn_1_4358() != 0) { - if (var_r31->unk_44 != 0) { + if (work->unk_44 != 0) { var_r26 = 1; } - else if (var_r31->unk_18 > 60.0f) { - if (var_r31->unk_08 == 0) { + else if (work->unk_18 > 60.0f) { + if (work->unk_08 == 0) { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x1E); WipeColorSet(0, 0, 0); } - var_r31->unk_14 = 4; - var_r31->unk_18 = 0; + work->unk_14 = 4; + work->unk_18 = 0; } } else { - var_r31->unk_18 = 0; + work->unk_18 = 0; } break; case 4: if (WipeStatGet() == 0) { - var_r31->unk_2C++; - if (var_r31->unk_08 == 0) { + work->unk_2C++; + if (work->unk_08 == 0) { WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x1E); } - var_r31->unk_14 = 1; - var_r31->unk_18 = 0; + work->unk_14 = 1; + work->unk_18 = 0; } break; } if (var_r26 != 0) { lbl_1_bss_14 = MGSeqCreate(3, 1); HuAudSeqFadeOut(lbl_1_bss_8, 0x64); - var_r31->unk_24++; - if (var_r31->unk_24 > 0xFF) { - var_r31->unk_24 = 0xFF; + work->unk_24++; + if (work->unk_24 > 0xFF) { + work->unk_24 = 0xFF; } - if (var_r31->unk_2C > var_r31->unk_30) { - var_r31->unk_28 = var_r31->unk_24; - var_r31->unk_30 = var_r31->unk_2C; - var_r31->unk_48 = 1; - GWMGRecordSet(0xC, var_r31->unk_30); + if (work->unk_2C > work->unk_30) { + work->unk_28 = work->unk_24; + work->unk_30 = work->unk_2C; + work->unk_48 = 1; + GWMGRecordSet(0xC, work->unk_30); } - mgRecordExtra = var_r31->unk_2C; - var_r31->unk_14 = 5; - var_r31->unk_18 = 0; - if (var_r31->unk_08 == 0) { + mgRecordExtra = work->unk_2C; + work->unk_14 = 5; + work->unk_18 = 0; + if (work->unk_08 == 0) { object->func = fn_1_201C; } } @@ -425,7 +425,7 @@ void fn_1_197C(omObjData *object) void fn_1_201C(omObjData *object) { - M460DllWork *var_r26 = object->data; + M460DllWork *work = object->data; if (lbl_1_bss_16 >= 0) { MGSeqParamSet(lbl_1_bss_16, 2, -1); @@ -433,13 +433,13 @@ void fn_1_201C(omObjData *object) } fn_1_5F0(object); if (MGSeqStatGet(lbl_1_bss_14) == 0) { - if (var_r26->unk_48 != 0) { + if (work->unk_48 != 0) { fn_1_8FAC(1); - lbl_1_bss_12 = MGSeqCreate(0xE, var_r26->unk_30); - var_r26->unk_48 = 0; + lbl_1_bss_12 = MGSeqCreate(0xE, work->unk_30); + work->unk_48 = 0; } - var_r26->unk_14 = 6; - var_r26->unk_18 = 0; + work->unk_14 = 6; + work->unk_18 = 0; fn_1_7FC(object); } } @@ -460,11 +460,11 @@ void fn_1_2564(omObjData *object) { Vec sp20; M460DllCameraStruct *var_r26; - M460DllWork *var_r25; + M460DllWork *work; s32 var_r24; float var_f31; - var_r25 = object->data; + work = object->data; fn_1_5F0(object); object->work[0]++; var_f31 = lbl_1_data_AC[object->work[1]]; @@ -499,11 +499,11 @@ void fn_1_2564(omObjData *object) fn_1_8BA0(lbl_1_data_A0[object->work[1]]); } if (lbl_1_data_AC[object->work[1]] == 0) { - var_r25->unk_0C = 2; + work->unk_0C = 2; fn_1_7FC(object); } else if (lbl_1_data_AC[object->work[1] + 1] == 0) { - var_r25->unk_0C = 1; + work->unk_0C = 1; } } } @@ -515,7 +515,7 @@ omObjFunc fn_1_2D64(Process *process, omObjData *object) void fn_1_2D70(omObjData *object) { - M460DllWork *var_r26 = object->data; + M460DllWork *work = object->data; s32 var_r23 = 1; fn_1_5F0(object); if (lbl_1_bss_12 >= 0) { @@ -526,21 +526,21 @@ void fn_1_2D70(omObjData *object) lbl_1_bss_12 = -1; } } - if (var_r26->unk_8C != 1) { + if (work->unk_8C != 1) { var_r23 = 0; } if (var_r23 != 0) { - var_r26->unk_4C = 1; + work->unk_4C = 1; if (lbl_1_bss_4 < 0) { lbl_1_bss_4 = HuAudSStreamPlay(4); } - if (var_r26->unk_50 >= 210.0f) { - var_r26->unk_4C = 2; + if (work->unk_50 >= 210.0f) { + work->unk_4C = 2; fn_1_7FC(object); } } else { - var_r26->unk_50 = 0; + work->unk_50 = 0; } } @@ -569,7 +569,7 @@ void fn_1_337C(omObjData *object) object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 10 * sizeof(M460DllCameraStruct), MEMORY_DEFAULT_NUM); var_r28 = object->data; - memset(var_r28, 0, 0x668); + memset(var_r28, 0, 10 * sizeof(M460DllCameraStruct)); object->model[0] = Hu3DHookFuncCreate(fn_1_3BC0); Hu3DModelLayerSet(object->model[0], 0); Hu3DModelCameraSet(object->model[0], 0x1E); @@ -879,9 +879,9 @@ s32 fn_1_419C(void) void fn_1_41B4(s32 arg0, s32 arg1, s32 arg2) { - M460DllWork *var_r31 = lbl_1_bss_2C->data; - var_r31->unk_64[arg0 &= 3] = arg1; - var_r31->unk_54[arg0] = arg2; + M460DllWork *work = lbl_1_bss_2C->data; + work->unk_64[arg0 &= 3] = arg1; + work->unk_54[arg0] = arg2; } void fn_1_41F4(s32 arg0) @@ -906,9 +906,9 @@ s32 fn_1_4284(void) void fn_1_42BC(u32 arg0) { - M460DllWork *var_r31 = lbl_1_bss_2C->data; - if (var_r31->unk_38 == 3) { - var_r31->unk_38 = arg0; + M460DllWork *work = lbl_1_bss_2C->data; + if (work->unk_38 == 3) { + work->unk_38 = arg0; } } From 1ae91925a61eb7d3b01842dd1564e350a9009366 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Tue, 19 Nov 2024 16:17:51 -0500 Subject: [PATCH 162/311] up to 3444 --- include/REL/m418Dll.h | 2 + src/REL/m418Dll/main.c | 316 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 309 insertions(+), 9 deletions(-) diff --git a/include/REL/m418Dll.h b/include/REL/m418Dll.h index 3fd899d3..73a943fd 100644 --- a/include/REL/m418Dll.h +++ b/include/REL/m418Dll.h @@ -17,7 +17,9 @@ typedef struct M418DllUnkStruct { char unk48[0x4]; } M418DllUnkStruct; // sizeof 0x4C +f32 fn_1_A920(f32, f32, f32); void fn_1_ABC4(omObjData*, s32, s32, s32, s32); +void fn_1_AD14(omObjData*, s32, s32, s32, s32); void fn_1_B104(M418DllUnkStruct*, Vec, Vec); void fn_1_B41C(M418DllUnkStruct*); diff --git a/src/REL/m418Dll/main.c b/src/REL/m418Dll/main.c index a9f5f9c2..d844ac0f 100644 --- a/src/REL/m418Dll/main.c +++ b/src/REL/m418Dll/main.c @@ -16,9 +16,16 @@ typedef struct M418DllUnkStruct2 { } M418DllUnkStruct2; // sizeof 0x14 typedef struct M418DllUnkStruct3 { - char unk0[0x4]; + omObjData* unk0; s32 unk4; - char unk[0x58]; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + f32 unk20; + char unk24[0x3C]; } M418DllUnkStruct3; // sizeof 0x60 typedef struct M418DllUnkStruct4 { @@ -35,12 +42,20 @@ typedef struct M418DllUnkStruct5 { char unk[0x14]; s32 unk14; char unk18[0x14]; -} M418DllUnkStruct5; // sizeof 0x2C; +} M418DllUnkStruct5; // sizeof 0x2C typedef struct M418DllUnkStruct6 { s32 unk0; char unk4[0x40]; -} M418DllUnkStruct6; +} M418DllUnkStruct6; // sizeof 0x44 + +typedef struct M418DllWorkStruct { + omObjData* unk0; + Vec unk4; + Vec unk10[10]; + s32 unk88; + s32 unk8C[10]; +} M418DllWorkStruct; // bss M418DllUnkStruct6 lbl_1_bss_3EC; @@ -50,6 +65,7 @@ M418DllUnkStruct lbl_1_bss_1F4; M418DllUnkStruct2 lbl_1_bss_1E0; M418DllUnkStruct4 lbl_1_bss_170[4]; M418DllUnkStruct4 lbl_1_bss_11C[3]; +M418DllWorkStruct lbl_1_bss_68; s32 lbl_1_bss_8; s32 lbl_1_bss_4; Process* lbl_1_bss_0; @@ -58,9 +74,6 @@ Process* lbl_1_bss_0; s32 lbl_1_data_0[2] = { -1, -1 }; s32 lbl_1_data_8 = -1; -// protos -void fn_1_AD14(omObjData*, s32, s32, s32, s32); - void fn_1_0(void) { Hu3DGLightCreate(-2500.0f, 5000.0f, 5000.0f, 0.0f, -1.0f, -1.0f, 0xFF, 0xD8, 0xA0); } @@ -447,8 +460,8 @@ s32 fn_1_18FC(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { if (var_f27 >= arg9) { var_f27 = arg9; } else if (var_f27 <= 1.0f) { - var_f31 = var_f30 = var_f27 = 0.0f; - var_r28 = 1; + var_f31 = var_f30 = var_f27 = 0.0f; + var_r28 = 1; } if (var_f31 != 0.0f || var_f30 != 0.0f || arg8 >= 0.0f) { if (arg8 >= 0.0f && var_f31 == 0.0f && var_f30 == 0.0f) { @@ -605,3 +618,288 @@ s32 fn_1_2178(omObjData* object) { break; } } + +void fn_1_2894(omObjData* object) { + Mtx sp3C; + Mtx spC; + M418DllUnkStruct6* sp8; + f32 temp_f31; + + sp8 = &lbl_1_bss_3EC; + temp_f31 = 0.5f + (0.5f * (CRot.x / 90.0f)); + Hu3DModelObjMtxGet(object->model[0], "g031m1-itemhook_R", spC); + Hu3DModelObjMtxGet(object->model[5], "g031i00-itemhook_eff", sp3C); + Hu3DModelRotSet(object->model[6], 0.0f, -object->rot.y, 0.0f); + Hu3DModelScaleSet(object->model[6], 0.35f, temp_f31, 0.35f); + fn_1_2178(object); +} + +void fn_1_29A0(omObjData* object) { + u32 temp_r30; + + temp_r30 = object->work[0]; + object->model[0] = Hu3DModelCreateFile(0x31002A); + object->motion[0] = Hu3DJointMotionFile(object->model[0], 0x31002B); + object->motion[1] = Hu3DJointMotionFile(object->model[0], 0x31002C); + object->motion[2] = Hu3DJointMotionFile(object->model[0], 0x31002D); + object->motion[3] = Hu3DJointMotionFile(object->model[0], 0x31002E); + omSetTra(object, lbl_1_data_8C[temp_r30].x, lbl_1_data_8C[temp_r30].y, lbl_1_data_8C[temp_r30].z); + fn_1_ABC4(object, 0, 0, 0, 1); + object->model[5] = Hu3DModelCreateFile(0x31002F); + Hu3DModelHookSet(object->model[0], "g031m1-itemhook_R", object->model[5]); + object->model[6] = Hu3DModelCreateFile(0x310027); + object->motion[6] = Hu3DMotionIDGet(object->model[6]); + Hu3DModelHookSet(object->model[5], "g031i00-itemhook_eff", object->model[6]); + fn_1_ABC4(object, 6, 6, 0, 1); + object->work[1] = -1; + Hu3DModelShadowSet(object->model[0]); + object->func = fn_1_2894; +} + +void fn_1_2BC4(Vec* arg0) { + M418DllWorkStruct* var_r31 = &lbl_1_bss_68; + var_r31->unk4.x = arg0->x; + var_r31->unk4.y = arg0->y; + var_r31->unk4.z = arg0->z; + var_r31->unk88 = 0; + var_r31->unk0->work[0] = 1; +} + +void fn_1_2C0C(omObjData* object) { + ModelData* temp_r28; + M418DllWorkStruct* var_r31 = &lbl_1_bss_68; + s32 var_r30; + + switch (object->work[0]) { + case 1: + for (var_r30 = 0; var_r30 < 10; var_r30++) { + var_r31->unk10[var_r30].x = (var_r31->unk4.x + 50.0 * cosd(36.0f * var_r30)) + (rand8() % 25); + var_r31->unk10[var_r30].y = (var_r31->unk4.y + 50.0 * sind(36.0f * var_r30)) + (rand8() % 25); + var_r31->unk10[var_r30].z = var_r31->unk4.z; + var_r31->unk8C[var_r30] = (rand8() % 5) + 10; + Hu3DModelPosSet(object->model[var_r30 + 1], var_r31->unk4.x, var_r31->unk4.y, var_r31->unk4.z); + Hu3DModelTPLvlSet(object->model[var_r30 + 1], 1.0f); + } + object->work[0] = 2; + break; + case 2: + for (var_r30 = 0; var_r30 < 10; var_r30++) { + temp_r28 = &Hu3DData[object->model[var_r30 + 1]]; + temp_r28->pos.x = fn_1_A920(temp_r28->pos.x, var_r31->unk10[var_r30].x, var_r31->unk8C[var_r30]); + temp_r28->pos.y = fn_1_A920(temp_r28->pos.y, var_r31->unk10[var_r30].y, var_r31->unk8C[var_r30]); + temp_r28->pos.z = fn_1_A920(temp_r28->pos.z, var_r31->unk10[var_r30].z, var_r31->unk8C[var_r30]); + if (var_r31->unk88 >= 20) { + Hu3DModelTPLvlSet(object->model[var_r30 + 1], 1.0f - (0.1f * (var_r31->unk88 - 0x14))); + } + } + if (var_r31->unk88 >= 30) { + object->work[0] = 0; + } + var_r31->unk88++; + } +} + +void fn_1_3054(omObjData* object) { + s32 var_r30; + + for (var_r30 = 1; var_r30 < 11; var_r30++) { + object->model[var_r30] = Hu3DModelCreateFile(0x310029); + Hu3DModelPosSet(object->model[var_r30], 0.0f, -500.0f, 0.0f); + Hu3DModelScaleSet(object->model[var_r30], 10.0f, 10.0f, 10.0f); + } + object->work[0] = 0; + object->func = fn_1_2C0C; +} + +void fn_1_3138(void) { + M418DllUnkStruct3* temp_r31; + s32 var_r30; + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + temp_r31 = &lbl_1_bss_26C[var_r30]; + temp_r31->unk4 = var_r30; + temp_r31->unk8 = GWPlayerCfg[temp_r31->unk4].group; + if (temp_r31->unk8 == 0) { + temp_r31->unk8 = 0; + } else { + temp_r31->unk8 = 1; + } + temp_r31->unkC = GWPlayerCfg[temp_r31->unk4].iscom; + if (temp_r31->unkC != 0) { + temp_r31->unk10 = GWPlayerCfg[temp_r31->unk4].diff; + } else { + temp_r31->unk10 = 0; + } + temp_r31->unk14 = GWPlayerCfg[temp_r31->unk4].character; + temp_r31->unk18 = GWPlayerCfg[temp_r31->unk4].pad_idx; + } +} + +const char* lbl_1_data_1C0[8] = { + "test11_tex_we-itemhook-r", + "test11_tex_we-itemhook-r", + "test11_tex_we-itemhook-r", + "test11_tex_we-itemhook-r", + "test11_tex_we-itemhook-r", + "test11_tex_we-itemhook-r", + "test11_tex_we-itemhook-r", + "test11_tex_we-itemhook-r" +}; + +void fn_1_3240(omObjData* object) { + Mtx sp14; + Vec sp8; + M418DllUnkStruct3* temp_r28; + ModelData* temp_r30; + M418DllWorkStruct* var_r29; + + temp_r30 = &Hu3DData[object->model[11]]; + temp_r28 = &lbl_1_bss_26C[object->work[0]]; + switch (object->work[1]) { + case 1: + Hu3DModelHookReset(object->model[0]); + Hu3DModelObjMtxGet(object->model[0], lbl_1_data_1C0[temp_r28->unk14], sp14); + Hu3DModelPosSet(object->model[11], sp14[0][3], sp14[1][3], sp14[2][3]); + temp_r30->rot.y = object->rot.y; + object->work[1] = 2; + object->work[2] = 0; + break; + case 2: + fn_1_AD14(object, 0, 0, 0x1E, 1); + temp_r30->pos.y = fn_1_A920(temp_r30->pos.y, 350.0f, 30.0f); + temp_r30->rot.x += 30.0f; + if (object->work[2]++ >= 0x1EU) { + HuAudFXPlay(0x5DE); + sp8 = temp_r30->pos; + var_r29 = &lbl_1_bss_68; + var_r29->unk4.x = sp8.x; + var_r29->unk4.y = sp8.y; + var_r29->unk4.z = sp8.z; + var_r29->unk88 = 0; + var_r29->unk0->work[0] = 1; + Hu3DModelAttrSet(object->model[11], 1); + object->work[1] = object->work[2] = 0; + } + break; + } +} + +void fn_1_3408(omObjData* object) { + M418DllUnkStruct3* temp_r31; + + temp_r31 = &lbl_1_bss_26C[object->work[0]]; + if (temp_r31->unk1C == 0) { + temp_r31->unk1C = 1; + } +} + +void fn_1_3444(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { + s32 sp24; + f32 sp20; + f32 sp1C; + f32 sp18; + M418DllUnkStruct3* temp_r28; + M418DllUnkStruct3* temp_r30; + + f32 var_f31; + f32 var_f30; + f32 temp_f29; + f32 temp_f28; + f32 var_f24; + f32 var_f23; + f32 var_f22; + + s32 var_r27; + s32 var_r29; + + sp24 = 0; + var_r27 = 0; + temp_r30 = &lbl_1_bss_26C[object->work[0]]; + var_f31 = arg1.x - object->trans.x; + var_f30 = object->trans.z - arg1.z; + var_f23 = 90.0 + atan2d(var_f30, var_f31); + var_f24 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f24 <= 30.0f) { + var_f31 = var_f30 = 0.0f; + } else { + var_f31 = 55.0f * (var_f31 / var_f24); + var_f30 = 55.0f * (var_f30 / var_f24); + } + if (temp_r30->unk1C == 1) { + temp_r30->unk20 = -1.47f; + } + var_f24 = arg9 * (sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)) / 72.0f); + if (var_f24 >= arg9) { + var_f24 = arg9; + } else if (var_f24 <= 1.0f) { + var_f31 = var_f30 = var_f24 = 0.0f; + } + if (var_f31 != 0.0f || var_f30 != 0.0f || arg8 >= 0.0f) { + if (arg8 >= 0.0f && var_f31 == 0.0f && var_f30 == 0.0f) { + var_f23 = arg8; + } + if (var_f23 >= 180.0f) { + if (object->rot.y - var_f23 >= 180.0f) { + object->rot.y -= 360.0f; + } + if (object->rot.y - var_f23 < -180.0f) { + object->rot.y += 360.0f; + } + } else { + if (object->rot.y - var_f23 > 180.0f) { + object->rot.y -= 360.0f; + } + if (object->rot.y - var_f23 <= -180.0f) { + object->rot.y += 360.0f; + } + } + object->rot.y = (((9.0f * object->rot.y) + var_f23) / 10.0f); + } + var_r27 = 0; + sp1C = object->trans.x + (50.0 * cosd(object->rot.y - 90.0f)); + sp18 = object->trans.z - (50.0 * sind(object->rot.y - 90.0f)); + + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r29 == object->work[0]) continue; + temp_r28 = &lbl_1_bss_26C[var_r29]; + temp_f29 = temp_r28->unk0->trans.x; + temp_f28 = temp_r28->unk0->trans.z; + temp_f29 -= sp1C; + temp_f28 -= sp18; + if (sqrtf((temp_f29 * temp_f29) + (temp_f28 * temp_f28)) < 100.0f) { + var_r27 = 1; + break; + } + } + if (var_r27 == 0) { + object->trans.x = object->trans.x + (var_f24 * sind(object->rot.y)); + object->trans.z = object->trans.z + (var_f24 * cosd(object->rot.y)); + } + if (temp_r30->unk1C != 0) { + temp_r30->unk1C = 2; + if (temp_r30->unk20 > 1.7f) { + temp_r30->unk20 = 1.7f; + } + sp20 = temp_r30->unk20 * temp_r30->unk20 * (temp_r30->unk20 >= 0.0f ? -17.5f : 17.5f); + object->trans.y += sp20; + if (object->trans.y <= 0.0f) { + object->trans.y = 0.0f; + temp_r30->unk1C = temp_r30->unk20 = 0.0f; + omVibrate(temp_r30->unk4, 0xC, 6, 6); + } + temp_r30->unk20 += 0.11f; + } + if (temp_r30->unk1C != 0) { + fn_1_AD14(object, 0, 3, 10, 0); + return; + } + if (var_f24 >= 6.75f) { + fn_1_AD14(object, 0, 2, 10, 1); + return; + } + if (var_f24 > 0.0f) { + fn_1_AD14(object, 0, 1, 10, 1); + return; + } + fn_1_AD14(object, 0, 0, 10, 1); +} From c9f9191feabf2eff214e9581dc3ee03362ec8285 Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Wed, 20 Nov 2024 13:02:55 -0500 Subject: [PATCH 163/311] fix download_tool.py --- .vscode/settings.json | 77 ++++++++++++++++++++++++++++++++++++------ configure.py | 2 +- tools/download_tool.py | 4 ++- 3 files changed, 71 insertions(+), 12 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 6f6e1099..fe219716 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -29,16 +29,73 @@ }, "search.useIgnoreFiles": false, "search.exclude": { - "build/*/config.json": true, - "build/**/*.MAP": true, - "build.ninja": true, - ".ninja_*": true, - "objdiff.json": true, - "progress.json": true, - "report.json": true, - "compile_commands.json": true, + "build/*/config.json": true, + "build/**/*.MAP": true, + "build.ninja": true, + ".ninja_*": true, + "objdiff.json": true, + "progress.json": true, + "report.json": true, + "compile_commands.json": true }, "cmake.ignoreCMakeListsMissing": true, "editor.fontFamily": "Fira Code", - "editor.fontLigatures": true -} + "editor.fontLigatures": true, + "C_Cpp_Runner.cCompilerPath": "gcc", + "C_Cpp_Runner.cppCompilerPath": "g++", + "C_Cpp_Runner.debuggerPath": "gdb", + "C_Cpp_Runner.cStandard": "", + "C_Cpp_Runner.cppStandard": "", + "C_Cpp_Runner.msvcBatchPath": "C:/Program Files/Microsoft Visual Studio/VR_NR/Community/VC/Auxiliary/Build/vcvarsall.bat", + "C_Cpp_Runner.useMsvc": false, + "C_Cpp_Runner.warnings": [ + "-Wall", + "-Wextra", + "-Wpedantic", + "-Wshadow", + "-Wformat=2", + "-Wcast-align", + "-Wconversion", + "-Wsign-conversion", + "-Wnull-dereference" + ], + "C_Cpp_Runner.msvcWarnings": [ + "/W4", + "/permissive-", + "/w14242", + "/w14287", + "/w14296", + "/w14311", + "/w14826", + "/w44062", + "/w44242", + "/w14905", + "/w14906", + "/w14263", + "/w44265", + "/w14928" + ], + "C_Cpp_Runner.enableWarnings": true, + "C_Cpp_Runner.warningsAsError": false, + "C_Cpp_Runner.compilerArgs": [], + "C_Cpp_Runner.linkerArgs": [], + "C_Cpp_Runner.includePaths": [], + "C_Cpp_Runner.includeSearch": [ + "*", + "**/*" + ], + "C_Cpp_Runner.excludeSearch": [ + "**/build", + "**/build/**", + "**/.*", + "**/.*/**", + "**/.vscode", + "**/.vscode/**" + ], + "C_Cpp_Runner.useAddressSanitizer": false, + "C_Cpp_Runner.useUndefinedSanitizer": false, + "C_Cpp_Runner.useLeakSanitizer": false, + "C_Cpp_Runner.showCompilationTime": false, + "C_Cpp_Runner.useLinkTimeOptimization": false, + "C_Cpp_Runner.msvcSecureNoWarnings": false +} \ No newline at end of file diff --git a/configure.py b/configure.py index 3f14b329..e1153506 100644 --- a/configure.py +++ b/configure.py @@ -149,7 +149,7 @@ config.binutils_tag = "2.42-1" config.compilers_tag = "20240706" config.dtk_tag = "v1.1.4" config.objdiff_tag = "v2.3.3" -config.sjiswrap_tag = "v1.1.1" +config.sjiswrap_tag = "v1.2.0" config.wibo_tag = "0.6.11" # Project diff --git a/tools/download_tool.py b/tools/download_tool.py index f4512d01..09b002a5 100644 --- a/tools/download_tool.py +++ b/tools/download_tool.py @@ -20,6 +20,8 @@ import urllib.request import zipfile from typing import Callable, Dict from pathlib import Path +import certifi +import ssl def binutils_url(tag): @@ -104,7 +106,7 @@ def main() -> None: print(f"Downloading {url} to {output}") req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"}) - with urllib.request.urlopen(req) as response: + with urllib.request.urlopen(req, context=ssl.create_default_context(cafile=certifi.where())) as response: if url.endswith(".zip"): data = io.BytesIO(response.read()) with zipfile.ZipFile(data) as f: From 68521c6732c64bdcec91627fde2e8299b2393ffb Mon Sep 17 00:00:00 2001 From: CreateSource Date: Wed, 20 Nov 2024 16:30:31 -0500 Subject: [PATCH 164/311] up to 57E4 --- include/REL/m418Dll.h | 11 +- src/REL/m418Dll/main.c | 370 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 367 insertions(+), 14 deletions(-) diff --git a/include/REL/m418Dll.h b/include/REL/m418Dll.h index 73a943fd..af7e7ab4 100644 --- a/include/REL/m418Dll.h +++ b/include/REL/m418Dll.h @@ -14,13 +14,22 @@ typedef struct M418DllUnkStruct { f32 zoom; char unk38[0x4]; f32 unk3C[3]; - char unk48[0x4]; + f32 unk48; } M418DllUnkStruct; // sizeof 0x4C +typedef struct M418DllUnkStruct7 { + char unk[0x18]; +} M418DllUnkStruct7; // sizeof 0x18 + f32 fn_1_A920(f32, f32, f32); void fn_1_ABC4(omObjData*, s32, s32, s32, s32); void fn_1_AD14(omObjData*, s32, s32, s32, s32); +s32 fn_1_AF38(M418DllUnkStruct7*); +s32 fn_1_B0C8(M418DllUnkStruct7*, s32); void fn_1_B104(M418DllUnkStruct*, Vec, Vec); void fn_1_B41C(M418DllUnkStruct*); +void fn_1_B458(M418DllUnkStruct*); +void fn_1_CBF8(M418DllUnkStruct*, M418DllUnkStruct*, f32, f32, f32); +void fn_1_DC10(M418DllUnkStruct*, M418DllUnkStruct*, f32, f32, f32); #endif diff --git a/src/REL/m418Dll/main.c b/src/REL/m418Dll/main.c index d844ac0f..daf129d7 100644 --- a/src/REL/m418Dll/main.c +++ b/src/REL/m418Dll/main.c @@ -1,5 +1,6 @@ #include "math.h" #include "ext_math.h" +#include "game/chrman.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/minigame_seq.h" @@ -25,7 +26,14 @@ typedef struct M418DllUnkStruct3 { s32 unk18; s32 unk1C; f32 unk20; - char unk24[0x3C]; + s32 unk24; + f32 unk28; + f32 unk2C; + f32 unk30; + f32 unk34; + f32 unk38; + f32 unk3C; + char unk[0x20]; } M418DllUnkStruct3; // sizeof 0x60 typedef struct M418DllUnkStruct4 { @@ -66,6 +74,7 @@ M418DllUnkStruct2 lbl_1_bss_1E0; M418DllUnkStruct4 lbl_1_bss_170[4]; M418DllUnkStruct4 lbl_1_bss_11C[3]; M418DllWorkStruct lbl_1_bss_68; +M418DllUnkStruct7 lbl_1_bss_50; s32 lbl_1_bss_8; s32 lbl_1_bss_4; Process* lbl_1_bss_0; @@ -656,11 +665,11 @@ void fn_1_29A0(omObjData* object) { object->func = fn_1_2894; } -void fn_1_2BC4(Vec* arg0) { +void fn_1_2BC4(Vec arg0) { M418DllWorkStruct* var_r31 = &lbl_1_bss_68; - var_r31->unk4.x = arg0->x; - var_r31->unk4.y = arg0->y; - var_r31->unk4.z = arg0->z; + var_r31->unk4.x = arg0.x; + var_r31->unk4.y = arg0.y; + var_r31->unk4.z = arg0.z; var_r31->unk88 = 0; var_r31->unk0->work[0] = 1; } @@ -770,13 +779,7 @@ void fn_1_3240(omObjData* object) { temp_r30->rot.x += 30.0f; if (object->work[2]++ >= 0x1EU) { HuAudFXPlay(0x5DE); - sp8 = temp_r30->pos; - var_r29 = &lbl_1_bss_68; - var_r29->unk4.x = sp8.x; - var_r29->unk4.y = sp8.y; - var_r29->unk4.z = sp8.z; - var_r29->unk88 = 0; - var_r29->unk0->work[0] = 1; + fn_1_2BC4(temp_r30->pos); Hu3DModelAttrSet(object->model[11], 1); object->work[1] = object->work[2] = 0; } @@ -853,7 +856,7 @@ void fn_1_3444(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { object->rot.y += 360.0f; } } - object->rot.y = (((9.0f * object->rot.y) + var_f23) / 10.0f); + object->rot.y = (((4.0f * object->rot.y) + var_f23) / 5.0f); } var_r27 = 0; sp1C = object->trans.x + (50.0 * cosd(object->rot.y - 90.0f)); @@ -903,3 +906,344 @@ void fn_1_3444(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { } fn_1_AD14(object, 0, 0, 10, 1); } + +void fn_1_3EB0(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { + M418DllUnkStruct3* temp_r30; + s32 sp10; + f32 var_f31; + f32 var_f30; + f32 var_f27; + f32 var_f26; + f32 var_f24; + f32 var_f20; + + sp10 = 0; + temp_r30 = &lbl_1_bss_26C[object->work[0]]; + var_f31 = arg1.x - object->trans.x; + var_f30 = object->trans.z - arg1.z; + var_f26 = 90.0 + atan2d(var_f30, var_f31); + var_f27 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f27 <= 30.0f) { + var_f31 = var_f30 = 0.0f; + } else { + var_f31 = 55.0f * (var_f31 / var_f27); + var_f30 = 55.0f * (var_f30 / var_f27); + } + if (temp_r30->unk1C == 1) { + temp_r30->unk20 = -1.47f; + } + var_f27 = arg9 * (sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)) / 72.0f); + if (var_f27 >= arg9) { + var_f27 = arg9; + } else if (var_f27 <= 1.0f) { + var_f31 = var_f30 = var_f27 = 0.0f; + } + if (var_f31 != 0.0f || var_f30 != 0.0f || arg8 >= 0.0f) { + if (arg8 >= 0.0f && var_f31 == 0.0f && var_f30 == 0.0f) { + var_f26 = arg8; + } + if (var_f26 >= 180.0f) { + if (object->rot.y - var_f26 >= 180.0f) { + object->rot.y -= 360.0f; + } + if (object->rot.y - var_f26 < -180.0f) { + object->rot.y += 360.0f; + } + } else { + if (object->rot.y - var_f26 > 180.0f) { + object->rot.y -= 360.0f; + } + if (object->rot.y - var_f26 <= -180.0f) { + object->rot.y += 360.0f; + } + } + object->rot.y = (((4.0f * object->rot.y) + var_f26) / 5.0f); + } + object->trans.x += var_f27 * sind(object->rot.y); + object->trans.z += var_f27 * cosd(object->rot.y); + if (temp_r30->unk1C) { + temp_r30->unk1C = 2.0f; + if (temp_r30->unk20 > 1.7f) { + temp_r30->unk20 = 1.7f; + } + var_f20 = (temp_r30->unk20 * temp_r30->unk20) * (temp_r30->unk20 >= 0.0f ? -17.5f : 17.5f); + object->trans.y += var_f20; + if (object->trans.y <= 0.0f) { + object->trans.y = 0.0f; + temp_r30->unk1C = temp_r30->unk20 = 0.0f; + omVibrate(temp_r30->unk4, 0xC, 6, 6); + } + temp_r30->unk20 += 0.11f; + } + if (temp_r30->unk1C != 0) { + fn_1_AD14(object, 0, 3, 10, 0); + } else if (var_f27 >= 6.75f) { + fn_1_AD14(object, 0, 2, 10, 1); + } else if (var_f27 > 0.0f) { + fn_1_AD14(object, 0, 1, 10, 1); + } else { + fn_1_AD14(object, 0, 0, 10, 1); + } +} + +s32 lbl_1_data_1E0[4][2] = { + { -1, 127 }, + { -1, 127 }, + { -1, 127 }, + { -1, 127 } +}; + +void fn_1_46C4(omObjData* object) { + s32 sp8; + M418DllUnkStruct3* temp_r31; + + sp8 = 0; + temp_r31 = &lbl_1_bss_26C[object->work[0]]; + + switch (temp_r31->unk24) { + case 0: + temp_r31->unk2C = object->scale.x; + temp_r31->unk34 = temp_r31->unk38 = 0.0f; + temp_r31->unk24 = 1; + break; + case 1: + temp_r31->unk28 -= 1.0f; + if (temp_r31->unk28 <= 0.0f) { + temp_r31->unk28 = 15.0f; + temp_r31->unk24 = 2; + omVibrate(temp_r31->unk4, 0xC, 0xC, 0); + lbl_1_data_1E0[object->work[0]][0] = HuAudCharVoicePlay(temp_r31->unk14, 0x123); + lbl_1_data_1E0[object->work[0]][1] = 0x7F; + HuAudFXPlay(0x5D4); + } + break; + case 2: + object->trans.x += 4.0f * temp_r31->unk30; + object->trans.y += 125.0 * sind(temp_r31->unk28); + object->trans.z -= 125.0 * cos(M_PI / 12.0); + if (temp_r31->unk28 <= 14.0f) { + Hu3DModelAttrReset(object->model[0], 1); + } + temp_r31->unk28 -= 0.25f; + if (temp_r31->unk28 <= 0.0f) { + temp_r31->unk24 = 3; + } + break; + case 3: + object->trans.y += 110.0 * sind(temp_r31->unk28); + temp_r31->unk28 -= 0.0275f; + temp_r31->unk2C -= 0.0025f; + if (temp_r31->unk2C <= 0.3f) { + temp_r31->unk2C = 0.0f; + temp_r31->unk24 = 4; + temp_r31->unk28 = 0.0f; + HuAudFXPlay(0x5D5); + } + omSetSca(object, temp_r31->unk2C, temp_r31->unk2C, temp_r31->unk2C); + break; + case 4: + temp_r31->unk38 = fn_1_A920(temp_r31->unk38, 360.0f, 15.0f); + temp_r31->unk34 = fn_1_A920(temp_r31->unk34, 4.0f, 15.0f); + Hu3DModelPosSet(object->model[1], object->trans.x, object->trans.y, object->trans.z); + Hu3DModelRotSet(object->model[1], 0.0f, 0.0f, temp_r31->unk38); + Hu3DModelScaleSet(object->model[1], temp_r31->unk34, temp_r31->unk34, temp_r31->unk34); + if (temp_r31->unk28++ >= 30.0f) { + temp_r31->unk24 = 5; + temp_r31->unk28 = 0.0f; + } + break; + case 5: + temp_r31->unk38 = fn_1_A920(temp_r31->unk38, 720.0f, 15.0f); + temp_r31->unk34 = fn_1_A920(temp_r31->unk34, 0.0f, 15.0f); + Hu3DModelPosSet(object->model[1], object->trans.x, object->trans.y, object->trans.z); + Hu3DModelRotSet(object->model[1], 0.0f, 0.0f, temp_r31->unk38); + Hu3DModelScaleSet(object->model[1], temp_r31->unk34, temp_r31->unk34, temp_r31->unk34); + if (temp_r31->unk28++ >= 60.0f) { + temp_r31->unk24 = 6; + temp_r31->unk28 = 0.0f; + } + break; + } + if ((temp_r31->unk24 >= 1) && (temp_r31->unk24 <= 5) && (lbl_1_data_1E0[object->work[0]][0] != -1)) { + HuAudFXVolSet(lbl_1_data_1E0[object->work[0]][0], --lbl_1_data_1E0[object->work[0]][1]); + if (lbl_1_data_1E0[object->work[0]][1] < 0) { + lbl_1_data_1E0[object->work[0]][1] = 0; + } + } +} + +void fn_1_4C84(omObjData* object) { + Mtx sp14; + Vec sp8; + f32 var_f31; + M418DllUnkStruct3* temp_r26; + M418DllWorkStruct* var_r27; + M418DllUnkStruct3* temp_r30; + ModelData* temp_r28; + ModelData* temp_r29; + s32 temp_r0; + u32 temp_r3; + + temp_r30 = &lbl_1_bss_26C[object->work[0]]; + if (temp_r30->unk8 == 0) { + var_f31 = (0.5f * temp_r30->unk3C) + ((CRot.x / 90.0f) * (0.5f * temp_r30->unk3C)); + temp_r29 = &Hu3DData[object->model[12]]; + if ((temp_r30->unk14 == 7) || (temp_r30->unk14 == 5)) { + temp_r29->rot.y = -object->rot.y - 360.0f; + } else { + temp_r29->rot.y = -object->rot.y - 90.0f; + } + temp_r29->scale.x = 0.35f * temp_r30->unk3C; + temp_r29->scale.y = var_f31; + temp_r29->scale.z = 0.35f * temp_r30->unk3C; + fn_1_3240(object); + } + fn_1_46C4(object); +} + +void fn_1_4F60(omObjData* object) { + M418DllUnkStruct3* temp_r30; + + temp_r30 = &lbl_1_bss_26C[object->work[0]]; + object->model[0] = CharModelCreate(temp_r30->unk14, 2); + object->motion[0] = CharModelMotionCreate(temp_r30->unk14, 0x5F0000); + object->motion[1] = CharModelMotionCreate(temp_r30->unk14, 0x5F0002); + object->motion[2] = CharModelMotionCreate(temp_r30->unk14, 0x5F0003); + object->motion[3] = CharModelMotionCreate(temp_r30->unk14, 0x5F0073); + object->motion[4] = CharModelMotionCreate(temp_r30->unk14, 0x5F0074); + object->motion[5] = CharModelMotionCreate(temp_r30->unk14, 0x5F0017); + object->motion[6] = CharModelMotionCreate(temp_r30->unk14, 0x5F0018); + object->motion[7] = CharModelMotionCreate(temp_r30->unk14, 0x5F001B); + object->motion[8] = CharModelMotionCreate(temp_r30->unk14, 0x5F002A); + object->motion[9] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(temp_r30->unk14 + 0x310000, 0x10000000, HEAP_DATA)); + object->motion[10] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(temp_r30->unk14 + 0x310008, 0x10000000, HEAP_DATA)); + object->model[1] = Hu3DModelCreateFile(0x310017); + Hu3DModelPosSet(object->model[1], 0.0f, -5000.0f, 0.0f); + Hu3DModelShadowSet(object->model[0]); + if (temp_r30->unk8 == 0) { + Hu3DMotionOverlaySet(object->model[0], object->motion[9]); + Hu3DMotionOverlaySpeedSet(object->model[0], 0.0f); + object->model[11] = Hu3DModelCreateFile(0x31002F); + Hu3DModelHookSet(object->model[0], CharModelHookNameGet(temp_r30->unk14, 2, 0), object->model[11]); + if ((temp_r30->unk14 == 4) || (temp_r30->unk14 == 5)) { + Hu3DModelScaleSet(object->model[11], 1.0f, 1.2f, 1.0f); + } + object->model[12] = Hu3DModelCreateFile(0x310027); + object->motion[12] = Hu3DMotionIDGet(object->model[12]); + Hu3DModelHookSet(object->model[11], "g031i00-itemhook_eff", object->model[12]); + Hu3DModelScaleSet(object->model[12], 0.0f, 0.5f, 0.0f); + fn_1_ABC4(object, 0xC, 0xC, 0, 1); + object->model[13] = Hu3DModelCreateFile(0x310028); + object->motion[13] = Hu3DMotionIDGet(object->model[13]); + fn_1_ABC4(object, 0xD, 0xD, 0, 2); + } + *lbl_1_data_1E0[object->work[0]] = -1; + CharModelMotionDataClose(temp_r30->unk14); + CharModelLayerSetAll2(7); + object->func = fn_1_4C84; +} + +void fn_1_5358(void) { + M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; + Vec sp2C = { 0.0f, 1100.0f, 1800.0f }; + Vec sp20 = { 0.0f, 600.0f, 600.0f }; + + fn_1_B104(var_r31, sp2C, sp20); + fn_1_B41C(var_r31); + var_r31->rot.x++; +} + +void fn_1_543C(void) { + M418DllUnkStruct sp38; + M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; + Vec sp2C = { -180.0f, 500.0f, 440.0f }; + Vec sp20 = { -180.0f, 330.0f, -760.0f }; + + + fn_1_B104(&sp38, sp2C, sp20); + fn_1_B41C(&sp38); + sp38.center.x = 0.0f; + sp38.center.y -= 75.0f; + sp38.rot.x = -10.0f; + sp38.rot.y = 10.0f; + fn_1_DC10(var_r31, &sp38, var_r31->unk48++, 30.0f, 10.0f); +} + +void fn_1_558C(void) { + M418DllUnkStruct sp38; + M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; + Vec sp2C = { 0.0f, 1100.0f, 1800.0f }; + Vec sp20 = { 0.0f, 600.0f, 600.0f }; + + fn_1_B104(&sp38, sp2C, sp20); + fn_1_B41C(&sp38); + sp38.rot.x++; + fn_1_CBF8(var_r31, &sp38, var_r31->unk48++, 30.0f, 10.0f); +} + +void fn_1_56AC(s32 arg0) { + M418DllUnkStruct* var_r28 = &lbl_1_bss_1F4; + fn_1_B458(var_r28); + switch (arg0) { + case 0: + fn_1_248(fn_1_5358); + break; + case 1: + fn_1_248(fn_1_543C); + break; + case 2: + fn_1_248(fn_1_558C); + break; + } +} + +void fn_1_5768(s32 arg0) { + s32 var_r31; + M418DllUnkStruct4* var_r30; + M418DllUnkStruct* var_r26; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_r30 = &lbl_1_bss_170[var_r31]; + var_r30->unkC = 0; + } + + fn_1_56AC(0); +} + +s32 fn_1_57E4(s32 arg0) { + M418DllUnkStruct4* temp_r31; + M418DllUnkStruct* var_r25; + s32 var_r29; + s32 var_r30; + + if (fn_1_B0C8(&lbl_1_bss_50, 0) >= 0x3C) { + + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r31 = &lbl_1_bss_170[var_r30]; + if (temp_r31->unkC == 0) { + if ((rand8() % 5) == 0) { + var_r29 = 1; + } else { + var_r29 = 0; + } + if ((var_r29 != 0) || (fn_1_B0C8(&lbl_1_bss_50, 0) >= 0x41)) { + HuAudFXPlay(0x5D3); + temp_r31->unkC = 1; + } + } else { + temp_r31->unk4 += 5.0f; + if (temp_r31->unk4 >= 90.0f) { + temp_r31->unk4 = 90.0f; + } + } + } + } + if (fn_1_B0C8(&lbl_1_bss_50, 0) == 0x1E) { + fn_1_56AC(1); + } + if (fn_1_B0C8(&lbl_1_bss_50, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_50); + } else { + return 0; + } +} From 08b09a5f31c721dab6d276fe8057a63231eb8537 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Fri, 22 Nov 2024 00:14:09 -0500 Subject: [PATCH 165/311] up to 7FD4 --- .vscode/settings.json | 84 +--- include/REL/m418Dll.h | 21 +- src/REL/m418Dll/main.c | 859 ++++++++++++++++++++++++++++++++++++++++- 3 files changed, 881 insertions(+), 83 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index fe219716..b4546cc9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -20,82 +20,20 @@ "*.inc": "c", ".clangd": "yaml", "m443dll.h": "c", - "object.h": "c", - "m417dll.h": "c", - "m418dll.h": "c", - "hsfman.h": "c", - "math.h": "c", - "corecrt_math.h": "c" + "object.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { - "build/*/config.json": true, - "build/**/*.MAP": true, - "build.ninja": true, - ".ninja_*": true, - "objdiff.json": true, - "progress.json": true, - "report.json": true, - "compile_commands.json": true + "build/*/config.json": true, + "build/**/*.MAP": true, + "build.ninja": true, + ".ninja_*": true, + "objdiff.json": true, + "progress.json": true, + "report.json": true, + "compile_commands.json": true, }, "cmake.ignoreCMakeListsMissing": true, "editor.fontFamily": "Fira Code", - "editor.fontLigatures": true, - "C_Cpp_Runner.cCompilerPath": "gcc", - "C_Cpp_Runner.cppCompilerPath": "g++", - "C_Cpp_Runner.debuggerPath": "gdb", - "C_Cpp_Runner.cStandard": "", - "C_Cpp_Runner.cppStandard": "", - "C_Cpp_Runner.msvcBatchPath": "C:/Program Files/Microsoft Visual Studio/VR_NR/Community/VC/Auxiliary/Build/vcvarsall.bat", - "C_Cpp_Runner.useMsvc": false, - "C_Cpp_Runner.warnings": [ - "-Wall", - "-Wextra", - "-Wpedantic", - "-Wshadow", - "-Wformat=2", - "-Wcast-align", - "-Wconversion", - "-Wsign-conversion", - "-Wnull-dereference" - ], - "C_Cpp_Runner.msvcWarnings": [ - "/W4", - "/permissive-", - "/w14242", - "/w14287", - "/w14296", - "/w14311", - "/w14826", - "/w44062", - "/w44242", - "/w14905", - "/w14906", - "/w14263", - "/w44265", - "/w14928" - ], - "C_Cpp_Runner.enableWarnings": true, - "C_Cpp_Runner.warningsAsError": false, - "C_Cpp_Runner.compilerArgs": [], - "C_Cpp_Runner.linkerArgs": [], - "C_Cpp_Runner.includePaths": [], - "C_Cpp_Runner.includeSearch": [ - "*", - "**/*" - ], - "C_Cpp_Runner.excludeSearch": [ - "**/build", - "**/build/**", - "**/.*", - "**/.*/**", - "**/.vscode", - "**/.vscode/**" - ], - "C_Cpp_Runner.useAddressSanitizer": false, - "C_Cpp_Runner.useUndefinedSanitizer": false, - "C_Cpp_Runner.useLeakSanitizer": false, - "C_Cpp_Runner.showCompilationTime": false, - "C_Cpp_Runner.useLinkTimeOptimization": false, - "C_Cpp_Runner.msvcSecureNoWarnings": false -} \ No newline at end of file + "editor.fontLigatures": true +} diff --git a/include/REL/m418Dll.h b/include/REL/m418Dll.h index af7e7ab4..967fa628 100644 --- a/include/REL/m418Dll.h +++ b/include/REL/m418Dll.h @@ -4,6 +4,7 @@ #include "dolphin.h" typedef void (*M418DllFunc)(void); +typedef s32 (*M418DllS7Func)(void); typedef struct M418DllUnkStruct { M418DllFunc unk0; @@ -18,17 +19,35 @@ typedef struct M418DllUnkStruct { } M418DllUnkStruct; // sizeof 0x4C typedef struct M418DllUnkStruct7 { - char unk[0x18]; + char unk[0x10]; + M418DllFunc unk10; + M418DllS7Func unk14; } M418DllUnkStruct7; // sizeof 0x18 +typedef struct M418DllUnkStruct8 { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + s32 unk20; +} M418DllUnkStruct8; // sizeof 0x24 + f32 fn_1_A920(f32, f32, f32); +f32 fn_1_A940(f32, f32, f32, f32); +f32 fn_1_AA30(f32, f32, f32, f32); void fn_1_ABC4(omObjData*, s32, s32, s32, s32); void fn_1_AD14(omObjData*, s32, s32, s32, s32); s32 fn_1_AF38(M418DllUnkStruct7*); +s32 fn_1_B034(M418DllUnkStruct7*, s32); s32 fn_1_B0C8(M418DllUnkStruct7*, s32); void fn_1_B104(M418DllUnkStruct*, Vec, Vec); void fn_1_B41C(M418DllUnkStruct*); void fn_1_B458(M418DllUnkStruct*); +void fn_1_BEAC(M418DllUnkStruct*, M418DllUnkStruct*, f32, f32, f32); void fn_1_CBF8(M418DllUnkStruct*, M418DllUnkStruct*, f32, f32, f32); void fn_1_DC10(M418DllUnkStruct*, M418DllUnkStruct*, f32, f32, f32); diff --git a/src/REL/m418Dll/main.c b/src/REL/m418Dll/main.c index daf129d7..4cb5cbb5 100644 --- a/src/REL/m418Dll/main.c +++ b/src/REL/m418Dll/main.c @@ -6,12 +6,13 @@ #include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" +#include "game/pad.h" #include "REL/m418Dll.h" // types typedef struct M418DllUnkStruct2 { - char unk[0x4]; + omObjData* unk0; s32 unk4[3]; char unk10[0x4]; } M418DllUnkStruct2; // sizeof 0x14 @@ -33,28 +34,42 @@ typedef struct M418DllUnkStruct3 { f32 unk34; f32 unk38; f32 unk3C; - char unk[0x20]; + char unk40[0xC]; + s32 unk4C; + s32 unk50; + char unk[0x8]; + s32 unk5C; } M418DllUnkStruct3; // sizeof 0x60 typedef struct M418DllUnkStruct4 { - char unk[0x4]; + omObjData* unk0; f32 unk4; f32 unk8; s32 unkC; s32 unk10; f32 unk14; - f32 unk18; + union { + f32 unk18; + s32 unk18s; + }; } M418DllUnkStruct4; // sizeof 0x1C typedef struct M418DllUnkStruct5 { char unk[0x14]; s32 unk14; - char unk18[0x14]; -} M418DllUnkStruct5; // sizeof 0x2C + char unk18[0x8]; + s32 unk20; + char unk24[0x8]; +} M418DllUnkStruct5; // sizeof 0x2C; typedef struct M418DllUnkStruct6 { s32 unk0; - char unk4[0x40]; + s32 unk4[3]; + s32 unk10[3]; + char unk1C[0x18]; + s32 unk34; + s32 unk38; + char unk3C[0x8]; } M418DllUnkStruct6; // sizeof 0x44 typedef struct M418DllWorkStruct { @@ -75,6 +90,7 @@ M418DllUnkStruct4 lbl_1_bss_170[4]; M418DllUnkStruct4 lbl_1_bss_11C[3]; M418DllWorkStruct lbl_1_bss_68; M418DllUnkStruct7 lbl_1_bss_50; +M418DllUnkStruct7 lbl_1_bss_38; s32 lbl_1_bss_8; s32 lbl_1_bss_4; Process* lbl_1_bss_0; @@ -1217,7 +1233,6 @@ s32 fn_1_57E4(s32 arg0) { s32 var_r30; if (fn_1_B0C8(&lbl_1_bss_50, 0) >= 0x3C) { - for (var_r30 = 0; var_r30 < 3; var_r30++) { temp_r31 = &lbl_1_bss_170[var_r30]; if (temp_r31->unkC == 0) { @@ -1226,7 +1241,7 @@ s32 fn_1_57E4(s32 arg0) { } else { var_r29 = 0; } - if ((var_r29 != 0) || (fn_1_B0C8(&lbl_1_bss_50, 0) >= 0x41)) { + if (var_r29 || (fn_1_B0C8(&lbl_1_bss_50, 0) >= 0x41)) { HuAudFXPlay(0x5D3); temp_r31->unkC = 1; } @@ -1247,3 +1262,829 @@ s32 fn_1_57E4(s32 arg0) { return 0; } } + +s32 lbl_1_data_200[16] = { + 0x310000, 0x310001, 0x310002, 0x310003, + 0x310004, 0x310005, 0x310006, 0x310007, + 0x310008, 0x310009, 0x31000A, 0x31000B, + 0x31000C, 0x31000D, 0x31000E, 0x31000F +}; + +Vec lbl_1_data_240[3] = { + { -540.0f, 225.0f, -900.0f }, + { -180.0f, 225.0f, -900.0f }, + { 180.0f, 225.0f, -900.0f }, +}; + +void fn_1_5970(void) { + M418DllUnkStruct3* temp_r30; + M418DllUnkStruct6* temp_r29; + M418DllUnkStruct4* temp_r28; + s32 var_r31; + + temp_r29 = &lbl_1_bss_3EC; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + temp_r30 = &lbl_1_bss_26C[temp_r29->unk4[var_r31]]; + omSetTra(temp_r30->unk0, lbl_1_data_240[var_r31].x, lbl_1_data_240[var_r31].y, lbl_1_data_240[var_r31].z - 50.0f); + temp_r30->unk4C = 0; + } + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + temp_r28 = &lbl_1_bss_170[var_r31]; + temp_r28->unkC = 0; + } +} + +Vec lbl_1_data_264[4] = { + { -355.0f, 0.0f, -680.0f }, + { 5.0f, 0.0f, -680.0f }, + { 365.0f, 0.0f, -680.0f }, +}; + +s32 fn_1_5A6C(s32 arg0) { + s32 var_r31; + M418DllUnkStruct3* temp_r30; + M418DllUnkStruct4* temp_r29; + M418DllUnkStruct3* temp_r28; + M418DllUnkStruct6* temp_r27; + s32 var_r26; + omObjData* temp_r25; + s32 var_r24; + M418DllUnkStruct* temp_r20; + + temp_r27 = &lbl_1_bss_3EC; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + temp_r30 = &lbl_1_bss_26C[temp_r27->unk4[var_r31]]; + if (temp_r30->unk4C == 0) { + if ((rand8() % 5) == 0) { + var_r26 = 1; + } else { + var_r26 = 0; + } + if (var_r26 || (fn_1_B0C8(&lbl_1_bss_50, 0) >= 5)) { + temp_r30->unk4C = 1; + temp_r25 = temp_r30->unk0; + temp_r28 = &lbl_1_bss_26C[temp_r25->work[0]]; + if (temp_r28->unk1C == 0) { + temp_r28->unk1C = 1; + } + HuAudCharVoicePlay(temp_r30->unk14, 0x122); + } + } else { + fn_1_3EB0(temp_r30->unk0, lbl_1_data_264[var_r31], 0.0f, 9.0f); + } + } + if (fn_1_B0C8(&lbl_1_bss_50, 0) >= 0x3C) { + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + temp_r29 = &lbl_1_bss_170[var_r31]; + if (temp_r29->unkC == 0) { + if ((rand8() % 5) == 0) { + var_r24 = 1; + } else { + var_r24 = 0; + } + if ((var_r24 != 0) || (fn_1_B0C8(&lbl_1_bss_50, 0) >= 0x41)) { + HuAudFXPlay(0x5D3); + temp_r29->unkC = 1; + } + } else { + temp_r29->unk4 -= 2.5f; + if (temp_r29->unk4 <= 0.0f) { + temp_r29->unk4 = 0.0f; + } + } + } + } + if (fn_1_B0C8(&lbl_1_bss_50, 0) == 0x3C) { + fn_1_56AC(2); + } + if (fn_1_B0C8(&lbl_1_bss_50, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_50); + } + return 0; +} + +M418DllUnkStruct8 lbl_1_data_294 = { + 0, 0, 0x5A, + 0, 0, 0xB4, + 0, 0, -1 +}; + +void fn_1_5D28(void) { + fn_1_AEDC(&lbl_1_bss_50, &lbl_1_data_294); +} + +s32 fn_1_5D58(void) { + s32 var_r31; + + var_r31 = 0; + if (lbl_1_bss_50.unk10 != NULL) { + lbl_1_bss_50.unk10(); + lbl_1_bss_50.unk10 = NULL; + } + if (lbl_1_bss_50.unk14 != NULL) { + var_r31 = lbl_1_bss_50.unk14(); + } + return var_r31; +} + +s32 fn_1_5DF0(omObjData* object, s32 arg1) { + M418DllUnkStruct3* temp_r31; + s32 var_r30; + + temp_r31 = &lbl_1_bss_26C[object->work[0]]; + var_r30 = temp_r31->unk4C; + if (temp_r31->unkC != 0) { + switch (temp_r31->unk10) { + case 0: + if ((arg1 % 100) == 0) { + var_r30 = rand8() % 4; + } + break; + case 1: + if ((arg1 % 50) == 0) { + var_r30 = rand8() % 4; + } + break; + case 2: + if ((arg1 % 25) == 0) { + var_r30 = rand8() % 4; + } + break; + case 3: + if ((arg1 % 25) == 0) { + var_r30 = rand8() % 4; + } + break; + } + } else { + if ((HuPadBtnDown[temp_r31->unk18] & PAD_BUTTON_A) != 0) { + var_r30 = 1; + } + if ((HuPadBtnDown[temp_r31->unk18] & PAD_BUTTON_B) != 0) { + var_r30 = 0; + } + if ((HuPadBtnDown[temp_r31->unk18] & PAD_BUTTON_X) != 0) { + var_r30 = 3; + } + if ((HuPadBtnDown[temp_r31->unk18] & PAD_BUTTON_Y) != 0) { + var_r30 = 2; + } + } + return var_r30; +} + +s32 fn_1_6038(omObjData* object, s32 arg1) { + M418DllUnkStruct3* temp_r30; + M418DllUnkStruct4* temp_r28; + M418DllUnkStruct4* temp_r27; + M418DllUnkStruct4* temp_r26; + s32 var_r29; + s32 var_r31; + + temp_r30 = &lbl_1_bss_26C[object->work[0]]; + var_r31 = temp_r30->unk4C; + if (temp_r30->unkC != 0) { + switch (temp_r30->unk10) { + case 0: + if ((arg1 % 200) == 1) { + var_r31 = rand8() % 4; + } + break; + case 1: + if ((arg1 % 150) == 1) { + var_r31 = rand8() % 4; + } + break; + case 2: + if ((arg1 % 100) == 1) { + var_r31 = rand8() % 4; + } + break; + case 3: + if ((arg1 % 100) == 1) { + var_r31 = rand8() % 4; + } + break; + } + if (var_r31 != -1) { + temp_r28 = &lbl_1_bss_170[var_r31]; + if (temp_r28->unk18s == 1) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + temp_r27 = &lbl_1_bss_170[var_r29]; + if (temp_r27->unk18s != 1) { + var_r31 = var_r29; + temp_r27->unk18s = 1; + break; + } + } + } else { + temp_r28->unk18s = 1; + } + } + } else { + if ((HuPadBtnDown[temp_r30->unk18] & PAD_BUTTON_A) != 0) { + var_r31 = 1; + } + if ((HuPadBtnDown[temp_r30->unk18] & PAD_BUTTON_B) != 0) { + var_r31 = 0; + } + if ((HuPadBtnDown[temp_r30->unk18] & PAD_BUTTON_X) != 0) { + var_r31 = 3; + } + if ((HuPadBtnDown[temp_r30->unk18] & PAD_BUTTON_Y) != 0) { + var_r31 = 2; + } + if (var_r31 != -1) { + temp_r26 = &lbl_1_bss_170[var_r31]; + if (temp_r26->unk18s == 1) { + var_r31 = -1; + } else { + temp_r26->unk18s = 1; + } + } + } + return var_r31; +} + +void fn_1_6314(void) { + M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; + Vec sp2C = { 0.0f, 1100.0f, 1800.0f }; + Vec sp20 = { 0.0f, 600.0f, 600.0f }; + + fn_1_B104(var_r31, sp2C, sp20); + fn_1_B41C(var_r31); + var_r31->rot.x++; +} + +void fn_1_63F8(void) { + M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; + M418DllUnkStruct sp38; + Vec sp2C = { 0.0f, 1800.0f, 480.0f }; + Vec sp20 = { 0.0f, 600.0f, 250.0f }; + + fn_1_B104(&sp38, sp2C, sp20); + fn_1_B41C(&sp38); + sp38.zoom = 750.0f; + fn_1_BEAC(var_r31, &sp38, var_r31->unk48++, 120.0f, 10.0f); +} + +void fn_1_6510(void) { + M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; + M418DllUnkStruct sp38; + Vec sp2C = { 0.0f, 980.0f, 1330.0f }; + Vec sp20 = { 0.0f, 480.0f, 130.0f }; + + fn_1_B104(&sp38, sp2C, sp20); + fn_1_B41C(&sp38); + fn_1_BEAC(var_r31, &sp38, var_r31->unk48++, 30.0f, 10.0f); +} + +Vec lbl_1_data_2B8[8] = { + { -540.0f, 225.0f, -900.0f }, + { -180.0f, 225.0f, -900.0f }, + { 180.0f, 225.0f, -900.0f }, + { 540.0f, 225.0f, -900.0f }, + { -360.0f, 0.0f, -680.0f }, + { 0.0f, 0.0f, -680.0f }, + { 360.0f, 0.0f, -680.0f }, + { 0.0f, 0.0f, 0.0f } +}; + +void fn_1_6618(void) { + M418DllUnkStruct sp8; + M418DllUnkStruct3* temp_r31; + M418DllUnkStruct* var_r30; + M418DllUnkStruct6* var_r29; + + var_r29 = &lbl_1_bss_3EC; + temp_r31 = &lbl_1_bss_26C[var_r29->unk0]; + var_r30 = &lbl_1_bss_1F4; + sp8.center.x = lbl_1_data_2B8[temp_r31->unk4C].x; + sp8.center.y = lbl_1_data_2B8[temp_r31->unk4C].y; + sp8.center.z = lbl_1_data_2B8[temp_r31->unk4C].z; + sp8.rot.x = 0.0f; + sp8.rot.y = 0.0f; + sp8.rot.z = 0.0f; + sp8.zoom = 725.0f; + fn_1_CBF8(var_r30, &sp8, var_r30->unk48++, 30.0f, 5.0f); +} + +void fn_1_6740(s32 arg0) { + M418DllUnkStruct* var_r27 = &lbl_1_bss_1F4; + + fn_1_B458(var_r27); + switch (arg0) { + case 0: + fn_1_248(fn_1_6314); + break; + case 1: + fn_1_248(fn_1_63F8); + break; + case 2: + fn_1_248(fn_1_6510); + break; + case 3: + fn_1_248(fn_1_6618); + break; + } +} + +void fn_1_6808(s32 arg0) { + s32 var_r31; + M418DllUnkStruct6* var_r30 = &lbl_1_bss_3EC; + M418DllUnkStruct3* var_r29; + M418DllUnkStruct4* var_r28; + M418DllUnkStruct* var_r23; + + HuAudAUXVolSet(0x40, 0x40); + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_r29 = &lbl_1_bss_26C[var_r30->unk4[var_r31]]; + var_r29->unk4C = -1; + } + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_r28 = &lbl_1_bss_11C[var_r31]; + fn_1_ABC4(var_r28->unk0, 0, 3, 30, 1); + } + if (lbl_1_bss_8 == 0) { + lbl_1_bss_8 = 1; + lbl_1_bss_4 = 0x12C; + } + + fn_1_6740(0); +} + +Vec lbl_1_data_318[4] = { + { -540.0f, 115.0f, -700.0f }, + { -180.0f, 115.0f, -700.0f }, + { 180.0f, 115.0f, -700.0f }, + { 540.0f, 115.0f, -700.0f } +}; + +s32 fn_1_6914(s32 arg0) { + Vec sp14; + M418DllUnkStruct3* temp_r31; + M418DllUnkStruct3* temp_r30; + s32 var_r29; + s32 temp_r27; + M418DllUnkStruct6* var_r26; + M418DllUnkStruct4* var_r25; + M418DllUnkStruct* var_r18; + + var_r26 = &lbl_1_bss_3EC; + + for (var_r29 = 0; var_r29 < 3; var_r29++) { + temp_r31 = &lbl_1_bss_26C[var_r26->unk4[var_r29]]; + temp_r27 = fn_1_B0C8(&lbl_1_bss_38, 0); + temp_r31->unk4C = fn_1_5DF0(temp_r31->unk0, temp_r27); + if (temp_r31->unk4C != -1) { + sp14.x = lbl_1_data_318[temp_r31->unk4C].x; + sp14.y = lbl_1_data_318[temp_r31->unk4C].y; + sp14.z = (75.0f * var_r29) + lbl_1_data_318[temp_r31->unk4C].z; + fn_1_3444(temp_r31->unk0, sp14, -1.0f, 9.0f); + if (temp_r31->unk0->trans.z <= -720.0f) { + temp_r31->unk0->trans.z = -720.0f; + } + if (temp_r31->unk0->trans.z >= -480.0f) { + temp_r31->unk0->trans.z = -480.0f; + } + if (fn_1_B0C8(&lbl_1_bss_38, 0) >= 0xF0) { + temp_r31->unk0->trans.x = temp_r31->unk0->trans.y = -5000.0f; + fn_1_ABC4(temp_r31->unk0, 0, 0, 0xA, 1); + } + } + } + + for (var_r29 = 0; var_r29 < 3; var_r29++) { + var_r25 = &lbl_1_bss_11C[var_r29]; + var_r25->unk0->rot.y += 1.2f; + } + if (fn_1_B0C8(&lbl_1_bss_38, 0) == 0x3C) { + fn_1_6740(1); + } + if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_38); + } + return 0; +} + +void fn_1_6DCC(s32 arg0) { + s32 var_r31; + M418DllUnkStruct4* temp_r30; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + temp_r30 = &lbl_1_bss_11C[var_r31]; + temp_r30->unk0->rot.y = 0.0f; + fn_1_ABC4(temp_r30->unk0, 0, 0, 0x1E, 1); + } + fn_1_6740(2); +} + +s32 fn_1_6E6C(void) { + if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_38); + } + return 0; +} + +void fn_1_6EB4(void) { + M418DllUnkStruct6* var_r31 = &lbl_1_bss_3EC; + s32 var_r30; + M418DllUnkStruct3* temp_r29; + + var_r31->unk34 = 0; + + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r29 = &lbl_1_bss_26C[var_r31->unk4[var_r30]]; + if (temp_r29->unk4C == -1) { + var_r31->unk34++; + temp_r29->unk50 = 0; + } + } +} + +s32 fn_1_6F38(void) { + M418DllUnkStruct3* temp_r31; + M418DllUnkStruct2* temp_r29; + M418DllUnkStruct6* temp_r28; + M418DllUnkStruct2* temp_r27; + + s32 var_r26; + s32 var_r30; + f32 var_f31; + + temp_r29 = &lbl_1_bss_1E0; + temp_r28 = &lbl_1_bss_3EC; + + if (temp_r28->unk34 == 0) { + return fn_1_B034(&lbl_1_bss_38, 9); + } + + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r31 = &lbl_1_bss_26C[temp_r28->unk4[var_r30]]; + if (temp_r31->unk4C == -1) { + if (temp_r29->unk4[var_r30] == 0) { + if ((rand8() % 10) == 0) { + var_r26 = 1; + } else { + var_r26 = 0; + } + if ((var_r26 != 0) || (fn_1_B0C8(&lbl_1_bss_38, 0) >= 10)) { + HuAudFXPlay(0x5DC); + HuAudCharVoicePlay(temp_r31->unk14, 0x128); + temp_r29->unk4[var_r30] = 2; + Hu3DModelShadowDispOff(temp_r31->unk0->model[0]); + fn_1_ABC4(temp_r31->unk0, 0, 7, 0x1E, 0); + temp_r31->unk50 = fn_1_B0C8(&lbl_1_bss_38, 0); + omVibrate(temp_r31->unk4, 0xC, 6, 6); + } + } else if (fn_1_B0C8(&lbl_1_bss_38, 0) >= (temp_r31->unk50 + 0x1E)) { + temp_r31->unk0->trans.y -= 15.0f; + } + if (fn_1_B0C8(&lbl_1_bss_38, 0) >= (temp_r31->unk50 + 0x3C)) { + var_f31 = fn_1_AA30(-200.0f, -110.0f, fn_1_B0C8(&lbl_1_bss_38, 0) - (temp_r31->unk50 + 0x3C), 90.0f); + Hu3DModelPosSet( + temp_r29->unk0->model[var_r30 + 8], + -350.0f + (360.0f * var_r30), + var_f31, + -660.0f + ); + Hu3DModelRotSet(temp_r29->unk0->model[var_r30 + 8], 0.0f, 0.0f, 20.0f); + } + } + } + if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { + temp_r27 = &lbl_1_bss_1E0; + temp_r27->unk4[0] = temp_r27->unk4[1] = temp_r27->unk4[2] = 3; + if (temp_r28->unk34 >= 3) { + return 1; + } + return fn_1_B034(&lbl_1_bss_38, 9); + } else { + return 0; + } +} + +void fn_1_7294(void) {} + +s32 fn_1_7298(void) { + M418DllUnkStruct3* temp_r31; + M418DllUnkStruct4* temp_r30; + M418DllUnkStruct6* temp_r29; + + temp_r29 = &lbl_1_bss_3EC; + temp_r31 = &lbl_1_bss_26C[temp_r29->unk0]; + temp_r30 = &lbl_1_bss_11C[temp_r29->unk38]; + if (fn_1_B0C8(&lbl_1_bss_38, 0) < 0x3C) { + if (((temp_r30->unk0->work[0] == 0) || (temp_r30->unk0->work[1] == 0x18)) && (temp_r30->unk0->rot.y > -50.0f)) { + temp_r30->unk0->rot.y -= 5.0f; + if (temp_r30->unk0->rot.y <= -50.0f) { + temp_r30->unk0->rot.y = -50.0f; + } + } + if (temp_r31->unk0->rot.y < 180.0f) { + temp_r31->unk0->rot.y += 5.0f; + if (temp_r30->unk0->rot.y <= -50.0f) { + temp_r30->unk0->rot.y = -50.0f; + } + } + } else if (fn_1_B0C8(&lbl_1_bss_38, 0) == 0x3C) { + HuAudFXPlay(0x40); + fn_1_ABC4(temp_r30->unk0, 0, 2, 0xA, 0); + fn_1_AD14(temp_r31->unk0, 0, 0, 0xA, 1); + Hu3DMotionOverlaySet(temp_r31->unk0->model[0], temp_r31->unk0->motion[9]); + Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], 1.0f); + lbl_1_bss_240.unk20 = HuAudFXPlay(0x5D9); + } else if (fn_1_B0C8(&lbl_1_bss_38, 0) <= 0xAA) { + if (fn_1_B0C8(&lbl_1_bss_38, 0) >= 0x5A) { + temp_r31->unk3C += 0.025f; + if (temp_r31->unk3C >= 1.0f) { + temp_r31->unk3C = 1.0f; + } + } + } else { + Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], -1.0f); + } + if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_38); + } else { + return 0; + } +} + +void fn_1_7570(void) { + M418DllUnkStruct6* var_r31 = &lbl_1_bss_3EC; + M418DllUnkStruct3* var_r30 = &lbl_1_bss_26C[var_r31->unk0]; + var_r30->unk4C = -1; + if (lbl_1_bss_8 == 0) { + lbl_1_bss_8 = 1; + lbl_1_bss_4 = 0x12C; + } +} + +s32 fn_1_75E4(void) { + Mtx sp38; + Mtx sp8; + M418DllUnkStruct3* temp_r31; + M418DllUnkStruct6* var_r30; + s32 var_r29; + + var_r30 = &lbl_1_bss_3EC; + temp_r31 = &lbl_1_bss_26C[var_r30->unk0]; + if (fn_1_B0C8(&lbl_1_bss_38, 0) >= 10) { + temp_r31->unk4C = fn_1_6038(temp_r31->unk0, fn_1_B0C8(&lbl_1_bss_38, 0)); + if (temp_r31->unk4C != -1) { + if (lbl_1_bss_8 == 2) { + lbl_1_bss_8 = 3; + lbl_1_bss_4 = 0x1E; + } + return fn_1_AF38(&lbl_1_bss_38); + } + } + fn_1_B0C8(&lbl_1_bss_38, 1); + var_r29 = 0; + if (lbl_1_bss_8 == 3) { + var_r29 = 1; + } + if (var_r29 != 0) { + Hu3DModelObjMtxGet(temp_r31->unk0->model[0], lbl_1_data_1C0[temp_r31->unk14], sp8); + Hu3DModelObjMtxGet(temp_r31->unk0->model[12], "g031i00-itemhook_eff", sp38); + Hu3DModelPosSet(temp_r31->unk0->model[13], sp38[0][3] + sp8[0][3], 80.0f + (sp38[1][3] + sp8[1][3]), sp38[2][3] + sp8[2][3]); + Hu3DModelScaleSet(temp_r31->unk0->model[13], 0.5f, 0.5f, 0.5f); + Hu3DMotionSpeedSet(temp_r31->unk0->model[13], 2.0f); + fn_1_ABC4(temp_r31->unk0, 0xD, 0xD, 0, 0); + return fn_1_AF38(&lbl_1_bss_38); + } else { + return 0; + } +} + +void fn_1_77F8(void) { + M418DllUnkStruct6* var_r31; + M418DllUnkStruct3* var_r30; + + var_r31 = &lbl_1_bss_3EC; + var_r30 = &lbl_1_bss_26C[var_r31->unk0]; + if (var_r30->unk4C == -1) { + HuAudFXFadeOut(lbl_1_bss_240.unk20, 0x3E8); + } +} + +s32 fn_1_7860(void) { + M418DllUnkStruct3* temp_r31; + M418DllUnkStruct6* temp_r30; + + temp_r30 = &lbl_1_bss_3EC; + temp_r31 = &lbl_1_bss_26C[temp_r30->unk0]; + if (temp_r31->unk4C == -1) { + temp_r31->unk3C -= 0.025f; + if (temp_r31->unk3C <= 0.0f) { + temp_r31->unk3C = 0.0f; + } + if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_38); + } + } else { + temp_r31->unk0->rot.y = fn_1_A940( + 180.0f, 200.0f - (10.0f * temp_r31->unk4C), + fn_1_B0C8(&lbl_1_bss_38, 0), 10.0f + ); + if (fn_1_B0C8(&lbl_1_bss_38, 0) == 0xA) { + Hu3DMotionOverlaySet(temp_r31->unk0->model[0], temp_r31->unk0->motion[10]); + Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], 1.0f); + temp_r31->unk5C = 1; + } + if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { + Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], -1.0f); + temp_r31->unk5C = 2; + return fn_1_AF38(&lbl_1_bss_38); + } + } + return 0; +} + +void fn_1_7A68(s32 arg0) { + M418DllUnkStruct6* temp_r31; + M418DllUnkStruct3* temp_r30; + M418DllUnkStruct4* temp_r29; + s32 var_r28; + M418DllUnkStruct3* temp_r27; + s32 var_r26; + + var_r26 = 0; + temp_r31 = &lbl_1_bss_3EC; + temp_r30 = &lbl_1_bss_26C[temp_r31->unk0]; + if (temp_r30->unk4C != -1) { + temp_r31->unk10[0] = temp_r31->unk10[1] = temp_r31->unk10[2] = -1; + + for (var_r28 = 0; var_r28 < 3; var_r28++) { + temp_r27 = &lbl_1_bss_26C[temp_r31->unk4[var_r28]]; + if (temp_r30->unk4C == temp_r27->unk4C) { + temp_r31->unk10[var_r26++] = temp_r27->unk0->work[0]; + } + } + temp_r29 = &lbl_1_bss_170[temp_r30->unk4C]; + temp_r29->unkC = 0; + if (temp_r31->unk10[0] == -1) { + temp_r29->unk10 = 1; + } + temp_r29->unk0->work[1] = 1; + } +} + +s32 fn_1_7B68(s32 arg0) { + Mtx sp8; + M418DllUnkStruct3* temp_r31; + M418DllUnkStruct6* temp_r30; + M418DllUnkStruct3* temp_r29; + M418DllUnkStruct4* temp_r28; + s32 var_r27; + s32 var_r26; + M418DllUnkStruct* temp_r21; + + var_r26 = -1; + temp_r30 = &lbl_1_bss_3EC; + temp_r29 = &lbl_1_bss_26C[temp_r30->unk0]; + temp_r28 = &lbl_1_bss_170[temp_r29->unk4C]; + if (temp_r29->unk4C == -1) { + return fn_1_AF38(&lbl_1_bss_38); + } + if (temp_r28->unkC == 1) { + fn_1_6740(3); + } + if (temp_r28->unkC == 3) { + + for (var_r27 = 0; var_r27 < 3; var_r27++) { + if (temp_r30->unk10[var_r27] != -1) { + temp_r31 = &lbl_1_bss_26C[temp_r30->unk10[var_r27]]; + Hu3DModelObjMtxGet(*temp_r28->unk0->model, "taihou-null4", (f32 (*)[4]) &sp8[0]); + omSetTra(temp_r31->unk0, sp8[0][3], sp8[1][3] - 25.0f, 50.0f + sp8[2][3]); + omSetRot(temp_r31->unk0, 0.0f, 180.0f, 0.0f); + fn_1_AD14(temp_r31->unk0, 0, 8, 0, 2); + temp_r31->unk4C = -1; + temp_r31->unk24 = 0; + if (var_r26 >= 2) { + var_r26 = 1; + } + temp_r31->unk30 = var_r26++; + temp_r31->unk28 = 0.0f; + omVibrate((s16) temp_r29->unk4, 0xC, 4, 2); + } + } + return fn_1_AF38(&lbl_1_bss_38); + } + return 0; +} + +void fn_1_7D80(void) { + s32 var_r31; + M418DllUnkStruct3* temp_r30; + M418DllUnkStruct6* temp_r29; + M418DllUnkStruct4* temp_r28; + + temp_r29 = &lbl_1_bss_3EC; + temp_r30 = &lbl_1_bss_26C[temp_r29->unk0]; + temp_r30->unk0->rot.y = 180.0f; + temp_r30->unk3C = 0.0f; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + temp_r28 = &lbl_1_bss_11C[var_r31]; + temp_r28->unk0->rot.y = 0.0f; + } +} + +s32 fn_1_7E24(s32 arg0) { + M418DllUnkStruct6* var_r31; + s32 var_r30; + s32 var_r29; + M418DllUnkStruct4* var_r28; + M418DllUnkStruct4* var_r27; + M418DllUnkStruct4* var_r26; + M418DllUnkStruct3* var_r25; + + var_r29 = 0; + var_r31 = &lbl_1_bss_3EC; + var_r28 = &lbl_1_bss_11C[0]; + var_r27 = &lbl_1_bss_11C[1]; + var_r26 = &lbl_1_bss_11C[2]; + if (var_r31->unk38 == 2) { + var_r28->unk0->work[1] = 0; + var_r27->unk0->work[1] = 0; + var_r26->unk0->work[1] = 3; + return 1; + } + var_r31->unk38++; + + for (var_r30 = 0; var_r30 < 3; var_r30++) { + var_r25 = &lbl_1_bss_26C[var_r31->unk4[var_r30]]; + if (var_r25->unk4C != -1) { + var_r29++; + } + } + if (var_r29 == 0) { + return 1; + } else { + return fn_1_AF38(&lbl_1_bss_38); + } +} + +void fn_1_7F1C(void) { + M418DllUnkStruct6* var_r31; + M418DllUnkStruct4* var_r30; + M418DllUnkStruct4* var_r29; + M418DllUnkStruct4* var_r28; + + var_r31 = &lbl_1_bss_3EC; + var_r30 = &lbl_1_bss_11C[0]; + var_r29 = &lbl_1_bss_11C[1]; + var_r28 = &lbl_1_bss_11C[2]; + if (var_r31->unk38 == 1) { + var_r30->unk0->work[1] = 3; + var_r29->unk0->work[1] = 2; + var_r28->unk0->work[1] = 1; + } else if (var_r31->unk38 == 2) { + var_r30->unk0->work[1] = 0; + var_r29->unk0->work[1] = 3; + var_r28->unk0->work[1] = 2; + } +} + +s32 fn_1_7FD4(s32 arg0) { + M418DllUnkStruct3* temp_r31; + M418DllUnkStruct6* temp_r30; + M418DllUnkStruct4* temp_r29; + + temp_r30 = &lbl_1_bss_3EC; + temp_r31 = &lbl_1_bss_26C[temp_r30->unk0]; + if (temp_r31->unk4C == -1) { + if (fn_1_B0C8(&lbl_1_bss_38, 0) == 30) { + fn_1_6740(2); + } + if (fn_1_B0C8(&lbl_1_bss_38, 0) == 120) { + return fn_1_B034(&lbl_1_bss_38, 9); + } + } else { + temp_r29 = &lbl_1_bss_170[temp_r31->unk4C]; + if (temp_r29->unk10 != 0) { + if (fn_1_B0C8(&lbl_1_bss_38, 0) == 210) { + fn_1_6740(2); + } + if (fn_1_B0C8(&lbl_1_bss_38, 0) == 300) { + return fn_1_B034(&lbl_1_bss_38, 9); + } + } else { + if (fn_1_B0C8(&lbl_1_bss_38, 0) == 30) { + fn_1_6740(2); + } + if (fn_1_B0C8(&lbl_1_bss_38, 0) == 120) { + return fn_1_B034(&lbl_1_bss_38, 3); + } + } + } + fn_1_B0C8(&lbl_1_bss_38, 1); + return 0; +} From c7ebeb9c336e7fe7eb468b510a8068cb3c3f9d00 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Fri, 22 Nov 2024 23:50:11 -0500 Subject: [PATCH 166/311] complete m418/main.c --- .vscode/settings.json | 3 +- include/REL/m418Dll.h | 17 +- src/REL/m418Dll/main.c | 784 +++++++++++++++++++++++++++++++++++++++-- 3 files changed, 754 insertions(+), 50 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index b4546cc9..0e3a6ba5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -20,7 +20,8 @@ "*.inc": "c", ".clangd": "yaml", "m443dll.h": "c", - "object.h": "c" + "object.h": "c", + "executor.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { diff --git a/include/REL/m418Dll.h b/include/REL/m418Dll.h index 967fa628..cd283bde 100644 --- a/include/REL/m418Dll.h +++ b/include/REL/m418Dll.h @@ -4,7 +4,9 @@ #include "dolphin.h" typedef void (*M418DllFunc)(void); -typedef s32 (*M418DllS7Func)(void); +typedef s32 (*M418DllRetFunc)(void); +typedef void (*M418DllInFunc)(s32); +typedef s32 (*M418DllInRetFunc)(s32); typedef struct M418DllUnkStruct { M418DllFunc unk0; @@ -21,19 +23,13 @@ typedef struct M418DllUnkStruct { typedef struct M418DllUnkStruct7 { char unk[0x10]; M418DllFunc unk10; - M418DllS7Func unk14; + M418DllRetFunc unk14; } M418DllUnkStruct7; // sizeof 0x18 typedef struct M418DllUnkStruct8 { - s32 unk0; - s32 unk4; + M418DllInFunc unk0; + M418DllInRetFunc unk4; s32 unk8; - s32 unkC; - s32 unk10; - s32 unk14; - s32 unk18; - s32 unk1C; - s32 unk20; } M418DllUnkStruct8; // sizeof 0x24 f32 fn_1_A920(f32, f32, f32); @@ -41,6 +37,7 @@ f32 fn_1_A940(f32, f32, f32, f32); f32 fn_1_AA30(f32, f32, f32, f32); void fn_1_ABC4(omObjData*, s32, s32, s32, s32); void fn_1_AD14(omObjData*, s32, s32, s32, s32); +void fn_1_AEDC(M418DllUnkStruct7*, M418DllUnkStruct8**); s32 fn_1_AF38(M418DllUnkStruct7*); s32 fn_1_B034(M418DllUnkStruct7*, s32); s32 fn_1_B0C8(M418DllUnkStruct7*, s32); diff --git a/src/REL/m418Dll/main.c b/src/REL/m418Dll/main.c index 4cb5cbb5..e4b50f24 100644 --- a/src/REL/m418Dll/main.c +++ b/src/REL/m418Dll/main.c @@ -7,14 +7,14 @@ #include "game/object.h" #include "game/objsub.h" #include "game/pad.h" +#include "game/wipe.h" #include "REL/m418Dll.h" // types typedef struct M418DllUnkStruct2 { omObjData* unk0; - s32 unk4[3]; - char unk10[0x4]; + s32 unk4[4]; } M418DllUnkStruct2; // sizeof 0x14 typedef struct M418DllUnkStruct3 { @@ -37,7 +37,8 @@ typedef struct M418DllUnkStruct3 { char unk40[0xC]; s32 unk4C; s32 unk50; - char unk[0x8]; + s32 unk54; + s32 unk58; s32 unk5C; } M418DllUnkStruct3; // sizeof 0x60 @@ -47,29 +48,26 @@ typedef struct M418DllUnkStruct4 { f32 unk8; s32 unkC; s32 unk10; - f32 unk14; + union { + f32 unk14; + s32 unk14s; + }; union { f32 unk18; s32 unk18s; }; } M418DllUnkStruct4; // sizeof 0x1C -typedef struct M418DllUnkStruct5 { - char unk[0x14]; - s32 unk14; - char unk18[0x8]; - s32 unk20; - char unk24[0x8]; -} M418DllUnkStruct5; // sizeof 0x2C; - typedef struct M418DllUnkStruct6 { s32 unk0; s32 unk4[3]; s32 unk10[3]; - char unk1C[0x18]; + s32 unk1C[3]; + s32 unk28[3]; s32 unk34; s32 unk38; - char unk3C[0x8]; + s32 unk3C; + s32 unk40; } M418DllUnkStruct6; // sizeof 0x44 typedef struct M418DllWorkStruct { @@ -83,7 +81,7 @@ typedef struct M418DllWorkStruct { // bss M418DllUnkStruct6 lbl_1_bss_3EC; M418DllUnkStruct3 lbl_1_bss_26C[4]; -M418DllUnkStruct5 lbl_1_bss_240; +s32 lbl_1_bss_240[11]; M418DllUnkStruct lbl_1_bss_1F4; M418DllUnkStruct2 lbl_1_bss_1E0; M418DllUnkStruct4 lbl_1_bss_170[4]; @@ -91,6 +89,11 @@ M418DllUnkStruct4 lbl_1_bss_11C[3]; M418DllWorkStruct lbl_1_bss_68; M418DllUnkStruct7 lbl_1_bss_50; M418DllUnkStruct7 lbl_1_bss_38; +M418DllUnkStruct7 lbl_1_bss_20; +s32 lbl_1_bss_1C; +u32 lbl_1_bss_18; +s32 lbl_1_bss_14; +s32 lbl_1_bss_10; s32 lbl_1_bss_8; s32 lbl_1_bss_4; Process* lbl_1_bss_0; @@ -199,7 +202,7 @@ void fn_1_748(void) { } } -void fn_1_780(void) { +void fn_1_780(omObjData* object) { switch (lbl_1_bss_8) { case 1: if (lbl_1_data_8 == -1) { @@ -332,13 +335,13 @@ void fn_1_E74(omObjData* object) { fn_1_ABC4(object, 3, 3, 0, 0); fn_1_ABC4(object, 4, 4, 0, 1); object->work[1] = 2; - lbl_1_bss_240.unk14 = HuAudFXPlay(0x5D6); + lbl_1_bss_240[5] = HuAudFXPlay(0x5D6); } else if (object->work[1] == 2) { if (Hu3DMotionEndCheck(object->model[3]) != 0) { object->work[1] = 3; object->work[2] = 0; temp_r30->unkC = 1; - HuAudFXFadeOut(lbl_1_bss_240.unk14, 0x3E8); + HuAudFXFadeOut(lbl_1_bss_240[5], 0x3E8); } } else if (object->work[1] == 3) { temp_r29 = &lbl_1_bss_170[object->work[0]]; @@ -760,7 +763,7 @@ void fn_1_3138(void) { } } -const char* lbl_1_data_1C0[8] = { +char* lbl_1_data_1C0[8] = { "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", @@ -1153,7 +1156,7 @@ void fn_1_4F60(omObjData* object) { object->motion[13] = Hu3DMotionIDGet(object->model[13]); fn_1_ABC4(object, 0xD, 0xD, 0, 2); } - *lbl_1_data_1E0[object->work[0]] = -1; + lbl_1_data_1E0[object->work[0]][0] = -1; CharModelMotionDataClose(temp_r30->unk14); CharModelLayerSetAll2(7); object->func = fn_1_4C84; @@ -1276,7 +1279,7 @@ Vec lbl_1_data_240[3] = { { 180.0f, 225.0f, -900.0f }, }; -void fn_1_5970(void) { +void fn_1_5970(s32 arg0) { M418DllUnkStruct3* temp_r30; M418DllUnkStruct6* temp_r29; M418DllUnkStruct4* temp_r28; @@ -1366,14 +1369,14 @@ s32 fn_1_5A6C(s32 arg0) { return 0; } -M418DllUnkStruct8 lbl_1_data_294 = { - 0, 0, 0x5A, - 0, 0, 0xB4, - 0, 0, -1 +M418DllUnkStruct8 lbl_1_data_294[3] = { + { fn_1_5768, fn_1_57E4, 0x5A }, + { fn_1_5970, fn_1_5A6C, 0xB4 }, + { NULL, NULL, -1 } }; void fn_1_5D28(void) { - fn_1_AEDC(&lbl_1_bss_50, &lbl_1_data_294); + fn_1_AEDC(&lbl_1_bss_50, (M418DllUnkStruct8**)&lbl_1_data_294); } s32 fn_1_5D58(void) { @@ -1684,14 +1687,14 @@ void fn_1_6DCC(s32 arg0) { fn_1_6740(2); } -s32 fn_1_6E6C(void) { +s32 fn_1_6E6C(s32 arg0) { if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { return fn_1_AF38(&lbl_1_bss_38); } return 0; } -void fn_1_6EB4(void) { +void fn_1_6EB4(s32 arg0) { M418DllUnkStruct6* var_r31 = &lbl_1_bss_3EC; s32 var_r30; M418DllUnkStruct3* temp_r29; @@ -1707,7 +1710,7 @@ void fn_1_6EB4(void) { } } -s32 fn_1_6F38(void) { +s32 fn_1_6F38(s32 arg0) { M418DllUnkStruct3* temp_r31; M418DllUnkStruct2* temp_r29; M418DllUnkStruct6* temp_r28; @@ -1769,9 +1772,9 @@ s32 fn_1_6F38(void) { } } -void fn_1_7294(void) {} +void fn_1_7294(s32 arg0) {} -s32 fn_1_7298(void) { +s32 fn_1_7298(s32 arg0) { M418DllUnkStruct3* temp_r31; M418DllUnkStruct4* temp_r30; M418DllUnkStruct6* temp_r29; @@ -1798,7 +1801,7 @@ s32 fn_1_7298(void) { fn_1_AD14(temp_r31->unk0, 0, 0, 0xA, 1); Hu3DMotionOverlaySet(temp_r31->unk0->model[0], temp_r31->unk0->motion[9]); Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], 1.0f); - lbl_1_bss_240.unk20 = HuAudFXPlay(0x5D9); + lbl_1_bss_240[8] = HuAudFXPlay(0x5D9); } else if (fn_1_B0C8(&lbl_1_bss_38, 0) <= 0xAA) { if (fn_1_B0C8(&lbl_1_bss_38, 0) >= 0x5A) { temp_r31->unk3C += 0.025f; @@ -1816,7 +1819,7 @@ s32 fn_1_7298(void) { } } -void fn_1_7570(void) { +void fn_1_7570(s32 arg0) { M418DllUnkStruct6* var_r31 = &lbl_1_bss_3EC; M418DllUnkStruct3* var_r30 = &lbl_1_bss_26C[var_r31->unk0]; var_r30->unk4C = -1; @@ -1826,7 +1829,7 @@ void fn_1_7570(void) { } } -s32 fn_1_75E4(void) { +s32 fn_1_75E4(s32 arg0) { Mtx sp38; Mtx sp8; M418DllUnkStruct3* temp_r31; @@ -1863,18 +1866,18 @@ s32 fn_1_75E4(void) { } } -void fn_1_77F8(void) { +void fn_1_77F8(s32 arg0) { M418DllUnkStruct6* var_r31; M418DllUnkStruct3* var_r30; var_r31 = &lbl_1_bss_3EC; var_r30 = &lbl_1_bss_26C[var_r31->unk0]; if (var_r30->unk4C == -1) { - HuAudFXFadeOut(lbl_1_bss_240.unk20, 0x3E8); + HuAudFXFadeOut(lbl_1_bss_240[8], 0x3E8); } } -s32 fn_1_7860(void) { +s32 fn_1_7860(s32 arg0) { M418DllUnkStruct3* temp_r31; M418DllUnkStruct6* temp_r30; @@ -1980,7 +1983,7 @@ s32 fn_1_7B68(s32 arg0) { return 0; } -void fn_1_7D80(void) { +void fn_1_7D80(s32 arg0) { s32 var_r31; M418DllUnkStruct3* temp_r30; M418DllUnkStruct6* temp_r29; @@ -2032,7 +2035,7 @@ s32 fn_1_7E24(s32 arg0) { } } -void fn_1_7F1C(void) { +void fn_1_7F1C(s32 arg0) { M418DllUnkStruct6* var_r31; M418DllUnkStruct4* var_r30; M418DllUnkStruct4* var_r29; @@ -2088,3 +2091,706 @@ s32 fn_1_7FD4(s32 arg0) { fn_1_B0C8(&lbl_1_bss_38, 1); return 0; } + +void fn_1_81A0(s32 arg0) {} + +s32 fn_1_81A4(s32 arg0) { + M418DllUnkStruct3* temp_r31; + M418DllUnkStruct4* temp_r30; + M418DllUnkStruct6* temp_r29; + + temp_r29 = &lbl_1_bss_3EC; + temp_r31 = &lbl_1_bss_26C[temp_r29->unk0]; + temp_r30 = &lbl_1_bss_11C[temp_r29->unk38]; + if (fn_1_B0C8(&lbl_1_bss_38, 0) < 0x3C) { + if (((temp_r30->unk0->work[0] == 0) || (temp_r30->unk0->work[1] == 0x18)) && (temp_r30->unk0->rot.y > -50.0f)) { + temp_r30->unk0->rot.y -= 5.0f; + if (temp_r30->unk0->rot.y <= -50.0f) { + temp_r30->unk0->rot.y = -50.0f; + } + } + if (temp_r31->unk0->rot.y < 180.0f) { + temp_r31->unk0->rot.y += 5.0f; + if (temp_r30->unk0->rot.y <= -50.0f) { + temp_r30->unk0->rot.y = -50.0f; + } + } + } else if (fn_1_B0C8(&lbl_1_bss_38, 0) == 0x3C) { + HuAudFXPlay(0x40); + fn_1_ABC4(temp_r30->unk0, 0, 2, 0xA, 0); + fn_1_AD14(temp_r31->unk0, 0, 0, 0xA, 1); + Hu3DMotionOverlaySet(temp_r31->unk0->model[0], temp_r31->unk0->motion[9]); + Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], 1.0f); + lbl_1_bss_240[8] = HuAudFXPlay(0x5D9); + } else if (fn_1_B0C8(&lbl_1_bss_38, 0) <= 0xAA) { + if (fn_1_B0C8(&lbl_1_bss_38, 0) >= 0x5A) { + temp_r31->unk3C += 0.025f; + if (temp_r31->unk3C >= 1.0f) { + temp_r31->unk3C = 1.0f; + } + } + } else { + Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], -1.0f); + } + if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { + return fn_1_B034(&lbl_1_bss_38, 4); + } else { + return 0; + } +} + +M418DllUnkStruct8 lbl_1_data_348[11] = { + { fn_1_6808, fn_1_6914, 300 }, + { fn_1_6DCC, fn_1_6E6C, 60 }, + { fn_1_6EB4, fn_1_6F38, 180 }, + { fn_1_7294, fn_1_7298, 300 }, + { fn_1_7570, fn_1_75E4, 300 }, + { fn_1_77F8, fn_1_7860, 60 }, + { fn_1_7A68, fn_1_7B68, 180 }, + { fn_1_7D80, fn_1_7E24, -1 }, + { fn_1_7F1C, fn_1_7FD4, 300 }, + { fn_1_81A0, fn_1_81A4, 240 }, + { NULL, NULL, -1 } +}; + +void fn_1_8480(void) { + fn_1_AEDC(&lbl_1_bss_38, (M418DllUnkStruct8**)&lbl_1_data_348); +} + +s32 fn_1_84B0(void) { + s32 var_r31; + + var_r31 = 0; + if (lbl_1_bss_38.unk10 != NULL) { + lbl_1_bss_38.unk10(); + lbl_1_bss_38.unk10 = NULL; + } + if (lbl_1_bss_38.unk14 != NULL) { + var_r31 = lbl_1_bss_38.unk14(); + } + return var_r31; +} + +void fn_1_8548(void) { + M418DllUnkStruct sp38; + M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; + Vec sp2C = { 0.0f, 1100.0f, 1800.0f }; + Vec sp20 = { 0.0f, 600.0f, 600.0f }; + + fn_1_B104(&sp38, sp2C, sp20); + fn_1_B41C(&sp38); + sp38.rot.x++; + fn_1_CBF8(var_r31, &sp38, var_r31->unk48++, 60.0f, 10.0f); +} + +void fn_1_8668(void) { + M418DllUnkStruct sp8; + f32 temp_f1; + + M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; + + sp8.center.x = sp8.center.y = 0.0f; + sp8.center.z = -500.0f; + sp8.rot.x = -20.0f; + sp8.rot.y = sp8.rot.z = 0.0f; + sp8.zoom = 1000.0f; + fn_1_CBF8(var_r31, &sp8, var_r31->unk48++, 10.0f, 5.0f); +} + +void fn_1_8728(void) { + M418DllUnkStruct sp8; + M418DllUnkStruct* var_r31; + + var_r31 = &lbl_1_bss_1F4; + + sp8.center.x = var_r31->center.x; + sp8.center.y = var_r31->center.y; + sp8.center.z = var_r31->center.z; + sp8.rot.x = var_r31->rot.x; + sp8.rot.y = var_r31->rot.y; + sp8.rot.z = var_r31->rot.z; + sp8.zoom = 500.0f; + fn_1_CBF8(var_r31, &sp8, var_r31->unk48++, 10.0f, 5.0f); +} + +void fn_1_87D0(s32 arg0) { + M418DllUnkStruct* var_r31; + + var_r31 = &lbl_1_bss_1F4; + + fn_1_B458(var_r31); + switch (arg0) { + case 0: + fn_1_248(fn_1_8548); + break; + case 1: + fn_1_248(fn_1_8668); + break; + case 2: + fn_1_248(fn_1_8728); + break; + } +} + +void fn_1_888C(s32 arg0) { + HuAudAUXVolSet(-1, -1); +} + +s32 fn_1_88B4(s32 arg0) { + s32 var_r31; + M418DllUnkStruct6* var_r30; + s32 var_r29; + M418DllUnkStruct3* var_r28; + M418DllUnkStruct3* var_r27; + M418DllUnkStruct* var_r23; + + var_r29 = 5; + var_r30 = &lbl_1_bss_3EC; + + fn_1_87D0(0); + lbl_1_bss_10 = 0; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_r28 = &lbl_1_bss_26C[var_r30->unk4[var_r31]]; + if (var_r28->unk4C != -1) { + var_r29 = 1; + lbl_1_bss_10 = 1; + } + } + if (var_r29 == 5) { + var_r27 = &lbl_1_bss_26C[var_r30->unk0]; + var_r27->unk0->rot.y = 0.0f; + } + fn_1_B034(&lbl_1_bss_20, var_r29); +} + +void fn_1_89B0(s32 arg0) { + M418DllUnkStruct6* var_r31; + s32 var_r30; + s32 var_r29; + M418DllUnkStruct3* temp_r28; + M418DllUnkStruct4* temp_r27; + + var_r29 = 0; + var_r31 = &lbl_1_bss_3EC; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r28 = &lbl_1_bss_26C[var_r31->unk4[var_r30]]; + if (temp_r28->unk4C != -1) { + var_r31->unk1C[var_r29] = var_r31->unk28[var_r29] = temp_r28->unk4C; + var_r29++; + } + } + switch (var_r29) { /* irregular */ + case 1: + var_r31->unk1C[0] = 3; + break; + case 2: + var_r31->unk1C[0] = 4; + var_r31->unk1C[1] = 5; + break; + case 3: + var_r31->unk1C[0] = 0; + var_r31->unk1C[1] = 1; + var_r31->unk1C[2] = 2; + break; + } + if (var_r31->unk28[0] == var_r31->unk28[1]) { + var_r31->unk28[1] = -1; + } + if (var_r31->unk28[0] == var_r31->unk28[1]) { + var_r31->unk28[1] = -1; + } + if (var_r31->unk28[1] == var_r31->unk28[2]) { + var_r31->unk28[2] = -1; + } + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + temp_r27 = &lbl_1_bss_170[var_r30]; + temp_r27->unkC = 0; + } +} + +s32 fn_1_8B14(s32 arg0) { + M418DllUnkStruct4* temp_r31; + s32 var_r30; + M418DllUnkStruct6* var_r29; + s32 var_r28; + + var_r29 = &lbl_1_bss_3EC; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + if (var_r29->unk28[var_r30] != -1) { + temp_r31 = &lbl_1_bss_170[var_r29->unk28[var_r30]]; + if (temp_r31->unkC == 0) { + if ((rand8() % 5) == 0) { + var_r28 = 1; + } else { + var_r28 = 0; + } + if ((var_r28 != 0) || (fn_1_B0C8(&lbl_1_bss_20, 0) >= 5)) { + temp_r31->unkC = 1; + HuAudFXPlay(0x5D3); + } + } else { + temp_r31->unk4 += 5.0f; + if (temp_r31->unk4 >= 90.0f) { + temp_r31->unk4 = 90.0f; + } + } + } + } + if (fn_1_B0C8(&lbl_1_bss_20, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_20); + } else { + return 0; + } +} + +void fn_1_8C84(s32 arg0) { + M418DllUnkStruct3* temp_r31; + s32 var_r30; + M418DllUnkStruct6* temp_r29; + M418DllUnkStruct3* temp_r28; + s32 var_r27; + s32 temp_r0; + + var_r27 = 0; + temp_r29 = &lbl_1_bss_3EC; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r31 = &lbl_1_bss_26C[temp_r29->unk4[var_r30]]; + if (temp_r31->unk4C != -1) { + omSetRot(temp_r31->unk0, 0.0f, 0.0f, 0.0f); + temp_r31->unk50 = var_r27 * -10; + temp_r31->unk54 = 0; + temp_r31->unk58 = var_r27++; + } + } + temp_r28 = &lbl_1_bss_26C[temp_r29->unk0]; + Hu3DMotionOverlayReset(*temp_r28->unk0->model); + temp_r28->unk0->work[1] = 1; +} + +Vec lbl_1_data_3CC[4] = { + { -540.0f, 225.0f, -900.0f }, + { -180.0f, 225.0f, -900.0f }, + { 180.0f, 225.0f, -900.0f }, + { 540.0f, 225.0f, -900.0f } +}; + +Vec lbl_1_data_3FC[6] = { + { -200.0f, 0.0f, -450.0f }, + { 0.0f, 0.0f, -400.0f }, + { 200.0f, 0.0f, -450.0f }, + { 0.0f, 0.0f, -400.0f }, + { -100.0f, 0.0f, -425.0f }, + { 100.0f, 0.0f, -425.0f } +}; + +s32 fn_1_8D70(s32 arg0) { + s32 sp10; + s32 spC; + s32 sp8; + M418DllUnkStruct3* temp_r31; + M418DllUnkStruct6* temp_r30; + s32 var_r29; + M418DllUnkStruct3* temp_r28; + M418DllUnkStruct3* temp_r27; + omObjData* var_r26; + s32 temp_r3; + void* temp_r4; + + temp_r30 = &lbl_1_bss_3EC; + + for (var_r29 = 0; var_r29 < 3; var_r29++) { + temp_r31 = &lbl_1_bss_26C[temp_r30->unk4[var_r29]]; + if (temp_r31->unk4C != -1) { + if (temp_r31->unk54 == 0) { + if (temp_r31->unk50++ == 0) { + temp_r31->unk54 = 1; + omSetTra(temp_r31->unk0, lbl_1_data_3CC[temp_r31->unk4C].x, lbl_1_data_3CC[temp_r31->unk4C].y, lbl_1_data_3CC[temp_r31->unk4C].z - 50.0f); + var_r26 = temp_r31->unk0; + temp_r28 = &lbl_1_bss_26C[var_r26->work[0]]; + if (temp_r28->unk1C == 0) { + temp_r28->unk1C = 1; + } + } + } else if (temp_r31->unk54 == 1) { + fn_1_3EB0(temp_r31->unk0, lbl_1_data_3FC[temp_r30->unk1C[temp_r31->unk58]], 0.0f, 12.0f); + } + } + } + temp_r27 = &lbl_1_bss_26C[temp_r30->unk0]; + if (fn_1_B0C8(&lbl_1_bss_20, 0) == 0x1E) { + fn_1_ABC4(temp_r27->unk0, 0, 0, 0xA, 1); + } + if (fn_1_B0C8(&lbl_1_bss_20, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_20); + } else { + return 0; + } +} + +void fn_1_8F74(s32 arg0) { + s32 sp8[3]; + M418DllUnkStruct3* temp_r31; + s32 var_r30; + M418DllUnkStruct6* var_r29; + M418DllUnkStruct3* temp_r28; + + var_r29 = &lbl_1_bss_3EC; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r31 = &lbl_1_bss_26C[var_r29->unk4[var_r30]]; + if (temp_r31->unk4C != -1) { + fn_1_ABC4(temp_r31->unk0, 0, 5, 10, 0); + } + sp8[var_r30] = temp_r31->unk14; + } + temp_r28 = &lbl_1_bss_26C[var_r29->unk0]; + fn_1_ABC4(temp_r28->unk0, 0, 6, 10, 0); + fn_1_87D0(1); + lbl_1_bss_14 = MGSeqCreate(5, 3, sp8[0], sp8[1], sp8[2], -1); + HuAudSStreamPlay(1); +} + +s32 fn_1_9094(s32 arg0) { + if (fn_1_B0C8(&lbl_1_bss_20, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_20); + } else { + return 0; + } +} + +void fn_1_90DC(s32 arg0) { + M418DllUnkStruct3* temp_r31; + M418DllUnkStruct6* temp_r30; + + temp_r30 = &lbl_1_bss_3EC; + temp_r31 = &lbl_1_bss_26C[temp_r30->unk0]; + Hu3DMotionOverlayReset(temp_r31->unk0->model[0]); + temp_r31->unk0->work[1] = 1; +} + +s32 fn_1_9140(s32 arg0) { + M418DllUnkStruct6* temp_r31; + M418DllUnkStruct3* temp_r30; + + temp_r31 = &lbl_1_bss_3EC; + + temp_r30 = &lbl_1_bss_26C[temp_r31->unk0]; + if (fn_1_B0C8(&lbl_1_bss_20, 0) == 0x1E) { + fn_1_ABC4(temp_r30->unk0, 0, 0, 0xA, 1); + } + if (fn_1_B0C8(&lbl_1_bss_20, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_20); + } else { + return 0; + } +} + +void fn_1_91E4(s32 arg0) { + M418DllUnkStruct3* temp_r31; + s32 var_r30; + M418DllUnkStruct6* temp_r29; + M418DllUnkStruct4* temp_r28; + + temp_r29 = &lbl_1_bss_3EC; + temp_r31 = &lbl_1_bss_26C[temp_r29->unk0]; + Hu3DMotionOverlayReset(temp_r31->unk0->model[0]); + fn_1_ABC4(temp_r31->unk0, 0, 5, 10, 0); + + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r28 = &lbl_1_bss_11C[var_r30]; + fn_1_ABC4(temp_r28->unk0, 0, 3, 10, 1); + } + fn_1_87D0(2); + lbl_1_bss_14 = MGSeqCreate(5, 3, temp_r31->unk14, -1, -1, -1); + HuAudSStreamPlay(1); +} + +s32 fn_1_92EC(s32 arg0) { + if (fn_1_B0C8(&lbl_1_bss_20, 1) != 0) { + return fn_1_AF38(&lbl_1_bss_20); + } else { + return 0; + } +} + +M418DllUnkStruct8 lbl_1_data_444[8] = { + { fn_1_888C, fn_1_88B4, -1 }, + { fn_1_89B0, fn_1_8B14, 90 }, + { fn_1_8C84, fn_1_8D70, 180 }, + { fn_1_8F74, fn_1_9094, 210 }, + { NULL, NULL, -1 }, + { fn_1_90DC, fn_1_9140, 180 }, + { fn_1_91E4, fn_1_92EC, 240 }, + { NULL, NULL, -1 } +}; + +void fn_1_9334(void) { + fn_1_AEDC(&lbl_1_bss_20, (M418DllUnkStruct8**)&lbl_1_data_444); +} + +s32 fn_1_9364(void) { + s32 var_r31; + + var_r31 = 0; + if (lbl_1_bss_20.unk10 != NULL) { + lbl_1_bss_20.unk10(); + lbl_1_bss_20.unk10 = NULL; + } + if (lbl_1_bss_20.unk14 != NULL) { + var_r31 = lbl_1_bss_20.unk14(); + } + return var_r31; +} + +void fn_1_93FC(omObjData* object) { + s32 var_r31; + M418DllUnkStruct6* var_r30; + M418DllUnkStruct3* var_r29; + M418DllUnkStruct3* var_r28; + s32 temp_r27; + s32 temp_r26; + + if (WipeStatGet() == 0) { + var_r30 = &lbl_1_bss_3EC; + if (lbl_1_bss_10 != 0) { + for (var_r31 = 0; var_r31 < 3; var_r31++) { + var_r29 = &lbl_1_bss_26C[var_r30->unk4[var_r31]]; + temp_r27 = var_r29->unk4; + if (_CheckFlag(0x1000C) == 0) { + GWPlayer[temp_r27].coin_win = 10; + } + } + } else { + var_r28 = &lbl_1_bss_26C[var_r30->unk0]; + temp_r26 = var_r28->unk4; + if (_CheckFlag(0x1000CU) == 0) { + GWPlayer[temp_r26].coin_win = 10; + } + } + HuAudFadeOut(0x3E8); + CharModelKill(-1); + MGSeqKillAll(); + HuAudAllStop(); + omOvlReturnEx(1, 1); + object->func = NULL; + } +} + +void fn_1_952C(omObjData* object) { + if (omSysExitReq == 1) { + HuAudSeqAllFadeOut(0xFA); + WipeCreate(2, 0, -1); + object->func = fn_1_93FC; + } +} + +void fn_1_958C(void) { + M418DllUnkStruct3* temp_r31; + s32 var_r30; + M418DllUnkStruct6* temp_r29; + M418DllUnkStruct2* temp_r28; + M418DllUnkStruct4* temp_r27; + M418DllUnkStruct4* temp_r26; + M418DllUnkStruct3* temp_r25; + s32 temp_r0; + s32 var_r24; + + var_r24 = 0; + temp_r28 = &lbl_1_bss_1E0; + for (var_r30 = 1; var_r30 < 4; var_r30++) { + fn_1_ABC4(temp_r28->unk0, var_r30, var_r30, 0, 2); + } + + for (var_r30 = 8; var_r30 < 11; var_r30++) { + fn_1_ABC4(temp_r28->unk0, var_r30, var_r30, 0, 1); + Hu3DModelPosSet(temp_r28->unk0->model[var_r30 + 8], -360.0f + (360.0f * (var_r30 - 8)), -200.0f, -660.0f); + Hu3DModelRotSet(temp_r28->unk0->model[var_r30], 0.0f, 0.0f, 20.0f); + } + + temp_r28->unk4[0] = temp_r28->unk4[1] = temp_r28->unk4[2] = temp_r28->unk4[3] = 0; + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + temp_r27 = &lbl_1_bss_170[var_r30]; + temp_r27->unk0->work[1] = temp_r27->unk0->work[2] = 0; + temp_r27->unk4 = 0.0f; + temp_r27->unkC = temp_r27->unk10 = temp_r27->unk14s = temp_r27->unk18s = 0; + } + + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r26 = &lbl_1_bss_11C[var_r30]; + omSetTra(temp_r26->unk0, lbl_1_data_8C[var_r30].x, lbl_1_data_8C[var_r30].y, lbl_1_data_8C[var_r30].z); + omSetRot(temp_r26->unk0, 0.0f, 0.0f, 0.0f); + omSetSca(temp_r26->unk0, 1.0f, 1.0f, 1.0f); + fn_1_AD14(temp_r26->unk0, 0, 0, 10, 1); + temp_r26->unk0->work[1] = -1U; + } + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + temp_r31 = &lbl_1_bss_26C[var_r30]; + if (temp_r31->unk8 != 0) { + omSetTra(temp_r31->unk0, 0.0f, -5000.0f, 0.0f); + } else { + omSetTra(temp_r31->unk0, 0.0f, 0.0f, 0.0f); + } + omSetRot(temp_r31->unk0, 0.0f, 0.0f, 0.0f); + omSetSca(temp_r31->unk0, 1.0f, 1.0f, 1.0f); + if (temp_r31->unk8 == 0) { + Hu3DModelAttrReset(temp_r31->unk0->model[11], 1); + Hu3DModelHookSet(temp_r31->unk0->model[0], lbl_1_data_1C0[temp_r31->unk14], temp_r31->unk0->model[11]); + Hu3DModelPosSet(temp_r31->unk0->model[11], 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(temp_r31->unk0->model[11], 0.0f, 0.0f, 0.0f); + Hu3DMotionOverlaySet(temp_r31->unk0->model[0], temp_r31->unk0->motion[9]); + Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], 0.0f); + } + fn_1_ABC4(temp_r31->unk0, 0, 0, 0, 1); + Hu3DModelShadowDispOn(temp_r31->unk0->model[0]); + temp_r31->unk4C = temp_r31->unk50 = temp_r31->unk54 = temp_r31->unk58 = temp_r31->unk5C = 0; + temp_r31->unk24 = -1; + temp_r31->unk28 = temp_r31->unk2C = temp_r31->unk30 = temp_r31->unk34 = temp_r31->unk38 = 0.0f; + } + + temp_r29 = &lbl_1_bss_3EC; + for (var_r30 = 0, var_r24 = 0; var_r30 < 4; var_r30++) { + temp_r25 = &lbl_1_bss_26C[var_r30]; + if (temp_r25->unk8 != 0) { + temp_r29->unk4[var_r24++] = temp_r25->unk4; + } else { + temp_r29->unk0 = temp_r25->unk4; + } + } + + for (var_r30 = 0; var_r30 < 3; var_r30++) { + temp_r29->unk1C[var_r30] = temp_r29->unk28[var_r30] = -1; + temp_r29->unk10[var_r30] = -1; + } + + temp_r29->unk34 = temp_r29->unk38 = temp_r29->unk3C = temp_r29->unk40 = 0; + fn_1_5D28(); + fn_1_8480(); + fn_1_9334(); + + for (var_r30 = 0; var_r30 < 10; var_r30++) { + lbl_1_bss_240[var_r30] = -1; + } + lbl_1_bss_240[6] = HuAudFXPlay(0x5D7); + lbl_1_bss_240[7] = HuAudFXPlay(0x5D8); +} + +void fn_1_9BA4(omObjData* object) { + switch (lbl_1_bss_18) { + case 0: + fn_1_958C(); + lbl_1_bss_18 = 1; + break; + case 1: + if (WipeStatGet() == 0) { + lbl_1_bss_18 = 2; + } + break; + case 2: + if (fn_1_5D58()) { + lbl_1_bss_18 = 3; + } + break; + case 3: + lbl_1_bss_1C = MGSeqCreate(3, 0); + lbl_1_bss_18 = 4; + lbl_1_data_0[1] = -1; + break; + case 4: + if (((MGSeqStatGet(lbl_1_bss_1C) & 0x10) != 0) && (lbl_1_data_0[1] == -1)) { + lbl_1_data_0[1] = HuAudSeqPlay(0x49); + } + if (MGSeqStatGet(lbl_1_bss_1C) == 0) { + lbl_1_bss_18 = 5; + } + break; + case 5: + if (fn_1_84B0()) { + lbl_1_bss_18 = 6; + } + break; + case 6: + lbl_1_bss_1C = MGSeqCreate(3, 1); + HuAudSeqPauseAll(0); + HuAudSeqAllFadeOut(0x64); + lbl_1_bss_18 = 7; + break; + case 7: + if (MGSeqStatGet(lbl_1_bss_1C) == 0) { + lbl_1_bss_18 = 8; + } + break; + case 8: + if (fn_1_9364()) { + lbl_1_bss_18 = 9; + } + break; + case 9: + WipeCreate(2, 0, -1); + object->func = fn_1_93FC; + break; + default: + lbl_1_bss_18 = 0; + break; + } + if (omSysExitReq == 1) { + HuAudSeqAllFadeOut(0xFA); + WipeCreate(2, 0, -1); + object->func = fn_1_93FC; + } +} + +void fn_1_9F94(omObjData* object) { + s32 var_r31; + M418DllUnkStruct4* temp_r30; + M418DllUnkStruct4* temp_r29; + M418DllUnkStruct3* temp_r28; + M418DllUnkStruct2* temp_r27; + M418DllWorkStruct* temp_r26; + + temp_r27 = &lbl_1_bss_1E0; + temp_r27->unk0 = omAddObjEx(lbl_1_bss_0, 0x100, 0x14U, 0x14U, -1, fn_1_B4C); + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + temp_r30 = &lbl_1_bss_170[var_r31]; + temp_r30->unk0 = omAddObjEx(lbl_1_bss_0, 0x200, 0x14U, 0x14U, -1, fn_1_14F0); + temp_r30->unk0->work[0] = var_r31; + } + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + temp_r29 = &lbl_1_bss_11C[var_r31]; + temp_r29->unk0 = omAddObjEx(lbl_1_bss_0, 0x300, 0x14U, 0x14U, -1, fn_1_29A0); + temp_r29->unk0->work[0] = var_r31; + } + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + temp_r28 = &lbl_1_bss_26C[var_r31]; + temp_r28->unk0 = omAddObjEx(lbl_1_bss_0, 0x400, 0x14U, 0x14U, -1, fn_1_4F60); + temp_r28->unk0->work[0] = var_r31; + } + + temp_r26 = &lbl_1_bss_68; + temp_r26->unk0 = omAddObjEx(lbl_1_bss_0, 0x500, 0xBU, 0xBU, -1, fn_1_3054); + WipeCreate(1, 0, -1); + object->func = fn_1_9BA4; +} + +#include "src/REL/executor.c" + +void fn_1_A1F0(void) { + lbl_1_bss_0 = omInitObjMan(0x3E, 0x2000); + omGameSysInit(lbl_1_bss_0); + HuAudAUXVolSet(-1, -1); + fn_1_0(); + fn_1_500(); + fn_1_618(); + fn_1_3138(); + omAddObjEx(lbl_1_bss_0, 0x1000, 0U, 0U, -1, fn_1_9F94); + omAddObjEx(lbl_1_bss_0, 0x2000, 0U, 0U, -1, fn_1_780); +} + +void ObjectSetup(void) { + fn_1_A1F0(); +} From 0382d2e342ad3dbb1dc5da9cdc07c671c7574bf8 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Fri, 22 Nov 2024 23:51:37 -0500 Subject: [PATCH 167/311] remove download_tool.py edit --- tools/download_tool.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tools/download_tool.py b/tools/download_tool.py index 09b002a5..f4512d01 100644 --- a/tools/download_tool.py +++ b/tools/download_tool.py @@ -20,8 +20,6 @@ import urllib.request import zipfile from typing import Callable, Dict from pathlib import Path -import certifi -import ssl def binutils_url(tag): @@ -106,7 +104,7 @@ def main() -> None: print(f"Downloading {url} to {output}") req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"}) - with urllib.request.urlopen(req, context=ssl.create_default_context(cafile=certifi.where())) as response: + with urllib.request.urlopen(req) as response: if url.endswith(".zip"): data = io.BytesIO(response.read()) with zipfile.ZipFile(data) as f: From f5e953cd617c140e9ccdf4b58926d50a0153d0f8 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 25 Nov 2024 12:47:58 +0100 Subject: [PATCH 168/311] Finished m421Dll --- config/GMPE01_00/rels/m421Dll/symbols.txt | 312 ++-- configure.py | 6 +- include/REL/m421Dll.h | 26 +- src/REL/m421Dll/main.c | 398 ++++- src/REL/m421Dll/map.c | 54 + src/REL/m421Dll/player.c | 1828 +++++++++++++++++++++ 6 files changed, 2424 insertions(+), 200 deletions(-) create mode 100644 src/REL/m421Dll/map.c create mode 100644 src/REL/m421Dll/player.c diff --git a/config/GMPE01_00/rels/m421Dll/symbols.txt b/config/GMPE01_00/rels/m421Dll/symbols.txt index 4afd037f..b2817421 100644 --- a/config/GMPE01_00/rels/m421Dll/symbols.txt +++ b/config/GMPE01_00/rels/m421Dll/symbols.txt @@ -79,157 +79,157 @@ fn_1_B398 = .text:0x0000B398; // type:function size:0x4 fn_1_B39C = .text:0x0000B39C; // type:function size:0x40 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC data:4byte -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:4byte -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x50 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x14 data:4byte -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x10 data:4byte -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x10 data:4byte -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x10 data:4byte -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x30 data:4byte -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x30 data:4byte -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:4byte -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x50 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x10 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x10 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x30 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x30 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float @@ -237,13 +237,13 @@ lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float -lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24 -lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24 data:float +lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 data:float lbl_1_data_94 = .data:0x00000094; // type:object size:0xC lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x4 data:byte -lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x1A data:string -lbl_1_data_BE = .data:0x000000BE; // type:object size:0x19 data:string -lbl_1_data_D8 = .data:0x000000D8; // type:object size:0xB data:string +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x1A scope:local data:string +lbl_1_data_BE = .data:0x000000BE; // type:object size:0x19 scope:local data:string +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0xB scope:local data:string lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x20 lbl_1_data_104 = .data:0x00000104; // type:object size:0x60 lbl_1_data_164 = .data:0x00000164; // type:object size:0x20 diff --git a/configure.py b/configure.py index 3ed51f0e..ca011b7c 100644 --- a/configure.py +++ b/configure.py @@ -1005,9 +1005,9 @@ config.libs = [ Rel( "m421Dll", # Hop or Pop objects={ - Object(NonMatching, "REL/m421Dll/main.c"), - Object(NonMatching, "REL/m421Dll/player.c"), - Object(NonMatching, "REL/m421Dll/map.c"), + Object(Matching, "REL/m421Dll/main.c"), + Object(Matching, "REL/m421Dll/player.c"), + Object(Matching, "REL/m421Dll/map.c"), }, ), Rel( diff --git a/include/REL/m421Dll.h b/include/REL/m421Dll.h index 04e08da4..9f2ff4a9 100644 --- a/include/REL/m421Dll.h +++ b/include/REL/m421Dll.h @@ -25,18 +25,38 @@ typedef struct M421DllCameraStruct { s32 unk_3C; float unk_40; UnkM421DllStruct unk_44; - char unk54[0x30]; + float unk_54; + float unk_58; + float unk_5C; + float unk_60; + float unk_64; + float unk_68; + char unk6C[0x18]; float unk_84; char unk88[0x4]; float unk_8C; float unk_90; - s32 unk_94; + u32 unk_94; char unk98[0xC]; } M421DllCameraStruct; /* size = 0xA4 */ // same as M443DllCameraStruct and M460 +M421DllCameraStruct *fn_1_3C14(s32 arg0); +u32 fn_1_3E34(void); +u32 fn_1_3E4C(void); +u32 fn_1_3E64(void); +s32 fn_1_3E7C(s32 arg0); +s32 fn_1_3EF8(s32 arg0); +void fn_1_3F28(s32 arg0, s32 arg1, s32 arg2); +void fn_1_3F68(s32 arg0); +void fn_1_3F98(s32 arg0); +void fn_1_3FC8(s32 arg0); +s32 fn_1_3FF8(void); +float fn_1_4478(float arg8, float arg9, float argA); + void fn_1_4648(Process *process); void fn_1_48B0(void); -void fn_1_B15C(Process *process, omObjData *object); +void fn_1_B15C(Process *process); void fn_1_B1BC(void); +void fn_1_B39C(void); #endif diff --git a/src/REL/m421Dll/main.c b/src/REL/m421Dll/main.c index d958eb05..24d109e2 100644 --- a/src/REL/m421Dll/main.c +++ b/src/REL/m421Dll/main.c @@ -1,5 +1,3 @@ -#include "dolphin/gx/GXEnum.h" -#include "dolphin/gx/GXVert.h" #include "ext_math.h" #include "game/audio.h" #include "game/gamework.h" @@ -22,27 +20,24 @@ typedef struct M421DllWork { u32 unk_00; s32 unk_04; s32 unk_08; - u32 unk0C; + u32 unk_0C; s32 unk_10; u32 unk_14; u32 unk_18; u32 unk_1C; u32 unk_20; u32 unk24; - s32 unk28; + u32 unk_28; u32 unk_2C; - s32 unk30; - char unk34[0x4]; - u32 unk38; - s32 unk3C; - s32 unk40; - s32 unk44; - s32 unk48; - s32 unk4C; - u32 unk50; - s32 unk54[4]; - s32 unk64[4]; -} M421DllWork; /* size = 0x74 */ // TODO check the fields, they are copy pasted + s32 unk_30[4]; + s32 unk_40[4]; + s32 unk_50[4]; + u32 unk_60; + u32 unk_64; + u32 unk_68; + u32 unk_6C; + s32 unk_70; +} M421DllWork; /* size = 0x74 */ void fn_1_10EC(omObjData *object); void fn_1_142C(omObjData *object); @@ -66,6 +61,24 @@ void fn_1_784(omObjData *object); void fn_1_8B8(omObjData *object); void fn_1_CBC(omObjData *object); +Vec lbl_1_data_0 = { 100.0f, 800.0f, -100.0f }; +Vec lbl_1_data_C = { 0.3f, -0.8f, 0.3f }; +Vec lbl_1_data_18 = { 10.0f, 45.0f, 3500.0f }; +GXColor lbl_1_data_24 = { 0xFF, 0xFF, 0xFF, 0xFF }; +Vec lbl_1_data_28 = { 50.0f, 150000.0f, 50.0f }; +Vec lbl_1_data_34 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_40 = { 0.0f, 0.0f, 0.0f }; +Vec lbl_1_data_4C[3] = { + { 0.0f, 200.0f, -50.0f }, + { 0.0f, 200.0f, -50.0f }, + { 0.0f, 200.0f, -50.0f }, +}; +Vec lbl_1_data_70[3] = { + { -37.5f, 0.0f, 1500.0f }, + { -37.5f, 0.0f, 1500.0f }, + { -37.5f, 0.0f, 2300.0f }, +}; +s32 lbl_1_data_94[3] = { 0xF0, 0x1E, 0 }; GXColor lbl_1_data_A0 = { 0, 0, 0, 0 }; Process *lbl_1_bss_28; @@ -74,7 +87,7 @@ omObjData *lbl_1_bss_20; // M421DllCameraStruct omObjData *lbl_1_bss_1C; s16 lbl_1_bss_18; -s16 lbl_1_bss_12; +s16 lbl_1_bss_12[3]; s16 lbl_1_bss_10; s16 lbl_1_bss_E; s16 lbl_1_bss_C; @@ -82,21 +95,92 @@ s32 lbl_1_bss_8; s32 lbl_1_bss_4; s32 lbl_1_bss_0; -void fn_1_578(omObjData *var_r29) +void ObjectSetup(void) +{ + Mtx sp2C; + Vec sp20 = { 0.0f, 0.0f, 0.0f }; + Vec sp14 = { 0.0f, 0.0f, -1.0f }; + Vec sp8; + Process *process; + LightData *lightData; + + lbl_1_bss_8 = 0; + HuAudSndGrpSet(0x2E); + HuAudFXListnerSetEX(&sp20, &sp14, 11200.0f, 4166.6665f, 0.0f, 300.0f, 0.0f); + lbl_1_bss_4 = lbl_1_bss_0 = -1; + lbl_1_bss_18 = -1; + lbl_1_data_28.x = 200.0f; + lbl_1_data_28.y = 1200.0f; + lbl_1_data_28.z = 160.0f; + lbl_1_data_34.x = 0.0f; + lbl_1_data_34.y = 1.0f; + lbl_1_data_34.z = 0.0f; + lbl_1_data_40.x = 0.0f; + lbl_1_data_40.y = 0.0f; + lbl_1_data_40.z = 0.0f; + Hu3DShadowCreate(22.0f, 20.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); + lbl_1_bss_12[0] = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24); + Hu3DGLightInfinitytSet(lbl_1_bss_12[0]); + lightData = &Hu3DGlobalLight[lbl_1_bss_12[0]]; + lightData->unk_00 |= 0x8000; + lbl_1_data_18.x = 1.0f; + lbl_1_data_18.y = 0.0f; + lbl_1_data_18.z = 4200.0f; + sp8.x = sp8.z = 0.0f; + sp8.y = lbl_1_data_18.z; + mtxRot(sp2C, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); + PSMTXMultVec(sp2C, &sp8, &lbl_1_data_28); + Hu3DGLightPosAimSetV(lbl_1_bss_12[0], &lbl_1_data_28, &lbl_1_data_40); + Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); + lbl_1_bss_10 = lbl_1_bss_E = lbl_1_bss_C = -1; + process = omInitObjMan(0x32, 0x2000); + lbl_1_bss_28 = process; + omGameSysInit(process); + fn_1_3020(process); + lbl_1_bss_24 = omAddObjEx(process, 0xA, 0, 0, -1, fn_1_4A0); + fn_1_B15C(process); + fn_1_4648(process); +} + +void fn_1_4A0(omObjData *object) +{ + M421DllWork *work; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M421DllWork), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M421DllWork)); + work->unk_00 = 0; + work->unk_04 = 0; + work->unk_0C = 0; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0; + work->unk_28 = 0; + work->unk_2C = 0; + work->unk_08 = 0; + work->unk_64 = 2; + work->unk_50[0] = work->unk_50[1] = work->unk_50[2] = work->unk_50[3] = -1; + work->unk_68 = 0; + work->unk_70 = 0; + object->func = fn_1_8B8; +} + +void fn_1_578(omObjData *object) { Vec sp14; Vec sp8; M421DllCameraStruct *var_r31; - M421DllWork *var_r30; - var_r30 = var_r29->data; - var_r30->unk_04++; - var_r30->unk_10++; - var_r30->unk_18++; - var_r30->unk_2C++; - if ((omSysExitReq != 0) && (var_r30->unk_00 != 5)) { - var_r30->unk_00 = 4; - fn_1_784(var_r29); + M421DllWork *work = object->data; + work->unk_04++; + work->unk_10++; + work->unk_18++; + work->unk_2C++; + if ((omSysExitReq != 0) && (work->unk_00 != 5)) { + work->unk_00 = 4; + fn_1_784(object); } var_r31 = fn_1_3B78(1); sp8.x = -(sind(var_r31->unk_28.y) * cosd(var_r31->unk_28.x)); @@ -182,7 +266,7 @@ void fn_1_142C(omObjData *object) case 0: work->unk_1C = 0x2D; work->unk_20 = 0x3C; - lbl_1_bss_18 = MGSeqCreate(3, 0); + lbl_1_bss_10 = MGSeqCreate(3, 0); MGSeqPosSet(lbl_1_bss_10, 320.0f, 240.0f); lbl_1_bss_18 = -1; work->unk_14 = 1; @@ -192,7 +276,7 @@ void fn_1_142C(omObjData *object) if ((lbl_1_bss_4 < 0) && ((MGSeqStatGet(lbl_1_bss_10) & 0x10) != 0)) { lbl_1_bss_4 = HuAudSeqPlay(0x48); } - if (MGSeqStatGet(lbl_1_bss_18) == 0 && (work->unk_08 == 0)) { + if (MGSeqStatGet(lbl_1_bss_10) == 0 && (work->unk_08 == 0)) { work->unk_14 = 2; work->unk_18 = 0; object->func = fn_1_1850; @@ -201,6 +285,61 @@ void fn_1_142C(omObjData *object) } } +void fn_1_1850(omObjData *object) +{ + M421DllWork *work = object->data; + s32 var_r26 = 0; + fn_1_578(object); + if (--work->unk_20 == 0) { + work->unk_20 = 0x3C; + work->unk_1C--; + if ((work->unk_1C == 0) && (work->unk_64 == 2)) { + work->unk_64 = 1; + var_r26 = 1; + } + } + if (lbl_1_bss_18 < 0) { + lbl_1_bss_18 = MGSeqCreate(1, work->unk_1C, -1, -1); + } + MGSeqParamSet(lbl_1_bss_18, 1, work->unk_1C); + if (work->unk_64 != 2) { + var_r26 = 1; + } + if (var_r26 != 0) { + lbl_1_bss_E = MGSeqCreate(3, 1); + MGSeqPosSet(lbl_1_bss_E, 320.0f, 240.0f); + HuAudSeqFadeOut(lbl_1_bss_4, 0x64); + work->unk_14 = 3; + work->unk_18 = 0; + if (work->unk_08 == 0) { + object->func = fn_1_1C90; + } + } +} + +void fn_1_1C90(omObjData *object) +{ + M421DllWork *work = object->data; + s32 var_r25 = 0; + if (lbl_1_bss_18 >= 0) { + MGSeqParamSet(lbl_1_bss_18, 2, -1); + lbl_1_bss_18 = -1; + } + fn_1_578(object); + if (work->unk_14 == 3) { + var_r25 = 1; + if ((MGSeqStatGet(lbl_1_bss_E) == 0) && (work->unk_68 == 0x1111) && (var_r25 != 0)) { + work->unk_14 = 4; + work->unk_18 = 0; + } + } + else { + work->unk_14 = 5; + work->unk_18 = 0; + fn_1_784(object); + } +} + omObjFunc fn_1_213C(Process *process, omObjData *object) { M421DllCameraStruct *var_r31; @@ -213,6 +352,121 @@ omObjFunc fn_1_213C(Process *process, omObjData *object) return fn_1_21AC; } +void fn_1_21AC(omObjData *object) +{ + Vec sp20; + float var_f31; + M421DllCameraStruct *var_r30; + M421DllWork *work; + + work = object->data; + fn_1_578(object); + work->unk_0C = 1; + object->work[0]++; + var_f31 = (float)object->work[0] / lbl_1_data_94[object->work[1]]; + VECSubtract(&lbl_1_data_4C[object->work[1] + 1], &lbl_1_data_4C[object->work[1]], &sp20); + VECScale(&sp20, &sp20, var_f31); + VECAdd(&lbl_1_data_4C[object->work[1]], &sp20, &sp20); + Center.x = sp20.x; + Center.y = sp20.y; + Center.z = sp20.z; + VECSubtract(&lbl_1_data_70[object->work[1] + 1], &lbl_1_data_70[object->work[1]], &sp20); + VECScale(&sp20, &sp20, var_f31); + VECAdd(&lbl_1_data_70[object->work[1]], &sp20, &sp20); + CRot.x = sp20.x; + CRot.y = sp20.y; + CRot.z = 0.0f; + CZoom = sp20.z; + var_r30 = fn_1_3CB0(0); + var_r30->unk_1C = Center; + var_r30->unk_28 = CRot; + var_r30->unk_34 = CZoom; + var_r30->unk_94++; + if (var_r30->unk_94 > 180.0f) { + var_r30->unk_84 -= 0.025000002f; + if (var_r30->unk_84 < 0.0f) { + var_r30->unk_84 = 0.0f; + } + var_r30->unk_1C.x += var_r30->unk_84 * ((0.02f * frandmod(0x3E8)) - 10.0f); + var_r30->unk_1C.y += var_r30->unk_84 * ((0.02f * frandmod(0x3E8)) - 10.0f); + var_r30->unk_1C.z += var_r30->unk_84 * ((0.02f * frandmod(0x3E8)) - 10.0f); + } + if (var_f31 >= 1.0f) { + object->work[0] = 0; + object->work[1]++; + if (lbl_1_data_94[object->work[1]] == 0) { + work->unk_0C = 2; + fn_1_784(object); + } + } +} + +omObjFunc fn_1_2A28(Process *process, omObjData *object) +{ + M421DllCameraStruct *var_r31; + s32 var_r30; + M421DllWork *var_r29; + s32 var_r28; + + var_r29 = object->data; + var_r28 = 1; + var_r31 = fn_1_3CB0(0); + if (var_r29->unk_64 == 1) { + var_r28 = 0; + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r29->unk_50[var_r30] = -1; + if ((var_r29->unk_40[var_r30] == 0) == var_r28) { + var_r29->unk_50[var_r30] = var_r29->unk_30[var_r30]; + } + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r29->unk_50[var_r30] >= 0) { + GWPlayerCoinWinAdd(var_r30, 10); + } + } + var_r31->unk_54 = 0.0f; + var_r31->unk_58 = 150.0f; + var_r31->unk_5C = 0.0f; + var_r31->unk_60 = -30.0f; + var_r31->unk_64 = 0.0f; + var_r31->unk_68 = 1000.0f; + var_r31->unk_84 = 0.0f; + return fn_1_2BB8; +} + +void fn_1_2BB8(omObjData *var_r29) +{ + M421DllCameraStruct *var_r31; + M421DllWork *var_r28; + + var_r28 = var_r29->data; + var_r31 = fn_1_3CB0(0); + fn_1_578(var_r29); + var_r31->unk_84 += 0.0016666668f; + if (var_r31->unk_84 > 0.1f) { + var_r31->unk_84 = 0.1f; + } + var_r31->unk_1C.y += var_r31->unk_84 * (var_r31->unk_58 - var_r31->unk_1C.y); + var_r31->unk_1C.z += var_r31->unk_84 * (var_r31->unk_5C - var_r31->unk_1C.z); + var_r31->unk_28.x = fn_1_4478(var_r31->unk_28.x, var_r31->unk_60, var_r31->unk_84); + var_r31->unk_34 += var_r31->unk_84 * (var_r31->unk_68 - var_r31->unk_34); + if (var_r28->unk_6C == 0x1111) { + var_r28->unk_28 = 1; + if (lbl_1_bss_0 < 0) { + lbl_1_bss_0 = HuAudSStreamPlay(1); + } + if (lbl_1_bss_C < 0) { + lbl_1_bss_C = MGSeqCreate(5, 3, var_r28->unk_50[0], var_r28->unk_50[1], var_r28->unk_50[2], var_r28->unk_50[3]); + return; + } + if ((MGSeqStatGet(lbl_1_bss_C) == 0) && (var_r28->unk_2C >= 210.0f)) { + var_r28->unk_28 = 2; + fn_1_784(var_r29); + } + } +} + void fn_1_3020(Process *process) { Hu3DCameraCreate(0x1F); @@ -275,7 +529,7 @@ void fn_1_3334(omObjData *object) fn_1_335C(object); } -void fn_1_335C(omObjData *var_r28) +void fn_1_335C(omObjData *object) { float var_f31; M421DllCameraStruct *var_r31; @@ -289,7 +543,7 @@ void fn_1_335C(omObjData *var_r28) u32 var_r22; u32 var_r21; - var_r27 = var_r28->data; + var_r27 = object->data; { s32 sp40[4] = { 2, 4, 8, 16 }; u32 sp30[4]; @@ -299,7 +553,7 @@ void fn_1_335C(omObjData *var_r28) var_r24 = 0; var_r26 = 0; memcpy(&var_r27[5], var_r27, 5 * sizeof(M421DllCameraStruct)); - switch (var_r28->work[1]) { + switch (object->work[1]) { case 0: break; case 1: @@ -314,10 +568,10 @@ void fn_1_335C(omObjData *var_r28) break; } if (var_r24 != 0) { - Hu3DModelAttrReset(var_r28->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); } else { - Hu3DModelAttrSet(var_r28->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); } for (var_r30 = 0; var_r30 < 4; var_r30++) { sp30[var_r30] = var_r27[var_r30 + 6].unk_04; @@ -509,18 +763,86 @@ void fn_1_3D84(s32 arg0, s32 arg1) } } +s32 fn_1_3E1C(void) +{ + return ((M421DllWork *)lbl_1_bss_24->data)->unk_00; +} + +u32 fn_1_3E34(void) +{ + return ((M421DllWork *)lbl_1_bss_24->data)->unk_0C; +} + +u32 fn_1_3E4C(void) +{ + return ((M421DllWork *)lbl_1_bss_24->data)->unk_14; +} + +u32 fn_1_3E64(void) +{ + return ((M421DllWork *)lbl_1_bss_24->data)->unk_28; +} + +s32 fn_1_3E7C(s32 arg0) +{ + M421DllWork *work = lbl_1_bss_24->data; + + if (work->unk_64 != 2) { + return 0; + } + work->unk_60 |= (1 << ((arg0 & 3) * 4)); + if (((work->unk_60 & 0x1110) == 0x1110) && (work->unk_64 == 2)) { + work->unk_64 = 0; + } + return 1; +} + +s32 fn_1_3EF8(s32 arg0) +{ + M421DllWork *work = lbl_1_bss_24->data; + return work->unk_50[arg0]; +} + +void fn_1_3F28(s32 arg0, s32 arg1, s32 arg2) +{ + M421DllWork *work = lbl_1_bss_24->data; + arg0 &= 3; + work->unk_40[arg0] = arg1; + work->unk_30[arg0] = arg2; +} + +void fn_1_3F68(s32 arg0) +{ + ((M421DllWork *)lbl_1_bss_24->data)->unk_68 |= (1 << ((arg0 & 7) * 4)); +} + +void fn_1_3F98(s32 arg0) +{ + ((M421DllWork *)lbl_1_bss_24->data)->unk_6C |= (1 << ((arg0 & 3) * 4)); +} + +void fn_1_3FC8(s32 arg0) +{ + ((M421DllWork *)lbl_1_bss_24->data)->unk_70 |= (1 << ((arg0 & 3) * 4)); +} + +s32 fn_1_3FF8(void) +{ + return MGSeqStatGet(lbl_1_bss_E) == 0; +} + void fn_1_4030(Vec *sp8, Vec *var_r31) { Vec sp10; float var_f30; float var_f29; - PSVECSubtract(var_r31, sp8, &sp10); + VECSubtract(var_r31, sp8, &sp10); Center = *var_r31; CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z))); CRot.y = atan2d(-sp10.x, -sp10.z); CRot.z = 0.0f; - CZoom = PSVECMag(&sp10); + CZoom = VECMag(&sp10); } void fn_1_4238(float arg8, float arg9, float argA, float argB, float argC, float argD) @@ -535,12 +857,12 @@ void fn_1_4238(float arg8, float arg9, float argA, float argB, float argC, float sp30.x = argB; sp30.y = argC; sp30.z = argD; - PSVECSubtract(&sp30, &sp3C, &sp24); + VECSubtract(&sp30, &sp3C, &sp24); Center = sp30; CRot.x = atan2d(sp24.y, sqrtf((sp24.x * sp24.x) + (sp24.z * sp24.z))); CRot.y = atan2d(-sp24.x, -sp24.z); CRot.z = 0.0f; - CZoom = PSVECMag(&sp24); + CZoom = VECMag(&sp24); } float fn_1_4478(float arg8, float arg9, float argA) diff --git a/src/REL/m421Dll/map.c b/src/REL/m421Dll/map.c new file mode 100644 index 00000000..5bd4e611 --- /dev/null +++ b/src/REL/m421Dll/map.c @@ -0,0 +1,54 @@ +#include "game/hsfman.h" +#include "game/hsfmotion.h" + +#include "REL/m421Dll.h" + +void fn_1_B1C0(omObjData *object); +void fn_1_B398(omObjData *object); + +omObjData *lbl_1_bss_58; + +void fn_1_B15C(Process *work) +{ + omObjData *object = omAddObjEx(work, 0x1E, 6, 0, -1, fn_1_B1C0); + lbl_1_bss_58 = object; + object->work[0] = 0; +} + +void fn_1_B1BC(void) { } + +void fn_1_B1C0(omObjData *var_r31) +{ + omSetTra(var_r31, 0.0f, 0.0f, 0.0f); + var_r31->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x02)); + Hu3DModelLayerSet(var_r31->model[0], 1); + Hu3DModelShadowMapSet(var_r31->model[0]); + + var_r31->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x00)); + Hu3DModelLayerSet(var_r31->model[1], 1); + + var_r31->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x01)); + Hu3DModelLayerSet(var_r31->model[2], 5); + + var_r31->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x05)); + Hu3DModelLayerSet(var_r31->model[3], 1); + Hu3DModelAttrSet(var_r31->model[3], HU3D_MOTATTR_LOOP); + + var_r31->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x03)); + Hu3DModelLayerSet(var_r31->model[4], 5); + Hu3DModelAttrSet(var_r31->model[4], HU3D_MOTATTR_LOOP); + + var_r31->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M421, 0x04)); + Hu3DModelLayerSet(var_r31->model[5], 5); + Hu3DMotionTimeSet(var_r31->model[5], 0.0f); + var_r31->work[0] = 0; + var_r31->work[1] = 0; + var_r31->func = fn_1_B398; +} + +void fn_1_B398(omObjData *object) { } + +void fn_1_B39C(void) +{ + Hu3DMotionTimeSet(lbl_1_bss_58->model[5], 0.0f); +} diff --git a/src/REL/m421Dll/player.c b/src/REL/m421Dll/player.c new file mode 100644 index 00000000..4735d112 --- /dev/null +++ b/src/REL/m421Dll/player.c @@ -0,0 +1,1828 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "string.h" + +#include "REL/m421Dll.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#include "game/frand.h" +#endif + +typedef struct M421DllPlayerWork { + s32 unk_00; + s32 unk_04; + s32 unk_08; + u32 unk_0C; + u32 unk_10; + s32 unk_14; + float unk_18; + float unk_1C; + s32 unk_20; + s32 unk_24; + s32 unk_28; + s32 unk_2C; + char unk30[0x4]; + s32 unk_34; + s32 unk_38; + s32 unk_3C; + char unk40[4]; + u16 unk_44; + u32 unk_48; + char unk4C[0x4]; + s16 unk_50; + char unk52[6]; + float unk_58; + float unk_5C; + float unk_60; + float unk_64; + float unk_68; + s32 unk_6C; + u32 unk_70; + u32 unk_74; + s32 unk_78; + char unk7C[4]; + float unk_80; + float unk_84; + float unk_88; + float unk_8C; + float unk_90; + float unk_94; + float unk_98; + float unk_9C; + float unk_A0; + float unk_A4; + float unk_A8; + float unk_AC; + float unk_B0; + float unk_B4; + u32 unk_B8; + u32 unk_BC; + u32 unk_C0; + u32 unk_C4; + s32 unk_C8; + Vec unk_CC; + Vec unk_D8; + Vec unk_E4; + Vec unk_F0; + Vec unk_FC; + float unk_108[4]; + Mtx unk_118; + float *unk_148; +} M421DllPlayerWork; /* size = 0x14C */ + +typedef struct M421DllPlayerDLWork { + Vec unk_00[4]; + u32 unk_30[4]; + GXColor unk_40[4]; + Vec unk_50[4][0xE]; + u32 unk_2F0; + void *unk_2F4; +} M421DllPlayerDLWork; /* size = 0x2F8 */ + +typedef struct UnkData1BCStruct { + /* 0x00 */ u16 unk_00; + /* 0x04 */ float unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ u32 unk_10; +} UnkData1BCStruct; /* size = 0x14 */ + +void fn_1_48D4(omObjData *object); +void fn_1_4F00(omObjData *object); +void fn_1_5060(omObjData *object); +void fn_1_53C8(omObjData *object); +void fn_1_578C(omObjData *object); +void fn_1_5B9C(omObjData *object); +void fn_1_6184(omObjData *object); +void fn_1_6400(omObjData *object); +void fn_1_66B4(omObjData *object); +void fn_1_676C(omObjData *object); +void fn_1_6D48(omObjData *object); +void fn_1_7478(omObjData *object); +void fn_1_7670(omObjData *object); +void fn_1_7AA0(omObjData *object); +void fn_1_80C0(omObjData *object); +void fn_1_893C(omObjData *object); +void fn_1_9474(omObjData *object, Vec *arg1, Vec *arg2); +void fn_1_956C(omObjData *object); +void fn_1_982C(omObjData *object, u32 arg1); +s32 fn_1_99B8(omObjData *object); +void fn_1_9BFC(float arg8, float arg9, float *arg0); +void fn_1_9C38(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_9DD0(omObjData *object, Vec *arg1); +void fn_1_A528(omObjData *object); +void fn_1_AB68(omObjData *object); +void fn_1_AB6C(ModelData *model, Mtx matrix); +void fn_1_ABDC(ModelData *model, Mtx matrix); + +char *lbl_1_data_E4[8] = { + "itemhook-r", + "itemhook-r", + "itemhook-r", + "itemhook-r", + "itemhook-r", + "itemhook-r", + "itemhook-r", + "itemhook-r", +}; + +s32 lbl_1_data_104[8][3] = { + { DATA_MAKE_NUM(DATADIR_M421, 0x06), DATA_MAKE_NUM(DATADIR_M421, 0x0E), DATA_MAKE_NUM(DATADIR_M421, 0x16) }, + { DATA_MAKE_NUM(DATADIR_M421, 0x07), DATA_MAKE_NUM(DATADIR_M421, 0x0F), DATA_MAKE_NUM(DATADIR_M421, 0x17) }, + { DATA_MAKE_NUM(DATADIR_M421, 0x08), DATA_MAKE_NUM(DATADIR_M421, 0x10), DATA_MAKE_NUM(DATADIR_M421, 0x18) }, + { DATA_MAKE_NUM(DATADIR_M421, 0x09), DATA_MAKE_NUM(DATADIR_M421, 0x11), DATA_MAKE_NUM(DATADIR_M421, 0x19) }, + { DATA_MAKE_NUM(DATADIR_M421, 0x0A), DATA_MAKE_NUM(DATADIR_M421, 0x12), DATA_MAKE_NUM(DATADIR_M421, 0x1A) }, + { DATA_MAKE_NUM(DATADIR_M421, 0x0B), DATA_MAKE_NUM(DATADIR_M421, 0x13), DATA_MAKE_NUM(DATADIR_M421, 0x1B) }, + { DATA_MAKE_NUM(DATADIR_M421, 0x0C), DATA_MAKE_NUM(DATADIR_M421, 0x14), DATA_MAKE_NUM(DATADIR_M421, 0x1C) }, + { DATA_MAKE_NUM(DATADIR_M421, 0x0D), DATA_MAKE_NUM(DATADIR_M421, 0x15), DATA_MAKE_NUM(DATADIR_M421, 0x1D) }, +}; +s32 lbl_1_data_164[8] = { + DATA_MAKE_NUM(DATADIR_M421, 0x1E), + DATA_MAKE_NUM(DATADIR_M421, 0x1F), + DATA_MAKE_NUM(DATADIR_M421, 0x20), + DATA_MAKE_NUM(DATADIR_M421, 0x21), + DATA_MAKE_NUM(DATADIR_M421, 0x22), + DATA_MAKE_NUM(DATADIR_M421, 0x23), + DATA_MAKE_NUM(DATADIR_M421, 0x24), + DATA_MAKE_NUM(DATADIR_M421, 0x25), +}; +float lbl_1_data_184[8] = { 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.8f }; +s32 lbl_1_data_1A4[6] = { 0, 2, 3, 0x14, 0x17, 0x18 }; +UnkData1BCStruct lbl_1_data_1BC[6] = { + { 0, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 1, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 2, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 3, 0.2f, 0.0f, -1.0f, 0 }, + { 4, 0.2f, 0.0f, -1.0f, 0 }, + { 5, 0.2f, 0.0f, -1.0f, 0 }, +}; +Vec lbl_1_data_234[4] = { + { 0.0f, 0.0f, 100.0f }, + { -200.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + { 200.0f, 0.0f, 0.0f }, +}; +Vec lbl_1_data_264[4] = { + { -80.0f, 0.0f, -300.0f }, + { -200.0f, 0.0f, -50.0f }, + { 0.0f, 0.0f, -150.0f }, + { 200.0f, 0.0f, -50.0f }, +}; +Vec2f lbl_1_data_294[3] = { { 300.0f, 0.4f }, { 450.0f, 0.7f }, { 600.0f, 1.0f } }; +u32 lbl_1_data_2AC[3] = { 6, 0xC, 0xC }; +float lbl_1_data_2B8[3] = { 8.000001f, 8.5f, 9.166667f }; +float lbl_1_data_2C4[3] = { 0.9f, 0.8f, 0.5f }; +float lbl_1_data_2D0[3] = { 19.800001f, 20.400002f, 20.400002f }; +float lbl_1_data_2DC[3] = { -70.0f, -60.000004f, -70.0f }; +float lbl_1_data_2E8[3] = { 192.00003f, 357.0f, 550.0f }; + +// M421DllPlayerWork +omObjData *lbl_1_bss_48[4]; +// M421DllPlayerDLWork +omObjData *lbl_1_bss_44; +u32 lbl_1_bss_34[4]; +u32 lbl_1_bss_30; + +void fn_1_4648(Process *process) +{ + u32 sp18[4]; + u32 sp8[4]; + s16 var_r31; + s16 var_r30; + u32 var_r29; + omObjData *var_r27; + + lbl_1_bss_30 = -1; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + sp18[var_r31] = GWPlayerCfg[var_r31].group; + sp8[var_r31] = var_r31; + } + for (var_r31 = 0; var_r31 < 3; var_r31++) { + for (var_r30 = var_r31 + 1; var_r30 < 4; var_r30++) { + if (sp18[var_r31] > sp18[var_r30]) { + var_r29 = sp18[var_r31]; + sp18[var_r31] = sp18[var_r30]; + sp18[var_r30] = var_r29; + var_r29 = sp8[var_r31]; + sp8[var_r31] = sp8[var_r30]; + sp8[var_r30] = var_r29; + } + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_34[sp8[var_r31]] = var_r31; + } + omMakeGroupEx(process, 0, 4); + omGetGroupMemberListEx(process, 0); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r27 = lbl_1_bss_48[var_r31] = omAddObjEx(process, 0x28, 5, 6, 0, fn_1_48D4); + var_r27->work[0] = var_r31; + } + lbl_1_bss_44 = omAddObjEx(process, 0x1E, 2, 0, -1, fn_1_A528); + lbl_1_bss_44->work[0] = 0; +} + +void fn_1_48B0(void) +{ + CharModelKill(-1); +} + +void fn_1_48D4(omObjData *object) +{ + s32 sp8; + + M421DllPlayerWork *work; + s32 var_r29; + HsfanimStruct01 *var_r28; + u32 var_r27; + s32 var_r26; + s32 var_r25; + u32 var_r24; + + float sp1C[4] = { 0.25f, 0.5f, 0.75f, 1.0f }; + float spC[2][2] = { { 100.0f, 143.0f }, { 100.0f, 100.0f } }; + Vec sp2C[4] = { 0.0f, 1500.0f, 300.0f, -450.0f, 0.0f, -50.0f, 0.0f, 0.0f, -350.0f, 450.0f, 0.0f, -50.0f }; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M421DllPlayerWork), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M421DllPlayerWork)); + object->stat |= 0x100; + var_r24 = object->work[0]; + var_r26 = GWPlayerCfg[var_r24].character; + work->unk_00 = var_r26; + sp8 = work->unk_04 = 0; + work->unk_0C = lbl_1_bss_34[object->work[0]]; + var_r27 = 0; + if (work->unk_0C != 0) { + var_r27++; + } + fn_1_3F28(object->work[0], work->unk_0C, work->unk_00); + work->unk_68 = sp1C[GWPlayerCfg[var_r24].diff & 3]; + work->unk_2C = GWPlayerCfg[object->work[0]].iscom; + object->model[0] = CharModelCreate(var_r26, 4); + Hu3DModelLayerSet(object->model[0], 1); + for (var_r29 = 0; var_r29 < 6; var_r29++) { + object->motion[var_r29] = CharModelMotionCreate(var_r26, lbl_1_data_1A4[var_r29]); + } + CharModelMotionDataClose(var_r26); + if (var_r27 == 1) { + object->model[1] = Hu3DModelCreateFile(lbl_1_data_164[var_r26]); + Hu3DModelLayerSet(object->model[1], 1); + fn_1_982C(object, 0); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + } + object->model[2] = Hu3DModelCreateFile(lbl_1_data_104[var_r26][var_r27]); + Hu3DModelLayerSet(object->model[2], 1); + Hu3DModelShadowSet(object->model[2]); + if (var_r27 != 0) { + object->model[3] = Hu3DModelCreateFile(lbl_1_data_104[var_r26][2]); + Hu3DModelLayerSet(object->model[3], 1); + Hu3DModelShadowSet(object->model[3]); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); + work->unk_C8 = espEntry(0x120006, 1, 0); + espDispOff(work->unk_C8); + espAttrSet(work->unk_C8, HUSPR_ATTR_LINEAR); + } + var_r25 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M421, 0x27)), 0x80); + object->model[4] = var_r25; + Hu3DModelLayerSet(var_r25, 1); + Hu3DParticleHookSet(var_r25, fn_1_9C38); + for (var_r28 = ((ParticleData *)Hu3DData[var_r25].unk_120)->unk_48, var_r29 = 0; var_r29 < 0x80; var_r29++, var_r28++) { + var_r28->unk2C = 0.0f; + var_r28->unk40.a = 0; + var_r28->unk00 = 0; + } + if (work->unk_0C == 0) { + work->unk_148 = HuMemDirectMallocNum(HEAP_SYSTEM, 441 * sizeof(float), MEMORY_DEFAULT_NUM); + memset(work->unk_148, 0, 441 * sizeof(float)); + } + object->trans.x = work->unk_CC.x = sp2C[work->unk_0C].x; + object->trans.y = work->unk_CC.y = sp2C[work->unk_0C].y; + object->trans.z = work->unk_CC.z = sp2C[work->unk_0C].z; + work->unk_20 = 1; + work->unk_94 = 1.0f; + work->unk_84 = spC[var_r27][0]; + work->unk_88 = spC[var_r27][1]; + work->unk_8C = 110.0f; + work->unk_90 = 1.0f; + work->unk_98 = work->unk_CC.y + (2.0f * work->unk_88); + work->unk_9C = work->unk_CC.y; + work->unk_A0 = 0.0f; + work->unk_A4 = 0.0f; + work->unk_78 = -1; + work->unk_58 = work->unk_5C = 0.0f; + work->unk_60 = 0.0f; + work->unk_64 = 0.02f; + work->unk_80 = 50.0f; + work->unk_A8 = 0.0f; + MTXIdentity(work->unk_118); + work->unk_08 = -1; + work->unk_6C = 0; + work->unk_3C = 1; + work->unk_44 = 0; + if (var_r27 == 0) { + Hu3DModelShadowSet(object->model[0]); + object->func = fn_1_4F00; + Hu3DModelReflectTypeSet(object->model[2], 4); + work->unk_90 = lbl_1_data_184[work->unk_00]; + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + return; + } + object->func = fn_1_5060; +} + +void fn_1_4F00(omObjData *object) +{ + M421DllPlayerWork *work = object->data; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0.0f; + work->unk_1C = 0.0f; + switch (work->unk_44) { + case 0: + if (work->unk_48 > 108.0f) { + HuAudFXPlay(0x601); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); + work->unk_10 = 0x100; + work->unk_44++; + } + break; + case 1: + if (work->unk_24 == 0) { + work->unk_10 = 0x100; + work->unk_44++; + } + break; + } + VECAdd(&work->unk_CC, &work->unk_D8, &work->unk_CC); + fn_1_676C(object); + fn_1_66B4(object); + fn_1_7670(object); + if (fn_1_3E34() == 2) { + work->unk_44 = 0; + object->func = fn_1_53C8; + } +} + +void fn_1_5060(omObjData *object) +{ + M421DllPlayerWork *work = object->data; + { + Vec sp8[4] = { + { 0.0f, 0.0f, 0.0f }, + { 80.0f, 190.0f, 0.0f }, + { 290.0f, 120.0f, 0.0f }, + { 500.0f, 190.0f, 0.0f }, + }; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0.0f; + work->unk_1C = 0.0f; + switch (work->unk_44) { + case 0: + if ((work->unk_48 > 30.0f) && ((work->unk_48 & 0xF) == 0) && (frandmod(0x3E8) < 0x12C)) { + work->unk_10 = 0x100; + work->unk_44++; + } + else if (work->unk_48 > 120.0f) { + work->unk_44++; + } + break; + case 1: + if (work->unk_48 > 120.0f) { + work->unk_18 = atan2d(-work->unk_CC.x, 300.0f - work->unk_CC.z); + work->unk_1C = 0.01f; + if (work->unk_48 < 156.0f) { + espPosSet(work->unk_C8, sp8[work->unk_0C].x, sp8[work->unk_0C].y); + espScaleSet(work->unk_C8, 0.6000000238418579, 0.6000000238418579); + espDispOn(work->unk_C8); + } + else { + espDispOff(work->unk_C8); + } + } + if (work->unk_48 >= 180.0f) { + work->unk_10 = 0x100; + work->unk_C0 = 1; + work->unk_44++; + } + break; + } + } + VECAdd(&work->unk_CC, &work->unk_D8, &work->unk_CC); + fn_1_6D48(object); + fn_1_66B4(object); + fn_1_7670(object); + if (fn_1_3E34() == 2) { + work->unk_44 = 0; + object->func = fn_1_578C; + } +} + +void fn_1_53C8(omObjData *object) +{ + float var_f31; + float var_f30; + + M421DllPlayerWork *work = object->data; + s32 var_r29 = 0; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0.0f; + work->unk_1C = 0.0f; + if (fn_1_3E4C() == 2) { + if (work->unk_2C != 0) { + fn_1_80C0(object); + } + else { + work->unk_14 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx]; + work->unk_10 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx]; + var_f31 = HuPadStkX[GWPlayerCfg[object->work[0]].pad_idx]; + var_f30 = -HuPadStkY[GWPlayerCfg[object->work[0]].pad_idx]; + work->unk_18 = atan2d(var_f31, var_f30); + work->unk_1C = 0.013888889f * sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (work->unk_1C > 1.0f) { + work->unk_1C = 1.0f; + } + } + } + if ((s32)work->unk_44 != 0) { + (void)var_r29; + } + else { + var_r29 = 1; + } + VECAdd(&work->unk_CC, &work->unk_D8, &work->unk_CC); + fn_1_893C(object); + fn_1_66B4(object); + fn_1_676C(object); + fn_1_7670(object); + if ((fn_1_3E4C() == 3) && (var_r29 != 0) && (fn_1_3FF8() != 0)) { + work->unk_44 = 0; + object->func = fn_1_6184; + } +} + +void fn_1_578C(omObjData *object) +{ + float var_f31; + float var_f30; + + M421DllPlayerWork *work = object->data; + s32 var_r29 = 0; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0.0f; + work->unk_1C = 0.0f; + if (fn_1_3E4C() == 2) { + if (work->unk_2C != 0) { + fn_1_80C0(object); + } + else { + work->unk_14 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx]; + work->unk_10 = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx]; + var_f31 = HuPadStkX[GWPlayerCfg[object->work[0]].pad_idx]; + var_f30 = -HuPadStkY[GWPlayerCfg[object->work[0]].pad_idx]; + work->unk_18 = atan2d(var_f31, var_f30); + work->unk_1C = 0.013888889f * sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (work->unk_1C > 1.0f) { + work->unk_1C = 1.0f; + } + } + } + if ((s32)work->unk_44 != 0) { + (void)var_r29; + } + else if (work->unk_24 == 0) { + var_r29 = 1; + } + VECAdd(&work->unk_CC, &work->unk_D8, &work->unk_CC); + fn_1_893C(object); + fn_1_6D48(object); + fn_1_66B4(object); + fn_1_7670(object); + if (work->unk_38 != 0) { + if (fn_1_3E7C(work->unk_0C) != 0) { + object->func = fn_1_5B9C; + } + else { + work->unk_38 = 0; + } + } + if ((work->unk_38 == 0) && (fn_1_3E4C() == 3) && (var_r29 != 0) && (fn_1_3FF8() != 0)) { + work->unk_44 = 0; + object->func = fn_1_6184; + } +} + +void fn_1_5B9C(omObjData *object) +{ + Mtx sp34; + Vec sp28; + Vec sp1C; + s32 spC; + float sp8; + float var_f29; + + M421DllPlayerWork *work; + M421DllCameraStruct *var_r29; + + work = object->data; + spC = 0; + { + Vec sp10 = { 0.0f, 0.0f, 0.0f }; + switch (work->unk_44) { + case 7: + break; + case 0: + fn_1_B39C(); + work->unk_20 = 0; + work->unk_58 = work->unk_5C = 0.0f; + MTXIdentity(work->unk_118); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelPosSetV(object->model[3], &work->unk_F0); + Hu3DMotionTimeSet(object->model[3], 0.0f); + Hu3DMotionSpeedSet(object->model[3], 3.0f); + HuAudFXEmiterPlay(0x5FC, &work->unk_F0); + work->unk_78 = HuAudCharVoicePlayPos(work->unk_00, 0x123, &work->unk_CC); + omVibrate(object->work[0], 0xC, 4, 2); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + fn_1_982C(object, 0); + fn_1_9DD0(object, &work->unk_F0); + var_r29 = fn_1_3C14(1); + mtxRot(sp34, var_r29->unk_28.x, var_r29->unk_28.y, 0.0f); + sp10.z = var_r29->unk_34 - 350.0f; + MTXMultVec(sp34, &sp10, &sp1C); + VECAdd(&var_r29->unk_1C, &sp1C, &sp28); + fn_1_9BFC(sp28.y - work->unk_CC.y, 0.9f, work->unk_108); + VECSubtract(&sp28, &work->unk_CC, &sp1C); + work->unk_D8.y = 0.016666668f * work->unk_108[2]; + work->unk_D8.x = 0.01851852f * sp1C.x; + work->unk_D8.z = 0.01851852f * sp1C.z; + work->unk_44 = 1; + work->unk_48 = 0; + break; + case 1: + work->unk_D8.y += 0.016666668f * (0.016666668f * work->unk_108[3]); + var_f29 = sqrtf((work->unk_D8.x * work->unk_D8.x) + (work->unk_D8.z * work->unk_D8.z)); + var_f29 = atan2d(var_f29, work->unk_D8.y); + var_f29 = var_f29; + sp1C.x = work->unk_D8.z; + sp1C.y = 0.0f; + sp1C.z = -work->unk_D8.x; + VECNormalize(&sp1C, &sp1C); + MTXRotAxisRad(work->unk_118, &sp1C, 0.017453292f * var_f29); + sp1C.x = sp1C.z = 0.0f; + sp1C.y = 1.0f; + MTXRotAxisRad(sp34, &sp1C, 0.017453292f * (22.5f * work->unk_48)); + MTXConcat(work->unk_118, sp34, work->unk_118); + HuAudFXEmiterUpDate(work->unk_78, &work->unk_CC); + if (work->unk_48 >= 72.0f) { + MTXIdentity(work->unk_118); + work->unk_D8.x = work->unk_D8.y = work->unk_D8.z = 0.0f; + work->unk_44 = 2; + work->unk_48 = 0; + fn_1_3F68(object->work[0]); + fn_1_3F98(object->work[0]); + fn_1_3FC8(object->work[0]); + } + break; + case 2: + work->unk_D8.y += -0.27222225f; + if (work->unk_48 > 120.0f) { + work->unk_44 = 7; + work->unk_48 = 0; + work->unk_D8.x = work->unk_D8.y = work->unk_D8.z = 0.0f; + } + break; + } + } + VECAdd(&work->unk_CC, &work->unk_D8, &work->unk_CC); + fn_1_66B4(object); + fn_1_7670(object); +} + +void fn_1_6184(omObjData *object) +{ + M421DllPlayerWork *work = object->data; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0.0f; + work->unk_1C = 0.0f; + switch (work->unk_44) { + case 0: + if (work->unk_0C == 0) { + work->unk_20 = 0; + work->unk_58 = work->unk_5C = 0.0f; + MTXIdentity(work->unk_118); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + fn_1_982C(object, 0); + work->unk_CC = work->unk_E4; + } + else { + work->unk_20 = 0; + work->unk_58 = work->unk_5C = 0.0f; + MTXIdentity(work->unk_118); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + fn_1_982C(object, 0); + work->unk_CC = work->unk_E4; + } + fn_1_9DD0(object, &work->unk_F0); + HuAudFXEmiterPlay(0x600, &work->unk_F0); + work->unk_D8.x = work->unk_D8.y = work->unk_D8.z = 0.0f; + work->unk_44 = 3; + break; + case 3: + Hu3DModelShadowSet(object->model[0]); + work->unk_D8.y += -0.27222225f; + if (work->unk_CC.y <= 0.0f) { + work->unk_CC.y = 0.0f; + work->unk_D8.y = 0.0f; + work->unk_44 = 4; + } + break; + case 4: + work->unk_48 = 0; + fn_1_3F68(object->work[0]); + break; + } + VECAdd(&work->unk_CC, &work->unk_D8, &work->unk_CC); + work->unk_E4 = work->unk_CC; + fn_1_956C(object); + fn_1_66B4(object); + fn_1_7670(object); + if (fn_1_3E4C() == 5) { + object->func = fn_1_6400; + } +} + +void fn_1_6400(omObjData *object) +{ + Vec sp8; + float var_f31; + M421DllPlayerWork *work = object->data; + + VECAdd(&work->unk_CC, &work->unk_D8, &work->unk_CC); + work->unk_E4 = work->unk_CC; + fn_1_956C(object); + fn_1_66B4(object); + fn_1_7670(object); + switch (work->unk_44) { + case 4: + if (fn_1_3EF8(object->work[0]) >= 0) { + VECSubtract(&lbl_1_data_234[work->unk_0C], &work->unk_CC, &sp8); + } + else { + VECSubtract(&lbl_1_data_264[work->unk_0C], &work->unk_CC, &sp8); + } + sp8.y = 0.0f; + var_f31 = VECMag(&sp8); + if (var_f31 < 10.0f) { + var_f31 = 0.0f; + } + else { + if (VECMag(&sp8) >= 100.0f) { + var_f31 = 100.0f; + } + var_f31 = 0.2f + (0.008f * var_f31); + } + work->unk_18 = atan2d(sp8.x, sp8.z); + work->unk_1C = var_f31; + fn_1_7478(object); + if ((work->unk_1C == 0.0f) || (work->unk_48 > 0x12C)) { + work->unk_5C = 0.0f; + work->unk_60 = 0.15f; + work->unk_64 = 0.0f; + work->unk_D8.x = work->unk_D8.y = work->unk_D8.z = 0.0f; + fn_1_3F98(object->work[0]); + } + if (fn_1_3E64() == 1) { + work->unk_44 = 5; + } + break; + case 5: + if (fn_1_3E64() == 1) { + if (fn_1_3EF8(object->work[0]) >= 0) { + fn_1_982C(object, 4); + } + else { + fn_1_982C(object, 5); + } + work->unk_44 = 6; + return; + } + break; + case 6: + if (fn_1_99B8(object) != 0) { + fn_1_3FC8(object->work[0]); + } + break; + } +} + +void fn_1_66B4(omObjData *object) +{ + M421DllPlayerWork *work = object->data; + work->unk_50++; + work->unk_48++; + object->trans.x = work->unk_CC.x; + object->trans.y = work->unk_CC.y; + object->trans.z = work->unk_CC.z; + work->unk_60 += work->unk_64; + if (work->unk_60 > 0.45f) { + work->unk_60 = 0.45f; + } + work->unk_58 = fn_1_4478(work->unk_58, work->unk_5C, work->unk_60); + object->rot.y = work->unk_58; +} + +void fn_1_676C(omObjData *object) +{ + Mtx sp44; + Mtx sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + + M421DllPlayerWork *work = object->data; + if (work->unk_20 != 0) { + if (work->unk_1C > 0.0f) { + work->unk_5C = work->unk_18; + work->unk_60 = 0.15f; + work->unk_64 = 0.0f; + } + if (work->unk_1C < 0.05f) { + fn_1_982C(object, 0); + CharModelMotionSpeedSet(work->unk_00, 1.0f); + } + else { + var_f30 = 0.5f; + if (work->unk_08 == 2) { + var_f30 = 0.45f; + } + if (work->unk_1C > var_f30) { + fn_1_982C(object, 2); + var_f29 = work->unk_1C; + } + else { + fn_1_982C(object, 1); + var_f29 = work->unk_1C / var_f30; + } + CharModelMotionSpeedSet(work->unk_00, var_f29); + } + sp8.x = 0.01666666753590107 * (1.6666667461395264 * (2.0 * (work->unk_1C * sind(work->unk_18)))); + sp8.y = 0.0f; + sp8.z = 0.01666666753590107 * (1.6666667461395264 * (2.0 * (work->unk_1C * cosd(work->unk_18)))); + VECAdd(&sp8, &work->unk_D8, &work->unk_D8); + if (work->unk_24 == 0) { + if ((work->unk_10 & 0x100) != 0) { + work->unk_24 = 1; + fn_1_9BFC(400.0f - (2.0f * work->unk_88), 0.25f, work->unk_108); + work->unk_D8.y = 0.016666668f * work->unk_108[2]; + if (fn_1_3E34() == 2) { + HuAudFXEmiterPlay(0x5FE, &work->unk_F0); + } + } + } + else { + work->unk_D8.y += 0.016666668f * (0.016666668f * work->unk_108[3]); + if ((work->unk_D8.y < 0.0f) && (work->unk_CC.y <= 0.0f)) { + work->unk_D8.y = 0.0f; + work->unk_24 = 0; + if (fn_1_3E34() != 2) { + HuAudFXEmiterPlay(0x5FD, &work->unk_F0); + omVibrate(object->work[0], 0xC, 4, 2); + } + else { + HuAudFXEmiterPlay(0x5FF, &work->unk_F0); + } + } + } + MTXIdentity(sp44); + MTXIdentity(sp14); + work->unk_A8 = 1.0f - work->unk_1C; + sp8 = work->unk_D8; + sp8.y = 0.0f; + var_f31 = VECMag(&sp8); + if (var_f31 > 0.0f) { + VECNormalize(&sp8, &sp8); + var_f28 = sp8.z; + sp8.z = -sp8.x; + sp8.x = var_f28; + var_f31 *= 360.0f / (3.14159f * (2.0f * work->unk_88)); + MTXRotAxisRad(sp44, &sp8, 0.017453292f * var_f31); + } + sp8.x = sind((90.0f + work->unk_18)); + sp8.y = 0.0f; + sp8.z = cosd((90.0f + work->unk_18)); + if (work->unk_1C > 0.0f) { + var_f31 = 1.6666667f * work->unk_1C * (360.0f / (3.14159f * (2.0f * work->unk_88))); + if (work->unk_24 != 0) { + var_f31 *= 2.0f; + } + MTXRotAxisRad(sp14, &sp8, 0.017453292f * var_f31); + } + MTXConcat(sp44, sp14, sp44); + MTXConcat(sp44, work->unk_118, work->unk_118); + fn_1_7AA0(object); + } +} + +void fn_1_6D48(omObjData *object) +{ + M421DllPlayerWork *work = object->data; + if (work->unk_20 != 0) { + if (work->unk_D8.y > 0.0f) { + work->unk_9C = work->unk_CC.y - (1.7999998f * work->unk_D8.y); + if (work->unk_9C < 0.0f) { + work->unk_9C = 0.0f; + } + work->unk_98 = (2.0f * (work->unk_CC.y + work->unk_88)) - work->unk_9C; + work->unk_A0 = 0.5f * work->unk_D8.y; + work->unk_A4 = -0.2f * work->unk_A0; + } + else if (work->unk_D8.y < 0.0f) { + work->unk_98 = work->unk_CC.y + (2.0f * work->unk_88); + work->unk_9C = work->unk_CC.y; + work->unk_A0 = 0.8f * work->unk_D8.y; + work->unk_A4 = work->unk_A0 * (-2.0f / work->unk_B8); + } + else if (work->unk_24 == 0) { + work->unk_9C = work->unk_CC.y; + if ((work->unk_B8 != 0) || (work->unk_BC != 0)) { + work->unk_98 += work->unk_A0; + work->unk_A0 += work->unk_A4; + } + else { + work->unk_A0 = work->unk_A4 = 0.0f; + work->unk_98 = work->unk_CC.y + (2.0f * work->unk_88); + } + if (work->unk_BC != 0) { + work->unk_AC = work->unk_AC + work->unk_B0; + work->unk_98 = work->unk_CC.y + (2.0f * work->unk_88); + work->unk_98 = work->unk_98 + ((work->unk_BC / 18.0f) * (work->unk_B4 * sind(work->unk_AC))); + } + } + work->unk_F0 = work->unk_CC; + work->unk_F0.y = 0.5f * (work->unk_98 + work->unk_9C); + work->unk_94 = (work->unk_F0.y - work->unk_9C) / work->unk_88; + if ((work->unk_1C > 0.0f) && (work->unk_24 == 0)) { + work->unk_5C = work->unk_18; + work->unk_60 = 0.15f; + work->unk_64 = 0.0f; + } + if ((work->unk_10 & 0x100) != 0) { + work->unk_C4 = 0xC; + } + if (work->unk_C4 != 0) { + work->unk_C4--; + } + if (work->unk_24 == 0) { + if ((work->unk_28 == 0) && (work->unk_C0 < 3) && ((work->unk_C0 != 0) || (work->unk_BC == 0)) && (work->unk_C4 != 0)) { + work->unk_28 = 1; + } + if (work->unk_B8 != 0) { + work->unk_B8--; + if (work->unk_B8 == 0) { + work->unk_A0 *= lbl_1_data_2C4[work->unk_C0 - 1]; + work->unk_A4 = work->unk_A0 * (-2.0f / (work->unk_BC + 1)); + } + } + else { + if (work->unk_BC != 0) { + work->unk_BC--; + } + if ((work->unk_C0 >= 3) || (work->unk_28 == 0)) { + work->unk_C0 = 0; + } + if (work->unk_28 != 0) { + work->unk_28 = 0; + work->unk_24 = 1; + work->unk_D8.x = lbl_1_data_2B8[work->unk_C0] * (work->unk_1C * sind(work->unk_18)); + work->unk_D8.z = lbl_1_data_2B8[work->unk_C0] * (work->unk_1C * cosd(work->unk_18)); + if (work->unk_C0 < 2) { + HuAudFXEmiterPlay(0x5F9, &work->unk_F0); + } + else { + HuAudFXEmiterPlay(0x5FA, &work->unk_F0); + } + fn_1_9BFC(lbl_1_data_294[work->unk_C0].x - (2.0f * work->unk_88), 0.5f * lbl_1_data_294[work->unk_C0].y, work->unk_108); + work->unk_D8.y = 0.016666668f * work->unk_108[2]; + work->unk_B8 = 9; + work->unk_BC = lbl_1_data_2AC[work->unk_C0]; + work->unk_C0++; + } + } + } + else { + work->unk_AC = 0.0f; + work->unk_B0 = lbl_1_data_2D0[work->unk_C0 - 1]; + work->unk_B4 = lbl_1_data_2DC[work->unk_C0 - 1]; + work->unk_D8.y += 0.016666668f * (0.016666668f * work->unk_108[3]); + if ((work->unk_D8.y < 0.0f) && (work->unk_CC.y <= 0.0f)) { + work->unk_D8.x = work->unk_D8.y = work->unk_D8.z = 0.0f; + work->unk_24 = 0; + HuAudFXEmiterPlay(0x5FB, &work->unk_F0); + } + } + } +} + +void fn_1_7478(omObjData *object) +{ + float var_f31; + float var_f30; + + M421DllPlayerWork *work = object->data; + if (work->unk_1C > 0.0f) { + work->unk_5C = work->unk_18; + } + if ((work->unk_1C > 0.05f) && (work->unk_34 == 0)) { + work->unk_D8.x = 0.01666666753590107 * (550.0 * (work->unk_1C * sind(work->unk_18))); + work->unk_D8.z = 0.01666666753590107 * (550.0 * (work->unk_1C * cosd(work->unk_18))); + work->unk_60 = 0.2f; + work->unk_64 = 0.0f; + var_f31 = 0.5f; + if (work->unk_08 == 2) { + var_f31 = 0.45f; + } + if (work->unk_1C > var_f31) { + fn_1_982C(object, 2); + var_f30 = work->unk_1C; + } + else { + fn_1_982C(object, 1); + var_f30 = work->unk_1C / var_f31; + } + CharModelMotionSpeedSet(work->unk_00, var_f30); + return; + } + work->unk_D8.x = work->unk_D8.y = work->unk_D8.z = 0.0f; + fn_1_982C(object, 0); +} + +void fn_1_7670(omObjData *object) +{ + float var_f29; + + M421DllPlayerWork *work = object->data; + work->unk_E4 = work->unk_CC; + if (work->unk_20 != 0) { + if (work->unk_0C == 0) { + work->unk_F0 = work->unk_CC; + work->unk_F0.y += work->unk_88 * work->unk_94; + work->unk_E4.y += work->unk_94 * (work->unk_88 - work->unk_84); + Hu3DModelPosSetV(object->model[0], &work->unk_E4); + Hu3DModelRotSet(object->model[0], 0.0f, work->unk_58, 0.0f); + Hu3DModelScaleSet(object->model[0], work->unk_90, work->unk_90, work->unk_90); + Hu3DModelPosSetV(object->model[2], &work->unk_F0); + MTXCopy(work->unk_118, Hu3DData[object->model[2]].unk_F0); + Hu3DModelScaleSet(object->model[2], 1.0f, work->unk_94, 1.0f); + return; + } + work->unk_E4.y += (2.0f * work->unk_88 * work->unk_94) - work->unk_8C; + Hu3DModelPosSetV(object->model[0], &work->unk_E4); + Hu3DModelRotSet(object->model[0], 0.0f, work->unk_58, 0.0f); + Hu3DModelPosSetV(object->model[2], &work->unk_F0); + Hu3DModelRotSet(object->model[2], 0.0f, work->unk_58, 0.0f); + var_f29 = sqrtf(1.0f / work->unk_94); + Hu3DModelScaleSet(object->model[2], var_f29, work->unk_94, var_f29); + Hu3DModelPosSet(object->model[1], work->unk_F0.x, 15.000001f + (work->unk_F0.y + (work->unk_88 * work->unk_94)), work->unk_F0.z); + Hu3DModelRotSet(object->model[1], 0.0f, work->unk_58, 0.0f); + return; + } + work->unk_90 += 0.1f * (1.0f - work->unk_90); + Hu3DModelPosSetV(object->model[0], &work->unk_E4); + Hu3DModelRotSet(object->model[0], 0.0f, work->unk_58, 0.0f); + Hu3DModelScaleSet(object->model[0], work->unk_90, work->unk_90, work->unk_90); + MTXCopy(work->unk_118, Hu3DData[object->model[0]].unk_F0); +} + +void fn_1_7AA0(omObjData *object) +{ + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + + s32 var_r30; + s32 var_r29; + s32 var_r28; + + M421DllPlayerWork *work = object->data; + sp38 = work->unk_CC; + sp38.y = 0.0f; + VECScale(&work->unk_D8, &sp14, 7.5f); + sp2C = sp38; + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + VECAdd(&sp2C, &sp14, &sp2C); + fn_1_9474(object, &sp2C, &sp2C); + } + sp2C.y = 0.0f; + VECSubtract(&sp38, &sp2C, &sp8); + sp8.y = 0.0f; + var_f28 = VECMag((Vec *)&sp8.y); + var_f29 = 0.0025f * var_f28; + if (var_f29 > 1.0f) { + var_f29 = 1.0f; + } + if (var_f28 > 0.0f) { + VECNormalize(&sp8, &sp8); + } + sp20.y = 0.0f; + sp20.z = -750.0f; + var_r29 = 0; + for (var_r30 = 0; var_r30 < 0x15; var_r30++) { + sp20.x = -750.0f; + for (var_r28 = 0; var_r28 < 0x15; var_r28++, var_r29++) { + if (VECMag(&sp20) >= 700.0f) { + work->unk_148[var_r29] = 10.0f; + } + else { + VECSubtract(&sp2C, &sp20, &sp14); + var_f31 = 1.0f - (0.001f * VECMag(&sp14)); + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + work->unk_148[var_r29] = 3.0f * var_f31; + VECSubtract(&sp38, &sp20, &sp14); + var_f31 = 1.0f - (0.001f * VECMag(&sp14)); + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + work->unk_148[var_r29] += 3.0f * var_f31; + VECSubtract(&sp20, &sp38, &sp14); + var_f31 = VECMag(&sp14); + var_f30 = 1.0f - (0.001f * var_f31); + if (var_f30 < 0.0f) { + var_f30 = 0.0f; + } + if (var_f31 > 0.0f) { + VECNormalize(&sp14, &sp14); + } + var_f31 = VECDotProduct(&sp14, &sp8); + if (var_f31 > 0.0f) { + var_f31 = 4.0f * (var_f29 * (var_f30 * (var_f31 * var_f31))); + work->unk_148[var_r29] += var_f31; + } + } + sp20.x += 75.0f; + } + sp20.z += 75.0f; + } +} + +void fn_1_7EB8(Vec *var_r26, float sp8, Vec *var_r27) +{ + Vec sp24; + Vec sp18; + Vec spC; + float var_f31; + float var_f30; + + s32 var_r31; + M421DllPlayerWork *work; + s32 var_r29; + s32 var_r28; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + work = lbl_1_bss_48[var_r31]->data; + if ((work->unk_0C == 0) && work->unk_148) { + break; + } + } + sp24 = *var_r26; + sp24.y = 0.0f; + *var_r27 = sp24; + var_f30 = 100.0f; + sp18.y = 0.0f; + sp18.z = -750.0f; + var_r28 = 0; + for (var_r31 = 0; var_r31 < 0x15; var_r31++) { + sp18.x = -750.0f; + for (var_r29 = 0; var_r29 < 0x15; var_r29++, var_r28++) { + VECSubtract(&sp18, &sp24, &spC); + var_f31 = VECMag(&spC); + if (var_f31 <= sp8) { + var_f31 = 1.0f + (0.5f - (0.0005f * var_f31)); + var_f31 *= work->unk_148[var_r28]; + if (var_f31 < var_f30) { + var_f30 = var_f31; + *var_r27 = sp18; + } + } + sp18.x += 75.0f; + } + sp18.z += 75.0f; + } +} + +void fn_1_80C0(omObjData *var_r28) +{ + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + + M421DllPlayerWork *var_r30; + s32 var_r29; + + M421DllPlayerWork *var_r31 = var_r28->data; + if (var_r31->unk_0C != 0) { + if (var_r31->unk_24 == 0) { + switch (var_r31->unk_6C) { + case 0: + if (var_r31->unk_C0 == 3) { + var_r31->unk_6C = 3; + return; + } + var_r31->unk_6C = 2; + var_r31->unk_70 = 60.0f * (0.3f + (0.00040000002f * frandmod(0x3E8))); + if ((frandmod(0x410) < (1000.0f * (0.5f + (0.5f * var_r31->unk_68)))) || (var_r31->unk_3C != 0)) { + var_r31->unk_3C = 0; + var_r31->unk_6C = 1; + return; + } + break; + case 1: + var_f29 = lbl_1_data_2E8[var_r31->unk_C0]; + fn_1_7EB8(&var_r31->unk_CC, 1000.0f, &sp38); + VECSubtract(&sp38, &var_r31->unk_CC, &sp2C); + sp2C.y = 0.0f; + var_f31 = VECMag(&sp2C); + if (var_f31 < var_f29) { + var_r31->unk_1C = VECMag(&sp2C) / var_f29; + } + else { + var_r31->unk_1C = 1.0f; + } + var_r31->unk_18 = atan2d(sp2C.x, sp2C.z); + var_r31->unk_10 = 0x100; + return; + case 2: + if (var_r31->unk_70 != 0) { + var_r31->unk_70--; + return; + } + var_r31->unk_6C = 0; + return; + case 3: + if (var_r31->unk_C0 != 3) { + var_r31->unk_6C = 2; + var_r31->unk_70 = 60.0f * (0.0003f * frandmod(0x3E8)); + return; + } + break; + } + } + else { + var_r31->unk_6C = 0; + } + } + else { + var_f30 = 10000.0f; + if (var_r31->unk_74 == 0) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r28->work[0] != lbl_1_bss_48[var_r29]->work[0]) { + var_r30 = lbl_1_bss_48[var_r29]->data; + if (var_r30->unk_38 == 0) { + if (var_r30->unk_24 != 0) { + VECScale(&var_r30->unk_D8, &sp20, 60.0f); + VECAdd(&var_r30->unk_CC, &sp20, &sp20); + } + else { + sp20 = var_r30->unk_CC; + } + sp20.y = 0.0f; + sp20.x += 100.0f * (0.5f * ((((2.0f * var_r31->unk_68) / 1000.0f) * frandmod(0x3E8)) - var_r31->unk_68)); + sp20.z += 100.0f * (0.5f * ((((2.0f * var_r31->unk_68) / 1000.0f) * frandmod(0x3E8)) - var_r31->unk_68)); + var_f31 = VECMag(&sp20); + if (var_f31 > (700.0f - (100.0f * (2.3f * var_r31->unk_68)))) { + var_f31 = (700.0f - (100.0f * (2.3f * var_r31->unk_68))) / var_f31; + VECScale(&sp20, &sp20, var_f31); + } + VECSubtract(&sp20, &var_r31->unk_CC, &sp14); + sp14.y = 0.0f; + var_f31 = VECMag(&sp14); + if (var_f30 > var_f31) { + var_r31->unk_FC = sp20; + var_f30 = var_f31; + } + } + } + } + var_r31->unk_74 = 60.0f * ((1.5f - var_r31->unk_68) + (0.0015f * frandmod(0x3E8))); + } + VECSubtract(&var_r31->unk_FC, &var_r31->unk_CC, &sp14); + sp8 = var_r31->unk_D8; + if (VECMag(&sp14)) { + VECNormalize(&sp14, &sp14); + } + if (VECMag(&sp8)) { + VECNormalize(&sp8, &sp8); + } + var_f31 = (0.5f + (0.5f * var_r31->unk_68)) * (1.0f - VECDotProduct(&sp14, &sp8)); + VECScale(&var_r31->unk_D8, &sp14, 60.0f * (2.0f * var_f31)); + VECAdd(&var_r31->unk_CC, &sp14, &sp14); + VECSubtract(&var_r31->unk_FC, &sp14, &sp20); + var_f30 = VECMag(&sp20); + var_r31->unk_18 = fn_1_4478(var_r31->unk_58, atan2d(sp20.x, sp20.z), 0.5f); + var_r31->unk_1C = 0.95f + (0.05f * var_r31->unk_68); + if ((var_f30 < 300.0f) && ((var_r31->unk_50 & 7) == 0) && (frandmod(0x514) < (1000.0f * var_r31->unk_68))) { + var_r31->unk_10 = 0x100; + } + var_r31->unk_74--; + if (var_f30 < 130.0f) { + var_r31->unk_74 = 0; + } + } +} + +void fn_1_893C(omObjData *object) +{ + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + + M421DllPlayerWork *var_r31; + M421DllPlayerWork *var_r30; + s32 var_r29; + s32 var_r28; + M421DllPlayerWork *var_r27; + M421DllPlayerWork *var_r26; + s32 var_r24; + s32 var_r23; + + if (lbl_1_bss_30 >= object->work[0]) { + for (var_r24 = 0; var_r24 < 4; var_r24++) { + for (var_r28 = 0; var_r28 < 4; var_r28++) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r31 = lbl_1_bss_48[var_r29]->data; + if ((var_r31->unk_38 == 0) && (var_r31->unk_20 != 0)) { + var_r31->unk_F0 = var_r31->unk_CC; + var_r31->unk_F0.y += var_r31->unk_88; + } + } + var_r31 = lbl_1_bss_48[var_r28]->data; + if ((var_r31->unk_38 == 0) && (var_r31->unk_20 != 0)) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r28 != var_r29) { + var_r30 = lbl_1_bss_48[var_r29]->data; + if ((var_r30->unk_38 == 0) && (var_r30->unk_20 != 0)) { + VECSubtract(&var_r31->unk_F0, &var_r30->unk_F0, &sp38); + var_f31 = VECMag(&sp38); + if (var_f31 < (var_r31->unk_88 + var_r30->unk_88)) { + if (var_f31 > 0.0f) { + var_f31 = 0.5f * ((var_r31->unk_88 + var_r30->unk_88) - var_f31); + } + else { + var_f31 = 0.5f * (var_r31->unk_88 + var_r30->unk_88); + sp38.x = frandmod(0x3E8) - 0.0005f; + sp38.y = 0.0f; + sp38.z = frandmod(0x3E8) - 0.0005f; + } + VECNormalize(&sp38, &sp38); + VECScale(&sp38, &sp38, var_f31); + VECAdd(&var_r31->unk_F0, &sp38, &var_r31->unk_F0); + VECSubtract(&var_r30->unk_F0, &sp38, &var_r30->unk_F0); + if ((var_r31->unk_0C == 0) && (var_r30->unk_0C != 0)) { + var_r30->unk_38 = 1; + } + else if ((var_r31->unk_0C != 0) && (var_r30->unk_0C == 0)) { + var_r31->unk_38 = 1; + } + } + } + } + } + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r31 = lbl_1_bss_48[var_r29]->data; + if ((var_r31->unk_38 == 0) && (var_r31->unk_20 != 0)) { + var_r31->unk_CC = var_r31->unk_F0; + var_r31->unk_CC.y -= var_r31->unk_88; + } + } + var_r31 = lbl_1_bss_48[var_r28]->data; + if (var_r31->unk_24 != 0) { + if (var_r31->unk_CC.y < 0.0f) { + var_r31->unk_CC.y = 0.0f; + } + } + else { + var_r31->unk_CC.y = 0.0f; + } + sp38 = var_r31->unk_CC; + sp38.y = 0.0f; + var_f31 = VECMag(&sp38); + if (var_f31 > (750.0f - var_r31->unk_88)) { + var_f30 = (750.0f - var_r31->unk_88) / var_f31; + VECScale(&sp38, &sp38, var_f30); + var_r31->unk_CC.x = sp38.x; + var_r31->unk_CC.z = sp38.z; + } + } + } + } + for (var_r28 = 0; var_r28 < 4; var_r28++) { + var_r31 = lbl_1_bss_48[var_r28]->data; + if ((var_r31->unk_38 == 0) && (var_r31->unk_20 != 0) && (var_r31->unk_0C == 0)) { + sp38 = var_r31->unk_CC; + sp38.y = 0.0f; + var_f31 = VECMag(&sp38); + if (var_f31 >= (750.0f - var_r31->unk_88)) { + var_f31 = VECDotProduct(&var_r31->unk_D8, &sp38); + if (var_f31 > 0.0f) { + VECNormalize(&sp38, &sp38); + var_f31 = VECDotProduct(&var_r31->unk_D8, &sp38); + var_r31->unk_D8.x = 0.92f * (var_r31->unk_D8.x - (1.1f * (var_f31 * sp38.x))); + var_r31->unk_D8.z = 0.92f * (var_r31->unk_D8.z - (1.1f * (var_f31 * sp38.z))); + } + } + } + } + for (var_r28 = 0; var_r28 < 3; var_r28++) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r31 = lbl_1_bss_48[var_r29]->data; + if ((var_r31->unk_38 == 0) && (var_r31->unk_20 != 0)) { + var_r31->unk_F0 = var_r31->unk_CC; + var_r31->unk_F0.y += var_r31->unk_88; + } + } + var_r31 = lbl_1_bss_48[var_r28]->data; + if ((var_r31->unk_38 == 0) && (var_r31->unk_20 != 0) && (var_r31->unk_0C != 0)) { + for (var_r29 = var_r28; var_r29 < 4; var_r29++) { + if (var_r28 != var_r29) { + var_r30 = lbl_1_bss_48[var_r29]->data; + if ((var_r30->unk_38 == 0) && (var_r30->unk_20 != 0) && (var_r30->unk_0C != 0)) { + var_r23 = 0; + var_f31 = VECMag(&var_r31->unk_D8); + var_f30 = VECMag(&var_r30->unk_D8); + if ((!(var_f31 <= 0.0f) && (var_r31->unk_24 != 0)) || (!(var_f30 <= 0.0f) && (var_r30->unk_24 != 0))) { + if (var_r31->unk_24 == 0) { + var_r27 = var_r30; + var_r26 = var_r31; + } + else if (var_r30->unk_24 == 0) { + var_r27 = var_r31; + var_r26 = var_r30; + } + else { + var_r23 = 1; + var_r27 = var_r31; + var_r26 = var_r30; + } + VECAdd(&var_r27->unk_F0, &var_r27->unk_D8, &sp14); + VECAdd(&var_r26->unk_F0, &var_r26->unk_D8, &sp8); + VECSubtract(&sp14, &sp8, &sp38); + var_f31 = VECMag(&sp38); + if ((var_f31 < (var_r27->unk_88 + var_r26->unk_88)) && (var_f31 > 0.0f)) { + VECNormalize(&sp38, &sp38); + if (var_r23 != 0) { + VECNormalize(&var_r27->unk_D8, &sp2C); + VECNormalize(&var_r26->unk_D8, &sp20); + var_f31 = -VECDotProduct(&sp2C, &sp38); + var_f30 = VECDotProduct(&sp20, &sp38); + } + else { + VECNormalize(&var_r27->unk_D8, &sp2C); + sp20.x = sp20.y = sp20.z = 0.0f; + var_f31 = -VECDotProduct(&sp2C, &sp38); + var_f30 = 0.0f; + } + if ((var_f31 > 0.01f) || (var_f31 > 0.01f)) { + var_f31 = VECDotProduct(&var_r27->unk_D8, &sp38); + var_f30 = VECDotProduct(&var_r26->unk_D8, &sp38); + sp14.x = var_r27->unk_D8.x - (var_f31 * sp38.x); + sp14.y = var_r27->unk_D8.y - (var_f31 * sp38.y); + sp14.z = var_r27->unk_D8.z - (var_f31 * sp38.z); + sp8.x = var_r26->unk_D8.x - (var_f30 * sp38.x); + sp8.y = var_r26->unk_D8.y - (var_f30 * sp38.y); + sp8.z = var_r26->unk_D8.z - (var_f30 * sp38.z); + if (var_r23 != 0) { + sp14.x += 0.5f * (var_f30 * sp38.x); + sp14.y += var_f30 * sp38.y; + sp14.z += 0.5f * (var_f30 * sp38.z); + sp8.x += 0.5f * (var_f31 * sp38.x); + sp8.y += var_f31 * sp38.y; + sp8.z += 0.5f * (var_f31 * sp38.z); + } + else { + sp14.x -= 0.5f * (var_f31 * sp38.x); + sp14.y -= var_f31 * sp38.y; + sp14.z -= 0.5f * (var_f31 * sp38.z); + } + var_r27->unk_D8 = sp14; + var_r26->unk_D8 = sp8; + } + } + } + } + } + } + } + } + } + else { + var_r31 = object->data; + if (var_r31->unk_38 == 0) { + if (var_r31->unk_CC.y < 0.0f) { + var_r31->unk_CC.y = 0.0f; + } + sp38 = var_r31->unk_CC; + sp38.y = 0.0f; + var_f31 = VECMag(&sp38); + if (var_f31 > (750.0f - var_r31->unk_88)) { + var_f30 = (750.0f - var_r31->unk_88) / var_f31; + VECScale(&sp38, &sp38, var_f30); + var_r31->unk_CC.x = sp38.x; + var_r31->unk_CC.z = sp38.z; + } + } + } + lbl_1_bss_30 = object->work[0]; +} + +void fn_1_9474(omObjData *object, Vec *arg1, Vec *arg2) +{ + Vec sp8; + float var_f31; + float var_f30; + + M421DllPlayerWork *work = object->data; + + sp8 = *arg1; + if (work->unk_38 == 0) { + var_f31 = VECMag(&sp8); + if (var_f31 > (750.0f - work->unk_88)) { + var_f30 = (750.0f - work->unk_88) / var_f31; + VECScale(&sp8, &sp8, var_f30); + } + } + *arg2 = sp8; +} + +void fn_1_956C(omObjData *object) +{ + Vec sp8; + float var_f31; + float var_f30; + + M421DllPlayerWork *var_r31; + M421DllPlayerWork *var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + for (var_r27 = 0; var_r27 < 2; var_r27++) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r31 = lbl_1_bss_48[var_r29]->data; + if (var_r31->unk_38 == 0) { + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if (var_r29 != var_r28) { + var_r30 = lbl_1_bss_48[var_r28]->data; + if (var_r30->unk_38 == 0) { + VECSubtract(&var_r31->unk_CC, &var_r30->unk_CC, &sp8); + sp8.y = 0.0f; + var_f31 = VECMag(&sp8); + if (var_f31 < (var_r31->unk_80 + var_r30->unk_80)) { + if (var_f31 > 0.0f) { + var_f31 = 0.5f * ((var_r31->unk_80 + var_r30->unk_80) - var_f31); + } + else { + var_f31 = 0.5f * (var_r31->unk_80 + var_r30->unk_80); + sp8.x = frandmod(0x3E8) - 0x1F4; + sp8.z = frandmod(0x3E8) - 0x1F4; + } + VECNormalize(&sp8, &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&var_r31->unk_CC, &sp8, &var_r31->unk_CC); + VECSubtract(&var_r30->unk_CC, &sp8, &var_r30->unk_CC); + } + } + } + } + if (var_r31->unk_CC.y < 0.0f) { + var_r31->unk_CC.y = 0.0f; + } + sp8 = var_r31->unk_CC; + sp8.y = 0.0f; + var_f31 = VECMag(&sp8); + if (var_f31 > (750.0f - var_r31->unk_80)) { + var_f30 = (750.0f - var_r31->unk_80) / var_f31; + VECScale(&sp8, &sp8, var_f30); + var_r31->unk_CC.x = sp8.x; + var_r31->unk_CC.z = sp8.z; + } + } + } + } +} + +void fn_1_982C(omObjData *object, u32 arg1) +{ + + M421DllPlayerWork *work = object->data; + if ((work->unk_08 != arg1) && (arg1 < 6)) { + float var_f31 = 60.0f * lbl_1_data_1BC[arg1].unk_04; + if (work->unk_08 < 0) { + var_f31 = 0.0f; + } + work->unk_08 = arg1; + CharModelMotionShiftSet( + work->unk_00, object->motion[lbl_1_data_1BC[arg1].unk_00], 60.0f * lbl_1_data_1BC[arg1].unk_08, var_f31, lbl_1_data_1BC[arg1].unk_10); + if (lbl_1_data_1BC[arg1].unk_0C >= 0.0f) { + Hu3DMotionShiftStartEndSet(object->model[0], 60.0f * lbl_1_data_1BC[arg1].unk_08, 60.0f * lbl_1_data_1BC[arg1].unk_0C); + } + } +} + +s32 fn_1_99B8(omObjData *object) +{ + + M421DllPlayerWork *work = object->data; + s32 var_r30 = 0; + if ((CharModelMotionEndCheck(work->unk_00) != 0) && (CharModelMotionShiftIDGet(work->unk_00) < 0)) { + var_r30 = 1; + } + return var_r30; +} + +s32 fn_1_9A2C(omObjData *object, u32 arg1) +{ + s32 var_r27; + + var_r27 = 0; + if (fn_1_99B8(object)) { + fn_1_982C(object, arg1); + var_r27 = 1; + } + return var_r27; +} + +void fn_1_9BFC(float arg8, float arg9, float *arg0) +{ + arg0[0] = arg9; + arg0[1] = arg8; + arg0[3] = (2.0f * -arg8) / (arg9 * arg9); + arg0[2] = -arg0[3] * arg9; +} + +void fn_1_9C38(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + s32 var_r29; + + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00_s16 != 0) { + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + var_r31->unk2C += 2.0f; + var_r31->unk40.a *= 0.98f; + if (var_r31->unk00_s16 < 24.0f) { + var_r31->unk40.a = 0.9f * var_r31->unk40.a; + } + if (--var_r31->unk00_s16 == 0) { + var_r31->unk00 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); +} + +void fn_1_9DD0(omObjData *object, Vec *arg1) +{ + Vec sp18; + GXColor sp14; + u8 sp10[4]; + u8 spC[4]; + float var_f31; + float var_f30; + + HsfanimStruct01 *var_r31; + ParticleData *var_r30; + s32 var_r29; + M421DllPlayerWork *work; + u32 var_r26; + + work = object->data; + var_r30 = Hu3DData[object->model[4]].unk_120; + GWCharColorGet(work->unk_00, &sp14); + sp10[0] = 100.0f + (0.47058824f * sp14.r); + sp10[1] = 100.0f + (0.47058824f * sp14.g); + sp10[2] = 100.0f + (0.47058824f * sp14.b); + spC[0] = (220.0f + (0.13725491f * sp14.r)) - sp10[0]; + spC[1] = (220.0f + (0.13725491f * sp14.g)) - sp10[1]; + spC[2] = (220.0f + (0.13725491f * sp14.b)) - sp10[2]; + var_r26 = 0x64; + for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00_s16 != 0) { + continue; + } + var_r31->unk00_s16 = 60.0f * (0.6f + (0.0005f * frandmod(0x3E8))); + var_f31 = frandmod(0x168); + var_f30 = frandmod(0x168); + sp18.y = sind(var_f31); + var_f31 = cosd(var_f31); + sp18.x = var_f31 * sind(var_f30); + sp18.z = var_f31 * cosd(var_f30); + var_f31 = 120.00001f; + VECScale(&sp18, &sp18, var_f31); + VECAdd(&sp18, arg1, &var_r31->unk34); + var_r31->unk08.x = 0.016666668f * (0.5f * sp18.x); + var_r31->unk08.y = 5.0f + (0.016666668f * (0.5f * sp18.y)); + var_r31->unk08.z = 0.016666668f * (0.5f * sp18.z); + var_r31->unk30 = 0.0031415902f * frandmod(0x3E8); + var_f31 = 0.001f * frandmod(0x3E8); + var_r31->unk2C = 80.0f + (220.0f * var_f31); + var_r31->unk40.a = 100.0f + (100.0f * (1.0f - var_f31)); + var_r31->unk40.r = sp10[0] + (spC[0] * var_f31); + var_r31->unk40.g = sp10[1] + (spC[1] * var_f31); + var_r31->unk40.b = sp10[2] + (spC[2] * var_f31); + if (--var_r26 < 1) { + break; + } + } +} + +void fn_1_A528(omObjData *object) +{ + M421DllPlayerDLWork *work; + s32 i; + + object->stat |= 0x100; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M421DllPlayerDLWork), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M421DllPlayerDLWork)); + work->unk_2F0 = GXGetTexBufferSize(0x280, 0x1E0, 5, 0, 0); + work->unk_2F4 = HuMemDirectMallocNum(HEAP_SYSTEM, work->unk_2F0, MEMORY_DEFAULT_NUM); + DCFlushRange(work->unk_2F4, work->unk_2F0); + for (i = 0; i < 4; i++) { + work->unk_40[i].r = work->unk_40[i].g = work->unk_40[i].b = 0xFF; + } + work->unk_40[0].a = 0x40; + work->unk_40[1].a = 0; + work->unk_40[2].a = 0xFF; + work->unk_40[3].a = 0; + for (i = 0; i < 4; i++) { + work->unk_50[i][0].x = work->unk_50[i][0].y = work->unk_50[i][0].z = 0.0f; + } + for (i = 1; i < 0xE; i++) { + work->unk_50[0][i].x = 100.0 * (1.7999999523162842 * sind((30.0f * i))); + work->unk_50[0][i].y = 100.0 * (1.7999999523162842 * cosd((30.0f * i))); + work->unk_50[0][i].z = 0.0f; + work->unk_50[1][i].x = 100.0 * (2.0 * cosd((30.0f * i))); + work->unk_50[1][i].y = 0.0f; + work->unk_50[1][i].z = 100.0 * (2.0 * sind((30.0f * i))); + work->unk_50[2][i].x = 100.0 * sind((30.0f * i)); + work->unk_50[2][i].y = 100.0 * (1.2000000476837158 * cosd((30.0f * i))); + work->unk_50[2][i].z = 0.0f; + work->unk_50[3][i].x = 100.0 * sind((30.0f * i)); + work->unk_50[3][i].y = 0.0f; + work->unk_50[3][i].z = 100.0 * cosd((30.0f * i)); + } + DCStoreRangeNoSync(work->unk_40, sizeof(work->unk_40)); + DCStoreRangeNoSync(work->unk_50, sizeof(work->unk_50)); + PPCSync(); + object->model[0] = Hu3DHookFuncCreate(fn_1_AB6C); + Hu3DModelLayerSet(object->model[0], 4); + object->model[1] = Hu3DHookFuncCreate(fn_1_ABDC); + Hu3DModelLayerSet(object->model[1], 6); + object->func = fn_1_AB68; +} + +void fn_1_AB68(omObjData *object) { } + +void fn_1_AB6C(ModelData *model, Mtx matrix) +{ + M421DllPlayerDLWork *work = lbl_1_bss_44->data; + GXPixModeSync(); + GXSetTexCopySrc(0, 0, 0x280, 0x1E0); + GXSetTexCopyDst(0x280, 0x1E0, GX_TF_RGB5A3, GX_FALSE); + GXCopyTex(work->unk_2F4, GX_FALSE); + GXPixModeSync(); +} + +void fn_1_ABDC(ModelData *model, Mtx matrix) +{ + Mtx sp118; + Mtx spE8; + Mtx spB8; + Mtx sp88; + Mtx sp58; + Mtx sp28; + GXTexObj sp8; + + M421DllPlayerDLWork *work; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + work = lbl_1_bss_44->data; + MTXTrans(spE8, -400.0f, 400.0f, -700.0f); + MTXConcat(Hu3DCameraMtx, spE8, sp88); + GXLoadPosMtxImm(sp88, 0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXInitTexObj(&sp8, work->unk_2F4, 0x280, 0x1E0, 5, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&sp8, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXLoadTexObj(&sp8, GX_TEXMAP0); + GXSetNumTexGens(1); + C_MTXLightPerspective(spB8, 41.5f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + MTXConcat(spB8, Hu3DCameraMtx, spB8); + MTXInverse(Hu3DCameraMtx, sp58); + MTXConcat(sp58, sp88, sp118); + MTXConcat(spB8, sp118, spE8); + GXLoadTexMtxImm(spE8, 0x1E, GX_MTX3x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x1E, 0, 0x7D); + MTXInverse(Hu3DCameraMtx, sp28); + sp28[0][3] = sp28[1][3] = sp28[2][3] = 0.0f; + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_RASA); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_SET); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + work->unk_00[var_r30] = ((M421DllPlayerWork *)lbl_1_bss_48[var_r30]->data)->unk_F0; + if (work->unk_30[var_r30] == 2) { + var_r27 = 2; + } + else { + var_r27 = 0; + } + var_r28 = var_r27; + MTXTrans(spE8, work->unk_00[var_r30].x, work->unk_00[var_r30].y, work->unk_00[var_r30].z); + MTXConcat(spE8, sp28, spE8); + MTXConcat(Hu3DCameraMtx, spE8, sp88); + GXLoadPosMtxImm(sp88, 0); + MTXConcat(sp58, sp88, sp118); + MTXConcat(spB8, sp118, spE8); + GXLoadTexMtxImm(spE8, 0x1E, GX_MTX3x4); + GXSetArray(GX_VA_POS, work->unk_50[var_r28], 0xC); + GXSetArray(GX_VA_CLR0, &work->unk_40[var_r28], 4); + GXBegin(GX_TRIANGLEFAN, GX_VTXFMT0, 0xE); + GXPosition1x8(0); + GXPosition1x8(0); + for (var_r29 = 1; var_r29 < 0xE; var_r29++) { + GXColor1x8(var_r29); + GXColor1x8(1); + } + MTXTrans(spE8, work->unk_00[var_r30].x, 0.0f, work->unk_00[var_r30].z); + MTXConcat(Hu3DCameraMtx, spE8, sp88); + GXLoadPosMtxImm(sp88, 0); + MTXConcat(sp58, sp88, sp118); + MTXConcat(spB8, sp118, spE8); + GXLoadTexMtxImm(spE8, 0x1E, GX_MTX3x4); + GXSetArray(GX_VA_POS, work->unk_50[var_r28 + 1], 0xC); + GXSetArray(GX_VA_CLR0, &work->unk_40[var_r28], 4); + GXBegin(GX_TRIANGLEFAN, GX_VTXFMT0, 0xE); + GXPosition1x8(0); + GXPosition1x8(0); + for (var_r29 = 1; var_r29 < 0xE; var_r29++) { + GXColor1x8(var_r29); + GXColor1x8(1); + } + } +} From f3d073553f3aa61a4501e82e799c27d9ffe335a5 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Fri, 15 Nov 2024 16:34:55 +0100 Subject: [PATCH 169/311] Initial analysis for the Japanese version --- config/GMPJ01_00/build.sha1 | 100 + config/GMPJ01_00/config.yml | 509 + config/GMPJ01_00/rels/E3setupDLL/splits.txt | 7 + config/GMPJ01_00/rels/E3setupDLL/symbols.txt | 192 + config/GMPJ01_00/rels/_minigameDll/splits.txt | 6 + .../GMPJ01_00/rels/_minigameDll/symbols.txt | 7 + config/GMPJ01_00/rels/bootDll/splits.txt | 7 + config/GMPJ01_00/rels/bootDll/symbols.txt | 67 + config/GMPJ01_00/rels/instDll/splits.txt | 7 + config/GMPJ01_00/rels/instDll/symbols.txt | 149 + config/GMPJ01_00/rels/m300Dll/splits.txt | 3 + config/GMPJ01_00/rels/m300Dll/symbols.txt | 2 + config/GMPJ01_00/rels/m302Dll/splits.txt | 3 + config/GMPJ01_00/rels/m302Dll/symbols.txt | 2 + config/GMPJ01_00/rels/m303Dll/splits.txt | 3 + config/GMPJ01_00/rels/m303Dll/symbols.txt | 2 + config/GMPJ01_00/rels/m330Dll/splits.txt | 3 + config/GMPJ01_00/rels/m330Dll/symbols.txt | 2 + config/GMPJ01_00/rels/m333Dll/splits.txt | 3 + config/GMPJ01_00/rels/m333Dll/symbols.txt | 2 + config/GMPJ01_00/rels/m401Dll/splits.txt | 7 + config/GMPJ01_00/rels/m401Dll/symbols.txt | 522 + config/GMPJ01_00/rels/m402Dll/splits.txt | 7 + config/GMPJ01_00/rels/m402Dll/symbols.txt | 204 + config/GMPJ01_00/rels/m403Dll/splits.txt | 7 + config/GMPJ01_00/rels/m403Dll/symbols.txt | 256 + config/GMPJ01_00/rels/m404Dll/splits.txt | 7 + config/GMPJ01_00/rels/m404Dll/symbols.txt | 154 + config/GMPJ01_00/rels/m405Dll/splits.txt | 7 + config/GMPJ01_00/rels/m405Dll/symbols.txt | 254 + config/GMPJ01_00/rels/m406Dll/splits.txt | 7 + config/GMPJ01_00/rels/m406Dll/symbols.txt | 434 + config/GMPJ01_00/rels/m407dll/splits.txt | 7 + config/GMPJ01_00/rels/m407dll/symbols.txt | 271 + config/GMPJ01_00/rels/m408Dll/splits.txt | 7 + config/GMPJ01_00/rels/m408Dll/symbols.txt | 549 ++ config/GMPJ01_00/rels/m409Dll/splits.txt | 7 + config/GMPJ01_00/rels/m409Dll/symbols.txt | 332 + config/GMPJ01_00/rels/m410Dll/splits.txt | 7 + config/GMPJ01_00/rels/m410Dll/symbols.txt | 317 + config/GMPJ01_00/rels/m411Dll/splits.txt | 7 + config/GMPJ01_00/rels/m411Dll/symbols.txt | 278 + config/GMPJ01_00/rels/m412Dll/splits.txt | 7 + config/GMPJ01_00/rels/m412Dll/symbols.txt | 190 + config/GMPJ01_00/rels/m413Dll/splits.txt | 7 + config/GMPJ01_00/rels/m413Dll/symbols.txt | 210 + config/GMPJ01_00/rels/m414Dll/splits.txt | 7 + config/GMPJ01_00/rels/m414Dll/symbols.txt | 183 + config/GMPJ01_00/rels/m415Dll/splits.txt | 7 + config/GMPJ01_00/rels/m415Dll/symbols.txt | 234 + config/GMPJ01_00/rels/m416Dll/splits.txt | 7 + config/GMPJ01_00/rels/m416Dll/symbols.txt | 209 + config/GMPJ01_00/rels/m417Dll/splits.txt | 7 + config/GMPJ01_00/rels/m417Dll/symbols.txt | 366 + config/GMPJ01_00/rels/m418Dll/splits.txt | 7 + config/GMPJ01_00/rels/m418Dll/symbols.txt | 303 + config/GMPJ01_00/rels/m419Dll/splits.txt | 7 + config/GMPJ01_00/rels/m419Dll/symbols.txt | 184 + config/GMPJ01_00/rels/m420dll/splits.txt | 7 + config/GMPJ01_00/rels/m420dll/symbols.txt | 249 + config/GMPJ01_00/rels/m421Dll/splits.txt | 7 + config/GMPJ01_00/rels/m421Dll/symbols.txt | 277 + config/GMPJ01_00/rels/m422Dll/splits.txt | 7 + config/GMPJ01_00/rels/m422Dll/symbols.txt | 249 + config/GMPJ01_00/rels/m423Dll/splits.txt | 7 + config/GMPJ01_00/rels/m423Dll/symbols.txt | 367 + config/GMPJ01_00/rels/m424Dll/splits.txt | 7 + config/GMPJ01_00/rels/m424Dll/symbols.txt | 315 + config/GMPJ01_00/rels/m425Dll/splits.txt | 7 + config/GMPJ01_00/rels/m425Dll/symbols.txt | 299 + config/GMPJ01_00/rels/m426Dll/splits.txt | 7 + config/GMPJ01_00/rels/m426Dll/symbols.txt | 224 + config/GMPJ01_00/rels/m427Dll/splits.txt | 7 + config/GMPJ01_00/rels/m427Dll/symbols.txt | 437 + config/GMPJ01_00/rels/m428Dll/splits.txt | 7 + config/GMPJ01_00/rels/m428Dll/symbols.txt | 409 + config/GMPJ01_00/rels/m429Dll/splits.txt | 7 + config/GMPJ01_00/rels/m429Dll/symbols.txt | 316 + config/GMPJ01_00/rels/m430Dll/splits.txt | 7 + config/GMPJ01_00/rels/m430Dll/symbols.txt | 492 + config/GMPJ01_00/rels/m431Dll/splits.txt | 7 + config/GMPJ01_00/rels/m431Dll/symbols.txt | 252 + config/GMPJ01_00/rels/m432Dll/splits.txt | 7 + config/GMPJ01_00/rels/m432Dll/symbols.txt | 359 + config/GMPJ01_00/rels/m433Dll/splits.txt | 7 + config/GMPJ01_00/rels/m433Dll/symbols.txt | 472 + config/GMPJ01_00/rels/m434Dll/splits.txt | 7 + config/GMPJ01_00/rels/m434Dll/symbols.txt | 337 + config/GMPJ01_00/rels/m435Dll/splits.txt | 7 + config/GMPJ01_00/rels/m435Dll/symbols.txt | 471 + config/GMPJ01_00/rels/m436Dll/splits.txt | 7 + config/GMPJ01_00/rels/m436Dll/symbols.txt | 352 + config/GMPJ01_00/rels/m437Dll/splits.txt | 7 + config/GMPJ01_00/rels/m437Dll/symbols.txt | 411 + config/GMPJ01_00/rels/m438Dll/splits.txt | 7 + config/GMPJ01_00/rels/m438Dll/symbols.txt | 462 + config/GMPJ01_00/rels/m439Dll/splits.txt | 7 + config/GMPJ01_00/rels/m439Dll/symbols.txt | 325 + config/GMPJ01_00/rels/m440Dll/splits.txt | 7 + config/GMPJ01_00/rels/m440Dll/symbols.txt | 288 + config/GMPJ01_00/rels/m441Dll/splits.txt | 7 + config/GMPJ01_00/rels/m441Dll/symbols.txt | 224 + config/GMPJ01_00/rels/m442Dll/splits.txt | 7 + config/GMPJ01_00/rels/m442Dll/symbols.txt | 225 + config/GMPJ01_00/rels/m443Dll/splits.txt | 7 + config/GMPJ01_00/rels/m443Dll/symbols.txt | 330 + config/GMPJ01_00/rels/m444dll/splits.txt | 7 + config/GMPJ01_00/rels/m444dll/symbols.txt | 320 + config/GMPJ01_00/rels/m445Dll/splits.txt | 7 + config/GMPJ01_00/rels/m445Dll/symbols.txt | 173 + config/GMPJ01_00/rels/m446dll/splits.txt | 7 + config/GMPJ01_00/rels/m446dll/symbols.txt | 305 + config/GMPJ01_00/rels/m447dll/splits.txt | 7 + config/GMPJ01_00/rels/m447dll/symbols.txt | 309 + config/GMPJ01_00/rels/m448Dll/splits.txt | 7 + config/GMPJ01_00/rels/m448Dll/symbols.txt | 200 + config/GMPJ01_00/rels/m449Dll/splits.txt | 7 + config/GMPJ01_00/rels/m449Dll/symbols.txt | 210 + config/GMPJ01_00/rels/m450Dll/splits.txt | 7 + config/GMPJ01_00/rels/m450Dll/symbols.txt | 558 ++ config/GMPJ01_00/rels/m451Dll/splits.txt | 7 + config/GMPJ01_00/rels/m451Dll/symbols.txt | 217 + config/GMPJ01_00/rels/m453Dll/splits.txt | 7 + config/GMPJ01_00/rels/m453Dll/symbols.txt | 279 + config/GMPJ01_00/rels/m455Dll/splits.txt | 7 + config/GMPJ01_00/rels/m455Dll/symbols.txt | 290 + config/GMPJ01_00/rels/m456Dll/splits.txt | 7 + config/GMPJ01_00/rels/m456Dll/symbols.txt | 282 + config/GMPJ01_00/rels/m457Dll/splits.txt | 7 + config/GMPJ01_00/rels/m457Dll/symbols.txt | 178 + config/GMPJ01_00/rels/m458Dll/splits.txt | 7 + config/GMPJ01_00/rels/m458Dll/symbols.txt | 176 + config/GMPJ01_00/rels/m459dll/splits.txt | 7 + config/GMPJ01_00/rels/m459dll/symbols.txt | 169 + config/GMPJ01_00/rels/m460Dll/splits.txt | 7 + config/GMPJ01_00/rels/m460Dll/symbols.txt | 301 + config/GMPJ01_00/rels/m461Dll/splits.txt | 7 + config/GMPJ01_00/rels/m461Dll/symbols.txt | 224 + config/GMPJ01_00/rels/m462Dll/splits.txt | 7 + config/GMPJ01_00/rels/m462Dll/symbols.txt | 144 + config/GMPJ01_00/rels/m463Dll/splits.txt | 7 + config/GMPJ01_00/rels/m463Dll/symbols.txt | 164 + config/GMPJ01_00/rels/mentDll/splits.txt | 7 + config/GMPJ01_00/rels/mentDll/symbols.txt | 442 + config/GMPJ01_00/rels/mgmodedll/splits.txt | 7 + config/GMPJ01_00/rels/mgmodedll/symbols.txt | 583 ++ config/GMPJ01_00/rels/modeltestDll/splits.txt | 7 + .../GMPJ01_00/rels/modeltestDll/symbols.txt | 230 + config/GMPJ01_00/rels/modeseldll/splits.txt | 7 + config/GMPJ01_00/rels/modeseldll/symbols.txt | 270 + config/GMPJ01_00/rels/movieDll/splits.txt | 7 + config/GMPJ01_00/rels/movieDll/symbols.txt | 51 + config/GMPJ01_00/rels/mpexDll/splits.txt | 7 + config/GMPJ01_00/rels/mpexDll/symbols.txt | 474 + config/GMPJ01_00/rels/msetupDll/splits.txt | 3 + config/GMPJ01_00/rels/msetupDll/symbols.txt | 2 + config/GMPJ01_00/rels/mstory2Dll/splits.txt | 7 + config/GMPJ01_00/rels/mstory2Dll/symbols.txt | 709 ++ config/GMPJ01_00/rels/mstory3Dll/splits.txt | 7 + config/GMPJ01_00/rels/mstory3Dll/symbols.txt | 549 ++ config/GMPJ01_00/rels/mstory4Dll/splits.txt | 7 + config/GMPJ01_00/rels/mstory4Dll/symbols.txt | 65 + config/GMPJ01_00/rels/mstoryDll/splits.txt | 7 + config/GMPJ01_00/rels/mstoryDll/symbols.txt | 498 + config/GMPJ01_00/rels/nisDll/splits.txt | 5 + config/GMPJ01_00/rels/nisDll/symbols.txt | 6 + config/GMPJ01_00/rels/option/splits.txt | 7 + config/GMPJ01_00/rels/option/symbols.txt | 380 + config/GMPJ01_00/rels/present/splits.txt | 7 + config/GMPJ01_00/rels/present/symbols.txt | 189 + config/GMPJ01_00/rels/resultDll/splits.txt | 7 + config/GMPJ01_00/rels/resultDll/symbols.txt | 203 + config/GMPJ01_00/rels/safDll/splits.txt | 7 + config/GMPJ01_00/rels/safDll/symbols.txt | 131 + config/GMPJ01_00/rels/selmenuDll/splits.txt | 7 + config/GMPJ01_00/rels/selmenuDll/symbols.txt | 201 + config/GMPJ01_00/rels/staffDll/splits.txt | 7 + config/GMPJ01_00/rels/staffDll/symbols.txt | 54 + config/GMPJ01_00/rels/subchrselDll/splits.txt | 7 + .../GMPJ01_00/rels/subchrselDll/symbols.txt | 33 + config/GMPJ01_00/rels/w01Dll/splits.txt | 7 + config/GMPJ01_00/rels/w01Dll/symbols.txt | 469 + config/GMPJ01_00/rels/w02Dll/splits.txt | 7 + config/GMPJ01_00/rels/w02Dll/symbols.txt | 456 + config/GMPJ01_00/rels/w03Dll/splits.txt | 7 + config/GMPJ01_00/rels/w03Dll/symbols.txt | 443 + config/GMPJ01_00/rels/w04Dll/splits.txt | 7 + config/GMPJ01_00/rels/w04Dll/symbols.txt | 451 + config/GMPJ01_00/rels/w05Dll/splits.txt | 7 + config/GMPJ01_00/rels/w05Dll/symbols.txt | 356 + config/GMPJ01_00/rels/w06Dll/splits.txt | 7 + config/GMPJ01_00/rels/w06Dll/symbols.txt | 373 + config/GMPJ01_00/rels/w10Dll/splits.txt | 7 + config/GMPJ01_00/rels/w10Dll/symbols.txt | 114 + config/GMPJ01_00/rels/w20Dll/splits.txt | 7 + config/GMPJ01_00/rels/w20Dll/symbols.txt | 27 + config/GMPJ01_00/rels/w21Dll/splits.txt | 6 + config/GMPJ01_00/rels/w21Dll/symbols.txt | 18 + config/GMPJ01_00/rels/ztardll/splits.txt | 7 + config/GMPJ01_00/rels/ztardll/symbols.txt | 257 + config/GMPJ01_00/splits.txt | 14 + config/GMPJ01_00/symbols.txt | 8529 +++++++++++++++++ configure.py | 363 +- 203 files changed, 36549 insertions(+), 181 deletions(-) create mode 100644 config/GMPJ01_00/build.sha1 create mode 100644 config/GMPJ01_00/config.yml create mode 100644 config/GMPJ01_00/rels/E3setupDLL/splits.txt create mode 100644 config/GMPJ01_00/rels/E3setupDLL/symbols.txt create mode 100644 config/GMPJ01_00/rels/_minigameDll/splits.txt create mode 100644 config/GMPJ01_00/rels/_minigameDll/symbols.txt create mode 100644 config/GMPJ01_00/rels/bootDll/splits.txt create mode 100644 config/GMPJ01_00/rels/bootDll/symbols.txt create mode 100644 config/GMPJ01_00/rels/instDll/splits.txt create mode 100644 config/GMPJ01_00/rels/instDll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m300Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m300Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m302Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m302Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m303Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m303Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m330Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m330Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m333Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m333Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m401Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m401Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m402Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m402Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m403Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m403Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m404Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m404Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m405Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m405Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m406Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m406Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m407dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m407dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m408Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m408Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m409Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m409Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m410Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m410Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m411Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m411Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m412Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m412Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m413Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m413Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m414Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m414Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m415Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m415Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m416Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m416Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m417Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m417Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m418Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m418Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m419Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m419Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m420dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m420dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m421Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m421Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m422Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m422Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m423Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m423Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m424Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m424Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m425Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m425Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m426Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m426Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m427Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m427Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m428Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m428Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m429Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m429Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m430Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m430Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m431Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m431Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m432Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m432Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m433Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m433Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m434Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m434Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m435Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m435Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m436Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m436Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m437Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m437Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m438Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m438Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m439Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m439Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m440Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m440Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m441Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m441Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m442Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m442Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m443Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m443Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m444dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m444dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m445Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m445Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m446dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m446dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m447dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m447dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m448Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m448Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m449Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m449Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m450Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m450Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m451Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m451Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m453Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m453Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m455Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m455Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m456Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m456Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m457Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m457Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m458Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m458Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m459dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m459dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m460Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m460Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m461Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m461Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m462Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m462Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/m463Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/m463Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/mentDll/splits.txt create mode 100644 config/GMPJ01_00/rels/mentDll/symbols.txt create mode 100644 config/GMPJ01_00/rels/mgmodedll/splits.txt create mode 100644 config/GMPJ01_00/rels/mgmodedll/symbols.txt create mode 100644 config/GMPJ01_00/rels/modeltestDll/splits.txt create mode 100644 config/GMPJ01_00/rels/modeltestDll/symbols.txt create mode 100644 config/GMPJ01_00/rels/modeseldll/splits.txt create mode 100644 config/GMPJ01_00/rels/modeseldll/symbols.txt create mode 100644 config/GMPJ01_00/rels/movieDll/splits.txt create mode 100644 config/GMPJ01_00/rels/movieDll/symbols.txt create mode 100644 config/GMPJ01_00/rels/mpexDll/splits.txt create mode 100644 config/GMPJ01_00/rels/mpexDll/symbols.txt create mode 100644 config/GMPJ01_00/rels/msetupDll/splits.txt create mode 100644 config/GMPJ01_00/rels/msetupDll/symbols.txt create mode 100644 config/GMPJ01_00/rels/mstory2Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/mstory2Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/mstory3Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/mstory3Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/mstory4Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/mstory4Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/mstoryDll/splits.txt create mode 100644 config/GMPJ01_00/rels/mstoryDll/symbols.txt create mode 100644 config/GMPJ01_00/rels/nisDll/splits.txt create mode 100644 config/GMPJ01_00/rels/nisDll/symbols.txt create mode 100644 config/GMPJ01_00/rels/option/splits.txt create mode 100644 config/GMPJ01_00/rels/option/symbols.txt create mode 100644 config/GMPJ01_00/rels/present/splits.txt create mode 100644 config/GMPJ01_00/rels/present/symbols.txt create mode 100644 config/GMPJ01_00/rels/resultDll/splits.txt create mode 100644 config/GMPJ01_00/rels/resultDll/symbols.txt create mode 100644 config/GMPJ01_00/rels/safDll/splits.txt create mode 100644 config/GMPJ01_00/rels/safDll/symbols.txt create mode 100644 config/GMPJ01_00/rels/selmenuDll/splits.txt create mode 100644 config/GMPJ01_00/rels/selmenuDll/symbols.txt create mode 100644 config/GMPJ01_00/rels/staffDll/splits.txt create mode 100644 config/GMPJ01_00/rels/staffDll/symbols.txt create mode 100644 config/GMPJ01_00/rels/subchrselDll/splits.txt create mode 100644 config/GMPJ01_00/rels/subchrselDll/symbols.txt create mode 100644 config/GMPJ01_00/rels/w01Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/w01Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/w02Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/w02Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/w03Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/w03Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/w04Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/w04Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/w05Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/w05Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/w06Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/w06Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/w10Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/w10Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/w20Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/w20Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/w21Dll/splits.txt create mode 100644 config/GMPJ01_00/rels/w21Dll/symbols.txt create mode 100644 config/GMPJ01_00/rels/ztardll/splits.txt create mode 100644 config/GMPJ01_00/rels/ztardll/symbols.txt create mode 100644 config/GMPJ01_00/splits.txt create mode 100644 config/GMPJ01_00/symbols.txt diff --git a/config/GMPJ01_00/build.sha1 b/config/GMPJ01_00/build.sha1 new file mode 100644 index 00000000..c9f5f735 --- /dev/null +++ b/config/GMPJ01_00/build.sha1 @@ -0,0 +1,100 @@ +abe951fa239e7cb5de67e1ac091cfbc14010d6e0 build/GMPJ01_00/main.dol +164e5e0bec4e1fbf068a158b00a62bd2a4124fb1 build/GMPJ01_00/_minigameDll/_minigameDll.rel +214a6992eabf31e8a202833c8f6e4da4e553ceb5 build/GMPJ01_00/bootDll/bootDll.rel +bd08e86c8b36eaa84319a8c41030afc769058983 build/GMPJ01_00/instDll/instDll.rel +803dcd1192a06ea975d04234bc6ea29a8852a3f5 build/GMPJ01_00/m302Dll/m302Dll.rel +803dcd1192a06ea975d04234bc6ea29a8852a3f5 build/GMPJ01_00/m303Dll/m303Dll.rel +803dcd1192a06ea975d04234bc6ea29a8852a3f5 build/GMPJ01_00/m330Dll/m330Dll.rel +803dcd1192a06ea975d04234bc6ea29a8852a3f5 build/GMPJ01_00/m333Dll/m333Dll.rel +fc2f898e5da6e17e2bb4a5b1efa6344dc210ed19 build/GMPJ01_00/m402Dll/m402Dll.rel +f6346c570fb659d8098f55a8f15b54ab96393019 build/GMPJ01_00/m403Dll/m403Dll.rel +404b9558c0a1b0ac728afe9e827604e0d606a8e1 build/GMPJ01_00/m404Dll/m404Dll.rel +a5ab650f706128955ee2bc7a068813097b9c31c0 build/GMPJ01_00/m405Dll/m405Dll.rel +90ab2775e7e60d07bcb2bc4879e2c2e4ef95a721 build/GMPJ01_00/m406Dll/m406Dll.rel +efe1a502cd82f22572f1e56992be2cf7a9c27cbb build/GMPJ01_00/m407dll/m407dll.rel +2206fa17d24e900079543ac9d4c48ad405d8e55f build/GMPJ01_00/m408Dll/m408Dll.rel +7edd8e77b69db00378c14b2130b9d3692841b8d1 build/GMPJ01_00/m409Dll/m409Dll.rel +8d6dd949a706594ad6bbc5d2447072a3519b087c build/GMPJ01_00/m410Dll/m410Dll.rel +8cbdc67b341232955341a2f9193128483f3d2325 build/GMPJ01_00/m411Dll/m411Dll.rel +952cd93f9dca7282ffe4a162e773a93249e39c6e build/GMPJ01_00/m412Dll/m412Dll.rel +bb130095d6045dc761b3dcd70307c8de12946e95 build/GMPJ01_00/m413Dll/m413Dll.rel +f75c13865a8508024bb6c4ba215293e02ac4029a build/GMPJ01_00/m414Dll/m414Dll.rel +9c90fbfaa45e838dcf0d06f1d8930c4ebfb346d6 build/GMPJ01_00/m415Dll/m415Dll.rel +fb6e0bd126678c5611d4b805697804edd5a3bbb4 build/GMPJ01_00/m416Dll/m416Dll.rel +3d1a40d456dab6fc4058bee79d0b9556ec69da5b build/GMPJ01_00/m417Dll/m417Dll.rel +c545db0be0b14179586b0b7e3f29ffa68f30a4a2 build/GMPJ01_00/m418Dll/m418Dll.rel +eac3a130a36057c156b3527ff464cd29e5f89b34 build/GMPJ01_00/m419Dll/m419Dll.rel +f5f355eb7e0884478ce8d353bd7f39a3d270f22f build/GMPJ01_00/m420dll/m420dll.rel +5e199b4773791122284125afa07e094edff53ea2 build/GMPJ01_00/m421Dll/m421Dll.rel +bc3cc80aafb1d4e3f80e746f275fd5d69b251a98 build/GMPJ01_00/m422Dll/m422Dll.rel +e4220010e147160fcd683e4f75f668a2a278545d build/GMPJ01_00/m423Dll/m423Dll.rel +6007eaeb00271006355018faf4c45cdb6bea9462 build/GMPJ01_00/m424Dll/m424Dll.rel +78b12773afcf2c5d7f5f3437d0f8f46d9ee2fb6c build/GMPJ01_00/m425Dll/m425Dll.rel +646a30f82b46f522b154da1441c633a6344bcb4e build/GMPJ01_00/m426Dll/m426Dll.rel +d1775769482dcca5335b715423c7937cc90c11ff build/GMPJ01_00/m427Dll/m427Dll.rel +3a429bc7c87646735dd0221938162031e8e8eb18 build/GMPJ01_00/m428Dll/m428Dll.rel +5c73605a373af413cbdde7ab014697dbf74d73c5 build/GMPJ01_00/m429Dll/m429Dll.rel +5b7bee635458a6faa467e32387774a1c755842c2 build/GMPJ01_00/m430Dll/m430Dll.rel +d838e4d9378ce9d70cec9ba87f585340755b3978 build/GMPJ01_00/m431Dll/m431Dll.rel +84429fff6278ce44615d859220b04bee048aab32 build/GMPJ01_00/m432Dll/m432Dll.rel +f56e9cc895578b9ff8cf57f54fa7af35459bb353 build/GMPJ01_00/m433Dll/m433Dll.rel +cd3135998d2703af72e9c547cf2ecdff8dfddb12 build/GMPJ01_00/m434Dll/m434Dll.rel +bd3a81c1b4eb44503bc81d30412c9a9ebf646f09 build/GMPJ01_00/m435Dll/m435Dll.rel +43b55269820dba54ba5afb2cbdeeb889b4a3908f build/GMPJ01_00/m436Dll/m436Dll.rel +9c5711c7354f0b0e1811aae39d63ae3a1ab1d8fc build/GMPJ01_00/m437Dll/m437Dll.rel +eff0920fd6695a4886e531477fe845ebab9fa58c build/GMPJ01_00/m438Dll/m438Dll.rel +a69d462dff8ed14565de09fdf9ea25811a07e760 build/GMPJ01_00/m439Dll/m439Dll.rel +b131837b247ab12b0a0eedc24524b4b7078fe3df build/GMPJ01_00/m440Dll/m440Dll.rel +50290b2b7216b6e1c873d2140371cd01d318e96d build/GMPJ01_00/m441Dll/m441Dll.rel +86d546fc4345975773057465c0ded6f001cbf3f7 build/GMPJ01_00/m442Dll/m442Dll.rel +8625605a1198477a21f7540151822bba638ba56f build/GMPJ01_00/m443Dll/m443Dll.rel +1a9e6e528ccc38315650fe86c607a51f7bbca22e build/GMPJ01_00/m444dll/m444dll.rel +1dceaf7e6a3b550eeba10b1f88b1f77df67d77d4 build/GMPJ01_00/m445Dll/m445Dll.rel +bb9b17127b6d3e7c42f7c198c4b58d73dc6ead04 build/GMPJ01_00/m446dll/m446dll.rel +dcb78f18f4b2de862532b0557a093bf0e7ac2a3f build/GMPJ01_00/m447dll/m447dll.rel +7a9b438e699ee4c960438e60f08f6a3f10a6847f build/GMPJ01_00/m448Dll/m448Dll.rel +2511aaea175c454025b25e6f873991f643517afa build/GMPJ01_00/m449Dll/m449Dll.rel +b9bed4dffcb4447b1cf83dc7be8dfb4e04ba6908 build/GMPJ01_00/m450Dll/m450Dll.rel +30b1fcd7438cbc70bd78b0a68d58b5c4dc7dfc1f build/GMPJ01_00/m451Dll/m451Dll.rel +4726a8d2fe900e5fd3a1fe747e53d9d8bd533c4d build/GMPJ01_00/m453Dll/m453Dll.rel +3f6938ca1a430e799f82ed835bdb2852caa6f081 build/GMPJ01_00/m455Dll/m455Dll.rel +32c370c9e690903950c449ecde463aa1f67c22d2 build/GMPJ01_00/m456Dll/m456Dll.rel +8cc0fbd1a8c70cd84068054c859fbe437b100a29 build/GMPJ01_00/m457Dll/m457Dll.rel +c6b7148b5103f7c079821322e6c52750dc421b92 build/GMPJ01_00/m458Dll/m458Dll.rel +050ceeb799efbc0b789944e7ac9f8092c0916710 build/GMPJ01_00/m459dll/m459dll.rel +2d34a403542ce7ea0752244425e98ba34e2cae7a build/GMPJ01_00/m460Dll/m460Dll.rel +d95c248d3570681f5367e3b2bf3598560ae9ff1c build/GMPJ01_00/m461Dll/m461Dll.rel +0f050808bb94a113ad75d5364cb5ca660868f44a build/GMPJ01_00/m462Dll/m462Dll.rel +70616dce8be76266dcc1f364353bac97598b81eb build/GMPJ01_00/m463Dll/m463Dll.rel +8a933d827ea1455c93e7c277bfa48be844897d9f build/GMPJ01_00/mentDll/mentDll.rel +af7dc453707dbb01a82e9f867bfeff2f06a73a29 build/GMPJ01_00/mgmodedll/mgmodedll.rel +b64343c9747b118a29ceb4bcb028cb4f16fb589e build/GMPJ01_00/modeltestDll/modeltestDll.rel +e4181ec6478f305cd87d1f4d1f28758637321956 build/GMPJ01_00/modeseldll/modeseldll.rel +a521e035ae1210b6638cb781febd390d1999190b build/GMPJ01_00/movieDll/movieDll.rel +d6a49ebd47855e9bdffa17c1ab57ca548a3fb75a build/GMPJ01_00/mpexDll/mpexDll.rel +7cbf86d25a20d5571270b45ed1620c6ff7913476 build/GMPJ01_00/msetupDll/msetupDll.rel +cbb7197d16e7cec374e0b5d3bd90d0cc9d650127 build/GMPJ01_00/mstory2Dll/mstory2Dll.rel +f02191dfe80020d8e9cc17ea2da8f33e81a32e31 build/GMPJ01_00/mstory3Dll/mstory3Dll.rel +4ae421deb583f684d17a58d232861a4c52b7d694 build/GMPJ01_00/mstory4Dll/mstory4Dll.rel +403343e740c0ea0cd1c1571946921b0e137a612f build/GMPJ01_00/mstoryDll/mstoryDll.rel +95803acba3dd4fc8e98140a923f3716d45377eef build/GMPJ01_00/nisDll/nisDll.rel +d8915bb0a375a86125fb67a287d1723cfafc6f62 build/GMPJ01_00/option/option.rel +ef8fa41e2b5f0e69cd6d2d763d8cdaeca782b4c9 build/GMPJ01_00/present/present.rel +5166964e0adaa9beb257665edd8d0d1726d53f88 build/GMPJ01_00/resultDll/resultDll.rel +5cb945cfbe3c8f626326c75b26d7ea3b318ae3c9 build/GMPJ01_00/safDll/safDll.rel +86639a3aff8b7660f541a15904868131d01a458f build/GMPJ01_00/selmenuDll/selmenuDll.rel +bca64fa6b8287dba977e7bc567dbbf345d36fed8 build/GMPJ01_00/staffDll/staffDll.rel +2ea368663d63828fdfdf0085290ba9a1e160b620 build/GMPJ01_00/subchrselDll/subchrselDll.rel +75f8861387de75f5d5d74e59e69fc43f2e5e3de2 build/GMPJ01_00/w01Dll/w01Dll.rel +91cdc49e2aa44fa47551345d6ecfaa563e5c648b build/GMPJ01_00/w02Dll/w02Dll.rel +5e3a277824da41154ac2601e00c72661c86aa41b build/GMPJ01_00/w03Dll/w03Dll.rel +cd988b1377ba5039794b4cc2eae2921e5a6de167 build/GMPJ01_00/w04Dll/w04Dll.rel +2a6e644000418800e5e85fd4585c37f0193fbe76 build/GMPJ01_00/w05Dll/w05Dll.rel +d9765f5f7e9e1ea486fe6f1ab3a478dff265c72a build/GMPJ01_00/w06Dll/w06Dll.rel +f7f16f2fb45fc874a437267ca7d17139c1110495 build/GMPJ01_00/w10Dll/w10Dll.rel +dce8d65e08069e87029a0a950aa2ab6894c110b4 build/GMPJ01_00/w20Dll/w20Dll.rel +0ecb1234fdc25f76f41c12678135d0c74a5b39a2 build/GMPJ01_00/w21Dll/w21Dll.rel +f21fcb2b66e154a0ae3e875ddefbb5e9eb1d5174 build/GMPJ01_00/ztardll/ztardll.rel +83c94c0ef384f7783fecfd77fb845659883dd7d6 build/GMPJ01_00/E3setupDLL/E3setupDLL.rel +1264a80903d561b61e86d9db3e7648e0b7570bf5 build/GMPJ01_00/m300Dll/m300Dll.rel +5ae17b9ca8a5689c107350b5e0dabb658f4af019 build/GMPJ01_00/m401Dll/m401Dll.rel diff --git a/config/GMPJ01_00/config.yml b/config/GMPJ01_00/config.yml new file mode 100644 index 00000000..be895058 --- /dev/null +++ b/config/GMPJ01_00/config.yml @@ -0,0 +1,509 @@ +object_base: orig/GMPJ01_00 +object: sys/main.dol +hash: abe951fa239e7cb5de67e1ac091cfbc14010d6e0 +symbols: config/GMPJ01_00/symbols.txt +splits: config/GMPJ01_00/splits.txt +quick_analysis: false # Faster re-runs after initial analysis +mw_comment_version: 10 # GC 2.6 linker +force_active: [__register_global_object] + +detect_objects: true +detect_strings: true +fill_gaps: true +# TODO add hashes +modules: +- object: files/dll/_minigameDll.rel + + symbols: config/GMPJ01_00/rels/_minigameDll/symbols.txt + splits: config/GMPJ01_00/rels/_minigameDll/splits.txt + links: [] +- object: files/dll/bootDll.rel + + symbols: config/GMPJ01_00/rels/bootDll/symbols.txt + splits: config/GMPJ01_00/rels/bootDll/splits.txt + links: [] +- object: files/dll/instDll.rel + + symbols: config/GMPJ01_00/rels/instDll/symbols.txt + splits: config/GMPJ01_00/rels/instDll/splits.txt + links: [] +- object: files/dll/m302Dll.rel + + symbols: config/GMPJ01_00/rels/m302Dll/symbols.txt + splits: config/GMPJ01_00/rels/m302Dll/splits.txt + links: [] +- object: files/dll/m303Dll.rel + + symbols: config/GMPJ01_00/rels/m303Dll/symbols.txt + splits: config/GMPJ01_00/rels/m303Dll/splits.txt + links: [] +- object: files/dll/m330Dll.rel + + symbols: config/GMPJ01_00/rels/m330Dll/symbols.txt + splits: config/GMPJ01_00/rels/m330Dll/splits.txt + links: [] +- object: files/dll/m333Dll.rel + + symbols: config/GMPJ01_00/rels/m333Dll/symbols.txt + splits: config/GMPJ01_00/rels/m333Dll/splits.txt + links: [] +- object: files/dll/m402Dll.rel + + symbols: config/GMPJ01_00/rels/m402Dll/symbols.txt + splits: config/GMPJ01_00/rels/m402Dll/splits.txt + links: [] +- object: files/dll/m403Dll.rel + + symbols: config/GMPJ01_00/rels/m403Dll/symbols.txt + splits: config/GMPJ01_00/rels/m403Dll/splits.txt + links: [] +- object: files/dll/m404Dll.rel + + symbols: config/GMPJ01_00/rels/m404Dll/symbols.txt + splits: config/GMPJ01_00/rels/m404Dll/splits.txt + links: [] +- object: files/dll/m405Dll.rel + + symbols: config/GMPJ01_00/rels/m405Dll/symbols.txt + splits: config/GMPJ01_00/rels/m405Dll/splits.txt + links: [] +- object: files/dll/m406Dll.rel + + symbols: config/GMPJ01_00/rels/m406Dll/symbols.txt + splits: config/GMPJ01_00/rels/m406Dll/splits.txt + links: [] +- object: files/dll/m407dll.rel + + symbols: config/GMPJ01_00/rels/m407dll/symbols.txt + splits: config/GMPJ01_00/rels/m407dll/splits.txt + links: [] +- object: files/dll/m408Dll.rel + + symbols: config/GMPJ01_00/rels/m408Dll/symbols.txt + splits: config/GMPJ01_00/rels/m408Dll/splits.txt + links: [] +- object: files/dll/m409Dll.rel + + symbols: config/GMPJ01_00/rels/m409Dll/symbols.txt + splits: config/GMPJ01_00/rels/m409Dll/splits.txt + links: [] +- object: files/dll/m410Dll.rel + + symbols: config/GMPJ01_00/rels/m410Dll/symbols.txt + splits: config/GMPJ01_00/rels/m410Dll/splits.txt + links: [] +- object: files/dll/m411Dll.rel + + symbols: config/GMPJ01_00/rels/m411Dll/symbols.txt + splits: config/GMPJ01_00/rels/m411Dll/splits.txt + links: [] +- object: files/dll/m412Dll.rel + + symbols: config/GMPJ01_00/rels/m412Dll/symbols.txt + splits: config/GMPJ01_00/rels/m412Dll/splits.txt + links: [] +- object: files/dll/m413Dll.rel + + symbols: config/GMPJ01_00/rels/m413Dll/symbols.txt + splits: config/GMPJ01_00/rels/m413Dll/splits.txt + links: [] +- object: files/dll/m414Dll.rel + + symbols: config/GMPJ01_00/rels/m414Dll/symbols.txt + splits: config/GMPJ01_00/rels/m414Dll/splits.txt + links: [] +- object: files/dll/m415Dll.rel + + symbols: config/GMPJ01_00/rels/m415Dll/symbols.txt + splits: config/GMPJ01_00/rels/m415Dll/splits.txt + links: [] +- object: files/dll/m416Dll.rel + + symbols: config/GMPJ01_00/rels/m416Dll/symbols.txt + splits: config/GMPJ01_00/rels/m416Dll/splits.txt + links: [] +- object: files/dll/m417Dll.rel + + symbols: config/GMPJ01_00/rels/m417Dll/symbols.txt + splits: config/GMPJ01_00/rels/m417Dll/splits.txt + links: [] +- object: files/dll/m418Dll.rel + + symbols: config/GMPJ01_00/rels/m418Dll/symbols.txt + splits: config/GMPJ01_00/rels/m418Dll/splits.txt + links: [] +- object: files/dll/m419Dll.rel + + symbols: config/GMPJ01_00/rels/m419Dll/symbols.txt + splits: config/GMPJ01_00/rels/m419Dll/splits.txt + links: [] +- object: files/dll/m420dll.rel + + symbols: config/GMPJ01_00/rels/m420dll/symbols.txt + splits: config/GMPJ01_00/rels/m420dll/splits.txt + links: [] +- object: files/dll/m421Dll.rel + + symbols: config/GMPJ01_00/rels/m421Dll/symbols.txt + splits: config/GMPJ01_00/rels/m421Dll/splits.txt + links: [] +- object: files/dll/m422Dll.rel + + symbols: config/GMPJ01_00/rels/m422Dll/symbols.txt + splits: config/GMPJ01_00/rels/m422Dll/splits.txt + links: [] +- object: files/dll/m423Dll.rel + + symbols: config/GMPJ01_00/rels/m423Dll/symbols.txt + splits: config/GMPJ01_00/rels/m423Dll/splits.txt + links: [] +- object: files/dll/m424Dll.rel + + symbols: config/GMPJ01_00/rels/m424Dll/symbols.txt + splits: config/GMPJ01_00/rels/m424Dll/splits.txt + links: [] +- object: files/dll/m425Dll.rel + + symbols: config/GMPJ01_00/rels/m425Dll/symbols.txt + splits: config/GMPJ01_00/rels/m425Dll/splits.txt + links: [] +- object: files/dll/m426Dll.rel + + symbols: config/GMPJ01_00/rels/m426Dll/symbols.txt + splits: config/GMPJ01_00/rels/m426Dll/splits.txt + links: [] +- object: files/dll/m427Dll.rel + + symbols: config/GMPJ01_00/rels/m427Dll/symbols.txt + splits: config/GMPJ01_00/rels/m427Dll/splits.txt + links: [] +- object: files/dll/m428Dll.rel + + symbols: config/GMPJ01_00/rels/m428Dll/symbols.txt + splits: config/GMPJ01_00/rels/m428Dll/splits.txt + links: [] +- object: files/dll/m429Dll.rel + + symbols: config/GMPJ01_00/rels/m429Dll/symbols.txt + splits: config/GMPJ01_00/rels/m429Dll/splits.txt + links: [] +- object: files/dll/m430Dll.rel + + symbols: config/GMPJ01_00/rels/m430Dll/symbols.txt + splits: config/GMPJ01_00/rels/m430Dll/splits.txt + links: [] +- object: files/dll/m431Dll.rel + + symbols: config/GMPJ01_00/rels/m431Dll/symbols.txt + splits: config/GMPJ01_00/rels/m431Dll/splits.txt + links: [] +- object: files/dll/m432Dll.rel + + symbols: config/GMPJ01_00/rels/m432Dll/symbols.txt + splits: config/GMPJ01_00/rels/m432Dll/splits.txt + links: [] +- object: files/dll/m433Dll.rel + + symbols: config/GMPJ01_00/rels/m433Dll/symbols.txt + splits: config/GMPJ01_00/rels/m433Dll/splits.txt + links: [] +- object: files/dll/m434Dll.rel + + symbols: config/GMPJ01_00/rels/m434Dll/symbols.txt + splits: config/GMPJ01_00/rels/m434Dll/splits.txt + links: [] +- object: files/dll/m435Dll.rel + + symbols: config/GMPJ01_00/rels/m435Dll/symbols.txt + splits: config/GMPJ01_00/rels/m435Dll/splits.txt + links: [] +- object: files/dll/m436Dll.rel + + symbols: config/GMPJ01_00/rels/m436Dll/symbols.txt + splits: config/GMPJ01_00/rels/m436Dll/splits.txt + links: [] +- object: files/dll/m437Dll.rel + + symbols: config/GMPJ01_00/rels/m437Dll/symbols.txt + splits: config/GMPJ01_00/rels/m437Dll/splits.txt + links: [] +- object: files/dll/m438Dll.rel + + symbols: config/GMPJ01_00/rels/m438Dll/symbols.txt + splits: config/GMPJ01_00/rels/m438Dll/splits.txt + links: [] +- object: files/dll/m439Dll.rel + + symbols: config/GMPJ01_00/rels/m439Dll/symbols.txt + splits: config/GMPJ01_00/rels/m439Dll/splits.txt + links: [] +- object: files/dll/m440Dll.rel + + symbols: config/GMPJ01_00/rels/m440Dll/symbols.txt + splits: config/GMPJ01_00/rels/m440Dll/splits.txt + links: [] +- object: files/dll/m441Dll.rel + + symbols: config/GMPJ01_00/rels/m441Dll/symbols.txt + splits: config/GMPJ01_00/rels/m441Dll/splits.txt + links: [] +- object: files/dll/m442Dll.rel + + symbols: config/GMPJ01_00/rels/m442Dll/symbols.txt + splits: config/GMPJ01_00/rels/m442Dll/splits.txt + links: [] +- object: files/dll/m443Dll.rel + + symbols: config/GMPJ01_00/rels/m443Dll/symbols.txt + splits: config/GMPJ01_00/rels/m443Dll/splits.txt + links: [] +- object: files/dll/m444dll.rel + + symbols: config/GMPJ01_00/rels/m444dll/symbols.txt + splits: config/GMPJ01_00/rels/m444dll/splits.txt + links: [] +- object: files/dll/m445Dll.rel + + symbols: config/GMPJ01_00/rels/m445Dll/symbols.txt + splits: config/GMPJ01_00/rels/m445Dll/splits.txt + links: [] +- object: files/dll/m446dll.rel + + symbols: config/GMPJ01_00/rels/m446dll/symbols.txt + splits: config/GMPJ01_00/rels/m446dll/splits.txt + links: [] +- object: files/dll/m447dll.rel + + symbols: config/GMPJ01_00/rels/m447dll/symbols.txt + splits: config/GMPJ01_00/rels/m447dll/splits.txt + links: [] +- object: files/dll/m448Dll.rel + + symbols: config/GMPJ01_00/rels/m448Dll/symbols.txt + splits: config/GMPJ01_00/rels/m448Dll/splits.txt + links: [] +- object: files/dll/m449Dll.rel + + symbols: config/GMPJ01_00/rels/m449Dll/symbols.txt + splits: config/GMPJ01_00/rels/m449Dll/splits.txt + links: [] +- object: files/dll/m450Dll.rel + + symbols: config/GMPJ01_00/rels/m450Dll/symbols.txt + splits: config/GMPJ01_00/rels/m450Dll/splits.txt + links: [] +- object: files/dll/m451Dll.rel + + symbols: config/GMPJ01_00/rels/m451Dll/symbols.txt + splits: config/GMPJ01_00/rels/m451Dll/splits.txt + links: [] +- object: files/dll/m453Dll.rel + + symbols: config/GMPJ01_00/rels/m453Dll/symbols.txt + splits: config/GMPJ01_00/rels/m453Dll/splits.txt + links: [] +- object: files/dll/m455Dll.rel + + symbols: config/GMPJ01_00/rels/m455Dll/symbols.txt + splits: config/GMPJ01_00/rels/m455Dll/splits.txt + links: [] +- object: files/dll/m456Dll.rel + + symbols: config/GMPJ01_00/rels/m456Dll/symbols.txt + splits: config/GMPJ01_00/rels/m456Dll/splits.txt + links: [] +- object: files/dll/m457Dll.rel + + symbols: config/GMPJ01_00/rels/m457Dll/symbols.txt + splits: config/GMPJ01_00/rels/m457Dll/splits.txt + links: [] +- object: files/dll/m458Dll.rel + + symbols: config/GMPJ01_00/rels/m458Dll/symbols.txt + splits: config/GMPJ01_00/rels/m458Dll/splits.txt + links: [] +- object: files/dll/m459dll.rel + + symbols: config/GMPJ01_00/rels/m459dll/symbols.txt + splits: config/GMPJ01_00/rels/m459dll/splits.txt + links: [] +- object: files/dll/m460Dll.rel + + symbols: config/GMPJ01_00/rels/m460Dll/symbols.txt + splits: config/GMPJ01_00/rels/m460Dll/splits.txt + links: [] +- object: files/dll/m461Dll.rel + + symbols: config/GMPJ01_00/rels/m461Dll/symbols.txt + splits: config/GMPJ01_00/rels/m461Dll/splits.txt + links: [] +- object: files/dll/m462Dll.rel + + symbols: config/GMPJ01_00/rels/m462Dll/symbols.txt + splits: config/GMPJ01_00/rels/m462Dll/splits.txt + links: [] +- object: files/dll/m463Dll.rel + + symbols: config/GMPJ01_00/rels/m463Dll/symbols.txt + splits: config/GMPJ01_00/rels/m463Dll/splits.txt + links: [] +- object: files/dll/mentDll.rel + + symbols: config/GMPJ01_00/rels/mentDll/symbols.txt + splits: config/GMPJ01_00/rels/mentDll/splits.txt + links: [] +- object: files/dll/movieDll.rel + + symbols: config/GMPJ01_00/rels/movieDll/symbols.txt + splits: config/GMPJ01_00/rels/movieDll/splits.txt + links: [] +- object: files/dll/mgmodedll.rel + + symbols: config/GMPJ01_00/rels/mgmodedll/symbols.txt + splits: config/GMPJ01_00/rels/mgmodedll/splits.txt + links: [] +- object: files/dll/modeltestDll.rel + + symbols: config/GMPJ01_00/rels/modeltestDll/symbols.txt + splits: config/GMPJ01_00/rels/modeltestDll/splits.txt + links: [] +- object: files/dll/modeseldll.rel + + symbols: config/GMPJ01_00/rels/modeseldll/symbols.txt + splits: config/GMPJ01_00/rels/modeseldll/splits.txt + links: [] +- object: files/dll/mpexDll.rel + + symbols: config/GMPJ01_00/rels/mpexDll/symbols.txt + splits: config/GMPJ01_00/rels/mpexDll/splits.txt + links: [] +- object: files/dll/msetupDll.rel + + symbols: config/GMPJ01_00/rels/msetupDll/symbols.txt + splits: config/GMPJ01_00/rels/msetupDll/splits.txt + links: [] +- object: files/dll/mstory2Dll.rel + + symbols: config/GMPJ01_00/rels/mstory2Dll/symbols.txt + splits: config/GMPJ01_00/rels/mstory2Dll/splits.txt + links: [] +- object: files/dll/mstory3Dll.rel + + symbols: config/GMPJ01_00/rels/mstory3Dll/symbols.txt + splits: config/GMPJ01_00/rels/mstory3Dll/splits.txt + links: [] +- object: files/dll/mstory4Dll.rel + + symbols: config/GMPJ01_00/rels/mstory4Dll/symbols.txt + splits: config/GMPJ01_00/rels/mstory4Dll/splits.txt + links: [] +- object: files/dll/mstoryDll.rel + + symbols: config/GMPJ01_00/rels/mstoryDll/symbols.txt + splits: config/GMPJ01_00/rels/mstoryDll/splits.txt + links: [] +- object: files/dll/nisDll.rel + + symbols: config/GMPJ01_00/rels/nisDll/symbols.txt + splits: config/GMPJ01_00/rels/nisDll/splits.txt + links: [] +- object: files/dll/option.rel + + symbols: config/GMPJ01_00/rels/option/symbols.txt + splits: config/GMPJ01_00/rels/option/splits.txt + links: [] +- object: files/dll/present.rel + + symbols: config/GMPJ01_00/rels/present/symbols.txt + splits: config/GMPJ01_00/rels/present/splits.txt + links: [] +- object: files/dll/resultDll.rel + + symbols: config/GMPJ01_00/rels/resultDll/symbols.txt + splits: config/GMPJ01_00/rels/resultDll/splits.txt + links: [] +- object: files/dll/safDll.rel + + symbols: config/GMPJ01_00/rels/safDll/symbols.txt + splits: config/GMPJ01_00/rels/safDll/splits.txt + links: [] +- object: files/dll/selmenuDll.rel + + symbols: config/GMPJ01_00/rels/selmenuDll/symbols.txt + splits: config/GMPJ01_00/rels/selmenuDll/splits.txt + links: [] +- object: files/dll/staffDll.rel + + symbols: config/GMPJ01_00/rels/staffDll/symbols.txt + splits: config/GMPJ01_00/rels/staffDll/splits.txt + links: [] +- object: files/dll/subchrselDll.rel + + symbols: config/GMPJ01_00/rels/subchrselDll/symbols.txt + splits: config/GMPJ01_00/rels/subchrselDll/splits.txt + links: [] +- object: files/dll/w01Dll.rel + + symbols: config/GMPJ01_00/rels/w01Dll/symbols.txt + splits: config/GMPJ01_00/rels/w01Dll/splits.txt + links: [] +- object: files/dll/w02Dll.rel + + symbols: config/GMPJ01_00/rels/w02Dll/symbols.txt + splits: config/GMPJ01_00/rels/w02Dll/splits.txt + links: [] +- object: files/dll/w03Dll.rel + + symbols: config/GMPJ01_00/rels/w03Dll/symbols.txt + splits: config/GMPJ01_00/rels/w03Dll/splits.txt + links: [] +- object: files/dll/w04Dll.rel + + symbols: config/GMPJ01_00/rels/w04Dll/symbols.txt + splits: config/GMPJ01_00/rels/w04Dll/splits.txt + links: [] +- object: files/dll/w05Dll.rel + + symbols: config/GMPJ01_00/rels/w05Dll/symbols.txt + splits: config/GMPJ01_00/rels/w05Dll/splits.txt + links: [] +- object: files/dll/w06Dll.rel + + symbols: config/GMPJ01_00/rels/w06Dll/symbols.txt + splits: config/GMPJ01_00/rels/w06Dll/splits.txt + links: [] +- object: files/dll/w10Dll.rel + + symbols: config/GMPJ01_00/rels/w10Dll/symbols.txt + splits: config/GMPJ01_00/rels/w10Dll/splits.txt + links: [] +- object: files/dll/w20Dll.rel + + symbols: config/GMPJ01_00/rels/w20Dll/symbols.txt + splits: config/GMPJ01_00/rels/w20Dll/splits.txt + links: [] +- object: files/dll/w21Dll.rel + + symbols: config/GMPJ01_00/rels/w21Dll/symbols.txt + splits: config/GMPJ01_00/rels/w21Dll/splits.txt + links: [] +- object: files/dll/ztardll.rel + + symbols: config/GMPJ01_00/rels/ztardll/symbols.txt + splits: config/GMPJ01_00/rels/ztardll/splits.txt + links: [] +- object: files/dll/E3setupDLL.rel + + symbols: config/GMPJ01_00/rels/E3setupDLL/symbols.txt + splits: config/GMPJ01_00/rels/E3setupDLL/splits.txt + links: [_minigameDll] +- object: files/dll/m300Dll.rel + + symbols: config/GMPJ01_00/rels/m300Dll/symbols.txt + splits: config/GMPJ01_00/rels/m300Dll/splits.txt + links: [_minigameDll] +- object: files/dll/m401Dll.rel + + symbols: config/GMPJ01_00/rels/m401Dll/symbols.txt + splits: config/GMPJ01_00/rels/m401Dll/splits.txt + links: [_minigameDll] diff --git a/config/GMPJ01_00/rels/E3setupDLL/splits.txt b/config/GMPJ01_00/rels/E3setupDLL/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/E3setupDLL/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/E3setupDLL/symbols.txt b/config/GMPJ01_00/rels/E3setupDLL/symbols.txt new file mode 100644 index 00000000..382731fd --- /dev/null +++ b/config/GMPJ01_00/rels/E3setupDLL/symbols.txt @@ -0,0 +1,192 @@ +fn_2_0 = .text:0x00000000; // type:function size:0x324 +fn_2_324 = .text:0x00000324; // type:function size:0x9C +fn_2_3C0 = .text:0x000003C0; // type:function size:0xA0 +fn_2_460 = .text:0x00000460; // type:function size:0x584 +fn_2_9E4 = .text:0x000009E4; // type:function size:0x528 +fn_2_F0C = .text:0x00000F0C; // type:function size:0x80 +fn_2_F8C = .text:0x00000F8C; // type:function size:0x1AC +fn_2_1138 = .text:0x00001138; // type:function size:0x14 +fn_2_114C = .text:0x0000114C; // type:function size:0x1F0 +_prolog = .text:0x0000133C; // type:function size:0x54 scope:global +_epilog = .text:0x00001390; // type:function size:0x4C scope:global +fn_2_13DC = .text:0x000013DC; // type:function size:0x108 +fn_2_14E4 = .text:0x000014E4; // type:function size:0x514 +fn_2_19F8 = .text:0x000019F8; // type:function size:0x1AC +fn_2_1BA4 = .text:0x00001BA4; // type:function size:0x7C +fn_2_1C20 = .text:0x00001C20; // type:function size:0x84 +fn_2_1CA4 = .text:0x00001CA4; // type:function size:0x90 +fn_2_1D34 = .text:0x00001D34; // type:function size:0x24 +fn_2_1D58 = .text:0x00001D58; // type:function size:0xFC +fn_2_1E54 = .text:0x00001E54; // type:function size:0x1C0 +fn_2_2014 = .text:0x00002014; // type:function size:0x78 +fn_2_208C = .text:0x0000208C; // type:function size:0x2C +fn_2_20B8 = .text:0x000020B8; // type:function size:0xA4 +fn_2_215C = .text:0x0000215C; // type:function size:0x400 +fn_2_255C = .text:0x0000255C; // type:function size:0x124 +fn_2_2680 = .text:0x00002680; // type:function size:0x74 +fn_2_26F4 = .text:0x000026F4; // type:function size:0x344 +fn_2_2A38 = .text:0x00002A38; // type:function size:0x59C +fn_2_2FD4 = .text:0x00002FD4; // type:function size:0x208 +fn_2_31DC = .text:0x000031DC; // type:function size:0x37C +fn_2_3558 = .text:0x00003558; // type:function size:0x3B4 +fn_2_390C = .text:0x0000390C; // type:function size:0xAC +fn_2_39B8 = .text:0x000039B8; // type:function size:0x2B8 +fn_2_3C70 = .text:0x00003C70; // type:function size:0x534 +fn_2_41A4 = .text:0x000041A4; // type:function size:0x2DC +fn_2_4480 = .text:0x00004480; // type:function size:0x520 +fn_2_49A0 = .text:0x000049A0; // type:function size:0x59C +fn_2_4F3C = .text:0x00004F3C; // type:function size:0x4E8 +fn_2_5424 = .text:0x00005424; // type:function size:0x100 +fn_2_5524 = .text:0x00005524; // type:function size:0x184 +fn_2_56A8 = .text:0x000056A8; // type:function size:0x7C +fn_2_5724 = .text:0x00005724; // type:function size:0x12C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_2_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_2_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_2_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_2_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_2_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_2_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_2_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_2_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_2_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_2_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_2_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_2_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_2_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_2_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_2_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_2_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_2_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_2_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_2_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_2_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_2_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_2_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_2_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_2_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_2_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_2_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_2_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_2_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_2_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:float +lbl_2_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_2_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_2_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_2_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_2_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_2_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_2_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_2_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_2_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_2_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_2_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_2_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_2_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_2_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_2_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_2_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_2_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_2_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_2_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_2_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_2_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_2_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_2_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_2_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_2_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_2_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_2_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_2_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_2_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_2_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_2_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_2_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_2_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_2_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_2_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_2_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_2_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_2_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_2_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_2_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_2_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_2_data_24 = .data:0x00000024; // type:object size:0x1A +lbl_2_data_3E = .data:0x0000003E; // type:object size:0x1A +lbl_2_data_58 = .data:0x00000058; // type:object size:0x1C +lbl_2_data_74 = .data:0x00000074; // type:object size:0x34 +lbl_2_data_A8 = .data:0x000000A8; // type:object size:0x21 +lbl_2_data_C9 = .data:0x000000C9; // type:object size:0x16 +lbl_2_data_DF = .data:0x000000DF; // type:object size:0x16 +lbl_2_data_F5 = .data:0x000000F5; // type:object size:0x16 +lbl_2_data_10B = .data:0x0000010B; // type:object size:0xD +lbl_2_data_118 = .data:0x00000118; // type:object size:0x16 +lbl_2_data_12E = .data:0x0000012E; // type:object size:0xD +lbl_2_data_13B = .data:0x0000013B; // type:object size:0x16 +lbl_2_data_151 = .data:0x00000151; // type:object size:0x16 +lbl_2_data_167 = .data:0x00000167; // type:object size:0x16 +lbl_2_data_17D = .data:0x0000017D; // type:object size:0x16 +lbl_2_data_193 = .data:0x00000193; // type:object size:0x16 +lbl_2_data_1A9 = .data:0x000001A9; // type:object size:0x4B +lbl_2_data_1F4 = .data:0x000001F4; // type:object size:0x14 +lbl_2_data_208 = .data:0x00000208; // type:object size:0x34 +lbl_2_data_23C = .data:0x0000023C; // type:object size:0x14 +lbl_2_data_250 = .data:0x00000250; // type:object size:0xC +lbl_2_data_25C = .data:0x0000025C; // type:object size:0xC +lbl_2_data_268 = .data:0x00000268; // type:object size:0x6C +lbl_2_data_2D4 = .data:0x000002D4; // type:object size:0x8 +lbl_2_data_2DC = .data:0x000002DC; // type:object size:0x10 +lbl_2_data_2EC = .data:0x000002EC; // type:object size:0x20 +lbl_2_data_30C = .data:0x0000030C; // type:object size:0x1C +lbl_2_data_328 = .data:0x00000328; // type:object size:0x10 +lbl_2_data_338 = .data:0x00000338; // type:object size:0x40 +lbl_2_data_378 = .data:0x00000378; // type:object size:0x20 +lbl_2_data_398 = .data:0x00000398; // type:object size:0x10 +lbl_2_data_3A8 = .data:0x000003A8; // type:object size:0x20 +lbl_2_data_3C8 = .data:0x000003C8; // type:object size:0x14 +lbl_2_data_3DC = .data:0x000003DC; // type:object size:0x14 +lbl_2_data_3F0 = .data:0x000003F0; // type:object size:0x8 +lbl_2_data_3F8 = .data:0x000003F8; // type:object size:0x10 +lbl_2_data_408 = .data:0x00000408; // type:object size:0x10 +lbl_2_data_418 = .data:0x00000418; // type:object size:0x60 +lbl_2_data_478 = .data:0x00000478; // type:object size:0x24 +lbl_2_data_49C = .data:0x0000049C; // type:object size:0x34 +lbl_2_bss_A = .bss:0x0000000A; // type:object size:0x2 data:2byte +lbl_2_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_2_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_2_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_2_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_2_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_2_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_2_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_2_bss_28 = .bss:0x00000028; // type:object size:0xC data:2byte +lbl_2_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte +lbl_2_bss_36 = .bss:0x00000036; // type:object size:0x2 data:2byte +lbl_2_bss_3A = .bss:0x0000003A; // type:object size:0x2 data:2byte +lbl_2_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_2_bss_40 = .bss:0x00000040; // type:object size:0x2 data:2byte +lbl_2_bss_44 = .bss:0x00000044; // type:object size:0x4 data:float +lbl_2_bss_48 = .bss:0x00000048; // type:object size:0xC data:float +lbl_2_bss_54 = .bss:0x00000054; // type:object size:0xC data:float +lbl_2_bss_60 = .bss:0x00000060; // type:object size:0x2 data:2byte +lbl_2_bss_62 = .bss:0x00000062; // type:object size:0x8 +lbl_2_bss_6A = .bss:0x0000006A; // type:object size:0x6 data:2byte +lbl_2_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_2_bss_74 = .bss:0x00000074; // type:object size:0x18 data:4byte +lbl_2_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_2_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_2_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_2_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_2_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:float +lbl_2_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_2_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_2_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_2_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lbl_2_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_2_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_2_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_2_bss_BC = .bss:0x000000BC; // type:object size:0x2 data:2byte +lbl_2_bss_BE = .bss:0x000000BE; // type:object size:0x2 data:2byte +lbl_2_bss_C0 = .bss:0x000000C0; // type:object size:0x20 +lbl_2_bss_E0 = .bss:0x000000E0; // type:object size:0x18 data:2byte diff --git a/config/GMPJ01_00/rels/_minigameDll/splits.txt b/config/GMPJ01_00/rels/_minigameDll/splits.txt new file mode 100644 index 00000000..be323846 --- /dev/null +++ b/config/GMPJ01_00/rels/_minigameDll/splits.txt @@ -0,0 +1,6 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 diff --git a/config/GMPJ01_00/rels/_minigameDll/symbols.txt b/config/GMPJ01_00/rels/_minigameDll/symbols.txt new file mode 100644 index 00000000..5c4a5ab3 --- /dev/null +++ b/config/GMPJ01_00/rels/_minigameDll/symbols.txt @@ -0,0 +1,7 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x2C +fn_1_CC = .text:0x000000CC; // type:function size:0x24 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x14 data:string diff --git a/config/GMPJ01_00/rels/bootDll/splits.txt b/config/GMPJ01_00/rels/bootDll/splits.txt new file mode 100644 index 00000000..bc4e958f --- /dev/null +++ b/config/GMPJ01_00/rels/bootDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:32 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/bootDll/symbols.txt b/config/GMPJ01_00/rels/bootDll/symbols.txt new file mode 100644 index 00000000..a27cc9e1 --- /dev/null +++ b/config/GMPJ01_00/rels/bootDll/symbols.txt @@ -0,0 +1,67 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x1CC +fn_1_26C = .text:0x0000026C; // type:function size:0x78C +fn_1_9F8 = .text:0x000009F8; // type:function size:0xC8 +fn_1_AC0 = .text:0x00000AC0; // type:function size:0x6B8 +fn_1_1178 = .text:0x00001178; // type:function size:0x3B4 +fn_1_152C = .text:0x0000152C; // type:function size:0xBD4 +fn_1_2100 = .text:0x00002100; // type:function size:0x374 +fn_1_2474 = .text:0x00002474; // type:function size:0x4D0 +fn_1_2944 = .text:0x00002944; // type:function size:0x84 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 data:string +lbl_1_data_24 = .data:0x00000024; // type:object size:0x14 data:string +lbl_1_data_38 = .data:0x00000038; // type:object size:0x18 data:2byte +lbl_1_data_50 = .data:0x00000050; // type:object size:0x8 +lbl_1_data_58 = .data:0x00000058; // type:object size:0x4 +lbl_1_data_5C = .data:0x0000005C; // type:object size:0x1A data:string +lbl_1_data_76 = .data:0x00000076; // type:object size:0x13 data:string +lbl_1_data_89 = .data:0x00000089; // type:object size:0x17 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x307D +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x6 +lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x6 data:2byte +lbl_1_bss_E = .bss:0x0000000E; // type:object size:0xE data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:float +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x18 data:float +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 data:4byte diff --git a/config/GMPJ01_00/rels/instDll/splits.txt b/config/GMPJ01_00/rels/instDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/instDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/instDll/symbols.txt b/config/GMPJ01_00/rels/instDll/symbols.txt new file mode 100644 index 00000000..1013d7c3 --- /dev/null +++ b/config/GMPJ01_00/rels/instDll/symbols.txt @@ -0,0 +1,149 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x8F4 +fn_1_994 = .text:0x00000994; // type:function size:0xE50 +fn_1_17E4 = .text:0x000017E4; // type:function size:0xA28 +fn_1_220C = .text:0x0000220C; // type:function size:0x5F8 +fn_1_2804 = .text:0x00002804; // type:function size:0x79C +fn_1_2FA0 = .text:0x00002FA0; // type:function size:0x11D4 +fn_1_4174 = .text:0x00004174; // type:function size:0x3B4 +fn_1_4528 = .text:0x00004528; // type:function size:0xB88 +fn_1_50B0 = .text:0x000050B0; // type:function size:0xAB4 +fn_1_5B64 = .text:0x00005B64; // type:function size:0x340 +fn_1_5EA4 = .text:0x00005EA4; // type:function size:0x47C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_2 = .data:0x00000002; // type:object size:0x24 data:string +lbl_1_data_26 = .data:0x00000026; // type:object size:0x20 +lbl_1_data_46 = .data:0x00000046; // type:object size:0xA +lbl_1_data_50 = .data:0x00000050; // type:object size:0x20 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x20 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x8 data:string +lbl_1_data_98 = .data:0x00000098; // type:object size:0x8 data:string +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x8 data:string +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x8 data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x4 +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x48 +lbl_1_data_10C = .data:0x0000010C; // type:object size:0x18 +lbl_1_data_124 = .data:0x00000124; // type:object size:0x20 data:float +lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 +lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4 data:float +lbl_1_data_150 = .data:0x00000150; // type:object size:0x4C8 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x1 data:byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x18 data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x18 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x8 data:4byte diff --git a/config/GMPJ01_00/rels/m300Dll/splits.txt b/config/GMPJ01_00/rels/m300Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPJ01_00/rels/m300Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPJ01_00/rels/m300Dll/symbols.txt b/config/GMPJ01_00/rels/m300Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPJ01_00/rels/m300Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPJ01_00/rels/m302Dll/splits.txt b/config/GMPJ01_00/rels/m302Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPJ01_00/rels/m302Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPJ01_00/rels/m302Dll/symbols.txt b/config/GMPJ01_00/rels/m302Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPJ01_00/rels/m302Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPJ01_00/rels/m303Dll/splits.txt b/config/GMPJ01_00/rels/m303Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPJ01_00/rels/m303Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPJ01_00/rels/m303Dll/symbols.txt b/config/GMPJ01_00/rels/m303Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPJ01_00/rels/m303Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPJ01_00/rels/m330Dll/splits.txt b/config/GMPJ01_00/rels/m330Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPJ01_00/rels/m330Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPJ01_00/rels/m330Dll/symbols.txt b/config/GMPJ01_00/rels/m330Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPJ01_00/rels/m330Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPJ01_00/rels/m333Dll/splits.txt b/config/GMPJ01_00/rels/m333Dll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPJ01_00/rels/m333Dll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPJ01_00/rels/m333Dll/symbols.txt b/config/GMPJ01_00/rels/m333Dll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPJ01_00/rels/m333Dll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPJ01_00/rels/m401Dll/splits.txt b/config/GMPJ01_00/rels/m401Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m401Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m401Dll/symbols.txt b/config/GMPJ01_00/rels/m401Dll/symbols.txt new file mode 100644 index 00000000..6a0cc8b9 --- /dev/null +++ b/config/GMPJ01_00/rels/m401Dll/symbols.txt @@ -0,0 +1,522 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_2_A0 = .text:0x000000A0; // type:function size:0x66C +fn_2_70C = .text:0x0000070C; // type:function size:0x304 +fn_2_A10 = .text:0x00000A10; // type:function size:0x88 +fn_2_A98 = .text:0x00000A98; // type:function size:0x54 +fn_2_AEC = .text:0x00000AEC; // type:function size:0x130 +fn_2_C1C = .text:0x00000C1C; // type:function size:0x5B4 +fn_2_11D0 = .text:0x000011D0; // type:function size:0x3F4 +fn_2_15C4 = .text:0x000015C4; // type:function size:0xD8 +fn_2_169C = .text:0x0000169C; // type:function size:0x1BC +fn_2_1858 = .text:0x00001858; // type:function size:0x1E0 +fn_2_1A38 = .text:0x00001A38; // type:function size:0x148 +fn_2_1B80 = .text:0x00001B80; // type:function size:0x170 +fn_2_1CF0 = .text:0x00001CF0; // type:function size:0xF8 +fn_2_1DE8 = .text:0x00001DE8; // type:function size:0x2C8 +fn_2_20B0 = .text:0x000020B0; // type:function size:0x148 +fn_2_21F8 = .text:0x000021F8; // type:function size:0x4E8 +fn_2_26E0 = .text:0x000026E0; // type:function size:0x5DC +fn_2_2CBC = .text:0x00002CBC; // type:function size:0xA8 +fn_2_2D64 = .text:0x00002D64; // type:function size:0x68 +fn_2_2DCC = .text:0x00002DCC; // type:function size:0x54 +fn_2_2E20 = .text:0x00002E20; // type:function size:0xB0 +fn_2_2ED0 = .text:0x00002ED0; // type:function size:0xCC +fn_2_2F9C = .text:0x00002F9C; // type:function size:0x4 +fn_2_2FA0 = .text:0x00002FA0; // type:function size:0x4 +fn_2_2FA4 = .text:0x00002FA4; // type:function size:0x410 +fn_2_33B4 = .text:0x000033B4; // type:function size:0x104 +fn_2_34B8 = .text:0x000034B8; // type:function size:0x380 +fn_2_3838 = .text:0x00003838; // type:function size:0x2EC +fn_2_3B24 = .text:0x00003B24; // type:function size:0x404 +fn_2_3F28 = .text:0x00003F28; // type:function size:0x978 +fn_2_48A0 = .text:0x000048A0; // type:function size:0x1420 +fn_2_5CC0 = .text:0x00005CC0; // type:function size:0x93C +fn_2_65FC = .text:0x000065FC; // type:function size:0x4F8 +fn_2_6AF4 = .text:0x00006AF4; // type:function size:0x50 +fn_2_6B44 = .text:0x00006B44; // type:function size:0x150 +fn_2_6C94 = .text:0x00006C94; // type:function size:0x9AC +fn_2_7640 = .text:0x00007640; // type:function size:0x6C +fn_2_76AC = .text:0x000076AC; // type:function size:0x280 +fn_2_792C = .text:0x0000792C; // type:function size:0x310 +fn_2_7C3C = .text:0x00007C3C; // type:function size:0x78 +fn_2_7CB4 = .text:0x00007CB4; // type:function size:0x1B8 +fn_2_7E6C = .text:0x00007E6C; // type:function size:0x70 +fn_2_7EDC = .text:0x00007EDC; // type:function size:0x574 +fn_2_8450 = .text:0x00008450; // type:function size:0x2EC +fn_2_873C = .text:0x0000873C; // type:function size:0x12C +fn_2_8868 = .text:0x00008868; // type:function size:0x100 +fn_2_8968 = .text:0x00008968; // type:function size:0x1F0 +fn_2_8B58 = .text:0x00008B58; // type:function size:0x100 +fn_2_8C58 = .text:0x00008C58; // type:function size:0x21C +fn_2_8E74 = .text:0x00008E74; // type:function size:0x338 +fn_2_91AC = .text:0x000091AC; // type:function size:0xEC +fn_2_9298 = .text:0x00009298; // type:function size:0x34C +fn_2_95E4 = .text:0x000095E4; // type:function size:0x150 +fn_2_9734 = .text:0x00009734; // type:function size:0x68 +fn_2_979C = .text:0x0000979C; // type:function size:0xF0 +fn_2_988C = .text:0x0000988C; // type:function size:0x118 +fn_2_99A4 = .text:0x000099A4; // type:function size:0x1EC +fn_2_9B90 = .text:0x00009B90; // type:function size:0x170 +fn_2_9D00 = .text:0x00009D00; // type:function size:0x128 +fn_2_9E28 = .text:0x00009E28; // type:function size:0x288 +fn_2_A0B0 = .text:0x0000A0B0; // type:function size:0x268 +fn_2_A318 = .text:0x0000A318; // type:function size:0x58C +fn_2_A8A4 = .text:0x0000A8A4; // type:function size:0x70 +fn_2_A914 = .text:0x0000A914; // type:function size:0x2C +fn_2_A940 = .text:0x0000A940; // type:function size:0x2EC +fn_2_AC2C = .text:0x0000AC2C; // type:function size:0x1164 +fn_2_BD90 = .text:0x0000BD90; // type:function size:0x3A0 +fn_2_C130 = .text:0x0000C130; // type:function size:0x5AC +fn_2_C6DC = .text:0x0000C6DC; // type:function size:0x164 +fn_2_C840 = .text:0x0000C840; // type:function size:0x270 +fn_2_CAB0 = .text:0x0000CAB0; // type:function size:0x5D8 +fn_2_D088 = .text:0x0000D088; // type:function size:0xF8 +fn_2_D180 = .text:0x0000D180; // type:function size:0x268 +fn_2_D3E8 = .text:0x0000D3E8; // type:function size:0x4E4 +fn_2_D8CC = .text:0x0000D8CC; // type:function size:0x300 +fn_2_DBCC = .text:0x0000DBCC; // type:function size:0x250 +fn_2_DE1C = .text:0x0000DE1C; // type:function size:0xA0 +fn_2_DEBC = .text:0x0000DEBC; // type:function size:0x390 +fn_2_E24C = .text:0x0000E24C; // type:function size:0x118 +fn_2_E364 = .text:0x0000E364; // type:function size:0xBC +fn_2_E420 = .text:0x0000E420; // type:function size:0x24C +fn_2_E66C = .text:0x0000E66C; // type:function size:0x30 +fn_2_E69C = .text:0x0000E69C; // type:function size:0x20 +fn_2_E6BC = .text:0x0000E6BC; // type:function size:0x2C +fn_2_E6E8 = .text:0x0000E6E8; // type:function size:0x1090 +fn_2_F778 = .text:0x0000F778; // type:function size:0x4C8 +fn_2_FC40 = .text:0x0000FC40; // type:function size:0x358 +fn_2_FF98 = .text:0x0000FF98; // type:function size:0x2A8 +fn_2_10240 = .text:0x00010240; // type:function size:0x1DC +fn_2_1041C = .text:0x0001041C; // type:function size:0x2F4 +fn_2_10710 = .text:0x00010710; // type:function size:0x8C +fn_2_1079C = .text:0x0001079C; // type:function size:0x12C +fn_2_108C8 = .text:0x000108C8; // type:function size:0xB8 +fn_2_10980 = .text:0x00010980; // type:function size:0x88 +fn_2_10A08 = .text:0x00010A08; // type:function size:0x80 +fn_2_10A88 = .text:0x00010A88; // type:function size:0x924 +fn_2_113AC = .text:0x000113AC; // type:function size:0x504 +fn_2_118B0 = .text:0x000118B0; // type:function size:0x1B8 +fn_2_11A68 = .text:0x00011A68; // type:function size:0x110 +fn_2_11B78 = .text:0x00011B78; // type:function size:0xB8 +fn_2_11C30 = .text:0x00011C30; // type:function size:0x110 +fn_2_11D40 = .text:0x00011D40; // type:function size:0x104 +fn_2_11E44 = .text:0x00011E44; // type:function size:0xB8 +fn_2_11EFC = .text:0x00011EFC; // type:function size:0xB8 +fn_2_11FB4 = .text:0x00011FB4; // type:function size:0x444 +fn_2_123F8 = .text:0x000123F8; // type:function size:0x2D0 +fn_2_126C8 = .text:0x000126C8; // type:function size:0x2C +fn_2_126F4 = .text:0x000126F4; // type:function size:0x43C +fn_2_12B30 = .text:0x00012B30; // type:function size:0x4EC +fn_2_1301C = .text:0x0001301C; // type:function size:0x4F0 +fn_2_1350C = .text:0x0001350C; // type:function size:0x670 +fn_2_13B7C = .text:0x00013B7C; // type:function size:0x634 +fn_2_141B0 = .text:0x000141B0; // type:function size:0x120 +fn_2_142D0 = .text:0x000142D0; // type:function size:0x4 +fn_2_142D4 = .text:0x000142D4; // type:function size:0x36C +fn_2_14640 = .text:0x00014640; // type:function size:0xF8 +fn_2_14738 = .text:0x00014738; // type:function size:0x7C +fn_2_147B4 = .text:0x000147B4; // type:function size:0x660 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_2_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_2_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_2_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_2_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_2_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_2_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_2_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_2_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_2_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_2_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_2_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_2_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_2_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_2_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_2_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_2_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_2_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_2_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_2_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_2_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_2_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_2_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_2_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_2_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_2_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_2_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_2_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_2_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_2_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_2_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_2_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_2_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_2_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_2_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_2_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_2_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_2_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_2_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_2_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_2_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_2_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_2_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_2_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_2_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_2_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_2_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_2_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_2_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_2_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_2_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_2_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_2_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_2_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_2_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_2_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_2_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_2_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_2_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_2_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_2_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_2_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_2_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_2_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_2_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_2_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_2_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_2_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_2_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_2_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_2_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_2_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_2_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_2_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_2_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_2_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_2_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_2_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_2_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_2_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_2_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_2_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_2_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_2_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_2_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_2_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_2_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_2_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_2_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_2_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_2_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_2_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_2_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_2_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_2_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_2_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_2_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_2_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_2_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_2_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_2_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_2_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_2_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_2_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_2_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_2_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_2_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_2_rodata_1DC = .rodata:0x000001DC; // type:object size:0x10 data:4byte +lbl_2_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_2_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_2_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_2_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_2_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_2_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_2_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_2_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_2_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_2_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_2_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_2_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_2_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_2_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_2_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_2_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_2_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_2_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_2_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_2_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_2_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_2_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_2_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_2_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_2_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_2_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_2_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_2_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_2_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_2_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_2_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_2_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_2_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_2_rodata_290 = .rodata:0x00000290; // type:object size:0x40 data:2byte +lbl_2_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:2byte +lbl_2_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:2byte +lbl_2_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:2byte +lbl_2_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_2_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_2_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_2_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_2_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_2_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_2_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_2_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_2_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_2_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_2_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_2_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_2_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_2_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_2_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_2_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_2_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_2_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_2_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_2_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double +lbl_2_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_2_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_2_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_2_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_2_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_2_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_2_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_2_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_2_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_2_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_2_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_2_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_2_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_2_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_2_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_2_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_2_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_2_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_2_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_2_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_2_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_2_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_2_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_2_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_2_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_2_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_2_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_2_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_2_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_2_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_2_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_2_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_2_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_2_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_2_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_2_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_2_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_2_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_2_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_2_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_2_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_2_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_2_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_2_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_2_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_2_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_2_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_2_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_2_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_2_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_2_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double +lbl_2_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_2_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_2_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_2_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_2_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_2_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_2_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_2_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_2_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_2_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_2_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_2_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_2_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_2_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double +lbl_2_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_2_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_2_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_2_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_2_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_2_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_2_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_2_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_2_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_2_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double +lbl_2_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double +lbl_2_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double +lbl_2_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_2_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_2_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_2_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_2_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_2_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_2_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_2_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_2_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_2_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_2_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_2_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_2_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_2_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double +lbl_2_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double +lbl_2_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_2_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_2_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_2_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_2_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_2_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_2_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_2_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_2_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float +lbl_2_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float +lbl_2_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_2_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float +lbl_2_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float +lbl_2_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float +lbl_2_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float +lbl_2_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float +lbl_2_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double +lbl_2_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_2_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float +lbl_2_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:double +lbl_2_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_2_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float +lbl_2_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_2_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_2_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_2_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_2_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_2_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_2_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_2_rodata_590 = .rodata:0x00000590; // type:object size:0x8 data:double +lbl_2_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_2_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_2_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_2_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float +lbl_2_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_2_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_2_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_2_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_2_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 data:double +lbl_2_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float +lbl_2_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float +lbl_2_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float +lbl_2_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_2_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_2_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_2_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_2_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float +lbl_2_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_2_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_2_data_0 = .data:0x00000000; // type:object size:0x4 data:float +lbl_2_data_4 = .data:0x00000004; // type:object size:0x10 +lbl_2_data_14 = .data:0x00000014; // type:object size:0xC +lbl_2_data_20 = .data:0x00000020; // type:object size:0xC +lbl_2_data_2C = .data:0x0000002C; // type:object size:0x4 +lbl_2_data_30 = .data:0x00000030; // type:object size:0xC data:float +lbl_2_data_3C = .data:0x0000003C; // type:object size:0xC +lbl_2_data_48 = .data:0x00000048; // type:object size:0xC data:float +lbl_2_data_54 = .data:0x00000054; // type:object size:0x1B data:string +lbl_2_data_6F = .data:0x0000006F; // type:object size:0x11 +lbl_2_data_80 = .data:0x00000080; // type:object size:0x20 +lbl_2_data_A0 = .data:0x000000A0; // type:object size:0x14 +lbl_2_data_B4 = .data:0x000000B4; // type:object size:0x18 +lbl_2_data_CC = .data:0x000000CC; // type:object size:0x28 +lbl_2_data_F4 = .data:0x000000F4; // type:object size:0x9 data:string +lbl_2_data_FD = .data:0x000000FD; // type:object size:0x9 data:string +lbl_2_data_106 = .data:0x00000106; // type:object size:0x9 data:string +lbl_2_data_10F = .data:0x0000010F; // type:object size:0x9 data:string +lbl_2_data_118 = .data:0x00000118; // type:object size:0xC +lbl_2_data_124 = .data:0x00000124; // type:object size:0x34 data:4byte +lbl_2_data_158 = .data:0x00000158; // type:object size:0x140 +lbl_2_data_298 = .data:0x00000298; // type:object size:0x30 +lbl_2_data_2C8 = .data:0x000002C8; // type:object size:0x30 +jumptable_2_data_2F8 = .data:0x000002F8; // type:object size:0x30 scope:local +lbl_2_data_32C = .data:0x0000032C; // type:object size:0x8 +lbl_2_data_334 = .data:0x00000334; // type:object size:0xF0 +lbl_2_data_424 = .data:0x00000424; // type:object size:0x8 +lbl_2_data_42C = .data:0x0000042C; // type:object size:0x28 +lbl_2_data_454 = .data:0x00000454; // type:object size:0xC data:string +lbl_2_data_460 = .data:0x00000460; // type:object size:0xC +lbl_2_data_46C = .data:0x0000046C; // type:object size:0x5 data:string +lbl_2_data_471 = .data:0x00000471; // type:object size:0x7 +jumptable_2_data_478 = .data:0x00000478; // type:object size:0x20 scope:local +lbl_2_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_2_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_2_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_2_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte +lbl_2_bss_10 = .bss:0x00000010; // type:object size:0x4 data:float +lbl_2_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_2_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_2_bss_1A = .bss:0x0000001A; // type:object size:0x2 data:2byte +lbl_2_bss_1C = .bss:0x0000001C; // type:object size:0x10 data:4byte +lbl_2_bss_2C = .bss:0x0000002C; // type:object size:0xC data:float +lbl_2_bss_38 = .bss:0x00000038; // type:object size:0xC data:float +lbl_2_bss_44 = .bss:0x00000044; // type:object size:0xC data:float +lbl_2_bss_50 = .bss:0x00000050; // type:object size:0x4 data:float +lbl_2_bss_54 = .bss:0x00000054; // type:object size:0xC data:4byte +lbl_2_bss_60 = .bss:0x00000060; // type:object size:0xC data:float +lbl_2_bss_6C = .bss:0x0000006C; // type:object size:0xC data:float +lbl_2_bss_78 = .bss:0x00000078; // type:object size:0xC data:float +lbl_2_bss_84 = .bss:0x00000084; // type:object size:0x4 data:float +lbl_2_bss_88 = .bss:0x00000088; // type:object size:0x4 data:float +lbl_2_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_2_bss_90 = .bss:0x00000090; // type:object size:0x14 data:4byte +lbl_2_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_2_bss_A8 = .bss:0x000000A8; // type:object size:0x2 data:2byte +lbl_2_bss_AA = .bss:0x000000AA; // type:object size:0x8 data:2byte +lbl_2_bss_B2 = .bss:0x000000B2; // type:object size:0x8 data:2byte +lbl_2_bss_BA = .bss:0x000000BA; // type:object size:0x2 data:2byte +lbl_2_bss_BE = .bss:0x000000BE; // type:object size:0x2 data:2byte +lbl_2_bss_C0 = .bss:0x000000C0; // type:object size:0x2 data:2byte +lbl_2_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte +lbl_2_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_2_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_2_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_2_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte +lbl_2_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte +lbl_2_bss_DC = .bss:0x000000DC; // type:object size:0x4 data:4byte +lbl_2_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte +lbl_2_bss_E4 = .bss:0x000000E4; // type:object size:0x10 +lbl_2_bss_F4 = .bss:0x000000F4; // type:object size:0x4 data:4byte +lbl_2_bss_F8 = .bss:0x000000F8; // type:object size:0x4 data:4byte +lbl_2_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_2_bss_100 = .bss:0x00000100; // type:object size:0x8 data:4byte +lbl_2_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte +lbl_2_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte +lbl_2_bss_110 = .bss:0x00000110; // type:object size:0x4 data:4byte +lbl_2_bss_114 = .bss:0x00000114; // type:object size:0x4 data:4byte +lbl_2_bss_118 = .bss:0x00000118; // type:object size:0x4 data:4byte +lbl_2_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte +lbl_2_bss_120 = .bss:0x00000120; // type:object size:0x2 data:2byte +lbl_2_bss_124 = .bss:0x00000124; // type:object size:0x4 data:float +lbl_2_bss_128 = .bss:0x00000128; // type:object size:0x4 data:float +lbl_2_bss_12C = .bss:0x0000012C; // type:object size:0x8 data:float +lbl_2_bss_134 = .bss:0x00000134; // type:object size:0x2 data:2byte +lbl_2_bss_136 = .bss:0x00000136; // type:object size:0x8 +lbl_2_bss_13E = .bss:0x0000013E; // type:object size:0xE2 +lbl_2_bss_220 = .bss:0x00000220; // type:object size:0x18 data:4byte +lbl_2_bss_238 = .bss:0x00000238; // type:object size:0x4 data:4byte +lbl_2_bss_23C = .bss:0x0000023C; // type:object size:0x4 data:4byte +lbl_2_bss_240 = .bss:0x00000240; // type:object size:0x4 data:4byte +lbl_2_bss_244 = .bss:0x00000244; // type:object size:0x4 data:4byte +lbl_2_bss_248 = .bss:0x00000248; // type:object size:0x4 data:4byte +lbl_2_bss_24C = .bss:0x0000024C; // type:object size:0x4 data:4byte +lbl_2_bss_250 = .bss:0x00000250; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m402Dll/splits.txt b/config/GMPJ01_00/rels/m402Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m402Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m402Dll/symbols.txt b/config/GMPJ01_00/rels/m402Dll/symbols.txt new file mode 100644 index 00000000..5fa3679a --- /dev/null +++ b/config/GMPJ01_00/rels/m402Dll/symbols.txt @@ -0,0 +1,204 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x218 +fn_1_798 = .text:0x00000798; // type:function size:0x254 +fn_1_9EC = .text:0x000009EC; // type:function size:0x54 +fn_1_A40 = .text:0x00000A40; // type:function size:0x10C +fn_1_B4C = .text:0x00000B4C; // type:function size:0x6A8 +fn_1_11F4 = .text:0x000011F4; // type:function size:0x15C +fn_1_1350 = .text:0x00001350; // type:function size:0x8C +fn_1_13DC = .text:0x000013DC; // type:function size:0x334 +fn_1_1710 = .text:0x00001710; // type:function size:0x350 +fn_1_1A60 = .text:0x00001A60; // type:function size:0x2B8 +fn_1_1D18 = .text:0x00001D18; // type:function size:0x58 +fn_1_1D70 = .text:0x00001D70; // type:function size:0xB0 +fn_1_1E20 = .text:0x00001E20; // type:function size:0x104 +fn_1_1F24 = .text:0x00001F24; // type:function size:0x34 +fn_1_1F58 = .text:0x00001F58; // type:function size:0x6C +fn_1_1FC4 = .text:0x00001FC4; // type:function size:0x3F0 +_prolog = .text:0x000023B4; // type:function size:0x54 scope:global +_epilog = .text:0x00002408; // type:function size:0x4C scope:global +fn_1_2454 = .text:0x00002454; // type:function size:0x2F0 +fn_1_2744 = .text:0x00002744; // type:function size:0x64 +fn_1_27A8 = .text:0x000027A8; // type:function size:0xD8 +fn_1_2880 = .text:0x00002880; // type:function size:0xF0 +fn_1_2970 = .text:0x00002970; // type:function size:0x1C0 +fn_1_2B30 = .text:0x00002B30; // type:function size:0x28C +fn_1_2DBC = .text:0x00002DBC; // type:function size:0x380 +fn_1_313C = .text:0x0000313C; // type:function size:0xC8 +fn_1_3204 = .text:0x00003204; // type:function size:0xF8C +fn_1_4190 = .text:0x00004190; // type:function size:0xF4 +fn_1_4284 = .text:0x00004284; // type:function size:0x154 +fn_1_43D8 = .text:0x000043D8; // type:function size:0x1FF0 +fn_1_63C8 = .text:0x000063C8; // type:function size:0x490 +fn_1_6858 = .text:0x00006858; // type:function size:0x4 +fn_1_685C = .text:0x0000685C; // type:function size:0x258 +fn_1_6AB4 = .text:0x00006AB4; // type:function size:0x3B0 +fn_1_6E64 = .text:0x00006E64; // type:function size:0x1BC +fn_1_7020 = .text:0x00007020; // type:function size:0xC4 +fn_1_70E4 = .text:0x000070E4; // type:function size:0x86C +fn_1_7950 = .text:0x00007950; // type:function size:0x19C +fn_1_7AEC = .text:0x00007AEC; // type:function size:0x25C +fn_1_7D48 = .text:0x00007D48; // type:function size:0x4 +fn_1_7D4C = .text:0x00007D4C; // type:function size:0x134 +fn_1_7E80 = .text:0x00007E80; // type:function size:0x4 +fn_1_7E84 = .text:0x00007E84; // type:function size:0x1C4 +fn_1_8048 = .text:0x00008048; // type:function size:0x1D0 +fn_1_8218 = .text:0x00008218; // type:function size:0xE40 +fn_1_9058 = .text:0x00009058; // type:function size:0x1EC +fn_1_9244 = .text:0x00009244; // type:function size:0x8B0 +fn_1_9AF4 = .text:0x00009AF4; // type:function size:0xD0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0xC data:4byte +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:4byte +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x14 +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC +lbl_1_data_78 = .data:0x00000078; // type:object size:0x160 +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x10 +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0xC +lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x4 data:4byte +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x8 +lbl_1_data_200 = .data:0x00000200; // type:object size:0x18 +lbl_1_data_218 = .data:0x00000218; // type:object size:0x1C +lbl_1_data_234 = .data:0x00000234; // type:object size:0x190 +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x14 +lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x1A data:string +lbl_1_data_3F2 = .data:0x000003F2; // type:object size:0x9 data:string +lbl_1_data_3FB = .data:0x000003FB; // type:object size:0x6 data:string +lbl_1_data_401 = .data:0x00000401; // type:object size:0x10 data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x1F +jumptable_1_data_430 = .data:0x00000430; // type:object size:0x40 scope:local +lbl_1_data_470 = .data:0x00000470; // type:object size:0x17 data:string +lbl_1_data_487 = .data:0x00000487; // type:object size:0x1B data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x24 data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0xE +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x100 +lbl_1_bss_15C = .bss:0x0000015C; // type:object size:0x40 data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x4 data:float +lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 data:4byte +lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x2 data:2byte +lbl_1_bss_1AA = .bss:0x000001AA; // type:object size:0x2 data:2byte +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 data:4byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x4 data:4byte +lbl_1_bss_1B4 = .bss:0x000001B4; // type:object size:0x4 data:4byte +lbl_1_bss_1B8 = .bss:0x000001B8; // type:object size:0xC data:4byte +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0xC data:4byte +lbl_1_bss_1D0 = .bss:0x000001D0; // type:object size:0xC data:4byte +lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0xC data:4byte +lbl_1_bss_1E8 = .bss:0x000001E8; // type:object size:0x4 data:4byte +lbl_1_bss_1EC = .bss:0x000001EC; // type:object size:0x18 data:4byte +lbl_1_bss_204 = .bss:0x00000204; // type:object size:0xC data:4byte diff --git a/config/GMPJ01_00/rels/m403Dll/splits.txt b/config/GMPJ01_00/rels/m403Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m403Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m403Dll/symbols.txt b/config/GMPJ01_00/rels/m403Dll/symbols.txt new file mode 100644 index 00000000..f3ebacb7 --- /dev/null +++ b/config/GMPJ01_00/rels/m403Dll/symbols.txt @@ -0,0 +1,256 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x384 +fn_1_424 = .text:0x00000424; // type:function size:0x20 +fn_1_444 = .text:0x00000444; // type:function size:0x3E8 +fn_1_82C = .text:0x0000082C; // type:function size:0x9E8 +fn_1_1214 = .text:0x00001214; // type:function size:0x60 +fn_1_1274 = .text:0x00001274; // type:function size:0x1EC +fn_1_1460 = .text:0x00001460; // type:function size:0x278 +fn_1_16D8 = .text:0x000016D8; // type:function size:0x104 +fn_1_17DC = .text:0x000017DC; // type:function size:0x274 +fn_1_1A50 = .text:0x00001A50; // type:function size:0xA0 +fn_1_1AF0 = .text:0x00001AF0; // type:function size:0x2B8 +fn_1_1DA8 = .text:0x00001DA8; // type:function size:0x28 +fn_1_1DD0 = .text:0x00001DD0; // type:function size:0x388 +fn_1_2158 = .text:0x00002158; // type:function size:0x14C +fn_1_22A4 = .text:0x000022A4; // type:function size:0x2F4 +fn_1_2598 = .text:0x00002598; // type:function size:0xA44 +fn_1_2FDC = .text:0x00002FDC; // type:function size:0x824 +fn_1_3800 = .text:0x00003800; // type:function size:0x94 +fn_1_3894 = .text:0x00003894; // type:function size:0x2EC +fn_1_3B80 = .text:0x00003B80; // type:function size:0x1EC +fn_1_3D6C = .text:0x00003D6C; // type:function size:0xE0 +fn_1_3E4C = .text:0x00003E4C; // type:function size:0x1C0 +fn_1_400C = .text:0x0000400C; // type:function size:0x9C +fn_1_40A8 = .text:0x000040A8; // type:function size:0x480 +fn_1_4528 = .text:0x00004528; // type:function size:0x54 +fn_1_457C = .text:0x0000457C; // type:function size:0x168 +fn_1_46E4 = .text:0x000046E4; // type:function size:0x120 +fn_1_4804 = .text:0x00004804; // type:function size:0x30C +fn_1_4B10 = .text:0x00004B10; // type:function size:0x78 +fn_1_4B88 = .text:0x00004B88; // type:function size:0x11C +fn_1_4CA4 = .text:0x00004CA4; // type:function size:0x78 +fn_1_4D1C = .text:0x00004D1C; // type:function size:0x2D8 +fn_1_4FF4 = .text:0x00004FF4; // type:function size:0x2B8 +fn_1_52AC = .text:0x000052AC; // type:function size:0x154 +fn_1_5400 = .text:0x00005400; // type:function size:0x3E0 +fn_1_57E0 = .text:0x000057E0; // type:function size:0x214 +fn_1_59F4 = .text:0x000059F4; // type:function size:0x198 +fn_1_5B8C = .text:0x00005B8C; // type:function size:0xD8 +fn_1_5C64 = .text:0x00005C64; // type:function size:0xBC +fn_1_5D20 = .text:0x00005D20; // type:function size:0x33C +fn_1_605C = .text:0x0000605C; // type:function size:0x4B0 +fn_1_650C = .text:0x0000650C; // type:function size:0x260 +fn_1_676C = .text:0x0000676C; // type:function size:0x20 +fn_1_678C = .text:0x0000678C; // type:function size:0x84 +fn_1_6810 = .text:0x00006810; // type:function size:0x4 +fn_1_6814 = .text:0x00006814; // type:function size:0x16C +fn_1_6980 = .text:0x00006980; // type:function size:0x318 +fn_1_6C98 = .text:0x00006C98; // type:function size:0x240 +fn_1_6ED8 = .text:0x00006ED8; // type:function size:0x110 +fn_1_6FE8 = .text:0x00006FE8; // type:function size:0x400 +fn_1_73E8 = .text:0x000073E8; // type:function size:0x5B4 +fn_1_799C = .text:0x0000799C; // type:function size:0xFC +fn_1_7A98 = .text:0x00007A98; // type:function size:0x88 +fn_1_7B20 = .text:0x00007B20; // type:function size:0xB4 +fn_1_7BD4 = .text:0x00007BD4; // type:function size:0x4C +fn_1_7C20 = .text:0x00007C20; // type:function size:0x10 +fn_1_7C30 = .text:0x00007C30; // type:function size:0x20 +fn_1_7C50 = .text:0x00007C50; // type:function size:0x10 +fn_1_7C60 = .text:0x00007C60; // type:function size:0xA4 +fn_1_7D04 = .text:0x00007D04; // type:function size:0x274 +fn_1_7F78 = .text:0x00007F78; // type:function size:0x15C +fn_1_80D4 = .text:0x000080D4; // type:function size:0x180 +fn_1_8254 = .text:0x00008254; // type:function size:0x10 +fn_1_8264 = .text:0x00008264; // type:function size:0x10 +fn_1_8274 = .text:0x00008274; // type:function size:0x5C +fn_1_82D0 = .text:0x000082D0; // type:function size:0x1A0 +fn_1_8470 = .text:0x00008470; // type:function size:0x200 +fn_1_8670 = .text:0x00008670; // type:function size:0x30 +fn_1_86A0 = .text:0x000086A0; // type:function size:0x8CC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x9 data:byte +lbl_1_rodata_A9 = .rodata:0x000000A9; // type:object size:0xB data:byte +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0xC +lbl_1_data_10 = .data:0x00000010; // type:object size:0xC +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x28 +lbl_1_data_44 = .data:0x00000044; // type:object size:0x24 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x4 data:4byte +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x20 +jumptable_1_data_8C = .data:0x0000008C; // type:object size:0x1C scope:local +jumptable_1_data_A8 = .data:0x000000A8; // type:object size:0x1C scope:local +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x20 +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x30 +lbl_1_data_114 = .data:0x00000114; // type:object size:0x20 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x20 +lbl_1_data_154 = .data:0x00000154; // type:object size:0x4 data:4byte +lbl_1_data_158 = .data:0x00000158; // type:object size:0xC0 +lbl_1_data_218 = .data:0x00000218; // type:object size:0xC0 +lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x78 +lbl_1_data_350 = .data:0x00000350; // type:object size:0x78 +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0xC0 +lbl_1_data_488 = .data:0x00000488; // type:object size:0xC0 +lbl_1_data_548 = .data:0x00000548; // type:object size:0x78 +lbl_1_data_5C0 = .data:0x000005C0; // type:object size:0x78 +lbl_1_data_638 = .data:0x00000638; // type:object size:0x108 +lbl_1_data_740 = .data:0x00000740; // type:object size:0x108 +lbl_1_data_848 = .data:0x00000848; // type:object size:0x108 +lbl_1_data_950 = .data:0x00000950; // type:object size:0x108 +lbl_1_data_A58 = .data:0x00000A58; // type:object size:0x30 +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x48 +lbl_1_data_AD0 = .data:0x00000AD0; // type:object size:0xC data:4byte +lbl_1_data_ADC = .data:0x00000ADC; // type:object size:0xC data:4byte +lbl_1_data_AE8 = .data:0x00000AE8; // type:object size:0x14 data:4byte +lbl_1_data_AFC = .data:0x00000AFC; // type:object size:0x18 +lbl_1_data_B14 = .data:0x00000B14; // type:object size:0x18 +lbl_1_data_B2C = .data:0x00000B2C; // type:object size:0x48 +lbl_1_data_B74 = .data:0x00000B74; // type:object size:0x30 +lbl_1_data_BA4 = .data:0x00000BA4; // type:object size:0x18 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x2 data:2byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:2byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0xC data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x2 data:2byte +lbl_1_bss_2A = .bss:0x0000002A; // type:object size:0x2 data:2byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_2E = .bss:0x0000002E; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x2 data:2byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x10 +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x8 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x18 +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:float +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x14 +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m404Dll/splits.txt b/config/GMPJ01_00/rels/m404Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m404Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m404Dll/symbols.txt b/config/GMPJ01_00/rels/m404Dll/symbols.txt new file mode 100644 index 00000000..b3dd1045 --- /dev/null +++ b/config/GMPJ01_00/rels/m404Dll/symbols.txt @@ -0,0 +1,154 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x2DC +fn_1_37C = .text:0x0000037C; // type:function size:0x10 +fn_1_38C = .text:0x0000038C; // type:function size:0x10 +fn_1_39C = .text:0x0000039C; // type:function size:0x64 +fn_1_400 = .text:0x00000400; // type:function size:0x384 +fn_1_784 = .text:0x00000784; // type:function size:0x5C +fn_1_7E0 = .text:0x000007E0; // type:function size:0x2BC +fn_1_A9C = .text:0x00000A9C; // type:function size:0x234 +fn_1_CD0 = .text:0x00000CD0; // type:function size:0x30 +fn_1_D00 = .text:0x00000D00; // type:function size:0xEC +fn_1_DEC = .text:0x00000DEC; // type:function size:0x5C +fn_1_E48 = .text:0x00000E48; // type:function size:0x8C +fn_1_ED4 = .text:0x00000ED4; // type:function size:0x9C +fn_1_F70 = .text:0x00000F70; // type:function size:0x1F0 +fn_1_1160 = .text:0x00001160; // type:function size:0x1E4 +fn_1_1344 = .text:0x00001344; // type:function size:0x7B8 +fn_1_1AFC = .text:0x00001AFC; // type:function size:0x184 +fn_1_1C80 = .text:0x00001C80; // type:function size:0xA8 +fn_1_1D28 = .text:0x00001D28; // type:function size:0xD0 +fn_1_1DF8 = .text:0x00001DF8; // type:function size:0x38C +fn_1_2184 = .text:0x00002184; // type:function size:0xD38 +fn_1_2EBC = .text:0x00002EBC; // type:function size:0xB7C +fn_1_3A38 = .text:0x00003A38; // type:function size:0x3F4 +fn_1_3E2C = .text:0x00003E2C; // type:function size:0x104 +fn_1_3F30 = .text:0x00003F30; // type:function size:0x52C +fn_1_445C = .text:0x0000445C; // type:function size:0x44 +fn_1_44A0 = .text:0x000044A0; // type:function size:0x7DC +fn_1_4C7C = .text:0x00004C7C; // type:function size:0x2D0 +fn_1_4F4C = .text:0x00004F4C; // type:function size:0x32C +fn_1_5278 = .text:0x00005278; // type:function size:0x2C4 +fn_1_553C = .text:0x0000553C; // type:function size:0x5C +fn_1_5598 = .text:0x00005598; // type:function size:0x58 +fn_1_55F0 = .text:0x000055F0; // type:function size:0x4 +fn_1_55F4 = .text:0x000055F4; // type:function size:0x1AC +fn_1_57A0 = .text:0x000057A0; // type:function size:0x4 +fn_1_57A4 = .text:0x000057A4; // type:function size:0x140 +fn_1_58E4 = .text:0x000058E4; // type:function size:0x480 +fn_1_5D64 = .text:0x00005D64; // type:function size:0x110 +fn_1_5E74 = .text:0x00005E74; // type:function size:0x208 +fn_1_607C = .text:0x0000607C; // type:function size:0x1CC +fn_1_6248 = .text:0x00006248; // type:function size:0x1F8 +fn_1_6440 = .text:0x00006440; // type:function size:0x4C +fn_1_648C = .text:0x0000648C; // type:function size:0x250 +fn_1_66DC = .text:0x000066DC; // type:function size:0x5AC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:2byte +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x20 data:byte +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x1 data:byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x1 data:byte +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x248 +lbl_1_data_248 = .data:0x00000248; // type:object size:0x260 +lbl_1_data_4A8 = .data:0x000004A8; // type:object size:0x290 +lbl_1_data_738 = .data:0x00000738; // type:object size:0x38 data:float +lbl_1_data_770 = .data:0x00000770; // type:object size:0xC data:float +lbl_1_data_77C = .data:0x0000077C; // type:object size:0xC data:float +lbl_1_data_788 = .data:0x00000788; // type:object size:0x4 +lbl_1_data_78C = .data:0x0000078C; // type:object size:0xC +lbl_1_data_798 = .data:0x00000798; // type:object size:0xC +lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x24 +lbl_1_data_7C8 = .data:0x000007C8; // type:object size:0x4 data:4byte +jumptable_1_data_7CC = .data:0x000007CC; // type:object size:0x28 scope:local +lbl_1_data_7F4 = .data:0x000007F4; // type:object size:0x1C data:string +lbl_1_data_810 = .data:0x00000810; // type:object size:0xC +lbl_1_data_81C = .data:0x0000081C; // type:object size:0x30 +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x20 +lbl_1_data_86C = .data:0x0000086C; // type:object size:0x20 +lbl_1_data_88C = .data:0x0000088C; // type:object size:0x4 data:4byte +lbl_1_data_890 = .data:0x00000890; // type:object size:0x28 +lbl_1_data_8B8 = .data:0x000008B8; // type:object size:0x20 +lbl_1_data_8D8 = .data:0x000008D8; // type:object size:0x10 +lbl_1_data_8E8 = .data:0x000008E8; // type:object size:0xC +lbl_1_data_8F4 = .data:0x000008F4; // type:object size:0x8 data:wstring +lbl_1_data_8FC = .data:0x000008FC; // type:object size:0x18 +lbl_1_data_914 = .data:0x00000914; // type:object size:0x1C +lbl_1_data_930 = .data:0x00000930; // type:object size:0x20 +lbl_1_data_950 = .data:0x00000950; // type:object size:0x20 +lbl_1_data_970 = .data:0x00000970; // type:object size:0x7 data:string +lbl_1_data_977 = .data:0x00000977; // type:object size:0x7 data:string +lbl_1_data_97E = .data:0x0000097E; // type:object size:0x7 data:string +lbl_1_data_985 = .data:0x00000985; // type:object size:0x7 data:string +lbl_1_data_98C = .data:0x0000098C; // type:object size:0x10 +lbl_1_data_99C = .data:0x0000099C; // type:object size:0x10 +lbl_1_data_9AC = .data:0x000009AC; // type:object size:0x30 +lbl_1_data_9DC = .data:0x000009DC; // type:object size:0x18 data:4byte +lbl_1_data_9F4 = .data:0x000009F4; // type:object size:0x18 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0xC data:float +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x10 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x10 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m405Dll/splits.txt b/config/GMPJ01_00/rels/m405Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m405Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m405Dll/symbols.txt b/config/GMPJ01_00/rels/m405Dll/symbols.txt new file mode 100644 index 00000000..d64b7049 --- /dev/null +++ b/config/GMPJ01_00/rels/m405Dll/symbols.txt @@ -0,0 +1,254 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x218 +fn_1_798 = .text:0x00000798; // type:function size:0x254 +fn_1_9EC = .text:0x000009EC; // type:function size:0x54 +fn_1_A40 = .text:0x00000A40; // type:function size:0x10C +fn_1_B4C = .text:0x00000B4C; // type:function size:0x6A8 +fn_1_11F4 = .text:0x000011F4; // type:function size:0x15C +fn_1_1350 = .text:0x00001350; // type:function size:0x8C +fn_1_13DC = .text:0x000013DC; // type:function size:0x334 +fn_1_1710 = .text:0x00001710; // type:function size:0x350 +fn_1_1A60 = .text:0x00001A60; // type:function size:0x2B8 +fn_1_1D18 = .text:0x00001D18; // type:function size:0x58 +fn_1_1D70 = .text:0x00001D70; // type:function size:0xB0 +fn_1_1E20 = .text:0x00001E20; // type:function size:0x104 +fn_1_1F24 = .text:0x00001F24; // type:function size:0x34 +fn_1_1F58 = .text:0x00001F58; // type:function size:0x6C +fn_1_1FC4 = .text:0x00001FC4; // type:function size:0x3F0 +fn_1_23B4 = .text:0x000023B4; // type:function size:0xCC +fn_1_2480 = .text:0x00002480; // type:function size:0x88 +fn_1_2508 = .text:0x00002508; // type:function size:0x20C +fn_1_2714 = .text:0x00002714; // type:function size:0xF8 +fn_1_280C = .text:0x0000280C; // type:function size:0x2A0 +fn_1_2AAC = .text:0x00002AAC; // type:function size:0xCF8 +fn_1_37A4 = .text:0x000037A4; // type:function size:0x778 +fn_1_3F1C = .text:0x00003F1C; // type:function size:0x24 +fn_1_3F40 = .text:0x00003F40; // type:function size:0xE4 +fn_1_4024 = .text:0x00004024; // type:function size:0x6DC +fn_1_4700 = .text:0x00004700; // type:function size:0x828 +fn_1_4F28 = .text:0x00004F28; // type:function size:0x4DC +fn_1_5404 = .text:0x00005404; // type:function size:0x12C +fn_1_5530 = .text:0x00005530; // type:function size:0x4C +fn_1_557C = .text:0x0000557C; // type:function size:0xE8 +fn_1_5664 = .text:0x00005664; // type:function size:0xF8 +_prolog = .text:0x0000575C; // type:function size:0x54 scope:global +_epilog = .text:0x000057B0; // type:function size:0x4C scope:global +fn_1_57FC = .text:0x000057FC; // type:function size:0xA4 +fn_1_58A0 = .text:0x000058A0; // type:function size:0x288 +fn_1_5B28 = .text:0x00005B28; // type:function size:0x214 +fn_1_5D3C = .text:0x00005D3C; // type:function size:0x90 +fn_1_5DCC = .text:0x00005DCC; // type:function size:0x274 +fn_1_6040 = .text:0x00006040; // type:function size:0x57C +fn_1_65BC = .text:0x000065BC; // type:function size:0x26C +fn_1_6828 = .text:0x00006828; // type:function size:0xA4 +fn_1_68CC = .text:0x000068CC; // type:function size:0x330 +fn_1_6BFC = .text:0x00006BFC; // type:function size:0xD90 +fn_1_798C = .text:0x0000798C; // type:function size:0x828 +fn_1_81B4 = .text:0x000081B4; // type:function size:0x93C +fn_1_8AF0 = .text:0x00008AF0; // type:function size:0x798 +fn_1_9288 = .text:0x00009288; // type:function size:0x1A88 +fn_1_AD10 = .text:0x0000AD10; // type:function size:0x3CC +fn_1_B0DC = .text:0x0000B0DC; // type:function size:0x4EC +fn_1_B5C8 = .text:0x0000B5C8; // type:function size:0x16C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x1 data:byte +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x1 data:byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x1 data:byte +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0x30 data:2byte +lbl_1_data_40 = .data:0x00000040; // type:object size:0x60 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x48 +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x1 data:byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x14 +lbl_1_data_100 = .data:0x00000100; // type:object size:0xC +lbl_1_data_10C = .data:0x0000010C; // type:object size:0xC data:4byte +lbl_1_data_118 = .data:0x00000118; // type:object size:0xC data:4byte +lbl_1_data_124 = .data:0x00000124; // type:object size:0xC data:4byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0xC data:4byte +lbl_1_data_13C = .data:0x0000013C; // type:object size:0xC data:4byte +lbl_1_data_148 = .data:0x00000148; // type:object size:0xC data:4byte +lbl_1_data_154 = .data:0x00000154; // type:object size:0xC +lbl_1_data_160 = .data:0x00000160; // type:object size:0xC +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x4 +lbl_1_data_170 = .data:0x00000170; // type:object size:0xC +lbl_1_data_17C = .data:0x0000017C; // type:object size:0xC +lbl_1_data_188 = .data:0x00000188; // type:object size:0x100 +lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x20 +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x10 +lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0x50 +lbl_1_data_310 = .data:0x00000310; // type:object size:0x18 data:4byte +lbl_1_data_328 = .data:0x00000328; // type:object size:0x14 +lbl_1_data_33C = .data:0x0000033C; // type:object size:0xA +lbl_1_data_346 = .data:0x00000346; // type:object size:0xA +lbl_1_data_350 = .data:0x00000350; // type:object size:0x8 +lbl_1_data_358 = .data:0x00000358; // type:object size:0x8 +lbl_1_data_360 = .data:0x00000360; // type:object size:0x8 +lbl_1_data_368 = .data:0x00000368; // type:object size:0x8 +lbl_1_data_370 = .data:0x00000370; // type:object size:0x50 +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x50 +lbl_1_data_410 = .data:0x00000410; // type:object size:0xC data:string +lbl_1_data_41C = .data:0x0000041C; // type:object size:0x16 data:string +lbl_1_data_432 = .data:0x00000432; // type:object size:0x1D data:string +lbl_1_data_44F = .data:0x0000044F; // type:object size:0x1D +jumptable_1_data_46C = .data:0x0000046C; // type:object size:0x24 scope:local +lbl_1_data_490 = .data:0x00000490; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x18 data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x18 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x18 data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x18 data:float +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:float +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:float +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:float +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x2 data:2byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x2 data:2byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x8 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x1 data:byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x500 data:float +lbl_1_bss_5AC = .bss:0x000005AC; // type:object size:0x2C data:4byte +lbl_1_bss_5D8 = .bss:0x000005D8; // type:object size:0x4 data:4byte +lbl_1_bss_5DC = .bss:0x000005DC; // type:object size:0x4 data:4byte +lbl_1_bss_5E0 = .bss:0x000005E0; // type:object size:0x4 data:4byte +lbl_1_bss_5E4 = .bss:0x000005E4; // type:object size:0x4 data:4byte +lbl_1_bss_5E8 = .bss:0x000005E8; // type:object size:0x100 +lbl_1_bss_6E8 = .bss:0x000006E8; // type:object size:0x40 data:4byte +lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x4 data:float +lbl_1_bss_72C = .bss:0x0000072C; // type:object size:0x4 data:4byte +lbl_1_bss_730 = .bss:0x00000730; // type:object size:0x4 data:4byte +lbl_1_bss_734 = .bss:0x00000734; // type:object size:0x2 data:2byte +lbl_1_bss_736 = .bss:0x00000736; // type:object size:0x2 data:2byte +lbl_1_bss_738 = .bss:0x00000738; // type:object size:0x4 data:4byte +lbl_1_bss_73C = .bss:0x0000073C; // type:object size:0x4 data:4byte +lbl_1_bss_740 = .bss:0x00000740; // type:object size:0x4 data:4byte +lbl_1_bss_744 = .bss:0x00000744; // type:object size:0xC data:float +lbl_1_bss_750 = .bss:0x00000750; // type:object size:0xC data:4byte +lbl_1_bss_75C = .bss:0x0000075C; // type:object size:0xC data:float +lbl_1_bss_768 = .bss:0x00000768; // type:object size:0xC data:4byte +lbl_1_bss_774 = .bss:0x00000774; // type:object size:0x4 data:4byte +lbl_1_bss_778 = .bss:0x00000778; // type:object size:0x18 data:4byte +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0xC data:4byte diff --git a/config/GMPJ01_00/rels/m406Dll/splits.txt b/config/GMPJ01_00/rels/m406Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m406Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m406Dll/symbols.txt b/config/GMPJ01_00/rels/m406Dll/symbols.txt new file mode 100644 index 00000000..67393891 --- /dev/null +++ b/config/GMPJ01_00/rels/m406Dll/symbols.txt @@ -0,0 +1,434 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x318 +fn_1_3B8 = .text:0x000003B8; // type:function size:0x54 +fn_1_40C = .text:0x0000040C; // type:function size:0xD00 +fn_1_110C = .text:0x0000110C; // type:function size:0x5C +fn_1_1168 = .text:0x00001168; // type:function size:0xC4 +fn_1_122C = .text:0x0000122C; // type:function size:0x10 +fn_1_123C = .text:0x0000123C; // type:function size:0x38 +fn_1_1274 = .text:0x00001274; // type:function size:0x10 +fn_1_1284 = .text:0x00001284; // type:function size:0x38 +fn_1_12BC = .text:0x000012BC; // type:function size:0x84 +fn_1_1340 = .text:0x00001340; // type:function size:0x1DC +fn_1_151C = .text:0x0000151C; // type:function size:0x4 +fn_1_1520 = .text:0x00001520; // type:function size:0x4 +fn_1_1524 = .text:0x00001524; // type:function size:0xAC +fn_1_15D0 = .text:0x000015D0; // type:function size:0x26C +fn_1_183C = .text:0x0000183C; // type:function size:0x35C +fn_1_1B98 = .text:0x00001B98; // type:function size:0x10 +fn_1_1BA8 = .text:0x00001BA8; // type:function size:0x118 +fn_1_1CC0 = .text:0x00001CC0; // type:function size:0x250 +fn_1_1F10 = .text:0x00001F10; // type:function size:0x3F8 +fn_1_2308 = .text:0x00002308; // type:function size:0x624 +fn_1_292C = .text:0x0000292C; // type:function size:0x2C0 +fn_1_2BEC = .text:0x00002BEC; // type:function size:0x38 +fn_1_2C24 = .text:0x00002C24; // type:function size:0x440 +fn_1_3064 = .text:0x00003064; // type:function size:0xF4 +fn_1_3158 = .text:0x00003158; // type:function size:0xF2C +fn_1_4084 = .text:0x00004084; // type:function size:0x4E4 +fn_1_4568 = .text:0x00004568; // type:function size:0x54 +fn_1_45BC = .text:0x000045BC; // type:function size:0x3A8 +fn_1_4964 = .text:0x00004964; // type:function size:0x1810 +fn_1_6174 = .text:0x00006174; // type:function size:0x190 +fn_1_6304 = .text:0x00006304; // type:function size:0x1F4 +fn_1_64F8 = .text:0x000064F8; // type:function size:0x1FC +fn_1_66F4 = .text:0x000066F4; // type:function size:0xD8 +fn_1_67CC = .text:0x000067CC; // type:function size:0x1A0 +fn_1_696C = .text:0x0000696C; // type:function size:0x54 +fn_1_69C0 = .text:0x000069C0; // type:function size:0x84 +fn_1_6A44 = .text:0x00006A44; // type:function size:0x118 +fn_1_6B5C = .text:0x00006B5C; // type:function size:0x58 +fn_1_6BB4 = .text:0x00006BB4; // type:function size:0x370 +fn_1_6F24 = .text:0x00006F24; // type:function size:0xD8 +fn_1_6FFC = .text:0x00006FFC; // type:function size:0x180 +fn_1_717C = .text:0x0000717C; // type:function size:0x48 +fn_1_71C4 = .text:0x000071C4; // type:function size:0x134 +fn_1_72F8 = .text:0x000072F8; // type:function size:0x3B0 +fn_1_76A8 = .text:0x000076A8; // type:function size:0x70 +fn_1_7718 = .text:0x00007718; // type:function size:0xD8 +fn_1_77F0 = .text:0x000077F0; // type:function size:0x1C0 +fn_1_79B0 = .text:0x000079B0; // type:function size:0x48 +fn_1_79F8 = .text:0x000079F8; // type:function size:0x134 +fn_1_7B2C = .text:0x00007B2C; // type:function size:0x70 +fn_1_7B9C = .text:0x00007B9C; // type:function size:0xB0 +fn_1_7C4C = .text:0x00007C4C; // type:function size:0x160 +fn_1_7DAC = .text:0x00007DAC; // type:function size:0x4 +fn_1_7DB0 = .text:0x00007DB0; // type:function size:0x120 +fn_1_7ED0 = .text:0x00007ED0; // type:function size:0xB0 +fn_1_7F80 = .text:0x00007F80; // type:function size:0x180 +fn_1_8100 = .text:0x00008100; // type:function size:0x4 +fn_1_8104 = .text:0x00008104; // type:function size:0x140 +fn_1_8244 = .text:0x00008244; // type:function size:0x84 +fn_1_82C8 = .text:0x000082C8; // type:function size:0xCD0 +fn_1_8F98 = .text:0x00008F98; // type:function size:0x248 +fn_1_91E0 = .text:0x000091E0; // type:function size:0x2DC +fn_1_94BC = .text:0x000094BC; // type:function size:0x4 +fn_1_94C0 = .text:0x000094C0; // type:function size:0xAB8 +fn_1_9F78 = .text:0x00009F78; // type:function size:0x300 +fn_1_A278 = .text:0x0000A278; // type:function size:0x50 +fn_1_A2C8 = .text:0x0000A2C8; // type:function size:0xAEC +fn_1_ADB4 = .text:0x0000ADB4; // type:function size:0x350 +fn_1_B104 = .text:0x0000B104; // type:function size:0xDC +fn_1_B1E0 = .text:0x0000B1E0; // type:function size:0x7C +fn_1_B25C = .text:0x0000B25C; // type:function size:0x1C0 +fn_1_B41C = .text:0x0000B41C; // type:function size:0x54 +fn_1_B470 = .text:0x0000B470; // type:function size:0x4 +fn_1_B474 = .text:0x0000B474; // type:function size:0x488 +fn_1_B8FC = .text:0x0000B8FC; // type:function size:0x31C +fn_1_BC18 = .text:0x0000BC18; // type:function size:0x8DC +fn_1_C4F4 = .text:0x0000C4F4; // type:function size:0x378 +fn_1_C86C = .text:0x0000C86C; // type:function size:0x4C8 +fn_1_CD34 = .text:0x0000CD34; // type:function size:0xA4 +fn_1_CDD8 = .text:0x0000CDD8; // type:function size:0x14C +fn_1_CF24 = .text:0x0000CF24; // type:function size:0x74 +fn_1_CF98 = .text:0x0000CF98; // type:function size:0xD4 +fn_1_D06C = .text:0x0000D06C; // type:function size:0xD0 +fn_1_D13C = .text:0x0000D13C; // type:function size:0x34C +fn_1_D488 = .text:0x0000D488; // type:function size:0x90 +fn_1_D518 = .text:0x0000D518; // type:function size:0xB4 +fn_1_D5CC = .text:0x0000D5CC; // type:function size:0x90 +fn_1_D65C = .text:0x0000D65C; // type:function size:0x254 +fn_1_D8B0 = .text:0x0000D8B0; // type:function size:0x5C +fn_1_D90C = .text:0x0000D90C; // type:function size:0x470 +fn_1_DD7C = .text:0x0000DD7C; // type:function size:0xE4 +fn_1_DE60 = .text:0x0000DE60; // type:function size:0x3B4 +fn_1_E214 = .text:0x0000E214; // type:function size:0xF80 +fn_1_F194 = .text:0x0000F194; // type:function size:0x500 +fn_1_F694 = .text:0x0000F694; // type:function size:0x3BC +fn_1_FA50 = .text:0x0000FA50; // type:function size:0xC0C +fn_1_1065C = .text:0x0001065C; // type:function size:0xE8 +fn_1_10744 = .text:0x00010744; // type:function size:0x914 +fn_1_11058 = .text:0x00011058; // type:function size:0x448 +fn_1_114A0 = .text:0x000114A0; // type:function size:0x31C +fn_1_117BC = .text:0x000117BC; // type:function size:0x228 +fn_1_119E4 = .text:0x000119E4; // type:function size:0x5E0 +fn_1_11FC4 = .text:0x00011FC4; // type:function size:0x1D0 +fn_1_12194 = .text:0x00012194; // type:function size:0xDC +fn_1_12270 = .text:0x00012270; // type:function size:0x4EC +fn_1_1275C = .text:0x0001275C; // type:function size:0x5C +fn_1_127B8 = .text:0x000127B8; // type:function size:0x22C +fn_1_129E4 = .text:0x000129E4; // type:function size:0xD4 +fn_1_12AB8 = .text:0x00012AB8; // type:function size:0x48 +fn_1_12B00 = .text:0x00012B00; // type:function size:0x38 +fn_1_12B38 = .text:0x00012B38; // type:function size:0x8C +fn_1_12BC4 = .text:0x00012BC4; // type:function size:0xAE4 +fn_1_136A8 = .text:0x000136A8; // type:function size:0x4 +fn_1_136AC = .text:0x000136AC; // type:function size:0x3DC +fn_1_13A88 = .text:0x00013A88; // type:function size:0x6C +fn_1_13AF4 = .text:0x00013AF4; // type:function size:0x11C +fn_1_13C10 = .text:0x00013C10; // type:function size:0x7E4 +fn_1_143F4 = .text:0x000143F4; // type:function size:0x330 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x1 data:byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x8C data:float +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x24 +jumptable_1_data_B0 = .data:0x000000B0; // type:object size:0x40 scope:local +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x348 +lbl_1_data_438 = .data:0x00000438; // type:object size:0x348 +lbl_1_data_780 = .data:0x00000780; // type:object size:0x24 data:float +lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x2 data:2byte +lbl_1_data_7A8 = .data:0x000007A8; // type:object size:0x1C +lbl_1_data_7C4 = .data:0x000007C4; // type:object size:0x1C +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x18 +lbl_1_data_7F8 = .data:0x000007F8; // type:object size:0xC +lbl_1_data_804 = .data:0x00000804; // type:object size:0xC +lbl_1_data_810 = .data:0x00000810; // type:object size:0x4 +lbl_1_data_814 = .data:0x00000814; // type:object size:0xC +lbl_1_data_820 = .data:0x00000820; // type:object size:0xC +lbl_1_data_82C = .data:0x0000082C; // type:object size:0xC +lbl_1_data_838 = .data:0x00000838; // type:object size:0xC +lbl_1_data_844 = .data:0x00000844; // type:object size:0xC +lbl_1_data_850 = .data:0x00000850; // type:object size:0x20 +lbl_1_data_870 = .data:0x00000870; // type:object size:0x1F data:string +lbl_1_data_88F = .data:0x0000088F; // type:object size:0x1 data:byte +lbl_1_data_893 = .data:0x00000893; // type:object size:0x1 data:byte +lbl_1_data_897 = .data:0x00000897; // type:object size:0x1 data:byte +lbl_1_data_89B = .data:0x0000089B; // type:object size:0x1 data:byte +lbl_1_data_89F = .data:0x0000089F; // type:object size:0x5 data:byte +lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x10 +lbl_1_data_8B4 = .data:0x000008B4; // type:object size:0x10 +lbl_1_data_8C4 = .data:0x000008C4; // type:object size:0xC +lbl_1_data_8D0 = .data:0x000008D0; // type:object size:0xC +lbl_1_data_8DC = .data:0x000008DC; // type:object size:0x4 +lbl_1_data_8E0 = .data:0x000008E0; // type:object size:0x30 +lbl_1_data_910 = .data:0x00000910; // type:object size:0x20 +lbl_1_data_930 = .data:0x00000930; // type:object size:0x30 +lbl_1_data_960 = .data:0x00000960; // type:object size:0x348 +lbl_1_data_CA8 = .data:0x00000CA8; // type:object size:0x348 +lbl_1_data_FF0 = .data:0x00000FF0; // type:object size:0x10 +lbl_1_data_1000 = .data:0x00001000; // type:object size:0x19 data:string +lbl_1_data_1019 = .data:0x00001019; // type:object size:0x19 data:string +lbl_1_data_1032 = .data:0x00001032; // type:object size:0x1A data:string +lbl_1_data_104C = .data:0x0000104C; // type:object size:0x1C +lbl_1_data_1068 = .data:0x00001068; // type:object size:0x10 +lbl_1_data_1078 = .data:0x00001078; // type:object size:0x28 +lbl_1_data_10A0 = .data:0x000010A0; // type:object size:0x80 +lbl_1_data_1120 = .data:0x00001120; // type:object size:0x20 +lbl_1_data_1140 = .data:0x00001140; // type:object size:0x8 +lbl_1_data_1148 = .data:0x00001148; // type:object size:0x1C data:string +lbl_1_data_1164 = .data:0x00001164; // type:object size:0x90 +lbl_1_data_11F4 = .data:0x000011F4; // type:object size:0x4 data:4byte +lbl_1_data_11F8 = .data:0x000011F8; // type:object size:0x20 +lbl_1_data_1218 = .data:0x00001218; // type:object size:0x18 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0xC data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x50 +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:4byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x8 data:4byte +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x18 data:float +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x8 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:float +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0xC0 +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0x4 data:4byte +lbl_1_bss_1C8 = .bss:0x000001C8; // type:object size:0x4 data:4byte +lbl_1_bss_1CC = .bss:0x000001CC; // type:object size:0x4 data:4byte +lbl_1_bss_1D0 = .bss:0x000001D0; // type:object size:0xC +lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0xC +lbl_1_bss_1E8 = .bss:0x000001E8; // type:object size:0xC +lbl_1_bss_1F4 = .bss:0x000001F4; // type:object size:0x2 data:2byte +lbl_1_bss_1F6 = .bss:0x000001F6; // type:object size:0x2 data:2byte +lbl_1_bss_1F8 = .bss:0x000001F8; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m407dll/splits.txt b/config/GMPJ01_00/rels/m407dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m407dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m407dll/symbols.txt b/config/GMPJ01_00/rels/m407dll/symbols.txt new file mode 100644 index 00000000..4fb3dbd8 --- /dev/null +++ b/config/GMPJ01_00/rels/m407dll/symbols.txt @@ -0,0 +1,271 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x54 +fn_1_F4 = .text:0x000000F4; // type:function size:0xA0 +fn_1_194 = .text:0x00000194; // type:function size:0x50 +fn_1_1E4 = .text:0x000001E4; // type:function size:0x54 +fn_1_238 = .text:0x00000238; // type:function size:0x54 +fn_1_28C = .text:0x0000028C; // type:function size:0x54 +fn_1_2E0 = .text:0x000002E0; // type:function size:0x54 +fn_1_334 = .text:0x00000334; // type:function size:0x54 +fn_1_388 = .text:0x00000388; // type:function size:0x3C +fn_1_3C4 = .text:0x000003C4; // type:function size:0x40 +fn_1_404 = .text:0x00000404; // type:function size:0xBC +fn_1_4C0 = .text:0x000004C0; // type:function size:0x48 +fn_1_508 = .text:0x00000508; // type:function size:0x34 +fn_1_53C = .text:0x0000053C; // type:function size:0x2C +fn_1_568 = .text:0x00000568; // type:function size:0xC0 +fn_1_628 = .text:0x00000628; // type:function size:0x24 +fn_1_64C = .text:0x0000064C; // type:function size:0x350 +fn_1_99C = .text:0x0000099C; // type:function size:0x80 +fn_1_A1C = .text:0x00000A1C; // type:function size:0x6C +fn_1_A88 = .text:0x00000A88; // type:function size:0x4 +fn_1_A8C = .text:0x00000A8C; // type:function size:0x1CC +fn_1_C58 = .text:0x00000C58; // type:function size:0x9C +fn_1_CF4 = .text:0x00000CF4; // type:function size:0xC0 +fn_1_DB4 = .text:0x00000DB4; // type:function size:0x1D8 +fn_1_F8C = .text:0x00000F8C; // type:function size:0xE8 +fn_1_1074 = .text:0x00001074; // type:function size:0x158 +fn_1_11CC = .text:0x000011CC; // type:function size:0x218 +fn_1_13E4 = .text:0x000013E4; // type:function size:0x7C +fn_1_1460 = .text:0x00001460; // type:function size:0x90 +fn_1_14F0 = .text:0x000014F0; // type:function size:0xE8 +fn_1_15D8 = .text:0x000015D8; // type:function size:0x54 +fn_1_162C = .text:0x0000162C; // type:function size:0x460 +fn_1_1A8C = .text:0x00001A8C; // type:function size:0x90 +fn_1_1B1C = .text:0x00001B1C; // type:function size:0x18C +fn_1_1CA8 = .text:0x00001CA8; // type:function size:0x4 +fn_1_1CAC = .text:0x00001CAC; // type:function size:0x28 +fn_1_1CD4 = .text:0x00001CD4; // type:function size:0x34 +fn_1_1D08 = .text:0x00001D08; // type:function size:0x28 +fn_1_1D30 = .text:0x00001D30; // type:function size:0x34 +fn_1_1D64 = .text:0x00001D64; // type:function size:0x10 +fn_1_1D74 = .text:0x00001D74; // type:function size:0x14 +fn_1_1D88 = .text:0x00001D88; // type:function size:0x28 +fn_1_1DB0 = .text:0x00001DB0; // type:function size:0x16C +fn_1_1F1C = .text:0x00001F1C; // type:function size:0x108 +fn_1_2024 = .text:0x00002024; // type:function size:0x330 +fn_1_2354 = .text:0x00002354; // type:function size:0x19C +fn_1_24F0 = .text:0x000024F0; // type:function size:0x74 +fn_1_2564 = .text:0x00002564; // type:function size:0x5C +fn_1_25C0 = .text:0x000025C0; // type:function size:0x10C +fn_1_26CC = .text:0x000026CC; // type:function size:0xA4 +fn_1_2770 = .text:0x00002770; // type:function size:0x110 +fn_1_2880 = .text:0x00002880; // type:function size:0x38 +fn_1_28B8 = .text:0x000028B8; // type:function size:0x1C +fn_1_28D4 = .text:0x000028D4; // type:function size:0x10 +fn_1_28E4 = .text:0x000028E4; // type:function size:0x28 +fn_1_290C = .text:0x0000290C; // type:function size:0x24 +fn_1_2930 = .text:0x00002930; // type:function size:0x24C +fn_1_2B7C = .text:0x00002B7C; // type:function size:0x67C +fn_1_31F8 = .text:0x000031F8; // type:function size:0x168 +fn_1_3360 = .text:0x00003360; // type:function size:0x4 +fn_1_3364 = .text:0x00003364; // type:function size:0x140 +fn_1_34A4 = .text:0x000034A4; // type:function size:0x22C +fn_1_36D0 = .text:0x000036D0; // type:function size:0xE0 +fn_1_37B0 = .text:0x000037B0; // type:function size:0x318 +fn_1_3AC8 = .text:0x00003AC8; // type:function size:0xA0 +fn_1_3B68 = .text:0x00003B68; // type:function size:0x50 +fn_1_3BB8 = .text:0x00003BB8; // type:function size:0x170 +fn_1_3D28 = .text:0x00003D28; // type:function size:0x24 +fn_1_3D4C = .text:0x00003D4C; // type:function size:0xE8 +fn_1_3E34 = .text:0x00003E34; // type:function size:0x148 +fn_1_3F7C = .text:0x00003F7C; // type:function size:0x74 +fn_1_3FF0 = .text:0x00003FF0; // type:function size:0x4 +fn_1_3FF4 = .text:0x00003FF4; // type:function size:0x100 +fn_1_40F4 = .text:0x000040F4; // type:function size:0xD8 +fn_1_41CC = .text:0x000041CC; // type:function size:0x328 +fn_1_44F4 = .text:0x000044F4; // type:function size:0x50 +fn_1_4544 = .text:0x00004544; // type:function size:0x118 +fn_1_465C = .text:0x0000465C; // type:function size:0x24 +fn_1_4680 = .text:0x00004680; // type:function size:0x6C +fn_1_46EC = .text:0x000046EC; // type:function size:0x11C +fn_1_4808 = .text:0x00004808; // type:function size:0x50 +fn_1_4858 = .text:0x00004858; // type:function size:0x4 +fn_1_485C = .text:0x0000485C; // type:function size:0x124 +fn_1_4980 = .text:0x00004980; // type:function size:0x1FC +fn_1_4B7C = .text:0x00004B7C; // type:function size:0xC0 +fn_1_4C3C = .text:0x00004C3C; // type:function size:0x30 +fn_1_4C6C = .text:0x00004C6C; // type:function size:0xA0 +fn_1_4D0C = .text:0x00004D0C; // type:function size:0x48 +fn_1_4D54 = .text:0x00004D54; // type:function size:0x138 +fn_1_4E8C = .text:0x00004E8C; // type:function size:0x120 +fn_1_4FAC = .text:0x00004FAC; // type:function size:0x13C +fn_1_50E8 = .text:0x000050E8; // type:function size:0xFC +fn_1_51E4 = .text:0x000051E4; // type:function size:0xC8 +fn_1_52AC = .text:0x000052AC; // type:function size:0x10C +fn_1_53B8 = .text:0x000053B8; // type:function size:0x1BC +fn_1_5574 = .text:0x00005574; // type:function size:0xBC +fn_1_5630 = .text:0x00005630; // type:function size:0x1D4 +fn_1_5804 = .text:0x00005804; // type:function size:0x27C +fn_1_5A80 = .text:0x00005A80; // type:function size:0x130 +fn_1_5BB0 = .text:0x00005BB0; // type:function size:0xAC +fn_1_5C5C = .text:0x00005C5C; // type:function size:0x270 +fn_1_5ECC = .text:0x00005ECC; // type:function size:0x74 +fn_1_5F40 = .text:0x00005F40; // type:function size:0x50 +fn_1_5F90 = .text:0x00005F90; // type:function size:0x24 +fn_1_5FB4 = .text:0x00005FB4; // type:function size:0x30 +fn_1_5FE4 = .text:0x00005FE4; // type:function size:0x1BC +fn_1_61A0 = .text:0x000061A0; // type:function size:0x78 +fn_1_6218 = .text:0x00006218; // type:function size:0x88 +fn_1_62A0 = .text:0x000062A0; // type:function size:0x164 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x20 +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC data:4byte +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x100 +lbl_1_data_100 = .data:0x00000100; // type:object size:0x20 +lbl_1_data_120 = .data:0x00000120; // type:object size:0x1C +lbl_1_data_13C = .data:0x0000013C; // type:object size:0x20 +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 +lbl_1_data_184 = .data:0x00000184; // type:object size:0x8 +lbl_1_data_18C = .data:0x0000018C; // type:object size:0xC +lbl_1_data_198 = .data:0x00000198; // type:object size:0x34 data:4byte +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x30 +lbl_1_data_1FC = .data:0x000001FC; // type:object size:0xC data:float +lbl_1_data_208 = .data:0x00000208; // type:object size:0xC +lbl_1_data_214 = .data:0x00000214; // type:object size:0x4 +lbl_1_data_218 = .data:0x00000218; // type:object size:0x10 +lbl_1_data_228 = .data:0x00000228; // type:object size:0x10 data:4byte +lbl_1_data_238 = .data:0x00000238; // type:object size:0x20 data:4byte +lbl_1_data_258 = .data:0x00000258; // type:object size:0x14 +lbl_1_data_26C = .data:0x0000026C; // type:object size:0xC +lbl_1_data_278 = .data:0x00000278; // type:object size:0x10 +lbl_1_data_288 = .data:0x00000288; // type:object size:0x14 +lbl_1_data_29C = .data:0x0000029C; // type:object size:0xC +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x34 +lbl_1_data_2DC = .data:0x000002DC; // type:object size:0x10 +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xC +lbl_1_data_2F8 = .data:0x000002F8; // type:object size:0xC +lbl_1_data_304 = .data:0x00000304; // type:object size:0x4 +lbl_1_data_308 = .data:0x00000308; // type:object size:0xC +lbl_1_data_314 = .data:0x00000314; // type:object size:0xC +lbl_1_data_320 = .data:0x00000320; // type:object size:0x4 +lbl_1_data_324 = .data:0x00000324; // type:object size:0xC +lbl_1_data_330 = .data:0x00000330; // type:object size:0xC +lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 +lbl_1_data_340 = .data:0x00000340; // type:object size:0xC +lbl_1_data_34C = .data:0x0000034C; // type:object size:0xC +lbl_1_data_358 = .data:0x00000358; // type:object size:0x8 +lbl_1_data_360 = .data:0x00000360; // type:object size:0xC +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x8 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x10 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x2 data:2byte +lbl_1_bss_3A = .bss:0x0000003A; // type:object size:0x2A +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte +lbl_1_bss_66 = .bss:0x00000066; // type:object size:0x2 data:2byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x1E30 data:2byte +lbl_1_bss_1E98 = .bss:0x00001E98; // type:object size:0xF18 +lbl_1_bss_2DB0 = .bss:0x00002DB0; // type:object size:0xA10 +lbl_1_bss_37C0 = .bss:0x000037C0; // type:object size:0x8 data:4byte +lbl_1_bss_37C8 = .bss:0x000037C8; // type:object size:0x10 +lbl_1_bss_37D8 = .bss:0x000037D8; // type:object size:0x8 data:4byte +lbl_1_bss_37E0 = .bss:0x000037E0; // type:object size:0x190 +lbl_1_bss_3970 = .bss:0x00003970; // type:object size:0x8 data:4byte +lbl_1_bss_3978 = .bss:0x00003978; // type:object size:0x2 data:2byte +lbl_1_bss_397C = .bss:0x0000397C; // type:object size:0x4 data:4byte +lbl_1_bss_3980 = .bss:0x00003980; // type:object size:0x8 data:4byte +lbl_1_bss_3988 = .bss:0x00003988; // type:object size:0x4 data:4byte +lbl_1_bss_398C = .bss:0x0000398C; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m408Dll/splits.txt b/config/GMPJ01_00/rels/m408Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m408Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m408Dll/symbols.txt b/config/GMPJ01_00/rels/m408Dll/symbols.txt new file mode 100644 index 00000000..0553b57b --- /dev/null +++ b/config/GMPJ01_00/rels/m408Dll/symbols.txt @@ -0,0 +1,549 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x47C +fn_1_51C = .text:0x0000051C; // type:function size:0x50 +fn_1_56C = .text:0x0000056C; // type:function size:0x438 +fn_1_9A4 = .text:0x000009A4; // type:function size:0x4C +fn_1_9F0 = .text:0x000009F0; // type:function size:0x50 +fn_1_A40 = .text:0x00000A40; // type:function size:0x298 +fn_1_CD8 = .text:0x00000CD8; // type:function size:0x220 +fn_1_EF8 = .text:0x00000EF8; // type:function size:0x3A8 +fn_1_12A0 = .text:0x000012A0; // type:function size:0x1EC +fn_1_148C = .text:0x0000148C; // type:function size:0x434 +fn_1_18C0 = .text:0x000018C0; // type:function size:0x80 +fn_1_1940 = .text:0x00001940; // type:function size:0x120 +fn_1_1A60 = .text:0x00001A60; // type:function size:0x98 +fn_1_1AF8 = .text:0x00001AF8; // type:function size:0xF0 +fn_1_1BE8 = .text:0x00001BE8; // type:function size:0x26C +fn_1_1E54 = .text:0x00001E54; // type:function size:0x68 +fn_1_1EBC = .text:0x00001EBC; // type:function size:0x718 +fn_1_25D4 = .text:0x000025D4; // type:function size:0x110 +fn_1_26E4 = .text:0x000026E4; // type:function size:0x8C8 +fn_1_2FAC = .text:0x00002FAC; // type:function size:0x924 +fn_1_38D0 = .text:0x000038D0; // type:function size:0x5B0 +fn_1_3E80 = .text:0x00003E80; // type:function size:0xBD8 +fn_1_4A58 = .text:0x00004A58; // type:function size:0x640 +fn_1_5098 = .text:0x00005098; // type:function size:0x44C +fn_1_54E4 = .text:0x000054E4; // type:function size:0x1A0 +fn_1_5684 = .text:0x00005684; // type:function size:0x41C +fn_1_5AA0 = .text:0x00005AA0; // type:function size:0x14 +fn_1_5AB4 = .text:0x00005AB4; // type:function size:0x318 +fn_1_5DCC = .text:0x00005DCC; // type:function size:0x430 +fn_1_61FC = .text:0x000061FC; // type:function size:0x344 +fn_1_6540 = .text:0x00006540; // type:function size:0x284 +fn_1_67C4 = .text:0x000067C4; // type:function size:0xA4 +fn_1_6868 = .text:0x00006868; // type:function size:0x10 +fn_1_6878 = .text:0x00006878; // type:function size:0x10 +fn_1_6888 = .text:0x00006888; // type:function size:0x10 +fn_1_6898 = .text:0x00006898; // type:function size:0x4 +fn_1_689C = .text:0x0000689C; // type:function size:0x8 +fn_1_68A4 = .text:0x000068A4; // type:function size:0x4 +fn_1_68A8 = .text:0x000068A8; // type:function size:0x1C +fn_1_68C4 = .text:0x000068C4; // type:function size:0x364 +fn_1_6C28 = .text:0x00006C28; // type:function size:0x324 +fn_1_6F4C = .text:0x00006F4C; // type:function size:0x66C +fn_1_75B8 = .text:0x000075B8; // type:function size:0x260 +fn_1_7818 = .text:0x00007818; // type:function size:0xC0 +fn_1_78D8 = .text:0x000078D8; // type:function size:0x748 +fn_1_8020 = .text:0x00008020; // type:function size:0x15C +fn_1_817C = .text:0x0000817C; // type:function size:0x348 +fn_1_84C4 = .text:0x000084C4; // type:function size:0x378 +fn_1_883C = .text:0x0000883C; // type:function size:0x11C +fn_1_8958 = .text:0x00008958; // type:function size:0xC8 +fn_1_8A20 = .text:0x00008A20; // type:function size:0x58C +fn_1_8FAC = .text:0x00008FAC; // type:function size:0x568 +fn_1_9514 = .text:0x00009514; // type:function size:0x25C +fn_1_9770 = .text:0x00009770; // type:function size:0x258 +fn_1_99C8 = .text:0x000099C8; // type:function size:0x96C +fn_1_A334 = .text:0x0000A334; // type:function size:0x48 +fn_1_A37C = .text:0x0000A37C; // type:function size:0x16C +fn_1_A4E8 = .text:0x0000A4E8; // type:function size:0x3AC +fn_1_A894 = .text:0x0000A894; // type:function size:0x760 +fn_1_AFF4 = .text:0x0000AFF4; // type:function size:0x70C +fn_1_B700 = .text:0x0000B700; // type:function size:0x494 +fn_1_BB94 = .text:0x0000BB94; // type:function size:0x24C +fn_1_BDE0 = .text:0x0000BDE0; // type:function size:0x5E0 +fn_1_C3C0 = .text:0x0000C3C0; // type:function size:0x7C +fn_1_C43C = .text:0x0000C43C; // type:function size:0x10 +fn_1_C44C = .text:0x0000C44C; // type:function size:0x98 +fn_1_C4E4 = .text:0x0000C4E4; // type:function size:0x4C +fn_1_C530 = .text:0x0000C530; // type:function size:0x7E4 +fn_1_CD14 = .text:0x0000CD14; // type:function size:0x154 +fn_1_CE68 = .text:0x0000CE68; // type:function size:0x84 +fn_1_CEEC = .text:0x0000CEEC; // type:function size:0x118 +fn_1_D004 = .text:0x0000D004; // type:function size:0x6EC +fn_1_D6F0 = .text:0x0000D6F0; // type:function size:0x288 +fn_1_D978 = .text:0x0000D978; // type:function size:0xF4 +fn_1_DA6C = .text:0x0000DA6C; // type:function size:0x564 +fn_1_DFD0 = .text:0x0000DFD0; // type:function size:0x340 +fn_1_E310 = .text:0x0000E310; // type:function size:0x6A4 +fn_1_E9B4 = .text:0x0000E9B4; // type:function size:0x544 +fn_1_EEF8 = .text:0x0000EEF8; // type:function size:0x174 +fn_1_F06C = .text:0x0000F06C; // type:function size:0x444 +fn_1_F4B0 = .text:0x0000F4B0; // type:function size:0xB4 +fn_1_F564 = .text:0x0000F564; // type:function size:0x33C +fn_1_F8A0 = .text:0x0000F8A0; // type:function size:0x2F8 +fn_1_FB98 = .text:0x0000FB98; // type:function size:0x8EC +fn_1_10484 = .text:0x00010484; // type:function size:0x3AC +fn_1_10830 = .text:0x00010830; // type:function size:0x330 +fn_1_10B60 = .text:0x00010B60; // type:function size:0xB10 +fn_1_11670 = .text:0x00011670; // type:function size:0x54 +fn_1_116C4 = .text:0x000116C4; // type:function size:0xBC +fn_1_11780 = .text:0x00011780; // type:function size:0x150 +fn_1_118D0 = .text:0x000118D0; // type:function size:0x90 +fn_1_11960 = .text:0x00011960; // type:function size:0x4DC +fn_1_11E3C = .text:0x00011E3C; // type:function size:0x518 +fn_1_12354 = .text:0x00012354; // type:function size:0x74 +fn_1_123C8 = .text:0x000123C8; // type:function size:0x2A8 +fn_1_12670 = .text:0x00012670; // type:function size:0x4 +fn_1_12674 = .text:0x00012674; // type:function size:0x12C +fn_1_127A0 = .text:0x000127A0; // type:function size:0x4CC +fn_1_12C6C = .text:0x00012C6C; // type:function size:0x3F0 +fn_1_1305C = .text:0x0001305C; // type:function size:0x47C +fn_1_134D8 = .text:0x000134D8; // type:function size:0x348 +fn_1_13820 = .text:0x00013820; // type:function size:0x568 +fn_1_13D88 = .text:0x00013D88; // type:function size:0x2E4 +fn_1_1406C = .text:0x0001406C; // type:function size:0x464 +fn_1_144D0 = .text:0x000144D0; // type:function size:0x8E4 +fn_1_14DB4 = .text:0x00014DB4; // type:function size:0x3F0 +fn_1_151A4 = .text:0x000151A4; // type:function size:0x43C +fn_1_155E0 = .text:0x000155E0; // type:function size:0x38 +fn_1_15618 = .text:0x00015618; // type:function size:0x40 +fn_1_15658 = .text:0x00015658; // type:function size:0x4F8 +fn_1_15B50 = .text:0x00015B50; // type:function size:0x7C +fn_1_15BCC = .text:0x00015BCC; // type:function size:0xD8 +fn_1_15CA4 = .text:0x00015CA4; // type:function size:0xC0 +fn_1_15D64 = .text:0x00015D64; // type:function size:0x568 +fn_1_162CC = .text:0x000162CC; // type:function size:0xFC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC data:4byte +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x10 data:4byte +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x30 data:4byte +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x10 data:4byte +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x20 data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x38 data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x48 +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x10 data:4byte +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x10 data:4byte +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x28 data:2byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x10 data:4byte +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x10 data:4byte +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:double +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x8 data:double +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 data:double +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x8 data:double +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x8 data:double +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:double +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 data:double +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x8 data:double +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x8 data:double +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 data:double +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 data:float +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 data:double +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x8 data:double +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x8 data:double +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 data:float +lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 data:float +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x8 data:double +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 data:float +lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 data:float +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x8 data:double +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x8 data:double +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 data:double +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x8 data:double +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 data:float +lbl_1_rodata_684 = .rodata:0x00000684; // type:object size:0x4 data:float +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x8 data:double +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x4 data:float +lbl_1_rodata_694 = .rodata:0x00000694; // type:object size:0x4 data:float +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 data:float +lbl_1_rodata_69C = .rodata:0x0000069C; // type:object size:0x4 data:float +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x4 data:float +lbl_1_rodata_6A4 = .rodata:0x000006A4; // type:object size:0x4 data:float +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 data:double +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 data:double +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x4 data:float +lbl_1_rodata_6C4 = .rodata:0x000006C4; // type:object size:0x4 data:float +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x4 data:float +lbl_1_rodata_6CC = .rodata:0x000006CC; // type:object size:0x4 data:float +lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x4 data:float +lbl_1_rodata_6D4 = .rodata:0x000006D4; // type:object size:0x4 data:float +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x8 data:double +lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 data:float +lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 data:float +lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0x4 data:float +lbl_1_rodata_6F4 = .rodata:0x000006F4; // type:object size:0x4 data:float +lbl_1_rodata_6F8 = .rodata:0x000006F8; // type:object size:0x4 data:float +lbl_1_rodata_6FC = .rodata:0x000006FC; // type:object size:0x4 data:float +lbl_1_rodata_700 = .rodata:0x00000700; // type:object size:0x8 data:double +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x8 data:double +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x4 data:float +lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x8 data:double +lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x8 data:double +lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float +lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float +lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float +lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x4 data:float +lbl_1_rodata_738 = .rodata:0x00000738; // type:object size:0x4 data:float +lbl_1_rodata_73C = .rodata:0x0000073C; // type:object size:0x4 data:float +lbl_1_rodata_740 = .rodata:0x00000740; // type:object size:0x4 data:float +lbl_1_rodata_744 = .rodata:0x00000744; // type:object size:0x4 data:float +lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x8 data:double +lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 data:float +lbl_1_rodata_754 = .rodata:0x00000754; // type:object size:0x4 data:float +lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x8 data:double +lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x4 data:float +lbl_1_rodata_764 = .rodata:0x00000764; // type:object size:0x4 data:float +lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x4 data:float +lbl_1_rodata_76C = .rodata:0x0000076C; // type:object size:0x4 data:float +lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0x4 data:float +lbl_1_rodata_774 = .rodata:0x00000774; // type:object size:0x4 data:float +lbl_1_rodata_778 = .rodata:0x00000778; // type:object size:0x4 data:float +lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0x4 data:float +lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x4 data:float +lbl_1_rodata_784 = .rodata:0x00000784; // type:object size:0x4 data:float +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x8 data:double +lbl_1_rodata_790 = .rodata:0x00000790; // type:object size:0x4 data:float +lbl_1_rodata_794 = .rodata:0x00000794; // type:object size:0x4 data:float +lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x4 data:float +lbl_1_rodata_79C = .rodata:0x0000079C; // type:object size:0x4 data:float +lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x4 data:float +lbl_1_rodata_7A4 = .rodata:0x000007A4; // type:object size:0x4 data:float +lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 data:float +lbl_1_rodata_7AC = .rodata:0x000007AC; // type:object size:0x4 data:float +lbl_1_rodata_7B0 = .rodata:0x000007B0; // type:object size:0x4 data:float +lbl_1_rodata_7B4 = .rodata:0x000007B4; // type:object size:0x4 data:float +lbl_1_rodata_7B8 = .rodata:0x000007B8; // type:object size:0x4 data:float +lbl_1_rodata_7BC = .rodata:0x000007BC; // type:object size:0x4 data:float +lbl_1_rodata_7C0 = .rodata:0x000007C0; // type:object size:0x8 data:double +lbl_1_rodata_7C8 = .rodata:0x000007C8; // type:object size:0x4 data:float +lbl_1_rodata_7CC = .rodata:0x000007CC; // type:object size:0x4 data:float +lbl_1_rodata_7D0 = .rodata:0x000007D0; // type:object size:0x4 data:float +lbl_1_rodata_7D8 = .rodata:0x000007D8; // type:object size:0x8 data:double +lbl_1_rodata_7E0 = .rodata:0x000007E0; // type:object size:0x8 data:double +lbl_1_rodata_7E8 = .rodata:0x000007E8; // type:object size:0x4 data:float +lbl_1_rodata_7EC = .rodata:0x000007EC; // type:object size:0x4 data:float +lbl_1_rodata_7F0 = .rodata:0x000007F0; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 +lbl_1_data_20 = .data:0x00000020; // type:object size:0xC +lbl_1_data_2C = .data:0x0000002C; // type:object size:0xC +lbl_1_data_38 = .data:0x00000038; // type:object size:0x20 +lbl_1_data_58 = .data:0x00000058; // type:object size:0xC +lbl_1_data_64 = .data:0x00000064; // type:object size:0xC +lbl_1_data_70 = .data:0x00000070; // type:object size:0xC +lbl_1_data_7C = .data:0x0000007C; // type:object size:0x7 data:string +lbl_1_data_83 = .data:0x00000083; // type:object size:0x7 data:string +lbl_1_data_8A = .data:0x0000008A; // type:object size:0x7 data:string +lbl_1_data_91 = .data:0x00000091; // type:object size:0x7 data:string +lbl_1_data_98 = .data:0x00000098; // type:object size:0x8 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x28 +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x20 +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x1C +lbl_1_data_104 = .data:0x00000104; // type:object size:0x40 +lbl_1_data_144 = .data:0x00000144; // type:object size:0x58 +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x4 data:4byte +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x24 +lbl_1_data_1C4 = .data:0x000001C4; // type:object size:0x24 +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x24 +lbl_1_data_20C = .data:0x0000020C; // type:object size:0x2E8 +lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0x10 +lbl_1_data_504 = .data:0x00000504; // type:object size:0x4 +lbl_1_data_508 = .data:0x00000508; // type:object size:0xC +lbl_1_data_514 = .data:0x00000514; // type:object size:0xC +lbl_1_data_520 = .data:0x00000520; // type:object size:0x30 +jumptable_1_data_550 = .data:0x00000550; // type:object size:0x24 scope:local +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x14 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:float +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x2 data:2byte +lbl_1_bss_62 = .bss:0x00000062; // type:object size:0x2 data:2byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte +lbl_1_bss_66 = .bss:0x00000066; // type:object size:0x6 data:2byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x8 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0xC +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0xC +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x50 data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0xC data:float +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0xC data:float +lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x8 data:4byte +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x2 data:2byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x8 data:4byte +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x8 data:4byte +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x4 data:4byte +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte +lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x4 data:4byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x4 data:4byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x2 data:2byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x1C data:4byte +lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x4 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0xC00 +lbl_1_bss_D6C = .bss:0x00000D6C; // type:object size:0x30 +lbl_1_bss_D9C = .bss:0x00000D9C; // type:object size:0x4 data:4byte +lbl_1_bss_DA0 = .bss:0x00000DA0; // type:object size:0x4 data:4byte +lbl_1_bss_DA4 = .bss:0x00000DA4; // type:object size:0x6800 data:float +lbl_1_bss_75A4 = .bss:0x000075A4; // type:object size:0x4 data:4byte +lbl_1_bss_75A8 = .bss:0x000075A8; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m409Dll/splits.txt b/config/GMPJ01_00/rels/m409Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m409Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m409Dll/symbols.txt b/config/GMPJ01_00/rels/m409Dll/symbols.txt new file mode 100644 index 00000000..40e875cb --- /dev/null +++ b/config/GMPJ01_00/rels/m409Dll/symbols.txt @@ -0,0 +1,332 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x394 +fn_1_434 = .text:0x00000434; // type:function size:0xA8 +fn_1_4DC = .text:0x000004DC; // type:function size:0x48 +fn_1_524 = .text:0x00000524; // type:function size:0x65C +fn_1_B80 = .text:0x00000B80; // type:function size:0x25C +fn_1_DDC = .text:0x00000DDC; // type:function size:0x194 +fn_1_F70 = .text:0x00000F70; // type:function size:0x178 +fn_1_10E8 = .text:0x000010E8; // type:function size:0xA8C +fn_1_1B74 = .text:0x00001B74; // type:function size:0x524 +fn_1_2098 = .text:0x00002098; // type:function size:0x354 +fn_1_23EC = .text:0x000023EC; // type:function size:0x28 +fn_1_2414 = .text:0x00002414; // type:function size:0x40 +fn_1_2454 = .text:0x00002454; // type:function size:0x30 +fn_1_2484 = .text:0x00002484; // type:function size:0x948 +fn_1_2DCC = .text:0x00002DCC; // type:function size:0xA74 +fn_1_3840 = .text:0x00003840; // type:function size:0x148 +fn_1_3988 = .text:0x00003988; // type:function size:0x150 +fn_1_3AD8 = .text:0x00003AD8; // type:function size:0x5CC +fn_1_40A4 = .text:0x000040A4; // type:function size:0x7C +fn_1_4120 = .text:0x00004120; // type:function size:0x5C +fn_1_417C = .text:0x0000417C; // type:function size:0x374 +fn_1_44F0 = .text:0x000044F0; // type:function size:0xB0C +fn_1_4FFC = .text:0x00004FFC; // type:function size:0x40C +fn_1_5408 = .text:0x00005408; // type:function size:0x1D8 +fn_1_55E0 = .text:0x000055E0; // type:function size:0x1FC +fn_1_57DC = .text:0x000057DC; // type:function size:0x104 +fn_1_58E0 = .text:0x000058E0; // type:function size:0x138 +fn_1_5A18 = .text:0x00005A18; // type:function size:0x544 +fn_1_5F5C = .text:0x00005F5C; // type:function size:0x60 +fn_1_5FBC = .text:0x00005FBC; // type:function size:0x38 +fn_1_5FF4 = .text:0x00005FF4; // type:function size:0x38 +fn_1_602C = .text:0x0000602C; // type:function size:0x5DC +fn_1_6608 = .text:0x00006608; // type:function size:0xCC +fn_1_66D4 = .text:0x000066D4; // type:function size:0xA4 +fn_1_6778 = .text:0x00006778; // type:function size:0x68 +fn_1_67E0 = .text:0x000067E0; // type:function size:0x120 +fn_1_6900 = .text:0x00006900; // type:function size:0x28 +fn_1_6928 = .text:0x00006928; // type:function size:0xA1C +fn_1_7344 = .text:0x00007344; // type:function size:0xCA4 +fn_1_7FE8 = .text:0x00007FE8; // type:function size:0x850 +fn_1_8838 = .text:0x00008838; // type:function size:0x4D0 +fn_1_8D08 = .text:0x00008D08; // type:function size:0x64 +fn_1_8D6C = .text:0x00008D6C; // type:function size:0x454 +fn_1_91C0 = .text:0x000091C0; // type:function size:0x46C +fn_1_962C = .text:0x0000962C; // type:function size:0xF58 +fn_1_A584 = .text:0x0000A584; // type:function size:0x43C +fn_1_A9C0 = .text:0x0000A9C0; // type:function size:0x1F4 +fn_1_ABB4 = .text:0x0000ABB4; // type:function size:0x54 +fn_1_AC08 = .text:0x0000AC08; // type:function size:0x138 +fn_1_AD40 = .text:0x0000AD40; // type:function size:0x154 +fn_1_AE94 = .text:0x0000AE94; // type:function size:0x78 +fn_1_AF0C = .text:0x0000AF0C; // type:function size:0x11C +fn_1_B028 = .text:0x0000B028; // type:function size:0x78 +fn_1_B0A0 = .text:0x0000B0A0; // type:function size:0x2D8 +fn_1_B378 = .text:0x0000B378; // type:function size:0x198 +fn_1_B510 = .text:0x0000B510; // type:function size:0xD8 +fn_1_B5E8 = .text:0x0000B5E8; // type:function size:0xBC +fn_1_B6A4 = .text:0x0000B6A4; // type:function size:0x33C +fn_1_B9E0 = .text:0x0000B9E0; // type:function size:0x4B0 +fn_1_BE90 = .text:0x0000BE90; // type:function size:0xA8 +fn_1_BF38 = .text:0x0000BF38; // type:function size:0x50 +fn_1_BF88 = .text:0x0000BF88; // type:function size:0x138 +fn_1_C0C0 = .text:0x0000C0C0; // type:function size:0xA4 +fn_1_C164 = .text:0x0000C164; // type:function size:0xA34 +fn_1_CB98 = .text:0x0000CB98; // type:function size:0x118 +fn_1_CCB0 = .text:0x0000CCB0; // type:function size:0x1C +fn_1_CCCC = .text:0x0000CCCC; // type:function size:0x2C +fn_1_CCF8 = .text:0x0000CCF8; // type:function size:0x184 +fn_1_CE7C = .text:0x0000CE7C; // type:function size:0xA0 +fn_1_CF1C = .text:0x0000CF1C; // type:function size:0xA8 +fn_1_CFC4 = .text:0x0000CFC4; // type:function size:0x8C +fn_1_D050 = .text:0x0000D050; // type:function size:0x98 +fn_1_D0E8 = .text:0x0000D0E8; // type:function size:0x348 +fn_1_D430 = .text:0x0000D430; // type:function size:0x618 +fn_1_DA48 = .text:0x0000DA48; // type:function size:0x370 +fn_1_DDB8 = .text:0x0000DDB8; // type:function size:0x13C +fn_1_DEF4 = .text:0x0000DEF4; // type:function size:0x2C +fn_1_DF20 = .text:0x0000DF20; // type:function size:0x308 +fn_1_E228 = .text:0x0000E228; // type:function size:0x80 +fn_1_E2A8 = .text:0x0000E2A8; // type:function size:0x520 +fn_1_E7C8 = .text:0x0000E7C8; // type:function size:0x50 +fn_1_E818 = .text:0x0000E818; // type:function size:0x44 +fn_1_E85C = .text:0x0000E85C; // type:function size:0x70 +fn_1_E8CC = .text:0x0000E8CC; // type:function size:0x74 +fn_1_E940 = .text:0x0000E940; // type:function size:0x5C +fn_1_E99C = .text:0x0000E99C; // type:function size:0x88 +fn_1_EA24 = .text:0x0000EA24; // type:function size:0x8C +fn_1_EAB0 = .text:0x0000EAB0; // type:function size:0x44 +fn_1_EAF4 = .text:0x0000EAF4; // type:function size:0x70 +fn_1_EB64 = .text:0x0000EB64; // type:function size:0x74 +fn_1_EBD8 = .text:0x0000EBD8; // type:function size:0x44 +fn_1_EC1C = .text:0x0000EC1C; // type:function size:0x70 +fn_1_EC8C = .text:0x0000EC8C; // type:function size:0x74 +fn_1_ED00 = .text:0x0000ED00; // type:function size:0x44 +fn_1_ED44 = .text:0x0000ED44; // type:function size:0x70 +fn_1_EDB4 = .text:0x0000EDB4; // type:function size:0x70 +fn_1_EE24 = .text:0x0000EE24; // type:function size:0x44 +fn_1_EE68 = .text:0x0000EE68; // type:function size:0x70 +fn_1_EED8 = .text:0x0000EED8; // type:function size:0x70 +fn_1_EF48 = .text:0x0000EF48; // type:function size:0x5C +fn_1_EFA4 = .text:0x0000EFA4; // type:function size:0x80 +fn_1_F024 = .text:0x0000F024; // type:function size:0x74 +fn_1_F098 = .text:0x0000F098; // type:function size:0x78 +fn_1_F110 = .text:0x0000F110; // type:function size:0x6C +fn_1_F17C = .text:0x0000F17C; // type:function size:0x78 +fn_1_F1F4 = .text:0x0000F1F4; // type:function size:0x98 +fn_1_F28C = .text:0x0000F28C; // type:function size:0x6C +fn_1_F2F8 = .text:0x0000F2F8; // type:function size:0x78 +fn_1_F370 = .text:0x0000F370; // type:function size:0x98 +fn_1_F408 = .text:0x0000F408; // type:function size:0x70 +fn_1_F478 = .text:0x0000F478; // type:function size:0x78 +fn_1_F4F0 = .text:0x0000F4F0; // type:function size:0x98 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x30 data:4byte +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x100 +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x30 data:4byte +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x10 data:byte +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0x10 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x70 data:float +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x4 data:4byte +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x9 data:string +lbl_1_data_CD = .data:0x000000CD; // type:object size:0x9 data:string +lbl_1_data_D6 = .data:0x000000D6; // type:object size:0x3 data:string +lbl_1_data_D9 = .data:0x000000D9; // type:object size:0x10 data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x26 data:string +lbl_1_data_10F = .data:0x0000010F; // type:object size:0x2D +lbl_1_data_13C = .data:0x0000013C; // type:object size:0x1C +lbl_1_data_158 = .data:0x00000158; // type:object size:0x20 +lbl_1_data_178 = .data:0x00000178; // type:object size:0x40 +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x14 +jumptable_1_data_1CC = .data:0x000001CC; // type:object size:0x20 scope:local +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x4 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x2 data:2byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x1 data:byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte +lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x1 data:byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:float +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x1 data:byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:float +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x1 data:byte +lbl_1_bss_21 = .bss:0x00000021; // type:object size:0x1 data:byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x9C data:2byte +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x4 data:4byte +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x2 data:2byte +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x8 data:4byte +lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x14 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x2 data:2byte +lbl_1_bss_106 = .bss:0x00000106; // type:object size:0x2 data:2byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x2 data:2byte +lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x280 data:float +lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x10 +lbl_1_bss_39C = .bss:0x0000039C; // type:object size:0x4 data:4byte +lbl_1_bss_3A0 = .bss:0x000003A0; // type:object size:0x10 diff --git a/config/GMPJ01_00/rels/m410Dll/splits.txt b/config/GMPJ01_00/rels/m410Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m410Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m410Dll/symbols.txt b/config/GMPJ01_00/rels/m410Dll/symbols.txt new file mode 100644 index 00000000..64fb64e4 --- /dev/null +++ b/config/GMPJ01_00/rels/m410Dll/symbols.txt @@ -0,0 +1,317 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x444 +fn_1_4E4 = .text:0x000004E4; // type:function size:0xC4 +fn_1_5A8 = .text:0x000005A8; // type:function size:0x94 +fn_1_63C = .text:0x0000063C; // type:function size:0x16C +fn_1_7A8 = .text:0x000007A8; // type:function size:0x314 +fn_1_ABC = .text:0x00000ABC; // type:function size:0x330 +fn_1_DEC = .text:0x00000DEC; // type:function size:0x204 +fn_1_FF0 = .text:0x00000FF0; // type:function size:0x3AC +fn_1_139C = .text:0x0000139C; // type:function size:0x2AC +fn_1_1648 = .text:0x00001648; // type:function size:0x380 +fn_1_19C8 = .text:0x000019C8; // type:function size:0xB4 +fn_1_1A7C = .text:0x00001A7C; // type:function size:0x6F0 +fn_1_216C = .text:0x0000216C; // type:function size:0x1C +fn_1_2188 = .text:0x00002188; // type:function size:0x664 +fn_1_27EC = .text:0x000027EC; // type:function size:0x18 +fn_1_2804 = .text:0x00002804; // type:function size:0x18 +fn_1_281C = .text:0x0000281C; // type:function size:0x18 +fn_1_2834 = .text:0x00002834; // type:function size:0x18 +fn_1_284C = .text:0x0000284C; // type:function size:0x18 +fn_1_2864 = .text:0x00002864; // type:function size:0x18 +fn_1_287C = .text:0x0000287C; // type:function size:0x30 +fn_1_28AC = .text:0x000028AC; // type:function size:0x30 +fn_1_28DC = .text:0x000028DC; // type:function size:0x38 +fn_1_2914 = .text:0x00002914; // type:function size:0x348 +fn_1_2C5C = .text:0x00002C5C; // type:function size:0x378 +fn_1_2FD4 = .text:0x00002FD4; // type:function size:0x11C +fn_1_30F0 = .text:0x000030F0; // type:function size:0xB4 +fn_1_31A4 = .text:0x000031A4; // type:function size:0x54 +fn_1_31F8 = .text:0x000031F8; // type:function size:0x4 +fn_1_31FC = .text:0x000031FC; // type:function size:0x154 +fn_1_3350 = .text:0x00003350; // type:function size:0x58 +fn_1_33A8 = .text:0x000033A8; // type:function size:0xDC +fn_1_3484 = .text:0x00003484; // type:function size:0x3C +fn_1_34C0 = .text:0x000034C0; // type:function size:0x154 +fn_1_3614 = .text:0x00003614; // type:function size:0x5CC +fn_1_3BE0 = .text:0x00003BE0; // type:function size:0xCF8 +fn_1_48D8 = .text:0x000048D8; // type:function size:0x32C +fn_1_4C04 = .text:0x00004C04; // type:function size:0x3E8 +fn_1_4FEC = .text:0x00004FEC; // type:function size:0x5DC +fn_1_55C8 = .text:0x000055C8; // type:function size:0x3C4 +fn_1_598C = .text:0x0000598C; // type:function size:0x168 +fn_1_5AF4 = .text:0x00005AF4; // type:function size:0x1AC +fn_1_5CA0 = .text:0x00005CA0; // type:function size:0x23C +fn_1_5EDC = .text:0x00005EDC; // type:function size:0x300 +fn_1_61DC = .text:0x000061DC; // type:function size:0x188 +fn_1_6364 = .text:0x00006364; // type:function size:0x354 +fn_1_66B8 = .text:0x000066B8; // type:function size:0x11C +fn_1_67D4 = .text:0x000067D4; // type:function size:0x194 +fn_1_6968 = .text:0x00006968; // type:function size:0x41C +fn_1_6D84 = .text:0x00006D84; // type:function size:0x30 +fn_1_6DB4 = .text:0x00006DB4; // type:function size:0x384 +fn_1_7138 = .text:0x00007138; // type:function size:0x32C +fn_1_7464 = .text:0x00007464; // type:function size:0x30 +fn_1_7494 = .text:0x00007494; // type:function size:0x8C +fn_1_7520 = .text:0x00007520; // type:function size:0x80 +fn_1_75A0 = .text:0x000075A0; // type:function size:0x118 +fn_1_76B8 = .text:0x000076B8; // type:function size:0xEC +fn_1_77A4 = .text:0x000077A4; // type:function size:0x44 +fn_1_77E8 = .text:0x000077E8; // type:function size:0x10 +fn_1_77F8 = .text:0x000077F8; // type:function size:0x48 +fn_1_7840 = .text:0x00007840; // type:function size:0x48 +fn_1_7888 = .text:0x00007888; // type:function size:0x170 +fn_1_79F8 = .text:0x000079F8; // type:function size:0xCC +fn_1_7AC4 = .text:0x00007AC4; // type:function size:0x36C +fn_1_7E30 = .text:0x00007E30; // type:function size:0x23C +fn_1_806C = .text:0x0000806C; // type:function size:0x34 +fn_1_80A0 = .text:0x000080A0; // type:function size:0x374 +fn_1_8414 = .text:0x00008414; // type:function size:0x264 +fn_1_8678 = .text:0x00008678; // type:function size:0x260 +fn_1_88D8 = .text:0x000088D8; // type:function size:0x138 +fn_1_8A10 = .text:0x00008A10; // type:function size:0xAC +fn_1_8ABC = .text:0x00008ABC; // type:function size:0x584 +fn_1_9040 = .text:0x00009040; // type:function size:0x6B4 +fn_1_96F4 = .text:0x000096F4; // type:function size:0x39C +fn_1_9A90 = .text:0x00009A90; // type:function size:0x1F4 +fn_1_9C84 = .text:0x00009C84; // type:function size:0x188 +fn_1_9E0C = .text:0x00009E0C; // type:function size:0xF0 +fn_1_9EFC = .text:0x00009EFC; // type:function size:0x74 +fn_1_9F70 = .text:0x00009F70; // type:function size:0x134 +fn_1_A0A4 = .text:0x0000A0A4; // type:function size:0x31C +fn_1_A3C0 = .text:0x0000A3C0; // type:function size:0x468 +fn_1_A828 = .text:0x0000A828; // type:function size:0x17C +fn_1_A9A4 = .text:0x0000A9A4; // type:function size:0x79C +fn_1_B140 = .text:0x0000B140; // type:function size:0x644 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x10 data:4byte +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x10 data:4byte +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x20 data:4byte +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x1 data:byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x3C +lbl_1_data_88 = .data:0x00000088; // type:object size:0x3C +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x14 +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x2 data:2byte +lbl_1_data_DC = .data:0x000000DC; // type:object size:0x20 +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x8 +lbl_1_data_104 = .data:0x00000104; // type:object size:0xC +lbl_1_data_110 = .data:0x00000110; // type:object size:0x4 data:4byte +lbl_1_data_114 = .data:0x00000114; // type:object size:0x1C +lbl_1_data_130 = .data:0x00000130; // type:object size:0x10 +lbl_1_data_140 = .data:0x00000140; // type:object size:0x20 +lbl_1_data_160 = .data:0x00000160; // type:object size:0xC +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x20 +lbl_1_data_18C = .data:0x0000018C; // type:object size:0x20 +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x28 +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0xA0 +lbl_1_data_274 = .data:0x00000274; // type:object size:0x20 +lbl_1_data_294 = .data:0x00000294; // type:object size:0x20 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x6 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x2 data:2byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:float +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:float +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:float +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x10 +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m411Dll/splits.txt b/config/GMPJ01_00/rels/m411Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m411Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m411Dll/symbols.txt b/config/GMPJ01_00/rels/m411Dll/symbols.txt new file mode 100644 index 00000000..38a4c8cd --- /dev/null +++ b/config/GMPJ01_00/rels/m411Dll/symbols.txt @@ -0,0 +1,278 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0xDE0 +fn_1_E80 = .text:0x00000E80; // type:function size:0x10C +fn_1_F8C = .text:0x00000F8C; // type:function size:0xE8 +fn_1_1074 = .text:0x00001074; // type:function size:0x424 +fn_1_1498 = .text:0x00001498; // type:function size:0x88 +fn_1_1520 = .text:0x00001520; // type:function size:0x72C +fn_1_1C4C = .text:0x00001C4C; // type:function size:0x47C +fn_1_20C8 = .text:0x000020C8; // type:function size:0x508 +fn_1_25D0 = .text:0x000025D0; // type:function size:0xEE0 +fn_1_34B0 = .text:0x000034B0; // type:function size:0x5B0 +fn_1_3A60 = .text:0x00003A60; // type:function size:0x3C +fn_1_3A9C = .text:0x00003A9C; // type:function size:0x3C +fn_1_3AD8 = .text:0x00003AD8; // type:function size:0x3C +fn_1_3B14 = .text:0x00003B14; // type:function size:0x3C +fn_1_3B50 = .text:0x00003B50; // type:function size:0x3E4 +fn_1_3F34 = .text:0x00003F34; // type:function size:0x2E4 +fn_1_4218 = .text:0x00004218; // type:function size:0x23C +fn_1_4454 = .text:0x00004454; // type:function size:0x514 +fn_1_4968 = .text:0x00004968; // type:function size:0x248 +fn_1_4BB0 = .text:0x00004BB0; // type:function size:0x2DC +fn_1_4E8C = .text:0x00004E8C; // type:function size:0x1F0 +fn_1_507C = .text:0x0000507C; // type:function size:0x308 +fn_1_5384 = .text:0x00005384; // type:function size:0xC8 +fn_1_544C = .text:0x0000544C; // type:function size:0x108 +fn_1_5554 = .text:0x00005554; // type:function size:0x368 +fn_1_58BC = .text:0x000058BC; // type:function size:0x54 +fn_1_5910 = .text:0x00005910; // type:function size:0x448 +fn_1_5D58 = .text:0x00005D58; // type:function size:0xB8 +fn_1_5E10 = .text:0x00005E10; // type:function size:0xC0 +fn_1_5ED0 = .text:0x00005ED0; // type:function size:0x6C +fn_1_5F3C = .text:0x00005F3C; // type:function size:0x4EC +fn_1_6428 = .text:0x00006428; // type:function size:0x3F8 +fn_1_6820 = .text:0x00006820; // type:function size:0x21C +fn_1_6A3C = .text:0x00006A3C; // type:function size:0x2B8 +fn_1_6CF4 = .text:0x00006CF4; // type:function size:0xE4 +fn_1_6DD8 = .text:0x00006DD8; // type:function size:0xC4 +fn_1_6E9C = .text:0x00006E9C; // type:function size:0xAC +fn_1_6F48 = .text:0x00006F48; // type:function size:0x680 +fn_1_75C8 = .text:0x000075C8; // type:function size:0xB8 +fn_1_7680 = .text:0x00007680; // type:function size:0xB8 +fn_1_7738 = .text:0x00007738; // type:function size:0x1348 +fn_1_8A80 = .text:0x00008A80; // type:function size:0x33C +fn_1_8DBC = .text:0x00008DBC; // type:function size:0x6D4 +fn_1_9490 = .text:0x00009490; // type:function size:0x730 +fn_1_9BC0 = .text:0x00009BC0; // type:function size:0x444 +fn_1_A004 = .text:0x0000A004; // type:function size:0x78 +fn_1_A07C = .text:0x0000A07C; // type:function size:0xA4 +fn_1_A120 = .text:0x0000A120; // type:function size:0x394 +fn_1_A4B4 = .text:0x0000A4B4; // type:function size:0x2D4 +fn_1_A788 = .text:0x0000A788; // type:function size:0x528 +fn_1_ACB0 = .text:0x0000ACB0; // type:function size:0xA8 +fn_1_AD58 = .text:0x0000AD58; // type:function size:0xB50 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC +lbl_1_data_78 = .data:0x00000078; // type:object size:0xE data:string +lbl_1_data_86 = .data:0x00000086; // type:object size:0xE data:string +lbl_1_data_94 = .data:0x00000094; // type:object size:0xE data:string +lbl_1_data_A2 = .data:0x000000A2; // type:object size:0xE data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0xE data:string +lbl_1_data_BE = .data:0x000000BE; // type:object size:0xE data:string +lbl_1_data_CC = .data:0x000000CC; // type:object size:0xE data:string +lbl_1_data_DA = .data:0x000000DA; // type:object size:0xE data:string +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0xE data:string +lbl_1_data_F6 = .data:0x000000F6; // type:object size:0xE data:string +lbl_1_data_104 = .data:0x00000104; // type:object size:0xE data:string +lbl_1_data_112 = .data:0x00000112; // type:object size:0xE data:string +lbl_1_data_120 = .data:0x00000120; // type:object size:0xE data:string +lbl_1_data_12E = .data:0x0000012E; // type:object size:0xE data:string +lbl_1_data_13C = .data:0x0000013C; // type:object size:0xE data:string +lbl_1_data_14A = .data:0x0000014A; // type:object size:0xE data:string +lbl_1_data_158 = .data:0x00000158; // type:object size:0xE data:string +lbl_1_data_166 = .data:0x00000166; // type:object size:0xE data:string +lbl_1_data_174 = .data:0x00000174; // type:object size:0xE data:string +lbl_1_data_182 = .data:0x00000182; // type:object size:0xE data:string +lbl_1_data_190 = .data:0x00000190; // type:object size:0xE data:string +lbl_1_data_19E = .data:0x0000019E; // type:object size:0xE data:string +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0xE data:string +lbl_1_data_1BA = .data:0x000001BA; // type:object size:0xE data:string +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x78 +lbl_1_data_240 = .data:0x00000240; // type:object size:0x20 +lbl_1_data_260 = .data:0x00000260; // type:object size:0x20 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x24 +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x20 +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0xC +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x14 +lbl_1_data_2E4 = .data:0x000002E4; // type:object size:0xB data:string +lbl_1_data_2EF = .data:0x000002EF; // type:object size:0xB data:string +lbl_1_data_2FA = .data:0x000002FA; // type:object size:0x8 data:string +lbl_1_data_302 = .data:0x00000302; // type:object size:0xA +lbl_1_data_30C = .data:0x0000030C; // type:object size:0x10 +lbl_1_data_31C = .data:0x0000031C; // type:object size:0xC data:string +lbl_1_data_328 = .data:0x00000328; // type:object size:0x7 data:string +lbl_1_data_32F = .data:0x0000032F; // type:object size:0x7 data:string +lbl_1_data_336 = .data:0x00000336; // type:object size:0x7 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x60 data:float +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x60 data:float +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x60 data:float +lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x10 +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte +lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x33C data:float +lbl_1_bss_474 = .bss:0x00000474; // type:object size:0x9B0 +lbl_1_bss_E24 = .bss:0x00000E24; // type:object size:0x4 data:float +lbl_1_bss_E28 = .bss:0x00000E28; // type:object size:0x4 data:4byte +lbl_1_bss_E2C = .bss:0x00000E2C; // type:object size:0xC data:4byte +lbl_1_bss_E38 = .bss:0x00000E38; // type:object size:0x4 data:4byte +lbl_1_bss_E3C = .bss:0x00000E3C; // type:object size:0x4 data:4byte +lbl_1_bss_E40 = .bss:0x00000E40; // type:object size:0x4 data:4byte +lbl_1_bss_E44 = .bss:0x00000E44; // type:object size:0x28 data:4byte +lbl_1_bss_E6C = .bss:0x00000E6C; // type:object size:0x28 data:4byte +lbl_1_bss_E94 = .bss:0x00000E94; // type:object size:0x4 data:4byte +lbl_1_bss_E98 = .bss:0x00000E98; // type:object size:0x4 data:4byte +lbl_1_bss_E9C = .bss:0x00000E9C; // type:object size:0x2 data:2byte +lbl_1_bss_E9E = .bss:0x00000E9E; // type:object size:0x2 data:2byte +lbl_1_bss_EA0 = .bss:0x00000EA0; // type:object size:0x2 data:2byte diff --git a/config/GMPJ01_00/rels/m412Dll/splits.txt b/config/GMPJ01_00/rels/m412Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m412Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m412Dll/symbols.txt b/config/GMPJ01_00/rels/m412Dll/symbols.txt new file mode 100644 index 00000000..4212d668 --- /dev/null +++ b/config/GMPJ01_00/rels/m412Dll/symbols.txt @@ -0,0 +1,190 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x64C +fn_1_6EC = .text:0x000006EC; // type:function size:0x50 +fn_1_73C = .text:0x0000073C; // type:function size:0x80 +fn_1_7BC = .text:0x000007BC; // type:function size:0xD8 +fn_1_894 = .text:0x00000894; // type:function size:0x4 +fn_1_898 = .text:0x00000898; // type:function size:0x24 +fn_1_8BC = .text:0x000008BC; // type:function size:0x144C +fn_1_1D08 = .text:0x00001D08; // type:function size:0x80 +fn_1_1D88 = .text:0x00001D88; // type:function size:0x34 +fn_1_1DBC = .text:0x00001DBC; // type:function size:0x258 +fn_1_2014 = .text:0x00002014; // type:function size:0x50 +fn_1_2064 = .text:0x00002064; // type:function size:0x6A4 +fn_1_2708 = .text:0x00002708; // type:function size:0xBC +fn_1_27C4 = .text:0x000027C4; // type:function size:0x258 +fn_1_2A1C = .text:0x00002A1C; // type:function size:0xF34 +fn_1_3950 = .text:0x00003950; // type:function size:0x1294 +fn_1_4BE4 = .text:0x00004BE4; // type:function size:0xB8 +fn_1_4C9C = .text:0x00004C9C; // type:function size:0x1BC +fn_1_4E58 = .text:0x00004E58; // type:function size:0x404 +fn_1_525C = .text:0x0000525C; // type:function size:0xC0 +fn_1_531C = .text:0x0000531C; // type:function size:0x6C +fn_1_5388 = .text:0x00005388; // type:function size:0x6C +fn_1_53F4 = .text:0x000053F4; // type:function size:0x228 +fn_1_561C = .text:0x0000561C; // type:function size:0x21C +fn_1_5838 = .text:0x00005838; // type:function size:0xD5C +fn_1_6594 = .text:0x00006594; // type:function size:0x104 +fn_1_6698 = .text:0x00006698; // type:function size:0x17C +fn_1_6814 = .text:0x00006814; // type:function size:0x144C +fn_1_7C60 = .text:0x00007C60; // type:function size:0x23BC +fn_1_A01C = .text:0x0000A01C; // type:function size:0x5FC +fn_1_A618 = .text:0x0000A618; // type:function size:0x470 +fn_1_AA88 = .text:0x0000AA88; // type:function size:0x340 +fn_1_ADC8 = .text:0x0000ADC8; // type:function size:0x374 +fn_1_B13C = .text:0x0000B13C; // type:function size:0x24 +fn_1_B160 = .text:0x0000B160; // type:function size:0x60 +fn_1_B1C0 = .text:0x0000B1C0; // type:function size:0x4A0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 +lbl_1_data_20 = .data:0x00000020; // type:object size:0x20 +lbl_1_data_40 = .data:0x00000040; // type:object size:0x20 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x18 +lbl_1_data_78 = .data:0x00000078; // type:object size:0x54 data:float +lbl_1_data_CC = .data:0x000000CC; // type:object size:0x14 data:string +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x14 data:string +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x14 data:string +lbl_1_data_108 = .data:0x00000108; // type:object size:0x14 data:string +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x14 data:string +lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 data:string +lbl_1_data_144 = .data:0x00000144; // type:object size:0x14 data:string +lbl_1_data_158 = .data:0x00000158; // type:object size:0x14 data:string +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x14 data:string +lbl_1_data_180 = .data:0x00000180; // type:object size:0x14 data:string +lbl_1_data_194 = .data:0x00000194; // type:object size:0x14 data:string +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x14 data:string +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x14 data:string +lbl_1_data_1D0 = .data:0x000001D0; // type:object size:0x14 data:string +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x14 data:string +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x14 data:string +lbl_1_data_20C = .data:0x0000020C; // type:object size:0x14 data:string +lbl_1_data_220 = .data:0x00000220; // type:object size:0x14 data:string +lbl_1_data_234 = .data:0x00000234; // type:object size:0x14 data:string +lbl_1_data_248 = .data:0x00000248; // type:object size:0x14 data:string +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x14 data:string +lbl_1_data_270 = .data:0x00000270; // type:object size:0x14 data:string +lbl_1_data_284 = .data:0x00000284; // type:object size:0x14 data:string +lbl_1_data_298 = .data:0x00000298; // type:object size:0x5C +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0xC data:string +lbl_1_data_300 = .data:0x00000300; // type:object size:0x7 data:string +lbl_1_data_307 = .data:0x00000307; // type:object size:0x9 +lbl_1_data_310 = .data:0x00000310; // type:object size:0x30 +lbl_1_data_340 = .data:0x00000340; // type:object size:0x8 +lbl_1_data_348 = .data:0x00000348; // type:object size:0x18 +lbl_1_data_360 = .data:0x00000360; // type:object size:0x9 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x10 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x114 +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x114 +lbl_1_bss_250 = .bss:0x00000250; // type:object size:0xC data:float +lbl_1_bss_25C = .bss:0x0000025C; // type:object size:0xC data:float +lbl_1_bss_268 = .bss:0x00000268; // type:object size:0xC data:float +lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x4 data:4byte +lbl_1_bss_278 = .bss:0x00000278; // type:object size:0x80 +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x44 data:2byte +lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x198 +lbl_1_bss_4D4 = .bss:0x000004D4; // type:object size:0x2A0 +lbl_1_bss_774 = .bss:0x00000774; // type:object size:0x4 data:float +lbl_1_bss_778 = .bss:0x00000778; // type:object size:0x4 data:float +lbl_1_bss_77C = .bss:0x0000077C; // type:object size:0x4 data:float +lbl_1_bss_780 = .bss:0x00000780; // type:object size:0x10 data:4byte +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x4 data:4byte +lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x4 data:4byte +lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x2 data:2byte +lbl_1_bss_79C = .bss:0x0000079C; // type:object size:0x2 data:2byte +lbl_1_bss_79E = .bss:0x0000079E; // type:object size:0x2 data:2byte +lbl_1_bss_7A0 = .bss:0x000007A0; // type:object size:0x2 data:2byte diff --git a/config/GMPJ01_00/rels/m413Dll/splits.txt b/config/GMPJ01_00/rels/m413Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m413Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m413Dll/symbols.txt b/config/GMPJ01_00/rels/m413Dll/symbols.txt new file mode 100644 index 00000000..019fba8d --- /dev/null +++ b/config/GMPJ01_00/rels/m413Dll/symbols.txt @@ -0,0 +1,210 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x2EC +fn_1_38C = .text:0x0000038C; // type:function size:0x134 +fn_1_4C0 = .text:0x000004C0; // type:function size:0xBC +fn_1_57C = .text:0x0000057C; // type:function size:0x154 +fn_1_6D0 = .text:0x000006D0; // type:function size:0x128 +fn_1_7F8 = .text:0x000007F8; // type:function size:0x6C8 +fn_1_EC0 = .text:0x00000EC0; // type:function size:0x1F8 +fn_1_10B8 = .text:0x000010B8; // type:function size:0x90C +fn_1_19C4 = .text:0x000019C4; // type:function size:0x4 +fn_1_19C8 = .text:0x000019C8; // type:function size:0x38DC +fn_1_52A4 = .text:0x000052A4; // type:function size:0x3824 +fn_1_8AC8 = .text:0x00008AC8; // type:function size:0x148 +fn_1_8C10 = .text:0x00008C10; // type:function size:0x192C +fn_1_A53C = .text:0x0000A53C; // type:function size:0x1188 +fn_1_B6C4 = .text:0x0000B6C4; // type:function size:0x101C +fn_1_C6E0 = .text:0x0000C6E0; // type:function size:0x4D4 +fn_1_CBB4 = .text:0x0000CBB4; // type:function size:0x78C +fn_1_D340 = .text:0x0000D340; // type:function size:0x60 +fn_1_D3A0 = .text:0x0000D3A0; // type:function size:0x360 +fn_1_D700 = .text:0x0000D700; // type:function size:0x64 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xCC +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC data:byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:4byte +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 data:4byte +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x10 data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x19 data:byte +lbl_1_rodata_201 = .rodata:0x00000201; // type:object size:0x1F data:byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0xC data:4byte +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0xC data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x30 data:4byte +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x10 data:4byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0xC data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x10 data:4byte +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0xC data:4byte +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0xC data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 data:4byte +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:4byte +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x428 +lbl_1_rodata_764 = .rodata:0x00000764; // type:object size:0xC data:4byte +lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0xC data:4byte +lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0x4 data:float +lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x4 data:float +lbl_1_rodata_784 = .rodata:0x00000784; // type:object size:0x4 data:float +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x8 data:double +lbl_1_rodata_790 = .rodata:0x00000790; // type:object size:0x8 data:double +lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x8 data:double +lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x8 data:double +lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 data:float +lbl_1_rodata_7AC = .rodata:0x000007AC; // type:object size:0x10 data:4byte +lbl_1_rodata_7BC = .rodata:0x000007BC; // type:object size:0x14 data:4byte +lbl_1_rodata_7D0 = .rodata:0x000007D0; // type:object size:0x60 +lbl_1_rodata_830 = .rodata:0x00000830; // type:object size:0x8 data:double +lbl_1_rodata_838 = .rodata:0x00000838; // type:object size:0x8 data:double +lbl_1_rodata_840 = .rodata:0x00000840; // type:object size:0x4 data:float +lbl_1_rodata_848 = .rodata:0x00000848; // type:object size:0x8 data:double +lbl_1_rodata_850 = .rodata:0x00000850; // type:object size:0x4 data:float +lbl_1_rodata_858 = .rodata:0x00000858; // type:object size:0x8 data:double +lbl_1_rodata_860 = .rodata:0x00000860; // type:object size:0x8 data:double +lbl_1_rodata_868 = .rodata:0x00000868; // type:object size:0x8 data:double +lbl_1_rodata_870 = .rodata:0x00000870; // type:object size:0x8 data:double +lbl_1_rodata_878 = .rodata:0x00000878; // type:object size:0x4 data:float +lbl_1_rodata_87C = .rodata:0x0000087C; // type:object size:0x4 data:float +lbl_1_rodata_880 = .rodata:0x00000880; // type:object size:0x4 data:float +lbl_1_rodata_884 = .rodata:0x00000884; // type:object size:0x4 data:float +lbl_1_rodata_888 = .rodata:0x00000888; // type:object size:0x4 data:float +lbl_1_rodata_88C = .rodata:0x0000088C; // type:object size:0x1C data:4byte +lbl_1_rodata_8A8 = .rodata:0x000008A8; // type:object size:0x8 data:double +lbl_1_rodata_8B0 = .rodata:0x000008B0; // type:object size:0x4 data:float +lbl_1_rodata_8B4 = .rodata:0x000008B4; // type:object size:0x4 data:float +lbl_1_rodata_8B8 = .rodata:0x000008B8; // type:object size:0x4 data:float +lbl_1_rodata_8BC = .rodata:0x000008BC; // type:object size:0x4 data:float +lbl_1_rodata_8C0 = .rodata:0x000008C0; // type:object size:0x8 data:double +lbl_1_rodata_8C8 = .rodata:0x000008C8; // type:object size:0x4 data:float +lbl_1_rodata_8D0 = .rodata:0x000008D0; // type:object size:0x8 data:double +lbl_1_rodata_8D8 = .rodata:0x000008D8; // type:object size:0x4 data:float +lbl_1_rodata_8DC = .rodata:0x000008DC; // type:object size:0x4 data:float +lbl_1_rodata_8E0 = .rodata:0x000008E0; // type:object size:0x4 data:float +lbl_1_rodata_8E4 = .rodata:0x000008E4; // type:object size:0x4 data:float +lbl_1_rodata_8E8 = .rodata:0x000008E8; // type:object size:0x4 data:float +lbl_1_rodata_8EC = .rodata:0x000008EC; // type:object size:0x4 data:float +lbl_1_rodata_8F0 = .rodata:0x000008F0; // type:object size:0x4 data:float +lbl_1_rodata_8F4 = .rodata:0x000008F4; // type:object size:0x4 data:float +lbl_1_rodata_8F8 = .rodata:0x000008F8; // type:object size:0x8 data:double +lbl_1_rodata_900 = .rodata:0x00000900; // type:object size:0x8 data:double +lbl_1_rodata_908 = .rodata:0x00000908; // type:object size:0x4 data:float +lbl_1_rodata_90C = .rodata:0x0000090C; // type:object size:0x4 data:float +lbl_1_rodata_910 = .rodata:0x00000910; // type:object size:0x4 data:float +lbl_1_rodata_914 = .rodata:0x00000914; // type:object size:0xC data:byte +lbl_1_rodata_920 = .rodata:0x00000920; // type:object size:0x18 data:4byte +lbl_1_rodata_938 = .rodata:0x00000938; // type:object size:0x8 data:byte +lbl_1_rodata_940 = .rodata:0x00000940; // type:object size:0x10 data:4byte +lbl_1_rodata_950 = .rodata:0x00000950; // type:object size:0x1 data:byte +lbl_1_rodata_954 = .rodata:0x00000954; // type:object size:0x10 data:4byte +lbl_1_rodata_964 = .rodata:0x00000964; // type:object size:0x14 data:4byte +lbl_1_rodata_978 = .rodata:0x00000978; // type:object size:0x8 data:double +lbl_1_rodata_980 = .rodata:0x00000980; // type:object size:0x4 data:float +lbl_1_rodata_984 = .rodata:0x00000984; // type:object size:0x4 data:float +lbl_1_rodata_988 = .rodata:0x00000988; // type:object size:0x4 data:float +lbl_1_rodata_98C = .rodata:0x0000098C; // type:object size:0x4 data:float +lbl_1_rodata_990 = .rodata:0x00000990; // type:object size:0x8 data:double +lbl_1_rodata_998 = .rodata:0x00000998; // type:object size:0x4 data:float +lbl_1_rodata_99C = .rodata:0x0000099C; // type:object size:0x4 data:float +lbl_1_rodata_9A0 = .rodata:0x000009A0; // type:object size:0x8 data:double +lbl_1_rodata_9A8 = .rodata:0x000009A8; // type:object size:0x8 data:double +lbl_1_rodata_9B0 = .rodata:0x000009B0; // type:object size:0x10 data:4byte +lbl_1_rodata_9C0 = .rodata:0x000009C0; // type:object size:0x4 data:float +lbl_1_rodata_9C4 = .rodata:0x000009C4; // type:object size:0x4 data:float +lbl_1_rodata_9C8 = .rodata:0x000009C8; // type:object size:0x4 data:float +lbl_1_rodata_9CC = .rodata:0x000009CC; // type:object size:0xC data:4byte +lbl_1_rodata_9D8 = .rodata:0x000009D8; // type:object size:0xC data:4byte +lbl_1_rodata_9E4 = .rodata:0x000009E4; // type:object size:0xC data:4byte +lbl_1_rodata_9F0 = .rodata:0x000009F0; // type:object size:0xC data:4byte +lbl_1_rodata_9FC = .rodata:0x000009FC; // type:object size:0xC data:4byte +lbl_1_rodata_A08 = .rodata:0x00000A08; // type:object size:0xC data:4byte +lbl_1_rodata_A14 = .rodata:0x00000A14; // type:object size:0xC data:4byte +lbl_1_rodata_A20 = .rodata:0x00000A20; // type:object size:0x1 data:byte +lbl_1_rodata_A24 = .rodata:0x00000A24; // type:object size:0x4 data:float +lbl_1_rodata_A28 = .rodata:0x00000A28; // type:object size:0x4 data:float +lbl_1_rodata_A2C = .rodata:0x00000A2C; // type:object size:0x4 data:float +lbl_1_rodata_A30 = .rodata:0x00000A30; // type:object size:0x4 data:float +lbl_1_rodata_A34 = .rodata:0x00000A34; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x4 data:4byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0x8 data:4byte +lbl_1_data_C = .data:0x0000000C; // type:object size:0x2C data:4byte +lbl_1_data_38 = .data:0x00000038; // type:object size:0x9 data:string +lbl_1_data_41 = .data:0x00000041; // type:object size:0x19 data:string +lbl_1_data_5A = .data:0x0000005A; // type:object size:0x1B data:string +lbl_1_data_75 = .data:0x00000075; // type:object size:0x10 data:string +lbl_1_data_85 = .data:0x00000085; // type:object size:0x10 data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0x10 data:string +lbl_1_data_A5 = .data:0x000000A5; // type:object size:0x10 data:string +lbl_1_data_B5 = .data:0x000000B5; // type:object size:0x11 data:string +lbl_1_data_C6 = .data:0x000000C6; // type:object size:0x11 data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x12 data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x12 data:string +lbl_1_data_FB = .data:0x000000FB; // type:object size:0x12 data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0xF data:string +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x19 data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x8 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x10 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x70 +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x18 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x28 +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x2580 +lbl_1_bss_2680 = .bss:0x00002680; // type:object size:0x4 data:4byte +lbl_1_bss_2684 = .bss:0x00002684; // type:object size:0x3E8 +lbl_1_bss_2A6C = .bss:0x00002A6C; // type:object size:0x4E18 +lbl_1_bss_7884 = .bss:0x00007884; // type:object size:0x30 diff --git a/config/GMPJ01_00/rels/m414Dll/splits.txt b/config/GMPJ01_00/rels/m414Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m414Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m414Dll/symbols.txt b/config/GMPJ01_00/rels/m414Dll/symbols.txt new file mode 100644 index 00000000..79f1669a --- /dev/null +++ b/config/GMPJ01_00/rels/m414Dll/symbols.txt @@ -0,0 +1,183 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x87C +fn_1_91C = .text:0x0000091C; // type:function size:0x268 +fn_1_B84 = .text:0x00000B84; // type:function size:0x154 +fn_1_CD8 = .text:0x00000CD8; // type:function size:0x7C +fn_1_D54 = .text:0x00000D54; // type:function size:0x634 +fn_1_1388 = .text:0x00001388; // type:function size:0x3C +fn_1_13C4 = .text:0x000013C4; // type:function size:0x3C +fn_1_1400 = .text:0x00001400; // type:function size:0x3C +fn_1_143C = .text:0x0000143C; // type:function size:0x3C +fn_1_1478 = .text:0x00001478; // type:function size:0x214 +fn_1_168C = .text:0x0000168C; // type:function size:0x3C +fn_1_16C8 = .text:0x000016C8; // type:function size:0x3C +fn_1_1704 = .text:0x00001704; // type:function size:0x3C +fn_1_1740 = .text:0x00001740; // type:function size:0x3C +fn_1_177C = .text:0x0000177C; // type:function size:0x3DC +fn_1_1B58 = .text:0x00001B58; // type:function size:0x3C +fn_1_1B94 = .text:0x00001B94; // type:function size:0x3C +fn_1_1BD0 = .text:0x00001BD0; // type:function size:0x3C +fn_1_1C0C = .text:0x00001C0C; // type:function size:0x3C +fn_1_1C48 = .text:0x00001C48; // type:function size:0x1BC +fn_1_1E04 = .text:0x00001E04; // type:function size:0x1B78 +fn_1_397C = .text:0x0000397C; // type:function size:0xDC +fn_1_3A58 = .text:0x00003A58; // type:function size:0xDC +fn_1_3B34 = .text:0x00003B34; // type:function size:0x214 +fn_1_3D48 = .text:0x00003D48; // type:function size:0x184 +fn_1_3ECC = .text:0x00003ECC; // type:function size:0x3E0 +fn_1_42AC = .text:0x000042AC; // type:function size:0x958 +fn_1_4C04 = .text:0x00004C04; // type:function size:0x70 +fn_1_4C74 = .text:0x00004C74; // type:function size:0x19C +fn_1_4E10 = .text:0x00004E10; // type:function size:0x744 +fn_1_5554 = .text:0x00005554; // type:function size:0xD0 +fn_1_5624 = .text:0x00005624; // type:function size:0xD8 +fn_1_56FC = .text:0x000056FC; // type:function size:0x84 +fn_1_5780 = .text:0x00005780; // type:function size:0x2BC +fn_1_5A3C = .text:0x00005A3C; // type:function size:0x4AC +fn_1_5EE8 = .text:0x00005EE8; // type:function size:0x24C +fn_1_6134 = .text:0x00006134; // type:function size:0x418 +fn_1_654C = .text:0x0000654C; // type:function size:0x90 +fn_1_65DC = .text:0x000065DC; // type:function size:0x68 +fn_1_6644 = .text:0x00006644; // type:function size:0x10B0 +fn_1_76F4 = .text:0x000076F4; // type:function size:0x2B4 +fn_1_79A8 = .text:0x000079A8; // type:function size:0x620 +fn_1_7FC8 = .text:0x00007FC8; // type:function size:0x90C +fn_1_88D4 = .text:0x000088D4; // type:function size:0x78 +fn_1_894C = .text:0x0000894C; // type:function size:0xC4 +fn_1_8A10 = .text:0x00008A10; // type:function size:0x60 +fn_1_8A70 = .text:0x00008A70; // type:function size:0x458 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0x10 +lbl_1_data_20 = .data:0x00000020; // type:object size:0x10 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x20 +lbl_1_data_50 = .data:0x00000050; // type:object size:0x18 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x24 +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x18 +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x10 +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x10 +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x60 +lbl_1_data_124 = .data:0x00000124; // type:object size:0x10 data:string +lbl_1_data_134 = .data:0x00000134; // type:object size:0x7 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0xC data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x3C +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x3C +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x3C +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x4 data:4byte +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x10 +lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x820 data:2byte +lbl_1_bss_910 = .bss:0x00000910; // type:object size:0x10 data:float +lbl_1_bss_920 = .bss:0x00000920; // type:object size:0x10 data:float +lbl_1_bss_930 = .bss:0x00000930; // type:object size:0x8 data:4byte +lbl_1_bss_938 = .bss:0x00000938; // type:object size:0x40 +lbl_1_bss_978 = .bss:0x00000978; // type:object size:0x4 data:4byte +lbl_1_bss_97C = .bss:0x0000097C; // type:object size:0x10 +lbl_1_bss_98C = .bss:0x0000098C; // type:object size:0x4 data:4byte +lbl_1_bss_990 = .bss:0x00000990; // type:object size:0x80 +lbl_1_bss_A10 = .bss:0x00000A10; // type:object size:0x2 data:2byte +lbl_1_bss_A12 = .bss:0x00000A12; // type:object size:0x2 data:2byte diff --git a/config/GMPJ01_00/rels/m415Dll/splits.txt b/config/GMPJ01_00/rels/m415Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m415Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m415Dll/symbols.txt b/config/GMPJ01_00/rels/m415Dll/symbols.txt new file mode 100644 index 00000000..e1777beb --- /dev/null +++ b/config/GMPJ01_00/rels/m415Dll/symbols.txt @@ -0,0 +1,234 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x39C +fn_1_43C = .text:0x0000043C; // type:function size:0x74 +fn_1_4B0 = .text:0x000004B0; // type:function size:0x328 +fn_1_7D8 = .text:0x000007D8; // type:function size:0xCE8 +fn_1_14C0 = .text:0x000014C0; // type:function size:0x64 +fn_1_1524 = .text:0x00001524; // type:function size:0xAC +fn_1_15D0 = .text:0x000015D0; // type:function size:0x390 +fn_1_1960 = .text:0x00001960; // type:function size:0x100 +fn_1_1A60 = .text:0x00001A60; // type:function size:0x10B8 +fn_1_2B18 = .text:0x00002B18; // type:function size:0xFC +fn_1_2C14 = .text:0x00002C14; // type:function size:0x274 +fn_1_2E88 = .text:0x00002E88; // type:function size:0xA0 +fn_1_2F28 = .text:0x00002F28; // type:function size:0x2B8 +fn_1_31E0 = .text:0x000031E0; // type:function size:0x28 +fn_1_3208 = .text:0x00003208; // type:function size:0x438 +fn_1_3640 = .text:0x00003640; // type:function size:0x124 +fn_1_3764 = .text:0x00003764; // type:function size:0x3E0 +fn_1_3B44 = .text:0x00003B44; // type:function size:0xB1C +fn_1_4660 = .text:0x00004660; // type:function size:0x14C0 +fn_1_5B20 = .text:0x00005B20; // type:function size:0x490 +fn_1_5FB0 = .text:0x00005FB0; // type:function size:0x354 +fn_1_6304 = .text:0x00006304; // type:function size:0x64 +fn_1_6368 = .text:0x00006368; // type:function size:0x40 +fn_1_63A8 = .text:0x000063A8; // type:function size:0xA0 +fn_1_6448 = .text:0x00006448; // type:function size:0x94 +fn_1_64DC = .text:0x000064DC; // type:function size:0xA8 +fn_1_6584 = .text:0x00006584; // type:function size:0x108 +fn_1_668C = .text:0x0000668C; // type:function size:0x20 +fn_1_66AC = .text:0x000066AC; // type:function size:0xF0 +fn_1_679C = .text:0x0000679C; // type:function size:0x54 +fn_1_67F0 = .text:0x000067F0; // type:function size:0x168 +fn_1_6958 = .text:0x00006958; // type:function size:0x120 +fn_1_6A78 = .text:0x00006A78; // type:function size:0x30C +fn_1_6D84 = .text:0x00006D84; // type:function size:0x78 +fn_1_6DFC = .text:0x00006DFC; // type:function size:0x11C +fn_1_6F18 = .text:0x00006F18; // type:function size:0x78 +fn_1_6F90 = .text:0x00006F90; // type:function size:0x2D8 +fn_1_7268 = .text:0x00007268; // type:function size:0x2B8 +fn_1_7520 = .text:0x00007520; // type:function size:0x154 +fn_1_7674 = .text:0x00007674; // type:function size:0x3E0 +fn_1_7A54 = .text:0x00007A54; // type:function size:0x214 +fn_1_7C68 = .text:0x00007C68; // type:function size:0x198 +fn_1_7E00 = .text:0x00007E00; // type:function size:0xD8 +fn_1_7ED8 = .text:0x00007ED8; // type:function size:0xBC +fn_1_7F94 = .text:0x00007F94; // type:function size:0x33C +fn_1_82D0 = .text:0x000082D0; // type:function size:0x4B0 +fn_1_8780 = .text:0x00008780; // type:function size:0x138 +fn_1_88B8 = .text:0x000088B8; // type:function size:0xD08 +fn_1_95C0 = .text:0x000095C0; // type:function size:0x12C +fn_1_96EC = .text:0x000096EC; // type:function size:0x1C +fn_1_9708 = .text:0x00009708; // type:function size:0x2C +fn_1_9734 = .text:0x00009734; // type:function size:0x1C +fn_1_9750 = .text:0x00009750; // type:function size:0x184 +fn_1_98D4 = .text:0x000098D4; // type:function size:0xA0 +fn_1_9974 = .text:0x00009974; // type:function size:0xA8 +fn_1_9A1C = .text:0x00009A1C; // type:function size:0x8C +fn_1_9AA8 = .text:0x00009AA8; // type:function size:0x98 +fn_1_9B40 = .text:0x00009B40; // type:function size:0x288 +fn_1_9DC8 = .text:0x00009DC8; // type:function size:0x508 +fn_1_A2D0 = .text:0x0000A2D0; // type:function size:0x530 +fn_1_A800 = .text:0x0000A800; // type:function size:0x120 +fn_1_A920 = .text:0x0000A920; // type:function size:0x2C +fn_1_A94C = .text:0x0000A94C; // type:function size:0x3A8 +fn_1_ACF4 = .text:0x0000ACF4; // type:function size:0x254 +fn_1_AF48 = .text:0x0000AF48; // type:function size:0x80 +fn_1_AFC8 = .text:0x0000AFC8; // type:function size:0x70 +fn_1_B038 = .text:0x0000B038; // type:function size:0x80 +fn_1_B0B8 = .text:0x0000B0B8; // type:function size:0x57C +fn_1_B634 = .text:0x0000B634; // type:function size:0x230 +fn_1_B864 = .text:0x0000B864; // type:function size:0x6C +fn_1_B8D0 = .text:0x0000B8D0; // type:function size:0x70 +fn_1_B940 = .text:0x0000B940; // type:function size:0x74 +fn_1_B9B4 = .text:0x0000B9B4; // type:function size:0x84 +fn_1_BA38 = .text:0x0000BA38; // type:function size:0x88 +fn_1_BAC0 = .text:0x0000BAC0; // type:function size:0x8C +fn_1_BB4C = .text:0x0000BB4C; // type:function size:0x6C +fn_1_BBB8 = .text:0x0000BBB8; // type:function size:0x70 +fn_1_BC28 = .text:0x0000BC28; // type:function size:0x74 +fn_1_BC9C = .text:0x0000BC9C; // type:function size:0x6C +fn_1_BD08 = .text:0x0000BD08; // type:function size:0x70 +fn_1_BD78 = .text:0x0000BD78; // type:function size:0x74 +fn_1_BDEC = .text:0x0000BDEC; // type:function size:0x44 +fn_1_BE30 = .text:0x0000BE30; // type:function size:0x70 +fn_1_BEA0 = .text:0x0000BEA0; // type:function size:0x70 +fn_1_BF10 = .text:0x0000BF10; // type:function size:0x44 +fn_1_BF54 = .text:0x0000BF54; // type:function size:0x70 +fn_1_BFC4 = .text:0x0000BFC4; // type:function size:0x70 +fn_1_C034 = .text:0x0000C034; // type:function size:0x5C +fn_1_C090 = .text:0x0000C090; // type:function size:0x80 +fn_1_C110 = .text:0x0000C110; // type:function size:0x74 +fn_1_C184 = .text:0x0000C184; // type:function size:0x78 +fn_1_C1FC = .text:0x0000C1FC; // type:function size:0x68 +fn_1_C264 = .text:0x0000C264; // type:function size:0x6C +fn_1_C2D0 = .text:0x0000C2D0; // type:function size:0x68 +fn_1_C338 = .text:0x0000C338; // type:function size:0x6C +fn_1_C3A4 = .text:0x0000C3A4; // type:function size:0x6C +fn_1_C410 = .text:0x0000C410; // type:function size:0x78 +fn_1_C488 = .text:0x0000C488; // type:function size:0x98 +fn_1_C520 = .text:0x0000C520; // type:function size:0x6C +fn_1_C58C = .text:0x0000C58C; // type:function size:0x78 +fn_1_C604 = .text:0x0000C604; // type:function size:0x98 +fn_1_C69C = .text:0x0000C69C; // type:function size:0x70 +fn_1_C70C = .text:0x0000C70C; // type:function size:0x78 +fn_1_C784 = .text:0x0000C784; // type:function size:0x98 +fn_1_C81C = .text:0x0000C81C; // type:function size:0x40 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x10 data:byte +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x20 data:byte +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x20 data:byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x10 data:byte +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 data:byte +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x30 data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x10 data:byte +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC +lbl_1_data_40 = .data:0x00000040; // type:object size:0x24 +lbl_1_data_64 = .data:0x00000064; // type:object size:0x4 data:4byte +lbl_1_data_68 = .data:0x00000068; // type:object size:0x7 data:string +lbl_1_data_6F = .data:0x0000006F; // type:object size:0x6 data:string +lbl_1_data_75 = .data:0x00000075; // type:object size:0xB +lbl_1_data_80 = .data:0x00000080; // type:object size:0x28 +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x30 +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x8 data:string +jumptable_1_data_E0 = .data:0x000000E0; // type:object size:0x28 scope:local +lbl_1_data_108 = .data:0x00000108; // type:object size:0x8 data:string +lbl_1_data_110 = .data:0x00000110; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x30 +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x200 +lbl_1_bss_234 = .bss:0x00000234; // type:object size:0x100 +lbl_1_bss_334 = .bss:0x00000334; // type:object size:0x4 data:4byte +lbl_1_bss_338 = .bss:0x00000338; // type:object size:0x2 data:2byte +lbl_1_bss_33A = .bss:0x0000033A; // type:object size:0x8 data:2byte +lbl_1_bss_342 = .bss:0x00000342; // type:object size:0x2 data:2byte +lbl_1_bss_344 = .bss:0x00000344; // type:object size:0x2 data:2byte +lbl_1_bss_346 = .bss:0x00000346; // type:object size:0x2 data:2byte +lbl_1_bss_348 = .bss:0x00000348; // type:object size:0x2 data:2byte +lbl_1_bss_34A = .bss:0x0000034A; // type:object size:0x2 data:2byte +lbl_1_bss_34C = .bss:0x0000034C; // type:object size:0x10 +lbl_1_bss_35C = .bss:0x0000035C; // type:object size:0x4 data:4byte +lbl_1_bss_360 = .bss:0x00000360; // type:object size:0x4 data:4byte +lbl_1_bss_364 = .bss:0x00000364; // type:object size:0x4 data:4byte +lbl_1_bss_368 = .bss:0x00000368; // type:object size:0x4 data:4byte +lbl_1_bss_36C = .bss:0x0000036C; // type:object size:0x44 data:4byte diff --git a/config/GMPJ01_00/rels/m416Dll/splits.txt b/config/GMPJ01_00/rels/m416Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m416Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m416Dll/symbols.txt b/config/GMPJ01_00/rels/m416Dll/symbols.txt new file mode 100644 index 00000000..6b6bdfe8 --- /dev/null +++ b/config/GMPJ01_00/rels/m416Dll/symbols.txt @@ -0,0 +1,209 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x3B8 +fn_1_458 = .text:0x00000458; // type:function size:0xA4 +fn_1_4FC = .text:0x000004FC; // type:function size:0xCEC +fn_1_11E8 = .text:0x000011E8; // type:function size:0x58 +fn_1_1240 = .text:0x00001240; // type:function size:0x10 +fn_1_1250 = .text:0x00001250; // type:function size:0x10 +fn_1_1260 = .text:0x00001260; // type:function size:0x220 +fn_1_1480 = .text:0x00001480; // type:function size:0x68 +fn_1_14E8 = .text:0x000014E8; // type:function size:0x84 +fn_1_156C = .text:0x0000156C; // type:function size:0x3F8 +fn_1_1964 = .text:0x00001964; // type:function size:0x178 +fn_1_1ADC = .text:0x00001ADC; // type:function size:0x1A4 +fn_1_1C80 = .text:0x00001C80; // type:function size:0x104 +fn_1_1D84 = .text:0x00001D84; // type:function size:0xBAC +fn_1_2930 = .text:0x00002930; // type:function size:0xAC +fn_1_29DC = .text:0x000029DC; // type:function size:0x4C8 +fn_1_2EA4 = .text:0x00002EA4; // type:function size:0x778 +fn_1_361C = .text:0x0000361C; // type:function size:0x280 +fn_1_389C = .text:0x0000389C; // type:function size:0x54 +fn_1_38F0 = .text:0x000038F0; // type:function size:0x10D4 +fn_1_49C4 = .text:0x000049C4; // type:function size:0x640 +fn_1_5004 = .text:0x00005004; // type:function size:0x54 +fn_1_5058 = .text:0x00005058; // type:function size:0x264 +fn_1_52BC = .text:0x000052BC; // type:function size:0x274 +fn_1_5530 = .text:0x00005530; // type:function size:0x704 +fn_1_5C34 = .text:0x00005C34; // type:function size:0xE4 +fn_1_5D18 = .text:0x00005D18; // type:function size:0x60 +fn_1_5D78 = .text:0x00005D78; // type:function size:0x3C4 +fn_1_613C = .text:0x0000613C; // type:function size:0x504 +fn_1_6640 = .text:0x00006640; // type:function size:0x4A8 +fn_1_6AE8 = .text:0x00006AE8; // type:function size:0x304 +fn_1_6DEC = .text:0x00006DEC; // type:function size:0x70 +fn_1_6E5C = .text:0x00006E5C; // type:function size:0x240 +fn_1_709C = .text:0x0000709C; // type:function size:0x250 +fn_1_72EC = .text:0x000072EC; // type:function size:0x6E4 +fn_1_79D0 = .text:0x000079D0; // type:function size:0x84 +fn_1_7A54 = .text:0x00007A54; // type:function size:0x20 +fn_1_7A74 = .text:0x00007A74; // type:function size:0x300 +fn_1_7D74 = .text:0x00007D74; // type:function size:0x1BC +fn_1_7F30 = .text:0x00007F30; // type:function size:0x484 +fn_1_83B4 = .text:0x000083B4; // type:function size:0x550 +fn_1_8904 = .text:0x00008904; // type:function size:0xB8 +fn_1_89BC = .text:0x000089BC; // type:function size:0x4E4 +fn_1_8EA0 = .text:0x00008EA0; // type:function size:0x14 +fn_1_8EB4 = .text:0x00008EB4; // type:function size:0xAC +fn_1_8F60 = .text:0x00008F60; // type:function size:0x90 +fn_1_8FF0 = .text:0x00008FF0; // type:function size:0x4 +fn_1_8FF4 = .text:0x00008FF4; // type:function size:0x34 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x1 data:byte +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float +lbl_1_data_38 = .data:0x00000038; // type:object size:0x1 data:byte +lbl_1_data_3C = .data:0x0000003C; // type:object size:0x1 data:byte +lbl_1_data_40 = .data:0x00000040; // type:object size:0x24 +lbl_1_data_64 = .data:0x00000064; // type:object size:0x4 data:4byte +jumptable_1_data_68 = .data:0x00000068; // type:object size:0x2C scope:local +lbl_1_data_94 = .data:0x00000094; // type:object size:0x1C data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x40 +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x1C +lbl_1_data_10C = .data:0x0000010C; // type:object size:0x48 +lbl_1_data_154 = .data:0x00000154; // type:object size:0x24 +lbl_1_data_178 = .data:0x00000178; // type:object size:0x8 +lbl_1_data_180 = .data:0x00000180; // type:object size:0x18 +lbl_1_data_198 = .data:0x00000198; // type:object size:0x30 +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x20 +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0xC data:4byte +lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x24 +lbl_1_data_218 = .data:0x00000218; // type:object size:0x48 +lbl_1_data_260 = .data:0x00000260; // type:object size:0x8 data:float +lbl_1_data_268 = .data:0x00000268; // type:object size:0x1 data:byte +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x60 data:float +lbl_1_data_2CC = .data:0x000002CC; // type:object size:0x18 +lbl_1_data_2E4 = .data:0x000002E4; // type:object size:0x8 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x10 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x900 +lbl_1_bss_914 = .bss:0x00000914; // type:object size:0x4 data:4byte +lbl_1_bss_918 = .bss:0x00000918; // type:object size:0x2 data:2byte +lbl_1_bss_91A = .bss:0x0000091A; // type:object size:0x6 data:2byte +lbl_1_bss_920 = .bss:0x00000920; // type:object size:0x4 data:float +lbl_1_bss_924 = .bss:0x00000924; // type:object size:0x2 data:2byte +lbl_1_bss_926 = .bss:0x00000926; // type:object size:0x2 data:2byte +lbl_1_bss_928 = .bss:0x00000928; // type:object size:0x2 data:2byte +lbl_1_bss_92A = .bss:0x0000092A; // type:object size:0x2 data:2byte +lbl_1_bss_92E = .bss:0x0000092E; // type:object size:0x2 data:2byte +lbl_1_bss_930 = .bss:0x00000930; // type:object size:0x20 data:4byte +lbl_1_bss_950 = .bss:0x00000950; // type:object size:0x4 data:4byte +lbl_1_bss_954 = .bss:0x00000954; // type:object size:0x4 data:4byte +lbl_1_bss_958 = .bss:0x00000958; // type:object size:0x4 data:4byte +lbl_1_bss_95C = .bss:0x0000095C; // type:object size:0x2 data:2byte +lbl_1_bss_960 = .bss:0x00000960; // type:object size:0x8 data:4byte +lbl_1_bss_968 = .bss:0x00000968; // type:object size:0x800 data:2byte +lbl_1_bss_1168 = .bss:0x00001168; // type:object size:0x2 data:2byte +lbl_1_bss_116C = .bss:0x0000116C; // type:object size:0x8 data:float +lbl_1_bss_1174 = .bss:0x00001174; // type:object size:0x8 +lbl_1_bss_117C = .bss:0x0000117C; // type:object size:0x4 data:float +lbl_1_bss_1180 = .bss:0x00001180; // type:object size:0x4 data:4byte +lbl_1_bss_1184 = .bss:0x00001184; // type:object size:0x4 data:4byte +lbl_1_bss_1188 = .bss:0x00001188; // type:object size:0x4 data:4byte +lbl_1_bss_118C = .bss:0x0000118C; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m417Dll/splits.txt b/config/GMPJ01_00/rels/m417Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m417Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m417Dll/symbols.txt b/config/GMPJ01_00/rels/m417Dll/symbols.txt new file mode 100644 index 00000000..944d6d8e --- /dev/null +++ b/config/GMPJ01_00/rels/m417Dll/symbols.txt @@ -0,0 +1,366 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x438 +fn_1_4D8 = .text:0x000004D8; // type:function size:0xD8 +fn_1_5B0 = .text:0x000005B0; // type:function size:0x250 +fn_1_800 = .text:0x00000800; // type:function size:0x190 +fn_1_990 = .text:0x00000990; // type:function size:0x518 +fn_1_EA8 = .text:0x00000EA8; // type:function size:0x534 +fn_1_13DC = .text:0x000013DC; // type:function size:0x3E4 +fn_1_17C0 = .text:0x000017C0; // type:function size:0x4E8 +fn_1_1CA8 = .text:0x00001CA8; // type:function size:0x4B0 +fn_1_2158 = .text:0x00002158; // type:function size:0x570 +fn_1_26C8 = .text:0x000026C8; // type:function size:0x18 +fn_1_26E0 = .text:0x000026E0; // type:function size:0x18 +fn_1_26F8 = .text:0x000026F8; // type:function size:0x18 +fn_1_2710 = .text:0x00002710; // type:function size:0x18 +fn_1_2728 = .text:0x00002728; // type:function size:0x18 +fn_1_2740 = .text:0x00002740; // type:function size:0x30 +fn_1_2770 = .text:0x00002770; // type:function size:0x30 +fn_1_27A0 = .text:0x000027A0; // type:function size:0x30 +fn_1_27D0 = .text:0x000027D0; // type:function size:0x38 +fn_1_2808 = .text:0x00002808; // type:function size:0x40 +fn_1_2848 = .text:0x00002848; // type:function size:0x348 +fn_1_2B90 = .text:0x00002B90; // type:function size:0x378 +fn_1_2F08 = .text:0x00002F08; // type:function size:0x11C +fn_1_3024 = .text:0x00003024; // type:function size:0xB4 +fn_1_30D8 = .text:0x000030D8; // type:function size:0x34 +fn_1_310C = .text:0x0000310C; // type:function size:0x168 +fn_1_3274 = .text:0x00003274; // type:function size:0x140 +fn_1_33B4 = .text:0x000033B4; // type:function size:0x4C +fn_1_3400 = .text:0x00003400; // type:function size:0x134 +fn_1_3534 = .text:0x00003534; // type:function size:0x40 +fn_1_3574 = .text:0x00003574; // type:function size:0x22C +fn_1_37A0 = .text:0x000037A0; // type:function size:0x37C +fn_1_3B1C = .text:0x00003B1C; // type:function size:0xA8 +fn_1_3BC4 = .text:0x00003BC4; // type:function size:0x190 +fn_1_3D54 = .text:0x00003D54; // type:function size:0x4 +fn_1_3D58 = .text:0x00003D58; // type:function size:0xE70 +fn_1_4BC8 = .text:0x00004BC8; // type:function size:0x29C +fn_1_4E64 = .text:0x00004E64; // type:function size:0x94C +fn_1_57B0 = .text:0x000057B0; // type:function size:0x68C +fn_1_5E3C = .text:0x00005E3C; // type:function size:0x210 +fn_1_604C = .text:0x0000604C; // type:function size:0xAB8 +fn_1_6B04 = .text:0x00006B04; // type:function size:0x5C +fn_1_6B60 = .text:0x00006B60; // type:function size:0x34 +fn_1_6B94 = .text:0x00006B94; // type:function size:0x1D0 +fn_1_6D64 = .text:0x00006D64; // type:function size:0x7AC +fn_1_7510 = .text:0x00007510; // type:function size:0xAC +fn_1_75BC = .text:0x000075BC; // type:function size:0x34 +fn_1_75F0 = .text:0x000075F0; // type:function size:0x10 +fn_1_7600 = .text:0x00007600; // type:function size:0x24 +fn_1_7624 = .text:0x00007624; // type:function size:0x298 +fn_1_78BC = .text:0x000078BC; // type:function size:0xAC +fn_1_7968 = .text:0x00007968; // type:function size:0xC0 +fn_1_7A28 = .text:0x00007A28; // type:function size:0xC +fn_1_7A34 = .text:0x00007A34; // type:function size:0x234 +fn_1_7C68 = .text:0x00007C68; // type:function size:0x24 +fn_1_7C8C = .text:0x00007C8C; // type:function size:0x670 +fn_1_82FC = .text:0x000082FC; // type:function size:0x3EC +fn_1_86E8 = .text:0x000086E8; // type:function size:0x424 +fn_1_8B0C = .text:0x00008B0C; // type:function size:0x224 +fn_1_8D30 = .text:0x00008D30; // type:function size:0x114 +fn_1_8E44 = .text:0x00008E44; // type:function size:0x39C +fn_1_91E0 = .text:0x000091E0; // type:function size:0xB8 +fn_1_9298 = .text:0x00009298; // type:function size:0x784 +fn_1_9A1C = .text:0x00009A1C; // type:function size:0x1F8 +fn_1_9C14 = .text:0x00009C14; // type:function size:0x3DC +fn_1_9FF0 = .text:0x00009FF0; // type:function size:0xD34 +fn_1_AD24 = .text:0x0000AD24; // type:function size:0xA0 +fn_1_ADC4 = .text:0x0000ADC4; // type:function size:0x4FC +fn_1_B2C0 = .text:0x0000B2C0; // type:function size:0x5E0 +fn_1_B8A0 = .text:0x0000B8A0; // type:function size:0x18C +fn_1_BA2C = .text:0x0000BA2C; // type:function size:0x74 +fn_1_BAA0 = .text:0x0000BAA0; // type:function size:0x1D0 +fn_1_BC70 = .text:0x0000BC70; // type:function size:0x3C +fn_1_BCAC = .text:0x0000BCAC; // type:function size:0xF0 +fn_1_BD9C = .text:0x0000BD9C; // type:function size:0x214 +fn_1_BFB0 = .text:0x0000BFB0; // type:function size:0xA0 +fn_1_C050 = .text:0x0000C050; // type:function size:0x3E4 +fn_1_C434 = .text:0x0000C434; // type:function size:0x224 +fn_1_C658 = .text:0x0000C658; // type:function size:0x134 +fn_1_C78C = .text:0x0000C78C; // type:function size:0xF0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC data:4byte +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x24 data:4byte +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x24 data:4byte +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0xC data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x1 data:byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x1 data:byte +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:4byte +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x10 data:4byte +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x10 data:4byte +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x10 data:4byte +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0xC data:4byte +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0xC data:4byte +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0xC data:4byte +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x10 data:4byte +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0xC data:4byte +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:4byte +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x18 data:4byte +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x18 data:4byte +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 data:double +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:double +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x8 data:double +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 data:double +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0x10 data:float +lbl_1_data_50 = .data:0x00000050; // type:object size:0x40 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x84 +lbl_1_data_114 = .data:0x00000114; // type:object size:0xDC +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x38 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x2 data:2byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x110 data:float +lbl_1_bss_178 = .bss:0x00000178; // type:object size:0x700 data:4byte +lbl_1_bss_878 = .bss:0x00000878; // type:object size:0x8 data:4byte +lbl_1_bss_880 = .bss:0x00000880; // type:object size:0x4 data:4byte +lbl_1_bss_884 = .bss:0x00000884; // type:object size:0x4 data:4byte +lbl_1_bss_888 = .bss:0x00000888; // type:object size:0x10 +lbl_1_bss_898 = .bss:0x00000898; // type:object size:0x10 data:4byte +lbl_1_bss_8A8 = .bss:0x000008A8; // type:object size:0x4 data:4byte +lbl_1_bss_8AC = .bss:0x000008AC; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m418Dll/splits.txt b/config/GMPJ01_00/rels/m418Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m418Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m418Dll/symbols.txt b/config/GMPJ01_00/rels/m418Dll/symbols.txt new file mode 100644 index 00000000..964068e3 --- /dev/null +++ b/config/GMPJ01_00/rels/m418Dll/symbols.txt @@ -0,0 +1,303 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x74 +fn_1_74 = .text:0x00000074; // type:function size:0xE4 +fn_1_158 = .text:0x00000158; // type:function size:0x28 +fn_1_180 = .text:0x00000180; // type:function size:0xC8 +fn_1_248 = .text:0x00000248; // type:function size:0x20 +fn_1_268 = .text:0x00000268; // type:function size:0x298 +fn_1_500 = .text:0x00000500; // type:function size:0x118 +fn_1_618 = .text:0x00000618; // type:function size:0xC4 +fn_1_6DC = .text:0x000006DC; // type:function size:0x38 +fn_1_714 = .text:0x00000714; // type:function size:0x34 +fn_1_748 = .text:0x00000748; // type:function size:0x38 +fn_1_780 = .text:0x00000780; // type:function size:0x1D0 +fn_1_950 = .text:0x00000950; // type:function size:0x48 +fn_1_998 = .text:0x00000998; // type:function size:0x110 +fn_1_AA8 = .text:0x00000AA8; // type:function size:0xA4 +fn_1_B4C = .text:0x00000B4C; // type:function size:0x328 +fn_1_E74 = .text:0x00000E74; // type:function size:0x67C +fn_1_14F0 = .text:0x000014F0; // type:function size:0x3BC +fn_1_18AC = .text:0x000018AC; // type:function size:0x50 +fn_1_18FC = .text:0x000018FC; // type:function size:0x7B4 +fn_1_20B0 = .text:0x000020B0; // type:function size:0xC8 +fn_1_2178 = .text:0x00002178; // type:function size:0x71C +fn_1_2894 = .text:0x00002894; // type:function size:0x10C +fn_1_29A0 = .text:0x000029A0; // type:function size:0x224 +fn_1_2BC4 = .text:0x00002BC4; // type:function size:0x48 +fn_1_2C0C = .text:0x00002C0C; // type:function size:0x448 +fn_1_3054 = .text:0x00003054; // type:function size:0xE4 +fn_1_3138 = .text:0x00003138; // type:function size:0x108 +fn_1_3240 = .text:0x00003240; // type:function size:0x1C8 +fn_1_3408 = .text:0x00003408; // type:function size:0x3C +fn_1_3444 = .text:0x00003444; // type:function size:0xA6C +fn_1_3EB0 = .text:0x00003EB0; // type:function size:0x814 +fn_1_46C4 = .text:0x000046C4; // type:function size:0x5C0 +fn_1_4C84 = .text:0x00004C84; // type:function size:0x2DC +fn_1_4F60 = .text:0x00004F60; // type:function size:0x3F8 +fn_1_5358 = .text:0x00005358; // type:function size:0xE4 +fn_1_543C = .text:0x0000543C; // type:function size:0x150 +fn_1_558C = .text:0x0000558C; // type:function size:0x120 +fn_1_56AC = .text:0x000056AC; // type:function size:0xBC +fn_1_5768 = .text:0x00005768; // type:function size:0x7C +fn_1_57E4 = .text:0x000057E4; // type:function size:0x18C +fn_1_5970 = .text:0x00005970; // type:function size:0xFC +fn_1_5A6C = .text:0x00005A6C; // type:function size:0x2BC +fn_1_5D28 = .text:0x00005D28; // type:function size:0x30 +fn_1_5D58 = .text:0x00005D58; // type:function size:0x98 +fn_1_5DF0 = .text:0x00005DF0; // type:function size:0x248 +fn_1_6038 = .text:0x00006038; // type:function size:0x2DC +fn_1_6314 = .text:0x00006314; // type:function size:0xE4 +fn_1_63F8 = .text:0x000063F8; // type:function size:0x118 +fn_1_6510 = .text:0x00006510; // type:function size:0x108 +fn_1_6618 = .text:0x00006618; // type:function size:0x128 +fn_1_6740 = .text:0x00006740; // type:function size:0xC8 +fn_1_6808 = .text:0x00006808; // type:function size:0x10C +fn_1_6914 = .text:0x00006914; // type:function size:0x4B8 +fn_1_6DCC = .text:0x00006DCC; // type:function size:0xA0 +fn_1_6E6C = .text:0x00006E6C; // type:function size:0x48 +fn_1_6EB4 = .text:0x00006EB4; // type:function size:0x84 +fn_1_6F38 = .text:0x00006F38; // type:function size:0x35C +fn_1_7294 = .text:0x00007294; // type:function size:0x4 +fn_1_7298 = .text:0x00007298; // type:function size:0x2D8 +fn_1_7570 = .text:0x00007570; // type:function size:0x74 +fn_1_75E4 = .text:0x000075E4; // type:function size:0x214 +fn_1_77F8 = .text:0x000077F8; // type:function size:0x68 +fn_1_7860 = .text:0x00007860; // type:function size:0x208 +fn_1_7A68 = .text:0x00007A68; // type:function size:0x100 +fn_1_7B68 = .text:0x00007B68; // type:function size:0x218 +fn_1_7D80 = .text:0x00007D80; // type:function size:0xA4 +fn_1_7E24 = .text:0x00007E24; // type:function size:0xF8 +fn_1_7F1C = .text:0x00007F1C; // type:function size:0xB8 +fn_1_7FD4 = .text:0x00007FD4; // type:function size:0x1CC +fn_1_81A0 = .text:0x000081A0; // type:function size:0x4 +fn_1_81A4 = .text:0x000081A4; // type:function size:0x2DC +fn_1_8480 = .text:0x00008480; // type:function size:0x30 +fn_1_84B0 = .text:0x000084B0; // type:function size:0x98 +fn_1_8548 = .text:0x00008548; // type:function size:0x120 +fn_1_8668 = .text:0x00008668; // type:function size:0xC0 +fn_1_8728 = .text:0x00008728; // type:function size:0xA8 +fn_1_87D0 = .text:0x000087D0; // type:function size:0xBC +fn_1_888C = .text:0x0000888C; // type:function size:0x28 +fn_1_88B4 = .text:0x000088B4; // type:function size:0xFC +fn_1_89B0 = .text:0x000089B0; // type:function size:0x164 +fn_1_8B14 = .text:0x00008B14; // type:function size:0x170 +fn_1_8C84 = .text:0x00008C84; // type:function size:0xEC +fn_1_8D70 = .text:0x00008D70; // type:function size:0x204 +fn_1_8F74 = .text:0x00008F74; // type:function size:0x120 +fn_1_9094 = .text:0x00009094; // type:function size:0x48 +fn_1_90DC = .text:0x000090DC; // type:function size:0x64 +fn_1_9140 = .text:0x00009140; // type:function size:0xA4 +fn_1_91E4 = .text:0x000091E4; // type:function size:0x108 +fn_1_92EC = .text:0x000092EC; // type:function size:0x48 +fn_1_9334 = .text:0x00009334; // type:function size:0x30 +fn_1_9364 = .text:0x00009364; // type:function size:0x98 +fn_1_93FC = .text:0x000093FC; // type:function size:0x130 +fn_1_952C = .text:0x0000952C; // type:function size:0x60 +fn_1_958C = .text:0x0000958C; // type:function size:0x618 +fn_1_9BA4 = .text:0x00009BA4; // type:function size:0x3F0 +fn_1_9F94 = .text:0x00009F94; // type:function size:0x1BC +_prolog = .text:0x0000A150; // type:function size:0x54 scope:global +_epilog = .text:0x0000A1A4; // type:function size:0x4C scope:global +fn_1_A1F0 = .text:0x0000A1F0; // type:function size:0x398 +fn_1_A588 = .text:0x0000A588; // type:function size:0x398 +fn_1_A920 = .text:0x0000A920; // type:function size:0x20 +fn_1_A940 = .text:0x0000A940; // type:function size:0x28 +fn_1_A968 = .text:0x0000A968; // type:function size:0xC8 +fn_1_AA30 = .text:0x0000AA30; // type:function size:0xBC +fn_1_AAEC = .text:0x0000AAEC; // type:function size:0xD8 +fn_1_ABC4 = .text:0x0000ABC4; // type:function size:0x150 +fn_1_AD14 = .text:0x0000AD14; // type:function size:0x178 +fn_1_AE8C = .text:0x0000AE8C; // type:function size:0x50 +fn_1_AEDC = .text:0x0000AEDC; // type:function size:0x5C +fn_1_AF38 = .text:0x0000AF38; // type:function size:0x88 +fn_1_AFC0 = .text:0x0000AFC0; // type:function size:0x74 +fn_1_B034 = .text:0x0000B034; // type:function size:0x94 +fn_1_B0C8 = .text:0x0000B0C8; // type:function size:0x3C +fn_1_B104 = .text:0x0000B104; // type:function size:0x318 +fn_1_B41C = .text:0x0000B41C; // type:function size:0x3C +fn_1_B458 = .text:0x0000B458; // type:function size:0x4C +fn_1_B4A4 = .text:0x0000B4A4; // type:function size:0x26C +fn_1_B710 = .text:0x0000B710; // type:function size:0x26C +fn_1_B97C = .text:0x0000B97C; // type:function size:0x27C +fn_1_BBF8 = .text:0x0000BBF8; // type:function size:0x2B4 +fn_1_BEAC = .text:0x0000BEAC; // type:function size:0x46C +fn_1_C318 = .text:0x0000C318; // type:function size:0x454 +fn_1_C76C = .text:0x0000C76C; // type:function size:0x48C +fn_1_CBF8 = .text:0x0000CBF8; // type:function size:0x658 +fn_1_D250 = .text:0x0000D250; // type:function size:0x4C4 +fn_1_D714 = .text:0x0000D714; // type:function size:0x4FC +fn_1_DC10 = .text:0x0000DC10; // type:function size:0x6C8 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0xC data:4byte +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0xC data:4byte +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0xC data:4byte +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0xC data:4byte +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0xC data:4byte +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:4byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0xC data:4byte +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x10 data:4byte +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 data:4byte +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x10 data:4byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x10 data:4byte +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC data:4byte +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0xC data:4byte +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0xC data:4byte +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0xC data:4byte +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0xC data:4byte +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0xC data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0xC data:4byte +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0xC data:4byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0xC data:4byte +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0xC data:4byte +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0xC data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0xC data:4byte +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0xC data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 data:4byte +lbl_1_data_8 = .data:0x00000008; // type:object size:0x4 data:4byte +lbl_1_data_C = .data:0x0000000C; // type:object size:0x12 data:string +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x13 data:string +lbl_1_data_31 = .data:0x00000031; // type:object size:0x10 data:string +lbl_1_data_41 = .data:0x00000041; // type:object size:0x10 data:string +lbl_1_data_51 = .data:0x00000051; // type:object size:0x10 data:string +lbl_1_data_61 = .data:0x00000061; // type:object size:0x10 data:string +lbl_1_data_71 = .data:0x00000071; // type:object size:0xD data:string +lbl_1_data_7E = .data:0x0000007E; // type:object size:0xE data:string +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x6C data:4byte +jumptable_1_data_F8 = .data:0x000000F8; // type:object size:0x88 scope:local +lbl_1_data_180 = .data:0x00000180; // type:object size:0x12 data:string +lbl_1_data_192 = .data:0x00000192; // type:object size:0x15 data:string +lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x19 data:string +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x20 +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x60 +lbl_1_data_240 = .data:0x00000240; // type:object size:0x24 +lbl_1_data_264 = .data:0x00000264; // type:object size:0x30 +lbl_1_data_294 = .data:0x00000294; // type:object size:0x24 +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x60 +lbl_1_data_318 = .data:0x00000318; // type:object size:0x30 +lbl_1_data_348 = .data:0x00000348; // type:object size:0x84 +lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x30 +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x48 +lbl_1_data_444 = .data:0x00000444; // type:object size:0x60 +jumptable_1_data_4A4 = .data:0x000004A4; // type:object size:0x28 scope:local +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x18 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x18 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x18 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0xB4 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x54 data:4byte +lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x70 +lbl_1_bss_1E0 = .bss:0x000001E0; // type:object size:0x14 data:4byte +lbl_1_bss_1F4 = .bss:0x000001F4; // type:object size:0x4C data:4byte +lbl_1_bss_240 = .bss:0x00000240; // type:object size:0x2C data:4byte +lbl_1_bss_26C = .bss:0x0000026C; // type:object size:0x180 +lbl_1_bss_3EC = .bss:0x000003EC; // type:object size:0x44 data:4byte diff --git a/config/GMPJ01_00/rels/m419Dll/splits.txt b/config/GMPJ01_00/rels/m419Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m419Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m419Dll/symbols.txt b/config/GMPJ01_00/rels/m419Dll/symbols.txt new file mode 100644 index 00000000..7b1b3da9 --- /dev/null +++ b/config/GMPJ01_00/rels/m419Dll/symbols.txt @@ -0,0 +1,184 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x400 +fn_1_4A0 = .text:0x000004A0; // type:function size:0xDC +fn_1_57C = .text:0x0000057C; // type:function size:0x2CC +fn_1_848 = .text:0x00000848; // type:function size:0x288 +fn_1_AD0 = .text:0x00000AD0; // type:function size:0x488 +fn_1_F58 = .text:0x00000F58; // type:function size:0x102C +fn_1_1F84 = .text:0x00001F84; // type:function size:0x128 +fn_1_20AC = .text:0x000020AC; // type:function size:0x128 +fn_1_21D4 = .text:0x000021D4; // type:function size:0x80 +fn_1_2254 = .text:0x00002254; // type:function size:0x4F0 +fn_1_2744 = .text:0x00002744; // type:function size:0x498 +fn_1_2BDC = .text:0x00002BDC; // type:function size:0x220 +fn_1_2DFC = .text:0x00002DFC; // type:function size:0x4FC +fn_1_32F8 = .text:0x000032F8; // type:function size:0x154 +fn_1_344C = .text:0x0000344C; // type:function size:0x1398 +fn_1_47E4 = .text:0x000047E4; // type:function size:0x33C +fn_1_4B20 = .text:0x00004B20; // type:function size:0x334 +fn_1_4E54 = .text:0x00004E54; // type:function size:0xB8 +fn_1_4F0C = .text:0x00004F0C; // type:function size:0xC0 +fn_1_4FCC = .text:0x00004FCC; // type:function size:0x6C +fn_1_5038 = .text:0x00005038; // type:function size:0x6C +fn_1_50A4 = .text:0x000050A4; // type:function size:0x244 +fn_1_52E8 = .text:0x000052E8; // type:function size:0x570 +fn_1_5858 = .text:0x00005858; // type:function size:0x104 +fn_1_595C = .text:0x0000595C; // type:function size:0x17C +fn_1_5AD8 = .text:0x00005AD8; // type:function size:0x45C +fn_1_5F34 = .text:0x00005F34; // type:function size:0x358 +fn_1_628C = .text:0x0000628C; // type:function size:0x334 +fn_1_65C0 = .text:0x000065C0; // type:function size:0x1E0 +fn_1_67A0 = .text:0x000067A0; // type:function size:0x564 +fn_1_6D04 = .text:0x00006D04; // type:function size:0x198 +fn_1_6E9C = .text:0x00006E9C; // type:function size:0xA18 +fn_1_78B4 = .text:0x000078B4; // type:function size:0x223C +fn_1_9AF0 = .text:0x00009AF0; // type:function size:0x130C +fn_1_ADFC = .text:0x0000ADFC; // type:function size:0x258 +fn_1_B054 = .text:0x0000B054; // type:function size:0x2E78 +fn_1_DECC = .text:0x0000DECC; // type:function size:0x70 +fn_1_DF3C = .text:0x0000DF3C; // type:function size:0x5C +fn_1_DF98 = .text:0x0000DF98; // type:function size:0x17A4 +fn_1_F73C = .text:0x0000F73C; // type:function size:0x280 +fn_1_F9BC = .text:0x0000F9BC; // type:function size:0x89C +fn_1_10258 = .text:0x00010258; // type:function size:0x248 +fn_1_104A0 = .text:0x000104A0; // type:function size:0x60 +fn_1_10500 = .text:0x00010500; // type:function size:0x3E0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 +lbl_1_data_20 = .data:0x00000020; // type:object size:0x2C +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x10 +lbl_1_data_5C = .data:0x0000005C; // type:object size:0x60 +lbl_1_data_BC = .data:0x000000BC; // type:object size:0xB data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x60 +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x1 data:byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x20 +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x20 +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0xC data:float +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0xC data:float +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0xC data:float +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0xB8 data:4byte +lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x10 +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x58 data:2byte +lbl_1_bss_1E8 = .bss:0x000001E8; // type:object size:0x18 data:2byte +lbl_1_bss_200 = .bss:0x00000200; // type:object size:0x380 +lbl_1_bss_580 = .bss:0x00000580; // type:object size:0x4 data:4byte +lbl_1_bss_584 = .bss:0x00000584; // type:object size:0x10 data:4byte +lbl_1_bss_594 = .bss:0x00000594; // type:object size:0x10 +lbl_1_bss_5A4 = .bss:0x000005A4; // type:object size:0x4 data:4byte +lbl_1_bss_5A8 = .bss:0x000005A8; // type:object size:0x4 data:4byte +lbl_1_bss_5AC = .bss:0x000005AC; // type:object size:0x4 data:4byte +lbl_1_bss_5B0 = .bss:0x000005B0; // type:object size:0x4 data:4byte +lbl_1_bss_5B4 = .bss:0x000005B4; // type:object size:0x4 data:4byte +lbl_1_bss_5B8 = .bss:0x000005B8; // type:object size:0x2 data:2byte +lbl_1_bss_5BA = .bss:0x000005BA; // type:object size:0x2 data:2byte +lbl_1_bss_5BC = .bss:0x000005BC; // type:object size:0x2 data:2byte +lbl_1_bss_5BE = .bss:0x000005BE; // type:object size:0x2 data:2byte +lbl_1_bss_5C2 = .bss:0x000005C2; // type:object size:0x2 data:2byte diff --git a/config/GMPJ01_00/rels/m420dll/splits.txt b/config/GMPJ01_00/rels/m420dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m420dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m420dll/symbols.txt b/config/GMPJ01_00/rels/m420dll/symbols.txt new file mode 100644 index 00000000..dcca974e --- /dev/null +++ b/config/GMPJ01_00/rels/m420dll/symbols.txt @@ -0,0 +1,249 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x78 +fn_1_118 = .text:0x00000118; // type:function size:0x80 +fn_1_198 = .text:0x00000198; // type:function size:0x23C +fn_1_3D4 = .text:0x000003D4; // type:function size:0x68 +fn_1_43C = .text:0x0000043C; // type:function size:0x8D8 +fn_1_D14 = .text:0x00000D14; // type:function size:0x84 +fn_1_D98 = .text:0x00000D98; // type:function size:0x1B0 +fn_1_F48 = .text:0x00000F48; // type:function size:0x2C +fn_1_F74 = .text:0x00000F74; // type:function size:0xBC +fn_1_1030 = .text:0x00001030; // type:function size:0xBC +fn_1_10EC = .text:0x000010EC; // type:function size:0x98 +fn_1_1184 = .text:0x00001184; // type:function size:0x718 +fn_1_189C = .text:0x0000189C; // type:function size:0x214 +fn_1_1AB0 = .text:0x00001AB0; // type:function size:0xDC +fn_1_1B8C = .text:0x00001B8C; // type:function size:0x288 +fn_1_1E14 = .text:0x00001E14; // type:function size:0x50 +fn_1_1E64 = .text:0x00001E64; // type:function size:0xB0 +fn_1_1F14 = .text:0x00001F14; // type:function size:0x40 +fn_1_1F54 = .text:0x00001F54; // type:function size:0x40 +fn_1_1F94 = .text:0x00001F94; // type:function size:0x78 +fn_1_200C = .text:0x0000200C; // type:function size:0xE0 +fn_1_20EC = .text:0x000020EC; // type:function size:0x30 +fn_1_211C = .text:0x0000211C; // type:function size:0x58 +fn_1_2174 = .text:0x00002174; // type:function size:0x54 +fn_1_21C8 = .text:0x000021C8; // type:function size:0x98 +fn_1_2260 = .text:0x00002260; // type:function size:0x6C +fn_1_22CC = .text:0x000022CC; // type:function size:0x4A0 +fn_1_276C = .text:0x0000276C; // type:function size:0x574 +fn_1_2CE0 = .text:0x00002CE0; // type:function size:0x9C +fn_1_2D7C = .text:0x00002D7C; // type:function size:0x12C +fn_1_2EA8 = .text:0x00002EA8; // type:function size:0x1F0 +fn_1_3098 = .text:0x00003098; // type:function size:0x1D4 +fn_1_326C = .text:0x0000326C; // type:function size:0x1E4 +fn_1_3450 = .text:0x00003450; // type:function size:0x5C +fn_1_34AC = .text:0x000034AC; // type:function size:0xB0 +fn_1_355C = .text:0x0000355C; // type:function size:0x188 +fn_1_36E4 = .text:0x000036E4; // type:function size:0x68 +fn_1_374C = .text:0x0000374C; // type:function size:0x40 +fn_1_378C = .text:0x0000378C; // type:function size:0xC8 +fn_1_3854 = .text:0x00003854; // type:function size:0x11C +fn_1_3970 = .text:0x00003970; // type:function size:0x624 +fn_1_3F94 = .text:0x00003F94; // type:function size:0x300 +fn_1_4294 = .text:0x00004294; // type:function size:0x2E0 +fn_1_4574 = .text:0x00004574; // type:function size:0x1F8 +fn_1_476C = .text:0x0000476C; // type:function size:0x1F8 +fn_1_4964 = .text:0x00004964; // type:function size:0x1008 +fn_1_596C = .text:0x0000596C; // type:function size:0x88 +fn_1_59F4 = .text:0x000059F4; // type:function size:0x88 +fn_1_5A7C = .text:0x00005A7C; // type:function size:0x2C +fn_1_5AA8 = .text:0x00005AA8; // type:function size:0x1E4 +fn_1_5C8C = .text:0x00005C8C; // type:function size:0x464 +fn_1_60F0 = .text:0x000060F0; // type:function size:0x178 +fn_1_6268 = .text:0x00006268; // type:function size:0x104 +fn_1_636C = .text:0x0000636C; // type:function size:0x80 +fn_1_63EC = .text:0x000063EC; // type:function size:0x120 +fn_1_650C = .text:0x0000650C; // type:function size:0x48 +fn_1_6554 = .text:0x00006554; // type:function size:0x10C +fn_1_6660 = .text:0x00006660; // type:function size:0x10 +fn_1_6670 = .text:0x00006670; // type:function size:0x2C +fn_1_669C = .text:0x0000669C; // type:function size:0x8C +fn_1_6728 = .text:0x00006728; // type:function size:0x7C +fn_1_67A4 = .text:0x000067A4; // type:function size:0x44 +fn_1_67E8 = .text:0x000067E8; // type:function size:0x28 +fn_1_6810 = .text:0x00006810; // type:function size:0x10 +fn_1_6820 = .text:0x00006820; // type:function size:0x64 +fn_1_6884 = .text:0x00006884; // type:function size:0xCC +fn_1_6950 = .text:0x00006950; // type:function size:0x3BC +fn_1_6D0C = .text:0x00006D0C; // type:function size:0x50 +fn_1_6D5C = .text:0x00006D5C; // type:function size:0x94 +fn_1_6DF0 = .text:0x00006DF0; // type:function size:0x440 +fn_1_7230 = .text:0x00007230; // type:function size:0x98 +fn_1_72C8 = .text:0x000072C8; // type:function size:0x98 +fn_1_7360 = .text:0x00007360; // type:function size:0x98 +fn_1_73F8 = .text:0x000073F8; // type:function size:0x100 +fn_1_74F8 = .text:0x000074F8; // type:function size:0x20C +fn_1_7704 = .text:0x00007704; // type:function size:0x720 +fn_1_7E24 = .text:0x00007E24; // type:function size:0x41C +fn_1_8240 = .text:0x00008240; // type:function size:0x1D4 +fn_1_8414 = .text:0x00008414; // type:function size:0x520 +fn_1_8934 = .text:0x00008934; // type:function size:0x10 +fn_1_8944 = .text:0x00008944; // type:function size:0x34 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x54 +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 data:4byte +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x160 +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x60 +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x10 +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x1C +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x6C +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0xC data:4byte +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0xC data:4byte +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x30 data:4byte +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x30 data:4byte +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0xC data:4byte +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1E data:string +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x1E data:string +lbl_1_data_3C = .data:0x0000003C; // type:object size:0x14 +lbl_1_data_50 = .data:0x00000050; // type:object size:0x80 +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x1C +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x30 +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x19 data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0x3 +lbl_1_data_138 = .data:0x00000138; // type:object size:0x1C +lbl_1_data_154 = .data:0x00000154; // type:object size:0x10 data:4byte +lbl_1_data_164 = .data:0x00000164; // type:object size:0xD data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x10 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:float +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:float +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x1C data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x1C data:float +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x1C data:float +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x8 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x80 data:float +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x8AC data:4byte +lbl_1_bss_9EC = .bss:0x000009EC; // type:object size:0x2 data:2byte +lbl_1_bss_9F0 = .bss:0x000009F0; // type:object size:0x38 data:2byte +lbl_1_bss_A28 = .bss:0x00000A28; // type:object size:0x4 data:4byte +lbl_1_bss_A2C = .bss:0x00000A2C; // type:object size:0x10 data:4byte +lbl_1_bss_A3C = .bss:0x00000A3C; // type:object size:0x4 data:4byte +lbl_1_bss_A40 = .bss:0x00000A40; // type:object size:0x8 data:4byte +lbl_1_bss_A48 = .bss:0x00000A48; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m421Dll/splits.txt b/config/GMPJ01_00/rels/m421Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m421Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m421Dll/symbols.txt b/config/GMPJ01_00/rels/m421Dll/symbols.txt new file mode 100644 index 00000000..c704e2c9 --- /dev/null +++ b/config/GMPJ01_00/rels/m421Dll/symbols.txt @@ -0,0 +1,277 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x400 +fn_1_4A0 = .text:0x000004A0; // type:function size:0xD8 +fn_1_578 = .text:0x00000578; // type:function size:0x20C +fn_1_784 = .text:0x00000784; // type:function size:0x134 +fn_1_8B8 = .text:0x000008B8; // type:function size:0x404 +fn_1_CBC = .text:0x00000CBC; // type:function size:0x430 +fn_1_10EC = .text:0x000010EC; // type:function size:0x340 +fn_1_142C = .text:0x0000142C; // type:function size:0x424 +fn_1_1850 = .text:0x00001850; // type:function size:0x440 +fn_1_1C90 = .text:0x00001C90; // type:function size:0x4AC +fn_1_213C = .text:0x0000213C; // type:function size:0x70 +fn_1_21AC = .text:0x000021AC; // type:function size:0x87C +fn_1_2A28 = .text:0x00002A28; // type:function size:0x190 +fn_1_2BB8 = .text:0x00002BB8; // type:function size:0x468 +fn_1_3020 = .text:0x00003020; // type:function size:0xB0 +fn_1_30D0 = .text:0x000030D0; // type:function size:0x264 +fn_1_3334 = .text:0x00003334; // type:function size:0x28 +fn_1_335C = .text:0x0000335C; // type:function size:0x5A0 +fn_1_38FC = .text:0x000038FC; // type:function size:0x254 +fn_1_3B50 = .text:0x00003B50; // type:function size:0x14 +fn_1_3B64 = .text:0x00003B64; // type:function size:0x14 +fn_1_3B78 = .text:0x00003B78; // type:function size:0x9C +fn_1_3C14 = .text:0x00003C14; // type:function size:0x9C +fn_1_3CB0 = .text:0x00003CB0; // type:function size:0x68 +fn_1_3D18 = .text:0x00003D18; // type:function size:0x6C +fn_1_3D84 = .text:0x00003D84; // type:function size:0x98 +fn_1_3E1C = .text:0x00003E1C; // type:function size:0x18 +fn_1_3E34 = .text:0x00003E34; // type:function size:0x18 +fn_1_3E4C = .text:0x00003E4C; // type:function size:0x18 +fn_1_3E64 = .text:0x00003E64; // type:function size:0x18 +fn_1_3E7C = .text:0x00003E7C; // type:function size:0x7C +fn_1_3EF8 = .text:0x00003EF8; // type:function size:0x30 +fn_1_3F28 = .text:0x00003F28; // type:function size:0x40 +fn_1_3F68 = .text:0x00003F68; // type:function size:0x30 +fn_1_3F98 = .text:0x00003F98; // type:function size:0x30 +fn_1_3FC8 = .text:0x00003FC8; // type:function size:0x30 +fn_1_3FF8 = .text:0x00003FF8; // type:function size:0x38 +fn_1_4030 = .text:0x00004030; // type:function size:0x208 +fn_1_4238 = .text:0x00004238; // type:function size:0x240 +fn_1_4478 = .text:0x00004478; // type:function size:0x11C +fn_1_4594 = .text:0x00004594; // type:function size:0xB4 +fn_1_4648 = .text:0x00004648; // type:function size:0x268 +fn_1_48B0 = .text:0x000048B0; // type:function size:0x24 +fn_1_48D4 = .text:0x000048D4; // type:function size:0x62C +fn_1_4F00 = .text:0x00004F00; // type:function size:0x160 +fn_1_5060 = .text:0x00005060; // type:function size:0x368 +fn_1_53C8 = .text:0x000053C8; // type:function size:0x3C4 +fn_1_578C = .text:0x0000578C; // type:function size:0x410 +fn_1_5B9C = .text:0x00005B9C; // type:function size:0x5E8 +fn_1_6184 = .text:0x00006184; // type:function size:0x27C +fn_1_6400 = .text:0x00006400; // type:function size:0x2B4 +fn_1_66B4 = .text:0x000066B4; // type:function size:0xB8 +fn_1_676C = .text:0x0000676C; // type:function size:0x5DC +fn_1_6D48 = .text:0x00006D48; // type:function size:0x730 +fn_1_7478 = .text:0x00007478; // type:function size:0x1F8 +fn_1_7670 = .text:0x00007670; // type:function size:0x430 +fn_1_7AA0 = .text:0x00007AA0; // type:function size:0x418 +fn_1_7EB8 = .text:0x00007EB8; // type:function size:0x208 +fn_1_80C0 = .text:0x000080C0; // type:function size:0x87C +fn_1_893C = .text:0x0000893C; // type:function size:0xB38 +fn_1_9474 = .text:0x00009474; // type:function size:0xF8 +fn_1_956C = .text:0x0000956C; // type:function size:0x2C0 +fn_1_982C = .text:0x0000982C; // type:function size:0x18C +fn_1_99B8 = .text:0x000099B8; // type:function size:0x74 +fn_1_9A2C = .text:0x00009A2C; // type:function size:0x1D0 +fn_1_9BFC = .text:0x00009BFC; // type:function size:0x3C +fn_1_9C38 = .text:0x00009C38; // type:function size:0x198 +fn_1_9DD0 = .text:0x00009DD0; // type:function size:0x758 +fn_1_A528 = .text:0x0000A528; // type:function size:0x640 +fn_1_AB68 = .text:0x0000AB68; // type:function size:0x4 +fn_1_AB6C = .text:0x0000AB6C; // type:function size:0x70 +fn_1_ABDC = .text:0x0000ABDC; // type:function size:0x580 +fn_1_B15C = .text:0x0000B15C; // type:function size:0x60 +fn_1_B1BC = .text:0x0000B1BC; // type:function size:0x4 +fn_1_B1C0 = .text:0x0000B1C0; // type:function size:0x1D8 +fn_1_B398 = .text:0x0000B398; // type:function size:0x4 +fn_1_B39C = .text:0x0000B39C; // type:function size:0x40 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC data:4byte +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:4byte +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x50 +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x14 data:4byte +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x10 data:4byte +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x10 data:4byte +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x10 data:4byte +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x30 data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x30 data:4byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 +lbl_1_data_94 = .data:0x00000094; // type:object size:0xC +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x1 data:byte +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x1A data:string +lbl_1_data_BE = .data:0x000000BE; // type:object size:0x1A +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x2C +lbl_1_data_104 = .data:0x00000104; // type:object size:0x60 +lbl_1_data_164 = .data:0x00000164; // type:object size:0x20 +lbl_1_data_184 = .data:0x00000184; // type:object size:0x20 +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x18 +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x78 +lbl_1_data_234 = .data:0x00000234; // type:object size:0x30 +lbl_1_data_264 = .data:0x00000264; // type:object size:0x30 +lbl_1_data_294 = .data:0x00000294; // type:object size:0x18 +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0xC +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0xC +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0xC +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0xC +lbl_1_data_2DC = .data:0x000002DC; // type:object size:0xC +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0xC +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x6 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x10 +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m422Dll/splits.txt b/config/GMPJ01_00/rels/m422Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m422Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m422Dll/symbols.txt b/config/GMPJ01_00/rels/m422Dll/symbols.txt new file mode 100644 index 00000000..804db144 --- /dev/null +++ b/config/GMPJ01_00/rels/m422Dll/symbols.txt @@ -0,0 +1,249 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x25C +fn_1_2FC = .text:0x000002FC; // type:function size:0x31C0 +fn_1_34BC = .text:0x000034BC; // type:function size:0x6B8 +fn_1_3B74 = .text:0x00003B74; // type:function size:0x4E6C +fn_1_89E0 = .text:0x000089E0; // type:function size:0xA30 +fn_1_9410 = .text:0x00009410; // type:function size:0x4F0 +fn_1_9900 = .text:0x00009900; // type:function size:0x134C +fn_1_AC4C = .text:0x0000AC4C; // type:function size:0x3B8 +fn_1_B004 = .text:0x0000B004; // type:function size:0x54 +fn_1_B058 = .text:0x0000B058; // type:function size:0x428 +fn_1_B480 = .text:0x0000B480; // type:function size:0xAC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x30 +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x30 +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x30 +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x30 +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x30 +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x30 +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x30 +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x1C data:4byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x1C data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 data:4byte +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x10 data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC data:4byte +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0xC data:4byte +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC data:4byte +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0xC data:4byte +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0xC data:4byte +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x20 data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x60 +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:4byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x60 +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x30 data:4byte +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x34 data:4byte +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 data:double +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x8 data:double +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:double +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x8 data:double +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:double +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 data:double +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 data:double +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x8 data:double +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:double +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:double +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 data:double +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 data:double +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float +lbl_1_rodata_5EC = .rodata:0x000005EC; // type:object size:0x4 data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x2C data:4byte +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x8 data:double +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x8 data:double +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x8 data:double +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x28 data:4byte +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x20 data:4byte +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 data:4byte +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 data:4byte +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x8 data:4byte +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x40 data:4byte +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x40 data:4byte +lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x4 data:float +lbl_1_rodata_74C = .rodata:0x0000074C; // type:object size:0x4 data:float +lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 data:float +lbl_1_rodata_754 = .rodata:0x00000754; // type:object size:0x4 data:float +lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x4 data:float +lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x8 data:double +lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x4 data:float +lbl_1_rodata_76C = .rodata:0x0000076C; // type:object size:0x10 data:4byte +lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0xC data:4byte +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0xC data:4byte +lbl_1_rodata_794 = .rodata:0x00000794; // type:object size:0x1 data:byte +lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x4 data:float +lbl_1_rodata_79C = .rodata:0x0000079C; // type:object size:0x4 data:float +lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x4 data:float +lbl_1_rodata_7A4 = .rodata:0x000007A4; // type:object size:0x4 data:float +lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x40 +lbl_1_data_40 = .data:0x00000040; // type:object size:0x60 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x20 +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x20 +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x7 +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x9 +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x1680 data:float +lbl_1_data_1770 = .data:0x00001770; // type:object size:0xF data:string +lbl_1_data_177F = .data:0x0000177F; // type:object size:0x10 data:string +lbl_1_data_178F = .data:0x0000178F; // type:object size:0x10 data:string +lbl_1_data_179F = .data:0x0000179F; // type:object size:0xF data:string +lbl_1_data_17AE = .data:0x000017AE; // type:object size:0x10 data:string +lbl_1_data_17BE = .data:0x000017BE; // type:object size:0x10 data:string +lbl_1_data_17CE = .data:0x000017CE; // type:object size:0xF data:string +lbl_1_data_17DD = .data:0x000017DD; // type:object size:0x11 data:string +lbl_1_data_17EE = .data:0x000017EE; // type:object size:0x11 data:string +lbl_1_data_17FF = .data:0x000017FF; // type:object size:0x12 data:string +lbl_1_data_1811 = .data:0x00001811; // type:object size:0x5 data:string +lbl_1_data_1816 = .data:0x00001816; // type:object size:0x12 +lbl_1_data_1828 = .data:0x00001828; // type:object size:0x50 +lbl_1_data_1878 = .data:0x00001878; // type:object size:0x2C +lbl_1_data_18A4 = .data:0x000018A4; // type:object size:0x8 data:4byte +lbl_1_data_18AC = .data:0x000018AC; // type:object size:0x4 data:4byte +lbl_1_data_18B0 = .data:0x000018B0; // type:object size:0x4 data:4byte +lbl_1_data_18B4 = .data:0x000018B4; // type:object size:0x40 +lbl_1_data_18F4 = .data:0x000018F4; // type:object size:0xC data:4byte +lbl_1_data_1900 = .data:0x00001900; // type:object size:0x4 data:4byte +lbl_1_data_1904 = .data:0x00001904; // type:object size:0x1B data:string +lbl_1_data_191F = .data:0x0000191F; // type:object size:0x19 data:string +lbl_1_data_1938 = .data:0x00001938; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x8 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_2E = .bss:0x0000002E; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x10 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0xB0 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0xC0 diff --git a/config/GMPJ01_00/rels/m423Dll/splits.txt b/config/GMPJ01_00/rels/m423Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m423Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m423Dll/symbols.txt b/config/GMPJ01_00/rels/m423Dll/symbols.txt new file mode 100644 index 00000000..5450a16f --- /dev/null +++ b/config/GMPJ01_00/rels/m423Dll/symbols.txt @@ -0,0 +1,367 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x278 +fn_1_318 = .text:0x00000318; // type:function size:0x98 +fn_1_3B0 = .text:0x000003B0; // type:function size:0xA4C +fn_1_DFC = .text:0x00000DFC; // type:function size:0x64 +fn_1_E60 = .text:0x00000E60; // type:function size:0xA0 +fn_1_F00 = .text:0x00000F00; // type:function size:0x10 +fn_1_F10 = .text:0x00000F10; // type:function size:0x50 +fn_1_F60 = .text:0x00000F60; // type:function size:0x244 +fn_1_11A4 = .text:0x000011A4; // type:function size:0x34 +fn_1_11D8 = .text:0x000011D8; // type:function size:0x60 +fn_1_1238 = .text:0x00001238; // type:function size:0x68 +fn_1_12A0 = .text:0x000012A0; // type:function size:0x100 +fn_1_13A0 = .text:0x000013A0; // type:function size:0xA4 +fn_1_1444 = .text:0x00001444; // type:function size:0x5C +fn_1_14A0 = .text:0x000014A0; // type:function size:0x45C +fn_1_18FC = .text:0x000018FC; // type:function size:0x260 +fn_1_1B5C = .text:0x00001B5C; // type:function size:0x400 +fn_1_1F5C = .text:0x00001F5C; // type:function size:0x334 +fn_1_2290 = .text:0x00002290; // type:function size:0x394 +fn_1_2624 = .text:0x00002624; // type:function size:0x394 +fn_1_29B8 = .text:0x000029B8; // type:function size:0x4 +fn_1_29BC = .text:0x000029BC; // type:function size:0x24C +fn_1_2C08 = .text:0x00002C08; // type:function size:0x8D0 +fn_1_34D8 = .text:0x000034D8; // type:function size:0x50 +fn_1_3528 = .text:0x00003528; // type:function size:0x370 +fn_1_3898 = .text:0x00003898; // type:function size:0x1C0 +fn_1_3A58 = .text:0x00003A58; // type:function size:0xC +fn_1_3A64 = .text:0x00003A64; // type:function size:0x28 +fn_1_3A8C = .text:0x00003A8C; // type:function size:0x170 +fn_1_3BFC = .text:0x00003BFC; // type:function size:0x3E4 +fn_1_3FE0 = .text:0x00003FE0; // type:function size:0x798 +fn_1_4778 = .text:0x00004778; // type:function size:0x15A0 +fn_1_5D18 = .text:0x00005D18; // type:function size:0x1AAC +fn_1_77C4 = .text:0x000077C4; // type:function size:0xC +fn_1_77D0 = .text:0x000077D0; // type:function size:0x4C +fn_1_781C = .text:0x0000781C; // type:function size:0x100 +fn_1_791C = .text:0x0000791C; // type:function size:0x18C +fn_1_7AA8 = .text:0x00007AA8; // type:function size:0xA0 +fn_1_7B48 = .text:0x00007B48; // type:function size:0x780 +fn_1_82C8 = .text:0x000082C8; // type:function size:0x70 +fn_1_8338 = .text:0x00008338; // type:function size:0x97C +fn_1_8CB4 = .text:0x00008CB4; // type:function size:0x910 +fn_1_95C4 = .text:0x000095C4; // type:function size:0x50 +fn_1_9614 = .text:0x00009614; // type:function size:0x28C +fn_1_98A0 = .text:0x000098A0; // type:function size:0x1100 +fn_1_A9A0 = .text:0x0000A9A0; // type:function size:0xC +fn_1_A9AC = .text:0x0000A9AC; // type:function size:0x28 +fn_1_A9D4 = .text:0x0000A9D4; // type:function size:0x238 +fn_1_AC0C = .text:0x0000AC0C; // type:function size:0x74 +fn_1_AC80 = .text:0x0000AC80; // type:function size:0x1E4 +fn_1_AE64 = .text:0x0000AE64; // type:function size:0x84 +fn_1_AEE8 = .text:0x0000AEE8; // type:function size:0x254 +fn_1_B13C = .text:0x0000B13C; // type:function size:0x68 +fn_1_B1A4 = .text:0x0000B1A4; // type:function size:0x160 +fn_1_B304 = .text:0x0000B304; // type:function size:0x12C +fn_1_B430 = .text:0x0000B430; // type:function size:0x8A8 +fn_1_BCD8 = .text:0x0000BCD8; // type:function size:0x7C0 +fn_1_C498 = .text:0x0000C498; // type:function size:0x1498 +fn_1_D930 = .text:0x0000D930; // type:function size:0x108 +fn_1_DA38 = .text:0x0000DA38; // type:function size:0x190 +fn_1_DBC8 = .text:0x0000DBC8; // type:function size:0x5C +fn_1_DC24 = .text:0x0000DC24; // type:function size:0x14C +fn_1_DD70 = .text:0x0000DD70; // type:function size:0x44C +fn_1_E1BC = .text:0x0000E1BC; // type:function size:0xD4 +fn_1_E290 = .text:0x0000E290; // type:function size:0xA0 +fn_1_E330 = .text:0x0000E330; // type:function size:0x4 +fn_1_E334 = .text:0x0000E334; // type:function size:0x12C +fn_1_E460 = .text:0x0000E460; // type:function size:0x8C +fn_1_E4EC = .text:0x0000E4EC; // type:function size:0x120 +fn_1_E60C = .text:0x0000E60C; // type:function size:0x6C +fn_1_E678 = .text:0x0000E678; // type:function size:0x8CC +fn_1_EF44 = .text:0x0000EF44; // type:function size:0x630 +fn_1_F574 = .text:0x0000F574; // type:function size:0x11C +fn_1_F690 = .text:0x0000F690; // type:function size:0x50 +fn_1_F6E0 = .text:0x0000F6E0; // type:function size:0x360 +fn_1_FA40 = .text:0x0000FA40; // type:function size:0x4D0 +fn_1_FF10 = .text:0x0000FF10; // type:function size:0x88 +fn_1_FF98 = .text:0x0000FF98; // type:function size:0x90 +fn_1_10028 = .text:0x00010028; // type:function size:0xB4 +fn_1_100DC = .text:0x000100DC; // type:function size:0x3A4 +fn_1_10480 = .text:0x00010480; // type:function size:0xAC +fn_1_1052C = .text:0x0001052C; // type:function size:0x4 +fn_1_10530 = .text:0x00010530; // type:function size:0x10 +fn_1_10540 = .text:0x00010540; // type:function size:0x198 +fn_1_106D8 = .text:0x000106D8; // type:function size:0x4F0 +fn_1_10BC8 = .text:0x00010BC8; // type:function size:0x440 +fn_1_11008 = .text:0x00011008; // type:function size:0x10C +fn_1_11114 = .text:0x00011114; // type:function size:0x4B0 +fn_1_115C4 = .text:0x000115C4; // type:function size:0x33C +fn_1_11900 = .text:0x00011900; // type:function size:0x8DC +fn_1_121DC = .text:0x000121DC; // type:function size:0x118 +fn_1_122F4 = .text:0x000122F4; // type:function size:0x250 +fn_1_12544 = .text:0x00012544; // type:function size:0x3F8 +fn_1_1293C = .text:0x0001293C; // type:function size:0xB4 +fn_1_129F0 = .text:0x000129F0; // type:function size:0x27C +fn_1_12C6C = .text:0x00012C6C; // type:function size:0x100 +fn_1_12D6C = .text:0x00012D6C; // type:function size:0xFC +fn_1_12E68 = .text:0x00012E68; // type:function size:0x4E4 +fn_1_1334C = .text:0x0001334C; // type:function size:0x330 +fn_1_1367C = .text:0x0001367C; // type:function size:0x148 +fn_1_137C4 = .text:0x000137C4; // type:function size:0x78C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x1 data:byte +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float +lbl_1_data_38 = .data:0x00000038; // type:object size:0x118 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x30 data:float +lbl_1_data_180 = .data:0x00000180; // type:object size:0x30 data:float +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x24 +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0xC +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0xC +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xC +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x24 +lbl_1_data_21C = .data:0x0000021C; // type:object size:0xC +lbl_1_data_228 = .data:0x00000228; // type:object size:0xC +lbl_1_data_234 = .data:0x00000234; // type:object size:0x4 +lbl_1_data_238 = .data:0x00000238; // type:object size:0x18 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x18 +jumptable_1_data_268 = .data:0x00000268; // type:object size:0x30 scope:local +lbl_1_data_298 = .data:0x00000298; // type:object size:0x1 data:byte +lbl_1_data_29C = .data:0x0000029C; // type:object size:0x30 +lbl_1_data_2CC = .data:0x000002CC; // type:object size:0x20 +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x20 +lbl_1_data_30C = .data:0x0000030C; // type:object size:0x4 +lbl_1_data_310 = .data:0x00000310; // type:object size:0x1 data:byte +lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 data:4byte +lbl_1_data_334 = .data:0x00000334; // type:object size:0x30 +lbl_1_data_364 = .data:0x00000364; // type:object size:0x24 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x1 data:byte +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x1F data:string +lbl_1_data_3AB = .data:0x000003AB; // type:object size:0x1 data:byte +lbl_1_data_3AF = .data:0x000003AF; // type:object size:0x1 data:byte +lbl_1_data_3B3 = .data:0x000003B3; // type:object size:0x5 data:byte +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0xF0 +lbl_1_data_4A8 = .data:0x000004A8; // type:object size:0x54 +lbl_1_data_4FC = .data:0x000004FC; // type:object size:0xC +lbl_1_data_508 = .data:0x00000508; // type:object size:0x18 +lbl_1_data_520 = .data:0x00000520; // type:object size:0x6 +lbl_1_data_526 = .data:0x00000526; // type:object size:0x6 +lbl_1_data_52C = .data:0x0000052C; // type:object size:0x8 +lbl_1_data_534 = .data:0x00000534; // type:object size:0x40 +lbl_1_data_574 = .data:0x00000574; // type:object size:0xC +lbl_1_data_580 = .data:0x00000580; // type:object size:0x58 +lbl_1_data_5D8 = .data:0x000005D8; // type:object size:0x10 +lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0xC data:4byte +lbl_1_data_5F4 = .data:0x000005F4; // type:object size:0x1 data:byte +lbl_1_data_5F8 = .data:0x000005F8; // type:object size:0x1 data:byte +jumptable_1_data_5FC = .data:0x000005FC; // type:object size:0x34 scope:local +lbl_1_data_630 = .data:0x00000630; // type:object size:0x1 data:byte +jumptable_1_data_634 = .data:0x00000634; // type:object size:0x34 scope:local +lbl_1_data_668 = .data:0x00000668; // type:object size:0x10 +lbl_1_data_678 = .data:0x00000678; // type:object size:0x10 +lbl_1_data_688 = .data:0x00000688; // type:object size:0x20 +lbl_1_data_6A8 = .data:0x000006A8; // type:object size:0x20 data:4byte +lbl_1_data_6C8 = .data:0x000006C8; // type:object size:0x10 +lbl_1_data_6D8 = .data:0x000006D8; // type:object size:0x20 +lbl_1_data_6F8 = .data:0x000006F8; // type:object size:0x20 +lbl_1_data_718 = .data:0x00000718; // type:object size:0x20 +lbl_1_data_738 = .data:0x00000738; // type:object size:0x20 +lbl_1_data_758 = .data:0x00000758; // type:object size:0x1 data:byte +lbl_1_data_75C = .data:0x0000075C; // type:object size:0x48 +jumptable_1_data_7A4 = .data:0x000007A4; // type:object size:0x20 scope:local +lbl_1_data_7C4 = .data:0x000007C4; // type:object size:0x18 +jumptable_1_data_7DC = .data:0x000007DC; // type:object size:0x20 scope:local +lbl_1_data_7FC = .data:0x000007FC; // type:object size:0x20 +lbl_1_data_81C = .data:0x0000081C; // type:object size:0x20 +lbl_1_data_83C = .data:0x0000083C; // type:object size:0x8 +lbl_1_data_844 = .data:0x00000844; // type:object size:0x60 +lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x20 +lbl_1_data_8C4 = .data:0x000008C4; // type:object size:0x30 +lbl_1_data_8F4 = .data:0x000008F4; // type:object size:0x20 +lbl_1_data_914 = .data:0x00000914; // type:object size:0x6 data:byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x3C data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x3C data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0xC data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x10 +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x10 data:4byte +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x10 data:4byte +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x8 data:4byte +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:4byte +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:4byte +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x4 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m424Dll/splits.txt b/config/GMPJ01_00/rels/m424Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m424Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m424Dll/symbols.txt b/config/GMPJ01_00/rels/m424Dll/symbols.txt new file mode 100644 index 00000000..cd7eab29 --- /dev/null +++ b/config/GMPJ01_00/rels/m424Dll/symbols.txt @@ -0,0 +1,315 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x1C4 +fn_1_264 = .text:0x00000264; // type:function size:0x1B8 +fn_1_41C = .text:0x0000041C; // type:function size:0xAC4 +fn_1_EE0 = .text:0x00000EE0; // type:function size:0x60 +fn_1_F40 = .text:0x00000F40; // type:function size:0xA0 +fn_1_FE0 = .text:0x00000FE0; // type:function size:0x10 +fn_1_FF0 = .text:0x00000FF0; // type:function size:0x1FC +fn_1_11EC = .text:0x000011EC; // type:function size:0x4 +fn_1_11F0 = .text:0x000011F0; // type:function size:0x4 +fn_1_11F4 = .text:0x000011F4; // type:function size:0x10 +fn_1_1204 = .text:0x00001204; // type:function size:0x154 +fn_1_1358 = .text:0x00001358; // type:function size:0x118 +fn_1_1470 = .text:0x00001470; // type:function size:0x250 +fn_1_16C0 = .text:0x000016C0; // type:function size:0x3F8 +fn_1_1AB8 = .text:0x00001AB8; // type:function size:0xD4 +fn_1_1B8C = .text:0x00001B8C; // type:function size:0x2C +fn_1_1BB8 = .text:0x00001BB8; // type:function size:0x264 +fn_1_1E1C = .text:0x00001E1C; // type:function size:0x314 +fn_1_2130 = .text:0x00002130; // type:function size:0xC +fn_1_213C = .text:0x0000213C; // type:function size:0x74 +fn_1_21B0 = .text:0x000021B0; // type:function size:0x70 +fn_1_2220 = .text:0x00002220; // type:function size:0x218 +fn_1_2438 = .text:0x00002438; // type:function size:0xF4 +fn_1_252C = .text:0x0000252C; // type:function size:0x94 +fn_1_25C0 = .text:0x000025C0; // type:function size:0xB0 +fn_1_2670 = .text:0x00002670; // type:function size:0xB0 +fn_1_2720 = .text:0x00002720; // type:function size:0x160 +fn_1_2880 = .text:0x00002880; // type:function size:0x20 +fn_1_28A0 = .text:0x000028A0; // type:function size:0x598 +fn_1_2E38 = .text:0x00002E38; // type:function size:0x4 +fn_1_2E3C = .text:0x00002E3C; // type:function size:0x384 +fn_1_31C0 = .text:0x000031C0; // type:function size:0x63C +fn_1_37FC = .text:0x000037FC; // type:function size:0xA24 +fn_1_4220 = .text:0x00004220; // type:function size:0x478 +fn_1_4698 = .text:0x00004698; // type:function size:0x4 +fn_1_469C = .text:0x0000469C; // type:function size:0x234 +fn_1_48D0 = .text:0x000048D0; // type:function size:0x1C0 +fn_1_4A90 = .text:0x00004A90; // type:function size:0x588 +fn_1_5018 = .text:0x00005018; // type:function size:0x1020 +fn_1_6038 = .text:0x00006038; // type:function size:0x40 +fn_1_6078 = .text:0x00006078; // type:function size:0xA0 +fn_1_6118 = .text:0x00006118; // type:function size:0x94 +fn_1_61AC = .text:0x000061AC; // type:function size:0x84 +fn_1_6230 = .text:0x00006230; // type:function size:0x4C +fn_1_627C = .text:0x0000627C; // type:function size:0x54 +fn_1_62D0 = .text:0x000062D0; // type:function size:0x13C +fn_1_640C = .text:0x0000640C; // type:function size:0x168 +fn_1_6574 = .text:0x00006574; // type:function size:0x120 +fn_1_6694 = .text:0x00006694; // type:function size:0x39C +fn_1_6A30 = .text:0x00006A30; // type:function size:0x2E0 +fn_1_6D10 = .text:0x00006D10; // type:function size:0x38C +fn_1_709C = .text:0x0000709C; // type:function size:0x384 +fn_1_7420 = .text:0x00007420; // type:function size:0x3A4 +fn_1_77C4 = .text:0x000077C4; // type:function size:0x238 +fn_1_79FC = .text:0x000079FC; // type:function size:0x2A4 +fn_1_7CA0 = .text:0x00007CA0; // type:function size:0x130 +fn_1_7DD0 = .text:0x00007DD0; // type:function size:0x198 +fn_1_7F68 = .text:0x00007F68; // type:function size:0xD8 +fn_1_8040 = .text:0x00008040; // type:function size:0xBC +fn_1_80FC = .text:0x000080FC; // type:function size:0x33C +fn_1_8438 = .text:0x00008438; // type:function size:0x4B0 +fn_1_88E8 = .text:0x000088E8; // type:function size:0x3C +fn_1_8924 = .text:0x00008924; // type:function size:0x2C +fn_1_8950 = .text:0x00008950; // type:function size:0x2C +fn_1_897C = .text:0x0000897C; // type:function size:0x2C +fn_1_89A8 = .text:0x000089A8; // type:function size:0x2C +fn_1_89D4 = .text:0x000089D4; // type:function size:0x2C +fn_1_8A00 = .text:0x00008A00; // type:function size:0x2C +fn_1_8A2C = .text:0x00008A2C; // type:function size:0x7C +fn_1_8AA8 = .text:0x00008AA8; // type:function size:0x1D0 +fn_1_8C78 = .text:0x00008C78; // type:function size:0x404 +fn_1_907C = .text:0x0000907C; // type:function size:0x374 +fn_1_93F0 = .text:0x000093F0; // type:function size:0xB4 +fn_1_94A4 = .text:0x000094A4; // type:function size:0x2C +fn_1_94D0 = .text:0x000094D0; // type:function size:0x594 +fn_1_9A64 = .text:0x00009A64; // type:function size:0x13F4 +fn_1_AE58 = .text:0x0000AE58; // type:function size:0xC +fn_1_AE64 = .text:0x0000AE64; // type:function size:0x938 +fn_1_B79C = .text:0x0000B79C; // type:function size:0x68 +fn_1_B804 = .text:0x0000B804; // type:function size:0x84 +fn_1_B888 = .text:0x0000B888; // type:function size:0x24 +fn_1_B8AC = .text:0x0000B8AC; // type:function size:0x78 +fn_1_B924 = .text:0x0000B924; // type:function size:0x78 +fn_1_B99C = .text:0x0000B99C; // type:function size:0x44 +fn_1_B9E0 = .text:0x0000B9E0; // type:function size:0x830 +fn_1_C210 = .text:0x0000C210; // type:function size:0xD0 +fn_1_C2E0 = .text:0x0000C2E0; // type:function size:0x324 +fn_1_C604 = .text:0x0000C604; // type:function size:0x250 +fn_1_C854 = .text:0x0000C854; // type:function size:0x24 +fn_1_C878 = .text:0x0000C878; // type:function size:0x124 +fn_1_C99C = .text:0x0000C99C; // type:function size:0x4D8 +fn_1_CE74 = .text:0x0000CE74; // type:function size:0x8C +fn_1_CF00 = .text:0x0000CF00; // type:function size:0x80 +fn_1_CF80 = .text:0x0000CF80; // type:function size:0x90 +fn_1_D010 = .text:0x0000D010; // type:function size:0x64 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC data:4byte +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC +lbl_1_data_78 = .data:0x00000078; // type:object size:0x24 +lbl_1_data_9C = .data:0x0000009C; // type:object size:0xC +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xC +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4 +jumptable_1_data_B8 = .data:0x000000B8; // type:object size:0x28 scope:local +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0xC +lbl_1_data_EC = .data:0x000000EC; // type:object size:0xC +lbl_1_data_F8 = .data:0x000000F8; // type:object size:0xC +lbl_1_data_104 = .data:0x00000104; // type:object size:0x4C +lbl_1_data_150 = .data:0x00000150; // type:object size:0x5C +jumptable_1_data_1AC = .data:0x000001AC; // type:object size:0x2C scope:local +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x8 data:4byte +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x30 data:float +lbl_1_data_210 = .data:0x00000210; // type:object size:0xC data:float +lbl_1_data_21C = .data:0x0000021C; // type:object size:0xC0 +lbl_1_data_2DC = .data:0x000002DC; // type:object size:0xC +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x24 +lbl_1_data_30C = .data:0x0000030C; // type:object size:0xC data:4byte +lbl_1_data_318 = .data:0x00000318; // type:object size:0x6 data:string +lbl_1_data_31E = .data:0x0000031E; // type:object size:0x6 data:string +lbl_1_data_324 = .data:0x00000324; // type:object size:0x8 +jumptable_1_data_32C = .data:0x0000032C; // type:object size:0x40 scope:local +lbl_1_data_36C = .data:0x0000036C; // type:object size:0x20 +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x20 +lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x19 data:string +lbl_1_data_3C5 = .data:0x000003C5; // type:object size:0x5 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x8 data:2byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x534 data:4byte +lbl_1_bss_594 = .bss:0x00000594; // type:object size:0x18 +lbl_1_bss_5AC = .bss:0x000005AC; // type:object size:0x10 data:4byte +lbl_1_bss_5BC = .bss:0x000005BC; // type:object size:0x84 +lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x80 data:4byte +lbl_1_bss_6C0 = .bss:0x000006C0; // type:object size:0x4 data:4byte +lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x4 data:4byte +lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x4 data:4byte +lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0xC data:4byte +lbl_1_bss_6D8 = .bss:0x000006D8; // type:object size:0x4 data:4byte +lbl_1_bss_6DC = .bss:0x000006DC; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m425Dll/splits.txt b/config/GMPJ01_00/rels/m425Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m425Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m425Dll/symbols.txt b/config/GMPJ01_00/rels/m425Dll/symbols.txt new file mode 100644 index 00000000..05f71975 --- /dev/null +++ b/config/GMPJ01_00/rels/m425Dll/symbols.txt @@ -0,0 +1,299 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x3C0 +fn_1_460 = .text:0x00000460; // type:function size:0x20 +fn_1_480 = .text:0x00000480; // type:function size:0x464 +fn_1_8E4 = .text:0x000008E4; // type:function size:0x664 +fn_1_F48 = .text:0x00000F48; // type:function size:0x60 +fn_1_FA8 = .text:0x00000FA8; // type:function size:0x524 +fn_1_14CC = .text:0x000014CC; // type:function size:0x120 +fn_1_15EC = .text:0x000015EC; // type:function size:0xC4 +fn_1_16B0 = .text:0x000016B0; // type:function size:0x490 +fn_1_1B40 = .text:0x00001B40; // type:function size:0xC44 +fn_1_2784 = .text:0x00002784; // type:function size:0xEC +fn_1_2870 = .text:0x00002870; // type:function size:0x224 +fn_1_2A94 = .text:0x00002A94; // type:function size:0x98 +fn_1_2B2C = .text:0x00002B2C; // type:function size:0x34C +fn_1_2E78 = .text:0x00002E78; // type:function size:0x568 +fn_1_33E0 = .text:0x000033E0; // type:function size:0x384 +fn_1_3764 = .text:0x00003764; // type:function size:0x76C +fn_1_3ED0 = .text:0x00003ED0; // type:function size:0xB0 +fn_1_3F80 = .text:0x00003F80; // type:function size:0xB08 +fn_1_4A88 = .text:0x00004A88; // type:function size:0x5BC +fn_1_5044 = .text:0x00005044; // type:function size:0x524 +fn_1_5568 = .text:0x00005568; // type:function size:0xA0 +fn_1_5608 = .text:0x00005608; // type:function size:0xA8 +fn_1_56B0 = .text:0x000056B0; // type:function size:0x8C +fn_1_573C = .text:0x0000573C; // type:function size:0x98 +fn_1_57D4 = .text:0x000057D4; // type:function size:0x44C +fn_1_5C20 = .text:0x00005C20; // type:function size:0x8B4 +fn_1_64D4 = .text:0x000064D4; // type:function size:0x54 +fn_1_6528 = .text:0x00006528; // type:function size:0x78 +fn_1_65A0 = .text:0x000065A0; // type:function size:0x11C +fn_1_66BC = .text:0x000066BC; // type:function size:0x78 +fn_1_6734 = .text:0x00006734; // type:function size:0x2D8 +fn_1_6A0C = .text:0x00006A0C; // type:function size:0x1CC +fn_1_6BD8 = .text:0x00006BD8; // type:function size:0x30 +fn_1_6C08 = .text:0x00006C08; // type:function size:0xC8 +fn_1_6CD0 = .text:0x00006CD0; // type:function size:0x12C +fn_1_6DFC = .text:0x00006DFC; // type:function size:0xC8 +fn_1_6EC4 = .text:0x00006EC4; // type:function size:0x69D8 +fn_1_D89C = .text:0x0000D89C; // type:function size:0x10 +fn_1_D8AC = .text:0x0000D8AC; // type:function size:0x10 +fn_1_D8BC = .text:0x0000D8BC; // type:function size:0x10 +fn_1_D8CC = .text:0x0000D8CC; // type:function size:0x10 +fn_1_D8DC = .text:0x0000D8DC; // type:function size:0xCC +fn_1_D9A8 = .text:0x0000D9A8; // type:function size:0x19C +fn_1_DB44 = .text:0x0000DB44; // type:function size:0x2F8 +fn_1_DE3C = .text:0x0000DE3C; // type:function size:0x3D4 +fn_1_E210 = .text:0x0000E210; // type:function size:0x704 +fn_1_E914 = .text:0x0000E914; // type:function size:0x18B0 +fn_1_101C4 = .text:0x000101C4; // type:function size:0x828 +fn_1_109EC = .text:0x000109EC; // type:function size:0x308 +fn_1_10CF4 = .text:0x00010CF4; // type:function size:0x60 +fn_1_10D54 = .text:0x00010D54; // type:function size:0x60 +fn_1_10DB4 = .text:0x00010DB4; // type:function size:0x88 +fn_1_10E3C = .text:0x00010E3C; // type:function size:0xBC +fn_1_10EF8 = .text:0x00010EF8; // type:function size:0x38C +fn_1_11284 = .text:0x00011284; // type:function size:0x78 +fn_1_112FC = .text:0x000112FC; // type:function size:0x11C +fn_1_11418 = .text:0x00011418; // type:function size:0x3C +fn_1_11454 = .text:0x00011454; // type:function size:0x180 +fn_1_115D4 = .text:0x000115D4; // type:function size:0x110 +fn_1_116E4 = .text:0x000116E4; // type:function size:0x390 +fn_1_11A74 = .text:0x00011A74; // type:function size:0x46C +fn_1_11EE0 = .text:0x00011EE0; // type:function size:0x7B4 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x10 data:4byte +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC0 +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x10 data:4byte +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x10 data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x20 data:4byte +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:double +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0xC +lbl_1_data_10 = .data:0x00000010; // type:object size:0x30 +lbl_1_data_40 = .data:0x00000040; // type:object size:0x4 +lbl_1_data_44 = .data:0x00000044; // type:object size:0x24 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x4 data:4byte +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x28 +lbl_1_data_94 = .data:0x00000094; // type:object size:0x30 +jumptable_1_data_C4 = .data:0x000000C4; // type:object size:0x28 scope:local +jumptable_1_data_EC = .data:0x000000EC; // type:object size:0x28 scope:local +lbl_1_data_114 = .data:0x00000114; // type:object size:0x4 data:4byte +lbl_1_data_118 = .data:0x00000118; // type:object size:0x18 +lbl_1_data_130 = .data:0x00000130; // type:object size:0x20 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x18 +lbl_1_data_168 = .data:0x00000168; // type:object size:0x1 data:byte +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x30 +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x30 +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x20 +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x630 +lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x2 data:2byte +lbl_1_bss_642 = .bss:0x00000642; // type:object size:0x2 data:2byte +lbl_1_bss_644 = .bss:0x00000644; // type:object size:0x2 data:2byte +lbl_1_bss_646 = .bss:0x00000646; // type:object size:0x2 data:2byte +lbl_1_bss_648 = .bss:0x00000648; // type:object size:0x2 data:2byte +lbl_1_bss_64C = .bss:0x0000064C; // type:object size:0x10 +lbl_1_bss_65C = .bss:0x0000065C; // type:object size:0x4 data:4byte +lbl_1_bss_660 = .bss:0x00000660; // type:object size:0x4 data:4byte +lbl_1_bss_664 = .bss:0x00000664; // type:object size:0x4 data:4byte +lbl_1_bss_668 = .bss:0x00000668; // type:object size:0x8 data:4byte +lbl_1_bss_670 = .bss:0x00000670; // type:object size:0xC data:float +lbl_1_bss_67C = .bss:0x0000067C; // type:object size:0xC data:float +lbl_1_bss_688 = .bss:0x00000688; // type:object size:0x40 +lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x1 data:byte +lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0x4 data:4byte +lbl_1_bss_6D0 = .bss:0x000006D0; // type:object size:0x1 data:byte +lbl_1_bss_6D4 = .bss:0x000006D4; // type:object size:0x4 data:4byte +lbl_1_bss_6D8 = .bss:0x000006D8; // type:object size:0x4 data:4byte +lbl_1_bss_6DC = .bss:0x000006DC; // type:object size:0x4 data:4byte +lbl_1_bss_6E0 = .bss:0x000006E0; // type:object size:0x4 data:4byte +lbl_1_bss_6E4 = .bss:0x000006E4; // type:object size:0x4 data:4byte +lbl_1_bss_6E8 = .bss:0x000006E8; // type:object size:0x4 data:4byte +lbl_1_bss_6EC = .bss:0x000006EC; // type:object size:0x4 data:4byte +lbl_1_bss_6F0 = .bss:0x000006F0; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m426Dll/splits.txt b/config/GMPJ01_00/rels/m426Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m426Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m426Dll/symbols.txt b/config/GMPJ01_00/rels/m426Dll/symbols.txt new file mode 100644 index 00000000..ade0fb6b --- /dev/null +++ b/config/GMPJ01_00/rels/m426Dll/symbols.txt @@ -0,0 +1,224 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x16C +fn_1_20C = .text:0x0000020C; // type:function size:0x124 +fn_1_330 = .text:0x00000330; // type:function size:0xA88 +fn_1_DB8 = .text:0x00000DB8; // type:function size:0x60 +fn_1_E18 = .text:0x00000E18; // type:function size:0xA0 +fn_1_EB8 = .text:0x00000EB8; // type:function size:0x14C +fn_1_1004 = .text:0x00001004; // type:function size:0x178 +fn_1_117C = .text:0x0000117C; // type:function size:0x70 +fn_1_11EC = .text:0x000011EC; // type:function size:0x70 +fn_1_125C = .text:0x0000125C; // type:function size:0x49C +fn_1_16F8 = .text:0x000016F8; // type:function size:0x13D0 +fn_1_2AC8 = .text:0x00002AC8; // type:function size:0x14 +fn_1_2ADC = .text:0x00002ADC; // type:function size:0x98 +fn_1_2B74 = .text:0x00002B74; // type:function size:0x368 +fn_1_2EDC = .text:0x00002EDC; // type:function size:0x80 +fn_1_2F5C = .text:0x00002F5C; // type:function size:0x6F8 +fn_1_3654 = .text:0x00003654; // type:function size:0x70 +fn_1_36C4 = .text:0x000036C4; // type:function size:0x50 +fn_1_3714 = .text:0x00003714; // type:function size:0x7E8 +fn_1_3EFC = .text:0x00003EFC; // type:function size:0x700 +fn_1_45FC = .text:0x000045FC; // type:function size:0x48 +fn_1_4644 = .text:0x00004644; // type:function size:0x60 +fn_1_46A4 = .text:0x000046A4; // type:function size:0x94 +fn_1_4738 = .text:0x00004738; // type:function size:0x15C +fn_1_4894 = .text:0x00004894; // type:function size:0x5C +fn_1_48F0 = .text:0x000048F0; // type:function size:0x178 +fn_1_4A68 = .text:0x00004A68; // type:function size:0x8C +fn_1_4AF4 = .text:0x00004AF4; // type:function size:0x3D0 +fn_1_4EC4 = .text:0x00004EC4; // type:function size:0x50 +fn_1_4F14 = .text:0x00004F14; // type:function size:0x220 +fn_1_5134 = .text:0x00005134; // type:function size:0xA00 +fn_1_5B34 = .text:0x00005B34; // type:function size:0x14 +fn_1_5B48 = .text:0x00005B48; // type:function size:0x40 +fn_1_5B88 = .text:0x00005B88; // type:function size:0xE4 +fn_1_5C6C = .text:0x00005C6C; // type:function size:0xD0 +fn_1_5D3C = .text:0x00005D3C; // type:function size:0x130 +fn_1_5E6C = .text:0x00005E6C; // type:function size:0x50 +fn_1_5EBC = .text:0x00005EBC; // type:function size:0x14C +fn_1_6008 = .text:0x00006008; // type:function size:0x178 +fn_1_6180 = .text:0x00006180; // type:function size:0x60 +fn_1_61E0 = .text:0x000061E0; // type:function size:0x68 +fn_1_6248 = .text:0x00006248; // type:function size:0xC8 +fn_1_6310 = .text:0x00006310; // type:function size:0xA8 +fn_1_63B8 = .text:0x000063B8; // type:function size:0x1DC +fn_1_6594 = .text:0x00006594; // type:function size:0x50 +fn_1_65E4 = .text:0x000065E4; // type:function size:0x120 +fn_1_6704 = .text:0x00006704; // type:function size:0x118 +fn_1_681C = .text:0x0000681C; // type:function size:0x28 +fn_1_6844 = .text:0x00006844; // type:function size:0x44 +fn_1_6888 = .text:0x00006888; // type:function size:0x15C +fn_1_69E4 = .text:0x000069E4; // type:function size:0x50 +fn_1_6A34 = .text:0x00006A34; // type:function size:0x38C +fn_1_6DC0 = .text:0x00006DC0; // type:function size:0x410 +fn_1_71D0 = .text:0x000071D0; // type:function size:0xA8 +fn_1_7278 = .text:0x00007278; // type:function size:0xB0 +fn_1_7328 = .text:0x00007328; // type:function size:0xB4 +fn_1_73DC = .text:0x000073DC; // type:function size:0x1B0 +fn_1_758C = .text:0x0000758C; // type:function size:0x20 +fn_1_75AC = .text:0x000075AC; // type:function size:0x4 +fn_1_75B0 = .text:0x000075B0; // type:function size:0xC +fn_1_75BC = .text:0x000075BC; // type:function size:0x38 +fn_1_75F4 = .text:0x000075F4; // type:function size:0x118 +fn_1_770C = .text:0x0000770C; // type:function size:0x250 +fn_1_795C = .text:0x0000795C; // type:function size:0x46C +fn_1_7DC8 = .text:0x00007DC8; // type:function size:0x314 +fn_1_80DC = .text:0x000080DC; // type:function size:0x7D8 +fn_1_88B4 = .text:0x000088B4; // type:function size:0x55C +fn_1_8E10 = .text:0x00008E10; // type:function size:0x38 +fn_1_8E48 = .text:0x00008E48; // type:function size:0x2E8 +fn_1_9130 = .text:0x00009130; // type:function size:0x100 +fn_1_9230 = .text:0x00009230; // type:function size:0x314 +fn_1_9544 = .text:0x00009544; // type:function size:0x1D8 +fn_1_971C = .text:0x0000971C; // type:function size:0x7C +fn_1_9798 = .text:0x00009798; // type:function size:0x54 +fn_1_97EC = .text:0x000097EC; // type:function size:0x7C +fn_1_9868 = .text:0x00009868; // type:function size:0x7C +fn_1_98E4 = .text:0x000098E4; // type:function size:0x78 +fn_1_995C = .text:0x0000995C; // type:function size:0x12C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:4byte +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x1 data:byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x30 +lbl_1_data_30 = .data:0x00000030; // type:object size:0xC +lbl_1_data_3C = .data:0x0000003C; // type:object size:0xC +lbl_1_data_48 = .data:0x00000048; // type:object size:0x1 data:byte +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x54 data:float +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC +lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0xC +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x24 +jumptable_1_data_E8 = .data:0x000000E8; // type:object size:0x24 scope:local +lbl_1_data_10C = .data:0x0000010C; // type:object size:0x4 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x60 data:4byte +lbl_1_data_170 = .data:0x00000170; // type:object size:0x60 +lbl_1_data_1D0 = .data:0x000001D0; // type:object size:0x8 +jumptable_1_data_1D8 = .data:0x000001D8; // type:object size:0x28 scope:local +lbl_1_data_200 = .data:0x00000200; // type:object size:0x18 +lbl_1_data_218 = .data:0x00000218; // type:object size:0x8 +lbl_1_data_220 = .data:0x00000220; // type:object size:0xC +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x30 +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x20 +lbl_1_data_27C = .data:0x0000027C; // type:object size:0x30 +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x10 +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x20 +jumptable_1_data_2DC = .data:0x000002DC; // type:object size:0x1C scope:local +jumptable_1_data_2F8 = .data:0x000002F8; // type:object size:0x1C scope:local +jumptable_1_data_314 = .data:0x00000314; // type:object size:0x1C scope:local +jumptable_1_data_330 = .data:0x00000330; // type:object size:0x1C scope:local +jumptable_1_data_34C = .data:0x0000034C; // type:object size:0x1C scope:local +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x1 data:byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x10 +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x8 +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m427Dll/splits.txt b/config/GMPJ01_00/rels/m427Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m427Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m427Dll/symbols.txt b/config/GMPJ01_00/rels/m427Dll/symbols.txt new file mode 100644 index 00000000..0ce6699f --- /dev/null +++ b/config/GMPJ01_00/rels/m427Dll/symbols.txt @@ -0,0 +1,437 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x1FC +fn_1_29C = .text:0x0000029C; // type:function size:0x64 +fn_1_300 = .text:0x00000300; // type:function size:0x1364 +fn_1_1664 = .text:0x00001664; // type:function size:0x60 +fn_1_16C4 = .text:0x000016C4; // type:function size:0xC4 +fn_1_1788 = .text:0x00001788; // type:function size:0x10 +fn_1_1798 = .text:0x00001798; // type:function size:0xCC +fn_1_1864 = .text:0x00001864; // type:function size:0x20 +fn_1_1884 = .text:0x00001884; // type:function size:0xD0 +fn_1_1954 = .text:0x00001954; // type:function size:0x5E0 +fn_1_1F34 = .text:0x00001F34; // type:function size:0x254 +fn_1_2188 = .text:0x00002188; // type:function size:0x60 +fn_1_21E8 = .text:0x000021E8; // type:function size:0x144 +fn_1_232C = .text:0x0000232C; // type:function size:0x1EC +fn_1_2518 = .text:0x00002518; // type:function size:0x1EC +fn_1_2704 = .text:0x00002704; // type:function size:0x28 +fn_1_272C = .text:0x0000272C; // type:function size:0x64 +fn_1_2790 = .text:0x00002790; // type:function size:0x390 +fn_1_2B20 = .text:0x00002B20; // type:function size:0x4 +fn_1_2B24 = .text:0x00002B24; // type:function size:0x4 +fn_1_2B28 = .text:0x00002B28; // type:function size:0x1C0 +fn_1_2CE8 = .text:0x00002CE8; // type:function size:0x1F8 +fn_1_2EE0 = .text:0x00002EE0; // type:function size:0x8C +fn_1_2F6C = .text:0x00002F6C; // type:function size:0x1F8 +fn_1_3164 = .text:0x00003164; // type:function size:0x188 +fn_1_32EC = .text:0x000032EC; // type:function size:0x8 +fn_1_32F4 = .text:0x000032F4; // type:function size:0x438 +fn_1_372C = .text:0x0000372C; // type:function size:0x35C +fn_1_3A88 = .text:0x00003A88; // type:function size:0x98 +fn_1_3B20 = .text:0x00003B20; // type:function size:0x29C +fn_1_3DBC = .text:0x00003DBC; // type:function size:0x9C +fn_1_3E58 = .text:0x00003E58; // type:function size:0x3C0 +fn_1_4218 = .text:0x00004218; // type:function size:0x2DC +fn_1_44F4 = .text:0x000044F4; // type:function size:0x7C +fn_1_4570 = .text:0x00004570; // type:function size:0x37C +fn_1_48EC = .text:0x000048EC; // type:function size:0x490 +fn_1_4D7C = .text:0x00004D7C; // type:function size:0x324 +fn_1_50A0 = .text:0x000050A0; // type:function size:0x6C +fn_1_510C = .text:0x0000510C; // type:function size:0x480 +fn_1_558C = .text:0x0000558C; // type:function size:0xC00 +fn_1_618C = .text:0x0000618C; // type:function size:0x5D4 +fn_1_6760 = .text:0x00006760; // type:function size:0xB84 +fn_1_72E4 = .text:0x000072E4; // type:function size:0xD8 +fn_1_73BC = .text:0x000073BC; // type:function size:0x590 +fn_1_794C = .text:0x0000794C; // type:function size:0x2E8 +fn_1_7C34 = .text:0x00007C34; // type:function size:0x22C +fn_1_7E60 = .text:0x00007E60; // type:function size:0xD8 +fn_1_7F38 = .text:0x00007F38; // type:function size:0x69C +fn_1_85D4 = .text:0x000085D4; // type:function size:0x194 +fn_1_8768 = .text:0x00008768; // type:function size:0x6B4 +fn_1_8E1C = .text:0x00008E1C; // type:function size:0x174 +fn_1_8F90 = .text:0x00008F90; // type:function size:0x250 +fn_1_91E0 = .text:0x000091E0; // type:function size:0x60 +fn_1_9240 = .text:0x00009240; // type:function size:0xD8 +fn_1_9318 = .text:0x00009318; // type:function size:0xD4 +fn_1_93EC = .text:0x000093EC; // type:function size:0xD0 +fn_1_94BC = .text:0x000094BC; // type:function size:0x12C +fn_1_95E8 = .text:0x000095E8; // type:function size:0x370 +fn_1_9958 = .text:0x00009958; // type:function size:0x44 +fn_1_999C = .text:0x0000999C; // type:function size:0x48 +fn_1_99E4 = .text:0x000099E4; // type:function size:0x48 +fn_1_9A2C = .text:0x00009A2C; // type:function size:0x74 +fn_1_9AA0 = .text:0x00009AA0; // type:function size:0x74 +fn_1_9B14 = .text:0x00009B14; // type:function size:0x74 +fn_1_9B88 = .text:0x00009B88; // type:function size:0x5C0 +fn_1_A148 = .text:0x0000A148; // type:function size:0xAC +fn_1_A1F4 = .text:0x0000A1F4; // type:function size:0x604 +fn_1_A7F8 = .text:0x0000A7F8; // type:function size:0x680 +fn_1_AE78 = .text:0x0000AE78; // type:function size:0x31C +fn_1_B194 = .text:0x0000B194; // type:function size:0x238 +fn_1_B3CC = .text:0x0000B3CC; // type:function size:0x960 +fn_1_BD2C = .text:0x0000BD2C; // type:function size:0x428 +fn_1_C154 = .text:0x0000C154; // type:function size:0xAC +fn_1_C200 = .text:0x0000C200; // type:function size:0xAC +fn_1_C2AC = .text:0x0000C2AC; // type:function size:0x10 +fn_1_C2BC = .text:0x0000C2BC; // type:function size:0xC +fn_1_C2C8 = .text:0x0000C2C8; // type:function size:0xD8 +fn_1_C3A0 = .text:0x0000C3A0; // type:function size:0x7C +fn_1_C41C = .text:0x0000C41C; // type:function size:0x10C +fn_1_C528 = .text:0x0000C528; // type:function size:0x164 +fn_1_C68C = .text:0x0000C68C; // type:function size:0xE0 +fn_1_C76C = .text:0x0000C76C; // type:function size:0xAC0 +fn_1_D22C = .text:0x0000D22C; // type:function size:0x204 +fn_1_D430 = .text:0x0000D430; // type:function size:0xCC +fn_1_D4FC = .text:0x0000D4FC; // type:function size:0x140 +fn_1_D63C = .text:0x0000D63C; // type:function size:0x544 +fn_1_DB80 = .text:0x0000DB80; // type:function size:0x60 +fn_1_DBE0 = .text:0x0000DBE0; // type:function size:0x2C +fn_1_DC0C = .text:0x0000DC0C; // type:function size:0x58 +fn_1_DC64 = .text:0x0000DC64; // type:function size:0x38 +fn_1_DC9C = .text:0x0000DC9C; // type:function size:0x38 +fn_1_DCD4 = .text:0x0000DCD4; // type:function size:0x5DC +fn_1_E2B0 = .text:0x0000E2B0; // type:function size:0xCC +fn_1_E37C = .text:0x0000E37C; // type:function size:0xA4 +fn_1_E420 = .text:0x0000E420; // type:function size:0x68 +fn_1_E488 = .text:0x0000E488; // type:function size:0x504 +fn_1_E98C = .text:0x0000E98C; // type:function size:0x2C8 +fn_1_EC54 = .text:0x0000EC54; // type:function size:0x20 +fn_1_EC74 = .text:0x0000EC74; // type:function size:0x20 +fn_1_EC94 = .text:0x0000EC94; // type:function size:0x44C +fn_1_F0E0 = .text:0x0000F0E0; // type:function size:0x1750 +fn_1_10830 = .text:0x00010830; // type:function size:0x75C +fn_1_10F8C = .text:0x00010F8C; // type:function size:0x5C +fn_1_10FE8 = .text:0x00010FE8; // type:function size:0x100 +fn_1_110E8 = .text:0x000110E8; // type:function size:0xD8 +fn_1_111C0 = .text:0x000111C0; // type:function size:0xD8 +fn_1_11298 = .text:0x00011298; // type:function size:0x158 +fn_1_113F0 = .text:0x000113F0; // type:function size:0x4C +fn_1_1143C = .text:0x0001143C; // type:function size:0x178 +fn_1_115B4 = .text:0x000115B4; // type:function size:0x40C +fn_1_119C0 = .text:0x000119C0; // type:function size:0xB4 +fn_1_11A74 = .text:0x00011A74; // type:function size:0x464 +fn_1_11ED8 = .text:0x00011ED8; // type:function size:0x63C +fn_1_12514 = .text:0x00012514; // type:function size:0x4 +fn_1_12518 = .text:0x00012518; // type:function size:0x68 +fn_1_12580 = .text:0x00012580; // type:function size:0x588 +fn_1_12B08 = .text:0x00012B08; // type:function size:0x141C +fn_1_13F24 = .text:0x00013F24; // type:function size:0x94 +fn_1_13FB8 = .text:0x00013FB8; // type:function size:0x4 +fn_1_13FBC = .text:0x00013FBC; // type:function size:0x14FC +fn_1_154B8 = .text:0x000154B8; // type:function size:0x4 +fn_1_154BC = .text:0x000154BC; // type:function size:0x124 +fn_1_155E0 = .text:0x000155E0; // type:function size:0x134 +fn_1_15714 = .text:0x00015714; // type:function size:0x1C4 +fn_1_158D8 = .text:0x000158D8; // type:function size:0x218 +fn_1_15AF0 = .text:0x00015AF0; // type:function size:0x420 +fn_1_15F10 = .text:0x00015F10; // type:function size:0xC0 +fn_1_15FD0 = .text:0x00015FD0; // type:function size:0xAC +fn_1_1607C = .text:0x0001607C; // type:function size:0x58 +fn_1_160D4 = .text:0x000160D4; // type:function size:0x18C +fn_1_16260 = .text:0x00016260; // type:function size:0x334 +fn_1_16594 = .text:0x00016594; // type:function size:0x118 +fn_1_166AC = .text:0x000166AC; // type:function size:0x250 +fn_1_168FC = .text:0x000168FC; // type:function size:0x3F8 +fn_1_16CF4 = .text:0x00016CF4; // type:function size:0x148 +fn_1_16E3C = .text:0x00016E3C; // type:function size:0xBC +fn_1_16EF8 = .text:0x00016EF8; // type:function size:0x150 +fn_1_17048 = .text:0x00017048; // type:function size:0x1F0 +fn_1_17238 = .text:0x00017238; // type:function size:0x4 +fn_1_1723C = .text:0x0001723C; // type:function size:0xB4 +fn_1_172F0 = .text:0x000172F0; // type:function size:0x140 +fn_1_17430 = .text:0x00017430; // type:function size:0xA4 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC data:2byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x3C data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x6 data:2byte +lbl_1_rodata_136 = .rodata:0x00000136; // type:object size:0xC data:2byte +lbl_1_rodata_142 = .rodata:0x00000142; // type:object size:0x1A data:2byte +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x24 data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x30 data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x10 data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0xC data:4byte +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0xC data:4byte +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x1 data:byte +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x1 data:byte +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x1 data:byte +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x1 data:byte +lbl_1_rodata_38A = .rodata:0x0000038A; // type:object size:0x1 data:byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:double +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:float +lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 +jumptable_1_data_94 = .data:0x00000094; // type:object size:0x3C scope:local +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x8 +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x4 +lbl_1_data_DC = .data:0x000000DC; // type:object size:0x4 +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0xC data:2byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x8 +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x4 data:float +lbl_1_data_F8 = .data:0x000000F8; // type:object size:0x4 data:float +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x30 +lbl_1_data_12C = .data:0x0000012C; // type:object size:0x8 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x10 +lbl_1_data_144 = .data:0x00000144; // type:object size:0x90 data:float +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x8 +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x8 +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x8 +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x4 +lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x13 data:string +lbl_1_data_203 = .data:0x00000203; // type:object size:0x10 data:string +lbl_1_data_213 = .data:0x00000213; // type:object size:0x26 data:string +lbl_1_data_239 = .data:0x00000239; // type:object size:0x27 +lbl_1_data_260 = .data:0x00000260; // type:object size:0x15C +lbl_1_data_3BC = .data:0x000003BC; // type:object size:0x178 +lbl_1_data_534 = .data:0x00000534; // type:object size:0x18 +lbl_1_data_54C = .data:0x0000054C; // type:object size:0x18 data:float +lbl_1_data_564 = .data:0x00000564; // type:object size:0xC data:float +lbl_1_data_570 = .data:0x00000570; // type:object size:0xC data:float +lbl_1_data_57C = .data:0x0000057C; // type:object size:0x4 +lbl_1_data_580 = .data:0x00000580; // type:object size:0x10 +lbl_1_data_590 = .data:0x00000590; // type:object size:0x1C +lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x1C +lbl_1_data_5C8 = .data:0x000005C8; // type:object size:0x8 +lbl_1_data_5D0 = .data:0x000005D0; // type:object size:0x8 +jumptable_1_data_5D8 = .data:0x000005D8; // type:object size:0x20 scope:local +lbl_1_data_5F8 = .data:0x000005F8; // type:object size:0x8 +lbl_1_data_600 = .data:0x00000600; // type:object size:0x8 +lbl_1_data_608 = .data:0x00000608; // type:object size:0x10 +lbl_1_data_618 = .data:0x00000618; // type:object size:0x10 +jumptable_1_data_628 = .data:0x00000628; // type:object size:0x20 scope:local +lbl_1_data_648 = .data:0x00000648; // type:object size:0x4 +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1 data:byte +lbl_1_data_650 = .data:0x00000650; // type:object size:0x4 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x40 +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x8 +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x1 data:byte +lbl_1_bss_91 = .bss:0x00000091; // type:object size:0x1 data:byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:float +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4C data:4byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x4 data:4byte +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x4 +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x4 +lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x4 data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x4 data:4byte +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x60 data:2byte +lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x3F0 data:byte +lbl_1_bss_548 = .bss:0x00000548; // type:object size:0x8 data:4byte +lbl_1_bss_550 = .bss:0x00000550; // type:object size:0x4 data:4byte +lbl_1_bss_554 = .bss:0x00000554; // type:object size:0x4 data:4byte +lbl_1_bss_558 = .bss:0x00000558; // type:object size:0x4 data:4byte +lbl_1_bss_55C = .bss:0x0000055C; // type:object size:0x10 +lbl_1_bss_56C = .bss:0x0000056C; // type:object size:0x8 +lbl_1_bss_574 = .bss:0x00000574; // type:object size:0x4 data:4byte +lbl_1_bss_578 = .bss:0x00000578; // type:object size:0x4 data:4byte +lbl_1_bss_57C = .bss:0x0000057C; // type:object size:0x4 data:4byte +lbl_1_bss_580 = .bss:0x00000580; // type:object size:0x4 data:4byte +lbl_1_bss_584 = .bss:0x00000584; // type:object size:0x4 data:4byte +lbl_1_bss_588 = .bss:0x00000588; // type:object size:0x4 data:4byte +lbl_1_bss_58C = .bss:0x0000058C; // type:object size:0x4 data:4byte +lbl_1_bss_590 = .bss:0x00000590; // type:object size:0x4 data:4byte +lbl_1_bss_594 = .bss:0x00000594; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m428Dll/splits.txt b/config/GMPJ01_00/rels/m428Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m428Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m428Dll/symbols.txt b/config/GMPJ01_00/rels/m428Dll/symbols.txt new file mode 100644 index 00000000..cd8f595d --- /dev/null +++ b/config/GMPJ01_00/rels/m428Dll/symbols.txt @@ -0,0 +1,409 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x218 +fn_1_2B8 = .text:0x000002B8; // type:function size:0x1C0 +fn_1_478 = .text:0x00000478; // type:function size:0x2154 +fn_1_25CC = .text:0x000025CC; // type:function size:0x50 +fn_1_261C = .text:0x0000261C; // type:function size:0xC4 +fn_1_26E0 = .text:0x000026E0; // type:function size:0x10 +fn_1_26F0 = .text:0x000026F0; // type:function size:0x2F8 +fn_1_29E8 = .text:0x000029E8; // type:function size:0x4 +fn_1_29EC = .text:0x000029EC; // type:function size:0x4 +fn_1_29F0 = .text:0x000029F0; // type:function size:0x10 +fn_1_2A00 = .text:0x00002A00; // type:function size:0xCC +fn_1_2ACC = .text:0x00002ACC; // type:function size:0x1C4 +fn_1_2C90 = .text:0x00002C90; // type:function size:0x19C +fn_1_2E2C = .text:0x00002E2C; // type:function size:0xD38 +fn_1_3B64 = .text:0x00003B64; // type:function size:0x540 +fn_1_40A4 = .text:0x000040A4; // type:function size:0xCC +fn_1_4170 = .text:0x00004170; // type:function size:0xF4 +fn_1_4264 = .text:0x00004264; // type:function size:0xC0 +fn_1_4324 = .text:0x00004324; // type:function size:0xA4 +fn_1_43C8 = .text:0x000043C8; // type:function size:0x268 +fn_1_4630 = .text:0x00004630; // type:function size:0x20 +fn_1_4650 = .text:0x00004650; // type:function size:0x10C +fn_1_475C = .text:0x0000475C; // type:function size:0x420 +fn_1_4B7C = .text:0x00004B7C; // type:function size:0x2C8 +fn_1_4E44 = .text:0x00004E44; // type:function size:0x34 +fn_1_4E78 = .text:0x00004E78; // type:function size:0x8C +fn_1_4F04 = .text:0x00004F04; // type:function size:0x2DC +fn_1_51E0 = .text:0x000051E0; // type:function size:0xF8 +fn_1_52D8 = .text:0x000052D8; // type:function size:0x4 +fn_1_52DC = .text:0x000052DC; // type:function size:0x94 +fn_1_5370 = .text:0x00005370; // type:function size:0x1E8 +fn_1_5558 = .text:0x00005558; // type:function size:0x12C +fn_1_5684 = .text:0x00005684; // type:function size:0x648 +fn_1_5CCC = .text:0x00005CCC; // type:function size:0x5B4 +fn_1_6280 = .text:0x00006280; // type:function size:0xF2C +fn_1_71AC = .text:0x000071AC; // type:function size:0xE8 +fn_1_7294 = .text:0x00007294; // type:function size:0x40 +fn_1_72D4 = .text:0x000072D4; // type:function size:0xC8 +fn_1_739C = .text:0x0000739C; // type:function size:0x94 +fn_1_7430 = .text:0x00007430; // type:function size:0x84 +fn_1_74B4 = .text:0x000074B4; // type:function size:0x4C +fn_1_7500 = .text:0x00007500; // type:function size:0x54 +fn_1_7554 = .text:0x00007554; // type:function size:0x13C +fn_1_7690 = .text:0x00007690; // type:function size:0x168 +fn_1_77F8 = .text:0x000077F8; // type:function size:0x120 +fn_1_7918 = .text:0x00007918; // type:function size:0x39C +fn_1_7CB4 = .text:0x00007CB4; // type:function size:0x2E0 +fn_1_7F94 = .text:0x00007F94; // type:function size:0x198 +fn_1_812C = .text:0x0000812C; // type:function size:0xD8 +fn_1_8204 = .text:0x00008204; // type:function size:0xBC +fn_1_82C0 = .text:0x000082C0; // type:function size:0x33C +fn_1_85FC = .text:0x000085FC; // type:function size:0x4B0 +fn_1_8AAC = .text:0x00008AAC; // type:function size:0x78 +fn_1_8B24 = .text:0x00008B24; // type:function size:0x11C +fn_1_8C40 = .text:0x00008C40; // type:function size:0x78 +fn_1_8CB8 = .text:0x00008CB8; // type:function size:0x2D8 +fn_1_8F90 = .text:0x00008F90; // type:function size:0x2B8 +fn_1_9248 = .text:0x00009248; // type:function size:0x154 +fn_1_939C = .text:0x0000939C; // type:function size:0x3E0 +fn_1_977C = .text:0x0000977C; // type:function size:0x214 +fn_1_9990 = .text:0x00009990; // type:function size:0xA0 +fn_1_9A30 = .text:0x00009A30; // type:function size:0xAC +fn_1_9ADC = .text:0x00009ADC; // type:function size:0x30C +fn_1_9DE8 = .text:0x00009DE8; // type:function size:0xC0 +fn_1_9EA8 = .text:0x00009EA8; // type:function size:0x60 +fn_1_9F08 = .text:0x00009F08; // type:function size:0x54 +fn_1_9F5C = .text:0x00009F5C; // type:function size:0x154 +fn_1_A0B0 = .text:0x0000A0B0; // type:function size:0x58 +fn_1_A108 = .text:0x0000A108; // type:function size:0x3C0 +fn_1_A4C8 = .text:0x0000A4C8; // type:function size:0xF0C +fn_1_B3D4 = .text:0x0000B3D4; // type:function size:0x68 +fn_1_B43C = .text:0x0000B43C; // type:function size:0x794 +fn_1_BBD0 = .text:0x0000BBD0; // type:function size:0x2A24 +fn_1_E5F4 = .text:0x0000E5F4; // type:function size:0xC +fn_1_E600 = .text:0x0000E600; // type:function size:0xA80 +fn_1_F080 = .text:0x0000F080; // type:function size:0x208 +fn_1_F288 = .text:0x0000F288; // type:function size:0xCC +fn_1_F354 = .text:0x0000F354; // type:function size:0x68 +fn_1_F3BC = .text:0x0000F3BC; // type:function size:0x58 +fn_1_F414 = .text:0x0000F414; // type:function size:0x40 +fn_1_F454 = .text:0x0000F454; // type:function size:0x18 +fn_1_F46C = .text:0x0000F46C; // type:function size:0x48 +fn_1_F4B4 = .text:0x0000F4B4; // type:function size:0x34 +fn_1_F4E8 = .text:0x0000F4E8; // type:function size:0x50 +fn_1_F538 = .text:0x0000F538; // type:function size:0x354 +fn_1_F88C = .text:0x0000F88C; // type:function size:0x300 +fn_1_FB8C = .text:0x0000FB8C; // type:function size:0x30C +fn_1_FE98 = .text:0x0000FE98; // type:function size:0x410 +fn_1_102A8 = .text:0x000102A8; // type:function size:0x288 +fn_1_10530 = .text:0x00010530; // type:function size:0x60 +fn_1_10590 = .text:0x00010590; // type:function size:0x58 +fn_1_105E8 = .text:0x000105E8; // type:function size:0xC0 +fn_1_106A8 = .text:0x000106A8; // type:function size:0xE0 +fn_1_10788 = .text:0x00010788; // type:function size:0x300 +fn_1_10A88 = .text:0x00010A88; // type:function size:0x58C +fn_1_11014 = .text:0x00011014; // type:function size:0x5E4 +fn_1_115F8 = .text:0x000115F8; // type:function size:0xCC +fn_1_116C4 = .text:0x000116C4; // type:function size:0x90 +fn_1_11754 = .text:0x00011754; // type:function size:0x44 +fn_1_11798 = .text:0x00011798; // type:function size:0x110 +fn_1_118A8 = .text:0x000118A8; // type:function size:0x88 +fn_1_11930 = .text:0x00011930; // type:function size:0x130 +fn_1_11A60 = .text:0x00011A60; // type:function size:0x1C0 +fn_1_11C20 = .text:0x00011C20; // type:function size:0x6C +fn_1_11C8C = .text:0x00011C8C; // type:function size:0x158 +fn_1_11DE4 = .text:0x00011DE4; // type:function size:0x470 +fn_1_12254 = .text:0x00012254; // type:function size:0x118 +fn_1_1236C = .text:0x0001236C; // type:function size:0x250 +fn_1_125BC = .text:0x000125BC; // type:function size:0x3F8 +fn_1_129B4 = .text:0x000129B4; // type:function size:0x78 +fn_1_12A2C = .text:0x00012A2C; // type:function size:0x78 +fn_1_12AA4 = .text:0x00012AA4; // type:function size:0x230 +fn_1_12CD4 = .text:0x00012CD4; // type:function size:0x4B0 +fn_1_13184 = .text:0x00013184; // type:function size:0x33C +fn_1_134C0 = .text:0x000134C0; // type:function size:0x8DC +fn_1_13D9C = .text:0x00013D9C; // type:function size:0x78 +fn_1_13E14 = .text:0x00013E14; // type:function size:0xB4 +fn_1_13EC8 = .text:0x00013EC8; // type:function size:0x8C +fn_1_13F54 = .text:0x00013F54; // type:function size:0x134 +fn_1_14088 = .text:0x00014088; // type:function size:0x4D8 +fn_1_14560 = .text:0x00014560; // type:function size:0x98 +fn_1_145F8 = .text:0x000145F8; // type:function size:0x98 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC +lbl_1_data_78 = .data:0x00000078; // type:object size:0x24 +lbl_1_data_9C = .data:0x0000009C; // type:object size:0xC +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xC +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4 +jumptable_1_data_B8 = .data:0x000000B8; // type:object size:0x30 scope:local +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x48 data:byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 +lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 +lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4 data:4byte +lbl_1_data_150 = .data:0x00000150; // type:object size:0x30 data:float +lbl_1_data_180 = .data:0x00000180; // type:object size:0x30 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2A0 +lbl_1_data_450 = .data:0x00000450; // type:object size:0x30 +lbl_1_data_480 = .data:0x00000480; // type:object size:0x30 +lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0x50 data:float +lbl_1_data_500 = .data:0x00000500; // type:object size:0x60 +lbl_1_data_560 = .data:0x00000560; // type:object size:0x80 +lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0x60 +lbl_1_data_640 = .data:0x00000640; // type:object size:0x10 +lbl_1_data_650 = .data:0x00000650; // type:object size:0x1 data:byte +lbl_1_data_654 = .data:0x00000654; // type:object size:0x1 data:byte +lbl_1_data_658 = .data:0x00000658; // type:object size:0x14 +jumptable_1_data_66C = .data:0x0000066C; // type:object size:0x28 scope:local +lbl_1_data_694 = .data:0x00000694; // type:object size:0x8 +lbl_1_data_69C = .data:0x0000069C; // type:object size:0x4 +lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x2 data:2byte +lbl_1_data_6A4 = .data:0x000006A4; // type:object size:0x30 +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x20 +lbl_1_data_6F4 = .data:0x000006F4; // type:object size:0x19 data:string +lbl_1_data_70D = .data:0x0000070D; // type:object size:0x5 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x10 data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x10 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x8 data:2byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x8 data:2byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:float +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x8 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x8 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x8 +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x80 +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x4 data:4byte +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4 data:4byte +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x4 data:4byte +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte +lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x4 data:4byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x80 +lbl_1_bss_1BC = .bss:0x000001BC; // type:object size:0x80 +lbl_1_bss_23C = .bss:0x0000023C; // type:object size:0x60 +lbl_1_bss_29C = .bss:0x0000029C; // type:object size:0x8 data:4byte +lbl_1_bss_2A4 = .bss:0x000002A4; // type:object size:0x4 data:4byte +lbl_1_bss_2A8 = .bss:0x000002A8; // type:object size:0x4 data:4byte +lbl_1_bss_2AC = .bss:0x000002AC; // type:object size:0x4 data:4byte +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 data:4byte +lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0x4 data:4byte +lbl_1_bss_2B8 = .bss:0x000002B8; // type:object size:0x10 +lbl_1_bss_2C8 = .bss:0x000002C8; // type:object size:0x8 +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m429Dll/splits.txt b/config/GMPJ01_00/rels/m429Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m429Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m429Dll/symbols.txt b/config/GMPJ01_00/rels/m429Dll/symbols.txt new file mode 100644 index 00000000..f2faf4cf --- /dev/null +++ b/config/GMPJ01_00/rels/m429Dll/symbols.txt @@ -0,0 +1,316 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x218 +fn_1_798 = .text:0x00000798; // type:function size:0x254 +fn_1_9EC = .text:0x000009EC; // type:function size:0x54 +fn_1_A40 = .text:0x00000A40; // type:function size:0x10C +fn_1_B4C = .text:0x00000B4C; // type:function size:0x6A8 +fn_1_11F4 = .text:0x000011F4; // type:function size:0x15C +fn_1_1350 = .text:0x00001350; // type:function size:0x8C +fn_1_13DC = .text:0x000013DC; // type:function size:0x334 +fn_1_1710 = .text:0x00001710; // type:function size:0x350 +fn_1_1A60 = .text:0x00001A60; // type:function size:0x2B8 +fn_1_1D18 = .text:0x00001D18; // type:function size:0x58 +fn_1_1D70 = .text:0x00001D70; // type:function size:0xB0 +fn_1_1E20 = .text:0x00001E20; // type:function size:0x104 +fn_1_1F24 = .text:0x00001F24; // type:function size:0x34 +fn_1_1F58 = .text:0x00001F58; // type:function size:0x6C +fn_1_1FC4 = .text:0x00001FC4; // type:function size:0x3F0 +fn_1_23B4 = .text:0x000023B4; // type:function size:0x260 +fn_1_2614 = .text:0x00002614; // type:function size:0x70 +fn_1_2684 = .text:0x00002684; // type:function size:0x2CC +fn_1_2950 = .text:0x00002950; // type:function size:0x290 +fn_1_2BE0 = .text:0x00002BE0; // type:function size:0x234 +fn_1_2E14 = .text:0x00002E14; // type:function size:0xD8 +fn_1_2EEC = .text:0x00002EEC; // type:function size:0x2BC +fn_1_31A8 = .text:0x000031A8; // type:function size:0x4 +fn_1_31AC = .text:0x000031AC; // type:function size:0xD8 +fn_1_3284 = .text:0x00003284; // type:function size:0x174 +fn_1_33F8 = .text:0x000033F8; // type:function size:0x304 +fn_1_36FC = .text:0x000036FC; // type:function size:0x170 +fn_1_386C = .text:0x0000386C; // type:function size:0x560 +fn_1_3DCC = .text:0x00003DCC; // type:function size:0x254 +_prolog = .text:0x00004020; // type:function size:0x54 scope:global +_epilog = .text:0x00004074; // type:function size:0x4C scope:global +fn_1_40C0 = .text:0x000040C0; // type:function size:0x164 +fn_1_4224 = .text:0x00004224; // type:function size:0xBCC +fn_1_4DF0 = .text:0x00004DF0; // type:function size:0x60 +fn_1_4E50 = .text:0x00004E50; // type:function size:0x25C +fn_1_50AC = .text:0x000050AC; // type:function size:0x410 +fn_1_54BC = .text:0x000054BC; // type:function size:0x380 +fn_1_583C = .text:0x0000583C; // type:function size:0x120 +fn_1_595C = .text:0x0000595C; // type:function size:0x380 +fn_1_5CDC = .text:0x00005CDC; // type:function size:0x268 +fn_1_5F44 = .text:0x00005F44; // type:function size:0x1154 +fn_1_7098 = .text:0x00007098; // type:function size:0x158 +fn_1_71F0 = .text:0x000071F0; // type:function size:0xB48 +fn_1_7D38 = .text:0x00007D38; // type:function size:0x1230 +fn_1_8F68 = .text:0x00008F68; // type:function size:0xA84 +fn_1_99EC = .text:0x000099EC; // type:function size:0x4 +fn_1_99F0 = .text:0x000099F0; // type:function size:0x1BC +fn_1_9BAC = .text:0x00009BAC; // type:function size:0x340 +fn_1_9EEC = .text:0x00009EEC; // type:function size:0x1BC +fn_1_A0A8 = .text:0x0000A0A8; // type:function size:0x70 +fn_1_A118 = .text:0x0000A118; // type:function size:0x470 +fn_1_A588 = .text:0x0000A588; // type:function size:0x22C +fn_1_A7B4 = .text:0x0000A7B4; // type:function size:0x5C0 +fn_1_AD74 = .text:0x0000AD74; // type:function size:0x2A8 +fn_1_B01C = .text:0x0000B01C; // type:function size:0x738 +fn_1_B754 = .text:0x0000B754; // type:function size:0x18C +fn_1_B8E0 = .text:0x0000B8E0; // type:function size:0x1D08 +fn_1_D5E8 = .text:0x0000D5E8; // type:function size:0x6B4 +fn_1_DC9C = .text:0x0000DC9C; // type:function size:0xCD0 +fn_1_E96C = .text:0x0000E96C; // type:function size:0x104 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0xD data:string +lbl_1_data_1D = .data:0x0000001D; // type:object size:0xE data:string +lbl_1_data_2B = .data:0x0000002B; // type:object size:0xE data:string +lbl_1_data_39 = .data:0x00000039; // type:object size:0xE data:string +lbl_1_data_47 = .data:0x00000047; // type:object size:0xD data:string +lbl_1_data_54 = .data:0x00000054; // type:object size:0xD data:string +lbl_1_data_61 = .data:0x00000061; // type:object size:0xE data:string +lbl_1_data_6F = .data:0x0000006F; // type:object size:0xE data:string +lbl_1_data_7D = .data:0x0000007D; // type:object size:0xE data:string +lbl_1_data_8B = .data:0x0000008B; // type:object size:0xD data:string +lbl_1_data_98 = .data:0x00000098; // type:object size:0xE data:string +lbl_1_data_A6 = .data:0x000000A6; // type:object size:0xE data:string +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0xE data:string +lbl_1_data_C2 = .data:0x000000C2; // type:object size:0xD data:string +lbl_1_data_CF = .data:0x000000CF; // type:object size:0xD data:string +lbl_1_data_DC = .data:0x000000DC; // type:object size:0xD data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0xD data:string +lbl_1_data_F6 = .data:0x000000F6; // type:object size:0xE data:string +lbl_1_data_104 = .data:0x00000104; // type:object size:0xE data:string +lbl_1_data_112 = .data:0x00000112; // type:object size:0xE data:string +lbl_1_data_120 = .data:0x00000120; // type:object size:0xE data:string +lbl_1_data_12E = .data:0x0000012E; // type:object size:0xE data:string +lbl_1_data_13C = .data:0x0000013C; // type:object size:0xE data:string +lbl_1_data_14A = .data:0x0000014A; // type:object size:0xE data:string +lbl_1_data_158 = .data:0x00000158; // type:object size:0xE data:string +lbl_1_data_166 = .data:0x00000166; // type:object size:0xE data:string +lbl_1_data_174 = .data:0x00000174; // type:object size:0xE data:string +lbl_1_data_182 = .data:0x00000182; // type:object size:0xE data:string +lbl_1_data_190 = .data:0x00000190; // type:object size:0xE data:string +lbl_1_data_19E = .data:0x0000019E; // type:object size:0xE data:string +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0xE data:string +lbl_1_data_1BA = .data:0x000001BA; // type:object size:0xE data:string +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0xE data:string +lbl_1_data_1D6 = .data:0x000001D6; // type:object size:0xE data:string +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0xE data:string +lbl_1_data_1F2 = .data:0x000001F2; // type:object size:0xE data:string +lbl_1_data_200 = .data:0x00000200; // type:object size:0xE data:string +lbl_1_data_20E = .data:0x0000020E; // type:object size:0xE data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x10 +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x57C +lbl_1_data_7A8 = .data:0x000007A8; // type:object size:0xD data:string +lbl_1_data_7B5 = .data:0x000007B5; // type:object size:0xD data:string +lbl_1_data_7C2 = .data:0x000007C2; // type:object size:0xD data:string +lbl_1_data_7CF = .data:0x000007CF; // type:object size:0xE data:string +lbl_1_data_7DD = .data:0x000007DD; // type:object size:0xE data:string +lbl_1_data_7EB = .data:0x000007EB; // type:object size:0xE data:string +lbl_1_data_7F9 = .data:0x000007F9; // type:object size:0xE data:string +lbl_1_data_807 = .data:0x00000807; // type:object size:0xD data:string +lbl_1_data_814 = .data:0x00000814; // type:object size:0xD data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0xD data:string +lbl_1_data_82E = .data:0x0000082E; // type:object size:0xE data:string +lbl_1_data_83C = .data:0x0000083C; // type:object size:0xE data:string +lbl_1_data_84A = .data:0x0000084A; // type:object size:0xD data:string +lbl_1_data_857 = .data:0x00000857; // type:object size:0xD data:string +lbl_1_data_864 = .data:0x00000864; // type:object size:0xD data:string +lbl_1_data_871 = .data:0x00000871; // type:object size:0xE data:string +lbl_1_data_87F = .data:0x0000087F; // type:object size:0xE data:string +lbl_1_data_88D = .data:0x0000088D; // type:object size:0xE data:string +lbl_1_data_89B = .data:0x0000089B; // type:object size:0xE data:string +lbl_1_data_8A9 = .data:0x000008A9; // type:object size:0xE data:string +lbl_1_data_8B7 = .data:0x000008B7; // type:object size:0xE data:string +lbl_1_data_8C5 = .data:0x000008C5; // type:object size:0xE data:string +lbl_1_data_8D3 = .data:0x000008D3; // type:object size:0xE data:string +lbl_1_data_8E1 = .data:0x000008E1; // type:object size:0xE data:string +lbl_1_data_8EF = .data:0x000008EF; // type:object size:0xE data:string +lbl_1_data_8FD = .data:0x000008FD; // type:object size:0xE data:string +lbl_1_data_90B = .data:0x0000090B; // type:object size:0xE data:string +lbl_1_data_919 = .data:0x00000919; // type:object size:0xE data:string +lbl_1_data_927 = .data:0x00000927; // type:object size:0xE data:string +lbl_1_data_935 = .data:0x00000935; // type:object size:0xE data:string +lbl_1_data_943 = .data:0x00000943; // type:object size:0xE data:string +lbl_1_data_951 = .data:0x00000951; // type:object size:0xE data:string +lbl_1_data_95F = .data:0x0000095F; // type:object size:0xE data:string +lbl_1_data_96D = .data:0x0000096D; // type:object size:0xE data:string +lbl_1_data_97B = .data:0x0000097B; // type:object size:0xE data:string +lbl_1_data_989 = .data:0x00000989; // type:object size:0xE data:string +lbl_1_data_997 = .data:0x00000997; // type:object size:0xE data:string +lbl_1_data_9A5 = .data:0x000009A5; // type:object size:0xE data:string +lbl_1_data_9B3 = .data:0x000009B3; // type:object size:0xE data:string +lbl_1_data_9C1 = .data:0x000009C1; // type:object size:0xE data:string +lbl_1_data_9CF = .data:0x000009CF; // type:object size:0xE data:string +lbl_1_data_9DD = .data:0x000009DD; // type:object size:0xF +lbl_1_data_9EC = .data:0x000009EC; // type:object size:0x5E8 +lbl_1_data_FD4 = .data:0x00000FD4; // type:object size:0xC +lbl_1_data_FE0 = .data:0x00000FE0; // type:object size:0xC +lbl_1_data_FEC = .data:0x00000FEC; // type:object size:0x10 +lbl_1_data_FFC = .data:0x00000FFC; // type:object size:0x40 +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x40 data:float +lbl_1_data_107C = .data:0x0000107C; // type:object size:0x40 +lbl_1_data_10BC = .data:0x000010BC; // type:object size:0x40 +lbl_1_data_10FC = .data:0x000010FC; // type:object size:0x20 +lbl_1_data_111C = .data:0x0000111C; // type:object size:0xC +lbl_1_data_1128 = .data:0x00001128; // type:object size:0xC +lbl_1_data_1134 = .data:0x00001134; // type:object size:0x4 +lbl_1_data_1138 = .data:0x00001138; // type:object size:0xC +lbl_1_data_1144 = .data:0x00001144; // type:object size:0xC +lbl_1_data_1150 = .data:0x00001150; // type:object size:0x140 +lbl_1_data_1290 = .data:0x00001290; // type:object size:0x20 +lbl_1_data_12B0 = .data:0x000012B0; // type:object size:0x20 +lbl_1_data_12D0 = .data:0x000012D0; // type:object size:0x10 +lbl_1_data_12E0 = .data:0x000012E0; // type:object size:0x30 +lbl_1_data_1310 = .data:0x00001310; // type:object size:0x10 +lbl_1_data_1320 = .data:0x00001320; // type:object size:0x10 +lbl_1_data_1330 = .data:0x00001330; // type:object size:0x10 +lbl_1_data_1340 = .data:0x00001340; // type:object size:0x48 +lbl_1_data_1388 = .data:0x00001388; // type:object size:0x20 +lbl_1_data_13A8 = .data:0x000013A8; // type:object size:0x10 +lbl_1_data_13B8 = .data:0x000013B8; // type:object size:0x10 +lbl_1_data_13C8 = .data:0x000013C8; // type:object size:0x10 +lbl_1_data_13D8 = .data:0x000013D8; // type:object size:0x10 +lbl_1_data_13E8 = .data:0x000013E8; // type:object size:0x50 +lbl_1_data_1438 = .data:0x00001438; // type:object size:0x21 data:string +lbl_1_data_1459 = .data:0x00001459; // type:object size:0x1F +jumptable_1_data_1478 = .data:0x00001478; // type:object size:0x24 scope:local +lbl_1_data_149C = .data:0x0000149C; // type:object size:0x1C +jumptable_1_data_14B8 = .data:0x000014B8; // type:object size:0x34 scope:local +lbl_1_data_14EC = .data:0x000014EC; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0xA data:2byte +lbl_1_bss_1A = .bss:0x0000001A; // type:object size:0x2 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x30 +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x30 +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x30 +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x30 +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x18 data:float +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:float +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:float +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x4 data:float +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:float +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:float +lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x4 data:float +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x4 data:float +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4 data:float +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x60 +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x8 data:4byte +lbl_1_bss_198 = .bss:0x00000198; // type:object size:0x4 data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x4 data:4byte +lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 data:4byte +lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x4 data:4byte +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 data:4byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x100 +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x40 data:4byte +lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0x4 data:float +lbl_1_bss_2F4 = .bss:0x000002F4; // type:object size:0x4 data:4byte +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x4 data:4byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0x2 data:2byte +lbl_1_bss_2FE = .bss:0x000002FE; // type:object size:0x2 data:2byte +lbl_1_bss_300 = .bss:0x00000300; // type:object size:0x4 data:4byte +lbl_1_bss_304 = .bss:0x00000304; // type:object size:0x4 data:4byte +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0x4 data:4byte +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0xC data:float +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0xC data:4byte +lbl_1_bss_324 = .bss:0x00000324; // type:object size:0xC data:float +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0xC data:4byte +lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x4 data:4byte +lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x18 data:4byte +lbl_1_bss_358 = .bss:0x00000358; // type:object size:0xC data:4byte diff --git a/config/GMPJ01_00/rels/m430Dll/splits.txt b/config/GMPJ01_00/rels/m430Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m430Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m430Dll/symbols.txt b/config/GMPJ01_00/rels/m430Dll/symbols.txt new file mode 100644 index 00000000..3517ae68 --- /dev/null +++ b/config/GMPJ01_00/rels/m430Dll/symbols.txt @@ -0,0 +1,492 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x5BC +fn_1_65C = .text:0x0000065C; // type:function size:0xC4 +fn_1_720 = .text:0x00000720; // type:function size:0x334 +fn_1_A54 = .text:0x00000A54; // type:function size:0x144 +fn_1_B98 = .text:0x00000B98; // type:function size:0x564 +fn_1_10FC = .text:0x000010FC; // type:function size:0x590 +fn_1_168C = .text:0x0000168C; // type:function size:0x478 +fn_1_1B04 = .text:0x00001B04; // type:function size:0x6E0 +fn_1_21E4 = .text:0x000021E4; // type:function size:0x52C +fn_1_2710 = .text:0x00002710; // type:function size:0x638 +fn_1_2D48 = .text:0x00002D48; // type:function size:0x138 +fn_1_2E80 = .text:0x00002E80; // type:function size:0x81C +fn_1_369C = .text:0x0000369C; // type:function size:0xCC +fn_1_3768 = .text:0x00003768; // type:function size:0x8C8 +fn_1_4030 = .text:0x00004030; // type:function size:0x10 +fn_1_4040 = .text:0x00004040; // type:function size:0x18 +fn_1_4058 = .text:0x00004058; // type:function size:0x18 +fn_1_4070 = .text:0x00004070; // type:function size:0x18 +fn_1_4088 = .text:0x00004088; // type:function size:0x18 +fn_1_40A0 = .text:0x000040A0; // type:function size:0x18 +fn_1_40B8 = .text:0x000040B8; // type:function size:0x18 +fn_1_40D0 = .text:0x000040D0; // type:function size:0x30 +fn_1_4100 = .text:0x00004100; // type:function size:0x30 +fn_1_4130 = .text:0x00004130; // type:function size:0xC0 +fn_1_41F0 = .text:0x000041F0; // type:function size:0x348 +fn_1_4538 = .text:0x00004538; // type:function size:0x378 +fn_1_48B0 = .text:0x000048B0; // type:function size:0x11C +fn_1_49CC = .text:0x000049CC; // type:function size:0xB4 +fn_1_4A80 = .text:0x00004A80; // type:function size:0x1C8 +fn_1_4C48 = .text:0x00004C48; // type:function size:0x6C +fn_1_4CB4 = .text:0x00004CB4; // type:function size:0x1144 +fn_1_5DF8 = .text:0x00005DF8; // type:function size:0x388 +fn_1_6180 = .text:0x00006180; // type:function size:0x3C0 +fn_1_6540 = .text:0x00006540; // type:function size:0x214 +fn_1_6754 = .text:0x00006754; // type:function size:0x674 +fn_1_6DC8 = .text:0x00006DC8; // type:function size:0x2E4 +fn_1_70AC = .text:0x000070AC; // type:function size:0x280 +fn_1_732C = .text:0x0000732C; // type:function size:0x3AC +fn_1_76D8 = .text:0x000076D8; // type:function size:0x170 +fn_1_7848 = .text:0x00007848; // type:function size:0x464 +fn_1_7CAC = .text:0x00007CAC; // type:function size:0x200 +fn_1_7EAC = .text:0x00007EAC; // type:function size:0x110 +fn_1_7FBC = .text:0x00007FBC; // type:function size:0x40 +fn_1_7FFC = .text:0x00007FFC; // type:function size:0x40 +fn_1_803C = .text:0x0000803C; // type:function size:0x228 +fn_1_8264 = .text:0x00008264; // type:function size:0x90 +fn_1_82F4 = .text:0x000082F4; // type:function size:0x3C0 +fn_1_86B4 = .text:0x000086B4; // type:function size:0x4A8 +fn_1_8B5C = .text:0x00008B5C; // type:function size:0x184 +fn_1_8CE0 = .text:0x00008CE0; // type:function size:0x95C +fn_1_963C = .text:0x0000963C; // type:function size:0x654 +fn_1_9C90 = .text:0x00009C90; // type:function size:0x718 +fn_1_A3A8 = .text:0x0000A3A8; // type:function size:0x7F0 +fn_1_AB98 = .text:0x0000AB98; // type:function size:0xEC +fn_1_AC84 = .text:0x0000AC84; // type:function size:0x80 +fn_1_AD04 = .text:0x0000AD04; // type:function size:0x1DC +fn_1_AEE0 = .text:0x0000AEE0; // type:function size:0x4B4 +fn_1_B394 = .text:0x0000B394; // type:function size:0x1DC +fn_1_B570 = .text:0x0000B570; // type:function size:0x5E4 +fn_1_BB54 = .text:0x0000BB54; // type:function size:0x34 +fn_1_BB88 = .text:0x0000BB88; // type:function size:0x10 +fn_1_BB98 = .text:0x0000BB98; // type:function size:0x2C +fn_1_BBC4 = .text:0x0000BBC4; // type:function size:0x260 +fn_1_BE24 = .text:0x0000BE24; // type:function size:0x1E8 +fn_1_C00C = .text:0x0000C00C; // type:function size:0x34 +fn_1_C040 = .text:0x0000C040; // type:function size:0x1A4 +fn_1_C1E4 = .text:0x0000C1E4; // type:function size:0x858 +fn_1_CA3C = .text:0x0000CA3C; // type:function size:0x894 +fn_1_D2D0 = .text:0x0000D2D0; // type:function size:0x558 +fn_1_D828 = .text:0x0000D828; // type:function size:0x10D4 +fn_1_E8FC = .text:0x0000E8FC; // type:function size:0x7DC +fn_1_F0D8 = .text:0x0000F0D8; // type:function size:0x554 +fn_1_F62C = .text:0x0000F62C; // type:function size:0x74 +fn_1_F6A0 = .text:0x0000F6A0; // type:function size:0x5FC +fn_1_FC9C = .text:0x0000FC9C; // type:function size:0x404 +fn_1_100A0 = .text:0x000100A0; // type:function size:0x29C +fn_1_1033C = .text:0x0001033C; // type:function size:0x200 +fn_1_1053C = .text:0x0001053C; // type:function size:0x4 +fn_1_10540 = .text:0x00010540; // type:function size:0x4C +fn_1_1058C = .text:0x0001058C; // type:function size:0x2C +fn_1_105B8 = .text:0x000105B8; // type:function size:0x64 +fn_1_1061C = .text:0x0001061C; // type:function size:0x32C +fn_1_10948 = .text:0x00010948; // type:function size:0x240 +fn_1_10B88 = .text:0x00010B88; // type:function size:0x194 +fn_1_10D1C = .text:0x00010D1C; // type:function size:0x204 +fn_1_10F20 = .text:0x00010F20; // type:function size:0x4 +fn_1_10F24 = .text:0x00010F24; // type:function size:0x184 +fn_1_110A8 = .text:0x000110A8; // type:function size:0x114 +fn_1_111BC = .text:0x000111BC; // type:function size:0x158 +fn_1_11314 = .text:0x00011314; // type:function size:0x98 +fn_1_113AC = .text:0x000113AC; // type:function size:0x144 +fn_1_114F0 = .text:0x000114F0; // type:function size:0x154 +fn_1_11644 = .text:0x00011644; // type:function size:0x4 +fn_1_11648 = .text:0x00011648; // type:function size:0x15C +fn_1_117A4 = .text:0x000117A4; // type:function size:0x278 +fn_1_11A1C = .text:0x00011A1C; // type:function size:0x148 +fn_1_11B64 = .text:0x00011B64; // type:function size:0x30 +fn_1_11B94 = .text:0x00011B94; // type:function size:0x88 +fn_1_11C1C = .text:0x00011C1C; // type:function size:0x154 +fn_1_11D70 = .text:0x00011D70; // type:function size:0x1F0 +fn_1_11F60 = .text:0x00011F60; // type:function size:0x30 +fn_1_11F90 = .text:0x00011F90; // type:function size:0x5C0 +fn_1_12550 = .text:0x00012550; // type:function size:0x74 +fn_1_125C4 = .text:0x000125C4; // type:function size:0x408 +fn_1_129CC = .text:0x000129CC; // type:function size:0x3A8 +fn_1_12D74 = .text:0x00012D74; // type:function size:0x7C +fn_1_12DF0 = .text:0x00012DF0; // type:function size:0xB8 +fn_1_12EA8 = .text:0x00012EA8; // type:function size:0x78 +fn_1_12F20 = .text:0x00012F20; // type:function size:0x11C +fn_1_1303C = .text:0x0001303C; // type:function size:0x118 +fn_1_13154 = .text:0x00013154; // type:function size:0x250 +fn_1_133A4 = .text:0x000133A4; // type:function size:0x38 +fn_1_133DC = .text:0x000133DC; // type:function size:0xB4 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:4byte +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 data:4byte +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x10 data:4byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x10 data:4byte +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x10 data:4byte +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:4byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x18 data:4byte +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:4byte +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0xC data:4byte +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC data:4byte +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0xC data:4byte +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC data:4byte +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x18 data:4byte +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x30 data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x18 data:4byte +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x8 data:4byte +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x8 data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x20 data:4byte +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x14 data:4byte +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x10 data:4byte +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x10 data:4byte +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x1 data:byte +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x1 data:byte +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x1 data:byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x1 data:byte +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x1 data:byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x1 data:byte +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x1 data:byte +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x1 data:byte +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x1 data:byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:4byte +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0xC data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:double +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x8 data:double +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:double +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:double +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 data:double +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:double +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 data:double +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float +lbl_1_rodata_5FC = .rodata:0x000005FC; // type:object size:0x4 data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 data:float +lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 data:float +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x8 data:double +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x8 data:double +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 data:float +lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 data:float +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 data:float +lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 data:float +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x8 data:double +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 data:double +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 data:float +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x8 data:double +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x4 data:float +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 data:double +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x8 data:double +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x8 data:double +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float +lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 data:float +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 data:double +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x4 data:float +lbl_1_rodata_6BC = .rodata:0x000006BC; // type:object size:0x4 data:float +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x8 data:double +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x8 data:double +lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x8 data:double +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0x10 data:float +lbl_1_data_50 = .data:0x00000050; // type:object size:0x7 data:string +lbl_1_data_57 = .data:0x00000057; // type:object size:0x9 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x48 +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x18 +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x60 +lbl_1_data_120 = .data:0x00000120; // type:object size:0x48 +lbl_1_data_168 = .data:0x00000168; // type:object size:0x8 +lbl_1_data_170 = .data:0x00000170; // type:object size:0x38 +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x20 +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x14 +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x1C +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x60 +lbl_1_data_258 = .data:0x00000258; // type:object size:0x20 +lbl_1_data_278 = .data:0x00000278; // type:object size:0x8 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x8 +lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x14 +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x8 +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x54 +lbl_1_data_300 = .data:0x00000300; // type:object size:0x8 data:4byte +lbl_1_data_308 = .data:0x00000308; // type:object size:0x4 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte +lbl_1_bss_22 = .bss:0x00000022; // type:object size:0x2 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x6 data:2byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:float +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:float +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0xE0 data:4byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x4 data:4byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x4 data:4byte +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x8 data:4byte +lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x4 data:4byte +lbl_1_bss_15C = .bss:0x0000015C; // type:object size:0x4 data:4byte +lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x4 data:4byte +lbl_1_bss_164 = .bss:0x00000164; // type:object size:0x4 data:4byte +lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x4 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x4 data:4byte +lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x4 data:4byte +lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x4 data:4byte +lbl_1_bss_178 = .bss:0x00000178; // type:object size:0x4 data:4byte +lbl_1_bss_17C = .bss:0x0000017C; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m431Dll/splits.txt b/config/GMPJ01_00/rels/m431Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m431Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m431Dll/symbols.txt b/config/GMPJ01_00/rels/m431Dll/symbols.txt new file mode 100644 index 00000000..49cbc1e1 --- /dev/null +++ b/config/GMPJ01_00/rels/m431Dll/symbols.txt @@ -0,0 +1,252 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x384 +fn_1_424 = .text:0x00000424; // type:function size:0x78 +fn_1_49C = .text:0x0000049C; // type:function size:0xE0 +fn_1_57C = .text:0x0000057C; // type:function size:0x234 +fn_1_7B0 = .text:0x000007B0; // type:function size:0x294 +fn_1_A44 = .text:0x00000A44; // type:function size:0x660 +fn_1_10A4 = .text:0x000010A4; // type:function size:0x368 +fn_1_140C = .text:0x0000140C; // type:function size:0x228 +fn_1_1634 = .text:0x00001634; // type:function size:0x40C +fn_1_1A40 = .text:0x00001A40; // type:function size:0x5C0 +fn_1_2000 = .text:0x00002000; // type:function size:0x50 +fn_1_2050 = .text:0x00002050; // type:function size:0x40 +fn_1_2090 = .text:0x00002090; // type:function size:0x40 +fn_1_20D0 = .text:0x000020D0; // type:function size:0x40 +fn_1_2110 = .text:0x00002110; // type:function size:0x9A0 +fn_1_2AB0 = .text:0x00002AB0; // type:function size:0x10 +fn_1_2AC0 = .text:0x00002AC0; // type:function size:0x1D4 +fn_1_2C94 = .text:0x00002C94; // type:function size:0x44C +fn_1_30E0 = .text:0x000030E0; // type:function size:0x460 +fn_1_3540 = .text:0x00003540; // type:function size:0x83C +fn_1_3D7C = .text:0x00003D7C; // type:function size:0x254 +fn_1_3FD0 = .text:0x00003FD0; // type:function size:0x58 +fn_1_4028 = .text:0x00004028; // type:function size:0x6FC +fn_1_4724 = .text:0x00004724; // type:function size:0x14 +fn_1_4738 = .text:0x00004738; // type:function size:0x60 +fn_1_4798 = .text:0x00004798; // type:function size:0x138 +fn_1_48D0 = .text:0x000048D0; // type:function size:0xBC +fn_1_498C = .text:0x0000498C; // type:function size:0x188 +fn_1_4B14 = .text:0x00004B14; // type:function size:0x1C8 +fn_1_4CDC = .text:0x00004CDC; // type:function size:0x70 +fn_1_4D4C = .text:0x00004D4C; // type:function size:0xE4 +fn_1_4E30 = .text:0x00004E30; // type:function size:0x4A8 +fn_1_52D8 = .text:0x000052D8; // type:function size:0x1A8 +fn_1_5480 = .text:0x00005480; // type:function size:0xA4 +fn_1_5524 = .text:0x00005524; // type:function size:0x148 +fn_1_566C = .text:0x0000566C; // type:function size:0x9C +fn_1_5708 = .text:0x00005708; // type:function size:0x468 +fn_1_5B70 = .text:0x00005B70; // type:function size:0x4C0 +fn_1_6030 = .text:0x00006030; // type:function size:0x154 +fn_1_6184 = .text:0x00006184; // type:function size:0x380 +fn_1_6504 = .text:0x00006504; // type:function size:0xC8 +fn_1_65CC = .text:0x000065CC; // type:function size:0x10 +fn_1_65DC = .text:0x000065DC; // type:function size:0x5C +fn_1_6638 = .text:0x00006638; // type:function size:0xA4 +fn_1_66DC = .text:0x000066DC; // type:function size:0xE4 +fn_1_67C0 = .text:0x000067C0; // type:function size:0x374 +fn_1_6B34 = .text:0x00006B34; // type:function size:0x140 +fn_1_6C74 = .text:0x00006C74; // type:function size:0x544 +fn_1_71B8 = .text:0x000071B8; // type:function size:0x60 +fn_1_7218 = .text:0x00007218; // type:function size:0x2C +fn_1_7244 = .text:0x00007244; // type:function size:0x38 +fn_1_727C = .text:0x0000727C; // type:function size:0x38 +fn_1_72B4 = .text:0x000072B4; // type:function size:0x570 +fn_1_7824 = .text:0x00007824; // type:function size:0xCC +fn_1_78F0 = .text:0x000078F0; // type:function size:0xA4 +fn_1_7994 = .text:0x00007994; // type:function size:0x68 +fn_1_79FC = .text:0x000079FC; // type:function size:0x7C +fn_1_7A78 = .text:0x00007A78; // type:function size:0x44 +fn_1_7ABC = .text:0x00007ABC; // type:function size:0x4FC +fn_1_7FB8 = .text:0x00007FB8; // type:function size:0x4BC +fn_1_8474 = .text:0x00008474; // type:function size:0x118 +fn_1_858C = .text:0x0000858C; // type:function size:0x204 +fn_1_8790 = .text:0x00008790; // type:function size:0x344 +fn_1_8AD4 = .text:0x00008AD4; // type:function size:0x1EC +fn_1_8CC0 = .text:0x00008CC0; // type:function size:0x6CC +fn_1_938C = .text:0x0000938C; // type:function size:0xB4 +fn_1_9440 = .text:0x00009440; // type:function size:0x494 +fn_1_98D4 = .text:0x000098D4; // type:function size:0x130 +fn_1_9A04 = .text:0x00009A04; // type:function size:0x258 +fn_1_9C5C = .text:0x00009C5C; // type:function size:0x49C +fn_1_A0F8 = .text:0x0000A0F8; // type:function size:0x358 +fn_1_A450 = .text:0x0000A450; // type:function size:0x380 +fn_1_A7D0 = .text:0x0000A7D0; // type:function size:0x134 +fn_1_A904 = .text:0x0000A904; // type:function size:0x13C +fn_1_AA40 = .text:0x0000AA40; // type:function size:0xB0 +fn_1_AAF0 = .text:0x0000AAF0; // type:function size:0xB0 +fn_1_ABA0 = .text:0x0000ABA0; // type:function size:0x20 +fn_1_ABC0 = .text:0x0000ABC0; // type:function size:0x30 +fn_1_ABF0 = .text:0x0000ABF0; // type:function size:0x90 +fn_1_AC80 = .text:0x0000AC80; // type:function size:0x108 +fn_1_AD88 = .text:0x0000AD88; // type:function size:0x7C +fn_1_AE04 = .text:0x0000AE04; // type:function size:0x2E4 +fn_1_B0E8 = .text:0x0000B0E8; // type:function size:0x48 +fn_1_B130 = .text:0x0000B130; // type:function size:0x20 +fn_1_B150 = .text:0x0000B150; // type:function size:0x1C +fn_1_B16C = .text:0x0000B16C; // type:function size:0x20 +fn_1_B18C = .text:0x0000B18C; // type:function size:0x1F8 +fn_1_B384 = .text:0x0000B384; // type:function size:0x80 +fn_1_B404 = .text:0x0000B404; // type:function size:0x90 +fn_1_B494 = .text:0x0000B494; // type:function size:0x64 +fn_1_B4F8 = .text:0x0000B4F8; // type:function size:0x38 +fn_1_B530 = .text:0x0000B530; // type:function size:0x28 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x1 data:byte +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:2byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0x10 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x70 data:float +lbl_1_data_BC = .data:0x000000BC; // type:object size:0xC +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x8 data:4byte +jumptable_1_data_D0 = .data:0x000000D0; // type:object size:0x44 scope:local +lbl_1_data_114 = .data:0x00000114; // type:object size:0x10 +lbl_1_data_124 = .data:0x00000124; // type:object size:0x10 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x14 +lbl_1_data_148 = .data:0x00000148; // type:object size:0x14 +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x6 data:string +lbl_1_data_162 = .data:0x00000162; // type:object size:0x2 data:2byte +lbl_1_data_164 = .data:0x00000164; // type:object size:0x10 data:4byte +lbl_1_data_174 = .data:0x00000174; // type:object size:0x10 data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x26 data:string +lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x26 +lbl_1_data_1D0 = .data:0x000001D0; // type:object size:0x4 data:float +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x20 +lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x20 +lbl_1_data_214 = .data:0x00000214; // type:object size:0x1C +lbl_1_data_230 = .data:0x00000230; // type:object size:0x20 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x10 +lbl_1_data_260 = .data:0x00000260; // type:object size:0x8 +lbl_1_data_268 = .data:0x00000268; // type:object size:0x2 data:2byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte +lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x2 data:2byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x1 data:byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x1 data:byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x2 data:2byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x28 +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x3C data:2byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x1 data:byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x10 +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x80 data:4byte +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4F0 data:2byte +lbl_1_bss_61C = .bss:0x0000061C; // type:object size:0x10 +lbl_1_bss_62C = .bss:0x0000062C; // type:object size:0x50 data:float diff --git a/config/GMPJ01_00/rels/m432Dll/splits.txt b/config/GMPJ01_00/rels/m432Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m432Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m432Dll/symbols.txt b/config/GMPJ01_00/rels/m432Dll/symbols.txt new file mode 100644 index 00000000..7d4201a9 --- /dev/null +++ b/config/GMPJ01_00/rels/m432Dll/symbols.txt @@ -0,0 +1,359 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x218 +fn_1_798 = .text:0x00000798; // type:function size:0x254 +fn_1_9EC = .text:0x000009EC; // type:function size:0x54 +fn_1_A40 = .text:0x00000A40; // type:function size:0x10C +fn_1_B4C = .text:0x00000B4C; // type:function size:0x6A8 +fn_1_11F4 = .text:0x000011F4; // type:function size:0x15C +fn_1_1350 = .text:0x00001350; // type:function size:0x8C +fn_1_13DC = .text:0x000013DC; // type:function size:0x334 +fn_1_1710 = .text:0x00001710; // type:function size:0x350 +fn_1_1A60 = .text:0x00001A60; // type:function size:0x2B8 +fn_1_1D18 = .text:0x00001D18; // type:function size:0x58 +fn_1_1D70 = .text:0x00001D70; // type:function size:0xB0 +fn_1_1E20 = .text:0x00001E20; // type:function size:0x104 +fn_1_1F24 = .text:0x00001F24; // type:function size:0x34 +fn_1_1F58 = .text:0x00001F58; // type:function size:0x6C +fn_1_1FC4 = .text:0x00001FC4; // type:function size:0x3F0 +fn_1_23B4 = .text:0x000023B4; // type:function size:0x64 +fn_1_2418 = .text:0x00002418; // type:function size:0xE0 +fn_1_24F8 = .text:0x000024F8; // type:function size:0x32C +fn_1_2824 = .text:0x00002824; // type:function size:0x3AC +fn_1_2BD0 = .text:0x00002BD0; // type:function size:0x30 +fn_1_2C00 = .text:0x00002C00; // type:function size:0x1C +fn_1_2C1C = .text:0x00002C1C; // type:function size:0x18C +fn_1_2DA8 = .text:0x00002DA8; // type:function size:0x8 +fn_1_2DB0 = .text:0x00002DB0; // type:function size:0x8 +fn_1_2DB8 = .text:0x00002DB8; // type:function size:0x8 +fn_1_2DC0 = .text:0x00002DC0; // type:function size:0x8 +fn_1_2DC8 = .text:0x00002DC8; // type:function size:0xC +fn_1_2DD4 = .text:0x00002DD4; // type:function size:0x60 +fn_1_2E34 = .text:0x00002E34; // type:function size:0xB90 +fn_1_39C4 = .text:0x000039C4; // type:function size:0x31C +fn_1_3CE0 = .text:0x00003CE0; // type:function size:0xD8 +fn_1_3DB8 = .text:0x00003DB8; // type:function size:0x114 +fn_1_3ECC = .text:0x00003ECC; // type:function size:0xB8 +fn_1_3F84 = .text:0x00003F84; // type:function size:0xA0 +fn_1_4024 = .text:0x00004024; // type:function size:0x9C +fn_1_40C0 = .text:0x000040C0; // type:function size:0xE18 +fn_1_4ED8 = .text:0x00004ED8; // type:function size:0x250 +fn_1_5128 = .text:0x00005128; // type:function size:0x10 +fn_1_5138 = .text:0x00005138; // type:function size:0x10 +fn_1_5148 = .text:0x00005148; // type:function size:0x60 +fn_1_51A8 = .text:0x000051A8; // type:function size:0x60 +fn_1_5208 = .text:0x00005208; // type:function size:0xB0 +fn_1_52B8 = .text:0x000052B8; // type:function size:0xAC +fn_1_5364 = .text:0x00005364; // type:function size:0x408 +fn_1_576C = .text:0x0000576C; // type:function size:0xDC +fn_1_5848 = .text:0x00005848; // type:function size:0x364 +fn_1_5BAC = .text:0x00005BAC; // type:function size:0x380 +fn_1_5F2C = .text:0x00005F2C; // type:function size:0x310 +fn_1_623C = .text:0x0000623C; // type:function size:0xAF8 +fn_1_6D34 = .text:0x00006D34; // type:function size:0x1F4 +fn_1_6F28 = .text:0x00006F28; // type:function size:0xCF4 +fn_1_7C1C = .text:0x00007C1C; // type:function size:0x924 +fn_1_8540 = .text:0x00008540; // type:function size:0x6C +fn_1_85AC = .text:0x000085AC; // type:function size:0x70 +fn_1_861C = .text:0x0000861C; // type:function size:0x1F8 +fn_1_8814 = .text:0x00008814; // type:function size:0x200 +fn_1_8A14 = .text:0x00008A14; // type:function size:0x2A0 +fn_1_8CB4 = .text:0x00008CB4; // type:function size:0x288 +fn_1_8F3C = .text:0x00008F3C; // type:function size:0x130 +fn_1_906C = .text:0x0000906C; // type:function size:0x350 +fn_1_93BC = .text:0x000093BC; // type:function size:0x15B8 +fn_1_A974 = .text:0x0000A974; // type:function size:0x8C +fn_1_AA00 = .text:0x0000AA00; // type:function size:0x1C +fn_1_AA1C = .text:0x0000AA1C; // type:function size:0x2AC +fn_1_ACC8 = .text:0x0000ACC8; // type:function size:0x260 +fn_1_AF28 = .text:0x0000AF28; // type:function size:0x26C +_prolog = .text:0x0000B194; // type:function size:0x54 scope:global +_epilog = .text:0x0000B1E8; // type:function size:0x4C scope:global +fn_1_B234 = .text:0x0000B234; // type:function size:0x224 +fn_1_B458 = .text:0x0000B458; // type:function size:0xC0 +fn_1_B518 = .text:0x0000B518; // type:function size:0x2CC +fn_1_B7E4 = .text:0x0000B7E4; // type:function size:0x190 +fn_1_B974 = .text:0x0000B974; // type:function size:0x134 +fn_1_BAA8 = .text:0x0000BAA8; // type:function size:0x460 +fn_1_BF08 = .text:0x0000BF08; // type:function size:0x94 +fn_1_BF9C = .text:0x0000BF9C; // type:function size:0x3A0 +fn_1_C33C = .text:0x0000C33C; // type:function size:0x3E8 +fn_1_C724 = .text:0x0000C724; // type:function size:0x9BC +fn_1_D0E0 = .text:0x0000D0E0; // type:function size:0x90C +fn_1_D9EC = .text:0x0000D9EC; // type:function size:0x9C8 +fn_1_E3B4 = .text:0x0000E3B4; // type:function size:0x630 +fn_1_E9E4 = .text:0x0000E9E4; // type:function size:0x298 +fn_1_EC7C = .text:0x0000EC7C; // type:function size:0x90 +fn_1_ED0C = .text:0x0000ED0C; // type:function size:0x1544 +fn_1_10250 = .text:0x00010250; // type:function size:0xA7C +fn_1_10CCC = .text:0x00010CCC; // type:function size:0x724 +fn_1_113F0 = .text:0x000113F0; // type:function size:0x4 +fn_1_113F4 = .text:0x000113F4; // type:function size:0x140C +fn_1_12800 = .text:0x00012800; // type:function size:0x4 +fn_1_12804 = .text:0x00012804; // type:function size:0xC4 +fn_1_128C8 = .text:0x000128C8; // type:function size:0x5E0 +fn_1_12EA8 = .text:0x00012EA8; // type:function size:0x300 +fn_1_131A8 = .text:0x000131A8; // type:function size:0x2178 +fn_1_15320 = .text:0x00015320; // type:function size:0x9C +fn_1_153BC = .text:0x000153BC; // type:function size:0xDA0 +fn_1_1615C = .text:0x0001615C; // type:function size:0x104 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 +lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 +lbl_1_data_80 = .data:0x00000080; // type:object size:0x20 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x8 +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x20 data:float +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0xC +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0xC +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0xC +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x4 +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0xC +lbl_1_data_FC = .data:0x000000FC; // type:object size:0xC +lbl_1_data_108 = .data:0x00000108; // type:object size:0x160 +lbl_1_data_268 = .data:0x00000268; // type:object size:0x20 +lbl_1_data_288 = .data:0x00000288; // type:object size:0x24 +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x24 +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x24 +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x24 +lbl_1_data_318 = .data:0x00000318; // type:object size:0x3C +lbl_1_data_354 = .data:0x00000354; // type:object size:0x18 +lbl_1_data_36C = .data:0x0000036C; // type:object size:0x18 +lbl_1_data_384 = .data:0x00000384; // type:object size:0xB data:string +lbl_1_data_38F = .data:0x0000038F; // type:object size:0xB data:string +lbl_1_data_39A = .data:0x0000039A; // type:object size:0xB data:string +lbl_1_data_3A5 = .data:0x000003A5; // type:object size:0xB data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0xB data:string +lbl_1_data_3BB = .data:0x000003BB; // type:object size:0xB data:string +lbl_1_data_3C6 = .data:0x000003C6; // type:object size:0xB data:string +lbl_1_data_3D1 = .data:0x000003D1; // type:object size:0xB data:string +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x20 +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0xB data:string +lbl_1_data_407 = .data:0x00000407; // type:object size:0xB data:string +lbl_1_data_412 = .data:0x00000412; // type:object size:0xB data:string +lbl_1_data_41D = .data:0x0000041D; // type:object size:0xB data:string +lbl_1_data_428 = .data:0x00000428; // type:object size:0xB data:string +lbl_1_data_433 = .data:0x00000433; // type:object size:0xD +lbl_1_data_440 = .data:0x00000440; // type:object size:0x18 data:4byte +lbl_1_data_458 = .data:0x00000458; // type:object size:0xB data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0xB data:string +lbl_1_data_46E = .data:0x0000046E; // type:object size:0xB data:string +lbl_1_data_479 = .data:0x00000479; // type:object size:0xB data:string +lbl_1_data_484 = .data:0x00000484; // type:object size:0xB data:string +lbl_1_data_48F = .data:0x0000048F; // type:object size:0xB data:string +lbl_1_data_49A = .data:0x0000049A; // type:object size:0xB data:string +lbl_1_data_4A5 = .data:0x000004A5; // type:object size:0xB data:string +lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0xB data:string +lbl_1_data_4BB = .data:0x000004BB; // type:object size:0xD +lbl_1_data_4C8 = .data:0x000004C8; // type:object size:0x28 data:4byte +lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x14 +lbl_1_data_504 = .data:0x00000504; // type:object size:0x24 +lbl_1_data_528 = .data:0x00000528; // type:object size:0x8 +lbl_1_data_530 = .data:0x00000530; // type:object size:0xB data:string +lbl_1_data_53B = .data:0x0000053B; // type:object size:0xB data:string +lbl_1_data_546 = .data:0x00000546; // type:object size:0xB data:string +lbl_1_data_551 = .data:0x00000551; // type:object size:0xB data:string +lbl_1_data_55C = .data:0x0000055C; // type:object size:0xB data:string +lbl_1_data_567 = .data:0x00000567; // type:object size:0xB data:string +lbl_1_data_572 = .data:0x00000572; // type:object size:0xB data:string +lbl_1_data_57D = .data:0x0000057D; // type:object size:0xB data:string +lbl_1_data_588 = .data:0x00000588; // type:object size:0xB data:string +lbl_1_data_593 = .data:0x00000593; // type:object size:0xB data:string +lbl_1_data_59E = .data:0x0000059E; // type:object size:0xB data:string +lbl_1_data_5A9 = .data:0x000005A9; // type:object size:0xB data:string +lbl_1_data_5B4 = .data:0x000005B4; // type:object size:0xB data:string +lbl_1_data_5BF = .data:0x000005BF; // type:object size:0xB data:string +lbl_1_data_5CA = .data:0x000005CA; // type:object size:0xB data:string +lbl_1_data_5D5 = .data:0x000005D5; // type:object size:0xB data:string +lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0xC +lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x8B8 +lbl_1_data_EA4 = .data:0x00000EA4; // type:object size:0xB data:string +lbl_1_data_EAF = .data:0x00000EAF; // type:object size:0xB data:string +lbl_1_data_EBA = .data:0x00000EBA; // type:object size:0xB data:string +lbl_1_data_EC5 = .data:0x00000EC5; // type:object size:0xB data:string +lbl_1_data_ED0 = .data:0x00000ED0; // type:object size:0xC +lbl_1_data_EDC = .data:0x00000EDC; // type:object size:0x8B8 +lbl_1_data_1794 = .data:0x00001794; // type:object size:0x20 +lbl_1_data_17B4 = .data:0x000017B4; // type:object size:0x20 +lbl_1_data_17D4 = .data:0x000017D4; // type:object size:0x20 data:float +lbl_1_data_17F4 = .data:0x000017F4; // type:object size:0x20 +lbl_1_data_1814 = .data:0x00001814; // type:object size:0x50 +lbl_1_data_1864 = .data:0x00001864; // type:object size:0x11 data:string +lbl_1_data_1875 = .data:0x00001875; // type:object size:0x11 data:string +lbl_1_data_1886 = .data:0x00001886; // type:object size:0x11 data:string +lbl_1_data_1897 = .data:0x00001897; // type:object size:0x18 data:string +lbl_1_data_18AF = .data:0x000018AF; // type:object size:0xB data:string +lbl_1_data_18BA = .data:0x000018BA; // type:object size:0x18 data:string +lbl_1_data_18D2 = .data:0x000018D2; // type:object size:0xC data:string +lbl_1_data_18DE = .data:0x000018DE; // type:object size:0x6 data:string +lbl_1_data_18E4 = .data:0x000018E4; // type:object size:0x21 data:string +lbl_1_data_1905 = .data:0x00001905; // type:object size:0x1F +jumptable_1_data_1924 = .data:0x00001924; // type:object size:0x1C scope:local +jumptable_1_data_1940 = .data:0x00001940; // type:object size:0x44 scope:local +lbl_1_data_1984 = .data:0x00001984; // type:object size:0xB data:string +lbl_1_data_198F = .data:0x0000198F; // type:object size:0x1D +jumptable_1_data_19AC = .data:0x000019AC; // type:object size:0x28 scope:local +lbl_1_data_19D4 = .data:0x000019D4; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x3F0 data:float +lbl_1_bss_3F0 = .bss:0x000003F0; // type:object size:0x4 data:float +lbl_1_bss_3F4 = .bss:0x000003F4; // type:object size:0x4 data:4byte +lbl_1_bss_3F8 = .bss:0x000003F8; // type:object size:0x4 data:4byte +lbl_1_bss_3FC = .bss:0x000003FC; // type:object size:0x4 data:4byte +lbl_1_bss_400 = .bss:0x00000400; // type:object size:0x2 data:2byte +lbl_1_bss_402 = .bss:0x00000402; // type:object size:0x2 data:2byte +lbl_1_bss_404 = .bss:0x00000404; // type:object size:0x2 data:2byte +lbl_1_bss_408 = .bss:0x00000408; // type:object size:0x8 data:4byte +lbl_1_bss_410 = .bss:0x00000410; // type:object size:0x4 data:4byte +lbl_1_bss_414 = .bss:0x00000414; // type:object size:0x4 data:4byte +lbl_1_bss_418 = .bss:0x00000418; // type:object size:0x4 data:4byte +lbl_1_bss_41C = .bss:0x0000041C; // type:object size:0x4 data:4byte +lbl_1_bss_420 = .bss:0x00000420; // type:object size:0x4 data:float +lbl_1_bss_424 = .bss:0x00000424; // type:object size:0x4 data:4byte +lbl_1_bss_428 = .bss:0x00000428; // type:object size:0x100 +lbl_1_bss_528 = .bss:0x00000528; // type:object size:0x40 data:4byte +lbl_1_bss_568 = .bss:0x00000568; // type:object size:0x4 data:float +lbl_1_bss_56C = .bss:0x0000056C; // type:object size:0x4 data:4byte +lbl_1_bss_570 = .bss:0x00000570; // type:object size:0x4 data:4byte +lbl_1_bss_574 = .bss:0x00000574; // type:object size:0x2 data:2byte +lbl_1_bss_576 = .bss:0x00000576; // type:object size:0x2 data:2byte +lbl_1_bss_578 = .bss:0x00000578; // type:object size:0x4 data:4byte +lbl_1_bss_57C = .bss:0x0000057C; // type:object size:0x4 data:4byte +lbl_1_bss_580 = .bss:0x00000580; // type:object size:0x4 data:4byte +lbl_1_bss_584 = .bss:0x00000584; // type:object size:0xC data:float +lbl_1_bss_590 = .bss:0x00000590; // type:object size:0xC data:4byte +lbl_1_bss_59C = .bss:0x0000059C; // type:object size:0xC data:float +lbl_1_bss_5A8 = .bss:0x000005A8; // type:object size:0xC data:4byte +lbl_1_bss_5B4 = .bss:0x000005B4; // type:object size:0x4 data:4byte +lbl_1_bss_5B8 = .bss:0x000005B8; // type:object size:0x18 data:4byte +lbl_1_bss_5D0 = .bss:0x000005D0; // type:object size:0xC data:4byte diff --git a/config/GMPJ01_00/rels/m433Dll/splits.txt b/config/GMPJ01_00/rels/m433Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m433Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m433Dll/symbols.txt b/config/GMPJ01_00/rels/m433Dll/symbols.txt new file mode 100644 index 00000000..1d318f59 --- /dev/null +++ b/config/GMPJ01_00/rels/m433Dll/symbols.txt @@ -0,0 +1,472 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x420 +fn_1_4C0 = .text:0x000004C0; // type:function size:0xC4 +fn_1_584 = .text:0x00000584; // type:function size:0x94 +fn_1_618 = .text:0x00000618; // type:function size:0x180 +fn_1_798 = .text:0x00000798; // type:function size:0x33C +fn_1_AD4 = .text:0x00000AD4; // type:function size:0x358 +fn_1_E2C = .text:0x00000E2C; // type:function size:0x214 +fn_1_1040 = .text:0x00001040; // type:function size:0x3BC +fn_1_13FC = .text:0x000013FC; // type:function size:0x2D4 +fn_1_16D0 = .text:0x000016D0; // type:function size:0x36C +fn_1_1A3C = .text:0x00001A3C; // type:function size:0xC +fn_1_1A48 = .text:0x00001A48; // type:function size:0x6F4 +fn_1_213C = .text:0x0000213C; // type:function size:0x18 +fn_1_2154 = .text:0x00002154; // type:function size:0x18 +fn_1_216C = .text:0x0000216C; // type:function size:0x18 +fn_1_2184 = .text:0x00002184; // type:function size:0x18 +fn_1_219C = .text:0x0000219C; // type:function size:0x30 +fn_1_21CC = .text:0x000021CC; // type:function size:0x18 +fn_1_21E4 = .text:0x000021E4; // type:function size:0x30 +fn_1_2214 = .text:0x00002214; // type:function size:0x30 +fn_1_2244 = .text:0x00002244; // type:function size:0x38 +fn_1_227C = .text:0x0000227C; // type:function size:0x208 +fn_1_2484 = .text:0x00002484; // type:function size:0x240 +fn_1_26C4 = .text:0x000026C4; // type:function size:0x11C +fn_1_27E0 = .text:0x000027E0; // type:function size:0xB4 +fn_1_2894 = .text:0x00002894; // type:function size:0xF0 +fn_1_2984 = .text:0x00002984; // type:function size:0x20 +fn_1_29A4 = .text:0x000029A4; // type:function size:0x120 +fn_1_2AC4 = .text:0x00002AC4; // type:function size:0x21C +fn_1_2CE0 = .text:0x00002CE0; // type:function size:0x5EC +fn_1_32CC = .text:0x000032CC; // type:function size:0x6E0 +fn_1_39AC = .text:0x000039AC; // type:function size:0x270 +fn_1_3C1C = .text:0x00003C1C; // type:function size:0x240 +fn_1_3E5C = .text:0x00003E5C; // type:function size:0xB8 +fn_1_3F14 = .text:0x00003F14; // type:function size:0xB80 +fn_1_4A94 = .text:0x00004A94; // type:function size:0x10C +fn_1_4BA0 = .text:0x00004BA0; // type:function size:0x334 +fn_1_4ED4 = .text:0x00004ED4; // type:function size:0xEC +fn_1_4FC0 = .text:0x00004FC0; // type:function size:0x28 +fn_1_4FE8 = .text:0x00004FE8; // type:function size:0x80 +fn_1_5068 = .text:0x00005068; // type:function size:0x40 +fn_1_50A8 = .text:0x000050A8; // type:function size:0xA0 +fn_1_5148 = .text:0x00005148; // type:function size:0x94 +fn_1_51DC = .text:0x000051DC; // type:function size:0x84 +fn_1_5260 = .text:0x00005260; // type:function size:0x54 +fn_1_52B4 = .text:0x000052B4; // type:function size:0x168 +fn_1_541C = .text:0x0000541C; // type:function size:0x120 +fn_1_553C = .text:0x0000553C; // type:function size:0x39C +fn_1_58D8 = .text:0x000058D8; // type:function size:0x2C +fn_1_5904 = .text:0x00005904; // type:function size:0x270 +fn_1_5B74 = .text:0x00005B74; // type:function size:0x24 +fn_1_5B98 = .text:0x00005B98; // type:function size:0x4D8 +fn_1_6070 = .text:0x00006070; // type:function size:0x50 +fn_1_60C0 = .text:0x000060C0; // type:function size:0x76C +fn_1_682C = .text:0x0000682C; // type:function size:0xA00 +fn_1_722C = .text:0x0000722C; // type:function size:0x2A8 +fn_1_74D4 = .text:0x000074D4; // type:function size:0xF34 +fn_1_8408 = .text:0x00008408; // type:function size:0x334 +fn_1_873C = .text:0x0000873C; // type:function size:0x1FC +fn_1_8938 = .text:0x00008938; // type:function size:0x298 +fn_1_8BD0 = .text:0x00008BD0; // type:function size:0x3B0 +fn_1_8F80 = .text:0x00008F80; // type:function size:0x708 +fn_1_9688 = .text:0x00009688; // type:function size:0xF90 +fn_1_A618 = .text:0x0000A618; // type:function size:0x570 +fn_1_AB88 = .text:0x0000AB88; // type:function size:0x60C +fn_1_B194 = .text:0x0000B194; // type:function size:0x340 +fn_1_B4D4 = .text:0x0000B4D4; // type:function size:0x20C +fn_1_B6E0 = .text:0x0000B6E0; // type:function size:0xCC +fn_1_B7AC = .text:0x0000B7AC; // type:function size:0x8C +fn_1_B838 = .text:0x0000B838; // type:function size:0x2A8 +fn_1_BAE0 = .text:0x0000BAE0; // type:function size:0x268 +fn_1_BD48 = .text:0x0000BD48; // type:function size:0x4F8 +fn_1_C240 = .text:0x0000C240; // type:function size:0x46C +fn_1_C6AC = .text:0x0000C6AC; // type:function size:0x4 +fn_1_C6B0 = .text:0x0000C6B0; // type:function size:0x4E8 +fn_1_CB98 = .text:0x0000CB98; // type:function size:0x220 +fn_1_CDB8 = .text:0x0000CDB8; // type:function size:0x3C8 +fn_1_D180 = .text:0x0000D180; // type:function size:0x1B8 +fn_1_D338 = .text:0x0000D338; // type:function size:0x1A8 +fn_1_D4E0 = .text:0x0000D4E0; // type:function size:0x1C8 +fn_1_D6A8 = .text:0x0000D6A8; // type:function size:0x1E0 +fn_1_D888 = .text:0x0000D888; // type:function size:0x4E8 +fn_1_DD70 = .text:0x0000DD70; // type:function size:0xB8 +fn_1_DE28 = .text:0x0000DE28; // type:function size:0x11C +fn_1_DF44 = .text:0x0000DF44; // type:function size:0xA0 +fn_1_DFE4 = .text:0x0000DFE4; // type:function size:0x138 +fn_1_E11C = .text:0x0000E11C; // type:function size:0x4A4 +fn_1_E5C0 = .text:0x0000E5C0; // type:function size:0x4CC +fn_1_EA8C = .text:0x0000EA8C; // type:function size:0x158 +fn_1_EBE4 = .text:0x0000EBE4; // type:function size:0x118 +fn_1_ECFC = .text:0x0000ECFC; // type:function size:0x1168 +fn_1_FE64 = .text:0x0000FE64; // type:function size:0x28 +fn_1_FE8C = .text:0x0000FE8C; // type:function size:0x2A4 +fn_1_10130 = .text:0x00010130; // type:function size:0x130 +fn_1_10260 = .text:0x00010260; // type:function size:0x3B4 +fn_1_10614 = .text:0x00010614; // type:function size:0xF8 +fn_1_1070C = .text:0x0001070C; // type:function size:0x34 +fn_1_10740 = .text:0x00010740; // type:function size:0x70 +fn_1_107B0 = .text:0x000107B0; // type:function size:0x98 +fn_1_10848 = .text:0x00010848; // type:function size:0x30 +fn_1_10878 = .text:0x00010878; // type:function size:0x4C +fn_1_108C4 = .text:0x000108C4; // type:function size:0x3C +fn_1_10900 = .text:0x00010900; // type:function size:0x28 +fn_1_10928 = .text:0x00010928; // type:function size:0x1F8 +fn_1_10B20 = .text:0x00010B20; // type:function size:0x204 +fn_1_10D24 = .text:0x00010D24; // type:function size:0x180 +fn_1_10EA4 = .text:0x00010EA4; // type:function size:0x28 +fn_1_10ECC = .text:0x00010ECC; // type:function size:0x34 +fn_1_10F00 = .text:0x00010F00; // type:function size:0x38 +fn_1_10F38 = .text:0x00010F38; // type:function size:0x34 +fn_1_10F6C = .text:0x00010F6C; // type:function size:0x38 +fn_1_10FA4 = .text:0x00010FA4; // type:function size:0x38 +fn_1_10FDC = .text:0x00010FDC; // type:function size:0x28 +fn_1_11004 = .text:0x00011004; // type:function size:0x5C +fn_1_11060 = .text:0x00011060; // type:function size:0x38 +fn_1_11098 = .text:0x00011098; // type:function size:0x98 +fn_1_11130 = .text:0x00011130; // type:function size:0x1B0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x10 data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0xC0 +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x10 data:4byte +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x10 data:4byte +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 data:4byte +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x10 data:4byte +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x18 data:4byte +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x18 data:4byte +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 data:double +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x8 data:double +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:4byte +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x8 data:double +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x24 data:4byte +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:4byte +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:4byte +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x8 data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x8 data:4byte +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:double +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:4byte +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 data:double +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x4 data:float +lbl_1_rodata_604 = .rodata:0x00000604; // type:object size:0x4 data:float +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 data:float +lbl_1_rodata_60C = .rodata:0x0000060C; // type:object size:0x4 data:float +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 data:float +lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 data:float +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 data:float +lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 data:float +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 data:float +lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 data:float +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 data:float +lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 data:float +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 data:float +lbl_1_rodata_66C = .rodata:0x0000066C; // type:object size:0x4 data:float +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x4 data:float +lbl_1_rodata_674 = .rodata:0x00000674; // type:object size:0x4 data:float +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 data:float +lbl_1_rodata_67C = .rodata:0x0000067C; // type:object size:0x4 data:float +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 data:float +lbl_1_rodata_684 = .rodata:0x00000684; // type:object size:0x4 data:float +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x4 data:float +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 data:double +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 data:float +lbl_1_rodata_69C = .rodata:0x0000069C; // type:object size:0x4 data:float +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x4 data:float +lbl_1_rodata_6A4 = .rodata:0x000006A4; // type:object size:0x4 data:float +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0xC data:float +lbl_1_data_58 = .data:0x00000058; // type:object size:0x50 data:float +jumptable_1_data_A8 = .data:0x000000A8; // type:object size:0x1C scope:local +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x1C data:4byte +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x38 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x38 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x30 +lbl_1_data_180 = .data:0x00000180; // type:object size:0x44 +lbl_1_data_1C4 = .data:0x000001C4; // type:object size:0x44 +lbl_1_data_208 = .data:0x00000208; // type:object size:0x44 +lbl_1_data_24C = .data:0x0000024C; // type:object size:0x1A4 +lbl_1_data_3F0 = .data:0x000003F0; // type:object size:0x38 +lbl_1_data_428 = .data:0x00000428; // type:object size:0x9 data:string +lbl_1_data_431 = .data:0x00000431; // type:object size:0x9 data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0xB data:string +lbl_1_data_445 = .data:0x00000445; // type:object size:0xB data:string +lbl_1_data_450 = .data:0x00000450; // type:object size:0x18 +lbl_1_data_468 = .data:0x00000468; // type:object size:0x24 +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x48 +lbl_1_data_4D4 = .data:0x000004D4; // type:object size:0x6C +lbl_1_data_540 = .data:0x00000540; // type:object size:0x24 +lbl_1_data_564 = .data:0x00000564; // type:object size:0x2 data:string +lbl_1_data_566 = .data:0x00000566; // type:object size:0x15 data:string +lbl_1_data_57B = .data:0x0000057B; // type:object size:0x15 data:string +lbl_1_data_590 = .data:0x00000590; // type:object size:0x15 data:string +lbl_1_data_5A5 = .data:0x000005A5; // type:object size:0x15 data:string +lbl_1_data_5BA = .data:0x000005BA; // type:object size:0x18 data:string +lbl_1_data_5D2 = .data:0x000005D2; // type:object size:0x18 data:string +lbl_1_data_5EA = .data:0x000005EA; // type:object size:0x15 data:string +lbl_1_data_5FF = .data:0x000005FF; // type:object size:0x15 data:string +lbl_1_data_614 = .data:0x00000614; // type:object size:0x15 data:string +lbl_1_data_629 = .data:0x00000629; // type:object size:0x15 data:string +lbl_1_data_63E = .data:0x0000063E; // type:object size:0x16 +jumptable_1_data_654 = .data:0x00000654; // type:object size:0x20 scope:local +lbl_1_data_674 = .data:0x00000674; // type:object size:0xC +lbl_1_data_680 = .data:0x00000680; // type:object size:0x8 +lbl_1_data_688 = .data:0x00000688; // type:object size:0x28 +lbl_1_data_6B0 = .data:0x000006B0; // type:object size:0x10 +lbl_1_data_6C0 = .data:0x000006C0; // type:object size:0xB0 data:4byte +lbl_1_data_770 = .data:0x00000770; // type:object size:0x24 +lbl_1_data_794 = .data:0x00000794; // type:object size:0x6C +lbl_1_data_800 = .data:0x00000800; // type:object size:0x24 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0xA data:2byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0xC data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x6F0 +lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x80 +lbl_1_bss_7A8 = .bss:0x000007A8; // type:object size:0x4 data:4byte +lbl_1_bss_7AC = .bss:0x000007AC; // type:object size:0x4 data:4byte +lbl_1_bss_7B0 = .bss:0x000007B0; // type:object size:0x8 data:4byte +lbl_1_bss_7B8 = .bss:0x000007B8; // type:object size:0x10 +lbl_1_bss_7C8 = .bss:0x000007C8; // type:object size:0x4 data:4byte +lbl_1_bss_7CC = .bss:0x000007CC; // type:object size:0x4 data:4byte +lbl_1_bss_7D0 = .bss:0x000007D0; // type:object size:0x14 diff --git a/config/GMPJ01_00/rels/m434Dll/splits.txt b/config/GMPJ01_00/rels/m434Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m434Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m434Dll/symbols.txt b/config/GMPJ01_00/rels/m434Dll/symbols.txt new file mode 100644 index 00000000..6e8050dc --- /dev/null +++ b/config/GMPJ01_00/rels/m434Dll/symbols.txt @@ -0,0 +1,337 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x45C +fn_1_4FC = .text:0x000004FC; // type:function size:0x5C +fn_1_558 = .text:0x00000558; // type:function size:0x70C +fn_1_C64 = .text:0x00000C64; // type:function size:0x64 +fn_1_CC8 = .text:0x00000CC8; // type:function size:0x17C +fn_1_E44 = .text:0x00000E44; // type:function size:0x278 +fn_1_10BC = .text:0x000010BC; // type:function size:0x38 +fn_1_10F4 = .text:0x000010F4; // type:function size:0x10 +fn_1_1104 = .text:0x00001104; // type:function size:0x4C +fn_1_1150 = .text:0x00001150; // type:function size:0x320 +fn_1_1470 = .text:0x00001470; // type:function size:0x1C8 +fn_1_1638 = .text:0x00001638; // type:function size:0x4C +fn_1_1684 = .text:0x00001684; // type:function size:0x30 +fn_1_16B4 = .text:0x000016B4; // type:function size:0x24 +fn_1_16D8 = .text:0x000016D8; // type:function size:0xB0 +fn_1_1788 = .text:0x00001788; // type:function size:0xB0 +fn_1_1838 = .text:0x00001838; // type:function size:0x118 +fn_1_1950 = .text:0x00001950; // type:function size:0xB0 +fn_1_1A00 = .text:0x00001A00; // type:function size:0x10 +fn_1_1A10 = .text:0x00001A10; // type:function size:0x234 +fn_1_1C44 = .text:0x00001C44; // type:function size:0x44 +fn_1_1C88 = .text:0x00001C88; // type:function size:0x30 +fn_1_1CB8 = .text:0x00001CB8; // type:function size:0x8C +fn_1_1D44 = .text:0x00001D44; // type:function size:0x10 +fn_1_1D54 = .text:0x00001D54; // type:function size:0x10 +fn_1_1D64 = .text:0x00001D64; // type:function size:0x10 +fn_1_1D74 = .text:0x00001D74; // type:function size:0x18 +fn_1_1D8C = .text:0x00001D8C; // type:function size:0x10 +fn_1_1D9C = .text:0x00001D9C; // type:function size:0x14 +fn_1_1DB0 = .text:0x00001DB0; // type:function size:0x94 +fn_1_1E44 = .text:0x00001E44; // type:function size:0x20 +fn_1_1E64 = .text:0x00001E64; // type:function size:0x7A4 +fn_1_2608 = .text:0x00002608; // type:function size:0x9C +fn_1_26A4 = .text:0x000026A4; // type:function size:0x24C +fn_1_28F0 = .text:0x000028F0; // type:function size:0x88 +fn_1_2978 = .text:0x00002978; // type:function size:0x68C +fn_1_3004 = .text:0x00003004; // type:function size:0x124 +fn_1_3128 = .text:0x00003128; // type:function size:0x1B4 +fn_1_32DC = .text:0x000032DC; // type:function size:0xC8 +fn_1_33A4 = .text:0x000033A4; // type:function size:0xF8 +fn_1_349C = .text:0x0000349C; // type:function size:0xF8 +fn_1_3594 = .text:0x00003594; // type:function size:0x734 +fn_1_3CC8 = .text:0x00003CC8; // type:function size:0x6E4 +fn_1_43AC = .text:0x000043AC; // type:function size:0x90 +fn_1_443C = .text:0x0000443C; // type:function size:0x3B0 +fn_1_47EC = .text:0x000047EC; // type:function size:0x68 +fn_1_4854 = .text:0x00004854; // type:function size:0x110 +fn_1_4964 = .text:0x00004964; // type:function size:0x24 +fn_1_4988 = .text:0x00004988; // type:function size:0x46C +fn_1_4DF4 = .text:0x00004DF4; // type:function size:0x5C +fn_1_4E50 = .text:0x00004E50; // type:function size:0xC60 +fn_1_5AB0 = .text:0x00005AB0; // type:function size:0x13C +fn_1_5BEC = .text:0x00005BEC; // type:function size:0xAC +fn_1_5C98 = .text:0x00005C98; // type:function size:0x414 +fn_1_60AC = .text:0x000060AC; // type:function size:0x19C +fn_1_6248 = .text:0x00006248; // type:function size:0x74 +fn_1_62BC = .text:0x000062BC; // type:function size:0x1E0 +fn_1_649C = .text:0x0000649C; // type:function size:0x24 +fn_1_64C0 = .text:0x000064C0; // type:function size:0x1D0 +fn_1_6690 = .text:0x00006690; // type:function size:0x11C +fn_1_67AC = .text:0x000067AC; // type:function size:0xB4 +fn_1_6860 = .text:0x00006860; // type:function size:0x224 +fn_1_6A84 = .text:0x00006A84; // type:function size:0x4 +fn_1_6A88 = .text:0x00006A88; // type:function size:0x2F4 +fn_1_6D7C = .text:0x00006D7C; // type:function size:0x3C +fn_1_6DB8 = .text:0x00006DB8; // type:function size:0x4 +fn_1_6DBC = .text:0x00006DBC; // type:function size:0x1034 +fn_1_7DF0 = .text:0x00007DF0; // type:function size:0x464 +fn_1_8254 = .text:0x00008254; // type:function size:0x174 +fn_1_83C8 = .text:0x000083C8; // type:function size:0x108 +fn_1_84D0 = .text:0x000084D0; // type:function size:0xF4 +fn_1_85C4 = .text:0x000085C4; // type:function size:0x2C0 +fn_1_8884 = .text:0x00008884; // type:function size:0x268 +fn_1_8AEC = .text:0x00008AEC; // type:function size:0x6C +fn_1_8B58 = .text:0x00008B58; // type:function size:0xBC +fn_1_8C14 = .text:0x00008C14; // type:function size:0x164 +fn_1_8D78 = .text:0x00008D78; // type:function size:0xB4 +fn_1_8E2C = .text:0x00008E2C; // type:function size:0x110 +fn_1_8F3C = .text:0x00008F3C; // type:function size:0x64 +fn_1_8FA0 = .text:0x00008FA0; // type:function size:0x1EC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x10 data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x10 data:4byte +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC data:4byte +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0xC data:4byte +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:4byte +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x48 +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x48 +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:4byte +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x48 +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x48 +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC data:float +lbl_1_data_C = .data:0x0000000C; // type:object size:0x18 data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x28 +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x4 data:4byte +lbl_1_data_74 = .data:0x00000074; // type:object size:0x12 data:string +lbl_1_data_86 = .data:0x00000086; // type:object size:0x1E +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x8 +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0xC +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x30 +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x10 +lbl_1_data_100 = .data:0x00000100; // type:object size:0x34 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x5 data:string +lbl_1_data_139 = .data:0x00000139; // type:object size:0x7 data:byte +lbl_1_data_140 = .data:0x00000140; // type:object size:0x18 +lbl_1_data_158 = .data:0x00000158; // type:object size:0x1C +lbl_1_data_174 = .data:0x00000174; // type:object size:0x1 data:byte +lbl_1_data_178 = .data:0x00000178; // type:object size:0x8 data:byte +lbl_1_data_180 = .data:0x00000180; // type:object size:0x10 +lbl_1_data_190 = .data:0x00000190; // type:object size:0x20 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2C +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x8 +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x18 +lbl_1_data_1FC = .data:0x000001FC; // type:object size:0x28 +lbl_1_data_224 = .data:0x00000224; // type:object size:0x90 +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3 data:string +lbl_1_data_2B7 = .data:0x000002B7; // type:object size:0x3 data:string +lbl_1_data_2BA = .data:0x000002BA; // type:object size:0x6 +lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0x8 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x380 +lbl_1_bss_39C = .bss:0x0000039C; // type:object size:0x4 data:4byte +lbl_1_bss_3A0 = .bss:0x000003A0; // type:object size:0x8 +lbl_1_bss_3A8 = .bss:0x000003A8; // type:object size:0x2 data:2byte +lbl_1_bss_3AA = .bss:0x000003AA; // type:object size:0x2 data:2byte +lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x2 data:2byte +lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x8 data:2byte +lbl_1_bss_3B8 = .bss:0x000003B8; // type:object size:0x4 data:4byte +lbl_1_bss_3BC = .bss:0x000003BC; // type:object size:0x4 data:4byte +lbl_1_bss_3C0 = .bss:0x000003C0; // type:object size:0x2 data:2byte +lbl_1_bss_3C2 = .bss:0x000003C2; // type:object size:0x2 data:2byte +lbl_1_bss_3C4 = .bss:0x000003C4; // type:object size:0x8 data:4byte +lbl_1_bss_3CC = .bss:0x000003CC; // type:object size:0x4 data:4byte +lbl_1_bss_3D0 = .bss:0x000003D0; // type:object size:0x4 data:4byte +lbl_1_bss_3D4 = .bss:0x000003D4; // type:object size:0x1C data:4byte +lbl_1_bss_3F0 = .bss:0x000003F0; // type:object size:0x50 data:4byte +lbl_1_bss_440 = .bss:0x00000440; // type:object size:0x10 data:4byte +lbl_1_bss_450 = .bss:0x00000450; // type:object size:0x8 data:4byte +lbl_1_bss_458 = .bss:0x00000458; // type:object size:0x4 data:4byte +lbl_1_bss_45C = .bss:0x0000045C; // type:object size:0x8 data:4byte +lbl_1_bss_464 = .bss:0x00000464; // type:object size:0x2000 data:float +lbl_1_bss_2464 = .bss:0x00002464; // type:object size:0x4 data:4byte +lbl_1_bss_2468 = .bss:0x00002468; // type:object size:0x400 data:2byte +lbl_1_bss_2868 = .bss:0x00002868; // type:object size:0x3000 data:float +lbl_1_bss_5868 = .bss:0x00005868; // type:object size:0x8 data:4byte +lbl_1_bss_5870 = .bss:0x00005870; // type:object size:0x10 +lbl_1_bss_5880 = .bss:0x00005880; // type:object size:0x800 +lbl_1_bss_6080 = .bss:0x00006080; // type:object size:0x400 +lbl_1_bss_6480 = .bss:0x00006480; // type:object size:0x1000 +lbl_1_bss_7480 = .bss:0x00007480; // type:object size:0x400 data:4byte +lbl_1_bss_7880 = .bss:0x00007880; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m435Dll/splits.txt b/config/GMPJ01_00/rels/m435Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m435Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m435Dll/symbols.txt b/config/GMPJ01_00/rels/m435Dll/symbols.txt new file mode 100644 index 00000000..f12299da --- /dev/null +++ b/config/GMPJ01_00/rels/m435Dll/symbols.txt @@ -0,0 +1,471 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x1A8 +fn_1_1A8 = .text:0x000001A8; // type:function size:0x88 +fn_1_230 = .text:0x00000230; // type:function size:0x68 +fn_1_298 = .text:0x00000298; // type:function size:0x6C +fn_1_304 = .text:0x00000304; // type:function size:0x130 +fn_1_434 = .text:0x00000434; // type:function size:0x3E4 +fn_1_818 = .text:0x00000818; // type:function size:0x8C +fn_1_8A4 = .text:0x000008A4; // type:function size:0x20 +fn_1_8C4 = .text:0x000008C4; // type:function size:0x20 +fn_1_8E4 = .text:0x000008E4; // type:function size:0x48 +fn_1_92C = .text:0x0000092C; // type:function size:0x6B0 +fn_1_FDC = .text:0x00000FDC; // type:function size:0x134 +fn_1_1110 = .text:0x00001110; // type:function size:0xC4 +fn_1_11D4 = .text:0x000011D4; // type:function size:0x644 +fn_1_1818 = .text:0x00001818; // type:function size:0x24 +fn_1_183C = .text:0x0000183C; // type:function size:0x458 +fn_1_1C94 = .text:0x00001C94; // type:function size:0x1EC +fn_1_1E80 = .text:0x00001E80; // type:function size:0x1EC +fn_1_206C = .text:0x0000206C; // type:function size:0x458 +fn_1_24C4 = .text:0x000024C4; // type:function size:0x68 +fn_1_252C = .text:0x0000252C; // type:function size:0x68 +fn_1_2594 = .text:0x00002594; // type:function size:0xE8 +fn_1_267C = .text:0x0000267C; // type:function size:0x11C +fn_1_2798 = .text:0x00002798; // type:function size:0x84 +fn_1_281C = .text:0x0000281C; // type:function size:0x70 +fn_1_288C = .text:0x0000288C; // type:function size:0x38 +fn_1_28C4 = .text:0x000028C4; // type:function size:0x24 +fn_1_28E8 = .text:0x000028E8; // type:function size:0x38 +fn_1_2920 = .text:0x00002920; // type:function size:0x1D0 +fn_1_2AF0 = .text:0x00002AF0; // type:function size:0x64 +fn_1_2B54 = .text:0x00002B54; // type:function size:0xA8 +fn_1_2BFC = .text:0x00002BFC; // type:function size:0x20 +fn_1_2C1C = .text:0x00002C1C; // type:function size:0x5A0 +fn_1_31BC = .text:0x000031BC; // type:function size:0xCC +fn_1_3288 = .text:0x00003288; // type:function size:0x2D0 +fn_1_3558 = .text:0x00003558; // type:function size:0x59C +fn_1_3AF4 = .text:0x00003AF4; // type:function size:0x20 +fn_1_3B14 = .text:0x00003B14; // type:function size:0x370 +fn_1_3E84 = .text:0x00003E84; // type:function size:0x20 +fn_1_3EA4 = .text:0x00003EA4; // type:function size:0x260 +fn_1_4104 = .text:0x00004104; // type:function size:0x2C +fn_1_4130 = .text:0x00004130; // type:function size:0x5A8 +fn_1_46D8 = .text:0x000046D8; // type:function size:0x22C +fn_1_4904 = .text:0x00004904; // type:function size:0x3E8 +fn_1_4CEC = .text:0x00004CEC; // type:function size:0x11C +fn_1_4E08 = .text:0x00004E08; // type:function size:0x1AC +fn_1_4FB4 = .text:0x00004FB4; // type:function size:0x484 +fn_1_5438 = .text:0x00005438; // type:function size:0x1C8 +fn_1_5600 = .text:0x00005600; // type:function size:0x44 +fn_1_5644 = .text:0x00005644; // type:function size:0x1C18 +fn_1_725C = .text:0x0000725C; // type:function size:0x48 +fn_1_72A4 = .text:0x000072A4; // type:function size:0x384 +fn_1_7628 = .text:0x00007628; // type:function size:0x374 +fn_1_799C = .text:0x0000799C; // type:function size:0x24 +fn_1_79C0 = .text:0x000079C0; // type:function size:0xB8 +fn_1_7A78 = .text:0x00007A78; // type:function size:0xCC +fn_1_7B44 = .text:0x00007B44; // type:function size:0x1E4 +fn_1_7D28 = .text:0x00007D28; // type:function size:0x28 +fn_1_7D50 = .text:0x00007D50; // type:function size:0x24 +fn_1_7D74 = .text:0x00007D74; // type:function size:0x160 +fn_1_7ED4 = .text:0x00007ED4; // type:function size:0x37C +fn_1_8250 = .text:0x00008250; // type:function size:0x24 +fn_1_8274 = .text:0x00008274; // type:function size:0x2D0 +fn_1_8544 = .text:0x00008544; // type:function size:0x4C +fn_1_8590 = .text:0x00008590; // type:function size:0x1A4 +fn_1_8734 = .text:0x00008734; // type:function size:0x17C +fn_1_88B0 = .text:0x000088B0; // type:function size:0x598 +fn_1_8E48 = .text:0x00008E48; // type:function size:0x28 +fn_1_8E70 = .text:0x00008E70; // type:function size:0x58 +fn_1_8EC8 = .text:0x00008EC8; // type:function size:0x2C +fn_1_8EF4 = .text:0x00008EF4; // type:function size:0x40 +fn_1_8F34 = .text:0x00008F34; // type:function size:0x18 +fn_1_8F4C = .text:0x00008F4C; // type:function size:0x150 +fn_1_909C = .text:0x0000909C; // type:function size:0x6CC +fn_1_9768 = .text:0x00009768; // type:function size:0x28 +fn_1_9790 = .text:0x00009790; // type:function size:0x94 +fn_1_9824 = .text:0x00009824; // type:function size:0x28 +fn_1_984C = .text:0x0000984C; // type:function size:0x380 +fn_1_9BCC = .text:0x00009BCC; // type:function size:0x3C +fn_1_9C08 = .text:0x00009C08; // type:function size:0x180 +fn_1_9D88 = .text:0x00009D88; // type:function size:0x1F4 +fn_1_9F7C = .text:0x00009F7C; // type:function size:0x1CC +fn_1_A148 = .text:0x0000A148; // type:function size:0x370 +fn_1_A4B8 = .text:0x0000A4B8; // type:function size:0x28 +fn_1_A4E0 = .text:0x0000A4E0; // type:function size:0x190 +fn_1_A670 = .text:0x0000A670; // type:function size:0x64 +fn_1_A6D4 = .text:0x0000A6D4; // type:function size:0x1F0 +fn_1_A8C4 = .text:0x0000A8C4; // type:function size:0x338 +fn_1_ABFC = .text:0x0000ABFC; // type:function size:0x160 +fn_1_AD5C = .text:0x0000AD5C; // type:function size:0x498 +fn_1_B1F4 = .text:0x0000B1F4; // type:function size:0x634 +fn_1_B828 = .text:0x0000B828; // type:function size:0x128 +fn_1_B950 = .text:0x0000B950; // type:function size:0x298 +fn_1_BBE8 = .text:0x0000BBE8; // type:function size:0xB0 +fn_1_BC98 = .text:0x0000BC98; // type:function size:0xD8 +fn_1_BD70 = .text:0x0000BD70; // type:function size:0xB0 +fn_1_BE20 = .text:0x0000BE20; // type:function size:0xB0 +fn_1_BED0 = .text:0x0000BED0; // type:function size:0xB0 +fn_1_BF80 = .text:0x0000BF80; // type:function size:0xE4 +fn_1_C064 = .text:0x0000C064; // type:function size:0xD8 +fn_1_C13C = .text:0x0000C13C; // type:function size:0xD8 +fn_1_C214 = .text:0x0000C214; // type:function size:0xD8 +fn_1_C2EC = .text:0x0000C2EC; // type:function size:0xD8 +fn_1_C3C4 = .text:0x0000C3C4; // type:function size:0xD8 +fn_1_C49C = .text:0x0000C49C; // type:function size:0xB0 +fn_1_C54C = .text:0x0000C54C; // type:function size:0xB0 +fn_1_C5FC = .text:0x0000C5FC; // type:function size:0x168 +fn_1_C764 = .text:0x0000C764; // type:function size:0x558 +fn_1_CCBC = .text:0x0000CCBC; // type:function size:0x3A0 +fn_1_D05C = .text:0x0000D05C; // type:function size:0x43C +fn_1_D498 = .text:0x0000D498; // type:function size:0x424 +fn_1_D8BC = .text:0x0000D8BC; // type:function size:0x8D4 +fn_1_E190 = .text:0x0000E190; // type:function size:0x4E0 +fn_1_E670 = .text:0x0000E670; // type:function size:0x3E4 +fn_1_EA54 = .text:0x0000EA54; // type:function size:0x340 +fn_1_ED94 = .text:0x0000ED94; // type:function size:0x448 +fn_1_F1DC = .text:0x0000F1DC; // type:function size:0x4 +fn_1_F1E0 = .text:0x0000F1E0; // type:function size:0x18C +fn_1_F36C = .text:0x0000F36C; // type:function size:0x3C +fn_1_F3A8 = .text:0x0000F3A8; // type:function size:0x5C +fn_1_F404 = .text:0x0000F404; // type:function size:0x78 +fn_1_F47C = .text:0x0000F47C; // type:function size:0x5C +fn_1_F4D8 = .text:0x0000F4D8; // type:function size:0x5C +fn_1_F534 = .text:0x0000F534; // type:function size:0x48 +fn_1_F57C = .text:0x0000F57C; // type:function size:0x3C +fn_1_F5B8 = .text:0x0000F5B8; // type:function size:0x80 +fn_1_F638 = .text:0x0000F638; // type:function size:0x64 +fn_1_F69C = .text:0x0000F69C; // type:function size:0x5C +fn_1_F6F8 = .text:0x0000F6F8; // type:function size:0x70 +fn_1_F768 = .text:0x0000F768; // type:function size:0x48 +fn_1_F7B0 = .text:0x0000F7B0; // type:function size:0xA8 +fn_1_F858 = .text:0x0000F858; // type:function size:0x44 +fn_1_F89C = .text:0x0000F89C; // type:function size:0x5C +fn_1_F8F8 = .text:0x0000F8F8; // type:function size:0x5C +fn_1_F954 = .text:0x0000F954; // type:function size:0x4 +fn_1_F958 = .text:0x0000F958; // type:function size:0x48 +fn_1_F9A0 = .text:0x0000F9A0; // type:function size:0x4C +fn_1_F9EC = .text:0x0000F9EC; // type:function size:0x5C +fn_1_FA48 = .text:0x0000FA48; // type:function size:0x108 +fn_1_FB50 = .text:0x0000FB50; // type:function size:0x5C +fn_1_FBAC = .text:0x0000FBAC; // type:function size:0xB0 +fn_1_FC5C = .text:0x0000FC5C; // type:function size:0x208 +fn_1_FE64 = .text:0x0000FE64; // type:function size:0x30 +fn_1_FE94 = .text:0x0000FE94; // type:function size:0x98 +fn_1_FF2C = .text:0x0000FF2C; // type:function size:0x808 +fn_1_10734 = .text:0x00010734; // type:function size:0x28 +fn_1_1075C = .text:0x0001075C; // type:function size:0xD8 +fn_1_10834 = .text:0x00010834; // type:function size:0xD8 +fn_1_1090C = .text:0x0001090C; // type:function size:0x108 +fn_1_10A14 = .text:0x00010A14; // type:function size:0x408 +fn_1_10E1C = .text:0x00010E1C; // type:function size:0x404 +fn_1_11220 = .text:0x00011220; // type:function size:0x488 +fn_1_116A8 = .text:0x000116A8; // type:function size:0x45C +fn_1_11B04 = .text:0x00011B04; // type:function size:0x478 +fn_1_11F7C = .text:0x00011F7C; // type:function size:0x4 +fn_1_11F80 = .text:0x00011F80; // type:function size:0x48 +fn_1_11FC8 = .text:0x00011FC8; // type:function size:0x9C +fn_1_12064 = .text:0x00012064; // type:function size:0x1AC +fn_1_12210 = .text:0x00012210; // type:function size:0x50 +fn_1_12260 = .text:0x00012260; // type:function size:0x48 +fn_1_122A8 = .text:0x000122A8; // type:function size:0x38 +fn_1_122E0 = .text:0x000122E0; // type:function size:0x134 +fn_1_12414 = .text:0x00012414; // type:function size:0x2C +fn_1_12440 = .text:0x00012440; // type:function size:0x134 +fn_1_12574 = .text:0x00012574; // type:function size:0x48 +fn_1_125BC = .text:0x000125BC; // type:function size:0x48 +fn_1_12604 = .text:0x00012604; // type:function size:0xF0 +fn_1_126F4 = .text:0x000126F4; // type:function size:0xC0 +fn_1_127B4 = .text:0x000127B4; // type:function size:0x5C +fn_1_12810 = .text:0x00012810; // type:function size:0x48 +fn_1_12858 = .text:0x00012858; // type:function size:0x100 +fn_1_12958 = .text:0x00012958; // type:function size:0x1F8 +fn_1_12B50 = .text:0x00012B50; // type:function size:0x3C +fn_1_12B8C = .text:0x00012B8C; // type:function size:0x5C +fn_1_12BE8 = .text:0x00012BE8; // type:function size:0x3C +fn_1_12C24 = .text:0x00012C24; // type:function size:0x5C +fn_1_12C80 = .text:0x00012C80; // type:function size:0x3C +fn_1_12CBC = .text:0x00012CBC; // type:function size:0x5C +fn_1_12D18 = .text:0x00012D18; // type:function size:0x230 +fn_1_12F48 = .text:0x00012F48; // type:function size:0xF4 +fn_1_1303C = .text:0x0001303C; // type:function size:0x4C +fn_1_13088 = .text:0x00013088; // type:function size:0x128 +fn_1_131B0 = .text:0x000131B0; // type:function size:0x40 +fn_1_131F0 = .text:0x000131F0; // type:function size:0x98 +fn_1_13288 = .text:0x00013288; // type:function size:0xB0 +fn_1_13338 = .text:0x00013338; // type:function size:0xAC +fn_1_133E4 = .text:0x000133E4; // type:function size:0x30 +fn_1_13414 = .text:0x00013414; // type:function size:0x98 +fn_1_134AC = .text:0x000134AC; // type:function size:0xF4 +fn_1_135A0 = .text:0x000135A0; // type:function size:0x60 +fn_1_13600 = .text:0x00013600; // type:function size:0xD84 +fn_1_14384 = .text:0x00014384; // type:function size:0x3DC +fn_1_14760 = .text:0x00014760; // type:function size:0x254 +_prolog = .text:0x000149B4; // type:function size:0x54 scope:global +_epilog = .text:0x00014A08; // type:function size:0x4C scope:global +fn_1_14A54 = .text:0x00014A54; // type:function size:0x40C +fn_1_14E60 = .text:0x00014E60; // type:function size:0x40C +fn_1_1526C = .text:0x0001526C; // type:function size:0x28 +fn_1_15294 = .text:0x00015294; // type:function size:0x40 +fn_1_152D4 = .text:0x000152D4; // type:function size:0xC8 +fn_1_1539C = .text:0x0001539C; // type:function size:0xD8 +fn_1_15474 = .text:0x00015474; // type:function size:0x50 +fn_1_154C4 = .text:0x000154C4; // type:function size:0x5C +fn_1_15520 = .text:0x00015520; // type:function size:0x88 +fn_1_155A8 = .text:0x000155A8; // type:function size:0x74 +fn_1_1561C = .text:0x0001561C; // type:function size:0x54 +fn_1_15670 = .text:0x00015670; // type:function size:0x3C +fn_1_156AC = .text:0x000156AC; // type:function size:0x110 +fn_1_157BC = .text:0x000157BC; // type:function size:0x178 +fn_1_15934 = .text:0x00015934; // type:function size:0x1C8 +fn_1_15AFC = .text:0x00015AFC; // type:function size:0x318 +fn_1_15E14 = .text:0x00015E14; // type:function size:0x3C +fn_1_15E50 = .text:0x00015E50; // type:function size:0x4C +fn_1_15E9C = .text:0x00015E9C; // type:function size:0x314 +fn_1_161B0 = .text:0x000161B0; // type:function size:0x314 +fn_1_164C4 = .text:0x000164C4; // type:function size:0x27C +fn_1_16740 = .text:0x00016740; // type:function size:0x2B4 +fn_1_169F4 = .text:0x000169F4; // type:function size:0x530 +fn_1_16F24 = .text:0x00016F24; // type:function size:0x454 +fn_1_17378 = .text:0x00017378; // type:function size:0x48C +fn_1_17804 = .text:0x00017804; // type:function size:0x71C +fn_1_17F20 = .text:0x00017F20; // type:function size:0x4C4 +fn_1_183E4 = .text:0x000183E4; // type:function size:0x4FC +fn_1_188E0 = .text:0x000188E0; // type:function size:0x78C +fn_1_1906C = .text:0x0001906C; // type:function size:0x4C4 +fn_1_19530 = .text:0x00019530; // type:function size:0x60 +fn_1_19590 = .text:0x00019590; // type:function size:0x64 +fn_1_195F4 = .text:0x000195F4; // type:function size:0x64 +fn_1_19658 = .text:0x00019658; // type:function size:0x23C +fn_1_19894 = .text:0x00019894; // type:function size:0x64 +fn_1_198F8 = .text:0x000198F8; // type:function size:0x68 +fn_1_19960 = .text:0x00019960; // type:function size:0x8 +fn_1_19968 = .text:0x00019968; // type:function size:0xC +fn_1_19974 = .text:0x00019974; // type:function size:0x8 +fn_1_1997C = .text:0x0001997C; // type:function size:0x344 +fn_1_19CC0 = .text:0x00019CC0; // type:function size:0x190 +fn_1_19E50 = .text:0x00019E50; // type:function size:0x4EC +fn_1_1A33C = .text:0x0001A33C; // type:function size:0x110 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x48 +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x20 data:4byte +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x30 data:4byte +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x30 data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x30 data:4byte +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x8 data:4byte +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x8 data:4byte +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x8 data:4byte +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x8 data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x24 data:4byte +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:4byte +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x24 data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x8 data:4byte +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x8 data:4byte +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:4byte +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:4byte +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x8 data:4byte +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x8 data:4byte +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x10 data:4byte +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x8 data:4byte +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x8 data:4byte +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x8 data:4byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x8 data:4byte +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x30 data:4byte +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x64 data:4byte +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x8 data:double +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x10 data:string +lbl_1_data_70 = .data:0x00000070; // type:object size:0x10 data:string +lbl_1_data_80 = .data:0x00000080; // type:object size:0x10 data:string +lbl_1_data_90 = .data:0x00000090; // type:object size:0x10 data:string +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x10 data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 data:string +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x10 data:string +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x10 data:string +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x20 +lbl_1_data_100 = .data:0x00000100; // type:object size:0x40 +lbl_1_data_140 = .data:0x00000140; // type:object size:0xA0 +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x4 data:4byte +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x4 data:4byte +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x4 data:4byte +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x1B data:string +lbl_1_data_207 = .data:0x00000207; // type:object size:0x22 data:string +lbl_1_data_229 = .data:0x00000229; // type:object size:0x1A data:string +lbl_1_data_243 = .data:0x00000243; // type:object size:0x1A data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0xF +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x4 data:4byte +jumptable_1_data_270 = .data:0x00000270; // type:object size:0x54 scope:local +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x4 data:float +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x13 data:string +lbl_1_data_2DB = .data:0x000002DB; // type:object size:0x11 +jumptable_1_data_2EC = .data:0x000002EC; // type:object size:0x24 scope:local +jumptable_1_data_310 = .data:0x00000310; // type:object size:0x2C scope:local +lbl_1_data_33C = .data:0x0000033C; // type:object size:0xE data:string +lbl_1_data_34A = .data:0x0000034A; // type:object size:0x12 data:string +lbl_1_data_35C = .data:0x0000035C; // type:object size:0x14 +jumptable_1_data_370 = .data:0x00000370; // type:object size:0x30 scope:local +lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0xA8 +jumptable_1_data_448 = .data:0x00000448; // type:object size:0x1C scope:local +lbl_1_data_464 = .data:0x00000464; // type:object size:0x4 +lbl_1_data_468 = .data:0x00000468; // type:object size:0xB4 +lbl_1_data_51C = .data:0x0000051C; // type:object size:0x18 +jumptable_1_data_534 = .data:0x00000534; // type:object size:0x28 scope:local +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x8 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x30 +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x18 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x18 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0xA8 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x160 +lbl_1_bss_2A4 = .bss:0x000002A4; // type:object size:0x978 data:4byte +lbl_1_bss_C1C = .bss:0x00000C1C; // type:object size:0x14 data:4byte +lbl_1_bss_C30 = .bss:0x00000C30; // type:object size:0x1B4 data:4byte +lbl_1_bss_DE4 = .bss:0x00000DE4; // type:object size:0x24 data:4byte +lbl_1_bss_E08 = .bss:0x00000E08; // type:object size:0x80 data:4byte +lbl_1_bss_E88 = .bss:0x00000E88; // type:object size:0x4060 data:4byte +lbl_1_bss_4EE8 = .bss:0x00004EE8; // type:object size:0x20 data:4byte +lbl_1_bss_4F08 = .bss:0x00004F08; // type:object size:0x8 data:4byte +lbl_1_bss_4F10 = .bss:0x00004F10; // type:object size:0x38 data:4byte diff --git a/config/GMPJ01_00/rels/m436Dll/splits.txt b/config/GMPJ01_00/rels/m436Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m436Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m436Dll/symbols.txt b/config/GMPJ01_00/rels/m436Dll/symbols.txt new file mode 100644 index 00000000..03264278 --- /dev/null +++ b/config/GMPJ01_00/rels/m436Dll/symbols.txt @@ -0,0 +1,352 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x1A8 +fn_1_1A8 = .text:0x000001A8; // type:function size:0x88 +fn_1_230 = .text:0x00000230; // type:function size:0x3E4 +fn_1_614 = .text:0x00000614; // type:function size:0x68 +fn_1_67C = .text:0x0000067C; // type:function size:0x6C +fn_1_6E8 = .text:0x000006E8; // type:function size:0x130 +fn_1_818 = .text:0x00000818; // type:function size:0x8C +fn_1_8A4 = .text:0x000008A4; // type:function size:0x20 +fn_1_8C4 = .text:0x000008C4; // type:function size:0x6A8 +fn_1_F6C = .text:0x00000F6C; // type:function size:0x118 +fn_1_1084 = .text:0x00001084; // type:function size:0xC4 +fn_1_1148 = .text:0x00001148; // type:function size:0x644 +fn_1_178C = .text:0x0000178C; // type:function size:0x24 +fn_1_17B0 = .text:0x000017B0; // type:function size:0x458 +fn_1_1C08 = .text:0x00001C08; // type:function size:0x458 +fn_1_2060 = .text:0x00002060; // type:function size:0x1D0 +fn_1_2230 = .text:0x00002230; // type:function size:0x1D0 +fn_1_2400 = .text:0x00002400; // type:function size:0x68 +fn_1_2468 = .text:0x00002468; // type:function size:0x68 +fn_1_24D0 = .text:0x000024D0; // type:function size:0xE8 +fn_1_25B8 = .text:0x000025B8; // type:function size:0x11C +fn_1_26D4 = .text:0x000026D4; // type:function size:0x70 +fn_1_2744 = .text:0x00002744; // type:function size:0x84 +fn_1_27C8 = .text:0x000027C8; // type:function size:0x38 +fn_1_2800 = .text:0x00002800; // type:function size:0x24 +fn_1_2824 = .text:0x00002824; // type:function size:0x38 +fn_1_285C = .text:0x0000285C; // type:function size:0x1D0 +fn_1_2A2C = .text:0x00002A2C; // type:function size:0x64 +fn_1_2A90 = .text:0x00002A90; // type:function size:0x304 +fn_1_2D94 = .text:0x00002D94; // type:function size:0x28C +fn_1_3020 = .text:0x00003020; // type:function size:0x68 +fn_1_3088 = .text:0x00003088; // type:function size:0x174 +fn_1_31FC = .text:0x000031FC; // type:function size:0x7B8 +fn_1_39B4 = .text:0x000039B4; // type:function size:0x23C +fn_1_3BF0 = .text:0x00003BF0; // type:function size:0x61C +fn_1_420C = .text:0x0000420C; // type:function size:0xF8 +fn_1_4304 = .text:0x00004304; // type:function size:0x290 +fn_1_4594 = .text:0x00004594; // type:function size:0x318 +fn_1_48AC = .text:0x000048AC; // type:function size:0x150 +fn_1_49FC = .text:0x000049FC; // type:function size:0xB8 +fn_1_4AB4 = .text:0x00004AB4; // type:function size:0x68 +fn_1_4B1C = .text:0x00004B1C; // type:function size:0x38C +fn_1_4EA8 = .text:0x00004EA8; // type:function size:0x108 +fn_1_4FB0 = .text:0x00004FB0; // type:function size:0x3DC +fn_1_538C = .text:0x0000538C; // type:function size:0x28 +fn_1_53B4 = .text:0x000053B4; // type:function size:0x60 +fn_1_5414 = .text:0x00005414; // type:function size:0x3C +fn_1_5450 = .text:0x00005450; // type:function size:0x50 +fn_1_54A0 = .text:0x000054A0; // type:function size:0x168 +fn_1_5608 = .text:0x00005608; // type:function size:0x6C8 +fn_1_5CD0 = .text:0x00005CD0; // type:function size:0x390 +fn_1_6060 = .text:0x00006060; // type:function size:0x264 +fn_1_62C4 = .text:0x000062C4; // type:function size:0x624 +fn_1_68E8 = .text:0x000068E8; // type:function size:0x5C +fn_1_6944 = .text:0x00006944; // type:function size:0x298 +fn_1_6BDC = .text:0x00006BDC; // type:function size:0xB0 +fn_1_6C8C = .text:0x00006C8C; // type:function size:0xD8 +fn_1_6D64 = .text:0x00006D64; // type:function size:0xB0 +fn_1_6E14 = .text:0x00006E14; // type:function size:0xB0 +fn_1_6EC4 = .text:0x00006EC4; // type:function size:0xB0 +fn_1_6F74 = .text:0x00006F74; // type:function size:0xD8 +fn_1_704C = .text:0x0000704C; // type:function size:0xB0 +fn_1_70FC = .text:0x000070FC; // type:function size:0xB0 +fn_1_71AC = .text:0x000071AC; // type:function size:0x120 +fn_1_72CC = .text:0x000072CC; // type:function size:0x524 +fn_1_77F0 = .text:0x000077F0; // type:function size:0x368 +fn_1_7B58 = .text:0x00007B58; // type:function size:0x3C4 +fn_1_7F1C = .text:0x00007F1C; // type:function size:0x268C +fn_1_A5A8 = .text:0x0000A5A8; // type:function size:0xE2C +fn_1_B3D4 = .text:0x0000B3D4; // type:function size:0x40C +fn_1_B7E0 = .text:0x0000B7E0; // type:function size:0x4 +fn_1_B7E4 = .text:0x0000B7E4; // type:function size:0x184 +fn_1_B968 = .text:0x0000B968; // type:function size:0x4C +fn_1_B9B4 = .text:0x0000B9B4; // type:function size:0x5C +fn_1_BA10 = .text:0x0000BA10; // type:function size:0x94 +fn_1_BAA4 = .text:0x0000BAA4; // type:function size:0x100 +fn_1_BBA4 = .text:0x0000BBA4; // type:function size:0x50 +fn_1_BBF4 = .text:0x0000BBF4; // type:function size:0x48 +fn_1_BC3C = .text:0x0000BC3C; // type:function size:0x3C +fn_1_BC78 = .text:0x0000BC78; // type:function size:0x80 +fn_1_BCF8 = .text:0x0000BCF8; // type:function size:0x74 +fn_1_BD6C = .text:0x0000BD6C; // type:function size:0xB0 +fn_1_BE1C = .text:0x0000BE1C; // type:function size:0x50 +fn_1_BE6C = .text:0x0000BE6C; // type:function size:0x48 +fn_1_BEB4 = .text:0x0000BEB4; // type:function size:0x4C +fn_1_BF00 = .text:0x0000BF00; // type:function size:0xC8 +fn_1_BFC8 = .text:0x0000BFC8; // type:function size:0x30 +fn_1_BFF8 = .text:0x0000BFF8; // type:function size:0x98 +fn_1_C090 = .text:0x0000C090; // type:function size:0x458 +fn_1_C4E8 = .text:0x0000C4E8; // type:function size:0xFC +fn_1_C5E4 = .text:0x0000C5E4; // type:function size:0xB0 +fn_1_C694 = .text:0x0000C694; // type:function size:0xD8 +fn_1_C76C = .text:0x0000C76C; // type:function size:0xD8 +fn_1_C844 = .text:0x0000C844; // type:function size:0xC8 +fn_1_C90C = .text:0x0000C90C; // type:function size:0x398 +fn_1_CCA4 = .text:0x0000CCA4; // type:function size:0x374 +fn_1_D018 = .text:0x0000D018; // type:function size:0x32C +fn_1_D344 = .text:0x0000D344; // type:function size:0xD4 +fn_1_D418 = .text:0x0000D418; // type:function size:0x2A8 +fn_1_D6C0 = .text:0x0000D6C0; // type:function size:0x24 +fn_1_D6E4 = .text:0x0000D6E4; // type:function size:0x37C +fn_1_DA60 = .text:0x0000DA60; // type:function size:0xA0 +fn_1_DB00 = .text:0x0000DB00; // type:function size:0x2BC +fn_1_DDBC = .text:0x0000DDBC; // type:function size:0xF4 +fn_1_DEB0 = .text:0x0000DEB0; // type:function size:0x200 +fn_1_E0B0 = .text:0x0000E0B0; // type:function size:0x94 +fn_1_E144 = .text:0x0000E144; // type:function size:0x248 +fn_1_E38C = .text:0x0000E38C; // type:function size:0x140 +fn_1_E4CC = .text:0x0000E4CC; // type:function size:0xA0 +fn_1_E56C = .text:0x0000E56C; // type:function size:0xBC +fn_1_E628 = .text:0x0000E628; // type:function size:0x58 +fn_1_E680 = .text:0x0000E680; // type:function size:0x90 +fn_1_E710 = .text:0x0000E710; // type:function size:0x220 +fn_1_E930 = .text:0x0000E930; // type:function size:0xD4 +fn_1_EA04 = .text:0x0000EA04; // type:function size:0x348 +fn_1_ED4C = .text:0x0000ED4C; // type:function size:0xC4 +fn_1_EE10 = .text:0x0000EE10; // type:function size:0x5F4 +fn_1_F404 = .text:0x0000F404; // type:function size:0xEC +fn_1_F4F0 = .text:0x0000F4F0; // type:function size:0x48 +fn_1_F538 = .text:0x0000F538; // type:function size:0x30 +fn_1_F568 = .text:0x0000F568; // type:function size:0x98 +fn_1_F600 = .text:0x0000F600; // type:function size:0xB0 +fn_1_F6B0 = .text:0x0000F6B0; // type:function size:0xAC +fn_1_F75C = .text:0x0000F75C; // type:function size:0x30 +fn_1_F78C = .text:0x0000F78C; // type:function size:0x98 +fn_1_F824 = .text:0x0000F824; // type:function size:0x100 +fn_1_F924 = .text:0x0000F924; // type:function size:0x60 +fn_1_F984 = .text:0x0000F984; // type:function size:0x8E8 +fn_1_1026C = .text:0x0001026C; // type:function size:0x404 +fn_1_10670 = .text:0x00010670; // type:function size:0x1CC +_prolog = .text:0x0001083C; // type:function size:0x54 scope:global +_epilog = .text:0x00010890; // type:function size:0x4C scope:global +fn_1_108DC = .text:0x000108DC; // type:function size:0x410 +fn_1_10CEC = .text:0x00010CEC; // type:function size:0x410 +fn_1_110FC = .text:0x000110FC; // type:function size:0x40 +fn_1_1113C = .text:0x0001113C; // type:function size:0x28 +fn_1_11164 = .text:0x00011164; // type:function size:0xC8 +fn_1_1122C = .text:0x0001122C; // type:function size:0xC8 +fn_1_112F4 = .text:0x000112F4; // type:function size:0xD8 +fn_1_113CC = .text:0x000113CC; // type:function size:0x33C +fn_1_11708 = .text:0x00011708; // type:function size:0x110 +fn_1_11818 = .text:0x00011818; // type:function size:0x178 +fn_1_11990 = .text:0x00011990; // type:function size:0x188 +fn_1_11B18 = .text:0x00011B18; // type:function size:0x1B0 +fn_1_11CC8 = .text:0x00011CC8; // type:function size:0x50 +fn_1_11D18 = .text:0x00011D18; // type:function size:0x5C +fn_1_11D74 = .text:0x00011D74; // type:function size:0x88 +fn_1_11DFC = .text:0x00011DFC; // type:function size:0x74 +fn_1_11E70 = .text:0x00011E70; // type:function size:0x94 +fn_1_11F04 = .text:0x00011F04; // type:function size:0x3C +fn_1_11F40 = .text:0x00011F40; // type:function size:0x318 +fn_1_12258 = .text:0x00012258; // type:function size:0x3C +fn_1_12294 = .text:0x00012294; // type:function size:0x4C +fn_1_122E0 = .text:0x000122E0; // type:function size:0x314 +fn_1_125F4 = .text:0x000125F4; // type:function size:0x314 +fn_1_12908 = .text:0x00012908; // type:function size:0x27C +fn_1_12B84 = .text:0x00012B84; // type:function size:0x2B4 +fn_1_12E38 = .text:0x00012E38; // type:function size:0x530 +fn_1_13368 = .text:0x00013368; // type:function size:0x454 +fn_1_137BC = .text:0x000137BC; // type:function size:0x48C +fn_1_13C48 = .text:0x00013C48; // type:function size:0x71C +fn_1_14364 = .text:0x00014364; // type:function size:0x4C4 +fn_1_14828 = .text:0x00014828; // type:function size:0x4FC +fn_1_14D24 = .text:0x00014D24; // type:function size:0x78C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x3C data:4byte +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC data:4byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x30 data:4byte +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:4byte +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:4byte +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x18 data:4byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:4byte +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:4byte +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:4byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x8 data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0xC data:4byte +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:4byte +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:4byte +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x30 data:4byte +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x34 data:4byte +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 +lbl_1_data_20 = .data:0x00000020; // type:object size:0x20 +lbl_1_data_40 = .data:0x00000040; // type:object size:0xA0 +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x4 data:4byte +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x4 data:4byte +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x4 data:4byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x1B data:string +lbl_1_data_107 = .data:0x00000107; // type:object size:0x22 data:string +lbl_1_data_129 = .data:0x00000129; // type:object size:0x1A data:string +lbl_1_data_143 = .data:0x00000143; // type:object size:0x1A data:string +lbl_1_data_15D = .data:0x0000015D; // type:object size:0xF +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x4 data:4byte +lbl_1_data_170 = .data:0x00000170; // type:object size:0x34 +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x14 +jumptable_1_data_1B8 = .data:0x000001B8; // type:object size:0x30 scope:local +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x6C +lbl_1_data_254 = .data:0x00000254; // type:object size:0x18 data:float +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x12 data:string +lbl_1_data_27E = .data:0x0000027E; // type:object size:0x12 data:string +lbl_1_data_290 = .data:0x00000290; // type:object size:0x9C +lbl_1_data_32C = .data:0x0000032C; // type:object size:0x18 +jumptable_1_data_344 = .data:0x00000344; // type:object size:0x28 scope:local +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x30 data:float +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x30 data:float +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x18 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x18 data:4byte +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0xA8 data:4byte +lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x28 data:4byte +lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x14 data:4byte +lbl_1_bss_1BC = .bss:0x000001BC; // type:object size:0x64 data:4byte +lbl_1_bss_220 = .bss:0x00000220; // type:object size:0x14 data:4byte +lbl_1_bss_234 = .bss:0x00000234; // type:object size:0xF8 data:4byte +lbl_1_bss_32C = .bss:0x0000032C; // type:object size:0x78 data:4byte +lbl_1_bss_3A4 = .bss:0x000003A4; // type:object size:0x8 data:4byte +lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x38 data:4byte +lbl_1_bss_3E4 = .bss:0x000003E4; // type:object size:0xC0 +lbl_1_bss_4A4 = .bss:0x000004A4; // type:object size:0x10 data:4byte diff --git a/config/GMPJ01_00/rels/m437Dll/splits.txt b/config/GMPJ01_00/rels/m437Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m437Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m437Dll/symbols.txt b/config/GMPJ01_00/rels/m437Dll/symbols.txt new file mode 100644 index 00000000..8cd64fd3 --- /dev/null +++ b/config/GMPJ01_00/rels/m437Dll/symbols.txt @@ -0,0 +1,411 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x1A8 +fn_1_1A8 = .text:0x000001A8; // type:function size:0x88 +fn_1_230 = .text:0x00000230; // type:function size:0x68 +fn_1_298 = .text:0x00000298; // type:function size:0x6C +fn_1_304 = .text:0x00000304; // type:function size:0x130 +fn_1_434 = .text:0x00000434; // type:function size:0x8C +fn_1_4C0 = .text:0x000004C0; // type:function size:0x3E4 +fn_1_8A4 = .text:0x000008A4; // type:function size:0x20 +fn_1_8C4 = .text:0x000008C4; // type:function size:0x20 +fn_1_8E4 = .text:0x000008E4; // type:function size:0x6A8 +fn_1_F8C = .text:0x00000F8C; // type:function size:0x134 +fn_1_10C0 = .text:0x000010C0; // type:function size:0xC4 +fn_1_1184 = .text:0x00001184; // type:function size:0x38 +fn_1_11BC = .text:0x000011BC; // type:function size:0x24 +fn_1_11E0 = .text:0x000011E0; // type:function size:0x38 +fn_1_1218 = .text:0x00001218; // type:function size:0x1D0 +fn_1_13E8 = .text:0x000013E8; // type:function size:0x64 +fn_1_144C = .text:0x0000144C; // type:function size:0x644 +fn_1_1A90 = .text:0x00001A90; // type:function size:0x24 +fn_1_1AB4 = .text:0x00001AB4; // type:function size:0x458 +fn_1_1F0C = .text:0x00001F0C; // type:function size:0x1EC +fn_1_20F8 = .text:0x000020F8; // type:function size:0x1EC +fn_1_22E4 = .text:0x000022E4; // type:function size:0x458 +fn_1_273C = .text:0x0000273C; // type:function size:0x68 +fn_1_27A4 = .text:0x000027A4; // type:function size:0x68 +fn_1_280C = .text:0x0000280C; // type:function size:0xE8 +fn_1_28F4 = .text:0x000028F4; // type:function size:0x11C +fn_1_2A10 = .text:0x00002A10; // type:function size:0x84 +fn_1_2A94 = .text:0x00002A94; // type:function size:0x70 +fn_1_2B04 = .text:0x00002B04; // type:function size:0xA8 +fn_1_2BAC = .text:0x00002BAC; // type:function size:0x10 +fn_1_2BBC = .text:0x00002BBC; // type:function size:0x5D8 +fn_1_3194 = .text:0x00003194; // type:function size:0xCC +fn_1_3260 = .text:0x00003260; // type:function size:0x1B0 +fn_1_3410 = .text:0x00003410; // type:function size:0x284 +fn_1_3694 = .text:0x00003694; // type:function size:0x20 +fn_1_36B4 = .text:0x000036B4; // type:function size:0x120 +fn_1_37D4 = .text:0x000037D4; // type:function size:0x14 +fn_1_37E8 = .text:0x000037E8; // type:function size:0x1A8 +fn_1_3990 = .text:0x00003990; // type:function size:0x34 +fn_1_39C4 = .text:0x000039C4; // type:function size:0x20 +fn_1_39E4 = .text:0x000039E4; // type:function size:0x16C +fn_1_3B50 = .text:0x00003B50; // type:function size:0x14 +fn_1_3B64 = .text:0x00003B64; // type:function size:0x154 +fn_1_3CB8 = .text:0x00003CB8; // type:function size:0x88 +fn_1_3D40 = .text:0x00003D40; // type:function size:0x204 +fn_1_3F44 = .text:0x00003F44; // type:function size:0x5F4 +fn_1_4538 = .text:0x00004538; // type:function size:0x188 +fn_1_46C0 = .text:0x000046C0; // type:function size:0x268 +fn_1_4928 = .text:0x00004928; // type:function size:0x10 +fn_1_4938 = .text:0x00004938; // type:function size:0x1C0 +fn_1_4AF8 = .text:0x00004AF8; // type:function size:0xB4 +fn_1_4BAC = .text:0x00004BAC; // type:function size:0x94 +fn_1_4C40 = .text:0x00004C40; // type:function size:0x1C0 +fn_1_4E00 = .text:0x00004E00; // type:function size:0xE0 +fn_1_4EE0 = .text:0x00004EE0; // type:function size:0x268 +fn_1_5148 = .text:0x00005148; // type:function size:0x94 +fn_1_51DC = .text:0x000051DC; // type:function size:0x94 +fn_1_5270 = .text:0x00005270; // type:function size:0x94 +fn_1_5304 = .text:0x00005304; // type:function size:0x28 +fn_1_532C = .text:0x0000532C; // type:function size:0x32C +fn_1_5658 = .text:0x00005658; // type:function size:0x32C +fn_1_5984 = .text:0x00005984; // type:function size:0x154 +fn_1_5AD8 = .text:0x00005AD8; // type:function size:0x4E4 +fn_1_5FBC = .text:0x00005FBC; // type:function size:0x150 +fn_1_610C = .text:0x0000610C; // type:function size:0x28 +fn_1_6134 = .text:0x00006134; // type:function size:0x64 +fn_1_6198 = .text:0x00006198; // type:function size:0x68 +fn_1_6200 = .text:0x00006200; // type:function size:0x380 +fn_1_6580 = .text:0x00006580; // type:function size:0x60 +fn_1_65E0 = .text:0x000065E0; // type:function size:0xB18 +fn_1_70F8 = .text:0x000070F8; // type:function size:0x3C +fn_1_7134 = .text:0x00007134; // type:function size:0x198 +fn_1_72CC = .text:0x000072CC; // type:function size:0x1E4 +fn_1_74B0 = .text:0x000074B0; // type:function size:0x1C8 +fn_1_7678 = .text:0x00007678; // type:function size:0x368 +fn_1_79E0 = .text:0x000079E0; // type:function size:0x34 +fn_1_7A14 = .text:0x00007A14; // type:function size:0x8CC +fn_1_82E0 = .text:0x000082E0; // type:function size:0x28 +fn_1_8308 = .text:0x00008308; // type:function size:0x1BC +fn_1_84C4 = .text:0x000084C4; // type:function size:0x1C0 +fn_1_8684 = .text:0x00008684; // type:function size:0xB0 +fn_1_8734 = .text:0x00008734; // type:function size:0xF0 +fn_1_8824 = .text:0x00008824; // type:function size:0xB0 +fn_1_88D4 = .text:0x000088D4; // type:function size:0xB0 +fn_1_8984 = .text:0x00008984; // type:function size:0xB0 +fn_1_8A34 = .text:0x00008A34; // type:function size:0xF0 +fn_1_8B24 = .text:0x00008B24; // type:function size:0xB0 +fn_1_8BD4 = .text:0x00008BD4; // type:function size:0xB0 +fn_1_8C84 = .text:0x00008C84; // type:function size:0x120 +fn_1_8DA4 = .text:0x00008DA4; // type:function size:0x57C +fn_1_9320 = .text:0x00009320; // type:function size:0x3B8 +fn_1_96D8 = .text:0x000096D8; // type:function size:0x454 +fn_1_9B2C = .text:0x00009B2C; // type:function size:0x474 +fn_1_9FA0 = .text:0x00009FA0; // type:function size:0x4A0 +fn_1_A440 = .text:0x0000A440; // type:function size:0x420 +fn_1_A860 = .text:0x0000A860; // type:function size:0x4 +fn_1_A864 = .text:0x0000A864; // type:function size:0x184 +fn_1_A9E8 = .text:0x0000A9E8; // type:function size:0x3C +fn_1_AA24 = .text:0x0000AA24; // type:function size:0x5C +fn_1_AA80 = .text:0x0000AA80; // type:function size:0x3C +fn_1_AABC = .text:0x0000AABC; // type:function size:0x5C +fn_1_AB18 = .text:0x0000AB18; // type:function size:0x50 +fn_1_AB68 = .text:0x0000AB68; // type:function size:0x48 +fn_1_ABB0 = .text:0x0000ABB0; // type:function size:0x3C +fn_1_ABEC = .text:0x0000ABEC; // type:function size:0x84 +fn_1_AC70 = .text:0x0000AC70; // type:function size:0x5C +fn_1_ACCC = .text:0x0000ACCC; // type:function size:0x5C +fn_1_AD28 = .text:0x0000AD28; // type:function size:0x70 +fn_1_AD98 = .text:0x0000AD98; // type:function size:0x48 +fn_1_ADE0 = .text:0x0000ADE0; // type:function size:0x3C +fn_1_AE1C = .text:0x0000AE1C; // type:function size:0x5C +fn_1_AE78 = .text:0x0000AE78; // type:function size:0xD4 +fn_1_AF4C = .text:0x0000AF4C; // type:function size:0x248 +fn_1_B194 = .text:0x0000B194; // type:function size:0x30 +fn_1_B1C4 = .text:0x0000B1C4; // type:function size:0x8C +fn_1_B250 = .text:0x0000B250; // type:function size:0x20 +fn_1_B270 = .text:0x0000B270; // type:function size:0x180 +fn_1_B3F0 = .text:0x0000B3F0; // type:function size:0x104 +fn_1_B4F4 = .text:0x0000B4F4; // type:function size:0x2EC +fn_1_B7E0 = .text:0x0000B7E0; // type:function size:0xF0 +fn_1_B8D0 = .text:0x0000B8D0; // type:function size:0x348 +fn_1_BC18 = .text:0x0000BC18; // type:function size:0xB0 +fn_1_BCC8 = .text:0x0000BCC8; // type:function size:0xF0 +fn_1_BDB8 = .text:0x0000BDB8; // type:function size:0xC8 +fn_1_BE80 = .text:0x0000BE80; // type:function size:0x3C8 +fn_1_C248 = .text:0x0000C248; // type:function size:0x3C8 +fn_1_C610 = .text:0x0000C610; // type:function size:0x3B4 +fn_1_C9C4 = .text:0x0000C9C4; // type:function size:0x35C +fn_1_CD20 = .text:0x0000CD20; // type:function size:0x31C +fn_1_D03C = .text:0x0000D03C; // type:function size:0x384 +fn_1_D3C0 = .text:0x0000D3C0; // type:function size:0x394 +fn_1_D754 = .text:0x0000D754; // type:function size:0x1DC +fn_1_D930 = .text:0x0000D930; // type:function size:0x3BC +fn_1_DCEC = .text:0x0000DCEC; // type:function size:0x1D8 +fn_1_DEC4 = .text:0x0000DEC4; // type:function size:0x3E4 +fn_1_E2A8 = .text:0x0000E2A8; // type:function size:0x2F0 +fn_1_E598 = .text:0x0000E598; // type:function size:0x9C +fn_1_E634 = .text:0x0000E634; // type:function size:0x310 +fn_1_E944 = .text:0x0000E944; // type:function size:0x5C +fn_1_E9A0 = .text:0x0000E9A0; // type:function size:0x104 +fn_1_EAA4 = .text:0x0000EAA4; // type:function size:0x94 +fn_1_EB38 = .text:0x0000EB38; // type:function size:0xD8 +fn_1_EC10 = .text:0x0000EC10; // type:function size:0x1C4 +fn_1_EDD4 = .text:0x0000EDD4; // type:function size:0xCC +fn_1_EEA0 = .text:0x0000EEA0; // type:function size:0x12C +fn_1_EFCC = .text:0x0000EFCC; // type:function size:0xEC +fn_1_F0B8 = .text:0x0000F0B8; // type:function size:0x40 +fn_1_F0F8 = .text:0x0000F0F8; // type:function size:0x4C +fn_1_F144 = .text:0x0000F144; // type:function size:0x48 +fn_1_F18C = .text:0x0000F18C; // type:function size:0x108 +fn_1_F294 = .text:0x0000F294; // type:function size:0x144 +fn_1_F3D8 = .text:0x0000F3D8; // type:function size:0xBC +fn_1_F494 = .text:0x0000F494; // type:function size:0x40 +fn_1_F4D4 = .text:0x0000F4D4; // type:function size:0x30 +fn_1_F504 = .text:0x0000F504; // type:function size:0x8C +fn_1_F590 = .text:0x0000F590; // type:function size:0xB0 +fn_1_F640 = .text:0x0000F640; // type:function size:0xAC +fn_1_F6EC = .text:0x0000F6EC; // type:function size:0x30 +fn_1_F71C = .text:0x0000F71C; // type:function size:0x8C +fn_1_F7A8 = .text:0x0000F7A8; // type:function size:0xF4 +fn_1_F89C = .text:0x0000F89C; // type:function size:0x10 +fn_1_F8AC = .text:0x0000F8AC; // type:function size:0xB90 +fn_1_1043C = .text:0x0001043C; // type:function size:0x468 +fn_1_108A4 = .text:0x000108A4; // type:function size:0x1EC +_prolog = .text:0x00010A90; // type:function size:0x54 scope:global +_epilog = .text:0x00010AE4; // type:function size:0x4C scope:global +fn_1_10B30 = .text:0x00010B30; // type:function size:0x40C +fn_1_10F3C = .text:0x00010F3C; // type:function size:0x40C +fn_1_11348 = .text:0x00011348; // type:function size:0x28 +fn_1_11370 = .text:0x00011370; // type:function size:0x40 +fn_1_113B0 = .text:0x000113B0; // type:function size:0xC8 +fn_1_11478 = .text:0x00011478; // type:function size:0xC8 +fn_1_11540 = .text:0x00011540; // type:function size:0xD8 +fn_1_11618 = .text:0x00011618; // type:function size:0x50 +fn_1_11668 = .text:0x00011668; // type:function size:0x5C +fn_1_116C4 = .text:0x000116C4; // type:function size:0x88 +fn_1_1174C = .text:0x0001174C; // type:function size:0x74 +fn_1_117C0 = .text:0x000117C0; // type:function size:0x94 +fn_1_11854 = .text:0x00011854; // type:function size:0x3C +fn_1_11890 = .text:0x00011890; // type:function size:0x110 +fn_1_119A0 = .text:0x000119A0; // type:function size:0x178 +fn_1_11B18 = .text:0x00011B18; // type:function size:0x1C8 +fn_1_11CE0 = .text:0x00011CE0; // type:function size:0x7B4 +fn_1_12494 = .text:0x00012494; // type:function size:0x4C4 +fn_1_12958 = .text:0x00012958; // type:function size:0x60 +fn_1_129B8 = .text:0x000129B8; // type:function size:0x64 +fn_1_12A1C = .text:0x00012A1C; // type:function size:0x64 +fn_1_12A80 = .text:0x00012A80; // type:function size:0x3C +fn_1_12ABC = .text:0x00012ABC; // type:function size:0x44 +fn_1_12B00 = .text:0x00012B00; // type:function size:0x314 +fn_1_12E14 = .text:0x00012E14; // type:function size:0x314 +fn_1_13128 = .text:0x00013128; // type:function size:0x27C +fn_1_133A4 = .text:0x000133A4; // type:function size:0x2B4 +fn_1_13658 = .text:0x00013658; // type:function size:0x530 +fn_1_13B88 = .text:0x00013B88; // type:function size:0x454 +fn_1_13FDC = .text:0x00013FDC; // type:function size:0x48C +fn_1_14468 = .text:0x00014468; // type:function size:0x71C +fn_1_14B84 = .text:0x00014B84; // type:function size:0x4C4 +fn_1_15048 = .text:0x00015048; // type:function size:0x4FC +fn_1_15544 = .text:0x00015544; // type:function size:0x78C +fn_1_15CD0 = .text:0x00015CD0; // type:function size:0x6C +fn_1_15D3C = .text:0x00015D3C; // type:function size:0x68 +fn_1_15DA4 = .text:0x00015DA4; // type:function size:0x10 +fn_1_15DB4 = .text:0x00015DB4; // type:function size:0xC +fn_1_15DC0 = .text:0x00015DC0; // type:function size:0x8 +fn_1_15DC8 = .text:0x00015DC8; // type:function size:0x48 +fn_1_15E10 = .text:0x00015E10; // type:function size:0x344 +fn_1_16154 = .text:0x00016154; // type:function size:0x190 +fn_1_162E4 = .text:0x000162E4; // type:function size:0x64 +fn_1_16348 = .text:0x00016348; // type:function size:0x4 +fn_1_1634C = .text:0x0001634C; // type:function size:0x164 +fn_1_164B0 = .text:0x000164B0; // type:function size:0x15C +fn_1_1660C = .text:0x0001660C; // type:function size:0x190 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x48 +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x78 +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x78 +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC8 +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x78 +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x14 data:4byte +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x30 data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x30 data:4byte +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:4byte +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 data:4byte +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:4byte +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:4byte +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x20 data:4byte +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:4byte +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x20 data:4byte +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:4byte +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x30 data:4byte +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x10 data:4byte +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x8 data:4byte +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0xC data:4byte +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:4byte +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:4byte +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x8 data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:4byte +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0xC data:4byte +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x8 data:4byte +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x8 data:4byte +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x30 data:4byte +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x18 data:4byte +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 data:float +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 data:double +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xA0 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x1B data:string +lbl_1_data_C7 = .data:0x000000C7; // type:object size:0x22 data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x1A data:string +lbl_1_data_103 = .data:0x00000103; // type:object size:0x1A data:string +lbl_1_data_11D = .data:0x0000011D; // type:object size:0xF +lbl_1_data_12C = .data:0x0000012C; // type:object size:0x4 data:4byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0x16 data:string +lbl_1_data_146 = .data:0x00000146; // type:object size:0x13 data:string +lbl_1_data_159 = .data:0x00000159; // type:object size:0xE data:string +lbl_1_data_167 = .data:0x00000167; // type:object size:0xE data:string +lbl_1_data_175 = .data:0x00000175; // type:object size:0x13 +lbl_1_data_188 = .data:0x00000188; // type:object size:0x4 data:float +lbl_1_data_18C = .data:0x0000018C; // type:object size:0x14 data:string +jumptable_1_data_1A0 = .data:0x000001A0; // type:object size:0x20 scope:local +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x14 +jumptable_1_data_1D4 = .data:0x000001D4; // type:object size:0x30 scope:local +lbl_1_data_204 = .data:0x00000204; // type:object size:0x78 +lbl_1_data_27C = .data:0x0000027C; // type:object size:0x90 +lbl_1_data_30C = .data:0x0000030C; // type:object size:0x18 +jumptable_1_data_324 = .data:0x00000324; // type:object size:0x2C scope:local +lbl_1_data_350 = .data:0x00000350; // type:object size:0x10 data:string +lbl_1_data_360 = .data:0x00000360; // type:object size:0x10 data:string +lbl_1_data_370 = .data:0x00000370; // type:object size:0x10 data:string +lbl_1_data_380 = .data:0x00000380; // type:object size:0x10 data:string +lbl_1_data_390 = .data:0x00000390; // type:object size:0x10 data:string +lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x10 data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x10 data:string +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x10 data:string +lbl_1_data_3D0 = .data:0x000003D0; // type:object size:0x20 +lbl_1_data_3F0 = .data:0x000003F0; // type:object size:0x40 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x18 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x18 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x18 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0xE4 data:4byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x4 data:float +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x4 data:float +lbl_1_bss_154 = .bss:0x00000154; // type:object size:0x4 data:float +lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x4 data:float +lbl_1_bss_15C = .bss:0x0000015C; // type:object size:0x4 data:float +lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x7C data:4byte +lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0x4E0 data:4byte +lbl_1_bss_6BC = .bss:0x000006BC; // type:object size:0x218 data:4byte +lbl_1_bss_8D4 = .bss:0x000008D4; // type:object size:0x28 data:4byte +lbl_1_bss_8FC = .bss:0x000008FC; // type:object size:0x24 data:4byte +lbl_1_bss_920 = .bss:0x00000920; // type:object size:0x24 data:4byte +lbl_1_bss_944 = .bss:0x00000944; // type:object size:0x24 data:4byte +lbl_1_bss_968 = .bss:0x00000968; // type:object size:0x40 data:4byte diff --git a/config/GMPJ01_00/rels/m438Dll/splits.txt b/config/GMPJ01_00/rels/m438Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m438Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m438Dll/symbols.txt b/config/GMPJ01_00/rels/m438Dll/symbols.txt new file mode 100644 index 00000000..7ea887f2 --- /dev/null +++ b/config/GMPJ01_00/rels/m438Dll/symbols.txt @@ -0,0 +1,462 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x43C +fn_1_4DC = .text:0x000004DC; // type:function size:0x20 +fn_1_4FC = .text:0x000004FC; // type:function size:0x478 +fn_1_974 = .text:0x00000974; // type:function size:0x800 +fn_1_1174 = .text:0x00001174; // type:function size:0x90 +fn_1_1204 = .text:0x00001204; // type:function size:0x19C +fn_1_13A0 = .text:0x000013A0; // type:function size:0x9C0 +fn_1_1D60 = .text:0x00001D60; // type:function size:0x1AC +fn_1_1F0C = .text:0x00001F0C; // type:function size:0x164 +fn_1_2070 = .text:0x00002070; // type:function size:0x4F4 +fn_1_2564 = .text:0x00002564; // type:function size:0xA0 +fn_1_2604 = .text:0x00002604; // type:function size:0x2B8 +fn_1_28BC = .text:0x000028BC; // type:function size:0x28 +fn_1_28E4 = .text:0x000028E4; // type:function size:0x80 +fn_1_2964 = .text:0x00002964; // type:function size:0x3EC +fn_1_2D50 = .text:0x00002D50; // type:function size:0xFC +fn_1_2E4C = .text:0x00002E4C; // type:function size:0x770 +fn_1_35BC = .text:0x000035BC; // type:function size:0x4 +fn_1_35C0 = .text:0x000035C0; // type:function size:0xDB4 +fn_1_4374 = .text:0x00004374; // type:function size:0x3B0 +fn_1_4724 = .text:0x00004724; // type:function size:0x260 +fn_1_4984 = .text:0x00004984; // type:function size:0x5CC +fn_1_4F50 = .text:0x00004F50; // type:function size:0xDFC +fn_1_5D4C = .text:0x00005D4C; // type:function size:0x570 +fn_1_62BC = .text:0x000062BC; // type:function size:0xF4 +fn_1_63B0 = .text:0x000063B0; // type:function size:0x68C +fn_1_6A3C = .text:0x00006A3C; // type:function size:0x8C4 +fn_1_7300 = .text:0x00007300; // type:function size:0x558 +fn_1_7858 = .text:0x00007858; // type:function size:0x300 +fn_1_7B58 = .text:0x00007B58; // type:function size:0x64 +fn_1_7BBC = .text:0x00007BBC; // type:function size:0x40 +fn_1_7BFC = .text:0x00007BFC; // type:function size:0xA0 +fn_1_7C9C = .text:0x00007C9C; // type:function size:0x94 +fn_1_7D30 = .text:0x00007D30; // type:function size:0x84 +fn_1_7DB4 = .text:0x00007DB4; // type:function size:0x24 +fn_1_7DD8 = .text:0x00007DD8; // type:function size:0x104 +fn_1_7EDC = .text:0x00007EDC; // type:function size:0x168 +fn_1_8044 = .text:0x00008044; // type:function size:0x120 +fn_1_8164 = .text:0x00008164; // type:function size:0x39C +fn_1_8500 = .text:0x00008500; // type:function size:0x250 +fn_1_8750 = .text:0x00008750; // type:function size:0x78 +fn_1_87C8 = .text:0x000087C8; // type:function size:0x11C +fn_1_88E4 = .text:0x000088E4; // type:function size:0x78 +fn_1_895C = .text:0x0000895C; // type:function size:0x2D8 +fn_1_8C34 = .text:0x00008C34; // type:function size:0x2B8 +fn_1_8EEC = .text:0x00008EEC; // type:function size:0x154 +fn_1_9040 = .text:0x00009040; // type:function size:0x3E0 +fn_1_9420 = .text:0x00009420; // type:function size:0x214 +fn_1_9634 = .text:0x00009634; // type:function size:0x198 +fn_1_97CC = .text:0x000097CC; // type:function size:0xD8 +fn_1_98A4 = .text:0x000098A4; // type:function size:0xBC +fn_1_9960 = .text:0x00009960; // type:function size:0x33C +fn_1_9C9C = .text:0x00009C9C; // type:function size:0x4B0 +fn_1_A14C = .text:0x0000A14C; // type:function size:0x4C0 +fn_1_A60C = .text:0x0000A60C; // type:function size:0x7C +fn_1_A688 = .text:0x0000A688; // type:function size:0x4 +fn_1_A68C = .text:0x0000A68C; // type:function size:0x270 +fn_1_A8FC = .text:0x0000A8FC; // type:function size:0x51C +fn_1_AE18 = .text:0x0000AE18; // type:function size:0x628 +fn_1_B440 = .text:0x0000B440; // type:function size:0x98 +fn_1_B4D8 = .text:0x0000B4D8; // type:function size:0x70 +fn_1_B548 = .text:0x0000B548; // type:function size:0x4 +fn_1_B54C = .text:0x0000B54C; // type:function size:0x9D4 +fn_1_BF20 = .text:0x0000BF20; // type:function size:0x844 +fn_1_C764 = .text:0x0000C764; // type:function size:0x184 +fn_1_C8E8 = .text:0x0000C8E8; // type:function size:0x1C8 +fn_1_CAB0 = .text:0x0000CAB0; // type:function size:0x94C +fn_1_D3FC = .text:0x0000D3FC; // type:function size:0x180 +fn_1_D57C = .text:0x0000D57C; // type:function size:0x4E8 +fn_1_DA64 = .text:0x0000DA64; // type:function size:0x43C +fn_1_DEA0 = .text:0x0000DEA0; // type:function size:0xD0 +fn_1_DF70 = .text:0x0000DF70; // type:function size:0xC4 +fn_1_E034 = .text:0x0000E034; // type:function size:0x454 +fn_1_E488 = .text:0x0000E488; // type:function size:0x11C +fn_1_E5A4 = .text:0x0000E5A4; // type:function size:0xB4 +fn_1_E658 = .text:0x0000E658; // type:function size:0x138 +fn_1_E790 = .text:0x0000E790; // type:function size:0xDA8 +fn_1_F538 = .text:0x0000F538; // type:function size:0x12C +fn_1_F664 = .text:0x0000F664; // type:function size:0x1C +fn_1_F680 = .text:0x0000F680; // type:function size:0x2C +fn_1_F6AC = .text:0x0000F6AC; // type:function size:0x1C +fn_1_F6C8 = .text:0x0000F6C8; // type:function size:0x184 +fn_1_F84C = .text:0x0000F84C; // type:function size:0xA0 +fn_1_F8EC = .text:0x0000F8EC; // type:function size:0xA8 +fn_1_F994 = .text:0x0000F994; // type:function size:0x8C +fn_1_FA20 = .text:0x0000FA20; // type:function size:0x98 +fn_1_FAB8 = .text:0x0000FAB8; // type:function size:0x288 +fn_1_FD40 = .text:0x0000FD40; // type:function size:0x518 +fn_1_10258 = .text:0x00010258; // type:function size:0x564 +fn_1_107BC = .text:0x000107BC; // type:function size:0x128 +fn_1_108E4 = .text:0x000108E4; // type:function size:0x2C +fn_1_10910 = .text:0x00010910; // type:function size:0x3A8 +fn_1_10CB8 = .text:0x00010CB8; // type:function size:0x254 +fn_1_10F0C = .text:0x00010F0C; // type:function size:0x80 +fn_1_10F8C = .text:0x00010F8C; // type:function size:0x8C +fn_1_11018 = .text:0x00011018; // type:function size:0x9C +fn_1_110B4 = .text:0x000110B4; // type:function size:0x5A4 +fn_1_11658 = .text:0x00011658; // type:function size:0x238 +fn_1_11890 = .text:0x00011890; // type:function size:0x6C +fn_1_118FC = .text:0x000118FC; // type:function size:0x70 +fn_1_1196C = .text:0x0001196C; // type:function size:0x74 +fn_1_119E0 = .text:0x000119E0; // type:function size:0x84 +fn_1_11A64 = .text:0x00011A64; // type:function size:0x88 +fn_1_11AEC = .text:0x00011AEC; // type:function size:0x8C +fn_1_11B78 = .text:0x00011B78; // type:function size:0x70 +fn_1_11BE8 = .text:0x00011BE8; // type:function size:0x74 +fn_1_11C5C = .text:0x00011C5C; // type:function size:0x6C +fn_1_11CC8 = .text:0x00011CC8; // type:function size:0x70 +fn_1_11D38 = .text:0x00011D38; // type:function size:0x74 +fn_1_11DAC = .text:0x00011DAC; // type:function size:0x6C +fn_1_11E18 = .text:0x00011E18; // type:function size:0x70 +fn_1_11E88 = .text:0x00011E88; // type:function size:0x74 +fn_1_11EFC = .text:0x00011EFC; // type:function size:0x6C +fn_1_11F68 = .text:0x00011F68; // type:function size:0x70 +fn_1_11FD8 = .text:0x00011FD8; // type:function size:0x74 +fn_1_1204C = .text:0x0001204C; // type:function size:0x44 +fn_1_12090 = .text:0x00012090; // type:function size:0x70 +fn_1_12100 = .text:0x00012100; // type:function size:0x74 +fn_1_12174 = .text:0x00012174; // type:function size:0x44 +fn_1_121B8 = .text:0x000121B8; // type:function size:0x70 +fn_1_12228 = .text:0x00012228; // type:function size:0x74 +fn_1_1229C = .text:0x0001229C; // type:function size:0x5C +fn_1_122F8 = .text:0x000122F8; // type:function size:0x80 +fn_1_12378 = .text:0x00012378; // type:function size:0x74 +fn_1_123EC = .text:0x000123EC; // type:function size:0x78 +fn_1_12464 = .text:0x00012464; // type:function size:0x68 +fn_1_124CC = .text:0x000124CC; // type:function size:0x6C +fn_1_12538 = .text:0x00012538; // type:function size:0x68 +fn_1_125A0 = .text:0x000125A0; // type:function size:0x6C +fn_1_1260C = .text:0x0001260C; // type:function size:0x68 +fn_1_12674 = .text:0x00012674; // type:function size:0x6C +fn_1_126E0 = .text:0x000126E0; // type:function size:0x6C +fn_1_1274C = .text:0x0001274C; // type:function size:0x78 +fn_1_127C4 = .text:0x000127C4; // type:function size:0x98 +fn_1_1285C = .text:0x0001285C; // type:function size:0x6C +fn_1_128C8 = .text:0x000128C8; // type:function size:0x78 +fn_1_12940 = .text:0x00012940; // type:function size:0x98 +fn_1_129D8 = .text:0x000129D8; // type:function size:0x70 +fn_1_12A48 = .text:0x00012A48; // type:function size:0x78 +fn_1_12AC0 = .text:0x00012AC0; // type:function size:0x98 +fn_1_12B58 = .text:0x00012B58; // type:function size:0x40 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x10 data:4byte +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x30 data:4byte +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x10 data:byte +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC +lbl_1_data_40 = .data:0x00000040; // type:object size:0x24 +lbl_1_data_64 = .data:0x00000064; // type:object size:0x4 data:4byte +lbl_1_data_68 = .data:0x00000068; // type:object size:0x420 +lbl_1_data_488 = .data:0x00000488; // type:object size:0x2C +lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x30 +jumptable_1_data_4E4 = .data:0x000004E4; // type:object size:0x2C scope:local +lbl_1_data_514 = .data:0x00000514; // type:object size:0xC +lbl_1_data_520 = .data:0x00000520; // type:object size:0x64 +lbl_1_data_584 = .data:0x00000584; // type:object size:0x64 +lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0x24 +lbl_1_data_60C = .data:0x0000060C; // type:object size:0x6C +lbl_1_data_678 = .data:0x00000678; // type:object size:0x24 +lbl_1_data_69C = .data:0x0000069C; // type:object size:0x6C +lbl_1_data_708 = .data:0x00000708; // type:object size:0x24 +lbl_1_data_72C = .data:0x0000072C; // type:object size:0x24 +lbl_1_data_750 = .data:0x00000750; // type:object size:0x7 data:string +lbl_1_data_757 = .data:0x00000757; // type:object size:0x7 data:string +lbl_1_data_75E = .data:0x0000075E; // type:object size:0x7 data:string +lbl_1_data_765 = .data:0x00000765; // type:object size:0x7 data:string +lbl_1_data_76C = .data:0x0000076C; // type:object size:0x7 data:string +lbl_1_data_773 = .data:0x00000773; // type:object size:0x7 data:string +lbl_1_data_77A = .data:0x0000077A; // type:object size:0x7 data:string +lbl_1_data_781 = .data:0x00000781; // type:object size:0x7 data:string +lbl_1_data_788 = .data:0x00000788; // type:object size:0x7 data:string +lbl_1_data_78F = .data:0x0000078F; // type:object size:0x8 data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x8 data:string +lbl_1_data_79F = .data:0x0000079F; // type:object size:0x8 data:string +lbl_1_data_7A7 = .data:0x000007A7; // type:object size:0x8 data:string +lbl_1_data_7AF = .data:0x000007AF; // type:object size:0x8 data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x8 data:string +lbl_1_data_7BF = .data:0x000007BF; // type:object size:0x8 data:string +lbl_1_data_7C7 = .data:0x000007C7; // type:object size:0x8 data:string +lbl_1_data_7CF = .data:0x000007CF; // type:object size:0x8 data:string +lbl_1_data_7D7 = .data:0x000007D7; // type:object size:0x8 data:string +lbl_1_data_7DF = .data:0x000007DF; // type:object size:0x8 data:string +lbl_1_data_7E7 = .data:0x000007E7; // type:object size:0x8 data:string +lbl_1_data_7EF = .data:0x000007EF; // type:object size:0x8 data:string +lbl_1_data_7F7 = .data:0x000007F7; // type:object size:0x8 data:string +lbl_1_data_7FF = .data:0x000007FF; // type:object size:0x8 data:string +lbl_1_data_807 = .data:0x00000807; // type:object size:0x8 data:string +lbl_1_data_80F = .data:0x0000080F; // type:object size:0x8 data:string +lbl_1_data_817 = .data:0x00000817; // type:object size:0x8 data:string +lbl_1_data_81F = .data:0x0000081F; // type:object size:0x8 data:string +lbl_1_data_827 = .data:0x00000827; // type:object size:0x8 data:string +lbl_1_data_82F = .data:0x0000082F; // type:object size:0x8 data:string +lbl_1_data_837 = .data:0x00000837; // type:object size:0x8 data:string +lbl_1_data_83F = .data:0x0000083F; // type:object size:0x9 +lbl_1_data_848 = .data:0x00000848; // type:object size:0x80 +lbl_1_data_8C8 = .data:0x000008C8; // type:object size:0x9 data:string +lbl_1_data_8D1 = .data:0x000008D1; // type:object size:0x7 data:string +lbl_1_data_8D8 = .data:0x000008D8; // type:object size:0x60 +lbl_1_data_938 = .data:0x00000938; // type:object size:0xB data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x288 +lbl_1_bss_294 = .bss:0x00000294; // type:object size:0x4 data:4byte +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x900 data:float +lbl_1_bss_B98 = .bss:0x00000B98; // type:object size:0xC data:4byte +lbl_1_bss_BA4 = .bss:0x00000BA4; // type:object size:0x200 +lbl_1_bss_DA4 = .bss:0x00000DA4; // type:object size:0x4 data:4byte +lbl_1_bss_DA8 = .bss:0x00000DA8; // type:object size:0x2 data:2byte +lbl_1_bss_DAA = .bss:0x00000DAA; // type:object size:0x8 data:2byte +lbl_1_bss_DB2 = .bss:0x00000DB2; // type:object size:0x2 data:2byte +lbl_1_bss_DB4 = .bss:0x00000DB4; // type:object size:0x2 data:2byte +lbl_1_bss_DB6 = .bss:0x00000DB6; // type:object size:0x2 data:2byte +lbl_1_bss_DB8 = .bss:0x00000DB8; // type:object size:0x2 data:2byte +lbl_1_bss_DBA = .bss:0x00000DBA; // type:object size:0x2 data:2byte +lbl_1_bss_DBC = .bss:0x00000DBC; // type:object size:0x4 data:4byte +lbl_1_bss_DC0 = .bss:0x00000DC0; // type:object size:0x4 data:4byte +lbl_1_bss_DC4 = .bss:0x00000DC4; // type:object size:0x10 +lbl_1_bss_DD4 = .bss:0x00000DD4; // type:object size:0x4 data:4byte +lbl_1_bss_DD8 = .bss:0x00000DD8; // type:object size:0x4 data:4byte +lbl_1_bss_DDC = .bss:0x00000DDC; // type:object size:0x4 data:4byte +lbl_1_bss_DE0 = .bss:0x00000DE0; // type:object size:0x4 data:4byte +lbl_1_bss_DE4 = .bss:0x00000DE4; // type:object size:0x48 data:4byte +lbl_1_bss_E2C = .bss:0x00000E2C; // type:object size:0x4 data:4byte +lbl_1_bss_E30 = .bss:0x00000E30; // type:object size:0x4 data:4byte +lbl_1_bss_E34 = .bss:0x00000E34; // type:object size:0x258 data:4byte +lbl_1_bss_108C = .bss:0x0000108C; // type:object size:0x18 data:4byte diff --git a/config/GMPJ01_00/rels/m439Dll/splits.txt b/config/GMPJ01_00/rels/m439Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m439Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m439Dll/symbols.txt b/config/GMPJ01_00/rels/m439Dll/symbols.txt new file mode 100644 index 00000000..37fa3fca --- /dev/null +++ b/config/GMPJ01_00/rels/m439Dll/symbols.txt @@ -0,0 +1,325 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x2C4 +fn_1_364 = .text:0x00000364; // type:function size:0x10 +fn_1_374 = .text:0x00000374; // type:function size:0x10 +fn_1_384 = .text:0x00000384; // type:function size:0x84 +fn_1_408 = .text:0x00000408; // type:function size:0x5B4 +fn_1_9BC = .text:0x000009BC; // type:function size:0x5C +fn_1_A18 = .text:0x00000A18; // type:function size:0x108 +fn_1_B20 = .text:0x00000B20; // type:function size:0x5C +fn_1_B7C = .text:0x00000B7C; // type:function size:0x84 +fn_1_C00 = .text:0x00000C00; // type:function size:0x10C +fn_1_D0C = .text:0x00000D0C; // type:function size:0x318 +fn_1_1024 = .text:0x00001024; // type:function size:0x104 +fn_1_1128 = .text:0x00001128; // type:function size:0x588 +fn_1_16B0 = .text:0x000016B0; // type:function size:0x5A4 +fn_1_1C54 = .text:0x00001C54; // type:function size:0x2E8 +fn_1_1F3C = .text:0x00001F3C; // type:function size:0x248 +fn_1_2184 = .text:0x00002184; // type:function size:0xB8 +fn_1_223C = .text:0x0000223C; // type:function size:0x978 +fn_1_2BB4 = .text:0x00002BB4; // type:function size:0xD0 +fn_1_2C84 = .text:0x00002C84; // type:function size:0xF98 +fn_1_3C1C = .text:0x00003C1C; // type:function size:0x90C +fn_1_4528 = .text:0x00004528; // type:function size:0x450 +fn_1_4978 = .text:0x00004978; // type:function size:0x50 +fn_1_49C8 = .text:0x000049C8; // type:function size:0x84 +fn_1_4A4C = .text:0x00004A4C; // type:function size:0x5C +fn_1_4AA8 = .text:0x00004AA8; // type:function size:0x218 +fn_1_4CC0 = .text:0x00004CC0; // type:function size:0x294 +fn_1_4F54 = .text:0x00004F54; // type:function size:0xC48 +fn_1_5B9C = .text:0x00005B9C; // type:function size:0x4 +fn_1_5BA0 = .text:0x00005BA0; // type:function size:0x10C +fn_1_5CAC = .text:0x00005CAC; // type:function size:0x4 +fn_1_5CB0 = .text:0x00005CB0; // type:function size:0x3B8 +fn_1_6068 = .text:0x00006068; // type:function size:0xB8 +fn_1_6120 = .text:0x00006120; // type:function size:0x1C0 +fn_1_62E0 = .text:0x000062E0; // type:function size:0x48 +fn_1_6328 = .text:0x00006328; // type:function size:0x1F8 +fn_1_6520 = .text:0x00006520; // type:function size:0xFC +fn_1_661C = .text:0x0000661C; // type:function size:0xA0 +fn_1_66BC = .text:0x000066BC; // type:function size:0xF8 +fn_1_67B4 = .text:0x000067B4; // type:function size:0x454 +fn_1_6C08 = .text:0x00006C08; // type:function size:0xC8 +fn_1_6CD0 = .text:0x00006CD0; // type:function size:0x11C +fn_1_6DEC = .text:0x00006DEC; // type:function size:0x3A4 +fn_1_7190 = .text:0x00007190; // type:function size:0x5C +fn_1_71EC = .text:0x000071EC; // type:function size:0x208 +fn_1_73F4 = .text:0x000073F4; // type:function size:0x184 +fn_1_7578 = .text:0x00007578; // type:function size:0x26C +fn_1_77E4 = .text:0x000077E4; // type:function size:0x9A8 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0xC data:2byte +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x50 +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x1 data:byte +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x18 +lbl_1_data_18 = .data:0x00000018; // type:object size:0x18 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x8 +lbl_1_data_38 = .data:0x00000038; // type:object size:0x84 +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x84 +lbl_1_data_140 = .data:0x00000140; // type:object size:0x2C +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x90 +lbl_1_data_1FC = .data:0x000001FC; // type:object size:0x90 +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x30 +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0xA8 +lbl_1_data_364 = .data:0x00000364; // type:object size:0xA8 +lbl_1_data_40C = .data:0x0000040C; // type:object size:0x38 +lbl_1_data_444 = .data:0x00000444; // type:object size:0xB4 +lbl_1_data_4F8 = .data:0x000004F8; // type:object size:0xB4 +lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x3C +lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0x18 +lbl_1_data_600 = .data:0x00000600; // type:object size:0x18 +lbl_1_data_618 = .data:0x00000618; // type:object size:0x8 +lbl_1_data_620 = .data:0x00000620; // type:object size:0xA8 +lbl_1_data_6C8 = .data:0x000006C8; // type:object size:0xA8 +lbl_1_data_770 = .data:0x00000770; // type:object size:0x38 +lbl_1_data_7A8 = .data:0x000007A8; // type:object size:0xD8 +lbl_1_data_880 = .data:0x00000880; // type:object size:0xD8 +lbl_1_data_958 = .data:0x00000958; // type:object size:0x48 +lbl_1_data_9A0 = .data:0x000009A0; // type:object size:0xC0 +lbl_1_data_A60 = .data:0x00000A60; // type:object size:0xC0 +lbl_1_data_B20 = .data:0x00000B20; // type:object size:0x40 +lbl_1_data_B60 = .data:0x00000B60; // type:object size:0xC0 +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xC0 +lbl_1_data_CE0 = .data:0x00000CE0; // type:object size:0x40 +lbl_1_data_D20 = .data:0x00000D20; // type:object size:0xA8 +lbl_1_data_DC8 = .data:0x00000DC8; // type:object size:0xA8 +lbl_1_data_E70 = .data:0x00000E70; // type:object size:0x38 +lbl_1_data_EA8 = .data:0x00000EA8; // type:object size:0x9C +lbl_1_data_F44 = .data:0x00000F44; // type:object size:0x9C +lbl_1_data_FE0 = .data:0x00000FE0; // type:object size:0x34 +lbl_1_data_1014 = .data:0x00001014; // type:object size:0x60 +lbl_1_data_1074 = .data:0x00001074; // type:object size:0x18 +lbl_1_data_108C = .data:0x0000108C; // type:object size:0x30 +lbl_1_data_10BC = .data:0x000010BC; // type:object size:0x204 +lbl_1_data_12C0 = .data:0x000012C0; // type:object size:0x204 +lbl_1_data_14C4 = .data:0x000014C4; // type:object size:0x204 +lbl_1_data_16C8 = .data:0x000016C8; // type:object size:0xC +lbl_1_data_16D4 = .data:0x000016D4; // type:object size:0x4 +lbl_1_data_16D8 = .data:0x000016D8; // type:object size:0x1D4 +lbl_1_data_18AC = .data:0x000018AC; // type:object size:0x1D4 +lbl_1_data_1A80 = .data:0x00001A80; // type:object size:0x1D4 +lbl_1_data_1C54 = .data:0x00001C54; // type:object size:0x120 +lbl_1_data_1D74 = .data:0x00001D74; // type:object size:0x120 +lbl_1_data_1E94 = .data:0x00001E94; // type:object size:0x120 +lbl_1_data_1FB4 = .data:0x00001FB4; // type:object size:0xF0 +lbl_1_data_20A4 = .data:0x000020A4; // type:object size:0xF0 +lbl_1_data_2194 = .data:0x00002194; // type:object size:0xF0 +lbl_1_data_2284 = .data:0x00002284; // type:object size:0x24 +lbl_1_data_22A8 = .data:0x000022A8; // type:object size:0xC +lbl_1_data_22B4 = .data:0x000022B4; // type:object size:0x174 +lbl_1_data_2428 = .data:0x00002428; // type:object size:0x174 +lbl_1_data_259C = .data:0x0000259C; // type:object size:0x174 +lbl_1_data_2710 = .data:0x00002710; // type:object size:0x144 +lbl_1_data_2854 = .data:0x00002854; // type:object size:0x144 +lbl_1_data_2998 = .data:0x00002998; // type:object size:0x144 +lbl_1_data_2ADC = .data:0x00002ADC; // type:object size:0x1A4 +lbl_1_data_2C80 = .data:0x00002C80; // type:object size:0x1A4 +lbl_1_data_2E24 = .data:0x00002E24; // type:object size:0x1A4 +lbl_1_data_2FC8 = .data:0x00002FC8; // type:object size:0x24 +lbl_1_data_2FEC = .data:0x00002FEC; // type:object size:0xC +lbl_1_data_2FF8 = .data:0x00002FF8; // type:object size:0x294 +lbl_1_data_328C = .data:0x0000328C; // type:object size:0x294 +lbl_1_data_3520 = .data:0x00003520; // type:object size:0x294 +lbl_1_data_37B4 = .data:0x000037B4; // type:object size:0xC +lbl_1_data_37C0 = .data:0x000037C0; // type:object size:0x4 +lbl_1_data_37C4 = .data:0x000037C4; // type:object size:0x198 +lbl_1_data_395C = .data:0x0000395C; // type:object size:0x198 +lbl_1_data_3AF4 = .data:0x00003AF4; // type:object size:0x198 +lbl_1_data_3C8C = .data:0x00003C8C; // type:object size:0x198 +lbl_1_data_3E24 = .data:0x00003E24; // type:object size:0x198 +lbl_1_data_3FBC = .data:0x00003FBC; // type:object size:0x198 +lbl_1_data_4154 = .data:0x00004154; // type:object size:0x18 +lbl_1_data_416C = .data:0x0000416C; // type:object size:0x8 +lbl_1_data_4174 = .data:0x00004174; // type:object size:0x210 +lbl_1_data_4384 = .data:0x00004384; // type:object size:0x210 +lbl_1_data_4594 = .data:0x00004594; // type:object size:0x210 +lbl_1_data_47A4 = .data:0x000047A4; // type:object size:0x210 +lbl_1_data_49B4 = .data:0x000049B4; // type:object size:0x210 +lbl_1_data_4BC4 = .data:0x00004BC4; // type:object size:0x210 +lbl_1_data_4DD4 = .data:0x00004DD4; // type:object size:0x18 +lbl_1_data_4DEC = .data:0x00004DEC; // type:object size:0x8 +lbl_1_data_4DF4 = .data:0x00004DF4; // type:object size:0x1D4 +lbl_1_data_4FC8 = .data:0x00004FC8; // type:object size:0x1D4 +lbl_1_data_519C = .data:0x0000519C; // type:object size:0x1D4 +lbl_1_data_5370 = .data:0x00005370; // type:object size:0x1D4 +lbl_1_data_5544 = .data:0x00005544; // type:object size:0x1D4 +lbl_1_data_5718 = .data:0x00005718; // type:object size:0x1D4 +lbl_1_data_58EC = .data:0x000058EC; // type:object size:0x18 +lbl_1_data_5904 = .data:0x00005904; // type:object size:0x8 +lbl_1_data_590C = .data:0x0000590C; // type:object size:0x18C +lbl_1_data_5A98 = .data:0x00005A98; // type:object size:0x18C +lbl_1_data_5C24 = .data:0x00005C24; // type:object size:0x18C +lbl_1_data_5DB0 = .data:0x00005DB0; // type:object size:0x168 +lbl_1_data_5F18 = .data:0x00005F18; // type:object size:0x168 +lbl_1_data_6080 = .data:0x00006080; // type:object size:0x168 +lbl_1_data_61E8 = .data:0x000061E8; // type:object size:0x18 +lbl_1_data_6200 = .data:0x00006200; // type:object size:0x8 +lbl_1_data_6208 = .data:0x00006208; // type:object size:0x174 +lbl_1_data_637C = .data:0x0000637C; // type:object size:0x174 +lbl_1_data_64F0 = .data:0x000064F0; // type:object size:0x174 +lbl_1_data_6664 = .data:0x00006664; // type:object size:0x15C +lbl_1_data_67C0 = .data:0x000067C0; // type:object size:0x15C +lbl_1_data_691C = .data:0x0000691C; // type:object size:0x15C +lbl_1_data_6A78 = .data:0x00006A78; // type:object size:0x18 +lbl_1_data_6A90 = .data:0x00006A90; // type:object size:0x8 +lbl_1_data_6A98 = .data:0x00006A98; // type:object size:0x18C +lbl_1_data_6C24 = .data:0x00006C24; // type:object size:0x18C +lbl_1_data_6DB0 = .data:0x00006DB0; // type:object size:0x18C +lbl_1_data_6F3C = .data:0x00006F3C; // type:object size:0x174 +lbl_1_data_70B0 = .data:0x000070B0; // type:object size:0x174 +lbl_1_data_7224 = .data:0x00007224; // type:object size:0x174 +lbl_1_data_7398 = .data:0x00007398; // type:object size:0x18 +lbl_1_data_73B0 = .data:0x000073B0; // type:object size:0x8 +lbl_1_data_73B8 = .data:0x000073B8; // type:object size:0x14 +lbl_1_data_73CC = .data:0x000073CC; // type:object size:0x28 +lbl_1_data_73F4 = .data:0x000073F4; // type:object size:0x28 +lbl_1_data_741C = .data:0x0000741C; // type:object size:0x70 data:float +lbl_1_data_748C = .data:0x0000748C; // type:object size:0x140 +lbl_1_data_75CC = .data:0x000075CC; // type:object size:0x14 +lbl_1_data_75E0 = .data:0x000075E0; // type:object size:0x10 data:4byte +lbl_1_data_75F0 = .data:0x000075F0; // type:object size:0xC data:float +lbl_1_data_75FC = .data:0x000075FC; // type:object size:0xC data:float +lbl_1_data_7608 = .data:0x00007608; // type:object size:0x4 +lbl_1_data_760C = .data:0x0000760C; // type:object size:0xC +lbl_1_data_7618 = .data:0x00007618; // type:object size:0xC +lbl_1_data_7624 = .data:0x00007624; // type:object size:0x24 +lbl_1_data_7648 = .data:0x00007648; // type:object size:0x4 data:4byte +lbl_1_data_764C = .data:0x0000764C; // type:object size:0x4 data:4byte +jumptable_1_data_7650 = .data:0x00007650; // type:object size:0x28 scope:local +lbl_1_data_7678 = .data:0x00007678; // type:object size:0x1C data:string +lbl_1_data_7694 = .data:0x00007694; // type:object size:0x1C +lbl_1_data_76B0 = .data:0x000076B0; // type:object size:0x58 +lbl_1_data_7708 = .data:0x00007708; // type:object size:0x30 +lbl_1_data_7738 = .data:0x00007738; // type:object size:0x5C +lbl_1_data_7794 = .data:0x00007794; // type:object size:0x4 +lbl_1_data_7798 = .data:0x00007798; // type:object size:0x4 data:4byte +lbl_1_data_779C = .data:0x0000779C; // type:object size:0x4 data:4byte +lbl_1_data_77A0 = .data:0x000077A0; // type:object size:0x28 +lbl_1_data_77C8 = .data:0x000077C8; // type:object size:0x70 +lbl_1_data_7838 = .data:0x00007838; // type:object size:0x1C +lbl_1_data_7854 = .data:0x00007854; // type:object size:0x6 data:string +lbl_1_data_785A = .data:0x0000785A; // type:object size:0x6 data:string +lbl_1_data_7860 = .data:0x00007860; // type:object size:0x8 data:string +lbl_1_data_7868 = .data:0x00007868; // type:object size:0x6 data:string +lbl_1_data_786E = .data:0x0000786E; // type:object size:0x8 data:string +lbl_1_data_7876 = .data:0x00007876; // type:object size:0x6 data:string +lbl_1_data_787C = .data:0x0000787C; // type:object size:0x6 data:string +lbl_1_data_7882 = .data:0x00007882; // type:object size:0x6 data:string +lbl_1_data_7888 = .data:0x00007888; // type:object size:0x6 data:string +lbl_1_data_788E = .data:0x0000788E; // type:object size:0x6 data:string +lbl_1_data_7894 = .data:0x00007894; // type:object size:0x6 data:string +lbl_1_data_789A = .data:0x0000789A; // type:object size:0x6 data:string +lbl_1_data_78A0 = .data:0x000078A0; // type:object size:0x20 +lbl_1_data_78C0 = .data:0x000078C0; // type:object size:0x30 +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x20 +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x2 data:2byte +lbl_1_bss_32 = .bss:0x00000032; // type:object size:0x2 data:2byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0xC data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x90 +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x24 +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x24 +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0xC +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x4 data:4byte +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x2 data:2byte +lbl_1_bss_12E = .bss:0x0000012E; // type:object size:0x2 data:2byte +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x2 data:2byte +lbl_1_bss_132 = .bss:0x00000132; // type:object size:0x8 data:2byte +lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x2 data:2byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x2 data:2byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x4 data:4byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x4 data:4byte +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x10 data:4byte +lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x8 data:4byte +lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x4 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x4 data:4byte +lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m440Dll/splits.txt b/config/GMPJ01_00/rels/m440Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m440Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m440Dll/symbols.txt b/config/GMPJ01_00/rels/m440Dll/symbols.txt new file mode 100644 index 00000000..562ed3d5 --- /dev/null +++ b/config/GMPJ01_00/rels/m440Dll/symbols.txt @@ -0,0 +1,288 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x324 +fn_1_3C4 = .text:0x000003C4; // type:function size:0x70 +fn_1_434 = .text:0x00000434; // type:function size:0x70 +fn_1_4A4 = .text:0x000004A4; // type:function size:0x224 +fn_1_6C8 = .text:0x000006C8; // type:function size:0x228 +fn_1_8F0 = .text:0x000008F0; // type:function size:0x1F0 +fn_1_AE0 = .text:0x00000AE0; // type:function size:0x334 +fn_1_E14 = .text:0x00000E14; // type:function size:0x324 +fn_1_1138 = .text:0x00001138; // type:function size:0x5A0 +fn_1_16D8 = .text:0x000016D8; // type:function size:0x30 +fn_1_1708 = .text:0x00001708; // type:function size:0x60 +fn_1_1768 = .text:0x00001768; // type:function size:0x64 +fn_1_17CC = .text:0x000017CC; // type:function size:0x28 +fn_1_17F4 = .text:0x000017F4; // type:function size:0x28 +fn_1_181C = .text:0x0000181C; // type:function size:0x74 +fn_1_1890 = .text:0x00001890; // type:function size:0x50 +fn_1_18E0 = .text:0x000018E0; // type:function size:0x74 +fn_1_1954 = .text:0x00001954; // type:function size:0x5C +fn_1_19B0 = .text:0x000019B0; // type:function size:0x2FC +fn_1_1CAC = .text:0x00001CAC; // type:function size:0xA8 +fn_1_1D54 = .text:0x00001D54; // type:function size:0x4EC +fn_1_2240 = .text:0x00002240; // type:function size:0x1A4 +fn_1_23E4 = .text:0x000023E4; // type:function size:0x44 +fn_1_2428 = .text:0x00002428; // type:function size:0x48 +fn_1_2470 = .text:0x00002470; // type:function size:0x604 +fn_1_2A74 = .text:0x00002A74; // type:function size:0x40 +fn_1_2AB4 = .text:0x00002AB4; // type:function size:0x50 +fn_1_2B04 = .text:0x00002B04; // type:function size:0x1A4 +fn_1_2CA8 = .text:0x00002CA8; // type:function size:0x80 +fn_1_2D28 = .text:0x00002D28; // type:function size:0x6AC +fn_1_33D4 = .text:0x000033D4; // type:function size:0xA04 +fn_1_3DD8 = .text:0x00003DD8; // type:function size:0x780 +fn_1_4558 = .text:0x00004558; // type:function size:0x64 +fn_1_45BC = .text:0x000045BC; // type:function size:0xA4 +fn_1_4660 = .text:0x00004660; // type:function size:0x80 +fn_1_46E0 = .text:0x000046E0; // type:function size:0x340 +fn_1_4A20 = .text:0x00004A20; // type:function size:0x124 +fn_1_4B44 = .text:0x00004B44; // type:function size:0x2BC +fn_1_4E00 = .text:0x00004E00; // type:function size:0x2C +fn_1_4E2C = .text:0x00004E2C; // type:function size:0x28 +fn_1_4E54 = .text:0x00004E54; // type:function size:0x54 +fn_1_4EA8 = .text:0x00004EA8; // type:function size:0x44 +fn_1_4EEC = .text:0x00004EEC; // type:function size:0x48 +fn_1_4F34 = .text:0x00004F34; // type:function size:0xDC +fn_1_5010 = .text:0x00005010; // type:function size:0x7A4 +fn_1_57B4 = .text:0x000057B4; // type:function size:0x478 +fn_1_5C2C = .text:0x00005C2C; // type:function size:0x928 +fn_1_6554 = .text:0x00006554; // type:function size:0x604 +fn_1_6B58 = .text:0x00006B58; // type:function size:0x6A4 +fn_1_71FC = .text:0x000071FC; // type:function size:0x738 +fn_1_7934 = .text:0x00007934; // type:function size:0x42C +fn_1_7D60 = .text:0x00007D60; // type:function size:0x30C +fn_1_806C = .text:0x0000806C; // type:function size:0x404 +fn_1_8470 = .text:0x00008470; // type:function size:0x654 +fn_1_8AC4 = .text:0x00008AC4; // type:function size:0x258 +fn_1_8D1C = .text:0x00008D1C; // type:function size:0x488 +fn_1_91A4 = .text:0x000091A4; // type:function size:0xD8 +fn_1_927C = .text:0x0000927C; // type:function size:0xC8 +fn_1_9344 = .text:0x00009344; // type:function size:0x7C +fn_1_93C0 = .text:0x000093C0; // type:function size:0x10 +fn_1_93D0 = .text:0x000093D0; // type:function size:0x5C +fn_1_942C = .text:0x0000942C; // type:function size:0x140 +fn_1_956C = .text:0x0000956C; // type:function size:0x544 +fn_1_9AB0 = .text:0x00009AB0; // type:function size:0x60 +fn_1_9B10 = .text:0x00009B10; // type:function size:0x2C +fn_1_9B3C = .text:0x00009B3C; // type:function size:0x58 +fn_1_9B94 = .text:0x00009B94; // type:function size:0x38 +fn_1_9BCC = .text:0x00009BCC; // type:function size:0x38 +fn_1_9C04 = .text:0x00009C04; // type:function size:0x5B4 +fn_1_A1B8 = .text:0x0000A1B8; // type:function size:0xCC +fn_1_A284 = .text:0x0000A284; // type:function size:0xA4 +fn_1_A328 = .text:0x0000A328; // type:function size:0x68 +fn_1_A390 = .text:0x0000A390; // type:function size:0x704 +fn_1_AA94 = .text:0x0000AA94; // type:function size:0x374 +fn_1_AE08 = .text:0x0000AE08; // type:function size:0xDC +fn_1_AEE4 = .text:0x0000AEE4; // type:function size:0x298 +fn_1_B17C = .text:0x0000B17C; // type:function size:0x4 +fn_1_B180 = .text:0x0000B180; // type:function size:0x224 +fn_1_B3A4 = .text:0x0000B3A4; // type:function size:0x4E0 +fn_1_B884 = .text:0x0000B884; // type:function size:0x950 +fn_1_C1D4 = .text:0x0000C1D4; // type:function size:0x770 +fn_1_C944 = .text:0x0000C944; // type:function size:0x668 +fn_1_CFAC = .text:0x0000CFAC; // type:function size:0x2A0 +fn_1_D24C = .text:0x0000D24C; // type:function size:0x100 +fn_1_D34C = .text:0x0000D34C; // type:function size:0x4AC +fn_1_D7F8 = .text:0x0000D7F8; // type:function size:0x83C +fn_1_E034 = .text:0x0000E034; // type:function size:0x878 +fn_1_E8AC = .text:0x0000E8AC; // type:function size:0x4DC +fn_1_ED88 = .text:0x0000ED88; // type:function size:0xF0 +fn_1_EE78 = .text:0x0000EE78; // type:function size:0xD8 +fn_1_EF50 = .text:0x0000EF50; // type:function size:0x1AC +fn_1_F0FC = .text:0x0000F0FC; // type:function size:0x6C +fn_1_F168 = .text:0x0000F168; // type:function size:0xC0 +fn_1_F228 = .text:0x0000F228; // type:function size:0x298 +fn_1_F4C0 = .text:0x0000F4C0; // type:function size:0x14 +fn_1_F4D4 = .text:0x0000F4D4; // type:function size:0x28 +fn_1_F4FC = .text:0x0000F4FC; // type:function size:0x18 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x1 data:byte +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0xC data:2byte +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC data:2byte +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x14 +lbl_1_data_14 = .data:0x00000014; // type:object size:0xC +lbl_1_data_20 = .data:0x00000020; // type:object size:0xC data:float +lbl_1_data_2C = .data:0x0000002C; // type:object size:0xC data:float +lbl_1_data_38 = .data:0x00000038; // type:object size:0xC +lbl_1_data_44 = .data:0x00000044; // type:object size:0x10 +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC data:float +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC data:float +lbl_1_data_78 = .data:0x00000078; // type:object size:0x54 data:float +lbl_1_data_CC = .data:0x000000CC; // type:object size:0x18 +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x2 data:2byte +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x2 data:2byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x2 data:2byte +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x2 data:2byte +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x10 +lbl_1_data_104 = .data:0x00000104; // type:object size:0x2 data:2byte +lbl_1_data_108 = .data:0x00000108; // type:object size:0x2 data:2byte +lbl_1_data_10C = .data:0x0000010C; // type:object size:0x12 +lbl_1_data_11E = .data:0x0000011E; // type:object size:0x13 data:string +lbl_1_data_131 = .data:0x00000131; // type:object size:0x18 +lbl_1_data_149 = .data:0x00000149; // type:object size:0x19 data:string +lbl_1_data_162 = .data:0x00000162; // type:object size:0x1C data:string +lbl_1_data_17E = .data:0x0000017E; // type:object size:0x10 data:string +lbl_1_data_18E = .data:0x0000018E; // type:object size:0x26 data:string +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x2 data:2byte +lbl_1_data_1DA = .data:0x000001DA; // type:object size:0x2 data:2byte +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x40 +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x10 +jumptable_1_data_22C = .data:0x0000022C; // type:object size:0x24 scope:local +lbl_1_data_250 = .data:0x00000250; // type:object size:0x4 data:float +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte +lbl_1_bss_1 = .bss:0x00000001; // type:object size:0x1 data:byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x1 data:byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte +lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x1 data:byte +lbl_1_bss_B = .bss:0x0000000B; // type:object size:0x1 data:byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x1 data:byte +lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x14 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x30 +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x2 data:2byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x2 data:2byte +lbl_1_bss_72 = .bss:0x00000072; // type:object size:0x1 data:byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x2 data:2byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0xC data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:float +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x30 data:float +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x8 +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x10 diff --git a/config/GMPJ01_00/rels/m441Dll/splits.txt b/config/GMPJ01_00/rels/m441Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m441Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m441Dll/symbols.txt b/config/GMPJ01_00/rels/m441Dll/symbols.txt new file mode 100644 index 00000000..08b35ee9 --- /dev/null +++ b/config/GMPJ01_00/rels/m441Dll/symbols.txt @@ -0,0 +1,224 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x218 +fn_1_798 = .text:0x00000798; // type:function size:0x254 +fn_1_9EC = .text:0x000009EC; // type:function size:0x54 +fn_1_A40 = .text:0x00000A40; // type:function size:0x10C +fn_1_B4C = .text:0x00000B4C; // type:function size:0x6A8 +fn_1_11F4 = .text:0x000011F4; // type:function size:0x15C +fn_1_1350 = .text:0x00001350; // type:function size:0x8C +fn_1_13DC = .text:0x000013DC; // type:function size:0x334 +fn_1_1710 = .text:0x00001710; // type:function size:0x350 +fn_1_1A60 = .text:0x00001A60; // type:function size:0x2B8 +fn_1_1D18 = .text:0x00001D18; // type:function size:0x58 +fn_1_1D70 = .text:0x00001D70; // type:function size:0xB0 +fn_1_1E20 = .text:0x00001E20; // type:function size:0x104 +fn_1_1F24 = .text:0x00001F24; // type:function size:0x34 +fn_1_1F58 = .text:0x00001F58; // type:function size:0x6C +fn_1_1FC4 = .text:0x00001FC4; // type:function size:0x3F0 +_prolog = .text:0x000023B4; // type:function size:0x54 scope:global +_epilog = .text:0x00002408; // type:function size:0x4C scope:global +fn_1_2454 = .text:0x00002454; // type:function size:0x2E8 +fn_1_273C = .text:0x0000273C; // type:function size:0x1C8 +fn_1_2904 = .text:0x00002904; // type:function size:0x2D0 +fn_1_2BD4 = .text:0x00002BD4; // type:function size:0x830 +fn_1_3404 = .text:0x00003404; // type:function size:0x700 +fn_1_3B04 = .text:0x00003B04; // type:function size:0xFC +fn_1_3C00 = .text:0x00003C00; // type:function size:0x4A8 +fn_1_40A8 = .text:0x000040A8; // type:function size:0x1340 +fn_1_53E8 = .text:0x000053E8; // type:function size:0x744 +fn_1_5B2C = .text:0x00005B2C; // type:function size:0xD8 +fn_1_5C04 = .text:0x00005C04; // type:function size:0x1538 +fn_1_713C = .text:0x0000713C; // type:function size:0x3B8 +fn_1_74F4 = .text:0x000074F4; // type:function size:0x464 +fn_1_7958 = .text:0x00007958; // type:function size:0xD4 +fn_1_7A2C = .text:0x00007A2C; // type:function size:0x610 +fn_1_803C = .text:0x0000803C; // type:function size:0x4DC +fn_1_8518 = .text:0x00008518; // type:function size:0x414 +fn_1_892C = .text:0x0000892C; // type:function size:0x174 +fn_1_8AA0 = .text:0x00008AA0; // type:function size:0x2B8 +fn_1_8D58 = .text:0x00008D58; // type:function size:0x11E8 +fn_1_9F40 = .text:0x00009F40; // type:function size:0x570 +fn_1_A4B0 = .text:0x0000A4B0; // type:function size:0x59C +fn_1_AA4C = .text:0x0000AA4C; // type:function size:0xD0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0xC data:4byte +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:4byte +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:4byte +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC +lbl_1_data_4C = .data:0x0000004C; // type:object size:0xC data:4byte +lbl_1_data_58 = .data:0x00000058; // type:object size:0xC data:4byte +lbl_1_data_64 = .data:0x00000064; // type:object size:0xC +lbl_1_data_70 = .data:0x00000070; // type:object size:0xC data:4byte +lbl_1_data_7C = .data:0x0000007C; // type:object size:0xC +lbl_1_data_88 = .data:0x00000088; // type:object size:0xC +lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 +lbl_1_data_98 = .data:0x00000098; // type:object size:0xC +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0xC +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x200 +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x8 +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0xC +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x10 +lbl_1_data_2D4 = .data:0x000002D4; // type:object size:0x40 +lbl_1_data_314 = .data:0x00000314; // type:object size:0xC +lbl_1_data_320 = .data:0x00000320; // type:object size:0x6 +lbl_1_data_326 = .data:0x00000326; // type:object size:0x6 +lbl_1_data_32C = .data:0x0000032C; // type:object size:0x24 +lbl_1_data_350 = .data:0x00000350; // type:object size:0x18 +lbl_1_data_368 = .data:0x00000368; // type:object size:0x4 +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC +lbl_1_data_378 = .data:0x00000378; // type:object size:0xC +lbl_1_data_384 = .data:0x00000384; // type:object size:0xC +lbl_1_data_390 = .data:0x00000390; // type:object size:0xC +lbl_1_data_39C = .data:0x0000039C; // type:object size:0x50 +lbl_1_data_3EC = .data:0x000003EC; // type:object size:0x50 +lbl_1_data_43C = .data:0x0000043C; // type:object size:0x50 +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x50 +lbl_1_data_4DC = .data:0x000004DC; // type:object size:0x18 data:string +lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0x9 data:string +lbl_1_data_4FD = .data:0x000004FD; // type:object size:0x6 data:string +lbl_1_data_503 = .data:0x00000503; // type:object size:0x1D data:string +jumptable_1_data_520 = .data:0x00000520; // type:object size:0x40 scope:local +lbl_1_data_560 = .data:0x00000560; // type:object size:0x8 data:string +lbl_1_data_568 = .data:0x00000568; // type:object size:0x1C +jumptable_1_data_584 = .data:0x00000584; // type:object size:0x24 scope:local +lbl_1_data_5A8 = .data:0x000005A8; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x6 +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x6 +lbl_1_bss_1E = .bss:0x0000001E; // type:object size:0x2 data:2byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x100 +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x40 data:4byte +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:float +lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x4 data:4byte +lbl_1_bss_198 = .bss:0x00000198; // type:object size:0x4 data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x2 data:2byte +lbl_1_bss_19E = .bss:0x0000019E; // type:object size:0x2 data:2byte +lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 data:4byte +lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x4 data:4byte +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0xC data:4byte +lbl_1_bss_1B8 = .bss:0x000001B8; // type:object size:0xC data:4byte +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0xC data:4byte +lbl_1_bss_1D0 = .bss:0x000001D0; // type:object size:0xC data:4byte +lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0x4 data:4byte +lbl_1_bss_1E0 = .bss:0x000001E0; // type:object size:0x18 data:4byte +lbl_1_bss_1F8 = .bss:0x000001F8; // type:object size:0xC data:4byte diff --git a/config/GMPJ01_00/rels/m442Dll/splits.txt b/config/GMPJ01_00/rels/m442Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m442Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m442Dll/symbols.txt b/config/GMPJ01_00/rels/m442Dll/symbols.txt new file mode 100644 index 00000000..2e955733 --- /dev/null +++ b/config/GMPJ01_00/rels/m442Dll/symbols.txt @@ -0,0 +1,225 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x2D4 +fn_1_374 = .text:0x00000374; // type:function size:0x10 +fn_1_384 = .text:0x00000384; // type:function size:0x10 +fn_1_394 = .text:0x00000394; // type:function size:0xB4 +fn_1_448 = .text:0x00000448; // type:function size:0x5E8 +fn_1_A30 = .text:0x00000A30; // type:function size:0x60 +fn_1_A90 = .text:0x00000A90; // type:function size:0x30C +fn_1_D9C = .text:0x00000D9C; // type:function size:0x68 +fn_1_E04 = .text:0x00000E04; // type:function size:0x84 +fn_1_E88 = .text:0x00000E88; // type:function size:0x378 +fn_1_1200 = .text:0x00001200; // type:function size:0x30 +fn_1_1230 = .text:0x00001230; // type:function size:0xDE0 +fn_1_2010 = .text:0x00002010; // type:function size:0x244 +fn_1_2254 = .text:0x00002254; // type:function size:0xFA8 +fn_1_31FC = .text:0x000031FC; // type:function size:0x3B0 +fn_1_35AC = .text:0x000035AC; // type:function size:0xAC +fn_1_3658 = .text:0x00003658; // type:function size:0x160 +fn_1_37B8 = .text:0x000037B8; // type:function size:0x150 +fn_1_3908 = .text:0x00003908; // type:function size:0x1DC +fn_1_3AE4 = .text:0x00003AE4; // type:function size:0x13C +fn_1_3C20 = .text:0x00003C20; // type:function size:0x74 +fn_1_3C94 = .text:0x00003C94; // type:function size:0x180 +fn_1_3E14 = .text:0x00003E14; // type:function size:0x50 +fn_1_3E64 = .text:0x00003E64; // type:function size:0x58 +fn_1_3EBC = .text:0x00003EBC; // type:function size:0x4 +fn_1_3EC0 = .text:0x00003EC0; // type:function size:0x4A4 +fn_1_4364 = .text:0x00004364; // type:function size:0x4 +fn_1_4368 = .text:0x00004368; // type:function size:0xDC +fn_1_4444 = .text:0x00004444; // type:function size:0x418 +fn_1_485C = .text:0x0000485C; // type:function size:0xC6C +fn_1_54C8 = .text:0x000054C8; // type:function size:0x450 +fn_1_5918 = .text:0x00005918; // type:function size:0xA8 +fn_1_59C0 = .text:0x000059C0; // type:function size:0x88 +fn_1_5A48 = .text:0x00005A48; // type:function size:0x494 +fn_1_5EDC = .text:0x00005EDC; // type:function size:0x5D8 +fn_1_64B4 = .text:0x000064B4; // type:function size:0x700 +fn_1_6BB4 = .text:0x00006BB4; // type:function size:0x114 +fn_1_6CC8 = .text:0x00006CC8; // type:function size:0x5C +fn_1_6D24 = .text:0x00006D24; // type:function size:0x5A0 +fn_1_72C4 = .text:0x000072C4; // type:function size:0x318 +fn_1_75DC = .text:0x000075DC; // type:function size:0x158 +fn_1_7734 = .text:0x00007734; // type:function size:0x114 +fn_1_7848 = .text:0x00007848; // type:function size:0x48 +fn_1_7890 = .text:0x00007890; // type:function size:0x3FC +fn_1_7C8C = .text:0x00007C8C; // type:function size:0x230 +fn_1_7EBC = .text:0x00007EBC; // type:function size:0x664 +fn_1_8520 = .text:0x00008520; // type:function size:0xC8 +fn_1_85E8 = .text:0x000085E8; // type:function size:0x104 +fn_1_86EC = .text:0x000086EC; // type:function size:0x4C +fn_1_8738 = .text:0x00008738; // type:function size:0x250 +fn_1_8988 = .text:0x00008988; // type:function size:0x764 +fn_1_90EC = .text:0x000090EC; // type:function size:0x10 +fn_1_90FC = .text:0x000090FC; // type:function size:0xB0 +fn_1_91AC = .text:0x000091AC; // type:function size:0x28C +fn_1_9438 = .text:0x00009438; // type:function size:0x74 +fn_1_94AC = .text:0x000094AC; // type:function size:0x50 +fn_1_94FC = .text:0x000094FC; // type:function size:0x24 +fn_1_9520 = .text:0x00009520; // type:function size:0x30 +fn_1_9550 = .text:0x00009550; // type:function size:0x1BC +fn_1_970C = .text:0x0000970C; // type:function size:0x78 +fn_1_9784 = .text:0x00009784; // type:function size:0x88 +fn_1_980C = .text:0x0000980C; // type:function size:0x164 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x10 data:4byte +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0xC data:4byte +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC data:float +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC data:float +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x4 +lbl_1_data_70 = .data:0x00000070; // type:object size:0xC +lbl_1_data_7C = .data:0x0000007C; // type:object size:0xC +lbl_1_data_88 = .data:0x00000088; // type:object size:0x24 +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x4 data:4byte +jumptable_1_data_B0 = .data:0x000000B0; // type:object size:0x30 scope:local +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x1C data:string +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x1C +lbl_1_data_118 = .data:0x00000118; // type:object size:0x8 +lbl_1_data_120 = .data:0x00000120; // type:object size:0x30 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x1A +lbl_1_data_16A = .data:0x0000016A; // type:object size:0x20 +lbl_1_data_18A = .data:0x0000018A; // type:object size:0x16 +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0xC +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0xC data:string +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x1 data:byte +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x1 data:byte +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x30 +lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x1 data:byte +lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x24 +lbl_1_data_218 = .data:0x00000218; // type:object size:0x1 data:byte +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x20 +lbl_1_data_23C = .data:0x0000023C; // type:object size:0xC +lbl_1_data_248 = .data:0x00000248; // type:object size:0x8 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x8 data:float +lbl_1_data_258 = .data:0x00000258; // type:object size:0x10 +lbl_1_data_268 = .data:0x00000268; // type:object size:0xC +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0xC data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x3C +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0xC000 data:2byte +lbl_1_bss_C05C = .bss:0x0000C05C; // type:object size:0x28 data:2byte +lbl_1_bss_C084 = .bss:0x0000C084; // type:object size:0x974 +lbl_1_bss_C9F8 = .bss:0x0000C9F8; // type:object size:0x5000 data:4byte +lbl_1_bss_119F8 = .bss:0x000119F8; // type:object size:0x4 data:4byte +lbl_1_bss_119FC = .bss:0x000119FC; // type:object size:0x271 +lbl_1_bss_11C6D = .bss:0x00011C6D; // type:object size:0x273 +lbl_1_bss_11EE0 = .bss:0x00011EE0; // type:object size:0x4 data:4byte +lbl_1_bss_11EE4 = .bss:0x00011EE4; // type:object size:0x4 data:4byte +lbl_1_bss_11EE8 = .bss:0x00011EE8; // type:object size:0x2 data:2byte +lbl_1_bss_11EEC = .bss:0x00011EEC; // type:object size:0x10 +lbl_1_bss_11EFC = .bss:0x00011EFC; // type:object size:0x4 data:4byte +lbl_1_bss_11F00 = .bss:0x00011F00; // type:object size:0x4 data:4byte +lbl_1_bss_11F04 = .bss:0x00011F04; // type:object size:0xC +lbl_1_bss_11F10 = .bss:0x00011F10; // type:object size:0x4 data:4byte +lbl_1_bss_11F14 = .bss:0x00011F14; // type:object size:0x2 data:2byte +lbl_1_bss_11F16 = .bss:0x00011F16; // type:object size:0x2 data:2byte +lbl_1_bss_11F18 = .bss:0x00011F18; // type:object size:0x2 data:2byte +lbl_1_bss_11F1A = .bss:0x00011F1A; // type:object size:0x2 data:2byte +lbl_1_bss_11F1C = .bss:0x00011F1C; // type:object size:0x2 data:2byte +lbl_1_bss_11F20 = .bss:0x00011F20; // type:object size:0x4 data:4byte +lbl_1_bss_11F24 = .bss:0x00011F24; // type:object size:0x4 data:4byte +lbl_1_bss_11F28 = .bss:0x00011F28; // type:object size:0x4 data:4byte +lbl_1_bss_11F2C = .bss:0x00011F2C; // type:object size:0x4 data:4byte +lbl_1_bss_11F30 = .bss:0x00011F30; // type:object size:0x8 data:4byte +lbl_1_bss_11F38 = .bss:0x00011F38; // type:object size:0x4 data:4byte +lbl_1_bss_11F3C = .bss:0x00011F3C; // type:object size:0x4 data:4byte +lbl_1_bss_11F40 = .bss:0x00011F40; // type:object size:0x8 data:4byte +lbl_1_bss_11F48 = .bss:0x00011F48; // type:object size:0x4 data:4byte +lbl_1_bss_11F4C = .bss:0x00011F4C; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m443Dll/splits.txt b/config/GMPJ01_00/rels/m443Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m443Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m443Dll/symbols.txt b/config/GMPJ01_00/rels/m443Dll/symbols.txt new file mode 100644 index 00000000..b5924ac6 --- /dev/null +++ b/config/GMPJ01_00/rels/m443Dll/symbols.txt @@ -0,0 +1,330 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x380 +fn_1_420 = .text:0x00000420; // type:function size:0xC4 +fn_1_4E4 = .text:0x000004E4; // type:function size:0xA0 +fn_1_584 = .text:0x00000584; // type:function size:0x14C +fn_1_6D0 = .text:0x000006D0; // type:function size:0x2E0 +fn_1_9B0 = .text:0x000009B0; // type:function size:0x330 +fn_1_CE0 = .text:0x00000CE0; // type:function size:0x1EC +fn_1_ECC = .text:0x00000ECC; // type:function size:0x3C8 +fn_1_1294 = .text:0x00001294; // type:function size:0x544 +fn_1_17D8 = .text:0x000017D8; // type:function size:0x4C0 +fn_1_1C98 = .text:0x00001C98; // type:function size:0xF4 +fn_1_1D8C = .text:0x00001D8C; // type:function size:0x704 +fn_1_2490 = .text:0x00002490; // type:function size:0x114 +fn_1_25A4 = .text:0x000025A4; // type:function size:0x834 +fn_1_2DD8 = .text:0x00002DD8; // type:function size:0x17C +fn_1_2F54 = .text:0x00002F54; // type:function size:0x36C +fn_1_32C0 = .text:0x000032C0; // type:function size:0xB0 +fn_1_3370 = .text:0x00003370; // type:function size:0x3A0 +fn_1_3710 = .text:0x00003710; // type:function size:0x60 +fn_1_3770 = .text:0x00003770; // type:function size:0x608 +fn_1_3D78 = .text:0x00003D78; // type:function size:0x270 +fn_1_3FE8 = .text:0x00003FE8; // type:function size:0x14 +fn_1_3FFC = .text:0x00003FFC; // type:function size:0x14 +fn_1_4010 = .text:0x00004010; // type:function size:0x9C +fn_1_40AC = .text:0x000040AC; // type:function size:0x9C +fn_1_4148 = .text:0x00004148; // type:function size:0x68 +fn_1_41B0 = .text:0x000041B0; // type:function size:0x6C +fn_1_421C = .text:0x0000421C; // type:function size:0x98 +fn_1_42B4 = .text:0x000042B4; // type:function size:0x18 +fn_1_42CC = .text:0x000042CC; // type:function size:0x18 +fn_1_42E4 = .text:0x000042E4; // type:function size:0x18 +fn_1_42FC = .text:0x000042FC; // type:function size:0x18 +fn_1_4314 = .text:0x00004314; // type:function size:0x54 +fn_1_4368 = .text:0x00004368; // type:function size:0x44 +fn_1_43AC = .text:0x000043AC; // type:function size:0x30 +fn_1_43DC = .text:0x000043DC; // type:function size:0x30 +fn_1_440C = .text:0x0000440C; // type:function size:0x38 +fn_1_4444 = .text:0x00004444; // type:function size:0x208 +fn_1_464C = .text:0x0000464C; // type:function size:0x240 +fn_1_488C = .text:0x0000488C; // type:function size:0x11C +fn_1_49A8 = .text:0x000049A8; // type:function size:0xB4 +fn_1_4A5C = .text:0x00004A5C; // type:function size:0x54 +fn_1_4AB0 = .text:0x00004AB0; // type:function size:0x4 +fn_1_4AB4 = .text:0x00004AB4; // type:function size:0x260 +fn_1_4D14 = .text:0x00004D14; // type:function size:0x730 +fn_1_5444 = .text:0x00005444; // type:function size:0x218 +fn_1_565C = .text:0x0000565C; // type:function size:0x24 +fn_1_5680 = .text:0x00005680; // type:function size:0x554 +fn_1_5BD4 = .text:0x00005BD4; // type:function size:0x884 +fn_1_6458 = .text:0x00006458; // type:function size:0x21C +fn_1_6674 = .text:0x00006674; // type:function size:0xDC +fn_1_6750 = .text:0x00006750; // type:function size:0x264 +fn_1_69B4 = .text:0x000069B4; // type:function size:0x1DC +fn_1_6B90 = .text:0x00006B90; // type:function size:0x218 +fn_1_6DA8 = .text:0x00006DA8; // type:function size:0x388 +fn_1_7130 = .text:0x00007130; // type:function size:0x210 +fn_1_7340 = .text:0x00007340; // type:function size:0xDF8 +fn_1_8138 = .text:0x00008138; // type:function size:0x18C +fn_1_82C4 = .text:0x000082C4; // type:function size:0x74 +fn_1_8338 = .text:0x00008338; // type:function size:0x1D0 +fn_1_8508 = .text:0x00008508; // type:function size:0x178 +fn_1_8680 = .text:0x00008680; // type:function size:0x2D8 +fn_1_8958 = .text:0x00008958; // type:function size:0x38 +fn_1_8990 = .text:0x00008990; // type:function size:0x138 +fn_1_8AC8 = .text:0x00008AC8; // type:function size:0x1A0 +fn_1_8C68 = .text:0x00008C68; // type:function size:0x24 +fn_1_8C8C = .text:0x00008C8C; // type:function size:0x74 +fn_1_8D00 = .text:0x00008D00; // type:function size:0x74 +fn_1_8D74 = .text:0x00008D74; // type:function size:0x18 +fn_1_8D8C = .text:0x00008D8C; // type:function size:0x54 +fn_1_8DE0 = .text:0x00008DE0; // type:function size:0x54 +fn_1_8E34 = .text:0x00008E34; // type:function size:0x1C8 +fn_1_8FFC = .text:0x00008FFC; // type:function size:0x5A8 +fn_1_95A4 = .text:0x000095A4; // type:function size:0x94 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x50 +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x14 data:4byte +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x10 data:4byte +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x10 data:4byte +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC data:4byte +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x34 data:4byte +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x10 data:4byte +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x40 data:4byte +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x10 data:4byte +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x10 data:4byte +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x20 data:4byte +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x14 data:string +lbl_1_data_60 = .data:0x00000060; // type:object size:0x48 +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x48 +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x18 +lbl_1_data_108 = .data:0x00000108; // type:object size:0x80 +lbl_1_data_188 = .data:0x00000188; // type:object size:0x80 +lbl_1_data_208 = .data:0x00000208; // type:object size:0x1 data:byte +lbl_1_data_20C = .data:0x0000020C; // type:object size:0x1A data:string +lbl_1_data_226 = .data:0x00000226; // type:object size:0x1A +lbl_1_data_240 = .data:0x00000240; // type:object size:0x18 +lbl_1_data_258 = .data:0x00000258; // type:object size:0x2C +lbl_1_data_284 = .data:0x00000284; // type:object size:0x40 +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x10 +lbl_1_data_2D4 = .data:0x000002D4; // type:object size:0x50 +lbl_1_data_324 = .data:0x00000324; // type:object size:0x10 +lbl_1_data_334 = .data:0x00000334; // type:object size:0x10 +lbl_1_data_344 = .data:0x00000344; // type:object size:0x10 +lbl_1_data_354 = .data:0x00000354; // type:object size:0x10 +lbl_1_data_364 = .data:0x00000364; // type:object size:0x30 +lbl_1_data_394 = .data:0x00000394; // type:object size:0x30 +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x30 +lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x5 data:string +lbl_1_data_3F9 = .data:0x000003F9; // type:object size:0x7 data:string +lbl_1_data_400 = .data:0x00000400; // type:object size:0x7 data:string +lbl_1_data_407 = .data:0x00000407; // type:object size:0x9 +lbl_1_data_410 = .data:0x00000410; // type:object size:0x58 +lbl_1_data_468 = .data:0x00000468; // type:object size:0x20 +lbl_1_data_488 = .data:0x00000488; // type:object size:0x58 +lbl_1_data_4E0 = .data:0x000004E0; // type:object size:0x10 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x3C data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x2 data:2byte +lbl_1_bss_56 = .bss:0x00000056; // type:object size:0x2 data:2byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x2 data:2byte +lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x2 data:2byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x8 data:2byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x18 +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x10 diff --git a/config/GMPJ01_00/rels/m444dll/splits.txt b/config/GMPJ01_00/rels/m444dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m444dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m444dll/symbols.txt b/config/GMPJ01_00/rels/m444dll/symbols.txt new file mode 100644 index 00000000..5cf095ae --- /dev/null +++ b/config/GMPJ01_00/rels/m444dll/symbols.txt @@ -0,0 +1,320 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x3E0 +fn_1_480 = .text:0x00000480; // type:function size:0x370C +fn_1_3B8C = .text:0x00003B8C; // type:function size:0x1270 +fn_1_4DFC = .text:0x00004DFC; // type:function size:0x7C4 +fn_1_55C0 = .text:0x000055C0; // type:function size:0x1C4 +fn_1_5784 = .text:0x00005784; // type:function size:0x6F4 +fn_1_5E78 = .text:0x00005E78; // type:function size:0x6F4 +fn_1_656C = .text:0x0000656C; // type:function size:0x824 +fn_1_6D90 = .text:0x00006D90; // type:function size:0xBC +fn_1_6E4C = .text:0x00006E4C; // type:function size:0xA0 +fn_1_6EEC = .text:0x00006EEC; // type:function size:0x3B4 +fn_1_72A0 = .text:0x000072A0; // type:function size:0xC2C +fn_1_7ECC = .text:0x00007ECC; // type:function size:0x2C4 +fn_1_8190 = .text:0x00008190; // type:function size:0x90 +fn_1_8220 = .text:0x00008220; // type:function size:0xEC +fn_1_830C = .text:0x0000830C; // type:function size:0x128 +fn_1_8434 = .text:0x00008434; // type:function size:0x1F8 +fn_1_862C = .text:0x0000862C; // type:function size:0x7B4 +fn_1_8DE0 = .text:0x00008DE0; // type:function size:0x648 +fn_1_9428 = .text:0x00009428; // type:function size:0x894 +fn_1_9CBC = .text:0x00009CBC; // type:function size:0x3B4 +fn_1_A070 = .text:0x0000A070; // type:function size:0xB70 +fn_1_ABE0 = .text:0x0000ABE0; // type:function size:0x618 +fn_1_B1F8 = .text:0x0000B1F8; // type:function size:0x102C +fn_1_C224 = .text:0x0000C224; // type:function size:0x528 +fn_1_C74C = .text:0x0000C74C; // type:function size:0x2F4 +fn_1_CA40 = .text:0x0000CA40; // type:function size:0x140 +fn_1_CB80 = .text:0x0000CB80; // type:function size:0x298 +fn_1_CE18 = .text:0x0000CE18; // type:function size:0x194 +fn_1_CFAC = .text:0x0000CFAC; // type:function size:0x244 +fn_1_D1F0 = .text:0x0000D1F0; // type:function size:0x3A8 +fn_1_D598 = .text:0x0000D598; // type:function size:0x290 +fn_1_D828 = .text:0x0000D828; // type:function size:0x138 +fn_1_D960 = .text:0x0000D960; // type:function size:0x78 +fn_1_D9D8 = .text:0x0000D9D8; // type:function size:0x2C +fn_1_DA04 = .text:0x0000DA04; // type:function size:0x42C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0xC data:4byte +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x118 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x28 +lbl_1_data_140 = .data:0x00000140; // type:object size:0x54 data:float +lbl_1_data_194 = .data:0x00000194; // type:object size:0x20 +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0xA data:string +lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0xA data:string +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xA data:string +lbl_1_data_1F6 = .data:0x000001F6; // type:object size:0xD data:string +lbl_1_data_203 = .data:0x00000203; // type:object size:0xD data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0xD data:string +lbl_1_data_21D = .data:0x0000021D; // type:object size:0xD data:string +lbl_1_data_22A = .data:0x0000022A; // type:object size:0xB data:string +lbl_1_data_235 = .data:0x00000235; // type:object size:0xB data:string +lbl_1_data_240 = .data:0x00000240; // type:object size:0x4 +lbl_1_data_244 = .data:0x00000244; // type:object size:0xA data:string +lbl_1_data_24E = .data:0x0000024E; // type:object size:0xA +lbl_1_data_258 = .data:0x00000258; // type:object size:0xC +lbl_1_data_264 = .data:0x00000264; // type:object size:0x3C +lbl_1_data_2A0 = .data:0x000002A0; // type:object size:0x28 +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0xA +lbl_1_data_2D2 = .data:0x000002D2; // type:object size:0xD data:string +lbl_1_data_2DF = .data:0x000002DF; // type:object size:0xD data:string +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xD data:string +lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0xD data:string +lbl_1_data_306 = .data:0x00000306; // type:object size:0xD data:string +lbl_1_data_313 = .data:0x00000313; // type:object size:0xD data:string +lbl_1_data_320 = .data:0x00000320; // type:object size:0xD data:string +lbl_1_data_32D = .data:0x0000032D; // type:object size:0xD data:string +lbl_1_data_33A = .data:0x0000033A; // type:object size:0xD data:string +lbl_1_data_347 = .data:0x00000347; // type:object size:0xD data:string +lbl_1_data_354 = .data:0x00000354; // type:object size:0xD data:string +lbl_1_data_361 = .data:0x00000361; // type:object size:0xD data:string +lbl_1_data_36E = .data:0x0000036E; // type:object size:0xD data:string +lbl_1_data_37B = .data:0x0000037B; // type:object size:0xD data:string +jumptable_1_data_388 = .data:0x00000388; // type:object size:0x1C scope:local +lbl_1_data_3A4 = .data:0x000003A4; // type:object size:0x8 +lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x30 +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x24 +lbl_1_data_400 = .data:0x00000400; // type:object size:0x54 +lbl_1_data_454 = .data:0x00000454; // type:object size:0xC +lbl_1_data_460 = .data:0x00000460; // type:object size:0x10 data:string +lbl_1_data_470 = .data:0x00000470; // type:object size:0x127C +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x140 data:2byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x140 data:2byte +lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x8 data:float +lbl_1_bss_290 = .bss:0x00000290; // type:object size:0x18 data:4byte +lbl_1_bss_2A8 = .bss:0x000002A8; // type:object size:0x18 data:float +lbl_1_bss_2C0 = .bss:0x000002C0; // type:object size:0x10 data:2byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x2 data:2byte +lbl_1_bss_2D2 = .bss:0x000002D2; // type:object size:0x2 data:2byte +lbl_1_bss_2D4 = .bss:0x000002D4; // type:object size:0x2 data:2byte +lbl_1_bss_2D6 = .bss:0x000002D6; // type:object size:0x2 data:2byte +lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0x2 data:2byte +lbl_1_bss_2DA = .bss:0x000002DA; // type:object size:0x2 data:2byte +lbl_1_bss_2DC = .bss:0x000002DC; // type:object size:0x2 data:2byte +lbl_1_bss_2E0 = .bss:0x000002E0; // type:object size:0x4 data:float +lbl_1_bss_2E4 = .bss:0x000002E4; // type:object size:0xC data:float +lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0xC data:4byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0xC data:4byte +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0x4 data:4byte +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0x4 data:4byte +lbl_1_bss_310 = .bss:0x00000310; // type:object size:0x1 data:byte +lbl_1_bss_312 = .bss:0x00000312; // type:object size:0x2 data:2byte +lbl_1_bss_314 = .bss:0x00000314; // type:object size:0xC data:float +lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x8 data:2byte +lbl_1_bss_328 = .bss:0x00000328; // type:object size:0x24 data:float +lbl_1_bss_34C = .bss:0x0000034C; // type:object size:0x24 data:float +lbl_1_bss_370 = .bss:0x00000370; // type:object size:0x400 +lbl_1_bss_770 = .bss:0x00000770; // type:object size:0xC data:float +lbl_1_bss_77C = .bss:0x0000077C; // type:object size:0xC data:float +lbl_1_bss_788 = .bss:0x00000788; // type:object size:0xC +lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x90 +lbl_1_bss_824 = .bss:0x00000824; // type:object size:0x3C +lbl_1_bss_860 = .bss:0x00000860; // type:object size:0x24 +lbl_1_bss_884 = .bss:0x00000884; // type:object size:0x1000 +lbl_1_bss_1884 = .bss:0x00001884; // type:object size:0x2 data:2byte +lbl_1_bss_1888 = .bss:0x00001888; // type:object size:0xC data:float +lbl_1_bss_1894 = .bss:0x00001894; // type:object size:0xC data:float +lbl_1_bss_18A0 = .bss:0x000018A0; // type:object size:0x14 +lbl_1_bss_18B4 = .bss:0x000018B4; // type:object size:0x3C +lbl_1_bss_18F0 = .bss:0x000018F0; // type:object size:0xC000 +lbl_1_bss_D8F0 = .bss:0x0000D8F0; // type:object size:0xC000 +lbl_1_bss_198F0 = .bss:0x000198F0; // type:object size:0x1A +lbl_1_bss_1990A = .bss:0x0001990A; // type:object size:0x2 data:2byte +lbl_1_bss_1990E = .bss:0x0001990E; // type:object size:0xB4 data:2byte +lbl_1_bss_199C2 = .bss:0x000199C2; // type:object size:0xB4 data:2byte diff --git a/config/GMPJ01_00/rels/m445Dll/splits.txt b/config/GMPJ01_00/rels/m445Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m445Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m445Dll/symbols.txt b/config/GMPJ01_00/rels/m445Dll/symbols.txt new file mode 100644 index 00000000..1f0a49de --- /dev/null +++ b/config/GMPJ01_00/rels/m445Dll/symbols.txt @@ -0,0 +1,173 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x418 +fn_1_4B8 = .text:0x000004B8; // type:function size:0x54 +fn_1_50C = .text:0x0000050C; // type:function size:0x4 +fn_1_510 = .text:0x00000510; // type:function size:0x10 +fn_1_520 = .text:0x00000520; // type:function size:0x30 +fn_1_550 = .text:0x00000550; // type:function size:0x1308 +fn_1_1858 = .text:0x00001858; // type:function size:0x80 +fn_1_18D8 = .text:0x000018D8; // type:function size:0x5C +fn_1_1934 = .text:0x00001934; // type:function size:0x34 +fn_1_1968 = .text:0x00001968; // type:function size:0x168 +fn_1_1AD0 = .text:0x00001AD0; // type:function size:0x3C +fn_1_1B0C = .text:0x00001B0C; // type:function size:0x158 +fn_1_1C64 = .text:0x00001C64; // type:function size:0xF90 +fn_1_2BF4 = .text:0x00002BF4; // type:function size:0xB8 +fn_1_2CAC = .text:0x00002CAC; // type:function size:0x1BC +fn_1_2E68 = .text:0x00002E68; // type:function size:0xD0 +fn_1_2F38 = .text:0x00002F38; // type:function size:0xD8 +fn_1_3010 = .text:0x00003010; // type:function size:0x84 +fn_1_3094 = .text:0x00003094; // type:function size:0x80 +fn_1_3114 = .text:0x00003114; // type:function size:0x220 +fn_1_3334 = .text:0x00003334; // type:function size:0x214 +fn_1_3548 = .text:0x00003548; // type:function size:0xD58 +fn_1_42A0 = .text:0x000042A0; // type:function size:0x104 +fn_1_43A4 = .text:0x000043A4; // type:function size:0x22C +fn_1_45D0 = .text:0x000045D0; // type:function size:0xFAC +fn_1_557C = .text:0x0000557C; // type:function size:0x74 +fn_1_55F0 = .text:0x000055F0; // type:function size:0x74 +fn_1_5664 = .text:0x00005664; // type:function size:0x9C +fn_1_5700 = .text:0x00005700; // type:function size:0xB68 +fn_1_6268 = .text:0x00006268; // type:function size:0x1D58 +fn_1_7FC0 = .text:0x00007FC0; // type:function size:0x360 +fn_1_8320 = .text:0x00008320; // type:function size:0x618 +fn_1_8938 = .text:0x00008938; // type:function size:0x80 +fn_1_89B8 = .text:0x000089B8; // type:function size:0x60 +fn_1_8A18 = .text:0x00008A18; // type:function size:0x33C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x40 +lbl_1_data_40 = .data:0x00000040; // type:object size:0x20 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x18 +lbl_1_data_78 = .data:0x00000078; // type:object size:0x18 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x40 +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x40 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x40 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x12 data:string +lbl_1_data_162 = .data:0x00000162; // type:object size:0x12 data:string +lbl_1_data_174 = .data:0x00000174; // type:object size:0x13 data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x13 data:string +lbl_1_data_19A = .data:0x0000019A; // type:object size:0x14 data:string +lbl_1_data_1AE = .data:0x000001AE; // type:object size:0x14 data:string +lbl_1_data_1C2 = .data:0x000001C2; // type:object size:0x10 data:string +lbl_1_data_1D2 = .data:0x000001D2; // type:object size:0x10 data:string +lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0x13 data:string +lbl_1_data_1F5 = .data:0x000001F5; // type:object size:0xF data:string +lbl_1_data_204 = .data:0x00000204; // type:object size:0xE data:string +lbl_1_data_212 = .data:0x00000212; // type:object size:0xE +lbl_1_data_220 = .data:0x00000220; // type:object size:0x40 +lbl_1_data_260 = .data:0x00000260; // type:object size:0x20 +lbl_1_data_280 = .data:0x00000280; // type:object size:0xF data:string +lbl_1_data_28F = .data:0x0000028F; // type:object size:0xB data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:float +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0xC data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0xC data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x28 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x230 +lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x300 data:2byte +lbl_1_bss_588 = .bss:0x00000588; // type:object size:0x13C data:4byte +lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x4 data:4byte +lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x4 data:4byte +lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0xC data:4byte +lbl_1_bss_6D8 = .bss:0x000006D8; // type:object size:0x4 data:4byte +lbl_1_bss_6DC = .bss:0x000006DC; // type:object size:0x4 data:4byte +lbl_1_bss_6E0 = .bss:0x000006E0; // type:object size:0x2 data:2byte +lbl_1_bss_6E2 = .bss:0x000006E2; // type:object size:0x2 data:2byte +lbl_1_bss_6E6 = .bss:0x000006E6; // type:object size:0x2 data:2byte diff --git a/config/GMPJ01_00/rels/m446dll/splits.txt b/config/GMPJ01_00/rels/m446dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m446dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m446dll/symbols.txt b/config/GMPJ01_00/rels/m446dll/symbols.txt new file mode 100644 index 00000000..ad45d2b5 --- /dev/null +++ b/config/GMPJ01_00/rels/m446dll/symbols.txt @@ -0,0 +1,305 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x9C +fn_1_13C = .text:0x0000013C; // type:function size:0x168 +fn_1_2A4 = .text:0x000002A4; // type:function size:0x158 +fn_1_3FC = .text:0x000003FC; // type:function size:0xB8 +fn_1_4B4 = .text:0x000004B4; // type:function size:0x88 +fn_1_53C = .text:0x0000053C; // type:function size:0x41C +fn_1_958 = .text:0x00000958; // type:function size:0x220 +fn_1_B78 = .text:0x00000B78; // type:function size:0x94 +fn_1_C0C = .text:0x00000C0C; // type:function size:0x94 +fn_1_CA0 = .text:0x00000CA0; // type:function size:0xB5C +fn_1_17FC = .text:0x000017FC; // type:function size:0x40 +fn_1_183C = .text:0x0000183C; // type:function size:0x38 +fn_1_1874 = .text:0x00001874; // type:function size:0x3C +fn_1_18B0 = .text:0x000018B0; // type:function size:0x3C +fn_1_18EC = .text:0x000018EC; // type:function size:0x84 +fn_1_1970 = .text:0x00001970; // type:function size:0x64 +fn_1_19D4 = .text:0x000019D4; // type:function size:0x290 +fn_1_1C64 = .text:0x00001C64; // type:function size:0x94 +fn_1_1CF8 = .text:0x00001CF8; // type:function size:0x38 +fn_1_1D30 = .text:0x00001D30; // type:function size:0x3C +fn_1_1D6C = .text:0x00001D6C; // type:function size:0x3C +fn_1_1DA8 = .text:0x00001DA8; // type:function size:0x34 +fn_1_1DDC = .text:0x00001DDC; // type:function size:0x10 +fn_1_1DEC = .text:0x00001DEC; // type:function size:0x8 +fn_1_1DF4 = .text:0x00001DF4; // type:function size:0x68 +fn_1_1E5C = .text:0x00001E5C; // type:function size:0x28 +fn_1_1E84 = .text:0x00001E84; // type:function size:0x44 +fn_1_1EC8 = .text:0x00001EC8; // type:function size:0x3C +fn_1_1F04 = .text:0x00001F04; // type:function size:0x34 +fn_1_1F38 = .text:0x00001F38; // type:function size:0x4C +fn_1_1F84 = .text:0x00001F84; // type:function size:0x3C +fn_1_1FC0 = .text:0x00001FC0; // type:function size:0x3C +fn_1_1FFC = .text:0x00001FFC; // type:function size:0x68 +fn_1_2064 = .text:0x00002064; // type:function size:0x18 +fn_1_207C = .text:0x0000207C; // type:function size:0x58 +fn_1_20D4 = .text:0x000020D4; // type:function size:0x338 +fn_1_240C = .text:0x0000240C; // type:function size:0x27C +fn_1_2688 = .text:0x00002688; // type:function size:0xA4 +fn_1_272C = .text:0x0000272C; // type:function size:0x68 +fn_1_2794 = .text:0x00002794; // type:function size:0x68 +fn_1_27FC = .text:0x000027FC; // type:function size:0x94 +fn_1_2890 = .text:0x00002890; // type:function size:0x98 +fn_1_2928 = .text:0x00002928; // type:function size:0x8C +fn_1_29B4 = .text:0x000029B4; // type:function size:0x68 +fn_1_2A1C = .text:0x00002A1C; // type:function size:0x3C +fn_1_2A58 = .text:0x00002A58; // type:function size:0x3C +fn_1_2A94 = .text:0x00002A94; // type:function size:0x14 +fn_1_2AA8 = .text:0x00002AA8; // type:function size:0x2EC +fn_1_2D94 = .text:0x00002D94; // type:function size:0x14 +fn_1_2DA8 = .text:0x00002DA8; // type:function size:0x118 +fn_1_2EC0 = .text:0x00002EC0; // type:function size:0xA4 +fn_1_2F64 = .text:0x00002F64; // type:function size:0x100 +fn_1_3064 = .text:0x00003064; // type:function size:0x11C +fn_1_3180 = .text:0x00003180; // type:function size:0x58 +fn_1_31D8 = .text:0x000031D8; // type:function size:0x2C8 +fn_1_34A0 = .text:0x000034A0; // type:function size:0x260 +fn_1_3700 = .text:0x00003700; // type:function size:0x154 +fn_1_3854 = .text:0x00003854; // type:function size:0x5C +fn_1_38B0 = .text:0x000038B0; // type:function size:0x30 +fn_1_38E0 = .text:0x000038E0; // type:function size:0x10 +fn_1_38F0 = .text:0x000038F0; // type:function size:0x34 +fn_1_3924 = .text:0x00003924; // type:function size:0x18 +fn_1_393C = .text:0x0000393C; // type:function size:0x58 +fn_1_3994 = .text:0x00003994; // type:function size:0x3C +fn_1_39D0 = .text:0x000039D0; // type:function size:0x17C +fn_1_3B4C = .text:0x00003B4C; // type:function size:0xA4 +fn_1_3BF0 = .text:0x00003BF0; // type:function size:0x2C4 +fn_1_3EB4 = .text:0x00003EB4; // type:function size:0x11C +fn_1_3FD0 = .text:0x00003FD0; // type:function size:0x30 +fn_1_4000 = .text:0x00004000; // type:function size:0x88 +fn_1_4088 = .text:0x00004088; // type:function size:0x624 +fn_1_46AC = .text:0x000046AC; // type:function size:0x24 +fn_1_46D0 = .text:0x000046D0; // type:function size:0x50 +fn_1_4720 = .text:0x00004720; // type:function size:0x78 +fn_1_4798 = .text:0x00004798; // type:function size:0x74 +fn_1_480C = .text:0x0000480C; // type:function size:0x18 +fn_1_4824 = .text:0x00004824; // type:function size:0x58 +fn_1_487C = .text:0x0000487C; // type:function size:0x284 +fn_1_4B00 = .text:0x00004B00; // type:function size:0x59C +fn_1_509C = .text:0x0000509C; // type:function size:0x11C +fn_1_51B8 = .text:0x000051B8; // type:function size:0x34C +fn_1_5504 = .text:0x00005504; // type:function size:0x144 +fn_1_5648 = .text:0x00005648; // type:function size:0x30 +fn_1_5678 = .text:0x00005678; // type:function size:0x4BC +fn_1_5B34 = .text:0x00005B34; // type:function size:0x14 +fn_1_5B48 = .text:0x00005B48; // type:function size:0xC8 +fn_1_5C10 = .text:0x00005C10; // type:function size:0x14 +fn_1_5C24 = .text:0x00005C24; // type:function size:0xC8 +fn_1_5CEC = .text:0x00005CEC; // type:function size:0x14 +fn_1_5D00 = .text:0x00005D00; // type:function size:0x154 +fn_1_5E54 = .text:0x00005E54; // type:function size:0x220 +fn_1_6074 = .text:0x00006074; // type:function size:0x1F0 +fn_1_6264 = .text:0x00006264; // type:function size:0x8C +fn_1_62F0 = .text:0x000062F0; // type:function size:0x8C +fn_1_637C = .text:0x0000637C; // type:function size:0x140 +fn_1_64BC = .text:0x000064BC; // type:function size:0xBC +fn_1_6578 = .text:0x00006578; // type:function size:0xA8 +fn_1_6620 = .text:0x00006620; // type:function size:0x158 +fn_1_6778 = .text:0x00006778; // type:function size:0x160 +fn_1_68D8 = .text:0x000068D8; // type:function size:0x4 +fn_1_68DC = .text:0x000068DC; // type:function size:0x5C4 +fn_1_6EA0 = .text:0x00006EA0; // type:function size:0x24 +fn_1_6EC4 = .text:0x00006EC4; // type:function size:0x24 +fn_1_6EE8 = .text:0x00006EE8; // type:function size:0x10 +fn_1_6EF8 = .text:0x00006EF8; // type:function size:0x194 +fn_1_708C = .text:0x0000708C; // type:function size:0x10 +fn_1_709C = .text:0x0000709C; // type:function size:0x244 +fn_1_72E0 = .text:0x000072E0; // type:function size:0x18 +fn_1_72F8 = .text:0x000072F8; // type:function size:0x58 +fn_1_7350 = .text:0x00007350; // type:function size:0x1A4 +fn_1_74F4 = .text:0x000074F4; // type:function size:0x1F4 +fn_1_76E8 = .text:0x000076E8; // type:function size:0xE0 +fn_1_77C8 = .text:0x000077C8; // type:function size:0xBC +fn_1_7884 = .text:0x00007884; // type:function size:0x84 +fn_1_7908 = .text:0x00007908; // type:function size:0x94 +fn_1_799C = .text:0x0000799C; // type:function size:0x9C +fn_1_7A38 = .text:0x00007A38; // type:function size:0x7C +fn_1_7AB4 = .text:0x00007AB4; // type:function size:0x13C +fn_1_7BF0 = .text:0x00007BF0; // type:function size:0x18 +fn_1_7C08 = .text:0x00007C08; // type:function size:0x58 +fn_1_7C60 = .text:0x00007C60; // type:function size:0x460 +fn_1_80C0 = .text:0x000080C0; // type:function size:0x330 +fn_1_83F0 = .text:0x000083F0; // type:function size:0xBC +fn_1_84AC = .text:0x000084AC; // type:function size:0x80 +fn_1_852C = .text:0x0000852C; // type:function size:0xE0 +fn_1_860C = .text:0x0000860C; // type:function size:0xC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x30 data:4byte +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x14 +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x14 +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x28 +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x18 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 data:float +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC +lbl_1_data_34 = .data:0x00000034; // type:object size:0x4 +lbl_1_data_38 = .data:0x00000038; // type:object size:0x18 +lbl_1_data_50 = .data:0x00000050; // type:object size:0x18 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x8 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x10 +lbl_1_data_80 = .data:0x00000080; // type:object size:0x20 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x14 +jumptable_1_data_B4 = .data:0x000000B4; // type:object size:0x30 scope:local +jumptable_1_data_E4 = .data:0x000000E4; // type:object size:0x68 scope:local +lbl_1_data_150 = .data:0x00000150; // type:object size:0xC +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x20 +jumptable_1_data_17C = .data:0x0000017C; // type:object size:0x2C scope:local +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x1F data:string +lbl_1_data_1C7 = .data:0x000001C7; // type:object size:0x21 +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x1E data:string +lbl_1_data_206 = .data:0x00000206; // type:object size:0x22 +lbl_1_data_228 = .data:0x00000228; // type:object size:0x24 +lbl_1_data_24C = .data:0x0000024C; // type:object size:0x90 +lbl_1_data_2DC = .data:0x000002DC; // type:object size:0x14 +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x1F data:string +lbl_1_data_30F = .data:0x0000030F; // type:object size:0x1F data:string +lbl_1_data_32E = .data:0x0000032E; // type:object size:0x22 +jumptable_1_data_350 = .data:0x00000350; // type:object size:0x1C scope:local +lbl_1_data_37C = .data:0x0000037C; // type:object size:0x1E data:string +lbl_1_data_39A = .data:0x0000039A; // type:object size:0x1E data:string +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x10 +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x24 +lbl_1_data_3EC = .data:0x000003EC; // type:object size:0x24 +lbl_1_data_410 = .data:0x00000410; // type:object size:0x14 +lbl_1_data_424 = .data:0x00000424; // type:object size:0x3C +lbl_1_data_460 = .data:0x00000460; // type:object size:0x54 data:byte +lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x24 +lbl_1_data_4D8 = .data:0x000004D8; // type:object size:0x1E data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:float +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0xC data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0xC data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:float +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0xC data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0xC data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:float +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0xC data:float +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0xC data:float +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x8 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m447dll/splits.txt b/config/GMPJ01_00/rels/m447dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m447dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m447dll/symbols.txt b/config/GMPJ01_00/rels/m447dll/symbols.txt new file mode 100644 index 00000000..2b4f2427 --- /dev/null +++ b/config/GMPJ01_00/rels/m447dll/symbols.txt @@ -0,0 +1,309 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x8C +fn_1_12C = .text:0x0000012C; // type:function size:0x8C +fn_1_1B8 = .text:0x000001B8; // type:function size:0x284 +fn_1_43C = .text:0x0000043C; // type:function size:0x54 +fn_1_490 = .text:0x00000490; // type:function size:0x10 +fn_1_4A0 = .text:0x000004A0; // type:function size:0x10 +fn_1_4B0 = .text:0x000004B0; // type:function size:0x94 +fn_1_544 = .text:0x00000544; // type:function size:0x264 +fn_1_7A8 = .text:0x000007A8; // type:function size:0x3B4 +fn_1_B5C = .text:0x00000B5C; // type:function size:0x3D8 +fn_1_F34 = .text:0x00000F34; // type:function size:0x134 +fn_1_1068 = .text:0x00001068; // type:function size:0x32C +fn_1_1394 = .text:0x00001394; // type:function size:0x88 +fn_1_141C = .text:0x0000141C; // type:function size:0x68 +fn_1_1484 = .text:0x00001484; // type:function size:0x2D0 +fn_1_1754 = .text:0x00001754; // type:function size:0xDC +fn_1_1830 = .text:0x00001830; // type:function size:0x54 +fn_1_1884 = .text:0x00001884; // type:function size:0x278 +fn_1_1AFC = .text:0x00001AFC; // type:function size:0xFC +fn_1_1BF8 = .text:0x00001BF8; // type:function size:0xE8 +fn_1_1CE0 = .text:0x00001CE0; // type:function size:0x54 +fn_1_1D34 = .text:0x00001D34; // type:function size:0x5C +fn_1_1D90 = .text:0x00001D90; // type:function size:0xE0 +fn_1_1E70 = .text:0x00001E70; // type:function size:0x40 +fn_1_1EB0 = .text:0x00001EB0; // type:function size:0x10 +fn_1_1EC0 = .text:0x00001EC0; // type:function size:0x14 +fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x2C +fn_1_1F00 = .text:0x00001F00; // type:function size:0x9C +fn_1_1F9C = .text:0x00001F9C; // type:function size:0x50 +fn_1_1FEC = .text:0x00001FEC; // type:function size:0x8 +fn_1_1FF4 = .text:0x00001FF4; // type:function size:0x170 +fn_1_2164 = .text:0x00002164; // type:function size:0x1B8 +fn_1_231C = .text:0x0000231C; // type:function size:0x50 +fn_1_236C = .text:0x0000236C; // type:function size:0x124 +fn_1_2490 = .text:0x00002490; // type:function size:0x4 +fn_1_2494 = .text:0x00002494; // type:function size:0x150 +fn_1_25E4 = .text:0x000025E4; // type:function size:0x11C +fn_1_2700 = .text:0x00002700; // type:function size:0x33C +fn_1_2A3C = .text:0x00002A3C; // type:function size:0x2CC +fn_1_2D08 = .text:0x00002D08; // type:function size:0xA4 +fn_1_2DAC = .text:0x00002DAC; // type:function size:0x384 +fn_1_3130 = .text:0x00003130; // type:function size:0x1B0 +fn_1_32E0 = .text:0x000032E0; // type:function size:0x2C +fn_1_330C = .text:0x0000330C; // type:function size:0xBC +fn_1_33C8 = .text:0x000033C8; // type:function size:0xBC +fn_1_3484 = .text:0x00003484; // type:function size:0x98 +fn_1_351C = .text:0x0000351C; // type:function size:0x24 +fn_1_3540 = .text:0x00003540; // type:function size:0x24 +fn_1_3564 = .text:0x00003564; // type:function size:0x718 +fn_1_3C7C = .text:0x00003C7C; // type:function size:0x22C +fn_1_3EA8 = .text:0x00003EA8; // type:function size:0xDC +fn_1_3F84 = .text:0x00003F84; // type:function size:0x40 +fn_1_3FC4 = .text:0x00003FC4; // type:function size:0x33C +fn_1_4300 = .text:0x00004300; // type:function size:0xCC +fn_1_43CC = .text:0x000043CC; // type:function size:0x10 +fn_1_43DC = .text:0x000043DC; // type:function size:0x1C +fn_1_43F8 = .text:0x000043F8; // type:function size:0x4C +fn_1_4444 = .text:0x00004444; // type:function size:0x6C +fn_1_44B0 = .text:0x000044B0; // type:function size:0xE0 +fn_1_4590 = .text:0x00004590; // type:function size:0xA8 +fn_1_4638 = .text:0x00004638; // type:function size:0x48 +fn_1_4680 = .text:0x00004680; // type:function size:0x8C +fn_1_470C = .text:0x0000470C; // type:function size:0x54 +fn_1_4760 = .text:0x00004760; // type:function size:0x4 +fn_1_4764 = .text:0x00004764; // type:function size:0x520 +fn_1_4C84 = .text:0x00004C84; // type:function size:0x2F8 +fn_1_4F7C = .text:0x00004F7C; // type:function size:0x104 +fn_1_5080 = .text:0x00005080; // type:function size:0x218 +fn_1_5298 = .text:0x00005298; // type:function size:0x288 +fn_1_5520 = .text:0x00005520; // type:function size:0x240 +fn_1_5760 = .text:0x00005760; // type:function size:0x278 +fn_1_59D8 = .text:0x000059D8; // type:function size:0x118 +fn_1_5AF0 = .text:0x00005AF0; // type:function size:0xE0 +fn_1_5BD0 = .text:0x00005BD0; // type:function size:0xA8 +fn_1_5C78 = .text:0x00005C78; // type:function size:0xAA4 +fn_1_671C = .text:0x0000671C; // type:function size:0x9A0 +fn_1_70BC = .text:0x000070BC; // type:function size:0xC0 +fn_1_717C = .text:0x0000717C; // type:function size:0x80 +fn_1_71FC = .text:0x000071FC; // type:function size:0xAC +fn_1_72A8 = .text:0x000072A8; // type:function size:0x3E0 +fn_1_7688 = .text:0x00007688; // type:function size:0x220 +fn_1_78A8 = .text:0x000078A8; // type:function size:0xDC +fn_1_7984 = .text:0x00007984; // type:function size:0xB0 +fn_1_7A34 = .text:0x00007A34; // type:function size:0x38 +fn_1_7A6C = .text:0x00007A6C; // type:function size:0x38 +fn_1_7AA4 = .text:0x00007AA4; // type:function size:0xB0 +fn_1_7B54 = .text:0x00007B54; // type:function size:0x240 +fn_1_7D94 = .text:0x00007D94; // type:function size:0x1D0 +fn_1_7F64 = .text:0x00007F64; // type:function size:0x158 +fn_1_80BC = .text:0x000080BC; // type:function size:0x6E0 +fn_1_879C = .text:0x0000879C; // type:function size:0x220 +fn_1_89BC = .text:0x000089BC; // type:function size:0x43C +fn_1_8DF8 = .text:0x00008DF8; // type:function size:0x184 +fn_1_8F7C = .text:0x00008F7C; // type:function size:0x78 +fn_1_8FF4 = .text:0x00008FF4; // type:function size:0x10 +fn_1_9004 = .text:0x00009004; // type:function size:0xF8 +fn_1_90FC = .text:0x000090FC; // type:function size:0x10 +fn_1_910C = .text:0x0000910C; // type:function size:0x4C +fn_1_9158 = .text:0x00009158; // type:function size:0x1C8 +fn_1_9320 = .text:0x00009320; // type:function size:0x54 +fn_1_9374 = .text:0x00009374; // type:function size:0x1C4 +fn_1_9538 = .text:0x00009538; // type:function size:0x4 +fn_1_953C = .text:0x0000953C; // type:function size:0x21C +fn_1_9758 = .text:0x00009758; // type:function size:0x1C4 +fn_1_991C = .text:0x0000991C; // type:function size:0x2B0 +fn_1_9BCC = .text:0x00009BCC; // type:function size:0x120 +fn_1_9CEC = .text:0x00009CEC; // type:function size:0x200 +fn_1_9EEC = .text:0x00009EEC; // type:function size:0x54 +fn_1_9F40 = .text:0x00009F40; // type:function size:0x2F0 +fn_1_A230 = .text:0x0000A230; // type:function size:0x10 +fn_1_A240 = .text:0x0000A240; // type:function size:0x34 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x64 +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC data:4byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x18 +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x18 data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x58 +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x3C +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x1 data:byte +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x144 +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x24 +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x60 +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x14 +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x20 +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x60 +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 data:double +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 data:double +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x8 data:double +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 data:double +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x50 +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x50 +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 data:float +lbl_1_rodata_69C = .rodata:0x0000069C; // type:object size:0x4 data:float +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x4 data:float +lbl_1_rodata_6A4 = .rodata:0x000006A4; // type:object size:0x4 data:float +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float +lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 data:float +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x4 data:float +lbl_1_rodata_6B4 = .rodata:0x000006B4; // type:object size:0x4 data:float +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 data:double +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x4 data:float +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x8 data:double +lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x4 data:float +lbl_1_rodata_6D4 = .rodata:0x000006D4; // type:object size:0x4 data:float +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 data:float +lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 data:float +lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 data:float +lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 data:float +lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0x8 data:double +lbl_1_rodata_6F8 = .rodata:0x000006F8; // type:object size:0x4 data:float +lbl_1_rodata_700 = .rodata:0x00000700; // type:object size:0x8 data:double +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x4 data:float +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x8 data:double +lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 data:float +lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x8 data:double +lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float +lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float +lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float +lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x1 data:byte +lbl_1_rodata_738 = .rodata:0x00000738; // type:object size:0x4 data:float +lbl_1_rodata_73C = .rodata:0x0000073C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1C +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x14 +jumptable_1_data_30 = .data:0x00000030; // type:object size:0x28 scope:local +jumptable_1_data_58 = .data:0x00000058; // type:object size:0x28 scope:local +jumptable_1_data_80 = .data:0x00000080; // type:object size:0x20 scope:local +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA8 +lbl_1_data_148 = .data:0x00000148; // type:object size:0x18 +lbl_1_data_160 = .data:0x00000160; // type:object size:0x1E data:string +lbl_1_data_17E = .data:0x0000017E; // type:object size:0x1E data:string +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x14 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x1C +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x2C +jumptable_1_data_1F8 = .data:0x000001F8; // type:object size:0x24 scope:local +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x40 +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x1C +lbl_1_data_278 = .data:0x00000278; // type:object size:0x1C +lbl_1_data_294 = .data:0x00000294; // type:object size:0x18 +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x37 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:float +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x1C data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x1C data:float +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x1C data:float +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x8 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x8 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x14 +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m448Dll/splits.txt b/config/GMPJ01_00/rels/m448Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m448Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m448Dll/symbols.txt b/config/GMPJ01_00/rels/m448Dll/symbols.txt new file mode 100644 index 00000000..68a679da --- /dev/null +++ b/config/GMPJ01_00/rels/m448Dll/symbols.txt @@ -0,0 +1,200 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x2EC +fn_1_38C = .text:0x0000038C; // type:function size:0xEC +fn_1_478 = .text:0x00000478; // type:function size:0x84 +fn_1_4FC = .text:0x000004FC; // type:function size:0xE3C +fn_1_1338 = .text:0x00001338; // type:function size:0x2FD8 +fn_1_4310 = .text:0x00004310; // type:function size:0x2A9C +fn_1_6DAC = .text:0x00006DAC; // type:function size:0x39C +fn_1_7148 = .text:0x00007148; // type:function size:0xC7C +fn_1_7DC4 = .text:0x00007DC4; // type:function size:0x3FC +fn_1_81C0 = .text:0x000081C0; // type:function size:0xC10 +fn_1_8DD0 = .text:0x00008DD0; // type:function size:0x738 +fn_1_9508 = .text:0x00009508; // type:function size:0x154 +fn_1_965C = .text:0x0000965C; // type:function size:0x4A4 +fn_1_9B00 = .text:0x00009B00; // type:function size:0x120 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x14 data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x14 data:4byte +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x14 data:4byte +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x14 data:4byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x14 data:4byte +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x10 data:4byte +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x10 data:4byte +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0xC data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x54 +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x10 data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:4byte +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x50 +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x50 +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x50 +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x24 data:4byte +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x34 data:4byte +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x24 data:4byte +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x50 +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x50 +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x18 data:4byte +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x18 data:4byte +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x8 data:4byte +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x28 data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x28 data:4byte +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0xC data:4byte +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0xC data:4byte +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x1 data:byte +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float +lbl_1_rodata_5EC = .rodata:0x000005EC; // type:object size:0x4 data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x28 +lbl_1_data_28 = .data:0x00000028; // type:object size:0x28 +lbl_1_data_50 = .data:0x00000050; // type:object size:0x2C +lbl_1_data_7C = .data:0x0000007C; // type:object size:0x2C +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xB data:byte +lbl_1_data_B3 = .data:0x000000B3; // type:object size:0xD +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x2C +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x2C data:4byte +lbl_1_data_118 = .data:0x00000118; // type:object size:0x58 +lbl_1_data_170 = .data:0x00000170; // type:object size:0x8 data:4byte +lbl_1_data_178 = .data:0x00000178; // type:object size:0x20 +lbl_1_data_198 = .data:0x00000198; // type:object size:0x2 data:2byte +lbl_1_data_19A = .data:0x0000019A; // type:object size:0x2 data:2byte +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x2 data:2byte +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x8 data:4byte +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x8 +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x8 +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x20 +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x10 data:float +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x9 data:string +lbl_1_data_1F5 = .data:0x000001F5; // type:object size:0x1B +jumptable_1_data_210 = .data:0x00000210; // type:object size:0x2C scope:local +jumptable_1_data_23C = .data:0x0000023C; // type:object size:0x20 scope:local +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x4 data:4byte +lbl_1_data_260 = .data:0x00000260; // type:object size:0x4 data:float +lbl_1_data_264 = .data:0x00000264; // type:object size:0x4 data:float +lbl_1_data_268 = .data:0x00000268; // type:object size:0x4 data:float +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x4 data:float +jumptable_1_data_270 = .data:0x00000270; // type:object size:0x24 scope:local +jumptable_1_data_294 = .data:0x00000294; // type:object size:0x20 scope:local +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x19 data:string +lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x20 +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x8 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0xD0 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x2D0 data:4byte diff --git a/config/GMPJ01_00/rels/m449Dll/splits.txt b/config/GMPJ01_00/rels/m449Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m449Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m449Dll/symbols.txt b/config/GMPJ01_00/rels/m449Dll/symbols.txt new file mode 100644 index 00000000..d2709158 --- /dev/null +++ b/config/GMPJ01_00/rels/m449Dll/symbols.txt @@ -0,0 +1,210 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x358 +fn_1_3F8 = .text:0x000003F8; // type:function size:0x360 +fn_1_758 = .text:0x00000758; // type:function size:0x5EB8 +fn_1_6610 = .text:0x00006610; // type:function size:0x8 +fn_1_6618 = .text:0x00006618; // type:function size:0x2C +fn_1_6644 = .text:0x00006644; // type:function size:0x140 +fn_1_6784 = .text:0x00006784; // type:function size:0xCC +fn_1_6850 = .text:0x00006850; // type:function size:0x958 +fn_1_71A8 = .text:0x000071A8; // type:function size:0x39C +fn_1_7544 = .text:0x00007544; // type:function size:0x988 +fn_1_7ECC = .text:0x00007ECC; // type:function size:0xC8 +fn_1_7F94 = .text:0x00007F94; // type:function size:0x5A4 +fn_1_8538 = .text:0x00008538; // type:function size:0xFC0 +fn_1_94F8 = .text:0x000094F8; // type:function size:0xE0 +fn_1_95D8 = .text:0x000095D8; // type:function size:0x460 +fn_1_9A38 = .text:0x00009A38; // type:function size:0x9C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x10 +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC0 +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0xC0 +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC0 +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x20 data:4byte +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:double +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x60 +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 data:double +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x18 data:4byte +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x30 data:4byte +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 data:double +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 data:double +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x20 data:4byte +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x8 data:4byte +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x48 +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x48 +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 data:float +lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 data:float +lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 data:float +lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 data:float +lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0xC data:4byte +lbl_1_rodata_6FC = .rodata:0x000006FC; // type:object size:0xC data:4byte +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x1 data:byte +lbl_1_rodata_70C = .rodata:0x0000070C; // type:object size:0x4 data:float +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x4 data:float +lbl_1_rodata_714 = .rodata:0x00000714; // type:object size:0x4 data:float +lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 data:float +lbl_1_rodata_71C = .rodata:0x0000071C; // type:object size:0x4 data:float +lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x4 data:float +lbl_1_rodata_724 = .rodata:0x00000724; // type:object size:0x4 data:float +lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float +lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float +lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float +lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x48 +lbl_1_data_48 = .data:0x00000048; // type:object size:0x48 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x10 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x10 +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x38 +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x50 +lbl_1_data_138 = .data:0x00000138; // type:object size:0x50 +lbl_1_data_188 = .data:0x00000188; // type:object size:0x50 +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x50 +lbl_1_data_228 = .data:0x00000228; // type:object size:0x2 data:2byte +lbl_1_data_22A = .data:0x0000022A; // type:object size:0x2 data:2byte +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x4 data:4byte +lbl_1_data_230 = .data:0x00000230; // type:object size:0xC data:4byte +lbl_1_data_23C = .data:0x0000023C; // type:object size:0x28 data:4byte +lbl_1_data_264 = .data:0x00000264; // type:object size:0x20 +lbl_1_data_284 = .data:0x00000284; // type:object size:0x4 data:4byte +lbl_1_data_288 = .data:0x00000288; // type:object size:0x4 data:float +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x4 data:float +lbl_1_data_290 = .data:0x00000290; // type:object size:0x4 data:float +lbl_1_data_294 = .data:0x00000294; // type:object size:0x4 data:float +jumptable_1_data_298 = .data:0x00000298; // type:object size:0x1C scope:local +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x19 data:string +lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x24 data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:float +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x90 data:4byte diff --git a/config/GMPJ01_00/rels/m450Dll/splits.txt b/config/GMPJ01_00/rels/m450Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m450Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m450Dll/symbols.txt b/config/GMPJ01_00/rels/m450Dll/symbols.txt new file mode 100644 index 00000000..8f6a0e14 --- /dev/null +++ b/config/GMPJ01_00/rels/m450Dll/symbols.txt @@ -0,0 +1,558 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x218 +fn_1_798 = .text:0x00000798; // type:function size:0x254 +fn_1_9EC = .text:0x000009EC; // type:function size:0x54 +fn_1_A40 = .text:0x00000A40; // type:function size:0x10C +fn_1_B4C = .text:0x00000B4C; // type:function size:0x6A8 +fn_1_11F4 = .text:0x000011F4; // type:function size:0x15C +fn_1_1350 = .text:0x00001350; // type:function size:0x8C +fn_1_13DC = .text:0x000013DC; // type:function size:0x334 +fn_1_1710 = .text:0x00001710; // type:function size:0x350 +fn_1_1A60 = .text:0x00001A60; // type:function size:0x2B8 +fn_1_1D18 = .text:0x00001D18; // type:function size:0x58 +fn_1_1D70 = .text:0x00001D70; // type:function size:0xB0 +fn_1_1E20 = .text:0x00001E20; // type:function size:0x104 +fn_1_1F24 = .text:0x00001F24; // type:function size:0x34 +fn_1_1F58 = .text:0x00001F58; // type:function size:0x6C +fn_1_1FC4 = .text:0x00001FC4; // type:function size:0x3F0 +fn_1_23B4 = .text:0x000023B4; // type:function size:0x64 +fn_1_2418 = .text:0x00002418; // type:function size:0xE0 +fn_1_24F8 = .text:0x000024F8; // type:function size:0x32C +fn_1_2824 = .text:0x00002824; // type:function size:0x3AC +fn_1_2BD0 = .text:0x00002BD0; // type:function size:0x30 +fn_1_2C00 = .text:0x00002C00; // type:function size:0x1C +fn_1_2C1C = .text:0x00002C1C; // type:function size:0x18C +fn_1_2DA8 = .text:0x00002DA8; // type:function size:0x8 +fn_1_2DB0 = .text:0x00002DB0; // type:function size:0x8 +fn_1_2DB8 = .text:0x00002DB8; // type:function size:0x8 +fn_1_2DC0 = .text:0x00002DC0; // type:function size:0x8 +fn_1_2DC8 = .text:0x00002DC8; // type:function size:0xC +fn_1_2DD4 = .text:0x00002DD4; // type:function size:0x60 +fn_1_2E34 = .text:0x00002E34; // type:function size:0xB90 +fn_1_39C4 = .text:0x000039C4; // type:function size:0x31C +fn_1_3CE0 = .text:0x00003CE0; // type:function size:0xD8 +fn_1_3DB8 = .text:0x00003DB8; // type:function size:0x114 +fn_1_3ECC = .text:0x00003ECC; // type:function size:0xB8 +fn_1_3F84 = .text:0x00003F84; // type:function size:0xA0 +fn_1_4024 = .text:0x00004024; // type:function size:0x9C +fn_1_40C0 = .text:0x000040C0; // type:function size:0xE18 +fn_1_4ED8 = .text:0x00004ED8; // type:function size:0x250 +fn_1_5128 = .text:0x00005128; // type:function size:0x10 +fn_1_5138 = .text:0x00005138; // type:function size:0x10 +fn_1_5148 = .text:0x00005148; // type:function size:0x400 +fn_1_5548 = .text:0x00005548; // type:function size:0x7C +fn_1_55C4 = .text:0x000055C4; // type:function size:0x5C +fn_1_5620 = .text:0x00005620; // type:function size:0xA4 +fn_1_56C4 = .text:0x000056C4; // type:function size:0x748 +fn_1_5E0C = .text:0x00005E0C; // type:function size:0xCC +fn_1_5ED8 = .text:0x00005ED8; // type:function size:0x658 +fn_1_6530 = .text:0x00006530; // type:function size:0x108 +fn_1_6638 = .text:0x00006638; // type:function size:0x38 +fn_1_6670 = .text:0x00006670; // type:function size:0x30 +fn_1_66A0 = .text:0x000066A0; // type:function size:0x3C +fn_1_66DC = .text:0x000066DC; // type:function size:0xBC +fn_1_6798 = .text:0x00006798; // type:function size:0x260 +fn_1_69F8 = .text:0x000069F8; // type:function size:0xD0 +fn_1_6AC8 = .text:0x00006AC8; // type:function size:0xC8 +fn_1_6B90 = .text:0x00006B90; // type:function size:0xD8 +fn_1_6C68 = .text:0x00006C68; // type:function size:0x48 +fn_1_6CB0 = .text:0x00006CB0; // type:function size:0x7C +fn_1_6D2C = .text:0x00006D2C; // type:function size:0x3C +fn_1_6D68 = .text:0x00006D68; // type:function size:0x70 +fn_1_6DD8 = .text:0x00006DD8; // type:function size:0x714 +fn_1_74EC = .text:0x000074EC; // type:function size:0x6A4 +fn_1_7B90 = .text:0x00007B90; // type:function size:0x84 +fn_1_7C14 = .text:0x00007C14; // type:function size:0x84 +fn_1_7C98 = .text:0x00007C98; // type:function size:0xA8 +fn_1_7D40 = .text:0x00007D40; // type:function size:0x3E0 +fn_1_8120 = .text:0x00008120; // type:function size:0x3E0 +fn_1_8500 = .text:0x00008500; // type:function size:0x6DC +fn_1_8BDC = .text:0x00008BDC; // type:function size:0x498 +fn_1_9074 = .text:0x00009074; // type:function size:0x64C +fn_1_96C0 = .text:0x000096C0; // type:function size:0x164 +fn_1_9824 = .text:0x00009824; // type:function size:0x380 +fn_1_9BA4 = .text:0x00009BA4; // type:function size:0x3A8 +fn_1_9F4C = .text:0x00009F4C; // type:function size:0x478 +fn_1_A3C4 = .text:0x0000A3C4; // type:function size:0xAC +fn_1_A470 = .text:0x0000A470; // type:function size:0x190 +fn_1_A600 = .text:0x0000A600; // type:function size:0x1CC +fn_1_A7CC = .text:0x0000A7CC; // type:function size:0x5C +fn_1_A828 = .text:0x0000A828; // type:function size:0x140 +fn_1_A968 = .text:0x0000A968; // type:function size:0x148 +fn_1_AAB0 = .text:0x0000AAB0; // type:function size:0xD8 +fn_1_AB88 = .text:0x0000AB88; // type:function size:0x48 +fn_1_ABD0 = .text:0x0000ABD0; // type:function size:0x188 +fn_1_AD58 = .text:0x0000AD58; // type:function size:0x2E98 +fn_1_DBF0 = .text:0x0000DBF0; // type:function size:0x4F8 +fn_1_E0E8 = .text:0x0000E0E8; // type:function size:0x90 +fn_1_E178 = .text:0x0000E178; // type:function size:0x30 +fn_1_E1A8 = .text:0x0000E1A8; // type:function size:0x114 +fn_1_E2BC = .text:0x0000E2BC; // type:function size:0x10C +fn_1_E3C8 = .text:0x0000E3C8; // type:function size:0xB0 +fn_1_E478 = .text:0x0000E478; // type:function size:0x18C +fn_1_E604 = .text:0x0000E604; // type:function size:0x314 +fn_1_E918 = .text:0x0000E918; // type:function size:0x138 +fn_1_EA50 = .text:0x0000EA50; // type:function size:0x11C +fn_1_EB6C = .text:0x0000EB6C; // type:function size:0x1E0 +fn_1_ED4C = .text:0x0000ED4C; // type:function size:0x3010 +fn_1_11D5C = .text:0x00011D5C; // type:function size:0x4D8 +fn_1_12234 = .text:0x00012234; // type:function size:0x30C +fn_1_12540 = .text:0x00012540; // type:function size:0x80 +fn_1_125C0 = .text:0x000125C0; // type:function size:0xC8 +fn_1_12688 = .text:0x00012688; // type:function size:0x294 +fn_1_1291C = .text:0x0001291C; // type:function size:0x100 +fn_1_12A1C = .text:0x00012A1C; // type:function size:0x164 +fn_1_12B80 = .text:0x00012B80; // type:function size:0x1F8 +fn_1_12D78 = .text:0x00012D78; // type:function size:0x4 +fn_1_12D7C = .text:0x00012D7C; // type:function size:0xE0 +fn_1_12E5C = .text:0x00012E5C; // type:function size:0x248 +fn_1_130A4 = .text:0x000130A4; // type:function size:0xD0 +fn_1_13174 = .text:0x00013174; // type:function size:0x3EC +fn_1_13560 = .text:0x00013560; // type:function size:0x1B4 +fn_1_13714 = .text:0x00013714; // type:function size:0x29C +fn_1_139B0 = .text:0x000139B0; // type:function size:0x19C +fn_1_13B4C = .text:0x00013B4C; // type:function size:0xC +fn_1_13B58 = .text:0x00013B58; // type:function size:0x38 +fn_1_13B90 = .text:0x00013B90; // type:function size:0x34 +fn_1_13BC4 = .text:0x00013BC4; // type:function size:0x364 +fn_1_13F28 = .text:0x00013F28; // type:function size:0x988 +fn_1_148B0 = .text:0x000148B0; // type:function size:0x110 +fn_1_149C0 = .text:0x000149C0; // type:function size:0xF8 +fn_1_14AB8 = .text:0x00014AB8; // type:function size:0x110 +fn_1_14BC8 = .text:0x00014BC8; // type:function size:0x60 +fn_1_14C28 = .text:0x00014C28; // type:function size:0xC0 +fn_1_14CE8 = .text:0x00014CE8; // type:function size:0x620 +fn_1_15308 = .text:0x00015308; // type:function size:0x840 +fn_1_15B48 = .text:0x00015B48; // type:function size:0x64 +fn_1_15BAC = .text:0x00015BAC; // type:function size:0x500 +fn_1_160AC = .text:0x000160AC; // type:function size:0x1D4 +fn_1_16280 = .text:0x00016280; // type:function size:0x94 +fn_1_16314 = .text:0x00016314; // type:function size:0x64 +fn_1_16378 = .text:0x00016378; // type:function size:0x598 +fn_1_16910 = .text:0x00016910; // type:function size:0x2B4 +fn_1_16BC4 = .text:0x00016BC4; // type:function size:0x130 +fn_1_16CF4 = .text:0x00016CF4; // type:function size:0x4D0 +fn_1_171C4 = .text:0x000171C4; // type:function size:0x19C +fn_1_17360 = .text:0x00017360; // type:function size:0x114 +fn_1_17474 = .text:0x00017474; // type:function size:0x4FC +fn_1_17970 = .text:0x00017970; // type:function size:0x24C +fn_1_17BBC = .text:0x00017BBC; // type:function size:0x868 +fn_1_18424 = .text:0x00018424; // type:function size:0x284 +fn_1_186A8 = .text:0x000186A8; // type:function size:0x888 +fn_1_18F30 = .text:0x00018F30; // type:function size:0x37C +fn_1_192AC = .text:0x000192AC; // type:function size:0xE4 +fn_1_19390 = .text:0x00019390; // type:function size:0xC0 +fn_1_19450 = .text:0x00019450; // type:function size:0x1FC +fn_1_1964C = .text:0x0001964C; // type:function size:0x14C +fn_1_19798 = .text:0x00019798; // type:function size:0x278 +fn_1_19A10 = .text:0x00019A10; // type:function size:0x208 +fn_1_19C18 = .text:0x00019C18; // type:function size:0xC8 +fn_1_19CE0 = .text:0x00019CE0; // type:function size:0x334 +fn_1_1A014 = .text:0x0001A014; // type:function size:0x4C +fn_1_1A060 = .text:0x0001A060; // type:function size:0x1BC +fn_1_1A21C = .text:0x0001A21C; // type:function size:0x1D4 +fn_1_1A3F0 = .text:0x0001A3F0; // type:function size:0x284 +_prolog = .text:0x0001A674; // type:function size:0x54 scope:global +_epilog = .text:0x0001A6C8; // type:function size:0x4C scope:global +fn_1_1A714 = .text:0x0001A714; // type:function size:0x22C +fn_1_1A940 = .text:0x0001A940; // type:function size:0x784 +fn_1_1B0C4 = .text:0x0001B0C4; // type:function size:0x94 +fn_1_1B158 = .text:0x0001B158; // type:function size:0x154 +fn_1_1B2AC = .text:0x0001B2AC; // type:function size:0x21C +fn_1_1B4C8 = .text:0x0001B4C8; // type:function size:0x48 +fn_1_1B510 = .text:0x0001B510; // type:function size:0x134 +fn_1_1B644 = .text:0x0001B644; // type:function size:0x1EC +fn_1_1B830 = .text:0x0001B830; // type:function size:0x830 +fn_1_1C060 = .text:0x0001C060; // type:function size:0x274 +fn_1_1C2D4 = .text:0x0001C2D4; // type:function size:0xC8 +fn_1_1C39C = .text:0x0001C39C; // type:function size:0x98 +fn_1_1C434 = .text:0x0001C434; // type:function size:0x2B0 +fn_1_1C6E4 = .text:0x0001C6E4; // type:function size:0x98 +fn_1_1C77C = .text:0x0001C77C; // type:function size:0x11C +fn_1_1C898 = .text:0x0001C898; // type:function size:0x18B8 +fn_1_1E150 = .text:0x0001E150; // type:function size:0x1F6C +fn_1_200BC = .text:0x000200BC; // type:function size:0xB4 +fn_1_20170 = .text:0x00020170; // type:function size:0x31C0 +fn_1_23330 = .text:0x00023330; // type:function size:0x440 +fn_1_23770 = .text:0x00023770; // type:function size:0x530 +fn_1_23CA0 = .text:0x00023CA0; // type:function size:0x980 +fn_1_24620 = .text:0x00024620; // type:function size:0x4A0C +fn_1_2902C = .text:0x0002902C; // type:function size:0x8C0 +fn_1_298EC = .text:0x000298EC; // type:function size:0xD0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x1 data:byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:4byte +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x58 +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:4byte +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x58 +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x8 data:4byte +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:4byte +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 +lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 +lbl_1_data_80 = .data:0x00000080; // type:object size:0x1F data:string +lbl_1_data_9F = .data:0x0000009F; // type:object size:0xD +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x8 +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4C +lbl_1_data_100 = .data:0x00000100; // type:object size:0x14 +lbl_1_data_114 = .data:0x00000114; // type:object size:0x3C +lbl_1_data_150 = .data:0x00000150; // type:object size:0x3C +lbl_1_data_18C = .data:0x0000018C; // type:object size:0x20 +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x20 +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x10 +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x28 +lbl_1_data_204 = .data:0x00000204; // type:object size:0x30 +lbl_1_data_234 = .data:0x00000234; // type:object size:0x20 +lbl_1_data_254 = .data:0x00000254; // type:object size:0x14 +lbl_1_data_268 = .data:0x00000268; // type:object size:0x14 +lbl_1_data_27C = .data:0x0000027C; // type:object size:0x14 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x14 +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x12 data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x13 data:string +lbl_1_data_2C9 = .data:0x000002C9; // type:object size:0x14 data:string +lbl_1_data_2DD = .data:0x000002DD; // type:object size:0x1C data:string +lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0x12 data:string +lbl_1_data_30B = .data:0x0000030B; // type:object size:0x11 +jumptable_1_data_31C = .data:0x0000031C; // type:object size:0x60 scope:local +lbl_1_data_37C = .data:0x0000037C; // type:object size:0x12 data:string +lbl_1_data_38E = .data:0x0000038E; // type:object size:0x12 data:string +lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x13 data:string +lbl_1_data_3B3 = .data:0x000003B3; // type:object size:0x14 data:string +lbl_1_data_3C7 = .data:0x000003C7; // type:object size:0x14 data:string +lbl_1_data_3DB = .data:0x000003DB; // type:object size:0x13 data:string +lbl_1_data_3EE = .data:0x000003EE; // type:object size:0x1E +jumptable_1_data_40C = .data:0x0000040C; // type:object size:0x44 scope:local +lbl_1_data_450 = .data:0x00000450; // type:object size:0x14 +lbl_1_data_464 = .data:0x00000464; // type:object size:0xC data:4byte +lbl_1_data_470 = .data:0x00000470; // type:object size:0xC +lbl_1_data_47C = .data:0x0000047C; // type:object size:0xC data:4byte +lbl_1_data_488 = .data:0x00000488; // type:object size:0xC data:4byte +lbl_1_data_494 = .data:0x00000494; // type:object size:0xC data:4byte +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0xC data:4byte +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0xC data:4byte +lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0xC data:4byte +lbl_1_data_4C4 = .data:0x000004C4; // type:object size:0xC data:4byte +lbl_1_data_4D0 = .data:0x000004D0; // type:object size:0xC data:4byte +lbl_1_data_4DC = .data:0x000004DC; // type:object size:0xC data:4byte +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0xC +lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0xC +lbl_1_data_500 = .data:0x00000500; // type:object size:0x4 +lbl_1_data_504 = .data:0x00000504; // type:object size:0xC +lbl_1_data_510 = .data:0x00000510; // type:object size:0xC +lbl_1_data_51C = .data:0x0000051C; // type:object size:0x30 +lbl_1_data_54C = .data:0x0000054C; // type:object size:0x10 data:string +lbl_1_data_55C = .data:0x0000055C; // type:object size:0x10 data:string +lbl_1_data_56C = .data:0x0000056C; // type:object size:0x10 data:string +lbl_1_data_57C = .data:0x0000057C; // type:object size:0x10 data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x10 data:string +lbl_1_data_59C = .data:0x0000059C; // type:object size:0x10 data:string +lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x10 data:string +lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x10 data:string +lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x80 +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x2E0 +lbl_1_data_92C = .data:0x0000092C; // type:object size:0x20 +lbl_1_data_94C = .data:0x0000094C; // type:object size:0xA0 +lbl_1_data_9EC = .data:0x000009EC; // type:object size:0x20 +lbl_1_data_A0C = .data:0x00000A0C; // type:object size:0x38 data:4byte +lbl_1_data_A44 = .data:0x00000A44; // type:object size:0x13 data:string +lbl_1_data_A57 = .data:0x00000A57; // type:object size:0x13 data:string +lbl_1_data_A6A = .data:0x00000A6A; // type:object size:0x16 +lbl_1_data_A80 = .data:0x00000A80; // type:object size:0x18C +lbl_1_data_C0C = .data:0x00000C0C; // type:object size:0x13 data:string +lbl_1_data_C1F = .data:0x00000C1F; // type:object size:0x13 data:string +lbl_1_data_C32 = .data:0x00000C32; // type:object size:0x13 data:string +lbl_1_data_C45 = .data:0x00000C45; // type:object size:0x13 data:string +lbl_1_data_C58 = .data:0x00000C58; // type:object size:0x1B8 +lbl_1_data_E10 = .data:0x00000E10; // type:object size:0x11 data:string +lbl_1_data_E21 = .data:0x00000E21; // type:object size:0x11 data:string +lbl_1_data_E32 = .data:0x00000E32; // type:object size:0x11 data:string +lbl_1_data_E43 = .data:0x00000E43; // type:object size:0x11 data:string +lbl_1_data_E54 = .data:0x00000E54; // type:object size:0x14 +lbl_1_data_E68 = .data:0x00000E68; // type:object size:0x14 +lbl_1_data_E7C = .data:0x00000E7C; // type:object size:0x84 +lbl_1_data_F00 = .data:0x00000F00; // type:object size:0x5C +lbl_1_data_F5C = .data:0x00000F5C; // type:object size:0x10 +lbl_1_data_F6C = .data:0x00000F6C; // type:object size:0x18 +lbl_1_data_F84 = .data:0x00000F84; // type:object size:0x14 +lbl_1_data_F98 = .data:0x00000F98; // type:object size:0x14 +lbl_1_data_FAC = .data:0x00000FAC; // type:object size:0x18 +lbl_1_data_FC4 = .data:0x00000FC4; // type:object size:0x14 +lbl_1_data_FD8 = .data:0x00000FD8; // type:object size:0x14 +lbl_1_data_FEC = .data:0x00000FEC; // type:object size:0x14 +lbl_1_data_1000 = .data:0x00001000; // type:object size:0x14 +lbl_1_data_1014 = .data:0x00001014; // type:object size:0x28 +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x28 +lbl_1_data_1064 = .data:0x00001064; // type:object size:0x28 +lbl_1_data_108C = .data:0x0000108C; // type:object size:0x28 +lbl_1_data_10B4 = .data:0x000010B4; // type:object size:0x28 +lbl_1_data_10DC = .data:0x000010DC; // type:object size:0x28 +lbl_1_data_1104 = .data:0x00001104; // type:object size:0x28 +lbl_1_data_112C = .data:0x0000112C; // type:object size:0x28 +lbl_1_data_1154 = .data:0x00001154; // type:object size:0x28 +lbl_1_data_117C = .data:0x0000117C; // type:object size:0x28 +lbl_1_data_11A4 = .data:0x000011A4; // type:object size:0x28 +lbl_1_data_11CC = .data:0x000011CC; // type:object size:0x28 +lbl_1_data_11F4 = .data:0x000011F4; // type:object size:0x10 +lbl_1_data_1204 = .data:0x00001204; // type:object size:0xC +lbl_1_data_1210 = .data:0x00001210; // type:object size:0xC +lbl_1_data_121C = .data:0x0000121C; // type:object size:0xC +lbl_1_data_1228 = .data:0x00001228; // type:object size:0xC +lbl_1_data_1234 = .data:0x00001234; // type:object size:0x20 +lbl_1_data_1254 = .data:0x00001254; // type:object size:0x13 data:string +lbl_1_data_1267 = .data:0x00001267; // type:object size:0x13 data:string +lbl_1_data_127A = .data:0x0000127A; // type:object size:0x13 data:string +lbl_1_data_128D = .data:0x0000128D; // type:object size:0x13 data:string +lbl_1_data_12A0 = .data:0x000012A0; // type:object size:0x10 +lbl_1_data_12B0 = .data:0x000012B0; // type:object size:0x13 data:string +lbl_1_data_12C3 = .data:0x000012C3; // type:object size:0x13 data:string +lbl_1_data_12D6 = .data:0x000012D6; // type:object size:0x13 data:string +lbl_1_data_12E9 = .data:0x000012E9; // type:object size:0x13 data:string +lbl_1_data_12FC = .data:0x000012FC; // type:object size:0x13 data:string +lbl_1_data_130F = .data:0x0000130F; // type:object size:0x13 data:string +lbl_1_data_1322 = .data:0x00001322; // type:object size:0x13 data:string +lbl_1_data_1335 = .data:0x00001335; // type:object size:0x13 data:string +lbl_1_data_1348 = .data:0x00001348; // type:object size:0x14 +lbl_1_data_135C = .data:0x0000135C; // type:object size:0x24 +lbl_1_data_1380 = .data:0x00001380; // type:object size:0x38 data:4byte +lbl_1_data_13B8 = .data:0x000013B8; // type:object size:0x38 data:4byte +lbl_1_data_13F0 = .data:0x000013F0; // type:object size:0x13 data:string +lbl_1_data_1403 = .data:0x00001403; // type:object size:0x13 data:string +lbl_1_data_1416 = .data:0x00001416; // type:object size:0x13 data:string +lbl_1_data_1429 = .data:0x00001429; // type:object size:0x13 data:string +lbl_1_data_143C = .data:0x0000143C; // type:object size:0x14 +lbl_1_data_1450 = .data:0x00001450; // type:object size:0xB4 +lbl_1_data_1504 = .data:0x00001504; // type:object size:0x50 +lbl_1_data_1554 = .data:0x00001554; // type:object size:0x13 data:string +lbl_1_data_1567 = .data:0x00001567; // type:object size:0x13 data:string +lbl_1_data_157A = .data:0x0000157A; // type:object size:0x13 data:string +lbl_1_data_158D = .data:0x0000158D; // type:object size:0x13 data:string +lbl_1_data_15A0 = .data:0x000015A0; // type:object size:0x13 data:string +lbl_1_data_15B3 = .data:0x000015B3; // type:object size:0x12 data:string +lbl_1_data_15C5 = .data:0x000015C5; // type:object size:0x25 data:string +lbl_1_data_15EA = .data:0x000015EA; // type:object size:0x22 data:string +lbl_1_data_160C = .data:0x0000160C; // type:object size:0x9 data:string +lbl_1_data_1615 = .data:0x00001615; // type:object size:0xA data:string +lbl_1_data_161F = .data:0x0000161F; // type:object size:0xE data:string +lbl_1_data_162D = .data:0x0000162D; // type:object size:0x6 data:string +lbl_1_data_1633 = .data:0x00001633; // type:object size:0x1D data:string +jumptable_1_data_1650 = .data:0x00001650; // type:object size:0x70 scope:local +lbl_1_data_16C0 = .data:0x000016C0; // type:object size:0x1C +jumptable_1_data_16DC = .data:0x000016DC; // type:object size:0xC4 scope:local +lbl_1_data_17A0 = .data:0x000017A0; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 data:2byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x18 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x3C data:float +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x30 +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0xC data:4byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:float +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0xC data:float +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x8 +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x4 +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x4 +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0xC data:4byte +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x4 data:4byte +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte +lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:4byte +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:4byte +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x4 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:4byte +lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x4 data:float +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x8 data:float +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x4 data:4byte +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte +lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x4 data:4byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x4 data:4byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x5C data:4byte +lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 data:4byte +lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x4 data:float +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 data:4byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x100 +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x40 data:4byte +lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0x4 data:float +lbl_1_bss_2F4 = .bss:0x000002F4; // type:object size:0x4 data:4byte +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x4 data:4byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0x2 data:2byte +lbl_1_bss_2FE = .bss:0x000002FE; // type:object size:0x2 data:2byte +lbl_1_bss_300 = .bss:0x00000300; // type:object size:0x4 data:4byte +lbl_1_bss_304 = .bss:0x00000304; // type:object size:0x4 data:4byte +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0x4 data:4byte +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0xC data:4byte +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0xC data:4byte +lbl_1_bss_324 = .bss:0x00000324; // type:object size:0xC data:4byte +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0xC data:4byte +lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x4 data:4byte +lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x18 data:4byte +lbl_1_bss_358 = .bss:0x00000358; // type:object size:0xC data:4byte diff --git a/config/GMPJ01_00/rels/m451Dll/splits.txt b/config/GMPJ01_00/rels/m451Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m451Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m451Dll/symbols.txt b/config/GMPJ01_00/rels/m451Dll/symbols.txt new file mode 100644 index 00000000..2bbf42af --- /dev/null +++ b/config/GMPJ01_00/rels/m451Dll/symbols.txt @@ -0,0 +1,217 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x71C +fn_1_7BC = .text:0x000007BC; // type:function size:0x9C +fn_1_858 = .text:0x00000858; // type:function size:0xC0 +fn_1_918 = .text:0x00000918; // type:function size:0x214 +fn_1_B2C = .text:0x00000B2C; // type:function size:0x1038 +fn_1_1B64 = .text:0x00001B64; // type:function size:0x598 +fn_1_20FC = .text:0x000020FC; // type:function size:0xB8 +fn_1_21B4 = .text:0x000021B4; // type:function size:0xC0 +fn_1_2274 = .text:0x00002274; // type:function size:0x6C +fn_1_22E0 = .text:0x000022E0; // type:function size:0x35C +fn_1_263C = .text:0x0000263C; // type:function size:0x3F8 +fn_1_2A34 = .text:0x00002A34; // type:function size:0x21C +fn_1_2C50 = .text:0x00002C50; // type:function size:0x2B8 +fn_1_2F08 = .text:0x00002F08; // type:function size:0xE4 +fn_1_2FEC = .text:0x00002FEC; // type:function size:0xC4 +fn_1_30B0 = .text:0x000030B0; // type:function size:0xA4 +fn_1_3154 = .text:0x00003154; // type:function size:0x670 +fn_1_37C4 = .text:0x000037C4; // type:function size:0xFA4 +fn_1_4768 = .text:0x00004768; // type:function size:0xFC +fn_1_4864 = .text:0x00004864; // type:function size:0x60 +fn_1_48C4 = .text:0x000048C4; // type:function size:0x8F4 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC +lbl_1_data_78 = .data:0x00000078; // type:object size:0xC +lbl_1_data_84 = .data:0x00000084; // type:object size:0xB data:string +lbl_1_data_8F = .data:0x0000008F; // type:object size:0xB data:string +lbl_1_data_9A = .data:0x0000009A; // type:object size:0xB data:string +lbl_1_data_A5 = .data:0x000000A5; // type:object size:0xB data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0xB data:string +lbl_1_data_BB = .data:0x000000BB; // type:object size:0xB data:string +lbl_1_data_C6 = .data:0x000000C6; // type:object size:0xB data:string +lbl_1_data_D1 = .data:0x000000D1; // type:object size:0xB data:string +lbl_1_data_DC = .data:0x000000DC; // type:object size:0xB data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0xB data:string +lbl_1_data_F2 = .data:0x000000F2; // type:object size:0xB data:string +lbl_1_data_FD = .data:0x000000FD; // type:object size:0xB data:string +lbl_1_data_108 = .data:0x00000108; // type:object size:0xB data:string +lbl_1_data_113 = .data:0x00000113; // type:object size:0xB data:string +lbl_1_data_11E = .data:0x0000011E; // type:object size:0xB data:string +lbl_1_data_129 = .data:0x00000129; // type:object size:0xB data:string +lbl_1_data_134 = .data:0x00000134; // type:object size:0xB data:string +lbl_1_data_13F = .data:0x0000013F; // type:object size:0xB data:string +lbl_1_data_14A = .data:0x0000014A; // type:object size:0xB data:string +lbl_1_data_155 = .data:0x00000155; // type:object size:0xB data:string +lbl_1_data_160 = .data:0x00000160; // type:object size:0xB data:string +lbl_1_data_16B = .data:0x0000016B; // type:object size:0xB data:string +lbl_1_data_176 = .data:0x00000176; // type:object size:0xB data:string +lbl_1_data_181 = .data:0x00000181; // type:object size:0xB data:string +lbl_1_data_18C = .data:0x0000018C; // type:object size:0xB data:string +lbl_1_data_197 = .data:0x00000197; // type:object size:0xB data:string +lbl_1_data_1A2 = .data:0x000001A2; // type:object size:0xB data:string +lbl_1_data_1AD = .data:0x000001AD; // type:object size:0xB data:string +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0xB data:string +lbl_1_data_1C3 = .data:0x000001C3; // type:object size:0xB data:string +lbl_1_data_1CE = .data:0x000001CE; // type:object size:0xB data:string +lbl_1_data_1D9 = .data:0x000001D9; // type:object size:0xB data:string +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0xB data:string +lbl_1_data_1EF = .data:0x000001EF; // type:object size:0xB data:string +lbl_1_data_1FA = .data:0x000001FA; // type:object size:0xB data:string +lbl_1_data_205 = .data:0x00000205; // type:object size:0xB data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0xB data:string +lbl_1_data_21B = .data:0x0000021B; // type:object size:0xB data:string +lbl_1_data_226 = .data:0x00000226; // type:object size:0xB data:string +lbl_1_data_231 = .data:0x00000231; // type:object size:0xB data:string +lbl_1_data_23C = .data:0x0000023C; // type:object size:0xB data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0xB data:string +lbl_1_data_252 = .data:0x00000252; // type:object size:0xB data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0xB data:string +lbl_1_data_268 = .data:0x00000268; // type:object size:0xB data:string +lbl_1_data_273 = .data:0x00000273; // type:object size:0xB data:string +lbl_1_data_27E = .data:0x0000027E; // type:object size:0xB data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0xB data:string +lbl_1_data_294 = .data:0x00000294; // type:object size:0xB data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0xB data:string +lbl_1_data_2AA = .data:0x000002AA; // type:object size:0xB data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0xB data:string +lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0xB data:string +lbl_1_data_2CB = .data:0x000002CB; // type:object size:0xB data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0xB data:string +lbl_1_data_2E1 = .data:0x000002E1; // type:object size:0xB data:string +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xB data:string +lbl_1_data_2F7 = .data:0x000002F7; // type:object size:0xB data:string +lbl_1_data_302 = .data:0x00000302; // type:object size:0xB data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0xB data:string +lbl_1_data_318 = .data:0x00000318; // type:object size:0xB data:string +lbl_1_data_323 = .data:0x00000323; // type:object size:0xB data:string +lbl_1_data_32E = .data:0x0000032E; // type:object size:0xB data:string +lbl_1_data_339 = .data:0x00000339; // type:object size:0xB data:string +lbl_1_data_344 = .data:0x00000344; // type:object size:0xB data:string +lbl_1_data_34F = .data:0x0000034F; // type:object size:0xB data:string +lbl_1_data_35A = .data:0x0000035A; // type:object size:0xB data:string +lbl_1_data_365 = .data:0x00000365; // type:object size:0xB data:string +lbl_1_data_370 = .data:0x00000370; // type:object size:0xB data:string +lbl_1_data_37B = .data:0x0000037B; // type:object size:0xB data:string +lbl_1_data_386 = .data:0x00000386; // type:object size:0xB data:string +lbl_1_data_391 = .data:0x00000391; // type:object size:0xB data:string +lbl_1_data_39C = .data:0x0000039C; // type:object size:0xB data:string +lbl_1_data_3A7 = .data:0x000003A7; // type:object size:0xB data:string +lbl_1_data_3B2 = .data:0x000003B2; // type:object size:0xB data:string +lbl_1_data_3BD = .data:0x000003BD; // type:object size:0xB data:string +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0xB data:string +lbl_1_data_3D3 = .data:0x000003D3; // type:object size:0xB data:string +lbl_1_data_3DE = .data:0x000003DE; // type:object size:0xB data:string +lbl_1_data_3E9 = .data:0x000003E9; // type:object size:0xB data:string +lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0xB data:string +lbl_1_data_3FF = .data:0x000003FF; // type:object size:0xB data:string +lbl_1_data_40A = .data:0x0000040A; // type:object size:0xB data:string +lbl_1_data_415 = .data:0x00000415; // type:object size:0xB data:string +lbl_1_data_420 = .data:0x00000420; // type:object size:0xB data:string +lbl_1_data_42B = .data:0x0000042B; // type:object size:0xB data:string +lbl_1_data_436 = .data:0x00000436; // type:object size:0xB data:string +lbl_1_data_441 = .data:0x00000441; // type:object size:0xB data:string +lbl_1_data_44C = .data:0x0000044C; // type:object size:0xB data:string +lbl_1_data_457 = .data:0x00000457; // type:object size:0xD +lbl_1_data_464 = .data:0x00000464; // type:object size:0x264 +lbl_1_data_6C8 = .data:0x000006C8; // type:object size:0xC +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x78 data:float +lbl_1_data_74C = .data:0x0000074C; // type:object size:0xC +lbl_1_data_758 = .data:0x00000758; // type:object size:0xC +lbl_1_data_764 = .data:0x00000764; // type:object size:0xC data:string +lbl_1_data_770 = .data:0x00000770; // type:object size:0xC data:string +lbl_1_data_77C = .data:0x0000077C; // type:object size:0x7 data:string +lbl_1_data_783 = .data:0x00000783; // type:object size:0x8 data:string +lbl_1_data_78B = .data:0x0000078B; // type:object size:0x8 data:string +lbl_1_data_793 = .data:0x00000793; // type:object size:0x8 data:string +lbl_1_data_79B = .data:0x0000079B; // type:object size:0xB data:string +lbl_1_data_7A6 = .data:0x000007A6; // type:object size:0xF data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x340 data:4byte +lbl_1_bss_348 = .bss:0x00000348; // type:object size:0x810 data:float +lbl_1_bss_B58 = .bss:0x00000B58; // type:object size:0x4 data:4byte +lbl_1_bss_B5C = .bss:0x00000B5C; // type:object size:0x4 data:4byte +lbl_1_bss_B60 = .bss:0x00000B60; // type:object size:0x4 data:4byte +lbl_1_bss_B64 = .bss:0x00000B64; // type:object size:0xA0 data:4byte +lbl_1_bss_C04 = .bss:0x00000C04; // type:object size:0xA0 data:4byte +lbl_1_bss_CA4 = .bss:0x00000CA4; // type:object size:0x4 data:4byte +lbl_1_bss_CA8 = .bss:0x00000CA8; // type:object size:0x6 +lbl_1_bss_CAE = .bss:0x00000CAE; // type:object size:0x6 data:2byte +lbl_1_bss_CB4 = .bss:0x00000CB4; // type:object size:0x2 data:2byte diff --git a/config/GMPJ01_00/rels/m453Dll/splits.txt b/config/GMPJ01_00/rels/m453Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m453Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m453Dll/symbols.txt b/config/GMPJ01_00/rels/m453Dll/symbols.txt new file mode 100644 index 00000000..fcb400ae --- /dev/null +++ b/config/GMPJ01_00/rels/m453Dll/symbols.txt @@ -0,0 +1,279 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x3A0 +fn_1_440 = .text:0x00000440; // type:function size:0x20 +fn_1_460 = .text:0x00000460; // type:function size:0x3E8 +fn_1_848 = .text:0x00000848; // type:function size:0x7B4 +fn_1_FFC = .text:0x00000FFC; // type:function size:0x60 +fn_1_105C = .text:0x0000105C; // type:function size:0x1EC +fn_1_1248 = .text:0x00001248; // type:function size:0x2B0 +fn_1_14F8 = .text:0x000014F8; // type:function size:0x104 +fn_1_15FC = .text:0x000015FC; // type:function size:0x274 +fn_1_1870 = .text:0x00001870; // type:function size:0xA0 +fn_1_1910 = .text:0x00001910; // type:function size:0x2B8 +fn_1_1BC8 = .text:0x00001BC8; // type:function size:0x28 +fn_1_1BF0 = .text:0x00001BF0; // type:function size:0x3B0 +fn_1_1FA0 = .text:0x00001FA0; // type:function size:0x14C +fn_1_20EC = .text:0x000020EC; // type:function size:0x2F4 +fn_1_23E0 = .text:0x000023E0; // type:function size:0xA44 +fn_1_2E24 = .text:0x00002E24; // type:function size:0x824 +fn_1_3648 = .text:0x00003648; // type:function size:0x94 +fn_1_36DC = .text:0x000036DC; // type:function size:0x2EC +fn_1_39C8 = .text:0x000039C8; // type:function size:0x1EC +fn_1_3BB4 = .text:0x00003BB4; // type:function size:0xE0 +fn_1_3C94 = .text:0x00003C94; // type:function size:0x208 +fn_1_3E9C = .text:0x00003E9C; // type:function size:0x9C +fn_1_3F38 = .text:0x00003F38; // type:function size:0x480 +fn_1_43B8 = .text:0x000043B8; // type:function size:0x54 +fn_1_440C = .text:0x0000440C; // type:function size:0x168 +fn_1_4574 = .text:0x00004574; // type:function size:0x120 +fn_1_4694 = .text:0x00004694; // type:function size:0x30C +fn_1_49A0 = .text:0x000049A0; // type:function size:0x78 +fn_1_4A18 = .text:0x00004A18; // type:function size:0x11C +fn_1_4B34 = .text:0x00004B34; // type:function size:0x78 +fn_1_4BAC = .text:0x00004BAC; // type:function size:0x2D8 +fn_1_4E84 = .text:0x00004E84; // type:function size:0x2B8 +fn_1_513C = .text:0x0000513C; // type:function size:0x154 +fn_1_5290 = .text:0x00005290; // type:function size:0x3E0 +fn_1_5670 = .text:0x00005670; // type:function size:0x214 +fn_1_5884 = .text:0x00005884; // type:function size:0x198 +fn_1_5A1C = .text:0x00005A1C; // type:function size:0xD8 +fn_1_5AF4 = .text:0x00005AF4; // type:function size:0xBC +fn_1_5BB0 = .text:0x00005BB0; // type:function size:0x33C +fn_1_5EEC = .text:0x00005EEC; // type:function size:0x4B0 +fn_1_639C = .text:0x0000639C; // type:function size:0x10 +fn_1_63AC = .text:0x000063AC; // type:function size:0x9C +fn_1_6448 = .text:0x00006448; // type:function size:0xA0 +fn_1_64E8 = .text:0x000064E8; // type:function size:0x260 +fn_1_6748 = .text:0x00006748; // type:function size:0x20 +fn_1_6768 = .text:0x00006768; // type:function size:0x84 +fn_1_67EC = .text:0x000067EC; // type:function size:0x4 +fn_1_67F0 = .text:0x000067F0; // type:function size:0x16C +fn_1_695C = .text:0x0000695C; // type:function size:0x318 +fn_1_6C74 = .text:0x00006C74; // type:function size:0x240 +fn_1_6EB4 = .text:0x00006EB4; // type:function size:0x110 +fn_1_6FC4 = .text:0x00006FC4; // type:function size:0x400 +fn_1_73C4 = .text:0x000073C4; // type:function size:0x5B4 +fn_1_7978 = .text:0x00007978; // type:function size:0xFC +fn_1_7A74 = .text:0x00007A74; // type:function size:0x88 +fn_1_7AFC = .text:0x00007AFC; // type:function size:0xB4 +fn_1_7BB0 = .text:0x00007BB0; // type:function size:0x4C +fn_1_7BFC = .text:0x00007BFC; // type:function size:0x10 +fn_1_7C0C = .text:0x00007C0C; // type:function size:0x20 +fn_1_7C2C = .text:0x00007C2C; // type:function size:0x10 +fn_1_7C3C = .text:0x00007C3C; // type:function size:0xA4 +fn_1_7CE0 = .text:0x00007CE0; // type:function size:0x274 +fn_1_7F54 = .text:0x00007F54; // type:function size:0x15C +fn_1_80B0 = .text:0x000080B0; // type:function size:0x180 +fn_1_8230 = .text:0x00008230; // type:function size:0x10 +fn_1_8240 = .text:0x00008240; // type:function size:0x10 +fn_1_8250 = .text:0x00008250; // type:function size:0x5C +fn_1_82AC = .text:0x000082AC; // type:function size:0x1A0 +fn_1_844C = .text:0x0000844C; // type:function size:0x200 +fn_1_864C = .text:0x0000864C; // type:function size:0x30 +fn_1_867C = .text:0x0000867C; // type:function size:0x8CC +fn_1_8F48 = .text:0x00008F48; // type:function size:0x290 +fn_1_91D8 = .text:0x000091D8; // type:function size:0x74 +fn_1_924C = .text:0x0000924C; // type:function size:0x50 +fn_1_929C = .text:0x0000929C; // type:function size:0x24 +fn_1_92C0 = .text:0x000092C0; // type:function size:0x30 +fn_1_92F0 = .text:0x000092F0; // type:function size:0x11C +fn_1_940C = .text:0x0000940C; // type:function size:0x78 +fn_1_9484 = .text:0x00009484; // type:function size:0x8C +fn_1_9510 = .text:0x00009510; // type:function size:0x164 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x9 data:byte +lbl_1_rodata_8D = .rodata:0x0000008D; // type:object size:0xB data:byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0xC +lbl_1_data_10 = .data:0x00000010; // type:object size:0xC +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x28 +lbl_1_data_44 = .data:0x00000044; // type:object size:0x24 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x24 data:4byte +jumptable_1_data_8C = .data:0x0000008C; // type:object size:0x1C scope:local +jumptable_1_data_A8 = .data:0x000000A8; // type:object size:0x1C scope:local +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x20 +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x30 +lbl_1_data_114 = .data:0x00000114; // type:object size:0x20 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x20 +lbl_1_data_154 = .data:0x00000154; // type:object size:0x4 data:4byte +lbl_1_data_158 = .data:0x00000158; // type:object size:0xC0 +lbl_1_data_218 = .data:0x00000218; // type:object size:0xC0 +lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x78 +lbl_1_data_350 = .data:0x00000350; // type:object size:0x78 +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0xC0 +lbl_1_data_488 = .data:0x00000488; // type:object size:0xC0 +lbl_1_data_548 = .data:0x00000548; // type:object size:0x78 +lbl_1_data_5C0 = .data:0x000005C0; // type:object size:0x78 +lbl_1_data_638 = .data:0x00000638; // type:object size:0x108 +lbl_1_data_740 = .data:0x00000740; // type:object size:0x108 +lbl_1_data_848 = .data:0x00000848; // type:object size:0x108 +lbl_1_data_950 = .data:0x00000950; // type:object size:0x108 +lbl_1_data_A58 = .data:0x00000A58; // type:object size:0x30 +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x48 +lbl_1_data_AD0 = .data:0x00000AD0; // type:object size:0xC data:4byte +lbl_1_data_ADC = .data:0x00000ADC; // type:object size:0xC data:4byte +lbl_1_data_AE8 = .data:0x00000AE8; // type:object size:0x14 data:4byte +lbl_1_data_AFC = .data:0x00000AFC; // type:object size:0x18 +lbl_1_data_B14 = .data:0x00000B14; // type:object size:0x18 +lbl_1_data_B2C = .data:0x00000B2C; // type:object size:0x48 +lbl_1_data_B74 = .data:0x00000B74; // type:object size:0x30 +lbl_1_data_BA4 = .data:0x00000BA4; // type:object size:0x1C +lbl_1_data_BC0 = .data:0x00000BC0; // type:object size:0xC +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x6 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x2 data:2byte +lbl_1_bss_1E = .bss:0x0000001E; // type:object size:0x14 data:2byte +lbl_1_bss_32 = .bss:0x00000032; // type:object size:0x2 data:2byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte +lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x2 data:2byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x2 data:2byte +lbl_1_bss_3A = .bss:0x0000003A; // type:object size:0x2 data:2byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x10 +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x18 +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:float +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x14 +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:4byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m455Dll/splits.txt b/config/GMPJ01_00/rels/m455Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m455Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m455Dll/symbols.txt b/config/GMPJ01_00/rels/m455Dll/symbols.txt new file mode 100644 index 00000000..cd750911 --- /dev/null +++ b/config/GMPJ01_00/rels/m455Dll/symbols.txt @@ -0,0 +1,290 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x270 +fn_1_310 = .text:0x00000310; // type:function size:0x10 +fn_1_320 = .text:0x00000320; // type:function size:0x10 +fn_1_330 = .text:0x00000330; // type:function size:0x148 +fn_1_478 = .text:0x00000478; // type:function size:0x6C0 +fn_1_B38 = .text:0x00000B38; // type:function size:0x5C +fn_1_B94 = .text:0x00000B94; // type:function size:0x94 +fn_1_C28 = .text:0x00000C28; // type:function size:0x68 +fn_1_C90 = .text:0x00000C90; // type:function size:0x84 +fn_1_D14 = .text:0x00000D14; // type:function size:0x6EC +fn_1_1400 = .text:0x00001400; // type:function size:0x44 +fn_1_1444 = .text:0x00001444; // type:function size:0xBCC +fn_1_2010 = .text:0x00002010; // type:function size:0x50 +fn_1_2060 = .text:0x00002060; // type:function size:0x330 +fn_1_2390 = .text:0x00002390; // type:function size:0x104 +fn_1_2494 = .text:0x00002494; // type:function size:0x5C +fn_1_24F0 = .text:0x000024F0; // type:function size:0x208 +fn_1_26F8 = .text:0x000026F8; // type:function size:0xA8 +fn_1_27A0 = .text:0x000027A0; // type:function size:0x2F0 +fn_1_2A90 = .text:0x00002A90; // type:function size:0x64 +fn_1_2AF4 = .text:0x00002AF4; // type:function size:0x250 +fn_1_2D44 = .text:0x00002D44; // type:function size:0x4D0 +fn_1_3214 = .text:0x00003214; // type:function size:0xB0 +fn_1_32C4 = .text:0x000032C4; // type:function size:0x148 +fn_1_340C = .text:0x0000340C; // type:function size:0x70 +fn_1_347C = .text:0x0000347C; // type:function size:0x960 +fn_1_3DDC = .text:0x00003DDC; // type:function size:0x328 +fn_1_4104 = .text:0x00004104; // type:function size:0x7C +fn_1_4180 = .text:0x00004180; // type:function size:0x82C +fn_1_49AC = .text:0x000049AC; // type:function size:0x68 +fn_1_4A14 = .text:0x00004A14; // type:function size:0x108 +fn_1_4B1C = .text:0x00004B1C; // type:function size:0x348 +fn_1_4E64 = .text:0x00004E64; // type:function size:0xB3C +fn_1_59A0 = .text:0x000059A0; // type:function size:0x6E8 +fn_1_6088 = .text:0x00006088; // type:function size:0xBC +fn_1_6144 = .text:0x00006144; // type:function size:0x450 +fn_1_6594 = .text:0x00006594; // type:function size:0x104 +fn_1_6698 = .text:0x00006698; // type:function size:0x1E4 +fn_1_687C = .text:0x0000687C; // type:function size:0x4C +fn_1_68C8 = .text:0x000068C8; // type:function size:0x4C +fn_1_6914 = .text:0x00006914; // type:function size:0x158 +fn_1_6A6C = .text:0x00006A6C; // type:function size:0x1F4 +fn_1_6C60 = .text:0x00006C60; // type:function size:0x50 +fn_1_6CB0 = .text:0x00006CB0; // type:function size:0x5D0 +fn_1_7280 = .text:0x00007280; // type:function size:0xE8 +fn_1_7368 = .text:0x00007368; // type:function size:0xC8 +fn_1_7430 = .text:0x00007430; // type:function size:0x4 +fn_1_7434 = .text:0x00007434; // type:function size:0x18C +fn_1_75C0 = .text:0x000075C0; // type:function size:0xF0 +fn_1_76B0 = .text:0x000076B0; // type:function size:0x2C4 +fn_1_7974 = .text:0x00007974; // type:function size:0x54 +fn_1_79C8 = .text:0x000079C8; // type:function size:0x280 +fn_1_7C48 = .text:0x00007C48; // type:function size:0x408 +fn_1_8050 = .text:0x00008050; // type:function size:0x424 +fn_1_8474 = .text:0x00008474; // type:function size:0x4 +fn_1_8478 = .text:0x00008478; // type:function size:0x100 +fn_1_8578 = .text:0x00008578; // type:function size:0x104 +fn_1_867C = .text:0x0000867C; // type:function size:0x2A0 +fn_1_891C = .text:0x0000891C; // type:function size:0x474 +fn_1_8D90 = .text:0x00008D90; // type:function size:0x11C +fn_1_8EAC = .text:0x00008EAC; // type:function size:0x2BC +fn_1_9168 = .text:0x00009168; // type:function size:0x50 +fn_1_91B8 = .text:0x000091B8; // type:function size:0xB44 +fn_1_9CFC = .text:0x00009CFC; // type:function size:0x104 +fn_1_9E00 = .text:0x00009E00; // type:function size:0x118 +fn_1_9F18 = .text:0x00009F18; // type:function size:0x250 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float +lbl_1_data_38 = .data:0x00000038; // type:object size:0xC data:float +lbl_1_data_44 = .data:0x00000044; // type:object size:0xC data:float +lbl_1_data_50 = .data:0x00000050; // type:object size:0x4 +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x2 data:2byte +lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 data:4byte +lbl_1_data_98 = .data:0x00000098; // type:object size:0x4 data:4byte +jumptable_1_data_9C = .data:0x0000009C; // type:object size:0x28 scope:local +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x1C data:string +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x28 +lbl_1_data_108 = .data:0x00000108; // type:object size:0x30 +lbl_1_data_138 = .data:0x00000138; // type:object size:0x1C +lbl_1_data_154 = .data:0x00000154; // type:object size:0x10 +lbl_1_data_164 = .data:0x00000164; // type:object size:0xC +lbl_1_data_170 = .data:0x00000170; // type:object size:0x1 data:byte +lbl_1_data_174 = .data:0x00000174; // type:object size:0x5 data:string +lbl_1_data_179 = .data:0x00000179; // type:object size:0xB data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x8 data:float +lbl_1_data_18C = .data:0x0000018C; // type:object size:0x4C +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x30 +lbl_1_data_208 = .data:0x00000208; // type:object size:0x1 data:byte +lbl_1_data_20C = .data:0x0000020C; // type:object size:0x50 +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x7 data:string +lbl_1_data_263 = .data:0x00000263; // type:object size:0x7 data:string +lbl_1_data_26A = .data:0x0000026A; // type:object size:0x1 data:byte +lbl_1_data_26E = .data:0x0000026E; // type:object size:0x1 data:byte +lbl_1_data_272 = .data:0x00000272; // type:object size:0x6 data:byte +lbl_1_data_278 = .data:0x00000278; // type:object size:0x30 +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x138 +lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x68 +lbl_1_data_448 = .data:0x00000448; // type:object size:0xD0 +lbl_1_data_518 = .data:0x00000518; // type:object size:0xD0 +lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0x18 +lbl_1_data_600 = .data:0x00000600; // type:object size:0x1 data:byte +lbl_1_data_604 = .data:0x00000604; // type:object size:0x6C +lbl_1_data_670 = .data:0x00000670; // type:object size:0x24 +lbl_1_data_694 = .data:0x00000694; // type:object size:0x8 data:byte +lbl_1_data_69C = .data:0x0000069C; // type:object size:0x1 data:byte +lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x10 +lbl_1_data_6B0 = .data:0x000006B0; // type:object size:0x10 +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:float +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:2byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte +lbl_1_bss_22 = .bss:0x00000022; // type:object size:0x2 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x8 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m456Dll/splits.txt b/config/GMPJ01_00/rels/m456Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m456Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m456Dll/symbols.txt b/config/GMPJ01_00/rels/m456Dll/symbols.txt new file mode 100644 index 00000000..fbdbf93f --- /dev/null +++ b/config/GMPJ01_00/rels/m456Dll/symbols.txt @@ -0,0 +1,282 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x300 +fn_1_3A0 = .text:0x000003A0; // type:function size:0x10 +fn_1_3B0 = .text:0x000003B0; // type:function size:0x10 +fn_1_3C0 = .text:0x000003C0; // type:function size:0xD8 +fn_1_498 = .text:0x00000498; // type:function size:0x74C +fn_1_BE4 = .text:0x00000BE4; // type:function size:0x5C +fn_1_C40 = .text:0x00000C40; // type:function size:0x84 +fn_1_CC4 = .text:0x00000CC4; // type:function size:0x68 +fn_1_D2C = .text:0x00000D2C; // type:function size:0x220 +fn_1_F4C = .text:0x00000F4C; // type:function size:0x84 +fn_1_FD0 = .text:0x00000FD0; // type:function size:0x2B8 +fn_1_1288 = .text:0x00001288; // type:function size:0x7C +fn_1_1304 = .text:0x00001304; // type:function size:0xD3C +fn_1_2040 = .text:0x00002040; // type:function size:0x50 +fn_1_2090 = .text:0x00002090; // type:function size:0x104 +fn_1_2194 = .text:0x00002194; // type:function size:0x64 +fn_1_21F8 = .text:0x000021F8; // type:function size:0x250 +fn_1_2448 = .text:0x00002448; // type:function size:0x4D0 +fn_1_2918 = .text:0x00002918; // type:function size:0x1AC +fn_1_2AC4 = .text:0x00002AC4; // type:function size:0x330 +fn_1_2DF4 = .text:0x00002DF4; // type:function size:0x148 +fn_1_2F3C = .text:0x00002F3C; // type:function size:0x70 +fn_1_2FAC = .text:0x00002FAC; // type:function size:0x960 +fn_1_390C = .text:0x0000390C; // type:function size:0x328 +fn_1_3C34 = .text:0x00003C34; // type:function size:0x7C +fn_1_3CB0 = .text:0x00003CB0; // type:function size:0x82C +fn_1_44DC = .text:0x000044DC; // type:function size:0x68 +fn_1_4544 = .text:0x00004544; // type:function size:0x108 +fn_1_464C = .text:0x0000464C; // type:function size:0x348 +fn_1_4994 = .text:0x00004994; // type:function size:0xB3C +fn_1_54D0 = .text:0x000054D0; // type:function size:0x6E8 +fn_1_5BB8 = .text:0x00005BB8; // type:function size:0xBC +fn_1_5C74 = .text:0x00005C74; // type:function size:0x450 +fn_1_60C4 = .text:0x000060C4; // type:function size:0x104 +fn_1_61C8 = .text:0x000061C8; // type:function size:0x1E4 +fn_1_63AC = .text:0x000063AC; // type:function size:0x4C +fn_1_63F8 = .text:0x000063F8; // type:function size:0x4C +fn_1_6444 = .text:0x00006444; // type:function size:0x158 +fn_1_659C = .text:0x0000659C; // type:function size:0x1F4 +fn_1_6790 = .text:0x00006790; // type:function size:0x50 +fn_1_67E0 = .text:0x000067E0; // type:function size:0x5D0 +fn_1_6DB0 = .text:0x00006DB0; // type:function size:0xE8 +fn_1_6E98 = .text:0x00006E98; // type:function size:0xC8 +fn_1_6F60 = .text:0x00006F60; // type:function size:0x4 +fn_1_6F64 = .text:0x00006F64; // type:function size:0x18C +fn_1_70F0 = .text:0x000070F0; // type:function size:0xF0 +fn_1_71E0 = .text:0x000071E0; // type:function size:0x2C4 +fn_1_74A4 = .text:0x000074A4; // type:function size:0x54 +fn_1_74F8 = .text:0x000074F8; // type:function size:0x280 +fn_1_7778 = .text:0x00007778; // type:function size:0x3D8 +fn_1_7B50 = .text:0x00007B50; // type:function size:0x424 +fn_1_7F74 = .text:0x00007F74; // type:function size:0x4 +fn_1_7F78 = .text:0x00007F78; // type:function size:0x100 +fn_1_8078 = .text:0x00008078; // type:function size:0x104 +fn_1_817C = .text:0x0000817C; // type:function size:0x2A0 +fn_1_841C = .text:0x0000841C; // type:function size:0x474 +fn_1_8890 = .text:0x00008890; // type:function size:0x11C +fn_1_89AC = .text:0x000089AC; // type:function size:0x2BC +fn_1_8C68 = .text:0x00008C68; // type:function size:0x50 +fn_1_8CB8 = .text:0x00008CB8; // type:function size:0xB44 +fn_1_97FC = .text:0x000097FC; // type:function size:0x104 +fn_1_9900 = .text:0x00009900; // type:function size:0x118 +fn_1_9A18 = .text:0x00009A18; // type:function size:0x250 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float +lbl_1_data_38 = .data:0x00000038; // type:object size:0xC data:float +lbl_1_data_44 = .data:0x00000044; // type:object size:0xC data:float +lbl_1_data_50 = .data:0x00000050; // type:object size:0x4 +lbl_1_data_54 = .data:0x00000054; // type:object size:0xC +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x4 data:4byte +lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 data:4byte +jumptable_1_data_98 = .data:0x00000098; // type:object size:0x30 scope:local +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x1C data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x50 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x30 +lbl_1_data_164 = .data:0x00000164; // type:object size:0x20 +lbl_1_data_184 = .data:0x00000184; // type:object size:0x4 +jumptable_1_data_188 = .data:0x00000188; // type:object size:0x20 scope:local +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x8 data:float +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x80 +lbl_1_data_230 = .data:0x00000230; // type:object size:0xB8 +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x30 +lbl_1_data_318 = .data:0x00000318; // type:object size:0x1 data:byte +lbl_1_data_31C = .data:0x0000031C; // type:object size:0x50 +lbl_1_data_36C = .data:0x0000036C; // type:object size:0x7 data:string +lbl_1_data_373 = .data:0x00000373; // type:object size:0x7 data:string +lbl_1_data_37A = .data:0x0000037A; // type:object size:0x1 data:byte +lbl_1_data_37E = .data:0x0000037E; // type:object size:0x1 data:byte +lbl_1_data_382 = .data:0x00000382; // type:object size:0x6 data:byte +lbl_1_data_388 = .data:0x00000388; // type:object size:0x30 +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x138 +lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x68 +lbl_1_data_558 = .data:0x00000558; // type:object size:0xD0 +lbl_1_data_628 = .data:0x00000628; // type:object size:0xD0 +lbl_1_data_6F8 = .data:0x000006F8; // type:object size:0x18 +lbl_1_data_710 = .data:0x00000710; // type:object size:0x1 data:byte +lbl_1_data_714 = .data:0x00000714; // type:object size:0x6C +lbl_1_data_780 = .data:0x00000780; // type:object size:0x24 +lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x8 data:byte +lbl_1_data_7AC = .data:0x000007AC; // type:object size:0x1 data:byte +lbl_1_data_7B0 = .data:0x000007B0; // type:object size:0x10 +lbl_1_data_7C0 = .data:0x000007C0; // type:object size:0x10 +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:float +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x40 data:2byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x2 data:2byte +lbl_1_bss_62 = .bss:0x00000062; // type:object size:0x2 data:2byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x10 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x10 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m457Dll/splits.txt b/config/GMPJ01_00/rels/m457Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m457Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m457Dll/symbols.txt b/config/GMPJ01_00/rels/m457Dll/symbols.txt new file mode 100644 index 00000000..536be91f --- /dev/null +++ b/config/GMPJ01_00/rels/m457Dll/symbols.txt @@ -0,0 +1,178 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x3CC +fn_1_46C = .text:0x0000046C; // type:function size:0x2858 +fn_1_2CC4 = .text:0x00002CC4; // type:function size:0x281C +fn_1_54E0 = .text:0x000054E0; // type:function size:0x220 +fn_1_5700 = .text:0x00005700; // type:function size:0x29C +fn_1_599C = .text:0x0000599C; // type:function size:0xB3C +fn_1_64D8 = .text:0x000064D8; // type:function size:0xAB8 +fn_1_6F90 = .text:0x00006F90; // type:function size:0x5F4 +fn_1_7584 = .text:0x00007584; // type:function size:0xC0 +fn_1_7644 = .text:0x00007644; // type:function size:0x480 +fn_1_7AC4 = .text:0x00007AC4; // type:function size:0x9C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x24 data:4byte +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 data:4byte +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x64 +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x8 data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x8 data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x40 data:4byte +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x40 data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:4byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x90 +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 data:double +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x14 data:4byte +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:4byte +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:4byte +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x40 data:4byte +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x40 data:4byte +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x5C +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x5C +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0xC data:4byte +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0xC data:4byte +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x1 data:byte +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x5C +lbl_1_data_5C = .data:0x0000005C; // type:object size:0x5C data:4byte +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x30 +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x30 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x30 +lbl_1_data_148 = .data:0x00000148; // type:object size:0xC +lbl_1_data_154 = .data:0x00000154; // type:object size:0x30 +lbl_1_data_184 = .data:0x00000184; // type:object size:0x30 +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x6C +lbl_1_data_220 = .data:0x00000220; // type:object size:0x6C +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x18 data:float +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x2 data:2byte +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x2 data:2byte +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x4 data:4byte +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x4 data:4byte +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x2 data:2byte +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x4 data:4byte +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x4 data:4byte +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x9 data:string +lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0x3 data:string +jumptable_1_data_2C8 = .data:0x000002C8; // type:object size:0x2C scope:local +jumptable_1_data_2F4 = .data:0x000002F4; // type:object size:0x48 scope:local +lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 data:4byte +lbl_1_data_340 = .data:0x00000340; // type:object size:0x4 data:float +lbl_1_data_344 = .data:0x00000344; // type:object size:0x4 data:float +lbl_1_data_348 = .data:0x00000348; // type:object size:0x4 data:float +jumptable_1_data_34C = .data:0x0000034C; // type:object size:0x20 scope:local +jumptable_1_data_36C = .data:0x0000036C; // type:object size:0x2C scope:local +lbl_1_data_398 = .data:0x00000398; // type:object size:0x12 data:string +lbl_1_data_3AA = .data:0x000003AA; // type:object size:0x19 data:string +lbl_1_data_3C3 = .data:0x000003C3; // type:object size:0x24 data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:float +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x8 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x50 data:4byte diff --git a/config/GMPJ01_00/rels/m458Dll/splits.txt b/config/GMPJ01_00/rels/m458Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m458Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m458Dll/symbols.txt b/config/GMPJ01_00/rels/m458Dll/symbols.txt new file mode 100644 index 00000000..5c135c78 --- /dev/null +++ b/config/GMPJ01_00/rels/m458Dll/symbols.txt @@ -0,0 +1,176 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x428 +fn_1_4C8 = .text:0x000004C8; // type:function size:0x3044 +fn_1_350C = .text:0x0000350C; // type:function size:0x16DC +fn_1_4BE8 = .text:0x00004BE8; // type:function size:0x15C +fn_1_4D44 = .text:0x00004D44; // type:function size:0x2D0 +fn_1_5014 = .text:0x00005014; // type:function size:0x9C8 +fn_1_59DC = .text:0x000059DC; // type:function size:0x938 +fn_1_6314 = .text:0x00006314; // type:function size:0x548 +fn_1_685C = .text:0x0000685C; // type:function size:0xC0 +fn_1_691C = .text:0x0000691C; // type:function size:0x480 +fn_1_6D9C = .text:0x00006D9C; // type:function size:0xD0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x94 +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x50 +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:4byte +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x70 +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:4byte +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:4byte +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0xC data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0xC data:4byte +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 +lbl_1_data_8 = .data:0x00000008; // type:object size:0x8 data:4byte +lbl_1_data_10 = .data:0x00000010; // type:object size:0x28 +lbl_1_data_38 = .data:0x00000038; // type:object size:0x28 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x28 +lbl_1_data_88 = .data:0x00000088; // type:object size:0xA +lbl_1_data_92 = .data:0x00000092; // type:object size:0xA +lbl_1_data_9C = .data:0x0000009C; // type:object size:0x28 +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x28 +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x28 +lbl_1_data_114 = .data:0x00000114; // type:object size:0x18 data:float +lbl_1_data_12C = .data:0x0000012C; // type:object size:0x2 data:2byte +lbl_1_data_12E = .data:0x0000012E; // type:object size:0x2 data:2byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0x4 data:4byte +lbl_1_data_134 = .data:0x00000134; // type:object size:0x4 data:4byte +lbl_1_data_138 = .data:0x00000138; // type:object size:0x24 data:2byte +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x4 data:4byte +lbl_1_data_160 = .data:0x00000160; // type:object size:0x9 data:string +lbl_1_data_169 = .data:0x00000169; // type:object size:0x3 data:string +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x4 data:4byte +jumptable_1_data_170 = .data:0x00000170; // type:object size:0x30 scope:local +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x4 data:4byte +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x4 data:float +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x4 data:float +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x4 data:float +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x4 data:string +jumptable_1_data_1B4 = .data:0x000001B4; // type:object size:0x34 scope:local +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x2C +lbl_1_data_214 = .data:0x00000214; // type:object size:0x8 data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x19 data:string +lbl_1_data_235 = .data:0x00000235; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:float +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x50 +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x8 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x8 data:4byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x1C0 data:4byte +lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x90 diff --git a/config/GMPJ01_00/rels/m459dll/splits.txt b/config/GMPJ01_00/rels/m459dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m459dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m459dll/symbols.txt b/config/GMPJ01_00/rels/m459dll/symbols.txt new file mode 100644 index 00000000..ee18477b --- /dev/null +++ b/config/GMPJ01_00/rels/m459dll/symbols.txt @@ -0,0 +1,169 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x138 +fn_1_1D8 = .text:0x000001D8; // type:function size:0x468 +fn_1_640 = .text:0x00000640; // type:function size:0xFC +fn_1_73C = .text:0x0000073C; // type:function size:0x73C +fn_1_E78 = .text:0x00000E78; // type:function size:0x364 +fn_1_11DC = .text:0x000011DC; // type:function size:0x28 +fn_1_1204 = .text:0x00001204; // type:function size:0x28 +fn_1_122C = .text:0x0000122C; // type:function size:0x200 +fn_1_142C = .text:0x0000142C; // type:function size:0x8C +fn_1_14B8 = .text:0x000014B8; // type:function size:0x2C0 +fn_1_1778 = .text:0x00001778; // type:function size:0x124 +fn_1_189C = .text:0x0000189C; // type:function size:0x118 +fn_1_19B4 = .text:0x000019B4; // type:function size:0x4C +fn_1_1A00 = .text:0x00001A00; // type:function size:0x5DC +fn_1_1FDC = .text:0x00001FDC; // type:function size:0x68 +fn_1_2044 = .text:0x00002044; // type:function size:0x168 +fn_1_21AC = .text:0x000021AC; // type:function size:0x200 +fn_1_23AC = .text:0x000023AC; // type:function size:0x21C +fn_1_25C8 = .text:0x000025C8; // type:function size:0x200 +fn_1_27C8 = .text:0x000027C8; // type:function size:0x168 +fn_1_2930 = .text:0x00002930; // type:function size:0x1F4 +fn_1_2B24 = .text:0x00002B24; // type:function size:0x3F4 +fn_1_2F18 = .text:0x00002F18; // type:function size:0xEC +fn_1_3004 = .text:0x00003004; // type:function size:0x388 +fn_1_338C = .text:0x0000338C; // type:function size:0x374 +fn_1_3700 = .text:0x00003700; // type:function size:0xA60 +fn_1_4160 = .text:0x00004160; // type:function size:0xB0 +fn_1_4210 = .text:0x00004210; // type:function size:0x104 +fn_1_4314 = .text:0x00004314; // type:function size:0x21C +fn_1_4530 = .text:0x00004530; // type:function size:0xBC +fn_1_45EC = .text:0x000045EC; // type:function size:0x178 +fn_1_4764 = .text:0x00004764; // type:function size:0x80 +fn_1_47E4 = .text:0x000047E4; // type:function size:0x6C +fn_1_4850 = .text:0x00004850; // type:function size:0x94 +fn_1_48E4 = .text:0x000048E4; // type:function size:0x190 +fn_1_4A74 = .text:0x00004A74; // type:function size:0xF4 +fn_1_4B68 = .text:0x00004B68; // type:function size:0xB4 +fn_1_4C1C = .text:0x00004C1C; // type:function size:0xB4 +fn_1_4CD0 = .text:0x00004CD0; // type:function size:0x184 +fn_1_4E54 = .text:0x00004E54; // type:function size:0x10 +fn_1_4E64 = .text:0x00004E64; // type:function size:0x20 +fn_1_4E84 = .text:0x00004E84; // type:function size:0x14 +fn_1_4E98 = .text:0x00004E98; // type:function size:0x14 +fn_1_4EAC = .text:0x00004EAC; // type:function size:0xE0 +fn_1_4F8C = .text:0x00004F8C; // type:function size:0x20 +fn_1_4FAC = .text:0x00004FAC; // type:function size:0x1C +fn_1_4FC8 = .text:0x00004FC8; // type:function size:0x310 +fn_1_52D8 = .text:0x000052D8; // type:function size:0x18 +fn_1_52F0 = .text:0x000052F0; // type:function size:0x10 +fn_1_5300 = .text:0x00005300; // type:function size:0x10 +fn_1_5310 = .text:0x00005310; // type:function size:0x4C +fn_1_535C = .text:0x0000535C; // type:function size:0x134 +fn_1_5490 = .text:0x00005490; // type:function size:0xDC +fn_1_556C = .text:0x0000556C; // type:function size:0x44 +fn_1_55B0 = .text:0x000055B0; // type:function size:0x4C8 +fn_1_5A78 = .text:0x00005A78; // type:function size:0x3C4 +fn_1_5E3C = .text:0x00005E3C; // type:function size:0x70 +fn_1_5EAC = .text:0x00005EAC; // type:function size:0x94 +fn_1_5F40 = .text:0x00005F40; // type:function size:0x44 +fn_1_5F84 = .text:0x00005F84; // type:function size:0x214 +fn_1_6198 = .text:0x00006198; // type:function size:0x2C0 +fn_1_6458 = .text:0x00006458; // type:function size:0x128 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x30 +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x78 +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x18 +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:wstring +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x20 +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x20 +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x19C +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x8 +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x14 +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x14 +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x14 +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x14 +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0xC data:4byte +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0xC data:4byte +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0xC data:4byte +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x48 +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B data:string +lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1D +jumptable_1_data_38 = .data:0x00000038; // type:object size:0x38 scope:local +lbl_1_data_70 = .data:0x00000070; // type:object size:0x1C +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x1 data:byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x30 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x2 data:2byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x18 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0xC data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0xC data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x50 +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x550 data:4byte +lbl_1_bss_61C = .bss:0x0000061C; // type:object size:0x7C data:float +lbl_1_bss_698 = .bss:0x00000698; // type:object size:0x4C data:4byte +lbl_1_bss_6E4 = .bss:0x000006E4; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m460Dll/splits.txt b/config/GMPJ01_00/rels/m460Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m460Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m460Dll/symbols.txt b/config/GMPJ01_00/rels/m460Dll/symbols.txt new file mode 100644 index 00000000..9864f9d8 --- /dev/null +++ b/config/GMPJ01_00/rels/m460Dll/symbols.txt @@ -0,0 +1,301 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x428 +fn_1_4C8 = .text:0x000004C8; // type:function size:0x128 +fn_1_5F0 = .text:0x000005F0; // type:function size:0x20C +fn_1_7FC = .text:0x000007FC; // type:function size:0x14C +fn_1_948 = .text:0x00000948; // type:function size:0x434 +fn_1_D7C = .text:0x00000D7C; // type:function size:0x470 +fn_1_11EC = .text:0x000011EC; // type:function size:0x35C +fn_1_1548 = .text:0x00001548; // type:function size:0x434 +fn_1_197C = .text:0x0000197C; // type:function size:0x6A0 +fn_1_201C = .text:0x0000201C; // type:function size:0x4D8 +fn_1_24F4 = .text:0x000024F4; // type:function size:0x70 +fn_1_2564 = .text:0x00002564; // type:function size:0x800 +fn_1_2D64 = .text:0x00002D64; // type:function size:0xC +fn_1_2D70 = .text:0x00002D70; // type:function size:0x55C +fn_1_32CC = .text:0x000032CC; // type:function size:0xB0 +fn_1_337C = .text:0x0000337C; // type:function size:0x274 +fn_1_35F0 = .text:0x000035F0; // type:function size:0x28 +fn_1_3618 = .text:0x00003618; // type:function size:0x5A8 +fn_1_3BC0 = .text:0x00003BC0; // type:function size:0x2A8 +fn_1_3E68 = .text:0x00003E68; // type:function size:0x14 +fn_1_3E7C = .text:0x00003E7C; // type:function size:0x14 +fn_1_3E90 = .text:0x00003E90; // type:function size:0x9C +fn_1_3F2C = .text:0x00003F2C; // type:function size:0x9C +fn_1_3FC8 = .text:0x00003FC8; // type:function size:0x68 +fn_1_4030 = .text:0x00004030; // type:function size:0x6C +fn_1_409C = .text:0x0000409C; // type:function size:0x98 +fn_1_4134 = .text:0x00004134; // type:function size:0x18 +fn_1_414C = .text:0x0000414C; // type:function size:0x18 +fn_1_4164 = .text:0x00004164; // type:function size:0x18 +fn_1_417C = .text:0x0000417C; // type:function size:0x18 +fn_1_4194 = .text:0x00004194; // type:function size:0x8 +fn_1_419C = .text:0x0000419C; // type:function size:0x18 +fn_1_41B4 = .text:0x000041B4; // type:function size:0x40 +fn_1_41F4 = .text:0x000041F4; // type:function size:0x30 +fn_1_4224 = .text:0x00004224; // type:function size:0x30 +fn_1_4254 = .text:0x00004254; // type:function size:0x30 +fn_1_4284 = .text:0x00004284; // type:function size:0x38 +fn_1_42BC = .text:0x000042BC; // type:function size:0x34 +fn_1_42F0 = .text:0x000042F0; // type:function size:0x18 +fn_1_4308 = .text:0x00004308; // type:function size:0x1C +fn_1_4324 = .text:0x00004324; // type:function size:0x18 +fn_1_433C = .text:0x0000433C; // type:function size:0x1C +fn_1_4358 = .text:0x00004358; // type:function size:0x18 +fn_1_4370 = .text:0x00004370; // type:function size:0x18 +fn_1_4388 = .text:0x00004388; // type:function size:0x208 +fn_1_4590 = .text:0x00004590; // type:function size:0x240 +fn_1_47D0 = .text:0x000047D0; // type:function size:0x11C +fn_1_48EC = .text:0x000048EC; // type:function size:0xB4 +fn_1_49A0 = .text:0x000049A0; // type:function size:0x244 +fn_1_4BE4 = .text:0x00004BE4; // type:function size:0x24 +fn_1_4C08 = .text:0x00004C08; // type:function size:0x364 +fn_1_4F6C = .text:0x00004F6C; // type:function size:0x1FC +fn_1_5168 = .text:0x00005168; // type:function size:0x484 +fn_1_55EC = .text:0x000055EC; // type:function size:0x1EC +fn_1_57D8 = .text:0x000057D8; // type:function size:0xF0 +fn_1_58C8 = .text:0x000058C8; // type:function size:0x14C +fn_1_5A14 = .text:0x00005A14; // type:function size:0x274 +fn_1_5C88 = .text:0x00005C88; // type:function size:0x58 +fn_1_5CE0 = .text:0x00005CE0; // type:function size:0x18C +fn_1_5E6C = .text:0x00005E6C; // type:function size:0x74 +fn_1_5EE0 = .text:0x00005EE0; // type:function size:0x1D0 +fn_1_60B0 = .text:0x000060B0; // type:function size:0x144 +fn_1_61F4 = .text:0x000061F4; // type:function size:0x5C0 +fn_1_67B4 = .text:0x000067B4; // type:function size:0x60 +fn_1_6814 = .text:0x00006814; // type:function size:0x4 +fn_1_6818 = .text:0x00006818; // type:function size:0x3E8 +fn_1_6C00 = .text:0x00006C00; // type:function size:0x7F8 +fn_1_73F8 = .text:0x000073F8; // type:function size:0x2CC +fn_1_76C4 = .text:0x000076C4; // type:function size:0x60 +fn_1_7724 = .text:0x00007724; // type:function size:0x6C +fn_1_7790 = .text:0x00007790; // type:function size:0x404 +fn_1_7B94 = .text:0x00007B94; // type:function size:0x214 +fn_1_7DA8 = .text:0x00007DA8; // type:function size:0xDF8 +fn_1_8BA0 = .text:0x00008BA0; // type:function size:0xD8 +fn_1_8C78 = .text:0x00008C78; // type:function size:0x34 +fn_1_8CAC = .text:0x00008CAC; // type:function size:0x28C +fn_1_8F38 = .text:0x00008F38; // type:function size:0x74 +fn_1_8FAC = .text:0x00008FAC; // type:function size:0x50 +fn_1_8FFC = .text:0x00008FFC; // type:function size:0x24 +fn_1_9020 = .text:0x00009020; // type:function size:0x30 +fn_1_9050 = .text:0x00009050; // type:function size:0x11C +fn_1_916C = .text:0x0000916C; // type:function size:0x78 +fn_1_91E4 = .text:0x000091E4; // type:function size:0x8C +fn_1_9270 = .text:0x00009270; // type:function size:0x164 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC data:4byte +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:4byte +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x50 +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x14 data:4byte +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x10 data:4byte +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x10 data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x30 data:4byte +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x18 data:4byte +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x18 data:4byte +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x18 data:4byte +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:4byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x1 data:byte +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x1 data:byte +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0xC data:4byte +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xC +lbl_1_data_C = .data:0x0000000C; // type:object size:0xC +lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float +lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 +lbl_1_data_94 = .data:0x00000094; // type:object size:0xC +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC +lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x1 data:byte +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x1A data:string +lbl_1_data_D6 = .data:0x000000D6; // type:object size:0x1A +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x20 +lbl_1_data_110 = .data:0x00000110; // type:object size:0xA0 +jumptable_1_data_1B0 = .data:0x000001B0; // type:object size:0x24 scope:local +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x14 +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x100 +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x40 +lbl_1_data_328 = .data:0x00000328; // type:object size:0xC +lbl_1_data_334 = .data:0x00000334; // type:object size:0xC +lbl_1_data_340 = .data:0x00000340; // type:object size:0xC +lbl_1_data_34C = .data:0x0000034C; // type:object size:0x8 +lbl_1_data_354 = .data:0x00000354; // type:object size:0x8 +lbl_1_data_35C = .data:0x0000035C; // type:object size:0x7 data:string +lbl_1_data_363 = .data:0x00000363; // type:object size:0x9 +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC +lbl_1_data_378 = .data:0x00000378; // type:object size:0x8 data:byte +lbl_1_data_380 = .data:0x00000380; // type:object size:0xC +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte +lbl_1_bss_1A = .bss:0x0000001A; // type:object size:0x6 data:2byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x8 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x8 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m461Dll/splits.txt b/config/GMPJ01_00/rels/m461Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m461Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m461Dll/symbols.txt b/config/GMPJ01_00/rels/m461Dll/symbols.txt new file mode 100644 index 00000000..02cf6c76 --- /dev/null +++ b/config/GMPJ01_00/rels/m461Dll/symbols.txt @@ -0,0 +1,224 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x24 +fn_1_24 = .text:0x00000024; // type:function size:0x88 +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 +fn_1_150 = .text:0x00000150; // type:function size:0x24 +fn_1_174 = .text:0x00000174; // type:function size:0x164 +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C +fn_1_414 = .text:0x00000414; // type:function size:0x58 +fn_1_46C = .text:0x0000046C; // type:function size:0x114 +fn_1_580 = .text:0x00000580; // type:function size:0x218 +fn_1_798 = .text:0x00000798; // type:function size:0x254 +fn_1_9EC = .text:0x000009EC; // type:function size:0x54 +fn_1_A40 = .text:0x00000A40; // type:function size:0x10C +fn_1_B4C = .text:0x00000B4C; // type:function size:0x6A8 +fn_1_11F4 = .text:0x000011F4; // type:function size:0x15C +fn_1_1350 = .text:0x00001350; // type:function size:0x8C +fn_1_13DC = .text:0x000013DC; // type:function size:0x334 +fn_1_1710 = .text:0x00001710; // type:function size:0x350 +fn_1_1A60 = .text:0x00001A60; // type:function size:0x2B8 +fn_1_1D18 = .text:0x00001D18; // type:function size:0x58 +fn_1_1D70 = .text:0x00001D70; // type:function size:0xB0 +fn_1_1E20 = .text:0x00001E20; // type:function size:0x104 +fn_1_1F24 = .text:0x00001F24; // type:function size:0x34 +fn_1_1F58 = .text:0x00001F58; // type:function size:0x6C +fn_1_1FC4 = .text:0x00001FC4; // type:function size:0x3F0 +fn_1_23B4 = .text:0x000023B4; // type:function size:0x64 +fn_1_2418 = .text:0x00002418; // type:function size:0xE0 +fn_1_24F8 = .text:0x000024F8; // type:function size:0x32C +fn_1_2824 = .text:0x00002824; // type:function size:0x3AC +fn_1_2BD0 = .text:0x00002BD0; // type:function size:0x30 +fn_1_2C00 = .text:0x00002C00; // type:function size:0x1C +fn_1_2C1C = .text:0x00002C1C; // type:function size:0x18C +fn_1_2DA8 = .text:0x00002DA8; // type:function size:0x8 +fn_1_2DB0 = .text:0x00002DB0; // type:function size:0x8 +fn_1_2DB8 = .text:0x00002DB8; // type:function size:0x8 +fn_1_2DC0 = .text:0x00002DC0; // type:function size:0x8 +fn_1_2DC8 = .text:0x00002DC8; // type:function size:0xC +fn_1_2DD4 = .text:0x00002DD4; // type:function size:0x60 +fn_1_2E34 = .text:0x00002E34; // type:function size:0xB90 +fn_1_39C4 = .text:0x000039C4; // type:function size:0x2B0 +fn_1_3C74 = .text:0x00003C74; // type:function size:0xD8 +fn_1_3D4C = .text:0x00003D4C; // type:function size:0x114 +fn_1_3E60 = .text:0x00003E60; // type:function size:0xB8 +fn_1_3F18 = .text:0x00003F18; // type:function size:0xA0 +fn_1_3FB8 = .text:0x00003FB8; // type:function size:0x9C +fn_1_4054 = .text:0x00004054; // type:function size:0xDC8 +fn_1_4E1C = .text:0x00004E1C; // type:function size:0x250 +fn_1_506C = .text:0x0000506C; // type:function size:0x10 +fn_1_507C = .text:0x0000507C; // type:function size:0x10 +_prolog = .text:0x0000508C; // type:function size:0x54 scope:global +_epilog = .text:0x000050E0; // type:function size:0x4C scope:global +fn_1_512C = .text:0x0000512C; // type:function size:0x30C +fn_1_5438 = .text:0x00005438; // type:function size:0xF0 +fn_1_5528 = .text:0x00005528; // type:function size:0x36C +fn_1_5894 = .text:0x00005894; // type:function size:0x1E8 +fn_1_5A7C = .text:0x00005A7C; // type:function size:0x178 +fn_1_5BF4 = .text:0x00005BF4; // type:function size:0xE0C +fn_1_6A00 = .text:0x00006A00; // type:function size:0x928 +fn_1_7328 = .text:0x00007328; // type:function size:0x288 +fn_1_75B0 = .text:0x000075B0; // type:function size:0x11C +fn_1_76CC = .text:0x000076CC; // type:function size:0x40C +fn_1_7AD8 = .text:0x00007AD8; // type:function size:0x1230 +fn_1_8D08 = .text:0x00008D08; // type:function size:0x45C +fn_1_9164 = .text:0x00009164; // type:function size:0x408 +fn_1_956C = .text:0x0000956C; // type:function size:0x1B8 +fn_1_9724 = .text:0x00009724; // type:function size:0x130 +fn_1_9854 = .text:0x00009854; // type:function size:0x458 +fn_1_9CAC = .text:0x00009CAC; // type:function size:0x248 +fn_1_9EF4 = .text:0x00009EF4; // type:function size:0xEE8 +fn_1_ADDC = .text:0x0000ADDC; // type:function size:0x458 +fn_1_B234 = .text:0x0000B234; // type:function size:0x7F8 +fn_1_BA2C = .text:0x0000BA2C; // type:function size:0xF44 +fn_1_C970 = .text:0x0000C970; // type:function size:0x240 +fn_1_CBB0 = .text:0x0000CBB0; // type:function size:0xB5C +fn_1_D70C = .text:0x0000D70C; // type:function size:0xD0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 +lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 +lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 +lbl_1_data_80 = .data:0x00000080; // type:object size:0x20 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC data:4byte +lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0xC data:4byte +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0xC data:4byte +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0xC +lbl_1_data_DC = .data:0x000000DC; // type:object size:0xC data:4byte +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0xC +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0xC +lbl_1_data_100 = .data:0x00000100; // type:object size:0x4 +lbl_1_data_104 = .data:0x00000104; // type:object size:0xC +lbl_1_data_110 = .data:0x00000110; // type:object size:0xC +lbl_1_data_11C = .data:0x0000011C; // type:object size:0xC +lbl_1_data_128 = .data:0x00000128; // type:object size:0xA0 +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0xC +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x10 +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0xC +lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x50 data:float +lbl_1_data_240 = .data:0x00000240; // type:object size:0x24 +lbl_1_data_264 = .data:0x00000264; // type:object size:0xC data:4byte +lbl_1_data_270 = .data:0x00000270; // type:object size:0x80 +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x30 +lbl_1_data_320 = .data:0x00000320; // type:object size:0x23 data:string +lbl_1_data_343 = .data:0x00000343; // type:object size:0x9 data:string +lbl_1_data_34C = .data:0x0000034C; // type:object size:0x6 data:string +lbl_1_data_352 = .data:0x00000352; // type:object size:0x1D data:string +lbl_1_data_36F = .data:0x0000036F; // type:object size:0x1D data:string +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x1C +jumptable_1_data_3A8 = .data:0x000003A8; // type:object size:0x20 scope:local +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:float +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x10 +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x10 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x50 +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:float +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x100 +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x40 data:4byte +lbl_1_bss_1EC = .bss:0x000001EC; // type:object size:0x4 data:float +lbl_1_bss_1F0 = .bss:0x000001F0; // type:object size:0x4 data:4byte +lbl_1_bss_1F4 = .bss:0x000001F4; // type:object size:0x4 data:4byte +lbl_1_bss_1F8 = .bss:0x000001F8; // type:object size:0x2 data:2byte +lbl_1_bss_1FA = .bss:0x000001FA; // type:object size:0x2 data:2byte +lbl_1_bss_1FC = .bss:0x000001FC; // type:object size:0x4 data:4byte +lbl_1_bss_200 = .bss:0x00000200; // type:object size:0x4 data:4byte +lbl_1_bss_204 = .bss:0x00000204; // type:object size:0x4 data:4byte +lbl_1_bss_208 = .bss:0x00000208; // type:object size:0xC data:4byte +lbl_1_bss_214 = .bss:0x00000214; // type:object size:0xC data:4byte +lbl_1_bss_220 = .bss:0x00000220; // type:object size:0xC data:4byte +lbl_1_bss_22C = .bss:0x0000022C; // type:object size:0xC data:4byte +lbl_1_bss_238 = .bss:0x00000238; // type:object size:0x4 data:4byte +lbl_1_bss_23C = .bss:0x0000023C; // type:object size:0x18 data:4byte +lbl_1_bss_254 = .bss:0x00000254; // type:object size:0xC data:4byte diff --git a/config/GMPJ01_00/rels/m462Dll/splits.txt b/config/GMPJ01_00/rels/m462Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m462Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m462Dll/symbols.txt b/config/GMPJ01_00/rels/m462Dll/symbols.txt new file mode 100644 index 00000000..619006c8 --- /dev/null +++ b/config/GMPJ01_00/rels/m462Dll/symbols.txt @@ -0,0 +1,144 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x400 +fn_1_4A0 = .text:0x000004A0; // type:function size:0x1014 +fn_1_14B4 = .text:0x000014B4; // type:function size:0x80 +fn_1_1534 = .text:0x00001534; // type:function size:0x80 +fn_1_15B4 = .text:0x000015B4; // type:function size:0x80 +fn_1_1634 = .text:0x00001634; // type:function size:0xC4 +fn_1_16F8 = .text:0x000016F8; // type:function size:0x54 +fn_1_174C = .text:0x0000174C; // type:function size:0x54 +fn_1_17A0 = .text:0x000017A0; // type:function size:0xE0 +fn_1_1880 = .text:0x00001880; // type:function size:0x354 +fn_1_1BD4 = .text:0x00001BD4; // type:function size:0x23C +fn_1_1E10 = .text:0x00001E10; // type:function size:0x11CC +fn_1_2FDC = .text:0x00002FDC; // type:function size:0x14FC +fn_1_44D8 = .text:0x000044D8; // type:function size:0x16C +fn_1_4644 = .text:0x00004644; // type:function size:0x580 +fn_1_4BC4 = .text:0x00004BC4; // type:function size:0x898 +fn_1_545C = .text:0x0000545C; // type:function size:0x4F0 +fn_1_594C = .text:0x0000594C; // type:function size:0x498 +fn_1_5DE4 = .text:0x00005DE4; // type:function size:0x498 +fn_1_627C = .text:0x0000627C; // type:function size:0x74 +fn_1_62F0 = .text:0x000062F0; // type:function size:0x7C +fn_1_636C = .text:0x0000636C; // type:function size:0x48 +fn_1_63B4 = .text:0x000063B4; // type:function size:0x48 +fn_1_63FC = .text:0x000063FC; // type:function size:0x1D4 +fn_1_65D0 = .text:0x000065D0; // type:function size:0x220 +fn_1_67F0 = .text:0x000067F0; // type:function size:0x104 +fn_1_68F4 = .text:0x000068F4; // type:function size:0x70 +fn_1_6964 = .text:0x00006964; // type:function size:0x5C +fn_1_69C0 = .text:0x000069C0; // type:function size:0x137C +fn_1_7D3C = .text:0x00007D3C; // type:function size:0x4 +fn_1_7D40 = .text:0x00007D40; // type:function size:0x60 +fn_1_7DA0 = .text:0x00007DA0; // type:function size:0x3BC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 +lbl_1_data_20 = .data:0x00000020; // type:object size:0x10 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x60 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x30 data:float +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x3C +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x14 data:float +lbl_1_data_110 = .data:0x00000110; // type:object size:0xB data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0xC data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x48 data:float +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x2D0 +lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x98 data:float +lbl_1_bss_3D8 = .bss:0x000003D8; // type:object size:0x4 data:4byte +lbl_1_bss_3DC = .bss:0x000003DC; // type:object size:0x4 data:4byte +lbl_1_bss_3E0 = .bss:0x000003E0; // type:object size:0x4 data:4byte +lbl_1_bss_3E4 = .bss:0x000003E4; // type:object size:0x4 data:4byte +lbl_1_bss_3E8 = .bss:0x000003E8; // type:object size:0x2 data:2byte +lbl_1_bss_3EA = .bss:0x000003EA; // type:object size:0x2 data:2byte diff --git a/config/GMPJ01_00/rels/m463Dll/splits.txt b/config/GMPJ01_00/rels/m463Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/m463Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m463Dll/symbols.txt b/config/GMPJ01_00/rels/m463Dll/symbols.txt new file mode 100644 index 00000000..87b16e8f --- /dev/null +++ b/config/GMPJ01_00/rels/m463Dll/symbols.txt @@ -0,0 +1,164 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x428 +fn_1_4C8 = .text:0x000004C8; // type:function size:0x2D9C +fn_1_3264 = .text:0x00003264; // type:function size:0x1210 +fn_1_4474 = .text:0x00004474; // type:function size:0x184 +fn_1_45F8 = .text:0x000045F8; // type:function size:0xDA8 +fn_1_53A0 = .text:0x000053A0; // type:function size:0x4B0 +fn_1_5850 = .text:0x00005850; // type:function size:0x854 +fn_1_60A4 = .text:0x000060A4; // type:function size:0x98 +fn_1_613C = .text:0x0000613C; // type:function size:0x460 +fn_1_659C = .text:0x0000659C; // type:function size:0x11C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC data:4byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:4byte +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x94 +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:4byte +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x50 +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x70 +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x24 data:4byte +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x24 data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x10 data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0xC data:4byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0xC data:4byte +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x1 data:byte +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 +lbl_1_data_24 = .data:0x00000024; // type:object size:0x24 +lbl_1_data_48 = .data:0x00000048; // type:object size:0x24 +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 +lbl_1_data_90 = .data:0x00000090; // type:object size:0x24 +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x9 +lbl_1_data_BD = .data:0x000000BD; // type:object size:0xB +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x24 +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x24 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x24 +lbl_1_data_134 = .data:0x00000134; // type:object size:0x18 data:float +lbl_1_data_14C = .data:0x0000014C; // type:object size:0x2 data:2byte +lbl_1_data_14E = .data:0x0000014E; // type:object size:0x2 data:2byte +lbl_1_data_150 = .data:0x00000150; // type:object size:0x4 data:4byte +lbl_1_data_154 = .data:0x00000154; // type:object size:0x24 data:4byte +lbl_1_data_178 = .data:0x00000178; // type:object size:0x9 data:string +lbl_1_data_181 = .data:0x00000181; // type:object size:0x3 data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x4 data:4byte +jumptable_1_data_188 = .data:0x00000188; // type:object size:0x1C scope:local +lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x10 +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x4 data:4byte +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x4 data:float +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x4 data:float +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x4 data:float +jumptable_1_data_1C4 = .data:0x000001C4; // type:object size:0x20 scope:local +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x2C +lbl_1_data_210 = .data:0x00000210; // type:object size:0x19 data:string +lbl_1_data_229 = .data:0x00000229; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x8 data:2byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x8 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x2D0 +lbl_1_bss_32C = .bss:0x0000032C; // type:object size:0x4 data:4byte +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0x24 data:4byte +lbl_1_bss_354 = .bss:0x00000354; // type:object size:0x4 data:4byte +lbl_1_bss_358 = .bss:0x00000358; // type:object size:0x4 data:4byte +lbl_1_bss_35C = .bss:0x0000035C; // type:object size:0x1C0 data:4byte +lbl_1_bss_51C = .bss:0x0000051C; // type:object size:0x90 diff --git a/config/GMPJ01_00/rels/mentDll/splits.txt b/config/GMPJ01_00/rels/mentDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/mentDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/mentDll/symbols.txt b/config/GMPJ01_00/rels/mentDll/symbols.txt new file mode 100644 index 00000000..1be34e66 --- /dev/null +++ b/config/GMPJ01_00/rels/mentDll/symbols.txt @@ -0,0 +1,442 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +_prolog = .text:0x000000A4; // type:function size:0x54 scope:global +_epilog = .text:0x000000F8; // type:function size:0x4C scope:global +fn_1_144 = .text:0x00000144; // type:function size:0xC8 +fn_1_20C = .text:0x0000020C; // type:function size:0x28 +fn_1_234 = .text:0x00000234; // type:function size:0x20 +fn_1_254 = .text:0x00000254; // type:function size:0xD8 +fn_1_32C = .text:0x0000032C; // type:function size:0xC8 +fn_1_3F4 = .text:0x000003F4; // type:function size:0xBC +fn_1_4B0 = .text:0x000004B0; // type:function size:0x28 +fn_1_4D8 = .text:0x000004D8; // type:function size:0x20 +fn_1_4F8 = .text:0x000004F8; // type:function size:0x14 +fn_1_50C = .text:0x0000050C; // type:function size:0xDC +fn_1_5E8 = .text:0x000005E8; // type:function size:0xE8 +fn_1_6D0 = .text:0x000006D0; // type:function size:0x24 +fn_1_6F4 = .text:0x000006F4; // type:function size:0xA48 +fn_1_113C = .text:0x0000113C; // type:function size:0x2F8 +fn_1_1434 = .text:0x00001434; // type:function size:0x218 +fn_1_164C = .text:0x0000164C; // type:function size:0x60 +fn_1_16AC = .text:0x000016AC; // type:function size:0x68 +fn_1_1714 = .text:0x00001714; // type:function size:0x90 +fn_1_17A4 = .text:0x000017A4; // type:function size:0x134 +fn_1_18D8 = .text:0x000018D8; // type:function size:0x50 +fn_1_1928 = .text:0x00001928; // type:function size:0x40 +fn_1_1968 = .text:0x00001968; // type:function size:0xF4 +fn_1_1A5C = .text:0x00001A5C; // type:function size:0x37C +fn_1_1DD8 = .text:0x00001DD8; // type:function size:0x37C +fn_1_2154 = .text:0x00002154; // type:function size:0x1C4 +fn_1_2318 = .text:0x00002318; // type:function size:0x54 +fn_1_236C = .text:0x0000236C; // type:function size:0x3E4 +fn_1_2750 = .text:0x00002750; // type:function size:0xB8 +fn_1_2808 = .text:0x00002808; // type:function size:0x3C +fn_1_2844 = .text:0x00002844; // type:function size:0x120 +fn_1_2964 = .text:0x00002964; // type:function size:0x3C +fn_1_29A0 = .text:0x000029A0; // type:function size:0x44 +fn_1_29E4 = .text:0x000029E4; // type:function size:0x26C +fn_1_2C50 = .text:0x00002C50; // type:function size:0x26C +fn_1_2EBC = .text:0x00002EBC; // type:function size:0x27C +fn_1_3138 = .text:0x00003138; // type:function size:0x2B4 +fn_1_33EC = .text:0x000033EC; // type:function size:0x46C +fn_1_3858 = .text:0x00003858; // type:function size:0x454 +fn_1_3CAC = .text:0x00003CAC; // type:function size:0x48C +fn_1_4138 = .text:0x00004138; // type:function size:0x658 +fn_1_4790 = .text:0x00004790; // type:function size:0x4C4 +fn_1_4C54 = .text:0x00004C54; // type:function size:0x4FC +fn_1_5150 = .text:0x00005150; // type:function size:0x6C8 +fn_1_5818 = .text:0x00005818; // type:function size:0x188 +fn_1_59A0 = .text:0x000059A0; // type:function size:0x1B0 +fn_1_5B50 = .text:0x00005B50; // type:function size:0xB8 +fn_1_5C08 = .text:0x00005C08; // type:function size:0xD4 +fn_1_5CDC = .text:0x00005CDC; // type:function size:0x5C +fn_1_5D38 = .text:0x00005D38; // type:function size:0x7FC +fn_1_6534 = .text:0x00006534; // type:function size:0x58 +fn_1_658C = .text:0x0000658C; // type:function size:0x6C0 +fn_1_6C4C = .text:0x00006C4C; // type:function size:0x4D8 +fn_1_7124 = .text:0x00007124; // type:function size:0xF4 +fn_1_7218 = .text:0x00007218; // type:function size:0xEC +fn_1_7304 = .text:0x00007304; // type:function size:0x380 +fn_1_7684 = .text:0x00007684; // type:function size:0x13C +fn_1_77C0 = .text:0x000077C0; // type:function size:0x98 +fn_1_7858 = .text:0x00007858; // type:function size:0xA8 +fn_1_7900 = .text:0x00007900; // type:function size:0x114 +fn_1_7A14 = .text:0x00007A14; // type:function size:0x794 +fn_1_81A8 = .text:0x000081A8; // type:function size:0x30 +fn_1_81D8 = .text:0x000081D8; // type:function size:0x18 +fn_1_81F0 = .text:0x000081F0; // type:function size:0x5C +fn_1_824C = .text:0x0000824C; // type:function size:0x180 +fn_1_83CC = .text:0x000083CC; // type:function size:0x1FC +fn_1_85C8 = .text:0x000085C8; // type:function size:0x2DC +fn_1_88A4 = .text:0x000088A4; // type:function size:0x29C +fn_1_8B40 = .text:0x00008B40; // type:function size:0x28 +fn_1_8B68 = .text:0x00008B68; // type:function size:0x3DC +fn_1_8F44 = .text:0x00008F44; // type:function size:0x54 +fn_1_8F98 = .text:0x00008F98; // type:function size:0x20 +fn_1_8FB8 = .text:0x00008FB8; // type:function size:0x314 +fn_1_92CC = .text:0x000092CC; // type:function size:0x618 +fn_1_98E4 = .text:0x000098E4; // type:function size:0xC8 +fn_1_99AC = .text:0x000099AC; // type:function size:0x20 +fn_1_99CC = .text:0x000099CC; // type:function size:0x6D8 +fn_1_A0A4 = .text:0x0000A0A4; // type:function size:0x20 +fn_1_A0C4 = .text:0x0000A0C4; // type:function size:0x2D8 +fn_1_A39C = .text:0x0000A39C; // type:function size:0x20 +fn_1_A3BC = .text:0x0000A3BC; // type:function size:0x5D4 +fn_1_A990 = .text:0x0000A990; // type:function size:0x20 +fn_1_A9B0 = .text:0x0000A9B0; // type:function size:0x3C8 +fn_1_AD78 = .text:0x0000AD78; // type:function size:0x30C +fn_1_B084 = .text:0x0000B084; // type:function size:0x5D0 +fn_1_B654 = .text:0x0000B654; // type:function size:0xB20 +fn_1_C174 = .text:0x0000C174; // type:function size:0x1E0 +fn_1_C354 = .text:0x0000C354; // type:function size:0xEC +fn_1_C440 = .text:0x0000C440; // type:function size:0x78 +fn_1_C4B8 = .text:0x0000C4B8; // type:function size:0x62C +fn_1_CAE4 = .text:0x0000CAE4; // type:function size:0x288 +fn_1_CD6C = .text:0x0000CD6C; // type:function size:0x20 +fn_1_CD8C = .text:0x0000CD8C; // type:function size:0x200 +fn_1_CF8C = .text:0x0000CF8C; // type:function size:0x384 +fn_1_D310 = .text:0x0000D310; // type:function size:0x20 +fn_1_D330 = .text:0x0000D330; // type:function size:0x20 +fn_1_D350 = .text:0x0000D350; // type:function size:0x2E4 +fn_1_D634 = .text:0x0000D634; // type:function size:0x82C +fn_1_DE60 = .text:0x0000DE60; // type:function size:0x17C +fn_1_DFDC = .text:0x0000DFDC; // type:function size:0x268 +fn_1_E244 = .text:0x0000E244; // type:function size:0x70 +fn_1_E2B4 = .text:0x0000E2B4; // type:function size:0x148 +fn_1_E3FC = .text:0x0000E3FC; // type:function size:0x90 +fn_1_E48C = .text:0x0000E48C; // type:function size:0x1C8 +fn_1_E654 = .text:0x0000E654; // type:function size:0xC8 +fn_1_E71C = .text:0x0000E71C; // type:function size:0x158 +fn_1_E874 = .text:0x0000E874; // type:function size:0xFC8 +fn_1_F83C = .text:0x0000F83C; // type:function size:0x670 +fn_1_FEAC = .text:0x0000FEAC; // type:function size:0x388 +fn_1_10234 = .text:0x00010234; // type:function size:0x308 +fn_1_1053C = .text:0x0001053C; // type:function size:0x7C +fn_1_105B8 = .text:0x000105B8; // type:function size:0x39C +fn_1_10954 = .text:0x00010954; // type:function size:0x308 +fn_1_10C5C = .text:0x00010C5C; // type:function size:0x7C +fn_1_10CD8 = .text:0x00010CD8; // type:function size:0x39C +fn_1_11074 = .text:0x00011074; // type:function size:0x2F4 +fn_1_11368 = .text:0x00011368; // type:function size:0x138 +fn_1_114A0 = .text:0x000114A0; // type:function size:0x74 +fn_1_11514 = .text:0x00011514; // type:function size:0x1E0 +fn_1_116F4 = .text:0x000116F4; // type:function size:0x158 +fn_1_1184C = .text:0x0001184C; // type:function size:0xBC +fn_1_11908 = .text:0x00011908; // type:function size:0x1C8 +fn_1_11AD0 = .text:0x00011AD0; // type:function size:0x2D4 +fn_1_11DA4 = .text:0x00011DA4; // type:function size:0x434 +fn_1_121D8 = .text:0x000121D8; // type:function size:0x624 +fn_1_127FC = .text:0x000127FC; // type:function size:0x210 +fn_1_12A0C = .text:0x00012A0C; // type:function size:0x434 +fn_1_12E40 = .text:0x00012E40; // type:function size:0x508 +fn_1_13348 = .text:0x00013348; // type:function size:0x160 +fn_1_134A8 = .text:0x000134A8; // type:function size:0x1E4 +fn_1_1368C = .text:0x0001368C; // type:function size:0x64 +fn_1_136F0 = .text:0x000136F0; // type:function size:0xB4 +fn_1_137A4 = .text:0x000137A4; // type:function size:0x1CC +fn_1_13970 = .text:0x00013970; // type:function size:0x3F0 +fn_1_13D60 = .text:0x00013D60; // type:function size:0x8C +fn_1_13DEC = .text:0x00013DEC; // type:function size:0xF0 +fn_1_13EDC = .text:0x00013EDC; // type:function size:0x8C +fn_1_13F68 = .text:0x00013F68; // type:function size:0xF0 +fn_1_14058 = .text:0x00014058; // type:function size:0xF0 +fn_1_14148 = .text:0x00014148; // type:function size:0xF0 +fn_1_14238 = .text:0x00014238; // type:function size:0xF0 +fn_1_14328 = .text:0x00014328; // type:function size:0xF0 +fn_1_14418 = .text:0x00014418; // type:function size:0x2B8 +fn_1_146D0 = .text:0x000146D0; // type:function size:0xF0 +fn_1_147C0 = .text:0x000147C0; // type:function size:0xF0 +fn_1_148B0 = .text:0x000148B0; // type:function size:0xF0 +fn_1_149A0 = .text:0x000149A0; // type:function size:0x8C +fn_1_14A2C = .text:0x00014A2C; // type:function size:0x8C +fn_1_14AB8 = .text:0x00014AB8; // type:function size:0xF0 +fn_1_14BA8 = .text:0x00014BA8; // type:function size:0x138 +fn_1_14CE0 = .text:0x00014CE0; // type:function size:0x3B8 +fn_1_15098 = .text:0x00015098; // type:function size:0x120 +fn_1_151B8 = .text:0x000151B8; // type:function size:0x798 +fn_1_15950 = .text:0x00015950; // type:function size:0x364 +fn_1_15CB4 = .text:0x00015CB4; // type:function size:0x5EC +fn_1_162A0 = .text:0x000162A0; // type:function size:0x1EC +fn_1_1648C = .text:0x0001648C; // type:function size:0x6DC +fn_1_16B68 = .text:0x00016B68; // type:function size:0x894 +fn_1_173FC = .text:0x000173FC; // type:function size:0x518 +fn_1_17914 = .text:0x00017914; // type:function size:0xC8 +fn_1_179DC = .text:0x000179DC; // type:function size:0x2EC +fn_1_17CC8 = .text:0x00017CC8; // type:function size:0x454 +fn_1_1811C = .text:0x0001811C; // type:function size:0x3F0 +fn_1_1850C = .text:0x0001850C; // type:function size:0x220 +fn_1_1872C = .text:0x0001872C; // type:function size:0x5C +fn_1_18788 = .text:0x00018788; // type:function size:0x2CC +fn_1_18A54 = .text:0x00018A54; // type:function size:0x378 +fn_1_18DCC = .text:0x00018DCC; // type:function size:0x1A8 +fn_1_18F74 = .text:0x00018F74; // type:function size:0x174 +fn_1_190E8 = .text:0x000190E8; // type:function size:0xBB0 +fn_1_19C98 = .text:0x00019C98; // type:function size:0x1E94 +fn_1_1BB2C = .text:0x0001BB2C; // type:function size:0xA28 +fn_1_1C554 = .text:0x0001C554; // type:function size:0x120 +fn_1_1C674 = .text:0x0001C674; // type:function size:0xE0 +fn_1_1C754 = .text:0x0001C754; // type:function size:0x23C +fn_1_1C990 = .text:0x0001C990; // type:function size:0x238 +fn_1_1CBC8 = .text:0x0001CBC8; // type:function size:0x3A0 +fn_1_1CF68 = .text:0x0001CF68; // type:function size:0x594 +fn_1_1D4FC = .text:0x0001D4FC; // type:function size:0x9CC +fn_1_1DEC8 = .text:0x0001DEC8; // type:function size:0x70 +fn_1_1DF38 = .text:0x0001DF38; // type:function size:0x70 +fn_1_1DFA8 = .text:0x0001DFA8; // type:function size:0x1FC +fn_1_1E1A4 = .text:0x0001E1A4; // type:function size:0x250 +fn_1_1E3F4 = .text:0x0001E3F4; // type:function size:0x4A0 +fn_1_1E894 = .text:0x0001E894; // type:function size:0xD4C +fn_1_1F5E0 = .text:0x0001F5E0; // type:function size:0xC8 +fn_1_1F6A8 = .text:0x0001F6A8; // type:function size:0x1B0 +fn_1_1F858 = .text:0x0001F858; // type:function size:0x1CC +fn_1_1FA24 = .text:0x0001FA24; // type:function size:0x220 +fn_1_1FC44 = .text:0x0001FC44; // type:function size:0x1B4 +fn_1_1FDF8 = .text:0x0001FDF8; // type:function size:0x144 +fn_1_1FF3C = .text:0x0001FF3C; // type:function size:0x610 +fn_1_2054C = .text:0x0002054C; // type:function size:0x260 +fn_1_207AC = .text:0x000207AC; // type:function size:0x138 +fn_1_208E4 = .text:0x000208E4; // type:function size:0x130 +fn_1_20A14 = .text:0x00020A14; // type:function size:0x130 +fn_1_20B44 = .text:0x00020B44; // type:function size:0x5E0 +fn_1_21124 = .text:0x00021124; // type:function size:0x5F0 +fn_1_21714 = .text:0x00021714; // type:function size:0xED0 +fn_1_225E4 = .text:0x000225E4; // type:function size:0xE38 +fn_1_2341C = .text:0x0002341C; // type:function size:0x60C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0xC data:4byte +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x1 data:byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x1C data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0xC data:4byte +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x10 data:4byte +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x18 data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0xC data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC data:4byte +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x18 data:4byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC data:4byte +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC data:4byte +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0xC data:4byte +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x1C data:4byte +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x10 data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x18 data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0xC data:4byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0xC data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x1C data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0xC data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0xC data:4byte +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0xC data:4byte +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0xC data:4byte +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC data:4byte +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x18 data:4byte +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x90 +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x18 data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x40 data:4byte +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x20 data:4byte +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x20 data:4byte +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte +lbl_1_data_70 = .data:0x00000070; // type:object size:0x4 data:4byte +lbl_1_data_74 = .data:0x00000074; // type:object size:0x22 data:string +lbl_1_data_96 = .data:0x00000096; // type:object size:0x1A data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x1A data:string +lbl_1_data_CA = .data:0x000000CA; // type:object size:0xE data:string +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x48 data:float +lbl_1_data_120 = .data:0x00000120; // type:object size:0x18 +jumptable_1_data_138 = .data:0x00000138; // type:object size:0x30 scope:local +lbl_1_data_168 = .data:0x00000168; // type:object size:0x16 data:string +lbl_1_data_17E = .data:0x0000017E; // type:object size:0x15 data:string +lbl_1_data_193 = .data:0x00000193; // type:object size:0x17 data:string +lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x16 data:string +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x17 data:string +lbl_1_data_1D7 = .data:0x000001D7; // type:object size:0x16 data:string +lbl_1_data_1ED = .data:0x000001ED; // type:object size:0x17 data:string +lbl_1_data_204 = .data:0x00000204; // type:object size:0x16 data:string +lbl_1_data_21A = .data:0x0000021A; // type:object size:0xF data:string +lbl_1_data_229 = .data:0x00000229; // type:object size:0x1C data:string +lbl_1_data_245 = .data:0x00000245; // type:object size:0x1D data:string +lbl_1_data_262 = .data:0x00000262; // type:object size:0x14 data:string +lbl_1_data_276 = .data:0x00000276; // type:object size:0x15 data:string +lbl_1_data_28B = .data:0x0000028B; // type:object size:0x14 data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x15 +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3C +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x4 data:4byte +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20 data:string +lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 data:string +lbl_1_data_334 = .data:0x00000334; // type:object size:0x2A data:string +lbl_1_data_35E = .data:0x0000035E; // type:object size:0x3 data:string +lbl_1_data_361 = .data:0x00000361; // type:object size:0x1B data:string +lbl_1_data_37C = .data:0x0000037C; // type:object size:0x1A data:string +lbl_1_data_396 = .data:0x00000396; // type:object size:0x29 data:string +lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x2A data:string +lbl_1_data_3E9 = .data:0x000003E9; // type:object size:0x2A data:string +lbl_1_data_413 = .data:0x00000413; // type:object size:0x2B data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x29 data:string +lbl_1_data_467 = .data:0x00000467; // type:object size:0x2B data:string +lbl_1_data_492 = .data:0x00000492; // type:object size:0x20 data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x22 +jumptable_1_data_4D4 = .data:0x000004D4; // type:object size:0x54 scope:local +lbl_1_data_528 = .data:0x00000528; // type:object size:0x1B data:string +lbl_1_data_543 = .data:0x00000543; // type:object size:0x1A data:string +lbl_1_data_55D = .data:0x0000055D; // type:object size:0xF data:string +lbl_1_data_56C = .data:0x0000056C; // type:object size:0x10 data:string +lbl_1_data_57C = .data:0x0000057C; // type:object size:0x40 +lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x20 +lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x64 data:float +lbl_1_data_640 = .data:0x00000640; // type:object size:0x50 data:4byte +lbl_1_data_690 = .data:0x00000690; // type:object size:0x40 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x14 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x10 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x40 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x44 data:float +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x20 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x4 data:4byte +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x15E0 +lbl_1_bss_16C4 = .bss:0x000016C4; // type:object size:0x1A40 +lbl_1_bss_3104 = .bss:0x00003104; // type:object size:0x4 data:4byte +lbl_1_bss_3108 = .bss:0x00003108; // type:object size:0xC data:4byte +lbl_1_bss_3114 = .bss:0x00003114; // type:object size:0x240 data:4byte +lbl_1_bss_3354 = .bss:0x00003354; // type:object size:0x58 data:4byte +lbl_1_bss_33AC = .bss:0x000033AC; // type:object size:0x210 data:4byte +lbl_1_bss_35BC = .bss:0x000035BC; // type:object size:0xB0 data:4byte +lbl_1_bss_366C = .bss:0x0000366C; // type:object size:0x58 data:4byte diff --git a/config/GMPJ01_00/rels/mgmodedll/splits.txt b/config/GMPJ01_00/rels/mgmodedll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/mgmodedll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/mgmodedll/symbols.txt b/config/GMPJ01_00/rels/mgmodedll/symbols.txt new file mode 100644 index 00000000..506d2aa6 --- /dev/null +++ b/config/GMPJ01_00/rels/mgmodedll/symbols.txt @@ -0,0 +1,583 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x3C4 +fn_1_464 = .text:0x00000464; // type:function size:0x294 +fn_1_6F8 = .text:0x000006F8; // type:function size:0x6F8 +fn_1_DF0 = .text:0x00000DF0; // type:function size:0xD1C +fn_1_1B0C = .text:0x00001B0C; // type:function size:0x6B8 +fn_1_21C4 = .text:0x000021C4; // type:function size:0x77C +fn_1_2940 = .text:0x00002940; // type:function size:0x810 +fn_1_3150 = .text:0x00003150; // type:function size:0x788 +fn_1_38D8 = .text:0x000038D8; // type:function size:0x738 +fn_1_4010 = .text:0x00004010; // type:function size:0x86C +fn_1_487C = .text:0x0000487C; // type:function size:0x260 +fn_1_4ADC = .text:0x00004ADC; // type:function size:0x800 +fn_1_52DC = .text:0x000052DC; // type:function size:0x218 +fn_1_54F4 = .text:0x000054F4; // type:function size:0xCC +fn_1_55C0 = .text:0x000055C0; // type:function size:0x3B4 +fn_1_5974 = .text:0x00005974; // type:function size:0xC78 +fn_1_65EC = .text:0x000065EC; // type:function size:0xC4 +fn_1_66B0 = .text:0x000066B0; // type:function size:0x2C4 +fn_1_6974 = .text:0x00006974; // type:function size:0x90 +fn_1_6A04 = .text:0x00006A04; // type:function size:0xEC +fn_1_6AF0 = .text:0x00006AF0; // type:function size:0x128 +fn_1_6C18 = .text:0x00006C18; // type:function size:0x110 +fn_1_6D28 = .text:0x00006D28; // type:function size:0x311C +fn_1_9E44 = .text:0x00009E44; // type:function size:0x120 +fn_1_9F64 = .text:0x00009F64; // type:function size:0x400 +fn_1_A364 = .text:0x0000A364; // type:function size:0x2C0 +fn_1_A624 = .text:0x0000A624; // type:function size:0x84 +fn_1_A6A8 = .text:0x0000A6A8; // type:function size:0x604 +fn_1_ACAC = .text:0x0000ACAC; // type:function size:0xF4 +fn_1_ADA0 = .text:0x0000ADA0; // type:function size:0x80 +fn_1_AE20 = .text:0x0000AE20; // type:function size:0xB0 +fn_1_AED0 = .text:0x0000AED0; // type:function size:0x6D8 +fn_1_B5A8 = .text:0x0000B5A8; // type:function size:0x1C8 +fn_1_B770 = .text:0x0000B770; // type:function size:0x248 +fn_1_B9B8 = .text:0x0000B9B8; // type:function size:0x16C +fn_1_BB24 = .text:0x0000BB24; // type:function size:0x47C +fn_1_BFA0 = .text:0x0000BFA0; // type:function size:0x128 +fn_1_C0C8 = .text:0x0000C0C8; // type:function size:0x1808 +fn_1_D8D0 = .text:0x0000D8D0; // type:function size:0x56C +fn_1_DE3C = .text:0x0000DE3C; // type:function size:0x17C +fn_1_DFB8 = .text:0x0000DFB8; // type:function size:0x74 +fn_1_E02C = .text:0x0000E02C; // type:function size:0x700 +fn_1_E72C = .text:0x0000E72C; // type:function size:0x1830 +fn_1_FF5C = .text:0x0000FF5C; // type:function size:0x608 +fn_1_10564 = .text:0x00010564; // type:function size:0xD38 +fn_1_1129C = .text:0x0001129C; // type:function size:0xBCC +fn_1_11E68 = .text:0x00011E68; // type:function size:0x3C4 +fn_1_1222C = .text:0x0001222C; // type:function size:0x938 +fn_1_12B64 = .text:0x00012B64; // type:function size:0x88 +fn_1_12BEC = .text:0x00012BEC; // type:function size:0x82C +fn_1_13418 = .text:0x00013418; // type:function size:0x18E4 +fn_1_14CFC = .text:0x00014CFC; // type:function size:0x119C +fn_1_15E98 = .text:0x00015E98; // type:function size:0x5A0 +fn_1_16438 = .text:0x00016438; // type:function size:0x6F8 +fn_1_16B30 = .text:0x00016B30; // type:function size:0xF2C +fn_1_17A5C = .text:0x00017A5C; // type:function size:0x184 +fn_1_17BE0 = .text:0x00017BE0; // type:function size:0x1218 +fn_1_18DF8 = .text:0x00018DF8; // type:function size:0x220 +fn_1_19018 = .text:0x00019018; // type:function size:0x4B0 +fn_1_194C8 = .text:0x000194C8; // type:function size:0x568 +fn_1_19A30 = .text:0x00019A30; // type:function size:0x15C +fn_1_19B8C = .text:0x00019B8C; // type:function size:0x174 +fn_1_19D00 = .text:0x00019D00; // type:function size:0x194 +fn_1_19E94 = .text:0x00019E94; // type:function size:0xC8 +fn_1_19F5C = .text:0x00019F5C; // type:function size:0x608 +fn_1_1A564 = .text:0x0001A564; // type:function size:0x13C +fn_1_1A6A0 = .text:0x0001A6A0; // type:function size:0x248 +fn_1_1A8E8 = .text:0x0001A8E8; // type:function size:0x140 +fn_1_1AA28 = .text:0x0001AA28; // type:function size:0x130 +fn_1_1AB58 = .text:0x0001AB58; // type:function size:0x130 +fn_1_1AC88 = .text:0x0001AC88; // type:function size:0x5D8 +fn_1_1B260 = .text:0x0001B260; // type:function size:0xA8C +fn_1_1BCEC = .text:0x0001BCEC; // type:function size:0x1E0 +fn_1_1BECC = .text:0x0001BECC; // type:function size:0x1D0 +fn_1_1C09C = .text:0x0001C09C; // type:function size:0xAB0 +fn_1_1CB4C = .text:0x0001CB4C; // type:function size:0x364 +fn_1_1CEB0 = .text:0x0001CEB0; // type:function size:0x5EC +fn_1_1D49C = .text:0x0001D49C; // type:function size:0x1EC +fn_1_1D688 = .text:0x0001D688; // type:function size:0x6EC +fn_1_1DD74 = .text:0x0001DD74; // type:function size:0x894 +fn_1_1E608 = .text:0x0001E608; // type:function size:0x518 +fn_1_1EB20 = .text:0x0001EB20; // type:function size:0xC8 +fn_1_1EBE8 = .text:0x0001EBE8; // type:function size:0x138 +fn_1_1ED20 = .text:0x0001ED20; // type:function size:0x138 +fn_1_1EE58 = .text:0x0001EE58; // type:function size:0x4D4 +fn_1_1F32C = .text:0x0001F32C; // type:function size:0x790 +fn_1_1FABC = .text:0x0001FABC; // type:function size:0x188 +fn_1_1FC44 = .text:0x0001FC44; // type:function size:0xAE4 +fn_1_20728 = .text:0x00020728; // type:function size:0x248 +fn_1_20970 = .text:0x00020970; // type:function size:0x514 +fn_1_20E84 = .text:0x00020E84; // type:function size:0x150 +fn_1_20FD4 = .text:0x00020FD4; // type:function size:0x1E0 +fn_1_211B4 = .text:0x000211B4; // type:function size:0x2F0 +fn_1_214A4 = .text:0x000214A4; // type:function size:0x800 +fn_1_21CA4 = .text:0x00021CA4; // type:function size:0x5E8 +fn_1_2228C = .text:0x0002228C; // type:function size:0x49C +fn_1_22728 = .text:0x00022728; // type:function size:0x4E0 +fn_1_22C08 = .text:0x00022C08; // type:function size:0x5E8 +fn_1_231F0 = .text:0x000231F0; // type:function size:0xEF4 +fn_1_240E4 = .text:0x000240E4; // type:function size:0x28 +fn_1_2410C = .text:0x0002410C; // type:function size:0x20 +fn_1_2412C = .text:0x0002412C; // type:function size:0xD8 +fn_1_24204 = .text:0x00024204; // type:function size:0xC8 +fn_1_242CC = .text:0x000242CC; // type:function size:0xBC +fn_1_24388 = .text:0x00024388; // type:function size:0x28 +fn_1_243B0 = .text:0x000243B0; // type:function size:0x20 +fn_1_243D0 = .text:0x000243D0; // type:function size:0x14 +fn_1_243E4 = .text:0x000243E4; // type:function size:0xDC +fn_1_244C0 = .text:0x000244C0; // type:function size:0xE8 +fn_1_245A8 = .text:0x000245A8; // type:function size:0x24 +fn_1_245CC = .text:0x000245CC; // type:function size:0xA48 +fn_1_25014 = .text:0x00025014; // type:function size:0x2F8 +fn_1_2530C = .text:0x0002530C; // type:function size:0x218 +fn_1_25524 = .text:0x00025524; // type:function size:0x60 +fn_1_25584 = .text:0x00025584; // type:function size:0x68 +fn_1_255EC = .text:0x000255EC; // type:function size:0x90 +fn_1_2567C = .text:0x0002567C; // type:function size:0x134 +fn_1_257B0 = .text:0x000257B0; // type:function size:0x48 +fn_1_257F8 = .text:0x000257F8; // type:function size:0x40 +fn_1_25838 = .text:0x00025838; // type:function size:0xF4 +fn_1_2592C = .text:0x0002592C; // type:function size:0x37C +fn_1_25CA8 = .text:0x00025CA8; // type:function size:0x1CC +fn_1_25E74 = .text:0x00025E74; // type:function size:0x54 +fn_1_25EC8 = .text:0x00025EC8; // type:function size:0x13C +fn_1_26004 = .text:0x00026004; // type:function size:0x78C +fn_1_26790 = .text:0x00026790; // type:function size:0x58 +fn_1_267E8 = .text:0x000267E8; // type:function size:0x290 +fn_1_26A78 = .text:0x00026A78; // type:function size:0x138 +fn_1_26BB0 = .text:0x00026BB0; // type:function size:0x78 +fn_1_26C28 = .text:0x00026C28; // type:function size:0x2C +fn_1_26C54 = .text:0x00026C54; // type:function size:0x42C +fn_1_27080 = .text:0x00027080; // type:function size:0x134 +fn_1_271B4 = .text:0x000271B4; // type:function size:0x264 +fn_1_27418 = .text:0x00027418; // type:function size:0x424 +fn_1_2783C = .text:0x0002783C; // type:function size:0x1C0 +fn_1_279FC = .text:0x000279FC; // type:function size:0x210 +fn_1_27C0C = .text:0x00027C0C; // type:function size:0xE4 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0xC data:4byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0xC data:4byte +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0xC data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:double +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 data:double +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:double +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x8 data:double +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 data:double +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:double +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:double +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 data:double +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 data:double +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:double +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0xC data:4byte +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float +lbl_1_rodata_5FC = .rodata:0x000005FC; // type:object size:0x4 data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x4 data:float +lbl_1_rodata_604 = .rodata:0x00000604; // type:object size:0x4 data:float +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 data:float +lbl_1_rodata_60C = .rodata:0x0000060C; // type:object size:0x4 data:float +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 data:float +lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 data:float +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 data:float +lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 data:float +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 data:float +lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 data:float +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 data:float +lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 data:float +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 data:float +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 data:double +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x8 data:double +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 data:float +lbl_1_rodata_684 = .rodata:0x00000684; // type:object size:0x4 data:float +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x8 data:double +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 data:double +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 data:float +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x8 data:double +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float +lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 data:float +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x4 data:float +lbl_1_rodata_6B4 = .rodata:0x000006B4; // type:object size:0xC data:4byte +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0xC data:4byte +lbl_1_rodata_6CC = .rodata:0x000006CC; // type:object size:0xC data:4byte +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 data:float +lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 data:float +lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 data:float +lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 data:float +lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0x4 data:float +lbl_1_rodata_6F4 = .rodata:0x000006F4; // type:object size:0x4 data:float +lbl_1_rodata_6F8 = .rodata:0x000006F8; // type:object size:0x4 data:float +lbl_1_rodata_6FC = .rodata:0x000006FC; // type:object size:0x4 data:float +lbl_1_rodata_700 = .rodata:0x00000700; // type:object size:0x4 data:float +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x8 data:double +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x8 data:float +lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 data:float +lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x8 data:double +lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float +lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float +lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float +lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x4 data:float +lbl_1_rodata_738 = .rodata:0x00000738; // type:object size:0x4 data:float +lbl_1_rodata_740 = .rodata:0x00000740; // type:object size:0x8 data:double +lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x8 data:double +lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 data:float +lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x8 data:double +lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x4 data:float +lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x8 data:double +lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0x8 data:double +lbl_1_rodata_778 = .rodata:0x00000778; // type:object size:0x4 data:float +lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x8 data:double +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x4 data:float +lbl_1_rodata_78C = .rodata:0x0000078C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1C +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x24 +lbl_1_data_40 = .data:0x00000040; // type:object size:0x30 data:4byte +lbl_1_data_70 = .data:0x00000070; // type:object size:0x16 data:string +lbl_1_data_86 = .data:0x00000086; // type:object size:0x6 +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x4 +lbl_1_data_90 = .data:0x00000090; // type:object size:0xA data:string +lbl_1_data_9A = .data:0x0000009A; // type:object size:0x6 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x2 data:2byte +lbl_1_data_A2 = .data:0x000000A2; // type:object size:0xE +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x10 +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x6 +lbl_1_data_D6 = .data:0x000000D6; // type:object size:0xA +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x20 +lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x10 +lbl_1_data_120 = .data:0x00000120; // type:object size:0x28 +lbl_1_data_148 = .data:0x00000148; // type:object size:0x2 data:2byte +lbl_1_data_14A = .data:0x0000014A; // type:object size:0x8 +lbl_1_data_152 = .data:0x00000152; // type:object size:0x16 +lbl_1_data_168 = .data:0x00000168; // type:object size:0x2 data:2byte +lbl_1_data_16A = .data:0x0000016A; // type:object size:0x32 +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x10 +lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x10 +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0xA data:string +lbl_1_data_1C6 = .data:0x000001C6; // type:object size:0xE data:string +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x10 +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x24 data:string +lbl_1_data_208 = .data:0x00000208; // type:object size:0x26 data:string +lbl_1_data_22E = .data:0x0000022E; // type:object size:0x27 data:string +lbl_1_data_255 = .data:0x00000255; // type:object size:0x1C data:string +lbl_1_data_271 = .data:0x00000271; // type:object size:0x1B data:string +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x1C data:string +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x1D data:string +lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0xC data:string +lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x1A data:string +lbl_1_data_2EB = .data:0x000002EB; // type:object size:0x1A data:string +lbl_1_data_305 = .data:0x00000305; // type:object size:0x27 +lbl_1_data_32C = .data:0x0000032C; // type:object size:0x40 data:4byte +lbl_1_data_36C = .data:0x0000036C; // type:object size:0x60 +lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x18 data:4byte +lbl_1_data_3E4 = .data:0x000003E4; // type:object size:0x64 +lbl_1_data_448 = .data:0x00000448; // type:object size:0x40 +lbl_1_data_488 = .data:0x00000488; // type:object size:0x8 data:4byte +lbl_1_data_490 = .data:0x00000490; // type:object size:0x2D8 +lbl_1_data_768 = .data:0x00000768; // type:object size:0x258 +lbl_1_data_9C0 = .data:0x000009C0; // type:object size:0x20 +lbl_1_data_9E0 = .data:0x000009E0; // type:object size:0x20 +lbl_1_data_A00 = .data:0x00000A00; // type:object size:0x2 data:2byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x264 data:4byte +lbl_1_bss_26C = .bss:0x0000026C; // type:object size:0x8 data:float +lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x18 data:4byte +lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x18 data:4byte +lbl_1_bss_2A4 = .bss:0x000002A4; // type:object size:0x2 data:2byte +lbl_1_bss_2A6 = .bss:0x000002A6; // type:object size:0xA data:2byte +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 data:float +lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0xC data:4byte +lbl_1_bss_2C0 = .bss:0x000002C0; // type:object size:0xC data:4byte +lbl_1_bss_2CC = .bss:0x000002CC; // type:object size:0x2 data:2byte +lbl_1_bss_2CE = .bss:0x000002CE; // type:object size:0x2 data:2byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x8 data:4byte +lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0x4 data:4byte +lbl_1_bss_2DC = .bss:0x000002DC; // type:object size:0x6 +lbl_1_bss_2E2 = .bss:0x000002E2; // type:object size:0x2 data:2byte +lbl_1_bss_2E4 = .bss:0x000002E4; // type:object size:0x2 data:2byte +lbl_1_bss_2E6 = .bss:0x000002E6; // type:object size:0x2 data:2byte +lbl_1_bss_2E8 = .bss:0x000002E8; // type:object size:0x4 data:float +lbl_1_bss_2EC = .bss:0x000002EC; // type:object size:0x2 data:2byte +lbl_1_bss_2EE = .bss:0x000002EE; // type:object size:0x2 data:2byte +lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0x2 data:2byte +lbl_1_bss_2F4 = .bss:0x000002F4; // type:object size:0x18 +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0x2 data:2byte +lbl_1_bss_30E = .bss:0x0000030E; // type:object size:0x8 +lbl_1_bss_316 = .bss:0x00000316; // type:object size:0x2 data:2byte +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0x28 data:2byte +lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x8 +lbl_1_bss_348 = .bss:0x00000348; // type:object size:0x2 data:2byte +lbl_1_bss_34A = .bss:0x0000034A; // type:object size:0x8 data:2byte +lbl_1_bss_352 = .bss:0x00000352; // type:object size:0x1E +lbl_1_bss_370 = .bss:0x00000370; // type:object size:0xC +lbl_1_bss_37C = .bss:0x0000037C; // type:object size:0xC +lbl_1_bss_388 = .bss:0x00000388; // type:object size:0x2 data:2byte +lbl_1_bss_38A = .bss:0x0000038A; // type:object size:0x2 data:2byte +lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x8 +lbl_1_bss_394 = .bss:0x00000394; // type:object size:0x2 data:2byte +lbl_1_bss_396 = .bss:0x00000396; // type:object size:0xA +lbl_1_bss_3A0 = .bss:0x000003A0; // type:object size:0x4 data:4byte +lbl_1_bss_3A4 = .bss:0x000003A4; // type:object size:0x2 data:2byte +lbl_1_bss_3A8 = .bss:0x000003A8; // type:object size:0x2 data:2byte +lbl_1_bss_3AA = .bss:0x000003AA; // type:object size:0x2 data:2byte +lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x2 data:2byte +lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x2 data:2byte +lbl_1_bss_3B4 = .bss:0x000003B4; // type:object size:0x2 data:2byte +lbl_1_bss_3B8 = .bss:0x000003B8; // type:object size:0x8 data:2byte +lbl_1_bss_3C0 = .bss:0x000003C0; // type:object size:0x4 data:4byte +lbl_1_bss_3C4 = .bss:0x000003C4; // type:object size:0x4 data:4byte +lbl_1_bss_3C8 = .bss:0x000003C8; // type:object size:0x4 data:4byte +lbl_1_bss_3CC = .bss:0x000003CC; // type:object size:0x1A40 +lbl_1_bss_1E0C = .bss:0x00001E0C; // type:object size:0x4 data:4byte +lbl_1_bss_1E10 = .bss:0x00001E10; // type:object size:0x240 data:4byte +lbl_1_bss_2050 = .bss:0x00002050; // type:object size:0x5A +lbl_1_bss_20AA = .bss:0x000020AA; // type:object size:0x2 data:2byte +lbl_1_bss_20AC = .bss:0x000020AC; // type:object size:0x14 data:2byte +lbl_1_bss_20C0 = .bss:0x000020C0; // type:object size:0x578 +lbl_1_bss_2638 = .bss:0x00002638; // type:object size:0x14 data:2byte +lbl_1_bss_264C = .bss:0x0000264C; // type:object size:0x578 +lbl_1_bss_2BC4 = .bss:0x00002BC4; // type:object size:0x50 +lbl_1_bss_2C14 = .bss:0x00002C14; // type:object size:0x8 +lbl_1_bss_2C1C = .bss:0x00002C1C; // type:object size:0x8 +lbl_1_bss_2C24 = .bss:0x00002C24; // type:object size:0x8 +lbl_1_bss_2C2C = .bss:0x00002C2C; // type:object size:0x3A data:2byte +lbl_1_bss_2C66 = .bss:0x00002C66; // type:object size:0x1A data:2byte +lbl_1_bss_2C80 = .bss:0x00002C80; // type:object size:0x1A data:2byte diff --git a/config/GMPJ01_00/rels/modeltestDll/splits.txt b/config/GMPJ01_00/rels/modeltestDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/modeltestDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/modeltestDll/symbols.txt b/config/GMPJ01_00/rels/modeltestDll/symbols.txt new file mode 100644 index 00000000..3c87f506 --- /dev/null +++ b/config/GMPJ01_00/rels/modeltestDll/symbols.txt @@ -0,0 +1,230 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x1FC +fn_1_29C = .text:0x0000029C; // type:function size:0xC9C +fn_1_F38 = .text:0x00000F38; // type:function size:0x64 +fn_1_F9C = .text:0x00000F9C; // type:function size:0x1158 +fn_1_20F4 = .text:0x000020F4; // type:function size:0x804 +fn_1_28F8 = .text:0x000028F8; // type:function size:0x204 +fn_1_2AFC = .text:0x00002AFC; // type:function size:0x6C +fn_1_2B68 = .text:0x00002B68; // type:function size:0x948 +fn_1_34B0 = .text:0x000034B0; // type:function size:0x32C +fn_1_37DC = .text:0x000037DC; // type:function size:0xBC0 +fn_1_439C = .text:0x0000439C; // type:function size:0x354 +fn_1_46F0 = .text:0x000046F0; // type:function size:0x3D8 +fn_1_4AC8 = .text:0x00004AC8; // type:function size:0x330 +fn_1_4DF8 = .text:0x00004DF8; // type:function size:0xC68 +fn_1_5A60 = .text:0x00005A60; // type:function size:0x348 +fn_1_5DA8 = .text:0x00005DA8; // type:function size:0xC20 +fn_1_69C8 = .text:0x000069C8; // type:function size:0x118 +fn_1_6AE0 = .text:0x00006AE0; // type:function size:0x166C +fn_1_814C = .text:0x0000814C; // type:function size:0x17C +fn_1_82C8 = .text:0x000082C8; // type:function size:0xEC +fn_1_83B4 = .text:0x000083B4; // type:function size:0x304 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0xC data:4byte +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0xC data:4byte +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x10 data:2byte +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0xC data:4byte +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0xC data:4byte +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0xC data:4byte +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0xC data:4byte +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0xC data:4byte +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0xC data:4byte +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 data:4byte +lbl_1_data_20 = .data:0x00000020; // type:object size:0x28 data:string +lbl_1_data_48 = .data:0x00000048; // type:object size:0x9 data:string +lbl_1_data_51 = .data:0x00000051; // type:object size:0x9 data:string +lbl_1_data_5A = .data:0x0000005A; // type:object size:0x9 data:string +lbl_1_data_63 = .data:0x00000063; // type:object size:0x9 data:string +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x9 data:string +lbl_1_data_75 = .data:0x00000075; // type:object size:0x9 data:string +lbl_1_data_7E = .data:0x0000007E; // type:object size:0x9 data:string +lbl_1_data_87 = .data:0x00000087; // type:object size:0x9 data:string +lbl_1_data_90 = .data:0x00000090; // type:object size:0x9 data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0x9 data:string +lbl_1_data_A2 = .data:0x000000A2; // type:object size:0x9 data:string +lbl_1_data_AB = .data:0x000000AB; // type:object size:0x9 data:string +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x9 data:string +lbl_1_data_BD = .data:0x000000BD; // type:object size:0x9 data:string +lbl_1_data_C6 = .data:0x000000C6; // type:object size:0x9 data:string +lbl_1_data_CF = .data:0x000000CF; // type:object size:0x9 data:string +lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x40 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x50 data:float +lbl_1_data_168 = .data:0x00000168; // type:object size:0xA0 +lbl_1_data_208 = .data:0x00000208; // type:object size:0x50 +lbl_1_data_258 = .data:0x00000258; // type:object size:0x50 +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x1A data:string +lbl_1_data_2C2 = .data:0x000002C2; // type:object size:0x16 +lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x10 data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x4 data:string +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x2C data:string +lbl_1_data_318 = .data:0x00000318; // type:object size:0x40 +lbl_1_data_358 = .data:0x00000358; // type:object size:0x8 +lbl_1_data_360 = .data:0x00000360; // type:object size:0x28 data:string +lbl_1_data_388 = .data:0x00000388; // type:object size:0x28 data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x58 +lbl_1_data_408 = .data:0x00000408; // type:object size:0x58 +lbl_1_data_460 = .data:0x00000460; // type:object size:0x58 +lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0x58 +lbl_1_data_510 = .data:0x00000510; // type:object size:0x58 +lbl_1_data_568 = .data:0x00000568; // type:object size:0x58 +lbl_1_data_5C0 = .data:0x000005C0; // type:object size:0x58 +lbl_1_data_618 = .data:0x00000618; // type:object size:0x58 +lbl_1_data_670 = .data:0x00000670; // type:object size:0x20 +lbl_1_data_690 = .data:0x00000690; // type:object size:0x10 data:string +lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0xD data:string +lbl_1_data_6AD = .data:0x000006AD; // type:object size:0xD data:string +lbl_1_data_6BA = .data:0x000006BA; // type:object size:0xD data:string +lbl_1_data_6C7 = .data:0x000006C7; // type:object size:0xB data:string +lbl_1_data_6D2 = .data:0x000006D2; // type:object size:0x8 data:string +lbl_1_data_6DA = .data:0x000006DA; // type:object size:0xF data:string +lbl_1_data_6E9 = .data:0x000006E9; // type:object size:0xB +lbl_1_data_6F4 = .data:0x000006F4; // type:object size:0x60 +lbl_1_data_754 = .data:0x00000754; // type:object size:0x4 data:4byte +lbl_1_data_758 = .data:0x00000758; // type:object size:0x12 +lbl_1_data_76A = .data:0x0000076A; // type:object size:0x2E +lbl_1_data_798 = .data:0x00000798; // type:object size:0x14 +lbl_1_data_7AC = .data:0x000007AC; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x1 data:byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x10 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x414 +lbl_1_bss_454 = .bss:0x00000454; // type:object size:0x4 data:4byte +lbl_1_bss_458 = .bss:0x00000458; // type:object size:0x2 data:2byte +lbl_1_bss_45A = .bss:0x0000045A; // type:object size:0x6 data:2byte +lbl_1_bss_460 = .bss:0x00000460; // type:object size:0x204 data:2byte +lbl_1_bss_664 = .bss:0x00000664; // type:object size:0x200 data:2byte +lbl_1_bss_864 = .bss:0x00000864; // type:object size:0x20 +lbl_1_bss_884 = .bss:0x00000884; // type:object size:0x2 data:2byte +lbl_1_bss_888 = .bss:0x00000888; // type:object size:0x2 data:2byte +lbl_1_bss_88A = .bss:0x0000088A; // type:object size:0x100 +lbl_1_bss_98A = .bss:0x0000098A; // type:object size:0x10 data:2byte +lbl_1_bss_99A = .bss:0x0000099A; // type:object size:0x2 data:2byte +lbl_1_bss_99C = .bss:0x0000099C; // type:object size:0x2 data:2byte +lbl_1_bss_9A0 = .bss:0x000009A0; // type:object size:0x4 data:4byte +lbl_1_bss_9A4 = .bss:0x000009A4; // type:object size:0x4 data:4byte +lbl_1_bss_9A8 = .bss:0x000009A8; // type:object size:0x4 data:4byte +lbl_1_bss_9AC = .bss:0x000009AC; // type:object size:0x40 +lbl_1_bss_9EC = .bss:0x000009EC; // type:object size:0x8 +lbl_1_bss_9F4 = .bss:0x000009F4; // type:object size:0x4 data:4byte +lbl_1_bss_9F8 = .bss:0x000009F8; // type:object size:0x8 data:4byte +lbl_1_bss_A00 = .bss:0x00000A00; // type:object size:0x4 data:4byte +lbl_1_bss_A04 = .bss:0x00000A04; // type:object size:0x4 data:4byte +lbl_1_bss_A08 = .bss:0x00000A08; // type:object size:0x2 data:2byte +lbl_1_bss_A0C = .bss:0x00000A0C; // type:object size:0x8 data:float +lbl_1_bss_A14 = .bss:0x00000A14; // type:object size:0x4 data:4byte +lbl_1_bss_A18 = .bss:0x00000A18; // type:object size:0xA4 data:float +lbl_1_bss_ABC = .bss:0x00000ABC; // type:object size:0x4 data:4byte +lbl_1_bss_AC0 = .bss:0x00000AC0; // type:object size:0x8 data:4byte diff --git a/config/GMPJ01_00/rels/modeseldll/splits.txt b/config/GMPJ01_00/rels/modeseldll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/modeseldll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/modeseldll/symbols.txt b/config/GMPJ01_00/rels/modeseldll/symbols.txt new file mode 100644 index 00000000..9e826608 --- /dev/null +++ b/config/GMPJ01_00/rels/modeseldll/symbols.txt @@ -0,0 +1,270 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x384 +fn_1_424 = .text:0x00000424; // type:function size:0x5E0 +fn_1_A04 = .text:0x00000A04; // type:function size:0xFC +fn_1_B00 = .text:0x00000B00; // type:function size:0x9C +fn_1_B9C = .text:0x00000B9C; // type:function size:0x3B4 +fn_1_F50 = .text:0x00000F50; // type:function size:0xC2C +fn_1_1B7C = .text:0x00001B7C; // type:function size:0x2C4 +fn_1_1E40 = .text:0x00001E40; // type:function size:0x90 +fn_1_1ED0 = .text:0x00001ED0; // type:function size:0x4A8 +fn_1_2378 = .text:0x00002378; // type:function size:0x128 +fn_1_24A0 = .text:0x000024A0; // type:function size:0x11D8 +fn_1_3678 = .text:0x00003678; // type:function size:0x174 +fn_1_37EC = .text:0x000037EC; // type:function size:0x2DC +fn_1_3AC8 = .text:0x00003AC8; // type:function size:0x1B80 +fn_1_5648 = .text:0x00005648; // type:function size:0x19C +fn_1_57E4 = .text:0x000057E4; // type:function size:0x88 +fn_1_586C = .text:0x0000586C; // type:function size:0x35C +fn_1_5BC8 = .text:0x00005BC8; // type:function size:0x8C +fn_1_5C54 = .text:0x00005C54; // type:function size:0xF8 +fn_1_5D4C = .text:0x00005D4C; // type:function size:0x484 +fn_1_61D0 = .text:0x000061D0; // type:function size:0x1134 +fn_1_7304 = .text:0x00007304; // type:function size:0x34C +fn_1_7650 = .text:0x00007650; // type:function size:0x8C +fn_1_76DC = .text:0x000076DC; // type:function size:0x4C0 +fn_1_7B9C = .text:0x00007B9C; // type:function size:0x5B8 +fn_1_8154 = .text:0x00008154; // type:function size:0x288 +fn_1_83DC = .text:0x000083DC; // type:function size:0x18C +fn_1_8568 = .text:0x00008568; // type:function size:0x6F0 +fn_1_8C58 = .text:0x00008C58; // type:function size:0x11DC +fn_1_9E34 = .text:0x00009E34; // type:function size:0x38 +fn_1_9E6C = .text:0x00009E6C; // type:function size:0xAE4 +fn_1_A950 = .text:0x0000A950; // type:function size:0x1F8 +fn_1_AB48 = .text:0x0000AB48; // type:function size:0xE20 +fn_1_B968 = .text:0x0000B968; // type:function size:0x154 +fn_1_BABC = .text:0x0000BABC; // type:function size:0x60 +fn_1_BB1C = .text:0x0000BB1C; // type:function size:0x458 +fn_1_BF74 = .text:0x0000BF74; // type:function size:0x290 +fn_1_C204 = .text:0x0000C204; // type:function size:0x154 +fn_1_C358 = .text:0x0000C358; // type:function size:0x78 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:byte +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 +lbl_1_data_38 = .data:0x00000038; // type:object size:0x22 data:string +lbl_1_data_5A = .data:0x0000005A; // type:object size:0x14 data:string +lbl_1_data_6E = .data:0x0000006E; // type:object size:0x4 +lbl_1_data_72 = .data:0x00000072; // type:object size:0xA data:string +lbl_1_data_7C = .data:0x0000007C; // type:object size:0x4 data:string +lbl_1_data_80 = .data:0x00000080; // type:object size:0xC +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x18 +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x18 +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x18 +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x14 data:string +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x9 data:string +lbl_1_data_F1 = .data:0x000000F1; // type:object size:0xF +lbl_1_data_100 = .data:0x00000100; // type:object size:0x11C data:2byte +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x48 data:4byte +lbl_1_data_264 = .data:0x00000264; // type:object size:0x3 +lbl_1_data_267 = .data:0x00000267; // type:object size:0x5 +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x8 +lbl_1_data_274 = .data:0x00000274; // type:object size:0x2 data:string +lbl_1_data_276 = .data:0x00000276; // type:object size:0x2 data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0x8 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:string +lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:string +lbl_1_data_284 = .data:0x00000284; // type:object size:0x4 +lbl_1_data_288 = .data:0x00000288; // type:object size:0xC +lbl_1_data_294 = .data:0x00000294; // type:object size:0x19 data:string +lbl_1_data_2AD = .data:0x000002AD; // type:object size:0x23 data:string +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x1B data:string +lbl_1_data_2EB = .data:0x000002EB; // type:object size:0x19 data:string +lbl_1_data_304 = .data:0x00000304; // type:object size:0x19 data:string +lbl_1_data_31D = .data:0x0000031D; // type:object size:0x20 data:string +lbl_1_data_33D = .data:0x0000033D; // type:object size:0x1B data:string +lbl_1_data_358 = .data:0x00000358; // type:object size:0x1B data:string +lbl_1_data_373 = .data:0x00000373; // type:object size:0x22 data:string +lbl_1_data_395 = .data:0x00000395; // type:object size:0x5 data:string +lbl_1_data_39A = .data:0x0000039A; // type:object size:0x15 data:string +lbl_1_data_3AF = .data:0x000003AF; // type:object size:0x15 data:string +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x1F data:string +lbl_1_data_3E3 = .data:0x000003E3; // type:object size:0x10 data:string +lbl_1_data_3F3 = .data:0x000003F3; // type:object size:0xD data:string +lbl_1_data_400 = .data:0x00000400; // type:object size:0x16 +lbl_1_data_416 = .data:0x00000416; // type:object size:0x6 data:string +lbl_1_data_41C = .data:0x0000041C; // type:object size:0x2 data:2byte +lbl_1_data_41E = .data:0x0000041E; // type:object size:0xA +lbl_1_data_428 = .data:0x00000428; // type:object size:0x514 +lbl_1_data_93C = .data:0x0000093C; // type:object size:0x104 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x18 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x30 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0xC data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0xC data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x8 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x2 data:2byte +lbl_1_bss_82 = .bss:0x00000082; // type:object size:0x6 data:2byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x2 data:2byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:float +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x2 data:2byte +lbl_1_bss_92 = .bss:0x00000092; // type:object size:0x6 +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x6 +lbl_1_bss_9E = .bss:0x0000009E; // type:object size:0x6 +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x8 +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0xC +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0xC +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0xC +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x18 +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x6 +lbl_1_bss_EE = .bss:0x000000EE; // type:object size:0x6 +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x4 data:4byte +lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x4 data:4byte +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x8 data:float +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x8 data:float +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x6 +lbl_1_bss_116 = .bss:0x00000116; // type:object size:0x6 +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x2 data:2byte +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0xC data:4byte +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x8 data:4byte +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x6 +lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x6 +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x6 +lbl_1_bss_146 = .bss:0x00000146; // type:object size:0x2 data:2byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x2 data:2byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x6 +lbl_1_bss_152 = .bss:0x00000152; // type:object size:0x1A data:2byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x30 data:2byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x30 data:2byte diff --git a/config/GMPJ01_00/rels/movieDll/splits.txt b/config/GMPJ01_00/rels/movieDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/movieDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/movieDll/symbols.txt b/config/GMPJ01_00/rels/movieDll/symbols.txt new file mode 100644 index 00000000..9127e46f --- /dev/null +++ b/config/GMPJ01_00/rels/movieDll/symbols.txt @@ -0,0 +1,51 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x23C +fn_1_2DC = .text:0x000002DC; // type:function size:0xE8 +fn_1_3C4 = .text:0x000003C4; // type:function size:0xD90 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_data_4 = .data:0x00000004; // type:object size:0x14 data:string +lbl_1_data_18 = .data:0x00000018; // type:object size:0x14 data:string +lbl_1_data_2C = .data:0x0000002C; // type:object size:0x15 data:string +lbl_1_data_41 = .data:0x00000041; // type:object size:0x15 data:string +lbl_1_data_56 = .data:0x00000056; // type:object size:0x15 data:string +lbl_1_data_6B = .data:0x0000006B; // type:object size:0x15 data:string +lbl_1_data_80 = .data:0x00000080; // type:object size:0x15 data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0x15 data:string +lbl_1_data_AA = .data:0x000000AA; // type:object size:0x15 data:string +lbl_1_data_BF = .data:0x000000BF; // type:object size:0x15 data:string +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x14 data:string +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x14 data:string +lbl_1_data_FC = .data:0x000000FC; // type:object size:0x34 data:4byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0x24 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x2 data:2byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2C4 data:2byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x4 data:4byte +lbl_1_bss_2D4 = .bss:0x000002D4; // type:object size:0x4 data:4byte +lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0x20 +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x4 data:4byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/mpexDll/splits.txt b/config/GMPJ01_00/rels/mpexDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/mpexDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/mpexDll/symbols.txt b/config/GMPJ01_00/rels/mpexDll/symbols.txt new file mode 100644 index 00000000..17f221a1 --- /dev/null +++ b/config/GMPJ01_00/rels/mpexDll/symbols.txt @@ -0,0 +1,474 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0xE8 +fn_1_188 = .text:0x00000188; // type:function size:0x38 +fn_1_1C0 = .text:0x000001C0; // type:function size:0x70 +fn_1_230 = .text:0x00000230; // type:function size:0x68 +fn_1_298 = .text:0x00000298; // type:function size:0xDC +fn_1_374 = .text:0x00000374; // type:function size:0xC4 +fn_1_438 = .text:0x00000438; // type:function size:0x3E4 +fn_1_81C = .text:0x0000081C; // type:function size:0xB8 +fn_1_8D4 = .text:0x000008D4; // type:function size:0x3C +fn_1_910 = .text:0x00000910; // type:function size:0x124 +fn_1_A34 = .text:0x00000A34; // type:function size:0x3C +fn_1_A70 = .text:0x00000A70; // type:function size:0x44 +fn_1_AB4 = .text:0x00000AB4; // type:function size:0x1D0 +fn_1_C84 = .text:0x00000C84; // type:function size:0x1C4 +fn_1_E48 = .text:0x00000E48; // type:function size:0x200 +fn_1_1048 = .text:0x00001048; // type:function size:0x238 +fn_1_1280 = .text:0x00001280; // type:function size:0x39C +fn_1_161C = .text:0x0000161C; // type:function size:0x200 +fn_1_181C = .text:0x0000181C; // type:function size:0x238 +fn_1_1A54 = .text:0x00001A54; // type:function size:0x39C +fn_1_1DF0 = .text:0x00001DF0; // type:function size:0x200 +fn_1_1FF0 = .text:0x00001FF0; // type:function size:0x238 +fn_1_2228 = .text:0x00002228; // type:function size:0x39C +fn_1_25C4 = .text:0x000025C4; // type:function size:0x178 +fn_1_273C = .text:0x0000273C; // type:function size:0x1A0 +fn_1_28DC = .text:0x000028DC; // type:function size:0x4 +fn_1_28E0 = .text:0x000028E0; // type:function size:0x764 +fn_1_3044 = .text:0x00003044; // type:function size:0x294 +fn_1_32D8 = .text:0x000032D8; // type:function size:0xAC +fn_1_3384 = .text:0x00003384; // type:function size:0x74 +fn_1_33F8 = .text:0x000033F8; // type:function size:0x110 +fn_1_3508 = .text:0x00003508; // type:function size:0x19C +fn_1_36A4 = .text:0x000036A4; // type:function size:0xB4 +fn_1_3758 = .text:0x00003758; // type:function size:0x224 +fn_1_397C = .text:0x0000397C; // type:function size:0x78 +fn_1_39F4 = .text:0x000039F4; // type:function size:0x104 +fn_1_3AF8 = .text:0x00003AF8; // type:function size:0x51C +fn_1_4014 = .text:0x00004014; // type:function size:0x98 +fn_1_40AC = .text:0x000040AC; // type:function size:0x98 +fn_1_4144 = .text:0x00004144; // type:function size:0x40 +fn_1_4184 = .text:0x00004184; // type:function size:0x2C8 +fn_1_444C = .text:0x0000444C; // type:function size:0xC8 +fn_1_4514 = .text:0x00004514; // type:function size:0x21C +fn_1_4730 = .text:0x00004730; // type:function size:0x40 +fn_1_4770 = .text:0x00004770; // type:function size:0x2E8 +fn_1_4A58 = .text:0x00004A58; // type:function size:0xE4 +fn_1_4B3C = .text:0x00004B3C; // type:function size:0x3C +fn_1_4B78 = .text:0x00004B78; // type:function size:0xF4 +fn_1_4C6C = .text:0x00004C6C; // type:function size:0x18C +fn_1_4DF8 = .text:0x00004DF8; // type:function size:0x18C +fn_1_4F84 = .text:0x00004F84; // type:function size:0x2B4 +fn_1_5238 = .text:0x00005238; // type:function size:0x2F8 +fn_1_5530 = .text:0x00005530; // type:function size:0x188 +fn_1_56B8 = .text:0x000056B8; // type:function size:0x128 +fn_1_57E0 = .text:0x000057E0; // type:function size:0x3C +fn_1_581C = .text:0x0000581C; // type:function size:0x140 +fn_1_595C = .text:0x0000595C; // type:function size:0x19C +fn_1_5AF8 = .text:0x00005AF8; // type:function size:0x124 +fn_1_5C1C = .text:0x00005C1C; // type:function size:0x124 +fn_1_5D40 = .text:0x00005D40; // type:function size:0x1E88 +fn_1_7BC8 = .text:0x00007BC8; // type:function size:0x1B8 +fn_1_7D80 = .text:0x00007D80; // type:function size:0x244 +fn_1_7FC4 = .text:0x00007FC4; // type:function size:0x1A8 +fn_1_816C = .text:0x0000816C; // type:function size:0x1B4 +fn_1_8320 = .text:0x00008320; // type:function size:0x2A4 +fn_1_85C4 = .text:0x000085C4; // type:function size:0x194 +fn_1_8758 = .text:0x00008758; // type:function size:0x194 +fn_1_88EC = .text:0x000088EC; // type:function size:0xD8 +fn_1_89C4 = .text:0x000089C4; // type:function size:0x118 +fn_1_8ADC = .text:0x00008ADC; // type:function size:0x540 +fn_1_901C = .text:0x0000901C; // type:function size:0x414 +fn_1_9430 = .text:0x00009430; // type:function size:0x284 +fn_1_96B4 = .text:0x000096B4; // type:function size:0x8C +fn_1_9740 = .text:0x00009740; // type:function size:0x150 +fn_1_9890 = .text:0x00009890; // type:function size:0x78 +fn_1_9908 = .text:0x00009908; // type:function size:0x80 +fn_1_9988 = .text:0x00009988; // type:function size:0x34C +fn_1_9CD4 = .text:0x00009CD4; // type:function size:0x98 +fn_1_9D6C = .text:0x00009D6C; // type:function size:0x1A4 +fn_1_9F10 = .text:0x00009F10; // type:function size:0x1D4 +fn_1_A0E4 = .text:0x0000A0E4; // type:function size:0x1C8 +fn_1_A2AC = .text:0x0000A2AC; // type:function size:0xF8 +fn_1_A3A4 = .text:0x0000A3A4; // type:function size:0x264 +fn_1_A608 = .text:0x0000A608; // type:function size:0x72C +fn_1_AD34 = .text:0x0000AD34; // type:function size:0x2D0 +fn_1_B004 = .text:0x0000B004; // type:function size:0x20C +fn_1_B210 = .text:0x0000B210; // type:function size:0x38 +fn_1_B248 = .text:0x0000B248; // type:function size:0x9C +fn_1_B2E4 = .text:0x0000B2E4; // type:function size:0x510 +fn_1_B7F4 = .text:0x0000B7F4; // type:function size:0x7C +fn_1_B870 = .text:0x0000B870; // type:function size:0x138 +fn_1_B9A8 = .text:0x0000B9A8; // type:function size:0x18C +fn_1_BB34 = .text:0x0000BB34; // type:function size:0xE4 +fn_1_BC18 = .text:0x0000BC18; // type:function size:0xC0 +fn_1_BCD8 = .text:0x0000BCD8; // type:function size:0x38 +fn_1_BD10 = .text:0x0000BD10; // type:function size:0x68 +fn_1_BD78 = .text:0x0000BD78; // type:function size:0x2F4 +fn_1_C06C = .text:0x0000C06C; // type:function size:0x70 +fn_1_C0DC = .text:0x0000C0DC; // type:function size:0x3F8 +fn_1_C4D4 = .text:0x0000C4D4; // type:function size:0x70 +fn_1_C544 = .text:0x0000C544; // type:function size:0x31C +fn_1_C860 = .text:0x0000C860; // type:function size:0x38 +fn_1_C898 = .text:0x0000C898; // type:function size:0x200 +fn_1_CA98 = .text:0x0000CA98; // type:function size:0x478 +fn_1_CF10 = .text:0x0000CF10; // type:function size:0x49C +fn_1_D3AC = .text:0x0000D3AC; // type:function size:0xBC +fn_1_D468 = .text:0x0000D468; // type:function size:0x244 +fn_1_D6AC = .text:0x0000D6AC; // type:function size:0x524 +fn_1_DBD0 = .text:0x0000DBD0; // type:function size:0x5A4 +fn_1_E174 = .text:0x0000E174; // type:function size:0x210 +fn_1_E384 = .text:0x0000E384; // type:function size:0x1E4 +fn_1_E568 = .text:0x0000E568; // type:function size:0x5B4 +fn_1_EB1C = .text:0x0000EB1C; // type:function size:0x25C +fn_1_ED78 = .text:0x0000ED78; // type:function size:0x348 +fn_1_F0C0 = .text:0x0000F0C0; // type:function size:0x324 +fn_1_F3E4 = .text:0x0000F3E4; // type:function size:0x70 +fn_1_F454 = .text:0x0000F454; // type:function size:0x2B4 +fn_1_F708 = .text:0x0000F708; // type:function size:0x174 +fn_1_F87C = .text:0x0000F87C; // type:function size:0x4B0 +fn_1_FD2C = .text:0x0000FD2C; // type:function size:0x370 +fn_1_1009C = .text:0x0001009C; // type:function size:0xCC +fn_1_10168 = .text:0x00010168; // type:function size:0x40 +fn_1_101A8 = .text:0x000101A8; // type:function size:0x1F4 +fn_1_1039C = .text:0x0001039C; // type:function size:0x348 +fn_1_106E4 = .text:0x000106E4; // type:function size:0x70 +fn_1_10754 = .text:0x00010754; // type:function size:0x260 +fn_1_109B4 = .text:0x000109B4; // type:function size:0x174 +fn_1_10B28 = .text:0x00010B28; // type:function size:0x45C +fn_1_10F84 = .text:0x00010F84; // type:function size:0x370 +fn_1_112F4 = .text:0x000112F4; // type:function size:0xCC +fn_1_113C0 = .text:0x000113C0; // type:function size:0x40 +fn_1_11400 = .text:0x00011400; // type:function size:0x1F4 +fn_1_115F4 = .text:0x000115F4; // type:function size:0x15C +fn_1_11750 = .text:0x00011750; // type:function size:0x54 +fn_1_117A4 = .text:0x000117A4; // type:function size:0x5C +fn_1_11800 = .text:0x00011800; // type:function size:0x5C +fn_1_1185C = .text:0x0001185C; // type:function size:0x3EC +fn_1_11C48 = .text:0x00011C48; // type:function size:0x198 +fn_1_11DE0 = .text:0x00011DE0; // type:function size:0x228 +fn_1_12008 = .text:0x00012008; // type:function size:0x3F4 +fn_1_123FC = .text:0x000123FC; // type:function size:0xA0 +fn_1_1249C = .text:0x0001249C; // type:function size:0x224 +fn_1_126C0 = .text:0x000126C0; // type:function size:0x2DC +fn_1_1299C = .text:0x0001299C; // type:function size:0x2C +fn_1_129C8 = .text:0x000129C8; // type:function size:0x518 +fn_1_12EE0 = .text:0x00012EE0; // type:function size:0x2C +fn_1_12F0C = .text:0x00012F0C; // type:function size:0x28 +fn_1_12F34 = .text:0x00012F34; // type:function size:0x274 +fn_1_131A8 = .text:0x000131A8; // type:function size:0x2C +fn_1_131D4 = .text:0x000131D4; // type:function size:0x2C +fn_1_13200 = .text:0x00013200; // type:function size:0x24 +fn_1_13224 = .text:0x00013224; // type:function size:0x2BC +fn_1_134E0 = .text:0x000134E0; // type:function size:0x500 +fn_1_139E0 = .text:0x000139E0; // type:function size:0x480 +fn_1_13E60 = .text:0x00013E60; // type:function size:0x80C +fn_1_1466C = .text:0x0001466C; // type:function size:0x28 +fn_1_14694 = .text:0x00014694; // type:function size:0x28 +fn_1_146BC = .text:0x000146BC; // type:function size:0x21C +fn_1_148D8 = .text:0x000148D8; // type:function size:0x194 +fn_1_14A6C = .text:0x00014A6C; // type:function size:0x198 +fn_1_14C04 = .text:0x00014C04; // type:function size:0x9C +fn_1_14CA0 = .text:0x00014CA0; // type:function size:0x2D8 +fn_1_14F78 = .text:0x00014F78; // type:function size:0x2DC +fn_1_15254 = .text:0x00015254; // type:function size:0x1E0 +fn_1_15434 = .text:0x00015434; // type:function size:0xF0 +fn_1_15524 = .text:0x00015524; // type:function size:0x50 +fn_1_15574 = .text:0x00015574; // type:function size:0x584 +fn_1_15AF8 = .text:0x00015AF8; // type:function size:0x5D8 +fn_1_160D0 = .text:0x000160D0; // type:function size:0x2E0 +fn_1_163B0 = .text:0x000163B0; // type:function size:0x274 +fn_1_16624 = .text:0x00016624; // type:function size:0x7C +fn_1_166A0 = .text:0x000166A0; // type:function size:0x44C +fn_1_16AEC = .text:0x00016AEC; // type:function size:0x434 +fn_1_16F20 = .text:0x00016F20; // type:function size:0x204 +fn_1_17124 = .text:0x00017124; // type:function size:0x790 +fn_1_178B4 = .text:0x000178B4; // type:function size:0xB0C +fn_1_183C0 = .text:0x000183C0; // type:function size:0x720 +fn_1_18AE0 = .text:0x00018AE0; // type:function size:0x9C +fn_1_18B7C = .text:0x00018B7C; // type:function size:0xCCC +fn_1_19848 = .text:0x00019848; // type:function size:0x924 +fn_1_1A16C = .text:0x0001A16C; // type:function size:0x1E8 +fn_1_1A354 = .text:0x0001A354; // type:function size:0x958 +fn_1_1ACAC = .text:0x0001ACAC; // type:function size:0x7C +fn_1_1AD28 = .text:0x0001AD28; // type:function size:0x164 +fn_1_1AE8C = .text:0x0001AE8C; // type:function size:0x1B8 +fn_1_1B044 = .text:0x0001B044; // type:function size:0xA4 +fn_1_1B0E8 = .text:0x0001B0E8; // type:function size:0xF4 +fn_1_1B1DC = .text:0x0001B1DC; // type:function size:0x80 +fn_1_1B25C = .text:0x0001B25C; // type:function size:0x80 +fn_1_1B2DC = .text:0x0001B2DC; // type:function size:0x28 +fn_1_1B304 = .text:0x0001B304; // type:function size:0x20 +fn_1_1B324 = .text:0x0001B324; // type:function size:0xD8 +fn_1_1B3FC = .text:0x0001B3FC; // type:function size:0xC8 +fn_1_1B4C4 = .text:0x0001B4C4; // type:function size:0xBC +fn_1_1B580 = .text:0x0001B580; // type:function size:0x40 +fn_1_1B5C0 = .text:0x0001B5C0; // type:function size:0x24 +fn_1_1B5E4 = .text:0x0001B5E4; // type:function size:0x1C0 +fn_1_1B7A4 = .text:0x0001B7A4; // type:function size:0x84 +fn_1_1B828 = .text:0x0001B828; // type:function size:0xD4 +fn_1_1B8FC = .text:0x0001B8FC; // type:function size:0x58 +fn_1_1B954 = .text:0x0001B954; // type:function size:0x15C +fn_1_1BAB0 = .text:0x0001BAB0; // type:function size:0x1C4 +fn_1_1BC74 = .text:0x0001BC74; // type:function size:0x1AC +fn_1_1BE20 = .text:0x0001BE20; // type:function size:0x54 +fn_1_1BE74 = .text:0x0001BE74; // type:function size:0x304 +fn_1_1C178 = .text:0x0001C178; // type:function size:0x304 +fn_1_1C47C = .text:0x0001C47C; // type:function size:0x340 +fn_1_1C7BC = .text:0x0001C7BC; // type:function size:0xC4 +fn_1_1C880 = .text:0x0001C880; // type:function size:0x47C +fn_1_1CCFC = .text:0x0001CCFC; // type:function size:0x16C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0xC data:4byte +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0xC data:4byte +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x78 +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0xC data:4byte +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0xC data:4byte +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0xC data:4byte +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC data:4byte +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0xC data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC data:4byte +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC data:4byte +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:4byte +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0xB4 +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x6C +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x2C data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0xB0 +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0xC data:4byte +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x18 data:4byte +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0xC data:4byte +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 data:double +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x8 data:double +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x38 data:4byte +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x4F data:string +lbl_1_data_4F = .data:0x0000004F; // type:object size:0x50 data:string +lbl_1_data_9F = .data:0x0000009F; // type:object size:0x50 data:string +lbl_1_data_EF = .data:0x000000EF; // type:object size:0x4E data:string +lbl_1_data_13D = .data:0x0000013D; // type:object size:0x50 data:string +lbl_1_data_18D = .data:0x0000018D; // type:object size:0x4F data:string +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x22 data:string +lbl_1_data_1FE = .data:0x000001FE; // type:object size:0x1A data:string +lbl_1_data_218 = .data:0x00000218; // type:object size:0x1A data:string +lbl_1_data_232 = .data:0x00000232; // type:object size:0x62 +lbl_1_data_294 = .data:0x00000294; // type:object size:0x4 data:4byte +lbl_1_data_298 = .data:0x00000298; // type:object size:0x4 data:4byte +lbl_1_data_29C = .data:0x0000029C; // type:object size:0x18 +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x10 data:4byte +lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x4 data:4byte +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x3 data:string +lbl_1_data_2CB = .data:0x000002CB; // type:object size:0x5 data:string +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x19 data:string +lbl_1_data_2E9 = .data:0x000002E9; // type:object size:0x12 data:string +lbl_1_data_2FB = .data:0x000002FB; // type:object size:0x29 +lbl_1_data_324 = .data:0x00000324; // type:object size:0x4 data:4byte +lbl_1_data_328 = .data:0x00000328; // type:object size:0x4 data:4byte +lbl_1_data_32C = .data:0x0000032C; // type:object size:0xC data:4byte +lbl_1_data_338 = .data:0x00000338; // type:object size:0x2B data:string +lbl_1_data_363 = .data:0x00000363; // type:object size:0x28 data:string +lbl_1_data_38B = .data:0x0000038B; // type:object size:0x5 data:string +lbl_1_data_390 = .data:0x00000390; // type:object size:0x4 data:string +lbl_1_data_394 = .data:0x00000394; // type:object size:0x4 +jumptable_1_data_398 = .data:0x00000398; // type:object size:0x2C scope:local +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x3C data:string +lbl_1_data_400 = .data:0x00000400; // type:object size:0x16 data:string +lbl_1_data_416 = .data:0x00000416; // type:object size:0x1A data:string +lbl_1_data_430 = .data:0x00000430; // type:object size:0x1A data:string +lbl_1_data_44A = .data:0x0000044A; // type:object size:0x1A data:string +lbl_1_data_464 = .data:0x00000464; // type:object size:0x17 data:string +lbl_1_data_47B = .data:0x0000047B; // type:object size:0x16 data:string +lbl_1_data_491 = .data:0x00000491; // type:object size:0x16 data:string +lbl_1_data_4A7 = .data:0x000004A7; // type:object size:0x19 data:string +lbl_1_data_4C0 = .data:0x000004C0; // type:object size:0x16 data:string +lbl_1_data_4D6 = .data:0x000004D6; // type:object size:0x42 +lbl_1_data_518 = .data:0x00000518; // type:object size:0x3C data:string +lbl_1_data_554 = .data:0x00000554; // type:object size:0x19 data:string +lbl_1_data_56D = .data:0x0000056D; // type:object size:0x1A data:string +lbl_1_data_587 = .data:0x00000587; // type:object size:0x3D +lbl_1_data_5C4 = .data:0x000005C4; // type:object size:0x20 data:4byte +lbl_1_data_5E4 = .data:0x000005E4; // type:object size:0x40 data:4byte +lbl_1_data_624 = .data:0x00000624; // type:object size:0x70 +lbl_1_data_694 = .data:0x00000694; // type:object size:0x90 data:4byte +lbl_1_data_724 = .data:0x00000724; // type:object size:0x20 +lbl_1_data_744 = .data:0x00000744; // type:object size:0x8 data:4byte +lbl_1_data_74C = .data:0x0000074C; // type:object size:0x10 +lbl_1_data_75C = .data:0x0000075C; // type:object size:0x20 +lbl_1_data_77C = .data:0x0000077C; // type:object size:0x4 data:4byte +lbl_1_data_780 = .data:0x00000780; // type:object size:0x8 data:4byte +lbl_1_data_788 = .data:0x00000788; // type:object size:0x4C8 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x64 data:4byte +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x44 data:float +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:float +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:4byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x18 +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x8 +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x8 +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x8 +lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x8 +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte +lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x8 +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x8 +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x10 +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x50 +lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x2C data:4byte +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 data:4byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x4 data:4byte +lbl_1_bss_1B4 = .bss:0x000001B4; // type:object size:0x4 data:4byte +lbl_1_bss_1B8 = .bss:0x000001B8; // type:object size:0x120 data:4byte +lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0xD8 data:4byte +lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x48 data:4byte +lbl_1_bss_3F8 = .bss:0x000003F8; // type:object size:0x48 data:4byte +lbl_1_bss_440 = .bss:0x00000440; // type:object size:0x4 data:4byte +lbl_1_bss_444 = .bss:0x00000444; // type:object size:0x4 data:4byte +lbl_1_bss_448 = .bss:0x00000448; // type:object size:0x14 data:4byte +lbl_1_bss_45C = .bss:0x0000045C; // type:object size:0x180 data:4byte +lbl_1_bss_5DC = .bss:0x000005DC; // type:object size:0x60 data:4byte +lbl_1_bss_63C = .bss:0x0000063C; // type:object size:0x70 data:4byte +lbl_1_bss_6AC = .bss:0x000006AC; // type:object size:0x1 data:byte diff --git a/config/GMPJ01_00/rels/msetupDll/splits.txt b/config/GMPJ01_00/rels/msetupDll/splits.txt new file mode 100644 index 00000000..e787a0ee --- /dev/null +++ b/config/GMPJ01_00/rels/msetupDll/splits.txt @@ -0,0 +1,3 @@ +Sections: + .ctors type:rodata align:4 + .dtors type:rodata align:4 diff --git a/config/GMPJ01_00/rels/msetupDll/symbols.txt b/config/GMPJ01_00/rels/msetupDll/symbols.txt new file mode 100644 index 00000000..120e2d17 --- /dev/null +++ b/config/GMPJ01_00/rels/msetupDll/symbols.txt @@ -0,0 +1,2 @@ +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global diff --git a/config/GMPJ01_00/rels/mstory2Dll/splits.txt b/config/GMPJ01_00/rels/mstory2Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/mstory2Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/mstory2Dll/symbols.txt b/config/GMPJ01_00/rels/mstory2Dll/symbols.txt new file mode 100644 index 00000000..43271272 --- /dev/null +++ b/config/GMPJ01_00/rels/mstory2Dll/symbols.txt @@ -0,0 +1,709 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x2A0 +_prolog = .text:0x00000344; // type:function size:0x54 scope:global +_epilog = .text:0x00000398; // type:function size:0x4C scope:global +fn_1_3E4 = .text:0x000003E4; // type:function size:0x110 +fn_1_4F4 = .text:0x000004F4; // type:function size:0x1B8 +fn_1_6AC = .text:0x000006AC; // type:function size:0x1B8 +fn_1_864 = .text:0x00000864; // type:function size:0x28 +fn_1_88C = .text:0x0000088C; // type:function size:0x20 +fn_1_8AC = .text:0x000008AC; // type:function size:0xD8 +fn_1_984 = .text:0x00000984; // type:function size:0xC8 +fn_1_A4C = .text:0x00000A4C; // type:function size:0xBC +fn_1_B08 = .text:0x00000B08; // type:function size:0xBC +fn_1_BC4 = .text:0x00000BC4; // type:function size:0x4 +fn_1_BC8 = .text:0x00000BC8; // type:function size:0x20 +fn_1_BE8 = .text:0x00000BE8; // type:function size:0x28 +fn_1_C10 = .text:0x00000C10; // type:function size:0x20 +fn_1_C30 = .text:0x00000C30; // type:function size:0x24 +fn_1_C54 = .text:0x00000C54; // type:function size:0x4 +fn_1_C58 = .text:0x00000C58; // type:function size:0xA48 +fn_1_16A0 = .text:0x000016A0; // type:function size:0x1BC +fn_1_185C = .text:0x0000185C; // type:function size:0x1D8 +fn_1_1A34 = .text:0x00001A34; // type:function size:0x60 +fn_1_1A94 = .text:0x00001A94; // type:function size:0x68 +fn_1_1AFC = .text:0x00001AFC; // type:function size:0xAC +fn_1_1BA8 = .text:0x00001BA8; // type:function size:0xBC +fn_1_1C64 = .text:0x00001C64; // type:function size:0xB4 +fn_1_1D18 = .text:0x00001D18; // type:function size:0x34 +fn_1_1D4C = .text:0x00001D4C; // type:function size:0x40 +fn_1_1D8C = .text:0x00001D8C; // type:function size:0x70 +fn_1_1DFC = .text:0x00001DFC; // type:function size:0x188 +fn_1_1F84 = .text:0x00001F84; // type:function size:0x2E0 +fn_1_2264 = .text:0x00002264; // type:function size:0x90 +fn_1_22F4 = .text:0x000022F4; // type:function size:0x48 +fn_1_233C = .text:0x0000233C; // type:function size:0x54 +fn_1_2390 = .text:0x00002390; // type:function size:0x3C0 +fn_1_2750 = .text:0x00002750; // type:function size:0x10 +fn_1_2760 = .text:0x00002760; // type:function size:0x10 +fn_1_2770 = .text:0x00002770; // type:function size:0xB8 +fn_1_2828 = .text:0x00002828; // type:function size:0x120 +fn_1_2948 = .text:0x00002948; // type:function size:0x3B8 +fn_1_2D00 = .text:0x00002D00; // type:function size:0x7F4 +fn_1_34F4 = .text:0x000034F4; // type:function size:0x88 +fn_1_357C = .text:0x0000357C; // type:function size:0x94 +fn_1_3610 = .text:0x00003610; // type:function size:0x58 +fn_1_3668 = .text:0x00003668; // type:function size:0xEC +fn_1_3754 = .text:0x00003754; // type:function size:0xC4 +fn_1_3818 = .text:0x00003818; // type:function size:0x3C +fn_1_3854 = .text:0x00003854; // type:function size:0x44 +fn_1_3898 = .text:0x00003898; // type:function size:0x26C +fn_1_3B04 = .text:0x00003B04; // type:function size:0x26C +fn_1_3D70 = .text:0x00003D70; // type:function size:0x27C +fn_1_3FEC = .text:0x00003FEC; // type:function size:0x2B4 +fn_1_42A0 = .text:0x000042A0; // type:function size:0x46C +fn_1_470C = .text:0x0000470C; // type:function size:0x454 +fn_1_4B60 = .text:0x00004B60; // type:function size:0x48C +fn_1_4FEC = .text:0x00004FEC; // type:function size:0x658 +fn_1_5644 = .text:0x00005644; // type:function size:0x4C4 +fn_1_5B08 = .text:0x00005B08; // type:function size:0x4FC +fn_1_6004 = .text:0x00006004; // type:function size:0x6C8 +fn_1_66CC = .text:0x000066CC; // type:function size:0x38 +fn_1_6704 = .text:0x00006704; // type:function size:0xD4 +fn_1_67D8 = .text:0x000067D8; // type:function size:0x198 +fn_1_6970 = .text:0x00006970; // type:function size:0x34 +fn_1_69A4 = .text:0x000069A4; // type:function size:0x40 +fn_1_69E4 = .text:0x000069E4; // type:function size:0xAC +fn_1_6A90 = .text:0x00006A90; // type:function size:0x2E8 +fn_1_6D78 = .text:0x00006D78; // type:function size:0x44 +fn_1_6DBC = .text:0x00006DBC; // type:function size:0x1F4 +fn_1_6FB0 = .text:0x00006FB0; // type:function size:0xB4 +fn_1_7064 = .text:0x00007064; // type:function size:0x178 +fn_1_71DC = .text:0x000071DC; // type:function size:0x68 +fn_1_7244 = .text:0x00007244; // type:function size:0x140 +fn_1_7384 = .text:0x00007384; // type:function size:0xA2C +fn_1_7DB0 = .text:0x00007DB0; // type:function size:0x1A4 +fn_1_7F54 = .text:0x00007F54; // type:function size:0x118 +fn_1_806C = .text:0x0000806C; // type:function size:0x8C +fn_1_80F8 = .text:0x000080F8; // type:function size:0x488 +fn_1_8580 = .text:0x00008580; // type:function size:0x5C +fn_1_85DC = .text:0x000085DC; // type:function size:0x1F8 +fn_1_87D4 = .text:0x000087D4; // type:function size:0x2E8 +fn_1_8ABC = .text:0x00008ABC; // type:function size:0x578 +fn_1_9034 = .text:0x00009034; // type:function size:0x164 +fn_1_9198 = .text:0x00009198; // type:function size:0x124 +fn_1_92BC = .text:0x000092BC; // type:function size:0x4AC +fn_1_9768 = .text:0x00009768; // type:function size:0xB4 +fn_1_981C = .text:0x0000981C; // type:function size:0x138 +fn_1_9954 = .text:0x00009954; // type:function size:0xBC +fn_1_9A10 = .text:0x00009A10; // type:function size:0x1C4 +fn_1_9BD4 = .text:0x00009BD4; // type:function size:0xE4 +fn_1_9CB8 = .text:0x00009CB8; // type:function size:0x214 +fn_1_9ECC = .text:0x00009ECC; // type:function size:0x110 +fn_1_9FDC = .text:0x00009FDC; // type:function size:0x2AC +fn_1_A288 = .text:0x0000A288; // type:function size:0x220 +fn_1_A4A8 = .text:0x0000A4A8; // type:function size:0xE4 +fn_1_A58C = .text:0x0000A58C; // type:function size:0x2BC +fn_1_A848 = .text:0x0000A848; // type:function size:0x2C8 +fn_1_AB10 = .text:0x0000AB10; // type:function size:0x2A0 +fn_1_ADB0 = .text:0x0000ADB0; // type:function size:0xAC +fn_1_AE5C = .text:0x0000AE5C; // type:function size:0x364 +fn_1_B1C0 = .text:0x0000B1C0; // type:function size:0x8C +fn_1_B24C = .text:0x0000B24C; // type:function size:0x130 +fn_1_B37C = .text:0x0000B37C; // type:function size:0x68 +fn_1_B3E4 = .text:0x0000B3E4; // type:function size:0x134 +fn_1_B518 = .text:0x0000B518; // type:function size:0x8C +fn_1_B5A4 = .text:0x0000B5A4; // type:function size:0x3E0 +fn_1_B984 = .text:0x0000B984; // type:function size:0x5C +fn_1_B9E0 = .text:0x0000B9E0; // type:function size:0xB0 +fn_1_BA90 = .text:0x0000BA90; // type:function size:0x360 +fn_1_BDF0 = .text:0x0000BDF0; // type:function size:0x158 +fn_1_BF48 = .text:0x0000BF48; // type:function size:0x328 +fn_1_C270 = .text:0x0000C270; // type:function size:0x250 +fn_1_C4C0 = .text:0x0000C4C0; // type:function size:0xB4 +fn_1_C574 = .text:0x0000C574; // type:function size:0x228 +fn_1_C79C = .text:0x0000C79C; // type:function size:0xBC +fn_1_C858 = .text:0x0000C858; // type:function size:0x2B4 +fn_1_CB0C = .text:0x0000CB0C; // type:function size:0x1C0 +fn_1_CCCC = .text:0x0000CCCC; // type:function size:0xAC +fn_1_CD78 = .text:0x0000CD78; // type:function size:0x2B8 +fn_1_D030 = .text:0x0000D030; // type:function size:0x1F4 +fn_1_D224 = .text:0x0000D224; // type:function size:0xAC +fn_1_D2D0 = .text:0x0000D2D0; // type:function size:0xC4 +fn_1_D394 = .text:0x0000D394; // type:function size:0xE4 +fn_1_D478 = .text:0x0000D478; // type:function size:0x2EC +fn_1_D764 = .text:0x0000D764; // type:function size:0x134 +fn_1_D898 = .text:0x0000D898; // type:function size:0x2C0 +fn_1_DB58 = .text:0x0000DB58; // type:function size:0xFC +fn_1_DC54 = .text:0x0000DC54; // type:function size:0x170 +fn_1_DDC4 = .text:0x0000DDC4; // type:function size:0x3F4 +fn_1_E1B8 = .text:0x0000E1B8; // type:function size:0x8C +fn_1_E244 = .text:0x0000E244; // type:function size:0xF0 +fn_1_E334 = .text:0x0000E334; // type:function size:0x23C +fn_1_E570 = .text:0x0000E570; // type:function size:0xC8 +fn_1_E638 = .text:0x0000E638; // type:function size:0x2B4 +fn_1_E8EC = .text:0x0000E8EC; // type:function size:0x140 +fn_1_EA2C = .text:0x0000EA2C; // type:function size:0x134 +fn_1_EB60 = .text:0x0000EB60; // type:function size:0x8C +fn_1_EBEC = .text:0x0000EBEC; // type:function size:0x3E0 +fn_1_EFCC = .text:0x0000EFCC; // type:function size:0x5C +fn_1_F028 = .text:0x0000F028; // type:function size:0x128 +fn_1_F150 = .text:0x0000F150; // type:function size:0xDC +fn_1_F22C = .text:0x0000F22C; // type:function size:0xD0 +fn_1_F2FC = .text:0x0000F2FC; // type:function size:0xD4 +fn_1_F3D0 = .text:0x0000F3D0; // type:function size:0x468 +fn_1_F838 = .text:0x0000F838; // type:function size:0x4 +fn_1_F83C = .text:0x0000F83C; // type:function size:0x78 +fn_1_F8B4 = .text:0x0000F8B4; // type:function size:0x548 +fn_1_FDFC = .text:0x0000FDFC; // type:function size:0xB4 +fn_1_FEB0 = .text:0x0000FEB0; // type:function size:0x228 +fn_1_100D8 = .text:0x000100D8; // type:function size:0xBC +fn_1_10194 = .text:0x00010194; // type:function size:0x2B4 +fn_1_10448 = .text:0x00010448; // type:function size:0x1BC +fn_1_10604 = .text:0x00010604; // type:function size:0xAC +fn_1_106B0 = .text:0x000106B0; // type:function size:0x29C +fn_1_1094C = .text:0x0001094C; // type:function size:0x2B4 +fn_1_10C00 = .text:0x00010C00; // type:function size:0x1F4 +fn_1_10DF4 = .text:0x00010DF4; // type:function size:0xAC +fn_1_10EA0 = .text:0x00010EA0; // type:function size:0xE4 +fn_1_10F84 = .text:0x00010F84; // type:function size:0xC4 +fn_1_11048 = .text:0x00011048; // type:function size:0xE4 +fn_1_1112C = .text:0x0001112C; // type:function size:0x2EC +fn_1_11418 = .text:0x00011418; // type:function size:0x134 +fn_1_1154C = .text:0x0001154C; // type:function size:0x2EC +fn_1_11838 = .text:0x00011838; // type:function size:0xFC +fn_1_11934 = .text:0x00011934; // type:function size:0x164 +fn_1_11A98 = .text:0x00011A98; // type:function size:0x118 +fn_1_11BB0 = .text:0x00011BB0; // type:function size:0x420 +fn_1_11FD0 = .text:0x00011FD0; // type:function size:0x8C +fn_1_1205C = .text:0x0001205C; // type:function size:0x130 +fn_1_1218C = .text:0x0001218C; // type:function size:0x23C +fn_1_123C8 = .text:0x000123C8; // type:function size:0x1A4 +fn_1_1256C = .text:0x0001256C; // type:function size:0x124 +fn_1_12690 = .text:0x00012690; // type:function size:0x8C +fn_1_1271C = .text:0x0001271C; // type:function size:0x3AC +fn_1_12AC8 = .text:0x00012AC8; // type:function size:0x48 +fn_1_12B10 = .text:0x00012B10; // type:function size:0x2C4 +fn_1_12DD4 = .text:0x00012DD4; // type:function size:0x37C +fn_1_13150 = .text:0x00013150; // type:function size:0x70 +fn_1_131C0 = .text:0x000131C0; // type:function size:0xA4 +fn_1_13264 = .text:0x00013264; // type:function size:0x5C4 +fn_1_13828 = .text:0x00013828; // type:function size:0xA4 +fn_1_138CC = .text:0x000138CC; // type:function size:0x14C +fn_1_13A18 = .text:0x00013A18; // type:function size:0x1A0 +fn_1_13BB8 = .text:0x00013BB8; // type:function size:0xB4 +fn_1_13C6C = .text:0x00013C6C; // type:function size:0x348 +fn_1_13FB4 = .text:0x00013FB4; // type:function size:0xEC +fn_1_140A0 = .text:0x000140A0; // type:function size:0xCC +fn_1_1416C = .text:0x0001416C; // type:function size:0x330 +fn_1_1449C = .text:0x0001449C; // type:function size:0x3CC +fn_1_14868 = .text:0x00014868; // type:function size:0x234 +fn_1_14A9C = .text:0x00014A9C; // type:function size:0xAC +fn_1_14B48 = .text:0x00014B48; // type:function size:0xF8 +fn_1_14C40 = .text:0x00014C40; // type:function size:0x32C +fn_1_14F6C = .text:0x00014F6C; // type:function size:0x1C8 +fn_1_15134 = .text:0x00015134; // type:function size:0xAC +fn_1_151E0 = .text:0x000151E0; // type:function size:0xE4 +fn_1_152C4 = .text:0x000152C4; // type:function size:0xE4 +fn_1_153A8 = .text:0x000153A8; // type:function size:0x2C0 +fn_1_15668 = .text:0x00015668; // type:function size:0xE4 +fn_1_1574C = .text:0x0001574C; // type:function size:0x1F8 +fn_1_15944 = .text:0x00015944; // type:function size:0xAC +fn_1_159F0 = .text:0x000159F0; // type:function size:0x2EC +fn_1_15CDC = .text:0x00015CDC; // type:function size:0x8C +fn_1_15D68 = .text:0x00015D68; // type:function size:0xF0 +fn_1_15E58 = .text:0x00015E58; // type:function size:0x118 +fn_1_15F70 = .text:0x00015F70; // type:function size:0xF0 +fn_1_16060 = .text:0x00016060; // type:function size:0x118 +fn_1_16178 = .text:0x00016178; // type:function size:0x8C +fn_1_16204 = .text:0x00016204; // type:function size:0x3AC +fn_1_165B0 = .text:0x000165B0; // type:function size:0x5C +fn_1_1660C = .text:0x0001660C; // type:function size:0x110 +fn_1_1671C = .text:0x0001671C; // type:function size:0x194 +fn_1_168B0 = .text:0x000168B0; // type:function size:0xD4 +fn_1_16984 = .text:0x00016984; // type:function size:0x50 +fn_1_169D4 = .text:0x000169D4; // type:function size:0x4 +fn_1_169D8 = .text:0x000169D8; // type:function size:0xF4 +fn_1_16ACC = .text:0x00016ACC; // type:function size:0x4F4 +fn_1_16FC0 = .text:0x00016FC0; // type:function size:0xB4 +fn_1_17074 = .text:0x00017074; // type:function size:0x208 +fn_1_1727C = .text:0x0001727C; // type:function size:0xBC +fn_1_17338 = .text:0x00017338; // type:function size:0x294 +fn_1_175CC = .text:0x000175CC; // type:function size:0x180 +fn_1_1774C = .text:0x0001774C; // type:function size:0xAC +fn_1_177F8 = .text:0x000177F8; // type:function size:0x278 +fn_1_17A70 = .text:0x00017A70; // type:function size:0x128 +fn_1_17B98 = .text:0x00017B98; // type:function size:0xAC +fn_1_17C44 = .text:0x00017C44; // type:function size:0x220 +fn_1_17E64 = .text:0x00017E64; // type:function size:0xE4 +fn_1_17F48 = .text:0x00017F48; // type:function size:0x190 +fn_1_180D8 = .text:0x000180D8; // type:function size:0xAC +fn_1_18184 = .text:0x00018184; // type:function size:0x284 +fn_1_18408 = .text:0x00018408; // type:function size:0x8C +fn_1_18494 = .text:0x00018494; // type:function size:0x23C +fn_1_186D0 = .text:0x000186D0; // type:function size:0x220 +fn_1_188F0 = .text:0x000188F0; // type:function size:0x144 +fn_1_18A34 = .text:0x00018A34; // type:function size:0x8C +fn_1_18AC0 = .text:0x00018AC0; // type:function size:0x3BC +fn_1_18E7C = .text:0x00018E7C; // type:function size:0x48 +fn_1_18EC4 = .text:0x00018EC4; // type:function size:0x274 +fn_1_19138 = .text:0x00019138; // type:function size:0x1FC +fn_1_19334 = .text:0x00019334; // type:function size:0x66C +fn_1_199A0 = .text:0x000199A0; // type:function size:0x248 +fn_1_19BE8 = .text:0x00019BE8; // type:function size:0x84 +fn_1_19C6C = .text:0x00019C6C; // type:function size:0x2A8 +fn_1_19F14 = .text:0x00019F14; // type:function size:0xB4 +fn_1_19FC8 = .text:0x00019FC8; // type:function size:0x198 +fn_1_1A160 = .text:0x0001A160; // type:function size:0x208 +fn_1_1A368 = .text:0x0001A368; // type:function size:0x1D0 +fn_1_1A538 = .text:0x0001A538; // type:function size:0x40 +fn_1_1A578 = .text:0x0001A578; // type:function size:0x254 +fn_1_1A7CC = .text:0x0001A7CC; // type:function size:0x204 +fn_1_1A9D0 = .text:0x0001A9D0; // type:function size:0xE4 +fn_1_1AAB4 = .text:0x0001AAB4; // type:function size:0x288 +fn_1_1AD3C = .text:0x0001AD3C; // type:function size:0xE4 +fn_1_1AE20 = .text:0x0001AE20; // type:function size:0x1B4 +fn_1_1AFD4 = .text:0x0001AFD4; // type:function size:0x110 +fn_1_1B0E4 = .text:0x0001B0E4; // type:function size:0x234 +fn_1_1B318 = .text:0x0001B318; // type:function size:0x8C +fn_1_1B3A4 = .text:0x0001B3A4; // type:function size:0x8C +fn_1_1B430 = .text:0x0001B430; // type:function size:0x130 +fn_1_1B560 = .text:0x0001B560; // type:function size:0xEC +fn_1_1B64C = .text:0x0001B64C; // type:function size:0x224 +fn_1_1B870 = .text:0x0001B870; // type:function size:0x9C +fn_1_1B90C = .text:0x0001B90C; // type:function size:0x50 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC data:4byte +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC data:4byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 data:byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 data:byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC data:4byte +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 data:byte +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC data:4byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC data:4byte +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 data:byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 data:byte +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC data:4byte +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte +lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 data:string +lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0xF +lbl_1_data_144 = .data:0x00000144; // type:object size:0x18 +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 data:string +jumptable_1_data_19C = .data:0x0000019C; // type:object size:0x54 scope:local +jumptable_1_data_1F0 = .data:0x000001F0; // type:object size:0x54 scope:local +lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A data:string +lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0xE data:string +lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 data:string +lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 data:string +lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 data:string +lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 data:string +lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 +lbl_1_data_308 = .data:0x00000308; // type:object size:0x20 +lbl_1_data_328 = .data:0x00000328; // type:object size:0x60 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 data:string +lbl_1_data_399 = .data:0x00000399; // type:object size:0x33 +lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x10 +lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x4 data:4byte +lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x8 data:4byte +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 data:string +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 data:string +lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 data:string +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 data:string +lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA data:string +lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C data:string +lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D data:string +lbl_1_data_50C = .data:0x0000050C; // type:object size:0x14 +lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 data:string +lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 data:string +lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 data:string +lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 data:string +lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 data:string +lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 data:string +lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 data:string +lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 data:string +lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA data:string +lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C data:string +lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D data:string +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 data:string +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C data:string +lbl_1_data_668 = .data:0x00000668; // type:object size:0x30 +lbl_1_data_698 = .data:0x00000698; // type:object size:0x3C +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 data:string +lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 data:string +lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 data:string +lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 data:string +lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 data:string +lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 data:string +lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 data:string +lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 data:string +lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 data:string +lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C data:string +lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D data:string +lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 data:string +lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C +lbl_1_data_81C = .data:0x0000081C; // type:object size:0x34 +lbl_1_data_850 = .data:0x00000850; // type:object size:0x3C0 +lbl_1_data_C10 = .data:0x00000C10; // type:object size:0x10 +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0x4 data:4byte +lbl_1_data_C24 = .data:0x00000C24; // type:object size:0x8 data:4byte +lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 data:string +lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 data:string +lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 data:string +lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 data:string +lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 data:string +lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 data:string +lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 data:string +lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 data:string +lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 data:string +lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 data:string +lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 data:string +lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA data:string +lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C data:string +lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D data:string +lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C data:string +lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 data:string +lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 data:string +lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0xB +lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 data:string +lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 data:string +lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 data:string +lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 data:string +lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 data:string +lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 data:string +lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 data:string +lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 data:string +lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 data:string +lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 data:string +lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA data:string +lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C data:string +lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D data:string +lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 data:string +lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x20 +lbl_1_data_EF8 = .data:0x00000EF8; // type:object size:0x10 +lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x4 data:4byte +lbl_1_data_F0C = .data:0x00000F0C; // type:object size:0x8 data:4byte +lbl_1_data_F14 = .data:0x00000F14; // type:object size:0x4 data:4byte +lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 data:string +lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 data:string +lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 data:string +lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 data:string +lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 data:string +lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 data:string +lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 data:string +lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 data:string +lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 data:string +lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 data:string +lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 data:string +lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA data:string +lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C data:string +lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D data:string +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 data:string +lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 data:string +lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 data:string +lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 data:string +lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 data:string +lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 data:string +lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 data:string +lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 data:string +lbl_1_data_10E4 = .data:0x000010E4; // type:object size:0x20 +lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x24 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x54 data:float +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x10 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x40 data:4byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x28 data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x28 data:4byte +lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x28 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x28 data:4byte +lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x28 data:4byte +lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x104 data:float +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x4 data:4byte +lbl_1_bss_29C = .bss:0x0000029C; // type:object size:0xA0 +lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x28 data:4byte +lbl_1_bss_364 = .bss:0x00000364; // type:object size:0x28 data:4byte +lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x28 data:4byte +lbl_1_bss_3B4 = .bss:0x000003B4; // type:object size:0x28 data:4byte +lbl_1_bss_3DC = .bss:0x000003DC; // type:object size:0x104 data:4byte +lbl_1_bss_4E0 = .bss:0x000004E0; // type:object size:0x4 data:4byte +lbl_1_bss_4E4 = .bss:0x000004E4; // type:object size:0x4 data:4byte +lbl_1_bss_4E8 = .bss:0x000004E8; // type:object size:0x60 data:4byte +lbl_1_bss_548 = .bss:0x00000548; // type:object size:0xA0 +lbl_1_bss_5E8 = .bss:0x000005E8; // type:object size:0x28 data:4byte +lbl_1_bss_610 = .bss:0x00000610; // type:object size:0x28 data:4byte +lbl_1_bss_638 = .bss:0x00000638; // type:object size:0x28 data:4byte +lbl_1_bss_660 = .bss:0x00000660; // type:object size:0x28 data:4byte +lbl_1_bss_688 = .bss:0x00000688; // type:object size:0x108 data:float +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x4 data:4byte +lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x4 data:4byte +lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x28 data:4byte +lbl_1_bss_7C0 = .bss:0x000007C0; // type:object size:0x28 data:4byte +lbl_1_bss_7E8 = .bss:0x000007E8; // type:object size:0x28 data:4byte +lbl_1_bss_810 = .bss:0x00000810; // type:object size:0x28 data:4byte +lbl_1_bss_838 = .bss:0x00000838; // type:object size:0x28 data:4byte +lbl_1_bss_860 = .bss:0x00000860; // type:object size:0x108 data:4byte +lbl_1_bss_968 = .bss:0x00000968; // type:object size:0x4 data:4byte +lbl_1_bss_96C = .bss:0x0000096C; // type:object size:0x28 data:4byte +lbl_1_bss_994 = .bss:0x00000994; // type:object size:0x28 data:4byte +lbl_1_bss_9BC = .bss:0x000009BC; // type:object size:0x28 data:4byte +lbl_1_bss_9E4 = .bss:0x000009E4; // type:object size:0x28 data:4byte +lbl_1_bss_A0C = .bss:0x00000A0C; // type:object size:0x28 data:4byte +lbl_1_bss_A34 = .bss:0x00000A34; // type:object size:0x104 data:4byte +lbl_1_bss_B38 = .bss:0x00000B38; // type:object size:0x4 data:4byte +lbl_1_bss_B3C = .bss:0x00000B3C; // type:object size:0x4 data:4byte +lbl_1_bss_B40 = .bss:0x00000B40; // type:object size:0x4 data:4byte +lbl_1_bss_B44 = .bss:0x00000B44; // type:object size:0x28 data:4byte +lbl_1_bss_B6C = .bss:0x00000B6C; // type:object size:0x28 data:4byte +lbl_1_bss_B94 = .bss:0x00000B94; // type:object size:0x28 data:4byte +lbl_1_bss_BBC = .bss:0x00000BBC; // type:object size:0x28 data:4byte +lbl_1_bss_BE4 = .bss:0x00000BE4; // type:object size:0x28 data:4byte +lbl_1_bss_C0C = .bss:0x00000C0C; // type:object size:0x104 data:float +lbl_1_bss_D10 = .bss:0x00000D10; // type:object size:0x4 data:4byte +lbl_1_bss_D14 = .bss:0x00000D14; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/mstory3Dll/splits.txt b/config/GMPJ01_00/rels/mstory3Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/mstory3Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/mstory3Dll/symbols.txt b/config/GMPJ01_00/rels/mstory3Dll/symbols.txt new file mode 100644 index 00000000..9835d8ae --- /dev/null +++ b/config/GMPJ01_00/rels/mstory3Dll/symbols.txt @@ -0,0 +1,549 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x2C8 +_prolog = .text:0x0000036C; // type:function size:0x54 scope:global +_epilog = .text:0x000003C0; // type:function size:0x4C scope:global +fn_1_40C = .text:0x0000040C; // type:function size:0xE4 +fn_1_4F0 = .text:0x000004F0; // type:function size:0xE4 +fn_1_5D4 = .text:0x000005D4; // type:function size:0x28 +fn_1_5FC = .text:0x000005FC; // type:function size:0x20 +fn_1_61C = .text:0x0000061C; // type:function size:0xD8 +fn_1_6F4 = .text:0x000006F4; // type:function size:0xC8 +fn_1_7BC = .text:0x000007BC; // type:function size:0xBC +fn_1_878 = .text:0x00000878; // type:function size:0xBC +fn_1_934 = .text:0x00000934; // type:function size:0x4 +fn_1_938 = .text:0x00000938; // type:function size:0x20 +fn_1_958 = .text:0x00000958; // type:function size:0x28 +fn_1_980 = .text:0x00000980; // type:function size:0x20 +fn_1_9A0 = .text:0x000009A0; // type:function size:0x24 +fn_1_9C4 = .text:0x000009C4; // type:function size:0x20 +fn_1_9E4 = .text:0x000009E4; // type:function size:0xA48 +fn_1_142C = .text:0x0000142C; // type:function size:0x1F8 +fn_1_1624 = .text:0x00001624; // type:function size:0x210 +fn_1_1834 = .text:0x00001834; // type:function size:0x1F0 +fn_1_1A24 = .text:0x00001A24; // type:function size:0x2C +fn_1_1A50 = .text:0x00001A50; // type:function size:0x60 +fn_1_1AB0 = .text:0x00001AB0; // type:function size:0x68 +fn_1_1B18 = .text:0x00001B18; // type:function size:0xAC +fn_1_1BC4 = .text:0x00001BC4; // type:function size:0xC4 +fn_1_1C88 = .text:0x00001C88; // type:function size:0xBC +fn_1_1D44 = .text:0x00001D44; // type:function size:0x34 +fn_1_1D78 = .text:0x00001D78; // type:function size:0x40 +fn_1_1DB8 = .text:0x00001DB8; // type:function size:0x70 +fn_1_1E28 = .text:0x00001E28; // type:function size:0x178 +fn_1_1FA0 = .text:0x00001FA0; // type:function size:0x2E0 +fn_1_2280 = .text:0x00002280; // type:function size:0x90 +fn_1_2310 = .text:0x00002310; // type:function size:0xC8 +fn_1_23D8 = .text:0x000023D8; // type:function size:0x48 +fn_1_2420 = .text:0x00002420; // type:function size:0x54 +fn_1_2474 = .text:0x00002474; // type:function size:0x3C0 +fn_1_2834 = .text:0x00002834; // type:function size:0x10 +fn_1_2844 = .text:0x00002844; // type:function size:0x10 +fn_1_2854 = .text:0x00002854; // type:function size:0xB8 +fn_1_290C = .text:0x0000290C; // type:function size:0x120 +fn_1_2A2C = .text:0x00002A2C; // type:function size:0x3A8 +fn_1_2DD4 = .text:0x00002DD4; // type:function size:0x7F4 +fn_1_35C8 = .text:0x000035C8; // type:function size:0x88 +fn_1_3650 = .text:0x00003650; // type:function size:0x94 +fn_1_36E4 = .text:0x000036E4; // type:function size:0x58 +fn_1_373C = .text:0x0000373C; // type:function size:0x8C +fn_1_37C8 = .text:0x000037C8; // type:function size:0xEC +fn_1_38B4 = .text:0x000038B4; // type:function size:0xC4 +fn_1_3978 = .text:0x00003978; // type:function size:0x3C +fn_1_39B4 = .text:0x000039B4; // type:function size:0x44 +fn_1_39F8 = .text:0x000039F8; // type:function size:0x26C +fn_1_3C64 = .text:0x00003C64; // type:function size:0x26C +fn_1_3ED0 = .text:0x00003ED0; // type:function size:0x27C +fn_1_414C = .text:0x0000414C; // type:function size:0x2B4 +fn_1_4400 = .text:0x00004400; // type:function size:0x46C +fn_1_486C = .text:0x0000486C; // type:function size:0x454 +fn_1_4CC0 = .text:0x00004CC0; // type:function size:0x48C +fn_1_514C = .text:0x0000514C; // type:function size:0x658 +fn_1_57A4 = .text:0x000057A4; // type:function size:0x4C4 +fn_1_5C68 = .text:0x00005C68; // type:function size:0x4FC +fn_1_6164 = .text:0x00006164; // type:function size:0x6C8 +fn_1_682C = .text:0x0000682C; // type:function size:0xC4 +fn_1_68F0 = .text:0x000068F0; // type:function size:0x188 +fn_1_6A78 = .text:0x00006A78; // type:function size:0x34 +fn_1_6AAC = .text:0x00006AAC; // type:function size:0x40 +fn_1_6AEC = .text:0x00006AEC; // type:function size:0xAC +fn_1_6B98 = .text:0x00006B98; // type:function size:0x1E8 +fn_1_6D80 = .text:0x00006D80; // type:function size:0xB4 +fn_1_6E34 = .text:0x00006E34; // type:function size:0x1D0 +fn_1_7004 = .text:0x00007004; // type:function size:0x394 +fn_1_7398 = .text:0x00007398; // type:function size:0x640 +fn_1_79D8 = .text:0x000079D8; // type:function size:0x4B0 +fn_1_7E88 = .text:0x00007E88; // type:function size:0x2C4 +fn_1_814C = .text:0x0000814C; // type:function size:0x118 +fn_1_8264 = .text:0x00008264; // type:function size:0x7C +fn_1_82E0 = .text:0x000082E0; // type:function size:0x8C +fn_1_836C = .text:0x0000836C; // type:function size:0xF0 +fn_1_845C = .text:0x0000845C; // type:function size:0x2FC +fn_1_8758 = .text:0x00008758; // type:function size:0x100 +fn_1_8858 = .text:0x00008858; // type:function size:0xF0 +fn_1_8948 = .text:0x00008948; // type:function size:0xF0 +fn_1_8A38 = .text:0x00008A38; // type:function size:0xF0 +fn_1_8B28 = .text:0x00008B28; // type:function size:0xF0 +fn_1_8C18 = .text:0x00008C18; // type:function size:0x7C +fn_1_8C94 = .text:0x00008C94; // type:function size:0x4AC +fn_1_9140 = .text:0x00009140; // type:function size:0x88 +fn_1_91C8 = .text:0x000091C8; // type:function size:0x58 +fn_1_9220 = .text:0x00009220; // type:function size:0x1B0 +fn_1_93D0 = .text:0x000093D0; // type:function size:0xB8 +fn_1_9488 = .text:0x00009488; // type:function size:0x228 +fn_1_96B0 = .text:0x000096B0; // type:function size:0xB8 +fn_1_9768 = .text:0x00009768; // type:function size:0x228 +fn_1_9990 = .text:0x00009990; // type:function size:0x78 +fn_1_9A08 = .text:0x00009A08; // type:function size:0x5C +fn_1_9A64 = .text:0x00009A64; // type:function size:0x8B0 +fn_1_A314 = .text:0x0000A314; // type:function size:0x1DC +fn_1_A4F0 = .text:0x0000A4F0; // type:function size:0x6BC +fn_1_ABAC = .text:0x0000ABAC; // type:function size:0xAC4 +fn_1_B670 = .text:0x0000B670; // type:function size:0x118 +fn_1_B788 = .text:0x0000B788; // type:function size:0x6D4 +fn_1_BE5C = .text:0x0000BE5C; // type:function size:0x104 +fn_1_BF60 = .text:0x0000BF60; // type:function size:0x100 +fn_1_C060 = .text:0x0000C060; // type:function size:0xE0C +fn_1_CE6C = .text:0x0000CE6C; // type:function size:0x620 +fn_1_D48C = .text:0x0000D48C; // type:function size:0xAC +fn_1_D538 = .text:0x0000D538; // type:function size:0x1E0 +fn_1_D718 = .text:0x0000D718; // type:function size:0xC0 +fn_1_D7D8 = .text:0x0000D7D8; // type:function size:0x390 +fn_1_DB68 = .text:0x0000DB68; // type:function size:0x5F8 +fn_1_E160 = .text:0x0000E160; // type:function size:0x1BD0 +fn_1_FD30 = .text:0x0000FD30; // type:function size:0x150 +fn_1_FE80 = .text:0x0000FE80; // type:function size:0xFC +fn_1_FF7C = .text:0x0000FF7C; // type:function size:0x3F0 +fn_1_1036C = .text:0x0001036C; // type:function size:0xA08 +fn_1_10D74 = .text:0x00010D74; // type:function size:0xA20 +fn_1_11794 = .text:0x00011794; // type:function size:0xA0 +fn_1_11834 = .text:0x00011834; // type:function size:0xBA4 +fn_1_123D8 = .text:0x000123D8; // type:function size:0x44 +fn_1_1241C = .text:0x0001241C; // type:function size:0x4 +fn_1_12420 = .text:0x00012420; // type:function size:0x678 +fn_1_12A98 = .text:0x00012A98; // type:function size:0x170 +fn_1_12C08 = .text:0x00012C08; // type:function size:0x1A4 +fn_1_12DAC = .text:0x00012DAC; // type:function size:0x2FC +fn_1_130A8 = .text:0x000130A8; // type:function size:0xD4 +fn_1_1317C = .text:0x0001317C; // type:function size:0x130 +fn_1_132AC = .text:0x000132AC; // type:function size:0x65C +fn_1_13908 = .text:0x00013908; // type:function size:0x130 +fn_1_13A38 = .text:0x00013A38; // type:function size:0x4 +fn_1_13A3C = .text:0x00013A3C; // type:function size:0x23C +fn_1_13C78 = .text:0x00013C78; // type:function size:0xC0 +fn_1_13D38 = .text:0x00013D38; // type:function size:0x60 +fn_1_13D98 = .text:0x00013D98; // type:function size:0x308 +fn_1_140A0 = .text:0x000140A0; // type:function size:0x38C +fn_1_1442C = .text:0x0001442C; // type:function size:0x140 +fn_1_1456C = .text:0x0001456C; // type:function size:0x118 +fn_1_14684 = .text:0x00014684; // type:function size:0x7C +fn_1_14700 = .text:0x00014700; // type:function size:0x48 +fn_1_14748 = .text:0x00014748; // type:function size:0x724 +fn_1_14E6C = .text:0x00014E6C; // type:function size:0x114 +fn_1_14F80 = .text:0x00014F80; // type:function size:0x54 +fn_1_14FD4 = .text:0x00014FD4; // type:function size:0x31C +fn_1_152F0 = .text:0x000152F0; // type:function size:0x160 +fn_1_15450 = .text:0x00015450; // type:function size:0x3A0 +fn_1_157F0 = .text:0x000157F0; // type:function size:0x1B4 +fn_1_159A4 = .text:0x000159A4; // type:function size:0x268 +fn_1_15C0C = .text:0x00015C0C; // type:function size:0xFC +fn_1_15D08 = .text:0x00015D08; // type:function size:0xC0 +fn_1_15DC8 = .text:0x00015DC8; // type:function size:0x3F0 +fn_1_161B8 = .text:0x000161B8; // type:function size:0x3BC +fn_1_16574 = .text:0x00016574; // type:function size:0x54 +fn_1_165C8 = .text:0x000165C8; // type:function size:0x35C +fn_1_16924 = .text:0x00016924; // type:function size:0x1B0 +fn_1_16AD4 = .text:0x00016AD4; // type:function size:0x400 +fn_1_16ED4 = .text:0x00016ED4; // type:function size:0x258 +fn_1_1712C = .text:0x0001712C; // type:function size:0x160 +fn_1_1728C = .text:0x0001728C; // type:function size:0x1F8 +fn_1_17484 = .text:0x00017484; // type:function size:0xEC +fn_1_17570 = .text:0x00017570; // type:function size:0x850 +fn_1_17DC0 = .text:0x00017DC0; // type:function size:0x2C0 +fn_1_18080 = .text:0x00018080; // type:function size:0x9C +fn_1_1811C = .text:0x0001811C; // type:function size:0x218 +fn_1_18334 = .text:0x00018334; // type:function size:0x1B4 +fn_1_184E8 = .text:0x000184E8; // type:function size:0x70 +fn_1_18558 = .text:0x00018558; // type:function size:0x110 +fn_1_18668 = .text:0x00018668; // type:function size:0x694 +fn_1_18CFC = .text:0x00018CFC; // type:function size:0x29C +fn_1_18F98 = .text:0x00018F98; // type:function size:0x1AC +fn_1_19144 = .text:0x00019144; // type:function size:0xD0 +fn_1_19214 = .text:0x00019214; // type:function size:0x28C +fn_1_194A0 = .text:0x000194A0; // type:function size:0xF0 +fn_1_19590 = .text:0x00019590; // type:function size:0x224 +fn_1_197B4 = .text:0x000197B4; // type:function size:0x854 +fn_1_1A008 = .text:0x0001A008; // type:function size:0x1EF4 +fn_1_1BEFC = .text:0x0001BEFC; // type:function size:0x3F8 +fn_1_1C2F4 = .text:0x0001C2F4; // type:function size:0x16C +fn_1_1C460 = .text:0x0001C460; // type:function size:0xD4 +fn_1_1C534 = .text:0x0001C534; // type:function size:0x3E0 +fn_1_1C914 = .text:0x0001C914; // type:function size:0x184 +fn_1_1CA98 = .text:0x0001CA98; // type:function size:0xE4 +fn_1_1CB7C = .text:0x0001CB7C; // type:function size:0xE0 +fn_1_1CC5C = .text:0x0001CC5C; // type:function size:0x104 +fn_1_1CD60 = .text:0x0001CD60; // type:function size:0x90 +fn_1_1CDF0 = .text:0x0001CDF0; // type:function size:0x334 +fn_1_1D124 = .text:0x0001D124; // type:function size:0x518 +fn_1_1D63C = .text:0x0001D63C; // type:function size:0x140 +fn_1_1D77C = .text:0x0001D77C; // type:function size:0x150 +fn_1_1D8CC = .text:0x0001D8CC; // type:function size:0x98 +fn_1_1D964 = .text:0x0001D964; // type:function size:0x100 +fn_1_1DA64 = .text:0x0001DA64; // type:function size:0x48 +fn_1_1DAAC = .text:0x0001DAAC; // type:function size:0x3A0 +fn_1_1DE4C = .text:0x0001DE4C; // type:function size:0x8C +fn_1_1DED8 = .text:0x0001DED8; // type:function size:0x21C +fn_1_1E0F4 = .text:0x0001E0F4; // type:function size:0x14 +fn_1_1E108 = .text:0x0001E108; // type:function size:0x10 +fn_1_1E118 = .text:0x0001E118; // type:function size:0x14 +fn_1_1E12C = .text:0x0001E12C; // type:function size:0x10 +fn_1_1E13C = .text:0x0001E13C; // type:function size:0x41C +fn_1_1E558 = .text:0x0001E558; // type:function size:0x2C8 +fn_1_1E820 = .text:0x0001E820; // type:function size:0x8E0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC data:4byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC data:4byte +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 data:4byte +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 data:4byte +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 data:4byte +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x2C data:4byte +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 data:byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 data:4byte +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0xF +lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 data:string +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A data:string +lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A data:string +lbl_1_data_11B = .data:0x0000011B; // type:object size:0x15 +lbl_1_data_130 = .data:0x00000130; // type:object size:0x30 data:float +lbl_1_data_160 = .data:0x00000160; // type:object size:0x50 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x50 +lbl_1_data_200 = .data:0x00000200; // type:object size:0x50 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 data:string +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 data:string +lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 data:string +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 data:string +lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 data:string +lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D data:string +lbl_1_data_346 = .data:0x00000346; // type:object size:0x1E +lbl_1_data_364 = .data:0x00000364; // type:object size:0x8 data:4byte +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC +lbl_1_data_378 = .data:0x00000378; // type:object size:0xF data:string +lbl_1_data_387 = .data:0x00000387; // type:object size:0x11 +jumptable_1_data_398 = .data:0x00000398; // type:object size:0x30 scope:local +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 data:string +lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 data:string +lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 data:string +lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 data:string +lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 data:string +lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 data:string +lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 data:string +lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12 +lbl_1_data_504 = .data:0x00000504; // type:object size:0x288 +lbl_1_data_78C = .data:0x0000078C; // type:object size:0x54 +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 data:string +lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 data:string +lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 data:string +lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 data:string +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 data:string +lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 data:string +lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 data:string +lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF data:string +lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C data:string +lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D data:string +lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 data:string +lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 data:string +lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 data:string +lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 data:string +lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 data:string +lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A data:string +lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A data:string +lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x1B +lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 data:string +lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x54 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:float +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:float +lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:float +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:float +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:float +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x1340 +lbl_1_bss_1408 = .bss:0x00001408; // type:object size:0x18 +lbl_1_bss_1420 = .bss:0x00001420; // type:object size:0x4 data:4byte +lbl_1_bss_1424 = .bss:0x00001424; // type:object size:0x4 data:float +lbl_1_bss_1428 = .bss:0x00001428; // type:object size:0x10 data:4byte +lbl_1_bss_1438 = .bss:0x00001438; // type:object size:0x10 +lbl_1_bss_1448 = .bss:0x00001448; // type:object size:0x10 data:4byte +lbl_1_bss_1458 = .bss:0x00001458; // type:object size:0x10 data:4byte +lbl_1_bss_1468 = .bss:0x00001468; // type:object size:0x28 data:4byte +lbl_1_bss_1490 = .bss:0x00001490; // type:object size:0xA0 data:4byte +lbl_1_bss_1530 = .bss:0x00001530; // type:object size:0x28 data:4byte +lbl_1_bss_1558 = .bss:0x00001558; // type:object size:0x28 data:4byte +lbl_1_bss_1580 = .bss:0x00001580; // type:object size:0x350 data:4byte +lbl_1_bss_18D0 = .bss:0x000018D0; // type:object size:0x4 data:4byte +lbl_1_bss_18D4 = .bss:0x000018D4; // type:object size:0x4 data:4byte +lbl_1_bss_18D8 = .bss:0x000018D8; // type:object size:0xC data:4byte +lbl_1_bss_18E4 = .bss:0x000018E4; // type:object size:0x8 data:4byte +lbl_1_bss_18EC = .bss:0x000018EC; // type:object size:0x8 data:4byte +lbl_1_bss_18F4 = .bss:0x000018F4; // type:object size:0xA0 +lbl_1_bss_1994 = .bss:0x00001994; // type:object size:0x28 data:4byte +lbl_1_bss_19BC = .bss:0x000019BC; // type:object size:0x28 data:4byte +lbl_1_bss_19E4 = .bss:0x000019E4; // type:object size:0x28 data:4byte +lbl_1_bss_1A0C = .bss:0x00001A0C; // type:object size:0x2DC data:float +lbl_1_bss_1CE8 = .bss:0x00001CE8; // type:object size:0x2 data:2byte +lbl_1_bss_1CEC = .bss:0x00001CEC; // type:object size:0x4 data:4byte +lbl_1_bss_1CF0 = .bss:0x00001CF0; // type:object size:0x4 data:4byte +lbl_1_bss_1CF4 = .bss:0x00001CF4; // type:object size:0x4 data:4byte +lbl_1_bss_1CF8 = .bss:0x00001CF8; // type:object size:0x58 data:2byte diff --git a/config/GMPJ01_00/rels/mstory4Dll/splits.txt b/config/GMPJ01_00/rels/mstory4Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/mstory4Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/mstory4Dll/symbols.txt b/config/GMPJ01_00/rels/mstory4Dll/symbols.txt new file mode 100644 index 00000000..59a31229 --- /dev/null +++ b/config/GMPJ01_00/rels/mstory4Dll/symbols.txt @@ -0,0 +1,65 @@ +fn_1_0 = .text:0x00000000; // type:function size:0xEC +fn_1_EC = .text:0x000000EC; // type:function size:0x115C +_prolog = .text:0x00001248; // type:function size:0x54 scope:global +_epilog = .text:0x0000129C; // type:function size:0x4C scope:global +fn_1_12E8 = .text:0x000012E8; // type:function size:0xB8 +fn_1_13A0 = .text:0x000013A0; // type:function size:0x68C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x1 data:byte +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x1C data:4byte +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x1 data:byte +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x3C0 +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0xF data:string +lbl_1_data_3CF = .data:0x000003CF; // type:object size:0x14 data:string +lbl_1_data_3E3 = .data:0x000003E3; // type:object size:0x15 data:string +lbl_1_data_3F8 = .data:0x000003F8; // type:object size:0x11 data:string +lbl_1_data_409 = .data:0x00000409; // type:object size:0x12 data:string +lbl_1_data_41B = .data:0x0000041B; // type:object size:0x15 +lbl_1_data_430 = .data:0x00000430; // type:object size:0x18 +lbl_1_data_448 = .data:0x00000448; // type:object size:0x17 data:string +lbl_1_data_45F = .data:0x0000045F; // type:object size:0x24 data:string +lbl_1_data_483 = .data:0x00000483; // type:object size:0x23 data:string +lbl_1_data_4A6 = .data:0x000004A6; // type:object size:0x27 data:string +lbl_1_data_4CD = .data:0x000004CD; // type:object size:0x26 data:string +lbl_1_data_4F3 = .data:0x000004F3; // type:object size:0x29 data:string +lbl_1_data_51C = .data:0x0000051C; // type:object size:0x1C +lbl_1_data_538 = .data:0x00000538; // type:object size:0x1C +lbl_1_data_554 = .data:0x00000554; // type:object size:0x18 data:4byte +lbl_1_data_56C = .data:0x0000056C; // type:object size:0x1C +lbl_1_data_588 = .data:0x00000588; // type:object size:0x7 data:string +lbl_1_data_58F = .data:0x0000058F; // type:object size:0x33 data:string +lbl_1_data_5C2 = .data:0x000005C2; // type:object size:0x3 data:string +lbl_1_data_5C5 = .data:0x000005C5; // type:object size:0x9 data:string +lbl_1_data_5CE = .data:0x000005CE; // type:object size:0xB data:string +lbl_1_data_5D9 = .data:0x000005D9; // type:object size:0xB data:string +lbl_1_data_5E4 = .data:0x000005E4; // type:object size:0xC +jumptable_1_data_5F0 = .data:0x000005F0; // type:object size:0x1C scope:local +lbl_1_data_60C = .data:0x0000060C; // type:object size:0x6 data:string +lbl_1_data_612 = .data:0x00000612; // type:object size:0x6 data:string +lbl_1_data_618 = .data:0x00000618; // type:object size:0x6 data:string +lbl_1_data_61E = .data:0x0000061E; // type:object size:0x6 data:string +lbl_1_data_624 = .data:0x00000624; // type:object size:0x6 data:string +lbl_1_data_62A = .data:0x0000062A; // type:object size:0x7 data:string +lbl_1_data_631 = .data:0x00000631; // type:object size:0x6 data:string +lbl_1_data_637 = .data:0x00000637; // type:object size:0x9 +lbl_1_data_640 = .data:0x00000640; // type:object size:0x20 +lbl_1_data_660 = .data:0x00000660; // type:object size:0x16 data:string +lbl_1_data_676 = .data:0x00000676; // type:object size:0x11 data:string +lbl_1_data_687 = .data:0x00000687; // type:object size:0x10 data:string +lbl_1_data_697 = .data:0x00000697; // type:object size:0xD data:string +lbl_1_data_6A4 = .data:0x000006A4; // type:object size:0x10 data:string +lbl_1_data_6B4 = .data:0x000006B4; // type:object size:0xD data:string +lbl_1_data_6C1 = .data:0x000006C1; // type:object size:0x1B data:string +lbl_1_data_6DC = .data:0x000006DC; // type:object size:0x1A data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/mstoryDll/splits.txt b/config/GMPJ01_00/rels/mstoryDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/mstoryDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/mstoryDll/symbols.txt b/config/GMPJ01_00/rels/mstoryDll/symbols.txt new file mode 100644 index 00000000..e9076690 --- /dev/null +++ b/config/GMPJ01_00/rels/mstoryDll/symbols.txt @@ -0,0 +1,498 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x4C +fn_1_4C = .text:0x0000004C; // type:function size:0x58 +fn_1_A4 = .text:0x000000A4; // type:function size:0x344 +_prolog = .text:0x000003E8; // type:function size:0x54 scope:global +_epilog = .text:0x0000043C; // type:function size:0x4C scope:global +fn_1_488 = .text:0x00000488; // type:function size:0x1D0 +fn_1_658 = .text:0x00000658; // type:function size:0x1D0 +fn_1_828 = .text:0x00000828; // type:function size:0x28 +fn_1_850 = .text:0x00000850; // type:function size:0x20 +fn_1_870 = .text:0x00000870; // type:function size:0xD8 +fn_1_948 = .text:0x00000948; // type:function size:0xC8 +fn_1_A10 = .text:0x00000A10; // type:function size:0xBC +fn_1_ACC = .text:0x00000ACC; // type:function size:0xBC +fn_1_B88 = .text:0x00000B88; // type:function size:0x4 +fn_1_B8C = .text:0x00000B8C; // type:function size:0x20 +fn_1_BAC = .text:0x00000BAC; // type:function size:0x28 +fn_1_BD4 = .text:0x00000BD4; // type:function size:0x20 +fn_1_BF4 = .text:0x00000BF4; // type:function size:0x24 +fn_1_C18 = .text:0x00000C18; // type:function size:0x20 +fn_1_C38 = .text:0x00000C38; // type:function size:0xA48 +fn_1_1680 = .text:0x00001680; // type:function size:0x1B4 +fn_1_1834 = .text:0x00001834; // type:function size:0x1D0 +fn_1_1A04 = .text:0x00001A04; // type:function size:0x60 +fn_1_1A64 = .text:0x00001A64; // type:function size:0x68 +fn_1_1ACC = .text:0x00001ACC; // type:function size:0xAC +fn_1_1B78 = .text:0x00001B78; // type:function size:0xBC +fn_1_1C34 = .text:0x00001C34; // type:function size:0xB4 +fn_1_1CE8 = .text:0x00001CE8; // type:function size:0x34 +fn_1_1D1C = .text:0x00001D1C; // type:function size:0x40 +fn_1_1D5C = .text:0x00001D5C; // type:function size:0x70 +fn_1_1DCC = .text:0x00001DCC; // type:function size:0x178 +fn_1_1F44 = .text:0x00001F44; // type:function size:0x2E0 +fn_1_2224 = .text:0x00002224; // type:function size:0x90 +fn_1_22B4 = .text:0x000022B4; // type:function size:0x48 +fn_1_22FC = .text:0x000022FC; // type:function size:0x54 +fn_1_2350 = .text:0x00002350; // type:function size:0x3C0 +fn_1_2710 = .text:0x00002710; // type:function size:0x10 +fn_1_2720 = .text:0x00002720; // type:function size:0x10 +fn_1_2730 = .text:0x00002730; // type:function size:0xB8 +fn_1_27E8 = .text:0x000027E8; // type:function size:0x120 +fn_1_2908 = .text:0x00002908; // type:function size:0x3A8 +fn_1_2CB0 = .text:0x00002CB0; // type:function size:0x7F4 +fn_1_34A4 = .text:0x000034A4; // type:function size:0x88 +fn_1_352C = .text:0x0000352C; // type:function size:0x94 +fn_1_35C0 = .text:0x000035C0; // type:function size:0x58 +fn_1_3618 = .text:0x00003618; // type:function size:0xEC +fn_1_3704 = .text:0x00003704; // type:function size:0xC4 +fn_1_37C8 = .text:0x000037C8; // type:function size:0x3C +fn_1_3804 = .text:0x00003804; // type:function size:0x44 +fn_1_3848 = .text:0x00003848; // type:function size:0x274 +fn_1_3ABC = .text:0x00003ABC; // type:function size:0x26C +fn_1_3D28 = .text:0x00003D28; // type:function size:0x22C +fn_1_3F54 = .text:0x00003F54; // type:function size:0x27C +fn_1_41D0 = .text:0x000041D0; // type:function size:0x2B4 +fn_1_4484 = .text:0x00004484; // type:function size:0x46C +fn_1_48F0 = .text:0x000048F0; // type:function size:0x454 +fn_1_4D44 = .text:0x00004D44; // type:function size:0x48C +fn_1_51D0 = .text:0x000051D0; // type:function size:0x658 +fn_1_5828 = .text:0x00005828; // type:function size:0x4C4 +fn_1_5CEC = .text:0x00005CEC; // type:function size:0x4FC +fn_1_61E8 = .text:0x000061E8; // type:function size:0x6C8 +fn_1_68B0 = .text:0x000068B0; // type:function size:0xC4 +fn_1_6974 = .text:0x00006974; // type:function size:0x188 +fn_1_6AFC = .text:0x00006AFC; // type:function size:0x34 +fn_1_6B30 = .text:0x00006B30; // type:function size:0x40 +fn_1_6B70 = .text:0x00006B70; // type:function size:0xAC +fn_1_6C1C = .text:0x00006C1C; // type:function size:0x1E8 +fn_1_6E04 = .text:0x00006E04; // type:function size:0xB4 +fn_1_6EB8 = .text:0x00006EB8; // type:function size:0x170 +fn_1_7028 = .text:0x00007028; // type:function size:0x68 +fn_1_7090 = .text:0x00007090; // type:function size:0xA4 +fn_1_7134 = .text:0x00007134; // type:function size:0x1E8 +fn_1_731C = .text:0x0000731C; // type:function size:0x69C +fn_1_79B8 = .text:0x000079B8; // type:function size:0x128 +fn_1_7AE0 = .text:0x00007AE0; // type:function size:0x390 +fn_1_7E70 = .text:0x00007E70; // type:function size:0x5C +fn_1_7ECC = .text:0x00007ECC; // type:function size:0x1C4 +fn_1_8090 = .text:0x00008090; // type:function size:0x320 +fn_1_83B0 = .text:0x000083B0; // type:function size:0x58 +fn_1_8408 = .text:0x00008408; // type:function size:0x3D4 +fn_1_87DC = .text:0x000087DC; // type:function size:0x268 +fn_1_8A44 = .text:0x00008A44; // type:function size:0x9C +fn_1_8AE0 = .text:0x00008AE0; // type:function size:0x2E0 +fn_1_8DC0 = .text:0x00008DC0; // type:function size:0xAC +fn_1_8E6C = .text:0x00008E6C; // type:function size:0xFC +fn_1_8F68 = .text:0x00008F68; // type:function size:0x36C +fn_1_92D4 = .text:0x000092D4; // type:function size:0x134 +fn_1_9408 = .text:0x00009408; // type:function size:0x310 +fn_1_9718 = .text:0x00009718; // type:function size:0x18C +fn_1_98A4 = .text:0x000098A4; // type:function size:0x88 +fn_1_992C = .text:0x0000992C; // type:function size:0x3DC +fn_1_9D08 = .text:0x00009D08; // type:function size:0x300 +fn_1_A008 = .text:0x0000A008; // type:function size:0xE4 +fn_1_A0EC = .text:0x0000A0EC; // type:function size:0x38C +fn_1_A478 = .text:0x0000A478; // type:function size:0x8C +fn_1_A504 = .text:0x0000A504; // type:function size:0xF0 +fn_1_A5F4 = .text:0x0000A5F4; // type:function size:0x23C +fn_1_A830 = .text:0x0000A830; // type:function size:0xC8 +fn_1_A8F8 = .text:0x0000A8F8; // type:function size:0x2B4 +fn_1_ABAC = .text:0x0000ABAC; // type:function size:0x150 +fn_1_ACFC = .text:0x0000ACFC; // type:function size:0x134 +fn_1_AE30 = .text:0x0000AE30; // type:function size:0x8C +fn_1_AEBC = .text:0x0000AEBC; // type:function size:0x374 +fn_1_B230 = .text:0x0000B230; // type:function size:0x5C +fn_1_B28C = .text:0x0000B28C; // type:function size:0x214 +fn_1_B4A0 = .text:0x0000B4A0; // type:function size:0xE8 +fn_1_B588 = .text:0x0000B588; // type:function size:0xE8 +fn_1_B670 = .text:0x0000B670; // type:function size:0x11C +fn_1_B78C = .text:0x0000B78C; // type:function size:0x13C +fn_1_B8C8 = .text:0x0000B8C8; // type:function size:0x4 +fn_1_B8CC = .text:0x0000B8CC; // type:function size:0x104 +fn_1_B9D0 = .text:0x0000B9D0; // type:function size:0x208 +fn_1_BBD8 = .text:0x0000BBD8; // type:function size:0x788 +fn_1_C360 = .text:0x0000C360; // type:function size:0xB4 +fn_1_C414 = .text:0x0000C414; // type:function size:0x2F4 +fn_1_C708 = .text:0x0000C708; // type:function size:0xBC +fn_1_C7C4 = .text:0x0000C7C4; // type:function size:0x384 +fn_1_CB48 = .text:0x0000CB48; // type:function size:0x300 +fn_1_CE48 = .text:0x0000CE48; // type:function size:0xAC +fn_1_CEF4 = .text:0x0000CEF4; // type:function size:0xE4 +fn_1_CFD8 = .text:0x0000CFD8; // type:function size:0xC4 +fn_1_D09C = .text:0x0000D09C; // type:function size:0xE4 +fn_1_D180 = .text:0x0000D180; // type:function size:0x3FC +fn_1_D57C = .text:0x0000D57C; // type:function size:0x134 +fn_1_D6B0 = .text:0x0000D6B0; // type:function size:0x2F8 +fn_1_D9A8 = .text:0x0000D9A8; // type:function size:0xFC +fn_1_DAA4 = .text:0x0000DAA4; // type:function size:0x164 +fn_1_DC08 = .text:0x0000DC08; // type:function size:0x118 +fn_1_DD20 = .text:0x0000DD20; // type:function size:0xE4 +fn_1_DE04 = .text:0x0000DE04; // type:function size:0x424 +fn_1_E228 = .text:0x0000E228; // type:function size:0x8C +fn_1_E2B4 = .text:0x0000E2B4; // type:function size:0x130 +fn_1_E3E4 = .text:0x0000E3E4; // type:function size:0x23C +fn_1_E620 = .text:0x0000E620; // type:function size:0xF0 +fn_1_E710 = .text:0x0000E710; // type:function size:0x118 +fn_1_E828 = .text:0x0000E828; // type:function size:0x8C +fn_1_E8B4 = .text:0x0000E8B4; // type:function size:0x34C +fn_1_EC00 = .text:0x0000EC00; // type:function size:0x5C +fn_1_EC5C = .text:0x0000EC5C; // type:function size:0x384 +fn_1_EFE0 = .text:0x0000EFE0; // type:function size:0x70 +fn_1_F050 = .text:0x0000F050; // type:function size:0x14C +fn_1_F19C = .text:0x0000F19C; // type:function size:0x5E4 +fn_1_F780 = .text:0x0000F780; // type:function size:0xEC +fn_1_F86C = .text:0x0000F86C; // type:function size:0xA4 +fn_1_F910 = .text:0x0000F910; // type:function size:0x1D4 +fn_1_FAE4 = .text:0x0000FAE4; // type:function size:0x238 +fn_1_FD1C = .text:0x0000FD1C; // type:function size:0xB4 +fn_1_FDD0 = .text:0x0000FDD0; // type:function size:0x4C8 +fn_1_10298 = .text:0x00010298; // type:function size:0xEC +fn_1_10384 = .text:0x00010384; // type:function size:0xCC +fn_1_10450 = .text:0x00010450; // type:function size:0xFC +fn_1_1054C = .text:0x0001054C; // type:function size:0xAC +fn_1_105F8 = .text:0x000105F8; // type:function size:0x300 +fn_1_108F8 = .text:0x000108F8; // type:function size:0x374 +fn_1_10C6C = .text:0x00010C6C; // type:function size:0xE4 +fn_1_10D50 = .text:0x00010D50; // type:function size:0x1D4 +fn_1_10F24 = .text:0x00010F24; // type:function size:0xAC +fn_1_10FD0 = .text:0x00010FD0; // type:function size:0x2D0 +fn_1_112A0 = .text:0x000112A0; // type:function size:0x8C +fn_1_1132C = .text:0x0001132C; // type:function size:0xF0 +fn_1_1141C = .text:0x0001141C; // type:function size:0x118 +fn_1_11534 = .text:0x00011534; // type:function size:0xF0 +fn_1_11624 = .text:0x00011624; // type:function size:0x10C +fn_1_11730 = .text:0x00011730; // type:function size:0x35C +fn_1_11A8C = .text:0x00011A8C; // type:function size:0x5C +fn_1_11AE8 = .text:0x00011AE8; // type:function size:0x184 +fn_1_11C6C = .text:0x00011C6C; // type:function size:0x16C +fn_1_11DD8 = .text:0x00011DD8; // type:function size:0xEC +fn_1_11EC4 = .text:0x00011EC4; // type:function size:0x64 +fn_1_11F28 = .text:0x00011F28; // type:function size:0x4 +fn_1_11F2C = .text:0x00011F2C; // type:function size:0x144 +fn_1_12070 = .text:0x00012070; // type:function size:0x5C0 +fn_1_12630 = .text:0x00012630; // type:function size:0xB4 +fn_1_126E4 = .text:0x000126E4; // type:function size:0x234 +fn_1_12918 = .text:0x00012918; // type:function size:0xBC +fn_1_129D4 = .text:0x000129D4; // type:function size:0x2C0 +fn_1_12C94 = .text:0x00012C94; // type:function size:0xE4 +fn_1_12D78 = .text:0x00012D78; // type:function size:0x1A8 +fn_1_12F20 = .text:0x00012F20; // type:function size:0x88 +fn_1_12FA8 = .text:0x00012FA8; // type:function size:0x118 +fn_1_130C0 = .text:0x000130C0; // type:function size:0x22C +fn_1_132EC = .text:0x000132EC; // type:function size:0x284 +fn_1_13570 = .text:0x00013570; // type:function size:0x310 +fn_1_13880 = .text:0x00013880; // type:function size:0x8C +fn_1_1390C = .text:0x0001390C; // type:function size:0x23C +fn_1_13B48 = .text:0x00013B48; // type:function size:0xEC +fn_1_13C34 = .text:0x00013C34; // type:function size:0x1F8 +fn_1_13E2C = .text:0x00013E2C; // type:function size:0x324 +fn_1_14150 = .text:0x00014150; // type:function size:0x50 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC data:4byte +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC data:4byte +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC data:4byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 data:byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC data:2byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC data:4byte +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 data:4byte +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x1 data:byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 data:4byte +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC data:4byte +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC data:4byte +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC data:4byte +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 data:4byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 data:4byte +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 data:4byte +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 data:byte +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 data:4byte +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 data:4byte +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C data:4byte +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 +lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 data:string +lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 data:string +lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 data:string +lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 +lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 data:string +lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 data:string +lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 data:string +lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A data:string +lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A data:string +lbl_1_data_17F = .data:0x0000017F; // type:object size:0x11 +lbl_1_data_190 = .data:0x00000190; // type:object size:0x50 +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 data:string +lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 data:string +lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 data:string +lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C data:string +lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D data:string +lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0xF data:string +lbl_1_data_338 = .data:0x00000338; // type:object size:0x1C +lbl_1_data_354 = .data:0x00000354; // type:object size:0x34 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x50 +lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C +lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 data:string +lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 data:string +lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 data:string +lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 data:string +lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 data:string +lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 data:string +lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 data:string +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA data:string +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C data:string +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D data:string +lbl_1_data_505 = .data:0x00000505; // type:object size:0xF data:string +lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B data:string +lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 data:string +lbl_1_data_537 = .data:0x00000537; // type:object size:0x9 +lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 +lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0 +lbl_1_data_930 = .data:0x00000930; // type:object size:0x50 +lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 data:string +lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 data:string +lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 data:string +lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 data:string +lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 data:string +lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 data:string +lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 data:string +lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 data:string +lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF data:string +lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C data:string +lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D data:string +lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C data:string +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 data:string +lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF data:string +lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 data:string +lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA data:string +lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 data:string +lbl_1_data_AED = .data:0x00000AED; // type:object size:0xB +lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C +lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 data:string +lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 data:string +lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 data:string +lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 data:string +lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 data:string +lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 data:string +lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 data:string +lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 data:string +lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF data:string +lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C data:string +lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D data:string +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF data:string +lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x21 +lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x54 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x28 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0xA0 +lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x28 data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x28 data:4byte +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0x104 data:4byte +lbl_1_bss_2C8 = .bss:0x000002C8; // type:object size:0x4 data:4byte +lbl_1_bss_2CC = .bss:0x000002CC; // type:object size:0x4 data:4byte +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x60 data:4byte +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0x8 data:4byte +lbl_1_bss_338 = .bss:0x00000338; // type:object size:0xA0 +lbl_1_bss_3D8 = .bss:0x000003D8; // type:object size:0x28 data:4byte +lbl_1_bss_400 = .bss:0x00000400; // type:object size:0x28 data:4byte +lbl_1_bss_428 = .bss:0x00000428; // type:object size:0x28 data:4byte +lbl_1_bss_450 = .bss:0x00000450; // type:object size:0x108 data:float +lbl_1_bss_558 = .bss:0x00000558; // type:object size:0x4 data:4byte +lbl_1_bss_55C = .bss:0x0000055C; // type:object size:0x4 data:4byte +lbl_1_bss_560 = .bss:0x00000560; // type:object size:0x8 data:4byte +lbl_1_bss_568 = .bss:0x00000568; // type:object size:0x28 data:4byte +lbl_1_bss_590 = .bss:0x00000590; // type:object size:0x28 data:4byte +lbl_1_bss_5B8 = .bss:0x000005B8; // type:object size:0x28 data:4byte +lbl_1_bss_5E0 = .bss:0x000005E0; // type:object size:0x28 data:4byte +lbl_1_bss_608 = .bss:0x00000608; // type:object size:0x108 data:4byte +lbl_1_bss_710 = .bss:0x00000710; // type:object size:0x4 data:4byte +lbl_1_bss_714 = .bss:0x00000714; // type:object size:0x28 data:4byte +lbl_1_bss_73C = .bss:0x0000073C; // type:object size:0x28 data:4byte +lbl_1_bss_764 = .bss:0x00000764; // type:object size:0x28 data:4byte +lbl_1_bss_78C = .bss:0x0000078C; // type:object size:0x28 data:4byte +lbl_1_bss_7B4 = .bss:0x000007B4; // type:object size:0x104 data:4byte +lbl_1_bss_8B8 = .bss:0x000008B8; // type:object size:0x4 data:4byte +lbl_1_bss_8BC = .bss:0x000008BC; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/nisDll/splits.txt b/config/GMPJ01_00/rels/nisDll/splits.txt new file mode 100644 index 00000000..2e500fe0 --- /dev/null +++ b/config/GMPJ01_00/rels/nisDll/splits.txt @@ -0,0 +1,5 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 diff --git a/config/GMPJ01_00/rels/nisDll/symbols.txt b/config/GMPJ01_00/rels/nisDll/symbols.txt new file mode 100644 index 00000000..1143328c --- /dev/null +++ b/config/GMPJ01_00/rels/nisDll/symbols.txt @@ -0,0 +1,6 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x68 +fn_1_68 = .text:0x00000068; // type:function size:0x2C +_prolog = .text:0x00000094; // type:function size:0x9C scope:global +_epilog = .text:0x00000130; // type:function size:0x4C scope:global +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte diff --git a/config/GMPJ01_00/rels/option/splits.txt b/config/GMPJ01_00/rels/option/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/option/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/option/symbols.txt b/config/GMPJ01_00/rels/option/symbols.txt new file mode 100644 index 00000000..99c6ef45 --- /dev/null +++ b/config/GMPJ01_00/rels/option/symbols.txt @@ -0,0 +1,380 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0xC0 +fn_1_160 = .text:0x00000160; // type:function size:0x110 +fn_1_270 = .text:0x00000270; // type:function size:0xE4 +fn_1_354 = .text:0x00000354; // type:function size:0x114 +fn_1_468 = .text:0x00000468; // type:function size:0xE8 +fn_1_550 = .text:0x00000550; // type:function size:0x34 +fn_1_584 = .text:0x00000584; // type:function size:0x34 +fn_1_5B8 = .text:0x000005B8; // type:function size:0x34 +fn_1_5EC = .text:0x000005EC; // type:function size:0xFC +fn_1_6E8 = .text:0x000006E8; // type:function size:0x110 +fn_1_7F8 = .text:0x000007F8; // type:function size:0x244 +fn_1_A3C = .text:0x00000A3C; // type:function size:0x30 +fn_1_A6C = .text:0x00000A6C; // type:function size:0x84 +fn_1_AF0 = .text:0x00000AF0; // type:function size:0x84 +fn_1_B74 = .text:0x00000B74; // type:function size:0x84 +fn_1_BF8 = .text:0x00000BF8; // type:function size:0x30 +fn_1_C28 = .text:0x00000C28; // type:function size:0x30 +fn_1_C58 = .text:0x00000C58; // type:function size:0x30 +fn_1_C88 = .text:0x00000C88; // type:function size:0x30 +fn_1_CB8 = .text:0x00000CB8; // type:function size:0x8C +fn_1_D44 = .text:0x00000D44; // type:function size:0x28 +fn_1_D6C = .text:0x00000D6C; // type:function size:0x578 +fn_1_12E4 = .text:0x000012E4; // type:function size:0x200 +fn_1_14E4 = .text:0x000014E4; // type:function size:0xC0 +fn_1_15A4 = .text:0x000015A4; // type:function size:0x1F4 +fn_1_1798 = .text:0x00001798; // type:function size:0xAC +fn_1_1844 = .text:0x00001844; // type:function size:0x1E8 +fn_1_1A2C = .text:0x00001A2C; // type:function size:0x44 +fn_1_1A70 = .text:0x00001A70; // type:function size:0x1C +fn_1_1A8C = .text:0x00001A8C; // type:function size:0x5FC +fn_1_2088 = .text:0x00002088; // type:function size:0x88 +fn_1_2110 = .text:0x00002110; // type:function size:0x34 +fn_1_2144 = .text:0x00002144; // type:function size:0x80 +fn_1_21C4 = .text:0x000021C4; // type:function size:0x34 +fn_1_21F8 = .text:0x000021F8; // type:function size:0x224 +fn_1_241C = .text:0x0000241C; // type:function size:0x8C +fn_1_24A8 = .text:0x000024A8; // type:function size:0x44 +fn_1_24EC = .text:0x000024EC; // type:function size:0x1C +fn_1_2508 = .text:0x00002508; // type:function size:0xA4 +fn_1_25AC = .text:0x000025AC; // type:function size:0x46C +fn_1_2A18 = .text:0x00002A18; // type:function size:0x2E8 +fn_1_2D00 = .text:0x00002D00; // type:function size:0x104 +fn_1_2E04 = .text:0x00002E04; // type:function size:0x148 +fn_1_2F4C = .text:0x00002F4C; // type:function size:0x64 +fn_1_2FB0 = .text:0x00002FB0; // type:function size:0x1A8 +fn_1_3158 = .text:0x00003158; // type:function size:0xD4 +fn_1_322C = .text:0x0000322C; // type:function size:0x64 +fn_1_3290 = .text:0x00003290; // type:function size:0x44 +fn_1_32D4 = .text:0x000032D4; // type:function size:0x1C +fn_1_32F0 = .text:0x000032F0; // type:function size:0x4BC +fn_1_37AC = .text:0x000037AC; // type:function size:0xBC +fn_1_3868 = .text:0x00003868; // type:function size:0x54 +fn_1_38BC = .text:0x000038BC; // type:function size:0xD0 +fn_1_398C = .text:0x0000398C; // type:function size:0x54 +fn_1_39E0 = .text:0x000039E0; // type:function size:0x128 +fn_1_3B08 = .text:0x00003B08; // type:function size:0x84 +fn_1_3B8C = .text:0x00003B8C; // type:function size:0x54 +fn_1_3BE0 = .text:0x00003BE0; // type:function size:0x8C +fn_1_3C6C = .text:0x00003C6C; // type:function size:0x94 +fn_1_3D00 = .text:0x00003D00; // type:function size:0x54 +fn_1_3D54 = .text:0x00003D54; // type:function size:0xC8 +fn_1_3E1C = .text:0x00003E1C; // type:function size:0xB4 +fn_1_3ED0 = .text:0x00003ED0; // type:function size:0x58 +fn_1_3F28 = .text:0x00003F28; // type:function size:0xAC +fn_1_3FD4 = .text:0x00003FD4; // type:function size:0x54 +fn_1_4028 = .text:0x00004028; // type:function size:0x2B4 +fn_1_42DC = .text:0x000042DC; // type:function size:0xAC +fn_1_4388 = .text:0x00004388; // type:function size:0x44 +fn_1_43CC = .text:0x000043CC; // type:function size:0x1C +fn_1_43E8 = .text:0x000043E8; // type:function size:0x270 +fn_1_4658 = .text:0x00004658; // type:function size:0x424 +fn_1_4A7C = .text:0x00004A7C; // type:function size:0x3D4 +fn_1_4E50 = .text:0x00004E50; // type:function size:0x93C +fn_1_578C = .text:0x0000578C; // type:function size:0x8B8 +fn_1_6044 = .text:0x00006044; // type:function size:0xF8 +fn_1_613C = .text:0x0000613C; // type:function size:0x64 +fn_1_61A0 = .text:0x000061A0; // type:function size:0xFC +fn_1_629C = .text:0x0000629C; // type:function size:0x54 +fn_1_62F0 = .text:0x000062F0; // type:function size:0xFC +fn_1_63EC = .text:0x000063EC; // type:function size:0x54 +fn_1_6440 = .text:0x00006440; // type:function size:0x94 +fn_1_64D4 = .text:0x000064D4; // type:function size:0x54 +fn_1_6528 = .text:0x00006528; // type:function size:0x118 +fn_1_6640 = .text:0x00006640; // type:function size:0x54 +fn_1_6694 = .text:0x00006694; // type:function size:0x38 +fn_1_66CC = .text:0x000066CC; // type:function size:0x38 +fn_1_6704 = .text:0x00006704; // type:function size:0xC4 +fn_1_67C8 = .text:0x000067C8; // type:function size:0x60 +fn_1_6828 = .text:0x00006828; // type:function size:0x1E4 +fn_1_6A0C = .text:0x00006A0C; // type:function size:0x74 +fn_1_6A80 = .text:0x00006A80; // type:function size:0x1DC +fn_1_6C5C = .text:0x00006C5C; // type:function size:0x74 +fn_1_6CD0 = .text:0x00006CD0; // type:function size:0x1D4 +fn_1_6EA4 = .text:0x00006EA4; // type:function size:0xA4 +fn_1_6F48 = .text:0x00006F48; // type:function size:0x1D4 +fn_1_711C = .text:0x0000711C; // type:function size:0xA4 +fn_1_71C0 = .text:0x000071C0; // type:function size:0xE8 +fn_1_72A8 = .text:0x000072A8; // type:function size:0x68 +fn_1_7310 = .text:0x00007310; // type:function size:0x400 +fn_1_7710 = .text:0x00007710; // type:function size:0x190 +fn_1_78A0 = .text:0x000078A0; // type:function size:0x60 +fn_1_7900 = .text:0x00007900; // type:function size:0x3C +fn_1_793C = .text:0x0000793C; // type:function size:0x5C4 +fn_1_7F00 = .text:0x00007F00; // type:function size:0x148 +fn_1_8048 = .text:0x00008048; // type:function size:0x9C +fn_1_80E4 = .text:0x000080E4; // type:function size:0x178 +fn_1_825C = .text:0x0000825C; // type:function size:0x54 +fn_1_82B0 = .text:0x000082B0; // type:function size:0x44 +fn_1_82F4 = .text:0x000082F4; // type:function size:0x1C +fn_1_8310 = .text:0x00008310; // type:function size:0x778 +fn_1_8A88 = .text:0x00008A88; // type:function size:0xD0 +fn_1_8B58 = .text:0x00008B58; // type:function size:0x54 +fn_1_8BAC = .text:0x00008BAC; // type:function size:0xD8 +fn_1_8C84 = .text:0x00008C84; // type:function size:0xFC +fn_1_8D80 = .text:0x00008D80; // type:function size:0x54 +fn_1_8DD4 = .text:0x00008DD4; // type:function size:0xC4 +fn_1_8E98 = .text:0x00008E98; // type:function size:0x60 +fn_1_8EF8 = .text:0x00008EF8; // type:function size:0x40 +fn_1_8F38 = .text:0x00008F38; // type:function size:0x77C +fn_1_96B4 = .text:0x000096B4; // type:function size:0x9C +fn_1_9750 = .text:0x00009750; // type:function size:0x344 +fn_1_9A94 = .text:0x00009A94; // type:function size:0x7C +fn_1_9B10 = .text:0x00009B10; // type:function size:0x8A0 +fn_1_A3B0 = .text:0x0000A3B0; // type:function size:0x9C +fn_1_A44C = .text:0x0000A44C; // type:function size:0x260 +fn_1_A6AC = .text:0x0000A6AC; // type:function size:0x40 +fn_1_A6EC = .text:0x0000A6EC; // type:function size:0x18 +fn_1_A704 = .text:0x0000A704; // type:function size:0x18 +fn_1_A71C = .text:0x0000A71C; // type:function size:0x54 +fn_1_A770 = .text:0x0000A770; // type:function size:0x40 +fn_1_A7B0 = .text:0x0000A7B0; // type:function size:0x40 +fn_1_A7F0 = .text:0x0000A7F0; // type:function size:0x38 +fn_1_A828 = .text:0x0000A828; // type:function size:0x38 +fn_1_A860 = .text:0x0000A860; // type:function size:0x20 +fn_1_A880 = .text:0x0000A880; // type:function size:0x24 +fn_1_A8A4 = .text:0x0000A8A4; // type:function size:0x108 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0xC data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x38 +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8C0 +lbl_1_rodata_AA0 = .rodata:0x00000AA0; // type:object size:0x30 +lbl_1_rodata_AD0 = .rodata:0x00000AD0; // type:object size:0x780 +lbl_1_rodata_1250 = .rodata:0x00001250; // type:object size:0x4 data:float +lbl_1_rodata_1254 = .rodata:0x00001254; // type:object size:0x4 data:float +lbl_1_rodata_1258 = .rodata:0x00001258; // type:object size:0x4 data:float +lbl_1_rodata_125C = .rodata:0x0000125C; // type:object size:0x4 data:float +lbl_1_rodata_1260 = .rodata:0x00001260; // type:object size:0x4 data:float +lbl_1_rodata_1264 = .rodata:0x00001264; // type:object size:0x4 data:float +lbl_1_rodata_1268 = .rodata:0x00001268; // type:object size:0x4 data:float +lbl_1_rodata_1270 = .rodata:0x00001270; // type:object size:0x8 data:double +lbl_1_rodata_1278 = .rodata:0x00001278; // type:object size:0x8 +lbl_1_rodata_1280 = .rodata:0x00001280; // type:object size:0x8 +lbl_1_rodata_1288 = .rodata:0x00001288; // type:object size:0x8 +lbl_1_rodata_1290 = .rodata:0x00001290; // type:object size:0x4 data:float +lbl_1_rodata_1294 = .rodata:0x00001294; // type:object size:0x4 data:float +lbl_1_rodata_1298 = .rodata:0x00001298; // type:object size:0x4 data:float +lbl_1_rodata_129C = .rodata:0x0000129C; // type:object size:0x4 data:float +lbl_1_rodata_12A0 = .rodata:0x000012A0; // type:object size:0x4 data:float +lbl_1_rodata_12A4 = .rodata:0x000012A4; // type:object size:0x4 data:float +lbl_1_rodata_12A8 = .rodata:0x000012A8; // type:object size:0x4 data:float +lbl_1_rodata_12AC = .rodata:0x000012AC; // type:object size:0x4 data:float +lbl_1_rodata_12B0 = .rodata:0x000012B0; // type:object size:0x4 data:float +lbl_1_rodata_12B4 = .rodata:0x000012B4; // type:object size:0x4 data:float +lbl_1_rodata_12B8 = .rodata:0x000012B8; // type:object size:0x4 data:float +lbl_1_rodata_12BC = .rodata:0x000012BC; // type:object size:0x4 data:float +lbl_1_rodata_12C0 = .rodata:0x000012C0; // type:object size:0x4 data:float +lbl_1_rodata_12C4 = .rodata:0x000012C4; // type:object size:0x4 data:float +lbl_1_rodata_12C8 = .rodata:0x000012C8; // type:object size:0x4 data:float +lbl_1_rodata_12CC = .rodata:0x000012CC; // type:object size:0x4 data:float +lbl_1_rodata_12D0 = .rodata:0x000012D0; // type:object size:0x24 +lbl_1_rodata_12F4 = .rodata:0x000012F4; // type:object size:0x4 data:float +lbl_1_rodata_12F8 = .rodata:0x000012F8; // type:object size:0x4 data:float +lbl_1_rodata_12FC = .rodata:0x000012FC; // type:object size:0x4 data:float +lbl_1_rodata_1300 = .rodata:0x00001300; // type:object size:0x4 data:float +lbl_1_rodata_1304 = .rodata:0x00001304; // type:object size:0x4 data:float +lbl_1_rodata_1308 = .rodata:0x00001308; // type:object size:0x1C +lbl_1_rodata_1324 = .rodata:0x00001324; // type:object size:0x4 data:float +lbl_1_rodata_1328 = .rodata:0x00001328; // type:object size:0x4 data:float +lbl_1_rodata_132C = .rodata:0x0000132C; // type:object size:0x4 data:float +lbl_1_rodata_1330 = .rodata:0x00001330; // type:object size:0x14 +lbl_1_rodata_1344 = .rodata:0x00001344; // type:object size:0x4 data:float +lbl_1_rodata_1348 = .rodata:0x00001348; // type:object size:0x4 data:float +lbl_1_rodata_134C = .rodata:0x0000134C; // type:object size:0x4 +lbl_1_rodata_1350 = .rodata:0x00001350; // type:object size:0x8 +lbl_1_rodata_1358 = .rodata:0x00001358; // type:object size:0x8 data:double +lbl_1_rodata_1360 = .rodata:0x00001360; // type:object size:0x8 data:double +lbl_1_rodata_1368 = .rodata:0x00001368; // type:object size:0x4 data:float +lbl_1_rodata_136C = .rodata:0x0000136C; // type:object size:0x4 data:float +lbl_1_rodata_1370 = .rodata:0x00001370; // type:object size:0x8 data:double +lbl_1_rodata_1378 = .rodata:0x00001378; // type:object size:0x8 data:double +lbl_1_rodata_1380 = .rodata:0x00001380; // type:object size:0x4 data:float +lbl_1_rodata_1384 = .rodata:0x00001384; // type:object size:0x4 data:float +lbl_1_rodata_1388 = .rodata:0x00001388; // type:object size:0x8 data:double +lbl_1_rodata_1390 = .rodata:0x00001390; // type:object size:0x4 data:float +lbl_1_rodata_1394 = .rodata:0x00001394; // type:object size:0x4 data:float +lbl_1_rodata_1398 = .rodata:0x00001398; // type:object size:0x4 data:float +lbl_1_rodata_139C = .rodata:0x0000139C; // type:object size:0x4 data:float +lbl_1_rodata_13A0 = .rodata:0x000013A0; // type:object size:0x8 data:double +lbl_1_rodata_13A8 = .rodata:0x000013A8; // type:object size:0x8 data:double +lbl_1_rodata_13B0 = .rodata:0x000013B0; // type:object size:0x4 data:float +lbl_1_rodata_13B4 = .rodata:0x000013B4; // type:object size:0x4 data:float +lbl_1_rodata_13B8 = .rodata:0x000013B8; // type:object size:0x8 data:float +lbl_1_rodata_13C0 = .rodata:0x000013C0; // type:object size:0x18 +lbl_1_rodata_13D8 = .rodata:0x000013D8; // type:object size:0x4 data:float +lbl_1_rodata_13DC = .rodata:0x000013DC; // type:object size:0x4 data:float +lbl_1_rodata_13E0 = .rodata:0x000013E0; // type:object size:0x4 data:float +lbl_1_rodata_13E4 = .rodata:0x000013E4; // type:object size:0x4 data:float +lbl_1_rodata_13E8 = .rodata:0x000013E8; // type:object size:0x4 data:float +lbl_1_rodata_13EC = .rodata:0x000013EC; // type:object size:0x4 data:float +lbl_1_rodata_13F0 = .rodata:0x000013F0; // type:object size:0x4 data:float +lbl_1_rodata_13F4 = .rodata:0x000013F4; // type:object size:0x4 data:float +lbl_1_rodata_13F8 = .rodata:0x000013F8; // type:object size:0x8 data:double +lbl_1_rodata_1400 = .rodata:0x00001400; // type:object size:0x8 data:double +lbl_1_rodata_1408 = .rodata:0x00001408; // type:object size:0x4 data:float +lbl_1_rodata_140C = .rodata:0x0000140C; // type:object size:0x4 data:float +lbl_1_rodata_1410 = .rodata:0x00001410; // type:object size:0x4 data:float +lbl_1_rodata_1414 = .rodata:0x00001414; // type:object size:0x4 data:float +lbl_1_rodata_1418 = .rodata:0x00001418; // type:object size:0x4 data:float +lbl_1_rodata_1420 = .rodata:0x00001420; // type:object size:0x8 data:double +lbl_1_rodata_1428 = .rodata:0x00001428; // type:object size:0x4 data:float +lbl_1_rodata_142C = .rodata:0x0000142C; // type:object size:0x4 data:float +lbl_1_rodata_1430 = .rodata:0x00001430; // type:object size:0x4 data:float +lbl_1_rodata_1434 = .rodata:0x00001434; // type:object size:0x4 data:float +lbl_1_rodata_1438 = .rodata:0x00001438; // type:object size:0x4 data:float +lbl_1_rodata_143C = .rodata:0x0000143C; // type:object size:0x264 +lbl_1_rodata_16A0 = .rodata:0x000016A0; // type:object size:0x4 data:float +lbl_1_rodata_16A4 = .rodata:0x000016A4; // type:object size:0x4 data:float +lbl_1_rodata_16A8 = .rodata:0x000016A8; // type:object size:0x4 data:float +lbl_1_rodata_16AC = .rodata:0x000016AC; // type:object size:0x4 data:float +lbl_1_rodata_16B0 = .rodata:0x000016B0; // type:object size:0x4 data:float +lbl_1_rodata_16B4 = .rodata:0x000016B4; // type:object size:0x4 data:float +lbl_1_rodata_16B8 = .rodata:0x000016B8; // type:object size:0x4 data:float +lbl_1_rodata_16BC = .rodata:0x000016BC; // type:object size:0x4 data:float +lbl_1_rodata_16C0 = .rodata:0x000016C0; // type:object size:0x4 data:float +lbl_1_rodata_16C4 = .rodata:0x000016C4; // type:object size:0x4 data:float +lbl_1_rodata_16C8 = .rodata:0x000016C8; // type:object size:0x4 data:float +lbl_1_rodata_16CC = .rodata:0x000016CC; // type:object size:0x4 data:float +lbl_1_rodata_16D0 = .rodata:0x000016D0; // type:object size:0x4 data:float +lbl_1_rodata_16D4 = .rodata:0x000016D4; // type:object size:0x4 data:float +lbl_1_rodata_16D8 = .rodata:0x000016D8; // type:object size:0x4 data:float +lbl_1_rodata_16DC = .rodata:0x000016DC; // type:object size:0x4 data:float +lbl_1_rodata_16E0 = .rodata:0x000016E0; // type:object size:0x4 data:float +lbl_1_rodata_16E4 = .rodata:0x000016E4; // type:object size:0x4 data:float +lbl_1_rodata_16E8 = .rodata:0x000016E8; // type:object size:0x4 data:float +lbl_1_rodata_16EC = .rodata:0x000016EC; // type:object size:0x4 data:float +lbl_1_rodata_16F0 = .rodata:0x000016F0; // type:object size:0x4 data:float +lbl_1_rodata_16F4 = .rodata:0x000016F4; // type:object size:0xD4 +lbl_1_rodata_17C8 = .rodata:0x000017C8; // type:object size:0x4 data:float +lbl_1_rodata_17CC = .rodata:0x000017CC; // type:object size:0x4 data:float +lbl_1_rodata_17D0 = .rodata:0x000017D0; // type:object size:0x4 data:float +lbl_1_rodata_17D4 = .rodata:0x000017D4; // type:object size:0x4 data:float +lbl_1_rodata_17D8 = .rodata:0x000017D8; // type:object size:0x4 data:float +lbl_1_rodata_17DC = .rodata:0x000017DC; // type:object size:0x4 data:float +lbl_1_rodata_17E0 = .rodata:0x000017E0; // type:object size:0x4 data:float +lbl_1_rodata_17E4 = .rodata:0x000017E4; // type:object size:0x84 +lbl_1_rodata_1868 = .rodata:0x00001868; // type:object size:0x48 +lbl_1_rodata_18B0 = .rodata:0x000018B0; // type:object size:0x4 data:float +lbl_1_rodata_18B4 = .rodata:0x000018B4; // type:object size:0x4 data:float +lbl_1_rodata_18B8 = .rodata:0x000018B8; // type:object size:0x4 data:float +lbl_1_rodata_18BC = .rodata:0x000018BC; // type:object size:0x4 data:float +lbl_1_rodata_18C0 = .rodata:0x000018C0; // type:object size:0x4 data:float +lbl_1_rodata_18C4 = .rodata:0x000018C4; // type:object size:0x104 +lbl_1_rodata_19C8 = .rodata:0x000019C8; // type:object size:0x4 data:float +lbl_1_rodata_19CC = .rodata:0x000019CC; // type:object size:0x4 data:float +lbl_1_rodata_19D0 = .rodata:0x000019D0; // type:object size:0x4 data:float +lbl_1_rodata_19D4 = .rodata:0x000019D4; // type:object size:0x4 data:float +lbl_1_rodata_19D8 = .rodata:0x000019D8; // type:object size:0x4 data:float +lbl_1_rodata_19DC = .rodata:0x000019DC; // type:object size:0x4 data:float +lbl_1_rodata_19E0 = .rodata:0x000019E0; // type:object size:0x4 data:float +lbl_1_rodata_19E4 = .rodata:0x000019E4; // type:object size:0x4 data:float +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x1B data:string +lbl_1_data_37 = .data:0x00000037; // type:object size:0x1B data:string +lbl_1_data_52 = .data:0x00000052; // type:object size:0x16 data:string +lbl_1_data_68 = .data:0x00000068; // type:object size:0x8 data:4byte +jumptable_1_data_70 = .data:0x00000070; // type:object size:0x24 scope:local +lbl_1_data_98 = .data:0x00000098; // type:object size:0x8 data:4byte +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x1C +lbl_1_data_BC = .data:0x000000BC; // type:object size:0x24 +jumptable_1_data_E0 = .data:0x000000E0; // type:object size:0x24 scope:local +lbl_1_data_108 = .data:0x00000108; // type:object size:0x8 data:4byte +lbl_1_data_110 = .data:0x00000110; // type:object size:0x8 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x38 data:4byte +lbl_1_data_150 = .data:0x00000150; // type:object size:0x18 data:4byte +lbl_1_data_168 = .data:0x00000168; // type:object size:0xC +jumptable_1_data_174 = .data:0x00000174; // type:object size:0x24 scope:local +jumptable_1_data_198 = .data:0x00000198; // type:object size:0x24 scope:local +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x4C +lbl_1_data_208 = .data:0x00000208; // type:object size:0x8 +lbl_1_data_210 = .data:0x00000210; // type:object size:0x8 data:4byte +jumptable_1_data_218 = .data:0x00000218; // type:object size:0x1C scope:local +jumptable_1_data_234 = .data:0x00000234; // type:object size:0x20 scope:local +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/present/splits.txt b/config/GMPJ01_00/rels/present/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/present/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/present/symbols.txt b/config/GMPJ01_00/rels/present/symbols.txt new file mode 100644 index 00000000..e6b4d8f0 --- /dev/null +++ b/config/GMPJ01_00/rels/present/symbols.txt @@ -0,0 +1,189 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0xA4 +fn_1_144 = .text:0x00000144; // type:function size:0x110 +fn_1_254 = .text:0x00000254; // type:function size:0xE0 +fn_1_334 = .text:0x00000334; // type:function size:0x128 +fn_1_45C = .text:0x0000045C; // type:function size:0xF4 +fn_1_550 = .text:0x00000550; // type:function size:0x34 +fn_1_584 = .text:0x00000584; // type:function size:0x34 +fn_1_5B8 = .text:0x000005B8; // type:function size:0x34 +fn_1_5EC = .text:0x000005EC; // type:function size:0xC8 +fn_1_6B4 = .text:0x000006B4; // type:function size:0x23C +fn_1_8F0 = .text:0x000008F0; // type:function size:0x30 +fn_1_920 = .text:0x00000920; // type:function size:0x84 +fn_1_9A4 = .text:0x000009A4; // type:function size:0x84 +fn_1_A28 = .text:0x00000A28; // type:function size:0x84 +fn_1_AAC = .text:0x00000AAC; // type:function size:0x30 +fn_1_ADC = .text:0x00000ADC; // type:function size:0x30 +fn_1_B0C = .text:0x00000B0C; // type:function size:0x30 +fn_1_B3C = .text:0x00000B3C; // type:function size:0x30 +fn_1_B6C = .text:0x00000B6C; // type:function size:0x8C +fn_1_BF8 = .text:0x00000BF8; // type:function size:0x28 +fn_1_C20 = .text:0x00000C20; // type:function size:0x578 +fn_1_1198 = .text:0x00001198; // type:function size:0x200 +fn_1_1398 = .text:0x00001398; // type:function size:0xC0 +fn_1_1458 = .text:0x00001458; // type:function size:0x32C +fn_1_1784 = .text:0x00001784; // type:function size:0x88 +fn_1_180C = .text:0x0000180C; // type:function size:0x44 +fn_1_1850 = .text:0x00001850; // type:function size:0x1C +fn_1_186C = .text:0x0000186C; // type:function size:0xBC +fn_1_1928 = .text:0x00001928; // type:function size:0x680 +fn_1_1FA8 = .text:0x00001FA8; // type:function size:0x140 +fn_1_20E8 = .text:0x000020E8; // type:function size:0x5A4 +fn_1_268C = .text:0x0000268C; // type:function size:0x7C +fn_1_2708 = .text:0x00002708; // type:function size:0x6C +fn_1_2774 = .text:0x00002774; // type:function size:0x17C +fn_1_28F0 = .text:0x000028F0; // type:function size:0x34 +fn_1_2924 = .text:0x00002924; // type:function size:0x260 +fn_1_2B84 = .text:0x00002B84; // type:function size:0x48 +fn_1_2BCC = .text:0x00002BCC; // type:function size:0x90 +fn_1_2C5C = .text:0x00002C5C; // type:function size:0x738 +fn_1_3394 = .text:0x00003394; // type:function size:0x18 +fn_1_33AC = .text:0x000033AC; // type:function size:0x590 +fn_1_393C = .text:0x0000393C; // type:function size:0x6C +fn_1_39A8 = .text:0x000039A8; // type:function size:0x170 +fn_1_3B18 = .text:0x00003B18; // type:function size:0x74 +fn_1_3B8C = .text:0x00003B8C; // type:function size:0x22C +fn_1_3DB8 = .text:0x00003DB8; // type:function size:0xEC +fn_1_3EA4 = .text:0x00003EA4; // type:function size:0x19C +fn_1_4040 = .text:0x00004040; // type:function size:0x40 +fn_1_4080 = .text:0x00004080; // type:function size:0x18 +fn_1_4098 = .text:0x00004098; // type:function size:0x18 +fn_1_40B0 = .text:0x000040B0; // type:function size:0x54 +fn_1_4104 = .text:0x00004104; // type:function size:0x40 +fn_1_4144 = .text:0x00004144; // type:function size:0x40 +fn_1_4184 = .text:0x00004184; // type:function size:0xC +fn_1_4190 = .text:0x00004190; // type:function size:0xC +fn_1_419C = .text:0x0000419C; // type:function size:0x20 +fn_1_41BC = .text:0x000041BC; // type:function size:0x24 +fn_1_41E0 = .text:0x000041E0; // type:function size:0x114 +fn_1_42F4 = .text:0x000042F4; // type:function size:0x240 +fn_1_4534 = .text:0x00004534; // type:function size:0x8C +fn_1_45C0 = .text:0x000045C0; // type:function size:0x44 +fn_1_4604 = .text:0x00004604; // type:function size:0x1C +fn_1_4620 = .text:0x00004620; // type:function size:0x260 +fn_1_4880 = .text:0x00004880; // type:function size:0x184 +fn_1_4A04 = .text:0x00004A04; // type:function size:0x2E8 +fn_1_4CEC = .text:0x00004CEC; // type:function size:0x104 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x218 +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x708 +lbl_1_rodata_9C0 = .rodata:0x000009C0; // type:object size:0x4 data:float +lbl_1_rodata_9C4 = .rodata:0x000009C4; // type:object size:0x4 data:float +lbl_1_rodata_9C8 = .rodata:0x000009C8; // type:object size:0x4 data:float +lbl_1_rodata_9D0 = .rodata:0x000009D0; // type:object size:0x8 data:double +lbl_1_rodata_9D8 = .rodata:0x000009D8; // type:object size:0x20 +lbl_1_rodata_9F8 = .rodata:0x000009F8; // type:object size:0x28 +lbl_1_rodata_A20 = .rodata:0x00000A20; // type:object size:0x4 data:float +lbl_1_rodata_A24 = .rodata:0x00000A24; // type:object size:0x4 data:float +lbl_1_rodata_A28 = .rodata:0x00000A28; // type:object size:0x4 data:float +lbl_1_rodata_A2C = .rodata:0x00000A2C; // type:object size:0x4 data:float +lbl_1_rodata_A30 = .rodata:0x00000A30; // type:object size:0x4 data:float +lbl_1_rodata_A34 = .rodata:0x00000A34; // type:object size:0x4 data:float +lbl_1_rodata_A38 = .rodata:0x00000A38; // type:object size:0x4 data:float +lbl_1_rodata_A3C = .rodata:0x00000A3C; // type:object size:0x4 data:float +lbl_1_rodata_A40 = .rodata:0x00000A40; // type:object size:0x4 data:float +lbl_1_rodata_A44 = .rodata:0x00000A44; // type:object size:0x4 data:float +lbl_1_rodata_A48 = .rodata:0x00000A48; // type:object size:0x4 data:float +lbl_1_rodata_A50 = .rodata:0x00000A50; // type:object size:0x8 data:double +lbl_1_rodata_A58 = .rodata:0x00000A58; // type:object size:0x4 data:float +lbl_1_rodata_A60 = .rodata:0x00000A60; // type:object size:0x8 data:double +lbl_1_rodata_A68 = .rodata:0x00000A68; // type:object size:0x8 data:double +lbl_1_rodata_A70 = .rodata:0x00000A70; // type:object size:0x4 data:float +lbl_1_rodata_A74 = .rodata:0x00000A74; // type:object size:0x28 +lbl_1_rodata_A9C = .rodata:0x00000A9C; // type:object size:0x4 data:float +lbl_1_rodata_AA0 = .rodata:0x00000AA0; // type:object size:0x4 data:float +lbl_1_rodata_AA4 = .rodata:0x00000AA4; // type:object size:0x4 data:float +lbl_1_rodata_AA8 = .rodata:0x00000AA8; // type:object size:0x4 data:float +lbl_1_rodata_AAC = .rodata:0x00000AAC; // type:object size:0x4 data:float +lbl_1_rodata_AB0 = .rodata:0x00000AB0; // type:object size:0x4 data:float +lbl_1_rodata_AB8 = .rodata:0x00000AB8; // type:object size:0x8 data:double +lbl_1_rodata_AC0 = .rodata:0x00000AC0; // type:object size:0x8 data:double +lbl_1_rodata_AC8 = .rodata:0x00000AC8; // type:object size:0x28 +lbl_1_rodata_AF0 = .rodata:0x00000AF0; // type:object size:0x28 +lbl_1_rodata_B18 = .rodata:0x00000B18; // type:object size:0x28 +lbl_1_rodata_B40 = .rodata:0x00000B40; // type:object size:0x28 +lbl_1_rodata_B68 = .rodata:0x00000B68; // type:object size:0x28 +lbl_1_rodata_B90 = .rodata:0x00000B90; // type:object size:0x4 data:float +lbl_1_rodata_B94 = .rodata:0x00000B94; // type:object size:0x4 data:float +lbl_1_rodata_B98 = .rodata:0x00000B98; // type:object size:0x4 data:float +lbl_1_rodata_B9C = .rodata:0x00000B9C; // type:object size:0x4 data:float +lbl_1_rodata_BA0 = .rodata:0x00000BA0; // type:object size:0x4 data:float +lbl_1_rodata_BA4 = .rodata:0x00000BA4; // type:object size:0xC +lbl_1_rodata_BB0 = .rodata:0x00000BB0; // type:object size:0x4 data:float +lbl_1_rodata_BB4 = .rodata:0x00000BB4; // type:object size:0x4 data:float +lbl_1_rodata_BB8 = .rodata:0x00000BB8; // type:object size:0x4 data:float +lbl_1_rodata_BBC = .rodata:0x00000BBC; // type:object size:0x4 data:float +lbl_1_rodata_BC0 = .rodata:0x00000BC0; // type:object size:0x4 data:float +lbl_1_rodata_BC4 = .rodata:0x00000BC4; // type:object size:0x4 data:float +lbl_1_rodata_BC8 = .rodata:0x00000BC8; // type:object size:0x4 data:float +lbl_1_rodata_BCC = .rodata:0x00000BCC; // type:object size:0x4 data:float +lbl_1_rodata_BD0 = .rodata:0x00000BD0; // type:object size:0x8 data:float +lbl_1_rodata_BD8 = .rodata:0x00000BD8; // type:object size:0xC +lbl_1_rodata_BE4 = .rodata:0x00000BE4; // type:object size:0x4 data:float +lbl_1_rodata_BE8 = .rodata:0x00000BE8; // type:object size:0x4 data:float +lbl_1_rodata_BEC = .rodata:0x00000BEC; // type:object size:0x4 data:float +lbl_1_rodata_BF0 = .rodata:0x00000BF0; // type:object size:0x4 data:float +lbl_1_rodata_BF4 = .rodata:0x00000BF4; // type:object size:0x4 data:float +lbl_1_rodata_BF8 = .rodata:0x00000BF8; // type:object size:0x8 data:double +lbl_1_rodata_C00 = .rodata:0x00000C00; // type:object size:0x4 data:float +lbl_1_rodata_C08 = .rodata:0x00000C08; // type:object size:0x8 data:double +lbl_1_rodata_C10 = .rodata:0x00000C10; // type:object size:0x4 data:float +lbl_1_rodata_C14 = .rodata:0x00000C14; // type:object size:0x4 data:float +lbl_1_rodata_C18 = .rodata:0x00000C18; // type:object size:0x4 data:float +lbl_1_rodata_C1C = .rodata:0x00000C1C; // type:object size:0x4 data:float +lbl_1_rodata_C20 = .rodata:0x00000C20; // type:object size:0x8 data:double +lbl_1_rodata_C28 = .rodata:0x00000C28; // type:object size:0x8 data:double +lbl_1_rodata_C30 = .rodata:0x00000C30; // type:object size:0x4 data:float +lbl_1_rodata_C34 = .rodata:0x00000C34; // type:object size:0x4 data:float +lbl_1_rodata_C38 = .rodata:0x00000C38; // type:object size:0x4 data:float +lbl_1_rodata_C40 = .rodata:0x00000C40; // type:object size:0x8 data:double +lbl_1_rodata_C48 = .rodata:0x00000C48; // type:object size:0x4 data:float +lbl_1_rodata_C4C = .rodata:0x00000C4C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B data:string +lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1B data:string +lbl_1_data_36 = .data:0x00000036; // type:object size:0x1A +lbl_1_data_50 = .data:0x00000050; // type:object size:0x1C +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x10 data:4byte +lbl_1_data_7C = .data:0x0000007C; // type:object size:0x8 +lbl_1_data_84 = .data:0x00000084; // type:object size:0x20 +jumptable_1_data_A4 = .data:0x000000A4; // type:object size:0x2C scope:local +jumptable_1_data_D0 = .data:0x000000D0; // type:object size:0x1C scope:local +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x24 +lbl_1_data_114 = .data:0x00000114; // type:object size:0x2A data:string +lbl_1_data_13E = .data:0x0000013E; // type:object size:0x2E +jumptable_1_data_16C = .data:0x0000016C; // type:object size:0x34 scope:local +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0xC data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/resultDll/splits.txt b/config/GMPJ01_00/rels/resultDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/resultDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/resultDll/symbols.txt b/config/GMPJ01_00/rels/resultDll/symbols.txt new file mode 100644 index 00000000..07d67720 --- /dev/null +++ b/config/GMPJ01_00/rels/resultDll/symbols.txt @@ -0,0 +1,203 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x438 +fn_1_4D8 = .text:0x000004D8; // type:function size:0x3B0 +fn_1_888 = .text:0x00000888; // type:function size:0x2F0 +fn_1_B78 = .text:0x00000B78; // type:function size:0x13D4 +fn_1_1F4C = .text:0x00001F4C; // type:function size:0xB90 +fn_1_2ADC = .text:0x00002ADC; // type:function size:0x1074 +fn_1_3B50 = .text:0x00003B50; // type:function size:0x15C +fn_1_3CAC = .text:0x00003CAC; // type:function size:0x15C +fn_1_3E08 = .text:0x00003E08; // type:function size:0x1D0 +fn_1_3FD8 = .text:0x00003FD8; // type:function size:0x104 +fn_1_40DC = .text:0x000040DC; // type:function size:0x160 +fn_1_423C = .text:0x0000423C; // type:function size:0x3E0 +fn_1_461C = .text:0x0000461C; // type:function size:0x1E0 +fn_1_47FC = .text:0x000047FC; // type:function size:0x1084 +fn_1_5880 = .text:0x00005880; // type:function size:0xC10 +fn_1_6490 = .text:0x00006490; // type:function size:0x2D0 +fn_1_6760 = .text:0x00006760; // type:function size:0xC4 +fn_1_6824 = .text:0x00006824; // type:function size:0xD20 +fn_1_7544 = .text:0x00007544; // type:function size:0xA54 +fn_1_7F98 = .text:0x00007F98; // type:function size:0x3A0 +fn_1_8338 = .text:0x00008338; // type:function size:0x14C +fn_1_8484 = .text:0x00008484; // type:function size:0x1D4 +fn_1_8658 = .text:0x00008658; // type:function size:0x84 +fn_1_86DC = .text:0x000086DC; // type:function size:0x2BC +fn_1_8998 = .text:0x00008998; // type:function size:0x320 +fn_1_8CB8 = .text:0x00008CB8; // type:function size:0x340 +fn_1_8FF8 = .text:0x00008FF8; // type:function size:0x284 +fn_1_927C = .text:0x0000927C; // type:function size:0x138 +fn_1_93B4 = .text:0x000093B4; // type:function size:0x78 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x10 data:4byte +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2A4 +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0xDC data:4byte +lbl_1_data_380 = .data:0x00000380; // type:object size:0x2 data:2byte +lbl_1_data_382 = .data:0x00000382; // type:object size:0x26 data:string +lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x18 +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x18 +lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x20 +lbl_1_data_3F8 = .data:0x000003F8; // type:object size:0x10 +lbl_1_data_408 = .data:0x00000408; // type:object size:0x30 +lbl_1_data_438 = .data:0x00000438; // type:object size:0x10 +lbl_1_data_448 = .data:0x00000448; // type:object size:0x8 +lbl_1_data_450 = .data:0x00000450; // type:object size:0x38 +lbl_1_data_488 = .data:0x00000488; // type:object size:0x30 +lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0x11 data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0x11 data:string +lbl_1_data_4DA = .data:0x000004DA; // type:object size:0xE +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x270 +lbl_1_data_758 = .data:0x00000758; // type:object size:0x28 +lbl_1_data_780 = .data:0x00000780; // type:object size:0x70 +lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x40 +lbl_1_data_830 = .data:0x00000830; // type:object size:0x10 +lbl_1_data_840 = .data:0x00000840; // type:object size:0x20 +lbl_1_data_860 = .data:0x00000860; // type:object size:0x20 +lbl_1_data_880 = .data:0x00000880; // type:object size:0x20 +lbl_1_data_8A0 = .data:0x000008A0; // type:object size:0x6 data:2byte +lbl_1_data_8A6 = .data:0x000008A6; // type:object size:0x8 data:string +lbl_1_data_8AE = .data:0x000008AE; // type:object size:0xA +lbl_1_data_8B8 = .data:0x000008B8; // type:object size:0x60 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte +lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x8 +lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x28 +lbl_1_bss_3A = .bss:0x0000003A; // type:object size:0x8 +lbl_1_bss_42 = .bss:0x00000042; // type:object size:0x8 +lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x8 +lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x2 data:2byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x40 +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x2 data:2byte +lbl_1_bss_9E = .bss:0x0000009E; // type:object size:0x30 +lbl_1_bss_CE = .bss:0x000000CE; // type:object size:0x12 +lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x60 +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x14 +lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x10 +lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x8 +lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x2 data:2byte +lbl_1_bss_172 = .bss:0x00000172; // type:object size:0x2 data:2byte +lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x4 data:4byte +lbl_1_bss_178 = .bss:0x00000178; // type:object size:0x4 data:4byte +lbl_1_bss_17C = .bss:0x0000017C; // type:object size:0x2 data:2byte +lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x4 data:4byte +lbl_1_bss_184 = .bss:0x00000184; // type:object size:0xC data:4byte +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:4byte +lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x1680 +lbl_1_bss_1814 = .bss:0x00001814; // type:object size:0x14 +lbl_1_bss_1828 = .bss:0x00001828; // type:object size:0x168 data:2byte +lbl_1_bss_1990 = .bss:0x00001990; // type:object size:0x20 +lbl_1_bss_19B0 = .bss:0x000019B0; // type:object size:0x8 +lbl_1_bss_19B8 = .bss:0x000019B8; // type:object size:0x28 +lbl_1_bss_19E0 = .bss:0x000019E0; // type:object size:0x8 +lbl_1_bss_19E8 = .bss:0x000019E8; // type:object size:0x8 +lbl_1_bss_19F0 = .bss:0x000019F0; // type:object size:0x2A +lbl_1_bss_1A1A = .bss:0x00001A1A; // type:object size:0x42 data:2byte +lbl_1_bss_1A5C = .bss:0x00001A5C; // type:object size:0x40 data:2byte +lbl_1_bss_1A9C = .bss:0x00001A9C; // type:object size:0x40 data:2byte diff --git a/config/GMPJ01_00/rels/safDll/splits.txt b/config/GMPJ01_00/rels/safDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/safDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/safDll/symbols.txt b/config/GMPJ01_00/rels/safDll/symbols.txt new file mode 100644 index 00000000..0639762d --- /dev/null +++ b/config/GMPJ01_00/rels/safDll/symbols.txt @@ -0,0 +1,131 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x25C +fn_1_2FC = .text:0x000002FC; // type:function size:0x90 +fn_1_38C = .text:0x0000038C; // type:function size:0x1A0 +fn_1_52C = .text:0x0000052C; // type:function size:0xB8C +fn_1_10B8 = .text:0x000010B8; // type:function size:0xC4 +fn_1_117C = .text:0x0000117C; // type:function size:0x10D4 +fn_1_2250 = .text:0x00002250; // type:function size:0x104 +fn_1_2354 = .text:0x00002354; // type:function size:0x184 +fn_1_24D8 = .text:0x000024D8; // type:function size:0xB8 +fn_1_2590 = .text:0x00002590; // type:function size:0x148 +fn_1_26D8 = .text:0x000026D8; // type:function size:0x57C +fn_1_2C54 = .text:0x00002C54; // type:function size:0x4F0 +fn_1_3144 = .text:0x00003144; // type:function size:0x5A0 +fn_1_36E4 = .text:0x000036E4; // type:function size:0x498 +fn_1_3B7C = .text:0x00003B7C; // type:function size:0x284 +fn_1_3E00 = .text:0x00003E00; // type:function size:0x124 +fn_1_3F24 = .text:0x00003F24; // type:function size:0x21C +fn_1_4140 = .text:0x00004140; // type:function size:0x14 +fn_1_4154 = .text:0x00004154; // type:function size:0x10 +fn_1_4164 = .text:0x00004164; // type:function size:0x14 +fn_1_4178 = .text:0x00004178; // type:function size:0x10 +fn_1_4188 = .text:0x00004188; // type:function size:0x41C +fn_1_45A4 = .text:0x000045A4; // type:function size:0x2C8 +fn_1_486C = .text:0x0000486C; // type:function size:0x8E0 +fn_1_514C = .text:0x0000514C; // type:function size:0x404 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC data:4byte +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x1 data:byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x4 data:4byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0x24 +lbl_1_data_28 = .data:0x00000028; // type:object size:0x48 +lbl_1_data_70 = .data:0x00000070; // type:object size:0x11 data:string +lbl_1_data_81 = .data:0x00000081; // type:object size:0x4 data:string +lbl_1_data_85 = .data:0x00000085; // type:object size:0x4 data:string +lbl_1_data_89 = .data:0x00000089; // type:object size:0xE data:string +lbl_1_data_97 = .data:0x00000097; // type:object size:0xB data:string +lbl_1_data_A2 = .data:0x000000A2; // type:object size:0xE data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x13 data:string +lbl_1_data_D3 = .data:0x000000D3; // type:object size:0xD +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x38 data:2byte +lbl_1_data_118 = .data:0x00000118; // type:object size:0x22 data:string +lbl_1_data_13A = .data:0x0000013A; // type:object size:0x17 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0xA +lbl_1_bss_1A = .bss:0x0000001A; // type:object size:0x8 data:2byte +lbl_1_bss_22 = .bss:0x00000022; // type:object size:0x2C2 data:2byte +lbl_1_bss_2E4 = .bss:0x000002E4; // type:object size:0x4 data:4byte +lbl_1_bss_2E8 = .bss:0x000002E8; // type:object size:0x4 data:4byte +lbl_1_bss_2EC = .bss:0x000002EC; // type:object size:0x20 data:4byte +lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0x4 data:4byte +lbl_1_bss_310 = .bss:0x00000310; // type:object size:0x8 data:4byte +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0x2 data:2byte +lbl_1_bss_31C = .bss:0x0000031C; // type:object size:0x4 data:4byte +lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x4 data:4byte +lbl_1_bss_324 = .bss:0x00000324; // type:object size:0x4 data:4byte +lbl_1_bss_328 = .bss:0x00000328; // type:object size:0x58 data:2byte +lbl_1_bss_380 = .bss:0x00000380; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/selmenuDll/splits.txt b/config/GMPJ01_00/rels/selmenuDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/selmenuDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/selmenuDll/symbols.txt b/config/GMPJ01_00/rels/selmenuDll/symbols.txt new file mode 100644 index 00000000..b5746a65 --- /dev/null +++ b/config/GMPJ01_00/rels/selmenuDll/symbols.txt @@ -0,0 +1,201 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x4B8 +fn_1_558 = .text:0x00000558; // type:function size:0x60 +fn_1_5B8 = .text:0x000005B8; // type:function size:0x324 +fn_1_8DC = .text:0x000008DC; // type:function size:0x170 +fn_1_A4C = .text:0x00000A4C; // type:function size:0x180 +fn_1_BCC = .text:0x00000BCC; // type:function size:0x88 +fn_1_C54 = .text:0x00000C54; // type:function size:0x474 +fn_1_10C8 = .text:0x000010C8; // type:function size:0xA78 +fn_1_1B40 = .text:0x00001B40; // type:function size:0x334 +fn_1_1E74 = .text:0x00001E74; // type:function size:0x110 +fn_1_1F84 = .text:0x00001F84; // type:function size:0x50 +fn_1_1FD4 = .text:0x00001FD4; // type:function size:0x10C +fn_1_20E0 = .text:0x000020E0; // type:function size:0x1F8 +fn_1_22D8 = .text:0x000022D8; // type:function size:0xD6C +fn_1_3044 = .text:0x00003044; // type:function size:0x2FC +fn_1_3340 = .text:0x00003340; // type:function size:0x804 +fn_1_3B44 = .text:0x00003B44; // type:function size:0x40 +fn_1_3B84 = .text:0x00003B84; // type:function size:0x968 +fn_1_44EC = .text:0x000044EC; // type:function size:0x20 +fn_1_450C = .text:0x0000450C; // type:function size:0x4 +fn_1_4510 = .text:0x00004510; // type:function size:0x64 +fn_1_4574 = .text:0x00004574; // type:function size:0x854 +fn_1_4DC8 = .text:0x00004DC8; // type:function size:0x3D0 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x8 data:4byte +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x10 data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x8 data:4byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x6 data:string +lbl_1_data_6 = .data:0x00000006; // type:object size:0x6 data:string +lbl_1_data_C = .data:0x0000000C; // type:object size:0x6 data:string +lbl_1_data_12 = .data:0x00000012; // type:object size:0x6 data:string +lbl_1_data_18 = .data:0x00000018; // type:object size:0x6 data:string +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x7 data:string +lbl_1_data_25 = .data:0x00000025; // type:object size:0x6 data:string +lbl_1_data_2B = .data:0x0000002B; // type:object size:0x9 +lbl_1_data_34 = .data:0x00000034; // type:object size:0x20 +lbl_1_data_54 = .data:0x00000054; // type:object size:0x14 data:string +lbl_1_data_68 = .data:0x00000068; // type:object size:0x16 data:string +lbl_1_data_7E = .data:0x0000007E; // type:object size:0x11 data:string +lbl_1_data_8F = .data:0x0000008F; // type:object size:0x12 data:string +lbl_1_data_A1 = .data:0x000000A1; // type:object size:0x10 data:string +lbl_1_data_B1 = .data:0x000000B1; // type:object size:0xD data:string +lbl_1_data_BE = .data:0x000000BE; // type:object size:0x11 data:string +lbl_1_data_CF = .data:0x000000CF; // type:object size:0xD data:string +lbl_1_data_DC = .data:0x000000DC; // type:object size:0xE data:string +lbl_1_data_EA = .data:0x000000EA; // type:object size:0x16 data:string +lbl_1_data_100 = .data:0x00000100; // type:object size:0x13 data:string +lbl_1_data_113 = .data:0x00000113; // type:object size:0xF data:string +lbl_1_data_122 = .data:0x00000122; // type:object size:0x14 data:string +lbl_1_data_136 = .data:0x00000136; // type:object size:0x11 data:string +lbl_1_data_147 = .data:0x00000147; // type:object size:0x13 data:string +lbl_1_data_15A = .data:0x0000015A; // type:object size:0x10 data:string +lbl_1_data_16A = .data:0x0000016A; // type:object size:0x11 data:string +lbl_1_data_17B = .data:0x0000017B; // type:object size:0x15 data:string +lbl_1_data_190 = .data:0x00000190; // type:object size:0x17 data:string +lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x11 data:string +lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x10 data:string +lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x10 data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x12 data:string +lbl_1_data_1EA = .data:0x000001EA; // type:object size:0x10 data:string +lbl_1_data_1FA = .data:0x000001FA; // type:object size:0xF data:string +lbl_1_data_209 = .data:0x00000209; // type:object size:0x15 data:string +lbl_1_data_21E = .data:0x0000021E; // type:object size:0xE data:string +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x13 data:string +lbl_1_data_23F = .data:0x0000023F; // type:object size:0x14 data:string +lbl_1_data_253 = .data:0x00000253; // type:object size:0x13 data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x11 data:string +lbl_1_data_277 = .data:0x00000277; // type:object size:0x11 data:string +lbl_1_data_288 = .data:0x00000288; // type:object size:0x11 data:string +lbl_1_data_299 = .data:0x00000299; // type:object size:0x10 data:string +lbl_1_data_2A9 = .data:0x000002A9; // type:object size:0x10 data:string +lbl_1_data_2B9 = .data:0x000002B9; // type:object size:0x1B data:string +lbl_1_data_2D4 = .data:0x000002D4; // type:object size:0x11 data:string +lbl_1_data_2E5 = .data:0x000002E5; // type:object size:0x1D data:string +lbl_1_data_302 = .data:0x00000302; // type:object size:0x17 data:string +lbl_1_data_319 = .data:0x00000319; // type:object size:0x16 data:string +lbl_1_data_32F = .data:0x0000032F; // type:object size:0x15 data:string +lbl_1_data_344 = .data:0x00000344; // type:object size:0x13 data:string +lbl_1_data_357 = .data:0x00000357; // type:object size:0xE data:string +lbl_1_data_365 = .data:0x00000365; // type:object size:0x14 data:string +lbl_1_data_379 = .data:0x00000379; // type:object size:0x13 data:string +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x12 data:string +lbl_1_data_39E = .data:0x0000039E; // type:object size:0xD data:string +lbl_1_data_3AB = .data:0x000003AB; // type:object size:0xD data:string +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x17 data:string +lbl_1_data_3CF = .data:0x000003CF; // type:object size:0xE data:string +lbl_1_data_3DD = .data:0x000003DD; // type:object size:0xB data:string +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x11 data:string +lbl_1_data_3F9 = .data:0x000003F9; // type:object size:0x11 data:string +lbl_1_data_40A = .data:0x0000040A; // type:object size:0xA data:string +lbl_1_data_414 = .data:0x00000414; // type:object size:0x13 data:string +lbl_1_data_427 = .data:0x00000427; // type:object size:0xD data:string +lbl_1_data_434 = .data:0x00000434; // type:object size:0x5 data:string +lbl_1_data_439 = .data:0x00000439; // type:object size:0x15 data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x5 data:string +lbl_1_data_453 = .data:0x00000453; // type:object size:0xA data:string +lbl_1_data_45D = .data:0x0000045D; // type:object size:0xE data:string +lbl_1_data_46B = .data:0x0000046B; // type:object size:0xE data:string +lbl_1_data_479 = .data:0x00000479; // type:object size:0xE data:string +lbl_1_data_487 = .data:0x00000487; // type:object size:0xE data:string +lbl_1_data_495 = .data:0x00000495; // type:object size:0xE data:string +lbl_1_data_4A3 = .data:0x000004A3; // type:object size:0xE data:string +lbl_1_data_4B1 = .data:0x000004B1; // type:object size:0xE data:string +lbl_1_data_4BF = .data:0x000004BF; // type:object size:0xE data:string +lbl_1_data_4CD = .data:0x000004CD; // type:object size:0xA data:string +lbl_1_data_4D7 = .data:0x000004D7; // type:object size:0x11 +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x348 +lbl_1_data_830 = .data:0x00000830; // type:object size:0x28 +lbl_1_data_858 = .data:0x00000858; // type:object size:0x12 data:string +lbl_1_data_86A = .data:0x0000086A; // type:object size:0x12 data:string +lbl_1_data_87C = .data:0x0000087C; // type:object size:0x12 data:string +lbl_1_data_88E = .data:0x0000088E; // type:object size:0x12 data:string +lbl_1_data_8A0 = .data:0x000008A0; // type:object size:0x12 data:string +lbl_1_data_8B2 = .data:0x000008B2; // type:object size:0x12 data:string +lbl_1_data_8C4 = .data:0x000008C4; // type:object size:0x11 data:string +lbl_1_data_8D5 = .data:0x000008D5; // type:object size:0x23 +lbl_1_data_8F8 = .data:0x000008F8; // type:object size:0x2 data:2byte +lbl_1_data_8FA = .data:0x000008FA; // type:object size:0x8 +lbl_1_data_902 = .data:0x00000902; // type:object size:0x12 +lbl_1_data_914 = .data:0x00000914; // type:object size:0x4 data:4byte +lbl_1_data_918 = .data:0x00000918; // type:object size:0x12 data:string +lbl_1_data_92A = .data:0x0000092A; // type:object size:0x24 data:string +lbl_1_data_94E = .data:0x0000094E; // type:object size:0xB data:string +lbl_1_data_959 = .data:0x00000959; // type:object size:0x3 data:string +lbl_1_data_95C = .data:0x0000095C; // type:object size:0x10 +lbl_1_data_96C = .data:0x0000096C; // type:object size:0x20 +lbl_1_data_98C = .data:0x0000098C; // type:object size:0x20 +lbl_1_data_9AC = .data:0x000009AC; // type:object size:0xD data:string +lbl_1_data_9B9 = .data:0x000009B9; // type:object size:0x5 +lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x5 +lbl_1_data_9C3 = .data:0x000009C3; // type:object size:0x6 +lbl_1_data_9C9 = .data:0x000009C9; // type:object size:0x9 data:string +lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0xA data:string +lbl_1_data_9DC = .data:0x000009DC; // type:object size:0xA data:string +lbl_1_data_9E6 = .data:0x000009E6; // type:object size:0x9 data:string +lbl_1_data_9EF = .data:0x000009EF; // type:object size:0x9 data:string +lbl_1_data_9F8 = .data:0x000009F8; // type:object size:0xC +lbl_1_data_A04 = .data:0x00000A04; // type:object size:0x14 data:4byte +lbl_1_data_A18 = .data:0x00000A18; // type:object size:0x6 data:string +lbl_1_data_A1E = .data:0x00000A1E; // type:object size:0x4 data:string +lbl_1_data_A22 = .data:0x00000A22; // type:object size:0x5 data:string +lbl_1_data_A27 = .data:0x00000A27; // type:object size:0x7 data:string +lbl_1_data_A2E = .data:0x00000A2E; // type:object size:0x5 data:string +lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x9 data:string +jumptable_1_data_A3C = .data:0x00000A3C; // type:object size:0x20 scope:local +jumptable_1_data_A5C = .data:0x00000A5C; // type:object size:0x20 scope:local +lbl_1_data_A7C = .data:0x00000A7C; // type:object size:0x4 data:string +lbl_1_data_A80 = .data:0x00000A80; // type:object size:0x4 data:string +lbl_1_data_A84 = .data:0x00000A84; // type:object size:0x10 data:string +lbl_1_data_A94 = .data:0x00000A94; // type:object size:0x15 data:string +lbl_1_data_AA9 = .data:0x00000AA9; // type:object size:0x15 data:string +lbl_1_data_ABE = .data:0x00000ABE; // type:object size:0x15 data:string +lbl_1_data_AD3 = .data:0x00000AD3; // type:object size:0x15 data:string +lbl_1_data_AE8 = .data:0x00000AE8; // type:object size:0x15 data:string +lbl_1_data_AFD = .data:0x00000AFD; // type:object size:0x15 data:string +lbl_1_data_B12 = .data:0x00000B12; // type:object size:0x15 data:string +lbl_1_data_B27 = .data:0x00000B27; // type:object size:0x14 data:string +lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x2 data:2byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte +lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x2 data:2byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x10 +lbl_1_bss_1E = .bss:0x0000001E; // type:object size:0x8 +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x10 +lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x8 +lbl_1_bss_3E = .bss:0x0000003E; // type:object size:0x8 +lbl_1_bss_46 = .bss:0x00000046; // type:object size:0x8 +lbl_1_bss_4E = .bss:0x0000004E; // type:object size:0x2 data:2byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x2 data:2byte +lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x2 data:2byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x2 data:2byte +lbl_1_bss_56 = .bss:0x00000056; // type:object size:0x2A data:2byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0xE +lbl_1_bss_96 = .bss:0x00000096; // type:object size:0x2 data:2byte diff --git a/config/GMPJ01_00/rels/staffDll/splits.txt b/config/GMPJ01_00/rels/staffDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/staffDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/staffDll/symbols.txt b/config/GMPJ01_00/rels/staffDll/symbols.txt new file mode 100644 index 00000000..8f507623 --- /dev/null +++ b/config/GMPJ01_00/rels/staffDll/symbols.txt @@ -0,0 +1,54 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x218 +fn_1_2B8 = .text:0x000002B8; // type:function size:0x60 +fn_1_318 = .text:0x00000318; // type:function size:0x3DC +fn_1_6F4 = .text:0x000006F4; // type:function size:0x3AC +fn_1_AA0 = .text:0x00000AA0; // type:function size:0x12C +fn_1_BCC = .text:0x00000BCC; // type:function size:0x1C4 +fn_1_D90 = .text:0x00000D90; // type:function size:0x500 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xFA8 +lbl_1_data_FA8 = .data:0x00000FA8; // type:object size:0xC data:float +lbl_1_data_FB4 = .data:0x00000FB4; // type:object size:0x14 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x6 data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x34 data:2byte diff --git a/config/GMPJ01_00/rels/subchrselDll/splits.txt b/config/GMPJ01_00/rels/subchrselDll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/subchrselDll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/subchrselDll/symbols.txt b/config/GMPJ01_00/rels/subchrselDll/symbols.txt new file mode 100644 index 00000000..22a9a485 --- /dev/null +++ b/config/GMPJ01_00/rels/subchrselDll/symbols.txt @@ -0,0 +1,33 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x6C +fn_1_10C = .text:0x0000010C; // type:function size:0x58 +fn_1_164 = .text:0x00000164; // type:function size:0x654 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 data:string +lbl_1_data_8 = .data:0x00000008; // type:object size:0x8 data:string +lbl_1_data_10 = .data:0x00000010; // type:object size:0x8 data:string +lbl_1_data_18 = .data:0x00000018; // type:object size:0x8 data:string +lbl_1_data_20 = .data:0x00000020; // type:object size:0x10 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x6 data:string +lbl_1_data_36 = .data:0x00000036; // type:object size:0x6 data:string +lbl_1_data_3C = .data:0x0000003C; // type:object size:0x6 data:string +lbl_1_data_42 = .data:0x00000042; // type:object size:0x6 data:string +lbl_1_data_48 = .data:0x00000048; // type:object size:0x6 data:string +lbl_1_data_4E = .data:0x0000004E; // type:object size:0x7 data:string +lbl_1_data_55 = .data:0x00000055; // type:object size:0x6 data:string +lbl_1_data_5B = .data:0x0000005B; // type:object size:0x9 +lbl_1_data_64 = .data:0x00000064; // type:object size:0x20 +lbl_1_data_84 = .data:0x00000084; // type:object size:0x1 +lbl_1_data_85 = .data:0x00000085; // type:object size:0x6 data:string +lbl_1_data_8B = .data:0x0000008B; // type:object size:0x8 data:string +lbl_1_data_93 = .data:0x00000093; // type:object size:0x7 data:string +lbl_1_data_9A = .data:0x0000009A; // type:object size:0x7 data:string +lbl_1_data_A1 = .data:0x000000A1; // type:object size:0x6 data:string +lbl_1_data_A7 = .data:0x000000A7; // type:object size:0x9 +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x1C +lbl_1_data_CC = .data:0x000000CC; // type:object size:0x15 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte diff --git a/config/GMPJ01_00/rels/w01Dll/splits.txt b/config/GMPJ01_00/rels/w01Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/w01Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/w01Dll/symbols.txt b/config/GMPJ01_00/rels/w01Dll/symbols.txt new file mode 100644 index 00000000..90f53307 --- /dev/null +++ b/config/GMPJ01_00/rels/w01Dll/symbols.txt @@ -0,0 +1,469 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x30 +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +fn_1_E0 = .text:0x000000E0; // type:function size:0x4BC +fn_1_59C = .text:0x0000059C; // type:function size:0x194 +fn_1_730 = .text:0x00000730; // type:function size:0x44 +fn_1_774 = .text:0x00000774; // type:function size:0x4 +fn_1_778 = .text:0x00000778; // type:function size:0x9C +fn_1_814 = .text:0x00000814; // type:function size:0x1D4 +fn_1_9E8 = .text:0x000009E8; // type:function size:0x318 +fn_1_D00 = .text:0x00000D00; // type:function size:0x4 +fn_1_D04 = .text:0x00000D04; // type:function size:0x550 +fn_1_1254 = .text:0x00001254; // type:function size:0x38 +fn_1_128C = .text:0x0000128C; // type:function size:0x80 +fn_1_130C = .text:0x0000130C; // type:function size:0x270 +fn_1_157C = .text:0x0000157C; // type:function size:0xF4 +fn_1_1670 = .text:0x00001670; // type:function size:0x90 +fn_1_1700 = .text:0x00001700; // type:function size:0x290 +fn_1_1990 = .text:0x00001990; // type:function size:0x148 +fn_1_1AD8 = .text:0x00001AD8; // type:function size:0x64 +fn_1_1B3C = .text:0x00001B3C; // type:function size:0x3A8 +fn_1_1EE4 = .text:0x00001EE4; // type:function size:0x48 +fn_1_1F2C = .text:0x00001F2C; // type:function size:0x78 +fn_1_1FA4 = .text:0x00001FA4; // type:function size:0x580 +fn_1_2524 = .text:0x00002524; // type:function size:0x248 +fn_1_276C = .text:0x0000276C; // type:function size:0x7AC +fn_1_2F18 = .text:0x00002F18; // type:function size:0x438 +fn_1_3350 = .text:0x00003350; // type:function size:0x1C4 +fn_1_3514 = .text:0x00003514; // type:function size:0xA0 +fn_1_35B4 = .text:0x000035B4; // type:function size:0x70 +fn_1_3624 = .text:0x00003624; // type:function size:0xFD0 +fn_1_45F4 = .text:0x000045F4; // type:function size:0x180 +fn_1_4774 = .text:0x00004774; // type:function size:0xF0 +fn_1_4864 = .text:0x00004864; // type:function size:0x50 +fn_1_48B4 = .text:0x000048B4; // type:function size:0x560 +fn_1_4E14 = .text:0x00004E14; // type:function size:0x194 +fn_1_4FA8 = .text:0x00004FA8; // type:function size:0x30 +fn_1_4FD8 = .text:0x00004FD8; // type:function size:0xFC +fn_1_50D4 = .text:0x000050D4; // type:function size:0x2E4 +fn_1_53B8 = .text:0x000053B8; // type:function size:0x84 +fn_1_543C = .text:0x0000543C; // type:function size:0x258 +fn_1_5694 = .text:0x00005694; // type:function size:0x1D8 +fn_1_586C = .text:0x0000586C; // type:function size:0xC0 +fn_1_592C = .text:0x0000592C; // type:function size:0x200 +fn_1_5B2C = .text:0x00005B2C; // type:function size:0x14 +fn_1_5B40 = .text:0x00005B40; // type:function size:0x190 +fn_1_5CD0 = .text:0x00005CD0; // type:function size:0x38 +fn_1_5D08 = .text:0x00005D08; // type:function size:0x390 +fn_1_6098 = .text:0x00006098; // type:function size:0xFC +fn_1_6194 = .text:0x00006194; // type:function size:0x25C +fn_1_63F0 = .text:0x000063F0; // type:function size:0x624 +fn_1_6A14 = .text:0x00006A14; // type:function size:0x1AC +fn_1_6BC0 = .text:0x00006BC0; // type:function size:0x3F4 +fn_1_6FB4 = .text:0x00006FB4; // type:function size:0x574 +fn_1_7528 = .text:0x00007528; // type:function size:0x2C4 +fn_1_77EC = .text:0x000077EC; // type:function size:0xA8 +fn_1_7894 = .text:0x00007894; // type:function size:0x1D0 +fn_1_7A64 = .text:0x00007A64; // type:function size:0xAC8 +fn_1_852C = .text:0x0000852C; // type:function size:0x280 +fn_1_87AC = .text:0x000087AC; // type:function size:0x34 +fn_1_87E0 = .text:0x000087E0; // type:function size:0x1A8 +fn_1_8988 = .text:0x00008988; // type:function size:0xC8 +fn_1_8A50 = .text:0x00008A50; // type:function size:0x11C +fn_1_8B6C = .text:0x00008B6C; // type:function size:0x270 +fn_1_8DDC = .text:0x00008DDC; // type:function size:0x3B0 +fn_1_918C = .text:0x0000918C; // type:function size:0xF0 +fn_1_927C = .text:0x0000927C; // type:function size:0xB0 +fn_1_932C = .text:0x0000932C; // type:function size:0x17C +fn_1_94A8 = .text:0x000094A8; // type:function size:0x14C +fn_1_95F4 = .text:0x000095F4; // type:function size:0x200 +fn_1_97F4 = .text:0x000097F4; // type:function size:0xF8 +fn_1_98EC = .text:0x000098EC; // type:function size:0x34 +fn_1_9920 = .text:0x00009920; // type:function size:0x104 +fn_1_9A24 = .text:0x00009A24; // type:function size:0x198 +fn_1_9BBC = .text:0x00009BBC; // type:function size:0x144 +fn_1_9D00 = .text:0x00009D00; // type:function size:0xD8 +fn_1_9DD8 = .text:0x00009DD8; // type:function size:0x6E0 +fn_1_A4B8 = .text:0x0000A4B8; // type:function size:0x9C +fn_1_A554 = .text:0x0000A554; // type:function size:0xA8 +fn_1_A5FC = .text:0x0000A5FC; // type:function size:0xE4 +fn_1_A6E0 = .text:0x0000A6E0; // type:function size:0x938 +fn_1_B018 = .text:0x0000B018; // type:function size:0x70 +fn_1_B088 = .text:0x0000B088; // type:function size:0x144 +fn_1_B1CC = .text:0x0000B1CC; // type:function size:0x1EC +fn_1_B3B8 = .text:0x0000B3B8; // type:function size:0xC0 +fn_1_B478 = .text:0x0000B478; // type:function size:0x680 +fn_1_BAF8 = .text:0x0000BAF8; // type:function size:0x1E4 +fn_1_BCDC = .text:0x0000BCDC; // type:function size:0x224 +fn_1_BF00 = .text:0x0000BF00; // type:function size:0x68 +fn_1_BF68 = .text:0x0000BF68; // type:function size:0x98 +fn_1_C000 = .text:0x0000C000; // type:function size:0xFC +fn_1_C0FC = .text:0x0000C0FC; // type:function size:0x160 +fn_1_C25C = .text:0x0000C25C; // type:function size:0x5E8 +fn_1_C844 = .text:0x0000C844; // type:function size:0x50 +fn_1_C894 = .text:0x0000C894; // type:function size:0xB8 +fn_1_C94C = .text:0x0000C94C; // type:function size:0x4C +fn_1_C998 = .text:0x0000C998; // type:function size:0x1AC +fn_1_CB44 = .text:0x0000CB44; // type:function size:0x380 +fn_1_CEC4 = .text:0x0000CEC4; // type:function size:0x170 +fn_1_D034 = .text:0x0000D034; // type:function size:0x48 +fn_1_D07C = .text:0x0000D07C; // type:function size:0x98 +fn_1_D114 = .text:0x0000D114; // type:function size:0x62C +fn_1_D740 = .text:0x0000D740; // type:function size:0x644 +fn_1_DD84 = .text:0x0000DD84; // type:function size:0x110 +fn_1_DE94 = .text:0x0000DE94; // type:function size:0x26C +fn_1_E100 = .text:0x0000E100; // type:function size:0x54 +fn_1_E154 = .text:0x0000E154; // type:function size:0x164 +fn_1_E2B8 = .text:0x0000E2B8; // type:function size:0x194 +fn_1_E44C = .text:0x0000E44C; // type:function size:0x4C8 +fn_1_E914 = .text:0x0000E914; // type:function size:0x3C0 +fn_1_ECD4 = .text:0x0000ECD4; // type:function size:0x1CC +fn_1_EEA0 = .text:0x0000EEA0; // type:function size:0x38 +fn_1_EED8 = .text:0x0000EED8; // type:function size:0x1C4 +fn_1_F09C = .text:0x0000F09C; // type:function size:0x2AC +fn_1_F348 = .text:0x0000F348; // type:function size:0xB0 +fn_1_F3F8 = .text:0x0000F3F8; // type:function size:0x2F0 +fn_1_F6E8 = .text:0x0000F6E8; // type:function size:0x1A8 +fn_1_F890 = .text:0x0000F890; // type:function size:0x18C +fn_1_FA1C = .text:0x0000FA1C; // type:function size:0xA0 +fn_1_FABC = .text:0x0000FABC; // type:function size:0x9C +fn_1_FB58 = .text:0x0000FB58; // type:function size:0xE4 +fn_1_FC3C = .text:0x0000FC3C; // type:function size:0xB0 +fn_1_FCEC = .text:0x0000FCEC; // type:function size:0x50 +fn_1_FD3C = .text:0x0000FD3C; // type:function size:0x108 +fn_1_FE44 = .text:0x0000FE44; // type:function size:0x8C +fn_1_FED0 = .text:0x0000FED0; // type:function size:0x14C +fn_1_1001C = .text:0x0001001C; // type:function size:0x19C +fn_1_101B8 = .text:0x000101B8; // type:function size:0x4AC +fn_1_10664 = .text:0x00010664; // type:function size:0x1BC +fn_1_10820 = .text:0x00010820; // type:function size:0x2C8 +fn_1_10AE8 = .text:0x00010AE8; // type:function size:0xC8 +fn_1_10BB0 = .text:0x00010BB0; // type:function size:0x140 +fn_1_10CF0 = .text:0x00010CF0; // type:function size:0x1C8 +fn_1_10EB8 = .text:0x00010EB8; // type:function size:0x1AC +fn_1_11064 = .text:0x00011064; // type:function size:0x420 +fn_1_11484 = .text:0x00011484; // type:function size:0x56C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x10 data:4byte +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x8 data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x8 data:4byte +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x2 data:2byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x2 data:2byte +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0xC data:2byte +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x528 +lbl_1_data_528 = .data:0x00000528; // type:object size:0x2 data:2byte +lbl_1_data_52A = .data:0x0000052A; // type:object size:0x2 data:2byte +lbl_1_data_52C = .data:0x0000052C; // type:object size:0x2 data:2byte +lbl_1_data_52E = .data:0x0000052E; // type:object size:0x2 data:2byte +lbl_1_data_530 = .data:0x00000530; // type:object size:0x2 data:2byte +lbl_1_data_534 = .data:0x00000534; // type:object size:0x8 +lbl_1_data_53C = .data:0x0000053C; // type:object size:0x8 +lbl_1_data_544 = .data:0x00000544; // type:object size:0x14 data:string +lbl_1_data_558 = .data:0x00000558; // type:object size:0x14 data:string +lbl_1_data_56C = .data:0x0000056C; // type:object size:0x14 +lbl_1_data_580 = .data:0x00000580; // type:object size:0x2 data:2byte +lbl_1_data_582 = .data:0x00000582; // type:object size:0x12 +lbl_1_data_594 = .data:0x00000594; // type:object size:0x40 +lbl_1_data_5D4 = .data:0x000005D4; // type:object size:0x4 data:4byte +lbl_1_data_5D8 = .data:0x000005D8; // type:object size:0x4 data:4byte +lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x10 +lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x7 data:string +lbl_1_data_5F3 = .data:0x000005F3; // type:object size:0x7 data:string +lbl_1_data_5FA = .data:0x000005FA; // type:object size:0xA +lbl_1_data_604 = .data:0x00000604; // type:object size:0xC +lbl_1_data_610 = .data:0x00000610; // type:object size:0x10 +lbl_1_data_620 = .data:0x00000620; // type:object size:0x5 data:string +lbl_1_data_625 = .data:0x00000625; // type:object size:0x5 data:string +lbl_1_data_62A = .data:0x0000062A; // type:object size:0x5 data:string +lbl_1_data_62F = .data:0x0000062F; // type:object size:0x4 data:string +lbl_1_data_633 = .data:0x00000633; // type:object size:0x1 data:byte +lbl_1_data_634 = .data:0x00000634; // type:object size:0x24 +lbl_1_data_658 = .data:0x00000658; // type:object size:0x24 +lbl_1_data_67C = .data:0x0000067C; // type:object size:0x14 +lbl_1_data_690 = .data:0x00000690; // type:object size:0x2D0 +lbl_1_data_960 = .data:0x00000960; // type:object size:0x2D0 +lbl_1_data_C30 = .data:0x00000C30; // type:object size:0x2D0 +lbl_1_data_F00 = .data:0x00000F00; // type:object size:0x8 +lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x38 +lbl_1_data_F40 = .data:0x00000F40; // type:object size:0x20 +lbl_1_data_F60 = .data:0x00000F60; // type:object size:0x20 +lbl_1_data_F80 = .data:0x00000F80; // type:object size:0x7 data:string +lbl_1_data_F87 = .data:0x00000F87; // type:object size:0x5 data:string +lbl_1_data_F8C = .data:0x00000F8C; // type:object size:0x5 data:string +lbl_1_data_F91 = .data:0x00000F91; // type:object size:0x5 data:string +lbl_1_data_F96 = .data:0x00000F96; // type:object size:0x6 +lbl_1_data_F9C = .data:0x00000F9C; // type:object size:0x10 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 data:byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x1 data:byte +lbl_1_bss_29 = .bss:0x00000029; // type:object size:0x1 data:byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x5A0 +lbl_1_bss_5CC = .bss:0x000005CC; // type:object size:0x2 data:2byte +lbl_1_bss_5D0 = .bss:0x000005D0; // type:object size:0x30 +lbl_1_bss_600 = .bss:0x00000600; // type:object size:0x18 +lbl_1_bss_618 = .bss:0x00000618; // type:object size:0xC data:4byte +lbl_1_bss_624 = .bss:0x00000624; // type:object size:0xC data:float +lbl_1_bss_630 = .bss:0x00000630; // type:object size:0xC data:4byte +lbl_1_bss_63C = .bss:0x0000063C; // type:object size:0x4 data:float +lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x4 data:float +lbl_1_bss_644 = .bss:0x00000644; // type:object size:0x4 data:float +lbl_1_bss_648 = .bss:0x00000648; // type:object size:0xC data:4byte +lbl_1_bss_654 = .bss:0x00000654; // type:object size:0xC data:float +lbl_1_bss_660 = .bss:0x00000660; // type:object size:0xC data:float +lbl_1_bss_66C = .bss:0x0000066C; // type:object size:0x4 data:float +lbl_1_bss_670 = .bss:0x00000670; // type:object size:0x4 data:float +lbl_1_bss_674 = .bss:0x00000674; // type:object size:0x4 data:float +lbl_1_bss_678 = .bss:0x00000678; // type:object size:0x30 +lbl_1_bss_6A8 = .bss:0x000006A8; // type:object size:0x4 data:float +lbl_1_bss_6AC = .bss:0x000006AC; // type:object size:0x2 data:2byte +lbl_1_bss_6AE = .bss:0x000006AE; // type:object size:0x2 data:2byte +lbl_1_bss_6B0 = .bss:0x000006B0; // type:object size:0x1 data:byte +lbl_1_bss_6B1 = .bss:0x000006B1; // type:object size:0x1 data:byte +lbl_1_bss_6B2 = .bss:0x000006B2; // type:object size:0x1 data:byte +lbl_1_bss_6B3 = .bss:0x000006B3; // type:object size:0x1 data:byte +lbl_1_bss_6B4 = .bss:0x000006B4; // type:object size:0x1 data:byte +lbl_1_bss_6B6 = .bss:0x000006B6; // type:object size:0xA data:2byte +lbl_1_bss_6C0 = .bss:0x000006C0; // type:object size:0x4 data:4byte +lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x44 data:2byte +lbl_1_bss_708 = .bss:0x00000708; // type:object size:0x2 data:2byte +lbl_1_bss_70C = .bss:0x0000070C; // type:object size:0x4 data:4byte +lbl_1_bss_710 = .bss:0x00000710; // type:object size:0x4 data:4byte +lbl_1_bss_714 = .bss:0x00000714; // type:object size:0xC +lbl_1_bss_720 = .bss:0x00000720; // type:object size:0x4 data:4byte +lbl_1_bss_724 = .bss:0x00000724; // type:object size:0x4 data:4byte +lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x2 data:2byte +lbl_1_bss_72A = .bss:0x0000072A; // type:object size:0x2 data:2byte +lbl_1_bss_72C = .bss:0x0000072C; // type:object size:0x4 data:4byte +lbl_1_bss_730 = .bss:0x00000730; // type:object size:0x4 data:4byte +lbl_1_bss_734 = .bss:0x00000734; // type:object size:0x4 data:4byte +lbl_1_bss_738 = .bss:0x00000738; // type:object size:0xC data:float +lbl_1_bss_744 = .bss:0x00000744; // type:object size:0x2 data:2byte +lbl_1_bss_748 = .bss:0x00000748; // type:object size:0x4 data:4byte +lbl_1_bss_74C = .bss:0x0000074C; // type:object size:0x4 data:4byte +lbl_1_bss_750 = .bss:0x00000750; // type:object size:0x2 data:2byte +lbl_1_bss_754 = .bss:0x00000754; // type:object size:0x4 data:float +lbl_1_bss_758 = .bss:0x00000758; // type:object size:0x4 data:4byte +lbl_1_bss_75C = .bss:0x0000075C; // type:object size:0x4 data:4byte +lbl_1_bss_760 = .bss:0x00000760; // type:object size:0x28 +lbl_1_bss_788 = .bss:0x00000788; // type:object size:0x2 data:2byte +lbl_1_bss_78A = .bss:0x0000078A; // type:object size:0x6 data:2byte +lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x6 data:2byte +lbl_1_bss_796 = .bss:0x00000796; // type:object size:0x2 data:2byte +lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x4 data:4byte +lbl_1_bss_79C = .bss:0x0000079C; // type:object size:0x4 data:4byte +lbl_1_bss_7A0 = .bss:0x000007A0; // type:object size:0x4 data:4byte +lbl_1_bss_7A4 = .bss:0x000007A4; // type:object size:0x4 data:4byte +lbl_1_bss_7A8 = .bss:0x000007A8; // type:object size:0x2 data:2byte +lbl_1_bss_7AA = .bss:0x000007AA; // type:object size:0x2 data:2byte +lbl_1_bss_7AC = .bss:0x000007AC; // type:object size:0x8 data:4byte +lbl_1_bss_7B4 = .bss:0x000007B4; // type:object size:0x2 data:2byte +lbl_1_bss_7B8 = .bss:0x000007B8; // type:object size:0x4 data:4byte +lbl_1_bss_7BC = .bss:0x000007BC; // type:object size:0x8 data:4byte +lbl_1_bss_7C4 = .bss:0x000007C4; // type:object size:0xC data:float +lbl_1_bss_7D0 = .bss:0x000007D0; // type:object size:0x2 data:2byte +lbl_1_bss_7D2 = .bss:0x000007D2; // type:object size:0x2 data:2byte +lbl_1_bss_7D4 = .bss:0x000007D4; // type:object size:0x2 data:2byte +lbl_1_bss_7D6 = .bss:0x000007D6; // type:object size:0x2 data:2byte +lbl_1_bss_7D8 = .bss:0x000007D8; // type:object size:0xC data:4byte +lbl_1_bss_7E4 = .bss:0x000007E4; // type:object size:0x4 data:4byte +lbl_1_bss_7E8 = .bss:0x000007E8; // type:object size:0x4 data:float +lbl_1_bss_7EC = .bss:0x000007EC; // type:object size:0x4 data:float +lbl_1_bss_7F0 = .bss:0x000007F0; // type:object size:0x4 data:4byte +lbl_1_bss_7F4 = .bss:0x000007F4; // type:object size:0x4 data:4byte +lbl_1_bss_7F8 = .bss:0x000007F8; // type:object size:0x4 data:4byte +lbl_1_bss_7FC = .bss:0x000007FC; // type:object size:0x10 data:4byte +lbl_1_bss_80C = .bss:0x0000080C; // type:object size:0xC data:float +lbl_1_bss_818 = .bss:0x00000818; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/w02Dll/splits.txt b/config/GMPJ01_00/rels/w02Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/w02Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/w02Dll/symbols.txt b/config/GMPJ01_00/rels/w02Dll/symbols.txt new file mode 100644 index 00000000..2969cbd4 --- /dev/null +++ b/config/GMPJ01_00/rels/w02Dll/symbols.txt @@ -0,0 +1,456 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x30 +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +fn_1_E0 = .text:0x000000E0; // type:function size:0x4F4 +fn_1_5D4 = .text:0x000005D4; // type:function size:0x158 +fn_1_72C = .text:0x0000072C; // type:function size:0x44 +fn_1_770 = .text:0x00000770; // type:function size:0x4 +fn_1_774 = .text:0x00000774; // type:function size:0x8C +fn_1_800 = .text:0x00000800; // type:function size:0x12C +fn_1_92C = .text:0x0000092C; // type:function size:0x24 +fn_1_950 = .text:0x00000950; // type:function size:0x4 +fn_1_954 = .text:0x00000954; // type:function size:0x3C +fn_1_990 = .text:0x00000990; // type:function size:0x2C0 +fn_1_C50 = .text:0x00000C50; // type:function size:0x420 +fn_1_1070 = .text:0x00001070; // type:function size:0x38 +fn_1_10A8 = .text:0x000010A8; // type:function size:0x80 +fn_1_1128 = .text:0x00001128; // type:function size:0xF4 +fn_1_121C = .text:0x0000121C; // type:function size:0x38 +fn_1_1254 = .text:0x00001254; // type:function size:0x17C +fn_1_13D0 = .text:0x000013D0; // type:function size:0x148 +fn_1_1518 = .text:0x00001518; // type:function size:0x5C +fn_1_1574 = .text:0x00001574; // type:function size:0x220 +fn_1_1794 = .text:0x00001794; // type:function size:0x60 +fn_1_17F4 = .text:0x000017F4; // type:function size:0x5C +fn_1_1850 = .text:0x00001850; // type:function size:0x744 +fn_1_1F94 = .text:0x00001F94; // type:function size:0x9C +fn_1_2030 = .text:0x00002030; // type:function size:0xD0 +fn_1_2100 = .text:0x00002100; // type:function size:0x120 +fn_1_2220 = .text:0x00002220; // type:function size:0x9C +fn_1_22BC = .text:0x000022BC; // type:function size:0x80 +fn_1_233C = .text:0x0000233C; // type:function size:0x78 +fn_1_23B4 = .text:0x000023B4; // type:function size:0x48 +fn_1_23FC = .text:0x000023FC; // type:function size:0x1D4 +fn_1_25D0 = .text:0x000025D0; // type:function size:0xC4 +fn_1_2694 = .text:0x00002694; // type:function size:0x98 +fn_1_272C = .text:0x0000272C; // type:function size:0x104 +fn_1_2830 = .text:0x00002830; // type:function size:0x3B4 +fn_1_2BE4 = .text:0x00002BE4; // type:function size:0x120 +fn_1_2D04 = .text:0x00002D04; // type:function size:0xC34 +fn_1_3938 = .text:0x00003938; // type:function size:0x14 +fn_1_394C = .text:0x0000394C; // type:function size:0xA8 +fn_1_39F4 = .text:0x000039F4; // type:function size:0x200 +fn_1_3BF4 = .text:0x00003BF4; // type:function size:0x318 +fn_1_3F0C = .text:0x00003F0C; // type:function size:0x58 +fn_1_3F64 = .text:0x00003F64; // type:function size:0x30 +fn_1_3F94 = .text:0x00003F94; // type:function size:0xBC +fn_1_4050 = .text:0x00004050; // type:function size:0xB0 +fn_1_4100 = .text:0x00004100; // type:function size:0xB8 +fn_1_41B8 = .text:0x000041B8; // type:function size:0x1C0 +fn_1_4378 = .text:0x00004378; // type:function size:0x320 +fn_1_4698 = .text:0x00004698; // type:function size:0x50 +fn_1_46E8 = .text:0x000046E8; // type:function size:0xA34 +fn_1_511C = .text:0x0000511C; // type:function size:0x98 +fn_1_51B4 = .text:0x000051B4; // type:function size:0xDC +fn_1_5290 = .text:0x00005290; // type:function size:0x128 +fn_1_53B8 = .text:0x000053B8; // type:function size:0x27C +fn_1_5634 = .text:0x00005634; // type:function size:0x234 +fn_1_5868 = .text:0x00005868; // type:function size:0x258 +fn_1_5AC0 = .text:0x00005AC0; // type:function size:0x1C4 +fn_1_5C84 = .text:0x00005C84; // type:function size:0x74 +fn_1_5CF8 = .text:0x00005CF8; // type:function size:0x30 +fn_1_5D28 = .text:0x00005D28; // type:function size:0x1E0 +fn_1_5F08 = .text:0x00005F08; // type:function size:0x58 +fn_1_5F60 = .text:0x00005F60; // type:function size:0x30 +fn_1_5F90 = .text:0x00005F90; // type:function size:0x9C +fn_1_602C = .text:0x0000602C; // type:function size:0x40 +fn_1_606C = .text:0x0000606C; // type:function size:0x100 +fn_1_616C = .text:0x0000616C; // type:function size:0xDC +fn_1_6248 = .text:0x00006248; // type:function size:0x868 +fn_1_6AB0 = .text:0x00006AB0; // type:function size:0x1F4 +fn_1_6CA4 = .text:0x00006CA4; // type:function size:0x60 +fn_1_6D04 = .text:0x00006D04; // type:function size:0x130 +fn_1_6E34 = .text:0x00006E34; // type:function size:0x74 +fn_1_6EA8 = .text:0x00006EA8; // type:function size:0x43C +fn_1_72E4 = .text:0x000072E4; // type:function size:0x48 +fn_1_732C = .text:0x0000732C; // type:function size:0x2C +fn_1_7358 = .text:0x00007358; // type:function size:0x70 +fn_1_73C8 = .text:0x000073C8; // type:function size:0x11C +fn_1_74E4 = .text:0x000074E4; // type:function size:0x26C +fn_1_7750 = .text:0x00007750; // type:function size:0xC8 +fn_1_7818 = .text:0x00007818; // type:function size:0x80 +fn_1_7898 = .text:0x00007898; // type:function size:0x124 +fn_1_79BC = .text:0x000079BC; // type:function size:0x888 +fn_1_8244 = .text:0x00008244; // type:function size:0x32C +fn_1_8570 = .text:0x00008570; // type:function size:0x8C +fn_1_85FC = .text:0x000085FC; // type:function size:0x7B0 +fn_1_8DAC = .text:0x00008DAC; // type:function size:0x8C +fn_1_8E38 = .text:0x00008E38; // type:function size:0x418 +fn_1_9250 = .text:0x00009250; // type:function size:0x178 +fn_1_93C8 = .text:0x000093C8; // type:function size:0xE4 +fn_1_94AC = .text:0x000094AC; // type:function size:0x14 +fn_1_94C0 = .text:0x000094C0; // type:function size:0x418 +fn_1_98D8 = .text:0x000098D8; // type:function size:0x5EC +fn_1_9EC4 = .text:0x00009EC4; // type:function size:0x694 +fn_1_A558 = .text:0x0000A558; // type:function size:0x390 +fn_1_A8E8 = .text:0x0000A8E8; // type:function size:0xB68 +fn_1_B450 = .text:0x0000B450; // type:function size:0x458 +fn_1_B8A8 = .text:0x0000B8A8; // type:function size:0x288 +fn_1_BB30 = .text:0x0000BB30; // type:function size:0xEC +fn_1_BC1C = .text:0x0000BC1C; // type:function size:0xE0 +fn_1_BCFC = .text:0x0000BCFC; // type:function size:0x178 +fn_1_BE74 = .text:0x0000BE74; // type:function size:0x14 +fn_1_BE88 = .text:0x0000BE88; // type:function size:0x280 +fn_1_C108 = .text:0x0000C108; // type:function size:0xBFC +fn_1_CD04 = .text:0x0000CD04; // type:function size:0x6A8 +fn_1_D3AC = .text:0x0000D3AC; // type:function size:0x518 +fn_1_D8C4 = .text:0x0000D8C4; // type:function size:0x684 +fn_1_DF48 = .text:0x0000DF48; // type:function size:0x364 +fn_1_E2AC = .text:0x0000E2AC; // type:function size:0x64 +fn_1_E310 = .text:0x0000E310; // type:function size:0x10C +fn_1_E41C = .text:0x0000E41C; // type:function size:0xB8 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0xC data:4byte +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x18 data:4byte +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x24 data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x28 data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:double +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0xC data:4byte +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x8 data:double +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x280 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:2byte +lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:2byte +lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 data:2byte +lbl_1_data_286 = .data:0x00000286; // type:object size:0x2 data:2byte +lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x18 +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x12 data:string +lbl_1_data_2BA = .data:0x000002BA; // type:object size:0xE data:string +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x10 data:string +lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x50 +lbl_1_data_328 = .data:0x00000328; // type:object size:0x1D data:string +lbl_1_data_345 = .data:0x00000345; // type:object size:0x1B data:string +lbl_1_data_360 = .data:0x00000360; // type:object size:0x11 data:string +lbl_1_data_371 = .data:0x00000371; // type:object size:0x7 +lbl_1_data_378 = .data:0x00000378; // type:object size:0x24 +lbl_1_data_39C = .data:0x0000039C; // type:object size:0x24 +lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x24 +lbl_1_data_3E4 = .data:0x000003E4; // type:object size:0x20 +lbl_1_data_404 = .data:0x00000404; // type:object size:0x20 +lbl_1_data_424 = .data:0x00000424; // type:object size:0x4 +lbl_1_data_428 = .data:0x00000428; // type:object size:0x38 +lbl_1_data_460 = .data:0x00000460; // type:object size:0x5 data:string +lbl_1_data_465 = .data:0x00000465; // type:object size:0x6 data:string +lbl_1_data_46B = .data:0x0000046B; // type:object size:0x9 +lbl_1_data_474 = .data:0x00000474; // type:object size:0xC +lbl_1_data_480 = .data:0x00000480; // type:object size:0x10 +lbl_1_data_490 = .data:0x00000490; // type:object size:0x20 +lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0x20 +lbl_1_data_4D0 = .data:0x000004D0; // type:object size:0x40 +lbl_1_data_510 = .data:0x00000510; // type:object size:0x14 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0xC +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0xC +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_bss_2E = .bss:0x0000002E; // type:object size:0x2 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x20 data:2byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x28 data:2byte +lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x2 data:2byte +lbl_1_bss_86 = .bss:0x00000086; // type:object size:0xE data:2byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0xC data:4byte +lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x2 data:2byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0xC +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x6 +lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x6 +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0xC +lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte +lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x24 +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte +lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte +lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:float +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:float +lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x24 +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x24 +lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x24 data:float +lbl_1_bss_184 = .bss:0x00000184; // type:object size:0x6 data:2byte +lbl_1_bss_18A = .bss:0x0000018A; // type:object size:0x6 data:2byte +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x6 data:2byte +lbl_1_bss_196 = .bss:0x00000196; // type:object size:0x2 data:2byte +lbl_1_bss_198 = .bss:0x00000198; // type:object size:0x8 data:2byte +lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0xC data:float +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x2 data:2byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0xC data:float +lbl_1_bss_1BC = .bss:0x000001BC; // type:object size:0x4 data:float +lbl_1_bss_1C0 = .bss:0x000001C0; // type:object size:0x2 data:2byte +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0x20 +lbl_1_bss_1E4 = .bss:0x000001E4; // type:object size:0xB4 +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0xB4 data:float +lbl_1_bss_34C = .bss:0x0000034C; // type:object size:0x1E +lbl_1_bss_36A = .bss:0x0000036A; // type:object size:0x2 data:2byte +lbl_1_bss_36C = .bss:0x0000036C; // type:object size:0x2 data:2byte +lbl_1_bss_36E = .bss:0x0000036E; // type:object size:0x2 data:2byte +lbl_1_bss_370 = .bss:0x00000370; // type:object size:0x2 data:2byte +lbl_1_bss_374 = .bss:0x00000374; // type:object size:0x4 data:4byte +lbl_1_bss_378 = .bss:0x00000378; // type:object size:0x8 data:4byte +lbl_1_bss_380 = .bss:0x00000380; // type:object size:0x4 data:float +lbl_1_bss_384 = .bss:0x00000384; // type:object size:0x4 data:4byte +lbl_1_bss_388 = .bss:0x00000388; // type:object size:0x2 data:2byte +lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/w03Dll/splits.txt b/config/GMPJ01_00/rels/w03Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/w03Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/w03Dll/symbols.txt b/config/GMPJ01_00/rels/w03Dll/symbols.txt new file mode 100644 index 00000000..d0fda24e --- /dev/null +++ b/config/GMPJ01_00/rels/w03Dll/symbols.txt @@ -0,0 +1,443 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x30 +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +fn_1_E0 = .text:0x000000E0; // type:function size:0x660 +fn_1_740 = .text:0x00000740; // type:function size:0x144 +fn_1_884 = .text:0x00000884; // type:function size:0x6C +fn_1_8F0 = .text:0x000008F0; // type:function size:0x20 +fn_1_910 = .text:0x00000910; // type:function size:0x164 +fn_1_A74 = .text:0x00000A74; // type:function size:0x84 +fn_1_AF8 = .text:0x00000AF8; // type:function size:0x64 +fn_1_B5C = .text:0x00000B5C; // type:function size:0x198 +fn_1_CF4 = .text:0x00000CF4; // type:function size:0xF8 +fn_1_DEC = .text:0x00000DEC; // type:function size:0x2C4 +fn_1_10B0 = .text:0x000010B0; // type:function size:0x34 +fn_1_10E4 = .text:0x000010E4; // type:function size:0x1E4 +fn_1_12C8 = .text:0x000012C8; // type:function size:0x90 +fn_1_1358 = .text:0x00001358; // type:function size:0x1D4 +fn_1_152C = .text:0x0000152C; // type:function size:0xBC +fn_1_15E8 = .text:0x000015E8; // type:function size:0x68 +fn_1_1650 = .text:0x00001650; // type:function size:0x38C +fn_1_19DC = .text:0x000019DC; // type:function size:0x340 +fn_1_1D1C = .text:0x00001D1C; // type:function size:0x1B8 +fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x20C +fn_1_20E0 = .text:0x000020E0; // type:function size:0x600 +fn_1_26E0 = .text:0x000026E0; // type:function size:0x138 +fn_1_2818 = .text:0x00002818; // type:function size:0x118 +fn_1_2930 = .text:0x00002930; // type:function size:0x110 +fn_1_2A40 = .text:0x00002A40; // type:function size:0x80 +fn_1_2AC0 = .text:0x00002AC0; // type:function size:0x84 +fn_1_2B44 = .text:0x00002B44; // type:function size:0x514 +fn_1_3058 = .text:0x00003058; // type:function size:0x44 +fn_1_309C = .text:0x0000309C; // type:function size:0xA0 +fn_1_313C = .text:0x0000313C; // type:function size:0xDC +fn_1_3218 = .text:0x00003218; // type:function size:0xEC +fn_1_3304 = .text:0x00003304; // type:function size:0x174 +fn_1_3478 = .text:0x00003478; // type:function size:0x39C +fn_1_3814 = .text:0x00003814; // type:function size:0x154 +fn_1_3968 = .text:0x00003968; // type:function size:0x520 +fn_1_3E88 = .text:0x00003E88; // type:function size:0xD4 +fn_1_3F5C = .text:0x00003F5C; // type:function size:0x3F8 +fn_1_4354 = .text:0x00004354; // type:function size:0xD0 +fn_1_4424 = .text:0x00004424; // type:function size:0x4C8 +fn_1_48EC = .text:0x000048EC; // type:function size:0x1B0 +fn_1_4A9C = .text:0x00004A9C; // type:function size:0x20 +fn_1_4ABC = .text:0x00004ABC; // type:function size:0x250 +fn_1_4D0C = .text:0x00004D0C; // type:function size:0x54 +fn_1_4D60 = .text:0x00004D60; // type:function size:0x1C4 +fn_1_4F24 = .text:0x00004F24; // type:function size:0x1B0 +fn_1_50D4 = .text:0x000050D4; // type:function size:0x764 +fn_1_5838 = .text:0x00005838; // type:function size:0x290 +fn_1_5AC8 = .text:0x00005AC8; // type:function size:0x194 +fn_1_5C5C = .text:0x00005C5C; // type:function size:0x3D0 +fn_1_602C = .text:0x0000602C; // type:function size:0x178 +fn_1_61A4 = .text:0x000061A4; // type:function size:0xF8 +fn_1_629C = .text:0x0000629C; // type:function size:0x34 +fn_1_62D0 = .text:0x000062D0; // type:function size:0x2C +fn_1_62FC = .text:0x000062FC; // type:function size:0xF8 +fn_1_63F4 = .text:0x000063F4; // type:function size:0xA0 +fn_1_6494 = .text:0x00006494; // type:function size:0x204 +fn_1_6698 = .text:0x00006698; // type:function size:0xC4 +fn_1_675C = .text:0x0000675C; // type:function size:0x9C +fn_1_67F8 = .text:0x000067F8; // type:function size:0x8C +fn_1_6884 = .text:0x00006884; // type:function size:0x14 +fn_1_6898 = .text:0x00006898; // type:function size:0x300 +fn_1_6B98 = .text:0x00006B98; // type:function size:0x404 +fn_1_6F9C = .text:0x00006F9C; // type:function size:0x3C0 +fn_1_735C = .text:0x0000735C; // type:function size:0x320 +fn_1_767C = .text:0x0000767C; // type:function size:0x168 +fn_1_77E4 = .text:0x000077E4; // type:function size:0x78 +fn_1_785C = .text:0x0000785C; // type:function size:0x184 +fn_1_79E0 = .text:0x000079E0; // type:function size:0xDC +fn_1_7ABC = .text:0x00007ABC; // type:function size:0x9C +fn_1_7B58 = .text:0x00007B58; // type:function size:0x50 +fn_1_7BA8 = .text:0x00007BA8; // type:function size:0x90 +fn_1_7C38 = .text:0x00007C38; // type:function size:0x60 +fn_1_7C98 = .text:0x00007C98; // type:function size:0x80 +fn_1_7D18 = .text:0x00007D18; // type:function size:0x428 +fn_1_8140 = .text:0x00008140; // type:function size:0xA0 +fn_1_81E0 = .text:0x000081E0; // type:function size:0x254 +fn_1_8434 = .text:0x00008434; // type:function size:0x74 +fn_1_84A8 = .text:0x000084A8; // type:function size:0x88 +fn_1_8530 = .text:0x00008530; // type:function size:0x168 +fn_1_8698 = .text:0x00008698; // type:function size:0x570 +fn_1_8C08 = .text:0x00008C08; // type:function size:0x23C +fn_1_8E44 = .text:0x00008E44; // type:function size:0x200 +fn_1_9044 = .text:0x00009044; // type:function size:0x174 +fn_1_91B8 = .text:0x000091B8; // type:function size:0x78 +fn_1_9230 = .text:0x00009230; // type:function size:0x154 +fn_1_9384 = .text:0x00009384; // type:function size:0xF0 +fn_1_9474 = .text:0x00009474; // type:function size:0x144 +fn_1_95B8 = .text:0x000095B8; // type:function size:0x240 +fn_1_97F8 = .text:0x000097F8; // type:function size:0x224 +fn_1_9A1C = .text:0x00009A1C; // type:function size:0x60 +fn_1_9A7C = .text:0x00009A7C; // type:function size:0x20 +fn_1_9A9C = .text:0x00009A9C; // type:function size:0x4 +fn_1_9AA0 = .text:0x00009AA0; // type:function size:0x90 +fn_1_9B30 = .text:0x00009B30; // type:function size:0x15C +fn_1_9C8C = .text:0x00009C8C; // type:function size:0x68 +fn_1_9CF4 = .text:0x00009CF4; // type:function size:0x284 +fn_1_9F78 = .text:0x00009F78; // type:function size:0x6C +fn_1_9FE4 = .text:0x00009FE4; // type:function size:0x468 +fn_1_A44C = .text:0x0000A44C; // type:function size:0x194 +fn_1_A5E0 = .text:0x0000A5E0; // type:function size:0xD0 +fn_1_A6B0 = .text:0x0000A6B0; // type:function size:0xF0 +fn_1_A7A0 = .text:0x0000A7A0; // type:function size:0x10C +fn_1_A8AC = .text:0x0000A8AC; // type:function size:0xE8 +fn_1_A994 = .text:0x0000A994; // type:function size:0x184 +fn_1_AB18 = .text:0x0000AB18; // type:function size:0xB8 +fn_1_ABD0 = .text:0x0000ABD0; // type:function size:0x108 +fn_1_ACD8 = .text:0x0000ACD8; // type:function size:0x148 +fn_1_AE20 = .text:0x0000AE20; // type:function size:0x2C +fn_1_AE4C = .text:0x0000AE4C; // type:function size:0xD8 +fn_1_AF24 = .text:0x0000AF24; // type:function size:0x180 +fn_1_B0A4 = .text:0x0000B0A4; // type:function size:0x2AC +fn_1_B350 = .text:0x0000B350; // type:function size:0x15C +fn_1_B4AC = .text:0x0000B4AC; // type:function size:0x1DC +fn_1_B688 = .text:0x0000B688; // type:function size:0xC0 +fn_1_B748 = .text:0x0000B748; // type:function size:0x1A0 +fn_1_B8E8 = .text:0x0000B8E8; // type:function size:0x260 +fn_1_BB48 = .text:0x0000BB48; // type:function size:0x2C +fn_1_BB74 = .text:0x0000BB74; // type:function size:0x50 +fn_1_BBC4 = .text:0x0000BBC4; // type:function size:0x34 +fn_1_BBF8 = .text:0x0000BBF8; // type:function size:0x84 +fn_1_BC7C = .text:0x0000BC7C; // type:function size:0x130 +fn_1_BDAC = .text:0x0000BDAC; // type:function size:0x84 +fn_1_BE30 = .text:0x0000BE30; // type:function size:0x418 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0xC data:4byte +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x24 data:4byte +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x6 data:2byte +lbl_1_rodata_BE = .rodata:0x000000BE; // type:object size:0x1 data:byte +lbl_1_rodata_C2 = .rodata:0x000000C2; // type:object size:0x6 data:byte +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x20 data:4byte +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:4byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x10 data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1E0 +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x2 data:2byte +lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0x2 data:2byte +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x2 data:2byte +lbl_1_data_1E6 = .data:0x000001E6; // type:object size:0x2 data:2byte +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x2 data:2byte +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x20 data:float +lbl_1_data_20C = .data:0x0000020C; // type:object size:0x8 +lbl_1_data_214 = .data:0x00000214; // type:object size:0x8 +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x10 +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x30 +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x10 +lbl_1_data_26C = .data:0x0000026C; // type:object size:0x14 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:2byte +lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:2byte +lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 data:2byte +lbl_1_data_286 = .data:0x00000286; // type:object size:0x2 data:2byte +lbl_1_data_288 = .data:0x00000288; // type:object size:0x4 data:4byte +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x4 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x20 +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x20 +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x20 +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x20 +lbl_1_data_310 = .data:0x00000310; // type:object size:0x2 data:2byte +lbl_1_data_312 = .data:0x00000312; // type:object size:0x2 data:2byte +lbl_1_data_314 = .data:0x00000314; // type:object size:0x2 data:2byte +lbl_1_data_316 = .data:0x00000316; // type:object size:0x2 data:2byte +lbl_1_data_318 = .data:0x00000318; // type:object size:0x18 +lbl_1_data_330 = .data:0x00000330; // type:object size:0xD data:string +lbl_1_data_33D = .data:0x0000033D; // type:object size:0x6 data:string +lbl_1_data_343 = .data:0x00000343; // type:object size:0x9 +lbl_1_data_34C = .data:0x0000034C; // type:object size:0x8 +lbl_1_data_354 = .data:0x00000354; // type:object size:0x8 +lbl_1_data_35C = .data:0x0000035C; // type:object size:0xC +lbl_1_data_368 = .data:0x00000368; // type:object size:0x20 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x2 data:2byte +lbl_1_data_38A = .data:0x0000038A; // type:object size:0x2 data:2byte +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x2 data:2byte +lbl_1_data_390 = .data:0x00000390; // type:object size:0x10 +lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0xB data:string +lbl_1_data_3AB = .data:0x000003AB; // type:object size:0x6 data:string +lbl_1_data_3B1 = .data:0x000003B1; // type:object size:0x7 +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x48 +lbl_1_data_400 = .data:0x00000400; // type:object size:0x3 data:string +lbl_1_data_403 = .data:0x00000403; // type:object size:0xD +lbl_1_data_410 = .data:0x00000410; // type:object size:0x8 data:string +lbl_1_data_418 = .data:0x00000418; // type:object size:0x8 data:string +lbl_1_data_420 = .data:0x00000420; // type:object size:0x8 data:string +lbl_1_data_428 = .data:0x00000428; // type:object size:0x8 data:string +lbl_1_data_430 = .data:0x00000430; // type:object size:0x8 data:string +lbl_1_data_438 = .data:0x00000438; // type:object size:0x18 +lbl_1_data_450 = .data:0x00000450; // type:object size:0x4 data:4byte +lbl_1_data_454 = .data:0x00000454; // type:object size:0x2 data:2byte +lbl_1_data_456 = .data:0x00000456; // type:object size:0x2 data:2byte +lbl_1_data_458 = .data:0x00000458; // type:object size:0x2 data:2byte +lbl_1_data_45C = .data:0x0000045C; // type:object size:0xC +lbl_1_data_468 = .data:0x00000468; // type:object size:0x8 +lbl_1_data_470 = .data:0x00000470; // type:object size:0x20 +lbl_1_data_490 = .data:0x00000490; // type:object size:0x20 +lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0x1 data:byte +lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x14 +lbl_1_data_4C8 = .data:0x000004C8; // type:object size:0x6 +lbl_1_data_4CE = .data:0x000004CE; // type:object size:0xA +lbl_1_data_4D8 = .data:0x000004D8; // type:object size:0x2 data:2byte +lbl_1_data_4DA = .data:0x000004DA; // type:object size:0x2 data:2byte +lbl_1_data_4DC = .data:0x000004DC; // type:object size:0x2 data:2byte +lbl_1_data_4E0 = .data:0x000004E0; // type:object size:0x4 data:4byte +lbl_1_data_4E4 = .data:0x000004E4; // type:object size:0x2 data:2byte +lbl_1_data_4E6 = .data:0x000004E6; // type:object size:0xE +lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0x5 data:string +lbl_1_data_4F9 = .data:0x000004F9; // type:object size:0x6 data:string +lbl_1_data_4FF = .data:0x000004FF; // type:object size:0x9 +lbl_1_data_508 = .data:0x00000508; // type:object size:0xC +lbl_1_data_514 = .data:0x00000514; // type:object size:0x38 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x1C data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x1 data:byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0xC +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x20 +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x2 data:2byte +lbl_1_bss_6A = .bss:0x0000006A; // type:object size:0x2 data:2byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x2 data:2byte +lbl_1_bss_6E = .bss:0x0000006E; // type:object size:0x1 data:byte +lbl_1_bss_6F = .bss:0x0000006F; // type:object size:0x1 data:byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x1 data:byte +lbl_1_bss_7D = .bss:0x0000007D; // type:object size:0x1 data:byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0xA0 +lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:4byte +lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x4 data:4byte +lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x2 data:2byte +lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4 data:4byte +lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x8 +lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x8 data:4byte +lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte +lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte +lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x4 data:4byte +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x1 data:byte +lbl_1_bss_14E = .bss:0x0000014E; // type:object size:0x2 data:2byte +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x30 +lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x4 data:4byte +lbl_1_bss_184 = .bss:0x00000184; // type:object size:0x4 data:4byte +lbl_1_bss_188 = .bss:0x00000188; // type:object size:0x4 data:4byte +lbl_1_bss_18C = .bss:0x0000018C; // type:object size:0x1 data:byte +lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:4byte +lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x3 diff --git a/config/GMPJ01_00/rels/w04Dll/splits.txt b/config/GMPJ01_00/rels/w04Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/w04Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/w04Dll/symbols.txt b/config/GMPJ01_00/rels/w04Dll/symbols.txt new file mode 100644 index 00000000..662a89da --- /dev/null +++ b/config/GMPJ01_00/rels/w04Dll/symbols.txt @@ -0,0 +1,451 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x30 +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +fn_1_E0 = .text:0x000000E0; // type:function size:0x514 +fn_1_5F4 = .text:0x000005F4; // type:function size:0x15C +fn_1_750 = .text:0x00000750; // type:function size:0x44 +fn_1_794 = .text:0x00000794; // type:function size:0x4 +fn_1_798 = .text:0x00000798; // type:function size:0x64 +fn_1_7FC = .text:0x000007FC; // type:function size:0x134 +fn_1_930 = .text:0x00000930; // type:function size:0x24 +fn_1_954 = .text:0x00000954; // type:function size:0x4 +fn_1_958 = .text:0x00000958; // type:function size:0x3A0 +fn_1_CF8 = .text:0x00000CF8; // type:function size:0x38 +fn_1_D30 = .text:0x00000D30; // type:function size:0x80 +fn_1_DB0 = .text:0x00000DB0; // type:function size:0x28C +fn_1_103C = .text:0x0000103C; // type:function size:0xF4 +fn_1_1130 = .text:0x00001130; // type:function size:0x1CC +fn_1_12FC = .text:0x000012FC; // type:function size:0x2CC +fn_1_15C8 = .text:0x000015C8; // type:function size:0x50 +fn_1_1618 = .text:0x00001618; // type:function size:0x19C +fn_1_17B4 = .text:0x000017B4; // type:function size:0x168 +fn_1_191C = .text:0x0000191C; // type:function size:0x27C +fn_1_1B98 = .text:0x00001B98; // type:function size:0x94 +fn_1_1C2C = .text:0x00001C2C; // type:function size:0x234 +fn_1_1E60 = .text:0x00001E60; // type:function size:0x1A8 +fn_1_2008 = .text:0x00002008; // type:function size:0x3C +fn_1_2044 = .text:0x00002044; // type:function size:0x14 +fn_1_2058 = .text:0x00002058; // type:function size:0x94 +fn_1_20EC = .text:0x000020EC; // type:function size:0x7D0 +fn_1_28BC = .text:0x000028BC; // type:function size:0x2D0 +fn_1_2B8C = .text:0x00002B8C; // type:function size:0x84 +fn_1_2C10 = .text:0x00002C10; // type:function size:0x250 +fn_1_2E60 = .text:0x00002E60; // type:function size:0x88 +fn_1_2EE8 = .text:0x00002EE8; // type:function size:0x6C +fn_1_2F54 = .text:0x00002F54; // type:function size:0x68 +fn_1_2FBC = .text:0x00002FBC; // type:function size:0x20 +fn_1_2FDC = .text:0x00002FDC; // type:function size:0xC8 +fn_1_30A4 = .text:0x000030A4; // type:function size:0x834 +fn_1_38D8 = .text:0x000038D8; // type:function size:0x3C4 +fn_1_3C9C = .text:0x00003C9C; // type:function size:0x90C +fn_1_45A8 = .text:0x000045A8; // type:function size:0x88 +fn_1_4630 = .text:0x00004630; // type:function size:0x50 +fn_1_4680 = .text:0x00004680; // type:function size:0x1C8 +fn_1_4848 = .text:0x00004848; // type:function size:0x7D0 +fn_1_5018 = .text:0x00005018; // type:function size:0x288 +fn_1_52A0 = .text:0x000052A0; // type:function size:0x300 +fn_1_55A0 = .text:0x000055A0; // type:function size:0x14 +fn_1_55B4 = .text:0x000055B4; // type:function size:0x94 +fn_1_5648 = .text:0x00005648; // type:function size:0x1E0 +fn_1_5828 = .text:0x00005828; // type:function size:0x7C +fn_1_58A4 = .text:0x000058A4; // type:function size:0xDC +fn_1_5980 = .text:0x00005980; // type:function size:0x44 +fn_1_59C4 = .text:0x000059C4; // type:function size:0x68 +fn_1_5A2C = .text:0x00005A2C; // type:function size:0x5F8 +fn_1_6024 = .text:0x00006024; // type:function size:0x28C +fn_1_62B0 = .text:0x000062B0; // type:function size:0x628 +fn_1_68D8 = .text:0x000068D8; // type:function size:0x420 +fn_1_6CF8 = .text:0x00006CF8; // type:function size:0x608 +fn_1_7300 = .text:0x00007300; // type:function size:0x27C +fn_1_757C = .text:0x0000757C; // type:function size:0x5C +fn_1_75D8 = .text:0x000075D8; // type:function size:0x2B0 +fn_1_7888 = .text:0x00007888; // type:function size:0x11D8 +fn_1_8A60 = .text:0x00008A60; // type:function size:0xE24 +fn_1_9884 = .text:0x00009884; // type:function size:0x294 +fn_1_9B18 = .text:0x00009B18; // type:function size:0xA8 +fn_1_9BC0 = .text:0x00009BC0; // type:function size:0x3C +fn_1_9BFC = .text:0x00009BFC; // type:function size:0x290 +fn_1_9E8C = .text:0x00009E8C; // type:function size:0x14 +fn_1_9EA0 = .text:0x00009EA0; // type:function size:0x94 +fn_1_9F34 = .text:0x00009F34; // type:function size:0x124 +fn_1_A058 = .text:0x0000A058; // type:function size:0x84 +fn_1_A0DC = .text:0x0000A0DC; // type:function size:0xF8 +fn_1_A1D4 = .text:0x0000A1D4; // type:function size:0x52C +fn_1_A700 = .text:0x0000A700; // type:function size:0xCC +fn_1_A7CC = .text:0x0000A7CC; // type:function size:0x1294 +fn_1_BA60 = .text:0x0000BA60; // type:function size:0x84 +fn_1_BAE4 = .text:0x0000BAE4; // type:function size:0x7BC +fn_1_C2A0 = .text:0x0000C2A0; // type:function size:0xCC +fn_1_C36C = .text:0x0000C36C; // type:function size:0x418 +fn_1_C784 = .text:0x0000C784; // type:function size:0x34 +fn_1_C7B8 = .text:0x0000C7B8; // type:function size:0x7B8 +fn_1_CF70 = .text:0x0000CF70; // type:function size:0x120 +fn_1_D090 = .text:0x0000D090; // type:function size:0x30 +fn_1_D0C0 = .text:0x0000D0C0; // type:function size:0x98 +fn_1_D158 = .text:0x0000D158; // type:function size:0xBC +fn_1_D214 = .text:0x0000D214; // type:function size:0x74 +fn_1_D288 = .text:0x0000D288; // type:function size:0x2B0 +fn_1_D538 = .text:0x0000D538; // type:function size:0x154 +fn_1_D68C = .text:0x0000D68C; // type:function size:0x64 +fn_1_D6F0 = .text:0x0000D6F0; // type:function size:0x64 +fn_1_D754 = .text:0x0000D754; // type:function size:0x894 +fn_1_DFE8 = .text:0x0000DFE8; // type:function size:0x140 +fn_1_E128 = .text:0x0000E128; // type:function size:0x48 +fn_1_E170 = .text:0x0000E170; // type:function size:0x1E8 +fn_1_E358 = .text:0x0000E358; // type:function size:0x14C +fn_1_E4A4 = .text:0x0000E4A4; // type:function size:0x1EC +fn_1_E690 = .text:0x0000E690; // type:function size:0x1D4 +fn_1_E864 = .text:0x0000E864; // type:function size:0x18C +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0xC data:4byte +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC data:4byte +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x280 +lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:2byte +lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:2byte +lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 data:2byte +lbl_1_data_286 = .data:0x00000286; // type:object size:0x2 data:2byte +lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x8 +lbl_1_data_298 = .data:0x00000298; // type:object size:0x8 +lbl_1_data_2A0 = .data:0x000002A0; // type:object size:0xC +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x24 +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x20 +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x4 data:4byte +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20 +lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 +lbl_1_data_334 = .data:0x00000334; // type:object size:0x5 data:string +lbl_1_data_339 = .data:0x00000339; // type:object size:0x5 data:string +lbl_1_data_33E = .data:0x0000033E; // type:object size:0x5 data:string +lbl_1_data_343 = .data:0x00000343; // type:object size:0x5 data:string +lbl_1_data_348 = .data:0x00000348; // type:object size:0x10 +lbl_1_data_358 = .data:0x00000358; // type:object size:0x10 +lbl_1_data_368 = .data:0x00000368; // type:object size:0x8 data:string +lbl_1_data_370 = .data:0x00000370; // type:object size:0x12 data:string +lbl_1_data_382 = .data:0x00000382; // type:object size:0x11 data:string +lbl_1_data_393 = .data:0x00000393; // type:object size:0x15 +lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x8 data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x9 data:string +lbl_1_data_3B9 = .data:0x000003B9; // type:object size:0x6 data:string +lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x5 data:string +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x8 +lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x14 data:4byte +lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x14 +lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x20 +lbl_1_data_414 = .data:0x00000414; // type:object size:0x10 +lbl_1_data_424 = .data:0x00000424; // type:object size:0x30 data:2byte +lbl_1_data_454 = .data:0x00000454; // type:object size:0xB data:string +lbl_1_data_45F = .data:0x0000045F; // type:object size:0x2 data:string +lbl_1_data_461 = .data:0x00000461; // type:object size:0xC data:string +lbl_1_data_46D = .data:0x0000046D; // type:object size:0x1B +lbl_1_data_488 = .data:0x00000488; // type:object size:0x3 data:string +lbl_1_data_48B = .data:0x0000048B; // type:object size:0x11 +lbl_1_data_49C = .data:0x0000049C; // type:object size:0x54 +lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x6 data:string +lbl_1_data_4F6 = .data:0x000004F6; // type:object size:0x6 data:string +lbl_1_data_4FC = .data:0x000004FC; // type:object size:0x6 data:string +lbl_1_data_502 = .data:0x00000502; // type:object size:0x8 data:string +lbl_1_data_50A = .data:0x0000050A; // type:object size:0x8 data:string +lbl_1_data_512 = .data:0x00000512; // type:object size:0xA +lbl_1_data_51C = .data:0x0000051C; // type:object size:0x18 data:4byte +lbl_1_data_534 = .data:0x00000534; // type:object size:0xC +lbl_1_data_540 = .data:0x00000540; // type:object size:0x48 +lbl_1_data_588 = .data:0x00000588; // type:object size:0x4 data:4byte +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x5 data:string +lbl_1_data_591 = .data:0x00000591; // type:object size:0x5 data:string +lbl_1_data_596 = .data:0x00000596; // type:object size:0x5 data:string +lbl_1_data_59B = .data:0x0000059B; // type:object size:0x5 data:string +lbl_1_data_5A0 = .data:0x000005A0; // type:object size:0x5 data:string +lbl_1_data_5A5 = .data:0x000005A5; // type:object size:0x5 data:string +lbl_1_data_5AA = .data:0x000005AA; // type:object size:0x5 data:string +lbl_1_data_5AF = .data:0x000005AF; // type:object size:0x5 data:string +lbl_1_data_5B4 = .data:0x000005B4; // type:object size:0x8 +lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x24 data:4byte +lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0x10 +lbl_1_data_5F0 = .data:0x000005F0; // type:object size:0x20 +lbl_1_data_610 = .data:0x00000610; // type:object size:0xE data:string +lbl_1_data_61E = .data:0x0000061E; // type:object size:0xE data:string +lbl_1_data_62C = .data:0x0000062C; // type:object size:0x10 +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x3 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x24 data:2byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x2 data:2byte +lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x18 +lbl_1_bss_6A = .bss:0x0000006A; // type:object size:0x2 data:2byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x2 data:2byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x2 data:2byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x30 +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x2 data:2byte +lbl_1_bss_B2 = .bss:0x000000B2; // type:object size:0x8 +lbl_1_bss_BA = .bss:0x000000BA; // type:object size:0x8 data:2byte +lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x2 data:2byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x10 +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x10 +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x10 +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x6 data:2byte +lbl_1_bss_FA = .bss:0x000000FA; // type:object size:0x6 data:2byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0xC +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x20 +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x6 +lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x2 data:2byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0xD4 data:2byte +lbl_1_bss_210 = .bss:0x00000210; // type:object size:0x30 +lbl_1_bss_240 = .bss:0x00000240; // type:object size:0x30 +lbl_1_bss_270 = .bss:0x00000270; // type:object size:0x2 data:2byte +lbl_1_bss_272 = .bss:0x00000272; // type:object size:0x2 data:2byte +lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x2 data:2byte +lbl_1_bss_278 = .bss:0x00000278; // type:object size:0x4 data:4byte +lbl_1_bss_27C = .bss:0x0000027C; // type:object size:0x2 data:2byte +lbl_1_bss_27E = .bss:0x0000027E; // type:object size:0x2 data:2byte +lbl_1_bss_280 = .bss:0x00000280; // type:object size:0x2 data:2byte +lbl_1_bss_282 = .bss:0x00000282; // type:object size:0x6 data:2byte +lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x4 data:4byte +lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x8 data:4byte +lbl_1_bss_294 = .bss:0x00000294; // type:object size:0x4 data:float +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x6 +lbl_1_bss_29E = .bss:0x0000029E; // type:object size:0x8 +lbl_1_bss_2A6 = .bss:0x000002A6; // type:object size:0x6 +lbl_1_bss_2AC = .bss:0x000002AC; // type:object size:0x2 data:2byte +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 data:4byte +lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0xE +lbl_1_bss_2C2 = .bss:0x000002C2; // type:object size:0xE +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x28 data:2byte +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x2 data:2byte +lbl_1_bss_2FA = .bss:0x000002FA; // type:object size:0x2 data:2byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0xC +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0xC data:float +lbl_1_bss_314 = .bss:0x00000314; // type:object size:0x2 data:2byte +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0x4 data:4byte +lbl_1_bss_31C = .bss:0x0000031C; // type:object size:0x4 data:4byte +lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x4 data:4byte +lbl_1_bss_324 = .bss:0x00000324; // type:object size:0x2 data:2byte +lbl_1_bss_326 = .bss:0x00000326; // type:object size:0x2 data:2byte diff --git a/config/GMPJ01_00/rels/w05Dll/splits.txt b/config/GMPJ01_00/rels/w05Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/w05Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/w05Dll/symbols.txt b/config/GMPJ01_00/rels/w05Dll/symbols.txt new file mode 100644 index 00000000..03b04aa2 --- /dev/null +++ b/config/GMPJ01_00/rels/w05Dll/symbols.txt @@ -0,0 +1,356 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x30 +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +fn_1_E0 = .text:0x000000E0; // type:function size:0x4D8 +fn_1_5B8 = .text:0x000005B8; // type:function size:0x18C +fn_1_744 = .text:0x00000744; // type:function size:0x44 +fn_1_788 = .text:0x00000788; // type:function size:0x4 +fn_1_78C = .text:0x0000078C; // type:function size:0xA0 +fn_1_82C = .text:0x0000082C; // type:function size:0x100 +fn_1_92C = .text:0x0000092C; // type:function size:0x24 +fn_1_950 = .text:0x00000950; // type:function size:0x4 +fn_1_954 = .text:0x00000954; // type:function size:0x3F8 +fn_1_D4C = .text:0x00000D4C; // type:function size:0x38 +fn_1_D84 = .text:0x00000D84; // type:function size:0x80 +fn_1_E04 = .text:0x00000E04; // type:function size:0x3C +fn_1_E40 = .text:0x00000E40; // type:function size:0x2D4 +fn_1_1114 = .text:0x00001114; // type:function size:0xF4 +fn_1_1208 = .text:0x00001208; // type:function size:0x1CC +fn_1_13D4 = .text:0x000013D4; // type:function size:0xFC +fn_1_14D0 = .text:0x000014D0; // type:function size:0x2C +fn_1_14FC = .text:0x000014FC; // type:function size:0x60 +fn_1_155C = .text:0x0000155C; // type:function size:0x8E8 +fn_1_1E44 = .text:0x00001E44; // type:function size:0xCFC +fn_1_2B40 = .text:0x00002B40; // type:function size:0x13C +fn_1_2C7C = .text:0x00002C7C; // type:function size:0x3C8 +fn_1_3044 = .text:0x00003044; // type:function size:0x3EC +fn_1_3430 = .text:0x00003430; // type:function size:0xE4 +fn_1_3514 = .text:0x00003514; // type:function size:0x874 +fn_1_3D88 = .text:0x00003D88; // type:function size:0x104 +fn_1_3E8C = .text:0x00003E8C; // type:function size:0xE8 +fn_1_3F74 = .text:0x00003F74; // type:function size:0x64 +fn_1_3FD8 = .text:0x00003FD8; // type:function size:0x5C +fn_1_4034 = .text:0x00004034; // type:function size:0xE80 +fn_1_4EB4 = .text:0x00004EB4; // type:function size:0x794 +fn_1_5648 = .text:0x00005648; // type:function size:0x14C +fn_1_5794 = .text:0x00005794; // type:function size:0xB18 +fn_1_62AC = .text:0x000062AC; // type:function size:0x210 +fn_1_64BC = .text:0x000064BC; // type:function size:0x12C +fn_1_65E8 = .text:0x000065E8; // type:function size:0x88 +fn_1_6670 = .text:0x00006670; // type:function size:0x50 +fn_1_66C0 = .text:0x000066C0; // type:function size:0x254 +fn_1_6914 = .text:0x00006914; // type:function size:0x214 +fn_1_6B28 = .text:0x00006B28; // type:function size:0x54 +fn_1_6B7C = .text:0x00006B7C; // type:function size:0x708 +fn_1_7284 = .text:0x00007284; // type:function size:0x60 +fn_1_72E4 = .text:0x000072E4; // type:function size:0x30 +fn_1_7314 = .text:0x00007314; // type:function size:0xAC +fn_1_73C0 = .text:0x000073C0; // type:function size:0x40 +fn_1_7400 = .text:0x00007400; // type:function size:0xD0 +fn_1_74D0 = .text:0x000074D0; // type:function size:0x2E0 +fn_1_77B0 = .text:0x000077B0; // type:function size:0xF0 +fn_1_78A0 = .text:0x000078A0; // type:function size:0x88 +fn_1_7928 = .text:0x00007928; // type:function size:0x74 +fn_1_799C = .text:0x0000799C; // type:function size:0x4B0 +fn_1_7E4C = .text:0x00007E4C; // type:function size:0x48 +fn_1_7E94 = .text:0x00007E94; // type:function size:0x70 +fn_1_7F04 = .text:0x00007F04; // type:function size:0x1D4 +fn_1_80D8 = .text:0x000080D8; // type:function size:0x338 +fn_1_8410 = .text:0x00008410; // type:function size:0xFC +fn_1_850C = .text:0x0000850C; // type:function size:0x15C +fn_1_8668 = .text:0x00008668; // type:function size:0x130 +fn_1_8798 = .text:0x00008798; // type:function size:0xEC +fn_1_8884 = .text:0x00008884; // type:function size:0x34 +fn_1_88B8 = .text:0x000088B8; // type:function size:0xB4 +fn_1_896C = .text:0x0000896C; // type:function size:0x870 +fn_1_91DC = .text:0x000091DC; // type:function size:0x8C +fn_1_9268 = .text:0x00009268; // type:function size:0x418 +fn_1_9680 = .text:0x00009680; // type:function size:0x34 +fn_1_96B4 = .text:0x000096B4; // type:function size:0xAC +fn_1_9760 = .text:0x00009760; // type:function size:0x4C +fn_1_97AC = .text:0x000097AC; // type:function size:0x2BC +fn_1_9A68 = .text:0x00009A68; // type:function size:0x58 +fn_1_9AC0 = .text:0x00009AC0; // type:function size:0x30 +fn_1_9AF0 = .text:0x00009AF0; // type:function size:0x84 +fn_1_9B74 = .text:0x00009B74; // type:function size:0xB0 +fn_1_9C24 = .text:0x00009C24; // type:function size:0x74 +fn_1_9C98 = .text:0x00009C98; // type:function size:0x74 +fn_1_9D0C = .text:0x00009D0C; // type:function size:0x218 +fn_1_9F24 = .text:0x00009F24; // type:function size:0x300 +fn_1_A224 = .text:0x0000A224; // type:function size:0x2D4 +fn_1_A4F8 = .text:0x0000A4F8; // type:function size:0xB8 +fn_1_A5B0 = .text:0x0000A5B0; // type:function size:0x3E0 +fn_1_A990 = .text:0x0000A990; // type:function size:0x194 +fn_1_AB24 = .text:0x0000AB24; // type:function size:0x6F0 +fn_1_B214 = .text:0x0000B214; // type:function size:0x9C +fn_1_B2B0 = .text:0x0000B2B0; // type:function size:0x114 +fn_1_B3C4 = .text:0x0000B3C4; // type:function size:0x280 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:4byte +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x118 +lbl_1_data_118 = .data:0x00000118; // type:object size:0x2 data:2byte +lbl_1_data_11A = .data:0x0000011A; // type:object size:0x2 data:2byte +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x2 data:2byte +lbl_1_data_11E = .data:0x0000011E; // type:object size:0x2 data:2byte +lbl_1_data_120 = .data:0x00000120; // type:object size:0x2 data:2byte +lbl_1_data_124 = .data:0x00000124; // type:object size:0x20 +lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 +lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4 +lbl_1_data_150 = .data:0x00000150; // type:object size:0x14 +lbl_1_data_164 = .data:0x00000164; // type:object size:0x2 data:2byte +lbl_1_data_166 = .data:0x00000166; // type:object size:0xA +lbl_1_data_170 = .data:0x00000170; // type:object size:0x10 +lbl_1_data_180 = .data:0x00000180; // type:object size:0x4 data:4byte +lbl_1_data_184 = .data:0x00000184; // type:object size:0x4 +lbl_1_data_188 = .data:0x00000188; // type:object size:0x10 +lbl_1_data_198 = .data:0x00000198; // type:object size:0x8 +lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x8 data:string +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0xC +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x7 data:string +lbl_1_data_1BB = .data:0x000001BB; // type:object size:0x9 +lbl_1_data_1C4 = .data:0x000001C4; // type:object size:0x8 data:4byte +lbl_1_data_1CC = .data:0x000001CC; // type:object size:0xC +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x8 data:string +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x8 data:string +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0xA data:string +lbl_1_data_1F2 = .data:0x000001F2; // type:object size:0xE +lbl_1_data_200 = .data:0x00000200; // type:object size:0x8 data:string +lbl_1_data_208 = .data:0x00000208; // type:object size:0x8 data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0x6 data:string +lbl_1_data_216 = .data:0x00000216; // type:object size:0x6 data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x7 data:string +lbl_1_data_223 = .data:0x00000223; // type:object size:0x9 +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x18 +lbl_1_data_244 = .data:0x00000244; // type:object size:0x18 +lbl_1_data_25C = .data:0x0000025C; // type:object size:0x48 +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x48 +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x8 +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x1C +lbl_1_data_310 = .data:0x00000310; // type:object size:0x8 +lbl_1_data_318 = .data:0x00000318; // type:object size:0x7 data:string +lbl_1_data_31F = .data:0x0000031F; // type:object size:0x7 data:string +lbl_1_data_326 = .data:0x00000326; // type:object size:0xA +lbl_1_data_330 = .data:0x00000330; // type:object size:0xC +lbl_1_data_33C = .data:0x0000033C; // type:object size:0x7 data:string +lbl_1_data_343 = .data:0x00000343; // type:object size:0xD data:string +lbl_1_data_350 = .data:0x00000350; // type:object size:0xF0 +lbl_1_data_440 = .data:0x00000440; // type:object size:0x10 +lbl_1_data_450 = .data:0x00000450; // type:object size:0x6 data:string +lbl_1_data_456 = .data:0x00000456; // type:object size:0x7 data:string +lbl_1_data_45D = .data:0x0000045D; // type:object size:0x7 data:string +lbl_1_data_464 = .data:0x00000464; // type:object size:0xC +lbl_1_data_470 = .data:0x00000470; // type:object size:0xC +lbl_1_data_47C = .data:0x0000047C; // type:object size:0xC +lbl_1_data_488 = .data:0x00000488; // type:object size:0x3 data:string +lbl_1_data_48B = .data:0x0000048B; // type:object size:0x4 data:string +lbl_1_data_48F = .data:0x0000048F; // type:object size:0x5 +lbl_1_data_494 = .data:0x00000494; // type:object size:0xC +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0xD data:string +lbl_1_data_4AD = .data:0x000004AD; // type:object size:0x5 data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x6 +lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0xC +lbl_1_data_4C4 = .data:0x000004C4; // type:object size:0x3 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x14 data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:2byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:2byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0xC data:float +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x2 data:2byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x2 data:2byte +lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x2 data:2byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x2 data:2byte +lbl_1_bss_4E = .bss:0x0000004E; // type:object size:0xA data:2byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0xC +lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x6 +lbl_1_bss_72 = .bss:0x00000072; // type:object size:0x6 data:2byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0xC +lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte +lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte +lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte +lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x2 data:2byte +lbl_1_bss_9E = .bss:0x0000009E; // type:object size:0x2 data:2byte +lbl_1_bss_A2 = .bss:0x000000A2; // type:object size:0x2 data:2byte +lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x6 +lbl_1_bss_AA = .bss:0x000000AA; // type:object size:0x6 +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x6 +lbl_1_bss_B6 = .bss:0x000000B6; // type:object size:0x2 data:2byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x2 data:2byte +lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x2 data:2byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x2 data:2byte +lbl_1_bss_C6 = .bss:0x000000C6; // type:object size:0x2 data:2byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x2 data:2byte +lbl_1_bss_D6 = .bss:0x000000D6; // type:object size:0x28 data:2byte +lbl_1_bss_FE = .bss:0x000000FE; // type:object size:0x2 data:2byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x2 data:2byte +lbl_1_bss_102 = .bss:0x00000102; // type:object size:0x6 data:2byte diff --git a/config/GMPJ01_00/rels/w06Dll/splits.txt b/config/GMPJ01_00/rels/w06Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/w06Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/w06Dll/symbols.txt b/config/GMPJ01_00/rels/w06Dll/symbols.txt new file mode 100644 index 00000000..51c6c855 --- /dev/null +++ b/config/GMPJ01_00/rels/w06Dll/symbols.txt @@ -0,0 +1,373 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x30 +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +fn_1_E0 = .text:0x000000E0; // type:function size:0x4C4 +fn_1_5A4 = .text:0x000005A4; // type:function size:0x18C +fn_1_730 = .text:0x00000730; // type:function size:0x6C +fn_1_79C = .text:0x0000079C; // type:function size:0x20 +fn_1_7BC = .text:0x000007BC; // type:function size:0x144 +fn_1_900 = .text:0x00000900; // type:function size:0x84 +fn_1_984 = .text:0x00000984; // type:function size:0x3C +fn_1_9C0 = .text:0x000009C0; // type:function size:0x168 +fn_1_B28 = .text:0x00000B28; // type:function size:0x34 +fn_1_B5C = .text:0x00000B5C; // type:function size:0x214 +fn_1_D70 = .text:0x00000D70; // type:function size:0x1FC +fn_1_F6C = .text:0x00000F6C; // type:function size:0xE8 +fn_1_1054 = .text:0x00001054; // type:function size:0x90 +fn_1_10E4 = .text:0x000010E4; // type:function size:0x64 +fn_1_1148 = .text:0x00001148; // type:function size:0x68 +fn_1_11B0 = .text:0x000011B0; // type:function size:0xF0 +fn_1_12A0 = .text:0x000012A0; // type:function size:0x32C +fn_1_15CC = .text:0x000015CC; // type:function size:0x614 +fn_1_1BE0 = .text:0x00001BE0; // type:function size:0xD0 +fn_1_1CB0 = .text:0x00001CB0; // type:function size:0xAC +fn_1_1D5C = .text:0x00001D5C; // type:function size:0xD4 +fn_1_1E30 = .text:0x00001E30; // type:function size:0xD8 +fn_1_1F08 = .text:0x00001F08; // type:function size:0x140 +fn_1_2048 = .text:0x00002048; // type:function size:0x84 +fn_1_20CC = .text:0x000020CC; // type:function size:0xA8 +fn_1_2174 = .text:0x00002174; // type:function size:0x58 +fn_1_21CC = .text:0x000021CC; // type:function size:0x54 +fn_1_2220 = .text:0x00002220; // type:function size:0x21C +fn_1_243C = .text:0x0000243C; // type:function size:0x5E0 +fn_1_2A1C = .text:0x00002A1C; // type:function size:0x144 +fn_1_2B60 = .text:0x00002B60; // type:function size:0xB8 +fn_1_2C18 = .text:0x00002C18; // type:function size:0x178 +fn_1_2D90 = .text:0x00002D90; // type:function size:0x40 +fn_1_2DD0 = .text:0x00002DD0; // type:function size:0x48 +fn_1_2E18 = .text:0x00002E18; // type:function size:0xDC +fn_1_2EF4 = .text:0x00002EF4; // type:function size:0x57C +fn_1_3470 = .text:0x00003470; // type:function size:0xF0 +fn_1_3560 = .text:0x00003560; // type:function size:0x5C +fn_1_35BC = .text:0x000035BC; // type:function size:0x48 +fn_1_3604 = .text:0x00003604; // type:function size:0x94 +fn_1_3698 = .text:0x00003698; // type:function size:0x2DC +fn_1_3974 = .text:0x00003974; // type:function size:0x6FC +fn_1_4070 = .text:0x00004070; // type:function size:0xB4 +fn_1_4124 = .text:0x00004124; // type:function size:0x70 +fn_1_4194 = .text:0x00004194; // type:function size:0x118 +fn_1_42AC = .text:0x000042AC; // type:function size:0x130 +fn_1_43DC = .text:0x000043DC; // type:function size:0x84 +fn_1_4460 = .text:0x00004460; // type:function size:0x418 +fn_1_4878 = .text:0x00004878; // type:function size:0x198 +fn_1_4A10 = .text:0x00004A10; // type:function size:0x50 +fn_1_4A60 = .text:0x00004A60; // type:function size:0xA0 +fn_1_4B00 = .text:0x00004B00; // type:function size:0xA0 +fn_1_4BA0 = .text:0x00004BA0; // type:function size:0x58 +fn_1_4BF8 = .text:0x00004BF8; // type:function size:0x3C0 +fn_1_4FB8 = .text:0x00004FB8; // type:function size:0x1E4 +fn_1_519C = .text:0x0000519C; // type:function size:0x204 +fn_1_53A0 = .text:0x000053A0; // type:function size:0xF0 +fn_1_5490 = .text:0x00005490; // type:function size:0x23C +fn_1_56CC = .text:0x000056CC; // type:function size:0x110 +fn_1_57DC = .text:0x000057DC; // type:function size:0xA0 +fn_1_587C = .text:0x0000587C; // type:function size:0x80 +fn_1_58FC = .text:0x000058FC; // type:function size:0x6C +fn_1_5968 = .text:0x00005968; // type:function size:0x68 +fn_1_59D0 = .text:0x000059D0; // type:function size:0x13C +fn_1_5B0C = .text:0x00005B0C; // type:function size:0x48 +fn_1_5B54 = .text:0x00005B54; // type:function size:0x190 +fn_1_5CE4 = .text:0x00005CE4; // type:function size:0x1D8 +fn_1_5EBC = .text:0x00005EBC; // type:function size:0x40 +fn_1_5EFC = .text:0x00005EFC; // type:function size:0x5C +fn_1_5F58 = .text:0x00005F58; // type:function size:0x114 +fn_1_606C = .text:0x0000606C; // type:function size:0x9A0 +fn_1_6A0C = .text:0x00006A0C; // type:function size:0x240 +fn_1_6C4C = .text:0x00006C4C; // type:function size:0x244 +fn_1_6E90 = .text:0x00006E90; // type:function size:0x60 +fn_1_6EF0 = .text:0x00006EF0; // type:function size:0x90 +fn_1_6F80 = .text:0x00006F80; // type:function size:0x290 +fn_1_7210 = .text:0x00007210; // type:function size:0x94 +fn_1_72A4 = .text:0x000072A4; // type:function size:0x28 +fn_1_72CC = .text:0x000072CC; // type:function size:0x120 +fn_1_73EC = .text:0x000073EC; // type:function size:0xD0 +fn_1_74BC = .text:0x000074BC; // type:function size:0xB8 +fn_1_7574 = .text:0x00007574; // type:function size:0x100 +fn_1_7674 = .text:0x00007674; // type:function size:0xEC +fn_1_7760 = .text:0x00007760; // type:function size:0x1E4 +fn_1_7944 = .text:0x00007944; // type:function size:0x26C +fn_1_7BB0 = .text:0x00007BB0; // type:function size:0x38C +fn_1_7F3C = .text:0x00007F3C; // type:function size:0x68 +fn_1_7FA4 = .text:0x00007FA4; // type:function size:0x2C0 +fn_1_8264 = .text:0x00008264; // type:function size:0xBC +fn_1_8320 = .text:0x00008320; // type:function size:0x100 +fn_1_8420 = .text:0x00008420; // type:function size:0x70 +fn_1_8490 = .text:0x00008490; // type:function size:0x5C8 +fn_1_8A58 = .text:0x00008A58; // type:function size:0x4C8 +fn_1_8F20 = .text:0x00008F20; // type:function size:0x2B8 +fn_1_91D8 = .text:0x000091D8; // type:function size:0xBC +fn_1_9294 = .text:0x00009294; // type:function size:0x44 +fn_1_92D8 = .text:0x000092D8; // type:function size:0xF0 +fn_1_93C8 = .text:0x000093C8; // type:function size:0x10C +fn_1_94D4 = .text:0x000094D4; // type:function size:0xD8 +fn_1_95AC = .text:0x000095AC; // type:function size:0x8B0 +fn_1_9E5C = .text:0x00009E5C; // type:function size:0x5AC +fn_1_A408 = .text:0x0000A408; // type:function size:0x744 +fn_1_AB4C = .text:0x0000AB4C; // type:function size:0x730 +fn_1_B27C = .text:0x0000B27C; // type:function size:0x424 +fn_1_B6A0 = .text:0x0000B6A0; // type:function size:0x240 +fn_1_B8E0 = .text:0x0000B8E0; // type:function size:0x230 +fn_1_BB10 = .text:0x0000BB10; // type:function size:0x1F8 +fn_1_BD08 = .text:0x0000BD08; // type:function size:0x3C +fn_1_BD44 = .text:0x0000BD44; // type:function size:0x48 +fn_1_BD8C = .text:0x0000BD8C; // type:function size:0x37C +fn_1_C108 = .text:0x0000C108; // type:function size:0x1AC +fn_1_C2B4 = .text:0x0000C2B4; // type:function size:0x158 +fn_1_C40C = .text:0x0000C40C; // type:function size:0x5B0 +fn_1_C9BC = .text:0x0000C9BC; // type:function size:0xD0 +fn_1_CA8C = .text:0x0000CA8C; // type:function size:0x40 +fn_1_CACC = .text:0x0000CACC; // type:function size:0x1C4 +fn_1_CC90 = .text:0x0000CC90; // type:function size:0x7C +fn_1_CD0C = .text:0x0000CD0C; // type:function size:0x398 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:4byte +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x1 data:byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x1 data:byte +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x6 data:2byte +lbl_1_rodata_9A = .rodata:0x0000009A; // type:object size:0x1 data:byte +lbl_1_rodata_9E = .rodata:0x0000009E; // type:object size:0x6 data:2byte +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x5 +lbl_1_rodata_F5 = .rodata:0x000000F5; // type:object size:0x7 +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0xC data:4byte +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xF0 +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x2 data:2byte +lbl_1_data_F2 = .data:0x000000F2; // type:object size:0x2 data:2byte +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x2 data:2byte +lbl_1_data_F6 = .data:0x000000F6; // type:object size:0x2 data:2byte +lbl_1_data_F8 = .data:0x000000F8; // type:object size:0x8 +lbl_1_data_100 = .data:0x00000100; // type:object size:0x8 +lbl_1_data_108 = .data:0x00000108; // type:object size:0xA0 +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x2 data:2byte +lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x1 data:byte +lbl_1_data_1AD = .data:0x000001AD; // type:object size:0x3 +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2 data:2byte +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0xC +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x5 data:string +lbl_1_data_1C5 = .data:0x000001C5; // type:object size:0x13 +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x2 data:2byte +lbl_1_data_1DA = .data:0x000001DA; // type:object size:0x2 data:2byte +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x2 data:2byte +lbl_1_data_1DE = .data:0x000001DE; // type:object size:0x6 +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x24 +lbl_1_data_208 = .data:0x00000208; // type:object size:0x20 +lbl_1_data_228 = .data:0x00000228; // type:object size:0x1 data:byte +lbl_1_data_22A = .data:0x0000022A; // type:object size:0x2 data:2byte +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x2 data:2byte +lbl_1_data_230 = .data:0x00000230; // type:object size:0x38 +lbl_1_data_268 = .data:0x00000268; // type:object size:0x5 data:string +lbl_1_data_26D = .data:0x0000026D; // type:object size:0xE +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x4 +lbl_1_data_27F = .data:0x0000027F; // type:object size:0x8 +lbl_1_data_287 = .data:0x00000287; // type:object size:0x12 data:string +lbl_1_data_299 = .data:0x00000299; // type:object size:0x11 data:string +lbl_1_data_2AA = .data:0x000002AA; // type:object size:0x18 data:string +lbl_1_data_2C2 = .data:0x000002C2; // type:object size:0x17 data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x16 data:string +lbl_1_data_2EF = .data:0x000002EF; // type:object size:0x10 data:string +lbl_1_data_2FF = .data:0x000002FF; // type:object size:0x10 data:string +lbl_1_data_30F = .data:0x0000030F; // type:object size:0x11 data:string +lbl_1_data_320 = .data:0x00000320; // type:object size:0x15 data:string +lbl_1_data_335 = .data:0x00000335; // type:object size:0x15 data:string +lbl_1_data_34A = .data:0x0000034A; // type:object size:0x10 data:string +lbl_1_data_35A = .data:0x0000035A; // type:object size:0x13 data:string +lbl_1_data_36D = .data:0x0000036D; // type:object size:0x13 data:string +lbl_1_data_380 = .data:0x00000380; // type:object size:0x98 +lbl_1_data_418 = .data:0x00000418; // type:object size:0x2 data:2byte +lbl_1_data_41C = .data:0x0000041C; // type:object size:0x18 +lbl_1_data_434 = .data:0x00000434; // type:object size:0x18 +lbl_1_data_44C = .data:0x0000044C; // type:object size:0xC +lbl_1_data_458 = .data:0x00000458; // type:object size:0x20 +lbl_1_data_478 = .data:0x00000478; // type:object size:0x20 +lbl_1_data_498 = .data:0x00000498; // type:object size:0x2 data:2byte +lbl_1_data_49A = .data:0x0000049A; // type:object size:0x2 data:2byte +lbl_1_data_49C = .data:0x0000049C; // type:object size:0x2 data:2byte +lbl_1_data_49E = .data:0x0000049E; // type:object size:0x2 data:2byte +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x2 data:2byte +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x2 data:2byte +lbl_1_data_4A4 = .data:0x000004A4; // type:object size:0x8 +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x20 +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x20 +lbl_1_data_4EC = .data:0x000004EC; // type:object size:0x24 +lbl_1_data_510 = .data:0x00000510; // type:object size:0x20 +lbl_1_data_530 = .data:0x00000530; // type:object size:0x6 data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0xB data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 data:byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x1 data:byte +lbl_1_bss_33 = .bss:0x00000033; // type:object size:0x1 data:byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte +lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x6 +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC data:2byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x1 data:byte +lbl_1_bss_59 = .bss:0x00000059; // type:object size:0x1 data:byte +lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x1 data:byte +lbl_1_bss_5B = .bss:0x0000005B; // type:object size:0x31 +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x28 data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x2 data:2byte +lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x4 +lbl_1_bss_C6 = .bss:0x000000C6; // type:object size:0x1 data:byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x6 +lbl_1_bss_D6 = .bss:0x000000D6; // type:object size:0xC +lbl_1_bss_E2 = .bss:0x000000E2; // type:object size:0x2 data:2byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x2 data:2byte +lbl_1_bss_E6 = .bss:0x000000E6; // type:object size:0x1 data:byte +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x4 data:4byte +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x4 data:4byte +lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x4 data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x1 data:byte diff --git a/config/GMPJ01_00/rels/w10Dll/splits.txt b/config/GMPJ01_00/rels/w10Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/w10Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/w10Dll/symbols.txt b/config/GMPJ01_00/rels/w10Dll/symbols.txt new file mode 100644 index 00000000..c99d83da --- /dev/null +++ b/config/GMPJ01_00/rels/w10Dll/symbols.txt @@ -0,0 +1,114 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x30 +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +fn_1_E0 = .text:0x000000E0; // type:function size:0x5F8 +fn_1_6D8 = .text:0x000006D8; // type:function size:0x1E8 +fn_1_8C0 = .text:0x000008C0; // type:function size:0x44 +fn_1_904 = .text:0x00000904; // type:function size:0x4 +fn_1_908 = .text:0x00000908; // type:function size:0x4 +fn_1_90C = .text:0x0000090C; // type:function size:0x8 +fn_1_914 = .text:0x00000914; // type:function size:0x4 +fn_1_918 = .text:0x00000918; // type:function size:0x4 +fn_1_91C = .text:0x0000091C; // type:function size:0x4 +fn_1_920 = .text:0x00000920; // type:function size:0x1CC +fn_1_AEC = .text:0x00000AEC; // type:function size:0xB4 +fn_1_BA0 = .text:0x00000BA0; // type:function size:0x70 +fn_1_C10 = .text:0x00000C10; // type:function size:0x10 +fn_1_C20 = .text:0x00000C20; // type:function size:0x10C +fn_1_D2C = .text:0x00000D2C; // type:function size:0x28 +fn_1_D54 = .text:0x00000D54; // type:function size:0x28 +fn_1_D7C = .text:0x00000D7C; // type:function size:0x28 +fn_1_DA4 = .text:0x00000DA4; // type:function size:0x28 +fn_1_DCC = .text:0x00000DCC; // type:function size:0x28 +fn_1_DF4 = .text:0x00000DF4; // type:function size:0x28 +fn_1_E1C = .text:0x00000E1C; // type:function size:0x28 +fn_1_E44 = .text:0x00000E44; // type:function size:0x50 +fn_1_E94 = .text:0x00000E94; // type:function size:0x28 +fn_1_EBC = .text:0x00000EBC; // type:function size:0x28 +fn_1_EE4 = .text:0x00000EE4; // type:function size:0x4 +fn_1_EE8 = .text:0x00000EE8; // type:function size:0x48 +fn_1_F30 = .text:0x00000F30; // type:function size:0x3C +fn_1_F6C = .text:0x00000F6C; // type:function size:0x4C +fn_1_FB8 = .text:0x00000FB8; // type:function size:0x58 +fn_1_1010 = .text:0x00001010; // type:function size:0x4C +fn_1_105C = .text:0x0000105C; // type:function size:0x3C +fn_1_1098 = .text:0x00001098; // type:function size:0x28 +fn_1_10C0 = .text:0x000010C0; // type:function size:0x38 +fn_1_10F8 = .text:0x000010F8; // type:function size:0x3C +fn_1_1134 = .text:0x00001134; // type:function size:0x44 +fn_1_1178 = .text:0x00001178; // type:function size:0x28 +fn_1_11A0 = .text:0x000011A0; // type:function size:0x4C +fn_1_11EC = .text:0x000011EC; // type:function size:0x54 +fn_1_1240 = .text:0x00001240; // type:function size:0x38 +fn_1_1278 = .text:0x00001278; // type:function size:0x28 +fn_1_12A0 = .text:0x000012A0; // type:function size:0x3C +fn_1_12DC = .text:0x000012DC; // type:function size:0x28 +fn_1_1304 = .text:0x00001304; // type:function size:0x28 +fn_1_132C = .text:0x0000132C; // type:function size:0x28 +fn_1_1354 = .text:0x00001354; // type:function size:0x28 +fn_1_137C = .text:0x0000137C; // type:function size:0x28 +fn_1_13A4 = .text:0x000013A4; // type:function size:0x3C8 +fn_1_176C = .text:0x0000176C; // type:function size:0x30 +fn_1_179C = .text:0x0000179C; // type:function size:0x58 +fn_1_17F4 = .text:0x000017F4; // type:function size:0x40 +fn_1_1834 = .text:0x00001834; // type:function size:0x88 +fn_1_18BC = .text:0x000018BC; // type:function size:0x4C +fn_1_1908 = .text:0x00001908; // type:function size:0x28 +fn_1_1930 = .text:0x00001930; // type:function size:0x28 +fn_1_1958 = .text:0x00001958; // type:function size:0x28 +fn_1_1980 = .text:0x00001980; // type:function size:0x4 +fn_1_1984 = .text:0x00001984; // type:function size:0x128 +fn_1_1AAC = .text:0x00001AAC; // type:function size:0x2BC +fn_1_1D68 = .text:0x00001D68; // type:function size:0x84 +fn_1_1DEC = .text:0x00001DEC; // type:function size:0x50 +fn_1_1E3C = .text:0x00001E3C; // type:function size:0x174 +fn_1_1FB0 = .text:0x00001FB0; // type:function size:0xBC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double +lbl_1_data_0 = .data:0x00000000; // type:object size:0x28 +lbl_1_data_28 = .data:0x00000028; // type:object size:0x2 data:2byte +lbl_1_data_2A = .data:0x0000002A; // type:object size:0x2 data:2byte +lbl_1_data_2C = .data:0x0000002C; // type:object size:0x2 data:2byte +lbl_1_data_2E = .data:0x0000002E; // type:object size:0x2 data:2byte +lbl_1_data_30 = .data:0x00000030; // type:object size:0x2 data:2byte +lbl_1_data_32 = .data:0x00000032; // type:object size:0x22 data:2byte +lbl_1_data_54 = .data:0x00000054; // type:object size:0x8 +lbl_1_data_5C = .data:0x0000005C; // type:object size:0x8 +lbl_1_data_64 = .data:0x00000064; // type:object size:0x8 +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC +lbl_1_data_78 = .data:0x00000078; // type:object size:0x8 +lbl_1_data_80 = .data:0x00000080; // type:object size:0x18 +lbl_1_data_98 = .data:0x00000098; // type:object size:0x2E +lbl_1_data_C6 = .data:0x000000C6; // type:object size:0x42 +lbl_1_data_108 = .data:0x00000108; // type:object size:0x150 +lbl_1_data_258 = .data:0x00000258; // type:object size:0x50 data:string +lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x2C +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x8 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x2 data:2byte +lbl_1_bss_1E = .bss:0x0000001E; // type:object size:0x2 data:2byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte +lbl_1_bss_22 = .bss:0x00000022; // type:object size:0x16 diff --git a/config/GMPJ01_00/rels/w20Dll/splits.txt b/config/GMPJ01_00/rels/w20Dll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/w20Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/w20Dll/symbols.txt b/config/GMPJ01_00/rels/w20Dll/symbols.txt new file mode 100644 index 00000000..709c60ad --- /dev/null +++ b/config/GMPJ01_00/rels/w20Dll/symbols.txt @@ -0,0 +1,27 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x30 +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +fn_1_E0 = .text:0x000000E0; // type:function size:0x2B0 +fn_1_390 = .text:0x00000390; // type:function size:0xBC +fn_1_44C = .text:0x0000044C; // type:function size:0x44 +fn_1_490 = .text:0x00000490; // type:function size:0x4 +fn_1_494 = .text:0x00000494; // type:function size:0x4 +fn_1_498 = .text:0x00000498; // type:function size:0x8 +fn_1_4A0 = .text:0x000004A0; // type:function size:0x4 +fn_1_4A4 = .text:0x000004A4; // type:function size:0x4 +fn_1_4A8 = .text:0x000004A8; // type:function size:0x4 +fn_1_4AC = .text:0x000004AC; // type:function size:0x1CC +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_2 = .data:0x00000002; // type:object size:0x2 data:2byte +lbl_1_data_6 = .data:0x00000006; // type:object size:0x2 data:2byte +lbl_1_data_8 = .data:0x00000008; // type:object size:0x24 data:2byte +lbl_1_data_2C = .data:0x0000002C; // type:object size:0x8 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xE diff --git a/config/GMPJ01_00/rels/w21Dll/splits.txt b/config/GMPJ01_00/rels/w21Dll/splits.txt new file mode 100644 index 00000000..be323846 --- /dev/null +++ b/config/GMPJ01_00/rels/w21Dll/splits.txt @@ -0,0 +1,6 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 diff --git a/config/GMPJ01_00/rels/w21Dll/symbols.txt b/config/GMPJ01_00/rels/w21Dll/symbols.txt new file mode 100644 index 00000000..1e9f2fcb --- /dev/null +++ b/config/GMPJ01_00/rels/w21Dll/symbols.txt @@ -0,0 +1,18 @@ +fn_1_0 = .text:0x00000000; // type:function size:0x30 +_prolog = .text:0x00000030; // type:function size:0x64 scope:global +_epilog = .text:0x00000094; // type:function size:0x4C scope:global +fn_1_E0 = .text:0x000000E0; // type:function size:0x1D4 +fn_1_2B4 = .text:0x000002B4; // type:function size:0xB8 +fn_1_36C = .text:0x0000036C; // type:function size:0x44 +fn_1_3B0 = .text:0x000003B0; // type:function size:0x20 +fn_1_3D0 = .text:0x000003D0; // type:function size:0x8 +fn_1_3D8 = .text:0x000003D8; // type:function size:0x4 +fn_1_3DC = .text:0x000003DC; // type:function size:0x4 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte +lbl_1_data_2 = .data:0x00000002; // type:object size:0x2 data:2byte +lbl_1_data_4 = .data:0x00000004; // type:object size:0x2 data:2byte +lbl_1_data_8 = .data:0x00000008; // type:object size:0x8 diff --git a/config/GMPJ01_00/rels/ztardll/splits.txt b/config/GMPJ01_00/rels/ztardll/splits.txt new file mode 100644 index 00000000..531cd645 --- /dev/null +++ b/config/GMPJ01_00/rels/ztardll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/ztardll/symbols.txt b/config/GMPJ01_00/rels/ztardll/symbols.txt new file mode 100644 index 00000000..7e87352c --- /dev/null +++ b/config/GMPJ01_00/rels/ztardll/symbols.txt @@ -0,0 +1,257 @@ +_prolog = .text:0x00000000; // type:function size:0x54 scope:global +_epilog = .text:0x00000054; // type:function size:0x4C scope:global +fn_1_A0 = .text:0x000000A0; // type:function size:0x384 +fn_1_424 = .text:0x00000424; // type:function size:0x1350 +fn_1_1774 = .text:0x00001774; // type:function size:0x57C +fn_1_1CF0 = .text:0x00001CF0; // type:function size:0xB0 +fn_1_1DA0 = .text:0x00001DA0; // type:function size:0x5B0 +fn_1_2350 = .text:0x00002350; // type:function size:0x1060 +fn_1_33B0 = .text:0x000033B0; // type:function size:0xD34 +fn_1_40E4 = .text:0x000040E4; // type:function size:0x290 +fn_1_4374 = .text:0x00004374; // type:function size:0x5D4 +fn_1_4948 = .text:0x00004948; // type:function size:0x874 +fn_1_51BC = .text:0x000051BC; // type:function size:0x15C +fn_1_5318 = .text:0x00005318; // type:function size:0x14AC +fn_1_67C4 = .text:0x000067C4; // type:function size:0x10C +fn_1_68D0 = .text:0x000068D0; // type:function size:0xC10 +fn_1_74E0 = .text:0x000074E0; // type:function size:0x340 +fn_1_7820 = .text:0x00007820; // type:function size:0x47C +fn_1_7C9C = .text:0x00007C9C; // type:function size:0x16C +fn_1_7E08 = .text:0x00007E08; // type:function size:0xA0 +fn_1_7EA8 = .text:0x00007EA8; // type:function size:0x224 +fn_1_80CC = .text:0x000080CC; // type:function size:0x2DC +fn_1_83A8 = .text:0x000083A8; // type:function size:0x2C +fn_1_83D4 = .text:0x000083D4; // type:function size:0x518 +fn_1_88EC = .text:0x000088EC; // type:function size:0x2C +fn_1_8918 = .text:0x00008918; // type:function size:0x28 +fn_1_8940 = .text:0x00008940; // type:function size:0x274 +fn_1_8BB4 = .text:0x00008BB4; // type:function size:0x2C +fn_1_8BE0 = .text:0x00008BE0; // type:function size:0x2C +fn_1_8C0C = .text:0x00008C0C; // type:function size:0x24 +fn_1_8C30 = .text:0x00008C30; // type:function size:0x2BC +fn_1_8EEC = .text:0x00008EEC; // type:function size:0x500 +fn_1_93EC = .text:0x000093EC; // type:function size:0x480 +fn_1_986C = .text:0x0000986C; // type:function size:0x80C +fn_1_A078 = .text:0x0000A078; // type:function size:0x28 +fn_1_A0A0 = .text:0x0000A0A0; // type:function size:0x28 +fn_1_A0C8 = .text:0x0000A0C8; // type:function size:0x21C +fn_1_A2E4 = .text:0x0000A2E4; // type:function size:0x194 +fn_1_A478 = .text:0x0000A478; // type:function size:0x198 +fn_1_A610 = .text:0x0000A610; // type:function size:0x9C +fn_1_A6AC = .text:0x0000A6AC; // type:function size:0x2D8 +fn_1_A984 = .text:0x0000A984; // type:function size:0x2DC +fn_1_AC60 = .text:0x0000AC60; // type:function size:0x1E0 +fn_1_AE40 = .text:0x0000AE40; // type:function size:0xF0 +fn_1_AF30 = .text:0x0000AF30; // type:function size:0x50 +fn_1_AF80 = .text:0x0000AF80; // type:function size:0x584 +fn_1_B504 = .text:0x0000B504; // type:function size:0x5D8 +fn_1_BADC = .text:0x0000BADC; // type:function size:0x33C +fn_1_BE18 = .text:0x0000BE18; // type:function size:0x274 +fn_1_C08C = .text:0x0000C08C; // type:function size:0x7C +fn_1_C108 = .text:0x0000C108; // type:function size:0x44C +fn_1_C554 = .text:0x0000C554; // type:function size:0x434 +fn_1_C988 = .text:0x0000C988; // type:function size:0x204 +fn_1_CB8C = .text:0x0000CB8C; // type:function size:0x790 +fn_1_D31C = .text:0x0000D31C; // type:function size:0xB0C +fn_1_DE28 = .text:0x0000DE28; // type:function size:0x720 +fn_1_E548 = .text:0x0000E548; // type:function size:0x9C +fn_1_E5E4 = .text:0x0000E5E4; // type:function size:0xCCC +fn_1_F2B0 = .text:0x0000F2B0; // type:function size:0x924 +fn_1_FBD4 = .text:0x0000FBD4; // type:function size:0x258 +fn_1_FE2C = .text:0x0000FE2C; // type:function size:0x958 +fn_1_10784 = .text:0x00010784; // type:function size:0x7C +fn_1_10800 = .text:0x00010800; // type:function size:0x164 +fn_1_10964 = .text:0x00010964; // type:function size:0x1B8 +fn_1_10B1C = .text:0x00010B1C; // type:function size:0xA4 +fn_1_10BC0 = .text:0x00010BC0; // type:function size:0xF4 +fn_1_10CB4 = .text:0x00010CB4; // type:function size:0x80 +fn_1_10D34 = .text:0x00010D34; // type:function size:0x80 +fn_1_10DB4 = .text:0x00010DB4; // type:function size:0x28 +fn_1_10DDC = .text:0x00010DDC; // type:function size:0x20 +fn_1_10DFC = .text:0x00010DFC; // type:function size:0xD8 +fn_1_10ED4 = .text:0x00010ED4; // type:function size:0xC8 +fn_1_10F9C = .text:0x00010F9C; // type:function size:0xBC +fn_1_11058 = .text:0x00011058; // type:function size:0x40 +fn_1_11098 = .text:0x00011098; // type:function size:0x24 +fn_1_110BC = .text:0x000110BC; // type:function size:0x1C0 +fn_1_1127C = .text:0x0001127C; // type:function size:0x84 +fn_1_11300 = .text:0x00011300; // type:function size:0xD4 +fn_1_113D4 = .text:0x000113D4; // type:function size:0x58 +fn_1_1142C = .text:0x0001142C; // type:function size:0x15C +fn_1_11588 = .text:0x00011588; // type:function size:0x1C4 +fn_1_1174C = .text:0x0001174C; // type:function size:0x1AC +fn_1_118F8 = .text:0x000118F8; // type:function size:0x54 +fn_1_1194C = .text:0x0001194C; // type:function size:0x304 +fn_1_11C50 = .text:0x00011C50; // type:function size:0x304 +fn_1_11F54 = .text:0x00011F54; // type:function size:0x340 +fn_1_12294 = .text:0x00012294; // type:function size:0xC4 +_ctors = .ctors:0x00000000; // type:label scope:global data:4byte +_dtors = .dtors:0x00000000; // type:label scope:global data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x38 data:4byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 data:string +lbl_1_data_22 = .data:0x00000022; // type:object size:0xA +lbl_1_data_2C = .data:0x0000002C; // type:object size:0x18 +lbl_1_data_44 = .data:0x00000044; // type:object size:0x6 +lbl_1_data_4A = .data:0x0000004A; // type:object size:0xC +lbl_1_data_56 = .data:0x00000056; // type:object size:0xE data:wstring +lbl_1_data_64 = .data:0x00000064; // type:object size:0x20 +lbl_1_data_84 = .data:0x00000084; // type:object size:0x10 +lbl_1_data_94 = .data:0x00000094; // type:object size:0xC +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA data:string +lbl_1_data_AA = .data:0x000000AA; // type:object size:0x6 +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x4C8 +lbl_1_data_578 = .data:0x00000578; // type:object size:0x20 +lbl_1_data_598 = .data:0x00000598; // type:object size:0x20 +lbl_1_data_5B8 = .data:0x000005B8; // type:object size:0x3C data:string +lbl_1_data_5F4 = .data:0x000005F4; // type:object size:0x19 data:string +lbl_1_data_60D = .data:0x0000060D; // type:object size:0x1A data:string +lbl_1_data_627 = .data:0x00000627; // type:object size:0x3D +lbl_1_data_664 = .data:0x00000664; // type:object size:0x20 data:4byte +lbl_1_data_684 = .data:0x00000684; // type:object size:0x40 data:4byte +lbl_1_data_6C4 = .data:0x000006C4; // type:object size:0x70 +lbl_1_data_734 = .data:0x00000734; // type:object size:0x90 data:4byte +lbl_1_data_7C4 = .data:0x000007C4; // type:object size:0x20 +lbl_1_data_7E4 = .data:0x000007E4; // type:object size:0x8 data:4byte +lbl_1_data_7EC = .data:0x000007EC; // type:object size:0x10 +lbl_1_data_7FC = .data:0x000007FC; // type:object size:0x20 +lbl_1_data_81C = .data:0x0000081C; // type:object size:0x4 data:4byte +lbl_1_data_820 = .data:0x00000820; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte +lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x28 data:2byte +lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x8 data:2byte +lbl_1_bss_3E = .bss:0x0000003E; // type:object size:0x2 data:2byte +lbl_1_bss_42 = .bss:0x00000042; // type:object size:0x2 data:2byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x2 data:2byte +lbl_1_bss_46 = .bss:0x00000046; // type:object size:0x2 data:2byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x2 data:2byte +lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x2 data:2byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x2 data:2byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x2 data:2byte +lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x2 data:2byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x2 data:2byte +lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x2 data:2byte +lbl_1_bss_5E = .bss:0x0000005E; // type:object size:0x2 data:2byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x8 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x14 data:4byte +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x180 data:4byte +lbl_1_bss_20C = .bss:0x0000020C; // type:object size:0x60 data:4byte +lbl_1_bss_26C = .bss:0x0000026C; // type:object size:0x6C data:4byte diff --git a/config/GMPJ01_00/splits.txt b/config/GMPJ01_00/splits.txt new file mode 100644 index 00000000..f8a58b51 --- /dev/null +++ b/config/GMPJ01_00/splits.txt @@ -0,0 +1,14 @@ +Sections: + .init type:code align:4 + extab type:rodata align:32 + extabindex type:rodata align:32 + .text type:code align:8 + .ctors type:rodata align:16 + .dtors type:rodata align:32 + .rodata type:rodata align:32 + .data type:data align:32 + .bss type:bss align:32 + .sdata type:data align:4 + .sbss type:bss align:32 + .sdata2 type:rodata align:32 + .sbss2 type:bss align:4 diff --git a/config/GMPJ01_00/symbols.txt b/config/GMPJ01_00/symbols.txt new file mode 100644 index 00000000..b95ad54c --- /dev/null +++ b/config/GMPJ01_00/symbols.txt @@ -0,0 +1,8529 @@ +__check_pad3 = .init:0x80003100; // type:function size:0x40 scope:local +__start = .init:0x80003140; // type:function size:0x138 scope:weak +__init_registers = .init:0x80003278; // type:function size:0x1C scope:local +__init_data = .init:0x80003294; // type:function size:0xC0 scope:local +__init_hardware = .init:0x80003354; // type:function size:0x20 scope:global +__flush_cache = .init:0x80003374; // type:function size:0x34 scope:global +memset = .init:0x800033A8; // type:function size:0x30 scope:global +__fill_mem = .init:0x800033D8; // type:function size:0xB8 scope:global +memcpy = .init:0x80003490; // type:function size:0x50 scope:global +fn_800034E0 = .init:0x800034E0; // type:function size:0x30 +fn_80003510 = .init:0x80003510; // type:function size:0x24 +gTRKInterruptVectorTable = .init:0x80003534; // type:label scope:global +lbl_80003800 = .init:0x80003800; // type:label +lbl_80003C00 = .init:0x80003C00; // type:label +lbl_80003F80 = .init:0x80003F80; // type:label +fn_80005468 = .init:0x80005468; // type:function size:0x104 +gTRKInterruptVectorTableEnd = .init:0x80005468; // type:label scope:global +_rom_copy_info = .init:0x8000556C; // type:object size:0x84 scope:global data:4byte +_bss_init_info = .init:0x800055F0; // type:object size:0x20 scope:global data:4byte +@etb_80005620 = extab:0x80005620; // type:object size:0x28 scope:local hidden +@etb_80005648 = extab:0x80005648; // type:object size:0x8 scope:local hidden +@etb_80005650 = extab:0x80005650; // type:object size:0x8 scope:local hidden +@etb_80005658 = extab:0x80005658; // type:object size:0x8 scope:local hidden +@etb_80005660 = extab:0x80005660; // type:object size:0x8 scope:local hidden +@etb_80005668 = extab:0x80005668; // type:object size:0x8 scope:local hidden +@etb_80005670 = extab:0x80005670; // type:object size:0x8 scope:local hidden +@etb_80005678 = extab:0x80005678; // type:object size:0x14 scope:local hidden +@etb_8000568C = extab:0x8000568C; // type:object size:0x2C scope:local hidden +@etb_800056B8 = extab:0x800056B8; // type:object size:0x8 scope:local hidden +@etb_800056C0 = extab:0x800056C0; // type:object size:0x14 scope:local hidden +@etb_800056D4 = extab:0x800056D4; // type:object size:0x8 scope:local hidden +@etb_800056DC = extab:0x800056DC; // type:object size:0x8 scope:local hidden +@eti_80005700 = extabindex:0x80005700; // type:object size:0xC scope:local hidden +@eti_8000570C = extabindex:0x8000570C; // type:object size:0xC scope:local hidden +@eti_80005718 = extabindex:0x80005718; // type:object size:0xC scope:local hidden +@eti_80005724 = extabindex:0x80005724; // type:object size:0xC scope:local hidden +@eti_80005730 = extabindex:0x80005730; // type:object size:0xC scope:local hidden +@eti_8000573C = extabindex:0x8000573C; // type:object size:0xC scope:local hidden +@eti_80005748 = extabindex:0x80005748; // type:object size:0xC scope:local hidden +@eti_80005754 = extabindex:0x80005754; // type:object size:0xC scope:local hidden +@eti_80005760 = extabindex:0x80005760; // type:object size:0xC scope:local hidden +@eti_8000576C = extabindex:0x8000576C; // type:object size:0xC scope:local hidden +@eti_80005778 = extabindex:0x80005778; // type:object size:0xC scope:local hidden +@eti_80005784 = extabindex:0x80005784; // type:object size:0xC scope:local hidden +@eti_80005790 = extabindex:0x80005790; // type:object size:0xC scope:local hidden +_eti_init_info = extabindex:0x8000579C; // type:object size:0x20 scope:global +main = .text:0x800057C0; // type:function size:0x22C scope:global +fn_800059EC = .text:0x800059EC; // type:function size:0x38 +fn_80005A24 = .text:0x80005A24; // type:function size:0xC +fn_80005A30 = .text:0x80005A30; // type:function size:0x2C +fn_80005A5C = .text:0x80005A5C; // type:function size:0xF0 +fn_80005B4C = .text:0x80005B4C; // type:function size:0x168 +fn_80005CB4 = .text:0x80005CB4; // type:function size:0x440 +fn_800060F4 = .text:0x800060F4; // type:function size:0x234 +fn_80006328 = .text:0x80006328; // type:function size:0x54 +fn_8000637C = .text:0x8000637C; // type:function size:0x70 +fn_800063EC = .text:0x800063EC; // type:function size:0x70 +fn_8000645C = .text:0x8000645C; // type:function size:0x14 +fn_80006470 = .text:0x80006470; // type:function size:0x8 +fn_80006478 = .text:0x80006478; // type:function size:0xC +fn_80006484 = .text:0x80006484; // type:function size:0x16C +fn_800065F0 = .text:0x800065F0; // type:function size:0x1B4 +fn_800067A4 = .text:0x800067A4; // type:function size:0x170 +fn_80006914 = .text:0x80006914; // type:function size:0x16C +fn_80006A80 = .text:0x80006A80; // type:function size:0x174 +fn_80006BF4 = .text:0x80006BF4; // type:function size:0x150 +fn_80006D44 = .text:0x80006D44; // type:function size:0x38 +fn_80006D7C = .text:0x80006D7C; // type:function size:0xBC +fn_80006E38 = .text:0x80006E38; // type:function size:0xD0 +fn_80006F08 = .text:0x80006F08; // type:function size:0x74 +fn_80006F7C = .text:0x80006F7C; // type:function size:0x64 +fn_80006FE0 = .text:0x80006FE0; // type:function size:0xB8 +fn_80007098 = .text:0x80007098; // type:function size:0x224 +fn_800072BC = .text:0x800072BC; // type:function size:0x188 +fn_80007444 = .text:0x80007444; // type:function size:0xC8 +fn_8000750C = .text:0x8000750C; // type:function size:0x1A8 +fn_800076B4 = .text:0x800076B4; // type:function size:0x1A8 +fn_8000785C = .text:0x8000785C; // type:function size:0x60 +fn_800078BC = .text:0x800078BC; // type:function size:0x344 +fn_80007C00 = .text:0x80007C00; // type:function size:0x3A0 +fn_80007FA0 = .text:0x80007FA0; // type:function size:0x3C4 +fn_80008364 = .text:0x80008364; // type:function size:0x428 +fn_8000878C = .text:0x8000878C; // type:function size:0x30 +fn_800087BC = .text:0x800087BC; // type:function size:0x3FC +fn_80008BB8 = .text:0x80008BB8; // type:function size:0x104 +fn_80008CBC = .text:0x80008CBC; // type:function size:0x38 +fn_80008CF4 = .text:0x80008CF4; // type:function size:0x7C +fn_80008D70 = .text:0x80008D70; // type:function size:0xD4 +fn_80008E44 = .text:0x80008E44; // type:function size:0x130 +fn_80008F74 = .text:0x80008F74; // type:function size:0x48C +fn_80009400 = .text:0x80009400; // type:function size:0x200 +fn_80009600 = .text:0x80009600; // type:function size:0x1D8 +fn_800097D8 = .text:0x800097D8; // type:function size:0x324 +fn_80009AFC = .text:0x80009AFC; // type:function size:0x138 +fn_80009C34 = .text:0x80009C34; // type:function size:0xD0 +fn_80009D04 = .text:0x80009D04; // type:function size:0x164 +fn_80009E68 = .text:0x80009E68; // type:function size:0x13C +fn_80009FA4 = .text:0x80009FA4; // type:function size:0x54 +fn_80009FF8 = .text:0x80009FF8; // type:function size:0xE4 +fn_8000A0DC = .text:0x8000A0DC; // type:function size:0xC8 +fn_8000A1A4 = .text:0x8000A1A4; // type:function size:0x6C +fn_8000A210 = .text:0x8000A210; // type:function size:0x254 +fn_8000A464 = .text:0x8000A464; // type:function size:0x74 +fn_8000A4D8 = .text:0x8000A4D8; // type:function size:0x80 +fn_8000A558 = .text:0x8000A558; // type:function size:0x12C +fn_8000A684 = .text:0x8000A684; // type:function size:0x30 +fn_8000A6B4 = .text:0x8000A6B4; // type:function size:0x2C +fn_8000A6E0 = .text:0x8000A6E0; // type:function size:0x54 +fn_8000A734 = .text:0x8000A734; // type:function size:0x64 +fn_8000A798 = .text:0x8000A798; // type:function size:0x6C +fn_8000A804 = .text:0x8000A804; // type:function size:0x38 +fn_8000A83C = .text:0x8000A83C; // type:function size:0x54 +fn_8000A890 = .text:0x8000A890; // type:function size:0x3C +fn_8000A8CC = .text:0x8000A8CC; // type:function size:0x3C +fn_8000A908 = .text:0x8000A908; // type:function size:0x18 +fn_8000A920 = .text:0x8000A920; // type:function size:0x18 +fn_8000A938 = .text:0x8000A938; // type:function size:0x4C +fn_8000A984 = .text:0x8000A984; // type:function size:0x40 +fn_8000A9C4 = .text:0x8000A9C4; // type:function size:0x3C +fn_8000AA00 = .text:0x8000AA00; // type:function size:0x108 +fn_8000AB08 = .text:0x8000AB08; // type:function size:0x7C +fn_8000AB84 = .text:0x8000AB84; // type:function size:0x12C +fn_8000ACB0 = .text:0x8000ACB0; // type:function size:0x48 +fn_8000ACF8 = .text:0x8000ACF8; // type:function size:0x44 +fn_8000AD3C = .text:0x8000AD3C; // type:function size:0xC +fn_8000AD48 = .text:0x8000AD48; // type:function size:0x158 +fn_8000AEA0 = .text:0x8000AEA0; // type:function size:0x50 +fn_8000AEF0 = .text:0x8000AEF0; // type:function size:0x64 +fn_8000AF54 = .text:0x8000AF54; // type:function size:0xA0 +fn_8000AFF4 = .text:0x8000AFF4; // type:function size:0x15C +fn_8000B150 = .text:0x8000B150; // type:function size:0xAC +fn_8000B1FC = .text:0x8000B1FC; // type:function size:0xEE8 +fn_8000C0E4 = .text:0x8000C0E4; // type:function size:0x3C0 +fn_8000C4A4 = .text:0x8000C4A4; // type:function size:0x14 +fn_8000C4B8 = .text:0x8000C4B8; // type:function size:0x1E8 +fn_8000C6A0 = .text:0x8000C6A0; // type:function size:0x68 +fn_8000C708 = .text:0x8000C708; // type:function size:0x58 +fn_8000C760 = .text:0x8000C760; // type:function size:0x27C +fn_8000C9DC = .text:0x8000C9DC; // type:function size:0x60 +fn_8000CA3C = .text:0x8000CA3C; // type:function size:0x8 +fn_8000CA44 = .text:0x8000CA44; // type:function size:0x50 +fn_8000CA94 = .text:0x8000CA94; // type:function size:0xD4 +fn_8000CB68 = .text:0x8000CB68; // type:function size:0x2A4 +fn_8000CE0C = .text:0x8000CE0C; // type:function size:0x100 +fn_8000CF0C = .text:0x8000CF0C; // type:function size:0x80 +fn_8000CF8C = .text:0x8000CF8C; // type:function size:0x54 +fn_8000CFE0 = .text:0x8000CFE0; // type:function size:0xC +fn_8000CFEC = .text:0x8000CFEC; // type:function size:0x8 +fn_8000CFF4 = .text:0x8000CFF4; // type:function size:0x28 +fn_8000D01C = .text:0x8000D01C; // type:function size:0x184 +fn_8000D1A0 = .text:0x8000D1A0; // type:function size:0x4C +fn_8000D1EC = .text:0x8000D1EC; // type:function size:0x30 +fn_8000D21C = .text:0x8000D21C; // type:function size:0x10 +fn_8000D22C = .text:0x8000D22C; // type:function size:0x14 +fn_8000D240 = .text:0x8000D240; // type:function size:0x84 +fn_8000D2C4 = .text:0x8000D2C4; // type:function size:0x84 +fn_8000D348 = .text:0x8000D348; // type:function size:0xA0 +fn_8000D3E8 = .text:0x8000D3E8; // type:function size:0xB0 +fn_8000D498 = .text:0x8000D498; // type:function size:0x64 +fn_8000D4FC = .text:0x8000D4FC; // type:function size:0x188 +fn_8000D684 = .text:0x8000D684; // type:function size:0x14C +fn_8000D7D0 = .text:0x8000D7D0; // type:function size:0xF4 +fn_8000D8C4 = .text:0x8000D8C4; // type:function size:0x458 +fn_8000DD1C = .text:0x8000DD1C; // type:function size:0x8 +fn_8000DD24 = .text:0x8000DD24; // type:function size:0x114 +fn_8000DE38 = .text:0x8000DE38; // type:function size:0x10 +fn_8000DE48 = .text:0x8000DE48; // type:function size:0x128 +fn_8000DF70 = .text:0x8000DF70; // type:function size:0x188 +fn_8000E0F8 = .text:0x8000E0F8; // type:function size:0xF4 +fn_8000E1EC = .text:0x8000E1EC; // type:function size:0x334 +fn_8000E520 = .text:0x8000E520; // type:function size:0x8C +fn_8000E5AC = .text:0x8000E5AC; // type:function size:0xAC +fn_8000E658 = .text:0x8000E658; // type:function size:0x9C +fn_8000E6F4 = .text:0x8000E6F4; // type:function size:0x84 +fn_8000E778 = .text:0x8000E778; // type:function size:0x90 +fn_8000E808 = .text:0x8000E808; // type:function size:0xAC +fn_8000E8B4 = .text:0x8000E8B4; // type:function size:0xAC +fn_8000E960 = .text:0x8000E960; // type:function size:0x60 +fn_8000E9C0 = .text:0x8000E9C0; // type:function size:0x5C +fn_8000EA1C = .text:0x8000EA1C; // type:function size:0x60 +fn_8000EA7C = .text:0x8000EA7C; // type:function size:0x64 +fn_8000EAE0 = .text:0x8000EAE0; // type:function size:0x64 +fn_8000EB44 = .text:0x8000EB44; // type:function size:0x4C +fn_8000EB90 = .text:0x8000EB90; // type:function size:0xF0 +fn_8000EC80 = .text:0x8000EC80; // type:function size:0x9C +fn_8000ED1C = .text:0x8000ED1C; // type:function size:0x9C +fn_8000EDB8 = .text:0x8000EDB8; // type:function size:0x98 +fn_8000EE50 = .text:0x8000EE50; // type:function size:0x9C +fn_8000EEEC = .text:0x8000EEEC; // type:function size:0xC0 +fn_8000EFAC = .text:0x8000EFAC; // type:function size:0x8C +fn_8000F038 = .text:0x8000F038; // type:function size:0x50 +fn_8000F088 = .text:0x8000F088; // type:function size:0x4C +fn_8000F0D4 = .text:0x8000F0D4; // type:function size:0xAC +fn_8000F180 = .text:0x8000F180; // type:function size:0x58 +fn_8000F1D8 = .text:0x8000F1D8; // type:function size:0x1FC +fn_8000F3D4 = .text:0x8000F3D4; // type:function size:0x68 +fn_8000F43C = .text:0x8000F43C; // type:function size:0x50 +fn_8000F48C = .text:0x8000F48C; // type:function size:0x214 +fn_8000F6A0 = .text:0x8000F6A0; // type:function size:0x158 +fn_8000F7F8 = .text:0x8000F7F8; // type:function size:0xECC +fn_800106C4 = .text:0x800106C4; // type:function size:0x29C +fn_80010960 = .text:0x80010960; // type:function size:0x58 +fn_800109B8 = .text:0x800109B8; // type:function size:0x178 +fn_80010B30 = .text:0x80010B30; // type:function size:0xB0 +fn_80010BE0 = .text:0x80010BE0; // type:function size:0xA0 +fn_80010C80 = .text:0x80010C80; // type:function size:0xC8 +fn_80010D48 = .text:0x80010D48; // type:function size:0x284 +fn_80010FCC = .text:0x80010FCC; // type:function size:0x38 +fn_80011004 = .text:0x80011004; // type:function size:0x210 +fn_80011214 = .text:0x80011214; // type:function size:0xF8 +fn_8001130C = .text:0x8001130C; // type:function size:0x80 +fn_8001138C = .text:0x8001138C; // type:function size:0x130 +fn_800114BC = .text:0x800114BC; // type:function size:0x1C0 +fn_8001167C = .text:0x8001167C; // type:function size:0x128 +fn_800117A4 = .text:0x800117A4; // type:function size:0x1A8 +fn_8001194C = .text:0x8001194C; // type:function size:0x190 +fn_80011ADC = .text:0x80011ADC; // type:function size:0x7A8 +fn_80012284 = .text:0x80012284; // type:function size:0x15C +fn_800123E0 = .text:0x800123E0; // type:function size:0x464 +fn_80012844 = .text:0x80012844; // type:function size:0x198 +fn_800129DC = .text:0x800129DC; // type:function size:0x12C +fn_80012B08 = .text:0x80012B08; // type:function size:0x1E8 +fn_80012CF0 = .text:0x80012CF0; // type:function size:0x168 +fn_80012E58 = .text:0x80012E58; // type:function size:0xD0 +fn_80012F28 = .text:0x80012F28; // type:function size:0x174 +fn_8001309C = .text:0x8001309C; // type:function size:0x16C +fn_80013208 = .text:0x80013208; // type:function size:0xE8 +fn_800132F0 = .text:0x800132F0; // type:function size:0x38 +fn_80013328 = .text:0x80013328; // type:function size:0x938 +fn_80013C60 = .text:0x80013C60; // type:function size:0x80 +fn_80013CE0 = .text:0x80013CE0; // type:function size:0x94 +fn_80013D74 = .text:0x80013D74; // type:function size:0x44 +fn_80013DB8 = .text:0x80013DB8; // type:function size:0x44 +fn_80013DFC = .text:0x80013DFC; // type:function size:0x44 +fn_80013E40 = .text:0x80013E40; // type:function size:0x44 +fn_80013E84 = .text:0x80013E84; // type:function size:0x44 +fn_80013EC8 = .text:0x80013EC8; // type:function size:0x44 +fn_80013F0C = .text:0x80013F0C; // type:function size:0x44 +fn_80013F50 = .text:0x80013F50; // type:function size:0x3C +fn_80013F8C = .text:0x80013F8C; // type:function size:0x44 +fn_80013FD0 = .text:0x80013FD0; // type:function size:0x24 +fn_80013FF4 = .text:0x80013FF4; // type:function size:0x24 +fn_80014018 = .text:0x80014018; // type:function size:0xC +fn_80014024 = .text:0x80014024; // type:function size:0x1A0 +fn_800141C4 = .text:0x800141C4; // type:function size:0xEC +fn_800142B0 = .text:0x800142B0; // type:function size:0x86C +fn_80014B1C = .text:0x80014B1C; // type:function size:0x4C0 +fn_80014FDC = .text:0x80014FDC; // type:function size:0x10DC +fn_800160B8 = .text:0x800160B8; // type:function size:0x8E8 +fn_800169A0 = .text:0x800169A0; // type:function size:0x2588 +fn_80018F28 = .text:0x80018F28; // type:function size:0x164 +fn_8001908C = .text:0x8001908C; // type:function size:0x180 +fn_8001920C = .text:0x8001920C; // type:function size:0xB0 +fn_800192BC = .text:0x800192BC; // type:function size:0x280 +fn_8001953C = .text:0x8001953C; // type:function size:0x29C +fn_800197D8 = .text:0x800197D8; // type:function size:0x8C +fn_80019864 = .text:0x80019864; // type:function size:0xCC +fn_80019930 = .text:0x80019930; // type:function size:0x5E4 +fn_80019F14 = .text:0x80019F14; // type:function size:0x75C +fn_8001A670 = .text:0x8001A670; // type:function size:0x248 +fn_8001A8B8 = .text:0x8001A8B8; // type:function size:0x198 +fn_8001AA50 = .text:0x8001AA50; // type:function size:0x248 +fn_8001AC98 = .text:0x8001AC98; // type:function size:0x17C +fn_8001AE14 = .text:0x8001AE14; // type:function size:0x1B4 +fn_8001AFC8 = .text:0x8001AFC8; // type:function size:0xB00 +fn_8001BAC8 = .text:0x8001BAC8; // type:function size:0x6D0 +fn_8001C198 = .text:0x8001C198; // type:function size:0xBC +fn_8001C254 = .text:0x8001C254; // type:function size:0x438 +fn_8001C68C = .text:0x8001C68C; // type:function size:0x2A8 +fn_8001C934 = .text:0x8001C934; // type:function size:0x68 +fn_8001C99C = .text:0x8001C99C; // type:function size:0xD08 +fn_8001D6A4 = .text:0x8001D6A4; // type:function size:0x3A8 +fn_8001DA4C = .text:0x8001DA4C; // type:function size:0x2C4 +fn_8001DD10 = .text:0x8001DD10; // type:function size:0x2C8 +fn_8001DFD8 = .text:0x8001DFD8; // type:function size:0x4C +fn_8001E024 = .text:0x8001E024; // type:function size:0xF4 +fn_8001E118 = .text:0x8001E118; // type:function size:0xF0 +fn_8001E208 = .text:0x8001E208; // type:function size:0x70 +fn_8001E278 = .text:0x8001E278; // type:function size:0x1E0 +fn_8001E458 = .text:0x8001E458; // type:function size:0x190 +fn_8001E5E8 = .text:0x8001E5E8; // type:function size:0x90 +fn_8001E678 = .text:0x8001E678; // type:function size:0x318 +fn_8001E990 = .text:0x8001E990; // type:function size:0x80 +fn_8001EA10 = .text:0x8001EA10; // type:function size:0x7B0 +fn_8001F1C0 = .text:0x8001F1C0; // type:function size:0x574 +fn_8001F734 = .text:0x8001F734; // type:function size:0x158 +fn_8001F88C = .text:0x8001F88C; // type:function size:0x90 +fn_8001F91C = .text:0x8001F91C; // type:function size:0x90 +fn_8001F9AC = .text:0x8001F9AC; // type:function size:0x220 +fn_8001FBCC = .text:0x8001FBCC; // type:function size:0xD8 +fn_8001FCA4 = .text:0x8001FCA4; // type:function size:0x688 +fn_8002032C = .text:0x8002032C; // type:function size:0x158 +fn_80020484 = .text:0x80020484; // type:function size:0x18 +fn_8002049C = .text:0x8002049C; // type:function size:0x1C +fn_800204B8 = .text:0x800204B8; // type:function size:0xC +fn_800204C4 = .text:0x800204C4; // type:function size:0xC +fn_800204D0 = .text:0x800204D0; // type:function size:0x330 +fn_80020800 = .text:0x80020800; // type:function size:0x2E8 +fn_80020AE8 = .text:0x80020AE8; // type:function size:0x1C8 +fn_80020CB0 = .text:0x80020CB0; // type:function size:0x34C +fn_80020FFC = .text:0x80020FFC; // type:function size:0xD0 +fn_800210CC = .text:0x800210CC; // type:function size:0x34 +fn_80021100 = .text:0x80021100; // type:function size:0x40 +fn_80021140 = .text:0x80021140; // type:function size:0x34 +fn_80021174 = .text:0x80021174; // type:function size:0x40 +fn_800211B4 = .text:0x800211B4; // type:function size:0x34 +fn_800211E8 = .text:0x800211E8; // type:function size:0x40 +fn_80021228 = .text:0x80021228; // type:function size:0x54 +fn_8002127C = .text:0x8002127C; // type:function size:0x50 +fn_800212CC = .text:0x800212CC; // type:function size:0x2C +fn_800212F8 = .text:0x800212F8; // type:function size:0x2C +fn_80021324 = .text:0x80021324; // type:function size:0x44 +fn_80021368 = .text:0x80021368; // type:function size:0x44 +fn_800213AC = .text:0x800213AC; // type:function size:0x2C +fn_800213D8 = .text:0x800213D8; // type:function size:0x6C +fn_80021444 = .text:0x80021444; // type:function size:0xD8 +fn_8002151C = .text:0x8002151C; // type:function size:0xF8 +fn_80021614 = .text:0x80021614; // type:function size:0x98 +fn_800216AC = .text:0x800216AC; // type:function size:0xB0 +fn_8002175C = .text:0x8002175C; // type:function size:0xA0 +fn_800217FC = .text:0x800217FC; // type:function size:0x34 +fn_80021830 = .text:0x80021830; // type:function size:0x34 +fn_80021864 = .text:0x80021864; // type:function size:0x88 +fn_800218EC = .text:0x800218EC; // type:function size:0xBC +fn_800219A8 = .text:0x800219A8; // type:function size:0x34 +fn_800219DC = .text:0x800219DC; // type:function size:0xEC +fn_80021AC8 = .text:0x80021AC8; // type:function size:0xB4 +fn_80021B7C = .text:0x80021B7C; // type:function size:0xF0 +fn_80021C6C = .text:0x80021C6C; // type:function size:0x44 +fn_80021CB0 = .text:0x80021CB0; // type:function size:0x44 +fn_80021CF4 = .text:0x80021CF4; // type:function size:0xBC +fn_80021DB0 = .text:0x80021DB0; // type:function size:0x30 +fn_80021DE0 = .text:0x80021DE0; // type:function size:0x134 +fn_80021F14 = .text:0x80021F14; // type:function size:0x80 +fn_80021F94 = .text:0x80021F94; // type:function size:0x88 +fn_8002201C = .text:0x8002201C; // type:function size:0x90 +fn_800220AC = .text:0x800220AC; // type:function size:0x98 +fn_80022144 = .text:0x80022144; // type:function size:0xB8 +fn_800221FC = .text:0x800221FC; // type:function size:0x78 +fn_80022274 = .text:0x80022274; // type:function size:0xD0 +fn_80022344 = .text:0x80022344; // type:function size:0xDC +fn_80022420 = .text:0x80022420; // type:function size:0x3C0 +fn_800227E0 = .text:0x800227E0; // type:function size:0x88 +fn_80022868 = .text:0x80022868; // type:function size:0x58 +fn_800228C0 = .text:0x800228C0; // type:function size:0xD4 +fn_80022994 = .text:0x80022994; // type:function size:0x34 +fn_800229C8 = .text:0x800229C8; // type:function size:0x74 +fn_80022A3C = .text:0x80022A3C; // type:function size:0xA0 +fn_80022ADC = .text:0x80022ADC; // type:function size:0x104 +fn_80022BE0 = .text:0x80022BE0; // type:function size:0xA8 +fn_80022C88 = .text:0x80022C88; // type:function size:0x17C +fn_80022E04 = .text:0x80022E04; // type:function size:0x44 +fn_80022E48 = .text:0x80022E48; // type:function size:0x6C +fn_80022EB4 = .text:0x80022EB4; // type:function size:0x48 +fn_80022EFC = .text:0x80022EFC; // type:function size:0x70 +fn_80022F6C = .text:0x80022F6C; // type:function size:0x58 +fn_80022FC4 = .text:0x80022FC4; // type:function size:0x80 +fn_80023044 = .text:0x80023044; // type:function size:0x20 +fn_80023064 = .text:0x80023064; // type:function size:0xBC +fn_80023120 = .text:0x80023120; // type:function size:0x68 +fn_80023188 = .text:0x80023188; // type:function size:0x38 +fn_800231C0 = .text:0x800231C0; // type:function size:0x60 +fn_80023220 = .text:0x80023220; // type:function size:0x70 +fn_80023290 = .text:0x80023290; // type:function size:0x9C +fn_8002332C = .text:0x8002332C; // type:function size:0x90 +fn_800233BC = .text:0x800233BC; // type:function size:0xBC +fn_80023478 = .text:0x80023478; // type:function size:0x80 +fn_800234F8 = .text:0x800234F8; // type:function size:0xAC +fn_800235A4 = .text:0x800235A4; // type:function size:0xC4 +fn_80023668 = .text:0x80023668; // type:function size:0xF0 +fn_80023758 = .text:0x80023758; // type:function size:0x54 +fn_800237AC = .text:0x800237AC; // type:function size:0x7C +fn_80023828 = .text:0x80023828; // type:function size:0x4D0 +fn_80023CF8 = .text:0x80023CF8; // type:function size:0x130 +fn_80023E28 = .text:0x80023E28; // type:function size:0x254 +fn_8002407C = .text:0x8002407C; // type:function size:0x68 +fn_800240E4 = .text:0x800240E4; // type:function size:0x8 +fn_800240EC = .text:0x800240EC; // type:function size:0x60 +fn_8002414C = .text:0x8002414C; // type:function size:0x74 +fn_800241C0 = .text:0x800241C0; // type:function size:0x188 +fn_80024348 = .text:0x80024348; // type:function size:0x64 +fn_800243AC = .text:0x800243AC; // type:function size:0x2C +fn_800243D8 = .text:0x800243D8; // type:function size:0x78 +fn_80024450 = .text:0x80024450; // type:function size:0x860 +fn_80024CB0 = .text:0x80024CB0; // type:function size:0x130 +fn_80024DE0 = .text:0x80024DE0; // type:function size:0x60 +fn_80024E40 = .text:0x80024E40; // type:function size:0x88 +fn_80024EC8 = .text:0x80024EC8; // type:function size:0x38 +fn_80024F00 = .text:0x80024F00; // type:function size:0x1E8 +fn_800250E8 = .text:0x800250E8; // type:function size:0x48 +fn_80025130 = .text:0x80025130; // type:function size:0xA4 +fn_800251D4 = .text:0x800251D4; // type:function size:0xC4 +fn_80025298 = .text:0x80025298; // type:function size:0x114 +fn_800253AC = .text:0x800253AC; // type:function size:0x11C +fn_800254C8 = .text:0x800254C8; // type:function size:0xBC +fn_80025584 = .text:0x80025584; // type:function size:0x54 +fn_800255D8 = .text:0x800255D8; // type:function size:0x20 +fn_800255F8 = .text:0x800255F8; // type:function size:0x1C +fn_80025614 = .text:0x80025614; // type:function size:0x1C +fn_80025630 = .text:0x80025630; // type:function size:0x1C +fn_8002564C = .text:0x8002564C; // type:function size:0x1F4 +fn_80025840 = .text:0x80025840; // type:function size:0xBC +fn_800258FC = .text:0x800258FC; // type:function size:0x1C +fn_80025918 = .text:0x80025918; // type:function size:0x2C +fn_80025944 = .text:0x80025944; // type:function size:0x1C +fn_80025960 = .text:0x80025960; // type:function size:0x44 +fn_800259A4 = .text:0x800259A4; // type:function size:0x30 +fn_800259D4 = .text:0x800259D4; // type:function size:0x114 +fn_80025AE8 = .text:0x80025AE8; // type:function size:0xD0 +fn_80025BB8 = .text:0x80025BB8; // type:function size:0x20 +fn_80025BD8 = .text:0x80025BD8; // type:function size:0xC8 +fn_80025CA0 = .text:0x80025CA0; // type:function size:0x2C +fn_80025CCC = .text:0x80025CCC; // type:function size:0x2C +fn_80025CF8 = .text:0x80025CF8; // type:function size:0xF4 +fn_80025DEC = .text:0x80025DEC; // type:function size:0x2C +fn_80025E18 = .text:0x80025E18; // type:function size:0x2C +fn_80025E44 = .text:0x80025E44; // type:function size:0xA8 +fn_80025EEC = .text:0x80025EEC; // type:function size:0xA8 +fn_80025F94 = .text:0x80025F94; // type:function size:0x30 +fn_80025FC4 = .text:0x80025FC4; // type:function size:0x8C +fn_80026050 = .text:0x80026050; // type:function size:0x30 +fn_80026080 = .text:0x80026080; // type:function size:0x170 +fn_800261F0 = .text:0x800261F0; // type:function size:0x2C +fn_8002621C = .text:0x8002621C; // type:function size:0x2C +fn_80026248 = .text:0x80026248; // type:function size:0x114 +fn_8002635C = .text:0x8002635C; // type:function size:0x5C +fn_800263B8 = .text:0x800263B8; // type:function size:0x108 +fn_800264C0 = .text:0x800264C0; // type:function size:0x798 +fn_80026C58 = .text:0x80026C58; // type:function size:0x534 +fn_8002718C = .text:0x8002718C; // type:function size:0xC0 +fn_8002724C = .text:0x8002724C; // type:function size:0x2A8 +fn_800274F4 = .text:0x800274F4; // type:function size:0x14C +fn_80027640 = .text:0x80027640; // type:function size:0x208 +fn_80027848 = .text:0x80027848; // type:function size:0x218 +fn_80027A60 = .text:0x80027A60; // type:function size:0x558 +fn_80027FB8 = .text:0x80027FB8; // type:function size:0x1D8 +fn_80028190 = .text:0x80028190; // type:function size:0xD8 +fn_80028268 = .text:0x80028268; // type:function size:0x70 +fn_800282D8 = .text:0x800282D8; // type:function size:0x110 +fn_800283E8 = .text:0x800283E8; // type:function size:0x200 +fn_800285E8 = .text:0x800285E8; // type:function size:0x64 +fn_8002864C = .text:0x8002864C; // type:function size:0xCC +fn_80028718 = .text:0x80028718; // type:function size:0x124 +fn_8002883C = .text:0x8002883C; // type:function size:0x19C +fn_800289D8 = .text:0x800289D8; // type:function size:0x90 +fn_80028A68 = .text:0x80028A68; // type:function size:0x9C +fn_80028B04 = .text:0x80028B04; // type:function size:0x7C +fn_80028B80 = .text:0x80028B80; // type:function size:0x1D0 +fn_80028D50 = .text:0x80028D50; // type:function size:0x1C4 +fn_80028F14 = .text:0x80028F14; // type:function size:0x104 +fn_80029018 = .text:0x80029018; // type:function size:0x13C +fn_80029154 = .text:0x80029154; // type:function size:0x134 +fn_80029288 = .text:0x80029288; // type:function size:0x34 +fn_800292BC = .text:0x800292BC; // type:function size:0x38 +fn_800292F4 = .text:0x800292F4; // type:function size:0x2C +fn_80029320 = .text:0x80029320; // type:function size:0x48 +fn_80029368 = .text:0x80029368; // type:function size:0x38 +fn_800293A0 = .text:0x800293A0; // type:function size:0x240 +fn_800295E0 = .text:0x800295E0; // type:function size:0x474 +fn_80029A54 = .text:0x80029A54; // type:function size:0x1AC +fn_80029C00 = .text:0x80029C00; // type:function size:0xE0 +fn_80029CE0 = .text:0x80029CE0; // type:function size:0x10C +fn_80029DEC = .text:0x80029DEC; // type:function size:0x44 +fn_80029E30 = .text:0x80029E30; // type:function size:0xA4 +fn_80029ED4 = .text:0x80029ED4; // type:function size:0x3C +fn_80029F10 = .text:0x80029F10; // type:function size:0x5C +fn_80029F6C = .text:0x80029F6C; // type:function size:0x54 +fn_80029FC0 = .text:0x80029FC0; // type:function size:0x348 +fn_8002A308 = .text:0x8002A308; // type:function size:0x6C +fn_8002A374 = .text:0x8002A374; // type:function size:0x6C +fn_8002A3E0 = .text:0x8002A3E0; // type:function size:0x74 +fn_8002A454 = .text:0x8002A454; // type:function size:0x80 +fn_8002A4D4 = .text:0x8002A4D4; // type:function size:0x38 +fn_8002A50C = .text:0x8002A50C; // type:function size:0x38 +fn_8002A544 = .text:0x8002A544; // type:function size:0x40 +fn_8002A584 = .text:0x8002A584; // type:function size:0x44 +fn_8002A5C8 = .text:0x8002A5C8; // type:function size:0x3C +fn_8002A604 = .text:0x8002A604; // type:function size:0x60 +fn_8002A664 = .text:0x8002A664; // type:function size:0xAD4 +fn_8002B138 = .text:0x8002B138; // type:function size:0x48 +fn_8002B180 = .text:0x8002B180; // type:function size:0x1D4 +fn_8002B354 = .text:0x8002B354; // type:function size:0x17C +fn_8002B4D0 = .text:0x8002B4D0; // type:function size:0x190 +fn_8002B660 = .text:0x8002B660; // type:function size:0x1C4 +fn_8002B824 = .text:0x8002B824; // type:function size:0x20 +fn_8002B844 = .text:0x8002B844; // type:function size:0x3C +fn_8002B880 = .text:0x8002B880; // type:function size:0x3C +fn_8002B8BC = .text:0x8002B8BC; // type:function size:0x7C +fn_8002B938 = .text:0x8002B938; // type:function size:0x40 +fn_8002B978 = .text:0x8002B978; // type:function size:0x40 +fn_8002B9B8 = .text:0x8002B9B8; // type:function size:0x34 +fn_8002B9EC = .text:0x8002B9EC; // type:function size:0x38 +fn_8002BA24 = .text:0x8002BA24; // type:function size:0x74 +fn_8002BA98 = .text:0x8002BA98; // type:function size:0x68 +fn_8002BB00 = .text:0x8002BB00; // type:function size:0xBC0 +fn_8002C6C0 = .text:0x8002C6C0; // type:function size:0x4B4 +fn_8002CB74 = .text:0x8002CB74; // type:function size:0xAC +fn_8002CC20 = .text:0x8002CC20; // type:function size:0xA14 +fn_8002D634 = .text:0x8002D634; // type:function size:0x244 +fn_8002D878 = .text:0x8002D878; // type:function size:0x40C +fn_8002DC84 = .text:0x8002DC84; // type:function size:0x1D4 +fn_8002DE58 = .text:0x8002DE58; // type:function size:0x1D0 +fn_8002E028 = .text:0x8002E028; // type:function size:0x1C +fn_8002E044 = .text:0x8002E044; // type:function size:0x540 +fn_8002E584 = .text:0x8002E584; // type:function size:0x1C8 +fn_8002E74C = .text:0x8002E74C; // type:function size:0x94 +fn_8002E7E0 = .text:0x8002E7E0; // type:function size:0x130 +fn_8002E910 = .text:0x8002E910; // type:function size:0x40 +fn_8002E950 = .text:0x8002E950; // type:function size:0x7C +fn_8002E9CC = .text:0x8002E9CC; // type:function size:0xA0 +fn_8002EA6C = .text:0x8002EA6C; // type:function size:0x16C +fn_8002EBD8 = .text:0x8002EBD8; // type:function size:0x90 +fn_8002EC68 = .text:0x8002EC68; // type:function size:0x170 +fn_8002EDD8 = .text:0x8002EDD8; // type:function size:0xE8 +fn_8002EEC0 = .text:0x8002EEC0; // type:function size:0x60 +fn_8002EF20 = .text:0x8002EF20; // type:function size:0xF4 +fn_8002F014 = .text:0x8002F014; // type:function size:0xB8 +fn_8002F0CC = .text:0x8002F0CC; // type:function size:0xA0 +fn_8002F16C = .text:0x8002F16C; // type:function size:0x78 +fn_8002F1E4 = .text:0x8002F1E4; // type:function size:0x220 +fn_8002F404 = .text:0x8002F404; // type:function size:0x50 +fn_8002F454 = .text:0x8002F454; // type:function size:0x1DC +fn_8002F630 = .text:0x8002F630; // type:function size:0xF8 +fn_8002F728 = .text:0x8002F728; // type:function size:0x84 +fn_8002F7AC = .text:0x8002F7AC; // type:function size:0x190 +fn_8002F93C = .text:0x8002F93C; // type:function size:0x88 +fn_8002F9C4 = .text:0x8002F9C4; // type:function size:0xFC +fn_8002FAC0 = .text:0x8002FAC0; // type:function size:0x2C +fn_8002FAEC = .text:0x8002FAEC; // type:function size:0x10 +fn_8002FAFC = .text:0x8002FAFC; // type:function size:0x14 +fn_8002FB10 = .text:0x8002FB10; // type:function size:0x10 +fn_8002FB20 = .text:0x8002FB20; // type:function size:0x10 +fn_8002FB30 = .text:0x8002FB30; // type:function size:0x10 +fn_8002FB40 = .text:0x8002FB40; // type:function size:0x2F8 +fn_8002FE38 = .text:0x8002FE38; // type:function size:0xE0 +fn_8002FF18 = .text:0x8002FF18; // type:function size:0x2C +fn_8002FF44 = .text:0x8002FF44; // type:function size:0x8 +fn_8002FF4C = .text:0x8002FF4C; // type:function size:0x150 +fn_8003009C = .text:0x8003009C; // type:function size:0x118 +fn_800301B4 = .text:0x800301B4; // type:function size:0x34 +fn_800301E8 = .text:0x800301E8; // type:function size:0x98 +fn_80030280 = .text:0x80030280; // type:function size:0x50 +fn_800302D0 = .text:0x800302D0; // type:function size:0xF4 +fn_800303C4 = .text:0x800303C4; // type:function size:0x150 +fn_80030514 = .text:0x80030514; // type:function size:0x1F0 +fn_80030704 = .text:0x80030704; // type:function size:0x1B4 +fn_800308B8 = .text:0x800308B8; // type:function size:0x14C +fn_80030A04 = .text:0x80030A04; // type:function size:0x318 +fn_80030D1C = .text:0x80030D1C; // type:function size:0x4C +fn_80030D68 = .text:0x80030D68; // type:function size:0x54 +fn_80030DBC = .text:0x80030DBC; // type:function size:0x18 +fn_80030DD4 = .text:0x80030DD4; // type:function size:0x140 +fn_80030F14 = .text:0x80030F14; // type:function size:0x24 +fn_80030F38 = .text:0x80030F38; // type:function size:0x38 +fn_80030F70 = .text:0x80030F70; // type:function size:0x14 +fn_80030F84 = .text:0x80030F84; // type:function size:0x1C +fn_80030FA0 = .text:0x80030FA0; // type:function size:0x18 +fn_80030FB8 = .text:0x80030FB8; // type:function size:0x1C +fn_80030FD4 = .text:0x80030FD4; // type:function size:0x18 +fn_80030FEC = .text:0x80030FEC; // type:function size:0x5C +fn_80031048 = .text:0x80031048; // type:function size:0x1C +fn_80031064 = .text:0x80031064; // type:function size:0x20 +fn_80031084 = .text:0x80031084; // type:function size:0x6C +fn_800310F0 = .text:0x800310F0; // type:function size:0x5C +fn_8003114C = .text:0x8003114C; // type:function size:0x6C +fn_800311B8 = .text:0x800311B8; // type:function size:0x5C +fn_80031214 = .text:0x80031214; // type:function size:0x60 +fn_80031274 = .text:0x80031274; // type:function size:0x18 +fn_8003128C = .text:0x8003128C; // type:function size:0xB0 +fn_8003133C = .text:0x8003133C; // type:function size:0xD0 +fn_8003140C = .text:0x8003140C; // type:function size:0x6C +fn_80031478 = .text:0x80031478; // type:function size:0x94 +fn_8003150C = .text:0x8003150C; // type:function size:0x18 +fn_80031524 = .text:0x80031524; // type:function size:0x34 +fn_80031558 = .text:0x80031558; // type:function size:0x54 +fn_800315AC = .text:0x800315AC; // type:function size:0x10 +fn_800315BC = .text:0x800315BC; // type:function size:0x238 +fn_800317F4 = .text:0x800317F4; // type:function size:0x2C4 +fn_80031AB8 = .text:0x80031AB8; // type:function size:0x74 +fn_80031B2C = .text:0x80031B2C; // type:function size:0x230 +fn_80031D5C = .text:0x80031D5C; // type:function size:0x8 +fn_80031D64 = .text:0x80031D64; // type:function size:0x50 +fn_80031DB4 = .text:0x80031DB4; // type:function size:0x2C +fn_80031DE0 = .text:0x80031DE0; // type:function size:0x6C +fn_80031E4C = .text:0x80031E4C; // type:function size:0x154 +fn_80031FA0 = .text:0x80031FA0; // type:function size:0xB4 +fn_80032054 = .text:0x80032054; // type:function size:0x13C +fn_80032190 = .text:0x80032190; // type:function size:0x138 +fn_800322C8 = .text:0x800322C8; // type:function size:0xB4 +fn_8003237C = .text:0x8003237C; // type:function size:0xC8 +fn_80032444 = .text:0x80032444; // type:function size:0xD0 +fn_80032514 = .text:0x80032514; // type:function size:0xE0 +fn_800325F4 = .text:0x800325F4; // type:function size:0xAC +fn_800326A0 = .text:0x800326A0; // type:function size:0xD8 +fn_80032778 = .text:0x80032778; // type:function size:0xB8 +fn_80032830 = .text:0x80032830; // type:function size:0x170 +fn_800329A0 = .text:0x800329A0; // type:function size:0x8 +fn_800329A8 = .text:0x800329A8; // type:function size:0x3C +fn_800329E4 = .text:0x800329E4; // type:function size:0x24 +fn_80032A08 = .text:0x80032A08; // type:function size:0x24 +fn_80032A2C = .text:0x80032A2C; // type:function size:0x4 +fn_80032A30 = .text:0x80032A30; // type:function size:0x28 +fn_80032A58 = .text:0x80032A58; // type:function size:0x3C +fn_80032A94 = .text:0x80032A94; // type:function size:0x80 +fn_80032B14 = .text:0x80032B14; // type:function size:0x48 +fn_80032B5C = .text:0x80032B5C; // type:function size:0x68 +fn_80032BC4 = .text:0x80032BC4; // type:function size:0x2C +fn_80032BF0 = .text:0x80032BF0; // type:function size:0x28 +fn_80032C18 = .text:0x80032C18; // type:function size:0x30 +fn_80032C48 = .text:0x80032C48; // type:function size:0x50 +fn_80032C98 = .text:0x80032C98; // type:function size:0xA4 +fn_80032D3C = .text:0x80032D3C; // type:function size:0x134 +fn_80032E70 = .text:0x80032E70; // type:function size:0x3C +fn_80032EAC = .text:0x80032EAC; // type:function size:0x6C +fn_80032F18 = .text:0x80032F18; // type:function size:0x64 +fn_80032F7C = .text:0x80032F7C; // type:function size:0x20 +fn_80032F9C = .text:0x80032F9C; // type:function size:0x2C +fn_80032FC8 = .text:0x80032FC8; // type:function size:0x28 +fn_80032FF0 = .text:0x80032FF0; // type:function size:0x54 +fn_80033044 = .text:0x80033044; // type:function size:0x58 +fn_8003309C = .text:0x8003309C; // type:function size:0x5C +fn_800330F8 = .text:0x800330F8; // type:function size:0x48 +fn_80033140 = .text:0x80033140; // type:function size:0x3C +fn_8003317C = .text:0x8003317C; // type:function size:0x5C +fn_800331D8 = .text:0x800331D8; // type:function size:0x28 +fn_80033200 = .text:0x80033200; // type:function size:0x2C +fn_8003322C = .text:0x8003322C; // type:function size:0x54 +fn_80033280 = .text:0x80033280; // type:function size:0x60 +fn_800332E0 = .text:0x800332E0; // type:function size:0x64 +fn_80033344 = .text:0x80033344; // type:function size:0x38 +fn_8003337C = .text:0x8003337C; // type:function size:0x3C +fn_800333B8 = .text:0x800333B8; // type:function size:0x28 +fn_800333E0 = .text:0x800333E0; // type:function size:0x24 +fn_80033404 = .text:0x80033404; // type:function size:0x28 +fn_8003342C = .text:0x8003342C; // type:function size:0x104 +fn_80033530 = .text:0x80033530; // type:function size:0x1A4 +fn_800336D4 = .text:0x800336D4; // type:function size:0x60 +fn_80033734 = .text:0x80033734; // type:function size:0x154 +fn_80033888 = .text:0x80033888; // type:function size:0x58 +fn_800338E0 = .text:0x800338E0; // type:function size:0xC +fn_800338EC = .text:0x800338EC; // type:function size:0x294 +fn_80033B80 = .text:0x80033B80; // type:function size:0x50 +fn_80033BD0 = .text:0x80033BD0; // type:function size:0x58 +fn_80033C28 = .text:0x80033C28; // type:function size:0x50 +fn_80033C78 = .text:0x80033C78; // type:function size:0xAC +fn_80033D24 = .text:0x80033D24; // type:function size:0xD0 +fn_80033DF4 = .text:0x80033DF4; // type:function size:0x90 +fn_80033E84 = .text:0x80033E84; // type:function size:0x68 +fn_80033EEC = .text:0x80033EEC; // type:function size:0x1A4 +fn_80034090 = .text:0x80034090; // type:function size:0x23C +fn_800342CC = .text:0x800342CC; // type:function size:0x80 +fn_8003434C = .text:0x8003434C; // type:function size:0x50 +fn_8003439C = .text:0x8003439C; // type:function size:0x158 +fn_800344F4 = .text:0x800344F4; // type:function size:0x9F0 +fn_80034EE4 = .text:0x80034EE4; // type:function size:0x334 +fn_80035218 = .text:0x80035218; // type:function size:0x11C +fn_80035334 = .text:0x80035334; // type:function size:0x78 +fn_800353AC = .text:0x800353AC; // type:function size:0xBC +fn_80035468 = .text:0x80035468; // type:function size:0x188 +fn_800355F0 = .text:0x800355F0; // type:function size:0x1A4 +fn_80035794 = .text:0x80035794; // type:function size:0x100 +fn_80035894 = .text:0x80035894; // type:function size:0x88 +fn_8003591C = .text:0x8003591C; // type:function size:0x4C +fn_80035968 = .text:0x80035968; // type:function size:0x4C +fn_800359B4 = .text:0x800359B4; // type:function size:0x58 +fn_80035A0C = .text:0x80035A0C; // type:function size:0x3C +fn_80035A48 = .text:0x80035A48; // type:function size:0xA4 +fn_80035AEC = .text:0x80035AEC; // type:function size:0x4 +fn_80035AF0 = .text:0x80035AF0; // type:function size:0x8C +fn_80035B7C = .text:0x80035B7C; // type:function size:0x2E0 +fn_80035E5C = .text:0x80035E5C; // type:function size:0x69C +fn_800364F8 = .text:0x800364F8; // type:function size:0x3D8 +fn_800368D0 = .text:0x800368D0; // type:function size:0x2F8 +fn_80036BC8 = .text:0x80036BC8; // type:function size:0x188 +fn_80036D50 = .text:0x80036D50; // type:function size:0x1E4 +fn_80036F34 = .text:0x80036F34; // type:function size:0x23C +fn_80037170 = .text:0x80037170; // type:function size:0x194 +fn_80037304 = .text:0x80037304; // type:function size:0x9D0 +fn_80037CD4 = .text:0x80037CD4; // type:function size:0x2A4 +fn_80037F78 = .text:0x80037F78; // type:function size:0xDA4 +fn_80038D1C = .text:0x80038D1C; // type:function size:0xDA4 +fn_80039AC0 = .text:0x80039AC0; // type:function size:0xBB8 +fn_8003A678 = .text:0x8003A678; // type:function size:0xAB4 +fn_8003B12C = .text:0x8003B12C; // type:function size:0x3C4 +fn_8003B4F0 = .text:0x8003B4F0; // type:function size:0x91C +fn_8003BE0C = .text:0x8003BE0C; // type:function size:0xC84 +fn_8003CA90 = .text:0x8003CA90; // type:function size:0xDC +fn_8003CB6C = .text:0x8003CB6C; // type:function size:0x3DC +fn_8003CF48 = .text:0x8003CF48; // type:function size:0x6B8 +fn_8003D600 = .text:0x8003D600; // type:function size:0x708 +fn_8003DD08 = .text:0x8003DD08; // type:function size:0x774 +fn_8003E47C = .text:0x8003E47C; // type:function size:0x304 +fn_8003E780 = .text:0x8003E780; // type:function size:0x6C +fn_8003E7EC = .text:0x8003E7EC; // type:function size:0x94C +fn_8003F138 = .text:0x8003F138; // type:function size:0xC +fn_8003F144 = .text:0x8003F144; // type:function size:0x40 +fn_8003F184 = .text:0x8003F184; // type:function size:0xDC +fn_8003F260 = .text:0x8003F260; // type:function size:0x234 +fn_8003F494 = .text:0x8003F494; // type:function size:0xD4 +fn_8003F568 = .text:0x8003F568; // type:function size:0x128 +fn_8003F690 = .text:0x8003F690; // type:function size:0xA0 +fn_8003F730 = .text:0x8003F730; // type:function size:0x1B0 +fn_8003F8E0 = .text:0x8003F8E0; // type:function size:0x98 +fn_8003F978 = .text:0x8003F978; // type:function size:0x8 +fn_8003F980 = .text:0x8003F980; // type:function size:0x44 +fn_8003F9C4 = .text:0x8003F9C4; // type:function size:0x44 +fn_8003FA08 = .text:0x8003FA08; // type:function size:0x48 +fn_8003FA50 = .text:0x8003FA50; // type:function size:0x48 +fn_8003FA98 = .text:0x8003FA98; // type:function size:0x50 +fn_8003FAE8 = .text:0x8003FAE8; // type:function size:0x50 +fn_8003FB38 = .text:0x8003FB38; // type:function size:0x48 +fn_8003FB80 = .text:0x8003FB80; // type:function size:0x48 +fn_8003FBC8 = .text:0x8003FBC8; // type:function size:0x58 +fn_8003FC20 = .text:0x8003FC20; // type:function size:0x48 +fn_8003FC68 = .text:0x8003FC68; // type:function size:0x48 +fn_8003FCB0 = .text:0x8003FCB0; // type:function size:0x48 +fn_8003FCF8 = .text:0x8003FCF8; // type:function size:0x48 +fn_8003FD40 = .text:0x8003FD40; // type:function size:0x268 +fn_8003FFA8 = .text:0x8003FFA8; // type:function size:0x12C +fn_800400D4 = .text:0x800400D4; // type:function size:0x78 +fn_8004014C = .text:0x8004014C; // type:function size:0x98 +fn_800401E4 = .text:0x800401E4; // type:function size:0xF4 +fn_800402D8 = .text:0x800402D8; // type:function size:0xA8 +fn_80040380 = .text:0x80040380; // type:function size:0xA8 +fn_80040428 = .text:0x80040428; // type:function size:0x3A0 +fn_800407C8 = .text:0x800407C8; // type:function size:0x160 +fn_80040928 = .text:0x80040928; // type:function size:0x210 +fn_80040B38 = .text:0x80040B38; // type:function size:0x36C +fn_80040EA4 = .text:0x80040EA4; // type:function size:0xA4 +fn_80040F48 = .text:0x80040F48; // type:function size:0xB4 +fn_80040FFC = .text:0x80040FFC; // type:function size:0x288 +fn_80041284 = .text:0x80041284; // type:function size:0x12C +fn_800413B0 = .text:0x800413B0; // type:function size:0x28 +fn_800413D8 = .text:0x800413D8; // type:function size:0x10 +fn_800413E8 = .text:0x800413E8; // type:function size:0x8 +fn_800413F0 = .text:0x800413F0; // type:function size:0xFC +fn_800414EC = .text:0x800414EC; // type:function size:0x31C +fn_80041808 = .text:0x80041808; // type:function size:0x184 +fn_8004198C = .text:0x8004198C; // type:function size:0x4C8 +fn_80041E54 = .text:0x80041E54; // type:function size:0x74 +fn_80041EC8 = .text:0x80041EC8; // type:function size:0x214 +fn_800420DC = .text:0x800420DC; // type:function size:0x54C +fn_80042628 = .text:0x80042628; // type:function size:0xA4 +fn_800426CC = .text:0x800426CC; // type:function size:0x1AC +fn_80042878 = .text:0x80042878; // type:function size:0x7D0 +fn_80043048 = .text:0x80043048; // type:function size:0x480 +fn_800434C8 = .text:0x800434C8; // type:function size:0xF4 +fn_800435BC = .text:0x800435BC; // type:function size:0x1044 +fn_80044600 = .text:0x80044600; // type:function size:0x54 +fn_80044654 = .text:0x80044654; // type:function size:0x90 +fn_800446E4 = .text:0x800446E4; // type:function size:0xA4 +fn_80044788 = .text:0x80044788; // type:function size:0x88 +fn_80044810 = .text:0x80044810; // type:function size:0x10C +fn_8004491C = .text:0x8004491C; // type:function size:0x1A4 +fn_80044AC0 = .text:0x80044AC0; // type:function size:0x80 +fn_80044B40 = .text:0x80044B40; // type:function size:0xA90 +fn_800455D0 = .text:0x800455D0; // type:function size:0x68 +fn_80045638 = .text:0x80045638; // type:function size:0xE8 +fn_80045720 = .text:0x80045720; // type:function size:0x6C +fn_8004578C = .text:0x8004578C; // type:function size:0x6C +fn_800457F8 = .text:0x800457F8; // type:function size:0x58 +fn_80045850 = .text:0x80045850; // type:function size:0xAC +fn_800458FC = .text:0x800458FC; // type:function size:0x4C +fn_80045948 = .text:0x80045948; // type:function size:0x64 +fn_800459AC = .text:0x800459AC; // type:function size:0xB8 +fn_80045A64 = .text:0x80045A64; // type:function size:0x34 +fn_80045A98 = .text:0x80045A98; // type:function size:0x34 +fn_80045ACC = .text:0x80045ACC; // type:function size:0x2C +fn_80045AF8 = .text:0x80045AF8; // type:function size:0x3C +fn_80045B34 = .text:0x80045B34; // type:function size:0x58 +fn_80045B8C = .text:0x80045B8C; // type:function size:0x50 +fn_80045BDC = .text:0x80045BDC; // type:function size:0x60 +fn_80045C3C = .text:0x80045C3C; // type:function size:0x2C +fn_80045C68 = .text:0x80045C68; // type:function size:0xC4 +fn_80045D2C = .text:0x80045D2C; // type:function size:0xC8 +fn_80045DF4 = .text:0x80045DF4; // type:function size:0xD8 +fn_80045ECC = .text:0x80045ECC; // type:function size:0x27C +fn_80046148 = .text:0x80046148; // type:function size:0x2C +fn_80046174 = .text:0x80046174; // type:function size:0x38 +fn_800461AC = .text:0x800461AC; // type:function size:0x40 +fn_800461EC = .text:0x800461EC; // type:function size:0x50 +fn_8004623C = .text:0x8004623C; // type:function size:0x8C +fn_800462C8 = .text:0x800462C8; // type:function size:0xF0 +fn_800463B8 = .text:0x800463B8; // type:function size:0x88 +fn_80046440 = .text:0x80046440; // type:function size:0x6C +fn_800464AC = .text:0x800464AC; // type:function size:0x38 +fn_800464E4 = .text:0x800464E4; // type:function size:0x68 +fn_8004654C = .text:0x8004654C; // type:function size:0x90 +fn_800465DC = .text:0x800465DC; // type:function size:0x90 +fn_8004666C = .text:0x8004666C; // type:function size:0xC0 +fn_8004672C = .text:0x8004672C; // type:function size:0x44 +fn_80046770 = .text:0x80046770; // type:function size:0x98 +fn_80046808 = .text:0x80046808; // type:function size:0x1D4 +fn_800469DC = .text:0x800469DC; // type:function size:0x10 +fn_800469EC = .text:0x800469EC; // type:function size:0x170 +fn_80046B5C = .text:0x80046B5C; // type:function size:0x54 +fn_80046BB0 = .text:0x80046BB0; // type:function size:0x8 +fn_80046BB8 = .text:0x80046BB8; // type:function size:0x114 +fn_80046CCC = .text:0x80046CCC; // type:function size:0x2A0 +fn_80046F6C = .text:0x80046F6C; // type:function size:0x1CC +fn_80047138 = .text:0x80047138; // type:function size:0x88 +fn_800471C0 = .text:0x800471C0; // type:function size:0x2C +fn_800471EC = .text:0x800471EC; // type:function size:0x34 +fn_80047220 = .text:0x80047220; // type:function size:0x38 +fn_80047258 = .text:0x80047258; // type:function size:0x4C +fn_800472A4 = .text:0x800472A4; // type:function size:0x228 +fn_800474CC = .text:0x800474CC; // type:function size:0x3B0 +fn_8004787C = .text:0x8004787C; // type:function size:0x304 +fn_80047B80 = .text:0x80047B80; // type:function size:0xA4 +fn_80047C24 = .text:0x80047C24; // type:function size:0x264 +fn_80047E88 = .text:0x80047E88; // type:function size:0xE8 +fn_80047F70 = .text:0x80047F70; // type:function size:0x34 +fn_80047FA4 = .text:0x80047FA4; // type:function size:0xC4 +fn_80048068 = .text:0x80048068; // type:function size:0x58 +fn_800480C0 = .text:0x800480C0; // type:function size:0xEC +fn_800481AC = .text:0x800481AC; // type:function size:0x28 +fn_800481D4 = .text:0x800481D4; // type:function size:0x50 +fn_80048224 = .text:0x80048224; // type:function size:0x1C +fn_80048240 = .text:0x80048240; // type:function size:0x70 +fn_800482B0 = .text:0x800482B0; // type:function size:0x68 +fn_80048318 = .text:0x80048318; // type:function size:0x100 +fn_80048418 = .text:0x80048418; // type:function size:0x38 +fn_80048450 = .text:0x80048450; // type:function size:0x50 +fn_800484A0 = .text:0x800484A0; // type:function size:0x40 +fn_800484E0 = .text:0x800484E0; // type:function size:0x4C +fn_8004852C = .text:0x8004852C; // type:function size:0x48 +fn_80048574 = .text:0x80048574; // type:function size:0x148 +fn_800486BC = .text:0x800486BC; // type:function size:0x16C +fn_80048828 = .text:0x80048828; // type:function size:0x16C +fn_80048994 = .text:0x80048994; // type:function size:0xA8 +fn_80048A3C = .text:0x80048A3C; // type:function size:0x160 +fn_80048B9C = .text:0x80048B9C; // type:function size:0x10 +fn_80048BAC = .text:0x80048BAC; // type:function size:0x2C +fn_80048BD8 = .text:0x80048BD8; // type:function size:0x140 +fn_80048D18 = .text:0x80048D18; // type:function size:0x2C +fn_80048D44 = .text:0x80048D44; // type:function size:0x1F0 +fn_80048F34 = .text:0x80048F34; // type:function size:0x44 +fn_80048F78 = .text:0x80048F78; // type:function size:0x8 +fn_80048F80 = .text:0x80048F80; // type:function size:0x58 +fn_80048FD8 = .text:0x80048FD8; // type:function size:0x68 +fn_80049040 = .text:0x80049040; // type:function size:0x390 +fn_800493D0 = .text:0x800493D0; // type:function size:0x10 +fn_800493E0 = .text:0x800493E0; // type:function size:0x134 +fn_80049514 = .text:0x80049514; // type:function size:0x1C +fn_80049530 = .text:0x80049530; // type:function size:0x98 +fn_800495C8 = .text:0x800495C8; // type:function size:0x58 +fn_80049620 = .text:0x80049620; // type:function size:0x428 +fn_80049A48 = .text:0x80049A48; // type:function size:0x3C +fn_80049A84 = .text:0x80049A84; // type:function size:0x180 +fn_80049C04 = .text:0x80049C04; // type:function size:0x20C +fn_80049E10 = .text:0x80049E10; // type:function size:0x173C +fn_8004B54C = .text:0x8004B54C; // type:function size:0xB0 +fn_8004B5FC = .text:0x8004B5FC; // type:function size:0x254 +fn_8004B850 = .text:0x8004B850; // type:function size:0xB0 +fn_8004B900 = .text:0x8004B900; // type:function size:0xB0 +fn_8004B9B0 = .text:0x8004B9B0; // type:function size:0xB0 +fn_8004BA60 = .text:0x8004BA60; // type:function size:0xB0 +fn_8004BB10 = .text:0x8004BB10; // type:function size:0xB0 +fn_8004BBC0 = .text:0x8004BBC0; // type:function size:0xB0 +fn_8004BC70 = .text:0x8004BC70; // type:function size:0x1CC +fn_8004BE3C = .text:0x8004BE3C; // type:function size:0x4A0 +fn_8004C2DC = .text:0x8004C2DC; // type:function size:0x1E8 +fn_8004C4C4 = .text:0x8004C4C4; // type:function size:0x344 +fn_8004C808 = .text:0x8004C808; // type:function size:0x1D0 +fn_8004C9D8 = .text:0x8004C9D8; // type:function size:0x88 +fn_8004CA60 = .text:0x8004CA60; // type:function size:0x9C +fn_8004CAFC = .text:0x8004CAFC; // type:function size:0x2B8 +fn_8004CDB4 = .text:0x8004CDB4; // type:function size:0x430 +fn_8004D1E4 = .text:0x8004D1E4; // type:function size:0x244 +fn_8004D428 = .text:0x8004D428; // type:function size:0x7C +fn_8004D4A4 = .text:0x8004D4A4; // type:function size:0x17C +fn_8004D620 = .text:0x8004D620; // type:function size:0x7C +fn_8004D69C = .text:0x8004D69C; // type:function size:0x7C +fn_8004D718 = .text:0x8004D718; // type:function size:0x4C +fn_8004D764 = .text:0x8004D764; // type:function size:0x44 +fn_8004D7A8 = .text:0x8004D7A8; // type:function size:0x44 +fn_8004D7EC = .text:0x8004D7EC; // type:function size:0x44 +fn_8004D830 = .text:0x8004D830; // type:function size:0x44 +fn_8004D874 = .text:0x8004D874; // type:function size:0x84 +fn_8004D8F8 = .text:0x8004D8F8; // type:function size:0x44 +fn_8004D93C = .text:0x8004D93C; // type:function size:0x4C +fn_8004D988 = .text:0x8004D988; // type:function size:0x80 +fn_8004DA08 = .text:0x8004DA08; // type:function size:0x1D4 +fn_8004DBDC = .text:0x8004DBDC; // type:function size:0x484 +fn_8004E060 = .text:0x8004E060; // type:function size:0x3FC +fn_8004E45C = .text:0x8004E45C; // type:function size:0x168 +fn_8004E5C4 = .text:0x8004E5C4; // type:function size:0x1A0 +fn_8004E764 = .text:0x8004E764; // type:function size:0x130 +fn_8004E894 = .text:0x8004E894; // type:function size:0x2B4 +fn_8004EB48 = .text:0x8004EB48; // type:function size:0xE4 +fn_8004EC2C = .text:0x8004EC2C; // type:function size:0x2B4 +fn_8004EEE0 = .text:0x8004EEE0; // type:function size:0x80 +fn_8004EF60 = .text:0x8004EF60; // type:function size:0xBC +fn_8004F01C = .text:0x8004F01C; // type:function size:0x4C +fn_8004F068 = .text:0x8004F068; // type:function size:0xB0 +fn_8004F118 = .text:0x8004F118; // type:function size:0x2CC +fn_8004F3E4 = .text:0x8004F3E4; // type:function size:0x2CC +fn_8004F6B0 = .text:0x8004F6B0; // type:function size:0xF80 +fn_80050630 = .text:0x80050630; // type:function size:0x30 +fn_80050660 = .text:0x80050660; // type:function size:0xEC +fn_8005074C = .text:0x8005074C; // type:function size:0x1B8 +fn_80050904 = .text:0x80050904; // type:function size:0x110 +fn_80050A14 = .text:0x80050A14; // type:function size:0x2A8 +fn_80050CBC = .text:0x80050CBC; // type:function size:0x38C +fn_80051048 = .text:0x80051048; // type:function size:0x470 +fn_800514B8 = .text:0x800514B8; // type:function size:0x5D4 +fn_80051A8C = .text:0x80051A8C; // type:function size:0xF4 +fn_80051B80 = .text:0x80051B80; // type:function size:0x388 +fn_80051F08 = .text:0x80051F08; // type:function size:0x148 +fn_80052050 = .text:0x80052050; // type:function size:0x518 +fn_80052568 = .text:0x80052568; // type:function size:0x994 +fn_80052EFC = .text:0x80052EFC; // type:function size:0xC28 +fn_80053B24 = .text:0x80053B24; // type:function size:0x43C +fn_80053F60 = .text:0x80053F60; // type:function size:0x100 +fn_80054060 = .text:0x80054060; // type:function size:0x19C +fn_800541FC = .text:0x800541FC; // type:function size:0x4C +fn_80054248 = .text:0x80054248; // type:function size:0x184 +fn_800543CC = .text:0x800543CC; // type:function size:0x124 +fn_800544F0 = .text:0x800544F0; // type:function size:0x124 +fn_80054614 = .text:0x80054614; // type:function size:0x54 +fn_80054668 = .text:0x80054668; // type:function size:0x408 +fn_80054A70 = .text:0x80054A70; // type:function size:0xC0 +fn_80054B30 = .text:0x80054B30; // type:function size:0x184 +fn_80054CB4 = .text:0x80054CB4; // type:function size:0x240 +fn_80054EF4 = .text:0x80054EF4; // type:function size:0x2A4 +fn_80055198 = .text:0x80055198; // type:function size:0x2A4 +fn_8005543C = .text:0x8005543C; // type:function size:0x14 +fn_80055450 = .text:0x80055450; // type:function size:0x14 +fn_80055464 = .text:0x80055464; // type:function size:0x1B8 +fn_8005561C = .text:0x8005561C; // type:function size:0x47C +fn_80055A98 = .text:0x80055A98; // type:function size:0xD8 +fn_80055B70 = .text:0x80055B70; // type:function size:0x104 +fn_80055C74 = .text:0x80055C74; // type:function size:0x5F8 +fn_8005626C = .text:0x8005626C; // type:function size:0x58 +fn_800562C4 = .text:0x800562C4; // type:function size:0x2C +fn_800562F0 = .text:0x800562F0; // type:function size:0x188 +fn_80056478 = .text:0x80056478; // type:function size:0x17C +fn_800565F4 = .text:0x800565F4; // type:function size:0x130 +fn_80056724 = .text:0x80056724; // type:function size:0x5A0 +fn_80056CC4 = .text:0x80056CC4; // type:function size:0x288 +fn_80056F4C = .text:0x80056F4C; // type:function size:0x108 +fn_80057054 = .text:0x80057054; // type:function size:0x110 +fn_80057164 = .text:0x80057164; // type:function size:0xF8 +fn_8005725C = .text:0x8005725C; // type:function size:0x100 +fn_8005735C = .text:0x8005735C; // type:function size:0xC +fn_80057368 = .text:0x80057368; // type:function size:0xC +fn_80057374 = .text:0x80057374; // type:function size:0xC +fn_80057380 = .text:0x80057380; // type:function size:0x54 +fn_800573D4 = .text:0x800573D4; // type:function size:0x8 +fn_800573DC = .text:0x800573DC; // type:function size:0x20 +fn_800573FC = .text:0x800573FC; // type:function size:0x30 +fn_8005742C = .text:0x8005742C; // type:function size:0x27C +fn_800576A8 = .text:0x800576A8; // type:function size:0xA4 +fn_8005774C = .text:0x8005774C; // type:function size:0x17C +fn_800578C8 = .text:0x800578C8; // type:function size:0x4C +fn_80057914 = .text:0x80057914; // type:function size:0x5C +fn_80057970 = .text:0x80057970; // type:function size:0xF4 +fn_80057A64 = .text:0x80057A64; // type:function size:0x9C +fn_80057B00 = .text:0x80057B00; // type:function size:0xA0 +fn_80057BA0 = .text:0x80057BA0; // type:function size:0xA4 +fn_80057C44 = .text:0x80057C44; // type:function size:0xA4 +fn_80057CE8 = .text:0x80057CE8; // type:function size:0x30 +fn_80057D18 = .text:0x80057D18; // type:function size:0x140 +fn_80057E58 = .text:0x80057E58; // type:function size:0x280 +fn_800580D8 = .text:0x800580D8; // type:function size:0x10C +fn_800581E4 = .text:0x800581E4; // type:function size:0x84 +fn_80058268 = .text:0x80058268; // type:function size:0x4C +fn_800582B4 = .text:0x800582B4; // type:function size:0x8 +fn_800582BC = .text:0x800582BC; // type:function size:0xC +fn_800582C8 = .text:0x800582C8; // type:function size:0x40 +fn_80058308 = .text:0x80058308; // type:function size:0x8 +fn_80058310 = .text:0x80058310; // type:function size:0x154 +fn_80058464 = .text:0x80058464; // type:function size:0x2A0 +fn_80058704 = .text:0x80058704; // type:function size:0x2DC +fn_800589E0 = .text:0x800589E0; // type:function size:0x8C +fn_80058A6C = .text:0x80058A6C; // type:function size:0x8C +fn_80058AF8 = .text:0x80058AF8; // type:function size:0x370 +fn_80058E68 = .text:0x80058E68; // type:function size:0xDC +fn_80058F44 = .text:0x80058F44; // type:function size:0x48 +fn_80058F8C = .text:0x80058F8C; // type:function size:0x110 +fn_8005909C = .text:0x8005909C; // type:function size:0x38 +fn_800590D4 = .text:0x800590D4; // type:function size:0x1A0 +fn_80059274 = .text:0x80059274; // type:function size:0x184 +fn_800593F8 = .text:0x800593F8; // type:function size:0x28 +fn_80059420 = .text:0x80059420; // type:function size:0xA0 +fn_800594C0 = .text:0x800594C0; // type:function size:0x60 +fn_80059520 = .text:0x80059520; // type:function size:0x54 +fn_80059574 = .text:0x80059574; // type:function size:0x90 +fn_80059604 = .text:0x80059604; // type:function size:0x1D4 +fn_800597D8 = .text:0x800597D8; // type:function size:0x12C +fn_80059904 = .text:0x80059904; // type:function size:0x624 +fn_80059F28 = .text:0x80059F28; // type:function size:0x3FC +fn_8005A324 = .text:0x8005A324; // type:function size:0x50 +fn_8005A374 = .text:0x8005A374; // type:function size:0x28 +fn_8005A39C = .text:0x8005A39C; // type:function size:0x1F4 +fn_8005A590 = .text:0x8005A590; // type:function size:0xD8 +fn_8005A668 = .text:0x8005A668; // type:function size:0x128 +fn_8005A790 = .text:0x8005A790; // type:function size:0x2D0 +fn_8005AA60 = .text:0x8005AA60; // type:function size:0xDC +fn_8005AB3C = .text:0x8005AB3C; // type:function size:0xFC +fn_8005AC38 = .text:0x8005AC38; // type:function size:0xCC +fn_8005AD04 = .text:0x8005AD04; // type:function size:0x78 +fn_8005AD7C = .text:0x8005AD7C; // type:function size:0x2E0 +fn_8005B05C = .text:0x8005B05C; // type:function size:0x64 +fn_8005B0C0 = .text:0x8005B0C0; // type:function size:0x9C +fn_8005B15C = .text:0x8005B15C; // type:function size:0xCC +fn_8005B228 = .text:0x8005B228; // type:function size:0xAC +fn_8005B2D4 = .text:0x8005B2D4; // type:function size:0x48 +fn_8005B31C = .text:0x8005B31C; // type:function size:0x74 +fn_8005B390 = .text:0x8005B390; // type:function size:0x48 +fn_8005B3D8 = .text:0x8005B3D8; // type:function size:0x524 +fn_8005B8FC = .text:0x8005B8FC; // type:function size:0x160 +fn_8005BA5C = .text:0x8005BA5C; // type:function size:0x160 +fn_8005BBBC = .text:0x8005BBBC; // type:function size:0xC +fn_8005BBC8 = .text:0x8005BBC8; // type:function size:0x7D0 +fn_8005C398 = .text:0x8005C398; // type:function size:0x8C +fn_8005C424 = .text:0x8005C424; // type:function size:0x28C +fn_8005C6B0 = .text:0x8005C6B0; // type:function size:0xC4 +fn_8005C774 = .text:0x8005C774; // type:function size:0x8C +fn_8005C800 = .text:0x8005C800; // type:function size:0x410 +fn_8005CC10 = .text:0x8005CC10; // type:function size:0x128 +fn_8005CD38 = .text:0x8005CD38; // type:function size:0xC +fn_8005CD44 = .text:0x8005CD44; // type:function size:0x44 +fn_8005CD88 = .text:0x8005CD88; // type:function size:0x50 +fn_8005CDD8 = .text:0x8005CDD8; // type:function size:0x3C +fn_8005CE14 = .text:0x8005CE14; // type:function size:0x48 +fn_8005CE5C = .text:0x8005CE5C; // type:function size:0x54 +fn_8005CEB0 = .text:0x8005CEB0; // type:function size:0x2AC +fn_8005D15C = .text:0x8005D15C; // type:function size:0x48 +fn_8005D1A4 = .text:0x8005D1A4; // type:function size:0x48 +fn_8005D1EC = .text:0x8005D1EC; // type:function size:0x48 +fn_8005D234 = .text:0x8005D234; // type:function size:0x20 +fn_8005D254 = .text:0x8005D254; // type:function size:0xA8 +fn_8005D2FC = .text:0x8005D2FC; // type:function size:0xBC +fn_8005D3B8 = .text:0x8005D3B8; // type:function size:0x28 +fn_8005D3E0 = .text:0x8005D3E0; // type:function size:0x50 +fn_8005D430 = .text:0x8005D430; // type:function size:0x30 +fn_8005D460 = .text:0x8005D460; // type:function size:0xB4 +fn_8005D514 = .text:0x8005D514; // type:function size:0x40 +fn_8005D554 = .text:0x8005D554; // type:function size:0x44 +fn_8005D598 = .text:0x8005D598; // type:function size:0x28 +fn_8005D5C0 = .text:0x8005D5C0; // type:function size:0x3C +fn_8005D5FC = .text:0x8005D5FC; // type:function size:0x3C +fn_8005D638 = .text:0x8005D638; // type:function size:0x28 +fn_8005D660 = .text:0x8005D660; // type:function size:0x28 +fn_8005D688 = .text:0x8005D688; // type:function size:0x24 +fn_8005D6AC = .text:0x8005D6AC; // type:function size:0x20 +fn_8005D6CC = .text:0x8005D6CC; // type:function size:0x24 +fn_8005D6F0 = .text:0x8005D6F0; // type:function size:0x24 +fn_8005D714 = .text:0x8005D714; // type:function size:0x3C +fn_8005D750 = .text:0x8005D750; // type:function size:0x48 +fn_8005D798 = .text:0x8005D798; // type:function size:0x230 +fn_8005D9C8 = .text:0x8005D9C8; // type:function size:0x20 +fn_8005D9E8 = .text:0x8005D9E8; // type:function size:0x2BC +fn_8005DCA4 = .text:0x8005DCA4; // type:function size:0x48 +fn_8005DCEC = .text:0x8005DCEC; // type:function size:0x58 +fn_8005DD44 = .text:0x8005DD44; // type:function size:0x24C +fn_8005DF90 = .text:0x8005DF90; // type:function size:0x350 +fn_8005E2E0 = .text:0x8005E2E0; // type:function size:0xE4 +fn_8005E3C4 = .text:0x8005E3C4; // type:function size:0x764 +fn_8005EB28 = .text:0x8005EB28; // type:function size:0x48 +fn_8005EB70 = .text:0x8005EB70; // type:function size:0x48 +fn_8005EBB8 = .text:0x8005EBB8; // type:function size:0x170 +fn_8005ED28 = .text:0x8005ED28; // type:function size:0x60 +fn_8005ED88 = .text:0x8005ED88; // type:function size:0xC4 +fn_8005EE4C = .text:0x8005EE4C; // type:function size:0x74 +fn_8005EEC0 = .text:0x8005EEC0; // type:function size:0x28 +fn_8005EEE8 = .text:0x8005EEE8; // type:function size:0x28 +fn_8005EF10 = .text:0x8005EF10; // type:function size:0x48 +fn_8005EF58 = .text:0x8005EF58; // type:function size:0x10C +fn_8005F064 = .text:0x8005F064; // type:function size:0x330 +fn_8005F394 = .text:0x8005F394; // type:function size:0x390 +fn_8005F724 = .text:0x8005F724; // type:function size:0x24 +fn_8005F748 = .text:0x8005F748; // type:function size:0x24 +fn_8005F76C = .text:0x8005F76C; // type:function size:0x50 +fn_8005F7BC = .text:0x8005F7BC; // type:function size:0x58 +fn_8005F814 = .text:0x8005F814; // type:function size:0x134 +fn_8005F948 = .text:0x8005F948; // type:function size:0x15C +fn_8005FAA4 = .text:0x8005FAA4; // type:function size:0x7C +fn_8005FB20 = .text:0x8005FB20; // type:function size:0x34 +fn_8005FB54 = .text:0x8005FB54; // type:function size:0x1C0 +fn_8005FD14 = .text:0x8005FD14; // type:function size:0x6C +fn_8005FD80 = .text:0x8005FD80; // type:function size:0xD4 +fn_8005FE54 = .text:0x8005FE54; // type:function size:0x174 +fn_8005FFC8 = .text:0x8005FFC8; // type:function size:0x5C +fn_80060024 = .text:0x80060024; // type:function size:0x34 +fn_80060058 = .text:0x80060058; // type:function size:0x178 +fn_800601D0 = .text:0x800601D0; // type:function size:0x350 +fn_80060520 = .text:0x80060520; // type:function size:0x164 +fn_80060684 = .text:0x80060684; // type:function size:0x24 +fn_800606A8 = .text:0x800606A8; // type:function size:0x88 +fn_80060730 = .text:0x80060730; // type:function size:0xB8 +fn_800607E8 = .text:0x800607E8; // type:function size:0x564 +fn_80060D4C = .text:0x80060D4C; // type:function size:0x14C +fn_80060E98 = .text:0x80060E98; // type:function size:0x254 +fn_800610EC = .text:0x800610EC; // type:function size:0x278 +fn_80061364 = .text:0x80061364; // type:function size:0x2AC +fn_80061610 = .text:0x80061610; // type:function size:0xAC +fn_800616BC = .text:0x800616BC; // type:function size:0x80 +fn_8006173C = .text:0x8006173C; // type:function size:0x54 +fn_80061790 = .text:0x80061790; // type:function size:0x3A4 +fn_80061B34 = .text:0x80061B34; // type:function size:0x38 +fn_80061B6C = .text:0x80061B6C; // type:function size:0x48 +fn_80061BB4 = .text:0x80061BB4; // type:function size:0xC +fn_80061BC0 = .text:0x80061BC0; // type:function size:0xC +fn_80061BCC = .text:0x80061BCC; // type:function size:0x78 +fn_80061C44 = .text:0x80061C44; // type:function size:0x78 +fn_80061CBC = .text:0x80061CBC; // type:function size:0x80 +fn_80061D3C = .text:0x80061D3C; // type:function size:0x16C +fn_80061EA8 = .text:0x80061EA8; // type:function size:0x588 +fn_80062430 = .text:0x80062430; // type:function size:0xFC +fn_8006252C = .text:0x8006252C; // type:function size:0x84 +fn_800625B0 = .text:0x800625B0; // type:function size:0x80 +fn_80062630 = .text:0x80062630; // type:function size:0x80 +fn_800626B0 = .text:0x800626B0; // type:function size:0xB4 +fn_80062764 = .text:0x80062764; // type:function size:0xB0 +fn_80062814 = .text:0x80062814; // type:function size:0xB4 +fn_800628C8 = .text:0x800628C8; // type:function size:0x58 +fn_80062920 = .text:0x80062920; // type:function size:0x60 +fn_80062980 = .text:0x80062980; // type:function size:0x40 +fn_800629C0 = .text:0x800629C0; // type:function size:0xC4 +fn_80062A84 = .text:0x80062A84; // type:function size:0x90 +fn_80062B14 = .text:0x80062B14; // type:function size:0x80 +fn_80062B94 = .text:0x80062B94; // type:function size:0x9C +fn_80062C30 = .text:0x80062C30; // type:function size:0xCC +fn_80062CFC = .text:0x80062CFC; // type:function size:0x80 +fn_80062D7C = .text:0x80062D7C; // type:function size:0x9C +fn_80062E18 = .text:0x80062E18; // type:function size:0xCC +fn_80062EE4 = .text:0x80062EE4; // type:function size:0x80 +fn_80062F64 = .text:0x80062F64; // type:function size:0xD4 +fn_80063038 = .text:0x80063038; // type:function size:0xA8 +fn_800630E0 = .text:0x800630E0; // type:function size:0x80 +fn_80063160 = .text:0x80063160; // type:function size:0x90 +fn_800631F0 = .text:0x800631F0; // type:function size:0x80 +fn_80063270 = .text:0x80063270; // type:function size:0x44 +fn_800632B4 = .text:0x800632B4; // type:function size:0x88 +fn_8006333C = .text:0x8006333C; // type:function size:0x80 +fn_800633BC = .text:0x800633BC; // type:function size:0x80 +fn_8006343C = .text:0x8006343C; // type:function size:0x78 +fn_800634B4 = .text:0x800634B4; // type:function size:0x88 +fn_8006353C = .text:0x8006353C; // type:function size:0xD0 +fn_8006360C = .text:0x8006360C; // type:function size:0xE0 +fn_800636EC = .text:0x800636EC; // type:function size:0x80 +fn_8006376C = .text:0x8006376C; // type:function size:0x80 +fn_800637EC = .text:0x800637EC; // type:function size:0x78 +fn_80063864 = .text:0x80063864; // type:function size:0x78 +fn_800638DC = .text:0x800638DC; // type:function size:0xA0 +fn_8006397C = .text:0x8006397C; // type:function size:0x80 +fn_800639FC = .text:0x800639FC; // type:function size:0x80 +fn_80063A7C = .text:0x80063A7C; // type:function size:0x34 +fn_80063AB0 = .text:0x80063AB0; // type:function size:0x2C +fn_80063ADC = .text:0x80063ADC; // type:function size:0x9C +fn_80063B78 = .text:0x80063B78; // type:function size:0x48 +fn_80063BC0 = .text:0x80063BC0; // type:function size:0x16C +fn_80063D2C = .text:0x80063D2C; // type:function size:0x40 +fn_80063D6C = .text:0x80063D6C; // type:function size:0x7C +fn_80063DE8 = .text:0x80063DE8; // type:function size:0x7C +fn_80063E64 = .text:0x80063E64; // type:function size:0xC4 +fn_80063F28 = .text:0x80063F28; // type:function size:0x18 +fn_80063F40 = .text:0x80063F40; // type:function size:0x18 +fn_80063F58 = .text:0x80063F58; // type:function size:0x15C +fn_800640B4 = .text:0x800640B4; // type:function size:0x160 +fn_80064214 = .text:0x80064214; // type:function size:0x420 +fn_80064634 = .text:0x80064634; // type:function size:0x80 +fn_800646B4 = .text:0x800646B4; // type:function size:0x18C +fn_80064840 = .text:0x80064840; // type:function size:0x134 +fn_80064974 = .text:0x80064974; // type:function size:0x10 +fn_80064984 = .text:0x80064984; // type:function size:0x10 +fn_80064994 = .text:0x80064994; // type:function size:0xC +fn_800649A0 = .text:0x800649A0; // type:function size:0x634 +fn_80064FD4 = .text:0x80064FD4; // type:function size:0x1A0 +fn_80065174 = .text:0x80065174; // type:function size:0x70 +fn_800651E4 = .text:0x800651E4; // type:function size:0x180 +fn_80065364 = .text:0x80065364; // type:function size:0x114 +fn_80065478 = .text:0x80065478; // type:function size:0x8E8 +fn_80065D60 = .text:0x80065D60; // type:function size:0xBF8 +fn_80066958 = .text:0x80066958; // type:function size:0xBC +fn_80066A14 = .text:0x80066A14; // type:function size:0x90 +fn_80066AA4 = .text:0x80066AA4; // type:function size:0x90 +fn_80066B34 = .text:0x80066B34; // type:function size:0x430 +fn_80066F64 = .text:0x80066F64; // type:function size:0x218 +fn_8006717C = .text:0x8006717C; // type:function size:0x1D4 +fn_80067350 = .text:0x80067350; // type:function size:0x54 +fn_800673A4 = .text:0x800673A4; // type:function size:0x3E4 +fn_80067788 = .text:0x80067788; // type:function size:0xF8 +fn_80067880 = .text:0x80067880; // type:function size:0x5A0 +fn_80067E20 = .text:0x80067E20; // type:function size:0x51C +fn_8006833C = .text:0x8006833C; // type:function size:0x2C +fn_80068368 = .text:0x80068368; // type:function size:0x138 +fn_800684A0 = .text:0x800684A0; // type:function size:0x38 +fn_800684D8 = .text:0x800684D8; // type:function size:0x10C +fn_800685E4 = .text:0x800685E4; // type:function size:0x194 +fn_80068778 = .text:0x80068778; // type:function size:0x278 +fn_800689F0 = .text:0x800689F0; // type:function size:0x6C +fn_80068A5C = .text:0x80068A5C; // type:function size:0x9C +fn_80068AF8 = .text:0x80068AF8; // type:function size:0x40 +fn_80068B38 = .text:0x80068B38; // type:function size:0x1C +fn_80068B54 = .text:0x80068B54; // type:function size:0x224 +fn_80068D78 = .text:0x80068D78; // type:function size:0x40 +fn_80068DB8 = .text:0x80068DB8; // type:function size:0x100 +fn_80068EB8 = .text:0x80068EB8; // type:function size:0x1A4 +fn_8006905C = .text:0x8006905C; // type:function size:0x128 +fn_80069184 = .text:0x80069184; // type:function size:0x8 +fn_8006918C = .text:0x8006918C; // type:function size:0x8 +fn_80069194 = .text:0x80069194; // type:function size:0x74 +fn_80069208 = .text:0x80069208; // type:function size:0x54 +fn_8006925C = .text:0x8006925C; // type:function size:0x4C +fn_800692A8 = .text:0x800692A8; // type:function size:0x44 +fn_800692EC = .text:0x800692EC; // type:function size:0x44 +fn_80069330 = .text:0x80069330; // type:function size:0x44 +fn_80069374 = .text:0x80069374; // type:function size:0x1F0 +fn_80069564 = .text:0x80069564; // type:function size:0x5C +fn_800695C0 = .text:0x800695C0; // type:function size:0x1294 +fn_8006A854 = .text:0x8006A854; // type:function size:0xA0 +fn_8006A8F4 = .text:0x8006A8F4; // type:function size:0x24C +fn_8006AB40 = .text:0x8006AB40; // type:function size:0x8 +fn_8006AB48 = .text:0x8006AB48; // type:function size:0x38C +fn_8006AED4 = .text:0x8006AED4; // type:function size:0x950 +fn_8006B824 = .text:0x8006B824; // type:function size:0x980 +fn_8006C1A4 = .text:0x8006C1A4; // type:function size:0xA48 +fn_8006CBEC = .text:0x8006CBEC; // type:function size:0x24C +fn_8006CE38 = .text:0x8006CE38; // type:function size:0xC0 +fn_8006CEF8 = .text:0x8006CEF8; // type:function size:0xF0 +fn_8006CFE8 = .text:0x8006CFE8; // type:function size:0xA0 +fn_8006D088 = .text:0x8006D088; // type:function size:0x70 +fn_8006D0F8 = .text:0x8006D0F8; // type:function size:0x4 +fn_8006D0FC = .text:0x8006D0FC; // type:function size:0xCC +fn_8006D1C8 = .text:0x8006D1C8; // type:function size:0x90 +fn_8006D258 = .text:0x8006D258; // type:function size:0x70 +fn_8006D2C8 = .text:0x8006D2C8; // type:function size:0x7C +fn_8006D344 = .text:0x8006D344; // type:function size:0x250 +fn_8006D594 = .text:0x8006D594; // type:function size:0x40 +fn_8006D5D4 = .text:0x8006D5D4; // type:function size:0x44 +fn_8006D618 = .text:0x8006D618; // type:function size:0x168 +fn_8006D780 = .text:0x8006D780; // type:function size:0x44 +fn_8006D7C4 = .text:0x8006D7C4; // type:function size:0x48 +fn_8006D80C = .text:0x8006D80C; // type:function size:0x60 +fn_8006D86C = .text:0x8006D86C; // type:function size:0x74 +fn_8006D8E0 = .text:0x8006D8E0; // type:function size:0x68 +fn_8006D948 = .text:0x8006D948; // type:function size:0x48 +fn_8006D990 = .text:0x8006D990; // type:function size:0x48 +fn_8006D9D8 = .text:0x8006D9D8; // type:function size:0x70 +fn_8006DA48 = .text:0x8006DA48; // type:function size:0x140 +fn_8006DB88 = .text:0x8006DB88; // type:function size:0x118 +fn_8006DCA0 = .text:0x8006DCA0; // type:function size:0xE8 +fn_8006DD88 = .text:0x8006DD88; // type:function size:0x7C +fn_8006DE04 = .text:0x8006DE04; // type:function size:0xA4 +fn_8006DEA8 = .text:0x8006DEA8; // type:function size:0x174 +fn_8006E01C = .text:0x8006E01C; // type:function size:0x50 +fn_8006E06C = .text:0x8006E06C; // type:function size:0x148 +fn_8006E1B4 = .text:0x8006E1B4; // type:function size:0x58 +fn_8006E20C = .text:0x8006E20C; // type:function size:0x58 +fn_8006E264 = .text:0x8006E264; // type:function size:0x84 +fn_8006E2E8 = .text:0x8006E2E8; // type:function size:0x94 +fn_8006E37C = .text:0x8006E37C; // type:function size:0x88 +fn_8006E404 = .text:0x8006E404; // type:function size:0x64 +fn_8006E468 = .text:0x8006E468; // type:function size:0xA4 +fn_8006E50C = .text:0x8006E50C; // type:function size:0x80 +fn_8006E58C = .text:0x8006E58C; // type:function size:0x100 +fn_8006E68C = .text:0x8006E68C; // type:function size:0x7C +fn_8006E708 = .text:0x8006E708; // type:function size:0xBC +fn_8006E7C4 = .text:0x8006E7C4; // type:function size:0x88 +fn_8006E84C = .text:0x8006E84C; // type:function size:0x64 +fn_8006E8B0 = .text:0x8006E8B0; // type:function size:0x14C +fn_8006E9FC = .text:0x8006E9FC; // type:function size:0x100 +fn_8006EAFC = .text:0x8006EAFC; // type:function size:0xB0 +fn_8006EBAC = .text:0x8006EBAC; // type:function size:0x8C +fn_8006EC38 = .text:0x8006EC38; // type:function size:0x8C +fn_8006ECC4 = .text:0x8006ECC4; // type:function size:0x54 +fn_8006ED18 = .text:0x8006ED18; // type:function size:0x30 +fn_8006ED48 = .text:0x8006ED48; // type:function size:0x50 +fn_8006ED98 = .text:0x8006ED98; // type:function size:0x78 +fn_8006EE10 = .text:0x8006EE10; // type:function size:0x50 +fn_8006EE60 = .text:0x8006EE60; // type:function size:0x78 +fn_8006EED8 = .text:0x8006EED8; // type:function size:0x50 +fn_8006EF28 = .text:0x8006EF28; // type:function size:0x78 +fn_8006EFA0 = .text:0x8006EFA0; // type:function size:0x74 +fn_8006F014 = .text:0x8006F014; // type:function size:0x74 +fn_8006F088 = .text:0x8006F088; // type:function size:0x74 +fn_8006F0FC = .text:0x8006F0FC; // type:function size:0x60 +fn_8006F15C = .text:0x8006F15C; // type:function size:0x4C +fn_8006F1A8 = .text:0x8006F1A8; // type:function size:0x64 +fn_8006F20C = .text:0x8006F20C; // type:function size:0x64 +fn_8006F270 = .text:0x8006F270; // type:function size:0x48 +fn_8006F2B8 = .text:0x8006F2B8; // type:function size:0x74 +fn_8006F32C = .text:0x8006F32C; // type:function size:0xC4 +fn_8006F3F0 = .text:0x8006F3F0; // type:function size:0x50 +fn_8006F440 = .text:0x8006F440; // type:function size:0x58 +fn_8006F498 = .text:0x8006F498; // type:function size:0x9C +fn_8006F534 = .text:0x8006F534; // type:function size:0x178 +fn_8006F6AC = .text:0x8006F6AC; // type:function size:0x194 +fn_8006F840 = .text:0x8006F840; // type:function size:0x12C +fn_8006F96C = .text:0x8006F96C; // type:function size:0x24 +fn_8006F990 = .text:0x8006F990; // type:function size:0x34 +fn_8006F9C4 = .text:0x8006F9C4; // type:function size:0x24 +fn_8006F9E8 = .text:0x8006F9E8; // type:function size:0x6C +fn_8006FA54 = .text:0x8006FA54; // type:function size:0x514 +fn_8006FF68 = .text:0x8006FF68; // type:function size:0xC +fn_8006FF74 = .text:0x8006FF74; // type:function size:0xC +fn_8006FF80 = .text:0x8006FF80; // type:function size:0x1A0 +fn_80070120 = .text:0x80070120; // type:function size:0x1A0 +fn_800702C0 = .text:0x800702C0; // type:function size:0x18 +fn_800702D8 = .text:0x800702D8; // type:function size:0x50 +fn_80070328 = .text:0x80070328; // type:function size:0x38 +fn_80070360 = .text:0x80070360; // type:function size:0x48 +fn_800703A8 = .text:0x800703A8; // type:function size:0x48 +fn_800703F0 = .text:0x800703F0; // type:function size:0x1C +fn_8007040C = .text:0x8007040C; // type:function size:0xC +fn_80070418 = .text:0x80070418; // type:function size:0x64 +fn_8007047C = .text:0x8007047C; // type:function size:0x50 +fn_800704CC = .text:0x800704CC; // type:function size:0x38 +fn_80070504 = .text:0x80070504; // type:function size:0x44 +fn_80070548 = .text:0x80070548; // type:function size:0x38 +fn_80070580 = .text:0x80070580; // type:function size:0x38 +fn_800705B8 = .text:0x800705B8; // type:function size:0x38 +fn_800705F0 = .text:0x800705F0; // type:function size:0x168 +fn_80070758 = .text:0x80070758; // type:function size:0x214 +fn_8007096C = .text:0x8007096C; // type:function size:0x8 +fn_80070974 = .text:0x80070974; // type:function size:0x68 +fn_800709DC = .text:0x800709DC; // type:function size:0xD0 +fn_80070AAC = .text:0x80070AAC; // type:function size:0x2C +fn_80070AD8 = .text:0x80070AD8; // type:function size:0x60 +fn_80070B38 = .text:0x80070B38; // type:function size:0x5C +fn_80070B94 = .text:0x80070B94; // type:function size:0x90 +fn_80070C24 = .text:0x80070C24; // type:function size:0x94 +fn_80070CB8 = .text:0x80070CB8; // type:function size:0x54 +fn_80070D0C = .text:0x80070D0C; // type:function size:0x50 +fn_80070D5C = .text:0x80070D5C; // type:function size:0x74 +fn_80070DD0 = .text:0x80070DD0; // type:function size:0x78 +fn_80070E48 = .text:0x80070E48; // type:function size:0x38 +fn_80070E80 = .text:0x80070E80; // type:function size:0x38 +fn_80070EB8 = .text:0x80070EB8; // type:function size:0x28 +fn_80070EE0 = .text:0x80070EE0; // type:function size:0x38 +fn_80070F18 = .text:0x80070F18; // type:function size:0x28 +fn_80070F40 = .text:0x80070F40; // type:function size:0x38 +fn_80070F78 = .text:0x80070F78; // type:function size:0x28 +fn_80070FA0 = .text:0x80070FA0; // type:function size:0x38 +fn_80070FD8 = .text:0x80070FD8; // type:function size:0x28 +fn_80071000 = .text:0x80071000; // type:function size:0xE8 +fn_800710E8 = .text:0x800710E8; // type:function size:0x100 +fn_800711E8 = .text:0x800711E8; // type:function size:0x120 +fn_80071308 = .text:0x80071308; // type:function size:0x74 +fn_8007137C = .text:0x8007137C; // type:function size:0xD0 +fn_8007144C = .text:0x8007144C; // type:function size:0x6C +fn_800714B8 = .text:0x800714B8; // type:function size:0x68 +fn_80071520 = .text:0x80071520; // type:function size:0x16C +fn_8007168C = .text:0x8007168C; // type:function size:0x220 +fn_800718AC = .text:0x800718AC; // type:function size:0x248 +fn_80071AF4 = .text:0x80071AF4; // type:function size:0x158 +fn_80071C4C = .text:0x80071C4C; // type:function size:0x314 +fn_80071F60 = .text:0x80071F60; // type:function size:0x198 +fn_800720F8 = .text:0x800720F8; // type:function size:0x7C +fn_80072174 = .text:0x80072174; // type:function size:0x74 +fn_800721E8 = .text:0x800721E8; // type:function size:0x304 +fn_800724EC = .text:0x800724EC; // type:function size:0xA8 +fn_80072594 = .text:0x80072594; // type:function size:0x134 +fn_800726C8 = .text:0x800726C8; // type:function size:0x3C +fn_80072704 = .text:0x80072704; // type:function size:0xF0 +fn_800727F4 = .text:0x800727F4; // type:function size:0x128 +fn_8007291C = .text:0x8007291C; // type:function size:0x34 +fn_80072950 = .text:0x80072950; // type:function size:0xC +fn_8007295C = .text:0x8007295C; // type:function size:0x3C +fn_80072998 = .text:0x80072998; // type:function size:0xC8 +fn_80072A60 = .text:0x80072A60; // type:function size:0x398 +fn_80072DF8 = .text:0x80072DF8; // type:function size:0x170 +fn_80072F68 = .text:0x80072F68; // type:function size:0x158 +fn_800730C0 = .text:0x800730C0; // type:function size:0x80 +fn_80073140 = .text:0x80073140; // type:function size:0x178 +fn_800732B8 = .text:0x800732B8; // type:function size:0x4C +fn_80073304 = .text:0x80073304; // type:function size:0xE0 +fn_800733E4 = .text:0x800733E4; // type:function size:0x38 +fn_8007341C = .text:0x8007341C; // type:function size:0x374 +fn_80073790 = .text:0x80073790; // type:function size:0x24 +fn_800737B4 = .text:0x800737B4; // type:function size:0x400 +fn_80073BB4 = .text:0x80073BB4; // type:function size:0x30 +fn_80073BE4 = .text:0x80073BE4; // type:function size:0x8 +fn_80073BEC = .text:0x80073BEC; // type:function size:0x8 +fn_80073BF4 = .text:0x80073BF4; // type:function size:0x8 +fn_80073BFC = .text:0x80073BFC; // type:function size:0x48 +fn_80073C44 = .text:0x80073C44; // type:function size:0x60 +fn_80073CA4 = .text:0x80073CA4; // type:function size:0x10 +fn_80073CB4 = .text:0x80073CB4; // type:function size:0x44 +fn_80073CF8 = .text:0x80073CF8; // type:function size:0x18 +fn_80073D10 = .text:0x80073D10; // type:function size:0x18 +fn_80073D28 = .text:0x80073D28; // type:function size:0x48 +fn_80073D70 = .text:0x80073D70; // type:function size:0x48 +fn_80073DB8 = .text:0x80073DB8; // type:function size:0x48 +fn_80073E00 = .text:0x80073E00; // type:function size:0x8C +fn_80073E8C = .text:0x80073E8C; // type:function size:0x2C8 +fn_80074154 = .text:0x80074154; // type:function size:0x8C +fn_800741E0 = .text:0x800741E0; // type:function size:0xA0 +fn_80074280 = .text:0x80074280; // type:function size:0x134 +fn_800743B4 = .text:0x800743B4; // type:function size:0x134 +fn_800744E8 = .text:0x800744E8; // type:function size:0x148 +fn_80074630 = .text:0x80074630; // type:function size:0x104 +fn_80074734 = .text:0x80074734; // type:function size:0x110 +fn_80074844 = .text:0x80074844; // type:function size:0x1FC +fn_80074A40 = .text:0x80074A40; // type:function size:0x1BC +fn_80074BFC = .text:0x80074BFC; // type:function size:0x4AC +fn_800750A8 = .text:0x800750A8; // type:function size:0x344 +fn_800753EC = .text:0x800753EC; // type:function size:0x9C +fn_80075488 = .text:0x80075488; // type:function size:0xF0 +fn_80075578 = .text:0x80075578; // type:function size:0x1C +fn_80075594 = .text:0x80075594; // type:function size:0x3C +fn_800755D0 = .text:0x800755D0; // type:function size:0x110 +fn_800756E0 = .text:0x800756E0; // type:function size:0x474 +fn_80075B54 = .text:0x80075B54; // type:function size:0x2A4 +fn_80075DF8 = .text:0x80075DF8; // type:function size:0x180 +fn_80075F78 = .text:0x80075F78; // type:function size:0x268 +fn_800761E0 = .text:0x800761E0; // type:function size:0x5C +fn_8007623C = .text:0x8007623C; // type:function size:0x48 +fn_80076284 = .text:0x80076284; // type:function size:0x9E8 +fn_80076C6C = .text:0x80076C6C; // type:function size:0x174 +fn_80076DE0 = .text:0x80076DE0; // type:function size:0x2C +fn_80076E0C = .text:0x80076E0C; // type:function size:0xD0 +fn_80076EDC = .text:0x80076EDC; // type:function size:0x750 +fn_8007762C = .text:0x8007762C; // type:function size:0x70 +fn_8007769C = .text:0x8007769C; // type:function size:0x8 +fn_800776A4 = .text:0x800776A4; // type:function size:0x8 +fn_800776AC = .text:0x800776AC; // type:function size:0xD4 +fn_80077780 = .text:0x80077780; // type:function size:0xA0 +fn_80077820 = .text:0x80077820; // type:function size:0x9C +fn_800778BC = .text:0x800778BC; // type:function size:0x800 +fn_800780BC = .text:0x800780BC; // type:function size:0xD4 +fn_80078190 = .text:0x80078190; // type:function size:0x1B4 +fn_80078344 = .text:0x80078344; // type:function size:0xBC +fn_80078400 = .text:0x80078400; // type:function size:0x13C +fn_8007853C = .text:0x8007853C; // type:function size:0x314 +fn_80078850 = .text:0x80078850; // type:function size:0x168 +fn_800789B8 = .text:0x800789B8; // type:function size:0x2C +fn_800789E4 = .text:0x800789E4; // type:function size:0x18C +fn_80078B70 = .text:0x80078B70; // type:function size:0x168 +fn_80078CD8 = .text:0x80078CD8; // type:function size:0x34C +fn_80079024 = .text:0x80079024; // type:function size:0x144 +fn_80079168 = .text:0x80079168; // type:function size:0x6C +fn_800791D4 = .text:0x800791D4; // type:function size:0x280 +fn_80079454 = .text:0x80079454; // type:function size:0xA0 +fn_800794F4 = .text:0x800794F4; // type:function size:0x14C +fn_80079640 = .text:0x80079640; // type:function size:0x1C8 +fn_80079808 = .text:0x80079808; // type:function size:0x60 +fn_80079868 = .text:0x80079868; // type:function size:0x158 +fn_800799C0 = .text:0x800799C0; // type:function size:0x30 +fn_800799F0 = .text:0x800799F0; // type:function size:0x188 +fn_80079B78 = .text:0x80079B78; // type:function size:0xC +fn_80079B84 = .text:0x80079B84; // type:function size:0x38 +fn_80079BBC = .text:0x80079BBC; // type:function size:0x260 +fn_80079E1C = .text:0x80079E1C; // type:function size:0x104 +fn_80079F20 = .text:0x80079F20; // type:function size:0x30 +fn_80079F50 = .text:0x80079F50; // type:function size:0x4DC +fn_8007A42C = .text:0x8007A42C; // type:function size:0x8 +fn_8007A434 = .text:0x8007A434; // type:function size:0x8 +fn_8007A43C = .text:0x8007A43C; // type:function size:0x8C +fn_8007A4C8 = .text:0x8007A4C8; // type:function size:0x16C +fn_8007A634 = .text:0x8007A634; // type:function size:0x3B4 +fn_8007A9E8 = .text:0x8007A9E8; // type:function size:0x1FC +fn_8007ABE4 = .text:0x8007ABE4; // type:function size:0x64 +fn_8007AC48 = .text:0x8007AC48; // type:function size:0xB0 +fn_8007ACF8 = .text:0x8007ACF8; // type:function size:0x798 +fn_8007B490 = .text:0x8007B490; // type:function size:0x20C +fn_8007B69C = .text:0x8007B69C; // type:function size:0x1BC +fn_8007B858 = .text:0x8007B858; // type:function size:0xF0 +fn_8007B948 = .text:0x8007B948; // type:function size:0x3C8 +fn_8007BD10 = .text:0x8007BD10; // type:function size:0x140 +fn_8007BE50 = .text:0x8007BE50; // type:function size:0x914 +fn_8007C764 = .text:0x8007C764; // type:function size:0xC8 +fn_8007C82C = .text:0x8007C82C; // type:function size:0x27C +fn_8007CAA8 = .text:0x8007CAA8; // type:function size:0x30C +fn_8007CDB4 = .text:0x8007CDB4; // type:function size:0x3AC +fn_8007D160 = .text:0x8007D160; // type:function size:0x6C +fn_8007D1CC = .text:0x8007D1CC; // type:function size:0x21C +fn_8007D3E8 = .text:0x8007D3E8; // type:function size:0x68 +fn_8007D450 = .text:0x8007D450; // type:function size:0x288 +fn_8007D6D8 = .text:0x8007D6D8; // type:function size:0x3DC +fn_8007DAB4 = .text:0x8007DAB4; // type:function size:0x14C +fn_8007DC00 = .text:0x8007DC00; // type:function size:0xD0 +fn_8007DCD0 = .text:0x8007DCD0; // type:function size:0x160 +fn_8007DE30 = .text:0x8007DE30; // type:function size:0xA8 +fn_8007DED8 = .text:0x8007DED8; // type:function size:0x84 +fn_8007DF5C = .text:0x8007DF5C; // type:function size:0x6B0 +fn_8007E60C = .text:0x8007E60C; // type:function size:0x440 +fn_8007EA4C = .text:0x8007EA4C; // type:function size:0x338 +fn_8007ED84 = .text:0x8007ED84; // type:function size:0x68 +fn_8007EDEC = .text:0x8007EDEC; // type:function size:0x4C0 +fn_8007F2AC = .text:0x8007F2AC; // type:function size:0xA4 +fn_8007F350 = .text:0x8007F350; // type:function size:0xFC +fn_8007F44C = .text:0x8007F44C; // type:function size:0x38 +fn_8007F484 = .text:0x8007F484; // type:function size:0x2BC +fn_8007F740 = .text:0x8007F740; // type:function size:0x184 +fn_8007F8C4 = .text:0x8007F8C4; // type:function size:0x19C +fn_8007FA60 = .text:0x8007FA60; // type:function size:0x1E8 +fn_8007FC48 = .text:0x8007FC48; // type:function size:0x6C +fn_8007FCB4 = .text:0x8007FCB4; // type:function size:0x60 +fn_8007FD14 = .text:0x8007FD14; // type:function size:0x23C +fn_8007FF50 = .text:0x8007FF50; // type:function size:0x198 +fn_800800E8 = .text:0x800800E8; // type:function size:0x1B8 +fn_800802A0 = .text:0x800802A0; // type:function size:0x29C +fn_8008053C = .text:0x8008053C; // type:function size:0x1A8 +fn_800806E4 = .text:0x800806E4; // type:function size:0x260 +fn_80080944 = .text:0x80080944; // type:function size:0xA4 +fn_800809E8 = .text:0x800809E8; // type:function size:0x250 +fn_80080C38 = .text:0x80080C38; // type:function size:0x5C +fn_80080C94 = .text:0x80080C94; // type:function size:0x118 +fn_80080DAC = .text:0x80080DAC; // type:function size:0xBC +fn_80080E68 = .text:0x80080E68; // type:function size:0x1B0 +fn_80081018 = .text:0x80081018; // type:function size:0xA4 +fn_800810BC = .text:0x800810BC; // type:function size:0x200 +fn_800812BC = .text:0x800812BC; // type:function size:0x11C +fn_800813D8 = .text:0x800813D8; // type:function size:0x34 +fn_8008140C = .text:0x8008140C; // type:function size:0x50 +fn_8008145C = .text:0x8008145C; // type:function size:0x18 +fn_80081474 = .text:0x80081474; // type:function size:0x1C +fn_80081490 = .text:0x80081490; // type:function size:0xFC +fn_8008158C = .text:0x8008158C; // type:function size:0x754 +fn_80081CE0 = .text:0x80081CE0; // type:function size:0x314 +fn_80081FF4 = .text:0x80081FF4; // type:function size:0x164 +fn_80082158 = .text:0x80082158; // type:function size:0x120 +fn_80082278 = .text:0x80082278; // type:function size:0x10C +fn_80082384 = .text:0x80082384; // type:function size:0x38 +fn_800823BC = .text:0x800823BC; // type:function size:0xBC +fn_80082478 = .text:0x80082478; // type:function size:0x224 +fn_8008269C = .text:0x8008269C; // type:function size:0x10 +fn_800826AC = .text:0x800826AC; // type:function size:0x148 +fn_800827F4 = .text:0x800827F4; // type:function size:0x8C +fn_80082880 = .text:0x80082880; // type:function size:0xA4 +fn_80082924 = .text:0x80082924; // type:function size:0x38C +fn_80082CB0 = .text:0x80082CB0; // type:function size:0x58 +fn_80082D08 = .text:0x80082D08; // type:function size:0x118 +fn_80082E20 = .text:0x80082E20; // type:function size:0x114 +fn_80082F34 = .text:0x80082F34; // type:function size:0x160 +fn_80083094 = .text:0x80083094; // type:function size:0x68 +fn_800830FC = .text:0x800830FC; // type:function size:0xD4 +fn_800831D0 = .text:0x800831D0; // type:function size:0x2EC +fn_800834BC = .text:0x800834BC; // type:function size:0x64 +fn_80083520 = .text:0x80083520; // type:function size:0x34 +fn_80083554 = .text:0x80083554; // type:function size:0x54 +fn_800835A8 = .text:0x800835A8; // type:function size:0x34 +fn_800835DC = .text:0x800835DC; // type:function size:0x5C +fn_80083638 = .text:0x80083638; // type:function size:0x58 +fn_80083690 = .text:0x80083690; // type:function size:0x60 +fn_800836F0 = .text:0x800836F0; // type:function size:0x240 +fn_80083930 = .text:0x80083930; // type:function size:0xD4 +fn_80083A04 = .text:0x80083A04; // type:function size:0x38 +fn_80083A3C = .text:0x80083A3C; // type:function size:0x48 +fn_80083A84 = .text:0x80083A84; // type:function size:0x48 +fn_80083ACC = .text:0x80083ACC; // type:function size:0xA8 +fn_80083B74 = .text:0x80083B74; // type:function size:0x8 +fn_80083B7C = .text:0x80083B7C; // type:function size:0xCC +fn_80083C48 = .text:0x80083C48; // type:function size:0x8F4 +fn_8008453C = .text:0x8008453C; // type:function size:0x84 +fn_800845C0 = .text:0x800845C0; // type:function size:0x160 +fn_80084720 = .text:0x80084720; // type:function size:0x144 +fn_80084864 = .text:0x80084864; // type:function size:0x10C +fn_80084970 = .text:0x80084970; // type:function size:0x180 +fn_80084AF0 = .text:0x80084AF0; // type:function size:0x204 +fn_80084CF4 = .text:0x80084CF4; // type:function size:0x38 +fn_80084D2C = .text:0x80084D2C; // type:function size:0xB4 +fn_80084DE0 = .text:0x80084DE0; // type:function size:0x40 +fn_80084E20 = .text:0x80084E20; // type:function size:0x31C +fn_8008513C = .text:0x8008513C; // type:function size:0x628 +fn_80085764 = .text:0x80085764; // type:function size:0x130 +fn_80085894 = .text:0x80085894; // type:function size:0x24 +fn_800858B8 = .text:0x800858B8; // type:function size:0x1EC +fn_80085AA4 = .text:0x80085AA4; // type:function size:0x38 +fn_80085ADC = .text:0x80085ADC; // type:function size:0x84 +fn_80085B60 = .text:0x80085B60; // type:function size:0x4C +fn_80085BAC = .text:0x80085BAC; // type:function size:0x490 +fn_8008603C = .text:0x8008603C; // type:function size:0x280 +fn_800862BC = .text:0x800862BC; // type:function size:0x1C8 +fn_80086484 = .text:0x80086484; // type:function size:0x60 +fn_800864E4 = .text:0x800864E4; // type:function size:0x130 +fn_80086614 = .text:0x80086614; // type:function size:0x60 +fn_80086674 = .text:0x80086674; // type:function size:0x7E4 +fn_80086E58 = .text:0x80086E58; // type:function size:0x40 +fn_80086E98 = .text:0x80086E98; // type:function size:0x90 +fn_80086F28 = .text:0x80086F28; // type:function size:0xE0 +fn_80087008 = .text:0x80087008; // type:function size:0x84 +fn_8008708C = .text:0x8008708C; // type:function size:0x94 +fn_80087120 = .text:0x80087120; // type:function size:0x8C +fn_800871AC = .text:0x800871AC; // type:function size:0x58 +fn_80087204 = .text:0x80087204; // type:function size:0xC0 +fn_800872C4 = .text:0x800872C4; // type:function size:0x200 +fn_800874C4 = .text:0x800874C4; // type:function size:0xAC +fn_80087570 = .text:0x80087570; // type:function size:0x68 +fn_800875D8 = .text:0x800875D8; // type:function size:0xB4 +fn_8008768C = .text:0x8008768C; // type:function size:0x390 +fn_80087A1C = .text:0x80087A1C; // type:function size:0x110 +fn_80087B2C = .text:0x80087B2C; // type:function size:0x248 +fn_80087D74 = .text:0x80087D74; // type:function size:0x110 +fn_80087E84 = .text:0x80087E84; // type:function size:0x88 +fn_80087F0C = .text:0x80087F0C; // type:function size:0x4C +fn_80087F58 = .text:0x80087F58; // type:function size:0x90 +fn_80087FE8 = .text:0x80087FE8; // type:function size:0x98 +fn_80088080 = .text:0x80088080; // type:function size:0x48 +fn_800880C8 = .text:0x800880C8; // type:function size:0x1C +fn_800880E4 = .text:0x800880E4; // type:function size:0x48 +fn_8008812C = .text:0x8008812C; // type:function size:0xFC +fn_80088228 = .text:0x80088228; // type:function size:0x24 +fn_8008824C = .text:0x8008824C; // type:function size:0x134 +fn_80088380 = .text:0x80088380; // type:function size:0x138 +fn_800884B8 = .text:0x800884B8; // type:function size:0x50 +fn_80088508 = .text:0x80088508; // type:function size:0x44 +fn_8008854C = .text:0x8008854C; // type:function size:0x34 +fn_80088580 = .text:0x80088580; // type:function size:0x6C +fn_800885EC = .text:0x800885EC; // type:function size:0x158 +fn_80088744 = .text:0x80088744; // type:function size:0x94 +fn_800887D8 = .text:0x800887D8; // type:function size:0x6C +fn_80088844 = .text:0x80088844; // type:function size:0x90 +fn_800888D4 = .text:0x800888D4; // type:function size:0x20C +fn_80088AE0 = .text:0x80088AE0; // type:function size:0x98 +fn_80088B78 = .text:0x80088B78; // type:function size:0x36C +fn_80088EE4 = .text:0x80088EE4; // type:function size:0x8C +fn_80088F70 = .text:0x80088F70; // type:function size:0x210 +fn_80089180 = .text:0x80089180; // type:function size:0x40 +fn_800891C0 = .text:0x800891C0; // type:function size:0x180 +fn_80089340 = .text:0x80089340; // type:function size:0x140 +fn_80089480 = .text:0x80089480; // type:function size:0xB8 +fn_80089538 = .text:0x80089538; // type:function size:0x29C +fn_800897D4 = .text:0x800897D4; // type:function size:0x74 +fn_80089848 = .text:0x80089848; // type:function size:0x1C +fn_80089864 = .text:0x80089864; // type:function size:0x48 +fn_800898AC = .text:0x800898AC; // type:function size:0xC +fn_800898B8 = .text:0x800898B8; // type:function size:0xFC +fn_800899B4 = .text:0x800899B4; // type:function size:0x15C +fn_80089B10 = .text:0x80089B10; // type:function size:0x110 +fn_80089C20 = .text:0x80089C20; // type:function size:0x30 +fn_80089C50 = .text:0x80089C50; // type:function size:0x19C +fn_80089DEC = .text:0x80089DEC; // type:function size:0x1E4 +fn_80089FD0 = .text:0x80089FD0; // type:function size:0xD4 +fn_8008A0A4 = .text:0x8008A0A4; // type:function size:0xD8 +fn_8008A17C = .text:0x8008A17C; // type:function size:0xEC +fn_8008A268 = .text:0x8008A268; // type:function size:0xC8 +fn_8008A330 = .text:0x8008A330; // type:function size:0x80 +fn_8008A3B0 = .text:0x8008A3B0; // type:function size:0x4A8 +fn_8008A858 = .text:0x8008A858; // type:function size:0x370 +fn_8008ABC8 = .text:0x8008ABC8; // type:function size:0x174 +fn_8008AD3C = .text:0x8008AD3C; // type:function size:0x78 +fn_8008ADB4 = .text:0x8008ADB4; // type:function size:0x74 +fn_8008AE28 = .text:0x8008AE28; // type:function size:0xE8 +fn_8008AF10 = .text:0x8008AF10; // type:function size:0x650 +fn_8008B560 = .text:0x8008B560; // type:function size:0x3AC +fn_8008B90C = .text:0x8008B90C; // type:function size:0x420 +fn_8008BD2C = .text:0x8008BD2C; // type:function size:0x248 +fn_8008BF74 = .text:0x8008BF74; // type:function size:0xA8 +fn_8008C01C = .text:0x8008C01C; // type:function size:0x104 +fn_8008C120 = .text:0x8008C120; // type:function size:0x400 +fn_8008C520 = .text:0x8008C520; // type:function size:0x388 +fn_8008C8A8 = .text:0x8008C8A8; // type:function size:0x674 +fn_8008CF1C = .text:0x8008CF1C; // type:function size:0x50 +fn_8008CF6C = .text:0x8008CF6C; // type:function size:0x38 +fn_8008CFA4 = .text:0x8008CFA4; // type:function size:0x5A4 +fn_8008D548 = .text:0x8008D548; // type:function size:0x58 +fn_8008D5A0 = .text:0x8008D5A0; // type:function size:0x38 +fn_8008D5D8 = .text:0x8008D5D8; // type:function size:0xA4 +fn_8008D67C = .text:0x8008D67C; // type:function size:0x350 +fn_8008D9CC = .text:0x8008D9CC; // type:function size:0x148 +fn_8008DB14 = .text:0x8008DB14; // type:function size:0x44 +fn_8008DB58 = .text:0x8008DB58; // type:function size:0x84 +fn_8008DBDC = .text:0x8008DBDC; // type:function size:0x358 +fn_8008DF34 = .text:0x8008DF34; // type:function size:0x54 +fn_8008DF88 = .text:0x8008DF88; // type:function size:0x1F4 +fn_8008E17C = .text:0x8008E17C; // type:function size:0x12C +fn_8008E2A8 = .text:0x8008E2A8; // type:function size:0x38 +fn_8008E2E0 = .text:0x8008E2E0; // type:function size:0x120 +fn_8008E400 = .text:0x8008E400; // type:function size:0xCC +fn_8008E4CC = .text:0x8008E4CC; // type:function size:0x140 +fn_8008E60C = .text:0x8008E60C; // type:function size:0x2C +fn_8008E638 = .text:0x8008E638; // type:function size:0x2C +fn_8008E664 = .text:0x8008E664; // type:function size:0x48 +fn_8008E6AC = .text:0x8008E6AC; // type:function size:0x94 +fn_8008E740 = .text:0x8008E740; // type:function size:0x9C +fn_8008E7DC = .text:0x8008E7DC; // type:function size:0x10C +fn_8008E8E8 = .text:0x8008E8E8; // type:function size:0x130 +fn_8008EA18 = .text:0x8008EA18; // type:function size:0x74 +fn_8008EA8C = .text:0x8008EA8C; // type:function size:0x1C +fn_8008EAA8 = .text:0x8008EAA8; // type:function size:0x6C +fn_8008EB14 = .text:0x8008EB14; // type:function size:0x64 +fn_8008EB78 = .text:0x8008EB78; // type:function size:0x64 +fn_8008EBDC = .text:0x8008EBDC; // type:function size:0xC +fn_8008EBE8 = .text:0x8008EBE8; // type:function size:0xC +fn_8008EBF4 = .text:0x8008EBF4; // type:function size:0x180 +fn_8008ED74 = .text:0x8008ED74; // type:function size:0x1BC +fn_8008EF30 = .text:0x8008EF30; // type:function size:0x220 +fn_8008F150 = .text:0x8008F150; // type:function size:0x374 +fn_8008F4C4 = .text:0x8008F4C4; // type:function size:0x204 +fn_8008F6C8 = .text:0x8008F6C8; // type:function size:0xA4 +fn_8008F76C = .text:0x8008F76C; // type:function size:0xA4 +fn_8008F810 = .text:0x8008F810; // type:function size:0xA4 +fn_8008F8B4 = .text:0x8008F8B4; // type:function size:0xA4 +fn_8008F958 = .text:0x8008F958; // type:function size:0x584 +fn_8008FEDC = .text:0x8008FEDC; // type:function size:0xD34 +fn_80090C10 = .text:0x80090C10; // type:function size:0xEBC +fn_80091ACC = .text:0x80091ACC; // type:function size:0x4FC +fn_80091FC8 = .text:0x80091FC8; // type:function size:0xC8 +fn_80092090 = .text:0x80092090; // type:function size:0xE3C +fn_80092ECC = .text:0x80092ECC; // type:function size:0x3D4 +fn_800932A0 = .text:0x800932A0; // type:function size:0x1370 +fn_80094610 = .text:0x80094610; // type:function size:0x488 +fn_80094A98 = .text:0x80094A98; // type:function size:0x388 +fn_80094E20 = .text:0x80094E20; // type:function size:0xB0 +fn_80094ED0 = .text:0x80094ED0; // type:function size:0x7A4 +fn_80095674 = .text:0x80095674; // type:function size:0x9D8 +fn_8009604C = .text:0x8009604C; // type:function size:0x628 +fn_80096674 = .text:0x80096674; // type:function size:0x3C +fn_800966B0 = .text:0x800966B0; // type:function size:0x13C +fn_800967EC = .text:0x800967EC; // type:function size:0xDC +fn_800968C8 = .text:0x800968C8; // type:function size:0x584 +fn_80096E4C = .text:0x80096E4C; // type:function size:0x1C +fn_80096E68 = .text:0x80096E68; // type:function size:0x2C +fn_80096E94 = .text:0x80096E94; // type:function size:0x2C +fn_80096EC0 = .text:0x80096EC0; // type:function size:0x2C +fn_80096EEC = .text:0x80096EEC; // type:function size:0x2C +fn_80096F18 = .text:0x80096F18; // type:function size:0x284 +fn_8009719C = .text:0x8009719C; // type:function size:0x144 +fn_800972E0 = .text:0x800972E0; // type:function size:0x28C +fn_8009756C = .text:0x8009756C; // type:function size:0x208 +fn_80097774 = .text:0x80097774; // type:function size:0x1DC +fn_80097950 = .text:0x80097950; // type:function size:0x30 +fn_80097980 = .text:0x80097980; // type:function size:0x148 +fn_80097AC8 = .text:0x80097AC8; // type:function size:0x1B4 +fn_80097C7C = .text:0x80097C7C; // type:function size:0x250 +fn_80097ECC = .text:0x80097ECC; // type:function size:0x220 +fn_800980EC = .text:0x800980EC; // type:function size:0x2B0 +fn_8009839C = .text:0x8009839C; // type:function size:0x160 +fn_800984FC = .text:0x800984FC; // type:function size:0xB8 +fn_800985B4 = .text:0x800985B4; // type:function size:0x1C +fn_800985D0 = .text:0x800985D0; // type:function size:0x148 +fn_80098718 = .text:0x80098718; // type:function size:0x210 +fn_80098928 = .text:0x80098928; // type:function size:0x228 +fn_80098B50 = .text:0x80098B50; // type:function size:0x230 +fn_80098D80 = .text:0x80098D80; // type:function size:0x270 +fn_80098FF0 = .text:0x80098FF0; // type:function size:0x58 +fn_80099048 = .text:0x80099048; // type:function size:0x44 +fn_8009908C = .text:0x8009908C; // type:function size:0x150 +fn_800991DC = .text:0x800991DC; // type:function size:0x128 +fn_80099304 = .text:0x80099304; // type:function size:0x34 +fn_80099338 = .text:0x80099338; // type:function size:0x5C +fn_80099394 = .text:0x80099394; // type:function size:0xD4 +fn_80099468 = .text:0x80099468; // type:function size:0x1C +fn_80099484 = .text:0x80099484; // type:function size:0x18C +fn_80099610 = .text:0x80099610; // type:function size:0x1E8 +fn_800997F8 = .text:0x800997F8; // type:function size:0x38 +fn_80099830 = .text:0x80099830; // type:function size:0x24 +fn_80099854 = .text:0x80099854; // type:function size:0xEC +fn_80099940 = .text:0x80099940; // type:function size:0x1C8 +fn_80099B08 = .text:0x80099B08; // type:function size:0x108 +fn_80099C10 = .text:0x80099C10; // type:function size:0x160 +fn_80099D70 = .text:0x80099D70; // type:function size:0x1AC +fn_80099F1C = .text:0x80099F1C; // type:function size:0xB8 +fn_80099FD4 = .text:0x80099FD4; // type:function size:0x90 +fn_8009A064 = .text:0x8009A064; // type:function size:0x160 +fn_8009A1C4 = .text:0x8009A1C4; // type:function size:0xE4 +fn_8009A2A8 = .text:0x8009A2A8; // type:function size:0xCC +fn_8009A374 = .text:0x8009A374; // type:function size:0x40 +fn_8009A3B4 = .text:0x8009A3B4; // type:function size:0x188 +fn_8009A53C = .text:0x8009A53C; // type:function size:0x2C4 +fn_8009A800 = .text:0x8009A800; // type:function size:0x2B8 +fn_8009AAB8 = .text:0x8009AAB8; // type:function size:0x24 +fn_8009AADC = .text:0x8009AADC; // type:function size:0xC +fn_8009AAE8 = .text:0x8009AAE8; // type:function size:0x10 +fn_8009AAF8 = .text:0x8009AAF8; // type:function size:0x14C +fn_8009AC44 = .text:0x8009AC44; // type:function size:0x120 +fn_8009AD64 = .text:0x8009AD64; // type:function size:0xB4 +fn_8009AE18 = .text:0x8009AE18; // type:function size:0x88 +fn_8009AEA0 = .text:0x8009AEA0; // type:function size:0x80 +fn_8009AF20 = .text:0x8009AF20; // type:function size:0xD8 +fn_8009AFF8 = .text:0x8009AFF8; // type:function size:0x6C +fn_8009B064 = .text:0x8009B064; // type:function size:0x60 +fn_8009B0C4 = .text:0x8009B0C4; // type:function size:0x124 +fn_8009B1E8 = .text:0x8009B1E8; // type:function size:0x2C +fn_8009B214 = .text:0x8009B214; // type:function size:0x708 +fn_8009B91C = .text:0x8009B91C; // type:function size:0x1D4 +fn_8009BAF0 = .text:0x8009BAF0; // type:function size:0x1FC +fn_8009BCEC = .text:0x8009BCEC; // type:function size:0x24 +fn_8009BD10 = .text:0x8009BD10; // type:function size:0x2D0 +fn_8009BFE0 = .text:0x8009BFE0; // type:function size:0x1E8 +fn_8009C1C8 = .text:0x8009C1C8; // type:function size:0x1A0 +fn_8009C368 = .text:0x8009C368; // type:function size:0x64 +fn_8009C3CC = .text:0x8009C3CC; // type:function size:0x88 +fn_8009C454 = .text:0x8009C454; // type:function size:0x124 +fn_8009C578 = .text:0x8009C578; // type:function size:0x8C +fn_8009C604 = .text:0x8009C604; // type:function size:0x260 +fn_8009C864 = .text:0x8009C864; // type:function size:0x128 +fn_8009C98C = .text:0x8009C98C; // type:function size:0x12C +fn_8009CAB8 = .text:0x8009CAB8; // type:function size:0x58 +fn_8009CB10 = .text:0x8009CB10; // type:function size:0x64 +fn_8009CB74 = .text:0x8009CB74; // type:function size:0x24 +fn_8009CB98 = .text:0x8009CB98; // type:function size:0x10 +fn_8009CBA8 = .text:0x8009CBA8; // type:function size:0x34 +fn_8009CBDC = .text:0x8009CBDC; // type:function size:0x15C +fn_8009CD38 = .text:0x8009CD38; // type:function size:0x124 +fn_8009CE5C = .text:0x8009CE5C; // type:function size:0x74 +fn_8009CED0 = .text:0x8009CED0; // type:function size:0xC +fn_8009CEDC = .text:0x8009CEDC; // type:function size:0x340 +fn_8009D21C = .text:0x8009D21C; // type:function size:0xF8 +fn_8009D314 = .text:0x8009D314; // type:function size:0x160 +fn_8009D474 = .text:0x8009D474; // type:function size:0x5C +fn_8009D4D0 = .text:0x8009D4D0; // type:function size:0x198 +fn_8009D668 = .text:0x8009D668; // type:function size:0x18C +fn_8009D7F4 = .text:0x8009D7F4; // type:function size:0x20C +fn_8009DA00 = .text:0x8009DA00; // type:function size:0x78 +fn_8009DA78 = .text:0x8009DA78; // type:function size:0x78 +fn_8009DAF0 = .text:0x8009DAF0; // type:function size:0x68 +fn_8009DB58 = .text:0x8009DB58; // type:function size:0x68 +fn_8009DBC0 = .text:0x8009DBC0; // type:function size:0x11C +fn_8009DCDC = .text:0x8009DCDC; // type:function size:0x2C +fn_8009DD08 = .text:0x8009DD08; // type:function size:0x2A8 +fn_8009DFB0 = .text:0x8009DFB0; // type:function size:0x1D4 +fn_8009E184 = .text:0x8009E184; // type:function size:0xE8 +fn_8009E26C = .text:0x8009E26C; // type:function size:0x280 +fn_8009E4EC = .text:0x8009E4EC; // type:function size:0xC0 +fn_8009E5AC = .text:0x8009E5AC; // type:function size:0xA8 +fn_8009E654 = .text:0x8009E654; // type:function size:0x94 +fn_8009E6E8 = .text:0x8009E6E8; // type:function size:0x10 +fn_8009E6F8 = .text:0x8009E6F8; // type:function size:0xBC +fn_8009E7B4 = .text:0x8009E7B4; // type:function size:0x1D4 +fn_8009E988 = .text:0x8009E988; // type:function size:0xAC +fn_8009EA34 = .text:0x8009EA34; // type:function size:0x28 +fn_8009EA5C = .text:0x8009EA5C; // type:function size:0x4C +fn_8009EAA8 = .text:0x8009EAA8; // type:function size:0x300 +fn_8009EDA8 = .text:0x8009EDA8; // type:function size:0x4A0 +fn_8009F248 = .text:0x8009F248; // type:function size:0x9C +fn_8009F2E4 = .text:0x8009F2E4; // type:function size:0x1DC +fn_8009F4C0 = .text:0x8009F4C0; // type:function size:0x358 +fn_8009F818 = .text:0x8009F818; // type:function size:0x24 +fn_8009F83C = .text:0x8009F83C; // type:function size:0x2C +fn_8009F868 = .text:0x8009F868; // type:function size:0x214 +fn_8009FA7C = .text:0x8009FA7C; // type:function size:0x15C +fn_8009FBD8 = .text:0x8009FBD8; // type:function size:0x110 +fn_8009FCE8 = .text:0x8009FCE8; // type:function size:0x68 +fn_8009FD50 = .text:0x8009FD50; // type:function size:0x1E0 +fn_8009FF30 = .text:0x8009FF30; // type:function size:0x10C +fn_800A003C = .text:0x800A003C; // type:function size:0x190 +fn_800A01CC = .text:0x800A01CC; // type:function size:0x328 +fn_800A04F4 = .text:0x800A04F4; // type:function size:0x170 +fn_800A0664 = .text:0x800A0664; // type:function size:0x24 +fn_800A0688 = .text:0x800A0688; // type:function size:0x128 +fn_800A07B0 = .text:0x800A07B0; // type:function size:0x54 +fn_800A0804 = .text:0x800A0804; // type:function size:0x104 +fn_800A0908 = .text:0x800A0908; // type:function size:0x218 +fn_800A0B20 = .text:0x800A0B20; // type:function size:0xF4 +fn_800A0C14 = .text:0x800A0C14; // type:function size:0x178 +fn_800A0D8C = .text:0x800A0D8C; // type:function size:0x1B0 +fn_800A0F3C = .text:0x800A0F3C; // type:function size:0xDC +fn_800A1018 = .text:0x800A1018; // type:function size:0x9C +fn_800A10B4 = .text:0x800A10B4; // type:function size:0x68 +fn_800A111C = .text:0x800A111C; // type:function size:0x168 +fn_800A1284 = .text:0x800A1284; // type:function size:0x184 +fn_800A1408 = .text:0x800A1408; // type:function size:0x1C +fn_800A1424 = .text:0x800A1424; // type:function size:0x30 +fn_800A1454 = .text:0x800A1454; // type:function size:0x20 +fn_800A1474 = .text:0x800A1474; // type:function size:0x1B0 +fn_800A1624 = .text:0x800A1624; // type:function size:0x60 +fn_800A1684 = .text:0x800A1684; // type:function size:0x1C +fn_800A16A0 = .text:0x800A16A0; // type:function size:0x6FC +fn_800A1D9C = .text:0x800A1D9C; // type:function size:0x3B0 +fn_800A214C = .text:0x800A214C; // type:function size:0x3A8 +fn_800A24F4 = .text:0x800A24F4; // type:function size:0x388 +fn_800A287C = .text:0x800A287C; // type:function size:0x3A4 +fn_800A2C20 = .text:0x800A2C20; // type:function size:0x194 +fn_800A2DB4 = .text:0x800A2DB4; // type:function size:0x198 +fn_800A2F4C = .text:0x800A2F4C; // type:function size:0x174 +fn_800A30C0 = .text:0x800A30C0; // type:function size:0x200 +fn_800A32C0 = .text:0x800A32C0; // type:function size:0x20C +fn_800A34CC = .text:0x800A34CC; // type:function size:0x1C8 +fn_800A3694 = .text:0x800A3694; // type:function size:0x204 +fn_800A3898 = .text:0x800A3898; // type:function size:0xA8 +fn_800A3940 = .text:0x800A3940; // type:function size:0x430 +fn_800A3D70 = .text:0x800A3D70; // type:function size:0x8FC +fn_800A466C = .text:0x800A466C; // type:function size:0x74 +fn_800A46E0 = .text:0x800A46E0; // type:function size:0xC8 +fn_800A47A8 = .text:0x800A47A8; // type:function size:0xD0 +fn_800A4878 = .text:0x800A4878; // type:function size:0x2E4 +fn_800A4B5C = .text:0x800A4B5C; // type:function size:0x8 +fn_800A4B64 = .text:0x800A4B64; // type:function size:0x8 +fn_800A4B6C = .text:0x800A4B6C; // type:function size:0xB4 +fn_800A4C20 = .text:0x800A4C20; // type:function size:0x50 +fn_800A4C70 = .text:0x800A4C70; // type:function size:0x94 +fn_800A4D04 = .text:0x800A4D04; // type:function size:0x538 +fn_800A523C = .text:0x800A523C; // type:function size:0xF0 +fn_800A532C = .text:0x800A532C; // type:function size:0xFC +fn_800A5428 = .text:0x800A5428; // type:function size:0x3A0 +fn_800A57C8 = .text:0x800A57C8; // type:function size:0x124 +fn_800A58EC = .text:0x800A58EC; // type:function size:0xB0 +fn_800A599C = .text:0x800A599C; // type:function size:0xD4 +fn_800A5A70 = .text:0x800A5A70; // type:function size:0x68 +fn_800A5AD8 = .text:0x800A5AD8; // type:function size:0x2AC +fn_800A5D84 = .text:0x800A5D84; // type:function size:0x2AC +fn_800A6030 = .text:0x800A6030; // type:function size:0x188 +fn_800A61B8 = .text:0x800A61B8; // type:function size:0x16C +fn_800A6324 = .text:0x800A6324; // type:function size:0x164 +fn_800A6488 = .text:0x800A6488; // type:function size:0x70 +fn_800A64F8 = .text:0x800A64F8; // type:function size:0x60 +fn_800A6558 = .text:0x800A6558; // type:function size:0x1A8 +fn_800A6700 = .text:0x800A6700; // type:function size:0x3D4 +fn_800A6AD4 = .text:0x800A6AD4; // type:function size:0x64 +fn_800A6B38 = .text:0x800A6B38; // type:function size:0x84 +fn_800A6BBC = .text:0x800A6BBC; // type:function size:0x400 +fn_800A6FBC = .text:0x800A6FBC; // type:function size:0x2FC +fn_800A72B8 = .text:0x800A72B8; // type:function size:0x17C +fn_800A7434 = .text:0x800A7434; // type:function size:0x2D8 +fn_800A770C = .text:0x800A770C; // type:function size:0x188 +fn_800A7894 = .text:0x800A7894; // type:function size:0x1C8 +fn_800A7A5C = .text:0x800A7A5C; // type:function size:0xEC +fn_800A7B48 = .text:0x800A7B48; // type:function size:0x1A8 +fn_800A7CF0 = .text:0x800A7CF0; // type:function size:0x454 +fn_800A8144 = .text:0x800A8144; // type:function size:0xD8 +fn_800A821C = .text:0x800A821C; // type:function size:0x250 +fn_800A846C = .text:0x800A846C; // type:function size:0xC8 +fn_800A8534 = .text:0x800A8534; // type:function size:0x3C +fn_800A8570 = .text:0x800A8570; // type:function size:0x6D4 +fn_800A8C44 = .text:0x800A8C44; // type:function size:0x318 +fn_800A8F5C = .text:0x800A8F5C; // type:function size:0xA4 +fn_800A9000 = .text:0x800A9000; // type:function size:0xDC +fn_800A90DC = .text:0x800A90DC; // type:function size:0x21C +fn_800A92F8 = .text:0x800A92F8; // type:function size:0x84 +fn_800A937C = .text:0x800A937C; // type:function size:0x30 +fn_800A93AC = .text:0x800A93AC; // type:function size:0x1D4 +fn_800A9580 = .text:0x800A9580; // type:function size:0x184 +fn_800A9704 = .text:0x800A9704; // type:function size:0x48 +fn_800A974C = .text:0x800A974C; // type:function size:0x10C +fn_800A9858 = .text:0x800A9858; // type:function size:0xA4 +fn_800A98FC = .text:0x800A98FC; // type:function size:0xCC0 +fn_800AA5BC = .text:0x800AA5BC; // type:function size:0xA4 +fn_800AA660 = .text:0x800AA660; // type:function size:0x1FC +fn_800AA85C = .text:0x800AA85C; // type:function size:0xD4 +fn_800AA930 = .text:0x800AA930; // type:function size:0x170 +fn_800AAAA0 = .text:0x800AAAA0; // type:function size:0x88 +fn_800AAB28 = .text:0x800AAB28; // type:function size:0x20 +fn_800AAB48 = .text:0x800AAB48; // type:function size:0x24 +fn_800AAB6C = .text:0x800AAB6C; // type:function size:0x2D0 +fn_800AAE3C = .text:0x800AAE3C; // type:function size:0x1D8 +fn_800AB014 = .text:0x800AB014; // type:function size:0x950 +fn_800AB964 = .text:0x800AB964; // type:function size:0x4C +fn_800AB9B0 = .text:0x800AB9B0; // type:function size:0x488 +fn_800ABE38 = .text:0x800ABE38; // type:function size:0x2A4 +fn_800AC0DC = .text:0x800AC0DC; // type:function size:0x1C0 +fn_800AC29C = .text:0x800AC29C; // type:function size:0x7C +fn_800AC318 = .text:0x800AC318; // type:function size:0x78 +fn_800AC390 = .text:0x800AC390; // type:function size:0xB0 +fn_800AC440 = .text:0x800AC440; // type:function size:0x1CC +fn_800AC60C = .text:0x800AC60C; // type:function size:0x228 +fn_800AC834 = .text:0x800AC834; // type:function size:0x1C +fn_800AC850 = .text:0x800AC850; // type:function size:0xC0 +fn_800AC910 = .text:0x800AC910; // type:function size:0x180 +fn_800ACA90 = .text:0x800ACA90; // type:function size:0x2B0 +fn_800ACD40 = .text:0x800ACD40; // type:function size:0x44 +fn_800ACD84 = .text:0x800ACD84; // type:function size:0x38 +fn_800ACDBC = .text:0x800ACDBC; // type:function size:0x38 +fn_800ACDF4 = .text:0x800ACDF4; // type:function size:0x44 +fn_800ACE38 = .text:0x800ACE38; // type:function size:0x2B4 +fn_800AD0EC = .text:0x800AD0EC; // type:function size:0x340 +fn_800AD42C = .text:0x800AD42C; // type:function size:0x58 +fn_800AD484 = .text:0x800AD484; // type:function size:0x58 +fn_800AD4DC = .text:0x800AD4DC; // type:function size:0x38 +fn_800AD514 = .text:0x800AD514; // type:function size:0x260 +fn_800AD774 = .text:0x800AD774; // type:function size:0x88 +fn_800AD7FC = .text:0x800AD7FC; // type:function size:0x3C0 +fn_800ADBBC = .text:0x800ADBBC; // type:function size:0x108 +fn_800ADCC4 = .text:0x800ADCC4; // type:function size:0xABC +fn_800AE780 = .text:0x800AE780; // type:function size:0x168 +fn_800AE8E8 = .text:0x800AE8E8; // type:function size:0x58 +fn_800AE940 = .text:0x800AE940; // type:function size:0x4F4 +fn_800AEE34 = .text:0x800AEE34; // type:function size:0x310 +fn_800AF144 = .text:0x800AF144; // type:function size:0x264 +fn_800AF3A8 = .text:0x800AF3A8; // type:function size:0x110 +fn_800AF4B8 = .text:0x800AF4B8; // type:function size:0x48 +fn_800AF500 = .text:0x800AF500; // type:function size:0xD4 +fn_800AF5D4 = .text:0x800AF5D4; // type:function size:0x1CC +fn_800AF7A0 = .text:0x800AF7A0; // type:function size:0x178 +fn_800AF918 = .text:0x800AF918; // type:function size:0x238 +fn_800AFB50 = .text:0x800AFB50; // type:function size:0x3B0 +fn_800AFF00 = .text:0x800AFF00; // type:function size:0x154 +fn_800B0054 = .text:0x800B0054; // type:function size:0x390 +fn_800B03E4 = .text:0x800B03E4; // type:function size:0x3E4 +fn_800B07C8 = .text:0x800B07C8; // type:function size:0x240 +fn_800B0A08 = .text:0x800B0A08; // type:function size:0x210 +fn_800B0C18 = .text:0x800B0C18; // type:function size:0x70 +fn_800B0C88 = .text:0x800B0C88; // type:function size:0x1B8 +fn_800B0E40 = .text:0x800B0E40; // type:function size:0x12C +fn_800B0F6C = .text:0x800B0F6C; // type:function size:0x1A4 +fn_800B1110 = .text:0x800B1110; // type:function size:0x10C +fn_800B121C = .text:0x800B121C; // type:function size:0xDC +fn_800B12F8 = .text:0x800B12F8; // type:function size:0x34 +fn_800B132C = .text:0x800B132C; // type:function size:0x12C +fn_800B1458 = .text:0x800B1458; // type:function size:0x4C +fn_800B14A4 = .text:0x800B14A4; // type:function size:0xC0 +fn_800B1564 = .text:0x800B1564; // type:function size:0x60 +fn_800B15C4 = .text:0x800B15C4; // type:function size:0x180 +fn_800B1744 = .text:0x800B1744; // type:function size:0xE4 +fn_800B1828 = .text:0x800B1828; // type:function size:0xB4 +fn_800B18DC = .text:0x800B18DC; // type:function size:0xD0 +fn_800B19AC = .text:0x800B19AC; // type:function size:0x30 +fn_800B19DC = .text:0x800B19DC; // type:function size:0xAC +fn_800B1A88 = .text:0x800B1A88; // type:function size:0xF0 +fn_800B1B78 = .text:0x800B1B78; // type:function size:0x74C +fn_800B22C4 = .text:0x800B22C4; // type:function size:0x3E4 +fn_800B26A8 = .text:0x800B26A8; // type:function size:0x65C +fn_800B2D04 = .text:0x800B2D04; // type:function size:0x488 +fn_800B318C = .text:0x800B318C; // type:function size:0x45C +fn_800B35E8 = .text:0x800B35E8; // type:function size:0x4E0 +fn_800B3AC8 = .text:0x800B3AC8; // type:function size:0x34 +fn_800B3AFC = .text:0x800B3AFC; // type:function size:0x80 +fn_800B3B7C = .text:0x800B3B7C; // type:function size:0x4C +fn_800B3BC8 = .text:0x800B3BC8; // type:function size:0x8 +fn_800B3BD0 = .text:0x800B3BD0; // type:function size:0x44 +fn_800B3C14 = .text:0x800B3C14; // type:function size:0x78 +fn_800B3C8C = .text:0x800B3C8C; // type:function size:0x10C +fn_800B3D98 = .text:0x800B3D98; // type:function size:0xBC +fn_800B3E54 = .text:0x800B3E54; // type:function size:0x10 +fn_800B3E64 = .text:0x800B3E64; // type:function size:0x40 +fn_800B3EA4 = .text:0x800B3EA4; // type:function size:0x8 +fn_800B3EAC = .text:0x800B3EAC; // type:function size:0x8 +fn_800B3EB4 = .text:0x800B3EB4; // type:function size:0x30 +PPCMfmsr = .text:0x800B3EE4; // type:function size:0x8 scope:global +PPCMtmsr = .text:0x800B3EEC; // type:function size:0x8 scope:global +PPCMfhid0 = .text:0x800B3EF4; // type:function size:0x8 scope:global +fn_800B3EFC = .text:0x800B3EFC; // type:function size:0x8 +PPCMfl2cr = .text:0x800B3F04; // type:function size:0x8 scope:global +PPCMtl2cr = .text:0x800B3F0C; // type:function size:0x8 scope:global +PPCMtdec = .text:0x800B3F14; // type:function size:0x8 scope:weak +fn_800B3F1C = .text:0x800B3F1C; // type:function size:0x8 +PPCHalt = .text:0x800B3F24; // type:function size:0x14 scope:weak +PPCMfhid2 = .text:0x800B3F38; // type:function size:0x8 scope:global +PPCMthid2 = .text:0x800B3F40; // type:function size:0x8 scope:global +fn_800B3F48 = .text:0x800B3F48; // type:function size:0xC +PPCMtwpar = .text:0x800B3F54; // type:function size:0x8 scope:global +PPCDisableSpeculation = .text:0x800B3F5C; // type:function size:0x28 scope:global +PPCSetFpNonIEEEMode = .text:0x800B3F84; // type:function size:0x8 scope:global +OSGetConsoleType = .text:0x800B3F8C; // type:function size:0x28 scope:global +ClearArena = .text:0x800B3FB4; // type:function size:0x128 scope:local +InquiryCallback = .text:0x800B40DC; // type:function size:0x3C scope:local +OSInit = .text:0x800B4118; // type:function size:0x3B8 scope:global +OSExceptionInit = .text:0x800B44D0; // type:function size:0x280 scope:local +__OSDBINTSTART = .text:0x800B4750; // type:label scope:global +__OSDBIntegrator = .text:0x800B4750; // type:function size:0x24 scope:local +__OSDBINTEND = .text:0x800B4774; // type:label scope:global +fn_800B4774 = .text:0x800B4774; // type:function size:0x4 +__OSDBJUMPEND = .text:0x800B4778; // type:label scope:global +__OSSetExceptionHandler = .text:0x800B4778; // type:function size:0x1C scope:global +__OSGetExceptionHandler = .text:0x800B4794; // type:function size:0x14 scope:global +__OSEVStart = .text:0x800B47A8; // type:label scope:global +OSExceptionVector = .text:0x800B47A8; // type:function size:0x9C scope:local +__DBVECTOR = .text:0x800B4800; // type:label scope:global data:4byte +__OSEVSetNumber = .text:0x800B4810; // type:label scope:global data:4byte +__OSEVEnd = .text:0x800B4840; // type:label scope:global +OSDefaultExceptionHandler = .text:0x800B4844; // type:function size:0x58 scope:global +__OSPSInit = .text:0x800B489C; // type:function size:0x38 scope:global +fn_800B48D4 = .text:0x800B48D4; // type:function size:0x14 +OSInitAlarm = .text:0x800B48E8; // type:function size:0x4C scope:global +OSCreateAlarm = .text:0x800B4934; // type:function size:0xC scope:global +InsertAlarm = .text:0x800B4940; // type:function size:0x250 scope:local +OSSetAlarm = .text:0x800B4B90; // type:function size:0x68 scope:global +fn_800B4BF8 = .text:0x800B4BF8; // type:function size:0x11C +DecrementerExceptionCallback = .text:0x800B4D14; // type:function size:0x230 scope:local +DecrementerExceptionHandler = .text:0x800B4F44; // type:function size:0x50 scope:local +fn_800B4F94 = .text:0x800B4F94; // type:function size:0xAC +fn_800B5040 = .text:0x800B5040; // type:function size:0xFC +fn_800B513C = .text:0x800B513C; // type:function size:0x284 +fn_800B53C0 = .text:0x800B53C0; // type:function size:0x7C +fn_800B543C = .text:0x800B543C; // type:function size:0x10 +fn_800B544C = .text:0x800B544C; // type:function size:0x70 +fn_800B54BC = .text:0x800B54BC; // type:function size:0x6C +fn_800B5528 = .text:0x800B5528; // type:function size:0x360 +fn_800B5888 = .text:0x800B5888; // type:function size:0x104 +OSGetArenaHi = .text:0x800B598C; // type:function size:0x8 scope:global +OSGetArenaLo = .text:0x800B5994; // type:function size:0x8 scope:global +OSSetArenaHi = .text:0x800B599C; // type:function size:0x8 scope:global +OSSetArenaLo = .text:0x800B59A4; // type:function size:0x8 scope:global +__OSInitAudioSystem = .text:0x800B59AC; // type:function size:0x1BC scope:global +__OSStopAudioSystem = .text:0x800B5B68; // type:function size:0xD8 scope:global +DCEnable = .text:0x800B5C40; // type:function size:0x14 scope:global +DCInvalidateRange = .text:0x800B5C54; // type:function size:0x30 scope:global +DCFlushRange = .text:0x800B5C84; // type:function size:0x34 scope:global +fn_800B5CB8 = .text:0x800B5CB8; // type:function size:0x34 +DCFlushRangeNoSync = .text:0x800B5CEC; // type:function size:0x30 scope:global +fn_800B5D1C = .text:0x800B5D1C; // type:function size:0x30 +fn_800B5D4C = .text:0x800B5D4C; // type:function size:0x30 +ICInvalidateRange = .text:0x800B5D7C; // type:function size:0x38 scope:global +ICFlashInvalidate = .text:0x800B5DB4; // type:function size:0x10 scope:global +ICEnable = .text:0x800B5DC4; // type:function size:0x14 scope:global +fn_800B5DD8 = .text:0x800B5DD8; // type:function size:0xCC +fn_800B5EA4 = .text:0x800B5EA4; // type:function size:0x38 +LCDisable = .text:0x800B5EDC; // type:function size:0x28 scope:global +fn_800B5F04 = .text:0x800B5F04; // type:function size:0x24 +fn_800B5F28 = .text:0x800B5F28; // type:function size:0xAC +fn_800B5FD4 = .text:0x800B5FD4; // type:function size:0x18 +L2GlobalInvalidate = .text:0x800B5FEC; // type:function size:0x98 scope:global +DMAErrorHandler = .text:0x800B6084; // type:function size:0x160 scope:global +__OSCacheInit = .text:0x800B61E4; // type:function size:0xF4 scope:global +__OSLoadFPUContext = .text:0x800B62D8; // type:function size:0x124 scope:local +__OSSaveFPUContext = .text:0x800B63FC; // type:function size:0x128 scope:local +OSSetCurrentContext = .text:0x800B6524; // type:function size:0x5C scope:global +fn_800B6580 = .text:0x800B6580; // type:function size:0xC +fn_800B658C = .text:0x800B658C; // type:function size:0x80 +OSLoadContext = .text:0x800B660C; // type:function size:0xD8 scope:global +OSClearContext = .text:0x800B66E4; // type:function size:0x24 scope:global +fn_800B6708 = .text:0x800B6708; // type:function size:0xBC +OSDumpContext = .text:0x800B67C4; // type:function size:0x2A8 scope:global +OSSwitchFPUContext = .text:0x800B6A6C; // type:function size:0x84 scope:local +__OSContextInit = .text:0x800B6AF0; // type:function size:0x48 scope:global +OSReport = .text:0x800B6B38; // type:function size:0x80 scope:global +OSSetErrorHandler = .text:0x800B6BB8; // type:function size:0x1C scope:global +__OSUnhandledException = .text:0x800B6BD4; // type:function size:0x200 scope:global +fn_800B6DD4 = .text:0x800B6DD4; // type:function size:0x58 +OSDisableInterrupts = .text:0x800B6E2C; // type:function size:0x14 scope:global +OSEnableInterrupts = .text:0x800B6E40; // type:function size:0x14 scope:global +OSRestoreInterrupts = .text:0x800B6E54; // type:function size:0x24 scope:global +__OSSetInterruptHandler = .text:0x800B6E78; // type:function size:0x1C scope:global +fn_800B6E94 = .text:0x800B6E94; // type:function size:0x14 +__OSInterruptInit = .text:0x800B6EA8; // type:function size:0x74 scope:global +fn_800B6F1C = .text:0x800B6F1C; // type:function size:0x2D8 +__OSMaskInterrupts = .text:0x800B71F4; // type:function size:0x88 scope:global +__OSUnmaskInterrupts = .text:0x800B727C; // type:function size:0x88 scope:global +fn_800B7304 = .text:0x800B7304; // type:function size:0x344 +ExternalInterruptHandler = .text:0x800B7648; // type:function size:0x50 scope:local +fn_800B7698 = .text:0x800B7698; // type:function size:0x4 +fn_800B769C = .text:0x800B769C; // type:function size:0x4 +fn_800B76A0 = .text:0x800B76A0; // type:function size:0x274 +fn_800B7914 = .text:0x800B7914; // type:function size:0x250 +fn_800B7B64 = .text:0x800B7B64; // type:function size:0x20C +fn_800B7D70 = .text:0x800B7D70; // type:function size:0x94 +__OSModuleInit = .text:0x800B7E04; // type:function size:0x18 scope:global +fn_800B7E1C = .text:0x800B7E1C; // type:function size:0x60 +fn_800B7E7C = .text:0x800B7E7C; // type:function size:0xC +fn_800B7E88 = .text:0x800B7E88; // type:function size:0xC +fn_800B7E94 = .text:0x800B7E94; // type:function size:0x3C +MEMIntrruptHandler = .text:0x800B7ED0; // type:function size:0x6C scope:local +Config24MB = .text:0x800B7F3C; // type:function size:0x80 scope:local +Config48MB = .text:0x800B7FBC; // type:function size:0x80 scope:local +RealMode = .text:0x800B803C; // type:function size:0x18 scope:local +__OSInitMemoryProtection = .text:0x800B8054; // type:function size:0x120 scope:global +fn_800B8174 = .text:0x800B8174; // type:function size:0x70 +fn_800B81E4 = .text:0x800B81E4; // type:function size:0x2C +fn_800B8210 = .text:0x800B8210; // type:function size:0x14 +fn_800B8224 = .text:0x800B8224; // type:function size:0xC +__OSReboot = .text:0x800B8230; // type:function size:0x1C0 scope:global +OSRegisterResetFunction = .text:0x800B83F0; // type:function size:0x84 scope:global +Reset = .text:0x800B8474; // type:function size:0x70 scope:local +fn_800B84E4 = .text:0x800B84E4; // type:function size:0x48 +OSResetSystem = .text:0x800B852C; // type:function size:0x278 scope:global +OSGetResetCode = .text:0x800B87A4; // type:function size:0x30 scope:global +__OSResetSWInterruptHandler = .text:0x800B87D4; // type:function size:0xF4 scope:global +fn_800B88C8 = .text:0x800B88C8; // type:function size:0x298 +fn_800B8B60 = .text:0x800B8B60; // type:function size:0x60 +fn_800B8BC0 = .text:0x800B8BC0; // type:function size:0x118 +__OSInitSram = .text:0x800B8CD8; // type:function size:0x134 scope:global +__OSLockSram = .text:0x800B8E0C; // type:function size:0x5C scope:global +__OSLockSramEx = .text:0x800B8E68; // type:function size:0x5C scope:global +fn_800B8EC4 = .text:0x800B8EC4; // type:function size:0x308 +__OSUnlockSram = .text:0x800B91CC; // type:function size:0x24 scope:global +__OSUnlockSramEx = .text:0x800B91F0; // type:function size:0x24 scope:global +__OSSyncSram = .text:0x800B9214; // type:function size:0x10 scope:global +fn_800B9224 = .text:0x800B9224; // type:function size:0x80 +fn_800B92A4 = .text:0x800B92A4; // type:function size:0xA4 +fn_800B9348 = .text:0x800B9348; // type:function size:0x70 +fn_800B93B8 = .text:0x800B93B8; // type:function size:0xA4 +fn_800B945C = .text:0x800B945C; // type:function size:0x84 +fn_800B94E0 = .text:0x800B94E0; // type:function size:0xAC +fn_800B958C = .text:0x800B958C; // type:function size:0x2C +fn_800B95B8 = .text:0x800B95B8; // type:function size:0x3C +fn_800B95F4 = .text:0x800B95F4; // type:function size:0xCC +fn_800B96C0 = .text:0x800B96C0; // type:function size:0x70 +fn_800B9730 = .text:0x800B9730; // type:function size:0x28 +fn_800B9758 = .text:0x800B9758; // type:function size:0x1A4 +__OSSystemCallVectorStart = .text:0x800B98FC; // type:label scope:global +fn_800B98FC = .text:0x800B98FC; // type:function size:0x20 +__OSSystemCallVectorEnd = .text:0x800B9918; // type:label scope:global +__OSInitSystemCall = .text:0x800B991C; // type:function size:0x64 scope:global +__OSThreadInit = .text:0x800B9980; // type:function size:0x128 scope:global +OSInitThreadQueue = .text:0x800B9AA8; // type:function size:0x10 scope:global +fn_800B9AB8 = .text:0x800B9AB8; // type:function size:0xC +OSDisableScheduler = .text:0x800B9AC4; // type:function size:0x40 scope:global +OSEnableScheduler = .text:0x800B9B04; // type:function size:0x40 scope:global +fn_800B9B44 = .text:0x800B9B44; // type:function size:0x68 +fn_800B9BAC = .text:0x800B9BAC; // type:function size:0x3C +fn_800B9BE8 = .text:0x800B9BE8; // type:function size:0x1C0 +SelectThread = .text:0x800B9DA8; // type:function size:0x200 scope:local +__OSReschedule = .text:0x800B9FA8; // type:function size:0x30 scope:global +fn_800B9FD8 = .text:0x800B9FD8; // type:function size:0x3C +fn_800BA014 = .text:0x800BA014; // type:function size:0x120 +fn_800BA134 = .text:0x800BA134; // type:function size:0xE4 +OSCancelThread = .text:0x800BA218; // type:function size:0x1BC scope:global +fn_800BA3D4 = .text:0x800BA3D4; // type:function size:0x288 +fn_800BA65C = .text:0x800BA65C; // type:function size:0x170 +fn_800BA7CC = .text:0x800BA7CC; // type:function size:0xEC +fn_800BA8B8 = .text:0x800BA8B8; // type:function size:0x104 +fn_800BA9BC = .text:0x800BA9BC; // type:function size:0x90 +OSGetTime = .text:0x800BAA4C; // type:function size:0x18 scope:global +OSGetTick = .text:0x800BAA64; // type:function size:0x8 scope:global +__OSGetSystemTime = .text:0x800BAA6C; // type:function size:0x64 scope:global +fn_800BAAD0 = .text:0x800BAAD0; // type:function size:0x19C +fn_800BAC6C = .text:0x800BAC6C; // type:function size:0x204 +__init_user = .text:0x800BAE70; // type:function size:0x20 scope:global +__init_cpp = .text:0x800BAE90; // type:function size:0x54 scope:local +_ExitProcess = .text:0x800BAEE4; // type:function size:0x20 scope:global +DBInit = .text:0x800BAF04; // type:function size:0x28 scope:global +fn_800BAF2C = .text:0x800BAF2C; // type:function size:0x48 +__DBExceptionDestination = .text:0x800BAF74; // type:function size:0x10 scope:global +__DBIsExceptionMarked = .text:0x800BAF84; // type:function size:0x1C scope:global +DBPrintf = .text:0x800BAFA0; // type:function size:0x50 scope:global +fn_800BAFF0 = .text:0x800BAFF0; // type:function size:0x2C +fn_800BB01C = .text:0x800BB01C; // type:function size:0x34 +fn_800BB050 = .text:0x800BB050; // type:function size:0xCC +fn_800BB11C = .text:0x800BB11C; // type:function size:0x50 +fn_800BB16C = .text:0x800BB16C; // type:function size:0xF8 +fn_800BB264 = .text:0x800BB264; // type:function size:0xC8 +fn_800BB32C = .text:0x800BB32C; // type:function size:0x70 +fn_800BB39C = .text:0x800BB39C; // type:function size:0xA8 +fn_800BB444 = .text:0x800BB444; // type:function size:0x104 +fn_800BB548 = .text:0x800BB548; // type:function size:0x34 +fn_800BB57C = .text:0x800BB57C; // type:function size:0x28 +fn_800BB5A4 = .text:0x800BB5A4; // type:function size:0xA4 +fn_800BB648 = .text:0x800BB648; // type:function size:0x18C +fn_800BB7D4 = .text:0x800BB7D4; // type:function size:0xCC +fn_800BB8A0 = .text:0x800BB8A0; // type:function size:0x54 +fn_800BB8F4 = .text:0x800BB8F4; // type:function size:0x8C +fn_800BB980 = .text:0x800BB980; // type:function size:0x54 +fn_800BB9D4 = .text:0x800BB9D4; // type:function size:0xD0 +fn_800BBAA4 = .text:0x800BBAA4; // type:function size:0x98 +fn_800BBB3C = .text:0x800BBB3C; // type:function size:0x24 +fn_800BBB60 = .text:0x800BBB60; // type:function size:0x24 +fn_800BBB84 = .text:0x800BBB84; // type:function size:0x1C +fn_800BBBA0 = .text:0x800BBBA0; // type:function size:0x44 +fn_800BBBE4 = .text:0x800BBBE4; // type:function size:0x18 +fn_800BBBFC = .text:0x800BBBFC; // type:function size:0x3C +fn_800BBC38 = .text:0x800BBC38; // type:function size:0x20 +fn_800BBC58 = .text:0x800BBC58; // type:function size:0x3C +fn_800BBC94 = .text:0x800BBC94; // type:function size:0xD8 +fn_800BBD6C = .text:0x800BBD6C; // type:function size:0xD4 +fn_800BBE40 = .text:0x800BBE40; // type:function size:0x28 +fn_800BBE68 = .text:0x800BBE68; // type:function size:0x4C +fn_800BBEB4 = .text:0x800BBEB4; // type:function size:0x44 +fn_800BBEF8 = .text:0x800BBEF8; // type:function size:0x24 +fn_800BBF1C = .text:0x800BBF1C; // type:function size:0x5C +fn_800BBF78 = .text:0x800BBF78; // type:function size:0x54 +fn_800BBFCC = .text:0x800BBFCC; // type:function size:0x50 +fn_800BC01C = .text:0x800BC01C; // type:function size:0x8C +fn_800BC0A8 = .text:0x800BC0A8; // type:function size:0x258 +fn_800BC300 = .text:0x800BC300; // type:function size:0x174 +fn_800BC474 = .text:0x800BC474; // type:function size:0x4C +fn_800BC4C0 = .text:0x800BC4C0; // type:function size:0x118 +__DVDInitWA = .text:0x800BC5D8; // type:function size:0x40 scope:global +__DVDInterruptHandler = .text:0x800BC618; // type:function size:0x2F4 scope:global +fn_800BC90C = .text:0x800BC90C; // type:function size:0x84 +AlarmHandlerForTimeout = .text:0x800BC990; // type:function size:0x70 scope:local +fn_800BCA00 = .text:0x800BCA00; // type:function size:0x110 +fn_800BCB10 = .text:0x800BCB10; // type:function size:0x80 +fn_800BCB90 = .text:0x800BCB90; // type:function size:0x298 +fn_800BCE28 = .text:0x800BCE28; // type:function size:0x94 +DVDLowWaitCoverClose = .text:0x800BCEBC; // type:function size:0x2C scope:global +fn_800BCEE8 = .text:0x800BCEE8; // type:function size:0xA4 +DVDLowStopMotor = .text:0x800BCF8C; // type:function size:0x8C scope:global +fn_800BD018 = .text:0x800BD018; // type:function size:0x8C +fn_800BD0A4 = .text:0x800BD0A4; // type:function size:0x9C +fn_800BD140 = .text:0x800BD140; // type:function size:0x98 +fn_800BD1D8 = .text:0x800BD1D8; // type:function size:0x8C +fn_800BD264 = .text:0x800BD264; // type:function size:0x9C +DVDLowReset = .text:0x800BD300; // type:function size:0xBC scope:global +fn_800BD3BC = .text:0x800BD3BC; // type:function size:0x14 +fn_800BD3D0 = .text:0x800BD3D0; // type:function size:0x18 +__DVDLowSetWAType = .text:0x800BD3E8; // type:function size:0x44 scope:global +__DVDFSInit = .text:0x800BD42C; // type:function size:0x38 scope:global +fn_800BD464 = .text:0x800BD464; // type:function size:0x2F4 +fn_800BD758 = .text:0x800BD758; // type:function size:0x74 +fn_800BD7CC = .text:0x800BD7CC; // type:function size:0xC8 +fn_800BD894 = .text:0x800BD894; // type:function size:0x24 +fn_800BD8B8 = .text:0x800BD8B8; // type:function size:0x160 +fn_800BDA18 = .text:0x800BDA18; // type:function size:0xC4 +fn_800BDADC = .text:0x800BDADC; // type:function size:0xC0 +fn_800BDB9C = .text:0x800BDB9C; // type:function size:0x30 +fn_800BDBCC = .text:0x800BDBCC; // type:function size:0x118 +fn_800BDCE4 = .text:0x800BDCE4; // type:function size:0x24 +DVDInit = .text:0x800BDD08; // type:function size:0xFC scope:global +fn_800BDE04 = .text:0x800BDE04; // type:function size:0x54 +fn_800BDE58 = .text:0x800BDE58; // type:function size:0x80 +cbForStateError = .text:0x800BDED8; // type:function size:0xA8 scope:local +fn_800BDF80 = .text:0x800BDF80; // type:function size:0x9C +fn_800BE01C = .text:0x800BE01C; // type:function size:0x28 +fn_800BE044 = .text:0x800BE044; // type:function size:0xB4 +fn_800BE0F8 = .text:0x800BE0F8; // type:function size:0x294 +fn_800BE38C = .text:0x800BE38C; // type:function size:0x68 +fn_800BE3F4 = .text:0x800BE3F4; // type:function size:0x98 +fn_800BE48C = .text:0x800BE48C; // type:function size:0x28 +fn_800BE4B4 = .text:0x800BE4B4; // type:function size:0x158 +fn_800BE60C = .text:0x800BE60C; // type:function size:0xE4 +fn_800BE6F0 = .text:0x800BE6F0; // type:function size:0x34 +fn_800BE724 = .text:0x800BE724; // type:function size:0x38 +fn_800BE75C = .text:0x800BE75C; // type:function size:0x114 +fn_800BE870 = .text:0x800BE870; // type:function size:0xA4 +fn_800BE914 = .text:0x800BE914; // type:function size:0xFC +AlarmHandler = .text:0x800BEA10; // type:function size:0x44 scope:local +fn_800BEA54 = .text:0x800BEA54; // type:function size:0xCC +fn_800BEB20 = .text:0x800BEB20; // type:function size:0x30 +fn_800BEB50 = .text:0x800BEB50; // type:function size:0x70 +fn_800BEBC0 = .text:0x800BEBC0; // type:function size:0x28 +cbForStateMotorStopped = .text:0x800BEBE8; // type:function size:0xE4 scope:local +stateReady = .text:0x800BECCC; // type:function size:0x248 scope:local +stateBusy = .text:0x800BEF14; // type:function size:0x2C0 scope:local +fn_800BF1D4 = .text:0x800BF1D4; // type:function size:0x5D4 +fn_800BF7A8 = .text:0x800BF7A8; // type:function size:0xDC +fn_800BF884 = .text:0x800BF884; // type:function size:0xD0 +DVDReadDiskID = .text:0x800BF954; // type:function size:0xD4 scope:global +DVDInquiryAsync = .text:0x800BFA28; // type:function size:0xD0 scope:global +DVDReset = .text:0x800BFAF8; // type:function size:0x44 scope:global +fn_800BFB3C = .text:0x800BFB3C; // type:function size:0x4C +DVDGetDriveStatus = .text:0x800BFB88; // type:function size:0xAC scope:global +fn_800BFC34 = .text:0x800BFC34; // type:function size:0x10 +fn_800BFC44 = .text:0x800BFC44; // type:function size:0x270 +fn_800BFEB4 = .text:0x800BFEB4; // type:function size:0xAC +fn_800BFF60 = .text:0x800BFF60; // type:function size:0x24 +fn_800BFF84 = .text:0x800BFF84; // type:function size:0x8 +fn_800BFF8C = .text:0x800BFF8C; // type:function size:0xE4 +fn_800C0070 = .text:0x800C0070; // type:function size:0x11C +__DVDClearWaitingQueue = .text:0x800C018C; // type:function size:0x38 scope:global +__DVDPushWaitingQueue = .text:0x800C01C4; // type:function size:0x68 scope:global +__DVDPopWaitingQueue = .text:0x800C022C; // type:function size:0xA0 scope:global +__DVDCheckWaitingQueue = .text:0x800C02CC; // type:function size:0x58 scope:global +fn_800C0324 = .text:0x800C0324; // type:function size:0x60 +ErrorCode2Num = .text:0x800C0384; // type:function size:0x11C scope:local +__DVDStoreErrorCode = .text:0x800C04A0; // type:function size:0x7C scope:global +cb = .text:0x800C051C; // type:function size:0xD8 scope:local +__fstLoad = .text:0x800C05F4; // type:function size:0x168 scope:global +fn_800C075C = .text:0x800C075C; // type:function size:0x228 +fn_800C0984 = .text:0x800C0984; // type:function size:0x44 +fn_800C09C8 = .text:0x800C09C8; // type:function size:0x44 +fn_800C0A0C = .text:0x800C0A0C; // type:function size:0x90 +fn_800C0A9C = .text:0x800C0A9C; // type:function size:0x1F8 +fn_800C0C94 = .text:0x800C0C94; // type:function size:0x478 +fn_800C110C = .text:0x800C110C; // type:function size:0x54 +fn_800C1160 = .text:0x800C1160; // type:function size:0x2D4 +fn_800C1434 = .text:0x800C1434; // type:function size:0x1A0 +fn_800C15D4 = .text:0x800C15D4; // type:function size:0x79C +fn_800C1D70 = .text:0x800C1D70; // type:function size:0x394 +fn_800C2104 = .text:0x800C2104; // type:function size:0x11C +fn_800C2220 = .text:0x800C2220; // type:function size:0x6C +fn_800C228C = .text:0x800C228C; // type:function size:0x7C +fn_800C2308 = .text:0x800C2308; // type:function size:0x8 +fn_800C2310 = .text:0x800C2310; // type:function size:0x68 +fn_800C2378 = .text:0x800C2378; // type:function size:0xA8 +fn_800C2420 = .text:0x800C2420; // type:function size:0x98 +VIGetTvFormat = .text:0x800C24B8; // type:function size:0x7C scope:global +fn_800C2534 = .text:0x800C2534; // type:function size:0x3C +fn_800C2570 = .text:0x800C2570; // type:function size:0x8 +fn_800C2578 = .text:0x800C2578; // type:function size:0x228 +fn_800C27A0 = .text:0x800C27A0; // type:function size:0x310 +fn_800C2AB0 = .text:0x800C2AB0; // type:function size:0xC4 +fn_800C2B74 = .text:0x800C2B74; // type:function size:0x394 +fn_800C2F08 = .text:0x800C2F08; // type:function size:0x58 +fn_800C2F60 = .text:0x800C2F60; // type:function size:0x96C +fn_800C38CC = .text:0x800C38CC; // type:function size:0x130 +fn_800C39FC = .text:0x800C39FC; // type:function size:0x108 +fn_800C3B04 = .text:0x800C3B04; // type:function size:0x1A4 +fn_800C3CA8 = .text:0x800C3CA8; // type:function size:0xC4 +fn_800C3D6C = .text:0x800C3D6C; // type:function size:0xC0 +fn_800C3E2C = .text:0x800C3E2C; // type:function size:0xD8 +fn_800C3F04 = .text:0x800C3F04; // type:function size:0x32C +fn_800C4230 = .text:0x800C4230; // type:function size:0x134 +fn_800C4364 = .text:0x800C4364; // type:function size:0x100 +fn_800C4464 = .text:0x800C4464; // type:function size:0x104 +fn_800C4568 = .text:0x800C4568; // type:function size:0x210 +fn_800C4778 = .text:0x800C4778; // type:function size:0x3AC +fn_800C4B24 = .text:0x800C4B24; // type:function size:0xA4 +fn_800C4BC8 = .text:0x800C4BC8; // type:function size:0x60 +fn_800C4C28 = .text:0x800C4C28; // type:function size:0x174 +fn_800C4D9C = .text:0x800C4D9C; // type:function size:0x174 +fn_800C4F10 = .text:0x800C4F10; // type:function size:0x3F8 +fn_800C5308 = .text:0x800C5308; // type:function size:0x194 +fn_800C549C = .text:0x800C549C; // type:function size:0x60 +fn_800C54FC = .text:0x800C54FC; // type:function size:0x54 +__PADDisableRecalibration = .text:0x800C5550; // type:function size:0x7C scope:global +fn_800C55CC = .text:0x800C55CC; // type:function size:0x44 +fn_800C5610 = .text:0x800C5610; // type:function size:0x88 +fn_800C5698 = .text:0x800C5698; // type:function size:0x18 +fn_800C56B0 = .text:0x800C56B0; // type:function size:0x18 +fn_800C56C8 = .text:0x800C56C8; // type:function size:0x1C +fn_800C56E4 = .text:0x800C56E4; // type:function size:0xD8 +fn_800C57BC = .text:0x800C57BC; // type:function size:0x10 +fn_800C57CC = .text:0x800C57CC; // type:function size:0xE0 +fn_800C58AC = .text:0x800C58AC; // type:function size:0x14 +fn_800C58C0 = .text:0x800C58C0; // type:function size:0xD4 +fn_800C5994 = .text:0x800C5994; // type:function size:0x10 +fn_800C59A4 = .text:0x800C59A4; // type:function size:0x1C +fn_800C59C0 = .text:0x800C59C0; // type:function size:0x10 +fn_800C59D0 = .text:0x800C59D0; // type:function size:0x1C +fn_800C59EC = .text:0x800C59EC; // type:function size:0x10 +fn_800C59FC = .text:0x800C59FC; // type:function size:0x164 +fn_800C5B60 = .text:0x800C5B60; // type:function size:0x7C +fn_800C5BDC = .text:0x800C5BDC; // type:function size:0x90 +fn_800C5C6C = .text:0x800C5C6C; // type:function size:0x58 +fn_800C5CC4 = .text:0x800C5CC4; // type:function size:0x1E4 +fn_800C5EA8 = .text:0x800C5EA8; // type:function size:0x44 +fn_800C5EEC = .text:0x800C5EEC; // type:function size:0x3C +fn_800C5F28 = .text:0x800C5F28; // type:function size:0xF0 +fn_800C6018 = .text:0x800C6018; // type:function size:0x68 +fn_800C6080 = .text:0x800C6080; // type:function size:0x74 +fn_800C60F4 = .text:0x800C60F4; // type:function size:0x8 +fn_800C60FC = .text:0x800C60FC; // type:function size:0xBC +fn_800C61B8 = .text:0x800C61B8; // type:function size:0x4 +fn_800C61BC = .text:0x800C61BC; // type:function size:0x8 +fn_800C61C4 = .text:0x800C61C4; // type:function size:0x8 +fn_800C61CC = .text:0x800C61CC; // type:function size:0x78 +fn_800C6244 = .text:0x800C6244; // type:function size:0x914 +fn_800C6B58 = .text:0x800C6B58; // type:function size:0x100 +fn_800C6C58 = .text:0x800C6C58; // type:function size:0x4 +fn_800C6C5C = .text:0x800C6C5C; // type:function size:0xCC +fn_800C6D28 = .text:0x800C6D28; // type:function size:0x68 +fn_800C6D90 = .text:0x800C6D90; // type:function size:0x15C +fn_800C6EEC = .text:0x800C6EEC; // type:function size:0x10 +fn_800C6EFC = .text:0x800C6EFC; // type:function size:0x10 +fn_800C6F0C = .text:0x800C6F0C; // type:function size:0x18 +fn_800C6F24 = .text:0x800C6F24; // type:function size:0x14 +fn_800C6F38 = .text:0x800C6F38; // type:function size:0xB8 +fn_800C6FF0 = .text:0x800C6FF0; // type:function size:0x48 +fn_800C7038 = .text:0x800C7038; // type:function size:0x40 +fn_800C7078 = .text:0x800C7078; // type:function size:0x10 +fn_800C7088 = .text:0x800C7088; // type:function size:0x70 +fn_800C70F8 = .text:0x800C70F8; // type:function size:0x50 +fn_800C7148 = .text:0x800C7148; // type:function size:0x424 +fn_800C756C = .text:0x800C756C; // type:function size:0x1A0 +fn_800C770C = .text:0x800C770C; // type:function size:0x18C +fn_800C7898 = .text:0x800C7898; // type:function size:0xA0 +fn_800C7938 = .text:0x800C7938; // type:function size:0x94 +fn_800C79CC = .text:0x800C79CC; // type:function size:0x7C +fn_800C7A48 = .text:0x800C7A48; // type:function size:0x24 +GXInit = .text:0x800C7A6C; // type:function size:0x7CC scope:global +__GXInitGX = .text:0x800C8238; // type:function size:0x884 scope:global +fn_800C8ABC = .text:0x800C8ABC; // type:function size:0x13C +GXInitFifoBase = .text:0x800C8BF8; // type:function size:0x6C scope:global +fn_800C8C64 = .text:0x800C8C64; // type:function size:0x70 +fn_800C8CD4 = .text:0x800C8CD4; // type:function size:0xC +GXSetCPUFifo = .text:0x800C8CE0; // type:function size:0x110 scope:global +GXSetGPFifo = .text:0x800C8DF0; // type:function size:0x178 scope:global +fn_800C8F68 = .text:0x800C8F68; // type:function size:0x20 +fn_800C8F88 = .text:0x800C8F88; // type:function size:0xDC +__GXFifoInit = .text:0x800C9064; // type:function size:0x4C scope:global +fn_800C90B0 = .text:0x800C90B0; // type:function size:0x28 +fn_800C90D8 = .text:0x800C90D8; // type:function size:0x24 +fn_800C90FC = .text:0x800C90FC; // type:function size:0x44 +fn_800C9140 = .text:0x800C9140; // type:function size:0x4C +fn_800C918C = .text:0x800C918C; // type:function size:0x4C +fn_800C91D8 = .text:0x800C91D8; // type:function size:0xFC +fn_800C92D4 = .text:0x800C92D4; // type:function size:0x8 +fn_800C92DC = .text:0x800C92DC; // type:function size:0x8 +fn_800C92E4 = .text:0x800C92E4; // type:function size:0x158 +fn_800C943C = .text:0x800C943C; // type:function size:0x360 +fn_800C979C = .text:0x800C979C; // type:function size:0x54 +fn_800C97F0 = .text:0x800C97F0; // type:function size:0x124 +fn_800C9914 = .text:0x800C9914; // type:function size:0x4C +fn_800C9960 = .text:0x800C9960; // type:function size:0x35C +fn_800C9CBC = .text:0x800C9CBC; // type:function size:0x9C +fn_800C9D58 = .text:0x800C9D58; // type:function size:0x8C +fn_800C9DE4 = .text:0x800C9DE4; // type:function size:0x10 +fn_800C9DF4 = .text:0x800C9DF4; // type:function size:0x2D0 +fn_800CA0C4 = .text:0x800CA0C4; // type:function size:0x48 +GXSetMisc = .text:0x800CA10C; // type:function size:0x78 scope:global +fn_800CA184 = .text:0x800CA184; // type:function size:0x5C +fn_800CA1E0 = .text:0x800CA1E0; // type:function size:0x34 +fn_800CA214 = .text:0x800CA214; // type:function size:0xCC +fn_800CA2E0 = .text:0x800CA2E0; // type:function size:0xB8 +fn_800CA398 = .text:0x800CA398; // type:function size:0x98 +fn_800CA430 = .text:0x800CA430; // type:function size:0x4C +fn_800CA47C = .text:0x800CA47C; // type:function size:0x80 +fn_800CA4FC = .text:0x800CA4FC; // type:function size:0x24 +fn_800CA520 = .text:0x800CA520; // type:function size:0x14 +fn_800CA534 = .text:0x800CA534; // type:function size:0x14 +fn_800CA548 = .text:0x800CA548; // type:function size:0x1C +fn_800CA564 = .text:0x800CA564; // type:function size:0x88 +fn_800CA5EC = .text:0x800CA5EC; // type:function size:0x1C +fn_800CA608 = .text:0x800CA608; // type:function size:0x14 +fn_800CA61C = .text:0x800CA61C; // type:function size:0x1C +fn_800CA638 = .text:0x800CA638; // type:function size:0x28 +fn_800CA660 = .text:0x800CA660; // type:function size:0x44 +fn_800CA6A4 = .text:0x800CA6A4; // type:function size:0x88 +fn_800CA72C = .text:0x800CA72C; // type:function size:0x84 +__GXPEInit = .text:0x800CA7B0; // type:function size:0x80 scope:global +fn_800CA830 = .text:0x800CA830; // type:function size:0xA0 +fn_800CA8D0 = .text:0x800CA8D0; // type:function size:0xF0 +fn_800CA9C0 = .text:0x800CA9C0; // type:function size:0x88 +fn_800CAA48 = .text:0x800CAA48; // type:function size:0x58 +fn_800CAAA0 = .text:0x800CAAA0; // type:function size:0x54 +fn_800CAAF4 = .text:0x800CAAF4; // type:function size:0x64 +fn_800CAB58 = .text:0x800CAB58; // type:function size:0x50 +fn_800CABA8 = .text:0x800CABA8; // type:function size:0x44 +fn_800CABEC = .text:0x800CABEC; // type:function size:0x24 +fn_800CAC10 = .text:0x800CAC10; // type:function size:0x120 +fn_800CAD30 = .text:0x800CAD30; // type:function size:0xC0 +fn_800CADF0 = .text:0x800CADF0; // type:function size:0xC0 +fn_800CAEB0 = .text:0x800CAEB0; // type:function size:0x44 +fn_800CAEF4 = .text:0x800CAEF4; // type:function size:0x170 +fn_800CB064 = .text:0x800CB064; // type:function size:0x2C +fn_800CB090 = .text:0x800CB090; // type:function size:0x7C +fn_800CB10C = .text:0x800CB10C; // type:function size:0xD4 +fn_800CB1E0 = .text:0x800CB1E0; // type:function size:0x68 +fn_800CB248 = .text:0x800CB248; // type:function size:0x228 +fn_800CB470 = .text:0x800CB470; // type:function size:0x1C +fn_800CB48C = .text:0x800CB48C; // type:function size:0x170 +fn_800CB5FC = .text:0x800CB5FC; // type:function size:0x190 +fn_800CB78C = .text:0x800CB78C; // type:function size:0x38 +fn_800CB7C4 = .text:0x800CB7C4; // type:function size:0x1C +fn_800CB7E0 = .text:0x800CB7E0; // type:function size:0x10 +fn_800CB7F0 = .text:0x800CB7F0; // type:function size:0x180 +fn_800CB970 = .text:0x800CB970; // type:function size:0xD0 +fn_800CBA40 = .text:0x800CBA40; // type:function size:0x10 +fn_800CBA50 = .text:0x800CBA50; // type:function size:0x1C +fn_800CBA6C = .text:0x800CBA6C; // type:function size:0xD4 +fn_800CBB40 = .text:0x800CBB40; // type:function size:0x28 +fn_800CBB68 = .text:0x800CBB68; // type:function size:0x148 +fn_800CBCB0 = .text:0x800CBCB0; // type:function size:0x168 +fn_800CBE18 = .text:0x800CBE18; // type:function size:0x168 +fn_800CBF80 = .text:0x800CBF80; // type:function size:0x4C +fn_800CBFCC = .text:0x800CBFCC; // type:function size:0x1E4 +fn_800CC1B0 = .text:0x800CC1B0; // type:function size:0x15C +fn_800CC30C = .text:0x800CC30C; // type:function size:0xC8 +fn_800CC3D4 = .text:0x800CC3D4; // type:function size:0x274 +fn_800CC648 = .text:0x800CC648; // type:function size:0x48 +fn_800CC690 = .text:0x800CC690; // type:function size:0x194 +fn_800CC824 = .text:0x800CC824; // type:function size:0x8 +fn_800CC82C = .text:0x800CC82C; // type:function size:0x1A8 +fn_800CC9D4 = .text:0x800CC9D4; // type:function size:0x54 +fn_800CCA28 = .text:0x800CCA28; // type:function size:0x48 +fn_800CCA70 = .text:0x800CCA70; // type:function size:0x9C +GXInitTexCacheRegion = .text:0x800CCB0C; // type:function size:0x120 scope:global +GXInitTlutRegion = .text:0x800CCC2C; // type:function size:0x48 scope:global +fn_800CCC74 = .text:0x800CCC74; // type:function size:0x48 +fn_800CCCBC = .text:0x800CCCBC; // type:function size:0x14 +fn_800CCCD0 = .text:0x800CCCD0; // type:function size:0x14 +fn_800CCCE4 = .text:0x800CCCE4; // type:function size:0x9C +fn_800CCD80 = .text:0x800CCD80; // type:function size:0xCC +fn_800CCE4C = .text:0x800CCE4C; // type:function size:0x17C +__GXSetTmemConfig = .text:0x800CCFC8; // type:function size:0x240 scope:global +fn_800CD208 = .text:0x800CD208; // type:function size:0x9C +fn_800CD2A4 = .text:0x800CD2A4; // type:function size:0x160 +fn_800CD404 = .text:0x800CD404; // type:function size:0x1D4 +fn_800CD5D8 = .text:0x800CD5D8; // type:function size:0x138 +fn_800CD710 = .text:0x800CD710; // type:function size:0x2C +fn_800CD73C = .text:0x800CD73C; // type:function size:0x48 +fn_800CD784 = .text:0x800CD784; // type:function size:0x64 +fn_800CD7E8 = .text:0x800CD7E8; // type:function size:0x1AC +fn_800CD994 = .text:0x800CD994; // type:function size:0xCC +__GXFlushTextureState = .text:0x800CDA60; // type:function size:0x24 scope:global +fn_800CDA84 = .text:0x800CDA84; // type:function size:0x1A4 +fn_800CDC28 = .text:0x800CDC28; // type:function size:0x80 +fn_800CDCA8 = .text:0x800CDCA8; // type:function size:0x84 +fn_800CDD2C = .text:0x800CDD2C; // type:function size:0xC0 +fn_800CDDEC = .text:0x800CDDEC; // type:function size:0xC0 +fn_800CDEAC = .text:0x800CDEAC; // type:function size:0x74 +fn_800CDF20 = .text:0x800CDF20; // type:function size:0x74 +fn_800CDF94 = .text:0x800CDF94; // type:function size:0x74 +fn_800CE008 = .text:0x800CE008; // type:function size:0x6C +fn_800CE074 = .text:0x800CE074; // type:function size:0x6C +fn_800CE0E0 = .text:0x800CE0E0; // type:function size:0x58 +fn_800CE138 = .text:0x800CE138; // type:function size:0xA0 +fn_800CE1D8 = .text:0x800CE1D8; // type:function size:0x50 +fn_800CE228 = .text:0x800CE228; // type:function size:0x84 +fn_800CE2AC = .text:0x800CE2AC; // type:function size:0x1DC +fn_800CE488 = .text:0x800CE488; // type:function size:0x34 +fn_800CE4BC = .text:0x800CE4BC; // type:function size:0x1B0 +fn_800CE66C = .text:0x800CE66C; // type:function size:0x100 +fn_800CE76C = .text:0x800CE76C; // type:function size:0x104 +fn_800CE870 = .text:0x800CE870; // type:function size:0x40 +fn_800CE8B0 = .text:0x800CE8B0; // type:function size:0x40 +fn_800CE8F0 = .text:0x800CE8F0; // type:function size:0x78 +fn_800CE968 = .text:0x800CE968; // type:function size:0x40 +fn_800CE9A8 = .text:0x800CE9A8; // type:function size:0x110 +fn_800CEAB8 = .text:0x800CEAB8; // type:function size:0x40 +fn_800CEAF8 = .text:0x800CEAF8; // type:function size:0x54 +fn_800CEB4C = .text:0x800CEB4C; // type:function size:0x38 +fn_800CEB84 = .text:0x800CEB84; // type:function size:0x80 +fn_800CEC04 = .text:0x800CEC04; // type:function size:0x4 +fn_800CEC08 = .text:0x800CEC08; // type:function size:0xC8 +fn_800CECD0 = .text:0x800CECD0; // type:function size:0xD4 +fn_800CEDA4 = .text:0x800CEDA4; // type:function size:0x70 +fn_800CEE14 = .text:0x800CEE14; // type:function size:0x174 +fn_800CEF88 = .text:0x800CEF88; // type:function size:0xD4 +fn_800CF05C = .text:0x800CF05C; // type:function size:0x78 +fn_800CF0D4 = .text:0x800CF0D4; // type:function size:0x34 +fn_800CF108 = .text:0x800CF108; // type:function size:0x34 +fn_800CF13C = .text:0x800CF13C; // type:function size:0x24 +fn_800CF160 = .text:0x800CF160; // type:function size:0x3C +fn_800CF19C = .text:0x800CF19C; // type:function size:0x40 +fn_800CF1DC = .text:0x800CF1DC; // type:function size:0x3C +fn_800CF218 = .text:0x800CF218; // type:function size:0x84 +fn_800CF29C = .text:0x800CF29C; // type:function size:0x11C +fn_800CF3B8 = .text:0x800CF3B8; // type:function size:0x24 +fn_800CF3DC = .text:0x800CF3DC; // type:function size:0x4C +fn_800CF428 = .text:0x800CF428; // type:function size:0xB0 +fn_800CF4D8 = .text:0x800CF4D8; // type:function size:0x44 +fn_800CF51C = .text:0x800CF51C; // type:function size:0x28 +fn_800CF544 = .text:0x800CF544; // type:function size:0x84 +fn_800CF5C8 = .text:0x800CF5C8; // type:function size:0x898 +fn_800CFE60 = .text:0x800CFE60; // type:function size:0x1A8 +fn_800D0008 = .text:0x800D0008; // type:function size:0x10 +fn_800D0018 = .text:0x800D0018; // type:function size:0x2C +fn_800D0044 = .text:0x800D0044; // type:function size:0x2C +fn_800D0070 = .text:0x800D0070; // type:function size:0x214 +fn_800D0284 = .text:0x800D0284; // type:function size:0xA8 +fn_800D032C = .text:0x800D032C; // type:function size:0x138 +fn_800D0464 = .text:0x800D0464; // type:function size:0x30 +fn_800D0494 = .text:0x800D0494; // type:function size:0x50 +fn_800D04E4 = .text:0x800D04E4; // type:function size:0x94 +fn_800D0578 = .text:0x800D0578; // type:function size:0x1C +fn_800D0594 = .text:0x800D0594; // type:function size:0x4 +fn_800D0598 = .text:0x800D0598; // type:function size:0x34 +fn_800D05CC = .text:0x800D05CC; // type:function size:0xD8 +fn_800D06A4 = .text:0x800D06A4; // type:function size:0x118 +fn_800D07BC = .text:0x800D07BC; // type:function size:0xA8 +fn_800D0864 = .text:0x800D0864; // type:function size:0x84 +fn_800D08E8 = .text:0x800D08E8; // type:function size:0xC0 +fn_800D09A8 = .text:0x800D09A8; // type:function size:0xF0 +fn_800D0A98 = .text:0x800D0A98; // type:function size:0xAC +fn_800D0B44 = .text:0x800D0B44; // type:function size:0xA4 +fn_800D0BE8 = .text:0x800D0BE8; // type:function size:0x22C +fn_800D0E14 = .text:0x800D0E14; // type:function size:0x110 +fn_800D0F24 = .text:0x800D0F24; // type:function size:0x1B4 +fn_800D10D8 = .text:0x800D10D8; // type:function size:0x134 +fn_800D120C = .text:0x800D120C; // type:function size:0x11C +fn_800D1328 = .text:0x800D1328; // type:function size:0xE0 +fn_800D1408 = .text:0x800D1408; // type:function size:0x9C +fn_800D14A4 = .text:0x800D14A4; // type:function size:0x38 +fn_800D14DC = .text:0x800D14DC; // type:function size:0xB8 +fn_800D1594 = .text:0x800D1594; // type:function size:0x64 +fn_800D15F8 = .text:0x800D15F8; // type:function size:0x150 +fn_800D1748 = .text:0x800D1748; // type:function size:0x84 +fn_800D17CC = .text:0x800D17CC; // type:function size:0x98 +fn_800D1864 = .text:0x800D1864; // type:function size:0x50 +fn_800D18B4 = .text:0x800D18B4; // type:function size:0x16C +fn_800D1A20 = .text:0x800D1A20; // type:function size:0x144 +fn_800D1B64 = .text:0x800D1B64; // type:function size:0xC4 +fn_800D1C28 = .text:0x800D1C28; // type:function size:0xB58 +fn_800D2780 = .text:0x800D2780; // type:function size:0x70 +fn_800D27F0 = .text:0x800D27F0; // type:function size:0x324 +fn_800D2B14 = .text:0x800D2B14; // type:function size:0xDC +fn_800D2BF0 = .text:0x800D2BF0; // type:function size:0x64 +fn_800D2C54 = .text:0x800D2C54; // type:function size:0xDC +fn_800D2D30 = .text:0x800D2D30; // type:function size:0x64 +fn_800D2D94 = .text:0x800D2D94; // type:function size:0x8 +fn_800D2D9C = .text:0x800D2D9C; // type:function size:0xD4 +fn_800D2E70 = .text:0x800D2E70; // type:function size:0xC8 +fn_800D2F38 = .text:0x800D2F38; // type:function size:0x118 +fn_800D3050 = .text:0x800D3050; // type:function size:0x9C +fn_800D30EC = .text:0x800D30EC; // type:function size:0xAC +fn_800D3198 = .text:0x800D3198; // type:function size:0x8 +fn_800D31A0 = .text:0x800D31A0; // type:function size:0xD0 +fn_800D3270 = .text:0x800D3270; // type:function size:0xC8 +fn_800D3338 = .text:0x800D3338; // type:function size:0xC4 +fn_800D33FC = .text:0x800D33FC; // type:function size:0x1B0 +fn_800D35AC = .text:0x800D35AC; // type:function size:0x284 +fn_800D3830 = .text:0x800D3830; // type:function size:0x240 +fn_800D3A70 = .text:0x800D3A70; // type:function size:0x284 +fn_800D3CF4 = .text:0x800D3CF4; // type:function size:0x8C +fn_800D3D80 = .text:0x800D3D80; // type:function size:0x590 +fn_800D4310 = .text:0x800D4310; // type:function size:0x54 +fn_800D4364 = .text:0x800D4364; // type:function size:0xCC +fn_800D4430 = .text:0x800D4430; // type:function size:0x17C +fn_800D45AC = .text:0x800D45AC; // type:function size:0x410 +fn_800D49BC = .text:0x800D49BC; // type:function size:0x138 +fn_800D4AF4 = .text:0x800D4AF4; // type:function size:0x1A0 +fn_800D4C94 = .text:0x800D4C94; // type:function size:0x48 +fn_800D4CDC = .text:0x800D4CDC; // type:function size:0x9C +fn_800D4D78 = .text:0x800D4D78; // type:function size:0xAC +fn_800D4E24 = .text:0x800D4E24; // type:function size:0x144 +fn_800D4F68 = .text:0x800D4F68; // type:function size:0x658 +fn_800D55C0 = .text:0x800D55C0; // type:function size:0x54 +fn_800D5614 = .text:0x800D5614; // type:function size:0x68 +fn_800D567C = .text:0x800D567C; // type:function size:0x98 +fn_800D5714 = .text:0x800D5714; // type:function size:0x30 +fn_800D5744 = .text:0x800D5744; // type:function size:0x150 +fn_800D5894 = .text:0x800D5894; // type:function size:0x178 +fn_800D5A0C = .text:0x800D5A0C; // type:function size:0x54 +fn_800D5A60 = .text:0x800D5A60; // type:function size:0x8 +fn_800D5A68 = .text:0x800D5A68; // type:function size:0x130 +fn_800D5B98 = .text:0x800D5B98; // type:function size:0x220 +fn_800D5DB8 = .text:0x800D5DB8; // type:function size:0x48 +fn_800D5E00 = .text:0x800D5E00; // type:function size:0x1B8 +fn_800D5FB8 = .text:0x800D5FB8; // type:function size:0x130 +fn_800D60E8 = .text:0x800D60E8; // type:function size:0x148 +fn_800D6230 = .text:0x800D6230; // type:function size:0x48 +fn_800D6278 = .text:0x800D6278; // type:function size:0x170 +fn_800D63E8 = .text:0x800D63E8; // type:function size:0xB0 +fn_800D6498 = .text:0x800D6498; // type:function size:0x114 +fn_800D65AC = .text:0x800D65AC; // type:function size:0x48 +fn_800D65F4 = .text:0x800D65F4; // type:function size:0xA4 +fn_800D6698 = .text:0x800D6698; // type:function size:0x110 +fn_800D67A8 = .text:0x800D67A8; // type:function size:0x48 +fn_800D67F0 = .text:0x800D67F0; // type:function size:0x1F8 +fn_800D69E8 = .text:0x800D69E8; // type:function size:0x12C +fn_800D6B14 = .text:0x800D6B14; // type:function size:0x174 +fn_800D6C88 = .text:0x800D6C88; // type:function size:0x48 +fn_800D6CD0 = .text:0x800D6CD0; // type:function size:0xC4 +fn_800D6D94 = .text:0x800D6D94; // type:function size:0xF4 +EXIImm = .text:0x800D6E88; // type:function size:0x25C scope:global +fn_800D70E4 = .text:0x800D70E4; // type:function size:0xA0 +EXIDma = .text:0x800D7184; // type:function size:0xEC scope:global +EXISync = .text:0x800D7270; // type:function size:0x238 scope:global +fn_800D74A8 = .text:0x800D74A8; // type:function size:0x48 +fn_800D74F0 = .text:0x800D74F0; // type:function size:0x7C +__EXIProbe = .text:0x800D756C; // type:function size:0x174 scope:local +fn_800D76E0 = .text:0x800D76E0; // type:function size:0x80 +fn_800D7760 = .text:0x800D7760; // type:function size:0xB4 +fn_800D7814 = .text:0x800D7814; // type:function size:0x10C +fn_800D7920 = .text:0x800D7920; // type:function size:0xBC +EXISelect = .text:0x800D79DC; // type:function size:0x12C scope:global +EXIDeselect = .text:0x800D7B08; // type:function size:0x110 scope:global +EXIIntrruptHandler = .text:0x800D7C18; // type:function size:0xC8 scope:local +TCIntrruptHandler = .text:0x800D7CE0; // type:function size:0x218 scope:local +EXTIntrruptHandler = .text:0x800D7EF8; // type:function size:0xD0 scope:local +EXIInit = .text:0x800D7FC8; // type:function size:0x114 scope:global +EXILock = .text:0x800D80DC; // type:function size:0xF4 scope:global +EXIUnlock = .text:0x800D81D0; // type:function size:0xDC scope:global +fn_800D82AC = .text:0x800D82AC; // type:function size:0x18 +fn_800D82C4 = .text:0x800D82C4; // type:function size:0x28 +fn_800D82EC = .text:0x800D82EC; // type:function size:0x37C +fn_800D8668 = .text:0x800D8668; // type:function size:0x70 +fn_800D86D8 = .text:0x800D86D8; // type:function size:0x200 +fn_800D88D8 = .text:0x800D88D8; // type:function size:0x20 +fn_800D88F8 = .text:0x800D88F8; // type:function size:0x3C +fn_800D8934 = .text:0x800D8934; // type:function size:0x2FC +SIInterruptHandler = .text:0x800D8C30; // type:function size:0x344 scope:local +fn_800D8F74 = .text:0x800D8F74; // type:function size:0x98 +fn_800D900C = .text:0x800D900C; // type:function size:0xCC +fn_800D90D8 = .text:0x800D90D8; // type:function size:0xF4 +SIInit = .text:0x800D91CC; // type:function size:0xA4 scope:global +fn_800D9270 = .text:0x800D9270; // type:function size:0x20C +fn_800D947C = .text:0x800D947C; // type:function size:0x7C +fn_800D94F8 = .text:0x800D94F8; // type:function size:0x14 +fn_800D950C = .text:0x800D950C; // type:function size:0x10 +SISetXY = .text:0x800D951C; // type:function size:0x6C scope:global +fn_800D9588 = .text:0x800D9588; // type:function size:0x9C +fn_800D9624 = .text:0x800D9624; // type:function size:0x6C +fn_800D9690 = .text:0x800D9690; // type:function size:0xD4 +fn_800D9764 = .text:0x800D9764; // type:function size:0xC4 +fn_800D9828 = .text:0x800D9828; // type:function size:0x8C +SITransfer = .text:0x800D98B4; // type:function size:0x16C scope:global +GetTypeCallback = .text:0x800D9A20; // type:function size:0x298 scope:local +SIGetType = .text:0x800D9CB8; // type:function size:0x1C4 scope:global +fn_800D9E7C = .text:0x800D9E7C; // type:function size:0x13C +SISetSamplingRate = .text:0x800D9FB8; // type:function size:0xE4 scope:global +fn_800DA09C = .text:0x800DA09C; // type:function size:0x24 +fn_800DA0C0 = .text:0x800DA0C0; // type:function size:0x244 +fn_800DA304 = .text:0x800DA304; // type:function size:0x44 +fn_800DA348 = .text:0x800DA348; // type:function size:0x13C +fn_800DA484 = .text:0x800DA484; // type:function size:0x11C +fn_800DA5A0 = .text:0x800DA5A0; // type:function size:0x3BC +fn_800DA95C = .text:0x800DA95C; // type:function size:0x1E0 +fn_800DAB3C = .text:0x800DAB3C; // type:function size:0xF0 +fn_800DAC2C = .text:0x800DAC2C; // type:function size:0x68 +fn_800DAC94 = .text:0x800DAC94; // type:function size:0x1BC +fn_800DAE50 = .text:0x800DAE50; // type:function size:0x54 +fn_800DAEA4 = .text:0x800DAEA4; // type:function size:0x24C +fn_800DB0F0 = .text:0x800DB0F0; // type:function size:0x10C +fn_800DB1FC = .text:0x800DB1FC; // type:function size:0x1A88 +fn_800DCC84 = .text:0x800DCC84; // type:function size:0x1A8C +fn_800DE710 = .text:0x800DE710; // type:function size:0x1AAC +fn_800E01BC = .text:0x800E01BC; // type:function size:0x67C +fn_800E0838 = .text:0x800E0838; // type:function size:0x6A8 +fn_800E0EE0 = .text:0x800E0EE0; // type:function size:0x6A8 +fn_800E1588 = .text:0x800E1588; // type:function size:0x78 +fn_800E1600 = .text:0x800E1600; // type:function size:0x464 +fn_800E1A64 = .text:0x800E1A64; // type:function size:0x90 +fn_800E1AF4 = .text:0x800E1AF4; // type:function size:0x3C +__va_arg = .text:0x800E1B30; // type:function size:0xC8 scope:global +__destroy_global_chain = .text:0x800E1BF8; // type:function size:0x48 scope:global +__register_global_object = .text:0x800E1C40; // type:function size:0x18 scope:global +fn_800E1C58 = .text:0x800E1C58; // type:function size:0x4C +fn_800E1CA4 = .text:0x800E1CA4; // type:function size:0x48 +fn_800E1CEC = .text:0x800E1CEC; // type:function size:0xC +fn_800E1CF8 = .text:0x800E1CF8; // type:function size:0x22C +fn_800E1F24 = .text:0x800E1F24; // type:function size:0x28 +fn_800E1F4C = .text:0x800E1F4C; // type:function size:0x28 +fn_800E1F74 = .text:0x800E1F74; // type:function size:0x28 +fn_800E1F9C = .text:0x800E1F9C; // type:function size:0x20 +fn_800E1FBC = .text:0x800E1FBC; // type:function size:0x5C +__save_fpr = .text:0x800E2018; // type:function size:0x4C scope:global +_savefpr_14 = .text:0x800E2018; // type:label scope:global +_savefpr_15 = .text:0x800E201C; // type:label scope:global +_savefpr_16 = .text:0x800E2020; // type:label scope:global +_savefpr_17 = .text:0x800E2024; // type:label scope:global +_savefpr_18 = .text:0x800E2028; // type:label scope:global +_savefpr_19 = .text:0x800E202C; // type:label scope:global +_savefpr_20 = .text:0x800E2030; // type:label scope:global +_savefpr_21 = .text:0x800E2034; // type:label scope:global +_savefpr_22 = .text:0x800E2038; // type:label scope:global +_savefpr_23 = .text:0x800E203C; // type:label scope:global +_savefpr_24 = .text:0x800E2040; // type:label scope:global +_savefpr_25 = .text:0x800E2044; // type:label scope:global +_savefpr_26 = .text:0x800E2048; // type:label scope:global +_savefpr_27 = .text:0x800E204C; // type:label scope:global +_savefpr_28 = .text:0x800E2050; // type:label scope:global +_savefpr_29 = .text:0x800E2054; // type:label scope:global +_savefpr_30 = .text:0x800E2058; // type:label scope:global +_savefpr_31 = .text:0x800E205C; // type:label scope:global +__restore_fpr = .text:0x800E2064; // type:function size:0x4C scope:global +_restfpr_14 = .text:0x800E2064; // type:label scope:global +_restfpr_15 = .text:0x800E2068; // type:label scope:global +_restfpr_16 = .text:0x800E206C; // type:label scope:global +_restfpr_17 = .text:0x800E2070; // type:label scope:global +_restfpr_18 = .text:0x800E2074; // type:label scope:global +_restfpr_19 = .text:0x800E2078; // type:label scope:global +_restfpr_20 = .text:0x800E207C; // type:label scope:global +_restfpr_21 = .text:0x800E2080; // type:label scope:global +_restfpr_22 = .text:0x800E2084; // type:label scope:global +_restfpr_23 = .text:0x800E2088; // type:label scope:global +_restfpr_24 = .text:0x800E208C; // type:label scope:global +_restfpr_25 = .text:0x800E2090; // type:label scope:global +_restfpr_26 = .text:0x800E2094; // type:label scope:global +_restfpr_27 = .text:0x800E2098; // type:label scope:global +_restfpr_28 = .text:0x800E209C; // type:label scope:global +_restfpr_29 = .text:0x800E20A0; // type:label scope:global +_restfpr_30 = .text:0x800E20A4; // type:label scope:global +_restfpr_31 = .text:0x800E20A8; // type:label scope:global +__save_gpr = .text:0x800E20B0; // type:function size:0x4C scope:global +_savegpr_14 = .text:0x800E20B0; // type:label scope:global +_savegpr_15 = .text:0x800E20B4; // type:label scope:global +_savegpr_16 = .text:0x800E20B8; // type:label scope:global +_savegpr_17 = .text:0x800E20BC; // type:label scope:global +_savegpr_18 = .text:0x800E20C0; // type:label scope:global +_savegpr_19 = .text:0x800E20C4; // type:label scope:global +_savegpr_20 = .text:0x800E20C8; // type:label scope:global +_savegpr_21 = .text:0x800E20CC; // type:label scope:global +_savegpr_22 = .text:0x800E20D0; // type:label scope:global +_savegpr_23 = .text:0x800E20D4; // type:label scope:global +_savegpr_24 = .text:0x800E20D8; // type:label scope:global +_savegpr_25 = .text:0x800E20DC; // type:label scope:global +_savegpr_26 = .text:0x800E20E0; // type:label scope:global +_savegpr_27 = .text:0x800E20E4; // type:label scope:global +_savegpr_28 = .text:0x800E20E8; // type:label scope:global +_savegpr_29 = .text:0x800E20EC; // type:label scope:global +_savegpr_30 = .text:0x800E20F0; // type:label scope:global +_savegpr_31 = .text:0x800E20F4; // type:label scope:global +__restore_gpr = .text:0x800E20FC; // type:function size:0x4C scope:global +_restgpr_14 = .text:0x800E20FC; // type:label scope:global +_restgpr_15 = .text:0x800E2100; // type:label scope:global +_restgpr_16 = .text:0x800E2104; // type:label scope:global +_restgpr_17 = .text:0x800E2108; // type:label scope:global +_restgpr_18 = .text:0x800E210C; // type:label scope:global +_restgpr_19 = .text:0x800E2110; // type:label scope:global +_restgpr_20 = .text:0x800E2114; // type:label scope:global +_restgpr_21 = .text:0x800E2118; // type:label scope:global +_restgpr_22 = .text:0x800E211C; // type:label scope:global +_restgpr_23 = .text:0x800E2120; // type:label scope:global +_restgpr_24 = .text:0x800E2124; // type:label scope:global +_restgpr_25 = .text:0x800E2128; // type:label scope:global +_restgpr_26 = .text:0x800E212C; // type:label scope:global +_restgpr_27 = .text:0x800E2130; // type:label scope:global +_restgpr_28 = .text:0x800E2134; // type:label scope:global +_restgpr_29 = .text:0x800E2138; // type:label scope:global +_restgpr_30 = .text:0x800E213C; // type:label scope:global +_restgpr_31 = .text:0x800E2140; // type:label scope:global +__div2u = .text:0x800E2148; // type:function size:0xEC scope:global +fn_800E2234 = .text:0x800E2234; // type:function size:0x138 +__mod2u = .text:0x800E236C; // type:function size:0xE4 scope:global +fn_800E2450 = .text:0x800E2450; // type:function size:0x10C +fn_800E255C = .text:0x800E255C; // type:function size:0x24 +fn_800E2580 = .text:0x800E2580; // type:function size:0x24 +fn_800E25A4 = .text:0x800E25A4; // type:function size:0x28 +fn_800E25CC = .text:0x800E25CC; // type:function size:0xCC +GetR2__Fv = .text:0x800E2698; // type:function size:0x8 scope:local +__fini_cpp_exceptions = .text:0x800E26A0; // type:function size:0x34 scope:global +__init_cpp_exceptions = .text:0x800E26D4; // type:function size:0x40 scope:global +fn_800E2714 = .text:0x800E2714; // type:function size:0x104 +fn_800E2818 = .text:0x800E2818; // type:function size:0x144 +fn_800E295C = .text:0x800E295C; // type:function size:0x44 +fn_800E29A0 = .text:0x800E29A0; // type:function size:0x410 +fn_800E2DB0 = .text:0x800E2DB0; // type:function size:0x1B4 +fn_800E2F64 = .text:0x800E2F64; // type:function size:0x5C +fn_800E2FC0 = .text:0x800E2FC0; // type:function size:0x50C +fn_800E34CC = .text:0x800E34CC; // type:function size:0x248 +fn_800E3714 = .text:0x800E3714; // type:function size:0x1C0 +fn_800E38D4 = .text:0x800E38D4; // type:function size:0x204 +__unregister_fragment = .text:0x800E3AD8; // type:function size:0x34 scope:global +__register_fragment = .text:0x800E3B0C; // type:function size:0x34 scope:global +fn_800E3B40 = .text:0x800E3B40; // type:function size:0xC +fn_800E3B4C = .text:0x800E3B4C; // type:function size:0xB8 +exit = .text:0x800E3C04; // type:function size:0xCC scope:global +fn_800E3CD0 = .text:0x800E3CD0; // type:function size:0x88 +fn_800E3D58 = .text:0x800E3D58; // type:function size:0x134 +fn_800E3E8C = .text:0x800E3E8C; // type:function size:0x1FC +fn_800E4088 = .text:0x800E4088; // type:function size:0xBC +fn_800E4144 = .text:0x800E4144; // type:function size:0x17C +fn_800E42C0 = .text:0x800E42C0; // type:function size:0x70 +__close_all = .text:0x800E4330; // type:function size:0x98 scope:global +fn_800E43C8 = .text:0x800E43C8; // type:function size:0x1A4 +fn_800E456C = .text:0x800E456C; // type:function size:0x23C +fn_800E47A8 = .text:0x800E47A8; // type:function size:0x340 +fn_800E4AE8 = .text:0x800E4AE8; // type:function size:0xEC +fn_800E4BD4 = .text:0x800E4BD4; // type:function size:0x28C +fn_800E4E60 = .text:0x800E4E60; // type:function size:0x110 +fn_800E4F70 = .text:0x800E4F70; // type:function size:0x70 +fn_800E4FE0 = .text:0x800E4FE0; // type:function size:0x10 +__flush_buffer = .text:0x800E4FF0; // type:function size:0xC4 scope:global +__prep_buffer = .text:0x800E50B4; // type:function size:0x34 scope:global +fn_800E50E8 = .text:0x800E50E8; // type:function size:0x24 +fn_800E510C = .text:0x800E510C; // type:function size:0x18 +__fwrite = .text:0x800E5124; // type:function size:0x30C scope:global +fwrite = .text:0x800E5430; // type:function size:0x20 scope:global +fn_800E5450 = .text:0x800E5450; // type:function size:0x138 +fn_800E5588 = .text:0x800E5588; // type:function size:0xC0 +fseek = .text:0x800E5648; // type:function size:0x20 scope:global +fn_800E5668 = .text:0x800E5668; // type:function size:0x23C +fn_800E58A4 = .text:0x800E58A4; // type:function size:0x70 +wcstombs = .text:0x800E5914; // type:function size:0xA0 scope:global +fn_800E59B4 = .text:0x800E59B4; // type:function size:0xA4 +fn_800E5A58 = .text:0x800E5A58; // type:function size:0x4C +__memrchr = .text:0x800E5AA4; // type:function size:0x2C scope:global +memchr = .text:0x800E5AD0; // type:function size:0x2C scope:global +fn_800E5AFC = .text:0x800E5AFC; // type:function size:0xCC +fn_800E5BC8 = .text:0x800E5BC8; // type:function size:0xB0 +fn_800E5C78 = .text:0x800E5C78; // type:function size:0xC4 +fn_800E5D3C = .text:0x800E5D3C; // type:function size:0xAC +fn_800E5DE8 = .text:0x800E5DE8; // type:function size:0xC0 +__stdio_atexit = .text:0x800E5EA8; // type:function size:0x10 scope:global +fn_800E5EB8 = .text:0x800E5EB8; // type:function size:0xE0 +fn_800E5F98 = .text:0x800E5F98; // type:function size:0x78 +fn_800E6010 = .text:0x800E6010; // type:function size:0x74 +vprintf = .text:0x800E6084; // type:function size:0x7C scope:global +fn_800E6100 = .text:0x800E6100; // type:function size:0xCC +fn_800E61CC = .text:0x800E61CC; // type:function size:0x6C +__FileWrite = .text:0x800E6238; // type:function size:0x58 scope:global +__pformatter = .text:0x800E6290; // type:function size:0x774 scope:local +float2str = .text:0x800E6A04; // type:function size:0x6EC scope:local +fn_800E70F0 = .text:0x800E70F0; // type:function size:0x12C +double2hex = .text:0x800E721C; // type:function size:0x338 scope:local +longlong2str = .text:0x800E7554; // type:function size:0x2DC scope:local +long2str = .text:0x800E7830; // type:function size:0x220 scope:local +parse_format = .text:0x800E7A50; // type:function size:0x504 scope:local +fn_800E7F54 = .text:0x800E7F54; // type:function size:0xB0 +strchr = .text:0x800E8004; // type:function size:0x30 scope:global +fn_800E8034 = .text:0x800E8034; // type:function size:0x40 +fn_800E8074 = .text:0x800E8074; // type:function size:0x128 +fn_800E819C = .text:0x800E819C; // type:function size:0x44 +fn_800E81E0 = .text:0x800E81E0; // type:function size:0xB8 +strlen = .text:0x800E8298; // type:function size:0x1C scope:global +fn_800E82B4 = .text:0x800E82B4; // type:function size:0x8 +fn_800E82BC = .text:0x800E82BC; // type:function size:0xC4 +fwide = .text:0x800E8380; // type:function size:0x88 scope:global +fn_800E8408 = .text:0x800E8408; // type:function size:0x310 +fn_800E8718 = .text:0x800E8718; // type:function size:0x264 +fn_800E897C = .text:0x800E897C; // type:function size:0x290 +fn_800E8C0C = .text:0x800E8C0C; // type:function size:0x33C +fn_800E8F48 = .text:0x800E8F48; // type:function size:0x88C +fn_800E97D4 = .text:0x800E97D4; // type:function size:0x3A0 +fn_800E9B74 = .text:0x800E9B74; // type:function size:0xF4 +fn_800E9C68 = .text:0x800E9C68; // type:function size:0xE54 +fn_800EAABC = .text:0x800EAABC; // type:function size:0xA0 +fn_800EAB5C = .text:0x800EAB5C; // type:function size:0x214 +fn_800EAD70 = .text:0x800EAD70; // type:function size:0x200 +fn_800EAF70 = .text:0x800EAF70; // type:function size:0x28 +fn_800EAF98 = .text:0x800EAF98; // type:function size:0xD4 +fn_800EB06C = .text:0x800EB06C; // type:function size:0x148 +fn_800EB1B4 = .text:0x800EB1B4; // type:function size:0x8C +fn_800EB240 = .text:0x800EB240; // type:function size:0x1C4 +fn_800EB404 = .text:0x800EB404; // type:function size:0xFC +fn_800EB500 = .text:0x800EB500; // type:function size:0xD8 +fn_800EB5D8 = .text:0x800EB5D8; // type:function size:0x78 +fn_800EB650 = .text:0x800EB650; // type:function size:0x20 +fn_800EB670 = .text:0x800EB670; // type:function size:0x20 +fn_800EB690 = .text:0x800EB690; // type:function size:0x20 +fn_800EB6B0 = .text:0x800EB6B0; // type:function size:0x20 +fn_800EB6D0 = .text:0x800EB6D0; // type:function size:0x20 +fn_800EB6F0 = .text:0x800EB6F0; // type:function size:0x24 +fn_800EB714 = .text:0x800EB714; // type:function size:0x24 +fn_800EB738 = .text:0x800EB738; // type:function size:0x24 +fn_800EB75C = .text:0x800EB75C; // type:function size:0x24 +fn_800EB780 = .text:0x800EB780; // type:function size:0x24 +TRKNubMainLoop = .text:0x800EB7A4; // type:function size:0xF8 scope:global +TRKDestructEvent = .text:0x800EB89C; // type:function size:0x24 scope:global +fn_800EB8C0 = .text:0x800EB8C0; // type:function size:0x18 +fn_800EB8D8 = .text:0x800EB8D8; // type:function size:0xE0 +TRKGetNextEvent = .text:0x800EB9B8; // type:function size:0xB4 scope:global +TRKInitializeEventQueue = .text:0x800EBA6C; // type:function size:0x58 scope:global +TRKNubWelcome = .text:0x800EBAC4; // type:function size:0x28 scope:global +TRKTerminateNub = .text:0x800EBAEC; // type:function size:0x24 scope:global +TRKInitializeNub = .text:0x800EBB10; // type:function size:0x134 scope:global +fn_800EBC44 = .text:0x800EBC44; // type:function size:0x1DC +fn_800EBE20 = .text:0x800EBE20; // type:function size:0xF0 +fn_800EBF10 = .text:0x800EBF10; // type:function size:0x98 +fn_800EBFA8 = .text:0x800EBFA8; // type:function size:0xE8 +fn_800EC090 = .text:0x800EC090; // type:function size:0xC8 +fn_800EC158 = .text:0x800EC158; // type:function size:0xB8 +fn_800EC210 = .text:0x800EC210; // type:function size:0x80 +fn_800EC290 = .text:0x800EC290; // type:function size:0xA8 +fn_800EC338 = .text:0x800EC338; // type:function size:0x68 +fn_800EC3A0 = .text:0x800EC3A0; // type:function size:0x88 +fn_800EC428 = .text:0x800EC428; // type:function size:0x64 +fn_800EC48C = .text:0x800EC48C; // type:function size:0x54 +fn_800EC4E0 = .text:0x800EC4E0; // type:function size:0x8C +fn_800EC56C = .text:0x800EC56C; // type:function size:0xA4 +fn_800EC610 = .text:0x800EC610; // type:function size:0x30 +fn_800EC640 = .text:0x800EC640; // type:function size:0x40 +fn_800EC680 = .text:0x800EC680; // type:function size:0x64 +TRKGetBuffer = .text:0x800EC6E4; // type:function size:0x2C scope:global +fn_800EC710 = .text:0x800EC710; // type:function size:0xC8 +TRKInitializeMessageBuffers = .text:0x800EC7D8; // type:function size:0x74 scope:global +fn_800EC84C = .text:0x800EC84C; // type:function size:0x8 +TRKInitializeSerialHandler = .text:0x800EC854; // type:function size:0x24 scope:global +fn_800EC878 = .text:0x800EC878; // type:function size:0x50 +TRKGetInput = .text:0x800EC8C8; // type:function size:0x98 scope:global +fn_800EC960 = .text:0x800EC960; // type:function size:0x2B8 +usr_put_initialize = .text:0x800ECC18; // type:function size:0x4 scope:global +fn_800ECC1C = .text:0x800ECC1C; // type:function size:0x88 +TRKDispatchMessage = .text:0x800ECCA4; // type:function size:0x84 scope:global +TRKInitializeDispatcher = .text:0x800ECD28; // type:function size:0x18 scope:global +fn_800ECD40 = .text:0x800ECD40; // type:function size:0x1A4 +fn_800ECEE4 = .text:0x800ECEE4; // type:function size:0x100 +fn_800ECFE4 = .text:0x800ECFE4; // type:function size:0x530 +fn_800ED514 = .text:0x800ED514; // type:function size:0x154 +fn_800ED668 = .text:0x800ED668; // type:function size:0x2F8 +fn_800ED960 = .text:0x800ED960; // type:function size:0x3C8 +fn_800EDD28 = .text:0x800EDD28; // type:function size:0x3CC +fn_800EE0F4 = .text:0x800EE0F4; // type:function size:0x420 +fn_800EE514 = .text:0x800EE514; // type:function size:0x410 +fn_800EE924 = .text:0x800EE924; // type:function size:0x398 +fn_800EECBC = .text:0x800EECBC; // type:function size:0x230 +fn_800EEEEC = .text:0x800EEEEC; // type:function size:0x2D8 +fn_800EF1C4 = .text:0x800EF1C4; // type:function size:0xB8 +fn_800EF27C = .text:0x800EF27C; // type:function size:0xE4 +fn_800EF360 = .text:0x800EF360; // type:function size:0xBC +fn_800EF41C = .text:0x800EF41C; // type:function size:0xB0 +fn_800EF4CC = .text:0x800EF4CC; // type:function size:0xB8 +fn_800EF584 = .text:0x800EF584; // type:function size:0xC +fn_800EF590 = .text:0x800EF590; // type:function size:0x10 +fn_800EF5A0 = .text:0x800EF5A0; // type:function size:0x190 +fn_800EF730 = .text:0x800EF730; // type:function size:0x120 +fn_800EF850 = .text:0x800EF850; // type:function size:0x1A8 +fn_800EF9F8 = .text:0x800EF9F8; // type:function size:0x1A4 +fn_800EFB9C = .text:0x800EFB9C; // type:function size:0x2C4 +fn_800EFE60 = .text:0x800EFE60; // type:function size:0x8 +fn_800EFE68 = .text:0x800EFE68; // type:function size:0x8 +fn_800EFE70 = .text:0x800EFE70; // type:function size:0x8 +fn_800EFE78 = .text:0x800EFE78; // type:function size:0xD8 +fn_800EFF50 = .text:0x800EFF50; // type:function size:0x38 +fn_800EFF88 = .text:0x800EFF88; // type:function size:0xBC +fn_800F0044 = .text:0x800F0044; // type:function size:0x8 +fn_800F004C = .text:0x800F004C; // type:function size:0x8 +fn_800F0054 = .text:0x800F0054; // type:function size:0x3C +TRKInterruptHandler = .text:0x800F0090; // type:function size:0x194 scope:global +TRKExceptionHandler = .text:0x800F0224; // type:function size:0x9C scope:global +TRKSwapAndGo = .text:0x800F02C0; // type:function size:0xC4 scope:global +TRKInterruptHandlerEnableInterrupts = .text:0x800F0384; // type:function size:0x54 scope:global +TRKTargetSetInputPendingPtr = .text:0x800F03D8; // type:function size:0x10 scope:global +fn_800F03E8 = .text:0x800F03E8; // type:function size:0x21C +fn_800F0604 = .text:0x800F0604; // type:function size:0x18 +TRKTargetSetStopped = .text:0x800F061C; // type:function size:0x10 scope:global +TRKTargetStopped = .text:0x800F062C; // type:function size:0x10 scope:global +fn_800F063C = .text:0x800F063C; // type:function size:0x3C +TRKTargetSupportRequest = .text:0x800F0678; // type:function size:0x208 scope:global +fn_800F0880 = .text:0x800F0880; // type:function size:0x10 +fn_800F0890 = .text:0x800F0890; // type:function size:0x7C +fn_800F090C = .text:0x800F090C; // type:function size:0x6C +fn_800F0978 = .text:0x800F0978; // type:function size:0xAC +fn_800F0A24 = .text:0x800F0A24; // type:function size:0x124 +TRKTargetInterrupt = .text:0x800F0B48; // type:function size:0x15C scope:global +TRKPostInterruptEvent = .text:0x800F0CA4; // type:function size:0xC0 scope:global +fn_800F0D64 = .text:0x800F0D64; // type:function size:0x60 +fn_800F0DC4 = .text:0x800F0DC4; // type:function size:0xA4 +fn_800F0E68 = .text:0x800F0E68; // type:function size:0x24 +fn_800F0E8C = .text:0x800F0E8C; // type:function size:0x438 +fn_800F12C4 = .text:0x800F12C4; // type:function size:0x170 +fn_800F1434 = .text:0x800F1434; // type:function size:0x13C +fn_800F1570 = .text:0x800F1570; // type:function size:0xF4 +fn_800F1664 = .text:0x800F1664; // type:function size:0x14C +fn_800F17B0 = .text:0x800F17B0; // type:function size:0x124 +fn_800F18E0 = .text:0x800F18E0; // type:function size:0x8 +fn_800F18E8 = .text:0x800F18E8; // type:function size:0x8 +fn_800F18F0 = .text:0x800F18F0; // type:function size:0x8 +fn_800F18F8 = .text:0x800F18F8; // type:function size:0x8 +InitMetroTRK = .text:0x800F1900; // type:function size:0x94 scope:global +TRKInitializeTarget = .text:0x800F1994; // type:function size:0x4C scope:global +fn_800F19E0 = .text:0x800F19E0; // type:function size:0x40 +EnableMetroTRKInterrupts = .text:0x800F1A20; // type:function size:0x20 scope:global +TRKSaveExtended1Block = .text:0x800F1A40; // type:function size:0x1B8 scope:global +TRKRestoreExtended1Block = .text:0x800F1BF8; // type:function size:0x1B8 scope:global +fn_800F1DB0 = .text:0x800F1DB0; // type:function size:0x8 +TRK_main = .text:0x800F1DB8; // type:function size:0x44 scope:global +TRKLoadContext = .text:0x800F1DFC; // type:function size:0x88 scope:global +TRKUARTInterruptHandler = .text:0x800F1E84; // type:function size:0x4 scope:global +TRK_board_display = .text:0x800F1E88; // type:function size:0x24 scope:global +UnreserveEXI2Port = .text:0x800F1EAC; // type:function size:0x30 scope:global +ReserveEXI2Port = .text:0x800F1EDC; // type:function size:0x30 scope:global +fn_800F1F0C = .text:0x800F1F0C; // type:function size:0xF0 +fn_800F1FFC = .text:0x800F1FFC; // type:function size:0x28 +fn_800F2024 = .text:0x800F2024; // type:function size:0xE0 +fn_800F2104 = .text:0x800F2104; // type:function size:0x30 +TRKInitializeIntDrivenUART = .text:0x800F2134; // type:function size:0x3C scope:global +InitMetroTRKCommTable = .text:0x800F2170; // type:function size:0x100 scope:global +TRKEXICallBack = .text:0x800F2270; // type:function size:0x38 scope:global +TRKTargetContinue = .text:0x800F22A8; // type:function size:0x34 scope:global +fn_800F22DC = .text:0x800F22DC; // type:function size:0x10 +fn_800F22EC = .text:0x800F22EC; // type:function size:0xC +fn_800F22F8 = .text:0x800F22F8; // type:function size:0xBC +fn_800F23B4 = .text:0x800F23B4; // type:function size:0xBC +fn_800F2470 = .text:0x800F2470; // type:function size:0x68 +fn_800F24D8 = .text:0x800F24D8; // type:function size:0xAC4 +fn_800F2F9C = .text:0x800F2F9C; // type:function size:0x64 +fn_800F3000 = .text:0x800F3000; // type:function size:0x27C +fn_800F327C = .text:0x800F327C; // type:function size:0x2B0 +fn_800F352C = .text:0x800F352C; // type:function size:0x90 +fn_800F35BC = .text:0x800F35BC; // type:function size:0xE4 +fn_800F36A0 = .text:0x800F36A0; // type:function size:0x108 +fn_800F37A8 = .text:0x800F37A8; // type:function size:0xBC +fn_800F3864 = .text:0x800F3864; // type:function size:0x1CC +fn_800F3A30 = .text:0x800F3A30; // type:function size:0xB58 +fn_800F4588 = .text:0x800F4588; // type:function size:0x218 +fn_800F47A0 = .text:0x800F47A0; // type:function size:0xA94 +fn_800F5234 = .text:0x800F5234; // type:function size:0x174 +fn_800F53A8 = .text:0x800F53A8; // type:function size:0x49C +fn_800F5844 = .text:0x800F5844; // type:function size:0x9F4 +fn_800F6238 = .text:0x800F6238; // type:function size:0x1A8 +fn_800F63E0 = .text:0x800F63E0; // type:function size:0x44 +fn_800F6424 = .text:0x800F6424; // type:function size:0x34 +fn_800F6458 = .text:0x800F6458; // type:function size:0x78 +fn_800F64D0 = .text:0x800F64D0; // type:function size:0x2A0 +fn_800F6770 = .text:0x800F6770; // type:function size:0x3C0 +fn_800F6B30 = .text:0x800F6B30; // type:function size:0x25C +fn_800F6D8C = .text:0x800F6D8C; // type:function size:0x45C +fn_800F71E8 = .text:0x800F71E8; // type:function size:0x744 +fn_800F792C = .text:0x800F792C; // type:function size:0x6FC +fn_800F8028 = .text:0x800F8028; // type:function size:0x150 +fn_800F8178 = .text:0x800F8178; // type:function size:0x64 +fn_800F81DC = .text:0x800F81DC; // type:function size:0x44 +fn_800F8220 = .text:0x800F8220; // type:function size:0x28 +fn_800F8248 = .text:0x800F8248; // type:function size:0x510 +fn_800F8758 = .text:0x800F8758; // type:function size:0x34 +fn_800F878C = .text:0x800F878C; // type:function size:0xC8 +fn_800F8854 = .text:0x800F8854; // type:function size:0xE4 +fn_800F8938 = .text:0x800F8938; // type:function size:0xE4 +fn_800F8A1C = .text:0x800F8A1C; // type:function size:0x84 +fn_800F8AA0 = .text:0x800F8AA0; // type:function size:0x88 +fn_800F8B28 = .text:0x800F8B28; // type:function size:0x530 +fn_800F9058 = .text:0x800F9058; // type:function size:0x54 +fn_800F90AC = .text:0x800F90AC; // type:function size:0x28 +fn_800F90D4 = .text:0x800F90D4; // type:function size:0xD0 +fn_800F91A4 = .text:0x800F91A4; // type:function size:0x574 +fn_800F9718 = .text:0x800F9718; // type:function size:0x24 +fn_800F973C = .text:0x800F973C; // type:function size:0x30 +fn_800F976C = .text:0x800F976C; // type:function size:0x38 +fn_800F97A4 = .text:0x800F97A4; // type:function size:0x38 +fn_800F97DC = .text:0x800F97DC; // type:function size:0x48 +fn_800F9824 = .text:0x800F9824; // type:function size:0x38 +fn_800F985C = .text:0x800F985C; // type:function size:0x58 +fn_800F98B4 = .text:0x800F98B4; // type:function size:0x68 +fn_800F991C = .text:0x800F991C; // type:function size:0x84 +fn_800F99A0 = .text:0x800F99A0; // type:function size:0x1C +fn_800F99BC = .text:0x800F99BC; // type:function size:0x60 +fn_800F9A1C = .text:0x800F9A1C; // type:function size:0x60 +fn_800F9A7C = .text:0x800F9A7C; // type:function size:0x40 +fn_800F9ABC = .text:0x800F9ABC; // type:function size:0xE0 +fn_800F9B9C = .text:0x800F9B9C; // type:function size:0x40 +fn_800F9BDC = .text:0x800F9BDC; // type:function size:0x50 +fn_800F9C2C = .text:0x800F9C2C; // type:function size:0x60 +fn_800F9C8C = .text:0x800F9C8C; // type:function size:0x94 +fn_800F9D20 = .text:0x800F9D20; // type:function size:0xEC +fn_800F9E0C = .text:0x800F9E0C; // type:function size:0x158 +fn_800F9F64 = .text:0x800F9F64; // type:function size:0xA8 +fn_800FA00C = .text:0x800FA00C; // type:function size:0xF0 +fn_800FA0FC = .text:0x800FA0FC; // type:function size:0x20 +fn_800FA11C = .text:0x800FA11C; // type:function size:0x20 +fn_800FA13C = .text:0x800FA13C; // type:function size:0xBC +fn_800FA1F8 = .text:0x800FA1F8; // type:function size:0x8C +fn_800FA284 = .text:0x800FA284; // type:function size:0x8AC +fn_800FAB30 = .text:0x800FAB30; // type:function size:0x4 +fn_800FAB34 = .text:0x800FAB34; // type:function size:0x84 +fn_800FABB8 = .text:0x800FABB8; // type:function size:0x160 +fn_800FAD18 = .text:0x800FAD18; // type:function size:0x2C4 +fn_800FAFDC = .text:0x800FAFDC; // type:function size:0x34 +fn_800FB010 = .text:0x800FB010; // type:function size:0x44 +fn_800FB054 = .text:0x800FB054; // type:function size:0x130 +fn_800FB184 = .text:0x800FB184; // type:function size:0x458 +fn_800FB5DC = .text:0x800FB5DC; // type:function size:0x44 +fn_800FB620 = .text:0x800FB620; // type:function size:0x6E8 +fn_800FBD08 = .text:0x800FBD08; // type:function size:0x560 +fn_800FC268 = .text:0x800FC268; // type:function size:0x654 +fn_800FC8BC = .text:0x800FC8BC; // type:function size:0x6B8 +fn_800FCF74 = .text:0x800FCF74; // type:function size:0x634 +fn_800FD5A8 = .text:0x800FD5A8; // type:function size:0x700 +fn_800FDCA8 = .text:0x800FDCA8; // type:function size:0x1F0 +fn_800FDE98 = .text:0x800FDE98; // type:function size:0x17C +fn_800FE014 = .text:0x800FE014; // type:function size:0x248 +fn_800FE25C = .text:0x800FE25C; // type:function size:0x1C4 +fn_800FE420 = .text:0x800FE420; // type:function size:0x204 +fn_800FE624 = .text:0x800FE624; // type:function size:0x17C +fn_800FE7A0 = .text:0x800FE7A0; // type:function size:0x188 +fn_800FE928 = .text:0x800FE928; // type:function size:0x2C8 +fn_800FEBF0 = .text:0x800FEBF0; // type:function size:0xD8 +fn_800FECC8 = .text:0x800FECC8; // type:function size:0x98 +fn_800FED60 = .text:0x800FED60; // type:function size:0x11C +fn_800FEE7C = .text:0x800FEE7C; // type:function size:0x15C +fn_800FEFD8 = .text:0x800FEFD8; // type:function size:0x304 +fn_800FF2DC = .text:0x800FF2DC; // type:function size:0x284 +fn_800FF560 = .text:0x800FF560; // type:function size:0x10 +fn_800FF570 = .text:0x800FF570; // type:function size:0x8C +fn_800FF5FC = .text:0x800FF5FC; // type:function size:0x10 +fn_800FF60C = .text:0x800FF60C; // type:function size:0x128 +fn_800FF734 = .text:0x800FF734; // type:function size:0x10 +fn_800FF744 = .text:0x800FF744; // type:function size:0x5C +fn_800FF7A0 = .text:0x800FF7A0; // type:function size:0x5C +fn_800FF7FC = .text:0x800FF7FC; // type:function size:0x10 +fn_800FF80C = .text:0x800FF80C; // type:function size:0x7C +fn_800FF888 = .text:0x800FF888; // type:function size:0x10 +fn_800FF898 = .text:0x800FF898; // type:function size:0x9C +fn_800FF934 = .text:0x800FF934; // type:function size:0xE4 +fn_800FFA18 = .text:0x800FFA18; // type:function size:0x20 +fn_800FFA38 = .text:0x800FFA38; // type:function size:0x2F0 +fn_800FFD28 = .text:0x800FFD28; // type:function size:0xD0 +fn_800FFDF8 = .text:0x800FFDF8; // type:function size:0x154 +fn_800FFF4C = .text:0x800FFF4C; // type:function size:0x18C +fn_801000D8 = .text:0x801000D8; // type:function size:0xD8 +fn_801001B0 = .text:0x801001B0; // type:function size:0x1FC +fn_801003AC = .text:0x801003AC; // type:function size:0x17C +fn_80100528 = .text:0x80100528; // type:function size:0x1A0 +fn_801006C8 = .text:0x801006C8; // type:function size:0x258 +fn_80100920 = .text:0x80100920; // type:function size:0x12C +fn_80100A4C = .text:0x80100A4C; // type:function size:0x27C +fn_80100CC8 = .text:0x80100CC8; // type:function size:0x9C +fn_80100D64 = .text:0x80100D64; // type:function size:0x9C +fn_80100E00 = .text:0x80100E00; // type:function size:0x134 +fn_80100F34 = .text:0x80100F34; // type:function size:0x130 +fn_80101064 = .text:0x80101064; // type:function size:0x13C +fn_801011A0 = .text:0x801011A0; // type:function size:0x19C +fn_8010133C = .text:0x8010133C; // type:function size:0x104 +fn_80101440 = .text:0x80101440; // type:function size:0x104 +fn_80101544 = .text:0x80101544; // type:function size:0x104 +fn_80101648 = .text:0x80101648; // type:function size:0x104 +fn_8010174C = .text:0x8010174C; // type:function size:0x104 +fn_80101850 = .text:0x80101850; // type:function size:0x104 +fn_80101954 = .text:0x80101954; // type:function size:0x104 +fn_80101A58 = .text:0x80101A58; // type:function size:0x104 +fn_80101B5C = .text:0x80101B5C; // type:function size:0x104 +fn_80101C60 = .text:0x80101C60; // type:function size:0x104 +fn_80101D64 = .text:0x80101D64; // type:function size:0x104 +fn_80101E68 = .text:0x80101E68; // type:function size:0x104 +fn_80101F6C = .text:0x80101F6C; // type:function size:0x104 +fn_80102070 = .text:0x80102070; // type:function size:0x17C +fn_801021EC = .text:0x801021EC; // type:function size:0x17C +fn_80102368 = .text:0x80102368; // type:function size:0x164 +fn_801024CC = .text:0x801024CC; // type:function size:0x68 +fn_80102534 = .text:0x80102534; // type:function size:0x220 +fn_80102754 = .text:0x80102754; // type:function size:0x14C +fn_801028A0 = .text:0x801028A0; // type:function size:0xBC +fn_8010295C = .text:0x8010295C; // type:function size:0x244 +fn_80102BA0 = .text:0x80102BA0; // type:function size:0x80 +fn_80102C20 = .text:0x80102C20; // type:function size:0xDC +fn_80102CFC = .text:0x80102CFC; // type:function size:0xF58 +fn_80103C54 = .text:0x80103C54; // type:function size:0x150 +fn_80103DA4 = .text:0x80103DA4; // type:function size:0xAC +fn_80103E50 = .text:0x80103E50; // type:function size:0xF0 +fn_80103F40 = .text:0x80103F40; // type:function size:0x108 +fn_80104048 = .text:0x80104048; // type:function size:0xA4 +fn_801040EC = .text:0x801040EC; // type:function size:0x108 +fn_801041F4 = .text:0x801041F4; // type:function size:0xFC +fn_801042F0 = .text:0x801042F0; // type:function size:0x438 +fn_80104728 = .text:0x80104728; // type:function size:0x68 +fn_80104790 = .text:0x80104790; // type:function size:0xE0 +fn_80104870 = .text:0x80104870; // type:function size:0x350 +fn_80104BC0 = .text:0x80104BC0; // type:function size:0x14 +fn_80104BD4 = .text:0x80104BD4; // type:function size:0x104 +fn_80104CD8 = .text:0x80104CD8; // type:function size:0x50 +fn_80104D28 = .text:0x80104D28; // type:function size:0x24C +fn_80104F74 = .text:0x80104F74; // type:function size:0x460 +fn_801053D4 = .text:0x801053D4; // type:function size:0x1C4 +fn_80105598 = .text:0x80105598; // type:function size:0x2A0 +fn_80105838 = .text:0x80105838; // type:function size:0xFC +fn_80105934 = .text:0x80105934; // type:function size:0x218 +fn_80105B4C = .text:0x80105B4C; // type:function size:0x234 +fn_80105D80 = .text:0x80105D80; // type:function size:0xC4 +fn_80105E44 = .text:0x80105E44; // type:function size:0x15C +fn_80105FA0 = .text:0x80105FA0; // type:function size:0x74 +fn_80106014 = .text:0x80106014; // type:function size:0x54 +fn_80106068 = .text:0x80106068; // type:function size:0x74 +fn_801060DC = .text:0x801060DC; // type:function size:0x144 +fn_80106220 = .text:0x80106220; // type:function size:0x3C +fn_8010625C = .text:0x8010625C; // type:function size:0xE4 +fn_80106340 = .text:0x80106340; // type:function size:0x58 +fn_80106398 = .text:0x80106398; // type:function size:0x26C +fn_80106604 = .text:0x80106604; // type:function size:0x28 +fn_8010662C = .text:0x8010662C; // type:function size:0x150 +fn_8010677C = .text:0x8010677C; // type:function size:0x168 +fn_801068E4 = .text:0x801068E4; // type:function size:0x198 +fn_80106A7C = .text:0x80106A7C; // type:function size:0x84 +fn_80106B00 = .text:0x80106B00; // type:function size:0xBC +fn_80106BBC = .text:0x80106BBC; // type:function size:0x248 +fn_80106E04 = .text:0x80106E04; // type:function size:0xA8 +fn_80106EAC = .text:0x80106EAC; // type:function size:0x1F8 +fn_801070A4 = .text:0x801070A4; // type:function size:0x1E4 +fn_80107288 = .text:0x80107288; // type:function size:0xC +fn_80107294 = .text:0x80107294; // type:function size:0x27C +fn_80107510 = .text:0x80107510; // type:function size:0x32C +fn_8010783C = .text:0x8010783C; // type:function size:0x33C +fn_80107B78 = .text:0x80107B78; // type:function size:0x14C +fn_80107CC4 = .text:0x80107CC4; // type:function size:0x11C +fn_80107DE0 = .text:0x80107DE0; // type:function size:0x3B4 +fn_80108194 = .text:0x80108194; // type:function size:0x38 +fn_801081CC = .text:0x801081CC; // type:function size:0xE0 +fn_801082AC = .text:0x801082AC; // type:function size:0x150 +fn_801083FC = .text:0x801083FC; // type:function size:0x20 +fn_8010841C = .text:0x8010841C; // type:function size:0xF4 +fn_80108510 = .text:0x80108510; // type:function size:0x48 +fn_80108558 = .text:0x80108558; // type:function size:0x74 +fn_801085CC = .text:0x801085CC; // type:function size:0xAC +fn_80108678 = .text:0x80108678; // type:function size:0x2DC +fn_80108954 = .text:0x80108954; // type:function size:0x258 +fn_80108BAC = .text:0x80108BAC; // type:function size:0x21B8 +fn_8010AD64 = .text:0x8010AD64; // type:function size:0x44 +fn_8010ADA8 = .text:0x8010ADA8; // type:function size:0xA0 +fn_8010AE48 = .text:0x8010AE48; // type:function size:0x60 +fn_8010AEA8 = .text:0x8010AEA8; // type:function size:0xC8 +fn_8010AF70 = .text:0x8010AF70; // type:function size:0xA8 +fn_8010B018 = .text:0x8010B018; // type:function size:0x84 +fn_8010B09C = .text:0x8010B09C; // type:function size:0x158 +fn_8010B1F4 = .text:0x8010B1F4; // type:function size:0x6F0 +fn_8010B8E4 = .text:0x8010B8E4; // type:function size:0x4B4 +fn_8010BD98 = .text:0x8010BD98; // type:function size:0x51C +fn_8010C2B4 = .text:0x8010C2B4; // type:function size:0x130 +fn_8010C3E4 = .text:0x8010C3E4; // type:function size:0x20 +fn_8010C404 = .text:0x8010C404; // type:function size:0x3F8 +fn_8010C7FC = .text:0x8010C7FC; // type:function size:0x50 +fn_8010C84C = .text:0x8010C84C; // type:function size:0xA8 +fn_8010C8F4 = .text:0x8010C8F4; // type:function size:0x5C +fn_8010C950 = .text:0x8010C950; // type:function size:0xFC +fn_8010CA4C = .text:0x8010CA4C; // type:function size:0x204 +fn_8010CC50 = .text:0x8010CC50; // type:function size:0x230 +fn_8010CE80 = .text:0x8010CE80; // type:function size:0xD0 +fn_8010CF50 = .text:0x8010CF50; // type:function size:0x14C +fn_8010D09C = .text:0x8010D09C; // type:function size:0x3B0 +fn_8010D44C = .text:0x8010D44C; // type:function size:0x82C +fn_8010DC78 = .text:0x8010DC78; // type:function size:0x38 +fn_8010DCB0 = .text:0x8010DCB0; // type:function size:0x4 +fn_8010DCB4 = .text:0x8010DCB4; // type:function size:0x118 +fn_8010DDCC = .text:0x8010DDCC; // type:function size:0x34 +fn_8010DE00 = .text:0x8010DE00; // type:function size:0x8 +fn_8010DE08 = .text:0x8010DE08; // type:function size:0xAC +fn_8010DEB4 = .text:0x8010DEB4; // type:function size:0xB4 +fn_8010DF68 = .text:0x8010DF68; // type:function size:0x64 +fn_8010DFCC = .text:0x8010DFCC; // type:function size:0x1FC +fn_8010E1C8 = .text:0x8010E1C8; // type:function size:0x24 +fn_8010E1EC = .text:0x8010E1EC; // type:function size:0x608 +fn_8010E7F4 = .text:0x8010E7F4; // type:function size:0x124 +fn_8010E918 = .text:0x8010E918; // type:function size:0xF0 +fn_8010EA08 = .text:0x8010EA08; // type:function size:0x2C4 +fn_8010ECCC = .text:0x8010ECCC; // type:function size:0x34 +fn_8010ED00 = .text:0x8010ED00; // type:function size:0x3C +fn_8010ED3C = .text:0x8010ED3C; // type:function size:0x98 +fn_8010EDD4 = .text:0x8010EDD4; // type:function size:0x114 +fn_8010EEE8 = .text:0x8010EEE8; // type:function size:0x3C +fn_8010EF24 = .text:0x8010EF24; // type:function size:0x3C +fn_8010EF60 = .text:0x8010EF60; // type:function size:0x4A0 +fn_8010F400 = .text:0x8010F400; // type:function size:0x48 +fn_8010F448 = .text:0x8010F448; // type:function size:0x48 +fn_8010F490 = .text:0x8010F490; // type:function size:0x48 +fn_8010F4D8 = .text:0x8010F4D8; // type:function size:0x48 +fn_8010F520 = .text:0x8010F520; // type:function size:0x48 +fn_8010F568 = .text:0x8010F568; // type:function size:0x48 +fn_8010F5B0 = .text:0x8010F5B0; // type:function size:0x48 +fn_8010F5F8 = .text:0x8010F5F8; // type:function size:0x48 +fn_8010F640 = .text:0x8010F640; // type:function size:0x48 +fn_8010F688 = .text:0x8010F688; // type:function size:0x48 +fn_8010F6D0 = .text:0x8010F6D0; // type:function size:0x48 +fn_8010F718 = .text:0x8010F718; // type:function size:0x48 +fn_8010F760 = .text:0x8010F760; // type:function size:0xB4 +fn_8010F814 = .text:0x8010F814; // type:function size:0xB4 +fn_8010F8C8 = .text:0x8010F8C8; // type:function size:0x284 +fn_8010FB4C = .text:0x8010FB4C; // type:function size:0x70 +fn_8010FBBC = .text:0x8010FBBC; // type:function size:0xFC +fn_8010FCB8 = .text:0x8010FCB8; // type:function size:0x1E4 +fn_8010FE9C = .text:0x8010FE9C; // type:function size:0x1C +fn_8010FEB8 = .text:0x8010FEB8; // type:function size:0x8C +fn_8010FF44 = .text:0x8010FF44; // type:function size:0xA4 +fn_8010FFE8 = .text:0x8010FFE8; // type:function size:0x10 +fn_8010FFF8 = .text:0x8010FFF8; // type:function size:0x48 +fn_80110040 = .text:0x80110040; // type:function size:0x8 +fn_80110048 = .text:0x80110048; // type:function size:0x154 +fn_8011019C = .text:0x8011019C; // type:function size:0xB8 +fn_80110254 = .text:0x80110254; // type:function size:0x34 +fn_80110288 = .text:0x80110288; // type:function size:0x8 +fn_80110290 = .text:0x80110290; // type:function size:0x8 +fn_80110298 = .text:0x80110298; // type:function size:0x20 +fn_801102B8 = .text:0x801102B8; // type:function size:0x8 +fn_801102C0 = .text:0x801102C0; // type:function size:0x14 +fn_801102D4 = .text:0x801102D4; // type:function size:0x1B4 +fn_80110488 = .text:0x80110488; // type:function size:0x50 +fn_801104D8 = .text:0x801104D8; // type:function size:0x1AC +fn_80110684 = .text:0x80110684; // type:function size:0x20 +fn_801106A4 = .text:0x801106A4; // type:function size:0x14 +fn_801106B8 = .text:0x801106B8; // type:function size:0x14 +fn_801106CC = .text:0x801106CC; // type:function size:0x14 +fn_801106E0 = .text:0x801106E0; // type:function size:0x14 +fn_801106F4 = .text:0x801106F4; // type:function size:0x3C +fn_80110730 = .text:0x80110730; // type:function size:0x28 +fn_80110758 = .text:0x80110758; // type:function size:0x78 +fn_801107D0 = .text:0x801107D0; // type:function size:0x2C +fn_801107FC = .text:0x801107FC; // type:function size:0x2C +fn_80110828 = .text:0x80110828; // type:function size:0x5C +fn_80110884 = .text:0x80110884; // type:function size:0x2C0 +fn_80110B44 = .text:0x80110B44; // type:function size:0x2C +fn_80110B70 = .text:0x80110B70; // type:function size:0x28 +fn_80110B98 = .text:0x80110B98; // type:function size:0x20 +fn_80110BB8 = .text:0x80110BB8; // type:function size:0x20 +fn_80110BD8 = .text:0x80110BD8; // type:function size:0x34 +fn_80110C0C = .text:0x80110C0C; // type:function size:0x34 +fn_80110C40 = .text:0x80110C40; // type:function size:0x2C +fn_80110C6C = .text:0x80110C6C; // type:function size:0xA4 +fn_80110D10 = .text:0x80110D10; // type:function size:0x90 +fn_80110DA0 = .text:0x80110DA0; // type:function size:0x20 +fn_80110DC0 = .text:0x80110DC0; // type:function size:0x20 +fn_80110DE0 = .text:0x80110DE0; // type:function size:0x24 +fn_80110E04 = .text:0x80110E04; // type:function size:0x4 +fn_80110E08 = .text:0x80110E08; // type:function size:0x5C +fn_80110E64 = .text:0x80110E64; // type:function size:0x24 +fn_80110E88 = .text:0x80110E88; // type:function size:0x20 +fn_80110EA8 = .text:0x80110EA8; // type:function size:0x94 +fn_80110F3C = .text:0x80110F3C; // type:function size:0x84 +fn_80110FC0 = .text:0x80110FC0; // type:function size:0x20 +fn_80110FE0 = .text:0x80110FE0; // type:function size:0x4 +fn_80110FE4 = .text:0x80110FE4; // type:function size:0x14 +fn_80110FF8 = .text:0x80110FF8; // type:function size:0xC +fn_80111004 = .text:0x80111004; // type:function size:0x28 +fn_8011102C = .text:0x8011102C; // type:function size:0x20 +fn_8011104C = .text:0x8011104C; // type:function size:0xA0 +fn_801110EC = .text:0x801110EC; // type:function size:0x1DC +fn_801112C8 = .text:0x801112C8; // type:function size:0x18 +fn_801112E0 = .text:0x801112E0; // type:function size:0x2EC +fn_801115CC = .text:0x801115CC; // type:function size:0x4 +fn_801115D0 = .text:0x801115D0; // type:function size:0x20 +fn_801115F0 = .text:0x801115F0; // type:function size:0x3BC +fn_801119AC = .text:0x801119AC; // type:function size:0x18 +fn_801119C4 = .text:0x801119C4; // type:function size:0xC4 +fn_80111A88 = .text:0x80111A88; // type:function size:0x108 +fn_80111B90 = .text:0x80111B90; // type:function size:0x38 +fn_80111BC8 = .text:0x80111BC8; // type:function size:0xF8 +fn_80111CC0 = .text:0x80111CC0; // type:function size:0xA8 +fn_80111D68 = .text:0x80111D68; // type:function size:0x10 +fn_80111D78 = .text:0x80111D78; // type:function size:0x64 +fn_80111DDC = .text:0x80111DDC; // type:function size:0xC8 +fn_80111EA4 = .text:0x80111EA4; // type:function size:0x20 +fn_80111EC4 = .text:0x80111EC4; // type:function size:0x34 +fn_80111EF8 = .text:0x80111EF8; // type:function size:0x30 +fn_80111F28 = .text:0x80111F28; // type:function size:0xBC +fn_80111FE4 = .text:0x80111FE4; // type:function size:0x34 +fn_80112018 = .text:0x80112018; // type:function size:0x74 +fn_8011208C = .text:0x8011208C; // type:function size:0x4C +fn_801120D8 = .text:0x801120D8; // type:function size:0x2C +fn_80112104 = .text:0x80112104; // type:function size:0x4 +fn_80112108 = .text:0x80112108; // type:function size:0x38 +fn_80112140 = .text:0x80112140; // type:function size:0x38 +fn_80112178 = .text:0x80112178; // type:function size:0x20 +fn_80112198 = .text:0x80112198; // type:function size:0x20 +fn_801121B8 = .text:0x801121B8; // type:function size:0x28 +fn_801121E0 = .text:0x801121E0; // type:function size:0x2C +fn_8011220C = .text:0x8011220C; // type:function size:0x5C +fn_80112268 = .text:0x80112268; // type:function size:0x3C +fn_801122A4 = .text:0x801122A4; // type:function size:0x24 +fn_801122C8 = .text:0x801122C8; // type:function size:0x428 +fn_801126F0 = .text:0x801126F0; // type:function size:0x3B4 +fn_80112AA4 = .text:0x80112AA4; // type:function size:0x24 +fn_80112AC8 = .text:0x80112AC8; // type:function size:0xBC +fn_80112B84 = .text:0x80112B84; // type:function size:0x5C +fn_80112BE0 = .text:0x80112BE0; // type:function size:0x40 +fn_80112C20 = .text:0x80112C20; // type:function size:0x24 +fn_80112C44 = .text:0x80112C44; // type:function size:0x50C +fn_80113150 = .text:0x80113150; // type:function size:0x190 +fn_801132E0 = .text:0x801132E0; // type:function size:0x50C +fn_801137EC = .text:0x801137EC; // type:function size:0xE0 +fn_801138CC = .text:0x801138CC; // type:function size:0xBC +fn_80113988 = .text:0x80113988; // type:function size:0x168 +fn_80113AF0 = .text:0x80113AF0; // type:function size:0x1D0 +fn_80113CC0 = .text:0x80113CC0; // type:function size:0x28 +fn_80113CE8 = .text:0x80113CE8; // type:function size:0x4C +fn_80113D34 = .text:0x80113D34; // type:function size:0x198 +fn_80113ECC = .text:0x80113ECC; // type:function size:0x1EC +fn_801140B8 = .text:0x801140B8; // type:function size:0x2BC +fn_80114374 = .text:0x80114374; // type:function size:0x200 +fn_80114574 = .text:0x80114574; // type:function size:0x28 +DBClose = .text:0x8011459C; // type:function size:0x4 scope:global +DBOpen = .text:0x801145A0; // type:function size:0x4 scope:global +DBWrite = .text:0x801145A4; // type:function size:0x260 scope:global +DBRead = .text:0x80114804; // type:function size:0x8C scope:global +DBQueryData = .text:0x80114890; // type:function size:0x9C scope:global +DBInitInterrupts = .text:0x8011492C; // type:function size:0x54 scope:global +DBInitComm = .text:0x80114980; // type:function size:0x78 scope:global +fn_801149F8 = .text:0x801149F8; // type:function size:0x40 +fn_80114A38 = .text:0x80114A38; // type:function size:0x3C +fn_80114A74 = .text:0x80114A74; // type:function size:0xAC +fn_80114B20 = .text:0x80114B20; // type:function size:0xDC +fn_80114BFC = .text:0x80114BFC; // type:function size:0xDC +fn_80114CD8 = .text:0x80114CD8; // type:function size:0xAC +fn_80114D84 = .text:0x80114D84; // type:function size:0x298 +EXI2_Init = .text:0x8011501C; // type:function size:0x4 scope:global +EXI2_EnableInterrupts = .text:0x80115020; // type:function size:0x4 scope:global +EXI2_Poll = .text:0x80115024; // type:function size:0x8 scope:global +EXI2_ReadN = .text:0x8011502C; // type:function size:0x8 scope:global +EXI2_WriteN = .text:0x80115034; // type:function size:0x8 scope:global +EXI2_Reserve = .text:0x8011503C; // type:function size:0x4 scope:global +EXI2_Unreserve = .text:0x80115040; // type:function size:0x4 scope:global +AMC_IsStub = .text:0x80115044; // type:function size:0x8 scope:global +Hu_IsStub = .text:0x8011504C; // type:function size:0x8 scope:weak +fn_80115054 = .text:0x80115054; // type:function size:0x10 +fn_80115064 = .text:0x80115064; // type:function size:0x34 +fn_80115098 = .text:0x80115098; // type:function size:0x6C +fn_80115104 = .text:0x80115104; // type:function size:0x27C +fn_80115380 = .text:0x80115380; // type:function size:0x15C +fn_801154DC = .text:0x801154DC; // type:function size:0xB4 +fn_80115590 = .text:0x80115590; // type:function size:0x31C +fn_801158AC = .text:0x801158AC; // type:function size:0x48 +fn_801158F4 = .text:0x801158F4; // type:function size:0x48 +fn_8011593C = .text:0x8011593C; // type:function size:0x68 +fn_801159A4 = .text:0x801159A4; // type:function size:0xD8 +fn_80115A7C = .text:0x80115A7C; // type:function size:0xFC +fn_80115B78 = .text:0x80115B78; // type:function size:0x4 +fn_80115B7C = .text:0x80115B7C; // type:function size:0x14 +fn_80115B90 = .text:0x80115B90; // type:function size:0xD8 +fn_80115C68 = .text:0x80115C68; // type:function size:0x114 +fn_80115D7C = .text:0x80115D7C; // type:function size:0x28 +fn_80115DA4 = .text:0x80115DA4; // type:function size:0x140 +fn_80115EE4 = .text:0x80115EE4; // type:function size:0x28C +fn_80116170 = .text:0x80116170; // type:function size:0x298 +fn_80116408 = .text:0x80116408; // type:function size:0x3F0 +fn_801167F8 = .text:0x801167F8; // type:function size:0x3B4 +fn_80116BAC = .text:0x80116BAC; // type:function size:0x278 +fn_80116E24 = .text:0x80116E24; // type:function size:0x20 +fn_80116E44 = .text:0x80116E44; // type:function size:0x474 +fn_801172B8 = .text:0x801172B8; // type:function size:0xC8 +fn_80117380 = .text:0x80117380; // type:function size:0x104 +fn_80117484 = .text:0x80117484; // type:function size:0x64 +fn_801174E8 = .text:0x801174E8; // type:function size:0x30 +fn_80117518 = .text:0x80117518; // type:function size:0x34 +fn_8011754C = .text:0x8011754C; // type:function size:0x2C +fn_80117578 = .text:0x80117578; // type:function size:0x60 +fn_801175D8 = .text:0x801175D8; // type:function size:0x154 +fn_8011772C = .text:0x8011772C; // type:function size:0x174 +fn_801178A0 = .text:0x801178A0; // type:function size:0x1BC +fn_80117A5C = .text:0x80117A5C; // type:function size:0x4 +fn_80117A60 = .text:0x80117A60; // type:function size:0x1CC +fn_80117C2C = .text:0x80117C2C; // type:function size:0x9C +fn_80117CC8 = .text:0x80117CC8; // type:function size:0x38 +fn_80117D00 = .text:0x80117D00; // type:function size:0x3C +fn_80117D3C = .text:0x80117D3C; // type:function size:0x30 +fn_80117D6C = .text:0x80117D6C; // type:function size:0x16C +fn_80117ED8 = .text:0x80117ED8; // type:function size:0x88 +fn_80117F60 = .text:0x80117F60; // type:function size:0x74 +fn_80117FD4 = .text:0x80117FD4; // type:function size:0x134 +fn_80118108 = .text:0x80118108; // type:function size:0xCC +fn_801181D4 = .text:0x801181D4; // type:function size:0x328 +fn_801184FC = .text:0x801184FC; // type:function size:0x174 +fn_80118670 = .text:0x80118670; // type:function size:0x250 +fn_801188C0 = .text:0x801188C0; // type:function size:0x184 +fn_80118A44 = .text:0x80118A44; // type:function size:0x270 +fn_80118CB4 = .text:0x80118CB4; // type:function size:0x30 +fn_80118CE4 = .text:0x80118CE4; // type:function size:0x4C +fn_80118D30 = .text:0x80118D30; // type:function size:0xD8 +fn_80118E08 = .text:0x80118E08; // type:function size:0x13C +fn_80118F44 = .text:0x80118F44; // type:function size:0x74 +fn_80118FB8 = .text:0x80118FB8; // type:function size:0x38 +fn_80118FF0 = .text:0x80118FF0; // type:function size:0x60 +fn_80119050 = .text:0x80119050; // type:function size:0x30 +fn_80119080 = .text:0x80119080; // type:function size:0x320 +fn_801193A0 = .text:0x801193A0; // type:function size:0x80 +fn_80119420 = .text:0x80119420; // type:function size:0x168 +fn_80119588 = .text:0x80119588; // type:function size:0xFC +fn_80119684 = .text:0x80119684; // type:function size:0x480 +fn_80119B04 = .text:0x80119B04; // type:function size:0x130 +fn_80119C34 = .text:0x80119C34; // type:function size:0xC8 +fn_80119CFC = .text:0x80119CFC; // type:function size:0x118 +fn_80119E14 = .text:0x80119E14; // type:function size:0xE0 +fn_80119EF4 = .text:0x80119EF4; // type:function size:0x204 +fn_8011A0F8 = .text:0x8011A0F8; // type:function size:0x88 +fn_8011A180 = .text:0x8011A180; // type:function size:0x8C +fn_8011A20C = .text:0x8011A20C; // type:function size:0x114 +fn_8011A320 = .text:0x8011A320; // type:function size:0x68 +fn_8011A388 = .text:0x8011A388; // type:function size:0x10C +fn_8011A494 = .text:0x8011A494; // type:function size:0x2A8 +fn_8011A73C = .text:0x8011A73C; // type:function size:0x2B8 +fn_8011A9F4 = .text:0x8011A9F4; // type:function size:0x1AC +fn_8011ABA0 = .text:0x8011ABA0; // type:function size:0x2E8 +fn_8011AE88 = .text:0x8011AE88; // type:function size:0x33C +fn_8011B1C4 = .text:0x8011B1C4; // type:function size:0x13C +fn_8011B300 = .text:0x8011B300; // type:function size:0xE0 +fn_8011B3E0 = .text:0x8011B3E0; // type:function size:0x448 +fn_8011B828 = .text:0x8011B828; // type:function size:0x2DC +fn_8011BB04 = .text:0x8011BB04; // type:function size:0xD0 +fn_8011BBD4 = .text:0x8011BBD4; // type:function size:0x320 +fn_8011BEF4 = .text:0x8011BEF4; // type:function size:0x4A8 +fn_8011C39C = .text:0x8011C39C; // type:function size:0x188 +fn_8011C524 = .text:0x8011C524; // type:function size:0x17C +fn_8011C6A0 = .text:0x8011C6A0; // type:function size:0x214 +fn_8011C8B4 = .text:0x8011C8B4; // type:function size:0x4 +fn_8011C8B8 = .text:0x8011C8B8; // type:function size:0x4 +fn_8011C8BC = .text:0x8011C8BC; // type:function size:0x4 +fn_8011C8C0 = .text:0x8011C8C0; // type:function size:0x4 +fn_8011C8C4 = .text:0x8011C8C4; // type:function size:0x4 +fn_8011C8C8 = .text:0x8011C8C8; // type:function size:0x4 +fn_8011C8CC = .text:0x8011C8CC; // type:function size:0x4 +fn_8011C8D0 = .text:0x8011C8D0; // type:function size:0x4 +fn_8011C8D4 = .text:0x8011C8D4; // type:function size:0x4 +fn_8011C8D8 = .text:0x8011C8D8; // type:function size:0x4 +fn_8011C8DC = .text:0x8011C8DC; // type:function size:0x4 +fn_8011C8E0 = .text:0x8011C8E0; // type:function size:0x4 +fn_8011C8E4 = .text:0x8011C8E4; // type:function size:0x4 +fn_8011C8E8 = .text:0x8011C8E8; // type:function size:0x4 +fn_8011C8EC = .text:0x8011C8EC; // type:function size:0x4 +fn_8011C8F0 = .text:0x8011C8F0; // type:function size:0x4 +fn_8011C8F4 = .text:0x8011C8F4; // type:function size:0x4 +fn_8011C8F8 = .text:0x8011C8F8; // type:function size:0x4 +fn_8011C8FC = .text:0x8011C8FC; // type:function size:0x4 +fn_8011C900 = .text:0x8011C900; // type:function size:0x4 +fn_8011C904 = .text:0x8011C904; // type:function size:0x4 +fn_8011C908 = .text:0x8011C908; // type:function size:0x4 +fn_8011C90C = .text:0x8011C90C; // type:function size:0x4 +fn_8011C910 = .text:0x8011C910; // type:function size:0x4 +fn_8011C914 = .text:0x8011C914; // type:function size:0x4 +fn_8011C918 = .text:0x8011C918; // type:function size:0x4 +fn_8011C91C = .text:0x8011C91C; // type:function size:0x4 +fn_8011C920 = .text:0x8011C920; // type:function size:0x4 +fn_8011C924 = .text:0x8011C924; // type:function size:0x4 +fn_8011C928 = .text:0x8011C928; // type:function size:0x4 +fn_8011C92C = .text:0x8011C92C; // type:function size:0x4 +fn_8011C930 = .text:0x8011C930; // type:function size:0x4 +fn_8011C934 = .text:0x8011C934; // type:function size:0x4 +fn_8011C938 = .text:0x8011C938; // type:function size:0x4 +fn_8011C93C = .text:0x8011C93C; // type:function size:0x4 +fn_8011C940 = .text:0x8011C940; // type:function size:0x4 +fn_8011C944 = .text:0x8011C944; // type:function size:0x4 +fn_8011C948 = .text:0x8011C948; // type:function size:0x4 +fn_8011C94C = .text:0x8011C94C; // type:function size:0x4 +fn_8011C950 = .text:0x8011C950; // type:function size:0x4 +fn_8011C954 = .text:0x8011C954; // type:function size:0x4 +fn_8011C958 = .text:0x8011C958; // type:function size:0x4 +fn_8011C95C = .text:0x8011C95C; // type:function size:0x4 +fn_8011C960 = .text:0x8011C960; // type:function size:0x4 +fn_8011C964 = .text:0x8011C964; // type:function size:0x4 +fn_8011C968 = .text:0x8011C968; // type:function size:0x4 +fn_8011C96C = .text:0x8011C96C; // type:function size:0x4 +fn_8011C970 = .text:0x8011C970; // type:function size:0x4 +fn_8011C974 = .text:0x8011C974; // type:function size:0x4 +fn_8011C978 = .text:0x8011C978; // type:function size:0x4 +fn_8011C97C = .text:0x8011C97C; // type:function size:0x4 +fn_8011C980 = .text:0x8011C980; // type:function size:0x4 +fn_8011C984 = .text:0x8011C984; // type:function size:0x4 +fn_8011C988 = .text:0x8011C988; // type:function size:0x4 +fn_8011C98C = .text:0x8011C98C; // type:function size:0x4 +fn_8011C990 = .text:0x8011C990; // type:function size:0x4 +fn_8011C994 = .text:0x8011C994; // type:function size:0x4 +fn_8011C998 = .text:0x8011C998; // type:function size:0x4 +fn_8011C99C = .text:0x8011C99C; // type:function size:0x4 +fn_8011C9A0 = .text:0x8011C9A0; // type:function size:0x4 +fn_8011C9A4 = .text:0x8011C9A4; // type:function size:0x4 +fn_8011C9A8 = .text:0x8011C9A8; // type:function size:0x4 +fn_8011C9AC = .text:0x8011C9AC; // type:function size:0x4 +fn_8011C9B0 = .text:0x8011C9B0; // type:function size:0x4 +fn_8011C9B4 = .text:0x8011C9B4; // type:function size:0x4 +fn_8011C9B8 = .text:0x8011C9B8; // type:function size:0x4 +fn_8011C9BC = .text:0x8011C9BC; // type:function size:0x4 +fn_8011C9C0 = .text:0x8011C9C0; // type:function size:0x4 +fn_8011C9C4 = .text:0x8011C9C4; // type:function size:0x4 +fn_8011C9C8 = .text:0x8011C9C8; // type:function size:0x4 +fn_8011C9CC = .text:0x8011C9CC; // type:function size:0x4 +fn_8011C9D0 = .text:0x8011C9D0; // type:function size:0x4 +fn_8011C9D4 = .text:0x8011C9D4; // type:function size:0x4 +fn_8011C9D8 = .text:0x8011C9D8; // type:function size:0x4 +fn_8011C9DC = .text:0x8011C9DC; // type:function size:0x4 +fn_8011C9E0 = .text:0x8011C9E0; // type:function size:0x4 +fn_8011C9E4 = .text:0x8011C9E4; // type:function size:0x4 +fn_8011C9E8 = .text:0x8011C9E8; // type:function size:0x4 +fn_8011C9EC = .text:0x8011C9EC; // type:function size:0x4 +fn_8011C9F0 = .text:0x8011C9F0; // type:function size:0x4 +fn_8011C9F4 = .text:0x8011C9F4; // type:function size:0x4 +fn_8011C9F8 = .text:0x8011C9F8; // type:function size:0x4 +fn_8011C9FC = .text:0x8011C9FC; // type:function size:0x4 +fn_8011CA00 = .text:0x8011CA00; // type:function size:0x4 +fn_8011CA04 = .text:0x8011CA04; // type:function size:0x4 +fn_8011CA08 = .text:0x8011CA08; // type:function size:0x4 +fn_8011CA0C = .text:0x8011CA0C; // type:function size:0x4 +fn_8011CA10 = .text:0x8011CA10; // type:function size:0x4 +fn_8011CA14 = .text:0x8011CA14; // type:function size:0x4 +fn_8011CA18 = .text:0x8011CA18; // type:function size:0x4 +fn_8011CA1C = .text:0x8011CA1C; // type:function size:0x4 +fn_8011CA20 = .text:0x8011CA20; // type:function size:0x4 +fn_8011CA24 = .text:0x8011CA24; // type:function size:0x4 +fn_8011CA28 = .text:0x8011CA28; // type:function size:0x4 +fn_8011CA2C = .text:0x8011CA2C; // type:function size:0x4 +fn_8011CA30 = .text:0x8011CA30; // type:function size:0x4 +fn_8011CA34 = .text:0x8011CA34; // type:function size:0x4 +fn_8011CA38 = .text:0x8011CA38; // type:function size:0x4 +fn_8011CA3C = .text:0x8011CA3C; // type:function size:0x4 +fn_8011CA40 = .text:0x8011CA40; // type:function size:0x4 +fn_8011CA44 = .text:0x8011CA44; // type:function size:0x4 +fn_8011CA48 = .text:0x8011CA48; // type:function size:0x4 +fn_8011CA4C = .text:0x8011CA4C; // type:function size:0x4 +fn_8011CA50 = .text:0x8011CA50; // type:function size:0x4 +fn_8011CA54 = .text:0x8011CA54; // type:function size:0x4 +fn_8011CA58 = .text:0x8011CA58; // type:function size:0x4 +fn_8011CA5C = .text:0x8011CA5C; // type:function size:0x4 +fn_8011CA60 = .text:0x8011CA60; // type:function size:0x4 +fn_8011CA64 = .text:0x8011CA64; // type:function size:0x4 +fn_8011CA68 = .text:0x8011CA68; // type:function size:0x4 +fn_8011CA6C = .text:0x8011CA6C; // type:function size:0x4 +fn_8011CA70 = .text:0x8011CA70; // type:function size:0x4 +fn_8011CA74 = .text:0x8011CA74; // type:function size:0x4 +fn_8011CA78 = .text:0x8011CA78; // type:function size:0x4 +fn_8011CA7C = .text:0x8011CA7C; // type:function size:0x4 +fn_8011CA80 = .text:0x8011CA80; // type:function size:0x4 +fn_8011CA84 = .text:0x8011CA84; // type:function size:0x4 +fn_8011CA88 = .text:0x8011CA88; // type:function size:0x4 +fn_8011CA8C = .text:0x8011CA8C; // type:function size:0x4 +fn_8011CA90 = .text:0x8011CA90; // type:function size:0x4 +fn_8011CA94 = .text:0x8011CA94; // type:function size:0x4 +fn_8011CA98 = .text:0x8011CA98; // type:function size:0x4 +fn_8011CA9C = .text:0x8011CA9C; // type:function size:0x4 +fn_8011CAA0 = .text:0x8011CAA0; // type:function size:0x4 +fn_8011CAA4 = .text:0x8011CAA4; // type:function size:0x4 +fn_8011CAA8 = .text:0x8011CAA8; // type:function size:0x4 +fn_8011CAAC = .text:0x8011CAAC; // type:function size:0x4 +fn_8011CAB0 = .text:0x8011CAB0; // type:function size:0x4 +fn_8011CAB4 = .text:0x8011CAB4; // type:function size:0x4 +fn_8011CAB8 = .text:0x8011CAB8; // type:function size:0x4 +fn_8011CABC = .text:0x8011CABC; // type:function size:0x4 +fn_8011CAC0 = .text:0x8011CAC0; // type:function size:0x4 +fn_8011CAC4 = .text:0x8011CAC4; // type:function size:0x4 +fn_8011CAC8 = .text:0x8011CAC8; // type:function size:0x4 +fn_8011CACC = .text:0x8011CACC; // type:function size:0x4 +fn_8011CAD0 = .text:0x8011CAD0; // type:function size:0x4 +fn_8011CAD4 = .text:0x8011CAD4; // type:function size:0x4 +fn_8011CAD8 = .text:0x8011CAD8; // type:function size:0x4 +fn_8011CADC = .text:0x8011CADC; // type:function size:0x4 +fn_8011CAE0 = .text:0x8011CAE0; // type:function size:0x4 +fn_8011CAE4 = .text:0x8011CAE4; // type:function size:0x4 +fn_8011CAE8 = .text:0x8011CAE8; // type:function size:0x4 +fn_8011CAEC = .text:0x8011CAEC; // type:function size:0x4 +fn_8011CAF0 = .text:0x8011CAF0; // type:function size:0x4 +fn_8011CAF4 = .text:0x8011CAF4; // type:function size:0x4 +fn_8011CAF8 = .text:0x8011CAF8; // type:function size:0x4 +fn_8011CAFC = .text:0x8011CAFC; // type:function size:0x4 +fn_8011CB00 = .text:0x8011CB00; // type:function size:0x4 +fn_8011CB04 = .text:0x8011CB04; // type:function size:0x4 +fn_8011CB08 = .text:0x8011CB08; // type:function size:0x4 +fn_8011CB0C = .text:0x8011CB0C; // type:function size:0x4 +fn_8011CB10 = .text:0x8011CB10; // type:function size:0x4 +fn_8011CB14 = .text:0x8011CB14; // type:function size:0x4 +fn_8011CB18 = .text:0x8011CB18; // type:function size:0x4 +fn_8011CB1C = .text:0x8011CB1C; // type:function size:0x4 +fn_8011CB20 = .text:0x8011CB20; // type:function size:0x4 +fn_8011CB24 = .text:0x8011CB24; // type:function size:0x4 +fn_8011CB28 = .text:0x8011CB28; // type:function size:0x4 +fn_8011CB2C = .text:0x8011CB2C; // type:function size:0x4 +fn_8011CB30 = .text:0x8011CB30; // type:function size:0x4 +fn_8011CB34 = .text:0x8011CB34; // type:function size:0x4 +fn_8011CB38 = .text:0x8011CB38; // type:function size:0x4 +fn_8011CB3C = .text:0x8011CB3C; // type:function size:0x4 +fn_8011CB40 = .text:0x8011CB40; // type:function size:0x4 +fn_8011CB44 = .text:0x8011CB44; // type:function size:0x4 +fn_8011CB48 = .text:0x8011CB48; // type:function size:0x4 +fn_8011CB4C = .text:0x8011CB4C; // type:function size:0x4 +fn_8011CB50 = .text:0x8011CB50; // type:function size:0x4 +fn_8011CB54 = .text:0x8011CB54; // type:function size:0x4 +fn_8011CB58 = .text:0x8011CB58; // type:function size:0x4 +fn_8011CB5C = .text:0x8011CB5C; // type:function size:0x4 +fn_8011CB60 = .text:0x8011CB60; // type:function size:0x4 +fn_8011CB64 = .text:0x8011CB64; // type:function size:0x4 +fn_8011CB68 = .text:0x8011CB68; // type:function size:0x4 +fn_8011CB6C = .text:0x8011CB6C; // type:function size:0x4 +fn_8011CB70 = .text:0x8011CB70; // type:function size:0x4 +fn_8011CB74 = .text:0x8011CB74; // type:function size:0x4 +fn_8011CB78 = .text:0x8011CB78; // type:function size:0x4 +fn_8011CB7C = .text:0x8011CB7C; // type:function size:0x4 +fn_8011CB80 = .text:0x8011CB80; // type:function size:0x4 +fn_8011CB84 = .text:0x8011CB84; // type:function size:0x4 +fn_8011CB88 = .text:0x8011CB88; // type:function size:0x4 +fn_8011CB8C = .text:0x8011CB8C; // type:function size:0x4 +fn_8011CB90 = .text:0x8011CB90; // type:function size:0x4 +fn_8011CB94 = .text:0x8011CB94; // type:function size:0x4 +fn_8011CB98 = .text:0x8011CB98; // type:function size:0x4 +fn_8011CB9C = .text:0x8011CB9C; // type:function size:0x4 +fn_8011CBA0 = .text:0x8011CBA0; // type:function size:0x4 +fn_8011CBA4 = .text:0x8011CBA4; // type:function size:0x4 +fn_8011CBA8 = .text:0x8011CBA8; // type:function size:0x4 +fn_8011CBAC = .text:0x8011CBAC; // type:function size:0x4 +fn_8011CBB0 = .text:0x8011CBB0; // type:function size:0x4 +fn_8011CBB4 = .text:0x8011CBB4; // type:function size:0x4 +fn_8011CBB8 = .text:0x8011CBB8; // type:function size:0x4 +fn_8011CBBC = .text:0x8011CBBC; // type:function size:0x4 +fn_8011CBC0 = .text:0x8011CBC0; // type:function size:0x4 +fn_8011CBC4 = .text:0x8011CBC4; // type:function size:0x4 +fn_8011CBC8 = .text:0x8011CBC8; // type:function size:0x4 +fn_8011CBCC = .text:0x8011CBCC; // type:function size:0x4 +fn_8011CBD0 = .text:0x8011CBD0; // type:function size:0x4 +fn_8011CBD4 = .text:0x8011CBD4; // type:function size:0x4 +fn_8011CBD8 = .text:0x8011CBD8; // type:function size:0x4 +fn_8011CBDC = .text:0x8011CBDC; // type:function size:0x4 +fn_8011CBE0 = .text:0x8011CBE0; // type:function size:0x4 +fn_8011CBE4 = .text:0x8011CBE4; // type:function size:0x4 +fn_8011CBE8 = .text:0x8011CBE8; // type:function size:0x4 +fn_8011CBEC = .text:0x8011CBEC; // type:function size:0x4 +fn_8011CBF0 = .text:0x8011CBF0; // type:function size:0x4 +fn_8011CBF4 = .text:0x8011CBF4; // type:function size:0x4 +fn_8011CBF8 = .text:0x8011CBF8; // type:function size:0x4 +fn_8011CBFC = .text:0x8011CBFC; // type:function size:0x4 +fn_8011CC00 = .text:0x8011CC00; // type:function size:0x4 +fn_8011CC04 = .text:0x8011CC04; // type:function size:0x4 +fn_8011CC08 = .text:0x8011CC08; // type:function size:0x4 +fn_8011CC0C = .text:0x8011CC0C; // type:function size:0x4 +fn_8011CC10 = .text:0x8011CC10; // type:function size:0x4 +fn_8011CC14 = .text:0x8011CC14; // type:function size:0x4 +fn_8011CC18 = .text:0x8011CC18; // type:function size:0x4 +fn_8011CC1C = .text:0x8011CC1C; // type:function size:0x4 +fn_8011CC20 = .text:0x8011CC20; // type:function size:0x4 +fn_8011CC24 = .text:0x8011CC24; // type:function size:0x4 +fn_8011CC28 = .text:0x8011CC28; // type:function size:0x4 +fn_8011CC2C = .text:0x8011CC2C; // type:function size:0x4 +fn_8011CC30 = .text:0x8011CC30; // type:function size:0x4 +fn_8011CC34 = .text:0x8011CC34; // type:function size:0x4 +fn_8011CC38 = .text:0x8011CC38; // type:function size:0x4 +fn_8011CC3C = .text:0x8011CC3C; // type:function size:0x4 +fn_8011CC40 = .text:0x8011CC40; // type:function size:0x4 +fn_8011CC44 = .text:0x8011CC44; // type:function size:0x4 +fn_8011CC48 = .text:0x8011CC48; // type:function size:0x4 +fn_8011CC4C = .text:0x8011CC4C; // type:function size:0x4 +fn_8011CC50 = .text:0x8011CC50; // type:function size:0x4 +fn_8011CC54 = .text:0x8011CC54; // type:function size:0x4 +fn_8011CC58 = .text:0x8011CC58; // type:function size:0x4 +fn_8011CC5C = .text:0x8011CC5C; // type:function size:0x4 +fn_8011CC60 = .text:0x8011CC60; // type:function size:0x4 +fn_8011CC64 = .text:0x8011CC64; // type:function size:0x4 +fn_8011CC68 = .text:0x8011CC68; // type:function size:0x4 +fn_8011CC6C = .text:0x8011CC6C; // type:function size:0x4 +fn_8011CC70 = .text:0x8011CC70; // type:function size:0x4 +fn_8011CC74 = .text:0x8011CC74; // type:function size:0x4 +fn_8011CC78 = .text:0x8011CC78; // type:function size:0x4 +fn_8011CC7C = .text:0x8011CC7C; // type:function size:0x4 +fn_8011CC80 = .text:0x8011CC80; // type:function size:0x4 +fn_8011CC84 = .text:0x8011CC84; // type:function size:0x4 +fn_8011CC88 = .text:0x8011CC88; // type:function size:0x4 +fn_8011CC8C = .text:0x8011CC8C; // type:function size:0x4 +fn_8011CC90 = .text:0x8011CC90; // type:function size:0x4 +fn_8011CC94 = .text:0x8011CC94; // type:function size:0x4 +fn_8011CC98 = .text:0x8011CC98; // type:function size:0x4 +fn_8011CC9C = .text:0x8011CC9C; // type:function size:0x4 +fn_8011CCA0 = .text:0x8011CCA0; // type:function size:0x4 +fn_8011CCA4 = .text:0x8011CCA4; // type:function size:0x4 +fn_8011CCA8 = .text:0x8011CCA8; // type:function size:0x4 +fn_8011CCAC = .text:0x8011CCAC; // type:function size:0x4 +fn_8011CCB0 = .text:0x8011CCB0; // type:function size:0x4 +fn_8011CCB4 = .text:0x8011CCB4; // type:function size:0x4 +fn_8011CCB8 = .text:0x8011CCB8; // type:function size:0x4 +fn_8011CCBC = .text:0x8011CCBC; // type:function size:0x4 +fn_8011CCC0 = .text:0x8011CCC0; // type:function size:0x4 +fn_8011CCC4 = .text:0x8011CCC4; // type:function size:0x4 +fn_8011CCC8 = .text:0x8011CCC8; // type:function size:0x4 +fn_8011CCCC = .text:0x8011CCCC; // type:function size:0x4 +fn_8011CCD0 = .text:0x8011CCD0; // type:function size:0x4 +fn_8011CCD4 = .text:0x8011CCD4; // type:function size:0x4 +fn_8011CCD8 = .text:0x8011CCD8; // type:function size:0x4 +fn_8011CCDC = .text:0x8011CCDC; // type:function size:0x4 +fn_8011CCE0 = .text:0x8011CCE0; // type:function size:0x4 +fn_8011CCE4 = .text:0x8011CCE4; // type:function size:0x4 +fn_8011CCE8 = .text:0x8011CCE8; // type:function size:0x4 +fn_8011CCEC = .text:0x8011CCEC; // type:function size:0x4 +fn_8011CCF0 = .text:0x8011CCF0; // type:function size:0x4 +fn_8011CCF4 = .text:0x8011CCF4; // type:function size:0x4 +fn_8011CCF8 = .text:0x8011CCF8; // type:function size:0x4 +fn_8011CCFC = .text:0x8011CCFC; // type:function size:0x4 +fn_8011CD00 = .text:0x8011CD00; // type:function size:0x4 +fn_8011CD04 = .text:0x8011CD04; // type:function size:0x4 +fn_8011CD08 = .text:0x8011CD08; // type:function size:0x4 +fn_8011CD0C = .text:0x8011CD0C; // type:function size:0x4 +fn_8011CD10 = .text:0x8011CD10; // type:function size:0x4 +fn_8011CD14 = .text:0x8011CD14; // type:function size:0x4 +fn_8011CD18 = .text:0x8011CD18; // type:function size:0x4 +fn_8011CD1C = .text:0x8011CD1C; // type:function size:0x4 +fn_8011CD20 = .text:0x8011CD20; // type:function size:0x4 +fn_8011CD24 = .text:0x8011CD24; // type:function size:0x4 +fn_8011CD28 = .text:0x8011CD28; // type:function size:0x4 +fn_8011CD2C = .text:0x8011CD2C; // type:function size:0x4 +fn_8011CD30 = .text:0x8011CD30; // type:function size:0x4 +fn_8011CD34 = .text:0x8011CD34; // type:function size:0x4 +fn_8011CD38 = .text:0x8011CD38; // type:function size:0x4 +fn_8011CD3C = .text:0x8011CD3C; // type:function size:0x4 +fn_8011CD40 = .text:0x8011CD40; // type:function size:0x4 +fn_8011CD44 = .text:0x8011CD44; // type:function size:0x4 +fn_8011CD48 = .text:0x8011CD48; // type:function size:0x4 +fn_8011CD4C = .text:0x8011CD4C; // type:function size:0x4 +fn_8011CD50 = .text:0x8011CD50; // type:function size:0x4 +fn_8011CD54 = .text:0x8011CD54; // type:function size:0x4 +fn_8011CD58 = .text:0x8011CD58; // type:function size:0x4 +fn_8011CD5C = .text:0x8011CD5C; // type:function size:0x4 +fn_8011CD60 = .text:0x8011CD60; // type:function size:0x4 +fn_8011CD64 = .text:0x8011CD64; // type:function size:0x4 +fn_8011CD68 = .text:0x8011CD68; // type:function size:0x4 +fn_8011CD6C = .text:0x8011CD6C; // type:function size:0x4 +fn_8011CD70 = .text:0x8011CD70; // type:function size:0x4 +fn_8011CD74 = .text:0x8011CD74; // type:function size:0x4 +fn_8011CD78 = .text:0x8011CD78; // type:function size:0x4 +fn_8011CD7C = .text:0x8011CD7C; // type:function size:0x4 +fn_8011CD80 = .text:0x8011CD80; // type:function size:0x4 +fn_8011CD84 = .text:0x8011CD84; // type:function size:0x4 +fn_8011CD88 = .text:0x8011CD88; // type:function size:0x4 +fn_8011CD8C = .text:0x8011CD8C; // type:function size:0x4 +fn_8011CD90 = .text:0x8011CD90; // type:function size:0x4 +fn_8011CD94 = .text:0x8011CD94; // type:function size:0x4 +fn_8011CD98 = .text:0x8011CD98; // type:function size:0x4 +fn_8011CD9C = .text:0x8011CD9C; // type:function size:0x4 +fn_8011CDA0 = .text:0x8011CDA0; // type:function size:0x4 +fn_8011CDA4 = .text:0x8011CDA4; // type:function size:0x4 +fn_8011CDA8 = .text:0x8011CDA8; // type:function size:0x4 +fn_8011CDAC = .text:0x8011CDAC; // type:function size:0x4 +fn_8011CDB0 = .text:0x8011CDB0; // type:function size:0x4 +fn_8011CDB4 = .text:0x8011CDB4; // type:function size:0x4 +fn_8011CDB8 = .text:0x8011CDB8; // type:function size:0x4 +fn_8011CDBC = .text:0x8011CDBC; // type:function size:0x4 +fn_8011CDC0 = .text:0x8011CDC0; // type:function size:0x4 +fn_8011CDC4 = .text:0x8011CDC4; // type:function size:0x4 +fn_8011CDC8 = .text:0x8011CDC8; // type:function size:0x4 +fn_8011CDCC = .text:0x8011CDCC; // type:function size:0x4 +fn_8011CDD0 = .text:0x8011CDD0; // type:function size:0x4 +fn_8011CDD4 = .text:0x8011CDD4; // type:function size:0x4 +fn_8011CDD8 = .text:0x8011CDD8; // type:function size:0x4 +fn_8011CDDC = .text:0x8011CDDC; // type:function size:0x4 +fn_8011CDE0 = .text:0x8011CDE0; // type:function size:0x4 +fn_8011CDE4 = .text:0x8011CDE4; // type:function size:0x4 +fn_8011CDE8 = .text:0x8011CDE8; // type:function size:0x4 +fn_8011CDEC = .text:0x8011CDEC; // type:function size:0x4 +fn_8011CDF0 = .text:0x8011CDF0; // type:function size:0x4 +fn_8011CDF4 = .text:0x8011CDF4; // type:function size:0x4 +fn_8011CDF8 = .text:0x8011CDF8; // type:function size:0x4 +fn_8011CDFC = .text:0x8011CDFC; // type:function size:0x4 +fn_8011CE00 = .text:0x8011CE00; // type:function size:0x4 +fn_8011CE04 = .text:0x8011CE04; // type:function size:0x4 +fn_8011CE08 = .text:0x8011CE08; // type:function size:0x4 +fn_8011CE0C = .text:0x8011CE0C; // type:function size:0x4 +fn_8011CE10 = .text:0x8011CE10; // type:function size:0x4 +fn_8011CE14 = .text:0x8011CE14; // type:function size:0x4 +fn_8011CE18 = .text:0x8011CE18; // type:function size:0x4 +fn_8011CE1C = .text:0x8011CE1C; // type:function size:0x4 +fn_8011CE20 = .text:0x8011CE20; // type:function size:0x4 +fn_8011CE24 = .text:0x8011CE24; // type:function size:0x4 +fn_8011CE28 = .text:0x8011CE28; // type:function size:0x4 +fn_8011CE2C = .text:0x8011CE2C; // type:function size:0x4 +fn_8011CE30 = .text:0x8011CE30; // type:function size:0x4 +fn_8011CE34 = .text:0x8011CE34; // type:function size:0x4 +fn_8011CE38 = .text:0x8011CE38; // type:function size:0x4 +fn_8011CE3C = .text:0x8011CE3C; // type:function size:0x4 +fn_8011CE40 = .text:0x8011CE40; // type:function size:0x4 +fn_8011CE44 = .text:0x8011CE44; // type:function size:0x4 +fn_8011CE48 = .text:0x8011CE48; // type:function size:0x4 +fn_8011CE4C = .text:0x8011CE4C; // type:function size:0x4 +fn_8011CE50 = .text:0x8011CE50; // type:function size:0x4 +fn_8011CE54 = .text:0x8011CE54; // type:function size:0x4 +fn_8011CE58 = .text:0x8011CE58; // type:function size:0x4 +fn_8011CE5C = .text:0x8011CE5C; // type:function size:0x4 +fn_8011CE60 = .text:0x8011CE60; // type:function size:0x4 +fn_8011CE64 = .text:0x8011CE64; // type:function size:0x4 +fn_8011CE68 = .text:0x8011CE68; // type:function size:0x4 +fn_8011CE6C = .text:0x8011CE6C; // type:function size:0x4 +fn_8011CE70 = .text:0x8011CE70; // type:function size:0x4 +fn_8011CE74 = .text:0x8011CE74; // type:function size:0x4 +fn_8011CE78 = .text:0x8011CE78; // type:function size:0x4 +fn_8011CE7C = .text:0x8011CE7C; // type:function size:0x4 +fn_8011CE80 = .text:0x8011CE80; // type:function size:0x4 +fn_8011CE84 = .text:0x8011CE84; // type:function size:0x4 +fn_8011CE88 = .text:0x8011CE88; // type:function size:0x4 +fn_8011CE8C = .text:0x8011CE8C; // type:function size:0x4 +fn_8011CE90 = .text:0x8011CE90; // type:function size:0x4 +fn_8011CE94 = .text:0x8011CE94; // type:function size:0x4 +fn_8011CE98 = .text:0x8011CE98; // type:function size:0x4 +fn_8011CE9C = .text:0x8011CE9C; // type:function size:0x4 +fn_8011CEA0 = .text:0x8011CEA0; // type:function size:0x4 +fn_8011CEA4 = .text:0x8011CEA4; // type:function size:0x4 +fn_8011CEA8 = .text:0x8011CEA8; // type:function size:0x4 +fn_8011CEAC = .text:0x8011CEAC; // type:function size:0x4 +fn_8011CEB0 = .text:0x8011CEB0; // type:function size:0x4 +fn_8011CEB4 = .text:0x8011CEB4; // type:function size:0x4 +fn_8011CEB8 = .text:0x8011CEB8; // type:function size:0x4 +fn_8011CEBC = .text:0x8011CEBC; // type:function size:0x4 +fn_8011CEC0 = .text:0x8011CEC0; // type:function size:0x4 +fn_8011CEC4 = .text:0x8011CEC4; // type:function size:0x4 +fn_8011CEC8 = .text:0x8011CEC8; // type:function size:0x4 +fn_8011CECC = .text:0x8011CECC; // type:function size:0x4 +fn_8011CED0 = .text:0x8011CED0; // type:function size:0x4 +fn_8011CED4 = .text:0x8011CED4; // type:function size:0x4 +fn_8011CED8 = .text:0x8011CED8; // type:function size:0x4 +fn_8011CEDC = .text:0x8011CEDC; // type:function size:0x4 +fn_8011CEE0 = .text:0x8011CEE0; // type:function size:0x4 +fn_8011CEE4 = .text:0x8011CEE4; // type:function size:0x4 +fn_8011CEE8 = .text:0x8011CEE8; // type:function size:0x4 +fn_8011CEEC = .text:0x8011CEEC; // type:function size:0x4 +fn_8011CEF0 = .text:0x8011CEF0; // type:function size:0x4 +fn_8011CEF4 = .text:0x8011CEF4; // type:function size:0x4 +fn_8011CEF8 = .text:0x8011CEF8; // type:function size:0x4 +fn_8011CEFC = .text:0x8011CEFC; // type:function size:0x4 +fn_8011CF00 = .text:0x8011CF00; // type:function size:0x4 +fn_8011CF04 = .text:0x8011CF04; // type:function size:0x4 +fn_8011CF08 = .text:0x8011CF08; // type:function size:0x4 +fn_8011CF0C = .text:0x8011CF0C; // type:function size:0x4 +fn_8011CF10 = .text:0x8011CF10; // type:function size:0x4 +fn_8011CF14 = .text:0x8011CF14; // type:function size:0x4 +fn_8011CF18 = .text:0x8011CF18; // type:function size:0x4 +fn_8011CF1C = .text:0x8011CF1C; // type:function size:0x4 +fn_8011CF20 = .text:0x8011CF20; // type:function size:0x4 +fn_8011CF24 = .text:0x8011CF24; // type:function size:0x4 +fn_8011CF28 = .text:0x8011CF28; // type:function size:0x4 +fn_8011CF2C = .text:0x8011CF2C; // type:function size:0x4 +fn_8011CF30 = .text:0x8011CF30; // type:function size:0x4 +fn_8011CF34 = .text:0x8011CF34; // type:function size:0x4 +fn_8011CF38 = .text:0x8011CF38; // type:function size:0x4 +fn_8011CF3C = .text:0x8011CF3C; // type:function size:0x4 +fn_8011CF40 = .text:0x8011CF40; // type:function size:0x4 +fn_8011CF44 = .text:0x8011CF44; // type:function size:0x4 +fn_8011CF48 = .text:0x8011CF48; // type:function size:0x4 +fn_8011CF4C = .text:0x8011CF4C; // type:function size:0x4 +fn_8011CF50 = .text:0x8011CF50; // type:function size:0x4 +fn_8011CF54 = .text:0x8011CF54; // type:function size:0x4 +fn_8011CF58 = .text:0x8011CF58; // type:function size:0x4 +fn_8011CF5C = .text:0x8011CF5C; // type:function size:0x4 +fn_8011CF60 = .text:0x8011CF60; // type:function size:0x4 +fn_8011CF64 = .text:0x8011CF64; // type:function size:0x4 +fn_8011CF68 = .text:0x8011CF68; // type:function size:0x4 +fn_8011CF6C = .text:0x8011CF6C; // type:function size:0x4 +fn_8011CF70 = .text:0x8011CF70; // type:function size:0x4 +fn_8011CF74 = .text:0x8011CF74; // type:function size:0x4 +fn_8011CF78 = .text:0x8011CF78; // type:function size:0x4 +fn_8011CF7C = .text:0x8011CF7C; // type:function size:0x4 +fn_8011CF80 = .text:0x8011CF80; // type:function size:0x4 +fn_8011CF84 = .text:0x8011CF84; // type:function size:0x4 +fn_8011CF88 = .text:0x8011CF88; // type:function size:0x4 +fn_8011CF8C = .text:0x8011CF8C; // type:function size:0x4 +fn_8011CF90 = .text:0x8011CF90; // type:function size:0x4 +fn_8011CF94 = .text:0x8011CF94; // type:function size:0x4 +fn_8011CF98 = .text:0x8011CF98; // type:function size:0x4 +fn_8011CF9C = .text:0x8011CF9C; // type:function size:0x4 +fn_8011CFA0 = .text:0x8011CFA0; // type:function size:0x4 +fn_8011CFA4 = .text:0x8011CFA4; // type:function size:0x4 +fn_8011CFA8 = .text:0x8011CFA8; // type:function size:0x4 +fn_8011CFAC = .text:0x8011CFAC; // type:function size:0x4 +fn_8011CFB0 = .text:0x8011CFB0; // type:function size:0x4 +fn_8011CFB4 = .text:0x8011CFB4; // type:function size:0x4 +fn_8011CFB8 = .text:0x8011CFB8; // type:function size:0x4 +fn_8011CFBC = .text:0x8011CFBC; // type:function size:0x4 +fn_8011CFC0 = .text:0x8011CFC0; // type:function size:0x4 +fn_8011CFC4 = .text:0x8011CFC4; // type:function size:0x4 +fn_8011CFC8 = .text:0x8011CFC8; // type:function size:0x4 +fn_8011CFCC = .text:0x8011CFCC; // type:function size:0x4 +fn_8011CFD0 = .text:0x8011CFD0; // type:function size:0x4 +fn_8011CFD4 = .text:0x8011CFD4; // type:function size:0x4 +fn_8011CFD8 = .text:0x8011CFD8; // type:function size:0x4 +fn_8011CFDC = .text:0x8011CFDC; // type:function size:0x4 +fn_8011CFE0 = .text:0x8011CFE0; // type:function size:0x4 +fn_8011CFE4 = .text:0x8011CFE4; // type:function size:0x4 +fn_8011CFE8 = .text:0x8011CFE8; // type:function size:0x4 +fn_8011CFEC = .text:0x8011CFEC; // type:function size:0x4 +fn_8011CFF0 = .text:0x8011CFF0; // type:function size:0x4 +fn_8011CFF4 = .text:0x8011CFF4; // type:function size:0x4 +fn_8011CFF8 = .text:0x8011CFF8; // type:function size:0x4 +fn_8011CFFC = .text:0x8011CFFC; // type:function size:0x4 +fn_8011D000 = .text:0x8011D000; // type:function size:0x4 +fn_8011D004 = .text:0x8011D004; // type:function size:0x4 +fn_8011D008 = .text:0x8011D008; // type:function size:0x4 +fn_8011D00C = .text:0x8011D00C; // type:function size:0x4 +fn_8011D010 = .text:0x8011D010; // type:function size:0x4 +fn_8011D014 = .text:0x8011D014; // type:function size:0x4 +fn_8011D018 = .text:0x8011D018; // type:function size:0x4 +fn_8011D01C = .text:0x8011D01C; // type:function size:0x4 +fn_8011D020 = .text:0x8011D020; // type:function size:0x4 +fn_8011D024 = .text:0x8011D024; // type:function size:0x4 +fn_8011D028 = .text:0x8011D028; // type:function size:0x4 +fn_8011D02C = .text:0x8011D02C; // type:function size:0x4 +fn_8011D030 = .text:0x8011D030; // type:function size:0x4 +fn_8011D034 = .text:0x8011D034; // type:function size:0x4 +fn_8011D038 = .text:0x8011D038; // type:function size:0x4 +fn_8011D03C = .text:0x8011D03C; // type:function size:0x4 +fn_8011D040 = .text:0x8011D040; // type:function size:0x4 +fn_8011D044 = .text:0x8011D044; // type:function size:0x4 +fn_8011D048 = .text:0x8011D048; // type:function size:0x4 +fn_8011D04C = .text:0x8011D04C; // type:function size:0x4 +fn_8011D050 = .text:0x8011D050; // type:function size:0x4 +fn_8011D054 = .text:0x8011D054; // type:function size:0x4 +fn_8011D058 = .text:0x8011D058; // type:function size:0x4 +fn_8011D05C = .text:0x8011D05C; // type:function size:0x4 +fn_8011D060 = .text:0x8011D060; // type:function size:0x4 +fn_8011D064 = .text:0x8011D064; // type:function size:0x4 +fn_8011D068 = .text:0x8011D068; // type:function size:0x4 +fn_8011D06C = .text:0x8011D06C; // type:function size:0x4 +fn_8011D070 = .text:0x8011D070; // type:function size:0x4 +fn_8011D074 = .text:0x8011D074; // type:function size:0x4 +fn_8011D078 = .text:0x8011D078; // type:function size:0x4 +fn_8011D07C = .text:0x8011D07C; // type:function size:0x4 +fn_8011D080 = .text:0x8011D080; // type:function size:0x4 +fn_8011D084 = .text:0x8011D084; // type:function size:0x4 +fn_8011D088 = .text:0x8011D088; // type:function size:0x4 +fn_8011D08C = .text:0x8011D08C; // type:function size:0x4 +fn_8011D090 = .text:0x8011D090; // type:function size:0x4 +fn_8011D094 = .text:0x8011D094; // type:function size:0x4 +fn_8011D098 = .text:0x8011D098; // type:function size:0x4 +fn_8011D09C = .text:0x8011D09C; // type:function size:0x4 +fn_8011D0A0 = .text:0x8011D0A0; // type:function size:0x4 +fn_8011D0A4 = .text:0x8011D0A4; // type:function size:0x4 +fn_8011D0A8 = .text:0x8011D0A8; // type:function size:0x4 +fn_8011D0AC = .text:0x8011D0AC; // type:function size:0x4 +fn_8011D0B0 = .text:0x8011D0B0; // type:function size:0x4 +fn_8011D0B4 = .text:0x8011D0B4; // type:function size:0x4 +fn_8011D0B8 = .text:0x8011D0B8; // type:function size:0x4 +fn_8011D0BC = .text:0x8011D0BC; // type:function size:0x4 +fn_8011D0C0 = .text:0x8011D0C0; // type:function size:0x4 +fn_8011D0C4 = .text:0x8011D0C4; // type:function size:0x4 +fn_8011D0C8 = .text:0x8011D0C8; // type:function size:0x4 +fn_8011D0CC = .text:0x8011D0CC; // type:function size:0x4 +fn_8011D0D0 = .text:0x8011D0D0; // type:function size:0x4 +fn_8011D0D4 = .text:0x8011D0D4; // type:function size:0x4 +fn_8011D0D8 = .text:0x8011D0D8; // type:function size:0x4 +fn_8011D0DC = .text:0x8011D0DC; // type:function size:0x4 +fn_8011D0E0 = .text:0x8011D0E0; // type:function size:0x4 +fn_8011D0E4 = .text:0x8011D0E4; // type:function size:0x4 +fn_8011D0E8 = .text:0x8011D0E8; // type:function size:0x4 +fn_8011D0EC = .text:0x8011D0EC; // type:function size:0x4 +fn_8011D0F0 = .text:0x8011D0F0; // type:function size:0x4 +fn_8011D0F4 = .text:0x8011D0F4; // type:function size:0x4 +fn_8011D0F8 = .text:0x8011D0F8; // type:function size:0x4 +fn_8011D0FC = .text:0x8011D0FC; // type:function size:0x4 +fn_8011D100 = .text:0x8011D100; // type:function size:0x4 +fn_8011D104 = .text:0x8011D104; // type:function size:0x4 +fn_8011D108 = .text:0x8011D108; // type:function size:0x4 +fn_8011D10C = .text:0x8011D10C; // type:function size:0x4 +fn_8011D110 = .text:0x8011D110; // type:function size:0x4 +fn_8011D114 = .text:0x8011D114; // type:function size:0x4 +fn_8011D118 = .text:0x8011D118; // type:function size:0x4 +fn_8011D11C = .text:0x8011D11C; // type:function size:0x4 +fn_8011D120 = .text:0x8011D120; // type:function size:0x4 +fn_8011D124 = .text:0x8011D124; // type:function size:0x4 +fn_8011D128 = .text:0x8011D128; // type:function size:0x4 +fn_8011D12C = .text:0x8011D12C; // type:function size:0x4 +fn_8011D130 = .text:0x8011D130; // type:function size:0x4 +fn_8011D134 = .text:0x8011D134; // type:function size:0x4 +fn_8011D138 = .text:0x8011D138; // type:function size:0x4 +fn_8011D13C = .text:0x8011D13C; // type:function size:0x4 +fn_8011D140 = .text:0x8011D140; // type:function size:0x4 +fn_8011D144 = .text:0x8011D144; // type:function size:0x4 +fn_8011D148 = .text:0x8011D148; // type:function size:0x4 +fn_8011D14C = .text:0x8011D14C; // type:function size:0x4 +fn_8011D150 = .text:0x8011D150; // type:function size:0x4 +fn_8011D154 = .text:0x8011D154; // type:function size:0x4 +fn_8011D158 = .text:0x8011D158; // type:function size:0x4 +fn_8011D15C = .text:0x8011D15C; // type:function size:0x4 +fn_8011D160 = .text:0x8011D160; // type:function size:0x4 +fn_8011D164 = .text:0x8011D164; // type:function size:0x4 +fn_8011D168 = .text:0x8011D168; // type:function size:0x4 +fn_8011D16C = .text:0x8011D16C; // type:function size:0x4 +fn_8011D170 = .text:0x8011D170; // type:function size:0x4 +fn_8011D174 = .text:0x8011D174; // type:function size:0x4 +fn_8011D178 = .text:0x8011D178; // type:function size:0x4 +fn_8011D17C = .text:0x8011D17C; // type:function size:0x4 +fn_8011D180 = .text:0x8011D180; // type:function size:0x4 +fn_8011D184 = .text:0x8011D184; // type:function size:0x4 +fn_8011D188 = .text:0x8011D188; // type:function size:0x4 +fn_8011D18C = .text:0x8011D18C; // type:function size:0x4 +fn_8011D190 = .text:0x8011D190; // type:function size:0x4 +fn_8011D194 = .text:0x8011D194; // type:function size:0x4 +fn_8011D198 = .text:0x8011D198; // type:function size:0x4 +fn_8011D19C = .text:0x8011D19C; // type:function size:0x4 +fn_8011D1A0 = .text:0x8011D1A0; // type:function size:0x4 +fn_8011D1A4 = .text:0x8011D1A4; // type:function size:0x4 +fn_8011D1A8 = .text:0x8011D1A8; // type:function size:0x4 +fn_8011D1AC = .text:0x8011D1AC; // type:function size:0x4 +fn_8011D1B0 = .text:0x8011D1B0; // type:function size:0x4 +fn_8011D1B4 = .text:0x8011D1B4; // type:function size:0x4 +fn_8011D1B8 = .text:0x8011D1B8; // type:function size:0x4 +fn_8011D1BC = .text:0x8011D1BC; // type:function size:0x4 +fn_8011D1C0 = .text:0x8011D1C0; // type:function size:0x4 +fn_8011D1C4 = .text:0x8011D1C4; // type:function size:0x4 +fn_8011D1C8 = .text:0x8011D1C8; // type:function size:0x4 +fn_8011D1CC = .text:0x8011D1CC; // type:function size:0x4 +fn_8011D1D0 = .text:0x8011D1D0; // type:function size:0x4 +fn_8011D1D4 = .text:0x8011D1D4; // type:function size:0x4 +fn_8011D1D8 = .text:0x8011D1D8; // type:function size:0x4 +fn_8011D1DC = .text:0x8011D1DC; // type:function size:0x4 +fn_8011D1E0 = .text:0x8011D1E0; // type:function size:0x4 +fn_8011D1E4 = .text:0x8011D1E4; // type:function size:0x4 +fn_8011D1E8 = .text:0x8011D1E8; // type:function size:0x4 +fn_8011D1EC = .text:0x8011D1EC; // type:function size:0x4 +fn_8011D1F0 = .text:0x8011D1F0; // type:function size:0x4 +fn_8011D1F4 = .text:0x8011D1F4; // type:function size:0x4 +fn_8011D1F8 = .text:0x8011D1F8; // type:function size:0x4 +fn_8011D1FC = .text:0x8011D1FC; // type:function size:0x4 +fn_8011D200 = .text:0x8011D200; // type:function size:0x4 +fn_8011D204 = .text:0x8011D204; // type:function size:0x4 +fn_8011D208 = .text:0x8011D208; // type:function size:0x4 +fn_8011D20C = .text:0x8011D20C; // type:function size:0x4 +fn_8011D210 = .text:0x8011D210; // type:function size:0x4 +fn_8011D214 = .text:0x8011D214; // type:function size:0x4 +fn_8011D218 = .text:0x8011D218; // type:function size:0x4 +fn_8011D21C = .text:0x8011D21C; // type:function size:0x4 +fn_8011D220 = .text:0x8011D220; // type:function size:0x4 +fn_8011D224 = .text:0x8011D224; // type:function size:0x4 +fn_8011D228 = .text:0x8011D228; // type:function size:0x4 +fn_8011D22C = .text:0x8011D22C; // type:function size:0x4 +fn_8011D230 = .text:0x8011D230; // type:function size:0x4 +fn_8011D234 = .text:0x8011D234; // type:function size:0x4 +fn_8011D238 = .text:0x8011D238; // type:function size:0x4 +fn_8011D23C = .text:0x8011D23C; // type:function size:0x4 +fn_8011D240 = .text:0x8011D240; // type:function size:0x4 +fn_8011D244 = .text:0x8011D244; // type:function size:0x4 +fn_8011D248 = .text:0x8011D248; // type:function size:0x4 +fn_8011D24C = .text:0x8011D24C; // type:function size:0x4 +fn_8011D250 = .text:0x8011D250; // type:function size:0x4 +fn_8011D254 = .text:0x8011D254; // type:function size:0x4 +fn_8011D258 = .text:0x8011D258; // type:function size:0x4 +fn_8011D25C = .text:0x8011D25C; // type:function size:0x4 +fn_8011D260 = .text:0x8011D260; // type:function size:0x4 +fn_8011D264 = .text:0x8011D264; // type:function size:0x4 +fn_8011D268 = .text:0x8011D268; // type:function size:0x4 +fn_8011D26C = .text:0x8011D26C; // type:function size:0x4 +fn_8011D270 = .text:0x8011D270; // type:function size:0x4 +fn_8011D274 = .text:0x8011D274; // type:function size:0x4 +fn_8011D278 = .text:0x8011D278; // type:function size:0x4 +fn_8011D27C = .text:0x8011D27C; // type:function size:0x4 +fn_8011D280 = .text:0x8011D280; // type:function size:0x4 +fn_8011D284 = .text:0x8011D284; // type:function size:0x4 +fn_8011D288 = .text:0x8011D288; // type:function size:0x4 +fn_8011D28C = .text:0x8011D28C; // type:function size:0x4 +fn_8011D290 = .text:0x8011D290; // type:function size:0x4 +fn_8011D294 = .text:0x8011D294; // type:function size:0x4 +fn_8011D298 = .text:0x8011D298; // type:function size:0x4 +fn_8011D29C = .text:0x8011D29C; // type:function size:0x4 +fn_8011D2A0 = .text:0x8011D2A0; // type:function size:0x4 +fn_8011D2A4 = .text:0x8011D2A4; // type:function size:0x4 +fn_8011D2A8 = .text:0x8011D2A8; // type:function size:0x4 +fn_8011D2AC = .text:0x8011D2AC; // type:function size:0x4 +fn_8011D2B0 = .text:0x8011D2B0; // type:function size:0x4 +fn_8011D2B4 = .text:0x8011D2B4; // type:function size:0x4 +fn_8011D2B8 = .text:0x8011D2B8; // type:function size:0x4 +fn_8011D2BC = .text:0x8011D2BC; // type:function size:0x4 +fn_8011D2C0 = .text:0x8011D2C0; // type:function size:0x4 +fn_8011D2C4 = .text:0x8011D2C4; // type:function size:0x4 +fn_8011D2C8 = .text:0x8011D2C8; // type:function size:0x4 +fn_8011D2CC = .text:0x8011D2CC; // type:function size:0x4 +fn_8011D2D0 = .text:0x8011D2D0; // type:function size:0x4 +fn_8011D2D4 = .text:0x8011D2D4; // type:function size:0x4 +fn_8011D2D8 = .text:0x8011D2D8; // type:function size:0x4 +fn_8011D2DC = .text:0x8011D2DC; // type:function size:0x4 +fn_8011D2E0 = .text:0x8011D2E0; // type:function size:0x4 +fn_8011D2E4 = .text:0x8011D2E4; // type:function size:0x4 +fn_8011D2E8 = .text:0x8011D2E8; // type:function size:0x4 +fn_8011D2EC = .text:0x8011D2EC; // type:function size:0x4 +fn_8011D2F0 = .text:0x8011D2F0; // type:function size:0x4 +fn_8011D2F4 = .text:0x8011D2F4; // type:function size:0x4 +fn_8011D2F8 = .text:0x8011D2F8; // type:function size:0x4 +fn_8011D2FC = .text:0x8011D2FC; // type:function size:0x4 +fn_8011D300 = .text:0x8011D300; // type:function size:0x4 +fn_8011D304 = .text:0x8011D304; // type:function size:0x4 +fn_8011D308 = .text:0x8011D308; // type:function size:0x4 +fn_8011D30C = .text:0x8011D30C; // type:function size:0x4 +fn_8011D310 = .text:0x8011D310; // type:function size:0x4 +fn_8011D314 = .text:0x8011D314; // type:function size:0x4 +fn_8011D318 = .text:0x8011D318; // type:function size:0x4 +fn_8011D31C = .text:0x8011D31C; // type:function size:0x4 +fn_8011D320 = .text:0x8011D320; // type:function size:0x4 +fn_8011D324 = .text:0x8011D324; // type:function size:0x4 +fn_8011D328 = .text:0x8011D328; // type:function size:0x4 +fn_8011D32C = .text:0x8011D32C; // type:function size:0x4 +fn_8011D330 = .text:0x8011D330; // type:function size:0x4 +fn_8011D334 = .text:0x8011D334; // type:function size:0x4 +fn_8011D338 = .text:0x8011D338; // type:function size:0x4 +fn_8011D33C = .text:0x8011D33C; // type:function size:0x4 +fn_8011D340 = .text:0x8011D340; // type:function size:0x4 +fn_8011D344 = .text:0x8011D344; // type:function size:0x4 +fn_8011D348 = .text:0x8011D348; // type:function size:0x4 +fn_8011D34C = .text:0x8011D34C; // type:function size:0x4 +fn_8011D350 = .text:0x8011D350; // type:function size:0x4 +fn_8011D354 = .text:0x8011D354; // type:function size:0x4 +fn_8011D358 = .text:0x8011D358; // type:function size:0x4 +fn_8011D35C = .text:0x8011D35C; // type:function size:0x4 +fn_8011D360 = .text:0x8011D360; // type:function size:0x4 +fn_8011D364 = .text:0x8011D364; // type:function size:0x4 +fn_8011D368 = .text:0x8011D368; // type:function size:0x4 +fn_8011D36C = .text:0x8011D36C; // type:function size:0x4 +fn_8011D370 = .text:0x8011D370; // type:function size:0x4 +fn_8011D374 = .text:0x8011D374; // type:function size:0x4 +fn_8011D378 = .text:0x8011D378; // type:function size:0x4 +fn_8011D37C = .text:0x8011D37C; // type:function size:0x4 +fn_8011D380 = .text:0x8011D380; // type:function size:0x4 +fn_8011D384 = .text:0x8011D384; // type:function size:0x4 +fn_8011D388 = .text:0x8011D388; // type:function size:0x4 +fn_8011D38C = .text:0x8011D38C; // type:function size:0x4 +fn_8011D390 = .text:0x8011D390; // type:function size:0x4 +fn_8011D394 = .text:0x8011D394; // type:function size:0x4 +fn_8011D398 = .text:0x8011D398; // type:function size:0x4 +fn_8011D39C = .text:0x8011D39C; // type:function size:0x4 +fn_8011D3A0 = .text:0x8011D3A0; // type:function size:0x4 +fn_8011D3A4 = .text:0x8011D3A4; // type:function size:0x4 +fn_8011D3A8 = .text:0x8011D3A8; // type:function size:0x4 +fn_8011D3AC = .text:0x8011D3AC; // type:function size:0x4 +fn_8011D3B0 = .text:0x8011D3B0; // type:function size:0x4 +fn_8011D3B4 = .text:0x8011D3B4; // type:function size:0x4 +fn_8011D3B8 = .text:0x8011D3B8; // type:function size:0x4 +fn_8011D3BC = .text:0x8011D3BC; // type:function size:0x4 +fn_8011D3C0 = .text:0x8011D3C0; // type:function size:0x4 +fn_8011D3C4 = .text:0x8011D3C4; // type:function size:0x4 +fn_8011D3C8 = .text:0x8011D3C8; // type:function size:0x4 +fn_8011D3CC = .text:0x8011D3CC; // type:function size:0x4 +fn_8011D3D0 = .text:0x8011D3D0; // type:function size:0x4 +fn_8011D3D4 = .text:0x8011D3D4; // type:function size:0x4 +fn_8011D3D8 = .text:0x8011D3D8; // type:function size:0x4 +fn_8011D3DC = .text:0x8011D3DC; // type:function size:0x4 +fn_8011D3E0 = .text:0x8011D3E0; // type:function size:0x4 +fn_8011D3E4 = .text:0x8011D3E4; // type:function size:0x4 +fn_8011D3E8 = .text:0x8011D3E8; // type:function size:0x4 +fn_8011D3EC = .text:0x8011D3EC; // type:function size:0x4 +fn_8011D3F0 = .text:0x8011D3F0; // type:function size:0x4 +fn_8011D3F4 = .text:0x8011D3F4; // type:function size:0x4 +fn_8011D3F8 = .text:0x8011D3F8; // type:function size:0x4 +fn_8011D3FC = .text:0x8011D3FC; // type:function size:0x4 +fn_8011D400 = .text:0x8011D400; // type:function size:0x4 +fn_8011D404 = .text:0x8011D404; // type:function size:0x4 +fn_8011D408 = .text:0x8011D408; // type:function size:0x4 +fn_8011D40C = .text:0x8011D40C; // type:function size:0x4 +fn_8011D410 = .text:0x8011D410; // type:function size:0x4 +fn_8011D414 = .text:0x8011D414; // type:function size:0x4 +fn_8011D418 = .text:0x8011D418; // type:function size:0x4 +fn_8011D41C = .text:0x8011D41C; // type:function size:0x4 +fn_8011D420 = .text:0x8011D420; // type:function size:0x4 +fn_8011D424 = .text:0x8011D424; // type:function size:0x4 +fn_8011D428 = .text:0x8011D428; // type:function size:0x4 +fn_8011D42C = .text:0x8011D42C; // type:function size:0x4 +fn_8011D430 = .text:0x8011D430; // type:function size:0x4 +fn_8011D434 = .text:0x8011D434; // type:function size:0x4 +fn_8011D438 = .text:0x8011D438; // type:function size:0x4 +fn_8011D43C = .text:0x8011D43C; // type:function size:0x4 +fn_8011D440 = .text:0x8011D440; // type:function size:0x4 +fn_8011D444 = .text:0x8011D444; // type:function size:0x4 +fn_8011D448 = .text:0x8011D448; // type:function size:0x4 +fn_8011D44C = .text:0x8011D44C; // type:function size:0x4 +fn_8011D450 = .text:0x8011D450; // type:function size:0x4 +fn_8011D454 = .text:0x8011D454; // type:function size:0x4 +fn_8011D458 = .text:0x8011D458; // type:function size:0x4 +fn_8011D45C = .text:0x8011D45C; // type:function size:0x4 +fn_8011D460 = .text:0x8011D460; // type:function size:0x4 +fn_8011D464 = .text:0x8011D464; // type:function size:0x4 +fn_8011D468 = .text:0x8011D468; // type:function size:0x4 +fn_8011D46C = .text:0x8011D46C; // type:function size:0x4 +fn_8011D470 = .text:0x8011D470; // type:function size:0x4 +fn_8011D474 = .text:0x8011D474; // type:function size:0x4 +fn_8011D478 = .text:0x8011D478; // type:function size:0x4 +fn_8011D47C = .text:0x8011D47C; // type:function size:0x4 +fn_8011D480 = .text:0x8011D480; // type:function size:0x4 +fn_8011D484 = .text:0x8011D484; // type:function size:0x4 +fn_8011D488 = .text:0x8011D488; // type:function size:0x4 +fn_8011D48C = .text:0x8011D48C; // type:function size:0x4 +fn_8011D490 = .text:0x8011D490; // type:function size:0x4 +fn_8011D494 = .text:0x8011D494; // type:function size:0x4 +fn_8011D498 = .text:0x8011D498; // type:function size:0x4 +fn_8011D49C = .text:0x8011D49C; // type:function size:0x4 +fn_8011D4A0 = .text:0x8011D4A0; // type:function size:0x4 +fn_8011D4A4 = .text:0x8011D4A4; // type:function size:0x4 +fn_8011D4A8 = .text:0x8011D4A8; // type:function size:0x4 +fn_8011D4AC = .text:0x8011D4AC; // type:function size:0x4 +fn_8011D4B0 = .text:0x8011D4B0; // type:function size:0x4 +fn_8011D4B4 = .text:0x8011D4B4; // type:function size:0x4 +fn_8011D4B8 = .text:0x8011D4B8; // type:function size:0x4 +fn_8011D4BC = .text:0x8011D4BC; // type:function size:0x4 +fn_8011D4C0 = .text:0x8011D4C0; // type:function size:0x4 +fn_8011D4C4 = .text:0x8011D4C4; // type:function size:0x4 +fn_8011D4C8 = .text:0x8011D4C8; // type:function size:0x4 +fn_8011D4CC = .text:0x8011D4CC; // type:function size:0x4 +fn_8011D4D0 = .text:0x8011D4D0; // type:function size:0x4 +fn_8011D4D4 = .text:0x8011D4D4; // type:function size:0x4 +fn_8011D4D8 = .text:0x8011D4D8; // type:function size:0x4 +fn_8011D4DC = .text:0x8011D4DC; // type:function size:0x4 +fn_8011D4E0 = .text:0x8011D4E0; // type:function size:0x4 +fn_8011D4E4 = .text:0x8011D4E4; // type:function size:0x4 +fn_8011D4E8 = .text:0x8011D4E8; // type:function size:0x4 +fn_8011D4EC = .text:0x8011D4EC; // type:function size:0x4 +fn_8011D4F0 = .text:0x8011D4F0; // type:function size:0x4 +fn_8011D4F4 = .text:0x8011D4F4; // type:function size:0x4 +fn_8011D4F8 = .text:0x8011D4F8; // type:function size:0x4 +fn_8011D4FC = .text:0x8011D4FC; // type:function size:0x4 +fn_8011D500 = .text:0x8011D500; // type:function size:0x4 +fn_8011D504 = .text:0x8011D504; // type:function size:0x4 +fn_8011D508 = .text:0x8011D508; // type:function size:0x4 +fn_8011D50C = .text:0x8011D50C; // type:function size:0x4 +fn_8011D510 = .text:0x8011D510; // type:function size:0x4 +fn_8011D514 = .text:0x8011D514; // type:function size:0x4 +fn_8011D518 = .text:0x8011D518; // type:function size:0x4 +fn_8011D51C = .text:0x8011D51C; // type:function size:0x4 +fn_8011D520 = .text:0x8011D520; // type:function size:0x4 +fn_8011D524 = .text:0x8011D524; // type:function size:0x4 +fn_8011D528 = .text:0x8011D528; // type:function size:0x4 +fn_8011D52C = .text:0x8011D52C; // type:function size:0x4 +fn_8011D530 = .text:0x8011D530; // type:function size:0x4 +fn_8011D534 = .text:0x8011D534; // type:function size:0x4 +fn_8011D538 = .text:0x8011D538; // type:function size:0x4 +fn_8011D53C = .text:0x8011D53C; // type:function size:0x4 +fn_8011D540 = .text:0x8011D540; // type:function size:0x4 +fn_8011D544 = .text:0x8011D544; // type:function size:0x4 +fn_8011D548 = .text:0x8011D548; // type:function size:0x4 +fn_8011D54C = .text:0x8011D54C; // type:function size:0x4 +fn_8011D550 = .text:0x8011D550; // type:function size:0x4 +fn_8011D554 = .text:0x8011D554; // type:function size:0x4 +fn_8011D558 = .text:0x8011D558; // type:function size:0x4 +fn_8011D55C = .text:0x8011D55C; // type:function size:0x4 +fn_8011D560 = .text:0x8011D560; // type:function size:0x4 +fn_8011D564 = .text:0x8011D564; // type:function size:0x4 +fn_8011D568 = .text:0x8011D568; // type:function size:0x4 +fn_8011D56C = .text:0x8011D56C; // type:function size:0x4 +fn_8011D570 = .text:0x8011D570; // type:function size:0x4 +fn_8011D574 = .text:0x8011D574; // type:function size:0x4 +fn_8011D578 = .text:0x8011D578; // type:function size:0x4 +fn_8011D57C = .text:0x8011D57C; // type:function size:0x4 +fn_8011D580 = .text:0x8011D580; // type:function size:0x4 +fn_8011D584 = .text:0x8011D584; // type:function size:0x4 +fn_8011D588 = .text:0x8011D588; // type:function size:0x4 +fn_8011D58C = .text:0x8011D58C; // type:function size:0x4 +fn_8011D590 = .text:0x8011D590; // type:function size:0x4 +fn_8011D594 = .text:0x8011D594; // type:function size:0x4 +fn_8011D598 = .text:0x8011D598; // type:function size:0x4 +fn_8011D59C = .text:0x8011D59C; // type:function size:0x4 +fn_8011D5A0 = .text:0x8011D5A0; // type:function size:0x4 +fn_8011D5A4 = .text:0x8011D5A4; // type:function size:0x4 +fn_8011D5A8 = .text:0x8011D5A8; // type:function size:0x4 +fn_8011D5AC = .text:0x8011D5AC; // type:function size:0x4 +fn_8011D5B0 = .text:0x8011D5B0; // type:function size:0x4 +fn_8011D5B4 = .text:0x8011D5B4; // type:function size:0x4 +fn_8011D5B8 = .text:0x8011D5B8; // type:function size:0x4 +fn_8011D5BC = .text:0x8011D5BC; // type:function size:0x4 +fn_8011D5C0 = .text:0x8011D5C0; // type:function size:0x4 +fn_8011D5C4 = .text:0x8011D5C4; // type:function size:0x4 +fn_8011D5C8 = .text:0x8011D5C8; // type:function size:0x4 +fn_8011D5CC = .text:0x8011D5CC; // type:function size:0x4 +fn_8011D5D0 = .text:0x8011D5D0; // type:function size:0x4 +fn_8011D5D4 = .text:0x8011D5D4; // type:function size:0x4 +fn_8011D5D8 = .text:0x8011D5D8; // type:function size:0x4 +fn_8011D5DC = .text:0x8011D5DC; // type:function size:0x4 +fn_8011D5E0 = .text:0x8011D5E0; // type:function size:0x4 +fn_8011D5E4 = .text:0x8011D5E4; // type:function size:0x4 +fn_8011D5E8 = .text:0x8011D5E8; // type:function size:0x4 +fn_8011D5EC = .text:0x8011D5EC; // type:function size:0x4 +fn_8011D5F0 = .text:0x8011D5F0; // type:function size:0x4 +fn_8011D5F4 = .text:0x8011D5F4; // type:function size:0x4 +fn_8011D5F8 = .text:0x8011D5F8; // type:function size:0x4 +fn_8011D5FC = .text:0x8011D5FC; // type:function size:0x4 +fn_8011D600 = .text:0x8011D600; // type:function size:0x4 +fn_8011D604 = .text:0x8011D604; // type:function size:0x4 +fn_8011D608 = .text:0x8011D608; // type:function size:0x4 +fn_8011D60C = .text:0x8011D60C; // type:function size:0x4 +fn_8011D610 = .text:0x8011D610; // type:function size:0x4 +fn_8011D614 = .text:0x8011D614; // type:function size:0x4 +fn_8011D618 = .text:0x8011D618; // type:function size:0x4 +fn_8011D61C = .text:0x8011D61C; // type:function size:0x4 +fn_8011D620 = .text:0x8011D620; // type:function size:0x4 +fn_8011D624 = .text:0x8011D624; // type:function size:0x4 +fn_8011D628 = .text:0x8011D628; // type:function size:0x4 +fn_8011D62C = .text:0x8011D62C; // type:function size:0x4 +fn_8011D630 = .text:0x8011D630; // type:function size:0x4 +fn_8011D634 = .text:0x8011D634; // type:function size:0x4 +fn_8011D638 = .text:0x8011D638; // type:function size:0x4 +fn_8011D63C = .text:0x8011D63C; // type:function size:0x4 +fn_8011D640 = .text:0x8011D640; // type:function size:0x4 +fn_8011D644 = .text:0x8011D644; // type:function size:0x4 +fn_8011D648 = .text:0x8011D648; // type:function size:0x4 +fn_8011D64C = .text:0x8011D64C; // type:function size:0x4 +fn_8011D650 = .text:0x8011D650; // type:function size:0x4 +fn_8011D654 = .text:0x8011D654; // type:function size:0x4 +fn_8011D658 = .text:0x8011D658; // type:function size:0x4 +fn_8011D65C = .text:0x8011D65C; // type:function size:0x4 +fn_8011D660 = .text:0x8011D660; // type:function size:0x4 +fn_8011D664 = .text:0x8011D664; // type:function size:0x4 +fn_8011D668 = .text:0x8011D668; // type:function size:0x4 +fn_8011D66C = .text:0x8011D66C; // type:function size:0x4 +fn_8011D670 = .text:0x8011D670; // type:function size:0x4 +fn_8011D674 = .text:0x8011D674; // type:function size:0x4 +fn_8011D678 = .text:0x8011D678; // type:function size:0x4 +fn_8011D67C = .text:0x8011D67C; // type:function size:0x4 +fn_8011D680 = .text:0x8011D680; // type:function size:0x4 +fn_8011D684 = .text:0x8011D684; // type:function size:0x4 +fn_8011D688 = .text:0x8011D688; // type:function size:0x4 +fn_8011D68C = .text:0x8011D68C; // type:function size:0x4 +fn_8011D690 = .text:0x8011D690; // type:function size:0x4 +fn_8011D694 = .text:0x8011D694; // type:function size:0x4 +fn_8011D698 = .text:0x8011D698; // type:function size:0x4 +fn_8011D69C = .text:0x8011D69C; // type:function size:0x4 +fn_8011D6A0 = .text:0x8011D6A0; // type:function size:0x4 +fn_8011D6A4 = .text:0x8011D6A4; // type:function size:0x4 +fn_8011D6A8 = .text:0x8011D6A8; // type:function size:0x4 +fn_8011D6AC = .text:0x8011D6AC; // type:function size:0x4 +fn_8011D6B0 = .text:0x8011D6B0; // type:function size:0x4 +fn_8011D6B4 = .text:0x8011D6B4; // type:function size:0x4 +fn_8011D6B8 = .text:0x8011D6B8; // type:function size:0x4 +fn_8011D6BC = .text:0x8011D6BC; // type:function size:0x4 +fn_8011D6C0 = .text:0x8011D6C0; // type:function size:0x4 +fn_8011D6C4 = .text:0x8011D6C4; // type:function size:0x4 +fn_8011D6C8 = .text:0x8011D6C8; // type:function size:0x4 +fn_8011D6CC = .text:0x8011D6CC; // type:function size:0x4 +fn_8011D6D0 = .text:0x8011D6D0; // type:function size:0x4 +fn_8011D6D4 = .text:0x8011D6D4; // type:function size:0x4 +fn_8011D6D8 = .text:0x8011D6D8; // type:function size:0x4 +fn_8011D6DC = .text:0x8011D6DC; // type:function size:0x4 +fn_8011D6E0 = .text:0x8011D6E0; // type:function size:0x4 +fn_8011D6E4 = .text:0x8011D6E4; // type:function size:0x4 +fn_8011D6E8 = .text:0x8011D6E8; // type:function size:0x4 +fn_8011D6EC = .text:0x8011D6EC; // type:function size:0x4 +fn_8011D6F0 = .text:0x8011D6F0; // type:function size:0x4 +fn_8011D6F4 = .text:0x8011D6F4; // type:function size:0x4 +fn_8011D6F8 = .text:0x8011D6F8; // type:function size:0x4 +fn_8011D6FC = .text:0x8011D6FC; // type:function size:0x4 +fn_8011D700 = .text:0x8011D700; // type:function size:0x4 +fn_8011D704 = .text:0x8011D704; // type:function size:0x4 +fn_8011D708 = .text:0x8011D708; // type:function size:0x4 +fn_8011D70C = .text:0x8011D70C; // type:function size:0x4 +fn_8011D710 = .text:0x8011D710; // type:function size:0x4 +fn_8011D714 = .text:0x8011D714; // type:function size:0x4 +fn_8011D718 = .text:0x8011D718; // type:function size:0x4 +fn_8011D71C = .text:0x8011D71C; // type:function size:0x4 +fn_8011D720 = .text:0x8011D720; // type:function size:0x4 +fn_8011D724 = .text:0x8011D724; // type:function size:0x4 +fn_8011D728 = .text:0x8011D728; // type:function size:0x4 +fn_8011D72C = .text:0x8011D72C; // type:function size:0x4 +fn_8011D730 = .text:0x8011D730; // type:function size:0x4 +fn_8011D734 = .text:0x8011D734; // type:function size:0x4 +fn_8011D738 = .text:0x8011D738; // type:function size:0x4 +fn_8011D73C = .text:0x8011D73C; // type:function size:0x4 +fn_8011D740 = .text:0x8011D740; // type:function size:0x4 +fn_8011D744 = .text:0x8011D744; // type:function size:0x4 +fn_8011D748 = .text:0x8011D748; // type:function size:0x4 +fn_8011D74C = .text:0x8011D74C; // type:function size:0x4 +fn_8011D750 = .text:0x8011D750; // type:function size:0x4 +fn_8011D754 = .text:0x8011D754; // type:function size:0x4 +fn_8011D758 = .text:0x8011D758; // type:function size:0x4 +fn_8011D75C = .text:0x8011D75C; // type:function size:0x4 +fn_8011D760 = .text:0x8011D760; // type:function size:0x4 +fn_8011D764 = .text:0x8011D764; // type:function size:0x4 +fn_8011D768 = .text:0x8011D768; // type:function size:0x4 +fn_8011D76C = .text:0x8011D76C; // type:function size:0x4 +fn_8011D770 = .text:0x8011D770; // type:function size:0x4 +fn_8011D774 = .text:0x8011D774; // type:function size:0x4 +fn_8011D778 = .text:0x8011D778; // type:function size:0x4 +fn_8011D77C = .text:0x8011D77C; // type:function size:0x4 +fn_8011D780 = .text:0x8011D780; // type:function size:0x4 +fn_8011D784 = .text:0x8011D784; // type:function size:0x4 +fn_8011D788 = .text:0x8011D788; // type:function size:0x4 +fn_8011D78C = .text:0x8011D78C; // type:function size:0x4 +fn_8011D790 = .text:0x8011D790; // type:function size:0x4 +fn_8011D794 = .text:0x8011D794; // type:function size:0x4 +fn_8011D798 = .text:0x8011D798; // type:function size:0x4 +fn_8011D79C = .text:0x8011D79C; // type:function size:0x4 +fn_8011D7A0 = .text:0x8011D7A0; // type:function size:0x4 +fn_8011D7A4 = .text:0x8011D7A4; // type:function size:0x4 +fn_8011D7A8 = .text:0x8011D7A8; // type:function size:0x4 +fn_8011D7AC = .text:0x8011D7AC; // type:function size:0x4 +fn_8011D7B0 = .text:0x8011D7B0; // type:function size:0x4 +fn_8011D7B4 = .text:0x8011D7B4; // type:function size:0x4 +fn_8011D7B8 = .text:0x8011D7B8; // type:function size:0x4 +fn_8011D7BC = .text:0x8011D7BC; // type:function size:0x4 +fn_8011D7C0 = .text:0x8011D7C0; // type:function size:0x4 +fn_8011D7C4 = .text:0x8011D7C4; // type:function size:0x4 +fn_8011D7C8 = .text:0x8011D7C8; // type:function size:0x4 +fn_8011D7CC = .text:0x8011D7CC; // type:function size:0x4 +fn_8011D7D0 = .text:0x8011D7D0; // type:function size:0x4 +fn_8011D7D4 = .text:0x8011D7D4; // type:function size:0x4 +fn_8011D7D8 = .text:0x8011D7D8; // type:function size:0x4 +fn_8011D7DC = .text:0x8011D7DC; // type:function size:0x4 +fn_8011D7E0 = .text:0x8011D7E0; // type:function size:0x4 +fn_8011D7E4 = .text:0x8011D7E4; // type:function size:0x4 +fn_8011D7E8 = .text:0x8011D7E8; // type:function size:0x4 +fn_8011D7EC = .text:0x8011D7EC; // type:function size:0x4 +fn_8011D7F0 = .text:0x8011D7F0; // type:function size:0x4 +fn_8011D7F4 = .text:0x8011D7F4; // type:function size:0x4 +fn_8011D7F8 = .text:0x8011D7F8; // type:function size:0x4 +fn_8011D7FC = .text:0x8011D7FC; // type:function size:0x4 +fn_8011D800 = .text:0x8011D800; // type:function size:0x4 +fn_8011D804 = .text:0x8011D804; // type:function size:0x4 +fn_8011D808 = .text:0x8011D808; // type:function size:0x4 +fn_8011D80C = .text:0x8011D80C; // type:function size:0x4 +fn_8011D810 = .text:0x8011D810; // type:function size:0x4 +fn_8011D814 = .text:0x8011D814; // type:function size:0x4 +fn_8011D818 = .text:0x8011D818; // type:function size:0x4 +fn_8011D81C = .text:0x8011D81C; // type:function size:0x4 +fn_8011D820 = .text:0x8011D820; // type:function size:0x4 +fn_8011D824 = .text:0x8011D824; // type:function size:0x4 +fn_8011D828 = .text:0x8011D828; // type:function size:0x4 +fn_8011D82C = .text:0x8011D82C; // type:function size:0x4 +fn_8011D830 = .text:0x8011D830; // type:function size:0x4 +fn_8011D834 = .text:0x8011D834; // type:function size:0x4 +fn_8011D838 = .text:0x8011D838; // type:function size:0x4 +fn_8011D83C = .text:0x8011D83C; // type:function size:0x4 +fn_8011D840 = .text:0x8011D840; // type:function size:0x4 +fn_8011D844 = .text:0x8011D844; // type:function size:0x4 +fn_8011D848 = .text:0x8011D848; // type:function size:0x4 +fn_8011D84C = .text:0x8011D84C; // type:function size:0x4 +fn_8011D850 = .text:0x8011D850; // type:function size:0x4 +fn_8011D854 = .text:0x8011D854; // type:function size:0x4 +fn_8011D858 = .text:0x8011D858; // type:function size:0x4 +fn_8011D85C = .text:0x8011D85C; // type:function size:0x4 +fn_8011D860 = .text:0x8011D860; // type:function size:0x4 +fn_8011D864 = .text:0x8011D864; // type:function size:0x4 +fn_8011D868 = .text:0x8011D868; // type:function size:0x4 +fn_8011D86C = .text:0x8011D86C; // type:function size:0x4 +fn_8011D870 = .text:0x8011D870; // type:function size:0x4 +fn_8011D874 = .text:0x8011D874; // type:function size:0x4 +fn_8011D878 = .text:0x8011D878; // type:function size:0x4 +fn_8011D87C = .text:0x8011D87C; // type:function size:0x4 +fn_8011D880 = .text:0x8011D880; // type:function size:0x4 +fn_8011D884 = .text:0x8011D884; // type:function size:0x4 +fn_8011D888 = .text:0x8011D888; // type:function size:0x4 +fn_8011D88C = .text:0x8011D88C; // type:function size:0x4 +fn_8011D890 = .text:0x8011D890; // type:function size:0x4 +fn_8011D894 = .text:0x8011D894; // type:function size:0x4 +_ctors = .ctors:0x8011D8A0; // type:label scope:global data:4byte +__init_cpp_exceptions_reference = .ctors:0x8011D8A0; // type:object size:0x4 scope:global +_dtors = .dtors:0x8011D8C0; // type:label scope:global data:4byte +__destroy_global_chain_reference = .dtors:0x8011D8C0; // type:object size:0x4 scope:global +__fini_cpp_exceptions_reference = .dtors:0x8011D8C4; // type:object size:0x4 scope:global +lbl_8011D8E0 = .rodata:0x8011D8E0; // type:object size:0x10 data:4byte +lbl_8011D8F0 = .rodata:0x8011D8F0; // type:object size:0x10 data:4byte +lbl_8011D900 = .rodata:0x8011D900; // type:object size:0x10 data:4byte +lbl_8011D910 = .rodata:0x8011D910; // type:object size:0x20 data:byte +lbl_8011D930 = .rodata:0x8011D930; // type:object size:0x10 data:4byte +lbl_8011D940 = .rodata:0x8011D940; // type:object size:0x24 data:4byte +lbl_8011D964 = .rodata:0x8011D964; // type:object size:0xC data:4byte +lbl_8011D970 = .rodata:0x8011D970; // type:object size:0x20 data:4byte +lbl_8011D990 = .rodata:0x8011D990; // type:object size:0x7C data:4byte +lbl_8011DA0C = .rodata:0x8011DA0C; // type:object size:0x24 data:4byte +lbl_8011DA30 = .rodata:0x8011DA30; // type:object size:0x10 data:4byte +lbl_8011DA40 = .rodata:0x8011DA40; // type:object size:0x38 data:4byte +lbl_8011DA78 = .rodata:0x8011DA78; // type:object size:0x38 data:4byte +lbl_8011DAB0 = .rodata:0x8011DAB0; // type:object size:0x20 data:4byte +lbl_8011DAD0 = .rodata:0x8011DAD0; // type:object size:0x10 data:4byte +lbl_8011DAE0 = .rodata:0x8011DAE0; // type:object size:0x90 data:4byte +lbl_8011DB70 = .rodata:0x8011DB70; // type:object size:0x20 data:4byte +lbl_8011DB90 = .rodata:0x8011DB90; // type:object size:0x20 data:4byte +lbl_8011DBB0 = .rodata:0x8011DBB0; // type:object size:0x20 +lbl_8011DBD0 = .rodata:0x8011DBD0; // type:object size:0x20 +lbl_8011DBF0 = .rodata:0x8011DBF0; // type:object size:0x10 +lbl_8011DC00 = .rodata:0x8011DC00; // type:object size:0x20 data:4byte +lbl_8011DC20 = .rodata:0x8011DC20; // type:object size:0x24 +lbl_8011DC44 = .rodata:0x8011DC44; // type:object size:0x4C +lbl_8011DC90 = .rodata:0x8011DC90; // type:object size:0x68 data:4byte +lbl_8011DCF8 = .rodata:0x8011DCF8; // type:object size:0x38 data:4byte +lbl_8011DD30 = .rodata:0x8011DD30; // type:object size:0x3C data:4byte +lbl_8011DD6C = .rodata:0x8011DD6C; // type:object size:0x14 data:2byte +lbl_8011DD80 = .rodata:0x8011DD80; // type:object size:0x20 data:4byte +lbl_8011DDA0 = .rodata:0x8011DDA0; // type:object size:0x20 data:4byte +lbl_8011DDC0 = .rodata:0x8011DDC0; // type:object size:0x20 data:4byte +lbl_8011DDE0 = .rodata:0x8011DDE0; // type:object size:0x20 data:4byte +lbl_8011DE00 = .rodata:0x8011DE00; // type:object size:0xC data:4byte +lbl_8011DE0C = .rodata:0x8011DE0C; // type:object size:0xC data:4byte +lbl_8011DE18 = .rodata:0x8011DE18; // type:object size:0xC data:4byte +lbl_8011DE24 = .rodata:0x8011DE24; // type:object size:0xC data:4byte +lbl_8011DE30 = .rodata:0x8011DE30; // type:object size:0x18 +lbl_8011DE48 = .rodata:0x8011DE48; // type:object size:0x70 data:4byte +lbl_8011DEB8 = .rodata:0x8011DEB8; // type:object size:0xC data:byte +lbl_8011DEC4 = .rodata:0x8011DEC4; // type:object size:0x1C +lbl_8011DEE0 = .rodata:0x8011DEE0; // type:object size:0x24 data:4byte +lbl_8011DF04 = .rodata:0x8011DF04; // type:object size:0x20 data:4byte +lbl_8011DF24 = .rodata:0x8011DF24; // type:object size:0x2C data:4byte +lbl_8011DF50 = .rodata:0x8011DF50; // type:object size:0x10 data:4byte +lbl_8011DF60 = .rodata:0x8011DF60; // type:object size:0x28 data:4byte +lbl_8011DF88 = .rodata:0x8011DF88; // type:object size:0x28 data:4byte +lbl_8011DFB0 = .rodata:0x8011DFB0; // type:object size:0x20 data:4byte +lbl_8011DFD0 = .rodata:0x8011DFD0; // type:object size:0x20 data:4byte +lbl_8011DFF0 = .rodata:0x8011DFF0; // type:object size:0x20 data:4byte +lbl_8011E010 = .rodata:0x8011E010; // type:object size:0x10 data:4byte +lbl_8011E020 = .rodata:0x8011E020; // type:object size:0x90 data:byte +lbl_8011E0B0 = .rodata:0x8011E0B0; // type:object size:0x10 +lbl_8011E0C0 = .rodata:0x8011E0C0; // type:object size:0x10 +lbl_8011E0D0 = .rodata:0x8011E0D0; // type:object size:0x18 data:double +lbl_8011E0E8 = .rodata:0x8011E0E8; // type:object size:0x54 +lbl_8011E13C = .rodata:0x8011E13C; // type:object size:0x14 +lbl_8011E150 = .rodata:0x8011E150; // type:object size:0x10 +lbl_8011E160 = .rodata:0x8011E160; // type:object size:0x20 +lbl_8011E180 = .rodata:0x8011E180; // type:object size:0x38 +lbl_8011E1B8 = .rodata:0x8011E1B8; // type:object size:0x40 +lbl_8011E1F8 = .rodata:0x8011E1F8; // type:object size:0x18 data:4byte +lbl_8011E210 = .rodata:0x8011E210; // type:object size:0xE0 +@stringBase0 = .rodata:0x8011E2F0; // type:object size:0x25 scope:local data:string_table +lbl_8011E318 = .rodata:0x8011E318; // type:object size:0x10 +lbl_8011E328 = .rodata:0x8011E328; // type:object size:0x30 data:double +lbl_8011E358 = .rodata:0x8011E358; // type:object size:0x108 +lbl_8011E460 = .rodata:0x8011E460; // type:object size:0x80 +lbl_8011E4E0 = .rodata:0x8011E4E0; // type:object size:0x10 +lbl_8011E4F0 = .rodata:0x8011E4F0; // type:object size:0x40 data:double +lbl_8011E530 = .rodata:0x8011E530; // type:object size:0x68 data:double +lbl_8011E598 = .rodata:0x8011E598; // type:object size:0x98 +@62 = .rodata:0x8011E630; // type:object size:0x1B scope:local data:string +lbl_8011E650 = .rodata:0x8011E650; // type:object size:0x20 +lbl_8011E670 = .rodata:0x8011E670; // type:object size:0x10 data:4byte +lbl_8011E680 = .rodata:0x8011E680; // type:object size:0x28 data:4byte +lbl_8011E6A8 = .rodata:0x8011E6A8; // type:object size:0x28 data:4byte +lbl_8011E6D0 = .rodata:0x8011E6D0; // type:object size:0x28 data:4byte +@154 = .rodata:0x8011E6F8; // type:object size:0x21 scope:local data:string +@155 = .rodata:0x8011E71C; // type:object size:0x24 scope:local data:string +lbl_8011E740 = .rodata:0x8011E740; // type:object size:0x40 +lbl_8011E780 = .rodata:0x8011E780; // type:object size:0x18 +lbl_8011E798 = .rodata:0x8011E798; // type:object size:0x88 +lbl_8011E820 = .rodata:0x8011E820; // type:object size:0x88 data:byte +lbl_8011E8A8 = .rodata:0x8011E8A8; // type:object size:0x100 +lbl_8011E9C0 = .data:0x8011E9C0; // type:object size:0x10 data:string +lbl_8011E9D0 = .data:0x8011E9D0; // type:object size:0x10 +lbl_8011E9E0 = .data:0x8011E9E0; // type:object size:0x124 +jumptable_8011EB04 = .data:0x8011EB04; // type:object size:0x34 scope:local +lbl_8011EB38 = .data:0x8011EB38; // type:object size:0x11 data:string +lbl_8011EB49 = .data:0x8011EB49; // type:object size:0x11 data:string +lbl_8011EB5A = .data:0x8011EB5A; // type:object size:0x10 data:string +lbl_8011EB6A = .data:0x8011EB6A; // type:object size:0x10 data:string +lbl_8011EB7A = .data:0x8011EB7A; // type:object size:0x14 data:string +lbl_8011EB8E = .data:0x8011EB8E; // type:object size:0x11 data:string +lbl_8011EB9F = .data:0x8011EB9F; // type:object size:0x10 data:string +lbl_8011EBAF = .data:0x8011EBAF; // type:object size:0xF data:string +lbl_8011EBBE = .data:0x8011EBBE; // type:object size:0x10 data:string +lbl_8011EBCE = .data:0x8011EBCE; // type:object size:0x13 data:string +lbl_8011EBE1 = .data:0x8011EBE1; // type:object size:0xF data:string +lbl_8011EBF0 = .data:0x8011EBF0; // type:object size:0x13 data:string +lbl_8011EC03 = .data:0x8011EC03; // type:object size:0x13 data:string +lbl_8011EC16 = .data:0x8011EC16; // type:object size:0x12 data:string +lbl_8011EC28 = .data:0x8011EC28; // type:object size:0x10 data:string +lbl_8011EC38 = .data:0x8011EC38; // type:object size:0x14 data:string +lbl_8011EC4C = .data:0x8011EC4C; // type:object size:0x14 data:string +lbl_8011EC60 = .data:0x8011EC60; // type:object size:0x13 data:string +lbl_8011EC73 = .data:0x8011EC73; // type:object size:0x10 data:string +lbl_8011EC83 = .data:0x8011EC83; // type:object size:0x11 data:string +lbl_8011EC94 = .data:0x8011EC94; // type:object size:0xE data:string +lbl_8011ECA2 = .data:0x8011ECA2; // type:object size:0x12 data:string +lbl_8011ECB4 = .data:0x8011ECB4; // type:object size:0x11 data:string +lbl_8011ECC5 = .data:0x8011ECC5; // type:object size:0xF data:string +lbl_8011ECD4 = .data:0x8011ECD4; // type:object size:0x13 data:string +lbl_8011ECE7 = .data:0x8011ECE7; // type:object size:0x13 data:string +lbl_8011ECFA = .data:0x8011ECFA; // type:object size:0x12 data:string +lbl_8011ED0C = .data:0x8011ED0C; // type:object size:0xE data:string +lbl_8011ED1A = .data:0x8011ED1A; // type:object size:0xE data:string +lbl_8011ED28 = .data:0x8011ED28; // type:object size:0xE data:string +lbl_8011ED36 = .data:0x8011ED36; // type:object size:0xE data:string +lbl_8011ED44 = .data:0x8011ED44; // type:object size:0xE data:string +lbl_8011ED52 = .data:0x8011ED52; // type:object size:0xE data:string +lbl_8011ED60 = .data:0x8011ED60; // type:object size:0xE data:string +lbl_8011ED6E = .data:0x8011ED6E; // type:object size:0xE data:string +lbl_8011ED7C = .data:0x8011ED7C; // type:object size:0xE data:string +lbl_8011ED8A = .data:0x8011ED8A; // type:object size:0xE data:string +lbl_8011ED98 = .data:0x8011ED98; // type:object size:0xE data:string +lbl_8011EDA6 = .data:0x8011EDA6; // type:object size:0xE data:string +lbl_8011EDB4 = .data:0x8011EDB4; // type:object size:0xE data:string +lbl_8011EDC2 = .data:0x8011EDC2; // type:object size:0xE data:string +lbl_8011EDD0 = .data:0x8011EDD0; // type:object size:0xE data:string +lbl_8011EDDE = .data:0x8011EDDE; // type:object size:0xE data:string +lbl_8011EDEC = .data:0x8011EDEC; // type:object size:0xE data:string +lbl_8011EDFA = .data:0x8011EDFA; // type:object size:0xE data:string +lbl_8011EE08 = .data:0x8011EE08; // type:object size:0xE data:string +lbl_8011EE16 = .data:0x8011EE16; // type:object size:0xE data:string +lbl_8011EE24 = .data:0x8011EE24; // type:object size:0xE data:string +lbl_8011EE32 = .data:0x8011EE32; // type:object size:0xE data:string +lbl_8011EE40 = .data:0x8011EE40; // type:object size:0xE data:string +lbl_8011EE4E = .data:0x8011EE4E; // type:object size:0xE data:string +lbl_8011EE5C = .data:0x8011EE5C; // type:object size:0xE data:string +lbl_8011EE6A = .data:0x8011EE6A; // type:object size:0xE data:string +lbl_8011EE78 = .data:0x8011EE78; // type:object size:0xE data:string +lbl_8011EE86 = .data:0x8011EE86; // type:object size:0xE data:string +lbl_8011EE94 = .data:0x8011EE94; // type:object size:0xE data:string +lbl_8011EEA2 = .data:0x8011EEA2; // type:object size:0xE data:string +lbl_8011EEB0 = .data:0x8011EEB0; // type:object size:0xE data:string +lbl_8011EEBE = .data:0x8011EEBE; // type:object size:0xE data:string +lbl_8011EECC = .data:0x8011EECC; // type:object size:0xE data:string +lbl_8011EEDA = .data:0x8011EEDA; // type:object size:0xE data:string +lbl_8011EEE8 = .data:0x8011EEE8; // type:object size:0xE data:string +lbl_8011EEF6 = .data:0x8011EEF6; // type:object size:0xE data:string +lbl_8011EF04 = .data:0x8011EF04; // type:object size:0xE data:string +lbl_8011EF12 = .data:0x8011EF12; // type:object size:0xE data:string +lbl_8011EF20 = .data:0x8011EF20; // type:object size:0xE data:string +lbl_8011EF2E = .data:0x8011EF2E; // type:object size:0xE data:string +lbl_8011EF3C = .data:0x8011EF3C; // type:object size:0xE data:string +lbl_8011EF4A = .data:0x8011EF4A; // type:object size:0xE data:string +lbl_8011EF58 = .data:0x8011EF58; // type:object size:0xE data:string +lbl_8011EF66 = .data:0x8011EF66; // type:object size:0xE data:string +lbl_8011EF74 = .data:0x8011EF74; // type:object size:0xE data:string +lbl_8011EF82 = .data:0x8011EF82; // type:object size:0xE data:string +lbl_8011EF90 = .data:0x8011EF90; // type:object size:0xE data:string +lbl_8011EF9E = .data:0x8011EF9E; // type:object size:0xE data:string +lbl_8011EFAC = .data:0x8011EFAC; // type:object size:0xE data:string +lbl_8011EFBA = .data:0x8011EFBA; // type:object size:0xE data:string +lbl_8011EFC8 = .data:0x8011EFC8; // type:object size:0xE data:string +lbl_8011EFD6 = .data:0x8011EFD6; // type:object size:0xE data:string +lbl_8011EFE4 = .data:0x8011EFE4; // type:object size:0xE data:string +lbl_8011EFF2 = .data:0x8011EFF2; // type:object size:0xE data:string +lbl_8011F000 = .data:0x8011F000; // type:object size:0xE data:string +lbl_8011F00E = .data:0x8011F00E; // type:object size:0xE data:string +lbl_8011F01C = .data:0x8011F01C; // type:object size:0xE data:string +lbl_8011F02A = .data:0x8011F02A; // type:object size:0xE data:string +lbl_8011F038 = .data:0x8011F038; // type:object size:0xE data:string +lbl_8011F046 = .data:0x8011F046; // type:object size:0xE data:string +lbl_8011F054 = .data:0x8011F054; // type:object size:0xE data:string +lbl_8011F062 = .data:0x8011F062; // type:object size:0xE data:string +lbl_8011F070 = .data:0x8011F070; // type:object size:0xE data:string +lbl_8011F07E = .data:0x8011F07E; // type:object size:0xE data:string +lbl_8011F08C = .data:0x8011F08C; // type:object size:0xE data:string +lbl_8011F09A = .data:0x8011F09A; // type:object size:0xF data:string +lbl_8011F0A9 = .data:0x8011F0A9; // type:object size:0x13 data:string +lbl_8011F0BC = .data:0x8011F0BC; // type:object size:0x13 data:string +lbl_8011F0CF = .data:0x8011F0CF; // type:object size:0x12 data:string +lbl_8011F0E1 = .data:0x8011F0E1; // type:object size:0xE data:string +lbl_8011F0EF = .data:0x8011F0EF; // type:object size:0x11 data:string +lbl_8011F100 = .data:0x8011F100; // type:object size:0x10 data:string +lbl_8011F110 = .data:0x8011F110; // type:object size:0x11 data:string +lbl_8011F121 = .data:0x8011F121; // type:object size:0xE data:string +lbl_8011F12F = .data:0x8011F12F; // type:object size:0x10 data:string +lbl_8011F13F = .data:0x8011F13F; // type:object size:0x11 data:string +lbl_8011F150 = .data:0x8011F150; // type:object size:0x11 data:string +lbl_8011F161 = .data:0x8011F161; // type:object size:0x11 data:string +lbl_8011F172 = .data:0x8011F172; // type:object size:0x10 data:string +lbl_8011F182 = .data:0x8011F182; // type:object size:0xF data:string +lbl_8011F191 = .data:0x8011F191; // type:object size:0x13 data:string +lbl_8011F1A4 = .data:0x8011F1A4; // type:object size:0x13 data:string +lbl_8011F1B7 = .data:0x8011F1B7; // type:object size:0x12 data:string +lbl_8011F1C9 = .data:0x8011F1C9; // type:object size:0x11 data:string +lbl_8011F1DA = .data:0x8011F1DA; // type:object size:0x10 data:string +lbl_8011F1EA = .data:0x8011F1EA; // type:object size:0xD data:string +lbl_8011F1F7 = .data:0x8011F1F7; // type:object size:0x11 data:string +lbl_8011F208 = .data:0x8011F208; // type:object size:0xF data:string +lbl_8011F217 = .data:0x8011F217; // type:object size:0xF data:string +lbl_8011F226 = .data:0x8011F226; // type:object size:0xF data:string +lbl_8011F235 = .data:0x8011F235; // type:object size:0xD data:string +lbl_8011F242 = .data:0x8011F242; // type:object size:0xD data:string +lbl_8011F24F = .data:0x8011F24F; // type:object size:0xD data:string +lbl_8011F25C = .data:0x8011F25C; // type:object size:0xD data:string +lbl_8011F269 = .data:0x8011F269; // type:object size:0xD data:string +lbl_8011F276 = .data:0x8011F276; // type:object size:0xD data:string +lbl_8011F283 = .data:0x8011F283; // type:object size:0xD data:string +lbl_8011F290 = .data:0x8011F290; // type:object size:0xD data:string +lbl_8011F29D = .data:0x8011F29D; // type:object size:0xD data:string +lbl_8011F2AA = .data:0x8011F2AA; // type:object size:0x11 data:string +lbl_8011F2BB = .data:0x8011F2BB; // type:object size:0x15 data:string +lbl_8011F2D0 = .data:0x8011F2D0; // type:object size:0x15 data:string +lbl_8011F2E5 = .data:0x8011F2E5; // type:object size:0x14 data:string +lbl_8011F2F9 = .data:0x8011F2F9; // type:object size:0xF data:string +lbl_8011F308 = .data:0x8011F308; // type:object size:0x13 data:string +lbl_8011F31B = .data:0x8011F31B; // type:object size:0x13 data:string +lbl_8011F32E = .data:0x8011F32E; // type:object size:0x12 data:string +lbl_8011F340 = .data:0x8011F340; // type:object size:0xD data:string +lbl_8011F34D = .data:0x8011F34D; // type:object size:0xF data:string +lbl_8011F35C = .data:0x8011F35C; // type:object size:0x13 data:string +lbl_8011F36F = .data:0x8011F36F; // type:object size:0x13 data:string +lbl_8011F382 = .data:0x8011F382; // type:object size:0x12 data:string +lbl_8011F394 = .data:0x8011F394; // type:object size:0x10 +lbl_8011F3A4 = .data:0x8011F3A4; // type:object size:0x468 data:4byte +lbl_8011F80C = .data:0x8011F80C; // type:object size:0x1D data:string +lbl_8011F829 = .data:0x8011F829; // type:object size:0x1F data:string +lbl_8011F848 = .data:0x8011F848; // type:object size:0x3C +lbl_8011F884 = .data:0x8011F884; // type:object size:0x1A data:string +lbl_8011F89E = .data:0x8011F89E; // type:object size:0x122 +lbl_8011F9C0 = .data:0x8011F9C0; // type:object size:0x20 +lbl_8011F9E0 = .data:0x8011F9E0; // type:object size:0x2000 +lbl_801219E0 = .data:0x801219E0; // type:object size:0x150 +lbl_80121B30 = .data:0x80121B30; // type:object size:0x78 +lbl_80121BA8 = .data:0x80121BA8; // type:object size:0x50 +lbl_80121BF8 = .data:0x80121BF8; // type:object size:0x128 +lbl_80121D20 = .data:0x80121D20; // type:object size:0x40 +lbl_80121D60 = .data:0x80121D60; // type:object size:0x1F data:string +lbl_80121D7F = .data:0x80121D7F; // type:object size:0x31 +lbl_80121DB0 = .data:0x80121DB0; // type:object size:0x12 +lbl_80121DC2 = .data:0x80121DC2; // type:object size:0x10E +jumptable_80121ED0 = .data:0x80121ED0; // type:object size:0x2C scope:local +jumptable_80121F00 = .data:0x80121F00; // type:object size:0x28 scope:local +jumptable_80121F28 = .data:0x80121F28; // type:object size:0x2C scope:local +lbl_80121F54 = .data:0x80121F54; // type:object size:0x1C +lbl_80121F70 = .data:0x80121F70; // type:object size:0xC data:byte +jumptable_80121F7C = .data:0x80121F7C; // type:object size:0x28 scope:local +lbl_80121FA4 = .data:0x80121FA4; // type:object size:0x18 data:string +jumptable_80121FBC = .data:0x80121FBC; // type:object size:0x28 scope:local +jumptable_80121FE4 = .data:0x80121FE4; // type:object size:0x28 scope:local +lbl_8012200C = .data:0x8012200C; // type:object size:0x60 +lbl_8012206C = .data:0x8012206C; // type:object size:0x30 +lbl_8012209C = .data:0x8012209C; // type:object size:0x14 +jumptable_801220B0 = .data:0x801220B0; // type:object size:0x30 scope:local +jumptable_801220E0 = .data:0x801220E0; // type:object size:0x28 scope:local +jumptable_80122108 = .data:0x80122108; // type:object size:0x28 scope:local +lbl_80122130 = .data:0x80122130; // type:object size:0x19 data:string +lbl_80122149 = .data:0x80122149; // type:object size:0xA data:string +lbl_80122153 = .data:0x80122153; // type:object size:0x2D +lbl_80122180 = .data:0x80122180; // type:object size:0xAFC0 +lbl_8012D140 = .data:0x8012D140; // type:object size:0x1B data:string +lbl_8012D15B = .data:0x8012D15B; // type:object size:0x16 data:string +lbl_8012D171 = .data:0x8012D171; // type:object size:0x21 data:string +lbl_8012D192 = .data:0x8012D192; // type:object size:0x26 +lbl_8012D1B8 = .data:0x8012D1B8; // type:object size:0x58 data:4byte +lbl_8012D210 = .data:0x8012D210; // type:object size:0x28 +lbl_8012D238 = .data:0x8012D238; // type:object size:0x1C data:string +lbl_8012D254 = .data:0x8012D254; // type:object size:0x1C +jumptable_8012D270 = .data:0x8012D270; // type:object size:0x2C scope:local +jumptable_8012D29C = .data:0x8012D29C; // type:object size:0x68 scope:local +jumptable_8012D304 = .data:0x8012D304; // type:object size:0xF0 scope:local +jumptable_8012D3F4 = .data:0x8012D3F4; // type:object size:0x20 scope:local +lbl_8012D418 = .data:0x8012D418; // type:object size:0x15 data:string +lbl_8012D42D = .data:0x8012D42D; // type:object size:0x1F data:string +lbl_8012D44C = .data:0x8012D44C; // type:object size:0x18 +lbl_8012D464 = .data:0x8012D464; // type:object size:0x30 +lbl_8012D494 = .data:0x8012D494; // type:object size:0x20 +lbl_8012D4B4 = .data:0x8012D4B4; // type:object size:0x24 +jumptable_8012D4D8 = .data:0x8012D4D8; // type:object size:0x1C scope:local +lbl_8012D4F8 = .data:0x8012D4F8; // type:object size:0xCA +lbl_8012D5C2 = .data:0x8012D5C2; // type:object size:0x1C data:string +lbl_8012D5DE = .data:0x8012D5DE; // type:object size:0x1C data:string +lbl_8012D5FA = .data:0x8012D5FA; // type:object size:0x1D data:string +lbl_8012D617 = .data:0x8012D617; // type:object size:0x18 data:string +lbl_8012D62F = .data:0x8012D62F; // type:object size:0xC data:string +lbl_8012D63B = .data:0x8012D63B; // type:object size:0x45 +lbl_8012D680 = .data:0x8012D680; // type:object size:0x45 +lbl_8012D6C5 = .data:0x8012D6C5; // type:object size:0x19 data:string +lbl_8012D6DE = .data:0x8012D6DE; // type:object size:0x17 data:string +lbl_8012D6F5 = .data:0x8012D6F5; // type:object size:0x1B3 +lbl_8012D8A8 = .data:0x8012D8A8; // type:object size:0xF data:byte +lbl_8012D8B7 = .data:0x8012D8B7; // type:object size:0x800 +lbl_8012E0B7 = .data:0x8012E0B7; // type:object size:0x19 +lbl_8012E0D0 = .data:0x8012E0D0; // type:object size:0x21A +lbl_8012E2EA = .data:0x8012E2EA; // type:object size:0xB data:string +lbl_8012E2F5 = .data:0x8012E2F5; // type:object size:0x273 +lbl_8012E568 = .data:0x8012E568; // type:object size:0x12 data:string +lbl_8012E57A = .data:0x8012E57A; // type:object size:0xD6 +lbl_8012E650 = .data:0x8012E650; // type:object size:0x644 +lbl_8012EC94 = .data:0x8012EC94; // type:object size:0x11 data:string +lbl_8012ECA5 = .data:0x8012ECA5; // type:object size:0x3A +lbl_8012ECDF = .data:0x8012ECDF; // type:object size:0x31 +lbl_8012ED10 = .data:0x8012ED10; // type:object size:0x1DC +lbl_8012EEEC = .data:0x8012EEEC; // type:object size:0x18 +lbl_8012EF04 = .data:0x8012EF04; // type:object size:0x120 +lbl_8012F024 = .data:0x8012F024; // type:object size:0x18 +lbl_8012F03C = .data:0x8012F03C; // type:object size:0x40 +lbl_8012F07C = .data:0x8012F07C; // type:object size:0x1C +lbl_8012F098 = .data:0x8012F098; // type:object size:0x38 +lbl_8012F0D0 = .data:0x8012F0D0; // type:object size:0x9 data:string +lbl_8012F0D9 = .data:0x8012F0D9; // type:object size:0x83 +lbl_8012F15C = .data:0x8012F15C; // type:object size:0x24 +lbl_8012F180 = .data:0x8012F180; // type:object size:0x50 +lbl_8012F1D0 = .data:0x8012F1D0; // type:object size:0xAC +lbl_8012F27C = .data:0x8012F27C; // type:object size:0xC +lbl_8012F288 = .data:0x8012F288; // type:object size:0xF0 +lbl_8012F378 = .data:0x8012F378; // type:object size:0x15 data:string +lbl_8012F38D = .data:0x8012F38D; // type:object size:0x10 data:string +lbl_8012F39D = .data:0x8012F39D; // type:object size:0x13 data:string +lbl_8012F3B0 = .data:0x8012F3B0; // type:object size:0x10 data:string +lbl_8012F3C0 = .data:0x8012F3C0; // type:object size:0x10 data:string +lbl_8012F3D0 = .data:0x8012F3D0; // type:object size:0x10 data:string +lbl_8012F3E0 = .data:0x8012F3E0; // type:object size:0x10 data:string +lbl_8012F3F0 = .data:0x8012F3F0; // type:object size:0x10 data:string +lbl_8012F400 = .data:0x8012F400; // type:object size:0x10 data:string +lbl_8012F410 = .data:0x8012F410; // type:object size:0x10 data:string +lbl_8012F420 = .data:0x8012F420; // type:object size:0x10 data:string +lbl_8012F430 = .data:0x8012F430; // type:object size:0x10 data:string +lbl_8012F440 = .data:0x8012F440; // type:object size:0x10 data:string +lbl_8012F450 = .data:0x8012F450; // type:object size:0x10 data:string +lbl_8012F460 = .data:0x8012F460; // type:object size:0x10 data:string +lbl_8012F470 = .data:0x8012F470; // type:object size:0x10 data:string +lbl_8012F480 = .data:0x8012F480; // type:object size:0x10 data:string +lbl_8012F490 = .data:0x8012F490; // type:object size:0x10 data:string +lbl_8012F4A0 = .data:0x8012F4A0; // type:object size:0x10 data:string +lbl_8012F4B0 = .data:0x8012F4B0; // type:object size:0x10 data:string +lbl_8012F4C0 = .data:0x8012F4C0; // type:object size:0x10 data:string +lbl_8012F4D0 = .data:0x8012F4D0; // type:object size:0x10 data:string +lbl_8012F4E0 = .data:0x8012F4E0; // type:object size:0x10 data:string +lbl_8012F4F0 = .data:0x8012F4F0; // type:object size:0x10 data:string +lbl_8012F500 = .data:0x8012F500; // type:object size:0x10 data:string +lbl_8012F510 = .data:0x8012F510; // type:object size:0x10 data:string +lbl_8012F520 = .data:0x8012F520; // type:object size:0x10 data:string +lbl_8012F530 = .data:0x8012F530; // type:object size:0x10 data:string +lbl_8012F540 = .data:0x8012F540; // type:object size:0x10 data:string +lbl_8012F550 = .data:0x8012F550; // type:object size:0x10 data:string +lbl_8012F560 = .data:0x8012F560; // type:object size:0x10 data:string +lbl_8012F570 = .data:0x8012F570; // type:object size:0x10 data:string +lbl_8012F580 = .data:0x8012F580; // type:object size:0x10 data:string +lbl_8012F590 = .data:0x8012F590; // type:object size:0x10 data:string +lbl_8012F5A0 = .data:0x8012F5A0; // type:object size:0x10 data:string +lbl_8012F5B0 = .data:0x8012F5B0; // type:object size:0x10 data:string +lbl_8012F5C0 = .data:0x8012F5C0; // type:object size:0x10 data:string +lbl_8012F5D0 = .data:0x8012F5D0; // type:object size:0x10 data:string +lbl_8012F5E0 = .data:0x8012F5E0; // type:object size:0x10 data:string +lbl_8012F5F0 = .data:0x8012F5F0; // type:object size:0x10 data:string +lbl_8012F600 = .data:0x8012F600; // type:object size:0x10 data:string +lbl_8012F610 = .data:0x8012F610; // type:object size:0x10 data:string +lbl_8012F620 = .data:0x8012F620; // type:object size:0x10 data:string +lbl_8012F630 = .data:0x8012F630; // type:object size:0x10 data:string +lbl_8012F640 = .data:0x8012F640; // type:object size:0x10 data:string +lbl_8012F650 = .data:0x8012F650; // type:object size:0x10 data:string +lbl_8012F660 = .data:0x8012F660; // type:object size:0x10 data:string +lbl_8012F670 = .data:0x8012F670; // type:object size:0x10 data:string +lbl_8012F680 = .data:0x8012F680; // type:object size:0x10 data:string +lbl_8012F690 = .data:0x8012F690; // type:object size:0x10 data:string +lbl_8012F6A0 = .data:0x8012F6A0; // type:object size:0x10 data:string +lbl_8012F6B0 = .data:0x8012F6B0; // type:object size:0x10 data:string +lbl_8012F6C0 = .data:0x8012F6C0; // type:object size:0x10 data:string +lbl_8012F6D0 = .data:0x8012F6D0; // type:object size:0x10 data:string +lbl_8012F6E0 = .data:0x8012F6E0; // type:object size:0x10 data:string +lbl_8012F6F0 = .data:0x8012F6F0; // type:object size:0x10 data:string +lbl_8012F700 = .data:0x8012F700; // type:object size:0x10 data:string +lbl_8012F710 = .data:0x8012F710; // type:object size:0x10 data:string +lbl_8012F720 = .data:0x8012F720; // type:object size:0x10 data:string +lbl_8012F730 = .data:0x8012F730; // type:object size:0x10 data:string +lbl_8012F740 = .data:0x8012F740; // type:object size:0x10 data:string +lbl_8012F750 = .data:0x8012F750; // type:object size:0x10 data:string +lbl_8012F760 = .data:0x8012F760; // type:object size:0x10 data:string +lbl_8012F770 = .data:0x8012F770; // type:object size:0x10 data:string +lbl_8012F780 = .data:0x8012F780; // type:object size:0x10 data:string +lbl_8012F790 = .data:0x8012F790; // type:object size:0x10 data:string +lbl_8012F7A0 = .data:0x8012F7A0; // type:object size:0x10 data:string +lbl_8012F7B0 = .data:0x8012F7B0; // type:object size:0x10 data:string +lbl_8012F7C0 = .data:0x8012F7C0; // type:object size:0x10 data:string +lbl_8012F7D0 = .data:0x8012F7D0; // type:object size:0x10 data:string +lbl_8012F7E0 = .data:0x8012F7E0; // type:object size:0x10 data:string +lbl_8012F7F0 = .data:0x8012F7F0; // type:object size:0x12 data:string +lbl_8012F802 = .data:0x8012F802; // type:object size:0x15 data:string +lbl_8012F817 = .data:0x8012F817; // type:object size:0x13 data:string +lbl_8012F82A = .data:0x8012F82A; // type:object size:0x11 data:string +lbl_8012F83B = .data:0x8012F83B; // type:object size:0x10 data:string +lbl_8012F84B = .data:0x8012F84B; // type:object size:0x12 data:string +lbl_8012F85D = .data:0x8012F85D; // type:object size:0x13 data:string +lbl_8012F870 = .data:0x8012F870; // type:object size:0x13 data:string +lbl_8012F883 = .data:0x8012F883; // type:object size:0x13 data:string +lbl_8012F896 = .data:0x8012F896; // type:object size:0x12 data:string +lbl_8012F8A8 = .data:0x8012F8A8; // type:object size:0xF data:string +lbl_8012F8B7 = .data:0x8012F8B7; // type:object size:0xF data:string +lbl_8012F8C6 = .data:0x8012F8C6; // type:object size:0x10 data:string +lbl_8012F8D6 = .data:0x8012F8D6; // type:object size:0x12 data:string +lbl_8012F8E8 = .data:0x8012F8E8; // type:object size:0xF data:string +lbl_8012F8F7 = .data:0x8012F8F7; // type:object size:0x13 data:string +lbl_8012F90A = .data:0x8012F90A; // type:object size:0x11 data:string +lbl_8012F91B = .data:0x8012F91B; // type:object size:0x15 data:string +lbl_8012F930 = .data:0x8012F930; // type:object size:0xF data:string +lbl_8012F93F = .data:0x8012F93F; // type:object size:0xF data:string +lbl_8012F94E = .data:0x8012F94E; // type:object size:0xF data:string +lbl_8012F95D = .data:0x8012F95D; // type:object size:0xF data:string +lbl_8012F96C = .data:0x8012F96C; // type:object size:0xF data:string +lbl_8012F97B = .data:0x8012F97B; // type:object size:0xF data:string +lbl_8012F98A = .data:0x8012F98A; // type:object size:0xF data:string +lbl_8012F999 = .data:0x8012F999; // type:object size:0xF data:string +lbl_8012F9A8 = .data:0x8012F9A8; // type:object size:0xF data:string +lbl_8012F9B7 = .data:0x8012F9B7; // type:object size:0x11 +lbl_8012F9C8 = .data:0x8012F9C8; // type:object size:0x320 +lbl_8012FCE8 = .data:0x8012FCE8; // type:object size:0x20 +lbl_8012FD08 = .data:0x8012FD08; // type:object size:0xC +lbl_8012FD14 = .data:0x8012FD14; // type:object size:0xC +lbl_8012FD20 = .data:0x8012FD20; // type:object size:0x170 +lbl_8012FE90 = .data:0x8012FE90; // type:object size:0x130 +lbl_8012FFC0 = .data:0x8012FFC0; // type:object size:0x140 +lbl_80130100 = .data:0x80130100; // type:object size:0x3C +lbl_8013013C = .data:0x8013013C; // type:object size:0x10 +lbl_8013014C = .data:0x8013014C; // type:object size:0xE data:string +lbl_8013015A = .data:0x8013015A; // type:object size:0xF data:string +lbl_80130169 = .data:0x80130169; // type:object size:0x10 data:string +lbl_80130179 = .data:0x80130179; // type:object size:0x13 +lbl_8013018C = .data:0x8013018C; // type:object size:0x10 +lbl_8013019C = .data:0x8013019C; // type:object size:0x54 +lbl_801301F0 = .data:0x801301F0; // type:object size:0x13 data:string +lbl_80130203 = .data:0x80130203; // type:object size:0x19 +lbl_8013021C = .data:0x8013021C; // type:object size:0x4C +lbl_80130268 = .data:0x80130268; // type:object size:0x26 data:string +lbl_8013028E = .data:0x8013028E; // type:object size:0x2A +lbl_801302B8 = .data:0x801302B8; // type:object size:0x19 data:string +lbl_801302D1 = .data:0x801302D1; // type:object size:0x14 data:string +lbl_801302E5 = .data:0x801302E5; // type:object size:0x93 +lbl_80130378 = .data:0x80130378; // type:object size:0x30 +lbl_801303A8 = .data:0x801303A8; // type:object size:0x60 +lbl_80130408 = .data:0x80130408; // type:object size:0x60 +lbl_80130468 = .data:0x80130468; // type:object size:0x168 +jumptable_801305D0 = .data:0x801305D0; // type:object size:0x1E8 scope:local +lbl_801307B8 = .data:0x801307B8; // type:object size:0x40 +lbl_801307F8 = .data:0x801307F8; // type:object size:0xE data:string +lbl_80130806 = .data:0x80130806; // type:object size:0xE data:string +lbl_80130814 = .data:0x80130814; // type:object size:0xE data:string +lbl_80130822 = .data:0x80130822; // type:object size:0xD data:string +lbl_8013082F = .data:0x8013082F; // type:object size:0xD data:string +lbl_8013083C = .data:0x8013083C; // type:object size:0xB data:string +lbl_80130847 = .data:0x80130847; // type:object size:0xF data:string +lbl_80130856 = .data:0x80130856; // type:object size:0xF data:string +lbl_80130865 = .data:0x80130865; // type:object size:0xF data:string +lbl_80130874 = .data:0x80130874; // type:object size:0xF data:string +lbl_80130883 = .data:0x80130883; // type:object size:0xF data:string +lbl_80130892 = .data:0x80130892; // type:object size:0xF data:string +lbl_801308A1 = .data:0x801308A1; // type:object size:0x9 data:string +lbl_801308AA = .data:0x801308AA; // type:object size:0xD data:string +lbl_801308B7 = .data:0x801308B7; // type:object size:0x17 data:string +lbl_801308CE = .data:0x801308CE; // type:object size:0x17 data:string +lbl_801308E5 = .data:0x801308E5; // type:object size:0xE data:string +lbl_801308F3 = .data:0x801308F3; // type:object size:0xE data:string +lbl_80130901 = .data:0x80130901; // type:object size:0xD data:string +lbl_8013090E = .data:0x8013090E; // type:object size:0xE data:string +lbl_8013091C = .data:0x8013091C; // type:object size:0xE data:string +lbl_8013092A = .data:0x8013092A; // type:object size:0xF data:string +lbl_80130939 = .data:0x80130939; // type:object size:0xF data:string +lbl_80130948 = .data:0x80130948; // type:object size:0x18 data:string +lbl_80130960 = .data:0x80130960; // type:object size:0x18 data:string +lbl_80130978 = .data:0x80130978; // type:object size:0xE data:string +lbl_80130986 = .data:0x80130986; // type:object size:0x18 data:string +lbl_8013099E = .data:0x8013099E; // type:object size:0x1A +lbl_801309B8 = .data:0x801309B8; // type:object size:0x100 +lbl_80130AB8 = .data:0x80130AB8; // type:object size:0xD data:string +lbl_80130AC5 = .data:0x80130AC5; // type:object size:0xD data:string +lbl_80130AD2 = .data:0x80130AD2; // type:object size:0xE data:string +lbl_80130AE0 = .data:0x80130AE0; // type:object size:0xE data:string +lbl_80130AEE = .data:0x80130AEE; // type:object size:0x12 +lbl_80130B00 = .data:0x80130B00; // type:object size:0xA0 +lbl_80130BA0 = .data:0x80130BA0; // type:object size:0x38 +lbl_80130BD8 = .data:0x80130BD8; // type:object size:0x38 +lbl_80130C10 = .data:0x80130C10; // type:object size:0x38 +lbl_80130C48 = .data:0x80130C48; // type:object size:0x38 +lbl_80130C80 = .data:0x80130C80; // type:object size:0x1C +lbl_80130C9C = .data:0x80130C9C; // type:object size:0x38 +lbl_80130CD4 = .data:0x80130CD4; // type:object size:0x38 +lbl_80130D0C = .data:0x80130D0C; // type:object size:0xBC +lbl_80130DC8 = .data:0x80130DC8; // type:object size:0x100 +lbl_80130EC8 = .data:0x80130EC8; // type:object size:0x4D +lbl_80130F15 = .data:0x80130F15; // type:object size:0x1B +lbl_80130F30 = .data:0x80130F30; // type:object size:0xE00 data:2byte +lbl_80131D30 = .data:0x80131D30; // type:object size:0x40 +lbl_80131D70 = .data:0x80131D70; // type:object size:0x14 +lbl_80131D84 = .data:0x80131D84; // type:object size:0xC data:string +lbl_80131D90 = .data:0x80131D90; // type:object size:0xC data:string +lbl_80131D9C = .data:0x80131D9C; // type:object size:0xC data:string +lbl_80131DA8 = .data:0x80131DA8; // type:object size:0xC +jumptable_80131DB4 = .data:0x80131DB4; // type:object size:0x34 scope:local +lbl_80131E00 = .data:0x80131E00; // type:object size:0x20 +lbl_80131E20 = .data:0x80131E20; // type:object size:0x13A0 +lbl_801331C0 = .data:0x801331C0; // type:object size:0x13A0 +lbl_80134560 = .data:0x80134560; // type:object size:0x13A0 +lbl_80135900 = .data:0x80135900; // type:object size:0x13A0 +lbl_80136CA0 = .data:0x80136CA0; // type:object size:0x13A0 +lbl_80138040 = .data:0x80138040; // type:object size:0x1384 +jumptable_801393C4 = .data:0x801393C4; // type:object size:0x34 scope:local +lbl_801393F8 = .data:0x801393F8; // type:object size:0x18 +lbl_80139410 = .data:0x80139410; // type:object size:0x13 data:string +lbl_80139423 = .data:0x80139423; // type:object size:0x15 +lbl_80139438 = .data:0x80139438; // type:object size:0x24 +jumptable_8013945C = .data:0x8013945C; // type:object size:0x24 scope:local +lbl_80139480 = .data:0x80139480; // type:object size:0x48 +lbl_801394C8 = .data:0x801394C8; // type:object size:0xC +lbl_801394D4 = .data:0x801394D4; // type:object size:0x30 +lbl_80139504 = .data:0x80139504; // type:object size:0x10 +lbl_80139514 = .data:0x80139514; // type:object size:0x24 +lbl_80139538 = .data:0x80139538; // type:object size:0x10 +lbl_80139548 = .data:0x80139548; // type:object size:0x10 +lbl_80139558 = .data:0x80139558; // type:object size:0xA data:2byte +lbl_80139562 = .data:0x80139562; // type:object size:0x17 data:string +lbl_80139579 = .data:0x80139579; // type:object size:0x17 data:string +lbl_80139590 = .data:0x80139590; // type:object size:0xE data:string +lbl_8013959E = .data:0x8013959E; // type:object size:0xE data:string +lbl_801395AC = .data:0x801395AC; // type:object size:0x18 data:string +lbl_801395C4 = .data:0x801395C4; // type:object size:0x18 data:string +lbl_801395DC = .data:0x801395DC; // type:object size:0xA0 +lbl_8013967C = .data:0x8013967C; // type:object size:0x20 +lbl_8013969C = .data:0x8013969C; // type:object size:0x74 +lbl_80139710 = .data:0x80139710; // type:object size:0x30 +lbl_80139740 = .data:0x80139740; // type:object size:0x24 +lbl_80139764 = .data:0x80139764; // type:object size:0x24 +lbl_80139788 = .data:0x80139788; // type:object size:0x18 +lbl_801397A0 = .data:0x801397A0; // type:object size:0x60 +lbl_80139800 = .data:0x80139800; // type:object size:0x38 +lbl_80139838 = .data:0x80139838; // type:object size:0x30 +lbl_80139868 = .data:0x80139868; // type:object size:0xB8 +lbl_80139920 = .data:0x80139920; // type:object size:0x24 +lbl_80139944 = .data:0x80139944; // type:object size:0x24 +lbl_80139968 = .data:0x80139968; // type:object size:0xC +lbl_80139974 = .data:0x80139974; // type:object size:0xC +jumptable_80139980 = .data:0x80139980; // type:object size:0x28 scope:local +lbl_801399A8 = .data:0x801399A8; // type:object size:0x24 +lbl_801399CC = .data:0x801399CC; // type:object size:0x10 +lbl_801399DC = .data:0x801399DC; // type:object size:0x6C +lbl_80139A48 = .data:0x80139A48; // type:object size:0xB0 +lbl_80139AF8 = .data:0x80139AF8; // type:object size:0x30 data:float +lbl_80139B28 = .data:0x80139B28; // type:object size:0x1A8 +lbl_80139CD0 = .data:0x80139CD0; // type:object size:0xDA +lbl_80139DAA = .data:0x80139DAA; // type:object size:0x13 +lbl_80139DBD = .data:0x80139DBD; // type:object size:0x23 +jumptable_80139DE0 = .data:0x80139DE0; // type:object size:0x24 scope:local +lbl_80139E04 = .data:0x80139E04; // type:object size:0x30 +lbl_80139E34 = .data:0x80139E34; // type:object size:0xC +lbl_80139E40 = .data:0x80139E40; // type:object size:0xC data:4byte +lbl_80139E4C = .data:0x80139E4C; // type:object size:0x20 +lbl_80139E6C = .data:0x80139E6C; // type:object size:0x24 +lbl_80139E90 = .data:0x80139E90; // type:object size:0x10 +lbl_80139EA0 = .data:0x80139EA0; // type:object size:0x28 +jumptable_80139EC8 = .data:0x80139EC8; // type:object size:0x1C scope:local +lbl_80139EE8 = .data:0x80139EE8; // type:object size:0x58 +lbl_80139F40 = .data:0x80139F40; // type:object size:0x10 +lbl_80139F50 = .data:0x80139F50; // type:object size:0x20 +lbl_80139F70 = .data:0x80139F70; // type:object size:0x48 +lbl_80139FB8 = .data:0x80139FB8; // type:object size:0x50 +lbl_8013A008 = .data:0x8013A008; // type:object size:0xC data:4byte +lbl_8013A014 = .data:0x8013A014; // type:object size:0xC data:4byte +lbl_8013A020 = .data:0x8013A020; // type:object size:0xC +lbl_8013A02C = .data:0x8013A02C; // type:object size:0x50 +lbl_8013A07C = .data:0x8013A07C; // type:object size:0x2C +lbl_8013A0A8 = .data:0x8013A0A8; // type:object size:0xC4 data:byte +lbl_8013A16C = .data:0x8013A16C; // type:object size:0x20 data:float +lbl_8013A18C = .data:0x8013A18C; // type:object size:0x10 +lbl_8013A19C = .data:0x8013A19C; // type:object size:0x88 +lbl_8013A224 = .data:0x8013A224; // type:object size:0x30 +lbl_8013A254 = .data:0x8013A254; // type:object size:0x54 +lbl_8013A2A8 = .data:0x8013A2A8; // type:object size:0x18 +lbl_8013A2C0 = .data:0x8013A2C0; // type:object size:0x38 +lbl_8013A2F8 = .data:0x8013A2F8; // type:object size:0x38 +lbl_8013A330 = .data:0x8013A330; // type:object size:0x70 +lbl_8013A3A0 = .data:0x8013A3A0; // type:object size:0x13 data:string +lbl_8013A3B3 = .data:0x8013A3B3; // type:object size:0x13 data:string +lbl_8013A3C6 = .data:0x8013A3C6; // type:object size:0x13 data:string +lbl_8013A3D9 = .data:0x8013A3D9; // type:object size:0x13 data:string +lbl_8013A3EC = .data:0x8013A3EC; // type:object size:0x13 data:string +lbl_8013A3FF = .data:0x8013A3FF; // type:object size:0x13 data:string +lbl_8013A412 = .data:0x8013A412; // type:object size:0x13 data:string +lbl_8013A425 = .data:0x8013A425; // type:object size:0x63 +lbl_8013A488 = .data:0x8013A488; // type:object size:0x40 +lbl_8013A4C8 = .data:0x8013A4C8; // type:object size:0x10 +lbl_8013A4D8 = .data:0x8013A4D8; // type:object size:0x1D8 +lbl_8013A6B0 = .data:0x8013A6B0; // type:object size:0x20 +jumptable_8013A6D0 = .data:0x8013A6D0; // type:object size:0x1C scope:local +lbl_8013A6EC = .data:0x8013A6EC; // type:object size:0x14 +lbl_8013A700 = .data:0x8013A700; // type:object size:0x18 +lbl_8013A718 = .data:0x8013A718; // type:object size:0x20 +lbl_8013A738 = .data:0x8013A738; // type:object size:0x18 +jumptable_8013A750 = .data:0x8013A750; // type:object size:0x24 scope:local +lbl_8013A774 = .data:0x8013A774; // type:object size:0x3C +lbl_8013A7B0 = .data:0x8013A7B0; // type:object size:0x18 +lbl_8013A7C8 = .data:0x8013A7C8; // type:object size:0xC0 +lbl_8013A888 = .data:0x8013A888; // type:object size:0x80 +lbl_8013A908 = .data:0x8013A908; // type:object size:0x18 +lbl_8013A920 = .data:0x8013A920; // type:object size:0xC data:string +lbl_8013A92C = .data:0x8013A92C; // type:object size:0x18 +jumptable_8013A944 = .data:0x8013A944; // type:object size:0x20 scope:local +lbl_8013A964 = .data:0x8013A964; // type:object size:0x24 +lbl_8013A988 = .data:0x8013A988; // type:object size:0x18 +lbl_8013A9A0 = .data:0x8013A9A0; // type:object size:0x34 +lbl_8013A9D4 = .data:0x8013A9D4; // type:object size:0x30 +lbl_8013AA04 = .data:0x8013AA04; // type:object size:0x30 +lbl_8013AA34 = .data:0x8013AA34; // type:object size:0x30 +lbl_8013AA64 = .data:0x8013AA64; // type:object size:0x24 +jumptable_8013AA88 = .data:0x8013AA88; // type:object size:0x20 scope:local +lbl_8013AAD8 = .data:0x8013AAD8; // type:object size:0x90 +lbl_8013AB68 = .data:0x8013AB68; // type:object size:0x30 +lbl_8013AB98 = .data:0x8013AB98; // type:object size:0xC +lbl_8013ABA4 = .data:0x8013ABA4; // type:object size:0x6C +lbl_8013AC10 = .data:0x8013AC10; // type:object size:0x10 data:4byte +lbl_8013AC20 = .data:0x8013AC20; // type:object size:0xC4 +lbl_8013ACE4 = .data:0x8013ACE4; // type:object size:0x24 +jumptable_8013AD08 = .data:0x8013AD08; // type:object size:0x1C scope:local +lbl_8013AD24 = .data:0x8013AD24; // type:object size:0x30 +jumptable_8013AD54 = .data:0x8013AD54; // type:object size:0x24 scope:local +lbl_8013AD78 = .data:0x8013AD78; // type:object size:0x120 +lbl_8013AE98 = .data:0x8013AE98; // type:object size:0x24 +lbl_8013AEBC = .data:0x8013AEBC; // type:object size:0x28 +lbl_8013AEE4 = .data:0x8013AEE4; // type:object size:0x1AC +lbl_8013B090 = .data:0x8013B090; // type:object size:0x10 data:2byte +lbl_8013B0A0 = .data:0x8013B0A0; // type:object size:0x40 data:float +lbl_8013B0E0 = .data:0x8013B0E0; // type:object size:0x74 +jumptable_8013B154 = .data:0x8013B154; // type:object size:0x20 scope:local +jumptable_8013B174 = .data:0x8013B174; // type:object size:0x20 scope:local +jumptable_8013B194 = .data:0x8013B194; // type:object size:0x20 scope:local +lbl_8013B1B8 = .data:0x8013B1B8; // type:object size:0x24 data:string +lbl_8013B1DC = .data:0x8013B1DC; // type:object size:0x24 data:string +@84 = .data:0x8013B200; // type:object size:0x1E scope:local data:string +lbl_8013B3C0 = .data:0x8013B3C0; // type:object size:0x398 +DSPInitCode = .data:0x8013B758; // type:object size:0x80 scope:local +@69 = .data:0x8013B7D8; // type:object size:0x29 scope:local data:string +lbl_8013BA08 = .data:0x8013BA08; // type:object size:0x1B4 +@74 = .data:0x8013BBBC; // type:object size:0x23 scope:local data:string +@10 = .data:0x8013BBE0; // type:object size:0x16 scope:local data:string +@43 = .data:0x8013BEBC; // type:object size:0x40 scope:local +lbl_8013BF00 = .data:0x8013BF00; // type:object size:0x30 data:4byte +lbl_8013BF30 = .data:0x8013BF30; // type:object size:0x28 +lbl_8013BF58 = .data:0x8013BF58; // type:object size:0x28 +ResetFunctionInfo = .data:0x8013BF80; // type:object size:0x10 scope:local +lbl_8013BF90 = .data:0x8013BF90; // type:object size:0x78 +lbl_8013C008 = .data:0x8013C008; // type:object size:0x30 +lbl_8013C038 = .data:0x8013C038; // type:object size:0x30 +lbl_8013C068 = .data:0x8013C068; // type:object size:0x18 data:string +lbl_8013C080 = .data:0x8013C080; // type:object size:0xC8 data:string +lbl_8013C148 = .data:0x8013C148; // type:object size:0x38 +lbl_8013C180 = .data:0x8013C180; // type:object size:0x34 data:string +lbl_8013C1B4 = .data:0x8013C1B4; // type:object size:0x34 +@13 = .data:0x8013C1E8; // type:object size:0x15 scope:local data:string +@293 = .data:0x8013C234; // type:object size:0x20 scope:local +jumptable_8013C254 = .data:0x8013C254; // type:object size:0x40 scope:local +jumptable_8013C294 = .data:0x8013C294; // type:object size:0x34 scope:local +jumptable_8013C2C8 = .data:0x8013C2C8; // type:object size:0x34 scope:local +lbl_8013C300 = .data:0x8013C300; // type:object size:0x48 data:4byte +@36 = .data:0x8013C348; // type:object size:0x1A scope:local data:string +lbl_8013C3B8 = .data:0x8013C3B8; // type:object size:0x164 +jumptable_8013C51C = .data:0x8013C51C; // type:object size:0x58 scope:local +lbl_8013C680 = .data:0x8013C680; // type:object size:0xC00 +lbl_8013D280 = .data:0x8013D280; // type:object size:0xC data:string +lbl_8013D28C = .data:0x8013D28C; // type:object size:0x28 +jumptable_8013D2B4 = .data:0x8013D2B4; // type:object size:0x28 scope:local +jumptable_8013D338 = .data:0x8013D338; // type:object size:0x28 scope:local +jumptable_8013D360 = .data:0x8013D360; // type:object size:0x28 scope:local +jumptable_8013D388 = .data:0x8013D388; // type:object size:0x28 scope:local +jumptable_8013D3B0 = .data:0x8013D3B0; // type:object size:0x28 scope:local +lbl_8013D3D8 = .data:0x8013D3D8; // type:object size:0x10 +lbl_8013D3E8 = .data:0x8013D3E8; // type:object size:0x38 +lbl_8013D420 = .data:0x8013D420; // type:object size:0x140 +jumptable_8013D560 = .data:0x8013D560; // type:object size:0x68 scope:local +jumptable_8013D5C8 = .data:0x8013D5C8; // type:object size:0x44 scope:local +jumptable_8013D60C = .data:0x8013D60C; // type:object size:0x1C scope:local +jumptable_8013D628 = .data:0x8013D628; // type:object size:0x54 scope:local +lbl_8013D680 = .data:0x8013D680; // type:object size:0x3C +lbl_8013D6BC = .data:0x8013D6BC; // type:object size:0x3C +lbl_8013D6F8 = .data:0x8013D6F8; // type:object size:0x3C +lbl_8013D734 = .data:0x8013D734; // type:object size:0x3C +lbl_8013D770 = .data:0x8013D770; // type:object size:0x40 +jumptable_8013D7B0 = .data:0x8013D7B0; // type:object size:0x1C scope:local +jumptable_8013D7D0 = .data:0x8013D7D0; // type:object size:0xF4 scope:local +jumptable_8013D8C4 = .data:0x8013D8C4; // type:object size:0xF4 scope:local +jumptable_8013D9B8 = .data:0x8013D9B8; // type:object size:0x3C scope:local +lbl_8013D9F8 = .data:0x8013D9F8; // type:object size:0x28 +lbl_8013DA20 = .data:0x8013DA20; // type:object size:0x20 +jumptable_8013DA40 = .data:0x8013DA40; // type:object size:0x5C scope:local +jumptable_8013DA9C = .data:0x8013DA9C; // type:object size:0x90 scope:local +jumptable_8013DB2C = .data:0x8013DB2C; // type:object size:0x5C scope:local +lbl_8013DB88 = .data:0x8013DB88; // type:object size:0x18 +lbl_8013DBA0 = .data:0x8013DBA0; // type:object size:0x160 +lbl_8013DD00 = .data:0x8013DD00; // type:object size:0x20 +lbl_8013DD20 = .data:0x8013DD20; // type:object size:0x20 +Si = .data:0x8013DD40; // type:object size:0x14 scope:local data:4byte +Type = .data:0x8013DD54; // type:object size:0x10 scope:local +XYNTSC = .data:0x8013DE10; // type:object size:0x30 scope:local +lbl_8013DEA8 = .data:0x8013DEA8; // type:object size:0x10 +jumptable_8013DEB8 = .data:0x8013DEB8; // type:object size:0x44 scope:local +jumptable_8013DEFC = .data:0x8013DEFC; // type:object size:0x44 scope:local +jumptable_8013DF40 = .data:0x8013DF40; // type:object size:0x44 scope:local +lbl_8013DF84 = .data:0x8013DF84; // type:object size:0xC +lbl_8013DF90 = .data:0x8013DF90; // type:object size:0x10 +__files = .data:0x8013DFA0; // type:object size:0x140 scope:global +jumptable_8013E0E0 = .data:0x8013E0E0; // type:object size:0x124 scope:local +lbl_8013E208 = .data:0x8013E208; // type:object size:0x100 +lbl_8013E308 = .data:0x8013E308; // type:object size:0x100 +@1249 = .data:0x8013E408; // type:object size:0x84 scope:local +jumptable_8013E48C = .data:0x8013E48C; // type:object size:0x84 scope:local +jumptable_8013E510 = .data:0x8013E510; // type:object size:0xE0 scope:local +jumptable_8013E5F0 = .data:0x8013E5F0; // type:object size:0x44 scope:local +lbl_8013E638 = .data:0x8013E638; // type:object size:0x88 +jumptable_8013E6C0 = .data:0x8013E6C0; // type:object size:0x1C scope:local +jumptable_8013E6DC = .data:0x8013E6DC; // type:object size:0x1C scope:local +gTRKRestoreFlags = .data:0x8013E6F8; // type:object size:0x9 scope:global data:byte +gTRKExceptionStatus = .data:0x8013E704; // type:object size:0x10 scope:local data:4byte +lbl_8013E714 = .data:0x8013E714; // type:object size:0x14 data:4byte +lbl_8013E728 = .data:0x8013E728; // type:object size:0x40 data:4byte +gDBCommTable = .data:0x8013E768; // type:object size:0x1C scope:global data:4byte +jumptable_8013E788 = .data:0x8013E788; // type:object size:0x50 scope:local +lbl_8013E7D8 = .data:0x8013E7D8; // type:object size:0x1C +lbl_8013E7F4 = .data:0x8013E7F4; // type:object size:0x204 +lbl_8013E9F8 = .data:0x8013E9F8; // type:object size:0x20 +lbl_8013EA18 = .data:0x8013EA18; // type:object size:0x10 +lbl_8013EA28 = .data:0x8013EA28; // type:object size:0x20 +lbl_8013EA48 = .data:0x8013EA48; // type:object size:0x10 +jumptable_8013EA58 = .data:0x8013EA58; // type:object size:0x1C8 scope:local +lbl_8013EC20 = .data:0x8013EC20; // type:object size:0x200 +lbl_8013EE20 = .data:0x8013EE20; // type:object size:0x200 +lbl_8013F020 = .data:0x8013F020; // type:object size:0x184 +lbl_8013F1A4 = .data:0x8013F1A4; // type:object size:0x400 +lbl_8013F5A4 = .data:0x8013F5A4; // type:object size:0x204 +lbl_8013F7A8 = .data:0x8013F7A8; // type:object size:0x18 +lbl_8013F7C0 = .data:0x8013F7C0; // type:object size:0x228 +lbl_8013F9E8 = .data:0x8013F9E8; // type:object size:0x10 +lbl_8013F9F8 = .data:0x8013F9F8; // type:object size:0x10 +jumptable_8013FA08 = .data:0x8013FA08; // type:object size:0x24 scope:local +jumptable_8013FA2C = .data:0x8013FA2C; // type:object size:0x24 scope:local +jumptable_8013FA50 = .data:0x8013FA50; // type:object size:0x24 scope:local +lbl_8013FA78 = .data:0x8013FA78; // type:object size:0x808 +lbl_80140280 = .data:0x80140280; // type:object size:0x19E0 +lbl_80141C60 = .data:0x80141C60; // type:object size:0x10 +lbl_80141C70 = .data:0x80141C70; // type:object size:0x20 +lbl_80141C90 = .data:0x80141C90; // type:object size:0x800 +lbl_801424A0 = .bss:0x801424A0; // type:object size:0x10 +lbl_801424B0 = .bss:0x801424B0; // type:object size:0x30 +lbl_801424E0 = .bss:0x801424E0; // type:object size:0x2E00 data:4byte +lbl_801452E0 = .bss:0x801452E0; // type:object size:0x400 +lbl_801456E0 = .bss:0x801456E0; // type:object size:0x40 +lbl_80145720 = .bss:0x80145720; // type:object size:0x18 +lbl_80145738 = .bss:0x80145738; // type:object size:0x6800 +lbl_8014BF38 = .bss:0x8014BF38; // type:object size:0x100 data:byte +lbl_8014C038 = .bss:0x8014C038; // type:object size:0xF8 +lbl_8014C130 = .bss:0x8014C130; // type:object size:0x9600 +lbl_80155730 = .bss:0x80155730; // type:object size:0x5400 data:2byte +lbl_8015AB30 = .bss:0x8015AB30; // type:object size:0x1800 +lbl_8015C330 = .bss:0x8015C330; // type:object size:0x20 +lbl_8015C350 = .bss:0x8015C350; // type:object size:0x10 +lbl_8015C360 = .bss:0x8015C360; // type:object size:0x80 +lbl_8015C3E0 = .bss:0x8015C3E0; // type:object size:0x240 +lbl_8015C620 = .bss:0x8015C620; // type:object size:0x300 data:byte +lbl_8015C920 = .bss:0x8015C920; // type:object size:0x9000 +lbl_80165920 = .bss:0x80165920; // type:object size:0x20 data:4byte +lbl_80165940 = .bss:0x80165940; // type:object size:0x1200 +lbl_80166B40 = .bss:0x80166B40; // type:object size:0x480 data:4byte +lbl_80166FC0 = .bss:0x80166FC0; // type:object size:0x40 data:byte +lbl_80167000 = .bss:0x80167000; // type:object size:0x30 +lbl_80167030 = .bss:0x80167030; // type:object size:0x400 +lbl_80167430 = .bss:0x80167430; // type:object size:0xC data:float +lbl_8016743C = .bss:0x8016743C; // type:object size:0xC data:float +lbl_80167448 = .bss:0x80167448; // type:object size:0xC data:float +lbl_80167454 = .bss:0x80167454; // type:object size:0xC data:float +lbl_80167460 = .bss:0x80167460; // type:object size:0x24800 data:byte +lbl_8018BC60 = .bss:0x8018BC60; // type:object size:0x580 data:float +lbl_8018C1E0 = .bss:0x8018C1E0; // type:object size:0x10 data:2byte +lbl_8018C1F0 = .bss:0x8018C1F0; // type:object size:0x20 +lbl_8018C210 = .bss:0x8018C210; // type:object size:0x14 data:4byte +lbl_8018C224 = .bss:0x8018C224; // type:object size:0x10 data:4byte +lbl_8018C234 = .bss:0x8018C234; // type:object size:0x260 data:byte +lbl_8018C494 = .bss:0x8018C494; // type:object size:0x98 data:byte +lbl_8018C52C = .bss:0x8018C52C; // type:object size:0x10 data:4byte +lbl_8018C53C = .bss:0x8018C53C; // type:object size:0x30 +lbl_8018C56C = .bss:0x8018C56C; // type:object size:0x30 +lbl_8018C59C = .bss:0x8018C59C; // type:object size:0x220 data:2byte +lbl_8018C7BC = .bss:0x8018C7BC; // type:object size:0x8B4 data:2byte +lbl_8018D070 = .bss:0x8018D070; // type:object size:0x800 data:2byte +lbl_8018D870 = .bss:0x8018D870; // type:object size:0x1400 data:2byte +lbl_8018EC70 = .bss:0x8018EC70; // type:object size:0x6C0 data:2byte +lbl_8018F330 = .bss:0x8018F330; // type:object size:0x100 +lbl_8018F430 = .bss:0x8018F430; // type:object size:0x370 +lbl_8018F7A0 = .bss:0x8018F7A0; // type:object size:0x38 +lbl_8018F7D8 = .bss:0x8018F7D8; // type:object size:0xC0 +lbl_8018F898 = .bss:0x8018F898; // type:object size:0x18 +lbl_8018F8B0 = .bss:0x8018F8B0; // type:object size:0x28 +lbl_8018F8D8 = .bss:0x8018F8D8; // type:object size:0xC0 data:byte +lbl_8018F998 = .bss:0x8018F998; // type:object size:0xE0 data:byte +lbl_8018FA78 = .bss:0x8018FA78; // type:object size:0x230 +lbl_8018FCA8 = .bss:0x8018FCA8; // type:object size:0xC data:float +lbl_8018FCB4 = .bss:0x8018FCB4; // type:object size:0xC data:float +lbl_8018FCC0 = .bss:0x8018FCC0; // type:object size:0xC0 +lbl_8018FD80 = .bss:0x8018FD80; // type:object size:0xC0 +lbl_8018FE40 = .bss:0x8018FE40; // type:object size:0x40 +lbl_8018FE80 = .bss:0x8018FE80; // type:object size:0x50 +lbl_8018FED0 = .bss:0x8018FED0; // type:object size:0x200 +lbl_801900D0 = .bss:0x801900D0; // type:object size:0x20 +lbl_801900F0 = .bss:0x801900F0; // type:object size:0x400 data:4byte +lbl_801904F0 = .bss:0x801904F0; // type:object size:0x10 data:2byte +lbl_80190500 = .bss:0x80190500; // type:object size:0x600 data:2byte +lbl_80190B00 = .bss:0x80190B00; // type:object size:0x1200 data:4byte +lbl_80191D00 = .bss:0x80191D00; // type:object size:0x100 +lbl_80191E00 = .bss:0x80191E00; // type:object size:0x100 +lbl_80191F00 = .bss:0x80191F00; // type:object size:0x100 +lbl_80192000 = .bss:0x80192000; // type:object size:0x60 data:4byte +lbl_80192060 = .bss:0x80192060; // type:object size:0x3000 data:byte +lbl_80195060 = .bss:0x80195060; // type:object size:0x10 +lbl_80195070 = .bss:0x80195070; // type:object size:0x1410 +lbl_80196480 = .bss:0x80196480; // type:object size:0x400 data:byte +lbl_80196880 = .bss:0x80196880; // type:object size:0x20 +lbl_801968A0 = .bss:0x801968A0; // type:object size:0x2C0 +lbl_80196B60 = .bss:0x80196B60; // type:object size:0x640 +lbl_801971A0 = .bss:0x801971A0; // type:object size:0x10 data:2byte +lbl_801971B0 = .bss:0x801971B0; // type:object size:0x20 +lbl_801971D0 = .bss:0x801971D0; // type:object size:0x80 +lbl_80197250 = .bss:0x80197250; // type:object size:0xA0 +lbl_801972F0 = .bss:0x801972F0; // type:object size:0x40 +lbl_80197330 = .bss:0x80197330; // type:object size:0x60 +lbl_80197390 = .bss:0x80197390; // type:object size:0xC data:float +lbl_8019739C = .bss:0x8019739C; // type:object size:0xC data:float +lbl_801973A8 = .bss:0x801973A8; // type:object size:0x78 +lbl_80197420 = .bss:0x80197420; // type:object size:0x18C +lbl_801975AC = .bss:0x801975AC; // type:object size:0x180 +lbl_8019772C = .bss:0x8019772C; // type:object size:0x34 +lbl_80197760 = .bss:0x80197760; // type:object size:0x1A0 +lbl_80197900 = .bss:0x80197900; // type:object size:0x500 +lbl_80197E00 = .bss:0x80197E00; // type:object size:0x40 +lbl_80197E40 = .bss:0x80197E40; // type:object size:0x40 +lbl_80197E80 = .bss:0x80197E80; // type:object size:0x118 +lbl_80197F98 = .bss:0x80197F98; // type:object size:0x100 +lbl_80198098 = .bss:0x80198098; // type:object size:0x18 +lbl_801980B0 = .bss:0x801980B0; // type:object size:0x10 +lbl_801980C0 = .bss:0x801980C0; // type:object size:0x20 +lbl_801980E0 = .bss:0x801980E0; // type:object size:0x4000 +lbl_8019C0E0 = .bss:0x8019C0E0; // type:object size:0x13A0 +lbl_8019D480 = .bss:0x8019D480; // type:object size:0xC4 data:byte +lbl_8019D544 = .bss:0x8019D544; // type:object size:0xC4 +lbl_8019D608 = .bss:0x8019D608; // type:object size:0x10 +lbl_8019D618 = .bss:0x8019D618; // type:object size:0x10 +lbl_8019D628 = .bss:0x8019D628; // type:object size:0x10 +lbl_8019D638 = .bss:0x8019D638; // type:object size:0x20 +lbl_8019D658 = .bss:0x8019D658; // type:object size:0x40 +lbl_8019D698 = .bss:0x8019D698; // type:object size:0xC data:float +lbl_8019D6A4 = .bss:0x8019D6A4; // type:object size:0xC data:4byte +lbl_8019D6B0 = .bss:0x8019D6B0; // type:object size:0x7000 data:float +lbl_801A46B0 = .bss:0x801A46B0; // type:object size:0x50 +lbl_801A4700 = .bss:0x801A4700; // type:object size:0x14 data:4byte +lbl_801A4714 = .bss:0x801A4714; // type:object size:0x1C +lbl_801A4730 = .bss:0x801A4730; // type:object size:0xC data:2byte +lbl_801A473C = .bss:0x801A473C; // type:object size:0xC +lbl_801A4748 = .bss:0x801A4748; // type:object size:0x18 data:2byte +lbl_801A4760 = .bss:0x801A4760; // type:object size:0x10 +lbl_801A4770 = .bss:0x801A4770; // type:object size:0x10 data:4byte +lbl_801A4780 = .bss:0x801A4780; // type:object size:0x10 +lbl_801A4790 = .bss:0x801A4790; // type:object size:0x18 +lbl_801A47A8 = .bss:0x801A47A8; // type:object size:0x30 +lbl_801A47D8 = .bss:0x801A47D8; // type:object size:0x48 +lbl_801A4820 = .bss:0x801A4820; // type:object size:0x28 +lbl_801A4848 = .bss:0x801A4848; // type:object size:0xC data:4byte +lbl_801A4854 = .bss:0x801A4854; // type:object size:0x34 data:float +lbl_801A4888 = .bss:0x801A4888; // type:object size:0x30 +lbl_801A48B8 = .bss:0x801A48B8; // type:object size:0x18 +lbl_801A48D0 = .bss:0x801A48D0; // type:object size:0x10 data:2byte +lbl_801A48E0 = .bss:0x801A48E0; // type:object size:0xC data:4byte +lbl_801A48EC = .bss:0x801A48EC; // type:object size:0xC data:float +lbl_801A48F8 = .bss:0x801A48F8; // type:object size:0x20 data:2byte +lbl_801A4918 = .bss:0x801A4918; // type:object size:0x40 data:2byte +lbl_801A4958 = .bss:0x801A4958; // type:object size:0x10 +lbl_801A4968 = .bss:0x801A4968; // type:object size:0x10 data:2byte +lbl_801A4978 = .bss:0x801A4978; // type:object size:0xC data:float +lbl_801A4984 = .bss:0x801A4984; // type:object size:0xC data:float +lbl_801A4990 = .bss:0x801A4990; // type:object size:0xC data:float +lbl_801A499C = .bss:0x801A499C; // type:object size:0xC data:float +lbl_801A49A8 = .bss:0x801A49A8; // type:object size:0xC +lbl_801A49B4 = .bss:0x801A49B4; // type:object size:0x10 data:2byte +lbl_801A49C4 = .bss:0x801A49C4; // type:object size:0x14 data:4byte +lbl_801A49D8 = .bss:0x801A49D8; // type:object size:0x20 +lbl_801A49F8 = .bss:0x801A49F8; // type:object size:0x10 data:float +lbl_801A4A08 = .bss:0x801A4A08; // type:object size:0x500 data:byte +lbl_801A4F08 = .bss:0x801A4F08; // type:object size:0x80 +lbl_801A4F88 = .bss:0x801A4F88; // type:object size:0x18 data:4byte +DriveInfo = .bss:0x801A4FA0; // type:object size:0x20 scope:local +__OSErrorTable = .bss:0x801A4FF0; // type:object size:0x40 scope:global +lbl_801A5040 = .bss:0x801A5040; // type:object size:0x20 +Scb = .bss:0x801A5060; // type:object size:0x54 scope:local data:4byte +RunQueue = .bss:0x801A50B8; // type:object size:0x100 scope:local data:4byte +CommandList = .bss:0x801A5AA0; // type:object size:0x3C scope:local data:4byte +AlarmForTimeout = .bss:0x801A5B08; // type:object size:0x28 scope:local +tmpBuffer = .bss:0x801A5B80; // type:object size:0x80 scope:local +DummyCommandBlock = .bss:0x801A5C00; // type:object size:0x30 scope:local +WaitingQueue = .bss:0x801A5C58; // type:object size:0x20 scope:local data:4byte +bb2Buf = .bss:0x801A5C78; // type:object size:0x3F scope:local +block$16 = .bss:0x801A5CB8; // type:object size:0x30 scope:local +lbl_801A5CE8 = .bss:0x801A5CE8; // type:object size:0x78 data:2byte +lbl_801A5D60 = .bss:0x801A5D60; // type:object size:0x78 +lbl_801A5DD8 = .bss:0x801A5DD8; // type:object size:0x58 data:2byte +lbl_801A5E30 = .bss:0x801A5E30; // type:object size:0x20 +lbl_801A5E50 = .bss:0x801A5E50; // type:object size:0x10 +lbl_801A5E60 = .bss:0x801A5E60; // type:object size:0x40 +gxData = .bss:0x801A5EA0; // type:object size:0x4F8 scope:local +lbl_801A6418 = .bss:0x801A6418; // type:object size:0x520 data:4byte +lbl_801A6938 = .bss:0x801A6938; // type:object size:0x220 data:4byte +lbl_801A6B58 = .bss:0x801A6B58; // type:object size:0x20 +Ecb = .bss:0x801A6B78; // type:object size:0xC0 scope:local data:4byte +Packet = .bss:0x801A6C38; // type:object size:0x80 scope:local data:4byte +lbl_801A6CB8 = .bss:0x801A6CB8; // type:object size:0xA0 +TypeTime = .bss:0x801A6D58; // type:object size:0x20 scope:local +lbl_801A6D78 = .bss:0x801A6D78; // type:object size:0x20 +lbl_801A6D98 = .bss:0x801A6D98; // type:object size:0x40 +lbl_801A6DD8 = .bss:0x801A6DD8; // type:object size:0x68 data:4byte +lbl_801A6E40 = .bss:0x801A6E40; // type:object size:0x118 +lbl_801A6F58 = .bss:0x801A6F58; // type:object size:0x18 data:4byte +fragmentinfo = .bss:0x801A6F70; // type:object size:0xC scope:local data:4byte +__atexit_funcs = .bss:0x801A6F80; // type:object size:0x100 scope:local +lbl_801A7080 = .bss:0x801A7080; // type:object size:0x38 data:4byte +lbl_801A70B8 = .bss:0x801A70B8; // type:object size:0x100 +lbl_801A71B8 = .bss:0x801A71B8; // type:object size:0x100 +lbl_801A72B8 = .bss:0x801A72B8; // type:object size:0x100 +lbl_801A73B8 = .bss:0x801A73B8; // type:object size:0x18 +lbl_801A73D0 = .bss:0x801A73D0; // type:object size:0x28 +gTRKBigEndian = .bss:0x801A73F8; // type:object size:0x4 scope:global data:4byte +lbl_801A7400 = .bss:0x801A7400; // type:object size:0x19B0 +gTRKInputPendingPtr = .bss:0x801A8DB0; // type:object size:0x4 scope:global data:4byte +lbl_801A8DB4 = .bss:0x801A8DB4; // type:object size:0x14 data:4byte +lbl_801A8DC8 = .bss:0x801A8DC8; // type:object size:0x8 data:4byte +lbl_801A8DD0 = .bss:0x801A8DD0; // type:object size:0x8 data:4byte +TRK_saved_exceptionID = .bss:0x801A8DD8; // type:object size:0x2 scope:local data:2byte +gTRKState = .bss:0x801A8DDC; // type:object size:0xA4 scope:global data:4byte +gTRKCPUState = .bss:0x801A8E80; // type:object size:0x430 scope:global +gTRKSaveState = .bss:0x801A92B0; // type:object size:0x94 scope:global data:4byte +lbl_801A9344 = .bss:0x801A9344; // type:object size:0x14 +lbl_801A9358 = .bss:0x801A9358; // type:object size:0x8 data:4byte +TRK_mainError = .bss:0x801A9360; // type:object size:0x4 scope:local data:4byte +lbl_801A9368 = .bss:0x801A9368; // type:object size:0x111C data:4byte +lbl_801AA484 = .bss:0x801AA484; // type:object size:0x110C +lbl_801AB590 = .bss:0x801AB590; // type:object size:0x8 data:byte +lbl_801AB598 = .bss:0x801AB598; // type:object size:0x1400 data:4byte +lbl_801AC998 = .bss:0x801AC998; // type:object size:0xC340 +lbl_801B8CD8 = .bss:0x801B8CD8; // type:object size:0x100 data:2byte +lbl_801B8DD8 = .bss:0x801B8DD8; // type:object size:0x240 +lbl_801B9018 = .bss:0x801B9018; // type:object size:0x214 data:4byte +lbl_801B922C = .bss:0x801B922C; // type:object size:0x600 data:float +lbl_801B982C = .bss:0x801B982C; // type:object size:0x40 data:byte +lbl_801B986C = .bss:0x801B986C; // type:object size:0x180 +lbl_801B99EC = .bss:0x801B99EC; // type:object size:0x20 data:4byte +lbl_801B9A0C = .bss:0x801B9A0C; // type:object size:0x20 data:4byte +lbl_801B9A2C = .bss:0x801B9A2C; // type:object size:0x20 data:4byte +lbl_801B9A4C = .bss:0x801B9A4C; // type:object size:0x20 data:4byte +lbl_801B9A6C = .bss:0x801B9A6C; // type:object size:0x10 data:byte +lbl_801B9A7C = .bss:0x801B9A7C; // type:object size:0x40 data:4byte +lbl_801B9ABC = .bss:0x801B9ABC; // type:object size:0x480 +lbl_801B9F3C = .bss:0x801B9F3C; // type:object size:0x484 +lbl_801BA3C0 = .bss:0x801BA3C0; // type:object size:0x697 +lbl_801BAA57 = .bss:0x801BAA57; // type:object size:0x1269 +lbl_801BBCC0 = .bss:0x801BBCC0; // type:object size:0x800 +lbl_801BC4C0 = .bss:0x801BC4C0; // type:object size:0xC00 +lbl_801BD0C0 = .bss:0x801BD0C0; // type:object size:0x32C0 +lbl_801C0380 = .bss:0x801C0380; // type:object size:0x7 +lbl_801C0387 = .bss:0x801C0387; // type:object size:0x379 +lbl_801C0700 = .bss:0x801C0700; // type:object size:0x800 +lbl_801C0F00 = .bss:0x801C0F00; // type:object size:0x1C0 +lbl_801C10C0 = .bss:0x801C10C0; // type:object size:0x600 data:4byte +lbl_801C16C0 = .bss:0x801C16C0; // type:object size:0x400 data:2byte +lbl_801C1AC0 = .bss:0x801C1AC0; // type:object size:0x800 data:2byte +lbl_801C22C0 = .bss:0x801C22C0; // type:object size:0x4000 +lbl_801C62C0 = .bss:0x801C62C0; // type:object size:0x20 data:2byte +lbl_801C62E0 = .bss:0x801C62E0; // type:object size:0xC +lbl_801C62EC = .bss:0x801C62EC; // type:object size:0xC data:2byte +lbl_801C62F8 = .bss:0x801C62F8; // type:object size:0x20 data:4byte +lbl_801C6318 = .bss:0x801C6318; // type:object size:0xF00 data:4byte +lbl_801C7218 = .bss:0x801C7218; // type:object size:0x40 data:byte +lbl_801C7258 = .bss:0x801C7258; // type:object size:0x80 data:byte +lbl_801C72D8 = .bss:0x801C72D8; // type:object size:0x950 data:byte +lbl_801C7C28 = .bss:0x801C7C28; // type:object size:0x3D7 +lbl_801C7FFF = .bss:0x801C7FFF; // type:object size:0x229 +lbl_801C8228 = .bss:0x801C8228; // type:object size:0x5E0 data:4byte +lbl_801C8808 = .bss:0x801C8808; // type:object size:0x100 data:4byte +lbl_801C8908 = .bss:0x801C8908; // type:object size:0x50 +lbl_801C8958 = .bss:0x801C8958; // type:object size:0x400 data:4byte +lbl_801C8D58 = .bss:0x801C8D58; // type:object size:0x300 +lbl_801C9058 = .bss:0x801C9058; // type:object size:0x700 +lbl_801C9758 = .bss:0x801C9758; // type:object size:0x200 data:4byte +lbl_801C9958 = .bss:0x801C9958; // type:object size:0x4300 +lbl_801CDC58 = .bss:0x801CDC58; // type:object size:0x80 +lbl_801CDCD8 = .bss:0x801CDCD8; // type:object size:0x2180 +lbl_801CFE58 = .bss:0x801CFE58; // type:object size:0x40 +lbl_801CFE98 = .bss:0x801CFE98; // type:object size:0x80 +lbl_801CFF18 = .bss:0x801CFF18; // type:object size:0x40 +lbl_801CFF58 = .bss:0x801CFF58; // type:object size:0x284 +lbl_801D01DC = .bss:0x801D01DC; // type:object size:0x284 +lbl_801D0460 = .bss:0x801D0460; // type:object size:0x400 data:4byte +lbl_801D0860 = .bss:0x801D0860; // type:object size:0x60 +lbl_801D08C0 = .bss:0x801D08C0; // type:object size:0x2000 +lbl_801D28C0 = .bss:0x801D28C0; // type:object size:0x500 data:4byte +lbl_801D2DC0 = .bss:0x801D2DC0; // type:object size:0x30 data:4byte +lbl_801D2DF0 = .bss:0x801D2DF0; // type:object size:0x10 data:4byte +lbl_801D2E00 = .bss:0x801D2E00; // type:object size:0x178 data:2byte +lbl_801D2F78 = .bss:0x801D2F78; // type:object size:0xE8 data:4byte +lbl_801D3060 = .bss:0x801D3060; // type:object size:0x60 data:4byte +lbl_801D30C0 = .sdata:0x801D30C0; // type:object size:0x5 data:string +lbl_801D30C5 = .sdata:0x801D30C5; // type:object size:0x7 +lbl_801D30CC = .sdata:0x801D30CC; // type:object size:0x4 data:4byte +lbl_801D30D0 = .sdata:0x801D30D0; // type:object size:0x6 data:string +lbl_801D30D6 = .sdata:0x801D30D6; // type:object size:0x2 data:string +lbl_801D30D8 = .sdata:0x801D30D8; // type:object size:0x7 data:string +lbl_801D30DF = .sdata:0x801D30DF; // type:object size:0x9 +lbl_801D30E8 = .sdata:0x801D30E8; // type:object size:0x4 data:4byte +lbl_801D30EC = .sdata:0x801D30EC; // type:object size:0x7 data:string +lbl_801D30F3 = .sdata:0x801D30F3; // type:object size:0xD +lbl_801D3100 = .sdata:0x801D3100; // type:object size:0x2 data:string +lbl_801D3102 = .sdata:0x801D3102; // type:object size:0xE +lbl_801D3110 = .sdata:0x801D3110; // type:object size:0x2 data:2byte +lbl_801D3112 = .sdata:0x801D3112; // type:object size:0x4 +lbl_801D3116 = .sdata:0x801D3116; // type:object size:0x4 +lbl_801D311A = .sdata:0x801D311A; // type:object size:0xE +lbl_801D3128 = .sdata:0x801D3128; // type:object size:0x4 data:string +lbl_801D312C = .sdata:0x801D312C; // type:object size:0xC +lbl_801D3138 = .sdata:0x801D3138; // type:object size:0x1 data:byte +lbl_801D313C = .sdata:0x801D313C; // type:object size:0x4 data:4byte +lbl_801D3140 = .sdata:0x801D3140; // type:object size:0x4 data:4byte +lbl_801D3144 = .sdata:0x801D3144; // type:object size:0xC +lbl_801D3150 = .sdata:0x801D3150; // type:object size:0x1 +lbl_801D3151 = .sdata:0x801D3151; // type:object size:0x7 +lbl_801D3158 = .sdata:0x801D3158; // type:object size:0x4 data:4byte +lbl_801D315C = .sdata:0x801D315C; // type:object size:0x7 data:string +lbl_801D3163 = .sdata:0x801D3163; // type:object size:0x1 data:byte +lbl_801D3166 = .sdata:0x801D3166; // type:object size:0x6 +lbl_801D316C = .sdata:0x801D316C; // type:object size:0x8 +lbl_801D3174 = .sdata:0x801D3174; // type:object size:0x6 +lbl_801D317A = .sdata:0x801D317A; // type:object size:0x8 data:string +lbl_801D3182 = .sdata:0x801D3182; // type:object size:0x6 data:string +lbl_801D3188 = .sdata:0x801D3188; // type:object size:0x4 +lbl_801D318C = .sdata:0x801D318C; // type:object size:0x6 data:string +lbl_801D3192 = .sdata:0x801D3192; // type:object size:0x6 +lbl_801D3198 = .sdata:0x801D3198; // type:object size:0x6 data:string +lbl_801D319E = .sdata:0x801D319E; // type:object size:0x5 +lbl_801D31A3 = .sdata:0x801D31A3; // type:object size:0x6 data:string +lbl_801D31A9 = .sdata:0x801D31A9; // type:object size:0x5 +lbl_801D31AE = .sdata:0x801D31AE; // type:object size:0x6 data:string +lbl_801D31B4 = .sdata:0x801D31B4; // type:object size:0x4 +lbl_801D31B8 = .sdata:0x801D31B8; // type:object size:0x6 data:string +lbl_801D31BE = .sdata:0x801D31BE; // type:object size:0x6 +lbl_801D31C4 = .sdata:0x801D31C4; // type:object size:0x3 data:string +lbl_801D31C7 = .sdata:0x801D31C7; // type:object size:0x7 +lbl_801D31CE = .sdata:0x801D31CE; // type:object size:0x6 data:string +lbl_801D31D4 = .sdata:0x801D31D4; // type:object size:0x7 +lbl_801D31DB = .sdata:0x801D31DB; // type:object size:0x8 data:string +lbl_801D31E3 = .sdata:0x801D31E3; // type:object size:0x5 +lbl_801D31E8 = .sdata:0x801D31E8; // type:object size:0x7 data:string +lbl_801D31EF = .sdata:0x801D31EF; // type:object size:0x6 +lbl_801D31F5 = .sdata:0x801D31F5; // type:object size:0x5 data:string +lbl_801D31FA = .sdata:0x801D31FA; // type:object size:0x5 +lbl_801D31FF = .sdata:0x801D31FF; // type:object size:0x6 data:string +lbl_801D3205 = .sdata:0x801D3205; // type:object size:0x4 +lbl_801D3209 = .sdata:0x801D3209; // type:object size:0x8 data:string +lbl_801D3211 = .sdata:0x801D3211; // type:object size:0x5 +lbl_801D3216 = .sdata:0x801D3216; // type:object size:0x7 +lbl_801D321D = .sdata:0x801D321D; // type:object size:0x6 +lbl_801D3223 = .sdata:0x801D3223; // type:object size:0x7 data:string +lbl_801D322A = .sdata:0x801D322A; // type:object size:0x3 +lbl_801D322D = .sdata:0x801D322D; // type:object size:0x5 data:string +lbl_801D3232 = .sdata:0x801D3232; // type:object size:0x6 +lbl_801D3238 = .sdata:0x801D3238; // type:object size:0x5 data:string +lbl_801D323D = .sdata:0x801D323D; // type:object size:0x7 +lbl_801D3244 = .sdata:0x801D3244; // type:object size:0x6 +lbl_801D324A = .sdata:0x801D324A; // type:object size:0x6 data:string +lbl_801D3250 = .sdata:0x801D3250; // type:object size:0x8 +lbl_801D3258 = .sdata:0x801D3258; // type:object size:0x8 +lbl_801D3260 = .sdata:0x801D3260; // type:object size:0x8 +lbl_801D3268 = .sdata:0x801D3268; // type:object size:0x8 +lbl_801D3270 = .sdata:0x801D3270; // type:object size:0x8 +lbl_801D3278 = .sdata:0x801D3278; // type:object size:0x1 data:byte +lbl_801D3279 = .sdata:0x801D3279; // type:object size:0x1 data:byte +lbl_801D327A = .sdata:0x801D327A; // type:object size:0x1 data:byte +lbl_801D327B = .sdata:0x801D327B; // type:object size:0x1 data:byte +lbl_801D327C = .sdata:0x801D327C; // type:object size:0x1 data:byte +lbl_801D327D = .sdata:0x801D327D; // type:object size:0x1 data:byte +lbl_801D327E = .sdata:0x801D327E; // type:object size:0x1 data:byte +lbl_801D327F = .sdata:0x801D327F; // type:object size:0x1 data:byte +lbl_801D3280 = .sdata:0x801D3280; // type:object size:0x8 data:2byte +lbl_801D3288 = .sdata:0x801D3288; // type:object size:0x8 +lbl_801D3290 = .sdata:0x801D3290; // type:object size:0x8 +lbl_801D3298 = .sdata:0x801D3298; // type:object size:0x8 +lbl_801D32A0 = .sdata:0x801D32A0; // type:object size:0x8 +lbl_801D32A8 = .sdata:0x801D32A8; // type:object size:0x8 +lbl_801D32B0 = .sdata:0x801D32B0; // type:object size:0x1 +lbl_801D32B1 = .sdata:0x801D32B1; // type:object size:0x5 data:string +lbl_801D32B6 = .sdata:0x801D32B6; // type:object size:0x5 data:string +lbl_801D32BB = .sdata:0x801D32BB; // type:object size:0x8 data:string +lbl_801D32C3 = .sdata:0x801D32C3; // type:object size:0x6 data:string +lbl_801D32C9 = .sdata:0x801D32C9; // type:object size:0x7 +lbl_801D32D0 = .sdata:0x801D32D0; // type:object size:0x8 +lbl_801D32D8 = .sdata:0x801D32D8; // type:object size:0x4 data:4byte +lbl_801D32DC = .sdata:0x801D32DC; // type:object size:0x2 data:string +lbl_801D32DE = .sdata:0x801D32DE; // type:object size:0x2 data:string +lbl_801D32E0 = .sdata:0x801D32E0; // type:object size:0x8 +lbl_801D32E8 = .sdata:0x801D32E8; // type:object size:0x3 +lbl_801D32EB = .sdata:0x801D32EB; // type:object size:0x5 +lbl_801D32F0 = .sdata:0x801D32F0; // type:object size:0x8 +lbl_801D32F8 = .sdata:0x801D32F8; // type:object size:0x1 data:byte +lbl_801D32FC = .sdata:0x801D32FC; // type:object size:0x4 data:4byte +lbl_801D3300 = .sdata:0x801D3300; // type:object size:0x8 data:2byte +lbl_801D3308 = .sdata:0x801D3308; // type:object size:0x1 data:byte +lbl_801D330C = .sdata:0x801D330C; // type:object size:0xC data:4byte +lbl_801D3318 = .sdata:0x801D3318; // type:object size:0x4 data:4byte +lbl_801D331C = .sdata:0x801D331C; // type:object size:0x1 data:byte +lbl_801D331D = .sdata:0x801D331D; // type:object size:0x1 data:byte +lbl_801D331E = .sdata:0x801D331E; // type:object size:0x1 data:byte +lbl_801D331F = .sdata:0x801D331F; // type:object size:0x1 data:byte +lbl_801D3320 = .sdata:0x801D3320; // type:object size:0x8 +lbl_801D3328 = .sdata:0x801D3328; // type:object size:0x2 data:2byte +lbl_801D332A = .sdata:0x801D332A; // type:object size:0x2 data:2byte +lbl_801D332C = .sdata:0x801D332C; // type:object size:0x2 data:2byte +lbl_801D332E = .sdata:0x801D332E; // type:object size:0x5 data:string +lbl_801D3333 = .sdata:0x801D3333; // type:object size:0x5 data:string +lbl_801D3338 = .sdata:0x801D3338; // type:object size:0x6 data:string +lbl_801D333E = .sdata:0x801D333E; // type:object size:0x6 data:string +lbl_801D3344 = .sdata:0x801D3344; // type:object size:0x6 data:string +lbl_801D334A = .sdata:0x801D334A; // type:object size:0x6 data:string +lbl_801D3350 = .sdata:0x801D3350; // type:object size:0x6 data:string +lbl_801D3356 = .sdata:0x801D3356; // type:object size:0x6 data:string +lbl_801D335C = .sdata:0x801D335C; // type:object size:0x6 data:string +lbl_801D3362 = .sdata:0x801D3362; // type:object size:0x6 data:string +lbl_801D3368 = .sdata:0x801D3368; // type:object size:0x6 data:string +lbl_801D336E = .sdata:0x801D336E; // type:object size:0x6 data:string +lbl_801D3374 = .sdata:0x801D3374; // type:object size:0x6 data:string +lbl_801D337A = .sdata:0x801D337A; // type:object size:0xE +lbl_801D3388 = .sdata:0x801D3388; // type:object size:0x8 data:2byte +lbl_801D3390 = .sdata:0x801D3390; // type:object size:0x8 data:4byte +lbl_801D3398 = .sdata:0x801D3398; // type:object size:0x8 data:byte +lbl_801D33A0 = .sdata:0x801D33A0; // type:object size:0x2 data:2byte +lbl_801D33A2 = .sdata:0x801D33A2; // type:object size:0x6 data:2byte +lbl_801D33A8 = .sdata:0x801D33A8; // type:object size:0x2 data:2byte +lbl_801D33AA = .sdata:0x801D33AA; // type:object size:0x6 data:2byte +lbl_801D33B0 = .sdata:0x801D33B0; // type:object size:0x2 data:2byte +lbl_801D33B2 = .sdata:0x801D33B2; // type:object size:0x1 data:byte +lbl_801D33B4 = .sdata:0x801D33B4; // type:object size:0x8 +lbl_801D33BC = .sdata:0x801D33BC; // type:object size:0x2 data:2byte +lbl_801D33BE = .sdata:0x801D33BE; // type:object size:0x6 data:2byte +lbl_801D33C4 = .sdata:0x801D33C4; // type:object size:0x1 data:byte +lbl_801D33C5 = .sdata:0x801D33C5; // type:object size:0xB +lbl_801D33D0 = .sdata:0x801D33D0; // type:object size:0x2 data:2byte +lbl_801D33D2 = .sdata:0x801D33D2; // type:object size:0x8 data:2byte +lbl_801D33DA = .sdata:0x801D33DA; // type:object size:0x2 data:2byte +lbl_801D33DC = .sdata:0x801D33DC; // type:object size:0x2 data:2byte +lbl_801D33DE = .sdata:0x801D33DE; // type:object size:0x2 data:2byte +lbl_801D33E2 = .sdata:0x801D33E2; // type:object size:0x2 data:2byte +lbl_801D33E4 = .sdata:0x801D33E4; // type:object size:0x8 +lbl_801D33EC = .sdata:0x801D33EC; // type:object size:0x2 data:2byte +lbl_801D33EE = .sdata:0x801D33EE; // type:object size:0x2 data:2byte +lbl_801D33F0 = .sdata:0x801D33F0; // type:object size:0x2 data:2byte +lbl_801D33F2 = .sdata:0x801D33F2; // type:object size:0x2 data:2byte +lbl_801D33F4 = .sdata:0x801D33F4; // type:object size:0x4 +lbl_801D33F8 = .sdata:0x801D33F8; // type:object size:0x8 +lbl_801D3400 = .sdata:0x801D3400; // type:object size:0x1 data:byte +lbl_801D3402 = .sdata:0x801D3402; // type:object size:0x2 data:2byte +lbl_801D3404 = .sdata:0x801D3404; // type:object size:0x4 data:4byte +lbl_801D3408 = .sdata:0x801D3408; // type:object size:0x8 +lbl_801D3410 = .sdata:0x801D3410; // type:object size:0x8 data:2byte +lbl_801D3418 = .sdata:0x801D3418; // type:object size:0x2 data:2byte +lbl_801D341A = .sdata:0x801D341A; // type:object size:0x6 data:2byte +lbl_801D3420 = .sdata:0x801D3420; // type:object size:0x6 +lbl_801D3426 = .sdata:0x801D3426; // type:object size:0x6 +lbl_801D342C = .sdata:0x801D342C; // type:object size:0x2 data:2byte +lbl_801D342E = .sdata:0x801D342E; // type:object size:0xA +lbl_801D3438 = .sdata:0x801D3438; // type:object size:0x2 data:2byte +lbl_801D343A = .sdata:0x801D343A; // type:object size:0x6 data:2byte +lbl_801D3440 = .sdata:0x801D3440; // type:object size:0x2 data:2byte +lbl_801D3442 = .sdata:0x801D3442; // type:object size:0x6 data:2byte +lbl_801D3448 = .sdata:0x801D3448; // type:object size:0x8 +lbl_801D3450 = .sdata:0x801D3450; // type:object size:0x8 +lbl_801D3458 = .sdata:0x801D3458; // type:object size:0x2 data:2byte +lbl_801D345A = .sdata:0x801D345A; // type:object size:0x2 data:2byte +lbl_801D345C = .sdata:0x801D345C; // type:object size:0x2 data:2byte +lbl_801D345E = .sdata:0x801D345E; // type:object size:0x2 data:2byte +lbl_801D3460 = .sdata:0x801D3460; // type:object size:0x3 data:string +lbl_801D3463 = .sdata:0x801D3463; // type:object size:0xD +lbl_801D3470 = .sdata:0x801D3470; // type:object size:0x8 +lbl_801D3478 = .sdata:0x801D3478; // type:object size:0x8 +lbl_801D3480 = .sdata:0x801D3480; // type:object size:0x8 +lbl_801D3488 = .sdata:0x801D3488; // type:object size:0x8 +lbl_801D3490 = .sdata:0x801D3490; // type:object size:0x1 data:byte +lbl_801D3491 = .sdata:0x801D3491; // type:object size:0x7 data:byte +lbl_801D3498 = .sdata:0x801D3498; // type:object size:0x2 data:2byte +lbl_801D349A = .sdata:0x801D349A; // type:object size:0x2 data:2byte +lbl_801D349C = .sdata:0x801D349C; // type:object size:0x2 data:2byte +lbl_801D349E = .sdata:0x801D349E; // type:object size:0x2 data:2byte +lbl_801D34A0 = .sdata:0x801D34A0; // type:object size:0x2 data:2byte +lbl_801D34A2 = .sdata:0x801D34A2; // type:object size:0x2 data:2byte +lbl_801D34A4 = .sdata:0x801D34A4; // type:object size:0x6 data:2byte +lbl_801D34AA = .sdata:0x801D34AA; // type:object size:0x7 data:string +lbl_801D34B1 = .sdata:0x801D34B1; // type:object size:0x7 data:string +lbl_801D34B8 = .sdata:0x801D34B8; // type:object size:0x7 data:string +lbl_801D34BF = .sdata:0x801D34BF; // type:object size:0x7 data:string +lbl_801D34C6 = .sdata:0x801D34C6; // type:object size:0x7 data:string +lbl_801D34CD = .sdata:0x801D34CD; // type:object size:0x6 data:string +lbl_801D34D3 = .sdata:0x801D34D3; // type:object size:0x7 data:string +lbl_801D34DA = .sdata:0x801D34DA; // type:object size:0x6 data:string +lbl_801D34E0 = .sdata:0x801D34E0; // type:object size:0x8 +lbl_801D34E8 = .sdata:0x801D34E8; // type:object size:0x2 data:2byte +lbl_801D34EA = .sdata:0x801D34EA; // type:object size:0x2 data:2byte +lbl_801D34EC = .sdata:0x801D34EC; // type:object size:0x2 data:2byte +lbl_801D34EE = .sdata:0x801D34EE; // type:object size:0x2 data:2byte +lbl_801D34F0 = .sdata:0x801D34F0; // type:object size:0x4 data:4byte +lbl_801D34F4 = .sdata:0x801D34F4; // type:object size:0x4 +lbl_801D34F8 = .sdata:0x801D34F8; // type:object size:0x2 data:2byte +lbl_801D34FA = .sdata:0x801D34FA; // type:object size:0x2 data:2byte +lbl_801D34FC = .sdata:0x801D34FC; // type:object size:0x2 data:2byte +lbl_801D34FE = .sdata:0x801D34FE; // type:object size:0x2 data:2byte +lbl_801D3500 = .sdata:0x801D3500; // type:object size:0x4 data:4byte +lbl_801D3504 = .sdata:0x801D3504; // type:object size:0x6 data:string +lbl_801D350A = .sdata:0x801D350A; // type:object size:0x7 data:string +lbl_801D3511 = .sdata:0x801D3511; // type:object size:0x7 data:string +lbl_801D3518 = .sdata:0x801D3518; // type:object size:0x7 data:string +lbl_801D351F = .sdata:0x801D351F; // type:object size:0x5 data:string +lbl_801D3524 = .sdata:0x801D3524; // type:object size:0x6 data:string +lbl_801D352A = .sdata:0x801D352A; // type:object size:0x6 data:string +lbl_801D3530 = .sdata:0x801D3530; // type:object size:0x6 data:string +lbl_801D3536 = .sdata:0x801D3536; // type:object size:0x4 data:string +lbl_801D353A = .sdata:0x801D353A; // type:object size:0x5 data:string +lbl_801D353F = .sdata:0x801D353F; // type:object size:0x5 data:string +lbl_801D3544 = .sdata:0x801D3544; // type:object size:0xC +lbl_801D3550 = .sdata:0x801D3550; // type:object size:0x1 data:byte +lbl_801D3552 = .sdata:0x801D3552; // type:object size:0x2 data:2byte +lbl_801D3554 = .sdata:0x801D3554; // type:object size:0x2 data:2byte +lbl_801D3556 = .sdata:0x801D3556; // type:object size:0x2 data:2byte +lbl_801D3558 = .sdata:0x801D3558; // type:object size:0x2 data:2byte +lbl_801D355A = .sdata:0x801D355A; // type:object size:0x2 data:2byte +lbl_801D355C = .sdata:0x801D355C; // type:object size:0x2 data:2byte +lbl_801D355E = .sdata:0x801D355E; // type:object size:0x2 data:2byte +lbl_801D3560 = .sdata:0x801D3560; // type:object size:0x8 data:4byte +__OSArenaLo = .sdata:0x801D3568; // type:object size:0x4 scope:local data:4byte +@32 = .sdata:0x801D3570; // type:object size:0x2 scope:local data:string +lbl_801D3578 = .sdata:0x801D3578; // type:object size:0x8 data:2byte +lbl_801D3580 = .sdata:0x801D3580; // type:object size:0x8 +lbl_801D3588 = .sdata:0x801D3588; // type:object size:0x8 data:4byte +lbl_801D3590 = .sdata:0x801D3590; // type:object size:0x8 data:string +autoInvalidation = .sdata:0x801D3598; // type:object size:0x4 scope:local data:4byte +@35 = .sdata:0x801D35A0; // type:object size:0x2 scope:local data:string +@40 = .sdata:0x801D35A4; // type:object size:0x4 scope:local data:string +@41 = .sdata:0x801D35A8; // type:object size:0x3 scope:local data:string +lbl_801D35B0 = .sdata:0x801D35B0; // type:object size:0x8 data:string +lbl_801D35B8 = .sdata:0x801D35B8; // type:object size:0x8 data:byte +lbl_801D35C0 = .sdata:0x801D35C0; // type:object size:0x4 data:4byte +lbl_801D35C4 = .sdata:0x801D35C4; // type:object size:0x4 data:4byte +lbl_801D35C8 = .sdata:0x801D35C8; // type:object size:0x4 data:4byte +lbl_801D35CC = .sdata:0x801D35CC; // type:object size:0x4 data:4byte +lbl_801D35D0 = .sdata:0x801D35D0; // type:object size:0x4 data:4byte +lbl_801D35D4 = .sdata:0x801D35D4; // type:object size:0x4 +lbl_801D35D8 = .sdata:0x801D35D8; // type:object size:0x8 +gx = .sdata:0x801D35E0; // type:object size:0x4 scope:global data:4byte +lbl_801D35E8 = .sdata:0x801D35E8; // type:object size:0x4 +lbl_801D35EC = .sdata:0x801D35EC; // type:object size:0x4 +lbl_801D35F0 = .sdata:0x801D35F0; // type:object size:0x8 +lbl_801D35F8 = .sdata:0x801D35F8; // type:object size:0x8 +lbl_801D3600 = .sdata:0x801D3600; // type:object size:0x8 +lbl_801D3608 = .sdata:0x801D3608; // type:object size:0x8 +lbl_801D3610 = .sdata:0x801D3610; // type:object size:0x8 +lbl_801D3618 = .sdata:0x801D3618; // type:object size:0x8 +lbl_801D3620 = .sdata:0x801D3620; // type:object size:0x8 +lbl_801D3628 = .sdata:0x801D3628; // type:object size:0x8 +lbl_801D3630 = .sdata:0x801D3630; // type:object size:0x8 +lbl_801D3638 = .sdata:0x801D3638; // type:object size:0x8 data:4byte +lbl_801D3640 = .sdata:0x801D3640; // type:object size:0x8 data:2byte +lbl_801D3648 = .sdata:0x801D3648; // type:object size:0x8 +lbl_801D3650 = .sdata:0x801D3650; // type:object size:0x4 data:4byte +lbl_801D3654 = .sdata:0x801D3654; // type:object size:0x4 data:4byte +fragmentID = .sdata:0x801D3658; // type:object size:0x4 scope:local data:4byte +lbl_801D3660 = .sdata:0x801D3660; // type:object size:0x8 +lbl_801D3668 = .sdata:0x801D3668; // type:object size:0x8 +@wstringBase0 = .sdata:0x801D3670; // type:object size:0x2 scope:local +lbl_801D3678 = .sdata:0x801D3678; // type:object size:0x4 data:float +lbl_801D367C = .sdata:0x801D367C; // type:object size:0x4 data:float +lbl_801D3680 = .sdata:0x801D3680; // type:object size:0x8 data:4byte +lbl_801D3688 = .sdata:0x801D3688; // type:object size:0x8 +lbl_801D3690 = .sdata:0x801D3690; // type:object size:0x8 +lbl_801D3698 = .sdata:0x801D3698; // type:object size:0x8 data:2byte +lbl_801D36A0 = .sdata:0x801D36A0; // type:object size:0x1 data:byte +lbl_801D36C0 = .sbss:0x801D36C0; // type:object size:0x4 data:4byte +lbl_801D36C4 = .sbss:0x801D36C4; // type:object size:0x4 data:4byte +lbl_801D36C8 = .sbss:0x801D36C8; // type:object size:0x4 +lbl_801D36CC = .sbss:0x801D36CC; // type:object size:0x4 +lbl_801D36D0 = .sbss:0x801D36D0; // type:object size:0x4 +lbl_801D36D4 = .sbss:0x801D36D4; // type:object size:0x4 +lbl_801D36D8 = .sbss:0x801D36D8; // type:object size:0x4 +lbl_801D36DC = .sbss:0x801D36DC; // type:object size:0x4 +lbl_801D36E0 = .sbss:0x801D36E0; // type:object size:0x4 +lbl_801D36E4 = .sbss:0x801D36E4; // type:object size:0x4 +lbl_801D36E8 = .sbss:0x801D36E8; // type:object size:0x4 +lbl_801D36EC = .sbss:0x801D36EC; // type:object size:0x4 +lbl_801D36F0 = .sbss:0x801D36F0; // type:object size:0x4 +lbl_801D36F4 = .sbss:0x801D36F4; // type:object size:0x4 +lbl_801D36F8 = .sbss:0x801D36F8; // type:object size:0x4 +lbl_801D36FC = .sbss:0x801D36FC; // type:object size:0x4 +lbl_801D3700 = .sbss:0x801D3700; // type:object size:0x4 +lbl_801D3704 = .sbss:0x801D3704; // type:object size:0x4 +lbl_801D3708 = .sbss:0x801D3708; // type:object size:0x4 +lbl_801D370C = .sbss:0x801D370C; // type:object size:0x4 +lbl_801D3710 = .sbss:0x801D3710; // type:object size:0x4 +lbl_801D3714 = .sbss:0x801D3714; // type:object size:0x4 data:4byte +lbl_801D3718 = .sbss:0x801D3718; // type:object size:0x4 data:4byte +lbl_801D371C = .sbss:0x801D371C; // type:object size:0x4 data:4byte +lbl_801D3720 = .sbss:0x801D3720; // type:object size:0x4 +lbl_801D3724 = .sbss:0x801D3724; // type:object size:0x4 +lbl_801D3728 = .sbss:0x801D3728; // type:object size:0x4 +lbl_801D372C = .sbss:0x801D372C; // type:object size:0x4 +lbl_801D3730 = .sbss:0x801D3730; // type:object size:0x4 +lbl_801D3734 = .sbss:0x801D3734; // type:object size:0x4 +lbl_801D3738 = .sbss:0x801D3738; // type:object size:0x4 +lbl_801D373C = .sbss:0x801D373C; // type:object size:0x4 +lbl_801D3740 = .sbss:0x801D3740; // type:object size:0x4 +lbl_801D3744 = .sbss:0x801D3744; // type:object size:0x4 +lbl_801D3748 = .sbss:0x801D3748; // type:object size:0x4 +lbl_801D374C = .sbss:0x801D374C; // type:object size:0x8 +lbl_801D3754 = .sbss:0x801D3754; // type:object size:0x8 +lbl_801D375C = .sbss:0x801D375C; // type:object size:0x8 +lbl_801D3764 = .sbss:0x801D3764; // type:object size:0x4 +lbl_801D3768 = .sbss:0x801D3768; // type:object size:0x4 +lbl_801D376C = .sbss:0x801D376C; // type:object size:0x4 +lbl_801D3770 = .sbss:0x801D3770; // type:object size:0x4 +lbl_801D3774 = .sbss:0x801D3774; // type:object size:0x4 +lbl_801D3778 = .sbss:0x801D3778; // type:object size:0x4 +lbl_801D377C = .sbss:0x801D377C; // type:object size:0x4 +lbl_801D3780 = .sbss:0x801D3780; // type:object size:0x4 +lbl_801D3784 = .sbss:0x801D3784; // type:object size:0x4 +lbl_801D3788 = .sbss:0x801D3788; // type:object size:0x8 +lbl_801D3790 = .sbss:0x801D3790; // type:object size:0x8 data:2byte +lbl_801D3798 = .sbss:0x801D3798; // type:object size:0x8 +lbl_801D37A0 = .sbss:0x801D37A0; // type:object size:0x4 data:4byte +lbl_801D37A4 = .sbss:0x801D37A4; // type:object size:0x4 data:4byte +lbl_801D37A8 = .sbss:0x801D37A8; // type:object size:0x4 data:4byte +lbl_801D37AC = .sbss:0x801D37AC; // type:object size:0x4 data:4byte +lbl_801D37B0 = .sbss:0x801D37B0; // type:object size:0x8 data:4byte +lbl_801D37B8 = .sbss:0x801D37B8; // type:object size:0x4 data:4byte +lbl_801D37BC = .sbss:0x801D37BC; // type:object size:0x4 data:4byte +lbl_801D37C0 = .sbss:0x801D37C0; // type:object size:0x4 data:float +lbl_801D37C4 = .sbss:0x801D37C4; // type:object size:0x4 data:4byte +lbl_801D37C8 = .sbss:0x801D37C8; // type:object size:0x4 data:4byte +lbl_801D37CC = .sbss:0x801D37CC; // type:object size:0x4 data:4byte +lbl_801D37D0 = .sbss:0x801D37D0; // type:object size:0x4 data:4byte +lbl_801D37D4 = .sbss:0x801D37D4; // type:object size:0x4 data:4byte +lbl_801D37D8 = .sbss:0x801D37D8; // type:object size:0x4 data:4byte +lbl_801D37DC = .sbss:0x801D37DC; // type:object size:0x4 data:4byte +lbl_801D37E0 = .sbss:0x801D37E0; // type:object size:0x8 data:4byte +lbl_801D37E8 = .sbss:0x801D37E8; // type:object size:0x4 data:4byte +lbl_801D37EC = .sbss:0x801D37EC; // type:object size:0x2 data:2byte +lbl_801D37EE = .sbss:0x801D37EE; // type:object size:0x2 data:2byte +lbl_801D37F0 = .sbss:0x801D37F0; // type:object size:0x8 data:4byte +lbl_801D37F8 = .sbss:0x801D37F8; // type:object size:0x4 data:4byte +lbl_801D37FC = .sbss:0x801D37FC; // type:object size:0x2 data:2byte +lbl_801D3800 = .sbss:0x801D3800; // type:object size:0x4 data:4byte +lbl_801D3804 = .sbss:0x801D3804; // type:object size:0x4 data:4byte +lbl_801D3808 = .sbss:0x801D3808; // type:object size:0x4 data:4byte +lbl_801D380C = .sbss:0x801D380C; // type:object size:0x2 data:2byte +lbl_801D380E = .sbss:0x801D380E; // type:object size:0x2 data:2byte +lbl_801D3810 = .sbss:0x801D3810; // type:object size:0x8 data:2byte +lbl_801D3818 = .sbss:0x801D3818; // type:object size:0x4 data:4byte +lbl_801D381C = .sbss:0x801D381C; // type:object size:0x4 data:4byte +lbl_801D3820 = .sbss:0x801D3820; // type:object size:0x4 data:4byte +lbl_801D3824 = .sbss:0x801D3824; // type:object size:0x4 data:4byte +lbl_801D3828 = .sbss:0x801D3828; // type:object size:0x4 data:4byte +lbl_801D382C = .sbss:0x801D382C; // type:object size:0x4 data:4byte +lbl_801D3830 = .sbss:0x801D3830; // type:object size:0x4 data:4byte +lbl_801D3834 = .sbss:0x801D3834; // type:object size:0x4 data:4byte +lbl_801D3838 = .sbss:0x801D3838; // type:object size:0x4 data:4byte +lbl_801D383C = .sbss:0x801D383C; // type:object size:0x4 data:4byte +lbl_801D3840 = .sbss:0x801D3840; // type:object size:0x4 data:4byte +lbl_801D3844 = .sbss:0x801D3844; // type:object size:0x4 data:4byte +lbl_801D3848 = .sbss:0x801D3848; // type:object size:0x8 data:4byte +lbl_801D3850 = .sbss:0x801D3850; // type:object size:0x4 data:4byte +lbl_801D3854 = .sbss:0x801D3854; // type:object size:0x4 data:4byte +lbl_801D3858 = .sbss:0x801D3858; // type:object size:0x4 data:4byte +lbl_801D385C = .sbss:0x801D385C; // type:object size:0x4 data:4byte +lbl_801D3860 = .sbss:0x801D3860; // type:object size:0x2 data:2byte +lbl_801D3864 = .sbss:0x801D3864; // type:object size:0x4 data:4byte +lbl_801D3868 = .sbss:0x801D3868; // type:object size:0x4 data:4byte +lbl_801D386C = .sbss:0x801D386C; // type:object size:0x4 data:4byte +lbl_801D3870 = .sbss:0x801D3870; // type:object size:0x4 data:4byte +lbl_801D3874 = .sbss:0x801D3874; // type:object size:0x4 data:4byte +lbl_801D3878 = .sbss:0x801D3878; // type:object size:0x2 data:2byte +lbl_801D387A = .sbss:0x801D387A; // type:object size:0x2 data:2byte +lbl_801D387C = .sbss:0x801D387C; // type:object size:0x2 data:2byte +lbl_801D387E = .sbss:0x801D387E; // type:object size:0x2 data:2byte +lbl_801D3880 = .sbss:0x801D3880; // type:object size:0x4 data:4byte +lbl_801D3884 = .sbss:0x801D3884; // type:object size:0x2 data:2byte +lbl_801D3886 = .sbss:0x801D3886; // type:object size:0x2 data:2byte +lbl_801D3888 = .sbss:0x801D3888; // type:object size:0x4 data:4byte +lbl_801D388C = .sbss:0x801D388C; // type:object size:0x4 data:4byte +lbl_801D3890 = .sbss:0x801D3890; // type:object size:0x4 data:4byte +lbl_801D3894 = .sbss:0x801D3894; // type:object size:0x4 data:4byte +lbl_801D3898 = .sbss:0x801D3898; // type:object size:0x4 data:4byte +lbl_801D389C = .sbss:0x801D389C; // type:object size:0x4 data:4byte +lbl_801D38A0 = .sbss:0x801D38A0; // type:object size:0x4 data:4byte +lbl_801D38A4 = .sbss:0x801D38A4; // type:object size:0x4 data:4byte +lbl_801D38A8 = .sbss:0x801D38A8; // type:object size:0x2 data:2byte +lbl_801D38AC = .sbss:0x801D38AC; // type:object size:0x4 data:4byte +lbl_801D38B0 = .sbss:0x801D38B0; // type:object size:0x1 data:byte +lbl_801D38B1 = .sbss:0x801D38B1; // type:object size:0x1 data:byte +lbl_801D38B2 = .sbss:0x801D38B2; // type:object size:0x1 data:byte +lbl_801D38B3 = .sbss:0x801D38B3; // type:object size:0x1 data:byte +lbl_801D38B4 = .sbss:0x801D38B4; // type:object size:0x2 data:2byte +lbl_801D38B6 = .sbss:0x801D38B6; // type:object size:0x2 data:2byte +lbl_801D38B8 = .sbss:0x801D38B8; // type:object size:0x2 data:2byte +lbl_801D38BC = .sbss:0x801D38BC; // type:object size:0x4 data:4byte +lbl_801D38C0 = .sbss:0x801D38C0; // type:object size:0x2 data:2byte +lbl_801D38C2 = .sbss:0x801D38C2; // type:object size:0x2 data:2byte +lbl_801D38C4 = .sbss:0x801D38C4; // type:object size:0x2 data:2byte +lbl_801D38C8 = .sbss:0x801D38C8; // type:object size:0x4 data:4byte +lbl_801D38CC = .sbss:0x801D38CC; // type:object size:0x2 data:2byte +lbl_801D38CE = .sbss:0x801D38CE; // type:object size:0x2 data:2byte +lbl_801D38D0 = .sbss:0x801D38D0; // type:object size:0x4 data:4byte +lbl_801D38D4 = .sbss:0x801D38D4; // type:object size:0x4 data:4byte +lbl_801D38D8 = .sbss:0x801D38D8; // type:object size:0x4 data:4byte +lbl_801D38DC = .sbss:0x801D38DC; // type:object size:0x4 data:4byte +lbl_801D38E0 = .sbss:0x801D38E0; // type:object size:0x4 data:4byte +lbl_801D38E4 = .sbss:0x801D38E4; // type:object size:0x1 data:byte +lbl_801D38E8 = .sbss:0x801D38E8; // type:object size:0x4 data:4byte +lbl_801D38EC = .sbss:0x801D38EC; // type:object size:0x2 data:2byte +lbl_801D38F0 = .sbss:0x801D38F0; // type:object size:0x4 data:4byte +lbl_801D38F4 = .sbss:0x801D38F4; // type:object size:0x2 data:2byte +lbl_801D38F6 = .sbss:0x801D38F6; // type:object size:0x2 data:2byte +lbl_801D38F8 = .sbss:0x801D38F8; // type:object size:0x2 data:2byte +lbl_801D38FC = .sbss:0x801D38FC; // type:object size:0x4 data:4byte +lbl_801D3900 = .sbss:0x801D3900; // type:object size:0x2 data:2byte +lbl_801D3902 = .sbss:0x801D3902; // type:object size:0x2 data:2byte +lbl_801D3904 = .sbss:0x801D3904; // type:object size:0x2 data:2byte +lbl_801D3908 = .sbss:0x801D3908; // type:object size:0x4 data:4byte +lbl_801D390C = .sbss:0x801D390C; // type:object size:0x4 data:4byte +lbl_801D3910 = .sbss:0x801D3910; // type:object size:0x2 data:2byte +lbl_801D3914 = .sbss:0x801D3914; // type:object size:0x4 data:4byte +lbl_801D3918 = .sbss:0x801D3918; // type:object size:0x2 data:2byte +lbl_801D391A = .sbss:0x801D391A; // type:object size:0x1 data:byte +lbl_801D391B = .sbss:0x801D391B; // type:object size:0x1 data:byte +lbl_801D391C = .sbss:0x801D391C; // type:object size:0x1 data:byte +lbl_801D391D = .sbss:0x801D391D; // type:object size:0x1 data:byte +lbl_801D3920 = .sbss:0x801D3920; // type:object size:0x8 data:4byte +lbl_801D3928 = .sbss:0x801D3928; // type:object size:0x1 data:byte +lbl_801D392A = .sbss:0x801D392A; // type:object size:0x2 data:2byte +lbl_801D392C = .sbss:0x801D392C; // type:object size:0x4 data:4byte +lbl_801D3930 = .sbss:0x801D3930; // type:object size:0x4 +lbl_801D3934 = .sbss:0x801D3934; // type:object size:0x4 +lbl_801D3938 = .sbss:0x801D3938; // type:object size:0x4 +lbl_801D393C = .sbss:0x801D393C; // type:object size:0x4 +lbl_801D3940 = .sbss:0x801D3940; // type:object size:0x4 +lbl_801D3944 = .sbss:0x801D3944; // type:object size:0x4 +lbl_801D3948 = .sbss:0x801D3948; // type:object size:0x4 +lbl_801D394C = .sbss:0x801D394C; // type:object size:0x4 +lbl_801D3950 = .sbss:0x801D3950; // type:object size:0x4 +lbl_801D3954 = .sbss:0x801D3954; // type:object size:0x4 +lbl_801D3958 = .sbss:0x801D3958; // type:object size:0x4 +lbl_801D395C = .sbss:0x801D395C; // type:object size:0x4 +lbl_801D3960 = .sbss:0x801D3960; // type:object size:0x4 +lbl_801D3964 = .sbss:0x801D3964; // type:object size:0x4 +lbl_801D3968 = .sbss:0x801D3968; // type:object size:0x4 +lbl_801D396C = .sbss:0x801D396C; // type:object size:0x4 +lbl_801D3970 = .sbss:0x801D3970; // type:object size:0x4 +lbl_801D3974 = .sbss:0x801D3974; // type:object size:0x4 +lbl_801D3978 = .sbss:0x801D3978; // type:object size:0x4 +lbl_801D397C = .sbss:0x801D397C; // type:object size:0x4 +lbl_801D3980 = .sbss:0x801D3980; // type:object size:0x2 data:2byte +lbl_801D3982 = .sbss:0x801D3982; // type:object size:0x2 data:2byte +lbl_801D3984 = .sbss:0x801D3984; // type:object size:0x1 data:byte +lbl_801D3988 = .sbss:0x801D3988; // type:object size:0x4 data:4byte +lbl_801D398C = .sbss:0x801D398C; // type:object size:0x4 data:4byte +lbl_801D3990 = .sbss:0x801D3990; // type:object size:0x4 data:4byte +lbl_801D3994 = .sbss:0x801D3994; // type:object size:0x4 data:4byte +lbl_801D3998 = .sbss:0x801D3998; // type:object size:0x4 data:4byte +lbl_801D399C = .sbss:0x801D399C; // type:object size:0x4 data:4byte +lbl_801D39A0 = .sbss:0x801D39A0; // type:object size:0x4 data:4byte +lbl_801D39A4 = .sbss:0x801D39A4; // type:object size:0x4 data:4byte +lbl_801D39A8 = .sbss:0x801D39A8; // type:object size:0x4 data:4byte +lbl_801D39AC = .sbss:0x801D39AC; // type:object size:0x4 data:4byte +lbl_801D39B0 = .sbss:0x801D39B0; // type:object size:0x4 data:4byte +lbl_801D39B4 = .sbss:0x801D39B4; // type:object size:0x4 data:4byte +lbl_801D39B8 = .sbss:0x801D39B8; // type:object size:0x1 data:byte +lbl_801D39B9 = .sbss:0x801D39B9; // type:object size:0x1 data:byte +lbl_801D39BA = .sbss:0x801D39BA; // type:object size:0x1 data:byte +lbl_801D39BC = .sbss:0x801D39BC; // type:object size:0x4 data:4byte +lbl_801D39C0 = .sbss:0x801D39C0; // type:object size:0x4 +lbl_801D39C4 = .sbss:0x801D39C4; // type:object size:0x4 data:float +lbl_801D39C8 = .sbss:0x801D39C8; // type:object size:0x8 data:4byte +lbl_801D39D0 = .sbss:0x801D39D0; // type:object size:0x8 data:4byte +lbl_801D39D8 = .sbss:0x801D39D8; // type:object size:0x1 data:byte +lbl_801D39DC = .sbss:0x801D39DC; // type:object size:0x4 data:4byte +lbl_801D39E0 = .sbss:0x801D39E0; // type:object size:0x4 data:float +lbl_801D39E4 = .sbss:0x801D39E4; // type:object size:0x4 data:float +lbl_801D39E8 = .sbss:0x801D39E8; // type:object size:0x4 data:float +lbl_801D39EC = .sbss:0x801D39EC; // type:object size:0x4 data:float +lbl_801D39F0 = .sbss:0x801D39F0; // type:object size:0x4 data:float +lbl_801D39F4 = .sbss:0x801D39F4; // type:object size:0x1 data:byte +lbl_801D39F5 = .sbss:0x801D39F5; // type:object size:0x1 data:byte +lbl_801D39F8 = .sbss:0x801D39F8; // type:object size:0x4 data:4byte +lbl_801D39FC = .sbss:0x801D39FC; // type:object size:0x4 data:4byte +lbl_801D3A00 = .sbss:0x801D3A00; // type:object size:0x2 data:2byte +lbl_801D3A02 = .sbss:0x801D3A02; // type:object size:0x6 data:2byte +lbl_801D3A08 = .sbss:0x801D3A08; // type:object size:0x4 data:4byte +lbl_801D3A0C = .sbss:0x801D3A0C; // type:object size:0x4 data:4byte +lbl_801D3A10 = .sbss:0x801D3A10; // type:object size:0x4 data:4byte +lbl_801D3A14 = .sbss:0x801D3A14; // type:object size:0x4 data:4byte +lbl_801D3A18 = .sbss:0x801D3A18; // type:object size:0x4 data:4byte +lbl_801D3A1C = .sbss:0x801D3A1C; // type:object size:0x4 data:4byte +lbl_801D3A20 = .sbss:0x801D3A20; // type:object size:0x4 data:4byte +lbl_801D3A24 = .sbss:0x801D3A24; // type:object size:0x4 data:4byte +lbl_801D3A28 = .sbss:0x801D3A28; // type:object size:0x4 data:4byte +lbl_801D3A2C = .sbss:0x801D3A2C; // type:object size:0x4 data:4byte +lbl_801D3A30 = .sbss:0x801D3A30; // type:object size:0x8 data:4byte +lbl_801D3A38 = .sbss:0x801D3A38; // type:object size:0x4 data:4byte +lbl_801D3A3C = .sbss:0x801D3A3C; // type:object size:0x4 data:4byte +lbl_801D3A40 = .sbss:0x801D3A40; // type:object size:0x4 data:4byte +lbl_801D3A44 = .sbss:0x801D3A44; // type:object size:0x4 data:4byte +lbl_801D3A48 = .sbss:0x801D3A48; // type:object size:0x4 data:4byte +lbl_801D3A4C = .sbss:0x801D3A4C; // type:object size:0x4 data:4byte +lbl_801D3A50 = .sbss:0x801D3A50; // type:object size:0x2 data:2byte +lbl_801D3A52 = .sbss:0x801D3A52; // type:object size:0x2 data:2byte +lbl_801D3A54 = .sbss:0x801D3A54; // type:object size:0x1 data:byte +lbl_801D3A55 = .sbss:0x801D3A55; // type:object size:0x1 data:byte +lbl_801D3A56 = .sbss:0x801D3A56; // type:object size:0x2 data:2byte +lbl_801D3A58 = .sbss:0x801D3A58; // type:object size:0x8 data:2byte +lbl_801D3A60 = .sbss:0x801D3A60; // type:object size:0x8 +lbl_801D3A68 = .sbss:0x801D3A68; // type:object size:0x8 data:4byte +lbl_801D3A70 = .sbss:0x801D3A70; // type:object size:0x4 data:4byte +lbl_801D3A74 = .sbss:0x801D3A74; // type:object size:0x1 data:byte +lbl_801D3A76 = .sbss:0x801D3A76; // type:object size:0x2 data:2byte +lbl_801D3A78 = .sbss:0x801D3A78; // type:object size:0x2 data:2byte +lbl_801D3A7A = .sbss:0x801D3A7A; // type:object size:0x2 data:2byte +lbl_801D3A7C = .sbss:0x801D3A7C; // type:object size:0x4 data:4byte +lbl_801D3A80 = .sbss:0x801D3A80; // type:object size:0x4 data:4byte +lbl_801D3A84 = .sbss:0x801D3A84; // type:object size:0x4 data:4byte +lbl_801D3A88 = .sbss:0x801D3A88; // type:object size:0x1 data:byte +lbl_801D3A89 = .sbss:0x801D3A89; // type:object size:0x1 data:byte +lbl_801D3A8A = .sbss:0x801D3A8A; // type:object size:0x8 +lbl_801D3A92 = .sbss:0x801D3A92; // type:object size:0x2 data:2byte +lbl_801D3A94 = .sbss:0x801D3A94; // type:object size:0x2 data:2byte +lbl_801D3A98 = .sbss:0x801D3A98; // type:object size:0x4 data:4byte +lbl_801D3A9C = .sbss:0x801D3A9C; // type:object size:0x4 data:4byte +lbl_801D3AA0 = .sbss:0x801D3AA0; // type:object size:0x4 data:4byte +lbl_801D3AA4 = .sbss:0x801D3AA4; // type:object size:0x4 data:4byte +lbl_801D3AA8 = .sbss:0x801D3AA8; // type:object size:0x4 data:4byte +lbl_801D3AAC = .sbss:0x801D3AAC; // type:object size:0x4 data:4byte +lbl_801D3AB0 = .sbss:0x801D3AB0; // type:object size:0x8 data:4byte +lbl_801D3AB8 = .sbss:0x801D3AB8; // type:object size:0x1 data:byte +lbl_801D3ABC = .sbss:0x801D3ABC; // type:object size:0x4 data:4byte +lbl_801D3AC0 = .sbss:0x801D3AC0; // type:object size:0x2 data:2byte +lbl_801D3AC4 = .sbss:0x801D3AC4; // type:object size:0x4 data:4byte +lbl_801D3AC8 = .sbss:0x801D3AC8; // type:object size:0x8 data:4byte +lbl_801D3AD0 = .sbss:0x801D3AD0; // type:object size:0x4 data:4byte +lbl_801D3AD4 = .sbss:0x801D3AD4; // type:object size:0x4 data:4byte +lbl_801D3AD8 = .sbss:0x801D3AD8; // type:object size:0x4 data:4byte +lbl_801D3ADC = .sbss:0x801D3ADC; // type:object size:0x4 data:4byte +lbl_801D3AE0 = .sbss:0x801D3AE0; // type:object size:0x4 data:4byte +lbl_801D3AE4 = .sbss:0x801D3AE4; // type:object size:0x4 data:4byte +lbl_801D3AE8 = .sbss:0x801D3AE8; // type:object size:0x4 +lbl_801D3AEC = .sbss:0x801D3AEC; // type:object size:0x4 data:4byte +lbl_801D3AF0 = .sbss:0x801D3AF0; // type:object size:0x4 data:float +lbl_801D3AF4 = .sbss:0x801D3AF4; // type:object size:0x4 data:float +lbl_801D3AF8 = .sbss:0x801D3AF8; // type:object size:0x4 data:4byte +lbl_801D3AFC = .sbss:0x801D3AFC; // type:object size:0x4 data:4byte +lbl_801D3B00 = .sbss:0x801D3B00; // type:object size:0x4 data:4byte +lbl_801D3B04 = .sbss:0x801D3B04; // type:object size:0x4 data:4byte +lbl_801D3B08 = .sbss:0x801D3B08; // type:object size:0x4 data:4byte +lbl_801D3B0C = .sbss:0x801D3B0C; // type:object size:0x4 data:4byte +lbl_801D3B10 = .sbss:0x801D3B10; // type:object size:0x8 data:4byte +lbl_801D3B18 = .sbss:0x801D3B18; // type:object size:0x4 data:4byte +lbl_801D3B1C = .sbss:0x801D3B1C; // type:object size:0x2 data:2byte +lbl_801D3B20 = .sbss:0x801D3B20; // type:object size:0x4 data:4byte +lbl_801D3B24 = .sbss:0x801D3B24; // type:object size:0x2 data:2byte +lbl_801D3B26 = .sbss:0x801D3B26; // type:object size:0x2 data:2byte +lbl_801D3B28 = .sbss:0x801D3B28; // type:object size:0x4 data:4byte +lbl_801D3B2C = .sbss:0x801D3B2C; // type:object size:0x4 data:4byte +lbl_801D3B30 = .sbss:0x801D3B30; // type:object size:0x4 data:4byte +lbl_801D3B34 = .sbss:0x801D3B34; // type:object size:0xC data:4byte +lbl_801D3B40 = .sbss:0x801D3B40; // type:object size:0x4 +lbl_801D3B44 = .sbss:0x801D3B44; // type:object size:0x4 +lbl_801D3B48 = .sbss:0x801D3B48; // type:object size:0x4 data:4byte +lbl_801D3B4C = .sbss:0x801D3B4C; // type:object size:0x4 data:4byte +lbl_801D3B50 = .sbss:0x801D3B50; // type:object size:0x4 +lbl_801D3B54 = .sbss:0x801D3B54; // type:object size:0x2 +lbl_801D3B56 = .sbss:0x801D3B56; // type:object size:0x2 +lbl_801D3B58 = .sbss:0x801D3B58; // type:object size:0x8 +lbl_801D3B60 = .sbss:0x801D3B60; // type:object size:0x8 +lbl_801D3B68 = .sbss:0x801D3B68; // type:object size:0x2 data:2byte +lbl_801D3B6A = .sbss:0x801D3B6A; // type:object size:0x1 data:byte +lbl_801D3B6C = .sbss:0x801D3B6C; // type:object size:0x4 +lbl_801D3B70 = .sbss:0x801D3B70; // type:object size:0x4 data:4byte +lbl_801D3B74 = .sbss:0x801D3B74; // type:object size:0x4 data:4byte +lbl_801D3B78 = .sbss:0x801D3B78; // type:object size:0x4 data:4byte +lbl_801D3B7C = .sbss:0x801D3B7C; // type:object size:0x4 data:4byte +lbl_801D3B80 = .sbss:0x801D3B80; // type:object size:0x4 data:4byte +lbl_801D3B84 = .sbss:0x801D3B84; // type:object size:0x4 data:4byte +lbl_801D3B88 = .sbss:0x801D3B88; // type:object size:0x4 data:4byte +lbl_801D3B8C = .sbss:0x801D3B8C; // type:object size:0x2 data:2byte +lbl_801D3B8E = .sbss:0x801D3B8E; // type:object size:0x2 data:2byte +lbl_801D3B90 = .sbss:0x801D3B90; // type:object size:0x4 data:4byte +lbl_801D3B94 = .sbss:0x801D3B94; // type:object size:0x4 data:4byte +lbl_801D3B98 = .sbss:0x801D3B98; // type:object size:0x4 data:4byte +lbl_801D3B9C = .sbss:0x801D3B9C; // type:object size:0x4 data:4byte +lbl_801D3BA0 = .sbss:0x801D3BA0; // type:object size:0x4 data:4byte +lbl_801D3BA4 = .sbss:0x801D3BA4; // type:object size:0x4 data:4byte +lbl_801D3BA8 = .sbss:0x801D3BA8; // type:object size:0x4 data:4byte +lbl_801D3BAC = .sbss:0x801D3BAC; // type:object size:0x4 data:4byte +lbl_801D3BB0 = .sbss:0x801D3BB0; // type:object size:0x4 data:4byte +lbl_801D3BB4 = .sbss:0x801D3BB4; // type:object size:0x4 data:4byte +lbl_801D3BB8 = .sbss:0x801D3BB8; // type:object size:0x4 data:4byte +lbl_801D3BBC = .sbss:0x801D3BBC; // type:object size:0x4 data:4byte +lbl_801D3BC0 = .sbss:0x801D3BC0; // type:object size:0x4 data:4byte +lbl_801D3BC4 = .sbss:0x801D3BC4; // type:object size:0x4 data:4byte +lbl_801D3BC8 = .sbss:0x801D3BC8; // type:object size:0x4 data:4byte +lbl_801D3BCC = .sbss:0x801D3BCC; // type:object size:0x4 data:4byte +lbl_801D3BD0 = .sbss:0x801D3BD0; // type:object size:0x4 data:4byte +lbl_801D3BD4 = .sbss:0x801D3BD4; // type:object size:0x4 data:4byte +lbl_801D3BD8 = .sbss:0x801D3BD8; // type:object size:0x8 data:4byte +lbl_801D3BE0 = .sbss:0x801D3BE0; // type:object size:0x4 data:4byte +lbl_801D3BE4 = .sbss:0x801D3BE4; // type:object size:0x4 data:4byte +lbl_801D3BE8 = .sbss:0x801D3BE8; // type:object size:0x4 data:4byte +lbl_801D3BEC = .sbss:0x801D3BEC; // type:object size:0x4 data:4byte +lbl_801D3BF0 = .sbss:0x801D3BF0; // type:object size:0x4 data:4byte +lbl_801D3BF4 = .sbss:0x801D3BF4; // type:object size:0x4 data:4byte +lbl_801D3BF8 = .sbss:0x801D3BF8; // type:object size:0x8 +lbl_801D3C00 = .sbss:0x801D3C00; // type:object size:0x1 data:byte +lbl_801D3C04 = .sbss:0x801D3C04; // type:object size:0x1 data:byte +lbl_801D3C06 = .sbss:0x801D3C06; // type:object size:0x8 +lbl_801D3C0E = .sbss:0x801D3C0E; // type:object size:0xA +lbl_801D3C18 = .sbss:0x801D3C18; // type:object size:0x4 data:4byte +lbl_801D3C1C = .sbss:0x801D3C1C; // type:object size:0x4 data:4byte +lbl_801D3C20 = .sbss:0x801D3C20; // type:object size:0x8 data:2byte +lbl_801D3C28 = .sbss:0x801D3C28; // type:object size:0x4 data:4byte +lbl_801D3C2C = .sbss:0x801D3C2C; // type:object size:0x4 data:4byte +lbl_801D3C30 = .sbss:0x801D3C30; // type:object size:0x8 data:float +lbl_801D3C38 = .sbss:0x801D3C38; // type:object size:0x4 data:4byte +lbl_801D3C3C = .sbss:0x801D3C3C; // type:object size:0x4 data:4byte +lbl_801D3C40 = .sbss:0x801D3C40; // type:object size:0x2 data:2byte +lbl_801D3C42 = .sbss:0x801D3C42; // type:object size:0x2 data:2byte +lbl_801D3C44 = .sbss:0x801D3C44; // type:object size:0x2 data:2byte +lbl_801D3C46 = .sbss:0x801D3C46; // type:object size:0x1 data:byte +lbl_801D3C47 = .sbss:0x801D3C47; // type:object size:0x1 data:byte +lbl_801D3C48 = .sbss:0x801D3C48; // type:object size:0x1 data:byte +lbl_801D3C49 = .sbss:0x801D3C49; // type:object size:0x1 data:byte +lbl_801D3C4A = .sbss:0x801D3C4A; // type:object size:0x1 data:byte +lbl_801D3C4B = .sbss:0x801D3C4B; // type:object size:0x1 data:byte +lbl_801D3C4C = .sbss:0x801D3C4C; // type:object size:0x1 data:byte +lbl_801D3C50 = .sbss:0x801D3C50; // type:object size:0x8 +lbl_801D3C58 = .sbss:0x801D3C58; // type:object size:0x4 data:4byte +lbl_801D3C5C = .sbss:0x801D3C5C; // type:object size:0x1 data:byte +lbl_801D3C60 = .sbss:0x801D3C60; // type:object size:0x4 data:4byte +lbl_801D3C64 = .sbss:0x801D3C64; // type:object size:0x2 data:2byte +lbl_801D3C66 = .sbss:0x801D3C66; // type:object size:0x1 data:byte +lbl_801D3C67 = .sbss:0x801D3C67; // type:object size:0x1 data:byte +lbl_801D3C68 = .sbss:0x801D3C68; // type:object size:0x1 data:byte +lbl_801D3C69 = .sbss:0x801D3C69; // type:object size:0x7 data:byte +lbl_801D3C70 = .sbss:0x801D3C70; // type:object size:0x2 data:2byte +lbl_801D3C74 = .sbss:0x801D3C74; // type:object size:0x4 data:4byte +lbl_801D3C78 = .sbss:0x801D3C78; // type:object size:0x4 data:4byte +lbl_801D3C7C = .sbss:0x801D3C7C; // type:object size:0x4 data:4byte +lbl_801D3C80 = .sbss:0x801D3C80; // type:object size:0x4 data:4byte +lbl_801D3C84 = .sbss:0x801D3C84; // type:object size:0x8 data:2byte +lbl_801D3C8C = .sbss:0x801D3C8C; // type:object size:0x4 data:4byte +lbl_801D3C90 = .sbss:0x801D3C90; // type:object size:0x4 data:4byte +lbl_801D3C94 = .sbss:0x801D3C94; // type:object size:0x4 data:4byte +lbl_801D3C98 = .sbss:0x801D3C98; // type:object size:0x4 data:4byte +lbl_801D3C9C = .sbss:0x801D3C9C; // type:object size:0x8 data:4byte +lbl_801D3CA4 = .sbss:0x801D3CA4; // type:object size:0x2 data:2byte +lbl_801D3CA8 = .sbss:0x801D3CA8; // type:object size:0x4 data:4byte +lbl_801D3CAC = .sbss:0x801D3CAC; // type:object size:0x4 data:4byte +lbl_801D3CB0 = .sbss:0x801D3CB0; // type:object size:0x4 data:4byte +lbl_801D3CB4 = .sbss:0x801D3CB4; // type:object size:0x4 data:4byte +lbl_801D3CB8 = .sbss:0x801D3CB8; // type:object size:0x4 data:4byte +lbl_801D3CBC = .sbss:0x801D3CBC; // type:object size:0x2 data:2byte +lbl_801D3CBE = .sbss:0x801D3CBE; // type:object size:0x1 data:byte +lbl_801D3CC0 = .sbss:0x801D3CC0; // type:object size:0x4 data:4byte +lbl_801D3CC4 = .sbss:0x801D3CC4; // type:object size:0x4 +lbl_801D3CC8 = .sbss:0x801D3CC8; // type:object size:0x4 data:4byte +lbl_801D3CCC = .sbss:0x801D3CCC; // type:object size:0x4 data:4byte +lbl_801D3CD0 = .sbss:0x801D3CD0; // type:object size:0x4 data:4byte +lbl_801D3CD4 = .sbss:0x801D3CD4; // type:object size:0x4 data:4byte +lbl_801D3CD8 = .sbss:0x801D3CD8; // type:object size:0x1 data:byte +lbl_801D3CD9 = .sbss:0x801D3CD9; // type:object size:0x1 data:byte +lbl_801D3CDA = .sbss:0x801D3CDA; // type:object size:0x1 data:byte +lbl_801D3CDB = .sbss:0x801D3CDB; // type:object size:0x1 data:byte +lbl_801D3CDC = .sbss:0x801D3CDC; // type:object size:0x1 data:byte +lbl_801D3CDE = .sbss:0x801D3CDE; // type:object size:0x2 data:2byte +lbl_801D3CE0 = .sbss:0x801D3CE0; // type:object size:0x8 data:4byte +lbl_801D3CE8 = .sbss:0x801D3CE8; // type:object size:0x4 data:4byte +lbl_801D3CEC = .sbss:0x801D3CEC; // type:object size:0x4 data:float +lbl_801D3CF0 = .sbss:0x801D3CF0; // type:object size:0x4 data:float +lbl_801D3CF4 = .sbss:0x801D3CF4; // type:object size:0x2 data:2byte +lbl_801D3CF6 = .sbss:0x801D3CF6; // type:object size:0x1 data:byte +lbl_801D3CF7 = .sbss:0x801D3CF7; // type:object size:0x1 data:byte +lbl_801D3CF8 = .sbss:0x801D3CF8; // type:object size:0x8 data:byte +lbl_801D3D00 = .sbss:0x801D3D00; // type:object size:0x4 data:4byte +lbl_801D3D04 = .sbss:0x801D3D04; // type:object size:0x2 data:2byte +lbl_801D3D08 = .sbss:0x801D3D08; // type:object size:0x4 data:float +lbl_801D3D0C = .sbss:0x801D3D0C; // type:object size:0x2 data:2byte +lbl_801D3D10 = .sbss:0x801D3D10; // type:object size:0x4 data:float +lbl_801D3D14 = .sbss:0x801D3D14; // type:object size:0x2 data:2byte +lbl_801D3D16 = .sbss:0x801D3D16; // type:object size:0x2 data:2byte +lbl_801D3D18 = .sbss:0x801D3D18; // type:object size:0x8 data:byte +lbl_801D3D20 = .sbss:0x801D3D20; // type:object size:0x4 data:4byte +lbl_801D3D24 = .sbss:0x801D3D24; // type:object size:0x4 data:4byte +lbl_801D3D28 = .sbss:0x801D3D28; // type:object size:0x1 data:byte +lbl_801D3D29 = .sbss:0x801D3D29; // type:object size:0x7 data:byte +lbl_801D3D30 = .sbss:0x801D3D30; // type:object size:0x4 data:4byte +lbl_801D3D34 = .sbss:0x801D3D34; // type:object size:0x4 data:4byte +lbl_801D3D38 = .sbss:0x801D3D38; // type:object size:0x4 data:4byte +lbl_801D3D3C = .sbss:0x801D3D3C; // type:object size:0x2 data:2byte +lbl_801D3D40 = .sbss:0x801D3D40; // type:object size:0x4 data:4byte +lbl_801D3D44 = .sbss:0x801D3D44; // type:object size:0x2 data:2byte +lbl_801D3D48 = .sbss:0x801D3D48; // type:object size:0x4 data:4byte +lbl_801D3D4C = .sbss:0x801D3D4C; // type:object size:0x1 data:byte +lbl_801D3D4D = .sbss:0x801D3D4D; // type:object size:0xB +lbl_801D3D58 = .sbss:0x801D3D58; // type:object size:0x4 data:4byte +lbl_801D3D5C = .sbss:0x801D3D5C; // type:object size:0x1 data:byte +lbl_801D3D5D = .sbss:0x801D3D5D; // type:object size:0x1 data:byte +lbl_801D3D5E = .sbss:0x801D3D5E; // type:object size:0x1 data:byte +lbl_801D3D5F = .sbss:0x801D3D5F; // type:object size:0x1 data:byte +lbl_801D3D60 = .sbss:0x801D3D60; // type:object size:0x1 data:byte +lbl_801D3D61 = .sbss:0x801D3D61; // type:object size:0x1 data:byte +lbl_801D3D62 = .sbss:0x801D3D62; // type:object size:0x6 data:byte +lbl_801D3D68 = .sbss:0x801D3D68; // type:object size:0x4 data:4byte +lbl_801D3D6C = .sbss:0x801D3D6C; // type:object size:0x4 data:4byte +lbl_801D3D70 = .sbss:0x801D3D70; // type:object size:0x4 data:4byte +lbl_801D3D74 = .sbss:0x801D3D74; // type:object size:0x4 data:4byte +lbl_801D3D78 = .sbss:0x801D3D78; // type:object size:0x4 data:4byte +lbl_801D3D7C = .sbss:0x801D3D7C; // type:object size:0x4 data:4byte +lbl_801D3D80 = .sbss:0x801D3D80; // type:object size:0x4 data:float +lbl_801D3D84 = .sbss:0x801D3D84; // type:object size:0x6 +lbl_801D3D8A = .sbss:0x801D3D8A; // type:object size:0x1 data:byte +lbl_801D3D8B = .sbss:0x801D3D8B; // type:object size:0x1 data:byte +lbl_801D3D8C = .sbss:0x801D3D8C; // type:object size:0x1 data:byte +lbl_801D3D8E = .sbss:0x801D3D8E; // type:object size:0x6 data:2byte +lbl_801D3D94 = .sbss:0x801D3D94; // type:object size:0x4 data:4byte +lbl_801D3D98 = .sbss:0x801D3D98; // type:object size:0x1 data:byte +lbl_801D3D99 = .sbss:0x801D3D99; // type:object size:0x1 data:byte +lbl_801D3D9A = .sbss:0x801D3D9A; // type:object size:0x1 data:byte +lbl_801D3D9B = .sbss:0x801D3D9B; // type:object size:0x1 data:byte +lbl_801D3D9C = .sbss:0x801D3D9C; // type:object size:0x1 data:byte +lbl_801D3DA0 = .sbss:0x801D3DA0; // type:object size:0x4 data:4byte +lbl_801D3DA4 = .sbss:0x801D3DA4; // type:object size:0x4 data:4byte +lbl_801D3DA8 = .sbss:0x801D3DA8; // type:object size:0x4 data:float +lbl_801D3DAC = .sbss:0x801D3DAC; // type:object size:0x4 data:float +lbl_801D3DB0 = .sbss:0x801D3DB0; // type:object size:0x8 data:float +lbl_801D3DB8 = .sbss:0x801D3DB8; // type:object size:0x4 data:4byte +lbl_801D3DBC = .sbss:0x801D3DBC; // type:object size:0x8 data:2byte +lbl_801D3DC4 = .sbss:0x801D3DC4; // type:object size:0x4 data:4byte +lbl_801D3DC8 = .sbss:0x801D3DC8; // type:object size:0x4 data:float +lbl_801D3DCC = .sbss:0x801D3DCC; // type:object size:0x8 +lbl_801D3DD4 = .sbss:0x801D3DD4; // type:object size:0x4 data:float +lbl_801D3DD8 = .sbss:0x801D3DD8; // type:object size:0x2 data:2byte +lbl_801D3DDC = .sbss:0x801D3DDC; // type:object size:0x8 data:4byte +lbl_801D3DE4 = .sbss:0x801D3DE4; // type:object size:0x8 data:4byte +lbl_801D3DEC = .sbss:0x801D3DEC; // type:object size:0x2 data:2byte +lbl_801D3DEE = .sbss:0x801D3DEE; // type:object size:0x1 data:byte +lbl_801D3DEF = .sbss:0x801D3DEF; // type:object size:0x1 data:byte +lbl_801D3DF0 = .sbss:0x801D3DF0; // type:object size:0x8 +lbl_801D3DF8 = .sbss:0x801D3DF8; // type:object size:0x4 data:4byte +lbl_801D3DFC = .sbss:0x801D3DFC; // type:object size:0x4 data:4byte +lbl_801D3E00 = .sbss:0x801D3E00; // type:object size:0x4 data:4byte +lbl_801D3E04 = .sbss:0x801D3E04; // type:object size:0x4 data:4byte +lbl_801D3E08 = .sbss:0x801D3E08; // type:object size:0x4 data:4byte +lbl_801D3E0C = .sbss:0x801D3E0C; // type:object size:0x4 data:4byte +lbl_801D3E10 = .sbss:0x801D3E10; // type:object size:0x8 +lbl_801D3E18 = .sbss:0x801D3E18; // type:object size:0x8 +lbl_801D3E20 = .sbss:0x801D3E20; // type:object size:0x4 data:4byte +lbl_801D3E24 = .sbss:0x801D3E24; // type:object size:0x2 data:2byte +lbl_801D3E26 = .sbss:0x801D3E26; // type:object size:0x8 data:2byte +lbl_801D3E2E = .sbss:0x801D3E2E; // type:object size:0x2 data:2byte +lbl_801D3E30 = .sbss:0x801D3E30; // type:object size:0x1 data:byte +lbl_801D3E31 = .sbss:0x801D3E31; // type:object size:0x7 data:byte +lbl_801D3E38 = .sbss:0x801D3E38; // type:object size:0x4 data:4byte +lbl_801D3E3C = .sbss:0x801D3E3C; // type:object size:0x4 data:4byte +lbl_801D3E40 = .sbss:0x801D3E40; // type:object size:0x4 data:4byte +lbl_801D3E44 = .sbss:0x801D3E44; // type:object size:0x4 data:float +lbl_801D3E48 = .sbss:0x801D3E48; // type:object size:0x4 data:float +lbl_801D3E4C = .sbss:0x801D3E4C; // type:object size:0x8 +lbl_801D3E54 = .sbss:0x801D3E54; // type:object size:0x1 data:byte +lbl_801D3E56 = .sbss:0x801D3E56; // type:object size:0x1 data:byte +lbl_801D3E58 = .sbss:0x801D3E58; // type:object size:0x2 data:2byte +lbl_801D3E5A = .sbss:0x801D3E5A; // type:object size:0x1 data:byte +lbl_801D3E5B = .sbss:0x801D3E5B; // type:object size:0x1 data:byte +lbl_801D3E5C = .sbss:0x801D3E5C; // type:object size:0x1 data:byte +lbl_801D3E60 = .sbss:0x801D3E60; // type:object size:0x4 data:4byte +lbl_801D3E64 = .sbss:0x801D3E64; // type:object size:0x4 data:4byte +lbl_801D3E68 = .sbss:0x801D3E68; // type:object size:0x1 data:byte +lbl_801D3E69 = .sbss:0x801D3E69; // type:object size:0x1 data:byte +lbl_801D3E6A = .sbss:0x801D3E6A; // type:object size:0x1 data:byte +lbl_801D3E6B = .sbss:0x801D3E6B; // type:object size:0x1 data:byte +lbl_801D3E6C = .sbss:0x801D3E6C; // type:object size:0x1 data:byte +lbl_801D3E6D = .sbss:0x801D3E6D; // type:object size:0x1 data:byte +lbl_801D3E70 = .sbss:0x801D3E70; // type:object size:0x4 data:4byte +lbl_801D3E74 = .sbss:0x801D3E74; // type:object size:0x4 data:4byte +lbl_801D3E78 = .sbss:0x801D3E78; // type:object size:0x4 data:4byte +lbl_801D3E7C = .sbss:0x801D3E7C; // type:object size:0x4 data:4byte +lbl_801D3E80 = .sbss:0x801D3E80; // type:object size:0x4 data:4byte +lbl_801D3E84 = .sbss:0x801D3E84; // type:object size:0x4 data:4byte +lbl_801D3E88 = .sbss:0x801D3E88; // type:object size:0x4 data:4byte +lbl_801D3E8C = .sbss:0x801D3E8C; // type:object size:0x4 data:4byte +lbl_801D3E90 = .sbss:0x801D3E90; // type:object size:0x3 +lbl_801D3E93 = .sbss:0x801D3E93; // type:object size:0x3 +lbl_801D3E96 = .sbss:0x801D3E96; // type:object size:0x1 data:byte +lbl_801D3E97 = .sbss:0x801D3E97; // type:object size:0x1 data:byte +lbl_801D3E98 = .sbss:0x801D3E98; // type:object size:0x1 data:byte +lbl_801D3E9C = .sbss:0x801D3E9C; // type:object size:0x4 data:4byte +lbl_801D3EA0 = .sbss:0x801D3EA0; // type:object size:0x1 data:byte +lbl_801D3EA1 = .sbss:0x801D3EA1; // type:object size:0x1 data:byte +lbl_801D3EA2 = .sbss:0x801D3EA2; // type:object size:0x6 data:byte +lbl_801D3EA8 = .sbss:0x801D3EA8; // type:object size:0x4 data:4byte +lbl_801D3EAC = .sbss:0x801D3EAC; // type:object size:0x4 data:4byte +lbl_801D3EB0 = .sbss:0x801D3EB0; // type:object size:0x1 data:byte +lbl_801D3EB1 = .sbss:0x801D3EB1; // type:object size:0x1 data:byte +lbl_801D3EB2 = .sbss:0x801D3EB2; // type:object size:0x1 data:byte +lbl_801D3EB4 = .sbss:0x801D3EB4; // type:object size:0x4 +lbl_801D3EB8 = .sbss:0x801D3EB8; // type:object size:0x6 +lbl_801D3EBE = .sbss:0x801D3EBE; // type:object size:0x6 +lbl_801D3EC4 = .sbss:0x801D3EC4; // type:object size:0x1 data:byte +lbl_801D3EC5 = .sbss:0x801D3EC5; // type:object size:0x1 data:byte +lbl_801D3EC6 = .sbss:0x801D3EC6; // type:object size:0x1 data:byte +lbl_801D3EC7 = .sbss:0x801D3EC7; // type:object size:0x1 data:byte +lbl_801D3EC8 = .sbss:0x801D3EC8; // type:object size:0x2 data:2byte +lbl_801D3ECC = .sbss:0x801D3ECC; // type:object size:0x4 data:float +lbl_801D3ED0 = .sbss:0x801D3ED0; // type:object size:0x4 data:4byte +lbl_801D3ED4 = .sbss:0x801D3ED4; // type:object size:0x1 data:byte +lbl_801D3ED8 = .sbss:0x801D3ED8; // type:object size:0x4 data:4byte +lbl_801D3EDC = .sbss:0x801D3EDC; // type:object size:0x8 +lbl_801D3EE4 = .sbss:0x801D3EE4; // type:object size:0x4 data:4byte +lbl_801D3EE8 = .sbss:0x801D3EE8; // type:object size:0x1 data:byte +lbl_801D3EE9 = .sbss:0x801D3EE9; // type:object size:0x1 data:byte +lbl_801D3EEA = .sbss:0x801D3EEA; // type:object size:0x6 data:byte +lbl_801D3EF0 = .sbss:0x801D3EF0; // type:object size:0x4 data:4byte +lbl_801D3EF4 = .sbss:0x801D3EF4; // type:object size:0x4 +lbl_801D3EF8 = .sbss:0x801D3EF8; // type:object size:0x4 +lbl_801D3EFC = .sbss:0x801D3EFC; // type:object size:0x2 data:2byte +lbl_801D3EFE = .sbss:0x801D3EFE; // type:object size:0x2 data:2byte +lbl_801D3F00 = .sbss:0x801D3F00; // type:object size:0x4 data:4byte +lbl_801D3F04 = .sbss:0x801D3F04; // type:object size:0x4 data:4byte +lbl_801D3F08 = .sbss:0x801D3F08; // type:object size:0x4 data:4byte +lbl_801D3F0C = .sbss:0x801D3F0C; // type:object size:0x4 data:4byte +lbl_801D3F10 = .sbss:0x801D3F10; // type:object size:0x4 data:4byte +lbl_801D3F14 = .sbss:0x801D3F14; // type:object size:0x4 data:4byte +lbl_801D3F18 = .sbss:0x801D3F18; // type:object size:0x2 data:2byte +lbl_801D3F1A = .sbss:0x801D3F1A; // type:object size:0x2 data:2byte +lbl_801D3F1C = .sbss:0x801D3F1C; // type:object size:0x1 data:byte +lbl_801D3F1D = .sbss:0x801D3F1D; // type:object size:0x1 data:byte +lbl_801D3F1E = .sbss:0x801D3F1E; // type:object size:0x1 data:byte +lbl_801D3F20 = .sbss:0x801D3F20; // type:object size:0x4 data:4byte +lbl_801D3F24 = .sbss:0x801D3F24; // type:object size:0x4 data:4byte +lbl_801D3F28 = .sbss:0x801D3F28; // type:object size:0x4 data:4byte +lbl_801D3F2C = .sbss:0x801D3F2C; // type:object size:0x8 +lbl_801D3F34 = .sbss:0x801D3F34; // type:object size:0x1 data:byte +lbl_801D3F36 = .sbss:0x801D3F36; // type:object size:0x2 data:2byte +lbl_801D3F38 = .sbss:0x801D3F38; // type:object size:0x1 data:byte +lbl_801D3F39 = .sbss:0x801D3F39; // type:object size:0x1 data:byte +lbl_801D3F3A = .sbss:0x801D3F3A; // type:object size:0x6 data:byte +lbl_801D3F40 = .sbss:0x801D3F40; // type:object size:0x2 data:2byte +lbl_801D3F42 = .sbss:0x801D3F42; // type:object size:0x6 data:2byte +lbl_801D3F48 = .sbss:0x801D3F48; // type:object size:0x4 data:4byte +lbl_801D3F4C = .sbss:0x801D3F4C; // type:object size:0x4 data:4byte +lbl_801D3F50 = .sbss:0x801D3F50; // type:object size:0x4 data:4byte +lbl_801D3F54 = .sbss:0x801D3F54; // type:object size:0x4 data:4byte +lbl_801D3F58 = .sbss:0x801D3F58; // type:object size:0x4 data:4byte +lbl_801D3F5C = .sbss:0x801D3F5C; // type:object size:0x1 data:byte +lbl_801D3F5E = .sbss:0x801D3F5E; // type:object size:0x2 data:2byte +lbl_801D3F60 = .sbss:0x801D3F60; // type:object size:0x1 data:byte +lbl_801D3F61 = .sbss:0x801D3F61; // type:object size:0x1 data:byte +lbl_801D3F62 = .sbss:0x801D3F62; // type:object size:0x1 data:byte +lbl_801D3F64 = .sbss:0x801D3F64; // type:object size:0x4 data:4byte +lbl_801D3F68 = .sbss:0x801D3F68; // type:object size:0x2 data:2byte +lbl_801D3F6A = .sbss:0x801D3F6A; // type:object size:0x1 data:byte +lbl_801D3F6B = .sbss:0x801D3F6B; // type:object size:0x1 data:byte +lbl_801D3F6C = .sbss:0x801D3F6C; // type:object size:0x4 data:4byte +BootInfo = .sbss:0x801D3F70; // type:object size:0x4 scope:local data:4byte +BI2DebugFlag = .sbss:0x801D3F74; // type:object size:0x4 scope:local data:4byte +BI2DebugFlagHolder = .sbss:0x801D3F78; // type:object size:0x4 scope:local data:4byte +__OSIsGcam = .sbss:0x801D3F7C; // type:object size:0x4 scope:global data:4byte +AreWeInitialized = .sbss:0x801D3F80; // type:object size:0x4 scope:local data:4byte +OSExceptionTable = .sbss:0x801D3F84; // type:object size:0x4 scope:local data:4byte +__OSSavedRegionEnd = .sbss:0x801D3F88; // type:object size:0x4 scope:global data:4byte +__OSSavedRegionStart = .sbss:0x801D3F8C; // type:object size:0x4 scope:global data:4byte +__OSInIPL = .sbss:0x801D3F90; // type:object size:0x4 scope:global data:4byte +__OSStartTime = .sbss:0x801D3F98; // type:object size:0x8 scope:global data:4byte +AlarmQueue = .sbss:0x801D3FA0; // type:object size:0x8 scope:local data:4byte +lbl_801D3FA8 = .sbss:0x801D3FA8; // type:object size:0x4 data:4byte +lbl_801D3FAC = .sbss:0x801D3FAC; // type:object size:0x4 data:4byte +lbl_801D3FB0 = .sbss:0x801D3FB0; // type:object size:0x4 data:4byte +lbl_801D3FB4 = .sbss:0x801D3FB4; // type:object size:0x4 data:4byte +__OSArenaHi = .sbss:0x801D3FB8; // type:object size:0x4 scope:local data:4byte +InterruptHandlerTable = .sbss:0x801D3FC0; // type:object size:0x4 scope:local data:4byte +__OSLastInterruptSrr0 = .sbss:0x801D3FC4; // type:object size:0x4 scope:global data:4byte +__OSLastInterrupt = .sbss:0x801D3FC8; // type:object size:0x2 scope:global data:2byte +__OSLastInterruptTime = .sbss:0x801D3FD0; // type:object size:0x8 scope:global data:4byte +lbl_801D3FD8 = .sbss:0x801D3FD8; // type:object size:0x4 data:4byte +lbl_801D3FDC = .sbss:0x801D3FDC; // type:object size:0x4 data:4byte +lbl_801D3FE0 = .sbss:0x801D3FE0; // type:object size:0x8 data:4byte +ResetFunctionQueue = .sbss:0x801D3FE8; // type:object size:0x8 scope:local data:4byte +lbl_801D3FF0 = .sbss:0x801D3FF0; // type:object size:0x4 data:4byte +lbl_801D3FF4 = .sbss:0x801D3FF4; // type:object size:0x4 data:4byte +lbl_801D3FF8 = .sbss:0x801D3FF8; // type:object size:0x8 data:4byte +lbl_801D4000 = .sbss:0x801D4000; // type:object size:0x4 data:4byte +lbl_801D4004 = .sbss:0x801D4004; // type:object size:0x4 data:4byte +lbl_801D4008 = .sbss:0x801D4008; // type:object size:0x4 data:4byte +lbl_801D400C = .sbss:0x801D400C; // type:object size:0x4 data:4byte +RunQueueBits = .sbss:0x801D4010; // type:object size:0x4 scope:local data:4byte +RunQueueHint = .sbss:0x801D4014; // type:object size:0x4 scope:local data:4byte +Reschedule = .sbss:0x801D4018; // type:object size:0x4 scope:local data:4byte +__DBInterface = .sbss:0x801D4020; // type:object size:0x4 scope:global data:4byte +DBVerbose = .sbss:0x801D4024; // type:object size:0x4 scope:global data:4byte +StopAtNextInt = .sbss:0x801D4028; // type:object size:0x4 scope:local data:4byte +lbl_801D402C = .sbss:0x801D402C; // type:object size:0x4 data:4byte +Callback = .sbss:0x801D4030; // type:object size:0x4 scope:local data:4byte +lbl_801D4034 = .sbss:0x801D4034; // type:object size:0x4 data:4byte +LastResetEnd = .sbss:0x801D4038; // type:object size:0x8 scope:local data:4byte +ResetOccurred = .sbss:0x801D4040; // type:object size:0x4 scope:local data:4byte +WaitingCoverClose = .sbss:0x801D4044; // type:object size:0x4 scope:local data:4byte +lbl_801D4048 = .sbss:0x801D4048; // type:object size:0x4 data:4byte +WorkAroundType = .sbss:0x801D404C; // type:object size:0x4 scope:local data:4byte +WorkAroundSeekLocation = .sbss:0x801D4050; // type:object size:0x4 scope:local data:4byte +lbl_801D4058 = .sbss:0x801D4058; // type:object size:0x4 data:4byte +lbl_801D405C = .sbss:0x801D405C; // type:object size:0x4 data:4byte +lbl_801D4060 = .sbss:0x801D4060; // type:object size:0x4 data:4byte +lbl_801D4064 = .sbss:0x801D4064; // type:object size:0x4 data:4byte +lbl_801D4068 = .sbss:0x801D4068; // type:object size:0x4 data:4byte +NextCommandNumber = .sbss:0x801D406C; // type:object size:0x4 scope:local data:4byte +BootInfo = .sbss:0x801D4070; // type:object size:0x4 scope:local data:4byte +FstStart = .sbss:0x801D4074; // type:object size:0x4 scope:local data:4byte +FstStringStart = .sbss:0x801D4078; // type:object size:0x4 scope:local data:4byte +MaxEntryNum = .sbss:0x801D407C; // type:object size:0x4 scope:local data:4byte +lbl_801D4080 = .sbss:0x801D4080; // type:object size:0x4 data:4byte +__DVDLongFileNameFlag = .sbss:0x801D4084; // type:object size:0x4 scope:global data:4byte +__DVDThreadQueue = .sbss:0x801D4088; // type:object size:0x8 scope:global +executing = .sbss:0x801D4090; // type:object size:0x4 scope:local data:4byte +currID = .sbss:0x801D4094; // type:object size:0x4 scope:local data:4byte +bootInfo = .sbss:0x801D4098; // type:object size:0x4 scope:local data:4byte +PauseFlag = .sbss:0x801D409C; // type:object size:0x4 scope:local data:4byte +PausingFlag = .sbss:0x801D40A0; // type:object size:0x4 scope:local data:4byte +lbl_801D40A4 = .sbss:0x801D40A4; // type:object size:0x4 data:4byte +FatalErrorFlag = .sbss:0x801D40A8; // type:object size:0x4 scope:local data:4byte +CurrCommand = .sbss:0x801D40AC; // type:object size:0x4 scope:local data:4byte +lbl_801D40B0 = .sbss:0x801D40B0; // type:object size:0x4 data:4byte +lbl_801D40B4 = .sbss:0x801D40B4; // type:object size:0x4 data:4byte +ResumeFromHere = .sbss:0x801D40B8; // type:object size:0x4 scope:local data:4byte +CancelLastError = .sbss:0x801D40BC; // type:object size:0x4 scope:local data:4byte +lbl_801D40C0 = .sbss:0x801D40C0; // type:object size:0x4 data:4byte +lbl_801D40C4 = .sbss:0x801D40C4; // type:object size:0x4 data:4byte +ResetRequired = .sbss:0x801D40C8; // type:object size:0x4 scope:local data:4byte +FirstTimeInBootrom = .sbss:0x801D40CC; // type:object size:0x4 scope:local data:4byte +DVDInitialized = .sbss:0x801D40D0; // type:object size:0x4 scope:local data:4byte +lbl_801D40D4 = .sbss:0x801D40D4; // type:object size:0x4 data:4byte +lbl_801D40D8 = .sbss:0x801D40D8; // type:object size:0x4 data:4byte +bb2 = .sbss:0x801D40DC; // type:object size:0x4 scope:local data:4byte +idTmp = .sbss:0x801D40E0; // type:object size:0x4 scope:local data:4byte +lbl_801D40E8 = .sbss:0x801D40E8; // type:object size:0x4 data:4byte +lbl_801D40EC = .sbss:0x801D40EC; // type:object size:0x4 data:4byte +lbl_801D40F0 = .sbss:0x801D40F0; // type:object size:0x8 +lbl_801D40F8 = .sbss:0x801D40F8; // type:object size:0x4 data:4byte +lbl_801D40FC = .sbss:0x801D40FC; // type:object size:0x4 data:4byte +lbl_801D4100 = .sbss:0x801D4100; // type:object size:0x4 data:4byte +lbl_801D4104 = .sbss:0x801D4104; // type:object size:0x2 data:2byte +lbl_801D4106 = .sbss:0x801D4106; // type:object size:0x2 data:2byte +lbl_801D4108 = .sbss:0x801D4108; // type:object size:0x8 data:4byte +lbl_801D4110 = .sbss:0x801D4110; // type:object size:0x4 data:4byte +lbl_801D4114 = .sbss:0x801D4114; // type:object size:0x4 data:4byte +lbl_801D4118 = .sbss:0x801D4118; // type:object size:0x8 data:4byte +lbl_801D4120 = .sbss:0x801D4120; // type:object size:0x4 data:4byte +lbl_801D4124 = .sbss:0x801D4124; // type:object size:0x4 data:4byte +lbl_801D4128 = .sbss:0x801D4128; // type:object size:0x4 data:4byte +CurrTvMode = .sbss:0x801D412C; // type:object size:0x4 scope:local data:4byte +lbl_801D4130 = .sbss:0x801D4130; // type:object size:0x4 data:4byte +lbl_801D4134 = .sbss:0x801D4134; // type:object size:0x4 data:4byte +lbl_801D4138 = .sbss:0x801D4138; // type:object size:0x8 data:4byte +lbl_801D4140 = .sbss:0x801D4140; // type:object size:0x8 data:4byte +lbl_801D4148 = .sbss:0x801D4148; // type:object size:0x4 data:4byte +lbl_801D414C = .sbss:0x801D414C; // type:object size:0x4 data:4byte +lbl_801D4150 = .sbss:0x801D4150; // type:object size:0x4 data:4byte +lbl_801D4154 = .sbss:0x801D4154; // type:object size:0x4 data:4byte +lbl_801D4158 = .sbss:0x801D4158; // type:object size:0x4 data:4byte +lbl_801D415C = .sbss:0x801D415C; // type:object size:0x4 data:4byte +lbl_801D4160 = .sbss:0x801D4160; // type:object size:0x4 data:4byte +lbl_801D4164 = .sbss:0x801D4164; // type:object size:0x4 data:4byte +lbl_801D4168 = .sbss:0x801D4168; // type:object size:0x4 data:4byte +lbl_801D416C = .sbss:0x801D416C; // type:object size:0x4 data:4byte +lbl_801D4170 = .sbss:0x801D4170; // type:object size:0x4 data:4byte +lbl_801D4174 = .sbss:0x801D4174; // type:object size:0x4 data:4byte +lbl_801D4178 = .sbss:0x801D4178; // type:object size:0x4 data:4byte +lbl_801D417C = .sbss:0x801D417C; // type:object size:0x4 data:4byte +lbl_801D4180 = .sbss:0x801D4180; // type:object size:0x4 data:4byte +lbl_801D4184 = .sbss:0x801D4184; // type:object size:0x4 data:4byte +lbl_801D4188 = .sbss:0x801D4188; // type:object size:0x4 data:4byte +lbl_801D418C = .sbss:0x801D418C; // type:object size:0x4 data:4byte +lbl_801D4190 = .sbss:0x801D4190; // type:object size:0x4 data:4byte +lbl_801D4194 = .sbss:0x801D4194; // type:object size:0x4 data:4byte +lbl_801D4198 = .sbss:0x801D4198; // type:object size:0x4 data:4byte +lbl_801D419C = .sbss:0x801D419C; // type:object size:0x4 data:4byte +lbl_801D41A0 = .sbss:0x801D41A0; // type:object size:0x4 data:4byte +lbl_801D41A4 = .sbss:0x801D41A4; // type:object size:0x4 data:4byte +lbl_801D41A8 = .sbss:0x801D41A8; // type:object size:0x4 data:4byte +lbl_801D41AC = .sbss:0x801D41AC; // type:object size:0x4 data:4byte +lbl_801D41B0 = .sbss:0x801D41B0; // type:object size:0x4 data:4byte +lbl_801D41B4 = .sbss:0x801D41B4; // type:object size:0x4 data:4byte +lbl_801D41B8 = .sbss:0x801D41B8; // type:object size:0x4 data:4byte +lbl_801D41BC = .sbss:0x801D41BC; // type:object size:0x4 data:4byte +lbl_801D41C0 = .sbss:0x801D41C0; // type:object size:0x4 data:4byte +lbl_801D41C4 = .sbss:0x801D41C4; // type:object size:0x4 data:4byte +lbl_801D41C8 = .sbss:0x801D41C8; // type:object size:0x4 data:4byte +__PADSpec = .sbss:0x801D41CC; // type:object size:0x4 scope:global data:4byte +lbl_801D41D0 = .sbss:0x801D41D0; // type:object size:0x4 data:4byte +lbl_801D41D4 = .sbss:0x801D41D4; // type:object size:0x4 data:4byte +lbl_801D41D8 = .sbss:0x801D41D8; // type:object size:0x4 data:4byte +lbl_801D41DC = .sbss:0x801D41DC; // type:object size:0x4 data:4byte +lbl_801D41E0 = .sbss:0x801D41E0; // type:object size:0x8 data:4byte +lbl_801D41E8 = .sbss:0x801D41E8; // type:object size:0x4 data:4byte +lbl_801D41EC = .sbss:0x801D41EC; // type:object size:0x4 data:4byte +lbl_801D41F0 = .sbss:0x801D41F0; // type:object size:0x4 data:4byte +lbl_801D41F4 = .sbss:0x801D41F4; // type:object size:0x4 data:4byte +lbl_801D41F8 = .sbss:0x801D41F8; // type:object size:0x4 data:4byte +lbl_801D41FC = .sbss:0x801D41FC; // type:object size:0x4 data:4byte +lbl_801D4200 = .sbss:0x801D4200; // type:object size:0x4 data:4byte +lbl_801D4204 = .sbss:0x801D4204; // type:object size:0x4 data:4byte +lbl_801D4208 = .sbss:0x801D4208; // type:object size:0x4 data:4byte +lbl_801D420C = .sbss:0x801D420C; // type:object size:0x4 data:4byte +lbl_801D4210 = .sbss:0x801D4210; // type:object size:0x4 data:4byte +lbl_801D4214 = .sbss:0x801D4214; // type:object size:0x4 data:4byte +lbl_801D4218 = .sbss:0x801D4218; // type:object size:0x4 data:4byte +lbl_801D421C = .sbss:0x801D421C; // type:object size:0x4 data:4byte +lbl_801D4220 = .sbss:0x801D4220; // type:object size:0x4 data:4byte +lbl_801D4224 = .sbss:0x801D4224; // type:object size:0x4 data:4byte +lbl_801D4228 = .sbss:0x801D4228; // type:object size:0x4 data:4byte +lbl_801D422C = .sbss:0x801D422C; // type:object size:0x4 data:4byte +lbl_801D4230 = .sbss:0x801D4230; // type:object size:0x4 data:4byte +lbl_801D4234 = .sbss:0x801D4234; // type:object size:0x4 data:4byte +lbl_801D4238 = .sbss:0x801D4238; // type:object size:0x4 data:4byte +lbl_801D423C = .sbss:0x801D423C; // type:object size:0x4 data:4byte +lbl_801D4240 = .sbss:0x801D4240; // type:object size:0x4 data:4byte +lbl_801D4244 = .sbss:0x801D4244; // type:object size:0x4 data:4byte +lbl_801D4248 = .sbss:0x801D4248; // type:object size:0x4 data:4byte +lbl_801D424C = .sbss:0x801D424C; // type:object size:0x4 data:4byte +lbl_801D4250 = .sbss:0x801D4250; // type:object size:0x4 data:4byte +lbl_801D4254 = .sbss:0x801D4254; // type:object size:0x4 data:4byte +lbl_801D4258 = .sbss:0x801D4258; // type:object size:0x8 data:4byte +lbl_801D4260 = .sbss:0x801D4260; // type:object size:0x4 data:4byte +lbl_801D4264 = .sbss:0x801D4264; // type:object size:0x4 data:4byte +lbl_801D4268 = .sbss:0x801D4268; // type:object size:0x4 data:4byte +lbl_801D426C = .sbss:0x801D426C; // type:object size:0x4 data:4byte +lbl_801D4270 = .sbss:0x801D4270; // type:object size:0x4 data:4byte +lbl_801D4274 = .sbss:0x801D4274; // type:object size:0x4 data:4byte +__piReg = .sbss:0x801D4278; // type:object size:0x4 scope:global data:4byte +__cpReg = .sbss:0x801D427C; // type:object size:0x4 scope:global data:4byte +__peReg = .sbss:0x801D4280; // type:object size:0x4 scope:global data:4byte +__memReg = .sbss:0x801D4284; // type:object size:0x4 scope:global data:4byte +lbl_801D4288 = .sbss:0x801D4288; // type:object size:0x4 data:4byte +lbl_801D428C = .sbss:0x801D428C; // type:object size:0x4 data:4byte +lbl_801D4290 = .sbss:0x801D4290; // type:object size:0x4 data:4byte +lbl_801D4294 = .sbss:0x801D4294; // type:object size:0x1 data:byte +lbl_801D4298 = .sbss:0x801D4298; // type:object size:0x4 data:4byte +lbl_801D429C = .sbss:0x801D429C; // type:object size:0x4 data:4byte +lbl_801D42A0 = .sbss:0x801D42A0; // type:object size:0x8 data:4byte +lbl_801D42A8 = .sbss:0x801D42A8; // type:object size:0x4 data:4byte +lbl_801D42AC = .sbss:0x801D42AC; // type:object size:0x4 data:4byte +lbl_801D42B0 = .sbss:0x801D42B0; // type:object size:0x1 data:byte +lbl_801D42B4 = .sbss:0x801D42B4; // type:object size:0xC +lbl_801D42C0 = .sbss:0x801D42C0; // type:object size:0x8 data:4byte +lbl_801D42C8 = .sbss:0x801D42C8; // type:object size:0x4 data:4byte +lbl_801D42CC = .sbss:0x801D42CC; // type:object size:0x4 data:4byte +lbl_801D42D0 = .sbss:0x801D42D0; // type:object size:0x4 data:4byte +lbl_801D42D4 = .sbss:0x801D42D4; // type:object size:0x4 data:4byte +lbl_801D42D8 = .sbss:0x801D42D8; // type:object size:0x4 +cmdTypeAndStatus$371 = .sbss:0x801D42DC; // type:object size:0x4 scope:local +lbl_801D42E0 = .sbss:0x801D42E0; // type:object size:0x8 data:4byte +SamplingRate = .sbss:0x801D42E8; // type:object size:0x4 scope:local data:4byte +lbl_801D4300 = .sbss:0x801D4300; // type:object size:0x20 data:4byte +lbl_801D4320 = .sbss:0x801D4320; // type:object size:0x20 data:4byte +lbl_801D4340 = .sbss:0x801D4340; // type:object size:0x20 data:4byte +lbl_801D4360 = .sbss:0x801D4360; // type:object size:0x20 data:4byte +lbl_801D4380 = .sbss:0x801D4380; // type:object size:0x20 data:4byte +lbl_801D43A0 = .sbss:0x801D43A0; // type:object size:0x4 data:4byte +lbl_801D43A4 = .sbss:0x801D43A4; // type:object size:0x4 data:4byte +lbl_801D43A8 = .sbss:0x801D43A8; // type:object size:0x4 data:4byte +lbl_801D43AC = .sbss:0x801D43AC; // type:object size:0x14 data:4byte +lbl_801D43C0 = .sbss:0x801D43C0; // type:object size:0x20 data:4byte +lbl_801D43E0 = .sbss:0x801D43E0; // type:object size:0x20 data:4byte +lbl_801D4400 = .sbss:0x801D4400; // type:object size:0x4 data:4byte +lbl_801D4404 = .sbss:0x801D4404; // type:object size:0x4 data:4byte +lbl_801D4408 = .sbss:0x801D4408; // type:object size:0x4 data:4byte +lbl_801D440C = .sbss:0x801D440C; // type:object size:0x4 data:4byte +lbl_801D4410 = .sbss:0x801D4410; // type:object size:0x4 data:4byte +lbl_801D4414 = .sbss:0x801D4414; // type:object size:0x4 data:4byte +__global_destructor_chain = .sbss:0x801D4418; // type:object size:0x4 scope:global data:4byte +__aborting = .sbss:0x801D4420; // type:object size:0x4 scope:global data:4byte +__atexit_curr_func = .sbss:0x801D4424; // type:object size:0x4 scope:local data:4byte +__stdio_exit = .sbss:0x801D4428; // type:object size:0x4 scope:global data:4byte +__console_exit = .sbss:0x801D442C; // type:object size:0x4 scope:global data:4byte +lbl_801D4430 = .sbss:0x801D4430; // type:object size:0x8 data:byte +lbl_801D4438 = .sbss:0x801D4438; // type:object size:0x8 data:4byte +lbl_801D4440 = .sbss:0x801D4440; // type:object size:0x8 data:4byte +lbl_801D4448 = .sbss:0x801D4448; // type:object size:0x4 data:4byte +lbl_801D444C = .sbss:0x801D444C; // type:object size:0x1 data:byte +lbl_801D4450 = .sbss:0x801D4450; // type:object size:0x4 data:4byte +lbl_801D4454 = .sbss:0x801D4454; // type:object size:0x4 data:4byte +lbl_801D4458 = .sbss:0x801D4458; // type:object size:0x4 data:4byte +lbl_801D445C = .sbss:0x801D445C; // type:object size:0x4 data:4byte +lbl_801D4460 = .sbss:0x801D4460; // type:object size:0x4 data:4byte +lbl_801D4464 = .sbss:0x801D4464; // type:object size:0x4 data:4byte +lbl_801D4468 = .sbss:0x801D4468; // type:object size:0x1 data:byte +lbl_801D4469 = .sbss:0x801D4469; // type:object size:0x1 data:byte +lbl_801D446C = .sbss:0x801D446C; // type:object size:0x8 data:byte +lbl_801D4474 = .sbss:0x801D4474; // type:object size:0x8 data:byte +lbl_801D447C = .sbss:0x801D447C; // type:object size:0x8 data:byte +lbl_801D4484 = .sbss:0x801D4484; // type:object size:0x8 data:byte +lbl_801D448C = .sbss:0x801D448C; // type:object size:0x4 data:4byte +lbl_801D4490 = .sbss:0x801D4490; // type:object size:0x4 data:4byte +lbl_801D4494 = .sbss:0x801D4494; // type:object size:0x4 data:4byte +lbl_801D4498 = .sbss:0x801D4498; // type:object size:0x4 data:4byte +lbl_801D449C = .sbss:0x801D449C; // type:object size:0x4 data:4byte +lbl_801D44A0 = .sbss:0x801D44A0; // type:object size:0x8 data:byte +lbl_801D44A8 = .sbss:0x801D44A8; // type:object size:0x4 data:4byte +lbl_801D44AC = .sbss:0x801D44AC; // type:object size:0x4 data:4byte +lbl_801D44B0 = .sbss:0x801D44B0; // type:object size:0x4 data:4byte +lbl_801D44B4 = .sbss:0x801D44B4; // type:object size:0x1 data:byte +lbl_801D44B5 = .sbss:0x801D44B5; // type:object size:0x1 data:byte +lbl_801D44B8 = .sbss:0x801D44B8; // type:object size:0x4 data:4byte +lbl_801D44BC = .sbss:0x801D44BC; // type:object size:0x4 data:4byte +lbl_801D44C0 = .sbss:0x801D44C0; // type:object size:0x8 +lbl_801D44C8 = .sbss:0x801D44C8; // type:object size:0x4 data:4byte +lbl_801D44CC = .sbss:0x801D44CC; // type:object size:0x8 +lbl_801D44D4 = .sbss:0x801D44D4; // type:object size:0x4 data:4byte +lbl_801D44D8 = .sbss:0x801D44D8; // type:object size:0x4 data:4byte +lbl_801D44DC = .sbss:0x801D44DC; // type:object size:0x4 data:4byte +lbl_801D44E0 = .sbss:0x801D44E0; // type:object size:0x8 +lbl_801D44E8 = .sbss:0x801D44E8; // type:object size:0x4 data:4byte +lbl_801D44EC = .sbss:0x801D44EC; // type:object size:0x4 data:4byte +lbl_801D44F0 = .sbss:0x801D44F0; // type:object size:0x2 data:2byte +lbl_801D44F2 = .sbss:0x801D44F2; // type:object size:0x2 data:2byte +lbl_801D44F4 = .sbss:0x801D44F4; // type:object size:0x2 data:2byte +lbl_801D44F6 = .sbss:0x801D44F6; // type:object size:0x2 data:2byte +lbl_801D44F8 = .sbss:0x801D44F8; // type:object size:0x2 data:2byte +lbl_801D44FA = .sbss:0x801D44FA; // type:object size:0x6 data:2byte +lbl_801D4500 = .sbss:0x801D4500; // type:object size:0x8 data:4byte +lbl_801D4508 = .sbss:0x801D4508; // type:object size:0x4 data:4byte +lbl_801D450C = .sbss:0x801D450C; // type:object size:0x4 data:4byte +lbl_801D4510 = .sbss:0x801D4510; // type:object size:0x4 data:4byte +lbl_801D4514 = .sbss:0x801D4514; // type:object size:0x4 data:4byte +lbl_801D4518 = .sbss:0x801D4518; // type:object size:0x8 data:byte +lbl_801D4520 = .sbss:0x801D4520; // type:object size:0x4 data:4byte +lbl_801D4524 = .sbss:0x801D4524; // type:object size:0x4 data:4byte +lbl_801D4528 = .sbss:0x801D4528; // type:object size:0x4 data:4byte +lbl_801D452C = .sbss:0x801D452C; // type:object size:0x2 data:2byte +lbl_801D452E = .sbss:0x801D452E; // type:object size:0x1 data:byte +lbl_801D452F = .sbss:0x801D452F; // type:object size:0x1 data:byte +lbl_801D4530 = .sbss:0x801D4530; // type:object size:0x1 data:byte +lbl_801D4531 = .sbss:0x801D4531; // type:object size:0x7 data:byte +lbl_801D4538 = .sbss:0x801D4538; // type:object size:0x8 data:2byte +lbl_801D4540 = .sbss:0x801D4540; // type:object size:0x4 data:4byte +lbl_801D4544 = .sbss:0x801D4544; // type:object size:0x4 data:4byte +lbl_801D4548 = .sbss:0x801D4548; // type:object size:0x4 data:4byte +lbl_801D454C = .sbss:0x801D454C; // type:object size:0x2 data:2byte +lbl_801D4550 = .sbss:0x801D4550; // type:object size:0x4 data:4byte +lbl_801D4554 = .sbss:0x801D4554; // type:object size:0x4 data:4byte +lbl_801D4558 = .sbss:0x801D4558; // type:object size:0x4 data:4byte +lbl_801D455C = .sbss:0x801D455C; // type:object size:0x2 data:2byte +lbl_801D4560 = .sbss:0x801D4560; // type:object size:0x4 data:4byte +lbl_801D4564 = .sbss:0x801D4564; // type:object size:0x4 data:4byte +lbl_801D4568 = .sbss:0x801D4568; // type:object size:0x4 data:4byte +lbl_801D456C = .sbss:0x801D456C; // type:object size:0x4 data:4byte +lbl_801D4570 = .sbss:0x801D4570; // type:object size:0x4 data:4byte +lbl_801D4574 = .sbss:0x801D4574; // type:object size:0x4 data:4byte +lbl_801D4578 = .sbss:0x801D4578; // type:object size:0x8 data:4byte +lbl_801D4580 = .sbss:0x801D4580; // type:object size:0x1 data:byte +lbl_801D4581 = .sbss:0x801D4581; // type:object size:0x1 data:byte +lbl_801D4582 = .sbss:0x801D4582; // type:object size:0x1 data:byte +lbl_801D4583 = .sbss:0x801D4583; // type:object size:0x1 data:byte +lbl_801D4584 = .sbss:0x801D4584; // type:object size:0x1 data:byte +lbl_801D4585 = .sbss:0x801D4585; // type:object size:0x1 data:byte +lbl_801D4588 = .sbss:0x801D4588; // type:object size:0x4 data:4byte +lbl_801D458C = .sbss:0x801D458C; // type:object size:0x4 data:4byte +lbl_801D4590 = .sbss:0x801D4590; // type:object size:0x4 data:4byte +lbl_801D4594 = .sbss:0x801D4594; // type:object size:0x4 data:4byte +lbl_801D4598 = .sbss:0x801D4598; // type:object size:0x4 data:4byte +lbl_801D459C = .sbss:0x801D459C; // type:object size:0x1 data:byte +lbl_801D45A0 = .sbss:0x801D45A0; // type:object size:0x1 data:byte +lbl_801D45A4 = .sbss:0x801D45A4; // type:object size:0x4 data:4byte +lbl_801D45A8 = .sbss:0x801D45A8; // type:object size:0x4 data:4byte +lbl_801D45AC = .sbss:0x801D45AC; // type:object size:0x1 data:byte +lbl_801D45AD = .sbss:0x801D45AD; // type:object size:0x1 data:byte +lbl_801D45AE = .sbss:0x801D45AE; // type:object size:0x1 data:byte +lbl_801D45AF = .sbss:0x801D45AF; // type:object size:0x1 data:byte +lbl_801D45B0 = .sbss:0x801D45B0; // type:object size:0x4 data:4byte +lbl_801D45B4 = .sbss:0x801D45B4; // type:object size:0x4 data:4byte +lbl_801D45B8 = .sbss:0x801D45B8; // type:object size:0x4 data:4byte +lbl_801D45BC = .sbss:0x801D45BC; // type:object size:0x4 data:4byte +lbl_801D45C0 = .sbss:0x801D45C0; // type:object size:0x4 data:4byte +lbl_801D45C4 = .sbss:0x801D45C4; // type:object size:0x4 data:4byte +lbl_801D45C8 = .sbss:0x801D45C8; // type:object size:0x4 data:4byte +lbl_801D45CC = .sbss:0x801D45CC; // type:object size:0x4 data:4byte +lbl_801D45D0 = .sbss:0x801D45D0; // type:object size:0x4 data:4byte +lbl_801D45D4 = .sbss:0x801D45D4; // type:object size:0x2 data:2byte +lbl_801D45D8 = .sbss:0x801D45D8; // type:object size:0x4 data:4byte +lbl_801D45DC = .sbss:0x801D45DC; // type:object size:0x4 data:4byte +lbl_801D45E0 = .sbss:0x801D45E0; // type:object size:0x4 data:4byte +lbl_801D45E4 = .sbss:0x801D45E4; // type:object size:0x4 data:4byte +lbl_801D45E8 = .sbss:0x801D45E8; // type:object size:0x4 data:4byte +lbl_801D45EC = .sbss:0x801D45EC; // type:object size:0x4 data:4byte +lbl_801D45F0 = .sbss:0x801D45F0; // type:object size:0x1 data:byte +lbl_801D45F4 = .sbss:0x801D45F4; // type:object size:0x4 data:4byte +lbl_801D45F8 = .sbss:0x801D45F8; // type:object size:0x4 data:4byte +lbl_801D45FC = .sbss:0x801D45FC; // type:object size:0x4 data:4byte +lbl_801D4600 = .sbss:0x801D4600; // type:object size:0x4 data:4byte +lbl_801D4604 = .sbss:0x801D4604; // type:object size:0x4 data:4byte +lbl_801D4608 = .sbss:0x801D4608; // type:object size:0x4 data:4byte +lbl_801D460C = .sbss:0x801D460C; // type:object size:0x1 data:byte +lbl_801D4620 = .sdata2:0x801D4620; // type:object size:0x8 data:double +lbl_801D4628 = .sdata2:0x801D4628; // type:object size:0x4 data:float +lbl_801D462C = .sdata2:0x801D462C; // type:object size:0x4 data:float +lbl_801D4630 = .sdata2:0x801D4630; // type:object size:0x8 data:double +lbl_801D4638 = .sdata2:0x801D4638; // type:object size:0x4 data:float +lbl_801D463C = .sdata2:0x801D463C; // type:object size:0x4 data:float +lbl_801D4640 = .sdata2:0x801D4640; // type:object size:0x4 data:float +lbl_801D4644 = .sdata2:0x801D4644; // type:object size:0x4 data:float +lbl_801D4648 = .sdata2:0x801D4648; // type:object size:0x4 data:float +lbl_801D464C = .sdata2:0x801D464C; // type:object size:0x4 data:float +lbl_801D4650 = .sdata2:0x801D4650; // type:object size:0x4 data:float +lbl_801D4654 = .sdata2:0x801D4654; // type:object size:0x4 data:float +lbl_801D4658 = .sdata2:0x801D4658; // type:object size:0x4 data:float +lbl_801D4660 = .sdata2:0x801D4660; // type:object size:0x8 data:double +lbl_801D4668 = .sdata2:0x801D4668; // type:object size:0x8 data:double +lbl_801D4670 = .sdata2:0x801D4670; // type:object size:0x4 data:float +lbl_801D4674 = .sdata2:0x801D4674; // type:object size:0x4 data:float +lbl_801D4678 = .sdata2:0x801D4678; // type:object size:0x4 data:float +lbl_801D467C = .sdata2:0x801D467C; // type:object size:0x4 data:float +lbl_801D4680 = .sdata2:0x801D4680; // type:object size:0x8 data:float +lbl_801D4688 = .sdata2:0x801D4688; // type:object size:0x4 data:float +lbl_801D468C = .sdata2:0x801D468C; // type:object size:0x4 data:float +lbl_801D4690 = .sdata2:0x801D4690; // type:object size:0x4 data:float +lbl_801D4698 = .sdata2:0x801D4698; // type:object size:0x8 data:double +lbl_801D46A0 = .sdata2:0x801D46A0; // type:object size:0x8 data:double +lbl_801D46A8 = .sdata2:0x801D46A8; // type:object size:0x8 data:float +lbl_801D46B0 = .sdata2:0x801D46B0; // type:object size:0x4 data:float +lbl_801D46B4 = .sdata2:0x801D46B4; // type:object size:0x4 data:float +lbl_801D46B8 = .sdata2:0x801D46B8; // type:object size:0x4 data:float +lbl_801D46BC = .sdata2:0x801D46BC; // type:object size:0x4 data:float +lbl_801D46C0 = .sdata2:0x801D46C0; // type:object size:0x4 data:float +lbl_801D46C4 = .sdata2:0x801D46C4; // type:object size:0x4 data:float +lbl_801D46C8 = .sdata2:0x801D46C8; // type:object size:0x4 data:float +lbl_801D46D0 = .sdata2:0x801D46D0; // type:object size:0x8 data:double +lbl_801D46D8 = .sdata2:0x801D46D8; // type:object size:0x8 data:double +lbl_801D46E0 = .sdata2:0x801D46E0; // type:object size:0x8 data:double +lbl_801D46E8 = .sdata2:0x801D46E8; // type:object size:0x4 data:float +lbl_801D46EC = .sdata2:0x801D46EC; // type:object size:0x4 data:float +lbl_801D46F0 = .sdata2:0x801D46F0; // type:object size:0x4 data:float +lbl_801D46F4 = .sdata2:0x801D46F4; // type:object size:0x4 data:float +lbl_801D46F8 = .sdata2:0x801D46F8; // type:object size:0x8 data:double +lbl_801D4700 = .sdata2:0x801D4700; // type:object size:0x8 data:double +lbl_801D4708 = .sdata2:0x801D4708; // type:object size:0x8 data:double +lbl_801D4710 = .sdata2:0x801D4710; // type:object size:0x8 data:double +lbl_801D4718 = .sdata2:0x801D4718; // type:object size:0x4 data:float +lbl_801D4720 = .sdata2:0x801D4720; // type:object size:0x8 data:double +lbl_801D4728 = .sdata2:0x801D4728; // type:object size:0x4 data:float +lbl_801D472C = .sdata2:0x801D472C; // type:object size:0x4 data:float +lbl_801D4730 = .sdata2:0x801D4730; // type:object size:0x4 data:float +lbl_801D4734 = .sdata2:0x801D4734; // type:object size:0x4 data:float +lbl_801D4738 = .sdata2:0x801D4738; // type:object size:0x8 data:double +lbl_801D4740 = .sdata2:0x801D4740; // type:object size:0x4 data:float +lbl_801D4744 = .sdata2:0x801D4744; // type:object size:0x4 data:float +lbl_801D4748 = .sdata2:0x801D4748; // type:object size:0x4 data:float +lbl_801D474C = .sdata2:0x801D474C; // type:object size:0x4 data:float +lbl_801D4750 = .sdata2:0x801D4750; // type:object size:0x8 data:double +lbl_801D4758 = .sdata2:0x801D4758; // type:object size:0x4 data:float +lbl_801D4760 = .sdata2:0x801D4760; // type:object size:0x8 data:double +lbl_801D4768 = .sdata2:0x801D4768; // type:object size:0x4 data:float +lbl_801D476C = .sdata2:0x801D476C; // type:object size:0x4 data:float +lbl_801D4770 = .sdata2:0x801D4770; // type:object size:0x4 data:float +lbl_801D4774 = .sdata2:0x801D4774; // type:object size:0x4 data:float +lbl_801D4778 = .sdata2:0x801D4778; // type:object size:0x4 data:float +lbl_801D4780 = .sdata2:0x801D4780; // type:object size:0x8 data:double +lbl_801D4788 = .sdata2:0x801D4788; // type:object size:0x8 data:double +lbl_801D4790 = .sdata2:0x801D4790; // type:object size:0x8 data:double +lbl_801D4798 = .sdata2:0x801D4798; // type:object size:0x8 data:double +lbl_801D47A0 = .sdata2:0x801D47A0; // type:object size:0x4 data:float +lbl_801D47A4 = .sdata2:0x801D47A4; // type:object size:0x4 data:float +lbl_801D47A8 = .sdata2:0x801D47A8; // type:object size:0x4 data:float +lbl_801D47AC = .sdata2:0x801D47AC; // type:object size:0x4 data:float +lbl_801D47B0 = .sdata2:0x801D47B0; // type:object size:0x4 data:float +lbl_801D47B4 = .sdata2:0x801D47B4; // type:object size:0x4 data:float +lbl_801D47B8 = .sdata2:0x801D47B8; // type:object size:0x4 data:float +lbl_801D47BC = .sdata2:0x801D47BC; // type:object size:0x4 data:float +lbl_801D47C0 = .sdata2:0x801D47C0; // type:object size:0x8 data:double +lbl_801D47C8 = .sdata2:0x801D47C8; // type:object size:0x8 data:float +lbl_801D47D0 = .sdata2:0x801D47D0; // type:object size:0x4 data:float +lbl_801D47D4 = .sdata2:0x801D47D4; // type:object size:0x4 data:float +lbl_801D47D8 = .sdata2:0x801D47D8; // type:object size:0x8 data:double +lbl_801D47E0 = .sdata2:0x801D47E0; // type:object size:0x8 data:double +lbl_801D47E8 = .sdata2:0x801D47E8; // type:object size:0x4 data:float +lbl_801D47EC = .sdata2:0x801D47EC; // type:object size:0x4 data:float +lbl_801D47F0 = .sdata2:0x801D47F0; // type:object size:0x4 data:float +lbl_801D47F8 = .sdata2:0x801D47F8; // type:object size:0x8 data:double +lbl_801D4800 = .sdata2:0x801D4800; // type:object size:0x8 data:double +lbl_801D4808 = .sdata2:0x801D4808; // type:object size:0x8 data:double +lbl_801D4810 = .sdata2:0x801D4810; // type:object size:0x4 data:float +lbl_801D4814 = .sdata2:0x801D4814; // type:object size:0x4 data:float +lbl_801D4818 = .sdata2:0x801D4818; // type:object size:0x8 data:float +lbl_801D4820 = .sdata2:0x801D4820; // type:object size:0x4 data:float +lbl_801D4824 = .sdata2:0x801D4824; // type:object size:0x4 data:float +lbl_801D4828 = .sdata2:0x801D4828; // type:object size:0x8 data:double +lbl_801D4830 = .sdata2:0x801D4830; // type:object size:0x4 data:float +lbl_801D4834 = .sdata2:0x801D4834; // type:object size:0x4 data:float +lbl_801D4838 = .sdata2:0x801D4838; // type:object size:0x4 data:float +lbl_801D483C = .sdata2:0x801D483C; // type:object size:0x4 data:float +lbl_801D4840 = .sdata2:0x801D4840; // type:object size:0x8 data:double +lbl_801D4848 = .sdata2:0x801D4848; // type:object size:0x4 data:float +lbl_801D4850 = .sdata2:0x801D4850; // type:object size:0x8 data:double +lbl_801D4858 = .sdata2:0x801D4858; // type:object size:0x8 data:double +lbl_801D4860 = .sdata2:0x801D4860; // type:object size:0x8 data:double +lbl_801D4868 = .sdata2:0x801D4868; // type:object size:0x4 data:float +lbl_801D4870 = .sdata2:0x801D4870; // type:object size:0x8 data:double +lbl_801D4878 = .sdata2:0x801D4878; // type:object size:0x8 data:double +lbl_801D4880 = .sdata2:0x801D4880; // type:object size:0x4 data:float +lbl_801D4888 = .sdata2:0x801D4888; // type:object size:0x8 data:double +lbl_801D4890 = .sdata2:0x801D4890; // type:object size:0x8 data:double +lbl_801D4898 = .sdata2:0x801D4898; // type:object size:0x8 data:double +lbl_801D48A0 = .sdata2:0x801D48A0; // type:object size:0x8 data:double +lbl_801D48A8 = .sdata2:0x801D48A8; // type:object size:0x4 data:float +lbl_801D48AC = .sdata2:0x801D48AC; // type:object size:0x4 data:float +lbl_801D48B0 = .sdata2:0x801D48B0; // type:object size:0x4 data:float +lbl_801D48B4 = .sdata2:0x801D48B4; // type:object size:0x4 data:float +lbl_801D48B8 = .sdata2:0x801D48B8; // type:object size:0x8 data:double +lbl_801D48C0 = .sdata2:0x801D48C0; // type:object size:0x4 data:float +lbl_801D48C8 = .sdata2:0x801D48C8; // type:object size:0x8 data:double +lbl_801D48D0 = .sdata2:0x801D48D0; // type:object size:0x8 data:double +lbl_801D48D8 = .sdata2:0x801D48D8; // type:object size:0x4 data:float +lbl_801D48E0 = .sdata2:0x801D48E0; // type:object size:0x8 data:double +lbl_801D48E8 = .sdata2:0x801D48E8; // type:object size:0x4 data:float +lbl_801D48EC = .sdata2:0x801D48EC; // type:object size:0x4 data:float +lbl_801D48F0 = .sdata2:0x801D48F0; // type:object size:0x4 data:float +lbl_801D48F4 = .sdata2:0x801D48F4; // type:object size:0x4 data:float +lbl_801D48F8 = .sdata2:0x801D48F8; // type:object size:0x8 data:double +lbl_801D4900 = .sdata2:0x801D4900; // type:object size:0x8 data:double +lbl_801D4908 = .sdata2:0x801D4908; // type:object size:0x4 data:float +lbl_801D490C = .sdata2:0x801D490C; // type:object size:0x4 data:float +lbl_801D4910 = .sdata2:0x801D4910; // type:object size:0x8 data:double +lbl_801D4918 = .sdata2:0x801D4918; // type:object size:0x4 data:float +lbl_801D491C = .sdata2:0x801D491C; // type:object size:0x4 data:float +lbl_801D4920 = .sdata2:0x801D4920; // type:object size:0x4 data:float +lbl_801D4924 = .sdata2:0x801D4924; // type:object size:0x4 data:float +lbl_801D4928 = .sdata2:0x801D4928; // type:object size:0x8 data:double +lbl_801D4930 = .sdata2:0x801D4930; // type:object size:0x8 data:double +lbl_801D4938 = .sdata2:0x801D4938; // type:object size:0x4 data:float +lbl_801D493C = .sdata2:0x801D493C; // type:object size:0x4 data:float +lbl_801D4940 = .sdata2:0x801D4940; // type:object size:0x4 data:float +lbl_801D4944 = .sdata2:0x801D4944; // type:object size:0x4 data:float +lbl_801D4948 = .sdata2:0x801D4948; // type:object size:0x4 data:float +lbl_801D494C = .sdata2:0x801D494C; // type:object size:0x4 data:float +lbl_801D4950 = .sdata2:0x801D4950; // type:object size:0x4 data:float +lbl_801D4954 = .sdata2:0x801D4954; // type:object size:0x4 data:float +lbl_801D4958 = .sdata2:0x801D4958; // type:object size:0x4 data:float +lbl_801D4960 = .sdata2:0x801D4960; // type:object size:0x8 data:double +lbl_801D4968 = .sdata2:0x801D4968; // type:object size:0x8 data:double +lbl_801D4970 = .sdata2:0x801D4970; // type:object size:0x4 data:float +lbl_801D4978 = .sdata2:0x801D4978; // type:object size:0x8 data:double +lbl_801D4980 = .sdata2:0x801D4980; // type:object size:0x8 data:double +lbl_801D4988 = .sdata2:0x801D4988; // type:object size:0x8 data:double +lbl_801D4990 = .sdata2:0x801D4990; // type:object size:0x4 data:float +lbl_801D4994 = .sdata2:0x801D4994; // type:object size:0x4 data:float +lbl_801D4998 = .sdata2:0x801D4998; // type:object size:0x4 data:float +lbl_801D49A0 = .sdata2:0x801D49A0; // type:object size:0x8 data:double +lbl_801D49A8 = .sdata2:0x801D49A8; // type:object size:0x4 data:float +lbl_801D49AC = .sdata2:0x801D49AC; // type:object size:0x4 data:float +lbl_801D49B0 = .sdata2:0x801D49B0; // type:object size:0x8 data:double +lbl_801D49B8 = .sdata2:0x801D49B8; // type:object size:0x8 data:double +lbl_801D49C0 = .sdata2:0x801D49C0; // type:object size:0x8 data:double +lbl_801D49C8 = .sdata2:0x801D49C8; // type:object size:0x8 data:double +lbl_801D49D0 = .sdata2:0x801D49D0; // type:object size:0x8 data:double +lbl_801D49D8 = .sdata2:0x801D49D8; // type:object size:0x8 data:double +lbl_801D49E0 = .sdata2:0x801D49E0; // type:object size:0x4 data:float +lbl_801D49E4 = .sdata2:0x801D49E4; // type:object size:0x4 data:float +lbl_801D49E8 = .sdata2:0x801D49E8; // type:object size:0x8 data:double +lbl_801D49F0 = .sdata2:0x801D49F0; // type:object size:0x4 data:float +lbl_801D49F4 = .sdata2:0x801D49F4; // type:object size:0x4 data:float +lbl_801D49F8 = .sdata2:0x801D49F8; // type:object size:0x4 data:float +lbl_801D49FC = .sdata2:0x801D49FC; // type:object size:0x4 data:float +lbl_801D4A00 = .sdata2:0x801D4A00; // type:object size:0x4 data:float +lbl_801D4A04 = .sdata2:0x801D4A04; // type:object size:0x4 data:float +lbl_801D4A08 = .sdata2:0x801D4A08; // type:object size:0x4 data:float +lbl_801D4A0C = .sdata2:0x801D4A0C; // type:object size:0x4 data:float +lbl_801D4A10 = .sdata2:0x801D4A10; // type:object size:0x4 data:float +lbl_801D4A14 = .sdata2:0x801D4A14; // type:object size:0x4 data:float +lbl_801D4A18 = .sdata2:0x801D4A18; // type:object size:0x4 data:float +lbl_801D4A1C = .sdata2:0x801D4A1C; // type:object size:0x4 data:float +lbl_801D4A20 = .sdata2:0x801D4A20; // type:object size:0x4 data:float +lbl_801D4A24 = .sdata2:0x801D4A24; // type:object size:0x4 data:float +lbl_801D4A28 = .sdata2:0x801D4A28; // type:object size:0x4 data:float +lbl_801D4A2C = .sdata2:0x801D4A2C; // type:object size:0x4 data:float +lbl_801D4A30 = .sdata2:0x801D4A30; // type:object size:0x4 data:float +lbl_801D4A34 = .sdata2:0x801D4A34; // type:object size:0x4 data:float +lbl_801D4A38 = .sdata2:0x801D4A38; // type:object size:0x8 data:double +lbl_801D4A40 = .sdata2:0x801D4A40; // type:object size:0x4 data:float +lbl_801D4A44 = .sdata2:0x801D4A44; // type:object size:0x4 data:float +lbl_801D4A48 = .sdata2:0x801D4A48; // type:object size:0x8 data:double +lbl_801D4A50 = .sdata2:0x801D4A50; // type:object size:0x8 data:double +lbl_801D4A58 = .sdata2:0x801D4A58; // type:object size:0x4 data:float +lbl_801D4A5C = .sdata2:0x801D4A5C; // type:object size:0x4 data:float +lbl_801D4A60 = .sdata2:0x801D4A60; // type:object size:0x8 data:double +lbl_801D4A68 = .sdata2:0x801D4A68; // type:object size:0x4 data:float +lbl_801D4A6C = .sdata2:0x801D4A6C; // type:object size:0x4 data:float +lbl_801D4A70 = .sdata2:0x801D4A70; // type:object size:0x4 data:float +lbl_801D4A74 = .sdata2:0x801D4A74; // type:object size:0x4 data:float +lbl_801D4A78 = .sdata2:0x801D4A78; // type:object size:0x4 data:float +lbl_801D4A80 = .sdata2:0x801D4A80; // type:object size:0x8 data:double +lbl_801D4A88 = .sdata2:0x801D4A88; // type:object size:0x4 data:float +lbl_801D4A90 = .sdata2:0x801D4A90; // type:object size:0x8 data:double +lbl_801D4A98 = .sdata2:0x801D4A98; // type:object size:0x4 data:float +lbl_801D4A9C = .sdata2:0x801D4A9C; // type:object size:0x4 data:float +lbl_801D4AA0 = .sdata2:0x801D4AA0; // type:object size:0x4 data:float +lbl_801D4AA4 = .sdata2:0x801D4AA4; // type:object size:0x4 data:float +lbl_801D4AA8 = .sdata2:0x801D4AA8; // type:object size:0x8 data:double +lbl_801D4AB0 = .sdata2:0x801D4AB0; // type:object size:0x4 data:float +lbl_801D4AB8 = .sdata2:0x801D4AB8; // type:object size:0x8 data:double +lbl_801D4AC0 = .sdata2:0x801D4AC0; // type:object size:0x8 data:double +lbl_801D4AC8 = .sdata2:0x801D4AC8; // type:object size:0x8 data:double +lbl_801D4AD0 = .sdata2:0x801D4AD0; // type:object size:0x4 data:float +lbl_801D4AD8 = .sdata2:0x801D4AD8; // type:object size:0x8 data:double +lbl_801D4AE0 = .sdata2:0x801D4AE0; // type:object size:0x4 data:float +lbl_801D4AE4 = .sdata2:0x801D4AE4; // type:object size:0x4 data:float +lbl_801D4AE8 = .sdata2:0x801D4AE8; // type:object size:0x4 data:float +lbl_801D4AEC = .sdata2:0x801D4AEC; // type:object size:0x4 data:float +lbl_801D4AF0 = .sdata2:0x801D4AF0; // type:object size:0x4 data:float +lbl_801D4AF4 = .sdata2:0x801D4AF4; // type:object size:0x4 data:float +lbl_801D4AF8 = .sdata2:0x801D4AF8; // type:object size:0x4 data:float +lbl_801D4AFC = .sdata2:0x801D4AFC; // type:object size:0x4 data:float +lbl_801D4B00 = .sdata2:0x801D4B00; // type:object size:0x8 data:double +lbl_801D4B08 = .sdata2:0x801D4B08; // type:object size:0x8 data:double +lbl_801D4B10 = .sdata2:0x801D4B10; // type:object size:0x8 data:double +lbl_801D4B18 = .sdata2:0x801D4B18; // type:object size:0x2 data:2byte +lbl_801D4B1A = .sdata2:0x801D4B1A; // type:object size:0x2 data:2byte +lbl_801D4B1C = .sdata2:0x801D4B1C; // type:object size:0x2 data:2byte +lbl_801D4B20 = .sdata2:0x801D4B20; // type:object size:0x4 data:float +lbl_801D4B24 = .sdata2:0x801D4B24; // type:object size:0x4 data:float +lbl_801D4B28 = .sdata2:0x801D4B28; // type:object size:0x4 data:float +lbl_801D4B2C = .sdata2:0x801D4B2C; // type:object size:0x4 data:float +lbl_801D4B30 = .sdata2:0x801D4B30; // type:object size:0x4 data:float +lbl_801D4B34 = .sdata2:0x801D4B34; // type:object size:0x4 data:float +lbl_801D4B38 = .sdata2:0x801D4B38; // type:object size:0x4 data:float +lbl_801D4B3C = .sdata2:0x801D4B3C; // type:object size:0x4 data:float +lbl_801D4B40 = .sdata2:0x801D4B40; // type:object size:0x4 data:float +lbl_801D4B44 = .sdata2:0x801D4B44; // type:object size:0x4 data:float +lbl_801D4B48 = .sdata2:0x801D4B48; // type:object size:0x8 data:double +lbl_801D4B50 = .sdata2:0x801D4B50; // type:object size:0x8 data:double +lbl_801D4B58 = .sdata2:0x801D4B58; // type:object size:0x4 data:float +lbl_801D4B5C = .sdata2:0x801D4B5C; // type:object size:0x4 data:float +lbl_801D4B60 = .sdata2:0x801D4B60; // type:object size:0x4 data:float +lbl_801D4B68 = .sdata2:0x801D4B68; // type:object size:0x8 data:double +lbl_801D4B70 = .sdata2:0x801D4B70; // type:object size:0x8 data:double +lbl_801D4B78 = .sdata2:0x801D4B78; // type:object size:0x4 data:float +lbl_801D4B7C = .sdata2:0x801D4B7C; // type:object size:0x4 data:float +lbl_801D4B80 = .sdata2:0x801D4B80; // type:object size:0x8 data:double +lbl_801D4B88 = .sdata2:0x801D4B88; // type:object size:0x4 data:float +lbl_801D4B8C = .sdata2:0x801D4B8C; // type:object size:0x4 data:float +lbl_801D4B90 = .sdata2:0x801D4B90; // type:object size:0x8 data:double +lbl_801D4B98 = .sdata2:0x801D4B98; // type:object size:0x4 data:float +lbl_801D4BA0 = .sdata2:0x801D4BA0; // type:object size:0x8 data:double +lbl_801D4BA8 = .sdata2:0x801D4BA8; // type:object size:0x4 data:float +lbl_801D4BAC = .sdata2:0x801D4BAC; // type:object size:0x4 data:float +lbl_801D4BB0 = .sdata2:0x801D4BB0; // type:object size:0x4 data:float +lbl_801D4BB4 = .sdata2:0x801D4BB4; // type:object size:0x4 data:float +lbl_801D4BB8 = .sdata2:0x801D4BB8; // type:object size:0x8 data:double +lbl_801D4BC0 = .sdata2:0x801D4BC0; // type:object size:0x4 data:float +lbl_801D4BC4 = .sdata2:0x801D4BC4; // type:object size:0x4 data:float +lbl_801D4BC8 = .sdata2:0x801D4BC8; // type:object size:0x4 data:float +lbl_801D4BCC = .sdata2:0x801D4BCC; // type:object size:0x4 data:float +lbl_801D4BD0 = .sdata2:0x801D4BD0; // type:object size:0x4 data:float +lbl_801D4BD8 = .sdata2:0x801D4BD8; // type:object size:0x8 data:double +lbl_801D4BE0 = .sdata2:0x801D4BE0; // type:object size:0x4 data:float +lbl_801D4BE4 = .sdata2:0x801D4BE4; // type:object size:0x4 data:float +lbl_801D4BE8 = .sdata2:0x801D4BE8; // type:object size:0x4 data:float +lbl_801D4BEC = .sdata2:0x801D4BEC; // type:object size:0x4 data:float +lbl_801D4BF0 = .sdata2:0x801D4BF0; // type:object size:0x4 data:float +lbl_801D4BF4 = .sdata2:0x801D4BF4; // type:object size:0x4 data:float +lbl_801D4BF8 = .sdata2:0x801D4BF8; // type:object size:0x8 data:double +lbl_801D4C00 = .sdata2:0x801D4C00; // type:object size:0x4 data:float +lbl_801D4C08 = .sdata2:0x801D4C08; // type:object size:0x8 data:double +lbl_801D4C10 = .sdata2:0x801D4C10; // type:object size:0x4 data:float +lbl_801D4C18 = .sdata2:0x801D4C18; // type:object size:0x8 data:double +lbl_801D4C20 = .sdata2:0x801D4C20; // type:object size:0x4 data:float +lbl_801D4C24 = .sdata2:0x801D4C24; // type:object size:0x4 data:float +lbl_801D4C28 = .sdata2:0x801D4C28; // type:object size:0x4 data:float +lbl_801D4C30 = .sdata2:0x801D4C30; // type:object size:0x8 data:double +lbl_801D4C38 = .sdata2:0x801D4C38; // type:object size:0x8 data:double +lbl_801D4C40 = .sdata2:0x801D4C40; // type:object size:0x8 data:double +lbl_801D4C48 = .sdata2:0x801D4C48; // type:object size:0x4 data:float +lbl_801D4C50 = .sdata2:0x801D4C50; // type:object size:0x8 data:double +lbl_801D4C58 = .sdata2:0x801D4C58; // type:object size:0x8 data:double +lbl_801D4C60 = .sdata2:0x801D4C60; // type:object size:0x8 data:double +lbl_801D4C68 = .sdata2:0x801D4C68; // type:object size:0x8 data:double +lbl_801D4C70 = .sdata2:0x801D4C70; // type:object size:0x8 data:double +lbl_801D4C78 = .sdata2:0x801D4C78; // type:object size:0x8 data:double +lbl_801D4C80 = .sdata2:0x801D4C80; // type:object size:0x8 data:double +lbl_801D4C88 = .sdata2:0x801D4C88; // type:object size:0x8 data:double +lbl_801D4C90 = .sdata2:0x801D4C90; // type:object size:0x8 data:double +lbl_801D4C98 = .sdata2:0x801D4C98; // type:object size:0x4 data:float +lbl_801D4C9C = .sdata2:0x801D4C9C; // type:object size:0x4 data:float +lbl_801D4CA0 = .sdata2:0x801D4CA0; // type:object size:0x4 data:float +lbl_801D4CA4 = .sdata2:0x801D4CA4; // type:object size:0x4 data:float +lbl_801D4CA8 = .sdata2:0x801D4CA8; // type:object size:0x8 data:double +lbl_801D4CB0 = .sdata2:0x801D4CB0; // type:object size:0x4 data:float +lbl_801D4CB8 = .sdata2:0x801D4CB8; // type:object size:0x8 data:double +lbl_801D4CC0 = .sdata2:0x801D4CC0; // type:object size:0x8 data:double +lbl_801D4CC8 = .sdata2:0x801D4CC8; // type:object size:0x4 data:float +lbl_801D4CCC = .sdata2:0x801D4CCC; // type:object size:0x4 data:float +lbl_801D4CD0 = .sdata2:0x801D4CD0; // type:object size:0x8 data:double +lbl_801D4CD8 = .sdata2:0x801D4CD8; // type:object size:0x4 data:float +lbl_801D4CDC = .sdata2:0x801D4CDC; // type:object size:0x4 data:float +lbl_801D4CE0 = .sdata2:0x801D4CE0; // type:object size:0x4 data:float +lbl_801D4CE4 = .sdata2:0x801D4CE4; // type:object size:0x4 data:float +lbl_801D4CE8 = .sdata2:0x801D4CE8; // type:object size:0x4 data:float +lbl_801D4CEC = .sdata2:0x801D4CEC; // type:object size:0x4 data:float +lbl_801D4CF0 = .sdata2:0x801D4CF0; // type:object size:0x8 data:double +lbl_801D4CF8 = .sdata2:0x801D4CF8; // type:object size:0x4 data:float +lbl_801D4D00 = .sdata2:0x801D4D00; // type:object size:0x8 data:double +lbl_801D4D08 = .sdata2:0x801D4D08; // type:object size:0x8 data:double +lbl_801D4D10 = .sdata2:0x801D4D10; // type:object size:0x4 data:float +lbl_801D4D18 = .sdata2:0x801D4D18; // type:object size:0x8 data:double +lbl_801D4D20 = .sdata2:0x801D4D20; // type:object size:0x4 data:float +lbl_801D4D24 = .sdata2:0x801D4D24; // type:object size:0x4 data:float +lbl_801D4D28 = .sdata2:0x801D4D28; // type:object size:0x8 data:double +lbl_801D4D30 = .sdata2:0x801D4D30; // type:object size:0x8 data:double +lbl_801D4D38 = .sdata2:0x801D4D38; // type:object size:0x4 data:float +lbl_801D4D3C = .sdata2:0x801D4D3C; // type:object size:0x4 data:float +lbl_801D4D40 = .sdata2:0x801D4D40; // type:object size:0x4 data:float +lbl_801D4D48 = .sdata2:0x801D4D48; // type:object size:0x8 data:double +lbl_801D4D50 = .sdata2:0x801D4D50; // type:object size:0x4 data:float +lbl_801D4D54 = .sdata2:0x801D4D54; // type:object size:0x4 data:float +lbl_801D4D58 = .sdata2:0x801D4D58; // type:object size:0x4 data:float +lbl_801D4D5C = .sdata2:0x801D4D5C; // type:object size:0x4 data:float +lbl_801D4D60 = .sdata2:0x801D4D60; // type:object size:0x8 data:double +lbl_801D4D68 = .sdata2:0x801D4D68; // type:object size:0x4 data:float +lbl_801D4D70 = .sdata2:0x801D4D70; // type:object size:0x8 data:double +lbl_801D4D78 = .sdata2:0x801D4D78; // type:object size:0x4 data:float +lbl_801D4D80 = .sdata2:0x801D4D80; // type:object size:0x8 data:double +lbl_801D4D88 = .sdata2:0x801D4D88; // type:object size:0x8 data:float +lbl_801D4D90 = .sdata2:0x801D4D90; // type:object size:0x4 data:float +lbl_801D4D94 = .sdata2:0x801D4D94; // type:object size:0x4 data:float +lbl_801D4D98 = .sdata2:0x801D4D98; // type:object size:0x4 data:float +lbl_801D4D9C = .sdata2:0x801D4D9C; // type:object size:0x4 data:float +lbl_801D4DA0 = .sdata2:0x801D4DA0; // type:object size:0x8 data:double +lbl_801D4DA8 = .sdata2:0x801D4DA8; // type:object size:0x8 data:double +lbl_801D4DB0 = .sdata2:0x801D4DB0; // type:object size:0x8 data:double +lbl_801D4DB8 = .sdata2:0x801D4DB8; // type:object size:0x4 data:float +lbl_801D4DC0 = .sdata2:0x801D4DC0; // type:object size:0x8 data:double +lbl_801D4DC8 = .sdata2:0x801D4DC8; // type:object size:0x2 data:2byte +lbl_801D4DCA = .sdata2:0x801D4DCA; // type:object size:0x2 data:2byte +lbl_801D4DCC = .sdata2:0x801D4DCC; // type:object size:0x2 data:2byte +lbl_801D4DCE = .sdata2:0x801D4DCE; // type:object size:0x2 data:2byte +lbl_801D4DD0 = .sdata2:0x801D4DD0; // type:object size:0x1 data:byte +lbl_801D4DD1 = .sdata2:0x801D4DD1; // type:object size:0x1 data:byte +lbl_801D4DD2 = .sdata2:0x801D4DD2; // type:object size:0x1 data:byte +lbl_801D4DD3 = .sdata2:0x801D4DD3; // type:object size:0x1 data:byte +lbl_801D4DD4 = .sdata2:0x801D4DD4; // type:object size:0x1 data:byte +lbl_801D4DD5 = .sdata2:0x801D4DD5; // type:object size:0x1 data:byte +lbl_801D4DD6 = .sdata2:0x801D4DD6; // type:object size:0x1 data:byte +lbl_801D4DD7 = .sdata2:0x801D4DD7; // type:object size:0x1 data:byte +lbl_801D4DD8 = .sdata2:0x801D4DD8; // type:object size:0x1 data:byte +lbl_801D4DD9 = .sdata2:0x801D4DD9; // type:object size:0x1 data:byte +lbl_801D4DDA = .sdata2:0x801D4DDA; // type:object size:0x1 data:byte +lbl_801D4DDB = .sdata2:0x801D4DDB; // type:object size:0x1 data:byte +lbl_801D4DDC = .sdata2:0x801D4DDC; // type:object size:0x4 data:float +lbl_801D4DE0 = .sdata2:0x801D4DE0; // type:object size:0x4 data:float +lbl_801D4DE4 = .sdata2:0x801D4DE4; // type:object size:0x1 data:byte +lbl_801D4DE5 = .sdata2:0x801D4DE5; // type:object size:0x1 data:byte +lbl_801D4DE6 = .sdata2:0x801D4DE6; // type:object size:0x1 data:byte +lbl_801D4DE7 = .sdata2:0x801D4DE7; // type:object size:0x1 data:byte +lbl_801D4DE8 = .sdata2:0x801D4DE8; // type:object size:0x4 data:float +lbl_801D4DEC = .sdata2:0x801D4DEC; // type:object size:0x4 data:float +lbl_801D4DF0 = .sdata2:0x801D4DF0; // type:object size:0x8 data:float +lbl_801D4DF8 = .sdata2:0x801D4DF8; // type:object size:0x4 data:float +lbl_801D4DFC = .sdata2:0x801D4DFC; // type:object size:0x4 data:float +lbl_801D4E00 = .sdata2:0x801D4E00; // type:object size:0x8 data:float +lbl_801D4E08 = .sdata2:0x801D4E08; // type:object size:0x4 data:float +lbl_801D4E0C = .sdata2:0x801D4E0C; // type:object size:0x4 data:float +lbl_801D4E10 = .sdata2:0x801D4E10; // type:object size:0x4 data:float +lbl_801D4E14 = .sdata2:0x801D4E14; // type:object size:0x4 data:float +lbl_801D4E18 = .sdata2:0x801D4E18; // type:object size:0x4 data:float +lbl_801D4E1C = .sdata2:0x801D4E1C; // type:object size:0x4 data:float +lbl_801D4E20 = .sdata2:0x801D4E20; // type:object size:0x8 data:double +lbl_801D4E28 = .sdata2:0x801D4E28; // type:object size:0x8 data:double +lbl_801D4E30 = .sdata2:0x801D4E30; // type:object size:0x4 data:float +lbl_801D4E34 = .sdata2:0x801D4E34; // type:object size:0x4 data:float +lbl_801D4E38 = .sdata2:0x801D4E38; // type:object size:0x8 data:double +lbl_801D4E40 = .sdata2:0x801D4E40; // type:object size:0x8 data:double +lbl_801D4E48 = .sdata2:0x801D4E48; // type:object size:0x4 data:float +lbl_801D4E4C = .sdata2:0x801D4E4C; // type:object size:0x4 data:float +lbl_801D4E50 = .sdata2:0x801D4E50; // type:object size:0x4 data:float +lbl_801D4E54 = .sdata2:0x801D4E54; // type:object size:0x4 data:float +lbl_801D4E58 = .sdata2:0x801D4E58; // type:object size:0x4 data:float +lbl_801D4E5C = .sdata2:0x801D4E5C; // type:object size:0x4 data:float +lbl_801D4E60 = .sdata2:0x801D4E60; // type:object size:0x8 data:double +lbl_801D4E68 = .sdata2:0x801D4E68; // type:object size:0x4 data:float +lbl_801D4E6C = .sdata2:0x801D4E6C; // type:object size:0x4 data:float +lbl_801D4E70 = .sdata2:0x801D4E70; // type:object size:0x8 data:double +lbl_801D4E78 = .sdata2:0x801D4E78; // type:object size:0x4 data:float +lbl_801D4E7C = .sdata2:0x801D4E7C; // type:object size:0x4 data:float +lbl_801D4E80 = .sdata2:0x801D4E80; // type:object size:0x4 data:float +lbl_801D4E84 = .sdata2:0x801D4E84; // type:object size:0x4 data:float +lbl_801D4E88 = .sdata2:0x801D4E88; // type:object size:0x4 data:float +lbl_801D4E8C = .sdata2:0x801D4E8C; // type:object size:0x4 data:float +lbl_801D4E90 = .sdata2:0x801D4E90; // type:object size:0x4 data:float +lbl_801D4E94 = .sdata2:0x801D4E94; // type:object size:0x4 data:float +lbl_801D4E98 = .sdata2:0x801D4E98; // type:object size:0x4 data:float +lbl_801D4E9C = .sdata2:0x801D4E9C; // type:object size:0x4 data:float +lbl_801D4EA0 = .sdata2:0x801D4EA0; // type:object size:0x4 data:float +lbl_801D4EA4 = .sdata2:0x801D4EA4; // type:object size:0x4 data:float +lbl_801D4EA8 = .sdata2:0x801D4EA8; // type:object size:0x4 data:float +lbl_801D4EAC = .sdata2:0x801D4EAC; // type:object size:0x4 data:float +lbl_801D4EB0 = .sdata2:0x801D4EB0; // type:object size:0x4 data:float +lbl_801D4EB4 = .sdata2:0x801D4EB4; // type:object size:0x4 data:float +lbl_801D4EB8 = .sdata2:0x801D4EB8; // type:object size:0x4 data:float +lbl_801D4EBC = .sdata2:0x801D4EBC; // type:object size:0x4 data:float +lbl_801D4EC0 = .sdata2:0x801D4EC0; // type:object size:0x4 data:float +lbl_801D4EC4 = .sdata2:0x801D4EC4; // type:object size:0x4 data:float +lbl_801D4EC8 = .sdata2:0x801D4EC8; // type:object size:0x4 data:float +lbl_801D4ECC = .sdata2:0x801D4ECC; // type:object size:0x4 data:float +lbl_801D4ED0 = .sdata2:0x801D4ED0; // type:object size:0x4 data:float +lbl_801D4ED8 = .sdata2:0x801D4ED8; // type:object size:0x8 data:double +lbl_801D4EE0 = .sdata2:0x801D4EE0; // type:object size:0x8 data:double +lbl_801D4EE8 = .sdata2:0x801D4EE8; // type:object size:0x4 data:float +lbl_801D4EF0 = .sdata2:0x801D4EF0; // type:object size:0x8 data:double +lbl_801D4EF8 = .sdata2:0x801D4EF8; // type:object size:0x4 data:float +lbl_801D4F00 = .sdata2:0x801D4F00; // type:object size:0x8 data:double +lbl_801D4F08 = .sdata2:0x801D4F08; // type:object size:0x4 data:float +lbl_801D4F0C = .sdata2:0x801D4F0C; // type:object size:0x4 data:float +lbl_801D4F10 = .sdata2:0x801D4F10; // type:object size:0x4 data:float +lbl_801D4F14 = .sdata2:0x801D4F14; // type:object size:0x4 data:float +lbl_801D4F18 = .sdata2:0x801D4F18; // type:object size:0x8 data:double +lbl_801D4F20 = .sdata2:0x801D4F20; // type:object size:0x8 data:double +lbl_801D4F28 = .sdata2:0x801D4F28; // type:object size:0x4 data:float +lbl_801D4F2C = .sdata2:0x801D4F2C; // type:object size:0x4 data:float +lbl_801D4F30 = .sdata2:0x801D4F30; // type:object size:0x4 data:float +lbl_801D4F34 = .sdata2:0x801D4F34; // type:object size:0x4 data:float +lbl_801D4F38 = .sdata2:0x801D4F38; // type:object size:0x4 data:float +lbl_801D4F3C = .sdata2:0x801D4F3C; // type:object size:0x4 data:float +lbl_801D4F40 = .sdata2:0x801D4F40; // type:object size:0x4 data:float +lbl_801D4F44 = .sdata2:0x801D4F44; // type:object size:0x4 data:float +lbl_801D4F48 = .sdata2:0x801D4F48; // type:object size:0x4 data:float +lbl_801D4F4C = .sdata2:0x801D4F4C; // type:object size:0x4 data:float +lbl_801D4F50 = .sdata2:0x801D4F50; // type:object size:0x4 data:float +lbl_801D4F54 = .sdata2:0x801D4F54; // type:object size:0x4 data:float +lbl_801D4F58 = .sdata2:0x801D4F58; // type:object size:0x4 data:float +lbl_801D4F5C = .sdata2:0x801D4F5C; // type:object size:0x4 data:float +lbl_801D4F60 = .sdata2:0x801D4F60; // type:object size:0x4 data:4byte +lbl_801D4F64 = .sdata2:0x801D4F64; // type:object size:0x4 data:4byte +lbl_801D4F68 = .sdata2:0x801D4F68; // type:object size:0x4 data:float +lbl_801D4F6C = .sdata2:0x801D4F6C; // type:object size:0x4 data:float +lbl_801D4F70 = .sdata2:0x801D4F70; // type:object size:0x4 data:float +lbl_801D4F74 = .sdata2:0x801D4F74; // type:object size:0x4 data:float +lbl_801D4F78 = .sdata2:0x801D4F78; // type:object size:0x4 data:float +lbl_801D4F7C = .sdata2:0x801D4F7C; // type:object size:0x4 data:float +lbl_801D4F80 = .sdata2:0x801D4F80; // type:object size:0x4 data:float +lbl_801D4F84 = .sdata2:0x801D4F84; // type:object size:0x4 data:float +lbl_801D4F88 = .sdata2:0x801D4F88; // type:object size:0x4 data:float +lbl_801D4F8C = .sdata2:0x801D4F8C; // type:object size:0x2 data:2byte +lbl_801D4F8E = .sdata2:0x801D4F8E; // type:object size:0x2 data:2byte +lbl_801D4F90 = .sdata2:0x801D4F90; // type:object size:0x2 data:2byte +lbl_801D4F92 = .sdata2:0x801D4F92; // type:object size:0x2 data:2byte +lbl_801D4F94 = .sdata2:0x801D4F94; // type:object size:0x1 data:byte +lbl_801D4F95 = .sdata2:0x801D4F95; // type:object size:0x1 data:byte +lbl_801D4F96 = .sdata2:0x801D4F96; // type:object size:0x1 data:byte +lbl_801D4F97 = .sdata2:0x801D4F97; // type:object size:0x1 data:byte +lbl_801D4F98 = .sdata2:0x801D4F98; // type:object size:0x1 data:byte +lbl_801D4F99 = .sdata2:0x801D4F99; // type:object size:0x1 data:byte +lbl_801D4F9A = .sdata2:0x801D4F9A; // type:object size:0x1 data:byte +lbl_801D4F9B = .sdata2:0x801D4F9B; // type:object size:0x1 data:byte +lbl_801D4F9C = .sdata2:0x801D4F9C; // type:object size:0x4 data:float +lbl_801D4FA0 = .sdata2:0x801D4FA0; // type:object size:0x4 data:float +lbl_801D4FA4 = .sdata2:0x801D4FA4; // type:object size:0x4 data:float +lbl_801D4FA8 = .sdata2:0x801D4FA8; // type:object size:0x4 data:float +lbl_801D4FAC = .sdata2:0x801D4FAC; // type:object size:0x4 data:float +lbl_801D4FB0 = .sdata2:0x801D4FB0; // type:object size:0x4 data:float +lbl_801D4FB8 = .sdata2:0x801D4FB8; // type:object size:0x8 data:double +lbl_801D4FC0 = .sdata2:0x801D4FC0; // type:object size:0x4 data:float +lbl_801D4FC4 = .sdata2:0x801D4FC4; // type:object size:0x4 data:float +lbl_801D4FC8 = .sdata2:0x801D4FC8; // type:object size:0x4 data:float +lbl_801D4FCC = .sdata2:0x801D4FCC; // type:object size:0x4 data:float +lbl_801D4FD0 = .sdata2:0x801D4FD0; // type:object size:0x8 data:float +lbl_801D4FD8 = .sdata2:0x801D4FD8; // type:object size:0x4 +lbl_801D4FDC = .sdata2:0x801D4FDC; // type:object size:0x4 data:float +lbl_801D4FE0 = .sdata2:0x801D4FE0; // type:object size:0x4 data:float +lbl_801D4FE8 = .sdata2:0x801D4FE8; // type:object size:0x8 data:double +lbl_801D4FF0 = .sdata2:0x801D4FF0; // type:object size:0x8 data:double +lbl_801D4FF8 = .sdata2:0x801D4FF8; // type:object size:0x8 data:double +lbl_801D5000 = .sdata2:0x801D5000; // type:object size:0x4 data:float +lbl_801D5004 = .sdata2:0x801D5004; // type:object size:0x4 data:float +lbl_801D5008 = .sdata2:0x801D5008; // type:object size:0x8 data:float +lbl_801D5010 = .sdata2:0x801D5010; // type:object size:0x4 data:float +lbl_801D5014 = .sdata2:0x801D5014; // type:object size:0x4 data:float +lbl_801D5018 = .sdata2:0x801D5018; // type:object size:0x4 data:float +lbl_801D5020 = .sdata2:0x801D5020; // type:object size:0x8 data:double +lbl_801D5028 = .sdata2:0x801D5028; // type:object size:0x8 data:double +lbl_801D5030 = .sdata2:0x801D5030; // type:object size:0x4 data:float +lbl_801D5034 = .sdata2:0x801D5034; // type:object size:0x4 data:float +lbl_801D5038 = .sdata2:0x801D5038; // type:object size:0x4 data:float +lbl_801D503C = .sdata2:0x801D503C; // type:object size:0x4 data:float +lbl_801D5040 = .sdata2:0x801D5040; // type:object size:0x4 data:float +lbl_801D5044 = .sdata2:0x801D5044; // type:object size:0x4 data:float +lbl_801D5048 = .sdata2:0x801D5048; // type:object size:0x4 data:float +lbl_801D504C = .sdata2:0x801D504C; // type:object size:0x4 data:float +lbl_801D5050 = .sdata2:0x801D5050; // type:object size:0x4 data:float +lbl_801D5054 = .sdata2:0x801D5054; // type:object size:0x4 data:float +lbl_801D5058 = .sdata2:0x801D5058; // type:object size:0x4 data:float +lbl_801D505C = .sdata2:0x801D505C; // type:object size:0x4 data:float +lbl_801D5060 = .sdata2:0x801D5060; // type:object size:0x4 data:float +lbl_801D5068 = .sdata2:0x801D5068; // type:object size:0x8 data:double +lbl_801D5070 = .sdata2:0x801D5070; // type:object size:0x4 data:float +lbl_801D5074 = .sdata2:0x801D5074; // type:object size:0x4 data:float +lbl_801D5078 = .sdata2:0x801D5078; // type:object size:0x8 data:float +lbl_801D5080 = .sdata2:0x801D5080; // type:object size:0x1 data:byte +lbl_801D5081 = .sdata2:0x801D5081; // type:object size:0x1 data:byte +lbl_801D5082 = .sdata2:0x801D5082; // type:object size:0x1 data:byte +lbl_801D5083 = .sdata2:0x801D5083; // type:object size:0x1 data:byte +lbl_801D5084 = .sdata2:0x801D5084; // type:object size:0x1 data:byte +lbl_801D5085 = .sdata2:0x801D5085; // type:object size:0x1 data:byte +lbl_801D5086 = .sdata2:0x801D5086; // type:object size:0x1 data:byte +lbl_801D5087 = .sdata2:0x801D5087; // type:object size:0x1 data:byte +lbl_801D5088 = .sdata2:0x801D5088; // type:object size:0x4 data:float +lbl_801D508C = .sdata2:0x801D508C; // type:object size:0x4 data:float +lbl_801D5090 = .sdata2:0x801D5090; // type:object size:0x8 data:double +lbl_801D5098 = .sdata2:0x801D5098; // type:object size:0x8 data:double +lbl_801D50A0 = .sdata2:0x801D50A0; // type:object size:0x8 data:double +lbl_801D50A8 = .sdata2:0x801D50A8; // type:object size:0x4 data:float +lbl_801D50B0 = .sdata2:0x801D50B0; // type:object size:0x8 data:double +lbl_801D50B8 = .sdata2:0x801D50B8; // type:object size:0x4 data:float +lbl_801D50BC = .sdata2:0x801D50BC; // type:object size:0x4 data:float +lbl_801D50C0 = .sdata2:0x801D50C0; // type:object size:0x4 data:float +lbl_801D50C4 = .sdata2:0x801D50C4; // type:object size:0x4 data:float +lbl_801D50C8 = .sdata2:0x801D50C8; // type:object size:0x4 data:float +lbl_801D50CC = .sdata2:0x801D50CC; // type:object size:0x4 data:float +lbl_801D50D0 = .sdata2:0x801D50D0; // type:object size:0x4 data:float +lbl_801D50D4 = .sdata2:0x801D50D4; // type:object size:0x1 data:byte +lbl_801D50D5 = .sdata2:0x801D50D5; // type:object size:0x1 data:byte +lbl_801D50D6 = .sdata2:0x801D50D6; // type:object size:0x1 data:byte +lbl_801D50D7 = .sdata2:0x801D50D7; // type:object size:0x1 data:byte +lbl_801D50D8 = .sdata2:0x801D50D8; // type:object size:0x4 data:float +lbl_801D50DC = .sdata2:0x801D50DC; // type:object size:0x4 data:float +lbl_801D50E0 = .sdata2:0x801D50E0; // type:object size:0x4 data:float +lbl_801D50E4 = .sdata2:0x801D50E4; // type:object size:0x4 data:float +lbl_801D50E8 = .sdata2:0x801D50E8; // type:object size:0x4 data:float +lbl_801D50EC = .sdata2:0x801D50EC; // type:object size:0x4 data:float +lbl_801D50F0 = .sdata2:0x801D50F0; // type:object size:0x4 data:float +lbl_801D50F4 = .sdata2:0x801D50F4; // type:object size:0x4 data:float +lbl_801D50F8 = .sdata2:0x801D50F8; // type:object size:0x4 data:float +lbl_801D50FC = .sdata2:0x801D50FC; // type:object size:0x4 data:float +lbl_801D5100 = .sdata2:0x801D5100; // type:object size:0x4 data:4byte +lbl_801D5104 = .sdata2:0x801D5104; // type:object size:0x4 data:4byte +lbl_801D5108 = .sdata2:0x801D5108; // type:object size:0x4 data:float +lbl_801D5110 = .sdata2:0x801D5110; // type:object size:0x8 data:double +lbl_801D5118 = .sdata2:0x801D5118; // type:object size:0x8 data:double +lbl_801D5120 = .sdata2:0x801D5120; // type:object size:0x4 data:float +lbl_801D5124 = .sdata2:0x801D5124; // type:object size:0x4 data:float +lbl_801D5128 = .sdata2:0x801D5128; // type:object size:0x4 data:float +lbl_801D512C = .sdata2:0x801D512C; // type:object size:0x4 data:float +lbl_801D5130 = .sdata2:0x801D5130; // type:object size:0x4 data:float +lbl_801D5134 = .sdata2:0x801D5134; // type:object size:0x4 data:float +lbl_801D5138 = .sdata2:0x801D5138; // type:object size:0x4 data:float +lbl_801D513C = .sdata2:0x801D513C; // type:object size:0x4 data:float +lbl_801D5140 = .sdata2:0x801D5140; // type:object size:0x4 data:float +lbl_801D5144 = .sdata2:0x801D5144; // type:object size:0x4 data:float +lbl_801D5148 = .sdata2:0x801D5148; // type:object size:0x4 data:float +lbl_801D514C = .sdata2:0x801D514C; // type:object size:0x4 data:float +lbl_801D5150 = .sdata2:0x801D5150; // type:object size:0x4 data:float +lbl_801D5154 = .sdata2:0x801D5154; // type:object size:0x4 data:float +lbl_801D5158 = .sdata2:0x801D5158; // type:object size:0x4 data:float +lbl_801D515C = .sdata2:0x801D515C; // type:object size:0x4 data:float +lbl_801D5160 = .sdata2:0x801D5160; // type:object size:0x4 data:float +lbl_801D5168 = .sdata2:0x801D5168; // type:object size:0x8 data:double +lbl_801D5170 = .sdata2:0x801D5170; // type:object size:0x4 data:float +lbl_801D5174 = .sdata2:0x801D5174; // type:object size:0x4 data:float +lbl_801D5178 = .sdata2:0x801D5178; // type:object size:0x4 data:float +lbl_801D517C = .sdata2:0x801D517C; // type:object size:0x4 data:float +lbl_801D5180 = .sdata2:0x801D5180; // type:object size:0x4 data:float +lbl_801D5184 = .sdata2:0x801D5184; // type:object size:0x4 data:float +lbl_801D5188 = .sdata2:0x801D5188; // type:object size:0x4 data:float +lbl_801D518C = .sdata2:0x801D518C; // type:object size:0x4 data:float +lbl_801D5190 = .sdata2:0x801D5190; // type:object size:0x4 data:float +lbl_801D5194 = .sdata2:0x801D5194; // type:object size:0x4 data:float +lbl_801D5198 = .sdata2:0x801D5198; // type:object size:0x4 data:float +lbl_801D519C = .sdata2:0x801D519C; // type:object size:0x4 data:float +lbl_801D51A0 = .sdata2:0x801D51A0; // type:object size:0x4 data:float +lbl_801D51A8 = .sdata2:0x801D51A8; // type:object size:0x8 data:double +lbl_801D51B0 = .sdata2:0x801D51B0; // type:object size:0x4 data:float +lbl_801D51B4 = .sdata2:0x801D51B4; // type:object size:0x4 data:float +lbl_801D51B8 = .sdata2:0x801D51B8; // type:object size:0x4 data:float +lbl_801D51C0 = .sdata2:0x801D51C0; // type:object size:0x8 data:double +lbl_801D51C8 = .sdata2:0x801D51C8; // type:object size:0x8 data:float +lbl_801D51D0 = .sdata2:0x801D51D0; // type:object size:0x4 data:float +lbl_801D51D4 = .sdata2:0x801D51D4; // type:object size:0x4 data:4byte +lbl_801D51D8 = .sdata2:0x801D51D8; // type:object size:0x4 data:4byte +lbl_801D51DC = .sdata2:0x801D51DC; // type:object size:0x4 data:float +lbl_801D51E0 = .sdata2:0x801D51E0; // type:object size:0x4 data:float +lbl_801D51E8 = .sdata2:0x801D51E8; // type:object size:0x8 data:double +lbl_801D51F0 = .sdata2:0x801D51F0; // type:object size:0x8 data:double +lbl_801D51F8 = .sdata2:0x801D51F8; // type:object size:0x4 data:float +lbl_801D51FC = .sdata2:0x801D51FC; // type:object size:0x4 data:float +lbl_801D5200 = .sdata2:0x801D5200; // type:object size:0x4 data:float +lbl_801D5204 = .sdata2:0x801D5204; // type:object size:0x4 data:float +lbl_801D5208 = .sdata2:0x801D5208; // type:object size:0x8 data:double +lbl_801D5210 = .sdata2:0x801D5210; // type:object size:0x4 data:float +lbl_801D5214 = .sdata2:0x801D5214; // type:object size:0x4 data:float +lbl_801D5218 = .sdata2:0x801D5218; // type:object size:0x4 data:float +lbl_801D521C = .sdata2:0x801D521C; // type:object size:0x4 data:float +lbl_801D5220 = .sdata2:0x801D5220; // type:object size:0x4 data:float +lbl_801D5224 = .sdata2:0x801D5224; // type:object size:0x4 data:float +lbl_801D5228 = .sdata2:0x801D5228; // type:object size:0x4 data:float +lbl_801D522C = .sdata2:0x801D522C; // type:object size:0x4 data:float +lbl_801D5230 = .sdata2:0x801D5230; // type:object size:0x4 data:float +lbl_801D5234 = .sdata2:0x801D5234; // type:object size:0x4 data:float +lbl_801D5238 = .sdata2:0x801D5238; // type:object size:0x4 data:float +lbl_801D523C = .sdata2:0x801D523C; // type:object size:0x4 data:float +lbl_801D5240 = .sdata2:0x801D5240; // type:object size:0x4 data:float +lbl_801D5244 = .sdata2:0x801D5244; // type:object size:0x4 data:4byte +lbl_801D5248 = .sdata2:0x801D5248; // type:object size:0x4 data:4byte +lbl_801D524C = .sdata2:0x801D524C; // type:object size:0x2 data:2byte +lbl_801D524E = .sdata2:0x801D524E; // type:object size:0x2 data:2byte +lbl_801D5250 = .sdata2:0x801D5250; // type:object size:0x2 data:2byte +lbl_801D5252 = .sdata2:0x801D5252; // type:object size:0x2 data:2byte +lbl_801D5254 = .sdata2:0x801D5254; // type:object size:0x4 data:float +lbl_801D5258 = .sdata2:0x801D5258; // type:object size:0x4 data:float +lbl_801D525C = .sdata2:0x801D525C; // type:object size:0x4 data:float +lbl_801D5260 = .sdata2:0x801D5260; // type:object size:0x4 data:float +lbl_801D5264 = .sdata2:0x801D5264; // type:object size:0x4 data:float +lbl_801D5268 = .sdata2:0x801D5268; // type:object size:0x4 data:float +lbl_801D526C = .sdata2:0x801D526C; // type:object size:0x4 data:float +lbl_801D5270 = .sdata2:0x801D5270; // type:object size:0x4 data:float +lbl_801D5274 = .sdata2:0x801D5274; // type:object size:0x4 data:float +lbl_801D5278 = .sdata2:0x801D5278; // type:object size:0x4 data:float +lbl_801D527C = .sdata2:0x801D527C; // type:object size:0x4 data:float +lbl_801D5280 = .sdata2:0x801D5280; // type:object size:0x4 data:float +lbl_801D5284 = .sdata2:0x801D5284; // type:object size:0x4 data:float +lbl_801D5288 = .sdata2:0x801D5288; // type:object size:0x4 data:float +lbl_801D528C = .sdata2:0x801D528C; // type:object size:0x4 data:float +lbl_801D5290 = .sdata2:0x801D5290; // type:object size:0x4 data:float +lbl_801D5294 = .sdata2:0x801D5294; // type:object size:0x4 data:float +lbl_801D5298 = .sdata2:0x801D5298; // type:object size:0x4 data:float +lbl_801D529C = .sdata2:0x801D529C; // type:object size:0x4 data:float +lbl_801D52A0 = .sdata2:0x801D52A0; // type:object size:0x4 data:float +lbl_801D52A4 = .sdata2:0x801D52A4; // type:object size:0x4 data:float +lbl_801D52A8 = .sdata2:0x801D52A8; // type:object size:0x4 data:float +lbl_801D52AC = .sdata2:0x801D52AC; // type:object size:0x4 data:float +lbl_801D52B0 = .sdata2:0x801D52B0; // type:object size:0x4 data:float +lbl_801D52B4 = .sdata2:0x801D52B4; // type:object size:0x4 data:float +lbl_801D52B8 = .sdata2:0x801D52B8; // type:object size:0x4 data:float +lbl_801D52BC = .sdata2:0x801D52BC; // type:object size:0x4 data:float +lbl_801D52C0 = .sdata2:0x801D52C0; // type:object size:0x4 data:float +lbl_801D52C4 = .sdata2:0x801D52C4; // type:object size:0x4 data:float +lbl_801D52C8 = .sdata2:0x801D52C8; // type:object size:0x4 data:float +lbl_801D52CC = .sdata2:0x801D52CC; // type:object size:0x4 data:float +lbl_801D52D0 = .sdata2:0x801D52D0; // type:object size:0x4 data:float +lbl_801D52D4 = .sdata2:0x801D52D4; // type:object size:0x4 data:float +lbl_801D52D8 = .sdata2:0x801D52D8; // type:object size:0x4 data:float +lbl_801D52DC = .sdata2:0x801D52DC; // type:object size:0x4 data:float +lbl_801D52E0 = .sdata2:0x801D52E0; // type:object size:0x4 data:float +lbl_801D52E4 = .sdata2:0x801D52E4; // type:object size:0x4 data:float +lbl_801D52E8 = .sdata2:0x801D52E8; // type:object size:0x8 data:double +lbl_801D52F0 = .sdata2:0x801D52F0; // type:object size:0x8 data:double +lbl_801D52F8 = .sdata2:0x801D52F8; // type:object size:0x4 data:float +lbl_801D52FC = .sdata2:0x801D52FC; // type:object size:0x4 data:float +lbl_801D5300 = .sdata2:0x801D5300; // type:object size:0x4 data:float +lbl_801D5304 = .sdata2:0x801D5304; // type:object size:0x4 data:float +lbl_801D5308 = .sdata2:0x801D5308; // type:object size:0x4 data:float +lbl_801D530C = .sdata2:0x801D530C; // type:object size:0x4 data:float +lbl_801D5310 = .sdata2:0x801D5310; // type:object size:0x4 data:float +lbl_801D5314 = .sdata2:0x801D5314; // type:object size:0x4 data:float +lbl_801D5318 = .sdata2:0x801D5318; // type:object size:0x4 data:float +lbl_801D531C = .sdata2:0x801D531C; // type:object size:0x4 data:float +lbl_801D5320 = .sdata2:0x801D5320; // type:object size:0x4 data:float +lbl_801D5324 = .sdata2:0x801D5324; // type:object size:0x4 data:float +lbl_801D5328 = .sdata2:0x801D5328; // type:object size:0x8 data:double +lbl_801D5330 = .sdata2:0x801D5330; // type:object size:0x4 data:4byte +lbl_801D5334 = .sdata2:0x801D5334; // type:object size:0x4 data:4byte +lbl_801D5338 = .sdata2:0x801D5338; // type:object size:0x1 data:byte +lbl_801D5339 = .sdata2:0x801D5339; // type:object size:0x1 data:byte +lbl_801D533C = .sdata2:0x801D533C; // type:object size:0x4 data:float +lbl_801D5340 = .sdata2:0x801D5340; // type:object size:0x4 data:float +lbl_801D5344 = .sdata2:0x801D5344; // type:object size:0x4 data:float +lbl_801D5348 = .sdata2:0x801D5348; // type:object size:0x4 data:float +lbl_801D534C = .sdata2:0x801D534C; // type:object size:0x4 data:float +lbl_801D5350 = .sdata2:0x801D5350; // type:object size:0x4 data:float +lbl_801D5354 = .sdata2:0x801D5354; // type:object size:0x4 data:float +lbl_801D5358 = .sdata2:0x801D5358; // type:object size:0x8 data:float +lbl_801D5360 = .sdata2:0x801D5360; // type:object size:0x4 data:float +lbl_801D5364 = .sdata2:0x801D5364; // type:object size:0x4 data:float +lbl_801D5368 = .sdata2:0x801D5368; // type:object size:0x4 data:float +lbl_801D536C = .sdata2:0x801D536C; // type:object size:0x4 data:float +lbl_801D5370 = .sdata2:0x801D5370; // type:object size:0x8 +lbl_801D5378 = .sdata2:0x801D5378; // type:object size:0x4 data:float +lbl_801D537C = .sdata2:0x801D537C; // type:object size:0x4 data:float +lbl_801D5380 = .sdata2:0x801D5380; // type:object size:0x4 data:float +lbl_801D5388 = .sdata2:0x801D5388; // type:object size:0x8 data:double +lbl_801D5390 = .sdata2:0x801D5390; // type:object size:0x8 data:double +lbl_801D5398 = .sdata2:0x801D5398; // type:object size:0x4 data:float +lbl_801D539C = .sdata2:0x801D539C; // type:object size:0x4 data:float +lbl_801D53A0 = .sdata2:0x801D53A0; // type:object size:0x4 data:float +lbl_801D53A8 = .sdata2:0x801D53A8; // type:object size:0x8 data:double +lbl_801D53B0 = .sdata2:0x801D53B0; // type:object size:0x4 data:float +lbl_801D53B4 = .sdata2:0x801D53B4; // type:object size:0x4 data:float +lbl_801D53B8 = .sdata2:0x801D53B8; // type:object size:0x4 data:float +lbl_801D53BC = .sdata2:0x801D53BC; // type:object size:0x4 data:float +lbl_801D53C0 = .sdata2:0x801D53C0; // type:object size:0x4 data:float +lbl_801D53C4 = .sdata2:0x801D53C4; // type:object size:0x4 data:float +lbl_801D53C8 = .sdata2:0x801D53C8; // type:object size:0x4 data:float +lbl_801D53CC = .sdata2:0x801D53CC; // type:object size:0x4 data:float +lbl_801D53D0 = .sdata2:0x801D53D0; // type:object size:0x8 data:double +lbl_801D53D8 = .sdata2:0x801D53D8; // type:object size:0x8 data:double +lbl_801D53E0 = .sdata2:0x801D53E0; // type:object size:0x4 data:float +lbl_801D53E8 = .sdata2:0x801D53E8; // type:object size:0x8 data:double +lbl_801D53F0 = .sdata2:0x801D53F0; // type:object size:0x4 data:float +lbl_801D53F4 = .sdata2:0x801D53F4; // type:object size:0x4 data:float +lbl_801D53F8 = .sdata2:0x801D53F8; // type:object size:0x4 data:float +lbl_801D53FC = .sdata2:0x801D53FC; // type:object size:0x4 data:float +lbl_801D5400 = .sdata2:0x801D5400; // type:object size:0x4 data:float +lbl_801D5404 = .sdata2:0x801D5404; // type:object size:0x4 data:float +lbl_801D5408 = .sdata2:0x801D5408; // type:object size:0x4 data:float +lbl_801D540C = .sdata2:0x801D540C; // type:object size:0x4 data:float +lbl_801D5410 = .sdata2:0x801D5410; // type:object size:0x4 data:float +lbl_801D5414 = .sdata2:0x801D5414; // type:object size:0x4 data:float +lbl_801D5418 = .sdata2:0x801D5418; // type:object size:0x4 data:float +lbl_801D541C = .sdata2:0x801D541C; // type:object size:0x4 data:float +lbl_801D5420 = .sdata2:0x801D5420; // type:object size:0x4 data:float +lbl_801D5428 = .sdata2:0x801D5428; // type:object size:0x8 data:double +lbl_801D5430 = .sdata2:0x801D5430; // type:object size:0x8 data:double +lbl_801D5438 = .sdata2:0x801D5438; // type:object size:0x8 data:float +lbl_801D5440 = .sdata2:0x801D5440; // type:object size:0x4 data:float +lbl_801D5444 = .sdata2:0x801D5444; // type:object size:0x4 data:float +lbl_801D5448 = .sdata2:0x801D5448; // type:object size:0x4 data:float +lbl_801D544C = .sdata2:0x801D544C; // type:object size:0x4 data:float +lbl_801D5450 = .sdata2:0x801D5450; // type:object size:0x4 data:float +lbl_801D5454 = .sdata2:0x801D5454; // type:object size:0x4 data:float +lbl_801D5458 = .sdata2:0x801D5458; // type:object size:0x4 data:float +lbl_801D545C = .sdata2:0x801D545C; // type:object size:0x4 data:float +lbl_801D5460 = .sdata2:0x801D5460; // type:object size:0x4 data:float +lbl_801D5464 = .sdata2:0x801D5464; // type:object size:0x4 data:float +lbl_801D5468 = .sdata2:0x801D5468; // type:object size:0x4 data:float +lbl_801D546C = .sdata2:0x801D546C; // type:object size:0x4 data:float +lbl_801D5470 = .sdata2:0x801D5470; // type:object size:0x4 data:float +lbl_801D5474 = .sdata2:0x801D5474; // type:object size:0x4 data:float +lbl_801D5478 = .sdata2:0x801D5478; // type:object size:0x4 data:float +lbl_801D547C = .sdata2:0x801D547C; // type:object size:0x4 data:float +lbl_801D5480 = .sdata2:0x801D5480; // type:object size:0x8 data:double +lbl_801D5488 = .sdata2:0x801D5488; // type:object size:0x4 data:float +lbl_801D548C = .sdata2:0x801D548C; // type:object size:0x4 data:float +lbl_801D5490 = .sdata2:0x801D5490; // type:object size:0x4 data:float +lbl_801D5494 = .sdata2:0x801D5494; // type:object size:0x4 data:float +lbl_801D5498 = .sdata2:0x801D5498; // type:object size:0x4 data:float +lbl_801D549C = .sdata2:0x801D549C; // type:object size:0x4 data:float +lbl_801D54A0 = .sdata2:0x801D54A0; // type:object size:0x4 data:float +lbl_801D54A4 = .sdata2:0x801D54A4; // type:object size:0x4 data:float +lbl_801D54A8 = .sdata2:0x801D54A8; // type:object size:0x8 data:double +lbl_801D54B0 = .sdata2:0x801D54B0; // type:object size:0x8 data:double +lbl_801D54B8 = .sdata2:0x801D54B8; // type:object size:0x4 data:float +lbl_801D54C0 = .sdata2:0x801D54C0; // type:object size:0x8 data:double +lbl_801D54C8 = .sdata2:0x801D54C8; // type:object size:0x8 data:float +lbl_801D54D0 = .sdata2:0x801D54D0; // type:object size:0x8 +lbl_801D54D8 = .sdata2:0x801D54D8; // type:object size:0x4 data:float +lbl_801D54DC = .sdata2:0x801D54DC; // type:object size:0x4 data:float +lbl_801D54E0 = .sdata2:0x801D54E0; // type:object size:0x4 data:float +lbl_801D54E4 = .sdata2:0x801D54E4; // type:object size:0x4 data:float +lbl_801D54E8 = .sdata2:0x801D54E8; // type:object size:0x4 data:float +lbl_801D54EC = .sdata2:0x801D54EC; // type:object size:0x4 data:float +lbl_801D54F0 = .sdata2:0x801D54F0; // type:object size:0x8 data:double +lbl_801D54F8 = .sdata2:0x801D54F8; // type:object size:0x8 data:double +lbl_801D5500 = .sdata2:0x801D5500; // type:object size:0x8 data:double +lbl_801D5508 = .sdata2:0x801D5508; // type:object size:0x4 data:float +lbl_801D550C = .sdata2:0x801D550C; // type:object size:0x4 data:float +lbl_801D5510 = .sdata2:0x801D5510; // type:object size:0x4 data:float +lbl_801D5514 = .sdata2:0x801D5514; // type:object size:0x4 data:4byte +lbl_801D5518 = .sdata2:0x801D5518; // type:object size:0x4 data:4byte +lbl_801D551C = .sdata2:0x801D551C; // type:object size:0x4 data:float +lbl_801D5520 = .sdata2:0x801D5520; // type:object size:0x4 data:float +lbl_801D5524 = .sdata2:0x801D5524; // type:object size:0x4 data:float +lbl_801D5528 = .sdata2:0x801D5528; // type:object size:0x4 data:float +lbl_801D552C = .sdata2:0x801D552C; // type:object size:0x4 data:4byte +lbl_801D5530 = .sdata2:0x801D5530; // type:object size:0x4 data:4byte +lbl_801D5534 = .sdata2:0x801D5534; // type:object size:0x4 data:float +lbl_801D5538 = .sdata2:0x801D5538; // type:object size:0x4 data:float +lbl_801D553C = .sdata2:0x801D553C; // type:object size:0x4 data:float +lbl_801D5540 = .sdata2:0x801D5540; // type:object size:0x4 data:float +lbl_801D5544 = .sdata2:0x801D5544; // type:object size:0x4 data:float +lbl_801D5548 = .sdata2:0x801D5548; // type:object size:0x8 data:double +lbl_801D5550 = .sdata2:0x801D5550; // type:object size:0x4 data:float +lbl_801D5558 = .sdata2:0x801D5558; // type:object size:0x8 data:double +lbl_801D5560 = .sdata2:0x801D5560; // type:object size:0x8 data:double +lbl_801D5568 = .sdata2:0x801D5568; // type:object size:0x8 data:double +lbl_801D5570 = .sdata2:0x801D5570; // type:object size:0x4 data:float +lbl_801D5574 = .sdata2:0x801D5574; // type:object size:0x4 data:float +lbl_801D5578 = .sdata2:0x801D5578; // type:object size:0x4 data:float +lbl_801D557C = .sdata2:0x801D557C; // type:object size:0x4 data:float +lbl_801D5580 = .sdata2:0x801D5580; // type:object size:0x4 data:float +lbl_801D5584 = .sdata2:0x801D5584; // type:object size:0x4 data:float +lbl_801D5588 = .sdata2:0x801D5588; // type:object size:0x4 data:float +lbl_801D558C = .sdata2:0x801D558C; // type:object size:0x4 data:float +lbl_801D5590 = .sdata2:0x801D5590; // type:object size:0x4 data:float +lbl_801D5594 = .sdata2:0x801D5594; // type:object size:0x4 data:float +lbl_801D5598 = .sdata2:0x801D5598; // type:object size:0x4 data:float +lbl_801D55A0 = .sdata2:0x801D55A0; // type:object size:0x8 data:double +lbl_801D55A8 = .sdata2:0x801D55A8; // type:object size:0x4 data:float +lbl_801D55AC = .sdata2:0x801D55AC; // type:object size:0x4 data:float +lbl_801D55B0 = .sdata2:0x801D55B0; // type:object size:0x4 data:float +lbl_801D55B4 = .sdata2:0x801D55B4; // type:object size:0x4 data:float +lbl_801D55B8 = .sdata2:0x801D55B8; // type:object size:0x4 data:float +lbl_801D55BC = .sdata2:0x801D55BC; // type:object size:0x4 data:float +lbl_801D55C0 = .sdata2:0x801D55C0; // type:object size:0x4 data:float +lbl_801D55C4 = .sdata2:0x801D55C4; // type:object size:0x4 data:float +lbl_801D55C8 = .sdata2:0x801D55C8; // type:object size:0x4 data:float +lbl_801D55CC = .sdata2:0x801D55CC; // type:object size:0x4 data:float +lbl_801D55D0 = .sdata2:0x801D55D0; // type:object size:0x4 data:float +lbl_801D55D4 = .sdata2:0x801D55D4; // type:object size:0x4 data:float +lbl_801D55D8 = .sdata2:0x801D55D8; // type:object size:0x4 data:float +lbl_801D55DC = .sdata2:0x801D55DC; // type:object size:0x4 data:float +lbl_801D55E0 = .sdata2:0x801D55E0; // type:object size:0x4 data:float +lbl_801D55E4 = .sdata2:0x801D55E4; // type:object size:0x4 data:float +lbl_801D55E8 = .sdata2:0x801D55E8; // type:object size:0x4 data:float +lbl_801D55EC = .sdata2:0x801D55EC; // type:object size:0x4 data:float +lbl_801D55F0 = .sdata2:0x801D55F0; // type:object size:0x8 data:float +lbl_801D55F8 = .sdata2:0x801D55F8; // type:object size:0x4 data:float +lbl_801D55FC = .sdata2:0x801D55FC; // type:object size:0x4 data:float +lbl_801D5600 = .sdata2:0x801D5600; // type:object size:0x4 data:float +lbl_801D5604 = .sdata2:0x801D5604; // type:object size:0x4 data:float +lbl_801D5608 = .sdata2:0x801D5608; // type:object size:0x4 data:float +lbl_801D560C = .sdata2:0x801D560C; // type:object size:0x4 data:float +lbl_801D5610 = .sdata2:0x801D5610; // type:object size:0x4 data:float +lbl_801D5614 = .sdata2:0x801D5614; // type:object size:0x4 data:float +lbl_801D5618 = .sdata2:0x801D5618; // type:object size:0x4 data:float +lbl_801D561C = .sdata2:0x801D561C; // type:object size:0x4 data:float +lbl_801D5620 = .sdata2:0x801D5620; // type:object size:0x4 data:float +lbl_801D5624 = .sdata2:0x801D5624; // type:object size:0x4 data:float +lbl_801D5628 = .sdata2:0x801D5628; // type:object size:0x8 data:double +lbl_801D5630 = .sdata2:0x801D5630; // type:object size:0x8 data:double +lbl_801D5638 = .sdata2:0x801D5638; // type:object size:0x4 data:float +lbl_801D5640 = .sdata2:0x801D5640; // type:object size:0x8 data:double +lbl_801D5648 = .sdata2:0x801D5648; // type:object size:0x8 data:double +lbl_801D5650 = .sdata2:0x801D5650; // type:object size:0x8 data:double +lbl_801D5658 = .sdata2:0x801D5658; // type:object size:0x4 data:float +lbl_801D5660 = .sdata2:0x801D5660; // type:object size:0x8 data:double +lbl_801D5668 = .sdata2:0x801D5668; // type:object size:0x4 data:float +lbl_801D566C = .sdata2:0x801D566C; // type:object size:0x4 data:float +lbl_801D5670 = .sdata2:0x801D5670; // type:object size:0x4 data:float +lbl_801D5674 = .sdata2:0x801D5674; // type:object size:0x4 data:float +lbl_801D5678 = .sdata2:0x801D5678; // type:object size:0x4 data:float +lbl_801D567C = .sdata2:0x801D567C; // type:object size:0x4 data:float +lbl_801D5680 = .sdata2:0x801D5680; // type:object size:0x4 data:float +lbl_801D5684 = .sdata2:0x801D5684; // type:object size:0x4 data:float +lbl_801D5688 = .sdata2:0x801D5688; // type:object size:0x4 data:float +lbl_801D568C = .sdata2:0x801D568C; // type:object size:0x4 data:float +lbl_801D5690 = .sdata2:0x801D5690; // type:object size:0x4 data:float +lbl_801D5694 = .sdata2:0x801D5694; // type:object size:0x4 data:float +lbl_801D5698 = .sdata2:0x801D5698; // type:object size:0x8 data:float +lbl_801D56A0 = .sdata2:0x801D56A0; // type:object size:0x4 data:float +lbl_801D56A4 = .sdata2:0x801D56A4; // type:object size:0x4 data:float +lbl_801D56A8 = .sdata2:0x801D56A8; // type:object size:0x4 data:float +lbl_801D56AC = .sdata2:0x801D56AC; // type:object size:0x4 data:float +lbl_801D56B0 = .sdata2:0x801D56B0; // type:object size:0x4 data:float +lbl_801D56B4 = .sdata2:0x801D56B4; // type:object size:0x4 data:float +lbl_801D56B8 = .sdata2:0x801D56B8; // type:object size:0x4 data:float +lbl_801D56BC = .sdata2:0x801D56BC; // type:object size:0x4 data:float +lbl_801D56C0 = .sdata2:0x801D56C0; // type:object size:0x4 data:float +lbl_801D56C8 = .sdata2:0x801D56C8; // type:object size:0x8 data:double +lbl_801D56D0 = .sdata2:0x801D56D0; // type:object size:0x8 data:double +lbl_801D56D8 = .sdata2:0x801D56D8; // type:object size:0x8 data:double +lbl_801D56E0 = .sdata2:0x801D56E0; // type:object size:0x4 data:float +lbl_801D56E4 = .sdata2:0x801D56E4; // type:object size:0x4 data:float +lbl_801D56E8 = .sdata2:0x801D56E8; // type:object size:0x4 data:float +lbl_801D56EC = .sdata2:0x801D56EC; // type:object size:0x4 data:float +lbl_801D56F0 = .sdata2:0x801D56F0; // type:object size:0x8 data:double +lbl_801D56F8 = .sdata2:0x801D56F8; // type:object size:0x8 data:double +lbl_801D5700 = .sdata2:0x801D5700; // type:object size:0x4 data:float +lbl_801D5704 = .sdata2:0x801D5704; // type:object size:0x4 data:float +lbl_801D5708 = .sdata2:0x801D5708; // type:object size:0x4 data:float +lbl_801D570C = .sdata2:0x801D570C; // type:object size:0x4 data:float +lbl_801D5710 = .sdata2:0x801D5710; // type:object size:0x4 data:float +lbl_801D5714 = .sdata2:0x801D5714; // type:object size:0x4 data:float +lbl_801D5718 = .sdata2:0x801D5718; // type:object size:0x4 data:float +lbl_801D5720 = .sdata2:0x801D5720; // type:object size:0x8 data:double +lbl_801D5728 = .sdata2:0x801D5728; // type:object size:0x4 data:float +lbl_801D572C = .sdata2:0x801D572C; // type:object size:0x4 data:float +lbl_801D5730 = .sdata2:0x801D5730; // type:object size:0x4 data:float +lbl_801D5734 = .sdata2:0x801D5734; // type:object size:0x4 data:float +lbl_801D5738 = .sdata2:0x801D5738; // type:object size:0x4 data:float +lbl_801D573C = .sdata2:0x801D573C; // type:object size:0x4 data:float +lbl_801D5740 = .sdata2:0x801D5740; // type:object size:0x4 data:float +lbl_801D5744 = .sdata2:0x801D5744; // type:object size:0x4 data:float +lbl_801D5748 = .sdata2:0x801D5748; // type:object size:0x4 data:float +lbl_801D574C = .sdata2:0x801D574C; // type:object size:0x4 data:float +lbl_801D5750 = .sdata2:0x801D5750; // type:object size:0x4 data:float +lbl_801D5754 = .sdata2:0x801D5754; // type:object size:0x4 data:float +lbl_801D5758 = .sdata2:0x801D5758; // type:object size:0x4 data:float +lbl_801D575C = .sdata2:0x801D575C; // type:object size:0x4 data:float +lbl_801D5760 = .sdata2:0x801D5760; // type:object size:0x8 data:float +lbl_801D5768 = .sdata2:0x801D5768; // type:object size:0x4 data:float +lbl_801D576C = .sdata2:0x801D576C; // type:object size:0x4 data:float +lbl_801D5770 = .sdata2:0x801D5770; // type:object size:0x4 data:float +lbl_801D5774 = .sdata2:0x801D5774; // type:object size:0x4 data:float +lbl_801D5778 = .sdata2:0x801D5778; // type:object size:0x4 data:float +lbl_801D577C = .sdata2:0x801D577C; // type:object size:0x4 data:float +lbl_801D5780 = .sdata2:0x801D5780; // type:object size:0x4 data:float +lbl_801D5784 = .sdata2:0x801D5784; // type:object size:0x4 data:float +lbl_801D5788 = .sdata2:0x801D5788; // type:object size:0x4 data:float +lbl_801D578C = .sdata2:0x801D578C; // type:object size:0x4 data:float +lbl_801D5790 = .sdata2:0x801D5790; // type:object size:0x4 data:float +lbl_801D5794 = .sdata2:0x801D5794; // type:object size:0x4 data:float +lbl_801D5798 = .sdata2:0x801D5798; // type:object size:0x8 data:double +lbl_801D57A0 = .sdata2:0x801D57A0; // type:object size:0x8 data:double +lbl_801D57A8 = .sdata2:0x801D57A8; // type:object size:0x8 data:double +lbl_801D57B0 = .sdata2:0x801D57B0; // type:object size:0x4 data:float +lbl_801D57B4 = .sdata2:0x801D57B4; // type:object size:0x4 data:float +lbl_801D57B8 = .sdata2:0x801D57B8; // type:object size:0x4 data:float +lbl_801D57BC = .sdata2:0x801D57BC; // type:object size:0x4 data:float +lbl_801D57C0 = .sdata2:0x801D57C0; // type:object size:0x4 data:float +lbl_801D57C4 = .sdata2:0x801D57C4; // type:object size:0x4 data:float +lbl_801D57C8 = .sdata2:0x801D57C8; // type:object size:0x4 data:float +lbl_801D57D0 = .sdata2:0x801D57D0; // type:object size:0x8 data:double +lbl_801D57D8 = .sdata2:0x801D57D8; // type:object size:0x8 data:double +lbl_801D57E0 = .sdata2:0x801D57E0; // type:object size:0x8 data:double +lbl_801D57E8 = .sdata2:0x801D57E8; // type:object size:0x4 data:float +lbl_801D57EC = .sdata2:0x801D57EC; // type:object size:0x4 data:float +lbl_801D57F0 = .sdata2:0x801D57F0; // type:object size:0x4 data:float +lbl_801D57F4 = .sdata2:0x801D57F4; // type:object size:0x4 data:float +lbl_801D57F8 = .sdata2:0x801D57F8; // type:object size:0x4 data:float +lbl_801D57FC = .sdata2:0x801D57FC; // type:object size:0x4 data:float +lbl_801D5800 = .sdata2:0x801D5800; // type:object size:0x4 data:float +lbl_801D5804 = .sdata2:0x801D5804; // type:object size:0x4 data:float +lbl_801D5808 = .sdata2:0x801D5808; // type:object size:0x4 data:float +lbl_801D580C = .sdata2:0x801D580C; // type:object size:0x4 data:float +lbl_801D5810 = .sdata2:0x801D5810; // type:object size:0x8 data:double +lbl_801D5818 = .sdata2:0x801D5818; // type:object size:0x4 data:float +lbl_801D581C = .sdata2:0x801D581C; // type:object size:0x4 data:float +lbl_801D5820 = .sdata2:0x801D5820; // type:object size:0x4 data:float +lbl_801D5824 = .sdata2:0x801D5824; // type:object size:0x4 data:float +lbl_801D5828 = .sdata2:0x801D5828; // type:object size:0x4 data:float +lbl_801D582C = .sdata2:0x801D582C; // type:object size:0x4 data:float +lbl_801D5830 = .sdata2:0x801D5830; // type:object size:0x4 data:float +lbl_801D5834 = .sdata2:0x801D5834; // type:object size:0x4 data:float +lbl_801D5838 = .sdata2:0x801D5838; // type:object size:0x4 data:float +lbl_801D583C = .sdata2:0x801D583C; // type:object size:0x4 data:float +lbl_801D5840 = .sdata2:0x801D5840; // type:object size:0x4 data:float +lbl_801D5844 = .sdata2:0x801D5844; // type:object size:0x4 data:float +lbl_801D5848 = .sdata2:0x801D5848; // type:object size:0x4 data:float +lbl_801D584C = .sdata2:0x801D584C; // type:object size:0x4 data:float +lbl_801D5850 = .sdata2:0x801D5850; // type:object size:0x4 data:float +lbl_801D5854 = .sdata2:0x801D5854; // type:object size:0x4 data:float +lbl_801D5858 = .sdata2:0x801D5858; // type:object size:0x4 data:float +lbl_801D585C = .sdata2:0x801D585C; // type:object size:0x4 data:float +lbl_801D5860 = .sdata2:0x801D5860; // type:object size:0x4 data:float +lbl_801D5864 = .sdata2:0x801D5864; // type:object size:0x4 data:float +lbl_801D5868 = .sdata2:0x801D5868; // type:object size:0x4 data:float +lbl_801D586C = .sdata2:0x801D586C; // type:object size:0x4 data:float +lbl_801D5870 = .sdata2:0x801D5870; // type:object size:0x4 data:float +lbl_801D5874 = .sdata2:0x801D5874; // type:object size:0x4 data:float +lbl_801D5878 = .sdata2:0x801D5878; // type:object size:0x8 data:double +lbl_801D5880 = .sdata2:0x801D5880; // type:object size:0x8 data:double +lbl_801D5888 = .sdata2:0x801D5888; // type:object size:0x4 data:float +lbl_801D588C = .sdata2:0x801D588C; // type:object size:0x4 data:float +lbl_801D5890 = .sdata2:0x801D5890; // type:object size:0x4 data:float +lbl_801D5894 = .sdata2:0x801D5894; // type:object size:0x4 data:float +lbl_801D5898 = .sdata2:0x801D5898; // type:object size:0x4 data:float +lbl_801D58A0 = .sdata2:0x801D58A0; // type:object size:0x8 data:double +lbl_801D58A8 = .sdata2:0x801D58A8; // type:object size:0x4 data:float +lbl_801D58AC = .sdata2:0x801D58AC; // type:object size:0x4 data:float +lbl_801D58B0 = .sdata2:0x801D58B0; // type:object size:0x4 data:float +lbl_801D58B4 = .sdata2:0x801D58B4; // type:object size:0x4 data:float +lbl_801D58B8 = .sdata2:0x801D58B8; // type:object size:0x4 data:float +lbl_801D58BC = .sdata2:0x801D58BC; // type:object size:0x4 data:float +lbl_801D58C0 = .sdata2:0x801D58C0; // type:object size:0x4 data:float +lbl_801D58C4 = .sdata2:0x801D58C4; // type:object size:0x4 data:float +lbl_801D58C8 = .sdata2:0x801D58C8; // type:object size:0x4 data:float +lbl_801D58CC = .sdata2:0x801D58CC; // type:object size:0x4 data:float +lbl_801D58D0 = .sdata2:0x801D58D0; // type:object size:0x4 data:float +lbl_801D58D8 = .sdata2:0x801D58D8; // type:object size:0x8 data:double +lbl_801D58E0 = .sdata2:0x801D58E0; // type:object size:0x4 data:float +lbl_801D58E4 = .sdata2:0x801D58E4; // type:object size:0x4 data:float +lbl_801D58E8 = .sdata2:0x801D58E8; // type:object size:0x4 data:float +lbl_801D58EC = .sdata2:0x801D58EC; // type:object size:0x4 data:float +lbl_801D58F0 = .sdata2:0x801D58F0; // type:object size:0x4 data:float +lbl_801D58F4 = .sdata2:0x801D58F4; // type:object size:0x4 data:float +lbl_801D58F8 = .sdata2:0x801D58F8; // type:object size:0x4 data:float +lbl_801D58FC = .sdata2:0x801D58FC; // type:object size:0x4 data:float +lbl_801D5900 = .sdata2:0x801D5900; // type:object size:0x4 data:float +lbl_801D5904 = .sdata2:0x801D5904; // type:object size:0x4 data:float +lbl_801D5908 = .sdata2:0x801D5908; // type:object size:0x4 data:float +lbl_801D590C = .sdata2:0x801D590C; // type:object size:0x4 data:float +lbl_801D5910 = .sdata2:0x801D5910; // type:object size:0x4 data:float +lbl_801D5914 = .sdata2:0x801D5914; // type:object size:0x4 data:float +lbl_801D5918 = .sdata2:0x801D5918; // type:object size:0x4 data:float +lbl_801D591C = .sdata2:0x801D591C; // type:object size:0x4 data:float +lbl_801D5920 = .sdata2:0x801D5920; // type:object size:0x4 data:float +lbl_801D5924 = .sdata2:0x801D5924; // type:object size:0x4 data:float +lbl_801D5928 = .sdata2:0x801D5928; // type:object size:0x4 data:float +lbl_801D5930 = .sdata2:0x801D5930; // type:object size:0x8 data:double +lbl_801D5938 = .sdata2:0x801D5938; // type:object size:0x4 data:float +lbl_801D5940 = .sdata2:0x801D5940; // type:object size:0x8 data:double +lbl_801D5948 = .sdata2:0x801D5948; // type:object size:0x4 data:float +lbl_801D594C = .sdata2:0x801D594C; // type:object size:0x4 data:float +lbl_801D5950 = .sdata2:0x801D5950; // type:object size:0x4 data:float +lbl_801D5954 = .sdata2:0x801D5954; // type:object size:0x4 data:float +lbl_801D5958 = .sdata2:0x801D5958; // type:object size:0x4 data:float +lbl_801D5960 = .sdata2:0x801D5960; // type:object size:0x8 data:double +lbl_801D5968 = .sdata2:0x801D5968; // type:object size:0x4 data:float +lbl_801D596C = .sdata2:0x801D596C; // type:object size:0x4 data:float +lbl_801D5970 = .sdata2:0x801D5970; // type:object size:0x4 data:float +lbl_801D5974 = .sdata2:0x801D5974; // type:object size:0x4 data:float +lbl_801D5978 = .sdata2:0x801D5978; // type:object size:0x4 data:float +lbl_801D597C = .sdata2:0x801D597C; // type:object size:0x4 data:float +lbl_801D5980 = .sdata2:0x801D5980; // type:object size:0x4 data:float +lbl_801D5984 = .sdata2:0x801D5984; // type:object size:0x4 data:float +lbl_801D5988 = .sdata2:0x801D5988; // type:object size:0x4 data:float +lbl_801D598C = .sdata2:0x801D598C; // type:object size:0x4 data:float +lbl_801D5990 = .sdata2:0x801D5990; // type:object size:0x4 data:float +lbl_801D5994 = .sdata2:0x801D5994; // type:object size:0x4 data:float +lbl_801D5998 = .sdata2:0x801D5998; // type:object size:0x1 data:byte +lbl_801D5999 = .sdata2:0x801D5999; // type:object size:0x1 data:byte +lbl_801D599A = .sdata2:0x801D599A; // type:object size:0x1 data:byte +lbl_801D599B = .sdata2:0x801D599B; // type:object size:0x1 data:byte +lbl_801D599C = .sdata2:0x801D599C; // type:object size:0x4 data:float +lbl_801D59A0 = .sdata2:0x801D59A0; // type:object size:0x4 data:float +lbl_801D59A4 = .sdata2:0x801D59A4; // type:object size:0x4 data:float +lbl_801D59A8 = .sdata2:0x801D59A8; // type:object size:0x4 data:float +lbl_801D59AC = .sdata2:0x801D59AC; // type:object size:0x4 data:float +lbl_801D59B0 = .sdata2:0x801D59B0; // type:object size:0x8 data:double +lbl_801D59B8 = .sdata2:0x801D59B8; // type:object size:0x8 data:double +lbl_801D59C0 = .sdata2:0x801D59C0; // type:object size:0x4 data:float +lbl_801D59C4 = .sdata2:0x801D59C4; // type:object size:0x4 data:float +lbl_801D59C8 = .sdata2:0x801D59C8; // type:object size:0x4 data:float +lbl_801D59CC = .sdata2:0x801D59CC; // type:object size:0x4 data:float +lbl_801D59D0 = .sdata2:0x801D59D0; // type:object size:0x4 data:float +lbl_801D59D4 = .sdata2:0x801D59D4; // type:object size:0x4 data:float +lbl_801D59D8 = .sdata2:0x801D59D8; // type:object size:0x8 data:double +lbl_801D59E0 = .sdata2:0x801D59E0; // type:object size:0x4 data:float +lbl_801D59E4 = .sdata2:0x801D59E4; // type:object size:0x4 data:float +lbl_801D59E8 = .sdata2:0x801D59E8; // type:object size:0x8 data:double +lbl_801D59F0 = .sdata2:0x801D59F0; // type:object size:0x8 data:float +lbl_801D59F8 = .sdata2:0x801D59F8; // type:object size:0x4 data:float +lbl_801D59FC = .sdata2:0x801D59FC; // type:object size:0x4 data:float +lbl_801D5A00 = .sdata2:0x801D5A00; // type:object size:0x4 data:float +lbl_801D5A04 = .sdata2:0x801D5A04; // type:object size:0x4 data:float +lbl_801D5A08 = .sdata2:0x801D5A08; // type:object size:0x4 data:float +lbl_801D5A0C = .sdata2:0x801D5A0C; // type:object size:0x4 data:float +lbl_801D5A10 = .sdata2:0x801D5A10; // type:object size:0x4 data:float +lbl_801D5A14 = .sdata2:0x801D5A14; // type:object size:0x4 data:float +lbl_801D5A18 = .sdata2:0x801D5A18; // type:object size:0x4 data:float +lbl_801D5A1C = .sdata2:0x801D5A1C; // type:object size:0x4 data:float +lbl_801D5A20 = .sdata2:0x801D5A20; // type:object size:0x2 data:2byte +lbl_801D5A22 = .sdata2:0x801D5A22; // type:object size:0x2 data:2byte +lbl_801D5A24 = .sdata2:0x801D5A24; // type:object size:0x2 data:2byte +lbl_801D5A28 = .sdata2:0x801D5A28; // type:object size:0x4 data:float +lbl_801D5A2C = .sdata2:0x801D5A2C; // type:object size:0x4 data:float +lbl_801D5A30 = .sdata2:0x801D5A30; // type:object size:0x4 data:float +lbl_801D5A34 = .sdata2:0x801D5A34; // type:object size:0x4 data:float +lbl_801D5A38 = .sdata2:0x801D5A38; // type:object size:0x4 data:float +lbl_801D5A3C = .sdata2:0x801D5A3C; // type:object size:0x4 data:float +lbl_801D5A40 = .sdata2:0x801D5A40; // type:object size:0x4 data:float +lbl_801D5A44 = .sdata2:0x801D5A44; // type:object size:0x4 data:float +lbl_801D5A48 = .sdata2:0x801D5A48; // type:object size:0x8 data:double +lbl_801D5A50 = .sdata2:0x801D5A50; // type:object size:0x8 data:double +lbl_801D5A58 = .sdata2:0x801D5A58; // type:object size:0x8 data:double +lbl_801D5A60 = .sdata2:0x801D5A60; // type:object size:0x4 data:float +lbl_801D5A64 = .sdata2:0x801D5A64; // type:object size:0x4 data:float +lbl_801D5A68 = .sdata2:0x801D5A68; // type:object size:0x4 data:float +lbl_801D5A6C = .sdata2:0x801D5A6C; // type:object size:0x4 data:float +lbl_801D5A70 = .sdata2:0x801D5A70; // type:object size:0x4 data:float +lbl_801D5A74 = .sdata2:0x801D5A74; // type:object size:0x4 data:float +lbl_801D5A78 = .sdata2:0x801D5A78; // type:object size:0x4 data:float +lbl_801D5A7C = .sdata2:0x801D5A7C; // type:object size:0x4 data:float +lbl_801D5A80 = .sdata2:0x801D5A80; // type:object size:0x4 data:float +lbl_801D5A88 = .sdata2:0x801D5A88; // type:object size:0x8 data:double +lbl_801D5A90 = .sdata2:0x801D5A90; // type:object size:0x1 data:byte +lbl_801D5A91 = .sdata2:0x801D5A91; // type:object size:0x1 data:byte +lbl_801D5A92 = .sdata2:0x801D5A92; // type:object size:0x1 data:byte +lbl_801D5A94 = .sdata2:0x801D5A94; // type:object size:0x4 data:float +lbl_801D5A98 = .sdata2:0x801D5A98; // type:object size:0x8 data:double +lbl_801D5AA0 = .sdata2:0x801D5AA0; // type:object size:0x8 data:float +lbl_801D5AA8 = .sdata2:0x801D5AA8; // type:object size:0x8 +lbl_801D5AB0 = .sdata2:0x801D5AB0; // type:object size:0x4 data:float +lbl_801D5AB4 = .sdata2:0x801D5AB4; // type:object size:0x4 data:float +lbl_801D5AB8 = .sdata2:0x801D5AB8; // type:object size:0x4 data:float +lbl_801D5ABC = .sdata2:0x801D5ABC; // type:object size:0x4 data:float +lbl_801D5AC0 = .sdata2:0x801D5AC0; // type:object size:0x4 data:float +lbl_801D5AC4 = .sdata2:0x801D5AC4; // type:object size:0x4 data:float +lbl_801D5AC8 = .sdata2:0x801D5AC8; // type:object size:0x4 data:float +lbl_801D5ACC = .sdata2:0x801D5ACC; // type:object size:0x4 data:float +lbl_801D5AD0 = .sdata2:0x801D5AD0; // type:object size:0x4 data:float +lbl_801D5AD4 = .sdata2:0x801D5AD4; // type:object size:0x4 data:float +lbl_801D5AD8 = .sdata2:0x801D5AD8; // type:object size:0x4 data:float +lbl_801D5ADC = .sdata2:0x801D5ADC; // type:object size:0x4 data:float +lbl_801D5AE0 = .sdata2:0x801D5AE0; // type:object size:0x4 data:float +lbl_801D5AE4 = .sdata2:0x801D5AE4; // type:object size:0x4 data:float +lbl_801D5AE8 = .sdata2:0x801D5AE8; // type:object size:0x4 data:float +lbl_801D5AEC = .sdata2:0x801D5AEC; // type:object size:0x4 data:float +lbl_801D5AF0 = .sdata2:0x801D5AF0; // type:object size:0x4 data:float +lbl_801D5AF4 = .sdata2:0x801D5AF4; // type:object size:0x4 data:float +lbl_801D5AF8 = .sdata2:0x801D5AF8; // type:object size:0x4 data:float +lbl_801D5AFC = .sdata2:0x801D5AFC; // type:object size:0x4 data:float +lbl_801D5B00 = .sdata2:0x801D5B00; // type:object size:0x4 data:float +lbl_801D5B08 = .sdata2:0x801D5B08; // type:object size:0x8 data:double +lbl_801D5B10 = .sdata2:0x801D5B10; // type:object size:0x8 data:double +lbl_801D5B18 = .sdata2:0x801D5B18; // type:object size:0x4 data:float +lbl_801D5B1C = .sdata2:0x801D5B1C; // type:object size:0x4 data:float +lbl_801D5B20 = .sdata2:0x801D5B20; // type:object size:0x4 data:float +lbl_801D5B24 = .sdata2:0x801D5B24; // type:object size:0x4 data:float +lbl_801D5B28 = .sdata2:0x801D5B28; // type:object size:0x4 data:float +lbl_801D5B2C = .sdata2:0x801D5B2C; // type:object size:0x4 data:float +lbl_801D5B30 = .sdata2:0x801D5B30; // type:object size:0x4 data:float +lbl_801D5B34 = .sdata2:0x801D5B34; // type:object size:0x4 data:float +lbl_801D5B38 = .sdata2:0x801D5B38; // type:object size:0x8 data:double +lbl_801D5B40 = .sdata2:0x801D5B40; // type:object size:0x4 data:float +lbl_801D5B48 = .sdata2:0x801D5B48; // type:object size:0x8 data:double +lbl_801D5B50 = .sdata2:0x801D5B50; // type:object size:0x4 data:float +lbl_801D5B54 = .sdata2:0x801D5B54; // type:object size:0x4 data:float +lbl_801D5B58 = .sdata2:0x801D5B58; // type:object size:0x1 data:byte +lbl_801D5B59 = .sdata2:0x801D5B59; // type:object size:0x1 data:byte +lbl_801D5B5A = .sdata2:0x801D5B5A; // type:object size:0x1 data:byte +lbl_801D5B5B = .sdata2:0x801D5B5B; // type:object size:0x1 data:byte +lbl_801D5B5C = .sdata2:0x801D5B5C; // type:object size:0x1 data:byte +lbl_801D5B60 = .sdata2:0x801D5B60; // type:object size:0x4 data:float +lbl_801D5B64 = .sdata2:0x801D5B64; // type:object size:0x4 data:float +lbl_801D5B68 = .sdata2:0x801D5B68; // type:object size:0x4 data:float +lbl_801D5B6C = .sdata2:0x801D5B6C; // type:object size:0x4 data:float +lbl_801D5B70 = .sdata2:0x801D5B70; // type:object size:0x4 data:float +lbl_801D5B74 = .sdata2:0x801D5B74; // type:object size:0x4 data:float +lbl_801D5B78 = .sdata2:0x801D5B78; // type:object size:0x4 data:float +lbl_801D5B7C = .sdata2:0x801D5B7C; // type:object size:0x4 data:float +lbl_801D5B80 = .sdata2:0x801D5B80; // type:object size:0x4 data:float +lbl_801D5B84 = .sdata2:0x801D5B84; // type:object size:0x4 data:float +lbl_801D5B88 = .sdata2:0x801D5B88; // type:object size:0x4 data:float +lbl_801D5B8C = .sdata2:0x801D5B8C; // type:object size:0x4 data:float +lbl_801D5B90 = .sdata2:0x801D5B90; // type:object size:0x4 data:float +lbl_801D5B94 = .sdata2:0x801D5B94; // type:object size:0x4 data:float +lbl_801D5B98 = .sdata2:0x801D5B98; // type:object size:0x8 data:double +lbl_801D5BA0 = .sdata2:0x801D5BA0; // type:object size:0x8 data:double +lbl_801D5BA8 = .sdata2:0x801D5BA8; // type:object size:0x4 data:float +lbl_801D5BB0 = .sdata2:0x801D5BB0; // type:object size:0x8 data:double +lbl_801D5BB8 = .sdata2:0x801D5BB8; // type:object size:0x8 data:double +lbl_801D5BC0 = .sdata2:0x801D5BC0; // type:object size:0x8 data:double +lbl_801D5BC8 = .sdata2:0x801D5BC8; // type:object size:0x8 data:double +lbl_801D5BD0 = .sdata2:0x801D5BD0; // type:object size:0x4 data:float +lbl_801D5BD8 = .sdata2:0x801D5BD8; // type:object size:0x8 data:double +lbl_801D5BE0 = .sdata2:0x801D5BE0; // type:object size:0x4 data:float +lbl_801D5BE4 = .sdata2:0x801D5BE4; // type:object size:0x4 data:float +lbl_801D5BE8 = .sdata2:0x801D5BE8; // type:object size:0x4 data:float +lbl_801D5BF0 = .sdata2:0x801D5BF0; // type:object size:0x8 data:double +lbl_801D5BF8 = .sdata2:0x801D5BF8; // type:object size:0x8 data:double +lbl_801D5C00 = .sdata2:0x801D5C00; // type:object size:0x4 data:float +lbl_801D5C08 = .sdata2:0x801D5C08; // type:object size:0x8 data:double +lbl_801D5C10 = .sdata2:0x801D5C10; // type:object size:0x4 data:float +lbl_801D5C14 = .sdata2:0x801D5C14; // type:object size:0x4 data:float +lbl_801D5C18 = .sdata2:0x801D5C18; // type:object size:0x4 data:float +lbl_801D5C1C = .sdata2:0x801D5C1C; // type:object size:0x4 data:float +lbl_801D5C20 = .sdata2:0x801D5C20; // type:object size:0x8 data:double +lbl_801D5C28 = .sdata2:0x801D5C28; // type:object size:0x8 data:double +lbl_801D5C30 = .sdata2:0x801D5C30; // type:object size:0x4 data:float +lbl_801D5C34 = .sdata2:0x801D5C34; // type:object size:0x4 data:float +lbl_801D5C38 = .sdata2:0x801D5C38; // type:object size:0x4 data:float +lbl_801D5C40 = .sdata2:0x801D5C40; // type:object size:0x8 data:double +lbl_801D5C48 = .sdata2:0x801D5C48; // type:object size:0x4 data:float +lbl_801D5C4C = .sdata2:0x801D5C4C; // type:object size:0x4 data:float +lbl_801D5C50 = .sdata2:0x801D5C50; // type:object size:0x4 data:float +lbl_801D5C54 = .sdata2:0x801D5C54; // type:object size:0x4 data:float +lbl_801D5C58 = .sdata2:0x801D5C58; // type:object size:0x8 data:double +lbl_801D5C60 = .sdata2:0x801D5C60; // type:object size:0x4 data:float +lbl_801D5C64 = .sdata2:0x801D5C64; // type:object size:0x4 data:float +lbl_801D5C68 = .sdata2:0x801D5C68; // type:object size:0x4 data:float +lbl_801D5C6C = .sdata2:0x801D5C6C; // type:object size:0x4 data:float +lbl_801D5C70 = .sdata2:0x801D5C70; // type:object size:0x4 data:float +lbl_801D5C74 = .sdata2:0x801D5C74; // type:object size:0x4 data:float +lbl_801D5C78 = .sdata2:0x801D5C78; // type:object size:0x4 data:float +lbl_801D5C7C = .sdata2:0x801D5C7C; // type:object size:0x4 data:float +lbl_801D5C80 = .sdata2:0x801D5C80; // type:object size:0x4 data:float +lbl_801D5C84 = .sdata2:0x801D5C84; // type:object size:0x4 data:float +lbl_801D5C88 = .sdata2:0x801D5C88; // type:object size:0x4 data:float +lbl_801D5C8C = .sdata2:0x801D5C8C; // type:object size:0x1 data:byte +lbl_801D5C8D = .sdata2:0x801D5C8D; // type:object size:0x1 data:byte +lbl_801D5C90 = .sdata2:0x801D5C90; // type:object size:0x4 data:float +lbl_801D5C98 = .sdata2:0x801D5C98; // type:object size:0x8 data:double +lbl_801D5CA0 = .sdata2:0x801D5CA0; // type:object size:0x8 data:double +lbl_801D5CA8 = .sdata2:0x801D5CA8; // type:object size:0x8 data:double +lbl_801D5CB0 = .sdata2:0x801D5CB0; // type:object size:0x8 data:double +lbl_801D5CB8 = .sdata2:0x801D5CB8; // type:object size:0x4 data:float +lbl_801D5CBC = .sdata2:0x801D5CBC; // type:object size:0x4 data:float +lbl_801D5CC0 = .sdata2:0x801D5CC0; // type:object size:0x8 data:double +lbl_801D5CC8 = .sdata2:0x801D5CC8; // type:object size:0x4 data:float +lbl_801D5CCC = .sdata2:0x801D5CCC; // type:object size:0x4 data:float +lbl_801D5CD0 = .sdata2:0x801D5CD0; // type:object size:0x8 data:double +lbl_801D5CD8 = .sdata2:0x801D5CD8; // type:object size:0x4 data:float +lbl_801D5CDC = .sdata2:0x801D5CDC; // type:object size:0x2 data:2byte +lbl_801D5CDE = .sdata2:0x801D5CDE; // type:object size:0x2 data:2byte +lbl_801D5CE0 = .sdata2:0x801D5CE0; // type:object size:0x2 data:2byte +lbl_801D5CE4 = .sdata2:0x801D5CE4; // type:object size:0x4 data:float +lbl_801D5CE8 = .sdata2:0x801D5CE8; // type:object size:0x4 data:float +lbl_801D5CEC = .sdata2:0x801D5CEC; // type:object size:0x4 data:float +lbl_801D5CF0 = .sdata2:0x801D5CF0; // type:object size:0x2 data:2byte +lbl_801D5CF2 = .sdata2:0x801D5CF2; // type:object size:0x2 data:2byte +lbl_801D5CF4 = .sdata2:0x801D5CF4; // type:object size:0x2 data:2byte +lbl_801D5CF8 = .sdata2:0x801D5CF8; // type:object size:0x4 data:float +lbl_801D5CFC = .sdata2:0x801D5CFC; // type:object size:0x4 data:float +lbl_801D5D00 = .sdata2:0x801D5D00; // type:object size:0x4 data:float +lbl_801D5D04 = .sdata2:0x801D5D04; // type:object size:0x4 data:float +lbl_801D5D08 = .sdata2:0x801D5D08; // type:object size:0x4 data:float +lbl_801D5D0C = .sdata2:0x801D5D0C; // type:object size:0x4 data:float +lbl_801D5D10 = .sdata2:0x801D5D10; // type:object size:0x4 data:float +lbl_801D5D18 = .sdata2:0x801D5D18; // type:object size:0x8 data:double +lbl_801D5D20 = .sdata2:0x801D5D20; // type:object size:0x4 data:float +lbl_801D5D24 = .sdata2:0x801D5D24; // type:object size:0x4 data:float +lbl_801D5D28 = .sdata2:0x801D5D28; // type:object size:0x4 data:float +lbl_801D5D2C = .sdata2:0x801D5D2C; // type:object size:0x4 data:float +lbl_801D5D30 = .sdata2:0x801D5D30; // type:object size:0x4 data:float +lbl_801D5D34 = .sdata2:0x801D5D34; // type:object size:0x4 data:float +lbl_801D5D38 = .sdata2:0x801D5D38; // type:object size:0x4 data:float +lbl_801D5D40 = .sdata2:0x801D5D40; // type:object size:0x8 data:double +lbl_801D5D48 = .sdata2:0x801D5D48; // type:object size:0x8 data:double +lbl_801D5D50 = .sdata2:0x801D5D50; // type:object size:0x8 data:double +lbl_801D5D58 = .sdata2:0x801D5D58; // type:object size:0x4 data:float +lbl_801D5D5C = .sdata2:0x801D5D5C; // type:object size:0x4 data:float +lbl_801D5D60 = .sdata2:0x801D5D60; // type:object size:0x4 data:float +lbl_801D5D64 = .sdata2:0x801D5D64; // type:object size:0x4 data:float +lbl_801D5D68 = .sdata2:0x801D5D68; // type:object size:0x4 data:float +lbl_801D5D6C = .sdata2:0x801D5D6C; // type:object size:0x4 data:float +lbl_801D5D70 = .sdata2:0x801D5D70; // type:object size:0x4 data:float +lbl_801D5D74 = .sdata2:0x801D5D74; // type:object size:0x4 data:float +lbl_801D5D78 = .sdata2:0x801D5D78; // type:object size:0x4 data:float +lbl_801D5D7C = .sdata2:0x801D5D7C; // type:object size:0x4 data:float +lbl_801D5D80 = .sdata2:0x801D5D80; // type:object size:0x4 data:float +lbl_801D5D84 = .sdata2:0x801D5D84; // type:object size:0x4 data:float +lbl_801D5D88 = .sdata2:0x801D5D88; // type:object size:0x4 data:float +lbl_801D5D8C = .sdata2:0x801D5D8C; // type:object size:0x4 data:float +lbl_801D5D90 = .sdata2:0x801D5D90; // type:object size:0x4 data:float +lbl_801D5D94 = .sdata2:0x801D5D94; // type:object size:0x4 data:float +lbl_801D5D98 = .sdata2:0x801D5D98; // type:object size:0x4 data:float +lbl_801D5D9C = .sdata2:0x801D5D9C; // type:object size:0x4 data:float +lbl_801D5DA0 = .sdata2:0x801D5DA0; // type:object size:0x4 data:float +lbl_801D5DA4 = .sdata2:0x801D5DA4; // type:object size:0x4 data:float +lbl_801D5DA8 = .sdata2:0x801D5DA8; // type:object size:0x8 data:double +lbl_801D5DB0 = .sdata2:0x801D5DB0; // type:object size:0x8 data:double +lbl_801D5DB8 = .sdata2:0x801D5DB8; // type:object size:0x4 data:float +lbl_801D5DC0 = .sdata2:0x801D5DC0; // type:object size:0x8 data:double +lbl_801D5DC8 = .sdata2:0x801D5DC8; // type:object size:0x8 data:double +lbl_801D5DD0 = .sdata2:0x801D5DD0; // type:object size:0x4 data:float +lbl_801D5DD4 = .sdata2:0x801D5DD4; // type:object size:0x4 data:float +lbl_801D5DD8 = .sdata2:0x801D5DD8; // type:object size:0x4 data:float +lbl_801D5DDC = .sdata2:0x801D5DDC; // type:object size:0x4 data:float +lbl_801D5DE0 = .sdata2:0x801D5DE0; // type:object size:0x4 data:float +lbl_801D5DE4 = .sdata2:0x801D5DE4; // type:object size:0x4 data:float +lbl_801D5DE8 = .sdata2:0x801D5DE8; // type:object size:0x4 data:float +lbl_801D5DEC = .sdata2:0x801D5DEC; // type:object size:0x4 data:float +lbl_801D5DF0 = .sdata2:0x801D5DF0; // type:object size:0x4 data:float +lbl_801D5DF4 = .sdata2:0x801D5DF4; // type:object size:0x4 data:float +lbl_801D5DF8 = .sdata2:0x801D5DF8; // type:object size:0x4 data:float +lbl_801D5DFC = .sdata2:0x801D5DFC; // type:object size:0x4 data:float +lbl_801D5E00 = .sdata2:0x801D5E00; // type:object size:0x4 data:float +lbl_801D5E04 = .sdata2:0x801D5E04; // type:object size:0x4 data:float +lbl_801D5E08 = .sdata2:0x801D5E08; // type:object size:0x4 data:float +lbl_801D5E0C = .sdata2:0x801D5E0C; // type:object size:0x4 data:float +lbl_801D5E10 = .sdata2:0x801D5E10; // type:object size:0x4 data:float +lbl_801D5E14 = .sdata2:0x801D5E14; // type:object size:0x4 data:float +lbl_801D5E18 = .sdata2:0x801D5E18; // type:object size:0x4 data:float +lbl_801D5E20 = .sdata2:0x801D5E20; // type:object size:0x8 data:double +lbl_801D5E28 = .sdata2:0x801D5E28; // type:object size:0x8 data:double +lbl_801D5E30 = .sdata2:0x801D5E30; // type:object size:0x8 data:double +lbl_801D5E38 = .sdata2:0x801D5E38; // type:object size:0x8 data:double +lbl_801D5E40 = .sdata2:0x801D5E40; // type:object size:0x4 data:float +lbl_801D5E44 = .sdata2:0x801D5E44; // type:object size:0x4 data:float +lbl_801D5E48 = .sdata2:0x801D5E48; // type:object size:0x4 data:float +lbl_801D5E4C = .sdata2:0x801D5E4C; // type:object size:0x4 data:float +lbl_801D5E50 = .sdata2:0x801D5E50; // type:object size:0x4 data:float +lbl_801D5E54 = .sdata2:0x801D5E54; // type:object size:0x4 data:float +lbl_801D5E58 = .sdata2:0x801D5E58; // type:object size:0x4 data:float +lbl_801D5E5C = .sdata2:0x801D5E5C; // type:object size:0x4 data:float +lbl_801D5E60 = .sdata2:0x801D5E60; // type:object size:0x4 data:float +lbl_801D5E64 = .sdata2:0x801D5E64; // type:object size:0x4 data:float +lbl_801D5E68 = .sdata2:0x801D5E68; // type:object size:0x4 data:float +lbl_801D5E6C = .sdata2:0x801D5E6C; // type:object size:0x4 data:float +lbl_801D5E70 = .sdata2:0x801D5E70; // type:object size:0x4 data:float +lbl_801D5E74 = .sdata2:0x801D5E74; // type:object size:0x4 data:float +lbl_801D5E78 = .sdata2:0x801D5E78; // type:object size:0x4 data:float +lbl_801D5E7C = .sdata2:0x801D5E7C; // type:object size:0x4 data:float +lbl_801D5E80 = .sdata2:0x801D5E80; // type:object size:0x4 data:float +lbl_801D5E84 = .sdata2:0x801D5E84; // type:object size:0x4 data:float +lbl_801D5E88 = .sdata2:0x801D5E88; // type:object size:0x4 data:float +lbl_801D5E8C = .sdata2:0x801D5E8C; // type:object size:0x4 data:float +lbl_801D5E90 = .sdata2:0x801D5E90; // type:object size:0x4 data:float +lbl_801D5E94 = .sdata2:0x801D5E94; // type:object size:0x4 data:float +lbl_801D5E98 = .sdata2:0x801D5E98; // type:object size:0x8 data:double +lbl_801D5EA0 = .sdata2:0x801D5EA0; // type:object size:0x8 data:double +lbl_801D5EA8 = .sdata2:0x801D5EA8; // type:object size:0x4 data:float +lbl_801D5EAC = .sdata2:0x801D5EAC; // type:object size:0x4 data:float +lbl_801D5EB0 = .sdata2:0x801D5EB0; // type:object size:0x8 data:double +lbl_801D5EB8 = .sdata2:0x801D5EB8; // type:object size:0x4 data:float +lbl_801D5EBC = .sdata2:0x801D5EBC; // type:object size:0x4 data:float +lbl_801D5EC0 = .sdata2:0x801D5EC0; // type:object size:0x4 data:float +lbl_801D5EC4 = .sdata2:0x801D5EC4; // type:object size:0x4 data:float +lbl_801D5EC8 = .sdata2:0x801D5EC8; // type:object size:0x4 data:float +lbl_801D5ECC = .sdata2:0x801D5ECC; // type:object size:0x4 data:float +lbl_801D5ED0 = .sdata2:0x801D5ED0; // type:object size:0x4 data:float +lbl_801D5ED4 = .sdata2:0x801D5ED4; // type:object size:0x4 data:float +lbl_801D5ED8 = .sdata2:0x801D5ED8; // type:object size:0x4 data:float +lbl_801D5EDC = .sdata2:0x801D5EDC; // type:object size:0x4 data:float +lbl_801D5EE0 = .sdata2:0x801D5EE0; // type:object size:0x4 data:float +lbl_801D5EE4 = .sdata2:0x801D5EE4; // type:object size:0x4 data:float +lbl_801D5EE8 = .sdata2:0x801D5EE8; // type:object size:0x4 data:float +lbl_801D5EEC = .sdata2:0x801D5EEC; // type:object size:0x4 data:float +lbl_801D5EF0 = .sdata2:0x801D5EF0; // type:object size:0x4 data:float +lbl_801D5EF4 = .sdata2:0x801D5EF4; // type:object size:0x4 data:float +lbl_801D5EF8 = .sdata2:0x801D5EF8; // type:object size:0x4 data:float +lbl_801D5EFC = .sdata2:0x801D5EFC; // type:object size:0x4 data:float +lbl_801D5F00 = .sdata2:0x801D5F00; // type:object size:0x4 data:float +lbl_801D5F04 = .sdata2:0x801D5F04; // type:object size:0x4 data:float +lbl_801D5F08 = .sdata2:0x801D5F08; // type:object size:0x4 data:float +lbl_801D5F10 = .sdata2:0x801D5F10; // type:object size:0x8 data:double +lbl_801D5F18 = .sdata2:0x801D5F18; // type:object size:0x8 data:double +lbl_801D5F20 = .sdata2:0x801D5F20; // type:object size:0x8 data:double +lbl_801D5F28 = .sdata2:0x801D5F28; // type:object size:0x8 data:double +lbl_801D5F30 = .sdata2:0x801D5F30; // type:object size:0x4 data:float +lbl_801D5F34 = .sdata2:0x801D5F34; // type:object size:0x4 data:float +lbl_801D5F38 = .sdata2:0x801D5F38; // type:object size:0x4 data:float +lbl_801D5F3C = .sdata2:0x801D5F3C; // type:object size:0x4 data:float +lbl_801D5F40 = .sdata2:0x801D5F40; // type:object size:0x4 data:float +lbl_801D5F44 = .sdata2:0x801D5F44; // type:object size:0x4 data:float +lbl_801D5F48 = .sdata2:0x801D5F48; // type:object size:0x4 data:float +lbl_801D5F4C = .sdata2:0x801D5F4C; // type:object size:0x4 data:float +lbl_801D5F50 = .sdata2:0x801D5F50; // type:object size:0x4 data:float +lbl_801D5F54 = .sdata2:0x801D5F54; // type:object size:0x1 data:byte +lbl_801D5F55 = .sdata2:0x801D5F55; // type:object size:0x1 data:byte +lbl_801D5F56 = .sdata2:0x801D5F56; // type:object size:0x1 data:byte +lbl_801D5F57 = .sdata2:0x801D5F57; // type:object size:0x1 data:byte +lbl_801D5F58 = .sdata2:0x801D5F58; // type:object size:0x8 data:float +lbl_801D5F60 = .sdata2:0x801D5F60; // type:object size:0x4 data:float +lbl_801D5F64 = .sdata2:0x801D5F64; // type:object size:0x4 data:float +lbl_801D5F68 = .sdata2:0x801D5F68; // type:object size:0x4 data:float +lbl_801D5F6C = .sdata2:0x801D5F6C; // type:object size:0x4 data:float +lbl_801D5F70 = .sdata2:0x801D5F70; // type:object size:0x4 data:float +lbl_801D5F74 = .sdata2:0x801D5F74; // type:object size:0x4 data:float +lbl_801D5F78 = .sdata2:0x801D5F78; // type:object size:0x4 data:float +lbl_801D5F7C = .sdata2:0x801D5F7C; // type:object size:0x4 data:float +lbl_801D5F80 = .sdata2:0x801D5F80; // type:object size:0x4 data:float +lbl_801D5F84 = .sdata2:0x801D5F84; // type:object size:0x4 data:float +lbl_801D5F88 = .sdata2:0x801D5F88; // type:object size:0x4 data:float +lbl_801D5F8C = .sdata2:0x801D5F8C; // type:object size:0x4 data:float +lbl_801D5F90 = .sdata2:0x801D5F90; // type:object size:0x4 data:float +lbl_801D5F94 = .sdata2:0x801D5F94; // type:object size:0x4 data:float +lbl_801D5F98 = .sdata2:0x801D5F98; // type:object size:0x4 data:float +lbl_801D5F9C = .sdata2:0x801D5F9C; // type:object size:0x4 data:float +lbl_801D5FA0 = .sdata2:0x801D5FA0; // type:object size:0x4 data:float +lbl_801D5FA4 = .sdata2:0x801D5FA4; // type:object size:0x4 data:float +lbl_801D5FA8 = .sdata2:0x801D5FA8; // type:object size:0x4 data:float +lbl_801D5FAC = .sdata2:0x801D5FAC; // type:object size:0x4 data:float +lbl_801D5FB0 = .sdata2:0x801D5FB0; // type:object size:0x4 data:float +lbl_801D5FB4 = .sdata2:0x801D5FB4; // type:object size:0x4 data:float +lbl_801D5FB8 = .sdata2:0x801D5FB8; // type:object size:0x4 data:float +lbl_801D5FBC = .sdata2:0x801D5FBC; // type:object size:0x4 data:float +lbl_801D5FC0 = .sdata2:0x801D5FC0; // type:object size:0x4 data:float +lbl_801D5FC4 = .sdata2:0x801D5FC4; // type:object size:0x4 data:float +lbl_801D5FC8 = .sdata2:0x801D5FC8; // type:object size:0x4 data:float +lbl_801D5FCC = .sdata2:0x801D5FCC; // type:object size:0x4 data:float +lbl_801D5FD0 = .sdata2:0x801D5FD0; // type:object size:0x4 data:float +lbl_801D5FD4 = .sdata2:0x801D5FD4; // type:object size:0x4 data:float +lbl_801D5FD8 = .sdata2:0x801D5FD8; // type:object size:0x4 data:float +lbl_801D5FDC = .sdata2:0x801D5FDC; // type:object size:0x4 data:float +lbl_801D5FE0 = .sdata2:0x801D5FE0; // type:object size:0x4 data:float +lbl_801D5FE4 = .sdata2:0x801D5FE4; // type:object size:0x4 data:float +lbl_801D5FE8 = .sdata2:0x801D5FE8; // type:object size:0x4 data:float +lbl_801D5FEC = .sdata2:0x801D5FEC; // type:object size:0x4 data:float +lbl_801D5FF0 = .sdata2:0x801D5FF0; // type:object size:0x4 data:float +lbl_801D5FF4 = .sdata2:0x801D5FF4; // type:object size:0x4 data:float +lbl_801D5FF8 = .sdata2:0x801D5FF8; // type:object size:0x4 data:float +lbl_801D5FFC = .sdata2:0x801D5FFC; // type:object size:0x4 data:float +lbl_801D6000 = .sdata2:0x801D6000; // type:object size:0x4 data:float +lbl_801D6004 = .sdata2:0x801D6004; // type:object size:0x4 data:float +lbl_801D6008 = .sdata2:0x801D6008; // type:object size:0x8 data:double +lbl_801D6010 = .sdata2:0x801D6010; // type:object size:0x8 data:float +lbl_801D6018 = .sdata2:0x801D6018; // type:object size:0x4 data:float +lbl_801D601C = .sdata2:0x801D601C; // type:object size:0x4 data:float +lbl_801D6020 = .sdata2:0x801D6020; // type:object size:0x4 data:float +lbl_801D6024 = .sdata2:0x801D6024; // type:object size:0x4 data:float +lbl_801D6028 = .sdata2:0x801D6028; // type:object size:0x8 data:float +lbl_801D6030 = .sdata2:0x801D6030; // type:object size:0x4 data:float +lbl_801D6034 = .sdata2:0x801D6034; // type:object size:0x4 data:float +lbl_801D6038 = .sdata2:0x801D6038; // type:object size:0x4 data:float +lbl_801D603C = .sdata2:0x801D603C; // type:object size:0x4 data:float +lbl_801D6040 = .sdata2:0x801D6040; // type:object size:0x4 data:float +lbl_801D6044 = .sdata2:0x801D6044; // type:object size:0x4 data:float +lbl_801D6048 = .sdata2:0x801D6048; // type:object size:0x4 data:float +lbl_801D604C = .sdata2:0x801D604C; // type:object size:0x4 data:float +lbl_801D6050 = .sdata2:0x801D6050; // type:object size:0x4 data:float +lbl_801D6054 = .sdata2:0x801D6054; // type:object size:0x4 data:float +lbl_801D6058 = .sdata2:0x801D6058; // type:object size:0x4 data:float +lbl_801D605C = .sdata2:0x801D605C; // type:object size:0x4 data:float +lbl_801D6060 = .sdata2:0x801D6060; // type:object size:0x8 data:double +lbl_801D6068 = .sdata2:0x801D6068; // type:object size:0x8 data:double +lbl_801D6070 = .sdata2:0x801D6070; // type:object size:0x4 data:float +lbl_801D6074 = .sdata2:0x801D6074; // type:object size:0x4 data:float +lbl_801D6078 = .sdata2:0x801D6078; // type:object size:0x4 data:float +lbl_801D607C = .sdata2:0x801D607C; // type:object size:0x4 data:float +lbl_801D6080 = .sdata2:0x801D6080; // type:object size:0x4 data:float +lbl_801D6084 = .sdata2:0x801D6084; // type:object size:0x4 data:float +lbl_801D6088 = .sdata2:0x801D6088; // type:object size:0x8 data:double +lbl_801D6090 = .sdata2:0x801D6090; // type:object size:0x8 data:double +lbl_801D6098 = .sdata2:0x801D6098; // type:object size:0x8 data:float +lbl_801D60A0 = .sdata2:0x801D60A0; // type:object size:0x4 data:float +lbl_801D60A8 = .sdata2:0x801D60A8; // type:object size:0x8 data:double +lbl_801D60B0 = .sdata2:0x801D60B0; // type:object size:0x4 data:4byte +lbl_801D60B4 = .sdata2:0x801D60B4; // type:object size:0x4 data:4byte +lbl_801D60B8 = .sdata2:0x801D60B8; // type:object size:0x4 data:4byte +lbl_801D60BC = .sdata2:0x801D60BC; // type:object size:0x4 data:float +lbl_801D60C0 = .sdata2:0x801D60C0; // type:object size:0x4 data:float +lbl_801D60C4 = .sdata2:0x801D60C4; // type:object size:0x4 data:float +lbl_801D60C8 = .sdata2:0x801D60C8; // type:object size:0x8 data:double +lbl_801D60D0 = .sdata2:0x801D60D0; // type:object size:0x8 data:float +lbl_801D60D8 = .sdata2:0x801D60D8; // type:object size:0x4 data:float +lbl_801D60DC = .sdata2:0x801D60DC; // type:object size:0x4 data:float +lbl_801D60E0 = .sdata2:0x801D60E0; // type:object size:0x4 data:float +lbl_801D60E4 = .sdata2:0x801D60E4; // type:object size:0x4 data:float +lbl_801D60E8 = .sdata2:0x801D60E8; // type:object size:0x4 data:float +lbl_801D60EC = .sdata2:0x801D60EC; // type:object size:0x4 data:float +lbl_801D60F0 = .sdata2:0x801D60F0; // type:object size:0x4 data:float +lbl_801D60F4 = .sdata2:0x801D60F4; // type:object size:0x4 data:float +lbl_801D60F8 = .sdata2:0x801D60F8; // type:object size:0x4 data:float +lbl_801D60FC = .sdata2:0x801D60FC; // type:object size:0x4 data:float +lbl_801D6100 = .sdata2:0x801D6100; // type:object size:0x4 data:float +lbl_801D6104 = .sdata2:0x801D6104; // type:object size:0x4 data:float +lbl_801D6108 = .sdata2:0x801D6108; // type:object size:0x4 data:float +lbl_801D6110 = .sdata2:0x801D6110; // type:object size:0x8 data:double +lbl_801D6118 = .sdata2:0x801D6118; // type:object size:0x8 data:double +lbl_801D6120 = .sdata2:0x801D6120; // type:object size:0x8 data:float +lbl_801D6128 = .sdata2:0x801D6128; // type:object size:0x4 data:float +lbl_801D6130 = .sdata2:0x801D6130; // type:object size:0x8 data:double +lbl_801D6138 = .sdata2:0x801D6138; // type:object size:0x4 data:float +lbl_801D613C = .sdata2:0x801D613C; // type:object size:0x4 data:float +lbl_801D6140 = .sdata2:0x801D6140; // type:object size:0x4 data:float +lbl_801D6144 = .sdata2:0x801D6144; // type:object size:0x4 data:float +lbl_801D6148 = .sdata2:0x801D6148; // type:object size:0x4 data:float +lbl_801D614C = .sdata2:0x801D614C; // type:object size:0x4 data:float +lbl_801D6150 = .sdata2:0x801D6150; // type:object size:0x4 data:float +lbl_801D6154 = .sdata2:0x801D6154; // type:object size:0x4 data:float +lbl_801D6158 = .sdata2:0x801D6158; // type:object size:0x4 data:float +lbl_801D6160 = .sdata2:0x801D6160; // type:object size:0x8 data:double +lbl_801D6168 = .sdata2:0x801D6168; // type:object size:0x4 data:float +lbl_801D616C = .sdata2:0x801D616C; // type:object size:0x4 data:float +lbl_801D6170 = .sdata2:0x801D6170; // type:object size:0x8 data:double +lbl_801D6178 = .sdata2:0x801D6178; // type:object size:0x4 data:float +lbl_801D6180 = .sdata2:0x801D6180; // type:object size:0x8 data:double +lbl_801D6188 = .sdata2:0x801D6188; // type:object size:0x4 data:float +lbl_801D6190 = .sdata2:0x801D6190; // type:object size:0x8 data:double +lbl_801D6198 = .sdata2:0x801D6198; // type:object size:0x4 data:float +lbl_801D619C = .sdata2:0x801D619C; // type:object size:0x4 data:float +lbl_801D61A0 = .sdata2:0x801D61A0; // type:object size:0x4 data:float +lbl_801D61A8 = .sdata2:0x801D61A8; // type:object size:0x8 data:double +lbl_801D61B0 = .sdata2:0x801D61B0; // type:object size:0x4 data:float +lbl_801D61B4 = .sdata2:0x801D61B4; // type:object size:0x4 data:float +lbl_801D61B8 = .sdata2:0x801D61B8; // type:object size:0x8 data:double +lbl_801D61C0 = .sdata2:0x801D61C0; // type:object size:0x4 data:float +lbl_801D61C4 = .sdata2:0x801D61C4; // type:object size:0x4 data:float +lbl_801D61C8 = .sdata2:0x801D61C8; // type:object size:0x4 data:float +lbl_801D61CC = .sdata2:0x801D61CC; // type:object size:0x4 data:float +lbl_801D61D0 = .sdata2:0x801D61D0; // type:object size:0x4 data:float +lbl_801D61D8 = .sdata2:0x801D61D8; // type:object size:0x8 data:double +lbl_801D61E0 = .sdata2:0x801D61E0; // type:object size:0x4 data:4byte +lbl_801D61E8 = .sdata2:0x801D61E8; // type:object size:0x8 data:double +lbl_801D61F0 = .sdata2:0x801D61F0; // type:object size:0x8 data:double +lbl_801D61F8 = .sdata2:0x801D61F8; // type:object size:0x8 data:double +lbl_801D6200 = .sdata2:0x801D6200; // type:object size:0x8 data:double +lbl_801D6208 = .sdata2:0x801D6208; // type:object size:0x8 data:double +lbl_801D6210 = .sdata2:0x801D6210; // type:object size:0x8 data:double +lbl_801D6218 = .sdata2:0x801D6218; // type:object size:0x8 data:double +lbl_801D6220 = .sdata2:0x801D6220; // type:object size:0x8 data:double +lbl_801D6228 = .sdata2:0x801D6228; // type:object size:0x8 data:double +lbl_801D6230 = .sdata2:0x801D6230; // type:object size:0x8 data:double +lbl_801D6238 = .sdata2:0x801D6238; // type:object size:0x8 data:double +lbl_801D6240 = .sdata2:0x801D6240; // type:object size:0x8 data:double +lbl_801D6248 = .sdata2:0x801D6248; // type:object size:0x8 data:double +lbl_801D6250 = .sdata2:0x801D6250; // type:object size:0x8 data:double +lbl_801D6258 = .sdata2:0x801D6258; // type:object size:0x8 data:double +lbl_801D6260 = .sdata2:0x801D6260; // type:object size:0x8 data:double +lbl_801D6268 = .sdata2:0x801D6268; // type:object size:0x8 data:double +lbl_801D6270 = .sdata2:0x801D6270; // type:object size:0x8 data:double +lbl_801D6278 = .sdata2:0x801D6278; // type:object size:0x8 data:double +lbl_801D6280 = .sdata2:0x801D6280; // type:object size:0x8 data:double +lbl_801D6288 = .sdata2:0x801D6288; // type:object size:0x8 data:double +lbl_801D6290 = .sdata2:0x801D6290; // type:object size:0x8 data:double +lbl_801D6298 = .sdata2:0x801D6298; // type:object size:0x8 data:double +lbl_801D62A0 = .sdata2:0x801D62A0; // type:object size:0x8 data:double +lbl_801D62A8 = .sdata2:0x801D62A8; // type:object size:0x8 data:double +lbl_801D62B0 = .sdata2:0x801D62B0; // type:object size:0x8 data:double +lbl_801D62B8 = .sdata2:0x801D62B8; // type:object size:0x8 data:double +lbl_801D62C0 = .sdata2:0x801D62C0; // type:object size:0x8 data:double +lbl_801D62C8 = .sdata2:0x801D62C8; // type:object size:0x8 data:double +lbl_801D62D0 = .sdata2:0x801D62D0; // type:object size:0x8 data:double +lbl_801D62D8 = .sdata2:0x801D62D8; // type:object size:0x8 data:double +lbl_801D62E0 = .sdata2:0x801D62E0; // type:object size:0x8 data:double +lbl_801D62E8 = .sdata2:0x801D62E8; // type:object size:0x8 data:double +lbl_801D62F0 = .sdata2:0x801D62F0; // type:object size:0x8 data:double +lbl_801D62F8 = .sdata2:0x801D62F8; // type:object size:0x8 data:double +lbl_801D6300 = .sdata2:0x801D6300; // type:object size:0x8 data:double +lbl_801D6308 = .sdata2:0x801D6308; // type:object size:0x8 data:double +lbl_801D6310 = .sdata2:0x801D6310; // type:object size:0x8 data:double +lbl_801D6318 = .sdata2:0x801D6318; // type:object size:0x8 data:double +lbl_801D6320 = .sdata2:0x801D6320; // type:object size:0x8 data:double +lbl_801D6328 = .sdata2:0x801D6328; // type:object size:0x8 data:double +lbl_801D6330 = .sdata2:0x801D6330; // type:object size:0x8 data:double +lbl_801D6338 = .sdata2:0x801D6338; // type:object size:0x8 data:double +lbl_801D6340 = .sdata2:0x801D6340; // type:object size:0x8 data:double +lbl_801D6348 = .sdata2:0x801D6348; // type:object size:0x8 data:double +lbl_801D6350 = .sdata2:0x801D6350; // type:object size:0x8 data:double +lbl_801D6358 = .sdata2:0x801D6358; // type:object size:0x8 data:double +lbl_801D6360 = .sdata2:0x801D6360; // type:object size:0x8 data:double +lbl_801D6368 = .sdata2:0x801D6368; // type:object size:0x8 data:double +lbl_801D6370 = .sdata2:0x801D6370; // type:object size:0x8 data:double +lbl_801D6378 = .sdata2:0x801D6378; // type:object size:0x8 data:double +lbl_801D6380 = .sdata2:0x801D6380; // type:object size:0x8 data:double +lbl_801D6388 = .sdata2:0x801D6388; // type:object size:0x8 data:double +lbl_801D6390 = .sdata2:0x801D6390; // type:object size:0x8 data:double +lbl_801D6398 = .sdata2:0x801D6398; // type:object size:0x8 data:double +lbl_801D63A0 = .sdata2:0x801D63A0; // type:object size:0x8 data:double +lbl_801D63A8 = .sdata2:0x801D63A8; // type:object size:0x8 data:double +lbl_801D63B0 = .sdata2:0x801D63B0; // type:object size:0x8 data:double +lbl_801D63B8 = .sdata2:0x801D63B8; // type:object size:0x8 data:double +lbl_801D63C0 = .sdata2:0x801D63C0; // type:object size:0x8 data:double +lbl_801D63C8 = .sdata2:0x801D63C8; // type:object size:0x8 data:double +lbl_801D63D0 = .sdata2:0x801D63D0; // type:object size:0x8 data:double +lbl_801D63D8 = .sdata2:0x801D63D8; // type:object size:0x8 data:double +lbl_801D63E0 = .sdata2:0x801D63E0; // type:object size:0x8 data:double +lbl_801D63E8 = .sdata2:0x801D63E8; // type:object size:0x8 data:double +lbl_801D63F0 = .sdata2:0x801D63F0; // type:object size:0x8 data:double +lbl_801D63F8 = .sdata2:0x801D63F8; // type:object size:0x8 data:double +lbl_801D6400 = .sdata2:0x801D6400; // type:object size:0x8 data:double +lbl_801D6408 = .sdata2:0x801D6408; // type:object size:0x8 data:double +lbl_801D6410 = .sdata2:0x801D6410; // type:object size:0x8 data:double +lbl_801D6418 = .sdata2:0x801D6418; // type:object size:0x8 data:double +lbl_801D6420 = .sdata2:0x801D6420; // type:object size:0x8 data:double +lbl_801D6428 = .sdata2:0x801D6428; // type:object size:0x8 data:double +lbl_801D6430 = .sdata2:0x801D6430; // type:object size:0x8 data:double +lbl_801D6438 = .sdata2:0x801D6438; // type:object size:0x8 data:double +lbl_801D6440 = .sdata2:0x801D6440; // type:object size:0x8 data:double +lbl_801D6448 = .sdata2:0x801D6448; // type:object size:0x8 data:double +lbl_801D6450 = .sdata2:0x801D6450; // type:object size:0x8 data:double +lbl_801D6458 = .sdata2:0x801D6458; // type:object size:0x8 data:double +lbl_801D6460 = .sdata2:0x801D6460; // type:object size:0x8 data:double +lbl_801D6468 = .sdata2:0x801D6468; // type:object size:0x8 data:double +lbl_801D6470 = .sdata2:0x801D6470; // type:object size:0x8 data:double +lbl_801D6478 = .sdata2:0x801D6478; // type:object size:0x8 data:double +lbl_801D6480 = .sdata2:0x801D6480; // type:object size:0x8 data:double +lbl_801D6488 = .sdata2:0x801D6488; // type:object size:0x8 data:double +lbl_801D6490 = .sdata2:0x801D6490; // type:object size:0x8 data:double +lbl_801D6498 = .sdata2:0x801D6498; // type:object size:0x8 data:double +lbl_801D64A0 = .sdata2:0x801D64A0; // type:object size:0x8 data:double +lbl_801D64A8 = .sdata2:0x801D64A8; // type:object size:0x8 data:double +lbl_801D64B0 = .sdata2:0x801D64B0; // type:object size:0x8 data:double +lbl_801D64B8 = .sdata2:0x801D64B8; // type:object size:0x8 data:double +lbl_801D64C0 = .sdata2:0x801D64C0; // type:object size:0x8 data:double +lbl_801D64C8 = .sdata2:0x801D64C8; // type:object size:0x8 data:double +lbl_801D64D0 = .sdata2:0x801D64D0; // type:object size:0x8 data:double +lbl_801D64D8 = .sdata2:0x801D64D8; // type:object size:0x8 data:double +lbl_801D64E0 = .sdata2:0x801D64E0; // type:object size:0x8 data:double +lbl_801D64E8 = .sdata2:0x801D64E8; // type:object size:0x8 data:double +lbl_801D64F0 = .sdata2:0x801D64F0; // type:object size:0x8 data:double +lbl_801D64F8 = .sdata2:0x801D64F8; // type:object size:0x8 data:double +lbl_801D6500 = .sdata2:0x801D6500; // type:object size:0x8 data:double +lbl_801D6508 = .sdata2:0x801D6508; // type:object size:0x8 data:double +lbl_801D6510 = .sdata2:0x801D6510; // type:object size:0x8 data:double +lbl_801D6518 = .sdata2:0x801D6518; // type:object size:0x8 data:double +lbl_801D6520 = .sdata2:0x801D6520; // type:object size:0x8 data:double +lbl_801D6528 = .sdata2:0x801D6528; // type:object size:0x8 data:double +lbl_801D6530 = .sdata2:0x801D6530; // type:object size:0x8 data:double +lbl_801D6538 = .sdata2:0x801D6538; // type:object size:0x8 data:double +lbl_801D6540 = .sdata2:0x801D6540; // type:object size:0x8 data:double +lbl_801D6548 = .sdata2:0x801D6548; // type:object size:0x8 data:double +lbl_801D6550 = .sdata2:0x801D6550; // type:object size:0x8 data:double +lbl_801D6558 = .sdata2:0x801D6558; // type:object size:0x8 data:double +lbl_801D6560 = .sdata2:0x801D6560; // type:object size:0x8 data:double +lbl_801D6568 = .sdata2:0x801D6568; // type:object size:0x8 data:double +lbl_801D6570 = .sdata2:0x801D6570; // type:object size:0x8 data:double +lbl_801D6578 = .sdata2:0x801D6578; // type:object size:0x8 data:double +lbl_801D6580 = .sdata2:0x801D6580; // type:object size:0x8 data:double +lbl_801D6588 = .sdata2:0x801D6588; // type:object size:0x8 data:double +lbl_801D6590 = .sdata2:0x801D6590; // type:object size:0x8 data:double +lbl_801D6598 = .sdata2:0x801D6598; // type:object size:0x8 data:double +lbl_801D65A0 = .sdata2:0x801D65A0; // type:object size:0x8 data:double +lbl_801D65A8 = .sdata2:0x801D65A8; // type:object size:0x8 data:double +lbl_801D65B0 = .sdata2:0x801D65B0; // type:object size:0x8 data:double +lbl_801D65B8 = .sdata2:0x801D65B8; // type:object size:0x8 data:double +lbl_801D65C0 = .sdata2:0x801D65C0; // type:object size:0x8 data:double +lbl_801D65C8 = .sdata2:0x801D65C8; // type:object size:0x8 data:double +lbl_801D65D0 = .sdata2:0x801D65D0; // type:object size:0x8 data:double +lbl_801D65D8 = .sdata2:0x801D65D8; // type:object size:0x8 data:double +lbl_801D65E0 = .sdata2:0x801D65E0; // type:object size:0x8 data:double +lbl_801D65E8 = .sdata2:0x801D65E8; // type:object size:0x8 data:double +lbl_801D65F0 = .sdata2:0x801D65F0; // type:object size:0x8 data:double +lbl_801D65F8 = .sdata2:0x801D65F8; // type:object size:0x8 data:double +lbl_801D6600 = .sdata2:0x801D6600; // type:object size:0x8 data:double +lbl_801D6608 = .sdata2:0x801D6608; // type:object size:0x8 data:double +lbl_801D6610 = .sdata2:0x801D6610; // type:object size:0x8 data:double +lbl_801D6618 = .sdata2:0x801D6618; // type:object size:0x8 data:double +lbl_801D6620 = .sdata2:0x801D6620; // type:object size:0x8 data:double +lbl_801D6628 = .sdata2:0x801D6628; // type:object size:0x8 data:double +lbl_801D6630 = .sdata2:0x801D6630; // type:object size:0x8 data:double +lbl_801D6638 = .sdata2:0x801D6638; // type:object size:0x8 data:double +lbl_801D6640 = .sdata2:0x801D6640; // type:object size:0x8 data:double +lbl_801D6648 = .sdata2:0x801D6648; // type:object size:0x8 data:double +lbl_801D6650 = .sdata2:0x801D6650; // type:object size:0x4 data:float +lbl_801D6654 = .sdata2:0x801D6654; // type:object size:0x4 data:float +lbl_801D6658 = .sdata2:0x801D6658; // type:object size:0x4 data:float +lbl_801D6660 = .sdata2:0x801D6660; // type:object size:0x8 data:double +lbl_801D6668 = .sdata2:0x801D6668; // type:object size:0x8 data:double +lbl_801D6670 = .sdata2:0x801D6670; // type:object size:0x4 data:float +lbl_801D6674 = .sdata2:0x801D6674; // type:object size:0x4 data:float +lbl_801D6678 = .sdata2:0x801D6678; // type:object size:0x4 data:float +lbl_801D667C = .sdata2:0x801D667C; // type:object size:0x4 data:float +lbl_801D6680 = .sdata2:0x801D6680; // type:object size:0x4 data:float +lbl_801D6684 = .sdata2:0x801D6684; // type:object size:0x4 data:float +lbl_801D6688 = .sdata2:0x801D6688; // type:object size:0x4 data:float +lbl_801D668C = .sdata2:0x801D668C; // type:object size:0x4 data:float +lbl_801D6690 = .sdata2:0x801D6690; // type:object size:0x4 data:float +lbl_801D6698 = .sdata2:0x801D6698; // type:object size:0x8 data:double +lbl_801D66A0 = .sdata2:0x801D66A0; // type:object size:0x8 data:double +lbl_801D66A8 = .sdata2:0x801D66A8; // type:object size:0x4 data:float +lbl_801D66AC = .sdata2:0x801D66AC; // type:object size:0x4 data:float +lbl_801D66B0 = .sdata2:0x801D66B0; // type:object size:0x4 data:float +lbl_801D66B8 = .sdata2:0x801D66B8; // type:object size:0x8 data:double +lbl_801D66C0 = .sdata2:0x801D66C0; // type:object size:0x8 data:float +lbl_801D66C8 = .sdata2:0x801D66C8; // type:object size:0x4 data:float +lbl_801D66CC = .sdata2:0x801D66CC; // type:object size:0x4 data:float +lbl_801D66D0 = .sdata2:0x801D66D0; // type:object size:0x4 data:float +lbl_801D66D8 = .sdata2:0x801D66D8; // type:object size:0x8 data:double +lbl_801D66E0 = .sdata2:0x801D66E0; // type:object size:0x8 data:double +lbl_801D66E8 = .sdata2:0x801D66E8; // type:object size:0x4 data:float +lbl_801D66EC = .sdata2:0x801D66EC; // type:object size:0x4 data:float +lbl_801D66F0 = .sdata2:0x801D66F0; // type:object size:0x4 data:float +lbl_801D66F8 = .sdata2:0x801D66F8; // type:object size:0x8 data:double +lbl_801D6700 = .sdata2:0x801D6700; // type:object size:0x4 data:float +lbl_801D6708 = .sdata2:0x801D6708; // type:object size:0x8 data:double +lbl_801D6710 = .sdata2:0x801D6710; // type:object size:0x4 data:float +lbl_801D6714 = .sdata2:0x801D6714; // type:object size:0x4 data:float +lbl_801D6718 = .sdata2:0x801D6718; // type:object size:0x8 data:double +lbl_801D6720 = .sdata2:0x801D6720; // type:object size:0x4 data:float +lbl_801D6728 = .sdata2:0x801D6728; // type:object size:0x8 data:double +lbl_801D6730 = .sdata2:0x801D6730; // type:object size:0x4 data:float +lbl_801D6734 = .sdata2:0x801D6734; // type:object size:0x4 data:float +lbl_801D6738 = .sdata2:0x801D6738; // type:object size:0x4 data:float +lbl_801D6740 = .sdata2:0x801D6740; // type:object size:0x8 data:double +lbl_801D6748 = .sdata2:0x801D6748; // type:object size:0x4 data:float +lbl_801D6750 = .sdata2:0x801D6750; // type:object size:0x8 data:double +lbl_801D6758 = .sdata2:0x801D6758; // type:object size:0x4 data:float +lbl_801D675C = .sdata2:0x801D675C; // type:object size:0x4 data:float +lbl_801D6760 = .sdata2:0x801D6760; // type:object size:0x8 data:float +lbl_801D6768 = .sdata2:0x801D6768; // type:object size:0x4 data:float +lbl_801D6770 = .sdata2:0x801D6770; // type:object size:0x8 data:double +lbl_801D6778 = .sdata2:0x801D6778; // type:object size:0x4 data:float +lbl_801D677C = .sdata2:0x801D677C; // type:object size:0x4 data:float +lbl_801D6780 = .sdata2:0x801D6780; // type:object size:0x8 data:double +lbl_801D6788 = .sdata2:0x801D6788; // type:object size:0x4 data:float +lbl_801D678C = .sdata2:0x801D678C; // type:object size:0x4 data:float +lbl_801D6790 = .sdata2:0x801D6790; // type:object size:0x8 data:double +lbl_801D6798 = .sdata2:0x801D6798; // type:object size:0x4 data:float +lbl_801D679C = .sdata2:0x801D679C; // type:object size:0x4 data:float +lbl_801D67A0 = .sdata2:0x801D67A0; // type:object size:0x4 data:float +lbl_801D67A4 = .sdata2:0x801D67A4; // type:object size:0x4 data:float +lbl_801D67A8 = .sdata2:0x801D67A8; // type:object size:0x4 data:float +lbl_801D67AC = .sdata2:0x801D67AC; // type:object size:0x4 data:float +lbl_801D67B0 = .sdata2:0x801D67B0; // type:object size:0x8 data:float +lbl_801D67B8 = .sdata2:0x801D67B8; // type:object size:0x4 data:float +lbl_801D67C0 = .sdata2:0x801D67C0; // type:object size:0x8 data:double +lbl_801D67C8 = .sdata2:0x801D67C8; // type:object size:0x8 data:double +lbl_801D67D0 = .sdata2:0x801D67D0; // type:object size:0x8 data:float +lbl_801D67D8 = .sdata2:0x801D67D8; // type:object size:0x4 data:float +lbl_801D67DC = .sdata2:0x801D67DC; // type:object size:0x4 data:float +lbl_801D67E0 = .sdata2:0x801D67E0; // type:object size:0x4 data:float +lbl_801D67E8 = .sdata2:0x801D67E8; // type:object size:0x8 data:double +lbl_801D67F0 = .sdata2:0x801D67F0; // type:object size:0x4 data:float +lbl_801D67F4 = .sdata2:0x801D67F4; // type:object size:0x4 data:float +lbl_801D67F8 = .sdata2:0x801D67F8; // type:object size:0x4 data:float +lbl_801D67FC = .sdata2:0x801D67FC; // type:object size:0x4 data:float +lbl_801D6800 = .sdata2:0x801D6800; // type:object size:0x4 data:float +lbl_801D6804 = .sdata2:0x801D6804; // type:object size:0x4 data:float +lbl_801D6808 = .sdata2:0x801D6808; // type:object size:0x8 data:double +lbl_801D6810 = .sdata2:0x801D6810; // type:object size:0x4 data:float +lbl_801D6814 = .sdata2:0x801D6814; // type:object size:0x4 data:float +lbl_801D6818 = .sdata2:0x801D6818; // type:object size:0x8 data:double +lbl_801D6820 = .sdata2:0x801D6820; // type:object size:0x4 data:float +lbl_801D6824 = .sdata2:0x801D6824; // type:object size:0x4 data:float +lbl_801D6828 = .sdata2:0x801D6828; // type:object size:0x8 data:double +lbl_801D6830 = .sdata2:0x801D6830; // type:object size:0x4 data:float +lbl_801D6834 = .sdata2:0x801D6834; // type:object size:0x4 data:float +lbl_801D6838 = .sdata2:0x801D6838; // type:object size:0x4 data:float +lbl_801D683C = .sdata2:0x801D683C; // type:object size:0x4 data:float +lbl_801D6840 = .sdata2:0x801D6840; // type:object size:0x4 data:float +lbl_801D6844 = .sdata2:0x801D6844; // type:object size:0x4 data:float +lbl_801D6848 = .sdata2:0x801D6848; // type:object size:0x8 data:double +lbl_801D6850 = .sdata2:0x801D6850; // type:object size:0x4 data:float +lbl_801D6854 = .sdata2:0x801D6854; // type:object size:0x4 data:float +lbl_801D6858 = .sdata2:0x801D6858; // type:object size:0x8 data:double +lbl_801D6860 = .sdata2:0x801D6860; // type:object size:0x8 data:double +lbl_801D6868 = .sdata2:0x801D6868; // type:object size:0x4 data:float +lbl_801D686C = .sdata2:0x801D686C; // type:object size:0x4 data:float +lbl_801D6870 = .sdata2:0x801D6870; // type:object size:0x4 data:float +lbl_801D6878 = .sdata2:0x801D6878; // type:object size:0x8 data:double +lbl_801D6880 = .sdata2:0x801D6880; // type:object size:0x4 data:4byte +lbl_801D6884 = .sdata2:0x801D6884; // type:object size:0x4 data:4byte +lbl_801D6888 = .sdata2:0x801D6888; // type:object size:0x4 data:float +lbl_801D688C = .sdata2:0x801D688C; // type:object size:0x4 data:float +lbl_801D6890 = .sdata2:0x801D6890; // type:object size:0x4 data:float +lbl_801D6894 = .sdata2:0x801D6894; // type:object size:0x4 data:float +lbl_801D6898 = .sdata2:0x801D6898; // type:object size:0x8 data:double +lbl_801D68A0 = .sbss2:0x801D68A0; // type:object size:0x1 data:byte +lbl_801D68A1 = .sbss2:0x801D68A1; // type:object size:0x1 data:byte +lbl_801D68A2 = .sbss2:0x801D68A2; // type:object size:0x1 data:byte +lbl_801D68A3 = .sbss2:0x801D68A3; // type:object size:0x1 data:byte +lbl_801D68A4 = .sbss2:0x801D68A4; // type:object size:0x1 data:byte +lbl_801D68A5 = .sbss2:0x801D68A5; // type:object size:0x1 data:byte +lbl_801D68A6 = .sbss2:0x801D68A6; // type:object size:0x1 data:byte +lbl_801D68A7 = .sbss2:0x801D68A7; // type:object size:0x1 data:byte diff --git a/configure.py b/configure.py index ca011b7c..ea943200 100644 --- a/configure.py +++ b/configure.py @@ -33,6 +33,7 @@ VERSIONS = [ "GMPE01_01", # USA 1.1 "GMPP01_00", # PAL 1.0 "GMPP01_02", # PAL 1.2 + "GMPJ01_00", # Japan 1.0 ] parser = argparse.ArgumentParser() @@ -373,85 +374,85 @@ config.libs = [ "cflags": cflags_game, "host": False, "objects": [ - Object(Matching, "game/main.c"), - Object(Matching, "game/pad.c"), - Object(Matching, "game/dvd.c"), - Object(Matching, "game/data.c"), - Object(Matching, "game/decode.c"), - Object(Matching, "game/font.c"), - Object(Matching, "game/init.c"), - Object(Matching, "game/jmp.c"), - Object(Matching, "game/malloc.c"), - Object(Matching, "game/memory.c"), - Object(Matching, "game/printfunc.c"), - Object(Matching, "game/process.c"), - Object(Matching, "game/sprman.c"), - Object(Matching, "game/sprput.c"), - Object(Matching, "game/hsfload.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/pad.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/dvd.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/data.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/decode.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/font.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/init.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/jmp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/malloc.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/memory.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/printfunc.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/process.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/sprman.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/sprput.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/hsfload.c"), Object(NonMatching, "game/hsfdraw.c"), - Object(Matching, "game/hsfman.c"), - Object(Matching, "game/hsfmotion.c"), - Object(Matching, "game/hsfanim.c"), - Object(Matching, "game/hsfex.c"), - Object(Matching, "game/perf.c"), - Object(Matching, "game/objmain.c"), - Object(Matching, "game/fault.c"), - Object(Matching, "game/gamework.c"), - Object(Matching, "game/objsysobj.c"), - Object(Matching, "game/objdll.c"), - Object(Matching, "game/frand.c"), - Object(Matching, "game/audio.c"), - Object(Matching, "game/EnvelopeExec.c"), - Object(Matching, "game/minigame_seq.c"), - Object(Matching, "game/ovllist.c"), - Object(Matching, "game/esprite.c"), - Object(Matching, "game/code_8003FF68.c"), - Object(Matching, "game/ClusterExec.c"), - Object(Matching, "game/ShapeExec.c"), - Object(Matching, "game/wipe.c"), - Object(Matching, "game/window.c"), - Object(Matching, "game/messdata.c"), - Object(Matching, "game/card.c"), - Object(Matching, "game/armem.c"), - Object(Matching, "game/chrman.c"), - Object(Matching, "game/mapspace.c"), - Object(Matching, "game/THPSimple.c"), - Object(Matching, "game/THPDraw.c"), - Object(Matching, "game/thpmain.c"), - Object(Matching, "game/objsub.c"), - Object(Matching, "game/flag.c"), - Object(Matching, "game/saveload.c"), - Object(Matching, "game/sreset.c"), - Object(Matching, "game/board/main.c"), - Object(Matching, "game/board/player.c"), - Object(Matching, "game/board/model.c"), - Object(Matching, "game/board/window.c"), - Object(Matching, "game/board/audio.c"), - Object(Matching, "game/board/com.c"), - Object(Matching, "game/board/view.c"), - Object(Matching, "game/board/space.c"), - Object(Matching, "game/board/shop.c"), - Object(Matching, "game/board/lottery.c"), - Object(Matching, "game/board/basic_space.c"), - Object(Matching, "game/board/warp.c"), - Object(Matching, "game/board/char_wheel.c"), - Object(Matching, "game/board/mushroom.c"), - Object(Matching, "game/board/star.c"), - Object(Matching, "game/board/roll.c"), - Object(Matching, "game/board/ui.c"), - Object(Matching, "game/board/block.c"), - Object(Matching, "game/board/item.c"), - Object(Matching, "game/board/bowser.c"), - Object(Matching, "game/board/battle.c"), - Object(Matching, "game/board/fortune.c"), - Object(Matching, "game/board/boo.c"), - Object(Matching, "game/board/mg_setup.c"), - Object(Matching, "game/board/boo_house.c"), - Object(Matching, "game/board/start.c"), - Object(Matching, "game/board/last5.c"), - Object(Matching, "game/board/pause.c"), - Object(Matching, "game/board/com_path.c"), - Object(Matching, "game/board/tutorial.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/hsfman.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/hsfmotion.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/hsfanim.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/hsfex.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/perf.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/objmain.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/fault.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/gamework.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/objsysobj.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/objdll.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/frand.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/audio.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/EnvelopeExec.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/minigame_seq.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/ovllist.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/esprite.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/code_8003FF68.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/ClusterExec.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/ShapeExec.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/wipe.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/window.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/messdata.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/card.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/armem.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/chrman.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/mapspace.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/THPSimple.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/THPDraw.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/thpmain.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/objsub.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/flag.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/saveload.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/sreset.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/model.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/window.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/audio.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/com.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/view.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/space.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/shop.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/lottery.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/basic_space.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/warp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/char_wheel.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/mushroom.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/star.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/roll.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/ui.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/block.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/bowser.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/battle.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/fortune.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/boo.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/mg_setup.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/boo_house.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/start.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/last5.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/pause.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/com_path.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/tutorial.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/kerent.c"), ], }, @@ -464,7 +465,7 @@ config.libs = [ DolphinLib( "os", [ - Object(Matching, "dolphin/os/OS.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OS.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSAlarm.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSAlloc.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSArena.c"), @@ -486,7 +487,7 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSSync.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSThread.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSTime.c"), - Object(Matching, "dolphin/os/__start.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/__start.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/__ppc_eabi_init.c"), ], ), @@ -821,43 +822,43 @@ config.libs = [ "cflags": cflags_rel, "host": False, "objects": [ - Object(Matching, "REL/executor.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/executor.c"), Object(Matching, "REL/empty.c"), # Must be marked as matching - Object(Matching, "REL/board_executor.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/board_executor.c"), ], }, Rel( "_minigameDLL", objects={ - Object(Matching, "REL/_minigameDLL/_minigameDLL.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/_minigameDLL/_minigameDLL.c"), }, ), Rel( "bootDll", objects={ - Object(Matching, "REL/bootDll/main.c"), - Object(Matching, "REL/bootDll/language.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/bootDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/bootDll/nintendo_data.c"), }, ), Rel( "E3setupDLL", objects={ - Object(Matching, "REL/E3setupDLL/mgselect.c"), - Object(Matching, "REL/E3setupDLL/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/E3setupDLL/mgselect.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/E3setupDLL/main.c"), }, ), Rel( "instDll", objects={ - Object(Matching, "REL/instDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/instDll/main.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/instDll/font.c"), }, ), Rel( "m401Dll", # Manta Rings objects={ - Object(Matching, "REL/m401Dll/main.c"), - Object(Matching, "REL/m401Dll/main_ex.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m401Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m401Dll/main_ex.c"), }, ), Rel( @@ -995,11 +996,11 @@ config.libs = [ Rel( "m420dll", # Fish n' Drips objects={ - Object(Matching, "REL/m420dll/main.c"), - Object(Matching, "REL/m420dll/camera.c"), - Object(Matching, "REL/m420dll/player.c"), - Object(Matching, "REL/m420dll/map.c"), - Object(Matching, "REL/m420dll/rand.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/rand.c"), }, ), Rel( @@ -1063,7 +1064,7 @@ config.libs = [ Rel( "m429Dll", # Team Treasure Trek objects={ - Object(Matching, "REL/m429Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m429Dll/main.c"), }, ), Rel( @@ -1077,14 +1078,14 @@ config.libs = [ Rel( "m431Dll", # Order Up objects={ - Object(Matching, "REL/m431Dll/main.c"), - Object(Matching, "REL/m431Dll/object.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m431Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m431Dll/object.c"), }, ), Rel( "m432Dll", # Dungeon Duos objects={ - Object(Matching, "REL/m432Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m432Dll/main.c"), }, ), Rel( @@ -1098,10 +1099,10 @@ config.libs = [ Rel( "m434Dll", # Cheep Cheep Sweep objects={ - Object(Matching, "REL/m434Dll/main.c"), - Object(Matching, "REL/m434Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m434Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m434Dll/map.c"), Object(NonMatching, "REL/m434Dll/player.c"), - Object(Matching, "REL/m434Dll/fish.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m434Dll/fish.c"), }, ), Rel( @@ -1114,15 +1115,15 @@ config.libs = [ Rel( "m436Dll", # Fruits of Doom objects={ - Object(Matching, "REL/m436Dll/main.c"), - Object(Matching, "REL/m436Dll/sequence.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m436Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m436Dll/sequence.c"), }, ), Rel( "m437Dll", # Balloon of Doom objects={ - Object(Matching, "REL/m437Dll/main.c"), - Object(Matching, "REL/m437Dll/sequence.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m437Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m437Dll/sequence.c"), }, ), Rel( @@ -1136,26 +1137,26 @@ config.libs = [ Rel( "m439Dll", # Paths of Peril objects={ - Object(Matching, "REL/m439Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m439Dll/main.c"), }, ), Rel( "m440Dll", # Bowser's Bigger Blast objects={ - Object(Matching, "REL/m440Dll/main.c"), - Object(Matching, "REL/m440Dll/object.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m440Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m440Dll/object.c"), }, ), Rel( "m441Dll", # Butterfly Blitz objects={ - Object(Matching, "REL/m441Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m441Dll/main.c"), }, ), Rel( "m442Dll", # Barrel Baron objects={ - Object(Matching, "REL/m442Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m442Dll/main.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m442Dll/score.c"), }, ), @@ -1221,7 +1222,7 @@ config.libs = [ Rel( "m450Dll", # The Final Battle! objects={ - Object(Matching, "REL/m450Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m450Dll/main.c"), }, ), Rel( @@ -1300,8 +1301,8 @@ config.libs = [ Rel( "mentDll", objects={ - Object(Matching, "REL/mentDll/common.c"), - Object(Matching, "REL/mentDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mentDll/common.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mentDll/main.c"), }, ), Rel( @@ -1326,9 +1327,9 @@ config.libs = [ Rel( "modeltestDll", objects={ - Object(Matching, "REL/modeltestDll/main.c"), - Object(Matching, "REL/modeltestDll/modeltest00.c"), - Object(Matching, "REL/modeltestDll/modeltest01.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeltestDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeltestDll/modeltest00.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeltestDll/modeltest01.c"), }, ), Rel( @@ -1343,9 +1344,9 @@ config.libs = [ Rel( "mpexDll", objects={ - Object(Matching, "REL/mpexDll/main.c"), - Object(Matching, "REL/mpexDll/mpex.c"), - Object(Matching, "REL/mpexDll/charsel.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mpexDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mpexDll/mpex.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mpexDll/charsel.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mpexDll/mgname.c"), }, ), @@ -1397,51 +1398,51 @@ config.libs = [ Rel( "option", objects={ - Object(Matching, "REL/option/scene.c"), - Object(Matching, "REL/option/camera.c"), - Object(Matching, "REL/option/room.c"), - Object(Matching, "REL/option/guide.c"), - Object(Matching, "REL/option/state.c"), - Object(Matching, "REL/option/rumble.c"), - Object(Matching, "REL/option/sound.c"), - Object(Matching, "REL/option/record.c"), - Object(Matching, "REL/option/window.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/scene.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/room.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/guide.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/state.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/rumble.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/sound.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/record.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/window.c"), }, ), Rel( "present", objects={ - Object(Matching, "REL/present/init.c"), - Object(Matching, "REL/present/camera.c"), - Object(Matching, "REL/present/present.c"), - Object(Matching, "REL/present/main.c"), - Object(Matching, "REL/present/common.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/init.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/present.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/common.c"), }, ), Rel( "resultDll", objects={ - Object(Matching, "REL/resultDll/main.c"), - Object(Matching, "REL/resultDll/battle.c"), - Object(Matching, "REL/resultDll/datalist.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/resultDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/resultDll/battle.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/resultDll/datalist.c"), }, ), Rel( "safDll", objects={ - Object(Matching, "REL/safDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/safDll/main.c"), }, ), Rel( "selmenuDll", objects={ - Object(Matching, "REL/selmenuDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/selmenuDll/main.c"), }, ), Rel( "staffDll", objects={ - Object(Matching, "REL/staffDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/staffDll/main.c"), }, ), Rel( @@ -1453,87 +1454,87 @@ config.libs = [ Rel( "w01Dll", # Toad's Midway Madness objects={ - Object(Matching, "REL/w01Dll/main.c"), - Object(Matching, "REL/w01Dll/mg_coin.c"), - Object(Matching, "REL/w01Dll/mg_item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w01Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w01Dll/mg_coin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w01Dll/mg_item.c"), }, ), Rel( "w02Dll", # Goomba's Greedy Gala objects={ - Object(Matching, "REL/w02Dll/main.c"), - Object(Matching, "REL/w02Dll/gendice.c"), - Object(Matching, "REL/w02Dll/gamble.c"), - Object(Matching, "REL/w02Dll/mg_coin.c"), - Object(Matching, "REL/w02Dll/mg_item.c"), - Object(Matching, "REL/w02Dll/shuffleboard.c"), - Object(Matching, "REL/w02Dll/roulette.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/gendice.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/gamble.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/mg_coin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/mg_item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/shuffleboard.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/roulette.c"), }, ), Rel( "w03Dll", # Shy Guy's Jungle Jam objects={ - Object(Matching, "REL/w03Dll/main.c"), - Object(Matching, "REL/w03Dll/statue.c"), - Object(Matching, "REL/w03Dll/condor.c"), - Object(Matching, "REL/w03Dll/river.c"), - Object(Matching, "REL/w03Dll/smoke.c"), - Object(Matching, "REL/w03Dll/mg_coin.c"), - Object(Matching, "REL/w03Dll/mg_item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w03Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w03Dll/statue.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w03Dll/condor.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w03Dll/river.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w03Dll/smoke.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w03Dll/mg_coin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w03Dll/mg_item.c"), }, ), Rel( "w04Dll", # Boo's Haunted Bash objects={ - Object(Matching, "REL/w04Dll/main.c"), - Object(Matching, "REL/w04Dll/bridge.c"), - Object(Matching, "REL/w04Dll/boo_event.c"), - Object(Matching, "REL/w04Dll/big_boo.c"), - Object(Matching, "REL/w04Dll/mg_item.c"), - Object(Matching, "REL/w04Dll/mg_coin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w04Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w04Dll/bridge.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w04Dll/boo_event.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w04Dll/big_boo.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w04Dll/mg_item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w04Dll/mg_coin.c"), }, ), Rel( "w05Dll", # Koopa's Seaside Soiree objects={ - Object(Matching, "REL/w05Dll/main.c"), - Object(Matching, "REL/w05Dll/hotel.c"), - Object(Matching, "REL/w05Dll/monkey.c"), - Object(Matching, "REL/w05Dll/dolphin.c"), - Object(Matching, "REL/w05Dll/mg_item.c"), - Object(Matching, "REL/w05Dll/mg_coin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/hotel.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/monkey.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/dolphin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/mg_item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/mg_coin.c"), }, ), Rel( "w06Dll", # Bowser's Gnarly Party objects={ - Object(Matching, "REL/w06Dll/main.c"), - Object(Matching, "REL/w06Dll/mg_item.c"), - Object(Matching, "REL/w06Dll/mg_coin.c"), - Object(Matching, "REL/w06Dll/fire.c"), - Object(Matching, "REL/w06Dll/bridge.c"), - Object(Matching, "REL/w06Dll/bowser.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w06Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w06Dll/mg_item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w06Dll/mg_coin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w06Dll/fire.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w06Dll/bridge.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w06Dll/bowser.c"), }, ), Rel( "w10Dll", # Tutorial board objects={ - Object(Matching, "REL/w10Dll/main.c"), - Object(Matching, "REL/w10Dll/host.c"), - Object(Matching, "REL/w10Dll/scene.c"), - Object(Matching, "REL/w10Dll/tutorial.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w10Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w10Dll/host.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w10Dll/scene.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w10Dll/tutorial.c"), }, ), Rel( "w20Dll", # Mega Board Mayhem objects={ - Object(Matching, "REL/w20Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w20Dll/main.c"), }, ), Rel( "w21Dll", # Mini Board Mad Dash objects={ - Object(Matching, "REL/w21Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w21Dll/main.c"), }, ), Rel( From f55fd84898344e04d46aa45e8cb65ab82bbdae50 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Fri, 15 Nov 2024 17:56:03 +0100 Subject: [PATCH 170/311] Work on Japanese dol splits --- config/GMPJ01_00/symbols.txt | 151 ++++++++++++++++++----------------- 1 file changed, 76 insertions(+), 75 deletions(-) diff --git a/config/GMPJ01_00/symbols.txt b/config/GMPJ01_00/symbols.txt index b95ad54c..e3026919 100644 --- a/config/GMPJ01_00/symbols.txt +++ b/config/GMPJ01_00/symbols.txt @@ -7,13 +7,13 @@ __flush_cache = .init:0x80003374; // type:function size:0x34 scope:global memset = .init:0x800033A8; // type:function size:0x30 scope:global __fill_mem = .init:0x800033D8; // type:function size:0xB8 scope:global memcpy = .init:0x80003490; // type:function size:0x50 scope:global -fn_800034E0 = .init:0x800034E0; // type:function size:0x30 -fn_80003510 = .init:0x80003510; // type:function size:0x24 +TRK_memset = .init:0x800034E0; // type:function size:0x30 +TRK_memcpy = .init:0x80003510; // type:function size:0x24 gTRKInterruptVectorTable = .init:0x80003534; // type:label scope:global lbl_80003800 = .init:0x80003800; // type:label lbl_80003C00 = .init:0x80003C00; // type:label lbl_80003F80 = .init:0x80003F80; // type:label -fn_80005468 = .init:0x80005468; // type:function size:0x104 +__TRK_reset = .init:0x80005468; // type:function size:0x104 gTRKInterruptVectorTableEnd = .init:0x80005468; // type:label scope:global _rom_copy_info = .init:0x8000556C; // type:object size:0x84 scope:global data:4byte _bss_init_info = .init:0x800055F0; // type:object size:0x20 scope:global data:4byte @@ -2014,15 +2014,15 @@ fn_800B3EB4 = .text:0x800B3EB4; // type:function size:0x30 PPCMfmsr = .text:0x800B3EE4; // type:function size:0x8 scope:global PPCMtmsr = .text:0x800B3EEC; // type:function size:0x8 scope:global PPCMfhid0 = .text:0x800B3EF4; // type:function size:0x8 scope:global -fn_800B3EFC = .text:0x800B3EFC; // type:function size:0x8 +PPCMthid0 = .text:0x800B3EFC; // type:function size:0x8 PPCMfl2cr = .text:0x800B3F04; // type:function size:0x8 scope:global PPCMtl2cr = .text:0x800B3F0C; // type:function size:0x8 scope:global PPCMtdec = .text:0x800B3F14; // type:function size:0x8 scope:weak -fn_800B3F1C = .text:0x800B3F1C; // type:function size:0x8 +PPCSync = .text:0x800B3F1C; // type:function size:0x8 PPCHalt = .text:0x800B3F24; // type:function size:0x14 scope:weak PPCMfhid2 = .text:0x800B3F38; // type:function size:0x8 scope:global PPCMthid2 = .text:0x800B3F40; // type:function size:0x8 scope:global -fn_800B3F48 = .text:0x800B3F48; // type:function size:0xC +PPCMfwpar = .text:0x800B3F48; // type:function size:0xC PPCMtwpar = .text:0x800B3F54; // type:function size:0x8 scope:global PPCDisableSpeculation = .text:0x800B3F5C; // type:function size:0x28 scope:global PPCSetFpNonIEEEMode = .text:0x800B3F84; // type:function size:0x8 scope:global @@ -2034,7 +2034,7 @@ OSExceptionInit = .text:0x800B44D0; // type:function size:0x280 scope:local __OSDBINTSTART = .text:0x800B4750; // type:label scope:global __OSDBIntegrator = .text:0x800B4750; // type:function size:0x24 scope:local __OSDBINTEND = .text:0x800B4774; // type:label scope:global -fn_800B4774 = .text:0x800B4774; // type:function size:0x4 +__OSDBJump = .text:0x800B4774; // type:function size:0x4 __OSDBJUMPEND = .text:0x800B4778; // type:label scope:global __OSSetExceptionHandler = .text:0x800B4778; // type:function size:0x1C scope:global __OSGetExceptionHandler = .text:0x800B4794; // type:function size:0x14 scope:global @@ -2045,23 +2045,23 @@ __OSEVSetNumber = .text:0x800B4810; // type:label scope:global data:4byte __OSEVEnd = .text:0x800B4840; // type:label scope:global OSDefaultExceptionHandler = .text:0x800B4844; // type:function size:0x58 scope:global __OSPSInit = .text:0x800B489C; // type:function size:0x38 scope:global -fn_800B48D4 = .text:0x800B48D4; // type:function size:0x14 +__OSGetDIConfig = .text:0x800B48D4; // type:function size:0x14 OSInitAlarm = .text:0x800B48E8; // type:function size:0x4C scope:global OSCreateAlarm = .text:0x800B4934; // type:function size:0xC scope:global InsertAlarm = .text:0x800B4940; // type:function size:0x250 scope:local OSSetAlarm = .text:0x800B4B90; // type:function size:0x68 scope:global -fn_800B4BF8 = .text:0x800B4BF8; // type:function size:0x11C +OSCancelAlarm = .text:0x800B4BF8; // type:function size:0x11C DecrementerExceptionCallback = .text:0x800B4D14; // type:function size:0x230 scope:local DecrementerExceptionHandler = .text:0x800B4F44; // type:function size:0x50 scope:local -fn_800B4F94 = .text:0x800B4F94; // type:function size:0xAC -fn_800B5040 = .text:0x800B5040; // type:function size:0xFC -fn_800B513C = .text:0x800B513C; // type:function size:0x284 -fn_800B53C0 = .text:0x800B53C0; // type:function size:0x7C -fn_800B543C = .text:0x800B543C; // type:function size:0x10 -fn_800B544C = .text:0x800B544C; // type:function size:0x70 -fn_800B54BC = .text:0x800B54BC; // type:function size:0x6C -fn_800B5528 = .text:0x800B5528; // type:function size:0x360 -fn_800B5888 = .text:0x800B5888; // type:function size:0x104 +DLInsert = .text:0x800B4F94; // type:function size:0xAC +OSAllocFromHeap = .text:0x800B5040; // type:function size:0xFC +OSAllocFixed = .text:0x800B513C; // type:function size:0x284 +OSFreeToHeap = .text:0x800B53C0; // type:function size:0x7C +OSSetCurrentHeap = .text:0x800B543C; // type:function size:0x10 +OSInitAlloc = .text:0x800B544C; // type:function size:0x70 +OSCreateHeap = .text:0x800B54BC; // type:function size:0x6C +OSCheckHeap = .text:0x800B5528; // type:function size:0x360 +OSDumpHeap = .text:0x800B5888; // type:function size:0x104 OSGetArenaHi = .text:0x800B598C; // type:function size:0x8 scope:global OSGetArenaLo = .text:0x800B5994; // type:function size:0x8 scope:global OSSetArenaHi = .text:0x800B599C; // type:function size:0x8 scope:global @@ -2071,99 +2071,100 @@ __OSStopAudioSystem = .text:0x800B5B68; // type:function size:0xD8 scope:global DCEnable = .text:0x800B5C40; // type:function size:0x14 scope:global DCInvalidateRange = .text:0x800B5C54; // type:function size:0x30 scope:global DCFlushRange = .text:0x800B5C84; // type:function size:0x34 scope:global -fn_800B5CB8 = .text:0x800B5CB8; // type:function size:0x34 +DCStoreRange = .text:0x800B5CB8; // type:function size:0x34 DCFlushRangeNoSync = .text:0x800B5CEC; // type:function size:0x30 scope:global -fn_800B5D1C = .text:0x800B5D1C; // type:function size:0x30 -fn_800B5D4C = .text:0x800B5D4C; // type:function size:0x30 +DCStoreRangeNoSync = .text:0x800B5D1C; // type:function size:0x30 +DCZeroRange = .text:0x800B5D4C; // type:function size:0x30 ICInvalidateRange = .text:0x800B5D7C; // type:function size:0x38 scope:global ICFlashInvalidate = .text:0x800B5DB4; // type:function size:0x10 scope:global ICEnable = .text:0x800B5DC4; // type:function size:0x14 scope:global -fn_800B5DD8 = .text:0x800B5DD8; // type:function size:0xCC -fn_800B5EA4 = .text:0x800B5EA4; // type:function size:0x38 +__LCEnable = .text:0x800B5DD8; // type:function size:0xCC scope:local +LCEnable = .text:0x800B5EA4; // type:function size:0x38 LCDisable = .text:0x800B5EDC; // type:function size:0x28 scope:global -fn_800B5F04 = .text:0x800B5F04; // type:function size:0x24 -fn_800B5F28 = .text:0x800B5F28; // type:function size:0xAC -fn_800B5FD4 = .text:0x800B5FD4; // type:function size:0x18 +LCStoreBlocks = .text:0x800B5F04; // type:function size:0x24 +LCStoreData = .text:0x800B5F28; // type:function size:0xAC +LCQueueWait = .text:0x800B5FD4; // type:function size:0x18 L2GlobalInvalidate = .text:0x800B5FEC; // type:function size:0x98 scope:global DMAErrorHandler = .text:0x800B6084; // type:function size:0x160 scope:global __OSCacheInit = .text:0x800B61E4; // type:function size:0xF4 scope:global __OSLoadFPUContext = .text:0x800B62D8; // type:function size:0x124 scope:local __OSSaveFPUContext = .text:0x800B63FC; // type:function size:0x128 scope:local OSSetCurrentContext = .text:0x800B6524; // type:function size:0x5C scope:global -fn_800B6580 = .text:0x800B6580; // type:function size:0xC -fn_800B658C = .text:0x800B658C; // type:function size:0x80 +OSGetCurrentContext = .text:0x800B6580; // type:function size:0xC +OSSaveContext = .text:0x800B658C; // type:function size:0x80 OSLoadContext = .text:0x800B660C; // type:function size:0xD8 scope:global OSClearContext = .text:0x800B66E4; // type:function size:0x24 scope:global -fn_800B6708 = .text:0x800B6708; // type:function size:0xBC +OSInitContext = .text:0x800B6708; // type:function size:0xBC OSDumpContext = .text:0x800B67C4; // type:function size:0x2A8 scope:global OSSwitchFPUContext = .text:0x800B6A6C; // type:function size:0x84 scope:local __OSContextInit = .text:0x800B6AF0; // type:function size:0x48 scope:global OSReport = .text:0x800B6B38; // type:function size:0x80 scope:global OSSetErrorHandler = .text:0x800B6BB8; // type:function size:0x1C scope:global __OSUnhandledException = .text:0x800B6BD4; // type:function size:0x200 scope:global -fn_800B6DD4 = .text:0x800B6DD4; // type:function size:0x58 +OSGetFontEncode = .text:0x800B6DD4; // type:function size:0x58 OSDisableInterrupts = .text:0x800B6E2C; // type:function size:0x14 scope:global +__RAS_OSDisableInterrupts_begin = .text:0x800B6E2C; // type:label scope:global +__RAS_OSDisableInterrupts_end = .text:0x800BE3C; // type:label scope:global OSEnableInterrupts = .text:0x800B6E40; // type:function size:0x14 scope:global OSRestoreInterrupts = .text:0x800B6E54; // type:function size:0x24 scope:global __OSSetInterruptHandler = .text:0x800B6E78; // type:function size:0x1C scope:global -fn_800B6E94 = .text:0x800B6E94; // type:function size:0x14 +__OSGetInterruptHandler = .text:0x800B6E94; // type:function size:0x14 __OSInterruptInit = .text:0x800B6EA8; // type:function size:0x74 scope:global -fn_800B6F1C = .text:0x800B6F1C; // type:function size:0x2D8 +SetInterruptMask = .text:0x800B6F1C; // type:function size:0x2D8 __OSMaskInterrupts = .text:0x800B71F4; // type:function size:0x88 scope:global __OSUnmaskInterrupts = .text:0x800B727C; // type:function size:0x88 scope:global -fn_800B7304 = .text:0x800B7304; // type:function size:0x344 +__OSDispatchInterrupt = .text:0x800B7304; // type:function size:0x344 ExternalInterruptHandler = .text:0x800B7648; // type:function size:0x50 scope:local -fn_800B7698 = .text:0x800B7698; // type:function size:0x4 -fn_800B769C = .text:0x800B769C; // type:function size:0x4 -fn_800B76A0 = .text:0x800B76A0; // type:function size:0x274 -fn_800B7914 = .text:0x800B7914; // type:function size:0x250 -fn_800B7B64 = .text:0x800B7B64; // type:function size:0x20C -fn_800B7D70 = .text:0x800B7D70; // type:function size:0x94 +OSNotifyLink = .text:0x800B7698; // type:function size:0x4 scope:weak +OSNotifyUnlink = .text:0x800B769C; // type:function size:0x4 scope:weak +Relocate = .text:0x800B76A0; // type:function size:0x274 scope:local +OSLink = .text:0x800B7914; // type:function size:0x250 +Undo = .text:0x800B7B64; // type:function size:0x20C +OSUnlink = .text:0x800B7D70; // type:function size:0x94 __OSModuleInit = .text:0x800B7E04; // type:function size:0x18 scope:global -fn_800B7E1C = .text:0x800B7E1C; // type:function size:0x60 -fn_800B7E7C = .text:0x800B7E7C; // type:function size:0xC -fn_800B7E88 = .text:0x800B7E88; // type:function size:0xC -fn_800B7E94 = .text:0x800B7E94; // type:function size:0x3C +OSInitMessageQueue = .text:0x800B7E1C; // type:function size:0x60 +OSGetPhysicalMemSize = .text:0x800B7E7C; // type:function size:0xC +OSGetConsoleSimulatedMemSize = .text:0x800B7E88; // type:function size:0xC +OnReset = .text:0x800B7E94; // type:function size:0x3C MEMIntrruptHandler = .text:0x800B7ED0; // type:function size:0x6C scope:local Config24MB = .text:0x800B7F3C; // type:function size:0x80 scope:local Config48MB = .text:0x800B7FBC; // type:function size:0x80 scope:local RealMode = .text:0x800B803C; // type:function size:0x18 scope:local __OSInitMemoryProtection = .text:0x800B8054; // type:function size:0x120 scope:global -fn_800B8174 = .text:0x800B8174; // type:function size:0x70 -fn_800B81E4 = .text:0x800B81E4; // type:function size:0x2C -fn_800B8210 = .text:0x800B8210; // type:function size:0x14 -fn_800B8224 = .text:0x800B8224; // type:function size:0xC +__OSUnlockAllMutex = .text:0x800B8174; // type:function size:0x70 +Run = .text:0x800B81E4; // type:function size:0x40 +Callback = .text:0x800B8224; // type:function size:0xC __OSReboot = .text:0x800B8230; // type:function size:0x1C0 scope:global OSRegisterResetFunction = .text:0x800B83F0; // type:function size:0x84 scope:global Reset = .text:0x800B8474; // type:function size:0x70 scope:local -fn_800B84E4 = .text:0x800B84E4; // type:function size:0x48 +__OSDoHotReset = .text:0x800B84E4; // type:function size:0x48 OSResetSystem = .text:0x800B852C; // type:function size:0x278 scope:global OSGetResetCode = .text:0x800B87A4; // type:function size:0x30 scope:global __OSResetSWInterruptHandler = .text:0x800B87D4; // type:function size:0xF4 scope:global -fn_800B88C8 = .text:0x800B88C8; // type:function size:0x298 -fn_800B8B60 = .text:0x800B8B60; // type:function size:0x60 -fn_800B8BC0 = .text:0x800B8BC0; // type:function size:0x118 +OSGetResetButtonState = .text:0x800B88C8; // type:function size:0x298 +WriteSramCallback = .text:0x800B8B60; // type:function size:0x60 +WriteSram = .text:0x800B8BC0; // type:function size:0x118 __OSInitSram = .text:0x800B8CD8; // type:function size:0x134 scope:global __OSLockSram = .text:0x800B8E0C; // type:function size:0x5C scope:global __OSLockSramEx = .text:0x800B8E68; // type:function size:0x5C scope:global -fn_800B8EC4 = .text:0x800B8EC4; // type:function size:0x308 +UnlockSram = .text:0x800B8EC4; // type:function size:0x308 __OSUnlockSram = .text:0x800B91CC; // type:function size:0x24 scope:global __OSUnlockSramEx = .text:0x800B91F0; // type:function size:0x24 scope:global __OSSyncSram = .text:0x800B9214; // type:function size:0x10 scope:global -fn_800B9224 = .text:0x800B9224; // type:function size:0x80 -fn_800B92A4 = .text:0x800B92A4; // type:function size:0xA4 -fn_800B9348 = .text:0x800B9348; // type:function size:0x70 -fn_800B93B8 = .text:0x800B93B8; // type:function size:0xA4 -fn_800B945C = .text:0x800B945C; // type:function size:0x84 -fn_800B94E0 = .text:0x800B94E0; // type:function size:0xAC -fn_800B958C = .text:0x800B958C; // type:function size:0x2C -fn_800B95B8 = .text:0x800B95B8; // type:function size:0x3C -fn_800B95F4 = .text:0x800B95F4; // type:function size:0xCC -fn_800B96C0 = .text:0x800B96C0; // type:function size:0x70 -fn_800B9730 = .text:0x800B9730; // type:function size:0x28 -fn_800B9758 = .text:0x800B9758; // type:function size:0x1A4 +OSGetSoundMode = .text:0x800B9224; // type:function size:0x80 +OSSetSoundMode = .text:0x800B92A4; // type:function size:0xA4 +OSGetProgressiveMode = .text:0x800B9348; // type:function size:0x70 +OSSetProgressiveMode = .text:0x800B93B8; // type:function size:0xA4 +OSGetWirelessID = .text:0x800B945C; // type:function size:0x84 +OSSetWirelessID = .text:0x800B94E0; // type:function size:0xAC +OSInitStopwatch = .text:0x800B958C; // type:function size:0x2C +OSStartStopwatch = .text:0x800B95B8; // type:function size:0x3C +OSStopStopwatch = .text:0x800B95F4; // type:function size:0xCC +OSCheckStopwatch = .text:0x800B96C0; // type:function size:0x70 +OSResetStopwatch = .text:0x800B9730; // type:function size:0x28 +OSDumpStopwatch = .text:0x800B9758; // type:function size:0x1A4 __OSSystemCallVectorStart = .text:0x800B98FC; // type:label scope:global -fn_800B98FC = .text:0x800B98FC; // type:function size:0x20 +SystemCallVector = .text:0x800B98FC; // type:function size:0x20 __OSSystemCallVectorEnd = .text:0x800B9918; // type:label scope:global __OSInitSystemCall = .text:0x800B991C; // type:function size:0x64 scope:global __OSThreadInit = .text:0x800B9980; // type:function size:0x128 scope:global @@ -2198,16 +2199,16 @@ fn_800BAF2C = .text:0x800BAF2C; // type:function size:0x48 __DBExceptionDestination = .text:0x800BAF74; // type:function size:0x10 scope:global __DBIsExceptionMarked = .text:0x800BAF84; // type:function size:0x1C scope:global DBPrintf = .text:0x800BAFA0; // type:function size:0x50 scope:global -fn_800BAFF0 = .text:0x800BAFF0; // type:function size:0x2C -fn_800BB01C = .text:0x800BB01C; // type:function size:0x34 -fn_800BB050 = .text:0x800BB050; // type:function size:0xCC -fn_800BB11C = .text:0x800BB11C; // type:function size:0x50 -fn_800BB16C = .text:0x800BB16C; // type:function size:0xF8 -fn_800BB264 = .text:0x800BB264; // type:function size:0xC8 -fn_800BB32C = .text:0x800BB32C; // type:function size:0x70 -fn_800BB39C = .text:0x800BB39C; // type:function size:0xA8 -fn_800BB444 = .text:0x800BB444; // type:function size:0x104 -fn_800BB548 = .text:0x800BB548; // type:function size:0x34 +PSMTXIdentity = .text:0x800BAFF0; // type:function size:0x2C +PSMTXCopy = .text:0x800BB01C; // type:function size:0x34 +PSMTXConcat = .text:0x800BB050; // type:function size:0xCC +PSMTXTranspose = .text:0x800BB11C; // type:function size:0x50 +PSMTXInverse = .text:0x800BB16C; // type:function size:0xF8 +PSMTXInvXpose = .text:0x800BB264; // type:function size:0xC8 +PSMTXRotRad = .text:0x800BB32C; // type:function size:0x70 +PSMTXRotTrig = .text:0x800BB39C; // type:function size:0xA8 +PSMTXRotAxisRad = .text:0x800BB444; // type:function size:0x104 +PSMTXTrans = .text:0x800BB548; // type:function size:0x34 fn_800BB57C = .text:0x800BB57C; // type:function size:0x28 fn_800BB5A4 = .text:0x800BB5A4; // type:function size:0xA4 fn_800BB648 = .text:0x800BB648; // type:function size:0x18C From a16f95b102fa02e657c909cf7169c139bac9b5d7 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Fri, 15 Nov 2024 18:15:28 +0100 Subject: [PATCH 171/311] Work on Japanese splits --- config/GMPJ01_00/config.yml | 2 +- config/GMPJ01_00/symbols.txt | 1020 +--------------------------------- 2 files changed, 3 insertions(+), 1019 deletions(-) diff --git a/config/GMPJ01_00/config.yml b/config/GMPJ01_00/config.yml index be895058..8da30f63 100644 --- a/config/GMPJ01_00/config.yml +++ b/config/GMPJ01_00/config.yml @@ -5,7 +5,7 @@ symbols: config/GMPJ01_00/symbols.txt splits: config/GMPJ01_00/splits.txt quick_analysis: false # Faster re-runs after initial analysis mw_comment_version: 10 # GC 2.6 linker -force_active: [__register_global_object] +force_active: [__register_global_object, _kerent] detect_objects: true detect_strings: true diff --git a/config/GMPJ01_00/symbols.txt b/config/GMPJ01_00/symbols.txt index e3026919..d49ba5b9 100644 --- a/config/GMPJ01_00/symbols.txt +++ b/config/GMPJ01_00/symbols.txt @@ -2104,7 +2104,7 @@ __OSUnhandledException = .text:0x800B6BD4; // type:function size:0x200 scope:glo OSGetFontEncode = .text:0x800B6DD4; // type:function size:0x58 OSDisableInterrupts = .text:0x800B6E2C; // type:function size:0x14 scope:global __RAS_OSDisableInterrupts_begin = .text:0x800B6E2C; // type:label scope:global -__RAS_OSDisableInterrupts_end = .text:0x800BE3C; // type:label scope:global +__RAS_OSDisableInterrupts_end = .text:0x800B6E3C; // type:label scope:global OSEnableInterrupts = .text:0x800B6E40; // type:function size:0x14 scope:global OSRestoreInterrupts = .text:0x800B6E54; // type:function size:0x24 scope:global __OSSetInterruptHandler = .text:0x800B6E78; // type:function size:0x1C scope:global @@ -3583,1023 +3583,7 @@ fn_8011BEF4 = .text:0x8011BEF4; // type:function size:0x4A8 fn_8011C39C = .text:0x8011C39C; // type:function size:0x188 fn_8011C524 = .text:0x8011C524; // type:function size:0x17C fn_8011C6A0 = .text:0x8011C6A0; // type:function size:0x214 -fn_8011C8B4 = .text:0x8011C8B4; // type:function size:0x4 -fn_8011C8B8 = .text:0x8011C8B8; // type:function size:0x4 -fn_8011C8BC = .text:0x8011C8BC; // type:function size:0x4 -fn_8011C8C0 = .text:0x8011C8C0; // type:function size:0x4 -fn_8011C8C4 = .text:0x8011C8C4; // type:function size:0x4 -fn_8011C8C8 = .text:0x8011C8C8; // type:function size:0x4 -fn_8011C8CC = .text:0x8011C8CC; // type:function size:0x4 -fn_8011C8D0 = .text:0x8011C8D0; // type:function size:0x4 -fn_8011C8D4 = .text:0x8011C8D4; // type:function size:0x4 -fn_8011C8D8 = .text:0x8011C8D8; // type:function size:0x4 -fn_8011C8DC = .text:0x8011C8DC; // type:function size:0x4 -fn_8011C8E0 = .text:0x8011C8E0; // type:function size:0x4 -fn_8011C8E4 = .text:0x8011C8E4; // type:function size:0x4 -fn_8011C8E8 = .text:0x8011C8E8; // type:function size:0x4 -fn_8011C8EC = .text:0x8011C8EC; // type:function size:0x4 -fn_8011C8F0 = .text:0x8011C8F0; // type:function size:0x4 -fn_8011C8F4 = .text:0x8011C8F4; // type:function size:0x4 -fn_8011C8F8 = .text:0x8011C8F8; // type:function size:0x4 -fn_8011C8FC = .text:0x8011C8FC; // type:function size:0x4 -fn_8011C900 = .text:0x8011C900; // type:function size:0x4 -fn_8011C904 = .text:0x8011C904; // type:function size:0x4 -fn_8011C908 = .text:0x8011C908; // type:function size:0x4 -fn_8011C90C = .text:0x8011C90C; // type:function size:0x4 -fn_8011C910 = .text:0x8011C910; // type:function size:0x4 -fn_8011C914 = .text:0x8011C914; // type:function size:0x4 -fn_8011C918 = .text:0x8011C918; // type:function size:0x4 -fn_8011C91C = .text:0x8011C91C; // type:function size:0x4 -fn_8011C920 = .text:0x8011C920; // type:function size:0x4 -fn_8011C924 = .text:0x8011C924; // type:function size:0x4 -fn_8011C928 = .text:0x8011C928; // type:function size:0x4 -fn_8011C92C = .text:0x8011C92C; // type:function size:0x4 -fn_8011C930 = .text:0x8011C930; // type:function size:0x4 -fn_8011C934 = .text:0x8011C934; // type:function size:0x4 -fn_8011C938 = .text:0x8011C938; // type:function size:0x4 -fn_8011C93C = .text:0x8011C93C; // type:function size:0x4 -fn_8011C940 = .text:0x8011C940; // type:function size:0x4 -fn_8011C944 = .text:0x8011C944; // type:function size:0x4 -fn_8011C948 = .text:0x8011C948; // type:function size:0x4 -fn_8011C94C = .text:0x8011C94C; // type:function size:0x4 -fn_8011C950 = .text:0x8011C950; // type:function size:0x4 -fn_8011C954 = .text:0x8011C954; // type:function size:0x4 -fn_8011C958 = .text:0x8011C958; // type:function size:0x4 -fn_8011C95C = .text:0x8011C95C; // type:function size:0x4 -fn_8011C960 = .text:0x8011C960; // type:function size:0x4 -fn_8011C964 = .text:0x8011C964; // type:function size:0x4 -fn_8011C968 = .text:0x8011C968; // type:function size:0x4 -fn_8011C96C = .text:0x8011C96C; // type:function size:0x4 -fn_8011C970 = .text:0x8011C970; // type:function size:0x4 -fn_8011C974 = .text:0x8011C974; // type:function size:0x4 -fn_8011C978 = .text:0x8011C978; // type:function size:0x4 -fn_8011C97C = .text:0x8011C97C; // type:function size:0x4 -fn_8011C980 = .text:0x8011C980; // type:function size:0x4 -fn_8011C984 = .text:0x8011C984; // type:function size:0x4 -fn_8011C988 = .text:0x8011C988; // type:function size:0x4 -fn_8011C98C = .text:0x8011C98C; // type:function size:0x4 -fn_8011C990 = .text:0x8011C990; // type:function size:0x4 -fn_8011C994 = .text:0x8011C994; // type:function size:0x4 -fn_8011C998 = .text:0x8011C998; // type:function size:0x4 -fn_8011C99C = .text:0x8011C99C; // type:function size:0x4 -fn_8011C9A0 = .text:0x8011C9A0; // type:function size:0x4 -fn_8011C9A4 = .text:0x8011C9A4; // type:function size:0x4 -fn_8011C9A8 = .text:0x8011C9A8; // type:function size:0x4 -fn_8011C9AC = .text:0x8011C9AC; // type:function size:0x4 -fn_8011C9B0 = .text:0x8011C9B0; // type:function size:0x4 -fn_8011C9B4 = .text:0x8011C9B4; // type:function size:0x4 -fn_8011C9B8 = .text:0x8011C9B8; // type:function size:0x4 -fn_8011C9BC = .text:0x8011C9BC; // type:function size:0x4 -fn_8011C9C0 = .text:0x8011C9C0; // type:function size:0x4 -fn_8011C9C4 = .text:0x8011C9C4; // type:function size:0x4 -fn_8011C9C8 = .text:0x8011C9C8; // type:function size:0x4 -fn_8011C9CC = .text:0x8011C9CC; // type:function size:0x4 -fn_8011C9D0 = .text:0x8011C9D0; // type:function size:0x4 -fn_8011C9D4 = .text:0x8011C9D4; // type:function size:0x4 -fn_8011C9D8 = .text:0x8011C9D8; // type:function size:0x4 -fn_8011C9DC = .text:0x8011C9DC; // type:function size:0x4 -fn_8011C9E0 = .text:0x8011C9E0; // type:function size:0x4 -fn_8011C9E4 = .text:0x8011C9E4; // type:function size:0x4 -fn_8011C9E8 = .text:0x8011C9E8; // type:function size:0x4 -fn_8011C9EC = .text:0x8011C9EC; // type:function size:0x4 -fn_8011C9F0 = .text:0x8011C9F0; // type:function size:0x4 -fn_8011C9F4 = .text:0x8011C9F4; // type:function size:0x4 -fn_8011C9F8 = .text:0x8011C9F8; // type:function size:0x4 -fn_8011C9FC = .text:0x8011C9FC; // type:function size:0x4 -fn_8011CA00 = .text:0x8011CA00; // type:function size:0x4 -fn_8011CA04 = .text:0x8011CA04; // type:function size:0x4 -fn_8011CA08 = .text:0x8011CA08; // type:function size:0x4 -fn_8011CA0C = .text:0x8011CA0C; // type:function size:0x4 -fn_8011CA10 = .text:0x8011CA10; // type:function size:0x4 -fn_8011CA14 = .text:0x8011CA14; // type:function size:0x4 -fn_8011CA18 = .text:0x8011CA18; // type:function size:0x4 -fn_8011CA1C = .text:0x8011CA1C; // type:function size:0x4 -fn_8011CA20 = .text:0x8011CA20; // type:function size:0x4 -fn_8011CA24 = .text:0x8011CA24; // type:function size:0x4 -fn_8011CA28 = .text:0x8011CA28; // type:function size:0x4 -fn_8011CA2C = .text:0x8011CA2C; // type:function size:0x4 -fn_8011CA30 = .text:0x8011CA30; // type:function size:0x4 -fn_8011CA34 = .text:0x8011CA34; // type:function size:0x4 -fn_8011CA38 = .text:0x8011CA38; // type:function size:0x4 -fn_8011CA3C = .text:0x8011CA3C; // type:function size:0x4 -fn_8011CA40 = .text:0x8011CA40; // type:function size:0x4 -fn_8011CA44 = .text:0x8011CA44; // type:function size:0x4 -fn_8011CA48 = .text:0x8011CA48; // type:function size:0x4 -fn_8011CA4C = .text:0x8011CA4C; // type:function size:0x4 -fn_8011CA50 = .text:0x8011CA50; // type:function size:0x4 -fn_8011CA54 = .text:0x8011CA54; // type:function size:0x4 -fn_8011CA58 = .text:0x8011CA58; // type:function size:0x4 -fn_8011CA5C = .text:0x8011CA5C; // type:function size:0x4 -fn_8011CA60 = .text:0x8011CA60; // type:function size:0x4 -fn_8011CA64 = .text:0x8011CA64; // type:function size:0x4 -fn_8011CA68 = .text:0x8011CA68; // type:function size:0x4 -fn_8011CA6C = .text:0x8011CA6C; // type:function size:0x4 -fn_8011CA70 = .text:0x8011CA70; // type:function size:0x4 -fn_8011CA74 = .text:0x8011CA74; // type:function size:0x4 -fn_8011CA78 = .text:0x8011CA78; // type:function size:0x4 -fn_8011CA7C = .text:0x8011CA7C; // type:function size:0x4 -fn_8011CA80 = .text:0x8011CA80; // type:function size:0x4 -fn_8011CA84 = .text:0x8011CA84; // type:function size:0x4 -fn_8011CA88 = .text:0x8011CA88; // type:function size:0x4 -fn_8011CA8C = .text:0x8011CA8C; // type:function size:0x4 -fn_8011CA90 = .text:0x8011CA90; // type:function size:0x4 -fn_8011CA94 = .text:0x8011CA94; // type:function size:0x4 -fn_8011CA98 = .text:0x8011CA98; // type:function size:0x4 -fn_8011CA9C = .text:0x8011CA9C; // type:function size:0x4 -fn_8011CAA0 = .text:0x8011CAA0; // type:function size:0x4 -fn_8011CAA4 = .text:0x8011CAA4; // type:function size:0x4 -fn_8011CAA8 = .text:0x8011CAA8; // type:function size:0x4 -fn_8011CAAC = .text:0x8011CAAC; // type:function size:0x4 -fn_8011CAB0 = .text:0x8011CAB0; // type:function size:0x4 -fn_8011CAB4 = .text:0x8011CAB4; // type:function size:0x4 -fn_8011CAB8 = .text:0x8011CAB8; // type:function size:0x4 -fn_8011CABC = .text:0x8011CABC; // type:function size:0x4 -fn_8011CAC0 = .text:0x8011CAC0; // type:function size:0x4 -fn_8011CAC4 = .text:0x8011CAC4; // type:function size:0x4 -fn_8011CAC8 = .text:0x8011CAC8; // type:function size:0x4 -fn_8011CACC = .text:0x8011CACC; // type:function size:0x4 -fn_8011CAD0 = .text:0x8011CAD0; // type:function size:0x4 -fn_8011CAD4 = .text:0x8011CAD4; // type:function size:0x4 -fn_8011CAD8 = .text:0x8011CAD8; // type:function size:0x4 -fn_8011CADC = .text:0x8011CADC; // type:function size:0x4 -fn_8011CAE0 = .text:0x8011CAE0; // type:function size:0x4 -fn_8011CAE4 = .text:0x8011CAE4; // type:function size:0x4 -fn_8011CAE8 = .text:0x8011CAE8; // type:function size:0x4 -fn_8011CAEC = .text:0x8011CAEC; // type:function size:0x4 -fn_8011CAF0 = .text:0x8011CAF0; // type:function size:0x4 -fn_8011CAF4 = .text:0x8011CAF4; // type:function size:0x4 -fn_8011CAF8 = .text:0x8011CAF8; // type:function size:0x4 -fn_8011CAFC = .text:0x8011CAFC; // type:function size:0x4 -fn_8011CB00 = .text:0x8011CB00; // type:function size:0x4 -fn_8011CB04 = .text:0x8011CB04; // type:function size:0x4 -fn_8011CB08 = .text:0x8011CB08; // type:function size:0x4 -fn_8011CB0C = .text:0x8011CB0C; // type:function size:0x4 -fn_8011CB10 = .text:0x8011CB10; // type:function size:0x4 -fn_8011CB14 = .text:0x8011CB14; // type:function size:0x4 -fn_8011CB18 = .text:0x8011CB18; // type:function size:0x4 -fn_8011CB1C = .text:0x8011CB1C; // type:function size:0x4 -fn_8011CB20 = .text:0x8011CB20; // type:function size:0x4 -fn_8011CB24 = .text:0x8011CB24; // type:function size:0x4 -fn_8011CB28 = .text:0x8011CB28; // type:function size:0x4 -fn_8011CB2C = .text:0x8011CB2C; // type:function size:0x4 -fn_8011CB30 = .text:0x8011CB30; // type:function size:0x4 -fn_8011CB34 = .text:0x8011CB34; // type:function size:0x4 -fn_8011CB38 = .text:0x8011CB38; // type:function size:0x4 -fn_8011CB3C = .text:0x8011CB3C; // type:function size:0x4 -fn_8011CB40 = .text:0x8011CB40; // type:function size:0x4 -fn_8011CB44 = .text:0x8011CB44; // type:function size:0x4 -fn_8011CB48 = .text:0x8011CB48; // type:function size:0x4 -fn_8011CB4C = .text:0x8011CB4C; // type:function size:0x4 -fn_8011CB50 = .text:0x8011CB50; // type:function size:0x4 -fn_8011CB54 = .text:0x8011CB54; // type:function size:0x4 -fn_8011CB58 = .text:0x8011CB58; // type:function size:0x4 -fn_8011CB5C = .text:0x8011CB5C; // type:function size:0x4 -fn_8011CB60 = .text:0x8011CB60; // type:function size:0x4 -fn_8011CB64 = .text:0x8011CB64; // type:function size:0x4 -fn_8011CB68 = .text:0x8011CB68; // type:function size:0x4 -fn_8011CB6C = .text:0x8011CB6C; // type:function size:0x4 -fn_8011CB70 = .text:0x8011CB70; // type:function size:0x4 -fn_8011CB74 = .text:0x8011CB74; // type:function size:0x4 -fn_8011CB78 = .text:0x8011CB78; // type:function size:0x4 -fn_8011CB7C = .text:0x8011CB7C; // type:function size:0x4 -fn_8011CB80 = .text:0x8011CB80; // type:function size:0x4 -fn_8011CB84 = .text:0x8011CB84; // type:function size:0x4 -fn_8011CB88 = .text:0x8011CB88; // type:function size:0x4 -fn_8011CB8C = .text:0x8011CB8C; // type:function size:0x4 -fn_8011CB90 = .text:0x8011CB90; // type:function size:0x4 -fn_8011CB94 = .text:0x8011CB94; // type:function size:0x4 -fn_8011CB98 = .text:0x8011CB98; // type:function size:0x4 -fn_8011CB9C = .text:0x8011CB9C; // type:function size:0x4 -fn_8011CBA0 = .text:0x8011CBA0; // type:function size:0x4 -fn_8011CBA4 = .text:0x8011CBA4; // type:function size:0x4 -fn_8011CBA8 = .text:0x8011CBA8; // type:function size:0x4 -fn_8011CBAC = .text:0x8011CBAC; // type:function size:0x4 -fn_8011CBB0 = .text:0x8011CBB0; // type:function size:0x4 -fn_8011CBB4 = .text:0x8011CBB4; // type:function size:0x4 -fn_8011CBB8 = .text:0x8011CBB8; // type:function size:0x4 -fn_8011CBBC = .text:0x8011CBBC; // type:function size:0x4 -fn_8011CBC0 = .text:0x8011CBC0; // type:function size:0x4 -fn_8011CBC4 = .text:0x8011CBC4; // type:function size:0x4 -fn_8011CBC8 = .text:0x8011CBC8; // type:function size:0x4 -fn_8011CBCC = .text:0x8011CBCC; // type:function size:0x4 -fn_8011CBD0 = .text:0x8011CBD0; // type:function size:0x4 -fn_8011CBD4 = .text:0x8011CBD4; // type:function size:0x4 -fn_8011CBD8 = .text:0x8011CBD8; // type:function size:0x4 -fn_8011CBDC = .text:0x8011CBDC; // type:function size:0x4 -fn_8011CBE0 = .text:0x8011CBE0; // type:function size:0x4 -fn_8011CBE4 = .text:0x8011CBE4; // type:function size:0x4 -fn_8011CBE8 = .text:0x8011CBE8; // type:function size:0x4 -fn_8011CBEC = .text:0x8011CBEC; // type:function size:0x4 -fn_8011CBF0 = .text:0x8011CBF0; // type:function size:0x4 -fn_8011CBF4 = .text:0x8011CBF4; // type:function size:0x4 -fn_8011CBF8 = .text:0x8011CBF8; // type:function size:0x4 -fn_8011CBFC = .text:0x8011CBFC; // type:function size:0x4 -fn_8011CC00 = .text:0x8011CC00; // type:function size:0x4 -fn_8011CC04 = .text:0x8011CC04; // type:function size:0x4 -fn_8011CC08 = .text:0x8011CC08; // type:function size:0x4 -fn_8011CC0C = .text:0x8011CC0C; // type:function size:0x4 -fn_8011CC10 = .text:0x8011CC10; // type:function size:0x4 -fn_8011CC14 = .text:0x8011CC14; // type:function size:0x4 -fn_8011CC18 = .text:0x8011CC18; // type:function size:0x4 -fn_8011CC1C = .text:0x8011CC1C; // type:function size:0x4 -fn_8011CC20 = .text:0x8011CC20; // type:function size:0x4 -fn_8011CC24 = .text:0x8011CC24; // type:function size:0x4 -fn_8011CC28 = .text:0x8011CC28; // type:function size:0x4 -fn_8011CC2C = .text:0x8011CC2C; // type:function size:0x4 -fn_8011CC30 = .text:0x8011CC30; // type:function size:0x4 -fn_8011CC34 = .text:0x8011CC34; // type:function size:0x4 -fn_8011CC38 = .text:0x8011CC38; // type:function size:0x4 -fn_8011CC3C = .text:0x8011CC3C; // type:function size:0x4 -fn_8011CC40 = .text:0x8011CC40; // type:function size:0x4 -fn_8011CC44 = .text:0x8011CC44; // type:function size:0x4 -fn_8011CC48 = .text:0x8011CC48; // type:function size:0x4 -fn_8011CC4C = .text:0x8011CC4C; // type:function size:0x4 -fn_8011CC50 = .text:0x8011CC50; // type:function size:0x4 -fn_8011CC54 = .text:0x8011CC54; // type:function size:0x4 -fn_8011CC58 = .text:0x8011CC58; // type:function size:0x4 -fn_8011CC5C = .text:0x8011CC5C; // type:function size:0x4 -fn_8011CC60 = .text:0x8011CC60; // type:function size:0x4 -fn_8011CC64 = .text:0x8011CC64; // type:function size:0x4 -fn_8011CC68 = .text:0x8011CC68; // type:function size:0x4 -fn_8011CC6C = .text:0x8011CC6C; // type:function size:0x4 -fn_8011CC70 = .text:0x8011CC70; // type:function size:0x4 -fn_8011CC74 = .text:0x8011CC74; // type:function size:0x4 -fn_8011CC78 = .text:0x8011CC78; // type:function size:0x4 -fn_8011CC7C = .text:0x8011CC7C; // type:function size:0x4 -fn_8011CC80 = .text:0x8011CC80; // type:function size:0x4 -fn_8011CC84 = .text:0x8011CC84; // type:function size:0x4 -fn_8011CC88 = .text:0x8011CC88; // type:function size:0x4 -fn_8011CC8C = .text:0x8011CC8C; // type:function size:0x4 -fn_8011CC90 = .text:0x8011CC90; // type:function size:0x4 -fn_8011CC94 = .text:0x8011CC94; // type:function size:0x4 -fn_8011CC98 = .text:0x8011CC98; // type:function size:0x4 -fn_8011CC9C = .text:0x8011CC9C; // type:function size:0x4 -fn_8011CCA0 = .text:0x8011CCA0; // type:function size:0x4 -fn_8011CCA4 = .text:0x8011CCA4; // type:function size:0x4 -fn_8011CCA8 = .text:0x8011CCA8; // type:function size:0x4 -fn_8011CCAC = .text:0x8011CCAC; // type:function size:0x4 -fn_8011CCB0 = .text:0x8011CCB0; // type:function size:0x4 -fn_8011CCB4 = .text:0x8011CCB4; // type:function size:0x4 -fn_8011CCB8 = .text:0x8011CCB8; // type:function size:0x4 -fn_8011CCBC = .text:0x8011CCBC; // type:function size:0x4 -fn_8011CCC0 = .text:0x8011CCC0; // type:function size:0x4 -fn_8011CCC4 = .text:0x8011CCC4; // type:function size:0x4 -fn_8011CCC8 = .text:0x8011CCC8; // type:function size:0x4 -fn_8011CCCC = .text:0x8011CCCC; // type:function size:0x4 -fn_8011CCD0 = .text:0x8011CCD0; // type:function size:0x4 -fn_8011CCD4 = .text:0x8011CCD4; // type:function size:0x4 -fn_8011CCD8 = .text:0x8011CCD8; // type:function size:0x4 -fn_8011CCDC = .text:0x8011CCDC; // type:function size:0x4 -fn_8011CCE0 = .text:0x8011CCE0; // type:function size:0x4 -fn_8011CCE4 = .text:0x8011CCE4; // type:function size:0x4 -fn_8011CCE8 = .text:0x8011CCE8; // type:function size:0x4 -fn_8011CCEC = .text:0x8011CCEC; // type:function size:0x4 -fn_8011CCF0 = .text:0x8011CCF0; // type:function size:0x4 -fn_8011CCF4 = .text:0x8011CCF4; // type:function size:0x4 -fn_8011CCF8 = .text:0x8011CCF8; // type:function size:0x4 -fn_8011CCFC = .text:0x8011CCFC; // type:function size:0x4 -fn_8011CD00 = .text:0x8011CD00; // type:function size:0x4 -fn_8011CD04 = .text:0x8011CD04; // type:function size:0x4 -fn_8011CD08 = .text:0x8011CD08; // type:function size:0x4 -fn_8011CD0C = .text:0x8011CD0C; // type:function size:0x4 -fn_8011CD10 = .text:0x8011CD10; // type:function size:0x4 -fn_8011CD14 = .text:0x8011CD14; // type:function size:0x4 -fn_8011CD18 = .text:0x8011CD18; // type:function size:0x4 -fn_8011CD1C = .text:0x8011CD1C; // type:function size:0x4 -fn_8011CD20 = .text:0x8011CD20; // type:function size:0x4 -fn_8011CD24 = .text:0x8011CD24; // type:function size:0x4 -fn_8011CD28 = .text:0x8011CD28; // type:function size:0x4 -fn_8011CD2C = .text:0x8011CD2C; // type:function size:0x4 -fn_8011CD30 = .text:0x8011CD30; // type:function size:0x4 -fn_8011CD34 = .text:0x8011CD34; // type:function size:0x4 -fn_8011CD38 = .text:0x8011CD38; // type:function size:0x4 -fn_8011CD3C = .text:0x8011CD3C; // type:function size:0x4 -fn_8011CD40 = .text:0x8011CD40; // type:function size:0x4 -fn_8011CD44 = .text:0x8011CD44; // type:function size:0x4 -fn_8011CD48 = .text:0x8011CD48; // type:function size:0x4 -fn_8011CD4C = .text:0x8011CD4C; // type:function size:0x4 -fn_8011CD50 = .text:0x8011CD50; // type:function size:0x4 -fn_8011CD54 = .text:0x8011CD54; // type:function size:0x4 -fn_8011CD58 = .text:0x8011CD58; // type:function size:0x4 -fn_8011CD5C = .text:0x8011CD5C; // type:function size:0x4 -fn_8011CD60 = .text:0x8011CD60; // type:function size:0x4 -fn_8011CD64 = .text:0x8011CD64; // type:function size:0x4 -fn_8011CD68 = .text:0x8011CD68; // type:function size:0x4 -fn_8011CD6C = .text:0x8011CD6C; // type:function size:0x4 -fn_8011CD70 = .text:0x8011CD70; // type:function size:0x4 -fn_8011CD74 = .text:0x8011CD74; // type:function size:0x4 -fn_8011CD78 = .text:0x8011CD78; // type:function size:0x4 -fn_8011CD7C = .text:0x8011CD7C; // type:function size:0x4 -fn_8011CD80 = .text:0x8011CD80; // type:function size:0x4 -fn_8011CD84 = .text:0x8011CD84; // type:function size:0x4 -fn_8011CD88 = .text:0x8011CD88; // type:function size:0x4 -fn_8011CD8C = .text:0x8011CD8C; // type:function size:0x4 -fn_8011CD90 = .text:0x8011CD90; // type:function size:0x4 -fn_8011CD94 = .text:0x8011CD94; // type:function size:0x4 -fn_8011CD98 = .text:0x8011CD98; // type:function size:0x4 -fn_8011CD9C = .text:0x8011CD9C; // type:function size:0x4 -fn_8011CDA0 = .text:0x8011CDA0; // type:function size:0x4 -fn_8011CDA4 = .text:0x8011CDA4; // type:function size:0x4 -fn_8011CDA8 = .text:0x8011CDA8; // type:function size:0x4 -fn_8011CDAC = .text:0x8011CDAC; // type:function size:0x4 -fn_8011CDB0 = .text:0x8011CDB0; // type:function size:0x4 -fn_8011CDB4 = .text:0x8011CDB4; // type:function size:0x4 -fn_8011CDB8 = .text:0x8011CDB8; // type:function size:0x4 -fn_8011CDBC = .text:0x8011CDBC; // type:function size:0x4 -fn_8011CDC0 = .text:0x8011CDC0; // type:function size:0x4 -fn_8011CDC4 = .text:0x8011CDC4; // type:function size:0x4 -fn_8011CDC8 = .text:0x8011CDC8; // type:function size:0x4 -fn_8011CDCC = .text:0x8011CDCC; // type:function size:0x4 -fn_8011CDD0 = .text:0x8011CDD0; // type:function size:0x4 -fn_8011CDD4 = .text:0x8011CDD4; // type:function size:0x4 -fn_8011CDD8 = .text:0x8011CDD8; // type:function size:0x4 -fn_8011CDDC = .text:0x8011CDDC; // type:function size:0x4 -fn_8011CDE0 = .text:0x8011CDE0; // type:function size:0x4 -fn_8011CDE4 = .text:0x8011CDE4; // type:function size:0x4 -fn_8011CDE8 = .text:0x8011CDE8; // type:function size:0x4 -fn_8011CDEC = .text:0x8011CDEC; // type:function size:0x4 -fn_8011CDF0 = .text:0x8011CDF0; // type:function size:0x4 -fn_8011CDF4 = .text:0x8011CDF4; // type:function size:0x4 -fn_8011CDF8 = .text:0x8011CDF8; // type:function size:0x4 -fn_8011CDFC = .text:0x8011CDFC; // type:function size:0x4 -fn_8011CE00 = .text:0x8011CE00; // type:function size:0x4 -fn_8011CE04 = .text:0x8011CE04; // type:function size:0x4 -fn_8011CE08 = .text:0x8011CE08; // type:function size:0x4 -fn_8011CE0C = .text:0x8011CE0C; // type:function size:0x4 -fn_8011CE10 = .text:0x8011CE10; // type:function size:0x4 -fn_8011CE14 = .text:0x8011CE14; // type:function size:0x4 -fn_8011CE18 = .text:0x8011CE18; // type:function size:0x4 -fn_8011CE1C = .text:0x8011CE1C; // type:function size:0x4 -fn_8011CE20 = .text:0x8011CE20; // type:function size:0x4 -fn_8011CE24 = .text:0x8011CE24; // type:function size:0x4 -fn_8011CE28 = .text:0x8011CE28; // type:function size:0x4 -fn_8011CE2C = .text:0x8011CE2C; // type:function size:0x4 -fn_8011CE30 = .text:0x8011CE30; // type:function size:0x4 -fn_8011CE34 = .text:0x8011CE34; // type:function size:0x4 -fn_8011CE38 = .text:0x8011CE38; // type:function size:0x4 -fn_8011CE3C = .text:0x8011CE3C; // type:function size:0x4 -fn_8011CE40 = .text:0x8011CE40; // type:function size:0x4 -fn_8011CE44 = .text:0x8011CE44; // type:function size:0x4 -fn_8011CE48 = .text:0x8011CE48; // type:function size:0x4 -fn_8011CE4C = .text:0x8011CE4C; // type:function size:0x4 -fn_8011CE50 = .text:0x8011CE50; // type:function size:0x4 -fn_8011CE54 = .text:0x8011CE54; // type:function size:0x4 -fn_8011CE58 = .text:0x8011CE58; // type:function size:0x4 -fn_8011CE5C = .text:0x8011CE5C; // type:function size:0x4 -fn_8011CE60 = .text:0x8011CE60; // type:function size:0x4 -fn_8011CE64 = .text:0x8011CE64; // type:function size:0x4 -fn_8011CE68 = .text:0x8011CE68; // type:function size:0x4 -fn_8011CE6C = .text:0x8011CE6C; // type:function size:0x4 -fn_8011CE70 = .text:0x8011CE70; // type:function size:0x4 -fn_8011CE74 = .text:0x8011CE74; // type:function size:0x4 -fn_8011CE78 = .text:0x8011CE78; // type:function size:0x4 -fn_8011CE7C = .text:0x8011CE7C; // type:function size:0x4 -fn_8011CE80 = .text:0x8011CE80; // type:function size:0x4 -fn_8011CE84 = .text:0x8011CE84; // type:function size:0x4 -fn_8011CE88 = .text:0x8011CE88; // type:function size:0x4 -fn_8011CE8C = .text:0x8011CE8C; // type:function size:0x4 -fn_8011CE90 = .text:0x8011CE90; // type:function size:0x4 -fn_8011CE94 = .text:0x8011CE94; // type:function size:0x4 -fn_8011CE98 = .text:0x8011CE98; // type:function size:0x4 -fn_8011CE9C = .text:0x8011CE9C; // type:function size:0x4 -fn_8011CEA0 = .text:0x8011CEA0; // type:function size:0x4 -fn_8011CEA4 = .text:0x8011CEA4; // type:function size:0x4 -fn_8011CEA8 = .text:0x8011CEA8; // type:function size:0x4 -fn_8011CEAC = .text:0x8011CEAC; // type:function size:0x4 -fn_8011CEB0 = .text:0x8011CEB0; // type:function size:0x4 -fn_8011CEB4 = .text:0x8011CEB4; // type:function size:0x4 -fn_8011CEB8 = .text:0x8011CEB8; // type:function size:0x4 -fn_8011CEBC = .text:0x8011CEBC; // type:function size:0x4 -fn_8011CEC0 = .text:0x8011CEC0; // type:function size:0x4 -fn_8011CEC4 = .text:0x8011CEC4; // type:function size:0x4 -fn_8011CEC8 = .text:0x8011CEC8; // type:function size:0x4 -fn_8011CECC = .text:0x8011CECC; // type:function size:0x4 -fn_8011CED0 = .text:0x8011CED0; // type:function size:0x4 -fn_8011CED4 = .text:0x8011CED4; // type:function size:0x4 -fn_8011CED8 = .text:0x8011CED8; // type:function size:0x4 -fn_8011CEDC = .text:0x8011CEDC; // type:function size:0x4 -fn_8011CEE0 = .text:0x8011CEE0; // type:function size:0x4 -fn_8011CEE4 = .text:0x8011CEE4; // type:function size:0x4 -fn_8011CEE8 = .text:0x8011CEE8; // type:function size:0x4 -fn_8011CEEC = .text:0x8011CEEC; // type:function size:0x4 -fn_8011CEF0 = .text:0x8011CEF0; // type:function size:0x4 -fn_8011CEF4 = .text:0x8011CEF4; // type:function size:0x4 -fn_8011CEF8 = .text:0x8011CEF8; // type:function size:0x4 -fn_8011CEFC = .text:0x8011CEFC; // type:function size:0x4 -fn_8011CF00 = .text:0x8011CF00; // type:function size:0x4 -fn_8011CF04 = .text:0x8011CF04; // type:function size:0x4 -fn_8011CF08 = .text:0x8011CF08; // type:function size:0x4 -fn_8011CF0C = .text:0x8011CF0C; // type:function size:0x4 -fn_8011CF10 = .text:0x8011CF10; // type:function size:0x4 -fn_8011CF14 = .text:0x8011CF14; // type:function size:0x4 -fn_8011CF18 = .text:0x8011CF18; // type:function size:0x4 -fn_8011CF1C = .text:0x8011CF1C; // type:function size:0x4 -fn_8011CF20 = .text:0x8011CF20; // type:function size:0x4 -fn_8011CF24 = .text:0x8011CF24; // type:function size:0x4 -fn_8011CF28 = .text:0x8011CF28; // type:function size:0x4 -fn_8011CF2C = .text:0x8011CF2C; // type:function size:0x4 -fn_8011CF30 = .text:0x8011CF30; // type:function size:0x4 -fn_8011CF34 = .text:0x8011CF34; // type:function size:0x4 -fn_8011CF38 = .text:0x8011CF38; // type:function size:0x4 -fn_8011CF3C = .text:0x8011CF3C; // type:function size:0x4 -fn_8011CF40 = .text:0x8011CF40; // type:function size:0x4 -fn_8011CF44 = .text:0x8011CF44; // type:function size:0x4 -fn_8011CF48 = .text:0x8011CF48; // type:function size:0x4 -fn_8011CF4C = .text:0x8011CF4C; // type:function size:0x4 -fn_8011CF50 = .text:0x8011CF50; // type:function size:0x4 -fn_8011CF54 = .text:0x8011CF54; // type:function size:0x4 -fn_8011CF58 = .text:0x8011CF58; // type:function size:0x4 -fn_8011CF5C = .text:0x8011CF5C; // type:function size:0x4 -fn_8011CF60 = .text:0x8011CF60; // type:function size:0x4 -fn_8011CF64 = .text:0x8011CF64; // type:function size:0x4 -fn_8011CF68 = .text:0x8011CF68; // type:function size:0x4 -fn_8011CF6C = .text:0x8011CF6C; // type:function size:0x4 -fn_8011CF70 = .text:0x8011CF70; // type:function size:0x4 -fn_8011CF74 = .text:0x8011CF74; // type:function size:0x4 -fn_8011CF78 = .text:0x8011CF78; // type:function size:0x4 -fn_8011CF7C = .text:0x8011CF7C; // type:function size:0x4 -fn_8011CF80 = .text:0x8011CF80; // type:function size:0x4 -fn_8011CF84 = .text:0x8011CF84; // type:function size:0x4 -fn_8011CF88 = .text:0x8011CF88; // type:function size:0x4 -fn_8011CF8C = .text:0x8011CF8C; // type:function size:0x4 -fn_8011CF90 = .text:0x8011CF90; // type:function size:0x4 -fn_8011CF94 = .text:0x8011CF94; // type:function size:0x4 -fn_8011CF98 = .text:0x8011CF98; // type:function size:0x4 -fn_8011CF9C = .text:0x8011CF9C; // type:function size:0x4 -fn_8011CFA0 = .text:0x8011CFA0; // type:function size:0x4 -fn_8011CFA4 = .text:0x8011CFA4; // type:function size:0x4 -fn_8011CFA8 = .text:0x8011CFA8; // type:function size:0x4 -fn_8011CFAC = .text:0x8011CFAC; // type:function size:0x4 -fn_8011CFB0 = .text:0x8011CFB0; // type:function size:0x4 -fn_8011CFB4 = .text:0x8011CFB4; // type:function size:0x4 -fn_8011CFB8 = .text:0x8011CFB8; // type:function size:0x4 -fn_8011CFBC = .text:0x8011CFBC; // type:function size:0x4 -fn_8011CFC0 = .text:0x8011CFC0; // type:function size:0x4 -fn_8011CFC4 = .text:0x8011CFC4; // type:function size:0x4 -fn_8011CFC8 = .text:0x8011CFC8; // type:function size:0x4 -fn_8011CFCC = .text:0x8011CFCC; // type:function size:0x4 -fn_8011CFD0 = .text:0x8011CFD0; // type:function size:0x4 -fn_8011CFD4 = .text:0x8011CFD4; // type:function size:0x4 -fn_8011CFD8 = .text:0x8011CFD8; // type:function size:0x4 -fn_8011CFDC = .text:0x8011CFDC; // type:function size:0x4 -fn_8011CFE0 = .text:0x8011CFE0; // type:function size:0x4 -fn_8011CFE4 = .text:0x8011CFE4; // type:function size:0x4 -fn_8011CFE8 = .text:0x8011CFE8; // type:function size:0x4 -fn_8011CFEC = .text:0x8011CFEC; // type:function size:0x4 -fn_8011CFF0 = .text:0x8011CFF0; // type:function size:0x4 -fn_8011CFF4 = .text:0x8011CFF4; // type:function size:0x4 -fn_8011CFF8 = .text:0x8011CFF8; // type:function size:0x4 -fn_8011CFFC = .text:0x8011CFFC; // type:function size:0x4 -fn_8011D000 = .text:0x8011D000; // type:function size:0x4 -fn_8011D004 = .text:0x8011D004; // type:function size:0x4 -fn_8011D008 = .text:0x8011D008; // type:function size:0x4 -fn_8011D00C = .text:0x8011D00C; // type:function size:0x4 -fn_8011D010 = .text:0x8011D010; // type:function size:0x4 -fn_8011D014 = .text:0x8011D014; // type:function size:0x4 -fn_8011D018 = .text:0x8011D018; // type:function size:0x4 -fn_8011D01C = .text:0x8011D01C; // type:function size:0x4 -fn_8011D020 = .text:0x8011D020; // type:function size:0x4 -fn_8011D024 = .text:0x8011D024; // type:function size:0x4 -fn_8011D028 = .text:0x8011D028; // type:function size:0x4 -fn_8011D02C = .text:0x8011D02C; // type:function size:0x4 -fn_8011D030 = .text:0x8011D030; // type:function size:0x4 -fn_8011D034 = .text:0x8011D034; // type:function size:0x4 -fn_8011D038 = .text:0x8011D038; // type:function size:0x4 -fn_8011D03C = .text:0x8011D03C; // type:function size:0x4 -fn_8011D040 = .text:0x8011D040; // type:function size:0x4 -fn_8011D044 = .text:0x8011D044; // type:function size:0x4 -fn_8011D048 = .text:0x8011D048; // type:function size:0x4 -fn_8011D04C = .text:0x8011D04C; // type:function size:0x4 -fn_8011D050 = .text:0x8011D050; // type:function size:0x4 -fn_8011D054 = .text:0x8011D054; // type:function size:0x4 -fn_8011D058 = .text:0x8011D058; // type:function size:0x4 -fn_8011D05C = .text:0x8011D05C; // type:function size:0x4 -fn_8011D060 = .text:0x8011D060; // type:function size:0x4 -fn_8011D064 = .text:0x8011D064; // type:function size:0x4 -fn_8011D068 = .text:0x8011D068; // type:function size:0x4 -fn_8011D06C = .text:0x8011D06C; // type:function size:0x4 -fn_8011D070 = .text:0x8011D070; // type:function size:0x4 -fn_8011D074 = .text:0x8011D074; // type:function size:0x4 -fn_8011D078 = .text:0x8011D078; // type:function size:0x4 -fn_8011D07C = .text:0x8011D07C; // type:function size:0x4 -fn_8011D080 = .text:0x8011D080; // type:function size:0x4 -fn_8011D084 = .text:0x8011D084; // type:function size:0x4 -fn_8011D088 = .text:0x8011D088; // type:function size:0x4 -fn_8011D08C = .text:0x8011D08C; // type:function size:0x4 -fn_8011D090 = .text:0x8011D090; // type:function size:0x4 -fn_8011D094 = .text:0x8011D094; // type:function size:0x4 -fn_8011D098 = .text:0x8011D098; // type:function size:0x4 -fn_8011D09C = .text:0x8011D09C; // type:function size:0x4 -fn_8011D0A0 = .text:0x8011D0A0; // type:function size:0x4 -fn_8011D0A4 = .text:0x8011D0A4; // type:function size:0x4 -fn_8011D0A8 = .text:0x8011D0A8; // type:function size:0x4 -fn_8011D0AC = .text:0x8011D0AC; // type:function size:0x4 -fn_8011D0B0 = .text:0x8011D0B0; // type:function size:0x4 -fn_8011D0B4 = .text:0x8011D0B4; // type:function size:0x4 -fn_8011D0B8 = .text:0x8011D0B8; // type:function size:0x4 -fn_8011D0BC = .text:0x8011D0BC; // type:function size:0x4 -fn_8011D0C0 = .text:0x8011D0C0; // type:function size:0x4 -fn_8011D0C4 = .text:0x8011D0C4; // type:function size:0x4 -fn_8011D0C8 = .text:0x8011D0C8; // type:function size:0x4 -fn_8011D0CC = .text:0x8011D0CC; // type:function size:0x4 -fn_8011D0D0 = .text:0x8011D0D0; // type:function size:0x4 -fn_8011D0D4 = .text:0x8011D0D4; // type:function size:0x4 -fn_8011D0D8 = .text:0x8011D0D8; // type:function size:0x4 -fn_8011D0DC = .text:0x8011D0DC; // type:function size:0x4 -fn_8011D0E0 = .text:0x8011D0E0; // type:function size:0x4 -fn_8011D0E4 = .text:0x8011D0E4; // type:function size:0x4 -fn_8011D0E8 = .text:0x8011D0E8; // type:function size:0x4 -fn_8011D0EC = .text:0x8011D0EC; // type:function size:0x4 -fn_8011D0F0 = .text:0x8011D0F0; // type:function size:0x4 -fn_8011D0F4 = .text:0x8011D0F4; // type:function size:0x4 -fn_8011D0F8 = .text:0x8011D0F8; // type:function size:0x4 -fn_8011D0FC = .text:0x8011D0FC; // type:function size:0x4 -fn_8011D100 = .text:0x8011D100; // type:function size:0x4 -fn_8011D104 = .text:0x8011D104; // type:function size:0x4 -fn_8011D108 = .text:0x8011D108; // type:function size:0x4 -fn_8011D10C = .text:0x8011D10C; // type:function size:0x4 -fn_8011D110 = .text:0x8011D110; // type:function size:0x4 -fn_8011D114 = .text:0x8011D114; // type:function size:0x4 -fn_8011D118 = .text:0x8011D118; // type:function size:0x4 -fn_8011D11C = .text:0x8011D11C; // type:function size:0x4 -fn_8011D120 = .text:0x8011D120; // type:function size:0x4 -fn_8011D124 = .text:0x8011D124; // type:function size:0x4 -fn_8011D128 = .text:0x8011D128; // type:function size:0x4 -fn_8011D12C = .text:0x8011D12C; // type:function size:0x4 -fn_8011D130 = .text:0x8011D130; // type:function size:0x4 -fn_8011D134 = .text:0x8011D134; // type:function size:0x4 -fn_8011D138 = .text:0x8011D138; // type:function size:0x4 -fn_8011D13C = .text:0x8011D13C; // type:function size:0x4 -fn_8011D140 = .text:0x8011D140; // type:function size:0x4 -fn_8011D144 = .text:0x8011D144; // type:function size:0x4 -fn_8011D148 = .text:0x8011D148; // type:function size:0x4 -fn_8011D14C = .text:0x8011D14C; // type:function size:0x4 -fn_8011D150 = .text:0x8011D150; // type:function size:0x4 -fn_8011D154 = .text:0x8011D154; // type:function size:0x4 -fn_8011D158 = .text:0x8011D158; // type:function size:0x4 -fn_8011D15C = .text:0x8011D15C; // type:function size:0x4 -fn_8011D160 = .text:0x8011D160; // type:function size:0x4 -fn_8011D164 = .text:0x8011D164; // type:function size:0x4 -fn_8011D168 = .text:0x8011D168; // type:function size:0x4 -fn_8011D16C = .text:0x8011D16C; // type:function size:0x4 -fn_8011D170 = .text:0x8011D170; // type:function size:0x4 -fn_8011D174 = .text:0x8011D174; // type:function size:0x4 -fn_8011D178 = .text:0x8011D178; // type:function size:0x4 -fn_8011D17C = .text:0x8011D17C; // type:function size:0x4 -fn_8011D180 = .text:0x8011D180; // type:function size:0x4 -fn_8011D184 = .text:0x8011D184; // type:function size:0x4 -fn_8011D188 = .text:0x8011D188; // type:function size:0x4 -fn_8011D18C = .text:0x8011D18C; // type:function size:0x4 -fn_8011D190 = .text:0x8011D190; // type:function size:0x4 -fn_8011D194 = .text:0x8011D194; // type:function size:0x4 -fn_8011D198 = .text:0x8011D198; // type:function size:0x4 -fn_8011D19C = .text:0x8011D19C; // type:function size:0x4 -fn_8011D1A0 = .text:0x8011D1A0; // type:function size:0x4 -fn_8011D1A4 = .text:0x8011D1A4; // type:function size:0x4 -fn_8011D1A8 = .text:0x8011D1A8; // type:function size:0x4 -fn_8011D1AC = .text:0x8011D1AC; // type:function size:0x4 -fn_8011D1B0 = .text:0x8011D1B0; // type:function size:0x4 -fn_8011D1B4 = .text:0x8011D1B4; // type:function size:0x4 -fn_8011D1B8 = .text:0x8011D1B8; // type:function size:0x4 -fn_8011D1BC = .text:0x8011D1BC; // type:function size:0x4 -fn_8011D1C0 = .text:0x8011D1C0; // type:function size:0x4 -fn_8011D1C4 = .text:0x8011D1C4; // type:function size:0x4 -fn_8011D1C8 = .text:0x8011D1C8; // type:function size:0x4 -fn_8011D1CC = .text:0x8011D1CC; // type:function size:0x4 -fn_8011D1D0 = .text:0x8011D1D0; // type:function size:0x4 -fn_8011D1D4 = .text:0x8011D1D4; // type:function size:0x4 -fn_8011D1D8 = .text:0x8011D1D8; // type:function size:0x4 -fn_8011D1DC = .text:0x8011D1DC; // type:function size:0x4 -fn_8011D1E0 = .text:0x8011D1E0; // type:function size:0x4 -fn_8011D1E4 = .text:0x8011D1E4; // type:function size:0x4 -fn_8011D1E8 = .text:0x8011D1E8; // type:function size:0x4 -fn_8011D1EC = .text:0x8011D1EC; // type:function size:0x4 -fn_8011D1F0 = .text:0x8011D1F0; // type:function size:0x4 -fn_8011D1F4 = .text:0x8011D1F4; // type:function size:0x4 -fn_8011D1F8 = .text:0x8011D1F8; // type:function size:0x4 -fn_8011D1FC = .text:0x8011D1FC; // type:function size:0x4 -fn_8011D200 = .text:0x8011D200; // type:function size:0x4 -fn_8011D204 = .text:0x8011D204; // type:function size:0x4 -fn_8011D208 = .text:0x8011D208; // type:function size:0x4 -fn_8011D20C = .text:0x8011D20C; // type:function size:0x4 -fn_8011D210 = .text:0x8011D210; // type:function size:0x4 -fn_8011D214 = .text:0x8011D214; // type:function size:0x4 -fn_8011D218 = .text:0x8011D218; // type:function size:0x4 -fn_8011D21C = .text:0x8011D21C; // type:function size:0x4 -fn_8011D220 = .text:0x8011D220; // type:function size:0x4 -fn_8011D224 = .text:0x8011D224; // type:function size:0x4 -fn_8011D228 = .text:0x8011D228; // type:function size:0x4 -fn_8011D22C = .text:0x8011D22C; // type:function size:0x4 -fn_8011D230 = .text:0x8011D230; // type:function size:0x4 -fn_8011D234 = .text:0x8011D234; // type:function size:0x4 -fn_8011D238 = .text:0x8011D238; // type:function size:0x4 -fn_8011D23C = .text:0x8011D23C; // type:function size:0x4 -fn_8011D240 = .text:0x8011D240; // type:function size:0x4 -fn_8011D244 = .text:0x8011D244; // type:function size:0x4 -fn_8011D248 = .text:0x8011D248; // type:function size:0x4 -fn_8011D24C = .text:0x8011D24C; // type:function size:0x4 -fn_8011D250 = .text:0x8011D250; // type:function size:0x4 -fn_8011D254 = .text:0x8011D254; // type:function size:0x4 -fn_8011D258 = .text:0x8011D258; // type:function size:0x4 -fn_8011D25C = .text:0x8011D25C; // type:function size:0x4 -fn_8011D260 = .text:0x8011D260; // type:function size:0x4 -fn_8011D264 = .text:0x8011D264; // type:function size:0x4 -fn_8011D268 = .text:0x8011D268; // type:function size:0x4 -fn_8011D26C = .text:0x8011D26C; // type:function size:0x4 -fn_8011D270 = .text:0x8011D270; // type:function size:0x4 -fn_8011D274 = .text:0x8011D274; // type:function size:0x4 -fn_8011D278 = .text:0x8011D278; // type:function size:0x4 -fn_8011D27C = .text:0x8011D27C; // type:function size:0x4 -fn_8011D280 = .text:0x8011D280; // type:function size:0x4 -fn_8011D284 = .text:0x8011D284; // type:function size:0x4 -fn_8011D288 = .text:0x8011D288; // type:function size:0x4 -fn_8011D28C = .text:0x8011D28C; // type:function size:0x4 -fn_8011D290 = .text:0x8011D290; // type:function size:0x4 -fn_8011D294 = .text:0x8011D294; // type:function size:0x4 -fn_8011D298 = .text:0x8011D298; // type:function size:0x4 -fn_8011D29C = .text:0x8011D29C; // type:function size:0x4 -fn_8011D2A0 = .text:0x8011D2A0; // type:function size:0x4 -fn_8011D2A4 = .text:0x8011D2A4; // type:function size:0x4 -fn_8011D2A8 = .text:0x8011D2A8; // type:function size:0x4 -fn_8011D2AC = .text:0x8011D2AC; // type:function size:0x4 -fn_8011D2B0 = .text:0x8011D2B0; // type:function size:0x4 -fn_8011D2B4 = .text:0x8011D2B4; // type:function size:0x4 -fn_8011D2B8 = .text:0x8011D2B8; // type:function size:0x4 -fn_8011D2BC = .text:0x8011D2BC; // type:function size:0x4 -fn_8011D2C0 = .text:0x8011D2C0; // type:function size:0x4 -fn_8011D2C4 = .text:0x8011D2C4; // type:function size:0x4 -fn_8011D2C8 = .text:0x8011D2C8; // type:function size:0x4 -fn_8011D2CC = .text:0x8011D2CC; // type:function size:0x4 -fn_8011D2D0 = .text:0x8011D2D0; // type:function size:0x4 -fn_8011D2D4 = .text:0x8011D2D4; // type:function size:0x4 -fn_8011D2D8 = .text:0x8011D2D8; // type:function size:0x4 -fn_8011D2DC = .text:0x8011D2DC; // type:function size:0x4 -fn_8011D2E0 = .text:0x8011D2E0; // type:function size:0x4 -fn_8011D2E4 = .text:0x8011D2E4; // type:function size:0x4 -fn_8011D2E8 = .text:0x8011D2E8; // type:function size:0x4 -fn_8011D2EC = .text:0x8011D2EC; // type:function size:0x4 -fn_8011D2F0 = .text:0x8011D2F0; // type:function size:0x4 -fn_8011D2F4 = .text:0x8011D2F4; // type:function size:0x4 -fn_8011D2F8 = .text:0x8011D2F8; // type:function size:0x4 -fn_8011D2FC = .text:0x8011D2FC; // type:function size:0x4 -fn_8011D300 = .text:0x8011D300; // type:function size:0x4 -fn_8011D304 = .text:0x8011D304; // type:function size:0x4 -fn_8011D308 = .text:0x8011D308; // type:function size:0x4 -fn_8011D30C = .text:0x8011D30C; // type:function size:0x4 -fn_8011D310 = .text:0x8011D310; // type:function size:0x4 -fn_8011D314 = .text:0x8011D314; // type:function size:0x4 -fn_8011D318 = .text:0x8011D318; // type:function size:0x4 -fn_8011D31C = .text:0x8011D31C; // type:function size:0x4 -fn_8011D320 = .text:0x8011D320; // type:function size:0x4 -fn_8011D324 = .text:0x8011D324; // type:function size:0x4 -fn_8011D328 = .text:0x8011D328; // type:function size:0x4 -fn_8011D32C = .text:0x8011D32C; // type:function size:0x4 -fn_8011D330 = .text:0x8011D330; // type:function size:0x4 -fn_8011D334 = .text:0x8011D334; // type:function size:0x4 -fn_8011D338 = .text:0x8011D338; // type:function size:0x4 -fn_8011D33C = .text:0x8011D33C; // type:function size:0x4 -fn_8011D340 = .text:0x8011D340; // type:function size:0x4 -fn_8011D344 = .text:0x8011D344; // type:function size:0x4 -fn_8011D348 = .text:0x8011D348; // type:function size:0x4 -fn_8011D34C = .text:0x8011D34C; // type:function size:0x4 -fn_8011D350 = .text:0x8011D350; // type:function size:0x4 -fn_8011D354 = .text:0x8011D354; // type:function size:0x4 -fn_8011D358 = .text:0x8011D358; // type:function size:0x4 -fn_8011D35C = .text:0x8011D35C; // type:function size:0x4 -fn_8011D360 = .text:0x8011D360; // type:function size:0x4 -fn_8011D364 = .text:0x8011D364; // type:function size:0x4 -fn_8011D368 = .text:0x8011D368; // type:function size:0x4 -fn_8011D36C = .text:0x8011D36C; // type:function size:0x4 -fn_8011D370 = .text:0x8011D370; // type:function size:0x4 -fn_8011D374 = .text:0x8011D374; // type:function size:0x4 -fn_8011D378 = .text:0x8011D378; // type:function size:0x4 -fn_8011D37C = .text:0x8011D37C; // type:function size:0x4 -fn_8011D380 = .text:0x8011D380; // type:function size:0x4 -fn_8011D384 = .text:0x8011D384; // type:function size:0x4 -fn_8011D388 = .text:0x8011D388; // type:function size:0x4 -fn_8011D38C = .text:0x8011D38C; // type:function size:0x4 -fn_8011D390 = .text:0x8011D390; // type:function size:0x4 -fn_8011D394 = .text:0x8011D394; // type:function size:0x4 -fn_8011D398 = .text:0x8011D398; // type:function size:0x4 -fn_8011D39C = .text:0x8011D39C; // type:function size:0x4 -fn_8011D3A0 = .text:0x8011D3A0; // type:function size:0x4 -fn_8011D3A4 = .text:0x8011D3A4; // type:function size:0x4 -fn_8011D3A8 = .text:0x8011D3A8; // type:function size:0x4 -fn_8011D3AC = .text:0x8011D3AC; // type:function size:0x4 -fn_8011D3B0 = .text:0x8011D3B0; // type:function size:0x4 -fn_8011D3B4 = .text:0x8011D3B4; // type:function size:0x4 -fn_8011D3B8 = .text:0x8011D3B8; // type:function size:0x4 -fn_8011D3BC = .text:0x8011D3BC; // type:function size:0x4 -fn_8011D3C0 = .text:0x8011D3C0; // type:function size:0x4 -fn_8011D3C4 = .text:0x8011D3C4; // type:function size:0x4 -fn_8011D3C8 = .text:0x8011D3C8; // type:function size:0x4 -fn_8011D3CC = .text:0x8011D3CC; // type:function size:0x4 -fn_8011D3D0 = .text:0x8011D3D0; // type:function size:0x4 -fn_8011D3D4 = .text:0x8011D3D4; // type:function size:0x4 -fn_8011D3D8 = .text:0x8011D3D8; // type:function size:0x4 -fn_8011D3DC = .text:0x8011D3DC; // type:function size:0x4 -fn_8011D3E0 = .text:0x8011D3E0; // type:function size:0x4 -fn_8011D3E4 = .text:0x8011D3E4; // type:function size:0x4 -fn_8011D3E8 = .text:0x8011D3E8; // type:function size:0x4 -fn_8011D3EC = .text:0x8011D3EC; // type:function size:0x4 -fn_8011D3F0 = .text:0x8011D3F0; // type:function size:0x4 -fn_8011D3F4 = .text:0x8011D3F4; // type:function size:0x4 -fn_8011D3F8 = .text:0x8011D3F8; // type:function size:0x4 -fn_8011D3FC = .text:0x8011D3FC; // type:function size:0x4 -fn_8011D400 = .text:0x8011D400; // type:function size:0x4 -fn_8011D404 = .text:0x8011D404; // type:function size:0x4 -fn_8011D408 = .text:0x8011D408; // type:function size:0x4 -fn_8011D40C = .text:0x8011D40C; // type:function size:0x4 -fn_8011D410 = .text:0x8011D410; // type:function size:0x4 -fn_8011D414 = .text:0x8011D414; // type:function size:0x4 -fn_8011D418 = .text:0x8011D418; // type:function size:0x4 -fn_8011D41C = .text:0x8011D41C; // type:function size:0x4 -fn_8011D420 = .text:0x8011D420; // type:function size:0x4 -fn_8011D424 = .text:0x8011D424; // type:function size:0x4 -fn_8011D428 = .text:0x8011D428; // type:function size:0x4 -fn_8011D42C = .text:0x8011D42C; // type:function size:0x4 -fn_8011D430 = .text:0x8011D430; // type:function size:0x4 -fn_8011D434 = .text:0x8011D434; // type:function size:0x4 -fn_8011D438 = .text:0x8011D438; // type:function size:0x4 -fn_8011D43C = .text:0x8011D43C; // type:function size:0x4 -fn_8011D440 = .text:0x8011D440; // type:function size:0x4 -fn_8011D444 = .text:0x8011D444; // type:function size:0x4 -fn_8011D448 = .text:0x8011D448; // type:function size:0x4 -fn_8011D44C = .text:0x8011D44C; // type:function size:0x4 -fn_8011D450 = .text:0x8011D450; // type:function size:0x4 -fn_8011D454 = .text:0x8011D454; // type:function size:0x4 -fn_8011D458 = .text:0x8011D458; // type:function size:0x4 -fn_8011D45C = .text:0x8011D45C; // type:function size:0x4 -fn_8011D460 = .text:0x8011D460; // type:function size:0x4 -fn_8011D464 = .text:0x8011D464; // type:function size:0x4 -fn_8011D468 = .text:0x8011D468; // type:function size:0x4 -fn_8011D46C = .text:0x8011D46C; // type:function size:0x4 -fn_8011D470 = .text:0x8011D470; // type:function size:0x4 -fn_8011D474 = .text:0x8011D474; // type:function size:0x4 -fn_8011D478 = .text:0x8011D478; // type:function size:0x4 -fn_8011D47C = .text:0x8011D47C; // type:function size:0x4 -fn_8011D480 = .text:0x8011D480; // type:function size:0x4 -fn_8011D484 = .text:0x8011D484; // type:function size:0x4 -fn_8011D488 = .text:0x8011D488; // type:function size:0x4 -fn_8011D48C = .text:0x8011D48C; // type:function size:0x4 -fn_8011D490 = .text:0x8011D490; // type:function size:0x4 -fn_8011D494 = .text:0x8011D494; // type:function size:0x4 -fn_8011D498 = .text:0x8011D498; // type:function size:0x4 -fn_8011D49C = .text:0x8011D49C; // type:function size:0x4 -fn_8011D4A0 = .text:0x8011D4A0; // type:function size:0x4 -fn_8011D4A4 = .text:0x8011D4A4; // type:function size:0x4 -fn_8011D4A8 = .text:0x8011D4A8; // type:function size:0x4 -fn_8011D4AC = .text:0x8011D4AC; // type:function size:0x4 -fn_8011D4B0 = .text:0x8011D4B0; // type:function size:0x4 -fn_8011D4B4 = .text:0x8011D4B4; // type:function size:0x4 -fn_8011D4B8 = .text:0x8011D4B8; // type:function size:0x4 -fn_8011D4BC = .text:0x8011D4BC; // type:function size:0x4 -fn_8011D4C0 = .text:0x8011D4C0; // type:function size:0x4 -fn_8011D4C4 = .text:0x8011D4C4; // type:function size:0x4 -fn_8011D4C8 = .text:0x8011D4C8; // type:function size:0x4 -fn_8011D4CC = .text:0x8011D4CC; // type:function size:0x4 -fn_8011D4D0 = .text:0x8011D4D0; // type:function size:0x4 -fn_8011D4D4 = .text:0x8011D4D4; // type:function size:0x4 -fn_8011D4D8 = .text:0x8011D4D8; // type:function size:0x4 -fn_8011D4DC = .text:0x8011D4DC; // type:function size:0x4 -fn_8011D4E0 = .text:0x8011D4E0; // type:function size:0x4 -fn_8011D4E4 = .text:0x8011D4E4; // type:function size:0x4 -fn_8011D4E8 = .text:0x8011D4E8; // type:function size:0x4 -fn_8011D4EC = .text:0x8011D4EC; // type:function size:0x4 -fn_8011D4F0 = .text:0x8011D4F0; // type:function size:0x4 -fn_8011D4F4 = .text:0x8011D4F4; // type:function size:0x4 -fn_8011D4F8 = .text:0x8011D4F8; // type:function size:0x4 -fn_8011D4FC = .text:0x8011D4FC; // type:function size:0x4 -fn_8011D500 = .text:0x8011D500; // type:function size:0x4 -fn_8011D504 = .text:0x8011D504; // type:function size:0x4 -fn_8011D508 = .text:0x8011D508; // type:function size:0x4 -fn_8011D50C = .text:0x8011D50C; // type:function size:0x4 -fn_8011D510 = .text:0x8011D510; // type:function size:0x4 -fn_8011D514 = .text:0x8011D514; // type:function size:0x4 -fn_8011D518 = .text:0x8011D518; // type:function size:0x4 -fn_8011D51C = .text:0x8011D51C; // type:function size:0x4 -fn_8011D520 = .text:0x8011D520; // type:function size:0x4 -fn_8011D524 = .text:0x8011D524; // type:function size:0x4 -fn_8011D528 = .text:0x8011D528; // type:function size:0x4 -fn_8011D52C = .text:0x8011D52C; // type:function size:0x4 -fn_8011D530 = .text:0x8011D530; // type:function size:0x4 -fn_8011D534 = .text:0x8011D534; // type:function size:0x4 -fn_8011D538 = .text:0x8011D538; // type:function size:0x4 -fn_8011D53C = .text:0x8011D53C; // type:function size:0x4 -fn_8011D540 = .text:0x8011D540; // type:function size:0x4 -fn_8011D544 = .text:0x8011D544; // type:function size:0x4 -fn_8011D548 = .text:0x8011D548; // type:function size:0x4 -fn_8011D54C = .text:0x8011D54C; // type:function size:0x4 -fn_8011D550 = .text:0x8011D550; // type:function size:0x4 -fn_8011D554 = .text:0x8011D554; // type:function size:0x4 -fn_8011D558 = .text:0x8011D558; // type:function size:0x4 -fn_8011D55C = .text:0x8011D55C; // type:function size:0x4 -fn_8011D560 = .text:0x8011D560; // type:function size:0x4 -fn_8011D564 = .text:0x8011D564; // type:function size:0x4 -fn_8011D568 = .text:0x8011D568; // type:function size:0x4 -fn_8011D56C = .text:0x8011D56C; // type:function size:0x4 -fn_8011D570 = .text:0x8011D570; // type:function size:0x4 -fn_8011D574 = .text:0x8011D574; // type:function size:0x4 -fn_8011D578 = .text:0x8011D578; // type:function size:0x4 -fn_8011D57C = .text:0x8011D57C; // type:function size:0x4 -fn_8011D580 = .text:0x8011D580; // type:function size:0x4 -fn_8011D584 = .text:0x8011D584; // type:function size:0x4 -fn_8011D588 = .text:0x8011D588; // type:function size:0x4 -fn_8011D58C = .text:0x8011D58C; // type:function size:0x4 -fn_8011D590 = .text:0x8011D590; // type:function size:0x4 -fn_8011D594 = .text:0x8011D594; // type:function size:0x4 -fn_8011D598 = .text:0x8011D598; // type:function size:0x4 -fn_8011D59C = .text:0x8011D59C; // type:function size:0x4 -fn_8011D5A0 = .text:0x8011D5A0; // type:function size:0x4 -fn_8011D5A4 = .text:0x8011D5A4; // type:function size:0x4 -fn_8011D5A8 = .text:0x8011D5A8; // type:function size:0x4 -fn_8011D5AC = .text:0x8011D5AC; // type:function size:0x4 -fn_8011D5B0 = .text:0x8011D5B0; // type:function size:0x4 -fn_8011D5B4 = .text:0x8011D5B4; // type:function size:0x4 -fn_8011D5B8 = .text:0x8011D5B8; // type:function size:0x4 -fn_8011D5BC = .text:0x8011D5BC; // type:function size:0x4 -fn_8011D5C0 = .text:0x8011D5C0; // type:function size:0x4 -fn_8011D5C4 = .text:0x8011D5C4; // type:function size:0x4 -fn_8011D5C8 = .text:0x8011D5C8; // type:function size:0x4 -fn_8011D5CC = .text:0x8011D5CC; // type:function size:0x4 -fn_8011D5D0 = .text:0x8011D5D0; // type:function size:0x4 -fn_8011D5D4 = .text:0x8011D5D4; // type:function size:0x4 -fn_8011D5D8 = .text:0x8011D5D8; // type:function size:0x4 -fn_8011D5DC = .text:0x8011D5DC; // type:function size:0x4 -fn_8011D5E0 = .text:0x8011D5E0; // type:function size:0x4 -fn_8011D5E4 = .text:0x8011D5E4; // type:function size:0x4 -fn_8011D5E8 = .text:0x8011D5E8; // type:function size:0x4 -fn_8011D5EC = .text:0x8011D5EC; // type:function size:0x4 -fn_8011D5F0 = .text:0x8011D5F0; // type:function size:0x4 -fn_8011D5F4 = .text:0x8011D5F4; // type:function size:0x4 -fn_8011D5F8 = .text:0x8011D5F8; // type:function size:0x4 -fn_8011D5FC = .text:0x8011D5FC; // type:function size:0x4 -fn_8011D600 = .text:0x8011D600; // type:function size:0x4 -fn_8011D604 = .text:0x8011D604; // type:function size:0x4 -fn_8011D608 = .text:0x8011D608; // type:function size:0x4 -fn_8011D60C = .text:0x8011D60C; // type:function size:0x4 -fn_8011D610 = .text:0x8011D610; // type:function size:0x4 -fn_8011D614 = .text:0x8011D614; // type:function size:0x4 -fn_8011D618 = .text:0x8011D618; // type:function size:0x4 -fn_8011D61C = .text:0x8011D61C; // type:function size:0x4 -fn_8011D620 = .text:0x8011D620; // type:function size:0x4 -fn_8011D624 = .text:0x8011D624; // type:function size:0x4 -fn_8011D628 = .text:0x8011D628; // type:function size:0x4 -fn_8011D62C = .text:0x8011D62C; // type:function size:0x4 -fn_8011D630 = .text:0x8011D630; // type:function size:0x4 -fn_8011D634 = .text:0x8011D634; // type:function size:0x4 -fn_8011D638 = .text:0x8011D638; // type:function size:0x4 -fn_8011D63C = .text:0x8011D63C; // type:function size:0x4 -fn_8011D640 = .text:0x8011D640; // type:function size:0x4 -fn_8011D644 = .text:0x8011D644; // type:function size:0x4 -fn_8011D648 = .text:0x8011D648; // type:function size:0x4 -fn_8011D64C = .text:0x8011D64C; // type:function size:0x4 -fn_8011D650 = .text:0x8011D650; // type:function size:0x4 -fn_8011D654 = .text:0x8011D654; // type:function size:0x4 -fn_8011D658 = .text:0x8011D658; // type:function size:0x4 -fn_8011D65C = .text:0x8011D65C; // type:function size:0x4 -fn_8011D660 = .text:0x8011D660; // type:function size:0x4 -fn_8011D664 = .text:0x8011D664; // type:function size:0x4 -fn_8011D668 = .text:0x8011D668; // type:function size:0x4 -fn_8011D66C = .text:0x8011D66C; // type:function size:0x4 -fn_8011D670 = .text:0x8011D670; // type:function size:0x4 -fn_8011D674 = .text:0x8011D674; // type:function size:0x4 -fn_8011D678 = .text:0x8011D678; // type:function size:0x4 -fn_8011D67C = .text:0x8011D67C; // type:function size:0x4 -fn_8011D680 = .text:0x8011D680; // type:function size:0x4 -fn_8011D684 = .text:0x8011D684; // type:function size:0x4 -fn_8011D688 = .text:0x8011D688; // type:function size:0x4 -fn_8011D68C = .text:0x8011D68C; // type:function size:0x4 -fn_8011D690 = .text:0x8011D690; // type:function size:0x4 -fn_8011D694 = .text:0x8011D694; // type:function size:0x4 -fn_8011D698 = .text:0x8011D698; // type:function size:0x4 -fn_8011D69C = .text:0x8011D69C; // type:function size:0x4 -fn_8011D6A0 = .text:0x8011D6A0; // type:function size:0x4 -fn_8011D6A4 = .text:0x8011D6A4; // type:function size:0x4 -fn_8011D6A8 = .text:0x8011D6A8; // type:function size:0x4 -fn_8011D6AC = .text:0x8011D6AC; // type:function size:0x4 -fn_8011D6B0 = .text:0x8011D6B0; // type:function size:0x4 -fn_8011D6B4 = .text:0x8011D6B4; // type:function size:0x4 -fn_8011D6B8 = .text:0x8011D6B8; // type:function size:0x4 -fn_8011D6BC = .text:0x8011D6BC; // type:function size:0x4 -fn_8011D6C0 = .text:0x8011D6C0; // type:function size:0x4 -fn_8011D6C4 = .text:0x8011D6C4; // type:function size:0x4 -fn_8011D6C8 = .text:0x8011D6C8; // type:function size:0x4 -fn_8011D6CC = .text:0x8011D6CC; // type:function size:0x4 -fn_8011D6D0 = .text:0x8011D6D0; // type:function size:0x4 -fn_8011D6D4 = .text:0x8011D6D4; // type:function size:0x4 -fn_8011D6D8 = .text:0x8011D6D8; // type:function size:0x4 -fn_8011D6DC = .text:0x8011D6DC; // type:function size:0x4 -fn_8011D6E0 = .text:0x8011D6E0; // type:function size:0x4 -fn_8011D6E4 = .text:0x8011D6E4; // type:function size:0x4 -fn_8011D6E8 = .text:0x8011D6E8; // type:function size:0x4 -fn_8011D6EC = .text:0x8011D6EC; // type:function size:0x4 -fn_8011D6F0 = .text:0x8011D6F0; // type:function size:0x4 -fn_8011D6F4 = .text:0x8011D6F4; // type:function size:0x4 -fn_8011D6F8 = .text:0x8011D6F8; // type:function size:0x4 -fn_8011D6FC = .text:0x8011D6FC; // type:function size:0x4 -fn_8011D700 = .text:0x8011D700; // type:function size:0x4 -fn_8011D704 = .text:0x8011D704; // type:function size:0x4 -fn_8011D708 = .text:0x8011D708; // type:function size:0x4 -fn_8011D70C = .text:0x8011D70C; // type:function size:0x4 -fn_8011D710 = .text:0x8011D710; // type:function size:0x4 -fn_8011D714 = .text:0x8011D714; // type:function size:0x4 -fn_8011D718 = .text:0x8011D718; // type:function size:0x4 -fn_8011D71C = .text:0x8011D71C; // type:function size:0x4 -fn_8011D720 = .text:0x8011D720; // type:function size:0x4 -fn_8011D724 = .text:0x8011D724; // type:function size:0x4 -fn_8011D728 = .text:0x8011D728; // type:function size:0x4 -fn_8011D72C = .text:0x8011D72C; // type:function size:0x4 -fn_8011D730 = .text:0x8011D730; // type:function size:0x4 -fn_8011D734 = .text:0x8011D734; // type:function size:0x4 -fn_8011D738 = .text:0x8011D738; // type:function size:0x4 -fn_8011D73C = .text:0x8011D73C; // type:function size:0x4 -fn_8011D740 = .text:0x8011D740; // type:function size:0x4 -fn_8011D744 = .text:0x8011D744; // type:function size:0x4 -fn_8011D748 = .text:0x8011D748; // type:function size:0x4 -fn_8011D74C = .text:0x8011D74C; // type:function size:0x4 -fn_8011D750 = .text:0x8011D750; // type:function size:0x4 -fn_8011D754 = .text:0x8011D754; // type:function size:0x4 -fn_8011D758 = .text:0x8011D758; // type:function size:0x4 -fn_8011D75C = .text:0x8011D75C; // type:function size:0x4 -fn_8011D760 = .text:0x8011D760; // type:function size:0x4 -fn_8011D764 = .text:0x8011D764; // type:function size:0x4 -fn_8011D768 = .text:0x8011D768; // type:function size:0x4 -fn_8011D76C = .text:0x8011D76C; // type:function size:0x4 -fn_8011D770 = .text:0x8011D770; // type:function size:0x4 -fn_8011D774 = .text:0x8011D774; // type:function size:0x4 -fn_8011D778 = .text:0x8011D778; // type:function size:0x4 -fn_8011D77C = .text:0x8011D77C; // type:function size:0x4 -fn_8011D780 = .text:0x8011D780; // type:function size:0x4 -fn_8011D784 = .text:0x8011D784; // type:function size:0x4 -fn_8011D788 = .text:0x8011D788; // type:function size:0x4 -fn_8011D78C = .text:0x8011D78C; // type:function size:0x4 -fn_8011D790 = .text:0x8011D790; // type:function size:0x4 -fn_8011D794 = .text:0x8011D794; // type:function size:0x4 -fn_8011D798 = .text:0x8011D798; // type:function size:0x4 -fn_8011D79C = .text:0x8011D79C; // type:function size:0x4 -fn_8011D7A0 = .text:0x8011D7A0; // type:function size:0x4 -fn_8011D7A4 = .text:0x8011D7A4; // type:function size:0x4 -fn_8011D7A8 = .text:0x8011D7A8; // type:function size:0x4 -fn_8011D7AC = .text:0x8011D7AC; // type:function size:0x4 -fn_8011D7B0 = .text:0x8011D7B0; // type:function size:0x4 -fn_8011D7B4 = .text:0x8011D7B4; // type:function size:0x4 -fn_8011D7B8 = .text:0x8011D7B8; // type:function size:0x4 -fn_8011D7BC = .text:0x8011D7BC; // type:function size:0x4 -fn_8011D7C0 = .text:0x8011D7C0; // type:function size:0x4 -fn_8011D7C4 = .text:0x8011D7C4; // type:function size:0x4 -fn_8011D7C8 = .text:0x8011D7C8; // type:function size:0x4 -fn_8011D7CC = .text:0x8011D7CC; // type:function size:0x4 -fn_8011D7D0 = .text:0x8011D7D0; // type:function size:0x4 -fn_8011D7D4 = .text:0x8011D7D4; // type:function size:0x4 -fn_8011D7D8 = .text:0x8011D7D8; // type:function size:0x4 -fn_8011D7DC = .text:0x8011D7DC; // type:function size:0x4 -fn_8011D7E0 = .text:0x8011D7E0; // type:function size:0x4 -fn_8011D7E4 = .text:0x8011D7E4; // type:function size:0x4 -fn_8011D7E8 = .text:0x8011D7E8; // type:function size:0x4 -fn_8011D7EC = .text:0x8011D7EC; // type:function size:0x4 -fn_8011D7F0 = .text:0x8011D7F0; // type:function size:0x4 -fn_8011D7F4 = .text:0x8011D7F4; // type:function size:0x4 -fn_8011D7F8 = .text:0x8011D7F8; // type:function size:0x4 -fn_8011D7FC = .text:0x8011D7FC; // type:function size:0x4 -fn_8011D800 = .text:0x8011D800; // type:function size:0x4 -fn_8011D804 = .text:0x8011D804; // type:function size:0x4 -fn_8011D808 = .text:0x8011D808; // type:function size:0x4 -fn_8011D80C = .text:0x8011D80C; // type:function size:0x4 -fn_8011D810 = .text:0x8011D810; // type:function size:0x4 -fn_8011D814 = .text:0x8011D814; // type:function size:0x4 -fn_8011D818 = .text:0x8011D818; // type:function size:0x4 -fn_8011D81C = .text:0x8011D81C; // type:function size:0x4 -fn_8011D820 = .text:0x8011D820; // type:function size:0x4 -fn_8011D824 = .text:0x8011D824; // type:function size:0x4 -fn_8011D828 = .text:0x8011D828; // type:function size:0x4 -fn_8011D82C = .text:0x8011D82C; // type:function size:0x4 -fn_8011D830 = .text:0x8011D830; // type:function size:0x4 -fn_8011D834 = .text:0x8011D834; // type:function size:0x4 -fn_8011D838 = .text:0x8011D838; // type:function size:0x4 -fn_8011D83C = .text:0x8011D83C; // type:function size:0x4 -fn_8011D840 = .text:0x8011D840; // type:function size:0x4 -fn_8011D844 = .text:0x8011D844; // type:function size:0x4 -fn_8011D848 = .text:0x8011D848; // type:function size:0x4 -fn_8011D84C = .text:0x8011D84C; // type:function size:0x4 -fn_8011D850 = .text:0x8011D850; // type:function size:0x4 -fn_8011D854 = .text:0x8011D854; // type:function size:0x4 -fn_8011D858 = .text:0x8011D858; // type:function size:0x4 -fn_8011D85C = .text:0x8011D85C; // type:function size:0x4 -fn_8011D860 = .text:0x8011D860; // type:function size:0x4 -fn_8011D864 = .text:0x8011D864; // type:function size:0x4 -fn_8011D868 = .text:0x8011D868; // type:function size:0x4 -fn_8011D86C = .text:0x8011D86C; // type:function size:0x4 -fn_8011D870 = .text:0x8011D870; // type:function size:0x4 -fn_8011D874 = .text:0x8011D874; // type:function size:0x4 -fn_8011D878 = .text:0x8011D878; // type:function size:0x4 -fn_8011D87C = .text:0x8011D87C; // type:function size:0x4 -fn_8011D880 = .text:0x8011D880; // type:function size:0x4 -fn_8011D884 = .text:0x8011D884; // type:function size:0x4 -fn_8011D888 = .text:0x8011D888; // type:function size:0x4 -fn_8011D88C = .text:0x8011D88C; // type:function size:0x4 -fn_8011D890 = .text:0x8011D890; // type:function size:0x4 -fn_8011D894 = .text:0x8011D894; // type:function size:0x4 +_kerent = .text:0x8011C8B4; // type:function size:0xFE4 _ctors = .ctors:0x8011D8A0; // type:label scope:global data:4byte __init_cpp_exceptions_reference = .ctors:0x8011D8A0; // type:object size:0x4 scope:global _dtors = .dtors:0x8011D8C0; // type:label scope:global data:4byte From 790b161b8d1e523a7f4715f8e1407ed5d9c03fb8 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Fri, 15 Nov 2024 19:01:46 +0100 Subject: [PATCH 172/311] Fix function locality in the Japanese dol --- config/GMPJ01_00/symbols.txt | 6284 +++++++++++++++++----------------- 1 file changed, 3142 insertions(+), 3142 deletions(-) diff --git a/config/GMPJ01_00/symbols.txt b/config/GMPJ01_00/symbols.txt index d49ba5b9..21fb23bc 100644 --- a/config/GMPJ01_00/symbols.txt +++ b/config/GMPJ01_00/symbols.txt @@ -45,1972 +45,1972 @@ _bss_init_info = .init:0x800055F0; // type:object size:0x20 scope:global data:4b @eti_80005790 = extabindex:0x80005790; // type:object size:0xC scope:local hidden _eti_init_info = extabindex:0x8000579C; // type:object size:0x20 scope:global main = .text:0x800057C0; // type:function size:0x22C scope:global -fn_800059EC = .text:0x800059EC; // type:function size:0x38 -fn_80005A24 = .text:0x80005A24; // type:function size:0xC -fn_80005A30 = .text:0x80005A30; // type:function size:0x2C -fn_80005A5C = .text:0x80005A5C; // type:function size:0xF0 -fn_80005B4C = .text:0x80005B4C; // type:function size:0x168 -fn_80005CB4 = .text:0x80005CB4; // type:function size:0x440 -fn_800060F4 = .text:0x800060F4; // type:function size:0x234 -fn_80006328 = .text:0x80006328; // type:function size:0x54 -fn_8000637C = .text:0x8000637C; // type:function size:0x70 -fn_800063EC = .text:0x800063EC; // type:function size:0x70 -fn_8000645C = .text:0x8000645C; // type:function size:0x14 -fn_80006470 = .text:0x80006470; // type:function size:0x8 -fn_80006478 = .text:0x80006478; // type:function size:0xC -fn_80006484 = .text:0x80006484; // type:function size:0x16C -fn_800065F0 = .text:0x800065F0; // type:function size:0x1B4 -fn_800067A4 = .text:0x800067A4; // type:function size:0x170 -fn_80006914 = .text:0x80006914; // type:function size:0x16C -fn_80006A80 = .text:0x80006A80; // type:function size:0x174 -fn_80006BF4 = .text:0x80006BF4; // type:function size:0x150 -fn_80006D44 = .text:0x80006D44; // type:function size:0x38 -fn_80006D7C = .text:0x80006D7C; // type:function size:0xBC -fn_80006E38 = .text:0x80006E38; // type:function size:0xD0 -fn_80006F08 = .text:0x80006F08; // type:function size:0x74 -fn_80006F7C = .text:0x80006F7C; // type:function size:0x64 -fn_80006FE0 = .text:0x80006FE0; // type:function size:0xB8 -fn_80007098 = .text:0x80007098; // type:function size:0x224 -fn_800072BC = .text:0x800072BC; // type:function size:0x188 -fn_80007444 = .text:0x80007444; // type:function size:0xC8 -fn_8000750C = .text:0x8000750C; // type:function size:0x1A8 -fn_800076B4 = .text:0x800076B4; // type:function size:0x1A8 -fn_8000785C = .text:0x8000785C; // type:function size:0x60 -fn_800078BC = .text:0x800078BC; // type:function size:0x344 -fn_80007C00 = .text:0x80007C00; // type:function size:0x3A0 -fn_80007FA0 = .text:0x80007FA0; // type:function size:0x3C4 -fn_80008364 = .text:0x80008364; // type:function size:0x428 -fn_8000878C = .text:0x8000878C; // type:function size:0x30 -fn_800087BC = .text:0x800087BC; // type:function size:0x3FC -fn_80008BB8 = .text:0x80008BB8; // type:function size:0x104 -fn_80008CBC = .text:0x80008CBC; // type:function size:0x38 -fn_80008CF4 = .text:0x80008CF4; // type:function size:0x7C -fn_80008D70 = .text:0x80008D70; // type:function size:0xD4 -fn_80008E44 = .text:0x80008E44; // type:function size:0x130 -fn_80008F74 = .text:0x80008F74; // type:function size:0x48C -fn_80009400 = .text:0x80009400; // type:function size:0x200 -fn_80009600 = .text:0x80009600; // type:function size:0x1D8 -fn_800097D8 = .text:0x800097D8; // type:function size:0x324 -fn_80009AFC = .text:0x80009AFC; // type:function size:0x138 -fn_80009C34 = .text:0x80009C34; // type:function size:0xD0 -fn_80009D04 = .text:0x80009D04; // type:function size:0x164 -fn_80009E68 = .text:0x80009E68; // type:function size:0x13C -fn_80009FA4 = .text:0x80009FA4; // type:function size:0x54 -fn_80009FF8 = .text:0x80009FF8; // type:function size:0xE4 -fn_8000A0DC = .text:0x8000A0DC; // type:function size:0xC8 -fn_8000A1A4 = .text:0x8000A1A4; // type:function size:0x6C -fn_8000A210 = .text:0x8000A210; // type:function size:0x254 -fn_8000A464 = .text:0x8000A464; // type:function size:0x74 -fn_8000A4D8 = .text:0x8000A4D8; // type:function size:0x80 -fn_8000A558 = .text:0x8000A558; // type:function size:0x12C -fn_8000A684 = .text:0x8000A684; // type:function size:0x30 -fn_8000A6B4 = .text:0x8000A6B4; // type:function size:0x2C -fn_8000A6E0 = .text:0x8000A6E0; // type:function size:0x54 -fn_8000A734 = .text:0x8000A734; // type:function size:0x64 -fn_8000A798 = .text:0x8000A798; // type:function size:0x6C -fn_8000A804 = .text:0x8000A804; // type:function size:0x38 -fn_8000A83C = .text:0x8000A83C; // type:function size:0x54 -fn_8000A890 = .text:0x8000A890; // type:function size:0x3C -fn_8000A8CC = .text:0x8000A8CC; // type:function size:0x3C -fn_8000A908 = .text:0x8000A908; // type:function size:0x18 -fn_8000A920 = .text:0x8000A920; // type:function size:0x18 -fn_8000A938 = .text:0x8000A938; // type:function size:0x4C -fn_8000A984 = .text:0x8000A984; // type:function size:0x40 -fn_8000A9C4 = .text:0x8000A9C4; // type:function size:0x3C -fn_8000AA00 = .text:0x8000AA00; // type:function size:0x108 -fn_8000AB08 = .text:0x8000AB08; // type:function size:0x7C -fn_8000AB84 = .text:0x8000AB84; // type:function size:0x12C -fn_8000ACB0 = .text:0x8000ACB0; // type:function size:0x48 -fn_8000ACF8 = .text:0x8000ACF8; // type:function size:0x44 -fn_8000AD3C = .text:0x8000AD3C; // type:function size:0xC -fn_8000AD48 = .text:0x8000AD48; // type:function size:0x158 -fn_8000AEA0 = .text:0x8000AEA0; // type:function size:0x50 -fn_8000AEF0 = .text:0x8000AEF0; // type:function size:0x64 -fn_8000AF54 = .text:0x8000AF54; // type:function size:0xA0 -fn_8000AFF4 = .text:0x8000AFF4; // type:function size:0x15C -fn_8000B150 = .text:0x8000B150; // type:function size:0xAC -fn_8000B1FC = .text:0x8000B1FC; // type:function size:0xEE8 -fn_8000C0E4 = .text:0x8000C0E4; // type:function size:0x3C0 -fn_8000C4A4 = .text:0x8000C4A4; // type:function size:0x14 -fn_8000C4B8 = .text:0x8000C4B8; // type:function size:0x1E8 -fn_8000C6A0 = .text:0x8000C6A0; // type:function size:0x68 -fn_8000C708 = .text:0x8000C708; // type:function size:0x58 -fn_8000C760 = .text:0x8000C760; // type:function size:0x27C -fn_8000C9DC = .text:0x8000C9DC; // type:function size:0x60 -fn_8000CA3C = .text:0x8000CA3C; // type:function size:0x8 -fn_8000CA44 = .text:0x8000CA44; // type:function size:0x50 -fn_8000CA94 = .text:0x8000CA94; // type:function size:0xD4 -fn_8000CB68 = .text:0x8000CB68; // type:function size:0x2A4 -fn_8000CE0C = .text:0x8000CE0C; // type:function size:0x100 -fn_8000CF0C = .text:0x8000CF0C; // type:function size:0x80 -fn_8000CF8C = .text:0x8000CF8C; // type:function size:0x54 -fn_8000CFE0 = .text:0x8000CFE0; // type:function size:0xC -fn_8000CFEC = .text:0x8000CFEC; // type:function size:0x8 -fn_8000CFF4 = .text:0x8000CFF4; // type:function size:0x28 -fn_8000D01C = .text:0x8000D01C; // type:function size:0x184 -fn_8000D1A0 = .text:0x8000D1A0; // type:function size:0x4C -fn_8000D1EC = .text:0x8000D1EC; // type:function size:0x30 -fn_8000D21C = .text:0x8000D21C; // type:function size:0x10 -fn_8000D22C = .text:0x8000D22C; // type:function size:0x14 -fn_8000D240 = .text:0x8000D240; // type:function size:0x84 -fn_8000D2C4 = .text:0x8000D2C4; // type:function size:0x84 -fn_8000D348 = .text:0x8000D348; // type:function size:0xA0 -fn_8000D3E8 = .text:0x8000D3E8; // type:function size:0xB0 -fn_8000D498 = .text:0x8000D498; // type:function size:0x64 -fn_8000D4FC = .text:0x8000D4FC; // type:function size:0x188 -fn_8000D684 = .text:0x8000D684; // type:function size:0x14C -fn_8000D7D0 = .text:0x8000D7D0; // type:function size:0xF4 -fn_8000D8C4 = .text:0x8000D8C4; // type:function size:0x458 -fn_8000DD1C = .text:0x8000DD1C; // type:function size:0x8 -fn_8000DD24 = .text:0x8000DD24; // type:function size:0x114 -fn_8000DE38 = .text:0x8000DE38; // type:function size:0x10 -fn_8000DE48 = .text:0x8000DE48; // type:function size:0x128 -fn_8000DF70 = .text:0x8000DF70; // type:function size:0x188 -fn_8000E0F8 = .text:0x8000E0F8; // type:function size:0xF4 -fn_8000E1EC = .text:0x8000E1EC; // type:function size:0x334 -fn_8000E520 = .text:0x8000E520; // type:function size:0x8C -fn_8000E5AC = .text:0x8000E5AC; // type:function size:0xAC -fn_8000E658 = .text:0x8000E658; // type:function size:0x9C -fn_8000E6F4 = .text:0x8000E6F4; // type:function size:0x84 -fn_8000E778 = .text:0x8000E778; // type:function size:0x90 -fn_8000E808 = .text:0x8000E808; // type:function size:0xAC -fn_8000E8B4 = .text:0x8000E8B4; // type:function size:0xAC -fn_8000E960 = .text:0x8000E960; // type:function size:0x60 -fn_8000E9C0 = .text:0x8000E9C0; // type:function size:0x5C -fn_8000EA1C = .text:0x8000EA1C; // type:function size:0x60 -fn_8000EA7C = .text:0x8000EA7C; // type:function size:0x64 -fn_8000EAE0 = .text:0x8000EAE0; // type:function size:0x64 -fn_8000EB44 = .text:0x8000EB44; // type:function size:0x4C -fn_8000EB90 = .text:0x8000EB90; // type:function size:0xF0 -fn_8000EC80 = .text:0x8000EC80; // type:function size:0x9C -fn_8000ED1C = .text:0x8000ED1C; // type:function size:0x9C -fn_8000EDB8 = .text:0x8000EDB8; // type:function size:0x98 -fn_8000EE50 = .text:0x8000EE50; // type:function size:0x9C -fn_8000EEEC = .text:0x8000EEEC; // type:function size:0xC0 -fn_8000EFAC = .text:0x8000EFAC; // type:function size:0x8C -fn_8000F038 = .text:0x8000F038; // type:function size:0x50 -fn_8000F088 = .text:0x8000F088; // type:function size:0x4C -fn_8000F0D4 = .text:0x8000F0D4; // type:function size:0xAC -fn_8000F180 = .text:0x8000F180; // type:function size:0x58 -fn_8000F1D8 = .text:0x8000F1D8; // type:function size:0x1FC -fn_8000F3D4 = .text:0x8000F3D4; // type:function size:0x68 -fn_8000F43C = .text:0x8000F43C; // type:function size:0x50 -fn_8000F48C = .text:0x8000F48C; // type:function size:0x214 -fn_8000F6A0 = .text:0x8000F6A0; // type:function size:0x158 -fn_8000F7F8 = .text:0x8000F7F8; // type:function size:0xECC -fn_800106C4 = .text:0x800106C4; // type:function size:0x29C -fn_80010960 = .text:0x80010960; // type:function size:0x58 -fn_800109B8 = .text:0x800109B8; // type:function size:0x178 -fn_80010B30 = .text:0x80010B30; // type:function size:0xB0 -fn_80010BE0 = .text:0x80010BE0; // type:function size:0xA0 -fn_80010C80 = .text:0x80010C80; // type:function size:0xC8 -fn_80010D48 = .text:0x80010D48; // type:function size:0x284 -fn_80010FCC = .text:0x80010FCC; // type:function size:0x38 -fn_80011004 = .text:0x80011004; // type:function size:0x210 -fn_80011214 = .text:0x80011214; // type:function size:0xF8 -fn_8001130C = .text:0x8001130C; // type:function size:0x80 -fn_8001138C = .text:0x8001138C; // type:function size:0x130 -fn_800114BC = .text:0x800114BC; // type:function size:0x1C0 -fn_8001167C = .text:0x8001167C; // type:function size:0x128 -fn_800117A4 = .text:0x800117A4; // type:function size:0x1A8 -fn_8001194C = .text:0x8001194C; // type:function size:0x190 -fn_80011ADC = .text:0x80011ADC; // type:function size:0x7A8 -fn_80012284 = .text:0x80012284; // type:function size:0x15C -fn_800123E0 = .text:0x800123E0; // type:function size:0x464 -fn_80012844 = .text:0x80012844; // type:function size:0x198 -fn_800129DC = .text:0x800129DC; // type:function size:0x12C -fn_80012B08 = .text:0x80012B08; // type:function size:0x1E8 -fn_80012CF0 = .text:0x80012CF0; // type:function size:0x168 -fn_80012E58 = .text:0x80012E58; // type:function size:0xD0 -fn_80012F28 = .text:0x80012F28; // type:function size:0x174 -fn_8001309C = .text:0x8001309C; // type:function size:0x16C -fn_80013208 = .text:0x80013208; // type:function size:0xE8 -fn_800132F0 = .text:0x800132F0; // type:function size:0x38 -fn_80013328 = .text:0x80013328; // type:function size:0x938 -fn_80013C60 = .text:0x80013C60; // type:function size:0x80 -fn_80013CE0 = .text:0x80013CE0; // type:function size:0x94 -fn_80013D74 = .text:0x80013D74; // type:function size:0x44 -fn_80013DB8 = .text:0x80013DB8; // type:function size:0x44 -fn_80013DFC = .text:0x80013DFC; // type:function size:0x44 -fn_80013E40 = .text:0x80013E40; // type:function size:0x44 -fn_80013E84 = .text:0x80013E84; // type:function size:0x44 -fn_80013EC8 = .text:0x80013EC8; // type:function size:0x44 -fn_80013F0C = .text:0x80013F0C; // type:function size:0x44 -fn_80013F50 = .text:0x80013F50; // type:function size:0x3C -fn_80013F8C = .text:0x80013F8C; // type:function size:0x44 -fn_80013FD0 = .text:0x80013FD0; // type:function size:0x24 -fn_80013FF4 = .text:0x80013FF4; // type:function size:0x24 -fn_80014018 = .text:0x80014018; // type:function size:0xC -fn_80014024 = .text:0x80014024; // type:function size:0x1A0 -fn_800141C4 = .text:0x800141C4; // type:function size:0xEC -fn_800142B0 = .text:0x800142B0; // type:function size:0x86C -fn_80014B1C = .text:0x80014B1C; // type:function size:0x4C0 -fn_80014FDC = .text:0x80014FDC; // type:function size:0x10DC -fn_800160B8 = .text:0x800160B8; // type:function size:0x8E8 -fn_800169A0 = .text:0x800169A0; // type:function size:0x2588 -fn_80018F28 = .text:0x80018F28; // type:function size:0x164 -fn_8001908C = .text:0x8001908C; // type:function size:0x180 -fn_8001920C = .text:0x8001920C; // type:function size:0xB0 -fn_800192BC = .text:0x800192BC; // type:function size:0x280 -fn_8001953C = .text:0x8001953C; // type:function size:0x29C -fn_800197D8 = .text:0x800197D8; // type:function size:0x8C -fn_80019864 = .text:0x80019864; // type:function size:0xCC -fn_80019930 = .text:0x80019930; // type:function size:0x5E4 -fn_80019F14 = .text:0x80019F14; // type:function size:0x75C -fn_8001A670 = .text:0x8001A670; // type:function size:0x248 -fn_8001A8B8 = .text:0x8001A8B8; // type:function size:0x198 -fn_8001AA50 = .text:0x8001AA50; // type:function size:0x248 -fn_8001AC98 = .text:0x8001AC98; // type:function size:0x17C -fn_8001AE14 = .text:0x8001AE14; // type:function size:0x1B4 -fn_8001AFC8 = .text:0x8001AFC8; // type:function size:0xB00 -fn_8001BAC8 = .text:0x8001BAC8; // type:function size:0x6D0 -fn_8001C198 = .text:0x8001C198; // type:function size:0xBC -fn_8001C254 = .text:0x8001C254; // type:function size:0x438 -fn_8001C68C = .text:0x8001C68C; // type:function size:0x2A8 -fn_8001C934 = .text:0x8001C934; // type:function size:0x68 -fn_8001C99C = .text:0x8001C99C; // type:function size:0xD08 -fn_8001D6A4 = .text:0x8001D6A4; // type:function size:0x3A8 -fn_8001DA4C = .text:0x8001DA4C; // type:function size:0x2C4 -fn_8001DD10 = .text:0x8001DD10; // type:function size:0x2C8 -fn_8001DFD8 = .text:0x8001DFD8; // type:function size:0x4C -fn_8001E024 = .text:0x8001E024; // type:function size:0xF4 -fn_8001E118 = .text:0x8001E118; // type:function size:0xF0 -fn_8001E208 = .text:0x8001E208; // type:function size:0x70 -fn_8001E278 = .text:0x8001E278; // type:function size:0x1E0 -fn_8001E458 = .text:0x8001E458; // type:function size:0x190 -fn_8001E5E8 = .text:0x8001E5E8; // type:function size:0x90 -fn_8001E678 = .text:0x8001E678; // type:function size:0x318 -fn_8001E990 = .text:0x8001E990; // type:function size:0x80 -fn_8001EA10 = .text:0x8001EA10; // type:function size:0x7B0 -fn_8001F1C0 = .text:0x8001F1C0; // type:function size:0x574 -fn_8001F734 = .text:0x8001F734; // type:function size:0x158 -fn_8001F88C = .text:0x8001F88C; // type:function size:0x90 -fn_8001F91C = .text:0x8001F91C; // type:function size:0x90 -fn_8001F9AC = .text:0x8001F9AC; // type:function size:0x220 -fn_8001FBCC = .text:0x8001FBCC; // type:function size:0xD8 -fn_8001FCA4 = .text:0x8001FCA4; // type:function size:0x688 -fn_8002032C = .text:0x8002032C; // type:function size:0x158 -fn_80020484 = .text:0x80020484; // type:function size:0x18 -fn_8002049C = .text:0x8002049C; // type:function size:0x1C -fn_800204B8 = .text:0x800204B8; // type:function size:0xC -fn_800204C4 = .text:0x800204C4; // type:function size:0xC -fn_800204D0 = .text:0x800204D0; // type:function size:0x330 -fn_80020800 = .text:0x80020800; // type:function size:0x2E8 -fn_80020AE8 = .text:0x80020AE8; // type:function size:0x1C8 -fn_80020CB0 = .text:0x80020CB0; // type:function size:0x34C -fn_80020FFC = .text:0x80020FFC; // type:function size:0xD0 -fn_800210CC = .text:0x800210CC; // type:function size:0x34 -fn_80021100 = .text:0x80021100; // type:function size:0x40 -fn_80021140 = .text:0x80021140; // type:function size:0x34 -fn_80021174 = .text:0x80021174; // type:function size:0x40 -fn_800211B4 = .text:0x800211B4; // type:function size:0x34 -fn_800211E8 = .text:0x800211E8; // type:function size:0x40 -fn_80021228 = .text:0x80021228; // type:function size:0x54 -fn_8002127C = .text:0x8002127C; // type:function size:0x50 -fn_800212CC = .text:0x800212CC; // type:function size:0x2C -fn_800212F8 = .text:0x800212F8; // type:function size:0x2C -fn_80021324 = .text:0x80021324; // type:function size:0x44 -fn_80021368 = .text:0x80021368; // type:function size:0x44 -fn_800213AC = .text:0x800213AC; // type:function size:0x2C -fn_800213D8 = .text:0x800213D8; // type:function size:0x6C -fn_80021444 = .text:0x80021444; // type:function size:0xD8 -fn_8002151C = .text:0x8002151C; // type:function size:0xF8 -fn_80021614 = .text:0x80021614; // type:function size:0x98 -fn_800216AC = .text:0x800216AC; // type:function size:0xB0 -fn_8002175C = .text:0x8002175C; // type:function size:0xA0 -fn_800217FC = .text:0x800217FC; // type:function size:0x34 -fn_80021830 = .text:0x80021830; // type:function size:0x34 -fn_80021864 = .text:0x80021864; // type:function size:0x88 -fn_800218EC = .text:0x800218EC; // type:function size:0xBC -fn_800219A8 = .text:0x800219A8; // type:function size:0x34 -fn_800219DC = .text:0x800219DC; // type:function size:0xEC -fn_80021AC8 = .text:0x80021AC8; // type:function size:0xB4 -fn_80021B7C = .text:0x80021B7C; // type:function size:0xF0 -fn_80021C6C = .text:0x80021C6C; // type:function size:0x44 -fn_80021CB0 = .text:0x80021CB0; // type:function size:0x44 -fn_80021CF4 = .text:0x80021CF4; // type:function size:0xBC -fn_80021DB0 = .text:0x80021DB0; // type:function size:0x30 -fn_80021DE0 = .text:0x80021DE0; // type:function size:0x134 -fn_80021F14 = .text:0x80021F14; // type:function size:0x80 -fn_80021F94 = .text:0x80021F94; // type:function size:0x88 -fn_8002201C = .text:0x8002201C; // type:function size:0x90 -fn_800220AC = .text:0x800220AC; // type:function size:0x98 -fn_80022144 = .text:0x80022144; // type:function size:0xB8 -fn_800221FC = .text:0x800221FC; // type:function size:0x78 -fn_80022274 = .text:0x80022274; // type:function size:0xD0 -fn_80022344 = .text:0x80022344; // type:function size:0xDC -fn_80022420 = .text:0x80022420; // type:function size:0x3C0 -fn_800227E0 = .text:0x800227E0; // type:function size:0x88 -fn_80022868 = .text:0x80022868; // type:function size:0x58 -fn_800228C0 = .text:0x800228C0; // type:function size:0xD4 -fn_80022994 = .text:0x80022994; // type:function size:0x34 -fn_800229C8 = .text:0x800229C8; // type:function size:0x74 -fn_80022A3C = .text:0x80022A3C; // type:function size:0xA0 -fn_80022ADC = .text:0x80022ADC; // type:function size:0x104 -fn_80022BE0 = .text:0x80022BE0; // type:function size:0xA8 -fn_80022C88 = .text:0x80022C88; // type:function size:0x17C -fn_80022E04 = .text:0x80022E04; // type:function size:0x44 -fn_80022E48 = .text:0x80022E48; // type:function size:0x6C -fn_80022EB4 = .text:0x80022EB4; // type:function size:0x48 -fn_80022EFC = .text:0x80022EFC; // type:function size:0x70 -fn_80022F6C = .text:0x80022F6C; // type:function size:0x58 -fn_80022FC4 = .text:0x80022FC4; // type:function size:0x80 -fn_80023044 = .text:0x80023044; // type:function size:0x20 -fn_80023064 = .text:0x80023064; // type:function size:0xBC -fn_80023120 = .text:0x80023120; // type:function size:0x68 -fn_80023188 = .text:0x80023188; // type:function size:0x38 -fn_800231C0 = .text:0x800231C0; // type:function size:0x60 -fn_80023220 = .text:0x80023220; // type:function size:0x70 -fn_80023290 = .text:0x80023290; // type:function size:0x9C -fn_8002332C = .text:0x8002332C; // type:function size:0x90 -fn_800233BC = .text:0x800233BC; // type:function size:0xBC -fn_80023478 = .text:0x80023478; // type:function size:0x80 -fn_800234F8 = .text:0x800234F8; // type:function size:0xAC -fn_800235A4 = .text:0x800235A4; // type:function size:0xC4 -fn_80023668 = .text:0x80023668; // type:function size:0xF0 -fn_80023758 = .text:0x80023758; // type:function size:0x54 -fn_800237AC = .text:0x800237AC; // type:function size:0x7C -fn_80023828 = .text:0x80023828; // type:function size:0x4D0 -fn_80023CF8 = .text:0x80023CF8; // type:function size:0x130 -fn_80023E28 = .text:0x80023E28; // type:function size:0x254 -fn_8002407C = .text:0x8002407C; // type:function size:0x68 -fn_800240E4 = .text:0x800240E4; // type:function size:0x8 -fn_800240EC = .text:0x800240EC; // type:function size:0x60 -fn_8002414C = .text:0x8002414C; // type:function size:0x74 -fn_800241C0 = .text:0x800241C0; // type:function size:0x188 -fn_80024348 = .text:0x80024348; // type:function size:0x64 -fn_800243AC = .text:0x800243AC; // type:function size:0x2C -fn_800243D8 = .text:0x800243D8; // type:function size:0x78 -fn_80024450 = .text:0x80024450; // type:function size:0x860 -fn_80024CB0 = .text:0x80024CB0; // type:function size:0x130 -fn_80024DE0 = .text:0x80024DE0; // type:function size:0x60 -fn_80024E40 = .text:0x80024E40; // type:function size:0x88 -fn_80024EC8 = .text:0x80024EC8; // type:function size:0x38 -fn_80024F00 = .text:0x80024F00; // type:function size:0x1E8 -fn_800250E8 = .text:0x800250E8; // type:function size:0x48 -fn_80025130 = .text:0x80025130; // type:function size:0xA4 -fn_800251D4 = .text:0x800251D4; // type:function size:0xC4 -fn_80025298 = .text:0x80025298; // type:function size:0x114 -fn_800253AC = .text:0x800253AC; // type:function size:0x11C -fn_800254C8 = .text:0x800254C8; // type:function size:0xBC -fn_80025584 = .text:0x80025584; // type:function size:0x54 -fn_800255D8 = .text:0x800255D8; // type:function size:0x20 -fn_800255F8 = .text:0x800255F8; // type:function size:0x1C -fn_80025614 = .text:0x80025614; // type:function size:0x1C -fn_80025630 = .text:0x80025630; // type:function size:0x1C -fn_8002564C = .text:0x8002564C; // type:function size:0x1F4 -fn_80025840 = .text:0x80025840; // type:function size:0xBC -fn_800258FC = .text:0x800258FC; // type:function size:0x1C -fn_80025918 = .text:0x80025918; // type:function size:0x2C -fn_80025944 = .text:0x80025944; // type:function size:0x1C -fn_80025960 = .text:0x80025960; // type:function size:0x44 -fn_800259A4 = .text:0x800259A4; // type:function size:0x30 -fn_800259D4 = .text:0x800259D4; // type:function size:0x114 -fn_80025AE8 = .text:0x80025AE8; // type:function size:0xD0 -fn_80025BB8 = .text:0x80025BB8; // type:function size:0x20 -fn_80025BD8 = .text:0x80025BD8; // type:function size:0xC8 -fn_80025CA0 = .text:0x80025CA0; // type:function size:0x2C -fn_80025CCC = .text:0x80025CCC; // type:function size:0x2C -fn_80025CF8 = .text:0x80025CF8; // type:function size:0xF4 -fn_80025DEC = .text:0x80025DEC; // type:function size:0x2C -fn_80025E18 = .text:0x80025E18; // type:function size:0x2C -fn_80025E44 = .text:0x80025E44; // type:function size:0xA8 -fn_80025EEC = .text:0x80025EEC; // type:function size:0xA8 -fn_80025F94 = .text:0x80025F94; // type:function size:0x30 -fn_80025FC4 = .text:0x80025FC4; // type:function size:0x8C -fn_80026050 = .text:0x80026050; // type:function size:0x30 -fn_80026080 = .text:0x80026080; // type:function size:0x170 -fn_800261F0 = .text:0x800261F0; // type:function size:0x2C -fn_8002621C = .text:0x8002621C; // type:function size:0x2C -fn_80026248 = .text:0x80026248; // type:function size:0x114 -fn_8002635C = .text:0x8002635C; // type:function size:0x5C -fn_800263B8 = .text:0x800263B8; // type:function size:0x108 -fn_800264C0 = .text:0x800264C0; // type:function size:0x798 -fn_80026C58 = .text:0x80026C58; // type:function size:0x534 -fn_8002718C = .text:0x8002718C; // type:function size:0xC0 -fn_8002724C = .text:0x8002724C; // type:function size:0x2A8 -fn_800274F4 = .text:0x800274F4; // type:function size:0x14C -fn_80027640 = .text:0x80027640; // type:function size:0x208 -fn_80027848 = .text:0x80027848; // type:function size:0x218 -fn_80027A60 = .text:0x80027A60; // type:function size:0x558 -fn_80027FB8 = .text:0x80027FB8; // type:function size:0x1D8 -fn_80028190 = .text:0x80028190; // type:function size:0xD8 -fn_80028268 = .text:0x80028268; // type:function size:0x70 -fn_800282D8 = .text:0x800282D8; // type:function size:0x110 -fn_800283E8 = .text:0x800283E8; // type:function size:0x200 -fn_800285E8 = .text:0x800285E8; // type:function size:0x64 -fn_8002864C = .text:0x8002864C; // type:function size:0xCC -fn_80028718 = .text:0x80028718; // type:function size:0x124 -fn_8002883C = .text:0x8002883C; // type:function size:0x19C -fn_800289D8 = .text:0x800289D8; // type:function size:0x90 -fn_80028A68 = .text:0x80028A68; // type:function size:0x9C -fn_80028B04 = .text:0x80028B04; // type:function size:0x7C -fn_80028B80 = .text:0x80028B80; // type:function size:0x1D0 -fn_80028D50 = .text:0x80028D50; // type:function size:0x1C4 -fn_80028F14 = .text:0x80028F14; // type:function size:0x104 -fn_80029018 = .text:0x80029018; // type:function size:0x13C -fn_80029154 = .text:0x80029154; // type:function size:0x134 -fn_80029288 = .text:0x80029288; // type:function size:0x34 -fn_800292BC = .text:0x800292BC; // type:function size:0x38 -fn_800292F4 = .text:0x800292F4; // type:function size:0x2C -fn_80029320 = .text:0x80029320; // type:function size:0x48 -fn_80029368 = .text:0x80029368; // type:function size:0x38 -fn_800293A0 = .text:0x800293A0; // type:function size:0x240 -fn_800295E0 = .text:0x800295E0; // type:function size:0x474 -fn_80029A54 = .text:0x80029A54; // type:function size:0x1AC -fn_80029C00 = .text:0x80029C00; // type:function size:0xE0 -fn_80029CE0 = .text:0x80029CE0; // type:function size:0x10C -fn_80029DEC = .text:0x80029DEC; // type:function size:0x44 -fn_80029E30 = .text:0x80029E30; // type:function size:0xA4 -fn_80029ED4 = .text:0x80029ED4; // type:function size:0x3C -fn_80029F10 = .text:0x80029F10; // type:function size:0x5C -fn_80029F6C = .text:0x80029F6C; // type:function size:0x54 -fn_80029FC0 = .text:0x80029FC0; // type:function size:0x348 -fn_8002A308 = .text:0x8002A308; // type:function size:0x6C -fn_8002A374 = .text:0x8002A374; // type:function size:0x6C -fn_8002A3E0 = .text:0x8002A3E0; // type:function size:0x74 -fn_8002A454 = .text:0x8002A454; // type:function size:0x80 -fn_8002A4D4 = .text:0x8002A4D4; // type:function size:0x38 -fn_8002A50C = .text:0x8002A50C; // type:function size:0x38 -fn_8002A544 = .text:0x8002A544; // type:function size:0x40 -fn_8002A584 = .text:0x8002A584; // type:function size:0x44 -fn_8002A5C8 = .text:0x8002A5C8; // type:function size:0x3C -fn_8002A604 = .text:0x8002A604; // type:function size:0x60 -fn_8002A664 = .text:0x8002A664; // type:function size:0xAD4 -fn_8002B138 = .text:0x8002B138; // type:function size:0x48 -fn_8002B180 = .text:0x8002B180; // type:function size:0x1D4 -fn_8002B354 = .text:0x8002B354; // type:function size:0x17C -fn_8002B4D0 = .text:0x8002B4D0; // type:function size:0x190 -fn_8002B660 = .text:0x8002B660; // type:function size:0x1C4 -fn_8002B824 = .text:0x8002B824; // type:function size:0x20 -fn_8002B844 = .text:0x8002B844; // type:function size:0x3C -fn_8002B880 = .text:0x8002B880; // type:function size:0x3C -fn_8002B8BC = .text:0x8002B8BC; // type:function size:0x7C -fn_8002B938 = .text:0x8002B938; // type:function size:0x40 -fn_8002B978 = .text:0x8002B978; // type:function size:0x40 -fn_8002B9B8 = .text:0x8002B9B8; // type:function size:0x34 -fn_8002B9EC = .text:0x8002B9EC; // type:function size:0x38 -fn_8002BA24 = .text:0x8002BA24; // type:function size:0x74 -fn_8002BA98 = .text:0x8002BA98; // type:function size:0x68 -fn_8002BB00 = .text:0x8002BB00; // type:function size:0xBC0 -fn_8002C6C0 = .text:0x8002C6C0; // type:function size:0x4B4 -fn_8002CB74 = .text:0x8002CB74; // type:function size:0xAC -fn_8002CC20 = .text:0x8002CC20; // type:function size:0xA14 -fn_8002D634 = .text:0x8002D634; // type:function size:0x244 -fn_8002D878 = .text:0x8002D878; // type:function size:0x40C -fn_8002DC84 = .text:0x8002DC84; // type:function size:0x1D4 -fn_8002DE58 = .text:0x8002DE58; // type:function size:0x1D0 -fn_8002E028 = .text:0x8002E028; // type:function size:0x1C -fn_8002E044 = .text:0x8002E044; // type:function size:0x540 -fn_8002E584 = .text:0x8002E584; // type:function size:0x1C8 -fn_8002E74C = .text:0x8002E74C; // type:function size:0x94 -fn_8002E7E0 = .text:0x8002E7E0; // type:function size:0x130 -fn_8002E910 = .text:0x8002E910; // type:function size:0x40 -fn_8002E950 = .text:0x8002E950; // type:function size:0x7C -fn_8002E9CC = .text:0x8002E9CC; // type:function size:0xA0 -fn_8002EA6C = .text:0x8002EA6C; // type:function size:0x16C -fn_8002EBD8 = .text:0x8002EBD8; // type:function size:0x90 -fn_8002EC68 = .text:0x8002EC68; // type:function size:0x170 -fn_8002EDD8 = .text:0x8002EDD8; // type:function size:0xE8 -fn_8002EEC0 = .text:0x8002EEC0; // type:function size:0x60 -fn_8002EF20 = .text:0x8002EF20; // type:function size:0xF4 -fn_8002F014 = .text:0x8002F014; // type:function size:0xB8 -fn_8002F0CC = .text:0x8002F0CC; // type:function size:0xA0 -fn_8002F16C = .text:0x8002F16C; // type:function size:0x78 -fn_8002F1E4 = .text:0x8002F1E4; // type:function size:0x220 -fn_8002F404 = .text:0x8002F404; // type:function size:0x50 -fn_8002F454 = .text:0x8002F454; // type:function size:0x1DC -fn_8002F630 = .text:0x8002F630; // type:function size:0xF8 -fn_8002F728 = .text:0x8002F728; // type:function size:0x84 -fn_8002F7AC = .text:0x8002F7AC; // type:function size:0x190 -fn_8002F93C = .text:0x8002F93C; // type:function size:0x88 -fn_8002F9C4 = .text:0x8002F9C4; // type:function size:0xFC -fn_8002FAC0 = .text:0x8002FAC0; // type:function size:0x2C -fn_8002FAEC = .text:0x8002FAEC; // type:function size:0x10 -fn_8002FAFC = .text:0x8002FAFC; // type:function size:0x14 -fn_8002FB10 = .text:0x8002FB10; // type:function size:0x10 -fn_8002FB20 = .text:0x8002FB20; // type:function size:0x10 -fn_8002FB30 = .text:0x8002FB30; // type:function size:0x10 -fn_8002FB40 = .text:0x8002FB40; // type:function size:0x2F8 -fn_8002FE38 = .text:0x8002FE38; // type:function size:0xE0 -fn_8002FF18 = .text:0x8002FF18; // type:function size:0x2C -fn_8002FF44 = .text:0x8002FF44; // type:function size:0x8 -fn_8002FF4C = .text:0x8002FF4C; // type:function size:0x150 -fn_8003009C = .text:0x8003009C; // type:function size:0x118 -fn_800301B4 = .text:0x800301B4; // type:function size:0x34 -fn_800301E8 = .text:0x800301E8; // type:function size:0x98 -fn_80030280 = .text:0x80030280; // type:function size:0x50 -fn_800302D0 = .text:0x800302D0; // type:function size:0xF4 -fn_800303C4 = .text:0x800303C4; // type:function size:0x150 -fn_80030514 = .text:0x80030514; // type:function size:0x1F0 -fn_80030704 = .text:0x80030704; // type:function size:0x1B4 -fn_800308B8 = .text:0x800308B8; // type:function size:0x14C -fn_80030A04 = .text:0x80030A04; // type:function size:0x318 -fn_80030D1C = .text:0x80030D1C; // type:function size:0x4C -fn_80030D68 = .text:0x80030D68; // type:function size:0x54 -fn_80030DBC = .text:0x80030DBC; // type:function size:0x18 -fn_80030DD4 = .text:0x80030DD4; // type:function size:0x140 -fn_80030F14 = .text:0x80030F14; // type:function size:0x24 -fn_80030F38 = .text:0x80030F38; // type:function size:0x38 -fn_80030F70 = .text:0x80030F70; // type:function size:0x14 -fn_80030F84 = .text:0x80030F84; // type:function size:0x1C -fn_80030FA0 = .text:0x80030FA0; // type:function size:0x18 -fn_80030FB8 = .text:0x80030FB8; // type:function size:0x1C -fn_80030FD4 = .text:0x80030FD4; // type:function size:0x18 -fn_80030FEC = .text:0x80030FEC; // type:function size:0x5C -fn_80031048 = .text:0x80031048; // type:function size:0x1C -fn_80031064 = .text:0x80031064; // type:function size:0x20 -fn_80031084 = .text:0x80031084; // type:function size:0x6C -fn_800310F0 = .text:0x800310F0; // type:function size:0x5C -fn_8003114C = .text:0x8003114C; // type:function size:0x6C -fn_800311B8 = .text:0x800311B8; // type:function size:0x5C -fn_80031214 = .text:0x80031214; // type:function size:0x60 -fn_80031274 = .text:0x80031274; // type:function size:0x18 -fn_8003128C = .text:0x8003128C; // type:function size:0xB0 -fn_8003133C = .text:0x8003133C; // type:function size:0xD0 -fn_8003140C = .text:0x8003140C; // type:function size:0x6C -fn_80031478 = .text:0x80031478; // type:function size:0x94 -fn_8003150C = .text:0x8003150C; // type:function size:0x18 -fn_80031524 = .text:0x80031524; // type:function size:0x34 -fn_80031558 = .text:0x80031558; // type:function size:0x54 -fn_800315AC = .text:0x800315AC; // type:function size:0x10 -fn_800315BC = .text:0x800315BC; // type:function size:0x238 -fn_800317F4 = .text:0x800317F4; // type:function size:0x2C4 -fn_80031AB8 = .text:0x80031AB8; // type:function size:0x74 -fn_80031B2C = .text:0x80031B2C; // type:function size:0x230 -fn_80031D5C = .text:0x80031D5C; // type:function size:0x8 -fn_80031D64 = .text:0x80031D64; // type:function size:0x50 -fn_80031DB4 = .text:0x80031DB4; // type:function size:0x2C -fn_80031DE0 = .text:0x80031DE0; // type:function size:0x6C -fn_80031E4C = .text:0x80031E4C; // type:function size:0x154 -fn_80031FA0 = .text:0x80031FA0; // type:function size:0xB4 -fn_80032054 = .text:0x80032054; // type:function size:0x13C -fn_80032190 = .text:0x80032190; // type:function size:0x138 -fn_800322C8 = .text:0x800322C8; // type:function size:0xB4 -fn_8003237C = .text:0x8003237C; // type:function size:0xC8 -fn_80032444 = .text:0x80032444; // type:function size:0xD0 -fn_80032514 = .text:0x80032514; // type:function size:0xE0 -fn_800325F4 = .text:0x800325F4; // type:function size:0xAC -fn_800326A0 = .text:0x800326A0; // type:function size:0xD8 -fn_80032778 = .text:0x80032778; // type:function size:0xB8 -fn_80032830 = .text:0x80032830; // type:function size:0x170 -fn_800329A0 = .text:0x800329A0; // type:function size:0x8 -fn_800329A8 = .text:0x800329A8; // type:function size:0x3C -fn_800329E4 = .text:0x800329E4; // type:function size:0x24 -fn_80032A08 = .text:0x80032A08; // type:function size:0x24 -fn_80032A2C = .text:0x80032A2C; // type:function size:0x4 -fn_80032A30 = .text:0x80032A30; // type:function size:0x28 -fn_80032A58 = .text:0x80032A58; // type:function size:0x3C -fn_80032A94 = .text:0x80032A94; // type:function size:0x80 -fn_80032B14 = .text:0x80032B14; // type:function size:0x48 -fn_80032B5C = .text:0x80032B5C; // type:function size:0x68 -fn_80032BC4 = .text:0x80032BC4; // type:function size:0x2C -fn_80032BF0 = .text:0x80032BF0; // type:function size:0x28 -fn_80032C18 = .text:0x80032C18; // type:function size:0x30 -fn_80032C48 = .text:0x80032C48; // type:function size:0x50 -fn_80032C98 = .text:0x80032C98; // type:function size:0xA4 -fn_80032D3C = .text:0x80032D3C; // type:function size:0x134 -fn_80032E70 = .text:0x80032E70; // type:function size:0x3C -fn_80032EAC = .text:0x80032EAC; // type:function size:0x6C -fn_80032F18 = .text:0x80032F18; // type:function size:0x64 -fn_80032F7C = .text:0x80032F7C; // type:function size:0x20 -fn_80032F9C = .text:0x80032F9C; // type:function size:0x2C -fn_80032FC8 = .text:0x80032FC8; // type:function size:0x28 -fn_80032FF0 = .text:0x80032FF0; // type:function size:0x54 -fn_80033044 = .text:0x80033044; // type:function size:0x58 -fn_8003309C = .text:0x8003309C; // type:function size:0x5C -fn_800330F8 = .text:0x800330F8; // type:function size:0x48 -fn_80033140 = .text:0x80033140; // type:function size:0x3C -fn_8003317C = .text:0x8003317C; // type:function size:0x5C -fn_800331D8 = .text:0x800331D8; // type:function size:0x28 -fn_80033200 = .text:0x80033200; // type:function size:0x2C -fn_8003322C = .text:0x8003322C; // type:function size:0x54 -fn_80033280 = .text:0x80033280; // type:function size:0x60 -fn_800332E0 = .text:0x800332E0; // type:function size:0x64 -fn_80033344 = .text:0x80033344; // type:function size:0x38 -fn_8003337C = .text:0x8003337C; // type:function size:0x3C -fn_800333B8 = .text:0x800333B8; // type:function size:0x28 -fn_800333E0 = .text:0x800333E0; // type:function size:0x24 -fn_80033404 = .text:0x80033404; // type:function size:0x28 -fn_8003342C = .text:0x8003342C; // type:function size:0x104 -fn_80033530 = .text:0x80033530; // type:function size:0x1A4 -fn_800336D4 = .text:0x800336D4; // type:function size:0x60 -fn_80033734 = .text:0x80033734; // type:function size:0x154 -fn_80033888 = .text:0x80033888; // type:function size:0x58 -fn_800338E0 = .text:0x800338E0; // type:function size:0xC -fn_800338EC = .text:0x800338EC; // type:function size:0x294 -fn_80033B80 = .text:0x80033B80; // type:function size:0x50 -fn_80033BD0 = .text:0x80033BD0; // type:function size:0x58 -fn_80033C28 = .text:0x80033C28; // type:function size:0x50 -fn_80033C78 = .text:0x80033C78; // type:function size:0xAC -fn_80033D24 = .text:0x80033D24; // type:function size:0xD0 -fn_80033DF4 = .text:0x80033DF4; // type:function size:0x90 -fn_80033E84 = .text:0x80033E84; // type:function size:0x68 -fn_80033EEC = .text:0x80033EEC; // type:function size:0x1A4 -fn_80034090 = .text:0x80034090; // type:function size:0x23C -fn_800342CC = .text:0x800342CC; // type:function size:0x80 -fn_8003434C = .text:0x8003434C; // type:function size:0x50 -fn_8003439C = .text:0x8003439C; // type:function size:0x158 -fn_800344F4 = .text:0x800344F4; // type:function size:0x9F0 -fn_80034EE4 = .text:0x80034EE4; // type:function size:0x334 -fn_80035218 = .text:0x80035218; // type:function size:0x11C -fn_80035334 = .text:0x80035334; // type:function size:0x78 -fn_800353AC = .text:0x800353AC; // type:function size:0xBC -fn_80035468 = .text:0x80035468; // type:function size:0x188 -fn_800355F0 = .text:0x800355F0; // type:function size:0x1A4 -fn_80035794 = .text:0x80035794; // type:function size:0x100 -fn_80035894 = .text:0x80035894; // type:function size:0x88 -fn_8003591C = .text:0x8003591C; // type:function size:0x4C -fn_80035968 = .text:0x80035968; // type:function size:0x4C -fn_800359B4 = .text:0x800359B4; // type:function size:0x58 -fn_80035A0C = .text:0x80035A0C; // type:function size:0x3C -fn_80035A48 = .text:0x80035A48; // type:function size:0xA4 -fn_80035AEC = .text:0x80035AEC; // type:function size:0x4 -fn_80035AF0 = .text:0x80035AF0; // type:function size:0x8C -fn_80035B7C = .text:0x80035B7C; // type:function size:0x2E0 -fn_80035E5C = .text:0x80035E5C; // type:function size:0x69C -fn_800364F8 = .text:0x800364F8; // type:function size:0x3D8 -fn_800368D0 = .text:0x800368D0; // type:function size:0x2F8 +HuSysVWaitSet = .text:0x800059EC; // type:function size:0x38 +HuSysVWaitGet = .text:0x80005A24; // type:function size:0xC +rand8 = .text:0x80005A30; // type:function size:0x2C +HuPadInit = .text:0x80005A5C; // type:function size:0xF0 +HuPadRead = .text:0x80005B4C; // type:function size:0x168 +PadReadVSync = .text:0x80005CB4; // type:function size:0x440 scope:local +PadADConv = .text:0x800060F4; // type:function size:0x234 scope:local +HuPadRumbleSet = .text:0x80006328; // type:function size:0x54 +HuPadRumbleStop = .text:0x8000637C; // type:function size:0x70 +HuPadRumbleAllStop = .text:0x800063EC; // type:function size:0x70 +HuPadStatGet = .text:0x8000645C; // type:function size:0x14 +HuPadRumbleGet = .text:0x80006470; // type:function size:0x8 +HuDVDReadAsyncCallBack = .text:0x80006478; // type:function size:0xC scope:local +HuDvdDataRead = .text:0x80006484; // type:function size:0x16C +HuDvdDataReadMulti = .text:0x800065F0; // type:function size:0x1B4 +HuDvdDataReadDirect = .text:0x800067A4; // type:function size:0x170 +HuDvdDataFastRead = .text:0x80006914; // type:function size:0x16C +HuDvdDataFastReadNum = .text:0x80006A80; // type:function size:0x174 +HuDvdDataFastReadAsync = .text:0x80006BF4; // type:function size:0x150 +HuDvdDataClose = .text:0x80006D44; // type:function size:0x38 +HuDvdErrorWatch = .text:0x80006D7C; // type:function size:0xBC +HuDataInit = .text:0x80006E38; // type:function size:0xD0 +HuDataReadChk = .text:0x80006F08; // type:function size:0x74 +HuDataGetStatus = .text:0x80006F7C; // type:function size:0x64 +HuDataGetDirPtr = .text:0x80006FE0; // type:function size:0xB8 +HuDataDirRead = .text:0x80007098; // type:function size:0x224 +HuDataDirSet = .text:0x800072BC; // type:function size:0x188 +HuDataDirReadAsyncCallBack = .text:0x80007444; // type:function size:0xC8 +HuDataDirReadAsync = .text:0x8000750C; // type:function size:0x1A8 +HuDataDirReadNumAsync = .text:0x800076B4; // type:function size:0x1A8 +HuDataGetAsyncStat = .text:0x8000785C; // type:function size:0x60 +HuDataRead = .text:0x800078BC; // type:function size:0x344 +HuDataReadNum = .text:0x80007C00; // type:function size:0x3A0 +HuDataSelHeapRead = .text:0x80007FA0; // type:function size:0x3C4 +HuDataSelHeapReadNum = .text:0x80008364; // type:function size:0x428 +HuDataReadMulti = .text:0x8000878C; // type:function size:0x30 +HuDataReadMultiSub = .text:0x800087BC; // type:function size:0x3FC +HuDataGetSize = .text:0x80008BB8; // type:function size:0x104 +HuDataClose = .text:0x80008CBC; // type:function size:0x38 +HuDataCloseMulti = .text:0x80008CF4; // type:function size:0x7C +HuDataDirClose = .text:0x80008D70; // type:function size:0xD4 +HuDataDirCloseNum = .text:0x80008E44; // type:function size:0x130 +HuDataReadNumHeapShortForce = .text:0x80008F74; // type:function size:0x48C +HuDecodeSlide = .text:0x80009400; // type:function size:0x200 scope:local +HuDecodeFslide = .text:0x80009600; // type:function size:0x1D8 scope:local +HuDecodeData = .text:0x800097D8; // type:function size:0x324 +HuSysInit = .text:0x80009AFC; // type:function size:0x138 +InitRenderMode = .text:0x80009C34; // type:function size:0xD0 scope:local +InitGX = .text:0x80009D04; // type:function size:0x164 scope:local +InitMem = .text:0x80009E68; // type:function size:0x13C scope:local +InitVI = .text:0x80009FA4; // type:function size:0x54 scope:local +HuSysBeforeRender = .text:0x80009FF8; // type:function size:0xE4 +HuSysDoneRender = .text:0x8000A0DC; // type:function size:0xC8 +SwapBuffers = .text:0x8000A1A4; // type:function size:0x6C scope:local +LoadMemInfo = .text:0x8000A210; // type:function size:0x254 scope:local +gcsetjmp = .text:0x8000A464; // type:function size:0x74 +gclongjmp = .text:0x8000A4D8; // type:function size:0x80 +HuMemInitAll = .text:0x8000A558; // type:function size:0x12C +HuMemInit = .text:0x8000A684; // type:function size:0x30 +HuMemDCFlushAll = .text:0x8000A6B4; // type:function size:0x2C +HuMemDCFlush = .text:0x8000A6E0; // type:function size:0x54 +HuMemDirectMalloc = .text:0x8000A734; // type:function size:0x64 +HuMemDirectMallocNum = .text:0x8000A798; // type:function size:0x6C +HuMemDirectFree = .text:0x8000A804; // type:function size:0x38 +HuMemDirectFreeNum = .text:0x8000A83C; // type:function size:0x54 +HuMemUsedMallocSizeGet = .text:0x8000A890; // type:function size:0x3C +HuMemUsedMallocBlockGet = .text:0x8000A8CC; // type:function size:0x3C +HuMemHeapSizeGet = .text:0x8000A908; // type:function size:0x18 +HuMemHeapPtrGet = .text:0x8000A920; // type:function size:0x18 +HuMemHeapInit = .text:0x8000A938; // type:function size:0x4C +HuMemMemoryAllocNum = .text:0x8000A984; // type:function size:0x40 +HuMemMemoryAlloc = .text:0x8000A9C4; // type:function size:0x3C +HuMemMemoryAlloc2 = .text:0x8000AA00; // type:function size:0x108 scope:local +HuMemMemoryFreeNum = .text:0x8000AB08; // type:function size:0x7C +HuMemMemoryFree = .text:0x8000AB84; // type:function size:0x12C +HuMemUsedMemorySizeGet = .text:0x8000ACB0; // type:function size:0x48 +HuMemUsedMemoryBlockGet = .text:0x8000ACF8; // type:function size:0x44 +HuMemMemoryAllocSizeGet = .text:0x8000AD3C; // type:function size:0xC +HuMemHeapDump = .text:0x8000AD48; // type:function size:0x158 +HuMemMemorySizeGet = .text:0x8000AEA0; // type:function size:0x50 +pfInit = .text:0x8000AEF0; // type:function size:0x64 +pfClsScr = .text:0x8000AF54; // type:function size:0xA0 +print8 = .text:0x8000AFF4; // type:function size:0x15C +printWin = .text:0x8000B150; // type:function size:0xAC +pfDrawFonts = .text:0x8000B1FC; // type:function size:0xEE8 +WireDraw = .text:0x8000C0E4; // type:function size:0x3C0 scope:local +HuPrcInit = .text:0x8000C4A4; // type:function size:0x14 +HuPrcCreate = .text:0x8000C4B8; // type:function size:0x1E8 +HuPrcChildLink = .text:0x8000C6A0; // type:function size:0x68 +HuPrcChildUnlink = .text:0x8000C708; // type:function size:0x58 +HuPrcChildCreate = .text:0x8000C760; // type:function size:0x27C +HuPrcChildWatch = .text:0x8000C9DC; // type:function size:0x60 +HuPrcCurrentGet = .text:0x8000CA3C; // type:function size:0x8 +SetKillStatusProcess = .text:0x8000CA44; // type:function size:0x50 scope:local +HuPrcKill = .text:0x8000CA94; // type:function size:0xD4 +HuPrcChildKill = .text:0x8000CB68; // type:function size:0x2A4 +HuPrcEnd = .text:0x8000CE0C; // type:function size:0x100 +HuPrcSleep = .text:0x8000CF0C; // type:function size:0x80 +HuPrcVSleep = .text:0x8000CF8C; // type:function size:0x54 +HuPrcWakeup = .text:0x8000CFE0; // type:function size:0xC +HuPrcDestructorSet2 = .text:0x8000CFEC; // type:function size:0x8 +HuPrcDestructorSet = .text:0x8000CFF4; // type:function size:0x28 +HuPrcCall = .text:0x8000D01C; // type:function size:0x184 +HuPrcMemAlloc = .text:0x8000D1A0; // type:function size:0x4C +HuPrcMemFree = .text:0x8000D1EC; // type:function size:0x30 +HuPrcSetStat = .text:0x8000D21C; // type:function size:0x10 +HuPrcResetStat = .text:0x8000D22C; // type:function size:0x14 +HuPrcAllPause = .text:0x8000D240; // type:function size:0x84 +HuPrcAllUPause = .text:0x8000D2C4; // type:function size:0x84 +HuSprInit = .text:0x8000D348; // type:function size:0xA0 +HuSprClose = .text:0x8000D3E8; // type:function size:0xB0 +HuSprExec = .text:0x8000D498; // type:function size:0x64 +HuSprBegin = .text:0x8000D4FC; // type:function size:0x188 +HuSprOrderEntry = .text:0x8000D684; // type:function size:0x14C +HuSprCall = .text:0x8000D7D0; // type:function size:0xF4 +HuSprFinish = .text:0x8000D8C4; // type:function size:0x458 +HuSprPauseSet = .text:0x8000DD1C; // type:function size:0x8 +HuSprAnimRead = .text:0x8000DD24; // type:function size:0x114 +HuSprAnimLock = .text:0x8000DE38; // type:function size:0x10 +HuSprCreate = .text:0x8000DE48; // type:function size:0x128 +HuSprFuncCreate = .text:0x8000DF70; // type:function size:0x188 +HuSprGrpCreate = .text:0x8000E0F8; // type:function size:0xF4 +HuSprGrpCopy = .text:0x8000E1EC; // type:function size:0x334 +HuSprGrpMemberSet = .text:0x8000E520; // type:function size:0x8C +HuSprGrpMemberKill = .text:0x8000E5AC; // type:function size:0xAC +HuSprGrpKill = .text:0x8000E658; // type:function size:0x9C +HuSprKill = .text:0x8000E6F4; // type:function size:0x84 +HuSprAnimKill = .text:0x8000E778; // type:function size:0x90 +HuSprAttrSet = .text:0x8000E808; // type:function size:0xAC +HuSprAttrReset = .text:0x8000E8B4; // type:function size:0xAC +HuSprPosSet = .text:0x8000E960; // type:function size:0x60 +HuSprZRotSet = .text:0x8000E9C0; // type:function size:0x5C +HuSprScaleSet = .text:0x8000EA1C; // type:function size:0x60 +HuSprTPLvlSet = .text:0x8000EA7C; // type:function size:0x64 +HuSprColorSet = .text:0x8000EAE0; // type:function size:0x64 +HuSprSpeedSet = .text:0x8000EB44; // type:function size:0x4C +HuSprBankSet = .text:0x8000EB90; // type:function size:0xF0 +HuSprGrpPosSet = .text:0x8000EC80; // type:function size:0x9C +HuSprGrpCenterSet = .text:0x8000ED1C; // type:function size:0x9C +HuSprGrpZRotSet = .text:0x8000EDB8; // type:function size:0x98 +HuSprGrpScaleSet = .text:0x8000EE50; // type:function size:0x9C +HuSprGrpTPLvlSet = .text:0x8000EEEC; // type:function size:0xC0 +HuSprGrpDrawNoSet = .text:0x8000EFAC; // type:function size:0x8C +HuSprDrawNoSet = .text:0x8000F038; // type:function size:0x50 +HuSprPriSet = .text:0x8000F088; // type:function size:0x4C +HuSprGrpScissorSet = .text:0x8000F0D4; // type:function size:0xAC +HuSprScissorSet = .text:0x8000F180; // type:function size:0x58 +HuSprAnimMake = .text:0x8000F1D8; // type:function size:0x1FC +HuSprBGSet = .text:0x8000F3D4; // type:function size:0x68 +HuSprSprBGSet = .text:0x8000F43C; // type:function size:0x50 +AnimDebug = .text:0x8000F48C; // type:function size:0x214 +HuSprDispInit = .text:0x8000F6A0; // type:function size:0x158 +HuSprDisp = .text:0x8000F7F8; // type:function size:0xECC +HuSprTexLoad = .text:0x800106C4; // type:function size:0x29C +HuSprExecLayerSet = .text:0x80010960; // type:function size:0x58 +HuSprLayerHook = .text:0x800109B8; // type:function size:0x178 scope:local +LoadHSF = .text:0x80010B30; // type:function size:0xB0 +ClusterAdjustObject = .text:0x80010BE0; // type:function size:0xA0 +FileLoad = .text:0x80010C80; // type:function size:0xC8 scope:local +SetHsfModel = .text:0x80010D48; // type:function size:0x284 scope:local +SetName = .text:0x80010FCC; // type:function size:0x38 +MaterialLoad = .text:0x80011004; // type:function size:0x210 scope:local +AttributeLoad = .text:0x80011214; // type:function size:0xF8 scope:local +SceneLoad = .text:0x8001130C; // type:function size:0x80 scope:local +ColorLoad = .text:0x8001138C; // type:function size:0x130 scope:local +VertexLoad = .text:0x800114BC; // type:function size:0x1C0 scope:local +NormalLoad = .text:0x8001167C; // type:function size:0x128 scope:local +STLoad = .text:0x800117A4; // type:function size:0x1A8 scope:local +FaceLoad = .text:0x8001194C; // type:function size:0x190 scope:local +DispObject = .text:0x80011ADC; // type:function size:0x7A8 scope:local +ObjectLoad = .text:0x80012284; // type:function size:0x15C scope:local +CenvLoad = .text:0x800123E0; // type:function size:0x464 scope:local +SkeletonLoad = .text:0x80012844; // type:function size:0x198 scope:local +PartLoad = .text:0x800129DC; // type:function size:0x12C scope:local +ClusterLoad = .text:0x80012B08; // type:function size:0x1E8 scope:local +ShapeLoad = .text:0x80012CF0; // type:function size:0x168 scope:local +MapAttrLoad = .text:0x80012E58; // type:function size:0xD0 scope:local +BitmapLoad = .text:0x80012F28; // type:function size:0x174 scope:local +PaletteLoad = .text:0x8001309C; // type:function size:0x16C scope:local +MakeObjectName = .text:0x80013208; // type:function size:0xE8 +CmpObjectName = .text:0x800132F0; // type:function size:0x38 +MotionLoad = .text:0x80013328; // type:function size:0x938 scope:local +MatrixLoad = .text:0x80013C60; // type:function size:0x80 scope:local +SearchObjectSetName = .text:0x80013CE0; // type:function size:0x94 scope:local +SearchVertexPtr = .text:0x80013D74; // type:function size:0x44 scope:local +SearchNormalPtr = .text:0x80013DB8; // type:function size:0x44 scope:local +SearchStPtr = .text:0x80013DFC; // type:function size:0x44 scope:local +SearchColorPtr = .text:0x80013E40; // type:function size:0x44 scope:local +SearchFacePtr = .text:0x80013E84; // type:function size:0x44 scope:local +SearchCenvPtr = .text:0x80013EC8; // type:function size:0x44 scope:local +SearchPartPtr = .text:0x80013F0C; // type:function size:0x44 scope:local +SearchPalettePtr = .text:0x80013F50; // type:function size:0x3C scope:local +SearchBitmapPtr = .text:0x80013F8C; // type:function size:0x44 scope:local +GetString = .text:0x80013FD0; // type:function size:0x24 scope:local +GetMotionString = .text:0x80013FF4; // type:function size:0x24 scope:local +Hu3DDrawPreInit = .text:0x80014018; // type:function size:0xC +Hu3DDraw = .text:0x80014024; // type:function size:0x1A0 +objCall = .text:0x800141C4; // type:function size:0xEC scope:local +objMesh = .text:0x800142B0; // type:function size:0x86C scope:local +ObjCullCheck = .text:0x80014B1C; // type:function size:0x4C0 +FaceDraw = .text:0x80014FDC; // type:function size:0x10DC scope:local +SetTevStageNoTex = .text:0x800160B8; // type:function size:0x8E8 scope:local +SetTevStageTex = .text:0x800169A0; // type:function size:0x2588 scope:local +SetKColor = .text:0x80018F28; // type:function size:0x164 scope:local +SetKColorRGB = .text:0x8001908C; // type:function size:0x180 scope:local +FlushKColor = .text:0x8001920C; // type:function size:0xB0 scope:local +SetReflect = .text:0x800192BC; // type:function size:0x280 scope:local +SetProjection = .text:0x8001953C; // type:function size:0x29C scope:local +SetShadowTex = .text:0x800197D8; // type:function size:0x8C scope:local +SetShadow = .text:0x80019864; // type:function size:0xCC scope:local +FaceDrawShadow = .text:0x80019930; // type:function size:0x5E4 scope:local +LoadTexture = .text:0x80019F14; // type:function size:0x75C scope:local +objNull = .text:0x8001A670; // type:function size:0x248 scope:local +objRoot = .text:0x8001A8B8; // type:function size:0x198 scope:local +objJoint = .text:0x8001AA50; // type:function size:0x248 scope:local +objMap = .text:0x8001AC98; // type:function size:0x17C scope:local +objReplica = .text:0x8001AE14; // type:function size:0x1B4 scope:local +Hu3DDrawPost = .text:0x8001AFC8; // type:function size:0xB00 +ObjDraw = .text:0x8001BAC8; // type:function size:0x6D0 scope:local +MakeDisplayList = .text:0x8001C198; // type:function size:0xBC +MDObjCall = .text:0x8001C254; // type:function size:0x438 scope:local +MDObjMesh = .text:0x8001C68C; // type:function size:0x2A8 scope:local +ObjConstantMake = .text:0x8001C934; // type:function size:0x68 +MDFaceDraw = .text:0x8001C99C; // type:function size:0xD08 scope:local +MakeCalcNBT = .text:0x8001D6A4; // type:function size:0x3A8 scope:local +MakeNBT = .text:0x8001DA4C; // type:function size:0x2C4 scope:local +MDFaceCnt = .text:0x8001DD10; // type:function size:0x2C8 scope:local +mtxTransCat = .text:0x8001DFD8; // type:function size:0x4C +mtxRotCat = .text:0x8001E024; // type:function size:0xF4 +mtxRot = .text:0x8001E118; // type:function size:0xF0 +mtxScaleCat = .text:0x8001E208; // type:function size:0x70 +HmfInverseMtxF3X3 = .text:0x8001E278; // type:function size:0x1E0 +SetDefLight = .text:0x8001E458; // type:function size:0x190 +Hu3DModelObjPosGet = .text:0x8001E5E8; // type:function size:0x90 +Hu3DModelObjMtxGet = .text:0x8001E678; // type:function size:0x318 +PGObjCall = .text:0x8001E990; // type:function size:0x80 +PGObjCalc = .text:0x8001EA10; // type:function size:0x7B0 +PGObjReplica = .text:0x8001F1C0; // type:function size:0x574 +Hu3DObjDuplicate = .text:0x8001F734; // type:function size:0x158 +Hu3DModelObjDrawInit = .text:0x8001F88C; // type:function size:0x90 +Hu3DModelObjDraw = .text:0x8001F91C; // type:function size:0x90 +Hu3DInit = .text:0x8001F9AC; // type:function size:0x220 +Hu3DPreProc = .text:0x8001FBCC; // type:function size:0xD8 +Hu3DExec = .text:0x8001FCA4; // type:function size:0x688 +Hu3DAllKill = .text:0x8002032C; // type:function size:0x158 +Hu3DBGColorSet = .text:0x80020484; // type:function size:0x18 +Hu3DLayerHookSet = .text:0x8002049C; // type:function size:0x1C +Hu3DPauseSet = .text:0x800204B8; // type:function size:0xC +Hu3DNoSyncSet = .text:0x800204C4; // type:function size:0xC +Hu3DModelCreate = .text:0x800204D0; // type:function size:0x330 +Hu3DModelLink = .text:0x80020800; // type:function size:0x2E8 +Hu3DHookFuncCreate = .text:0x80020AE8; // type:function size:0x1C8 +Hu3DModelKill = .text:0x80020CB0; // type:function size:0x34C +Hu3DModelAllKill = .text:0x80020FFC; // type:function size:0xD0 +Hu3DModelPosSet = .text:0x800210CC; // type:function size:0x34 +Hu3DModelPosSetV = .text:0x80021100; // type:function size:0x40 +Hu3DModelRotSet = .text:0x80021140; // type:function size:0x34 +Hu3DModelRotSetV = .text:0x80021174; // type:function size:0x40 +Hu3DModelScaleSet = .text:0x800211B4; // type:function size:0x34 +Hu3DModelScaleSetV = .text:0x800211E8; // type:function size:0x40 +Hu3DModelAttrSet = .text:0x80021228; // type:function size:0x54 +Hu3DModelAttrReset = .text:0x8002127C; // type:function size:0x50 +Hu3DModelAttrGet = .text:0x800212CC; // type:function size:0x2C +Hu3DModelMotionAttrGet = .text:0x800212F8; // type:function size:0x2C +Hu3DModelClusterAttrSet = .text:0x80021324; // type:function size:0x44 +Hu3DModelClusterAttrReset = .text:0x80021368; // type:function size:0x44 +Hu3DModelCameraSet = .text:0x800213AC; // type:function size:0x2C +Hu3DModelLayerSet = .text:0x800213D8; // type:function size:0x6C +Hu3DModelObjPtrGet = .text:0x80021444; // type:function size:0xD8 +Hu3DModelTPLvlSet = .text:0x8002151C; // type:function size:0xF8 +Hu3DModelHiliteMapSet = .text:0x80021614; // type:function size:0x98 +Hu3DModelShadowSet = .text:0x800216AC; // type:function size:0xB0 +Hu3DModelShadowReset = .text:0x8002175C; // type:function size:0xA0 +Hu3DModelShadowDispOn = .text:0x800217FC; // type:function size:0x34 +Hu3DModelShadowDispOff = .text:0x80021830; // type:function size:0x34 +Hu3DModelShadowMapSet = .text:0x80021864; // type:function size:0x88 +Hu3DModelShadowMapObjSet = .text:0x800218EC; // type:function size:0xBC +Hu3DModelAmbSet = .text:0x800219A8; // type:function size:0x34 +Hu3DModelHookSet = .text:0x800219DC; // type:function size:0xEC +Hu3DModelHookReset = .text:0x80021AC8; // type:function size:0xB4 +Hu3DModelHookObjReset = .text:0x80021B7C; // type:function size:0xF0 +Hu3DModelProjectionSet = .text:0x80021C6C; // type:function size:0x44 +Hu3DModelProjectionReset = .text:0x80021CB0; // type:function size:0x44 +Hu3DModelHiliteTypeSet = .text:0x80021CF4; // type:function size:0xBC +Hu3DModelReflectTypeSet = .text:0x80021DB0; // type:function size:0x30 +Hu3DCameraCreate = .text:0x80021DE0; // type:function size:0x134 +Hu3DCameraPerspectiveSet = .text:0x80021F14; // type:function size:0x80 +Hu3DCameraViewportSet = .text:0x80021F94; // type:function size:0x88 +Hu3DCameraScissorSet = .text:0x8002201C; // type:function size:0x90 +Hu3DCameraPosSet = .text:0x800220AC; // type:function size:0x98 +Hu3DCameraPosSetV = .text:0x80022144; // type:function size:0xB8 +Hu3DCameraKill = .text:0x800221FC; // type:function size:0x78 +Hu3DCameraAllKill = .text:0x80022274; // type:function size:0xD0 +Hu3DCameraSet = .text:0x80022344; // type:function size:0xDC +Hu3DModelCameraInfoSet = .text:0x80022420; // type:function size:0x3C0 +Hu3DModelCameraCreate = .text:0x800227E0; // type:function size:0x88 +Hu3DCameraMotionOn = .text:0x80022868; // type:function size:0x58 +Hu3DCameraMotionStart = .text:0x800228C0; // type:function size:0xD4 +Hu3DCameraMotionOff = .text:0x80022994; // type:function size:0x34 +Hu3DLighInit = .text:0x800229C8; // type:function size:0x74 +Hu3DGLightCreate = .text:0x80022A3C; // type:function size:0xA0 +Hu3DGLightCreateV = .text:0x80022ADC; // type:function size:0x104 +Hu3DLLightCreate = .text:0x80022BE0; // type:function size:0xA8 +Hu3DLLightCreateV = .text:0x80022C88; // type:function size:0x17C +Hu3DGLightSpotSet = .text:0x80022E04; // type:function size:0x44 +Hu3DLLightSpotSet = .text:0x80022E48; // type:function size:0x6C +Hu3DGLightInfinitytSet = .text:0x80022EB4; // type:function size:0x48 +Hu3DLLightInfinitytSet = .text:0x80022EFC; // type:function size:0x70 +Hu3DGLightPointSet = .text:0x80022F6C; // type:function size:0x58 +Hu3DLLightPointSet = .text:0x80022FC4; // type:function size:0x80 +Hu3DGLightKill = .text:0x80023044; // type:function size:0x20 +Hu3DLLightKill = .text:0x80023064; // type:function size:0xBC +Hu3DLightAllKill = .text:0x80023120; // type:function size:0x68 +Hu3DGLightColorSet = .text:0x80023188; // type:function size:0x38 +Hu3DLLightColorSet = .text:0x800231C0; // type:function size:0x60 +Hu3DGLightPosSetV = .text:0x80023220; // type:function size:0x70 +Hu3DLLightPosSetV = .text:0x80023290; // type:function size:0x9C +Hu3DGLightPosSet = .text:0x8002332C; // type:function size:0x90 +Hu3DLLightPosSet = .text:0x800233BC; // type:function size:0xBC +Hu3DGLightPosAimSetV = .text:0x80023478; // type:function size:0x80 +Hu3DLLightPosAimSetV = .text:0x800234F8; // type:function size:0xAC +Hu3DGLightPosAimSet = .text:0x800235A4; // type:function size:0xC4 +Hu3DLLightPosAimSet = .text:0x80023668; // type:function size:0xF0 +Hu3DGLightStaticSet = .text:0x80023758; // type:function size:0x54 +Hu3DLLightStaticSet = .text:0x800237AC; // type:function size:0x7C +Hu3DModelLightInfoSet = .text:0x80023828; // type:function size:0x4D0 +Hu3DLightSet = .text:0x80023CF8; // type:function size:0x130 +lightSet = .text:0x80023E28; // type:function size:0x254 +Hu3DReflectMapSet = .text:0x8002407C; // type:function size:0x68 +Hu3DReflectNoSet = .text:0x800240E4; // type:function size:0x8 +Hu3DFogSet = .text:0x800240EC; // type:function size:0x60 +Hu3DFogClear = .text:0x8002414C; // type:function size:0x74 +Hu3DShadowCreate = .text:0x800241C0; // type:function size:0x188 +Hu3DShadowPosSet = .text:0x80024348; // type:function size:0x64 +Hu3DShadowTPLvlSet = .text:0x800243AC; // type:function size:0x2C +Hu3DShadowSizeSet = .text:0x800243D8; // type:function size:0x78 +Hu3DShadowExec = .text:0x80024450; // type:function size:0x860 +Hu3DProjectionCreate = .text:0x80024CB0; // type:function size:0x130 +Hu3DProjectionKill = .text:0x80024DE0; // type:function size:0x60 +Hu3DProjectionPosSet = .text:0x80024E40; // type:function size:0x88 +Hu3DProjectionTPLvlSet = .text:0x80024EC8; // type:function size:0x38 +Hu3DMipMapSet = .text:0x80024F00; // type:function size:0x1E8 +Hu3DMotionInit = .text:0x800250E8; // type:function size:0x48 +Hu3DMotionCreate = .text:0x80025130; // type:function size:0xA4 +Hu3DMotionModelCreate = .text:0x800251D4; // type:function size:0xC4 +Hu3DMotionKill = .text:0x80025298; // type:function size:0x114 +Hu3DMotionAllKill = .text:0x800253AC; // type:function size:0x11C +Hu3DMotionSet = .text:0x800254C8; // type:function size:0xBC +Hu3DMotionOverlaySet = .text:0x80025584; // type:function size:0x54 +Hu3DMotionOverlayReset = .text:0x800255D8; // type:function size:0x20 +Hu3DMotionOverlayTimeGet = .text:0x800255F8; // type:function size:0x1C +Hu3DMotionOverlayTimeSet = .text:0x80025614; // type:function size:0x1C +Hu3DMotionOverlaySpeedSet = .text:0x80025630; // type:function size:0x1C +Hu3DMotionShiftSet = .text:0x8002564C; // type:function size:0x1F4 +Hu3DMotionShapeSet = .text:0x80025840; // type:function size:0xBC +Hu3DMotionShapeIDGet = .text:0x800258FC; // type:function size:0x1C +Hu3DMotionShapeSpeedSet = .text:0x80025918; // type:function size:0x2C +Hu3DMotionShapeTimeSet = .text:0x80025944; // type:function size:0x1C +Hu3DMotionShapeMaxTimeGet = .text:0x80025960; // type:function size:0x44 +Hu3DMotionShapeStartEndSet = .text:0x800259A4; // type:function size:0x30 +Hu3DMotionClusterSet = .text:0x800259D4; // type:function size:0x114 +Hu3DMotionClusterNoSet = .text:0x80025AE8; // type:function size:0xD0 +Hu3DMotionShapeReset = .text:0x80025BB8; // type:function size:0x20 +Hu3DMotionClusterReset = .text:0x80025BD8; // type:function size:0xC8 +Hu3DMotionIDGet = .text:0x80025CA0; // type:function size:0x2C +Hu3DMotionShiftIDGet = .text:0x80025CCC; // type:function size:0x2C +Hu3DMotionTimeSet = .text:0x80025CF8; // type:function size:0xF4 +Hu3DMotionTimeGet = .text:0x80025DEC; // type:function size:0x2C +Hu3DMotionShiftTimeGet = .text:0x80025E18; // type:function size:0x2C +Hu3DMotionMaxTimeGet = .text:0x80025E44; // type:function size:0xA8 +Hu3DMotionShiftMaxTimeGet = .text:0x80025EEC; // type:function size:0xA8 +Hu3DMotionShiftStartEndSet = .text:0x80025F94; // type:function size:0x30 +Hu3DMotionMotionMaxTimeGet = .text:0x80025FC4; // type:function size:0x8C +Hu3DMotionStartEndSet = .text:0x80026050; // type:function size:0x30 +Hu3DMotionEndCheck = .text:0x80026080; // type:function size:0x170 +Hu3DMotionSpeedSet = .text:0x800261F0; // type:function size:0x2C +Hu3DMotionShiftSpeedSet = .text:0x8002621C; // type:function size:0x2C +Hu3DMotionNoMotSet = .text:0x80026248; // type:function size:0x114 +Hu3DMotionNoMotReset = .text:0x8002635C; // type:function size:0x5C +Hu3DMotionForceSet = .text:0x800263B8; // type:function size:0x108 +Hu3DMotionNext = .text:0x800264C0; // type:function size:0x798 +Hu3DMotionExec = .text:0x80026C58; // type:function size:0x534 +Hu3DCameraMotionExec = .text:0x8002718C; // type:function size:0xC0 +Hu3DSubMotionExec = .text:0x8002724C; // type:function size:0x2A8 +GetObjTRXPtr = .text:0x800274F4; // type:function size:0x14C +SetObjMatMotion = .text:0x80027640; // type:function size:0x208 +SetObjAttrMotion = .text:0x80027848; // type:function size:0x218 +SetObjCameraMotion = .text:0x80027A60; // type:function size:0x558 +SetObjLightMotion = .text:0x80027FB8; // type:function size:0x1D8 +GetCurve = .text:0x80028190; // type:function size:0xD8 +GetConstant = .text:0x80028268; // type:function size:0x70 +GetLinear = .text:0x800282D8; // type:function size:0x110 +GetBezier = .text:0x800283E8; // type:function size:0x200 +GetBitMap = .text:0x800285E8; // type:function size:0x64 +Hu3DJointMotion = .text:0x8002864C; // type:function size:0xCC +JointModel_Motion = .text:0x80028718; // type:function size:0x124 +Hu3DMotionCalc = .text:0x8002883C; // type:function size:0x19C +SearchObjectIndex = .text:0x800289D8; // type:function size:0x90 scope:local +SearchAttributeIndex = .text:0x80028A68; // type:function size:0x9C scope:local +Hu3DAnimInit = .text:0x80028B04; // type:function size:0x7C +Hu3DAnimCreate = .text:0x80028B80; // type:function size:0x1D0 +Hu3DAnimLink = .text:0x80028D50; // type:function size:0x1C4 +Hu3DAnimKill = .text:0x80028F14; // type:function size:0x104 +Hu3DAnimModelKill = .text:0x80029018; // type:function size:0x13C +Hu3DAnimAllKill = .text:0x80029154; // type:function size:0x134 +Hu3DAnimAttrSet = .text:0x80029288; // type:function size:0x34 +Hu3DAnimAttrReset = .text:0x800292BC; // type:function size:0x38 +Hu3DAnimSpeedSet = .text:0x800292F4; // type:function size:0x2C +Hu3DAnimBankSet = .text:0x80029320; // type:function size:0x48 +Hu3DAnmNoSet = .text:0x80029368; // type:function size:0x38 +Hu3DAnimSet = .text:0x800293A0; // type:function size:0x240 +Hu3DAnimExec = .text:0x800295E0; // type:function size:0x474 +Hu3DTexScrollCreate = .text:0x80029A54; // type:function size:0x1AC +Hu3DTexScrollKill = .text:0x80029C00; // type:function size:0xE0 +Hu3DTexScrollAllKill = .text:0x80029CE0; // type:function size:0x10C +Hu3DTexScrollPosSet = .text:0x80029DEC; // type:function size:0x44 +Hu3DTexScrollPosMoveSet = .text:0x80029E30; // type:function size:0xA4 +Hu3DTexScrollRotSet = .text:0x80029ED4; // type:function size:0x3C +Hu3DTexScrollRotMoveSet = .text:0x80029F10; // type:function size:0x5C +Hu3DTexScrollPauseDisableSet = .text:0x80029F6C; // type:function size:0x54 +Hu3DParticleCreate = .text:0x80029FC0; // type:function size:0x348 +Hu3DParticleScaleSet = .text:0x8002A308; // type:function size:0x6C +Hu3DParticleZRotSet = .text:0x8002A374; // type:function size:0x6C +Hu3DParticleColSet = .text:0x8002A3E0; // type:function size:0x74 +Hu3DParticleTPLvlSet = .text:0x8002A454; // type:function size:0x80 +Hu3DParticleBlendModeSet = .text:0x8002A4D4; // type:function size:0x38 +Hu3DParticleHookSet = .text:0x8002A50C; // type:function size:0x38 +Hu3DParticleAttrSet = .text:0x8002A544; // type:function size:0x40 +Hu3DParticleAttrReset = .text:0x8002A584; // type:function size:0x44 +Hu3DParticleCntSet = .text:0x8002A5C8; // type:function size:0x3C +Hu3DParticleAnimModeSet = .text:0x8002A604; // type:function size:0x60 +_Hu3DParticleAttrReset = .text:0x8002A664; // type:function size:0xAD4 scope:local +Hu3DParManInit = .text:0x8002B138; // type:function size:0x48 +Hu3DParManCreate = .text:0x8002B180; // type:function size:0x1D4 +Hu3DParManLink = .text:0x8002B354; // type:function size:0x17C +Hu3DParManKill = .text:0x8002B4D0; // type:function size:0x190 +Hu3DParManAllKill = .text:0x8002B660; // type:function size:0x1C4 +Hu3DParManPtrGet = .text:0x8002B824; // type:function size:0x20 +Hu3DParManPosSet = .text:0x8002B844; // type:function size:0x3C +Hu3DParManVecSet = .text:0x8002B880; // type:function size:0x3C +Hu3DParManRotSet = .text:0x8002B8BC; // type:function size:0x7C +Hu3DParManAttrSet = .text:0x8002B938; // type:function size:0x40 +Hu3DParManAttrReset = .text:0x8002B978; // type:function size:0x40 +Hu3DParManModelIDGet = .text:0x8002B9B8; // type:function size:0x34 +Hu3DParManTimeLimitSet = .text:0x8002B9EC; // type:function size:0x38 +Hu3DParManVacumeSet = .text:0x8002BA24; // type:function size:0x74 +Hu3DParManColorSet = .text:0x8002BA98; // type:function size:0x68 +ParManFunc = .text:0x8002BB00; // type:function size:0xBC0 scope:local +ParManHook = .text:0x8002C6C0; // type:function size:0x4B4 scope:local +CamMotionEx2 = .text:0x8002CB74; // type:function size:0xAC +CamMotionEx = .text:0x8002CC20; // type:function size:0xA14 +SetObjCamMotion = .text:0x8002D634; // type:function size:0x244 scope:local +InterpolateBMLine = .text:0x8002D878; // type:function size:0x40C +Hu3D2Dto3D = .text:0x8002DC84; // type:function size:0x1D4 +Hu3D3Dto2D = .text:0x8002DE58; // type:function size:0x1D0 +Hu3DMtxTransGet = .text:0x8002E028; // type:function size:0x1C +Hu3DMtxRotGet = .text:0x8002E044; // type:function size:0x540 +Hu3DMtxScaleGet = .text:0x8002E584; // type:function size:0x1C8 +HuPerfInit = .text:0x8002E74C; // type:function size:0x94 +HuPerfCreate = .text:0x8002E7E0; // type:function size:0x130 +HuPerfZero = .text:0x8002E910; // type:function size:0x40 +HuPerfBegin = .text:0x8002E950; // type:function size:0x7C +HuPerfEnd = .text:0x8002E9CC; // type:function size:0xA0 +DSCallbackFunc = .text:0x8002EA6C; // type:function size:0x16C scope:local +omMasterInit = .text:0x8002EBD8; // type:function size:0x90 +omWatchOverlayProc = .text:0x8002EC68; // type:function size:0x170 scope:local +omOvlCallEx = .text:0x8002EDD8; // type:function size:0xE8 +omOvlGotoEx = .text:0x8002EEC0; // type:function size:0x60 +omOvlReturnEx = .text:0x8002EF20; // type:function size:0xF4 +omOvlKill = .text:0x8002F014; // type:function size:0xB8 +omOvlHisChg = .text:0x8002F0CC; // type:function size:0xA0 +omOvlHisGet = .text:0x8002F16C; // type:function size:0x78 +omInitObjMan = .text:0x8002F1E4; // type:function size:0x220 +omDestroyObjMan = .text:0x8002F404; // type:function size:0x50 +omAddObjEx = .text:0x8002F454; // type:function size:0x1DC +omInsertObj = .text:0x8002F630; // type:function size:0xF8 +omAddMember = .text:0x8002F728; // type:function size:0x84 +omDelObjEx = .text:0x8002F7AC; // type:function size:0x190 +omDelMember = .text:0x8002F93C; // type:function size:0x88 +omMakeGroupEx = .text:0x8002F9C4; // type:function size:0xFC +omGetGroupMemberListEx = .text:0x8002FAC0; // type:function size:0x2C +omSetStatBit = .text:0x8002FAEC; // type:function size:0x10 +omResetStatBit = .text:0x8002FAFC; // type:function size:0x14 +omSetTra = .text:0x8002FB10; // type:function size:0x10 +omSetRot = .text:0x8002FB20; // type:function size:0x10 +omSetSca = .text:0x8002FB30; // type:function size:0x10 +omMain = .text:0x8002FB40; // type:function size:0x2F8 +omAllPause = .text:0x8002FE38; // type:function size:0xE0 +omPauseChk = .text:0x8002FF18; // type:function size:0x2C +omCurrentOvlGet = .text:0x8002FF44; // type:function size:0x8 +OSPanic = .text:0x8002FF4C; // type:function size:0x150 +HuFaultInitXfbDirectDraw = .text:0x8003009C; // type:function size:0x118 +HuFaultSetXfbAddress = .text:0x800301B4; // type:function size:0x34 +XFB_WriteBackCache = .text:0x800301E8; // type:function size:0x98 scope:local +XFB_CR = .text:0x80030280; // type:function size:0x50 scope:local +XFB_puts = .text:0x800302D0; // type:function size:0xF4 scope:local +XFB_putcS = .text:0x800303C4; // type:function size:0x150 scope:local +XFB_putcProgressive = .text:0x80030514; // type:function size:0x1F0 scope:local +XFB_putcInterlace = .text:0x80030704; // type:function size:0x1B4 scope:local +GWInit = .text:0x800308B8; // type:function size:0x14C +GWGameStatReset = .text:0x80030A04; // type:function size:0x318 +GWMessDelayGet = .text:0x80030D1C; // type:function size:0x4C +GWMGRecordSet = .text:0x80030D68; // type:function size:0x54 +GWMGRecordGet = .text:0x80030DBC; // type:function size:0x18 +GWCharColorGet = .text:0x80030DD4; // type:function size:0x140 +GWBoardPlayCountSet = .text:0x80030F14; // type:function size:0x24 +GWBoardPlayCountAdd = .text:0x80030F38; // type:function size:0x38 +GWBoardPlayCountGet = .text:0x80030F70; // type:function size:0x14 +GWBoardMaxStarsSet = .text:0x80030F84; // type:function size:0x1C +GWBoardMaxStarsGet = .text:0x80030FA0; // type:function size:0x18 +GWBoardMaxCoinsSet = .text:0x80030FB8; // type:function size:0x1C +GWBoardMaxCoinsGet = .text:0x80030FD4; // type:function size:0x18 +GWBoardWinCountInc = .text:0x80030FEC; // type:function size:0x5C +GWBoardWinCountGet = .text:0x80031048; // type:function size:0x1C +GWBoardWinCountSet = .text:0x80031064; // type:function size:0x20 +GWMGAvailGet = .text:0x80031084; // type:function size:0x6C +GWMGAvailSet = .text:0x800310F0; // type:function size:0x5C +GWMGCustomGet = .text:0x8003114C; // type:function size:0x6C +GWMGCustomSet = .text:0x800311B8; // type:function size:0x5C +GWMGCustomReset = .text:0x80031214; // type:function size:0x60 +GWCoinsGet = .text:0x80031274; // type:function size:0x18 +GWCoinsSet = .text:0x8003128C; // type:function size:0xB0 +GWCoinsAdd = .text:0x8003133C; // type:function size:0xD0 +GWStarsSet = .text:0x8003140C; // type:function size:0x6C +GWStarsAdd = .text:0x80031478; // type:function size:0x94 +GWStarsGet = .text:0x8003150C; // type:function size:0x18 +GWTotalStarsSet = .text:0x80031524; // type:function size:0x34 +GWTotalStarsAdd = .text:0x80031558; // type:function size:0x54 +GWTotalStarsGet = .text:0x800315AC; // type:function size:0x10 +omOutView = .text:0x800315BC; // type:function size:0x238 +omOutViewMulti = .text:0x800317F4; // type:function size:0x2C4 +omSystemKeyCheckSetup = .text:0x80031AB8; // type:function size:0x74 +omSystemKeyCheck = .text:0x80031B2C; // type:function size:0x230 +omSysPauseEnable = .text:0x80031D5C; // type:function size:0x8 +omSysPauseCtrl = .text:0x80031D64; // type:function size:0x50 +omDLLDBGOut = .text:0x80031DB4; // type:function size:0x2C +omDLLInit = .text:0x80031DE0; // type:function size:0x6C +omDLLStart = .text:0x80031E4C; // type:function size:0x154 +omDLLNumEnd = .text:0x80031FA0; // type:function size:0xB4 +omDLLEnd = .text:0x80032054; // type:function size:0x13C +omDLLLink = .text:0x80032190; // type:function size:0x138 +omDLLUnlink = .text:0x800322C8; // type:function size:0xB4 +omDLLSearch = .text:0x8003237C; // type:function size:0xC8 +omDLLInfoDump = .text:0x80032444; // type:function size:0xD0 +omDLLHeaderDump = .text:0x80032514; // type:function size:0xE0 +frand = .text:0x800325F4; // type:function size:0xAC +frandf = .text:0x800326A0; // type:function size:0xD8 +frandmod = .text:0x80032778; // type:function size:0xB8 +HuAudInit = .text:0x80032830; // type:function size:0x170 +HuAudStreamPlay = .text:0x800329A0; // type:function size:0x8 +HuAudStreamVolSet = .text:0x800329A8; // type:function size:0x3C +HuAudStreamPauseOn = .text:0x800329E4; // type:function size:0x24 +HuAudStreamPauseOff = .text:0x80032A08; // type:function size:0x24 +HuAudStreamFadeOut = .text:0x80032A2C; // type:function size:0x4 +HuAudAllStop = .text:0x80032A30; // type:function size:0x28 +HuAudFadeOut = .text:0x80032A58; // type:function size:0x3C +HuAudFXPlay = .text:0x80032A94; // type:function size:0x80 +HuAudFXPlayVol = .text:0x80032B14; // type:function size:0x48 +HuAudFXPlayVolPan = .text:0x80032B5C; // type:function size:0x68 +HuAudFXStop = .text:0x80032BC4; // type:function size:0x2C +HuAudFXAllStop = .text:0x80032BF0; // type:function size:0x28 +HuAudFXFadeOut = .text:0x80032C18; // type:function size:0x30 +HuAudFXPanning = .text:0x80032C48; // type:function size:0x50 +HuAudFXListnerSet = .text:0x80032C98; // type:function size:0xA4 +HuAudFXListnerSetEX = .text:0x80032D3C; // type:function size:0x134 +HuAudFXListnerUpdate = .text:0x80032E70; // type:function size:0x3C +HuAudFXEmiterPlay = .text:0x80032EAC; // type:function size:0x6C +HuAudFXEmiterUpDate = .text:0x80032F18; // type:function size:0x64 +HuAudFXListnerKill = .text:0x80032F7C; // type:function size:0x20 +HuAudFXPauseAll = .text:0x80032F9C; // type:function size:0x2C +HuAudFXStatusGet = .text:0x80032FC8; // type:function size:0x28 +HuAudFXPitchSet = .text:0x80032FF0; // type:function size:0x54 +HuAudFXVolSet = .text:0x80033044; // type:function size:0x58 +HuAudSeqPlay = .text:0x8003309C; // type:function size:0x5C +HuAudSeqStop = .text:0x800330F8; // type:function size:0x48 +HuAudSeqFadeOut = .text:0x80033140; // type:function size:0x3C +HuAudSeqAllFadeOut = .text:0x8003317C; // type:function size:0x5C +HuAudSeqAllStop = .text:0x800331D8; // type:function size:0x28 +HuAudSeqPauseAll = .text:0x80033200; // type:function size:0x2C +HuAudSeqPause = .text:0x8003322C; // type:function size:0x54 +HuAudSeqMidiCtrlGet = .text:0x80033280; // type:function size:0x60 +HuAudSStreamPlay = .text:0x800332E0; // type:function size:0x64 +HuAudSStreamStop = .text:0x80033344; // type:function size:0x38 +HuAudSStreamFadeOut = .text:0x8003337C; // type:function size:0x3C +HuAudSStreamAllFadeOut = .text:0x800333B8; // type:function size:0x28 +HuAudSStreamAllStop = .text:0x800333E0; // type:function size:0x24 +HuAudSStreamStatGet = .text:0x80033404; // type:function size:0x28 +HuAudDllSndGrpSet = .text:0x8003342C; // type:function size:0x104 +HuAudSndGrpSetSet = .text:0x80033530; // type:function size:0x1A4 +HuAudSndGrpSet = .text:0x800336D4; // type:function size:0x60 +HuAudSndCommonGrpSet = .text:0x80033734; // type:function size:0x154 +HuAudAUXSet = .text:0x80033888; // type:function size:0x58 +HuAudAUXVolSet = .text:0x800338E0; // type:function size:0xC +HuAudVoiceInit = .text:0x800338EC; // type:function size:0x294 +HuAudPlayerVoicePlay = .text:0x80033B80; // type:function size:0x50 +HuAudPlayerVoicePlayPos = .text:0x80033BD0; // type:function size:0x58 +HuAudPlayerVoicePlayEntry = .text:0x80033C28; // type:function size:0x50 +HuAudCharVoicePlay = .text:0x80033C78; // type:function size:0xAC +HuAudCharVoicePlayPos = .text:0x80033D24; // type:function size:0xD0 +HuAudCharVoicePlayEntry = .text:0x80033DF4; // type:function size:0x90 +HuSePlay = .text:0x80033E84; // type:function size:0x68 scope:local +InitEnvelope = .text:0x80033EEC; // type:function size:0x1A4 +SetEnvelopMtx = .text:0x80034090; // type:function size:0x23C scope:local +EnvelopeProc = .text:0x800342CC; // type:function size:0x80 +InitVtxParm = .text:0x8003434C; // type:function size:0x50 +SetEnvelopMain = .text:0x8003439C; // type:function size:0x158 scope:local +SetEnvelop = .text:0x800344F4; // type:function size:0x9F0 scope:local +SetMtx = .text:0x80034EE4; // type:function size:0x334 scope:local +SetRevMtx = .text:0x80035218; // type:function size:0x11C scope:local +SearchSklenton = .text:0x80035334; // type:function size:0x78 scope:local +MGSeqInit = .text:0x800353AC; // type:function size:0xBC +MGSeqMain = .text:0x80035468; // type:function size:0x188 +CreateSeq = .text:0x800355F0; // type:function size:0x1A4 scope:local +MGSeqCreate = .text:0x80035794; // type:function size:0x100 +MGSeqStatGet = .text:0x80035894; // type:function size:0x88 +MGSeqPosSet = .text:0x8003591C; // type:function size:0x4C +MGSeqParamSet = .text:0x80035968; // type:function size:0x4C +MGSeqKill = .text:0x800359B4; // type:function size:0x58 +MGSeqKillAll = .text:0x80035A0C; // type:function size:0x3C +MGSeqDoneCheck = .text:0x80035A48; // type:function size:0xA4 +MGSeqStub = .text:0x80035AEC; // type:function size:0x4 +MGSeqSprKill = .text:0x80035AF0; // type:function size:0x8C +SeqInitTimer = .text:0x80035B7C; // type:function size:0x2E0 scope:local +SeqUpdateTimer = .text:0x80035E5C; // type:function size:0x69C scope:local +SeqInitType2 = .text:0x800364F8; // type:function size:0x3D8 scope:local +SeqUpdateType2 = .text:0x800368D0; // type:function size:0x2F8 scope:local fn_80036BC8 = .text:0x80036BC8; // type:function size:0x188 -fn_80036D50 = .text:0x80036D50; // type:function size:0x1E4 -fn_80036F34 = .text:0x80036F34; // type:function size:0x23C -fn_80037170 = .text:0x80037170; // type:function size:0x194 -fn_80037304 = .text:0x80037304; // type:function size:0x9D0 -fn_80037CD4 = .text:0x80037CD4; // type:function size:0x2A4 -fn_80037F78 = .text:0x80037F78; // type:function size:0xDA4 -fn_80038D1C = .text:0x80038D1C; // type:function size:0xDA4 -fn_80039AC0 = .text:0x80039AC0; // type:function size:0xBB8 -fn_8003A678 = .text:0x8003A678; // type:function size:0xAB4 -fn_8003B12C = .text:0x8003B12C; // type:function size:0x3C4 -fn_8003B4F0 = .text:0x8003B4F0; // type:function size:0x91C -fn_8003BE0C = .text:0x8003BE0C; // type:function size:0xC84 -fn_8003CA90 = .text:0x8003CA90; // type:function size:0xDC -fn_8003CB6C = .text:0x8003CB6C; // type:function size:0x3DC -fn_8003CF48 = .text:0x8003CF48; // type:function size:0x6B8 -fn_8003D600 = .text:0x8003D600; // type:function size:0x708 -fn_8003DD08 = .text:0x8003DD08; // type:function size:0x774 -fn_8003E47C = .text:0x8003E47C; // type:function size:0x304 -fn_8003E780 = .text:0x8003E780; // type:function size:0x6C -fn_8003E7EC = .text:0x8003E7EC; // type:function size:0x94C -fn_8003F138 = .text:0x8003F138; // type:function size:0xC -fn_8003F144 = .text:0x8003F144; // type:function size:0x40 -fn_8003F184 = .text:0x8003F184; // type:function size:0xDC -fn_8003F260 = .text:0x8003F260; // type:function size:0x234 -fn_8003F494 = .text:0x8003F494; // type:function size:0xD4 -fn_8003F568 = .text:0x8003F568; // type:function size:0x128 -fn_8003F690 = .text:0x8003F690; // type:function size:0xA0 -fn_8003F730 = .text:0x8003F730; // type:function size:0x1B0 -fn_8003F8E0 = .text:0x8003F8E0; // type:function size:0x98 -fn_8003F978 = .text:0x8003F978; // type:function size:0x8 -fn_8003F980 = .text:0x8003F980; // type:function size:0x44 -fn_8003F9C4 = .text:0x8003F9C4; // type:function size:0x44 -fn_8003FA08 = .text:0x8003FA08; // type:function size:0x48 -fn_8003FA50 = .text:0x8003FA50; // type:function size:0x48 -fn_8003FA98 = .text:0x8003FA98; // type:function size:0x50 -fn_8003FAE8 = .text:0x8003FAE8; // type:function size:0x50 -fn_8003FB38 = .text:0x8003FB38; // type:function size:0x48 -fn_8003FB80 = .text:0x8003FB80; // type:function size:0x48 -fn_8003FBC8 = .text:0x8003FBC8; // type:function size:0x58 -fn_8003FC20 = .text:0x8003FC20; // type:function size:0x48 -fn_8003FC68 = .text:0x8003FC68; // type:function size:0x48 -fn_8003FCB0 = .text:0x8003FCB0; // type:function size:0x48 -fn_8003FCF8 = .text:0x8003FCF8; // type:function size:0x48 -fn_8003FD40 = .text:0x8003FD40; // type:function size:0x268 -fn_8003FFA8 = .text:0x8003FFA8; // type:function size:0x12C -fn_800400D4 = .text:0x800400D4; // type:function size:0x78 -fn_8004014C = .text:0x8004014C; // type:function size:0x98 -fn_800401E4 = .text:0x800401E4; // type:function size:0xF4 -fn_800402D8 = .text:0x800402D8; // type:function size:0xA8 -fn_80040380 = .text:0x80040380; // type:function size:0xA8 -fn_80040428 = .text:0x80040428; // type:function size:0x3A0 -fn_800407C8 = .text:0x800407C8; // type:function size:0x160 -fn_80040928 = .text:0x80040928; // type:function size:0x210 -fn_80040B38 = .text:0x80040B38; // type:function size:0x36C -fn_80040EA4 = .text:0x80040EA4; // type:function size:0xA4 -fn_80040F48 = .text:0x80040F48; // type:function size:0xB4 -fn_80040FFC = .text:0x80040FFC; // type:function size:0x288 -fn_80041284 = .text:0x80041284; // type:function size:0x12C -fn_800413B0 = .text:0x800413B0; // type:function size:0x28 -fn_800413D8 = .text:0x800413D8; // type:function size:0x10 -fn_800413E8 = .text:0x800413E8; // type:function size:0x8 -fn_800413F0 = .text:0x800413F0; // type:function size:0xFC -fn_800414EC = .text:0x800414EC; // type:function size:0x31C -fn_80041808 = .text:0x80041808; // type:function size:0x184 -fn_8004198C = .text:0x8004198C; // type:function size:0x4C8 -fn_80041E54 = .text:0x80041E54; // type:function size:0x74 -fn_80041EC8 = .text:0x80041EC8; // type:function size:0x214 -fn_800420DC = .text:0x800420DC; // type:function size:0x54C -fn_80042628 = .text:0x80042628; // type:function size:0xA4 -fn_800426CC = .text:0x800426CC; // type:function size:0x1AC -fn_80042878 = .text:0x80042878; // type:function size:0x7D0 -fn_80043048 = .text:0x80043048; // type:function size:0x480 -fn_800434C8 = .text:0x800434C8; // type:function size:0xF4 -fn_800435BC = .text:0x800435BC; // type:function size:0x1044 -fn_80044600 = .text:0x80044600; // type:function size:0x54 -fn_80044654 = .text:0x80044654; // type:function size:0x90 -fn_800446E4 = .text:0x800446E4; // type:function size:0xA4 -fn_80044788 = .text:0x80044788; // type:function size:0x88 -fn_80044810 = .text:0x80044810; // type:function size:0x10C -fn_8004491C = .text:0x8004491C; // type:function size:0x1A4 -fn_80044AC0 = .text:0x80044AC0; // type:function size:0x80 -fn_80044B40 = .text:0x80044B40; // type:function size:0xA90 -fn_800455D0 = .text:0x800455D0; // type:function size:0x68 -fn_80045638 = .text:0x80045638; // type:function size:0xE8 -fn_80045720 = .text:0x80045720; // type:function size:0x6C -fn_8004578C = .text:0x8004578C; // type:function size:0x6C -fn_800457F8 = .text:0x800457F8; // type:function size:0x58 -fn_80045850 = .text:0x80045850; // type:function size:0xAC -fn_800458FC = .text:0x800458FC; // type:function size:0x4C -fn_80045948 = .text:0x80045948; // type:function size:0x64 -fn_800459AC = .text:0x800459AC; // type:function size:0xB8 -fn_80045A64 = .text:0x80045A64; // type:function size:0x34 -fn_80045A98 = .text:0x80045A98; // type:function size:0x34 -fn_80045ACC = .text:0x80045ACC; // type:function size:0x2C -fn_80045AF8 = .text:0x80045AF8; // type:function size:0x3C -fn_80045B34 = .text:0x80045B34; // type:function size:0x58 -fn_80045B8C = .text:0x80045B8C; // type:function size:0x50 -fn_80045BDC = .text:0x80045BDC; // type:function size:0x60 -fn_80045C3C = .text:0x80045C3C; // type:function size:0x2C -fn_80045C68 = .text:0x80045C68; // type:function size:0xC4 -fn_80045D2C = .text:0x80045D2C; // type:function size:0xC8 -fn_80045DF4 = .text:0x80045DF4; // type:function size:0xD8 -fn_80045ECC = .text:0x80045ECC; // type:function size:0x27C -fn_80046148 = .text:0x80046148; // type:function size:0x2C -fn_80046174 = .text:0x80046174; // type:function size:0x38 -fn_800461AC = .text:0x800461AC; // type:function size:0x40 -fn_800461EC = .text:0x800461EC; // type:function size:0x50 -fn_8004623C = .text:0x8004623C; // type:function size:0x8C -fn_800462C8 = .text:0x800462C8; // type:function size:0xF0 -fn_800463B8 = .text:0x800463B8; // type:function size:0x88 -fn_80046440 = .text:0x80046440; // type:function size:0x6C -fn_800464AC = .text:0x800464AC; // type:function size:0x38 -fn_800464E4 = .text:0x800464E4; // type:function size:0x68 -fn_8004654C = .text:0x8004654C; // type:function size:0x90 -fn_800465DC = .text:0x800465DC; // type:function size:0x90 -fn_8004666C = .text:0x8004666C; // type:function size:0xC0 -fn_8004672C = .text:0x8004672C; // type:function size:0x44 -fn_80046770 = .text:0x80046770; // type:function size:0x98 -fn_80046808 = .text:0x80046808; // type:function size:0x1D4 -fn_800469DC = .text:0x800469DC; // type:function size:0x10 -fn_800469EC = .text:0x800469EC; // type:function size:0x170 -fn_80046B5C = .text:0x80046B5C; // type:function size:0x54 -fn_80046BB0 = .text:0x80046BB0; // type:function size:0x8 -fn_80046BB8 = .text:0x80046BB8; // type:function size:0x114 -fn_80046CCC = .text:0x80046CCC; // type:function size:0x2A0 -fn_80046F6C = .text:0x80046F6C; // type:function size:0x1CC -fn_80047138 = .text:0x80047138; // type:function size:0x88 -fn_800471C0 = .text:0x800471C0; // type:function size:0x2C -fn_800471EC = .text:0x800471EC; // type:function size:0x34 -fn_80047220 = .text:0x80047220; // type:function size:0x38 -fn_80047258 = .text:0x80047258; // type:function size:0x4C -fn_800472A4 = .text:0x800472A4; // type:function size:0x228 -fn_800474CC = .text:0x800474CC; // type:function size:0x3B0 -fn_8004787C = .text:0x8004787C; // type:function size:0x304 -fn_80047B80 = .text:0x80047B80; // type:function size:0xA4 -fn_80047C24 = .text:0x80047C24; // type:function size:0x264 -fn_80047E88 = .text:0x80047E88; // type:function size:0xE8 -fn_80047F70 = .text:0x80047F70; // type:function size:0x34 -fn_80047FA4 = .text:0x80047FA4; // type:function size:0xC4 -fn_80048068 = .text:0x80048068; // type:function size:0x58 -fn_800480C0 = .text:0x800480C0; // type:function size:0xEC -fn_800481AC = .text:0x800481AC; // type:function size:0x28 -fn_800481D4 = .text:0x800481D4; // type:function size:0x50 -fn_80048224 = .text:0x80048224; // type:function size:0x1C -fn_80048240 = .text:0x80048240; // type:function size:0x70 -fn_800482B0 = .text:0x800482B0; // type:function size:0x68 -fn_80048318 = .text:0x80048318; // type:function size:0x100 -fn_80048418 = .text:0x80048418; // type:function size:0x38 -fn_80048450 = .text:0x80048450; // type:function size:0x50 -fn_800484A0 = .text:0x800484A0; // type:function size:0x40 -fn_800484E0 = .text:0x800484E0; // type:function size:0x4C -fn_8004852C = .text:0x8004852C; // type:function size:0x48 -fn_80048574 = .text:0x80048574; // type:function size:0x148 -fn_800486BC = .text:0x800486BC; // type:function size:0x16C -fn_80048828 = .text:0x80048828; // type:function size:0x16C -fn_80048994 = .text:0x80048994; // type:function size:0xA8 -fn_80048A3C = .text:0x80048A3C; // type:function size:0x160 -fn_80048B9C = .text:0x80048B9C; // type:function size:0x10 -fn_80048BAC = .text:0x80048BAC; // type:function size:0x2C -fn_80048BD8 = .text:0x80048BD8; // type:function size:0x140 -fn_80048D18 = .text:0x80048D18; // type:function size:0x2C -fn_80048D44 = .text:0x80048D44; // type:function size:0x1F0 -fn_80048F34 = .text:0x80048F34; // type:function size:0x44 -fn_80048F78 = .text:0x80048F78; // type:function size:0x8 -fn_80048F80 = .text:0x80048F80; // type:function size:0x58 -fn_80048FD8 = .text:0x80048FD8; // type:function size:0x68 -fn_80049040 = .text:0x80049040; // type:function size:0x390 -fn_800493D0 = .text:0x800493D0; // type:function size:0x10 -fn_800493E0 = .text:0x800493E0; // type:function size:0x134 -fn_80049514 = .text:0x80049514; // type:function size:0x1C -fn_80049530 = .text:0x80049530; // type:function size:0x98 -fn_800495C8 = .text:0x800495C8; // type:function size:0x58 -fn_80049620 = .text:0x80049620; // type:function size:0x428 -fn_80049A48 = .text:0x80049A48; // type:function size:0x3C -fn_80049A84 = .text:0x80049A84; // type:function size:0x180 -fn_80049C04 = .text:0x80049C04; // type:function size:0x20C -fn_80049E10 = .text:0x80049E10; // type:function size:0x173C -fn_8004B54C = .text:0x8004B54C; // type:function size:0xB0 -fn_8004B5FC = .text:0x8004B5FC; // type:function size:0x254 -fn_8004B850 = .text:0x8004B850; // type:function size:0xB0 -fn_8004B900 = .text:0x8004B900; // type:function size:0xB0 -fn_8004B9B0 = .text:0x8004B9B0; // type:function size:0xB0 -fn_8004BA60 = .text:0x8004BA60; // type:function size:0xB0 -fn_8004BB10 = .text:0x8004BB10; // type:function size:0xB0 -fn_8004BBC0 = .text:0x8004BBC0; // type:function size:0xB0 -fn_8004BC70 = .text:0x8004BC70; // type:function size:0x1CC -fn_8004BE3C = .text:0x8004BE3C; // type:function size:0x4A0 -fn_8004C2DC = .text:0x8004C2DC; // type:function size:0x1E8 -fn_8004C4C4 = .text:0x8004C4C4; // type:function size:0x344 -fn_8004C808 = .text:0x8004C808; // type:function size:0x1D0 -fn_8004C9D8 = .text:0x8004C9D8; // type:function size:0x88 -fn_8004CA60 = .text:0x8004CA60; // type:function size:0x9C -fn_8004CAFC = .text:0x8004CAFC; // type:function size:0x2B8 -fn_8004CDB4 = .text:0x8004CDB4; // type:function size:0x430 -fn_8004D1E4 = .text:0x8004D1E4; // type:function size:0x244 -fn_8004D428 = .text:0x8004D428; // type:function size:0x7C -fn_8004D4A4 = .text:0x8004D4A4; // type:function size:0x17C -fn_8004D620 = .text:0x8004D620; // type:function size:0x7C -fn_8004D69C = .text:0x8004D69C; // type:function size:0x7C -fn_8004D718 = .text:0x8004D718; // type:function size:0x4C -fn_8004D764 = .text:0x8004D764; // type:function size:0x44 -fn_8004D7A8 = .text:0x8004D7A8; // type:function size:0x44 -fn_8004D7EC = .text:0x8004D7EC; // type:function size:0x44 -fn_8004D830 = .text:0x8004D830; // type:function size:0x44 -fn_8004D874 = .text:0x8004D874; // type:function size:0x84 -fn_8004D8F8 = .text:0x8004D8F8; // type:function size:0x44 -fn_8004D93C = .text:0x8004D93C; // type:function size:0x4C -fn_8004D988 = .text:0x8004D988; // type:function size:0x80 -fn_8004DA08 = .text:0x8004DA08; // type:function size:0x1D4 -fn_8004DBDC = .text:0x8004DBDC; // type:function size:0x484 -fn_8004E060 = .text:0x8004E060; // type:function size:0x3FC -fn_8004E45C = .text:0x8004E45C; // type:function size:0x168 -fn_8004E5C4 = .text:0x8004E5C4; // type:function size:0x1A0 -fn_8004E764 = .text:0x8004E764; // type:function size:0x130 -fn_8004E894 = .text:0x8004E894; // type:function size:0x2B4 -fn_8004EB48 = .text:0x8004EB48; // type:function size:0xE4 -fn_8004EC2C = .text:0x8004EC2C; // type:function size:0x2B4 -fn_8004EEE0 = .text:0x8004EEE0; // type:function size:0x80 -fn_8004EF60 = .text:0x8004EF60; // type:function size:0xBC -fn_8004F01C = .text:0x8004F01C; // type:function size:0x4C -fn_8004F068 = .text:0x8004F068; // type:function size:0xB0 -fn_8004F118 = .text:0x8004F118; // type:function size:0x2CC -fn_8004F3E4 = .text:0x8004F3E4; // type:function size:0x2CC -fn_8004F6B0 = .text:0x8004F6B0; // type:function size:0xF80 -fn_80050630 = .text:0x80050630; // type:function size:0x30 -fn_80050660 = .text:0x80050660; // type:function size:0xEC -fn_8005074C = .text:0x8005074C; // type:function size:0x1B8 -fn_80050904 = .text:0x80050904; // type:function size:0x110 -fn_80050A14 = .text:0x80050A14; // type:function size:0x2A8 -fn_80050CBC = .text:0x80050CBC; // type:function size:0x38C -fn_80051048 = .text:0x80051048; // type:function size:0x470 -fn_800514B8 = .text:0x800514B8; // type:function size:0x5D4 -fn_80051A8C = .text:0x80051A8C; // type:function size:0xF4 -fn_80051B80 = .text:0x80051B80; // type:function size:0x388 -fn_80051F08 = .text:0x80051F08; // type:function size:0x148 -fn_80052050 = .text:0x80052050; // type:function size:0x518 -fn_80052568 = .text:0x80052568; // type:function size:0x994 -fn_80052EFC = .text:0x80052EFC; // type:function size:0xC28 -fn_80053B24 = .text:0x80053B24; // type:function size:0x43C -fn_80053F60 = .text:0x80053F60; // type:function size:0x100 -fn_80054060 = .text:0x80054060; // type:function size:0x19C -fn_800541FC = .text:0x800541FC; // type:function size:0x4C -fn_80054248 = .text:0x80054248; // type:function size:0x184 -fn_800543CC = .text:0x800543CC; // type:function size:0x124 -fn_800544F0 = .text:0x800544F0; // type:function size:0x124 -fn_80054614 = .text:0x80054614; // type:function size:0x54 -fn_80054668 = .text:0x80054668; // type:function size:0x408 -fn_80054A70 = .text:0x80054A70; // type:function size:0xC0 -fn_80054B30 = .text:0x80054B30; // type:function size:0x184 -fn_80054CB4 = .text:0x80054CB4; // type:function size:0x240 -fn_80054EF4 = .text:0x80054EF4; // type:function size:0x2A4 -fn_80055198 = .text:0x80055198; // type:function size:0x2A4 -fn_8005543C = .text:0x8005543C; // type:function size:0x14 -fn_80055450 = .text:0x80055450; // type:function size:0x14 -fn_80055464 = .text:0x80055464; // type:function size:0x1B8 -fn_8005561C = .text:0x8005561C; // type:function size:0x47C -fn_80055A98 = .text:0x80055A98; // type:function size:0xD8 -fn_80055B70 = .text:0x80055B70; // type:function size:0x104 -fn_80055C74 = .text:0x80055C74; // type:function size:0x5F8 -fn_8005626C = .text:0x8005626C; // type:function size:0x58 -fn_800562C4 = .text:0x800562C4; // type:function size:0x2C -fn_800562F0 = .text:0x800562F0; // type:function size:0x188 -fn_80056478 = .text:0x80056478; // type:function size:0x17C -fn_800565F4 = .text:0x800565F4; // type:function size:0x130 -fn_80056724 = .text:0x80056724; // type:function size:0x5A0 -fn_80056CC4 = .text:0x80056CC4; // type:function size:0x288 -fn_80056F4C = .text:0x80056F4C; // type:function size:0x108 -fn_80057054 = .text:0x80057054; // type:function size:0x110 -fn_80057164 = .text:0x80057164; // type:function size:0xF8 -fn_8005725C = .text:0x8005725C; // type:function size:0x100 -fn_8005735C = .text:0x8005735C; // type:function size:0xC -fn_80057368 = .text:0x80057368; // type:function size:0xC -fn_80057374 = .text:0x80057374; // type:function size:0xC -fn_80057380 = .text:0x80057380; // type:function size:0x54 -fn_800573D4 = .text:0x800573D4; // type:function size:0x8 -fn_800573DC = .text:0x800573DC; // type:function size:0x20 -fn_800573FC = .text:0x800573FC; // type:function size:0x30 -fn_8005742C = .text:0x8005742C; // type:function size:0x27C -fn_800576A8 = .text:0x800576A8; // type:function size:0xA4 -fn_8005774C = .text:0x8005774C; // type:function size:0x17C -fn_800578C8 = .text:0x800578C8; // type:function size:0x4C -fn_80057914 = .text:0x80057914; // type:function size:0x5C -fn_80057970 = .text:0x80057970; // type:function size:0xF4 -fn_80057A64 = .text:0x80057A64; // type:function size:0x9C -fn_80057B00 = .text:0x80057B00; // type:function size:0xA0 -fn_80057BA0 = .text:0x80057BA0; // type:function size:0xA4 -fn_80057C44 = .text:0x80057C44; // type:function size:0xA4 -fn_80057CE8 = .text:0x80057CE8; // type:function size:0x30 -fn_80057D18 = .text:0x80057D18; // type:function size:0x140 -fn_80057E58 = .text:0x80057E58; // type:function size:0x280 -fn_800580D8 = .text:0x800580D8; // type:function size:0x10C -fn_800581E4 = .text:0x800581E4; // type:function size:0x84 -fn_80058268 = .text:0x80058268; // type:function size:0x4C -fn_800582B4 = .text:0x800582B4; // type:function size:0x8 -fn_800582BC = .text:0x800582BC; // type:function size:0xC -fn_800582C8 = .text:0x800582C8; // type:function size:0x40 -fn_80058308 = .text:0x80058308; // type:function size:0x8 -fn_80058310 = .text:0x80058310; // type:function size:0x154 -fn_80058464 = .text:0x80058464; // type:function size:0x2A0 -fn_80058704 = .text:0x80058704; // type:function size:0x2DC -fn_800589E0 = .text:0x800589E0; // type:function size:0x8C -fn_80058A6C = .text:0x80058A6C; // type:function size:0x8C -fn_80058AF8 = .text:0x80058AF8; // type:function size:0x370 -fn_80058E68 = .text:0x80058E68; // type:function size:0xDC -fn_80058F44 = .text:0x80058F44; // type:function size:0x48 -fn_80058F8C = .text:0x80058F8C; // type:function size:0x110 -fn_8005909C = .text:0x8005909C; // type:function size:0x38 -fn_800590D4 = .text:0x800590D4; // type:function size:0x1A0 -fn_80059274 = .text:0x80059274; // type:function size:0x184 -fn_800593F8 = .text:0x800593F8; // type:function size:0x28 -fn_80059420 = .text:0x80059420; // type:function size:0xA0 -fn_800594C0 = .text:0x800594C0; // type:function size:0x60 -fn_80059520 = .text:0x80059520; // type:function size:0x54 -fn_80059574 = .text:0x80059574; // type:function size:0x90 -fn_80059604 = .text:0x80059604; // type:function size:0x1D4 -fn_800597D8 = .text:0x800597D8; // type:function size:0x12C -fn_80059904 = .text:0x80059904; // type:function size:0x624 -fn_80059F28 = .text:0x80059F28; // type:function size:0x3FC -fn_8005A324 = .text:0x8005A324; // type:function size:0x50 -fn_8005A374 = .text:0x8005A374; // type:function size:0x28 -fn_8005A39C = .text:0x8005A39C; // type:function size:0x1F4 -fn_8005A590 = .text:0x8005A590; // type:function size:0xD8 -fn_8005A668 = .text:0x8005A668; // type:function size:0x128 -fn_8005A790 = .text:0x8005A790; // type:function size:0x2D0 -fn_8005AA60 = .text:0x8005AA60; // type:function size:0xDC -fn_8005AB3C = .text:0x8005AB3C; // type:function size:0xFC -fn_8005AC38 = .text:0x8005AC38; // type:function size:0xCC -fn_8005AD04 = .text:0x8005AD04; // type:function size:0x78 -fn_8005AD7C = .text:0x8005AD7C; // type:function size:0x2E0 -fn_8005B05C = .text:0x8005B05C; // type:function size:0x64 -fn_8005B0C0 = .text:0x8005B0C0; // type:function size:0x9C -fn_8005B15C = .text:0x8005B15C; // type:function size:0xCC -fn_8005B228 = .text:0x8005B228; // type:function size:0xAC -fn_8005B2D4 = .text:0x8005B2D4; // type:function size:0x48 -fn_8005B31C = .text:0x8005B31C; // type:function size:0x74 -fn_8005B390 = .text:0x8005B390; // type:function size:0x48 -fn_8005B3D8 = .text:0x8005B3D8; // type:function size:0x524 -fn_8005B8FC = .text:0x8005B8FC; // type:function size:0x160 -fn_8005BA5C = .text:0x8005BA5C; // type:function size:0x160 -fn_8005BBBC = .text:0x8005BBBC; // type:function size:0xC -fn_8005BBC8 = .text:0x8005BBC8; // type:function size:0x7D0 -fn_8005C398 = .text:0x8005C398; // type:function size:0x8C -fn_8005C424 = .text:0x8005C424; // type:function size:0x28C -fn_8005C6B0 = .text:0x8005C6B0; // type:function size:0xC4 -fn_8005C774 = .text:0x8005C774; // type:function size:0x8C -fn_8005C800 = .text:0x8005C800; // type:function size:0x410 -fn_8005CC10 = .text:0x8005CC10; // type:function size:0x128 -fn_8005CD38 = .text:0x8005CD38; // type:function size:0xC -fn_8005CD44 = .text:0x8005CD44; // type:function size:0x44 -fn_8005CD88 = .text:0x8005CD88; // type:function size:0x50 -fn_8005CDD8 = .text:0x8005CDD8; // type:function size:0x3C -fn_8005CE14 = .text:0x8005CE14; // type:function size:0x48 -fn_8005CE5C = .text:0x8005CE5C; // type:function size:0x54 -fn_8005CEB0 = .text:0x8005CEB0; // type:function size:0x2AC -fn_8005D15C = .text:0x8005D15C; // type:function size:0x48 -fn_8005D1A4 = .text:0x8005D1A4; // type:function size:0x48 -fn_8005D1EC = .text:0x8005D1EC; // type:function size:0x48 -fn_8005D234 = .text:0x8005D234; // type:function size:0x20 -fn_8005D254 = .text:0x8005D254; // type:function size:0xA8 -fn_8005D2FC = .text:0x8005D2FC; // type:function size:0xBC -fn_8005D3B8 = .text:0x8005D3B8; // type:function size:0x28 -fn_8005D3E0 = .text:0x8005D3E0; // type:function size:0x50 -fn_8005D430 = .text:0x8005D430; // type:function size:0x30 -fn_8005D460 = .text:0x8005D460; // type:function size:0xB4 -fn_8005D514 = .text:0x8005D514; // type:function size:0x40 -fn_8005D554 = .text:0x8005D554; // type:function size:0x44 -fn_8005D598 = .text:0x8005D598; // type:function size:0x28 -fn_8005D5C0 = .text:0x8005D5C0; // type:function size:0x3C -fn_8005D5FC = .text:0x8005D5FC; // type:function size:0x3C -fn_8005D638 = .text:0x8005D638; // type:function size:0x28 -fn_8005D660 = .text:0x8005D660; // type:function size:0x28 -fn_8005D688 = .text:0x8005D688; // type:function size:0x24 -fn_8005D6AC = .text:0x8005D6AC; // type:function size:0x20 -fn_8005D6CC = .text:0x8005D6CC; // type:function size:0x24 -fn_8005D6F0 = .text:0x8005D6F0; // type:function size:0x24 -fn_8005D714 = .text:0x8005D714; // type:function size:0x3C -fn_8005D750 = .text:0x8005D750; // type:function size:0x48 -fn_8005D798 = .text:0x8005D798; // type:function size:0x230 -fn_8005D9C8 = .text:0x8005D9C8; // type:function size:0x20 -fn_8005D9E8 = .text:0x8005D9E8; // type:function size:0x2BC -fn_8005DCA4 = .text:0x8005DCA4; // type:function size:0x48 -fn_8005DCEC = .text:0x8005DCEC; // type:function size:0x58 -fn_8005DD44 = .text:0x8005DD44; // type:function size:0x24C -fn_8005DF90 = .text:0x8005DF90; // type:function size:0x350 -fn_8005E2E0 = .text:0x8005E2E0; // type:function size:0xE4 -fn_8005E3C4 = .text:0x8005E3C4; // type:function size:0x764 -fn_8005EB28 = .text:0x8005EB28; // type:function size:0x48 -fn_8005EB70 = .text:0x8005EB70; // type:function size:0x48 -fn_8005EBB8 = .text:0x8005EBB8; // type:function size:0x170 -fn_8005ED28 = .text:0x8005ED28; // type:function size:0x60 -fn_8005ED88 = .text:0x8005ED88; // type:function size:0xC4 -fn_8005EE4C = .text:0x8005EE4C; // type:function size:0x74 -fn_8005EEC0 = .text:0x8005EEC0; // type:function size:0x28 -fn_8005EEE8 = .text:0x8005EEE8; // type:function size:0x28 -fn_8005EF10 = .text:0x8005EF10; // type:function size:0x48 -fn_8005EF58 = .text:0x8005EF58; // type:function size:0x10C -fn_8005F064 = .text:0x8005F064; // type:function size:0x330 -fn_8005F394 = .text:0x8005F394; // type:function size:0x390 -fn_8005F724 = .text:0x8005F724; // type:function size:0x24 -fn_8005F748 = .text:0x8005F748; // type:function size:0x24 -fn_8005F76C = .text:0x8005F76C; // type:function size:0x50 -fn_8005F7BC = .text:0x8005F7BC; // type:function size:0x58 -fn_8005F814 = .text:0x8005F814; // type:function size:0x134 -fn_8005F948 = .text:0x8005F948; // type:function size:0x15C -fn_8005FAA4 = .text:0x8005FAA4; // type:function size:0x7C -fn_8005FB20 = .text:0x8005FB20; // type:function size:0x34 -fn_8005FB54 = .text:0x8005FB54; // type:function size:0x1C0 -fn_8005FD14 = .text:0x8005FD14; // type:function size:0x6C -fn_8005FD80 = .text:0x8005FD80; // type:function size:0xD4 -fn_8005FE54 = .text:0x8005FE54; // type:function size:0x174 -fn_8005FFC8 = .text:0x8005FFC8; // type:function size:0x5C -fn_80060024 = .text:0x80060024; // type:function size:0x34 -fn_80060058 = .text:0x80060058; // type:function size:0x178 -fn_800601D0 = .text:0x800601D0; // type:function size:0x350 -fn_80060520 = .text:0x80060520; // type:function size:0x164 -fn_80060684 = .text:0x80060684; // type:function size:0x24 -fn_800606A8 = .text:0x800606A8; // type:function size:0x88 -fn_80060730 = .text:0x80060730; // type:function size:0xB8 -fn_800607E8 = .text:0x800607E8; // type:function size:0x564 -fn_80060D4C = .text:0x80060D4C; // type:function size:0x14C -fn_80060E98 = .text:0x80060E98; // type:function size:0x254 -fn_800610EC = .text:0x800610EC; // type:function size:0x278 -fn_80061364 = .text:0x80061364; // type:function size:0x2AC -fn_80061610 = .text:0x80061610; // type:function size:0xAC -fn_800616BC = .text:0x800616BC; // type:function size:0x80 -fn_8006173C = .text:0x8006173C; // type:function size:0x54 -fn_80061790 = .text:0x80061790; // type:function size:0x3A4 -fn_80061B34 = .text:0x80061B34; // type:function size:0x38 -fn_80061B6C = .text:0x80061B6C; // type:function size:0x48 -fn_80061BB4 = .text:0x80061BB4; // type:function size:0xC -fn_80061BC0 = .text:0x80061BC0; // type:function size:0xC -fn_80061BCC = .text:0x80061BCC; // type:function size:0x78 -fn_80061C44 = .text:0x80061C44; // type:function size:0x78 -fn_80061CBC = .text:0x80061CBC; // type:function size:0x80 -fn_80061D3C = .text:0x80061D3C; // type:function size:0x16C -fn_80061EA8 = .text:0x80061EA8; // type:function size:0x588 -fn_80062430 = .text:0x80062430; // type:function size:0xFC -fn_8006252C = .text:0x8006252C; // type:function size:0x84 -fn_800625B0 = .text:0x800625B0; // type:function size:0x80 -fn_80062630 = .text:0x80062630; // type:function size:0x80 -fn_800626B0 = .text:0x800626B0; // type:function size:0xB4 -fn_80062764 = .text:0x80062764; // type:function size:0xB0 -fn_80062814 = .text:0x80062814; // type:function size:0xB4 -fn_800628C8 = .text:0x800628C8; // type:function size:0x58 -fn_80062920 = .text:0x80062920; // type:function size:0x60 -fn_80062980 = .text:0x80062980; // type:function size:0x40 -fn_800629C0 = .text:0x800629C0; // type:function size:0xC4 -fn_80062A84 = .text:0x80062A84; // type:function size:0x90 -fn_80062B14 = .text:0x80062B14; // type:function size:0x80 -fn_80062B94 = .text:0x80062B94; // type:function size:0x9C -fn_80062C30 = .text:0x80062C30; // type:function size:0xCC -fn_80062CFC = .text:0x80062CFC; // type:function size:0x80 -fn_80062D7C = .text:0x80062D7C; // type:function size:0x9C -fn_80062E18 = .text:0x80062E18; // type:function size:0xCC -fn_80062EE4 = .text:0x80062EE4; // type:function size:0x80 -fn_80062F64 = .text:0x80062F64; // type:function size:0xD4 -fn_80063038 = .text:0x80063038; // type:function size:0xA8 -fn_800630E0 = .text:0x800630E0; // type:function size:0x80 -fn_80063160 = .text:0x80063160; // type:function size:0x90 -fn_800631F0 = .text:0x800631F0; // type:function size:0x80 -fn_80063270 = .text:0x80063270; // type:function size:0x44 -fn_800632B4 = .text:0x800632B4; // type:function size:0x88 -fn_8006333C = .text:0x8006333C; // type:function size:0x80 -fn_800633BC = .text:0x800633BC; // type:function size:0x80 -fn_8006343C = .text:0x8006343C; // type:function size:0x78 -fn_800634B4 = .text:0x800634B4; // type:function size:0x88 -fn_8006353C = .text:0x8006353C; // type:function size:0xD0 -fn_8006360C = .text:0x8006360C; // type:function size:0xE0 -fn_800636EC = .text:0x800636EC; // type:function size:0x80 -fn_8006376C = .text:0x8006376C; // type:function size:0x80 -fn_800637EC = .text:0x800637EC; // type:function size:0x78 -fn_80063864 = .text:0x80063864; // type:function size:0x78 -fn_800638DC = .text:0x800638DC; // type:function size:0xA0 -fn_8006397C = .text:0x8006397C; // type:function size:0x80 -fn_800639FC = .text:0x800639FC; // type:function size:0x80 -fn_80063A7C = .text:0x80063A7C; // type:function size:0x34 -fn_80063AB0 = .text:0x80063AB0; // type:function size:0x2C -fn_80063ADC = .text:0x80063ADC; // type:function size:0x9C -fn_80063B78 = .text:0x80063B78; // type:function size:0x48 -fn_80063BC0 = .text:0x80063BC0; // type:function size:0x16C -fn_80063D2C = .text:0x80063D2C; // type:function size:0x40 -fn_80063D6C = .text:0x80063D6C; // type:function size:0x7C -fn_80063DE8 = .text:0x80063DE8; // type:function size:0x7C -fn_80063E64 = .text:0x80063E64; // type:function size:0xC4 -fn_80063F28 = .text:0x80063F28; // type:function size:0x18 -fn_80063F40 = .text:0x80063F40; // type:function size:0x18 -fn_80063F58 = .text:0x80063F58; // type:function size:0x15C -fn_800640B4 = .text:0x800640B4; // type:function size:0x160 -fn_80064214 = .text:0x80064214; // type:function size:0x420 -fn_80064634 = .text:0x80064634; // type:function size:0x80 -fn_800646B4 = .text:0x800646B4; // type:function size:0x18C -fn_80064840 = .text:0x80064840; // type:function size:0x134 -fn_80064974 = .text:0x80064974; // type:function size:0x10 -fn_80064984 = .text:0x80064984; // type:function size:0x10 -fn_80064994 = .text:0x80064994; // type:function size:0xC -fn_800649A0 = .text:0x800649A0; // type:function size:0x634 -fn_80064FD4 = .text:0x80064FD4; // type:function size:0x1A0 -fn_80065174 = .text:0x80065174; // type:function size:0x70 -fn_800651E4 = .text:0x800651E4; // type:function size:0x180 -fn_80065364 = .text:0x80065364; // type:function size:0x114 -fn_80065478 = .text:0x80065478; // type:function size:0x8E8 -fn_80065D60 = .text:0x80065D60; // type:function size:0xBF8 -fn_80066958 = .text:0x80066958; // type:function size:0xBC -fn_80066A14 = .text:0x80066A14; // type:function size:0x90 -fn_80066AA4 = .text:0x80066AA4; // type:function size:0x90 -fn_80066B34 = .text:0x80066B34; // type:function size:0x430 -fn_80066F64 = .text:0x80066F64; // type:function size:0x218 -fn_8006717C = .text:0x8006717C; // type:function size:0x1D4 -fn_80067350 = .text:0x80067350; // type:function size:0x54 -fn_800673A4 = .text:0x800673A4; // type:function size:0x3E4 -fn_80067788 = .text:0x80067788; // type:function size:0xF8 -fn_80067880 = .text:0x80067880; // type:function size:0x5A0 -fn_80067E20 = .text:0x80067E20; // type:function size:0x51C -fn_8006833C = .text:0x8006833C; // type:function size:0x2C -fn_80068368 = .text:0x80068368; // type:function size:0x138 -fn_800684A0 = .text:0x800684A0; // type:function size:0x38 -fn_800684D8 = .text:0x800684D8; // type:function size:0x10C -fn_800685E4 = .text:0x800685E4; // type:function size:0x194 -fn_80068778 = .text:0x80068778; // type:function size:0x278 -fn_800689F0 = .text:0x800689F0; // type:function size:0x6C -fn_80068A5C = .text:0x80068A5C; // type:function size:0x9C -fn_80068AF8 = .text:0x80068AF8; // type:function size:0x40 -fn_80068B38 = .text:0x80068B38; // type:function size:0x1C -fn_80068B54 = .text:0x80068B54; // type:function size:0x224 -fn_80068D78 = .text:0x80068D78; // type:function size:0x40 -fn_80068DB8 = .text:0x80068DB8; // type:function size:0x100 -fn_80068EB8 = .text:0x80068EB8; // type:function size:0x1A4 -fn_8006905C = .text:0x8006905C; // type:function size:0x128 -fn_80069184 = .text:0x80069184; // type:function size:0x8 -fn_8006918C = .text:0x8006918C; // type:function size:0x8 -fn_80069194 = .text:0x80069194; // type:function size:0x74 -fn_80069208 = .text:0x80069208; // type:function size:0x54 -fn_8006925C = .text:0x8006925C; // type:function size:0x4C -fn_800692A8 = .text:0x800692A8; // type:function size:0x44 -fn_800692EC = .text:0x800692EC; // type:function size:0x44 -fn_80069330 = .text:0x80069330; // type:function size:0x44 -fn_80069374 = .text:0x80069374; // type:function size:0x1F0 -fn_80069564 = .text:0x80069564; // type:function size:0x5C -fn_800695C0 = .text:0x800695C0; // type:function size:0x1294 -fn_8006A854 = .text:0x8006A854; // type:function size:0xA0 -fn_8006A8F4 = .text:0x8006A8F4; // type:function size:0x24C -fn_8006AB40 = .text:0x8006AB40; // type:function size:0x8 -fn_8006AB48 = .text:0x8006AB48; // type:function size:0x38C -fn_8006AED4 = .text:0x8006AED4; // type:function size:0x950 -fn_8006B824 = .text:0x8006B824; // type:function size:0x980 -fn_8006C1A4 = .text:0x8006C1A4; // type:function size:0xA48 -fn_8006CBEC = .text:0x8006CBEC; // type:function size:0x24C -fn_8006CE38 = .text:0x8006CE38; // type:function size:0xC0 -fn_8006CEF8 = .text:0x8006CEF8; // type:function size:0xF0 -fn_8006CFE8 = .text:0x8006CFE8; // type:function size:0xA0 -fn_8006D088 = .text:0x8006D088; // type:function size:0x70 -fn_8006D0F8 = .text:0x8006D0F8; // type:function size:0x4 -fn_8006D0FC = .text:0x8006D0FC; // type:function size:0xCC -fn_8006D1C8 = .text:0x8006D1C8; // type:function size:0x90 -fn_8006D258 = .text:0x8006D258; // type:function size:0x70 -fn_8006D2C8 = .text:0x8006D2C8; // type:function size:0x7C -fn_8006D344 = .text:0x8006D344; // type:function size:0x250 -fn_8006D594 = .text:0x8006D594; // type:function size:0x40 -fn_8006D5D4 = .text:0x8006D5D4; // type:function size:0x44 -fn_8006D618 = .text:0x8006D618; // type:function size:0x168 -fn_8006D780 = .text:0x8006D780; // type:function size:0x44 -fn_8006D7C4 = .text:0x8006D7C4; // type:function size:0x48 -fn_8006D80C = .text:0x8006D80C; // type:function size:0x60 -fn_8006D86C = .text:0x8006D86C; // type:function size:0x74 -fn_8006D8E0 = .text:0x8006D8E0; // type:function size:0x68 -fn_8006D948 = .text:0x8006D948; // type:function size:0x48 -fn_8006D990 = .text:0x8006D990; // type:function size:0x48 -fn_8006D9D8 = .text:0x8006D9D8; // type:function size:0x70 -fn_8006DA48 = .text:0x8006DA48; // type:function size:0x140 -fn_8006DB88 = .text:0x8006DB88; // type:function size:0x118 -fn_8006DCA0 = .text:0x8006DCA0; // type:function size:0xE8 -fn_8006DD88 = .text:0x8006DD88; // type:function size:0x7C -fn_8006DE04 = .text:0x8006DE04; // type:function size:0xA4 -fn_8006DEA8 = .text:0x8006DEA8; // type:function size:0x174 -fn_8006E01C = .text:0x8006E01C; // type:function size:0x50 -fn_8006E06C = .text:0x8006E06C; // type:function size:0x148 -fn_8006E1B4 = .text:0x8006E1B4; // type:function size:0x58 -fn_8006E20C = .text:0x8006E20C; // type:function size:0x58 -fn_8006E264 = .text:0x8006E264; // type:function size:0x84 -fn_8006E2E8 = .text:0x8006E2E8; // type:function size:0x94 -fn_8006E37C = .text:0x8006E37C; // type:function size:0x88 -fn_8006E404 = .text:0x8006E404; // type:function size:0x64 -fn_8006E468 = .text:0x8006E468; // type:function size:0xA4 -fn_8006E50C = .text:0x8006E50C; // type:function size:0x80 -fn_8006E58C = .text:0x8006E58C; // type:function size:0x100 -fn_8006E68C = .text:0x8006E68C; // type:function size:0x7C -fn_8006E708 = .text:0x8006E708; // type:function size:0xBC -fn_8006E7C4 = .text:0x8006E7C4; // type:function size:0x88 -fn_8006E84C = .text:0x8006E84C; // type:function size:0x64 -fn_8006E8B0 = .text:0x8006E8B0; // type:function size:0x14C -fn_8006E9FC = .text:0x8006E9FC; // type:function size:0x100 -fn_8006EAFC = .text:0x8006EAFC; // type:function size:0xB0 -fn_8006EBAC = .text:0x8006EBAC; // type:function size:0x8C -fn_8006EC38 = .text:0x8006EC38; // type:function size:0x8C -fn_8006ECC4 = .text:0x8006ECC4; // type:function size:0x54 -fn_8006ED18 = .text:0x8006ED18; // type:function size:0x30 -fn_8006ED48 = .text:0x8006ED48; // type:function size:0x50 -fn_8006ED98 = .text:0x8006ED98; // type:function size:0x78 -fn_8006EE10 = .text:0x8006EE10; // type:function size:0x50 -fn_8006EE60 = .text:0x8006EE60; // type:function size:0x78 -fn_8006EED8 = .text:0x8006EED8; // type:function size:0x50 -fn_8006EF28 = .text:0x8006EF28; // type:function size:0x78 -fn_8006EFA0 = .text:0x8006EFA0; // type:function size:0x74 -fn_8006F014 = .text:0x8006F014; // type:function size:0x74 -fn_8006F088 = .text:0x8006F088; // type:function size:0x74 -fn_8006F0FC = .text:0x8006F0FC; // type:function size:0x60 -fn_8006F15C = .text:0x8006F15C; // type:function size:0x4C -fn_8006F1A8 = .text:0x8006F1A8; // type:function size:0x64 -fn_8006F20C = .text:0x8006F20C; // type:function size:0x64 -fn_8006F270 = .text:0x8006F270; // type:function size:0x48 -fn_8006F2B8 = .text:0x8006F2B8; // type:function size:0x74 -fn_8006F32C = .text:0x8006F32C; // type:function size:0xC4 -fn_8006F3F0 = .text:0x8006F3F0; // type:function size:0x50 -fn_8006F440 = .text:0x8006F440; // type:function size:0x58 -fn_8006F498 = .text:0x8006F498; // type:function size:0x9C -fn_8006F534 = .text:0x8006F534; // type:function size:0x178 -fn_8006F6AC = .text:0x8006F6AC; // type:function size:0x194 -fn_8006F840 = .text:0x8006F840; // type:function size:0x12C -fn_8006F96C = .text:0x8006F96C; // type:function size:0x24 -fn_8006F990 = .text:0x8006F990; // type:function size:0x34 -fn_8006F9C4 = .text:0x8006F9C4; // type:function size:0x24 -fn_8006F9E8 = .text:0x8006F9E8; // type:function size:0x6C -fn_8006FA54 = .text:0x8006FA54; // type:function size:0x514 -fn_8006FF68 = .text:0x8006FF68; // type:function size:0xC -fn_8006FF74 = .text:0x8006FF74; // type:function size:0xC -fn_8006FF80 = .text:0x8006FF80; // type:function size:0x1A0 -fn_80070120 = .text:0x80070120; // type:function size:0x1A0 -fn_800702C0 = .text:0x800702C0; // type:function size:0x18 -fn_800702D8 = .text:0x800702D8; // type:function size:0x50 -fn_80070328 = .text:0x80070328; // type:function size:0x38 -fn_80070360 = .text:0x80070360; // type:function size:0x48 -fn_800703A8 = .text:0x800703A8; // type:function size:0x48 -fn_800703F0 = .text:0x800703F0; // type:function size:0x1C -fn_8007040C = .text:0x8007040C; // type:function size:0xC -fn_80070418 = .text:0x80070418; // type:function size:0x64 -fn_8007047C = .text:0x8007047C; // type:function size:0x50 -fn_800704CC = .text:0x800704CC; // type:function size:0x38 -fn_80070504 = .text:0x80070504; // type:function size:0x44 -fn_80070548 = .text:0x80070548; // type:function size:0x38 -fn_80070580 = .text:0x80070580; // type:function size:0x38 -fn_800705B8 = .text:0x800705B8; // type:function size:0x38 -fn_800705F0 = .text:0x800705F0; // type:function size:0x168 -fn_80070758 = .text:0x80070758; // type:function size:0x214 -fn_8007096C = .text:0x8007096C; // type:function size:0x8 -fn_80070974 = .text:0x80070974; // type:function size:0x68 -fn_800709DC = .text:0x800709DC; // type:function size:0xD0 -fn_80070AAC = .text:0x80070AAC; // type:function size:0x2C -fn_80070AD8 = .text:0x80070AD8; // type:function size:0x60 -fn_80070B38 = .text:0x80070B38; // type:function size:0x5C -fn_80070B94 = .text:0x80070B94; // type:function size:0x90 -fn_80070C24 = .text:0x80070C24; // type:function size:0x94 -fn_80070CB8 = .text:0x80070CB8; // type:function size:0x54 -fn_80070D0C = .text:0x80070D0C; // type:function size:0x50 -fn_80070D5C = .text:0x80070D5C; // type:function size:0x74 -fn_80070DD0 = .text:0x80070DD0; // type:function size:0x78 -fn_80070E48 = .text:0x80070E48; // type:function size:0x38 -fn_80070E80 = .text:0x80070E80; // type:function size:0x38 -fn_80070EB8 = .text:0x80070EB8; // type:function size:0x28 -fn_80070EE0 = .text:0x80070EE0; // type:function size:0x38 -fn_80070F18 = .text:0x80070F18; // type:function size:0x28 -fn_80070F40 = .text:0x80070F40; // type:function size:0x38 -fn_80070F78 = .text:0x80070F78; // type:function size:0x28 -fn_80070FA0 = .text:0x80070FA0; // type:function size:0x38 -fn_80070FD8 = .text:0x80070FD8; // type:function size:0x28 -fn_80071000 = .text:0x80071000; // type:function size:0xE8 -fn_800710E8 = .text:0x800710E8; // type:function size:0x100 -fn_800711E8 = .text:0x800711E8; // type:function size:0x120 -fn_80071308 = .text:0x80071308; // type:function size:0x74 -fn_8007137C = .text:0x8007137C; // type:function size:0xD0 -fn_8007144C = .text:0x8007144C; // type:function size:0x6C -fn_800714B8 = .text:0x800714B8; // type:function size:0x68 -fn_80071520 = .text:0x80071520; // type:function size:0x16C -fn_8007168C = .text:0x8007168C; // type:function size:0x220 -fn_800718AC = .text:0x800718AC; // type:function size:0x248 -fn_80071AF4 = .text:0x80071AF4; // type:function size:0x158 -fn_80071C4C = .text:0x80071C4C; // type:function size:0x314 -fn_80071F60 = .text:0x80071F60; // type:function size:0x198 -fn_800720F8 = .text:0x800720F8; // type:function size:0x7C -fn_80072174 = .text:0x80072174; // type:function size:0x74 -fn_800721E8 = .text:0x800721E8; // type:function size:0x304 -fn_800724EC = .text:0x800724EC; // type:function size:0xA8 -fn_80072594 = .text:0x80072594; // type:function size:0x134 -fn_800726C8 = .text:0x800726C8; // type:function size:0x3C -fn_80072704 = .text:0x80072704; // type:function size:0xF0 -fn_800727F4 = .text:0x800727F4; // type:function size:0x128 -fn_8007291C = .text:0x8007291C; // type:function size:0x34 -fn_80072950 = .text:0x80072950; // type:function size:0xC -fn_8007295C = .text:0x8007295C; // type:function size:0x3C -fn_80072998 = .text:0x80072998; // type:function size:0xC8 -fn_80072A60 = .text:0x80072A60; // type:function size:0x398 -fn_80072DF8 = .text:0x80072DF8; // type:function size:0x170 -fn_80072F68 = .text:0x80072F68; // type:function size:0x158 -fn_800730C0 = .text:0x800730C0; // type:function size:0x80 -fn_80073140 = .text:0x80073140; // type:function size:0x178 -fn_800732B8 = .text:0x800732B8; // type:function size:0x4C -fn_80073304 = .text:0x80073304; // type:function size:0xE0 -fn_800733E4 = .text:0x800733E4; // type:function size:0x38 -fn_8007341C = .text:0x8007341C; // type:function size:0x374 -fn_80073790 = .text:0x80073790; // type:function size:0x24 -fn_800737B4 = .text:0x800737B4; // type:function size:0x400 -fn_80073BB4 = .text:0x80073BB4; // type:function size:0x30 -fn_80073BE4 = .text:0x80073BE4; // type:function size:0x8 -fn_80073BEC = .text:0x80073BEC; // type:function size:0x8 -fn_80073BF4 = .text:0x80073BF4; // type:function size:0x8 -fn_80073BFC = .text:0x80073BFC; // type:function size:0x48 -fn_80073C44 = .text:0x80073C44; // type:function size:0x60 -fn_80073CA4 = .text:0x80073CA4; // type:function size:0x10 -fn_80073CB4 = .text:0x80073CB4; // type:function size:0x44 -fn_80073CF8 = .text:0x80073CF8; // type:function size:0x18 -fn_80073D10 = .text:0x80073D10; // type:function size:0x18 -fn_80073D28 = .text:0x80073D28; // type:function size:0x48 -fn_80073D70 = .text:0x80073D70; // type:function size:0x48 -fn_80073DB8 = .text:0x80073DB8; // type:function size:0x48 -fn_80073E00 = .text:0x80073E00; // type:function size:0x8C -fn_80073E8C = .text:0x80073E8C; // type:function size:0x2C8 -fn_80074154 = .text:0x80074154; // type:function size:0x8C -fn_800741E0 = .text:0x800741E0; // type:function size:0xA0 -fn_80074280 = .text:0x80074280; // type:function size:0x134 -fn_800743B4 = .text:0x800743B4; // type:function size:0x134 -fn_800744E8 = .text:0x800744E8; // type:function size:0x148 -fn_80074630 = .text:0x80074630; // type:function size:0x104 -fn_80074734 = .text:0x80074734; // type:function size:0x110 -fn_80074844 = .text:0x80074844; // type:function size:0x1FC -fn_80074A40 = .text:0x80074A40; // type:function size:0x1BC -fn_80074BFC = .text:0x80074BFC; // type:function size:0x4AC -fn_800750A8 = .text:0x800750A8; // type:function size:0x344 -fn_800753EC = .text:0x800753EC; // type:function size:0x9C -fn_80075488 = .text:0x80075488; // type:function size:0xF0 -fn_80075578 = .text:0x80075578; // type:function size:0x1C -fn_80075594 = .text:0x80075594; // type:function size:0x3C -fn_800755D0 = .text:0x800755D0; // type:function size:0x110 -fn_800756E0 = .text:0x800756E0; // type:function size:0x474 -fn_80075B54 = .text:0x80075B54; // type:function size:0x2A4 -fn_80075DF8 = .text:0x80075DF8; // type:function size:0x180 -fn_80075F78 = .text:0x80075F78; // type:function size:0x268 -fn_800761E0 = .text:0x800761E0; // type:function size:0x5C -fn_8007623C = .text:0x8007623C; // type:function size:0x48 -fn_80076284 = .text:0x80076284; // type:function size:0x9E8 -fn_80076C6C = .text:0x80076C6C; // type:function size:0x174 -fn_80076DE0 = .text:0x80076DE0; // type:function size:0x2C -fn_80076E0C = .text:0x80076E0C; // type:function size:0xD0 -fn_80076EDC = .text:0x80076EDC; // type:function size:0x750 -fn_8007762C = .text:0x8007762C; // type:function size:0x70 -fn_8007769C = .text:0x8007769C; // type:function size:0x8 -fn_800776A4 = .text:0x800776A4; // type:function size:0x8 -fn_800776AC = .text:0x800776AC; // type:function size:0xD4 -fn_80077780 = .text:0x80077780; // type:function size:0xA0 -fn_80077820 = .text:0x80077820; // type:function size:0x9C -fn_800778BC = .text:0x800778BC; // type:function size:0x800 -fn_800780BC = .text:0x800780BC; // type:function size:0xD4 -fn_80078190 = .text:0x80078190; // type:function size:0x1B4 -fn_80078344 = .text:0x80078344; // type:function size:0xBC -fn_80078400 = .text:0x80078400; // type:function size:0x13C -fn_8007853C = .text:0x8007853C; // type:function size:0x314 -fn_80078850 = .text:0x80078850; // type:function size:0x168 -fn_800789B8 = .text:0x800789B8; // type:function size:0x2C -fn_800789E4 = .text:0x800789E4; // type:function size:0x18C -fn_80078B70 = .text:0x80078B70; // type:function size:0x168 -fn_80078CD8 = .text:0x80078CD8; // type:function size:0x34C -fn_80079024 = .text:0x80079024; // type:function size:0x144 -fn_80079168 = .text:0x80079168; // type:function size:0x6C -fn_800791D4 = .text:0x800791D4; // type:function size:0x280 -fn_80079454 = .text:0x80079454; // type:function size:0xA0 -fn_800794F4 = .text:0x800794F4; // type:function size:0x14C -fn_80079640 = .text:0x80079640; // type:function size:0x1C8 -fn_80079808 = .text:0x80079808; // type:function size:0x60 -fn_80079868 = .text:0x80079868; // type:function size:0x158 -fn_800799C0 = .text:0x800799C0; // type:function size:0x30 -fn_800799F0 = .text:0x800799F0; // type:function size:0x188 -fn_80079B78 = .text:0x80079B78; // type:function size:0xC -fn_80079B84 = .text:0x80079B84; // type:function size:0x38 -fn_80079BBC = .text:0x80079BBC; // type:function size:0x260 -fn_80079E1C = .text:0x80079E1C; // type:function size:0x104 -fn_80079F20 = .text:0x80079F20; // type:function size:0x30 -fn_80079F50 = .text:0x80079F50; // type:function size:0x4DC -fn_8007A42C = .text:0x8007A42C; // type:function size:0x8 -fn_8007A434 = .text:0x8007A434; // type:function size:0x8 -fn_8007A43C = .text:0x8007A43C; // type:function size:0x8C -fn_8007A4C8 = .text:0x8007A4C8; // type:function size:0x16C -fn_8007A634 = .text:0x8007A634; // type:function size:0x3B4 -fn_8007A9E8 = .text:0x8007A9E8; // type:function size:0x1FC -fn_8007ABE4 = .text:0x8007ABE4; // type:function size:0x64 -fn_8007AC48 = .text:0x8007AC48; // type:function size:0xB0 -fn_8007ACF8 = .text:0x8007ACF8; // type:function size:0x798 -fn_8007B490 = .text:0x8007B490; // type:function size:0x20C -fn_8007B69C = .text:0x8007B69C; // type:function size:0x1BC -fn_8007B858 = .text:0x8007B858; // type:function size:0xF0 -fn_8007B948 = .text:0x8007B948; // type:function size:0x3C8 -fn_8007BD10 = .text:0x8007BD10; // type:function size:0x140 -fn_8007BE50 = .text:0x8007BE50; // type:function size:0x914 -fn_8007C764 = .text:0x8007C764; // type:function size:0xC8 -fn_8007C82C = .text:0x8007C82C; // type:function size:0x27C -fn_8007CAA8 = .text:0x8007CAA8; // type:function size:0x30C -fn_8007CDB4 = .text:0x8007CDB4; // type:function size:0x3AC -fn_8007D160 = .text:0x8007D160; // type:function size:0x6C -fn_8007D1CC = .text:0x8007D1CC; // type:function size:0x21C -fn_8007D3E8 = .text:0x8007D3E8; // type:function size:0x68 -fn_8007D450 = .text:0x8007D450; // type:function size:0x288 -fn_8007D6D8 = .text:0x8007D6D8; // type:function size:0x3DC -fn_8007DAB4 = .text:0x8007DAB4; // type:function size:0x14C -fn_8007DC00 = .text:0x8007DC00; // type:function size:0xD0 -fn_8007DCD0 = .text:0x8007DCD0; // type:function size:0x160 -fn_8007DE30 = .text:0x8007DE30; // type:function size:0xA8 -fn_8007DED8 = .text:0x8007DED8; // type:function size:0x84 -fn_8007DF5C = .text:0x8007DF5C; // type:function size:0x6B0 -fn_8007E60C = .text:0x8007E60C; // type:function size:0x440 -fn_8007EA4C = .text:0x8007EA4C; // type:function size:0x338 -fn_8007ED84 = .text:0x8007ED84; // type:function size:0x68 -fn_8007EDEC = .text:0x8007EDEC; // type:function size:0x4C0 -fn_8007F2AC = .text:0x8007F2AC; // type:function size:0xA4 -fn_8007F350 = .text:0x8007F350; // type:function size:0xFC -fn_8007F44C = .text:0x8007F44C; // type:function size:0x38 -fn_8007F484 = .text:0x8007F484; // type:function size:0x2BC -fn_8007F740 = .text:0x8007F740; // type:function size:0x184 -fn_8007F8C4 = .text:0x8007F8C4; // type:function size:0x19C -fn_8007FA60 = .text:0x8007FA60; // type:function size:0x1E8 -fn_8007FC48 = .text:0x8007FC48; // type:function size:0x6C -fn_8007FCB4 = .text:0x8007FCB4; // type:function size:0x60 -fn_8007FD14 = .text:0x8007FD14; // type:function size:0x23C -fn_8007FF50 = .text:0x8007FF50; // type:function size:0x198 -fn_800800E8 = .text:0x800800E8; // type:function size:0x1B8 -fn_800802A0 = .text:0x800802A0; // type:function size:0x29C -fn_8008053C = .text:0x8008053C; // type:function size:0x1A8 -fn_800806E4 = .text:0x800806E4; // type:function size:0x260 -fn_80080944 = .text:0x80080944; // type:function size:0xA4 -fn_800809E8 = .text:0x800809E8; // type:function size:0x250 -fn_80080C38 = .text:0x80080C38; // type:function size:0x5C -fn_80080C94 = .text:0x80080C94; // type:function size:0x118 -fn_80080DAC = .text:0x80080DAC; // type:function size:0xBC -fn_80080E68 = .text:0x80080E68; // type:function size:0x1B0 -fn_80081018 = .text:0x80081018; // type:function size:0xA4 -fn_800810BC = .text:0x800810BC; // type:function size:0x200 -fn_800812BC = .text:0x800812BC; // type:function size:0x11C -fn_800813D8 = .text:0x800813D8; // type:function size:0x34 -fn_8008140C = .text:0x8008140C; // type:function size:0x50 -fn_8008145C = .text:0x8008145C; // type:function size:0x18 -fn_80081474 = .text:0x80081474; // type:function size:0x1C -fn_80081490 = .text:0x80081490; // type:function size:0xFC -fn_8008158C = .text:0x8008158C; // type:function size:0x754 -fn_80081CE0 = .text:0x80081CE0; // type:function size:0x314 -fn_80081FF4 = .text:0x80081FF4; // type:function size:0x164 -fn_80082158 = .text:0x80082158; // type:function size:0x120 -fn_80082278 = .text:0x80082278; // type:function size:0x10C -fn_80082384 = .text:0x80082384; // type:function size:0x38 -fn_800823BC = .text:0x800823BC; // type:function size:0xBC -fn_80082478 = .text:0x80082478; // type:function size:0x224 -fn_8008269C = .text:0x8008269C; // type:function size:0x10 -fn_800826AC = .text:0x800826AC; // type:function size:0x148 -fn_800827F4 = .text:0x800827F4; // type:function size:0x8C -fn_80082880 = .text:0x80082880; // type:function size:0xA4 -fn_80082924 = .text:0x80082924; // type:function size:0x38C -fn_80082CB0 = .text:0x80082CB0; // type:function size:0x58 -fn_80082D08 = .text:0x80082D08; // type:function size:0x118 -fn_80082E20 = .text:0x80082E20; // type:function size:0x114 -fn_80082F34 = .text:0x80082F34; // type:function size:0x160 -fn_80083094 = .text:0x80083094; // type:function size:0x68 -fn_800830FC = .text:0x800830FC; // type:function size:0xD4 -fn_800831D0 = .text:0x800831D0; // type:function size:0x2EC -fn_800834BC = .text:0x800834BC; // type:function size:0x64 -fn_80083520 = .text:0x80083520; // type:function size:0x34 -fn_80083554 = .text:0x80083554; // type:function size:0x54 -fn_800835A8 = .text:0x800835A8; // type:function size:0x34 -fn_800835DC = .text:0x800835DC; // type:function size:0x5C -fn_80083638 = .text:0x80083638; // type:function size:0x58 -fn_80083690 = .text:0x80083690; // type:function size:0x60 -fn_800836F0 = .text:0x800836F0; // type:function size:0x240 -fn_80083930 = .text:0x80083930; // type:function size:0xD4 -fn_80083A04 = .text:0x80083A04; // type:function size:0x38 -fn_80083A3C = .text:0x80083A3C; // type:function size:0x48 -fn_80083A84 = .text:0x80083A84; // type:function size:0x48 -fn_80083ACC = .text:0x80083ACC; // type:function size:0xA8 -fn_80083B74 = .text:0x80083B74; // type:function size:0x8 -fn_80083B7C = .text:0x80083B7C; // type:function size:0xCC -fn_80083C48 = .text:0x80083C48; // type:function size:0x8F4 -fn_8008453C = .text:0x8008453C; // type:function size:0x84 -fn_800845C0 = .text:0x800845C0; // type:function size:0x160 -fn_80084720 = .text:0x80084720; // type:function size:0x144 -fn_80084864 = .text:0x80084864; // type:function size:0x10C -fn_80084970 = .text:0x80084970; // type:function size:0x180 -fn_80084AF0 = .text:0x80084AF0; // type:function size:0x204 -fn_80084CF4 = .text:0x80084CF4; // type:function size:0x38 -fn_80084D2C = .text:0x80084D2C; // type:function size:0xB4 -fn_80084DE0 = .text:0x80084DE0; // type:function size:0x40 -fn_80084E20 = .text:0x80084E20; // type:function size:0x31C -fn_8008513C = .text:0x8008513C; // type:function size:0x628 -fn_80085764 = .text:0x80085764; // type:function size:0x130 -fn_80085894 = .text:0x80085894; // type:function size:0x24 -fn_800858B8 = .text:0x800858B8; // type:function size:0x1EC -fn_80085AA4 = .text:0x80085AA4; // type:function size:0x38 -fn_80085ADC = .text:0x80085ADC; // type:function size:0x84 -fn_80085B60 = .text:0x80085B60; // type:function size:0x4C -fn_80085BAC = .text:0x80085BAC; // type:function size:0x490 -fn_8008603C = .text:0x8008603C; // type:function size:0x280 -fn_800862BC = .text:0x800862BC; // type:function size:0x1C8 -fn_80086484 = .text:0x80086484; // type:function size:0x60 -fn_800864E4 = .text:0x800864E4; // type:function size:0x130 -fn_80086614 = .text:0x80086614; // type:function size:0x60 -fn_80086674 = .text:0x80086674; // type:function size:0x7E4 -fn_80086E58 = .text:0x80086E58; // type:function size:0x40 -fn_80086E98 = .text:0x80086E98; // type:function size:0x90 -fn_80086F28 = .text:0x80086F28; // type:function size:0xE0 -fn_80087008 = .text:0x80087008; // type:function size:0x84 -fn_8008708C = .text:0x8008708C; // type:function size:0x94 -fn_80087120 = .text:0x80087120; // type:function size:0x8C -fn_800871AC = .text:0x800871AC; // type:function size:0x58 -fn_80087204 = .text:0x80087204; // type:function size:0xC0 -fn_800872C4 = .text:0x800872C4; // type:function size:0x200 -fn_800874C4 = .text:0x800874C4; // type:function size:0xAC -fn_80087570 = .text:0x80087570; // type:function size:0x68 -fn_800875D8 = .text:0x800875D8; // type:function size:0xB4 -fn_8008768C = .text:0x8008768C; // type:function size:0x390 -fn_80087A1C = .text:0x80087A1C; // type:function size:0x110 -fn_80087B2C = .text:0x80087B2C; // type:function size:0x248 -fn_80087D74 = .text:0x80087D74; // type:function size:0x110 -fn_80087E84 = .text:0x80087E84; // type:function size:0x88 -fn_80087F0C = .text:0x80087F0C; // type:function size:0x4C -fn_80087F58 = .text:0x80087F58; // type:function size:0x90 -fn_80087FE8 = .text:0x80087FE8; // type:function size:0x98 -fn_80088080 = .text:0x80088080; // type:function size:0x48 -fn_800880C8 = .text:0x800880C8; // type:function size:0x1C -fn_800880E4 = .text:0x800880E4; // type:function size:0x48 -fn_8008812C = .text:0x8008812C; // type:function size:0xFC -fn_80088228 = .text:0x80088228; // type:function size:0x24 -fn_8008824C = .text:0x8008824C; // type:function size:0x134 -fn_80088380 = .text:0x80088380; // type:function size:0x138 -fn_800884B8 = .text:0x800884B8; // type:function size:0x50 -fn_80088508 = .text:0x80088508; // type:function size:0x44 -fn_8008854C = .text:0x8008854C; // type:function size:0x34 -fn_80088580 = .text:0x80088580; // type:function size:0x6C -fn_800885EC = .text:0x800885EC; // type:function size:0x158 -fn_80088744 = .text:0x80088744; // type:function size:0x94 -fn_800887D8 = .text:0x800887D8; // type:function size:0x6C -fn_80088844 = .text:0x80088844; // type:function size:0x90 -fn_800888D4 = .text:0x800888D4; // type:function size:0x20C -fn_80088AE0 = .text:0x80088AE0; // type:function size:0x98 -fn_80088B78 = .text:0x80088B78; // type:function size:0x36C -fn_80088EE4 = .text:0x80088EE4; // type:function size:0x8C -fn_80088F70 = .text:0x80088F70; // type:function size:0x210 -fn_80089180 = .text:0x80089180; // type:function size:0x40 -fn_800891C0 = .text:0x800891C0; // type:function size:0x180 -fn_80089340 = .text:0x80089340; // type:function size:0x140 -fn_80089480 = .text:0x80089480; // type:function size:0xB8 -fn_80089538 = .text:0x80089538; // type:function size:0x29C -fn_800897D4 = .text:0x800897D4; // type:function size:0x74 -fn_80089848 = .text:0x80089848; // type:function size:0x1C -fn_80089864 = .text:0x80089864; // type:function size:0x48 -fn_800898AC = .text:0x800898AC; // type:function size:0xC -fn_800898B8 = .text:0x800898B8; // type:function size:0xFC -fn_800899B4 = .text:0x800899B4; // type:function size:0x15C -fn_80089B10 = .text:0x80089B10; // type:function size:0x110 -fn_80089C20 = .text:0x80089C20; // type:function size:0x30 -fn_80089C50 = .text:0x80089C50; // type:function size:0x19C -fn_80089DEC = .text:0x80089DEC; // type:function size:0x1E4 -fn_80089FD0 = .text:0x80089FD0; // type:function size:0xD4 -fn_8008A0A4 = .text:0x8008A0A4; // type:function size:0xD8 -fn_8008A17C = .text:0x8008A17C; // type:function size:0xEC -fn_8008A268 = .text:0x8008A268; // type:function size:0xC8 -fn_8008A330 = .text:0x8008A330; // type:function size:0x80 -fn_8008A3B0 = .text:0x8008A3B0; // type:function size:0x4A8 -fn_8008A858 = .text:0x8008A858; // type:function size:0x370 -fn_8008ABC8 = .text:0x8008ABC8; // type:function size:0x174 -fn_8008AD3C = .text:0x8008AD3C; // type:function size:0x78 -fn_8008ADB4 = .text:0x8008ADB4; // type:function size:0x74 -fn_8008AE28 = .text:0x8008AE28; // type:function size:0xE8 -fn_8008AF10 = .text:0x8008AF10; // type:function size:0x650 -fn_8008B560 = .text:0x8008B560; // type:function size:0x3AC -fn_8008B90C = .text:0x8008B90C; // type:function size:0x420 -fn_8008BD2C = .text:0x8008BD2C; // type:function size:0x248 -fn_8008BF74 = .text:0x8008BF74; // type:function size:0xA8 -fn_8008C01C = .text:0x8008C01C; // type:function size:0x104 -fn_8008C120 = .text:0x8008C120; // type:function size:0x400 -fn_8008C520 = .text:0x8008C520; // type:function size:0x388 -fn_8008C8A8 = .text:0x8008C8A8; // type:function size:0x674 -fn_8008CF1C = .text:0x8008CF1C; // type:function size:0x50 -fn_8008CF6C = .text:0x8008CF6C; // type:function size:0x38 -fn_8008CFA4 = .text:0x8008CFA4; // type:function size:0x5A4 -fn_8008D548 = .text:0x8008D548; // type:function size:0x58 -fn_8008D5A0 = .text:0x8008D5A0; // type:function size:0x38 -fn_8008D5D8 = .text:0x8008D5D8; // type:function size:0xA4 -fn_8008D67C = .text:0x8008D67C; // type:function size:0x350 -fn_8008D9CC = .text:0x8008D9CC; // type:function size:0x148 -fn_8008DB14 = .text:0x8008DB14; // type:function size:0x44 -fn_8008DB58 = .text:0x8008DB58; // type:function size:0x84 -fn_8008DBDC = .text:0x8008DBDC; // type:function size:0x358 -fn_8008DF34 = .text:0x8008DF34; // type:function size:0x54 -fn_8008DF88 = .text:0x8008DF88; // type:function size:0x1F4 -fn_8008E17C = .text:0x8008E17C; // type:function size:0x12C -fn_8008E2A8 = .text:0x8008E2A8; // type:function size:0x38 -fn_8008E2E0 = .text:0x8008E2E0; // type:function size:0x120 -fn_8008E400 = .text:0x8008E400; // type:function size:0xCC -fn_8008E4CC = .text:0x8008E4CC; // type:function size:0x140 -fn_8008E60C = .text:0x8008E60C; // type:function size:0x2C -fn_8008E638 = .text:0x8008E638; // type:function size:0x2C -fn_8008E664 = .text:0x8008E664; // type:function size:0x48 -fn_8008E6AC = .text:0x8008E6AC; // type:function size:0x94 -fn_8008E740 = .text:0x8008E740; // type:function size:0x9C -fn_8008E7DC = .text:0x8008E7DC; // type:function size:0x10C -fn_8008E8E8 = .text:0x8008E8E8; // type:function size:0x130 -fn_8008EA18 = .text:0x8008EA18; // type:function size:0x74 -fn_8008EA8C = .text:0x8008EA8C; // type:function size:0x1C -fn_8008EAA8 = .text:0x8008EAA8; // type:function size:0x6C -fn_8008EB14 = .text:0x8008EB14; // type:function size:0x64 -fn_8008EB78 = .text:0x8008EB78; // type:function size:0x64 -fn_8008EBDC = .text:0x8008EBDC; // type:function size:0xC -fn_8008EBE8 = .text:0x8008EBE8; // type:function size:0xC -fn_8008EBF4 = .text:0x8008EBF4; // type:function size:0x180 -fn_8008ED74 = .text:0x8008ED74; // type:function size:0x1BC -fn_8008EF30 = .text:0x8008EF30; // type:function size:0x220 -fn_8008F150 = .text:0x8008F150; // type:function size:0x374 -fn_8008F4C4 = .text:0x8008F4C4; // type:function size:0x204 -fn_8008F6C8 = .text:0x8008F6C8; // type:function size:0xA4 -fn_8008F76C = .text:0x8008F76C; // type:function size:0xA4 -fn_8008F810 = .text:0x8008F810; // type:function size:0xA4 -fn_8008F8B4 = .text:0x8008F8B4; // type:function size:0xA4 -fn_8008F958 = .text:0x8008F958; // type:function size:0x584 -fn_8008FEDC = .text:0x8008FEDC; // type:function size:0xD34 -fn_80090C10 = .text:0x80090C10; // type:function size:0xEBC -fn_80091ACC = .text:0x80091ACC; // type:function size:0x4FC -fn_80091FC8 = .text:0x80091FC8; // type:function size:0xC8 -fn_80092090 = .text:0x80092090; // type:function size:0xE3C -fn_80092ECC = .text:0x80092ECC; // type:function size:0x3D4 -fn_800932A0 = .text:0x800932A0; // type:function size:0x1370 -fn_80094610 = .text:0x80094610; // type:function size:0x488 -fn_80094A98 = .text:0x80094A98; // type:function size:0x388 -fn_80094E20 = .text:0x80094E20; // type:function size:0xB0 -fn_80094ED0 = .text:0x80094ED0; // type:function size:0x7A4 -fn_80095674 = .text:0x80095674; // type:function size:0x9D8 -fn_8009604C = .text:0x8009604C; // type:function size:0x628 -fn_80096674 = .text:0x80096674; // type:function size:0x3C -fn_800966B0 = .text:0x800966B0; // type:function size:0x13C -fn_800967EC = .text:0x800967EC; // type:function size:0xDC -fn_800968C8 = .text:0x800968C8; // type:function size:0x584 -fn_80096E4C = .text:0x80096E4C; // type:function size:0x1C -fn_80096E68 = .text:0x80096E68; // type:function size:0x2C -fn_80096E94 = .text:0x80096E94; // type:function size:0x2C -fn_80096EC0 = .text:0x80096EC0; // type:function size:0x2C -fn_80096EEC = .text:0x80096EEC; // type:function size:0x2C -fn_80096F18 = .text:0x80096F18; // type:function size:0x284 -fn_8009719C = .text:0x8009719C; // type:function size:0x144 -fn_800972E0 = .text:0x800972E0; // type:function size:0x28C -fn_8009756C = .text:0x8009756C; // type:function size:0x208 -fn_80097774 = .text:0x80097774; // type:function size:0x1DC -fn_80097950 = .text:0x80097950; // type:function size:0x30 -fn_80097980 = .text:0x80097980; // type:function size:0x148 -fn_80097AC8 = .text:0x80097AC8; // type:function size:0x1B4 -fn_80097C7C = .text:0x80097C7C; // type:function size:0x250 -fn_80097ECC = .text:0x80097ECC; // type:function size:0x220 -fn_800980EC = .text:0x800980EC; // type:function size:0x2B0 -fn_8009839C = .text:0x8009839C; // type:function size:0x160 -fn_800984FC = .text:0x800984FC; // type:function size:0xB8 -fn_800985B4 = .text:0x800985B4; // type:function size:0x1C -fn_800985D0 = .text:0x800985D0; // type:function size:0x148 -fn_80098718 = .text:0x80098718; // type:function size:0x210 -fn_80098928 = .text:0x80098928; // type:function size:0x228 -fn_80098B50 = .text:0x80098B50; // type:function size:0x230 -fn_80098D80 = .text:0x80098D80; // type:function size:0x270 -fn_80098FF0 = .text:0x80098FF0; // type:function size:0x58 -fn_80099048 = .text:0x80099048; // type:function size:0x44 -fn_8009908C = .text:0x8009908C; // type:function size:0x150 -fn_800991DC = .text:0x800991DC; // type:function size:0x128 -fn_80099304 = .text:0x80099304; // type:function size:0x34 -fn_80099338 = .text:0x80099338; // type:function size:0x5C -fn_80099394 = .text:0x80099394; // type:function size:0xD4 -fn_80099468 = .text:0x80099468; // type:function size:0x1C -fn_80099484 = .text:0x80099484; // type:function size:0x18C -fn_80099610 = .text:0x80099610; // type:function size:0x1E8 -fn_800997F8 = .text:0x800997F8; // type:function size:0x38 -fn_80099830 = .text:0x80099830; // type:function size:0x24 -fn_80099854 = .text:0x80099854; // type:function size:0xEC -fn_80099940 = .text:0x80099940; // type:function size:0x1C8 -fn_80099B08 = .text:0x80099B08; // type:function size:0x108 -fn_80099C10 = .text:0x80099C10; // type:function size:0x160 -fn_80099D70 = .text:0x80099D70; // type:function size:0x1AC -fn_80099F1C = .text:0x80099F1C; // type:function size:0xB8 -fn_80099FD4 = .text:0x80099FD4; // type:function size:0x90 -fn_8009A064 = .text:0x8009A064; // type:function size:0x160 -fn_8009A1C4 = .text:0x8009A1C4; // type:function size:0xE4 -fn_8009A2A8 = .text:0x8009A2A8; // type:function size:0xCC -fn_8009A374 = .text:0x8009A374; // type:function size:0x40 -fn_8009A3B4 = .text:0x8009A3B4; // type:function size:0x188 -fn_8009A53C = .text:0x8009A53C; // type:function size:0x2C4 -fn_8009A800 = .text:0x8009A800; // type:function size:0x2B8 -fn_8009AAB8 = .text:0x8009AAB8; // type:function size:0x24 -fn_8009AADC = .text:0x8009AADC; // type:function size:0xC -fn_8009AAE8 = .text:0x8009AAE8; // type:function size:0x10 -fn_8009AAF8 = .text:0x8009AAF8; // type:function size:0x14C -fn_8009AC44 = .text:0x8009AC44; // type:function size:0x120 -fn_8009AD64 = .text:0x8009AD64; // type:function size:0xB4 -fn_8009AE18 = .text:0x8009AE18; // type:function size:0x88 -fn_8009AEA0 = .text:0x8009AEA0; // type:function size:0x80 -fn_8009AF20 = .text:0x8009AF20; // type:function size:0xD8 -fn_8009AFF8 = .text:0x8009AFF8; // type:function size:0x6C -fn_8009B064 = .text:0x8009B064; // type:function size:0x60 -fn_8009B0C4 = .text:0x8009B0C4; // type:function size:0x124 -fn_8009B1E8 = .text:0x8009B1E8; // type:function size:0x2C -fn_8009B214 = .text:0x8009B214; // type:function size:0x708 -fn_8009B91C = .text:0x8009B91C; // type:function size:0x1D4 -fn_8009BAF0 = .text:0x8009BAF0; // type:function size:0x1FC -fn_8009BCEC = .text:0x8009BCEC; // type:function size:0x24 -fn_8009BD10 = .text:0x8009BD10; // type:function size:0x2D0 -fn_8009BFE0 = .text:0x8009BFE0; // type:function size:0x1E8 -fn_8009C1C8 = .text:0x8009C1C8; // type:function size:0x1A0 -fn_8009C368 = .text:0x8009C368; // type:function size:0x64 -fn_8009C3CC = .text:0x8009C3CC; // type:function size:0x88 -fn_8009C454 = .text:0x8009C454; // type:function size:0x124 -fn_8009C578 = .text:0x8009C578; // type:function size:0x8C -fn_8009C604 = .text:0x8009C604; // type:function size:0x260 -fn_8009C864 = .text:0x8009C864; // type:function size:0x128 -fn_8009C98C = .text:0x8009C98C; // type:function size:0x12C -fn_8009CAB8 = .text:0x8009CAB8; // type:function size:0x58 -fn_8009CB10 = .text:0x8009CB10; // type:function size:0x64 -fn_8009CB74 = .text:0x8009CB74; // type:function size:0x24 -fn_8009CB98 = .text:0x8009CB98; // type:function size:0x10 -fn_8009CBA8 = .text:0x8009CBA8; // type:function size:0x34 -fn_8009CBDC = .text:0x8009CBDC; // type:function size:0x15C -fn_8009CD38 = .text:0x8009CD38; // type:function size:0x124 -fn_8009CE5C = .text:0x8009CE5C; // type:function size:0x74 -fn_8009CED0 = .text:0x8009CED0; // type:function size:0xC -fn_8009CEDC = .text:0x8009CEDC; // type:function size:0x340 -fn_8009D21C = .text:0x8009D21C; // type:function size:0xF8 -fn_8009D314 = .text:0x8009D314; // type:function size:0x160 -fn_8009D474 = .text:0x8009D474; // type:function size:0x5C -fn_8009D4D0 = .text:0x8009D4D0; // type:function size:0x198 -fn_8009D668 = .text:0x8009D668; // type:function size:0x18C -fn_8009D7F4 = .text:0x8009D7F4; // type:function size:0x20C -fn_8009DA00 = .text:0x8009DA00; // type:function size:0x78 -fn_8009DA78 = .text:0x8009DA78; // type:function size:0x78 -fn_8009DAF0 = .text:0x8009DAF0; // type:function size:0x68 -fn_8009DB58 = .text:0x8009DB58; // type:function size:0x68 -fn_8009DBC0 = .text:0x8009DBC0; // type:function size:0x11C -fn_8009DCDC = .text:0x8009DCDC; // type:function size:0x2C -fn_8009DD08 = .text:0x8009DD08; // type:function size:0x2A8 -fn_8009DFB0 = .text:0x8009DFB0; // type:function size:0x1D4 -fn_8009E184 = .text:0x8009E184; // type:function size:0xE8 -fn_8009E26C = .text:0x8009E26C; // type:function size:0x280 -fn_8009E4EC = .text:0x8009E4EC; // type:function size:0xC0 -fn_8009E5AC = .text:0x8009E5AC; // type:function size:0xA8 -fn_8009E654 = .text:0x8009E654; // type:function size:0x94 -fn_8009E6E8 = .text:0x8009E6E8; // type:function size:0x10 -fn_8009E6F8 = .text:0x8009E6F8; // type:function size:0xBC -fn_8009E7B4 = .text:0x8009E7B4; // type:function size:0x1D4 -fn_8009E988 = .text:0x8009E988; // type:function size:0xAC -fn_8009EA34 = .text:0x8009EA34; // type:function size:0x28 -fn_8009EA5C = .text:0x8009EA5C; // type:function size:0x4C -fn_8009EAA8 = .text:0x8009EAA8; // type:function size:0x300 -fn_8009EDA8 = .text:0x8009EDA8; // type:function size:0x4A0 -fn_8009F248 = .text:0x8009F248; // type:function size:0x9C -fn_8009F2E4 = .text:0x8009F2E4; // type:function size:0x1DC -fn_8009F4C0 = .text:0x8009F4C0; // type:function size:0x358 -fn_8009F818 = .text:0x8009F818; // type:function size:0x24 -fn_8009F83C = .text:0x8009F83C; // type:function size:0x2C -fn_8009F868 = .text:0x8009F868; // type:function size:0x214 -fn_8009FA7C = .text:0x8009FA7C; // type:function size:0x15C -fn_8009FBD8 = .text:0x8009FBD8; // type:function size:0x110 -fn_8009FCE8 = .text:0x8009FCE8; // type:function size:0x68 -fn_8009FD50 = .text:0x8009FD50; // type:function size:0x1E0 -fn_8009FF30 = .text:0x8009FF30; // type:function size:0x10C -fn_800A003C = .text:0x800A003C; // type:function size:0x190 -fn_800A01CC = .text:0x800A01CC; // type:function size:0x328 -fn_800A04F4 = .text:0x800A04F4; // type:function size:0x170 -fn_800A0664 = .text:0x800A0664; // type:function size:0x24 -fn_800A0688 = .text:0x800A0688; // type:function size:0x128 -fn_800A07B0 = .text:0x800A07B0; // type:function size:0x54 -fn_800A0804 = .text:0x800A0804; // type:function size:0x104 -fn_800A0908 = .text:0x800A0908; // type:function size:0x218 -fn_800A0B20 = .text:0x800A0B20; // type:function size:0xF4 -fn_800A0C14 = .text:0x800A0C14; // type:function size:0x178 -fn_800A0D8C = .text:0x800A0D8C; // type:function size:0x1B0 -fn_800A0F3C = .text:0x800A0F3C; // type:function size:0xDC -fn_800A1018 = .text:0x800A1018; // type:function size:0x9C -fn_800A10B4 = .text:0x800A10B4; // type:function size:0x68 -fn_800A111C = .text:0x800A111C; // type:function size:0x168 -fn_800A1284 = .text:0x800A1284; // type:function size:0x184 -fn_800A1408 = .text:0x800A1408; // type:function size:0x1C -fn_800A1424 = .text:0x800A1424; // type:function size:0x30 -fn_800A1454 = .text:0x800A1454; // type:function size:0x20 -fn_800A1474 = .text:0x800A1474; // type:function size:0x1B0 -fn_800A1624 = .text:0x800A1624; // type:function size:0x60 -fn_800A1684 = .text:0x800A1684; // type:function size:0x1C -fn_800A16A0 = .text:0x800A16A0; // type:function size:0x6FC -fn_800A1D9C = .text:0x800A1D9C; // type:function size:0x3B0 -fn_800A214C = .text:0x800A214C; // type:function size:0x3A8 -fn_800A24F4 = .text:0x800A24F4; // type:function size:0x388 -fn_800A287C = .text:0x800A287C; // type:function size:0x3A4 -fn_800A2C20 = .text:0x800A2C20; // type:function size:0x194 -fn_800A2DB4 = .text:0x800A2DB4; // type:function size:0x198 -fn_800A2F4C = .text:0x800A2F4C; // type:function size:0x174 -fn_800A30C0 = .text:0x800A30C0; // type:function size:0x200 -fn_800A32C0 = .text:0x800A32C0; // type:function size:0x20C -fn_800A34CC = .text:0x800A34CC; // type:function size:0x1C8 -fn_800A3694 = .text:0x800A3694; // type:function size:0x204 -fn_800A3898 = .text:0x800A3898; // type:function size:0xA8 -fn_800A3940 = .text:0x800A3940; // type:function size:0x430 -fn_800A3D70 = .text:0x800A3D70; // type:function size:0x8FC -fn_800A466C = .text:0x800A466C; // type:function size:0x74 -fn_800A46E0 = .text:0x800A46E0; // type:function size:0xC8 -fn_800A47A8 = .text:0x800A47A8; // type:function size:0xD0 -fn_800A4878 = .text:0x800A4878; // type:function size:0x2E4 -fn_800A4B5C = .text:0x800A4B5C; // type:function size:0x8 -fn_800A4B64 = .text:0x800A4B64; // type:function size:0x8 -fn_800A4B6C = .text:0x800A4B6C; // type:function size:0xB4 -fn_800A4C20 = .text:0x800A4C20; // type:function size:0x50 -fn_800A4C70 = .text:0x800A4C70; // type:function size:0x94 -fn_800A4D04 = .text:0x800A4D04; // type:function size:0x538 -fn_800A523C = .text:0x800A523C; // type:function size:0xF0 -fn_800A532C = .text:0x800A532C; // type:function size:0xFC -fn_800A5428 = .text:0x800A5428; // type:function size:0x3A0 -fn_800A57C8 = .text:0x800A57C8; // type:function size:0x124 -fn_800A58EC = .text:0x800A58EC; // type:function size:0xB0 -fn_800A599C = .text:0x800A599C; // type:function size:0xD4 -fn_800A5A70 = .text:0x800A5A70; // type:function size:0x68 -fn_800A5AD8 = .text:0x800A5AD8; // type:function size:0x2AC -fn_800A5D84 = .text:0x800A5D84; // type:function size:0x2AC -fn_800A6030 = .text:0x800A6030; // type:function size:0x188 -fn_800A61B8 = .text:0x800A61B8; // type:function size:0x16C -fn_800A6324 = .text:0x800A6324; // type:function size:0x164 -fn_800A6488 = .text:0x800A6488; // type:function size:0x70 -fn_800A64F8 = .text:0x800A64F8; // type:function size:0x60 -fn_800A6558 = .text:0x800A6558; // type:function size:0x1A8 -fn_800A6700 = .text:0x800A6700; // type:function size:0x3D4 -fn_800A6AD4 = .text:0x800A6AD4; // type:function size:0x64 -fn_800A6B38 = .text:0x800A6B38; // type:function size:0x84 -fn_800A6BBC = .text:0x800A6BBC; // type:function size:0x400 -fn_800A6FBC = .text:0x800A6FBC; // type:function size:0x2FC -fn_800A72B8 = .text:0x800A72B8; // type:function size:0x17C -fn_800A7434 = .text:0x800A7434; // type:function size:0x2D8 -fn_800A770C = .text:0x800A770C; // type:function size:0x188 -fn_800A7894 = .text:0x800A7894; // type:function size:0x1C8 -fn_800A7A5C = .text:0x800A7A5C; // type:function size:0xEC -fn_800A7B48 = .text:0x800A7B48; // type:function size:0x1A8 -fn_800A7CF0 = .text:0x800A7CF0; // type:function size:0x454 -fn_800A8144 = .text:0x800A8144; // type:function size:0xD8 -fn_800A821C = .text:0x800A821C; // type:function size:0x250 -fn_800A846C = .text:0x800A846C; // type:function size:0xC8 -fn_800A8534 = .text:0x800A8534; // type:function size:0x3C -fn_800A8570 = .text:0x800A8570; // type:function size:0x6D4 -fn_800A8C44 = .text:0x800A8C44; // type:function size:0x318 -fn_800A8F5C = .text:0x800A8F5C; // type:function size:0xA4 -fn_800A9000 = .text:0x800A9000; // type:function size:0xDC -fn_800A90DC = .text:0x800A90DC; // type:function size:0x21C -fn_800A92F8 = .text:0x800A92F8; // type:function size:0x84 -fn_800A937C = .text:0x800A937C; // type:function size:0x30 -fn_800A93AC = .text:0x800A93AC; // type:function size:0x1D4 -fn_800A9580 = .text:0x800A9580; // type:function size:0x184 -fn_800A9704 = .text:0x800A9704; // type:function size:0x48 -fn_800A974C = .text:0x800A974C; // type:function size:0x10C -fn_800A9858 = .text:0x800A9858; // type:function size:0xA4 -fn_800A98FC = .text:0x800A98FC; // type:function size:0xCC0 -fn_800AA5BC = .text:0x800AA5BC; // type:function size:0xA4 -fn_800AA660 = .text:0x800AA660; // type:function size:0x1FC -fn_800AA85C = .text:0x800AA85C; // type:function size:0xD4 -fn_800AA930 = .text:0x800AA930; // type:function size:0x170 -fn_800AAAA0 = .text:0x800AAAA0; // type:function size:0x88 -fn_800AAB28 = .text:0x800AAB28; // type:function size:0x20 -fn_800AAB48 = .text:0x800AAB48; // type:function size:0x24 -fn_800AAB6C = .text:0x800AAB6C; // type:function size:0x2D0 -fn_800AAE3C = .text:0x800AAE3C; // type:function size:0x1D8 -fn_800AB014 = .text:0x800AB014; // type:function size:0x950 -fn_800AB964 = .text:0x800AB964; // type:function size:0x4C -fn_800AB9B0 = .text:0x800AB9B0; // type:function size:0x488 -fn_800ABE38 = .text:0x800ABE38; // type:function size:0x2A4 -fn_800AC0DC = .text:0x800AC0DC; // type:function size:0x1C0 -fn_800AC29C = .text:0x800AC29C; // type:function size:0x7C -fn_800AC318 = .text:0x800AC318; // type:function size:0x78 -fn_800AC390 = .text:0x800AC390; // type:function size:0xB0 -fn_800AC440 = .text:0x800AC440; // type:function size:0x1CC -fn_800AC60C = .text:0x800AC60C; // type:function size:0x228 -fn_800AC834 = .text:0x800AC834; // type:function size:0x1C -fn_800AC850 = .text:0x800AC850; // type:function size:0xC0 -fn_800AC910 = .text:0x800AC910; // type:function size:0x180 -fn_800ACA90 = .text:0x800ACA90; // type:function size:0x2B0 -fn_800ACD40 = .text:0x800ACD40; // type:function size:0x44 -fn_800ACD84 = .text:0x800ACD84; // type:function size:0x38 -fn_800ACDBC = .text:0x800ACDBC; // type:function size:0x38 -fn_800ACDF4 = .text:0x800ACDF4; // type:function size:0x44 -fn_800ACE38 = .text:0x800ACE38; // type:function size:0x2B4 -fn_800AD0EC = .text:0x800AD0EC; // type:function size:0x340 -fn_800AD42C = .text:0x800AD42C; // type:function size:0x58 -fn_800AD484 = .text:0x800AD484; // type:function size:0x58 -fn_800AD4DC = .text:0x800AD4DC; // type:function size:0x38 -fn_800AD514 = .text:0x800AD514; // type:function size:0x260 -fn_800AD774 = .text:0x800AD774; // type:function size:0x88 -fn_800AD7FC = .text:0x800AD7FC; // type:function size:0x3C0 -fn_800ADBBC = .text:0x800ADBBC; // type:function size:0x108 -fn_800ADCC4 = .text:0x800ADCC4; // type:function size:0xABC -fn_800AE780 = .text:0x800AE780; // type:function size:0x168 -fn_800AE8E8 = .text:0x800AE8E8; // type:function size:0x58 -fn_800AE940 = .text:0x800AE940; // type:function size:0x4F4 -fn_800AEE34 = .text:0x800AEE34; // type:function size:0x310 -fn_800AF144 = .text:0x800AF144; // type:function size:0x264 -fn_800AF3A8 = .text:0x800AF3A8; // type:function size:0x110 -fn_800AF4B8 = .text:0x800AF4B8; // type:function size:0x48 -fn_800AF500 = .text:0x800AF500; // type:function size:0xD4 -fn_800AF5D4 = .text:0x800AF5D4; // type:function size:0x1CC -fn_800AF7A0 = .text:0x800AF7A0; // type:function size:0x178 -fn_800AF918 = .text:0x800AF918; // type:function size:0x238 -fn_800AFB50 = .text:0x800AFB50; // type:function size:0x3B0 -fn_800AFF00 = .text:0x800AFF00; // type:function size:0x154 -fn_800B0054 = .text:0x800B0054; // type:function size:0x390 -fn_800B03E4 = .text:0x800B03E4; // type:function size:0x3E4 -fn_800B07C8 = .text:0x800B07C8; // type:function size:0x240 -fn_800B0A08 = .text:0x800B0A08; // type:function size:0x210 -fn_800B0C18 = .text:0x800B0C18; // type:function size:0x70 -fn_800B0C88 = .text:0x800B0C88; // type:function size:0x1B8 -fn_800B0E40 = .text:0x800B0E40; // type:function size:0x12C -fn_800B0F6C = .text:0x800B0F6C; // type:function size:0x1A4 -fn_800B1110 = .text:0x800B1110; // type:function size:0x10C -fn_800B121C = .text:0x800B121C; // type:function size:0xDC -fn_800B12F8 = .text:0x800B12F8; // type:function size:0x34 -fn_800B132C = .text:0x800B132C; // type:function size:0x12C -fn_800B1458 = .text:0x800B1458; // type:function size:0x4C -fn_800B14A4 = .text:0x800B14A4; // type:function size:0xC0 -fn_800B1564 = .text:0x800B1564; // type:function size:0x60 -fn_800B15C4 = .text:0x800B15C4; // type:function size:0x180 -fn_800B1744 = .text:0x800B1744; // type:function size:0xE4 -fn_800B1828 = .text:0x800B1828; // type:function size:0xB4 -fn_800B18DC = .text:0x800B18DC; // type:function size:0xD0 -fn_800B19AC = .text:0x800B19AC; // type:function size:0x30 -fn_800B19DC = .text:0x800B19DC; // type:function size:0xAC -fn_800B1A88 = .text:0x800B1A88; // type:function size:0xF0 -fn_800B1B78 = .text:0x800B1B78; // type:function size:0x74C -fn_800B22C4 = .text:0x800B22C4; // type:function size:0x3E4 -fn_800B26A8 = .text:0x800B26A8; // type:function size:0x65C -fn_800B2D04 = .text:0x800B2D04; // type:function size:0x488 -fn_800B318C = .text:0x800B318C; // type:function size:0x45C -fn_800B35E8 = .text:0x800B35E8; // type:function size:0x4E0 -fn_800B3AC8 = .text:0x800B3AC8; // type:function size:0x34 -fn_800B3AFC = .text:0x800B3AFC; // type:function size:0x80 -fn_800B3B7C = .text:0x800B3B7C; // type:function size:0x4C -fn_800B3BC8 = .text:0x800B3BC8; // type:function size:0x8 -fn_800B3BD0 = .text:0x800B3BD0; // type:function size:0x44 -fn_800B3C14 = .text:0x800B3C14; // type:function size:0x78 -fn_800B3C8C = .text:0x800B3C8C; // type:function size:0x10C -fn_800B3D98 = .text:0x800B3D98; // type:function size:0xBC -fn_800B3E54 = .text:0x800B3E54; // type:function size:0x10 -fn_800B3E64 = .text:0x800B3E64; // type:function size:0x40 -fn_800B3EA4 = .text:0x800B3EA4; // type:function size:0x8 -fn_800B3EAC = .text:0x800B3EAC; // type:function size:0x8 -fn_800B3EB4 = .text:0x800B3EB4; // type:function size:0x30 +SeqMakeWord = .text:0x80036D50; // type:function size:0x1E4 scope:local +SeqLoadFontChar = .text:0x80036F34; // type:function size:0x23C scope:local +SeqInitMGBasic = .text:0x80037170; // type:function size:0x194 scope:local +SeqUpdateMGBasic = .text:0x80037304; // type:function size:0x9D0 scope:local +SeqInitMGCommon = .text:0x80037CD4; // type:function size:0x2A4 scope:local +SeqUpdateMGBattle = .text:0x80037F78; // type:function size:0xDA4 scope:local +SeqUpdateMG1vs3 = .text:0x80038D1C; // type:function size:0xDA4 scope:local +SeqUpdateMGStory = .text:0x80039AC0; // type:function size:0xBB8 scope:local +SeqUpdateMG2vs2 = .text:0x8003A678; // type:function size:0xAB4 scope:local +SeqInitFlip = .text:0x8003B12C; // type:function size:0x3C4 scope:local +SeqUpdateFlip = .text:0x8003B4F0; // type:function size:0x91C scope:local +SeqUpdateMGBowser = .text:0x8003BE0C; // type:function size:0xC84 scope:local +SeqInitDraw = .text:0x8003CA90; // type:function size:0xDC scope:local +SeqUpdateDraw = .text:0x8003CB6C; // type:function size:0x3DC scope:local +SeqInitWin = .text:0x8003CF48; // type:function size:0x6B8 scope:local +SeqUpdateWin = .text:0x8003D600; // type:function size:0x708 scope:local +SeqInitRecord = .text:0x8003DD08; // type:function size:0x774 scope:local +SeqUpdateRecord = .text:0x8003E47C; // type:function size:0x304 scope:local +MGSeqPauseInit = .text:0x8003E780; // type:function size:0x6C +PauseProc = .text:0x8003E7EC; // type:function size:0x94C scope:local +MGSeqPauseKill = .text:0x8003F138; // type:function size:0xC +MGSeqPauseEnableCtrl = .text:0x8003F144; // type:function size:0x40 +MGSeqPracticeInit = .text:0x8003F184; // type:function size:0xDC +PracticeProc = .text:0x8003F260; // type:function size:0x234 scope:local +SeqPlayStartFX = .text:0x8003F494; // type:function size:0xD4 scope:local +MGSeqPracticeExitCheck = .text:0x8003F568; // type:function size:0x128 +espInit = .text:0x8003F690; // type:function size:0xA0 +espEntry = .text:0x8003F730; // type:function size:0x1B0 +espKill = .text:0x8003F8E0; // type:function size:0x98 +espGrpIDGet = .text:0x8003F978; // type:function size:0x8 +espDispOn = .text:0x8003F980; // type:function size:0x44 +espDispOff = .text:0x8003F9C4; // type:function size:0x44 +espAttrSet = .text:0x8003FA08; // type:function size:0x48 +espAttrReset = .text:0x8003FA50; // type:function size:0x48 +espPosSet = .text:0x8003FA98; // type:function size:0x50 +espScaleSet = .text:0x8003FAE8; // type:function size:0x50 +espZRotSet = .text:0x8003FB38; // type:function size:0x48 +espTPLvlSet = .text:0x8003FB80; // type:function size:0x48 +espColorSet = .text:0x8003FBC8; // type:function size:0x58 +espSpeedSet = .text:0x8003FC20; // type:function size:0x48 +espBankSet = .text:0x8003FC68; // type:function size:0x48 +espDrawNoSet = .text:0x8003FCB0; // type:function size:0x48 +espPriSet = .text:0x8003FCF8; // type:function size:0x48 +fn_8003FF68 = .text:0x8003FD40; // type:function size:0x268 +fn_800401D0 = .text:0x8003FFA8; // type:function size:0x12C +fn_800402FC = .text:0x800400D4; // type:function size:0x78 +fn_80040374 = .text:0x8004014C; // type:function size:0x98 +fn_8004040C = .text:0x800401E4; // type:function size:0xF4 +GetClusterCurve = .text:0x800402D8; // type:function size:0xA8 +GetClusterWeightCurve = .text:0x80040380; // type:function size:0xA8 +SetClusterMain = .text:0x80040428; // type:function size:0x3A0 +ClusterProc = .text:0x800407C8; // type:function size:0x160 +ClusterMotionExec = .text:0x80040928; // type:function size:0x210 +SetShapeMain = .text:0x80040B38; // type:function size:0x36C scope:local +ShapeProc = .text:0x80040EA4; // type:function size:0xA4 +WipeInit = .text:0x80040F48; // type:function size:0xB4 +WipeExecAlways = .text:0x80040FFC; // type:function size:0x288 +WipeCreate = .text:0x80041284; // type:function size:0x12C +WipeColorSet = .text:0x800413B0; // type:function size:0x28 +WipeStatGet = .text:0x800413D8; // type:function size:0x10 +WipeDummyFade = .text:0x800413E8; // type:function size:0x8 scope:local +WipeNormalFade = .text:0x800413F0; // type:function size:0xFC scope:local +WipeColorFill = .text:0x800414EC; // type:function size:0x31C scope:local +WipeCrossFade = .text:0x80041808; // type:function size:0x184 scope:local +WipeFrameStill = .text:0x8004198C; // type:function size:0x4C8 scope:local +HuWindowInit = .text:0x80041E54; // type:function size:0x74 +HuWinInit = .text:0x80041EC8; // type:function size:0x214 +HuWinCreate = .text:0x800420DC; // type:function size:0x54C +HuWinKill = .text:0x80042628; // type:function size:0xA4 +HuWinAllKill = .text:0x800426CC; // type:function size:0x1AC +MesDispFunc = .text:0x80042878; // type:function size:0x7D0 scope:local +winBGMake = .text:0x80043048; // type:function size:0x480 scope:local +HuWinProc = .text:0x800434C8; // type:function size:0xF4 scope:local +HuWinDrawMes = .text:0x800435BC; // type:function size:0x1044 scope:local +HuWinCR = .text:0x80044600; // type:function size:0x54 scope:local +_HuWinHomeClear = .text:0x80044654; // type:function size:0x90 scope:local +HuWinHomeClear = .text:0x800446E4; // type:function size:0xA4 +HuWinKeyWaitEntry = .text:0x80044788; // type:function size:0x88 +HuWinKeyWait = .text:0x80044810; // type:function size:0x10C scope:local +HuWinSpcFontEntry = .text:0x8004491C; // type:function size:0x1A4 scope:local +HuWinSpcFontClear = .text:0x80044AC0; // type:function size:0x80 scope:local +HuWinChoice = .text:0x80044B40; // type:function size:0xA90 scope:local +HuWinActivePadGet = .text:0x800455D0; // type:function size:0x68 +HuWinActiveKeyGetX = .text:0x80045638; // type:function size:0xE8 +HuWinPosSet = .text:0x80045720; // type:function size:0x6C +HuWinScaleSet = .text:0x8004578C; // type:function size:0x6C +HuWinZRotSet = .text:0x800457F8; // type:function size:0x58 +HuWinCenterPosSet = .text:0x80045850; // type:function size:0xAC +HuWinDrawNoSet = .text:0x800458FC; // type:function size:0x4C +HuWinScissorSet = .text:0x80045948; // type:function size:0x64 +HuWinPriSet = .text:0x800459AC; // type:function size:0xB8 +HuWinAttrSet = .text:0x80045A64; // type:function size:0x34 +HuWinAttrReset = .text:0x80045A98; // type:function size:0x34 +HuWinStatGet = .text:0x80045ACC; // type:function size:0x2C +HuWinMesColSet = .text:0x80045AF8; // type:function size:0x3C +HuWinMesPalSet = .text:0x80045B34; // type:function size:0x58 +HuWinBGTPLvlSet = .text:0x80045B8C; // type:function size:0x50 +HuWinBGColSet = .text:0x80045BDC; // type:function size:0x60 +HuWinMesSpeedSet = .text:0x80045C3C; // type:function size:0x2C +HuWinMesRead = .text:0x80045C68; // type:function size:0xC4 +HuWinMesSet = .text:0x80045D2C; // type:function size:0xC8 +HuWinInsertMesSet = .text:0x80045DF4; // type:function size:0xD8 +HuWinChoiceGet = .text:0x80045ECC; // type:function size:0x27C +HuWinChoiceNumGet = .text:0x80046148; // type:function size:0x2C +HuWinChoiceDisable = .text:0x80046174; // type:function size:0x38 +HuWinChoiceNowGet = .text:0x800461AC; // type:function size:0x40 +HuWinMesWait = .text:0x800461EC; // type:function size:0x50 +HuWinAnimSet = .text:0x8004623C; // type:function size:0x8C +HuWinSprSet = .text:0x800462C8; // type:function size:0xF0 +HuWinSprPosSet = .text:0x800463B8; // type:function size:0x88 +HuWinSprPriSet = .text:0x80046440; // type:function size:0x6C +HuWinSprIDGet = .text:0x800464AC; // type:function size:0x38 +HuWinSprKill = .text:0x800464E4; // type:function size:0x68 +HuWinDispOff = .text:0x8004654C; // type:function size:0x90 +HuWinDispOn = .text:0x800465DC; // type:function size:0x90 +HuWinComKeyWait = .text:0x8004666C; // type:function size:0xC0 +HuWinComKeySet = .text:0x8004672C; // type:function size:0x44 +_HuWinComKeySet = .text:0x80046770; // type:function size:0x98 +HuWinComKeyGet = .text:0x80046808; // type:function size:0x1D4 +HuWinComKeyReset = .text:0x800469DC; // type:function size:0x10 +HuWinMesMaxSizeGet = .text:0x800469EC; // type:function size:0x170 +HuWinInsertMesSizeGet = .text:0x80046B5C; // type:function size:0x54 +HuWinMesSizeCancelCRSet = .text:0x80046BB0; // type:function size:0x8 +HuWinMesMaxSizeBetGet = .text:0x80046BB8; // type:function size:0x114 +GetMesMaxSizeSub = .text:0x80046CCC; // type:function size:0x2A0 scope:local +GetMesMaxSizeSub2 = .text:0x80046F6C; // type:function size:0x1CC scope:local +HuWinKeyWaitNumGet = .text:0x80047138; // type:function size:0x88 +HuWinPushKeySet = .text:0x800471C0; // type:function size:0x2C +HuWinDisablePlayerSet = .text:0x800471EC; // type:function size:0x34 +HuWinDisablePlayerReset = .text:0x80047220; // type:function size:0x38 +HuWinExCreate = .text:0x80047258; // type:function size:0x4C +HuWinExCreateStyled = .text:0x800472A4; // type:function size:0x228 +HuWinExAnimIn = .text:0x800474CC; // type:function size:0x3B0 +HuWinExAnimOut = .text:0x8004787C; // type:function size:0x304 +HuWinExCleanup = .text:0x80047B80; // type:function size:0xA4 +HuWinExAnimPopIn = .text:0x80047C24; // type:function size:0x264 +MessData_MesPtrGet = .text:0x80047E88; // type:function size:0xE8 +HuCardInit = .text:0x80047F70; // type:function size:0x34 +HuCardCheck = .text:0x80047FA4; // type:function size:0xC4 +HuCardSlotCheck = .text:0x80048068; // type:function size:0x58 +HuCardMount = .text:0x800480C0; // type:function size:0xEC +HuCardUnMount = .text:0x800481AC; // type:function size:0x28 +HuCardFormat = .text:0x800481D4; // type:function size:0x50 +MountCallBack = .text:0x80048224; // type:function size:0x1C scope:local +HuCardOpen = .text:0x80048240; // type:function size:0x70 +HuCardRead = .text:0x800482B0; // type:function size:0x68 +HuCardCreate = .text:0x80048318; // type:function size:0x100 +HuCardClose = .text:0x80048418; // type:function size:0x38 +HuCardWrite = .text:0x80048450; // type:function size:0x50 +HuCardDelete = .text:0x800484A0; // type:function size:0x40 +HuCardSectorSizeGet = .text:0x800484E0; // type:function size:0x4C +HuCardFreeSpaceGet = .text:0x8004852C; // type:function size:0x48 +HuARInit = .text:0x80048574; // type:function size:0x148 +HuARMalloc = .text:0x800486BC; // type:function size:0x16C +HuARFree = .text:0x80048828; // type:function size:0x16C +HuAMemDump = .text:0x80048994; // type:function size:0xA8 +HuAR_DVDtoARAM = .text:0x80048A3C; // type:function size:0x160 +ArqCallBack = .text:0x80048B9C; // type:function size:0x10 scope:local +HuAR_MRAMtoARAM = .text:0x80048BAC; // type:function size:0x2C +HuAR_MRAMtoARAM2 = .text:0x80048BD8; // type:function size:0x140 +HuAR_ARAMtoMRAM = .text:0x80048D18; // type:function size:0x2C +HuAR_ARAMtoMRAMNum = .text:0x80048D44; // type:function size:0x1F0 +ArqCallBackAM = .text:0x80048F34; // type:function size:0x44 scope:local +HuARDMACheck = .text:0x80048F78; // type:function size:0x8 +HuARDirCheck = .text:0x80048F80; // type:function size:0x58 +HuARDirFree = .text:0x80048FD8; // type:function size:0x68 +HuAR_ARAMtoMRAMFileRead = .text:0x80049040; // type:function size:0x390 +ArqCallBackAMFileRead = .text:0x800493D0; // type:function size:0x10 scope:local +CharManInit = .text:0x800493E0; // type:function size:0x134 +CharAMemPtrGet = .text:0x80049514; // type:function size:0x1C +CharARAMOpen = .text:0x80049530; // type:function size:0x98 +CharARAMClose = .text:0x800495C8; // type:function size:0x58 +CharKill = .text:0x80049620; // type:function size:0x428 +CharKillAll = .text:0x80049A48; // type:function size:0x3C +CharModelCreate = .text:0x80049A84; // type:function size:0x180 +UpdateChar = .text:0x80049C04; // type:function size:0x20C scope:local +UpdateCharAnim = .text:0x80049E10; // type:function size:0x173C scope:local +PlayCharVoice = .text:0x8004B54C; // type:function size:0xB0 scope:local +InitEffect = .text:0x8004B5FC; // type:function size:0x254 scope:local +CreateEffectDust = .text:0x8004B850; // type:function size:0xB0 scope:local +CreateEffectSmoke = .text:0x8004B900; // type:function size:0xB0 scope:local +CreateEffectDot = .text:0x8004B9B0; // type:function size:0xB0 scope:local +CreateEffectStar = .text:0x8004BA60; // type:function size:0xB0 scope:local +CreateEffectWarn = .text:0x8004BB10; // type:function size:0xB0 scope:local +CreateEffectBird = .text:0x8004BBC0; // type:function size:0xB0 scope:local +CreateEffect = .text:0x8004BC70; // type:function size:0x1CC scope:local +UpdateEffect = .text:0x8004BE3C; // type:function size:0x4A0 scope:local +RotateEffect = .text:0x8004C2DC; // type:function size:0x1E8 scope:local +PlayEffectSound = .text:0x8004C4C4; // type:function size:0x344 scope:local +CharModelMotionCreate = .text:0x8004C808; // type:function size:0x1D0 +CharModelMotionIndexSet = .text:0x8004C9D8; // type:function size:0x88 +CharModelMotionKill = .text:0x8004CA60; // type:function size:0x9C +CharModelMotionDataClose = .text:0x8004CAFC; // type:function size:0x2B8 +CharModelDataClose = .text:0x8004CDB4; // type:function size:0x430 +CharModelKill = .text:0x8004D1E4; // type:function size:0x244 +CharModelMotionSet = .text:0x8004D428; // type:function size:0x7C +CharModelTexAnimSet = .text:0x8004D4A4; // type:function size:0x17C +CharModelTexNameGet = .text:0x8004D620; // type:function size:0x7C +CharModelHookNameGet = .text:0x8004D69C; // type:function size:0x7C +CharModelMotionTimeSet = .text:0x8004D718; // type:function size:0x4C +CharModelMotionTimeGet = .text:0x8004D764; // type:function size:0x44 +CharModelMotionMaxTimeGet = .text:0x8004D7A8; // type:function size:0x44 +CharModelMotionEndCheck = .text:0x8004D7EC; // type:function size:0x44 +CharModelMotionShiftIDGet = .text:0x8004D830; // type:function size:0x44 +CharModelMotionShiftSet = .text:0x8004D874; // type:function size:0x84 +CharModelMotionShiftTimeGet = .text:0x8004D8F8; // type:function size:0x44 +CharModelMotionSpeedSet = .text:0x8004D93C; // type:function size:0x4C +CharModelLayerSetAll = .text:0x8004D988; // type:function size:0x80 +CharModelItemHookCreate = .text:0x8004DA08; // type:function size:0x1D4 +UpdateItemHook = .text:0x8004DBDC; // type:function size:0x484 scope:local +CharModelEffectCreate = .text:0x8004E060; // type:function size:0x3FC +OrbitEffect = .text:0x8004E45C; // type:function size:0x168 scope:local +CharModelCoinEffectCreate = .text:0x8004E5C4; // type:function size:0x1A0 +fn_8004EC74 = .text:0x8004E764; // type:function size:0x130 +fn_8004EDA4 = .text:0x8004E894; // type:function size:0x2B4 +fn_8004F058 = .text:0x8004EB48; // type:function size:0xE4 +fn_8004F13C = .text:0x8004EC2C; // type:function size:0x2B4 +CharModelLayerSetAll2 = .text:0x8004EEE0; // type:function size:0x80 +CharModelVoiceEnableSet = .text:0x8004EF60; // type:function size:0xBC +fn_8004F52C = .text:0x8004F01C; // type:function size:0x4C +CharModelEffectEnableSet = .text:0x8004F068; // type:function size:0xB0 +CharModelEffectNpcInit = .text:0x8004F118; // type:function size:0x2CC +CharModelEffectNpcInitSilent = .text:0x8004F3E4; // type:function size:0x2CC +UpdateNpcEffect = .text:0x8004F6B0; // type:function size:0xF80 scope:local +CharModelStepTypeSet = .text:0x80050630; // type:function size:0x30 +PlayStepFX = .text:0x80050660; // type:function size:0xEC scope:local +MapWall = .text:0x8005074C; // type:function size:0x1B8 +MapWallCheck = .text:0x80050904; // type:function size:0x110 +MapPos = .text:0x80050A14; // type:function size:0x2A8 +PolygonRangeCheck = .text:0x80050CBC; // type:function size:0x38C scope:local +DefIfnnerMapCircle = .text:0x80051048; // type:function size:0x470 scope:local +CalcPPLength = .text:0x800514B8; // type:function size:0x5D4 scope:local +MapIflnnerCalc = .text:0x80051A8C; // type:function size:0xF4 scope:local +MapCalcPoint = .text:0x80051B80; // type:function size:0x388 scope:local +AreaCheck = .text:0x80051F08; // type:function size:0x148 scope:local +MapIflnnerTriangle = .text:0x80052050; // type:function size:0x518 scope:local +MapIflnnerQuadrangle = .text:0x80052568; // type:function size:0x994 scope:local +GetPolygonCircleMtx = .text:0x80052EFC; // type:function size:0xC28 scope:local +PrecalcPntToTriangle = .text:0x80053B24; // type:function size:0x43C scope:local +Hitcheck_Triangle_with_Sphere = .text:0x80053F60; // type:function size:0x100 +Hitcheck_Quadrangle_with_Sphere = .text:0x80054060; // type:function size:0x19C +DefSetHitFace = .text:0x800541FC; // type:function size:0x4C scope:local +AppendAddXZ = .text:0x80054248; // type:function size:0x184 +CharRotInv = .text:0x800543CC; // type:function size:0x124 +THPSimpleInit = .text:0x800544F0; // type:function size:0x124 +THPSimpleQuit = .text:0x80054614; // type:function size:0x54 +THPSimpleOpen = .text:0x80054668; // type:function size:0x408 +THPSimpleClose = .text:0x80054A70; // type:function size:0xC0 +THPSimpleCalcNeedMemory = .text:0x80054B30; // type:function size:0x184 +THPSimpleSetBuffer = .text:0x80054CB4; // type:function size:0x240 +__THPSimpleDVDCallback = .text:0x80054EF4; // type:function size:0x2A4 scope:local +THPSimplePreLoad = .text:0x80055198; // type:function size:0x2A4 +THPSimpleAudioStart = .text:0x8005543C; // type:function size:0x14 +THPSimpleAudioStop = .text:0x80055450; // type:function size:0x14 +THPSimpleLoadStop = .text:0x80055464; // type:function size:0x1B8 +THPSimpleDecode = .text:0x8005561C; // type:function size:0x47C +VideoDecode = .text:0x80055A98; // type:function size:0xD8 scope:local +THPSimpleDrawCurrentFrame = .text:0x80055B70; // type:function size:0x104 +MixAudio = .text:0x80055C74; // type:function size:0x5F8 scope:local +THPSimpleGetVideoInfo = .text:0x8005626C; // type:function size:0x58 +THPSimpleGetTotalFrame = .text:0x800562C4; // type:function size:0x2C +THPAudioMixCallback = .text:0x800562F0; // type:function size:0x188 scope:local +THPSimpleSetVolume = .text:0x80056478; // type:function size:0x17C +THPGXRestore = .text:0x800565F4; // type:function size:0x130 +THPGXYuv2RgbSetup = .text:0x80056724; // type:function size:0x5A0 +THPGXYuv2RgbDraw = .text:0x80056CC4; // type:function size:0x288 +HuTHPSprCreateVol = .text:0x80056F4C; // type:function size:0x108 +HuTHPSprCreate = .text:0x80057054; // type:function size:0x110 +HuTHP3DCreateVol = .text:0x80057164; // type:function size:0xF8 +HuTHP3DCreate = .text:0x8005725C; // type:function size:0x100 +HuTHPStop = .text:0x8005735C; // type:function size:0xC +HuTHPClose = .text:0x80057368; // type:function size:0xC +HuTHPRestart = .text:0x80057374; // type:function size:0xC +HuTHPEndCheck = .text:0x80057380; // type:function size:0x54 +HuTHPFrameGet = .text:0x800573D4; // type:function size:0x8 +HuTHPTotalFrameGet = .text:0x800573DC; // type:function size:0x20 +HuTHPSetVolume = .text:0x800573FC; // type:function size:0x30 +THPTestProc = .text:0x8005742C; // type:function size:0x27C scope:local +THPViewFunc = .text:0x800576A8; // type:function size:0xA4 scope:local +THPViewSprFunc = .text:0x8005774C; // type:function size:0x17C scope:local +THPDecodeFunc = .text:0x800578C8; // type:function size:0x4C scope:local +omMgIndexGet = .text:0x80057914; // type:function size:0x5C +omGameSysInit = .text:0x80057970; // type:function size:0xF4 +omVibrate = .text:0x80057A64; // type:function size:0x9C +_CheckFlag = .text:0x80057B00; // type:function size:0xA0 +_SetFlag = .text:0x80057BA0; // type:function size:0xA4 +_ClearFlag = .text:0x80057C44; // type:function size:0xA4 +_InitFlag = .text:0x80057CE8; // type:function size:0x30 +SLFileOpen = .text:0x80057D18; // type:function size:0x140 +SLFileCreate = .text:0x80057E58; // type:function size:0x280 +SLFileWrite = .text:0x800580D8; // type:function size:0x10C +SLFileRead = .text:0x800581E4; // type:function size:0x84 +SLFileClose = .text:0x80058268; // type:function size:0x4C +SLCurSlotNoSet = .text:0x800582B4; // type:function size:0x8 +SLCurBoxNoSet = .text:0x800582BC; // type:function size:0xC +SLSaveFlagSet = .text:0x800582C8; // type:function size:0x40 +SLSaveFlagGet = .text:0x80058308; // type:function size:0x8 +SLSaveDataMake = .text:0x80058310; // type:function size:0x154 +SLSaveDataInfoSet = .text:0x80058464; // type:function size:0x2A0 +SLCommonSet = .text:0x80058704; // type:function size:0x2DC +SLSaveBoard = .text:0x800589E0; // type:function size:0x8C +SLSaveBoardStory = .text:0x80058A6C; // type:function size:0x8C +SLSave = .text:0x80058AF8; // type:function size:0x370 +SLCreateSaveWin = .text:0x80058E68; // type:function size:0xDC scope:local +SLKillSaveWin = .text:0x80058F44; // type:function size:0x48 scope:local +SLLoad = .text:0x80058F8C; // type:function size:0x110 +SLLoadGameStat = .text:0x8005909C; // type:function size:0x38 +SLLoadBoard = .text:0x800590D4; // type:function size:0x1A0 +SLLoadBoardStory = .text:0x80059274; // type:function size:0x184 +SLSerialNoGet = .text:0x800593F8; // type:function size:0x28 +SLSerialNoCheck = .text:0x80059420; // type:function size:0xA0 +SLCheckSumCheck = .text:0x800594C0; // type:function size:0x60 +SLCheckSumGet = .text:0x80059520; // type:function size:0x54 +SLCheckSumSet = .text:0x80059574; // type:function size:0x90 +SLStatSet = .text:0x80059604; // type:function size:0x1D4 +SLCardMount = .text:0x800597D8; // type:function size:0x12C +SLFormat = .text:0x80059904; // type:function size:0x624 +SLMessOut = .text:0x80059F28; // type:function size:0x3FC +HuSoftResetButtonCheck = .text:0x8005A324; // type:function size:0x50 +HuDvdErrDispIntFunc = .text:0x8005A374; // type:function size:0x28 +HuDvdErrDispInit = .text:0x8005A39C; // type:function size:0x1F4 +ToeThreadFunc = .text:0x8005A590; // type:function size:0xD8 scope:local +ToeDispCheck = .text:0x8005A668; // type:function size:0x128 scope:local +_HuDvdErrDispXFB = .text:0x8005A790; // type:function size:0x2D0 scope:local +HuRestartSystem = .text:0x8005AA60; // type:function size:0xDC +HuSoftResetCheck = .text:0x8005AB3C; // type:function size:0xFC scope:local +HuSoftResetCountCheck = .text:0x8005AC38; // type:function size:0xCC scope:local +HuSoftResetPostProc = .text:0x8005AD04; // type:function size:0x78 scope:local +BoardObjectSetup = .text:0x8005AD7C; // type:function size:0x2E0 +InitBoardFunc = .text:0x8005B05C; // type:function size:0x64 scope:local +ExecBoardFunc = .text:0x8005B0C0; // type:function size:0x9C scope:local +KillBoardFunc = .text:0x8005B15C; // type:function size:0xCC scope:local +BoardKill = .text:0x8005B228; // type:function size:0xAC +BoardIsKill = .text:0x8005B2D4; // type:function size:0x48 +BoardPauseDisableSet = .text:0x8005B31C; // type:function size:0x74 +BoardPauseDisableGet = .text:0x8005B390; // type:function size:0x48 +BoardSaveInit = .text:0x8005B3D8; // type:function size:0x524 +BoardStoryConfigSet = .text:0x8005B8FC; // type:function size:0x160 +BoardPartyConfigSet = .text:0x8005BA5C; // type:function size:0x160 +DestroyMainFunc = .text:0x8005BBBC; // type:function size:0xC scope:local +MainFunc = .text:0x8005BBC8; // type:function size:0x7D0 scope:local +BoardTurnNext = .text:0x8005C398; // type:function size:0x8C +ExecTurnStart = .text:0x8005C424; // type:function size:0x28C scope:local +BoardNextOvlSet = .text:0x8005C6B0; // type:function size:0xC4 +BoardStartCheck = .text:0x8005C774; // type:function size:0x8C +CreateBoard = .text:0x8005C800; // type:function size:0x410 scope:local +DestroyBoard = .text:0x8005CC10; // type:function size:0x128 scope:local +BoardLightHookSet = .text:0x8005CD38; // type:function size:0xC +BoardLightSetExec = .text:0x8005CD44; // type:function size:0x44 +BoardLightResetExec = .text:0x8005CD88; // type:function size:0x50 +BoardCameraBackup = .text:0x8005CDD8; // type:function size:0x3C +BoardCameraRestore = .text:0x8005CE14; // type:function size:0x48 +BoardCameraScissorSet = .text:0x8005CE5C; // type:function size:0x54 +BoardCameraViewSet = .text:0x8005CEB0; // type:function size:0x2AC +BoardCameraPosGet = .text:0x8005D15C; // type:function size:0x48 +BoardCameraTargetGet = .text:0x8005D1A4; // type:function size:0x48 +BoardCameraRotGet = .text:0x8005D1EC; // type:function size:0x48 +BoardCameraZoomGet = .text:0x8005D234; // type:function size:0x20 +BoardCameraDirGet = .text:0x8005D254; // type:function size:0xA8 +BoardCameraPointDirGet = .text:0x8005D2FC; // type:function size:0xBC +BoardCameraMaskSet = .text:0x8005D3B8; // type:function size:0x28 +BoardCameraMoveSet = .text:0x8005D3E0; // type:function size:0x50 +BoardCameraOffsetSet = .text:0x8005D430; // type:function size:0x30 +BoardCameraTargetPlayerSet = .text:0x8005D460; // type:function size:0xB4 +BoardCameraTargetModelSet = .text:0x8005D514; // type:function size:0x40 +BoardCameraTargetSpaceSet = .text:0x8005D554; // type:function size:0x44 +BoardCameraPosCalcFuncSet = .text:0x8005D598; // type:function size:0x28 +BoardCameraQuakeSet = .text:0x8005D5C0; // type:function size:0x3C +BoardCameraQuakeReset = .text:0x8005D5FC; // type:function size:0x3C +BoardCameraTargetSet = .text:0x8005D638; // type:function size:0x28 +BoardCameraPosSet = .text:0x8005D660; // type:function size:0x28 +BoardCameraXRotZoomSet = .text:0x8005D688; // type:function size:0x24 +BoardCameraZoomSet = .text:0x8005D6AC; // type:function size:0x20 +BoardCameraRotSet = .text:0x8005D6CC; // type:function size:0x24 +BoardCameraNearFarSet = .text:0x8005D6F0; // type:function size:0x24 +BoardCameraNearFarGet = .text:0x8005D714; // type:function size:0x3C +BoardCameraMotionStart = .text:0x8005D750; // type:function size:0x48 +BoardCameraMotionStartEx = .text:0x8005D798; // type:function size:0x230 +BoardCameraFovSet = .text:0x8005D9C8; // type:function size:0x20 +BoardCameraCullCheck = .text:0x8005D9E8; // type:function size:0x2BC +BoardCameraMotionIsDone = .text:0x8005DCA4; // type:function size:0x48 +BoardCameraMotionWait = .text:0x8005DCEC; // type:function size:0x58 +BoardCameraInit = .text:0x8005DD44; // type:function size:0x24C +UpdateCamera = .text:0x8005DF90; // type:function size:0x350 scope:local +CalcCameraTarget = .text:0x8005E2E0; // type:function size:0xE4 scope:local +CalcCameraPos = .text:0x8005E3C4; // type:function size:0x764 scope:local +BoardMGDoneFlagSet = .text:0x8005EB28; // type:function size:0x48 +BoardMGDoneFlagGet = .text:0x8005EB70; // type:function size:0x48 +BoardMGExit = .text:0x8005EBB8; // type:function size:0x170 +KillBoardMG = .text:0x8005ED28; // type:function size:0x60 scope:local +ExecBoardMG = .text:0x8005ED88; // type:function size:0xC4 scope:local +BoardMGCreate = .text:0x8005EE4C; // type:function size:0x74 +BoardEventFlagSet = .text:0x8005EEC0; // type:function size:0x28 +BoardEventFlagReset = .text:0x8005EEE8; // type:function size:0x28 +BoardEventFlagGet = .text:0x8005EF10; // type:function size:0x48 +BoardMTXCalcLookAt = .text:0x8005EF58; // type:function size:0x10C +BoardArcSin = .text:0x8005F064; // type:function size:0x330 +BoardArcCos = .text:0x8005F394; // type:function size:0x390 +BoardRandInit = .text:0x8005F724; // type:function size:0x24 +BoardRand = .text:0x8005F748; // type:function size:0x24 +BoardRandMod = .text:0x8005F76C; // type:function size:0x50 +BoardRandFloat = .text:0x8005F7BC; // type:function size:0x58 +BoardVecDistXZCalc = .text:0x8005F814; // type:function size:0x134 +BoardVecMaxDistXZCheck = .text:0x8005F948; // type:function size:0x15C +BoardDAngleCalcVec = .text:0x8005FAA4; // type:function size:0x7C +BoardDAngleCalc = .text:0x8005FB20; // type:function size:0x34 +BoardDAngleCalcRange = .text:0x8005FB54; // type:function size:0x1C0 +BoardVecMinDistCheck = .text:0x8005FD14; // type:function size:0x6C +BoardFilterFadeOut = .text:0x8005FD80; // type:function size:0xD4 +BoardFilterFadeInit = .text:0x8005FE54; // type:function size:0x174 +BoardFilterFadePauseCheck = .text:0x8005FFC8; // type:function size:0x5C +BoardFilterFadeCheck = .text:0x80060024; // type:function size:0x34 +UpdateFilter = .text:0x80060058; // type:function size:0x178 scope:local +DrawFilter = .text:0x800601D0; // type:function size:0x350 scope:local +BoardConfettiCreate = .text:0x80060520; // type:function size:0x164 +BoardConfettiKill = .text:0x80060684; // type:function size:0x24 +BoardConfettiStop = .text:0x800606A8; // type:function size:0x88 +UpdateConfetti = .text:0x80060730; // type:function size:0xB8 scope:local +SpawnConfetti = .text:0x800607E8; // type:function size:0x564 scope:local +MoveConfetti = .text:0x80060D4C; // type:function size:0x14C scope:local +DrawConfetti = .text:0x80060E98; // type:function size:0x254 scope:local +BoardLast5GfxInit = .text:0x800610EC; // type:function size:0x278 +UpdateLast5Gfx = .text:0x80061364; // type:function size:0x2AC scope:local +BoardLast5GfxShowSet = .text:0x80061610; // type:function size:0xAC +BoardTauntInit = .text:0x800616BC; // type:function size:0x80 +BoardTauntKill = .text:0x8006173C; // type:function size:0x54 +TauntUpdate = .text:0x80061790; // type:function size:0x3A4 scope:local +BoardDataDirReadAsync = .text:0x80061B34; // type:function size:0x38 +BoardDataAsyncWait = .text:0x80061B6C; // type:function size:0x48 +BoardItemPrevGet = .text:0x80061BB4; // type:function size:0xC +BoardItemPrevSet = .text:0x80061BC0; // type:function size:0xC +BoardPlayerGetCharMess = .text:0x80061BCC; // type:function size:0x78 +BoardPlayerGetCharName = .text:0x80061C44; // type:function size:0x78 +BoardPlayerIsAllCom = .text:0x80061CBC; // type:function size:0x80 +BoardPlayerInit = .text:0x80061D3C; // type:function size:0x16C +BoardPlayerModelInit = .text:0x80061EA8; // type:function size:0x588 +BoardPlayerModelKill = .text:0x80062430; // type:function size:0xFC +BoardPlayerLayerSet = .text:0x8006252C; // type:function size:0x84 +BoardPlayerCameraSet = .text:0x800625B0; // type:function size:0x80 +fn_80062A40 = .text:0x80062630; // type:function size:0x80 +BoardPlayerExistCheck = .text:0x800626B0; // type:function size:0xB4 +BoardPlayerItemAdd = .text:0x80062764; // type:function size:0xB0 +BoardPlayerItemRemove = .text:0x80062814; // type:function size:0xB4 +BoardPlayerItemFind = .text:0x800628C8; // type:function size:0x58 +BoardPlayerItemCount = .text:0x80062920; // type:function size:0x60 +BoardPlayerCornerPosSet = .text:0x80062980; // type:function size:0x40 +BoardPlayerCornerPosGet = .text:0x800629C0; // type:function size:0xC4 +BoardPlayerAmbSet = .text:0x80062A84; // type:function size:0x90 +BoardPlayerMtxSet = .text:0x80062B14; // type:function size:0x80 +BoardPlayerPosSetV = .text:0x80062B94; // type:function size:0x9C +BoardPlayerPosSet = .text:0x80062C30; // type:function size:0xCC +BoardPlayerPosGet = .text:0x80062CFC; // type:function size:0x80 +BoardPlayerRotSetV = .text:0x80062D7C; // type:function size:0x9C +BoardPlayerRotSet = .text:0x80062E18; // type:function size:0xCC +BoardPlayerRotGet = .text:0x80062EE4; // type:function size:0x80 +BoardPlayerRotYSet = .text:0x80062F64; // type:function size:0xD4 +BoardPlayerRotYGet = .text:0x80063038; // type:function size:0xA8 +BoardPlayerScaleSetV = .text:0x800630E0; // type:function size:0x80 +BoardPlayerScaleSet = .text:0x80063160; // type:function size:0x90 +BoardPlayerScaleGet = .text:0x800631F0; // type:function size:0x80 +BoardPlayerCurrMotionGet = .text:0x80063270; // type:function size:0x44 +BoardPlayerVoiceEnableSet = .text:0x800632B4; // type:function size:0x88 +BoardPlayerMotionCreate = .text:0x8006333C; // type:function size:0x80 +BoardPlayerMotionKill = .text:0x800633BC; // type:function size:0x80 +BoardPlayerMotionEndCheck = .text:0x8006343C; // type:function size:0x78 +BoardPlayerMotionEndWait = .text:0x800634B4; // type:function size:0x88 +BoardPlayerMotionStart = .text:0x8006353C; // type:function size:0xD0 +BoardPlayerMotionShiftSet = .text:0x8006360C; // type:function size:0xE0 +BoardPlayerMotionSpeedSet = .text:0x800636EC; // type:function size:0x80 +BoardPlayerMotionTimeSet = .text:0x8006376C; // type:function size:0x80 +BoardPlayerMotionTimeGet = .text:0x800637EC; // type:function size:0x78 +BoardPlayerMotionMaxTimeGet = .text:0x80063864; // type:function size:0x78 +BoardPlayerMotionStartEndSet = .text:0x800638DC; // type:function size:0xA0 +BoardPlayerModelAttrSet = .text:0x8006397C; // type:function size:0x80 +BoardPlayerModelAttrReset = .text:0x800639FC; // type:function size:0x80 +BoardPlayerCoinsSet = .text:0x80063A7C; // type:function size:0x34 +BoardPlayerCoinsGet = .text:0x80063AB0; // type:function size:0x2C +BoardPlayerCoinsAdd = .text:0x80063ADC; // type:function size:0x9C +BoardPlayerStarsAdd = .text:0x80063B78; // type:function size:0x48 +BoardPlayerSizeSet = .text:0x80063BC0; // type:function size:0x16C +BoardPlayerSizeGet = .text:0x80063D2C; // type:function size:0x40 +BoardPlayerSameTeamFind = .text:0x80063D6C; // type:function size:0x7C +BoardPlayerTeamFind = .text:0x80063DE8; // type:function size:0x7C +BoardPlayerRankCalc = .text:0x80063E64; // type:function size:0xC4 +BoardPlayerPreTurnHookSet = .text:0x80063F28; // type:function size:0x18 +BoardPlayerPostTurnHookSet = .text:0x80063F40; // type:function size:0x18 +BoardPlayerTurnExec = .text:0x80063F58; // type:function size:0x15C +BoardPlayerTurnRollExec = .text:0x800640B4; // type:function size:0x160 +BoardPlayerTurnMoveExec = .text:0x80064214; // type:function size:0x420 +BoardPlayerPostTurnHookExec = .text:0x80064634; // type:function size:0x80 +BoardPlayerSizeRestore = .text:0x800646B4; // type:function size:0x18C +BoardPlayerZoomRestore = .text:0x80064840; // type:function size:0x134 +BoardJunctionMaskSet = .text:0x80064974; // type:function size:0x10 +BoardJunctionMaskReset = .text:0x80064984; // type:function size:0x10 +BoardJunctionMaskZero = .text:0x80064994; // type:function size:0xC +InitJunction = .text:0x800649A0; // type:function size:0x634 scope:local +UpdateJunctionGfx = .text:0x80064FD4; // type:function size:0x1A0 scope:local +StopJunctionPlayer = .text:0x80065174; // type:function size:0x70 scope:local +RestoreJunction = .text:0x800651E4; // type:function size:0x180 scope:local +GetDefaultDirection = .text:0x80065364; // type:function size:0x114 scope:local +DoDebugMove = .text:0x80065478; // type:function size:0x8E8 scope:local +ExecJunction = .text:0x80065D60; // type:function size:0xBF8 scope:local +BoardPlayerMoveTo = .text:0x80066958; // type:function size:0xBC +BoardPlayerMoveBetween = .text:0x80066A14; // type:function size:0x90 +BoardPlayerMoveToAsync = .text:0x80066AA4; // type:function size:0x90 +BoardPlayerPosLerpStart = .text:0x80066B34; // type:function size:0x430 +PlayerPosLerpFunc = .text:0x80066F64; // type:function size:0x218 scope:local +BoardPlayerDiceJumpStart = .text:0x8006717C; // type:function size:0x1D4 +BoardPlayerDiceJumpCheck = .text:0x80067350; // type:function size:0x54 +DiceJumpFunc = .text:0x800673A4; // type:function size:0x3E4 scope:local +BoardPlayerIdleSet = .text:0x80067788; // type:function size:0xF8 +BoardPlayerMotBlendSet = .text:0x80067880; // type:function size:0x5A0 +ExecMotBlend = .text:0x80067E20; // type:function size:0x51C scope:local +BoardPlayerMotBlendCheck = .text:0x8006833C; // type:function size:0x2C +BoardRollCreate = .text:0x80068368; // type:function size:0x138 +BoardRollUpdateSet = .text:0x800684A0; // type:function size:0x38 +BoardRollDispSet = .text:0x800684D8; // type:function size:0x10C +UpdateRollSprite = .text:0x800685E4; // type:function size:0x194 scope:local +UpdateRoll = .text:0x80068778; // type:function size:0x278 scope:local +BoardPlayerBtnDownWait = .text:0x800689F0; // type:function size:0x6C +BoardPlayerAutoSizeSet = .text:0x80068A5C; // type:function size:0x9C +BoardPlayerAutoSizeGet = .text:0x80068AF8; // type:function size:0x40 +BoardPlayerMoveAwayIsDone = .text:0x80068B38; // type:function size:0x1C +BoardPlayerMoveAwayStart = .text:0x80068B54; // type:function size:0x224 +BoardPlayerMoveAwayStartCurr = .text:0x80068D78; // type:function size:0x40 +MoveAwayObjFunc = .text:0x80068DB8; // type:function size:0x100 scope:local +BoardBowserSuitInit = .text:0x80068EB8; // type:function size:0x1A4 +BoardBowserSuitKill = .text:0x8006905C; // type:function size:0x128 +BoardBowserSuitModelGet = .text:0x80069184; // type:function size:0x8 +BoardBowserSuitPlayerModelGet = .text:0x8006918C; // type:function size:0x8 +BoardBowserSuitMotionCreate = .text:0x80069194; // type:function size:0x74 +BoardBowserSuitMotionSetWait = .text:0x80069208; // type:function size:0x54 +BoardBowserSuitMotionSetWalk = .text:0x8006925C; // type:function size:0x4C +BoardBowserSuitMotionSetWin = .text:0x800692A8; // type:function size:0x44 +BoardBowserSuitMotionSetJump = .text:0x800692EC; // type:function size:0x44 +BoardBowserSuitPlayerModelKill = .text:0x80069330; // type:function size:0x44 +UpdateBowserSuit = .text:0x80069374; // type:function size:0x1F0 scope:local +BoardPlayerSparkSet = .text:0x80069564; // type:function size:0x5C +DoSparkSpace = .text:0x800695C0; // type:function size:0x1294 scope:local +RemoveSparkSpace = .text:0x8006A854; // type:function size:0xA0 scope:local +SetPlayerSizeAuto = .text:0x8006A8F4; // type:function size:0x24C scope:local +BoardMegaDoubleDiceCheck = .text:0x8006AB40; // type:function size:0x8 +BoardPlayerResizeAnimExec = .text:0x8006AB48; // type:function size:0x38C +MegaSquishFunc = .text:0x8006AED4; // type:function size:0x950 scope:local +MegaPlayerPassFunc = .text:0x8006B824; // type:function size:0x980 scope:local +MegaExecJump = .text:0x8006C1A4; // type:function size:0xA48 scope:local +BoardPlayerCopyEyeMat = .text:0x8006CBEC; // type:function size:0x24C +BoardPlayerCopyMat = .text:0x8006CE38; // type:function size:0xC0 +BoardModelInit = .text:0x8006CEF8; // type:function size:0xF0 +BoardModelKillAll = .text:0x8006CFE8; // type:function size:0xA0 +ModelMgrFunc = .text:0x8006D088; // type:function size:0x70 scope:local +BoardModelDummyUpdate = .text:0x8006D0F8; // type:function size:0x4 +BoardModelVisibilityUpdate = .text:0x8006D0FC; // type:function size:0xCC +BoardModelHideSetAll = .text:0x8006D1C8; // type:function size:0x90 +BoardModelAmbSetAll = .text:0x8006D258; // type:function size:0x70 +BoardModelCameraSetAll = .text:0x8006D2C8; // type:function size:0x7C +CreateInstance = .text:0x8006D344; // type:function size:0x250 scope:local +BoardModelCreate = .text:0x8006D594; // type:function size:0x40 +BoardModelCreateCharacter = .text:0x8006D5D4; // type:function size:0x44 +BoardModelCreateParam = .text:0x8006D618; // type:function size:0x168 +BoardModelKill = .text:0x8006D780; // type:function size:0x44 +BoardModelIDGet = .text:0x8006D7C4; // type:function size:0x48 +fn_8006DC1C = .text:0x8006D80C; // type:function size:0x60 +BoardModelPassSet = .text:0x8006D86C; // type:function size:0x74 +BoardModelAmbSet = .text:0x8006D8E0; // type:function size:0x68 +BoardModelExistCheck = .text:0x8006D948; // type:function size:0x48 +BoardModelExistDupe = .text:0x8006D990; // type:function size:0x48 +fn_8006DDE8 = .text:0x8006D9D8; // type:function size:0x70 +BoardModelMotionCreate = .text:0x8006DA48; // type:function size:0x140 +BoardModelMotionKill = .text:0x8006DB88; // type:function size:0x118 +BoardModelMotionStartEndSet = .text:0x8006DCA0; // type:function size:0xE8 +BoardModelMotionUpdateSet = .text:0x8006DD88; // type:function size:0x7C +BoardModelVoiceEnableSet = .text:0x8006DE04; // type:function size:0xA4 +BoardModelMotionStart = .text:0x8006DEA8; // type:function size:0x174 +BoardModelMotionShiftIDGet = .text:0x8006E01C; // type:function size:0x50 +BoardModelMotionShiftSet = .text:0x8006E06C; // type:function size:0x148 +BoardModelAttrSet = .text:0x8006E1B4; // type:function size:0x58 +BoardModelAttrReset = .text:0x8006E20C; // type:function size:0x58 +BoardModelMotionTimeSet = .text:0x8006E264; // type:function size:0x84 +BoardModelMotionTimeGet = .text:0x8006E2E8; // type:function size:0x94 +BoardModelMotionMaxTimeGet = .text:0x8006E37C; // type:function size:0x88 +BoardModelMotionSpeedGet = .text:0x8006E404; // type:function size:0x64 +BoardModelMotionSpeedSet = .text:0x8006E468; // type:function size:0xA4 +BoardModelMotionEndCheck = .text:0x8006E50C; // type:function size:0x80 +BoardModelMotionShapeSet = .text:0x8006E58C; // type:function size:0x100 +BoardModelMotionShapeTimeGet = .text:0x8006E68C; // type:function size:0x7C +BoardModelMotionShapeMaxTimeGet = .text:0x8006E708; // type:function size:0xBC +BoardModelMotionShapeSpeedSet = .text:0x8006E7C4; // type:function size:0x88 +BoardModelMotionShapeSpeedGet = .text:0x8006E84C; // type:function size:0x64 +BoardModelMotionShapeEndCheck = .text:0x8006E8B0; // type:function size:0x14C +BoardModelMotionShapeStartEndSet = .text:0x8006E9FC; // type:function size:0x100 +BoardModelAlphaSet = .text:0x8006EAFC; // type:function size:0xB0 +BoardModelMtxSet = .text:0x8006EBAC; // type:function size:0x8C +BoardModelMtxGet = .text:0x8006EC38; // type:function size:0x8C +BoardModelRotYSet = .text:0x8006ECC4; // type:function size:0x54 +BoardModelRotYGet = .text:0x8006ED18; // type:function size:0x30 +BoardModelPosSetV = .text:0x8006ED48; // type:function size:0x50 +BoardModelPosSet = .text:0x8006ED98; // type:function size:0x78 +BoardModelRotSetV = .text:0x8006EE10; // type:function size:0x50 +BoardModelRotSet = .text:0x8006EE60; // type:function size:0x78 +BoardModelScaleSetV = .text:0x8006EED8; // type:function size:0x50 +BoardModelScaleSet = .text:0x8006EF28; // type:function size:0x78 +BoardModelPosGet = .text:0x8006EFA0; // type:function size:0x74 +BoardModelRotGet = .text:0x8006F014; // type:function size:0x74 +BoardModelScaleGet = .text:0x8006F088; // type:function size:0x74 +BoardModelVisibilitySet = .text:0x8006F0FC; // type:function size:0x60 +BoardModelVisibilityGet = .text:0x8006F15C; // type:function size:0x4C +BoardModelCameraSet = .text:0x8006F1A8; // type:function size:0x64 +BoardModelLayerSet = .text:0x8006F20C; // type:function size:0x64 +BoardModelLayerGet = .text:0x8006F270; // type:function size:0x48 +BoardModelLayerSetAll = .text:0x8006F2B8; // type:function size:0x74 +BoardModelHookSet = .text:0x8006F32C; // type:function size:0xC4 +BoardModelHookReset = .text:0x8006F3F0; // type:function size:0x50 +BoardModelHookObjReset = .text:0x8006F440; // type:function size:0x58 +SearchBoardModel = .text:0x8006F498; // type:function size:0x9C scope:local +KillBoardModel = .text:0x8006F534; // type:function size:0x178 scope:local +CreateBoardModel = .text:0x8006F6AC; // type:function size:0x194 scope:local +CreateBoardModelMotion = .text:0x8006F840; // type:function size:0x12C scope:local +BoardWinInit = .text:0x8006F96C; // type:function size:0x24 +BoardWinUnusedArraySet = .text:0x8006F990; // type:function size:0x34 +BoardWinKillAll = .text:0x8006F9C4; // type:function size:0x24 +BoardWinDestroy = .text:0x8006F9E8; // type:function size:0x6C +ExecBoardWindow = .text:0x8006FA54; // type:function size:0x514 scope:local +BoardWinChoiceGet = .text:0x8006FF68; // type:function size:0xC +BoardWinPause = .text:0x8006FF74; // type:function size:0xC +BoardWinCreateChoice = .text:0x8006FF80; // type:function size:0x1A0 +BoardWinCreate = .text:0x80070120; // type:function size:0x1A0 +BoardWinInsertMesSet = .text:0x800702C0; // type:function size:0x18 +BoardWinWait = .text:0x800702D8; // type:function size:0x50 +BoardWinKill = .text:0x80070328; // type:function size:0x38 +BoardWinAttrSet = .text:0x80070360; // type:function size:0x48 +BoardWinAttrReset = .text:0x800703A8; // type:function size:0x48 +BoardWinChoiceDisable = .text:0x800703F0; // type:function size:0x1C +BoardWinKeyWait = .text:0x8007040C; // type:function size:0xC +BoardWinSpeedGet = .text:0x80070418; // type:function size:0x64 +BoardWinSpeedSet = .text:0x8007047C; // type:function size:0x50 +BoardWinChoiceNowGet = .text:0x800704CC; // type:function size:0x38 +BoardWinPriSet = .text:0x80070504; // type:function size:0x44 +BoardWinChoiceNowGet2 = .text:0x80070548; // type:function size:0x38 +BoardWinPortraitGet = .text:0x80070580; // type:function size:0x38 +BoardWinPortraitGetStar = .text:0x800705B8; // type:function size:0x38 +BoardWinPlayerSet = .text:0x800705F0; // type:function size:0x168 +BoardWinStartComKeySet = .text:0x80070758; // type:function size:0x214 +BoardWinComKeyFuncSet = .text:0x8007096C; // type:function size:0x8 +BoardMusStartBoard = .text:0x80070974; // type:function size:0x68 +BoardMusStart = .text:0x800709DC; // type:function size:0xD0 +BoardAudSeqFadeOutFast = .text:0x80070AAC; // type:function size:0x2C +BoardAudSeqFadeOut = .text:0x80070AD8; // type:function size:0x60 +BoardMusLoudSet = .text:0x80070B38; // type:function size:0x5C +BoardMusVolPanSet = .text:0x80070B94; // type:function size:0x90 +BoardAudSeqPause = .text:0x80070C24; // type:function size:0x94 +BoardMusStatusGet = .text:0x80070CB8; // type:function size:0x54 +BoardAudSeqClear = .text:0x80070D0C; // type:function size:0x50 +BoardAudSeqFadeOutAll = .text:0x80070D5C; // type:function size:0x74 +BoardAudFXPlay = .text:0x80070DD0; // type:function size:0x78 +BoardAudFXStop = .text:0x80070E48; // type:function size:0x38 +ExecComKeyLeft = .text:0x80070E80; // type:function size:0x38 scope:local +BoardComKeySetLeft = .text:0x80070EB8; // type:function size:0x28 +ExecComKeyRight = .text:0x80070EE0; // type:function size:0x38 scope:local +BoardComKeySetRight = .text:0x80070F18; // type:function size:0x28 +ExecComKeyUp = .text:0x80070F40; // type:function size:0x38 scope:local +BoardComKeySetUp = .text:0x80070F78; // type:function size:0x28 +ExecComKeyDown = .text:0x80070FA0; // type:function size:0x38 scope:local +BoardComKeySetDown = .text:0x80070FD8; // type:function size:0x28 +ExecComKey = .text:0x80071000; // type:function size:0xE8 +BoardComPreferItemGet = .text:0x800710E8; // type:function size:0x100 +BoardComPreferItemCheck = .text:0x800711E8; // type:function size:0x120 +BoardComItemWeightGet = .text:0x80071308; // type:function size:0x74 +BoardComUseItemSlotGet = .text:0x8007137C; // type:function size:0xD0 +BoardComUseItemSet = .text:0x8007144C; // type:function size:0x6C +BoardComUseItemCheck = .text:0x800714B8; // type:function size:0x68 +ChooseUseItem = .text:0x80071520; // type:function size:0x16C scope:local +CheckMiniUse = .text:0x8007168C; // type:function size:0x220 scope:local +CheckMegaUse = .text:0x800718AC; // type:function size:0x248 scope:local +CheckSparkUse = .text:0x80071AF4; // type:function size:0x158 scope:local +CheckBoardChangeUse = .text:0x80071C4C; // type:function size:0x314 scope:local +CheckSwapUse = .text:0x80071F60; // type:function size:0x198 scope:local +CheckBooUse = .text:0x800720F8; // type:function size:0x7C scope:local +CheckLampUse = .text:0x80072174; // type:function size:0x74 scope:local +BoardComJunctionInputGet = .text:0x800721E8; // type:function size:0x304 +BoardComFarPlayerFind = .text:0x800724EC; // type:function size:0xA8 +BoardViewOverheadExec = .text:0x80072594; // type:function size:0x134 +BoardViewFocusGetPos = .text:0x800726C8; // type:function size:0x3C +BoardViewFocusSet = .text:0x80072704; // type:function size:0xF0 +BoardViewMoveStart = .text:0x800727F4; // type:function size:0x128 +BoardViewMoveCheck = .text:0x8007291C; // type:function size:0x34 +BoardViewMoveEnd = .text:0x80072950; // type:function size:0xC +BoardViewWait = .text:0x8007295C; // type:function size:0x3C +BoardViewMapExec = .text:0x80072998; // type:function size:0xC8 +ExecMapView = .text:0x80072A60; // type:function size:0x398 scope:local +ExecStarView = .text:0x80072DF8; // type:function size:0x170 scope:local +ExecOverheadView = .text:0x80072F68; // type:function size:0x158 scope:local +DestroyView = .text:0x800730C0; // type:function size:0x80 scope:local +SetTargetView = .text:0x80073140; // type:function size:0x178 scope:local +DestroyFocus = .text:0x800732B8; // type:function size:0x4C scope:local +CreateButtonWin = .text:0x80073304; // type:function size:0xE0 scope:local +DestroyButtonWin = .text:0x800733E4; // type:function size:0x38 scope:local +InitOverheadView = .text:0x8007341C; // type:function size:0x374 scope:local +DestroyOverheadView = .text:0x80073790; // type:function size:0x24 scope:local +UpdateOverheadView = .text:0x800737B4; // type:function size:0x400 scope:local +WaitOverheadView = .text:0x80073BB4; // type:function size:0x30 scope:local +BoardSpaceWalkEventFuncSet = .text:0x80073BE4; // type:function size:0x8 +BoardSpaceWalkMiniEventFuncSet = .text:0x80073BEC; // type:function size:0x8 +BoardSpaceLandEventFuncSet = .text:0x80073BF4; // type:function size:0x8 +BoardSpaceWalkEventExec = .text:0x80073BFC; // type:function size:0x48 +BoardSpaceWalkMiniEventExec = .text:0x80073C44; // type:function size:0x60 +BoardSpaceCountGet = .text:0x80073CA4; // type:function size:0x10 +BoardSpaceGet = .text:0x80073CB4; // type:function size:0x44 +BoardSpaceAttrSet = .text:0x80073CF8; // type:function size:0x18 +BoardSpaceAttrReset = .text:0x80073D10; // type:function size:0x18 +BoardSpaceFlagGet = .text:0x80073D28; // type:function size:0x48 +BoardSpaceTypeGet = .text:0x80073D70; // type:function size:0x48 +BoardSpaceTypeSet = .text:0x80073DB8; // type:function size:0x48 +BoardSpacePosGet = .text:0x80073E00; // type:function size:0x8C +BoardSpaceCornerPosGet = .text:0x80073E8C; // type:function size:0x2C8 +BoardSpaceRotGet = .text:0x80074154; // type:function size:0x8C +BoardSpaceFlagSearch = .text:0x800741E0; // type:function size:0xA0 +BoardSpaceFlagPosGet = .text:0x80074280; // type:function size:0x134 +BoardSpaceLinkFlagSearch = .text:0x800743B4; // type:function size:0x134 +BoardSpaceLinkTypeListGet = .text:0x800744E8; // type:function size:0x148 +BoardSpaceLinkTargetListGet = .text:0x80074630; // type:function size:0x104 +BoardSpaceLinkTypeSearch = .text:0x80074734; // type:function size:0x110 +BoardSpaceLinkTransformGet = .text:0x80074844; // type:function size:0x1FC +BoardSpaceHostSet = .text:0x80074A40; // type:function size:0x1BC +BoardSpaceStarSetIndex = .text:0x80074BFC; // type:function size:0x4AC +BoardSpaceStarGetNext = .text:0x800750A8; // type:function size:0x344 +BoardSpaceStarGetRandom = .text:0x800753EC; // type:function size:0x9C +BoardSpaceStarMove = .text:0x80075488; // type:function size:0xF0 +BoardSpaceStarGet = .text:0x80075578; // type:function size:0x1C +BoardSpaceStarGetCurr = .text:0x80075594; // type:function size:0x3C +BoardSpaceStarCheck = .text:0x800755D0; // type:function size:0x110 +BoardSpaceLandExec = .text:0x800756E0; // type:function size:0x474 +BoardSpaceWalkExec = .text:0x80075B54; // type:function size:0x2A4 +BoardSpaceBlockExec = .text:0x80075DF8; // type:function size:0x180 +ExecPipeSpace = .text:0x80075F78; // type:function size:0x268 scope:local +BoardSpaceTypeForce = .text:0x800761E0; // type:function size:0x5C +BoardSpaceHide = .text:0x8007623C; // type:function size:0x48 +DrawSpaces = .text:0x80076284; // type:function size:0x9E8 scope:local +BoardSpaceRead = .text:0x80076C6C; // type:function size:0x174 +BoardSpaceCameraSet = .text:0x80076DE0; // type:function size:0x2C +BoardSpaceBlockPosSet = .text:0x80076E0C; // type:function size:0xD0 +BoardSpaceInit = .text:0x80076EDC; // type:function size:0x750 +BoardSpaceDestroy = .text:0x8007762C; // type:function size:0x70 +BoardShopHostSet = .text:0x8007769C; // type:function size:0x8 +BoardShopHostGet = .text:0x800776A4; // type:function size:0x8 +BoardShopInit = .text:0x800776AC; // type:function size:0xD4 +BoardShopKill = .text:0x80077780; // type:function size:0xA0 +BoardShopExec = .text:0x80077820; // type:function size:0x9C +ExecShop = .text:0x800778BC; // type:function size:0x800 scope:local +DestroyShop = .text:0x800780BC; // type:function size:0xD4 scope:local +PopupShop = .text:0x80078190; // type:function size:0x1B4 scope:local +CloseShop = .text:0x80078344; // type:function size:0xBC scope:local +CreateShopWin = .text:0x80078400; // type:function size:0x13C scope:local +UpdateShopWin = .text:0x8007853C; // type:function size:0x314 scope:local +SetShopWinItem = .text:0x80078850; // type:function size:0x168 scope:local +PauseShopWin = .text:0x800789B8; // type:function size:0x2C scope:local +fn_800789E4 = .text:0x800789E4; // type:function size:0x18C scope:local +ExecItemGive = .text:0x80078B70; // type:function size:0x168 scope:local +MoveItemGive = .text:0x80078CD8; // type:function size:0x34C scope:local +ShrinkItemGive = .text:0x80079024; // type:function size:0x144 scope:local +fn_80079168 = .text:0x80079168; // type:function size:0x6C scope:local +GetShopItems = .text:0x800791D4; // type:function size:0x280 scope:local +GetDefaultShopItems = .text:0x80079454; // type:function size:0xA0 scope:local +SortShopItems = .text:0x800794F4; // type:function size:0x14C scope:local +DecideComEnter = .text:0x80079640; // type:function size:0x1C8 scope:local +DecideComBuy = .text:0x80079808; // type:function size:0x60 scope:local +GetComItemChoice = .text:0x80079868; // type:function size:0x158 scope:local +WaitItemChoice = .text:0x800799C0; // type:function size:0x30 scope:local +CreateShopItemChoice = .text:0x800799F0; // type:function size:0x188 scope:local +GetShopItemChoice = .text:0x80079B78; // type:function size:0xC scope:local +GetShopItemWinChoice = .text:0x80079B84; // type:function size:0x38 scope:local +MoveShopItemChoice = .text:0x80079BBC; // type:function size:0x260 scope:local +UpdateShopItemChoice = .text:0x80079E1C; // type:function size:0x104 scope:local +GetShopItemChoiceInput = .text:0x80079F20; // type:function size:0x30 scope:local +BoardShopTutorialExec = .text:0x80079F50; // type:function size:0x4DC +BoardLotteryHostSet = .text:0x8007A42C; // type:function size:0x8 +BoardLotteryHostGet = .text:0x8007A434; // type:function size:0x8 +BoardLotteryExec = .text:0x8007A43C; // type:function size:0x8C +BoardLotteryInit = .text:0x8007A4C8; // type:function size:0x16C +CreateModel = .text:0x8007A634; // type:function size:0x3B4 scope:local +KillModel = .text:0x8007A9E8; // type:function size:0x1FC scope:local +BoardLotteryKill = .text:0x8007ABE4; // type:function size:0x64 +DestroyLottery = .text:0x8007AC48; // type:function size:0xB0 scope:local +ExecLottery = .text:0x8007ACF8; // type:function size:0x798 scope:local +DoMiniJumpUp = .text:0x8007B490; // type:function size:0x20C scope:local +DoMiniJumpDown = .text:0x8007B69C; // type:function size:0x1BC scope:local +PayEnterFee = .text:0x8007B858; // type:function size:0xF0 scope:local +ShowTicket = .text:0x8007B948; // type:function size:0x3C8 scope:local +SetupTicket = .text:0x8007BD10; // type:function size:0x140 scope:local +ExecBallGame = .text:0x8007BE50; // type:function size:0x914 scope:local +SetBallPrize = .text:0x8007C764; // type:function size:0xC8 scope:local +ExecBallPrize = .text:0x8007C82C; // type:function size:0x27C scope:local +ExecScratchTicket = .text:0x8007CAA8; // type:function size:0x30C scope:local +ExecScratch = .text:0x8007CDB4; // type:function size:0x3AC scope:local +KillScratch = .text:0x8007D160; // type:function size:0x6C scope:local +ExecScratchSpr = .text:0x8007D1CC; // type:function size:0x21C scope:local +HideScratchSpr = .text:0x8007D3E8; // type:function size:0x68 scope:local +InitScratchSpr = .text:0x8007D450; // type:function size:0x288 scope:local +ExecScratchPick = .text:0x8007D6D8; // type:function size:0x3DC scope:local +InitScratchPick = .text:0x8007DAB4; // type:function size:0x14C scope:local +InitTicketPrizes = .text:0x8007DC00; // type:function size:0xD0 scope:local +ExecTicketFocus = .text:0x8007DCD0; // type:function size:0x160 scope:local +ScratchTicketCheckDone = .text:0x8007DE30; // type:function size:0xA8 scope:local +TicketGetPixel = .text:0x8007DED8; // type:function size:0x84 scope:local +TicketUpdate = .text:0x8007DF5C; // type:function size:0x6B0 scope:local +ExecCoinPrize = .text:0x8007E60C; // type:function size:0x440 scope:local +ExecItemPrize = .text:0x8007EA4C; // type:function size:0x338 scope:local +KillCoin = .text:0x8007ED84; // type:function size:0x68 scope:local +ExecPrize = .text:0x8007EDEC; // type:function size:0x4C0 scope:local +ExecLose = .text:0x8007F2AC; // type:function size:0xA4 scope:local +CreateLotteryWin = .text:0x8007F350; // type:function size:0xFC scope:local +KillLotteryWin = .text:0x8007F44C; // type:function size:0x38 scope:local +BoardLotteryTutorialExec = .text:0x8007F484; // type:function size:0x2BC +BoardLandBlueExec = .text:0x8007F740; // type:function size:0x184 +BoardLandRedExec = .text:0x8007F8C4; // type:function size:0x19C +BoardCoinChgCreate = .text:0x8007FA60; // type:function size:0x1E8 +BoardCoinChgExist = .text:0x8007FC48; // type:function size:0x6C +BoardCoinChgHide = .text:0x8007FCB4; // type:function size:0x60 +CreateCoinChg = .text:0x8007FD14; // type:function size:0x23C scope:local +UpdateCoinChg = .text:0x8007FF50; // type:function size:0x198 scope:local +CoinChgAppear = .text:0x800800E8; // type:function size:0x1B8 scope:local +CoinChgSeparate = .text:0x800802A0; // type:function size:0x29C scope:local +CoinChgShow = .text:0x8008053C; // type:function size:0x1A8 scope:local +CoinChgDisappear = .text:0x800806E4; // type:function size:0x260 scope:local +BoardWarpExec = .text:0x80080944; // type:function size:0xA4 +WarpProcess = .text:0x800809E8; // type:function size:0x250 scope:local +WarpKill = .text:0x80080C38; // type:function size:0x5C scope:local +WarpInit = .text:0x80080C94; // type:function size:0x118 scope:local +WarpLaunch = .text:0x80080DAC; // type:function size:0xBC scope:local +WarpStartImpact = .text:0x80080E68; // type:function size:0x1B0 scope:local +WarpFall = .text:0x80081018; // type:function size:0xA4 scope:local +WarpImpact = .text:0x800810BC; // type:function size:0x200 scope:local +BoardCharWheelInit = .text:0x800812BC; // type:function size:0x11C +BoardCharWheelCheck = .text:0x800813D8; // type:function size:0x34 +BoardCharWheelWait = .text:0x8008140C; // type:function size:0x50 +BoardCharWheelResultGet = .text:0x8008145C; // type:function size:0x18 +BoardCharWheelSpeedSet = .text:0x80081474; // type:function size:0x1C +ExecCharWheel = .text:0x80081490; // type:function size:0xFC scope:local +InitCharWheel = .text:0x8008158C; // type:function size:0x754 scope:local +UpdateCharWheel = .text:0x80081CE0; // type:function size:0x314 scope:local +StopCharWheel = .text:0x80081FF4; // type:function size:0x164 scope:local +GrowCharWheel = .text:0x80082158; // type:function size:0x120 scope:local +ShrinkCharWheel = .text:0x80082278; // type:function size:0x10C scope:local +KillCharWheelSpr = .text:0x80082384; // type:function size:0x38 scope:local +SetCharWheelChars = .text:0x800823BC; // type:function size:0xBC scope:local +GetInput = .text:0x80082478; // type:function size:0x224 scope:local +BoardCharWheelTargetSet = .text:0x8008269C; // type:function size:0x10 +GetComDelay = .text:0x800826AC; // type:function size:0x148 scope:local +GetComInput = .text:0x800827F4; // type:function size:0x8C scope:local +BoardMushroomExec = .text:0x80082880; // type:function size:0xA4 +MushroomMain = .text:0x80082924; // type:function size:0x38C scope:local +KillMushroom = .text:0x80082CB0; // type:function size:0x58 scope:local +BoxMain = .text:0x80082D08; // type:function size:0x118 scope:local +ShowBox = .text:0x80082E20; // type:function size:0x114 scope:local +ExitBox = .text:0x80082F34; // type:function size:0x160 scope:local +HideBox = .text:0x80083094; // type:function size:0x68 scope:local +CenterBox = .text:0x800830FC; // type:function size:0xD4 scope:local +InitBox = .text:0x800831D0; // type:function size:0x2EC scope:local +MarkKillBox = .text:0x800834BC; // type:function size:0x64 scope:local +SetBoxHide = .text:0x80083520; // type:function size:0x34 scope:local +SetBoxCenter = .text:0x80083554; // type:function size:0x54 scope:local +SetBoxShow = .text:0x800835A8; // type:function size:0x34 scope:local +WaitBoxOpen = .text:0x800835DC; // type:function size:0x5C scope:local +WaitBoxCenter = .text:0x80083638; // type:function size:0x58 scope:local +CheckBox = .text:0x80083690; // type:function size:0x60 scope:local +DoItemGive = .text:0x800836F0; // type:function size:0x240 scope:local +StartItemGive = .text:0x80083930; // type:function size:0xD4 scope:local +KillItemMdl = .text:0x80083A04; // type:function size:0x38 scope:local +ShowItemMdl = .text:0x80083A3C; // type:function size:0x48 scope:local +WaitItemGive = .text:0x80083A84; // type:function size:0x48 scope:local +BoardStarHostSet = .text:0x80083ACC; // type:function size:0xA8 +BoardStarHostMdlGet = .text:0x80083B74; // type:function size:0x8 +BoardStarExec = .text:0x80083B7C; // type:function size:0xCC +ExecStar = .text:0x80083C48; // type:function size:0x8F4 scope:local +DestroyStar = .text:0x8008453C; // type:function size:0x84 scope:local +GiveStarMain = .text:0x800845C0; // type:function size:0x160 scope:local +UpdateStarAngle = .text:0x80084720; // type:function size:0x144 scope:local +InitGiveStar = .text:0x80084864; // type:function size:0x10C scope:local +MoveGiveStar = .text:0x80084970; // type:function size:0x180 scope:local +ShrinkGiveStar = .text:0x80084AF0; // type:function size:0x204 scope:local +StopGiveStar = .text:0x80084CF4; // type:function size:0x38 scope:local +InitGiveStarEffect = .text:0x80084D2C; // type:function size:0xB4 scope:local +KillGiveStarEffect = .text:0x80084DE0; // type:function size:0x40 scope:local +BoardStarGive = .text:0x80084E20; // type:function size:0x31C +BoardStarShowNext = .text:0x8008513C; // type:function size:0x628 +ShowNextUpdate = .text:0x80085764; // type:function size:0x130 scope:local +HideNextHost = .text:0x80085894; // type:function size:0x24 scope:local +BoardRollExec = .text:0x800858B8; // type:function size:0x1EC +BoardRollKill = .text:0x80085AA4; // type:function size:0x38 +BoardRollUPauseSet = .text:0x80085ADC; // type:function size:0x84 +BoardRollWinDispSet = .text:0x80085B60; // type:function size:0x4C +RollMain = .text:0x80085BAC; // type:function size:0x490 scope:local +DiceCreate = .text:0x8008603C; // type:function size:0x280 scope:local +DoInput = .text:0x800862BC; // type:function size:0x1C8 scope:local +DiceWaitFull = .text:0x80086484; // type:function size:0x60 scope:local +DiceSetHit = .text:0x800864E4; // type:function size:0x130 scope:local +RollDestroy = .text:0x80086614; // type:function size:0x60 scope:local +DiceMain = .text:0x80086674; // type:function size:0x7E4 scope:local +DicePause = .text:0x80086E58; // type:function size:0x40 scope:local +DicePauseAll = .text:0x80086E98; // type:function size:0x90 scope:local +BoardDiceEffectCreate = .text:0x80086F28; // type:function size:0xE0 +DiceHideEffect = .text:0x80087008; // type:function size:0x84 scope:local +BoardDicePauseAll = .text:0x8008708C; // type:function size:0x94 +BoardDiceDoneCheck = .text:0x80087120; // type:function size:0x8C +BoardDiceStop = .text:0x800871AC; // type:function size:0x58 +BoardDiceVisibleSet = .text:0x80087204; // type:function size:0xC0 +BoardDiceValueSet = .text:0x800872C4; // type:function size:0x200 +DiceDigitMain = .text:0x800874C4; // type:function size:0xAC scope:local +DiceDigitKill = .text:0x80087570; // type:function size:0x68 scope:local +DiceKill = .text:0x800875D8; // type:function size:0xB4 scope:local +DiceDigitMove = .text:0x8008768C; // type:function size:0x390 scope:local +DiceDigitRotate = .text:0x80087A1C; // type:function size:0x110 scope:local +SameRollExec = .text:0x80087B2C; // type:function size:0x248 scope:local +GetBtnRoll = .text:0x80087D74; // type:function size:0x110 scope:local +GetComBtnRoll = .text:0x80087E84; // type:function size:0x88 scope:local +BoardRollTutorialSet = .text:0x80087F0C; // type:function size:0x4C +BoardItemModelGet = .text:0x80087F58; // type:function size:0x90 +BoardItemNameGet = .text:0x80087FE8; // type:function size:0x98 +BoardStatusStopCheck = .text:0x80088080; // type:function size:0x48 +BoardStatusVisibleGet = .text:0x800880C8; // type:function size:0x1C +BoardStatusShowSetAll = .text:0x800880E4; // type:function size:0x48 +BoardStatusItemSet = .text:0x8008812C; // type:function size:0xFC +BoardStatusShowSetForce = .text:0x80088228; // type:function size:0x24 +BoardStatusGraySet = .text:0x8008824C; // type:function size:0x134 +BoardStatusShowSet = .text:0x80088380; // type:function size:0x138 +BoardStatusItemHideSet = .text:0x800884B8; // type:function size:0x50 +BoardStatusTargetPosSet = .text:0x80088508; // type:function size:0x44 +BoardStatusPosGet = .text:0x8008854C; // type:function size:0x34 +BoardStatusPosSet = .text:0x80088580; // type:function size:0x6C +BoardStatusHammerCreate = .text:0x800885EC; // type:function size:0x158 +BoardStatusHammerShowSet = .text:0x80088744; // type:function size:0x94 +BoardStatusHammerKill = .text:0x800887D8; // type:function size:0x6C +BoardStatusKill = .text:0x80088844; // type:function size:0x90 +BoardStatusCreate = .text:0x800888D4; // type:function size:0x20C +KillAllBoardStatus = .text:0x80088AE0; // type:function size:0x98 scope:local +CreateBoardStatusSprite = .text:0x80088B78; // type:function size:0x36C scope:local +BoardSpriteCreate = .text:0x80088EE4; // type:function size:0x8C +UpdateBoardStatus = .text:0x80088F70; // type:function size:0x210 scope:local +BoardStatusProc = .text:0x80089180; // type:function size:0x40 scope:local +MoveBoardStatus = .text:0x800891C0; // type:function size:0x180 scope:local +BoardSpriteDigitUpdate = .text:0x80089340; // type:function size:0x140 +UpdateStatusItem = .text:0x80089480; // type:function size:0xB8 scope:local +BoardPickerCreate = .text:0x80089538; // type:function size:0x29C +BoardPickerBackFlagSet = .text:0x800897D4; // type:function size:0x74 +BoardPickerDoneCheck = .text:0x80089848; // type:function size:0x1C +BoardPickerPosGet = .text:0x80089864; // type:function size:0x48 +BoardPickerChoiceGet = .text:0x800898AC; // type:function size:0xC +UpdatePicker = .text:0x800898B8; // type:function size:0xFC scope:local +UpdatePickerInput = .text:0x800899B4; // type:function size:0x15C scope:local +MovePicker = .text:0x80089B10; // type:function size:0x110 scope:local +UpdateComPickerButton = .text:0x80089C20; // type:function size:0x30 scope:local +CheckPickerButton = .text:0x80089C50; // type:function size:0x19C scope:local +BoardYourTurnExec = .text:0x80089DEC; // type:function size:0x1E4 +UpdateYourTurn = .text:0x80089FD0; // type:function size:0xD4 scope:local +GrowYourTurn = .text:0x8008A0A4; // type:function size:0xD8 scope:local +WaitYourTurn = .text:0x8008A17C; // type:function size:0xEC scope:local +ShrinkYourTurn = .text:0x8008A268; // type:function size:0xC8 scope:local +BoardItemUseExec = .text:0x8008A330; // type:function size:0x80 +ItemUseTeamProc = .text:0x8008A3B0; // type:function size:0x4A8 scope:local +ItemUseProc = .text:0x8008A858; // type:function size:0x370 scope:local +FinishItemUse = .text:0x8008ABC8; // type:function size:0x174 scope:local +DestroyItemUse = .text:0x8008AD3C; // type:function size:0x78 scope:local +BoardMakeRandomItem = .text:0x8008ADB4; // type:function size:0x74 +TeamItemPosSet = .text:0x8008AE28; // type:function size:0xE8 scope:local +ExecItemPick = .text:0x8008AF10; // type:function size:0x650 scope:local +UpdateItemPick = .text:0x8008B560; // type:function size:0x3AC scope:local +MakeItemPickSpace = .text:0x8008B90C; // type:function size:0x420 scope:local +SetItemUIStatus = .text:0x8008BD2C; // type:function size:0x248 scope:local +BoardItemGetDestPos = .text:0x8008BF74; // type:function size:0xA8 +ItemGetPos = .text:0x8008C01C; // type:function size:0x104 scope:local +BoardItemStatusKill = .text:0x8008C120; // type:function size:0x400 +UpdateItemPickGfx = .text:0x8008C520; // type:function size:0x388 scope:local +UpdateItemPickup = .text:0x8008C8A8; // type:function size:0x674 scope:local +CheckItemWindow = .text:0x8008CF1C; // type:function size:0x50 scope:local +HideItemWindow = .text:0x8008CF6C; // type:function size:0x38 scope:local +CreateItemWindow = .text:0x8008CFA4; // type:function size:0x5A4 scope:local +CheckItemWindowSlide = .text:0x8008D548; // type:function size:0x58 scope:local +KillItemWindow = .text:0x8008D5A0; // type:function size:0x38 scope:local +SetItemWindowCurr = .text:0x8008D5D8; // type:function size:0xA4 scope:local +UpdateItemWindow = .text:0x8008D67C; // type:function size:0x350 scope:local +CreatePickerWindow = .text:0x8008D9CC; // type:function size:0x148 scope:local +KillPickerWindow = .text:0x8008DB14; // type:function size:0x44 scope:local +BoardBlockExec = .text:0x8008DB58; // type:function size:0x84 +BlockProc = .text:0x8008DBDC; // type:function size:0x358 scope:local +DestroyBlock = .text:0x8008DF34; // type:function size:0x54 scope:local +CreateBlockObj = .text:0x8008DF88; // type:function size:0x1F4 scope:local +ExecBlockObj = .text:0x8008E17C; // type:function size:0x12C scope:local +DestroyBlockObj = .text:0x8008E2A8; // type:function size:0x38 scope:local +SpawnBlock = .text:0x8008E2E0; // type:function size:0x120 scope:local +HitBlock = .text:0x8008E400; // type:function size:0xCC scope:local +OpenBlock = .text:0x8008E4CC; // type:function size:0x140 scope:local +SetBlockOpen = .text:0x8008E60C; // type:function size:0x2C scope:local +SetBlockStop = .text:0x8008E638; // type:function size:0x2C scope:local +WaitBlockHit = .text:0x8008E664; // type:function size:0x48 scope:local +CreateCoinMdl = .text:0x8008E6AC; // type:function size:0x94 scope:local +KillCoinMdl = .text:0x8008E740; // type:function size:0x9C scope:local +PopupCoin = .text:0x8008E7DC; // type:function size:0x10C scope:local +PopupCoinExec = .text:0x8008E8E8; // type:function size:0x130 scope:local +BoardItemStart = .text:0x8008EA18; // type:function size:0x74 +BoardItemDoneCheck = .text:0x8008EA8C; // type:function size:0x1C +BoardItemPlayerRestore = .text:0x8008EAA8; // type:function size:0x6C scope:local +ItemProcess = .text:0x8008EB14; // type:function size:0x64 scope:local +RestoreProcess = .text:0x8008EB78; // type:function size:0x64 scope:local +ItemDestroy = .text:0x8008EBDC; // type:function size:0xC scope:local +RestoreDestroy = .text:0x8008EBE8; // type:function size:0xC scope:local +ItemSizeShowAnim = .text:0x8008EBF4; // type:function size:0x180 scope:local +ItemRotProc = .text:0x8008ED74; // type:function size:0x1BC scope:local +ItemShowProc = .text:0x8008EF30; // type:function size:0x220 scope:local +ItemGetTarget = .text:0x8008F150; // type:function size:0x374 scope:local +ItemSizeSet = .text:0x8008F4C4; // type:function size:0x204 scope:local +ExecItemMini = .text:0x8008F6C8; // type:function size:0xA4 scope:local +ExecItemMega = .text:0x8008F76C; // type:function size:0xA4 scope:local +ExecItemMiniSuper = .text:0x8008F810; // type:function size:0xA4 scope:local +ExecItemMegaSuper = .text:0x8008F8B4; // type:function size:0xA4 scope:local +ExecItemHammer = .text:0x8008F958; // type:function size:0x584 scope:local +ExecItemPipe = .text:0x8008FEDC; // type:function size:0xD34 scope:local +ExecItemSwap = .text:0x80090C10; // type:function size:0xEBC scope:local +ExecItemSpark = .text:0x80091ACC; // type:function size:0x4FC scope:local +ExecItemLight = .text:0x80091FC8; // type:function size:0xC8 scope:local +ExecItemWhistle = .text:0x80092090; // type:function size:0xE3C scope:local +ExecItemBowser = .text:0x80092ECC; // type:function size:0x3D4 scope:local +ExecItemBooBall = .text:0x800932A0; // type:function size:0x1370 scope:local +LampParticleUpdate = .text:0x80094610; // type:function size:0x488 scope:local +GenieParticleUpdate = .text:0x80094A98; // type:function size:0x388 scope:local +GenieCameraProc = .text:0x80094E20; // type:function size:0xB0 scope:local +GenieCameraCalc = .text:0x80094ED0; // type:function size:0x7A4 scope:local +GenieSceneExec = .text:0x80095674; // type:function size:0x9D8 scope:local +ExecItemGenie = .text:0x8009604C; // type:function size:0x628 scope:local +BoardItemBagItemSet = .text:0x80096674; // type:function size:0x3C +ExecItemBagJump = .text:0x800966B0; // type:function size:0x13C scope:local +ExecItemBagShow = .text:0x800967EC; // type:function size:0xDC scope:local +ExecItemBag = .text:0x800968C8; // type:function size:0x584 scope:local +RestoreItemNull = .text:0x80096E4C; // type:function size:0x1C scope:local +RestoreItemMini = .text:0x80096E68; // type:function size:0x2C scope:local +RestoreItemMega = .text:0x80096E94; // type:function size:0x2C scope:local +RestoreItemMiniSuper = .text:0x80096EC0; // type:function size:0x2C scope:local +RestoreItemMegaSuper = .text:0x80096EEC; // type:function size:0x2C scope:local +RestoreItemBowser = .text:0x80096F18; // type:function size:0x284 scope:local +BoardBowserExec = .text:0x8009719C; // type:function size:0x144 +ExecBowser = .text:0x800972E0; // type:function size:0x28C scope:local +ExecBowserMain = .text:0x8009756C; // type:function size:0x208 scope:local +ExecMGReturn = .text:0x80097774; // type:function size:0x1DC scope:local +DestroyBowser = .text:0x80097950; // type:function size:0x30 scope:local +SquishPlayers = .text:0x80097980; // type:function size:0x148 scope:local +ExecBowserSpecial = .text:0x80097AC8; // type:function size:0x1B4 scope:local +ExecBowserGame = .text:0x80097C7C; // type:function size:0x250 scope:local +DoMGReturnEffect = .text:0x80097ECC; // type:function size:0x220 scope:local +ExecBowserShuffle = .text:0x800980EC; // type:function size:0x2B0 scope:local +ExecBowserRevo = .text:0x8009839C; // type:function size:0x160 scope:local +ExecBowserSuit = .text:0x800984FC; // type:function size:0xB8 scope:local +CheckSuitGive = .text:0x800985B4; // type:function size:0x1C scope:local +StartSuitGive = .text:0x800985D0; // type:function size:0x148 scope:local +SuitGiveMain = .text:0x80098718; // type:function size:0x210 scope:local +CreateBowserObj = .text:0x80098928; // type:function size:0x228 scope:local +ExecBowserObj = .text:0x80098B50; // type:function size:0x230 scope:local +ExecBowserFall = .text:0x80098D80; // type:function size:0x270 scope:local +ExecBowserLaugh = .text:0x80098FF0; // type:function size:0x58 scope:local +ExecBowserFire = .text:0x80099048; // type:function size:0x44 scope:local +ExecBowserJump = .text:0x8009908C; // type:function size:0x150 scope:local +ExecBowserPowerUp = .text:0x800991DC; // type:function size:0x128 scope:local +SetBowserState = .text:0x80099304; // type:function size:0x34 scope:local +CheckBowserIdle = .text:0x80099338; // type:function size:0x5C scope:local +CreateMiniBowser = .text:0x80099394; // type:function size:0xD4 scope:local +CheckMiniBowser = .text:0x80099468; // type:function size:0x1C scope:local +ExecMiniBowser = .text:0x80099484; // type:function size:0x18C scope:local +CreateBowserEvent = .text:0x80099610; // type:function size:0x1E8 scope:local +CheckBowserEvent = .text:0x800997F8; // type:function size:0x38 scope:local +StopBowserEvent = .text:0x80099830; // type:function size:0x24 scope:local +ExecBowserEvent = .text:0x80099854; // type:function size:0xEC scope:local +ShowBowserEvent = .text:0x80099940; // type:function size:0x1C8 scope:local +HideBowserEvent = .text:0x80099B08; // type:function size:0x108 scope:local +ConfigBowserEvent = .text:0x80099C10; // type:function size:0x160 scope:local +CreatePlayerMot = .text:0x80099D70; // type:function size:0x1AC scope:local +KillPlayerMot = .text:0x80099F1C; // type:function size:0xB8 scope:local +InitBowserFire = .text:0x80099FD4; // type:function size:0x90 scope:local +BowserFireHook = .text:0x8009A064; // type:function size:0x160 scope:local +SpawnBowserFire = .text:0x8009A1C4; // type:function size:0xE4 scope:local +CheckBowserFire = .text:0x8009A2A8; // type:function size:0xCC scope:local +KillBowserFire = .text:0x8009A374; // type:function size:0x40 scope:local +ExecMiniBowserEvent = .text:0x8009A3B4; // type:function size:0x188 scope:local +MiniBowserTake = .text:0x8009A53C; // type:function size:0x2C4 scope:local +MiniBowserTakeAll = .text:0x8009A800; // type:function size:0x2B8 scope:local +MiniBowserBalloonStop = .text:0x8009AAB8; // type:function size:0x24 scope:local +GetMiniBowserBalloonState = .text:0x8009AADC; // type:function size:0xC scope:local +SetMiniBowserBalloonState = .text:0x8009AAE8; // type:function size:0x10 scope:local +CreateMiniBowserBalloon = .text:0x8009AAF8; // type:function size:0x14C scope:local +ExecMiniBowserBalloon = .text:0x8009AC44; // type:function size:0x120 scope:local +MiniBowserBalloonHover = .text:0x8009AD64; // type:function size:0xB4 scope:local +MiniBowserBalloonFall = .text:0x8009AE18; // type:function size:0x88 scope:local +MiniBowserBalloonRaise = .text:0x8009AEA0; // type:function size:0x80 scope:local +SetMiniBowserMotion = .text:0x8009AF20; // type:function size:0xD8 scope:local +SetMiniBowserMotionPause = .text:0x8009AFF8; // type:function size:0x6C scope:local +WaitMiniBowserMotion = .text:0x8009B064; // type:function size:0x60 scope:local +BoardBattleExec = .text:0x8009B0C4; // type:function size:0x124 +DestroyBattle = .text:0x8009B1E8; // type:function size:0x2C scope:local +ExecBattle = .text:0x8009B214; // type:function size:0x708 scope:local +TakeCoins = .text:0x8009B91C; // type:function size:0x1D4 scope:local +InitExplode = .text:0x8009BAF0; // type:function size:0x1FC scope:local +CheckExplode = .text:0x8009BCEC; // type:function size:0x24 scope:local +UpdateExplode = .text:0x8009BD10; // type:function size:0x2D0 scope:local +CreateBattleMain = .text:0x8009BFE0; // type:function size:0x1E8 scope:local +UpdateBattleMain = .text:0x8009C1C8; // type:function size:0x1A0 scope:local +DescendBattleBomb = .text:0x8009C368; // type:function size:0x64 scope:local +EndBattle = .text:0x8009C3CC; // type:function size:0x88 scope:local +ShowBattleGame = .text:0x8009C454; // type:function size:0x124 scope:local +RaiseBattleGame = .text:0x8009C578; // type:function size:0x8C scope:local +UpdateBattleCoin = .text:0x8009C604; // type:function size:0x260 scope:local +ShowBattleCoin = .text:0x8009C864; // type:function size:0x128 scope:local +InitBattleGameSpr = .text:0x8009C98C; // type:function size:0x12C scope:local +HideBattleSpr = .text:0x8009CAB8; // type:function size:0x58 scope:local +VibratePad = .text:0x8009CB10; // type:function size:0x64 scope:local +StopBattleBomb = .text:0x8009CB74; // type:function size:0x24 scope:local +GetBattleBombState = .text:0x8009CB98; // type:function size:0x10 scope:local +SetBattleBombState = .text:0x8009CBA8; // type:function size:0x34 scope:local +SetBattleCoinValue = .text:0x8009CBDC; // type:function size:0x15C scope:local +BoardFortuneExec = .text:0x8009CD38; // type:function size:0x124 +FortuneExec = .text:0x8009CE5C; // type:function size:0x74 scope:local +DestroyFortune = .text:0x8009CED0; // type:function size:0xC scope:local +FortuneMain = .text:0x8009CEDC; // type:function size:0x340 scope:local +FortunePostMG = .text:0x8009D21C; // type:function size:0xF8 scope:local +CreateFortunePlatform = .text:0x8009D314; // type:function size:0x160 scope:local +CameraCalcFortune = .text:0x8009D474; // type:function size:0x5C scope:local +ExecFortunePlatform = .text:0x8009D4D0; // type:function size:0x198 scope:local +ExecComFortuneWin = .text:0x8009D668; // type:function size:0x18C scope:local +ConfigComFortune = .text:0x8009D7F4; // type:function size:0x20C scope:local +ComFortuneAddStar = .text:0x8009DA00; // type:function size:0x78 scope:local +ComFortuneAddCoin = .text:0x8009DA78; // type:function size:0x78 scope:local +ComFortuneSwapCoin = .text:0x8009DAF0; // type:function size:0x68 scope:local +ComFortuneSwapStar = .text:0x8009DB58; // type:function size:0x68 scope:local +BoardBooCreate = .text:0x8009DBC0; // type:function size:0x11C +BoardBooKill = .text:0x8009DCDC; // type:function size:0x2C +BoardBooStealTypeSet = .text:0x8009DD08; // type:function size:0x2A8 +ComSetupStealPlayer = .text:0x8009DFB0; // type:function size:0x1D4 scope:local +ComSetStealPlayerInput = .text:0x8009E184; // type:function size:0xE8 scope:local +BoardBooStealMain = .text:0x8009E26C; // type:function size:0x280 +fn_8009E4EC = .text:0x8009E4EC; // type:function size:0xC0 scope:local +fn_8009E5AC = .text:0x8009E5AC; // type:function size:0xA8 scope:local +ExecLightSteal = .text:0x8009E654; // type:function size:0x94 scope:local +SetBooMode = .text:0x8009E6E8; // type:function size:0x10 scope:local +CreateBallMdl = .text:0x8009E6F8; // type:function size:0xBC scope:local +CreateBallView = .text:0x8009E7B4; // type:function size:0x1D4 scope:local +SetBallView = .text:0x8009E988; // type:function size:0xAC scope:local +SetBallActive = .text:0x8009EA34; // type:function size:0x28 scope:local +CheckBallKill = .text:0x8009EA5C; // type:function size:0x4C scope:local +BallMain = .text:0x8009EAA8; // type:function size:0x300 scope:local +BallRenderHook = .text:0x8009EDA8; // type:function size:0x4A0 scope:local +ExecBoo = .text:0x8009F248; // type:function size:0x9C scope:local +UpdateBallCamera = .text:0x8009F2E4; // type:function size:0x1DC scope:local +CreateBallPlayer = .text:0x8009F4C0; // type:function size:0x358 scope:local +GetBallPlayerState = .text:0x8009F818; // type:function size:0x24 scope:local +SetBallPlayerState = .text:0x8009F83C; // type:function size:0x2C scope:local +ExecBallPlayer = .text:0x8009F868; // type:function size:0x214 scope:local +BallPlayerZoomOut = .text:0x8009FA7C; // type:function size:0x15C scope:local +BallPlayerScare = .text:0x8009FBD8; // type:function size:0x110 scope:local +BallPlayerTurn = .text:0x8009FCE8; // type:function size:0x68 scope:local +BallPlayerPunch = .text:0x8009FD50; // type:function size:0x1E0 scope:local +BallPlayerUseLight = .text:0x8009FF30; // type:function size:0x10C scope:local +BallPlayerCatch = .text:0x800A003C; // type:function size:0x190 scope:local +BallBooCreate = .text:0x800A01CC; // type:function size:0x328 scope:local +SetBallBooState = .text:0x800A04F4; // type:function size:0x170 scope:local +GetBallBooState = .text:0x800A0664; // type:function size:0x24 scope:local +ExecBallBoo = .text:0x800A0688; // type:function size:0x128 scope:local +BallBooSpawn = .text:0x800A07B0; // type:function size:0x54 scope:local +BallBooChase = .text:0x800A0804; // type:function size:0x104 scope:local +BallBooBattle = .text:0x800A0908; // type:function size:0x218 scope:local +BallBooAttack = .text:0x800A0B20; // type:function size:0xF4 scope:local +BallBooFlash = .text:0x800A0C14; // type:function size:0x178 scope:local +TakeBallCoin = .text:0x800A0D8C; // type:function size:0x1B0 scope:local +ExecTakeBallCoin = .text:0x800A0F3C; // type:function size:0xDC scope:local +TakeBallCoinPosSet = .text:0x800A1018; // type:function size:0x9C scope:local +CheckBallCoinDone = .text:0x800A10B4; // type:function size:0x68 +TakeBallStar = .text:0x800A111C; // type:function size:0x168 +ExecTakeBallStar = .text:0x800A1284; // type:function size:0x184 +CheckTakeBallStarDone = .text:0x800A1408; // type:function size:0x1C +BoardBooStealValueGet = .text:0x800A1424; // type:function size:0x30 +BoardBooStealLightCheck = .text:0x800A1454; // type:function size:0x20 +UpdatePlayerCoins = .text:0x800A1474; // type:function size:0x1B0 scope:local +BoardMGSetupExec = .text:0x800A1624; // type:function size:0x60 +DestroyMGSetup = .text:0x800A1684; // type:function size:0x1C scope:local +ExecMGSetup = .text:0x800A16A0; // type:function size:0x6FC scope:local +DetermineMGList = .text:0x800A1D9C; // type:function size:0x3B0 scope:local +SetupStatusLayout = .text:0x800A214C; // type:function size:0x3A8 scope:local +GetMGType = .text:0x800A24F4; // type:function size:0x388 scope:local +GetMGTypeTeam = .text:0x800A287C; // type:function size:0x3A4 scope:local +CreateMGSetup = .text:0x800A2C20; // type:function size:0x194 scope:local +UpdateMGSetup = .text:0x800A2DB4; // type:function size:0x198 scope:local +CenterStatus = .text:0x800A2F4C; // type:function size:0x174 scope:local +SeparateStatus = .text:0x800A30C0; // type:function size:0x200 scope:local +PopupVS = .text:0x800A32C0; // type:function size:0x20C scope:local +FallMGType = .text:0x800A34CC; // type:function size:0x1C8 scope:local +LuckyMGFall = .text:0x800A3694; // type:function size:0x204 scope:local +HideLuckyValue = .text:0x800A3898; // type:function size:0xA8 scope:local +UpdateLuckyValue = .text:0x800A3940; // type:function size:0x430 scope:local +UpdateMGList = .text:0x800A3D70; // type:function size:0x8FC scope:local +BoardMGSetupPlayClear = .text:0x800A466C; // type:function size:0x74 +BoardMGSetupPlaySearch = .text:0x800A46E0; // type:function size:0xC8 +BoardMGSetupPlayPush = .text:0x800A47A8; // type:function size:0xD0 +BoardMGSetupTutorialExec = .text:0x800A4878; // type:function size:0x2E4 +BoardBooHouseHostSet = .text:0x800A4B5C; // type:function size:0x8 +BoardBooHouseHostGet = .text:0x800A4B64; // type:function size:0x8 +BoardBooHouseCreate = .text:0x800A4B6C; // type:function size:0xB4 +BoardBooHouseKill = .text:0x800A4C20; // type:function size:0x50 +BoardBooHouseExec = .text:0x800A4C70; // type:function size:0x94 +ExecBooHouse = .text:0x800A4D04; // type:function size:0x538 scope:local +DestroyBooHouse = .text:0x800A523C; // type:function size:0xF0 scope:local +PickComStealType = .text:0x800A532C; // type:function size:0xFC scope:local +OpenBooHouse = .text:0x800A5428; // type:function size:0x3A0 scope:local +CloseBooHouse = .text:0x800A57C8; // type:function size:0x124 scope:local +CreateBooHouseModel = .text:0x800A58EC; // type:function size:0xB0 scope:local +KillBooHouseModel = .text:0x800A599C; // type:function size:0xD4 scope:local +ExecNullSteal = .text:0x800A5A70; // type:function size:0x68 scope:local +ExecStarSteal = .text:0x800A5AD8; // type:function size:0x2AC scope:local +ExecCoinSteal = .text:0x800A5D84; // type:function size:0x2AC scope:local +ApplySteal = .text:0x800A6030; // type:function size:0x188 scope:local +ApplyCoinSteal = .text:0x800A61B8; // type:function size:0x16C scope:local +ApplyStarSteal = .text:0x800A6324; // type:function size:0x164 scope:local +ApplyBooLight = .text:0x800A6488; // type:function size:0x70 scope:local +SetBooBallPos = .text:0x800A64F8; // type:function size:0x60 scope:local +BoardBooComUseCheck = .text:0x800A6558; // type:function size:0x1A8 +BoardBooHouseTutorialExec = .text:0x800A6700; // type:function size:0x3D4 +BoardStartExec = .text:0x800A6AD4; // type:function size:0x64 +DestroyStart = .text:0x800A6B38; // type:function size:0x84 scope:local +ExecStart = .text:0x800A6BBC; // type:function size:0x400 scope:local +ShowLogo = .text:0x800A6FBC; // type:function size:0x2FC scope:local +FocusStart = .text:0x800A72B8; // type:function size:0x17C scope:local +CreatePlayerStart = .text:0x800A7434; // type:function size:0x2D8 scope:local +ExecPlayerStart = .text:0x800A770C; // type:function size:0x188 scope:local +PlayerFall = .text:0x800A7894; // type:function size:0x1C8 scope:local +PlayerWaitSpeak = .text:0x800A7A5C; // type:function size:0xEC scope:local +PlayerDiceFall = .text:0x800A7B48; // type:function size:0x1A8 scope:local +PlayerDiceRoll = .text:0x800A7CF0; // type:function size:0x454 scope:local +PlayerDiceNumShow = .text:0x800A8144; // type:function size:0xD8 scope:local +PlayerDiceNumHide = .text:0x800A821C; // type:function size:0x250 scope:local +SetPlayerStartState = .text:0x800A846C; // type:function size:0xC8 scope:local +GetPlayerStartState = .text:0x800A8534; // type:function size:0x3C scope:local +ExecStartRoll = .text:0x800A8570; // type:function size:0x6D4 scope:local +InitCamera = .text:0x800A8C44; // type:function size:0x318 scope:local +fn_800A8F5C = .text:0x800A8F5C; // type:function size:0xA4 scope:local +CreateTapWin = .text:0x800A9000; // type:function size:0xDC scope:local +OrderPlayers = .text:0x800A90DC; // type:function size:0x21C scope:local +BoardLast5Exec = .text:0x800A92F8; // type:function size:0x84 +DestroyLast5 = .text:0x800A937C; // type:function size:0x30 scope:local +ExecLast5 = .text:0x800A93AC; // type:function size:0x1D4 scope:local +CreateLast5 = .text:0x800A9580; // type:function size:0x184 scope:local +KillLast5 = .text:0x800A9704; // type:function size:0x48 scope:local +InitHost = .text:0x800A974C; // type:function size:0x10C scope:local +KillHost = .text:0x800A9858; // type:function size:0xA4 scope:local +Last5Main = .text:0x800A98FC; // type:function size:0xCC0 scope:local +CheckJump = .text:0x800AA5BC; // type:function size:0xA4 scope:local +CreateLotteryDrawWheel = .text:0x800AA660; // type:function size:0x1FC scope:local +CreateLotteryDraw = .text:0x800AA85C; // type:function size:0xD4 scope:local +UpdateLotteryDraw = .text:0x800AA930; // type:function size:0x170 scope:local +SetLotteryDrawState = .text:0x800AAAA0; // type:function size:0x88 scope:local +GetLotteryDrawState = .text:0x800AAB28; // type:function size:0x20 scope:local +KillLotteryDrawWheel = .text:0x800AAB48; // type:function size:0x24 scope:local +UpdateLotteryDrawWheel = .text:0x800AAB6C; // type:function size:0x2D0 scope:local +SetLotteryDrawWheelState = .text:0x800AAE3C; // type:function size:0x1D8 scope:local +ExecLotteryDraw = .text:0x800AB014; // type:function size:0x950 scope:local +KillLotteryTicket = .text:0x800AB964; // type:function size:0x4C scope:local +InitLotteryTicket = .text:0x800AB9B0; // type:function size:0x488 scope:local +UpdateLotteryTicket = .text:0x800ABE38; // type:function size:0x2A4 scope:local +SetLotteryTicketState = .text:0x800AC0DC; // type:function size:0x1C0 scope:local +GetLotteryTicketPlayer = .text:0x800AC29C; // type:function size:0x7C scope:local +CheckLotteryTicket = .text:0x800AC318; // type:function size:0x78 scope:local +UpdateLotteryTicketMatch = .text:0x800AC390; // type:function size:0xB0 scope:local +StartHostMove = .text:0x800AC440; // type:function size:0x1CC scope:local +ExecHostMove = .text:0x800AC60C; // type:function size:0x228 scope:local +CheckHostMove = .text:0x800AC834; // type:function size:0x1C scope:local +CreateStopWin = .text:0x800AC850; // type:function size:0xC0 scope:local +CreateLast5Roulette = .text:0x800AC910; // type:function size:0x180 scope:local +UpdateLast5Roulette = .text:0x800ACA90; // type:function size:0x2B0 scope:local +SetLast5RouletteFade = .text:0x800ACD40; // type:function size:0x44 scope:local +SetLast5RouletteState = .text:0x800ACD84; // type:function size:0x38 scope:local +GetLast5RouletteState = .text:0x800ACDBC; // type:function size:0x38 scope:local +GetLast5RouletteResult = .text:0x800ACDF4; // type:function size:0x44 scope:local +CreateTeamResult = .text:0x800ACE38; // type:function size:0x2B4 scope:local +CreateTeamResultWork = .text:0x800AD0EC; // type:function size:0x340 scope:local +SetTeamResultTarget = .text:0x800AD42C; // type:function size:0x58 scope:local +GetTeamResultTarget = .text:0x800AD484; // type:function size:0x58 scope:local +KillTeamResult = .text:0x800AD4DC; // type:function size:0x38 scope:local +UpdateTeamResult = .text:0x800AD514; // type:function size:0x260 scope:local +BoardPauseStart = .text:0x800AD774; // type:function size:0x88 +PauseExit = .text:0x800AD7FC; // type:function size:0x3C0 scope:local +PauseProcess = .text:0x800ADBBC; // type:function size:0x108 scope:local +CreatePauseScreen = .text:0x800ADCC4; // type:function size:0xABC scope:local +DeletePauseScreen = .text:0x800AE780; // type:function size:0x168 scope:local +SetBoxVisible = .text:0x800AE8E8; // type:function size:0x58 scope:local +PauseConfigObjFunc = .text:0x800AE940; // type:function size:0x4F4 scope:local +UpdatePauseText = .text:0x800AEE34; // type:function size:0x310 scope:local +InitPauseQuit = .text:0x800AF144; // type:function size:0x264 scope:local +PauseQuitProcess = .text:0x800AF3A8; // type:function size:0x110 scope:local +DeletePauseQuit = .text:0x800AF4B8; // type:function size:0x48 scope:local +UpdatePadConfig = .text:0x800AF500; // type:function size:0xD4 scope:local +CreatePadConfig = .text:0x800AF5D4; // type:function size:0x1CC scope:local +ScrollInPadConfig = .text:0x800AF7A0; // type:function size:0x178 scope:local +CursorMovePadConfig = .text:0x800AF918; // type:function size:0x238 scope:local +ChangeDiffPadConfig = .text:0x800AFB50; // type:function size:0x3B0 scope:local +ScrollOutPadConfig = .text:0x800AFF00; // type:function size:0x154 scope:local +UpdatePauseBox = .text:0x800B0054; // type:function size:0x390 scope:local +UpdatePauseBoxExt = .text:0x800B03E4; // type:function size:0x3E4 scope:local +ExecPauseConfig = .text:0x800B07C8; // type:function size:0x240 scope:local +CreatePauseControlWin = .text:0x800B0A08; // type:function size:0x210 scope:local +DeletePauseControlWin = .text:0x800B0C18; // type:function size:0x70 scope:local +WaitPauseInput = .text:0x800B0C88; // type:function size:0x1B8 scope:local +ShowPauseConfig = .text:0x800B0E40; // type:function size:0x12C scope:local +CreatePadConfigSprite = .text:0x800B0F6C; // type:function size:0x1A4 scope:local +ShowPadConfigSprite = .text:0x800B1110; // type:function size:0x10C scope:local +PauseCreateNumber = .text:0x800B121C; // type:function size:0xDC scope:local +BoardPauseActiveCheck = .text:0x800B12F8; // type:function size:0x34 +BoardPauseReqCheck = .text:0x800B132C; // type:function size:0x12C +CheckPort = .text:0x800B1458; // type:function size:0x4C scope:local +RotateBox = .text:0x800B14A4; // type:function size:0xC0 scope:local +SearchPathNodeSpace = .text:0x800B1564; // type:function size:0x60 scope:local +InitPathNode = .text:0x800B15C4; // type:function size:0x180 scope:local +FindChildNode = .text:0x800B1744; // type:function size:0xE4 scope:local +GetNumValidLinks = .text:0x800B1828; // type:function size:0xB4 scope:local +AddValidLinks = .text:0x800B18DC; // type:function size:0xD0 scope:local +CheckPathSpace = .text:0x800B19AC; // type:function size:0x30 scope:local +FindValidLink = .text:0x800B19DC; // type:function size:0xAC scope:local +CheckEndSpace = .text:0x800B1A88; // type:function size:0xF0 scope:local +BoardComPathShortcutLenGet = .text:0x800B1B78; // type:function size:0x74C +BoardComPathBestGet = .text:0x800B22C4; // type:function size:0x3E4 +BoardComPathLenGet = .text:0x800B26A8; // type:function size:0x65C +CheckPath = .text:0x800B2D04; // type:function size:0x488 scope:local +BoardComPathBestGetFlag = .text:0x800B318C; // type:function size:0x45C +CheckPathFlag = .text:0x800B35E8; // type:function size:0x4E0 scope:local +TutorialProcFunc = .text:0x800B3AC8; // type:function size:0x34 scope:local +BoardTutorialInit = .text:0x800B3AFC; // type:function size:0x80 +BoardTutorialKill = .text:0x800B3B7C; // type:function size:0x4C +BoardTutorialHookSet = .text:0x800B3BC8; // type:function size:0x8 +BoardTutorialHookExec = .text:0x800B3BD0; // type:function size:0x44 +BoardTutorialPlayerInit = .text:0x800B3C14; // type:function size:0x78 +BoardTutorialWorkSave = .text:0x800B3C8C; // type:function size:0x10C +BoardTutorialWorkRestore = .text:0x800B3D98; // type:function size:0xBC +BoardTutorialDirInputSet = .text:0x800B3E54; // type:function size:0x10 +BoardTutorialBlockSetPos = .text:0x800B3E64; // type:function size:0x40 +BoardTutorialItemSet = .text:0x800B3EA4; // type:function size:0x8 +BoardTutorialHostSet = .text:0x800B3EAC; // type:function size:0x8 +BoardTutorialHostHide = .text:0x800B3EB4; // type:function size:0x30 PPCMfmsr = .text:0x800B3EE4; // type:function size:0x8 scope:global PPCMtmsr = .text:0x800B3EEC; // type:function size:0x8 scope:global PPCMfhid0 = .text:0x800B3EF4; // type:function size:0x8 scope:global @@ -2053,7 +2053,7 @@ OSSetAlarm = .text:0x800B4B90; // type:function size:0x68 scope:global OSCancelAlarm = .text:0x800B4BF8; // type:function size:0x11C DecrementerExceptionCallback = .text:0x800B4D14; // type:function size:0x230 scope:local DecrementerExceptionHandler = .text:0x800B4F44; // type:function size:0x50 scope:local -DLInsert = .text:0x800B4F94; // type:function size:0xAC +DLInsert = .text:0x800B4F94; // type:function size:0xAC scope:local OSAllocFromHeap = .text:0x800B5040; // type:function size:0xFC OSAllocFixed = .text:0x800B513C; // type:function size:0x284 OSFreeToHeap = .text:0x800B53C0; // type:function size:0x7C @@ -2110,7 +2110,7 @@ OSRestoreInterrupts = .text:0x800B6E54; // type:function size:0x24 scope:global __OSSetInterruptHandler = .text:0x800B6E78; // type:function size:0x1C scope:global __OSGetInterruptHandler = .text:0x800B6E94; // type:function size:0x14 __OSInterruptInit = .text:0x800B6EA8; // type:function size:0x74 scope:global -SetInterruptMask = .text:0x800B6F1C; // type:function size:0x2D8 +SetInterruptMask = .text:0x800B6F1C; // type:function size:0x2D8 scope:local __OSMaskInterrupts = .text:0x800B71F4; // type:function size:0x88 scope:global __OSUnmaskInterrupts = .text:0x800B727C; // type:function size:0x88 scope:global __OSDispatchInterrupt = .text:0x800B7304; // type:function size:0x344 @@ -2119,21 +2119,21 @@ OSNotifyLink = .text:0x800B7698; // type:function size:0x4 scope:weak OSNotifyUnlink = .text:0x800B769C; // type:function size:0x4 scope:weak Relocate = .text:0x800B76A0; // type:function size:0x274 scope:local OSLink = .text:0x800B7914; // type:function size:0x250 -Undo = .text:0x800B7B64; // type:function size:0x20C +Undo = .text:0x800B7B64; // type:function size:0x20C scope:local OSUnlink = .text:0x800B7D70; // type:function size:0x94 __OSModuleInit = .text:0x800B7E04; // type:function size:0x18 scope:global OSInitMessageQueue = .text:0x800B7E1C; // type:function size:0x60 OSGetPhysicalMemSize = .text:0x800B7E7C; // type:function size:0xC OSGetConsoleSimulatedMemSize = .text:0x800B7E88; // type:function size:0xC -OnReset = .text:0x800B7E94; // type:function size:0x3C +OnReset = .text:0x800B7E94; // type:function size:0x3C scope:local MEMIntrruptHandler = .text:0x800B7ED0; // type:function size:0x6C scope:local Config24MB = .text:0x800B7F3C; // type:function size:0x80 scope:local Config48MB = .text:0x800B7FBC; // type:function size:0x80 scope:local RealMode = .text:0x800B803C; // type:function size:0x18 scope:local __OSInitMemoryProtection = .text:0x800B8054; // type:function size:0x120 scope:global __OSUnlockAllMutex = .text:0x800B8174; // type:function size:0x70 -Run = .text:0x800B81E4; // type:function size:0x40 -Callback = .text:0x800B8224; // type:function size:0xC +Run = .text:0x800B81E4; // type:function size:0x40 scope:local +Callback = .text:0x800B8224; // type:function size:0xC scope:local __OSReboot = .text:0x800B8230; // type:function size:0x1C0 scope:global OSRegisterResetFunction = .text:0x800B83F0; // type:function size:0x84 scope:global Reset = .text:0x800B8474; // type:function size:0x70 scope:local @@ -2142,12 +2142,12 @@ OSResetSystem = .text:0x800B852C; // type:function size:0x278 scope:global OSGetResetCode = .text:0x800B87A4; // type:function size:0x30 scope:global __OSResetSWInterruptHandler = .text:0x800B87D4; // type:function size:0xF4 scope:global OSGetResetButtonState = .text:0x800B88C8; // type:function size:0x298 -WriteSramCallback = .text:0x800B8B60; // type:function size:0x60 -WriteSram = .text:0x800B8BC0; // type:function size:0x118 +WriteSramCallback = .text:0x800B8B60; // type:function size:0x60 scope:local +WriteSram = .text:0x800B8BC0; // type:function size:0x118 scope:local __OSInitSram = .text:0x800B8CD8; // type:function size:0x134 scope:global __OSLockSram = .text:0x800B8E0C; // type:function size:0x5C scope:global __OSLockSramEx = .text:0x800B8E68; // type:function size:0x5C scope:global -UnlockSram = .text:0x800B8EC4; // type:function size:0x308 +UnlockSram = .text:0x800B8EC4; // type:function size:0x308 scope:local __OSUnlockSram = .text:0x800B91CC; // type:function size:0x24 scope:global __OSUnlockSramEx = .text:0x800B91F0; // type:function size:0x24 scope:global __OSSyncSram = .text:0x800B9214; // type:function size:0x10 scope:global @@ -2164,39 +2164,39 @@ OSCheckStopwatch = .text:0x800B96C0; // type:function size:0x70 OSResetStopwatch = .text:0x800B9730; // type:function size:0x28 OSDumpStopwatch = .text:0x800B9758; // type:function size:0x1A4 __OSSystemCallVectorStart = .text:0x800B98FC; // type:label scope:global -SystemCallVector = .text:0x800B98FC; // type:function size:0x20 +SystemCallVector = .text:0x800B98FC; // type:function size:0x20 scope:local __OSSystemCallVectorEnd = .text:0x800B9918; // type:label scope:global __OSInitSystemCall = .text:0x800B991C; // type:function size:0x64 scope:global __OSThreadInit = .text:0x800B9980; // type:function size:0x128 scope:global OSInitThreadQueue = .text:0x800B9AA8; // type:function size:0x10 scope:global -fn_800B9AB8 = .text:0x800B9AB8; // type:function size:0xC +OSGetCurrentThread = .text:0x800B9AB8; // type:function size:0xC OSDisableScheduler = .text:0x800B9AC4; // type:function size:0x40 scope:global OSEnableScheduler = .text:0x800B9B04; // type:function size:0x40 scope:global -fn_800B9B44 = .text:0x800B9B44; // type:function size:0x68 -fn_800B9BAC = .text:0x800B9BAC; // type:function size:0x3C -fn_800B9BE8 = .text:0x800B9BE8; // type:function size:0x1C0 +UnsetRun = .text:0x800B9B44; // type:function size:0x68 scope:local +__OSGetEffectivePriority = .text:0x800B9BAC; // type:function size:0x3C +SetEffectivePriority = .text:0x800B9BE8; // type:function size:0x1C0 scope:local SelectThread = .text:0x800B9DA8; // type:function size:0x200 scope:local __OSReschedule = .text:0x800B9FA8; // type:function size:0x30 scope:global -fn_800B9FD8 = .text:0x800B9FD8; // type:function size:0x3C -fn_800BA014 = .text:0x800BA014; // type:function size:0x120 -fn_800BA134 = .text:0x800BA134; // type:function size:0xE4 +OSYieldThread = .text:0x800B9FD8; // type:function size:0x3C +OSCreateThread = .text:0x800BA014; // type:function size:0x120 +OSExitThread = .text:0x800BA134; // type:function size:0xE4 OSCancelThread = .text:0x800BA218; // type:function size:0x1BC scope:global -fn_800BA3D4 = .text:0x800BA3D4; // type:function size:0x288 -fn_800BA65C = .text:0x800BA65C; // type:function size:0x170 -fn_800BA7CC = .text:0x800BA7CC; // type:function size:0xEC -fn_800BA8B8 = .text:0x800BA8B8; // type:function size:0x104 -fn_800BA9BC = .text:0x800BA9BC; // type:function size:0x90 +OSResumeThread = .text:0x800BA3D4; // type:function size:0x288 +OSSuspendThread = .text:0x800BA65C; // type:function size:0x170 +OSSleepThread = .text:0x800BA7CC; // type:function size:0xEC +OSWakeupThread = .text:0x800BA8B8; // type:function size:0x104 +OSSetIdleFunction = .text:0x800BA9BC; // type:function size:0x90 OSGetTime = .text:0x800BAA4C; // type:function size:0x18 scope:global OSGetTick = .text:0x800BAA64; // type:function size:0x8 scope:global __OSGetSystemTime = .text:0x800BAA6C; // type:function size:0x64 scope:global -fn_800BAAD0 = .text:0x800BAAD0; // type:function size:0x19C -fn_800BAC6C = .text:0x800BAC6C; // type:function size:0x204 +GetDates = .text:0x800BAAD0; // type:function size:0x19C scope:local +OSTicksToCalendarTime = .text:0x800BAC6C; // type:function size:0x204 __init_user = .text:0x800BAE70; // type:function size:0x20 scope:global __init_cpp = .text:0x800BAE90; // type:function size:0x54 scope:local _ExitProcess = .text:0x800BAEE4; // type:function size:0x20 scope:global DBInit = .text:0x800BAF04; // type:function size:0x28 scope:global -fn_800BAF2C = .text:0x800BAF2C; // type:function size:0x48 -__DBExceptionDestination = .text:0x800BAF74; // type:function size:0x10 scope:global +__DBExceptionDestinationAux = .text:0x800BAF2C; // type:function size:0x48 +__DBExceptionDestination = .text:0x800BAF74; // type:function size:0x10 scope:local __DBIsExceptionMarked = .text:0x800BAF84; // type:function size:0x1C scope:global DBPrintf = .text:0x800BAFA0; // type:function size:0x50 scope:global PSMTXIdentity = .text:0x800BAFF0; // type:function size:0x2C @@ -2209,497 +2209,497 @@ PSMTXRotRad = .text:0x800BB32C; // type:function size:0x70 PSMTXRotTrig = .text:0x800BB39C; // type:function size:0xA8 PSMTXRotAxisRad = .text:0x800BB444; // type:function size:0x104 PSMTXTrans = .text:0x800BB548; // type:function size:0x34 -fn_800BB57C = .text:0x800BB57C; // type:function size:0x28 -fn_800BB5A4 = .text:0x800BB5A4; // type:function size:0xA4 -fn_800BB648 = .text:0x800BB648; // type:function size:0x18C -fn_800BB7D4 = .text:0x800BB7D4; // type:function size:0xCC -fn_800BB8A0 = .text:0x800BB8A0; // type:function size:0x54 -fn_800BB8F4 = .text:0x800BB8F4; // type:function size:0x8C -fn_800BB980 = .text:0x800BB980; // type:function size:0x54 -fn_800BB9D4 = .text:0x800BB9D4; // type:function size:0xD0 -fn_800BBAA4 = .text:0x800BBAA4; // type:function size:0x98 -fn_800BBB3C = .text:0x800BBB3C; // type:function size:0x24 -fn_800BBB60 = .text:0x800BBB60; // type:function size:0x24 -fn_800BBB84 = .text:0x800BBB84; // type:function size:0x1C -fn_800BBBA0 = .text:0x800BBBA0; // type:function size:0x44 -fn_800BBBE4 = .text:0x800BBBE4; // type:function size:0x18 -fn_800BBBFC = .text:0x800BBBFC; // type:function size:0x3C -fn_800BBC38 = .text:0x800BBC38; // type:function size:0x20 -fn_800BBC58 = .text:0x800BBC58; // type:function size:0x3C -fn_800BBC94 = .text:0x800BBC94; // type:function size:0xD8 -fn_800BBD6C = .text:0x800BBD6C; // type:function size:0xD4 -fn_800BBE40 = .text:0x800BBE40; // type:function size:0x28 -fn_800BBE68 = .text:0x800BBE68; // type:function size:0x4C -fn_800BBEB4 = .text:0x800BBEB4; // type:function size:0x44 -fn_800BBEF8 = .text:0x800BBEF8; // type:function size:0x24 -fn_800BBF1C = .text:0x800BBF1C; // type:function size:0x5C -fn_800BBF78 = .text:0x800BBF78; // type:function size:0x54 -fn_800BBFCC = .text:0x800BBFCC; // type:function size:0x50 -fn_800BC01C = .text:0x800BC01C; // type:function size:0x8C -fn_800BC0A8 = .text:0x800BC0A8; // type:function size:0x258 -fn_800BC300 = .text:0x800BC300; // type:function size:0x174 -fn_800BC474 = .text:0x800BC474; // type:function size:0x4C -fn_800BC4C0 = .text:0x800BC4C0; // type:function size:0x118 +PSMTXScale = .text:0x800BB57C; // type:function size:0x28 +PSMTXQuat = .text:0x800BB5A4; // type:function size:0xA4 +C_MTXLookAt = .text:0x800BB648; // type:function size:0x18C +C_MTXLightPerspective = .text:0x800BB7D4; // type:function size:0xCC +PSMTXMultVec = .text:0x800BB8A0; // type:function size:0x54 +PSMTXMultVecArray = .text:0x800BB8F4; // type:function size:0x8C +PSMTXMultVecSR = .text:0x800BB980; // type:function size:0x54 +C_MTXPerspective = .text:0x800BB9D4; // type:function size:0xD0 +C_MTXOrtho = .text:0x800BBAA4; // type:function size:0x98 +PSVECAdd = .text:0x800BBB3C; // type:function size:0x24 +PSVECSubtract = .text:0x800BBB60; // type:function size:0x24 +PSVECScale = .text:0x800BBB84; // type:function size:0x1C +PSVECNormalize = .text:0x800BBBA0; // type:function size:0x44 +PSVECSquareMag = .text:0x800BBBE4; // type:function size:0x18 +PSVECMag = .text:0x800BBBFC; // type:function size:0x3C +PSVECDotProduct = .text:0x800BBC38; // type:function size:0x20 +PSVECCrossProduct = .text:0x800BBC58; // type:function size:0x3C +C_VECHalfAngle = .text:0x800BBC94; // type:function size:0xD8 +C_VECReflect = .text:0x800BBD6C; // type:function size:0xD4 +PSVECSquareDistance = .text:0x800BBE40; // type:function size:0x28 +PSVECDistance = .text:0x800BBE68; // type:function size:0x4C +C_QUATAdd = .text:0x800BBEB4; // type:function size:0x44 +PSQUATAdd = .text:0x800BBEF8; // type:function size:0x24 +PSQUATMultiply = .text:0x800BBF1C; // type:function size:0x5C +PSQUATNormalize = .text:0x800BBF78; // type:function size:0x54 +PSQUATInverse = .text:0x800BBFCC; // type:function size:0x50 +C_QUATRotAxisRad = .text:0x800BC01C; // type:function size:0x8C +C_QUATMtx = .text:0x800BC0A8; // type:function size:0x258 +C_QUATSlerp = .text:0x800BC300; // type:function size:0x174 +PSMTXReorder = .text:0x800BC474; // type:function size:0x4C +PSMTXROMultVecArray = .text:0x800BC4C0; // type:function size:0x118 __DVDInitWA = .text:0x800BC5D8; // type:function size:0x40 scope:global __DVDInterruptHandler = .text:0x800BC618; // type:function size:0x2F4 scope:global fn_800BC90C = .text:0x800BC90C; // type:function size:0x84 AlarmHandlerForTimeout = .text:0x800BC990; // type:function size:0x70 scope:local -fn_800BCA00 = .text:0x800BCA00; // type:function size:0x110 -fn_800BCB10 = .text:0x800BCB10; // type:function size:0x80 -fn_800BCB90 = .text:0x800BCB90; // type:function size:0x298 -fn_800BCE28 = .text:0x800BCE28; // type:function size:0x94 +Read = .text:0x800BCA00; // type:function size:0x110 scope:local +SeekTwiceBeforeRead = .text:0x800BCB10; // type:function size:0x80 scope:local +DVDLowRead = .text:0x800BCB90; // type:function size:0x298 +DVDLowSeek = .text:0x800BCE28; // type:function size:0x94 DVDLowWaitCoverClose = .text:0x800BCEBC; // type:function size:0x2C scope:global -fn_800BCEE8 = .text:0x800BCEE8; // type:function size:0xA4 +DVDLowReadDiskID = .text:0x800BCEE8; // type:function size:0xA4 DVDLowStopMotor = .text:0x800BCF8C; // type:function size:0x8C scope:global -fn_800BD018 = .text:0x800BD018; // type:function size:0x8C -fn_800BD0A4 = .text:0x800BD0A4; // type:function size:0x9C -fn_800BD140 = .text:0x800BD140; // type:function size:0x98 -fn_800BD1D8 = .text:0x800BD1D8; // type:function size:0x8C -fn_800BD264 = .text:0x800BD264; // type:function size:0x9C +DVDLowRequestError = .text:0x800BD018; // type:function size:0x8C +DVDLowInquiry = .text:0x800BD0A4; // type:function size:0x9C +DVDLowAudioStream = .text:0x800BD140; // type:function size:0x98 +DVDLowRequestAudioStatus = .text:0x800BD1D8; // type:function size:0x8C +DVDLowAudioBufferConfig = .text:0x800BD264; // type:function size:0x9C DVDLowReset = .text:0x800BD300; // type:function size:0xBC scope:global -fn_800BD3BC = .text:0x800BD3BC; // type:function size:0x14 -fn_800BD3D0 = .text:0x800BD3D0; // type:function size:0x18 +DVDLowBreak = .text:0x800BD3BC; // type:function size:0x14 +DVDLowClearCallback = .text:0x800BD3D0; // type:function size:0x18 __DVDLowSetWAType = .text:0x800BD3E8; // type:function size:0x44 scope:global __DVDFSInit = .text:0x800BD42C; // type:function size:0x38 scope:global -fn_800BD464 = .text:0x800BD464; // type:function size:0x2F4 -fn_800BD758 = .text:0x800BD758; // type:function size:0x74 -fn_800BD7CC = .text:0x800BD7CC; // type:function size:0xC8 -fn_800BD894 = .text:0x800BD894; // type:function size:0x24 -fn_800BD8B8 = .text:0x800BD8B8; // type:function size:0x160 -fn_800BDA18 = .text:0x800BDA18; // type:function size:0xC4 -fn_800BDADC = .text:0x800BDADC; // type:function size:0xC0 -fn_800BDB9C = .text:0x800BDB9C; // type:function size:0x30 -fn_800BDBCC = .text:0x800BDBCC; // type:function size:0x118 -fn_800BDCE4 = .text:0x800BDCE4; // type:function size:0x24 +DVDConvertPathToEntrynum = .text:0x800BD464; // type:function size:0x2F4 +DVDFastOpen = .text:0x800BD758; // type:function size:0x74 +DVDOpen = .text:0x800BD7CC; // type:function size:0xC8 +DVDClose = .text:0x800BD894; // type:function size:0x24 +entryToPath = .text:0x800BD8B8; // type:function size:0x160 scope:local +DVDGetCurrentDir = .text:0x800BDA18; // type:function size:0xC4 +DVDReadAsyncPrio = .text:0x800BDADC; // type:function size:0xC0 +cbForReadAsync = .text:0x800BDB9C; // type:function size:0x30 scope:local +DVDReadPrio = .text:0x800BDBCC; // type:function size:0x118 +cbForReadSync = .text:0x800BDCE4; // type:function size:0x24 scope:local DVDInit = .text:0x800BDD08; // type:function size:0xFC scope:global -fn_800BDE04 = .text:0x800BDE04; // type:function size:0x54 -fn_800BDE58 = .text:0x800BDE58; // type:function size:0x80 +stateReadingFST = .text:0x800BDE04; // type:function size:0x54 scope:local +cbForStateReadingFST = .text:0x800BDE58; // type:function size:0x80 scope:local cbForStateError = .text:0x800BDED8; // type:function size:0xA8 scope:local -fn_800BDF80 = .text:0x800BDF80; // type:function size:0x9C -fn_800BE01C = .text:0x800BE01C; // type:function size:0x28 -fn_800BE044 = .text:0x800BE044; // type:function size:0xB4 -fn_800BE0F8 = .text:0x800BE0F8; // type:function size:0x294 -fn_800BE38C = .text:0x800BE38C; // type:function size:0x68 -fn_800BE3F4 = .text:0x800BE3F4; // type:function size:0x98 -fn_800BE48C = .text:0x800BE48C; // type:function size:0x28 -fn_800BE4B4 = .text:0x800BE4B4; // type:function size:0x158 -fn_800BE60C = .text:0x800BE60C; // type:function size:0xE4 -fn_800BE6F0 = .text:0x800BE6F0; // type:function size:0x34 -fn_800BE724 = .text:0x800BE724; // type:function size:0x38 -fn_800BE75C = .text:0x800BE75C; // type:function size:0x114 -fn_800BE870 = .text:0x800BE870; // type:function size:0xA4 -fn_800BE914 = .text:0x800BE914; // type:function size:0xFC +stateTimeout = .text:0x800BDF80; // type:function size:0x9C scope:local +stateGettingError = .text:0x800BE01C; // type:function size:0x28 scope:local +CategorizeError = .text:0x800BE044; // type:function size:0xB4 scope:local +cbForStateGettingError = .text:0x800BE0F8; // type:function size:0x294 scope:local +cbForUnrecoveredError = .text:0x800BE38C; // type:function size:0x68 scope:local +cbForUnrecoveredErrorRetry = .text:0x800BE3F4; // type:function size:0x98 scope:local +stateGoToRetry = .text:0x800BE48C; // type:function size:0x28 scope:local +cbForStateGoToRetry = .text:0x800BE4B4; // type:function size:0x158 scope:local +stateCheckID = .text:0x800BE60C; // type:function size:0xE4 scope:local +stateCheckID3 = .text:0x800BE6F0; // type:function size:0x34 scope:local +stateCheckID2 = .text:0x800BE724; // type:function size:0x38 scope:local +cbForStateCheckID1 = .text:0x800BE75C; // type:function size:0x114 scope:local +cbForStateCheckID2 = .text:0x800BE870; // type:function size:0xA4 scope:local +cbForStateCheckID3 = .text:0x800BE914; // type:function size:0xFC scope:local AlarmHandler = .text:0x800BEA10; // type:function size:0x44 scope:local -fn_800BEA54 = .text:0x800BEA54; // type:function size:0xCC -fn_800BEB20 = .text:0x800BEB20; // type:function size:0x30 -fn_800BEB50 = .text:0x800BEB50; // type:function size:0x70 -fn_800BEBC0 = .text:0x800BEBC0; // type:function size:0x28 +stateCoverClosed = .text:0x800BEA54; // type:function size:0xCC scope:local +stateCoverClosed_CMD = .text:0x800BEB20; // type:function size:0x30 scope:local +cbForStateCoverClosed = .text:0x800BEB50; // type:function size:0x70 scope:local +stateMotorStopped = .text:0x800BEBC0; // type:function size:0x28 scope:local cbForStateMotorStopped = .text:0x800BEBE8; // type:function size:0xE4 scope:local stateReady = .text:0x800BECCC; // type:function size:0x248 scope:local stateBusy = .text:0x800BEF14; // type:function size:0x2C0 scope:local -fn_800BF1D4 = .text:0x800BF1D4; // type:function size:0x5D4 -fn_800BF7A8 = .text:0x800BF7A8; // type:function size:0xDC -fn_800BF884 = .text:0x800BF884; // type:function size:0xD0 +cbForStateBusy = .text:0x800BF1D4; // type:function size:0x5D4 +DVDReadAbsAsyncPrio = .text:0x800BF7A8; // type:function size:0xDC +DVDReadAbsAsyncForBS = .text:0x800BF884; // type:function size:0xD0 DVDReadDiskID = .text:0x800BF954; // type:function size:0xD4 scope:global DVDInquiryAsync = .text:0x800BFA28; // type:function size:0xD0 scope:global DVDReset = .text:0x800BFAF8; // type:function size:0x44 scope:global -fn_800BFB3C = .text:0x800BFB3C; // type:function size:0x4C +DVDGetCommandBlockStatus = .text:0x800BFB3C; // type:function size:0x4C DVDGetDriveStatus = .text:0x800BFB88; // type:function size:0xAC scope:global -fn_800BFC34 = .text:0x800BFC34; // type:function size:0x10 -fn_800BFC44 = .text:0x800BFC44; // type:function size:0x270 -fn_800BFEB4 = .text:0x800BFEB4; // type:function size:0xAC -fn_800BFF60 = .text:0x800BFF60; // type:function size:0x24 -fn_800BFF84 = .text:0x800BFF84; // type:function size:0x8 -fn_800BFF8C = .text:0x800BFF8C; // type:function size:0xE4 -fn_800C0070 = .text:0x800C0070; // type:function size:0x11C +DVDSetAutoInvalidation = .text:0x800BFC34; // type:function size:0x10 +DVDCancelAsync = .text:0x800BFC44; // type:function size:0x270 +DVDCancel = .text:0x800BFEB4; // type:function size:0xAC +cbForCancelSync = .text:0x800BFF60; // type:function size:0x24 scope:local +DVDGetCurrentDiskID = .text:0x800BFF84; // type:function size:0x8 +DVDCheckDisk = .text:0x800BFF8C; // type:function size:0xE4 +__DVDPrepareResetAsync = .text:0x800C0070; // type:function size:0x11C __DVDClearWaitingQueue = .text:0x800C018C; // type:function size:0x38 scope:global __DVDPushWaitingQueue = .text:0x800C01C4; // type:function size:0x68 scope:global __DVDPopWaitingQueue = .text:0x800C022C; // type:function size:0xA0 scope:global __DVDCheckWaitingQueue = .text:0x800C02CC; // type:function size:0x58 scope:global -fn_800C0324 = .text:0x800C0324; // type:function size:0x60 +__DVDDequeueWaitingQueue = .text:0x800C0324; // type:function size:0x60 ErrorCode2Num = .text:0x800C0384; // type:function size:0x11C scope:local __DVDStoreErrorCode = .text:0x800C04A0; // type:function size:0x7C scope:global cb = .text:0x800C051C; // type:function size:0xD8 scope:local __fstLoad = .text:0x800C05F4; // type:function size:0x168 scope:global -fn_800C075C = .text:0x800C075C; // type:function size:0x228 -fn_800C0984 = .text:0x800C0984; // type:function size:0x44 -fn_800C09C8 = .text:0x800C09C8; // type:function size:0x44 -fn_800C0A0C = .text:0x800C0A0C; // type:function size:0x90 -fn_800C0A9C = .text:0x800C0A9C; // type:function size:0x1F8 -fn_800C0C94 = .text:0x800C0C94; // type:function size:0x478 -fn_800C110C = .text:0x800C110C; // type:function size:0x54 -fn_800C1160 = .text:0x800C1160; // type:function size:0x2D4 -fn_800C1434 = .text:0x800C1434; // type:function size:0x1A0 -fn_800C15D4 = .text:0x800C15D4; // type:function size:0x79C -fn_800C1D70 = .text:0x800C1D70; // type:function size:0x394 -fn_800C2104 = .text:0x800C2104; // type:function size:0x11C -fn_800C2220 = .text:0x800C2220; // type:function size:0x6C -fn_800C228C = .text:0x800C228C; // type:function size:0x7C -fn_800C2308 = .text:0x800C2308; // type:function size:0x8 -fn_800C2310 = .text:0x800C2310; // type:function size:0x68 -fn_800C2378 = .text:0x800C2378; // type:function size:0xA8 -fn_800C2420 = .text:0x800C2420; // type:function size:0x98 +__VIRetraceHandler = .text:0x800C075C; // type:function size:0x228 scope:local +VISetPreRetraceCallback = .text:0x800C0984; // type:function size:0x44 +VISetPostRetraceCallback = .text:0x800C09C8; // type:function size:0x44 +getTiming = .text:0x800C0A0C; // type:function size:0x90 scope:local +__VIInit = .text:0x800C0A9C; // type:function size:0x1F8 +VIInit = .text:0x800C0C94; // type:function size:0x478 +VIWaitForRetrace = .text:0x800C110C; // type:function size:0x54 +setFbbRegs = .text:0x800C1160; // type:function size:0x2D4 scope:local +setVerticalRegs = .text:0x800C1434; // type:function size:0x1A0 scope:local +VIConfigure = .text:0x800C15D4; // type:function size:0x79C +VIConfigurePan = .text:0x800C1D70; // type:function size:0x394 +VIFlush = .text:0x800C2104; // type:function size:0x11C +VISetNextFrameBuffer = .text:0x800C2220; // type:function size:0x6C +VISetBlack = .text:0x800C228C; // type:function size:0x7C +VIGetRetraceCount = .text:0x800C2308; // type:function size:0x8 +getCurrentFieldEvenOdd = .text:0x800C2310; // type:function size:0x68 scope:local +VIGetNextField = .text:0x800C2378; // type:function size:0xA8 +VIGetCurrentLine = .text:0x800C2420; // type:function size:0x98 VIGetTvFormat = .text:0x800C24B8; // type:function size:0x7C scope:global -fn_800C2534 = .text:0x800C2534; // type:function size:0x3C -fn_800C2570 = .text:0x800C2570; // type:function size:0x8 -fn_800C2578 = .text:0x800C2578; // type:function size:0x228 -fn_800C27A0 = .text:0x800C27A0; // type:function size:0x310 -fn_800C2AB0 = .text:0x800C2AB0; // type:function size:0xC4 -fn_800C2B74 = .text:0x800C2B74; // type:function size:0x394 -fn_800C2F08 = .text:0x800C2F08; // type:function size:0x58 -fn_800C2F60 = .text:0x800C2F60; // type:function size:0x96C -fn_800C38CC = .text:0x800C38CC; // type:function size:0x130 -fn_800C39FC = .text:0x800C39FC; // type:function size:0x108 -fn_800C3B04 = .text:0x800C3B04; // type:function size:0x1A4 -fn_800C3CA8 = .text:0x800C3CA8; // type:function size:0xC4 -fn_800C3D6C = .text:0x800C3D6C; // type:function size:0xC0 -fn_800C3E2C = .text:0x800C3E2C; // type:function size:0xD8 -fn_800C3F04 = .text:0x800C3F04; // type:function size:0x32C -fn_800C4230 = .text:0x800C4230; // type:function size:0x134 -fn_800C4364 = .text:0x800C4364; // type:function size:0x100 -fn_800C4464 = .text:0x800C4464; // type:function size:0x104 -fn_800C4568 = .text:0x800C4568; // type:function size:0x210 -fn_800C4778 = .text:0x800C4778; // type:function size:0x3AC -fn_800C4B24 = .text:0x800C4B24; // type:function size:0xA4 -fn_800C4BC8 = .text:0x800C4BC8; // type:function size:0x60 -fn_800C4C28 = .text:0x800C4C28; // type:function size:0x174 -fn_800C4D9C = .text:0x800C4D9C; // type:function size:0x174 -fn_800C4F10 = .text:0x800C4F10; // type:function size:0x3F8 -fn_800C5308 = .text:0x800C5308; // type:function size:0x194 -fn_800C549C = .text:0x800C549C; // type:function size:0x60 -fn_800C54FC = .text:0x800C54FC; // type:function size:0x54 +VIGetDTVStatus = .text:0x800C2534; // type:function size:0x3C +DEMOGetRenderModeObj = .text:0x800C2570; // type:function size:0x8 +DEMOInitCaption = .text:0x800C2578; // type:function size:0x228 +DEMOPuts = .text:0x800C27A0; // type:function size:0x310 +DEMOPrintf = .text:0x800C2AB0; // type:function size:0xC4 +DEMOWriteStats = .text:0x800C2B74; // type:function size:0x394 +DEMOUpdateStats = .text:0x800C2F08; // type:function size:0x58 +DEMOPrintStats = .text:0x800C2F60; // type:function size:0x96C +ClampStick = .text:0x800C38CC; // type:function size:0x130 scope:local +PADClamp = .text:0x800C39FC; // type:function size:0x108 +UpdateOrigin = .text:0x800C3B04; // type:function size:0x1A4 scope:local +PADOriginCallback = .text:0x800C3CA8; // type:function size:0xC4 scope:local +PADOriginUpdateCallback = .text:0x800C3D6C; // type:function size:0xC0 scope:local +PADProbeCallback = .text:0x800C3E2C; // type:function size:0xD8 scope:local +PADTypeAndStatusCallback = .text:0x800C3F04; // type:function size:0x32C scope:local +PADReceiveCheckCallback = .text:0x800C4230; // type:function size:0x134 scope:local +PADReset = .text:0x800C4364; // type:function size:0x100 +PADRecalibrate = .text:0x800C4464; // type:function size:0x104 +PADInit = .text:0x800C4568; // type:function size:0x210 +PADRead = .text:0x800C4778; // type:function size:0x3AC +PADControlMotor = .text:0x800C4B24; // type:function size:0xA4 +PADSetSpec = .text:0x800C4BC8; // type:function size:0x60 +SPEC0_MakeStatus = .text:0x800C4C28; // type:function size:0x174 scope:local +SPEC1_MakeStatus = .text:0x800C4D9C; // type:function size:0x174 scope:local +SPEC2_MakeStatus = .text:0x800C4F10; // type:function size:0x3F8 scope:local +fn_800C5308 = .text:0x800C5308; // type:function size:0x194 scope:local +SamplingHandler = .text:0x800C549C; // type:function size:0x60 scope:local +PADSetSamplingCallback = .text:0x800C54FC; // type:function size:0x54 __PADDisableRecalibration = .text:0x800C5550; // type:function size:0x7C scope:global -fn_800C55CC = .text:0x800C55CC; // type:function size:0x44 -fn_800C5610 = .text:0x800C5610; // type:function size:0x88 -fn_800C5698 = .text:0x800C5698; // type:function size:0x18 -fn_800C56B0 = .text:0x800C56B0; // type:function size:0x18 -fn_800C56C8 = .text:0x800C56C8; // type:function size:0x1C -fn_800C56E4 = .text:0x800C56E4; // type:function size:0xD8 -fn_800C57BC = .text:0x800C57BC; // type:function size:0x10 -fn_800C57CC = .text:0x800C57CC; // type:function size:0xE0 -fn_800C58AC = .text:0x800C58AC; // type:function size:0x14 -fn_800C58C0 = .text:0x800C58C0; // type:function size:0xD4 -fn_800C5994 = .text:0x800C5994; // type:function size:0x10 -fn_800C59A4 = .text:0x800C59A4; // type:function size:0x1C -fn_800C59C0 = .text:0x800C59C0; // type:function size:0x10 -fn_800C59D0 = .text:0x800C59D0; // type:function size:0x1C -fn_800C59EC = .text:0x800C59EC; // type:function size:0x10 -fn_800C59FC = .text:0x800C59FC; // type:function size:0x164 -fn_800C5B60 = .text:0x800C5B60; // type:function size:0x7C -fn_800C5BDC = .text:0x800C5BDC; // type:function size:0x90 -fn_800C5C6C = .text:0x800C5C6C; // type:function size:0x58 -fn_800C5CC4 = .text:0x800C5CC4; // type:function size:0x1E4 -fn_800C5EA8 = .text:0x800C5EA8; // type:function size:0x44 -fn_800C5EEC = .text:0x800C5EEC; // type:function size:0x3C -fn_800C5F28 = .text:0x800C5F28; // type:function size:0xF0 -fn_800C6018 = .text:0x800C6018; // type:function size:0x68 -fn_800C6080 = .text:0x800C6080; // type:function size:0x74 -fn_800C60F4 = .text:0x800C60F4; // type:function size:0x8 -fn_800C60FC = .text:0x800C60FC; // type:function size:0xBC -fn_800C61B8 = .text:0x800C61B8; // type:function size:0x4 -fn_800C61BC = .text:0x800C61BC; // type:function size:0x8 -fn_800C61C4 = .text:0x800C61C4; // type:function size:0x8 -fn_800C61CC = .text:0x800C61CC; // type:function size:0x78 -fn_800C6244 = .text:0x800C6244; // type:function size:0x914 -fn_800C6B58 = .text:0x800C6B58; // type:function size:0x100 -fn_800C6C58 = .text:0x800C6C58; // type:function size:0x4 -fn_800C6C5C = .text:0x800C6C5C; // type:function size:0xCC -fn_800C6D28 = .text:0x800C6D28; // type:function size:0x68 -fn_800C6D90 = .text:0x800C6D90; // type:function size:0x15C -fn_800C6EEC = .text:0x800C6EEC; // type:function size:0x10 -fn_800C6EFC = .text:0x800C6EFC; // type:function size:0x10 -fn_800C6F0C = .text:0x800C6F0C; // type:function size:0x18 -fn_800C6F24 = .text:0x800C6F24; // type:function size:0x14 -fn_800C6F38 = .text:0x800C6F38; // type:function size:0xB8 -fn_800C6FF0 = .text:0x800C6FF0; // type:function size:0x48 -fn_800C7038 = .text:0x800C7038; // type:function size:0x40 -fn_800C7078 = .text:0x800C7078; // type:function size:0x10 -fn_800C7088 = .text:0x800C7088; // type:function size:0x70 -fn_800C70F8 = .text:0x800C70F8; // type:function size:0x50 -fn_800C7148 = .text:0x800C7148; // type:function size:0x424 -fn_800C756C = .text:0x800C756C; // type:function size:0x1A0 -fn_800C770C = .text:0x800C770C; // type:function size:0x18C -fn_800C7898 = .text:0x800C7898; // type:function size:0xA0 -fn_800C7938 = .text:0x800C7938; // type:function size:0x94 -fn_800C79CC = .text:0x800C79CC; // type:function size:0x7C -fn_800C7A48 = .text:0x800C7A48; // type:function size:0x24 +AIRegisterDMACallback = .text:0x800C55CC; // type:function size:0x44 +AIInitDMA = .text:0x800C5610; // type:function size:0x88 +AIStartDMA = .text:0x800C5698; // type:function size:0x18 +AIStopDMA = .text:0x800C56B0; // type:function size:0x18 +AIGetDMAStartAddr = .text:0x800C56C8; // type:function size:0x1C +AISetStreamPlayState = .text:0x800C56E4; // type:function size:0xD8 +AIGetStreamPlayState = .text:0x800C57BC; // type:function size:0x10 +AISetDSPSampleRate = .text:0x800C57CC; // type:function size:0xE0 +AIGetDSPSampleRate = .text:0x800C58AC; // type:function size:0x14 +__AI_set_stream_sample_rate = .text:0x800C58C0; // type:function size:0xD4 scope:local +AIGetStreamSampleRate = .text:0x800C5994; // type:function size:0x10 +AISetStreamVolLeft = .text:0x800C59A4; // type:function size:0x1C +AIGetStreamVolLeft = .text:0x800C59C0; // type:function size:0x10 +AISetStreamVolRight = .text:0x800C59D0; // type:function size:0x1C +AIGetStreamVolRight = .text:0x800C59EC; // type:function size:0x10 +AIInit = .text:0x800C59FC; // type:function size:0x164 +__AISHandler = .text:0x800C5B60; // type:function size:0x7C +__AIDHandler = .text:0x800C5BDC; // type:function size:0x90 +__AICallbackStackSwitch = .text:0x800C5C6C; // type:function size:0x58 +__AI_SRC_INIT = .text:0x800C5CC4; // type:function size:0x1E4 +ARRegisterDMACallback = .text:0x800C5EA8; // type:function size:0x44 +ARGetDMAStatus = .text:0x800C5EEC; // type:function size:0x3C +ARStartDMA = .text:0x800C5F28; // type:function size:0xF0 +ARAlloc = .text:0x800C6018; // type:function size:0x68 +ARFree = .text:0x800C6080; // type:function size:0x74 +ARCheckInit = .text:0x800C60F4; // type:function size:0x8 +ARInit = .text:0x800C60FC; // type:function size:0xBC +ARSetSize = .text:0x800C61B8; // type:function size:0x4 +ARGetBaseAddress = .text:0x800C61BC; // type:function size:0x8 +ARGetSize = .text:0x800C61C4; // type:function size:0x8 +__ARHandler = .text:0x800C61CC; // type:function size:0x78 scope:local +__ARChecksize = .text:0x800C6244; // type:function size:0x914 scope:local +__ARQServiceQueueLo = .text:0x800C6B58; // type:function size:0x100 +__ARQCallbackHack = .text:0x800C6C58; // type:function size:0x4 +__ARQInterruptServiceRoutine = .text:0x800C6C5C; // type:function size:0xCC +ARQInit = .text:0x800C6D28; // type:function size:0x68 +ARQPostRequest = .text:0x800C6D90; // type:function size:0x15C +DSPCheckMailToDSP = .text:0x800C6EEC; // type:function size:0x10 +DSPCheckMailFromDSP = .text:0x800C6EFC; // type:function size:0x10 +DSPReadMailFromDSP = .text:0x800C6F0C; // type:function size:0x18 +DSPSendMailToDSP = .text:0x800C6F24; // type:function size:0x14 +DSPInit = .text:0x800C6F38; // type:function size:0xB8 +DSPReset = .text:0x800C6FF0; // type:function size:0x48 +DSPHalt = .text:0x800C7038; // type:function size:0x40 +DSPGetDMAStatus = .text:0x800C7078; // type:function size:0x10 +DSPAddTask = .text:0x800C7088; // type:function size:0x70 +__DSP_debug_printf = .text:0x800C70F8; // type:function size:0x50 +__DSPHandler = .text:0x800C7148; // type:function size:0x424 +__DSP_exec_task = .text:0x800C756C; // type:function size:0x1A0 +__DSP_boot_task = .text:0x800C770C; // type:function size:0x18C +__DSP_insert_task = .text:0x800C7898; // type:function size:0xA0 +__DSP_remove_task = .text:0x800C7938; // type:function size:0x94 +__GXDefaultTexRegionCallback = .text:0x800C79CC; // type:function size:0x7C +__GXDefaultTlutRegionCallback = .text:0x800C7A48; // type:function size:0x24 GXInit = .text:0x800C7A6C; // type:function size:0x7CC scope:global __GXInitGX = .text:0x800C8238; // type:function size:0x884 scope:global -fn_800C8ABC = .text:0x800C8ABC; // type:function size:0x13C +GXCPInterruptHandler = .text:0x800C8ABC; // type:function size:0x13C scope:local GXInitFifoBase = .text:0x800C8BF8; // type:function size:0x6C scope:global -fn_800C8C64 = .text:0x800C8C64; // type:function size:0x70 -fn_800C8CD4 = .text:0x800C8CD4; // type:function size:0xC +GXInitFifoPtrs = .text:0x800C8C64; // type:function size:0x70 +GXInitFifoLimits = .text:0x800C8CD4; // type:function size:0xC GXSetCPUFifo = .text:0x800C8CE0; // type:function size:0x110 scope:global GXSetGPFifo = .text:0x800C8DF0; // type:function size:0x178 scope:global -fn_800C8F68 = .text:0x800C8F68; // type:function size:0x20 -fn_800C8F88 = .text:0x800C8F88; // type:function size:0xDC +GXSaveCPUFifo = .text:0x800C8F68; // type:function size:0x20 +__GXSaveCPUFifoAux = .text:0x800C8F88; // type:function size:0xDC __GXFifoInit = .text:0x800C9064; // type:function size:0x4C scope:global -fn_800C90B0 = .text:0x800C90B0; // type:function size:0x28 -fn_800C90D8 = .text:0x800C90D8; // type:function size:0x24 -fn_800C90FC = .text:0x800C90FC; // type:function size:0x44 -fn_800C9140 = .text:0x800C9140; // type:function size:0x4C -fn_800C918C = .text:0x800C918C; // type:function size:0x4C -fn_800C91D8 = .text:0x800C91D8; // type:function size:0xFC -fn_800C92D4 = .text:0x800C92D4; // type:function size:0x8 -fn_800C92DC = .text:0x800C92DC; // type:function size:0x8 -fn_800C92E4 = .text:0x800C92E4; // type:function size:0x158 -fn_800C943C = .text:0x800C943C; // type:function size:0x360 -fn_800C979C = .text:0x800C979C; // type:function size:0x54 -fn_800C97F0 = .text:0x800C97F0; // type:function size:0x124 -fn_800C9914 = .text:0x800C9914; // type:function size:0x4C -fn_800C9960 = .text:0x800C9960; // type:function size:0x35C -fn_800C9CBC = .text:0x800C9CBC; // type:function size:0x9C -fn_800C9D58 = .text:0x800C9D58; // type:function size:0x8C -fn_800C9DE4 = .text:0x800C9DE4; // type:function size:0x10 -fn_800C9DF4 = .text:0x800C9DF4; // type:function size:0x2D0 -fn_800CA0C4 = .text:0x800CA0C4; // type:function size:0x48 +__GXFifoReadEnable = .text:0x800C90B0; // type:function size:0x28 +__GXFifoReadDisable = .text:0x800C90D8; // type:function size:0x24 +__GXFifoLink = .text:0x800C90FC; // type:function size:0x44 +__GXWriteFifoIntEnable = .text:0x800C9140; // type:function size:0x4C +__GXWriteFifoIntReset = .text:0x800C918C; // type:function size:0x4C +__GXCleanGPFifo = .text:0x800C91D8; // type:function size:0xFC +GXGetCPUFifo = .text:0x800C92D4; // type:function size:0x8 +GXGetGPFifo = .text:0x800C92DC; // type:function size:0x8 +__GXXfVtxSpecs = .text:0x800C92E4; // type:function size:0x158 +GXSetVtxDesc = .text:0x800C943C; // type:function size:0x360 +__GXSetVCD = .text:0x800C979C; // type:function size:0x54 +__GXCalculateVLim = .text:0x800C97F0; // type:function size:0x124 +GXClearVtxDesc = .text:0x800C9914; // type:function size:0x4C +GXSetVtxAttrFmt = .text:0x800C9960; // type:function size:0x35C +__GXSetVAT = .text:0x800C9CBC; // type:function size:0x9C +GXSetArray = .text:0x800C9D58; // type:function size:0x8C +GXInvalidateVtxCache = .text:0x800C9DE4; // type:function size:0x10 +GXSetTexCoordGen2 = .text:0x800C9DF4; // type:function size:0x2D0 +GXSetNumTexGens = .text:0x800CA0C4; // type:function size:0x48 GXSetMisc = .text:0x800CA10C; // type:function size:0x78 scope:global -fn_800CA184 = .text:0x800CA184; // type:function size:0x5C -fn_800CA1E0 = .text:0x800CA1E0; // type:function size:0x34 -fn_800CA214 = .text:0x800CA214; // type:function size:0xCC -fn_800CA2E0 = .text:0x800CA2E0; // type:function size:0xB8 -fn_800CA398 = .text:0x800CA398; // type:function size:0x98 -fn_800CA430 = .text:0x800CA430; // type:function size:0x4C -fn_800CA47C = .text:0x800CA47C; // type:function size:0x80 -fn_800CA4FC = .text:0x800CA4FC; // type:function size:0x24 -fn_800CA520 = .text:0x800CA520; // type:function size:0x14 -fn_800CA534 = .text:0x800CA534; // type:function size:0x14 -fn_800CA548 = .text:0x800CA548; // type:function size:0x1C -fn_800CA564 = .text:0x800CA564; // type:function size:0x88 -fn_800CA5EC = .text:0x800CA5EC; // type:function size:0x1C -fn_800CA608 = .text:0x800CA608; // type:function size:0x14 -fn_800CA61C = .text:0x800CA61C; // type:function size:0x1C -fn_800CA638 = .text:0x800CA638; // type:function size:0x28 -fn_800CA660 = .text:0x800CA660; // type:function size:0x44 -fn_800CA6A4 = .text:0x800CA6A4; // type:function size:0x88 -fn_800CA72C = .text:0x800CA72C; // type:function size:0x84 +GXFlush = .text:0x800CA184; // type:function size:0x5C +GXResetWriteGatherPipe = .text:0x800CA1E0; // type:function size:0x34 +__GXAbortWaitPECopyDone = .text:0x800CA214; // type:function size:0xCC +GXSetDrawSync = .text:0x800CA2E0; // type:function size:0xB8 +GXSetDrawDone = .text:0x800CA398; // type:function size:0x98 +GXWaitDrawDone = .text:0x800CA430; // type:function size:0x4C +GXDrawDone = .text:0x800CA47C; // type:function size:0x80 +GXPixModeSync = .text:0x800CA4FC; // type:function size:0x24 +GXPokeAlphaMode = .text:0x800CA520; // type:function size:0x14 +GXPokeAlphaRead = .text:0x800CA534; // type:function size:0x14 +GXPokeAlphaUpdate = .text:0x800CA548; // type:function size:0x1C +GXPokeBlendMode = .text:0x800CA564; // type:function size:0x88 +GXPokeColorUpdate = .text:0x800CA5EC; // type:function size:0x1C +GXPokeDstAlpha = .text:0x800CA608; // type:function size:0x14 +GXPokeDither = .text:0x800CA61C; // type:function size:0x1C +GXPokeZMode = .text:0x800CA638; // type:function size:0x28 +GXSetDrawSyncCallback = .text:0x800CA660; // type:function size:0x44 +GXTokenInterruptHandler = .text:0x800CA6A4; // type:function size:0x88 +GXFinishInterruptHandler = .text:0x800CA72C; // type:function size:0x84 __GXPEInit = .text:0x800CA7B0; // type:function size:0x80 scope:global -fn_800CA830 = .text:0x800CA830; // type:function size:0xA0 -fn_800CA8D0 = .text:0x800CA8D0; // type:function size:0xF0 -fn_800CA9C0 = .text:0x800CA9C0; // type:function size:0x88 -fn_800CAA48 = .text:0x800CAA48; // type:function size:0x58 -fn_800CAAA0 = .text:0x800CAAA0; // type:function size:0x54 -fn_800CAAF4 = .text:0x800CAAF4; // type:function size:0x64 -fn_800CAB58 = .text:0x800CAB58; // type:function size:0x50 -fn_800CABA8 = .text:0x800CABA8; // type:function size:0x44 -fn_800CABEC = .text:0x800CABEC; // type:function size:0x24 -fn_800CAC10 = .text:0x800CAC10; // type:function size:0x120 -fn_800CAD30 = .text:0x800CAD30; // type:function size:0xC0 -fn_800CADF0 = .text:0x800CADF0; // type:function size:0xC0 -fn_800CAEB0 = .text:0x800CAEB0; // type:function size:0x44 -fn_800CAEF4 = .text:0x800CAEF4; // type:function size:0x170 -fn_800CB064 = .text:0x800CB064; // type:function size:0x2C -fn_800CB090 = .text:0x800CB090; // type:function size:0x7C -fn_800CB10C = .text:0x800CB10C; // type:function size:0xD4 -fn_800CB1E0 = .text:0x800CB1E0; // type:function size:0x68 -fn_800CB248 = .text:0x800CB248; // type:function size:0x228 -fn_800CB470 = .text:0x800CB470; // type:function size:0x1C -fn_800CB48C = .text:0x800CB48C; // type:function size:0x170 -fn_800CB5FC = .text:0x800CB5FC; // type:function size:0x190 -fn_800CB78C = .text:0x800CB78C; // type:function size:0x38 -fn_800CB7C4 = .text:0x800CB7C4; // type:function size:0x1C -fn_800CB7E0 = .text:0x800CB7E0; // type:function size:0x10 -fn_800CB7F0 = .text:0x800CB7F0; // type:function size:0x180 -fn_800CB970 = .text:0x800CB970; // type:function size:0xD0 -fn_800CBA40 = .text:0x800CBA40; // type:function size:0x10 -fn_800CBA50 = .text:0x800CBA50; // type:function size:0x1C -fn_800CBA6C = .text:0x800CBA6C; // type:function size:0xD4 -fn_800CBB40 = .text:0x800CBB40; // type:function size:0x28 -fn_800CBB68 = .text:0x800CBB68; // type:function size:0x148 -fn_800CBCB0 = .text:0x800CBCB0; // type:function size:0x168 -fn_800CBE18 = .text:0x800CBE18; // type:function size:0x168 -fn_800CBF80 = .text:0x800CBF80; // type:function size:0x4C -fn_800CBFCC = .text:0x800CBFCC; // type:function size:0x1E4 -fn_800CC1B0 = .text:0x800CC1B0; // type:function size:0x15C -fn_800CC30C = .text:0x800CC30C; // type:function size:0xC8 -fn_800CC3D4 = .text:0x800CC3D4; // type:function size:0x274 -fn_800CC648 = .text:0x800CC648; // type:function size:0x48 -fn_800CC690 = .text:0x800CC690; // type:function size:0x194 -fn_800CC824 = .text:0x800CC824; // type:function size:0x8 -fn_800CC82C = .text:0x800CC82C; // type:function size:0x1A8 -fn_800CC9D4 = .text:0x800CC9D4; // type:function size:0x54 -fn_800CCA28 = .text:0x800CCA28; // type:function size:0x48 -fn_800CCA70 = .text:0x800CCA70; // type:function size:0x9C +__GXSetDirtyState = .text:0x800CA830; // type:function size:0xA0 +GXBegin = .text:0x800CA8D0; // type:function size:0xF0 +__GXSendFlushPrim = .text:0x800CA9C0; // type:function size:0x88 +GXSetLineWidth = .text:0x800CAA48; // type:function size:0x58 +GXSetPointSize = .text:0x800CAAA0; // type:function size:0x54 +GXEnableTexOffsets = .text:0x800CAAF4; // type:function size:0x64 +GXSetCullMode = .text:0x800CAB58; // type:function size:0x50 +GXSetCoPlanar = .text:0x800CABA8; // type:function size:0x44 +__GXSetGenMode = .text:0x800CABEC; // type:function size:0x24 +GXAdjustForOverscan = .text:0x800CAC10; // type:function size:0x120 +GXSetDispCopySrc = .text:0x800CAD30; // type:function size:0xC0 +GXSetTexCopySrc = .text:0x800CADF0; // type:function size:0xC0 +GXSetDispCopyDst = .text:0x800CAEB0; // type:function size:0x44 +GXSetTexCopyDst = .text:0x800CAEF4; // type:function size:0x170 +GXSetDispCopyFrame2Field = .text:0x800CB064; // type:function size:0x2C +GXSetCopyClamp = .text:0x800CB090; // type:function size:0x7C +GXSetDispCopyYScale = .text:0x800CB10C; // type:function size:0xD4 +GXSetCopyClear = .text:0x800CB1E0; // type:function size:0x68 +GXSetCopyFilter = .text:0x800CB248; // type:function size:0x228 +GXSetDispCopyGamma = .text:0x800CB470; // type:function size:0x1C +GXCopyDisp = .text:0x800CB48C; // type:function size:0x170 +GXCopyTex = .text:0x800CB5FC; // type:function size:0x190 +GXClearBoundingBox = .text:0x800CB78C; // type:function size:0x38 +GXInitLightAttn = .text:0x800CB7C4; // type:function size:0x1C +GXInitLightAttnK = .text:0x800CB7E0; // type:function size:0x10 +GXInitLightSpot = .text:0x800CB7F0; // type:function size:0x180 +GXInitLightDistAttn = .text:0x800CB970; // type:function size:0xD0 +GXInitLightPos = .text:0x800CBA40; // type:function size:0x10 +GXInitLightDir = .text:0x800CBA50; // type:function size:0x1C +GXInitSpecularDir = .text:0x800CBA6C; // type:function size:0xD4 +GXInitLightColor = .text:0x800CBB40; // type:function size:0x28 +GXLoadLightObjImm = .text:0x800CBB68; // type:function size:0x148 +GXSetChanAmbColor = .text:0x800CBCB0; // type:function size:0x168 +GXSetChanMatColor = .text:0x800CBE18; // type:function size:0x168 +GXSetNumChans = .text:0x800CBF80; // type:function size:0x4C +GXSetChanCtrl = .text:0x800CBFCC; // type:function size:0x1E4 +GXGetTexBufferSize = .text:0x800CC1B0; // type:function size:0x15C +__GetImageTileCount = .text:0x800CC30C; // type:function size:0xC8 +GXInitTexObj = .text:0x800CC3D4; // type:function size:0x274 +GXInitTexObjCI = .text:0x800CC648; // type:function size:0x48 +GXInitTexObjLOD = .text:0x800CC690; // type:function size:0x194 +GXGetTexObjFmt = .text:0x800CC824; // type:function size:0x8 +GXLoadTexObjPreLoaded = .text:0x800CC82C; // type:function size:0x1A8 +GXLoadTexObj = .text:0x800CC9D4; // type:function size:0x54 +GXInitTlutObj = .text:0x800CCA28; // type:function size:0x48 +GXLoadTlut = .text:0x800CCA70; // type:function size:0x9C GXInitTexCacheRegion = .text:0x800CCB0C; // type:function size:0x120 scope:global GXInitTlutRegion = .text:0x800CCC2C; // type:function size:0x48 scope:global -fn_800CCC74 = .text:0x800CCC74; // type:function size:0x48 -fn_800CCCBC = .text:0x800CCCBC; // type:function size:0x14 -fn_800CCCD0 = .text:0x800CCCD0; // type:function size:0x14 -fn_800CCCE4 = .text:0x800CCCE4; // type:function size:0x9C -fn_800CCD80 = .text:0x800CCD80; // type:function size:0xCC -fn_800CCE4C = .text:0x800CCE4C; // type:function size:0x17C +GXInvalidateTexAll = .text:0x800CCC74; // type:function size:0x48 +GXSetTexRegionCallback = .text:0x800CCCBC; // type:function size:0x14 +GXSetTlutRegionCallback = .text:0x800CCCD0; // type:function size:0x14 +GXSetTexCoordScaleManually = .text:0x800CCCE4; // type:function size:0x9C +__SetSURegs = .text:0x800CCD80; // type:function size:0xCC scope:local +__GXSetSUTexRegs = .text:0x800CCE4C; // type:function size:0x17C __GXSetTmemConfig = .text:0x800CCFC8; // type:function size:0x240 scope:global -fn_800CD208 = .text:0x800CD208; // type:function size:0x9C -fn_800CD2A4 = .text:0x800CD2A4; // type:function size:0x160 -fn_800CD404 = .text:0x800CD404; // type:function size:0x1D4 -fn_800CD5D8 = .text:0x800CD5D8; // type:function size:0x138 -fn_800CD710 = .text:0x800CD710; // type:function size:0x2C -fn_800CD73C = .text:0x800CD73C; // type:function size:0x48 -fn_800CD784 = .text:0x800CD784; // type:function size:0x64 -fn_800CD7E8 = .text:0x800CD7E8; // type:function size:0x1AC -fn_800CD994 = .text:0x800CD994; // type:function size:0xCC +GXSetTevIndirect = .text:0x800CD208; // type:function size:0x9C +GXSetIndTexMtx = .text:0x800CD2A4; // type:function size:0x160 +GXSetIndTexCoordScale = .text:0x800CD404; // type:function size:0x1D4 +GXSetIndTexOrder = .text:0x800CD5D8; // type:function size:0x138 +GXSetNumIndStages = .text:0x800CD710; // type:function size:0x2C +GXSetTevDirect = .text:0x800CD73C; // type:function size:0x48 +GXSetTevIndWarp = .text:0x800CD784; // type:function size:0x64 +GXSetTevIndTile = .text:0x800CD7E8; // type:function size:0x1AC +__GXUpdateBPMask = .text:0x800CD994; // type:function size:0xCC __GXFlushTextureState = .text:0x800CDA60; // type:function size:0x24 scope:global -fn_800CDA84 = .text:0x800CDA84; // type:function size:0x1A4 -fn_800CDC28 = .text:0x800CDC28; // type:function size:0x80 -fn_800CDCA8 = .text:0x800CDCA8; // type:function size:0x84 -fn_800CDD2C = .text:0x800CDD2C; // type:function size:0xC0 -fn_800CDDEC = .text:0x800CDDEC; // type:function size:0xC0 -fn_800CDEAC = .text:0x800CDEAC; // type:function size:0x74 -fn_800CDF20 = .text:0x800CDF20; // type:function size:0x74 -fn_800CDF94 = .text:0x800CDF94; // type:function size:0x74 -fn_800CE008 = .text:0x800CE008; // type:function size:0x6C -fn_800CE074 = .text:0x800CE074; // type:function size:0x6C -fn_800CE0E0 = .text:0x800CE0E0; // type:function size:0x58 -fn_800CE138 = .text:0x800CE138; // type:function size:0xA0 -fn_800CE1D8 = .text:0x800CE1D8; // type:function size:0x50 -fn_800CE228 = .text:0x800CE228; // type:function size:0x84 -fn_800CE2AC = .text:0x800CE2AC; // type:function size:0x1DC -fn_800CE488 = .text:0x800CE488; // type:function size:0x34 -fn_800CE4BC = .text:0x800CE4BC; // type:function size:0x1B0 -fn_800CE66C = .text:0x800CE66C; // type:function size:0x100 -fn_800CE76C = .text:0x800CE76C; // type:function size:0x104 -fn_800CE870 = .text:0x800CE870; // type:function size:0x40 -fn_800CE8B0 = .text:0x800CE8B0; // type:function size:0x40 -fn_800CE8F0 = .text:0x800CE8F0; // type:function size:0x78 -fn_800CE968 = .text:0x800CE968; // type:function size:0x40 -fn_800CE9A8 = .text:0x800CE9A8; // type:function size:0x110 -fn_800CEAB8 = .text:0x800CEAB8; // type:function size:0x40 -fn_800CEAF8 = .text:0x800CEAF8; // type:function size:0x54 -fn_800CEB4C = .text:0x800CEB4C; // type:function size:0x38 -fn_800CEB84 = .text:0x800CEB84; // type:function size:0x80 -fn_800CEC04 = .text:0x800CEC04; // type:function size:0x4 -fn_800CEC08 = .text:0x800CEC08; // type:function size:0xC8 -fn_800CECD0 = .text:0x800CECD0; // type:function size:0xD4 -fn_800CEDA4 = .text:0x800CEDA4; // type:function size:0x70 -fn_800CEE14 = .text:0x800CEE14; // type:function size:0x174 -fn_800CEF88 = .text:0x800CEF88; // type:function size:0xD4 -fn_800CF05C = .text:0x800CF05C; // type:function size:0x78 -fn_800CF0D4 = .text:0x800CF0D4; // type:function size:0x34 -fn_800CF108 = .text:0x800CF108; // type:function size:0x34 -fn_800CF13C = .text:0x800CF13C; // type:function size:0x24 -fn_800CF160 = .text:0x800CF160; // type:function size:0x3C -fn_800CF19C = .text:0x800CF19C; // type:function size:0x40 -fn_800CF1DC = .text:0x800CF1DC; // type:function size:0x3C -fn_800CF218 = .text:0x800CF218; // type:function size:0x84 -fn_800CF29C = .text:0x800CF29C; // type:function size:0x11C -fn_800CF3B8 = .text:0x800CF3B8; // type:function size:0x24 -fn_800CF3DC = .text:0x800CF3DC; // type:function size:0x4C -fn_800CF428 = .text:0x800CF428; // type:function size:0xB0 -fn_800CF4D8 = .text:0x800CF4D8; // type:function size:0x44 -fn_800CF51C = .text:0x800CF51C; // type:function size:0x28 -fn_800CF544 = .text:0x800CF544; // type:function size:0x84 -fn_800CF5C8 = .text:0x800CF5C8; // type:function size:0x898 -fn_800CFE60 = .text:0x800CFE60; // type:function size:0x1A8 -fn_800D0008 = .text:0x800D0008; // type:function size:0x10 -fn_800D0018 = .text:0x800D0018; // type:function size:0x2C -fn_800D0044 = .text:0x800D0044; // type:function size:0x2C -fn_800D0070 = .text:0x800D0070; // type:function size:0x214 -fn_800D0284 = .text:0x800D0284; // type:function size:0xA8 -fn_800D032C = .text:0x800D032C; // type:function size:0x138 -fn_800D0464 = .text:0x800D0464; // type:function size:0x30 -fn_800D0494 = .text:0x800D0494; // type:function size:0x50 -fn_800D04E4 = .text:0x800D04E4; // type:function size:0x94 -fn_800D0578 = .text:0x800D0578; // type:function size:0x1C -fn_800D0594 = .text:0x800D0594; // type:function size:0x4 -fn_800D0598 = .text:0x800D0598; // type:function size:0x34 -fn_800D05CC = .text:0x800D05CC; // type:function size:0xD8 -fn_800D06A4 = .text:0x800D06A4; // type:function size:0x118 -fn_800D07BC = .text:0x800D07BC; // type:function size:0xA8 -fn_800D0864 = .text:0x800D0864; // type:function size:0x84 -fn_800D08E8 = .text:0x800D08E8; // type:function size:0xC0 -fn_800D09A8 = .text:0x800D09A8; // type:function size:0xF0 -fn_800D0A98 = .text:0x800D0A98; // type:function size:0xAC -fn_800D0B44 = .text:0x800D0B44; // type:function size:0xA4 -fn_800D0BE8 = .text:0x800D0BE8; // type:function size:0x22C -fn_800D0E14 = .text:0x800D0E14; // type:function size:0x110 -fn_800D0F24 = .text:0x800D0F24; // type:function size:0x1B4 -fn_800D10D8 = .text:0x800D10D8; // type:function size:0x134 -fn_800D120C = .text:0x800D120C; // type:function size:0x11C -fn_800D1328 = .text:0x800D1328; // type:function size:0xE0 -fn_800D1408 = .text:0x800D1408; // type:function size:0x9C -fn_800D14A4 = .text:0x800D14A4; // type:function size:0x38 -fn_800D14DC = .text:0x800D14DC; // type:function size:0xB8 -fn_800D1594 = .text:0x800D1594; // type:function size:0x64 -fn_800D15F8 = .text:0x800D15F8; // type:function size:0x150 -fn_800D1748 = .text:0x800D1748; // type:function size:0x84 -fn_800D17CC = .text:0x800D17CC; // type:function size:0x98 -fn_800D1864 = .text:0x800D1864; // type:function size:0x50 -fn_800D18B4 = .text:0x800D18B4; // type:function size:0x16C -fn_800D1A20 = .text:0x800D1A20; // type:function size:0x144 -fn_800D1B64 = .text:0x800D1B64; // type:function size:0xC4 -fn_800D1C28 = .text:0x800D1C28; // type:function size:0xB58 -fn_800D2780 = .text:0x800D2780; // type:function size:0x70 -fn_800D27F0 = .text:0x800D27F0; // type:function size:0x324 -fn_800D2B14 = .text:0x800D2B14; // type:function size:0xDC -fn_800D2BF0 = .text:0x800D2BF0; // type:function size:0x64 -fn_800D2C54 = .text:0x800D2C54; // type:function size:0xDC -fn_800D2D30 = .text:0x800D2D30; // type:function size:0x64 -fn_800D2D94 = .text:0x800D2D94; // type:function size:0x8 -fn_800D2D9C = .text:0x800D2D9C; // type:function size:0xD4 -fn_800D2E70 = .text:0x800D2E70; // type:function size:0xC8 -fn_800D2F38 = .text:0x800D2F38; // type:function size:0x118 -fn_800D3050 = .text:0x800D3050; // type:function size:0x9C -fn_800D30EC = .text:0x800D30EC; // type:function size:0xAC -fn_800D3198 = .text:0x800D3198; // type:function size:0x8 -fn_800D31A0 = .text:0x800D31A0; // type:function size:0xD0 -fn_800D3270 = .text:0x800D3270; // type:function size:0xC8 -fn_800D3338 = .text:0x800D3338; // type:function size:0xC4 -fn_800D33FC = .text:0x800D33FC; // type:function size:0x1B0 -fn_800D35AC = .text:0x800D35AC; // type:function size:0x284 -fn_800D3830 = .text:0x800D3830; // type:function size:0x240 -fn_800D3A70 = .text:0x800D3A70; // type:function size:0x284 -fn_800D3CF4 = .text:0x800D3CF4; // type:function size:0x8C -fn_800D3D80 = .text:0x800D3D80; // type:function size:0x590 -fn_800D4310 = .text:0x800D4310; // type:function size:0x54 -fn_800D4364 = .text:0x800D4364; // type:function size:0xCC -fn_800D4430 = .text:0x800D4430; // type:function size:0x17C -fn_800D45AC = .text:0x800D45AC; // type:function size:0x410 -fn_800D49BC = .text:0x800D49BC; // type:function size:0x138 -fn_800D4AF4 = .text:0x800D4AF4; // type:function size:0x1A0 -fn_800D4C94 = .text:0x800D4C94; // type:function size:0x48 -fn_800D4CDC = .text:0x800D4CDC; // type:function size:0x9C -fn_800D4D78 = .text:0x800D4D78; // type:function size:0xAC -fn_800D4E24 = .text:0x800D4E24; // type:function size:0x144 -fn_800D4F68 = .text:0x800D4F68; // type:function size:0x658 -fn_800D55C0 = .text:0x800D55C0; // type:function size:0x54 -fn_800D5614 = .text:0x800D5614; // type:function size:0x68 -fn_800D567C = .text:0x800D567C; // type:function size:0x98 -fn_800D5714 = .text:0x800D5714; // type:function size:0x30 -fn_800D5744 = .text:0x800D5744; // type:function size:0x150 -fn_800D5894 = .text:0x800D5894; // type:function size:0x178 -fn_800D5A0C = .text:0x800D5A0C; // type:function size:0x54 -fn_800D5A60 = .text:0x800D5A60; // type:function size:0x8 -fn_800D5A68 = .text:0x800D5A68; // type:function size:0x130 -fn_800D5B98 = .text:0x800D5B98; // type:function size:0x220 -fn_800D5DB8 = .text:0x800D5DB8; // type:function size:0x48 -fn_800D5E00 = .text:0x800D5E00; // type:function size:0x1B8 -fn_800D5FB8 = .text:0x800D5FB8; // type:function size:0x130 -fn_800D60E8 = .text:0x800D60E8; // type:function size:0x148 -fn_800D6230 = .text:0x800D6230; // type:function size:0x48 -fn_800D6278 = .text:0x800D6278; // type:function size:0x170 -fn_800D63E8 = .text:0x800D63E8; // type:function size:0xB0 -fn_800D6498 = .text:0x800D6498; // type:function size:0x114 -fn_800D65AC = .text:0x800D65AC; // type:function size:0x48 -fn_800D65F4 = .text:0x800D65F4; // type:function size:0xA4 -fn_800D6698 = .text:0x800D6698; // type:function size:0x110 -fn_800D67A8 = .text:0x800D67A8; // type:function size:0x48 -fn_800D67F0 = .text:0x800D67F0; // type:function size:0x1F8 -fn_800D69E8 = .text:0x800D69E8; // type:function size:0x12C -fn_800D6B14 = .text:0x800D6B14; // type:function size:0x174 -fn_800D6C88 = .text:0x800D6C88; // type:function size:0x48 -fn_800D6CD0 = .text:0x800D6CD0; // type:function size:0xC4 -fn_800D6D94 = .text:0x800D6D94; // type:function size:0xF4 +GXSetTevOp = .text:0x800CDA84; // type:function size:0x1A4 +GXSetTevColorIn = .text:0x800CDC28; // type:function size:0x80 +GXSetTevAlphaIn = .text:0x800CDCA8; // type:function size:0x84 +GXSetTevColorOp = .text:0x800CDD2C; // type:function size:0xC0 +GXSetTevAlphaOp = .text:0x800CDDEC; // type:function size:0xC0 +GXSetTevColor = .text:0x800CDEAC; // type:function size:0x74 +GXSetTevColorS10 = .text:0x800CDF20; // type:function size:0x74 +GXSetTevKColor = .text:0x800CDF94; // type:function size:0x74 +GXSetTevKColorSel = .text:0x800CE008; // type:function size:0x6C +GXSetTevKAlphaSel = .text:0x800CE074; // type:function size:0x6C +GXSetTevSwapMode = .text:0x800CE0E0; // type:function size:0x58 +GXSetTevSwapModeTable = .text:0x800CE138; // type:function size:0xA0 +GXSetAlphaCompare = .text:0x800CE1D8; // type:function size:0x50 +GXSetZTexture = .text:0x800CE228; // type:function size:0x84 +GXSetTevOrder = .text:0x800CE2AC; // type:function size:0x1DC +GXSetNumTevStages = .text:0x800CE488; // type:function size:0x34 +GXSetFog = .text:0x800CE4BC; // type:function size:0x1B0 +GXSetFogRangeAdj = .text:0x800CE66C; // type:function size:0x100 +GXSetBlendMode = .text:0x800CE76C; // type:function size:0x104 +GXSetColorUpdate = .text:0x800CE870; // type:function size:0x40 +GXSetAlphaUpdate = .text:0x800CE8B0; // type:function size:0x40 +GXSetZMode = .text:0x800CE8F0; // type:function size:0x78 +GXSetZCompLoc = .text:0x800CE968; // type:function size:0x40 +GXSetPixelFmt = .text:0x800CE9A8; // type:function size:0x110 +GXSetDither = .text:0x800CEAB8; // type:function size:0x40 +GXSetDstAlpha = .text:0x800CEAF8; // type:function size:0x54 +GXSetFieldMask = .text:0x800CEB4C; // type:function size:0x38 +GXSetFieldMode = .text:0x800CEB84; // type:function size:0x80 +__GXSetRange = .text:0x800CEC04; // type:function size:0x4 +GXBeginDisplayList = .text:0x800CEC08; // type:function size:0xC8 +GXEndDisplayList = .text:0x800CECD0; // type:function size:0xD4 +GXCallDisplayList = .text:0x800CEDA4; // type:function size:0x70 +GXProject = .text:0x800CEE14; // type:function size:0x174 +GXSetProjection = .text:0x800CEF88; // type:function size:0xD4 +GXSetProjectionv = .text:0x800CF05C; // type:function size:0x78 +WriteMTXPS4x3 = .text:0x800CF0D4; // type:function size:0x34 scope:local +WriteMTXPS3x3from3x4 = .text:0x800CF108; // type:function size:0x34 scope:local +WriteMTXPS4x2 = .text:0x800CF13C; // type:function size:0x24 scope:local +GXLoadPosMtxImm = .text:0x800CF160; // type:function size:0x3C +GXLoadNrmMtxImm = .text:0x800CF19C; // type:function size:0x40 +GXSetCurrentMtx = .text:0x800CF1DC; // type:function size:0x3C +GXLoadTexMtxImm = .text:0x800CF218; // type:function size:0x84 +GXSetViewportJitter = .text:0x800CF29C; // type:function size:0x11C +GXSetViewport = .text:0x800CF3B8; // type:function size:0x24 +GXGetViewportv = .text:0x800CF3DC; // type:function size:0x4C +GXSetScissor = .text:0x800CF428; // type:function size:0xB0 +GXSetScissorBoxOffset = .text:0x800CF4D8; // type:function size:0x44 +GXSetClipMode = .text:0x800CF51C; // type:function size:0x28 +__GXSetMatrixIndex = .text:0x800CF544; // type:function size:0x84 +GXSetGPMetric = .text:0x800CF5C8; // type:function size:0x898 +GXReadGPMetric = .text:0x800CFE60; // type:function size:0x1A8 +GXClearGPMetric = .text:0x800D0008; // type:function size:0x10 +GXReadGP0Metric = .text:0x800D0018; // type:function size:0x2C +GXReadGP1Metric = .text:0x800D0044; // type:function size:0x2C +GXReadMemMetric = .text:0x800D0070; // type:function size:0x214 +GXClearMemMetric = .text:0x800D0284; // type:function size:0xA8 +GXReadPixMetric = .text:0x800D032C; // type:function size:0x138 +GXClearPixMetric = .text:0x800D0464; // type:function size:0x30 +GXSetVCacheMetric = .text:0x800D0494; // type:function size:0x50 +GXReadVCacheMetric = .text:0x800D04E4; // type:function size:0x94 +GXClearVCacheMetric = .text:0x800D0578; // type:function size:0x1C +__CARDDefaultApiCallback = .text:0x800D0594; // type:function size:0x4 +__CARDSyncCallback = .text:0x800D0598; // type:function size:0x34 +__CARDExtHandler = .text:0x800D05CC; // type:function size:0xD8 +__CARDExiHandler = .text:0x800D06A4; // type:function size:0x118 +__CARDTxHandler = .text:0x800D07BC; // type:function size:0xA8 +__CARDUnlockedHandler = .text:0x800D0864; // type:function size:0x84 +__CARDEnableInterrupt = .text:0x800D08E8; // type:function size:0xC0 +__CARDReadStatus = .text:0x800D09A8; // type:function size:0xF0 +__CARDClearStatus = .text:0x800D0A98; // type:function size:0xAC +TimeoutHandler = .text:0x800D0B44; // type:function size:0xA4 +Retry = .text:0x800D0BE8; // type:function size:0x22C scope:local +UnlockedCallback = .text:0x800D0E14; // type:function size:0x110 scope:local +__CARDStart = .text:0x800D0F24; // type:function size:0x1B4 scope:local +__CARDReadSegment = .text:0x800D10D8; // type:function size:0x134 +__CARDWritePage = .text:0x800D120C; // type:function size:0x11C +__CARDEraseSector = .text:0x800D1328; // type:function size:0xE0 +CARDInit = .text:0x800D1408; // type:function size:0x9C +__CARDSetDiskID = .text:0x800D14A4; // type:function size:0x38 +__CARDGetControlBlock = .text:0x800D14DC; // type:function size:0xB8 +__CARDPutControlBlock = .text:0x800D1594; // type:function size:0x64 +CARDFreeBlocks = .text:0x800D15F8; // type:function size:0x150 +CARDGetSectorSize = .text:0x800D1748; // type:function size:0x84 +__CARDSync = .text:0x800D17CC; // type:function size:0x98 +OnReset = .text:0x800D1864; // type:function size:0x50 scope:local +bitrev = .text:0x800D18B4; // type:function size:0x16C scope:local +ReadArrayUnlock = .text:0x800D1A20; // type:function size:0x144 scope:local +DummyLen = .text:0x800D1B64; // type:function size:0xC4 scope:local +__CARDUnlock = .text:0x800D1C28; // type:function size:0xB58 +InitCallback = .text:0x800D2780; // type:function size:0x70 scope:local +DoneCallback = .text:0x800D27F0; // type:function size:0x324 scope:local +BlockReadCallback = .text:0x800D2B14; // type:function size:0xDC scope:local +__CARDRead = .text:0x800D2BF0; // type:function size:0x64 +BlockWriteCallback = .text:0x800D2C54; // type:function size:0xDC scope:local +__CARDWrite = .text:0x800D2D30; // type:function size:0x64 +__CARDGetFatBlock = .text:0x800D2D94; // type:function size:0x8 +fn_800D2D9C = .text:0x800D2D9C; // type:function size:0xD4 scope:local +fn_800D2E70 = .text:0x800D2E70; // type:function size:0xC8 scope:local +__CARDAllocBlock = .text:0x800D2F38; // type:function size:0x118 +__CARDFreeBlock = .text:0x800D3050; // type:function size:0x9C +__CARDUpdateFatBlock = .text:0x800D30EC; // type:function size:0xAC +__CARDGetDirBlock = .text:0x800D3198; // type:function size:0x8 +fn_800D31A0 = .text:0x800D31A0; // type:function size:0xD0 scope:local +fn_800D3270 = .text:0x800D3270; // type:function size:0xC8 scope:local +__CARDUpdateDir = .text:0x800D3338; // type:function size:0xC4 +__CARDCheckSum = .text:0x800D33FC; // type:function size:0x1B0 +VerifyID = .text:0x800D35AC; // type:function size:0x284 scope:local +VerifyDir = .text:0x800D3830; // type:function size:0x240 scope:local +VerifyFAT = .text:0x800D3A70; // type:function size:0x284 scope:local +__CARDVerify = .text:0x800D3CF4; // type:function size:0x8C +CARDCheckExAsync = .text:0x800D3D80; // type:function size:0x590 +CARDCheck = .text:0x800D4310; // type:function size:0x54 +IsCard = .text:0x800D4364; // type:function size:0xCC scope:local +CARDProbeEx = .text:0x800D4430; // type:function size:0x17C +DoMount = .text:0x800D45AC; // type:function size:0x410 scope:local +__CARDMountCallback = .text:0x800D49BC; // type:function size:0x138 +CARDMountAsync = .text:0x800D4AF4; // type:function size:0x1A0 +CARDMount = .text:0x800D4C94; // type:function size:0x48 +DoUnmount = .text:0x800D4CDC; // type:function size:0x9C scope:local +CARDUnmount = .text:0x800D4D78; // type:function size:0xAC +FormatCallback = .text:0x800D4E24; // type:function size:0x144 scope:local +__CARDFormatRegionAsync = .text:0x800D4F68; // type:function size:0x658 +CARDFormat = .text:0x800D55C0; // type:function size:0x54 +__CARDCompareFileName = .text:0x800D5614; // type:function size:0x68 +__CARDAccess = .text:0x800D567C; // type:function size:0x98 +__CARDIsPublic = .text:0x800D5714; // type:function size:0x30 +__CARDGetFileNo = .text:0x800D5744; // type:function size:0x150 +CARDOpen = .text:0x800D5894; // type:function size:0x178 +CARDClose = .text:0x800D5A0C; // type:function size:0x54 +__CARDIsOpened = .text:0x800D5A60; // type:function size:0x8 +CreateCallbackFat = .text:0x800D5A68; // type:function size:0x130 scope:local +CARDCreateAsync = .text:0x800D5B98; // type:function size:0x220 +CARDCreate = .text:0x800D5DB8; // type:function size:0x48 +__CARDSeek = .text:0x800D5E00; // type:function size:0x1B8 +ReadCallback = .text:0x800D5FB8; // type:function size:0x130 scope:local +CARDReadAsync = .text:0x800D60E8; // type:function size:0x148 +CARDRead = .text:0x800D6230; // type:function size:0x48 +WriteCallback = .text:0x800D6278; // type:function size:0x170 scope:local +EraseCallback = .text:0x800D63E8; // type:function size:0xB0 scope:local +CARDWriteAsync = .text:0x800D6498; // type:function size:0x114 +CARDWrite = .text:0x800D65AC; // type:function size:0x48 +DeleteCallback = .text:0x800D65F4; // type:function size:0xA4 scope:local +CARDDeleteAsync = .text:0x800D6698; // type:function size:0x110 +CARDDelete = .text:0x800D67A8; // type:function size:0x48 +UpdateIconOffsets = .text:0x800D67F0; // type:function size:0x1F8 scope:local +CARDGetStatus = .text:0x800D69E8; // type:function size:0x12C +CARDSetStatusAsync = .text:0x800D6B14; // type:function size:0x174 +CARDSetStatus = .text:0x800D6C88; // type:function size:0x48 +CARDGetSerialNo = .text:0x800D6CD0; // type:function size:0xC4 +SetExiInterruptMask = .text:0x800D6D94; // type:function size:0xF4 scope:local EXIImm = .text:0x800D6E88; // type:function size:0x25C scope:global -fn_800D70E4 = .text:0x800D70E4; // type:function size:0xA0 +EXIImmEx = .text:0x800D70E4; // type:function size:0xA0 EXIDma = .text:0x800D7184; // type:function size:0xEC scope:global EXISync = .text:0x800D7270; // type:function size:0x238 scope:global -fn_800D74A8 = .text:0x800D74A8; // type:function size:0x48 -fn_800D74F0 = .text:0x800D74F0; // type:function size:0x7C +EXIClearInterrupts = .text:0x800D74A8; // type:function size:0x48 +EXISetExiCallback = .text:0x800D74F0; // type:function size:0x7C __EXIProbe = .text:0x800D756C; // type:function size:0x174 scope:local -fn_800D76E0 = .text:0x800D76E0; // type:function size:0x80 -fn_800D7760 = .text:0x800D7760; // type:function size:0xB4 -fn_800D7814 = .text:0x800D7814; // type:function size:0x10C -fn_800D7920 = .text:0x800D7920; // type:function size:0xBC +EXIProbe = .text:0x800D76E0; // type:function size:0x80 +EXIProbeEx = .text:0x800D7760; // type:function size:0xB4 +EXIAttach = .text:0x800D7814; // type:function size:0x10C +EXIDetach = .text:0x800D7920; // type:function size:0xBC EXISelect = .text:0x800D79DC; // type:function size:0x12C scope:global EXIDeselect = .text:0x800D7B08; // type:function size:0x110 scope:global EXIIntrruptHandler = .text:0x800D7C18; // type:function size:0xC8 scope:local @@ -2708,69 +2708,69 @@ EXTIntrruptHandler = .text:0x800D7EF8; // type:function size:0xD0 scope:local EXIInit = .text:0x800D7FC8; // type:function size:0x114 scope:global EXILock = .text:0x800D80DC; // type:function size:0xF4 scope:global EXIUnlock = .text:0x800D81D0; // type:function size:0xDC scope:global -fn_800D82AC = .text:0x800D82AC; // type:function size:0x18 -fn_800D82C4 = .text:0x800D82C4; // type:function size:0x28 -fn_800D82EC = .text:0x800D82EC; // type:function size:0x37C -fn_800D8668 = .text:0x800D8668; // type:function size:0x70 -fn_800D86D8 = .text:0x800D86D8; // type:function size:0x200 -fn_800D88D8 = .text:0x800D88D8; // type:function size:0x20 -fn_800D88F8 = .text:0x800D88F8; // type:function size:0x3C -fn_800D8934 = .text:0x800D8934; // type:function size:0x2FC +EXIGetState = .text:0x800D82AC; // type:function size:0x18 +UnlockedHandler = .text:0x800D82C4; // type:function size:0x28 scope:local +EXIGetID = .text:0x800D82EC; // type:function size:0x37C +InitializeUART = .text:0x800D8668; // type:function size:0x70 +WriteUARTN = .text:0x800D86D8; // type:function size:0x200 +SIBusy = .text:0x800D88D8; // type:function size:0x20 +SIIsChanBusy = .text:0x800D88F8; // type:function size:0x3C +CompleteTransfer = .text:0x800D8934; // type:function size:0x2FC SIInterruptHandler = .text:0x800D8C30; // type:function size:0x344 scope:local -fn_800D8F74 = .text:0x800D8F74; // type:function size:0x98 -fn_800D900C = .text:0x800D900C; // type:function size:0xCC -fn_800D90D8 = .text:0x800D90D8; // type:function size:0xF4 +SIEnablePollingInterrupt = .text:0x800D8F74; // type:function size:0x98 +SIRegisterPollingHandler = .text:0x800D900C; // type:function size:0xCC +SIUnregisterPollingHandler = .text:0x800D90D8; // type:function size:0xF4 SIInit = .text:0x800D91CC; // type:function size:0xA4 scope:global -fn_800D9270 = .text:0x800D9270; // type:function size:0x20C -fn_800D947C = .text:0x800D947C; // type:function size:0x7C -fn_800D94F8 = .text:0x800D94F8; // type:function size:0x14 -fn_800D950C = .text:0x800D950C; // type:function size:0x10 +__SITransfer = .text:0x800D9270; // type:function size:0x20C +SIGetStatus = .text:0x800D947C; // type:function size:0x7C +SISetCommand = .text:0x800D94F8; // type:function size:0x14 +SITransferCommands = .text:0x800D950C; // type:function size:0x10 SISetXY = .text:0x800D951C; // type:function size:0x6C scope:global -fn_800D9588 = .text:0x800D9588; // type:function size:0x9C -fn_800D9624 = .text:0x800D9624; // type:function size:0x6C -fn_800D9690 = .text:0x800D9690; // type:function size:0xD4 -fn_800D9764 = .text:0x800D9764; // type:function size:0xC4 -fn_800D9828 = .text:0x800D9828; // type:function size:0x8C +SIEnablePolling = .text:0x800D9588; // type:function size:0x9C +SIDisablePolling = .text:0x800D9624; // type:function size:0x6C +SIGetResponseRaw = .text:0x800D9690; // type:function size:0xD4 +SIGetResponse = .text:0x800D9764; // type:function size:0xC4 +AlarmHandler = .text:0x800D9828; // type:function size:0x8C scope:local SITransfer = .text:0x800D98B4; // type:function size:0x16C scope:global GetTypeCallback = .text:0x800D9A20; // type:function size:0x298 scope:local SIGetType = .text:0x800D9CB8; // type:function size:0x1C4 scope:global -fn_800D9E7C = .text:0x800D9E7C; // type:function size:0x13C +SIGetTypeAsync = .text:0x800D9E7C; // type:function size:0x13C SISetSamplingRate = .text:0x800D9FB8; // type:function size:0xE4 scope:global -fn_800DA09C = .text:0x800DA09C; // type:function size:0x24 -fn_800DA0C0 = .text:0x800DA0C0; // type:function size:0x244 -fn_800DA304 = .text:0x800DA304; // type:function size:0x44 -fn_800DA348 = .text:0x800DA348; // type:function size:0x13C -fn_800DA484 = .text:0x800DA484; // type:function size:0x11C -fn_800DA5A0 = .text:0x800DA5A0; // type:function size:0x3BC -fn_800DA95C = .text:0x800DA95C; // type:function size:0x1E0 -fn_800DAB3C = .text:0x800DAB3C; // type:function size:0xF0 -fn_800DAC2C = .text:0x800DAC2C; // type:function size:0x68 -fn_800DAC94 = .text:0x800DAC94; // type:function size:0x1BC -fn_800DAE50 = .text:0x800DAE50; // type:function size:0x54 -fn_800DAEA4 = .text:0x800DAEA4; // type:function size:0x24C -fn_800DB0F0 = .text:0x800DB0F0; // type:function size:0x10C -fn_800DB1FC = .text:0x800DB1FC; // type:function size:0x1A88 -fn_800DCC84 = .text:0x800DCC84; // type:function size:0x1A8C -fn_800DE710 = .text:0x800DE710; // type:function size:0x1AAC -fn_800E01BC = .text:0x800E01BC; // type:function size:0x67C -fn_800E0838 = .text:0x800E0838; // type:function size:0x6A8 -fn_800E0EE0 = .text:0x800E0EE0; // type:function size:0x6A8 -fn_800E1588 = .text:0x800E1588; // type:function size:0x78 -fn_800E1600 = .text:0x800E1600; // type:function size:0x464 -fn_800E1A64 = .text:0x800E1A64; // type:function size:0x90 -fn_800E1AF4 = .text:0x800E1AF4; // type:function size:0x3C +SIRefreshSamplingRate = .text:0x800DA09C; // type:function size:0x24 +THPVideoDecode = .text:0x800DA0C0; // type:function size:0x244 +__THPSetupBuffers = .text:0x800DA304; // type:function size:0x44 scope:local +__THPReadFrameHeader = .text:0x800DA348; // type:function size:0x13C scope:local +__THPReadScaneHeader = .text:0x800DA484; // type:function size:0x11C scope:local +__THPReadQuantizationTable = .text:0x800DA5A0; // type:function size:0x3BC scope:local +__THPReadHuffmanTableSpecification = .text:0x800DA95C; // type:function size:0x1E0 scope:local +__THPHuffGenerateSizeTable = .text:0x800DAB3C; // type:function size:0xF0 scope:local +__THPHuffGenerateCodeTable = .text:0x800DAC2C; // type:function size:0x68 scope:local +__THPHuffGenerateDecoderTables = .text:0x800DAC94; // type:function size:0x1BC scope:local +__THPRestartDefinition = .text:0x800DAE50; // type:function size:0x54 scope:local +__THPPrepBitStream = .text:0x800DAEA4; // type:function size:0x24C scope:local +__THPDecompressYUV = .text:0x800DB0F0; // type:function size:0x10C scope:local +__THPDecompressiMCURow512x448 = .text:0x800DB1FC; // type:function size:0x1A88 scope:local +__THPDecompressiMCURow640x480 = .text:0x800DCC84; // type:function size:0x1A8C scope:local +__THPDecompressiMCURowNxN = .text:0x800DE710; // type:function size:0x1AAC scope:local +__THPHuffDecodeDCTCompY = .text:0x800E01BC; // type:function size:0x67C scope:local +__THPHuffDecodeDCTCompU = .text:0x800E0838; // type:function size:0x6A8 scope:local +__THPHuffDecodeDCTCompV = .text:0x800E0EE0; // type:function size:0x6A8 scope:local +THPInit = .text:0x800E1588; // type:function size:0x78 +THPAudioDecode = .text:0x800E1600; // type:function size:0x464 +__THPAudioGetNewSample = .text:0x800E1A64; // type:function size:0x90 +__THPAudioInitialize = .text:0x800E1AF4; // type:function size:0x3C __va_arg = .text:0x800E1B30; // type:function size:0xC8 scope:global __destroy_global_chain = .text:0x800E1BF8; // type:function size:0x48 scope:global __register_global_object = .text:0x800E1C40; // type:function size:0x18 scope:global -fn_800E1C58 = .text:0x800E1C58; // type:function size:0x4C -fn_800E1CA4 = .text:0x800E1CA4; // type:function size:0x48 -fn_800E1CEC = .text:0x800E1CEC; // type:function size:0xC -fn_800E1CF8 = .text:0x800E1CF8; // type:function size:0x22C -fn_800E1F24 = .text:0x800E1F24; // type:function size:0x28 -fn_800E1F4C = .text:0x800E1F4C; // type:function size:0x28 -fn_800E1F74 = .text:0x800E1F74; // type:function size:0x28 -fn_800E1F9C = .text:0x800E1F9C; // type:function size:0x20 -fn_800E1FBC = .text:0x800E1FBC; // type:function size:0x5C +__dl__FPv = .text:0x800E1C58; // type:function size:0x4C +__dt__Q23std9exceptionFv = .text:0x800E1CA4; // type:function size:0x48 +what__Q23std9exceptionCFv = .text:0x800E1CEC; // type:function size:0xC +__throw_catch_compare = .text:0x800E1CF8; // type:function size:0x22C +unexpected__3stdFv = .text:0x800E1F24; // type:function size:0x28 +terminate__3stdFv = .text:0x800E1F4C; // type:function size:0x28 +duhandler__3stdFv = .text:0x800E1F74; // type:function size:0x28 +dthandler__3stdFv = .text:0x800E1F9C; // type:function size:0x20 +__cvt_fp2unsigned = .text:0x800E1FBC; // type:function size:0x5C __save_fpr = .text:0x800E2018; // type:function size:0x4C scope:global _savefpr_14 = .text:0x800E2018; // type:label scope:global _savefpr_15 = .text:0x800E201C; // type:label scope:global @@ -2848,629 +2848,629 @@ _restgpr_29 = .text:0x800E2138; // type:label scope:global _restgpr_30 = .text:0x800E213C; // type:label scope:global _restgpr_31 = .text:0x800E2140; // type:label scope:global __div2u = .text:0x800E2148; // type:function size:0xEC scope:global -fn_800E2234 = .text:0x800E2234; // type:function size:0x138 +__div2i = .text:0x800E2234; // type:function size:0x138 __mod2u = .text:0x800E236C; // type:function size:0xE4 scope:global -fn_800E2450 = .text:0x800E2450; // type:function size:0x10C -fn_800E255C = .text:0x800E255C; // type:function size:0x24 -fn_800E2580 = .text:0x800E2580; // type:function size:0x24 -fn_800E25A4 = .text:0x800E25A4; // type:function size:0x28 -fn_800E25CC = .text:0x800E25CC; // type:function size:0xCC +__mod2i = .text:0x800E2450; // type:function size:0x10C +__shl2i = .text:0x800E255C; // type:function size:0x24 +__shr2u = .text:0x800E2580; // type:function size:0x24 +__shr2i = .text:0x800E25A4; // type:function size:0x28 +__cvt_dbl_usll = .text:0x800E25CC; // type:function size:0xCC GetR2__Fv = .text:0x800E2698; // type:function size:0x8 scope:local __fini_cpp_exceptions = .text:0x800E26A0; // type:function size:0x34 scope:global __init_cpp_exceptions = .text:0x800E26D4; // type:function size:0x40 scope:global -fn_800E2714 = .text:0x800E2714; // type:function size:0x104 -fn_800E2818 = .text:0x800E2818; // type:function size:0x144 -fn_800E295C = .text:0x800E295C; // type:function size:0x44 -fn_800E29A0 = .text:0x800E29A0; // type:function size:0x410 -fn_800E2DB0 = .text:0x800E2DB0; // type:function size:0x1B4 -fn_800E2F64 = .text:0x800E2F64; // type:function size:0x5C -fn_800E2FC0 = .text:0x800E2FC0; // type:function size:0x50C -fn_800E34CC = .text:0x800E34CC; // type:function size:0x248 -fn_800E3714 = .text:0x800E3714; // type:function size:0x1C0 -fn_800E38D4 = .text:0x800E38D4; // type:function size:0x204 +ExPPC_LongJump__FP12ThrowContextPvPv = .text:0x800E2714; // type:function size:0x104 +__throw = .text:0x800E2818; // type:function size:0x144 +__end__catch = .text:0x800E295C; // type:function size:0x44 +ExPPC_ThrowHandler__FP12ThrowContext = .text:0x800E29A0; // type:function size:0x410 +__unexpected = .text:0x800E2DB0; // type:function size:0x1B4 +__dt__Q23std13bad_exceptionFv = .text:0x800E2F64; // type:function size:0x5C +ExPPC_UnwindStack__FP12ThrowContextP15MWExceptionInfoPv = .text:0x800E2FC0; // type:function size:0x50C +ExPPC_PopStackFrame__FP12ThrowContextP15MWExceptionInfo = .text:0x800E34CC; // type:function size:0x248 +ExPPC_NextAction__FP14ActionIterator = .text:0x800E3714; // type:function size:0x1C0 +ExPPC_FindExceptionRecord__FPcP15MWExceptionInfo = .text:0x800E38D4; // type:function size:0x204 __unregister_fragment = .text:0x800E3AD8; // type:function size:0x34 scope:global __register_fragment = .text:0x800E3B0C; // type:function size:0x34 scope:global -fn_800E3B40 = .text:0x800E3B40; // type:function size:0xC -fn_800E3B4C = .text:0x800E3B4C; // type:function size:0xB8 +what__Q23std13bad_exceptionCFv = .text:0x800E3B40; // type:function size:0xC +__sys_free = .text:0x800E3B4C; // type:function size:0xB8 exit = .text:0x800E3C04; // type:function size:0xCC scope:global -fn_800E3CD0 = .text:0x800E3CD0; // type:function size:0x88 -fn_800E3D58 = .text:0x800E3D58; // type:function size:0x134 -fn_800E3E8C = .text:0x800E3E8C; // type:function size:0x1FC -fn_800E4088 = .text:0x800E4088; // type:function size:0xBC -fn_800E4144 = .text:0x800E4144; // type:function size:0x17C -fn_800E42C0 = .text:0x800E42C0; // type:function size:0x70 +abort = .text:0x800E3CD0; // type:function size:0x88 +free = .text:0x800E3D58; // type:function size:0x134 +deallocate_from_fixed_pools = .text:0x800E3E8C; // type:function size:0x1FC +SubBlock_merge_next = .text:0x800E4088; // type:function size:0xBC scope:local +Block_link = .text:0x800E4144; // type:function size:0x17C scope:local +__flush_all = .text:0x800E42C0; // type:function size:0x70 __close_all = .text:0x800E4330; // type:function size:0x98 scope:global -fn_800E43C8 = .text:0x800E43C8; // type:function size:0x1A4 -fn_800E456C = .text:0x800E456C; // type:function size:0x23C -fn_800E47A8 = .text:0x800E47A8; // type:function size:0x340 -fn_800E4AE8 = .text:0x800E4AE8; // type:function size:0xEC -fn_800E4BD4 = .text:0x800E4BD4; // type:function size:0x28C -fn_800E4E60 = .text:0x800E4E60; // type:function size:0x110 -fn_800E4F70 = .text:0x800E4F70; // type:function size:0x70 -fn_800E4FE0 = .text:0x800E4FE0; // type:function size:0x10 +__num2dec = .text:0x800E43C8; // type:function size:0x1A4 +__num2dec_internal = .text:0x800E456C; // type:function size:0x23C scope:local +__two_exp = .text:0x800E47A8; // type:function size:0x340 scope:local +__str2dec = .text:0x800E4AE8; // type:function size:0xEC scope:local +__timesdec = .text:0x800E4BD4; // type:function size:0x28C scope:local +__ull2dec = .text:0x800E4E60; // type:function size:0x110 scope:local +__count_trailing_zerol = .text:0x800E4F70; // type:function size:0x70 scope:local +abs = .text:0x800E4FE0; // type:function size:0x10 __flush_buffer = .text:0x800E4FF0; // type:function size:0xC4 scope:global __prep_buffer = .text:0x800E50B4; // type:function size:0x34 scope:global -fn_800E50E8 = .text:0x800E50E8; // type:function size:0x24 -fn_800E510C = .text:0x800E510C; // type:function size:0x18 +tolower = .text:0x800E50E8; // type:function size:0x24 +isalpha = .text:0x800E510C; // type:function size:0x18 __fwrite = .text:0x800E5124; // type:function size:0x30C scope:global fwrite = .text:0x800E5430; // type:function size:0x20 scope:global -fn_800E5450 = .text:0x800E5450; // type:function size:0x138 -fn_800E5588 = .text:0x800E5588; // type:function size:0xC0 +fflush = .text:0x800E5450; // type:function size:0x138 +fclose = .text:0x800E5588; // type:function size:0xC0 fseek = .text:0x800E5648; // type:function size:0x20 scope:global -fn_800E5668 = .text:0x800E5668; // type:function size:0x23C -fn_800E58A4 = .text:0x800E58A4; // type:function size:0x70 +_fseek = .text:0x800E5668; // type:function size:0x23C +ftell = .text:0x800E58A4; // type:function size:0x70 wcstombs = .text:0x800E5914; // type:function size:0xA0 scope:global -fn_800E59B4 = .text:0x800E59B4; // type:function size:0xA4 -fn_800E5A58 = .text:0x800E5A58; // type:function size:0x4C +unicode_to_UTF8 = .text:0x800E59B4; // type:function size:0xA4 scope:local +memcmp = .text:0x800E5A58; // type:function size:0x4C __memrchr = .text:0x800E5AA4; // type:function size:0x2C scope:global memchr = .text:0x800E5AD0; // type:function size:0x2C scope:global -fn_800E5AFC = .text:0x800E5AFC; // type:function size:0xCC -fn_800E5BC8 = .text:0x800E5BC8; // type:function size:0xB0 -fn_800E5C78 = .text:0x800E5C78; // type:function size:0xC4 -fn_800E5D3C = .text:0x800E5D3C; // type:function size:0xAC -fn_800E5DE8 = .text:0x800E5DE8; // type:function size:0xC0 +memmove = .text:0x800E5AFC; // type:function size:0xCC +__copy_longs_rev_unaligned = .text:0x800E5BC8; // type:function size:0xB0 +__copy_longs_unaligned = .text:0x800E5C78; // type:function size:0xC4 +__copy_longs_rev_aligned = .text:0x800E5D3C; // type:function size:0xAC +__copy_longs_aligned = .text:0x800E5DE8; // type:function size:0xC0 __stdio_atexit = .text:0x800E5EA8; // type:function size:0x10 scope:global -fn_800E5EB8 = .text:0x800E5EB8; // type:function size:0xE0 -fn_800E5F98 = .text:0x800E5F98; // type:function size:0x78 -fn_800E6010 = .text:0x800E6010; // type:function size:0x74 +sprintf = .text:0x800E5EB8; // type:function size:0xE0 +vsprintf = .text:0x800E5F98; // type:function size:0x78 +vsnprintf = .text:0x800E6010; // type:function size:0x74 vprintf = .text:0x800E6084; // type:function size:0x7C scope:global -fn_800E6100 = .text:0x800E6100; // type:function size:0xCC -fn_800E61CC = .text:0x800E61CC; // type:function size:0x6C +printf = .text:0x800E6100; // type:function size:0xCC +__StringWrite = .text:0x800E61CC; // type:function size:0x6C __FileWrite = .text:0x800E6238; // type:function size:0x58 scope:global __pformatter = .text:0x800E6290; // type:function size:0x774 scope:local float2str = .text:0x800E6A04; // type:function size:0x6EC scope:local -fn_800E70F0 = .text:0x800E70F0; // type:function size:0x12C +round_decimal = .text:0x800E70F0; // type:function size:0x12C double2hex = .text:0x800E721C; // type:function size:0x338 scope:local longlong2str = .text:0x800E7554; // type:function size:0x2DC scope:local long2str = .text:0x800E7830; // type:function size:0x220 scope:local parse_format = .text:0x800E7A50; // type:function size:0x504 scope:local -fn_800E7F54 = .text:0x800E7F54; // type:function size:0xB0 +raise = .text:0x800E7F54; // type:function size:0xB0 strchr = .text:0x800E8004; // type:function size:0x30 scope:global -fn_800E8034 = .text:0x800E8034; // type:function size:0x40 -fn_800E8074 = .text:0x800E8074; // type:function size:0x128 -fn_800E819C = .text:0x800E819C; // type:function size:0x44 -fn_800E81E0 = .text:0x800E81E0; // type:function size:0xB8 +strncmp = .text:0x800E8034; // type:function size:0x40 +strcmp = .text:0x800E8074; // type:function size:0x128 +strcat = .text:0x800E819C; // type:function size:0x44 +strcpy = .text:0x800E81E0; // type:function size:0xB8 strlen = .text:0x800E8298; // type:function size:0x1C scope:global -fn_800E82B4 = .text:0x800E82B4; // type:function size:0x8 -fn_800E82BC = .text:0x800E82BC; // type:function size:0xC4 +__close_console = .text:0x800E82B4; // type:function size:0x8 +__write_console = .text:0x800E82BC; // type:function size:0xC4 fwide = .text:0x800E8380; // type:function size:0x88 scope:global -fn_800E8408 = .text:0x800E8408; // type:function size:0x310 -fn_800E8718 = .text:0x800E8718; // type:function size:0x264 -fn_800E897C = .text:0x800E897C; // type:function size:0x290 -fn_800E8C0C = .text:0x800E8C0C; // type:function size:0x33C -fn_800E8F48 = .text:0x800E8F48; // type:function size:0x88C -fn_800E97D4 = .text:0x800E97D4; // type:function size:0x3A0 -fn_800E9B74 = .text:0x800E9B74; // type:function size:0xF4 -fn_800E9C68 = .text:0x800E9C68; // type:function size:0xE54 -fn_800EAABC = .text:0x800EAABC; // type:function size:0xA0 -fn_800EAB5C = .text:0x800EAB5C; // type:function size:0x214 -fn_800EAD70 = .text:0x800EAD70; // type:function size:0x200 -fn_800EAF70 = .text:0x800EAF70; // type:function size:0x28 -fn_800EAF98 = .text:0x800EAF98; // type:function size:0xD4 -fn_800EB06C = .text:0x800EB06C; // type:function size:0x148 -fn_800EB1B4 = .text:0x800EB1B4; // type:function size:0x8C -fn_800EB240 = .text:0x800EB240; // type:function size:0x1C4 -fn_800EB404 = .text:0x800EB404; // type:function size:0xFC -fn_800EB500 = .text:0x800EB500; // type:function size:0xD8 -fn_800EB5D8 = .text:0x800EB5D8; // type:function size:0x78 -fn_800EB650 = .text:0x800EB650; // type:function size:0x20 -fn_800EB670 = .text:0x800EB670; // type:function size:0x20 -fn_800EB690 = .text:0x800EB690; // type:function size:0x20 -fn_800EB6B0 = .text:0x800EB6B0; // type:function size:0x20 -fn_800EB6D0 = .text:0x800EB6D0; // type:function size:0x20 -fn_800EB6F0 = .text:0x800EB6F0; // type:function size:0x24 -fn_800EB714 = .text:0x800EB714; // type:function size:0x24 -fn_800EB738 = .text:0x800EB738; // type:function size:0x24 -fn_800EB75C = .text:0x800EB75C; // type:function size:0x24 -fn_800EB780 = .text:0x800EB780; // type:function size:0x24 +__ieee754_acos = .text:0x800E8408; // type:function size:0x310 +__ieee754_asin = .text:0x800E8718; // type:function size:0x264 +__ieee754_atan2 = .text:0x800E897C; // type:function size:0x290 +__ieee754_fmod = .text:0x800E8C0C; // type:function size:0x33C +__ieee754_pow = .text:0x800E8F48; // type:function size:0x88C +__ieee754_rem_pio2 = .text:0x800E97D4; // type:function size:0x3A0 +__kernel_cos = .text:0x800E9B74; // type:function size:0xF4 +__kernel_rem_pio2 = .text:0x800E9C68; // type:function size:0xE54 +__kernel_sin = .text:0x800EAABC; // type:function size:0xA0 +__kernel_tan = .text:0x800EAB5C; // type:function size:0x214 +atan = .text:0x800EAD70; // type:function size:0x200 +copysign = .text:0x800EAF70; // type:function size:0x28 +cos = .text:0x800EAF98; // type:function size:0xD4 +floor = .text:0x800EB06C; // type:function size:0x148 +frexp = .text:0x800EB1B4; // type:function size:0x8C +ldexp = .text:0x800EB240; // type:function size:0x1C4 +modf = .text:0x800EB404; // type:function size:0xFC +sin = .text:0x800EB500; // type:function size:0xD8 +tan = .text:0x800EB5D8; // type:function size:0x78 +acos = .text:0x800EB650; // type:function size:0x20 +asin = .text:0x800EB670; // type:function size:0x20 +atan2 = .text:0x800EB690; // type:function size:0x20 +fmod = .text:0x800EB6B0; // type:function size:0x20 +pow = .text:0x800EB6D0; // type:function size:0x20 +tanf = .text:0x800EB6F0; // type:function size:0x24 +sinf = .text:0x800EB714; // type:function size:0x24 +cosf = .text:0x800EB738; // type:function size:0x24 +atan2f = .text:0x800EB75C; // type:function size:0x24 +acosf = .text:0x800EB780; // type:function size:0x24 TRKNubMainLoop = .text:0x800EB7A4; // type:function size:0xF8 scope:global TRKDestructEvent = .text:0x800EB89C; // type:function size:0x24 scope:global -fn_800EB8C0 = .text:0x800EB8C0; // type:function size:0x18 -fn_800EB8D8 = .text:0x800EB8D8; // type:function size:0xE0 +TRKConstructEvent = .text:0x800EB8C0; // type:function size:0x18 +TRKPostEvent = .text:0x800EB8D8; // type:function size:0xE0 TRKGetNextEvent = .text:0x800EB9B8; // type:function size:0xB4 scope:global TRKInitializeEventQueue = .text:0x800EBA6C; // type:function size:0x58 scope:global TRKNubWelcome = .text:0x800EBAC4; // type:function size:0x28 scope:global TRKTerminateNub = .text:0x800EBAEC; // type:function size:0x24 scope:global TRKInitializeNub = .text:0x800EBB10; // type:function size:0x134 scope:global -fn_800EBC44 = .text:0x800EBC44; // type:function size:0x1DC -fn_800EBE20 = .text:0x800EBE20; // type:function size:0xF0 -fn_800EBF10 = .text:0x800EBF10; // type:function size:0x98 -fn_800EBFA8 = .text:0x800EBFA8; // type:function size:0xE8 -fn_800EC090 = .text:0x800EC090; // type:function size:0xC8 -fn_800EC158 = .text:0x800EC158; // type:function size:0xB8 -fn_800EC210 = .text:0x800EC210; // type:function size:0x80 -fn_800EC290 = .text:0x800EC290; // type:function size:0xA8 -fn_800EC338 = .text:0x800EC338; // type:function size:0x68 -fn_800EC3A0 = .text:0x800EC3A0; // type:function size:0x88 -fn_800EC428 = .text:0x800EC428; // type:function size:0x64 -fn_800EC48C = .text:0x800EC48C; // type:function size:0x54 -fn_800EC4E0 = .text:0x800EC4E0; // type:function size:0x8C -fn_800EC56C = .text:0x800EC56C; // type:function size:0xA4 -fn_800EC610 = .text:0x800EC610; // type:function size:0x30 -fn_800EC640 = .text:0x800EC640; // type:function size:0x40 -fn_800EC680 = .text:0x800EC680; // type:function size:0x64 +TRKMessageSend = .text:0x800EBC44; // type:function size:0x1DC +TRKReadBuffer_ui32 = .text:0x800EBE20; // type:function size:0xF0 +TRKReadBuffer_ui8 = .text:0x800EBF10; // type:function size:0x98 +TRKReadBuffer1_ui64 = .text:0x800EBFA8; // type:function size:0xE8 +TRKReadBuffer1_ui32 = .text:0x800EC090; // type:function size:0xC8 +TRKReadBuffer1_ui16 = .text:0x800EC158; // type:function size:0xB8 +TRKReadBuffer1_ui8 = .text:0x800EC210; // type:function size:0x80 +TRKAppendBuffer_ui32 = .text:0x800EC290; // type:function size:0xA8 +TRKAppendBuffer_ui8 = .text:0x800EC338; // type:function size:0x68 +TRKAppendBuffer1_ui64 = .text:0x800EC3A0; // type:function size:0x88 +TRKAppendBuffer1_ui32 = .text:0x800EC428; // type:function size:0x64 +TRKAppendBuffer1_ui16 = .text:0x800EC48C; // type:function size:0x54 +TRKReadBuffer = .text:0x800EC4E0; // type:function size:0x8C +TRKAppendBuffer = .text:0x800EC56C; // type:function size:0xA4 +TRKSetBufferPosition = .text:0x800EC610; // type:function size:0x30 +TRKResetBuffer = .text:0x800EC640; // type:function size:0x40 +TRKReleaseBuffer = .text:0x800EC680; // type:function size:0x64 TRKGetBuffer = .text:0x800EC6E4; // type:function size:0x2C scope:global -fn_800EC710 = .text:0x800EC710; // type:function size:0xC8 +TRKGetFreeBuffer = .text:0x800EC710; // type:function size:0xC8 TRKInitializeMessageBuffers = .text:0x800EC7D8; // type:function size:0x74 scope:global -fn_800EC84C = .text:0x800EC84C; // type:function size:0x8 +TRKTerminateSerialHandler = .text:0x800EC84C; // type:function size:0x8 TRKInitializeSerialHandler = .text:0x800EC854; // type:function size:0x24 scope:global -fn_800EC878 = .text:0x800EC878; // type:function size:0x50 +TRKProcessInput = .text:0x800EC878; // type:function size:0x50 TRKGetInput = .text:0x800EC8C8; // type:function size:0x98 scope:global -fn_800EC960 = .text:0x800EC960; // type:function size:0x2B8 +TRKTestForPacket = .text:0x800EC960; // type:function size:0x2B8 usr_put_initialize = .text:0x800ECC18; // type:function size:0x4 scope:global -fn_800ECC1C = .text:0x800ECC1C; // type:function size:0x88 +usr_puts_serial = .text:0x800ECC1C; // type:function size:0x88 TRKDispatchMessage = .text:0x800ECCA4; // type:function size:0x84 scope:global TRKInitializeDispatcher = .text:0x800ECD28; // type:function size:0x18 scope:global -fn_800ECD40 = .text:0x800ECD40; // type:function size:0x1A4 -fn_800ECEE4 = .text:0x800ECEE4; // type:function size:0x100 -fn_800ECFE4 = .text:0x800ECFE4; // type:function size:0x530 -fn_800ED514 = .text:0x800ED514; // type:function size:0x154 -fn_800ED668 = .text:0x800ED668; // type:function size:0x2F8 -fn_800ED960 = .text:0x800ED960; // type:function size:0x3C8 -fn_800EDD28 = .text:0x800EDD28; // type:function size:0x3CC -fn_800EE0F4 = .text:0x800EE0F4; // type:function size:0x420 -fn_800EE514 = .text:0x800EE514; // type:function size:0x410 -fn_800EE924 = .text:0x800EE924; // type:function size:0x398 -fn_800EECBC = .text:0x800EECBC; // type:function size:0x230 -fn_800EEEEC = .text:0x800EEEEC; // type:function size:0x2D8 -fn_800EF1C4 = .text:0x800EF1C4; // type:function size:0xB8 -fn_800EF27C = .text:0x800EF27C; // type:function size:0xE4 -fn_800EF360 = .text:0x800EF360; // type:function size:0xBC -fn_800EF41C = .text:0x800EF41C; // type:function size:0xB0 -fn_800EF4CC = .text:0x800EF4CC; // type:function size:0xB8 -fn_800EF584 = .text:0x800EF584; // type:function size:0xC -fn_800EF590 = .text:0x800EF590; // type:function size:0x10 -fn_800EF5A0 = .text:0x800EF5A0; // type:function size:0x190 -fn_800EF730 = .text:0x800EF730; // type:function size:0x120 -fn_800EF850 = .text:0x800EF850; // type:function size:0x1A8 -fn_800EF9F8 = .text:0x800EF9F8; // type:function size:0x1A4 -fn_800EFB9C = .text:0x800EFB9C; // type:function size:0x2C4 -fn_800EFE60 = .text:0x800EFE60; // type:function size:0x8 -fn_800EFE68 = .text:0x800EFE68; // type:function size:0x8 -fn_800EFE70 = .text:0x800EFE70; // type:function size:0x8 -fn_800EFE78 = .text:0x800EFE78; // type:function size:0xD8 -fn_800EFF50 = .text:0x800EFF50; // type:function size:0x38 -fn_800EFF88 = .text:0x800EFF88; // type:function size:0xBC -fn_800F0044 = .text:0x800F0044; // type:function size:0x8 -fn_800F004C = .text:0x800F004C; // type:function size:0x8 -fn_800F0054 = .text:0x800F0054; // type:function size:0x3C +TRKDoSetOption = .text:0x800ECD40; // type:function size:0x1A4 +TRKDoStop = .text:0x800ECEE4; // type:function size:0x100 +TRKDoStep = .text:0x800ECFE4; // type:function size:0x530 +TRKDoContinue = .text:0x800ED514; // type:function size:0x154 +TRKDoFlushCache = .text:0x800ED668; // type:function size:0x2F8 +TRKDoWriteRegisters = .text:0x800ED960; // type:function size:0x3C8 +TRKDoReadRegisters = .text:0x800EDD28; // type:function size:0x3CC +TRKDoWriteMemory = .text:0x800EE0F4; // type:function size:0x420 +TRKDoReadMemory = .text:0x800EE514; // type:function size:0x410 +TRKDoCPUType = .text:0x800EE924; // type:function size:0x398 +TRKDoSupportMask = .text:0x800EECBC; // type:function size:0x230 +TRKDoVersions = .text:0x800EEEEC; // type:function size:0x2D8 +TRKDoReset = .text:0x800EF1C4; // type:function size:0xB8 +TRKDoDisconnect = .text:0x800EF27C; // type:function size:0xE4 +TRKDoConnect = .text:0x800EF360; // type:function size:0xBC +TRKDoUnsupported = .text:0x800EF41C; // type:function size:0xB0 +TRKStandardACK = .text:0x800EF4CC; // type:function size:0xB8 +SetTRKConnected = .text:0x800EF584; // type:function size:0xC +GetTRKConnected = .text:0x800EF590; // type:function size:0x10 +HandlePositionFileSupportRequest = .text:0x800EF5A0; // type:function size:0x190 +HandleCloseFileSupportRequest = .text:0x800EF730; // type:function size:0x120 +HandleOpenFileSupportRequest = .text:0x800EF850; // type:function size:0x1A8 +TRKRequestSend = .text:0x800EF9F8; // type:function size:0x1A4 +TRKSuppAccessFile = .text:0x800EFB9C; // type:function size:0x2C4 +TRKReleaseMutex = .text:0x800EFE60; // type:function size:0x8 +TRKAcquireMutex = .text:0x800EFE68; // type:function size:0x8 +TRKInitializeMutex = .text:0x800EFE70; // type:function size:0x8 +TRKDoNotifyStopped = .text:0x800EFE78; // type:function size:0xD8 +TRK_flush_cache = .text:0x800EFF50; // type:function size:0x38 +TRK_fill_mem = .text:0x800EFF88; // type:function size:0xBC +__TRK_get_MSR = .text:0x800F0044; // type:function size:0x8 +__TRK_set_MSR = .text:0x800F004C; // type:function size:0x8 +TRK_ppc_memcpy = .text:0x800F0054; // type:function size:0x3C TRKInterruptHandler = .text:0x800F0090; // type:function size:0x194 scope:global TRKExceptionHandler = .text:0x800F0224; // type:function size:0x9C scope:global TRKSwapAndGo = .text:0x800F02C0; // type:function size:0xC4 scope:global TRKInterruptHandlerEnableInterrupts = .text:0x800F0384; // type:function size:0x54 scope:global TRKTargetSetInputPendingPtr = .text:0x800F03D8; // type:function size:0x10 scope:global -fn_800F03E8 = .text:0x800F03E8; // type:function size:0x21C -fn_800F0604 = .text:0x800F0604; // type:function size:0x18 +TRKPPCAccessFPRegister = .text:0x800F03E8; // type:function size:0x21C +TRKTargetStop = .text:0x800F0604; // type:function size:0x18 TRKTargetSetStopped = .text:0x800F061C; // type:function size:0x10 scope:global TRKTargetStopped = .text:0x800F062C; // type:function size:0x10 scope:global -fn_800F063C = .text:0x800F063C; // type:function size:0x3C +TRKTargetFlushCache = .text:0x800F063C; // type:function size:0x3C TRKTargetSupportRequest = .text:0x800F0678; // type:function size:0x208 scope:global -fn_800F0880 = .text:0x800F0880; // type:function size:0x10 -fn_800F0890 = .text:0x800F0890; // type:function size:0x7C -fn_800F090C = .text:0x800F090C; // type:function size:0x6C -fn_800F0978 = .text:0x800F0978; // type:function size:0xAC -fn_800F0A24 = .text:0x800F0A24; // type:function size:0x124 +TRKTargetGetPC = .text:0x800F0880; // type:function size:0x10 +TRKTargetStepOutOfRange = .text:0x800F0890; // type:function size:0x7C +TRKTargetSingleStep = .text:0x800F090C; // type:function size:0x6C +TRKTargetAddExceptionInfo = .text:0x800F0978; // type:function size:0xAC +TRKTargetAddStopInfo = .text:0x800F0A24; // type:function size:0x124 TRKTargetInterrupt = .text:0x800F0B48; // type:function size:0x15C scope:global TRKPostInterruptEvent = .text:0x800F0CA4; // type:function size:0xC0 scope:global -fn_800F0D64 = .text:0x800F0D64; // type:function size:0x60 -fn_800F0DC4 = .text:0x800F0DC4; // type:function size:0xA4 -fn_800F0E68 = .text:0x800F0E68; // type:function size:0x24 -fn_800F0E8C = .text:0x800F0E8C; // type:function size:0x438 -fn_800F12C4 = .text:0x800F12C4; // type:function size:0x170 -fn_800F1434 = .text:0x800F1434; // type:function size:0x13C -fn_800F1570 = .text:0x800F1570; // type:function size:0xF4 -fn_800F1664 = .text:0x800F1664; // type:function size:0x14C -fn_800F17B0 = .text:0x800F17B0; // type:function size:0x124 -fn_800F18E0 = .text:0x800F18E0; // type:function size:0x8 -fn_800F18E8 = .text:0x800F18E8; // type:function size:0x8 -fn_800F18F0 = .text:0x800F18F0; // type:function size:0x8 -fn_800F18F8 = .text:0x800F18F8; // type:function size:0x8 +TRKTargetCPUType = .text:0x800F0D64; // type:function size:0x60 +TRKTargetSupportMask = .text:0x800F0DC4; // type:function size:0xA4 +TRKTargetVersions = .text:0x800F0E68; // type:function size:0x24 +TRKTargetAccessExtended2 = .text:0x800F0E8C; // type:function size:0x438 +TRKTargetAccessExtended1 = .text:0x800F12C4; // type:function size:0x170 +TRKTargetAccessFP = .text:0x800F1434; // type:function size:0x13C +TRKTargetAccessDefault = .text:0x800F1570; // type:function size:0xF4 +TRKTargetAccessMemory = .text:0x800F1664; // type:function size:0x14C +TRKValidMemory32 = .text:0x800F17B0; // type:function size:0x124 +TRKAccessFile = .text:0x800F18E0; // type:function size:0x8 +TRKOpenFile = .text:0x800F18E8; // type:function size:0x8 +TRKCloseFile = .text:0x800F18F0; // type:function size:0x8 +TRKPositionFile = .text:0x800F18F8; // type:function size:0x8 InitMetroTRK = .text:0x800F1900; // type:function size:0x94 scope:global TRKInitializeTarget = .text:0x800F1994; // type:function size:0x4C scope:global -fn_800F19E0 = .text:0x800F19E0; // type:function size:0x40 +TRKTargetTranslate = .text:0x800F19E0; // type:function size:0x40 EnableMetroTRKInterrupts = .text:0x800F1A20; // type:function size:0x20 scope:global TRKSaveExtended1Block = .text:0x800F1A40; // type:function size:0x1B8 scope:global TRKRestoreExtended1Block = .text:0x800F1BF8; // type:function size:0x1B8 scope:global -fn_800F1DB0 = .text:0x800F1DB0; // type:function size:0x8 +TRKTargetCPUMinorType = .text:0x800F1DB0; // type:function size:0x8 TRK_main = .text:0x800F1DB8; // type:function size:0x44 scope:global TRKLoadContext = .text:0x800F1DFC; // type:function size:0x88 scope:global TRKUARTInterruptHandler = .text:0x800F1E84; // type:function size:0x4 scope:global TRK_board_display = .text:0x800F1E88; // type:function size:0x24 scope:global UnreserveEXI2Port = .text:0x800F1EAC; // type:function size:0x30 scope:global ReserveEXI2Port = .text:0x800F1EDC; // type:function size:0x30 scope:global -fn_800F1F0C = .text:0x800F1F0C; // type:function size:0xF0 -fn_800F1FFC = .text:0x800F1FFC; // type:function size:0x28 -fn_800F2024 = .text:0x800F2024; // type:function size:0xE0 -fn_800F2104 = .text:0x800F2104; // type:function size:0x30 +TRKReadUARTPoll = .text:0x800F1F0C; // type:function size:0xF0 +WriteUART1 = .text:0x800F1FFC; // type:function size:0x28 +WriteUARTFlush = .text:0x800F2024; // type:function size:0xE0 +EnableEXI2Interrupts = .text:0x800F2104; // type:function size:0x30 TRKInitializeIntDrivenUART = .text:0x800F2134; // type:function size:0x3C scope:global InitMetroTRKCommTable = .text:0x800F2170; // type:function size:0x100 scope:global TRKEXICallBack = .text:0x800F2270; // type:function size:0x38 scope:global TRKTargetContinue = .text:0x800F22A8; // type:function size:0x34 scope:global -fn_800F22DC = .text:0x800F22DC; // type:function size:0x10 -fn_800F22EC = .text:0x800F22EC; // type:function size:0xC -fn_800F22F8 = .text:0x800F22F8; // type:function size:0xBC -fn_800F23B4 = .text:0x800F23B4; // type:function size:0xBC -fn_800F2470 = .text:0x800F2470; // type:function size:0x68 -fn_800F24D8 = .text:0x800F24D8; // type:function size:0xAC4 -fn_800F2F9C = .text:0x800F2F9C; // type:function size:0x64 -fn_800F3000 = .text:0x800F3000; // type:function size:0x27C -fn_800F327C = .text:0x800F327C; // type:function size:0x2B0 -fn_800F352C = .text:0x800F352C; // type:function size:0x90 -fn_800F35BC = .text:0x800F35BC; // type:function size:0xE4 -fn_800F36A0 = .text:0x800F36A0; // type:function size:0x108 -fn_800F37A8 = .text:0x800F37A8; // type:function size:0xBC -fn_800F3864 = .text:0x800F3864; // type:function size:0x1CC -fn_800F3A30 = .text:0x800F3A30; // type:function size:0xB58 -fn_800F4588 = .text:0x800F4588; // type:function size:0x218 -fn_800F47A0 = .text:0x800F47A0; // type:function size:0xA94 -fn_800F5234 = .text:0x800F5234; // type:function size:0x174 -fn_800F53A8 = .text:0x800F53A8; // type:function size:0x49C -fn_800F5844 = .text:0x800F5844; // type:function size:0x9F4 -fn_800F6238 = .text:0x800F6238; // type:function size:0x1A8 -fn_800F63E0 = .text:0x800F63E0; // type:function size:0x44 -fn_800F6424 = .text:0x800F6424; // type:function size:0x34 -fn_800F6458 = .text:0x800F6458; // type:function size:0x78 -fn_800F64D0 = .text:0x800F64D0; // type:function size:0x2A0 -fn_800F6770 = .text:0x800F6770; // type:function size:0x3C0 -fn_800F6B30 = .text:0x800F6B30; // type:function size:0x25C -fn_800F6D8C = .text:0x800F6D8C; // type:function size:0x45C -fn_800F71E8 = .text:0x800F71E8; // type:function size:0x744 -fn_800F792C = .text:0x800F792C; // type:function size:0x6FC -fn_800F8028 = .text:0x800F8028; // type:function size:0x150 -fn_800F8178 = .text:0x800F8178; // type:function size:0x64 -fn_800F81DC = .text:0x800F81DC; // type:function size:0x44 -fn_800F8220 = .text:0x800F8220; // type:function size:0x28 -fn_800F8248 = .text:0x800F8248; // type:function size:0x510 -fn_800F8758 = .text:0x800F8758; // type:function size:0x34 -fn_800F878C = .text:0x800F878C; // type:function size:0xC8 -fn_800F8854 = .text:0x800F8854; // type:function size:0xE4 -fn_800F8938 = .text:0x800F8938; // type:function size:0xE4 -fn_800F8A1C = .text:0x800F8A1C; // type:function size:0x84 -fn_800F8AA0 = .text:0x800F8AA0; // type:function size:0x88 -fn_800F8B28 = .text:0x800F8B28; // type:function size:0x530 -fn_800F9058 = .text:0x800F9058; // type:function size:0x54 -fn_800F90AC = .text:0x800F90AC; // type:function size:0x28 -fn_800F90D4 = .text:0x800F90D4; // type:function size:0xD0 -fn_800F91A4 = .text:0x800F91A4; // type:function size:0x574 -fn_800F9718 = .text:0x800F9718; // type:function size:0x24 -fn_800F973C = .text:0x800F973C; // type:function size:0x30 -fn_800F976C = .text:0x800F976C; // type:function size:0x38 -fn_800F97A4 = .text:0x800F97A4; // type:function size:0x38 -fn_800F97DC = .text:0x800F97DC; // type:function size:0x48 -fn_800F9824 = .text:0x800F9824; // type:function size:0x38 -fn_800F985C = .text:0x800F985C; // type:function size:0x58 -fn_800F98B4 = .text:0x800F98B4; // type:function size:0x68 -fn_800F991C = .text:0x800F991C; // type:function size:0x84 -fn_800F99A0 = .text:0x800F99A0; // type:function size:0x1C -fn_800F99BC = .text:0x800F99BC; // type:function size:0x60 -fn_800F9A1C = .text:0x800F9A1C; // type:function size:0x60 -fn_800F9A7C = .text:0x800F9A7C; // type:function size:0x40 -fn_800F9ABC = .text:0x800F9ABC; // type:function size:0xE0 -fn_800F9B9C = .text:0x800F9B9C; // type:function size:0x40 -fn_800F9BDC = .text:0x800F9BDC; // type:function size:0x50 -fn_800F9C2C = .text:0x800F9C2C; // type:function size:0x60 -fn_800F9C8C = .text:0x800F9C8C; // type:function size:0x94 -fn_800F9D20 = .text:0x800F9D20; // type:function size:0xEC -fn_800F9E0C = .text:0x800F9E0C; // type:function size:0x158 -fn_800F9F64 = .text:0x800F9F64; // type:function size:0xA8 -fn_800FA00C = .text:0x800FA00C; // type:function size:0xF0 -fn_800FA0FC = .text:0x800FA0FC; // type:function size:0x20 -fn_800FA11C = .text:0x800FA11C; // type:function size:0x20 -fn_800FA13C = .text:0x800FA13C; // type:function size:0xBC -fn_800FA1F8 = .text:0x800FA1F8; // type:function size:0x8C -fn_800FA284 = .text:0x800FA284; // type:function size:0x8AC -fn_800FAB30 = .text:0x800FAB30; // type:function size:0x4 -fn_800FAB34 = .text:0x800FAB34; // type:function size:0x84 -fn_800FABB8 = .text:0x800FABB8; // type:function size:0x160 -fn_800FAD18 = .text:0x800FAD18; // type:function size:0x2C4 -fn_800FAFDC = .text:0x800FAFDC; // type:function size:0x34 -fn_800FB010 = .text:0x800FB010; // type:function size:0x44 -fn_800FB054 = .text:0x800FB054; // type:function size:0x130 -fn_800FB184 = .text:0x800FB184; // type:function size:0x458 -fn_800FB5DC = .text:0x800FB5DC; // type:function size:0x44 -fn_800FB620 = .text:0x800FB620; // type:function size:0x6E8 -fn_800FBD08 = .text:0x800FBD08; // type:function size:0x560 -fn_800FC268 = .text:0x800FC268; // type:function size:0x654 -fn_800FC8BC = .text:0x800FC8BC; // type:function size:0x6B8 -fn_800FCF74 = .text:0x800FCF74; // type:function size:0x634 -fn_800FD5A8 = .text:0x800FD5A8; // type:function size:0x700 -fn_800FDCA8 = .text:0x800FDCA8; // type:function size:0x1F0 -fn_800FDE98 = .text:0x800FDE98; // type:function size:0x17C -fn_800FE014 = .text:0x800FE014; // type:function size:0x248 -fn_800FE25C = .text:0x800FE25C; // type:function size:0x1C4 -fn_800FE420 = .text:0x800FE420; // type:function size:0x204 -fn_800FE624 = .text:0x800FE624; // type:function size:0x17C -fn_800FE7A0 = .text:0x800FE7A0; // type:function size:0x188 -fn_800FE928 = .text:0x800FE928; // type:function size:0x2C8 -fn_800FEBF0 = .text:0x800FEBF0; // type:function size:0xD8 -fn_800FECC8 = .text:0x800FECC8; // type:function size:0x98 -fn_800FED60 = .text:0x800FED60; // type:function size:0x11C -fn_800FEE7C = .text:0x800FEE7C; // type:function size:0x15C -fn_800FEFD8 = .text:0x800FEFD8; // type:function size:0x304 -fn_800FF2DC = .text:0x800FF2DC; // type:function size:0x284 -fn_800FF560 = .text:0x800FF560; // type:function size:0x10 -fn_800FF570 = .text:0x800FF570; // type:function size:0x8C -fn_800FF5FC = .text:0x800FF5FC; // type:function size:0x10 -fn_800FF60C = .text:0x800FF60C; // type:function size:0x128 -fn_800FF734 = .text:0x800FF734; // type:function size:0x10 -fn_800FF744 = .text:0x800FF744; // type:function size:0x5C -fn_800FF7A0 = .text:0x800FF7A0; // type:function size:0x5C -fn_800FF7FC = .text:0x800FF7FC; // type:function size:0x10 -fn_800FF80C = .text:0x800FF80C; // type:function size:0x7C -fn_800FF888 = .text:0x800FF888; // type:function size:0x10 -fn_800FF898 = .text:0x800FF898; // type:function size:0x9C -fn_800FF934 = .text:0x800FF934; // type:function size:0xE4 -fn_800FFA18 = .text:0x800FFA18; // type:function size:0x20 -fn_800FFA38 = .text:0x800FFA38; // type:function size:0x2F0 -fn_800FFD28 = .text:0x800FFD28; // type:function size:0xD0 -fn_800FFDF8 = .text:0x800FFDF8; // type:function size:0x154 -fn_800FFF4C = .text:0x800FFF4C; // type:function size:0x18C -fn_801000D8 = .text:0x801000D8; // type:function size:0xD8 -fn_801001B0 = .text:0x801001B0; // type:function size:0x1FC -fn_801003AC = .text:0x801003AC; // type:function size:0x17C -fn_80100528 = .text:0x80100528; // type:function size:0x1A0 -fn_801006C8 = .text:0x801006C8; // type:function size:0x258 -fn_80100920 = .text:0x80100920; // type:function size:0x12C -fn_80100A4C = .text:0x80100A4C; // type:function size:0x27C -fn_80100CC8 = .text:0x80100CC8; // type:function size:0x9C -fn_80100D64 = .text:0x80100D64; // type:function size:0x9C -fn_80100E00 = .text:0x80100E00; // type:function size:0x134 -fn_80100F34 = .text:0x80100F34; // type:function size:0x130 -fn_80101064 = .text:0x80101064; // type:function size:0x13C -fn_801011A0 = .text:0x801011A0; // type:function size:0x19C -fn_8010133C = .text:0x8010133C; // type:function size:0x104 -fn_80101440 = .text:0x80101440; // type:function size:0x104 -fn_80101544 = .text:0x80101544; // type:function size:0x104 -fn_80101648 = .text:0x80101648; // type:function size:0x104 -fn_8010174C = .text:0x8010174C; // type:function size:0x104 -fn_80101850 = .text:0x80101850; // type:function size:0x104 -fn_80101954 = .text:0x80101954; // type:function size:0x104 -fn_80101A58 = .text:0x80101A58; // type:function size:0x104 -fn_80101B5C = .text:0x80101B5C; // type:function size:0x104 -fn_80101C60 = .text:0x80101C60; // type:function size:0x104 -fn_80101D64 = .text:0x80101D64; // type:function size:0x104 -fn_80101E68 = .text:0x80101E68; // type:function size:0x104 -fn_80101F6C = .text:0x80101F6C; // type:function size:0x104 -fn_80102070 = .text:0x80102070; // type:function size:0x17C -fn_801021EC = .text:0x801021EC; // type:function size:0x17C -fn_80102368 = .text:0x80102368; // type:function size:0x164 -fn_801024CC = .text:0x801024CC; // type:function size:0x68 -fn_80102534 = .text:0x80102534; // type:function size:0x220 -fn_80102754 = .text:0x80102754; // type:function size:0x14C -fn_801028A0 = .text:0x801028A0; // type:function size:0xBC -fn_8010295C = .text:0x8010295C; // type:function size:0x244 -fn_80102BA0 = .text:0x80102BA0; // type:function size:0x80 -fn_80102C20 = .text:0x80102C20; // type:function size:0xDC -fn_80102CFC = .text:0x80102CFC; // type:function size:0xF58 -fn_80103C54 = .text:0x80103C54; // type:function size:0x150 -fn_80103DA4 = .text:0x80103DA4; // type:function size:0xAC -fn_80103E50 = .text:0x80103E50; // type:function size:0xF0 -fn_80103F40 = .text:0x80103F40; // type:function size:0x108 -fn_80104048 = .text:0x80104048; // type:function size:0xA4 -fn_801040EC = .text:0x801040EC; // type:function size:0x108 -fn_801041F4 = .text:0x801041F4; // type:function size:0xFC -fn_801042F0 = .text:0x801042F0; // type:function size:0x438 -fn_80104728 = .text:0x80104728; // type:function size:0x68 -fn_80104790 = .text:0x80104790; // type:function size:0xE0 -fn_80104870 = .text:0x80104870; // type:function size:0x350 -fn_80104BC0 = .text:0x80104BC0; // type:function size:0x14 -fn_80104BD4 = .text:0x80104BD4; // type:function size:0x104 -fn_80104CD8 = .text:0x80104CD8; // type:function size:0x50 -fn_80104D28 = .text:0x80104D28; // type:function size:0x24C -fn_80104F74 = .text:0x80104F74; // type:function size:0x460 -fn_801053D4 = .text:0x801053D4; // type:function size:0x1C4 -fn_80105598 = .text:0x80105598; // type:function size:0x2A0 -fn_80105838 = .text:0x80105838; // type:function size:0xFC -fn_80105934 = .text:0x80105934; // type:function size:0x218 -fn_80105B4C = .text:0x80105B4C; // type:function size:0x234 -fn_80105D80 = .text:0x80105D80; // type:function size:0xC4 -fn_80105E44 = .text:0x80105E44; // type:function size:0x15C -fn_80105FA0 = .text:0x80105FA0; // type:function size:0x74 -fn_80106014 = .text:0x80106014; // type:function size:0x54 -fn_80106068 = .text:0x80106068; // type:function size:0x74 -fn_801060DC = .text:0x801060DC; // type:function size:0x144 -fn_80106220 = .text:0x80106220; // type:function size:0x3C -fn_8010625C = .text:0x8010625C; // type:function size:0xE4 -fn_80106340 = .text:0x80106340; // type:function size:0x58 -fn_80106398 = .text:0x80106398; // type:function size:0x26C -fn_80106604 = .text:0x80106604; // type:function size:0x28 -fn_8010662C = .text:0x8010662C; // type:function size:0x150 -fn_8010677C = .text:0x8010677C; // type:function size:0x168 -fn_801068E4 = .text:0x801068E4; // type:function size:0x198 -fn_80106A7C = .text:0x80106A7C; // type:function size:0x84 -fn_80106B00 = .text:0x80106B00; // type:function size:0xBC -fn_80106BBC = .text:0x80106BBC; // type:function size:0x248 -fn_80106E04 = .text:0x80106E04; // type:function size:0xA8 -fn_80106EAC = .text:0x80106EAC; // type:function size:0x1F8 -fn_801070A4 = .text:0x801070A4; // type:function size:0x1E4 -fn_80107288 = .text:0x80107288; // type:function size:0xC -fn_80107294 = .text:0x80107294; // type:function size:0x27C -fn_80107510 = .text:0x80107510; // type:function size:0x32C -fn_8010783C = .text:0x8010783C; // type:function size:0x33C -fn_80107B78 = .text:0x80107B78; // type:function size:0x14C -fn_80107CC4 = .text:0x80107CC4; // type:function size:0x11C -fn_80107DE0 = .text:0x80107DE0; // type:function size:0x3B4 -fn_80108194 = .text:0x80108194; // type:function size:0x38 -fn_801081CC = .text:0x801081CC; // type:function size:0xE0 -fn_801082AC = .text:0x801082AC; // type:function size:0x150 -fn_801083FC = .text:0x801083FC; // type:function size:0x20 -fn_8010841C = .text:0x8010841C; // type:function size:0xF4 -fn_80108510 = .text:0x80108510; // type:function size:0x48 -fn_80108558 = .text:0x80108558; // type:function size:0x74 -fn_801085CC = .text:0x801085CC; // type:function size:0xAC -fn_80108678 = .text:0x80108678; // type:function size:0x2DC -fn_80108954 = .text:0x80108954; // type:function size:0x258 -fn_80108BAC = .text:0x80108BAC; // type:function size:0x21B8 -fn_8010AD64 = .text:0x8010AD64; // type:function size:0x44 -fn_8010ADA8 = .text:0x8010ADA8; // type:function size:0xA0 -fn_8010AE48 = .text:0x8010AE48; // type:function size:0x60 -fn_8010AEA8 = .text:0x8010AEA8; // type:function size:0xC8 -fn_8010AF70 = .text:0x8010AF70; // type:function size:0xA8 -fn_8010B018 = .text:0x8010B018; // type:function size:0x84 -fn_8010B09C = .text:0x8010B09C; // type:function size:0x158 -fn_8010B1F4 = .text:0x8010B1F4; // type:function size:0x6F0 -fn_8010B8E4 = .text:0x8010B8E4; // type:function size:0x4B4 -fn_8010BD98 = .text:0x8010BD98; // type:function size:0x51C -fn_8010C2B4 = .text:0x8010C2B4; // type:function size:0x130 -fn_8010C3E4 = .text:0x8010C3E4; // type:function size:0x20 -fn_8010C404 = .text:0x8010C404; // type:function size:0x3F8 -fn_8010C7FC = .text:0x8010C7FC; // type:function size:0x50 -fn_8010C84C = .text:0x8010C84C; // type:function size:0xA8 -fn_8010C8F4 = .text:0x8010C8F4; // type:function size:0x5C -fn_8010C950 = .text:0x8010C950; // type:function size:0xFC -fn_8010CA4C = .text:0x8010CA4C; // type:function size:0x204 -fn_8010CC50 = .text:0x8010CC50; // type:function size:0x230 -fn_8010CE80 = .text:0x8010CE80; // type:function size:0xD0 -fn_8010CF50 = .text:0x8010CF50; // type:function size:0x14C -fn_8010D09C = .text:0x8010D09C; // type:function size:0x3B0 -fn_8010D44C = .text:0x8010D44C; // type:function size:0x82C -fn_8010DC78 = .text:0x8010DC78; // type:function size:0x38 -fn_8010DCB0 = .text:0x8010DCB0; // type:function size:0x4 -fn_8010DCB4 = .text:0x8010DCB4; // type:function size:0x118 -fn_8010DDCC = .text:0x8010DDCC; // type:function size:0x34 -fn_8010DE00 = .text:0x8010DE00; // type:function size:0x8 -fn_8010DE08 = .text:0x8010DE08; // type:function size:0xAC -fn_8010DEB4 = .text:0x8010DEB4; // type:function size:0xB4 -fn_8010DF68 = .text:0x8010DF68; // type:function size:0x64 -fn_8010DFCC = .text:0x8010DFCC; // type:function size:0x1FC -fn_8010E1C8 = .text:0x8010E1C8; // type:function size:0x24 -fn_8010E1EC = .text:0x8010E1EC; // type:function size:0x608 -fn_8010E7F4 = .text:0x8010E7F4; // type:function size:0x124 -fn_8010E918 = .text:0x8010E918; // type:function size:0xF0 -fn_8010EA08 = .text:0x8010EA08; // type:function size:0x2C4 -fn_8010ECCC = .text:0x8010ECCC; // type:function size:0x34 -fn_8010ED00 = .text:0x8010ED00; // type:function size:0x3C -fn_8010ED3C = .text:0x8010ED3C; // type:function size:0x98 -fn_8010EDD4 = .text:0x8010EDD4; // type:function size:0x114 -fn_8010EEE8 = .text:0x8010EEE8; // type:function size:0x3C -fn_8010EF24 = .text:0x8010EF24; // type:function size:0x3C -fn_8010EF60 = .text:0x8010EF60; // type:function size:0x4A0 -fn_8010F400 = .text:0x8010F400; // type:function size:0x48 -fn_8010F448 = .text:0x8010F448; // type:function size:0x48 -fn_8010F490 = .text:0x8010F490; // type:function size:0x48 -fn_8010F4D8 = .text:0x8010F4D8; // type:function size:0x48 -fn_8010F520 = .text:0x8010F520; // type:function size:0x48 -fn_8010F568 = .text:0x8010F568; // type:function size:0x48 -fn_8010F5B0 = .text:0x8010F5B0; // type:function size:0x48 -fn_8010F5F8 = .text:0x8010F5F8; // type:function size:0x48 -fn_8010F640 = .text:0x8010F640; // type:function size:0x48 -fn_8010F688 = .text:0x8010F688; // type:function size:0x48 -fn_8010F6D0 = .text:0x8010F6D0; // type:function size:0x48 -fn_8010F718 = .text:0x8010F718; // type:function size:0x48 -fn_8010F760 = .text:0x8010F760; // type:function size:0xB4 -fn_8010F814 = .text:0x8010F814; // type:function size:0xB4 -fn_8010F8C8 = .text:0x8010F8C8; // type:function size:0x284 -fn_8010FB4C = .text:0x8010FB4C; // type:function size:0x70 -fn_8010FBBC = .text:0x8010FBBC; // type:function size:0xFC -fn_8010FCB8 = .text:0x8010FCB8; // type:function size:0x1E4 -fn_8010FE9C = .text:0x8010FE9C; // type:function size:0x1C -fn_8010FEB8 = .text:0x8010FEB8; // type:function size:0x8C -fn_8010FF44 = .text:0x8010FF44; // type:function size:0xA4 -fn_8010FFE8 = .text:0x8010FFE8; // type:function size:0x10 -fn_8010FFF8 = .text:0x8010FFF8; // type:function size:0x48 -fn_80110040 = .text:0x80110040; // type:function size:0x8 -fn_80110048 = .text:0x80110048; // type:function size:0x154 -fn_8011019C = .text:0x8011019C; // type:function size:0xB8 -fn_80110254 = .text:0x80110254; // type:function size:0x34 -fn_80110288 = .text:0x80110288; // type:function size:0x8 -fn_80110290 = .text:0x80110290; // type:function size:0x8 -fn_80110298 = .text:0x80110298; // type:function size:0x20 -fn_801102B8 = .text:0x801102B8; // type:function size:0x8 -fn_801102C0 = .text:0x801102C0; // type:function size:0x14 -fn_801102D4 = .text:0x801102D4; // type:function size:0x1B4 -fn_80110488 = .text:0x80110488; // type:function size:0x50 -fn_801104D8 = .text:0x801104D8; // type:function size:0x1AC -fn_80110684 = .text:0x80110684; // type:function size:0x20 -fn_801106A4 = .text:0x801106A4; // type:function size:0x14 -fn_801106B8 = .text:0x801106B8; // type:function size:0x14 -fn_801106CC = .text:0x801106CC; // type:function size:0x14 -fn_801106E0 = .text:0x801106E0; // type:function size:0x14 -fn_801106F4 = .text:0x801106F4; // type:function size:0x3C -fn_80110730 = .text:0x80110730; // type:function size:0x28 -fn_80110758 = .text:0x80110758; // type:function size:0x78 -fn_801107D0 = .text:0x801107D0; // type:function size:0x2C -fn_801107FC = .text:0x801107FC; // type:function size:0x2C -fn_80110828 = .text:0x80110828; // type:function size:0x5C -fn_80110884 = .text:0x80110884; // type:function size:0x2C0 -fn_80110B44 = .text:0x80110B44; // type:function size:0x2C -fn_80110B70 = .text:0x80110B70; // type:function size:0x28 -fn_80110B98 = .text:0x80110B98; // type:function size:0x20 -fn_80110BB8 = .text:0x80110BB8; // type:function size:0x20 -fn_80110BD8 = .text:0x80110BD8; // type:function size:0x34 -fn_80110C0C = .text:0x80110C0C; // type:function size:0x34 -fn_80110C40 = .text:0x80110C40; // type:function size:0x2C -fn_80110C6C = .text:0x80110C6C; // type:function size:0xA4 -fn_80110D10 = .text:0x80110D10; // type:function size:0x90 -fn_80110DA0 = .text:0x80110DA0; // type:function size:0x20 -fn_80110DC0 = .text:0x80110DC0; // type:function size:0x20 -fn_80110DE0 = .text:0x80110DE0; // type:function size:0x24 -fn_80110E04 = .text:0x80110E04; // type:function size:0x4 -fn_80110E08 = .text:0x80110E08; // type:function size:0x5C -fn_80110E64 = .text:0x80110E64; // type:function size:0x24 -fn_80110E88 = .text:0x80110E88; // type:function size:0x20 -fn_80110EA8 = .text:0x80110EA8; // type:function size:0x94 -fn_80110F3C = .text:0x80110F3C; // type:function size:0x84 -fn_80110FC0 = .text:0x80110FC0; // type:function size:0x20 -fn_80110FE0 = .text:0x80110FE0; // type:function size:0x4 -fn_80110FE4 = .text:0x80110FE4; // type:function size:0x14 -fn_80110FF8 = .text:0x80110FF8; // type:function size:0xC -fn_80111004 = .text:0x80111004; // type:function size:0x28 -fn_8011102C = .text:0x8011102C; // type:function size:0x20 -fn_8011104C = .text:0x8011104C; // type:function size:0xA0 -fn_801110EC = .text:0x801110EC; // type:function size:0x1DC -fn_801112C8 = .text:0x801112C8; // type:function size:0x18 -fn_801112E0 = .text:0x801112E0; // type:function size:0x2EC -fn_801115CC = .text:0x801115CC; // type:function size:0x4 -fn_801115D0 = .text:0x801115D0; // type:function size:0x20 -fn_801115F0 = .text:0x801115F0; // type:function size:0x3BC -fn_801119AC = .text:0x801119AC; // type:function size:0x18 -fn_801119C4 = .text:0x801119C4; // type:function size:0xC4 -fn_80111A88 = .text:0x80111A88; // type:function size:0x108 -fn_80111B90 = .text:0x80111B90; // type:function size:0x38 -fn_80111BC8 = .text:0x80111BC8; // type:function size:0xF8 -fn_80111CC0 = .text:0x80111CC0; // type:function size:0xA8 -fn_80111D68 = .text:0x80111D68; // type:function size:0x10 -fn_80111D78 = .text:0x80111D78; // type:function size:0x64 -fn_80111DDC = .text:0x80111DDC; // type:function size:0xC8 -fn_80111EA4 = .text:0x80111EA4; // type:function size:0x20 -fn_80111EC4 = .text:0x80111EC4; // type:function size:0x34 -fn_80111EF8 = .text:0x80111EF8; // type:function size:0x30 -fn_80111F28 = .text:0x80111F28; // type:function size:0xBC -fn_80111FE4 = .text:0x80111FE4; // type:function size:0x34 -fn_80112018 = .text:0x80112018; // type:function size:0x74 -fn_8011208C = .text:0x8011208C; // type:function size:0x4C -fn_801120D8 = .text:0x801120D8; // type:function size:0x2C -fn_80112104 = .text:0x80112104; // type:function size:0x4 -fn_80112108 = .text:0x80112108; // type:function size:0x38 -fn_80112140 = .text:0x80112140; // type:function size:0x38 -fn_80112178 = .text:0x80112178; // type:function size:0x20 -fn_80112198 = .text:0x80112198; // type:function size:0x20 -fn_801121B8 = .text:0x801121B8; // type:function size:0x28 -fn_801121E0 = .text:0x801121E0; // type:function size:0x2C -fn_8011220C = .text:0x8011220C; // type:function size:0x5C -fn_80112268 = .text:0x80112268; // type:function size:0x3C -fn_801122A4 = .text:0x801122A4; // type:function size:0x24 -fn_801122C8 = .text:0x801122C8; // type:function size:0x428 -fn_801126F0 = .text:0x801126F0; // type:function size:0x3B4 -fn_80112AA4 = .text:0x80112AA4; // type:function size:0x24 -fn_80112AC8 = .text:0x80112AC8; // type:function size:0xBC -fn_80112B84 = .text:0x80112B84; // type:function size:0x5C -fn_80112BE0 = .text:0x80112BE0; // type:function size:0x40 -fn_80112C20 = .text:0x80112C20; // type:function size:0x24 -fn_80112C44 = .text:0x80112C44; // type:function size:0x50C -fn_80113150 = .text:0x80113150; // type:function size:0x190 -fn_801132E0 = .text:0x801132E0; // type:function size:0x50C -fn_801137EC = .text:0x801137EC; // type:function size:0xE0 -fn_801138CC = .text:0x801138CC; // type:function size:0xBC -fn_80113988 = .text:0x80113988; // type:function size:0x168 -fn_80113AF0 = .text:0x80113AF0; // type:function size:0x1D0 -fn_80113CC0 = .text:0x80113CC0; // type:function size:0x28 -fn_80113CE8 = .text:0x80113CE8; // type:function size:0x4C -fn_80113D34 = .text:0x80113D34; // type:function size:0x198 -fn_80113ECC = .text:0x80113ECC; // type:function size:0x1EC -fn_801140B8 = .text:0x801140B8; // type:function size:0x2BC -fn_80114374 = .text:0x80114374; // type:function size:0x200 -fn_80114574 = .text:0x80114574; // type:function size:0x28 +GetUseSerialIO = .text:0x800F22DC; // type:function size:0x10 +SetUseSerialIO = .text:0x800F22EC; // type:function size:0xC +__TRK_write_console = .text:0x800F22F8; // type:function size:0xBC +__read_console = .text:0x800F23B4; // type:function size:0xBC +seqGetPrivateId = .text:0x800F2470; // type:function size:0x68 +seqStartPlay = .text:0x800F24D8; // type:function size:0xAC4 +StartPause = .text:0x800F2F9C; // type:function size:0x64 +seqPause = .text:0x800F3000; // type:function size:0x27C +seqStop = .text:0x800F327C; // type:function size:0x2B0 +seqKillInstancesByGroupID = .text:0x800F352C; // type:function size:0x90 +seqSpeed = .text:0x800F35BC; // type:function size:0xE4 +seqContinue = .text:0x800F36A0; // type:function size:0x108 +seqMute = .text:0x800F37A8; // type:function size:0xBC +seqVolume = .text:0x800F3864; // type:function size:0x1CC +seqCrossFade = .text:0x800F3A30; // type:function size:0xB58 +GenerateNextTrackEvent = .text:0x800F4588; // type:function size:0x218 scope:local +HandleEvent = .text:0x800F47A0; // type:function size:0xA94 scope:local +InitTrackEvents = .text:0x800F5234; // type:function size:0x174 scope:local +HandleTrackEvents = .text:0x800F53A8; // type:function size:0x49C scope:local +seqHandle = .text:0x800F5844; // type:function size:0x9F4 +seqInit = .text:0x800F6238; // type:function size:0x1A8 +synthSetBpm = .text:0x800F63E0; // type:function size:0x44 +synthGetTicksPerSecond = .text:0x800F6424; // type:function size:0x34 +synthInitPortamento = .text:0x800F6458; // type:function size:0x78 +do_voice_portamento = .text:0x800F64D0; // type:function size:0x2A0 scope:local +StartLayer = .text:0x800F6770; // type:function size:0x3C0 scope:local +StartKeymap = .text:0x800F6B30; // type:function size:0x25C scope:local +synthStartSound = .text:0x800F6D8C; // type:function size:0x45C +LowPrecisionHandler = .text:0x800F71E8; // type:function size:0x744 scope:local +ZeroOffsetHandler = .text:0x800F792C; // type:function size:0x6FC scope:local +synthAddJob = .text:0x800F8028; // type:function size:0x150 scope:local +synthStartSynthJobHandling = .text:0x800F8178; // type:function size:0x64 +synthForceLowPrecisionUpdate = .text:0x800F81DC; // type:function size:0x44 +synthKeyStateUpdate = .text:0x800F8220; // type:function size:0x28 +synthHandle = .text:0x800F8248; // type:function size:0x510 +synthFXGetMaxVoices = .text:0x800F8758; // type:function size:0x34 +synthFXStart = .text:0x800F878C; // type:function size:0xC8 +synthFXSetCtrl = .text:0x800F8854; // type:function size:0xE4 +synthFXSetCtrl14 = .text:0x800F8938; // type:function size:0xE4 +synthFXCloneMidiSetup = .text:0x800F8A1C; // type:function size:0x84 +synthSendKeyOff = .text:0x800F8AA0; // type:function size:0x88 +synthVolume = .text:0x800F8B28; // type:function size:0x530 +synthIsFadeOutActive = .text:0x800F9058; // type:function size:0x54 +synthSetMusicVolumeType = .text:0x800F90AC; // type:function size:0x28 +synthHWMessageHandler = .text:0x800F90D4; // type:function size:0xD0 +synthInit = .text:0x800F91A4; // type:function size:0x574 +synthExit = .text:0x800F9718; // type:function size:0x24 +sndSeqGetValid = .text:0x800F973C; // type:function size:0x30 +sndSeqPause = .text:0x800F976C; // type:function size:0x38 +sndSeqStop = .text:0x800F97A4; // type:function size:0x38 +sndSeqSpeed = .text:0x800F97DC; // type:function size:0x48 +sndSeqContinue = .text:0x800F9824; // type:function size:0x38 +sndSeqMute = .text:0x800F985C; // type:function size:0x58 +sndSeqVolume = .text:0x800F98B4; // type:function size:0x68 +sndSeqGetMidiCtrl = .text:0x800F991C; // type:function size:0x84 +seqGetMIDIPriority = .text:0x800F99A0; // type:function size:0x1C +sndFXCtrl = .text:0x800F99BC; // type:function size:0x60 +sndFXCtrl14 = .text:0x800F9A1C; // type:function size:0x60 +sndFXKeyOff = .text:0x800F9A7C; // type:function size:0x40 +sndFXStartParaInfo = .text:0x800F9ABC; // type:function size:0xE0 +sndFXCheck = .text:0x800F9B9C; // type:function size:0x40 +sndSendMessage = .text:0x800F9BDC; // type:function size:0x50 +sndVolume = .text:0x800F9C2C; // type:function size:0x60 +sndMasterVolume = .text:0x800F9C8C; // type:function size:0x94 +sndOutputMode = .text:0x800F9D20; // type:function size:0xEC +sndSetAuxProcessingCallbacks = .text:0x800F9E0C; // type:function size:0x158 +synthActivateStudio = .text:0x800F9F64; // type:function size:0xA8 +synthDeactivateStudio = .text:0x800FA00C; // type:function size:0xF0 +synthAddStudioInput = .text:0x800FA0FC; // type:function size:0x20 +synthRemoveStudioInput = .text:0x800FA11C; // type:function size:0x20 +streamInit = .text:0x800FA13C; // type:function size:0xBC +SetHWMix = .text:0x800FA1F8; // type:function size:0x8C scope:local +streamHandle = .text:0x800FA284; // type:function size:0x8AC +streamCorrectLoops = .text:0x800FAB30; // type:function size:0x4 +streamKill = .text:0x800FAB34; // type:function size:0x84 +GetPrivateIndex = .text:0x800FABB8; // type:function size:0x160 +sndStreamARAMUpdate = .text:0x800FAD18; // type:function size:0x2C4 +CheckOutputMode = .text:0x800FAFDC; // type:function size:0x34 +SetupVolumeAndPan = .text:0x800FB010; // type:function size:0x44 +streamOutputModeChanged = .text:0x800FB054; // type:function size:0x130 +sndStreamAllocEx = .text:0x800FB184; // type:function size:0x458 +sndStreamAllocLength = .text:0x800FB5DC; // type:function size:0x44 +sndStreamADPCMParameter = .text:0x800FB620; // type:function size:0x6E8 +sndStreamMixParameterEx = .text:0x800FBD08; // type:function size:0x560 +sndStreamFrq = .text:0x800FC268; // type:function size:0x654 +sndStreamFree = .text:0x800FC8BC; // type:function size:0x6B8 +sndStreamActivate = .text:0x800FCF74; // type:function size:0x634 +sndStreamDeactivate = .text:0x800FD5A8; // type:function size:0x700 +dataInsertKeymap = .text:0x800FDCA8; // type:function size:0x1F0 +dataRemoveKeymap = .text:0x800FDE98; // type:function size:0x17C +dataInsertLayer = .text:0x800FE014; // type:function size:0x248 +dataRemoveLayer = .text:0x800FE25C; // type:function size:0x1C4 +dataInsertCurve = .text:0x800FE420; // type:function size:0x204 +dataRemoveCurve = .text:0x800FE624; // type:function size:0x17C +dataInsertSDir = .text:0x800FE7A0; // type:function size:0x188 +dataRemoveSDir = .text:0x800FE928; // type:function size:0x2C8 +dataAddSampleReference = .text:0x800FEBF0; // type:function size:0xD8 +dataRemoveSampleReference = .text:0x800FECC8; // type:function size:0x98 +dataInsertFX = .text:0x800FED60; // type:function size:0x11C +dataRemoveFX = .text:0x800FEE7C; // type:function size:0x15C +dataInsertMacro = .text:0x800FEFD8; // type:function size:0x304 +dataRemoveMacro = .text:0x800FF2DC; // type:function size:0x284 +maccmp = .text:0x800FF560; // type:function size:0x10 scope:local +dataGetMacro = .text:0x800FF570; // type:function size:0x8C +smpcmp = .text:0x800FF5FC; // type:function size:0x10 scope:local +dataGetSample = .text:0x800FF60C; // type:function size:0x128 +curvecmp = .text:0x800FF734; // type:function size:0x10 scope:local +dataGetCurve = .text:0x800FF744; // type:function size:0x5C +dataGetKeymap = .text:0x800FF7A0; // type:function size:0x5C +layercmp = .text:0x800FF7FC; // type:function size:0x10 scope:local +dataGetLayer = .text:0x800FF80C; // type:function size:0x7C +fxcmp = .text:0x800FF888; // type:function size:0x10 scope:local +dataGetFX = .text:0x800FF898; // type:function size:0x9C +dataInit = .text:0x800FF934; // type:function size:0xE4 +dataExit = .text:0x800FFA18; // type:function size:0x20 +mcmdWait = .text:0x800FFA38; // type:function size:0x2F0 scope:local +mcmdGosub = .text:0x800FFD28; // type:function size:0xD0 scope:local +mcmdLoop = .text:0x800FFDF8; // type:function size:0x154 scope:local +mcmdPlayMacro = .text:0x800FFF4C; // type:function size:0x18C scope:local +mcmdAddKey = .text:0x801000D8; // type:function size:0xD8 scope:local +mcmdStartSample = .text:0x801001B0; // type:function size:0x1FC scope:local +mcmdVibrato = .text:0x801003AC; // type:function size:0x17C scope:local +DoSetPitch = .text:0x80100528; // type:function size:0x1A0 scope:local +mcmdSetADSR = .text:0x801006C8; // type:function size:0x258 scope:local +mcmdSetADSRFromCtrl = .text:0x80100920; // type:function size:0x12C scope:local +mcmdSetPitchADSR = .text:0x80100A4C; // type:function size:0x27C scope:local +mcmdSetPanning = .text:0x80100CC8; // type:function size:0x9C scope:local +mcmdSetSurroundPanning = .text:0x80100D64; // type:function size:0x9C scope:local +mcmdScaleVolume = .text:0x80100E00; // type:function size:0x134 scope:local +mcmdEnvelope = .text:0x80100F34; // type:function size:0x130 scope:local +mcmdFadeIn = .text:0x80101064; // type:function size:0x13C scope:local +mcmdRandomKey = .text:0x801011A0; // type:function size:0x19C scope:local +mcmdVolumeSelect = .text:0x8010133C; // type:function size:0x104 scope:local +mcmdPanningSelect = .text:0x80101440; // type:function size:0x104 scope:local +mcmdPitchWheelSelect = .text:0x80101544; // type:function size:0x104 scope:local +mcmdModWheelSelect = .text:0x80101648; // type:function size:0x104 scope:local +mcmdPedalSelect = .text:0x8010174C; // type:function size:0x104 scope:local +mcmdPortamentoSelect = .text:0x80101850; // type:function size:0x104 scope:local +mcmdReverbSelect = .text:0x80101954; // type:function size:0x104 scope:local +mcmdPreAuxASelect = .text:0x80101A58; // type:function size:0x104 scope:local +mcmdPreAuxBSelect = .text:0x80101B5C; // type:function size:0x104 scope:local +mcmdPostAuxBSelect = .text:0x80101C60; // type:function size:0x104 scope:local +mcmdSurroundPanningSelect = .text:0x80101D64; // type:function size:0x104 scope:local +mcmdDopplerSelect = .text:0x80101E68; // type:function size:0x104 scope:local +mcmdTremoloSelect = .text:0x80101F6C; // type:function size:0x104 scope:local +mcmdAuxAFXSelect = .text:0x80102070; // type:function size:0x17C scope:local +mcmdAuxBFXSelect = .text:0x801021EC; // type:function size:0x17C scope:local +mcmdPortamento = .text:0x80102368; // type:function size:0x164 scope:local +varGet = .text:0x801024CC; // type:function size:0x68 +mcmdVarCalculation = .text:0x80102534; // type:function size:0x220 scope:local +mcmdIfVarCompare = .text:0x80102754; // type:function size:0x14C scope:local +macPostMessage = .text:0x801028A0; // type:function size:0xBC +mcmdSendMessage = .text:0x8010295C; // type:function size:0x244 scope:local +mcmdGetVID = .text:0x80102BA0; // type:function size:0x80 scope:local +mcmdSetKeyGroup = .text:0x80102C20; // type:function size:0xDC scope:local +macHandleActive = .text:0x80102CFC; // type:function size:0xF58 scope:local +macHandle = .text:0x80103C54; // type:function size:0x150 +macSampleEndNotify = .text:0x80103DA4; // type:function size:0xAC +macSetExternalKeyoff = .text:0x80103E50; // type:function size:0xF0 +macSetPedalState = .text:0x80103F40; // type:function size:0x108 +TimeQueueAdd = .text:0x80104048; // type:function size:0xA4 scope:local +macMakeActive = .text:0x801040EC; // type:function size:0x108 +macMakeInactive = .text:0x801041F4; // type:function size:0xFC +macStart = .text:0x801042F0; // type:function size:0x438 +macInit = .text:0x80104728; // type:function size:0x68 +vidInit = .text:0x80104790; // type:function size:0xE0 +vidRemoveVoiceReferences = .text:0x80104870; // type:function size:0x350 +vidMakeRoot = .text:0x80104BC0; // type:function size:0x14 +vidMakeNew = .text:0x80104BD4; // type:function size:0x104 +vidGetInternalId = .text:0x80104CD8; // type:function size:0x50 +voiceSetPriority = .text:0x80104D28; // type:function size:0x24C +voiceAllocate = .text:0x80104F74; // type:function size:0x460 +voiceFree = .text:0x801053D4; // type:function size:0x1C4 +synthInitAllocationAids = .text:0x80105598; // type:function size:0x2A0 +voiceBlock = .text:0x80105838; // type:function size:0xFC +voiceUnblock = .text:0x80105934; // type:function size:0x218 +voiceKill = .text:0x80105B4C; // type:function size:0x234 +voiceKillSound = .text:0x80105D80; // type:function size:0xC4 +synthKillVoicesByMacroReferences = .text:0x80105E44; // type:function size:0x15C +voiceIsLastStarted = .text:0x80105FA0; // type:function size:0x74 +voiceSetLastStarted = .text:0x80106014; // type:function size:0x54 +voiceResetLastStarted = .text:0x80106068; // type:function size:0x74 +voiceInitLastStarted = .text:0x801060DC; // type:function size:0x144 +sndPitchUpOne = .text:0x80106220; // type:function size:0x3C +sndGetPitch = .text:0x8010625C; // type:function size:0xE4 +adsrConvertTimeCents = .text:0x80106340; // type:function size:0x58 +salChangeADSRState = .text:0x80106398; // type:function size:0x26C +adsrSetup = .text:0x80106604; // type:function size:0x28 +adsrStartRelease = .text:0x8010662C; // type:function size:0x150 +adsrRelease = .text:0x8010677C; // type:function size:0x168 +adsrHandle = .text:0x801068E4; // type:function size:0x198 +adsrHandleLowPrecision = .text:0x80106A7C; // type:function size:0x84 +vsInit = .text:0x80106B00; // type:function size:0xBC +vsSampleStartNotify = .text:0x80106BBC; // type:function size:0x248 +vsSampleEndNotify = .text:0x80106E04; // type:function size:0xA8 +vsUpdateBuffer = .text:0x80106EAC; // type:function size:0x1F8 +vsSampleUpdates = .text:0x801070A4; // type:function size:0x1E4 +dataInitStack = .text:0x80107288; // type:function size:0xC +InsertData = .text:0x80107294; // type:function size:0x27C scope:local +sndPushGroup = .text:0x80107510; // type:function size:0x32C +sndPopGroup = .text:0x8010783C; // type:function size:0x33C +seqPlaySong = .text:0x80107B78; // type:function size:0x14C +sndSeqPlayEx = .text:0x80107CC4; // type:function size:0x11C +salInitDspCtrl = .text:0x80107DE0; // type:function size:0x3B4 +salInitHRTFBuffer = .text:0x80108194; // type:function size:0x38 +salExitDspCtrl = .text:0x801081CC; // type:function size:0xE0 +salActivateStudio = .text:0x801082AC; // type:function size:0x150 +salDeactivateStudio = .text:0x801083FC; // type:function size:0x20 +salCheckVolErrorAndResetDelta = .text:0x8010841C; // type:function size:0xF4 +sal_setup_dspvol = .text:0x80108510; // type:function size:0x48 scope:local +sal_update_hostplayinfo = .text:0x80108558; // type:function size:0x74 scope:local +DoDepopFade = .text:0x801085CC; // type:function size:0xAC scope:local +HandleDepopVoice = .text:0x80108678; // type:function size:0x2DC scope:local +SortVoices = .text:0x80108954; // type:function size:0x258 scope:local +salBuildCommandList = .text:0x80108BAC; // type:function size:0x21B8 +salSynthSendMessage = .text:0x8010AD64; // type:function size:0x44 +salActivateVoice = .text:0x8010ADA8; // type:function size:0xA0 +salDeactivateVoice = .text:0x8010AE48; // type:function size:0x60 +salReconnectVoice = .text:0x8010AEA8; // type:function size:0xC8 +salAddStudioInput = .text:0x8010AF70; // type:function size:0xA8 +salRemoveStudioInput = .text:0x8010B018; // type:function size:0x84 +salHandleAuxProcessing = .text:0x8010B09C; // type:function size:0x158 +salCalcVolume = .text:0x8010B1F4; // type:function size:0x6F0 +CheckRoomStatus = .text:0x8010B8E4; // type:function size:0x4B4 scope:local +CalcEmitter = .text:0x8010BD98; // type:function size:0x51C scope:local +sndUpdateEmitter = .text:0x8010C2B4; // type:function size:0x130 +sndCheckEmitter = .text:0x8010C3E4; // type:function size:0x20 +AddEmitter = .text:0x8010C404; // type:function size:0x3F8 scope:local +sndAddEmitterParaEx = .text:0x8010C7FC; // type:function size:0x50 +sndRemoveEmitter = .text:0x8010C84C; // type:function size:0xA8 +sndEmitterVoiceID = .text:0x8010C8F4; // type:function size:0x5C +s3dKillEmitterByFXID = .text:0x8010C950; // type:function size:0xFC +sndUpdateListener = .text:0x8010CA4C; // type:function size:0x204 +sndAddListenerEx = .text:0x8010CC50; // type:function size:0x230 +sndRemoveListener = .text:0x8010CE80; // type:function size:0xD0 +AddStartingEmitter = .text:0x8010CF50; // type:function size:0x14C scope:local +StartContinousEmitters = .text:0x8010D09C; // type:function size:0x3B0 scope:local +s3dHandle = .text:0x8010D44C; // type:function size:0x82C +s3dInit = .text:0x8010DC78; // type:function size:0x38 +s3dExit = .text:0x8010DCB0; // type:function size:0x4 +sndInit = .text:0x8010DCB4; // type:function size:0x118 +sndQuit = .text:0x8010DDCC; // type:function size:0x34 +sndIsInstalled = .text:0x8010DE00; // type:function size:0x8 +salApplyMatrix = .text:0x8010DE08; // type:function size:0xAC +salNormalizeVector = .text:0x8010DEB4; // type:function size:0xB4 +salCrossProduct = .text:0x8010DF68; // type:function size:0x64 +salInvertMatrix = .text:0x8010DFCC; // type:function size:0x1FC +inpSetGlobalMIDIDirtyFlag = .text:0x8010E1C8; // type:function size:0x24 +inpSetMidiCtrl = .text:0x8010E1EC; // type:function size:0x608 +inpSetMidiCtrl14 = .text:0x8010E7F4; // type:function size:0x124 +inpResetMidiCtrl = .text:0x8010E918; // type:function size:0xF0 +inpGetMidiCtrl = .text:0x8010EA08; // type:function size:0x2C4 +inpGetChannelDefaults = .text:0x8010ECCC; // type:function size:0x34 +inpResetChannelDefaults = .text:0x8010ED00; // type:function size:0x3C +inpAddCtrl = .text:0x8010ED3C; // type:function size:0x98 +inpFXCopyCtrl = .text:0x8010EDD4; // type:function size:0x114 +inpSetMidiLastNote = .text:0x8010EEE8; // type:function size:0x3C +inpGetMidiLastNote = .text:0x8010EF24; // type:function size:0x3C +_GetInputValue = .text:0x8010EF60; // type:function size:0x4A0 scope:local +inpGetVolume = .text:0x8010F400; // type:function size:0x48 +inpGetPanning = .text:0x8010F448; // type:function size:0x48 +inpGetSurPanning = .text:0x8010F490; // type:function size:0x48 +inpGetPitchBend = .text:0x8010F4D8; // type:function size:0x48 +inpGetDoppler = .text:0x8010F520; // type:function size:0x48 +inpGetModulation = .text:0x8010F568; // type:function size:0x48 +inpGetPedal = .text:0x8010F5B0; // type:function size:0x48 +inpGetPreAuxA = .text:0x8010F5F8; // type:function size:0x48 +inpGetReverb = .text:0x8010F640; // type:function size:0x48 +inpGetPreAuxB = .text:0x8010F688; // type:function size:0x48 +inpGetPostAuxB = .text:0x8010F6D0; // type:function size:0x48 +inpGetTremolo = .text:0x8010F718; // type:function size:0x48 +inpGetAuxA = .text:0x8010F760; // type:function size:0xB4 +inpGetAuxB = .text:0x8010F814; // type:function size:0xB4 +inpInit = .text:0x8010F8C8; // type:function size:0x284 +inpTranslateExCtrl = .text:0x8010FB4C; // type:function size:0x70 +inpGetExCtrl = .text:0x8010FBBC; // type:function size:0xFC +inpSetExCtrl = .text:0x8010FCB8; // type:function size:0x1E4 +sndRand = .text:0x8010FE9C; // type:function size:0x1C +sndSin = .text:0x8010FEB8; // type:function size:0x8C +sndBSearch = .text:0x8010FF44; // type:function size:0xA4 +sndConvertMs = .text:0x8010FFE8; // type:function size:0x10 +sndConvertTicks = .text:0x8010FFF8; // type:function size:0x48 +sndConvert2Ms = .text:0x80110040; // type:function size:0x8 +snd_handle_irq = .text:0x80110048; // type:function size:0x154 scope:local +hwInit = .text:0x8011019C; // type:function size:0xB8 +hwExit = .text:0x80110254; // type:function size:0x34 +hwSetTimeOffset = .text:0x80110288; // type:function size:0x8 +hwGetTimeOffset = .text:0x80110290; // type:function size:0x8 +hwIsActive = .text:0x80110298; // type:function size:0x20 +hwSetMesgCallback = .text:0x801102B8; // type:function size:0x8 +hwSetPriority = .text:0x801102C0; // type:function size:0x14 +hwInitSamplePlayback = .text:0x801102D4; // type:function size:0x1B4 +hwBreak = .text:0x80110488; // type:function size:0x50 +hwSetADSR = .text:0x801104D8; // type:function size:0x1AC +hwSetVirtualSampleLoopBuffer = .text:0x80110684; // type:function size:0x20 +hwGetVirtualSampleState = .text:0x801106A4; // type:function size:0x14 +hwGetSampleType = .text:0x801106B8; // type:function size:0x14 +hwGetSampleID = .text:0x801106CC; // type:function size:0x14 +hwSetStreamLoopPS = .text:0x801106E0; // type:function size:0x14 +hwStart = .text:0x801106F4; // type:function size:0x3C +hwKeyOff = .text:0x80110730; // type:function size:0x28 +hwSetPitch = .text:0x80110758; // type:function size:0x78 +hwSetSRCType = .text:0x801107D0; // type:function size:0x2C +hwSetPolyPhaseFilter = .text:0x801107FC; // type:function size:0x2C +hwSetITDMode = .text:0x80110828; // type:function size:0x5C +hwSetVolume = .text:0x80110884; // type:function size:0x2C0 +hwOff = .text:0x80110B44; // type:function size:0x2C +hwSetAUXProcessingCallbacks = .text:0x80110B70; // type:function size:0x28 +hwActivateStudio = .text:0x80110B98; // type:function size:0x20 +hwDeactivateStudio = .text:0x80110BB8; // type:function size:0x20 +hwAddInput = .text:0x80110BD8; // type:function size:0x34 +hwRemoveInput = .text:0x80110C0C; // type:function size:0x34 +hwChangeStudio = .text:0x80110C40; // type:function size:0x2C +hwGetPos = .text:0x80110C6C; // type:function size:0xA4 +hwFlushStream = .text:0x80110D10; // type:function size:0x90 +hwInitStream = .text:0x80110DA0; // type:function size:0x20 +hwExitStream = .text:0x80110DC0; // type:function size:0x20 +hwGetStreamPlayBuffer = .text:0x80110DE0; // type:function size:0x24 +hwTransAddr = .text:0x80110E04; // type:function size:0x4 +hwFrq2Pitch = .text:0x80110E08; // type:function size:0x5C +hwInitSampleMem = .text:0x80110E64; // type:function size:0x24 +hwExitSampleMem = .text:0x80110E88; // type:function size:0x20 +hwSaveSample = .text:0x80110EA8; // type:function size:0x94 +hwRemoveSample = .text:0x80110F3C; // type:function size:0x84 +hwSyncSampleMem = .text:0x80110FC0; // type:function size:0x20 +hwFrameDone = .text:0x80110FE0; // type:function size:0x4 +sndSetHooks = .text:0x80110FE4; // type:function size:0x14 +hwDisableHRTF = .text:0x80110FF8; // type:function size:0xC +hwGetVirtualSampleID = .text:0x80111004; // type:function size:0x28 +hwVoiceInStartup = .text:0x8011102C; // type:function size:0x20 +aramQueueCallback = .text:0x8011104C; // type:function size:0xA0 +aramUploadData = .text:0x801110EC; // type:function size:0x1DC +aramSyncTransferQueue = .text:0x801112C8; // type:function size:0x18 +aramInit = .text:0x801112E0; // type:function size:0x2EC +aramExit = .text:0x801115CC; // type:function size:0x4 +aramGetZeroBuffer = .text:0x801115D0; // type:function size:0x20 +aramStoreData = .text:0x801115F0; // type:function size:0x3BC +aramRemoveData = .text:0x801119AC; // type:function size:0x18 +InitStreamBuffers = .text:0x801119C4; // type:function size:0xC4 scope:local +aramAllocateStreamBuffer = .text:0x80111A88; // type:function size:0x108 +aramGetStreamBufferAddress = .text:0x80111B90; // type:function size:0x38 +aramFreeStreamBuffer = .text:0x80111BC8; // type:function size:0xF8 +salCallback = .text:0x80111CC0; // type:function size:0xA8 scope:local +dspInitCallback = .text:0x80111D68; // type:function size:0x10 scope:local +dspResumeCallback = .text:0x80111D78; // type:function size:0x64 scope:local +salInitAi = .text:0x80111DDC; // type:function size:0xC8 +salStartAi = .text:0x80111EA4; // type:function size:0x20 +salExitAi = .text:0x80111EC4; // type:function size:0x34 +salAiGetDest = .text:0x80111EF8; // type:function size:0x30 +salInitDsp = .text:0x80111F28; // type:function size:0xBC +salExitDsp = .text:0x80111FE4; // type:function size:0x34 +salCtrlDsp = .text:0x80112018; // type:function size:0x74 +salGetStartDelay = .text:0x8011208C; // type:function size:0x4C +hwInitIrq = .text:0x801120D8; // type:function size:0x2C +hwExitIrq = .text:0x80112104; // type:function size:0x4 +hwEnableIrq = .text:0x80112108; // type:function size:0x38 +hwDisableIrq = .text:0x80112140; // type:function size:0x38 +hwIRQEnterCritical = .text:0x80112178; // type:function size:0x20 +hwIRQLeaveCritical = .text:0x80112198; // type:function size:0x20 +salMalloc = .text:0x801121B8; // type:function size:0x28 +salFree = .text:0x801121E0; // type:function size:0x2C +sndAuxCallbackReverbSTD = .text:0x8011220C; // type:function size:0x5C +sndAuxCallbackPrepareReverbSTD = .text:0x80112268; // type:function size:0x3C +sndAuxCallbackShutdownReverbSTD = .text:0x801122A4; // type:function size:0x24 +ReverbSTDCreate = .text:0x801122C8; // type:function size:0x428 +fn_801126F0 = .text:0x801126F0; // type:function size:0x3B4 scope:local +ReverbSTDCallback = .text:0x80112AA4; // type:function size:0x24 +ReverbSTDFree = .text:0x80112AC8; // type:function size:0xBC +sndAuxCallbackReverbHI = .text:0x80112B84; // type:function size:0x5C +sndAuxCallbackPrepareReverbHI = .text:0x80112BE0; // type:function size:0x40 +sndAuxCallbackShutdownReverbHI = .text:0x80112C20; // type:function size:0x24 +ReverbHICreate = .text:0x80112C44; // type:function size:0x50C +DoCrossTalk = .text:0x80113150; // type:function size:0x190 scope:local +HandleReverb = .text:0x801132E0; // type:function size:0x50C +ReverbHICallback = .text:0x801137EC; // type:function size:0xE0 +ReverbHIFree = .text:0x801138CC; // type:function size:0xBC +sndAuxCallbackDelay = .text:0x80113988; // type:function size:0x168 +sndAuxCallbackUpdateSettingsDelay = .text:0x80113AF0; // type:function size:0x1D0 +sndAuxCallbackPrepareDelay = .text:0x80113CC0; // type:function size:0x28 +sndAuxCallbackShutdownDelay = .text:0x80113CE8; // type:function size:0x4C +do_src1 = .text:0x80113D34; // type:function size:0x198 scope:local +do_src2 = .text:0x80113ECC; // type:function size:0x1EC scope:local +sndAuxCallbackChorus = .text:0x801140B8; // type:function size:0x2BC +sndAuxCallbackPrepareChorus = .text:0x80114374; // type:function size:0x200 +sndAuxCallbackShutdownChorus = .text:0x80114574; // type:function size:0x28 DBClose = .text:0x8011459C; // type:function size:0x4 scope:global DBOpen = .text:0x801145A0; // type:function size:0x4 scope:global DBWrite = .text:0x801145A4; // type:function size:0x260 scope:global @@ -3478,13 +3478,13 @@ DBRead = .text:0x80114804; // type:function size:0x8C scope:global DBQueryData = .text:0x80114890; // type:function size:0x9C scope:global DBInitInterrupts = .text:0x8011492C; // type:function size:0x54 scope:global DBInitComm = .text:0x80114980; // type:function size:0x78 scope:global -fn_801149F8 = .text:0x801149F8; // type:function size:0x40 -fn_80114A38 = .text:0x80114A38; // type:function size:0x3C -fn_80114A74 = .text:0x80114A74; // type:function size:0xAC -fn_80114B20 = .text:0x80114B20; // type:function size:0xDC -fn_80114BFC = .text:0x80114BFC; // type:function size:0xDC -fn_80114CD8 = .text:0x80114CD8; // type:function size:0xAC -fn_80114D84 = .text:0x80114D84; // type:function size:0x298 +DBGHandler = .text:0x801149F8; // type:function size:0x40 +MWCallback = .text:0x80114A38; // type:function size:0x3C +DBGReadStatus = .text:0x80114A74; // type:function size:0xAC +DBGWrite = .text:0x80114B20; // type:function size:0xDC +DBGRead = .text:0x80114BFC; // type:function size:0xDC +DBGReadMailbox = .text:0x80114CD8; // type:function size:0xAC +DBGEXIImm = .text:0x80114D84; // type:function size:0x298 EXI2_Init = .text:0x8011501C; // type:function size:0x4 scope:global EXI2_EnableInterrupts = .text:0x80115020; // type:function size:0x4 scope:global EXI2_Poll = .text:0x80115024; // type:function size:0x8 scope:global @@ -3494,95 +3494,95 @@ EXI2_Reserve = .text:0x8011503C; // type:function size:0x4 scope:global EXI2_Unreserve = .text:0x80115040; // type:function size:0x4 scope:global AMC_IsStub = .text:0x80115044; // type:function size:0x8 scope:global Hu_IsStub = .text:0x8011504C; // type:function size:0x8 scope:weak -fn_80115054 = .text:0x80115054; // type:function size:0x10 -fn_80115064 = .text:0x80115064; // type:function size:0x34 -fn_80115098 = .text:0x80115098; // type:function size:0x6C -fn_80115104 = .text:0x80115104; // type:function size:0x27C -fn_80115380 = .text:0x80115380; // type:function size:0x15C -fn_801154DC = .text:0x801154DC; // type:function size:0xB4 -fn_80115590 = .text:0x80115590; // type:function size:0x31C -fn_801158AC = .text:0x801158AC; // type:function size:0x48 -fn_801158F4 = .text:0x801158F4; // type:function size:0x48 -fn_8011593C = .text:0x8011593C; // type:function size:0x68 -fn_801159A4 = .text:0x801159A4; // type:function size:0xD8 -fn_80115A7C = .text:0x80115A7C; // type:function size:0xFC -fn_80115B78 = .text:0x80115B78; // type:function size:0x4 -fn_80115B7C = .text:0x80115B7C; // type:function size:0x14 -fn_80115B90 = .text:0x80115B90; // type:function size:0xD8 -fn_80115C68 = .text:0x80115C68; // type:function size:0x114 -fn_80115D7C = .text:0x80115D7C; // type:function size:0x28 -fn_80115DA4 = .text:0x80115DA4; // type:function size:0x140 -fn_80115EE4 = .text:0x80115EE4; // type:function size:0x28C -fn_80116170 = .text:0x80116170; // type:function size:0x298 -fn_80116408 = .text:0x80116408; // type:function size:0x3F0 -fn_801167F8 = .text:0x801167F8; // type:function size:0x3B4 -fn_80116BAC = .text:0x80116BAC; // type:function size:0x278 -fn_80116E24 = .text:0x80116E24; // type:function size:0x20 -fn_80116E44 = .text:0x80116E44; // type:function size:0x474 -fn_801172B8 = .text:0x801172B8; // type:function size:0xC8 -fn_80117380 = .text:0x80117380; // type:function size:0x104 -fn_80117484 = .text:0x80117484; // type:function size:0x64 -fn_801174E8 = .text:0x801174E8; // type:function size:0x30 -fn_80117518 = .text:0x80117518; // type:function size:0x34 -fn_8011754C = .text:0x8011754C; // type:function size:0x2C -fn_80117578 = .text:0x80117578; // type:function size:0x60 -fn_801175D8 = .text:0x801175D8; // type:function size:0x154 -fn_8011772C = .text:0x8011772C; // type:function size:0x174 -fn_801178A0 = .text:0x801178A0; // type:function size:0x1BC -fn_80117A5C = .text:0x80117A5C; // type:function size:0x4 -fn_80117A60 = .text:0x80117A60; // type:function size:0x1CC -fn_80117C2C = .text:0x80117C2C; // type:function size:0x9C -fn_80117CC8 = .text:0x80117CC8; // type:function size:0x38 -fn_80117D00 = .text:0x80117D00; // type:function size:0x3C -fn_80117D3C = .text:0x80117D3C; // type:function size:0x30 -fn_80117D6C = .text:0x80117D6C; // type:function size:0x16C -fn_80117ED8 = .text:0x80117ED8; // type:function size:0x88 -fn_80117F60 = .text:0x80117F60; // type:function size:0x74 -fn_80117FD4 = .text:0x80117FD4; // type:function size:0x134 -fn_80118108 = .text:0x80118108; // type:function size:0xCC -fn_801181D4 = .text:0x801181D4; // type:function size:0x328 -fn_801184FC = .text:0x801184FC; // type:function size:0x174 -fn_80118670 = .text:0x80118670; // type:function size:0x250 -fn_801188C0 = .text:0x801188C0; // type:function size:0x184 -fn_80118A44 = .text:0x80118A44; // type:function size:0x270 -fn_80118CB4 = .text:0x80118CB4; // type:function size:0x30 -fn_80118CE4 = .text:0x80118CE4; // type:function size:0x4C -fn_80118D30 = .text:0x80118D30; // type:function size:0xD8 -fn_80118E08 = .text:0x80118E08; // type:function size:0x13C -fn_80118F44 = .text:0x80118F44; // type:function size:0x74 -fn_80118FB8 = .text:0x80118FB8; // type:function size:0x38 -fn_80118FF0 = .text:0x80118FF0; // type:function size:0x60 -fn_80119050 = .text:0x80119050; // type:function size:0x30 -fn_80119080 = .text:0x80119080; // type:function size:0x320 -fn_801193A0 = .text:0x801193A0; // type:function size:0x80 -fn_80119420 = .text:0x80119420; // type:function size:0x168 -fn_80119588 = .text:0x80119588; // type:function size:0xFC -fn_80119684 = .text:0x80119684; // type:function size:0x480 -fn_80119B04 = .text:0x80119B04; // type:function size:0x130 -fn_80119C34 = .text:0x80119C34; // type:function size:0xC8 -fn_80119CFC = .text:0x80119CFC; // type:function size:0x118 -fn_80119E14 = .text:0x80119E14; // type:function size:0xE0 -fn_80119EF4 = .text:0x80119EF4; // type:function size:0x204 -fn_8011A0F8 = .text:0x8011A0F8; // type:function size:0x88 -fn_8011A180 = .text:0x8011A180; // type:function size:0x8C -fn_8011A20C = .text:0x8011A20C; // type:function size:0x114 -fn_8011A320 = .text:0x8011A320; // type:function size:0x68 -fn_8011A388 = .text:0x8011A388; // type:function size:0x10C -fn_8011A494 = .text:0x8011A494; // type:function size:0x2A8 -fn_8011A73C = .text:0x8011A73C; // type:function size:0x2B8 -fn_8011A9F4 = .text:0x8011A9F4; // type:function size:0x1AC -fn_8011ABA0 = .text:0x8011ABA0; // type:function size:0x2E8 -fn_8011AE88 = .text:0x8011AE88; // type:function size:0x33C -fn_8011B1C4 = .text:0x8011B1C4; // type:function size:0x13C -fn_8011B300 = .text:0x8011B300; // type:function size:0xE0 -fn_8011B3E0 = .text:0x8011B3E0; // type:function size:0x448 -fn_8011B828 = .text:0x8011B828; // type:function size:0x2DC -fn_8011BB04 = .text:0x8011BB04; // type:function size:0xD0 -fn_8011BBD4 = .text:0x8011BBD4; // type:function size:0x320 -fn_8011BEF4 = .text:0x8011BEF4; // type:function size:0x4A8 -fn_8011C39C = .text:0x8011C39C; // type:function size:0x188 -fn_8011C524 = .text:0x8011C524; // type:function size:0x17C -fn_8011C6A0 = .text:0x8011C6A0; // type:function size:0x214 +HuSetVecF = .text:0x80115054; // type:function size:0x10 +HuSubVecF = .text:0x80115064; // type:function size:0x34 +msmSysServer = .text:0x80115098; // type:function size:0x6C scope:local +msmSysSetAuxParam = .text:0x80115104; // type:function size:0x27C scope:local +msmSysLoadBaseGroup = .text:0x80115380; // type:function size:0x15C scope:local +msmSysSearchGroupStack = .text:0x801154DC; // type:function size:0xB4 scope:local +msmSysGroupInit = .text:0x80115590; // type:function size:0x31C scope:local +msmSysIrqDisable = .text:0x801158AC; // type:function size:0x48 +msmSysIrqEnable = .text:0x801158F4; // type:function size:0x48 +msmSysCheckBaseGroup = .text:0x8011593C; // type:function size:0x68 +msmSysGetGroupDataPtr = .text:0x801159A4; // type:function size:0xD8 +msmSysCheckLoadGroupID = .text:0x80115A7C; // type:function size:0xFC +msmSysRegularProc = .text:0x80115B78; // type:function size:0x4 +msmSysGetOutputMode = .text:0x80115B7C; // type:function size:0x14 +msmSysSetOutputMode = .text:0x80115B90; // type:function size:0xD8 +msmSysSetAux = .text:0x80115C68; // type:function size:0x114 +msmSysGetSampSize = .text:0x80115D7C; // type:function size:0x28 +msmSysDelGroupAll = .text:0x80115DA4; // type:function size:0x140 +msmSysDelGroupBase = .text:0x80115EE4; // type:function size:0x28C +msmSysLoadGroupBase = .text:0x80116170; // type:function size:0x298 +msmSysLoadGroupSet = .text:0x80116408; // type:function size:0x3F0 +msmSysLoadGroupSub = .text:0x801167F8; // type:function size:0x3B4 +msmSysLoadGroup = .text:0x80116BAC; // type:function size:0x278 +msmSysCheckInit = .text:0x80116E24; // type:function size:0x20 +msmSysInit = .text:0x80116E44; // type:function size:0x474 +msmMemFree = .text:0x801172B8; // type:function size:0xC8 +msmMemAlloc = .text:0x80117380; // type:function size:0x104 +msmMemInit = .text:0x80117484; // type:function size:0x64 +msmFioClose = .text:0x801174E8; // type:function size:0x30 +msmFioRead = .text:0x80117518; // type:function size:0x34 +msmFioOpen = .text:0x8011754C; // type:function size:0x2C +msmFioInit = .text:0x80117578; // type:function size:0x60 +msmMusPauseSub = .text:0x801175D8; // type:function size:0x154 scope:local +msmMusPauseFade = .text:0x8011772C; // type:function size:0x174 scope:local +msmMusFade = .text:0x801178A0; // type:function size:0x1BC scope:local +msmMusFdoutEnd = .text:0x80117A5C; // type:function size:0x4 +msmMusPeriodicProc = .text:0x80117A60; // type:function size:0x1CC +msmMusGetMidiCtrl = .text:0x80117C2C; // type:function size:0x9C +msmMusGetNumPlay = .text:0x80117CC8; // type:function size:0x38 +msmMusGetStatus = .text:0x80117D00; // type:function size:0x3C +msmMusSetMasterVolume = .text:0x80117D3C; // type:function size:0x30 +msmMusSetParam = .text:0x80117D6C; // type:function size:0x16C +msmMusPauseAll = .text:0x80117ED8; // type:function size:0x88 +msmMusPause = .text:0x80117F60; // type:function size:0x74 +msmMusStopAll = .text:0x80117FD4; // type:function size:0x134 +msmMusStop = .text:0x80118108; // type:function size:0xCC +msmMusPlay = .text:0x801181D4; // type:function size:0x328 +msmMusInit = .text:0x801184FC; // type:function size:0x174 +msmSeFade = .text:0x80118670; // type:function size:0x250 scope:local +msmSePauseSub = .text:0x801188C0; // type:function size:0x184 scope:local +msmSePeriodicProc = .text:0x80118A44; // type:function size:0x270 +msmSeGetIndexPtr = .text:0x80118CB4; // type:function size:0x30 +msmSeDelListener = .text:0x80118CE4; // type:function size:0x4C +msmSeUpdataListener = .text:0x80118D30; // type:function size:0xD8 +msmSeSetListener = .text:0x80118E08; // type:function size:0x13C +msmSeGetEntryID = .text:0x80118F44; // type:function size:0x74 +msmSeGetNumPlay = .text:0x80118FB8; // type:function size:0x38 +msmSeGetStatus = .text:0x80118FF0; // type:function size:0x60 +msmSeSetMasterVolume = .text:0x80119050; // type:function size:0x30 +msmSeSetParam = .text:0x80119080; // type:function size:0x320 +msmSePauseAll = .text:0x801193A0; // type:function size:0x80 +msmSeStopAll = .text:0x80119420; // type:function size:0x168 +msmSeStop = .text:0x80119588; // type:function size:0xFC +msmSePlay = .text:0x80119684; // type:function size:0x480 +msmSeInit = .text:0x80119B04; // type:function size:0x130 +msmStreamGetStatus = .text:0x80119C34; // type:function size:0xC8 +msmStreamSetMasterVolume = .text:0x80119CFC; // type:function size:0x118 +msmStreamStopAll = .text:0x80119E14; // type:function size:0xE0 +msmStreamStop = .text:0x80119EF4; // type:function size:0x204 +msmStreamPlay = .text:0x8011A0F8; // type:function size:0x88 +msmStreamPeriodicProc = .text:0x8011A180; // type:function size:0x8C +msmStreamSetOutputMode = .text:0x8011A20C; // type:function size:0x114 +msmStreamAmemFree = .text:0x8011A320; // type:function size:0x68 +msmStreamAmemAlloc = .text:0x8011A388; // type:function size:0x10C +msmStreamInit = .text:0x8011A494; // type:function size:0x2A8 +msmStreamPauseOff = .text:0x8011A73C; // type:function size:0x2B8 +msmStreamPauseOn = .text:0x8011A9F4; // type:function size:0x1AC +msmStreamPauseFade = .text:0x8011ABA0; // type:function size:0x2E8 +msmStreamFade = .text:0x8011AE88; // type:function size:0x33C +msmStreamStopSub = .text:0x8011B1C4; // type:function size:0x13C scope:local +msmStreamSetParamSub = .text:0x8011B300; // type:function size:0xE0 scope:local +msmStreamPackStartStereo = .text:0x8011B3E0; // type:function size:0x448 +msmStreamPackStartMono = .text:0x8011B828; // type:function size:0x2DC +msmStreamSlotOff = .text:0x8011BB04; // type:function size:0xD0 +msmStreamData = .text:0x8011BBD4; // type:function size:0x320 scope:local +msmStreamDvdCallback = .text:0x8011BEF4; // type:function size:0x4A8 scope:local +msmStreamDvdCallback2 = .text:0x8011C39C; // type:function size:0x188 scope:local +msmStreamUpdateFunc = .text:0x8011C524; // type:function size:0x17C scope:local +msmStreamSlotInit = .text:0x8011C6A0; // type:function size:0x214 scope:local _kerent = .text:0x8011C8B4; // type:function size:0xFE4 _ctors = .ctors:0x8011D8A0; // type:label scope:global data:4byte __init_cpp_exceptions_reference = .ctors:0x8011D8A0; // type:object size:0x4 scope:global From 5cdbb462cd4d7e3150d8d742f22b8f39b7dfbed1 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Fri, 15 Nov 2024 20:26:30 +0100 Subject: [PATCH 173/311] Did Japanese DOL splits till game/data.c --- config/GMPE01_00/symbols.txt | 12 +- config/GMPE01_01/symbols.txt | 12 +- config/GMPJ01_00/config.yml | 990 +++++++++++++++++------------------ config/GMPJ01_00/splits.txt | 26 + config/GMPJ01_00/symbols.txt | 662 +++++++++++------------ 5 files changed, 864 insertions(+), 838 deletions(-) diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index ff55eea2..2f4b3fe1 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -3680,7 +3680,7 @@ pbOffsets$890 = .rodata:0x8011EBA0; // type:object size:0x18 scope:local inpColdMIDIDefaults = .rodata:0x8011EBB8; // type:object size:0x88 scope:local inpWarmMIDIDefaults = .rodata:0x8011EC40; // type:object size:0x88 scope:local data:byte itdOffTab = .rodata:0x8011ECC8; // type:object size:0x100 scope:local -lbl_8011EDE0 = .data:0x8011EDE0; // type:object size:0x10 data:string +lbl_8011EDE0 = .data:0x8011EDE0; // type:object size:0x10 scope:local data:string chanTbl = .data:0x8011EDF0; // type:object size:0x10 scope:local correctDiskID = .data:0x8011EE00; // type:object size:0x124 scope:local jumptable_8011EF24 = .data:0x8011EF24; // type:object size:0x34 scope:local @@ -4848,11 +4848,11 @@ fio = .bss:0x801D3150; // type:object size:0xC scope:local data:4byte mus = .bss:0x801D3160; // type:object size:0x178 scope:local data:2byte se = .bss:0x801D32D8; // type:object size:0xDC scope:local data:4byte StreamInfo = .bss:0x801D33C0; // type:object size:0x60 scope:local align:32 data:4byte -lbl_801D3420 = .sdata:0x801D3420; // type:object size:0x5 data:string -lbl_801D3425 = .sdata:0x801D3425; // type:object size:0x7 +lbl_801D3420 = .sdata:0x801D3420; // type:object size:0x5 scope:local data:string +lbl_801D3425 = .sdata:0x801D3425; // type:object size:0x7 scope:local rnd_seed = .sdata:0x801D342C; // type:object size:0x4 data:4byte -lbl_801D3430 = .sdata:0x801D3430; // type:object size:0x6 data:string -lbl_801D3436 = .sdata:0x801D3436; // type:object size:0x2 data:string +lbl_801D3430 = .sdata:0x801D3430; // type:object size:0x6 scope:local data:string +lbl_801D3436 = .sdata:0x801D3436; // type:object size:0x2 scope:local data:string lbl_801D3438 = .sdata:0x801D3438; // type:object size:0x7 data:string lbl_801D343F = .sdata:0x801D343F; // type:object size:0x9 FirstFrame = .sdata:0x801D3448; // type:object size:0x4 scope:local data:4byte @@ -6021,7 +6021,7 @@ SendMailData = .sbss:0x801D4940; // type:object size:0x4 scope:local data:4byte RecvDataLeng = .sbss:0x801D4944; // type:object size:0x4 scope:local data:4byte pEXIInputFlag = .sbss:0x801D4948; // type:object size:0x4 scope:local data:4byte EXIInputFlag = .sbss:0x801D494C; // type:object size:0x1 scope:local data:byte -lbl_801D4960 = .sdata2:0x801D4960; // type:object size:0x8 data:double +lbl_801D4960 = .sdata2:0x801D4960; // type:object size:0x8 scope:local data:double lbl_801D4968 = .sdata2:0x801D4968; // type:object size:0x4 data:float lbl_801D496C = .sdata2:0x801D496C; // type:object size:0x4 data:float lbl_801D4970 = .sdata2:0x801D4970; // type:object size:0x8 data:double diff --git a/config/GMPE01_01/symbols.txt b/config/GMPE01_01/symbols.txt index c85ba835..090ccf56 100644 --- a/config/GMPE01_01/symbols.txt +++ b/config/GMPE01_01/symbols.txt @@ -3680,7 +3680,7 @@ pbOffsets$890 = .rodata:0x8011EBA0; // type:object size:0x18 scope:local inpColdMIDIDefaults = .rodata:0x8011EBB8; // type:object size:0x88 scope:local inpWarmMIDIDefaults = .rodata:0x8011EC40; // type:object size:0x88 scope:local data:byte itdOffTab = .rodata:0x8011ECC8; // type:object size:0x100 scope:local -lbl_8011EDE0 = .data:0x8011EDE0; // type:object size:0x10 data:string +lbl_8011EDE0 = .data:0x8011EDE0; // type:object size:0x10 data:string scope:local chanTbl = .data:0x8011EDF0; // type:object size:0x10 scope:local correctDiskID = .data:0x8011EE00; // type:object size:0x124 scope:local jumptable_8011EF24 = .data:0x8011EF24; // type:object size:0x34 scope:local @@ -4847,11 +4847,11 @@ fio = .bss:0x801D3150; // type:object size:0xC scope:local data:4byte mus = .bss:0x801D3160; // type:object size:0x178 scope:local data:2byte se = .bss:0x801D32D8; // type:object size:0xDC scope:local data:4byte StreamInfo = .bss:0x801D33C0; // type:object size:0x60 scope:local align:32 data:4byte -lbl_801D3420 = .sdata:0x801D3420; // type:object size:0x5 data:string -lbl_801D3425 = .sdata:0x801D3425; // type:object size:0x7 +lbl_801D3420 = .sdata:0x801D3420; // type:object size:0x5 data:string scope:local +lbl_801D3425 = .sdata:0x801D3425; // type:object size:0x7 scope:local rnd_seed = .sdata:0x801D342C; // type:object size:0x4 data:4byte -lbl_801D3430 = .sdata:0x801D3430; // type:object size:0x6 data:string -lbl_801D3436 = .sdata:0x801D3436; // type:object size:0x2 data:string +lbl_801D3430 = .sdata:0x801D3430; // type:object size:0x6 data:string scope:local +lbl_801D3436 = .sdata:0x801D3436; // type:object size:0x2 data:string scope:local lbl_801D3438 = .sdata:0x801D3438; // type:object size:0x7 data:string lbl_801D343F = .sdata:0x801D343F; // type:object size:0x9 FirstFrame = .sdata:0x801D3448; // type:object size:0x4 scope:local data:4byte @@ -6020,7 +6020,7 @@ SendMailData = .sbss:0x801D4940; // type:object size:0x4 scope:local data:4byte RecvDataLeng = .sbss:0x801D4944; // type:object size:0x4 scope:local data:4byte pEXIInputFlag = .sbss:0x801D4948; // type:object size:0x4 scope:local data:4byte EXIInputFlag = .sbss:0x801D494C; // type:object size:0x1 scope:local data:byte -lbl_801D4960 = .sdata2:0x801D4960; // type:object size:0x8 data:double +lbl_801D4960 = .sdata2:0x801D4960; // type:object size:0x8 data:double scope:local lbl_801D4968 = .sdata2:0x801D4968; // type:object size:0x4 data:float lbl_801D496C = .sdata2:0x801D496C; // type:object size:0x4 data:float lbl_801D4970 = .sdata2:0x801D4970; // type:object size:0x8 data:double diff --git a/config/GMPJ01_00/config.yml b/config/GMPJ01_00/config.yml index 8da30f63..a8559c88 100644 --- a/config/GMPJ01_00/config.yml +++ b/config/GMPJ01_00/config.yml @@ -12,498 +12,498 @@ detect_strings: true fill_gaps: true # TODO add hashes modules: -- object: files/dll/_minigameDll.rel - - symbols: config/GMPJ01_00/rels/_minigameDll/symbols.txt - splits: config/GMPJ01_00/rels/_minigameDll/splits.txt - links: [] -- object: files/dll/bootDll.rel - - symbols: config/GMPJ01_00/rels/bootDll/symbols.txt - splits: config/GMPJ01_00/rels/bootDll/splits.txt - links: [] -- object: files/dll/instDll.rel - - symbols: config/GMPJ01_00/rels/instDll/symbols.txt - splits: config/GMPJ01_00/rels/instDll/splits.txt - links: [] -- object: files/dll/m302Dll.rel - - symbols: config/GMPJ01_00/rels/m302Dll/symbols.txt - splits: config/GMPJ01_00/rels/m302Dll/splits.txt - links: [] -- object: files/dll/m303Dll.rel - - symbols: config/GMPJ01_00/rels/m303Dll/symbols.txt - splits: config/GMPJ01_00/rels/m303Dll/splits.txt - links: [] -- object: files/dll/m330Dll.rel - - symbols: config/GMPJ01_00/rels/m330Dll/symbols.txt - splits: config/GMPJ01_00/rels/m330Dll/splits.txt - links: [] -- object: files/dll/m333Dll.rel - - symbols: config/GMPJ01_00/rels/m333Dll/symbols.txt - splits: config/GMPJ01_00/rels/m333Dll/splits.txt - links: [] -- object: files/dll/m402Dll.rel - - symbols: config/GMPJ01_00/rels/m402Dll/symbols.txt - splits: config/GMPJ01_00/rels/m402Dll/splits.txt - links: [] -- object: files/dll/m403Dll.rel - - symbols: config/GMPJ01_00/rels/m403Dll/symbols.txt - splits: config/GMPJ01_00/rels/m403Dll/splits.txt - links: [] -- object: files/dll/m404Dll.rel - - symbols: config/GMPJ01_00/rels/m404Dll/symbols.txt - splits: config/GMPJ01_00/rels/m404Dll/splits.txt - links: [] -- object: files/dll/m405Dll.rel - - symbols: config/GMPJ01_00/rels/m405Dll/symbols.txt - splits: config/GMPJ01_00/rels/m405Dll/splits.txt - links: [] -- object: files/dll/m406Dll.rel - - symbols: config/GMPJ01_00/rels/m406Dll/symbols.txt - splits: config/GMPJ01_00/rels/m406Dll/splits.txt - links: [] -- object: files/dll/m407dll.rel - - symbols: config/GMPJ01_00/rels/m407dll/symbols.txt - splits: config/GMPJ01_00/rels/m407dll/splits.txt - links: [] -- object: files/dll/m408Dll.rel - - symbols: config/GMPJ01_00/rels/m408Dll/symbols.txt - splits: config/GMPJ01_00/rels/m408Dll/splits.txt - links: [] -- object: files/dll/m409Dll.rel - - symbols: config/GMPJ01_00/rels/m409Dll/symbols.txt - splits: config/GMPJ01_00/rels/m409Dll/splits.txt - links: [] -- object: files/dll/m410Dll.rel - - symbols: config/GMPJ01_00/rels/m410Dll/symbols.txt - splits: config/GMPJ01_00/rels/m410Dll/splits.txt - links: [] -- object: files/dll/m411Dll.rel - - symbols: config/GMPJ01_00/rels/m411Dll/symbols.txt - splits: config/GMPJ01_00/rels/m411Dll/splits.txt - links: [] -- object: files/dll/m412Dll.rel - - symbols: config/GMPJ01_00/rels/m412Dll/symbols.txt - splits: config/GMPJ01_00/rels/m412Dll/splits.txt - links: [] -- object: files/dll/m413Dll.rel - - symbols: config/GMPJ01_00/rels/m413Dll/symbols.txt - splits: config/GMPJ01_00/rels/m413Dll/splits.txt - links: [] -- object: files/dll/m414Dll.rel - - symbols: config/GMPJ01_00/rels/m414Dll/symbols.txt - splits: config/GMPJ01_00/rels/m414Dll/splits.txt - links: [] -- object: files/dll/m415Dll.rel - - symbols: config/GMPJ01_00/rels/m415Dll/symbols.txt - splits: config/GMPJ01_00/rels/m415Dll/splits.txt - links: [] -- object: files/dll/m416Dll.rel - - symbols: config/GMPJ01_00/rels/m416Dll/symbols.txt - splits: config/GMPJ01_00/rels/m416Dll/splits.txt - links: [] -- object: files/dll/m417Dll.rel - - symbols: config/GMPJ01_00/rels/m417Dll/symbols.txt - splits: config/GMPJ01_00/rels/m417Dll/splits.txt - links: [] -- object: files/dll/m418Dll.rel - - symbols: config/GMPJ01_00/rels/m418Dll/symbols.txt - splits: config/GMPJ01_00/rels/m418Dll/splits.txt - links: [] -- object: files/dll/m419Dll.rel - - symbols: config/GMPJ01_00/rels/m419Dll/symbols.txt - splits: config/GMPJ01_00/rels/m419Dll/splits.txt - links: [] -- object: files/dll/m420dll.rel - - symbols: config/GMPJ01_00/rels/m420dll/symbols.txt - splits: config/GMPJ01_00/rels/m420dll/splits.txt - links: [] -- object: files/dll/m421Dll.rel - - symbols: config/GMPJ01_00/rels/m421Dll/symbols.txt - splits: config/GMPJ01_00/rels/m421Dll/splits.txt - links: [] -- object: files/dll/m422Dll.rel - - symbols: config/GMPJ01_00/rels/m422Dll/symbols.txt - splits: config/GMPJ01_00/rels/m422Dll/splits.txt - links: [] -- object: files/dll/m423Dll.rel - - symbols: config/GMPJ01_00/rels/m423Dll/symbols.txt - splits: config/GMPJ01_00/rels/m423Dll/splits.txt - links: [] -- object: files/dll/m424Dll.rel - - symbols: config/GMPJ01_00/rels/m424Dll/symbols.txt - splits: config/GMPJ01_00/rels/m424Dll/splits.txt - links: [] -- object: files/dll/m425Dll.rel - - symbols: config/GMPJ01_00/rels/m425Dll/symbols.txt - splits: config/GMPJ01_00/rels/m425Dll/splits.txt - links: [] -- object: files/dll/m426Dll.rel - - symbols: config/GMPJ01_00/rels/m426Dll/symbols.txt - splits: config/GMPJ01_00/rels/m426Dll/splits.txt - links: [] -- object: files/dll/m427Dll.rel - - symbols: config/GMPJ01_00/rels/m427Dll/symbols.txt - splits: config/GMPJ01_00/rels/m427Dll/splits.txt - links: [] -- object: files/dll/m428Dll.rel - - symbols: config/GMPJ01_00/rels/m428Dll/symbols.txt - splits: config/GMPJ01_00/rels/m428Dll/splits.txt - links: [] -- object: files/dll/m429Dll.rel - - symbols: config/GMPJ01_00/rels/m429Dll/symbols.txt - splits: config/GMPJ01_00/rels/m429Dll/splits.txt - links: [] -- object: files/dll/m430Dll.rel - - symbols: config/GMPJ01_00/rels/m430Dll/symbols.txt - splits: config/GMPJ01_00/rels/m430Dll/splits.txt - links: [] -- object: files/dll/m431Dll.rel - - symbols: config/GMPJ01_00/rels/m431Dll/symbols.txt - splits: config/GMPJ01_00/rels/m431Dll/splits.txt - links: [] -- object: files/dll/m432Dll.rel - - symbols: config/GMPJ01_00/rels/m432Dll/symbols.txt - splits: config/GMPJ01_00/rels/m432Dll/splits.txt - links: [] -- object: files/dll/m433Dll.rel - - symbols: config/GMPJ01_00/rels/m433Dll/symbols.txt - splits: config/GMPJ01_00/rels/m433Dll/splits.txt - links: [] -- object: files/dll/m434Dll.rel - - symbols: config/GMPJ01_00/rels/m434Dll/symbols.txt - splits: config/GMPJ01_00/rels/m434Dll/splits.txt - links: [] -- object: files/dll/m435Dll.rel - - symbols: config/GMPJ01_00/rels/m435Dll/symbols.txt - splits: config/GMPJ01_00/rels/m435Dll/splits.txt - links: [] -- object: files/dll/m436Dll.rel - - symbols: config/GMPJ01_00/rels/m436Dll/symbols.txt - splits: config/GMPJ01_00/rels/m436Dll/splits.txt - links: [] -- object: files/dll/m437Dll.rel - - symbols: config/GMPJ01_00/rels/m437Dll/symbols.txt - splits: config/GMPJ01_00/rels/m437Dll/splits.txt - links: [] -- object: files/dll/m438Dll.rel - - symbols: config/GMPJ01_00/rels/m438Dll/symbols.txt - splits: config/GMPJ01_00/rels/m438Dll/splits.txt - links: [] -- object: files/dll/m439Dll.rel - - symbols: config/GMPJ01_00/rels/m439Dll/symbols.txt - splits: config/GMPJ01_00/rels/m439Dll/splits.txt - links: [] -- object: files/dll/m440Dll.rel - - symbols: config/GMPJ01_00/rels/m440Dll/symbols.txt - splits: config/GMPJ01_00/rels/m440Dll/splits.txt - links: [] -- object: files/dll/m441Dll.rel - - symbols: config/GMPJ01_00/rels/m441Dll/symbols.txt - splits: config/GMPJ01_00/rels/m441Dll/splits.txt - links: [] -- object: files/dll/m442Dll.rel - - symbols: config/GMPJ01_00/rels/m442Dll/symbols.txt - splits: config/GMPJ01_00/rels/m442Dll/splits.txt - links: [] -- object: files/dll/m443Dll.rel - - symbols: config/GMPJ01_00/rels/m443Dll/symbols.txt - splits: config/GMPJ01_00/rels/m443Dll/splits.txt - links: [] -- object: files/dll/m444dll.rel - - symbols: config/GMPJ01_00/rels/m444dll/symbols.txt - splits: config/GMPJ01_00/rels/m444dll/splits.txt - links: [] -- object: files/dll/m445Dll.rel - - symbols: config/GMPJ01_00/rels/m445Dll/symbols.txt - splits: config/GMPJ01_00/rels/m445Dll/splits.txt - links: [] -- object: files/dll/m446dll.rel - - symbols: config/GMPJ01_00/rels/m446dll/symbols.txt - splits: config/GMPJ01_00/rels/m446dll/splits.txt - links: [] -- object: files/dll/m447dll.rel - - symbols: config/GMPJ01_00/rels/m447dll/symbols.txt - splits: config/GMPJ01_00/rels/m447dll/splits.txt - links: [] -- object: files/dll/m448Dll.rel - - symbols: config/GMPJ01_00/rels/m448Dll/symbols.txt - splits: config/GMPJ01_00/rels/m448Dll/splits.txt - links: [] -- object: files/dll/m449Dll.rel - - symbols: config/GMPJ01_00/rels/m449Dll/symbols.txt - splits: config/GMPJ01_00/rels/m449Dll/splits.txt - links: [] -- object: files/dll/m450Dll.rel - - symbols: config/GMPJ01_00/rels/m450Dll/symbols.txt - splits: config/GMPJ01_00/rels/m450Dll/splits.txt - links: [] -- object: files/dll/m451Dll.rel - - symbols: config/GMPJ01_00/rels/m451Dll/symbols.txt - splits: config/GMPJ01_00/rels/m451Dll/splits.txt - links: [] -- object: files/dll/m453Dll.rel - - symbols: config/GMPJ01_00/rels/m453Dll/symbols.txt - splits: config/GMPJ01_00/rels/m453Dll/splits.txt - links: [] -- object: files/dll/m455Dll.rel - - symbols: config/GMPJ01_00/rels/m455Dll/symbols.txt - splits: config/GMPJ01_00/rels/m455Dll/splits.txt - links: [] -- object: files/dll/m456Dll.rel - - symbols: config/GMPJ01_00/rels/m456Dll/symbols.txt - splits: config/GMPJ01_00/rels/m456Dll/splits.txt - links: [] -- object: files/dll/m457Dll.rel - - symbols: config/GMPJ01_00/rels/m457Dll/symbols.txt - splits: config/GMPJ01_00/rels/m457Dll/splits.txt - links: [] -- object: files/dll/m458Dll.rel - - symbols: config/GMPJ01_00/rels/m458Dll/symbols.txt - splits: config/GMPJ01_00/rels/m458Dll/splits.txt - links: [] -- object: files/dll/m459dll.rel - - symbols: config/GMPJ01_00/rels/m459dll/symbols.txt - splits: config/GMPJ01_00/rels/m459dll/splits.txt - links: [] -- object: files/dll/m460Dll.rel - - symbols: config/GMPJ01_00/rels/m460Dll/symbols.txt - splits: config/GMPJ01_00/rels/m460Dll/splits.txt - links: [] -- object: files/dll/m461Dll.rel - - symbols: config/GMPJ01_00/rels/m461Dll/symbols.txt - splits: config/GMPJ01_00/rels/m461Dll/splits.txt - links: [] -- object: files/dll/m462Dll.rel - - symbols: config/GMPJ01_00/rels/m462Dll/symbols.txt - splits: config/GMPJ01_00/rels/m462Dll/splits.txt - links: [] -- object: files/dll/m463Dll.rel - - symbols: config/GMPJ01_00/rels/m463Dll/symbols.txt - splits: config/GMPJ01_00/rels/m463Dll/splits.txt - links: [] -- object: files/dll/mentDll.rel - - symbols: config/GMPJ01_00/rels/mentDll/symbols.txt - splits: config/GMPJ01_00/rels/mentDll/splits.txt - links: [] -- object: files/dll/movieDll.rel - - symbols: config/GMPJ01_00/rels/movieDll/symbols.txt - splits: config/GMPJ01_00/rels/movieDll/splits.txt - links: [] -- object: files/dll/mgmodedll.rel - - symbols: config/GMPJ01_00/rels/mgmodedll/symbols.txt - splits: config/GMPJ01_00/rels/mgmodedll/splits.txt - links: [] -- object: files/dll/modeltestDll.rel - - symbols: config/GMPJ01_00/rels/modeltestDll/symbols.txt - splits: config/GMPJ01_00/rels/modeltestDll/splits.txt - links: [] -- object: files/dll/modeseldll.rel - - symbols: config/GMPJ01_00/rels/modeseldll/symbols.txt - splits: config/GMPJ01_00/rels/modeseldll/splits.txt - links: [] -- object: files/dll/mpexDll.rel - - symbols: config/GMPJ01_00/rels/mpexDll/symbols.txt - splits: config/GMPJ01_00/rels/mpexDll/splits.txt - links: [] -- object: files/dll/msetupDll.rel - - symbols: config/GMPJ01_00/rels/msetupDll/symbols.txt - splits: config/GMPJ01_00/rels/msetupDll/splits.txt - links: [] -- object: files/dll/mstory2Dll.rel - - symbols: config/GMPJ01_00/rels/mstory2Dll/symbols.txt - splits: config/GMPJ01_00/rels/mstory2Dll/splits.txt - links: [] -- object: files/dll/mstory3Dll.rel - - symbols: config/GMPJ01_00/rels/mstory3Dll/symbols.txt - splits: config/GMPJ01_00/rels/mstory3Dll/splits.txt - links: [] -- object: files/dll/mstory4Dll.rel - - symbols: config/GMPJ01_00/rels/mstory4Dll/symbols.txt - splits: config/GMPJ01_00/rels/mstory4Dll/splits.txt - links: [] -- object: files/dll/mstoryDll.rel - - symbols: config/GMPJ01_00/rels/mstoryDll/symbols.txt - splits: config/GMPJ01_00/rels/mstoryDll/splits.txt - links: [] -- object: files/dll/nisDll.rel - - symbols: config/GMPJ01_00/rels/nisDll/symbols.txt - splits: config/GMPJ01_00/rels/nisDll/splits.txt - links: [] -- object: files/dll/option.rel - - symbols: config/GMPJ01_00/rels/option/symbols.txt - splits: config/GMPJ01_00/rels/option/splits.txt - links: [] -- object: files/dll/present.rel - - symbols: config/GMPJ01_00/rels/present/symbols.txt - splits: config/GMPJ01_00/rels/present/splits.txt - links: [] -- object: files/dll/resultDll.rel - - symbols: config/GMPJ01_00/rels/resultDll/symbols.txt - splits: config/GMPJ01_00/rels/resultDll/splits.txt - links: [] -- object: files/dll/safDll.rel - - symbols: config/GMPJ01_00/rels/safDll/symbols.txt - splits: config/GMPJ01_00/rels/safDll/splits.txt - links: [] -- object: files/dll/selmenuDll.rel - - symbols: config/GMPJ01_00/rels/selmenuDll/symbols.txt - splits: config/GMPJ01_00/rels/selmenuDll/splits.txt - links: [] -- object: files/dll/staffDll.rel - - symbols: config/GMPJ01_00/rels/staffDll/symbols.txt - splits: config/GMPJ01_00/rels/staffDll/splits.txt - links: [] -- object: files/dll/subchrselDll.rel - - symbols: config/GMPJ01_00/rels/subchrselDll/symbols.txt - splits: config/GMPJ01_00/rels/subchrselDll/splits.txt - links: [] -- object: files/dll/w01Dll.rel - - symbols: config/GMPJ01_00/rels/w01Dll/symbols.txt - splits: config/GMPJ01_00/rels/w01Dll/splits.txt - links: [] -- object: files/dll/w02Dll.rel - - symbols: config/GMPJ01_00/rels/w02Dll/symbols.txt - splits: config/GMPJ01_00/rels/w02Dll/splits.txt - links: [] -- object: files/dll/w03Dll.rel - - symbols: config/GMPJ01_00/rels/w03Dll/symbols.txt - splits: config/GMPJ01_00/rels/w03Dll/splits.txt - links: [] -- object: files/dll/w04Dll.rel - - symbols: config/GMPJ01_00/rels/w04Dll/symbols.txt - splits: config/GMPJ01_00/rels/w04Dll/splits.txt - links: [] -- object: files/dll/w05Dll.rel - - symbols: config/GMPJ01_00/rels/w05Dll/symbols.txt - splits: config/GMPJ01_00/rels/w05Dll/splits.txt - links: [] -- object: files/dll/w06Dll.rel - - symbols: config/GMPJ01_00/rels/w06Dll/symbols.txt - splits: config/GMPJ01_00/rels/w06Dll/splits.txt - links: [] -- object: files/dll/w10Dll.rel - - symbols: config/GMPJ01_00/rels/w10Dll/symbols.txt - splits: config/GMPJ01_00/rels/w10Dll/splits.txt - links: [] -- object: files/dll/w20Dll.rel - - symbols: config/GMPJ01_00/rels/w20Dll/symbols.txt - splits: config/GMPJ01_00/rels/w20Dll/splits.txt - links: [] -- object: files/dll/w21Dll.rel - - symbols: config/GMPJ01_00/rels/w21Dll/symbols.txt - splits: config/GMPJ01_00/rels/w21Dll/splits.txt - links: [] -- object: files/dll/ztardll.rel - - symbols: config/GMPJ01_00/rels/ztardll/symbols.txt - splits: config/GMPJ01_00/rels/ztardll/splits.txt - links: [] -- object: files/dll/E3setupDLL.rel - - symbols: config/GMPJ01_00/rels/E3setupDLL/symbols.txt - splits: config/GMPJ01_00/rels/E3setupDLL/splits.txt - links: [_minigameDll] -- object: files/dll/m300Dll.rel - - symbols: config/GMPJ01_00/rels/m300Dll/symbols.txt - splits: config/GMPJ01_00/rels/m300Dll/splits.txt - links: [_minigameDll] -- object: files/dll/m401Dll.rel - - symbols: config/GMPJ01_00/rels/m401Dll/symbols.txt - splits: config/GMPJ01_00/rels/m401Dll/splits.txt - links: [_minigameDll] + - object: files/dll/_minigameDll.rel + + symbols: config/GMPJ01_00/rels/_minigameDll/symbols.txt + splits: config/GMPJ01_00/rels/_minigameDll/splits.txt + links: [] + - object: files/dll/bootDll.rel + + symbols: config/GMPJ01_00/rels/bootDll/symbols.txt + splits: config/GMPJ01_00/rels/bootDll/splits.txt + links: [] + - object: files/dll/instDll.rel + + symbols: config/GMPJ01_00/rels/instDll/symbols.txt + splits: config/GMPJ01_00/rels/instDll/splits.txt + links: [] + - object: files/dll/m302Dll.rel + + symbols: config/GMPJ01_00/rels/m302Dll/symbols.txt + splits: config/GMPJ01_00/rels/m302Dll/splits.txt + links: [] + - object: files/dll/m303Dll.rel + + symbols: config/GMPJ01_00/rels/m303Dll/symbols.txt + splits: config/GMPJ01_00/rels/m303Dll/splits.txt + links: [] + - object: files/dll/m330Dll.rel + + symbols: config/GMPJ01_00/rels/m330Dll/symbols.txt + splits: config/GMPJ01_00/rels/m330Dll/splits.txt + links: [] + - object: files/dll/m333Dll.rel + + symbols: config/GMPJ01_00/rels/m333Dll/symbols.txt + splits: config/GMPJ01_00/rels/m333Dll/splits.txt + links: [] + - object: files/dll/m402Dll.rel + + symbols: config/GMPJ01_00/rels/m402Dll/symbols.txt + splits: config/GMPJ01_00/rels/m402Dll/splits.txt + links: [] + - object: files/dll/m403Dll.rel + + symbols: config/GMPJ01_00/rels/m403Dll/symbols.txt + splits: config/GMPJ01_00/rels/m403Dll/splits.txt + links: [] + - object: files/dll/m404Dll.rel + + symbols: config/GMPJ01_00/rels/m404Dll/symbols.txt + splits: config/GMPJ01_00/rels/m404Dll/splits.txt + links: [] + - object: files/dll/m405Dll.rel + + symbols: config/GMPJ01_00/rels/m405Dll/symbols.txt + splits: config/GMPJ01_00/rels/m405Dll/splits.txt + links: [] + - object: files/dll/m406Dll.rel + + symbols: config/GMPJ01_00/rels/m406Dll/symbols.txt + splits: config/GMPJ01_00/rels/m406Dll/splits.txt + links: [] + - object: files/dll/m407dll.rel + + symbols: config/GMPJ01_00/rels/m407dll/symbols.txt + splits: config/GMPJ01_00/rels/m407dll/splits.txt + links: [] + - object: files/dll/m408Dll.rel + + symbols: config/GMPJ01_00/rels/m408Dll/symbols.txt + splits: config/GMPJ01_00/rels/m408Dll/splits.txt + links: [] + - object: files/dll/m409Dll.rel + + symbols: config/GMPJ01_00/rels/m409Dll/symbols.txt + splits: config/GMPJ01_00/rels/m409Dll/splits.txt + links: [] + - object: files/dll/m410Dll.rel + + symbols: config/GMPJ01_00/rels/m410Dll/symbols.txt + splits: config/GMPJ01_00/rels/m410Dll/splits.txt + links: [] + - object: files/dll/m411Dll.rel + + symbols: config/GMPJ01_00/rels/m411Dll/symbols.txt + splits: config/GMPJ01_00/rels/m411Dll/splits.txt + links: [] + - object: files/dll/m412Dll.rel + + symbols: config/GMPJ01_00/rels/m412Dll/symbols.txt + splits: config/GMPJ01_00/rels/m412Dll/splits.txt + links: [] + - object: files/dll/m413Dll.rel + + symbols: config/GMPJ01_00/rels/m413Dll/symbols.txt + splits: config/GMPJ01_00/rels/m413Dll/splits.txt + links: [] + - object: files/dll/m414Dll.rel + + symbols: config/GMPJ01_00/rels/m414Dll/symbols.txt + splits: config/GMPJ01_00/rels/m414Dll/splits.txt + links: [] + - object: files/dll/m415Dll.rel + + symbols: config/GMPJ01_00/rels/m415Dll/symbols.txt + splits: config/GMPJ01_00/rels/m415Dll/splits.txt + links: [] + - object: files/dll/m416Dll.rel + + symbols: config/GMPJ01_00/rels/m416Dll/symbols.txt + splits: config/GMPJ01_00/rels/m416Dll/splits.txt + links: [] + - object: files/dll/m417Dll.rel + + symbols: config/GMPJ01_00/rels/m417Dll/symbols.txt + splits: config/GMPJ01_00/rels/m417Dll/splits.txt + links: [] + - object: files/dll/m418Dll.rel + + symbols: config/GMPJ01_00/rels/m418Dll/symbols.txt + splits: config/GMPJ01_00/rels/m418Dll/splits.txt + links: [] + - object: files/dll/m419Dll.rel + + symbols: config/GMPJ01_00/rels/m419Dll/symbols.txt + splits: config/GMPJ01_00/rels/m419Dll/splits.txt + links: [] + - object: files/dll/m420dll.rel + + symbols: config/GMPJ01_00/rels/m420dll/symbols.txt + splits: config/GMPJ01_00/rels/m420dll/splits.txt + links: [] + - object: files/dll/m421Dll.rel + + symbols: config/GMPJ01_00/rels/m421Dll/symbols.txt + splits: config/GMPJ01_00/rels/m421Dll/splits.txt + links: [] + - object: files/dll/m422Dll.rel + + symbols: config/GMPJ01_00/rels/m422Dll/symbols.txt + splits: config/GMPJ01_00/rels/m422Dll/splits.txt + links: [] + - object: files/dll/m423Dll.rel + + symbols: config/GMPJ01_00/rels/m423Dll/symbols.txt + splits: config/GMPJ01_00/rels/m423Dll/splits.txt + links: [] + - object: files/dll/m424Dll.rel + + symbols: config/GMPJ01_00/rels/m424Dll/symbols.txt + splits: config/GMPJ01_00/rels/m424Dll/splits.txt + links: [] + - object: files/dll/m425Dll.rel + + symbols: config/GMPJ01_00/rels/m425Dll/symbols.txt + splits: config/GMPJ01_00/rels/m425Dll/splits.txt + links: [] + - object: files/dll/m426Dll.rel + + symbols: config/GMPJ01_00/rels/m426Dll/symbols.txt + splits: config/GMPJ01_00/rels/m426Dll/splits.txt + links: [] + - object: files/dll/m427Dll.rel + + symbols: config/GMPJ01_00/rels/m427Dll/symbols.txt + splits: config/GMPJ01_00/rels/m427Dll/splits.txt + links: [] + - object: files/dll/m428Dll.rel + + symbols: config/GMPJ01_00/rels/m428Dll/symbols.txt + splits: config/GMPJ01_00/rels/m428Dll/splits.txt + links: [] + - object: files/dll/m429Dll.rel + + symbols: config/GMPJ01_00/rels/m429Dll/symbols.txt + splits: config/GMPJ01_00/rels/m429Dll/splits.txt + links: [] + - object: files/dll/m430Dll.rel + + symbols: config/GMPJ01_00/rels/m430Dll/symbols.txt + splits: config/GMPJ01_00/rels/m430Dll/splits.txt + links: [] + - object: files/dll/m431Dll.rel + + symbols: config/GMPJ01_00/rels/m431Dll/symbols.txt + splits: config/GMPJ01_00/rels/m431Dll/splits.txt + links: [] + - object: files/dll/m432Dll.rel + + symbols: config/GMPJ01_00/rels/m432Dll/symbols.txt + splits: config/GMPJ01_00/rels/m432Dll/splits.txt + links: [] + - object: files/dll/m433Dll.rel + + symbols: config/GMPJ01_00/rels/m433Dll/symbols.txt + splits: config/GMPJ01_00/rels/m433Dll/splits.txt + links: [] + - object: files/dll/m434Dll.rel + + symbols: config/GMPJ01_00/rels/m434Dll/symbols.txt + splits: config/GMPJ01_00/rels/m434Dll/splits.txt + links: [] + - object: files/dll/m435Dll.rel + + symbols: config/GMPJ01_00/rels/m435Dll/symbols.txt + splits: config/GMPJ01_00/rels/m435Dll/splits.txt + links: [] + - object: files/dll/m436Dll.rel + + symbols: config/GMPJ01_00/rels/m436Dll/symbols.txt + splits: config/GMPJ01_00/rels/m436Dll/splits.txt + links: [] + - object: files/dll/m437Dll.rel + + symbols: config/GMPJ01_00/rels/m437Dll/symbols.txt + splits: config/GMPJ01_00/rels/m437Dll/splits.txt + links: [] + - object: files/dll/m438Dll.rel + + symbols: config/GMPJ01_00/rels/m438Dll/symbols.txt + splits: config/GMPJ01_00/rels/m438Dll/splits.txt + links: [] + - object: files/dll/m439Dll.rel + + symbols: config/GMPJ01_00/rels/m439Dll/symbols.txt + splits: config/GMPJ01_00/rels/m439Dll/splits.txt + links: [] + - object: files/dll/m440Dll.rel + + symbols: config/GMPJ01_00/rels/m440Dll/symbols.txt + splits: config/GMPJ01_00/rels/m440Dll/splits.txt + links: [] + - object: files/dll/m441Dll.rel + + symbols: config/GMPJ01_00/rels/m441Dll/symbols.txt + splits: config/GMPJ01_00/rels/m441Dll/splits.txt + links: [] + - object: files/dll/m442Dll.rel + + symbols: config/GMPJ01_00/rels/m442Dll/symbols.txt + splits: config/GMPJ01_00/rels/m442Dll/splits.txt + links: [] + - object: files/dll/m443Dll.rel + + symbols: config/GMPJ01_00/rels/m443Dll/symbols.txt + splits: config/GMPJ01_00/rels/m443Dll/splits.txt + links: [] + - object: files/dll/m444dll.rel + + symbols: config/GMPJ01_00/rels/m444dll/symbols.txt + splits: config/GMPJ01_00/rels/m444dll/splits.txt + links: [] + - object: files/dll/m445Dll.rel + + symbols: config/GMPJ01_00/rels/m445Dll/symbols.txt + splits: config/GMPJ01_00/rels/m445Dll/splits.txt + links: [] + - object: files/dll/m446dll.rel + + symbols: config/GMPJ01_00/rels/m446dll/symbols.txt + splits: config/GMPJ01_00/rels/m446dll/splits.txt + links: [] + - object: files/dll/m447dll.rel + + symbols: config/GMPJ01_00/rels/m447dll/symbols.txt + splits: config/GMPJ01_00/rels/m447dll/splits.txt + links: [] + - object: files/dll/m448Dll.rel + + symbols: config/GMPJ01_00/rels/m448Dll/symbols.txt + splits: config/GMPJ01_00/rels/m448Dll/splits.txt + links: [] + - object: files/dll/m449Dll.rel + + symbols: config/GMPJ01_00/rels/m449Dll/symbols.txt + splits: config/GMPJ01_00/rels/m449Dll/splits.txt + links: [] + - object: files/dll/m450Dll.rel + + symbols: config/GMPJ01_00/rels/m450Dll/symbols.txt + splits: config/GMPJ01_00/rels/m450Dll/splits.txt + links: [] + - object: files/dll/m451Dll.rel + + symbols: config/GMPJ01_00/rels/m451Dll/symbols.txt + splits: config/GMPJ01_00/rels/m451Dll/splits.txt + links: [] + - object: files/dll/m453Dll.rel + + symbols: config/GMPJ01_00/rels/m453Dll/symbols.txt + splits: config/GMPJ01_00/rels/m453Dll/splits.txt + links: [] + - object: files/dll/m455Dll.rel + + symbols: config/GMPJ01_00/rels/m455Dll/symbols.txt + splits: config/GMPJ01_00/rels/m455Dll/splits.txt + links: [] + - object: files/dll/m456Dll.rel + + symbols: config/GMPJ01_00/rels/m456Dll/symbols.txt + splits: config/GMPJ01_00/rels/m456Dll/splits.txt + links: [] + - object: files/dll/m457Dll.rel + + symbols: config/GMPJ01_00/rels/m457Dll/symbols.txt + splits: config/GMPJ01_00/rels/m457Dll/splits.txt + links: [] + - object: files/dll/m458Dll.rel + + symbols: config/GMPJ01_00/rels/m458Dll/symbols.txt + splits: config/GMPJ01_00/rels/m458Dll/splits.txt + links: [] + - object: files/dll/m459dll.rel + + symbols: config/GMPJ01_00/rels/m459dll/symbols.txt + splits: config/GMPJ01_00/rels/m459dll/splits.txt + links: [] + - object: files/dll/m460Dll.rel + + symbols: config/GMPJ01_00/rels/m460Dll/symbols.txt + splits: config/GMPJ01_00/rels/m460Dll/splits.txt + links: [] + - object: files/dll/m461Dll.rel + + symbols: config/GMPJ01_00/rels/m461Dll/symbols.txt + splits: config/GMPJ01_00/rels/m461Dll/splits.txt + links: [] + - object: files/dll/m462Dll.rel + + symbols: config/GMPJ01_00/rels/m462Dll/symbols.txt + splits: config/GMPJ01_00/rels/m462Dll/splits.txt + links: [] + - object: files/dll/m463Dll.rel + + symbols: config/GMPJ01_00/rels/m463Dll/symbols.txt + splits: config/GMPJ01_00/rels/m463Dll/splits.txt + links: [] + - object: files/dll/mentDll.rel + + symbols: config/GMPJ01_00/rels/mentDll/symbols.txt + splits: config/GMPJ01_00/rels/mentDll/splits.txt + links: [] + - object: files/dll/movieDll.rel + + symbols: config/GMPJ01_00/rels/movieDll/symbols.txt + splits: config/GMPJ01_00/rels/movieDll/splits.txt + links: [] + - object: files/dll/mgmodedll.rel + + symbols: config/GMPJ01_00/rels/mgmodedll/symbols.txt + splits: config/GMPJ01_00/rels/mgmodedll/splits.txt + links: [] + - object: files/dll/modeltestDll.rel + + symbols: config/GMPJ01_00/rels/modeltestDll/symbols.txt + splits: config/GMPJ01_00/rels/modeltestDll/splits.txt + links: [] + - object: files/dll/modeseldll.rel + + symbols: config/GMPJ01_00/rels/modeseldll/symbols.txt + splits: config/GMPJ01_00/rels/modeseldll/splits.txt + links: [] + - object: files/dll/mpexDll.rel + + symbols: config/GMPJ01_00/rels/mpexDll/symbols.txt + splits: config/GMPJ01_00/rels/mpexDll/splits.txt + links: [] + - object: files/dll/msetupDll.rel + + symbols: config/GMPJ01_00/rels/msetupDll/symbols.txt + splits: config/GMPJ01_00/rels/msetupDll/splits.txt + links: [] + - object: files/dll/mstory2Dll.rel + + symbols: config/GMPJ01_00/rels/mstory2Dll/symbols.txt + splits: config/GMPJ01_00/rels/mstory2Dll/splits.txt + links: [] + - object: files/dll/mstory3Dll.rel + + symbols: config/GMPJ01_00/rels/mstory3Dll/symbols.txt + splits: config/GMPJ01_00/rels/mstory3Dll/splits.txt + links: [] + - object: files/dll/mstory4Dll.rel + + symbols: config/GMPJ01_00/rels/mstory4Dll/symbols.txt + splits: config/GMPJ01_00/rels/mstory4Dll/splits.txt + links: [] + - object: files/dll/mstoryDll.rel + + symbols: config/GMPJ01_00/rels/mstoryDll/symbols.txt + splits: config/GMPJ01_00/rels/mstoryDll/splits.txt + links: [] + - object: files/dll/nisDll.rel + + symbols: config/GMPJ01_00/rels/nisDll/symbols.txt + splits: config/GMPJ01_00/rels/nisDll/splits.txt + links: [] + - object: files/dll/option.rel + + symbols: config/GMPJ01_00/rels/option/symbols.txt + splits: config/GMPJ01_00/rels/option/splits.txt + links: [] + - object: files/dll/present.rel + + symbols: config/GMPJ01_00/rels/present/symbols.txt + splits: config/GMPJ01_00/rels/present/splits.txt + links: [] + - object: files/dll/resultDll.rel + + symbols: config/GMPJ01_00/rels/resultDll/symbols.txt + splits: config/GMPJ01_00/rels/resultDll/splits.txt + links: [] + - object: files/dll/safDll.rel + + symbols: config/GMPJ01_00/rels/safDll/symbols.txt + splits: config/GMPJ01_00/rels/safDll/splits.txt + links: [] + - object: files/dll/selmenuDll.rel + + symbols: config/GMPJ01_00/rels/selmenuDll/symbols.txt + splits: config/GMPJ01_00/rels/selmenuDll/splits.txt + links: [] + - object: files/dll/staffDll.rel + + symbols: config/GMPJ01_00/rels/staffDll/symbols.txt + splits: config/GMPJ01_00/rels/staffDll/splits.txt + links: [] + - object: files/dll/subchrselDll.rel + + symbols: config/GMPJ01_00/rels/subchrselDll/symbols.txt + splits: config/GMPJ01_00/rels/subchrselDll/splits.txt + links: [] + - object: files/dll/w01Dll.rel + + symbols: config/GMPJ01_00/rels/w01Dll/symbols.txt + splits: config/GMPJ01_00/rels/w01Dll/splits.txt + links: [] + - object: files/dll/w02Dll.rel + + symbols: config/GMPJ01_00/rels/w02Dll/symbols.txt + splits: config/GMPJ01_00/rels/w02Dll/splits.txt + links: [] + - object: files/dll/w03Dll.rel + + symbols: config/GMPJ01_00/rels/w03Dll/symbols.txt + splits: config/GMPJ01_00/rels/w03Dll/splits.txt + links: [] + - object: files/dll/w04Dll.rel + + symbols: config/GMPJ01_00/rels/w04Dll/symbols.txt + splits: config/GMPJ01_00/rels/w04Dll/splits.txt + links: [] + - object: files/dll/w05Dll.rel + + symbols: config/GMPJ01_00/rels/w05Dll/symbols.txt + splits: config/GMPJ01_00/rels/w05Dll/splits.txt + links: [] + - object: files/dll/w06Dll.rel + + symbols: config/GMPJ01_00/rels/w06Dll/symbols.txt + splits: config/GMPJ01_00/rels/w06Dll/splits.txt + links: [] + - object: files/dll/w10Dll.rel + + symbols: config/GMPJ01_00/rels/w10Dll/symbols.txt + splits: config/GMPJ01_00/rels/w10Dll/splits.txt + links: [] + - object: files/dll/w20Dll.rel + + symbols: config/GMPJ01_00/rels/w20Dll/symbols.txt + splits: config/GMPJ01_00/rels/w20Dll/splits.txt + links: [] + - object: files/dll/w21Dll.rel + + symbols: config/GMPJ01_00/rels/w21Dll/symbols.txt + splits: config/GMPJ01_00/rels/w21Dll/splits.txt + links: [] + - object: files/dll/ztardll.rel + + symbols: config/GMPJ01_00/rels/ztardll/symbols.txt + splits: config/GMPJ01_00/rels/ztardll/splits.txt + links: [] + - object: files/dll/E3setupDLL.rel + + symbols: config/GMPJ01_00/rels/E3setupDLL/symbols.txt + splits: config/GMPJ01_00/rels/E3setupDLL/splits.txt + links: [_minigameDll] + - object: files/dll/m300Dll.rel + + symbols: config/GMPJ01_00/rels/m300Dll/symbols.txt + splits: config/GMPJ01_00/rels/m300Dll/splits.txt + links: [_minigameDll] + - object: files/dll/m401Dll.rel + + symbols: config/GMPJ01_00/rels/m401Dll/symbols.txt + splits: config/GMPJ01_00/rels/m401Dll/splits.txt + links: [_minigameDll] diff --git a/config/GMPJ01_00/splits.txt b/config/GMPJ01_00/splits.txt index f8a58b51..f7c399a1 100644 --- a/config/GMPJ01_00/splits.txt +++ b/config/GMPJ01_00/splits.txt @@ -12,3 +12,29 @@ Sections: .sbss type:bss align:32 .sdata2 type:rodata align:32 .sbss2 type:bss align:4 + +game/main.c: + .text start:0x800057C0 end:0x80005A5C + .data start:0x8011E9C0 end:0x8011E9D0 + .sdata start:0x801D30C0 end:0x801D30D0 + .sbss start:0x801D36C0 end:0x801D3718 + .sdata2 start:0x801D4620 end:0x801D4628 + +game/pad.c: + .text start:0x80005A5C end:0x80006478 + .data start:0x8011E9D0 end:0x8011E9E0 + .bss start:0x801424A0 end:0x801424E0 + .sbss start:0x801D3718 end:0x801D37A0 + +game/dvd.c: + .text start:0x80006478 end:0x80006E38 + .data start:0x8011E9E0 end:0x8011EB38 + .sdata start:0x801D30D0 end:0x801D30D8 + .sbss start:0x801D37A0 end:0x801D37A8 + +game/data.c: + .text start:0x80006E38 end:0x80009400 + .data start:0x8011EB38 end:0x8011F9C0 + .bss start:0x801424E0 end:0x801452E0 + .sdata start:0x801D30D8 end:0x801D30E8 + .sbss start:0x801D37A8 end:0x801D37B8 diff --git a/config/GMPJ01_00/symbols.txt b/config/GMPJ01_00/symbols.txt index 21fb23bc..77f9a6b2 100644 --- a/config/GMPJ01_00/symbols.txt +++ b/config/GMPJ01_00/symbols.txt @@ -3673,154 +3673,154 @@ lbl_8011E780 = .rodata:0x8011E780; // type:object size:0x18 lbl_8011E798 = .rodata:0x8011E798; // type:object size:0x88 lbl_8011E820 = .rodata:0x8011E820; // type:object size:0x88 data:byte lbl_8011E8A8 = .rodata:0x8011E8A8; // type:object size:0x100 -lbl_8011E9C0 = .data:0x8011E9C0; // type:object size:0x10 data:string -lbl_8011E9D0 = .data:0x8011E9D0; // type:object size:0x10 -lbl_8011E9E0 = .data:0x8011E9E0; // type:object size:0x124 +lbl_8011E9C0 = .data:0x8011E9C0; // type:object size:0x10 scope:local data:string +chanTbl = .data:0x8011E9D0; // type:object size:0x10 scope:local +correctDiskID = .data:0x8011E9E0; // type:object size:0x124 scope:local jumptable_8011EB04 = .data:0x8011EB04; // type:object size:0x34 scope:local -lbl_8011EB38 = .data:0x8011EB38; // type:object size:0x11 data:string -lbl_8011EB49 = .data:0x8011EB49; // type:object size:0x11 data:string -lbl_8011EB5A = .data:0x8011EB5A; // type:object size:0x10 data:string -lbl_8011EB6A = .data:0x8011EB6A; // type:object size:0x10 data:string -lbl_8011EB7A = .data:0x8011EB7A; // type:object size:0x14 data:string -lbl_8011EB8E = .data:0x8011EB8E; // type:object size:0x11 data:string -lbl_8011EB9F = .data:0x8011EB9F; // type:object size:0x10 data:string -lbl_8011EBAF = .data:0x8011EBAF; // type:object size:0xF data:string -lbl_8011EBBE = .data:0x8011EBBE; // type:object size:0x10 data:string -lbl_8011EBCE = .data:0x8011EBCE; // type:object size:0x13 data:string -lbl_8011EBE1 = .data:0x8011EBE1; // type:object size:0xF data:string -lbl_8011EBF0 = .data:0x8011EBF0; // type:object size:0x13 data:string -lbl_8011EC03 = .data:0x8011EC03; // type:object size:0x13 data:string -lbl_8011EC16 = .data:0x8011EC16; // type:object size:0x12 data:string -lbl_8011EC28 = .data:0x8011EC28; // type:object size:0x10 data:string -lbl_8011EC38 = .data:0x8011EC38; // type:object size:0x14 data:string -lbl_8011EC4C = .data:0x8011EC4C; // type:object size:0x14 data:string -lbl_8011EC60 = .data:0x8011EC60; // type:object size:0x13 data:string -lbl_8011EC73 = .data:0x8011EC73; // type:object size:0x10 data:string -lbl_8011EC83 = .data:0x8011EC83; // type:object size:0x11 data:string -lbl_8011EC94 = .data:0x8011EC94; // type:object size:0xE data:string -lbl_8011ECA2 = .data:0x8011ECA2; // type:object size:0x12 data:string -lbl_8011ECB4 = .data:0x8011ECB4; // type:object size:0x11 data:string -lbl_8011ECC5 = .data:0x8011ECC5; // type:object size:0xF data:string -lbl_8011ECD4 = .data:0x8011ECD4; // type:object size:0x13 data:string -lbl_8011ECE7 = .data:0x8011ECE7; // type:object size:0x13 data:string -lbl_8011ECFA = .data:0x8011ECFA; // type:object size:0x12 data:string -lbl_8011ED0C = .data:0x8011ED0C; // type:object size:0xE data:string -lbl_8011ED1A = .data:0x8011ED1A; // type:object size:0xE data:string -lbl_8011ED28 = .data:0x8011ED28; // type:object size:0xE data:string -lbl_8011ED36 = .data:0x8011ED36; // type:object size:0xE data:string -lbl_8011ED44 = .data:0x8011ED44; // type:object size:0xE data:string -lbl_8011ED52 = .data:0x8011ED52; // type:object size:0xE data:string -lbl_8011ED60 = .data:0x8011ED60; // type:object size:0xE data:string -lbl_8011ED6E = .data:0x8011ED6E; // type:object size:0xE data:string -lbl_8011ED7C = .data:0x8011ED7C; // type:object size:0xE data:string -lbl_8011ED8A = .data:0x8011ED8A; // type:object size:0xE data:string -lbl_8011ED98 = .data:0x8011ED98; // type:object size:0xE data:string -lbl_8011EDA6 = .data:0x8011EDA6; // type:object size:0xE data:string -lbl_8011EDB4 = .data:0x8011EDB4; // type:object size:0xE data:string -lbl_8011EDC2 = .data:0x8011EDC2; // type:object size:0xE data:string -lbl_8011EDD0 = .data:0x8011EDD0; // type:object size:0xE data:string -lbl_8011EDDE = .data:0x8011EDDE; // type:object size:0xE data:string -lbl_8011EDEC = .data:0x8011EDEC; // type:object size:0xE data:string -lbl_8011EDFA = .data:0x8011EDFA; // type:object size:0xE data:string -lbl_8011EE08 = .data:0x8011EE08; // type:object size:0xE data:string -lbl_8011EE16 = .data:0x8011EE16; // type:object size:0xE data:string -lbl_8011EE24 = .data:0x8011EE24; // type:object size:0xE data:string -lbl_8011EE32 = .data:0x8011EE32; // type:object size:0xE data:string -lbl_8011EE40 = .data:0x8011EE40; // type:object size:0xE data:string -lbl_8011EE4E = .data:0x8011EE4E; // type:object size:0xE data:string -lbl_8011EE5C = .data:0x8011EE5C; // type:object size:0xE data:string -lbl_8011EE6A = .data:0x8011EE6A; // type:object size:0xE data:string -lbl_8011EE78 = .data:0x8011EE78; // type:object size:0xE data:string -lbl_8011EE86 = .data:0x8011EE86; // type:object size:0xE data:string -lbl_8011EE94 = .data:0x8011EE94; // type:object size:0xE data:string -lbl_8011EEA2 = .data:0x8011EEA2; // type:object size:0xE data:string -lbl_8011EEB0 = .data:0x8011EEB0; // type:object size:0xE data:string -lbl_8011EEBE = .data:0x8011EEBE; // type:object size:0xE data:string -lbl_8011EECC = .data:0x8011EECC; // type:object size:0xE data:string -lbl_8011EEDA = .data:0x8011EEDA; // type:object size:0xE data:string -lbl_8011EEE8 = .data:0x8011EEE8; // type:object size:0xE data:string -lbl_8011EEF6 = .data:0x8011EEF6; // type:object size:0xE data:string -lbl_8011EF04 = .data:0x8011EF04; // type:object size:0xE data:string -lbl_8011EF12 = .data:0x8011EF12; // type:object size:0xE data:string -lbl_8011EF20 = .data:0x8011EF20; // type:object size:0xE data:string -lbl_8011EF2E = .data:0x8011EF2E; // type:object size:0xE data:string -lbl_8011EF3C = .data:0x8011EF3C; // type:object size:0xE data:string -lbl_8011EF4A = .data:0x8011EF4A; // type:object size:0xE data:string -lbl_8011EF58 = .data:0x8011EF58; // type:object size:0xE data:string -lbl_8011EF66 = .data:0x8011EF66; // type:object size:0xE data:string -lbl_8011EF74 = .data:0x8011EF74; // type:object size:0xE data:string -lbl_8011EF82 = .data:0x8011EF82; // type:object size:0xE data:string -lbl_8011EF90 = .data:0x8011EF90; // type:object size:0xE data:string -lbl_8011EF9E = .data:0x8011EF9E; // type:object size:0xE data:string -lbl_8011EFAC = .data:0x8011EFAC; // type:object size:0xE data:string -lbl_8011EFBA = .data:0x8011EFBA; // type:object size:0xE data:string -lbl_8011EFC8 = .data:0x8011EFC8; // type:object size:0xE data:string -lbl_8011EFD6 = .data:0x8011EFD6; // type:object size:0xE data:string -lbl_8011EFE4 = .data:0x8011EFE4; // type:object size:0xE data:string -lbl_8011EFF2 = .data:0x8011EFF2; // type:object size:0xE data:string -lbl_8011F000 = .data:0x8011F000; // type:object size:0xE data:string -lbl_8011F00E = .data:0x8011F00E; // type:object size:0xE data:string -lbl_8011F01C = .data:0x8011F01C; // type:object size:0xE data:string -lbl_8011F02A = .data:0x8011F02A; // type:object size:0xE data:string -lbl_8011F038 = .data:0x8011F038; // type:object size:0xE data:string -lbl_8011F046 = .data:0x8011F046; // type:object size:0xE data:string -lbl_8011F054 = .data:0x8011F054; // type:object size:0xE data:string -lbl_8011F062 = .data:0x8011F062; // type:object size:0xE data:string -lbl_8011F070 = .data:0x8011F070; // type:object size:0xE data:string -lbl_8011F07E = .data:0x8011F07E; // type:object size:0xE data:string -lbl_8011F08C = .data:0x8011F08C; // type:object size:0xE data:string -lbl_8011F09A = .data:0x8011F09A; // type:object size:0xF data:string -lbl_8011F0A9 = .data:0x8011F0A9; // type:object size:0x13 data:string -lbl_8011F0BC = .data:0x8011F0BC; // type:object size:0x13 data:string -lbl_8011F0CF = .data:0x8011F0CF; // type:object size:0x12 data:string -lbl_8011F0E1 = .data:0x8011F0E1; // type:object size:0xE data:string -lbl_8011F0EF = .data:0x8011F0EF; // type:object size:0x11 data:string -lbl_8011F100 = .data:0x8011F100; // type:object size:0x10 data:string -lbl_8011F110 = .data:0x8011F110; // type:object size:0x11 data:string -lbl_8011F121 = .data:0x8011F121; // type:object size:0xE data:string -lbl_8011F12F = .data:0x8011F12F; // type:object size:0x10 data:string -lbl_8011F13F = .data:0x8011F13F; // type:object size:0x11 data:string -lbl_8011F150 = .data:0x8011F150; // type:object size:0x11 data:string -lbl_8011F161 = .data:0x8011F161; // type:object size:0x11 data:string -lbl_8011F172 = .data:0x8011F172; // type:object size:0x10 data:string -lbl_8011F182 = .data:0x8011F182; // type:object size:0xF data:string -lbl_8011F191 = .data:0x8011F191; // type:object size:0x13 data:string -lbl_8011F1A4 = .data:0x8011F1A4; // type:object size:0x13 data:string -lbl_8011F1B7 = .data:0x8011F1B7; // type:object size:0x12 data:string -lbl_8011F1C9 = .data:0x8011F1C9; // type:object size:0x11 data:string -lbl_8011F1DA = .data:0x8011F1DA; // type:object size:0x10 data:string -lbl_8011F1EA = .data:0x8011F1EA; // type:object size:0xD data:string -lbl_8011F1F7 = .data:0x8011F1F7; // type:object size:0x11 data:string -lbl_8011F208 = .data:0x8011F208; // type:object size:0xF data:string -lbl_8011F217 = .data:0x8011F217; // type:object size:0xF data:string -lbl_8011F226 = .data:0x8011F226; // type:object size:0xF data:string -lbl_8011F235 = .data:0x8011F235; // type:object size:0xD data:string -lbl_8011F242 = .data:0x8011F242; // type:object size:0xD data:string -lbl_8011F24F = .data:0x8011F24F; // type:object size:0xD data:string -lbl_8011F25C = .data:0x8011F25C; // type:object size:0xD data:string -lbl_8011F269 = .data:0x8011F269; // type:object size:0xD data:string -lbl_8011F276 = .data:0x8011F276; // type:object size:0xD data:string -lbl_8011F283 = .data:0x8011F283; // type:object size:0xD data:string -lbl_8011F290 = .data:0x8011F290; // type:object size:0xD data:string -lbl_8011F29D = .data:0x8011F29D; // type:object size:0xD data:string -lbl_8011F2AA = .data:0x8011F2AA; // type:object size:0x11 data:string -lbl_8011F2BB = .data:0x8011F2BB; // type:object size:0x15 data:string -lbl_8011F2D0 = .data:0x8011F2D0; // type:object size:0x15 data:string -lbl_8011F2E5 = .data:0x8011F2E5; // type:object size:0x14 data:string -lbl_8011F2F9 = .data:0x8011F2F9; // type:object size:0xF data:string -lbl_8011F308 = .data:0x8011F308; // type:object size:0x13 data:string -lbl_8011F31B = .data:0x8011F31B; // type:object size:0x13 data:string -lbl_8011F32E = .data:0x8011F32E; // type:object size:0x12 data:string -lbl_8011F340 = .data:0x8011F340; // type:object size:0xD data:string -lbl_8011F34D = .data:0x8011F34D; // type:object size:0xF data:string -lbl_8011F35C = .data:0x8011F35C; // type:object size:0x13 data:string -lbl_8011F36F = .data:0x8011F36F; // type:object size:0x13 data:string -lbl_8011F382 = .data:0x8011F382; // type:object size:0x12 data:string -lbl_8011F394 = .data:0x8011F394; // type:object size:0x10 -lbl_8011F3A4 = .data:0x8011F3A4; // type:object size:0x468 data:4byte -lbl_8011F80C = .data:0x8011F80C; // type:object size:0x1D data:string -lbl_8011F829 = .data:0x8011F829; // type:object size:0x1F data:string -lbl_8011F848 = .data:0x8011F848; // type:object size:0x3C +lbl_8011EB38 = .data:0x8011EB38; // type:object size:0x11 scope:local data:string +lbl_8011EB49 = .data:0x8011EB49; // type:object size:0x11 scope:local data:string +lbl_8011EB5A = .data:0x8011EB5A; // type:object size:0x10 scope:local data:string +lbl_8011EB6A = .data:0x8011EB6A; // type:object size:0x10 scope:local data:string +lbl_8011EB7A = .data:0x8011EB7A; // type:object size:0x14 scope:local data:string +lbl_8011EB8E = .data:0x8011EB8E; // type:object size:0x11 scope:local data:string +lbl_8011EB9F = .data:0x8011EB9F; // type:object size:0x10 scope:local data:string +lbl_8011EBAF = .data:0x8011EBAF; // type:object size:0xF scope:local data:string +lbl_8011EBBE = .data:0x8011EBBE; // type:object size:0x10 scope:local data:string +lbl_8011EBCE = .data:0x8011EBCE; // type:object size:0x13 scope:local data:string +lbl_8011EBE1 = .data:0x8011EBE1; // type:object size:0xF scope:local data:string +lbl_8011EBF0 = .data:0x8011EBF0; // type:object size:0x13 scope:local data:string +lbl_8011EC03 = .data:0x8011EC03; // type:object size:0x13 scope:local data:string +lbl_8011EC16 = .data:0x8011EC16; // type:object size:0x12 scope:local data:string +lbl_8011EC28 = .data:0x8011EC28; // type:object size:0x10 scope:local data:string +lbl_8011EC38 = .data:0x8011EC38; // type:object size:0x14 scope:local data:string +lbl_8011EC4C = .data:0x8011EC4C; // type:object size:0x14 scope:local data:string +lbl_8011EC60 = .data:0x8011EC60; // type:object size:0x13 scope:local data:string +lbl_8011EC73 = .data:0x8011EC73; // type:object size:0x10 scope:local data:string +lbl_8011EC83 = .data:0x8011EC83; // type:object size:0x11 scope:local data:string +lbl_8011EC94 = .data:0x8011EC94; // type:object size:0xE scope:local data:string +lbl_8011ECA2 = .data:0x8011ECA2; // type:object size:0x12 scope:local data:string +lbl_8011ECB4 = .data:0x8011ECB4; // type:object size:0x11 scope:local data:string +lbl_8011ECC5 = .data:0x8011ECC5; // type:object size:0xF scope:local data:string +lbl_8011ECD4 = .data:0x8011ECD4; // type:object size:0x13 scope:local data:string +lbl_8011ECE7 = .data:0x8011ECE7; // type:object size:0x13 scope:local data:string +lbl_8011ECFA = .data:0x8011ECFA; // type:object size:0x12 scope:local data:string +lbl_8011ED0C = .data:0x8011ED0C; // type:object size:0xE scope:local data:string +lbl_8011ED1A = .data:0x8011ED1A; // type:object size:0xE scope:local data:string +lbl_8011ED28 = .data:0x8011ED28; // type:object size:0xE scope:local data:string +lbl_8011ED36 = .data:0x8011ED36; // type:object size:0xE scope:local data:string +lbl_8011ED44 = .data:0x8011ED44; // type:object size:0xE scope:local data:string +lbl_8011ED52 = .data:0x8011ED52; // type:object size:0xE scope:local data:string +lbl_8011ED60 = .data:0x8011ED60; // type:object size:0xE scope:local data:string +lbl_8011ED6E = .data:0x8011ED6E; // type:object size:0xE scope:local data:string +lbl_8011ED7C = .data:0x8011ED7C; // type:object size:0xE scope:local data:string +lbl_8011ED8A = .data:0x8011ED8A; // type:object size:0xE scope:local data:string +lbl_8011ED98 = .data:0x8011ED98; // type:object size:0xE scope:local data:string +lbl_8011EDA6 = .data:0x8011EDA6; // type:object size:0xE scope:local data:string +lbl_8011EDB4 = .data:0x8011EDB4; // type:object size:0xE scope:local data:string +lbl_8011EDC2 = .data:0x8011EDC2; // type:object size:0xE scope:local data:string +lbl_8011EDD0 = .data:0x8011EDD0; // type:object size:0xE scope:local data:string +lbl_8011EDDE = .data:0x8011EDDE; // type:object size:0xE scope:local data:string +lbl_8011EDEC = .data:0x8011EDEC; // type:object size:0xE scope:local data:string +lbl_8011EDFA = .data:0x8011EDFA; // type:object size:0xE scope:local data:string +lbl_8011EE08 = .data:0x8011EE08; // type:object size:0xE scope:local data:string +lbl_8011EE16 = .data:0x8011EE16; // type:object size:0xE scope:local data:string +lbl_8011EE24 = .data:0x8011EE24; // type:object size:0xE scope:local data:string +lbl_8011EE32 = .data:0x8011EE32; // type:object size:0xE scope:local data:string +lbl_8011EE40 = .data:0x8011EE40; // type:object size:0xE scope:local data:string +lbl_8011EE4E = .data:0x8011EE4E; // type:object size:0xE scope:local data:string +lbl_8011EE5C = .data:0x8011EE5C; // type:object size:0xE scope:local data:string +lbl_8011EE6A = .data:0x8011EE6A; // type:object size:0xE scope:local data:string +lbl_8011EE78 = .data:0x8011EE78; // type:object size:0xE scope:local data:string +lbl_8011EE86 = .data:0x8011EE86; // type:object size:0xE scope:local data:string +lbl_8011EE94 = .data:0x8011EE94; // type:object size:0xE scope:local data:string +lbl_8011EEA2 = .data:0x8011EEA2; // type:object size:0xE scope:local data:string +lbl_8011EEB0 = .data:0x8011EEB0; // type:object size:0xE scope:local data:string +lbl_8011EEBE = .data:0x8011EEBE; // type:object size:0xE scope:local data:string +lbl_8011EECC = .data:0x8011EECC; // type:object size:0xE scope:local data:string +lbl_8011EEDA = .data:0x8011EEDA; // type:object size:0xE scope:local data:string +lbl_8011EEE8 = .data:0x8011EEE8; // type:object size:0xE scope:local data:string +lbl_8011EEF6 = .data:0x8011EEF6; // type:object size:0xE scope:local data:string +lbl_8011EF04 = .data:0x8011EF04; // type:object size:0xE scope:local data:string +lbl_8011EF12 = .data:0x8011EF12; // type:object size:0xE scope:local data:string +lbl_8011EF20 = .data:0x8011EF20; // type:object size:0xE scope:local data:string +lbl_8011EF2E = .data:0x8011EF2E; // type:object size:0xE scope:local data:string +lbl_8011EF3C = .data:0x8011EF3C; // type:object size:0xE scope:local data:string +lbl_8011EF4A = .data:0x8011EF4A; // type:object size:0xE scope:local data:string +lbl_8011EF58 = .data:0x8011EF58; // type:object size:0xE scope:local data:string +lbl_8011EF66 = .data:0x8011EF66; // type:object size:0xE scope:local data:string +lbl_8011EF74 = .data:0x8011EF74; // type:object size:0xE scope:local data:string +lbl_8011EF82 = .data:0x8011EF82; // type:object size:0xE scope:local data:string +lbl_8011EF90 = .data:0x8011EF90; // type:object size:0xE scope:local data:string +lbl_8011EF9E = .data:0x8011EF9E; // type:object size:0xE scope:local data:string +lbl_8011EFAC = .data:0x8011EFAC; // type:object size:0xE scope:local data:string +lbl_8011EFBA = .data:0x8011EFBA; // type:object size:0xE scope:local data:string +lbl_8011EFC8 = .data:0x8011EFC8; // type:object size:0xE scope:local data:string +lbl_8011EFD6 = .data:0x8011EFD6; // type:object size:0xE scope:local data:string +lbl_8011EFE4 = .data:0x8011EFE4; // type:object size:0xE scope:local data:string +lbl_8011EFF2 = .data:0x8011EFF2; // type:object size:0xE scope:local data:string +lbl_8011F000 = .data:0x8011F000; // type:object size:0xE scope:local data:string +lbl_8011F00E = .data:0x8011F00E; // type:object size:0xE scope:local data:string +lbl_8011F01C = .data:0x8011F01C; // type:object size:0xE scope:local data:string +lbl_8011F02A = .data:0x8011F02A; // type:object size:0xE scope:local data:string +lbl_8011F038 = .data:0x8011F038; // type:object size:0xE scope:local data:string +lbl_8011F046 = .data:0x8011F046; // type:object size:0xE scope:local data:string +lbl_8011F054 = .data:0x8011F054; // type:object size:0xE scope:local data:string +lbl_8011F062 = .data:0x8011F062; // type:object size:0xE scope:local data:string +lbl_8011F070 = .data:0x8011F070; // type:object size:0xE scope:local data:string +lbl_8011F07E = .data:0x8011F07E; // type:object size:0xE scope:local data:string +lbl_8011F08C = .data:0x8011F08C; // type:object size:0xE scope:local data:string +lbl_8011F09A = .data:0x8011F09A; // type:object size:0xF scope:local data:string +lbl_8011F0A9 = .data:0x8011F0A9; // type:object size:0x13 scope:local data:string +lbl_8011F0BC = .data:0x8011F0BC; // type:object size:0x13 scope:local data:string +lbl_8011F0CF = .data:0x8011F0CF; // type:object size:0x12 scope:local data:string +lbl_8011F0E1 = .data:0x8011F0E1; // type:object size:0xE scope:local data:string +lbl_8011F0EF = .data:0x8011F0EF; // type:object size:0x11 scope:local data:string +lbl_8011F100 = .data:0x8011F100; // type:object size:0x10 scope:local data:string +lbl_8011F110 = .data:0x8011F110; // type:object size:0x11 scope:local data:string +lbl_8011F121 = .data:0x8011F121; // type:object size:0xE scope:local data:string +lbl_8011F12F = .data:0x8011F12F; // type:object size:0x10 scope:local data:string +lbl_8011F13F = .data:0x8011F13F; // type:object size:0x11 scope:local data:string +lbl_8011F150 = .data:0x8011F150; // type:object size:0x11 scope:local data:string +lbl_8011F161 = .data:0x8011F161; // type:object size:0x11 scope:local data:string +lbl_8011F172 = .data:0x8011F172; // type:object size:0x10 scope:local data:string +lbl_8011F182 = .data:0x8011F182; // type:object size:0xF scope:local data:string +lbl_8011F191 = .data:0x8011F191; // type:object size:0x13 scope:local data:string +lbl_8011F1A4 = .data:0x8011F1A4; // type:object size:0x13 scope:local data:string +lbl_8011F1B7 = .data:0x8011F1B7; // type:object size:0x12 scope:local data:string +lbl_8011F1C9 = .data:0x8011F1C9; // type:object size:0x11 scope:local data:string +lbl_8011F1DA = .data:0x8011F1DA; // type:object size:0x10 scope:local data:string +lbl_8011F1EA = .data:0x8011F1EA; // type:object size:0xD scope:local data:string +lbl_8011F1F7 = .data:0x8011F1F7; // type:object size:0x11 scope:local data:string +lbl_8011F208 = .data:0x8011F208; // type:object size:0xF scope:local data:string +lbl_8011F217 = .data:0x8011F217; // type:object size:0xF scope:local data:string +lbl_8011F226 = .data:0x8011F226; // type:object size:0xF scope:local data:string +lbl_8011F235 = .data:0x8011F235; // type:object size:0xD scope:local data:string +lbl_8011F242 = .data:0x8011F242; // type:object size:0xD scope:local data:string +lbl_8011F24F = .data:0x8011F24F; // type:object size:0xD scope:local data:string +lbl_8011F25C = .data:0x8011F25C; // type:object size:0xD scope:local data:string +lbl_8011F269 = .data:0x8011F269; // type:object size:0xD scope:local data:string +lbl_8011F276 = .data:0x8011F276; // type:object size:0xD scope:local data:string +lbl_8011F283 = .data:0x8011F283; // type:object size:0xD scope:local data:string +lbl_8011F290 = .data:0x8011F290; // type:object size:0xD scope:local data:string +lbl_8011F29D = .data:0x8011F29D; // type:object size:0xD scope:local data:string +lbl_8011F2AA = .data:0x8011F2AA; // type:object size:0x11 scope:local data:string +lbl_8011F2BB = .data:0x8011F2BB; // type:object size:0x15 scope:local data:string +lbl_8011F2D0 = .data:0x8011F2D0; // type:object size:0x15 scope:local data:string +lbl_8011F2E5 = .data:0x8011F2E5; // type:object size:0x14 scope:local data:string +lbl_8011F2F9 = .data:0x8011F2F9; // type:object size:0xF scope:local data:string +lbl_8011F308 = .data:0x8011F308; // type:object size:0x13 scope:local data:string +lbl_8011F31B = .data:0x8011F31B; // type:object size:0x13 scope:local data:string +lbl_8011F32E = .data:0x8011F32E; // type:object size:0x12 scope:local data:string +lbl_8011F340 = .data:0x8011F340; // type:object size:0xD scope:local data:string +lbl_8011F34D = .data:0x8011F34D; // type:object size:0xF scope:local data:string +lbl_8011F35C = .data:0x8011F35C; // type:object size:0x13 scope:local data:string +lbl_8011F36F = .data:0x8011F36F; // type:object size:0x13 scope:local data:string +lbl_8011F382 = .data:0x8011F382; // type:object size:0x12 scope:local data:string +lbl_8011F394 = .data:0x8011F394; // type:object size:0x10 scope:local +DataDirStat = .data:0x8011F3A4; // type:object size:0x468 scope:local data:4byte +lbl_8011F80C = .data:0x8011F80C; // type:object size:0x1D scope:local data:string +lbl_8011F829 = .data:0x8011F829; // type:object size:0x1F scope:local data:string +lbl_8011F848 = .data:0x8011F848; // type:object size:0x3C scope:local lbl_8011F884 = .data:0x8011F884; // type:object size:0x1A data:string lbl_8011F89E = .data:0x8011F89E; // type:object size:0x122 lbl_8011F9C0 = .data:0x8011F9C0; // type:object size:0x20 @@ -4340,9 +4340,9 @@ lbl_80140280 = .data:0x80140280; // type:object size:0x19E0 lbl_80141C60 = .data:0x80141C60; // type:object size:0x10 lbl_80141C70 = .data:0x80141C70; // type:object size:0x20 lbl_80141C90 = .data:0x80141C90; // type:object size:0x800 -lbl_801424A0 = .bss:0x801424A0; // type:object size:0x10 -lbl_801424B0 = .bss:0x801424B0; // type:object size:0x30 -lbl_801424E0 = .bss:0x801424E0; // type:object size:0x2E00 data:4byte +padStatErrOld = .bss:0x801424A0; // type:object size:0x10 scope:local +rumbleData = .bss:0x801424B0; // type:object size:0x20 scope:local +ReadDataStat = .bss:0x801424E0; // type:object size:0x2E00 scope:local data:4byte lbl_801452E0 = .bss:0x801452E0; // type:object size:0x400 lbl_801456E0 = .bss:0x801456E0; // type:object size:0x40 lbl_80145720 = .bss:0x80145720; // type:object size:0x18 @@ -4603,13 +4603,13 @@ lbl_801D2DF0 = .bss:0x801D2DF0; // type:object size:0x10 data:4byte lbl_801D2E00 = .bss:0x801D2E00; // type:object size:0x178 data:2byte lbl_801D2F78 = .bss:0x801D2F78; // type:object size:0xE8 data:4byte lbl_801D3060 = .bss:0x801D3060; // type:object size:0x60 data:4byte -lbl_801D30C0 = .sdata:0x801D30C0; // type:object size:0x5 data:string -lbl_801D30C5 = .sdata:0x801D30C5; // type:object size:0x7 -lbl_801D30CC = .sdata:0x801D30CC; // type:object size:0x4 data:4byte -lbl_801D30D0 = .sdata:0x801D30D0; // type:object size:0x6 data:string -lbl_801D30D6 = .sdata:0x801D30D6; // type:object size:0x2 data:string -lbl_801D30D8 = .sdata:0x801D30D8; // type:object size:0x7 data:string -lbl_801D30DF = .sdata:0x801D30DF; // type:object size:0x9 +lbl_801D30C0 = .sdata:0x801D30C0; // type:object size:0x5 scope:local data:string +lbl_801D30C5 = .sdata:0x801D30C5; // type:object size:0x7 scope:local +rnd_seed = .sdata:0x801D30CC; // type:object size:0x4 data:4byte +lbl_801D30D0 = .sdata:0x801D30D0; // type:object size:0x6 scope:local data:string +lbl_801D30D6 = .sdata:0x801D30D6; // type:object size:0x2 scope:local data:string +lbl_801D30D8 = .sdata:0x801D30D8; // type:object size:0x7 scope:local data:string +lbl_801D30DF = .sdata:0x801D30DF; // type:object size:0x9 scope:local lbl_801D30E8 = .sdata:0x801D30E8; // type:object size:0x4 data:4byte lbl_801D30EC = .sdata:0x801D30EC; // type:object size:0x7 data:string lbl_801D30F3 = .sdata:0x801D30F3; // type:object size:0xD @@ -4882,179 +4882,179 @@ lbl_801D3688 = .sdata:0x801D3688; // type:object size:0x8 lbl_801D3690 = .sdata:0x801D3690; // type:object size:0x8 lbl_801D3698 = .sdata:0x801D3698; // type:object size:0x8 data:2byte lbl_801D36A0 = .sdata:0x801D36A0; // type:object size:0x1 data:byte -lbl_801D36C0 = .sbss:0x801D36C0; // type:object size:0x4 data:4byte -lbl_801D36C4 = .sbss:0x801D36C4; // type:object size:0x4 data:4byte -lbl_801D36C8 = .sbss:0x801D36C8; // type:object size:0x4 -lbl_801D36CC = .sbss:0x801D36CC; // type:object size:0x4 -lbl_801D36D0 = .sbss:0x801D36D0; // type:object size:0x4 -lbl_801D36D4 = .sbss:0x801D36D4; // type:object size:0x4 -lbl_801D36D8 = .sbss:0x801D36D8; // type:object size:0x4 -lbl_801D36DC = .sbss:0x801D36DC; // type:object size:0x4 -lbl_801D36E0 = .sbss:0x801D36E0; // type:object size:0x4 -lbl_801D36E4 = .sbss:0x801D36E4; // type:object size:0x4 -lbl_801D36E8 = .sbss:0x801D36E8; // type:object size:0x4 -lbl_801D36EC = .sbss:0x801D36EC; // type:object size:0x4 -lbl_801D36F0 = .sbss:0x801D36F0; // type:object size:0x4 -lbl_801D36F4 = .sbss:0x801D36F4; // type:object size:0x4 -lbl_801D36F8 = .sbss:0x801D36F8; // type:object size:0x4 -lbl_801D36FC = .sbss:0x801D36FC; // type:object size:0x4 -lbl_801D3700 = .sbss:0x801D3700; // type:object size:0x4 -lbl_801D3704 = .sbss:0x801D3704; // type:object size:0x4 -lbl_801D3708 = .sbss:0x801D3708; // type:object size:0x4 -lbl_801D370C = .sbss:0x801D370C; // type:object size:0x4 -lbl_801D3710 = .sbss:0x801D3710; // type:object size:0x4 -lbl_801D3714 = .sbss:0x801D3714; // type:object size:0x4 data:4byte -lbl_801D3718 = .sbss:0x801D3718; // type:object size:0x4 data:4byte -lbl_801D371C = .sbss:0x801D371C; // type:object size:0x4 data:4byte -lbl_801D3720 = .sbss:0x801D3720; // type:object size:0x4 -lbl_801D3724 = .sbss:0x801D3724; // type:object size:0x4 -lbl_801D3728 = .sbss:0x801D3728; // type:object size:0x4 -lbl_801D372C = .sbss:0x801D372C; // type:object size:0x4 -lbl_801D3730 = .sbss:0x801D3730; // type:object size:0x4 -lbl_801D3734 = .sbss:0x801D3734; // type:object size:0x4 -lbl_801D3738 = .sbss:0x801D3738; // type:object size:0x4 -lbl_801D373C = .sbss:0x801D373C; // type:object size:0x4 -lbl_801D3740 = .sbss:0x801D3740; // type:object size:0x4 -lbl_801D3744 = .sbss:0x801D3744; // type:object size:0x4 -lbl_801D3748 = .sbss:0x801D3748; // type:object size:0x4 -lbl_801D374C = .sbss:0x801D374C; // type:object size:0x8 -lbl_801D3754 = .sbss:0x801D3754; // type:object size:0x8 -lbl_801D375C = .sbss:0x801D375C; // type:object size:0x8 -lbl_801D3764 = .sbss:0x801D3764; // type:object size:0x4 -lbl_801D3768 = .sbss:0x801D3768; // type:object size:0x4 -lbl_801D376C = .sbss:0x801D376C; // type:object size:0x4 -lbl_801D3770 = .sbss:0x801D3770; // type:object size:0x4 -lbl_801D3774 = .sbss:0x801D3774; // type:object size:0x4 -lbl_801D3778 = .sbss:0x801D3778; // type:object size:0x4 -lbl_801D377C = .sbss:0x801D377C; // type:object size:0x4 -lbl_801D3780 = .sbss:0x801D3780; // type:object size:0x4 -lbl_801D3784 = .sbss:0x801D3784; // type:object size:0x4 -lbl_801D3788 = .sbss:0x801D3788; // type:object size:0x8 -lbl_801D3790 = .sbss:0x801D3790; // type:object size:0x8 data:2byte -lbl_801D3798 = .sbss:0x801D3798; // type:object size:0x8 -lbl_801D37A0 = .sbss:0x801D37A0; // type:object size:0x4 data:4byte -lbl_801D37A4 = .sbss:0x801D37A4; // type:object size:0x4 data:4byte -lbl_801D37A8 = .sbss:0x801D37A8; // type:object size:0x4 data:4byte -lbl_801D37AC = .sbss:0x801D37AC; // type:object size:0x4 data:4byte -lbl_801D37B0 = .sbss:0x801D37B0; // type:object size:0x8 data:4byte -lbl_801D37B8 = .sbss:0x801D37B8; // type:object size:0x4 data:4byte -lbl_801D37BC = .sbss:0x801D37BC; // type:object size:0x4 data:4byte -lbl_801D37C0 = .sbss:0x801D37C0; // type:object size:0x4 data:float -lbl_801D37C4 = .sbss:0x801D37C4; // type:object size:0x4 data:4byte -lbl_801D37C8 = .sbss:0x801D37C8; // type:object size:0x4 data:4byte -lbl_801D37CC = .sbss:0x801D37CC; // type:object size:0x4 data:4byte -lbl_801D37D0 = .sbss:0x801D37D0; // type:object size:0x4 data:4byte -lbl_801D37D4 = .sbss:0x801D37D4; // type:object size:0x4 data:4byte -lbl_801D37D8 = .sbss:0x801D37D8; // type:object size:0x4 data:4byte -lbl_801D37DC = .sbss:0x801D37DC; // type:object size:0x4 data:4byte -lbl_801D37E0 = .sbss:0x801D37E0; // type:object size:0x8 data:4byte -lbl_801D37E8 = .sbss:0x801D37E8; // type:object size:0x4 data:4byte -lbl_801D37EC = .sbss:0x801D37EC; // type:object size:0x2 data:2byte -lbl_801D37EE = .sbss:0x801D37EE; // type:object size:0x2 data:2byte -lbl_801D37F0 = .sbss:0x801D37F0; // type:object size:0x8 data:4byte -lbl_801D37F8 = .sbss:0x801D37F8; // type:object size:0x4 data:4byte -lbl_801D37FC = .sbss:0x801D37FC; // type:object size:0x2 data:2byte -lbl_801D3800 = .sbss:0x801D3800; // type:object size:0x4 data:4byte -lbl_801D3804 = .sbss:0x801D3804; // type:object size:0x4 data:4byte -lbl_801D3808 = .sbss:0x801D3808; // type:object size:0x4 data:4byte -lbl_801D380C = .sbss:0x801D380C; // type:object size:0x2 data:2byte -lbl_801D380E = .sbss:0x801D380E; // type:object size:0x2 data:2byte -lbl_801D3810 = .sbss:0x801D3810; // type:object size:0x8 data:2byte -lbl_801D3818 = .sbss:0x801D3818; // type:object size:0x4 data:4byte -lbl_801D381C = .sbss:0x801D381C; // type:object size:0x4 data:4byte -lbl_801D3820 = .sbss:0x801D3820; // type:object size:0x4 data:4byte -lbl_801D3824 = .sbss:0x801D3824; // type:object size:0x4 data:4byte -lbl_801D3828 = .sbss:0x801D3828; // type:object size:0x4 data:4byte -lbl_801D382C = .sbss:0x801D382C; // type:object size:0x4 data:4byte -lbl_801D3830 = .sbss:0x801D3830; // type:object size:0x4 data:4byte -lbl_801D3834 = .sbss:0x801D3834; // type:object size:0x4 data:4byte -lbl_801D3838 = .sbss:0x801D3838; // type:object size:0x4 data:4byte -lbl_801D383C = .sbss:0x801D383C; // type:object size:0x4 data:4byte -lbl_801D3840 = .sbss:0x801D3840; // type:object size:0x4 data:4byte -lbl_801D3844 = .sbss:0x801D3844; // type:object size:0x4 data:4byte -lbl_801D3848 = .sbss:0x801D3848; // type:object size:0x8 data:4byte -lbl_801D3850 = .sbss:0x801D3850; // type:object size:0x4 data:4byte -lbl_801D3854 = .sbss:0x801D3854; // type:object size:0x4 data:4byte -lbl_801D3858 = .sbss:0x801D3858; // type:object size:0x4 data:4byte -lbl_801D385C = .sbss:0x801D385C; // type:object size:0x4 data:4byte -lbl_801D3860 = .sbss:0x801D3860; // type:object size:0x2 data:2byte -lbl_801D3864 = .sbss:0x801D3864; // type:object size:0x4 data:4byte -lbl_801D3868 = .sbss:0x801D3868; // type:object size:0x4 data:4byte -lbl_801D386C = .sbss:0x801D386C; // type:object size:0x4 data:4byte -lbl_801D3870 = .sbss:0x801D3870; // type:object size:0x4 data:4byte -lbl_801D3874 = .sbss:0x801D3874; // type:object size:0x4 data:4byte -lbl_801D3878 = .sbss:0x801D3878; // type:object size:0x2 data:2byte -lbl_801D387A = .sbss:0x801D387A; // type:object size:0x2 data:2byte -lbl_801D387C = .sbss:0x801D387C; // type:object size:0x2 data:2byte -lbl_801D387E = .sbss:0x801D387E; // type:object size:0x2 data:2byte -lbl_801D3880 = .sbss:0x801D3880; // type:object size:0x4 data:4byte -lbl_801D3884 = .sbss:0x801D3884; // type:object size:0x2 data:2byte -lbl_801D3886 = .sbss:0x801D3886; // type:object size:0x2 data:2byte -lbl_801D3888 = .sbss:0x801D3888; // type:object size:0x4 data:4byte -lbl_801D388C = .sbss:0x801D388C; // type:object size:0x4 data:4byte -lbl_801D3890 = .sbss:0x801D3890; // type:object size:0x4 data:4byte -lbl_801D3894 = .sbss:0x801D3894; // type:object size:0x4 data:4byte -lbl_801D3898 = .sbss:0x801D3898; // type:object size:0x4 data:4byte -lbl_801D389C = .sbss:0x801D389C; // type:object size:0x4 data:4byte -lbl_801D38A0 = .sbss:0x801D38A0; // type:object size:0x4 data:4byte -lbl_801D38A4 = .sbss:0x801D38A4; // type:object size:0x4 data:4byte -lbl_801D38A8 = .sbss:0x801D38A8; // type:object size:0x2 data:2byte -lbl_801D38AC = .sbss:0x801D38AC; // type:object size:0x4 data:4byte -lbl_801D38B0 = .sbss:0x801D38B0; // type:object size:0x1 data:byte -lbl_801D38B1 = .sbss:0x801D38B1; // type:object size:0x1 data:byte -lbl_801D38B2 = .sbss:0x801D38B2; // type:object size:0x1 data:byte -lbl_801D38B3 = .sbss:0x801D38B3; // type:object size:0x1 data:byte -lbl_801D38B4 = .sbss:0x801D38B4; // type:object size:0x2 data:2byte -lbl_801D38B6 = .sbss:0x801D38B6; // type:object size:0x2 data:2byte -lbl_801D38B8 = .sbss:0x801D38B8; // type:object size:0x2 data:2byte -lbl_801D38BC = .sbss:0x801D38BC; // type:object size:0x4 data:4byte -lbl_801D38C0 = .sbss:0x801D38C0; // type:object size:0x2 data:2byte -lbl_801D38C2 = .sbss:0x801D38C2; // type:object size:0x2 data:2byte -lbl_801D38C4 = .sbss:0x801D38C4; // type:object size:0x2 data:2byte -lbl_801D38C8 = .sbss:0x801D38C8; // type:object size:0x4 data:4byte -lbl_801D38CC = .sbss:0x801D38CC; // type:object size:0x2 data:2byte -lbl_801D38CE = .sbss:0x801D38CE; // type:object size:0x2 data:2byte -lbl_801D38D0 = .sbss:0x801D38D0; // type:object size:0x4 data:4byte -lbl_801D38D4 = .sbss:0x801D38D4; // type:object size:0x4 data:4byte -lbl_801D38D8 = .sbss:0x801D38D8; // type:object size:0x4 data:4byte -lbl_801D38DC = .sbss:0x801D38DC; // type:object size:0x4 data:4byte -lbl_801D38E0 = .sbss:0x801D38E0; // type:object size:0x4 data:4byte -lbl_801D38E4 = .sbss:0x801D38E4; // type:object size:0x1 data:byte -lbl_801D38E8 = .sbss:0x801D38E8; // type:object size:0x4 data:4byte -lbl_801D38EC = .sbss:0x801D38EC; // type:object size:0x2 data:2byte -lbl_801D38F0 = .sbss:0x801D38F0; // type:object size:0x4 data:4byte -lbl_801D38F4 = .sbss:0x801D38F4; // type:object size:0x2 data:2byte -lbl_801D38F6 = .sbss:0x801D38F6; // type:object size:0x2 data:2byte -lbl_801D38F8 = .sbss:0x801D38F8; // type:object size:0x2 data:2byte -lbl_801D38FC = .sbss:0x801D38FC; // type:object size:0x4 data:4byte -lbl_801D3900 = .sbss:0x801D3900; // type:object size:0x2 data:2byte -lbl_801D3902 = .sbss:0x801D3902; // type:object size:0x2 data:2byte -lbl_801D3904 = .sbss:0x801D3904; // type:object size:0x2 data:2byte -lbl_801D3908 = .sbss:0x801D3908; // type:object size:0x4 data:4byte -lbl_801D390C = .sbss:0x801D390C; // type:object size:0x4 data:4byte -lbl_801D3910 = .sbss:0x801D3910; // type:object size:0x2 data:2byte -lbl_801D3914 = .sbss:0x801D3914; // type:object size:0x4 data:4byte -lbl_801D3918 = .sbss:0x801D3918; // type:object size:0x2 data:2byte -lbl_801D391A = .sbss:0x801D391A; // type:object size:0x1 data:byte -lbl_801D391B = .sbss:0x801D391B; // type:object size:0x1 data:byte -lbl_801D391C = .sbss:0x801D391C; // type:object size:0x1 data:byte -lbl_801D391D = .sbss:0x801D391D; // type:object size:0x1 data:byte -lbl_801D3920 = .sbss:0x801D3920; // type:object size:0x8 data:4byte -lbl_801D3928 = .sbss:0x801D3928; // type:object size:0x1 data:byte -lbl_801D392A = .sbss:0x801D392A; // type:object size:0x2 data:2byte -lbl_801D392C = .sbss:0x801D392C; // type:object size:0x4 data:4byte -lbl_801D3930 = .sbss:0x801D3930; // type:object size:0x4 -lbl_801D3934 = .sbss:0x801D3934; // type:object size:0x4 -lbl_801D3938 = .sbss:0x801D3938; // type:object size:0x4 -lbl_801D393C = .sbss:0x801D393C; // type:object size:0x4 -lbl_801D3940 = .sbss:0x801D3940; // type:object size:0x4 -lbl_801D3944 = .sbss:0x801D3944; // type:object size:0x4 -lbl_801D3948 = .sbss:0x801D3948; // type:object size:0x4 -lbl_801D394C = .sbss:0x801D394C; // type:object size:0x4 -lbl_801D3950 = .sbss:0x801D3950; // type:object size:0x4 -lbl_801D3954 = .sbss:0x801D3954; // type:object size:0x4 -lbl_801D3958 = .sbss:0x801D3958; // type:object size:0x4 -lbl_801D395C = .sbss:0x801D395C; // type:object size:0x4 +SystemInitF = .sbss:0x801D36C0; // type:object size:0x4 data:4byte +HuDvdErrWait = .sbss:0x801D36C4; // type:object size:0x4 data:4byte +fi_req = .sbss:0x801D36C8; // type:object size:0x4 scope:local +rf_req = .sbss:0x801D36CC; // type:object size:0x4 scope:local +pe_req = .sbss:0x801D36D0; // type:object size:0x4 scope:local +vi_req = .sbss:0x801D36D4; // type:object size:0x4 scope:local +io_req = .sbss:0x801D36D8; // type:object size:0x4 scope:local +dsp_req = .sbss:0x801D36DC; // type:object size:0x4 scope:local +cpu_wr_req = .sbss:0x801D36E0; // type:object size:0x4 scope:local +cpu_rd_req = .sbss:0x801D36E4; // type:object size:0x4 scope:local +tc_req = .sbss:0x801D36E8; // type:object size:0x4 scope:local +cp_req = .sbss:0x801D36EC; // type:object size:0x4 scope:local +total_copy_clks = .sbss:0x801D36F0; // type:object size:0x4 scope:local +clr_pixels_in = .sbss:0x801D36F4; // type:object size:0x4 scope:local +bot_pixels_out = .sbss:0x801D36F8; // type:object size:0x4 scope:local +bot_pixels_in = .sbss:0x801D36FC; // type:object size:0x4 scope:local +top_pixels_out = .sbss:0x801D3700; // type:object size:0x4 scope:local +top_pixels_in = .sbss:0x801D3704; // type:object size:0x4 scope:local +vstall = .sbss:0x801D3708; // type:object size:0x4 scope:local +vmiss = .sbss:0x801D370C; // type:object size:0x4 scope:local +vcheck = .sbss:0x801D3710; // type:object size:0x4 scope:local +GlobalCounter = .sbss:0x801D3714; // type:object size:0x4 data:4byte +VCounter = .sbss:0x801D3718; // type:object size:0x4 data:4byte +RumbleBit = .sbss:0x801D371C; // type:object size:0x4 scope:local data:4byte +_PadErr = .sbss:0x801D3720; // type:object size:0x4 scope:local +_PadDStkRepOld = .sbss:0x801D3724; // type:object size:0x4 scope:local +_PadDStkRepCnt = .sbss:0x801D3728; // type:object size:0x4 scope:local +_PadDStkRep = .sbss:0x801D372C; // type:object size:0x4 scope:local +_PadDStk = .sbss:0x801D3730; // type:object size:0x4 scope:local +_PadTrigR = .sbss:0x801D3734; // type:object size:0x4 scope:local +_PadTrigL = .sbss:0x801D3738; // type:object size:0x4 scope:local +_PadSubStkY = .sbss:0x801D373C; // type:object size:0x4 scope:local +_PadSubStkX = .sbss:0x801D3740; // type:object size:0x4 scope:local +_PadStkY = .sbss:0x801D3744; // type:object size:0x4 scope:local +_PadStkX = .sbss:0x801D3748; // type:object size:0x4 scope:local +_PadRepCnt = .sbss:0x801D374C; // type:object size:0x8 scope:local +_PadBtnDown = .sbss:0x801D3754; // type:object size:0x8 +_PadBtn = .sbss:0x801D375C; // type:object size:0x8 +HuPadErr = .sbss:0x801D3764; // type:object size:0x4 +HuPadDStkRep = .sbss:0x801D3768; // type:object size:0x4 +HuPadDStk = .sbss:0x801D376C; // type:object size:0x4 +HuPadTrigR = .sbss:0x801D3770; // type:object size:0x4 +HuPadTrigL = .sbss:0x801D3774; // type:object size:0x4 +HuPadSubStkY = .sbss:0x801D3778; // type:object size:0x4 +HuPadSubStkX = .sbss:0x801D377C; // type:object size:0x4 +HuPadStkY = .sbss:0x801D3780; // type:object size:0x4 +HuPadStkX = .sbss:0x801D3784; // type:object size:0x4 +HuPadBtnRep = .sbss:0x801D3788; // type:object size:0x8 +HuPadBtnDown = .sbss:0x801D3790; // type:object size:0x8 data:2byte +HuPadBtn = .sbss:0x801D3798; // type:object size:0x8 +beforeDvdStatus = .sbss:0x801D37A0; // type:object size:0x4 scope:local data:4byte +CallBackStatus = .sbss:0x801D37A4; // type:object size:0x4 scope:local data:4byte +shortAccessSleep = .sbss:0x801D37A8; // type:object size:0x4 scope:local data:4byte +DataDirMax = .sbss:0x801D37AC; // type:object size:0x4 scope:local data:4byte +DirDataSize = .sbss:0x801D37B0; // type:object size:0x4 data:4byte +DemoStatEnable = .sbss:0x801D37B8; // type:object size:0x4 scope:local data:4byte +worstVcount = .sbss:0x801D37BC; // type:object size:0x4 data:4byte +minimumVcountf = .sbss:0x801D37C0; // type:object size:0x4 data:float +DemoCurrentBuffer = .sbss:0x801D37C4; // type:object size:0x4 data:4byte +DemoFrameBuffer2 = .sbss:0x801D37C8; // type:object size:0x4 data:4byte +DemoFrameBuffer1 = .sbss:0x801D37CC; // type:object size:0x4 data:4byte +DefaultFifoObj = .sbss:0x801D37D0; // type:object size:0x4 scope:local data:4byte +DefaultFifo = .sbss:0x801D37D4; // type:object size:0x4 scope:local data:4byte +currentHeapHandle = .sbss:0x801D37D8; // type:object size:0x4 data:4byte +RenderMode = .sbss:0x801D37DC; // type:object size:0x4 data:4byte +saftyFrameF = .sbss:0x801D37E0; // type:object size:0x8 data:4byte +strlinecnt = .sbss:0x801D37E8; // type:object size:0x4 data:4byte +empstrline = .sbss:0x801D37EC; // type:object size:0x2 data:2byte +fontcolor = .sbss:0x801D37EE; // type:object size:0x2 data:2byte +procfunc = .sbss:0x801D37F0; // type:object size:0x8 data:4byte +processcnt = .sbss:0x801D37F8; // type:object size:0x4 scope:local data:4byte +processcur = .sbss:0x801D37FC; // type:object size:0x2 scope:local data:2byte +processtop = .sbss:0x801D3800; // type:object size:0x4 scope:local data:4byte +HuSprPauseF = .sbss:0x801D3804; // type:object size:0x4 scope:local data:4byte +HuSprOrderNo = .sbss:0x801D3808; // type:object size:0x4 scope:local data:4byte +HuSprOrderNum = .sbss:0x801D380C; // type:object size:0x2 scope:local data:2byte +bmpCCIdx = .sbss:0x801D380E; // type:object size:0x2 scope:local data:2byte +MaterialTop = .sbss:0x801D3810; // type:object size:0x8 data:2byte +AttributeTop = .sbss:0x801D3818; // type:object size:0x4 data:4byte +ClusterTop = .sbss:0x801D381C; // type:object size:0x4 data:4byte +vtxtop = .sbss:0x801D3820; // type:object size:0x4 data:4byte +objtop = .sbss:0x801D3824; // type:object size:0x4 data:4byte +NSymIndex = .sbss:0x801D3828; // type:object size:0x4 data:4byte +DicStringTable = .sbss:0x801D382C; // type:object size:0x4 data:4byte +StringTable = .sbss:0x801D3830; // type:object size:0x4 data:4byte +fileptr = .sbss:0x801D3834; // type:object size:0x4 data:4byte +NormalDataTop = .sbss:0x801D3838; // type:object size:0x4 scope:local data:4byte +VertexDataTop = .sbss:0x801D383C; // type:object size:0x4 scope:local data:4byte +MotionModel = .sbss:0x801D3840; // type:object size:0x4 scope:local data:4byte +MotionOnly = .sbss:0x801D3844; // type:object size:0x4 scope:local data:4byte +CancelTRXF = .sbss:0x801D3848; // type:object size:0x8 scope:local data:4byte +TL32F = .sbss:0x801D3850; // type:object size:0x4 scope:local data:4byte +PGName = .sbss:0x801D3854; // type:object size:0x4 scope:local data:4byte +PGFinishF = .sbss:0x801D3858; // type:object size:0x4 scope:local data:4byte +polySize = .sbss:0x801D385C; // type:object size:0x4 scope:local data:4byte +curModelID = .sbss:0x801D3860; // type:object size:0x2 scope:local data:2byte +mallocNo = .sbss:0x801D3864; // type:object size:0x4 scope:local data:4byte +totalSize = .sbss:0x801D3868; // type:object size:0x4 scope:local data:4byte +DLTotalNum = .sbss:0x801D386C; // type:object size:0x4 scope:local data:4byte +faceNumBuf = .sbss:0x801D3870; // type:object size:0x4 scope:local data:4byte +faceCnt = .sbss:0x801D3874; // type:object size:0x4 scope:local data:4byte +quadCnt = .sbss:0x801D3878; // type:object size:0x2 scope:local data:2byte +triCnt = .sbss:0x801D387A; // type:object size:0x2 scope:local data:2byte +matChgCnt = .sbss:0x801D387C; // type:object size:0x2 scope:local data:2byte +DLFirstF = .sbss:0x801D387E; // type:object size:0x2 scope:local data:2byte +modelObjNum = .sbss:0x801D3880; // type:object size:0x4 data:4byte +modelMeshNum = .sbss:0x801D3884; // type:object size:0x2 data:2byte +totalTexCacheCnted = .sbss:0x801D3886; // type:object size:0x2 data:2byte +totalTexCacheCnt = .sbss:0x801D3888; // type:object size:0x4 data:4byte +totalTexCnted = .sbss:0x801D388C; // type:object size:0x4 data:4byte +totalTexCnt = .sbss:0x801D3890; // type:object size:0x4 data:4byte +totalMatCnted = .sbss:0x801D3894; // type:object size:0x4 data:4byte +totalMatCnt = .sbss:0x801D3898; // type:object size:0x4 data:4byte +totalPolyCnted = .sbss:0x801D389C; // type:object size:0x4 data:4byte +totalPolyCnt = .sbss:0x801D38A0; // type:object size:0x4 data:4byte +hookIdx = .sbss:0x801D38A4; // type:object size:0x4 scope:local data:4byte +kColorIdx = .sbss:0x801D38A8; // type:object size:0x2 scope:local data:2byte +kColor = .sbss:0x801D38AC; // type:object size:0x4 scope:local data:4byte +projectionMapNo = .sbss:0x801D38B0; // type:object size:0x1 scope:local data:byte +toonMapNo = .sbss:0x801D38B1; // type:object size:0x1 scope:local data:byte +shadowMapNo = .sbss:0x801D38B2; // type:object size:0x1 scope:local data:byte +attachMotionF = .sbss:0x801D38B3; // type:object size:0x1 scope:local data:byte +vtxModeBak = .sbss:0x801D38B4; // type:object size:0x2 scope:local data:2byte +hiliteMapNo = .sbss:0x801D38B6; // type:object size:0x2 scope:local data:2byte +reflectionMapNo = .sbss:0x801D38B8; // type:object size:0x2 scope:local data:2byte +Hu3DObjInfoP = .sbss:0x801D38BC; // type:object size:0x4 scope:local data:4byte +DrawObjIdx = .sbss:0x801D38C0; // type:object size:0x2 scope:local data:2byte +lightBit = .sbss:0x801D38C2; // type:object size:0x2 scope:local data:2byte +drawCnt = .sbss:0x801D38C4; // type:object size:0x2 scope:local data:2byte +DrawData = .sbss:0x801D38C8; // type:object size:0x4 scope:local data:4byte +DLBufStartP = .sbss:0x801D38CC; // type:object size:0x2 scope:local data:2byte +DLBufP = .sbss:0x801D38CE; // type:object size:0x2 scope:local data:2byte +shadingBak = .sbss:0x801D38D0; // type:object size:0x4 scope:local data:4byte +polyTypeBak = .sbss:0x801D38D4; // type:object size:0x4 scope:local data:4byte +materialBak = .sbss:0x801D38D8; // type:object size:0x4 scope:local data:4byte +MTXIdx = .sbss:0x801D38DC; // type:object size:0x4 data:4byte +modelKillAllF = .sbss:0x801D38E0; // type:object size:0x4 data:4byte +NoSyncF = .sbss:0x801D38E4; // type:object size:0x1 scope:local data:byte +Hu3DCameraExistF = .sbss:0x801D38E8; // type:object size:0x4 data:4byte +Hu3DPauseF = .sbss:0x801D38EC; // type:object size:0x2 data:2byte +Hu3DMallocNo = .sbss:0x801D38F0; // type:object size:0x4 data:4byte +Hu3DCameraBit = .sbss:0x801D38F4; // type:object size:0x2 data:2byte +Hu3DCameraNo = .sbss:0x801D38F6; // type:object size:0x2 data:2byte +Hu3DProjectionNum = .sbss:0x801D38F8; // type:object size:0x2 data:2byte +shadowModelDrawF = .sbss:0x801D38FC; // type:object size:0x4 data:4byte +Hu3DShadowF = .sbss:0x801D3900; // type:object size:0x2 data:2byte +Hu3DShadowCamBit = .sbss:0x801D3902; // type:object size:0x2 data:2byte +toonAnim = .sbss:0x801D3904; // type:object size:0x2 data:2byte +BGColor = .sbss:0x801D3908; // type:object size:0x4 data:4byte +bitMapPtr = .sbss:0x801D390C; // type:object size:0x4 scope:local data:4byte +metf = .sbss:0x801D3910; // type:object size:0x2 scope:local data:2byte +tokenEndF = .sbss:0x801D3914; // type:object size:0x4 scope:local data:4byte +total_copy_clks = .sbss:0x801D3918; // type:object size:0x2 scope:local data:2byte +clr_pixels_in = .sbss:0x801D391A; // type:object size:0x1 scope:local data:byte +bot_pixels_out = .sbss:0x801D391B; // type:object size:0x1 scope:local data:byte +bot_pixels_in = .sbss:0x801D391C; // type:object size:0x1 scope:local data:byte +top_pixels_out = .sbss:0x801D391D; // type:object size:0x1 scope:local data:byte +top_pixels_in = .sbss:0x801D3920; // type:object size:0x8 scope:local data:4byte +fi_req = .sbss:0x801D3928; // type:object size:0x1 scope:local data:byte +rf_req = .sbss:0x801D392A; // type:object size:0x2 scope:local data:2byte +pe_req = .sbss:0x801D392C; // type:object size:0x4 scope:local data:4byte +vi_req = .sbss:0x801D3930; // type:object size:0x4 scope:local +io_req = .sbss:0x801D3934; // type:object size:0x4 scope:local +dsp_req = .sbss:0x801D3938; // type:object size:0x4 scope:local +cpu_wr_req = .sbss:0x801D393C; // type:object size:0x4 scope:local +cpu_rd_req = .sbss:0x801D3940; // type:object size:0x4 scope:local +tc_req = .sbss:0x801D3944; // type:object size:0x4 scope:local +cp_req = .sbss:0x801D3948; // type:object size:0x4 scope:local +vstall = .sbss:0x801D394C; // type:object size:0x4 scope:local +vmiss = .sbss:0x801D3950; // type:object size:0x4 scope:local +vcheck = .sbss:0x801D3954; // type:object size:0x4 scope:local +met1 = .sbss:0x801D3958; // type:object size:0x4 scope:local +met0 = .sbss:0x801D395C; // type:object size:0x4 scope:local lbl_801D3960 = .sbss:0x801D3960; // type:object size:0x4 lbl_801D3964 = .sbss:0x801D3964; // type:object size:0x4 lbl_801D3968 = .sbss:0x801D3968; // type:object size:0x4 @@ -5810,7 +5810,7 @@ lbl_801D4600 = .sbss:0x801D4600; // type:object size:0x4 data:4byte lbl_801D4604 = .sbss:0x801D4604; // type:object size:0x4 data:4byte lbl_801D4608 = .sbss:0x801D4608; // type:object size:0x4 data:4byte lbl_801D460C = .sbss:0x801D460C; // type:object size:0x1 data:byte -lbl_801D4620 = .sdata2:0x801D4620; // type:object size:0x8 data:double +lbl_801D4620 = .sdata2:0x801D4620; // type:object size:0x8 scope:local data:double lbl_801D4628 = .sdata2:0x801D4628; // type:object size:0x4 data:float lbl_801D462C = .sdata2:0x801D462C; // type:object size:0x4 data:float lbl_801D4630 = .sdata2:0x801D4630; // type:object size:0x8 data:double From 5b0b46bb6d5700851691696ede1cc951941c4776 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 25 Nov 2024 20:02:02 +0100 Subject: [PATCH 174/311] Did Japanese DOL till hsfmotion.c --- config/GMPE01_00/symbols.txt | 12 +- config/GMPE01_01/symbols.txt | 20 +- config/GMPJ01_00/config.yml | 40 ++- config/GMPJ01_00/splits.txt | 88 +++++ config/GMPJ01_00/symbols.txt | 622 ++++++++++++++++++----------------- include/game/hsfdraw.h | 9 + src/game/hsfdraw.c | 9 - 7 files changed, 458 insertions(+), 342 deletions(-) diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 2f4b3fe1..a6e13c9b 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -244,7 +244,7 @@ Hu3DDraw = .text:0x80014024; // type:function size:0x1A0 objCall = .text:0x800141C4; // type:function size:0xEC scope:local objMesh = .text:0x800142B0; // type:function size:0x86C scope:local ObjCullCheck = .text:0x80014B1C; // type:function size:0x4C0 -FaceDraw = .text:0x80014FDC; // type:function size:0x10DC scope:local +FaceDraw = .text:0x80014FDC; // type:function size:0x10DC SetTevStageNoTex = .text:0x800160B8; // type:function size:0x8E8 scope:local SetTevStageTex = .text:0x800169A0; // type:function size:0x2588 scope:local SetKColor = .text:0x80018F28; // type:function size:0x164 scope:local @@ -7711,11 +7711,5 @@ lbl_801D6BC4 = .sdata2:0x801D6BC4; // type:object size:0x4 data:float lbl_801D6BC8 = .sdata2:0x801D6BC8; // type:object size:0x4 data:float lbl_801D6BCC = .sdata2:0x801D6BCC; // type:object size:0x4 data:float lbl_801D6BD0 = .sdata2:0x801D6BD0; // type:object size:0x8 data:double -lbl_801D6BE0 = .sbss2:0x801D6BE0; // type:object size:0x1 data:byte -lbl_801D6BE1 = .sbss2:0x801D6BE1; // type:object size:0x1 data:byte -lbl_801D6BE2 = .sbss2:0x801D6BE2; // type:object size:0x1 data:byte -lbl_801D6BE3 = .sbss2:0x801D6BE3; // type:object size:0x1 data:byte -lbl_801D6BE4 = .sbss2:0x801D6BE4; // type:object size:0x1 data:byte -lbl_801D6BE5 = .sbss2:0x801D6BE5; // type:object size:0x1 data:byte -lbl_801D6BE6 = .sbss2:0x801D6BE6; // type:object size:0x1 data:byte -lbl_801D6BE7 = .sbss2:0x801D6BE7; // type:object size:0x1 data:byte +lbl_801D6BE0 = .sbss2:0x801D6BE0; // type:object size:0x4 scope:local data:byte +lbl_801D6BE4 = .sbss2:0x801D6BE4; // type:object size:0x4 scope:local data:byte diff --git a/config/GMPE01_01/symbols.txt b/config/GMPE01_01/symbols.txt index 090ccf56..b85b7174 100644 --- a/config/GMPE01_01/symbols.txt +++ b/config/GMPE01_01/symbols.txt @@ -244,7 +244,7 @@ Hu3DDraw = .text:0x80014024; // type:function size:0x1A0 objCall = .text:0x800141C4; // type:function size:0xEC scope:local objMesh = .text:0x800142B0; // type:function size:0x86C scope:local ObjCullCheck = .text:0x80014B1C; // type:function size:0x4C0 -FaceDraw = .text:0x80014FDC; // type:function size:0x10DC scope:local +FaceDraw = .text:0x80014FDC; // type:function size:0x10DC SetTevStageNoTex = .text:0x800160B8; // type:function size:0x8E8 scope:local SetTevStageTex = .text:0x800169A0; // type:function size:0x2588 scope:local SetKColor = .text:0x80018F28; // type:function size:0x164 scope:local @@ -3588,7 +3588,7 @@ __init_cpp_exceptions_reference = .ctors:0x8011DCC0; // type:object size:0x4 sco _dtors = .dtors:0x8011DCE0; // type:label scope:global data:4byte __destroy_global_chain_reference = .dtors:0x8011DCE0; // type:object size:0x4 scope:global __fini_cpp_exceptions_reference = .dtors:0x8011DCE4; // type:object size:0x4 scope:global -lbl_8011DD00 = .rodata:0x8011DD00; // type:object size:0x10 data:4byte +lbl_8011DD00 = .rodata:0x8011DD00; // type:object size:0x10 data:4byte scope:local lbl_8011DD10 = .rodata:0x8011DD10; // type:object size:0x10 data:4byte lbl_8011DD20 = .rodata:0x8011DD20; // type:object size:0xC data:4byte lbl_8011DD30 = .rodata:0x8011DD30; // type:object size:0x20 data:byte @@ -3834,10 +3834,10 @@ lbl_8011FCA4 = .data:0x8011FCA4; // type:object size:0x1A data:string lbl_8011FCBE = .data:0x8011FCBE; // type:object size:0x122 lbl_8011FDE0 = .data:0x8011FDE0; // type:object size:0x20 ank8x8_4b = .data:0x8011FE00; // type:object size:0x2000 align:32 -lbl_80121E00 = .data:0x80121E00; // type:object size:0x150 +lbl_80121E00 = .data:0x80121E00; // type:object size:0x150 scope:local HeapSizeTbl = .data:0x80121F50; // type:object size:0x78 scope:local -lbl_80121FC8 = .data:0x80121FC8; // type:object size:0x50 -lbl_80122018 = .data:0x80122018; // type:object size:0x128 +lbl_80121FC8 = .data:0x80121FC8; // type:object size:0x50 scope:local +lbl_80122018 = .data:0x80122018; // type:object size:0x128 scope:local fcoltbl = .data:0x80122140; // type:object size:0x40 scope:local align:32 lbl_80122180 = .data:0x80122180; // type:object size:0x1F data:string lbl_8012219F = .data:0x8012219F; // type:object size:0x31 @@ -7710,11 +7710,5 @@ lbl_801D6BC4 = .sdata2:0x801D6BC4; // type:object size:0x4 data:float lbl_801D6BC8 = .sdata2:0x801D6BC8; // type:object size:0x4 data:float lbl_801D6BCC = .sdata2:0x801D6BCC; // type:object size:0x4 data:float lbl_801D6BD0 = .sdata2:0x801D6BD0; // type:object size:0x8 data:double -lbl_801D6BE0 = .sbss2:0x801D6BE0; // type:object size:0x1 data:byte -lbl_801D6BE1 = .sbss2:0x801D6BE1; // type:object size:0x1 data:byte -lbl_801D6BE2 = .sbss2:0x801D6BE2; // type:object size:0x1 data:byte -lbl_801D6BE3 = .sbss2:0x801D6BE3; // type:object size:0x1 data:byte -lbl_801D6BE4 = .sbss2:0x801D6BE4; // type:object size:0x1 data:byte -lbl_801D6BE5 = .sbss2:0x801D6BE5; // type:object size:0x1 data:byte -lbl_801D6BE6 = .sbss2:0x801D6BE6; // type:object size:0x1 data:byte -lbl_801D6BE7 = .sbss2:0x801D6BE7; // type:object size:0x1 data:byte +lbl_801D6BE0 = .sbss2:0x801D6BE0; // type:object size:0x4 scope:local data:byte +lbl_801D6BE4 = .sbss2:0x801D6BE4; // type:object size:0x4 scope:local data:byte diff --git a/config/GMPJ01_00/config.yml b/config/GMPJ01_00/config.yml index a8559c88..e484b407 100644 --- a/config/GMPJ01_00/config.yml +++ b/config/GMPJ01_00/config.yml @@ -3,7 +3,7 @@ object: sys/main.dol hash: abe951fa239e7cb5de67e1ac091cfbc14010d6e0 symbols: config/GMPJ01_00/symbols.txt splits: config/GMPJ01_00/splits.txt -quick_analysis: false # Faster re-runs after initial analysis +quick_analysis: true # Faster re-runs after initial analysis mw_comment_version: 10 # GC 2.6 linker force_active: [__register_global_object, _kerent] @@ -507,3 +507,41 @@ modules: symbols: config/GMPJ01_00/rels/m401Dll/symbols.txt splits: config/GMPJ01_00/rels/m401Dll/splits.txt links: [_minigameDll] + +extract: +- symbol: ank8x8_4b + binary: ank8x8_4b.bin + header: ank8x8_4b.inc +- symbol: refMapData0 + binary: refMapData0.anm + header: refMapData0.inc +- symbol: refMapData1 + binary: refMapData1.anm + header: refMapData1.inc +- symbol: refMapData2 + binary: refMapData2.anm + header: refMapData2.inc +- symbol: refMapData3 + binary: refMapData3.anm + header: refMapData3.inc +- symbol: refMapData4 + binary: refMapData4.anm + header: refMapData4.inc +- symbol: toonMapData + binary: toonMapData.anm + header: toonMapData.inc +- symbol: toonMapData2 + binary: toonMapData2.anm + header: toonMapData2.inc +- symbol: hiliteData + binary: hiliteData.anm + header: hiliteData.inc +- symbol: hiliteData2 + binary: hiliteData2.anm + header: hiliteData2.inc +- symbol: hiliteData3 + binary: hiliteData3.anm + header: hiliteData3.inc +- symbol: hiliteData4 + binary: hiliteData4.anm + header: hiliteData4.inc diff --git a/config/GMPJ01_00/splits.txt b/config/GMPJ01_00/splits.txt index f7c399a1..7e02c8f8 100644 --- a/config/GMPJ01_00/splits.txt +++ b/config/GMPJ01_00/splits.txt @@ -38,3 +38,91 @@ game/data.c: .bss start:0x801424E0 end:0x801452E0 .sdata start:0x801D30D8 end:0x801D30E8 .sbss start:0x801D37A8 end:0x801D37B8 + +game/decode.c: + .text start:0x80009400 end:0x80009AFC + .data start:0x8011F9C0 end:0x8011F9E0 + .bss start:0x801452E0 end:0x801456E0 + +game/font.c: + .data start:0x8011F9E0 end:0x801219E0 + +game/init.c: + .text start:0x80009AFC end:0x8000A464 + .data start:0x801219E0 end:0x80121B30 + .bss start:0x801456E0 end:0x80145720 + .sdata start:0x801D30E8 end:0x801D3100 + .sbss start:0x801D37B8 end:0x801D37E8 + .sdata2 start:0x801D4628 end:0x801D4638 + +game/jmp.c: + .text start:0x8000A464 end:0x8000A558 + +game/malloc.c: + .text start:0x8000A558 end:0x8000A938 + .data start:0x80121B30 end:0x80121BA8 + .bss start:0x80145720 end:0x80145738 + +game/memory.c: + .text start:0x8000A938 end:0x8000AEF0 + .data start:0x80121BA8 end:0x80121D20 + +game/printfunc.c: + .text start:0x8000AEF0 end:0x8000C4A4 + .data start:0x80121D20 end:0x80121D60 + .bss start:0x80145738 end:0x8014C038 + .sbss start:0x801D37E8 end:0x801D37F8 + .sdata2 start:0x801D4638 end:0x801D4688 + +game/process.c: + .text start:0x8000C4A4 end:0x8000D348 + .data start:0x80121D60 end:0x80121DB0 + .bss start:0x8014C038 end:0x8014C130 + .sbss start:0x801D37F8 end:0x801D3808 + +game/sprman.c: + .text start:0x8000D348 end:0x8000F6A0 + .rodata start:0x8011D8E0 end:0x8011D8F0 + .data start:0x80121DB0 end:0x80121ED0 + .bss start:0x8014C130 end:0x8015C330 + .sdata start:0x801D3100 end:0x801D3110 + .sbss start:0x801D3808 end:0x801D3810 + .sdata2 start:0x801D4688 end:0x801D46B0 + +game/sprput.c: + .text start:0x8000F6A0 end:0x80010B30 + .rodata start:0x8011D8F0 end:0x8011D900 + .data start:0x80121ED0 end:0x80121F00 + .bss start:0x8015C330 end:0x8015C360 + .sbss start:0x801D3810 end:0x801D3818 + .sdata2 start:0x801D46B0 end:0x801D46E8 + +game/hsfload.c: + .text start:0x80010B30 end:0x80014018 + .data start:0x80121F00 end:0x80121F70 + .bss start:0x8015C360 end:0x8015C920 + .sbss start:0x801D3818 end:0x801D3850 + +game/hsfdraw.c: + .text start:0x80014018 end:0x8001F9AC + .rodata start:0x8011D900 end:0x8011D910 + .data start:0x80121F70 end:0x80122180 + .bss start:0x8015C920 end:0x80167460 + .sdata start:0x801D3110 end:0x801D3128 + .sbss start:0x801D3850 end:0x801D38F0 + .sdata2 start:0x801D46E8 end:0x801D4770 + +game/hsfman.c: + .text start:0x8001F9AC end:0x800250E8 + .data start:0x80122180 end:0x8012D238 + .bss start:0x80167460 end:0x8018D070 + .sbss start:0x801D38F0 end:0x801D3920 + .sdata2 start:0x801D4770 end:0x801D47D0 + .sbss2 start:0x801D68A0 end:0x801D68A8 + +game/hsfmotion.c: + .text start:0x800250E8 end:0x80028B04 + .data start:0x8012D238 end:0x8012D418 + .bss start:0x8018D070 end:0x8018D870 + .sbss start:0x801D3920 end:0x801D3928 + .sdata2 start:0x801D47D0 end:0x801D4820 diff --git a/config/GMPJ01_00/symbols.txt b/config/GMPJ01_00/symbols.txt index 77f9a6b2..cb430d79 100644 --- a/config/GMPJ01_00/symbols.txt +++ b/config/GMPJ01_00/symbols.txt @@ -245,7 +245,7 @@ Hu3DDraw = .text:0x80014024; // type:function size:0x1A0 objCall = .text:0x800141C4; // type:function size:0xEC scope:local objMesh = .text:0x800142B0; // type:function size:0x86C scope:local ObjCullCheck = .text:0x80014B1C; // type:function size:0x4C0 -FaceDraw = .text:0x80014FDC; // type:function size:0x10DC scope:local +FaceDraw = .text:0x80014FDC; // type:function size:0x10DC SetTevStageNoTex = .text:0x800160B8; // type:function size:0x8E8 scope:local SetTevStageTex = .text:0x800169A0; // type:function size:0x2588 scope:local SetKColor = .text:0x80018F28; // type:function size:0x164 scope:local @@ -3589,9 +3589,9 @@ __init_cpp_exceptions_reference = .ctors:0x8011D8A0; // type:object size:0x4 sco _dtors = .dtors:0x8011D8C0; // type:label scope:global data:4byte __destroy_global_chain_reference = .dtors:0x8011D8C0; // type:object size:0x4 scope:global __fini_cpp_exceptions_reference = .dtors:0x8011D8C4; // type:object size:0x4 scope:global -lbl_8011D8E0 = .rodata:0x8011D8E0; // type:object size:0x10 data:4byte -lbl_8011D8F0 = .rodata:0x8011D8F0; // type:object size:0x10 data:4byte -lbl_8011D900 = .rodata:0x8011D900; // type:object size:0x10 data:4byte +lbl_8011D8E0 = .rodata:0x8011D8E0; // type:object size:0x10 scope:local data:4byte +lbl_8011D8F0 = .rodata:0x8011D8F0; // type:object size:0x10 scope:local data:4byte +lbl_8011D900 = .rodata:0x8011D900; // type:object size:0x10 scope:local data:4byte lbl_8011D910 = .rodata:0x8011D910; // type:object size:0x20 data:byte lbl_8011D930 = .rodata:0x8011D930; // type:object size:0x10 data:4byte lbl_8011D940 = .rodata:0x8011D940; // type:object size:0x24 data:4byte @@ -3823,44 +3823,57 @@ lbl_8011F829 = .data:0x8011F829; // type:object size:0x1F scope:local data:strin lbl_8011F848 = .data:0x8011F848; // type:object size:0x3C scope:local lbl_8011F884 = .data:0x8011F884; // type:object size:0x1A data:string lbl_8011F89E = .data:0x8011F89E; // type:object size:0x122 -lbl_8011F9C0 = .data:0x8011F9C0; // type:object size:0x20 -lbl_8011F9E0 = .data:0x8011F9E0; // type:object size:0x2000 -lbl_801219E0 = .data:0x801219E0; // type:object size:0x150 -lbl_80121B30 = .data:0x80121B30; // type:object size:0x78 -lbl_80121BA8 = .data:0x80121BA8; // type:object size:0x50 -lbl_80121BF8 = .data:0x80121BF8; // type:object size:0x128 -lbl_80121D20 = .data:0x80121D20; // type:object size:0x40 -lbl_80121D60 = .data:0x80121D60; // type:object size:0x1F data:string -lbl_80121D7F = .data:0x80121D7F; // type:object size:0x31 -lbl_80121DB0 = .data:0x80121DB0; // type:object size:0x12 -lbl_80121DC2 = .data:0x80121DC2; // type:object size:0x10E +lbl_8011F9C0 = .data:0x8011F9C0; // type:object size:0x20 scope:local +ank8x8_4b = .data:0x8011F9E0; // type:object size:0x2000 align:32 +lbl_801219E0 = .data:0x801219E0; // type:object size:0x150 scope:local +HeapSizeTbl = .data:0x80121B30; // type:object size:0x78 scope:local +lbl_80121BA8 = .data:0x80121BA8; // type:object size:0x50 scope:local +lbl_80121BF8 = .data:0x80121BF8; // type:object size:0x128 scope:local +fcoltbl = .data:0x80121D20; // type:object size:0x40 scope:local align:32 +lbl_80121D60 = .data:0x80121D60; // type:object size:0x1F scope:local data:string +lbl_80121D7F = .data:0x80121D7F; // type:object size:0x31 scope:local +lbl_80121DB0 = .data:0x80121DB0; // type:object size:0x12 scope:local +lbl_80121DC2 = .data:0x80121DC2; // type:object size:0x10E scope:local jumptable_80121ED0 = .data:0x80121ED0; // type:object size:0x2C scope:local jumptable_80121F00 = .data:0x80121F00; // type:object size:0x28 scope:local jumptable_80121F28 = .data:0x80121F28; // type:object size:0x2C scope:local -lbl_80121F54 = .data:0x80121F54; // type:object size:0x1C -lbl_80121F70 = .data:0x80121F70; // type:object size:0xC data:byte +lbl_80121F54 = .data:0x80121F54; // type:object size:0x1C scope:local +texMtxTbl = .data:0x80121F70; // type:object size:0xC data:byte jumptable_80121F7C = .data:0x80121F7C; // type:object size:0x28 scope:local -lbl_80121FA4 = .data:0x80121FA4; // type:object size:0x18 data:string +lbl_80121FA4 = .data:0x80121FA4; // type:object size:0x18 scope:local data:string jumptable_80121FBC = .data:0x80121FBC; // type:object size:0x28 scope:local jumptable_80121FE4 = .data:0x80121FE4; // type:object size:0x28 scope:local -lbl_8012200C = .data:0x8012200C; // type:object size:0x60 -lbl_8012206C = .data:0x8012206C; // type:object size:0x30 -lbl_8012209C = .data:0x8012209C; // type:object size:0x14 +refMtx = .data:0x8012200C; // type:object size:0x30 scope:local +kColorSelTbl = .data:0x8012203C; // type:object size:0x30 scope:local +kColorTbl = .data:0x8012206C; // type:object size:0x10 scope:local +kColorSelTbl2 = .data:0x8012207C; // type:object size:0x10 scope:local +kColorSelATbl = .data:0x8012208C; // type:object size:0x10 scope:local +lbl_8012209C = .data:0x8012209C; // type:object size:0x14 scope:local jumptable_801220B0 = .data:0x801220B0; // type:object size:0x30 scope:local jumptable_801220E0 = .data:0x801220E0; // type:object size:0x28 scope:local jumptable_80122108 = .data:0x80122108; // type:object size:0x28 scope:local -lbl_80122130 = .data:0x80122130; // type:object size:0x19 data:string -lbl_80122149 = .data:0x80122149; // type:object size:0xA data:string -lbl_80122153 = .data:0x80122153; // type:object size:0x2D -lbl_80122180 = .data:0x80122180; // type:object size:0xAFC0 -lbl_8012D140 = .data:0x8012D140; // type:object size:0x1B data:string -lbl_8012D15B = .data:0x8012D15B; // type:object size:0x16 data:string -lbl_8012D171 = .data:0x8012D171; // type:object size:0x21 data:string -lbl_8012D192 = .data:0x8012D192; // type:object size:0x26 -lbl_8012D1B8 = .data:0x8012D1B8; // type:object size:0x58 data:4byte -lbl_8012D210 = .data:0x8012D210; // type:object size:0x28 -lbl_8012D238 = .data:0x8012D238; // type:object size:0x1C data:string -lbl_8012D254 = .data:0x8012D254; // type:object size:0x1C +lbl_80122130 = .data:0x80122130; // type:object size:0x19 scope:local data:string +lbl_80122149 = .data:0x80122149; // type:object size:0xA scope:local data:string +lbl_80122153 = .data:0x80122153; // type:object size:0x2D scope:local +refMapData0 = .data:0x80122180; // type:object size:0x1240 align:32 noreloc +refMapData1 = .data:0x801233C0; // type:object size:0x1100 align:32 noreloc +refMapData2 = .data:0x801244C0; // type:object size:0x2080 align:32 noreloc +refMapData3 = .data:0x80126540; // type:object size:0x2080 align:32 noreloc +refMapData4 = .data:0x801285C0; // type:object size:0x2080 align:32 noreloc +toonMapData = .data:0x8012A640; // type:object size:0x880 align:32 noreloc +toonMapData2 = .data:0x8012AEC0; // type:object size:0x1080 align:32 noreloc +hiliteData = .data:0x8012BF40; // type:object size:0x480 align:32 noreloc +hiliteData2 = .data:0x8012C3C0; // type:object size:0x480 align:32 noreloc +hiliteData3 = .data:0x8012C840; // type:object size:0x480 align:32 noreloc +hiliteData4 = .data:0x8012CCC0; // type:object size:0x480 align:32 noreloc +lbl_8012D140 = .data:0x8012D140; // type:object size:0x1B scope:local data:string +lbl_8012D15B = .data:0x8012D15B; // type:object size:0x16 scope:local data:string +lbl_8012D171 = .data:0x8012D171; // type:object size:0x21 scope:local data:string +lbl_8012D192 = .data:0x8012D192; // type:object size:0x26 scope:local +defCamera = .data:0x8012D1B8; // type:object size:0x58 data:4byte +lbl_8012D210 = .data:0x8012D210; // type:object size:0x28 scope:local +lbl_8012D238 = .data:0x8012D238; // type:object size:0x1C scope:local data:string +lbl_8012D254 = .data:0x8012D254; // type:object size:0x1C scope:local jumptable_8012D270 = .data:0x8012D270; // type:object size:0x2C scope:local jumptable_8012D29C = .data:0x8012D29C; // type:object size:0x68 scope:local jumptable_8012D304 = .data:0x8012D304; // type:object size:0xF0 scope:local @@ -4008,7 +4021,7 @@ lbl_8012F98A = .data:0x8012F98A; // type:object size:0xF data:string lbl_8012F999 = .data:0x8012F999; // type:object size:0xF data:string lbl_8012F9A8 = .data:0x8012F9A8; // type:object size:0xF data:string lbl_8012F9B7 = .data:0x8012F9B7; // type:object size:0x11 -lbl_8012F9C8 = .data:0x8012F9C8; // type:object size:0x320 +_ovltbl = .data:0x8012F9C8; // type:object size:0x320 lbl_8012FCE8 = .data:0x8012FCE8; // type:object size:0x20 lbl_8012FD08 = .data:0x8012FD08; // type:object size:0xC lbl_8012FD14 = .data:0x8012FD14; // type:object size:0xC @@ -4272,11 +4285,11 @@ jumptable_8013D560 = .data:0x8013D560; // type:object size:0x68 scope:local jumptable_8013D5C8 = .data:0x8013D5C8; // type:object size:0x44 scope:local jumptable_8013D60C = .data:0x8013D60C; // type:object size:0x1C scope:local jumptable_8013D628 = .data:0x8013D628; // type:object size:0x54 scope:local -lbl_8013D680 = .data:0x8013D680; // type:object size:0x3C -lbl_8013D6BC = .data:0x8013D6BC; // type:object size:0x3C -lbl_8013D6F8 = .data:0x8013D6F8; // type:object size:0x3C -lbl_8013D734 = .data:0x8013D734; // type:object size:0x3C -lbl_8013D770 = .data:0x8013D770; // type:object size:0x40 +GXNtsc480IntDf = .data:0x8013D680; // type:object size:0x3C +GXNtsc480Prog = .data:0x8013D6BC; // type:object size:0x3C +GXMpal480IntDf = .data:0x8013D6F8; // type:object size:0x3C +GXPal528IntDf = .data:0x8013D734; // type:object size:0x3C +GXEurgb60Hz480IntDf = .data:0x8013D770; // type:object size:0x40 jumptable_8013D7B0 = .data:0x8013D7B0; // type:object size:0x1C scope:local jumptable_8013D7D0 = .data:0x8013D7D0; // type:object size:0xF4 scope:local jumptable_8013D8C4 = .data:0x8013D8C4; // type:object size:0xF4 scope:local @@ -4342,46 +4355,47 @@ lbl_80141C70 = .data:0x80141C70; // type:object size:0x20 lbl_80141C90 = .data:0x80141C90; // type:object size:0x800 padStatErrOld = .bss:0x801424A0; // type:object size:0x10 scope:local rumbleData = .bss:0x801424B0; // type:object size:0x20 scope:local -ReadDataStat = .bss:0x801424E0; // type:object size:0x2E00 scope:local data:4byte -lbl_801452E0 = .bss:0x801452E0; // type:object size:0x400 -lbl_801456E0 = .bss:0x801456E0; // type:object size:0x40 -lbl_80145720 = .bss:0x80145720; // type:object size:0x18 -lbl_80145738 = .bss:0x80145738; // type:object size:0x6800 -lbl_8014BF38 = .bss:0x8014BF38; // type:object size:0x100 data:byte -lbl_8014C038 = .bss:0x8014C038; // type:object size:0xF8 -lbl_8014C130 = .bss:0x8014C130; // type:object size:0x9600 -lbl_80155730 = .bss:0x80155730; // type:object size:0x5400 data:2byte -lbl_8015AB30 = .bss:0x8015AB30; // type:object size:0x1800 -lbl_8015C330 = .bss:0x8015C330; // type:object size:0x20 -lbl_8015C350 = .bss:0x8015C350; // type:object size:0x10 -lbl_8015C360 = .bss:0x8015C360; // type:object size:0x80 -lbl_8015C3E0 = .bss:0x8015C3E0; // type:object size:0x240 -lbl_8015C620 = .bss:0x8015C620; // type:object size:0x300 data:byte -lbl_8015C920 = .bss:0x8015C920; // type:object size:0x9000 -lbl_80165920 = .bss:0x80165920; // type:object size:0x20 data:4byte -lbl_80165940 = .bss:0x80165940; // type:object size:0x1200 -lbl_80166B40 = .bss:0x80166B40; // type:object size:0x480 data:4byte -lbl_80166FC0 = .bss:0x80166FC0; // type:object size:0x40 data:byte -lbl_80167000 = .bss:0x80167000; // type:object size:0x30 -lbl_80167030 = .bss:0x80167030; // type:object size:0x400 -lbl_80167430 = .bss:0x80167430; // type:object size:0xC data:float -lbl_8016743C = .bss:0x8016743C; // type:object size:0xC data:float -lbl_80167448 = .bss:0x80167448; // type:object size:0xC data:float -lbl_80167454 = .bss:0x80167454; // type:object size:0xC data:float -lbl_80167460 = .bss:0x80167460; // type:object size:0x24800 data:byte -lbl_8018BC60 = .bss:0x8018BC60; // type:object size:0x580 data:float -lbl_8018C1E0 = .bss:0x8018C1E0; // type:object size:0x10 data:2byte -lbl_8018C1F0 = .bss:0x8018C1F0; // type:object size:0x20 -lbl_8018C210 = .bss:0x8018C210; // type:object size:0x14 data:4byte -lbl_8018C224 = .bss:0x8018C224; // type:object size:0x10 data:4byte -lbl_8018C234 = .bss:0x8018C234; // type:object size:0x260 data:byte -lbl_8018C494 = .bss:0x8018C494; // type:object size:0x98 data:byte -lbl_8018C52C = .bss:0x8018C52C; // type:object size:0x10 data:4byte -lbl_8018C53C = .bss:0x8018C53C; // type:object size:0x30 -lbl_8018C56C = .bss:0x8018C56C; // type:object size:0x30 -lbl_8018C59C = .bss:0x8018C59C; // type:object size:0x220 data:2byte -lbl_8018C7BC = .bss:0x8018C7BC; // type:object size:0x8B4 data:2byte -lbl_8018D070 = .bss:0x8018D070; // type:object size:0x800 data:2byte +ReadDataStat = .bss:0x801424E0; // type:object size:0x2E00 scope:local align:32 data:4byte +TextBuffer = .bss:0x801452E0; // type:object size:0x400 +rmodeobj = .bss:0x801456E0; // type:object size:0x40 scope:local +HeapTbl = .bss:0x80145720; // type:object size:0x18 scope:local +strline = .bss:0x80145738; // type:object size:0x6800 scope:local +pfStrBuf = .bss:0x8014BF38; // type:object size:0x100 scope:local data:byte +processjmpbuf = .bss:0x8014C038; // type:object size:0xF8 scope:local align:8 +HuSprData = .bss:0x8014C130; // type:object size:0x9600 +HuSprGrpData = .bss:0x80155730; // type:object size:0x5400 data:2byte +HuSprOrder = .bss:0x8015AB30; // type:object size:0x1800 scope:local +bmpNoCC = .bss:0x8015C330; // type:object size:0x20 scope:local +HuSprLayerDrawNo = .bss:0x8015C350; // type:object size:0x10 scope:local +Model = .bss:0x8015C360; // type:object size:0x80 +head = .bss:0x8015C3E0; // type:object size:0xB0 +rgba = .bss:0x8015C490; // type:object size:0x190 +lbl_8015C620 = .bss:0x8015C620; // type:object size:0x300 scope:local data:byte +DrawObjData = .bss:0x8015C920; // type:object size:0x9000 scope:local +BmpPtrBak = .bss:0x80165920; // type:object size:0x20 scope:local data:4byte +MTXBuf = .bss:0x80165940; // type:object size:0x1200 scope:local +scaleBuf = .bss:0x80166B40; // type:object size:0x480 scope:local data:4byte +texCol = .bss:0x80166FC0; // type:object size:0x40 scope:local data:byte +hiliteMtx = .bss:0x80167000; // type:object size:0x30 scope:local +DrawObjNum = .bss:0x80167030; // type:object size:0x400 scope:local +NBTB = .bss:0x80167430; // type:object size:0xC scope:local data:float +NBTT = .bss:0x8016743C; // type:object size:0xC scope:local data:float +PGMaxPos = .bss:0x80167448; // type:object size:0xC data:float +PGMinPos = .bss:0x80167454; // type:object size:0xC data:float +Hu3DData = .bss:0x80167460; // type:object size:0x24800 data:byte +Hu3DCamera = .bss:0x8018BC60; // type:object size:0x580 data:float +layerNum = .bss:0x8018C1E0; // type:object size:0x10 scope:local data:2byte +layerHook = .bss:0x8018C1F0; // type:object size:0x20 scope:local +reflectAnim = .bss:0x8018C210; // type:object size:0x14 data:4byte +hiliteAnim = .bss:0x8018C224; // type:object size:0x10 data:4byte +Hu3DProjection = .bss:0x8018C234; // type:object size:0x260 data:byte +Hu3DShadowData = .bss:0x8018C494; // type:object size:0x98 data:byte +FogData = .bss:0x8018C52C; // type:object size:0x10 data:4byte +Hu3DCameraMtx = .bss:0x8018C53C; // type:object size:0x30 +Hu3DCameraMtxXPose = .bss:0x8018C56C; // type:object size:0x30 +Hu3DGlobalLight = .bss:0x8018C59C; // type:object size:0x220 data:2byte +Hu3DLocalLight = .bss:0x8018C7BC; // type:object size:0x880 data:2byte +Hu3DMotion = .bss:0x8018D070; // type:object size:0x800 data:2byte lbl_8018D870 = .bss:0x8018D870; // type:object size:0x1400 data:2byte lbl_8018EC70 = .bss:0x8018EC70; // type:object size:0x6C0 data:2byte lbl_8018F330 = .bss:0x8018F330; // type:object size:0x100 @@ -4389,7 +4403,7 @@ lbl_8018F430 = .bss:0x8018F430; // type:object size:0x370 lbl_8018F7A0 = .bss:0x8018F7A0; // type:object size:0x38 lbl_8018F7D8 = .bss:0x8018F7D8; // type:object size:0xC0 lbl_8018F898 = .bss:0x8018F898; // type:object size:0x18 -lbl_8018F8B0 = .bss:0x8018F8B0; // type:object size:0x28 +GWPlayerCfg = .bss:0x8018F8B0; // type:object size:0x28 lbl_8018F8D8 = .bss:0x8018F8D8; // type:object size:0xC0 data:byte lbl_8018F998 = .bss:0x8018F998; // type:object size:0xE0 data:byte lbl_8018FA78 = .bss:0x8018FA78; // type:object size:0x230 @@ -4610,15 +4624,15 @@ lbl_801D30D0 = .sdata:0x801D30D0; // type:object size:0x6 scope:local data:strin lbl_801D30D6 = .sdata:0x801D30D6; // type:object size:0x2 scope:local data:string lbl_801D30D8 = .sdata:0x801D30D8; // type:object size:0x7 scope:local data:string lbl_801D30DF = .sdata:0x801D30DF; // type:object size:0x9 scope:local -lbl_801D30E8 = .sdata:0x801D30E8; // type:object size:0x4 data:4byte -lbl_801D30EC = .sdata:0x801D30EC; // type:object size:0x7 data:string -lbl_801D30F3 = .sdata:0x801D30F3; // type:object size:0xD -lbl_801D3100 = .sdata:0x801D3100; // type:object size:0x2 data:string -lbl_801D3102 = .sdata:0x801D3102; // type:object size:0xE -lbl_801D3110 = .sdata:0x801D3110; // type:object size:0x2 data:2byte -lbl_801D3112 = .sdata:0x801D3112; // type:object size:0x4 -lbl_801D3116 = .sdata:0x801D3116; // type:object size:0x4 -lbl_801D311A = .sdata:0x801D311A; // type:object size:0xE +FirstFrame = .sdata:0x801D30E8; // type:object size:0x4 data:4byte +lbl_801D30EC = .sdata:0x801D30EC; // type:object size:0x7 scope:local data:string +lbl_801D30F3 = .sdata:0x801D30F3; // type:object size:0xD scope:local +lbl_801D3100 = .sdata:0x801D3100; // type:object size:0x2 scope:local data:string +lbl_801D3102 = .sdata:0x801D3102; // type:object size:0xE scope:local +oneceF = .sdata:0x801D3110; // type:object size:0x2 scope:local data:2byte +firstTev = .sdata:0x801D3112; // type:object size:0x4 scope:local +secondTev = .sdata:0x801D3116; // type:object size:0x4 scope:local +lbl_801D311A = .sdata:0x801D311A; // type:object size:0xE scope:local lbl_801D3128 = .sdata:0x801D3128; // type:object size:0x4 data:string lbl_801D312C = .sdata:0x801D312C; // type:object size:0xC lbl_801D3138 = .sdata:0x801D3138; // type:object size:0x1 data:byte @@ -4826,15 +4840,15 @@ lbl_801D3536 = .sdata:0x801D3536; // type:object size:0x4 data:string lbl_801D353A = .sdata:0x801D353A; // type:object size:0x5 data:string lbl_801D353F = .sdata:0x801D353F; // type:object size:0x5 data:string lbl_801D3544 = .sdata:0x801D3544; // type:object size:0xC -lbl_801D3550 = .sdata:0x801D3550; // type:object size:0x1 data:byte -lbl_801D3552 = .sdata:0x801D3552; // type:object size:0x2 data:2byte -lbl_801D3554 = .sdata:0x801D3554; // type:object size:0x2 data:2byte -lbl_801D3556 = .sdata:0x801D3556; // type:object size:0x2 data:2byte -lbl_801D3558 = .sdata:0x801D3558; // type:object size:0x2 data:2byte -lbl_801D355A = .sdata:0x801D355A; // type:object size:0x2 data:2byte -lbl_801D355C = .sdata:0x801D355C; // type:object size:0x2 data:2byte -lbl_801D355E = .sdata:0x801D355E; // type:object size:0x2 data:2byte -lbl_801D3560 = .sdata:0x801D3560; // type:object size:0x8 data:4byte +pausePad = .sdata:0x801D3550; // type:object size:0x1 scope:local data:byte +pauseSprGrp = .sdata:0x801D3552; // type:object size:0x2 scope:local data:2byte +padConfigSprGrp = .sdata:0x801D3554; // type:object size:0x2 scope:local data:2byte +pauseCursorPos = .sdata:0x801D3556; // type:object size:0x2 scope:local data:2byte +settingsControlWin = .sdata:0x801D3558; // type:object size:0x2 scope:local data:2byte +controlWin = .sdata:0x801D355A; // type:object size:0x2 scope:local data:2byte +quitWin = .sdata:0x801D355C; // type:object size:0x2 scope:local data:2byte +settingsWin = .sdata:0x801D355E; // type:object size:0x2 scope:local data:2byte +__OSCurrHeap = .sdata:0x801D3560; // type:object size:0x8 data:4byte __OSArenaLo = .sdata:0x801D3568; // type:object size:0x4 scope:local data:4byte @32 = .sdata:0x801D3570; // type:object size:0x2 scope:local data:string lbl_801D3578 = .sdata:0x801D3578; // type:object size:0x8 data:2byte @@ -4940,121 +4954,115 @@ DirDataSize = .sbss:0x801D37B0; // type:object size:0x4 data:4byte DemoStatEnable = .sbss:0x801D37B8; // type:object size:0x4 scope:local data:4byte worstVcount = .sbss:0x801D37BC; // type:object size:0x4 data:4byte minimumVcountf = .sbss:0x801D37C0; // type:object size:0x4 data:float -DemoCurrentBuffer = .sbss:0x801D37C4; // type:object size:0x4 data:4byte -DemoFrameBuffer2 = .sbss:0x801D37C8; // type:object size:0x4 data:4byte -DemoFrameBuffer1 = .sbss:0x801D37CC; // type:object size:0x4 data:4byte -DefaultFifoObj = .sbss:0x801D37D0; // type:object size:0x4 scope:local data:4byte -DefaultFifo = .sbss:0x801D37D4; // type:object size:0x4 scope:local data:4byte -currentHeapHandle = .sbss:0x801D37D8; // type:object size:0x4 data:4byte -RenderMode = .sbss:0x801D37DC; // type:object size:0x4 data:4byte -saftyFrameF = .sbss:0x801D37E0; // type:object size:0x8 data:4byte -strlinecnt = .sbss:0x801D37E8; // type:object size:0x4 data:4byte -empstrline = .sbss:0x801D37EC; // type:object size:0x2 data:2byte -fontcolor = .sbss:0x801D37EE; // type:object size:0x2 data:2byte -procfunc = .sbss:0x801D37F0; // type:object size:0x8 data:4byte -processcnt = .sbss:0x801D37F8; // type:object size:0x4 scope:local data:4byte -processcur = .sbss:0x801D37FC; // type:object size:0x2 scope:local data:2byte -processtop = .sbss:0x801D3800; // type:object size:0x4 scope:local data:4byte -HuSprPauseF = .sbss:0x801D3804; // type:object size:0x4 scope:local data:4byte -HuSprOrderNo = .sbss:0x801D3808; // type:object size:0x4 scope:local data:4byte -HuSprOrderNum = .sbss:0x801D380C; // type:object size:0x2 scope:local data:2byte -bmpCCIdx = .sbss:0x801D380E; // type:object size:0x2 scope:local data:2byte -MaterialTop = .sbss:0x801D3810; // type:object size:0x8 data:2byte -AttributeTop = .sbss:0x801D3818; // type:object size:0x4 data:4byte -ClusterTop = .sbss:0x801D381C; // type:object size:0x4 data:4byte -vtxtop = .sbss:0x801D3820; // type:object size:0x4 data:4byte -objtop = .sbss:0x801D3824; // type:object size:0x4 data:4byte -NSymIndex = .sbss:0x801D3828; // type:object size:0x4 data:4byte -DicStringTable = .sbss:0x801D382C; // type:object size:0x4 data:4byte -StringTable = .sbss:0x801D3830; // type:object size:0x4 data:4byte -fileptr = .sbss:0x801D3834; // type:object size:0x4 data:4byte -NormalDataTop = .sbss:0x801D3838; // type:object size:0x4 scope:local data:4byte -VertexDataTop = .sbss:0x801D383C; // type:object size:0x4 scope:local data:4byte -MotionModel = .sbss:0x801D3840; // type:object size:0x4 scope:local data:4byte -MotionOnly = .sbss:0x801D3844; // type:object size:0x4 scope:local data:4byte -CancelTRXF = .sbss:0x801D3848; // type:object size:0x8 scope:local data:4byte -TL32F = .sbss:0x801D3850; // type:object size:0x4 scope:local data:4byte -PGName = .sbss:0x801D3854; // type:object size:0x4 scope:local data:4byte -PGFinishF = .sbss:0x801D3858; // type:object size:0x4 scope:local data:4byte -polySize = .sbss:0x801D385C; // type:object size:0x4 scope:local data:4byte -curModelID = .sbss:0x801D3860; // type:object size:0x2 scope:local data:2byte -mallocNo = .sbss:0x801D3864; // type:object size:0x4 scope:local data:4byte -totalSize = .sbss:0x801D3868; // type:object size:0x4 scope:local data:4byte -DLTotalNum = .sbss:0x801D386C; // type:object size:0x4 scope:local data:4byte -faceNumBuf = .sbss:0x801D3870; // type:object size:0x4 scope:local data:4byte -faceCnt = .sbss:0x801D3874; // type:object size:0x4 scope:local data:4byte -quadCnt = .sbss:0x801D3878; // type:object size:0x2 scope:local data:2byte -triCnt = .sbss:0x801D387A; // type:object size:0x2 scope:local data:2byte -matChgCnt = .sbss:0x801D387C; // type:object size:0x2 scope:local data:2byte -DLFirstF = .sbss:0x801D387E; // type:object size:0x2 scope:local data:2byte -modelObjNum = .sbss:0x801D3880; // type:object size:0x4 data:4byte -modelMeshNum = .sbss:0x801D3884; // type:object size:0x2 data:2byte -totalTexCacheCnted = .sbss:0x801D3886; // type:object size:0x2 data:2byte -totalTexCacheCnt = .sbss:0x801D3888; // type:object size:0x4 data:4byte -totalTexCnted = .sbss:0x801D388C; // type:object size:0x4 data:4byte -totalTexCnt = .sbss:0x801D3890; // type:object size:0x4 data:4byte -totalMatCnted = .sbss:0x801D3894; // type:object size:0x4 data:4byte -totalMatCnt = .sbss:0x801D3898; // type:object size:0x4 data:4byte -totalPolyCnted = .sbss:0x801D389C; // type:object size:0x4 data:4byte -totalPolyCnt = .sbss:0x801D38A0; // type:object size:0x4 data:4byte -hookIdx = .sbss:0x801D38A4; // type:object size:0x4 scope:local data:4byte -kColorIdx = .sbss:0x801D38A8; // type:object size:0x2 scope:local data:2byte -kColor = .sbss:0x801D38AC; // type:object size:0x4 scope:local data:4byte -projectionMapNo = .sbss:0x801D38B0; // type:object size:0x1 scope:local data:byte -toonMapNo = .sbss:0x801D38B1; // type:object size:0x1 scope:local data:byte -shadowMapNo = .sbss:0x801D38B2; // type:object size:0x1 scope:local data:byte -attachMotionF = .sbss:0x801D38B3; // type:object size:0x1 scope:local data:byte -vtxModeBak = .sbss:0x801D38B4; // type:object size:0x2 scope:local data:2byte -hiliteMapNo = .sbss:0x801D38B6; // type:object size:0x2 scope:local data:2byte -reflectionMapNo = .sbss:0x801D38B8; // type:object size:0x2 scope:local data:2byte -Hu3DObjInfoP = .sbss:0x801D38BC; // type:object size:0x4 scope:local data:4byte -DrawObjIdx = .sbss:0x801D38C0; // type:object size:0x2 scope:local data:2byte -lightBit = .sbss:0x801D38C2; // type:object size:0x2 scope:local data:2byte -drawCnt = .sbss:0x801D38C4; // type:object size:0x2 scope:local data:2byte -DrawData = .sbss:0x801D38C8; // type:object size:0x4 scope:local data:4byte -DLBufStartP = .sbss:0x801D38CC; // type:object size:0x2 scope:local data:2byte -DLBufP = .sbss:0x801D38CE; // type:object size:0x2 scope:local data:2byte -shadingBak = .sbss:0x801D38D0; // type:object size:0x4 scope:local data:4byte -polyTypeBak = .sbss:0x801D38D4; // type:object size:0x4 scope:local data:4byte -materialBak = .sbss:0x801D38D8; // type:object size:0x4 scope:local data:4byte -MTXIdx = .sbss:0x801D38DC; // type:object size:0x4 data:4byte -modelKillAllF = .sbss:0x801D38E0; // type:object size:0x4 data:4byte -NoSyncF = .sbss:0x801D38E4; // type:object size:0x1 scope:local data:byte -Hu3DCameraExistF = .sbss:0x801D38E8; // type:object size:0x4 data:4byte -Hu3DPauseF = .sbss:0x801D38EC; // type:object size:0x2 data:2byte -Hu3DMallocNo = .sbss:0x801D38F0; // type:object size:0x4 data:4byte -Hu3DCameraBit = .sbss:0x801D38F4; // type:object size:0x2 data:2byte -Hu3DCameraNo = .sbss:0x801D38F6; // type:object size:0x2 data:2byte -Hu3DProjectionNum = .sbss:0x801D38F8; // type:object size:0x2 data:2byte -shadowModelDrawF = .sbss:0x801D38FC; // type:object size:0x4 data:4byte -Hu3DShadowF = .sbss:0x801D3900; // type:object size:0x2 data:2byte -Hu3DShadowCamBit = .sbss:0x801D3902; // type:object size:0x2 data:2byte -toonAnim = .sbss:0x801D3904; // type:object size:0x2 data:2byte -BGColor = .sbss:0x801D3908; // type:object size:0x4 data:4byte -bitMapPtr = .sbss:0x801D390C; // type:object size:0x4 scope:local data:4byte -metf = .sbss:0x801D3910; // type:object size:0x2 scope:local data:2byte -tokenEndF = .sbss:0x801D3914; // type:object size:0x4 scope:local data:4byte -total_copy_clks = .sbss:0x801D3918; // type:object size:0x2 scope:local data:2byte -clr_pixels_in = .sbss:0x801D391A; // type:object size:0x1 scope:local data:byte -bot_pixels_out = .sbss:0x801D391B; // type:object size:0x1 scope:local data:byte -bot_pixels_in = .sbss:0x801D391C; // type:object size:0x1 scope:local data:byte -top_pixels_out = .sbss:0x801D391D; // type:object size:0x1 scope:local data:byte -top_pixels_in = .sbss:0x801D3920; // type:object size:0x8 scope:local data:4byte -fi_req = .sbss:0x801D3928; // type:object size:0x1 scope:local data:byte -rf_req = .sbss:0x801D392A; // type:object size:0x2 scope:local data:2byte -pe_req = .sbss:0x801D392C; // type:object size:0x4 scope:local data:4byte -vi_req = .sbss:0x801D3930; // type:object size:0x4 scope:local -io_req = .sbss:0x801D3934; // type:object size:0x4 scope:local -dsp_req = .sbss:0x801D3938; // type:object size:0x4 scope:local -cpu_wr_req = .sbss:0x801D393C; // type:object size:0x4 scope:local -cpu_rd_req = .sbss:0x801D3940; // type:object size:0x4 scope:local -tc_req = .sbss:0x801D3944; // type:object size:0x4 scope:local -cp_req = .sbss:0x801D3948; // type:object size:0x4 scope:local -vstall = .sbss:0x801D394C; // type:object size:0x4 scope:local -vmiss = .sbss:0x801D3950; // type:object size:0x4 scope:local -vcheck = .sbss:0x801D3954; // type:object size:0x4 scope:local -met1 = .sbss:0x801D3958; // type:object size:0x4 scope:local -met0 = .sbss:0x801D395C; // type:object size:0x4 scope:local +minimumVcount = .sbss:0x801D37C4; // type:object size:0x4 data:4byte +DemoCurrentBuffer = .sbss:0x801D37C8; // type:object size:0x4 data:4byte +DemoFrameBuffer2 = .sbss:0x801D37CC; // type:object size:0x4 data:4byte +DemoFrameBuffer1 = .sbss:0x801D37D0; // type:object size:0x4 scope:local data:4byte +DefaultFifoObj = .sbss:0x801D37D4; // type:object size:0x4 scope:local data:4byte +DefaultFifo = .sbss:0x801D37D8; // type:object size:0x4 data:4byte +currentHeapHandle = .sbss:0x801D37DC; // type:object size:0x4 data:4byte +RenderMode = .sbss:0x801D37E0; // type:object size:0x8 data:4byte +saftyFrameF = .sbss:0x801D37E8; // type:object size:0x4 data:4byte +strlinecnt = .sbss:0x801D37EC; // type:object size:0x2 data:2byte +empstrline = .sbss:0x801D37EE; // type:object size:0x2 data:2byte +fontcolor = .sbss:0x801D37F0; // type:object size:0x8 data:4byte +procfunc = .sbss:0x801D37F8; // type:object size:0x4 data:4byte +processcnt = .sbss:0x801D37FC; // type:object size:0x2 scope:local data:2byte +processcur = .sbss:0x801D3800; // type:object size:0x4 scope:local data:4byte +processtop = .sbss:0x801D3804; // type:object size:0x4 scope:local data:4byte +HuSprPauseF = .sbss:0x801D3808; // type:object size:0x4 scope:local data:4byte +HuSprOrderNo = .sbss:0x801D380C; // type:object size:0x2 scope:local data:2byte +HuSprOrderNum = .sbss:0x801D380E; // type:object size:0x2 scope:local data:2byte +bmpCCIdx = .sbss:0x801D3810; // type:object size:0x8 scope:local data:2byte +MaterialTop = .sbss:0x801D3818; // type:object size:0x4 data:4byte +AttributeTop = .sbss:0x801D381C; // type:object size:0x4 data:4byte +ClusterTop = .sbss:0x801D3820; // type:object size:0x4 data:4byte +vtxtop = .sbss:0x801D3824; // type:object size:0x4 data:4byte +objtop = .sbss:0x801D3828; // type:object size:0x4 data:4byte +NSymIndex = .sbss:0x801D382C; // type:object size:0x4 data:4byte +DicStringTable = .sbss:0x801D3830; // type:object size:0x4 data:4byte +StringTable = .sbss:0x801D3834; // type:object size:0x4 data:4byte +fileptr = .sbss:0x801D3838; // type:object size:0x4 data:4byte +NormalDataTop = .sbss:0x801D383C; // type:object size:0x4 scope:local data:4byte +VertexDataTop = .sbss:0x801D3840; // type:object size:0x4 scope:local data:4byte +MotionModel = .sbss:0x801D3844; // type:object size:0x4 scope:local data:4byte +MotionOnly = .sbss:0x801D3848; // type:object size:0x8 scope:local data:4byte +CancelTRXF = .sbss:0x801D3850; // type:object size:0x4 scope:local data:4byte +TL32F = .sbss:0x801D3854; // type:object size:0x4 scope:local data:4byte +PGName = .sbss:0x801D3858; // type:object size:0x4 scope:local data:4byte +PGFinishF = .sbss:0x801D385C; // type:object size:0x4 scope:local data:4byte +polySize = .sbss:0x801D3860; // type:object size:0x2 scope:local data:2byte +curModelID = .sbss:0x801D3864; // type:object size:0x4 scope:local data:4byte +mallocNo = .sbss:0x801D3868; // type:object size:0x4 scope:local data:4byte +totalSize = .sbss:0x801D386C; // type:object size:0x4 scope:local data:4byte +DLTotalNum = .sbss:0x801D3870; // type:object size:0x4 scope:local data:4byte +faceNumBuf = .sbss:0x801D3874; // type:object size:0x4 scope:local data:4byte +faceCnt = .sbss:0x801D3878; // type:object size:0x2 scope:local data:2byte +quadCnt = .sbss:0x801D387A; // type:object size:0x2 scope:local data:2byte +triCnt = .sbss:0x801D387C; // type:object size:0x2 scope:local data:2byte +matChgCnt = .sbss:0x801D387E; // type:object size:0x2 scope:local data:2byte +DLFirstF = .sbss:0x801D3880; // type:object size:0x4 scope:local data:4byte +modelObjNum = .sbss:0x801D3884; // type:object size:0x2 data:2byte +modelMeshNum = .sbss:0x801D3886; // type:object size:0x2 data:2byte +totalTexCacheCnted = .sbss:0x801D3888; // type:object size:0x4 data:4byte +totalTexCacheCnt = .sbss:0x801D388C; // type:object size:0x4 data:4byte +totalTexCnted = .sbss:0x801D3890; // type:object size:0x4 data:4byte +totalTexCnt = .sbss:0x801D3894; // type:object size:0x4 data:4byte +totalMatCnted = .sbss:0x801D3898; // type:object size:0x4 data:4byte +totalMatCnt = .sbss:0x801D389C; // type:object size:0x4 data:4byte +totalPolyCnted = .sbss:0x801D38A0; // type:object size:0x4 data:4byte +totalPolyCnt = .sbss:0x801D38A4; // type:object size:0x4 data:4byte +hookIdx = .sbss:0x801D38A8; // type:object size:0x2 scope:local data:2byte +kColorIdx = .sbss:0x801D38AC; // type:object size:0x4 scope:local data:4byte +kColor = .sbss:0x801D38B0; // type:object size:0x4 scope:local data:byte +projectionMapNo = .sbss:0x801D38B4; // type:object size:0x2 scope:local data:2byte +toonMapNo = .sbss:0x801D38B6; // type:object size:0x2 scope:local data:2byte +shadowMapNo = .sbss:0x801D38B8; // type:object size:0x2 scope:local data:2byte +attachMotionF = .sbss:0x801D38BC; // type:object size:0x4 scope:local data:4byte +vtxModeBak = .sbss:0x801D38C0; // type:object size:0x2 scope:local data:2byte +hiliteMapNo = .sbss:0x801D38C2; // type:object size:0x2 scope:local data:2byte +reflectionMapNo = .sbss:0x801D38C4; // type:object size:0x2 scope:local data:2byte +Hu3DObjInfoP = .sbss:0x801D38C8; // type:object size:0x4 scope:local data:4byte +DrawObjIdx = .sbss:0x801D38CC; // type:object size:0x2 scope:local data:2byte +lightBit = .sbss:0x801D38CE; // type:object size:0x2 scope:local data:2byte +drawCnt = .sbss:0x801D38D0; // type:object size:0x4 scope:local data:4byte +DrawData = .sbss:0x801D38D4; // type:object size:0x4 scope:local data:4byte +DLBufStartP = .sbss:0x801D38D8; // type:object size:0x4 scope:local data:4byte +DLBufP = .sbss:0x801D38DC; // type:object size:0x4 scope:local data:4byte +shadingBak = .sbss:0x801D38E0; // type:object size:0x4 scope:local data:4byte +polyTypeBak = .sbss:0x801D38E4; // type:object size:0x1 scope:local data:byte +materialBak = .sbss:0x801D38E8; // type:object size:0x4 scope:local data:4byte +MTXIdx = .sbss:0x801D38EC; // type:object size:0x2 data:2byte +modelKillAllF = .sbss:0x801D38F0; // type:object size:0x4 data:4byte +NoSyncF = .sbss:0x801D38F4; // type:object size:0x2 scope:local data:2byte +Hu3DCameraExistF = .sbss:0x801D38F6; // type:object size:0x2 data:2byte +Hu3DPauseF = .sbss:0x801D38F8; // type:object size:0x2 data:2byte +Hu3DMallocNo = .sbss:0x801D38FC; // type:object size:0x4 data:4byte +Hu3DCameraBit = .sbss:0x801D3900; // type:object size:0x2 data:2byte +Hu3DCameraNo = .sbss:0x801D3902; // type:object size:0x2 data:2byte +Hu3DProjectionNum = .sbss:0x801D3904; // type:object size:0x2 data:2byte +shadowModelDrawF = .sbss:0x801D3908; // type:object size:0x4 data:4byte +Hu3DShadowF = .sbss:0x801D390C; // type:object size:0x4 data:4byte +Hu3DShadowCamBit = .sbss:0x801D3910; // type:object size:0x2 data:2byte +toonAnim = .sbss:0x801D3914; // type:object size:0x4 data:4byte +reflectMapNo = .sbss:0x801D3918; // type:object size:0x2 data:2byte +BGColor = .sbss:0x801D391A; // type:object size:0x4 data:byte +bitMapPtr = .sbss:0x801D3920; // type:object size:0x4 scope:local data:4byte +metf = .sbss:0x801D3928; // type:object size:0x1 data:byte +tokenEndF = .sbss:0x801D392A; // type:object size:0x2 data:2byte +total_copy_clks = .sbss:0x801D392C; // type:object size:0x4 data:4byte +clr_pixels_in = .sbss:0x801D3930; // type:object size:0x4 +lbl_801D3934 = .sbss:0x801D3934; // type:object size:0x4 +lbl_801D3938 = .sbss:0x801D3938; // type:object size:0x4 +lbl_801D393C = .sbss:0x801D393C; // type:object size:0x4 +lbl_801D3940 = .sbss:0x801D3940; // type:object size:0x4 +lbl_801D3944 = .sbss:0x801D3944; // type:object size:0x4 +lbl_801D3948 = .sbss:0x801D3948; // type:object size:0x4 +lbl_801D394C = .sbss:0x801D394C; // type:object size:0x4 +lbl_801D3950 = .sbss:0x801D3950; // type:object size:0x4 +lbl_801D3954 = .sbss:0x801D3954; // type:object size:0x4 +lbl_801D3958 = .sbss:0x801D3958; // type:object size:0x4 +lbl_801D395C = .sbss:0x801D395C; // type:object size:0x4 lbl_801D3960 = .sbss:0x801D3960; // type:object size:0x4 lbl_801D3964 = .sbss:0x801D3964; // type:object size:0x4 lbl_801D3968 = .sbss:0x801D3968; // type:object size:0x4 @@ -5811,95 +5819,95 @@ lbl_801D4604 = .sbss:0x801D4604; // type:object size:0x4 data:4byte lbl_801D4608 = .sbss:0x801D4608; // type:object size:0x4 data:4byte lbl_801D460C = .sbss:0x801D460C; // type:object size:0x1 data:byte lbl_801D4620 = .sdata2:0x801D4620; // type:object size:0x8 scope:local data:double -lbl_801D4628 = .sdata2:0x801D4628; // type:object size:0x4 data:float -lbl_801D462C = .sdata2:0x801D462C; // type:object size:0x4 data:float -lbl_801D4630 = .sdata2:0x801D4630; // type:object size:0x8 data:double -lbl_801D4638 = .sdata2:0x801D4638; // type:object size:0x4 data:float -lbl_801D463C = .sdata2:0x801D463C; // type:object size:0x4 data:float -lbl_801D4640 = .sdata2:0x801D4640; // type:object size:0x4 data:float -lbl_801D4644 = .sdata2:0x801D4644; // type:object size:0x4 data:float -lbl_801D4648 = .sdata2:0x801D4648; // type:object size:0x4 data:float -lbl_801D464C = .sdata2:0x801D464C; // type:object size:0x4 data:float -lbl_801D4650 = .sdata2:0x801D4650; // type:object size:0x4 data:float -lbl_801D4654 = .sdata2:0x801D4654; // type:object size:0x4 data:float -lbl_801D4658 = .sdata2:0x801D4658; // type:object size:0x4 data:float -lbl_801D4660 = .sdata2:0x801D4660; // type:object size:0x8 data:double -lbl_801D4668 = .sdata2:0x801D4668; // type:object size:0x8 data:double -lbl_801D4670 = .sdata2:0x801D4670; // type:object size:0x4 data:float -lbl_801D4674 = .sdata2:0x801D4674; // type:object size:0x4 data:float -lbl_801D4678 = .sdata2:0x801D4678; // type:object size:0x4 data:float -lbl_801D467C = .sdata2:0x801D467C; // type:object size:0x4 data:float -lbl_801D4680 = .sdata2:0x801D4680; // type:object size:0x8 data:float -lbl_801D4688 = .sdata2:0x801D4688; // type:object size:0x4 data:float -lbl_801D468C = .sdata2:0x801D468C; // type:object size:0x4 data:float -lbl_801D4690 = .sdata2:0x801D4690; // type:object size:0x4 data:float -lbl_801D4698 = .sdata2:0x801D4698; // type:object size:0x8 data:double -lbl_801D46A0 = .sdata2:0x801D46A0; // type:object size:0x8 data:double -lbl_801D46A8 = .sdata2:0x801D46A8; // type:object size:0x8 data:float -lbl_801D46B0 = .sdata2:0x801D46B0; // type:object size:0x4 data:float -lbl_801D46B4 = .sdata2:0x801D46B4; // type:object size:0x4 data:float -lbl_801D46B8 = .sdata2:0x801D46B8; // type:object size:0x4 data:float -lbl_801D46BC = .sdata2:0x801D46BC; // type:object size:0x4 data:float -lbl_801D46C0 = .sdata2:0x801D46C0; // type:object size:0x4 data:float -lbl_801D46C4 = .sdata2:0x801D46C4; // type:object size:0x4 data:float -lbl_801D46C8 = .sdata2:0x801D46C8; // type:object size:0x4 data:float -lbl_801D46D0 = .sdata2:0x801D46D0; // type:object size:0x8 data:double -lbl_801D46D8 = .sdata2:0x801D46D8; // type:object size:0x8 data:double -lbl_801D46E0 = .sdata2:0x801D46E0; // type:object size:0x8 data:double -lbl_801D46E8 = .sdata2:0x801D46E8; // type:object size:0x4 data:float -lbl_801D46EC = .sdata2:0x801D46EC; // type:object size:0x4 data:float -lbl_801D46F0 = .sdata2:0x801D46F0; // type:object size:0x4 data:float -lbl_801D46F4 = .sdata2:0x801D46F4; // type:object size:0x4 data:float -lbl_801D46F8 = .sdata2:0x801D46F8; // type:object size:0x8 data:double -lbl_801D4700 = .sdata2:0x801D4700; // type:object size:0x8 data:double -lbl_801D4708 = .sdata2:0x801D4708; // type:object size:0x8 data:double -lbl_801D4710 = .sdata2:0x801D4710; // type:object size:0x8 data:double -lbl_801D4718 = .sdata2:0x801D4718; // type:object size:0x4 data:float -lbl_801D4720 = .sdata2:0x801D4720; // type:object size:0x8 data:double -lbl_801D4728 = .sdata2:0x801D4728; // type:object size:0x4 data:float -lbl_801D472C = .sdata2:0x801D472C; // type:object size:0x4 data:float -lbl_801D4730 = .sdata2:0x801D4730; // type:object size:0x4 data:float -lbl_801D4734 = .sdata2:0x801D4734; // type:object size:0x4 data:float -lbl_801D4738 = .sdata2:0x801D4738; // type:object size:0x8 data:double -lbl_801D4740 = .sdata2:0x801D4740; // type:object size:0x4 data:float -lbl_801D4744 = .sdata2:0x801D4744; // type:object size:0x4 data:float -lbl_801D4748 = .sdata2:0x801D4748; // type:object size:0x4 data:float -lbl_801D474C = .sdata2:0x801D474C; // type:object size:0x4 data:float -lbl_801D4750 = .sdata2:0x801D4750; // type:object size:0x8 data:double -lbl_801D4758 = .sdata2:0x801D4758; // type:object size:0x4 data:float -lbl_801D4760 = .sdata2:0x801D4760; // type:object size:0x8 data:double -lbl_801D4768 = .sdata2:0x801D4768; // type:object size:0x4 data:float -lbl_801D476C = .sdata2:0x801D476C; // type:object size:0x4 data:float -lbl_801D4770 = .sdata2:0x801D4770; // type:object size:0x4 data:float -lbl_801D4774 = .sdata2:0x801D4774; // type:object size:0x4 data:float -lbl_801D4778 = .sdata2:0x801D4778; // type:object size:0x4 data:float -lbl_801D4780 = .sdata2:0x801D4780; // type:object size:0x8 data:double -lbl_801D4788 = .sdata2:0x801D4788; // type:object size:0x8 data:double -lbl_801D4790 = .sdata2:0x801D4790; // type:object size:0x8 data:double -lbl_801D4798 = .sdata2:0x801D4798; // type:object size:0x8 data:double -lbl_801D47A0 = .sdata2:0x801D47A0; // type:object size:0x4 data:float -lbl_801D47A4 = .sdata2:0x801D47A4; // type:object size:0x4 data:float -lbl_801D47A8 = .sdata2:0x801D47A8; // type:object size:0x4 data:float -lbl_801D47AC = .sdata2:0x801D47AC; // type:object size:0x4 data:float -lbl_801D47B0 = .sdata2:0x801D47B0; // type:object size:0x4 data:float -lbl_801D47B4 = .sdata2:0x801D47B4; // type:object size:0x4 data:float -lbl_801D47B8 = .sdata2:0x801D47B8; // type:object size:0x4 data:float -lbl_801D47BC = .sdata2:0x801D47BC; // type:object size:0x4 data:float -lbl_801D47C0 = .sdata2:0x801D47C0; // type:object size:0x8 data:double -lbl_801D47C8 = .sdata2:0x801D47C8; // type:object size:0x8 data:float -lbl_801D47D0 = .sdata2:0x801D47D0; // type:object size:0x4 data:float -lbl_801D47D4 = .sdata2:0x801D47D4; // type:object size:0x4 data:float -lbl_801D47D8 = .sdata2:0x801D47D8; // type:object size:0x8 data:double -lbl_801D47E0 = .sdata2:0x801D47E0; // type:object size:0x8 data:double -lbl_801D47E8 = .sdata2:0x801D47E8; // type:object size:0x4 data:float -lbl_801D47EC = .sdata2:0x801D47EC; // type:object size:0x4 data:float -lbl_801D47F0 = .sdata2:0x801D47F0; // type:object size:0x4 data:float -lbl_801D47F8 = .sdata2:0x801D47F8; // type:object size:0x8 data:double -lbl_801D4800 = .sdata2:0x801D4800; // type:object size:0x8 data:double -lbl_801D4808 = .sdata2:0x801D4808; // type:object size:0x8 data:double -lbl_801D4810 = .sdata2:0x801D4810; // type:object size:0x4 data:float -lbl_801D4814 = .sdata2:0x801D4814; // type:object size:0x4 data:float -lbl_801D4818 = .sdata2:0x801D4818; // type:object size:0x8 data:float +lbl_801D4628 = .sdata2:0x801D4628; // type:object size:0x4 scope:local data:float +lbl_801D462C = .sdata2:0x801D462C; // type:object size:0x4 scope:local data:float +lbl_801D4630 = .sdata2:0x801D4630; // type:object size:0x8 scope:local data:double +lbl_801D4638 = .sdata2:0x801D4638; // type:object size:0x4 scope:local data:float +lbl_801D463C = .sdata2:0x801D463C; // type:object size:0x4 scope:local data:float +lbl_801D4640 = .sdata2:0x801D4640; // type:object size:0x4 scope:local data:float +lbl_801D4644 = .sdata2:0x801D4644; // type:object size:0x4 scope:local data:float +lbl_801D4648 = .sdata2:0x801D4648; // type:object size:0x4 scope:local data:float +lbl_801D464C = .sdata2:0x801D464C; // type:object size:0x4 scope:local data:float +lbl_801D4650 = .sdata2:0x801D4650; // type:object size:0x4 scope:local data:float +lbl_801D4654 = .sdata2:0x801D4654; // type:object size:0x4 scope:local data:float +lbl_801D4658 = .sdata2:0x801D4658; // type:object size:0x4 scope:local data:float +lbl_801D4660 = .sdata2:0x801D4660; // type:object size:0x8 scope:local data:double +lbl_801D4668 = .sdata2:0x801D4668; // type:object size:0x8 scope:local data:double +lbl_801D4670 = .sdata2:0x801D4670; // type:object size:0x4 scope:local data:float +lbl_801D4674 = .sdata2:0x801D4674; // type:object size:0x4 scope:local data:float +lbl_801D4678 = .sdata2:0x801D4678; // type:object size:0x4 scope:local data:float +lbl_801D467C = .sdata2:0x801D467C; // type:object size:0x4 scope:local data:float +lbl_801D4680 = .sdata2:0x801D4680; // type:object size:0x8 scope:local data:float +lbl_801D4688 = .sdata2:0x801D4688; // type:object size:0x4 scope:local data:float +lbl_801D468C = .sdata2:0x801D468C; // type:object size:0x4 scope:local data:float +lbl_801D4690 = .sdata2:0x801D4690; // type:object size:0x4 scope:local data:float +lbl_801D4698 = .sdata2:0x801D4698; // type:object size:0x8 scope:local data:double +lbl_801D46A0 = .sdata2:0x801D46A0; // type:object size:0x8 scope:local data:double +lbl_801D46A8 = .sdata2:0x801D46A8; // type:object size:0x8 scope:local data:float +lbl_801D46B0 = .sdata2:0x801D46B0; // type:object size:0x4 scope:local data:float +lbl_801D46B4 = .sdata2:0x801D46B4; // type:object size:0x4 scope:local data:float +lbl_801D46B8 = .sdata2:0x801D46B8; // type:object size:0x4 scope:local data:float +lbl_801D46BC = .sdata2:0x801D46BC; // type:object size:0x4 scope:local data:float +lbl_801D46C0 = .sdata2:0x801D46C0; // type:object size:0x4 scope:local data:float +lbl_801D46C4 = .sdata2:0x801D46C4; // type:object size:0x4 scope:local data:float +lbl_801D46C8 = .sdata2:0x801D46C8; // type:object size:0x4 scope:local data:float +lbl_801D46D0 = .sdata2:0x801D46D0; // type:object size:0x8 scope:local data:double +lbl_801D46D8 = .sdata2:0x801D46D8; // type:object size:0x8 scope:local data:double +lbl_801D46E0 = .sdata2:0x801D46E0; // type:object size:0x8 scope:local data:double +lbl_801D46E8 = .sdata2:0x801D46E8; // type:object size:0x4 scope:local data:float +lbl_801D46EC = .sdata2:0x801D46EC; // type:object size:0x4 scope:local data:float +lbl_801D46F0 = .sdata2:0x801D46F0; // type:object size:0x4 scope:local data:float +lbl_801D46F4 = .sdata2:0x801D46F4; // type:object size:0x4 scope:local data:float +lbl_801D46F8 = .sdata2:0x801D46F8; // type:object size:0x8 scope:local data:double +lbl_801D4700 = .sdata2:0x801D4700; // type:object size:0x8 scope:local data:double +lbl_801D4708 = .sdata2:0x801D4708; // type:object size:0x8 scope:local data:double +lbl_801D4710 = .sdata2:0x801D4710; // type:object size:0x8 scope:local data:double +lbl_801D4718 = .sdata2:0x801D4718; // type:object size:0x4 scope:local data:float +lbl_801D4720 = .sdata2:0x801D4720; // type:object size:0x8 scope:local data:double +lbl_801D4728 = .sdata2:0x801D4728; // type:object size:0x4 scope:local data:float +lbl_801D472C = .sdata2:0x801D472C; // type:object size:0x4 scope:local data:float +lbl_801D4730 = .sdata2:0x801D4730; // type:object size:0x4 scope:local data:float +lbl_801D4734 = .sdata2:0x801D4734; // type:object size:0x4 scope:local data:float +lbl_801D4738 = .sdata2:0x801D4738; // type:object size:0x8 scope:local data:double +lbl_801D4740 = .sdata2:0x801D4740; // type:object size:0x4 scope:local data:float +lbl_801D4744 = .sdata2:0x801D4744; // type:object size:0x4 scope:local data:float +lbl_801D4748 = .sdata2:0x801D4748; // type:object size:0x4 scope:local data:float +lbl_801D474C = .sdata2:0x801D474C; // type:object size:0x4 scope:local data:float +lbl_801D4750 = .sdata2:0x801D4750; // type:object size:0x8 scope:local data:double +lbl_801D4758 = .sdata2:0x801D4758; // type:object size:0x4 scope:local data:float +lbl_801D4760 = .sdata2:0x801D4760; // type:object size:0x8 scope:local data:double +lbl_801D4768 = .sdata2:0x801D4768; // type:object size:0x4 scope:local data:float +lbl_801D476C = .sdata2:0x801D476C; // type:object size:0x4 scope:local data:float +lbl_801D4770 = .sdata2:0x801D4770; // type:object size:0x4 scope:local data:float +lbl_801D4774 = .sdata2:0x801D4774; // type:object size:0x4 scope:local data:float +lbl_801D4778 = .sdata2:0x801D4778; // type:object size:0x4 scope:local data:float +lbl_801D4780 = .sdata2:0x801D4780; // type:object size:0x8 scope:local data:double +lbl_801D4788 = .sdata2:0x801D4788; // type:object size:0x8 scope:local data:double +lbl_801D4790 = .sdata2:0x801D4790; // type:object size:0x8 scope:local data:double +lbl_801D4798 = .sdata2:0x801D4798; // type:object size:0x8 scope:local data:double +lbl_801D47A0 = .sdata2:0x801D47A0; // type:object size:0x4 scope:local data:float +lbl_801D47A4 = .sdata2:0x801D47A4; // type:object size:0x4 scope:local data:float +lbl_801D47A8 = .sdata2:0x801D47A8; // type:object size:0x4 scope:local data:float +lbl_801D47AC = .sdata2:0x801D47AC; // type:object size:0x4 scope:local data:float +lbl_801D47B0 = .sdata2:0x801D47B0; // type:object size:0x4 scope:local data:float +lbl_801D47B4 = .sdata2:0x801D47B4; // type:object size:0x4 scope:local data:float +lbl_801D47B8 = .sdata2:0x801D47B8; // type:object size:0x4 scope:local data:float +lbl_801D47BC = .sdata2:0x801D47BC; // type:object size:0x4 scope:local data:float +lbl_801D47C0 = .sdata2:0x801D47C0; // type:object size:0x8 scope:local data:double +lbl_801D47C8 = .sdata2:0x801D47C8; // type:object size:0x8 scope:local data:float +lbl_801D47D0 = .sdata2:0x801D47D0; // type:object size:0x4 scope:local data:float +lbl_801D47D4 = .sdata2:0x801D47D4; // type:object size:0x4 scope:local data:float +lbl_801D47D8 = .sdata2:0x801D47D8; // type:object size:0x8 scope:local data:double +lbl_801D47E0 = .sdata2:0x801D47E0; // type:object size:0x8 scope:local data:double +lbl_801D47E8 = .sdata2:0x801D47E8; // type:object size:0x4 scope:local data:float +lbl_801D47EC = .sdata2:0x801D47EC; // type:object size:0x4 scope:local data:float +lbl_801D47F0 = .sdata2:0x801D47F0; // type:object size:0x4 scope:local data:float +lbl_801D47F8 = .sdata2:0x801D47F8; // type:object size:0x8 scope:local data:double +lbl_801D4800 = .sdata2:0x801D4800; // type:object size:0x8 scope:local data:double +lbl_801D4808 = .sdata2:0x801D4808; // type:object size:0x8 scope:local data:double +lbl_801D4810 = .sdata2:0x801D4810; // type:object size:0x4 scope:local data:float +lbl_801D4814 = .sdata2:0x801D4814; // type:object size:0x4 scope:local data:float +lbl_801D4818 = .sdata2:0x801D4818; // type:object size:0x8 scope:local data:float lbl_801D4820 = .sdata2:0x801D4820; // type:object size:0x4 data:float lbl_801D4824 = .sdata2:0x801D4824; // type:object size:0x4 data:float lbl_801D4828 = .sdata2:0x801D4828; // type:object size:0x8 data:double @@ -7504,11 +7512,5 @@ lbl_801D688C = .sdata2:0x801D688C; // type:object size:0x4 data:float lbl_801D6890 = .sdata2:0x801D6890; // type:object size:0x4 data:float lbl_801D6894 = .sdata2:0x801D6894; // type:object size:0x4 data:float lbl_801D6898 = .sdata2:0x801D6898; // type:object size:0x8 data:double -lbl_801D68A0 = .sbss2:0x801D68A0; // type:object size:0x1 data:byte -lbl_801D68A1 = .sbss2:0x801D68A1; // type:object size:0x1 data:byte -lbl_801D68A2 = .sbss2:0x801D68A2; // type:object size:0x1 data:byte -lbl_801D68A3 = .sbss2:0x801D68A3; // type:object size:0x1 data:byte -lbl_801D68A4 = .sbss2:0x801D68A4; // type:object size:0x1 data:byte -lbl_801D68A5 = .sbss2:0x801D68A5; // type:object size:0x1 data:byte -lbl_801D68A6 = .sbss2:0x801D68A6; // type:object size:0x1 data:byte -lbl_801D68A7 = .sbss2:0x801D68A7; // type:object size:0x1 data:byte +lbl_801D68A0 = .sbss2:0x801D68A0; // type:object size:0x4 scope:local data:byte +lbl_801D68A4 = .sbss2:0x801D68A4; // type:object size:0x4 scope:local data:byte diff --git a/include/game/hsfdraw.h b/include/game/hsfdraw.h index 12d6e179..94b16a6b 100755 --- a/include/game/hsfdraw.h +++ b/include/game/hsfdraw.h @@ -44,10 +44,19 @@ typedef struct hsf_const_data { AnimData *hiliteMap; } HsfConstData; +typedef struct hsf_draw_object { + /* 0x00 */ ModelData *model; + /* 0x04 */ HsfObject *object; + /* 0x08 */ float z; + /* 0x0C */ Mtx matrix; + /* 0x3C */ Vec scale; +} HsfDrawObject; + void Hu3DDrawPreInit(void); void Hu3DDraw(ModelData *arg0, Mtx arg1, Vec *arg2); s32 ObjCullCheck(HsfData *arg0, HsfObject *arg1, Mtx arg2); +void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1); void Hu3DDrawPost(void); void MakeDisplayList(s16 arg0, u32 arg1); HsfConstData *ObjConstantMake(HsfObject *arg0, u32 arg1); diff --git a/src/game/hsfdraw.c b/src/game/hsfdraw.c index 37e7aa16..5320607c 100755 --- a/src/game/hsfdraw.c +++ b/src/game/hsfdraw.c @@ -8,17 +8,8 @@ #include "ext_math.h" #include "string.h" -typedef struct hsf_draw_object { - /* 0x00 */ ModelData *model; - /* 0x04 */ HsfObject *object; - /* 0x08 */ float z; - /* 0x0C */ Mtx matrix; - /* 0x3C */ Vec scale; -} HsfDrawObject; - static void objCall(ModelData *arg0, HsfObject *arg1); static void objMesh(ModelData *arg0, HsfObject *arg1); -static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1); static s32 SetTevStageNoTex(HsfDrawObject *arg0, HsfMaterial *arg1); static void SetTevStageTex(HsfDrawObject *arg0, HsfMaterial *arg1); static GXTevKColorSel SetKColor(GXTevStageID arg0, u8 arg1); From de4be8b36814c41c98230c0ef7789a50ca022300 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 25 Nov 2024 20:37:29 +0100 Subject: [PATCH 175/311] Correct configure.py matchings --- configure.py | 358 +++++++++++++++++++++++++-------------------------- 1 file changed, 179 insertions(+), 179 deletions(-) diff --git a/configure.py b/configure.py index ea943200..c9980073 100644 --- a/configure.py +++ b/configure.py @@ -374,85 +374,85 @@ config.libs = [ "cflags": cflags_game, "host": False, "objects": [ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/pad.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/dvd.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/data.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/decode.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/font.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/init.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/jmp.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/malloc.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/memory.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/printfunc.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/process.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/sprman.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/sprput.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/hsfload.c"), + Object(Matching, "game/main.c"), + Object(Matching, "game/pad.c"), + Object(Matching, "game/dvd.c"), + Object(Matching, "game/data.c"), + Object(Matching, "game/decode.c"), + Object(Matching, "game/font.c"), + Object(Matching, "game/init.c"), + Object(Matching, "game/jmp.c"), + Object(Matching, "game/malloc.c"), + Object(Matching, "game/memory.c"), + Object(Matching, "game/printfunc.c"), + Object(Matching, "game/process.c"), + Object(Matching, "game/sprman.c"), + Object(Matching, "game/sprput.c"), + Object(Matching, "game/hsfload.c"), Object(NonMatching, "game/hsfdraw.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/hsfman.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/hsfmotion.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/hsfanim.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/hsfex.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/perf.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/objmain.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/fault.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/gamework.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/objsysobj.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/objdll.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/frand.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/audio.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/EnvelopeExec.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/minigame_seq.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/ovllist.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/esprite.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/code_8003FF68.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/ClusterExec.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/ShapeExec.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/wipe.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/window.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/messdata.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/card.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/armem.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/chrman.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/mapspace.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/THPSimple.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/THPDraw.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/thpmain.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/objsub.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/flag.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/saveload.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/sreset.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/player.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/model.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/window.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/audio.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/com.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/view.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/space.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/shop.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/lottery.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/basic_space.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/warp.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/char_wheel.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/mushroom.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/star.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/roll.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/ui.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/block.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/item.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/bowser.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/battle.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/fortune.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/boo.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/mg_setup.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/boo_house.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/start.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/last5.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/pause.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/com_path.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/board/tutorial.c"), + Object(Matching, "game/hsfman.c"), + Object(Matching, "game/hsfmotion.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/hsfanim.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/hsfex.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/perf.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/objmain.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/fault.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/gamework.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/objsysobj.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/objdll.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/frand.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/audio.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/EnvelopeExec.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/minigame_seq.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/ovllist.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/esprite.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/code_8003FF68.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/ClusterExec.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/ShapeExec.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/wipe.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/window.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/messdata.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/card.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/armem.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/chrman.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/mapspace.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/THPSimple.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/THPDraw.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/thpmain.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/objsub.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/flag.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/saveload.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/sreset.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/model.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/window.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/audio.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/com.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/view.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/space.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/shop.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/lottery.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/basic_space.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/warp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/char_wheel.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/mushroom.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/star.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/roll.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/ui.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/block.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/bowser.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/battle.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/fortune.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/boo.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/mg_setup.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/boo_house.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/start.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/last5.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/pause.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/com_path.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/tutorial.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "game/kerent.c"), ], }, @@ -822,43 +822,43 @@ config.libs = [ "cflags": cflags_rel, "host": False, "objects": [ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/executor.c"), + Object(Matching, "REL/executor.c"), Object(Matching, "REL/empty.c"), # Must be marked as matching - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/board_executor.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/board_executor.c"), ], }, Rel( "_minigameDLL", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/_minigameDLL/_minigameDLL.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/_minigameDLL/_minigameDLL.c"), }, ), Rel( "bootDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/bootDll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/bootDll/nintendo_data.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/bootDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/bootDll/nintendo_data.c"), }, ), Rel( "E3setupDLL", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/E3setupDLL/mgselect.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/E3setupDLL/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/E3setupDLL/mgselect.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/E3setupDLL/main.c"), }, ), Rel( "instDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/instDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/instDll/main.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/instDll/font.c"), }, ), Rel( "m401Dll", # Manta Rings objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m401Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m401Dll/main_ex.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m401Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m401Dll/main_ex.c"), }, ), Rel( @@ -996,19 +996,19 @@ config.libs = [ Rel( "m420dll", # Fish n' Drips objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/camera.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/player.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/map.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m420dll/rand.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m420dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m420dll/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m420dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m420dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m420dll/rand.c"), }, ), Rel( "m421Dll", # Hop or Pop objects={ - Object(Matching, "REL/m421Dll/main.c"), - Object(Matching, "REL/m421Dll/player.c"), - Object(Matching, "REL/m421Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m421Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m421Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m421Dll/map.c"), }, ), Rel( @@ -1064,7 +1064,7 @@ config.libs = [ Rel( "m429Dll", # Team Treasure Trek objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m429Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m429Dll/main.c"), }, ), Rel( @@ -1078,14 +1078,14 @@ config.libs = [ Rel( "m431Dll", # Order Up objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m431Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m431Dll/object.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m431Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m431Dll/object.c"), }, ), Rel( "m432Dll", # Dungeon Duos objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m432Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m432Dll/main.c"), }, ), Rel( @@ -1099,10 +1099,10 @@ config.libs = [ Rel( "m434Dll", # Cheep Cheep Sweep objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m434Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m434Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m434Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m434Dll/map.c"), Object(NonMatching, "REL/m434Dll/player.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m434Dll/fish.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m434Dll/fish.c"), }, ), Rel( @@ -1115,15 +1115,15 @@ config.libs = [ Rel( "m436Dll", # Fruits of Doom objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m436Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m436Dll/sequence.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m436Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m436Dll/sequence.c"), }, ), Rel( "m437Dll", # Balloon of Doom objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m437Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m437Dll/sequence.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m437Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m437Dll/sequence.c"), }, ), Rel( @@ -1137,26 +1137,26 @@ config.libs = [ Rel( "m439Dll", # Paths of Peril objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m439Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m439Dll/main.c"), }, ), Rel( "m440Dll", # Bowser's Bigger Blast objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m440Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m440Dll/object.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m440Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m440Dll/object.c"), }, ), Rel( "m441Dll", # Butterfly Blitz objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m441Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m441Dll/main.c"), }, ), Rel( "m442Dll", # Barrel Baron objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m442Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m442Dll/main.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m442Dll/score.c"), }, ), @@ -1222,7 +1222,7 @@ config.libs = [ Rel( "m450Dll", # The Final Battle! objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m450Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m450Dll/main.c"), }, ), Rel( @@ -1301,8 +1301,8 @@ config.libs = [ Rel( "mentDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mentDll/common.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mentDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/mentDll/common.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/mentDll/main.c"), }, ), Rel( @@ -1327,9 +1327,9 @@ config.libs = [ Rel( "modeltestDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeltestDll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeltestDll/modeltest00.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeltestDll/modeltest01.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/modeltestDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/modeltestDll/modeltest00.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/modeltestDll/modeltest01.c"), }, ), Rel( @@ -1344,9 +1344,9 @@ config.libs = [ Rel( "mpexDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mpexDll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mpexDll/mpex.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mpexDll/charsel.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/mpexDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/mpexDll/mpex.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/mpexDll/charsel.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mpexDll/mgname.c"), }, ), @@ -1398,25 +1398,25 @@ config.libs = [ Rel( "option", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/scene.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/camera.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/room.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/guide.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/state.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/rumble.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/sound.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/record.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/option/window.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/scene.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/room.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/guide.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/state.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/rumble.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/sound.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/record.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/option/window.c"), }, ), Rel( "present", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/init.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/camera.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/present.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/present/common.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/present/init.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/present/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/present/present.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/present/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/present/common.c"), }, ), Rel( @@ -1430,19 +1430,19 @@ config.libs = [ Rel( "safDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/safDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/safDll/main.c"), }, ), Rel( "selmenuDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/selmenuDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/selmenuDll/main.c"), }, ), Rel( "staffDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/staffDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/staffDll/main.c"), }, ), Rel( @@ -1454,87 +1454,87 @@ config.libs = [ Rel( "w01Dll", # Toad's Midway Madness objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w01Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w01Dll/mg_coin.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w01Dll/mg_item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w01Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w01Dll/mg_coin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w01Dll/mg_item.c"), }, ), Rel( "w02Dll", # Goomba's Greedy Gala objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/gendice.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/gamble.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/mg_coin.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/mg_item.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/shuffleboard.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w02Dll/roulette.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w02Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w02Dll/gendice.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w02Dll/gamble.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w02Dll/mg_coin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w02Dll/mg_item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w02Dll/shuffleboard.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w02Dll/roulette.c"), }, ), Rel( "w03Dll", # Shy Guy's Jungle Jam objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w03Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w03Dll/statue.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w03Dll/condor.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w03Dll/river.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w03Dll/smoke.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w03Dll/mg_coin.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w03Dll/mg_item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w03Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w03Dll/statue.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w03Dll/condor.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w03Dll/river.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w03Dll/smoke.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w03Dll/mg_coin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w03Dll/mg_item.c"), }, ), Rel( "w04Dll", # Boo's Haunted Bash objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w04Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w04Dll/bridge.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w04Dll/boo_event.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w04Dll/big_boo.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w04Dll/mg_item.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w04Dll/mg_coin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w04Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w04Dll/bridge.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w04Dll/boo_event.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w04Dll/big_boo.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w04Dll/mg_item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w04Dll/mg_coin.c"), }, ), Rel( "w05Dll", # Koopa's Seaside Soiree objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/hotel.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/monkey.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/dolphin.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/mg_item.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w05Dll/mg_coin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w05Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w05Dll/hotel.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w05Dll/monkey.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w05Dll/dolphin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w05Dll/mg_item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w05Dll/mg_coin.c"), }, ), Rel( "w06Dll", # Bowser's Gnarly Party objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w06Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w06Dll/mg_item.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w06Dll/mg_coin.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w06Dll/fire.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w06Dll/bridge.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w06Dll/bowser.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w06Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w06Dll/mg_item.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w06Dll/mg_coin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w06Dll/fire.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w06Dll/bridge.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w06Dll/bowser.c"), }, ), Rel( "w10Dll", # Tutorial board objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w10Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w10Dll/host.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w10Dll/scene.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w10Dll/tutorial.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w10Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w10Dll/host.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w10Dll/scene.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w10Dll/tutorial.c"), }, ), Rel( "w20Dll", # Mega Board Mayhem objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w20Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w20Dll/main.c"), }, ), Rel( "w21Dll", # Mini Board Mad Dash objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/w21Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w21Dll/main.c"), }, ), Rel( From 88c09b8f5f9a06256b946e27a03e5e44d032cb8c Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 25 Nov 2024 22:37:02 +0100 Subject: [PATCH 176/311] Split Japanese DOL till audio.c --- config/GMPE01_01/symbols.txt | 2 +- config/GMPJ01_00/config.yml | 3 + config/GMPJ01_00/splits.txt | 62 ++++++ config/GMPJ01_00/symbols.txt | 352 +++++++++++++++++------------------ configure.py | 20 +- include/ovl_table.h | 11 +- 6 files changed, 262 insertions(+), 188 deletions(-) diff --git a/config/GMPE01_01/symbols.txt b/config/GMPE01_01/symbols.txt index b85b7174..a14c4673 100644 --- a/config/GMPE01_01/symbols.txt +++ b/config/GMPE01_01/symbols.txt @@ -475,7 +475,7 @@ Hu3DParticleAttrSet = .text:0x8002A544; // type:function size:0x40 Hu3DParticleAttrReset = .text:0x8002A584; // type:function size:0x44 Hu3DParticleCntSet = .text:0x8002A5C8; // type:function size:0x3C Hu3DParticleAnimModeSet = .text:0x8002A604; // type:function size:0x60 -_Hu3DParticleAttrReset = .text:0x8002A664; // type:function size:0xAD4 scope:local +particleFunc = .text:0x8002A664; // type:function size:0xAD4 scope:local Hu3DParManInit = .text:0x8002B138; // type:function size:0x48 Hu3DParManCreate = .text:0x8002B180; // type:function size:0x1D4 Hu3DParManLink = .text:0x8002B354; // type:function size:0x17C diff --git a/config/GMPJ01_00/config.yml b/config/GMPJ01_00/config.yml index e484b407..92defe35 100644 --- a/config/GMPJ01_00/config.yml +++ b/config/GMPJ01_00/config.yml @@ -545,3 +545,6 @@ extract: - symbol: hiliteData4 binary: hiliteData4.anm header: hiliteData4.inc +- symbol: Ascii8x8_1bpp + binary: Ascii8x8_1bpp.bin + header: Ascii8x8_1bpp.inc diff --git a/config/GMPJ01_00/splits.txt b/config/GMPJ01_00/splits.txt index 7e02c8f8..e3b4c039 100644 --- a/config/GMPJ01_00/splits.txt +++ b/config/GMPJ01_00/splits.txt @@ -126,3 +126,65 @@ game/hsfmotion.c: .bss start:0x8018D070 end:0x8018D870 .sbss start:0x801D3920 end:0x801D3928 .sdata2 start:0x801D47D0 end:0x801D4820 + +game/hsfanim.c: + .text start:0x80028B04 end:0x8002CB74 + .data start:0x8012D418 end:0x8012D4D8 + .bss start:0x8018D870 end:0x8018F430 + .sdata2 start:0x801D4820 end:0x801D48A8 + +game/hsfex.c: + .text start:0x8002CB74 end:0x8002E74C + .data start:0x8012D4D8 end:0x8012D4F8 + .sdata2 start:0x801D48A8 end:0x801D4938 + +game/perf.c: + .text start:0x8002E74C end:0x8002EBD8 + .bss start:0x8018F430 end:0x8018F7D8 + .sdata start:0x801D3128 end:0x801D3138 + .sbss start:0x801D3928 end:0x801D3980 + +game/objmain.c: + .text start:0x8002EBD8 end:0x8002FF4C + .data start:0x8012D4F8 end:0x8012D8A8 + .bss start:0x8018F7D8 end:0x8018F898 + .sdata start:0x801D3138 end:0x801D3140 + .sbss start:0x801D3980 end:0x801D39B0 + .sdata2 start:0x801D4938 end:0x801D4960 + +game/fault.c: + .text start:0x8002FF4C end:0x800308B8 + .data start:0x8012D8A8 end:0x8012E0D0 + .bss start:0x8018F898 end:0x8018F8B0 + .sdata start:0x801D3140 end:0x801D3150 + .sbss start:0x801D39B0 end:0x801D39C0 + +game/gamework.c: + .text start:0x800308B8 end:0x800315BC + .rodata start:0x8011D910 end:0x8011D930 + .bss start:0x8018F8B0 end:0x8018FCA8 + +game/objsysobj.c: + .text start:0x800315BC end:0x80031DB4 + .bss start:0x8018FCA8 end:0x8018FE80 + .sbss start:0x801D39C0 end:0x801D39C8 + .sdata2 start:0x801D4960 end:0x801D4970 + +game/objdll.c: + .text start:0x80031DB4 end:0x800325F4 + .data start:0x8012E0D0 end:0x8012E568 + .bss start:0x8018FE80 end:0x8018FED0 + .sbss start:0x801D39C8 end:0x801D39D0 + +game/frand.c: + .text start:0x800325F4 end:0x80032830 + .sbss start:0x801D39D0 end:0x801D39D8 + .sdata2 start:0x801D4970 end:0x801D4980 + +game/audio.c: + .text start:0x80032830 end:0x80033EEC + .data start:0x8012E568 end:0x8012ED10 + .bss start:0x8018FED0 end:0x801900F0 + .sdata start:0x801D3150 end:0x801D3158 + .sbss start:0x801D39D8 end:0x801D3A08 + .sdata2 start:0x801D4980 end:0x801D4990 diff --git a/config/GMPJ01_00/symbols.txt b/config/GMPJ01_00/symbols.txt index cb430d79..65e081fc 100644 --- a/config/GMPJ01_00/symbols.txt +++ b/config/GMPJ01_00/symbols.txt @@ -476,7 +476,7 @@ Hu3DParticleAttrSet = .text:0x8002A544; // type:function size:0x40 Hu3DParticleAttrReset = .text:0x8002A584; // type:function size:0x44 Hu3DParticleCntSet = .text:0x8002A5C8; // type:function size:0x3C Hu3DParticleAnimModeSet = .text:0x8002A604; // type:function size:0x60 -_Hu3DParticleAttrReset = .text:0x8002A664; // type:function size:0xAD4 scope:local +particleFunc = .text:0x8002A664; // type:function size:0xAD4 scope:local Hu3DParManInit = .text:0x8002B138; // type:function size:0x48 Hu3DParManCreate = .text:0x8002B180; // type:function size:0x1D4 Hu3DParManLink = .text:0x8002B354; // type:function size:0x17C @@ -3592,7 +3592,7 @@ __fini_cpp_exceptions_reference = .dtors:0x8011D8C4; // type:object size:0x4 sco lbl_8011D8E0 = .rodata:0x8011D8E0; // type:object size:0x10 scope:local data:4byte lbl_8011D8F0 = .rodata:0x8011D8F0; // type:object size:0x10 scope:local data:4byte lbl_8011D900 = .rodata:0x8011D900; // type:object size:0x10 scope:local data:4byte -lbl_8011D910 = .rodata:0x8011D910; // type:object size:0x20 data:byte +lbl_8011D910 = .rodata:0x8011D910; // type:object size:0x20 scope:local data:byte lbl_8011D930 = .rodata:0x8011D930; // type:object size:0x10 data:4byte lbl_8011D940 = .rodata:0x8011D940; // type:object size:0x24 data:4byte lbl_8011D964 = .rodata:0x8011D964; // type:object size:0xC data:4byte @@ -3878,36 +3878,37 @@ jumptable_8012D270 = .data:0x8012D270; // type:object size:0x2C scope:local jumptable_8012D29C = .data:0x8012D29C; // type:object size:0x68 scope:local jumptable_8012D304 = .data:0x8012D304; // type:object size:0xF0 scope:local jumptable_8012D3F4 = .data:0x8012D3F4; // type:object size:0x20 scope:local -lbl_8012D418 = .data:0x8012D418; // type:object size:0x15 data:string -lbl_8012D42D = .data:0x8012D42D; // type:object size:0x1F data:string -lbl_8012D44C = .data:0x8012D44C; // type:object size:0x18 -lbl_8012D464 = .data:0x8012D464; // type:object size:0x30 -lbl_8012D494 = .data:0x8012D494; // type:object size:0x20 -lbl_8012D4B4 = .data:0x8012D4B4; // type:object size:0x24 +lbl_8012D418 = .data:0x8012D418; // type:object size:0x15 scope:local data:string +lbl_8012D42D = .data:0x8012D42D; // type:object size:0x1F scope:local data:string +lbl_8012D44C = .data:0x8012D44C; // type:object size:0x18 scope:local +basePos = .data:0x8012D464; // type:object size:0x30 scope:local +baseST = .data:0x8012D494; // type:object size:0x20 scope:local +jitterTbl = .data:0x8012D4B4; // type:object size:0x24 scope:local jumptable_8012D4D8 = .data:0x8012D4D8; // type:object size:0x1C scope:local -lbl_8012D4F8 = .data:0x8012D4F8; // type:object size:0xCA -lbl_8012D5C2 = .data:0x8012D5C2; // type:object size:0x1C data:string -lbl_8012D5DE = .data:0x8012D5DE; // type:object size:0x1C data:string -lbl_8012D5FA = .data:0x8012D5FA; // type:object size:0x1D data:string -lbl_8012D617 = .data:0x8012D617; // type:object size:0x18 data:string -lbl_8012D62F = .data:0x8012D62F; // type:object size:0xC data:string -lbl_8012D63B = .data:0x8012D63B; // type:object size:0x45 -lbl_8012D680 = .data:0x8012D680; // type:object size:0x45 -lbl_8012D6C5 = .data:0x8012D6C5; // type:object size:0x19 data:string -lbl_8012D6DE = .data:0x8012D6DE; // type:object size:0x17 data:string -lbl_8012D6F5 = .data:0x8012D6F5; // type:object size:0x1B3 -lbl_8012D8A8 = .data:0x8012D8A8; // type:object size:0xF data:byte -lbl_8012D8B7 = .data:0x8012D8B7; // type:object size:0x800 -lbl_8012E0B7 = .data:0x8012E0B7; // type:object size:0x19 -lbl_8012E0D0 = .data:0x8012E0D0; // type:object size:0x21A -lbl_8012E2EA = .data:0x8012E2EA; // type:object size:0xB data:string -lbl_8012E2F5 = .data:0x8012E2F5; // type:object size:0x273 -lbl_8012E568 = .data:0x8012E568; // type:object size:0x12 data:string -lbl_8012E57A = .data:0x8012E57A; // type:object size:0xD6 -lbl_8012E650 = .data:0x8012E650; // type:object size:0x644 -lbl_8012EC94 = .data:0x8012EC94; // type:object size:0x11 data:string -lbl_8012ECA5 = .data:0x8012ECA5; // type:object size:0x3A -lbl_8012ECDF = .data:0x8012ECDF; // type:object size:0x31 +lbl_8012D4F8 = .data:0x8012D4F8; // type:object size:0xCA scope:local +lbl_8012D5C2 = .data:0x8012D5C2; // type:object size:0x1C scope:local data:string +lbl_8012D5DE = .data:0x8012D5DE; // type:object size:0x1C scope:local data:string +lbl_8012D5FA = .data:0x8012D5FA; // type:object size:0x1D scope:local data:string +lbl_8012D617 = .data:0x8012D617; // type:object size:0x18 scope:local data:string +lbl_8012D62F = .data:0x8012D62F; // type:object size:0xC scope:local data:string +lbl_8012D63B = .data:0x8012D63B; // type:object size:0x45 scope:local +lbl_8012D680 = .data:0x8012D680; // type:object size:0x45 scope:local +lbl_8012D6C5 = .data:0x8012D6C5; // type:object size:0x19 scope:local data:string +lbl_8012D6DE = .data:0x8012D6DE; // type:object size:0x17 scope:local data:string +lbl_8012D6F5 = .data:0x8012D6F5; // type:object size:0x1B3 scope:local +XFB_Colors = .data:0x8012D8A8; // type:object size:0xF scope:local data:byte +Ascii8x8_1bpp = .data:0x8012D8B7; // type:object size:0x800 scope:local align:1 +lbl_8012E0B7 = .data:0x8012E0B7; // type:object size:0x19 scope:local +lbl_8012E0D0 = .data:0x8012E0D0; // type:object size:0x21A scope:local +lbl_8012E2EA = .data:0x8012E2EA; // type:object size:0xB scope:local data:string +lbl_8012E2F5 = .data:0x8012E2F5; // type:object size:0x273 scope:local +lbl_8012E568 = .data:0x8012E568; // type:object size:0x12 scope:local data:string +lbl_8012E57A = .data:0x8012E57A; // type:object size:0xD6 scope:local +sndGrpTable = .data:0x8012E650; // type:object size:0x5B0 +lbl_8012ec00 = .data:0x8012EC00; // type:object size:0x94 scope:local +lbl_8012EC94 = .data:0x8012EC94; // type:object size:0x11 scope:local data:string +lbl_8012ECA5 = .data:0x8012ECA5; // type:object size:0x3A scope:local +lbl_8012ECDF = .data:0x8012ECDF; // type:object size:0x31 scope:local lbl_8012ED10 = .data:0x8012ED10; // type:object size:0x1DC lbl_8012EEEC = .data:0x8012EEEC; // type:object size:0x18 lbl_8012EF04 = .data:0x8012EF04; // type:object size:0x120 @@ -4396,25 +4397,26 @@ Hu3DCameraMtxXPose = .bss:0x8018C56C; // type:object size:0x30 Hu3DGlobalLight = .bss:0x8018C59C; // type:object size:0x220 data:2byte Hu3DLocalLight = .bss:0x8018C7BC; // type:object size:0x880 data:2byte Hu3DMotion = .bss:0x8018D070; // type:object size:0x800 data:2byte -lbl_8018D870 = .bss:0x8018D870; // type:object size:0x1400 data:2byte -lbl_8018EC70 = .bss:0x8018EC70; // type:object size:0x6C0 data:2byte -lbl_8018F330 = .bss:0x8018F330; // type:object size:0x100 -lbl_8018F430 = .bss:0x8018F430; // type:object size:0x370 -lbl_8018F7A0 = .bss:0x8018F7A0; // type:object size:0x38 -lbl_8018F7D8 = .bss:0x8018F7D8; // type:object size:0xC0 -lbl_8018F898 = .bss:0x8018F898; // type:object size:0x18 +Hu3DTexAnimData = .bss:0x8018D870; // type:object size:0x1400 data:2byte +Hu3DTexScrData = .bss:0x8018EC70; // type:object size:0x6C0 data:2byte +parManProc = .bss:0x8018F330; // type:object size:0x100 scope:local +perf = .bss:0x8018F430; // type:object size:0x370 scope:local +Ssw = .bss:0x8018F7A0; // type:object size:0x38 scope:local +omovlhis = .bss:0x8018F7D8; // type:object size:0xC0 scope:local +XFB_Geometry = .bss:0x8018F898; // type:object size:0x18 scope:local GWPlayerCfg = .bss:0x8018F8B0; // type:object size:0x28 -lbl_8018F8D8 = .bss:0x8018F8D8; // type:object size:0xC0 data:byte -lbl_8018F998 = .bss:0x8018F998; // type:object size:0xE0 data:byte -lbl_8018FA78 = .bss:0x8018FA78; // type:object size:0x230 -lbl_8018FCA8 = .bss:0x8018FCA8; // type:object size:0xC data:float -lbl_8018FCB4 = .bss:0x8018FCB4; // type:object size:0xC data:float -lbl_8018FCC0 = .bss:0x8018FCC0; // type:object size:0xC0 -lbl_8018FD80 = .bss:0x8018FD80; // type:object size:0xC0 -lbl_8018FE40 = .bss:0x8018FE40; // type:object size:0x40 -lbl_8018FE80 = .bss:0x8018FE80; // type:object size:0x50 -lbl_8018FED0 = .bss:0x8018FED0; // type:object size:0x200 -lbl_801900D0 = .bss:0x801900D0; // type:object size:0x20 +GWPlayer = .bss:0x8018F8D8; // type:object size:0xC0 data:byte +GWSystem = .bss:0x8018F998; // type:object size:0xDC data:byte +GWGameStat = .bss:0x8018FA78; // type:object size:0x118 +GWGameStatDefault = .bss:0x8018FB90; // type:object size:0x118 +CRot = .bss:0x8018FCA8; // type:object size:0xC data:float +Center = .bss:0x8018FCB4; // type:object size:0xC data:float +CRotM = .bss:0x8018FCC0; // type:object size:0xC0 +CenterM = .bss:0x8018FD80; // type:object size:0xC0 +CZoomM = .bss:0x8018FE40; // type:object size:0x40 +omDLLinfoTbl = .bss:0x8018FE80; // type:object size:0x50 +sndFXBuf = .bss:0x8018FED0; // type:object size:0x200 scope:local +charVoiceGroupStat = .bss:0x801900D0; // type:object size:0x20 lbl_801900F0 = .bss:0x801900F0; // type:object size:0x400 data:4byte lbl_801904F0 = .bss:0x801904F0; // type:object size:0x10 data:2byte lbl_80190500 = .bss:0x80190500; // type:object size:0x600 data:2byte @@ -4422,7 +4424,7 @@ lbl_80190B00 = .bss:0x80190B00; // type:object size:0x1200 data:4byte lbl_80191D00 = .bss:0x80191D00; // type:object size:0x100 lbl_80191E00 = .bss:0x80191E00; // type:object size:0x100 lbl_80191F00 = .bss:0x80191F00; // type:object size:0x100 -lbl_80192000 = .bss:0x80192000; // type:object size:0x60 data:4byte +wipeData = .bss:0x80192000; // type:object size:0x60 data:4byte lbl_80192060 = .bss:0x80192060; // type:object size:0x3000 data:byte lbl_80195060 = .bss:0x80195060; // type:object size:0x10 lbl_80195070 = .bss:0x80195070; // type:object size:0x1410 @@ -4633,14 +4635,14 @@ oneceF = .sdata:0x801D3110; // type:object size:0x2 scope:local data:2byte firstTev = .sdata:0x801D3112; // type:object size:0x4 scope:local secondTev = .sdata:0x801D3116; // type:object size:0x4 scope:local lbl_801D311A = .sdata:0x801D311A; // type:object size:0xE scope:local -lbl_801D3128 = .sdata:0x801D3128; // type:object size:0x4 data:string -lbl_801D312C = .sdata:0x801D312C; // type:object size:0xC -lbl_801D3138 = .sdata:0x801D3138; // type:object size:0x1 data:byte -lbl_801D313C = .sdata:0x801D313C; // type:object size:0x4 data:4byte -lbl_801D3140 = .sdata:0x801D3140; // type:object size:0x4 data:4byte -lbl_801D3144 = .sdata:0x801D3144; // type:object size:0xC -lbl_801D3150 = .sdata:0x801D3150; // type:object size:0x1 -lbl_801D3151 = .sdata:0x801D3151; // type:object size:0x7 +lbl_801D3128 = .sdata:0x801D3128; // type:object size:0x4 scope:local data:string +lbl_801D312C = .sdata:0x801D312C; // type:object size:0xC scope:local +omSysPauseEnableFlag = .sdata:0x801D3138; // type:object size:0x1 data:byte +omprevovl = .sdata:0x801D313C; // type:object size:0x4 data:4byte +titleMes = .sdata:0x801D3140; // type:object size:0x4 scope:local data:4byte +lbl_801D3144 = .sdata:0x801D3144; // type:object size:0xC scope:local +lbl_801D3150 = .sdata:0x801D3150; // type:object size:0x1 scope:local +lbl_801D3151 = .sdata:0x801D3151; // type:object size:0x7 scope:local lbl_801D3158 = .sdata:0x801D3158; // type:object size:0x4 data:4byte lbl_801D315C = .sdata:0x801D315C; // type:object size:0x7 data:string lbl_801D3163 = .sdata:0x801D3163; // type:object size:0x1 data:byte @@ -5048,66 +5050,64 @@ toonAnim = .sbss:0x801D3914; // type:object size:0x4 data:4byte reflectMapNo = .sbss:0x801D3918; // type:object size:0x2 data:2byte BGColor = .sbss:0x801D391A; // type:object size:0x4 data:byte bitMapPtr = .sbss:0x801D3920; // type:object size:0x4 scope:local data:4byte -metf = .sbss:0x801D3928; // type:object size:0x1 data:byte -tokenEndF = .sbss:0x801D392A; // type:object size:0x2 data:2byte -total_copy_clks = .sbss:0x801D392C; // type:object size:0x4 data:4byte -clr_pixels_in = .sbss:0x801D3930; // type:object size:0x4 -lbl_801D3934 = .sbss:0x801D3934; // type:object size:0x4 -lbl_801D3938 = .sbss:0x801D3938; // type:object size:0x4 -lbl_801D393C = .sbss:0x801D393C; // type:object size:0x4 -lbl_801D3940 = .sbss:0x801D3940; // type:object size:0x4 -lbl_801D3944 = .sbss:0x801D3944; // type:object size:0x4 -lbl_801D3948 = .sbss:0x801D3948; // type:object size:0x4 -lbl_801D394C = .sbss:0x801D394C; // type:object size:0x4 -lbl_801D3950 = .sbss:0x801D3950; // type:object size:0x4 -lbl_801D3954 = .sbss:0x801D3954; // type:object size:0x4 -lbl_801D3958 = .sbss:0x801D3958; // type:object size:0x4 -lbl_801D395C = .sbss:0x801D395C; // type:object size:0x4 -lbl_801D3960 = .sbss:0x801D3960; // type:object size:0x4 -lbl_801D3964 = .sbss:0x801D3964; // type:object size:0x4 -lbl_801D3968 = .sbss:0x801D3968; // type:object size:0x4 -lbl_801D396C = .sbss:0x801D396C; // type:object size:0x4 -lbl_801D3970 = .sbss:0x801D3970; // type:object size:0x4 -lbl_801D3974 = .sbss:0x801D3974; // type:object size:0x4 -lbl_801D3978 = .sbss:0x801D3978; // type:object size:0x4 -lbl_801D397C = .sbss:0x801D397C; // type:object size:0x4 -lbl_801D3980 = .sbss:0x801D3980; // type:object size:0x2 data:2byte -lbl_801D3982 = .sbss:0x801D3982; // type:object size:0x2 data:2byte -lbl_801D3984 = .sbss:0x801D3984; // type:object size:0x1 data:byte -lbl_801D3988 = .sbss:0x801D3988; // type:object size:0x4 data:4byte -lbl_801D398C = .sbss:0x801D398C; // type:object size:0x4 data:4byte -lbl_801D3990 = .sbss:0x801D3990; // type:object size:0x4 data:4byte -lbl_801D3994 = .sbss:0x801D3994; // type:object size:0x4 data:4byte -lbl_801D3998 = .sbss:0x801D3998; // type:object size:0x4 data:4byte -lbl_801D399C = .sbss:0x801D399C; // type:object size:0x4 data:4byte -lbl_801D39A0 = .sbss:0x801D39A0; // type:object size:0x4 data:4byte -lbl_801D39A4 = .sbss:0x801D39A4; // type:object size:0x4 data:4byte -lbl_801D39A8 = .sbss:0x801D39A8; // type:object size:0x4 data:4byte -lbl_801D39AC = .sbss:0x801D39AC; // type:object size:0x4 data:4byte -lbl_801D39B0 = .sbss:0x801D39B0; // type:object size:0x4 data:4byte -lbl_801D39B4 = .sbss:0x801D39B4; // type:object size:0x4 data:4byte -lbl_801D39B8 = .sbss:0x801D39B8; // type:object size:0x1 data:byte -lbl_801D39B9 = .sbss:0x801D39B9; // type:object size:0x1 data:byte -lbl_801D39BA = .sbss:0x801D39BA; // type:object size:0x1 data:byte -lbl_801D39BC = .sbss:0x801D39BC; // type:object size:0x4 data:4byte -lbl_801D39C0 = .sbss:0x801D39C0; // type:object size:0x4 -lbl_801D39C4 = .sbss:0x801D39C4; // type:object size:0x4 data:float -lbl_801D39C8 = .sbss:0x801D39C8; // type:object size:0x8 data:4byte -lbl_801D39D0 = .sbss:0x801D39D0; // type:object size:0x8 data:4byte -lbl_801D39D8 = .sbss:0x801D39D8; // type:object size:0x1 data:byte -lbl_801D39DC = .sbss:0x801D39DC; // type:object size:0x4 data:4byte -lbl_801D39E0 = .sbss:0x801D39E0; // type:object size:0x4 data:float -lbl_801D39E4 = .sbss:0x801D39E4; // type:object size:0x4 data:float -lbl_801D39E8 = .sbss:0x801D39E8; // type:object size:0x4 data:float -lbl_801D39EC = .sbss:0x801D39EC; // type:object size:0x4 data:float -lbl_801D39F0 = .sbss:0x801D39F0; // type:object size:0x4 data:float -lbl_801D39F4 = .sbss:0x801D39F4; // type:object size:0x1 data:byte -lbl_801D39F5 = .sbss:0x801D39F5; // type:object size:0x1 data:byte -lbl_801D39F8 = .sbss:0x801D39F8; // type:object size:0x4 data:4byte -lbl_801D39FC = .sbss:0x801D39FC; // type:object size:0x4 data:4byte -lbl_801D3A00 = .sbss:0x801D3A00; // type:object size:0x2 data:2byte -lbl_801D3A02 = .sbss:0x801D3A02; // type:object size:0x6 data:2byte -lbl_801D3A08 = .sbss:0x801D3A08; // type:object size:0x4 data:4byte +metf = .sbss:0x801D3928; // type:object size:0x1 scope:local data:byte +tokenEndF = .sbss:0x801D392A; // type:object size:0x2 scope:local data:2byte +total_copy_clks = .sbss:0x801D392C; // type:object size:0x4 scope:local data:4byte +clr_pixels_in = .sbss:0x801D3930; // type:object size:0x4 scope:local +bot_pixels_out = .sbss:0x801D3934; // type:object size:0x4 +bot_pixels_in = .sbss:0x801D3938; // type:object size:0x4 +top_pixels_out = .sbss:0x801D393C; // type:object size:0x4 +top_pixels_in = .sbss:0x801D3940; // type:object size:0x4 +fi_req = .sbss:0x801D3944; // type:object size:0x4 +rf_req = .sbss:0x801D3948; // type:object size:0x4 +pe_req = .sbss:0x801D394C; // type:object size:0x4 +vi_req = .sbss:0x801D3950; // type:object size:0x4 +io_req = .sbss:0x801D3954; // type:object size:0x4 +dsp_req = .sbss:0x801D3958; // type:object size:0x4 +cpu_wr_req = .sbss:0x801D395C; // type:object size:0x4 +cpu_rd_req = .sbss:0x801D3960; // type:object size:0x4 +tc_req = .sbss:0x801D3964; // type:object size:0x4 +cp_req = .sbss:0x801D3968; // type:object size:0x4 +vstall = .sbss:0x801D396C; // type:object size:0x4 +vmiss = .sbss:0x801D3970; // type:object size:0x4 +vcheck = .sbss:0x801D3974; // type:object size:0x4 +met1 = .sbss:0x801D3978; // type:object size:0x4 +met0 = .sbss:0x801D397C; // type:object size:0x4 +omdispinfo = .sbss:0x801D3980; // type:object size:0x2 data:2byte +omSysExitReq = .sbss:0x801D3982; // type:object size:0x2 data:2byte +omUPauseFlag = .sbss:0x801D3984; // type:object size:0x1 data:byte +omnextovlstat = .sbss:0x801D3988; // type:object size:0x4 scope:local data:4byte +omovlstat = .sbss:0x801D398C; // type:object size:0x4 data:4byte +omnextovlevtno = .sbss:0x801D3990; // type:object size:0x4 data:4byte +omovlevtno = .sbss:0x801D3994; // type:object size:0x4 data:4byte +omovlhisidx = .sbss:0x801D3998; // type:object size:0x4 data:4byte +omcurdll = .sbss:0x801D399C; // type:object size:0x4 data:4byte +omcurovl = .sbss:0x801D39A0; // type:object size:0x4 data:4byte +omnextovl = .sbss:0x801D39A4; // type:object size:0x4 data:4byte +omwatchproc = .sbss:0x801D39A8; // type:object size:0x4 data:4byte +omDBGSysKeyObj = .sbss:0x801D39AC; // type:object size:0x4 data:4byte +y_start = .sbss:0x801D39B0; // type:object size:0x4 scope:local data:4byte +x_start = .sbss:0x801D39B4; // type:object size:0x4 scope:local data:4byte +Draw_Color = .sbss:0x801D39B8; // type:object size:0x3 scope:local data:byte +XFB_putc = .sbss:0x801D39BC; // type:object size:0x4 scope:local data:4byte +omDBGMenuButton = .sbss:0x801D39C0; // type:object size:0x2 +CZoom = .sbss:0x801D39C4; // type:object size:0x4 data:float +omDLLFileList = .sbss:0x801D39C8; // type:object size:0x8 data:4byte +frand_seed = .sbss:0x801D39D0; // type:object size:0x8 scope:local data:4byte +fadeStat = .sbss:0x801D39D8; // type:object size:0x1 data:byte +musicOffF = .sbss:0x801D39DC; // type:object size:0x4 data:4byte +Snd3DDistOffset = .sbss:0x801D39E0; // type:object size:0x4 data:float +Snd3DSpeedOffset = .sbss:0x801D39E4; // type:object size:0x4 data:float +Snd3DStartDisOffset = .sbss:0x801D39E8; // type:object size:0x4 data:float +Snd3DFrontSurDisOffset = .sbss:0x801D39EC; // type:object size:0x4 data:float +Snd3DBackSurDisOffset = .sbss:0x801D39F0; // type:object size:0x4 data:float +HuAuxBVol = .sbss:0x801D39F4; // type:object size:0x1 scope:local data:byte +HuAuxAVol = .sbss:0x801D39F5; // type:object size:0x1 scope:local data:byte +auxBNoBak = .sbss:0x801D39F8; // type:object size:0x4 scope:local data:4byte +auxANoBak = .sbss:0x801D39FC; // type:object size:0x4 scope:local data:4byte +sndGroupBak = .sbss:0x801D3A00; // type:object size:0x2 scope:local data:2byte +Hu3DAudVol = .sbss:0x801D3A02; // type:object size:0x6 scope:local data:2byte +Meshno = .sbss:0x801D3A08; // type:object size:0x4 data:4byte lbl_801D3A0C = .sbss:0x801D3A0C; // type:object size:0x4 data:4byte lbl_801D3A10 = .sbss:0x801D3A10; // type:object size:0x4 data:4byte lbl_801D3A14 = .sbss:0x801D3A14; // type:object size:0x4 data:4byte @@ -5908,66 +5908,66 @@ lbl_801D4808 = .sdata2:0x801D4808; // type:object size:0x8 scope:local data:doub lbl_801D4810 = .sdata2:0x801D4810; // type:object size:0x4 scope:local data:float lbl_801D4814 = .sdata2:0x801D4814; // type:object size:0x4 scope:local data:float lbl_801D4818 = .sdata2:0x801D4818; // type:object size:0x8 scope:local data:float -lbl_801D4820 = .sdata2:0x801D4820; // type:object size:0x4 data:float -lbl_801D4824 = .sdata2:0x801D4824; // type:object size:0x4 data:float -lbl_801D4828 = .sdata2:0x801D4828; // type:object size:0x8 data:double -lbl_801D4830 = .sdata2:0x801D4830; // type:object size:0x4 data:float -lbl_801D4834 = .sdata2:0x801D4834; // type:object size:0x4 data:float -lbl_801D4838 = .sdata2:0x801D4838; // type:object size:0x4 data:float -lbl_801D483C = .sdata2:0x801D483C; // type:object size:0x4 data:float -lbl_801D4840 = .sdata2:0x801D4840; // type:object size:0x8 data:double -lbl_801D4848 = .sdata2:0x801D4848; // type:object size:0x4 data:float -lbl_801D4850 = .sdata2:0x801D4850; // type:object size:0x8 data:double -lbl_801D4858 = .sdata2:0x801D4858; // type:object size:0x8 data:double -lbl_801D4860 = .sdata2:0x801D4860; // type:object size:0x8 data:double -lbl_801D4868 = .sdata2:0x801D4868; // type:object size:0x4 data:float -lbl_801D4870 = .sdata2:0x801D4870; // type:object size:0x8 data:double -lbl_801D4878 = .sdata2:0x801D4878; // type:object size:0x8 data:double -lbl_801D4880 = .sdata2:0x801D4880; // type:object size:0x4 data:float -lbl_801D4888 = .sdata2:0x801D4888; // type:object size:0x8 data:double -lbl_801D4890 = .sdata2:0x801D4890; // type:object size:0x8 data:double -lbl_801D4898 = .sdata2:0x801D4898; // type:object size:0x8 data:double -lbl_801D48A0 = .sdata2:0x801D48A0; // type:object size:0x8 data:double -lbl_801D48A8 = .sdata2:0x801D48A8; // type:object size:0x4 data:float -lbl_801D48AC = .sdata2:0x801D48AC; // type:object size:0x4 data:float -lbl_801D48B0 = .sdata2:0x801D48B0; // type:object size:0x4 data:float -lbl_801D48B4 = .sdata2:0x801D48B4; // type:object size:0x4 data:float -lbl_801D48B8 = .sdata2:0x801D48B8; // type:object size:0x8 data:double -lbl_801D48C0 = .sdata2:0x801D48C0; // type:object size:0x4 data:float -lbl_801D48C8 = .sdata2:0x801D48C8; // type:object size:0x8 data:double -lbl_801D48D0 = .sdata2:0x801D48D0; // type:object size:0x8 data:double -lbl_801D48D8 = .sdata2:0x801D48D8; // type:object size:0x4 data:float -lbl_801D48E0 = .sdata2:0x801D48E0; // type:object size:0x8 data:double -lbl_801D48E8 = .sdata2:0x801D48E8; // type:object size:0x4 data:float -lbl_801D48EC = .sdata2:0x801D48EC; // type:object size:0x4 data:float -lbl_801D48F0 = .sdata2:0x801D48F0; // type:object size:0x4 data:float -lbl_801D48F4 = .sdata2:0x801D48F4; // type:object size:0x4 data:float -lbl_801D48F8 = .sdata2:0x801D48F8; // type:object size:0x8 data:double -lbl_801D4900 = .sdata2:0x801D4900; // type:object size:0x8 data:double -lbl_801D4908 = .sdata2:0x801D4908; // type:object size:0x4 data:float -lbl_801D490C = .sdata2:0x801D490C; // type:object size:0x4 data:float -lbl_801D4910 = .sdata2:0x801D4910; // type:object size:0x8 data:double -lbl_801D4918 = .sdata2:0x801D4918; // type:object size:0x4 data:float -lbl_801D491C = .sdata2:0x801D491C; // type:object size:0x4 data:float -lbl_801D4920 = .sdata2:0x801D4920; // type:object size:0x4 data:float -lbl_801D4924 = .sdata2:0x801D4924; // type:object size:0x4 data:float -lbl_801D4928 = .sdata2:0x801D4928; // type:object size:0x8 data:double -lbl_801D4930 = .sdata2:0x801D4930; // type:object size:0x8 data:double -lbl_801D4938 = .sdata2:0x801D4938; // type:object size:0x4 data:float -lbl_801D493C = .sdata2:0x801D493C; // type:object size:0x4 data:float -lbl_801D4940 = .sdata2:0x801D4940; // type:object size:0x4 data:float -lbl_801D4944 = .sdata2:0x801D4944; // type:object size:0x4 data:float -lbl_801D4948 = .sdata2:0x801D4948; // type:object size:0x4 data:float -lbl_801D494C = .sdata2:0x801D494C; // type:object size:0x4 data:float -lbl_801D4950 = .sdata2:0x801D4950; // type:object size:0x4 data:float -lbl_801D4954 = .sdata2:0x801D4954; // type:object size:0x4 data:float -lbl_801D4958 = .sdata2:0x801D4958; // type:object size:0x4 data:float +lbl_801D4820 = .sdata2:0x801D4820; // type:object size:0x4 scope:local data:float +lbl_801D4824 = .sdata2:0x801D4824; // type:object size:0x4 scope:local data:float +lbl_801D4828 = .sdata2:0x801D4828; // type:object size:0x8 scope:local data:double +lbl_801D4830 = .sdata2:0x801D4830; // type:object size:0x4 scope:local data:float +lbl_801D4834 = .sdata2:0x801D4834; // type:object size:0x4 scope:local data:float +lbl_801D4838 = .sdata2:0x801D4838; // type:object size:0x4 scope:local data:float +lbl_801D483C = .sdata2:0x801D483C; // type:object size:0x4 scope:local data:float +lbl_801D4840 = .sdata2:0x801D4840; // type:object size:0x8 scope:local data:double +lbl_801D4848 = .sdata2:0x801D4848; // type:object size:0x4 scope:local data:float +lbl_801D4850 = .sdata2:0x801D4850; // type:object size:0x8 scope:local data:double +lbl_801D4858 = .sdata2:0x801D4858; // type:object size:0x8 scope:local data:double +lbl_801D4860 = .sdata2:0x801D4860; // type:object size:0x8 scope:local data:double +lbl_801D4868 = .sdata2:0x801D4868; // type:object size:0x4 scope:local data:float +lbl_801D4870 = .sdata2:0x801D4870; // type:object size:0x8 scope:local data:double +lbl_801D4878 = .sdata2:0x801D4878; // type:object size:0x8 scope:local data:double +lbl_801D4880 = .sdata2:0x801D4880; // type:object size:0x4 scope:local data:float +lbl_801D4888 = .sdata2:0x801D4888; // type:object size:0x8 scope:local data:double +lbl_801D4890 = .sdata2:0x801D4890; // type:object size:0x8 scope:local data:double +lbl_801D4898 = .sdata2:0x801D4898; // type:object size:0x8 scope:local data:double +lbl_801D48A0 = .sdata2:0x801D48A0; // type:object size:0x8 scope:local data:double +lbl_801D48A8 = .sdata2:0x801D48A8; // type:object size:0x4 scope:local data:float +lbl_801D48AC = .sdata2:0x801D48AC; // type:object size:0x4 scope:local data:float +lbl_801D48B0 = .sdata2:0x801D48B0; // type:object size:0x4 scope:local data:float +lbl_801D48B4 = .sdata2:0x801D48B4; // type:object size:0x4 scope:local data:float +lbl_801D48B8 = .sdata2:0x801D48B8; // type:object size:0x8 scope:local data:double +lbl_801D48C0 = .sdata2:0x801D48C0; // type:object size:0x4 scope:local data:float +lbl_801D48C8 = .sdata2:0x801D48C8; // type:object size:0x8 scope:local data:double +lbl_801D48D0 = .sdata2:0x801D48D0; // type:object size:0x8 scope:local data:double +lbl_801D48D8 = .sdata2:0x801D48D8; // type:object size:0x4 scope:local data:float +lbl_801D48E0 = .sdata2:0x801D48E0; // type:object size:0x8 scope:local data:double +lbl_801D48E8 = .sdata2:0x801D48E8; // type:object size:0x4 scope:local data:float +lbl_801D48EC = .sdata2:0x801D48EC; // type:object size:0x4 scope:local data:float +lbl_801D48F0 = .sdata2:0x801D48F0; // type:object size:0x4 scope:local data:float +lbl_801D48F4 = .sdata2:0x801D48F4; // type:object size:0x4 scope:local data:float +lbl_801D48F8 = .sdata2:0x801D48F8; // type:object size:0x8 scope:local data:double +lbl_801D4900 = .sdata2:0x801D4900; // type:object size:0x8 scope:local data:double +lbl_801D4908 = .sdata2:0x801D4908; // type:object size:0x4 scope:local data:float +lbl_801D490C = .sdata2:0x801D490C; // type:object size:0x4 scope:local data:float +lbl_801D4910 = .sdata2:0x801D4910; // type:object size:0x8 scope:local data:double +lbl_801D4918 = .sdata2:0x801D4918; // type:object size:0x4 scope:local data:float +lbl_801D491C = .sdata2:0x801D491C; // type:object size:0x4 scope:local data:float +lbl_801D4920 = .sdata2:0x801D4920; // type:object size:0x4 scope:local data:float +lbl_801D4924 = .sdata2:0x801D4924; // type:object size:0x4 scope:local data:float +lbl_801D4928 = .sdata2:0x801D4928; // type:object size:0x8 scope:local data:double +lbl_801D4930 = .sdata2:0x801D4930; // type:object size:0x8 scope:local data:double +lbl_801D4938 = .sdata2:0x801D4938; // type:object size:0x4 scope:local data:float +lbl_801D493C = .sdata2:0x801D493C; // type:object size:0x4 scope:local data:float +lbl_801D4940 = .sdata2:0x801D4940; // type:object size:0x4 scope:local data:float +lbl_801D4944 = .sdata2:0x801D4944; // type:object size:0x4 scope:local data:float +lbl_801D4948 = .sdata2:0x801D4948; // type:object size:0x4 scope:local data:float +lbl_801D494C = .sdata2:0x801D494C; // type:object size:0x4 scope:local data:float +lbl_801D4950 = .sdata2:0x801D4950; // type:object size:0x4 scope:local data:float +lbl_801D4954 = .sdata2:0x801D4954; // type:object size:0x4 scope:local data:float +lbl_801D4958 = .sdata2:0x801D4958; // type:object size:0x4 scope:local data:float lbl_801D4960 = .sdata2:0x801D4960; // type:object size:0x8 data:double lbl_801D4968 = .sdata2:0x801D4968; // type:object size:0x8 data:double -lbl_801D4970 = .sdata2:0x801D4970; // type:object size:0x4 data:float -lbl_801D4978 = .sdata2:0x801D4978; // type:object size:0x8 data:double -lbl_801D4980 = .sdata2:0x801D4980; // type:object size:0x8 data:double -lbl_801D4988 = .sdata2:0x801D4988; // type:object size:0x8 data:double +lbl_801D4970 = .sdata2:0x801D4970; // type:object size:0x4 scope:local data:float +lbl_801D4978 = .sdata2:0x801D4978; // type:object size:0x8 scope:local data:double +lbl_801D4980 = .sdata2:0x801D4980; // type:object size:0x8 scope:local data:double +lbl_801D4988 = .sdata2:0x801D4988; // type:object size:0x8 scope:local data:double lbl_801D4990 = .sdata2:0x801D4990; // type:object size:0x4 data:float lbl_801D4994 = .sdata2:0x801D4994; // type:object size:0x4 data:float lbl_801D4998 = .sdata2:0x801D4998; // type:object size:0x4 data:float diff --git a/configure.py b/configure.py index c9980073..c4097c0a 100644 --- a/configure.py +++ b/configure.py @@ -392,16 +392,16 @@ config.libs = [ Object(NonMatching, "game/hsfdraw.c"), Object(Matching, "game/hsfman.c"), Object(Matching, "game/hsfmotion.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/hsfanim.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/hsfex.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/perf.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/objmain.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/fault.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/gamework.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/objsysobj.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/objdll.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/frand.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/audio.c"), + Object(Matching, "game/hsfanim.c"), + Object(Matching, "game/hsfex.c"), + Object(Matching, "game/perf.c"), + Object(Matching, "game/objmain.c"), + Object(Matching, "game/fault.c"), + Object(Matching, "game/gamework.c"), + Object(Matching, "game/objsysobj.c"), + Object(Matching, "game/objdll.c"), + Object(Matching, "game/frand.c"), + Object(Matching, "game/audio.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/EnvelopeExec.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/minigame_seq.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/ovllist.c"), diff --git a/include/ovl_table.h b/include/ovl_table.h index 4f66a2d2..bdd01ccd 100644 --- a/include/ovl_table.h +++ b/include/ovl_table.h @@ -1,3 +1,5 @@ +#include "version.h" + OVL_DEFINE(OVL__MINI, "dll/_minigameDLL.rel") OVL_DEFINE(OVL_BOOT, "dll/bootdll.rel") OVL_DEFINE(OVL_E3SETUP, "dll/e3setupDLL.rel") @@ -69,10 +71,17 @@ OVL_DEFINE(OVL_M461, "dll/m461dll.rel") OVL_DEFINE(OVL_M462, "dll/m462dll.rel") OVL_DEFINE(OVL_M463, "dll/m463dll.rel") OVL_DEFINE(OVL_MENT, "dll/mentdll.rel") +#if VERSION_JAP +OVL_DEFINE(OVL_MGMODE, "dll/mgmodedll.rel") +OVL_DEFINE(OVL_MODELTEST, "dll/modeltestdll.rel") +OVL_DEFINE(OVL_MODESEL, "dll/modeseldll.rel") +OVL_DEFINE(OVL_MOVIE, "dll/movieDll.rel") +#else OVL_DEFINE(OVL_MESS, "dll/messdll.rel") OVL_DEFINE(OVL_MGMODE, "dll/mgmodedll.rel") OVL_DEFINE(OVL_MODELTEST, "dll/modeltestdll.rel") OVL_DEFINE(OVL_MODESEL, "dll/modeseldll.rel") +#endif OVL_DEFINE(OVL_MPEX, "dll/mpexdll.rel") OVL_DEFINE(OVL_MSETUP, "dll/msetupdll.rel") OVL_DEFINE(OVL_MSTORY2, "dll/mstory2dll.rel") @@ -96,4 +105,4 @@ OVL_DEFINE(OVL_W06, "dll/w06dll.rel") OVL_DEFINE(OVL_W10, "dll/w10dll.rel") OVL_DEFINE(OVL_W20, "dll/w20dll.rel") OVL_DEFINE(OVL_W21, "dll/w21dll.rel") -OVL_DEFINE(OVL_ZTAR, "dll/ztardll.rel") \ No newline at end of file +OVL_DEFINE(OVL_ZTAR, "dll/ztardll.rel") From 586ceb55fdfd8e752aa22ab9e27a66dd175c37bd Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 26 Nov 2024 02:15:44 +0100 Subject: [PATCH 177/311] Split Japanese DOL till minigame_seq.c --- config/GMPE01_00/symbols.txt | 44 ++-- config/GMPE01_01/symbols.txt | 54 ++-- config/GMPJ01_00/splits.txt | 13 + config/GMPJ01_00/symbols.txt | 469 ++++++++++++++++++----------------- config/GMPP01_00/symbols.txt | 42 ++-- configure.py | 4 +- include/game/minigame_seq.h | 26 ++ src/game/minigame_seq.c | 303 +++++++++++++--------- 8 files changed, 540 insertions(+), 415 deletions(-) diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index a6e13c9b..25979f04 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -666,29 +666,29 @@ MGSeqKillAll = .text:0x80035A0C; // type:function size:0x3C MGSeqDoneCheck = .text:0x80035A48; // type:function size:0xA4 MGSeqStub = .text:0x80035AEC; // type:function size:0x4 MGSeqSprKill = .text:0x80035AF0; // type:function size:0x8C -SeqInitTimer = .text:0x80035B7C; // type:function size:0x2E0 scope:local -SeqUpdateTimer = .text:0x80035E5C; // type:function size:0x69C scope:local -SeqInitType2 = .text:0x800364F8; // type:function size:0x3D8 scope:local -SeqUpdateType2 = .text:0x800368D0; // type:function size:0x2F8 scope:local +MGSeqInitTimer = .text:0x80035B7C; // type:function size:0x2E0 +MGSeqUpdateTimer = .text:0x80035E5C; // type:function size:0x69C +MGSeqInitType2 = .text:0x800364F8; // type:function size:0x3D8 +MGSeqUpdateType2 = .text:0x800368D0; // type:function size:0x2F8 fn_80036BC8 = .text:0x80036BC8; // type:function size:0x188 SeqMakeWord = .text:0x80036D50; // type:function size:0x1D0 scope:local SeqLoadFontChar = .text:0x80036F20; // type:function size:0x26C scope:local -SeqInitMGBasic = .text:0x8003718C; // type:function size:0x194 scope:local -SeqUpdateMGBasic = .text:0x80037320; // type:function size:0x9D0 scope:local -SeqInitMGCommon = .text:0x80037CF0; // type:function size:0x2A4 scope:local -SeqUpdateMGBattle = .text:0x80037F94; // type:function size:0xDA4 scope:local -SeqUpdateMG1vs3 = .text:0x80038D38; // type:function size:0xDA4 scope:local -SeqUpdateMGStory = .text:0x80039ADC; // type:function size:0xBB8 scope:local -SeqUpdateMG2vs2 = .text:0x8003A694; // type:function size:0xAB4 scope:local -SeqInitFlip = .text:0x8003B148; // type:function size:0x3C4 scope:local -SeqUpdateFlip = .text:0x8003B50C; // type:function size:0x91C scope:local -SeqUpdateMGBowser = .text:0x8003BE28; // type:function size:0xC84 scope:local -SeqInitDraw = .text:0x8003CAAC; // type:function size:0xDC scope:local -SeqUpdateDraw = .text:0x8003CB88; // type:function size:0x3DC scope:local -SeqInitWin = .text:0x8003CF64; // type:function size:0x8A0 scope:local -SeqUpdateWin = .text:0x8003D804; // type:function size:0x72C scope:local -SeqInitRecord = .text:0x8003DF30; // type:function size:0x774 scope:local -SeqUpdateRecord = .text:0x8003E6A4; // type:function size:0x304 scope:local +MGSeqInitMGBasic = .text:0x8003718C; // type:function size:0x194 +MGSeqUpdateMGBasic = .text:0x80037320; // type:function size:0x9D0 +MGSeqInitMGCommon = .text:0x80037CF0; // type:function size:0x2A4 +MGSeqUpdateMGBattle = .text:0x80037F94; // type:function size:0xDA4 +MGSeqUpdateMG1vs3 = .text:0x80038D38; // type:function size:0xDA4 +MGSeqUpdateMGStory = .text:0x80039ADC; // type:function size:0xBB8 +MGSeqUpdateMG2vs2 = .text:0x8003A694; // type:function size:0xAB4 +MGSeqInitFlip = .text:0x8003B148; // type:function size:0x3C4 +MGSeqUpdateFlip = .text:0x8003B50C; // type:function size:0x91C +MGSeqUpdateMGBowser = .text:0x8003BE28; // type:function size:0xC84 +MGSeqInitDraw = .text:0x8003CAAC; // type:function size:0xDC +MGSeqUpdateDraw = .text:0x8003CB88; // type:function size:0x3DC +MGSeqInitWin = .text:0x8003CF64; // type:function size:0x8A0 +MGSeqUpdateWin = .text:0x8003D804; // type:function size:0x72C +MGSeqInitRecord = .text:0x8003DF30; // type:function size:0x774 +MGSeqUpdateRecord = .text:0x8003E6A4; // type:function size:0x304 MGSeqPauseInit = .text:0x8003E9A8; // type:function size:0x6C PauseProc = .text:0x8003EA14; // type:function size:0x94C scope:local MGSeqPauseKill = .text:0x8003F360; // type:function size:0xC @@ -3921,7 +3921,7 @@ lbl_8012F0C5 = .data:0x8012F0C5; // type:object size:0x3A lbl_8012F0FF = .data:0x8012F0FF; // type:object size:0x31 seqInfoTbl = .data:0x8012F130; // type:object size:0x1DC scope:local seqType2SprTbl = .data:0x8012F30C; // type:object size:0x18 scope:local -mgSeqTypeTbl = .data:0x8012F324; // type:object size:0x12 scope:local +mgSeqTypeTbl = .data:0x8012F324; // type:object size:0x12 scope:local data:2byte lbl_8012F336 = .data:0x8012F336; // type:object size:0x53 scope:local data:string lbl_8012F389 = .data:0x8012F389; // type:object size:0x9 scope:local data:string lbl_8012F392 = .data:0x8012F392; // type:object size:0x9 scope:local data:string @@ -4916,7 +4916,7 @@ lbl_801D359E = .sdata:0x801D359E; // type:object size:0x5 scope:local data:strin lbl_801D35A3 = .sdata:0x801D35A3; // type:object size:0x7 scope:local lbl_801D35AA = .sdata:0x801D35AA; // type:object size:0x6 scope:local lbl_801D35B0 = .sdata:0x801D35B0; // type:object size:0x6 scope:local data:string -pauseStr$2216 = .sdata:0x801D35B8; // type:object size:0x8 scope:local +pauseStr = .sdata:0x801D35B8; // type:object size:0x8 scope:local lbl_801D35C0 = .sdata:0x801D35C0; // type:object size:0x8 lbl_801D35C8 = .sdata:0x801D35C8; // type:object size:0x8 lbl_801D35D0 = .sdata:0x801D35D0; // type:object size:0x8 diff --git a/config/GMPE01_01/symbols.txt b/config/GMPE01_01/symbols.txt index a14c4673..4a3aaa79 100644 --- a/config/GMPE01_01/symbols.txt +++ b/config/GMPE01_01/symbols.txt @@ -666,29 +666,29 @@ MGSeqKillAll = .text:0x80035A0C; // type:function size:0x3C MGSeqDoneCheck = .text:0x80035A48; // type:function size:0xA4 MGSeqStub = .text:0x80035AEC; // type:function size:0x4 MGSeqSprKill = .text:0x80035AF0; // type:function size:0x8C -SeqInitTimer = .text:0x80035B7C; // type:function size:0x2E0 scope:local -SeqUpdateTimer = .text:0x80035E5C; // type:function size:0x69C scope:local -SeqInitType2 = .text:0x800364F8; // type:function size:0x3D8 scope:local -SeqUpdateType2 = .text:0x800368D0; // type:function size:0x2F8 scope:local +MGSeqInitTimer = .text:0x80035B7C; // type:function size:0x2E0 +MGSeqUpdateTimer = .text:0x80035E5C; // type:function size:0x69C +MGSeqInitType2 = .text:0x800364F8; // type:function size:0x3D8 +MGSeqUpdateType2 = .text:0x800368D0; // type:function size:0x2F8 fn_80036BC8 = .text:0x80036BC8; // type:function size:0x188 SeqMakeWord = .text:0x80036D50; // type:function size:0x1D0 scope:local SeqLoadFontChar = .text:0x80036F20; // type:function size:0x26C scope:local -SeqInitMGBasic = .text:0x8003718C; // type:function size:0x194 scope:local -SeqUpdateMGBasic = .text:0x80037320; // type:function size:0x9D0 scope:local -SeqInitMGCommon = .text:0x80037CF0; // type:function size:0x2A4 scope:local -SeqUpdateMGBattle = .text:0x80037F94; // type:function size:0xDA4 scope:local -SeqUpdateMG1vs3 = .text:0x80038D38; // type:function size:0xDA4 scope:local -SeqUpdateMGStory = .text:0x80039ADC; // type:function size:0xBB8 scope:local -SeqUpdateMG2vs2 = .text:0x8003A694; // type:function size:0xAB4 scope:local -SeqInitFlip = .text:0x8003B148; // type:function size:0x3C4 scope:local -SeqUpdateFlip = .text:0x8003B50C; // type:function size:0x91C scope:local -SeqUpdateMGBowser = .text:0x8003BE28; // type:function size:0xC84 scope:local -SeqInitDraw = .text:0x8003CAAC; // type:function size:0xDC scope:local -SeqUpdateDraw = .text:0x8003CB88; // type:function size:0x3DC scope:local -SeqInitWin = .text:0x8003CF64; // type:function size:0x8A0 scope:local -SeqUpdateWin = .text:0x8003D804; // type:function size:0x72C scope:local -SeqInitRecord = .text:0x8003DF30; // type:function size:0x774 scope:local -SeqUpdateRecord = .text:0x8003E6A4; // type:function size:0x304 scope:local +MGSeqInitMGBasic = .text:0x8003718C; // type:function size:0x194 +MGSeqUpdateMGBasic = .text:0x80037320; // type:function size:0x9D0 +MGSeqInitMGCommon = .text:0x80037CF0; // type:function size:0x2A4 +MGSeqUpdateMGBattle = .text:0x80037F94; // type:function size:0xDA4 +MGSeqUpdateMG1vs3 = .text:0x80038D38; // type:function size:0xDA4 +MGSeqUpdateMGStory = .text:0x80039ADC; // type:function size:0xBB8 +MGSeqUpdateMG2vs2 = .text:0x8003A694; // type:function size:0xAB4 +MGSeqInitFlip = .text:0x8003B148; // type:function size:0x3C4 +MGSeqUpdateFlip = .text:0x8003B50C; // type:function size:0x91C +MGSeqUpdateMGBowser = .text:0x8003BE28; // type:function size:0xC84 +MGSeqInitDraw = .text:0x8003CAAC; // type:function size:0xDC +MGSeqUpdateDraw = .text:0x8003CB88; // type:function size:0x3DC +MGSeqInitWin = .text:0x8003CF64; // type:function size:0x8A0 +MGSeqUpdateWin = .text:0x8003D804; // type:function size:0x72C +MGSeqInitRecord = .text:0x8003DF30; // type:function size:0x774 +MGSeqUpdateRecord = .text:0x8003E6A4; // type:function size:0x304 MGSeqPauseInit = .text:0x8003E9A8; // type:function size:0x6C PauseProc = .text:0x8003EA14; // type:function size:0x94C scope:local MGSeqPauseKill = .text:0x8003F360; // type:function size:0xC @@ -3588,7 +3588,7 @@ __init_cpp_exceptions_reference = .ctors:0x8011DCC0; // type:object size:0x4 sco _dtors = .dtors:0x8011DCE0; // type:label scope:global data:4byte __destroy_global_chain_reference = .dtors:0x8011DCE0; // type:object size:0x4 scope:global __fini_cpp_exceptions_reference = .dtors:0x8011DCE4; // type:object size:0x4 scope:global -lbl_8011DD00 = .rodata:0x8011DD00; // type:object size:0x10 data:4byte scope:local +lbl_8011DD00 = .rodata:0x8011DD00; // type:object size:0x10 scope:local data:4byte lbl_8011DD10 = .rodata:0x8011DD10; // type:object size:0x10 data:4byte lbl_8011DD20 = .rodata:0x8011DD20; // type:object size:0xC data:4byte lbl_8011DD30 = .rodata:0x8011DD30; // type:object size:0x20 data:byte @@ -3680,7 +3680,7 @@ pbOffsets$890 = .rodata:0x8011EBA0; // type:object size:0x18 scope:local inpColdMIDIDefaults = .rodata:0x8011EBB8; // type:object size:0x88 scope:local inpWarmMIDIDefaults = .rodata:0x8011EC40; // type:object size:0x88 scope:local data:byte itdOffTab = .rodata:0x8011ECC8; // type:object size:0x100 scope:local -lbl_8011EDE0 = .data:0x8011EDE0; // type:object size:0x10 data:string scope:local +lbl_8011EDE0 = .data:0x8011EDE0; // type:object size:0x10 scope:local data:string chanTbl = .data:0x8011EDF0; // type:object size:0x10 scope:local correctDiskID = .data:0x8011EE00; // type:object size:0x124 scope:local jumptable_8011EF24 = .data:0x8011EF24; // type:object size:0x34 scope:local @@ -4847,11 +4847,11 @@ fio = .bss:0x801D3150; // type:object size:0xC scope:local data:4byte mus = .bss:0x801D3160; // type:object size:0x178 scope:local data:2byte se = .bss:0x801D32D8; // type:object size:0xDC scope:local data:4byte StreamInfo = .bss:0x801D33C0; // type:object size:0x60 scope:local align:32 data:4byte -lbl_801D3420 = .sdata:0x801D3420; // type:object size:0x5 data:string scope:local +lbl_801D3420 = .sdata:0x801D3420; // type:object size:0x5 scope:local data:string lbl_801D3425 = .sdata:0x801D3425; // type:object size:0x7 scope:local rnd_seed = .sdata:0x801D342C; // type:object size:0x4 data:4byte -lbl_801D3430 = .sdata:0x801D3430; // type:object size:0x6 data:string scope:local -lbl_801D3436 = .sdata:0x801D3436; // type:object size:0x2 data:string scope:local +lbl_801D3430 = .sdata:0x801D3430; // type:object size:0x6 scope:local data:string +lbl_801D3436 = .sdata:0x801D3436; // type:object size:0x2 scope:local data:string lbl_801D3438 = .sdata:0x801D3438; // type:object size:0x7 data:string lbl_801D343F = .sdata:0x801D343F; // type:object size:0x9 FirstFrame = .sdata:0x801D3448; // type:object size:0x4 scope:local data:4byte @@ -4915,7 +4915,7 @@ lbl_801D359E = .sdata:0x801D359E; // type:object size:0x5 scope:local data:strin lbl_801D35A3 = .sdata:0x801D35A3; // type:object size:0x7 scope:local lbl_801D35AA = .sdata:0x801D35AA; // type:object size:0x6 scope:local lbl_801D35B0 = .sdata:0x801D35B0; // type:object size:0x6 scope:local data:string -pauseStr$2216 = .sdata:0x801D35B8; // type:object size:0x8 scope:local +pauseStr = .sdata:0x801D35B8; // type:object size:0x8 scope:local lbl_801D35C0 = .sdata:0x801D35C0; // type:object size:0x8 lbl_801D35C8 = .sdata:0x801D35C8; // type:object size:0x8 lbl_801D35D0 = .sdata:0x801D35D0; // type:object size:0x8 @@ -6020,7 +6020,7 @@ SendMailData = .sbss:0x801D4940; // type:object size:0x4 scope:local data:4byte RecvDataLeng = .sbss:0x801D4944; // type:object size:0x4 scope:local data:4byte pEXIInputFlag = .sbss:0x801D4948; // type:object size:0x4 scope:local data:4byte EXIInputFlag = .sbss:0x801D494C; // type:object size:0x1 scope:local data:byte -lbl_801D4960 = .sdata2:0x801D4960; // type:object size:0x8 data:double scope:local +lbl_801D4960 = .sdata2:0x801D4960; // type:object size:0x8 scope:local data:double lbl_801D4968 = .sdata2:0x801D4968; // type:object size:0x4 data:float lbl_801D496C = .sdata2:0x801D496C; // type:object size:0x4 data:float lbl_801D4970 = .sdata2:0x801D4970; // type:object size:0x8 data:double diff --git a/config/GMPJ01_00/splits.txt b/config/GMPJ01_00/splits.txt index e3b4c039..0cecdb13 100644 --- a/config/GMPJ01_00/splits.txt +++ b/config/GMPJ01_00/splits.txt @@ -188,3 +188,16 @@ game/audio.c: .sdata start:0x801D3150 end:0x801D3158 .sbss start:0x801D39D8 end:0x801D3A08 .sdata2 start:0x801D4980 end:0x801D4990 + +game/EnvelopeExec.c: + .text start:0x80033EEC end:0x800353AC + .sbss start:0x801D3A08 end:0x801D3A38 + .sdata2 start:0x801D4990 end:0x801D49A8 + +game/minigame_seq.c: + .text start:0x800353AC end:0x8003F690 + .data start:0x8012ED10 end:0x8012F378 + .bss start:0x801900F0 end:0x80190500 + .sdata start:0x801D3158 end:0x801D3258 + .sbss start:0x801D3A38 end:0x801D3A58 + .sdata2 start:0x801D49A8 end:0x801D4B60 diff --git a/config/GMPJ01_00/symbols.txt b/config/GMPJ01_00/symbols.txt index 65e081fc..b21e9dc2 100644 --- a/config/GMPJ01_00/symbols.txt +++ b/config/GMPJ01_00/symbols.txt @@ -667,29 +667,29 @@ MGSeqKillAll = .text:0x80035A0C; // type:function size:0x3C MGSeqDoneCheck = .text:0x80035A48; // type:function size:0xA4 MGSeqStub = .text:0x80035AEC; // type:function size:0x4 MGSeqSprKill = .text:0x80035AF0; // type:function size:0x8C -SeqInitTimer = .text:0x80035B7C; // type:function size:0x2E0 scope:local -SeqUpdateTimer = .text:0x80035E5C; // type:function size:0x69C scope:local -SeqInitType2 = .text:0x800364F8; // type:function size:0x3D8 scope:local -SeqUpdateType2 = .text:0x800368D0; // type:function size:0x2F8 scope:local +MGSeqInitTimer = .text:0x80035B7C; // type:function size:0x2E0 +MGSeqUpdateTimer = .text:0x80035E5C; // type:function size:0x69C +MGSeqInitType2 = .text:0x800364F8; // type:function size:0x3D8 +MGSeqUpdateType2 = .text:0x800368D0; // type:function size:0x2F8 fn_80036BC8 = .text:0x80036BC8; // type:function size:0x188 SeqMakeWord = .text:0x80036D50; // type:function size:0x1E4 scope:local SeqLoadFontChar = .text:0x80036F34; // type:function size:0x23C scope:local -SeqInitMGBasic = .text:0x80037170; // type:function size:0x194 scope:local -SeqUpdateMGBasic = .text:0x80037304; // type:function size:0x9D0 scope:local -SeqInitMGCommon = .text:0x80037CD4; // type:function size:0x2A4 scope:local -SeqUpdateMGBattle = .text:0x80037F78; // type:function size:0xDA4 scope:local -SeqUpdateMG1vs3 = .text:0x80038D1C; // type:function size:0xDA4 scope:local -SeqUpdateMGStory = .text:0x80039AC0; // type:function size:0xBB8 scope:local -SeqUpdateMG2vs2 = .text:0x8003A678; // type:function size:0xAB4 scope:local -SeqInitFlip = .text:0x8003B12C; // type:function size:0x3C4 scope:local -SeqUpdateFlip = .text:0x8003B4F0; // type:function size:0x91C scope:local -SeqUpdateMGBowser = .text:0x8003BE0C; // type:function size:0xC84 scope:local -SeqInitDraw = .text:0x8003CA90; // type:function size:0xDC scope:local -SeqUpdateDraw = .text:0x8003CB6C; // type:function size:0x3DC scope:local -SeqInitWin = .text:0x8003CF48; // type:function size:0x6B8 scope:local -SeqUpdateWin = .text:0x8003D600; // type:function size:0x708 scope:local -SeqInitRecord = .text:0x8003DD08; // type:function size:0x774 scope:local -SeqUpdateRecord = .text:0x8003E47C; // type:function size:0x304 scope:local +MGSeqInitMGBasic = .text:0x80037170; // type:function size:0x194 +MGSeqUpdateMGBasic = .text:0x80037304; // type:function size:0x9D0 +MGSeqInitMGCommon = .text:0x80037CD4; // type:function size:0x2A4 +MGSeqUpdateMGBattle = .text:0x80037F78; // type:function size:0xDA4 +MGSeqUpdateMG1vs3 = .text:0x80038D1C; // type:function size:0xDA4 +MGSeqUpdateMGStory = .text:0x80039AC0; // type:function size:0xBB8 +MGSeqUpdateMG2vs2 = .text:0x8003A678; // type:function size:0xAB4 +MGSeqInitFlip = .text:0x8003B12C; // type:function size:0x3C4 +MGSeqUpdateFlip = .text:0x8003B4F0; // type:function size:0x91C +MGSeqUpdateMGBowser = .text:0x8003BE0C; // type:function size:0xC84 +MGSeqInitDraw = .text:0x8003CA90; // type:function size:0xDC +MGSeqUpdateDraw = .text:0x8003CB6C; // type:function size:0x3DC +MGSeqInitWin = .text:0x8003CF48; // type:function size:0x6B8 +MGSeqUpdateWin = .text:0x8003D600; // type:function size:0x708 +MGSeqInitRecord = .text:0x8003DD08; // type:function size:0x774 +MGSeqUpdateRecord = .text:0x8003E47C; // type:function size:0x304 MGSeqPauseInit = .text:0x8003E780; // type:function size:0x6C PauseProc = .text:0x8003E7EC; // type:function size:0x94C scope:local MGSeqPauseKill = .text:0x8003F138; // type:function size:0xC @@ -3905,24 +3905,33 @@ lbl_8012E2F5 = .data:0x8012E2F5; // type:object size:0x273 scope:local lbl_8012E568 = .data:0x8012E568; // type:object size:0x12 scope:local data:string lbl_8012E57A = .data:0x8012E57A; // type:object size:0xD6 scope:local sndGrpTable = .data:0x8012E650; // type:object size:0x5B0 -lbl_8012ec00 = .data:0x8012EC00; // type:object size:0x94 scope:local +lbl_8012EC00 = .data:0x8012EC00; // type:object size:0x94 scope:local lbl_8012EC94 = .data:0x8012EC94; // type:object size:0x11 scope:local data:string lbl_8012ECA5 = .data:0x8012ECA5; // type:object size:0x3A scope:local lbl_8012ECDF = .data:0x8012ECDF; // type:object size:0x31 scope:local -lbl_8012ED10 = .data:0x8012ED10; // type:object size:0x1DC -lbl_8012EEEC = .data:0x8012EEEC; // type:object size:0x18 -lbl_8012EF04 = .data:0x8012EF04; // type:object size:0x120 -lbl_8012F024 = .data:0x8012F024; // type:object size:0x18 -lbl_8012F03C = .data:0x8012F03C; // type:object size:0x40 -lbl_8012F07C = .data:0x8012F07C; // type:object size:0x1C -lbl_8012F098 = .data:0x8012F098; // type:object size:0x38 -lbl_8012F0D0 = .data:0x8012F0D0; // type:object size:0x9 data:string -lbl_8012F0D9 = .data:0x8012F0D9; // type:object size:0x83 -lbl_8012F15C = .data:0x8012F15C; // type:object size:0x24 -lbl_8012F180 = .data:0x8012F180; // type:object size:0x50 -lbl_8012F1D0 = .data:0x8012F1D0; // type:object size:0xAC -lbl_8012F27C = .data:0x8012F27C; // type:object size:0xC -lbl_8012F288 = .data:0x8012F288; // type:object size:0xF0 +seqInfoTbl = .data:0x8012ED10; // type:object size:0x1DC scope:local +seqType2SprTbl = .data:0x8012EEEC; // type:object size:0x18 scope:local +mgSeqTypeTbl = .data:0x8012EF04; // type:object size:0x12 scope:local data:2byte +lbl_8012F336 = .data:0x8012EF16; // type:object size:0x53 scope:local data:string +lbl_8012F389 = .data:0x8012EF69; // type:object size:0x9 scope:local data:string +lbl_8012F392 = .data:0x8012EF72; // type:object size:0x9 scope:local data:string +seqFontAlphaTbl = .data:0x8012EF7B; // type:object size:0x35 scope:local data:string +seqFontKanaTbl = .data:0x8012EFB0; // type:object size:0x52 scope:local data:string +seqFontNumTbl = .data:0x8012F002; // type:object size:0xB scope:local data:string +letterBufTbl = .data:0x8012F010; // type:object size:0x14 scope:local +wordMgTbl = .data:0x8012F024; // type:object size:0x18 scope:local +letterOfs$1005 = .data:0x8012F03C; // type:object size:0x40 scope:local data:float +letterOfs$1482 = .data:0x8012F07C; // type:object size:0x1C scope:local data:2byte +letterOfs$1856 = .data:0x8012F098; // type:object size:0x38 scope:local data:float +@1986 = .data:0x8012F0D0; // type:object size:0x9 scope:local data:string +@1988 = .data:0x8012F0D9; // type:object size:0xB scope:local data:string +winCharNameTbl = .data:0x8012F0E4; // type:object size:0x78 scope:local data:string_table +@1996 = .data:0x8012F15C; // type:object size:0xA scope:local data:string +winWordTbl = .data:0x8012F168; // type:object size:0x18 scope:local +winPosOfs = .data:0x8012F180; // type:object size:0x50 scope:local +practiceTbl = .data:0x8012F1D0; // type:object size:0xAC scope:local +yPosTbl$2429 = .data:0x8012F27C; // type:object size:0xC scope:local +seqStartFXTbl = .data:0x8012F288; // type:object size:0xEC scope:local lbl_8012F378 = .data:0x8012F378; // type:object size:0x15 data:string lbl_8012F38D = .data:0x8012F38D; // type:object size:0x10 data:string lbl_8012F39D = .data:0x8012F39D; // type:object size:0x13 data:string @@ -4097,7 +4106,7 @@ lbl_80130D0C = .data:0x80130D0C; // type:object size:0xBC lbl_80130DC8 = .data:0x80130DC8; // type:object size:0x100 lbl_80130EC8 = .data:0x80130EC8; // type:object size:0x4D lbl_80130F15 = .data:0x80130F15; // type:object size:0x1B -lbl_80130F30 = .data:0x80130F30; // type:object size:0xE00 data:2byte +mgInfoTbl = .data:0x80130F30; // type:object size:0xE00 data:2byte lbl_80131D30 = .data:0x80131D30; // type:object size:0x40 lbl_80131D70 = .data:0x80131D70; // type:object size:0x14 lbl_80131D84 = .data:0x80131D84; // type:object size:0xC data:string @@ -4417,8 +4426,8 @@ CZoomM = .bss:0x8018FE40; // type:object size:0x40 omDLLinfoTbl = .bss:0x8018FE80; // type:object size:0x50 sndFXBuf = .bss:0x8018FED0; // type:object size:0x200 scope:local charVoiceGroupStat = .bss:0x801900D0; // type:object size:0x20 -lbl_801900F0 = .bss:0x801900F0; // type:object size:0x400 data:4byte -lbl_801904F0 = .bss:0x801904F0; // type:object size:0x10 data:2byte +seqWorkData = .bss:0x801900F0; // type:object size:0x400 scope:local data:4byte +winnerNameW = .bss:0x801904F0; // type:object size:0x10 scope:local data:2byte lbl_80190500 = .bss:0x80190500; // type:object size:0x600 data:2byte lbl_80190B00 = .bss:0x80190B00; // type:object size:0x1200 data:4byte lbl_80191D00 = .bss:0x80191D00; // type:object size:0x100 @@ -4643,50 +4652,50 @@ titleMes = .sdata:0x801D3140; // type:object size:0x4 scope:local data:4byte lbl_801D3144 = .sdata:0x801D3144; // type:object size:0xC scope:local lbl_801D3150 = .sdata:0x801D3150; // type:object size:0x1 scope:local lbl_801D3151 = .sdata:0x801D3151; // type:object size:0x7 scope:local -lbl_801D3158 = .sdata:0x801D3158; // type:object size:0x4 data:4byte -lbl_801D315C = .sdata:0x801D315C; // type:object size:0x7 data:string -lbl_801D3163 = .sdata:0x801D3163; // type:object size:0x1 data:byte -lbl_801D3166 = .sdata:0x801D3166; // type:object size:0x6 -lbl_801D316C = .sdata:0x801D316C; // type:object size:0x8 -lbl_801D3174 = .sdata:0x801D3174; // type:object size:0x6 -lbl_801D317A = .sdata:0x801D317A; // type:object size:0x8 data:string -lbl_801D3182 = .sdata:0x801D3182; // type:object size:0x6 data:string -lbl_801D3188 = .sdata:0x801D3188; // type:object size:0x4 -lbl_801D318C = .sdata:0x801D318C; // type:object size:0x6 data:string -lbl_801D3192 = .sdata:0x801D3192; // type:object size:0x6 -lbl_801D3198 = .sdata:0x801D3198; // type:object size:0x6 data:string -lbl_801D319E = .sdata:0x801D319E; // type:object size:0x5 -lbl_801D31A3 = .sdata:0x801D31A3; // type:object size:0x6 data:string -lbl_801D31A9 = .sdata:0x801D31A9; // type:object size:0x5 -lbl_801D31AE = .sdata:0x801D31AE; // type:object size:0x6 data:string -lbl_801D31B4 = .sdata:0x801D31B4; // type:object size:0x4 -lbl_801D31B8 = .sdata:0x801D31B8; // type:object size:0x6 data:string -lbl_801D31BE = .sdata:0x801D31BE; // type:object size:0x6 -lbl_801D31C4 = .sdata:0x801D31C4; // type:object size:0x3 data:string -lbl_801D31C7 = .sdata:0x801D31C7; // type:object size:0x7 -lbl_801D31CE = .sdata:0x801D31CE; // type:object size:0x6 data:string -lbl_801D31D4 = .sdata:0x801D31D4; // type:object size:0x7 -lbl_801D31DB = .sdata:0x801D31DB; // type:object size:0x8 data:string -lbl_801D31E3 = .sdata:0x801D31E3; // type:object size:0x5 -lbl_801D31E8 = .sdata:0x801D31E8; // type:object size:0x7 data:string -lbl_801D31EF = .sdata:0x801D31EF; // type:object size:0x6 -lbl_801D31F5 = .sdata:0x801D31F5; // type:object size:0x5 data:string -lbl_801D31FA = .sdata:0x801D31FA; // type:object size:0x5 -lbl_801D31FF = .sdata:0x801D31FF; // type:object size:0x6 data:string -lbl_801D3205 = .sdata:0x801D3205; // type:object size:0x4 -lbl_801D3209 = .sdata:0x801D3209; // type:object size:0x8 data:string -lbl_801D3211 = .sdata:0x801D3211; // type:object size:0x5 -lbl_801D3216 = .sdata:0x801D3216; // type:object size:0x7 -lbl_801D321D = .sdata:0x801D321D; // type:object size:0x6 -lbl_801D3223 = .sdata:0x801D3223; // type:object size:0x7 data:string -lbl_801D322A = .sdata:0x801D322A; // type:object size:0x3 -lbl_801D322D = .sdata:0x801D322D; // type:object size:0x5 data:string -lbl_801D3232 = .sdata:0x801D3232; // type:object size:0x6 -lbl_801D3238 = .sdata:0x801D3238; // type:object size:0x5 data:string -lbl_801D323D = .sdata:0x801D323D; // type:object size:0x7 -lbl_801D3244 = .sdata:0x801D3244; // type:object size:0x6 -lbl_801D324A = .sdata:0x801D324A; // type:object size:0x6 data:string -lbl_801D3250 = .sdata:0x801D3250; // type:object size:0x8 +mgSeqOvlPrev = .sdata:0x801D3158; // type:object size:0x4 data:4byte +wordStartE = .sdata:0x801D315C; // type:object size:0x7 scope:local data:string +seqPunctTbl = .sdata:0x801D3163; // type:object size:0x3 scope:local data:byte +wordStartJ = .sdata:0x801D3166; // type:object size:0x6 scope:local +wordFinishJ = .sdata:0x801D316C; // type:object size:0x8 scope:local +wordDrawJ = .sdata:0x801D3174; // type:object size:0x6 scope:local +wordFinishE = .sdata:0x801D317A; // type:object size:0x8 scope:local data:string +wordDrawE = .sdata:0x801D3182; // type:object size:0x6 scope:local data:string +@1961 = .sdata:0x801D3188; // type:object size:0x4 scope:local data:string +@1962 = .sdata:0x801D318C; // type:object size:0x6 scope:local data:string +@1963 = .sdata:0x801D3192; // type:object size:0x6 scope:local +@1964 = .sdata:0x801D3198; // type:object size:0x6 scope:local data:string +@1965 = .sdata:0x801D319E; // type:object size:0x5 scope:local +@1966 = .sdata:0x801D31A3; // type:object size:0x6 scope:local data:string +@1967 = .sdata:0x801D31A9; // type:object size:0x5 scope:local +@1968 = .sdata:0x801D31AE; // type:object size:0x6 scope:local data:string +@1969 = .sdata:0x801D31B4; // type:object size:0x4 scope:local +@1970 = .sdata:0x801D31B8; // type:object size:0x6 scope:local data:string +@1971 = .sdata:0x801D31BE; // type:object size:0x6 scope:local +@1972 = .sdata:0x801D31C4; // type:object size:0x3 scope:local data:string +@1973 = .sdata:0x801D31C7; // type:object size:0x7 scope:local +@1974 = .sdata:0x801D31CE; // type:object size:0x6 scope:local data:string +@1975 = .sdata:0x801D31D4; // type:object size:0x7 scope:local +@1976 = .sdata:0x801D31DB; // type:object size:0x8 scope:local data:string +@1977 = .sdata:0x801D31E3; // type:object size:0x5 scope:local +@1978 = .sdata:0x801D31E8; // type:object size:0x7 scope:local data:string +@1979 = .sdata:0x801D31EF; // type:object size:0x6 scope:local +@1980 = .sdata:0x801D31F5; // type:object size:0x5 scope:local data:string +@1981 = .sdata:0x801D31FA; // type:object size:0x5 scope:local +@1982 = .sdata:0x801D31FF; // type:object size:0x6 scope:local data:string +@1983 = .sdata:0x801D3205; // type:object size:0x4 scope:local +@1984 = .sdata:0x801D3209; // type:object size:0x8 scope:local data:string +@1985 = .sdata:0x801D3211; // type:object size:0x5 scope:local +@1986 = .sdata:0x801D3216; // type:object size:0x7 scope:local +@1987 = .sdata:0x801D321D; // type:object size:0x6 scope:local +@1988 = .sdata:0x801D3223; // type:object size:0x7 scope:local data:string +@1989 = .sdata:0x801D322A; // type:object size:0x3 scope:local +@1990 = .sdata:0x801D322D; // type:object size:0x5 scope:local data:string +@1991 = .sdata:0x801D3232; // type:object size:0x6 scope:local +@1992 = .sdata:0x801D3238; // type:object size:0x5 scope:local data:string +@1993 = .sdata:0x801D323D; // type:object size:0x7 scope:local +@1994 = .sdata:0x801D3244; // type:object size:0x6 scope:local +@1995 = .sdata:0x801D324A; // type:object size:0x6 scope:local data:string +pauseStr$2283 = .sdata:0x801D3250; // type:object size:0x8 scope:local lbl_801D3258 = .sdata:0x801D3258; // type:object size:0x8 lbl_801D3260 = .sdata:0x801D3260; // type:object size:0x8 lbl_801D3268 = .sdata:0x801D3268; // type:object size:0x8 @@ -5107,31 +5116,31 @@ auxBNoBak = .sbss:0x801D39F8; // type:object size:0x4 scope:local data:4byte auxANoBak = .sbss:0x801D39FC; // type:object size:0x4 scope:local data:4byte sndGroupBak = .sbss:0x801D3A00; // type:object size:0x2 scope:local data:2byte Hu3DAudVol = .sbss:0x801D3A02; // type:object size:0x6 scope:local data:2byte -Meshno = .sbss:0x801D3A08; // type:object size:0x4 data:4byte -lbl_801D3A0C = .sbss:0x801D3A0C; // type:object size:0x4 data:4byte -lbl_801D3A10 = .sbss:0x801D3A10; // type:object size:0x4 data:4byte -lbl_801D3A14 = .sbss:0x801D3A14; // type:object size:0x4 data:4byte -lbl_801D3A18 = .sbss:0x801D3A18; // type:object size:0x4 data:4byte -lbl_801D3A1C = .sbss:0x801D3A1C; // type:object size:0x4 data:4byte -lbl_801D3A20 = .sbss:0x801D3A20; // type:object size:0x4 data:4byte -lbl_801D3A24 = .sbss:0x801D3A24; // type:object size:0x4 data:4byte -lbl_801D3A28 = .sbss:0x801D3A28; // type:object size:0x4 data:4byte -lbl_801D3A2C = .sbss:0x801D3A2C; // type:object size:0x4 data:4byte -lbl_801D3A30 = .sbss:0x801D3A30; // type:object size:0x8 data:4byte -lbl_801D3A38 = .sbss:0x801D3A38; // type:object size:0x4 data:4byte -lbl_801D3A3C = .sbss:0x801D3A3C; // type:object size:0x4 data:4byte -lbl_801D3A40 = .sbss:0x801D3A40; // type:object size:0x4 data:4byte -lbl_801D3A44 = .sbss:0x801D3A44; // type:object size:0x4 data:4byte -lbl_801D3A48 = .sbss:0x801D3A48; // type:object size:0x4 data:4byte -lbl_801D3A4C = .sbss:0x801D3A4C; // type:object size:0x4 data:4byte -lbl_801D3A50 = .sbss:0x801D3A50; // type:object size:0x2 data:2byte -lbl_801D3A52 = .sbss:0x801D3A52; // type:object size:0x2 data:2byte +Meshno = .sbss:0x801D3A08; // type:object size:0x4 scope:local data:4byte +Meshcnt = .sbss:0x801D3A0C; // type:object size:0x4 scope:local data:4byte +normtop = .sbss:0x801D3A10; // type:object size:0x4 scope:local data:4byte +normenv = .sbss:0x801D3A14; // type:object size:0x4 scope:local data:4byte +vtxenv = .sbss:0x801D3A18; // type:object size:0x4 scope:local data:4byte +CurHsf = .sbss:0x801D3A1C; // type:object size:0x4 scope:local data:4byte +objtop = .sbss:0x801D3A20; // type:object size:0x4 scope:local data:4byte +nMesh = .sbss:0x801D3A24; // type:object size:0x4 scope:local data:4byte +nObj = .sbss:0x801D3A28; // type:object size:0x4 scope:local data:4byte +MtxTop = .sbss:0x801D3A2C; // type:object size:0x4 data:4byte +Vertextop = .sbss:0x801D3A30; // type:object size:0x4 data:4byte +seqLanguage = .sbss:0x801D3A38; // type:object size:0x4 scope:local data:4byte +pauseProcess = .sbss:0x801D3A3C; // type:object size:0x4 scope:local data:4byte +pauseActiveF = .sbss:0x801D3A40; // type:object size:0x4 scope:local data:4byte +pauseExitF = .sbss:0x801D3A44; // type:object size:0x4 scope:local data:4byte +pauseWaitF = .sbss:0x801D3A48; // type:object size:0x4 scope:local data:4byte +seqRecordVal = .sbss:0x801D3A4C; // type:object size:0x4 scope:local data:4byte +seqPauseF = .sbss:0x801D3A50; // type:object size:0x2 scope:local data:2byte +seqSpeed = .sbss:0x801D3A52; // type:object size:0x2 scope:local data:2byte lbl_801D3A54 = .sbss:0x801D3A54; // type:object size:0x1 data:byte -lbl_801D3A55 = .sbss:0x801D3A55; // type:object size:0x1 data:byte -lbl_801D3A56 = .sbss:0x801D3A56; // type:object size:0x2 data:2byte +seqDoneF = .sbss:0x801D3A55; // type:object size:0x1 scope:local data:byte +seqTimer = .sbss:0x801D3A56; // type:object size:0x2 scope:local data:2byte lbl_801D3A58 = .sbss:0x801D3A58; // type:object size:0x8 data:2byte lbl_801D3A60 = .sbss:0x801D3A60; // type:object size:0x8 -lbl_801D3A68 = .sbss:0x801D3A68; // type:object size:0x8 data:4byte +wipeFadeInF = .sbss:0x801D3A68; // type:object size:0x8 data:4byte lbl_801D3A70 = .sbss:0x801D3A70; // type:object size:0x4 data:4byte lbl_801D3A74 = .sbss:0x801D3A74; // type:object size:0x1 data:byte lbl_801D3A76 = .sbss:0x801D3A76; // type:object size:0x2 data:2byte @@ -5185,8 +5194,8 @@ lbl_801D3B30 = .sbss:0x801D3B30; // type:object size:0x4 data:4byte lbl_801D3B34 = .sbss:0x801D3B34; // type:object size:0xC data:4byte lbl_801D3B40 = .sbss:0x801D3B40; // type:object size:0x4 lbl_801D3B44 = .sbss:0x801D3B44; // type:object size:0x4 -lbl_801D3B48 = .sbss:0x801D3B48; // type:object size:0x4 data:4byte -lbl_801D3B4C = .sbss:0x801D3B4C; // type:object size:0x4 data:4byte +mgPracticeEnableF = .sbss:0x801D3B48; // type:object size:0x4 data:4byte +mgQuitExtraF = .sbss:0x801D3B4C; // type:object size:0x4 data:4byte lbl_801D3B50 = .sbss:0x801D3B50; // type:object size:0x4 lbl_801D3B54 = .sbss:0x801D3B54; // type:object size:0x2 lbl_801D3B56 = .sbss:0x801D3B56; // type:object size:0x2 @@ -5341,7 +5350,7 @@ lbl_801D3D8A = .sbss:0x801D3D8A; // type:object size:0x1 data:byte lbl_801D3D8B = .sbss:0x801D3D8B; // type:object size:0x1 data:byte lbl_801D3D8C = .sbss:0x801D3D8C; // type:object size:0x1 data:byte lbl_801D3D8E = .sbss:0x801D3D8E; // type:object size:0x6 data:2byte -lbl_801D3D94 = .sbss:0x801D3D94; // type:object size:0x4 data:4byte +lbl_801D3D94_2 = .sbss:0x801D3D94; // type:object size:0x4 data:4byte lbl_801D3D98 = .sbss:0x801D3D98; // type:object size:0x1 data:byte lbl_801D3D99 = .sbss:0x801D3D99; // type:object size:0x1 data:byte lbl_801D3D9A = .sbss:0x801D3D9A; // type:object size:0x1 data:byte @@ -5968,129 +5977,129 @@ lbl_801D4970 = .sdata2:0x801D4970; // type:object size:0x4 scope:local data:floa lbl_801D4978 = .sdata2:0x801D4978; // type:object size:0x8 scope:local data:double lbl_801D4980 = .sdata2:0x801D4980; // type:object size:0x8 scope:local data:double lbl_801D4988 = .sdata2:0x801D4988; // type:object size:0x8 scope:local data:double -lbl_801D4990 = .sdata2:0x801D4990; // type:object size:0x4 data:float -lbl_801D4994 = .sdata2:0x801D4994; // type:object size:0x4 data:float -lbl_801D4998 = .sdata2:0x801D4998; // type:object size:0x4 data:float -lbl_801D49A0 = .sdata2:0x801D49A0; // type:object size:0x8 data:double -lbl_801D49A8 = .sdata2:0x801D49A8; // type:object size:0x4 data:float -lbl_801D49AC = .sdata2:0x801D49AC; // type:object size:0x4 data:float -lbl_801D49B0 = .sdata2:0x801D49B0; // type:object size:0x8 data:double -lbl_801D49B8 = .sdata2:0x801D49B8; // type:object size:0x8 data:double -lbl_801D49C0 = .sdata2:0x801D49C0; // type:object size:0x8 data:double -lbl_801D49C8 = .sdata2:0x801D49C8; // type:object size:0x8 data:double -lbl_801D49D0 = .sdata2:0x801D49D0; // type:object size:0x8 data:double -lbl_801D49D8 = .sdata2:0x801D49D8; // type:object size:0x8 data:double -lbl_801D49E0 = .sdata2:0x801D49E0; // type:object size:0x4 data:float -lbl_801D49E4 = .sdata2:0x801D49E4; // type:object size:0x4 data:float -lbl_801D49E8 = .sdata2:0x801D49E8; // type:object size:0x8 data:double -lbl_801D49F0 = .sdata2:0x801D49F0; // type:object size:0x4 data:float -lbl_801D49F4 = .sdata2:0x801D49F4; // type:object size:0x4 data:float -lbl_801D49F8 = .sdata2:0x801D49F8; // type:object size:0x4 data:float -lbl_801D49FC = .sdata2:0x801D49FC; // type:object size:0x4 data:float -lbl_801D4A00 = .sdata2:0x801D4A00; // type:object size:0x4 data:float -lbl_801D4A04 = .sdata2:0x801D4A04; // type:object size:0x4 data:float -lbl_801D4A08 = .sdata2:0x801D4A08; // type:object size:0x4 data:float -lbl_801D4A0C = .sdata2:0x801D4A0C; // type:object size:0x4 data:float -lbl_801D4A10 = .sdata2:0x801D4A10; // type:object size:0x4 data:float -lbl_801D4A14 = .sdata2:0x801D4A14; // type:object size:0x4 data:float -lbl_801D4A18 = .sdata2:0x801D4A18; // type:object size:0x4 data:float -lbl_801D4A1C = .sdata2:0x801D4A1C; // type:object size:0x4 data:float -lbl_801D4A20 = .sdata2:0x801D4A20; // type:object size:0x4 data:float -lbl_801D4A24 = .sdata2:0x801D4A24; // type:object size:0x4 data:float -lbl_801D4A28 = .sdata2:0x801D4A28; // type:object size:0x4 data:float -lbl_801D4A2C = .sdata2:0x801D4A2C; // type:object size:0x4 data:float -lbl_801D4A30 = .sdata2:0x801D4A30; // type:object size:0x4 data:float -lbl_801D4A34 = .sdata2:0x801D4A34; // type:object size:0x4 data:float -lbl_801D4A38 = .sdata2:0x801D4A38; // type:object size:0x8 data:double -lbl_801D4A40 = .sdata2:0x801D4A40; // type:object size:0x4 data:float -lbl_801D4A44 = .sdata2:0x801D4A44; // type:object size:0x4 data:float -lbl_801D4A48 = .sdata2:0x801D4A48; // type:object size:0x8 data:double -lbl_801D4A50 = .sdata2:0x801D4A50; // type:object size:0x8 data:double -lbl_801D4A58 = .sdata2:0x801D4A58; // type:object size:0x4 data:float -lbl_801D4A5C = .sdata2:0x801D4A5C; // type:object size:0x4 data:float -lbl_801D4A60 = .sdata2:0x801D4A60; // type:object size:0x8 data:double -lbl_801D4A68 = .sdata2:0x801D4A68; // type:object size:0x4 data:float -lbl_801D4A6C = .sdata2:0x801D4A6C; // type:object size:0x4 data:float -lbl_801D4A70 = .sdata2:0x801D4A70; // type:object size:0x4 data:float -lbl_801D4A74 = .sdata2:0x801D4A74; // type:object size:0x4 data:float -lbl_801D4A78 = .sdata2:0x801D4A78; // type:object size:0x4 data:float -lbl_801D4A80 = .sdata2:0x801D4A80; // type:object size:0x8 data:double -lbl_801D4A88 = .sdata2:0x801D4A88; // type:object size:0x4 data:float -lbl_801D4A90 = .sdata2:0x801D4A90; // type:object size:0x8 data:double -lbl_801D4A98 = .sdata2:0x801D4A98; // type:object size:0x4 data:float -lbl_801D4A9C = .sdata2:0x801D4A9C; // type:object size:0x4 data:float -lbl_801D4AA0 = .sdata2:0x801D4AA0; // type:object size:0x4 data:float -lbl_801D4AA4 = .sdata2:0x801D4AA4; // type:object size:0x4 data:float -lbl_801D4AA8 = .sdata2:0x801D4AA8; // type:object size:0x8 data:double -lbl_801D4AB0 = .sdata2:0x801D4AB0; // type:object size:0x4 data:float -lbl_801D4AB8 = .sdata2:0x801D4AB8; // type:object size:0x8 data:double -lbl_801D4AC0 = .sdata2:0x801D4AC0; // type:object size:0x8 data:double -lbl_801D4AC8 = .sdata2:0x801D4AC8; // type:object size:0x8 data:double -lbl_801D4AD0 = .sdata2:0x801D4AD0; // type:object size:0x4 data:float -lbl_801D4AD8 = .sdata2:0x801D4AD8; // type:object size:0x8 data:double -lbl_801D4AE0 = .sdata2:0x801D4AE0; // type:object size:0x4 data:float -lbl_801D4AE4 = .sdata2:0x801D4AE4; // type:object size:0x4 data:float -lbl_801D4AE8 = .sdata2:0x801D4AE8; // type:object size:0x4 data:float -lbl_801D4AEC = .sdata2:0x801D4AEC; // type:object size:0x4 data:float -lbl_801D4AF0 = .sdata2:0x801D4AF0; // type:object size:0x4 data:float -lbl_801D4AF4 = .sdata2:0x801D4AF4; // type:object size:0x4 data:float -lbl_801D4AF8 = .sdata2:0x801D4AF8; // type:object size:0x4 data:float -lbl_801D4AFC = .sdata2:0x801D4AFC; // type:object size:0x4 data:float -lbl_801D4B00 = .sdata2:0x801D4B00; // type:object size:0x8 data:double -lbl_801D4B08 = .sdata2:0x801D4B08; // type:object size:0x8 data:double -lbl_801D4B10 = .sdata2:0x801D4B10; // type:object size:0x8 data:double -lbl_801D4B18 = .sdata2:0x801D4B18; // type:object size:0x2 data:2byte -lbl_801D4B1A = .sdata2:0x801D4B1A; // type:object size:0x2 data:2byte -lbl_801D4B1C = .sdata2:0x801D4B1C; // type:object size:0x2 data:2byte -lbl_801D4B20 = .sdata2:0x801D4B20; // type:object size:0x4 data:float -lbl_801D4B24 = .sdata2:0x801D4B24; // type:object size:0x4 data:float -lbl_801D4B28 = .sdata2:0x801D4B28; // type:object size:0x4 data:float -lbl_801D4B2C = .sdata2:0x801D4B2C; // type:object size:0x4 data:float -lbl_801D4B30 = .sdata2:0x801D4B30; // type:object size:0x4 data:float -lbl_801D4B34 = .sdata2:0x801D4B34; // type:object size:0x4 data:float -lbl_801D4B38 = .sdata2:0x801D4B38; // type:object size:0x4 data:float -lbl_801D4B3C = .sdata2:0x801D4B3C; // type:object size:0x4 data:float -lbl_801D4B40 = .sdata2:0x801D4B40; // type:object size:0x4 data:float -lbl_801D4B44 = .sdata2:0x801D4B44; // type:object size:0x4 data:float -lbl_801D4B48 = .sdata2:0x801D4B48; // type:object size:0x8 data:double -lbl_801D4B50 = .sdata2:0x801D4B50; // type:object size:0x8 data:double -lbl_801D4B58 = .sdata2:0x801D4B58; // type:object size:0x4 data:float -lbl_801D4B5C = .sdata2:0x801D4B5C; // type:object size:0x4 data:float -lbl_801D4B60 = .sdata2:0x801D4B60; // type:object size:0x4 data:float -lbl_801D4B68 = .sdata2:0x801D4B68; // type:object size:0x8 data:double -lbl_801D4B70 = .sdata2:0x801D4B70; // type:object size:0x8 data:double -lbl_801D4B78 = .sdata2:0x801D4B78; // type:object size:0x4 data:float -lbl_801D4B7C = .sdata2:0x801D4B7C; // type:object size:0x4 data:float -lbl_801D4B80 = .sdata2:0x801D4B80; // type:object size:0x8 data:double -lbl_801D4B88 = .sdata2:0x801D4B88; // type:object size:0x4 data:float -lbl_801D4B8C = .sdata2:0x801D4B8C; // type:object size:0x4 data:float -lbl_801D4B90 = .sdata2:0x801D4B90; // type:object size:0x8 data:double -lbl_801D4B98 = .sdata2:0x801D4B98; // type:object size:0x4 data:float -lbl_801D4BA0 = .sdata2:0x801D4BA0; // type:object size:0x8 data:double -lbl_801D4BA8 = .sdata2:0x801D4BA8; // type:object size:0x4 data:float -lbl_801D4BAC = .sdata2:0x801D4BAC; // type:object size:0x4 data:float -lbl_801D4BB0 = .sdata2:0x801D4BB0; // type:object size:0x4 data:float -lbl_801D4BB4 = .sdata2:0x801D4BB4; // type:object size:0x4 data:float -lbl_801D4BB8 = .sdata2:0x801D4BB8; // type:object size:0x8 data:double -lbl_801D4BC0 = .sdata2:0x801D4BC0; // type:object size:0x4 data:float -lbl_801D4BC4 = .sdata2:0x801D4BC4; // type:object size:0x4 data:float -lbl_801D4BC8 = .sdata2:0x801D4BC8; // type:object size:0x4 data:float -lbl_801D4BCC = .sdata2:0x801D4BCC; // type:object size:0x4 data:float -lbl_801D4BD0 = .sdata2:0x801D4BD0; // type:object size:0x4 data:float -lbl_801D4BD8 = .sdata2:0x801D4BD8; // type:object size:0x8 data:double -lbl_801D4BE0 = .sdata2:0x801D4BE0; // type:object size:0x4 data:float -lbl_801D4BE4 = .sdata2:0x801D4BE4; // type:object size:0x4 data:float -lbl_801D4BE8 = .sdata2:0x801D4BE8; // type:object size:0x4 data:float -lbl_801D4BEC = .sdata2:0x801D4BEC; // type:object size:0x4 data:float -lbl_801D4BF0 = .sdata2:0x801D4BF0; // type:object size:0x4 data:float -lbl_801D4BF4 = .sdata2:0x801D4BF4; // type:object size:0x4 data:float -lbl_801D4BF8 = .sdata2:0x801D4BF8; // type:object size:0x8 data:double -lbl_801D4C00 = .sdata2:0x801D4C00; // type:object size:0x4 data:float -lbl_801D4C08 = .sdata2:0x801D4C08; // type:object size:0x8 data:double -lbl_801D4C10 = .sdata2:0x801D4C10; // type:object size:0x4 data:float -lbl_801D4C18 = .sdata2:0x801D4C18; // type:object size:0x8 data:double -lbl_801D4C20 = .sdata2:0x801D4C20; // type:object size:0x4 data:float -lbl_801D4C24 = .sdata2:0x801D4C24; // type:object size:0x4 data:float +lbl_801D4990 = .sdata2:0x801D4990; // type:object size:0x4 scope:local data:float +lbl_801D4994 = .sdata2:0x801D4994; // type:object size:0x4 scope:local data:float +lbl_801D4998 = .sdata2:0x801D4998; // type:object size:0x4 scope:local data:float +lbl_801D49A0 = .sdata2:0x801D49A0; // type:object size:0x8 scope:local data:double +lbl_801D49A8 = .sdata2:0x801D49A8; // type:object size:0x4 scope:local data:float +lbl_801D49AC = .sdata2:0x801D49AC; // type:object size:0x4 scope:local data:float +lbl_801D49B0 = .sdata2:0x801D49B0; // type:object size:0x8 scope:local data:double +lbl_801D49B8 = .sdata2:0x801D49B8; // type:object size:0x8 scope:local data:double +lbl_801D49C0 = .sdata2:0x801D49C0; // type:object size:0x8 scope:local data:double +lbl_801D49C8 = .sdata2:0x801D49C8; // type:object size:0x8 scope:local data:double +lbl_801D49D0 = .sdata2:0x801D49D0; // type:object size:0x8 scope:local data:double +lbl_801D49D8 = .sdata2:0x801D49D8; // type:object size:0x8 scope:local data:double +lbl_801D49E0 = .sdata2:0x801D49E0; // type:object size:0x4 scope:local data:float +lbl_801D49E4 = .sdata2:0x801D49E4; // type:object size:0x4 scope:local data:float +lbl_801D49E8 = .sdata2:0x801D49E8; // type:object size:0x8 scope:local data:double +lbl_801D49F0 = .sdata2:0x801D49F0; // type:object size:0x4 scope:local data:float +lbl_801D49F4 = .sdata2:0x801D49F4; // type:object size:0x4 scope:local data:float +lbl_801D49F8 = .sdata2:0x801D49F8; // type:object size:0x4 scope:local data:float +lbl_801D49FC = .sdata2:0x801D49FC; // type:object size:0x4 scope:local data:float +lbl_801D4A00 = .sdata2:0x801D4A00; // type:object size:0x4 scope:local data:float +lbl_801D4A04 = .sdata2:0x801D4A04; // type:object size:0x4 scope:local data:float +lbl_801D4A08 = .sdata2:0x801D4A08; // type:object size:0x4 scope:local data:float +lbl_801D4A0C = .sdata2:0x801D4A0C; // type:object size:0x4 scope:local data:float +lbl_801D4A10 = .sdata2:0x801D4A10; // type:object size:0x4 scope:local data:float +lbl_801D4A14 = .sdata2:0x801D4A14; // type:object size:0x4 scope:local data:float +lbl_801D4A18 = .sdata2:0x801D4A18; // type:object size:0x4 scope:local data:float +lbl_801D4A1C = .sdata2:0x801D4A1C; // type:object size:0x4 scope:local data:float +lbl_801D4A20 = .sdata2:0x801D4A20; // type:object size:0x4 scope:local data:float +lbl_801D4A24 = .sdata2:0x801D4A24; // type:object size:0x4 scope:local data:float +lbl_801D4A28 = .sdata2:0x801D4A28; // type:object size:0x4 scope:local data:float +lbl_801D4A2C = .sdata2:0x801D4A2C; // type:object size:0x4 scope:local data:float +lbl_801D4A30 = .sdata2:0x801D4A30; // type:object size:0x4 scope:local data:float +lbl_801D4A34 = .sdata2:0x801D4A34; // type:object size:0x4 scope:local data:float +lbl_801D4A38 = .sdata2:0x801D4A38; // type:object size:0x8 scope:local data:double +lbl_801D4A40 = .sdata2:0x801D4A40; // type:object size:0x4 scope:local data:float +lbl_801D4A44 = .sdata2:0x801D4A44; // type:object size:0x4 scope:local data:float +lbl_801D4A48 = .sdata2:0x801D4A48; // type:object size:0x8 scope:local data:double +lbl_801D4A50 = .sdata2:0x801D4A50; // type:object size:0x8 scope:local data:double +lbl_801D4A58 = .sdata2:0x801D4A58; // type:object size:0x4 scope:local data:float +lbl_801D4A5C = .sdata2:0x801D4A5C; // type:object size:0x4 scope:local data:float +lbl_801D4A60 = .sdata2:0x801D4A60; // type:object size:0x8 scope:local data:double +lbl_801D4A68 = .sdata2:0x801D4A68; // type:object size:0x4 scope:local data:float +lbl_801D4A6C = .sdata2:0x801D4A6C; // type:object size:0x4 scope:local data:float +lbl_801D4A70 = .sdata2:0x801D4A70; // type:object size:0x4 scope:local data:float +lbl_801D4A74 = .sdata2:0x801D4A74; // type:object size:0x4 scope:local data:float +lbl_801D4A78 = .sdata2:0x801D4A78; // type:object size:0x4 scope:local data:float +lbl_801D4A80 = .sdata2:0x801D4A80; // type:object size:0x8 scope:local data:double +lbl_801D4A88 = .sdata2:0x801D4A88; // type:object size:0x4 scope:local data:float +lbl_801D4A90 = .sdata2:0x801D4A90; // type:object size:0x8 scope:local data:double +lbl_801D4A98 = .sdata2:0x801D4A98; // type:object size:0x4 scope:local data:float +lbl_801D4A9C = .sdata2:0x801D4A9C; // type:object size:0x4 scope:local data:float +lbl_801D4AA0 = .sdata2:0x801D4AA0; // type:object size:0x4 scope:local data:float +lbl_801D4AA4 = .sdata2:0x801D4AA4; // type:object size:0x4 scope:local data:float +lbl_801D4AA8 = .sdata2:0x801D4AA8; // type:object size:0x8 scope:local data:double +lbl_801D4AB0 = .sdata2:0x801D4AB0; // type:object size:0x4 scope:local data:float +lbl_801D4AB8 = .sdata2:0x801D4AB8; // type:object size:0x8 scope:local data:double +lbl_801D4AC0 = .sdata2:0x801D4AC0; // type:object size:0x8 scope:local data:double +lbl_801D4AC8 = .sdata2:0x801D4AC8; // type:object size:0x8 scope:local data:double +lbl_801D4AD0 = .sdata2:0x801D4AD0; // type:object size:0x4 scope:local data:float +lbl_801D4AD8 = .sdata2:0x801D4AD8; // type:object size:0x8 scope:local data:double +lbl_801D4AE0 = .sdata2:0x801D4AE0; // type:object size:0x4 scope:local data:float +lbl_801D4AE4 = .sdata2:0x801D4AE4; // type:object size:0x4 scope:local data:float +lbl_801D4AE8 = .sdata2:0x801D4AE8; // type:object size:0x4 scope:local data:float +lbl_801D4AEC = .sdata2:0x801D4AEC; // type:object size:0x4 scope:local data:float +lbl_801D4AF0 = .sdata2:0x801D4AF0; // type:object size:0x4 scope:local data:float +lbl_801D4AF4 = .sdata2:0x801D4AF4; // type:object size:0x4 scope:local data:float +lbl_801D4AF8 = .sdata2:0x801D4AF8; // type:object size:0x4 scope:local data:float +lbl_801D4AFC = .sdata2:0x801D4AFC; // type:object size:0x4 scope:local data:float +lbl_801D4B00 = .sdata2:0x801D4B00; // type:object size:0x8 scope:local data:double +lbl_801D4B08 = .sdata2:0x801D4B08; // type:object size:0x8 scope:local data:double +lbl_801D4B10 = .sdata2:0x801D4B10; // type:object size:0x8 scope:local data:double +lbl_801D4B18 = .sdata2:0x801D4B18; // type:object size:0x2 scope:local data:2byte +lbl_801D4B1A = .sdata2:0x801D4B1A; // type:object size:0x2 scope:local data:2byte +lbl_801D4B1C = .sdata2:0x801D4B1C; // type:object size:0x2 scope:local data:2byte +lbl_801D4B20 = .sdata2:0x801D4B20; // type:object size:0x4 scope:local data:float +lbl_801D4B24 = .sdata2:0x801D4B24; // type:object size:0x4 scope:local data:float +lbl_801D4B28 = .sdata2:0x801D4B28; // type:object size:0x4 scope:local data:float +lbl_801D4B2C = .sdata2:0x801D4B2C; // type:object size:0x4 scope:local data:float +lbl_801D4B30 = .sdata2:0x801D4B30; // type:object size:0x4 scope:local data:float +lbl_801D4B34 = .sdata2:0x801D4B34; // type:object size:0x4 scope:local data:float +lbl_801D4B38 = .sdata2:0x801D4B38; // type:object size:0x4 scope:local data:float +lbl_801D4B3C = .sdata2:0x801D4B3C; // type:object size:0x4 scope:local data:float +lbl_801D4B40 = .sdata2:0x801D4B40; // type:object size:0x4 scope:local data:float +lbl_801D4B44 = .sdata2:0x801D4B44; // type:object size:0x4 scope:local data:float +lbl_801D4B48 = .sdata2:0x801D4B48; // type:object size:0x8 scope:local data:double +lbl_801D4B50 = .sdata2:0x801D4B50; // type:object size:0x8 scope:local data:double +lbl_801D4B58 = .sdata2:0x801D4B58; // type:object size:0x4 scope:local data:float +lbl_801D4B5C = .sdata2:0x801D4B5C; // type:object size:0x4 scope:local data:float +lbl_801D4B60 = .sdata2:0x801D4B60; // type:object size:0x4 scope:local data:float +lbl_801D4B68 = .sdata2:0x801D4B68; // type:object size:0x8 scope:local data:double +lbl_801D4B70 = .sdata2:0x801D4B70; // type:object size:0x8 scope:local data:double +lbl_801D4B78 = .sdata2:0x801D4B78; // type:object size:0x4 scope:local data:float +lbl_801D4B7C = .sdata2:0x801D4B7C; // type:object size:0x4 scope:local data:float +lbl_801D4B80 = .sdata2:0x801D4B80; // type:object size:0x8 scope:local data:double +lbl_801D4B88 = .sdata2:0x801D4B88; // type:object size:0x4 scope:local data:float +lbl_801D4B8C = .sdata2:0x801D4B8C; // type:object size:0x4 scope:local data:float +lbl_801D4B90 = .sdata2:0x801D4B90; // type:object size:0x8 scope:local data:double +lbl_801D4B98 = .sdata2:0x801D4B98; // type:object size:0x4 scope:local data:float +lbl_801D4BA0 = .sdata2:0x801D4BA0; // type:object size:0x8 scope:local data:double +lbl_801D4BA8 = .sdata2:0x801D4BA8; // type:object size:0x4 scope:local data:float +lbl_801D4BAC = .sdata2:0x801D4BAC; // type:object size:0x4 scope:local data:float +lbl_801D4BB0 = .sdata2:0x801D4BB0; // type:object size:0x4 scope:local data:float +lbl_801D4BB4 = .sdata2:0x801D4BB4; // type:object size:0x4 scope:local data:float +lbl_801D4BB8 = .sdata2:0x801D4BB8; // type:object size:0x8 scope:local data:double +lbl_801D4BC0 = .sdata2:0x801D4BC0; // type:object size:0x4 scope:local data:float +lbl_801D4BC4 = .sdata2:0x801D4BC4; // type:object size:0x4 scope:local data:float +lbl_801D4BC8 = .sdata2:0x801D4BC8; // type:object size:0x4 scope:local data:float +lbl_801D4BCC = .sdata2:0x801D4BCC; // type:object size:0x4 scope:local data:float +lbl_801D4BD0 = .sdata2:0x801D4BD0; // type:object size:0x4 scope:local data:float +lbl_801D4BD8 = .sdata2:0x801D4BD8; // type:object size:0x8 scope:local data:double +lbl_801D4BE0 = .sdata2:0x801D4BE0; // type:object size:0x4 scope:local data:float +lbl_801D4BE4 = .sdata2:0x801D4BE4; // type:object size:0x4 scope:local data:float +lbl_801D4BE8 = .sdata2:0x801D4BE8; // type:object size:0x4 scope:local data:float +lbl_801D4BEC = .sdata2:0x801D4BEC; // type:object size:0x4 scope:local data:float +lbl_801D4BF0 = .sdata2:0x801D4BF0; // type:object size:0x4 scope:local data:float +lbl_801D4BF4 = .sdata2:0x801D4BF4; // type:object size:0x4 scope:local data:float +lbl_801D4BF8 = .sdata2:0x801D4BF8; // type:object size:0x8 scope:local data:double +lbl_801D4C00 = .sdata2:0x801D4C00; // type:object size:0x4 scope:local data:float +lbl_801D4C08 = .sdata2:0x801D4C08; // type:object size:0x8 scope:local data:double +lbl_801D4C10 = .sdata2:0x801D4C10; // type:object size:0x4 scope:local data:float +lbl_801D4C18 = .sdata2:0x801D4C18; // type:object size:0x8 scope:local data:double +lbl_801D4C20 = .sdata2:0x801D4C20; // type:object size:0x4 scope:local data:float +lbl_801D4C24 = .sdata2:0x801D4C24; // type:object size:0x4 scope:local data:float lbl_801D4C28 = .sdata2:0x801D4C28; // type:object size:0x4 data:float lbl_801D4C30 = .sdata2:0x801D4C30; // type:object size:0x8 data:double lbl_801D4C38 = .sdata2:0x801D4C38; // type:object size:0x8 data:double diff --git a/config/GMPP01_00/symbols.txt b/config/GMPP01_00/symbols.txt index 03c4876c..a679c466 100644 --- a/config/GMPP01_00/symbols.txt +++ b/config/GMPP01_00/symbols.txt @@ -666,29 +666,29 @@ MGSeqKillAll = .text:0x80035A28; // type:function size:0x3C MGSeqDoneCheck = .text:0x80035A64; // type:function size:0xA4 MGSeqStub = .text:0x80035B08; // type:function size:0x4 MGSeqSprKill = .text:0x80035B0C; // type:function size:0x8C -SeqInitTimer = .text:0x80035B98; // type:function size:0x2F0 scope:local -SeqUpdateTimer = .text:0x80035E88; // type:function size:0x69C scope:local -SeqInitType2 = .text:0x80036524; // type:function size:0x3D8 -SeqUpdateType2 = .text:0x800368FC; // type:function size:0x2F8 +MGSeqInitTimer = .text:0x80035B98; // type:function size:0x2F0 +MGSeqUpdateTimer = .text:0x80035E88; // type:function size:0x69C +MGSeqInitType2 = .text:0x80036524; // type:function size:0x3D8 +MGSeqUpdateType2 = .text:0x800368FC; // type:function size:0x2F8 fn_80036BC8 = .text:0x80036BF4; // type:function size:0x188 SeqMakeWord = .text:0x80036D7C; // type:function size:0x1D0 scope:local SeqLoadFontChar = .text:0x80036F4C; // type:function size:0x26C scope:local -SeqInitMGBasic = .text:0x800371B8; // type:function size:0x194 scope:local -SeqUpdateMGBasic = .text:0x8003734C; // type:function size:0x9D0 scope:local -SeqInitMGCommon = .text:0x80037D1C; // type:function size:0x2A4 scope:local -SeqUpdateMGBattle = .text:0x80037FC0; // type:function size:0xDA4 scope:local -SeqUpdateMG1vs3 = .text:0x80038D64; // type:function size:0xDA4 scope:local -SeqUpdateMGStory = .text:0x80039B08; // type:function size:0xBB8 scope:local -SeqUpdateMG2vs2 = .text:0x8003A6C0; // type:function size:0xAB4 scope:local -SeqInitFlip = .text:0x8003B174; // type:function size:0x3C4 scope:local -SeqUpdateFlip = .text:0x8003B538; // type:function size:0x91C scope:local -SeqUpdateMGBowser = .text:0x8003BE54; // type:function size:0xC84 scope:local -SeqInitDraw = .text:0x8003CAD8; // type:function size:0xDC scope:local -SeqUpdateDraw = .text:0x8003CBB4; // type:function size:0x3DC scope:local -SeqInitWin = .text:0x8003CF90; // type:function size:0x6D0 scope:local -SeqUpdateWin = .text:0x8003D660; // type:function size:0x708 scope:local -SeqInitRecord = .text:0x8003DD68; // type:function size:0x764 scope:local -SeqUpdateRecord = .text:0x8003E4CC; // type:function size:0x304 scope:local +MGSeqInitMGBasic = .text:0x800371B8; // type:function size:0x194 +MGSeqUpdateMGBasic = .text:0x8003734C; // type:function size:0x9D0 +MGSeqInitMGCommon = .text:0x80037D1C; // type:function size:0x2A4 +MGSeqUpdateMGBattle = .text:0x80037FC0; // type:function size:0xDA4 +MGSeqUpdateMG1vs3 = .text:0x80038D64; // type:function size:0xDA4 +MGSeqUpdateMGStory = .text:0x80039B08; // type:function size:0xBB8 +MGSeqUpdateMG2vs2 = .text:0x8003A6C0; // type:function size:0xAB4 +MGSeqInitFlip = .text:0x8003B174; // type:function size:0x3C4 +MGSeqUpdateFlip = .text:0x8003B538; // type:function size:0x91C +MGSeqUpdateMGBowser = .text:0x8003BE54; // type:function size:0xC84 +MGSeqInitDraw = .text:0x8003CAD8; // type:function size:0xDC +MGSeqUpdateDraw = .text:0x8003CBB4; // type:function size:0x3DC +MGSeqInitWin = .text:0x8003CF90; // type:function size:0x6D0 +MGSeqUpdateWin = .text:0x8003D660; // type:function size:0x708 +MGSeqInitRecord = .text:0x8003DD68; // type:function size:0x764 +MGSeqUpdateRecord = .text:0x8003E4CC; // type:function size:0x304 MGSeqPauseInit = .text:0x8003E7D0; // type:function size:0x6C PauseProc = .text:0x8003E83C; // type:function size:0x94C scope:local MGSeqPauseKill = .text:0x8003F188; // type:function size:0xC @@ -5842,7 +5842,7 @@ lbl_801F0946 = .sdata:0x801F0946; // type:object size:0x5 scope:local data:strin lbl_801F094B = .sdata:0x801F094B; // type:object size:0x7 scope:local lbl_801F0952 = .sdata:0x801F0952; // type:object size:0x6 scope:local lbl_801F0958 = .sdata:0x801F0958; // type:object size:0x8 scope:local -pauseStr$2309 = .sdata:0x801F0960; // type:object size:0x8 scope:local +pauseStr = .sdata:0x801F0960; // type:object size:0x8 scope:local lbl_801F0968 = .sdata:0x801F0968; // type:object size:0x8 scope:local lbl_801F0970 = .sdata:0x801F0970; // type:object size:0x8 lbl_801F0978 = .sdata:0x801F0978; // type:object size:0x8 diff --git a/configure.py b/configure.py index c4097c0a..bad7edb8 100644 --- a/configure.py +++ b/configure.py @@ -402,8 +402,8 @@ config.libs = [ Object(Matching, "game/objdll.c"), Object(Matching, "game/frand.c"), Object(Matching, "game/audio.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/EnvelopeExec.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/minigame_seq.c"), + Object(Matching, "game/EnvelopeExec.c"), + Object(Matching, "game/minigame_seq.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/ovllist.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/esprite.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/code_8003FF68.c"), diff --git a/include/game/minigame_seq.h b/include/game/minigame_seq.h index 8e443630..a345b0fe 100644 --- a/include/game/minigame_seq.h +++ b/include/game/minigame_seq.h @@ -91,6 +91,32 @@ void MGSeqPauseEnableCtrl(s32 flag); void MGSeqPracticeInit(void); void MGSeqPracticeExitCheck(omObjData *object); +s32 MGSeqInitTimer(SeqWork *work, va_list params); +s32 MGSeqUpdateTimer(SeqWork *work); + +s32 MGSeqInitType2(SeqWork *work, va_list params); +s32 MGSeqUpdateType2(SeqWork *work); + +s32 MGSeqUpdateMGBattle(SeqWork *work); + +s32 MGSeqInitMGBasic(SeqWork *work, va_list params); +s32 MGSeqUpdateMGBasic(SeqWork *work); +s32 MGSeqInitMGCommon(SeqWork *work, va_list params); +s32 MGSeqUpdateMG1vs3(SeqWork *work); +s32 MGSeqUpdateMGStory(SeqWork *work); +s32 MGSeqUpdateMG2vs2(SeqWork *work); +s32 MGSeqUpdateMGBowser(SeqWork *work); + +s32 MGSeqInitWin(SeqWork *work, va_list params); +s32 MGSeqUpdateWin(SeqWork *work); +s32 MGSeqInitDraw(SeqWork *work, va_list params); +s32 MGSeqUpdateDraw(SeqWork *work); +s32 MGSeqInitRecord(SeqWork *work, va_list params); +s32 MGSeqUpdateRecord(SeqWork *work); + +s32 MGSeqInitFlip(SeqWork *work, va_list params); +s32 MGSeqUpdateFlip(SeqWork *work); + extern OverlayID mgSeqOvlPrev; #endif diff --git a/src/game/minigame_seq.c b/src/game/minigame_seq.c index b163d790..886a1adc 100644 --- a/src/game/minigame_seq.c +++ b/src/game/minigame_seq.c @@ -33,69 +33,55 @@ typedef struct seq_info { s32 time_max; } SeqInfo; -static s32 SeqInitTimer(SeqWork *work, va_list params); -static s32 SeqUpdateTimer(SeqWork *work); - -static s32 SeqInitType2(SeqWork *work, va_list params); -static s32 SeqUpdateType2(SeqWork *work); - -static s32 SeqInitMGBasic(SeqWork *work, va_list params); -static s32 SeqUpdateMGBasic(SeqWork *work); -static s32 SeqInitMGCommon(SeqWork *work, va_list params); -static s32 SeqUpdateMG1vs3(SeqWork *work); -static s32 SeqUpdateMGBattle(SeqWork *work); -static s32 SeqUpdateMGStory(SeqWork *work); -static s32 SeqUpdateMG2vs2(SeqWork *work); -static s32 SeqUpdateMGBowser(SeqWork *work); - -static s32 SeqInitWin(SeqWork *work, va_list params); -static s32 SeqUpdateWin(SeqWork *work); -static s32 SeqInitDraw(SeqWork *work, va_list params); -static s32 SeqUpdateDraw(SeqWork *work); -static s32 SeqInitRecord(SeqWork *work, va_list params); -static s32 SeqUpdateRecord(SeqWork *work); - -static s32 SeqInitFlip(SeqWork *work, va_list params); -static s32 SeqUpdateFlip(SeqWork *work); - OverlayID mgSeqOvlPrev = OVL_INVALID; static SeqInfo seqInfoTbl[] = { { NULL, NULL, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, - { SeqInitTimer, SeqUpdateTimer, HU_DISP_CENTERX + 4, 64.0f, 1.0f, 1.0f, 60 }, - { SeqInitType2, SeqUpdateType2, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 0.5f, 0.5f, 60 }, - { SeqInitMGBasic, SeqUpdateMGBasic, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitMGCommon, SeqUpdateMG1vs3, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitWin, SeqUpdateWin, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitMGCommon, SeqUpdateMGBattle, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitMGCommon, SeqUpdateMGStory, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitMGBasic, SeqUpdateMGBasic, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitMGCommon, SeqUpdateMG2vs2, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitFlip, SeqUpdateFlip, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitMGCommon, SeqUpdateMGBowser, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitWin, SeqUpdateWin, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, - { SeqInitDraw, SeqUpdateDraw, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, - { SeqInitRecord, SeqUpdateRecord, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { MGSeqInitTimer, MGSeqUpdateTimer, HU_DISP_CENTERX + 4, 64.0f, 1.0f, 1.0f, 60 }, + { MGSeqInitType2, MGSeqUpdateType2, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 0.5f, 0.5f, 60 }, + { MGSeqInitMGBasic, MGSeqUpdateMGBasic, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { MGSeqInitMGCommon, MGSeqUpdateMG1vs3, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { MGSeqInitWin, MGSeqUpdateWin, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { MGSeqInitMGCommon, MGSeqUpdateMGBattle, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { MGSeqInitMGCommon, MGSeqUpdateMGStory, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { MGSeqInitMGBasic, MGSeqUpdateMGBasic, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { MGSeqInitMGCommon, MGSeqUpdateMG2vs2, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { MGSeqInitFlip, MGSeqUpdateFlip, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { MGSeqInitMGCommon, MGSeqUpdateMGBowser, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { MGSeqInitWin, MGSeqUpdateWin, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, + { MGSeqInitDraw, MGSeqUpdateDraw, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, + { MGSeqInitRecord, MGSeqUpdateRecord, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 180 }, { NULL, NULL, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, { NULL, NULL, HU_DISP_CENTERX + 4, HU_DISP_CENTERY, 1.0f, 1.0f, 60 }, }; static s32 seqType2SprTbl[6] = { 0, 0, 0, 0, 0, 0 }; -static s16 mgSeqTypeTbl[9] = { MG_SEQ_TYPE_4P, MG_SEQ_TYPE_1VS3, MG_SEQ_TYPE_2VS2, MG_SEQ_TYPE_BOWSER, MG_SEQ_TYPE_BATTLE, MG_SEQ_TYPE_PINBALL, - MG_SEQ_TYPE_STORY, MG_SEQ_TYPE_BOWSER, MG_SEQ_TYPE_STORY }; +static s16 mgSeqTypeTbl[9] = { + MG_SEQ_TYPE_4P, + MG_SEQ_TYPE_1VS3, + MG_SEQ_TYPE_2VS2, + MG_SEQ_TYPE_BOWSER, + MG_SEQ_TYPE_BATTLE, + MG_SEQ_TYPE_PINBALL, + MG_SEQ_TYPE_STORY, + MG_SEQ_TYPE_BOWSER, + MG_SEQ_TYPE_STORY, +}; -static char lbl_8012F336[] = { "アイウエオカキク" - "ケコサシスセソタ" - "チツテトナニヌネ" - "ノハヒフヘホマミ" - "ムメモヤユヨラリ" - "ルレロワヲンァィ" - "ゥェォャュョッカ" - "キクコサシスセソ" - "タチツテトハヒフ" - "ヘホハヒフヘホ" - "!?ー" }; +static char lbl_8012F336[] = { + "アイウエオカキク" + "ケコサシスセソタ" + "チツテトナニヌネ" + "ノハヒフヘホマミ" + "ムメモヤユヨラリ" + "ルレロワヲンァィ" + "ゥェォャュョッカ" + "キクコサシスセソ" + "タチツテトハヒフ" + "ヘホハヒフヘホ" + "!?ー", +}; static char lbl_8012F389[] = "x first\n"; static char lbl_8012F392[] = "y first\n"; @@ -339,7 +325,7 @@ static void *SeqReadFile(s32 file) return HuAR_ARAMtoMRAMFileRead(file, MEMORY_DEFAULT_NUM, HEAP_DATA); } -static s32 SeqInitTimer(SeqWork *work, va_list params) +s32 MGSeqInitTimer(SeqWork *work, va_list params) { AnimData *spr_anim; s16 sprite; @@ -401,7 +387,7 @@ static s32 SeqInitTimer(SeqWork *work, va_list params) return 1; } -static s32 SeqUpdateTimer(SeqWork *work) +s32 MGSeqUpdateTimer(SeqWork *work) { float scale; float tp_lvl; @@ -558,7 +544,7 @@ static s32 SeqUpdateTimer(SeqWork *work) } } -static s32 SeqInitType2(SeqWork *work, va_list params) +s32 MGSeqInitType2(SeqWork *work, va_list params) { s16 spr_idx; s16 spr_grp; @@ -667,7 +653,7 @@ static s32 SeqInitType2(SeqWork *work, va_list params) return 1; } -static s32 SeqUpdateType2(SeqWork *work) +s32 MGSeqUpdateType2(SeqWork *work) { float tp_lvl; s16 spr_grp; @@ -818,14 +804,20 @@ static AnimData *SeqLoadFontChar(char *str, s16 flags); static s32 SeqMakeWord(SeqWork *work, char *str, s16 flags) { + s16 len; + s16 x; + s16 i; + s16 grp_idx; +#if VERSION_JAP + char *str_ptr; + AnimData **char_anim; + s16 *char_pos; +#else + AnimData **char_anim; s16 *char_pos; char *str_ptr; +#endif s16 spr_grp; - s16 i; - s16 x; - s16 grp_idx; - s16 len; - AnimData **char_anim; for (grp_idx = 0; grp_idx < 16; grp_idx++) { if (work->spr_grp[grp_idx] == -1) { break; @@ -839,13 +831,27 @@ static s32 SeqMakeWord(SeqWork *work, char *str, s16 flags) str_ptr = str; x = 0; len = 0; - while (*str_ptr != 0) { + while (*str_ptr != '\0') { +#if VERSION_JAP + if (*str_ptr == ' ') { + x += 56; + } + else { + char_anim[len] = SeqLoadFontChar(str_ptr, flags); + if (char_anim[len]) { + char_pos[len] = x; + x += 56; + len++; + } + } +#else char_anim[len] = SeqLoadFontChar(str_ptr, flags); if (char_anim[len]) { char_pos[len] = x; x += 56; len++; } +#endif str_ptr++; } work->spr_grp[grp_idx] = spr_grp = HuSprGrpCreate(len); @@ -870,24 +876,26 @@ static AnimData *SeqLoadFontChar(char *str, s16 flags) if (c == 222 || c == 223) { return NULL; } +#if !VERSION_JAP if (c == 32) { return HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 10))); } +#endif for (id = 0, list = seqFontAlphaTbl; *list != 0; id++, list++) { if (*list == c) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + 21); + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JAP ? 20 : 21)); return HuSprAnimRead(SeqReadFile(data_num)); } } for (id = 0, list = seqFontNumTbl; *list != 0; id++, list++) { if (*list == c) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + 11); + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JAP ? 10 : 11)); return HuSprAnimRead(SeqReadFile(data_num)); } } for (id = 0, list = seqPunctTbl; *list != 0; id++, list++) { if (*list == c) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + 154); + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JAP ? 153 : 154)); return HuSprAnimRead(SeqReadFile(data_num)); } } @@ -908,10 +916,10 @@ static AnimData *SeqLoadFontChar(char *str, s16 flags) while (*list != 0) { if (*list == c) { if (flags & 0x1) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + 156); + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JAP ? 155 : 156)); } else { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + 73); + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JAP ? 72 : 73)); } return HuSprAnimRead(SeqReadFile(data_num)); } @@ -928,14 +936,14 @@ static float ForceDefine480() static void SeqPlayStartFX(void); -static s32 SeqInitMGBasic(SeqWork *work, va_list params) +s32 MGSeqInitMGBasic(SeqWork *work, va_list params) { s16 i; s16 word_grp; work->state = va_arg(params, int); if (work->state == 2) { - return SeqInitDraw(work, params); + return MGSeqInitDraw(work, params); } work->type = 0; work->angle = 0; @@ -978,7 +986,7 @@ static s32 SeqInitMGBasic(SeqWork *work, va_list params) return 1; } -static s32 SeqUpdateMGBasic(SeqWork *work) +s32 MGSeqUpdateMGBasic(SeqWork *work) { s16 idx; float scale; @@ -1147,7 +1155,7 @@ static s32 SeqUpdateMGBasic(SeqWork *work) return 1; } -static s32 SeqInitMGCommon(SeqWork *work, va_list params) +s32 MGSeqInitMGCommon(SeqWork *work, va_list params) { s16 i; float tp_lvl; @@ -1156,7 +1164,7 @@ static s32 SeqInitMGCommon(SeqWork *work, va_list params) work->state = va_arg(params, int); if (work->state == 2) { - return SeqInitDraw(work, params); + return MGSeqInitDraw(work, params); } work->type = 0; work->angle = 0; @@ -1226,7 +1234,7 @@ static s32 SeqInitMGCommon(SeqWork *work, va_list params) return 1; } -static s32 SeqUpdateMGBattle(SeqWork *work) +s32 MGSeqUpdateMGBattle(SeqWork *work) { s16 idx; float scale; @@ -1465,7 +1473,7 @@ static s32 SeqUpdateMGBattle(SeqWork *work) return 1; } -static s32 SeqUpdateMG1vs3(SeqWork *work) +s32 MGSeqUpdateMG1vs3(SeqWork *work) { s16 idx; float scale; @@ -1678,7 +1686,7 @@ static s32 SeqUpdateMG1vs3(SeqWork *work) return 1; } -static s32 SeqUpdateMGStory(SeqWork *work) +s32 MGSeqUpdateMGStory(SeqWork *work) { s16 idx; float scale; @@ -1889,7 +1897,7 @@ static s32 SeqUpdateMGStory(SeqWork *work) return 1; } -static s32 SeqUpdateMG2vs2(SeqWork *work) +s32 MGSeqUpdateMG2vs2(SeqWork *work) { s16 idx; float scale; @@ -2062,14 +2070,14 @@ static s32 SeqUpdateMG2vs2(SeqWork *work) return 1; } -static s32 SeqInitFlip(SeqWork *work, va_list params) +s32 MGSeqInitFlip(SeqWork *work, va_list params) { s16 i; s16 word_grp; s16 word_ofs; work->state = va_arg(params, int); if (work->state == 2) { - return SeqInitDraw(work, params); + return MGSeqInitDraw(work, params); } work->type = 0; work->angle = 0; @@ -2148,7 +2156,7 @@ static s32 SeqInitFlip(SeqWork *work, va_list params) return 1; } -static s32 SeqUpdateFlip(SeqWork *work) +s32 MGSeqUpdateFlip(SeqWork *work) { s16 idx; float scale; @@ -2321,7 +2329,7 @@ static s32 SeqUpdateFlip(SeqWork *work) return 1; } -static s32 SeqUpdateMGBowser(SeqWork *work) +s32 MGSeqUpdateMGBowser(SeqWork *work) { s16 idx; float scale; @@ -2545,7 +2553,7 @@ static s32 SeqUpdateMGBowser(SeqWork *work) return 1; } -static s32 SeqInitDraw(SeqWork *work, va_list params) +s32 MGSeqInitDraw(SeqWork *work, va_list params) { s16 word_grp; work->state = 2; @@ -2576,7 +2584,7 @@ static s32 SeqInitDraw(SeqWork *work, va_list params) return 1; } -static s32 SeqUpdateDraw(SeqWork *work) +s32 MGSeqUpdateDraw(SeqWork *work) { s16 idx; float scale; @@ -2665,22 +2673,54 @@ static s32 SeqUpdateDraw(SeqWork *work) return 1; } -static char *winCharNameTbl[] - = { "マリオ", "MARIO", "ルイージ", "LUIGI", "ピーチ", "PEACH", "ヨッシー", "YOSHI", "ワリオ", "WARIO", "ドンキー", " DK ", "デイジー", "DAISY", "ワルイージ", "WALUIGI", - "クッパ", "BOWSER", "キノピオ", "TOAD", "ヘイホー", "SHY GUY", "テレサ", "BOO", "ノコノコ", "KOOPA", "ミニクッパ", VERSION_NTSC ? "KOOPA KID" : "MINI BOWSER", "クリボー", "GOOMBA" }; +static char *winCharNameTbl[] = { + "マリオ", + "MARIO", + "ルイージ", + "LUIGI", + "ピーチ", + "PEACH", + "ヨッシー", + "YOSHI", + "ワリオ", + "WARIO", + "ドンキー", + VERSION_JAP ? "DK" : " DK ", + "デイジー", + "DAISY", + "ワルイージ", + "WALUIGI", + "クッパ", + "BOWSER", + "キノピオ", + "TOAD", + "ヘイホー", + VERSION_JAP ? "HEHOH" : "SHY GUY", + "テレサ", + VERSION_JAP ? "TERETHA" : "BOO", + "ノコノコ", + VERSION_JAP ? "NOKONOKO" : "KOOPA", + "ミニクッパ", + VERSION_NTSC ? (VERSION_ENG ? "KOOPA KID" : "BABYBOWSER") : "MINI BOWSER", + "クリボー", + VERSION_JAP ? "KURIBO" : "GOOMBA", +}; static char *winWordTbl[] = { "カチ", "WON!", "ハイボク", "LOSE", "ユウショウ!", "CHAMPION!" }; -static s16 winPosOfs[][5][2] - = { { { 114, 0 }, { -144, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, { { 0, 35 }, { -144, -35 }, { 144, -35 }, { 0, 0 }, { 0, 0 } }, - { { 0, 105 }, { 0, -105 }, { -144, 0 }, { 144, 0 }, { 0, 0 } }, { { 0, 105 }, { -144, -105 }, { 144, -105 }, { -144, 0 }, { 144, 0 } } }; +static s16 winPosOfs[][5][2] = { + { { VERSION_JAP ? 144 : 114, 0 }, { -144, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, + { { 0, 35 }, { -144, -35 }, { 144, -35 }, { 0, 0 }, { 0, 0 } }, + { { 0, 105 }, { 0, -105 }, { -144, 0 }, { 144, 0 }, { 0, 0 } }, + { { 0, 105 }, { -144, -105 }, { 144, -105 }, { -144, 0 }, { 144, 0 } }, +}; static s16 winnerNameW[8]; #define GET_LANG_IDX() ((seqLanguage == 0) ? 0 : 1) #define GET_WIN_KANAF() ((seqLanguage == 0) ? 1 : 0) -static s32 SeqInitWin(SeqWork *work, va_list params) +s32 MGSeqInitWin(SeqWork *work, va_list params) { int win_type = va_arg(params, int); s16 word_idx; @@ -2705,13 +2745,17 @@ static s32 SeqInitWin(SeqWork *work, va_list params) } } word_grp = SeqMakeWord(work, winWordTbl[word_idx], GET_WIN_KANAF()); - winnerNameW[0] = work->word_len * 50; + winnerNameW[0] = work->word_len * (VERSION_JAP ? 56 : 50); +#if !VERSION_JAP for (i = 0; i < work->word_len; i++) { HuSprPosSet(work->spr_grp[word_grp], i, 25.0f + ((i * 50) - (0.5f * (work->word_len * 50))), 0.0f); HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); } +#endif num_winners = 0; +#if !VERSION_JAP work->win_scale = 1.0f; +#endif for (j = 0; j < 4; j++) { int winner = va_arg(params, int); (void)winner; // to match PAL @@ -2719,7 +2763,7 @@ static s32 SeqInitWin(SeqWork *work, va_list params) continue; } word_grp = SeqMakeWord(work, winCharNameTbl[(winner * 2) + GET_LANG_IDX()], 0); -#if VERSION_NTSC +#if VERSION_ENG if (seqLanguage != 0) { char *name = winCharNameTbl[(winner * 2) + GET_LANG_IDX()]; word_w = 0.0f; @@ -2751,21 +2795,19 @@ static s32 SeqInitWin(SeqWork *work, va_list params) } winnerNameW[num_winners + 1] = word_w; } - else { - if (winner == 7 || winner == 13) { - for (i = 0; i < work->word_len; i++) { - HuSprPosSet(work->spr_grp[word_grp], i, 26.0f + ((i * 52) - (0.5f * (work->word_len * 52))), 0.0f); - HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); - } - work->win_scale = 0.8f; - winnerNameW[num_winners + 1] = work->word_len * 52; - } - else { - work->win_scale = 1.0f; - winnerNameW[num_winners + 1] = work->word_len * 56; + else if (winner == 7 || winner == 13) { + for (i = 0; i < work->word_len; i++) { + HuSprPosSet(work->spr_grp[word_grp], i, 26.0f + ((i * 52) - (0.5f * (work->word_len * 52))), 0.0f); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); } + work->win_scale = 0.8f; + winnerNameW[num_winners + 1] = work->word_len * 52; } -#else + else { + work->win_scale = 1.0f; + winnerNameW[num_winners + 1] = work->word_len * 56; + } +#elif VERSION_PAL for (i = 0; i < work->word_len; i++) { HuSprPosSet(work->spr_grp[word_grp], i, 25.0f + ((i * 50) - (0.5f * (work->word_len * 50))), 0.0f); HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); @@ -2780,6 +2822,27 @@ static s32 SeqInitWin(SeqWork *work, va_list params) work->win_scale = 0.75f; } winnerNameW[num_winners + 1] = work->word_len * 50; +#else + if (seqLanguage != 0) { + for (i = 0; i < work->word_len; i++) { + HuSprPosSet(work->spr_grp[word_grp], i, 25.0f + (i * 50 - (0.5f * (work->word_len * 50))), 0.0f); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + } + work->win_scale = 0.75f; + winnerNameW[num_winners + 1] = work->word_len * 50; + } + else if (winner == 7 || winner == 13) { + for (i = 0; i < work->word_len; i++) { + HuSprPosSet(work->spr_grp[word_grp], i, 26.0f + ((i * 52) - (0.5f * (work->word_len * 52))), 0.0f); + HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); + } + work->win_scale = 0.8f; + winnerNameW[num_winners + 1] = work->word_len * 52; + } + else { + work->win_scale = 1.0f; + winnerNameW[num_winners + 1] = work->word_len * 56; + } #endif num_winners++; } @@ -2792,7 +2855,11 @@ static s32 SeqInitWin(SeqWork *work, va_list params) work->type = 0; for (j = 0; j < num_winners + 1; j++) { if (num_winners == 1) { +#if VERSION_JAP + word_x = 32 + (winnerNameW[1] + winnerNameW[0]); +#else word_x = 32.0f + ((float)winnerNameW[0] + (winnerNameW[1] * work->win_scale)); +#endif if (j == 0) { word_x = (((HU_DISP_WIDTH - word_x) / 2.0f) + (word_x - (winnerNameW[0] / 2))) - HU_DISP_CENTERX; } @@ -2802,7 +2869,7 @@ static s32 SeqInitWin(SeqWork *work, va_list params) } else { if (abs(winPosOfs[num_winners - 1][j][0]) == 144.0f) { -#if VERSION_NTSC +#if VERSION_ENG if (winnerNameW[j] + 32 < HU_DISP_CENTERX) { word_x = 176.0f; } @@ -2815,7 +2882,7 @@ static s32 SeqInitWin(SeqWork *work, va_list params) else { word_x = (HU_DISP_WIDTH - word_x) - HU_DISP_CENTERX; } -#else +#elif VERSION_PAL if (32.0f + (work->win_scale * winnerNameW[j]) < HU_DISP_CENTERX) { word_x = 32.0f + ((winnerNameW[j] * work->win_scale) / 2.0f); } @@ -2825,6 +2892,16 @@ static s32 SeqInitWin(SeqWork *work, va_list params) if (winPosOfs[num_winners - 1][j][0] < 0) { word_x = -word_x; } +#else + if (32 + winnerNameW[j] < HU_DISP_CENTERX) { + word_x = 32 + winnerNameW[j] / 2; + } + else { + word_x = 120.0f; + } + if (winPosOfs[num_winners - 1][j][0] < 0) { + word_x = -word_x; + } #endif } else { @@ -2846,7 +2923,7 @@ static s32 SeqInitWin(SeqWork *work, va_list params) return 1; } -static s32 SeqUpdateWin(SeqWork *work) +s32 MGSeqUpdateWin(SeqWork *work) { s32 idx; float tp_lvl; @@ -2923,15 +3000,15 @@ static s32 SeqUpdateWin(SeqWork *work) else { if (abs(winPosOfs[work->word_len - 2][idx][0]) == 144.0f) { if (winnerNameW[idx] + 32 < HU_DISP_CENTERX) { - pos_x = VERSION_NTSC ? 176.0f : winnerNameW[idx] / 2 + 32; + pos_x = VERSION_ENG ? 176.0f : winnerNameW[idx] / 2 + 32; } else { - pos_x = VERSION_NTSC ? 32.0f + ((winnerNameW[idx] * work->win_scale) / 2.0f) : 128.0f; + pos_x = VERSION_ENG ? 32.0f + ((winnerNameW[idx] * work->win_scale) / 2.0f) : 128.0f; } if (winPosOfs[work->word_len - 2][idx][0] < 0) { - pos_x = VERSION_NTSC ? -(HU_DISP_CENTERX - pos_x) : -pos_x; + pos_x = VERSION_ENG ? -(HU_DISP_CENTERX - pos_x) : -pos_x; } -#if VERSION_NTSC +#if VERSION_ENG else { pos_x = (HU_DISP_WIDTH - pos_x) - HU_DISP_CENTERX; } @@ -2974,7 +3051,7 @@ static s32 SeqUpdateWin(SeqWork *work) return 1; } -static s32 SeqInitRecord(SeqWork *work, va_list params) +s32 MGSeqInitRecord(SeqWork *work, va_list params) { AnimData *spr_data; s16 spr_grp; @@ -3093,7 +3170,7 @@ static s32 SeqInitRecord(SeqWork *work, va_list params) return 1; } -static s32 SeqUpdateRecord(SeqWork *work) +s32 MGSeqUpdateRecord(SeqWork *work) { s16 group; if (_CheckFlag(FLAG_ID_MAKE(1, 12))) { From 6259d3f03a63a594de625401cf969a8e0371030c Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 26 Nov 2024 02:18:50 +0100 Subject: [PATCH 178/311] Fix the spelling of moviedll --- config/GMPJ01_00/splits.txt | 3 + config/GMPJ01_00/symbols.txt | 198 +++++++++++++++++------------------ configure.py | 2 +- include/ovl_table.h | 2 +- 4 files changed, 104 insertions(+), 101 deletions(-) diff --git a/config/GMPJ01_00/splits.txt b/config/GMPJ01_00/splits.txt index 0cecdb13..70955da0 100644 --- a/config/GMPJ01_00/splits.txt +++ b/config/GMPJ01_00/splits.txt @@ -201,3 +201,6 @@ game/minigame_seq.c: .sdata start:0x801D3158 end:0x801D3258 .sbss start:0x801D3A38 end:0x801D3A58 .sdata2 start:0x801D49A8 end:0x801D4B60 + +game/ovllist.c: + .data start:0x8012F378 end:0x8012FCE8 diff --git a/config/GMPJ01_00/symbols.txt b/config/GMPJ01_00/symbols.txt index b21e9dc2..8b43250a 100644 --- a/config/GMPJ01_00/symbols.txt +++ b/config/GMPJ01_00/symbols.txt @@ -3932,105 +3932,105 @@ winPosOfs = .data:0x8012F180; // type:object size:0x50 scope:local practiceTbl = .data:0x8012F1D0; // type:object size:0xAC scope:local yPosTbl$2429 = .data:0x8012F27C; // type:object size:0xC scope:local seqStartFXTbl = .data:0x8012F288; // type:object size:0xEC scope:local -lbl_8012F378 = .data:0x8012F378; // type:object size:0x15 data:string -lbl_8012F38D = .data:0x8012F38D; // type:object size:0x10 data:string -lbl_8012F39D = .data:0x8012F39D; // type:object size:0x13 data:string -lbl_8012F3B0 = .data:0x8012F3B0; // type:object size:0x10 data:string -lbl_8012F3C0 = .data:0x8012F3C0; // type:object size:0x10 data:string -lbl_8012F3D0 = .data:0x8012F3D0; // type:object size:0x10 data:string -lbl_8012F3E0 = .data:0x8012F3E0; // type:object size:0x10 data:string -lbl_8012F3F0 = .data:0x8012F3F0; // type:object size:0x10 data:string -lbl_8012F400 = .data:0x8012F400; // type:object size:0x10 data:string -lbl_8012F410 = .data:0x8012F410; // type:object size:0x10 data:string -lbl_8012F420 = .data:0x8012F420; // type:object size:0x10 data:string -lbl_8012F430 = .data:0x8012F430; // type:object size:0x10 data:string -lbl_8012F440 = .data:0x8012F440; // type:object size:0x10 data:string -lbl_8012F450 = .data:0x8012F450; // type:object size:0x10 data:string -lbl_8012F460 = .data:0x8012F460; // type:object size:0x10 data:string -lbl_8012F470 = .data:0x8012F470; // type:object size:0x10 data:string -lbl_8012F480 = .data:0x8012F480; // type:object size:0x10 data:string -lbl_8012F490 = .data:0x8012F490; // type:object size:0x10 data:string -lbl_8012F4A0 = .data:0x8012F4A0; // type:object size:0x10 data:string -lbl_8012F4B0 = .data:0x8012F4B0; // type:object size:0x10 data:string -lbl_8012F4C0 = .data:0x8012F4C0; // type:object size:0x10 data:string -lbl_8012F4D0 = .data:0x8012F4D0; // type:object size:0x10 data:string -lbl_8012F4E0 = .data:0x8012F4E0; // type:object size:0x10 data:string -lbl_8012F4F0 = .data:0x8012F4F0; // type:object size:0x10 data:string -lbl_8012F500 = .data:0x8012F500; // type:object size:0x10 data:string -lbl_8012F510 = .data:0x8012F510; // type:object size:0x10 data:string -lbl_8012F520 = .data:0x8012F520; // type:object size:0x10 data:string -lbl_8012F530 = .data:0x8012F530; // type:object size:0x10 data:string -lbl_8012F540 = .data:0x8012F540; // type:object size:0x10 data:string -lbl_8012F550 = .data:0x8012F550; // type:object size:0x10 data:string -lbl_8012F560 = .data:0x8012F560; // type:object size:0x10 data:string -lbl_8012F570 = .data:0x8012F570; // type:object size:0x10 data:string -lbl_8012F580 = .data:0x8012F580; // type:object size:0x10 data:string -lbl_8012F590 = .data:0x8012F590; // type:object size:0x10 data:string -lbl_8012F5A0 = .data:0x8012F5A0; // type:object size:0x10 data:string -lbl_8012F5B0 = .data:0x8012F5B0; // type:object size:0x10 data:string -lbl_8012F5C0 = .data:0x8012F5C0; // type:object size:0x10 data:string -lbl_8012F5D0 = .data:0x8012F5D0; // type:object size:0x10 data:string -lbl_8012F5E0 = .data:0x8012F5E0; // type:object size:0x10 data:string -lbl_8012F5F0 = .data:0x8012F5F0; // type:object size:0x10 data:string -lbl_8012F600 = .data:0x8012F600; // type:object size:0x10 data:string -lbl_8012F610 = .data:0x8012F610; // type:object size:0x10 data:string -lbl_8012F620 = .data:0x8012F620; // type:object size:0x10 data:string -lbl_8012F630 = .data:0x8012F630; // type:object size:0x10 data:string -lbl_8012F640 = .data:0x8012F640; // type:object size:0x10 data:string -lbl_8012F650 = .data:0x8012F650; // type:object size:0x10 data:string -lbl_8012F660 = .data:0x8012F660; // type:object size:0x10 data:string -lbl_8012F670 = .data:0x8012F670; // type:object size:0x10 data:string -lbl_8012F680 = .data:0x8012F680; // type:object size:0x10 data:string -lbl_8012F690 = .data:0x8012F690; // type:object size:0x10 data:string -lbl_8012F6A0 = .data:0x8012F6A0; // type:object size:0x10 data:string -lbl_8012F6B0 = .data:0x8012F6B0; // type:object size:0x10 data:string -lbl_8012F6C0 = .data:0x8012F6C0; // type:object size:0x10 data:string -lbl_8012F6D0 = .data:0x8012F6D0; // type:object size:0x10 data:string -lbl_8012F6E0 = .data:0x8012F6E0; // type:object size:0x10 data:string -lbl_8012F6F0 = .data:0x8012F6F0; // type:object size:0x10 data:string -lbl_8012F700 = .data:0x8012F700; // type:object size:0x10 data:string -lbl_8012F710 = .data:0x8012F710; // type:object size:0x10 data:string -lbl_8012F720 = .data:0x8012F720; // type:object size:0x10 data:string -lbl_8012F730 = .data:0x8012F730; // type:object size:0x10 data:string -lbl_8012F740 = .data:0x8012F740; // type:object size:0x10 data:string -lbl_8012F750 = .data:0x8012F750; // type:object size:0x10 data:string -lbl_8012F760 = .data:0x8012F760; // type:object size:0x10 data:string -lbl_8012F770 = .data:0x8012F770; // type:object size:0x10 data:string -lbl_8012F780 = .data:0x8012F780; // type:object size:0x10 data:string -lbl_8012F790 = .data:0x8012F790; // type:object size:0x10 data:string -lbl_8012F7A0 = .data:0x8012F7A0; // type:object size:0x10 data:string -lbl_8012F7B0 = .data:0x8012F7B0; // type:object size:0x10 data:string -lbl_8012F7C0 = .data:0x8012F7C0; // type:object size:0x10 data:string -lbl_8012F7D0 = .data:0x8012F7D0; // type:object size:0x10 data:string -lbl_8012F7E0 = .data:0x8012F7E0; // type:object size:0x10 data:string -lbl_8012F7F0 = .data:0x8012F7F0; // type:object size:0x12 data:string -lbl_8012F802 = .data:0x8012F802; // type:object size:0x15 data:string -lbl_8012F817 = .data:0x8012F817; // type:object size:0x13 data:string -lbl_8012F82A = .data:0x8012F82A; // type:object size:0x11 data:string -lbl_8012F83B = .data:0x8012F83B; // type:object size:0x10 data:string -lbl_8012F84B = .data:0x8012F84B; // type:object size:0x12 data:string -lbl_8012F85D = .data:0x8012F85D; // type:object size:0x13 data:string -lbl_8012F870 = .data:0x8012F870; // type:object size:0x13 data:string -lbl_8012F883 = .data:0x8012F883; // type:object size:0x13 data:string -lbl_8012F896 = .data:0x8012F896; // type:object size:0x12 data:string -lbl_8012F8A8 = .data:0x8012F8A8; // type:object size:0xF data:string -lbl_8012F8B7 = .data:0x8012F8B7; // type:object size:0xF data:string -lbl_8012F8C6 = .data:0x8012F8C6; // type:object size:0x10 data:string -lbl_8012F8D6 = .data:0x8012F8D6; // type:object size:0x12 data:string -lbl_8012F8E8 = .data:0x8012F8E8; // type:object size:0xF data:string -lbl_8012F8F7 = .data:0x8012F8F7; // type:object size:0x13 data:string -lbl_8012F90A = .data:0x8012F90A; // type:object size:0x11 data:string -lbl_8012F91B = .data:0x8012F91B; // type:object size:0x15 data:string -lbl_8012F930 = .data:0x8012F930; // type:object size:0xF data:string -lbl_8012F93F = .data:0x8012F93F; // type:object size:0xF data:string -lbl_8012F94E = .data:0x8012F94E; // type:object size:0xF data:string -lbl_8012F95D = .data:0x8012F95D; // type:object size:0xF data:string -lbl_8012F96C = .data:0x8012F96C; // type:object size:0xF data:string -lbl_8012F97B = .data:0x8012F97B; // type:object size:0xF data:string -lbl_8012F98A = .data:0x8012F98A; // type:object size:0xF data:string -lbl_8012F999 = .data:0x8012F999; // type:object size:0xF data:string -lbl_8012F9A8 = .data:0x8012F9A8; // type:object size:0xF data:string -lbl_8012F9B7 = .data:0x8012F9B7; // type:object size:0x11 +lbl_8012F378 = .data:0x8012F378; // type:object size:0x15 scope:local data:string +lbl_8012F38D = .data:0x8012F38D; // type:object size:0x10 scope:local data:string +lbl_8012F39D = .data:0x8012F39D; // type:object size:0x13 scope:local data:string +lbl_8012F3B0 = .data:0x8012F3B0; // type:object size:0x10 scope:local data:string +lbl_8012F3C0 = .data:0x8012F3C0; // type:object size:0x10 scope:local data:string +lbl_8012F3D0 = .data:0x8012F3D0; // type:object size:0x10 scope:local data:string +lbl_8012F3E0 = .data:0x8012F3E0; // type:object size:0x10 scope:local data:string +lbl_8012F3F0 = .data:0x8012F3F0; // type:object size:0x10 scope:local data:string +lbl_8012F400 = .data:0x8012F400; // type:object size:0x10 scope:local data:string +lbl_8012F410 = .data:0x8012F410; // type:object size:0x10 scope:local data:string +lbl_8012F420 = .data:0x8012F420; // type:object size:0x10 scope:local data:string +lbl_8012F430 = .data:0x8012F430; // type:object size:0x10 scope:local data:string +lbl_8012F440 = .data:0x8012F440; // type:object size:0x10 scope:local data:string +lbl_8012F450 = .data:0x8012F450; // type:object size:0x10 scope:local data:string +lbl_8012F460 = .data:0x8012F460; // type:object size:0x10 scope:local data:string +lbl_8012F470 = .data:0x8012F470; // type:object size:0x10 scope:local data:string +lbl_8012F480 = .data:0x8012F480; // type:object size:0x10 scope:local data:string +lbl_8012F490 = .data:0x8012F490; // type:object size:0x10 scope:local data:string +lbl_8012F4A0 = .data:0x8012F4A0; // type:object size:0x10 scope:local data:string +lbl_8012F4B0 = .data:0x8012F4B0; // type:object size:0x10 scope:local data:string +lbl_8012F4C0 = .data:0x8012F4C0; // type:object size:0x10 scope:local data:string +lbl_8012F4D0 = .data:0x8012F4D0; // type:object size:0x10 scope:local data:string +lbl_8012F4E0 = .data:0x8012F4E0; // type:object size:0x10 scope:local data:string +lbl_8012F4F0 = .data:0x8012F4F0; // type:object size:0x10 scope:local data:string +lbl_8012F500 = .data:0x8012F500; // type:object size:0x10 scope:local data:string +lbl_8012F510 = .data:0x8012F510; // type:object size:0x10 scope:local data:string +lbl_8012F520 = .data:0x8012F520; // type:object size:0x10 scope:local data:string +lbl_8012F530 = .data:0x8012F530; // type:object size:0x10 scope:local data:string +lbl_8012F540 = .data:0x8012F540; // type:object size:0x10 scope:local data:string +lbl_8012F550 = .data:0x8012F550; // type:object size:0x10 scope:local data:string +lbl_8012F560 = .data:0x8012F560; // type:object size:0x10 scope:local data:string +lbl_8012F570 = .data:0x8012F570; // type:object size:0x10 scope:local data:string +lbl_8012F580 = .data:0x8012F580; // type:object size:0x10 scope:local data:string +lbl_8012F590 = .data:0x8012F590; // type:object size:0x10 scope:local data:string +lbl_8012F5A0 = .data:0x8012F5A0; // type:object size:0x10 scope:local data:string +lbl_8012F5B0 = .data:0x8012F5B0; // type:object size:0x10 scope:local data:string +lbl_8012F5C0 = .data:0x8012F5C0; // type:object size:0x10 scope:local data:string +lbl_8012F5D0 = .data:0x8012F5D0; // type:object size:0x10 scope:local data:string +lbl_8012F5E0 = .data:0x8012F5E0; // type:object size:0x10 scope:local data:string +lbl_8012F5F0 = .data:0x8012F5F0; // type:object size:0x10 scope:local data:string +lbl_8012F600 = .data:0x8012F600; // type:object size:0x10 scope:local data:string +lbl_8012F610 = .data:0x8012F610; // type:object size:0x10 scope:local data:string +lbl_8012F620 = .data:0x8012F620; // type:object size:0x10 scope:local data:string +lbl_8012F630 = .data:0x8012F630; // type:object size:0x10 scope:local data:string +lbl_8012F640 = .data:0x8012F640; // type:object size:0x10 scope:local data:string +lbl_8012F650 = .data:0x8012F650; // type:object size:0x10 scope:local data:string +lbl_8012F660 = .data:0x8012F660; // type:object size:0x10 scope:local data:string +lbl_8012F670 = .data:0x8012F670; // type:object size:0x10 scope:local data:string +lbl_8012F680 = .data:0x8012F680; // type:object size:0x10 scope:local data:string +lbl_8012F690 = .data:0x8012F690; // type:object size:0x10 scope:local data:string +lbl_8012F6A0 = .data:0x8012F6A0; // type:object size:0x10 scope:local data:string +lbl_8012F6B0 = .data:0x8012F6B0; // type:object size:0x10 scope:local data:string +lbl_8012F6C0 = .data:0x8012F6C0; // type:object size:0x10 scope:local data:string +lbl_8012F6D0 = .data:0x8012F6D0; // type:object size:0x10 scope:local data:string +lbl_8012F6E0 = .data:0x8012F6E0; // type:object size:0x10 scope:local data:string +lbl_8012F6F0 = .data:0x8012F6F0; // type:object size:0x10 scope:local data:string +lbl_8012F700 = .data:0x8012F700; // type:object size:0x10 scope:local data:string +lbl_8012F710 = .data:0x8012F710; // type:object size:0x10 scope:local data:string +lbl_8012F720 = .data:0x8012F720; // type:object size:0x10 scope:local data:string +lbl_8012F730 = .data:0x8012F730; // type:object size:0x10 scope:local data:string +lbl_8012F740 = .data:0x8012F740; // type:object size:0x10 scope:local data:string +lbl_8012F750 = .data:0x8012F750; // type:object size:0x10 scope:local data:string +lbl_8012F760 = .data:0x8012F760; // type:object size:0x10 scope:local data:string +lbl_8012F770 = .data:0x8012F770; // type:object size:0x10 scope:local data:string +lbl_8012F780 = .data:0x8012F780; // type:object size:0x10 scope:local data:string +lbl_8012F790 = .data:0x8012F790; // type:object size:0x10 scope:local data:string +lbl_8012F7A0 = .data:0x8012F7A0; // type:object size:0x10 scope:local data:string +lbl_8012F7B0 = .data:0x8012F7B0; // type:object size:0x10 scope:local data:string +lbl_8012F7C0 = .data:0x8012F7C0; // type:object size:0x10 scope:local data:string +lbl_8012F7D0 = .data:0x8012F7D0; // type:object size:0x10 scope:local data:string +lbl_8012F7E0 = .data:0x8012F7E0; // type:object size:0x10 scope:local data:string +lbl_8012F7F0 = .data:0x8012F7F0; // type:object size:0x12 scope:local data:string +lbl_8012F802 = .data:0x8012F802; // type:object size:0x15 scope:local data:string +lbl_8012F817 = .data:0x8012F817; // type:object size:0x13 scope:local data:string +lbl_8012F82A = .data:0x8012F82A; // type:object size:0x11 scope:local data:string +lbl_8012F83B = .data:0x8012F83B; // type:object size:0x10 scope:local data:string +lbl_8012F84B = .data:0x8012F84B; // type:object size:0x12 scope:local data:string +lbl_8012F85D = .data:0x8012F85D; // type:object size:0x13 scope:local data:string +lbl_8012F870 = .data:0x8012F870; // type:object size:0x13 scope:local data:string +lbl_8012F883 = .data:0x8012F883; // type:object size:0x13 scope:local data:string +lbl_8012F896 = .data:0x8012F896; // type:object size:0x12 scope:local data:string +lbl_8012F8A8 = .data:0x8012F8A8; // type:object size:0xF scope:local data:string +lbl_8012F8B7 = .data:0x8012F8B7; // type:object size:0xF scope:local data:string +lbl_8012F8C6 = .data:0x8012F8C6; // type:object size:0x10 scope:local data:string +lbl_8012F8D6 = .data:0x8012F8D6; // type:object size:0x12 scope:local data:string +lbl_8012F8E8 = .data:0x8012F8E8; // type:object size:0xF scope:local data:string +lbl_8012F8F7 = .data:0x8012F8F7; // type:object size:0x13 scope:local data:string +lbl_8012F90A = .data:0x8012F90A; // type:object size:0x11 scope:local data:string +lbl_8012F91B = .data:0x8012F91B; // type:object size:0x15 scope:local data:string +lbl_8012F930 = .data:0x8012F930; // type:object size:0xF scope:local data:string +lbl_8012F93F = .data:0x8012F93F; // type:object size:0xF scope:local data:string +lbl_8012F94E = .data:0x8012F94E; // type:object size:0xF scope:local data:string +lbl_8012F95D = .data:0x8012F95D; // type:object size:0xF scope:local data:string +lbl_8012F96C = .data:0x8012F96C; // type:object size:0xF scope:local data:string +lbl_8012F97B = .data:0x8012F97B; // type:object size:0xF scope:local data:string +lbl_8012F98A = .data:0x8012F98A; // type:object size:0xF scope:local data:string +lbl_8012F999 = .data:0x8012F999; // type:object size:0xF scope:local data:string +lbl_8012F9A8 = .data:0x8012F9A8; // type:object size:0xF scope:local data:string +lbl_8012F9B7 = .data:0x8012F9B7; // type:object size:0x11 scope:local _ovltbl = .data:0x8012F9C8; // type:object size:0x320 lbl_8012FCE8 = .data:0x8012FCE8; // type:object size:0x20 lbl_8012FD08 = .data:0x8012FD08; // type:object size:0xC diff --git a/configure.py b/configure.py index bad7edb8..4d0f9cc6 100644 --- a/configure.py +++ b/configure.py @@ -404,7 +404,7 @@ config.libs = [ Object(Matching, "game/audio.c"), Object(Matching, "game/EnvelopeExec.c"), Object(Matching, "game/minigame_seq.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/ovllist.c"), + Object(Matching, "game/ovllist.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/esprite.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/code_8003FF68.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/ClusterExec.c"), diff --git a/include/ovl_table.h b/include/ovl_table.h index bdd01ccd..5f61425c 100644 --- a/include/ovl_table.h +++ b/include/ovl_table.h @@ -75,7 +75,7 @@ OVL_DEFINE(OVL_MENT, "dll/mentdll.rel") OVL_DEFINE(OVL_MGMODE, "dll/mgmodedll.rel") OVL_DEFINE(OVL_MODELTEST, "dll/modeltestdll.rel") OVL_DEFINE(OVL_MODESEL, "dll/modeseldll.rel") -OVL_DEFINE(OVL_MOVIE, "dll/movieDll.rel") +OVL_DEFINE(OVL_MOVIE, "dll/moviedll.rel") #else OVL_DEFINE(OVL_MESS, "dll/messdll.rel") OVL_DEFINE(OVL_MGMODE, "dll/mgmodedll.rel") From 5bcfdd1d6bb66c2f895d6a0cb6d5266133258c65 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 26 Nov 2024 04:08:04 +0100 Subject: [PATCH 179/311] Split Japanese DOL till card.c --- config/GMPJ01_00/splits.txt | 45 ++ config/GMPJ01_00/symbols.txt | 150 ++++--- configure.py | 16 +- src/game/window.c | 807 ++++++++++++++++++----------------- 4 files changed, 547 insertions(+), 471 deletions(-) diff --git a/config/GMPJ01_00/splits.txt b/config/GMPJ01_00/splits.txt index 70955da0..feb125b5 100644 --- a/config/GMPJ01_00/splits.txt +++ b/config/GMPJ01_00/splits.txt @@ -204,3 +204,48 @@ game/minigame_seq.c: game/ovllist.c: .data start:0x8012F378 end:0x8012FCE8 + +game/esprite.c: + .text start:0x8003F690 end:0x8003FD40 + .bss start:0x80190500 end:0x80191D00 + .sbss start:0x801D3A58 end:0x801D3A60 + +game/code_8003FF68.c: + .text start:0x8003FD40 end:0x800402D8 + .data start:0x8012FCE8 end:0x8012FD08 + .bss start:0x80191D00 end:0x80192000 + .sdata start:0x801D3258 end:0x801D3278 + .sbss start:0x801D3A60 end:0x801D3A68 + .sdata2 start:0x801D4B60 end:0x801D4B78 + +game/ClusterExec.c: + .text start:0x800402D8 end:0x80040B38 + .sdata2 start:0x801D4B78 end:0x801D4B88 + +game/ShapeExec.c: + .text start:0x80040B38 end:0x80040F48 + .sdata2 start:0x801D4B88 end:0x801D4B98 + +game/wipe.c: + .text start:0x80040F48 end:0x80041E54 + .data start:0x8012FD08 end:0x8012FD20 + .bss start:0x80192000 end:0x8019204C + .sdata start:0x801D3278 end:0x801D3280 + .sbss start:0x801D3A68 end:0x801D3A70 + .sdata2 start:0x801D4B98 end:0x801D4BC0 + +game/window.c: + .text start:0x80041E54 end:0x80047E88 + .data start:0x8012FD20 end:0x80130268 + .bss start:0x80192060 end:0x80196470 + .sdata start:0x801D3280 end:0x801D3288 + .sbss start:0x801D3A70 end:0x801D3AB8 + .sdata2 start:0x801D4BC0 end:0x801D4C58 + +game/messdata.c: + .text start:0x80047E88 end:0x80047F70 + +game/card.c: + .text start:0x80047F70 end:0x80048574 + .data start:0x80130268 end:0x801302B8 + .sbss start:0x801D3AB8 end:0x801D3AC0 diff --git a/config/GMPJ01_00/symbols.txt b/config/GMPJ01_00/symbols.txt index 8b43250a..8bc3e8c0 100644 --- a/config/GMPJ01_00/symbols.txt +++ b/config/GMPJ01_00/symbols.txt @@ -4032,25 +4032,25 @@ lbl_8012F999 = .data:0x8012F999; // type:object size:0xF scope:local data:string lbl_8012F9A8 = .data:0x8012F9A8; // type:object size:0xF scope:local data:string lbl_8012F9B7 = .data:0x8012F9B7; // type:object size:0x11 scope:local _ovltbl = .data:0x8012F9C8; // type:object size:0x320 -lbl_8012FCE8 = .data:0x8012FCE8; // type:object size:0x20 -lbl_8012FD08 = .data:0x8012FD08; // type:object size:0xC -lbl_8012FD14 = .data:0x8012FD14; // type:object size:0xC -lbl_8012FD20 = .data:0x8012FD20; // type:object size:0x170 -lbl_8012FE90 = .data:0x8012FE90; // type:object size:0x130 -lbl_8012FFC0 = .data:0x8012FFC0; // type:object size:0x140 -lbl_80130100 = .data:0x80130100; // type:object size:0x3C -lbl_8013013C = .data:0x8013013C; // type:object size:0x10 -lbl_8013014C = .data:0x8013014C; // type:object size:0xE data:string -lbl_8013015A = .data:0x8013015A; // type:object size:0xF data:string -lbl_80130169 = .data:0x80130169; // type:object size:0x10 data:string -lbl_80130179 = .data:0x80130179; // type:object size:0x13 -lbl_8013018C = .data:0x8013018C; // type:object size:0x10 -lbl_8013019C = .data:0x8013019C; // type:object size:0x54 -lbl_801301F0 = .data:0x801301F0; // type:object size:0x13 data:string -lbl_80130203 = .data:0x80130203; // type:object size:0x19 -lbl_8013021C = .data:0x8013021C; // type:object size:0x4C -lbl_80130268 = .data:0x80130268; // type:object size:0x26 data:string -lbl_8013028E = .data:0x8013028E; // type:object size:0x2A +lbl_80130100 = .data:0x8012FCE8; // type:object size:0x20 +fadeInFunc = .data:0x8012FD08; // type:object size:0xC +fadeOutFunc = .data:0x8012FD14; // type:object size:0xC +spcFontTbl = .data:0x8012FD20; // type:object size:0x170 scope:local +charWETbl = .data:0x8012FE90; // type:object size:0x130 +charWJTbl = .data:0x8012FFC0; // type:object size:0x140 +charColPal = .data:0x80130100; // type:object size:0x3C scope:local +frameFileTbl = .data:0x8013013C; // type:object size:0x10 scope:local +@257 = .data:0x8013014C; // type:object size:0xE scope:local data:string +@258 = .data:0x8013015A; // type:object size:0xF scope:local data:string +@259 = .data:0x80130169; // type:object size:0x10 scope:local data:string +@260 = .data:0x80130179; // type:object size:0x11 scope:local data:string +mesDataTbl = .data:0x8013018C; // type:object size:0x10 scope:local +winVoiceTbl = .data:0x8013019C; // type:object size:0x54 scope:local +@1076 = .data:0x801301F0; // type:object size:0x13 scope:local data:string +@1077 = .data:0x80130203; // type:object size:0x18 scope:local data:string +winPortraitTbl = .data:0x8013021C; // type:object size:0x4C scope:local +lbl_80130268 = .data:0x80130268; // type:object size:0x26 scope:local data:string +lbl_8013028E = .data:0x8013028E; // type:object size:0x2A scope:local lbl_801302B8 = .data:0x801302B8; // type:object size:0x19 data:string lbl_801302D1 = .data:0x801302D1; // type:object size:0x14 data:string lbl_801302E5 = .data:0x801302E5; // type:object size:0x93 @@ -4428,15 +4428,15 @@ sndFXBuf = .bss:0x8018FED0; // type:object size:0x200 scope:local charVoiceGroupStat = .bss:0x801900D0; // type:object size:0x20 seqWorkData = .bss:0x801900F0; // type:object size:0x400 scope:local data:4byte winnerNameW = .bss:0x801904F0; // type:object size:0x10 scope:local data:2byte -lbl_80190500 = .bss:0x80190500; // type:object size:0x600 data:2byte -lbl_80190B00 = .bss:0x80190B00; // type:object size:0x1200 data:4byte -lbl_80191D00 = .bss:0x80191D00; // type:object size:0x100 -lbl_80191E00 = .bss:0x80191E00; // type:object size:0x100 -lbl_80191F00 = .bss:0x80191F00; // type:object size:0x100 -wipeData = .bss:0x80192000; // type:object size:0x60 data:4byte -lbl_80192060 = .bss:0x80192060; // type:object size:0x3000 data:byte -lbl_80195060 = .bss:0x80195060; // type:object size:0x10 -lbl_80195070 = .bss:0x80195070; // type:object size:0x1410 +esprite = .bss:0x80190500; // type:object size:0x600 data:2byte +espanim = .bss:0x80190B00; // type:object size:0x1200 data:4byte +lbl_80192060 = .bss:0x80191D00; // type:object size:0x100 +lbl_80192160 = .bss:0x80191E00; // type:object size:0x100 +lbl_80192260 = .bss:0x80191F00; // type:object size:0x100 +wipeData = .bss:0x80192000; // type:object size:0x4C data:4byte +winData = .bss:0x80192060; // type:object size:0x3000 data:byte +winKey = .bss:0x80195060; // type:object size:0x10 +winComKeyBuf = .bss:0x80195070; // type:object size:0x1400 lbl_80196480 = .bss:0x80196480; // type:object size:0x400 data:byte lbl_80196880 = .bss:0x80196880; // type:object size:0x20 lbl_801968A0 = .bss:0x801968A0; // type:object size:0x2C0 @@ -4696,19 +4696,13 @@ wordDrawE = .sdata:0x801D3182; // type:object size:0x6 scope:local data:string @1994 = .sdata:0x801D3244; // type:object size:0x6 scope:local @1995 = .sdata:0x801D324A; // type:object size:0x6 scope:local data:string pauseStr$2283 = .sdata:0x801D3250; // type:object size:0x8 scope:local -lbl_801D3258 = .sdata:0x801D3258; // type:object size:0x8 -lbl_801D3260 = .sdata:0x801D3260; // type:object size:0x8 -lbl_801D3268 = .sdata:0x801D3268; // type:object size:0x8 -lbl_801D3270 = .sdata:0x801D3270; // type:object size:0x8 -lbl_801D3278 = .sdata:0x801D3278; // type:object size:0x1 data:byte -lbl_801D3279 = .sdata:0x801D3279; // type:object size:0x1 data:byte -lbl_801D327A = .sdata:0x801D327A; // type:object size:0x1 data:byte -lbl_801D327B = .sdata:0x801D327B; // type:object size:0x1 data:byte -lbl_801D327C = .sdata:0x801D327C; // type:object size:0x1 data:byte -lbl_801D327D = .sdata:0x801D327D; // type:object size:0x1 data:byte -lbl_801D327E = .sdata:0x801D327E; // type:object size:0x1 data:byte -lbl_801D327F = .sdata:0x801D327F; // type:object size:0x1 data:byte -lbl_801D3280 = .sdata:0x801D3280; // type:object size:0x8 data:2byte +lbl_801D35C0 = .sdata:0x801D3258; // type:object size:0x8 +lbl_801D35C8 = .sdata:0x801D3260; // type:object size:0x8 +lbl_801D35D0 = .sdata:0x801D3268; // type:object size:0x8 +lbl_801D35D8 = .sdata:0x801D3270; // type:object size:0x8 +colorN$226 = .sdata:0x801D3278; // type:object size:0x4 scope:local data:byte +colorN$271 = .sdata:0x801D327C; // type:object size:0x4 scope:local data:byte +winPrio = .sdata:0x801D3280; // type:object size:0x2 scope:local data:2byte lbl_801D3288 = .sdata:0x801D3288; // type:object size:0x8 lbl_801D3290 = .sdata:0x801D3290; // type:object size:0x8 lbl_801D3298 = .sdata:0x801D3298; // type:object size:0x8 @@ -4872,13 +4866,13 @@ autoInvalidation = .sdata:0x801D3598; // type:object size:0x4 scope:local data:4 @41 = .sdata:0x801D35A8; // type:object size:0x3 scope:local data:string lbl_801D35B0 = .sdata:0x801D35B0; // type:object size:0x8 data:string lbl_801D35B8 = .sdata:0x801D35B8; // type:object size:0x8 data:byte -lbl_801D35C0 = .sdata:0x801D35C0; // type:object size:0x4 data:4byte +lbl_801D35C0_2 = .sdata:0x801D35C0; // type:object size:0x4 data:4byte lbl_801D35C4 = .sdata:0x801D35C4; // type:object size:0x4 data:4byte -lbl_801D35C8 = .sdata:0x801D35C8; // type:object size:0x4 data:4byte +lbl_801D35C8_2 = .sdata:0x801D35C8; // type:object size:0x4 data:4byte lbl_801D35CC = .sdata:0x801D35CC; // type:object size:0x4 data:4byte -lbl_801D35D0 = .sdata:0x801D35D0; // type:object size:0x4 data:4byte +lbl_801D35D0_2 = .sdata:0x801D35D0; // type:object size:0x4 data:4byte lbl_801D35D4 = .sdata:0x801D35D4; // type:object size:0x4 -lbl_801D35D8 = .sdata:0x801D35D8; // type:object size:0x8 +lbl_801D35D8_2 = .sdata:0x801D35D8; // type:object size:0x8 gx = .sdata:0x801D35E0; // type:object size:0x4 scope:global data:4byte lbl_801D35E8 = .sdata:0x801D35E8; // type:object size:0x4 lbl_801D35EC = .sdata:0x801D35EC; // type:object size:0x4 @@ -5138,31 +5132,31 @@ seqSpeed = .sbss:0x801D3A52; // type:object size:0x2 scope:local data:2byte lbl_801D3A54 = .sbss:0x801D3A54; // type:object size:0x1 data:byte seqDoneF = .sbss:0x801D3A55; // type:object size:0x1 scope:local data:byte seqTimer = .sbss:0x801D3A56; // type:object size:0x2 scope:local data:2byte -lbl_801D3A58 = .sbss:0x801D3A58; // type:object size:0x8 data:2byte -lbl_801D3A60 = .sbss:0x801D3A60; // type:object size:0x8 -wipeFadeInF = .sbss:0x801D3A68; // type:object size:0x8 data:4byte -lbl_801D3A70 = .sbss:0x801D3A70; // type:object size:0x4 data:4byte -lbl_801D3A74 = .sbss:0x801D3A74; // type:object size:0x1 data:byte -lbl_801D3A76 = .sbss:0x801D3A76; // type:object size:0x2 data:2byte -lbl_801D3A78 = .sbss:0x801D3A78; // type:object size:0x2 data:2byte -lbl_801D3A7A = .sbss:0x801D3A7A; // type:object size:0x2 data:2byte -lbl_801D3A7C = .sbss:0x801D3A7C; // type:object size:0x4 data:4byte -lbl_801D3A80 = .sbss:0x801D3A80; // type:object size:0x4 data:4byte -lbl_801D3A84 = .sbss:0x801D3A84; // type:object size:0x4 data:4byte -lbl_801D3A88 = .sbss:0x801D3A88; // type:object size:0x1 data:byte -lbl_801D3A89 = .sbss:0x801D3A89; // type:object size:0x1 data:byte -lbl_801D3A8A = .sbss:0x801D3A8A; // type:object size:0x8 -lbl_801D3A92 = .sbss:0x801D3A92; // type:object size:0x2 data:2byte -lbl_801D3A94 = .sbss:0x801D3A94; // type:object size:0x2 data:2byte -lbl_801D3A98 = .sbss:0x801D3A98; // type:object size:0x4 data:4byte -lbl_801D3A9C = .sbss:0x801D3A9C; // type:object size:0x4 data:4byte -lbl_801D3AA0 = .sbss:0x801D3AA0; // type:object size:0x4 data:4byte -lbl_801D3AA4 = .sbss:0x801D3AA4; // type:object size:0x4 data:4byte -lbl_801D3AA8 = .sbss:0x801D3AA8; // type:object size:0x4 data:4byte -lbl_801D3AAC = .sbss:0x801D3AAC; // type:object size:0x4 data:4byte -lbl_801D3AB0 = .sbss:0x801D3AB0; // type:object size:0x8 data:4byte -lbl_801D3AB8 = .sbss:0x801D3AB8; // type:object size:0x1 data:byte -lbl_801D3ABC = .sbss:0x801D3ABC; // type:object size:0x4 data:4byte +gid = .sbss:0x801D3A58; // type:object size:0x2 scope:local data:2byte +lbl_801D3DA0 = .sbss:0x801D3A60; // type:object size:0x8 +wipeFadeInF = .sbss:0x801D3A68; // type:object size:0x4 data:4byte +fontAnim = .sbss:0x801D3A70; // type:object size:0x4 data:4byte +LanguageNo = .sbss:0x801D3A74; // type:object size:0x1 scope:local data:byte +comKeyIdx = .sbss:0x801D3A76; // type:object size:0x2 scope:local data:2byte +comKeyIdxNow = .sbss:0x801D3A78; // type:object size:0x2 scope:local data:2byte +mesCharCnt = .sbss:0x801D3A7A; // type:object size:0x2 scope:local data:2byte +cancelCRF = .sbss:0x801D3A7C; // type:object size:0x4 scope:local data:4byte +fontWidthP = .sbss:0x801D3A80; // type:object size:0x4 scope:local data:4byte +winAMemP = .sbss:0x801D3A84; // type:object size:0x4 scope:local data:4byte +winInsertF = .sbss:0x801D3A88; // type:object size:0x1 scope:local data:byte +winTabSize = .sbss:0x801D3A89; // type:object size:0x1 scope:local data:byte +mesWInsert = .sbss:0x801D3A8A; // type:object size:0x8 scope:local +winMaxHeight = .sbss:0x801D3A92; // type:object size:0x2 scope:local data:2byte +winMaxWidth = .sbss:0x801D3A94; // type:object size:0x2 scope:local data:2byte +messDataNo = .sbss:0x801D3A98; // type:object size:0x4 scope:local data:4byte +messDataPtr = .sbss:0x801D3A9C; // type:object size:0x4 data:4byte +winProc = .sbss:0x801D3AA0; // type:object size:0x4 scope:local data:4byte +cardAnimB = .sbss:0x801D3AA4; // type:object size:0x4 scope:local data:4byte +cardAnimA = .sbss:0x801D3AA8; // type:object size:0x4 scope:local data:4byte +cursorAnim = .sbss:0x801D3AAC; // type:object size:0x4 scope:local data:4byte +iconAnim = .sbss:0x801D3AB0; // type:object size:0x4 scope:local data:4byte +UnMountCnt = .sbss:0x801D3AB8; // type:object size:0x1 data:byte +cardWork = .sbss:0x801D3ABC; // type:object size:0x4 scope:local data:4byte lbl_801D3AC0 = .sbss:0x801D3AC0; // type:object size:0x2 data:2byte lbl_801D3AC4 = .sbss:0x801D3AC4; // type:object size:0x4 data:4byte lbl_801D3AC8 = .sbss:0x801D3AC8; // type:object size:0x8 data:4byte @@ -5356,7 +5350,7 @@ lbl_801D3D99 = .sbss:0x801D3D99; // type:object size:0x1 data:byte lbl_801D3D9A = .sbss:0x801D3D9A; // type:object size:0x1 data:byte lbl_801D3D9B = .sbss:0x801D3D9B; // type:object size:0x1 data:byte lbl_801D3D9C = .sbss:0x801D3D9C; // type:object size:0x1 data:byte -lbl_801D3DA0 = .sbss:0x801D3DA0; // type:object size:0x4 data:4byte +lbl_801D3DA0_2 = .sbss:0x801D3DA0; // type:object size:0x4 data:4byte lbl_801D3DA4 = .sbss:0x801D3DA4; // type:object size:0x4 data:4byte lbl_801D3DA8 = .sbss:0x801D3DA8; // type:object size:0x4 data:float lbl_801D3DAC = .sbss:0x801D3DAC; // type:object size:0x4 data:float @@ -5479,7 +5473,7 @@ lbl_801D3F4C = .sbss:0x801D3F4C; // type:object size:0x4 data:4byte lbl_801D3F50 = .sbss:0x801D3F50; // type:object size:0x4 data:4byte lbl_801D3F54 = .sbss:0x801D3F54; // type:object size:0x4 data:4byte lbl_801D3F58 = .sbss:0x801D3F58; // type:object size:0x4 data:4byte -lbl_801D3F5C = .sbss:0x801D3F5C; // type:object size:0x1 data:byte +boardTutorialF = .sbss:0x801D3F5C; // type:object size:0x1 data:byte lbl_801D3F5E = .sbss:0x801D3F5E; // type:object size:0x2 data:2byte lbl_801D3F60 = .sbss:0x801D3F60; // type:object size:0x1 data:byte lbl_801D3F61 = .sbss:0x801D3F61; // type:object size:0x1 data:byte @@ -6100,12 +6094,12 @@ lbl_801D4C10 = .sdata2:0x801D4C10; // type:object size:0x4 scope:local data:floa lbl_801D4C18 = .sdata2:0x801D4C18; // type:object size:0x8 scope:local data:double lbl_801D4C20 = .sdata2:0x801D4C20; // type:object size:0x4 scope:local data:float lbl_801D4C24 = .sdata2:0x801D4C24; // type:object size:0x4 scope:local data:float -lbl_801D4C28 = .sdata2:0x801D4C28; // type:object size:0x4 data:float -lbl_801D4C30 = .sdata2:0x801D4C30; // type:object size:0x8 data:double -lbl_801D4C38 = .sdata2:0x801D4C38; // type:object size:0x8 data:double -lbl_801D4C40 = .sdata2:0x801D4C40; // type:object size:0x8 data:double -lbl_801D4C48 = .sdata2:0x801D4C48; // type:object size:0x4 data:float -lbl_801D4C50 = .sdata2:0x801D4C50; // type:object size:0x8 data:double +lbl_801D4C28 = .sdata2:0x801D4C28; // type:object size:0x4 scope:local data:float +lbl_801D4C30 = .sdata2:0x801D4C30; // type:object size:0x8 scope:local data:double +lbl_801D4C38 = .sdata2:0x801D4C38; // type:object size:0x8 scope:local data:double +lbl_801D4C40 = .sdata2:0x801D4C40; // type:object size:0x8 scope:local data:double +lbl_801D4C48 = .sdata2:0x801D4C48; // type:object size:0x4 scope:local data:float +lbl_801D4C50 = .sdata2:0x801D4C50; // type:object size:0x8 scope:local data:double lbl_801D4C58 = .sdata2:0x801D4C58; // type:object size:0x8 data:double lbl_801D4C60 = .sdata2:0x801D4C60; // type:object size:0x8 data:double lbl_801D4C68 = .sdata2:0x801D4C68; // type:object size:0x8 data:double diff --git a/configure.py b/configure.py index 4d0f9cc6..14f66e9a 100644 --- a/configure.py +++ b/configure.py @@ -405,14 +405,14 @@ config.libs = [ Object(Matching, "game/EnvelopeExec.c"), Object(Matching, "game/minigame_seq.c"), Object(Matching, "game/ovllist.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/esprite.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/code_8003FF68.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/ClusterExec.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/ShapeExec.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/wipe.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/window.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/messdata.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/card.c"), + Object(Matching, "game/esprite.c"), + Object(Matching, "game/code_8003FF68.c"), + Object(Matching, "game/ClusterExec.c"), + Object(Matching, "game/ShapeExec.c"), + Object(Matching, "game/wipe.c"), + Object(Matching, "game/window.c"), + Object(Matching, "game/messdata.c"), + Object(Matching, "game/card.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/armem.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/chrman.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/mapspace.c"), diff --git a/src/game/window.c b/src/game/window.c index 816514f3..5b26d4fd 100644 --- a/src/game/window.c +++ b/src/game/window.c @@ -1,15 +1,15 @@ #include "game/gamework_data.h" -#include "game/window.h" -#include "game/sprite.h" -#include "game/data.h" -#include "game/dvd.h" -#include "game/memory.h" -#include "game/process.h" -#include "game/pad.h" #include "game/armem.h" #include "game/audio.h" +#include "game/data.h" #include "game/disp.h" +#include "game/dvd.h" +#include "game/memory.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/window.h" #include "ext_math.h" #include "stdarg.h" @@ -75,169 +75,74 @@ static s16 comKeyIdx; static u8 LanguageNo; AnimData *fontAnim; -static spcFontTblData spcFontTbl[] = { - { &iconAnim, 0, 20, 24, 10, 12 }, - { &iconAnim, 1, 20, 24, 10, 12 }, - { &iconAnim, 2, 20, 24, 10, 12 }, - { &iconAnim, 3, 20, 24, 10, 12 }, - { &iconAnim, 4, 20, 24, 10, 12 }, - { &iconAnim, 5, 20, 24, 10, 12 }, - { &iconAnim, 6, 20, 24, 10, 12 }, - { &iconAnim, 7, 20, 24, 10, 12 }, - { &iconAnim, 8, 20, 24, 10, 12 }, - { &iconAnim, 9, 20, 24, 10, 12 }, - { &iconAnim, 10, 20, 24, 10, 12 }, - { &iconAnim, 11, 30, 24, 15, 12 }, - { &iconAnim, 12, 20, 24, 10, 12 }, - { &iconAnim, 13, 20, 24, 10, 12 }, - { &iconAnim, 14, 20, 24, 10, 12 }, - { &iconAnim, 15, 20, 24, 10, 12 }, - { &iconAnim, 16, 20, 24, 10, 12 }, - { &iconAnim, 17, 20, 24, 10, 12 }, - { &iconAnim, 18, 20, 24, 10, 12 }, - { &iconAnim, 19, 24, 24, 12, 12 }, - { &cursorAnim, 0, 40, 32, -15, 18 }, - { &cardAnimA, 0, 32, 32, 16, 16 }, - { &cardAnimB, 0, 32, 32, 16, 16 } -}; +static spcFontTblData spcFontTbl[] = { { &iconAnim, 0, 20, 24, 10, 12 }, { &iconAnim, 1, 20, 24, 10, 12 }, { &iconAnim, 2, 20, 24, 10, 12 }, + { &iconAnim, 3, 20, 24, 10, 12 }, { &iconAnim, 4, 20, 24, 10, 12 }, { &iconAnim, 5, 20, 24, 10, 12 }, { &iconAnim, 6, 20, 24, 10, 12 }, + { &iconAnim, 7, 20, 24, 10, 12 }, { &iconAnim, 8, 20, 24, 10, 12 }, { &iconAnim, 9, 20, 24, 10, 12 }, { &iconAnim, 10, 20, 24, 10, 12 }, + { &iconAnim, 11, 30, 24, 15, 12 }, { &iconAnim, 12, 20, 24, 10, 12 }, { &iconAnim, 13, 20, 24, 10, 12 }, { &iconAnim, 14, 20, 24, 10, 12 }, + { &iconAnim, 15, 20, 24, 10, 12 }, { &iconAnim, 16, 20, 24, 10, 12 }, { &iconAnim, 17, 20, 24, 10, 12 }, { &iconAnim, 18, 20, 24, 10, 12 }, + { &iconAnim, 19, 24, 24, 12, 12 }, { &cursorAnim, 0, 40, 32, -15, 18 }, { &cardAnimA, 0, 32, 32, 16, 16 }, { &cardAnimB, 0, 32, 32, 16, 16 } }; -#if VERSION_NTSC -u8 charWETbl[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 18, 20, 12, 12, 11, 14, - 8, 13, 12, 12, 12, 12, 12, 12, 12, 9, 11, 12, 11, 15, 12, 13, - 12, 13, 12, 12, 11, 12, 11, 15, 12, 13, 11, 12, 6, 8, 8, 12, - 20, 12, 11, 12, 11, 11, 9, 12, 11, 4, 8, 11, 4, 14, 11, 12, - 11, 12, 9, 11, 9, 11, 11, 15, 11, 11, 11, 4, 13, 8, 14, 12, - 9, 8, 8, 8, 20, 4, 12, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 12, 12, 12, 12, 12, 12, 12, 12, 8, 8, 12, 12, 12, 12, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 12, 12, 7, 14, 17, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 -}; +#if VERSION_ENG +u8 charWETbl[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 18, 20, 12, 12, 11, 14, 8, 13, 12, 12, 12, 12, 12, 12, 12, 9, 11, 12, 11, 15, 12, 13, 12, + 13, 12, 12, 11, 12, 11, 15, 12, 13, 11, 12, 6, 8, 8, 12, 20, 12, 11, 12, 11, 11, 9, 12, 11, 4, 8, 11, 4, 14, 11, 12, 11, 12, 9, 11, 9, 11, 11, 15, + 11, 11, 11, 4, 13, 8, 14, 12, 9, 8, 8, 8, 20, 4, 12, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 12, 12, 12, 12, 12, 12, 12, 12, 8, 8, 12, 12, 12, 12, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 12, 12, 7, 14, + 17, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }; +#elif VERSION_JAP +u8 charWETbl[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 13, 8, 11, 12, 13, 12, 11, 11, 12, 11, 18, 20, 12, 12, 11, 14, 8, 13, 12, 12, 12, 12, 12, 12, 12, 9, 11, 12, 11, 15, 12, 13, 12, + 13, 12, 12, 11, 12, 11, 15, 12, 13, 11, 12, 6, 8, 8, 12, 20, 12, 11, 12, 11, 11, 9, 12, 11, 4, 8, 11, 4, 14, 11, 12, 11, 12, 9, 11, 9, 11, 11, 15, + 11, 11, 11, 4, 13, 8, 14, 12, 9, 8, 8, 8, 20, 4, 12, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 12, 12, 12, 12, 12, 12, 12, 12, 8, 8, 12, 12, 12, 12, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 12, 12, 7, 14, + 17, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }; #else -u8 charWETbl[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 18, 20, 12, 12, 11, 14, - 8, 13, 12, 12, 12, 12, 12, 12, 12, 9, 11, 12, 11, 15, 12, 13, - 12, 13, 12, 12, 11, 12, 11, 15, 12, 13, 11, 12, 6, 8, 8, 12, - 20, 12, 11, 12, 11, 11, 9, 12, 11, 4, 8, 11, 4, 14, 11, 12, - 11, 12, 9, 11, 9, 11, 11, 15, 11, 11, 11, 4, 13, 8, 14, 12, - 9, 8, 8, 8, 20, 4, 12, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 12, 12, 12, 12, 12, 12, 12, 12, 8, 8, 12, 12, 12, 12, 12, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 13, 13, 6, 12, 18, 14, 14, 8, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 10, 10, 10, 12, 12, 12, 12, 12, 10, 10, 12, 12, 10, 10, 10, - 10, 7, 7, 12, 12, 10, 12, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 -}; +u8 charWETbl[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 18, 20, 12, 12, 11, 14, 8, 13, 12, 12, 12, 12, 12, 12, 12, 9, 11, 12, 11, 15, 12, 13, 12, + 13, 12, 12, 11, 12, 11, 15, 12, 13, 11, 12, 6, 8, 8, 12, 20, 12, 11, 12, 11, 11, 9, 12, 11, 4, 8, 11, 4, 14, 11, 12, 11, 12, 9, 11, 9, 11, 11, 15, + 11, 11, 11, 4, 13, 8, 14, 12, 9, 8, 8, 8, 20, 4, 12, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 12, 12, 12, 12, 12, 12, 12, 12, 8, 8, 12, 12, 12, 12, + 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 13, 13, 6, 12, + 18, 14, 14, 8, 20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 12, 12, 12, 12, 12, 10, 10, 12, 12, 10, 10, 10, 10, 7, 7, 12, 12, 10, 12, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }; #endif -u8 charWJTbl[] = { - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 0, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 -}; +u8 charWJTbl[] = { 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }; -static u8 ATTRIBUTE_ALIGN(32) charColPal[2*3*10] = { - 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, - 0xFF, 0x00, 0x00, - 0xFF, 0x00, 0xFF, - 0x00, 0xFF, 0x00, - 0x00, 0xFF, 0xFF, - 0xFF, 0xA0, 0x00, - 0xFF, 0xFF, 0xFF, - 0x60, 0x60, 0x60, - 0x90, 0x90, 0x90, - 0x00, 0x00, 0x00, - 0x60, 0xB0, 0xFF, - 0xFF, 0x40, 0x80, - 0xFF, 0x00, 0xFF, - 0x00, 0xFF, 0x00, - 0x00, 0xFF, 0xFF, - 0xFF, 0xFF, 0x00, - 0xFF, 0xFF, 0xFF, - 0x60, 0x60, 0x60, - 0x90, 0x90, 0x90 -}; +static u8 ATTRIBUTE_ALIGN(32) charColPal[2 * 3 * 10] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xA0, 0x00, 0xFF, 0xFF, 0xFF, 0x60, 0x60, 0x60, 0x90, 0x90, 0x90, 0x00, 0x00, 0x00, 0x60, 0xB0, 0xFF, 0xFF, 0x40, 0x80, + 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x60, 0x60, 0x60, 0x90, 0x90, 0x90 }; -static s32 frameFileTbl[] = { - WIN_FRAME1_ANM, - WIN_FRAME2_ANM, - WIN_FRAME3_ANM, - WIN_FRAME1_ANM -}; +static s32 frameFileTbl[] = { WIN_FRAME1_ANM, WIN_FRAME2_ANM, WIN_FRAME3_ANM, WIN_FRAME1_ANM }; #if VERSION_NTSC -static char *mesDataTbl[] = { - "mess/mini.dat", - "mess/board.dat", - "mess/mini_e.dat", - "mess/board_e.dat" -}; +static char *mesDataTbl[] = { "mess/mini.dat", "mess/board.dat", "mess/mini_e.dat", "mess/board_e.dat" }; #else -static char *mesDataTbl[] = { - "mess/mini.dat", - "mess/board.dat", - "mess/mini_e.dat", - "mess/board_e.dat", - "mess/mini_g.dat", - "mess/board_g.dat", - "mess/mini_f.dat", - "mess/board_f.dat", - "mess/mini_i.dat", - "mess/board_i.dat", - "mess/mini_s.dat", - "mess/board_s.dat" -}; +static char *mesDataTbl[] = { "mess/mini.dat", "mess/board.dat", "mess/mini_e.dat", "mess/board_e.dat", "mess/mini_g.dat", "mess/board_g.dat", + "mess/mini_f.dat", "mess/board_f.dat", "mess/mini_i.dat", "mess/board_i.dat", "mess/mini_s.dat", "mess/board_s.dat" }; #endif -static s32 winVoiceTbl[] = { - 0x37, 0x36, 0x38, 0x44, - 0x43, 0x45, 0x41, 0x40, - 0x42, 0x4C, 0x4B, 0x4D, - 0x47, 0x46, 0x48, 0x3E, - 0x3E, 0x3F, 0x49, 0x49, - 0x49 -}; +static s32 winVoiceTbl[] + = { 0x37, 0x36, 0x38, 0x44, 0x43, 0x45, 0x41, 0x40, 0x42, 0x4C, 0x4B, 0x4D, 0x47, 0x46, 0x48, 0x3E, 0x3E, 0x3F, 0x49, 0x49, 0x49 }; static s16 winPrio = 1000; -void HuWindowInit(void) { +void HuWindowInit(void) +{ s16 i; winAMemP = HuAR_DVDtoARAM(DATADIR_WIN); @@ -248,7 +153,8 @@ void HuWindowInit(void) { winPrio = 1000; } -void HuWinInit(s32 mess_data_no) { +void HuWinInit(s32 mess_data_no) +{ s16 i; void *anim_data; @@ -266,7 +172,8 @@ void HuWinInit(s32 mess_data_no) { if (!fontAnim) { if (LanguageNo == 0) { anim_data = HuDataReadNum(WIN_FONTJ_ANM, MEMORY_DEFAULT_NUM); - } else { + } + else { anim_data = HuDataReadNum(WIN_FONTE_ANM, MEMORY_DEFAULT_NUM); } fontAnim = HuSprAnimRead(anim_data); @@ -297,7 +204,8 @@ void HuWinInit(s32 mess_data_no) { } } -s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame) { +s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame) +{ AnimData *bg_anim; WindowData *window; HuSprite *sprite_ptr; @@ -324,12 +232,14 @@ s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame) { h = (h + 15) & 0xFFF0; if (x == -10000.0f) { window->pos_x = (HU_DISP_WIDTHF - w) / 2; - } else { + } + else { window->pos_x = x; } if (y == -10000.0f) { window->pos_y = (HU_DISP_HEIGHTF - h) / 2; - } else { + } + else { window->pos_y = y; } HuSprGrpCenterSet(group, w / 2, h / 2); @@ -347,7 +257,11 @@ s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame) { sprite_ptr->work[0] = window_id; HuSprGrpMemberSet(group, 1, sprite); window->num_chars = 0; +#if VERSION_JAP + window->max_chars = (w / 20) * (h / 24) * 3; +#else window->max_chars = (w / 8) * (h / 24) * 4; +#endif window->char_data = HuMemDirectMalloc(HEAP_SYSTEM, window->max_chars * sizeof(WinChar)); window->attr = 0; window->stat = 0; @@ -376,10 +290,13 @@ s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame) { window->scissor_h = 0x1E0; window->tab_w = 24; window->push_key = 0x300; +#if !VERSION_JAP window->key_auto = 0; +#endif if (frame == 0 || frame == 2) { memcpy(&window->mess_pal, &charColPal[30], 30); - } else { + } + else { memcpy(&window->mess_pal, charColPal, 30); window->mess_shadow_color = 9; } @@ -400,7 +317,8 @@ s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame) { return window_id; } -void HuWinKill(s16 window) { +void HuWinKill(s16 window) +{ WindowData *window_ptr = &winData[window]; s16 i; @@ -416,7 +334,8 @@ void HuWinKill(s16 window) { } } -void HuWinAllKill(void) { +void HuWinAllKill(void) +{ s16 i; for (i = 0; i < 32; i++) { @@ -455,7 +374,8 @@ void HuWinAllKill(void) { HuDataDirClose(DATADIR_WIN); } -static void MesDispFunc(HuSprite *sprite) { +static void MesDispFunc(HuSprite *sprite) +{ WindowData *window = &winData[sprite->work[0]]; HuSprGrp *group; float uv_maxx; @@ -505,12 +425,16 @@ static void MesDispFunc(HuSprite *sprite) { MTXConcat(*sprite->group_mtx, modelview, modelview); GXLoadPosMtxImm(modelview, 0); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - HuSprTexLoad(fontAnim, 0, 0, GX_CLAMP, GX_CLAMP, GX_LINEAR); + HuSprTexLoad(fontAnim, 0, 0, GX_CLAMP, GX_CLAMP, VERSION_JAP ? GX_NEAR : GX_LINEAR); GXBegin(GX_QUADS, GX_VTXFMT0, window->num_chars * 4); - char_uv_h = (LanguageNo == 0) ? (24.0f/408.0f) : (24.0f/312.0f); + char_uv_h = (LanguageNo == 0) ? (24.0f / 408.0f) : (24.0f / 312.0f); for (i = 0; i < window->num_chars; i++) { char_w = fontWidthP[window->char_data[i].character + 48]; - uv_minx = (20.0f/320.0f) * (window->char_data[i].character % 16); +#if VERSION_JAP + uv_minx = 0.003125 + (20.0f / 320.0f) * (window->char_data[i].character % 16); +#else + uv_minx = (20.0f / 320.0f) * (window->char_data[i].character % 16); +#endif uv_miny = char_uv_h * (window->char_data[i].character / 16); uv_maxx = uv_minx + (char_w / 320.0); uv_maxy = uv_miny + char_uv_h; @@ -519,7 +443,8 @@ static void MesDispFunc(HuSprite *sprite) { color = window->char_data[i].color; if (window->speed != 0) { alpha = window->char_data[i].fade * 8; - } else { + } + else { alpha = 255; } alpha = 255; @@ -544,7 +469,8 @@ static void MesDispFunc(HuSprite *sprite) { } } -static u8 winBGMake(AnimData *bg, AnimData *frame) { +static u8 winBGMake(AnimData *bg, AnimData *frame) +{ AnimBmpData *bmp; s16 block_h; s16 h; @@ -565,29 +491,37 @@ static u8 winBGMake(AnimData *bg, AnimData *frame) { for (j = 0; j < w; j++) { if (j == 0) { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0; - } else if (j == w-1) { + } + else if (j == w - 1) { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0x10; - } else { + } + else { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0x70; } } - } else if (i == h-1) { + } + else if (i == h - 1) { for (j = 0; j < w; j++) { if (j == 0) { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0x20; - } else if (j == w - 1) { + } + else if (j == w - 1) { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0x30; - } else { + } + else { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0x60; } } - } else { + } + else { for (j = 0; j < w; j++) { if (j == 0) { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0x40; - } else if (j == w-1) { + } + else if (j == w - 1) { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0x50; - } else { + } + else { bmp_data[(j & 7) + ((j >> 3) << 5) + (i >> 2) * (block_w * 4) + (i & 3) * 8] = 0x80; } } @@ -606,7 +540,8 @@ static u8 winBGMake(AnimData *bg, AnimData *frame) { return w; } -static void HuWinProc(void) { +static void HuWinProc(void) +{ WindowData *window; s16 i; @@ -638,23 +573,25 @@ static void HuWinProc(void) { } } -static inline void charEntry(s16 window, s16 x, s16 y, s16 char_idx, s16 color) { +static inline void charEntry(s16 window, s16 x, s16 y, s16 char_idx, s16 color) +{ WindowData *window_ptr = &winData[window]; WinChar *win_char = window_ptr->char_data; win_char = &window_ptr->char_data[window_ptr->num_chars]; win_char->x = x - window_ptr->w / 2; win_char->y = y - window_ptr->h / 2; - win_char->character = char_idx-48; + win_char->character = char_idx - 48; win_char->color = color; win_char->fade = 0; window_ptr->num_chars++; if (window_ptr->num_chars >= window_ptr->max_chars) { - window_ptr->num_chars = window_ptr->max_chars-1; + window_ptr->num_chars = window_ptr->max_chars - 1; } } -static void HuWinDrawMes(s16 window) { +static void HuWinDrawMes(s16 window) +{ WindowData *window_ptr = &winData[window]; HuSprGrp *group = &HuSprGrpData[window_ptr->group]; s16 i; @@ -668,12 +605,16 @@ static void HuWinDrawMes(s16 window) { s16 color; s16 mess_w; - window_ptr->mess_time += 3; + window_ptr->mess_time += VERSION_JAP ? 1 : 3; while (window_ptr->mess_time >= window_ptr->speed || (window_ptr->attr & 0x2000)) { +#if VERSION_JAP + window_ptr->mess_time = 0; +#else window_ptr->mess_time -= window_ptr->speed; - if(window_ptr->mess_time < 0) { + if (window_ptr->mess_time < 0) { window_ptr->mess_time = 0; } +#endif char_w = window_ptr->spacing_x + fontWidthP[window_ptr->mess[0]]; mess_end = 0; if (window_ptr->mess[0] != 0 && (window_ptr->attr & 4)) { @@ -684,7 +625,7 @@ static void HuWinDrawMes(s16 window) { switch (window_ptr->mess[0]) { case 0: if (window_ptr->mess_stackptr == 0) { - for (i=0; i<16; i++) { + for (i = 0; i < 16; i++) { window_ptr->choice_disable[i] = 0; } window_ptr->stat = 0; @@ -693,9 +634,11 @@ static void HuWinDrawMes(s16 window) { } window_ptr->mess_stackptr--; window_ptr->mess = window_ptr->mess_stack[window_ptr->mess_stackptr]; +#if !VERSION_JAP window_ptr->mess_time = 0; +#endif break; - + case 31: window_ptr->mess++; insert_mess = window_ptr->mess[0] - 1; @@ -708,30 +651,31 @@ static void HuWinDrawMes(s16 window) { } } break; - + case 11: window_ptr->attr &= ~0x2200; _HuWinHomeClear(window_ptr); if (window_ptr->attr & 0x800) { mess_w = GetMesMaxSizeSub2(window_ptr, window_ptr->mess + 1); window_ptr->mess_x = (window_ptr->mess_rect_w - mess_w) / 2; - } else if (window_ptr->attr & 0x1000) { + } + else if (window_ptr->attr & 0x1000) { mess_w = GetMesMaxSizeSub2(window_ptr, window_ptr->mess + 1); window_ptr->mess_x = window_ptr->mess_rect_w - mess_w; } break; - + case 30: window_ptr->mess++; if (!(window_ptr->attr & 0x80)) { window_ptr->mess_color = window_ptr->mess[0] - 1; } break; - + case 29: window_ptr->attr ^= 1; break; - + case 10: window_ptr->attr &= ~0x2020; if (window_ptr->attr & 0x200) { @@ -745,30 +689,31 @@ static void HuWinDrawMes(s16 window) { if (window_ptr->attr & 0x800) { mess_w = GetMesMaxSizeSub2(window_ptr, window_ptr->mess + 1); window_ptr->mess_x = (window_ptr->mess_rect_w - mess_w) / 2; - } else if (window_ptr->attr & 0x1000) { + } + else if (window_ptr->attr & 0x1000) { mess_w = GetMesMaxSizeSub2(window_ptr, window_ptr->mess + 1); window_ptr->mess_x = window_ptr->mess_rect_w - mess_w; } break; } char_w = fontWidthP[16] + window_ptr->spacing_x; - /* fallthrough */ - case 16: - case 32: - window_ptr->attr |= 0x200; - if (window_ptr->mess_x + char_w > window_ptr->mess_rect_w) { - if (HuWinCR(window_ptr) != 0) { - window_ptr->mess++; - HuWinKeyWaitEntry(window); - window_ptr->attr |= 2; - return; + /* fallthrough */ + case 16: + case 32: + window_ptr->attr |= 0x200; + if (window_ptr->mess_x + char_w > window_ptr->mess_rect_w) { + if (HuWinCR(window_ptr) != 0) { + window_ptr->mess++; + HuWinKeyWaitEntry(window); + window_ptr->attr |= 2; + return; + } + break; } - break; - } - window_ptr->mess_x += char_w; + window_ptr->mess_x += char_w; } break; - + case 14: window_ptr->attr |= 0x200; window_ptr->mess++; @@ -779,29 +724,31 @@ static void HuWinDrawMes(s16 window) { window_ptr->attr |= 2; return; } - HuWinSpcFontEntry(window_ptr, window_ptr->mess[0] - 1, window_ptr->mess_rect_x + window_ptr->mess_x, window_ptr->mess_rect_y + window_ptr->mess_y); + HuWinSpcFontEntry(window_ptr, window_ptr->mess[0] - 1, window_ptr->mess_rect_x + window_ptr->mess_x, + window_ptr->mess_rect_y + window_ptr->mess_y); window_ptr->mess_x += tab_w; mess_end = 1; break; - + case 28: window_ptr->mess++; HuAudFXPlay(winVoiceTbl[window_ptr->mess[0] - 1]); break; - + case 255: window_ptr->mess++; HuWinKeyWaitEntry(window); window_ptr->attr |= 4; window_ptr->attr &= ~0x200; return; - + case 15: window_ptr->attr |= 0x2000; if (window_ptr->choice_disable[window_ptr->num_choices] != 0) { window_ptr->attr |= 0x20; window_ptr->choice_data[window_ptr->num_choices].stat |= 1; - } else { + } + else { window_ptr->choice_data[window_ptr->num_choices].stat &= ~1; } @@ -809,7 +756,7 @@ static void HuWinDrawMes(s16 window) { window_ptr->choice_data[window_ptr->num_choices].y = window_ptr->mess_y + window_ptr->mess_rect_x; window_ptr->num_choices++; break; - + case 12: window_ptr->attr |= 0x200; tab_w = window_ptr->tab_w * ((window_ptr->mess_x + window_ptr->tab_w) / window_ptr->tab_w) - window_ptr->mess_x; @@ -820,7 +767,8 @@ static void HuWinDrawMes(s16 window) { window_ptr->attr |= 2; return; } - } else { + } + else { window_ptr->mess_x += tab_w; } break; @@ -839,41 +787,48 @@ static void HuWinDrawMes(s16 window) { } c = window_ptr->mess[0]; window_ptr->attr |= 0x200; - #if VERSION_NTSC +#if VERSION_NTSC if (window_ptr->mess[1] == 128) { if (c >= 150 && c <= 164) { - c = c+106; - } else if (c >= 170 && c <= 174) { - c = c+101; - } else if (c >= 214 && c <= 228) { - c = c+67; - } else if (c >= 234 && c <= 238) { - c = c+62; + c = c + 106; } - window_ptr->mess++; - } else if (window_ptr->mess[1] == 129) { - if (c >= 170 && c <= 174) { - c = c+106; - } else if (c >= 234 && c <= 238) { - c = c+67; + else if (c >= 170 && c <= 174) { + c = c + 101; + } + else if (c >= 214 && c <= 228) { + c = c + 67; + } + else if (c >= 234 && c <= 238) { + c = c + 62; } window_ptr->mess++; } - #endif + else if (window_ptr->mess[1] == 129) { + if (c >= 170 && c <= 174) { + c = c + 106; + } + else if (c >= 234 && c <= 238) { + c = c + 67; + } + window_ptr->mess++; + } +#endif color = (window_ptr->attr & 0x20) ? 8 : window_ptr->mess_color; if (window_ptr->attr & 1) { shadow_color = 0; if (window_ptr->mess_color == 0 || window_ptr->mess_color == 1) { shadow_color = 8; } - charEntry(window, window_ptr->mess_rect_x+window_ptr->mess_x+2, window_ptr->mess_rect_y+window_ptr->mess_y, c, shadow_color); - charEntry(window, window_ptr->mess_rect_x+window_ptr->mess_x-2, window_ptr->mess_rect_y+window_ptr->mess_y, c, shadow_color); - charEntry(window, window_ptr->mess_rect_x+window_ptr->mess_x, window_ptr->mess_rect_y+window_ptr->mess_y+2, c, shadow_color); - charEntry(window, window_ptr->mess_rect_x+window_ptr->mess_x, window_ptr->mess_rect_y+window_ptr->mess_y-2, c, shadow_color); - charEntry(window, window_ptr->mess_rect_x+window_ptr->mess_x, window_ptr->mess_rect_y+window_ptr->mess_y, c, color); - } else { - charEntry(window, window_ptr->mess_rect_x+window_ptr->mess_x+2, window_ptr->mess_rect_y+window_ptr->mess_y+2, c, window_ptr->mess_shadow_color); - charEntry(window, window_ptr->mess_rect_x+window_ptr->mess_x, window_ptr->mess_rect_y+window_ptr->mess_y, c, color); + charEntry(window, window_ptr->mess_rect_x + window_ptr->mess_x + 2, window_ptr->mess_rect_y + window_ptr->mess_y, c, shadow_color); + charEntry(window, window_ptr->mess_rect_x + window_ptr->mess_x - 2, window_ptr->mess_rect_y + window_ptr->mess_y, c, shadow_color); + charEntry(window, window_ptr->mess_rect_x + window_ptr->mess_x, window_ptr->mess_rect_y + window_ptr->mess_y + 2, c, shadow_color); + charEntry(window, window_ptr->mess_rect_x + window_ptr->mess_x, window_ptr->mess_rect_y + window_ptr->mess_y - 2, c, shadow_color); + charEntry(window, window_ptr->mess_rect_x + window_ptr->mess_x, window_ptr->mess_rect_y + window_ptr->mess_y, c, color); + } + else { + charEntry(window, window_ptr->mess_rect_x + window_ptr->mess_x + 2, window_ptr->mess_rect_y + window_ptr->mess_y + 2, c, + window_ptr->mess_shadow_color); + charEntry(window, window_ptr->mess_rect_x + window_ptr->mess_x, window_ptr->mess_rect_y + window_ptr->mess_y, c, color); } window_ptr->mess_x += char_w; window_ptr->mess++; @@ -881,19 +836,22 @@ static void HuWinDrawMes(s16 window) { } } -static s32 HuWinCR(WindowData *window) { +static s32 HuWinCR(WindowData *window) +{ if (window->mess_y + 48 > window->mess_rect_h) { window->mess_y = 0; window->mess_x = 0; return 1; - } else { + } + else { window->mess_y += window->spacing_y + 24; window->mess_x = 0; return 0; } } -static void _HuWinHomeClear(WindowData *window) { +static void _HuWinHomeClear(WindowData *window) +{ s16 i; window->num_chars = 0; @@ -901,29 +859,33 @@ static void _HuWinHomeClear(WindowData *window) { window->num_choices = 0; HuWinSpcFontClear(window); window->attr &= ~0x2020; - for (i=0; i<16; i++) { + for (i = 0; i < 16; i++) { window->choice_data[i].stat = 0; } } -void HuWinHomeClear(s16 window) { +void HuWinHomeClear(s16 window) +{ WindowData *window_ptr = &winData[window]; _HuWinHomeClear(window_ptr); } -void HuWinKeyWaitEntry(s16 window) { +void HuWinKeyWaitEntry(s16 window) +{ WindowData *window_ptr = &winData[window]; if (window_ptr->attr & 0x400) { window_ptr->stat = 0; - } else { + } + else { window_ptr->stat = 2; window_ptr->advance_sprite = HuWinSpcFontEntry(window_ptr, 19, window_ptr->mess_rect_w - 20, window_ptr->mess_rect_h - 24); } } -static void HuWinKeyWait(s16 window) { +static void HuWinKeyWait(s16 window) +{ WindowData *window_ptr = &winData[window]; if (window_ptr->push_key & HuWinActivePadGet(window_ptr)) { @@ -938,16 +900,17 @@ static void HuWinKeyWait(s16 window) { } } -static s16 HuWinSpcFontEntry(WindowData *window, s16 entry, s16 x, s16 y) { +static s16 HuWinSpcFontEntry(WindowData *window, s16 entry, s16 x, s16 y) +{ HuSprGrp *group = &HuSprGrpData[window->group]; s16 sprite; s16 i; AnimData *anim; - for (i=10; i<30; i++) { + for (i = 10; i < 30; i++) { if (window->sprite_id[i] == -1) { anim = *spcFontTbl[entry].anim; - window->sprite_id[i] = sprite = HuSprCreate(anim, window->prio-1, spcFontTbl[entry].bank); + window->sprite_id[i] = sprite = HuSprCreate(anim, window->prio - 1, spcFontTbl[entry].bank); HuSprGrpMemberSet(window->group, i, sprite); HuSprPosSet(window->group, i, x + spcFontTbl[entry].center_x - window->w / 2, y + spcFontTbl[entry].center_y - window->h / 2); break; @@ -956,16 +919,18 @@ static s16 HuWinSpcFontEntry(WindowData *window, s16 entry, s16 x, s16 y) { return i; } -static void HuWinSpcFontPosSet(WindowData *window, s16 index, s16 x, s16 y) { +static void HuWinSpcFontPosSet(WindowData *window, s16 index, s16 x, s16 y) +{ HuSprGrp *group = &HuSprGrpData[window->group]; HuSprPosSet(window->group, index, x - window->w / 2, y - window->h / 2); } -static void HuWinSpcFontClear(WindowData *window) { +static void HuWinSpcFontClear(WindowData *window) +{ s16 i; - for (i=10; i<30; i++) { + for (i = 10; i < 30; i++) { if (window->sprite_id[i] != -1) { HuSprGrpMemberKill(window->group, i); window->sprite_id[i] = -1; @@ -973,7 +938,8 @@ static void HuWinSpcFontClear(WindowData *window) { } } -static void HuWinChoice(WindowData *window) { +static void HuWinChoice(WindowData *window) +{ WinChoice *choice; float choice_dist; float min_choice_dist_x; @@ -1019,7 +985,8 @@ static void HuWinChoice(WindowData *window) { } if (i != choice_max) { for (i = 0, choice = window->choice_data; i < choice_max; i++, choice++) { - if (i != choice_curr && !(choice->stat & 1) && choice->y == choice_curr_y && choice->x < choice_curr_x && choice_dist > choice_curr_x - choice->x) { + if (i != choice_curr && !(choice->stat & 1) && choice->y == choice_curr_y && choice->x < choice_curr_x + && choice_dist > choice_curr_x - choice->x) { choice_dist = choice_curr_x - choice->x; choice_next = i; } @@ -1050,7 +1017,8 @@ static void HuWinChoice(WindowData *window) { } } } - } else { + } + else { choice_y = -1000; for (i = 0, choice = window->choice_data; i < choice_max; i++, choice++) { if (i != choice_curr && !(choice->stat & 1) && choice->y > choice_y) { @@ -1080,7 +1048,8 @@ static void HuWinChoice(WindowData *window) { } if (i != choice_max) { for (i = 0, choice = window->choice_data; i < choice_max; i++, choice++) { - if (i != choice_curr && !(choice->stat & 1) && choice->y == choice_curr_y && choice->x > choice_curr_x && choice_dist > choice->x - choice_curr_x) { + if (i != choice_curr && !(choice->stat & 1) && choice->y == choice_curr_y && choice->x > choice_curr_x + && choice_dist > choice->x - choice_curr_x) { choice_dist = choice->x - choice_curr_x; choice_next = i; } @@ -1111,7 +1080,8 @@ static void HuWinChoice(WindowData *window) { } } } - } else { + } + else { choice_y = 1000; for (i = 0, choice = window->choice_data; i < choice_max; i++, choice++) { if (i != choice_curr && !(choice->stat & 1) && choice->y < choice_y) { @@ -1137,25 +1107,33 @@ static void HuWinChoice(WindowData *window) { if (window->choice != choice_next) { window->choice = choice_next; HuAudFXPlay(0); - } else if (key & (window->key_auto | PAD_BUTTON_A)) { + } + else if (key & (VERSION_JAP ? PAD_BUTTON_A : (window->key_auto | PAD_BUTTON_A))) { HuAudFXPlay(2); window->key_down = key; window->stat = 0; - } else if ((key & PAD_BUTTON_B) && !(window->attr & 0x10)) { + } + else if ((key & PAD_BUTTON_B) && !(window->attr & 0x10)) { HuAudFXPlay(3); +#if !VERSION_JAP window->key_down = key; +#else + (void)key; // hack to match Japanese version +#endif window->choice = -1; window->stat = 0; } - HuWinSpcFontPosSet(window, window->cursor_sprite, window->choice_data[choice_next].x + spcFontTbl[20].center_x, window->choice_data[choice_next].y + spcFontTbl[20].center_y); + HuWinSpcFontPosSet(window, window->cursor_sprite, window->choice_data[choice_next].x + spcFontTbl[20].center_x, + window->choice_data[choice_next].y + spcFontTbl[20].center_y); } -u32 HuWinActivePadGet(WindowData *window) { +u32 HuWinActivePadGet(WindowData *window) +{ s32 win_key; u32 i; win_key = 0; - for (i=0; i<4; i++) { + for (i = 0; i < 4; i++) { if (window->active_pad & (1 << i)) { win_key |= winKey[i]; } @@ -1163,7 +1141,8 @@ u32 HuWinActivePadGet(WindowData *window) { return win_key; } -u32 HuWinActiveKeyGetX(WindowData *window) { +u32 HuWinActiveKeyGetX(WindowData *window) +{ u32 button; u32 i; u32 j; @@ -1173,7 +1152,7 @@ u32 HuWinActiveKeyGetX(WindowData *window) { active_pad = (window->active_pad & ~window->player_disable); for (i = 0; i < 4; i++) { if (active_pad & (1 << i)) { - for (j=0; j<4; j++) { + for (j = 0; j < 4; j++) { if (i == GWPlayerCfg[j].pad_idx) { break; } @@ -1186,7 +1165,8 @@ u32 HuWinActiveKeyGetX(WindowData *window) { return button; } -void HuWinPosSet(s16 window, float x, float y) { +void HuWinPosSet(s16 window, float x, float y) +{ WindowData *window_ptr = &winData[window]; window_ptr->pos_x = x; @@ -1194,7 +1174,8 @@ void HuWinPosSet(s16 window, float x, float y) { HuSprGrpPosSet(window_ptr->group, x, y); } -void HuWinScaleSet(s16 window, float x, float y) { +void HuWinScaleSet(s16 window, float x, float y) +{ WindowData *window_ptr = &winData[window]; window_ptr->scale_x = x; @@ -1202,38 +1183,43 @@ void HuWinScaleSet(s16 window, float x, float y) { HuSprGrpScaleSet(window_ptr->group, x, y); } -void HuWinZRotSet(s16 window, float z_rot) { +void HuWinZRotSet(s16 window, float z_rot) +{ WindowData *window_ptr = &winData[window]; window_ptr->z_rot = z_rot; HuSprGrpZRotSet(window_ptr->group, z_rot); } -void HuWinCenterPosSet(s16 window, float x, float y) { +void HuWinCenterPosSet(s16 window, float x, float y) +{ WindowData *window_ptr = &winData[window]; HuSprGrpCenterSet(window_ptr->group, window_ptr->w / 2.0f - x, window_ptr->h / 2.0f - y); } -void HuWinDrawNoSet(s16 window, s16 draw_no) { +void HuWinDrawNoSet(s16 window, s16 draw_no) +{ WindowData *window_ptr = &winData[window]; HuSprGrpDrawNoSet(window_ptr->group, draw_no); } -void HuWinScissorSet(s16 window, s16 x, s16 y, s16 w, s16 h) { +void HuWinScissorSet(s16 window, s16 x, s16 y, s16 w, s16 h) +{ WindowData *window_ptr = &winData[window]; HuSprGrpScissorSet(window_ptr->group, x, y, w, h); } -void HuWinPriSet(s16 window, s16 prio) { +void HuWinPriSet(s16 window, s16 prio) +{ WindowData *window_ptr = &winData[window]; s16 i; HuSprPriSet(window_ptr->group, 0, prio); HuSprPriSet(window_ptr->group, 1, prio); - for (i=2; i<30; i++) { + for (i = 2; i < 30; i++) { if (window_ptr->sprite_id[i] != -1) { HuSprPriSet(window_ptr->group, i, prio - 1); } @@ -1241,32 +1227,37 @@ void HuWinPriSet(s16 window, s16 prio) { window_ptr->prio = prio; } -void HuWinAttrSet(s16 window, u32 attr) { +void HuWinAttrSet(s16 window, u32 attr) +{ WindowData *window_ptr = &winData[window]; window_ptr->attr |= attr; } -void HuWinAttrReset(s16 window, u32 attr) { +void HuWinAttrReset(s16 window, u32 attr) +{ WindowData *window_ptr = &winData[window]; window_ptr->attr &= ~attr; } -s16 HuWinStatGet(s16 window) { +s16 HuWinStatGet(s16 window) +{ WindowData *window_ptr = &winData[window]; return window_ptr->stat; } -void HuWinMesColSet(s16 window, u8 color) { +void HuWinMesColSet(s16 window, u8 color) +{ WindowData *window_ptr = &winData[window]; window_ptr->mess_color = color; window_ptr->attr |= 0x80; } -void HuWinMesPalSet(s16 window, u8 index, u8 r, u8 g, u8 b) { +void HuWinMesPalSet(s16 window, u8 index, u8 r, u8 g, u8 b) +{ WindowData *window_ptr = &winData[window]; window_ptr->mess_pal[index][0] = r; @@ -1274,48 +1265,54 @@ void HuWinMesPalSet(s16 window, u8 index, u8 r, u8 g, u8 b) { window_ptr->mess_pal[index][2] = b; } -void HuWinBGTPLvlSet(s16 window, float tp_level) { +void HuWinBGTPLvlSet(s16 window, float tp_level) +{ WindowData *window_ptr = &winData[window]; HuSprTPLvlSet(window_ptr->group, 0, tp_level); } -void HuWinBGColSet(s16 window, GXColor *bg_color) { +void HuWinBGColSet(s16 window, GXColor *bg_color) +{ WindowData *window_ptr = &winData[window]; HuSprColorSet(window_ptr->group, 0, bg_color->r, bg_color->g, bg_color->b); } -void HuWinMesSpeedSet(s16 window, s16 speed) { +void HuWinMesSpeedSet(s16 window, s16 speed) +{ WindowData *window_ptr = &winData[window]; window_ptr->speed = speed; } -void HuWinMesRead(s32 mess_data_no) { +void HuWinMesRead(s32 mess_data_no) +{ void *dvd_mess; char *mess_path; - if(messDataPtr) { + if (messDataPtr) { HuMemDirectFree(messDataPtr); } messDataNo = mess_data_no; - #if VERSION_NTSC +#if VERSION_NTSC if (LanguageNo == 0) { mess_path = mesDataTbl[messDataNo]; - } else { + } + else { mess_path = mesDataTbl[messDataNo + 2]; } - #else - mess_path = mesDataTbl[messDataNo+(LanguageNo*2)]; - #endif +#else + mess_path = mesDataTbl[messDataNo + (LanguageNo * 2)]; +#endif dvd_mess = HuDvdDataRead(mess_path); messDataPtr = HuMemDirectMalloc(HEAP_SYSTEM, DirDataSize); memcpy(messDataPtr, dvd_mess, DirDataSize); HuMemDirectFree(dvd_mess); } -void HuWinMesSet(s16 window, u32 mess) { +void HuWinMesSet(s16 window, u32 mess) +{ WindowData *window_ptr = &winData[window]; window_ptr->stat = 1; @@ -1327,19 +1324,25 @@ void HuWinMesSet(s16 window, u32 mess) { window_ptr->mess = MessData_MesPtrGet(messDataPtr, mess); if (window_ptr->mess == 0) { OSReport("Error: No Message data\n"); +#if !VERSION_JAP HuWinMesSet(window, 0); return; +#endif } - } else { + } + else { window_ptr->mess = (u8 *)mess; } if (!(window_ptr->attr & 0x80)) { window_ptr->mess_color = 7; +#if !VERSION_JAP window_ptr->mess_time = 0; +#endif } } -void HuWinInsertMesSet(s16 window, u32 mess, s16 index) { +void HuWinInsertMesSet(s16 window, u32 mess, s16 index) +{ WindowData *window_ptr = &winData[window]; if (!(mess & 0x80000000)) { @@ -1351,12 +1354,14 @@ void HuWinInsertMesSet(s16 window, u32 mess, s16 index) { if (window_ptr->insert_mess[index] == 0) { OSReport("Error: No Message data\n"); } - } else { + } + else { window_ptr->insert_mess[index] = (u8 *)mess; } } -s16 HuWinChoiceGet(s16 window, s16 start_choice) { +s16 HuWinChoiceGet(s16 window, s16 start_choice) +{ WindowData *window_ptr = &winData[window]; window_ptr->attr |= 0x40; @@ -1387,50 +1392,57 @@ s16 HuWinChoiceGet(s16 window, s16 start_choice) { return window_ptr->choice; } -s16 HuWinChoiceNumGet(s16 window) { +s16 HuWinChoiceNumGet(s16 window) +{ WindowData *window_ptr = &winData[window]; return window_ptr->num_choices; } -void HuWinChoiceDisable(s16 window, s16 choice) { +void HuWinChoiceDisable(s16 window, s16 choice) +{ WindowData *window_ptr = &winData[window]; window_ptr->choice_disable[choice] = 1; } -s16 HuWinChoiceNowGet(s16 window) { +s16 HuWinChoiceNowGet(s16 window) +{ WindowData *window_ptr = &winData[window]; if (window_ptr->stat == 3) { return window_ptr->choice; - } else { + } + else { return -1; } } -void HuWinMesWait(s16 window) { +void HuWinMesWait(s16 window) +{ WindowData *window_ptr = &winData[window]; - while(window_ptr->stat != 0) { + while (window_ptr->stat != 0) { HuPrcVSleep(); } } -s16 HuWinAnimSet(s16 window, AnimData *anim, s16 bank, float x, float y) { +s16 HuWinAnimSet(s16 window, AnimData *anim, s16 bank, float x, float y) +{ WindowData *window_ptr = &winData[window]; s16 sprite; - sprite = HuSprCreate(anim, window_ptr->prio-1, bank); + sprite = HuSprCreate(anim, window_ptr->prio - 1, bank); return HuWinSprSet(window, sprite, x, y); } -s16 HuWinSprSet(s16 window, s16 sprite, float x, float y) { +s16 HuWinSprSet(s16 window, s16 sprite, float x, float y) +{ WindowData *window_ptr = &winData[window]; HuSprGrp *group = &HuSprGrpData[window_ptr->group]; s16 i; - for (i=2; i<=9; i++) { + for (i = 2; i <= 9; i++) { if (window_ptr->sprite_id[i] == -1) { window_ptr->sprite_id[i] = sprite; HuSprGrpMemberSet(window_ptr->group, i, sprite); @@ -1441,38 +1453,43 @@ s16 HuWinSprSet(s16 window, s16 sprite, float x, float y) { return i; } -void HuWinSprPosSet(s16 window, s16 index, float x, float y) { +void HuWinSprPosSet(s16 window, s16 index, float x, float y) +{ WindowData *window_ptr = &winData[window]; HuSprGrp *group = &HuSprGrpData[window_ptr->group]; HuSprPosSet(window_ptr->group, index, x - group->center_x, y - group->center_y); } -void HuWinSprPriSet(s16 window, s16 index, s16 prio) { +void HuWinSprPriSet(s16 window, s16 index, s16 prio) +{ WindowData *window_ptr = &winData[window]; HuSprGrp *group = &HuSprGrpData[window_ptr->group]; HuSprPriSet(window_ptr->group, index, prio); } -s16 HuWinSprIDGet(s16 window, s16 index) { +s16 HuWinSprIDGet(s16 window, s16 index) +{ WindowData *window_ptr = &winData[window]; return window_ptr->sprite_id[index]; } -void HuWinSprKill(s16 window, s16 index) { +void HuWinSprKill(s16 window, s16 index) +{ WindowData *window_ptr = &winData[window]; HuSprGrpMemberKill(window_ptr->group, index); window_ptr->sprite_id[index] = -1; } -void HuWinDispOff(s16 window) { +void HuWinDispOff(s16 window) +{ WindowData *window_ptr = &winData[window]; s16 i; - for(i=0; i<30; i++) { + for (i = 0; i < 30; i++) { if (window_ptr->sprite_id[i] != -1) { HuSprAttrSet(window_ptr->group, i, HUSPR_ATTR_DISPOFF); } @@ -1480,11 +1497,12 @@ void HuWinDispOff(s16 window) { window_ptr->attr |= 8; } -void HuWinDispOn(s16 window) { +void HuWinDispOn(s16 window) +{ WindowData *window_ptr = &winData[window]; s16 i; - for (i=0; i<30; i++) { + for (i = 0; i < 30; i++) { if (window_ptr->sprite_id[i] != -1) { HuSprAttrReset(window_ptr->group, i, HUSPR_ATTR_DISPOFF); } @@ -1492,7 +1510,8 @@ void HuWinDispOn(s16 window) { window_ptr->attr = window_ptr->attr & ~8; } -void HuWinComKeyWait(s32 player_1, s32 player_2, s32 player_3, s32 player_4, s16 delay) { +void HuWinComKeyWait(s32 player_1, s32 player_2, s32 player_3, s32 player_4, s16 delay) +{ s32 wait_input_p4; s32 wait_input_p3; s32 wait_input_p2; @@ -1500,33 +1519,39 @@ void HuWinComKeyWait(s32 player_1, s32 player_2, s32 player_3, s32 player_4, s16 if (player_4 == -1) { wait_input_p4 = -1; - } else { + } + else { wait_input_p4 = 0; } if (player_3 == -1) { wait_input_p3 = -1; - } else { + } + else { wait_input_p3 = 0; } if (player_2 == -1) { wait_input_p2 = -1; - } else { + } + else { wait_input_p2 = 0; } if (player_1 == -1) { wait_input_p1 = -1; - } else { + } + else { wait_input_p1 = 0; } _HuWinComKeySet(wait_input_p1, wait_input_p2, wait_input_p3, wait_input_p4, delay); _HuWinComKeySet(player_1, player_2, player_3, player_4, 1); } -void HuWinComKeySet(s32 player_1, s32 player_2, s32 player_3, s32 player_4) { +void HuWinComKeySet(s32 player_1, s32 player_2, s32 player_3, s32 player_4) +{ _HuWinComKeySet(player_1, player_2, player_3, player_4, 1); } -void _HuWinComKeySet(s32 player_1, s32 player_2, s32 player_3, s32 player_4, s16 delay) { +void _HuWinComKeySet(s32 player_1, s32 player_2, s32 player_3, s32 player_4, s16 delay) +{ winComKeyBuf[comKeyIdx].player[0] = player_1; winComKeyBuf[comKeyIdx].player[1] = player_2; winComKeyBuf[comKeyIdx].player[2] = player_3; @@ -1536,25 +1561,29 @@ void _HuWinComKeySet(s32 player_1, s32 player_2, s32 player_3, s32 player_4, s16 comKeyIdx &= 0xFF; } -void HuWinComKeyGet(s16 window, u32 *data) { +void HuWinComKeyGet(s16 window, u32 *data) +{ WindowData *window_ptr = &winData[window]; s16 i; if (comKeyIdx == comKeyIdxNow) { - for (i=0; i<4; i++) { + for (i = 0; i < 4; i++) { if (!(window_ptr->player_disable & (1 << i))) { data[i] = HuPadDStkRep[i] | HuPadBtnDown[i]; - } else { + } + else { data[i] = 0; } } - } else { - for (i=0; i<4; i++) { + } + else { + for (i = 0; i < 4; i++) { data[i] = winComKeyBuf[comKeyIdxNow].player[i]; if (data[i] == 0xFFFFFFFF) { if (!(window_ptr->player_disable & (1 << i))) { data[i] = HuPadDStkRep[i] | HuPadBtnDown[i]; - } else { + } + else { data[i] = 0; } } @@ -1567,11 +1596,13 @@ void HuWinComKeyGet(s16 window, u32 *data) { } } -void HuWinComKeyReset(void) { +void HuWinComKeyReset(void) +{ comKeyIdx = comKeyIdxNow = 0; } -void HuWinMesMaxSizeGet(s16 mess_num, float *size, ...) { +void HuWinMesMaxSizeGet(s16 mess_num, float *size, ...) +{ s16 i; u32 mess; va_list list; @@ -1579,11 +1610,11 @@ void HuWinMesMaxSizeGet(s16 mess_num, float *size, ...) { winInsertF = 0; va_start(list, size); winMaxWidth = winMaxHeight = 0; - for(i=0; i 0x80000000) { from_messdata = 0; mess_data = (u8 *)mess; - } else { + } + else { from_messdata = 1; mess_data = mess_start = MessData_MesPtrGet(messDataPtr, mess); } @@ -1667,7 +1704,8 @@ static void GetMesMaxSizeSub(u32 mess) { if (mess_data[1] != 0) { char_h = 26; } - } else { + } + else { char_w = fontWidthP[16] + 1; } } @@ -1708,15 +1746,15 @@ static void GetMesMaxSizeSub(u32 mess) { char_w = mesWInsert[*mess_data - 1]; break; } - #if VERSION_NTSC +#if VERSION_NTSC if ((*mess_data != 255 && *mess_data >= 32) || *mess_data == 16) { cr_flag = 1; } - #else +#else if ((*mess_data != 255 && *mess_data >= 32) || *mess_data == 16 || mess_data[-1] == 31) { cr_flag = 1; } - #endif +#endif line_w += char_w; line_h += char_h; mess_data++; @@ -1729,7 +1767,8 @@ static void GetMesMaxSizeSub(u32 mess) { } } -static s32 GetMesMaxSizeSub2(WindowData *window, u8 *mess_data) { +static s32 GetMesMaxSizeSub2(WindowData *window, u8 *mess_data) +{ s32 sp8; u8 mess_finish; s16 mess_h; @@ -1752,14 +1791,14 @@ static s32 GetMesMaxSizeSub2(WindowData *window, u8 *mess_data) { case 16: case 32: break; - + case 10: if (mess_end != 0 && !(window->attr & 0x100)) { char_w = 0; mess_finish = 1; } break; - + case 255: mess_w += char_w; /* fallthrough */ @@ -1769,7 +1808,7 @@ static s32 GetMesMaxSizeSub2(WindowData *window, u8 *mess_data) { char_h = 0; mess_w = char_w = 0; break; - + case 28: case 30: mess++; @@ -1778,16 +1817,16 @@ static s32 GetMesMaxSizeSub2(WindowData *window, u8 *mess_data) { case 29: char_w = 0; break; - + case 12: char_w = winTabSize * ((mess_w + winTabSize) / winTabSize) - mess_w; break; - + case 14: mess++; char_w = spcFontTbl[*mess - 1].w + 1; break; - + case 31: mess++; break; @@ -1802,13 +1841,15 @@ static s32 GetMesMaxSizeSub2(WindowData *window, u8 *mess_data) { return mess_w; } -s16 HuWinKeyWaitNumGet(u32 mess) { +s16 HuWinKeyWaitNumGet(u32 mess) +{ s16 wait_num; u8 *mess_data; if (mess > 0x80000000) { mess_data = (u8 *)mess; - } else { + } + else { mess_data = MessData_MesPtrGet(messDataPtr, mess); } for (wait_num = 0; *mess_data != 0; mess_data++) { @@ -1819,51 +1860,39 @@ s16 HuWinKeyWaitNumGet(u32 mess) { return wait_num; } -void HuWinPushKeySet(s16 window, s16 push_key) { +void HuWinPushKeySet(s16 window, s16 push_key) +{ WindowData *window_ptr = &winData[window]; window_ptr->push_key = push_key; } -void HuWinDisablePlayerSet(s16 window, u8 player) { +void HuWinDisablePlayerSet(s16 window, u8 player) +{ WindowData *window_ptr = &winData[window]; window_ptr->player_disable |= player; } -void HuWinDisablePlayerReset(s16 window, u8 player) { +void HuWinDisablePlayerReset(s16 window, u8 player) +{ WindowData *window_ptr = &winData[window]; window_ptr->player_disable &= ~(int)player; } -static s32 winPortraitTbl[] = { - WIN_TOAD_TALK_ANM, - WIN_BOBOMB_TALK_ANM, - WIN_SHYGUY_TALK_ANM, - WIN_BOO_TALK_ANM, - WIN_GOOMBA_TALK_ANM, - WIN_BOWSER_TALK_ANM, - WIN_KKID_TALK_ANM, - WIN_KOOPA_TALK_ANM, - WIN_CONDOR_TALK_ANM, - WIN_BOO_BLUE_TALK_ANM, - WIN_DOLPHIN_TALK_ANM, - WIN_BOO_RED_TALK_ANM, - WIN_THWOMP_TALK_ANM, - WIN_W01_HOST_TALK_ANM, - WIN_W02_HOST_TALK_ANM, - WIN_W03_HOST_TALK_ANM, - WIN_W04_HOST_TALK_ANM, - WIN_W05_HOST_TALK_ANM, - WIN_W06_HOST_TALK_ANM -}; +static s32 winPortraitTbl[] + = { WIN_TOAD_TALK_ANM, WIN_BOBOMB_TALK_ANM, WIN_SHYGUY_TALK_ANM, WIN_BOO_TALK_ANM, WIN_GOOMBA_TALK_ANM, WIN_BOWSER_TALK_ANM, WIN_KKID_TALK_ANM, + WIN_KOOPA_TALK_ANM, WIN_CONDOR_TALK_ANM, WIN_BOO_BLUE_TALK_ANM, WIN_DOLPHIN_TALK_ANM, WIN_BOO_RED_TALK_ANM, WIN_THWOMP_TALK_ANM, + WIN_W01_HOST_TALK_ANM, WIN_W02_HOST_TALK_ANM, WIN_W03_HOST_TALK_ANM, WIN_W04_HOST_TALK_ANM, WIN_W05_HOST_TALK_ANM, WIN_W06_HOST_TALK_ANM }; -s16 HuWinExCreate(float x, float y, s16 w, s16 h, s16 portrait) { +s16 HuWinExCreate(float x, float y, s16 w, s16 h, s16 portrait) +{ return HuWinExCreateStyled(x, y, w, h, portrait, 0); } -static void HuWinExCreatePortrait(s16 window, s16 portrait, float x, float y) { +static void HuWinExCreatePortrait(s16 window, s16 portrait, float x, float y) +{ s16 sprite; AnimData *anim; WindowData *window_ptr; @@ -1876,7 +1905,8 @@ static void HuWinExCreatePortrait(s16 window, s16 portrait, float x, float y) { HuWinSprSet(window, sprite, x, y); } -s16 HuWinExCreateStyled(float x, float y, s16 w, s16 h, s16 portrait, s16 frame) { +s16 HuWinExCreateStyled(float x, float y, s16 w, s16 h, s16 portrait, s16 frame) +{ WindowData *window_ptr; s16 window; @@ -1895,7 +1925,8 @@ s16 HuWinExCreateStyled(float x, float y, s16 w, s16 h, s16 portrait, s16 frame) return window; } -void HuWinExAnimIn(s16 window) { +void HuWinExAnimIn(s16 window) +{ WindowData *window_ptr = &winData[window]; s16 i; @@ -1903,19 +1934,21 @@ void HuWinExAnimIn(s16 window) { if (window_ptr->sprite_id[2] == -1) { HuSprScaleSet(window_ptr->group, 0, 1.0f, 0.0f); HuWinDispOn(window); - for (i=0; i<=10; i++) { + for (i = 0; i <= 10; i++) { HuSprScaleSet(window_ptr->group, 0, 1.0f, 1.0 - 1.1 * cosd(9.0f * i)); HuPrcVSleep(); } HuSprScaleSet(window_ptr->group, 0, 1.0f, 1.0f); - } else { + } + else { HuSprScaleSet(window_ptr->group, 0, 1.0f, 0.0f); HuSprScaleSet(window_ptr->group, 2, 1.0f, 0.0f); HuWinDispOn(window); - for (i=0; i<=20; i++) { + for (i = 0; i <= 20; i++) { if (i <= 10) { HuSprScaleSet(window_ptr->group, 0, 1.0f, 1.1 * (1.0 - cosd(9.0f * i))); - } else { + } + else { HuSprScaleSet(window_ptr->group, 0, 1.0f, 1.0f); } if (i > 10) { @@ -1928,19 +1961,21 @@ void HuWinExAnimIn(s16 window) { } } -void HuWinExAnimOut(s16 window) { +void HuWinExAnimOut(s16 window) +{ WindowData *window_ptr = &winData[window]; s16 i; _HuWinHomeClear(window_ptr); if (window_ptr->sprite_id[2] == -1) { - for (i=0; i<=10; i++) { + for (i = 0; i <= 10; i++) { HuSprScaleSet(window_ptr->group, 0, 1.0f, cosd(9.0f * i)); HuPrcVSleep(); } HuWinDispOff(window); - } else { - for (i=0; i<=15; i++) { + } + else { + for (i = 0; i <= 15; i++) { if (i <= 10) { HuSprScaleSet(window_ptr->group, 2, 1.0f, cosd(9.0f * i)); } @@ -1954,21 +1989,23 @@ void HuWinExAnimOut(s16 window) { } } -void HuWinExCleanup(s16 window) { +void HuWinExCleanup(s16 window) +{ HuWinKill(window); } -void HuWinExAnimPopIn(s16 window, s16 portrait) { +void HuWinExAnimPopIn(s16 window, s16 portrait) +{ WindowData *window_ptr = &winData[window]; s16 i; - for (i=0; i<=10; i++) { + for (i = 0; i <= 10; i++) { HuSprScaleSet(window_ptr->group, 2, 1.0f, cosd(9.0f * i)); HuPrcVSleep(); } HuWinSprKill(window, 2); HuWinExCreatePortrait(window, portrait, 48.0f, 48.0f); - for (i=0; i<=10; i++) { + for (i = 0; i <= 10; i++) { HuSprScaleSet(window_ptr->group, 2, 1.0f, sind(9.0f * i)); HuPrcVSleep(); } From b47cadcf21181b9c3931ed6968640c2e4181472b Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 26 Nov 2024 15:10:26 +0100 Subject: [PATCH 180/311] Split Japanese DOL till flag.c --- config/GMPE01_00/symbols.txt | 4 +- config/GMPJ01_00/splits.txt | 60 +++- config/GMPJ01_00/symbols.txt | 519 ++++++++++++++++++----------------- configure.py | 16 +- src/game/saveload.c | 260 +++++++++++------- 5 files changed, 497 insertions(+), 362 deletions(-) diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 25979f04..60b719ff 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -4133,7 +4133,7 @@ VolumeTable = .data:0x801311E8; // type:object size:0x100 scope:local lbl_801312E8 = .data:0x801312E8; // type:object size:0x4D lbl_80131335 = .data:0x80131335; // type:object size:0x1B mgInfoTbl = .data:0x80131350; // type:object size:0xE00 data:2byte -commentTbl = .data:0x80132150; // type:object size:0x40 scope:local +commentTbl = .data:0x80132150; // type:object size:0x40 scope:local data:string lbl_80132190 = .data:0x80132190; // type:object size:0xC data:string lbl_8013219C = .data:0x8013219C; // type:object size:0xC data:string lbl_801321A8 = .data:0x801321A8; // type:object size:0xC data:string @@ -4622,7 +4622,7 @@ wipeData = .bss:0x80192360; // type:object size:0x4C data:4byte winData = .bss:0x801923C0; // type:object size:0x3000 align:32 data:byte winKey = .bss:0x801953C0; // type:object size:0x10 winComKeyBuf = .bss:0x801953D0; // type:object size:0x1400 -ARInfo = .bss:0x801967E0; // type:object size:0x400 data:byte +ARInfo = .bss:0x801967E0; // type:object size:0x400 scope:local data:byte arqReq = .bss:0x80196BE0; // type:object size:0x20 scope:local ARQueBuf = .bss:0x80196C00; // type:object size:0x280 scope:local preLoadBuf = .bss:0x80196E80; // type:object size:0x40 scope:local align:32 diff --git a/config/GMPJ01_00/splits.txt b/config/GMPJ01_00/splits.txt index feb125b5..f9827915 100644 --- a/config/GMPJ01_00/splits.txt +++ b/config/GMPJ01_00/splits.txt @@ -237,7 +237,7 @@ game/wipe.c: game/window.c: .text start:0x80041E54 end:0x80047E88 .data start:0x8012FD20 end:0x80130268 - .bss start:0x80192060 end:0x80196470 + .bss start:0x80192060 end:0x80196480 .sdata start:0x801D3280 end:0x801D3288 .sbss start:0x801D3A70 end:0x801D3AB8 .sdata2 start:0x801D4BC0 end:0x801D4C58 @@ -249,3 +249,61 @@ game/card.c: .text start:0x80047F70 end:0x80048574 .data start:0x80130268 end:0x801302B8 .sbss start:0x801D3AB8 end:0x801D3AC0 + +game/armem.c: + .text start:0x80048574 end:0x800493E0 + .data start:0x801302B8 end:0x801303A8 + .bss start:0x80196480 end:0x80196B60 + .sbss start:0x801D3AC0 end:0x801D3AD0 + +game/chrman.c: + .text start:0x800493E0 end:0x8005074C + .data start:0x801303A8 end:0x80130DC8 + .bss start:0x80196B60 end:0x801972F0 + .sdata start:0x801D3288 end:0x801D32D0 + .sbss start:0x801D3AD0 end:0x801D3AD8 + .sdata2 start:0x801D4C58 end:0x801D4D90 + +game/mapspace.c: + .text start:0x8005074C end:0x800544F0 + .bss start:0x801972F0 end:0x80197760 + .sbss start:0x801D3AD8 end:0x801D3AF8 + .sdata2 start:0x801D4D90 end:0x801D4DC0 + +game/THPSimple.c: + .text start:0x800544F0 end:0x800565F4 + .data start:0x80130DC8 end:0x80130EC8 + .bss start:0x80197760 end:0x80197E40 + .sdata start:0x801D32D0 end:0x801D32D8 + .sbss start:0x801D3AF8 end:0x801D3B18 + .sdata2 start:0x801D4DC0 end:0x801D4DC8 + +game/THPDraw.c: + .text start:0x800565F4 end:0x80056F4C + .sdata2 start:0x801D4DC8 end:0x801D4DE0 + +game/thpmain.c: + .text start:0x80056F4C end:0x80057914 + .rodata start:0x8011D930 end:0x8011D940 + .data start:0x80130EC8 end:0x80130F30 + .bss start:0x80197E40 end:0x80197E80 + .sbss start:0x801D3B18 end:0x801D3B40 + .sdata2 start:0x801D4DE0 end:0x801D4DF8 + +game/objsub.c: + .text start:0x80057914 end:0x80057B00 + .data start:0x80130F30 end:0x80131D30 + .bss start:0x80197E80 end:0x801980B0 + .sbss start:0x801D3B40 end:0x801D3B68 + +game/flag.c: + .text start:0x80057B00 end:0x80057D18 + .bss start:0x801980B0 end:0x801980C0 + +game/saveload.c: + .text start:0x80057D18 end:0x8005A324 + .data start:0x80131D30 end:0x80131DE8 + .bss start:0x801980C0 end:0x8019C0E0 + .sdata start:0x801D32D8 end:0x801D32F0 + .sbss start:0x801D3B68 end:0x801D3B78 + .sdata2 start:0x801D4DF8 end:0x801D4E08 diff --git a/config/GMPJ01_00/symbols.txt b/config/GMPJ01_00/symbols.txt index 8bc3e8c0..2c706c69 100644 --- a/config/GMPJ01_00/symbols.txt +++ b/config/GMPJ01_00/symbols.txt @@ -4051,68 +4051,77 @@ winVoiceTbl = .data:0x8013019C; // type:object size:0x54 scope:local winPortraitTbl = .data:0x8013021C; // type:object size:0x4C scope:local lbl_80130268 = .data:0x80130268; // type:object size:0x26 scope:local data:string lbl_8013028E = .data:0x8013028E; // type:object size:0x2A scope:local -lbl_801302B8 = .data:0x801302B8; // type:object size:0x19 data:string -lbl_801302D1 = .data:0x801302D1; // type:object size:0x14 data:string -lbl_801302E5 = .data:0x801302E5; // type:object size:0x93 -lbl_80130378 = .data:0x80130378; // type:object size:0x30 -lbl_801303A8 = .data:0x801303A8; // type:object size:0x60 -lbl_80130408 = .data:0x80130408; // type:object size:0x60 -lbl_80130468 = .data:0x80130468; // type:object size:0x168 +lbl_801302B8 = .data:0x801302B8; // type:object size:0x19 scope:local data:string +lbl_801302D1 = .data:0x801302D1; // type:object size:0x14 scope:local data:string +lbl_801302E5 = .data:0x801302E5; // type:object size:0x93 scope:local +lbl_80130378 = .data:0x80130378; // type:object size:0x30 scope:local +effectDataTbl = .data:0x801303A8; // type:object size:0x60 scope:local +charDirTbl = .data:0x80130408; // type:object size:0x60 scope:local +effectDustParam = .data:0x80130468; // type:object size:0x38 scope:local +effectDotParam = .data:0x801304A0; // type:object size:0x38 scope:local +effectStarParam = .data:0x801304D8; // type:object size:0x38 scope:local +effectWarnParam = .data:0x80130510; // type:object size:0x38 scope:local +effectSmokeParam = .data:0x80130548; // type:object size:0x38 scope:local +lbl_801309A0 = .data:0x80130580; // type:object size:0x20 scope:local +lbl_801309C0 = .data:0x801305A0; // type:object size:0x20 scope:local +lbl_801309E0 = .data:0x801305C0; // type:object size:0x10 scope:local jumptable_801305D0 = .data:0x801305D0; // type:object size:0x1E8 scope:local -lbl_801307B8 = .data:0x801307B8; // type:object size:0x40 -lbl_801307F8 = .data:0x801307F8; // type:object size:0xE data:string -lbl_80130806 = .data:0x80130806; // type:object size:0xE data:string -lbl_80130814 = .data:0x80130814; // type:object size:0xE data:string -lbl_80130822 = .data:0x80130822; // type:object size:0xD data:string -lbl_8013082F = .data:0x8013082F; // type:object size:0xD data:string -lbl_8013083C = .data:0x8013083C; // type:object size:0xB data:string -lbl_80130847 = .data:0x80130847; // type:object size:0xF data:string -lbl_80130856 = .data:0x80130856; // type:object size:0xF data:string -lbl_80130865 = .data:0x80130865; // type:object size:0xF data:string -lbl_80130874 = .data:0x80130874; // type:object size:0xF data:string -lbl_80130883 = .data:0x80130883; // type:object size:0xF data:string -lbl_80130892 = .data:0x80130892; // type:object size:0xF data:string -lbl_801308A1 = .data:0x801308A1; // type:object size:0x9 data:string -lbl_801308AA = .data:0x801308AA; // type:object size:0xD data:string -lbl_801308B7 = .data:0x801308B7; // type:object size:0x17 data:string -lbl_801308CE = .data:0x801308CE; // type:object size:0x17 data:string -lbl_801308E5 = .data:0x801308E5; // type:object size:0xE data:string -lbl_801308F3 = .data:0x801308F3; // type:object size:0xE data:string -lbl_80130901 = .data:0x80130901; // type:object size:0xD data:string -lbl_8013090E = .data:0x8013090E; // type:object size:0xE data:string -lbl_8013091C = .data:0x8013091C; // type:object size:0xE data:string -lbl_8013092A = .data:0x8013092A; // type:object size:0xF data:string -lbl_80130939 = .data:0x80130939; // type:object size:0xF data:string -lbl_80130948 = .data:0x80130948; // type:object size:0x18 data:string -lbl_80130960 = .data:0x80130960; // type:object size:0x18 data:string -lbl_80130978 = .data:0x80130978; // type:object size:0xE data:string -lbl_80130986 = .data:0x80130986; // type:object size:0x18 data:string -lbl_8013099E = .data:0x8013099E; // type:object size:0x1A -lbl_801309B8 = .data:0x801309B8; // type:object size:0x100 -lbl_80130AB8 = .data:0x80130AB8; // type:object size:0xD data:string -lbl_80130AC5 = .data:0x80130AC5; // type:object size:0xD data:string -lbl_80130AD2 = .data:0x80130AD2; // type:object size:0xE data:string -lbl_80130AE0 = .data:0x80130AE0; // type:object size:0xE data:string -lbl_80130AEE = .data:0x80130AEE; // type:object size:0x12 -lbl_80130B00 = .data:0x80130B00; // type:object size:0xA0 -lbl_80130BA0 = .data:0x80130BA0; // type:object size:0x38 -lbl_80130BD8 = .data:0x80130BD8; // type:object size:0x38 -lbl_80130C10 = .data:0x80130C10; // type:object size:0x38 -lbl_80130C48 = .data:0x80130C48; // type:object size:0x38 -lbl_80130C80 = .data:0x80130C80; // type:object size:0x1C -lbl_80130C9C = .data:0x80130C9C; // type:object size:0x38 -lbl_80130CD4 = .data:0x80130CD4; // type:object size:0x38 -lbl_80130D0C = .data:0x80130D0C; // type:object size:0xBC -lbl_80130DC8 = .data:0x80130DC8; // type:object size:0x100 -lbl_80130EC8 = .data:0x80130EC8; // type:object size:0x4D -lbl_80130F15 = .data:0x80130F15; // type:object size:0x1B +voiceParam = .data:0x801307B8; // type:object size:0x40 scope:local +lbl_801307F8 = .data:0x801307F8; // type:object size:0xE scope:local data:string +lbl_80130806 = .data:0x80130806; // type:object size:0xE scope:local data:string +lbl_80130814 = .data:0x80130814; // type:object size:0xE scope:local data:string +lbl_80130822 = .data:0x80130822; // type:object size:0xD scope:local data:string +lbl_8013082F = .data:0x8013082F; // type:object size:0xD scope:local data:string +lbl_8013083C = .data:0x8013083C; // type:object size:0xB scope:local data:string +lbl_80130847 = .data:0x80130847; // type:object size:0xF scope:local data:string +lbl_80130856 = .data:0x80130856; // type:object size:0xF scope:local data:string +lbl_80130865 = .data:0x80130865; // type:object size:0xF scope:local data:string +lbl_80130874 = .data:0x80130874; // type:object size:0xF scope:local data:string +lbl_80130883 = .data:0x80130883; // type:object size:0xF scope:local data:string +lbl_80130892 = .data:0x80130892; // type:object size:0xF scope:local data:string +lbl_801308A1 = .data:0x801308A1; // type:object size:0x9 scope:local data:string +lbl_801308AA = .data:0x801308AA; // type:object size:0xD scope:local data:string +lbl_801308B7 = .data:0x801308B7; // type:object size:0x17 scope:local data:string +lbl_801308CE = .data:0x801308CE; // type:object size:0x17 scope:local data:string +lbl_801308E5 = .data:0x801308E5; // type:object size:0xE scope:local data:string +lbl_801308F3 = .data:0x801308F3; // type:object size:0xE scope:local data:string +lbl_80130901 = .data:0x80130901; // type:object size:0xD scope:local data:string +lbl_8013090E = .data:0x8013090E; // type:object size:0xE scope:local data:string +lbl_8013091C = .data:0x8013091C; // type:object size:0xE scope:local data:string +lbl_8013092A = .data:0x8013092A; // type:object size:0xF scope:local data:string +lbl_80130939 = .data:0x80130939; // type:object size:0xF scope:local data:string +lbl_80130948 = .data:0x80130948; // type:object size:0x18 scope:local data:string +lbl_80130960 = .data:0x80130960; // type:object size:0x18 scope:local data:string +lbl_80130978 = .data:0x80130978; // type:object size:0xE scope:local data:string +lbl_80130986 = .data:0x80130986; // type:object size:0x18 scope:local data:string +lbl_8013099E = .data:0x8013099E; // type:object size:0x1A scope:local +charTexNameTbl = .data:0x801309B8; // type:object size:0x100 +lbl_80130AB8 = .data:0x80130AB8; // type:object size:0xD scope:local data:string +lbl_80130AC5 = .data:0x80130AC5; // type:object size:0xD scope:local data:string +lbl_80130AD2 = .data:0x80130AD2; // type:object size:0xE scope:local data:string +lbl_80130AE0 = .data:0x80130AE0; // type:object size:0xE scope:local data:string +lbl_80130AEE = .data:0x80130AEE; // type:object size:0x10 scope:local data:string +hookNameTbl = .data:0x80130B00; // type:object size:0xA0 scope:local +modelParticleParam = .data:0x80130BA0; // type:object size:0x38 scope:local +coinParticleParam = .data:0x80130BD8; // type:object size:0x38 scope:local +lbl_80131030 = .data:0x80130C10; // type:object size:0x38 scope:local +lbl_80131068 = .data:0x80130C48; // type:object size:0x38 scope:local +@1294 = .data:0x80130C80; // type:object size:0x19 scope:local data:string +lbl_801310BC = .data:0x80130C9C; // type:object size:0x38 scope:local +lbl_801310F4 = .data:0x80130CD4; // type:object size:0x38 scope:local +@1315 = .data:0x80130D0C; // type:object size:0x1A scope:local data:string +lbl_80130D26 = .data:0x80130D26; // type:object size:0x12 scope:local data:string +lbl_80130D38 = .data:0x80130D38; // type:object size:0x12 scope:local data:string +VolumeTable = .data:0x80130DC8; // type:object size:0x100 scope:local +lbl_80130EC8 = .data:0x80130EC8; // type:object size:0x4D scope:local +lbl_80130F15 = .data:0x80130F15; // type:object size:0x1B scope:local mgInfoTbl = .data:0x80130F30; // type:object size:0xE00 data:2byte -lbl_80131D30 = .data:0x80131D30; // type:object size:0x40 -lbl_80131D70 = .data:0x80131D70; // type:object size:0x14 -lbl_80131D84 = .data:0x80131D84; // type:object size:0xC data:string -lbl_80131D90 = .data:0x80131D90; // type:object size:0xC data:string -lbl_80131D9C = .data:0x80131D9C; // type:object size:0xC data:string -lbl_80131DA8 = .data:0x80131DA8; // type:object size:0xC +commentTbl = .data:0x80131D30; // type:object size:0x40 scope:local data:byte +lbl_80131D70 = .data:0x80131D70; // type:object size:0x14 scope:local data:byte +lbl_80131D84 = .data:0x80131D84; // type:object size:0xC scope:local data:string +lbl_80131D90 = .data:0x80131D90; // type:object size:0xC scope:local data:string +lbl_80131D9C = .data:0x80131D9C; // type:object size:0xC scope:local data:string +SaveFileNameTbl = .data:0x80131DA8; // type:object size:0xC jumptable_80131DB4 = .data:0x80131DB4; // type:object size:0x34 scope:local lbl_80131E00 = .data:0x80131E00; // type:object size:0x20 lbl_80131E20 = .data:0x80131E20; // type:object size:0x13A0 @@ -4437,32 +4446,36 @@ wipeData = .bss:0x80192000; // type:object size:0x4C data:4byte winData = .bss:0x80192060; // type:object size:0x3000 data:byte winKey = .bss:0x80195060; // type:object size:0x10 winComKeyBuf = .bss:0x80195070; // type:object size:0x1400 -lbl_80196480 = .bss:0x80196480; // type:object size:0x400 data:byte -lbl_80196880 = .bss:0x80196880; // type:object size:0x20 -lbl_801968A0 = .bss:0x801968A0; // type:object size:0x2C0 -lbl_80196B60 = .bss:0x80196B60; // type:object size:0x640 -lbl_801971A0 = .bss:0x801971A0; // type:object size:0x10 data:2byte -lbl_801971B0 = .bss:0x801971B0; // type:object size:0x20 -lbl_801971D0 = .bss:0x801971D0; // type:object size:0x80 -lbl_80197250 = .bss:0x80197250; // type:object size:0xA0 -lbl_801972F0 = .bss:0x801972F0; // type:object size:0x40 -lbl_80197330 = .bss:0x80197330; // type:object size:0x60 -lbl_80197390 = .bss:0x80197390; // type:object size:0xC data:float -lbl_8019739C = .bss:0x8019739C; // type:object size:0xC data:float -lbl_801973A8 = .bss:0x801973A8; // type:object size:0x78 -lbl_80197420 = .bss:0x80197420; // type:object size:0x18C -lbl_801975AC = .bss:0x801975AC; // type:object size:0x180 -lbl_8019772C = .bss:0x8019772C; // type:object size:0x34 -lbl_80197760 = .bss:0x80197760; // type:object size:0x1A0 -lbl_80197900 = .bss:0x80197900; // type:object size:0x500 -lbl_80197E00 = .bss:0x80197E00; // type:object size:0x40 -lbl_80197E40 = .bss:0x80197E40; // type:object size:0x40 -lbl_80197E80 = .bss:0x80197E80; // type:object size:0x118 -lbl_80197F98 = .bss:0x80197F98; // type:object size:0x100 -lbl_80198098 = .bss:0x80198098; // type:object size:0x18 -lbl_801980B0 = .bss:0x801980B0; // type:object size:0x10 -lbl_801980C0 = .bss:0x801980C0; // type:object size:0x20 -lbl_801980E0 = .bss:0x801980E0; // type:object size:0x4000 +ARInfo = .bss:0x80196480; // type:object size:0x400 scope:local data:byte +arqReq = .bss:0x80196880; // type:object size:0x20 scope:local +ARQueBuf = .bss:0x801968A0; // type:object size:0x280 scope:local +preLoadBuf = .bss:0x80196B20; // type:object size:0x40 scope:local align:32 +charInstance = .bss:0x80196B60; // type:object size:0x640 scope:local +effectMdl = .bss:0x801971A0; // type:object size:0x10 scope:local data:2byte +particleData = .bss:0x801971B0; // type:object size:0x20 scope:local +itemHookProcess = .bss:0x801971D0; // type:object size:0x80 scope:local +lbl_801975B0 = .bss:0x80197250; // type:object size:0x10 scope:local +lbl_801975C0 = .bss:0x80197260; // type:object size:0x90 scope:local +MapObject = .bss:0x801972F0; // type:object size:0x40 +MapMT = .bss:0x80197330; // type:object size:0x30 +MapMTR = .bss:0x80197360; // type:object size:0x30 +MTRAdd = .bss:0x80197390; // type:object size:0xC scope:local data:float +FieldVec = .bss:0x8019739C; // type:object size:0xC scope:local data:float +ColisionIdx = .bss:0x801973A8; // type:object size:0x78 +HitFaceVec = .bss:0x80197420; // type:object size:0x180 +OldXYZ = .bss:0x801975A0; // type:object size:0xC scope:local +HitFace = .bss:0x801975AC; // type:object size:0x180 +CharObject = .bss:0x8019772C; // type:object size:0x30 +SimpleControl = .bss:0x80197760; // type:object size:0x1A0 +SoundBuffer = .bss:0x80197900; // type:object size:0x500 scope:local +WorkBuffer = .bss:0x80197E00; // type:object size:0x40 scope:local +THPFileName = .bss:0x80197E40; // type:object size:0x40 scope:local +mgGameStatBackup = .bss:0x80197E80; // type:object size:0x118 +mgIndexList = .bss:0x80197F98; // type:object size:0x100 +mgTicTacToeGrid = .bss:0x80198098; // type:object size:0x12 +_Sys_Flag = .bss:0x801980B0; // type:object size:0x10 scope:local +curFileInfo = .bss:0x801980C0; // type:object size:0x14 +saveBuf = .bss:0x801980E0; // type:object size:0x4000 lbl_8019C0E0 = .bss:0x8019C0E0; // type:object size:0x13A0 lbl_8019D480 = .bss:0x8019D480; // type:object size:0xC4 data:byte lbl_8019D544 = .bss:0x8019D544; // type:object size:0xC4 @@ -4703,22 +4716,22 @@ lbl_801D35D8 = .sdata:0x801D3270; // type:object size:0x8 colorN$226 = .sdata:0x801D3278; // type:object size:0x4 scope:local data:byte colorN$271 = .sdata:0x801D327C; // type:object size:0x4 scope:local data:byte winPrio = .sdata:0x801D3280; // type:object size:0x2 scope:local data:2byte -lbl_801D3288 = .sdata:0x801D3288; // type:object size:0x8 -lbl_801D3290 = .sdata:0x801D3290; // type:object size:0x8 -lbl_801D3298 = .sdata:0x801D3298; // type:object size:0x8 -lbl_801D32A0 = .sdata:0x801D32A0; // type:object size:0x8 -lbl_801D32A8 = .sdata:0x801D32A8; // type:object size:0x8 -lbl_801D32B0 = .sdata:0x801D32B0; // type:object size:0x1 -lbl_801D32B1 = .sdata:0x801D32B1; // type:object size:0x5 data:string -lbl_801D32B6 = .sdata:0x801D32B6; // type:object size:0x5 data:string -lbl_801D32BB = .sdata:0x801D32BB; // type:object size:0x8 data:string -lbl_801D32C3 = .sdata:0x801D32C3; // type:object size:0x6 data:string -lbl_801D32C9 = .sdata:0x801D32C9; // type:object size:0x7 -lbl_801D32D0 = .sdata:0x801D32D0; // type:object size:0x8 -lbl_801D32D8 = .sdata:0x801D32D8; // type:object size:0x4 data:4byte -lbl_801D32DC = .sdata:0x801D32DC; // type:object size:0x2 data:string -lbl_801D32DE = .sdata:0x801D32DE; // type:object size:0x2 data:string -lbl_801D32E0 = .sdata:0x801D32E0; // type:object size:0x8 +lbl_801D3288 = .sdata:0x801D3288; // type:object size:0x8 scope:local +lbl_801D3290 = .sdata:0x801D3290; // type:object size:0x8 scope:local +lbl_801D3298 = .sdata:0x801D3298; // type:object size:0x8 scope:local +lbl_801D32A0 = .sdata:0x801D32A0; // type:object size:0x8 scope:local +lbl_801D32A8 = .sdata:0x801D32A8; // type:object size:0x8 scope:local +lbl_801D32B0 = .sdata:0x801D32B0; // type:object size:0x1 scope:local +lbl_801D32B1 = .sdata:0x801D32B1; // type:object size:0x5 scope:local data:string +lbl_801D32B6 = .sdata:0x801D32B6; // type:object size:0x5 scope:local data:string +lbl_801D32BB = .sdata:0x801D32BB; // type:object size:0x8 scope:local data:string +lbl_801D32C3 = .sdata:0x801D32C3; // type:object size:0x6 scope:local data:string +lbl_801D32C9 = .sdata:0x801D32C9; // type:object size:0x7 scope:local +lbl_801D32D0 = .sdata:0x801D32D0; // type:object size:0x8 scope:local +saveEnableF = .sdata:0x801D32D8; // type:object size:0x4 data:4byte +@228 = .sdata:0x801D32DC; // type:object size:0x2 scope:local data:string +@229 = .sdata:0x801D32DE; // type:object size:0x2 scope:local data:string +SlotNameTbl = .sdata:0x801D32E0; // type:object size:0x8 scope:local lbl_801D32E8 = .sdata:0x801D32E8; // type:object size:0x3 lbl_801D32EB = .sdata:0x801D32EB; // type:object size:0x5 lbl_801D32F0 = .sdata:0x801D32F0; // type:object size:0x8 @@ -5157,48 +5170,48 @@ cursorAnim = .sbss:0x801D3AAC; // type:object size:0x4 scope:local data:4byte iconAnim = .sbss:0x801D3AB0; // type:object size:0x4 scope:local data:4byte UnMountCnt = .sbss:0x801D3AB8; // type:object size:0x1 data:byte cardWork = .sbss:0x801D3ABC; // type:object size:0x4 scope:local data:4byte -lbl_801D3AC0 = .sbss:0x801D3AC0; // type:object size:0x2 data:2byte -lbl_801D3AC4 = .sbss:0x801D3AC4; // type:object size:0x4 data:4byte -lbl_801D3AC8 = .sbss:0x801D3AC8; // type:object size:0x8 data:4byte -lbl_801D3AD0 = .sbss:0x801D3AD0; // type:object size:0x4 data:4byte -lbl_801D3AD4 = .sbss:0x801D3AD4; // type:object size:0x4 data:4byte -lbl_801D3AD8 = .sbss:0x801D3AD8; // type:object size:0x4 data:4byte -lbl_801D3ADC = .sbss:0x801D3ADC; // type:object size:0x4 data:4byte -lbl_801D3AE0 = .sbss:0x801D3AE0; // type:object size:0x4 data:4byte -lbl_801D3AE4 = .sbss:0x801D3AE4; // type:object size:0x4 data:4byte -lbl_801D3AE8 = .sbss:0x801D3AE8; // type:object size:0x4 -lbl_801D3AEC = .sbss:0x801D3AEC; // type:object size:0x4 data:4byte -lbl_801D3AF0 = .sbss:0x801D3AF0; // type:object size:0x4 data:float -lbl_801D3AF4 = .sbss:0x801D3AF4; // type:object size:0x4 data:float -lbl_801D3AF8 = .sbss:0x801D3AF8; // type:object size:0x4 data:4byte -lbl_801D3AFC = .sbss:0x801D3AFC; // type:object size:0x4 data:4byte -lbl_801D3B00 = .sbss:0x801D3B00; // type:object size:0x4 data:4byte -lbl_801D3B04 = .sbss:0x801D3B04; // type:object size:0x4 data:4byte -lbl_801D3B08 = .sbss:0x801D3B08; // type:object size:0x4 data:4byte -lbl_801D3B0C = .sbss:0x801D3B0C; // type:object size:0x4 data:4byte -lbl_801D3B10 = .sbss:0x801D3B10; // type:object size:0x8 data:4byte -lbl_801D3B18 = .sbss:0x801D3B18; // type:object size:0x4 data:4byte -lbl_801D3B1C = .sbss:0x801D3B1C; // type:object size:0x2 data:2byte -lbl_801D3B20 = .sbss:0x801D3B20; // type:object size:0x4 data:4byte -lbl_801D3B24 = .sbss:0x801D3B24; // type:object size:0x2 data:2byte -lbl_801D3B26 = .sbss:0x801D3B26; // type:object size:0x2 data:2byte -lbl_801D3B28 = .sbss:0x801D3B28; // type:object size:0x4 data:4byte -lbl_801D3B2C = .sbss:0x801D3B2C; // type:object size:0x4 data:4byte -lbl_801D3B30 = .sbss:0x801D3B30; // type:object size:0x4 data:4byte -lbl_801D3B34 = .sbss:0x801D3B34; // type:object size:0xC data:4byte -lbl_801D3B40 = .sbss:0x801D3B40; // type:object size:0x4 -lbl_801D3B44 = .sbss:0x801D3B44; // type:object size:0x4 +arqIdx = .sbss:0x801D3AC0; // type:object size:0x2 scope:local data:2byte +arqCnt = .sbss:0x801D3AC4; // type:object size:0x4 scope:local data:4byte +ARBase = .sbss:0x801D3AC8; // type:object size:0x4 scope:local data:4byte +effectAMemP = .sbss:0x801D3AD0; // type:object size:0x4 scope:local data:4byte +skipAnimUpdate = .sbss:0x801D3AD4; // type:object size:0x4 scope:local data:4byte +ColisionCount = .sbss:0x801D3AD8; // type:object size:0x4 data:4byte +topvtx = .sbss:0x801D3ADC; // type:object size:0x4 scope:local data:4byte +AttrHsf = .sbss:0x801D3AE0; // type:object size:0x4 scope:local data:4byte +HitFaceCount = .sbss:0x801D3AE4; // type:object size:0x4 data:4byte +nChar = .sbss:0x801D3AE8; // type:object size:0x4 +nMap = .sbss:0x801D3AEC; // type:object size:0x4 data:4byte +AddZ = .sbss:0x801D3AF0; // type:object size:0x4 data:float +AddX = .sbss:0x801D3AF4; // type:object size:0x4 data:float +Initialized = .sbss:0x801D3AF8; // type:object size:0x4 scope:local data:4byte +OldAIDCallback = .sbss:0x801D3AFC; // type:object size:0x4 scope:local data:4byte +AudioSystem = .sbss:0x801D3B00; // type:object size:0x4 scope:local data:4byte +bufIdx = .sbss:0x801D3B04; // type:object size:0x4 scope:local data:4byte +CurAudioBuffer = .sbss:0x801D3B08; // type:object size:0x4 scope:local data:4byte +LastAudioBuffer = .sbss:0x801D3B0C; // type:object size:0x4 scope:local data:4byte +SoundBufferIndex = .sbss:0x801D3B10; // type:object size:0x4 scope:local data:4byte +THPProc = .sbss:0x801D3B18; // type:object size:0x4 data:4byte +THPStart = .sbss:0x801D3B1C; // type:object size:0x2 scope:local data:2byte +THPFrame = .sbss:0x801D3B20; // type:object size:0x4 scope:local data:4byte +THPStat = .sbss:0x801D3B24; // type:object size:0x2 scope:local data:2byte +THPLoopF = .sbss:0x801D3B26; // type:object size:0x2 scope:local data:2byte +decodeThread = .sbss:0x801D3B28; // type:object size:0x4 scope:local data:4byte +decodeStackP = .sbss:0x801D3B2C; // type:object size:0x4 scope:local data:4byte +decodeRate = .sbss:0x801D3B30; // type:object size:0x4 scope:local data:4byte +audioTrack = .sbss:0x801D3B34; // type:object size:0x8 scope:local data:4byte +mgBoardHostEnableF = .sbss:0x801D3B40; // type:object size:0x1 +mgInstExitEnableF = .sbss:0x801D3B44; // type:object size:0x4 mgPracticeEnableF = .sbss:0x801D3B48; // type:object size:0x4 data:4byte mgQuitExtraF = .sbss:0x801D3B4C; // type:object size:0x4 data:4byte -lbl_801D3B50 = .sbss:0x801D3B50; // type:object size:0x4 -lbl_801D3B54 = .sbss:0x801D3B54; // type:object size:0x2 -lbl_801D3B56 = .sbss:0x801D3B56; // type:object size:0x2 -lbl_801D3B58 = .sbss:0x801D3B58; // type:object size:0x8 -lbl_801D3B60 = .sbss:0x801D3B60; // type:object size:0x8 -lbl_801D3B68 = .sbss:0x801D3B68; // type:object size:0x2 data:2byte -lbl_801D3B6A = .sbss:0x801D3B6A; // type:object size:0x1 data:byte -lbl_801D3B6C = .sbss:0x801D3B6C; // type:object size:0x4 -lbl_801D3B70 = .sbss:0x801D3B70; // type:object size:0x4 data:4byte +mgRecordExtra = .sbss:0x801D3B50; // type:object size:0x4 +lbl_801D3E94 = .sbss:0x801D3B54; // type:object size:0x1 +mgBattleStarMax = .sbss:0x801D3B56; // type:object size:0x2 +mgBattleStar = .sbss:0x801D3B58; // type:object size:0x8 +mgTypeCurr = .sbss:0x801D3B60; // type:object size:0x2 +curSlotNo = .sbss:0x801D3B68; // type:object size:0x2 data:2byte +curBoxNo = .sbss:0x801D3B6A; // type:object size:0x1 data:byte +saveExecF = .sbss:0x801D3B6C; // type:object size:0x4 +SLSerialNo = .sbss:0x801D3B70; // type:object size:0x4 data:4byte lbl_801D3B74 = .sbss:0x801D3B74; // type:object size:0x4 data:4byte lbl_801D3B78 = .sbss:0x801D3B78; // type:object size:0x4 data:4byte lbl_801D3B7C = .sbss:0x801D3B7C; // type:object size:0x4 data:4byte @@ -6100,117 +6113,117 @@ lbl_801D4C38 = .sdata2:0x801D4C38; // type:object size:0x8 scope:local data:doub lbl_801D4C40 = .sdata2:0x801D4C40; // type:object size:0x8 scope:local data:double lbl_801D4C48 = .sdata2:0x801D4C48; // type:object size:0x4 scope:local data:float lbl_801D4C50 = .sdata2:0x801D4C50; // type:object size:0x8 scope:local data:double -lbl_801D4C58 = .sdata2:0x801D4C58; // type:object size:0x8 data:double -lbl_801D4C60 = .sdata2:0x801D4C60; // type:object size:0x8 data:double -lbl_801D4C68 = .sdata2:0x801D4C68; // type:object size:0x8 data:double -lbl_801D4C70 = .sdata2:0x801D4C70; // type:object size:0x8 data:double -lbl_801D4C78 = .sdata2:0x801D4C78; // type:object size:0x8 data:double -lbl_801D4C80 = .sdata2:0x801D4C80; // type:object size:0x8 data:double -lbl_801D4C88 = .sdata2:0x801D4C88; // type:object size:0x8 data:double -lbl_801D4C90 = .sdata2:0x801D4C90; // type:object size:0x8 data:double -lbl_801D4C98 = .sdata2:0x801D4C98; // type:object size:0x4 data:float -lbl_801D4C9C = .sdata2:0x801D4C9C; // type:object size:0x4 data:float -lbl_801D4CA0 = .sdata2:0x801D4CA0; // type:object size:0x4 data:float -lbl_801D4CA4 = .sdata2:0x801D4CA4; // type:object size:0x4 data:float -lbl_801D4CA8 = .sdata2:0x801D4CA8; // type:object size:0x8 data:double -lbl_801D4CB0 = .sdata2:0x801D4CB0; // type:object size:0x4 data:float -lbl_801D4CB8 = .sdata2:0x801D4CB8; // type:object size:0x8 data:double -lbl_801D4CC0 = .sdata2:0x801D4CC0; // type:object size:0x8 data:double -lbl_801D4CC8 = .sdata2:0x801D4CC8; // type:object size:0x4 data:float -lbl_801D4CCC = .sdata2:0x801D4CCC; // type:object size:0x4 data:float -lbl_801D4CD0 = .sdata2:0x801D4CD0; // type:object size:0x8 data:double -lbl_801D4CD8 = .sdata2:0x801D4CD8; // type:object size:0x4 data:float -lbl_801D4CDC = .sdata2:0x801D4CDC; // type:object size:0x4 data:float -lbl_801D4CE0 = .sdata2:0x801D4CE0; // type:object size:0x4 data:float -lbl_801D4CE4 = .sdata2:0x801D4CE4; // type:object size:0x4 data:float -lbl_801D4CE8 = .sdata2:0x801D4CE8; // type:object size:0x4 data:float -lbl_801D4CEC = .sdata2:0x801D4CEC; // type:object size:0x4 data:float -lbl_801D4CF0 = .sdata2:0x801D4CF0; // type:object size:0x8 data:double -lbl_801D4CF8 = .sdata2:0x801D4CF8; // type:object size:0x4 data:float -lbl_801D4D00 = .sdata2:0x801D4D00; // type:object size:0x8 data:double -lbl_801D4D08 = .sdata2:0x801D4D08; // type:object size:0x8 data:double -lbl_801D4D10 = .sdata2:0x801D4D10; // type:object size:0x4 data:float -lbl_801D4D18 = .sdata2:0x801D4D18; // type:object size:0x8 data:double -lbl_801D4D20 = .sdata2:0x801D4D20; // type:object size:0x4 data:float -lbl_801D4D24 = .sdata2:0x801D4D24; // type:object size:0x4 data:float -lbl_801D4D28 = .sdata2:0x801D4D28; // type:object size:0x8 data:double -lbl_801D4D30 = .sdata2:0x801D4D30; // type:object size:0x8 data:double -lbl_801D4D38 = .sdata2:0x801D4D38; // type:object size:0x4 data:float -lbl_801D4D3C = .sdata2:0x801D4D3C; // type:object size:0x4 data:float -lbl_801D4D40 = .sdata2:0x801D4D40; // type:object size:0x4 data:float -lbl_801D4D48 = .sdata2:0x801D4D48; // type:object size:0x8 data:double -lbl_801D4D50 = .sdata2:0x801D4D50; // type:object size:0x4 data:float -lbl_801D4D54 = .sdata2:0x801D4D54; // type:object size:0x4 data:float -lbl_801D4D58 = .sdata2:0x801D4D58; // type:object size:0x4 data:float -lbl_801D4D5C = .sdata2:0x801D4D5C; // type:object size:0x4 data:float -lbl_801D4D60 = .sdata2:0x801D4D60; // type:object size:0x8 data:double -lbl_801D4D68 = .sdata2:0x801D4D68; // type:object size:0x4 data:float -lbl_801D4D70 = .sdata2:0x801D4D70; // type:object size:0x8 data:double -lbl_801D4D78 = .sdata2:0x801D4D78; // type:object size:0x4 data:float -lbl_801D4D80 = .sdata2:0x801D4D80; // type:object size:0x8 data:double -lbl_801D4D88 = .sdata2:0x801D4D88; // type:object size:0x8 data:float -lbl_801D4D90 = .sdata2:0x801D4D90; // type:object size:0x4 data:float -lbl_801D4D94 = .sdata2:0x801D4D94; // type:object size:0x4 data:float -lbl_801D4D98 = .sdata2:0x801D4D98; // type:object size:0x4 data:float -lbl_801D4D9C = .sdata2:0x801D4D9C; // type:object size:0x4 data:float -lbl_801D4DA0 = .sdata2:0x801D4DA0; // type:object size:0x8 data:double -lbl_801D4DA8 = .sdata2:0x801D4DA8; // type:object size:0x8 data:double -lbl_801D4DB0 = .sdata2:0x801D4DB0; // type:object size:0x8 data:double -lbl_801D4DB8 = .sdata2:0x801D4DB8; // type:object size:0x4 data:float -lbl_801D4DC0 = .sdata2:0x801D4DC0; // type:object size:0x8 data:double -lbl_801D4DC8 = .sdata2:0x801D4DC8; // type:object size:0x2 data:2byte -lbl_801D4DCA = .sdata2:0x801D4DCA; // type:object size:0x2 data:2byte -lbl_801D4DCC = .sdata2:0x801D4DCC; // type:object size:0x2 data:2byte -lbl_801D4DCE = .sdata2:0x801D4DCE; // type:object size:0x2 data:2byte -lbl_801D4DD0 = .sdata2:0x801D4DD0; // type:object size:0x1 data:byte -lbl_801D4DD1 = .sdata2:0x801D4DD1; // type:object size:0x1 data:byte -lbl_801D4DD2 = .sdata2:0x801D4DD2; // type:object size:0x1 data:byte -lbl_801D4DD3 = .sdata2:0x801D4DD3; // type:object size:0x1 data:byte -lbl_801D4DD4 = .sdata2:0x801D4DD4; // type:object size:0x1 data:byte -lbl_801D4DD5 = .sdata2:0x801D4DD5; // type:object size:0x1 data:byte -lbl_801D4DD6 = .sdata2:0x801D4DD6; // type:object size:0x1 data:byte -lbl_801D4DD7 = .sdata2:0x801D4DD7; // type:object size:0x1 data:byte -lbl_801D4DD8 = .sdata2:0x801D4DD8; // type:object size:0x1 data:byte -lbl_801D4DD9 = .sdata2:0x801D4DD9; // type:object size:0x1 data:byte -lbl_801D4DDA = .sdata2:0x801D4DDA; // type:object size:0x1 data:byte -lbl_801D4DDB = .sdata2:0x801D4DDB; // type:object size:0x1 data:byte -lbl_801D4DDC = .sdata2:0x801D4DDC; // type:object size:0x4 data:float -lbl_801D4DE0 = .sdata2:0x801D4DE0; // type:object size:0x4 data:float -lbl_801D4DE4 = .sdata2:0x801D4DE4; // type:object size:0x1 data:byte -lbl_801D4DE5 = .sdata2:0x801D4DE5; // type:object size:0x1 data:byte -lbl_801D4DE6 = .sdata2:0x801D4DE6; // type:object size:0x1 data:byte -lbl_801D4DE7 = .sdata2:0x801D4DE7; // type:object size:0x1 data:byte -lbl_801D4DE8 = .sdata2:0x801D4DE8; // type:object size:0x4 data:float -lbl_801D4DEC = .sdata2:0x801D4DEC; // type:object size:0x4 data:float -lbl_801D4DF0 = .sdata2:0x801D4DF0; // type:object size:0x8 data:float -lbl_801D4DF8 = .sdata2:0x801D4DF8; // type:object size:0x4 data:float -lbl_801D4DFC = .sdata2:0x801D4DFC; // type:object size:0x4 data:float -lbl_801D4E00 = .sdata2:0x801D4E00; // type:object size:0x8 data:float -lbl_801D4E08 = .sdata2:0x801D4E08; // type:object size:0x4 data:float -lbl_801D4E0C = .sdata2:0x801D4E0C; // type:object size:0x4 data:float -lbl_801D4E10 = .sdata2:0x801D4E10; // type:object size:0x4 data:float -lbl_801D4E14 = .sdata2:0x801D4E14; // type:object size:0x4 data:float -lbl_801D4E18 = .sdata2:0x801D4E18; // type:object size:0x4 data:float -lbl_801D4E1C = .sdata2:0x801D4E1C; // type:object size:0x4 data:float -lbl_801D4E20 = .sdata2:0x801D4E20; // type:object size:0x8 data:double -lbl_801D4E28 = .sdata2:0x801D4E28; // type:object size:0x8 data:double -lbl_801D4E30 = .sdata2:0x801D4E30; // type:object size:0x4 data:float -lbl_801D4E34 = .sdata2:0x801D4E34; // type:object size:0x4 data:float -lbl_801D4E38 = .sdata2:0x801D4E38; // type:object size:0x8 data:double -lbl_801D4E40 = .sdata2:0x801D4E40; // type:object size:0x8 data:double -lbl_801D4E48 = .sdata2:0x801D4E48; // type:object size:0x4 data:float -lbl_801D4E4C = .sdata2:0x801D4E4C; // type:object size:0x4 data:float -lbl_801D4E50 = .sdata2:0x801D4E50; // type:object size:0x4 data:float -lbl_801D4E54 = .sdata2:0x801D4E54; // type:object size:0x4 data:float -lbl_801D4E58 = .sdata2:0x801D4E58; // type:object size:0x4 data:float -lbl_801D4E5C = .sdata2:0x801D4E5C; // type:object size:0x4 data:float -lbl_801D4E60 = .sdata2:0x801D4E60; // type:object size:0x8 data:double -lbl_801D4E68 = .sdata2:0x801D4E68; // type:object size:0x4 data:float -lbl_801D4E6C = .sdata2:0x801D4E6C; // type:object size:0x4 data:float -lbl_801D4E70 = .sdata2:0x801D4E70; // type:object size:0x8 data:double -lbl_801D4E78 = .sdata2:0x801D4E78; // type:object size:0x4 data:float -lbl_801D4E7C = .sdata2:0x801D4E7C; // type:object size:0x4 data:float -lbl_801D4E80 = .sdata2:0x801D4E80; // type:object size:0x4 data:float +lbl_801D4C58 = .sdata2:0x801D4C58; // type:object size:0x8 scope:local data:double +lbl_801D4C60 = .sdata2:0x801D4C60; // type:object size:0x8 scope:local data:double +lbl_801D4C68 = .sdata2:0x801D4C68; // type:object size:0x8 scope:local data:double +lbl_801D4C70 = .sdata2:0x801D4C70; // type:object size:0x8 scope:local data:double +lbl_801D4C78 = .sdata2:0x801D4C78; // type:object size:0x8 scope:local data:double +lbl_801D4C80 = .sdata2:0x801D4C80; // type:object size:0x8 scope:local data:double +lbl_801D4C88 = .sdata2:0x801D4C88; // type:object size:0x8 scope:local data:double +lbl_801D4C90 = .sdata2:0x801D4C90; // type:object size:0x8 scope:local data:double +lbl_801D4C98 = .sdata2:0x801D4C98; // type:object size:0x4 scope:local data:float +lbl_801D4C9C = .sdata2:0x801D4C9C; // type:object size:0x4 scope:local data:float +lbl_801D4CA0 = .sdata2:0x801D4CA0; // type:object size:0x4 scope:local data:float +lbl_801D4CA4 = .sdata2:0x801D4CA4; // type:object size:0x4 scope:local data:float +lbl_801D4CA8 = .sdata2:0x801D4CA8; // type:object size:0x8 scope:local data:double +lbl_801D4CB0 = .sdata2:0x801D4CB0; // type:object size:0x4 scope:local data:float +lbl_801D4CB8 = .sdata2:0x801D4CB8; // type:object size:0x8 scope:local data:double +lbl_801D4CC0 = .sdata2:0x801D4CC0; // type:object size:0x8 scope:local data:double +lbl_801D4CC8 = .sdata2:0x801D4CC8; // type:object size:0x4 scope:local data:float +lbl_801D4CCC = .sdata2:0x801D4CCC; // type:object size:0x4 scope:local data:float +lbl_801D4CD0 = .sdata2:0x801D4CD0; // type:object size:0x8 scope:local data:double +lbl_801D4CD8 = .sdata2:0x801D4CD8; // type:object size:0x4 scope:local data:float +lbl_801D4CDC = .sdata2:0x801D4CDC; // type:object size:0x4 scope:local data:float +lbl_801D4CE0 = .sdata2:0x801D4CE0; // type:object size:0x4 scope:local data:float +lbl_801D4CE4 = .sdata2:0x801D4CE4; // type:object size:0x4 scope:local data:float +lbl_801D4CE8 = .sdata2:0x801D4CE8; // type:object size:0x4 scope:local data:float +lbl_801D4CEC = .sdata2:0x801D4CEC; // type:object size:0x4 scope:local data:float +lbl_801D4CF0 = .sdata2:0x801D4CF0; // type:object size:0x8 scope:local data:double +lbl_801D4CF8 = .sdata2:0x801D4CF8; // type:object size:0x4 scope:local data:float +lbl_801D4D00 = .sdata2:0x801D4D00; // type:object size:0x8 scope:local data:double +lbl_801D4D08 = .sdata2:0x801D4D08; // type:object size:0x8 scope:local data:double +lbl_801D4D10 = .sdata2:0x801D4D10; // type:object size:0x4 scope:local data:float +lbl_801D4D18 = .sdata2:0x801D4D18; // type:object size:0x8 scope:local data:double +lbl_801D4D20 = .sdata2:0x801D4D20; // type:object size:0x4 scope:local data:float +lbl_801D4D24 = .sdata2:0x801D4D24; // type:object size:0x4 scope:local data:float +lbl_801D4D28 = .sdata2:0x801D4D28; // type:object size:0x8 scope:local data:double +lbl_801D4D30 = .sdata2:0x801D4D30; // type:object size:0x8 scope:local data:double +lbl_801D4D38 = .sdata2:0x801D4D38; // type:object size:0x4 scope:local data:float +lbl_801D4D3C = .sdata2:0x801D4D3C; // type:object size:0x4 scope:local data:float +lbl_801D4D40 = .sdata2:0x801D4D40; // type:object size:0x4 scope:local data:float +lbl_801D4D48 = .sdata2:0x801D4D48; // type:object size:0x8 scope:local data:double +lbl_801D4D50 = .sdata2:0x801D4D50; // type:object size:0x4 scope:local data:float +lbl_801D4D54 = .sdata2:0x801D4D54; // type:object size:0x4 scope:local data:float +lbl_801D4D58 = .sdata2:0x801D4D58; // type:object size:0x4 scope:local data:float +lbl_801D4D5C = .sdata2:0x801D4D5C; // type:object size:0x4 scope:local data:float +lbl_801D4D60 = .sdata2:0x801D4D60; // type:object size:0x8 scope:local data:double +lbl_801D4D68 = .sdata2:0x801D4D68; // type:object size:0x4 scope:local data:float +lbl_801D4D70 = .sdata2:0x801D4D70; // type:object size:0x8 scope:local data:double +lbl_801D4D78 = .sdata2:0x801D4D78; // type:object size:0x4 scope:local data:float +lbl_801D4D80 = .sdata2:0x801D4D80; // type:object size:0x8 scope:local data:double +lbl_801D4D88 = .sdata2:0x801D4D88; // type:object size:0x8 scope:local data:float +lbl_801D4D90 = .sdata2:0x801D4D90; // type:object size:0x4 scope:local data:float +lbl_801D4D94 = .sdata2:0x801D4D94; // type:object size:0x4 scope:local data:float +lbl_801D4D98 = .sdata2:0x801D4D98; // type:object size:0x4 scope:local data:float +lbl_801D4D9C = .sdata2:0x801D4D9C; // type:object size:0x4 scope:local data:float +lbl_801D4DA0 = .sdata2:0x801D4DA0; // type:object size:0x8 scope:local data:double +lbl_801D4DA8 = .sdata2:0x801D4DA8; // type:object size:0x8 scope:local data:double +lbl_801D4DB0 = .sdata2:0x801D4DB0; // type:object size:0x8 scope:local data:double +lbl_801D4DB8 = .sdata2:0x801D4DB8; // type:object size:0x4 scope:local data:float +lbl_801D4DC0 = .sdata2:0x801D4DC0; // type:object size:0x8 scope:local data:double +lbl_801D4DC8 = .sdata2:0x801D4DC8; // type:object size:0x2 scope:local data:2byte +lbl_801D4DCA = .sdata2:0x801D4DCA; // type:object size:0x2 scope:local data:2byte +lbl_801D4DCC = .sdata2:0x801D4DCC; // type:object size:0x2 scope:local data:2byte +lbl_801D4DCE = .sdata2:0x801D4DCE; // type:object size:0x2 scope:local data:2byte +lbl_801D4DD0 = .sdata2:0x801D4DD0; // type:object size:0x1 scope:local data:byte +lbl_801D4DD1 = .sdata2:0x801D4DD1; // type:object size:0x1 scope:local data:byte +lbl_801D4DD2 = .sdata2:0x801D4DD2; // type:object size:0x1 scope:local data:byte +lbl_801D4DD3 = .sdata2:0x801D4DD3; // type:object size:0x1 scope:local data:byte +lbl_801D4DD4 = .sdata2:0x801D4DD4; // type:object size:0x1 scope:local data:byte +lbl_801D4DD5 = .sdata2:0x801D4DD5; // type:object size:0x1 scope:local data:byte +lbl_801D4DD6 = .sdata2:0x801D4DD6; // type:object size:0x1 scope:local data:byte +lbl_801D4DD7 = .sdata2:0x801D4DD7; // type:object size:0x1 scope:local data:byte +lbl_801D4DD8 = .sdata2:0x801D4DD8; // type:object size:0x1 scope:local data:byte +lbl_801D4DD9 = .sdata2:0x801D4DD9; // type:object size:0x1 scope:local data:byte +lbl_801D4DDA = .sdata2:0x801D4DDA; // type:object size:0x1 scope:local data:byte +lbl_801D4DDB = .sdata2:0x801D4DDB; // type:object size:0x1 scope:local data:byte +lbl_801D4DDC = .sdata2:0x801D4DDC; // type:object size:0x4 scope:local data:float +lbl_801D4DE0 = .sdata2:0x801D4DE0; // type:object size:0x4 scope:local data:float +lbl_801D4DE4 = .sdata2:0x801D4DE4; // type:object size:0x1 scope:local data:byte +lbl_801D4DE5 = .sdata2:0x801D4DE5; // type:object size:0x1 scope:local data:byte +lbl_801D4DE6 = .sdata2:0x801D4DE6; // type:object size:0x1 scope:local data:byte +lbl_801D4DE7 = .sdata2:0x801D4DE7; // type:object size:0x1 scope:local data:byte +lbl_801D4DE8 = .sdata2:0x801D4DE8; // type:object size:0x4 scope:local data:float +lbl_801D4DEC = .sdata2:0x801D4DEC; // type:object size:0x4 scope:local data:float +lbl_801D4DF0 = .sdata2:0x801D4DF0; // type:object size:0x8 scope:local data:float +lbl_801D4DF8 = .sdata2:0x801D4DF8; // type:object size:0x4 scope:local data:float +lbl_801D4DFC = .sdata2:0x801D4DFC; // type:object size:0x4 scope:local data:float +lbl_801D4E00 = .sdata2:0x801D4E00; // type:object size:0x8 scope:local data:float +lbl_801D4E08 = .sdata2:0x801D4E08; // type:object size:0x4 scope:local data:float +lbl_801D4E0C = .sdata2:0x801D4E0C; // type:object size:0x4 scope:local data:float +lbl_801D4E10 = .sdata2:0x801D4E10; // type:object size:0x4 scope:local data:float +lbl_801D4E14 = .sdata2:0x801D4E14; // type:object size:0x4 scope:local data:float +lbl_801D4E18 = .sdata2:0x801D4E18; // type:object size:0x4 scope:local data:float +lbl_801D4E1C = .sdata2:0x801D4E1C; // type:object size:0x4 scope:local data:float +lbl_801D4E20 = .sdata2:0x801D4E20; // type:object size:0x8 scope:local data:double +lbl_801D4E28 = .sdata2:0x801D4E28; // type:object size:0x8 scope:local data:double +lbl_801D4E30 = .sdata2:0x801D4E30; // type:object size:0x4 scope:local data:float +lbl_801D4E34 = .sdata2:0x801D4E34; // type:object size:0x4 scope:local data:float +lbl_801D4E38 = .sdata2:0x801D4E38; // type:object size:0x8 scope:local data:double +lbl_801D4E40 = .sdata2:0x801D4E40; // type:object size:0x8 scope:local data:double +lbl_801D4E48 = .sdata2:0x801D4E48; // type:object size:0x4 scope:local data:float +lbl_801D4E4C = .sdata2:0x801D4E4C; // type:object size:0x4 scope:local data:float +lbl_801D4E50 = .sdata2:0x801D4E50; // type:object size:0x4 scope:local data:float +lbl_801D4E54 = .sdata2:0x801D4E54; // type:object size:0x4 scope:local data:float +lbl_801D4E58 = .sdata2:0x801D4E58; // type:object size:0x4 scope:local data:float +lbl_801D4E5C = .sdata2:0x801D4E5C; // type:object size:0x4 scope:local data:float +lbl_801D4E60 = .sdata2:0x801D4E60; // type:object size:0x8 scope:local data:double +lbl_801D4E68 = .sdata2:0x801D4E68; // type:object size:0x4 scope:local data:float +lbl_801D4E6C = .sdata2:0x801D4E6C; // type:object size:0x4 scope:local data:float +lbl_801D4E70 = .sdata2:0x801D4E70; // type:object size:0x8 scope:local data:double +lbl_801D4E78 = .sdata2:0x801D4E78; // type:object size:0x4 scope:local data:float +lbl_801D4E7C = .sdata2:0x801D4E7C; // type:object size:0x4 scope:local data:float +lbl_801D4E80 = .sdata2:0x801D4E80; // type:object size:0x4 scope:local data:float lbl_801D4E84 = .sdata2:0x801D4E84; // type:object size:0x4 data:float lbl_801D4E88 = .sdata2:0x801D4E88; // type:object size:0x4 data:float lbl_801D4E8C = .sdata2:0x801D4E8C; // type:object size:0x4 data:float diff --git a/configure.py b/configure.py index 14f66e9a..eff08432 100644 --- a/configure.py +++ b/configure.py @@ -413,14 +413,14 @@ config.libs = [ Object(Matching, "game/window.c"), Object(Matching, "game/messdata.c"), Object(Matching, "game/card.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/armem.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/chrman.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/mapspace.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/THPSimple.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/THPDraw.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/thpmain.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/objsub.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/flag.c"), + Object(Matching, "game/armem.c"), + Object(Matching, "game/chrman.c"), + Object(Matching, "game/mapspace.c"), + Object(Matching, "game/THPSimple.c"), + Object(Matching, "game/THPDraw.c"), + Object(Matching, "game/thpmain.c"), + Object(Matching, "game/objsub.c"), + Object(Matching, "game/flag.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/saveload.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/sreset.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/main.c"), diff --git a/src/game/saveload.c b/src/game/saveload.c index 0c5d627e..a00db99a 100644 --- a/src/game/saveload.c +++ b/src/game/saveload.c @@ -1,15 +1,15 @@ #include "game/saveload.h" -#include "game/data.h" -#include "game/pad.h" -#include "game/window.h" -#include "game/flag.h" -#include "game/card.h" -#include "game/sprite.h" -#include "game/gamework_data.h" #include "data_num/win.h" +#include "game/card.h" +#include "game/data.h" +#include "game/flag.h" +#include "game/gamework_data.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" -#include "string.h" #include "stddef.h" +#include "string.h" #if VERSION_ENG #define SAVE_WRITE_BEGIN _SetFlag(FLAG_ID_MAKE(3, 0)); @@ -19,13 +19,12 @@ #define SAVE_WRITE_END #endif -#define SAVE_GET_PLAYER(player_idx) &saveBuf.buf[((player_idx)*sizeof(PlayerState))+offsetof(SaveBufData, player)] -#define SAVE_GET_PLAYER_STORY(player_idx) &saveBuf.buf[((player_idx)*sizeof(PlayerState))+offsetof(SaveBufData, playerStory)] +#define SAVE_GET_PLAYER(player_idx) &saveBuf.buf[((player_idx) * sizeof(PlayerState)) + offsetof(SaveBufData, player)] +#define SAVE_GET_PLAYER_STORY(player_idx) &saveBuf.buf[((player_idx) * sizeof(PlayerState)) + offsetof(SaveBufData, playerStory)] static s16 SLCreateSaveWin(void); static void SLKillSaveWin(void); - extern u8 UnMountCnt; CARDFileInfo curFileInfo; @@ -36,27 +35,23 @@ s32 saveExecF; u8 curBoxNo; s16 curSlotNo; -static u8 commentTbl[2][32] = { - "Mario Party 4", - "File 0 00/00/0000" -}; +#if VERSION_JAP +static u8 commentTbl[2][32] = { "マリオパーティ4", "??月??日 データ?です。" }; +static char *lbl_80131D70 = { "0123456789" }; +#else +static u8 commentTbl[2][32] = { "Mario Party 4", "File 0 00/00/0000" }; +#endif -char *SaveFileNameTbl[] = { - "MARIPA4BOX0", - "MARIPA4BOX1", - "MARIPA4BOX2" -}; +char *SaveFileNameTbl[] = { "MARIPA4BOX0", "MARIPA4BOX1", "MARIPA4BOX2" }; s32 SaveEnableF = 1; -static char *SlotNameTbl[] = { - "A", - "B" -}; +static char *SlotNameTbl[] = { "A", "B" }; static s32 saveMessWin = -1; -s32 SLFileOpen(char *fileName) { +s32 SLFileOpen(char *fileName) +{ s32 result; if (SaveEnableF == 0) { @@ -64,7 +59,7 @@ s32 SLFileOpen(char *fileName) { } while (1) { result = SLCardMount(curSlotNo); - if(result < 0) { + if (result < 0) { return result; } result = HuCardOpen(curSlotNo, fileName, &curFileInfo); @@ -96,16 +91,19 @@ s32 SLFileOpen(char *fileName) { if (result != 0) { return result; } - } else { + } + else { return CARD_RESULT_NOFILE; } - } else { + } + else { return CARD_RESULT_READY; } } } -s32 SLFileCreate(char *fileName, u32 size, void *addr) { +s32 SLFileCreate(char *fileName, u32 size, void *addr) +{ float winSize[2]; u32 byteNotUsed; u32 filesNotUsed; @@ -184,7 +182,8 @@ s32 SLFileCreate(char *fileName, u32 size, void *addr) { return 0; } -s32 SLFileWrite(s32 length, void *addr) { +s32 SLFileWrite(s32 length, void *addr) +{ float winSize[2]; s32 window; s32 result; @@ -210,7 +209,8 @@ s32 SLFileWrite(s32 length, void *addr) { return result; } -s32 SLFileRead(s32 length, void *addr) { +s32 SLFileRead(s32 length, void *addr) +{ s32 result; if (SaveEnableF == 0) { @@ -219,13 +219,15 @@ s32 SLFileRead(s32 length, void *addr) { result = HuCardRead(&curFileInfo, addr, length, 0); if (result == CARD_RESULT_NOCARD) { SLMessOut(0); - } else if (result < 0) { + } + else if (result < 0) { SLMessOut(1); } return result; } -s32 SLFileClose(void) { +s32 SLFileClose(void) +{ s32 result; if (SaveEnableF == 0) { @@ -235,15 +237,18 @@ s32 SLFileClose(void) { return result; } -void SLCurSlotNoSet(s16 slotno) { +void SLCurSlotNoSet(s16 slotno) +{ curSlotNo = slotno; } -void SLCurBoxNoSet(s16 boxno) { +void SLCurBoxNoSet(s16 boxno) +{ curBoxNo = boxno; } -void SLSaveFlagSet(s32 flag) { +void SLSaveFlagSet(s32 flag) +{ if (flag == 0) { GWGameStat.party_continue = 0; GWGameStat.story_continue = 0; @@ -251,11 +256,13 @@ void SLSaveFlagSet(s32 flag) { SaveEnableF = flag; } -s32 SLSaveFlagGet(void) { +s32 SLSaveFlagGet(void) +{ return SaveEnableF; } -void SLSaveDataMake(s32 erase, OSTime *time) { +void SLSaveDataMake(s32 erase, OSTime *time) +{ AnimData *anim_data; u8 *buf; s32 i; @@ -270,24 +277,25 @@ void SLSaveDataMake(s32 erase, OSTime *time) { buf[i] = (&commentTbl[0][0])[i]; } for (i = 0; i < 0x20; i++) { - (&buf[0x20])[i] = (&commentTbl[0][0])[i+32]; + (&buf[0x20])[i] = (&commentTbl[0][0])[i + 32]; } anim_data = HuSprAnimReadFile(WIN_CARD_BANNER_ANM); - memcpy(buf + offsetof(SaveBufData, banner), anim_data->bmp->data, CARD_BANNER_WIDTH*CARD_BANNER_HEIGHT); + memcpy(buf + offsetof(SaveBufData, banner), anim_data->bmp->data, CARD_BANNER_WIDTH * CARD_BANNER_HEIGHT); memcpy(buf + offsetof(SaveBufData, bannerTlut), anim_data->bmp->palData, 512); anim_data = HuSprAnimReadFile(curBoxNo + WIN_CARD_BOX1_ICON_ANM); - memcpy(buf + offsetof(SaveBufData, icon), anim_data->bmp->data, CARD_ICON_WIDTH*CARD_ICON_HEIGHT*4); + memcpy(buf + offsetof(SaveBufData, icon), anim_data->bmp->data, CARD_ICON_WIDTH * CARD_ICON_HEIGHT * 4); memcpy(buf + offsetof(SaveBufData, iconTlut), anim_data->bmp->palData, 512); SLSaveDataInfoSet(time); } -void SLSaveDataInfoSet(OSTime *time) { +void SLSaveDataInfoSet(OSTime *time) +{ s16 year; s16 digit; OSCalendarTime sp8; - - #if VERSION_ENG + OSTicksToCalendarTime(*time, &sp8); +#if VERSION_ENG saveBuf.data.comment[37] = curBoxNo + '1'; digit = (sp8.mon + 1) / 10; saveBuf.data.comment[40] = digit + '0'; @@ -308,8 +316,7 @@ void SLSaveDataInfoSet(OSTime *time) { saveBuf.data.comment[48] = digit + '0'; year -= digit * 10; saveBuf.data.comment[49] = year + '0'; - #elif VERSION_PAL - OSTicksToCalendarTime(*time, &sp8); +#elif VERSION_PAL saveBuf.data.comment[37] = curBoxNo + '1'; digit = sp8.mday / 10; saveBuf.data.comment[40] = digit + '0'; @@ -330,17 +337,15 @@ void SLSaveDataInfoSet(OSTime *time) { saveBuf.data.comment[48] = digit + '0'; year -= digit * 10; saveBuf.data.comment[49] = year + '0'; - #else - //TODO: Japanese Version - OSTicksToCalendarTime(*time, &sp8); +#else saveBuf.data.comment[37] = curBoxNo + '1'; - digit = sp8.mday / 10; - saveBuf.data.comment[40] = digit + '0'; - digit = sp8.mday % 10; - saveBuf.data.comment[41] = digit + '0'; digit = (sp8.mon + 1) / 10; - saveBuf.data.comment[43] = digit + '0'; + saveBuf.data.comment[40] = digit + '0'; digit = (sp8.mon + 1) % 10; + saveBuf.data.comment[41] = digit + '0'; + digit = sp8.mday / 10; + saveBuf.data.comment[43] = digit + '0'; + digit = sp8.mday % 10; saveBuf.data.comment[44] = digit + '0'; year = sp8.year; digit = year / 1000; @@ -353,10 +358,36 @@ void SLSaveDataInfoSet(OSTime *time) { saveBuf.data.comment[48] = digit + '0'; year -= digit * 10; saveBuf.data.comment[49] = year + '0'; - #endif + + saveBuf.data.comment[52] = lbl_80131D70[curBoxNo + 1]; + saveBuf.data.comment[53] = lbl_80131D70[curBoxNo + 1]; + digit = (sp8.mon + 1) / 10; + // if (digit == 0) { + // saveBuf.data.comment[32] = lbl_801D32F8.unk_00; + // saveBuf.data.comment[33] = lbl_801D32F8.unk_01; + // } else { + // saveBuf.data.comment[32] = *(&@lbl_80131D70 + (var_r31 * 2)); + // saveBuf.data.comment[33] = ((var_r31 * 2) + &@lbl_80131D70)->unk_01; + // } + digit = (sp8.mon + 1) % 10; + // saveBuf.data.comment[34] = *(&@lbl_80131D70 + (var_r31 * 2)); + // saveBuf.data.comment[35] = ((var_r31 * 2) + &@lbl_80131D70)->unk_01; + digit = sp8.mday / 10; + // if (digit == 0) { + // saveBuf.data.comment[38] = lbl_801D32F8.unk_00; + // saveBuf.data.comment[39] = lbl_801D32F8.unk_01; + // } else { + // saveBuf.data.comment[38] = *(&@lbl_80131D70 + (var_r31 * 2)); + // saveBuf.data.comment[39] = ((var_r31 * 2) + &@lbl_80131D70)->unk_01; + // } + digit = sp8.mday % 10; + // saveBuf.data.comment[40] = *(&@lbl_80131D70 + (var_r31 * 2)); + // saveBuf.data.comment[41] = ((var_r31 * 2) + &@lbl_80131D70)->unk_01; +#endif } -void SLCommonSet(void) { +void SLCommonSet(void) +{ OSTime create_time; create_time = OSGetTime(); @@ -365,7 +396,8 @@ void SLCommonSet(void) { SLSaveDataInfoSet(&create_time); } -void SLSaveBoard(void) { +void SLSaveBoard(void) +{ s16 i; memcpy(&saveBuf.data.system, &GWSystem, sizeof(SystemState)); @@ -374,7 +406,8 @@ void SLSaveBoard(void) { } } -void SLSaveBoardStory(void) { +void SLSaveBoardStory(void) +{ s16 i; memcpy(&saveBuf.data.systemStory, &GWSystem, sizeof(SystemState)); @@ -383,7 +416,8 @@ void SLSaveBoardStory(void) { } } -s32 SLSave(void) { +s32 SLSave(void) +{ s32 result; while (1) { @@ -392,7 +426,8 @@ s32 SLSave(void) { if (result == CARD_RESULT_NOFILE) { if (!SLSerialNoCheck()) { SLMessOut(9); - } else { + } + else { SLCreateSaveWin(); result = SLFileCreate(SaveFileNameTbl[curBoxNo], 16384, &saveBuf); SLKillSaveWin(); @@ -401,7 +436,8 @@ s32 SLSave(void) { goto block_32; } } - } else { + } + else { if (result == CARD_RESULT_NOCARD) { result = SLMessOut(10); if (result != 0) { @@ -414,15 +450,18 @@ s32 SLSave(void) { if (result >= 0) { if (!SLSerialNoCheck()) { SLMessOut(9); - } else { + } + else { SLCreateSaveWin(); result = SLFileWrite(16384, &saveBuf); SLKillSaveWin(); if (result == CARD_RESULT_NOCARD) { SLMessOut(0); - } else if (result == CARD_RESULT_WRONGDEVICE) { + } + else if (result == CARD_RESULT_WRONGDEVICE) { SLMessOut(7); - } else if (result == CARD_RESULT_BROKEN) { + } + else if (result == CARD_RESULT_BROKEN) { result = HuCardSectorSizeGet(curSlotNo); if (result > 0 && result != 8192) { SLMessOut(8); @@ -436,13 +475,15 @@ s32 SLSave(void) { return result; } continue; - } else { + } + else { result = CARD_RESULT_BROKEN; } - } else if (result < 0) { + } + else if (result < 0) { SLMessOut(1); } -block_32: + block_32: SLFileClose(); if (result >= 0) { HuCardUnMount(curSlotNo); @@ -451,11 +492,12 @@ block_32: } } } -block_36: + block_36: result = SLMessOut(10); if (result != 0) { SLMessOut(11); - } else { + } + else { SLSaveFlagSet(0); break; } @@ -470,7 +512,8 @@ block_36: #define SAVEWIN_POS 120 #endif -static s16 SLCreateSaveWin(void) { +static s16 SLCreateSaveWin(void) +{ float size[2]; s16 window; @@ -486,7 +529,8 @@ static s16 SLCreateSaveWin(void) { return window; } -static void SLKillSaveWin(void) { +static void SLKillSaveWin(void) +{ if (saveMessWin != -1) { HuWinExAnimOut(saveMessWin); HuWinExCleanup(saveMessWin); @@ -494,7 +538,8 @@ static void SLKillSaveWin(void) { } } -s32 SLLoad(void) { +s32 SLLoad(void) +{ s32 result; u16 *save_checksum; u16 checksum; @@ -513,11 +558,13 @@ s32 SLLoad(void) { return 0; } -void SLLoadGameStat(void) { +void SLLoadGameStat(void) +{ memcpy(&GWGameStat, &saveBuf.data.stat, sizeof(GameStat)); } -void SLLoadBoard(void) { +void SLLoadBoard(void) +{ s16 i; memcpy(&GWSystem, &saveBuf.data.system, sizeof(SystemState)); @@ -531,7 +578,8 @@ void SLLoadBoard(void) { } } -void SLLoadBoardStory(void) { +void SLLoadBoardStory(void) +{ s16 i; memcpy(&GWSystem, &saveBuf.data.systemStory, 0xDC); @@ -545,11 +593,13 @@ void SLLoadBoardStory(void) { } } -s32 SLSerialNoGet(void) { +s32 SLSerialNoGet(void) +{ return CARDGetSerialNo(curSlotNo, &SLSerialNo); } -BOOL SLSerialNoCheck(void) { +BOOL SLSerialNoCheck(void) +{ s32 result; u64 serialNo; @@ -566,7 +616,8 @@ BOOL SLSerialNoCheck(void) { return TRUE; } -BOOL SLCheckSumCheck(void) { +BOOL SLCheckSumCheck(void) +{ u16 *save_checksum = (u16 *)&saveBuf.buf[sizeof(SaveBufData)]; u16 checksum = SLCheckSumGet(); @@ -576,7 +627,8 @@ BOOL SLCheckSumCheck(void) { return FALSE; } -u16 SLCheckSumGet(void) { +u16 SLCheckSumGet(void) +{ u32 i; u32 checksum; @@ -584,17 +636,19 @@ u16 SLCheckSumGet(void) { checksum += saveBuf.buf[i]; } checksum = ~checksum; - return (u16) checksum & 0xFFFF; + return (u16)checksum & 0xFFFF; } -void SLCheckSumSet(void) { +void SLCheckSumSet(void) +{ u16 checksum = SLCheckSumGet(); saveBuf.buf[sizeof(SaveBufData)] = (checksum >> 8) & 0xFF; - saveBuf.buf[sizeof(SaveBufData)+1] = checksum; + saveBuf.buf[sizeof(SaveBufData) + 1] = checksum; } -s32 SLStatSet(s32 reportF) { +s32 SLStatSet(s32 reportF) +{ CARDStat stat; s32 fileNo; s32 result; @@ -643,7 +697,8 @@ s32 SLStatSet(s32 reportF) { return result; } -s32 SLCardMount(s16 slotNo) { +s32 SLCardMount(s16 slotNo) +{ s32 result; while (1) { @@ -673,10 +728,12 @@ s32 SLCardMount(s16 slotNo) { if (result != 0) { return result; } - } else { + } + else { return CARD_RESULT_FATAL_ERROR; } - } else { + } + else { break; } } @@ -692,7 +749,8 @@ s32 SLCardMount(s16 slotNo) { return 0; } -s32 SLFormat(s16 slotNo) { +s32 SLFormat(s16 slotNo) +{ float winSize[2]; s16 result; s16 window1; @@ -754,7 +812,8 @@ s32 SLFormat(s16 slotNo) { return result; } -s16 SLMessOut(s16 mess) { +s16 SLMessOut(s16 mess) +{ WindowData *var_r26; float size[2]; u32 slot_mess; @@ -782,19 +841,23 @@ s16 SLMessOut(s16 mess) { case 2: HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]); - #if VERSION_NTSC +#if VERSION_ENG save_mess = MAKE_MESSID(16, 74); - #else +#elif VERSION_PAL save_mess = MAKE_MESSID(16, 72); - #endif +#else + save_mess = MAKE_MESSID(16, 5); +#endif break; case 3: - #if VERSION_NTSC +#if VERSION_ENG save_mess = MAKE_MESSID(16, 74); - #else +#elif VERSION_PAL save_mess = MAKE_MESSID(16, 72); - #endif +#else + save_mess = MAKE_MESSID(16, 6); +#endif HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]); break; @@ -841,11 +904,11 @@ s16 SLMessOut(s16 mess) { case 11: HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); slot_mess = MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]); - #if VERSION_NTSC +#if VERSION_ENG save_mess = MAKE_MESSID(16, 72); - #else +#else save_mess = MAKE_MESSID(16, 76); - #endif +#endif break; case 12: @@ -854,7 +917,8 @@ s16 SLMessOut(s16 mess) { } if (save_mess == MAKE_MESSID(16, 4)) { HuWinMesMaxSizeGet(1, size, MAKE_MESSID(16, 78)); - } else { + } + else { HuWinMesMaxSizeGet(1, size, save_mess); } window = HuWinExCreateStyled(-10000.0f, 200.0f, size[0], size[1], -1, 2); From a34f38d2bdab9b3582380de44f1f845149e6edf8 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Tue, 26 Nov 2024 10:22:31 -0500 Subject: [PATCH 181/311] start work on m438 --- .vscode/settings.json | 3 +- config/GMPE01_00/rels/m438Dll/symbols.txt | 2 +- src/REL/m438Dll/main.c | 425 +++++++++++++++++----- 3 files changed, 328 insertions(+), 102 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 0e3a6ba5..7c43f1a7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -21,7 +21,8 @@ ".clangd": "yaml", "m443dll.h": "c", "object.h": "c", - "executor.h": "c" + "executor.h": "c", + "m438dll.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { diff --git a/config/GMPE01_00/rels/m438Dll/symbols.txt b/config/GMPE01_00/rels/m438Dll/symbols.txt index dfbd3109..42b61291 100644 --- a/config/GMPE01_00/rels/m438Dll/symbols.txt +++ b/config/GMPE01_00/rels/m438Dll/symbols.txt @@ -383,7 +383,7 @@ lbl_1_data_28 = .data:0x00000028; // type:object size:0xC lbl_1_data_34 = .data:0x00000034; // type:object size:0xC lbl_1_data_40 = .data:0x00000040; // type:object size:0x23 data:string lbl_1_data_64 = .data:0x00000064; // type:object size:0x4 data:4byte -lbl_1_data_68 = .data:0x00000068; // type:object size:0x420 +lbl_1_data_68 = .data:0x00000068; // type:object size:0x420 data:float lbl_1_data_488 = .data:0x00000488; // type:object size:0x2C lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x30 jumptable_1_data_4E4 = .data:0x000004E4; // type:object size:0x2C scope:local diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index 26583249..64c73098 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -230,106 +230,6 @@ Vec lbl_1_data_1C = { 500.0f, 3000.0f, 500.0f }; Vec lbl_1_data_28 = { 0.0f, 1.0f, 0.0f }; Vec lbl_1_data_34 = { 0.0f, 0.0f, 0.0f }; -s32 lbl_1_data_64 = -1; -Vec lbl_1_data_68[10][8]; // TODO not right -s32 lbl_1_data_488[0xB] = { 0, 2, 3, 8, 0xA, 9, 0x13, 0xD, 0x10, 0x17, 0x18 }; - -Vec lbl_1_data_4B4[4] = { - { -400.0f, 1600.0f, -400.0f }, - { 400.0f, 1600.0f, -400.0f }, - { -400.0f, 1600.0f, 400.0f }, - { 400.0f, 1600.0f, 400.0f }, -}; - -Vec lbl_1_data_514 = { -850.0f, 0.0f, -850.0f }; - -s32 lbl_1_data_520[0x19] = { - 0xFFFFFF9E, - 0xFFFFFF9F, - 0xFFFFFFA0, - 0xFFFFFFA1, - 0xFFFFFFA2, - 0xFFFFFFCE, - 0xFFFFFFCF, - 0xFFFFFFD0, - 0xFFFFFFD1, - 0xFFFFFFD2, - 0xFFFFFFFE, - 0xFFFFFFFF, - 0, - 1, - 2, - 0x2E, - 0x2F, - 0x30, - 0x31, - 0x32, - 0x5E, - 0x5F, - 0x60, - 0x61, - 0x62, -}; - -u32 lbl_1_data_584[0x19] = { - 0x50, - 0x64, - 0x78, - 0x64, - 0x50, - 0x64, - 0x8C, - 0xA0, - 0x8C, - 0x64, - 0x78, - 0xA0, - 0xB4, - 0xA0, - 0x78, - 0x64, - 0x8C, - 0xA0, - 0x8C, - 0x64, - 0x50, - 0x64, - 0x78, - 0x64, - 0x50, -}; - -s32 lbl_1_data_5E8[9] = { 0, 0xFFFFFFCF, 0xFFFFFFD0, 0xFFFFFFD1, 0xFFFFFFFF, 1, 0x2F, 0x30, 0x31 }; - -Vec lbl_1_data_60C[9] = { - { 0.0f, 0.0f, 0.0f }, - { -35.416668f, 0.0f, -35.416668f }, - { 0.0f, 0.0f, -35.416668f }, - { 35.416668f, 0.0f, -35.416668f }, - { -35.416668f, 0.0f, 0.0f }, - { 35.416668f, 0.0f, 0.0f }, - { -35.416668f, 0.0f, 35.416668f }, - { 0.0f, 0.0f, 35.416668f }, - { 35.416668f, 0.0f, 35.416668f }, -}; - -s32 lbl_1_data_678[9] = { 0, 0xFFFFFF9E, 0xFFFFFF70, 0xFFFFFFA2, 0xFFFFFFFD, 3, 0x5E, 0x90, 0x62 }; - -Vec lbl_1_data_69C[9] = { - { 0.0f, 0.0f, 0.0f }, - { -70.833336f, 0.0f, -70.833336f }, - { 0.0f, 0.0f, -106.25f }, - { 70.833336f, 0.0f, -70.833336f }, - { -106.25f, 0.0f, 0.0f }, - { 106.25f, 0.0f, 0.0f }, - { -70.833336f, 0.0f, 70.833336f }, - { 0.0f, 0.0f, 106.25f }, - { 70.833336f, 0.0f, 70.833336f }, -}; - -s32 lbl_1_data_708[9] = { 0, 0xFFFFFFED, 0xFFFFFFEE, 0xFFFFFFEF, 0xFFFFFFFF, 1, 0x11, 0x12, 0x13 }; -s32 lbl_1_data_72C[9] = { 0, 0xFFFFFFDA, 0xFFFFFFCA, 0xFFFFFFDE, 0xFFFFFFFD, 3, 0x22, 0x36, 0x26 }; - M438StructBssDE4 lbl_1_bss_DE4; omObjData *lbl_1_bss_DE0; omObjData *lbl_1_bss_DDC; @@ -482,6 +382,7 @@ void fn_1_4FC(omObjData *object) } } +s32 lbl_1_data_64 = -1; void fn_1_974(omObjData *object) { s32 var_r31; @@ -648,6 +549,254 @@ void fn_1_1174(omObjData *object) } } +Vec lbl_1_data_68[11][8] = { + { + { -528.6f, 0.0f, 350.7f }, + { -375.7f, 0.0f, 243.0f }, + { -214.2f, 0.0f, 331.4f }, + { -173.3f, 0.0f, 523.7f }, + { 15.000001f, 0.0f, 505.7f }, + { 148.59999f, 0.0f, 393.0f }, + { 0.0f, 1.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + }, + { + { -198.7f, 0.0f, -122.899994f }, + { -11.599999f, 0.0f, -177.1f } + } +// 63.4, 0, -349.7 +// 277.09998 +// 0 +// -296.4 +// 397.5 +// 0 +// -470.2 +// 0 +// 1 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// -421 +// 0 +// -471.3 +// -270.1 +// 0 +// -460 +// -153.1 +// 0 +// -356.5 +// 12.4 +// 0 +// -473.99997 +// 0 +// 1 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// -545.10004 +// 0 +// -318.9 +// -469 +// 0 +// -154.1 +// -313.4 +// 0 +// -170.09999 +// -250 +// 0 +// -32.8 +// 0 +// 1 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// -155.6 +// 0 +// 19.5 +// -34.3 +// 0 +// 96.6 +// -63.9 +// 0 +// 240.00002 +// 37.5 +// 0 +// 402.8 +// 0 +// 1 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 207.5 +// 0 +// -163.2 +// 270.1 +// 0 +// -104.799995 +// 402.19998 +// 0 +// -102.4 +// 511.49997 +// 0 +// -25.099998 +// 627.3 +// 0 +// -142 +// 0 +// 1 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// -601 +// 0 +// 97.799995 +// -516.80005 +// 0 +// 60.000004 +// -417.7 +// 0 +// 92.9 +// -309.40002 +// 0 +// 76.1 +// 0 +// 1 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 82.8 +// 0 +// 164.2 +// 179.40001 +// 0 +// 179.8 +// 241.00002 +// 0 +// 87.1 +// 323 +// 0 +// 38.800003 +// 0 +// 1 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 243.4 +// 0 +// 573.5 +// 227.7 +// 0 +// 461.2 +// 319.30002 +// 0 +// 400.6 +// 342.30002 +// 0 +// 310 +// 0 +// 1 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 357.69998 +// 0 +// 146.8 +// 418.80002 +// 0 +// 225 +// 503.2 +// 0 +// 234.69998 +// 548.1 +// 0 +// 321.19998 +// 0 +// 1 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// -100 +// 0 +// 0 +// 0 +// 0 +// -100 +// 100 +// 0 +// 0 +// 0 +// 1 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +// 0 +}; void fn_1_1204(omObjData *object) { M438StructBss298 *var_r31; @@ -1078,6 +1227,13 @@ void fn_1_28E4(u8 arg0, u16 arg1, float arg9, float argA, float arg4) var_r31->unk_164[arg0] = 90.0f; } +s32 lbl_1_data_488[11] = { 0, 2, 3, 8, 0xA, 9, 0x13, 0xD, 0x10, 0x17, 0x18 }; +Vec lbl_1_data_4B4[4] = { + { -400.0f, 1600.0f, -400.0f }, + { 400.0f, 1600.0f, -400.0f }, + { -400.0f, 1600.0f, 400.0f }, + { 400.0f, 1600.0f, 400.0f }, +}; void fn_1_2964(omObjData *object) { M438MainWork *var_r31; @@ -3349,6 +3505,43 @@ void fn_1_A60C(omObjData *object) void fn_1_A688(omObjData *object) { } +Vec lbl_1_data_514 = { -850.0f, 0.0f, -850.0f }; +s32 lbl_1_data_520[25] = { + -98, -97, -96, -95, -94, + -50, -49, -48, -47, -46, + -2, -1, 0, 1, 2, + 0x2E, 0x2F, 0x30, 0x31, 0x32, + 0x5E, 0x5F, 0x60, 0x61, 0x62, +}; + +u32 lbl_1_data_584[25] = { + 0x50, + 0x64, + 0x78, + 0x64, + 0x50, + 0x64, + 0x8C, + 0xA0, + 0x8C, + 0x64, + 0x78, + 0xA0, + 0xB4, + 0xA0, + 0x78, + 0x64, + 0x8C, + 0xA0, + 0x8C, + 0x64, + 0x50, + 0x64, + 0x78, + 0x64, + 0x50, +}; + // void fn_1_A68C(ModelData *model, Mtx matrix) // { // Vec sp14; @@ -3502,6 +3695,38 @@ void fn_1_A688(omObjData *object) { } // return var_r30; // } +s32 lbl_1_data_5E8[9] = { 0, -49, -48, -47, -1, 1, 0x2F, 0x30, 0x31 }; + +Vec lbl_1_data_60C[9] = { + { 0.0f, 0.0f, 0.0f }, + { -35.416668f, 0.0f, -35.416668f }, + { 0.0f, 0.0f, -35.416668f }, + { 35.416668f, 0.0f, -35.416668f }, + { -35.416668f, 0.0f, 0.0f }, + { 35.416668f, 0.0f, 0.0f }, + { -35.416668f, 0.0f, 35.416668f }, + { 0.0f, 0.0f, 35.416668f }, + { 35.416668f, 0.0f, 35.416668f }, +}; + +s32 lbl_1_data_678[9] = { 0, -98, -144, -94, -3, 3, 0x5E, 0x90, 0x62 }; + +Vec lbl_1_data_69C[9] = { + { 0.0f, 0.0f, 0.0f }, + { -70.833336f, 0.0f, -70.833336f }, + { 0.0f, 0.0f, -106.25f }, + { 70.833336f, 0.0f, -70.833336f }, + { -106.25f, 0.0f, 0.0f }, + { 106.25f, 0.0f, 0.0f }, + { -70.833336f, 0.0f, 70.833336f }, + { 0.0f, 0.0f, 106.25f }, + { 70.833336f, 0.0f, 70.833336f }, +}; + +s32 lbl_1_data_708[9] = { 0, -19, -18, -17, -1, 1, 0x11, 0x12, 0x13 }; +s32 lbl_1_data_72C[9] = { 0, -38, -54, -34, -3, 3, 0x22, 0x36, 0x26 }; + + // s32 fn_1_AE18(u32 arg0, Vec *arg1, Vec *arg2) // { // Vec sp4C; From 3b50a4bdb7f61e3a5f22dd7e0485775f9993912e Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 26 Nov 2024 16:48:31 +0100 Subject: [PATCH 182/311] Split Japanese DOL till saveload.c Renamed VERSION_JAP to VERSION_JPN because it might be offensive for some --- config/GMPJ01_00/splits.txt | 2 +- config/GMPJ01_00/symbols.txt | 23 +++++----- configure.py | 2 +- include/ovl_table.h | 2 +- include/version.h | 2 +- src/game/gamework.c | 7 ++- src/game/minigame_seq.c | 36 +++++++-------- src/game/saveload.c | 86 ++++++++++++++++-------------------- src/game/window.c | 24 +++++----- 9 files changed, 87 insertions(+), 97 deletions(-) diff --git a/config/GMPJ01_00/splits.txt b/config/GMPJ01_00/splits.txt index f9827915..76144e31 100644 --- a/config/GMPJ01_00/splits.txt +++ b/config/GMPJ01_00/splits.txt @@ -304,6 +304,6 @@ game/saveload.c: .text start:0x80057D18 end:0x8005A324 .data start:0x80131D30 end:0x80131DE8 .bss start:0x801980C0 end:0x8019C0E0 - .sdata start:0x801D32D8 end:0x801D32F0 + .sdata start:0x801D32D8 end:0x801D3300 .sbss start:0x801D3B68 end:0x801D3B78 .sdata2 start:0x801D4DF8 end:0x801D4E08 diff --git a/config/GMPJ01_00/symbols.txt b/config/GMPJ01_00/symbols.txt index 2c706c69..dceced17 100644 --- a/config/GMPJ01_00/symbols.txt +++ b/config/GMPJ01_00/symbols.txt @@ -4117,7 +4117,7 @@ lbl_80130EC8 = .data:0x80130EC8; // type:object size:0x4D scope:local lbl_80130F15 = .data:0x80130F15; // type:object size:0x1B scope:local mgInfoTbl = .data:0x80130F30; // type:object size:0xE00 data:2byte commentTbl = .data:0x80131D30; // type:object size:0x40 scope:local data:byte -lbl_80131D70 = .data:0x80131D70; // type:object size:0x14 scope:local data:byte +sjisNumTbl = .data:0x80131D70; // type:object size:0x14 scope:local data:byte lbl_80131D84 = .data:0x80131D84; // type:object size:0xC scope:local data:string lbl_80131D90 = .data:0x80131D90; // type:object size:0xC scope:local data:string lbl_80131D9C = .data:0x80131D9C; // type:object size:0xC scope:local data:string @@ -4728,15 +4728,15 @@ lbl_801D32BB = .sdata:0x801D32BB; // type:object size:0x8 scope:local data:strin lbl_801D32C3 = .sdata:0x801D32C3; // type:object size:0x6 scope:local data:string lbl_801D32C9 = .sdata:0x801D32C9; // type:object size:0x7 scope:local lbl_801D32D0 = .sdata:0x801D32D0; // type:object size:0x8 scope:local -saveEnableF = .sdata:0x801D32D8; // type:object size:0x4 data:4byte +SaveEnableF = .sdata:0x801D32D8; // type:object size:0x4 data:4byte @228 = .sdata:0x801D32DC; // type:object size:0x2 scope:local data:string @229 = .sdata:0x801D32DE; // type:object size:0x2 scope:local data:string SlotNameTbl = .sdata:0x801D32E0; // type:object size:0x8 scope:local -lbl_801D32E8 = .sdata:0x801D32E8; // type:object size:0x3 -lbl_801D32EB = .sdata:0x801D32EB; // type:object size:0x5 -lbl_801D32F0 = .sdata:0x801D32F0; // type:object size:0x8 -lbl_801D32F8 = .sdata:0x801D32F8; // type:object size:0x1 data:byte -lbl_801D32FC = .sdata:0x801D32FC; // type:object size:0x4 data:4byte +lbl_801D32E8 = .sdata:0x801D32E8; // type:object size:0x3 scope:local +lbl_801D32EB = .sdata:0x801D32EB; // type:object size:0x4 scope:local +slotIconMesTbl = .sdata:0x801D32F0; // type:object size:0x8 scope:local +sjisSpace = .sdata:0x801D32F8; // type:object size:0x3 scope:local data:byte +saveMessWin = .sdata:0x801D32FC; // type:object size:0x4 scope:local data:4byte lbl_801D3300 = .sdata:0x801D3300; // type:object size:0x8 data:2byte lbl_801D3308 = .sdata:0x801D3308; // type:object size:0x1 data:byte lbl_801D330C = .sdata:0x801D330C; // type:object size:0xC data:4byte @@ -5211,8 +5211,7 @@ mgTypeCurr = .sbss:0x801D3B60; // type:object size:0x2 curSlotNo = .sbss:0x801D3B68; // type:object size:0x2 data:2byte curBoxNo = .sbss:0x801D3B6A; // type:object size:0x1 data:byte saveExecF = .sbss:0x801D3B6C; // type:object size:0x4 -SLSerialNo = .sbss:0x801D3B70; // type:object size:0x4 data:4byte -lbl_801D3B74 = .sbss:0x801D3B74; // type:object size:0x4 data:4byte +SLSerialNo = .sbss:0x801D3B70; // type:object size:0x8 data:4byte lbl_801D3B78 = .sbss:0x801D3B78; // type:object size:0x4 data:4byte lbl_801D3B7C = .sbss:0x801D3B7C; // type:object size:0x4 data:4byte lbl_801D3B80 = .sbss:0x801D3B80; // type:object size:0x4 data:4byte @@ -6196,9 +6195,9 @@ lbl_801D4DE7 = .sdata2:0x801D4DE7; // type:object size:0x1 scope:local data:byte lbl_801D4DE8 = .sdata2:0x801D4DE8; // type:object size:0x4 scope:local data:float lbl_801D4DEC = .sdata2:0x801D4DEC; // type:object size:0x4 scope:local data:float lbl_801D4DF0 = .sdata2:0x801D4DF0; // type:object size:0x8 scope:local data:float -lbl_801D4DF8 = .sdata2:0x801D4DF8; // type:object size:0x4 scope:local data:float -lbl_801D4DFC = .sdata2:0x801D4DFC; // type:object size:0x4 scope:local data:float -lbl_801D4E00 = .sdata2:0x801D4E00; // type:object size:0x8 scope:local data:float +@293 = .sdata2:0x801D4DF8; // type:object size:0x4 scope:local data:float +@294 = .sdata2:0x801D4DFC; // type:object size:0x4 scope:local data:float +@295 = .sdata2:0x801D4E00; // type:object size:0x4 scope:local data:float lbl_801D4E08 = .sdata2:0x801D4E08; // type:object size:0x4 scope:local data:float lbl_801D4E0C = .sdata2:0x801D4E0C; // type:object size:0x4 scope:local data:float lbl_801D4E10 = .sdata2:0x801D4E10; // type:object size:0x4 scope:local data:float diff --git a/configure.py b/configure.py index eff08432..675c7809 100644 --- a/configure.py +++ b/configure.py @@ -421,7 +421,7 @@ config.libs = [ Object(Matching, "game/thpmain.c"), Object(Matching, "game/objsub.c"), Object(Matching, "game/flag.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/saveload.c"), + Object(Matching, "game/saveload.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/sreset.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/main.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/player.c"), diff --git a/include/ovl_table.h b/include/ovl_table.h index 5f61425c..fcf4747c 100644 --- a/include/ovl_table.h +++ b/include/ovl_table.h @@ -71,7 +71,7 @@ OVL_DEFINE(OVL_M461, "dll/m461dll.rel") OVL_DEFINE(OVL_M462, "dll/m462dll.rel") OVL_DEFINE(OVL_M463, "dll/m463dll.rel") OVL_DEFINE(OVL_MENT, "dll/mentdll.rel") -#if VERSION_JAP +#if VERSION_JPN OVL_DEFINE(OVL_MGMODE, "dll/mgmodedll.rel") OVL_DEFINE(OVL_MODELTEST, "dll/modeltestdll.rel") OVL_DEFINE(OVL_MODESEL, "dll/modeseldll.rel") diff --git a/include/version.h b/include/version.h index 8cac62af..379389bb 100644 --- a/include/version.h +++ b/include/version.h @@ -9,7 +9,7 @@ #define VERSION_ENG (VERSION == VERSION_NO_ENG0 || VERSION == VERSION_NO_ENG1) #define VERSION_PAL (VERSION == VERSION_NO_PAL0 || VERSION == VERSION_NO_PAL2) -#define VERSION_JAP (VERSION == VERSION_NO_JAP) +#define VERSION_JPN (VERSION == VERSION_NO_JAP) #define VERSION_NTSC (!VERSION_PAL) #define VERSION_REV0 (VERSION == VERSION_NO_ENG0 || VERSION == VERSION_NO_PAL0 || VERSION == VERSION_NO_JAP) diff --git a/src/game/gamework.c b/src/game/gamework.c index dd8e2c70..2a074800 100644 --- a/src/game/gamework.c +++ b/src/game/gamework.c @@ -4,7 +4,6 @@ #include "string.h" #include "version.h" - s16 GwLanguage = 1; s16 GwLanguageSave = -1; @@ -55,7 +54,7 @@ void GWInit(void) _InitFlag(); GWErase(); InitPlayerConfig(); -#if VERSION_JAP +#if VERSION_JPN GWGameStat.language = 0; #elif VERSION_ENG GWGameStat.language = 1; @@ -132,7 +131,7 @@ void GWGameStatReset(void) GameStat *game_stat = &GWGameStatDefault; memset(game_stat, 0, sizeof(GameStat)); game_stat->unk_00 = 0; -#if VERSION_JAP +#if VERSION_JPN game_stat->language = 0; #elif VERSION_ENG game_stat->language = 1; @@ -163,7 +162,7 @@ s32 GWMessDelayGet(void) GWSystem.mess_speed = 1; GWSystem.mess_delay = 32; } -#else +#else if (GWSystem.mess_delay > 64) { GWSystem.mess_speed = 1; GWSystem.mess_delay = 48; diff --git a/src/game/minigame_seq.c b/src/game/minigame_seq.c index 886a1adc..ee3d52df 100644 --- a/src/game/minigame_seq.c +++ b/src/game/minigame_seq.c @@ -808,7 +808,7 @@ static s32 SeqMakeWord(SeqWork *work, char *str, s16 flags) s16 x; s16 i; s16 grp_idx; -#if VERSION_JAP +#if VERSION_JPN char *str_ptr; AnimData **char_anim; s16 *char_pos; @@ -832,7 +832,7 @@ static s32 SeqMakeWord(SeqWork *work, char *str, s16 flags) x = 0; len = 0; while (*str_ptr != '\0') { -#if VERSION_JAP +#if VERSION_JPN if (*str_ptr == ' ') { x += 56; } @@ -876,26 +876,26 @@ static AnimData *SeqLoadFontChar(char *str, s16 flags) if (c == 222 || c == 223) { return NULL; } -#if !VERSION_JAP +#if !VERSION_JPN if (c == 32) { return HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 10))); } #endif for (id = 0, list = seqFontAlphaTbl; *list != 0; id++, list++) { if (*list == c) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JAP ? 20 : 21)); + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 20 : 21)); return HuSprAnimRead(SeqReadFile(data_num)); } } for (id = 0, list = seqFontNumTbl; *list != 0; id++, list++) { if (*list == c) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JAP ? 10 : 11)); + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 10 : 11)); return HuSprAnimRead(SeqReadFile(data_num)); } } for (id = 0, list = seqPunctTbl; *list != 0; id++, list++) { if (*list == c) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JAP ? 153 : 154)); + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 153 : 154)); return HuSprAnimRead(SeqReadFile(data_num)); } } @@ -916,10 +916,10 @@ static AnimData *SeqLoadFontChar(char *str, s16 flags) while (*list != 0) { if (*list == c) { if (flags & 0x1) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JAP ? 155 : 156)); + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 155 : 156)); } else { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JAP ? 72 : 73)); + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 72 : 73)); } return HuSprAnimRead(SeqReadFile(data_num)); } @@ -2685,7 +2685,7 @@ static char *winCharNameTbl[] = { "ワリオ", "WARIO", "ドンキー", - VERSION_JAP ? "DK" : " DK ", + VERSION_JPN ? "DK" : " DK ", "デイジー", "DAISY", "ワルイージ", @@ -2695,21 +2695,21 @@ static char *winCharNameTbl[] = { "キノピオ", "TOAD", "ヘイホー", - VERSION_JAP ? "HEHOH" : "SHY GUY", + VERSION_JPN ? "HEHOH" : "SHY GUY", "テレサ", - VERSION_JAP ? "TERETHA" : "BOO", + VERSION_JPN ? "TERETHA" : "BOO", "ノコノコ", - VERSION_JAP ? "NOKONOKO" : "KOOPA", + VERSION_JPN ? "NOKONOKO" : "KOOPA", "ミニクッパ", VERSION_NTSC ? (VERSION_ENG ? "KOOPA KID" : "BABYBOWSER") : "MINI BOWSER", "クリボー", - VERSION_JAP ? "KURIBO" : "GOOMBA", + VERSION_JPN ? "KURIBO" : "GOOMBA", }; static char *winWordTbl[] = { "カチ", "WON!", "ハイボク", "LOSE", "ユウショウ!", "CHAMPION!" }; static s16 winPosOfs[][5][2] = { - { { VERSION_JAP ? 144 : 114, 0 }, { -144, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, + { { VERSION_JPN ? 144 : 114, 0 }, { -144, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, { { 0, 35 }, { -144, -35 }, { 144, -35 }, { 0, 0 }, { 0, 0 } }, { { 0, 105 }, { 0, -105 }, { -144, 0 }, { 144, 0 }, { 0, 0 } }, { { 0, 105 }, { -144, -105 }, { 144, -105 }, { -144, 0 }, { 144, 0 } }, @@ -2745,15 +2745,15 @@ s32 MGSeqInitWin(SeqWork *work, va_list params) } } word_grp = SeqMakeWord(work, winWordTbl[word_idx], GET_WIN_KANAF()); - winnerNameW[0] = work->word_len * (VERSION_JAP ? 56 : 50); -#if !VERSION_JAP + winnerNameW[0] = work->word_len * (VERSION_JPN ? 56 : 50); +#if !VERSION_JPN for (i = 0; i < work->word_len; i++) { HuSprPosSet(work->spr_grp[word_grp], i, 25.0f + ((i * 50) - (0.5f * (work->word_len * 50))), 0.0f); HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); } #endif num_winners = 0; -#if !VERSION_JAP +#if !VERSION_JPN work->win_scale = 1.0f; #endif for (j = 0; j < 4; j++) { @@ -2855,7 +2855,7 @@ s32 MGSeqInitWin(SeqWork *work, va_list params) work->type = 0; for (j = 0; j < num_winners + 1; j++) { if (num_winners == 1) { -#if VERSION_JAP +#if VERSION_JPN word_x = 32 + (winnerNameW[1] + winnerNameW[0]); #else word_x = 32.0f + ((float)winnerNameW[0] + (winnerNameW[1] * work->win_scale)); diff --git a/src/game/saveload.c b/src/game/saveload.c index a00db99a..f756d77e 100644 --- a/src/game/saveload.c +++ b/src/game/saveload.c @@ -35,9 +35,9 @@ s32 saveExecF; u8 curBoxNo; s16 curSlotNo; -#if VERSION_JAP +#if VERSION_JPN static u8 commentTbl[2][32] = { "マリオパーティ4", "??月??日 データ?です。" }; -static char *lbl_80131D70 = { "0123456789" }; +static u8 sjisNumTbl[20] = "0123456789"; #else static u8 commentTbl[2][32] = { "Mario Party 4", "File 0 00/00/0000" }; #endif @@ -48,6 +48,11 @@ s32 SaveEnableF = 1; static char *SlotNameTbl[] = { "A", "B" }; +#if VERSION_JPN +static char *slotIconMesTbl[] = { "\x0E\x16", "\x0E\x17" }; +static u8 sjisSpace[] = " "; +#endif + static s32 saveMessWin = -1; s32 SLFileOpen(char *fileName) @@ -338,51 +343,32 @@ void SLSaveDataInfoSet(OSTime *time) year -= digit * 10; saveBuf.data.comment[49] = year + '0'; #else - saveBuf.data.comment[37] = curBoxNo + '1'; + saveBuf.data.comment[52] = sjisNumTbl[(curBoxNo + 1) * 2]; + saveBuf.data.comment[53] = sjisNumTbl[(curBoxNo + 1) * 2 + 1]; digit = (sp8.mon + 1) / 10; - saveBuf.data.comment[40] = digit + '0'; + if (digit == 0) { + saveBuf.data.comment[32] = sjisSpace[0]; + saveBuf.data.comment[33] = sjisSpace[1]; + } + else { + saveBuf.data.comment[32] = sjisNumTbl[digit * 2]; + saveBuf.data.comment[33] = sjisNumTbl[digit * 2 + 1]; + } digit = (sp8.mon + 1) % 10; - saveBuf.data.comment[41] = digit + '0'; + saveBuf.data.comment[34] = sjisNumTbl[digit * 2]; + saveBuf.data.comment[35] = sjisNumTbl[digit * 2 + 1]; digit = sp8.mday / 10; - saveBuf.data.comment[43] = digit + '0'; + if (digit == 0) { + saveBuf.data.comment[38] = sjisSpace[0]; + saveBuf.data.comment[39] = sjisSpace[1]; + } + else { + saveBuf.data.comment[38] = sjisNumTbl[digit * 2]; + saveBuf.data.comment[39] = sjisNumTbl[digit * 2 + 1]; + } digit = sp8.mday % 10; - saveBuf.data.comment[44] = digit + '0'; - year = sp8.year; - digit = year / 1000; - saveBuf.data.comment[46] = digit + '0'; - year -= digit * 1000; - digit = year / 100; - saveBuf.data.comment[47] = digit + '0'; - year -= digit * 100; - digit = year / 10; - saveBuf.data.comment[48] = digit + '0'; - year -= digit * 10; - saveBuf.data.comment[49] = year + '0'; - - saveBuf.data.comment[52] = lbl_80131D70[curBoxNo + 1]; - saveBuf.data.comment[53] = lbl_80131D70[curBoxNo + 1]; - digit = (sp8.mon + 1) / 10; - // if (digit == 0) { - // saveBuf.data.comment[32] = lbl_801D32F8.unk_00; - // saveBuf.data.comment[33] = lbl_801D32F8.unk_01; - // } else { - // saveBuf.data.comment[32] = *(&@lbl_80131D70 + (var_r31 * 2)); - // saveBuf.data.comment[33] = ((var_r31 * 2) + &@lbl_80131D70)->unk_01; - // } - digit = (sp8.mon + 1) % 10; - // saveBuf.data.comment[34] = *(&@lbl_80131D70 + (var_r31 * 2)); - // saveBuf.data.comment[35] = ((var_r31 * 2) + &@lbl_80131D70)->unk_01; - digit = sp8.mday / 10; - // if (digit == 0) { - // saveBuf.data.comment[38] = lbl_801D32F8.unk_00; - // saveBuf.data.comment[39] = lbl_801D32F8.unk_01; - // } else { - // saveBuf.data.comment[38] = *(&@lbl_80131D70 + (var_r31 * 2)); - // saveBuf.data.comment[39] = ((var_r31 * 2) + &@lbl_80131D70)->unk_01; - // } - digit = sp8.mday % 10; - // saveBuf.data.comment[40] = *(&@lbl_80131D70 + (var_r31 * 2)); - // saveBuf.data.comment[41] = ((var_r31 * 2) + &@lbl_80131D70)->unk_01; + saveBuf.data.comment[40] = sjisNumTbl[digit * 2]; + saveBuf.data.comment[41] = sjisNumTbl[digit * 2 + 1]; #endif } @@ -512,18 +498,24 @@ s32 SLSave(void) #define SAVEWIN_POS 120 #endif +#if VERSION_JPN +#define SAVEWIN_MESS slotIconMesTbl +#else +#define SAVEWIN_MESS SlotNameTbl +#endif + static s16 SLCreateSaveWin(void) { float size[2]; s16 window; HuWinInit(1); - HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SAVEWIN_MESS[curSlotNo]), 0); HuWinMesMaxSizeGet(1, size, MAKE_MESSID(16, 68)); window = HuWinExCreateStyled(-10000.0f, SAVEWIN_POS, size[0], size[1], -1, 2); saveMessWin = window; HuWinExAnimIn(window); - HuWinInsertMesSet(window, MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); + HuWinInsertMesSet(window, MAKE_MESSID_PTR(SAVEWIN_MESS[curSlotNo]), 0); HuWinMesSet(window, MAKE_MESSID(16, 68)); HuWinMesWait(window); return window; @@ -758,11 +750,11 @@ s32 SLFormat(s16 slotNo) OSTime time; HuWinInit(1); - HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(SAVEWIN_MESS[curSlotNo]), 0); HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(16, 56)); window1 = HuWinExCreateStyled(-10000.0f, SAVEWIN_POS, winSize[0], winSize[1], -1, 2); HuWinExAnimIn(window1); - HuWinInsertMesSet(window1, MAKE_MESSID_PTR(SlotNameTbl[curSlotNo]), 0); + HuWinInsertMesSet(window1, MAKE_MESSID_PTR(SAVEWIN_MESS[curSlotNo]), 0); HuWinMesSet(window1, MAKE_MESSID(16, 56)); HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(16, 11)); window2 = HuWinExCreateStyled(-10000.0f, 200.0f, winSize[0], winSize[1], -1, 2); diff --git a/src/game/window.c b/src/game/window.c index 5b26d4fd..c4806b31 100644 --- a/src/game/window.c +++ b/src/game/window.c @@ -91,7 +91,7 @@ u8 charWETbl[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0 17, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }; -#elif VERSION_JAP +#elif VERSION_JPN u8 charWETbl[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 8, 11, 12, 13, 12, 11, 11, 12, 11, 18, 20, 12, 12, 11, 14, 8, 13, 12, 12, 12, 12, 12, 12, 12, 9, 11, 12, 11, 15, 12, 13, 12, 13, 12, 12, 11, 12, 11, 15, 12, 13, 11, 12, 6, 8, 8, 12, 20, 12, 11, 12, 11, 11, 9, 12, 11, 4, 8, 11, 4, 14, 11, 12, 11, 12, 9, 11, 9, 11, 11, 15, @@ -257,7 +257,7 @@ s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame) sprite_ptr->work[0] = window_id; HuSprGrpMemberSet(group, 1, sprite); window->num_chars = 0; -#if VERSION_JAP +#if VERSION_JPN window->max_chars = (w / 20) * (h / 24) * 3; #else window->max_chars = (w / 8) * (h / 24) * 4; @@ -290,7 +290,7 @@ s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame) window->scissor_h = 0x1E0; window->tab_w = 24; window->push_key = 0x300; -#if !VERSION_JAP +#if !VERSION_JPN window->key_auto = 0; #endif if (frame == 0 || frame == 2) { @@ -425,12 +425,12 @@ static void MesDispFunc(HuSprite *sprite) MTXConcat(*sprite->group_mtx, modelview, modelview); GXLoadPosMtxImm(modelview, 0); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - HuSprTexLoad(fontAnim, 0, 0, GX_CLAMP, GX_CLAMP, VERSION_JAP ? GX_NEAR : GX_LINEAR); + HuSprTexLoad(fontAnim, 0, 0, GX_CLAMP, GX_CLAMP, VERSION_JPN ? GX_NEAR : GX_LINEAR); GXBegin(GX_QUADS, GX_VTXFMT0, window->num_chars * 4); char_uv_h = (LanguageNo == 0) ? (24.0f / 408.0f) : (24.0f / 312.0f); for (i = 0; i < window->num_chars; i++) { char_w = fontWidthP[window->char_data[i].character + 48]; -#if VERSION_JAP +#if VERSION_JPN uv_minx = 0.003125 + (20.0f / 320.0f) * (window->char_data[i].character % 16); #else uv_minx = (20.0f / 320.0f) * (window->char_data[i].character % 16); @@ -605,9 +605,9 @@ static void HuWinDrawMes(s16 window) s16 color; s16 mess_w; - window_ptr->mess_time += VERSION_JAP ? 1 : 3; + window_ptr->mess_time += VERSION_JPN ? 1 : 3; while (window_ptr->mess_time >= window_ptr->speed || (window_ptr->attr & 0x2000)) { -#if VERSION_JAP +#if VERSION_JPN window_ptr->mess_time = 0; #else window_ptr->mess_time -= window_ptr->speed; @@ -634,7 +634,7 @@ static void HuWinDrawMes(s16 window) } window_ptr->mess_stackptr--; window_ptr->mess = window_ptr->mess_stack[window_ptr->mess_stackptr]; -#if !VERSION_JAP +#if !VERSION_JPN window_ptr->mess_time = 0; #endif break; @@ -1108,14 +1108,14 @@ static void HuWinChoice(WindowData *window) window->choice = choice_next; HuAudFXPlay(0); } - else if (key & (VERSION_JAP ? PAD_BUTTON_A : (window->key_auto | PAD_BUTTON_A))) { + else if (key & (VERSION_JPN ? PAD_BUTTON_A : (window->key_auto | PAD_BUTTON_A))) { HuAudFXPlay(2); window->key_down = key; window->stat = 0; } else if ((key & PAD_BUTTON_B) && !(window->attr & 0x10)) { HuAudFXPlay(3); -#if !VERSION_JAP +#if !VERSION_JPN window->key_down = key; #else (void)key; // hack to match Japanese version @@ -1324,7 +1324,7 @@ void HuWinMesSet(s16 window, u32 mess) window_ptr->mess = MessData_MesPtrGet(messDataPtr, mess); if (window_ptr->mess == 0) { OSReport("Error: No Message data\n"); -#if !VERSION_JAP +#if !VERSION_JPN HuWinMesSet(window, 0); return; #endif @@ -1335,7 +1335,7 @@ void HuWinMesSet(s16 window, u32 mess) } if (!(window_ptr->attr & 0x80)) { window_ptr->mess_color = 7; -#if !VERSION_JAP +#if !VERSION_JPN window_ptr->mess_time = 0; #endif } From 17020537fc3f52f0c78cee96ca4a1c6f27d6d608 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 26 Nov 2024 19:12:16 +0100 Subject: [PATCH 183/311] Split Japanese DOL till board/player.c --- config/GMPJ01_00/config.yml | 18 ++ config/GMPJ01_00/splits.txt | 25 +++ config/GMPJ01_00/symbols.txt | 341 ++++++++++++++++++----------------- configure.py | 4 +- src/game/board/main.c | 6 +- src/game/board/player.c | 17 +- src/game/sreset.c | 29 ++- 7 files changed, 263 insertions(+), 177 deletions(-) diff --git a/config/GMPJ01_00/config.yml b/config/GMPJ01_00/config.yml index 92defe35..b7b70d66 100644 --- a/config/GMPJ01_00/config.yml +++ b/config/GMPJ01_00/config.yml @@ -548,3 +548,21 @@ extract: - symbol: Ascii8x8_1bpp binary: Ascii8x8_1bpp.bin header: Ascii8x8_1bpp.inc +- symbol: coveropen_jp + binary: coveropen_jp.bin + header: coveropen_jp.inc +- symbol: fatalerror_jp + binary: fatalerror_jp.bin + header: fatalerror_jp.inc +- symbol: loading_jp + binary: loading_jp.bin + header: loading_jp.inc +- symbol: nodisc_jp + binary: nodisc_jp.bin + header: nodisc_jp.inc +- symbol: retryerror_jp + binary: retryerror_jp.bin + header: retryerror_jp.inc +- symbol: wrongdisc_jp + binary: wrongdisc_jp.bin + header: wrongdisc_jp.inc diff --git a/config/GMPJ01_00/splits.txt b/config/GMPJ01_00/splits.txt index 76144e31..787212a6 100644 --- a/config/GMPJ01_00/splits.txt +++ b/config/GMPJ01_00/splits.txt @@ -307,3 +307,28 @@ game/saveload.c: .sdata start:0x801D32D8 end:0x801D3300 .sbss start:0x801D3B68 end:0x801D3B78 .sdata2 start:0x801D4DF8 end:0x801D4E08 + +game/sreset.c: + .text start:0x8005A324 end:0x8005AD7C + .data start:0x80131E00 end:0x80139438 + .bss start:0x8019C0E0 end:0x8019D480 + .sdata start:0x801D3300 end:0x801D3318 + .sbss start:0x801D3B78 end:0x801D3B90 + +game/board/main.c: + .text start:0x8005AD7C end:0x80061BB4 + .rodata start:0x8011D940 end:0x8011D970 + .data start:0x80139438 end:0x80139538 + .bss start:0x8019D480 end:0x8019D608 + .sdata start:0x801D3318 end:0x801D3328 + .sbss start:0x801D3B90 end:0x801D3BE0 + .sdata2 start:0x801D4E08 end:0x801D4EB8 + +game/board/player.c: + .text start:0x80061BB4 end:0x8006CEF8 + .rodata start:0x8011D970 end:0x8011DA40 + .data start:0x80139538 end:0x80139740 + .bss start:0x8019D608 end:0x8019D638 + .sdata start:0x801D3328 end:0x801D3388 + .sbss start:0x801D3BE0 end:0x801D3C18 + .sdata2 start:0x801D4EB8 end:0x801D4FC0 diff --git a/config/GMPJ01_00/symbols.txt b/config/GMPJ01_00/symbols.txt index dceced17..f2e3abc5 100644 --- a/config/GMPJ01_00/symbols.txt +++ b/config/GMPJ01_00/symbols.txt @@ -1672,7 +1672,7 @@ PopupCoin = .text:0x8008E7DC; // type:function size:0x10C scope:local PopupCoinExec = .text:0x8008E8E8; // type:function size:0x130 scope:local BoardItemStart = .text:0x8008EA18; // type:function size:0x74 BoardItemDoneCheck = .text:0x8008EA8C; // type:function size:0x1C -BoardItemPlayerRestore = .text:0x8008EAA8; // type:function size:0x6C scope:local +BoardItemPlayerRestore = .text:0x8008EAA8; // type:function size:0x6C ItemProcess = .text:0x8008EB14; // type:function size:0x64 scope:local RestoreProcess = .text:0x8008EB78; // type:function size:0x64 scope:local ItemDestroy = .text:0x8008EBDC; // type:function size:0xC scope:local @@ -3594,12 +3594,12 @@ lbl_8011D8F0 = .rodata:0x8011D8F0; // type:object size:0x10 scope:local data:4by lbl_8011D900 = .rodata:0x8011D900; // type:object size:0x10 scope:local data:4byte lbl_8011D910 = .rodata:0x8011D910; // type:object size:0x20 scope:local data:byte lbl_8011D930 = .rodata:0x8011D930; // type:object size:0x10 data:4byte -lbl_8011D940 = .rodata:0x8011D940; // type:object size:0x24 data:4byte -lbl_8011D964 = .rodata:0x8011D964; // type:object size:0xC data:4byte -lbl_8011D970 = .rodata:0x8011D970; // type:object size:0x20 data:4byte -lbl_8011D990 = .rodata:0x8011D990; // type:object size:0x7C data:4byte -lbl_8011DA0C = .rodata:0x8011DA0C; // type:object size:0x24 data:4byte -lbl_8011DA30 = .rodata:0x8011DA30; // type:object size:0x10 data:4byte +lbl_8011D940 = .rodata:0x8011D940; // type:object size:0x24 scope:local data:4byte +lbl_8011D964 = .rodata:0x8011D964; // type:object size:0xC scope:local data:4byte +lbl_8011D970 = .rodata:0x8011D970; // type:object size:0x20 scope:local data:4byte +lbl_8011D990 = .rodata:0x8011D990; // type:object size:0x7C scope:local data:4byte +lbl_8011DA0C = .rodata:0x8011DA0C; // type:object size:0x24 scope:local data:4byte +lbl_8011DA30 = .rodata:0x8011DA30; // type:object size:0x10 scope:local data:4byte lbl_8011DA40 = .rodata:0x8011DA40; // type:object size:0x38 data:4byte lbl_8011DA78 = .rodata:0x8011DA78; // type:object size:0x38 data:4byte lbl_8011DAB0 = .rodata:0x8011DAB0; // type:object size:0x20 data:4byte @@ -4123,37 +4123,45 @@ lbl_80131D90 = .data:0x80131D90; // type:object size:0xC scope:local data:string lbl_80131D9C = .data:0x80131D9C; // type:object size:0xC scope:local data:string SaveFileNameTbl = .data:0x80131DA8; // type:object size:0xC jumptable_80131DB4 = .data:0x80131DB4; // type:object size:0x34 scope:local -lbl_80131E00 = .data:0x80131E00; // type:object size:0x20 -lbl_80131E20 = .data:0x80131E20; // type:object size:0x13A0 -lbl_801331C0 = .data:0x801331C0; // type:object size:0x13A0 -lbl_80134560 = .data:0x80134560; // type:object size:0x13A0 -lbl_80135900 = .data:0x80135900; // type:object size:0x13A0 -lbl_80136CA0 = .data:0x80136CA0; // type:object size:0x13A0 -lbl_80138040 = .data:0x80138040; // type:object size:0x1384 +SR_PreRstChk = .data:0x80131E00; // type:object size:0x10 scope:local +padding = .data:0x80131E10; // type:object size:0x10 scope:local +coveropen_jp = .data:0x80131E20; // type:object size:0x13A0 noreloc +fatalerror_jp = .data:0x801331C0; // type:object size:0x13A0 noreloc +loading_jp = .data:0x80134560; // type:object size:0x13A0 noreloc +nodisc_jp = .data:0x80135900; // type:object size:0x13A0 noreloc +retryerror_jp = .data:0x80136CA0; // type:object size:0x13A0 noreloc +wrongdisc_jp = .data:0x80138040; // type:object size:0x1384 noreloc jumptable_801393C4 = .data:0x801393C4; // type:object size:0x34 scope:local -lbl_801393F8 = .data:0x801393F8; // type:object size:0x18 -lbl_80139410 = .data:0x80139410; // type:object size:0x13 data:string -lbl_80139423 = .data:0x80139423; // type:object size:0x15 -lbl_80139438 = .data:0x80139438; // type:object size:0x24 +bmpMes$327 = .data:0x801393F8; // type:object size:0x18 scope:local +@391 = .data:0x80139410; // type:object size:0x13 scope:local data:string +@392 = .data:0x80139423; // type:object size:0x12 scope:local data:string +camViewTbl = .data:0x80139438; // type:object size:0x24 scope:local jumptable_8013945C = .data:0x8013945C; // type:object size:0x24 scope:local -lbl_80139480 = .data:0x80139480; // type:object size:0x48 -lbl_801394C8 = .data:0x801394C8; // type:object size:0xC -lbl_801394D4 = .data:0x801394D4; // type:object size:0x30 -lbl_80139504 = .data:0x80139504; // type:object size:0x10 -lbl_80139514 = .data:0x80139514; // type:object size:0x24 -lbl_80139538 = .data:0x80139538; // type:object size:0x10 -lbl_80139548 = .data:0x80139548; // type:object size:0x10 -lbl_80139558 = .data:0x80139558; // type:object size:0xA data:2byte -lbl_80139562 = .data:0x80139562; // type:object size:0x17 data:string -lbl_80139579 = .data:0x80139579; // type:object size:0x17 data:string -lbl_80139590 = .data:0x80139590; // type:object size:0xE data:string -lbl_8013959E = .data:0x8013959E; // type:object size:0xE data:string -lbl_801395AC = .data:0x801395AC; // type:object size:0x18 data:string -lbl_801395C4 = .data:0x801395C4; // type:object size:0x18 data:string -lbl_801395DC = .data:0x801395DC; // type:object size:0xA0 -lbl_8013967C = .data:0x8013967C; // type:object size:0x20 -lbl_8013969C = .data:0x8013969C; // type:object size:0x74 -lbl_80139710 = .data:0x80139710; // type:object size:0x30 +confettiLightTbl = .data:0x80139480; // type:object size:0x48 scope:local +last5GfxSprTbl = .data:0x801394C8; // type:object size:0xC scope:local +last5GfxPosTbl = .data:0x801394D4; // type:object size:0x30 scope:local +tauntActiveFXTbl = .data:0x80139504; // type:object size:0x10 scope:local +tauntFXTbl = .data:0x80139514; // type:object size:0x20 scope:local +diceJumpObj = .data:0x80139538; // type:object size:0x10 scope:local +motDoneF = .data:0x80139548; // type:object size:0x10 scope:local +bowserSuitMot = .data:0x80139558; // type:object size:0xA scope:local data:2byte +lbl_80139562 = .data:0x80139562; // type:object size:0x17 scope:local data:string +lbl_80139579 = .data:0x80139579; // type:object size:0x17 scope:local data:string +lbl_80139590 = .data:0x80139590; // type:object size:0xE scope:local data:string +lbl_8013959E = .data:0x8013959E; // type:object size:0xE scope:local data:string +lbl_801395AC = .data:0x801395AC; // type:object size:0x18 scope:local data:string +lbl_801395C4 = .data:0x801395C4; // type:object size:0x18 scope:local data:string +eyeMatTbl = .data:0x801395DC; // type:object size:0x40 scope:local +lbl_8013997C = .data:0x8013961C; // type:object size:0x20 +boardMotTbl = .data:0x8013963C; // type:object size:0x20 scope:local +boardMotRevTbl = .data:0x8013965C; // type:object size:0x20 scope:local +bowserSuitCharMdlTbl = .data:0x8013967C; // type:object size:0x20 scope:local +bowserSuitMotTbl = .data:0x8013969C; // type:object size:0x14 scope:local +sparkMotTbl = .data:0x801396B0; // type:object size:0x20 scope:local +boardSparkSfxTbl = .data:0x801396D0; // type:object size:0x20 scope:local +boardSparkSfxTblAlt = .data:0x801396F0; // type:object size:0x20 scope:local +megaSquishObj = .data:0x80139710; // type:object size:0x10 scope:local +megaSquishSfxTbl = .data:0x80139720; // type:object size:0x20 scope:local lbl_80139740 = .data:0x80139740; // type:object size:0x24 lbl_80139764 = .data:0x80139764; // type:object size:0x24 lbl_80139788 = .data:0x80139788; // type:object size:0x18 @@ -4476,12 +4484,16 @@ mgTicTacToeGrid = .bss:0x80198098; // type:object size:0x12 _Sys_Flag = .bss:0x801980B0; // type:object size:0x10 scope:local curFileInfo = .bss:0x801980C0; // type:object size:0x14 saveBuf = .bss:0x801980E0; // type:object size:0x4000 -lbl_8019C0E0 = .bss:0x8019C0E0; // type:object size:0x13A0 -lbl_8019D480 = .bss:0x8019D480; // type:object size:0xC4 data:byte -lbl_8019D544 = .bss:0x8019D544; // type:object size:0xC4 -lbl_8019D608 = .bss:0x8019D608; // type:object size:0x10 -lbl_8019D618 = .bss:0x8019D618; // type:object size:0x10 -lbl_8019D628 = .bss:0x8019D628; // type:object size:0x10 +ToeMessageQueue = .bss:0x8019C0E0; // type:object size:0x20 scope:local +padStat$238 = .bss:0x8019C100; // type:object size:0x30 scope:local +ToeMessageArray = .bss:0x8019C130; // type:object size:0x40 scope:local +ToeThread = .bss:0x8019C170; // type:object size:0x310 scope:local +ToeThreadStack = .bss:0x8019C480; // type:object size:0x1000 scope:local +boardCamera = .bss:0x8019D480; // type:object size:0xC4 data:byte +cameraBackup = .bss:0x8019D544; // type:object size:0xC4 scope:local +preTurnHook = .bss:0x8019D608; // type:object size:0x10 scope:local +postTurnHook = .bss:0x8019D618; // type:object size:0x10 scope:local +playerMatCopy = .bss:0x8019D628; // type:object size:0x10 scope:local lbl_8019D638 = .bss:0x8019D638; // type:object size:0x20 lbl_8019D658 = .bss:0x8019D658; // type:object size:0x40 lbl_8019D698 = .bss:0x8019D698; // type:object size:0xC data:float @@ -4737,32 +4749,29 @@ lbl_801D32EB = .sdata:0x801D32EB; // type:object size:0x4 scope:local slotIconMesTbl = .sdata:0x801D32F0; // type:object size:0x8 scope:local sjisSpace = .sdata:0x801D32F8; // type:object size:0x3 scope:local data:byte saveMessWin = .sdata:0x801D32FC; // type:object size:0x4 scope:local data:4byte -lbl_801D3300 = .sdata:0x801D3300; // type:object size:0x8 data:2byte -lbl_801D3308 = .sdata:0x801D3308; // type:object size:0x1 data:byte -lbl_801D330C = .sdata:0x801D330C; // type:object size:0xC data:4byte -lbl_801D3318 = .sdata:0x801D3318; // type:object size:0x4 data:4byte -lbl_801D331C = .sdata:0x801D331C; // type:object size:0x1 data:byte -lbl_801D331D = .sdata:0x801D331D; // type:object size:0x1 data:byte -lbl_801D331E = .sdata:0x801D331E; // type:object size:0x1 data:byte -lbl_801D331F = .sdata:0x801D331F; // type:object size:0x1 data:byte -lbl_801D3320 = .sdata:0x801D3320; // type:object size:0x8 -lbl_801D3328 = .sdata:0x801D3328; // type:object size:0x2 data:2byte -lbl_801D332A = .sdata:0x801D332A; // type:object size:0x2 data:2byte -lbl_801D332C = .sdata:0x801D332C; // type:object size:0x2 data:2byte -lbl_801D332E = .sdata:0x801D332E; // type:object size:0x5 data:string -lbl_801D3333 = .sdata:0x801D3333; // type:object size:0x5 data:string -lbl_801D3338 = .sdata:0x801D3338; // type:object size:0x6 data:string -lbl_801D333E = .sdata:0x801D333E; // type:object size:0x6 data:string -lbl_801D3344 = .sdata:0x801D3344; // type:object size:0x6 data:string -lbl_801D334A = .sdata:0x801D334A; // type:object size:0x6 data:string -lbl_801D3350 = .sdata:0x801D3350; // type:object size:0x6 data:string -lbl_801D3356 = .sdata:0x801D3356; // type:object size:0x6 data:string -lbl_801D335C = .sdata:0x801D335C; // type:object size:0x6 data:string -lbl_801D3362 = .sdata:0x801D3362; // type:object size:0x6 data:string -lbl_801D3368 = .sdata:0x801D3368; // type:object size:0x6 data:string -lbl_801D336E = .sdata:0x801D336E; // type:object size:0x6 data:string -lbl_801D3374 = .sdata:0x801D3374; // type:object size:0x6 data:string -lbl_801D337A = .sdata:0x801D337A; // type:object size:0xE +SR_PushTime = .sdata:0x801D3300; // type:object size:0x8 scope:local data:2byte +SR_ResetPad = .sdata:0x801D3308; // type:object size:0x1 scope:local data:byte +Xfb = .sdata:0x801D330C; // type:object size:0x8 scope:local data:4byte +nextOvl = .sdata:0x801D3318; // type:object size:0x4 scope:local data:4byte +lbl_801D331C = .sdata:0x801D331C; // type:object size:0x4 scope:local data:byte +lbl_801D3320 = .sdata:0x801D3320; // type:object size:0x6 scope:local data:string +suitMdl = .sdata:0x801D3328; // type:object size:0x2 scope:local data:2byte +suitPlayerMdl = .sdata:0x801D332A; // type:object size:0x2 scope:local data:2byte +suitCurrMot = .sdata:0x801D332C; // type:object size:0x2 scope:local data:2byte +lbl_801D332E = .sdata:0x801D332E; // type:object size:0x5 scope:local data:string +lbl_801D3333 = .sdata:0x801D3333; // type:object size:0x5 scope:local data:string +lbl_801D3338 = .sdata:0x801D3338; // type:object size:0x6 scope:local data:string +lbl_801D333E = .sdata:0x801D333E; // type:object size:0x6 scope:local data:string +lbl_801D3344 = .sdata:0x801D3344; // type:object size:0x6 scope:local data:string +lbl_801D334A = .sdata:0x801D334A; // type:object size:0x6 scope:local data:string +lbl_801D3350 = .sdata:0x801D3350; // type:object size:0x6 scope:local data:string +lbl_801D3356 = .sdata:0x801D3356; // type:object size:0x6 scope:local data:string +lbl_801D335C = .sdata:0x801D335C; // type:object size:0x6 scope:local data:string +lbl_801D3362 = .sdata:0x801D3362; // type:object size:0x6 scope:local data:string +lbl_801D3368 = .sdata:0x801D3368; // type:object size:0x6 scope:local data:string +lbl_801D336E = .sdata:0x801D336E; // type:object size:0x6 scope:local data:string +lbl_801D3374 = .sdata:0x801D3374; // type:object size:0x6 scope:local data:string +lbl_801D337A = .sdata:0x801D337A; // type:object size:0xE scope:local lbl_801D3388 = .sdata:0x801D3388; // type:object size:0x8 data:2byte lbl_801D3390 = .sdata:0x801D3390; // type:object size:0x8 data:4byte lbl_801D3398 = .sdata:0x801D3398; // type:object size:0x8 data:byte @@ -5212,43 +5221,43 @@ curSlotNo = .sbss:0x801D3B68; // type:object size:0x2 data:2byte curBoxNo = .sbss:0x801D3B6A; // type:object size:0x1 data:byte saveExecF = .sbss:0x801D3B6C; // type:object size:0x4 SLSerialNo = .sbss:0x801D3B70; // type:object size:0x8 data:4byte -lbl_801D3B78 = .sbss:0x801D3B78; // type:object size:0x4 data:4byte -lbl_801D3B7C = .sbss:0x801D3B7C; // type:object size:0x4 data:4byte -lbl_801D3B80 = .sbss:0x801D3B80; // type:object size:0x4 data:4byte -lbl_801D3B84 = .sbss:0x801D3B84; // type:object size:0x4 data:4byte -lbl_801D3B88 = .sbss:0x801D3B88; // type:object size:0x4 data:4byte -lbl_801D3B8C = .sbss:0x801D3B8C; // type:object size:0x2 data:2byte -lbl_801D3B8E = .sbss:0x801D3B8E; // type:object size:0x2 data:2byte -lbl_801D3B90 = .sbss:0x801D3B90; // type:object size:0x4 data:4byte -lbl_801D3B94 = .sbss:0x801D3B94; // type:object size:0x4 data:4byte -lbl_801D3B98 = .sbss:0x801D3B98; // type:object size:0x4 data:4byte -lbl_801D3B9C = .sbss:0x801D3B9C; // type:object size:0x4 data:4byte -lbl_801D3BA0 = .sbss:0x801D3BA0; // type:object size:0x4 data:4byte -lbl_801D3BA4 = .sbss:0x801D3BA4; // type:object size:0x4 data:4byte -lbl_801D3BA8 = .sbss:0x801D3BA8; // type:object size:0x4 data:4byte -lbl_801D3BAC = .sbss:0x801D3BAC; // type:object size:0x4 data:4byte -lbl_801D3BB0 = .sbss:0x801D3BB0; // type:object size:0x4 data:4byte -lbl_801D3BB4 = .sbss:0x801D3BB4; // type:object size:0x4 data:4byte -lbl_801D3BB8 = .sbss:0x801D3BB8; // type:object size:0x4 data:4byte -lbl_801D3BBC = .sbss:0x801D3BBC; // type:object size:0x4 data:4byte -lbl_801D3BC0 = .sbss:0x801D3BC0; // type:object size:0x4 data:4byte -lbl_801D3BC4 = .sbss:0x801D3BC4; // type:object size:0x4 data:4byte -lbl_801D3BC8 = .sbss:0x801D3BC8; // type:object size:0x4 data:4byte -lbl_801D3BCC = .sbss:0x801D3BCC; // type:object size:0x4 data:4byte -lbl_801D3BD0 = .sbss:0x801D3BD0; // type:object size:0x4 data:4byte -lbl_801D3BD4 = .sbss:0x801D3BD4; // type:object size:0x4 data:4byte -lbl_801D3BD8 = .sbss:0x801D3BD8; // type:object size:0x8 data:4byte -lbl_801D3BE0 = .sbss:0x801D3BE0; // type:object size:0x4 data:4byte -lbl_801D3BE4 = .sbss:0x801D3BE4; // type:object size:0x4 data:4byte -lbl_801D3BE8 = .sbss:0x801D3BE8; // type:object size:0x4 data:4byte -lbl_801D3BEC = .sbss:0x801D3BEC; // type:object size:0x4 data:4byte -lbl_801D3BF0 = .sbss:0x801D3BF0; // type:object size:0x4 data:4byte -lbl_801D3BF4 = .sbss:0x801D3BF4; // type:object size:0x4 data:4byte -lbl_801D3BF8 = .sbss:0x801D3BF8; // type:object size:0x8 -lbl_801D3C00 = .sbss:0x801D3C00; // type:object size:0x1 data:byte -lbl_801D3C04 = .sbss:0x801D3C04; // type:object size:0x1 data:byte -lbl_801D3C06 = .sbss:0x801D3C06; // type:object size:0x8 -lbl_801D3C0E = .sbss:0x801D3C0E; // type:object size:0xA +H_ResetReady = .sbss:0x801D3B78; // type:object size:0x4 scope:local data:4byte +SR_RestartChk = .sbss:0x801D3B7C; // type:object size:0x4 scope:local data:4byte +SR_ExecReset = .sbss:0x801D3B80; // type:object size:0x4 data:4byte +trychkBusyWait = .sbss:0x801D3B84; // type:object size:0x4 scope:local data:4byte +XfbProg = .sbss:0x801D3B88; // type:object size:0x4 scope:local data:4byte +XfbH = .sbss:0x801D3B8C; // type:object size:0x2 scope:local data:2byte +XfbW = .sbss:0x801D3B8E; // type:object size:0x2 scope:local data:2byte +boardMainProc = .sbss:0x801D3B90; // type:object size:0x4 data:4byte +boardObjMan = .sbss:0x801D3B94; // type:object size:0x4 data:4byte +cameraObj = .sbss:0x801D3B98; // type:object size:0x4 scope:local data:4byte +tauntObj = .sbss:0x801D3B9C; // type:object size:0x4 scope:local data:4byte +cameraUseBackup = .sbss:0x801D3BA0; // type:object size:0x4 scope:local data:4byte +createFunc = .sbss:0x801D3BA4; // type:object size:0x4 scope:local data:4byte +destroyFunc = .sbss:0x801D3BA8; // type:object size:0x4 scope:local data:4byte +boardLightSetHook = .sbss:0x801D3BAC; // type:object size:0x4 data:4byte +boardLightResetHook = .sbss:0x801D3BB0; // type:object size:0x4 data:4byte +boardTurnFunc = .sbss:0x801D3BB4; // type:object size:0x4 data:4byte +boardStarGiveHook = .sbss:0x801D3BB8; // type:object size:0x4 data:4byte +boardStarShowNextHook = .sbss:0x801D3BBC; // type:object size:0x4 data:4byte +boardBowserHook = .sbss:0x801D3BC0; // type:object size:0x4 data:4byte +boardTurnStartFunc = .sbss:0x801D3BC4; // type:object size:0x4 data:4byte +filterObj = .sbss:0x801D3BC8; // type:object size:0x4 scope:local data:4byte +confettiObj = .sbss:0x801D3BCC; // type:object size:0x4 scope:local data:4byte +last5GfxObj = .sbss:0x801D3BD0; // type:object size:0x4 scope:local data:4byte +boardRandSeed = .sbss:0x801D3BD4; // type:object size:0x4 data:4byte +boardMainObj = .sbss:0x801D3BD8; // type:object size:0x4 data:4byte +megaDoubleDiceF = .sbss:0x801D3BE0; // type:object size:0x4 scope:local data:4byte +bowserSuitObj = .sbss:0x801D3BE4; // type:object size:0x4 scope:local data:4byte +junctionMask = .sbss:0x801D3BE8; // type:object size:0x4 scope:local data:4byte +junctionObj = .sbss:0x801D3BEC; // type:object size:0x4 scope:local data:4byte +rollObj = .sbss:0x801D3BF0; // type:object size:0x4 scope:local data:4byte +moveAwayObj = .sbss:0x801D3BF4; // type:object size:0x4 scope:local data:4byte +junctionArrowRot = .sbss:0x801D3BF8; // type:object size:0x8 scope:local +moveAwayPlayer = .sbss:0x801D3C00; // type:object size:0x4 scope:local data:byte +itemPrev = .sbss:0x801D3C04; // type:object size:0x1 scope:local data:byte +playerMot = .sbss:0x801D3C06; // type:object size:0x8 scope:local +boardPlayerMdl = .sbss:0x801D3C0E; // type:object size:0xA lbl_801D3C18 = .sbss:0x801D3C18; // type:object size:0x4 data:4byte lbl_801D3C1C = .sbss:0x801D3C1C; // type:object size:0x4 data:4byte lbl_801D3C20 = .sbss:0x801D3C20; // type:object size:0x8 data:2byte @@ -5491,9 +5500,9 @@ lbl_801D3F60 = .sbss:0x801D3F60; // type:object size:0x1 data:byte lbl_801D3F61 = .sbss:0x801D3F61; // type:object size:0x1 data:byte lbl_801D3F62 = .sbss:0x801D3F62; // type:object size:0x1 data:byte lbl_801D3F64 = .sbss:0x801D3F64; // type:object size:0x4 data:4byte -lbl_801D3F68 = .sbss:0x801D3F68; // type:object size:0x2 data:2byte -lbl_801D3F6A = .sbss:0x801D3F6A; // type:object size:0x1 data:byte -lbl_801D3F6B = .sbss:0x801D3F6B; // type:object size:0x1 data:byte +boardTutorialDirInputTime = .sbss:0x801D3F68; // type:object size:0x2 data:2byte +boardTutorialDirInputY = .sbss:0x801D3F6A; // type:object size:0x1 data:byte +boardTutorialDirInputX = .sbss:0x801D3F6B; // type:object size:0x1 data:byte lbl_801D3F6C = .sbss:0x801D3F6C; // type:object size:0x4 data:4byte BootInfo = .sbss:0x801D3F70; // type:object size:0x4 scope:local data:4byte BI2DebugFlag = .sbss:0x801D3F74; // type:object size:0x4 scope:local data:4byte @@ -6223,64 +6232,64 @@ lbl_801D4E70 = .sdata2:0x801D4E70; // type:object size:0x8 scope:local data:doub lbl_801D4E78 = .sdata2:0x801D4E78; // type:object size:0x4 scope:local data:float lbl_801D4E7C = .sdata2:0x801D4E7C; // type:object size:0x4 scope:local data:float lbl_801D4E80 = .sdata2:0x801D4E80; // type:object size:0x4 scope:local data:float -lbl_801D4E84 = .sdata2:0x801D4E84; // type:object size:0x4 data:float -lbl_801D4E88 = .sdata2:0x801D4E88; // type:object size:0x4 data:float -lbl_801D4E8C = .sdata2:0x801D4E8C; // type:object size:0x4 data:float -lbl_801D4E90 = .sdata2:0x801D4E90; // type:object size:0x4 data:float -lbl_801D4E94 = .sdata2:0x801D4E94; // type:object size:0x4 data:float -lbl_801D4E98 = .sdata2:0x801D4E98; // type:object size:0x4 data:float -lbl_801D4E9C = .sdata2:0x801D4E9C; // type:object size:0x4 data:float -lbl_801D4EA0 = .sdata2:0x801D4EA0; // type:object size:0x4 data:float -lbl_801D4EA4 = .sdata2:0x801D4EA4; // type:object size:0x4 data:float -lbl_801D4EA8 = .sdata2:0x801D4EA8; // type:object size:0x4 data:float -lbl_801D4EAC = .sdata2:0x801D4EAC; // type:object size:0x4 data:float -lbl_801D4EB0 = .sdata2:0x801D4EB0; // type:object size:0x4 data:float -lbl_801D4EB4 = .sdata2:0x801D4EB4; // type:object size:0x4 data:float -lbl_801D4EB8 = .sdata2:0x801D4EB8; // type:object size:0x4 data:float -lbl_801D4EBC = .sdata2:0x801D4EBC; // type:object size:0x4 data:float -lbl_801D4EC0 = .sdata2:0x801D4EC0; // type:object size:0x4 data:float -lbl_801D4EC4 = .sdata2:0x801D4EC4; // type:object size:0x4 data:float -lbl_801D4EC8 = .sdata2:0x801D4EC8; // type:object size:0x4 data:float -lbl_801D4ECC = .sdata2:0x801D4ECC; // type:object size:0x4 data:float -lbl_801D4ED0 = .sdata2:0x801D4ED0; // type:object size:0x4 data:float -lbl_801D4ED8 = .sdata2:0x801D4ED8; // type:object size:0x8 data:double -lbl_801D4EE0 = .sdata2:0x801D4EE0; // type:object size:0x8 data:double -lbl_801D4EE8 = .sdata2:0x801D4EE8; // type:object size:0x4 data:float -lbl_801D4EF0 = .sdata2:0x801D4EF0; // type:object size:0x8 data:double -lbl_801D4EF8 = .sdata2:0x801D4EF8; // type:object size:0x4 data:float -lbl_801D4F00 = .sdata2:0x801D4F00; // type:object size:0x8 data:double -lbl_801D4F08 = .sdata2:0x801D4F08; // type:object size:0x4 data:float -lbl_801D4F0C = .sdata2:0x801D4F0C; // type:object size:0x4 data:float -lbl_801D4F10 = .sdata2:0x801D4F10; // type:object size:0x4 data:float -lbl_801D4F14 = .sdata2:0x801D4F14; // type:object size:0x4 data:float -lbl_801D4F18 = .sdata2:0x801D4F18; // type:object size:0x8 data:double -lbl_801D4F20 = .sdata2:0x801D4F20; // type:object size:0x8 data:double -lbl_801D4F28 = .sdata2:0x801D4F28; // type:object size:0x4 data:float -lbl_801D4F2C = .sdata2:0x801D4F2C; // type:object size:0x4 data:float -lbl_801D4F30 = .sdata2:0x801D4F30; // type:object size:0x4 data:float -lbl_801D4F34 = .sdata2:0x801D4F34; // type:object size:0x4 data:float -lbl_801D4F38 = .sdata2:0x801D4F38; // type:object size:0x4 data:float -lbl_801D4F3C = .sdata2:0x801D4F3C; // type:object size:0x4 data:float -lbl_801D4F40 = .sdata2:0x801D4F40; // type:object size:0x4 data:float -lbl_801D4F44 = .sdata2:0x801D4F44; // type:object size:0x4 data:float -lbl_801D4F48 = .sdata2:0x801D4F48; // type:object size:0x4 data:float -lbl_801D4F4C = .sdata2:0x801D4F4C; // type:object size:0x4 data:float -lbl_801D4F50 = .sdata2:0x801D4F50; // type:object size:0x4 data:float -lbl_801D4F54 = .sdata2:0x801D4F54; // type:object size:0x4 data:float -lbl_801D4F58 = .sdata2:0x801D4F58; // type:object size:0x4 data:float -lbl_801D4F5C = .sdata2:0x801D4F5C; // type:object size:0x4 data:float -lbl_801D4F60 = .sdata2:0x801D4F60; // type:object size:0x4 data:4byte -lbl_801D4F64 = .sdata2:0x801D4F64; // type:object size:0x4 data:4byte -lbl_801D4F68 = .sdata2:0x801D4F68; // type:object size:0x4 data:float -lbl_801D4F6C = .sdata2:0x801D4F6C; // type:object size:0x4 data:float -lbl_801D4F70 = .sdata2:0x801D4F70; // type:object size:0x4 data:float -lbl_801D4F74 = .sdata2:0x801D4F74; // type:object size:0x4 data:float -lbl_801D4F78 = .sdata2:0x801D4F78; // type:object size:0x4 data:float -lbl_801D4F7C = .sdata2:0x801D4F7C; // type:object size:0x4 data:float -lbl_801D4F80 = .sdata2:0x801D4F80; // type:object size:0x4 data:float -lbl_801D4F84 = .sdata2:0x801D4F84; // type:object size:0x4 data:float -lbl_801D4F88 = .sdata2:0x801D4F88; // type:object size:0x4 data:float -lbl_801D4F8C = .sdata2:0x801D4F8C; // type:object size:0x2 data:2byte +lbl_801D4E84 = .sdata2:0x801D4E84; // type:object size:0x4 scope:local data:float +lbl_801D4E88 = .sdata2:0x801D4E88; // type:object size:0x4 scope:local data:float +lbl_801D4E8C = .sdata2:0x801D4E8C; // type:object size:0x4 scope:local data:float +lbl_801D4E90 = .sdata2:0x801D4E90; // type:object size:0x4 scope:local data:float +lbl_801D4E94 = .sdata2:0x801D4E94; // type:object size:0x4 scope:local data:float +lbl_801D4E98 = .sdata2:0x801D4E98; // type:object size:0x4 scope:local data:float +lbl_801D4E9C = .sdata2:0x801D4E9C; // type:object size:0x4 scope:local data:float +lbl_801D4EA0 = .sdata2:0x801D4EA0; // type:object size:0x4 scope:local data:float +lbl_801D4EA4 = .sdata2:0x801D4EA4; // type:object size:0x4 scope:local data:float +lbl_801D4EA8 = .sdata2:0x801D4EA8; // type:object size:0x4 scope:local data:float +lbl_801D4EAC = .sdata2:0x801D4EAC; // type:object size:0x4 scope:local data:float +lbl_801D4EB0 = .sdata2:0x801D4EB0; // type:object size:0x4 scope:local data:float +lbl_801D4EB4 = .sdata2:0x801D4EB4; // type:object size:0x4 scope:local data:float +lbl_801D4EB8 = .sdata2:0x801D4EB8; // type:object size:0x4 scope:local data:float +lbl_801D4EBC = .sdata2:0x801D4EBC; // type:object size:0x4 scope:local data:float +lbl_801D4EC0 = .sdata2:0x801D4EC0; // type:object size:0x4 scope:local data:float +lbl_801D4EC4 = .sdata2:0x801D4EC4; // type:object size:0x4 scope:local data:float +lbl_801D4EC8 = .sdata2:0x801D4EC8; // type:object size:0x4 scope:local data:float +lbl_801D4ECC = .sdata2:0x801D4ECC; // type:object size:0x4 scope:local data:float +lbl_801D4ED0 = .sdata2:0x801D4ED0; // type:object size:0x4 scope:local data:float +lbl_801D4ED8 = .sdata2:0x801D4ED8; // type:object size:0x8 scope:local data:double +lbl_801D4EE0 = .sdata2:0x801D4EE0; // type:object size:0x8 scope:local data:double +lbl_801D4EE8 = .sdata2:0x801D4EE8; // type:object size:0x4 scope:local data:float +lbl_801D4EF0 = .sdata2:0x801D4EF0; // type:object size:0x8 scope:local data:double +lbl_801D4EF8 = .sdata2:0x801D4EF8; // type:object size:0x4 scope:local data:float +lbl_801D4F00 = .sdata2:0x801D4F00; // type:object size:0x8 scope:local data:double +lbl_801D4F08 = .sdata2:0x801D4F08; // type:object size:0x4 scope:local data:float +lbl_801D4F0C = .sdata2:0x801D4F0C; // type:object size:0x4 scope:local data:float +lbl_801D4F10 = .sdata2:0x801D4F10; // type:object size:0x4 scope:local data:float +lbl_801D4F14 = .sdata2:0x801D4F14; // type:object size:0x4 scope:local data:float +lbl_801D4F18 = .sdata2:0x801D4F18; // type:object size:0x8 scope:local data:double +lbl_801D4F20 = .sdata2:0x801D4F20; // type:object size:0x8 scope:local data:double +lbl_801D4F28 = .sdata2:0x801D4F28; // type:object size:0x4 scope:local data:float +lbl_801D4F2C = .sdata2:0x801D4F2C; // type:object size:0x4 scope:local data:float +lbl_801D4F30 = .sdata2:0x801D4F30; // type:object size:0x4 scope:local data:float +lbl_801D4F34 = .sdata2:0x801D4F34; // type:object size:0x4 scope:local data:float +lbl_801D4F38 = .sdata2:0x801D4F38; // type:object size:0x4 scope:local data:float +lbl_801D4F3C = .sdata2:0x801D4F3C; // type:object size:0x4 scope:local data:float +lbl_801D4F40 = .sdata2:0x801D4F40; // type:object size:0x4 scope:local data:float +lbl_801D4F44 = .sdata2:0x801D4F44; // type:object size:0x4 scope:local data:float +lbl_801D4F48 = .sdata2:0x801D4F48; // type:object size:0x4 scope:local data:float +lbl_801D4F4C = .sdata2:0x801D4F4C; // type:object size:0x4 scope:local data:float +lbl_801D4F50 = .sdata2:0x801D4F50; // type:object size:0x4 scope:local data:float +lbl_801D4F54 = .sdata2:0x801D4F54; // type:object size:0x4 scope:local data:float +lbl_801D4F58 = .sdata2:0x801D4F58; // type:object size:0x4 scope:local data:float +lbl_801D4F5C = .sdata2:0x801D4F5C; // type:object size:0x4 scope:local data:float +lbl_801D4F60 = .sdata2:0x801D4F60; // type:object size:0x4 scope:local data:4byte +lbl_801D4F64 = .sdata2:0x801D4F64; // type:object size:0x4 scope:local data:4byte +lbl_801D4F68 = .sdata2:0x801D4F68; // type:object size:0x4 scope:local data:float +lbl_801D4F6C = .sdata2:0x801D4F6C; // type:object size:0x4 scope:local data:float +lbl_801D4F70 = .sdata2:0x801D4F70; // type:object size:0x4 scope:local data:float +lbl_801D4F74 = .sdata2:0x801D4F74; // type:object size:0x4 scope:local data:float +lbl_801D4F78 = .sdata2:0x801D4F78; // type:object size:0x4 scope:local data:float +lbl_801D4F7C = .sdata2:0x801D4F7C; // type:object size:0x4 scope:local data:float +lbl_801D4F80 = .sdata2:0x801D4F80; // type:object size:0x4 scope:local data:float +lbl_801D4F84 = .sdata2:0x801D4F84; // type:object size:0x4 scope:local data:float +lbl_801D4F88 = .sdata2:0x801D4F88; // type:object size:0x4 scope:local data:float +lbl_801D4F8C = .sdata2:0x801D4F8C; // type:object size:0x2 scope:local data:2byte lbl_801D4F8E = .sdata2:0x801D4F8E; // type:object size:0x2 data:2byte lbl_801D4F90 = .sdata2:0x801D4F90; // type:object size:0x2 data:2byte lbl_801D4F92 = .sdata2:0x801D4F92; // type:object size:0x2 data:2byte diff --git a/configure.py b/configure.py index 675c7809..aa1b0b54 100644 --- a/configure.py +++ b/configure.py @@ -423,8 +423,8 @@ config.libs = [ Object(Matching, "game/flag.c"), Object(Matching, "game/saveload.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/sreset.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/player.c"), + Object(Matching, "game/board/main.c"), + Object(Matching, "game/board/player.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/model.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/window.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "game/board/audio.c"), diff --git a/src/game/board/main.c b/src/game/board/main.c index eaa31aa0..a1a904e3 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -1988,11 +1988,15 @@ void BoardLast5GfxInit(void) } else { prio = 1400; } +#if !VERSION_JPN spr_file = last5GfxSprTbl[i]; if(i == 2 && work->is_last && GWLanguageGet() != 0) { spr_file = DATA_MAKE_NUM(DATADIR_BOARD, 98); } BoardSpriteCreate(spr_file, prio, NULL, &work->sprites[i]); +#else + BoardSpriteCreate(last5GfxSprTbl[i], prio, NULL, &work->sprites[i]); +#endif HuSprGrpMemberSet(work->group, i, work->sprites[i]); HuSprAttrSet(work->group, i, HUSPR_ATTR_LINEAR); HuSprPosSet(work->group, i, last5GfxPosTbl[lastF][i][0], last5GfxPosTbl[lastF][i][1]); @@ -2203,4 +2207,4 @@ void BoardDataAsyncWait(s32 status) while(!HuDataGetAsyncStat(status)) { HuPrcVSleep(); } -} \ No newline at end of file +} diff --git a/src/game/board/player.c b/src/game/board/player.c index 6f57f1ea..c73efa85 100644 --- a/src/game/board/player.c +++ b/src/game/board/player.c @@ -137,6 +137,18 @@ static s32 bowserSuitCharMdlTbl[] = { static s32 bowserSuitMotTbl[] = { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x19), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1A), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1B), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1E), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1F) }; +#if VERSION_JPN +static s32 sparkMotTbl[] = { + DATA_MAKE_NUM(DATADIR_BOARD, 0x94), + DATA_MAKE_NUM(DATADIR_BOARD, 0x95), + DATA_MAKE_NUM(DATADIR_BOARD, 0x96), + DATA_MAKE_NUM(DATADIR_BOARD, 0x97), + DATA_MAKE_NUM(DATADIR_BOARD, 0x98), + DATA_MAKE_NUM(DATADIR_BOARD, 0x99), + DATA_MAKE_NUM(DATADIR_BOARD, 0x9A), + DATA_MAKE_NUM(DATADIR_BOARD, 0x9B), +}; +#else static s32 sparkMotTbl[] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x95), DATA_MAKE_NUM(DATADIR_BOARD, 0x96), @@ -147,6 +159,7 @@ static s32 sparkMotTbl[] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x9B), DATA_MAKE_NUM(DATADIR_BOARD, 0x9C), }; +#endif static s32 boardSparkSfxTbl[] = { 0x128, @@ -2499,7 +2512,7 @@ static s32 DoSparkSpace(s32 player, s32 pause_cam) BoardCameraMotionWait(); BoardCameraTargetPlayerSet(player); BoardPlayerIdleSet(player); - temp_r28 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x74), NULL, 0); + temp_r28 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, VERSION_JPN ? 0x73 : 0x74), NULL, 0); BoardModelMotionStart(temp_r28, 0, 0x40000002); BoardModelMotionTimeSet(temp_r28, 30.0f); BoardModelAttrSet(temp_r28, 0x40000002); @@ -2507,7 +2520,7 @@ static s32 DoSparkSpace(s32 player, s32 pause_cam) BoardModelScaleSet(temp_r28, 2.0f, 2.0f, 2.0f); BoardModelVisibilitySet(temp_r28, 0); BoardModelLayerSet(temp_r28, 1); - sp2E = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x67), NULL, 0); + sp2E = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, VERSION_JPN ? 0x66 : 0x67), NULL, 0); BoardModelLayerSet(sp2E, 1); BoardModelMotionStart(sp2E, 0, 0); HuAudFXPlay(796); diff --git a/src/game/sreset.c b/src/game/sreset.c index 2ddadd51..44679b73 100644 --- a/src/game/sreset.c +++ b/src/game/sreset.c @@ -22,7 +22,11 @@ extern s32 HuDvdErrWait; static s32 SR_PreRstChk[4] = {}; -#if VERSION_NTSC +#if VERSION_JPN +static s32 padding[4] = {}; +#endif + +#if VERSION_ENG #include "coveropen_en.inc" #include "fatalerror_en.inc" @@ -31,7 +35,7 @@ static s32 SR_PreRstChk[4] = {}; #include "retryerror_en.inc" #include "wrongdisc_en.inc" -#else +#elif VERSION_PAL #include "coveropen_en.inc" #include "fatalerror_en.inc" @@ -68,6 +72,15 @@ static s32 SR_PreRstChk[4] = {}; #include "retryerror_sp.inc" #include "wrongdisc_sp.inc" +#else + +#include "coveropen_jp.inc" +#include "fatalerror_jp.inc" +#include "loading_jp.inc" +#include "nodisc_jp.inc" +#include "retryerror_jp.inc" +#include "wrongdisc_jp.inc" + #endif static s16 SR_PushTime[4] = {}; @@ -287,11 +300,11 @@ static void ToeDispCheck(void) static void _HuDvdErrDispXFB(s32 error) { - #if VERSION_NTSC + #if VERSION_ENG static void *bmpMes[][6] = { - loading_en, coveropen_en, nodisc_en, wrongdisc_en, retryerror_en, fatalerror_en + loading_en, coveropen_en, nodisc_en, wrongdisc_en, retryerror_en, fatalerror_en }; - #else + #elif VERSION_PAL static void *bmpMes[][6] = { loading_en, coveropen_en, nodisc_en, wrongdisc_en, retryerror_en, fatalerror_en, loading_fr, coveropen_fr, nodisc_fr, wrongdisc_fr, retryerror_fr, fatalerror_fr, @@ -299,6 +312,10 @@ static void _HuDvdErrDispXFB(s32 error) loading_it, coveropen_it, nodisc_it, wrongdisc_it, retryerror_it, fatalerror_it, loading_sp, coveropen_sp, nodisc_sp, wrongdisc_sp, retryerror_sp, fatalerror_sp }; + #else + static void *bmpMes[][6] = { + loading_jp, coveropen_jp, nodisc_jp, wrongdisc_jp, retryerror_jp, fatalerror_jp + }; #endif s16 *bmpData; @@ -524,4 +541,4 @@ static void HuSoftResetPostProc(void) HuPadRumbleAllStop(); SR_ExecReset = TRUE; } -} \ No newline at end of file +} From 9303f273870fc0d881ea3f02aaba453d6ee29a35 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 26 Nov 2024 20:05:08 +0100 Subject: [PATCH 184/311] Set a lot of RELs to matching in the Japanese version Deleted unnecessary corresponding splits --- config/GMPJ01_00/config.yml | 176 +++--- config/GMPJ01_00/rels/_minigameDll/splits.txt | 6 - .../GMPJ01_00/rels/_minigameDll/symbols.txt | 7 - config/GMPJ01_00/rels/m401Dll/splits.txt | 7 - config/GMPJ01_00/rels/m401Dll/symbols.txt | 522 ---------------- config/GMPJ01_00/rels/m402Dll/splits.txt | 7 - config/GMPJ01_00/rels/m402Dll/symbols.txt | 204 ------ config/GMPJ01_00/rels/m403Dll/splits.txt | 7 - config/GMPJ01_00/rels/m403Dll/symbols.txt | 256 -------- config/GMPJ01_00/rels/m404Dll/splits.txt | 7 - config/GMPJ01_00/rels/m404Dll/symbols.txt | 154 ----- config/GMPJ01_00/rels/m405Dll/splits.txt | 7 - config/GMPJ01_00/rels/m405Dll/symbols.txt | 254 -------- config/GMPJ01_00/rels/m406Dll/splits.txt | 7 - config/GMPJ01_00/rels/m406Dll/symbols.txt | 434 ------------- config/GMPJ01_00/rels/m407dll/splits.txt | 7 - config/GMPJ01_00/rels/m407dll/symbols.txt | 271 -------- config/GMPJ01_00/rels/m408Dll/splits.txt | 7 - config/GMPJ01_00/rels/m408Dll/symbols.txt | 549 ----------------- config/GMPJ01_00/rels/m409Dll/splits.txt | 7 - config/GMPJ01_00/rels/m409Dll/symbols.txt | 332 ---------- config/GMPJ01_00/rels/m410Dll/splits.txt | 7 - config/GMPJ01_00/rels/m410Dll/symbols.txt | 317 ---------- config/GMPJ01_00/rels/m411Dll/splits.txt | 7 - config/GMPJ01_00/rels/m411Dll/symbols.txt | 278 --------- config/GMPJ01_00/rels/m412Dll/splits.txt | 7 - config/GMPJ01_00/rels/m412Dll/symbols.txt | 190 ------ config/GMPJ01_00/rels/m414Dll/splits.txt | 7 - config/GMPJ01_00/rels/m414Dll/symbols.txt | 183 ------ config/GMPJ01_00/rels/m415Dll/splits.txt | 7 - config/GMPJ01_00/rels/m415Dll/symbols.txt | 234 ------- config/GMPJ01_00/rels/m416Dll/splits.txt | 7 - config/GMPJ01_00/rels/m416Dll/symbols.txt | 209 ------- config/GMPJ01_00/rels/m417Dll/splits.txt | 7 - config/GMPJ01_00/rels/m417Dll/symbols.txt | 366 ----------- config/GMPJ01_00/rels/m420dll/splits.txt | 7 - config/GMPJ01_00/rels/m420dll/symbols.txt | 249 -------- config/GMPJ01_00/rels/m421Dll/splits.txt | 7 - config/GMPJ01_00/rels/m421Dll/symbols.txt | 277 --------- config/GMPJ01_00/rels/m431Dll/splits.txt | 7 - config/GMPJ01_00/rels/m431Dll/symbols.txt | 252 -------- config/GMPJ01_00/rels/m432Dll/splits.txt | 7 - config/GMPJ01_00/rels/m432Dll/symbols.txt | 359 ----------- config/GMPJ01_00/rels/m434Dll/splits.txt | 7 - config/GMPJ01_00/rels/m434Dll/symbols.txt | 337 ---------- config/GMPJ01_00/rels/m436Dll/splits.txt | 7 - config/GMPJ01_00/rels/m436Dll/symbols.txt | 352 ----------- config/GMPJ01_00/rels/m437Dll/splits.txt | 7 - config/GMPJ01_00/rels/m437Dll/symbols.txt | 411 ------------ config/GMPJ01_00/rels/m439Dll/splits.txt | 7 - config/GMPJ01_00/rels/m439Dll/symbols.txt | 325 ---------- config/GMPJ01_00/rels/m440Dll/splits.txt | 7 - config/GMPJ01_00/rels/m440Dll/symbols.txt | 288 --------- config/GMPJ01_00/rels/m441Dll/splits.txt | 7 - config/GMPJ01_00/rels/m441Dll/symbols.txt | 224 ------- config/GMPJ01_00/rels/m442Dll/splits.txt | 7 - config/GMPJ01_00/rels/m442Dll/symbols.txt | 225 ------- config/GMPJ01_00/rels/m443Dll/splits.txt | 7 - config/GMPJ01_00/rels/m443Dll/symbols.txt | 330 ---------- config/GMPJ01_00/rels/m445Dll/splits.txt | 7 - config/GMPJ01_00/rels/m445Dll/symbols.txt | 173 ------ config/GMPJ01_00/rels/m446dll/splits.txt | 7 - config/GMPJ01_00/rels/m446dll/symbols.txt | 305 --------- config/GMPJ01_00/rels/m447dll/splits.txt | 7 - config/GMPJ01_00/rels/m447dll/symbols.txt | 309 ---------- config/GMPJ01_00/rels/m448Dll/splits.txt | 7 - config/GMPJ01_00/rels/m448Dll/symbols.txt | 200 ------ config/GMPJ01_00/rels/m450Dll/splits.txt | 7 - config/GMPJ01_00/rels/m450Dll/symbols.txt | 558 ----------------- config/GMPJ01_00/rels/m451Dll/splits.txt | 7 - config/GMPJ01_00/rels/m451Dll/symbols.txt | 217 ------- config/GMPJ01_00/rels/m453Dll/splits.txt | 7 - config/GMPJ01_00/rels/m453Dll/symbols.txt | 279 --------- config/GMPJ01_00/rels/m455Dll/splits.txt | 7 - config/GMPJ01_00/rels/m455Dll/symbols.txt | 290 --------- config/GMPJ01_00/rels/m460Dll/splits.txt | 7 - config/GMPJ01_00/rels/m460Dll/symbols.txt | 301 --------- config/GMPJ01_00/rels/m461Dll/splits.txt | 7 - config/GMPJ01_00/rels/m461Dll/symbols.txt | 224 ------- config/GMPJ01_00/rels/mgmodedll/splits.txt | 7 - config/GMPJ01_00/rels/mgmodedll/symbols.txt | 583 ------------------ config/GMPJ01_00/rels/modeltestDll/splits.txt | 7 - .../GMPJ01_00/rels/modeltestDll/symbols.txt | 230 ------- config/GMPJ01_00/rels/present/splits.txt | 7 - config/GMPJ01_00/rels/present/symbols.txt | 189 ------ config/GMPJ01_00/rels/resultDll/splits.txt | 7 - config/GMPJ01_00/rels/resultDll/symbols.txt | 203 ------ configure.py | 238 +++---- 88 files changed, 207 insertions(+), 12957 deletions(-) delete mode 100644 config/GMPJ01_00/rels/_minigameDll/splits.txt delete mode 100644 config/GMPJ01_00/rels/_minigameDll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m401Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m401Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m402Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m402Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m403Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m403Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m404Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m404Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m405Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m405Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m406Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m406Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m407dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m407dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m408Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m408Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m409Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m409Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m410Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m410Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m411Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m411Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m412Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m412Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m414Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m414Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m415Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m415Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m416Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m416Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m417Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m417Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m420dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m420dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m421Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m421Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m431Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m431Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m432Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m432Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m434Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m434Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m436Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m436Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m437Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m437Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m439Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m439Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m440Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m440Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m441Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m441Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m442Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m442Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m443Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m443Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m445Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m445Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m446dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m446dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m447dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m447dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m448Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m448Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m450Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m450Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m451Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m451Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m453Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m453Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m455Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m455Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m460Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m460Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/m461Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m461Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/mgmodedll/splits.txt delete mode 100644 config/GMPJ01_00/rels/mgmodedll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/modeltestDll/splits.txt delete mode 100644 config/GMPJ01_00/rels/modeltestDll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/present/splits.txt delete mode 100644 config/GMPJ01_00/rels/present/symbols.txt delete mode 100644 config/GMPJ01_00/rels/resultDll/splits.txt delete mode 100644 config/GMPJ01_00/rels/resultDll/symbols.txt diff --git a/config/GMPJ01_00/config.yml b/config/GMPJ01_00/config.yml index b7b70d66..3d774ecc 100644 --- a/config/GMPJ01_00/config.yml +++ b/config/GMPJ01_00/config.yml @@ -14,8 +14,8 @@ fill_gaps: true modules: - object: files/dll/_minigameDll.rel - symbols: config/GMPJ01_00/rels/_minigameDll/symbols.txt - splits: config/GMPJ01_00/rels/_minigameDll/splits.txt + symbols: config/GMPE01_00/rels/_minigameDll/symbols.txt + splits: config/GMPE01_00/rels/_minigameDll/splits.txt links: [] - object: files/dll/bootDll.rel @@ -49,58 +49,58 @@ modules: links: [] - object: files/dll/m402Dll.rel - symbols: config/GMPJ01_00/rels/m402Dll/symbols.txt - splits: config/GMPJ01_00/rels/m402Dll/splits.txt + symbols: config/GMPE01_00/rels/m402Dll/symbols.txt + splits: config/GMPE01_00/rels/m402Dll/splits.txt links: [] - object: files/dll/m403Dll.rel - symbols: config/GMPJ01_00/rels/m403Dll/symbols.txt - splits: config/GMPJ01_00/rels/m403Dll/splits.txt + symbols: config/GMPE01_00/rels/m403Dll/symbols.txt + splits: config/GMPE01_00/rels/m403Dll/splits.txt links: [] - object: files/dll/m404Dll.rel - symbols: config/GMPJ01_00/rels/m404Dll/symbols.txt - splits: config/GMPJ01_00/rels/m404Dll/splits.txt + symbols: config/GMPE01_00/rels/m404Dll/symbols.txt + splits: config/GMPE01_00/rels/m404Dll/splits.txt links: [] - object: files/dll/m405Dll.rel - symbols: config/GMPJ01_00/rels/m405Dll/symbols.txt - splits: config/GMPJ01_00/rels/m405Dll/splits.txt + symbols: config/GMPE01_00/rels/m405Dll/symbols.txt + splits: config/GMPE01_00/rels/m405Dll/splits.txt links: [] - object: files/dll/m406Dll.rel - symbols: config/GMPJ01_00/rels/m406Dll/symbols.txt - splits: config/GMPJ01_00/rels/m406Dll/splits.txt + symbols: config/GMPE01_00/rels/m406Dll/symbols.txt + splits: config/GMPE01_00/rels/m406Dll/splits.txt links: [] - object: files/dll/m407dll.rel - symbols: config/GMPJ01_00/rels/m407dll/symbols.txt - splits: config/GMPJ01_00/rels/m407dll/splits.txt + symbols: config/GMPE01_00/rels/m407dll/symbols.txt + splits: config/GMPE01_00/rels/m407dll/splits.txt links: [] - object: files/dll/m408Dll.rel - symbols: config/GMPJ01_00/rels/m408Dll/symbols.txt - splits: config/GMPJ01_00/rels/m408Dll/splits.txt + symbols: config/GMPE01_00/rels/m408Dll/symbols.txt + splits: config/GMPE01_00/rels/m408Dll/splits.txt links: [] - object: files/dll/m409Dll.rel - symbols: config/GMPJ01_00/rels/m409Dll/symbols.txt - splits: config/GMPJ01_00/rels/m409Dll/splits.txt + symbols: config/GMPE01_00/rels/m409Dll/symbols.txt + splits: config/GMPE01_00/rels/m409Dll/splits.txt links: [] - object: files/dll/m410Dll.rel - symbols: config/GMPJ01_00/rels/m410Dll/symbols.txt - splits: config/GMPJ01_00/rels/m410Dll/splits.txt + symbols: config/GMPE01_00/rels/m410Dll/symbols.txt + splits: config/GMPE01_00/rels/m410Dll/splits.txt links: [] - object: files/dll/m411Dll.rel - symbols: config/GMPJ01_00/rels/m411Dll/symbols.txt - splits: config/GMPJ01_00/rels/m411Dll/splits.txt + symbols: config/GMPE01_00/rels/m411Dll/symbols.txt + splits: config/GMPE01_00/rels/m411Dll/splits.txt links: [] - object: files/dll/m412Dll.rel - symbols: config/GMPJ01_00/rels/m412Dll/symbols.txt - splits: config/GMPJ01_00/rels/m412Dll/splits.txt + symbols: config/GMPE01_00/rels/m412Dll/symbols.txt + splits: config/GMPE01_00/rels/m412Dll/splits.txt links: [] - object: files/dll/m413Dll.rel @@ -109,23 +109,23 @@ modules: links: [] - object: files/dll/m414Dll.rel - symbols: config/GMPJ01_00/rels/m414Dll/symbols.txt - splits: config/GMPJ01_00/rels/m414Dll/splits.txt + symbols: config/GMPE01_00/rels/m414Dll/symbols.txt + splits: config/GMPE01_00/rels/m414Dll/splits.txt links: [] - object: files/dll/m415Dll.rel - symbols: config/GMPJ01_00/rels/m415Dll/symbols.txt - splits: config/GMPJ01_00/rels/m415Dll/splits.txt + symbols: config/GMPE01_00/rels/m415Dll/symbols.txt + splits: config/GMPE01_00/rels/m415Dll/splits.txt links: [] - object: files/dll/m416Dll.rel - symbols: config/GMPJ01_00/rels/m416Dll/symbols.txt - splits: config/GMPJ01_00/rels/m416Dll/splits.txt + symbols: config/GMPE01_00/rels/m416Dll/symbols.txt + splits: config/GMPE01_00/rels/m416Dll/splits.txt links: [] - object: files/dll/m417Dll.rel - symbols: config/GMPJ01_00/rels/m417Dll/symbols.txt - splits: config/GMPJ01_00/rels/m417Dll/splits.txt + symbols: config/GMPE01_00/rels/m417Dll/symbols.txt + splits: config/GMPE01_00/rels/m417Dll/splits.txt links: [] - object: files/dll/m418Dll.rel @@ -139,13 +139,13 @@ modules: links: [] - object: files/dll/m420dll.rel - symbols: config/GMPJ01_00/rels/m420dll/symbols.txt - splits: config/GMPJ01_00/rels/m420dll/splits.txt + symbols: config/GMPE01_00/rels/m420dll/symbols.txt + splits: config/GMPE01_00/rels/m420dll/splits.txt links: [] - object: files/dll/m421Dll.rel - symbols: config/GMPJ01_00/rels/m421Dll/symbols.txt - splits: config/GMPJ01_00/rels/m421Dll/splits.txt + symbols: config/GMPE01_00/rels/m421Dll/symbols.txt + splits: config/GMPE01_00/rels/m421Dll/splits.txt links: [] - object: files/dll/m422Dll.rel @@ -194,13 +194,13 @@ modules: links: [] - object: files/dll/m431Dll.rel - symbols: config/GMPJ01_00/rels/m431Dll/symbols.txt - splits: config/GMPJ01_00/rels/m431Dll/splits.txt + symbols: config/GMPE01_00/rels/m431Dll/symbols.txt + splits: config/GMPE01_00/rels/m431Dll/splits.txt links: [] - object: files/dll/m432Dll.rel - symbols: config/GMPJ01_00/rels/m432Dll/symbols.txt - splits: config/GMPJ01_00/rels/m432Dll/splits.txt + symbols: config/GMPE01_00/rels/m432Dll/symbols.txt + splits: config/GMPE01_00/rels/m432Dll/splits.txt links: [] - object: files/dll/m433Dll.rel @@ -209,8 +209,8 @@ modules: links: [] - object: files/dll/m434Dll.rel - symbols: config/GMPJ01_00/rels/m434Dll/symbols.txt - splits: config/GMPJ01_00/rels/m434Dll/splits.txt + symbols: config/GMPE01_00/rels/m434Dll/symbols.txt + splits: config/GMPE01_00/rels/m434Dll/splits.txt links: [] - object: files/dll/m435Dll.rel @@ -219,13 +219,13 @@ modules: links: [] - object: files/dll/m436Dll.rel - symbols: config/GMPJ01_00/rels/m436Dll/symbols.txt - splits: config/GMPJ01_00/rels/m436Dll/splits.txt + symbols: config/GMPE01_00/rels/m436Dll/symbols.txt + splits: config/GMPE01_00/rels/m436Dll/splits.txt links: [] - object: files/dll/m437Dll.rel - symbols: config/GMPJ01_00/rels/m437Dll/symbols.txt - splits: config/GMPJ01_00/rels/m437Dll/splits.txt + symbols: config/GMPE01_00/rels/m437Dll/symbols.txt + splits: config/GMPE01_00/rels/m437Dll/splits.txt links: [] - object: files/dll/m438Dll.rel @@ -234,28 +234,28 @@ modules: links: [] - object: files/dll/m439Dll.rel - symbols: config/GMPJ01_00/rels/m439Dll/symbols.txt - splits: config/GMPJ01_00/rels/m439Dll/splits.txt + symbols: config/GMPE01_00/rels/m439Dll/symbols.txt + splits: config/GMPE01_00/rels/m439Dll/splits.txt links: [] - object: files/dll/m440Dll.rel - symbols: config/GMPJ01_00/rels/m440Dll/symbols.txt - splits: config/GMPJ01_00/rels/m440Dll/splits.txt + symbols: config/GMPE01_00/rels/m440Dll/symbols.txt + splits: config/GMPE01_00/rels/m440Dll/splits.txt links: [] - object: files/dll/m441Dll.rel - symbols: config/GMPJ01_00/rels/m441Dll/symbols.txt - splits: config/GMPJ01_00/rels/m441Dll/splits.txt + symbols: config/GMPE01_00/rels/m441Dll/symbols.txt + splits: config/GMPE01_00/rels/m441Dll/splits.txt links: [] - object: files/dll/m442Dll.rel - symbols: config/GMPJ01_00/rels/m442Dll/symbols.txt - splits: config/GMPJ01_00/rels/m442Dll/splits.txt + symbols: config/GMPE01_00/rels/m442Dll/symbols.txt + splits: config/GMPE01_00/rels/m442Dll/splits.txt links: [] - object: files/dll/m443Dll.rel - symbols: config/GMPJ01_00/rels/m443Dll/symbols.txt - splits: config/GMPJ01_00/rels/m443Dll/splits.txt + symbols: config/GMPE01_00/rels/m443Dll/symbols.txt + splits: config/GMPE01_00/rels/m443Dll/splits.txt links: [] - object: files/dll/m444dll.rel @@ -264,23 +264,23 @@ modules: links: [] - object: files/dll/m445Dll.rel - symbols: config/GMPJ01_00/rels/m445Dll/symbols.txt - splits: config/GMPJ01_00/rels/m445Dll/splits.txt + symbols: config/GMPE01_00/rels/m445Dll/symbols.txt + splits: config/GMPE01_00/rels/m445Dll/splits.txt links: [] - object: files/dll/m446dll.rel - symbols: config/GMPJ01_00/rels/m446dll/symbols.txt - splits: config/GMPJ01_00/rels/m446dll/splits.txt + symbols: config/GMPE01_00/rels/m446dll/symbols.txt + splits: config/GMPE01_00/rels/m446dll/splits.txt links: [] - object: files/dll/m447dll.rel - symbols: config/GMPJ01_00/rels/m447dll/symbols.txt - splits: config/GMPJ01_00/rels/m447dll/splits.txt + symbols: config/GMPE01_00/rels/m447dll/symbols.txt + splits: config/GMPE01_00/rels/m447dll/splits.txt links: [] - object: files/dll/m448Dll.rel - symbols: config/GMPJ01_00/rels/m448Dll/symbols.txt - splits: config/GMPJ01_00/rels/m448Dll/splits.txt + symbols: config/GMPE01_00/rels/m448Dll/symbols.txt + splits: config/GMPE01_00/rels/m448Dll/splits.txt links: [] - object: files/dll/m449Dll.rel @@ -289,23 +289,23 @@ modules: links: [] - object: files/dll/m450Dll.rel - symbols: config/GMPJ01_00/rels/m450Dll/symbols.txt - splits: config/GMPJ01_00/rels/m450Dll/splits.txt + symbols: config/GMPE01_00/rels/m450Dll/symbols.txt + splits: config/GMPE01_00/rels/m450Dll/splits.txt links: [] - object: files/dll/m451Dll.rel - symbols: config/GMPJ01_00/rels/m451Dll/symbols.txt - splits: config/GMPJ01_00/rels/m451Dll/splits.txt + symbols: config/GMPE01_00/rels/m451Dll/symbols.txt + splits: config/GMPE01_00/rels/m451Dll/splits.txt links: [] - object: files/dll/m453Dll.rel - symbols: config/GMPJ01_00/rels/m453Dll/symbols.txt - splits: config/GMPJ01_00/rels/m453Dll/splits.txt + symbols: config/GMPE01_00/rels/m453Dll/symbols.txt + splits: config/GMPE01_00/rels/m453Dll/splits.txt links: [] - object: files/dll/m455Dll.rel - symbols: config/GMPJ01_00/rels/m455Dll/symbols.txt - splits: config/GMPJ01_00/rels/m455Dll/splits.txt + symbols: config/GMPE01_00/rels/m455Dll/symbols.txt + splits: config/GMPE01_00/rels/m455Dll/splits.txt links: [] - object: files/dll/m456Dll.rel @@ -329,13 +329,13 @@ modules: links: [] - object: files/dll/m460Dll.rel - symbols: config/GMPJ01_00/rels/m460Dll/symbols.txt - splits: config/GMPJ01_00/rels/m460Dll/splits.txt + symbols: config/GMPE01_00/rels/m460Dll/symbols.txt + splits: config/GMPE01_00/rels/m460Dll/splits.txt links: [] - object: files/dll/m461Dll.rel - symbols: config/GMPJ01_00/rels/m461Dll/symbols.txt - splits: config/GMPJ01_00/rels/m461Dll/splits.txt + symbols: config/GMPE01_00/rels/m461Dll/symbols.txt + splits: config/GMPE01_00/rels/m461Dll/splits.txt links: [] - object: files/dll/m462Dll.rel @@ -359,13 +359,13 @@ modules: links: [] - object: files/dll/mgmodedll.rel - symbols: config/GMPJ01_00/rels/mgmodedll/symbols.txt - splits: config/GMPJ01_00/rels/mgmodedll/splits.txt + symbols: config/GMPE01_00/rels/mgmodedll/symbols.txt + splits: config/GMPE01_00/rels/mgmodedll/splits.txt links: [] - object: files/dll/modeltestDll.rel - symbols: config/GMPJ01_00/rels/modeltestDll/symbols.txt - splits: config/GMPJ01_00/rels/modeltestDll/splits.txt + symbols: config/GMPE01_00/rels/modeltestDll/symbols.txt + splits: config/GMPE01_00/rels/modeltestDll/splits.txt links: [] - object: files/dll/modeseldll.rel @@ -404,8 +404,8 @@ modules: links: [] - object: files/dll/nisDll.rel - symbols: config/GMPJ01_00/rels/nisDll/symbols.txt - splits: config/GMPJ01_00/rels/nisDll/splits.txt + symbols: config/GMPE01_00/rels/nisDll/symbols.txt + splits: config/GMPE01_00/rels/nisDll/splits.txt links: [] - object: files/dll/option.rel @@ -414,13 +414,13 @@ modules: links: [] - object: files/dll/present.rel - symbols: config/GMPJ01_00/rels/present/symbols.txt - splits: config/GMPJ01_00/rels/present/splits.txt + symbols: config/GMPE01_00/rels/present/symbols.txt + splits: config/GMPE01_00/rels/present/splits.txt links: [] - object: files/dll/resultDll.rel - symbols: config/GMPJ01_00/rels/resultDll/symbols.txt - splits: config/GMPJ01_00/rels/resultDll/splits.txt + symbols: config/GMPE01_00/rels/resultDll/symbols.txt + splits: config/GMPE01_00/rels/resultDll/splits.txt links: [] - object: files/dll/safDll.rel @@ -504,8 +504,8 @@ modules: links: [_minigameDll] - object: files/dll/m401Dll.rel - symbols: config/GMPJ01_00/rels/m401Dll/symbols.txt - splits: config/GMPJ01_00/rels/m401Dll/splits.txt + symbols: config/GMPE01_00/rels/m401Dll/symbols.txt + splits: config/GMPE01_00/rels/m401Dll/splits.txt links: [_minigameDll] extract: diff --git a/config/GMPJ01_00/rels/_minigameDll/splits.txt b/config/GMPJ01_00/rels/_minigameDll/splits.txt deleted file mode 100644 index be323846..00000000 --- a/config/GMPJ01_00/rels/_minigameDll/splits.txt +++ /dev/null @@ -1,6 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 diff --git a/config/GMPJ01_00/rels/_minigameDll/symbols.txt b/config/GMPJ01_00/rels/_minigameDll/symbols.txt deleted file mode 100644 index 5c4a5ab3..00000000 --- a/config/GMPJ01_00/rels/_minigameDll/symbols.txt +++ /dev/null @@ -1,7 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x2C -fn_1_CC = .text:0x000000CC; // type:function size:0x24 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_data_0 = .data:0x00000000; // type:object size:0x14 data:string diff --git a/config/GMPJ01_00/rels/m401Dll/splits.txt b/config/GMPJ01_00/rels/m401Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m401Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m401Dll/symbols.txt b/config/GMPJ01_00/rels/m401Dll/symbols.txt deleted file mode 100644 index 6a0cc8b9..00000000 --- a/config/GMPJ01_00/rels/m401Dll/symbols.txt +++ /dev/null @@ -1,522 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_2_A0 = .text:0x000000A0; // type:function size:0x66C -fn_2_70C = .text:0x0000070C; // type:function size:0x304 -fn_2_A10 = .text:0x00000A10; // type:function size:0x88 -fn_2_A98 = .text:0x00000A98; // type:function size:0x54 -fn_2_AEC = .text:0x00000AEC; // type:function size:0x130 -fn_2_C1C = .text:0x00000C1C; // type:function size:0x5B4 -fn_2_11D0 = .text:0x000011D0; // type:function size:0x3F4 -fn_2_15C4 = .text:0x000015C4; // type:function size:0xD8 -fn_2_169C = .text:0x0000169C; // type:function size:0x1BC -fn_2_1858 = .text:0x00001858; // type:function size:0x1E0 -fn_2_1A38 = .text:0x00001A38; // type:function size:0x148 -fn_2_1B80 = .text:0x00001B80; // type:function size:0x170 -fn_2_1CF0 = .text:0x00001CF0; // type:function size:0xF8 -fn_2_1DE8 = .text:0x00001DE8; // type:function size:0x2C8 -fn_2_20B0 = .text:0x000020B0; // type:function size:0x148 -fn_2_21F8 = .text:0x000021F8; // type:function size:0x4E8 -fn_2_26E0 = .text:0x000026E0; // type:function size:0x5DC -fn_2_2CBC = .text:0x00002CBC; // type:function size:0xA8 -fn_2_2D64 = .text:0x00002D64; // type:function size:0x68 -fn_2_2DCC = .text:0x00002DCC; // type:function size:0x54 -fn_2_2E20 = .text:0x00002E20; // type:function size:0xB0 -fn_2_2ED0 = .text:0x00002ED0; // type:function size:0xCC -fn_2_2F9C = .text:0x00002F9C; // type:function size:0x4 -fn_2_2FA0 = .text:0x00002FA0; // type:function size:0x4 -fn_2_2FA4 = .text:0x00002FA4; // type:function size:0x410 -fn_2_33B4 = .text:0x000033B4; // type:function size:0x104 -fn_2_34B8 = .text:0x000034B8; // type:function size:0x380 -fn_2_3838 = .text:0x00003838; // type:function size:0x2EC -fn_2_3B24 = .text:0x00003B24; // type:function size:0x404 -fn_2_3F28 = .text:0x00003F28; // type:function size:0x978 -fn_2_48A0 = .text:0x000048A0; // type:function size:0x1420 -fn_2_5CC0 = .text:0x00005CC0; // type:function size:0x93C -fn_2_65FC = .text:0x000065FC; // type:function size:0x4F8 -fn_2_6AF4 = .text:0x00006AF4; // type:function size:0x50 -fn_2_6B44 = .text:0x00006B44; // type:function size:0x150 -fn_2_6C94 = .text:0x00006C94; // type:function size:0x9AC -fn_2_7640 = .text:0x00007640; // type:function size:0x6C -fn_2_76AC = .text:0x000076AC; // type:function size:0x280 -fn_2_792C = .text:0x0000792C; // type:function size:0x310 -fn_2_7C3C = .text:0x00007C3C; // type:function size:0x78 -fn_2_7CB4 = .text:0x00007CB4; // type:function size:0x1B8 -fn_2_7E6C = .text:0x00007E6C; // type:function size:0x70 -fn_2_7EDC = .text:0x00007EDC; // type:function size:0x574 -fn_2_8450 = .text:0x00008450; // type:function size:0x2EC -fn_2_873C = .text:0x0000873C; // type:function size:0x12C -fn_2_8868 = .text:0x00008868; // type:function size:0x100 -fn_2_8968 = .text:0x00008968; // type:function size:0x1F0 -fn_2_8B58 = .text:0x00008B58; // type:function size:0x100 -fn_2_8C58 = .text:0x00008C58; // type:function size:0x21C -fn_2_8E74 = .text:0x00008E74; // type:function size:0x338 -fn_2_91AC = .text:0x000091AC; // type:function size:0xEC -fn_2_9298 = .text:0x00009298; // type:function size:0x34C -fn_2_95E4 = .text:0x000095E4; // type:function size:0x150 -fn_2_9734 = .text:0x00009734; // type:function size:0x68 -fn_2_979C = .text:0x0000979C; // type:function size:0xF0 -fn_2_988C = .text:0x0000988C; // type:function size:0x118 -fn_2_99A4 = .text:0x000099A4; // type:function size:0x1EC -fn_2_9B90 = .text:0x00009B90; // type:function size:0x170 -fn_2_9D00 = .text:0x00009D00; // type:function size:0x128 -fn_2_9E28 = .text:0x00009E28; // type:function size:0x288 -fn_2_A0B0 = .text:0x0000A0B0; // type:function size:0x268 -fn_2_A318 = .text:0x0000A318; // type:function size:0x58C -fn_2_A8A4 = .text:0x0000A8A4; // type:function size:0x70 -fn_2_A914 = .text:0x0000A914; // type:function size:0x2C -fn_2_A940 = .text:0x0000A940; // type:function size:0x2EC -fn_2_AC2C = .text:0x0000AC2C; // type:function size:0x1164 -fn_2_BD90 = .text:0x0000BD90; // type:function size:0x3A0 -fn_2_C130 = .text:0x0000C130; // type:function size:0x5AC -fn_2_C6DC = .text:0x0000C6DC; // type:function size:0x164 -fn_2_C840 = .text:0x0000C840; // type:function size:0x270 -fn_2_CAB0 = .text:0x0000CAB0; // type:function size:0x5D8 -fn_2_D088 = .text:0x0000D088; // type:function size:0xF8 -fn_2_D180 = .text:0x0000D180; // type:function size:0x268 -fn_2_D3E8 = .text:0x0000D3E8; // type:function size:0x4E4 -fn_2_D8CC = .text:0x0000D8CC; // type:function size:0x300 -fn_2_DBCC = .text:0x0000DBCC; // type:function size:0x250 -fn_2_DE1C = .text:0x0000DE1C; // type:function size:0xA0 -fn_2_DEBC = .text:0x0000DEBC; // type:function size:0x390 -fn_2_E24C = .text:0x0000E24C; // type:function size:0x118 -fn_2_E364 = .text:0x0000E364; // type:function size:0xBC -fn_2_E420 = .text:0x0000E420; // type:function size:0x24C -fn_2_E66C = .text:0x0000E66C; // type:function size:0x30 -fn_2_E69C = .text:0x0000E69C; // type:function size:0x20 -fn_2_E6BC = .text:0x0000E6BC; // type:function size:0x2C -fn_2_E6E8 = .text:0x0000E6E8; // type:function size:0x1090 -fn_2_F778 = .text:0x0000F778; // type:function size:0x4C8 -fn_2_FC40 = .text:0x0000FC40; // type:function size:0x358 -fn_2_FF98 = .text:0x0000FF98; // type:function size:0x2A8 -fn_2_10240 = .text:0x00010240; // type:function size:0x1DC -fn_2_1041C = .text:0x0001041C; // type:function size:0x2F4 -fn_2_10710 = .text:0x00010710; // type:function size:0x8C -fn_2_1079C = .text:0x0001079C; // type:function size:0x12C -fn_2_108C8 = .text:0x000108C8; // type:function size:0xB8 -fn_2_10980 = .text:0x00010980; // type:function size:0x88 -fn_2_10A08 = .text:0x00010A08; // type:function size:0x80 -fn_2_10A88 = .text:0x00010A88; // type:function size:0x924 -fn_2_113AC = .text:0x000113AC; // type:function size:0x504 -fn_2_118B0 = .text:0x000118B0; // type:function size:0x1B8 -fn_2_11A68 = .text:0x00011A68; // type:function size:0x110 -fn_2_11B78 = .text:0x00011B78; // type:function size:0xB8 -fn_2_11C30 = .text:0x00011C30; // type:function size:0x110 -fn_2_11D40 = .text:0x00011D40; // type:function size:0x104 -fn_2_11E44 = .text:0x00011E44; // type:function size:0xB8 -fn_2_11EFC = .text:0x00011EFC; // type:function size:0xB8 -fn_2_11FB4 = .text:0x00011FB4; // type:function size:0x444 -fn_2_123F8 = .text:0x000123F8; // type:function size:0x2D0 -fn_2_126C8 = .text:0x000126C8; // type:function size:0x2C -fn_2_126F4 = .text:0x000126F4; // type:function size:0x43C -fn_2_12B30 = .text:0x00012B30; // type:function size:0x4EC -fn_2_1301C = .text:0x0001301C; // type:function size:0x4F0 -fn_2_1350C = .text:0x0001350C; // type:function size:0x670 -fn_2_13B7C = .text:0x00013B7C; // type:function size:0x634 -fn_2_141B0 = .text:0x000141B0; // type:function size:0x120 -fn_2_142D0 = .text:0x000142D0; // type:function size:0x4 -fn_2_142D4 = .text:0x000142D4; // type:function size:0x36C -fn_2_14640 = .text:0x00014640; // type:function size:0xF8 -fn_2_14738 = .text:0x00014738; // type:function size:0x7C -fn_2_147B4 = .text:0x000147B4; // type:function size:0x660 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_2_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_2_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_2_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_2_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_2_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_2_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_2_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_2_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_2_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_2_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_2_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_2_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_2_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_2_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_2_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_2_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_2_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_2_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_2_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_2_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_2_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_2_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_2_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_2_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_2_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_2_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_2_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_2_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_2_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_2_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_2_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_2_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_2_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_2_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_2_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_2_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_2_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_2_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_2_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_2_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_2_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_2_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_2_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_2_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_2_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_2_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_2_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_2_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_2_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_2_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_2_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_2_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_2_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_2_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_2_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_2_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_2_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_2_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_2_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_2_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_2_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_2_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_2_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_2_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_2_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_2_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_2_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_2_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_2_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_2_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_2_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_2_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_2_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_2_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_2_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_2_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_2_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_2_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_2_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_2_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_2_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_2_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_2_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_2_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_2_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_2_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_2_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_2_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_2_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_2_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_2_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_2_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_2_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_2_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_2_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_2_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_2_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_2_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_2_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_2_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_2_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_2_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_2_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_2_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_2_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_2_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_2_rodata_1DC = .rodata:0x000001DC; // type:object size:0x10 data:4byte -lbl_2_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_2_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_2_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_2_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_2_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_2_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_2_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_2_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_2_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_2_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_2_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_2_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_2_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_2_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_2_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_2_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_2_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_2_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_2_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_2_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_2_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_2_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_2_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_2_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_2_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_2_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_2_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_2_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_2_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_2_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_2_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_2_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_2_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_2_rodata_290 = .rodata:0x00000290; // type:object size:0x40 data:2byte -lbl_2_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:2byte -lbl_2_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:2byte -lbl_2_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:2byte -lbl_2_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_2_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_2_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_2_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_2_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_2_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_2_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_2_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_2_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_2_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_2_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_2_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_2_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_2_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_2_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_2_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_2_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_2_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_2_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_2_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double -lbl_2_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_2_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_2_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_2_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_2_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_2_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_2_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double -lbl_2_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_2_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_2_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_2_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_2_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_2_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_2_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_2_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_2_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_2_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_2_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_2_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_2_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_2_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_2_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_2_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_2_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_2_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_2_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_2_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_2_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_2_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_2_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_2_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_2_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_2_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_2_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_2_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_2_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_2_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_2_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_2_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_2_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_2_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_2_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_2_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_2_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double -lbl_2_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_2_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_2_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_2_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_2_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double -lbl_2_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_2_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double -lbl_2_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double -lbl_2_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_2_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_2_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_2_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_2_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_2_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_2_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_2_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_2_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double -lbl_2_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_2_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_2_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double -lbl_2_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double -lbl_2_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_2_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_2_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_2_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_2_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_2_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_2_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_2_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_2_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_2_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double -lbl_2_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double -lbl_2_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double -lbl_2_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double -lbl_2_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_2_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_2_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_2_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_2_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_2_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_2_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_2_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_2_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_2_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_2_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_2_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_2_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double -lbl_2_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double -lbl_2_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_2_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_2_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_2_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_2_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_2_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_2_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_2_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_2_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_2_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_2_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_2_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_2_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float -lbl_2_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float -lbl_2_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_2_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float -lbl_2_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double -lbl_2_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_2_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float -lbl_2_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:double -lbl_2_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float -lbl_2_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float -lbl_2_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_2_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float -lbl_2_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float -lbl_2_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float -lbl_2_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_2_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_2_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_2_rodata_590 = .rodata:0x00000590; // type:object size:0x8 data:double -lbl_2_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_2_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float -lbl_2_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float -lbl_2_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float -lbl_2_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_2_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_2_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_2_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_2_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 data:double -lbl_2_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float -lbl_2_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float -lbl_2_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float -lbl_2_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_2_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_2_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float -lbl_2_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float -lbl_2_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float -lbl_2_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_2_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_2_data_0 = .data:0x00000000; // type:object size:0x4 data:float -lbl_2_data_4 = .data:0x00000004; // type:object size:0x10 -lbl_2_data_14 = .data:0x00000014; // type:object size:0xC -lbl_2_data_20 = .data:0x00000020; // type:object size:0xC -lbl_2_data_2C = .data:0x0000002C; // type:object size:0x4 -lbl_2_data_30 = .data:0x00000030; // type:object size:0xC data:float -lbl_2_data_3C = .data:0x0000003C; // type:object size:0xC -lbl_2_data_48 = .data:0x00000048; // type:object size:0xC data:float -lbl_2_data_54 = .data:0x00000054; // type:object size:0x1B data:string -lbl_2_data_6F = .data:0x0000006F; // type:object size:0x11 -lbl_2_data_80 = .data:0x00000080; // type:object size:0x20 -lbl_2_data_A0 = .data:0x000000A0; // type:object size:0x14 -lbl_2_data_B4 = .data:0x000000B4; // type:object size:0x18 -lbl_2_data_CC = .data:0x000000CC; // type:object size:0x28 -lbl_2_data_F4 = .data:0x000000F4; // type:object size:0x9 data:string -lbl_2_data_FD = .data:0x000000FD; // type:object size:0x9 data:string -lbl_2_data_106 = .data:0x00000106; // type:object size:0x9 data:string -lbl_2_data_10F = .data:0x0000010F; // type:object size:0x9 data:string -lbl_2_data_118 = .data:0x00000118; // type:object size:0xC -lbl_2_data_124 = .data:0x00000124; // type:object size:0x34 data:4byte -lbl_2_data_158 = .data:0x00000158; // type:object size:0x140 -lbl_2_data_298 = .data:0x00000298; // type:object size:0x30 -lbl_2_data_2C8 = .data:0x000002C8; // type:object size:0x30 -jumptable_2_data_2F8 = .data:0x000002F8; // type:object size:0x30 scope:local -lbl_2_data_32C = .data:0x0000032C; // type:object size:0x8 -lbl_2_data_334 = .data:0x00000334; // type:object size:0xF0 -lbl_2_data_424 = .data:0x00000424; // type:object size:0x8 -lbl_2_data_42C = .data:0x0000042C; // type:object size:0x28 -lbl_2_data_454 = .data:0x00000454; // type:object size:0xC data:string -lbl_2_data_460 = .data:0x00000460; // type:object size:0xC -lbl_2_data_46C = .data:0x0000046C; // type:object size:0x5 data:string -lbl_2_data_471 = .data:0x00000471; // type:object size:0x7 -jumptable_2_data_478 = .data:0x00000478; // type:object size:0x20 scope:local -lbl_2_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_2_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_2_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte -lbl_2_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte -lbl_2_bss_10 = .bss:0x00000010; // type:object size:0x4 data:float -lbl_2_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_2_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte -lbl_2_bss_1A = .bss:0x0000001A; // type:object size:0x2 data:2byte -lbl_2_bss_1C = .bss:0x0000001C; // type:object size:0x10 data:4byte -lbl_2_bss_2C = .bss:0x0000002C; // type:object size:0xC data:float -lbl_2_bss_38 = .bss:0x00000038; // type:object size:0xC data:float -lbl_2_bss_44 = .bss:0x00000044; // type:object size:0xC data:float -lbl_2_bss_50 = .bss:0x00000050; // type:object size:0x4 data:float -lbl_2_bss_54 = .bss:0x00000054; // type:object size:0xC data:4byte -lbl_2_bss_60 = .bss:0x00000060; // type:object size:0xC data:float -lbl_2_bss_6C = .bss:0x0000006C; // type:object size:0xC data:float -lbl_2_bss_78 = .bss:0x00000078; // type:object size:0xC data:float -lbl_2_bss_84 = .bss:0x00000084; // type:object size:0x4 data:float -lbl_2_bss_88 = .bss:0x00000088; // type:object size:0x4 data:float -lbl_2_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte -lbl_2_bss_90 = .bss:0x00000090; // type:object size:0x14 data:4byte -lbl_2_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte -lbl_2_bss_A8 = .bss:0x000000A8; // type:object size:0x2 data:2byte -lbl_2_bss_AA = .bss:0x000000AA; // type:object size:0x8 data:2byte -lbl_2_bss_B2 = .bss:0x000000B2; // type:object size:0x8 data:2byte -lbl_2_bss_BA = .bss:0x000000BA; // type:object size:0x2 data:2byte -lbl_2_bss_BE = .bss:0x000000BE; // type:object size:0x2 data:2byte -lbl_2_bss_C0 = .bss:0x000000C0; // type:object size:0x2 data:2byte -lbl_2_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte -lbl_2_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte -lbl_2_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte -lbl_2_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte -lbl_2_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte -lbl_2_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte -lbl_2_bss_DC = .bss:0x000000DC; // type:object size:0x4 data:4byte -lbl_2_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte -lbl_2_bss_E4 = .bss:0x000000E4; // type:object size:0x10 -lbl_2_bss_F4 = .bss:0x000000F4; // type:object size:0x4 data:4byte -lbl_2_bss_F8 = .bss:0x000000F8; // type:object size:0x4 data:4byte -lbl_2_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte -lbl_2_bss_100 = .bss:0x00000100; // type:object size:0x8 data:4byte -lbl_2_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte -lbl_2_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte -lbl_2_bss_110 = .bss:0x00000110; // type:object size:0x4 data:4byte -lbl_2_bss_114 = .bss:0x00000114; // type:object size:0x4 data:4byte -lbl_2_bss_118 = .bss:0x00000118; // type:object size:0x4 data:4byte -lbl_2_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte -lbl_2_bss_120 = .bss:0x00000120; // type:object size:0x2 data:2byte -lbl_2_bss_124 = .bss:0x00000124; // type:object size:0x4 data:float -lbl_2_bss_128 = .bss:0x00000128; // type:object size:0x4 data:float -lbl_2_bss_12C = .bss:0x0000012C; // type:object size:0x8 data:float -lbl_2_bss_134 = .bss:0x00000134; // type:object size:0x2 data:2byte -lbl_2_bss_136 = .bss:0x00000136; // type:object size:0x8 -lbl_2_bss_13E = .bss:0x0000013E; // type:object size:0xE2 -lbl_2_bss_220 = .bss:0x00000220; // type:object size:0x18 data:4byte -lbl_2_bss_238 = .bss:0x00000238; // type:object size:0x4 data:4byte -lbl_2_bss_23C = .bss:0x0000023C; // type:object size:0x4 data:4byte -lbl_2_bss_240 = .bss:0x00000240; // type:object size:0x4 data:4byte -lbl_2_bss_244 = .bss:0x00000244; // type:object size:0x4 data:4byte -lbl_2_bss_248 = .bss:0x00000248; // type:object size:0x4 data:4byte -lbl_2_bss_24C = .bss:0x0000024C; // type:object size:0x4 data:4byte -lbl_2_bss_250 = .bss:0x00000250; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m402Dll/splits.txt b/config/GMPJ01_00/rels/m402Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m402Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m402Dll/symbols.txt b/config/GMPJ01_00/rels/m402Dll/symbols.txt deleted file mode 100644 index 5fa3679a..00000000 --- a/config/GMPJ01_00/rels/m402Dll/symbols.txt +++ /dev/null @@ -1,204 +0,0 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x24 -fn_1_24 = .text:0x00000024; // type:function size:0x88 -fn_1_AC = .text:0x000000AC; // type:function size:0xA4 -fn_1_150 = .text:0x00000150; // type:function size:0x24 -fn_1_174 = .text:0x00000174; // type:function size:0x164 -fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C -fn_1_414 = .text:0x00000414; // type:function size:0x58 -fn_1_46C = .text:0x0000046C; // type:function size:0x114 -fn_1_580 = .text:0x00000580; // type:function size:0x218 -fn_1_798 = .text:0x00000798; // type:function size:0x254 -fn_1_9EC = .text:0x000009EC; // type:function size:0x54 -fn_1_A40 = .text:0x00000A40; // type:function size:0x10C -fn_1_B4C = .text:0x00000B4C; // type:function size:0x6A8 -fn_1_11F4 = .text:0x000011F4; // type:function size:0x15C -fn_1_1350 = .text:0x00001350; // type:function size:0x8C -fn_1_13DC = .text:0x000013DC; // type:function size:0x334 -fn_1_1710 = .text:0x00001710; // type:function size:0x350 -fn_1_1A60 = .text:0x00001A60; // type:function size:0x2B8 -fn_1_1D18 = .text:0x00001D18; // type:function size:0x58 -fn_1_1D70 = .text:0x00001D70; // type:function size:0xB0 -fn_1_1E20 = .text:0x00001E20; // type:function size:0x104 -fn_1_1F24 = .text:0x00001F24; // type:function size:0x34 -fn_1_1F58 = .text:0x00001F58; // type:function size:0x6C -fn_1_1FC4 = .text:0x00001FC4; // type:function size:0x3F0 -_prolog = .text:0x000023B4; // type:function size:0x54 scope:global -_epilog = .text:0x00002408; // type:function size:0x4C scope:global -fn_1_2454 = .text:0x00002454; // type:function size:0x2F0 -fn_1_2744 = .text:0x00002744; // type:function size:0x64 -fn_1_27A8 = .text:0x000027A8; // type:function size:0xD8 -fn_1_2880 = .text:0x00002880; // type:function size:0xF0 -fn_1_2970 = .text:0x00002970; // type:function size:0x1C0 -fn_1_2B30 = .text:0x00002B30; // type:function size:0x28C -fn_1_2DBC = .text:0x00002DBC; // type:function size:0x380 -fn_1_313C = .text:0x0000313C; // type:function size:0xC8 -fn_1_3204 = .text:0x00003204; // type:function size:0xF8C -fn_1_4190 = .text:0x00004190; // type:function size:0xF4 -fn_1_4284 = .text:0x00004284; // type:function size:0x154 -fn_1_43D8 = .text:0x000043D8; // type:function size:0x1FF0 -fn_1_63C8 = .text:0x000063C8; // type:function size:0x490 -fn_1_6858 = .text:0x00006858; // type:function size:0x4 -fn_1_685C = .text:0x0000685C; // type:function size:0x258 -fn_1_6AB4 = .text:0x00006AB4; // type:function size:0x3B0 -fn_1_6E64 = .text:0x00006E64; // type:function size:0x1BC -fn_1_7020 = .text:0x00007020; // type:function size:0xC4 -fn_1_70E4 = .text:0x000070E4; // type:function size:0x86C -fn_1_7950 = .text:0x00007950; // type:function size:0x19C -fn_1_7AEC = .text:0x00007AEC; // type:function size:0x25C -fn_1_7D48 = .text:0x00007D48; // type:function size:0x4 -fn_1_7D4C = .text:0x00007D4C; // type:function size:0x134 -fn_1_7E80 = .text:0x00007E80; // type:function size:0x4 -fn_1_7E84 = .text:0x00007E84; // type:function size:0x1C4 -fn_1_8048 = .text:0x00008048; // type:function size:0x1D0 -fn_1_8218 = .text:0x00008218; // type:function size:0xE40 -fn_1_9058 = .text:0x00009058; // type:function size:0x1EC -fn_1_9244 = .text:0x00009244; // type:function size:0x8B0 -fn_1_9AF4 = .text:0x00009AF4; // type:function size:0xD0 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 -lbl_1_data_10 = .data:0x00000010; // type:object size:0xC data:4byte -lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC -lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:4byte -lbl_1_data_34 = .data:0x00000034; // type:object size:0xC -lbl_1_data_40 = .data:0x00000040; // type:object size:0xC -lbl_1_data_4C = .data:0x0000004C; // type:object size:0x14 -lbl_1_data_60 = .data:0x00000060; // type:object size:0xC -lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC -lbl_1_data_78 = .data:0x00000078; // type:object size:0x160 -lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x10 -lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0xC -lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x4 data:4byte -lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x8 -lbl_1_data_200 = .data:0x00000200; // type:object size:0x18 -lbl_1_data_218 = .data:0x00000218; // type:object size:0x1C -lbl_1_data_234 = .data:0x00000234; // type:object size:0x190 -lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x14 -lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x1A data:string -lbl_1_data_3F2 = .data:0x000003F2; // type:object size:0x9 data:string -lbl_1_data_3FB = .data:0x000003FB; // type:object size:0x6 data:string -lbl_1_data_401 = .data:0x00000401; // type:object size:0x10 data:string -lbl_1_data_411 = .data:0x00000411; // type:object size:0x1F -jumptable_1_data_430 = .data:0x00000430; // type:object size:0x40 scope:local -lbl_1_data_470 = .data:0x00000470; // type:object size:0x17 data:string -lbl_1_data_487 = .data:0x00000487; // type:object size:0x1B data:string -lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x24 data:string -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte -lbl_1_bss_16 = .bss:0x00000016; // type:object size:0xE -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte -lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 data:2byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:float -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte -lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x100 -lbl_1_bss_15C = .bss:0x0000015C; // type:object size:0x40 data:4byte -lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x4 data:float -lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 data:4byte -lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 data:4byte -lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x2 data:2byte -lbl_1_bss_1AA = .bss:0x000001AA; // type:object size:0x2 data:2byte -lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 data:4byte -lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x4 data:4byte -lbl_1_bss_1B4 = .bss:0x000001B4; // type:object size:0x4 data:4byte -lbl_1_bss_1B8 = .bss:0x000001B8; // type:object size:0xC data:4byte -lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0xC data:4byte -lbl_1_bss_1D0 = .bss:0x000001D0; // type:object size:0xC data:4byte -lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0xC data:4byte -lbl_1_bss_1E8 = .bss:0x000001E8; // type:object size:0x4 data:4byte -lbl_1_bss_1EC = .bss:0x000001EC; // type:object size:0x18 data:4byte -lbl_1_bss_204 = .bss:0x00000204; // type:object size:0xC data:4byte diff --git a/config/GMPJ01_00/rels/m403Dll/splits.txt b/config/GMPJ01_00/rels/m403Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m403Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m403Dll/symbols.txt b/config/GMPJ01_00/rels/m403Dll/symbols.txt deleted file mode 100644 index f3ebacb7..00000000 --- a/config/GMPJ01_00/rels/m403Dll/symbols.txt +++ /dev/null @@ -1,256 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x384 -fn_1_424 = .text:0x00000424; // type:function size:0x20 -fn_1_444 = .text:0x00000444; // type:function size:0x3E8 -fn_1_82C = .text:0x0000082C; // type:function size:0x9E8 -fn_1_1214 = .text:0x00001214; // type:function size:0x60 -fn_1_1274 = .text:0x00001274; // type:function size:0x1EC -fn_1_1460 = .text:0x00001460; // type:function size:0x278 -fn_1_16D8 = .text:0x000016D8; // type:function size:0x104 -fn_1_17DC = .text:0x000017DC; // type:function size:0x274 -fn_1_1A50 = .text:0x00001A50; // type:function size:0xA0 -fn_1_1AF0 = .text:0x00001AF0; // type:function size:0x2B8 -fn_1_1DA8 = .text:0x00001DA8; // type:function size:0x28 -fn_1_1DD0 = .text:0x00001DD0; // type:function size:0x388 -fn_1_2158 = .text:0x00002158; // type:function size:0x14C -fn_1_22A4 = .text:0x000022A4; // type:function size:0x2F4 -fn_1_2598 = .text:0x00002598; // type:function size:0xA44 -fn_1_2FDC = .text:0x00002FDC; // type:function size:0x824 -fn_1_3800 = .text:0x00003800; // type:function size:0x94 -fn_1_3894 = .text:0x00003894; // type:function size:0x2EC -fn_1_3B80 = .text:0x00003B80; // type:function size:0x1EC -fn_1_3D6C = .text:0x00003D6C; // type:function size:0xE0 -fn_1_3E4C = .text:0x00003E4C; // type:function size:0x1C0 -fn_1_400C = .text:0x0000400C; // type:function size:0x9C -fn_1_40A8 = .text:0x000040A8; // type:function size:0x480 -fn_1_4528 = .text:0x00004528; // type:function size:0x54 -fn_1_457C = .text:0x0000457C; // type:function size:0x168 -fn_1_46E4 = .text:0x000046E4; // type:function size:0x120 -fn_1_4804 = .text:0x00004804; // type:function size:0x30C -fn_1_4B10 = .text:0x00004B10; // type:function size:0x78 -fn_1_4B88 = .text:0x00004B88; // type:function size:0x11C -fn_1_4CA4 = .text:0x00004CA4; // type:function size:0x78 -fn_1_4D1C = .text:0x00004D1C; // type:function size:0x2D8 -fn_1_4FF4 = .text:0x00004FF4; // type:function size:0x2B8 -fn_1_52AC = .text:0x000052AC; // type:function size:0x154 -fn_1_5400 = .text:0x00005400; // type:function size:0x3E0 -fn_1_57E0 = .text:0x000057E0; // type:function size:0x214 -fn_1_59F4 = .text:0x000059F4; // type:function size:0x198 -fn_1_5B8C = .text:0x00005B8C; // type:function size:0xD8 -fn_1_5C64 = .text:0x00005C64; // type:function size:0xBC -fn_1_5D20 = .text:0x00005D20; // type:function size:0x33C -fn_1_605C = .text:0x0000605C; // type:function size:0x4B0 -fn_1_650C = .text:0x0000650C; // type:function size:0x260 -fn_1_676C = .text:0x0000676C; // type:function size:0x20 -fn_1_678C = .text:0x0000678C; // type:function size:0x84 -fn_1_6810 = .text:0x00006810; // type:function size:0x4 -fn_1_6814 = .text:0x00006814; // type:function size:0x16C -fn_1_6980 = .text:0x00006980; // type:function size:0x318 -fn_1_6C98 = .text:0x00006C98; // type:function size:0x240 -fn_1_6ED8 = .text:0x00006ED8; // type:function size:0x110 -fn_1_6FE8 = .text:0x00006FE8; // type:function size:0x400 -fn_1_73E8 = .text:0x000073E8; // type:function size:0x5B4 -fn_1_799C = .text:0x0000799C; // type:function size:0xFC -fn_1_7A98 = .text:0x00007A98; // type:function size:0x88 -fn_1_7B20 = .text:0x00007B20; // type:function size:0xB4 -fn_1_7BD4 = .text:0x00007BD4; // type:function size:0x4C -fn_1_7C20 = .text:0x00007C20; // type:function size:0x10 -fn_1_7C30 = .text:0x00007C30; // type:function size:0x20 -fn_1_7C50 = .text:0x00007C50; // type:function size:0x10 -fn_1_7C60 = .text:0x00007C60; // type:function size:0xA4 -fn_1_7D04 = .text:0x00007D04; // type:function size:0x274 -fn_1_7F78 = .text:0x00007F78; // type:function size:0x15C -fn_1_80D4 = .text:0x000080D4; // type:function size:0x180 -fn_1_8254 = .text:0x00008254; // type:function size:0x10 -fn_1_8264 = .text:0x00008264; // type:function size:0x10 -fn_1_8274 = .text:0x00008274; // type:function size:0x5C -fn_1_82D0 = .text:0x000082D0; // type:function size:0x1A0 -fn_1_8470 = .text:0x00008470; // type:function size:0x200 -fn_1_8670 = .text:0x00008670; // type:function size:0x30 -fn_1_86A0 = .text:0x000086A0; // type:function size:0x8CC -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x9 data:byte -lbl_1_rodata_A9 = .rodata:0x000000A9; // type:object size:0xB data:byte -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte -lbl_1_data_4 = .data:0x00000004; // type:object size:0xC -lbl_1_data_10 = .data:0x00000010; // type:object size:0xC -lbl_1_data_1C = .data:0x0000001C; // type:object size:0x28 -lbl_1_data_44 = .data:0x00000044; // type:object size:0x24 -lbl_1_data_68 = .data:0x00000068; // type:object size:0x4 data:4byte -lbl_1_data_6C = .data:0x0000006C; // type:object size:0x20 -jumptable_1_data_8C = .data:0x0000008C; // type:object size:0x1C scope:local -jumptable_1_data_A8 = .data:0x000000A8; // type:object size:0x1C scope:local -lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x20 -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x30 -lbl_1_data_114 = .data:0x00000114; // type:object size:0x20 -lbl_1_data_134 = .data:0x00000134; // type:object size:0x20 -lbl_1_data_154 = .data:0x00000154; // type:object size:0x4 data:4byte -lbl_1_data_158 = .data:0x00000158; // type:object size:0xC0 -lbl_1_data_218 = .data:0x00000218; // type:object size:0xC0 -lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x78 -lbl_1_data_350 = .data:0x00000350; // type:object size:0x78 -lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0xC0 -lbl_1_data_488 = .data:0x00000488; // type:object size:0xC0 -lbl_1_data_548 = .data:0x00000548; // type:object size:0x78 -lbl_1_data_5C0 = .data:0x000005C0; // type:object size:0x78 -lbl_1_data_638 = .data:0x00000638; // type:object size:0x108 -lbl_1_data_740 = .data:0x00000740; // type:object size:0x108 -lbl_1_data_848 = .data:0x00000848; // type:object size:0x108 -lbl_1_data_950 = .data:0x00000950; // type:object size:0x108 -lbl_1_data_A58 = .data:0x00000A58; // type:object size:0x30 -lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x48 -lbl_1_data_AD0 = .data:0x00000AD0; // type:object size:0xC data:4byte -lbl_1_data_ADC = .data:0x00000ADC; // type:object size:0xC data:4byte -lbl_1_data_AE8 = .data:0x00000AE8; // type:object size:0x14 data:4byte -lbl_1_data_AFC = .data:0x00000AFC; // type:object size:0x18 -lbl_1_data_B14 = .data:0x00000B14; // type:object size:0x18 -lbl_1_data_B2C = .data:0x00000B2C; // type:object size:0x48 -lbl_1_data_B74 = .data:0x00000B74; // type:object size:0x30 -lbl_1_data_BA4 = .data:0x00000BA4; // type:object size:0x18 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte -lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x2 data:2byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:2byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0xC data:2byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x2 data:2byte -lbl_1_bss_2A = .bss:0x0000002A; // type:object size:0x2 data:2byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte -lbl_1_bss_2E = .bss:0x0000002E; // type:object size:0x2 data:2byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x2 data:2byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x10 -lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x8 data:4byte -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x18 -lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte -lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte -lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte -lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte -lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:float -lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte -lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte -lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte -lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte -lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte -lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte -lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x14 -lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte -lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m404Dll/splits.txt b/config/GMPJ01_00/rels/m404Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m404Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m404Dll/symbols.txt b/config/GMPJ01_00/rels/m404Dll/symbols.txt deleted file mode 100644 index b3dd1045..00000000 --- a/config/GMPJ01_00/rels/m404Dll/symbols.txt +++ /dev/null @@ -1,154 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x2DC -fn_1_37C = .text:0x0000037C; // type:function size:0x10 -fn_1_38C = .text:0x0000038C; // type:function size:0x10 -fn_1_39C = .text:0x0000039C; // type:function size:0x64 -fn_1_400 = .text:0x00000400; // type:function size:0x384 -fn_1_784 = .text:0x00000784; // type:function size:0x5C -fn_1_7E0 = .text:0x000007E0; // type:function size:0x2BC -fn_1_A9C = .text:0x00000A9C; // type:function size:0x234 -fn_1_CD0 = .text:0x00000CD0; // type:function size:0x30 -fn_1_D00 = .text:0x00000D00; // type:function size:0xEC -fn_1_DEC = .text:0x00000DEC; // type:function size:0x5C -fn_1_E48 = .text:0x00000E48; // type:function size:0x8C -fn_1_ED4 = .text:0x00000ED4; // type:function size:0x9C -fn_1_F70 = .text:0x00000F70; // type:function size:0x1F0 -fn_1_1160 = .text:0x00001160; // type:function size:0x1E4 -fn_1_1344 = .text:0x00001344; // type:function size:0x7B8 -fn_1_1AFC = .text:0x00001AFC; // type:function size:0x184 -fn_1_1C80 = .text:0x00001C80; // type:function size:0xA8 -fn_1_1D28 = .text:0x00001D28; // type:function size:0xD0 -fn_1_1DF8 = .text:0x00001DF8; // type:function size:0x38C -fn_1_2184 = .text:0x00002184; // type:function size:0xD38 -fn_1_2EBC = .text:0x00002EBC; // type:function size:0xB7C -fn_1_3A38 = .text:0x00003A38; // type:function size:0x3F4 -fn_1_3E2C = .text:0x00003E2C; // type:function size:0x104 -fn_1_3F30 = .text:0x00003F30; // type:function size:0x52C -fn_1_445C = .text:0x0000445C; // type:function size:0x44 -fn_1_44A0 = .text:0x000044A0; // type:function size:0x7DC -fn_1_4C7C = .text:0x00004C7C; // type:function size:0x2D0 -fn_1_4F4C = .text:0x00004F4C; // type:function size:0x32C -fn_1_5278 = .text:0x00005278; // type:function size:0x2C4 -fn_1_553C = .text:0x0000553C; // type:function size:0x5C -fn_1_5598 = .text:0x00005598; // type:function size:0x58 -fn_1_55F0 = .text:0x000055F0; // type:function size:0x4 -fn_1_55F4 = .text:0x000055F4; // type:function size:0x1AC -fn_1_57A0 = .text:0x000057A0; // type:function size:0x4 -fn_1_57A4 = .text:0x000057A4; // type:function size:0x140 -fn_1_58E4 = .text:0x000058E4; // type:function size:0x480 -fn_1_5D64 = .text:0x00005D64; // type:function size:0x110 -fn_1_5E74 = .text:0x00005E74; // type:function size:0x208 -fn_1_607C = .text:0x0000607C; // type:function size:0x1CC -fn_1_6248 = .text:0x00006248; // type:function size:0x1F8 -fn_1_6440 = .text:0x00006440; // type:function size:0x4C -fn_1_648C = .text:0x0000648C; // type:function size:0x250 -fn_1_66DC = .text:0x000066DC; // type:function size:0x5AC -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:2byte -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x20 data:byte -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x1 data:byte -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x1 data:byte -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x248 -lbl_1_data_248 = .data:0x00000248; // type:object size:0x260 -lbl_1_data_4A8 = .data:0x000004A8; // type:object size:0x290 -lbl_1_data_738 = .data:0x00000738; // type:object size:0x38 data:float -lbl_1_data_770 = .data:0x00000770; // type:object size:0xC data:float -lbl_1_data_77C = .data:0x0000077C; // type:object size:0xC data:float -lbl_1_data_788 = .data:0x00000788; // type:object size:0x4 -lbl_1_data_78C = .data:0x0000078C; // type:object size:0xC -lbl_1_data_798 = .data:0x00000798; // type:object size:0xC -lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x24 -lbl_1_data_7C8 = .data:0x000007C8; // type:object size:0x4 data:4byte -jumptable_1_data_7CC = .data:0x000007CC; // type:object size:0x28 scope:local -lbl_1_data_7F4 = .data:0x000007F4; // type:object size:0x1C data:string -lbl_1_data_810 = .data:0x00000810; // type:object size:0xC -lbl_1_data_81C = .data:0x0000081C; // type:object size:0x30 -lbl_1_data_84C = .data:0x0000084C; // type:object size:0x20 -lbl_1_data_86C = .data:0x0000086C; // type:object size:0x20 -lbl_1_data_88C = .data:0x0000088C; // type:object size:0x4 data:4byte -lbl_1_data_890 = .data:0x00000890; // type:object size:0x28 -lbl_1_data_8B8 = .data:0x000008B8; // type:object size:0x20 -lbl_1_data_8D8 = .data:0x000008D8; // type:object size:0x10 -lbl_1_data_8E8 = .data:0x000008E8; // type:object size:0xC -lbl_1_data_8F4 = .data:0x000008F4; // type:object size:0x8 data:wstring -lbl_1_data_8FC = .data:0x000008FC; // type:object size:0x18 -lbl_1_data_914 = .data:0x00000914; // type:object size:0x1C -lbl_1_data_930 = .data:0x00000930; // type:object size:0x20 -lbl_1_data_950 = .data:0x00000950; // type:object size:0x20 -lbl_1_data_970 = .data:0x00000970; // type:object size:0x7 data:string -lbl_1_data_977 = .data:0x00000977; // type:object size:0x7 data:string -lbl_1_data_97E = .data:0x0000097E; // type:object size:0x7 data:string -lbl_1_data_985 = .data:0x00000985; // type:object size:0x7 data:string -lbl_1_data_98C = .data:0x0000098C; // type:object size:0x10 -lbl_1_data_99C = .data:0x0000099C; // type:object size:0x10 -lbl_1_data_9AC = .data:0x000009AC; // type:object size:0x30 -lbl_1_data_9DC = .data:0x000009DC; // type:object size:0x18 data:4byte -lbl_1_data_9F4 = .data:0x000009F4; // type:object size:0x18 data:4byte -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:float -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0xC data:float -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x10 data:4byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x10 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m405Dll/splits.txt b/config/GMPJ01_00/rels/m405Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m405Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m405Dll/symbols.txt b/config/GMPJ01_00/rels/m405Dll/symbols.txt deleted file mode 100644 index d64b7049..00000000 --- a/config/GMPJ01_00/rels/m405Dll/symbols.txt +++ /dev/null @@ -1,254 +0,0 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x24 -fn_1_24 = .text:0x00000024; // type:function size:0x88 -fn_1_AC = .text:0x000000AC; // type:function size:0xA4 -fn_1_150 = .text:0x00000150; // type:function size:0x24 -fn_1_174 = .text:0x00000174; // type:function size:0x164 -fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C -fn_1_414 = .text:0x00000414; // type:function size:0x58 -fn_1_46C = .text:0x0000046C; // type:function size:0x114 -fn_1_580 = .text:0x00000580; // type:function size:0x218 -fn_1_798 = .text:0x00000798; // type:function size:0x254 -fn_1_9EC = .text:0x000009EC; // type:function size:0x54 -fn_1_A40 = .text:0x00000A40; // type:function size:0x10C -fn_1_B4C = .text:0x00000B4C; // type:function size:0x6A8 -fn_1_11F4 = .text:0x000011F4; // type:function size:0x15C -fn_1_1350 = .text:0x00001350; // type:function size:0x8C -fn_1_13DC = .text:0x000013DC; // type:function size:0x334 -fn_1_1710 = .text:0x00001710; // type:function size:0x350 -fn_1_1A60 = .text:0x00001A60; // type:function size:0x2B8 -fn_1_1D18 = .text:0x00001D18; // type:function size:0x58 -fn_1_1D70 = .text:0x00001D70; // type:function size:0xB0 -fn_1_1E20 = .text:0x00001E20; // type:function size:0x104 -fn_1_1F24 = .text:0x00001F24; // type:function size:0x34 -fn_1_1F58 = .text:0x00001F58; // type:function size:0x6C -fn_1_1FC4 = .text:0x00001FC4; // type:function size:0x3F0 -fn_1_23B4 = .text:0x000023B4; // type:function size:0xCC -fn_1_2480 = .text:0x00002480; // type:function size:0x88 -fn_1_2508 = .text:0x00002508; // type:function size:0x20C -fn_1_2714 = .text:0x00002714; // type:function size:0xF8 -fn_1_280C = .text:0x0000280C; // type:function size:0x2A0 -fn_1_2AAC = .text:0x00002AAC; // type:function size:0xCF8 -fn_1_37A4 = .text:0x000037A4; // type:function size:0x778 -fn_1_3F1C = .text:0x00003F1C; // type:function size:0x24 -fn_1_3F40 = .text:0x00003F40; // type:function size:0xE4 -fn_1_4024 = .text:0x00004024; // type:function size:0x6DC -fn_1_4700 = .text:0x00004700; // type:function size:0x828 -fn_1_4F28 = .text:0x00004F28; // type:function size:0x4DC -fn_1_5404 = .text:0x00005404; // type:function size:0x12C -fn_1_5530 = .text:0x00005530; // type:function size:0x4C -fn_1_557C = .text:0x0000557C; // type:function size:0xE8 -fn_1_5664 = .text:0x00005664; // type:function size:0xF8 -_prolog = .text:0x0000575C; // type:function size:0x54 scope:global -_epilog = .text:0x000057B0; // type:function size:0x4C scope:global -fn_1_57FC = .text:0x000057FC; // type:function size:0xA4 -fn_1_58A0 = .text:0x000058A0; // type:function size:0x288 -fn_1_5B28 = .text:0x00005B28; // type:function size:0x214 -fn_1_5D3C = .text:0x00005D3C; // type:function size:0x90 -fn_1_5DCC = .text:0x00005DCC; // type:function size:0x274 -fn_1_6040 = .text:0x00006040; // type:function size:0x57C -fn_1_65BC = .text:0x000065BC; // type:function size:0x26C -fn_1_6828 = .text:0x00006828; // type:function size:0xA4 -fn_1_68CC = .text:0x000068CC; // type:function size:0x330 -fn_1_6BFC = .text:0x00006BFC; // type:function size:0xD90 -fn_1_798C = .text:0x0000798C; // type:function size:0x828 -fn_1_81B4 = .text:0x000081B4; // type:function size:0x93C -fn_1_8AF0 = .text:0x00008AF0; // type:function size:0x798 -fn_1_9288 = .text:0x00009288; // type:function size:0x1A88 -fn_1_AD10 = .text:0x0000AD10; // type:function size:0x3CC -fn_1_B0DC = .text:0x0000B0DC; // type:function size:0x4EC -fn_1_B5C8 = .text:0x0000B5C8; // type:function size:0x16C -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x1 data:byte -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x1 data:byte -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x1 data:byte -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 -lbl_1_data_10 = .data:0x00000010; // type:object size:0x30 data:2byte -lbl_1_data_40 = .data:0x00000040; // type:object size:0x60 -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x48 -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x1 data:byte -lbl_1_data_EC = .data:0x000000EC; // type:object size:0x14 -lbl_1_data_100 = .data:0x00000100; // type:object size:0xC -lbl_1_data_10C = .data:0x0000010C; // type:object size:0xC data:4byte -lbl_1_data_118 = .data:0x00000118; // type:object size:0xC data:4byte -lbl_1_data_124 = .data:0x00000124; // type:object size:0xC data:4byte -lbl_1_data_130 = .data:0x00000130; // type:object size:0xC data:4byte -lbl_1_data_13C = .data:0x0000013C; // type:object size:0xC data:4byte -lbl_1_data_148 = .data:0x00000148; // type:object size:0xC data:4byte -lbl_1_data_154 = .data:0x00000154; // type:object size:0xC -lbl_1_data_160 = .data:0x00000160; // type:object size:0xC -lbl_1_data_16C = .data:0x0000016C; // type:object size:0x4 -lbl_1_data_170 = .data:0x00000170; // type:object size:0xC -lbl_1_data_17C = .data:0x0000017C; // type:object size:0xC -lbl_1_data_188 = .data:0x00000188; // type:object size:0x100 -lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 -lbl_1_data_290 = .data:0x00000290; // type:object size:0x20 -lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x10 -lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0x50 -lbl_1_data_310 = .data:0x00000310; // type:object size:0x18 data:4byte -lbl_1_data_328 = .data:0x00000328; // type:object size:0x14 -lbl_1_data_33C = .data:0x0000033C; // type:object size:0xA -lbl_1_data_346 = .data:0x00000346; // type:object size:0xA -lbl_1_data_350 = .data:0x00000350; // type:object size:0x8 -lbl_1_data_358 = .data:0x00000358; // type:object size:0x8 -lbl_1_data_360 = .data:0x00000360; // type:object size:0x8 -lbl_1_data_368 = .data:0x00000368; // type:object size:0x8 -lbl_1_data_370 = .data:0x00000370; // type:object size:0x50 -lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x50 -lbl_1_data_410 = .data:0x00000410; // type:object size:0xC data:string -lbl_1_data_41C = .data:0x0000041C; // type:object size:0x16 data:string -lbl_1_data_432 = .data:0x00000432; // type:object size:0x1D data:string -lbl_1_data_44F = .data:0x0000044F; // type:object size:0x1D -jumptable_1_data_46C = .data:0x0000046C; // type:object size:0x24 scope:local -lbl_1_data_490 = .data:0x00000490; // type:object size:0x24 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x18 data:float -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x18 data:4byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x18 data:float -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x18 data:float -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte -lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte -lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:float -lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:float -lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte -lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte -lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte -lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:float -lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x2 data:2byte -lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte -lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x2 data:2byte -lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x8 data:4byte -lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte -lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte -lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte -lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte -lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x1 data:byte -lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x500 data:float -lbl_1_bss_5AC = .bss:0x000005AC; // type:object size:0x2C data:4byte -lbl_1_bss_5D8 = .bss:0x000005D8; // type:object size:0x4 data:4byte -lbl_1_bss_5DC = .bss:0x000005DC; // type:object size:0x4 data:4byte -lbl_1_bss_5E0 = .bss:0x000005E0; // type:object size:0x4 data:4byte -lbl_1_bss_5E4 = .bss:0x000005E4; // type:object size:0x4 data:4byte -lbl_1_bss_5E8 = .bss:0x000005E8; // type:object size:0x100 -lbl_1_bss_6E8 = .bss:0x000006E8; // type:object size:0x40 data:4byte -lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x4 data:float -lbl_1_bss_72C = .bss:0x0000072C; // type:object size:0x4 data:4byte -lbl_1_bss_730 = .bss:0x00000730; // type:object size:0x4 data:4byte -lbl_1_bss_734 = .bss:0x00000734; // type:object size:0x2 data:2byte -lbl_1_bss_736 = .bss:0x00000736; // type:object size:0x2 data:2byte -lbl_1_bss_738 = .bss:0x00000738; // type:object size:0x4 data:4byte -lbl_1_bss_73C = .bss:0x0000073C; // type:object size:0x4 data:4byte -lbl_1_bss_740 = .bss:0x00000740; // type:object size:0x4 data:4byte -lbl_1_bss_744 = .bss:0x00000744; // type:object size:0xC data:float -lbl_1_bss_750 = .bss:0x00000750; // type:object size:0xC data:4byte -lbl_1_bss_75C = .bss:0x0000075C; // type:object size:0xC data:float -lbl_1_bss_768 = .bss:0x00000768; // type:object size:0xC data:4byte -lbl_1_bss_774 = .bss:0x00000774; // type:object size:0x4 data:4byte -lbl_1_bss_778 = .bss:0x00000778; // type:object size:0x18 data:4byte -lbl_1_bss_790 = .bss:0x00000790; // type:object size:0xC data:4byte diff --git a/config/GMPJ01_00/rels/m406Dll/splits.txt b/config/GMPJ01_00/rels/m406Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m406Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m406Dll/symbols.txt b/config/GMPJ01_00/rels/m406Dll/symbols.txt deleted file mode 100644 index 67393891..00000000 --- a/config/GMPJ01_00/rels/m406Dll/symbols.txt +++ /dev/null @@ -1,434 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x318 -fn_1_3B8 = .text:0x000003B8; // type:function size:0x54 -fn_1_40C = .text:0x0000040C; // type:function size:0xD00 -fn_1_110C = .text:0x0000110C; // type:function size:0x5C -fn_1_1168 = .text:0x00001168; // type:function size:0xC4 -fn_1_122C = .text:0x0000122C; // type:function size:0x10 -fn_1_123C = .text:0x0000123C; // type:function size:0x38 -fn_1_1274 = .text:0x00001274; // type:function size:0x10 -fn_1_1284 = .text:0x00001284; // type:function size:0x38 -fn_1_12BC = .text:0x000012BC; // type:function size:0x84 -fn_1_1340 = .text:0x00001340; // type:function size:0x1DC -fn_1_151C = .text:0x0000151C; // type:function size:0x4 -fn_1_1520 = .text:0x00001520; // type:function size:0x4 -fn_1_1524 = .text:0x00001524; // type:function size:0xAC -fn_1_15D0 = .text:0x000015D0; // type:function size:0x26C -fn_1_183C = .text:0x0000183C; // type:function size:0x35C -fn_1_1B98 = .text:0x00001B98; // type:function size:0x10 -fn_1_1BA8 = .text:0x00001BA8; // type:function size:0x118 -fn_1_1CC0 = .text:0x00001CC0; // type:function size:0x250 -fn_1_1F10 = .text:0x00001F10; // type:function size:0x3F8 -fn_1_2308 = .text:0x00002308; // type:function size:0x624 -fn_1_292C = .text:0x0000292C; // type:function size:0x2C0 -fn_1_2BEC = .text:0x00002BEC; // type:function size:0x38 -fn_1_2C24 = .text:0x00002C24; // type:function size:0x440 -fn_1_3064 = .text:0x00003064; // type:function size:0xF4 -fn_1_3158 = .text:0x00003158; // type:function size:0xF2C -fn_1_4084 = .text:0x00004084; // type:function size:0x4E4 -fn_1_4568 = .text:0x00004568; // type:function size:0x54 -fn_1_45BC = .text:0x000045BC; // type:function size:0x3A8 -fn_1_4964 = .text:0x00004964; // type:function size:0x1810 -fn_1_6174 = .text:0x00006174; // type:function size:0x190 -fn_1_6304 = .text:0x00006304; // type:function size:0x1F4 -fn_1_64F8 = .text:0x000064F8; // type:function size:0x1FC -fn_1_66F4 = .text:0x000066F4; // type:function size:0xD8 -fn_1_67CC = .text:0x000067CC; // type:function size:0x1A0 -fn_1_696C = .text:0x0000696C; // type:function size:0x54 -fn_1_69C0 = .text:0x000069C0; // type:function size:0x84 -fn_1_6A44 = .text:0x00006A44; // type:function size:0x118 -fn_1_6B5C = .text:0x00006B5C; // type:function size:0x58 -fn_1_6BB4 = .text:0x00006BB4; // type:function size:0x370 -fn_1_6F24 = .text:0x00006F24; // type:function size:0xD8 -fn_1_6FFC = .text:0x00006FFC; // type:function size:0x180 -fn_1_717C = .text:0x0000717C; // type:function size:0x48 -fn_1_71C4 = .text:0x000071C4; // type:function size:0x134 -fn_1_72F8 = .text:0x000072F8; // type:function size:0x3B0 -fn_1_76A8 = .text:0x000076A8; // type:function size:0x70 -fn_1_7718 = .text:0x00007718; // type:function size:0xD8 -fn_1_77F0 = .text:0x000077F0; // type:function size:0x1C0 -fn_1_79B0 = .text:0x000079B0; // type:function size:0x48 -fn_1_79F8 = .text:0x000079F8; // type:function size:0x134 -fn_1_7B2C = .text:0x00007B2C; // type:function size:0x70 -fn_1_7B9C = .text:0x00007B9C; // type:function size:0xB0 -fn_1_7C4C = .text:0x00007C4C; // type:function size:0x160 -fn_1_7DAC = .text:0x00007DAC; // type:function size:0x4 -fn_1_7DB0 = .text:0x00007DB0; // type:function size:0x120 -fn_1_7ED0 = .text:0x00007ED0; // type:function size:0xB0 -fn_1_7F80 = .text:0x00007F80; // type:function size:0x180 -fn_1_8100 = .text:0x00008100; // type:function size:0x4 -fn_1_8104 = .text:0x00008104; // type:function size:0x140 -fn_1_8244 = .text:0x00008244; // type:function size:0x84 -fn_1_82C8 = .text:0x000082C8; // type:function size:0xCD0 -fn_1_8F98 = .text:0x00008F98; // type:function size:0x248 -fn_1_91E0 = .text:0x000091E0; // type:function size:0x2DC -fn_1_94BC = .text:0x000094BC; // type:function size:0x4 -fn_1_94C0 = .text:0x000094C0; // type:function size:0xAB8 -fn_1_9F78 = .text:0x00009F78; // type:function size:0x300 -fn_1_A278 = .text:0x0000A278; // type:function size:0x50 -fn_1_A2C8 = .text:0x0000A2C8; // type:function size:0xAEC -fn_1_ADB4 = .text:0x0000ADB4; // type:function size:0x350 -fn_1_B104 = .text:0x0000B104; // type:function size:0xDC -fn_1_B1E0 = .text:0x0000B1E0; // type:function size:0x7C -fn_1_B25C = .text:0x0000B25C; // type:function size:0x1C0 -fn_1_B41C = .text:0x0000B41C; // type:function size:0x54 -fn_1_B470 = .text:0x0000B470; // type:function size:0x4 -fn_1_B474 = .text:0x0000B474; // type:function size:0x488 -fn_1_B8FC = .text:0x0000B8FC; // type:function size:0x31C -fn_1_BC18 = .text:0x0000BC18; // type:function size:0x8DC -fn_1_C4F4 = .text:0x0000C4F4; // type:function size:0x378 -fn_1_C86C = .text:0x0000C86C; // type:function size:0x4C8 -fn_1_CD34 = .text:0x0000CD34; // type:function size:0xA4 -fn_1_CDD8 = .text:0x0000CDD8; // type:function size:0x14C -fn_1_CF24 = .text:0x0000CF24; // type:function size:0x74 -fn_1_CF98 = .text:0x0000CF98; // type:function size:0xD4 -fn_1_D06C = .text:0x0000D06C; // type:function size:0xD0 -fn_1_D13C = .text:0x0000D13C; // type:function size:0x34C -fn_1_D488 = .text:0x0000D488; // type:function size:0x90 -fn_1_D518 = .text:0x0000D518; // type:function size:0xB4 -fn_1_D5CC = .text:0x0000D5CC; // type:function size:0x90 -fn_1_D65C = .text:0x0000D65C; // type:function size:0x254 -fn_1_D8B0 = .text:0x0000D8B0; // type:function size:0x5C -fn_1_D90C = .text:0x0000D90C; // type:function size:0x470 -fn_1_DD7C = .text:0x0000DD7C; // type:function size:0xE4 -fn_1_DE60 = .text:0x0000DE60; // type:function size:0x3B4 -fn_1_E214 = .text:0x0000E214; // type:function size:0xF80 -fn_1_F194 = .text:0x0000F194; // type:function size:0x500 -fn_1_F694 = .text:0x0000F694; // type:function size:0x3BC -fn_1_FA50 = .text:0x0000FA50; // type:function size:0xC0C -fn_1_1065C = .text:0x0001065C; // type:function size:0xE8 -fn_1_10744 = .text:0x00010744; // type:function size:0x914 -fn_1_11058 = .text:0x00011058; // type:function size:0x448 -fn_1_114A0 = .text:0x000114A0; // type:function size:0x31C -fn_1_117BC = .text:0x000117BC; // type:function size:0x228 -fn_1_119E4 = .text:0x000119E4; // type:function size:0x5E0 -fn_1_11FC4 = .text:0x00011FC4; // type:function size:0x1D0 -fn_1_12194 = .text:0x00012194; // type:function size:0xDC -fn_1_12270 = .text:0x00012270; // type:function size:0x4EC -fn_1_1275C = .text:0x0001275C; // type:function size:0x5C -fn_1_127B8 = .text:0x000127B8; // type:function size:0x22C -fn_1_129E4 = .text:0x000129E4; // type:function size:0xD4 -fn_1_12AB8 = .text:0x00012AB8; // type:function size:0x48 -fn_1_12B00 = .text:0x00012B00; // type:function size:0x38 -fn_1_12B38 = .text:0x00012B38; // type:function size:0x8C -fn_1_12BC4 = .text:0x00012BC4; // type:function size:0xAE4 -fn_1_136A8 = .text:0x000136A8; // type:function size:0x4 -fn_1_136AC = .text:0x000136AC; // type:function size:0x3DC -fn_1_13A88 = .text:0x00013A88; // type:function size:0x6C -fn_1_13AF4 = .text:0x00013AF4; // type:function size:0x11C -fn_1_13C10 = .text:0x00013C10; // type:function size:0x7E4 -fn_1_143F4 = .text:0x000143F4; // type:function size:0x330 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x1 data:byte -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x8C data:float -lbl_1_data_8C = .data:0x0000008C; // type:object size:0x24 -jumptable_1_data_B0 = .data:0x000000B0; // type:object size:0x40 scope:local -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x348 -lbl_1_data_438 = .data:0x00000438; // type:object size:0x348 -lbl_1_data_780 = .data:0x00000780; // type:object size:0x24 data:float -lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x2 data:2byte -lbl_1_data_7A8 = .data:0x000007A8; // type:object size:0x1C -lbl_1_data_7C4 = .data:0x000007C4; // type:object size:0x1C -lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x18 -lbl_1_data_7F8 = .data:0x000007F8; // type:object size:0xC -lbl_1_data_804 = .data:0x00000804; // type:object size:0xC -lbl_1_data_810 = .data:0x00000810; // type:object size:0x4 -lbl_1_data_814 = .data:0x00000814; // type:object size:0xC -lbl_1_data_820 = .data:0x00000820; // type:object size:0xC -lbl_1_data_82C = .data:0x0000082C; // type:object size:0xC -lbl_1_data_838 = .data:0x00000838; // type:object size:0xC -lbl_1_data_844 = .data:0x00000844; // type:object size:0xC -lbl_1_data_850 = .data:0x00000850; // type:object size:0x20 -lbl_1_data_870 = .data:0x00000870; // type:object size:0x1F data:string -lbl_1_data_88F = .data:0x0000088F; // type:object size:0x1 data:byte -lbl_1_data_893 = .data:0x00000893; // type:object size:0x1 data:byte -lbl_1_data_897 = .data:0x00000897; // type:object size:0x1 data:byte -lbl_1_data_89B = .data:0x0000089B; // type:object size:0x1 data:byte -lbl_1_data_89F = .data:0x0000089F; // type:object size:0x5 data:byte -lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x10 -lbl_1_data_8B4 = .data:0x000008B4; // type:object size:0x10 -lbl_1_data_8C4 = .data:0x000008C4; // type:object size:0xC -lbl_1_data_8D0 = .data:0x000008D0; // type:object size:0xC -lbl_1_data_8DC = .data:0x000008DC; // type:object size:0x4 -lbl_1_data_8E0 = .data:0x000008E0; // type:object size:0x30 -lbl_1_data_910 = .data:0x00000910; // type:object size:0x20 -lbl_1_data_930 = .data:0x00000930; // type:object size:0x30 -lbl_1_data_960 = .data:0x00000960; // type:object size:0x348 -lbl_1_data_CA8 = .data:0x00000CA8; // type:object size:0x348 -lbl_1_data_FF0 = .data:0x00000FF0; // type:object size:0x10 -lbl_1_data_1000 = .data:0x00001000; // type:object size:0x19 data:string -lbl_1_data_1019 = .data:0x00001019; // type:object size:0x19 data:string -lbl_1_data_1032 = .data:0x00001032; // type:object size:0x1A data:string -lbl_1_data_104C = .data:0x0000104C; // type:object size:0x1C -lbl_1_data_1068 = .data:0x00001068; // type:object size:0x10 -lbl_1_data_1078 = .data:0x00001078; // type:object size:0x28 -lbl_1_data_10A0 = .data:0x000010A0; // type:object size:0x80 -lbl_1_data_1120 = .data:0x00001120; // type:object size:0x20 -lbl_1_data_1140 = .data:0x00001140; // type:object size:0x8 -lbl_1_data_1148 = .data:0x00001148; // type:object size:0x1C data:string -lbl_1_data_1164 = .data:0x00001164; // type:object size:0x90 -lbl_1_data_11F4 = .data:0x000011F4; // type:object size:0x4 data:4byte -lbl_1_data_11F8 = .data:0x000011F8; // type:object size:0x20 -lbl_1_data_1218 = .data:0x00001218; // type:object size:0x18 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0xC data:4byte -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x50 -lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte -lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte -lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte -lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte -lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte -lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte -lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte -lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte -lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte -lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte -lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:4byte -lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte -lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte -lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte -lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte -lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x4 data:4byte -lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x8 data:4byte -lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x18 data:float -lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x8 data:4byte -lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:float -lbl_1_bss_104 = .bss:0x00000104; // type:object size:0xC0 -lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0x4 data:4byte -lbl_1_bss_1C8 = .bss:0x000001C8; // type:object size:0x4 data:4byte -lbl_1_bss_1CC = .bss:0x000001CC; // type:object size:0x4 data:4byte -lbl_1_bss_1D0 = .bss:0x000001D0; // type:object size:0xC -lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0xC -lbl_1_bss_1E8 = .bss:0x000001E8; // type:object size:0xC -lbl_1_bss_1F4 = .bss:0x000001F4; // type:object size:0x2 data:2byte -lbl_1_bss_1F6 = .bss:0x000001F6; // type:object size:0x2 data:2byte -lbl_1_bss_1F8 = .bss:0x000001F8; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m407dll/splits.txt b/config/GMPJ01_00/rels/m407dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m407dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m407dll/symbols.txt b/config/GMPJ01_00/rels/m407dll/symbols.txt deleted file mode 100644 index 4fb3dbd8..00000000 --- a/config/GMPJ01_00/rels/m407dll/symbols.txt +++ /dev/null @@ -1,271 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x54 -fn_1_F4 = .text:0x000000F4; // type:function size:0xA0 -fn_1_194 = .text:0x00000194; // type:function size:0x50 -fn_1_1E4 = .text:0x000001E4; // type:function size:0x54 -fn_1_238 = .text:0x00000238; // type:function size:0x54 -fn_1_28C = .text:0x0000028C; // type:function size:0x54 -fn_1_2E0 = .text:0x000002E0; // type:function size:0x54 -fn_1_334 = .text:0x00000334; // type:function size:0x54 -fn_1_388 = .text:0x00000388; // type:function size:0x3C -fn_1_3C4 = .text:0x000003C4; // type:function size:0x40 -fn_1_404 = .text:0x00000404; // type:function size:0xBC -fn_1_4C0 = .text:0x000004C0; // type:function size:0x48 -fn_1_508 = .text:0x00000508; // type:function size:0x34 -fn_1_53C = .text:0x0000053C; // type:function size:0x2C -fn_1_568 = .text:0x00000568; // type:function size:0xC0 -fn_1_628 = .text:0x00000628; // type:function size:0x24 -fn_1_64C = .text:0x0000064C; // type:function size:0x350 -fn_1_99C = .text:0x0000099C; // type:function size:0x80 -fn_1_A1C = .text:0x00000A1C; // type:function size:0x6C -fn_1_A88 = .text:0x00000A88; // type:function size:0x4 -fn_1_A8C = .text:0x00000A8C; // type:function size:0x1CC -fn_1_C58 = .text:0x00000C58; // type:function size:0x9C -fn_1_CF4 = .text:0x00000CF4; // type:function size:0xC0 -fn_1_DB4 = .text:0x00000DB4; // type:function size:0x1D8 -fn_1_F8C = .text:0x00000F8C; // type:function size:0xE8 -fn_1_1074 = .text:0x00001074; // type:function size:0x158 -fn_1_11CC = .text:0x000011CC; // type:function size:0x218 -fn_1_13E4 = .text:0x000013E4; // type:function size:0x7C -fn_1_1460 = .text:0x00001460; // type:function size:0x90 -fn_1_14F0 = .text:0x000014F0; // type:function size:0xE8 -fn_1_15D8 = .text:0x000015D8; // type:function size:0x54 -fn_1_162C = .text:0x0000162C; // type:function size:0x460 -fn_1_1A8C = .text:0x00001A8C; // type:function size:0x90 -fn_1_1B1C = .text:0x00001B1C; // type:function size:0x18C -fn_1_1CA8 = .text:0x00001CA8; // type:function size:0x4 -fn_1_1CAC = .text:0x00001CAC; // type:function size:0x28 -fn_1_1CD4 = .text:0x00001CD4; // type:function size:0x34 -fn_1_1D08 = .text:0x00001D08; // type:function size:0x28 -fn_1_1D30 = .text:0x00001D30; // type:function size:0x34 -fn_1_1D64 = .text:0x00001D64; // type:function size:0x10 -fn_1_1D74 = .text:0x00001D74; // type:function size:0x14 -fn_1_1D88 = .text:0x00001D88; // type:function size:0x28 -fn_1_1DB0 = .text:0x00001DB0; // type:function size:0x16C -fn_1_1F1C = .text:0x00001F1C; // type:function size:0x108 -fn_1_2024 = .text:0x00002024; // type:function size:0x330 -fn_1_2354 = .text:0x00002354; // type:function size:0x19C -fn_1_24F0 = .text:0x000024F0; // type:function size:0x74 -fn_1_2564 = .text:0x00002564; // type:function size:0x5C -fn_1_25C0 = .text:0x000025C0; // type:function size:0x10C -fn_1_26CC = .text:0x000026CC; // type:function size:0xA4 -fn_1_2770 = .text:0x00002770; // type:function size:0x110 -fn_1_2880 = .text:0x00002880; // type:function size:0x38 -fn_1_28B8 = .text:0x000028B8; // type:function size:0x1C -fn_1_28D4 = .text:0x000028D4; // type:function size:0x10 -fn_1_28E4 = .text:0x000028E4; // type:function size:0x28 -fn_1_290C = .text:0x0000290C; // type:function size:0x24 -fn_1_2930 = .text:0x00002930; // type:function size:0x24C -fn_1_2B7C = .text:0x00002B7C; // type:function size:0x67C -fn_1_31F8 = .text:0x000031F8; // type:function size:0x168 -fn_1_3360 = .text:0x00003360; // type:function size:0x4 -fn_1_3364 = .text:0x00003364; // type:function size:0x140 -fn_1_34A4 = .text:0x000034A4; // type:function size:0x22C -fn_1_36D0 = .text:0x000036D0; // type:function size:0xE0 -fn_1_37B0 = .text:0x000037B0; // type:function size:0x318 -fn_1_3AC8 = .text:0x00003AC8; // type:function size:0xA0 -fn_1_3B68 = .text:0x00003B68; // type:function size:0x50 -fn_1_3BB8 = .text:0x00003BB8; // type:function size:0x170 -fn_1_3D28 = .text:0x00003D28; // type:function size:0x24 -fn_1_3D4C = .text:0x00003D4C; // type:function size:0xE8 -fn_1_3E34 = .text:0x00003E34; // type:function size:0x148 -fn_1_3F7C = .text:0x00003F7C; // type:function size:0x74 -fn_1_3FF0 = .text:0x00003FF0; // type:function size:0x4 -fn_1_3FF4 = .text:0x00003FF4; // type:function size:0x100 -fn_1_40F4 = .text:0x000040F4; // type:function size:0xD8 -fn_1_41CC = .text:0x000041CC; // type:function size:0x328 -fn_1_44F4 = .text:0x000044F4; // type:function size:0x50 -fn_1_4544 = .text:0x00004544; // type:function size:0x118 -fn_1_465C = .text:0x0000465C; // type:function size:0x24 -fn_1_4680 = .text:0x00004680; // type:function size:0x6C -fn_1_46EC = .text:0x000046EC; // type:function size:0x11C -fn_1_4808 = .text:0x00004808; // type:function size:0x50 -fn_1_4858 = .text:0x00004858; // type:function size:0x4 -fn_1_485C = .text:0x0000485C; // type:function size:0x124 -fn_1_4980 = .text:0x00004980; // type:function size:0x1FC -fn_1_4B7C = .text:0x00004B7C; // type:function size:0xC0 -fn_1_4C3C = .text:0x00004C3C; // type:function size:0x30 -fn_1_4C6C = .text:0x00004C6C; // type:function size:0xA0 -fn_1_4D0C = .text:0x00004D0C; // type:function size:0x48 -fn_1_4D54 = .text:0x00004D54; // type:function size:0x138 -fn_1_4E8C = .text:0x00004E8C; // type:function size:0x120 -fn_1_4FAC = .text:0x00004FAC; // type:function size:0x13C -fn_1_50E8 = .text:0x000050E8; // type:function size:0xFC -fn_1_51E4 = .text:0x000051E4; // type:function size:0xC8 -fn_1_52AC = .text:0x000052AC; // type:function size:0x10C -fn_1_53B8 = .text:0x000053B8; // type:function size:0x1BC -fn_1_5574 = .text:0x00005574; // type:function size:0xBC -fn_1_5630 = .text:0x00005630; // type:function size:0x1D4 -fn_1_5804 = .text:0x00005804; // type:function size:0x27C -fn_1_5A80 = .text:0x00005A80; // type:function size:0x130 -fn_1_5BB0 = .text:0x00005BB0; // type:function size:0xAC -fn_1_5C5C = .text:0x00005C5C; // type:function size:0x270 -fn_1_5ECC = .text:0x00005ECC; // type:function size:0x74 -fn_1_5F40 = .text:0x00005F40; // type:function size:0x50 -fn_1_5F90 = .text:0x00005F90; // type:function size:0x24 -fn_1_5FB4 = .text:0x00005FB4; // type:function size:0x30 -fn_1_5FE4 = .text:0x00005FE4; // type:function size:0x1BC -fn_1_61A0 = .text:0x000061A0; // type:function size:0x78 -fn_1_6218 = .text:0x00006218; // type:function size:0x88 -fn_1_62A0 = .text:0x000062A0; // type:function size:0x164 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x20 -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC data:4byte -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0xC data:4byte -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x100 -lbl_1_data_100 = .data:0x00000100; // type:object size:0x20 -lbl_1_data_120 = .data:0x00000120; // type:object size:0x1C -lbl_1_data_13C = .data:0x0000013C; // type:object size:0x20 -lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 -lbl_1_data_184 = .data:0x00000184; // type:object size:0x8 -lbl_1_data_18C = .data:0x0000018C; // type:object size:0xC -lbl_1_data_198 = .data:0x00000198; // type:object size:0x34 data:4byte -lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x30 -lbl_1_data_1FC = .data:0x000001FC; // type:object size:0xC data:float -lbl_1_data_208 = .data:0x00000208; // type:object size:0xC -lbl_1_data_214 = .data:0x00000214; // type:object size:0x4 -lbl_1_data_218 = .data:0x00000218; // type:object size:0x10 -lbl_1_data_228 = .data:0x00000228; // type:object size:0x10 data:4byte -lbl_1_data_238 = .data:0x00000238; // type:object size:0x20 data:4byte -lbl_1_data_258 = .data:0x00000258; // type:object size:0x14 -lbl_1_data_26C = .data:0x0000026C; // type:object size:0xC -lbl_1_data_278 = .data:0x00000278; // type:object size:0x10 -lbl_1_data_288 = .data:0x00000288; // type:object size:0x14 -lbl_1_data_29C = .data:0x0000029C; // type:object size:0xC -lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x34 -lbl_1_data_2DC = .data:0x000002DC; // type:object size:0x10 -lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xC -lbl_1_data_2F8 = .data:0x000002F8; // type:object size:0xC -lbl_1_data_304 = .data:0x00000304; // type:object size:0x4 -lbl_1_data_308 = .data:0x00000308; // type:object size:0xC -lbl_1_data_314 = .data:0x00000314; // type:object size:0xC -lbl_1_data_320 = .data:0x00000320; // type:object size:0x4 -lbl_1_data_324 = .data:0x00000324; // type:object size:0xC -lbl_1_data_330 = .data:0x00000330; // type:object size:0xC -lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 -lbl_1_data_340 = .data:0x00000340; // type:object size:0xC -lbl_1_data_34C = .data:0x0000034C; // type:object size:0xC -lbl_1_data_358 = .data:0x00000358; // type:object size:0x8 -lbl_1_data_360 = .data:0x00000360; // type:object size:0xC -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x8 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x10 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x2 data:2byte -lbl_1_bss_3A = .bss:0x0000003A; // type:object size:0x2A -lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte -lbl_1_bss_66 = .bss:0x00000066; // type:object size:0x2 data:2byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x1E30 data:2byte -lbl_1_bss_1E98 = .bss:0x00001E98; // type:object size:0xF18 -lbl_1_bss_2DB0 = .bss:0x00002DB0; // type:object size:0xA10 -lbl_1_bss_37C0 = .bss:0x000037C0; // type:object size:0x8 data:4byte -lbl_1_bss_37C8 = .bss:0x000037C8; // type:object size:0x10 -lbl_1_bss_37D8 = .bss:0x000037D8; // type:object size:0x8 data:4byte -lbl_1_bss_37E0 = .bss:0x000037E0; // type:object size:0x190 -lbl_1_bss_3970 = .bss:0x00003970; // type:object size:0x8 data:4byte -lbl_1_bss_3978 = .bss:0x00003978; // type:object size:0x2 data:2byte -lbl_1_bss_397C = .bss:0x0000397C; // type:object size:0x4 data:4byte -lbl_1_bss_3980 = .bss:0x00003980; // type:object size:0x8 data:4byte -lbl_1_bss_3988 = .bss:0x00003988; // type:object size:0x4 data:4byte -lbl_1_bss_398C = .bss:0x0000398C; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m408Dll/splits.txt b/config/GMPJ01_00/rels/m408Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m408Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m408Dll/symbols.txt b/config/GMPJ01_00/rels/m408Dll/symbols.txt deleted file mode 100644 index 0553b57b..00000000 --- a/config/GMPJ01_00/rels/m408Dll/symbols.txt +++ /dev/null @@ -1,549 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x47C -fn_1_51C = .text:0x0000051C; // type:function size:0x50 -fn_1_56C = .text:0x0000056C; // type:function size:0x438 -fn_1_9A4 = .text:0x000009A4; // type:function size:0x4C -fn_1_9F0 = .text:0x000009F0; // type:function size:0x50 -fn_1_A40 = .text:0x00000A40; // type:function size:0x298 -fn_1_CD8 = .text:0x00000CD8; // type:function size:0x220 -fn_1_EF8 = .text:0x00000EF8; // type:function size:0x3A8 -fn_1_12A0 = .text:0x000012A0; // type:function size:0x1EC -fn_1_148C = .text:0x0000148C; // type:function size:0x434 -fn_1_18C0 = .text:0x000018C0; // type:function size:0x80 -fn_1_1940 = .text:0x00001940; // type:function size:0x120 -fn_1_1A60 = .text:0x00001A60; // type:function size:0x98 -fn_1_1AF8 = .text:0x00001AF8; // type:function size:0xF0 -fn_1_1BE8 = .text:0x00001BE8; // type:function size:0x26C -fn_1_1E54 = .text:0x00001E54; // type:function size:0x68 -fn_1_1EBC = .text:0x00001EBC; // type:function size:0x718 -fn_1_25D4 = .text:0x000025D4; // type:function size:0x110 -fn_1_26E4 = .text:0x000026E4; // type:function size:0x8C8 -fn_1_2FAC = .text:0x00002FAC; // type:function size:0x924 -fn_1_38D0 = .text:0x000038D0; // type:function size:0x5B0 -fn_1_3E80 = .text:0x00003E80; // type:function size:0xBD8 -fn_1_4A58 = .text:0x00004A58; // type:function size:0x640 -fn_1_5098 = .text:0x00005098; // type:function size:0x44C -fn_1_54E4 = .text:0x000054E4; // type:function size:0x1A0 -fn_1_5684 = .text:0x00005684; // type:function size:0x41C -fn_1_5AA0 = .text:0x00005AA0; // type:function size:0x14 -fn_1_5AB4 = .text:0x00005AB4; // type:function size:0x318 -fn_1_5DCC = .text:0x00005DCC; // type:function size:0x430 -fn_1_61FC = .text:0x000061FC; // type:function size:0x344 -fn_1_6540 = .text:0x00006540; // type:function size:0x284 -fn_1_67C4 = .text:0x000067C4; // type:function size:0xA4 -fn_1_6868 = .text:0x00006868; // type:function size:0x10 -fn_1_6878 = .text:0x00006878; // type:function size:0x10 -fn_1_6888 = .text:0x00006888; // type:function size:0x10 -fn_1_6898 = .text:0x00006898; // type:function size:0x4 -fn_1_689C = .text:0x0000689C; // type:function size:0x8 -fn_1_68A4 = .text:0x000068A4; // type:function size:0x4 -fn_1_68A8 = .text:0x000068A8; // type:function size:0x1C -fn_1_68C4 = .text:0x000068C4; // type:function size:0x364 -fn_1_6C28 = .text:0x00006C28; // type:function size:0x324 -fn_1_6F4C = .text:0x00006F4C; // type:function size:0x66C -fn_1_75B8 = .text:0x000075B8; // type:function size:0x260 -fn_1_7818 = .text:0x00007818; // type:function size:0xC0 -fn_1_78D8 = .text:0x000078D8; // type:function size:0x748 -fn_1_8020 = .text:0x00008020; // type:function size:0x15C -fn_1_817C = .text:0x0000817C; // type:function size:0x348 -fn_1_84C4 = .text:0x000084C4; // type:function size:0x378 -fn_1_883C = .text:0x0000883C; // type:function size:0x11C -fn_1_8958 = .text:0x00008958; // type:function size:0xC8 -fn_1_8A20 = .text:0x00008A20; // type:function size:0x58C -fn_1_8FAC = .text:0x00008FAC; // type:function size:0x568 -fn_1_9514 = .text:0x00009514; // type:function size:0x25C -fn_1_9770 = .text:0x00009770; // type:function size:0x258 -fn_1_99C8 = .text:0x000099C8; // type:function size:0x96C -fn_1_A334 = .text:0x0000A334; // type:function size:0x48 -fn_1_A37C = .text:0x0000A37C; // type:function size:0x16C -fn_1_A4E8 = .text:0x0000A4E8; // type:function size:0x3AC -fn_1_A894 = .text:0x0000A894; // type:function size:0x760 -fn_1_AFF4 = .text:0x0000AFF4; // type:function size:0x70C -fn_1_B700 = .text:0x0000B700; // type:function size:0x494 -fn_1_BB94 = .text:0x0000BB94; // type:function size:0x24C -fn_1_BDE0 = .text:0x0000BDE0; // type:function size:0x5E0 -fn_1_C3C0 = .text:0x0000C3C0; // type:function size:0x7C -fn_1_C43C = .text:0x0000C43C; // type:function size:0x10 -fn_1_C44C = .text:0x0000C44C; // type:function size:0x98 -fn_1_C4E4 = .text:0x0000C4E4; // type:function size:0x4C -fn_1_C530 = .text:0x0000C530; // type:function size:0x7E4 -fn_1_CD14 = .text:0x0000CD14; // type:function size:0x154 -fn_1_CE68 = .text:0x0000CE68; // type:function size:0x84 -fn_1_CEEC = .text:0x0000CEEC; // type:function size:0x118 -fn_1_D004 = .text:0x0000D004; // type:function size:0x6EC -fn_1_D6F0 = .text:0x0000D6F0; // type:function size:0x288 -fn_1_D978 = .text:0x0000D978; // type:function size:0xF4 -fn_1_DA6C = .text:0x0000DA6C; // type:function size:0x564 -fn_1_DFD0 = .text:0x0000DFD0; // type:function size:0x340 -fn_1_E310 = .text:0x0000E310; // type:function size:0x6A4 -fn_1_E9B4 = .text:0x0000E9B4; // type:function size:0x544 -fn_1_EEF8 = .text:0x0000EEF8; // type:function size:0x174 -fn_1_F06C = .text:0x0000F06C; // type:function size:0x444 -fn_1_F4B0 = .text:0x0000F4B0; // type:function size:0xB4 -fn_1_F564 = .text:0x0000F564; // type:function size:0x33C -fn_1_F8A0 = .text:0x0000F8A0; // type:function size:0x2F8 -fn_1_FB98 = .text:0x0000FB98; // type:function size:0x8EC -fn_1_10484 = .text:0x00010484; // type:function size:0x3AC -fn_1_10830 = .text:0x00010830; // type:function size:0x330 -fn_1_10B60 = .text:0x00010B60; // type:function size:0xB10 -fn_1_11670 = .text:0x00011670; // type:function size:0x54 -fn_1_116C4 = .text:0x000116C4; // type:function size:0xBC -fn_1_11780 = .text:0x00011780; // type:function size:0x150 -fn_1_118D0 = .text:0x000118D0; // type:function size:0x90 -fn_1_11960 = .text:0x00011960; // type:function size:0x4DC -fn_1_11E3C = .text:0x00011E3C; // type:function size:0x518 -fn_1_12354 = .text:0x00012354; // type:function size:0x74 -fn_1_123C8 = .text:0x000123C8; // type:function size:0x2A8 -fn_1_12670 = .text:0x00012670; // type:function size:0x4 -fn_1_12674 = .text:0x00012674; // type:function size:0x12C -fn_1_127A0 = .text:0x000127A0; // type:function size:0x4CC -fn_1_12C6C = .text:0x00012C6C; // type:function size:0x3F0 -fn_1_1305C = .text:0x0001305C; // type:function size:0x47C -fn_1_134D8 = .text:0x000134D8; // type:function size:0x348 -fn_1_13820 = .text:0x00013820; // type:function size:0x568 -fn_1_13D88 = .text:0x00013D88; // type:function size:0x2E4 -fn_1_1406C = .text:0x0001406C; // type:function size:0x464 -fn_1_144D0 = .text:0x000144D0; // type:function size:0x8E4 -fn_1_14DB4 = .text:0x00014DB4; // type:function size:0x3F0 -fn_1_151A4 = .text:0x000151A4; // type:function size:0x43C -fn_1_155E0 = .text:0x000155E0; // type:function size:0x38 -fn_1_15618 = .text:0x00015618; // type:function size:0x40 -fn_1_15658 = .text:0x00015658; // type:function size:0x4F8 -fn_1_15B50 = .text:0x00015B50; // type:function size:0x7C -fn_1_15BCC = .text:0x00015BCC; // type:function size:0xD8 -fn_1_15CA4 = .text:0x00015CA4; // type:function size:0xC0 -fn_1_15D64 = .text:0x00015D64; // type:function size:0x568 -fn_1_162CC = .text:0x000162CC; // type:function size:0xFC -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC data:4byte -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x10 data:4byte -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x30 data:4byte -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x10 data:4byte -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x20 data:4byte -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x38 data:4byte -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x48 -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x10 data:4byte -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x10 data:4byte -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x28 data:2byte -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x10 data:4byte -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x10 data:4byte -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:double -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float -lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float -lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float -lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x8 data:double -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float -lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 data:double -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x8 data:double -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x8 data:double -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:double -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 data:double -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x8 data:double -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float -lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float -lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x8 data:double -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 data:double -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 data:float -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 data:double -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x8 data:double -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x8 data:double -lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 data:float -lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 data:float -lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x8 data:double -lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 data:float -lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 data:float -lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x8 data:double -lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x8 data:double -lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 data:double -lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x8 data:double -lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 data:float -lbl_1_rodata_684 = .rodata:0x00000684; // type:object size:0x4 data:float -lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x8 data:double -lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x4 data:float -lbl_1_rodata_694 = .rodata:0x00000694; // type:object size:0x4 data:float -lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 data:float -lbl_1_rodata_69C = .rodata:0x0000069C; // type:object size:0x4 data:float -lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x4 data:float -lbl_1_rodata_6A4 = .rodata:0x000006A4; // type:object size:0x4 data:float -lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float -lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 data:double -lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 data:double -lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x4 data:float -lbl_1_rodata_6C4 = .rodata:0x000006C4; // type:object size:0x4 data:float -lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x4 data:float -lbl_1_rodata_6CC = .rodata:0x000006CC; // type:object size:0x4 data:float -lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x4 data:float -lbl_1_rodata_6D4 = .rodata:0x000006D4; // type:object size:0x4 data:float -lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float -lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float -lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x8 data:double -lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 data:float -lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 data:float -lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0x4 data:float -lbl_1_rodata_6F4 = .rodata:0x000006F4; // type:object size:0x4 data:float -lbl_1_rodata_6F8 = .rodata:0x000006F8; // type:object size:0x4 data:float -lbl_1_rodata_6FC = .rodata:0x000006FC; // type:object size:0x4 data:float -lbl_1_rodata_700 = .rodata:0x00000700; // type:object size:0x8 data:double -lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x8 data:double -lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x4 data:float -lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x8 data:double -lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x8 data:double -lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float -lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float -lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float -lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x4 data:float -lbl_1_rodata_738 = .rodata:0x00000738; // type:object size:0x4 data:float -lbl_1_rodata_73C = .rodata:0x0000073C; // type:object size:0x4 data:float -lbl_1_rodata_740 = .rodata:0x00000740; // type:object size:0x4 data:float -lbl_1_rodata_744 = .rodata:0x00000744; // type:object size:0x4 data:float -lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x8 data:double -lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 data:float -lbl_1_rodata_754 = .rodata:0x00000754; // type:object size:0x4 data:float -lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x8 data:double -lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x4 data:float -lbl_1_rodata_764 = .rodata:0x00000764; // type:object size:0x4 data:float -lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x4 data:float -lbl_1_rodata_76C = .rodata:0x0000076C; // type:object size:0x4 data:float -lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0x4 data:float -lbl_1_rodata_774 = .rodata:0x00000774; // type:object size:0x4 data:float -lbl_1_rodata_778 = .rodata:0x00000778; // type:object size:0x4 data:float -lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0x4 data:float -lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x4 data:float -lbl_1_rodata_784 = .rodata:0x00000784; // type:object size:0x4 data:float -lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x8 data:double -lbl_1_rodata_790 = .rodata:0x00000790; // type:object size:0x4 data:float -lbl_1_rodata_794 = .rodata:0x00000794; // type:object size:0x4 data:float -lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x4 data:float -lbl_1_rodata_79C = .rodata:0x0000079C; // type:object size:0x4 data:float -lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x4 data:float -lbl_1_rodata_7A4 = .rodata:0x000007A4; // type:object size:0x4 data:float -lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 data:float -lbl_1_rodata_7AC = .rodata:0x000007AC; // type:object size:0x4 data:float -lbl_1_rodata_7B0 = .rodata:0x000007B0; // type:object size:0x4 data:float -lbl_1_rodata_7B4 = .rodata:0x000007B4; // type:object size:0x4 data:float -lbl_1_rodata_7B8 = .rodata:0x000007B8; // type:object size:0x4 data:float -lbl_1_rodata_7BC = .rodata:0x000007BC; // type:object size:0x4 data:float -lbl_1_rodata_7C0 = .rodata:0x000007C0; // type:object size:0x8 data:double -lbl_1_rodata_7C8 = .rodata:0x000007C8; // type:object size:0x4 data:float -lbl_1_rodata_7CC = .rodata:0x000007CC; // type:object size:0x4 data:float -lbl_1_rodata_7D0 = .rodata:0x000007D0; // type:object size:0x4 data:float -lbl_1_rodata_7D8 = .rodata:0x000007D8; // type:object size:0x8 data:double -lbl_1_rodata_7E0 = .rodata:0x000007E0; // type:object size:0x8 data:double -lbl_1_rodata_7E8 = .rodata:0x000007E8; // type:object size:0x4 data:float -lbl_1_rodata_7EC = .rodata:0x000007EC; // type:object size:0x4 data:float -lbl_1_rodata_7F0 = .rodata:0x000007F0; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 -lbl_1_data_20 = .data:0x00000020; // type:object size:0xC -lbl_1_data_2C = .data:0x0000002C; // type:object size:0xC -lbl_1_data_38 = .data:0x00000038; // type:object size:0x20 -lbl_1_data_58 = .data:0x00000058; // type:object size:0xC -lbl_1_data_64 = .data:0x00000064; // type:object size:0xC -lbl_1_data_70 = .data:0x00000070; // type:object size:0xC -lbl_1_data_7C = .data:0x0000007C; // type:object size:0x7 data:string -lbl_1_data_83 = .data:0x00000083; // type:object size:0x7 data:string -lbl_1_data_8A = .data:0x0000008A; // type:object size:0x7 data:string -lbl_1_data_91 = .data:0x00000091; // type:object size:0x7 data:string -lbl_1_data_98 = .data:0x00000098; // type:object size:0x8 -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x28 -lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x20 -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x1C -lbl_1_data_104 = .data:0x00000104; // type:object size:0x40 -lbl_1_data_144 = .data:0x00000144; // type:object size:0x58 -lbl_1_data_19C = .data:0x0000019C; // type:object size:0x4 data:4byte -lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x24 -lbl_1_data_1C4 = .data:0x000001C4; // type:object size:0x24 -lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x24 -lbl_1_data_20C = .data:0x0000020C; // type:object size:0x2E8 -lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0x10 -lbl_1_data_504 = .data:0x00000504; // type:object size:0x4 -lbl_1_data_508 = .data:0x00000508; // type:object size:0xC -lbl_1_data_514 = .data:0x00000514; // type:object size:0xC -lbl_1_data_520 = .data:0x00000520; // type:object size:0x30 -jumptable_1_data_550 = .data:0x00000550; // type:object size:0x24 scope:local -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x14 data:4byte -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte -lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:float -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:float -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:4byte -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x2 data:2byte -lbl_1_bss_62 = .bss:0x00000062; // type:object size:0x2 data:2byte -lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte -lbl_1_bss_66 = .bss:0x00000066; // type:object size:0x6 data:2byte -lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte -lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte -lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte -lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x8 data:4byte -lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte -lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte -lbl_1_bss_88 = .bss:0x00000088; // type:object size:0xC -lbl_1_bss_94 = .bss:0x00000094; // type:object size:0xC -lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte -lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x50 data:4byte -lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0xC data:float -lbl_1_bss_100 = .bss:0x00000100; // type:object size:0xC data:float -lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte -lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x8 data:4byte -lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x2 data:2byte -lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte -lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x8 data:4byte -lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x8 data:4byte -lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x4 data:4byte -lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte -lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x4 data:4byte -lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x4 data:4byte -lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte -lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte -lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x2 data:2byte -lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x1C data:4byte -lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x4 data:4byte -lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0xC00 -lbl_1_bss_D6C = .bss:0x00000D6C; // type:object size:0x30 -lbl_1_bss_D9C = .bss:0x00000D9C; // type:object size:0x4 data:4byte -lbl_1_bss_DA0 = .bss:0x00000DA0; // type:object size:0x4 data:4byte -lbl_1_bss_DA4 = .bss:0x00000DA4; // type:object size:0x6800 data:float -lbl_1_bss_75A4 = .bss:0x000075A4; // type:object size:0x4 data:4byte -lbl_1_bss_75A8 = .bss:0x000075A8; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m409Dll/splits.txt b/config/GMPJ01_00/rels/m409Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m409Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m409Dll/symbols.txt b/config/GMPJ01_00/rels/m409Dll/symbols.txt deleted file mode 100644 index 40e875cb..00000000 --- a/config/GMPJ01_00/rels/m409Dll/symbols.txt +++ /dev/null @@ -1,332 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x394 -fn_1_434 = .text:0x00000434; // type:function size:0xA8 -fn_1_4DC = .text:0x000004DC; // type:function size:0x48 -fn_1_524 = .text:0x00000524; // type:function size:0x65C -fn_1_B80 = .text:0x00000B80; // type:function size:0x25C -fn_1_DDC = .text:0x00000DDC; // type:function size:0x194 -fn_1_F70 = .text:0x00000F70; // type:function size:0x178 -fn_1_10E8 = .text:0x000010E8; // type:function size:0xA8C -fn_1_1B74 = .text:0x00001B74; // type:function size:0x524 -fn_1_2098 = .text:0x00002098; // type:function size:0x354 -fn_1_23EC = .text:0x000023EC; // type:function size:0x28 -fn_1_2414 = .text:0x00002414; // type:function size:0x40 -fn_1_2454 = .text:0x00002454; // type:function size:0x30 -fn_1_2484 = .text:0x00002484; // type:function size:0x948 -fn_1_2DCC = .text:0x00002DCC; // type:function size:0xA74 -fn_1_3840 = .text:0x00003840; // type:function size:0x148 -fn_1_3988 = .text:0x00003988; // type:function size:0x150 -fn_1_3AD8 = .text:0x00003AD8; // type:function size:0x5CC -fn_1_40A4 = .text:0x000040A4; // type:function size:0x7C -fn_1_4120 = .text:0x00004120; // type:function size:0x5C -fn_1_417C = .text:0x0000417C; // type:function size:0x374 -fn_1_44F0 = .text:0x000044F0; // type:function size:0xB0C -fn_1_4FFC = .text:0x00004FFC; // type:function size:0x40C -fn_1_5408 = .text:0x00005408; // type:function size:0x1D8 -fn_1_55E0 = .text:0x000055E0; // type:function size:0x1FC -fn_1_57DC = .text:0x000057DC; // type:function size:0x104 -fn_1_58E0 = .text:0x000058E0; // type:function size:0x138 -fn_1_5A18 = .text:0x00005A18; // type:function size:0x544 -fn_1_5F5C = .text:0x00005F5C; // type:function size:0x60 -fn_1_5FBC = .text:0x00005FBC; // type:function size:0x38 -fn_1_5FF4 = .text:0x00005FF4; // type:function size:0x38 -fn_1_602C = .text:0x0000602C; // type:function size:0x5DC -fn_1_6608 = .text:0x00006608; // type:function size:0xCC -fn_1_66D4 = .text:0x000066D4; // type:function size:0xA4 -fn_1_6778 = .text:0x00006778; // type:function size:0x68 -fn_1_67E0 = .text:0x000067E0; // type:function size:0x120 -fn_1_6900 = .text:0x00006900; // type:function size:0x28 -fn_1_6928 = .text:0x00006928; // type:function size:0xA1C -fn_1_7344 = .text:0x00007344; // type:function size:0xCA4 -fn_1_7FE8 = .text:0x00007FE8; // type:function size:0x850 -fn_1_8838 = .text:0x00008838; // type:function size:0x4D0 -fn_1_8D08 = .text:0x00008D08; // type:function size:0x64 -fn_1_8D6C = .text:0x00008D6C; // type:function size:0x454 -fn_1_91C0 = .text:0x000091C0; // type:function size:0x46C -fn_1_962C = .text:0x0000962C; // type:function size:0xF58 -fn_1_A584 = .text:0x0000A584; // type:function size:0x43C -fn_1_A9C0 = .text:0x0000A9C0; // type:function size:0x1F4 -fn_1_ABB4 = .text:0x0000ABB4; // type:function size:0x54 -fn_1_AC08 = .text:0x0000AC08; // type:function size:0x138 -fn_1_AD40 = .text:0x0000AD40; // type:function size:0x154 -fn_1_AE94 = .text:0x0000AE94; // type:function size:0x78 -fn_1_AF0C = .text:0x0000AF0C; // type:function size:0x11C -fn_1_B028 = .text:0x0000B028; // type:function size:0x78 -fn_1_B0A0 = .text:0x0000B0A0; // type:function size:0x2D8 -fn_1_B378 = .text:0x0000B378; // type:function size:0x198 -fn_1_B510 = .text:0x0000B510; // type:function size:0xD8 -fn_1_B5E8 = .text:0x0000B5E8; // type:function size:0xBC -fn_1_B6A4 = .text:0x0000B6A4; // type:function size:0x33C -fn_1_B9E0 = .text:0x0000B9E0; // type:function size:0x4B0 -fn_1_BE90 = .text:0x0000BE90; // type:function size:0xA8 -fn_1_BF38 = .text:0x0000BF38; // type:function size:0x50 -fn_1_BF88 = .text:0x0000BF88; // type:function size:0x138 -fn_1_C0C0 = .text:0x0000C0C0; // type:function size:0xA4 -fn_1_C164 = .text:0x0000C164; // type:function size:0xA34 -fn_1_CB98 = .text:0x0000CB98; // type:function size:0x118 -fn_1_CCB0 = .text:0x0000CCB0; // type:function size:0x1C -fn_1_CCCC = .text:0x0000CCCC; // type:function size:0x2C -fn_1_CCF8 = .text:0x0000CCF8; // type:function size:0x184 -fn_1_CE7C = .text:0x0000CE7C; // type:function size:0xA0 -fn_1_CF1C = .text:0x0000CF1C; // type:function size:0xA8 -fn_1_CFC4 = .text:0x0000CFC4; // type:function size:0x8C -fn_1_D050 = .text:0x0000D050; // type:function size:0x98 -fn_1_D0E8 = .text:0x0000D0E8; // type:function size:0x348 -fn_1_D430 = .text:0x0000D430; // type:function size:0x618 -fn_1_DA48 = .text:0x0000DA48; // type:function size:0x370 -fn_1_DDB8 = .text:0x0000DDB8; // type:function size:0x13C -fn_1_DEF4 = .text:0x0000DEF4; // type:function size:0x2C -fn_1_DF20 = .text:0x0000DF20; // type:function size:0x308 -fn_1_E228 = .text:0x0000E228; // type:function size:0x80 -fn_1_E2A8 = .text:0x0000E2A8; // type:function size:0x520 -fn_1_E7C8 = .text:0x0000E7C8; // type:function size:0x50 -fn_1_E818 = .text:0x0000E818; // type:function size:0x44 -fn_1_E85C = .text:0x0000E85C; // type:function size:0x70 -fn_1_E8CC = .text:0x0000E8CC; // type:function size:0x74 -fn_1_E940 = .text:0x0000E940; // type:function size:0x5C -fn_1_E99C = .text:0x0000E99C; // type:function size:0x88 -fn_1_EA24 = .text:0x0000EA24; // type:function size:0x8C -fn_1_EAB0 = .text:0x0000EAB0; // type:function size:0x44 -fn_1_EAF4 = .text:0x0000EAF4; // type:function size:0x70 -fn_1_EB64 = .text:0x0000EB64; // type:function size:0x74 -fn_1_EBD8 = .text:0x0000EBD8; // type:function size:0x44 -fn_1_EC1C = .text:0x0000EC1C; // type:function size:0x70 -fn_1_EC8C = .text:0x0000EC8C; // type:function size:0x74 -fn_1_ED00 = .text:0x0000ED00; // type:function size:0x44 -fn_1_ED44 = .text:0x0000ED44; // type:function size:0x70 -fn_1_EDB4 = .text:0x0000EDB4; // type:function size:0x70 -fn_1_EE24 = .text:0x0000EE24; // type:function size:0x44 -fn_1_EE68 = .text:0x0000EE68; // type:function size:0x70 -fn_1_EED8 = .text:0x0000EED8; // type:function size:0x70 -fn_1_EF48 = .text:0x0000EF48; // type:function size:0x5C -fn_1_EFA4 = .text:0x0000EFA4; // type:function size:0x80 -fn_1_F024 = .text:0x0000F024; // type:function size:0x74 -fn_1_F098 = .text:0x0000F098; // type:function size:0x78 -fn_1_F110 = .text:0x0000F110; // type:function size:0x6C -fn_1_F17C = .text:0x0000F17C; // type:function size:0x78 -fn_1_F1F4 = .text:0x0000F1F4; // type:function size:0x98 -fn_1_F28C = .text:0x0000F28C; // type:function size:0x6C -fn_1_F2F8 = .text:0x0000F2F8; // type:function size:0x78 -fn_1_F370 = .text:0x0000F370; // type:function size:0x98 -fn_1_F408 = .text:0x0000F408; // type:function size:0x70 -fn_1_F478 = .text:0x0000F478; // type:function size:0x78 -fn_1_F4F0 = .text:0x0000F4F0; // type:function size:0x98 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x30 data:4byte -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x100 -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x30 data:4byte -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x10 data:byte -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0xC -lbl_1_data_C = .data:0x0000000C; // type:object size:0xC -lbl_1_data_18 = .data:0x00000018; // type:object size:0x10 -lbl_1_data_28 = .data:0x00000028; // type:object size:0xC -lbl_1_data_34 = .data:0x00000034; // type:object size:0xC -lbl_1_data_40 = .data:0x00000040; // type:object size:0xC -lbl_1_data_4C = .data:0x0000004C; // type:object size:0x70 data:float -lbl_1_data_BC = .data:0x000000BC; // type:object size:0x4 data:4byte -lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x4 data:4byte -lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x9 data:string -lbl_1_data_CD = .data:0x000000CD; // type:object size:0x9 data:string -lbl_1_data_D6 = .data:0x000000D6; // type:object size:0x3 data:string -lbl_1_data_D9 = .data:0x000000D9; // type:object size:0x10 data:string -lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x26 data:string -lbl_1_data_10F = .data:0x0000010F; // type:object size:0x2D -lbl_1_data_13C = .data:0x0000013C; // type:object size:0x1C -lbl_1_data_158 = .data:0x00000158; // type:object size:0x20 -lbl_1_data_178 = .data:0x00000178; // type:object size:0x40 -lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x14 -jumptable_1_data_1CC = .data:0x000001CC; // type:object size:0x20 scope:local -lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x4 data:4byte -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte -lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x2 data:2byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte -lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x1 data:byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte -lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x1 data:byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:float -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x1 data:byte -lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x2 data:2byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:float -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:float -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x1 data:byte -lbl_1_bss_21 = .bss:0x00000021; // type:object size:0x1 data:byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:4byte -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x9C data:2byte -lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x4 data:4byte -lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte -lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x2 data:2byte -lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x8 data:4byte -lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x14 data:4byte -lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x2 data:2byte -lbl_1_bss_106 = .bss:0x00000106; // type:object size:0x2 data:2byte -lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x2 data:2byte -lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x280 data:float -lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x10 -lbl_1_bss_39C = .bss:0x0000039C; // type:object size:0x4 data:4byte -lbl_1_bss_3A0 = .bss:0x000003A0; // type:object size:0x10 diff --git a/config/GMPJ01_00/rels/m410Dll/splits.txt b/config/GMPJ01_00/rels/m410Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m410Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m410Dll/symbols.txt b/config/GMPJ01_00/rels/m410Dll/symbols.txt deleted file mode 100644 index 64fb64e4..00000000 --- a/config/GMPJ01_00/rels/m410Dll/symbols.txt +++ /dev/null @@ -1,317 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x444 -fn_1_4E4 = .text:0x000004E4; // type:function size:0xC4 -fn_1_5A8 = .text:0x000005A8; // type:function size:0x94 -fn_1_63C = .text:0x0000063C; // type:function size:0x16C -fn_1_7A8 = .text:0x000007A8; // type:function size:0x314 -fn_1_ABC = .text:0x00000ABC; // type:function size:0x330 -fn_1_DEC = .text:0x00000DEC; // type:function size:0x204 -fn_1_FF0 = .text:0x00000FF0; // type:function size:0x3AC -fn_1_139C = .text:0x0000139C; // type:function size:0x2AC -fn_1_1648 = .text:0x00001648; // type:function size:0x380 -fn_1_19C8 = .text:0x000019C8; // type:function size:0xB4 -fn_1_1A7C = .text:0x00001A7C; // type:function size:0x6F0 -fn_1_216C = .text:0x0000216C; // type:function size:0x1C -fn_1_2188 = .text:0x00002188; // type:function size:0x664 -fn_1_27EC = .text:0x000027EC; // type:function size:0x18 -fn_1_2804 = .text:0x00002804; // type:function size:0x18 -fn_1_281C = .text:0x0000281C; // type:function size:0x18 -fn_1_2834 = .text:0x00002834; // type:function size:0x18 -fn_1_284C = .text:0x0000284C; // type:function size:0x18 -fn_1_2864 = .text:0x00002864; // type:function size:0x18 -fn_1_287C = .text:0x0000287C; // type:function size:0x30 -fn_1_28AC = .text:0x000028AC; // type:function size:0x30 -fn_1_28DC = .text:0x000028DC; // type:function size:0x38 -fn_1_2914 = .text:0x00002914; // type:function size:0x348 -fn_1_2C5C = .text:0x00002C5C; // type:function size:0x378 -fn_1_2FD4 = .text:0x00002FD4; // type:function size:0x11C -fn_1_30F0 = .text:0x000030F0; // type:function size:0xB4 -fn_1_31A4 = .text:0x000031A4; // type:function size:0x54 -fn_1_31F8 = .text:0x000031F8; // type:function size:0x4 -fn_1_31FC = .text:0x000031FC; // type:function size:0x154 -fn_1_3350 = .text:0x00003350; // type:function size:0x58 -fn_1_33A8 = .text:0x000033A8; // type:function size:0xDC -fn_1_3484 = .text:0x00003484; // type:function size:0x3C -fn_1_34C0 = .text:0x000034C0; // type:function size:0x154 -fn_1_3614 = .text:0x00003614; // type:function size:0x5CC -fn_1_3BE0 = .text:0x00003BE0; // type:function size:0xCF8 -fn_1_48D8 = .text:0x000048D8; // type:function size:0x32C -fn_1_4C04 = .text:0x00004C04; // type:function size:0x3E8 -fn_1_4FEC = .text:0x00004FEC; // type:function size:0x5DC -fn_1_55C8 = .text:0x000055C8; // type:function size:0x3C4 -fn_1_598C = .text:0x0000598C; // type:function size:0x168 -fn_1_5AF4 = .text:0x00005AF4; // type:function size:0x1AC -fn_1_5CA0 = .text:0x00005CA0; // type:function size:0x23C -fn_1_5EDC = .text:0x00005EDC; // type:function size:0x300 -fn_1_61DC = .text:0x000061DC; // type:function size:0x188 -fn_1_6364 = .text:0x00006364; // type:function size:0x354 -fn_1_66B8 = .text:0x000066B8; // type:function size:0x11C -fn_1_67D4 = .text:0x000067D4; // type:function size:0x194 -fn_1_6968 = .text:0x00006968; // type:function size:0x41C -fn_1_6D84 = .text:0x00006D84; // type:function size:0x30 -fn_1_6DB4 = .text:0x00006DB4; // type:function size:0x384 -fn_1_7138 = .text:0x00007138; // type:function size:0x32C -fn_1_7464 = .text:0x00007464; // type:function size:0x30 -fn_1_7494 = .text:0x00007494; // type:function size:0x8C -fn_1_7520 = .text:0x00007520; // type:function size:0x80 -fn_1_75A0 = .text:0x000075A0; // type:function size:0x118 -fn_1_76B8 = .text:0x000076B8; // type:function size:0xEC -fn_1_77A4 = .text:0x000077A4; // type:function size:0x44 -fn_1_77E8 = .text:0x000077E8; // type:function size:0x10 -fn_1_77F8 = .text:0x000077F8; // type:function size:0x48 -fn_1_7840 = .text:0x00007840; // type:function size:0x48 -fn_1_7888 = .text:0x00007888; // type:function size:0x170 -fn_1_79F8 = .text:0x000079F8; // type:function size:0xCC -fn_1_7AC4 = .text:0x00007AC4; // type:function size:0x36C -fn_1_7E30 = .text:0x00007E30; // type:function size:0x23C -fn_1_806C = .text:0x0000806C; // type:function size:0x34 -fn_1_80A0 = .text:0x000080A0; // type:function size:0x374 -fn_1_8414 = .text:0x00008414; // type:function size:0x264 -fn_1_8678 = .text:0x00008678; // type:function size:0x260 -fn_1_88D8 = .text:0x000088D8; // type:function size:0x138 -fn_1_8A10 = .text:0x00008A10; // type:function size:0xAC -fn_1_8ABC = .text:0x00008ABC; // type:function size:0x584 -fn_1_9040 = .text:0x00009040; // type:function size:0x6B4 -fn_1_96F4 = .text:0x000096F4; // type:function size:0x39C -fn_1_9A90 = .text:0x00009A90; // type:function size:0x1F4 -fn_1_9C84 = .text:0x00009C84; // type:function size:0x188 -fn_1_9E0C = .text:0x00009E0C; // type:function size:0xF0 -fn_1_9EFC = .text:0x00009EFC; // type:function size:0x74 -fn_1_9F70 = .text:0x00009F70; // type:function size:0x134 -fn_1_A0A4 = .text:0x0000A0A4; // type:function size:0x31C -fn_1_A3C0 = .text:0x0000A3C0; // type:function size:0x468 -fn_1_A828 = .text:0x0000A828; // type:function size:0x17C -fn_1_A9A4 = .text:0x0000A9A4; // type:function size:0x79C -fn_1_B140 = .text:0x0000B140; // type:function size:0x644 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x10 data:4byte -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x10 data:4byte -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x20 data:4byte -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x1 data:byte -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0xC -lbl_1_data_C = .data:0x0000000C; // type:object size:0xC -lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float -lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 -lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float -lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float -lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float -lbl_1_data_4C = .data:0x0000004C; // type:object size:0x3C -lbl_1_data_88 = .data:0x00000088; // type:object size:0x3C -lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x14 -lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x2 data:2byte -lbl_1_data_DC = .data:0x000000DC; // type:object size:0x20 -lbl_1_data_FC = .data:0x000000FC; // type:object size:0x8 -lbl_1_data_104 = .data:0x00000104; // type:object size:0xC -lbl_1_data_110 = .data:0x00000110; // type:object size:0x4 data:4byte -lbl_1_data_114 = .data:0x00000114; // type:object size:0x1C -lbl_1_data_130 = .data:0x00000130; // type:object size:0x10 -lbl_1_data_140 = .data:0x00000140; // type:object size:0x20 -lbl_1_data_160 = .data:0x00000160; // type:object size:0xC -lbl_1_data_16C = .data:0x0000016C; // type:object size:0x20 -lbl_1_data_18C = .data:0x0000018C; // type:object size:0x20 -lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x28 -lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0xA0 -lbl_1_data_274 = .data:0x00000274; // type:object size:0x20 -lbl_1_data_294 = .data:0x00000294; // type:object size:0x20 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte -lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte -lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x6 data:2byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x2 data:2byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte -lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:float -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:float -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:float -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x10 -lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte -lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m411Dll/splits.txt b/config/GMPJ01_00/rels/m411Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m411Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m411Dll/symbols.txt b/config/GMPJ01_00/rels/m411Dll/symbols.txt deleted file mode 100644 index 38a4c8cd..00000000 --- a/config/GMPJ01_00/rels/m411Dll/symbols.txt +++ /dev/null @@ -1,278 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0xDE0 -fn_1_E80 = .text:0x00000E80; // type:function size:0x10C -fn_1_F8C = .text:0x00000F8C; // type:function size:0xE8 -fn_1_1074 = .text:0x00001074; // type:function size:0x424 -fn_1_1498 = .text:0x00001498; // type:function size:0x88 -fn_1_1520 = .text:0x00001520; // type:function size:0x72C -fn_1_1C4C = .text:0x00001C4C; // type:function size:0x47C -fn_1_20C8 = .text:0x000020C8; // type:function size:0x508 -fn_1_25D0 = .text:0x000025D0; // type:function size:0xEE0 -fn_1_34B0 = .text:0x000034B0; // type:function size:0x5B0 -fn_1_3A60 = .text:0x00003A60; // type:function size:0x3C -fn_1_3A9C = .text:0x00003A9C; // type:function size:0x3C -fn_1_3AD8 = .text:0x00003AD8; // type:function size:0x3C -fn_1_3B14 = .text:0x00003B14; // type:function size:0x3C -fn_1_3B50 = .text:0x00003B50; // type:function size:0x3E4 -fn_1_3F34 = .text:0x00003F34; // type:function size:0x2E4 -fn_1_4218 = .text:0x00004218; // type:function size:0x23C -fn_1_4454 = .text:0x00004454; // type:function size:0x514 -fn_1_4968 = .text:0x00004968; // type:function size:0x248 -fn_1_4BB0 = .text:0x00004BB0; // type:function size:0x2DC -fn_1_4E8C = .text:0x00004E8C; // type:function size:0x1F0 -fn_1_507C = .text:0x0000507C; // type:function size:0x308 -fn_1_5384 = .text:0x00005384; // type:function size:0xC8 -fn_1_544C = .text:0x0000544C; // type:function size:0x108 -fn_1_5554 = .text:0x00005554; // type:function size:0x368 -fn_1_58BC = .text:0x000058BC; // type:function size:0x54 -fn_1_5910 = .text:0x00005910; // type:function size:0x448 -fn_1_5D58 = .text:0x00005D58; // type:function size:0xB8 -fn_1_5E10 = .text:0x00005E10; // type:function size:0xC0 -fn_1_5ED0 = .text:0x00005ED0; // type:function size:0x6C -fn_1_5F3C = .text:0x00005F3C; // type:function size:0x4EC -fn_1_6428 = .text:0x00006428; // type:function size:0x3F8 -fn_1_6820 = .text:0x00006820; // type:function size:0x21C -fn_1_6A3C = .text:0x00006A3C; // type:function size:0x2B8 -fn_1_6CF4 = .text:0x00006CF4; // type:function size:0xE4 -fn_1_6DD8 = .text:0x00006DD8; // type:function size:0xC4 -fn_1_6E9C = .text:0x00006E9C; // type:function size:0xAC -fn_1_6F48 = .text:0x00006F48; // type:function size:0x680 -fn_1_75C8 = .text:0x000075C8; // type:function size:0xB8 -fn_1_7680 = .text:0x00007680; // type:function size:0xB8 -fn_1_7738 = .text:0x00007738; // type:function size:0x1348 -fn_1_8A80 = .text:0x00008A80; // type:function size:0x33C -fn_1_8DBC = .text:0x00008DBC; // type:function size:0x6D4 -fn_1_9490 = .text:0x00009490; // type:function size:0x730 -fn_1_9BC0 = .text:0x00009BC0; // type:function size:0x444 -fn_1_A004 = .text:0x0000A004; // type:function size:0x78 -fn_1_A07C = .text:0x0000A07C; // type:function size:0xA4 -fn_1_A120 = .text:0x0000A120; // type:function size:0x394 -fn_1_A4B4 = .text:0x0000A4B4; // type:function size:0x2D4 -fn_1_A788 = .text:0x0000A788; // type:function size:0x528 -fn_1_ACB0 = .text:0x0000ACB0; // type:function size:0xA8 -fn_1_AD58 = .text:0x0000AD58; // type:function size:0xB50 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 -lbl_1_data_54 = .data:0x00000054; // type:object size:0xC -lbl_1_data_60 = .data:0x00000060; // type:object size:0xC -lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC -lbl_1_data_78 = .data:0x00000078; // type:object size:0xE data:string -lbl_1_data_86 = .data:0x00000086; // type:object size:0xE data:string -lbl_1_data_94 = .data:0x00000094; // type:object size:0xE data:string -lbl_1_data_A2 = .data:0x000000A2; // type:object size:0xE data:string -lbl_1_data_B0 = .data:0x000000B0; // type:object size:0xE data:string -lbl_1_data_BE = .data:0x000000BE; // type:object size:0xE data:string -lbl_1_data_CC = .data:0x000000CC; // type:object size:0xE data:string -lbl_1_data_DA = .data:0x000000DA; // type:object size:0xE data:string -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0xE data:string -lbl_1_data_F6 = .data:0x000000F6; // type:object size:0xE data:string -lbl_1_data_104 = .data:0x00000104; // type:object size:0xE data:string -lbl_1_data_112 = .data:0x00000112; // type:object size:0xE data:string -lbl_1_data_120 = .data:0x00000120; // type:object size:0xE data:string -lbl_1_data_12E = .data:0x0000012E; // type:object size:0xE data:string -lbl_1_data_13C = .data:0x0000013C; // type:object size:0xE data:string -lbl_1_data_14A = .data:0x0000014A; // type:object size:0xE data:string -lbl_1_data_158 = .data:0x00000158; // type:object size:0xE data:string -lbl_1_data_166 = .data:0x00000166; // type:object size:0xE data:string -lbl_1_data_174 = .data:0x00000174; // type:object size:0xE data:string -lbl_1_data_182 = .data:0x00000182; // type:object size:0xE data:string -lbl_1_data_190 = .data:0x00000190; // type:object size:0xE data:string -lbl_1_data_19E = .data:0x0000019E; // type:object size:0xE data:string -lbl_1_data_1AC = .data:0x000001AC; // type:object size:0xE data:string -lbl_1_data_1BA = .data:0x000001BA; // type:object size:0xE data:string -lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x78 -lbl_1_data_240 = .data:0x00000240; // type:object size:0x20 -lbl_1_data_260 = .data:0x00000260; // type:object size:0x20 -lbl_1_data_280 = .data:0x00000280; // type:object size:0x24 -lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x20 -lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0xC -lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x14 -lbl_1_data_2E4 = .data:0x000002E4; // type:object size:0xB data:string -lbl_1_data_2EF = .data:0x000002EF; // type:object size:0xB data:string -lbl_1_data_2FA = .data:0x000002FA; // type:object size:0x8 data:string -lbl_1_data_302 = .data:0x00000302; // type:object size:0xA -lbl_1_data_30C = .data:0x0000030C; // type:object size:0x10 -lbl_1_data_31C = .data:0x0000031C; // type:object size:0xC data:string -lbl_1_data_328 = .data:0x00000328; // type:object size:0x7 data:string -lbl_1_data_32F = .data:0x0000032F; // type:object size:0x7 data:string -lbl_1_data_336 = .data:0x00000336; // type:object size:0x7 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x60 data:float -lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x60 data:float -lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x60 data:float -lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x10 -lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte -lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x33C data:float -lbl_1_bss_474 = .bss:0x00000474; // type:object size:0x9B0 -lbl_1_bss_E24 = .bss:0x00000E24; // type:object size:0x4 data:float -lbl_1_bss_E28 = .bss:0x00000E28; // type:object size:0x4 data:4byte -lbl_1_bss_E2C = .bss:0x00000E2C; // type:object size:0xC data:4byte -lbl_1_bss_E38 = .bss:0x00000E38; // type:object size:0x4 data:4byte -lbl_1_bss_E3C = .bss:0x00000E3C; // type:object size:0x4 data:4byte -lbl_1_bss_E40 = .bss:0x00000E40; // type:object size:0x4 data:4byte -lbl_1_bss_E44 = .bss:0x00000E44; // type:object size:0x28 data:4byte -lbl_1_bss_E6C = .bss:0x00000E6C; // type:object size:0x28 data:4byte -lbl_1_bss_E94 = .bss:0x00000E94; // type:object size:0x4 data:4byte -lbl_1_bss_E98 = .bss:0x00000E98; // type:object size:0x4 data:4byte -lbl_1_bss_E9C = .bss:0x00000E9C; // type:object size:0x2 data:2byte -lbl_1_bss_E9E = .bss:0x00000E9E; // type:object size:0x2 data:2byte -lbl_1_bss_EA0 = .bss:0x00000EA0; // type:object size:0x2 data:2byte diff --git a/config/GMPJ01_00/rels/m412Dll/splits.txt b/config/GMPJ01_00/rels/m412Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m412Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m412Dll/symbols.txt b/config/GMPJ01_00/rels/m412Dll/symbols.txt deleted file mode 100644 index 4212d668..00000000 --- a/config/GMPJ01_00/rels/m412Dll/symbols.txt +++ /dev/null @@ -1,190 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x64C -fn_1_6EC = .text:0x000006EC; // type:function size:0x50 -fn_1_73C = .text:0x0000073C; // type:function size:0x80 -fn_1_7BC = .text:0x000007BC; // type:function size:0xD8 -fn_1_894 = .text:0x00000894; // type:function size:0x4 -fn_1_898 = .text:0x00000898; // type:function size:0x24 -fn_1_8BC = .text:0x000008BC; // type:function size:0x144C -fn_1_1D08 = .text:0x00001D08; // type:function size:0x80 -fn_1_1D88 = .text:0x00001D88; // type:function size:0x34 -fn_1_1DBC = .text:0x00001DBC; // type:function size:0x258 -fn_1_2014 = .text:0x00002014; // type:function size:0x50 -fn_1_2064 = .text:0x00002064; // type:function size:0x6A4 -fn_1_2708 = .text:0x00002708; // type:function size:0xBC -fn_1_27C4 = .text:0x000027C4; // type:function size:0x258 -fn_1_2A1C = .text:0x00002A1C; // type:function size:0xF34 -fn_1_3950 = .text:0x00003950; // type:function size:0x1294 -fn_1_4BE4 = .text:0x00004BE4; // type:function size:0xB8 -fn_1_4C9C = .text:0x00004C9C; // type:function size:0x1BC -fn_1_4E58 = .text:0x00004E58; // type:function size:0x404 -fn_1_525C = .text:0x0000525C; // type:function size:0xC0 -fn_1_531C = .text:0x0000531C; // type:function size:0x6C -fn_1_5388 = .text:0x00005388; // type:function size:0x6C -fn_1_53F4 = .text:0x000053F4; // type:function size:0x228 -fn_1_561C = .text:0x0000561C; // type:function size:0x21C -fn_1_5838 = .text:0x00005838; // type:function size:0xD5C -fn_1_6594 = .text:0x00006594; // type:function size:0x104 -fn_1_6698 = .text:0x00006698; // type:function size:0x17C -fn_1_6814 = .text:0x00006814; // type:function size:0x144C -fn_1_7C60 = .text:0x00007C60; // type:function size:0x23BC -fn_1_A01C = .text:0x0000A01C; // type:function size:0x5FC -fn_1_A618 = .text:0x0000A618; // type:function size:0x470 -fn_1_AA88 = .text:0x0000AA88; // type:function size:0x340 -fn_1_ADC8 = .text:0x0000ADC8; // type:function size:0x374 -fn_1_B13C = .text:0x0000B13C; // type:function size:0x24 -fn_1_B160 = .text:0x0000B160; // type:function size:0x60 -fn_1_B1C0 = .text:0x0000B1C0; // type:function size:0x4A0 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 -lbl_1_data_20 = .data:0x00000020; // type:object size:0x20 -lbl_1_data_40 = .data:0x00000040; // type:object size:0x20 -lbl_1_data_60 = .data:0x00000060; // type:object size:0x18 -lbl_1_data_78 = .data:0x00000078; // type:object size:0x54 data:float -lbl_1_data_CC = .data:0x000000CC; // type:object size:0x14 data:string -lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x14 data:string -lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x14 data:string -lbl_1_data_108 = .data:0x00000108; // type:object size:0x14 data:string -lbl_1_data_11C = .data:0x0000011C; // type:object size:0x14 data:string -lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 data:string -lbl_1_data_144 = .data:0x00000144; // type:object size:0x14 data:string -lbl_1_data_158 = .data:0x00000158; // type:object size:0x14 data:string -lbl_1_data_16C = .data:0x0000016C; // type:object size:0x14 data:string -lbl_1_data_180 = .data:0x00000180; // type:object size:0x14 data:string -lbl_1_data_194 = .data:0x00000194; // type:object size:0x14 data:string -lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x14 data:string -lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x14 data:string -lbl_1_data_1D0 = .data:0x000001D0; // type:object size:0x14 data:string -lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x14 data:string -lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x14 data:string -lbl_1_data_20C = .data:0x0000020C; // type:object size:0x14 data:string -lbl_1_data_220 = .data:0x00000220; // type:object size:0x14 data:string -lbl_1_data_234 = .data:0x00000234; // type:object size:0x14 data:string -lbl_1_data_248 = .data:0x00000248; // type:object size:0x14 data:string -lbl_1_data_25C = .data:0x0000025C; // type:object size:0x14 data:string -lbl_1_data_270 = .data:0x00000270; // type:object size:0x14 data:string -lbl_1_data_284 = .data:0x00000284; // type:object size:0x14 data:string -lbl_1_data_298 = .data:0x00000298; // type:object size:0x5C -lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0xC data:string -lbl_1_data_300 = .data:0x00000300; // type:object size:0x7 data:string -lbl_1_data_307 = .data:0x00000307; // type:object size:0x9 -lbl_1_data_310 = .data:0x00000310; // type:object size:0x30 -lbl_1_data_340 = .data:0x00000340; // type:object size:0x8 -lbl_1_data_348 = .data:0x00000348; // type:object size:0x18 -lbl_1_data_360 = .data:0x00000360; // type:object size:0x9 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x10 data:float -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x114 -lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x114 -lbl_1_bss_250 = .bss:0x00000250; // type:object size:0xC data:float -lbl_1_bss_25C = .bss:0x0000025C; // type:object size:0xC data:float -lbl_1_bss_268 = .bss:0x00000268; // type:object size:0xC data:float -lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x4 data:4byte -lbl_1_bss_278 = .bss:0x00000278; // type:object size:0x80 -lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x44 data:2byte -lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x198 -lbl_1_bss_4D4 = .bss:0x000004D4; // type:object size:0x2A0 -lbl_1_bss_774 = .bss:0x00000774; // type:object size:0x4 data:float -lbl_1_bss_778 = .bss:0x00000778; // type:object size:0x4 data:float -lbl_1_bss_77C = .bss:0x0000077C; // type:object size:0x4 data:float -lbl_1_bss_780 = .bss:0x00000780; // type:object size:0x10 data:4byte -lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x4 data:4byte -lbl_1_bss_794 = .bss:0x00000794; // type:object size:0x4 data:4byte -lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x2 data:2byte -lbl_1_bss_79C = .bss:0x0000079C; // type:object size:0x2 data:2byte -lbl_1_bss_79E = .bss:0x0000079E; // type:object size:0x2 data:2byte -lbl_1_bss_7A0 = .bss:0x000007A0; // type:object size:0x2 data:2byte diff --git a/config/GMPJ01_00/rels/m414Dll/splits.txt b/config/GMPJ01_00/rels/m414Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m414Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m414Dll/symbols.txt b/config/GMPJ01_00/rels/m414Dll/symbols.txt deleted file mode 100644 index 79f1669a..00000000 --- a/config/GMPJ01_00/rels/m414Dll/symbols.txt +++ /dev/null @@ -1,183 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x87C -fn_1_91C = .text:0x0000091C; // type:function size:0x268 -fn_1_B84 = .text:0x00000B84; // type:function size:0x154 -fn_1_CD8 = .text:0x00000CD8; // type:function size:0x7C -fn_1_D54 = .text:0x00000D54; // type:function size:0x634 -fn_1_1388 = .text:0x00001388; // type:function size:0x3C -fn_1_13C4 = .text:0x000013C4; // type:function size:0x3C -fn_1_1400 = .text:0x00001400; // type:function size:0x3C -fn_1_143C = .text:0x0000143C; // type:function size:0x3C -fn_1_1478 = .text:0x00001478; // type:function size:0x214 -fn_1_168C = .text:0x0000168C; // type:function size:0x3C -fn_1_16C8 = .text:0x000016C8; // type:function size:0x3C -fn_1_1704 = .text:0x00001704; // type:function size:0x3C -fn_1_1740 = .text:0x00001740; // type:function size:0x3C -fn_1_177C = .text:0x0000177C; // type:function size:0x3DC -fn_1_1B58 = .text:0x00001B58; // type:function size:0x3C -fn_1_1B94 = .text:0x00001B94; // type:function size:0x3C -fn_1_1BD0 = .text:0x00001BD0; // type:function size:0x3C -fn_1_1C0C = .text:0x00001C0C; // type:function size:0x3C -fn_1_1C48 = .text:0x00001C48; // type:function size:0x1BC -fn_1_1E04 = .text:0x00001E04; // type:function size:0x1B78 -fn_1_397C = .text:0x0000397C; // type:function size:0xDC -fn_1_3A58 = .text:0x00003A58; // type:function size:0xDC -fn_1_3B34 = .text:0x00003B34; // type:function size:0x214 -fn_1_3D48 = .text:0x00003D48; // type:function size:0x184 -fn_1_3ECC = .text:0x00003ECC; // type:function size:0x3E0 -fn_1_42AC = .text:0x000042AC; // type:function size:0x958 -fn_1_4C04 = .text:0x00004C04; // type:function size:0x70 -fn_1_4C74 = .text:0x00004C74; // type:function size:0x19C -fn_1_4E10 = .text:0x00004E10; // type:function size:0x744 -fn_1_5554 = .text:0x00005554; // type:function size:0xD0 -fn_1_5624 = .text:0x00005624; // type:function size:0xD8 -fn_1_56FC = .text:0x000056FC; // type:function size:0x84 -fn_1_5780 = .text:0x00005780; // type:function size:0x2BC -fn_1_5A3C = .text:0x00005A3C; // type:function size:0x4AC -fn_1_5EE8 = .text:0x00005EE8; // type:function size:0x24C -fn_1_6134 = .text:0x00006134; // type:function size:0x418 -fn_1_654C = .text:0x0000654C; // type:function size:0x90 -fn_1_65DC = .text:0x000065DC; // type:function size:0x68 -fn_1_6644 = .text:0x00006644; // type:function size:0x10B0 -fn_1_76F4 = .text:0x000076F4; // type:function size:0x2B4 -fn_1_79A8 = .text:0x000079A8; // type:function size:0x620 -fn_1_7FC8 = .text:0x00007FC8; // type:function size:0x90C -fn_1_88D4 = .text:0x000088D4; // type:function size:0x78 -fn_1_894C = .text:0x0000894C; // type:function size:0xC4 -fn_1_8A10 = .text:0x00008A10; // type:function size:0x60 -fn_1_8A70 = .text:0x00008A70; // type:function size:0x458 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 -lbl_1_data_10 = .data:0x00000010; // type:object size:0x10 -lbl_1_data_20 = .data:0x00000020; // type:object size:0x10 -lbl_1_data_30 = .data:0x00000030; // type:object size:0x20 -lbl_1_data_50 = .data:0x00000050; // type:object size:0x18 -lbl_1_data_68 = .data:0x00000068; // type:object size:0x24 -lbl_1_data_8C = .data:0x0000008C; // type:object size:0x18 -lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x10 -lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x10 -lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x60 -lbl_1_data_124 = .data:0x00000124; // type:object size:0x10 data:string -lbl_1_data_134 = .data:0x00000134; // type:object size:0x7 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0xC data:float -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x3C -lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x3C -lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x3C -lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x4 data:4byte -lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x10 -lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x820 data:2byte -lbl_1_bss_910 = .bss:0x00000910; // type:object size:0x10 data:float -lbl_1_bss_920 = .bss:0x00000920; // type:object size:0x10 data:float -lbl_1_bss_930 = .bss:0x00000930; // type:object size:0x8 data:4byte -lbl_1_bss_938 = .bss:0x00000938; // type:object size:0x40 -lbl_1_bss_978 = .bss:0x00000978; // type:object size:0x4 data:4byte -lbl_1_bss_97C = .bss:0x0000097C; // type:object size:0x10 -lbl_1_bss_98C = .bss:0x0000098C; // type:object size:0x4 data:4byte -lbl_1_bss_990 = .bss:0x00000990; // type:object size:0x80 -lbl_1_bss_A10 = .bss:0x00000A10; // type:object size:0x2 data:2byte -lbl_1_bss_A12 = .bss:0x00000A12; // type:object size:0x2 data:2byte diff --git a/config/GMPJ01_00/rels/m415Dll/splits.txt b/config/GMPJ01_00/rels/m415Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m415Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m415Dll/symbols.txt b/config/GMPJ01_00/rels/m415Dll/symbols.txt deleted file mode 100644 index e1777beb..00000000 --- a/config/GMPJ01_00/rels/m415Dll/symbols.txt +++ /dev/null @@ -1,234 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x39C -fn_1_43C = .text:0x0000043C; // type:function size:0x74 -fn_1_4B0 = .text:0x000004B0; // type:function size:0x328 -fn_1_7D8 = .text:0x000007D8; // type:function size:0xCE8 -fn_1_14C0 = .text:0x000014C0; // type:function size:0x64 -fn_1_1524 = .text:0x00001524; // type:function size:0xAC -fn_1_15D0 = .text:0x000015D0; // type:function size:0x390 -fn_1_1960 = .text:0x00001960; // type:function size:0x100 -fn_1_1A60 = .text:0x00001A60; // type:function size:0x10B8 -fn_1_2B18 = .text:0x00002B18; // type:function size:0xFC -fn_1_2C14 = .text:0x00002C14; // type:function size:0x274 -fn_1_2E88 = .text:0x00002E88; // type:function size:0xA0 -fn_1_2F28 = .text:0x00002F28; // type:function size:0x2B8 -fn_1_31E0 = .text:0x000031E0; // type:function size:0x28 -fn_1_3208 = .text:0x00003208; // type:function size:0x438 -fn_1_3640 = .text:0x00003640; // type:function size:0x124 -fn_1_3764 = .text:0x00003764; // type:function size:0x3E0 -fn_1_3B44 = .text:0x00003B44; // type:function size:0xB1C -fn_1_4660 = .text:0x00004660; // type:function size:0x14C0 -fn_1_5B20 = .text:0x00005B20; // type:function size:0x490 -fn_1_5FB0 = .text:0x00005FB0; // type:function size:0x354 -fn_1_6304 = .text:0x00006304; // type:function size:0x64 -fn_1_6368 = .text:0x00006368; // type:function size:0x40 -fn_1_63A8 = .text:0x000063A8; // type:function size:0xA0 -fn_1_6448 = .text:0x00006448; // type:function size:0x94 -fn_1_64DC = .text:0x000064DC; // type:function size:0xA8 -fn_1_6584 = .text:0x00006584; // type:function size:0x108 -fn_1_668C = .text:0x0000668C; // type:function size:0x20 -fn_1_66AC = .text:0x000066AC; // type:function size:0xF0 -fn_1_679C = .text:0x0000679C; // type:function size:0x54 -fn_1_67F0 = .text:0x000067F0; // type:function size:0x168 -fn_1_6958 = .text:0x00006958; // type:function size:0x120 -fn_1_6A78 = .text:0x00006A78; // type:function size:0x30C -fn_1_6D84 = .text:0x00006D84; // type:function size:0x78 -fn_1_6DFC = .text:0x00006DFC; // type:function size:0x11C -fn_1_6F18 = .text:0x00006F18; // type:function size:0x78 -fn_1_6F90 = .text:0x00006F90; // type:function size:0x2D8 -fn_1_7268 = .text:0x00007268; // type:function size:0x2B8 -fn_1_7520 = .text:0x00007520; // type:function size:0x154 -fn_1_7674 = .text:0x00007674; // type:function size:0x3E0 -fn_1_7A54 = .text:0x00007A54; // type:function size:0x214 -fn_1_7C68 = .text:0x00007C68; // type:function size:0x198 -fn_1_7E00 = .text:0x00007E00; // type:function size:0xD8 -fn_1_7ED8 = .text:0x00007ED8; // type:function size:0xBC -fn_1_7F94 = .text:0x00007F94; // type:function size:0x33C -fn_1_82D0 = .text:0x000082D0; // type:function size:0x4B0 -fn_1_8780 = .text:0x00008780; // type:function size:0x138 -fn_1_88B8 = .text:0x000088B8; // type:function size:0xD08 -fn_1_95C0 = .text:0x000095C0; // type:function size:0x12C -fn_1_96EC = .text:0x000096EC; // type:function size:0x1C -fn_1_9708 = .text:0x00009708; // type:function size:0x2C -fn_1_9734 = .text:0x00009734; // type:function size:0x1C -fn_1_9750 = .text:0x00009750; // type:function size:0x184 -fn_1_98D4 = .text:0x000098D4; // type:function size:0xA0 -fn_1_9974 = .text:0x00009974; // type:function size:0xA8 -fn_1_9A1C = .text:0x00009A1C; // type:function size:0x8C -fn_1_9AA8 = .text:0x00009AA8; // type:function size:0x98 -fn_1_9B40 = .text:0x00009B40; // type:function size:0x288 -fn_1_9DC8 = .text:0x00009DC8; // type:function size:0x508 -fn_1_A2D0 = .text:0x0000A2D0; // type:function size:0x530 -fn_1_A800 = .text:0x0000A800; // type:function size:0x120 -fn_1_A920 = .text:0x0000A920; // type:function size:0x2C -fn_1_A94C = .text:0x0000A94C; // type:function size:0x3A8 -fn_1_ACF4 = .text:0x0000ACF4; // type:function size:0x254 -fn_1_AF48 = .text:0x0000AF48; // type:function size:0x80 -fn_1_AFC8 = .text:0x0000AFC8; // type:function size:0x70 -fn_1_B038 = .text:0x0000B038; // type:function size:0x80 -fn_1_B0B8 = .text:0x0000B0B8; // type:function size:0x57C -fn_1_B634 = .text:0x0000B634; // type:function size:0x230 -fn_1_B864 = .text:0x0000B864; // type:function size:0x6C -fn_1_B8D0 = .text:0x0000B8D0; // type:function size:0x70 -fn_1_B940 = .text:0x0000B940; // type:function size:0x74 -fn_1_B9B4 = .text:0x0000B9B4; // type:function size:0x84 -fn_1_BA38 = .text:0x0000BA38; // type:function size:0x88 -fn_1_BAC0 = .text:0x0000BAC0; // type:function size:0x8C -fn_1_BB4C = .text:0x0000BB4C; // type:function size:0x6C -fn_1_BBB8 = .text:0x0000BBB8; // type:function size:0x70 -fn_1_BC28 = .text:0x0000BC28; // type:function size:0x74 -fn_1_BC9C = .text:0x0000BC9C; // type:function size:0x6C -fn_1_BD08 = .text:0x0000BD08; // type:function size:0x70 -fn_1_BD78 = .text:0x0000BD78; // type:function size:0x74 -fn_1_BDEC = .text:0x0000BDEC; // type:function size:0x44 -fn_1_BE30 = .text:0x0000BE30; // type:function size:0x70 -fn_1_BEA0 = .text:0x0000BEA0; // type:function size:0x70 -fn_1_BF10 = .text:0x0000BF10; // type:function size:0x44 -fn_1_BF54 = .text:0x0000BF54; // type:function size:0x70 -fn_1_BFC4 = .text:0x0000BFC4; // type:function size:0x70 -fn_1_C034 = .text:0x0000C034; // type:function size:0x5C -fn_1_C090 = .text:0x0000C090; // type:function size:0x80 -fn_1_C110 = .text:0x0000C110; // type:function size:0x74 -fn_1_C184 = .text:0x0000C184; // type:function size:0x78 -fn_1_C1FC = .text:0x0000C1FC; // type:function size:0x68 -fn_1_C264 = .text:0x0000C264; // type:function size:0x6C -fn_1_C2D0 = .text:0x0000C2D0; // type:function size:0x68 -fn_1_C338 = .text:0x0000C338; // type:function size:0x6C -fn_1_C3A4 = .text:0x0000C3A4; // type:function size:0x6C -fn_1_C410 = .text:0x0000C410; // type:function size:0x78 -fn_1_C488 = .text:0x0000C488; // type:function size:0x98 -fn_1_C520 = .text:0x0000C520; // type:function size:0x6C -fn_1_C58C = .text:0x0000C58C; // type:function size:0x78 -fn_1_C604 = .text:0x0000C604; // type:function size:0x98 -fn_1_C69C = .text:0x0000C69C; // type:function size:0x70 -fn_1_C70C = .text:0x0000C70C; // type:function size:0x78 -fn_1_C784 = .text:0x0000C784; // type:function size:0x98 -fn_1_C81C = .text:0x0000C81C; // type:function size:0x40 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x10 data:byte -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x20 data:byte -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x20 data:byte -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x10 data:byte -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 data:byte -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x30 data:4byte -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x10 data:byte -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0xC -lbl_1_data_C = .data:0x0000000C; // type:object size:0xC -lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 -lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC -lbl_1_data_28 = .data:0x00000028; // type:object size:0xC -lbl_1_data_34 = .data:0x00000034; // type:object size:0xC -lbl_1_data_40 = .data:0x00000040; // type:object size:0x24 -lbl_1_data_64 = .data:0x00000064; // type:object size:0x4 data:4byte -lbl_1_data_68 = .data:0x00000068; // type:object size:0x7 data:string -lbl_1_data_6F = .data:0x0000006F; // type:object size:0x6 data:string -lbl_1_data_75 = .data:0x00000075; // type:object size:0xB -lbl_1_data_80 = .data:0x00000080; // type:object size:0x28 -lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x30 -lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x8 data:string -jumptable_1_data_E0 = .data:0x000000E0; // type:object size:0x28 scope:local -lbl_1_data_108 = .data:0x00000108; // type:object size:0x8 data:string -lbl_1_data_110 = .data:0x00000110; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x30 -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x200 -lbl_1_bss_234 = .bss:0x00000234; // type:object size:0x100 -lbl_1_bss_334 = .bss:0x00000334; // type:object size:0x4 data:4byte -lbl_1_bss_338 = .bss:0x00000338; // type:object size:0x2 data:2byte -lbl_1_bss_33A = .bss:0x0000033A; // type:object size:0x8 data:2byte -lbl_1_bss_342 = .bss:0x00000342; // type:object size:0x2 data:2byte -lbl_1_bss_344 = .bss:0x00000344; // type:object size:0x2 data:2byte -lbl_1_bss_346 = .bss:0x00000346; // type:object size:0x2 data:2byte -lbl_1_bss_348 = .bss:0x00000348; // type:object size:0x2 data:2byte -lbl_1_bss_34A = .bss:0x0000034A; // type:object size:0x2 data:2byte -lbl_1_bss_34C = .bss:0x0000034C; // type:object size:0x10 -lbl_1_bss_35C = .bss:0x0000035C; // type:object size:0x4 data:4byte -lbl_1_bss_360 = .bss:0x00000360; // type:object size:0x4 data:4byte -lbl_1_bss_364 = .bss:0x00000364; // type:object size:0x4 data:4byte -lbl_1_bss_368 = .bss:0x00000368; // type:object size:0x4 data:4byte -lbl_1_bss_36C = .bss:0x0000036C; // type:object size:0x44 data:4byte diff --git a/config/GMPJ01_00/rels/m416Dll/splits.txt b/config/GMPJ01_00/rels/m416Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m416Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m416Dll/symbols.txt b/config/GMPJ01_00/rels/m416Dll/symbols.txt deleted file mode 100644 index 6b6bdfe8..00000000 --- a/config/GMPJ01_00/rels/m416Dll/symbols.txt +++ /dev/null @@ -1,209 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x3B8 -fn_1_458 = .text:0x00000458; // type:function size:0xA4 -fn_1_4FC = .text:0x000004FC; // type:function size:0xCEC -fn_1_11E8 = .text:0x000011E8; // type:function size:0x58 -fn_1_1240 = .text:0x00001240; // type:function size:0x10 -fn_1_1250 = .text:0x00001250; // type:function size:0x10 -fn_1_1260 = .text:0x00001260; // type:function size:0x220 -fn_1_1480 = .text:0x00001480; // type:function size:0x68 -fn_1_14E8 = .text:0x000014E8; // type:function size:0x84 -fn_1_156C = .text:0x0000156C; // type:function size:0x3F8 -fn_1_1964 = .text:0x00001964; // type:function size:0x178 -fn_1_1ADC = .text:0x00001ADC; // type:function size:0x1A4 -fn_1_1C80 = .text:0x00001C80; // type:function size:0x104 -fn_1_1D84 = .text:0x00001D84; // type:function size:0xBAC -fn_1_2930 = .text:0x00002930; // type:function size:0xAC -fn_1_29DC = .text:0x000029DC; // type:function size:0x4C8 -fn_1_2EA4 = .text:0x00002EA4; // type:function size:0x778 -fn_1_361C = .text:0x0000361C; // type:function size:0x280 -fn_1_389C = .text:0x0000389C; // type:function size:0x54 -fn_1_38F0 = .text:0x000038F0; // type:function size:0x10D4 -fn_1_49C4 = .text:0x000049C4; // type:function size:0x640 -fn_1_5004 = .text:0x00005004; // type:function size:0x54 -fn_1_5058 = .text:0x00005058; // type:function size:0x264 -fn_1_52BC = .text:0x000052BC; // type:function size:0x274 -fn_1_5530 = .text:0x00005530; // type:function size:0x704 -fn_1_5C34 = .text:0x00005C34; // type:function size:0xE4 -fn_1_5D18 = .text:0x00005D18; // type:function size:0x60 -fn_1_5D78 = .text:0x00005D78; // type:function size:0x3C4 -fn_1_613C = .text:0x0000613C; // type:function size:0x504 -fn_1_6640 = .text:0x00006640; // type:function size:0x4A8 -fn_1_6AE8 = .text:0x00006AE8; // type:function size:0x304 -fn_1_6DEC = .text:0x00006DEC; // type:function size:0x70 -fn_1_6E5C = .text:0x00006E5C; // type:function size:0x240 -fn_1_709C = .text:0x0000709C; // type:function size:0x250 -fn_1_72EC = .text:0x000072EC; // type:function size:0x6E4 -fn_1_79D0 = .text:0x000079D0; // type:function size:0x84 -fn_1_7A54 = .text:0x00007A54; // type:function size:0x20 -fn_1_7A74 = .text:0x00007A74; // type:function size:0x300 -fn_1_7D74 = .text:0x00007D74; // type:function size:0x1BC -fn_1_7F30 = .text:0x00007F30; // type:function size:0x484 -fn_1_83B4 = .text:0x000083B4; // type:function size:0x550 -fn_1_8904 = .text:0x00008904; // type:function size:0xB8 -fn_1_89BC = .text:0x000089BC; // type:function size:0x4E4 -fn_1_8EA0 = .text:0x00008EA0; // type:function size:0x14 -fn_1_8EB4 = .text:0x00008EB4; // type:function size:0xAC -fn_1_8F60 = .text:0x00008F60; // type:function size:0x90 -fn_1_8FF0 = .text:0x00008FF0; // type:function size:0x4 -fn_1_8FF4 = .text:0x00008FF4; // type:function size:0x34 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x1 data:byte -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float -lbl_1_data_38 = .data:0x00000038; // type:object size:0x1 data:byte -lbl_1_data_3C = .data:0x0000003C; // type:object size:0x1 data:byte -lbl_1_data_40 = .data:0x00000040; // type:object size:0x24 -lbl_1_data_64 = .data:0x00000064; // type:object size:0x4 data:4byte -jumptable_1_data_68 = .data:0x00000068; // type:object size:0x2C scope:local -lbl_1_data_94 = .data:0x00000094; // type:object size:0x1C data:string -lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x40 -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x1C -lbl_1_data_10C = .data:0x0000010C; // type:object size:0x48 -lbl_1_data_154 = .data:0x00000154; // type:object size:0x24 -lbl_1_data_178 = .data:0x00000178; // type:object size:0x8 -lbl_1_data_180 = .data:0x00000180; // type:object size:0x18 -lbl_1_data_198 = .data:0x00000198; // type:object size:0x30 -lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0x20 -lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0xC data:4byte -lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x24 -lbl_1_data_218 = .data:0x00000218; // type:object size:0x48 -lbl_1_data_260 = .data:0x00000260; // type:object size:0x8 data:float -lbl_1_data_268 = .data:0x00000268; // type:object size:0x1 data:byte -lbl_1_data_26C = .data:0x0000026C; // type:object size:0x60 data:float -lbl_1_data_2CC = .data:0x000002CC; // type:object size:0x18 -lbl_1_data_2E4 = .data:0x000002E4; // type:object size:0x8 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x10 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte -lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x900 -lbl_1_bss_914 = .bss:0x00000914; // type:object size:0x4 data:4byte -lbl_1_bss_918 = .bss:0x00000918; // type:object size:0x2 data:2byte -lbl_1_bss_91A = .bss:0x0000091A; // type:object size:0x6 data:2byte -lbl_1_bss_920 = .bss:0x00000920; // type:object size:0x4 data:float -lbl_1_bss_924 = .bss:0x00000924; // type:object size:0x2 data:2byte -lbl_1_bss_926 = .bss:0x00000926; // type:object size:0x2 data:2byte -lbl_1_bss_928 = .bss:0x00000928; // type:object size:0x2 data:2byte -lbl_1_bss_92A = .bss:0x0000092A; // type:object size:0x2 data:2byte -lbl_1_bss_92E = .bss:0x0000092E; // type:object size:0x2 data:2byte -lbl_1_bss_930 = .bss:0x00000930; // type:object size:0x20 data:4byte -lbl_1_bss_950 = .bss:0x00000950; // type:object size:0x4 data:4byte -lbl_1_bss_954 = .bss:0x00000954; // type:object size:0x4 data:4byte -lbl_1_bss_958 = .bss:0x00000958; // type:object size:0x4 data:4byte -lbl_1_bss_95C = .bss:0x0000095C; // type:object size:0x2 data:2byte -lbl_1_bss_960 = .bss:0x00000960; // type:object size:0x8 data:4byte -lbl_1_bss_968 = .bss:0x00000968; // type:object size:0x800 data:2byte -lbl_1_bss_1168 = .bss:0x00001168; // type:object size:0x2 data:2byte -lbl_1_bss_116C = .bss:0x0000116C; // type:object size:0x8 data:float -lbl_1_bss_1174 = .bss:0x00001174; // type:object size:0x8 -lbl_1_bss_117C = .bss:0x0000117C; // type:object size:0x4 data:float -lbl_1_bss_1180 = .bss:0x00001180; // type:object size:0x4 data:4byte -lbl_1_bss_1184 = .bss:0x00001184; // type:object size:0x4 data:4byte -lbl_1_bss_1188 = .bss:0x00001188; // type:object size:0x4 data:4byte -lbl_1_bss_118C = .bss:0x0000118C; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m417Dll/splits.txt b/config/GMPJ01_00/rels/m417Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m417Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m417Dll/symbols.txt b/config/GMPJ01_00/rels/m417Dll/symbols.txt deleted file mode 100644 index 944d6d8e..00000000 --- a/config/GMPJ01_00/rels/m417Dll/symbols.txt +++ /dev/null @@ -1,366 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x438 -fn_1_4D8 = .text:0x000004D8; // type:function size:0xD8 -fn_1_5B0 = .text:0x000005B0; // type:function size:0x250 -fn_1_800 = .text:0x00000800; // type:function size:0x190 -fn_1_990 = .text:0x00000990; // type:function size:0x518 -fn_1_EA8 = .text:0x00000EA8; // type:function size:0x534 -fn_1_13DC = .text:0x000013DC; // type:function size:0x3E4 -fn_1_17C0 = .text:0x000017C0; // type:function size:0x4E8 -fn_1_1CA8 = .text:0x00001CA8; // type:function size:0x4B0 -fn_1_2158 = .text:0x00002158; // type:function size:0x570 -fn_1_26C8 = .text:0x000026C8; // type:function size:0x18 -fn_1_26E0 = .text:0x000026E0; // type:function size:0x18 -fn_1_26F8 = .text:0x000026F8; // type:function size:0x18 -fn_1_2710 = .text:0x00002710; // type:function size:0x18 -fn_1_2728 = .text:0x00002728; // type:function size:0x18 -fn_1_2740 = .text:0x00002740; // type:function size:0x30 -fn_1_2770 = .text:0x00002770; // type:function size:0x30 -fn_1_27A0 = .text:0x000027A0; // type:function size:0x30 -fn_1_27D0 = .text:0x000027D0; // type:function size:0x38 -fn_1_2808 = .text:0x00002808; // type:function size:0x40 -fn_1_2848 = .text:0x00002848; // type:function size:0x348 -fn_1_2B90 = .text:0x00002B90; // type:function size:0x378 -fn_1_2F08 = .text:0x00002F08; // type:function size:0x11C -fn_1_3024 = .text:0x00003024; // type:function size:0xB4 -fn_1_30D8 = .text:0x000030D8; // type:function size:0x34 -fn_1_310C = .text:0x0000310C; // type:function size:0x168 -fn_1_3274 = .text:0x00003274; // type:function size:0x140 -fn_1_33B4 = .text:0x000033B4; // type:function size:0x4C -fn_1_3400 = .text:0x00003400; // type:function size:0x134 -fn_1_3534 = .text:0x00003534; // type:function size:0x40 -fn_1_3574 = .text:0x00003574; // type:function size:0x22C -fn_1_37A0 = .text:0x000037A0; // type:function size:0x37C -fn_1_3B1C = .text:0x00003B1C; // type:function size:0xA8 -fn_1_3BC4 = .text:0x00003BC4; // type:function size:0x190 -fn_1_3D54 = .text:0x00003D54; // type:function size:0x4 -fn_1_3D58 = .text:0x00003D58; // type:function size:0xE70 -fn_1_4BC8 = .text:0x00004BC8; // type:function size:0x29C -fn_1_4E64 = .text:0x00004E64; // type:function size:0x94C -fn_1_57B0 = .text:0x000057B0; // type:function size:0x68C -fn_1_5E3C = .text:0x00005E3C; // type:function size:0x210 -fn_1_604C = .text:0x0000604C; // type:function size:0xAB8 -fn_1_6B04 = .text:0x00006B04; // type:function size:0x5C -fn_1_6B60 = .text:0x00006B60; // type:function size:0x34 -fn_1_6B94 = .text:0x00006B94; // type:function size:0x1D0 -fn_1_6D64 = .text:0x00006D64; // type:function size:0x7AC -fn_1_7510 = .text:0x00007510; // type:function size:0xAC -fn_1_75BC = .text:0x000075BC; // type:function size:0x34 -fn_1_75F0 = .text:0x000075F0; // type:function size:0x10 -fn_1_7600 = .text:0x00007600; // type:function size:0x24 -fn_1_7624 = .text:0x00007624; // type:function size:0x298 -fn_1_78BC = .text:0x000078BC; // type:function size:0xAC -fn_1_7968 = .text:0x00007968; // type:function size:0xC0 -fn_1_7A28 = .text:0x00007A28; // type:function size:0xC -fn_1_7A34 = .text:0x00007A34; // type:function size:0x234 -fn_1_7C68 = .text:0x00007C68; // type:function size:0x24 -fn_1_7C8C = .text:0x00007C8C; // type:function size:0x670 -fn_1_82FC = .text:0x000082FC; // type:function size:0x3EC -fn_1_86E8 = .text:0x000086E8; // type:function size:0x424 -fn_1_8B0C = .text:0x00008B0C; // type:function size:0x224 -fn_1_8D30 = .text:0x00008D30; // type:function size:0x114 -fn_1_8E44 = .text:0x00008E44; // type:function size:0x39C -fn_1_91E0 = .text:0x000091E0; // type:function size:0xB8 -fn_1_9298 = .text:0x00009298; // type:function size:0x784 -fn_1_9A1C = .text:0x00009A1C; // type:function size:0x1F8 -fn_1_9C14 = .text:0x00009C14; // type:function size:0x3DC -fn_1_9FF0 = .text:0x00009FF0; // type:function size:0xD34 -fn_1_AD24 = .text:0x0000AD24; // type:function size:0xA0 -fn_1_ADC4 = .text:0x0000ADC4; // type:function size:0x4FC -fn_1_B2C0 = .text:0x0000B2C0; // type:function size:0x5E0 -fn_1_B8A0 = .text:0x0000B8A0; // type:function size:0x18C -fn_1_BA2C = .text:0x0000BA2C; // type:function size:0x74 -fn_1_BAA0 = .text:0x0000BAA0; // type:function size:0x1D0 -fn_1_BC70 = .text:0x0000BC70; // type:function size:0x3C -fn_1_BCAC = .text:0x0000BCAC; // type:function size:0xF0 -fn_1_BD9C = .text:0x0000BD9C; // type:function size:0x214 -fn_1_BFB0 = .text:0x0000BFB0; // type:function size:0xA0 -fn_1_C050 = .text:0x0000C050; // type:function size:0x3E4 -fn_1_C434 = .text:0x0000C434; // type:function size:0x224 -fn_1_C658 = .text:0x0000C658; // type:function size:0x134 -fn_1_C78C = .text:0x0000C78C; // type:function size:0xF0 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC data:4byte -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x24 data:4byte -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x24 data:4byte -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0xC data:4byte -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x1 data:byte -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x1 data:byte -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:4byte -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x10 data:4byte -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x10 data:4byte -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x10 data:4byte -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0xC data:4byte -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0xC data:4byte -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0xC data:4byte -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x10 data:4byte -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0xC data:4byte -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:4byte -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x18 data:4byte -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x18 data:4byte -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 data:double -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:double -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float -lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float -lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x8 data:double -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 data:double -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float -lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0xC -lbl_1_data_C = .data:0x0000000C; // type:object size:0xC -lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float -lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 -lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float -lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float -lbl_1_data_40 = .data:0x00000040; // type:object size:0x10 data:float -lbl_1_data_50 = .data:0x00000050; // type:object size:0x40 -lbl_1_data_90 = .data:0x00000090; // type:object size:0x84 -lbl_1_data_114 = .data:0x00000114; // type:object size:0xDC -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:2byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte -lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x38 data:4byte -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x2 data:2byte -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte -lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x110 data:float -lbl_1_bss_178 = .bss:0x00000178; // type:object size:0x700 data:4byte -lbl_1_bss_878 = .bss:0x00000878; // type:object size:0x8 data:4byte -lbl_1_bss_880 = .bss:0x00000880; // type:object size:0x4 data:4byte -lbl_1_bss_884 = .bss:0x00000884; // type:object size:0x4 data:4byte -lbl_1_bss_888 = .bss:0x00000888; // type:object size:0x10 -lbl_1_bss_898 = .bss:0x00000898; // type:object size:0x10 data:4byte -lbl_1_bss_8A8 = .bss:0x000008A8; // type:object size:0x4 data:4byte -lbl_1_bss_8AC = .bss:0x000008AC; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m420dll/splits.txt b/config/GMPJ01_00/rels/m420dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m420dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m420dll/symbols.txt b/config/GMPJ01_00/rels/m420dll/symbols.txt deleted file mode 100644 index dcca974e..00000000 --- a/config/GMPJ01_00/rels/m420dll/symbols.txt +++ /dev/null @@ -1,249 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x78 -fn_1_118 = .text:0x00000118; // type:function size:0x80 -fn_1_198 = .text:0x00000198; // type:function size:0x23C -fn_1_3D4 = .text:0x000003D4; // type:function size:0x68 -fn_1_43C = .text:0x0000043C; // type:function size:0x8D8 -fn_1_D14 = .text:0x00000D14; // type:function size:0x84 -fn_1_D98 = .text:0x00000D98; // type:function size:0x1B0 -fn_1_F48 = .text:0x00000F48; // type:function size:0x2C -fn_1_F74 = .text:0x00000F74; // type:function size:0xBC -fn_1_1030 = .text:0x00001030; // type:function size:0xBC -fn_1_10EC = .text:0x000010EC; // type:function size:0x98 -fn_1_1184 = .text:0x00001184; // type:function size:0x718 -fn_1_189C = .text:0x0000189C; // type:function size:0x214 -fn_1_1AB0 = .text:0x00001AB0; // type:function size:0xDC -fn_1_1B8C = .text:0x00001B8C; // type:function size:0x288 -fn_1_1E14 = .text:0x00001E14; // type:function size:0x50 -fn_1_1E64 = .text:0x00001E64; // type:function size:0xB0 -fn_1_1F14 = .text:0x00001F14; // type:function size:0x40 -fn_1_1F54 = .text:0x00001F54; // type:function size:0x40 -fn_1_1F94 = .text:0x00001F94; // type:function size:0x78 -fn_1_200C = .text:0x0000200C; // type:function size:0xE0 -fn_1_20EC = .text:0x000020EC; // type:function size:0x30 -fn_1_211C = .text:0x0000211C; // type:function size:0x58 -fn_1_2174 = .text:0x00002174; // type:function size:0x54 -fn_1_21C8 = .text:0x000021C8; // type:function size:0x98 -fn_1_2260 = .text:0x00002260; // type:function size:0x6C -fn_1_22CC = .text:0x000022CC; // type:function size:0x4A0 -fn_1_276C = .text:0x0000276C; // type:function size:0x574 -fn_1_2CE0 = .text:0x00002CE0; // type:function size:0x9C -fn_1_2D7C = .text:0x00002D7C; // type:function size:0x12C -fn_1_2EA8 = .text:0x00002EA8; // type:function size:0x1F0 -fn_1_3098 = .text:0x00003098; // type:function size:0x1D4 -fn_1_326C = .text:0x0000326C; // type:function size:0x1E4 -fn_1_3450 = .text:0x00003450; // type:function size:0x5C -fn_1_34AC = .text:0x000034AC; // type:function size:0xB0 -fn_1_355C = .text:0x0000355C; // type:function size:0x188 -fn_1_36E4 = .text:0x000036E4; // type:function size:0x68 -fn_1_374C = .text:0x0000374C; // type:function size:0x40 -fn_1_378C = .text:0x0000378C; // type:function size:0xC8 -fn_1_3854 = .text:0x00003854; // type:function size:0x11C -fn_1_3970 = .text:0x00003970; // type:function size:0x624 -fn_1_3F94 = .text:0x00003F94; // type:function size:0x300 -fn_1_4294 = .text:0x00004294; // type:function size:0x2E0 -fn_1_4574 = .text:0x00004574; // type:function size:0x1F8 -fn_1_476C = .text:0x0000476C; // type:function size:0x1F8 -fn_1_4964 = .text:0x00004964; // type:function size:0x1008 -fn_1_596C = .text:0x0000596C; // type:function size:0x88 -fn_1_59F4 = .text:0x000059F4; // type:function size:0x88 -fn_1_5A7C = .text:0x00005A7C; // type:function size:0x2C -fn_1_5AA8 = .text:0x00005AA8; // type:function size:0x1E4 -fn_1_5C8C = .text:0x00005C8C; // type:function size:0x464 -fn_1_60F0 = .text:0x000060F0; // type:function size:0x178 -fn_1_6268 = .text:0x00006268; // type:function size:0x104 -fn_1_636C = .text:0x0000636C; // type:function size:0x80 -fn_1_63EC = .text:0x000063EC; // type:function size:0x120 -fn_1_650C = .text:0x0000650C; // type:function size:0x48 -fn_1_6554 = .text:0x00006554; // type:function size:0x10C -fn_1_6660 = .text:0x00006660; // type:function size:0x10 -fn_1_6670 = .text:0x00006670; // type:function size:0x2C -fn_1_669C = .text:0x0000669C; // type:function size:0x8C -fn_1_6728 = .text:0x00006728; // type:function size:0x7C -fn_1_67A4 = .text:0x000067A4; // type:function size:0x44 -fn_1_67E8 = .text:0x000067E8; // type:function size:0x28 -fn_1_6810 = .text:0x00006810; // type:function size:0x10 -fn_1_6820 = .text:0x00006820; // type:function size:0x64 -fn_1_6884 = .text:0x00006884; // type:function size:0xCC -fn_1_6950 = .text:0x00006950; // type:function size:0x3BC -fn_1_6D0C = .text:0x00006D0C; // type:function size:0x50 -fn_1_6D5C = .text:0x00006D5C; // type:function size:0x94 -fn_1_6DF0 = .text:0x00006DF0; // type:function size:0x440 -fn_1_7230 = .text:0x00007230; // type:function size:0x98 -fn_1_72C8 = .text:0x000072C8; // type:function size:0x98 -fn_1_7360 = .text:0x00007360; // type:function size:0x98 -fn_1_73F8 = .text:0x000073F8; // type:function size:0x100 -fn_1_74F8 = .text:0x000074F8; // type:function size:0x20C -fn_1_7704 = .text:0x00007704; // type:function size:0x720 -fn_1_7E24 = .text:0x00007E24; // type:function size:0x41C -fn_1_8240 = .text:0x00008240; // type:function size:0x1D4 -fn_1_8414 = .text:0x00008414; // type:function size:0x520 -fn_1_8934 = .text:0x00008934; // type:function size:0x10 -fn_1_8944 = .text:0x00008944; // type:function size:0x34 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x54 -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 data:4byte -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x160 -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x60 -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x10 -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x1C -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x6C -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0xC data:4byte -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0xC data:4byte -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 data:double -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x30 data:4byte -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x30 data:4byte -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0xC data:4byte -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float -lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x1E data:string -lbl_1_data_1E = .data:0x0000001E; // type:object size:0x1E data:string -lbl_1_data_3C = .data:0x0000003C; // type:object size:0x14 -lbl_1_data_50 = .data:0x00000050; // type:object size:0x80 -lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x1C -lbl_1_data_EC = .data:0x000000EC; // type:object size:0x30 -lbl_1_data_11C = .data:0x0000011C; // type:object size:0x19 data:string -lbl_1_data_135 = .data:0x00000135; // type:object size:0x3 -lbl_1_data_138 = .data:0x00000138; // type:object size:0x1C -lbl_1_data_154 = .data:0x00000154; // type:object size:0x10 data:4byte -lbl_1_data_164 = .data:0x00000164; // type:object size:0xD data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte -lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x10 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:float -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:float -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:float -lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:float -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x1C data:4byte -lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x1C data:float -lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x1C data:float -lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x8 data:4byte -lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte -lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte -lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte -lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte -lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x80 data:float -lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x8AC data:4byte -lbl_1_bss_9EC = .bss:0x000009EC; // type:object size:0x2 data:2byte -lbl_1_bss_9F0 = .bss:0x000009F0; // type:object size:0x38 data:2byte -lbl_1_bss_A28 = .bss:0x00000A28; // type:object size:0x4 data:4byte -lbl_1_bss_A2C = .bss:0x00000A2C; // type:object size:0x10 data:4byte -lbl_1_bss_A3C = .bss:0x00000A3C; // type:object size:0x4 data:4byte -lbl_1_bss_A40 = .bss:0x00000A40; // type:object size:0x8 data:4byte -lbl_1_bss_A48 = .bss:0x00000A48; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m421Dll/splits.txt b/config/GMPJ01_00/rels/m421Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m421Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m421Dll/symbols.txt b/config/GMPJ01_00/rels/m421Dll/symbols.txt deleted file mode 100644 index c704e2c9..00000000 --- a/config/GMPJ01_00/rels/m421Dll/symbols.txt +++ /dev/null @@ -1,277 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x400 -fn_1_4A0 = .text:0x000004A0; // type:function size:0xD8 -fn_1_578 = .text:0x00000578; // type:function size:0x20C -fn_1_784 = .text:0x00000784; // type:function size:0x134 -fn_1_8B8 = .text:0x000008B8; // type:function size:0x404 -fn_1_CBC = .text:0x00000CBC; // type:function size:0x430 -fn_1_10EC = .text:0x000010EC; // type:function size:0x340 -fn_1_142C = .text:0x0000142C; // type:function size:0x424 -fn_1_1850 = .text:0x00001850; // type:function size:0x440 -fn_1_1C90 = .text:0x00001C90; // type:function size:0x4AC -fn_1_213C = .text:0x0000213C; // type:function size:0x70 -fn_1_21AC = .text:0x000021AC; // type:function size:0x87C -fn_1_2A28 = .text:0x00002A28; // type:function size:0x190 -fn_1_2BB8 = .text:0x00002BB8; // type:function size:0x468 -fn_1_3020 = .text:0x00003020; // type:function size:0xB0 -fn_1_30D0 = .text:0x000030D0; // type:function size:0x264 -fn_1_3334 = .text:0x00003334; // type:function size:0x28 -fn_1_335C = .text:0x0000335C; // type:function size:0x5A0 -fn_1_38FC = .text:0x000038FC; // type:function size:0x254 -fn_1_3B50 = .text:0x00003B50; // type:function size:0x14 -fn_1_3B64 = .text:0x00003B64; // type:function size:0x14 -fn_1_3B78 = .text:0x00003B78; // type:function size:0x9C -fn_1_3C14 = .text:0x00003C14; // type:function size:0x9C -fn_1_3CB0 = .text:0x00003CB0; // type:function size:0x68 -fn_1_3D18 = .text:0x00003D18; // type:function size:0x6C -fn_1_3D84 = .text:0x00003D84; // type:function size:0x98 -fn_1_3E1C = .text:0x00003E1C; // type:function size:0x18 -fn_1_3E34 = .text:0x00003E34; // type:function size:0x18 -fn_1_3E4C = .text:0x00003E4C; // type:function size:0x18 -fn_1_3E64 = .text:0x00003E64; // type:function size:0x18 -fn_1_3E7C = .text:0x00003E7C; // type:function size:0x7C -fn_1_3EF8 = .text:0x00003EF8; // type:function size:0x30 -fn_1_3F28 = .text:0x00003F28; // type:function size:0x40 -fn_1_3F68 = .text:0x00003F68; // type:function size:0x30 -fn_1_3F98 = .text:0x00003F98; // type:function size:0x30 -fn_1_3FC8 = .text:0x00003FC8; // type:function size:0x30 -fn_1_3FF8 = .text:0x00003FF8; // type:function size:0x38 -fn_1_4030 = .text:0x00004030; // type:function size:0x208 -fn_1_4238 = .text:0x00004238; // type:function size:0x240 -fn_1_4478 = .text:0x00004478; // type:function size:0x11C -fn_1_4594 = .text:0x00004594; // type:function size:0xB4 -fn_1_4648 = .text:0x00004648; // type:function size:0x268 -fn_1_48B0 = .text:0x000048B0; // type:function size:0x24 -fn_1_48D4 = .text:0x000048D4; // type:function size:0x62C -fn_1_4F00 = .text:0x00004F00; // type:function size:0x160 -fn_1_5060 = .text:0x00005060; // type:function size:0x368 -fn_1_53C8 = .text:0x000053C8; // type:function size:0x3C4 -fn_1_578C = .text:0x0000578C; // type:function size:0x410 -fn_1_5B9C = .text:0x00005B9C; // type:function size:0x5E8 -fn_1_6184 = .text:0x00006184; // type:function size:0x27C -fn_1_6400 = .text:0x00006400; // type:function size:0x2B4 -fn_1_66B4 = .text:0x000066B4; // type:function size:0xB8 -fn_1_676C = .text:0x0000676C; // type:function size:0x5DC -fn_1_6D48 = .text:0x00006D48; // type:function size:0x730 -fn_1_7478 = .text:0x00007478; // type:function size:0x1F8 -fn_1_7670 = .text:0x00007670; // type:function size:0x430 -fn_1_7AA0 = .text:0x00007AA0; // type:function size:0x418 -fn_1_7EB8 = .text:0x00007EB8; // type:function size:0x208 -fn_1_80C0 = .text:0x000080C0; // type:function size:0x87C -fn_1_893C = .text:0x0000893C; // type:function size:0xB38 -fn_1_9474 = .text:0x00009474; // type:function size:0xF8 -fn_1_956C = .text:0x0000956C; // type:function size:0x2C0 -fn_1_982C = .text:0x0000982C; // type:function size:0x18C -fn_1_99B8 = .text:0x000099B8; // type:function size:0x74 -fn_1_9A2C = .text:0x00009A2C; // type:function size:0x1D0 -fn_1_9BFC = .text:0x00009BFC; // type:function size:0x3C -fn_1_9C38 = .text:0x00009C38; // type:function size:0x198 -fn_1_9DD0 = .text:0x00009DD0; // type:function size:0x758 -fn_1_A528 = .text:0x0000A528; // type:function size:0x640 -fn_1_AB68 = .text:0x0000AB68; // type:function size:0x4 -fn_1_AB6C = .text:0x0000AB6C; // type:function size:0x70 -fn_1_ABDC = .text:0x0000ABDC; // type:function size:0x580 -fn_1_B15C = .text:0x0000B15C; // type:function size:0x60 -fn_1_B1BC = .text:0x0000B1BC; // type:function size:0x4 -fn_1_B1C0 = .text:0x0000B1C0; // type:function size:0x1D8 -fn_1_B398 = .text:0x0000B398; // type:function size:0x4 -fn_1_B39C = .text:0x0000B39C; // type:function size:0x40 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC data:4byte -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:4byte -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x50 -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x14 data:4byte -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x10 data:4byte -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x10 data:4byte -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x10 data:4byte -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x30 data:4byte -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x30 data:4byte -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:4byte -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0xC -lbl_1_data_C = .data:0x0000000C; // type:object size:0xC -lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float -lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 -lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float -lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float -lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float -lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24 -lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 -lbl_1_data_94 = .data:0x00000094; // type:object size:0xC -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x1 data:byte -lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x1A data:string -lbl_1_data_BE = .data:0x000000BE; // type:object size:0x1A -lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x2C -lbl_1_data_104 = .data:0x00000104; // type:object size:0x60 -lbl_1_data_164 = .data:0x00000164; // type:object size:0x20 -lbl_1_data_184 = .data:0x00000184; // type:object size:0x20 -lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x18 -lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x78 -lbl_1_data_234 = .data:0x00000234; // type:object size:0x30 -lbl_1_data_264 = .data:0x00000264; // type:object size:0x30 -lbl_1_data_294 = .data:0x00000294; // type:object size:0x18 -lbl_1_data_2AC = .data:0x000002AC; // type:object size:0xC -lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0xC -lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0xC -lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0xC -lbl_1_data_2DC = .data:0x000002DC; // type:object size:0xC -lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0xC -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte -lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte -lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x6 data:2byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x10 -lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m431Dll/splits.txt b/config/GMPJ01_00/rels/m431Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m431Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m431Dll/symbols.txt b/config/GMPJ01_00/rels/m431Dll/symbols.txt deleted file mode 100644 index 49cbc1e1..00000000 --- a/config/GMPJ01_00/rels/m431Dll/symbols.txt +++ /dev/null @@ -1,252 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x384 -fn_1_424 = .text:0x00000424; // type:function size:0x78 -fn_1_49C = .text:0x0000049C; // type:function size:0xE0 -fn_1_57C = .text:0x0000057C; // type:function size:0x234 -fn_1_7B0 = .text:0x000007B0; // type:function size:0x294 -fn_1_A44 = .text:0x00000A44; // type:function size:0x660 -fn_1_10A4 = .text:0x000010A4; // type:function size:0x368 -fn_1_140C = .text:0x0000140C; // type:function size:0x228 -fn_1_1634 = .text:0x00001634; // type:function size:0x40C -fn_1_1A40 = .text:0x00001A40; // type:function size:0x5C0 -fn_1_2000 = .text:0x00002000; // type:function size:0x50 -fn_1_2050 = .text:0x00002050; // type:function size:0x40 -fn_1_2090 = .text:0x00002090; // type:function size:0x40 -fn_1_20D0 = .text:0x000020D0; // type:function size:0x40 -fn_1_2110 = .text:0x00002110; // type:function size:0x9A0 -fn_1_2AB0 = .text:0x00002AB0; // type:function size:0x10 -fn_1_2AC0 = .text:0x00002AC0; // type:function size:0x1D4 -fn_1_2C94 = .text:0x00002C94; // type:function size:0x44C -fn_1_30E0 = .text:0x000030E0; // type:function size:0x460 -fn_1_3540 = .text:0x00003540; // type:function size:0x83C -fn_1_3D7C = .text:0x00003D7C; // type:function size:0x254 -fn_1_3FD0 = .text:0x00003FD0; // type:function size:0x58 -fn_1_4028 = .text:0x00004028; // type:function size:0x6FC -fn_1_4724 = .text:0x00004724; // type:function size:0x14 -fn_1_4738 = .text:0x00004738; // type:function size:0x60 -fn_1_4798 = .text:0x00004798; // type:function size:0x138 -fn_1_48D0 = .text:0x000048D0; // type:function size:0xBC -fn_1_498C = .text:0x0000498C; // type:function size:0x188 -fn_1_4B14 = .text:0x00004B14; // type:function size:0x1C8 -fn_1_4CDC = .text:0x00004CDC; // type:function size:0x70 -fn_1_4D4C = .text:0x00004D4C; // type:function size:0xE4 -fn_1_4E30 = .text:0x00004E30; // type:function size:0x4A8 -fn_1_52D8 = .text:0x000052D8; // type:function size:0x1A8 -fn_1_5480 = .text:0x00005480; // type:function size:0xA4 -fn_1_5524 = .text:0x00005524; // type:function size:0x148 -fn_1_566C = .text:0x0000566C; // type:function size:0x9C -fn_1_5708 = .text:0x00005708; // type:function size:0x468 -fn_1_5B70 = .text:0x00005B70; // type:function size:0x4C0 -fn_1_6030 = .text:0x00006030; // type:function size:0x154 -fn_1_6184 = .text:0x00006184; // type:function size:0x380 -fn_1_6504 = .text:0x00006504; // type:function size:0xC8 -fn_1_65CC = .text:0x000065CC; // type:function size:0x10 -fn_1_65DC = .text:0x000065DC; // type:function size:0x5C -fn_1_6638 = .text:0x00006638; // type:function size:0xA4 -fn_1_66DC = .text:0x000066DC; // type:function size:0xE4 -fn_1_67C0 = .text:0x000067C0; // type:function size:0x374 -fn_1_6B34 = .text:0x00006B34; // type:function size:0x140 -fn_1_6C74 = .text:0x00006C74; // type:function size:0x544 -fn_1_71B8 = .text:0x000071B8; // type:function size:0x60 -fn_1_7218 = .text:0x00007218; // type:function size:0x2C -fn_1_7244 = .text:0x00007244; // type:function size:0x38 -fn_1_727C = .text:0x0000727C; // type:function size:0x38 -fn_1_72B4 = .text:0x000072B4; // type:function size:0x570 -fn_1_7824 = .text:0x00007824; // type:function size:0xCC -fn_1_78F0 = .text:0x000078F0; // type:function size:0xA4 -fn_1_7994 = .text:0x00007994; // type:function size:0x68 -fn_1_79FC = .text:0x000079FC; // type:function size:0x7C -fn_1_7A78 = .text:0x00007A78; // type:function size:0x44 -fn_1_7ABC = .text:0x00007ABC; // type:function size:0x4FC -fn_1_7FB8 = .text:0x00007FB8; // type:function size:0x4BC -fn_1_8474 = .text:0x00008474; // type:function size:0x118 -fn_1_858C = .text:0x0000858C; // type:function size:0x204 -fn_1_8790 = .text:0x00008790; // type:function size:0x344 -fn_1_8AD4 = .text:0x00008AD4; // type:function size:0x1EC -fn_1_8CC0 = .text:0x00008CC0; // type:function size:0x6CC -fn_1_938C = .text:0x0000938C; // type:function size:0xB4 -fn_1_9440 = .text:0x00009440; // type:function size:0x494 -fn_1_98D4 = .text:0x000098D4; // type:function size:0x130 -fn_1_9A04 = .text:0x00009A04; // type:function size:0x258 -fn_1_9C5C = .text:0x00009C5C; // type:function size:0x49C -fn_1_A0F8 = .text:0x0000A0F8; // type:function size:0x358 -fn_1_A450 = .text:0x0000A450; // type:function size:0x380 -fn_1_A7D0 = .text:0x0000A7D0; // type:function size:0x134 -fn_1_A904 = .text:0x0000A904; // type:function size:0x13C -fn_1_AA40 = .text:0x0000AA40; // type:function size:0xB0 -fn_1_AAF0 = .text:0x0000AAF0; // type:function size:0xB0 -fn_1_ABA0 = .text:0x0000ABA0; // type:function size:0x20 -fn_1_ABC0 = .text:0x0000ABC0; // type:function size:0x30 -fn_1_ABF0 = .text:0x0000ABF0; // type:function size:0x90 -fn_1_AC80 = .text:0x0000AC80; // type:function size:0x108 -fn_1_AD88 = .text:0x0000AD88; // type:function size:0x7C -fn_1_AE04 = .text:0x0000AE04; // type:function size:0x2E4 -fn_1_B0E8 = .text:0x0000B0E8; // type:function size:0x48 -fn_1_B130 = .text:0x0000B130; // type:function size:0x20 -fn_1_B150 = .text:0x0000B150; // type:function size:0x1C -fn_1_B16C = .text:0x0000B16C; // type:function size:0x20 -fn_1_B18C = .text:0x0000B18C; // type:function size:0x1F8 -fn_1_B384 = .text:0x0000B384; // type:function size:0x80 -fn_1_B404 = .text:0x0000B404; // type:function size:0x90 -fn_1_B494 = .text:0x0000B494; // type:function size:0x64 -fn_1_B4F8 = .text:0x0000B4F8; // type:function size:0x38 -fn_1_B530 = .text:0x0000B530; // type:function size:0x28 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x1 data:byte -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:2byte -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0xC -lbl_1_data_C = .data:0x0000000C; // type:object size:0xC -lbl_1_data_18 = .data:0x00000018; // type:object size:0x10 -lbl_1_data_28 = .data:0x00000028; // type:object size:0xC -lbl_1_data_34 = .data:0x00000034; // type:object size:0xC -lbl_1_data_40 = .data:0x00000040; // type:object size:0xC -lbl_1_data_4C = .data:0x0000004C; // type:object size:0x70 data:float -lbl_1_data_BC = .data:0x000000BC; // type:object size:0xC -lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x8 data:4byte -jumptable_1_data_D0 = .data:0x000000D0; // type:object size:0x44 scope:local -lbl_1_data_114 = .data:0x00000114; // type:object size:0x10 -lbl_1_data_124 = .data:0x00000124; // type:object size:0x10 -lbl_1_data_134 = .data:0x00000134; // type:object size:0x14 -lbl_1_data_148 = .data:0x00000148; // type:object size:0x14 -lbl_1_data_15C = .data:0x0000015C; // type:object size:0x6 data:string -lbl_1_data_162 = .data:0x00000162; // type:object size:0x2 data:2byte -lbl_1_data_164 = .data:0x00000164; // type:object size:0x10 data:4byte -lbl_1_data_174 = .data:0x00000174; // type:object size:0x10 data:string -lbl_1_data_184 = .data:0x00000184; // type:object size:0x26 data:string -lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x26 -lbl_1_data_1D0 = .data:0x000001D0; // type:object size:0x4 data:float -lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x20 -lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x20 -lbl_1_data_214 = .data:0x00000214; // type:object size:0x1C -lbl_1_data_230 = .data:0x00000230; // type:object size:0x20 -lbl_1_data_250 = .data:0x00000250; // type:object size:0x10 -lbl_1_data_260 = .data:0x00000260; // type:object size:0x8 -lbl_1_data_268 = .data:0x00000268; // type:object size:0x2 data:2byte -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte -lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x2 data:2byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte -lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x1 data:byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte -lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x1 data:byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:float -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:float -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x2 data:2byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x28 -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x3C data:2byte -lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x1 data:byte -lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x10 -lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x80 data:4byte -lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4F0 data:2byte -lbl_1_bss_61C = .bss:0x0000061C; // type:object size:0x10 -lbl_1_bss_62C = .bss:0x0000062C; // type:object size:0x50 data:float diff --git a/config/GMPJ01_00/rels/m432Dll/splits.txt b/config/GMPJ01_00/rels/m432Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m432Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m432Dll/symbols.txt b/config/GMPJ01_00/rels/m432Dll/symbols.txt deleted file mode 100644 index 7d4201a9..00000000 --- a/config/GMPJ01_00/rels/m432Dll/symbols.txt +++ /dev/null @@ -1,359 +0,0 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x24 -fn_1_24 = .text:0x00000024; // type:function size:0x88 -fn_1_AC = .text:0x000000AC; // type:function size:0xA4 -fn_1_150 = .text:0x00000150; // type:function size:0x24 -fn_1_174 = .text:0x00000174; // type:function size:0x164 -fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C -fn_1_414 = .text:0x00000414; // type:function size:0x58 -fn_1_46C = .text:0x0000046C; // type:function size:0x114 -fn_1_580 = .text:0x00000580; // type:function size:0x218 -fn_1_798 = .text:0x00000798; // type:function size:0x254 -fn_1_9EC = .text:0x000009EC; // type:function size:0x54 -fn_1_A40 = .text:0x00000A40; // type:function size:0x10C -fn_1_B4C = .text:0x00000B4C; // type:function size:0x6A8 -fn_1_11F4 = .text:0x000011F4; // type:function size:0x15C -fn_1_1350 = .text:0x00001350; // type:function size:0x8C -fn_1_13DC = .text:0x000013DC; // type:function size:0x334 -fn_1_1710 = .text:0x00001710; // type:function size:0x350 -fn_1_1A60 = .text:0x00001A60; // type:function size:0x2B8 -fn_1_1D18 = .text:0x00001D18; // type:function size:0x58 -fn_1_1D70 = .text:0x00001D70; // type:function size:0xB0 -fn_1_1E20 = .text:0x00001E20; // type:function size:0x104 -fn_1_1F24 = .text:0x00001F24; // type:function size:0x34 -fn_1_1F58 = .text:0x00001F58; // type:function size:0x6C -fn_1_1FC4 = .text:0x00001FC4; // type:function size:0x3F0 -fn_1_23B4 = .text:0x000023B4; // type:function size:0x64 -fn_1_2418 = .text:0x00002418; // type:function size:0xE0 -fn_1_24F8 = .text:0x000024F8; // type:function size:0x32C -fn_1_2824 = .text:0x00002824; // type:function size:0x3AC -fn_1_2BD0 = .text:0x00002BD0; // type:function size:0x30 -fn_1_2C00 = .text:0x00002C00; // type:function size:0x1C -fn_1_2C1C = .text:0x00002C1C; // type:function size:0x18C -fn_1_2DA8 = .text:0x00002DA8; // type:function size:0x8 -fn_1_2DB0 = .text:0x00002DB0; // type:function size:0x8 -fn_1_2DB8 = .text:0x00002DB8; // type:function size:0x8 -fn_1_2DC0 = .text:0x00002DC0; // type:function size:0x8 -fn_1_2DC8 = .text:0x00002DC8; // type:function size:0xC -fn_1_2DD4 = .text:0x00002DD4; // type:function size:0x60 -fn_1_2E34 = .text:0x00002E34; // type:function size:0xB90 -fn_1_39C4 = .text:0x000039C4; // type:function size:0x31C -fn_1_3CE0 = .text:0x00003CE0; // type:function size:0xD8 -fn_1_3DB8 = .text:0x00003DB8; // type:function size:0x114 -fn_1_3ECC = .text:0x00003ECC; // type:function size:0xB8 -fn_1_3F84 = .text:0x00003F84; // type:function size:0xA0 -fn_1_4024 = .text:0x00004024; // type:function size:0x9C -fn_1_40C0 = .text:0x000040C0; // type:function size:0xE18 -fn_1_4ED8 = .text:0x00004ED8; // type:function size:0x250 -fn_1_5128 = .text:0x00005128; // type:function size:0x10 -fn_1_5138 = .text:0x00005138; // type:function size:0x10 -fn_1_5148 = .text:0x00005148; // type:function size:0x60 -fn_1_51A8 = .text:0x000051A8; // type:function size:0x60 -fn_1_5208 = .text:0x00005208; // type:function size:0xB0 -fn_1_52B8 = .text:0x000052B8; // type:function size:0xAC -fn_1_5364 = .text:0x00005364; // type:function size:0x408 -fn_1_576C = .text:0x0000576C; // type:function size:0xDC -fn_1_5848 = .text:0x00005848; // type:function size:0x364 -fn_1_5BAC = .text:0x00005BAC; // type:function size:0x380 -fn_1_5F2C = .text:0x00005F2C; // type:function size:0x310 -fn_1_623C = .text:0x0000623C; // type:function size:0xAF8 -fn_1_6D34 = .text:0x00006D34; // type:function size:0x1F4 -fn_1_6F28 = .text:0x00006F28; // type:function size:0xCF4 -fn_1_7C1C = .text:0x00007C1C; // type:function size:0x924 -fn_1_8540 = .text:0x00008540; // type:function size:0x6C -fn_1_85AC = .text:0x000085AC; // type:function size:0x70 -fn_1_861C = .text:0x0000861C; // type:function size:0x1F8 -fn_1_8814 = .text:0x00008814; // type:function size:0x200 -fn_1_8A14 = .text:0x00008A14; // type:function size:0x2A0 -fn_1_8CB4 = .text:0x00008CB4; // type:function size:0x288 -fn_1_8F3C = .text:0x00008F3C; // type:function size:0x130 -fn_1_906C = .text:0x0000906C; // type:function size:0x350 -fn_1_93BC = .text:0x000093BC; // type:function size:0x15B8 -fn_1_A974 = .text:0x0000A974; // type:function size:0x8C -fn_1_AA00 = .text:0x0000AA00; // type:function size:0x1C -fn_1_AA1C = .text:0x0000AA1C; // type:function size:0x2AC -fn_1_ACC8 = .text:0x0000ACC8; // type:function size:0x260 -fn_1_AF28 = .text:0x0000AF28; // type:function size:0x26C -_prolog = .text:0x0000B194; // type:function size:0x54 scope:global -_epilog = .text:0x0000B1E8; // type:function size:0x4C scope:global -fn_1_B234 = .text:0x0000B234; // type:function size:0x224 -fn_1_B458 = .text:0x0000B458; // type:function size:0xC0 -fn_1_B518 = .text:0x0000B518; // type:function size:0x2CC -fn_1_B7E4 = .text:0x0000B7E4; // type:function size:0x190 -fn_1_B974 = .text:0x0000B974; // type:function size:0x134 -fn_1_BAA8 = .text:0x0000BAA8; // type:function size:0x460 -fn_1_BF08 = .text:0x0000BF08; // type:function size:0x94 -fn_1_BF9C = .text:0x0000BF9C; // type:function size:0x3A0 -fn_1_C33C = .text:0x0000C33C; // type:function size:0x3E8 -fn_1_C724 = .text:0x0000C724; // type:function size:0x9BC -fn_1_D0E0 = .text:0x0000D0E0; // type:function size:0x90C -fn_1_D9EC = .text:0x0000D9EC; // type:function size:0x9C8 -fn_1_E3B4 = .text:0x0000E3B4; // type:function size:0x630 -fn_1_E9E4 = .text:0x0000E9E4; // type:function size:0x298 -fn_1_EC7C = .text:0x0000EC7C; // type:function size:0x90 -fn_1_ED0C = .text:0x0000ED0C; // type:function size:0x1544 -fn_1_10250 = .text:0x00010250; // type:function size:0xA7C -fn_1_10CCC = .text:0x00010CCC; // type:function size:0x724 -fn_1_113F0 = .text:0x000113F0; // type:function size:0x4 -fn_1_113F4 = .text:0x000113F4; // type:function size:0x140C -fn_1_12800 = .text:0x00012800; // type:function size:0x4 -fn_1_12804 = .text:0x00012804; // type:function size:0xC4 -fn_1_128C8 = .text:0x000128C8; // type:function size:0x5E0 -fn_1_12EA8 = .text:0x00012EA8; // type:function size:0x300 -fn_1_131A8 = .text:0x000131A8; // type:function size:0x2178 -fn_1_15320 = .text:0x00015320; // type:function size:0x9C -fn_1_153BC = .text:0x000153BC; // type:function size:0xDA0 -fn_1_1615C = .text:0x0001615C; // type:function size:0x104 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 -lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 -lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 -lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 -lbl_1_data_80 = .data:0x00000080; // type:object size:0x20 -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x8 -lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x20 data:float -lbl_1_data_C8 = .data:0x000000C8; // type:object size:0xC -lbl_1_data_D4 = .data:0x000000D4; // type:object size:0xC -lbl_1_data_E0 = .data:0x000000E0; // type:object size:0xC -lbl_1_data_EC = .data:0x000000EC; // type:object size:0x4 -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0xC -lbl_1_data_FC = .data:0x000000FC; // type:object size:0xC -lbl_1_data_108 = .data:0x00000108; // type:object size:0x160 -lbl_1_data_268 = .data:0x00000268; // type:object size:0x20 -lbl_1_data_288 = .data:0x00000288; // type:object size:0x24 -lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x24 -lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x24 -lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x24 -lbl_1_data_318 = .data:0x00000318; // type:object size:0x3C -lbl_1_data_354 = .data:0x00000354; // type:object size:0x18 -lbl_1_data_36C = .data:0x0000036C; // type:object size:0x18 -lbl_1_data_384 = .data:0x00000384; // type:object size:0xB data:string -lbl_1_data_38F = .data:0x0000038F; // type:object size:0xB data:string -lbl_1_data_39A = .data:0x0000039A; // type:object size:0xB data:string -lbl_1_data_3A5 = .data:0x000003A5; // type:object size:0xB data:string -lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0xB data:string -lbl_1_data_3BB = .data:0x000003BB; // type:object size:0xB data:string -lbl_1_data_3C6 = .data:0x000003C6; // type:object size:0xB data:string -lbl_1_data_3D1 = .data:0x000003D1; // type:object size:0xB data:string -lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x20 -lbl_1_data_3FC = .data:0x000003FC; // type:object size:0xB data:string -lbl_1_data_407 = .data:0x00000407; // type:object size:0xB data:string -lbl_1_data_412 = .data:0x00000412; // type:object size:0xB data:string -lbl_1_data_41D = .data:0x0000041D; // type:object size:0xB data:string -lbl_1_data_428 = .data:0x00000428; // type:object size:0xB data:string -lbl_1_data_433 = .data:0x00000433; // type:object size:0xD -lbl_1_data_440 = .data:0x00000440; // type:object size:0x18 data:4byte -lbl_1_data_458 = .data:0x00000458; // type:object size:0xB data:string -lbl_1_data_463 = .data:0x00000463; // type:object size:0xB data:string -lbl_1_data_46E = .data:0x0000046E; // type:object size:0xB data:string -lbl_1_data_479 = .data:0x00000479; // type:object size:0xB data:string -lbl_1_data_484 = .data:0x00000484; // type:object size:0xB data:string -lbl_1_data_48F = .data:0x0000048F; // type:object size:0xB data:string -lbl_1_data_49A = .data:0x0000049A; // type:object size:0xB data:string -lbl_1_data_4A5 = .data:0x000004A5; // type:object size:0xB data:string -lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0xB data:string -lbl_1_data_4BB = .data:0x000004BB; // type:object size:0xD -lbl_1_data_4C8 = .data:0x000004C8; // type:object size:0x28 data:4byte -lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x14 -lbl_1_data_504 = .data:0x00000504; // type:object size:0x24 -lbl_1_data_528 = .data:0x00000528; // type:object size:0x8 -lbl_1_data_530 = .data:0x00000530; // type:object size:0xB data:string -lbl_1_data_53B = .data:0x0000053B; // type:object size:0xB data:string -lbl_1_data_546 = .data:0x00000546; // type:object size:0xB data:string -lbl_1_data_551 = .data:0x00000551; // type:object size:0xB data:string -lbl_1_data_55C = .data:0x0000055C; // type:object size:0xB data:string -lbl_1_data_567 = .data:0x00000567; // type:object size:0xB data:string -lbl_1_data_572 = .data:0x00000572; // type:object size:0xB data:string -lbl_1_data_57D = .data:0x0000057D; // type:object size:0xB data:string -lbl_1_data_588 = .data:0x00000588; // type:object size:0xB data:string -lbl_1_data_593 = .data:0x00000593; // type:object size:0xB data:string -lbl_1_data_59E = .data:0x0000059E; // type:object size:0xB data:string -lbl_1_data_5A9 = .data:0x000005A9; // type:object size:0xB data:string -lbl_1_data_5B4 = .data:0x000005B4; // type:object size:0xB data:string -lbl_1_data_5BF = .data:0x000005BF; // type:object size:0xB data:string -lbl_1_data_5CA = .data:0x000005CA; // type:object size:0xB data:string -lbl_1_data_5D5 = .data:0x000005D5; // type:object size:0xB data:string -lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0xC -lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x8B8 -lbl_1_data_EA4 = .data:0x00000EA4; // type:object size:0xB data:string -lbl_1_data_EAF = .data:0x00000EAF; // type:object size:0xB data:string -lbl_1_data_EBA = .data:0x00000EBA; // type:object size:0xB data:string -lbl_1_data_EC5 = .data:0x00000EC5; // type:object size:0xB data:string -lbl_1_data_ED0 = .data:0x00000ED0; // type:object size:0xC -lbl_1_data_EDC = .data:0x00000EDC; // type:object size:0x8B8 -lbl_1_data_1794 = .data:0x00001794; // type:object size:0x20 -lbl_1_data_17B4 = .data:0x000017B4; // type:object size:0x20 -lbl_1_data_17D4 = .data:0x000017D4; // type:object size:0x20 data:float -lbl_1_data_17F4 = .data:0x000017F4; // type:object size:0x20 -lbl_1_data_1814 = .data:0x00001814; // type:object size:0x50 -lbl_1_data_1864 = .data:0x00001864; // type:object size:0x11 data:string -lbl_1_data_1875 = .data:0x00001875; // type:object size:0x11 data:string -lbl_1_data_1886 = .data:0x00001886; // type:object size:0x11 data:string -lbl_1_data_1897 = .data:0x00001897; // type:object size:0x18 data:string -lbl_1_data_18AF = .data:0x000018AF; // type:object size:0xB data:string -lbl_1_data_18BA = .data:0x000018BA; // type:object size:0x18 data:string -lbl_1_data_18D2 = .data:0x000018D2; // type:object size:0xC data:string -lbl_1_data_18DE = .data:0x000018DE; // type:object size:0x6 data:string -lbl_1_data_18E4 = .data:0x000018E4; // type:object size:0x21 data:string -lbl_1_data_1905 = .data:0x00001905; // type:object size:0x1F -jumptable_1_data_1924 = .data:0x00001924; // type:object size:0x1C scope:local -jumptable_1_data_1940 = .data:0x00001940; // type:object size:0x44 scope:local -lbl_1_data_1984 = .data:0x00001984; // type:object size:0xB data:string -lbl_1_data_198F = .data:0x0000198F; // type:object size:0x1D -jumptable_1_data_19AC = .data:0x000019AC; // type:object size:0x28 scope:local -lbl_1_data_19D4 = .data:0x000019D4; // type:object size:0x24 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x3F0 data:float -lbl_1_bss_3F0 = .bss:0x000003F0; // type:object size:0x4 data:float -lbl_1_bss_3F4 = .bss:0x000003F4; // type:object size:0x4 data:4byte -lbl_1_bss_3F8 = .bss:0x000003F8; // type:object size:0x4 data:4byte -lbl_1_bss_3FC = .bss:0x000003FC; // type:object size:0x4 data:4byte -lbl_1_bss_400 = .bss:0x00000400; // type:object size:0x2 data:2byte -lbl_1_bss_402 = .bss:0x00000402; // type:object size:0x2 data:2byte -lbl_1_bss_404 = .bss:0x00000404; // type:object size:0x2 data:2byte -lbl_1_bss_408 = .bss:0x00000408; // type:object size:0x8 data:4byte -lbl_1_bss_410 = .bss:0x00000410; // type:object size:0x4 data:4byte -lbl_1_bss_414 = .bss:0x00000414; // type:object size:0x4 data:4byte -lbl_1_bss_418 = .bss:0x00000418; // type:object size:0x4 data:4byte -lbl_1_bss_41C = .bss:0x0000041C; // type:object size:0x4 data:4byte -lbl_1_bss_420 = .bss:0x00000420; // type:object size:0x4 data:float -lbl_1_bss_424 = .bss:0x00000424; // type:object size:0x4 data:4byte -lbl_1_bss_428 = .bss:0x00000428; // type:object size:0x100 -lbl_1_bss_528 = .bss:0x00000528; // type:object size:0x40 data:4byte -lbl_1_bss_568 = .bss:0x00000568; // type:object size:0x4 data:float -lbl_1_bss_56C = .bss:0x0000056C; // type:object size:0x4 data:4byte -lbl_1_bss_570 = .bss:0x00000570; // type:object size:0x4 data:4byte -lbl_1_bss_574 = .bss:0x00000574; // type:object size:0x2 data:2byte -lbl_1_bss_576 = .bss:0x00000576; // type:object size:0x2 data:2byte -lbl_1_bss_578 = .bss:0x00000578; // type:object size:0x4 data:4byte -lbl_1_bss_57C = .bss:0x0000057C; // type:object size:0x4 data:4byte -lbl_1_bss_580 = .bss:0x00000580; // type:object size:0x4 data:4byte -lbl_1_bss_584 = .bss:0x00000584; // type:object size:0xC data:float -lbl_1_bss_590 = .bss:0x00000590; // type:object size:0xC data:4byte -lbl_1_bss_59C = .bss:0x0000059C; // type:object size:0xC data:float -lbl_1_bss_5A8 = .bss:0x000005A8; // type:object size:0xC data:4byte -lbl_1_bss_5B4 = .bss:0x000005B4; // type:object size:0x4 data:4byte -lbl_1_bss_5B8 = .bss:0x000005B8; // type:object size:0x18 data:4byte -lbl_1_bss_5D0 = .bss:0x000005D0; // type:object size:0xC data:4byte diff --git a/config/GMPJ01_00/rels/m434Dll/splits.txt b/config/GMPJ01_00/rels/m434Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m434Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m434Dll/symbols.txt b/config/GMPJ01_00/rels/m434Dll/symbols.txt deleted file mode 100644 index 6e8050dc..00000000 --- a/config/GMPJ01_00/rels/m434Dll/symbols.txt +++ /dev/null @@ -1,337 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x45C -fn_1_4FC = .text:0x000004FC; // type:function size:0x5C -fn_1_558 = .text:0x00000558; // type:function size:0x70C -fn_1_C64 = .text:0x00000C64; // type:function size:0x64 -fn_1_CC8 = .text:0x00000CC8; // type:function size:0x17C -fn_1_E44 = .text:0x00000E44; // type:function size:0x278 -fn_1_10BC = .text:0x000010BC; // type:function size:0x38 -fn_1_10F4 = .text:0x000010F4; // type:function size:0x10 -fn_1_1104 = .text:0x00001104; // type:function size:0x4C -fn_1_1150 = .text:0x00001150; // type:function size:0x320 -fn_1_1470 = .text:0x00001470; // type:function size:0x1C8 -fn_1_1638 = .text:0x00001638; // type:function size:0x4C -fn_1_1684 = .text:0x00001684; // type:function size:0x30 -fn_1_16B4 = .text:0x000016B4; // type:function size:0x24 -fn_1_16D8 = .text:0x000016D8; // type:function size:0xB0 -fn_1_1788 = .text:0x00001788; // type:function size:0xB0 -fn_1_1838 = .text:0x00001838; // type:function size:0x118 -fn_1_1950 = .text:0x00001950; // type:function size:0xB0 -fn_1_1A00 = .text:0x00001A00; // type:function size:0x10 -fn_1_1A10 = .text:0x00001A10; // type:function size:0x234 -fn_1_1C44 = .text:0x00001C44; // type:function size:0x44 -fn_1_1C88 = .text:0x00001C88; // type:function size:0x30 -fn_1_1CB8 = .text:0x00001CB8; // type:function size:0x8C -fn_1_1D44 = .text:0x00001D44; // type:function size:0x10 -fn_1_1D54 = .text:0x00001D54; // type:function size:0x10 -fn_1_1D64 = .text:0x00001D64; // type:function size:0x10 -fn_1_1D74 = .text:0x00001D74; // type:function size:0x18 -fn_1_1D8C = .text:0x00001D8C; // type:function size:0x10 -fn_1_1D9C = .text:0x00001D9C; // type:function size:0x14 -fn_1_1DB0 = .text:0x00001DB0; // type:function size:0x94 -fn_1_1E44 = .text:0x00001E44; // type:function size:0x20 -fn_1_1E64 = .text:0x00001E64; // type:function size:0x7A4 -fn_1_2608 = .text:0x00002608; // type:function size:0x9C -fn_1_26A4 = .text:0x000026A4; // type:function size:0x24C -fn_1_28F0 = .text:0x000028F0; // type:function size:0x88 -fn_1_2978 = .text:0x00002978; // type:function size:0x68C -fn_1_3004 = .text:0x00003004; // type:function size:0x124 -fn_1_3128 = .text:0x00003128; // type:function size:0x1B4 -fn_1_32DC = .text:0x000032DC; // type:function size:0xC8 -fn_1_33A4 = .text:0x000033A4; // type:function size:0xF8 -fn_1_349C = .text:0x0000349C; // type:function size:0xF8 -fn_1_3594 = .text:0x00003594; // type:function size:0x734 -fn_1_3CC8 = .text:0x00003CC8; // type:function size:0x6E4 -fn_1_43AC = .text:0x000043AC; // type:function size:0x90 -fn_1_443C = .text:0x0000443C; // type:function size:0x3B0 -fn_1_47EC = .text:0x000047EC; // type:function size:0x68 -fn_1_4854 = .text:0x00004854; // type:function size:0x110 -fn_1_4964 = .text:0x00004964; // type:function size:0x24 -fn_1_4988 = .text:0x00004988; // type:function size:0x46C -fn_1_4DF4 = .text:0x00004DF4; // type:function size:0x5C -fn_1_4E50 = .text:0x00004E50; // type:function size:0xC60 -fn_1_5AB0 = .text:0x00005AB0; // type:function size:0x13C -fn_1_5BEC = .text:0x00005BEC; // type:function size:0xAC -fn_1_5C98 = .text:0x00005C98; // type:function size:0x414 -fn_1_60AC = .text:0x000060AC; // type:function size:0x19C -fn_1_6248 = .text:0x00006248; // type:function size:0x74 -fn_1_62BC = .text:0x000062BC; // type:function size:0x1E0 -fn_1_649C = .text:0x0000649C; // type:function size:0x24 -fn_1_64C0 = .text:0x000064C0; // type:function size:0x1D0 -fn_1_6690 = .text:0x00006690; // type:function size:0x11C -fn_1_67AC = .text:0x000067AC; // type:function size:0xB4 -fn_1_6860 = .text:0x00006860; // type:function size:0x224 -fn_1_6A84 = .text:0x00006A84; // type:function size:0x4 -fn_1_6A88 = .text:0x00006A88; // type:function size:0x2F4 -fn_1_6D7C = .text:0x00006D7C; // type:function size:0x3C -fn_1_6DB8 = .text:0x00006DB8; // type:function size:0x4 -fn_1_6DBC = .text:0x00006DBC; // type:function size:0x1034 -fn_1_7DF0 = .text:0x00007DF0; // type:function size:0x464 -fn_1_8254 = .text:0x00008254; // type:function size:0x174 -fn_1_83C8 = .text:0x000083C8; // type:function size:0x108 -fn_1_84D0 = .text:0x000084D0; // type:function size:0xF4 -fn_1_85C4 = .text:0x000085C4; // type:function size:0x2C0 -fn_1_8884 = .text:0x00008884; // type:function size:0x268 -fn_1_8AEC = .text:0x00008AEC; // type:function size:0x6C -fn_1_8B58 = .text:0x00008B58; // type:function size:0xBC -fn_1_8C14 = .text:0x00008C14; // type:function size:0x164 -fn_1_8D78 = .text:0x00008D78; // type:function size:0xB4 -fn_1_8E2C = .text:0x00008E2C; // type:function size:0x110 -fn_1_8F3C = .text:0x00008F3C; // type:function size:0x64 -fn_1_8FA0 = .text:0x00008FA0; // type:function size:0x1EC -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:4byte -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x10 data:4byte -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x10 data:4byte -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC data:4byte -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0xC data:4byte -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:4byte -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x48 -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x48 -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:4byte -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x48 -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x48 -lbl_1_data_0 = .data:0x00000000; // type:object size:0xC data:float -lbl_1_data_C = .data:0x0000000C; // type:object size:0x18 data:float -lbl_1_data_24 = .data:0x00000024; // type:object size:0x28 -lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24 -lbl_1_data_70 = .data:0x00000070; // type:object size:0x4 data:4byte -lbl_1_data_74 = .data:0x00000074; // type:object size:0x12 data:string -lbl_1_data_86 = .data:0x00000086; // type:object size:0x1E -lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 -lbl_1_data_AC = .data:0x000000AC; // type:object size:0x8 -lbl_1_data_B4 = .data:0x000000B4; // type:object size:0xC -lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x30 -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x10 -lbl_1_data_100 = .data:0x00000100; // type:object size:0x34 -lbl_1_data_134 = .data:0x00000134; // type:object size:0x5 data:string -lbl_1_data_139 = .data:0x00000139; // type:object size:0x7 data:byte -lbl_1_data_140 = .data:0x00000140; // type:object size:0x18 -lbl_1_data_158 = .data:0x00000158; // type:object size:0x1C -lbl_1_data_174 = .data:0x00000174; // type:object size:0x1 data:byte -lbl_1_data_178 = .data:0x00000178; // type:object size:0x8 data:byte -lbl_1_data_180 = .data:0x00000180; // type:object size:0x10 -lbl_1_data_190 = .data:0x00000190; // type:object size:0x20 -lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2C -lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x8 -lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x18 -lbl_1_data_1FC = .data:0x000001FC; // type:object size:0x28 -lbl_1_data_224 = .data:0x00000224; // type:object size:0x90 -lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3 data:string -lbl_1_data_2B7 = .data:0x000002B7; // type:object size:0x3 data:string -lbl_1_data_2BA = .data:0x000002BA; // type:object size:0x6 -lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0x8 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x380 -lbl_1_bss_39C = .bss:0x0000039C; // type:object size:0x4 data:4byte -lbl_1_bss_3A0 = .bss:0x000003A0; // type:object size:0x8 -lbl_1_bss_3A8 = .bss:0x000003A8; // type:object size:0x2 data:2byte -lbl_1_bss_3AA = .bss:0x000003AA; // type:object size:0x2 data:2byte -lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x2 data:2byte -lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x8 data:2byte -lbl_1_bss_3B8 = .bss:0x000003B8; // type:object size:0x4 data:4byte -lbl_1_bss_3BC = .bss:0x000003BC; // type:object size:0x4 data:4byte -lbl_1_bss_3C0 = .bss:0x000003C0; // type:object size:0x2 data:2byte -lbl_1_bss_3C2 = .bss:0x000003C2; // type:object size:0x2 data:2byte -lbl_1_bss_3C4 = .bss:0x000003C4; // type:object size:0x8 data:4byte -lbl_1_bss_3CC = .bss:0x000003CC; // type:object size:0x4 data:4byte -lbl_1_bss_3D0 = .bss:0x000003D0; // type:object size:0x4 data:4byte -lbl_1_bss_3D4 = .bss:0x000003D4; // type:object size:0x1C data:4byte -lbl_1_bss_3F0 = .bss:0x000003F0; // type:object size:0x50 data:4byte -lbl_1_bss_440 = .bss:0x00000440; // type:object size:0x10 data:4byte -lbl_1_bss_450 = .bss:0x00000450; // type:object size:0x8 data:4byte -lbl_1_bss_458 = .bss:0x00000458; // type:object size:0x4 data:4byte -lbl_1_bss_45C = .bss:0x0000045C; // type:object size:0x8 data:4byte -lbl_1_bss_464 = .bss:0x00000464; // type:object size:0x2000 data:float -lbl_1_bss_2464 = .bss:0x00002464; // type:object size:0x4 data:4byte -lbl_1_bss_2468 = .bss:0x00002468; // type:object size:0x400 data:2byte -lbl_1_bss_2868 = .bss:0x00002868; // type:object size:0x3000 data:float -lbl_1_bss_5868 = .bss:0x00005868; // type:object size:0x8 data:4byte -lbl_1_bss_5870 = .bss:0x00005870; // type:object size:0x10 -lbl_1_bss_5880 = .bss:0x00005880; // type:object size:0x800 -lbl_1_bss_6080 = .bss:0x00006080; // type:object size:0x400 -lbl_1_bss_6480 = .bss:0x00006480; // type:object size:0x1000 -lbl_1_bss_7480 = .bss:0x00007480; // type:object size:0x400 data:4byte -lbl_1_bss_7880 = .bss:0x00007880; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m436Dll/splits.txt b/config/GMPJ01_00/rels/m436Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m436Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m436Dll/symbols.txt b/config/GMPJ01_00/rels/m436Dll/symbols.txt deleted file mode 100644 index 03264278..00000000 --- a/config/GMPJ01_00/rels/m436Dll/symbols.txt +++ /dev/null @@ -1,352 +0,0 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x1A8 -fn_1_1A8 = .text:0x000001A8; // type:function size:0x88 -fn_1_230 = .text:0x00000230; // type:function size:0x3E4 -fn_1_614 = .text:0x00000614; // type:function size:0x68 -fn_1_67C = .text:0x0000067C; // type:function size:0x6C -fn_1_6E8 = .text:0x000006E8; // type:function size:0x130 -fn_1_818 = .text:0x00000818; // type:function size:0x8C -fn_1_8A4 = .text:0x000008A4; // type:function size:0x20 -fn_1_8C4 = .text:0x000008C4; // type:function size:0x6A8 -fn_1_F6C = .text:0x00000F6C; // type:function size:0x118 -fn_1_1084 = .text:0x00001084; // type:function size:0xC4 -fn_1_1148 = .text:0x00001148; // type:function size:0x644 -fn_1_178C = .text:0x0000178C; // type:function size:0x24 -fn_1_17B0 = .text:0x000017B0; // type:function size:0x458 -fn_1_1C08 = .text:0x00001C08; // type:function size:0x458 -fn_1_2060 = .text:0x00002060; // type:function size:0x1D0 -fn_1_2230 = .text:0x00002230; // type:function size:0x1D0 -fn_1_2400 = .text:0x00002400; // type:function size:0x68 -fn_1_2468 = .text:0x00002468; // type:function size:0x68 -fn_1_24D0 = .text:0x000024D0; // type:function size:0xE8 -fn_1_25B8 = .text:0x000025B8; // type:function size:0x11C -fn_1_26D4 = .text:0x000026D4; // type:function size:0x70 -fn_1_2744 = .text:0x00002744; // type:function size:0x84 -fn_1_27C8 = .text:0x000027C8; // type:function size:0x38 -fn_1_2800 = .text:0x00002800; // type:function size:0x24 -fn_1_2824 = .text:0x00002824; // type:function size:0x38 -fn_1_285C = .text:0x0000285C; // type:function size:0x1D0 -fn_1_2A2C = .text:0x00002A2C; // type:function size:0x64 -fn_1_2A90 = .text:0x00002A90; // type:function size:0x304 -fn_1_2D94 = .text:0x00002D94; // type:function size:0x28C -fn_1_3020 = .text:0x00003020; // type:function size:0x68 -fn_1_3088 = .text:0x00003088; // type:function size:0x174 -fn_1_31FC = .text:0x000031FC; // type:function size:0x7B8 -fn_1_39B4 = .text:0x000039B4; // type:function size:0x23C -fn_1_3BF0 = .text:0x00003BF0; // type:function size:0x61C -fn_1_420C = .text:0x0000420C; // type:function size:0xF8 -fn_1_4304 = .text:0x00004304; // type:function size:0x290 -fn_1_4594 = .text:0x00004594; // type:function size:0x318 -fn_1_48AC = .text:0x000048AC; // type:function size:0x150 -fn_1_49FC = .text:0x000049FC; // type:function size:0xB8 -fn_1_4AB4 = .text:0x00004AB4; // type:function size:0x68 -fn_1_4B1C = .text:0x00004B1C; // type:function size:0x38C -fn_1_4EA8 = .text:0x00004EA8; // type:function size:0x108 -fn_1_4FB0 = .text:0x00004FB0; // type:function size:0x3DC -fn_1_538C = .text:0x0000538C; // type:function size:0x28 -fn_1_53B4 = .text:0x000053B4; // type:function size:0x60 -fn_1_5414 = .text:0x00005414; // type:function size:0x3C -fn_1_5450 = .text:0x00005450; // type:function size:0x50 -fn_1_54A0 = .text:0x000054A0; // type:function size:0x168 -fn_1_5608 = .text:0x00005608; // type:function size:0x6C8 -fn_1_5CD0 = .text:0x00005CD0; // type:function size:0x390 -fn_1_6060 = .text:0x00006060; // type:function size:0x264 -fn_1_62C4 = .text:0x000062C4; // type:function size:0x624 -fn_1_68E8 = .text:0x000068E8; // type:function size:0x5C -fn_1_6944 = .text:0x00006944; // type:function size:0x298 -fn_1_6BDC = .text:0x00006BDC; // type:function size:0xB0 -fn_1_6C8C = .text:0x00006C8C; // type:function size:0xD8 -fn_1_6D64 = .text:0x00006D64; // type:function size:0xB0 -fn_1_6E14 = .text:0x00006E14; // type:function size:0xB0 -fn_1_6EC4 = .text:0x00006EC4; // type:function size:0xB0 -fn_1_6F74 = .text:0x00006F74; // type:function size:0xD8 -fn_1_704C = .text:0x0000704C; // type:function size:0xB0 -fn_1_70FC = .text:0x000070FC; // type:function size:0xB0 -fn_1_71AC = .text:0x000071AC; // type:function size:0x120 -fn_1_72CC = .text:0x000072CC; // type:function size:0x524 -fn_1_77F0 = .text:0x000077F0; // type:function size:0x368 -fn_1_7B58 = .text:0x00007B58; // type:function size:0x3C4 -fn_1_7F1C = .text:0x00007F1C; // type:function size:0x268C -fn_1_A5A8 = .text:0x0000A5A8; // type:function size:0xE2C -fn_1_B3D4 = .text:0x0000B3D4; // type:function size:0x40C -fn_1_B7E0 = .text:0x0000B7E0; // type:function size:0x4 -fn_1_B7E4 = .text:0x0000B7E4; // type:function size:0x184 -fn_1_B968 = .text:0x0000B968; // type:function size:0x4C -fn_1_B9B4 = .text:0x0000B9B4; // type:function size:0x5C -fn_1_BA10 = .text:0x0000BA10; // type:function size:0x94 -fn_1_BAA4 = .text:0x0000BAA4; // type:function size:0x100 -fn_1_BBA4 = .text:0x0000BBA4; // type:function size:0x50 -fn_1_BBF4 = .text:0x0000BBF4; // type:function size:0x48 -fn_1_BC3C = .text:0x0000BC3C; // type:function size:0x3C -fn_1_BC78 = .text:0x0000BC78; // type:function size:0x80 -fn_1_BCF8 = .text:0x0000BCF8; // type:function size:0x74 -fn_1_BD6C = .text:0x0000BD6C; // type:function size:0xB0 -fn_1_BE1C = .text:0x0000BE1C; // type:function size:0x50 -fn_1_BE6C = .text:0x0000BE6C; // type:function size:0x48 -fn_1_BEB4 = .text:0x0000BEB4; // type:function size:0x4C -fn_1_BF00 = .text:0x0000BF00; // type:function size:0xC8 -fn_1_BFC8 = .text:0x0000BFC8; // type:function size:0x30 -fn_1_BFF8 = .text:0x0000BFF8; // type:function size:0x98 -fn_1_C090 = .text:0x0000C090; // type:function size:0x458 -fn_1_C4E8 = .text:0x0000C4E8; // type:function size:0xFC -fn_1_C5E4 = .text:0x0000C5E4; // type:function size:0xB0 -fn_1_C694 = .text:0x0000C694; // type:function size:0xD8 -fn_1_C76C = .text:0x0000C76C; // type:function size:0xD8 -fn_1_C844 = .text:0x0000C844; // type:function size:0xC8 -fn_1_C90C = .text:0x0000C90C; // type:function size:0x398 -fn_1_CCA4 = .text:0x0000CCA4; // type:function size:0x374 -fn_1_D018 = .text:0x0000D018; // type:function size:0x32C -fn_1_D344 = .text:0x0000D344; // type:function size:0xD4 -fn_1_D418 = .text:0x0000D418; // type:function size:0x2A8 -fn_1_D6C0 = .text:0x0000D6C0; // type:function size:0x24 -fn_1_D6E4 = .text:0x0000D6E4; // type:function size:0x37C -fn_1_DA60 = .text:0x0000DA60; // type:function size:0xA0 -fn_1_DB00 = .text:0x0000DB00; // type:function size:0x2BC -fn_1_DDBC = .text:0x0000DDBC; // type:function size:0xF4 -fn_1_DEB0 = .text:0x0000DEB0; // type:function size:0x200 -fn_1_E0B0 = .text:0x0000E0B0; // type:function size:0x94 -fn_1_E144 = .text:0x0000E144; // type:function size:0x248 -fn_1_E38C = .text:0x0000E38C; // type:function size:0x140 -fn_1_E4CC = .text:0x0000E4CC; // type:function size:0xA0 -fn_1_E56C = .text:0x0000E56C; // type:function size:0xBC -fn_1_E628 = .text:0x0000E628; // type:function size:0x58 -fn_1_E680 = .text:0x0000E680; // type:function size:0x90 -fn_1_E710 = .text:0x0000E710; // type:function size:0x220 -fn_1_E930 = .text:0x0000E930; // type:function size:0xD4 -fn_1_EA04 = .text:0x0000EA04; // type:function size:0x348 -fn_1_ED4C = .text:0x0000ED4C; // type:function size:0xC4 -fn_1_EE10 = .text:0x0000EE10; // type:function size:0x5F4 -fn_1_F404 = .text:0x0000F404; // type:function size:0xEC -fn_1_F4F0 = .text:0x0000F4F0; // type:function size:0x48 -fn_1_F538 = .text:0x0000F538; // type:function size:0x30 -fn_1_F568 = .text:0x0000F568; // type:function size:0x98 -fn_1_F600 = .text:0x0000F600; // type:function size:0xB0 -fn_1_F6B0 = .text:0x0000F6B0; // type:function size:0xAC -fn_1_F75C = .text:0x0000F75C; // type:function size:0x30 -fn_1_F78C = .text:0x0000F78C; // type:function size:0x98 -fn_1_F824 = .text:0x0000F824; // type:function size:0x100 -fn_1_F924 = .text:0x0000F924; // type:function size:0x60 -fn_1_F984 = .text:0x0000F984; // type:function size:0x8E8 -fn_1_1026C = .text:0x0001026C; // type:function size:0x404 -fn_1_10670 = .text:0x00010670; // type:function size:0x1CC -_prolog = .text:0x0001083C; // type:function size:0x54 scope:global -_epilog = .text:0x00010890; // type:function size:0x4C scope:global -fn_1_108DC = .text:0x000108DC; // type:function size:0x410 -fn_1_10CEC = .text:0x00010CEC; // type:function size:0x410 -fn_1_110FC = .text:0x000110FC; // type:function size:0x40 -fn_1_1113C = .text:0x0001113C; // type:function size:0x28 -fn_1_11164 = .text:0x00011164; // type:function size:0xC8 -fn_1_1122C = .text:0x0001122C; // type:function size:0xC8 -fn_1_112F4 = .text:0x000112F4; // type:function size:0xD8 -fn_1_113CC = .text:0x000113CC; // type:function size:0x33C -fn_1_11708 = .text:0x00011708; // type:function size:0x110 -fn_1_11818 = .text:0x00011818; // type:function size:0x178 -fn_1_11990 = .text:0x00011990; // type:function size:0x188 -fn_1_11B18 = .text:0x00011B18; // type:function size:0x1B0 -fn_1_11CC8 = .text:0x00011CC8; // type:function size:0x50 -fn_1_11D18 = .text:0x00011D18; // type:function size:0x5C -fn_1_11D74 = .text:0x00011D74; // type:function size:0x88 -fn_1_11DFC = .text:0x00011DFC; // type:function size:0x74 -fn_1_11E70 = .text:0x00011E70; // type:function size:0x94 -fn_1_11F04 = .text:0x00011F04; // type:function size:0x3C -fn_1_11F40 = .text:0x00011F40; // type:function size:0x318 -fn_1_12258 = .text:0x00012258; // type:function size:0x3C -fn_1_12294 = .text:0x00012294; // type:function size:0x4C -fn_1_122E0 = .text:0x000122E0; // type:function size:0x314 -fn_1_125F4 = .text:0x000125F4; // type:function size:0x314 -fn_1_12908 = .text:0x00012908; // type:function size:0x27C -fn_1_12B84 = .text:0x00012B84; // type:function size:0x2B4 -fn_1_12E38 = .text:0x00012E38; // type:function size:0x530 -fn_1_13368 = .text:0x00013368; // type:function size:0x454 -fn_1_137BC = .text:0x000137BC; // type:function size:0x48C -fn_1_13C48 = .text:0x00013C48; // type:function size:0x71C -fn_1_14364 = .text:0x00014364; // type:function size:0x4C4 -fn_1_14828 = .text:0x00014828; // type:function size:0x4FC -fn_1_14D24 = .text:0x00014D24; // type:function size:0x78C -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x3C data:4byte -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC data:4byte -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x30 data:4byte -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:4byte -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:4byte -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:4byte -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x18 data:4byte -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:4byte -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:4byte -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:4byte -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x8 data:4byte -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0xC data:4byte -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:4byte -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:4byte -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:4byte -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x30 data:4byte -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x34 data:4byte -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 -lbl_1_data_20 = .data:0x00000020; // type:object size:0x20 -lbl_1_data_40 = .data:0x00000040; // type:object size:0xA0 -lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x4 data:4byte -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x4 data:4byte -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x4 data:4byte -lbl_1_data_EC = .data:0x000000EC; // type:object size:0x1B data:string -lbl_1_data_107 = .data:0x00000107; // type:object size:0x22 data:string -lbl_1_data_129 = .data:0x00000129; // type:object size:0x1A data:string -lbl_1_data_143 = .data:0x00000143; // type:object size:0x1A data:string -lbl_1_data_15D = .data:0x0000015D; // type:object size:0xF -lbl_1_data_16C = .data:0x0000016C; // type:object size:0x4 data:4byte -lbl_1_data_170 = .data:0x00000170; // type:object size:0x34 -lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x14 -jumptable_1_data_1B8 = .data:0x000001B8; // type:object size:0x30 scope:local -lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x6C -lbl_1_data_254 = .data:0x00000254; // type:object size:0x18 data:float -lbl_1_data_26C = .data:0x0000026C; // type:object size:0x12 data:string -lbl_1_data_27E = .data:0x0000027E; // type:object size:0x12 data:string -lbl_1_data_290 = .data:0x00000290; // type:object size:0x9C -lbl_1_data_32C = .data:0x0000032C; // type:object size:0x18 -jumptable_1_data_344 = .data:0x00000344; // type:object size:0x28 scope:local -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:4byte -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC data:float -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x30 data:float -lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x30 data:float -lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x18 data:4byte -lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x18 data:4byte -lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0xA8 data:4byte -lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x28 data:4byte -lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x14 data:4byte -lbl_1_bss_1BC = .bss:0x000001BC; // type:object size:0x64 data:4byte -lbl_1_bss_220 = .bss:0x00000220; // type:object size:0x14 data:4byte -lbl_1_bss_234 = .bss:0x00000234; // type:object size:0xF8 data:4byte -lbl_1_bss_32C = .bss:0x0000032C; // type:object size:0x78 data:4byte -lbl_1_bss_3A4 = .bss:0x000003A4; // type:object size:0x8 data:4byte -lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x38 data:4byte -lbl_1_bss_3E4 = .bss:0x000003E4; // type:object size:0xC0 -lbl_1_bss_4A4 = .bss:0x000004A4; // type:object size:0x10 data:4byte diff --git a/config/GMPJ01_00/rels/m437Dll/splits.txt b/config/GMPJ01_00/rels/m437Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m437Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m437Dll/symbols.txt b/config/GMPJ01_00/rels/m437Dll/symbols.txt deleted file mode 100644 index 8cd64fd3..00000000 --- a/config/GMPJ01_00/rels/m437Dll/symbols.txt +++ /dev/null @@ -1,411 +0,0 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x1A8 -fn_1_1A8 = .text:0x000001A8; // type:function size:0x88 -fn_1_230 = .text:0x00000230; // type:function size:0x68 -fn_1_298 = .text:0x00000298; // type:function size:0x6C -fn_1_304 = .text:0x00000304; // type:function size:0x130 -fn_1_434 = .text:0x00000434; // type:function size:0x8C -fn_1_4C0 = .text:0x000004C0; // type:function size:0x3E4 -fn_1_8A4 = .text:0x000008A4; // type:function size:0x20 -fn_1_8C4 = .text:0x000008C4; // type:function size:0x20 -fn_1_8E4 = .text:0x000008E4; // type:function size:0x6A8 -fn_1_F8C = .text:0x00000F8C; // type:function size:0x134 -fn_1_10C0 = .text:0x000010C0; // type:function size:0xC4 -fn_1_1184 = .text:0x00001184; // type:function size:0x38 -fn_1_11BC = .text:0x000011BC; // type:function size:0x24 -fn_1_11E0 = .text:0x000011E0; // type:function size:0x38 -fn_1_1218 = .text:0x00001218; // type:function size:0x1D0 -fn_1_13E8 = .text:0x000013E8; // type:function size:0x64 -fn_1_144C = .text:0x0000144C; // type:function size:0x644 -fn_1_1A90 = .text:0x00001A90; // type:function size:0x24 -fn_1_1AB4 = .text:0x00001AB4; // type:function size:0x458 -fn_1_1F0C = .text:0x00001F0C; // type:function size:0x1EC -fn_1_20F8 = .text:0x000020F8; // type:function size:0x1EC -fn_1_22E4 = .text:0x000022E4; // type:function size:0x458 -fn_1_273C = .text:0x0000273C; // type:function size:0x68 -fn_1_27A4 = .text:0x000027A4; // type:function size:0x68 -fn_1_280C = .text:0x0000280C; // type:function size:0xE8 -fn_1_28F4 = .text:0x000028F4; // type:function size:0x11C -fn_1_2A10 = .text:0x00002A10; // type:function size:0x84 -fn_1_2A94 = .text:0x00002A94; // type:function size:0x70 -fn_1_2B04 = .text:0x00002B04; // type:function size:0xA8 -fn_1_2BAC = .text:0x00002BAC; // type:function size:0x10 -fn_1_2BBC = .text:0x00002BBC; // type:function size:0x5D8 -fn_1_3194 = .text:0x00003194; // type:function size:0xCC -fn_1_3260 = .text:0x00003260; // type:function size:0x1B0 -fn_1_3410 = .text:0x00003410; // type:function size:0x284 -fn_1_3694 = .text:0x00003694; // type:function size:0x20 -fn_1_36B4 = .text:0x000036B4; // type:function size:0x120 -fn_1_37D4 = .text:0x000037D4; // type:function size:0x14 -fn_1_37E8 = .text:0x000037E8; // type:function size:0x1A8 -fn_1_3990 = .text:0x00003990; // type:function size:0x34 -fn_1_39C4 = .text:0x000039C4; // type:function size:0x20 -fn_1_39E4 = .text:0x000039E4; // type:function size:0x16C -fn_1_3B50 = .text:0x00003B50; // type:function size:0x14 -fn_1_3B64 = .text:0x00003B64; // type:function size:0x154 -fn_1_3CB8 = .text:0x00003CB8; // type:function size:0x88 -fn_1_3D40 = .text:0x00003D40; // type:function size:0x204 -fn_1_3F44 = .text:0x00003F44; // type:function size:0x5F4 -fn_1_4538 = .text:0x00004538; // type:function size:0x188 -fn_1_46C0 = .text:0x000046C0; // type:function size:0x268 -fn_1_4928 = .text:0x00004928; // type:function size:0x10 -fn_1_4938 = .text:0x00004938; // type:function size:0x1C0 -fn_1_4AF8 = .text:0x00004AF8; // type:function size:0xB4 -fn_1_4BAC = .text:0x00004BAC; // type:function size:0x94 -fn_1_4C40 = .text:0x00004C40; // type:function size:0x1C0 -fn_1_4E00 = .text:0x00004E00; // type:function size:0xE0 -fn_1_4EE0 = .text:0x00004EE0; // type:function size:0x268 -fn_1_5148 = .text:0x00005148; // type:function size:0x94 -fn_1_51DC = .text:0x000051DC; // type:function size:0x94 -fn_1_5270 = .text:0x00005270; // type:function size:0x94 -fn_1_5304 = .text:0x00005304; // type:function size:0x28 -fn_1_532C = .text:0x0000532C; // type:function size:0x32C -fn_1_5658 = .text:0x00005658; // type:function size:0x32C -fn_1_5984 = .text:0x00005984; // type:function size:0x154 -fn_1_5AD8 = .text:0x00005AD8; // type:function size:0x4E4 -fn_1_5FBC = .text:0x00005FBC; // type:function size:0x150 -fn_1_610C = .text:0x0000610C; // type:function size:0x28 -fn_1_6134 = .text:0x00006134; // type:function size:0x64 -fn_1_6198 = .text:0x00006198; // type:function size:0x68 -fn_1_6200 = .text:0x00006200; // type:function size:0x380 -fn_1_6580 = .text:0x00006580; // type:function size:0x60 -fn_1_65E0 = .text:0x000065E0; // type:function size:0xB18 -fn_1_70F8 = .text:0x000070F8; // type:function size:0x3C -fn_1_7134 = .text:0x00007134; // type:function size:0x198 -fn_1_72CC = .text:0x000072CC; // type:function size:0x1E4 -fn_1_74B0 = .text:0x000074B0; // type:function size:0x1C8 -fn_1_7678 = .text:0x00007678; // type:function size:0x368 -fn_1_79E0 = .text:0x000079E0; // type:function size:0x34 -fn_1_7A14 = .text:0x00007A14; // type:function size:0x8CC -fn_1_82E0 = .text:0x000082E0; // type:function size:0x28 -fn_1_8308 = .text:0x00008308; // type:function size:0x1BC -fn_1_84C4 = .text:0x000084C4; // type:function size:0x1C0 -fn_1_8684 = .text:0x00008684; // type:function size:0xB0 -fn_1_8734 = .text:0x00008734; // type:function size:0xF0 -fn_1_8824 = .text:0x00008824; // type:function size:0xB0 -fn_1_88D4 = .text:0x000088D4; // type:function size:0xB0 -fn_1_8984 = .text:0x00008984; // type:function size:0xB0 -fn_1_8A34 = .text:0x00008A34; // type:function size:0xF0 -fn_1_8B24 = .text:0x00008B24; // type:function size:0xB0 -fn_1_8BD4 = .text:0x00008BD4; // type:function size:0xB0 -fn_1_8C84 = .text:0x00008C84; // type:function size:0x120 -fn_1_8DA4 = .text:0x00008DA4; // type:function size:0x57C -fn_1_9320 = .text:0x00009320; // type:function size:0x3B8 -fn_1_96D8 = .text:0x000096D8; // type:function size:0x454 -fn_1_9B2C = .text:0x00009B2C; // type:function size:0x474 -fn_1_9FA0 = .text:0x00009FA0; // type:function size:0x4A0 -fn_1_A440 = .text:0x0000A440; // type:function size:0x420 -fn_1_A860 = .text:0x0000A860; // type:function size:0x4 -fn_1_A864 = .text:0x0000A864; // type:function size:0x184 -fn_1_A9E8 = .text:0x0000A9E8; // type:function size:0x3C -fn_1_AA24 = .text:0x0000AA24; // type:function size:0x5C -fn_1_AA80 = .text:0x0000AA80; // type:function size:0x3C -fn_1_AABC = .text:0x0000AABC; // type:function size:0x5C -fn_1_AB18 = .text:0x0000AB18; // type:function size:0x50 -fn_1_AB68 = .text:0x0000AB68; // type:function size:0x48 -fn_1_ABB0 = .text:0x0000ABB0; // type:function size:0x3C -fn_1_ABEC = .text:0x0000ABEC; // type:function size:0x84 -fn_1_AC70 = .text:0x0000AC70; // type:function size:0x5C -fn_1_ACCC = .text:0x0000ACCC; // type:function size:0x5C -fn_1_AD28 = .text:0x0000AD28; // type:function size:0x70 -fn_1_AD98 = .text:0x0000AD98; // type:function size:0x48 -fn_1_ADE0 = .text:0x0000ADE0; // type:function size:0x3C -fn_1_AE1C = .text:0x0000AE1C; // type:function size:0x5C -fn_1_AE78 = .text:0x0000AE78; // type:function size:0xD4 -fn_1_AF4C = .text:0x0000AF4C; // type:function size:0x248 -fn_1_B194 = .text:0x0000B194; // type:function size:0x30 -fn_1_B1C4 = .text:0x0000B1C4; // type:function size:0x8C -fn_1_B250 = .text:0x0000B250; // type:function size:0x20 -fn_1_B270 = .text:0x0000B270; // type:function size:0x180 -fn_1_B3F0 = .text:0x0000B3F0; // type:function size:0x104 -fn_1_B4F4 = .text:0x0000B4F4; // type:function size:0x2EC -fn_1_B7E0 = .text:0x0000B7E0; // type:function size:0xF0 -fn_1_B8D0 = .text:0x0000B8D0; // type:function size:0x348 -fn_1_BC18 = .text:0x0000BC18; // type:function size:0xB0 -fn_1_BCC8 = .text:0x0000BCC8; // type:function size:0xF0 -fn_1_BDB8 = .text:0x0000BDB8; // type:function size:0xC8 -fn_1_BE80 = .text:0x0000BE80; // type:function size:0x3C8 -fn_1_C248 = .text:0x0000C248; // type:function size:0x3C8 -fn_1_C610 = .text:0x0000C610; // type:function size:0x3B4 -fn_1_C9C4 = .text:0x0000C9C4; // type:function size:0x35C -fn_1_CD20 = .text:0x0000CD20; // type:function size:0x31C -fn_1_D03C = .text:0x0000D03C; // type:function size:0x384 -fn_1_D3C0 = .text:0x0000D3C0; // type:function size:0x394 -fn_1_D754 = .text:0x0000D754; // type:function size:0x1DC -fn_1_D930 = .text:0x0000D930; // type:function size:0x3BC -fn_1_DCEC = .text:0x0000DCEC; // type:function size:0x1D8 -fn_1_DEC4 = .text:0x0000DEC4; // type:function size:0x3E4 -fn_1_E2A8 = .text:0x0000E2A8; // type:function size:0x2F0 -fn_1_E598 = .text:0x0000E598; // type:function size:0x9C -fn_1_E634 = .text:0x0000E634; // type:function size:0x310 -fn_1_E944 = .text:0x0000E944; // type:function size:0x5C -fn_1_E9A0 = .text:0x0000E9A0; // type:function size:0x104 -fn_1_EAA4 = .text:0x0000EAA4; // type:function size:0x94 -fn_1_EB38 = .text:0x0000EB38; // type:function size:0xD8 -fn_1_EC10 = .text:0x0000EC10; // type:function size:0x1C4 -fn_1_EDD4 = .text:0x0000EDD4; // type:function size:0xCC -fn_1_EEA0 = .text:0x0000EEA0; // type:function size:0x12C -fn_1_EFCC = .text:0x0000EFCC; // type:function size:0xEC -fn_1_F0B8 = .text:0x0000F0B8; // type:function size:0x40 -fn_1_F0F8 = .text:0x0000F0F8; // type:function size:0x4C -fn_1_F144 = .text:0x0000F144; // type:function size:0x48 -fn_1_F18C = .text:0x0000F18C; // type:function size:0x108 -fn_1_F294 = .text:0x0000F294; // type:function size:0x144 -fn_1_F3D8 = .text:0x0000F3D8; // type:function size:0xBC -fn_1_F494 = .text:0x0000F494; // type:function size:0x40 -fn_1_F4D4 = .text:0x0000F4D4; // type:function size:0x30 -fn_1_F504 = .text:0x0000F504; // type:function size:0x8C -fn_1_F590 = .text:0x0000F590; // type:function size:0xB0 -fn_1_F640 = .text:0x0000F640; // type:function size:0xAC -fn_1_F6EC = .text:0x0000F6EC; // type:function size:0x30 -fn_1_F71C = .text:0x0000F71C; // type:function size:0x8C -fn_1_F7A8 = .text:0x0000F7A8; // type:function size:0xF4 -fn_1_F89C = .text:0x0000F89C; // type:function size:0x10 -fn_1_F8AC = .text:0x0000F8AC; // type:function size:0xB90 -fn_1_1043C = .text:0x0001043C; // type:function size:0x468 -fn_1_108A4 = .text:0x000108A4; // type:function size:0x1EC -_prolog = .text:0x00010A90; // type:function size:0x54 scope:global -_epilog = .text:0x00010AE4; // type:function size:0x4C scope:global -fn_1_10B30 = .text:0x00010B30; // type:function size:0x40C -fn_1_10F3C = .text:0x00010F3C; // type:function size:0x40C -fn_1_11348 = .text:0x00011348; // type:function size:0x28 -fn_1_11370 = .text:0x00011370; // type:function size:0x40 -fn_1_113B0 = .text:0x000113B0; // type:function size:0xC8 -fn_1_11478 = .text:0x00011478; // type:function size:0xC8 -fn_1_11540 = .text:0x00011540; // type:function size:0xD8 -fn_1_11618 = .text:0x00011618; // type:function size:0x50 -fn_1_11668 = .text:0x00011668; // type:function size:0x5C -fn_1_116C4 = .text:0x000116C4; // type:function size:0x88 -fn_1_1174C = .text:0x0001174C; // type:function size:0x74 -fn_1_117C0 = .text:0x000117C0; // type:function size:0x94 -fn_1_11854 = .text:0x00011854; // type:function size:0x3C -fn_1_11890 = .text:0x00011890; // type:function size:0x110 -fn_1_119A0 = .text:0x000119A0; // type:function size:0x178 -fn_1_11B18 = .text:0x00011B18; // type:function size:0x1C8 -fn_1_11CE0 = .text:0x00011CE0; // type:function size:0x7B4 -fn_1_12494 = .text:0x00012494; // type:function size:0x4C4 -fn_1_12958 = .text:0x00012958; // type:function size:0x60 -fn_1_129B8 = .text:0x000129B8; // type:function size:0x64 -fn_1_12A1C = .text:0x00012A1C; // type:function size:0x64 -fn_1_12A80 = .text:0x00012A80; // type:function size:0x3C -fn_1_12ABC = .text:0x00012ABC; // type:function size:0x44 -fn_1_12B00 = .text:0x00012B00; // type:function size:0x314 -fn_1_12E14 = .text:0x00012E14; // type:function size:0x314 -fn_1_13128 = .text:0x00013128; // type:function size:0x27C -fn_1_133A4 = .text:0x000133A4; // type:function size:0x2B4 -fn_1_13658 = .text:0x00013658; // type:function size:0x530 -fn_1_13B88 = .text:0x00013B88; // type:function size:0x454 -fn_1_13FDC = .text:0x00013FDC; // type:function size:0x48C -fn_1_14468 = .text:0x00014468; // type:function size:0x71C -fn_1_14B84 = .text:0x00014B84; // type:function size:0x4C4 -fn_1_15048 = .text:0x00015048; // type:function size:0x4FC -fn_1_15544 = .text:0x00015544; // type:function size:0x78C -fn_1_15CD0 = .text:0x00015CD0; // type:function size:0x6C -fn_1_15D3C = .text:0x00015D3C; // type:function size:0x68 -fn_1_15DA4 = .text:0x00015DA4; // type:function size:0x10 -fn_1_15DB4 = .text:0x00015DB4; // type:function size:0xC -fn_1_15DC0 = .text:0x00015DC0; // type:function size:0x8 -fn_1_15DC8 = .text:0x00015DC8; // type:function size:0x48 -fn_1_15E10 = .text:0x00015E10; // type:function size:0x344 -fn_1_16154 = .text:0x00016154; // type:function size:0x190 -fn_1_162E4 = .text:0x000162E4; // type:function size:0x64 -fn_1_16348 = .text:0x00016348; // type:function size:0x4 -fn_1_1634C = .text:0x0001634C; // type:function size:0x164 -fn_1_164B0 = .text:0x000164B0; // type:function size:0x15C -fn_1_1660C = .text:0x0001660C; // type:function size:0x190 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x48 -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:4byte -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x78 -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x78 -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC8 -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x78 -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x14 data:4byte -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x30 data:4byte -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x30 data:4byte -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:4byte -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 data:4byte -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:4byte -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:4byte -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x20 data:4byte -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:4byte -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x20 data:4byte -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:4byte -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x30 data:4byte -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x10 data:4byte -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x8 data:4byte -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0xC data:4byte -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:4byte -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:4byte -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x8 data:4byte -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:4byte -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0xC data:4byte -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x8 data:4byte -lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x8 data:4byte -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x30 data:4byte -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x18 data:4byte -lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 data:float -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 data:double -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float -lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float -lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0xA0 -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x4 data:4byte -lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x4 data:4byte -lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x4 data:4byte -lbl_1_data_AC = .data:0x000000AC; // type:object size:0x1B data:string -lbl_1_data_C7 = .data:0x000000C7; // type:object size:0x22 data:string -lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x1A data:string -lbl_1_data_103 = .data:0x00000103; // type:object size:0x1A data:string -lbl_1_data_11D = .data:0x0000011D; // type:object size:0xF -lbl_1_data_12C = .data:0x0000012C; // type:object size:0x4 data:4byte -lbl_1_data_130 = .data:0x00000130; // type:object size:0x16 data:string -lbl_1_data_146 = .data:0x00000146; // type:object size:0x13 data:string -lbl_1_data_159 = .data:0x00000159; // type:object size:0xE data:string -lbl_1_data_167 = .data:0x00000167; // type:object size:0xE data:string -lbl_1_data_175 = .data:0x00000175; // type:object size:0x13 -lbl_1_data_188 = .data:0x00000188; // type:object size:0x4 data:float -lbl_1_data_18C = .data:0x0000018C; // type:object size:0x14 data:string -jumptable_1_data_1A0 = .data:0x000001A0; // type:object size:0x20 scope:local -lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x14 -jumptable_1_data_1D4 = .data:0x000001D4; // type:object size:0x30 scope:local -lbl_1_data_204 = .data:0x00000204; // type:object size:0x78 -lbl_1_data_27C = .data:0x0000027C; // type:object size:0x90 -lbl_1_data_30C = .data:0x0000030C; // type:object size:0x18 -jumptable_1_data_324 = .data:0x00000324; // type:object size:0x2C scope:local -lbl_1_data_350 = .data:0x00000350; // type:object size:0x10 data:string -lbl_1_data_360 = .data:0x00000360; // type:object size:0x10 data:string -lbl_1_data_370 = .data:0x00000370; // type:object size:0x10 data:string -lbl_1_data_380 = .data:0x00000380; // type:object size:0x10 data:string -lbl_1_data_390 = .data:0x00000390; // type:object size:0x10 data:string -lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x10 data:string -lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x10 data:string -lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x10 data:string -lbl_1_data_3D0 = .data:0x000003D0; // type:object size:0x20 -lbl_1_data_3F0 = .data:0x000003F0; // type:object size:0x40 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:float -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x18 data:4byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x18 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x18 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0xE4 data:4byte -lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x4 data:float -lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x4 data:float -lbl_1_bss_154 = .bss:0x00000154; // type:object size:0x4 data:float -lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x4 data:float -lbl_1_bss_15C = .bss:0x0000015C; // type:object size:0x4 data:float -lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x7C data:4byte -lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0x4E0 data:4byte -lbl_1_bss_6BC = .bss:0x000006BC; // type:object size:0x218 data:4byte -lbl_1_bss_8D4 = .bss:0x000008D4; // type:object size:0x28 data:4byte -lbl_1_bss_8FC = .bss:0x000008FC; // type:object size:0x24 data:4byte -lbl_1_bss_920 = .bss:0x00000920; // type:object size:0x24 data:4byte -lbl_1_bss_944 = .bss:0x00000944; // type:object size:0x24 data:4byte -lbl_1_bss_968 = .bss:0x00000968; // type:object size:0x40 data:4byte diff --git a/config/GMPJ01_00/rels/m439Dll/splits.txt b/config/GMPJ01_00/rels/m439Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m439Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m439Dll/symbols.txt b/config/GMPJ01_00/rels/m439Dll/symbols.txt deleted file mode 100644 index 37fa3fca..00000000 --- a/config/GMPJ01_00/rels/m439Dll/symbols.txt +++ /dev/null @@ -1,325 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x2C4 -fn_1_364 = .text:0x00000364; // type:function size:0x10 -fn_1_374 = .text:0x00000374; // type:function size:0x10 -fn_1_384 = .text:0x00000384; // type:function size:0x84 -fn_1_408 = .text:0x00000408; // type:function size:0x5B4 -fn_1_9BC = .text:0x000009BC; // type:function size:0x5C -fn_1_A18 = .text:0x00000A18; // type:function size:0x108 -fn_1_B20 = .text:0x00000B20; // type:function size:0x5C -fn_1_B7C = .text:0x00000B7C; // type:function size:0x84 -fn_1_C00 = .text:0x00000C00; // type:function size:0x10C -fn_1_D0C = .text:0x00000D0C; // type:function size:0x318 -fn_1_1024 = .text:0x00001024; // type:function size:0x104 -fn_1_1128 = .text:0x00001128; // type:function size:0x588 -fn_1_16B0 = .text:0x000016B0; // type:function size:0x5A4 -fn_1_1C54 = .text:0x00001C54; // type:function size:0x2E8 -fn_1_1F3C = .text:0x00001F3C; // type:function size:0x248 -fn_1_2184 = .text:0x00002184; // type:function size:0xB8 -fn_1_223C = .text:0x0000223C; // type:function size:0x978 -fn_1_2BB4 = .text:0x00002BB4; // type:function size:0xD0 -fn_1_2C84 = .text:0x00002C84; // type:function size:0xF98 -fn_1_3C1C = .text:0x00003C1C; // type:function size:0x90C -fn_1_4528 = .text:0x00004528; // type:function size:0x450 -fn_1_4978 = .text:0x00004978; // type:function size:0x50 -fn_1_49C8 = .text:0x000049C8; // type:function size:0x84 -fn_1_4A4C = .text:0x00004A4C; // type:function size:0x5C -fn_1_4AA8 = .text:0x00004AA8; // type:function size:0x218 -fn_1_4CC0 = .text:0x00004CC0; // type:function size:0x294 -fn_1_4F54 = .text:0x00004F54; // type:function size:0xC48 -fn_1_5B9C = .text:0x00005B9C; // type:function size:0x4 -fn_1_5BA0 = .text:0x00005BA0; // type:function size:0x10C -fn_1_5CAC = .text:0x00005CAC; // type:function size:0x4 -fn_1_5CB0 = .text:0x00005CB0; // type:function size:0x3B8 -fn_1_6068 = .text:0x00006068; // type:function size:0xB8 -fn_1_6120 = .text:0x00006120; // type:function size:0x1C0 -fn_1_62E0 = .text:0x000062E0; // type:function size:0x48 -fn_1_6328 = .text:0x00006328; // type:function size:0x1F8 -fn_1_6520 = .text:0x00006520; // type:function size:0xFC -fn_1_661C = .text:0x0000661C; // type:function size:0xA0 -fn_1_66BC = .text:0x000066BC; // type:function size:0xF8 -fn_1_67B4 = .text:0x000067B4; // type:function size:0x454 -fn_1_6C08 = .text:0x00006C08; // type:function size:0xC8 -fn_1_6CD0 = .text:0x00006CD0; // type:function size:0x11C -fn_1_6DEC = .text:0x00006DEC; // type:function size:0x3A4 -fn_1_7190 = .text:0x00007190; // type:function size:0x5C -fn_1_71EC = .text:0x000071EC; // type:function size:0x208 -fn_1_73F4 = .text:0x000073F4; // type:function size:0x184 -fn_1_7578 = .text:0x00007578; // type:function size:0x26C -fn_1_77E4 = .text:0x000077E4; // type:function size:0x9A8 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0xC data:2byte -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x50 -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x1 data:byte -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0x18 -lbl_1_data_18 = .data:0x00000018; // type:object size:0x18 -lbl_1_data_30 = .data:0x00000030; // type:object size:0x8 -lbl_1_data_38 = .data:0x00000038; // type:object size:0x84 -lbl_1_data_BC = .data:0x000000BC; // type:object size:0x84 -lbl_1_data_140 = .data:0x00000140; // type:object size:0x2C -lbl_1_data_16C = .data:0x0000016C; // type:object size:0x90 -lbl_1_data_1FC = .data:0x000001FC; // type:object size:0x90 -lbl_1_data_28C = .data:0x0000028C; // type:object size:0x30 -lbl_1_data_2BC = .data:0x000002BC; // type:object size:0xA8 -lbl_1_data_364 = .data:0x00000364; // type:object size:0xA8 -lbl_1_data_40C = .data:0x0000040C; // type:object size:0x38 -lbl_1_data_444 = .data:0x00000444; // type:object size:0xB4 -lbl_1_data_4F8 = .data:0x000004F8; // type:object size:0xB4 -lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x3C -lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0x18 -lbl_1_data_600 = .data:0x00000600; // type:object size:0x18 -lbl_1_data_618 = .data:0x00000618; // type:object size:0x8 -lbl_1_data_620 = .data:0x00000620; // type:object size:0xA8 -lbl_1_data_6C8 = .data:0x000006C8; // type:object size:0xA8 -lbl_1_data_770 = .data:0x00000770; // type:object size:0x38 -lbl_1_data_7A8 = .data:0x000007A8; // type:object size:0xD8 -lbl_1_data_880 = .data:0x00000880; // type:object size:0xD8 -lbl_1_data_958 = .data:0x00000958; // type:object size:0x48 -lbl_1_data_9A0 = .data:0x000009A0; // type:object size:0xC0 -lbl_1_data_A60 = .data:0x00000A60; // type:object size:0xC0 -lbl_1_data_B20 = .data:0x00000B20; // type:object size:0x40 -lbl_1_data_B60 = .data:0x00000B60; // type:object size:0xC0 -lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xC0 -lbl_1_data_CE0 = .data:0x00000CE0; // type:object size:0x40 -lbl_1_data_D20 = .data:0x00000D20; // type:object size:0xA8 -lbl_1_data_DC8 = .data:0x00000DC8; // type:object size:0xA8 -lbl_1_data_E70 = .data:0x00000E70; // type:object size:0x38 -lbl_1_data_EA8 = .data:0x00000EA8; // type:object size:0x9C -lbl_1_data_F44 = .data:0x00000F44; // type:object size:0x9C -lbl_1_data_FE0 = .data:0x00000FE0; // type:object size:0x34 -lbl_1_data_1014 = .data:0x00001014; // type:object size:0x60 -lbl_1_data_1074 = .data:0x00001074; // type:object size:0x18 -lbl_1_data_108C = .data:0x0000108C; // type:object size:0x30 -lbl_1_data_10BC = .data:0x000010BC; // type:object size:0x204 -lbl_1_data_12C0 = .data:0x000012C0; // type:object size:0x204 -lbl_1_data_14C4 = .data:0x000014C4; // type:object size:0x204 -lbl_1_data_16C8 = .data:0x000016C8; // type:object size:0xC -lbl_1_data_16D4 = .data:0x000016D4; // type:object size:0x4 -lbl_1_data_16D8 = .data:0x000016D8; // type:object size:0x1D4 -lbl_1_data_18AC = .data:0x000018AC; // type:object size:0x1D4 -lbl_1_data_1A80 = .data:0x00001A80; // type:object size:0x1D4 -lbl_1_data_1C54 = .data:0x00001C54; // type:object size:0x120 -lbl_1_data_1D74 = .data:0x00001D74; // type:object size:0x120 -lbl_1_data_1E94 = .data:0x00001E94; // type:object size:0x120 -lbl_1_data_1FB4 = .data:0x00001FB4; // type:object size:0xF0 -lbl_1_data_20A4 = .data:0x000020A4; // type:object size:0xF0 -lbl_1_data_2194 = .data:0x00002194; // type:object size:0xF0 -lbl_1_data_2284 = .data:0x00002284; // type:object size:0x24 -lbl_1_data_22A8 = .data:0x000022A8; // type:object size:0xC -lbl_1_data_22B4 = .data:0x000022B4; // type:object size:0x174 -lbl_1_data_2428 = .data:0x00002428; // type:object size:0x174 -lbl_1_data_259C = .data:0x0000259C; // type:object size:0x174 -lbl_1_data_2710 = .data:0x00002710; // type:object size:0x144 -lbl_1_data_2854 = .data:0x00002854; // type:object size:0x144 -lbl_1_data_2998 = .data:0x00002998; // type:object size:0x144 -lbl_1_data_2ADC = .data:0x00002ADC; // type:object size:0x1A4 -lbl_1_data_2C80 = .data:0x00002C80; // type:object size:0x1A4 -lbl_1_data_2E24 = .data:0x00002E24; // type:object size:0x1A4 -lbl_1_data_2FC8 = .data:0x00002FC8; // type:object size:0x24 -lbl_1_data_2FEC = .data:0x00002FEC; // type:object size:0xC -lbl_1_data_2FF8 = .data:0x00002FF8; // type:object size:0x294 -lbl_1_data_328C = .data:0x0000328C; // type:object size:0x294 -lbl_1_data_3520 = .data:0x00003520; // type:object size:0x294 -lbl_1_data_37B4 = .data:0x000037B4; // type:object size:0xC -lbl_1_data_37C0 = .data:0x000037C0; // type:object size:0x4 -lbl_1_data_37C4 = .data:0x000037C4; // type:object size:0x198 -lbl_1_data_395C = .data:0x0000395C; // type:object size:0x198 -lbl_1_data_3AF4 = .data:0x00003AF4; // type:object size:0x198 -lbl_1_data_3C8C = .data:0x00003C8C; // type:object size:0x198 -lbl_1_data_3E24 = .data:0x00003E24; // type:object size:0x198 -lbl_1_data_3FBC = .data:0x00003FBC; // type:object size:0x198 -lbl_1_data_4154 = .data:0x00004154; // type:object size:0x18 -lbl_1_data_416C = .data:0x0000416C; // type:object size:0x8 -lbl_1_data_4174 = .data:0x00004174; // type:object size:0x210 -lbl_1_data_4384 = .data:0x00004384; // type:object size:0x210 -lbl_1_data_4594 = .data:0x00004594; // type:object size:0x210 -lbl_1_data_47A4 = .data:0x000047A4; // type:object size:0x210 -lbl_1_data_49B4 = .data:0x000049B4; // type:object size:0x210 -lbl_1_data_4BC4 = .data:0x00004BC4; // type:object size:0x210 -lbl_1_data_4DD4 = .data:0x00004DD4; // type:object size:0x18 -lbl_1_data_4DEC = .data:0x00004DEC; // type:object size:0x8 -lbl_1_data_4DF4 = .data:0x00004DF4; // type:object size:0x1D4 -lbl_1_data_4FC8 = .data:0x00004FC8; // type:object size:0x1D4 -lbl_1_data_519C = .data:0x0000519C; // type:object size:0x1D4 -lbl_1_data_5370 = .data:0x00005370; // type:object size:0x1D4 -lbl_1_data_5544 = .data:0x00005544; // type:object size:0x1D4 -lbl_1_data_5718 = .data:0x00005718; // type:object size:0x1D4 -lbl_1_data_58EC = .data:0x000058EC; // type:object size:0x18 -lbl_1_data_5904 = .data:0x00005904; // type:object size:0x8 -lbl_1_data_590C = .data:0x0000590C; // type:object size:0x18C -lbl_1_data_5A98 = .data:0x00005A98; // type:object size:0x18C -lbl_1_data_5C24 = .data:0x00005C24; // type:object size:0x18C -lbl_1_data_5DB0 = .data:0x00005DB0; // type:object size:0x168 -lbl_1_data_5F18 = .data:0x00005F18; // type:object size:0x168 -lbl_1_data_6080 = .data:0x00006080; // type:object size:0x168 -lbl_1_data_61E8 = .data:0x000061E8; // type:object size:0x18 -lbl_1_data_6200 = .data:0x00006200; // type:object size:0x8 -lbl_1_data_6208 = .data:0x00006208; // type:object size:0x174 -lbl_1_data_637C = .data:0x0000637C; // type:object size:0x174 -lbl_1_data_64F0 = .data:0x000064F0; // type:object size:0x174 -lbl_1_data_6664 = .data:0x00006664; // type:object size:0x15C -lbl_1_data_67C0 = .data:0x000067C0; // type:object size:0x15C -lbl_1_data_691C = .data:0x0000691C; // type:object size:0x15C -lbl_1_data_6A78 = .data:0x00006A78; // type:object size:0x18 -lbl_1_data_6A90 = .data:0x00006A90; // type:object size:0x8 -lbl_1_data_6A98 = .data:0x00006A98; // type:object size:0x18C -lbl_1_data_6C24 = .data:0x00006C24; // type:object size:0x18C -lbl_1_data_6DB0 = .data:0x00006DB0; // type:object size:0x18C -lbl_1_data_6F3C = .data:0x00006F3C; // type:object size:0x174 -lbl_1_data_70B0 = .data:0x000070B0; // type:object size:0x174 -lbl_1_data_7224 = .data:0x00007224; // type:object size:0x174 -lbl_1_data_7398 = .data:0x00007398; // type:object size:0x18 -lbl_1_data_73B0 = .data:0x000073B0; // type:object size:0x8 -lbl_1_data_73B8 = .data:0x000073B8; // type:object size:0x14 -lbl_1_data_73CC = .data:0x000073CC; // type:object size:0x28 -lbl_1_data_73F4 = .data:0x000073F4; // type:object size:0x28 -lbl_1_data_741C = .data:0x0000741C; // type:object size:0x70 data:float -lbl_1_data_748C = .data:0x0000748C; // type:object size:0x140 -lbl_1_data_75CC = .data:0x000075CC; // type:object size:0x14 -lbl_1_data_75E0 = .data:0x000075E0; // type:object size:0x10 data:4byte -lbl_1_data_75F0 = .data:0x000075F0; // type:object size:0xC data:float -lbl_1_data_75FC = .data:0x000075FC; // type:object size:0xC data:float -lbl_1_data_7608 = .data:0x00007608; // type:object size:0x4 -lbl_1_data_760C = .data:0x0000760C; // type:object size:0xC -lbl_1_data_7618 = .data:0x00007618; // type:object size:0xC -lbl_1_data_7624 = .data:0x00007624; // type:object size:0x24 -lbl_1_data_7648 = .data:0x00007648; // type:object size:0x4 data:4byte -lbl_1_data_764C = .data:0x0000764C; // type:object size:0x4 data:4byte -jumptable_1_data_7650 = .data:0x00007650; // type:object size:0x28 scope:local -lbl_1_data_7678 = .data:0x00007678; // type:object size:0x1C data:string -lbl_1_data_7694 = .data:0x00007694; // type:object size:0x1C -lbl_1_data_76B0 = .data:0x000076B0; // type:object size:0x58 -lbl_1_data_7708 = .data:0x00007708; // type:object size:0x30 -lbl_1_data_7738 = .data:0x00007738; // type:object size:0x5C -lbl_1_data_7794 = .data:0x00007794; // type:object size:0x4 -lbl_1_data_7798 = .data:0x00007798; // type:object size:0x4 data:4byte -lbl_1_data_779C = .data:0x0000779C; // type:object size:0x4 data:4byte -lbl_1_data_77A0 = .data:0x000077A0; // type:object size:0x28 -lbl_1_data_77C8 = .data:0x000077C8; // type:object size:0x70 -lbl_1_data_7838 = .data:0x00007838; // type:object size:0x1C -lbl_1_data_7854 = .data:0x00007854; // type:object size:0x6 data:string -lbl_1_data_785A = .data:0x0000785A; // type:object size:0x6 data:string -lbl_1_data_7860 = .data:0x00007860; // type:object size:0x8 data:string -lbl_1_data_7868 = .data:0x00007868; // type:object size:0x6 data:string -lbl_1_data_786E = .data:0x0000786E; // type:object size:0x8 data:string -lbl_1_data_7876 = .data:0x00007876; // type:object size:0x6 data:string -lbl_1_data_787C = .data:0x0000787C; // type:object size:0x6 data:string -lbl_1_data_7882 = .data:0x00007882; // type:object size:0x6 data:string -lbl_1_data_7888 = .data:0x00007888; // type:object size:0x6 data:string -lbl_1_data_788E = .data:0x0000788E; // type:object size:0x6 data:string -lbl_1_data_7894 = .data:0x00007894; // type:object size:0x6 data:string -lbl_1_data_789A = .data:0x0000789A; // type:object size:0x6 data:string -lbl_1_data_78A0 = .data:0x000078A0; // type:object size:0x20 -lbl_1_data_78C0 = .data:0x000078C0; // type:object size:0x30 -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x20 -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x2 data:2byte -lbl_1_bss_32 = .bss:0x00000032; // type:object size:0x2 data:2byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0xC data:float -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte -lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x90 -lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x24 -lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x24 -lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0xC -lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x4 data:4byte -lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x2 data:2byte -lbl_1_bss_12E = .bss:0x0000012E; // type:object size:0x2 data:2byte -lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x2 data:2byte -lbl_1_bss_132 = .bss:0x00000132; // type:object size:0x8 data:2byte -lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x2 data:2byte -lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x2 data:2byte -lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte -lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte -lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x4 data:4byte -lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x4 data:4byte -lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x10 data:4byte -lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x8 data:4byte -lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x4 data:4byte -lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x4 data:4byte -lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m440Dll/splits.txt b/config/GMPJ01_00/rels/m440Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m440Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m440Dll/symbols.txt b/config/GMPJ01_00/rels/m440Dll/symbols.txt deleted file mode 100644 index 562ed3d5..00000000 --- a/config/GMPJ01_00/rels/m440Dll/symbols.txt +++ /dev/null @@ -1,288 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x324 -fn_1_3C4 = .text:0x000003C4; // type:function size:0x70 -fn_1_434 = .text:0x00000434; // type:function size:0x70 -fn_1_4A4 = .text:0x000004A4; // type:function size:0x224 -fn_1_6C8 = .text:0x000006C8; // type:function size:0x228 -fn_1_8F0 = .text:0x000008F0; // type:function size:0x1F0 -fn_1_AE0 = .text:0x00000AE0; // type:function size:0x334 -fn_1_E14 = .text:0x00000E14; // type:function size:0x324 -fn_1_1138 = .text:0x00001138; // type:function size:0x5A0 -fn_1_16D8 = .text:0x000016D8; // type:function size:0x30 -fn_1_1708 = .text:0x00001708; // type:function size:0x60 -fn_1_1768 = .text:0x00001768; // type:function size:0x64 -fn_1_17CC = .text:0x000017CC; // type:function size:0x28 -fn_1_17F4 = .text:0x000017F4; // type:function size:0x28 -fn_1_181C = .text:0x0000181C; // type:function size:0x74 -fn_1_1890 = .text:0x00001890; // type:function size:0x50 -fn_1_18E0 = .text:0x000018E0; // type:function size:0x74 -fn_1_1954 = .text:0x00001954; // type:function size:0x5C -fn_1_19B0 = .text:0x000019B0; // type:function size:0x2FC -fn_1_1CAC = .text:0x00001CAC; // type:function size:0xA8 -fn_1_1D54 = .text:0x00001D54; // type:function size:0x4EC -fn_1_2240 = .text:0x00002240; // type:function size:0x1A4 -fn_1_23E4 = .text:0x000023E4; // type:function size:0x44 -fn_1_2428 = .text:0x00002428; // type:function size:0x48 -fn_1_2470 = .text:0x00002470; // type:function size:0x604 -fn_1_2A74 = .text:0x00002A74; // type:function size:0x40 -fn_1_2AB4 = .text:0x00002AB4; // type:function size:0x50 -fn_1_2B04 = .text:0x00002B04; // type:function size:0x1A4 -fn_1_2CA8 = .text:0x00002CA8; // type:function size:0x80 -fn_1_2D28 = .text:0x00002D28; // type:function size:0x6AC -fn_1_33D4 = .text:0x000033D4; // type:function size:0xA04 -fn_1_3DD8 = .text:0x00003DD8; // type:function size:0x780 -fn_1_4558 = .text:0x00004558; // type:function size:0x64 -fn_1_45BC = .text:0x000045BC; // type:function size:0xA4 -fn_1_4660 = .text:0x00004660; // type:function size:0x80 -fn_1_46E0 = .text:0x000046E0; // type:function size:0x340 -fn_1_4A20 = .text:0x00004A20; // type:function size:0x124 -fn_1_4B44 = .text:0x00004B44; // type:function size:0x2BC -fn_1_4E00 = .text:0x00004E00; // type:function size:0x2C -fn_1_4E2C = .text:0x00004E2C; // type:function size:0x28 -fn_1_4E54 = .text:0x00004E54; // type:function size:0x54 -fn_1_4EA8 = .text:0x00004EA8; // type:function size:0x44 -fn_1_4EEC = .text:0x00004EEC; // type:function size:0x48 -fn_1_4F34 = .text:0x00004F34; // type:function size:0xDC -fn_1_5010 = .text:0x00005010; // type:function size:0x7A4 -fn_1_57B4 = .text:0x000057B4; // type:function size:0x478 -fn_1_5C2C = .text:0x00005C2C; // type:function size:0x928 -fn_1_6554 = .text:0x00006554; // type:function size:0x604 -fn_1_6B58 = .text:0x00006B58; // type:function size:0x6A4 -fn_1_71FC = .text:0x000071FC; // type:function size:0x738 -fn_1_7934 = .text:0x00007934; // type:function size:0x42C -fn_1_7D60 = .text:0x00007D60; // type:function size:0x30C -fn_1_806C = .text:0x0000806C; // type:function size:0x404 -fn_1_8470 = .text:0x00008470; // type:function size:0x654 -fn_1_8AC4 = .text:0x00008AC4; // type:function size:0x258 -fn_1_8D1C = .text:0x00008D1C; // type:function size:0x488 -fn_1_91A4 = .text:0x000091A4; // type:function size:0xD8 -fn_1_927C = .text:0x0000927C; // type:function size:0xC8 -fn_1_9344 = .text:0x00009344; // type:function size:0x7C -fn_1_93C0 = .text:0x000093C0; // type:function size:0x10 -fn_1_93D0 = .text:0x000093D0; // type:function size:0x5C -fn_1_942C = .text:0x0000942C; // type:function size:0x140 -fn_1_956C = .text:0x0000956C; // type:function size:0x544 -fn_1_9AB0 = .text:0x00009AB0; // type:function size:0x60 -fn_1_9B10 = .text:0x00009B10; // type:function size:0x2C -fn_1_9B3C = .text:0x00009B3C; // type:function size:0x58 -fn_1_9B94 = .text:0x00009B94; // type:function size:0x38 -fn_1_9BCC = .text:0x00009BCC; // type:function size:0x38 -fn_1_9C04 = .text:0x00009C04; // type:function size:0x5B4 -fn_1_A1B8 = .text:0x0000A1B8; // type:function size:0xCC -fn_1_A284 = .text:0x0000A284; // type:function size:0xA4 -fn_1_A328 = .text:0x0000A328; // type:function size:0x68 -fn_1_A390 = .text:0x0000A390; // type:function size:0x704 -fn_1_AA94 = .text:0x0000AA94; // type:function size:0x374 -fn_1_AE08 = .text:0x0000AE08; // type:function size:0xDC -fn_1_AEE4 = .text:0x0000AEE4; // type:function size:0x298 -fn_1_B17C = .text:0x0000B17C; // type:function size:0x4 -fn_1_B180 = .text:0x0000B180; // type:function size:0x224 -fn_1_B3A4 = .text:0x0000B3A4; // type:function size:0x4E0 -fn_1_B884 = .text:0x0000B884; // type:function size:0x950 -fn_1_C1D4 = .text:0x0000C1D4; // type:function size:0x770 -fn_1_C944 = .text:0x0000C944; // type:function size:0x668 -fn_1_CFAC = .text:0x0000CFAC; // type:function size:0x2A0 -fn_1_D24C = .text:0x0000D24C; // type:function size:0x100 -fn_1_D34C = .text:0x0000D34C; // type:function size:0x4AC -fn_1_D7F8 = .text:0x0000D7F8; // type:function size:0x83C -fn_1_E034 = .text:0x0000E034; // type:function size:0x878 -fn_1_E8AC = .text:0x0000E8AC; // type:function size:0x4DC -fn_1_ED88 = .text:0x0000ED88; // type:function size:0xF0 -fn_1_EE78 = .text:0x0000EE78; // type:function size:0xD8 -fn_1_EF50 = .text:0x0000EF50; // type:function size:0x1AC -fn_1_F0FC = .text:0x0000F0FC; // type:function size:0x6C -fn_1_F168 = .text:0x0000F168; // type:function size:0xC0 -fn_1_F228 = .text:0x0000F228; // type:function size:0x298 -fn_1_F4C0 = .text:0x0000F4C0; // type:function size:0x14 -fn_1_F4D4 = .text:0x0000F4D4; // type:function size:0x28 -fn_1_F4FC = .text:0x0000F4FC; // type:function size:0x18 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x1 data:byte -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0xC data:2byte -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC data:4byte -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0xC data:2byte -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x14 -lbl_1_data_14 = .data:0x00000014; // type:object size:0xC -lbl_1_data_20 = .data:0x00000020; // type:object size:0xC data:float -lbl_1_data_2C = .data:0x0000002C; // type:object size:0xC data:float -lbl_1_data_38 = .data:0x00000038; // type:object size:0xC -lbl_1_data_44 = .data:0x00000044; // type:object size:0x10 -lbl_1_data_54 = .data:0x00000054; // type:object size:0xC data:float -lbl_1_data_60 = .data:0x00000060; // type:object size:0xC -lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC data:float -lbl_1_data_78 = .data:0x00000078; // type:object size:0x54 data:float -lbl_1_data_CC = .data:0x000000CC; // type:object size:0x18 -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x2 data:2byte -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x2 data:2byte -lbl_1_data_EC = .data:0x000000EC; // type:object size:0x2 data:2byte -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x2 data:2byte -lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x10 -lbl_1_data_104 = .data:0x00000104; // type:object size:0x2 data:2byte -lbl_1_data_108 = .data:0x00000108; // type:object size:0x2 data:2byte -lbl_1_data_10C = .data:0x0000010C; // type:object size:0x12 -lbl_1_data_11E = .data:0x0000011E; // type:object size:0x13 data:string -lbl_1_data_131 = .data:0x00000131; // type:object size:0x18 -lbl_1_data_149 = .data:0x00000149; // type:object size:0x19 data:string -lbl_1_data_162 = .data:0x00000162; // type:object size:0x1C data:string -lbl_1_data_17E = .data:0x0000017E; // type:object size:0x10 data:string -lbl_1_data_18E = .data:0x0000018E; // type:object size:0x26 data:string -lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 data:string -lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x2 data:2byte -lbl_1_data_1DA = .data:0x000001DA; // type:object size:0x2 data:2byte -lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x40 -lbl_1_data_21C = .data:0x0000021C; // type:object size:0x10 -jumptable_1_data_22C = .data:0x0000022C; // type:object size:0x24 scope:local -lbl_1_data_250 = .data:0x00000250; // type:object size:0x4 data:float -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte -lbl_1_bss_1 = .bss:0x00000001; // type:object size:0x1 data:byte -lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x1 data:byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte -lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 data:2byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte -lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x1 data:byte -lbl_1_bss_B = .bss:0x0000000B; // type:object size:0x1 data:byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x1 data:byte -lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x14 data:2byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x30 -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x2 data:2byte -lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte -lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte -lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x2 data:2byte -lbl_1_bss_72 = .bss:0x00000072; // type:object size:0x1 data:byte -lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x2 data:2byte -lbl_1_bss_78 = .bss:0x00000078; // type:object size:0xC data:4byte -lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:float -lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x30 data:float -lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x8 -lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x10 diff --git a/config/GMPJ01_00/rels/m441Dll/splits.txt b/config/GMPJ01_00/rels/m441Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m441Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m441Dll/symbols.txt b/config/GMPJ01_00/rels/m441Dll/symbols.txt deleted file mode 100644 index 08b35ee9..00000000 --- a/config/GMPJ01_00/rels/m441Dll/symbols.txt +++ /dev/null @@ -1,224 +0,0 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x24 -fn_1_24 = .text:0x00000024; // type:function size:0x88 -fn_1_AC = .text:0x000000AC; // type:function size:0xA4 -fn_1_150 = .text:0x00000150; // type:function size:0x24 -fn_1_174 = .text:0x00000174; // type:function size:0x164 -fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C -fn_1_414 = .text:0x00000414; // type:function size:0x58 -fn_1_46C = .text:0x0000046C; // type:function size:0x114 -fn_1_580 = .text:0x00000580; // type:function size:0x218 -fn_1_798 = .text:0x00000798; // type:function size:0x254 -fn_1_9EC = .text:0x000009EC; // type:function size:0x54 -fn_1_A40 = .text:0x00000A40; // type:function size:0x10C -fn_1_B4C = .text:0x00000B4C; // type:function size:0x6A8 -fn_1_11F4 = .text:0x000011F4; // type:function size:0x15C -fn_1_1350 = .text:0x00001350; // type:function size:0x8C -fn_1_13DC = .text:0x000013DC; // type:function size:0x334 -fn_1_1710 = .text:0x00001710; // type:function size:0x350 -fn_1_1A60 = .text:0x00001A60; // type:function size:0x2B8 -fn_1_1D18 = .text:0x00001D18; // type:function size:0x58 -fn_1_1D70 = .text:0x00001D70; // type:function size:0xB0 -fn_1_1E20 = .text:0x00001E20; // type:function size:0x104 -fn_1_1F24 = .text:0x00001F24; // type:function size:0x34 -fn_1_1F58 = .text:0x00001F58; // type:function size:0x6C -fn_1_1FC4 = .text:0x00001FC4; // type:function size:0x3F0 -_prolog = .text:0x000023B4; // type:function size:0x54 scope:global -_epilog = .text:0x00002408; // type:function size:0x4C scope:global -fn_1_2454 = .text:0x00002454; // type:function size:0x2E8 -fn_1_273C = .text:0x0000273C; // type:function size:0x1C8 -fn_1_2904 = .text:0x00002904; // type:function size:0x2D0 -fn_1_2BD4 = .text:0x00002BD4; // type:function size:0x830 -fn_1_3404 = .text:0x00003404; // type:function size:0x700 -fn_1_3B04 = .text:0x00003B04; // type:function size:0xFC -fn_1_3C00 = .text:0x00003C00; // type:function size:0x4A8 -fn_1_40A8 = .text:0x000040A8; // type:function size:0x1340 -fn_1_53E8 = .text:0x000053E8; // type:function size:0x744 -fn_1_5B2C = .text:0x00005B2C; // type:function size:0xD8 -fn_1_5C04 = .text:0x00005C04; // type:function size:0x1538 -fn_1_713C = .text:0x0000713C; // type:function size:0x3B8 -fn_1_74F4 = .text:0x000074F4; // type:function size:0x464 -fn_1_7958 = .text:0x00007958; // type:function size:0xD4 -fn_1_7A2C = .text:0x00007A2C; // type:function size:0x610 -fn_1_803C = .text:0x0000803C; // type:function size:0x4DC -fn_1_8518 = .text:0x00008518; // type:function size:0x414 -fn_1_892C = .text:0x0000892C; // type:function size:0x174 -fn_1_8AA0 = .text:0x00008AA0; // type:function size:0x2B8 -fn_1_8D58 = .text:0x00008D58; // type:function size:0x11E8 -fn_1_9F40 = .text:0x00009F40; // type:function size:0x570 -fn_1_A4B0 = .text:0x0000A4B0; // type:function size:0x59C -fn_1_AA4C = .text:0x0000AA4C; // type:function size:0xD0 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 -lbl_1_data_10 = .data:0x00000010; // type:object size:0xC data:4byte -lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC -lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:4byte -lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:4byte -lbl_1_data_40 = .data:0x00000040; // type:object size:0xC -lbl_1_data_4C = .data:0x0000004C; // type:object size:0xC data:4byte -lbl_1_data_58 = .data:0x00000058; // type:object size:0xC data:4byte -lbl_1_data_64 = .data:0x00000064; // type:object size:0xC -lbl_1_data_70 = .data:0x00000070; // type:object size:0xC data:4byte -lbl_1_data_7C = .data:0x0000007C; // type:object size:0xC -lbl_1_data_88 = .data:0x00000088; // type:object size:0xC -lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 -lbl_1_data_98 = .data:0x00000098; // type:object size:0xC -lbl_1_data_A4 = .data:0x000000A4; // type:object size:0xC -lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x200 -lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x8 -lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0xC -lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x10 -lbl_1_data_2D4 = .data:0x000002D4; // type:object size:0x40 -lbl_1_data_314 = .data:0x00000314; // type:object size:0xC -lbl_1_data_320 = .data:0x00000320; // type:object size:0x6 -lbl_1_data_326 = .data:0x00000326; // type:object size:0x6 -lbl_1_data_32C = .data:0x0000032C; // type:object size:0x24 -lbl_1_data_350 = .data:0x00000350; // type:object size:0x18 -lbl_1_data_368 = .data:0x00000368; // type:object size:0x4 -lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC -lbl_1_data_378 = .data:0x00000378; // type:object size:0xC -lbl_1_data_384 = .data:0x00000384; // type:object size:0xC -lbl_1_data_390 = .data:0x00000390; // type:object size:0xC -lbl_1_data_39C = .data:0x0000039C; // type:object size:0x50 -lbl_1_data_3EC = .data:0x000003EC; // type:object size:0x50 -lbl_1_data_43C = .data:0x0000043C; // type:object size:0x50 -lbl_1_data_48C = .data:0x0000048C; // type:object size:0x50 -lbl_1_data_4DC = .data:0x000004DC; // type:object size:0x18 data:string -lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0x9 data:string -lbl_1_data_4FD = .data:0x000004FD; // type:object size:0x6 data:string -lbl_1_data_503 = .data:0x00000503; // type:object size:0x1D data:string -jumptable_1_data_520 = .data:0x00000520; // type:object size:0x40 scope:local -lbl_1_data_560 = .data:0x00000560; // type:object size:0x8 data:string -lbl_1_data_568 = .data:0x00000568; // type:object size:0x1C -jumptable_1_data_584 = .data:0x00000584; // type:object size:0x24 scope:local -lbl_1_data_5A8 = .data:0x000005A8; // type:object size:0x24 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte -lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x6 -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x6 -lbl_1_bss_1E = .bss:0x0000001E; // type:object size:0x2 data:2byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:4byte -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte -lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x100 -lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x40 data:4byte -lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:float -lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x4 data:4byte -lbl_1_bss_198 = .bss:0x00000198; // type:object size:0x4 data:4byte -lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x2 data:2byte -lbl_1_bss_19E = .bss:0x0000019E; // type:object size:0x2 data:2byte -lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 data:4byte -lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 data:4byte -lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x4 data:4byte -lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0xC data:4byte -lbl_1_bss_1B8 = .bss:0x000001B8; // type:object size:0xC data:4byte -lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0xC data:4byte -lbl_1_bss_1D0 = .bss:0x000001D0; // type:object size:0xC data:4byte -lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0x4 data:4byte -lbl_1_bss_1E0 = .bss:0x000001E0; // type:object size:0x18 data:4byte -lbl_1_bss_1F8 = .bss:0x000001F8; // type:object size:0xC data:4byte diff --git a/config/GMPJ01_00/rels/m442Dll/splits.txt b/config/GMPJ01_00/rels/m442Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m442Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m442Dll/symbols.txt b/config/GMPJ01_00/rels/m442Dll/symbols.txt deleted file mode 100644 index 2e955733..00000000 --- a/config/GMPJ01_00/rels/m442Dll/symbols.txt +++ /dev/null @@ -1,225 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x2D4 -fn_1_374 = .text:0x00000374; // type:function size:0x10 -fn_1_384 = .text:0x00000384; // type:function size:0x10 -fn_1_394 = .text:0x00000394; // type:function size:0xB4 -fn_1_448 = .text:0x00000448; // type:function size:0x5E8 -fn_1_A30 = .text:0x00000A30; // type:function size:0x60 -fn_1_A90 = .text:0x00000A90; // type:function size:0x30C -fn_1_D9C = .text:0x00000D9C; // type:function size:0x68 -fn_1_E04 = .text:0x00000E04; // type:function size:0x84 -fn_1_E88 = .text:0x00000E88; // type:function size:0x378 -fn_1_1200 = .text:0x00001200; // type:function size:0x30 -fn_1_1230 = .text:0x00001230; // type:function size:0xDE0 -fn_1_2010 = .text:0x00002010; // type:function size:0x244 -fn_1_2254 = .text:0x00002254; // type:function size:0xFA8 -fn_1_31FC = .text:0x000031FC; // type:function size:0x3B0 -fn_1_35AC = .text:0x000035AC; // type:function size:0xAC -fn_1_3658 = .text:0x00003658; // type:function size:0x160 -fn_1_37B8 = .text:0x000037B8; // type:function size:0x150 -fn_1_3908 = .text:0x00003908; // type:function size:0x1DC -fn_1_3AE4 = .text:0x00003AE4; // type:function size:0x13C -fn_1_3C20 = .text:0x00003C20; // type:function size:0x74 -fn_1_3C94 = .text:0x00003C94; // type:function size:0x180 -fn_1_3E14 = .text:0x00003E14; // type:function size:0x50 -fn_1_3E64 = .text:0x00003E64; // type:function size:0x58 -fn_1_3EBC = .text:0x00003EBC; // type:function size:0x4 -fn_1_3EC0 = .text:0x00003EC0; // type:function size:0x4A4 -fn_1_4364 = .text:0x00004364; // type:function size:0x4 -fn_1_4368 = .text:0x00004368; // type:function size:0xDC -fn_1_4444 = .text:0x00004444; // type:function size:0x418 -fn_1_485C = .text:0x0000485C; // type:function size:0xC6C -fn_1_54C8 = .text:0x000054C8; // type:function size:0x450 -fn_1_5918 = .text:0x00005918; // type:function size:0xA8 -fn_1_59C0 = .text:0x000059C0; // type:function size:0x88 -fn_1_5A48 = .text:0x00005A48; // type:function size:0x494 -fn_1_5EDC = .text:0x00005EDC; // type:function size:0x5D8 -fn_1_64B4 = .text:0x000064B4; // type:function size:0x700 -fn_1_6BB4 = .text:0x00006BB4; // type:function size:0x114 -fn_1_6CC8 = .text:0x00006CC8; // type:function size:0x5C -fn_1_6D24 = .text:0x00006D24; // type:function size:0x5A0 -fn_1_72C4 = .text:0x000072C4; // type:function size:0x318 -fn_1_75DC = .text:0x000075DC; // type:function size:0x158 -fn_1_7734 = .text:0x00007734; // type:function size:0x114 -fn_1_7848 = .text:0x00007848; // type:function size:0x48 -fn_1_7890 = .text:0x00007890; // type:function size:0x3FC -fn_1_7C8C = .text:0x00007C8C; // type:function size:0x230 -fn_1_7EBC = .text:0x00007EBC; // type:function size:0x664 -fn_1_8520 = .text:0x00008520; // type:function size:0xC8 -fn_1_85E8 = .text:0x000085E8; // type:function size:0x104 -fn_1_86EC = .text:0x000086EC; // type:function size:0x4C -fn_1_8738 = .text:0x00008738; // type:function size:0x250 -fn_1_8988 = .text:0x00008988; // type:function size:0x764 -fn_1_90EC = .text:0x000090EC; // type:function size:0x10 -fn_1_90FC = .text:0x000090FC; // type:function size:0xB0 -fn_1_91AC = .text:0x000091AC; // type:function size:0x28C -fn_1_9438 = .text:0x00009438; // type:function size:0x74 -fn_1_94AC = .text:0x000094AC; // type:function size:0x50 -fn_1_94FC = .text:0x000094FC; // type:function size:0x24 -fn_1_9520 = .text:0x00009520; // type:function size:0x30 -fn_1_9550 = .text:0x00009550; // type:function size:0x1BC -fn_1_970C = .text:0x0000970C; // type:function size:0x78 -fn_1_9784 = .text:0x00009784; // type:function size:0x88 -fn_1_980C = .text:0x0000980C; // type:function size:0x164 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x10 data:4byte -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0xC data:4byte -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float -lbl_1_data_54 = .data:0x00000054; // type:object size:0xC data:float -lbl_1_data_60 = .data:0x00000060; // type:object size:0xC data:float -lbl_1_data_6C = .data:0x0000006C; // type:object size:0x4 -lbl_1_data_70 = .data:0x00000070; // type:object size:0xC -lbl_1_data_7C = .data:0x0000007C; // type:object size:0xC -lbl_1_data_88 = .data:0x00000088; // type:object size:0x24 -lbl_1_data_AC = .data:0x000000AC; // type:object size:0x4 data:4byte -jumptable_1_data_B0 = .data:0x000000B0; // type:object size:0x30 scope:local -lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x1C data:string -lbl_1_data_FC = .data:0x000000FC; // type:object size:0x1C -lbl_1_data_118 = .data:0x00000118; // type:object size:0x8 -lbl_1_data_120 = .data:0x00000120; // type:object size:0x30 -lbl_1_data_150 = .data:0x00000150; // type:object size:0x1A -lbl_1_data_16A = .data:0x0000016A; // type:object size:0x20 -lbl_1_data_18A = .data:0x0000018A; // type:object size:0x16 -lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0xC -lbl_1_data_1AC = .data:0x000001AC; // type:object size:0xC data:string -lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0x1 data:byte -lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x1 data:byte -lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x30 -lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x1 data:byte -lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x24 -lbl_1_data_218 = .data:0x00000218; // type:object size:0x1 data:byte -lbl_1_data_21C = .data:0x0000021C; // type:object size:0x20 -lbl_1_data_23C = .data:0x0000023C; // type:object size:0xC -lbl_1_data_248 = .data:0x00000248; // type:object size:0x8 -lbl_1_data_250 = .data:0x00000250; // type:object size:0x8 data:float -lbl_1_data_258 = .data:0x00000258; // type:object size:0x10 -lbl_1_data_268 = .data:0x00000268; // type:object size:0xC -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte -lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0xC data:float -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x3C -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0xC000 data:2byte -lbl_1_bss_C05C = .bss:0x0000C05C; // type:object size:0x28 data:2byte -lbl_1_bss_C084 = .bss:0x0000C084; // type:object size:0x974 -lbl_1_bss_C9F8 = .bss:0x0000C9F8; // type:object size:0x5000 data:4byte -lbl_1_bss_119F8 = .bss:0x000119F8; // type:object size:0x4 data:4byte -lbl_1_bss_119FC = .bss:0x000119FC; // type:object size:0x271 -lbl_1_bss_11C6D = .bss:0x00011C6D; // type:object size:0x273 -lbl_1_bss_11EE0 = .bss:0x00011EE0; // type:object size:0x4 data:4byte -lbl_1_bss_11EE4 = .bss:0x00011EE4; // type:object size:0x4 data:4byte -lbl_1_bss_11EE8 = .bss:0x00011EE8; // type:object size:0x2 data:2byte -lbl_1_bss_11EEC = .bss:0x00011EEC; // type:object size:0x10 -lbl_1_bss_11EFC = .bss:0x00011EFC; // type:object size:0x4 data:4byte -lbl_1_bss_11F00 = .bss:0x00011F00; // type:object size:0x4 data:4byte -lbl_1_bss_11F04 = .bss:0x00011F04; // type:object size:0xC -lbl_1_bss_11F10 = .bss:0x00011F10; // type:object size:0x4 data:4byte -lbl_1_bss_11F14 = .bss:0x00011F14; // type:object size:0x2 data:2byte -lbl_1_bss_11F16 = .bss:0x00011F16; // type:object size:0x2 data:2byte -lbl_1_bss_11F18 = .bss:0x00011F18; // type:object size:0x2 data:2byte -lbl_1_bss_11F1A = .bss:0x00011F1A; // type:object size:0x2 data:2byte -lbl_1_bss_11F1C = .bss:0x00011F1C; // type:object size:0x2 data:2byte -lbl_1_bss_11F20 = .bss:0x00011F20; // type:object size:0x4 data:4byte -lbl_1_bss_11F24 = .bss:0x00011F24; // type:object size:0x4 data:4byte -lbl_1_bss_11F28 = .bss:0x00011F28; // type:object size:0x4 data:4byte -lbl_1_bss_11F2C = .bss:0x00011F2C; // type:object size:0x4 data:4byte -lbl_1_bss_11F30 = .bss:0x00011F30; // type:object size:0x8 data:4byte -lbl_1_bss_11F38 = .bss:0x00011F38; // type:object size:0x4 data:4byte -lbl_1_bss_11F3C = .bss:0x00011F3C; // type:object size:0x4 data:4byte -lbl_1_bss_11F40 = .bss:0x00011F40; // type:object size:0x8 data:4byte -lbl_1_bss_11F48 = .bss:0x00011F48; // type:object size:0x4 data:4byte -lbl_1_bss_11F4C = .bss:0x00011F4C; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m443Dll/splits.txt b/config/GMPJ01_00/rels/m443Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m443Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m443Dll/symbols.txt b/config/GMPJ01_00/rels/m443Dll/symbols.txt deleted file mode 100644 index b5924ac6..00000000 --- a/config/GMPJ01_00/rels/m443Dll/symbols.txt +++ /dev/null @@ -1,330 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x380 -fn_1_420 = .text:0x00000420; // type:function size:0xC4 -fn_1_4E4 = .text:0x000004E4; // type:function size:0xA0 -fn_1_584 = .text:0x00000584; // type:function size:0x14C -fn_1_6D0 = .text:0x000006D0; // type:function size:0x2E0 -fn_1_9B0 = .text:0x000009B0; // type:function size:0x330 -fn_1_CE0 = .text:0x00000CE0; // type:function size:0x1EC -fn_1_ECC = .text:0x00000ECC; // type:function size:0x3C8 -fn_1_1294 = .text:0x00001294; // type:function size:0x544 -fn_1_17D8 = .text:0x000017D8; // type:function size:0x4C0 -fn_1_1C98 = .text:0x00001C98; // type:function size:0xF4 -fn_1_1D8C = .text:0x00001D8C; // type:function size:0x704 -fn_1_2490 = .text:0x00002490; // type:function size:0x114 -fn_1_25A4 = .text:0x000025A4; // type:function size:0x834 -fn_1_2DD8 = .text:0x00002DD8; // type:function size:0x17C -fn_1_2F54 = .text:0x00002F54; // type:function size:0x36C -fn_1_32C0 = .text:0x000032C0; // type:function size:0xB0 -fn_1_3370 = .text:0x00003370; // type:function size:0x3A0 -fn_1_3710 = .text:0x00003710; // type:function size:0x60 -fn_1_3770 = .text:0x00003770; // type:function size:0x608 -fn_1_3D78 = .text:0x00003D78; // type:function size:0x270 -fn_1_3FE8 = .text:0x00003FE8; // type:function size:0x14 -fn_1_3FFC = .text:0x00003FFC; // type:function size:0x14 -fn_1_4010 = .text:0x00004010; // type:function size:0x9C -fn_1_40AC = .text:0x000040AC; // type:function size:0x9C -fn_1_4148 = .text:0x00004148; // type:function size:0x68 -fn_1_41B0 = .text:0x000041B0; // type:function size:0x6C -fn_1_421C = .text:0x0000421C; // type:function size:0x98 -fn_1_42B4 = .text:0x000042B4; // type:function size:0x18 -fn_1_42CC = .text:0x000042CC; // type:function size:0x18 -fn_1_42E4 = .text:0x000042E4; // type:function size:0x18 -fn_1_42FC = .text:0x000042FC; // type:function size:0x18 -fn_1_4314 = .text:0x00004314; // type:function size:0x54 -fn_1_4368 = .text:0x00004368; // type:function size:0x44 -fn_1_43AC = .text:0x000043AC; // type:function size:0x30 -fn_1_43DC = .text:0x000043DC; // type:function size:0x30 -fn_1_440C = .text:0x0000440C; // type:function size:0x38 -fn_1_4444 = .text:0x00004444; // type:function size:0x208 -fn_1_464C = .text:0x0000464C; // type:function size:0x240 -fn_1_488C = .text:0x0000488C; // type:function size:0x11C -fn_1_49A8 = .text:0x000049A8; // type:function size:0xB4 -fn_1_4A5C = .text:0x00004A5C; // type:function size:0x54 -fn_1_4AB0 = .text:0x00004AB0; // type:function size:0x4 -fn_1_4AB4 = .text:0x00004AB4; // type:function size:0x260 -fn_1_4D14 = .text:0x00004D14; // type:function size:0x730 -fn_1_5444 = .text:0x00005444; // type:function size:0x218 -fn_1_565C = .text:0x0000565C; // type:function size:0x24 -fn_1_5680 = .text:0x00005680; // type:function size:0x554 -fn_1_5BD4 = .text:0x00005BD4; // type:function size:0x884 -fn_1_6458 = .text:0x00006458; // type:function size:0x21C -fn_1_6674 = .text:0x00006674; // type:function size:0xDC -fn_1_6750 = .text:0x00006750; // type:function size:0x264 -fn_1_69B4 = .text:0x000069B4; // type:function size:0x1DC -fn_1_6B90 = .text:0x00006B90; // type:function size:0x218 -fn_1_6DA8 = .text:0x00006DA8; // type:function size:0x388 -fn_1_7130 = .text:0x00007130; // type:function size:0x210 -fn_1_7340 = .text:0x00007340; // type:function size:0xDF8 -fn_1_8138 = .text:0x00008138; // type:function size:0x18C -fn_1_82C4 = .text:0x000082C4; // type:function size:0x74 -fn_1_8338 = .text:0x00008338; // type:function size:0x1D0 -fn_1_8508 = .text:0x00008508; // type:function size:0x178 -fn_1_8680 = .text:0x00008680; // type:function size:0x2D8 -fn_1_8958 = .text:0x00008958; // type:function size:0x38 -fn_1_8990 = .text:0x00008990; // type:function size:0x138 -fn_1_8AC8 = .text:0x00008AC8; // type:function size:0x1A0 -fn_1_8C68 = .text:0x00008C68; // type:function size:0x24 -fn_1_8C8C = .text:0x00008C8C; // type:function size:0x74 -fn_1_8D00 = .text:0x00008D00; // type:function size:0x74 -fn_1_8D74 = .text:0x00008D74; // type:function size:0x18 -fn_1_8D8C = .text:0x00008D8C; // type:function size:0x54 -fn_1_8DE0 = .text:0x00008DE0; // type:function size:0x54 -fn_1_8E34 = .text:0x00008E34; // type:function size:0x1C8 -fn_1_8FFC = .text:0x00008FFC; // type:function size:0x5A8 -fn_1_95A4 = .text:0x000095A4; // type:function size:0x94 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x50 -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x14 data:4byte -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x10 data:4byte -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x10 data:4byte -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC data:4byte -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x34 data:4byte -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x10 data:4byte -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x40 data:4byte -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x10 data:4byte -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x10 data:4byte -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x20 data:4byte -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0xC -lbl_1_data_C = .data:0x0000000C; // type:object size:0xC -lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float -lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 -lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float -lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float -lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float -lbl_1_data_4C = .data:0x0000004C; // type:object size:0x14 data:string -lbl_1_data_60 = .data:0x00000060; // type:object size:0x48 -lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x48 -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x18 -lbl_1_data_108 = .data:0x00000108; // type:object size:0x80 -lbl_1_data_188 = .data:0x00000188; // type:object size:0x80 -lbl_1_data_208 = .data:0x00000208; // type:object size:0x1 data:byte -lbl_1_data_20C = .data:0x0000020C; // type:object size:0x1A data:string -lbl_1_data_226 = .data:0x00000226; // type:object size:0x1A -lbl_1_data_240 = .data:0x00000240; // type:object size:0x18 -lbl_1_data_258 = .data:0x00000258; // type:object size:0x2C -lbl_1_data_284 = .data:0x00000284; // type:object size:0x40 -lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x10 -lbl_1_data_2D4 = .data:0x000002D4; // type:object size:0x50 -lbl_1_data_324 = .data:0x00000324; // type:object size:0x10 -lbl_1_data_334 = .data:0x00000334; // type:object size:0x10 -lbl_1_data_344 = .data:0x00000344; // type:object size:0x10 -lbl_1_data_354 = .data:0x00000354; // type:object size:0x10 -lbl_1_data_364 = .data:0x00000364; // type:object size:0x30 -lbl_1_data_394 = .data:0x00000394; // type:object size:0x30 -lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x30 -lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x5 data:string -lbl_1_data_3F9 = .data:0x000003F9; // type:object size:0x7 data:string -lbl_1_data_400 = .data:0x00000400; // type:object size:0x7 data:string -lbl_1_data_407 = .data:0x00000407; // type:object size:0x9 -lbl_1_data_410 = .data:0x00000410; // type:object size:0x58 -lbl_1_data_468 = .data:0x00000468; // type:object size:0x20 -lbl_1_data_488 = .data:0x00000488; // type:object size:0x58 -lbl_1_data_4E0 = .data:0x000004E0; // type:object size:0x10 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x3C data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x2 data:2byte -lbl_1_bss_56 = .bss:0x00000056; // type:object size:0x2 data:2byte -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x2 data:2byte -lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x2 data:2byte -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x8 data:2byte -lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte -lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte -lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte -lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte -lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x18 -lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x10 diff --git a/config/GMPJ01_00/rels/m445Dll/splits.txt b/config/GMPJ01_00/rels/m445Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m445Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m445Dll/symbols.txt b/config/GMPJ01_00/rels/m445Dll/symbols.txt deleted file mode 100644 index 1f0a49de..00000000 --- a/config/GMPJ01_00/rels/m445Dll/symbols.txt +++ /dev/null @@ -1,173 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x418 -fn_1_4B8 = .text:0x000004B8; // type:function size:0x54 -fn_1_50C = .text:0x0000050C; // type:function size:0x4 -fn_1_510 = .text:0x00000510; // type:function size:0x10 -fn_1_520 = .text:0x00000520; // type:function size:0x30 -fn_1_550 = .text:0x00000550; // type:function size:0x1308 -fn_1_1858 = .text:0x00001858; // type:function size:0x80 -fn_1_18D8 = .text:0x000018D8; // type:function size:0x5C -fn_1_1934 = .text:0x00001934; // type:function size:0x34 -fn_1_1968 = .text:0x00001968; // type:function size:0x168 -fn_1_1AD0 = .text:0x00001AD0; // type:function size:0x3C -fn_1_1B0C = .text:0x00001B0C; // type:function size:0x158 -fn_1_1C64 = .text:0x00001C64; // type:function size:0xF90 -fn_1_2BF4 = .text:0x00002BF4; // type:function size:0xB8 -fn_1_2CAC = .text:0x00002CAC; // type:function size:0x1BC -fn_1_2E68 = .text:0x00002E68; // type:function size:0xD0 -fn_1_2F38 = .text:0x00002F38; // type:function size:0xD8 -fn_1_3010 = .text:0x00003010; // type:function size:0x84 -fn_1_3094 = .text:0x00003094; // type:function size:0x80 -fn_1_3114 = .text:0x00003114; // type:function size:0x220 -fn_1_3334 = .text:0x00003334; // type:function size:0x214 -fn_1_3548 = .text:0x00003548; // type:function size:0xD58 -fn_1_42A0 = .text:0x000042A0; // type:function size:0x104 -fn_1_43A4 = .text:0x000043A4; // type:function size:0x22C -fn_1_45D0 = .text:0x000045D0; // type:function size:0xFAC -fn_1_557C = .text:0x0000557C; // type:function size:0x74 -fn_1_55F0 = .text:0x000055F0; // type:function size:0x74 -fn_1_5664 = .text:0x00005664; // type:function size:0x9C -fn_1_5700 = .text:0x00005700; // type:function size:0xB68 -fn_1_6268 = .text:0x00006268; // type:function size:0x1D58 -fn_1_7FC0 = .text:0x00007FC0; // type:function size:0x360 -fn_1_8320 = .text:0x00008320; // type:function size:0x618 -fn_1_8938 = .text:0x00008938; // type:function size:0x80 -fn_1_89B8 = .text:0x000089B8; // type:function size:0x60 -fn_1_8A18 = .text:0x00008A18; // type:function size:0x33C -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x40 -lbl_1_data_40 = .data:0x00000040; // type:object size:0x20 -lbl_1_data_60 = .data:0x00000060; // type:object size:0x18 -lbl_1_data_78 = .data:0x00000078; // type:object size:0x18 -lbl_1_data_90 = .data:0x00000090; // type:object size:0x40 -lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x40 -lbl_1_data_110 = .data:0x00000110; // type:object size:0x40 -lbl_1_data_150 = .data:0x00000150; // type:object size:0x12 data:string -lbl_1_data_162 = .data:0x00000162; // type:object size:0x12 data:string -lbl_1_data_174 = .data:0x00000174; // type:object size:0x13 data:string -lbl_1_data_187 = .data:0x00000187; // type:object size:0x13 data:string -lbl_1_data_19A = .data:0x0000019A; // type:object size:0x14 data:string -lbl_1_data_1AE = .data:0x000001AE; // type:object size:0x14 data:string -lbl_1_data_1C2 = .data:0x000001C2; // type:object size:0x10 data:string -lbl_1_data_1D2 = .data:0x000001D2; // type:object size:0x10 data:string -lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0x13 data:string -lbl_1_data_1F5 = .data:0x000001F5; // type:object size:0xF data:string -lbl_1_data_204 = .data:0x00000204; // type:object size:0xE data:string -lbl_1_data_212 = .data:0x00000212; // type:object size:0xE -lbl_1_data_220 = .data:0x00000220; // type:object size:0x40 -lbl_1_data_260 = .data:0x00000260; // type:object size:0x20 -lbl_1_data_280 = .data:0x00000280; // type:object size:0xF data:string -lbl_1_data_28F = .data:0x0000028F; // type:object size:0xB data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:float -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0xC data:float -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0xC data:float -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x28 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x230 -lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x300 data:2byte -lbl_1_bss_588 = .bss:0x00000588; // type:object size:0x13C data:4byte -lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x4 data:4byte -lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x4 data:4byte -lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0xC data:4byte -lbl_1_bss_6D8 = .bss:0x000006D8; // type:object size:0x4 data:4byte -lbl_1_bss_6DC = .bss:0x000006DC; // type:object size:0x4 data:4byte -lbl_1_bss_6E0 = .bss:0x000006E0; // type:object size:0x2 data:2byte -lbl_1_bss_6E2 = .bss:0x000006E2; // type:object size:0x2 data:2byte -lbl_1_bss_6E6 = .bss:0x000006E6; // type:object size:0x2 data:2byte diff --git a/config/GMPJ01_00/rels/m446dll/splits.txt b/config/GMPJ01_00/rels/m446dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m446dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m446dll/symbols.txt b/config/GMPJ01_00/rels/m446dll/symbols.txt deleted file mode 100644 index ad45d2b5..00000000 --- a/config/GMPJ01_00/rels/m446dll/symbols.txt +++ /dev/null @@ -1,305 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x9C -fn_1_13C = .text:0x0000013C; // type:function size:0x168 -fn_1_2A4 = .text:0x000002A4; // type:function size:0x158 -fn_1_3FC = .text:0x000003FC; // type:function size:0xB8 -fn_1_4B4 = .text:0x000004B4; // type:function size:0x88 -fn_1_53C = .text:0x0000053C; // type:function size:0x41C -fn_1_958 = .text:0x00000958; // type:function size:0x220 -fn_1_B78 = .text:0x00000B78; // type:function size:0x94 -fn_1_C0C = .text:0x00000C0C; // type:function size:0x94 -fn_1_CA0 = .text:0x00000CA0; // type:function size:0xB5C -fn_1_17FC = .text:0x000017FC; // type:function size:0x40 -fn_1_183C = .text:0x0000183C; // type:function size:0x38 -fn_1_1874 = .text:0x00001874; // type:function size:0x3C -fn_1_18B0 = .text:0x000018B0; // type:function size:0x3C -fn_1_18EC = .text:0x000018EC; // type:function size:0x84 -fn_1_1970 = .text:0x00001970; // type:function size:0x64 -fn_1_19D4 = .text:0x000019D4; // type:function size:0x290 -fn_1_1C64 = .text:0x00001C64; // type:function size:0x94 -fn_1_1CF8 = .text:0x00001CF8; // type:function size:0x38 -fn_1_1D30 = .text:0x00001D30; // type:function size:0x3C -fn_1_1D6C = .text:0x00001D6C; // type:function size:0x3C -fn_1_1DA8 = .text:0x00001DA8; // type:function size:0x34 -fn_1_1DDC = .text:0x00001DDC; // type:function size:0x10 -fn_1_1DEC = .text:0x00001DEC; // type:function size:0x8 -fn_1_1DF4 = .text:0x00001DF4; // type:function size:0x68 -fn_1_1E5C = .text:0x00001E5C; // type:function size:0x28 -fn_1_1E84 = .text:0x00001E84; // type:function size:0x44 -fn_1_1EC8 = .text:0x00001EC8; // type:function size:0x3C -fn_1_1F04 = .text:0x00001F04; // type:function size:0x34 -fn_1_1F38 = .text:0x00001F38; // type:function size:0x4C -fn_1_1F84 = .text:0x00001F84; // type:function size:0x3C -fn_1_1FC0 = .text:0x00001FC0; // type:function size:0x3C -fn_1_1FFC = .text:0x00001FFC; // type:function size:0x68 -fn_1_2064 = .text:0x00002064; // type:function size:0x18 -fn_1_207C = .text:0x0000207C; // type:function size:0x58 -fn_1_20D4 = .text:0x000020D4; // type:function size:0x338 -fn_1_240C = .text:0x0000240C; // type:function size:0x27C -fn_1_2688 = .text:0x00002688; // type:function size:0xA4 -fn_1_272C = .text:0x0000272C; // type:function size:0x68 -fn_1_2794 = .text:0x00002794; // type:function size:0x68 -fn_1_27FC = .text:0x000027FC; // type:function size:0x94 -fn_1_2890 = .text:0x00002890; // type:function size:0x98 -fn_1_2928 = .text:0x00002928; // type:function size:0x8C -fn_1_29B4 = .text:0x000029B4; // type:function size:0x68 -fn_1_2A1C = .text:0x00002A1C; // type:function size:0x3C -fn_1_2A58 = .text:0x00002A58; // type:function size:0x3C -fn_1_2A94 = .text:0x00002A94; // type:function size:0x14 -fn_1_2AA8 = .text:0x00002AA8; // type:function size:0x2EC -fn_1_2D94 = .text:0x00002D94; // type:function size:0x14 -fn_1_2DA8 = .text:0x00002DA8; // type:function size:0x118 -fn_1_2EC0 = .text:0x00002EC0; // type:function size:0xA4 -fn_1_2F64 = .text:0x00002F64; // type:function size:0x100 -fn_1_3064 = .text:0x00003064; // type:function size:0x11C -fn_1_3180 = .text:0x00003180; // type:function size:0x58 -fn_1_31D8 = .text:0x000031D8; // type:function size:0x2C8 -fn_1_34A0 = .text:0x000034A0; // type:function size:0x260 -fn_1_3700 = .text:0x00003700; // type:function size:0x154 -fn_1_3854 = .text:0x00003854; // type:function size:0x5C -fn_1_38B0 = .text:0x000038B0; // type:function size:0x30 -fn_1_38E0 = .text:0x000038E0; // type:function size:0x10 -fn_1_38F0 = .text:0x000038F0; // type:function size:0x34 -fn_1_3924 = .text:0x00003924; // type:function size:0x18 -fn_1_393C = .text:0x0000393C; // type:function size:0x58 -fn_1_3994 = .text:0x00003994; // type:function size:0x3C -fn_1_39D0 = .text:0x000039D0; // type:function size:0x17C -fn_1_3B4C = .text:0x00003B4C; // type:function size:0xA4 -fn_1_3BF0 = .text:0x00003BF0; // type:function size:0x2C4 -fn_1_3EB4 = .text:0x00003EB4; // type:function size:0x11C -fn_1_3FD0 = .text:0x00003FD0; // type:function size:0x30 -fn_1_4000 = .text:0x00004000; // type:function size:0x88 -fn_1_4088 = .text:0x00004088; // type:function size:0x624 -fn_1_46AC = .text:0x000046AC; // type:function size:0x24 -fn_1_46D0 = .text:0x000046D0; // type:function size:0x50 -fn_1_4720 = .text:0x00004720; // type:function size:0x78 -fn_1_4798 = .text:0x00004798; // type:function size:0x74 -fn_1_480C = .text:0x0000480C; // type:function size:0x18 -fn_1_4824 = .text:0x00004824; // type:function size:0x58 -fn_1_487C = .text:0x0000487C; // type:function size:0x284 -fn_1_4B00 = .text:0x00004B00; // type:function size:0x59C -fn_1_509C = .text:0x0000509C; // type:function size:0x11C -fn_1_51B8 = .text:0x000051B8; // type:function size:0x34C -fn_1_5504 = .text:0x00005504; // type:function size:0x144 -fn_1_5648 = .text:0x00005648; // type:function size:0x30 -fn_1_5678 = .text:0x00005678; // type:function size:0x4BC -fn_1_5B34 = .text:0x00005B34; // type:function size:0x14 -fn_1_5B48 = .text:0x00005B48; // type:function size:0xC8 -fn_1_5C10 = .text:0x00005C10; // type:function size:0x14 -fn_1_5C24 = .text:0x00005C24; // type:function size:0xC8 -fn_1_5CEC = .text:0x00005CEC; // type:function size:0x14 -fn_1_5D00 = .text:0x00005D00; // type:function size:0x154 -fn_1_5E54 = .text:0x00005E54; // type:function size:0x220 -fn_1_6074 = .text:0x00006074; // type:function size:0x1F0 -fn_1_6264 = .text:0x00006264; // type:function size:0x8C -fn_1_62F0 = .text:0x000062F0; // type:function size:0x8C -fn_1_637C = .text:0x0000637C; // type:function size:0x140 -fn_1_64BC = .text:0x000064BC; // type:function size:0xBC -fn_1_6578 = .text:0x00006578; // type:function size:0xA8 -fn_1_6620 = .text:0x00006620; // type:function size:0x158 -fn_1_6778 = .text:0x00006778; // type:function size:0x160 -fn_1_68D8 = .text:0x000068D8; // type:function size:0x4 -fn_1_68DC = .text:0x000068DC; // type:function size:0x5C4 -fn_1_6EA0 = .text:0x00006EA0; // type:function size:0x24 -fn_1_6EC4 = .text:0x00006EC4; // type:function size:0x24 -fn_1_6EE8 = .text:0x00006EE8; // type:function size:0x10 -fn_1_6EF8 = .text:0x00006EF8; // type:function size:0x194 -fn_1_708C = .text:0x0000708C; // type:function size:0x10 -fn_1_709C = .text:0x0000709C; // type:function size:0x244 -fn_1_72E0 = .text:0x000072E0; // type:function size:0x18 -fn_1_72F8 = .text:0x000072F8; // type:function size:0x58 -fn_1_7350 = .text:0x00007350; // type:function size:0x1A4 -fn_1_74F4 = .text:0x000074F4; // type:function size:0x1F4 -fn_1_76E8 = .text:0x000076E8; // type:function size:0xE0 -fn_1_77C8 = .text:0x000077C8; // type:function size:0xBC -fn_1_7884 = .text:0x00007884; // type:function size:0x84 -fn_1_7908 = .text:0x00007908; // type:function size:0x94 -fn_1_799C = .text:0x0000799C; // type:function size:0x9C -fn_1_7A38 = .text:0x00007A38; // type:function size:0x7C -fn_1_7AB4 = .text:0x00007AB4; // type:function size:0x13C -fn_1_7BF0 = .text:0x00007BF0; // type:function size:0x18 -fn_1_7C08 = .text:0x00007C08; // type:function size:0x58 -fn_1_7C60 = .text:0x00007C60; // type:function size:0x460 -fn_1_80C0 = .text:0x000080C0; // type:function size:0x330 -fn_1_83F0 = .text:0x000083F0; // type:function size:0xBC -fn_1_84AC = .text:0x000084AC; // type:function size:0x80 -fn_1_852C = .text:0x0000852C; // type:function size:0xE0 -fn_1_860C = .text:0x0000860C; // type:function size:0xC -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x30 data:4byte -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x14 -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x14 -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x28 -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x18 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0xC -lbl_1_data_C = .data:0x0000000C; // type:object size:0xC -lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 data:float -lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC -lbl_1_data_28 = .data:0x00000028; // type:object size:0xC -lbl_1_data_34 = .data:0x00000034; // type:object size:0x4 -lbl_1_data_38 = .data:0x00000038; // type:object size:0x18 -lbl_1_data_50 = .data:0x00000050; // type:object size:0x18 -lbl_1_data_68 = .data:0x00000068; // type:object size:0x8 -lbl_1_data_70 = .data:0x00000070; // type:object size:0x10 -lbl_1_data_80 = .data:0x00000080; // type:object size:0x20 -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x14 -jumptable_1_data_B4 = .data:0x000000B4; // type:object size:0x30 scope:local -jumptable_1_data_E4 = .data:0x000000E4; // type:object size:0x68 scope:local -lbl_1_data_150 = .data:0x00000150; // type:object size:0xC -lbl_1_data_15C = .data:0x0000015C; // type:object size:0x20 -jumptable_1_data_17C = .data:0x0000017C; // type:object size:0x2C scope:local -lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x1F data:string -lbl_1_data_1C7 = .data:0x000001C7; // type:object size:0x21 -lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x1E data:string -lbl_1_data_206 = .data:0x00000206; // type:object size:0x22 -lbl_1_data_228 = .data:0x00000228; // type:object size:0x24 -lbl_1_data_24C = .data:0x0000024C; // type:object size:0x90 -lbl_1_data_2DC = .data:0x000002DC; // type:object size:0x14 -lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x1F data:string -lbl_1_data_30F = .data:0x0000030F; // type:object size:0x1F data:string -lbl_1_data_32E = .data:0x0000032E; // type:object size:0x22 -jumptable_1_data_350 = .data:0x00000350; // type:object size:0x1C scope:local -lbl_1_data_37C = .data:0x0000037C; // type:object size:0x1E data:string -lbl_1_data_39A = .data:0x0000039A; // type:object size:0x1E data:string -lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x10 -lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x24 -lbl_1_data_3EC = .data:0x000003EC; // type:object size:0x24 -lbl_1_data_410 = .data:0x00000410; // type:object size:0x14 -lbl_1_data_424 = .data:0x00000424; // type:object size:0x3C -lbl_1_data_460 = .data:0x00000460; // type:object size:0x54 data:byte -lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x24 -lbl_1_data_4D8 = .data:0x000004D8; // type:object size:0x1E data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:4byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:4byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:float -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:float -lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:float -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0xC data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0xC data:4byte -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:float -lbl_1_bss_64 = .bss:0x00000064; // type:object size:0xC data:4byte -lbl_1_bss_70 = .bss:0x00000070; // type:object size:0xC data:4byte -lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:float -lbl_1_bss_80 = .bss:0x00000080; // type:object size:0xC data:float -lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0xC data:float -lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x8 data:4byte -lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m447dll/splits.txt b/config/GMPJ01_00/rels/m447dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m447dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m447dll/symbols.txt b/config/GMPJ01_00/rels/m447dll/symbols.txt deleted file mode 100644 index 2b4f2427..00000000 --- a/config/GMPJ01_00/rels/m447dll/symbols.txt +++ /dev/null @@ -1,309 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x8C -fn_1_12C = .text:0x0000012C; // type:function size:0x8C -fn_1_1B8 = .text:0x000001B8; // type:function size:0x284 -fn_1_43C = .text:0x0000043C; // type:function size:0x54 -fn_1_490 = .text:0x00000490; // type:function size:0x10 -fn_1_4A0 = .text:0x000004A0; // type:function size:0x10 -fn_1_4B0 = .text:0x000004B0; // type:function size:0x94 -fn_1_544 = .text:0x00000544; // type:function size:0x264 -fn_1_7A8 = .text:0x000007A8; // type:function size:0x3B4 -fn_1_B5C = .text:0x00000B5C; // type:function size:0x3D8 -fn_1_F34 = .text:0x00000F34; // type:function size:0x134 -fn_1_1068 = .text:0x00001068; // type:function size:0x32C -fn_1_1394 = .text:0x00001394; // type:function size:0x88 -fn_1_141C = .text:0x0000141C; // type:function size:0x68 -fn_1_1484 = .text:0x00001484; // type:function size:0x2D0 -fn_1_1754 = .text:0x00001754; // type:function size:0xDC -fn_1_1830 = .text:0x00001830; // type:function size:0x54 -fn_1_1884 = .text:0x00001884; // type:function size:0x278 -fn_1_1AFC = .text:0x00001AFC; // type:function size:0xFC -fn_1_1BF8 = .text:0x00001BF8; // type:function size:0xE8 -fn_1_1CE0 = .text:0x00001CE0; // type:function size:0x54 -fn_1_1D34 = .text:0x00001D34; // type:function size:0x5C -fn_1_1D90 = .text:0x00001D90; // type:function size:0xE0 -fn_1_1E70 = .text:0x00001E70; // type:function size:0x40 -fn_1_1EB0 = .text:0x00001EB0; // type:function size:0x10 -fn_1_1EC0 = .text:0x00001EC0; // type:function size:0x14 -fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x2C -fn_1_1F00 = .text:0x00001F00; // type:function size:0x9C -fn_1_1F9C = .text:0x00001F9C; // type:function size:0x50 -fn_1_1FEC = .text:0x00001FEC; // type:function size:0x8 -fn_1_1FF4 = .text:0x00001FF4; // type:function size:0x170 -fn_1_2164 = .text:0x00002164; // type:function size:0x1B8 -fn_1_231C = .text:0x0000231C; // type:function size:0x50 -fn_1_236C = .text:0x0000236C; // type:function size:0x124 -fn_1_2490 = .text:0x00002490; // type:function size:0x4 -fn_1_2494 = .text:0x00002494; // type:function size:0x150 -fn_1_25E4 = .text:0x000025E4; // type:function size:0x11C -fn_1_2700 = .text:0x00002700; // type:function size:0x33C -fn_1_2A3C = .text:0x00002A3C; // type:function size:0x2CC -fn_1_2D08 = .text:0x00002D08; // type:function size:0xA4 -fn_1_2DAC = .text:0x00002DAC; // type:function size:0x384 -fn_1_3130 = .text:0x00003130; // type:function size:0x1B0 -fn_1_32E0 = .text:0x000032E0; // type:function size:0x2C -fn_1_330C = .text:0x0000330C; // type:function size:0xBC -fn_1_33C8 = .text:0x000033C8; // type:function size:0xBC -fn_1_3484 = .text:0x00003484; // type:function size:0x98 -fn_1_351C = .text:0x0000351C; // type:function size:0x24 -fn_1_3540 = .text:0x00003540; // type:function size:0x24 -fn_1_3564 = .text:0x00003564; // type:function size:0x718 -fn_1_3C7C = .text:0x00003C7C; // type:function size:0x22C -fn_1_3EA8 = .text:0x00003EA8; // type:function size:0xDC -fn_1_3F84 = .text:0x00003F84; // type:function size:0x40 -fn_1_3FC4 = .text:0x00003FC4; // type:function size:0x33C -fn_1_4300 = .text:0x00004300; // type:function size:0xCC -fn_1_43CC = .text:0x000043CC; // type:function size:0x10 -fn_1_43DC = .text:0x000043DC; // type:function size:0x1C -fn_1_43F8 = .text:0x000043F8; // type:function size:0x4C -fn_1_4444 = .text:0x00004444; // type:function size:0x6C -fn_1_44B0 = .text:0x000044B0; // type:function size:0xE0 -fn_1_4590 = .text:0x00004590; // type:function size:0xA8 -fn_1_4638 = .text:0x00004638; // type:function size:0x48 -fn_1_4680 = .text:0x00004680; // type:function size:0x8C -fn_1_470C = .text:0x0000470C; // type:function size:0x54 -fn_1_4760 = .text:0x00004760; // type:function size:0x4 -fn_1_4764 = .text:0x00004764; // type:function size:0x520 -fn_1_4C84 = .text:0x00004C84; // type:function size:0x2F8 -fn_1_4F7C = .text:0x00004F7C; // type:function size:0x104 -fn_1_5080 = .text:0x00005080; // type:function size:0x218 -fn_1_5298 = .text:0x00005298; // type:function size:0x288 -fn_1_5520 = .text:0x00005520; // type:function size:0x240 -fn_1_5760 = .text:0x00005760; // type:function size:0x278 -fn_1_59D8 = .text:0x000059D8; // type:function size:0x118 -fn_1_5AF0 = .text:0x00005AF0; // type:function size:0xE0 -fn_1_5BD0 = .text:0x00005BD0; // type:function size:0xA8 -fn_1_5C78 = .text:0x00005C78; // type:function size:0xAA4 -fn_1_671C = .text:0x0000671C; // type:function size:0x9A0 -fn_1_70BC = .text:0x000070BC; // type:function size:0xC0 -fn_1_717C = .text:0x0000717C; // type:function size:0x80 -fn_1_71FC = .text:0x000071FC; // type:function size:0xAC -fn_1_72A8 = .text:0x000072A8; // type:function size:0x3E0 -fn_1_7688 = .text:0x00007688; // type:function size:0x220 -fn_1_78A8 = .text:0x000078A8; // type:function size:0xDC -fn_1_7984 = .text:0x00007984; // type:function size:0xB0 -fn_1_7A34 = .text:0x00007A34; // type:function size:0x38 -fn_1_7A6C = .text:0x00007A6C; // type:function size:0x38 -fn_1_7AA4 = .text:0x00007AA4; // type:function size:0xB0 -fn_1_7B54 = .text:0x00007B54; // type:function size:0x240 -fn_1_7D94 = .text:0x00007D94; // type:function size:0x1D0 -fn_1_7F64 = .text:0x00007F64; // type:function size:0x158 -fn_1_80BC = .text:0x000080BC; // type:function size:0x6E0 -fn_1_879C = .text:0x0000879C; // type:function size:0x220 -fn_1_89BC = .text:0x000089BC; // type:function size:0x43C -fn_1_8DF8 = .text:0x00008DF8; // type:function size:0x184 -fn_1_8F7C = .text:0x00008F7C; // type:function size:0x78 -fn_1_8FF4 = .text:0x00008FF4; // type:function size:0x10 -fn_1_9004 = .text:0x00009004; // type:function size:0xF8 -fn_1_90FC = .text:0x000090FC; // type:function size:0x10 -fn_1_910C = .text:0x0000910C; // type:function size:0x4C -fn_1_9158 = .text:0x00009158; // type:function size:0x1C8 -fn_1_9320 = .text:0x00009320; // type:function size:0x54 -fn_1_9374 = .text:0x00009374; // type:function size:0x1C4 -fn_1_9538 = .text:0x00009538; // type:function size:0x4 -fn_1_953C = .text:0x0000953C; // type:function size:0x21C -fn_1_9758 = .text:0x00009758; // type:function size:0x1C4 -fn_1_991C = .text:0x0000991C; // type:function size:0x2B0 -fn_1_9BCC = .text:0x00009BCC; // type:function size:0x120 -fn_1_9CEC = .text:0x00009CEC; // type:function size:0x200 -fn_1_9EEC = .text:0x00009EEC; // type:function size:0x54 -fn_1_9F40 = .text:0x00009F40; // type:function size:0x2F0 -fn_1_A230 = .text:0x0000A230; // type:function size:0x10 -fn_1_A240 = .text:0x0000A240; // type:function size:0x34 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x64 -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC data:4byte -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x18 -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x18 data:4byte -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x58 -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x3C -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x1 data:byte -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x144 -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x24 -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x60 -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x14 -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x20 -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x60 -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float -lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float -lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:float -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float -lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 data:double -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 data:double -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x8 data:double -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 data:double -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:float -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x50 -lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x50 -lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 data:float -lbl_1_rodata_69C = .rodata:0x0000069C; // type:object size:0x4 data:float -lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x4 data:float -lbl_1_rodata_6A4 = .rodata:0x000006A4; // type:object size:0x4 data:float -lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float -lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 data:float -lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x4 data:float -lbl_1_rodata_6B4 = .rodata:0x000006B4; // type:object size:0x4 data:float -lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 data:double -lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x4 data:float -lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x8 data:double -lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x4 data:float -lbl_1_rodata_6D4 = .rodata:0x000006D4; // type:object size:0x4 data:float -lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float -lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float -lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 data:float -lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 data:float -lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 data:float -lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 data:float -lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0x8 data:double -lbl_1_rodata_6F8 = .rodata:0x000006F8; // type:object size:0x4 data:float -lbl_1_rodata_700 = .rodata:0x00000700; // type:object size:0x8 data:double -lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x4 data:float -lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x8 data:double -lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 data:float -lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x8 data:double -lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float -lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float -lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float -lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x1 data:byte -lbl_1_rodata_738 = .rodata:0x00000738; // type:object size:0x4 data:float -lbl_1_rodata_73C = .rodata:0x0000073C; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x1C -lbl_1_data_1C = .data:0x0000001C; // type:object size:0x14 -jumptable_1_data_30 = .data:0x00000030; // type:object size:0x28 scope:local -jumptable_1_data_58 = .data:0x00000058; // type:object size:0x28 scope:local -jumptable_1_data_80 = .data:0x00000080; // type:object size:0x20 scope:local -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA8 -lbl_1_data_148 = .data:0x00000148; // type:object size:0x18 -lbl_1_data_160 = .data:0x00000160; // type:object size:0x1E data:string -lbl_1_data_17E = .data:0x0000017E; // type:object size:0x1E data:string -lbl_1_data_19C = .data:0x0000019C; // type:object size:0x14 -lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x1C -lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x2C -jumptable_1_data_1F8 = .data:0x000001F8; // type:object size:0x24 scope:local -lbl_1_data_21C = .data:0x0000021C; // type:object size:0x40 -lbl_1_data_25C = .data:0x0000025C; // type:object size:0x1C -lbl_1_data_278 = .data:0x00000278; // type:object size:0x1C -lbl_1_data_294 = .data:0x00000294; // type:object size:0x18 -lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x37 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:float -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:float -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x1C data:4byte -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x1C data:float -lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x1C data:float -lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x8 data:4byte -lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x8 data:4byte -lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte -lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x14 -lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m448Dll/splits.txt b/config/GMPJ01_00/rels/m448Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m448Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m448Dll/symbols.txt b/config/GMPJ01_00/rels/m448Dll/symbols.txt deleted file mode 100644 index 68a679da..00000000 --- a/config/GMPJ01_00/rels/m448Dll/symbols.txt +++ /dev/null @@ -1,200 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x2EC -fn_1_38C = .text:0x0000038C; // type:function size:0xEC -fn_1_478 = .text:0x00000478; // type:function size:0x84 -fn_1_4FC = .text:0x000004FC; // type:function size:0xE3C -fn_1_1338 = .text:0x00001338; // type:function size:0x2FD8 -fn_1_4310 = .text:0x00004310; // type:function size:0x2A9C -fn_1_6DAC = .text:0x00006DAC; // type:function size:0x39C -fn_1_7148 = .text:0x00007148; // type:function size:0xC7C -fn_1_7DC4 = .text:0x00007DC4; // type:function size:0x3FC -fn_1_81C0 = .text:0x000081C0; // type:function size:0xC10 -fn_1_8DD0 = .text:0x00008DD0; // type:function size:0x738 -fn_1_9508 = .text:0x00009508; // type:function size:0x154 -fn_1_965C = .text:0x0000965C; // type:function size:0x4A4 -fn_1_9B00 = .text:0x00009B00; // type:function size:0x120 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x14 data:4byte -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x14 data:4byte -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x14 data:4byte -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x14 data:4byte -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x14 data:4byte -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x10 data:4byte -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x10 data:4byte -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0xC data:4byte -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x54 -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x10 data:4byte -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:4byte -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x50 -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x50 -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x50 -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x24 data:4byte -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x34 data:4byte -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x24 data:4byte -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x50 -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x50 -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x18 data:4byte -lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x18 data:4byte -lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x8 data:4byte -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x28 data:4byte -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x28 data:4byte -lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0xC data:4byte -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0xC data:4byte -lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x1 data:byte -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float -lbl_1_rodata_5EC = .rodata:0x000005EC; // type:object size:0x4 data:float -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float -lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 data:float -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x28 -lbl_1_data_28 = .data:0x00000028; // type:object size:0x28 -lbl_1_data_50 = .data:0x00000050; // type:object size:0x2C -lbl_1_data_7C = .data:0x0000007C; // type:object size:0x2C -lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xB data:byte -lbl_1_data_B3 = .data:0x000000B3; // type:object size:0xD -lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x2C -lbl_1_data_EC = .data:0x000000EC; // type:object size:0x2C data:4byte -lbl_1_data_118 = .data:0x00000118; // type:object size:0x58 -lbl_1_data_170 = .data:0x00000170; // type:object size:0x8 data:4byte -lbl_1_data_178 = .data:0x00000178; // type:object size:0x20 -lbl_1_data_198 = .data:0x00000198; // type:object size:0x2 data:2byte -lbl_1_data_19A = .data:0x0000019A; // type:object size:0x2 data:2byte -lbl_1_data_19C = .data:0x0000019C; // type:object size:0x2 data:2byte -lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x4 data:4byte -lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x8 data:4byte -lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x8 -lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x8 -lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x20 -lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x10 data:float -lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x9 data:string -lbl_1_data_1F5 = .data:0x000001F5; // type:object size:0x1B -jumptable_1_data_210 = .data:0x00000210; // type:object size:0x2C scope:local -jumptable_1_data_23C = .data:0x0000023C; // type:object size:0x20 scope:local -lbl_1_data_25C = .data:0x0000025C; // type:object size:0x4 data:4byte -lbl_1_data_260 = .data:0x00000260; // type:object size:0x4 data:float -lbl_1_data_264 = .data:0x00000264; // type:object size:0x4 data:float -lbl_1_data_268 = .data:0x00000268; // type:object size:0x4 data:float -lbl_1_data_26C = .data:0x0000026C; // type:object size:0x4 data:float -jumptable_1_data_270 = .data:0x00000270; // type:object size:0x24 scope:local -jumptable_1_data_294 = .data:0x00000294; // type:object size:0x20 scope:local -lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x19 data:string -lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x24 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 data:4byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:float -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x20 -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte -lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte -lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte -lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte -lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte -lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte -lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte -lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte -lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte -lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte -lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x8 data:4byte -lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte -lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte -lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0xD0 data:4byte -lbl_1_bss_16C = .bss:0x0000016C; // type:object size:0x2D0 data:4byte diff --git a/config/GMPJ01_00/rels/m450Dll/splits.txt b/config/GMPJ01_00/rels/m450Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m450Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m450Dll/symbols.txt b/config/GMPJ01_00/rels/m450Dll/symbols.txt deleted file mode 100644 index 8f6a0e14..00000000 --- a/config/GMPJ01_00/rels/m450Dll/symbols.txt +++ /dev/null @@ -1,558 +0,0 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x24 -fn_1_24 = .text:0x00000024; // type:function size:0x88 -fn_1_AC = .text:0x000000AC; // type:function size:0xA4 -fn_1_150 = .text:0x00000150; // type:function size:0x24 -fn_1_174 = .text:0x00000174; // type:function size:0x164 -fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C -fn_1_414 = .text:0x00000414; // type:function size:0x58 -fn_1_46C = .text:0x0000046C; // type:function size:0x114 -fn_1_580 = .text:0x00000580; // type:function size:0x218 -fn_1_798 = .text:0x00000798; // type:function size:0x254 -fn_1_9EC = .text:0x000009EC; // type:function size:0x54 -fn_1_A40 = .text:0x00000A40; // type:function size:0x10C -fn_1_B4C = .text:0x00000B4C; // type:function size:0x6A8 -fn_1_11F4 = .text:0x000011F4; // type:function size:0x15C -fn_1_1350 = .text:0x00001350; // type:function size:0x8C -fn_1_13DC = .text:0x000013DC; // type:function size:0x334 -fn_1_1710 = .text:0x00001710; // type:function size:0x350 -fn_1_1A60 = .text:0x00001A60; // type:function size:0x2B8 -fn_1_1D18 = .text:0x00001D18; // type:function size:0x58 -fn_1_1D70 = .text:0x00001D70; // type:function size:0xB0 -fn_1_1E20 = .text:0x00001E20; // type:function size:0x104 -fn_1_1F24 = .text:0x00001F24; // type:function size:0x34 -fn_1_1F58 = .text:0x00001F58; // type:function size:0x6C -fn_1_1FC4 = .text:0x00001FC4; // type:function size:0x3F0 -fn_1_23B4 = .text:0x000023B4; // type:function size:0x64 -fn_1_2418 = .text:0x00002418; // type:function size:0xE0 -fn_1_24F8 = .text:0x000024F8; // type:function size:0x32C -fn_1_2824 = .text:0x00002824; // type:function size:0x3AC -fn_1_2BD0 = .text:0x00002BD0; // type:function size:0x30 -fn_1_2C00 = .text:0x00002C00; // type:function size:0x1C -fn_1_2C1C = .text:0x00002C1C; // type:function size:0x18C -fn_1_2DA8 = .text:0x00002DA8; // type:function size:0x8 -fn_1_2DB0 = .text:0x00002DB0; // type:function size:0x8 -fn_1_2DB8 = .text:0x00002DB8; // type:function size:0x8 -fn_1_2DC0 = .text:0x00002DC0; // type:function size:0x8 -fn_1_2DC8 = .text:0x00002DC8; // type:function size:0xC -fn_1_2DD4 = .text:0x00002DD4; // type:function size:0x60 -fn_1_2E34 = .text:0x00002E34; // type:function size:0xB90 -fn_1_39C4 = .text:0x000039C4; // type:function size:0x31C -fn_1_3CE0 = .text:0x00003CE0; // type:function size:0xD8 -fn_1_3DB8 = .text:0x00003DB8; // type:function size:0x114 -fn_1_3ECC = .text:0x00003ECC; // type:function size:0xB8 -fn_1_3F84 = .text:0x00003F84; // type:function size:0xA0 -fn_1_4024 = .text:0x00004024; // type:function size:0x9C -fn_1_40C0 = .text:0x000040C0; // type:function size:0xE18 -fn_1_4ED8 = .text:0x00004ED8; // type:function size:0x250 -fn_1_5128 = .text:0x00005128; // type:function size:0x10 -fn_1_5138 = .text:0x00005138; // type:function size:0x10 -fn_1_5148 = .text:0x00005148; // type:function size:0x400 -fn_1_5548 = .text:0x00005548; // type:function size:0x7C -fn_1_55C4 = .text:0x000055C4; // type:function size:0x5C -fn_1_5620 = .text:0x00005620; // type:function size:0xA4 -fn_1_56C4 = .text:0x000056C4; // type:function size:0x748 -fn_1_5E0C = .text:0x00005E0C; // type:function size:0xCC -fn_1_5ED8 = .text:0x00005ED8; // type:function size:0x658 -fn_1_6530 = .text:0x00006530; // type:function size:0x108 -fn_1_6638 = .text:0x00006638; // type:function size:0x38 -fn_1_6670 = .text:0x00006670; // type:function size:0x30 -fn_1_66A0 = .text:0x000066A0; // type:function size:0x3C -fn_1_66DC = .text:0x000066DC; // type:function size:0xBC -fn_1_6798 = .text:0x00006798; // type:function size:0x260 -fn_1_69F8 = .text:0x000069F8; // type:function size:0xD0 -fn_1_6AC8 = .text:0x00006AC8; // type:function size:0xC8 -fn_1_6B90 = .text:0x00006B90; // type:function size:0xD8 -fn_1_6C68 = .text:0x00006C68; // type:function size:0x48 -fn_1_6CB0 = .text:0x00006CB0; // type:function size:0x7C -fn_1_6D2C = .text:0x00006D2C; // type:function size:0x3C -fn_1_6D68 = .text:0x00006D68; // type:function size:0x70 -fn_1_6DD8 = .text:0x00006DD8; // type:function size:0x714 -fn_1_74EC = .text:0x000074EC; // type:function size:0x6A4 -fn_1_7B90 = .text:0x00007B90; // type:function size:0x84 -fn_1_7C14 = .text:0x00007C14; // type:function size:0x84 -fn_1_7C98 = .text:0x00007C98; // type:function size:0xA8 -fn_1_7D40 = .text:0x00007D40; // type:function size:0x3E0 -fn_1_8120 = .text:0x00008120; // type:function size:0x3E0 -fn_1_8500 = .text:0x00008500; // type:function size:0x6DC -fn_1_8BDC = .text:0x00008BDC; // type:function size:0x498 -fn_1_9074 = .text:0x00009074; // type:function size:0x64C -fn_1_96C0 = .text:0x000096C0; // type:function size:0x164 -fn_1_9824 = .text:0x00009824; // type:function size:0x380 -fn_1_9BA4 = .text:0x00009BA4; // type:function size:0x3A8 -fn_1_9F4C = .text:0x00009F4C; // type:function size:0x478 -fn_1_A3C4 = .text:0x0000A3C4; // type:function size:0xAC -fn_1_A470 = .text:0x0000A470; // type:function size:0x190 -fn_1_A600 = .text:0x0000A600; // type:function size:0x1CC -fn_1_A7CC = .text:0x0000A7CC; // type:function size:0x5C -fn_1_A828 = .text:0x0000A828; // type:function size:0x140 -fn_1_A968 = .text:0x0000A968; // type:function size:0x148 -fn_1_AAB0 = .text:0x0000AAB0; // type:function size:0xD8 -fn_1_AB88 = .text:0x0000AB88; // type:function size:0x48 -fn_1_ABD0 = .text:0x0000ABD0; // type:function size:0x188 -fn_1_AD58 = .text:0x0000AD58; // type:function size:0x2E98 -fn_1_DBF0 = .text:0x0000DBF0; // type:function size:0x4F8 -fn_1_E0E8 = .text:0x0000E0E8; // type:function size:0x90 -fn_1_E178 = .text:0x0000E178; // type:function size:0x30 -fn_1_E1A8 = .text:0x0000E1A8; // type:function size:0x114 -fn_1_E2BC = .text:0x0000E2BC; // type:function size:0x10C -fn_1_E3C8 = .text:0x0000E3C8; // type:function size:0xB0 -fn_1_E478 = .text:0x0000E478; // type:function size:0x18C -fn_1_E604 = .text:0x0000E604; // type:function size:0x314 -fn_1_E918 = .text:0x0000E918; // type:function size:0x138 -fn_1_EA50 = .text:0x0000EA50; // type:function size:0x11C -fn_1_EB6C = .text:0x0000EB6C; // type:function size:0x1E0 -fn_1_ED4C = .text:0x0000ED4C; // type:function size:0x3010 -fn_1_11D5C = .text:0x00011D5C; // type:function size:0x4D8 -fn_1_12234 = .text:0x00012234; // type:function size:0x30C -fn_1_12540 = .text:0x00012540; // type:function size:0x80 -fn_1_125C0 = .text:0x000125C0; // type:function size:0xC8 -fn_1_12688 = .text:0x00012688; // type:function size:0x294 -fn_1_1291C = .text:0x0001291C; // type:function size:0x100 -fn_1_12A1C = .text:0x00012A1C; // type:function size:0x164 -fn_1_12B80 = .text:0x00012B80; // type:function size:0x1F8 -fn_1_12D78 = .text:0x00012D78; // type:function size:0x4 -fn_1_12D7C = .text:0x00012D7C; // type:function size:0xE0 -fn_1_12E5C = .text:0x00012E5C; // type:function size:0x248 -fn_1_130A4 = .text:0x000130A4; // type:function size:0xD0 -fn_1_13174 = .text:0x00013174; // type:function size:0x3EC -fn_1_13560 = .text:0x00013560; // type:function size:0x1B4 -fn_1_13714 = .text:0x00013714; // type:function size:0x29C -fn_1_139B0 = .text:0x000139B0; // type:function size:0x19C -fn_1_13B4C = .text:0x00013B4C; // type:function size:0xC -fn_1_13B58 = .text:0x00013B58; // type:function size:0x38 -fn_1_13B90 = .text:0x00013B90; // type:function size:0x34 -fn_1_13BC4 = .text:0x00013BC4; // type:function size:0x364 -fn_1_13F28 = .text:0x00013F28; // type:function size:0x988 -fn_1_148B0 = .text:0x000148B0; // type:function size:0x110 -fn_1_149C0 = .text:0x000149C0; // type:function size:0xF8 -fn_1_14AB8 = .text:0x00014AB8; // type:function size:0x110 -fn_1_14BC8 = .text:0x00014BC8; // type:function size:0x60 -fn_1_14C28 = .text:0x00014C28; // type:function size:0xC0 -fn_1_14CE8 = .text:0x00014CE8; // type:function size:0x620 -fn_1_15308 = .text:0x00015308; // type:function size:0x840 -fn_1_15B48 = .text:0x00015B48; // type:function size:0x64 -fn_1_15BAC = .text:0x00015BAC; // type:function size:0x500 -fn_1_160AC = .text:0x000160AC; // type:function size:0x1D4 -fn_1_16280 = .text:0x00016280; // type:function size:0x94 -fn_1_16314 = .text:0x00016314; // type:function size:0x64 -fn_1_16378 = .text:0x00016378; // type:function size:0x598 -fn_1_16910 = .text:0x00016910; // type:function size:0x2B4 -fn_1_16BC4 = .text:0x00016BC4; // type:function size:0x130 -fn_1_16CF4 = .text:0x00016CF4; // type:function size:0x4D0 -fn_1_171C4 = .text:0x000171C4; // type:function size:0x19C -fn_1_17360 = .text:0x00017360; // type:function size:0x114 -fn_1_17474 = .text:0x00017474; // type:function size:0x4FC -fn_1_17970 = .text:0x00017970; // type:function size:0x24C -fn_1_17BBC = .text:0x00017BBC; // type:function size:0x868 -fn_1_18424 = .text:0x00018424; // type:function size:0x284 -fn_1_186A8 = .text:0x000186A8; // type:function size:0x888 -fn_1_18F30 = .text:0x00018F30; // type:function size:0x37C -fn_1_192AC = .text:0x000192AC; // type:function size:0xE4 -fn_1_19390 = .text:0x00019390; // type:function size:0xC0 -fn_1_19450 = .text:0x00019450; // type:function size:0x1FC -fn_1_1964C = .text:0x0001964C; // type:function size:0x14C -fn_1_19798 = .text:0x00019798; // type:function size:0x278 -fn_1_19A10 = .text:0x00019A10; // type:function size:0x208 -fn_1_19C18 = .text:0x00019C18; // type:function size:0xC8 -fn_1_19CE0 = .text:0x00019CE0; // type:function size:0x334 -fn_1_1A014 = .text:0x0001A014; // type:function size:0x4C -fn_1_1A060 = .text:0x0001A060; // type:function size:0x1BC -fn_1_1A21C = .text:0x0001A21C; // type:function size:0x1D4 -fn_1_1A3F0 = .text:0x0001A3F0; // type:function size:0x284 -_prolog = .text:0x0001A674; // type:function size:0x54 scope:global -_epilog = .text:0x0001A6C8; // type:function size:0x4C scope:global -fn_1_1A714 = .text:0x0001A714; // type:function size:0x22C -fn_1_1A940 = .text:0x0001A940; // type:function size:0x784 -fn_1_1B0C4 = .text:0x0001B0C4; // type:function size:0x94 -fn_1_1B158 = .text:0x0001B158; // type:function size:0x154 -fn_1_1B2AC = .text:0x0001B2AC; // type:function size:0x21C -fn_1_1B4C8 = .text:0x0001B4C8; // type:function size:0x48 -fn_1_1B510 = .text:0x0001B510; // type:function size:0x134 -fn_1_1B644 = .text:0x0001B644; // type:function size:0x1EC -fn_1_1B830 = .text:0x0001B830; // type:function size:0x830 -fn_1_1C060 = .text:0x0001C060; // type:function size:0x274 -fn_1_1C2D4 = .text:0x0001C2D4; // type:function size:0xC8 -fn_1_1C39C = .text:0x0001C39C; // type:function size:0x98 -fn_1_1C434 = .text:0x0001C434; // type:function size:0x2B0 -fn_1_1C6E4 = .text:0x0001C6E4; // type:function size:0x98 -fn_1_1C77C = .text:0x0001C77C; // type:function size:0x11C -fn_1_1C898 = .text:0x0001C898; // type:function size:0x18B8 -fn_1_1E150 = .text:0x0001E150; // type:function size:0x1F6C -fn_1_200BC = .text:0x000200BC; // type:function size:0xB4 -fn_1_20170 = .text:0x00020170; // type:function size:0x31C0 -fn_1_23330 = .text:0x00023330; // type:function size:0x440 -fn_1_23770 = .text:0x00023770; // type:function size:0x530 -fn_1_23CA0 = .text:0x00023CA0; // type:function size:0x980 -fn_1_24620 = .text:0x00024620; // type:function size:0x4A0C -fn_1_2902C = .text:0x0002902C; // type:function size:0x8C0 -fn_1_298EC = .text:0x000298EC; // type:function size:0xD0 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x1 data:byte -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:4byte -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x58 -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:4byte -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x58 -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:4byte -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x8 data:4byte -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:4byte -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 -lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 -lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 -lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 -lbl_1_data_80 = .data:0x00000080; // type:object size:0x1F data:string -lbl_1_data_9F = .data:0x0000009F; // type:object size:0xD -lbl_1_data_AC = .data:0x000000AC; // type:object size:0x8 -lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4C -lbl_1_data_100 = .data:0x00000100; // type:object size:0x14 -lbl_1_data_114 = .data:0x00000114; // type:object size:0x3C -lbl_1_data_150 = .data:0x00000150; // type:object size:0x3C -lbl_1_data_18C = .data:0x0000018C; // type:object size:0x20 -lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x20 -lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x10 -lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x28 -lbl_1_data_204 = .data:0x00000204; // type:object size:0x30 -lbl_1_data_234 = .data:0x00000234; // type:object size:0x20 -lbl_1_data_254 = .data:0x00000254; // type:object size:0x14 -lbl_1_data_268 = .data:0x00000268; // type:object size:0x14 -lbl_1_data_27C = .data:0x0000027C; // type:object size:0x14 -lbl_1_data_290 = .data:0x00000290; // type:object size:0x14 -lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x12 data:string -lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x13 data:string -lbl_1_data_2C9 = .data:0x000002C9; // type:object size:0x14 data:string -lbl_1_data_2DD = .data:0x000002DD; // type:object size:0x1C data:string -lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0x12 data:string -lbl_1_data_30B = .data:0x0000030B; // type:object size:0x11 -jumptable_1_data_31C = .data:0x0000031C; // type:object size:0x60 scope:local -lbl_1_data_37C = .data:0x0000037C; // type:object size:0x12 data:string -lbl_1_data_38E = .data:0x0000038E; // type:object size:0x12 data:string -lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x13 data:string -lbl_1_data_3B3 = .data:0x000003B3; // type:object size:0x14 data:string -lbl_1_data_3C7 = .data:0x000003C7; // type:object size:0x14 data:string -lbl_1_data_3DB = .data:0x000003DB; // type:object size:0x13 data:string -lbl_1_data_3EE = .data:0x000003EE; // type:object size:0x1E -jumptable_1_data_40C = .data:0x0000040C; // type:object size:0x44 scope:local -lbl_1_data_450 = .data:0x00000450; // type:object size:0x14 -lbl_1_data_464 = .data:0x00000464; // type:object size:0xC data:4byte -lbl_1_data_470 = .data:0x00000470; // type:object size:0xC -lbl_1_data_47C = .data:0x0000047C; // type:object size:0xC data:4byte -lbl_1_data_488 = .data:0x00000488; // type:object size:0xC data:4byte -lbl_1_data_494 = .data:0x00000494; // type:object size:0xC data:4byte -lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0xC data:4byte -lbl_1_data_4AC = .data:0x000004AC; // type:object size:0xC data:4byte -lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0xC data:4byte -lbl_1_data_4C4 = .data:0x000004C4; // type:object size:0xC data:4byte -lbl_1_data_4D0 = .data:0x000004D0; // type:object size:0xC data:4byte -lbl_1_data_4DC = .data:0x000004DC; // type:object size:0xC data:4byte -lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0xC -lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0xC -lbl_1_data_500 = .data:0x00000500; // type:object size:0x4 -lbl_1_data_504 = .data:0x00000504; // type:object size:0xC -lbl_1_data_510 = .data:0x00000510; // type:object size:0xC -lbl_1_data_51C = .data:0x0000051C; // type:object size:0x30 -lbl_1_data_54C = .data:0x0000054C; // type:object size:0x10 data:string -lbl_1_data_55C = .data:0x0000055C; // type:object size:0x10 data:string -lbl_1_data_56C = .data:0x0000056C; // type:object size:0x10 data:string -lbl_1_data_57C = .data:0x0000057C; // type:object size:0x10 data:string -lbl_1_data_58C = .data:0x0000058C; // type:object size:0x10 data:string -lbl_1_data_59C = .data:0x0000059C; // type:object size:0x10 data:string -lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x10 data:string -lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x10 data:string -lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x80 -lbl_1_data_64C = .data:0x0000064C; // type:object size:0x2E0 -lbl_1_data_92C = .data:0x0000092C; // type:object size:0x20 -lbl_1_data_94C = .data:0x0000094C; // type:object size:0xA0 -lbl_1_data_9EC = .data:0x000009EC; // type:object size:0x20 -lbl_1_data_A0C = .data:0x00000A0C; // type:object size:0x38 data:4byte -lbl_1_data_A44 = .data:0x00000A44; // type:object size:0x13 data:string -lbl_1_data_A57 = .data:0x00000A57; // type:object size:0x13 data:string -lbl_1_data_A6A = .data:0x00000A6A; // type:object size:0x16 -lbl_1_data_A80 = .data:0x00000A80; // type:object size:0x18C -lbl_1_data_C0C = .data:0x00000C0C; // type:object size:0x13 data:string -lbl_1_data_C1F = .data:0x00000C1F; // type:object size:0x13 data:string -lbl_1_data_C32 = .data:0x00000C32; // type:object size:0x13 data:string -lbl_1_data_C45 = .data:0x00000C45; // type:object size:0x13 data:string -lbl_1_data_C58 = .data:0x00000C58; // type:object size:0x1B8 -lbl_1_data_E10 = .data:0x00000E10; // type:object size:0x11 data:string -lbl_1_data_E21 = .data:0x00000E21; // type:object size:0x11 data:string -lbl_1_data_E32 = .data:0x00000E32; // type:object size:0x11 data:string -lbl_1_data_E43 = .data:0x00000E43; // type:object size:0x11 data:string -lbl_1_data_E54 = .data:0x00000E54; // type:object size:0x14 -lbl_1_data_E68 = .data:0x00000E68; // type:object size:0x14 -lbl_1_data_E7C = .data:0x00000E7C; // type:object size:0x84 -lbl_1_data_F00 = .data:0x00000F00; // type:object size:0x5C -lbl_1_data_F5C = .data:0x00000F5C; // type:object size:0x10 -lbl_1_data_F6C = .data:0x00000F6C; // type:object size:0x18 -lbl_1_data_F84 = .data:0x00000F84; // type:object size:0x14 -lbl_1_data_F98 = .data:0x00000F98; // type:object size:0x14 -lbl_1_data_FAC = .data:0x00000FAC; // type:object size:0x18 -lbl_1_data_FC4 = .data:0x00000FC4; // type:object size:0x14 -lbl_1_data_FD8 = .data:0x00000FD8; // type:object size:0x14 -lbl_1_data_FEC = .data:0x00000FEC; // type:object size:0x14 -lbl_1_data_1000 = .data:0x00001000; // type:object size:0x14 -lbl_1_data_1014 = .data:0x00001014; // type:object size:0x28 -lbl_1_data_103C = .data:0x0000103C; // type:object size:0x28 -lbl_1_data_1064 = .data:0x00001064; // type:object size:0x28 -lbl_1_data_108C = .data:0x0000108C; // type:object size:0x28 -lbl_1_data_10B4 = .data:0x000010B4; // type:object size:0x28 -lbl_1_data_10DC = .data:0x000010DC; // type:object size:0x28 -lbl_1_data_1104 = .data:0x00001104; // type:object size:0x28 -lbl_1_data_112C = .data:0x0000112C; // type:object size:0x28 -lbl_1_data_1154 = .data:0x00001154; // type:object size:0x28 -lbl_1_data_117C = .data:0x0000117C; // type:object size:0x28 -lbl_1_data_11A4 = .data:0x000011A4; // type:object size:0x28 -lbl_1_data_11CC = .data:0x000011CC; // type:object size:0x28 -lbl_1_data_11F4 = .data:0x000011F4; // type:object size:0x10 -lbl_1_data_1204 = .data:0x00001204; // type:object size:0xC -lbl_1_data_1210 = .data:0x00001210; // type:object size:0xC -lbl_1_data_121C = .data:0x0000121C; // type:object size:0xC -lbl_1_data_1228 = .data:0x00001228; // type:object size:0xC -lbl_1_data_1234 = .data:0x00001234; // type:object size:0x20 -lbl_1_data_1254 = .data:0x00001254; // type:object size:0x13 data:string -lbl_1_data_1267 = .data:0x00001267; // type:object size:0x13 data:string -lbl_1_data_127A = .data:0x0000127A; // type:object size:0x13 data:string -lbl_1_data_128D = .data:0x0000128D; // type:object size:0x13 data:string -lbl_1_data_12A0 = .data:0x000012A0; // type:object size:0x10 -lbl_1_data_12B0 = .data:0x000012B0; // type:object size:0x13 data:string -lbl_1_data_12C3 = .data:0x000012C3; // type:object size:0x13 data:string -lbl_1_data_12D6 = .data:0x000012D6; // type:object size:0x13 data:string -lbl_1_data_12E9 = .data:0x000012E9; // type:object size:0x13 data:string -lbl_1_data_12FC = .data:0x000012FC; // type:object size:0x13 data:string -lbl_1_data_130F = .data:0x0000130F; // type:object size:0x13 data:string -lbl_1_data_1322 = .data:0x00001322; // type:object size:0x13 data:string -lbl_1_data_1335 = .data:0x00001335; // type:object size:0x13 data:string -lbl_1_data_1348 = .data:0x00001348; // type:object size:0x14 -lbl_1_data_135C = .data:0x0000135C; // type:object size:0x24 -lbl_1_data_1380 = .data:0x00001380; // type:object size:0x38 data:4byte -lbl_1_data_13B8 = .data:0x000013B8; // type:object size:0x38 data:4byte -lbl_1_data_13F0 = .data:0x000013F0; // type:object size:0x13 data:string -lbl_1_data_1403 = .data:0x00001403; // type:object size:0x13 data:string -lbl_1_data_1416 = .data:0x00001416; // type:object size:0x13 data:string -lbl_1_data_1429 = .data:0x00001429; // type:object size:0x13 data:string -lbl_1_data_143C = .data:0x0000143C; // type:object size:0x14 -lbl_1_data_1450 = .data:0x00001450; // type:object size:0xB4 -lbl_1_data_1504 = .data:0x00001504; // type:object size:0x50 -lbl_1_data_1554 = .data:0x00001554; // type:object size:0x13 data:string -lbl_1_data_1567 = .data:0x00001567; // type:object size:0x13 data:string -lbl_1_data_157A = .data:0x0000157A; // type:object size:0x13 data:string -lbl_1_data_158D = .data:0x0000158D; // type:object size:0x13 data:string -lbl_1_data_15A0 = .data:0x000015A0; // type:object size:0x13 data:string -lbl_1_data_15B3 = .data:0x000015B3; // type:object size:0x12 data:string -lbl_1_data_15C5 = .data:0x000015C5; // type:object size:0x25 data:string -lbl_1_data_15EA = .data:0x000015EA; // type:object size:0x22 data:string -lbl_1_data_160C = .data:0x0000160C; // type:object size:0x9 data:string -lbl_1_data_1615 = .data:0x00001615; // type:object size:0xA data:string -lbl_1_data_161F = .data:0x0000161F; // type:object size:0xE data:string -lbl_1_data_162D = .data:0x0000162D; // type:object size:0x6 data:string -lbl_1_data_1633 = .data:0x00001633; // type:object size:0x1D data:string -jumptable_1_data_1650 = .data:0x00001650; // type:object size:0x70 scope:local -lbl_1_data_16C0 = .data:0x000016C0; // type:object size:0x1C -jumptable_1_data_16DC = .data:0x000016DC; // type:object size:0xC4 scope:local -lbl_1_data_17A0 = .data:0x000017A0; // type:object size:0x24 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 data:2byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x18 data:4byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x3C data:float -lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x30 -lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0xC data:4byte -lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte -lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:float -lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0xC data:float -lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte -lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x8 -lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x4 -lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x4 -lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0xC data:4byte -lbl_1_bss_F8 = .bss:0x000000F8; // type:object size:0x4 data:4byte -lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte -lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte -lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte -lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte -lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte -lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:4byte -lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:4byte -lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x4 data:4byte -lbl_1_bss_11C = .bss:0x0000011C; // type:object size:0x4 data:4byte -lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:4byte -lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x4 data:float -lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x8 data:float -lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x4 data:4byte -lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x4 data:4byte -lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x4 data:4byte -lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x4 data:4byte -lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte -lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x5C data:4byte -lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 data:4byte -lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 data:4byte -lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x4 data:float -lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 data:4byte -lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x100 -lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x40 data:4byte -lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0x4 data:float -lbl_1_bss_2F4 = .bss:0x000002F4; // type:object size:0x4 data:4byte -lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x4 data:4byte -lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0x2 data:2byte -lbl_1_bss_2FE = .bss:0x000002FE; // type:object size:0x2 data:2byte -lbl_1_bss_300 = .bss:0x00000300; // type:object size:0x4 data:4byte -lbl_1_bss_304 = .bss:0x00000304; // type:object size:0x4 data:4byte -lbl_1_bss_308 = .bss:0x00000308; // type:object size:0x4 data:4byte -lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0xC data:4byte -lbl_1_bss_318 = .bss:0x00000318; // type:object size:0xC data:4byte -lbl_1_bss_324 = .bss:0x00000324; // type:object size:0xC data:4byte -lbl_1_bss_330 = .bss:0x00000330; // type:object size:0xC data:4byte -lbl_1_bss_33C = .bss:0x0000033C; // type:object size:0x4 data:4byte -lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x18 data:4byte -lbl_1_bss_358 = .bss:0x00000358; // type:object size:0xC data:4byte diff --git a/config/GMPJ01_00/rels/m451Dll/splits.txt b/config/GMPJ01_00/rels/m451Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m451Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m451Dll/symbols.txt b/config/GMPJ01_00/rels/m451Dll/symbols.txt deleted file mode 100644 index 2bbf42af..00000000 --- a/config/GMPJ01_00/rels/m451Dll/symbols.txt +++ /dev/null @@ -1,217 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x71C -fn_1_7BC = .text:0x000007BC; // type:function size:0x9C -fn_1_858 = .text:0x00000858; // type:function size:0xC0 -fn_1_918 = .text:0x00000918; // type:function size:0x214 -fn_1_B2C = .text:0x00000B2C; // type:function size:0x1038 -fn_1_1B64 = .text:0x00001B64; // type:function size:0x598 -fn_1_20FC = .text:0x000020FC; // type:function size:0xB8 -fn_1_21B4 = .text:0x000021B4; // type:function size:0xC0 -fn_1_2274 = .text:0x00002274; // type:function size:0x6C -fn_1_22E0 = .text:0x000022E0; // type:function size:0x35C -fn_1_263C = .text:0x0000263C; // type:function size:0x3F8 -fn_1_2A34 = .text:0x00002A34; // type:function size:0x21C -fn_1_2C50 = .text:0x00002C50; // type:function size:0x2B8 -fn_1_2F08 = .text:0x00002F08; // type:function size:0xE4 -fn_1_2FEC = .text:0x00002FEC; // type:function size:0xC4 -fn_1_30B0 = .text:0x000030B0; // type:function size:0xA4 -fn_1_3154 = .text:0x00003154; // type:function size:0x670 -fn_1_37C4 = .text:0x000037C4; // type:function size:0xFA4 -fn_1_4768 = .text:0x00004768; // type:function size:0xFC -fn_1_4864 = .text:0x00004864; // type:function size:0x60 -fn_1_48C4 = .text:0x000048C4; // type:function size:0x8F4 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 -lbl_1_data_54 = .data:0x00000054; // type:object size:0xC -lbl_1_data_60 = .data:0x00000060; // type:object size:0xC -lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC -lbl_1_data_78 = .data:0x00000078; // type:object size:0xC -lbl_1_data_84 = .data:0x00000084; // type:object size:0xB data:string -lbl_1_data_8F = .data:0x0000008F; // type:object size:0xB data:string -lbl_1_data_9A = .data:0x0000009A; // type:object size:0xB data:string -lbl_1_data_A5 = .data:0x000000A5; // type:object size:0xB data:string -lbl_1_data_B0 = .data:0x000000B0; // type:object size:0xB data:string -lbl_1_data_BB = .data:0x000000BB; // type:object size:0xB data:string -lbl_1_data_C6 = .data:0x000000C6; // type:object size:0xB data:string -lbl_1_data_D1 = .data:0x000000D1; // type:object size:0xB data:string -lbl_1_data_DC = .data:0x000000DC; // type:object size:0xB data:string -lbl_1_data_E7 = .data:0x000000E7; // type:object size:0xB data:string -lbl_1_data_F2 = .data:0x000000F2; // type:object size:0xB data:string -lbl_1_data_FD = .data:0x000000FD; // type:object size:0xB data:string -lbl_1_data_108 = .data:0x00000108; // type:object size:0xB data:string -lbl_1_data_113 = .data:0x00000113; // type:object size:0xB data:string -lbl_1_data_11E = .data:0x0000011E; // type:object size:0xB data:string -lbl_1_data_129 = .data:0x00000129; // type:object size:0xB data:string -lbl_1_data_134 = .data:0x00000134; // type:object size:0xB data:string -lbl_1_data_13F = .data:0x0000013F; // type:object size:0xB data:string -lbl_1_data_14A = .data:0x0000014A; // type:object size:0xB data:string -lbl_1_data_155 = .data:0x00000155; // type:object size:0xB data:string -lbl_1_data_160 = .data:0x00000160; // type:object size:0xB data:string -lbl_1_data_16B = .data:0x0000016B; // type:object size:0xB data:string -lbl_1_data_176 = .data:0x00000176; // type:object size:0xB data:string -lbl_1_data_181 = .data:0x00000181; // type:object size:0xB data:string -lbl_1_data_18C = .data:0x0000018C; // type:object size:0xB data:string -lbl_1_data_197 = .data:0x00000197; // type:object size:0xB data:string -lbl_1_data_1A2 = .data:0x000001A2; // type:object size:0xB data:string -lbl_1_data_1AD = .data:0x000001AD; // type:object size:0xB data:string -lbl_1_data_1B8 = .data:0x000001B8; // type:object size:0xB data:string -lbl_1_data_1C3 = .data:0x000001C3; // type:object size:0xB data:string -lbl_1_data_1CE = .data:0x000001CE; // type:object size:0xB data:string -lbl_1_data_1D9 = .data:0x000001D9; // type:object size:0xB data:string -lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0xB data:string -lbl_1_data_1EF = .data:0x000001EF; // type:object size:0xB data:string -lbl_1_data_1FA = .data:0x000001FA; // type:object size:0xB data:string -lbl_1_data_205 = .data:0x00000205; // type:object size:0xB data:string -lbl_1_data_210 = .data:0x00000210; // type:object size:0xB data:string -lbl_1_data_21B = .data:0x0000021B; // type:object size:0xB data:string -lbl_1_data_226 = .data:0x00000226; // type:object size:0xB data:string -lbl_1_data_231 = .data:0x00000231; // type:object size:0xB data:string -lbl_1_data_23C = .data:0x0000023C; // type:object size:0xB data:string -lbl_1_data_247 = .data:0x00000247; // type:object size:0xB data:string -lbl_1_data_252 = .data:0x00000252; // type:object size:0xB data:string -lbl_1_data_25D = .data:0x0000025D; // type:object size:0xB data:string -lbl_1_data_268 = .data:0x00000268; // type:object size:0xB data:string -lbl_1_data_273 = .data:0x00000273; // type:object size:0xB data:string -lbl_1_data_27E = .data:0x0000027E; // type:object size:0xB data:string -lbl_1_data_289 = .data:0x00000289; // type:object size:0xB data:string -lbl_1_data_294 = .data:0x00000294; // type:object size:0xB data:string -lbl_1_data_29F = .data:0x0000029F; // type:object size:0xB data:string -lbl_1_data_2AA = .data:0x000002AA; // type:object size:0xB data:string -lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0xB data:string -lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0xB data:string -lbl_1_data_2CB = .data:0x000002CB; // type:object size:0xB data:string -lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0xB data:string -lbl_1_data_2E1 = .data:0x000002E1; // type:object size:0xB data:string -lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xB data:string -lbl_1_data_2F7 = .data:0x000002F7; // type:object size:0xB data:string -lbl_1_data_302 = .data:0x00000302; // type:object size:0xB data:string -lbl_1_data_30D = .data:0x0000030D; // type:object size:0xB data:string -lbl_1_data_318 = .data:0x00000318; // type:object size:0xB data:string -lbl_1_data_323 = .data:0x00000323; // type:object size:0xB data:string -lbl_1_data_32E = .data:0x0000032E; // type:object size:0xB data:string -lbl_1_data_339 = .data:0x00000339; // type:object size:0xB data:string -lbl_1_data_344 = .data:0x00000344; // type:object size:0xB data:string -lbl_1_data_34F = .data:0x0000034F; // type:object size:0xB data:string -lbl_1_data_35A = .data:0x0000035A; // type:object size:0xB data:string -lbl_1_data_365 = .data:0x00000365; // type:object size:0xB data:string -lbl_1_data_370 = .data:0x00000370; // type:object size:0xB data:string -lbl_1_data_37B = .data:0x0000037B; // type:object size:0xB data:string -lbl_1_data_386 = .data:0x00000386; // type:object size:0xB data:string -lbl_1_data_391 = .data:0x00000391; // type:object size:0xB data:string -lbl_1_data_39C = .data:0x0000039C; // type:object size:0xB data:string -lbl_1_data_3A7 = .data:0x000003A7; // type:object size:0xB data:string -lbl_1_data_3B2 = .data:0x000003B2; // type:object size:0xB data:string -lbl_1_data_3BD = .data:0x000003BD; // type:object size:0xB data:string -lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0xB data:string -lbl_1_data_3D3 = .data:0x000003D3; // type:object size:0xB data:string -lbl_1_data_3DE = .data:0x000003DE; // type:object size:0xB data:string -lbl_1_data_3E9 = .data:0x000003E9; // type:object size:0xB data:string -lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0xB data:string -lbl_1_data_3FF = .data:0x000003FF; // type:object size:0xB data:string -lbl_1_data_40A = .data:0x0000040A; // type:object size:0xB data:string -lbl_1_data_415 = .data:0x00000415; // type:object size:0xB data:string -lbl_1_data_420 = .data:0x00000420; // type:object size:0xB data:string -lbl_1_data_42B = .data:0x0000042B; // type:object size:0xB data:string -lbl_1_data_436 = .data:0x00000436; // type:object size:0xB data:string -lbl_1_data_441 = .data:0x00000441; // type:object size:0xB data:string -lbl_1_data_44C = .data:0x0000044C; // type:object size:0xB data:string -lbl_1_data_457 = .data:0x00000457; // type:object size:0xD -lbl_1_data_464 = .data:0x00000464; // type:object size:0x264 -lbl_1_data_6C8 = .data:0x000006C8; // type:object size:0xC -lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x78 data:float -lbl_1_data_74C = .data:0x0000074C; // type:object size:0xC -lbl_1_data_758 = .data:0x00000758; // type:object size:0xC -lbl_1_data_764 = .data:0x00000764; // type:object size:0xC data:string -lbl_1_data_770 = .data:0x00000770; // type:object size:0xC data:string -lbl_1_data_77C = .data:0x0000077C; // type:object size:0x7 data:string -lbl_1_data_783 = .data:0x00000783; // type:object size:0x8 data:string -lbl_1_data_78B = .data:0x0000078B; // type:object size:0x8 data:string -lbl_1_data_793 = .data:0x00000793; // type:object size:0x8 data:string -lbl_1_data_79B = .data:0x0000079B; // type:object size:0xB data:string -lbl_1_data_7A6 = .data:0x000007A6; // type:object size:0xF data:string -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x340 data:4byte -lbl_1_bss_348 = .bss:0x00000348; // type:object size:0x810 data:float -lbl_1_bss_B58 = .bss:0x00000B58; // type:object size:0x4 data:4byte -lbl_1_bss_B5C = .bss:0x00000B5C; // type:object size:0x4 data:4byte -lbl_1_bss_B60 = .bss:0x00000B60; // type:object size:0x4 data:4byte -lbl_1_bss_B64 = .bss:0x00000B64; // type:object size:0xA0 data:4byte -lbl_1_bss_C04 = .bss:0x00000C04; // type:object size:0xA0 data:4byte -lbl_1_bss_CA4 = .bss:0x00000CA4; // type:object size:0x4 data:4byte -lbl_1_bss_CA8 = .bss:0x00000CA8; // type:object size:0x6 -lbl_1_bss_CAE = .bss:0x00000CAE; // type:object size:0x6 data:2byte -lbl_1_bss_CB4 = .bss:0x00000CB4; // type:object size:0x2 data:2byte diff --git a/config/GMPJ01_00/rels/m453Dll/splits.txt b/config/GMPJ01_00/rels/m453Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m453Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m453Dll/symbols.txt b/config/GMPJ01_00/rels/m453Dll/symbols.txt deleted file mode 100644 index fcb400ae..00000000 --- a/config/GMPJ01_00/rels/m453Dll/symbols.txt +++ /dev/null @@ -1,279 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x3A0 -fn_1_440 = .text:0x00000440; // type:function size:0x20 -fn_1_460 = .text:0x00000460; // type:function size:0x3E8 -fn_1_848 = .text:0x00000848; // type:function size:0x7B4 -fn_1_FFC = .text:0x00000FFC; // type:function size:0x60 -fn_1_105C = .text:0x0000105C; // type:function size:0x1EC -fn_1_1248 = .text:0x00001248; // type:function size:0x2B0 -fn_1_14F8 = .text:0x000014F8; // type:function size:0x104 -fn_1_15FC = .text:0x000015FC; // type:function size:0x274 -fn_1_1870 = .text:0x00001870; // type:function size:0xA0 -fn_1_1910 = .text:0x00001910; // type:function size:0x2B8 -fn_1_1BC8 = .text:0x00001BC8; // type:function size:0x28 -fn_1_1BF0 = .text:0x00001BF0; // type:function size:0x3B0 -fn_1_1FA0 = .text:0x00001FA0; // type:function size:0x14C -fn_1_20EC = .text:0x000020EC; // type:function size:0x2F4 -fn_1_23E0 = .text:0x000023E0; // type:function size:0xA44 -fn_1_2E24 = .text:0x00002E24; // type:function size:0x824 -fn_1_3648 = .text:0x00003648; // type:function size:0x94 -fn_1_36DC = .text:0x000036DC; // type:function size:0x2EC -fn_1_39C8 = .text:0x000039C8; // type:function size:0x1EC -fn_1_3BB4 = .text:0x00003BB4; // type:function size:0xE0 -fn_1_3C94 = .text:0x00003C94; // type:function size:0x208 -fn_1_3E9C = .text:0x00003E9C; // type:function size:0x9C -fn_1_3F38 = .text:0x00003F38; // type:function size:0x480 -fn_1_43B8 = .text:0x000043B8; // type:function size:0x54 -fn_1_440C = .text:0x0000440C; // type:function size:0x168 -fn_1_4574 = .text:0x00004574; // type:function size:0x120 -fn_1_4694 = .text:0x00004694; // type:function size:0x30C -fn_1_49A0 = .text:0x000049A0; // type:function size:0x78 -fn_1_4A18 = .text:0x00004A18; // type:function size:0x11C -fn_1_4B34 = .text:0x00004B34; // type:function size:0x78 -fn_1_4BAC = .text:0x00004BAC; // type:function size:0x2D8 -fn_1_4E84 = .text:0x00004E84; // type:function size:0x2B8 -fn_1_513C = .text:0x0000513C; // type:function size:0x154 -fn_1_5290 = .text:0x00005290; // type:function size:0x3E0 -fn_1_5670 = .text:0x00005670; // type:function size:0x214 -fn_1_5884 = .text:0x00005884; // type:function size:0x198 -fn_1_5A1C = .text:0x00005A1C; // type:function size:0xD8 -fn_1_5AF4 = .text:0x00005AF4; // type:function size:0xBC -fn_1_5BB0 = .text:0x00005BB0; // type:function size:0x33C -fn_1_5EEC = .text:0x00005EEC; // type:function size:0x4B0 -fn_1_639C = .text:0x0000639C; // type:function size:0x10 -fn_1_63AC = .text:0x000063AC; // type:function size:0x9C -fn_1_6448 = .text:0x00006448; // type:function size:0xA0 -fn_1_64E8 = .text:0x000064E8; // type:function size:0x260 -fn_1_6748 = .text:0x00006748; // type:function size:0x20 -fn_1_6768 = .text:0x00006768; // type:function size:0x84 -fn_1_67EC = .text:0x000067EC; // type:function size:0x4 -fn_1_67F0 = .text:0x000067F0; // type:function size:0x16C -fn_1_695C = .text:0x0000695C; // type:function size:0x318 -fn_1_6C74 = .text:0x00006C74; // type:function size:0x240 -fn_1_6EB4 = .text:0x00006EB4; // type:function size:0x110 -fn_1_6FC4 = .text:0x00006FC4; // type:function size:0x400 -fn_1_73C4 = .text:0x000073C4; // type:function size:0x5B4 -fn_1_7978 = .text:0x00007978; // type:function size:0xFC -fn_1_7A74 = .text:0x00007A74; // type:function size:0x88 -fn_1_7AFC = .text:0x00007AFC; // type:function size:0xB4 -fn_1_7BB0 = .text:0x00007BB0; // type:function size:0x4C -fn_1_7BFC = .text:0x00007BFC; // type:function size:0x10 -fn_1_7C0C = .text:0x00007C0C; // type:function size:0x20 -fn_1_7C2C = .text:0x00007C2C; // type:function size:0x10 -fn_1_7C3C = .text:0x00007C3C; // type:function size:0xA4 -fn_1_7CE0 = .text:0x00007CE0; // type:function size:0x274 -fn_1_7F54 = .text:0x00007F54; // type:function size:0x15C -fn_1_80B0 = .text:0x000080B0; // type:function size:0x180 -fn_1_8230 = .text:0x00008230; // type:function size:0x10 -fn_1_8240 = .text:0x00008240; // type:function size:0x10 -fn_1_8250 = .text:0x00008250; // type:function size:0x5C -fn_1_82AC = .text:0x000082AC; // type:function size:0x1A0 -fn_1_844C = .text:0x0000844C; // type:function size:0x200 -fn_1_864C = .text:0x0000864C; // type:function size:0x30 -fn_1_867C = .text:0x0000867C; // type:function size:0x8CC -fn_1_8F48 = .text:0x00008F48; // type:function size:0x290 -fn_1_91D8 = .text:0x000091D8; // type:function size:0x74 -fn_1_924C = .text:0x0000924C; // type:function size:0x50 -fn_1_929C = .text:0x0000929C; // type:function size:0x24 -fn_1_92C0 = .text:0x000092C0; // type:function size:0x30 -fn_1_92F0 = .text:0x000092F0; // type:function size:0x11C -fn_1_940C = .text:0x0000940C; // type:function size:0x78 -fn_1_9484 = .text:0x00009484; // type:function size:0x8C -fn_1_9510 = .text:0x00009510; // type:function size:0x164 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x9 data:byte -lbl_1_rodata_8D = .rodata:0x0000008D; // type:object size:0xB data:byte -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte -lbl_1_data_4 = .data:0x00000004; // type:object size:0xC -lbl_1_data_10 = .data:0x00000010; // type:object size:0xC -lbl_1_data_1C = .data:0x0000001C; // type:object size:0x28 -lbl_1_data_44 = .data:0x00000044; // type:object size:0x24 -lbl_1_data_68 = .data:0x00000068; // type:object size:0x24 data:4byte -jumptable_1_data_8C = .data:0x0000008C; // type:object size:0x1C scope:local -jumptable_1_data_A8 = .data:0x000000A8; // type:object size:0x1C scope:local -lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x20 -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x30 -lbl_1_data_114 = .data:0x00000114; // type:object size:0x20 -lbl_1_data_134 = .data:0x00000134; // type:object size:0x20 -lbl_1_data_154 = .data:0x00000154; // type:object size:0x4 data:4byte -lbl_1_data_158 = .data:0x00000158; // type:object size:0xC0 -lbl_1_data_218 = .data:0x00000218; // type:object size:0xC0 -lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x78 -lbl_1_data_350 = .data:0x00000350; // type:object size:0x78 -lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0xC0 -lbl_1_data_488 = .data:0x00000488; // type:object size:0xC0 -lbl_1_data_548 = .data:0x00000548; // type:object size:0x78 -lbl_1_data_5C0 = .data:0x000005C0; // type:object size:0x78 -lbl_1_data_638 = .data:0x00000638; // type:object size:0x108 -lbl_1_data_740 = .data:0x00000740; // type:object size:0x108 -lbl_1_data_848 = .data:0x00000848; // type:object size:0x108 -lbl_1_data_950 = .data:0x00000950; // type:object size:0x108 -lbl_1_data_A58 = .data:0x00000A58; // type:object size:0x30 -lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x48 -lbl_1_data_AD0 = .data:0x00000AD0; // type:object size:0xC data:4byte -lbl_1_data_ADC = .data:0x00000ADC; // type:object size:0xC data:4byte -lbl_1_data_AE8 = .data:0x00000AE8; // type:object size:0x14 data:4byte -lbl_1_data_AFC = .data:0x00000AFC; // type:object size:0x18 -lbl_1_data_B14 = .data:0x00000B14; // type:object size:0x18 -lbl_1_data_B2C = .data:0x00000B2C; // type:object size:0x48 -lbl_1_data_B74 = .data:0x00000B74; // type:object size:0x30 -lbl_1_data_BA4 = .data:0x00000BA4; // type:object size:0x1C -lbl_1_data_BC0 = .data:0x00000BC0; // type:object size:0xC -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte -lbl_1_bss_2 = .bss:0x00000002; // type:object size:0x6 data:2byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x2 data:2byte -lbl_1_bss_1E = .bss:0x0000001E; // type:object size:0x14 data:2byte -lbl_1_bss_32 = .bss:0x00000032; // type:object size:0x2 data:2byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte -lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x2 data:2byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x2 data:2byte -lbl_1_bss_3A = .bss:0x0000003A; // type:object size:0x2 data:2byte -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x10 -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x8 data:4byte -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x18 -lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte -lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 data:4byte -lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte -lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte -lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:float -lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte -lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte -lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte -lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte -lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte -lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte -lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x14 -lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte -lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte -lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:4byte -lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m455Dll/splits.txt b/config/GMPJ01_00/rels/m455Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m455Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m455Dll/symbols.txt b/config/GMPJ01_00/rels/m455Dll/symbols.txt deleted file mode 100644 index cd750911..00000000 --- a/config/GMPJ01_00/rels/m455Dll/symbols.txt +++ /dev/null @@ -1,290 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x270 -fn_1_310 = .text:0x00000310; // type:function size:0x10 -fn_1_320 = .text:0x00000320; // type:function size:0x10 -fn_1_330 = .text:0x00000330; // type:function size:0x148 -fn_1_478 = .text:0x00000478; // type:function size:0x6C0 -fn_1_B38 = .text:0x00000B38; // type:function size:0x5C -fn_1_B94 = .text:0x00000B94; // type:function size:0x94 -fn_1_C28 = .text:0x00000C28; // type:function size:0x68 -fn_1_C90 = .text:0x00000C90; // type:function size:0x84 -fn_1_D14 = .text:0x00000D14; // type:function size:0x6EC -fn_1_1400 = .text:0x00001400; // type:function size:0x44 -fn_1_1444 = .text:0x00001444; // type:function size:0xBCC -fn_1_2010 = .text:0x00002010; // type:function size:0x50 -fn_1_2060 = .text:0x00002060; // type:function size:0x330 -fn_1_2390 = .text:0x00002390; // type:function size:0x104 -fn_1_2494 = .text:0x00002494; // type:function size:0x5C -fn_1_24F0 = .text:0x000024F0; // type:function size:0x208 -fn_1_26F8 = .text:0x000026F8; // type:function size:0xA8 -fn_1_27A0 = .text:0x000027A0; // type:function size:0x2F0 -fn_1_2A90 = .text:0x00002A90; // type:function size:0x64 -fn_1_2AF4 = .text:0x00002AF4; // type:function size:0x250 -fn_1_2D44 = .text:0x00002D44; // type:function size:0x4D0 -fn_1_3214 = .text:0x00003214; // type:function size:0xB0 -fn_1_32C4 = .text:0x000032C4; // type:function size:0x148 -fn_1_340C = .text:0x0000340C; // type:function size:0x70 -fn_1_347C = .text:0x0000347C; // type:function size:0x960 -fn_1_3DDC = .text:0x00003DDC; // type:function size:0x328 -fn_1_4104 = .text:0x00004104; // type:function size:0x7C -fn_1_4180 = .text:0x00004180; // type:function size:0x82C -fn_1_49AC = .text:0x000049AC; // type:function size:0x68 -fn_1_4A14 = .text:0x00004A14; // type:function size:0x108 -fn_1_4B1C = .text:0x00004B1C; // type:function size:0x348 -fn_1_4E64 = .text:0x00004E64; // type:function size:0xB3C -fn_1_59A0 = .text:0x000059A0; // type:function size:0x6E8 -fn_1_6088 = .text:0x00006088; // type:function size:0xBC -fn_1_6144 = .text:0x00006144; // type:function size:0x450 -fn_1_6594 = .text:0x00006594; // type:function size:0x104 -fn_1_6698 = .text:0x00006698; // type:function size:0x1E4 -fn_1_687C = .text:0x0000687C; // type:function size:0x4C -fn_1_68C8 = .text:0x000068C8; // type:function size:0x4C -fn_1_6914 = .text:0x00006914; // type:function size:0x158 -fn_1_6A6C = .text:0x00006A6C; // type:function size:0x1F4 -fn_1_6C60 = .text:0x00006C60; // type:function size:0x50 -fn_1_6CB0 = .text:0x00006CB0; // type:function size:0x5D0 -fn_1_7280 = .text:0x00007280; // type:function size:0xE8 -fn_1_7368 = .text:0x00007368; // type:function size:0xC8 -fn_1_7430 = .text:0x00007430; // type:function size:0x4 -fn_1_7434 = .text:0x00007434; // type:function size:0x18C -fn_1_75C0 = .text:0x000075C0; // type:function size:0xF0 -fn_1_76B0 = .text:0x000076B0; // type:function size:0x2C4 -fn_1_7974 = .text:0x00007974; // type:function size:0x54 -fn_1_79C8 = .text:0x000079C8; // type:function size:0x280 -fn_1_7C48 = .text:0x00007C48; // type:function size:0x408 -fn_1_8050 = .text:0x00008050; // type:function size:0x424 -fn_1_8474 = .text:0x00008474; // type:function size:0x4 -fn_1_8478 = .text:0x00008478; // type:function size:0x100 -fn_1_8578 = .text:0x00008578; // type:function size:0x104 -fn_1_867C = .text:0x0000867C; // type:function size:0x2A0 -fn_1_891C = .text:0x0000891C; // type:function size:0x474 -fn_1_8D90 = .text:0x00008D90; // type:function size:0x11C -fn_1_8EAC = .text:0x00008EAC; // type:function size:0x2BC -fn_1_9168 = .text:0x00009168; // type:function size:0x50 -fn_1_91B8 = .text:0x000091B8; // type:function size:0xB44 -fn_1_9CFC = .text:0x00009CFC; // type:function size:0x104 -fn_1_9E00 = .text:0x00009E00; // type:function size:0x118 -fn_1_9F18 = .text:0x00009F18; // type:function size:0x250 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float -lbl_1_data_38 = .data:0x00000038; // type:object size:0xC data:float -lbl_1_data_44 = .data:0x00000044; // type:object size:0xC data:float -lbl_1_data_50 = .data:0x00000050; // type:object size:0x4 -lbl_1_data_54 = .data:0x00000054; // type:object size:0xC -lbl_1_data_60 = .data:0x00000060; // type:object size:0xC -lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 -lbl_1_data_90 = .data:0x00000090; // type:object size:0x2 data:2byte -lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 data:4byte -lbl_1_data_98 = .data:0x00000098; // type:object size:0x4 data:4byte -jumptable_1_data_9C = .data:0x0000009C; // type:object size:0x28 scope:local -lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x1C data:string -lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x28 -lbl_1_data_108 = .data:0x00000108; // type:object size:0x30 -lbl_1_data_138 = .data:0x00000138; // type:object size:0x1C -lbl_1_data_154 = .data:0x00000154; // type:object size:0x10 -lbl_1_data_164 = .data:0x00000164; // type:object size:0xC -lbl_1_data_170 = .data:0x00000170; // type:object size:0x1 data:byte -lbl_1_data_174 = .data:0x00000174; // type:object size:0x5 data:string -lbl_1_data_179 = .data:0x00000179; // type:object size:0xB data:string -lbl_1_data_184 = .data:0x00000184; // type:object size:0x8 data:float -lbl_1_data_18C = .data:0x0000018C; // type:object size:0x4C -lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x30 -lbl_1_data_208 = .data:0x00000208; // type:object size:0x1 data:byte -lbl_1_data_20C = .data:0x0000020C; // type:object size:0x50 -lbl_1_data_25C = .data:0x0000025C; // type:object size:0x7 data:string -lbl_1_data_263 = .data:0x00000263; // type:object size:0x7 data:string -lbl_1_data_26A = .data:0x0000026A; // type:object size:0x1 data:byte -lbl_1_data_26E = .data:0x0000026E; // type:object size:0x1 data:byte -lbl_1_data_272 = .data:0x00000272; // type:object size:0x6 data:byte -lbl_1_data_278 = .data:0x00000278; // type:object size:0x30 -lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x138 -lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x68 -lbl_1_data_448 = .data:0x00000448; // type:object size:0xD0 -lbl_1_data_518 = .data:0x00000518; // type:object size:0xD0 -lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0x18 -lbl_1_data_600 = .data:0x00000600; // type:object size:0x1 data:byte -lbl_1_data_604 = .data:0x00000604; // type:object size:0x6C -lbl_1_data_670 = .data:0x00000670; // type:object size:0x24 -lbl_1_data_694 = .data:0x00000694; // type:object size:0x8 data:byte -lbl_1_data_69C = .data:0x0000069C; // type:object size:0x1 data:byte -lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x10 -lbl_1_data_6B0 = .data:0x000006B0; // type:object size:0x10 -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:float -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte -lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x2 data:2byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:2byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte -lbl_1_bss_22 = .bss:0x00000022; // type:object size:0x2 data:2byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte -lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 data:2byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x8 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:4byte -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte -lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte -lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte -lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m460Dll/splits.txt b/config/GMPJ01_00/rels/m460Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m460Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m460Dll/symbols.txt b/config/GMPJ01_00/rels/m460Dll/symbols.txt deleted file mode 100644 index 9864f9d8..00000000 --- a/config/GMPJ01_00/rels/m460Dll/symbols.txt +++ /dev/null @@ -1,301 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x428 -fn_1_4C8 = .text:0x000004C8; // type:function size:0x128 -fn_1_5F0 = .text:0x000005F0; // type:function size:0x20C -fn_1_7FC = .text:0x000007FC; // type:function size:0x14C -fn_1_948 = .text:0x00000948; // type:function size:0x434 -fn_1_D7C = .text:0x00000D7C; // type:function size:0x470 -fn_1_11EC = .text:0x000011EC; // type:function size:0x35C -fn_1_1548 = .text:0x00001548; // type:function size:0x434 -fn_1_197C = .text:0x0000197C; // type:function size:0x6A0 -fn_1_201C = .text:0x0000201C; // type:function size:0x4D8 -fn_1_24F4 = .text:0x000024F4; // type:function size:0x70 -fn_1_2564 = .text:0x00002564; // type:function size:0x800 -fn_1_2D64 = .text:0x00002D64; // type:function size:0xC -fn_1_2D70 = .text:0x00002D70; // type:function size:0x55C -fn_1_32CC = .text:0x000032CC; // type:function size:0xB0 -fn_1_337C = .text:0x0000337C; // type:function size:0x274 -fn_1_35F0 = .text:0x000035F0; // type:function size:0x28 -fn_1_3618 = .text:0x00003618; // type:function size:0x5A8 -fn_1_3BC0 = .text:0x00003BC0; // type:function size:0x2A8 -fn_1_3E68 = .text:0x00003E68; // type:function size:0x14 -fn_1_3E7C = .text:0x00003E7C; // type:function size:0x14 -fn_1_3E90 = .text:0x00003E90; // type:function size:0x9C -fn_1_3F2C = .text:0x00003F2C; // type:function size:0x9C -fn_1_3FC8 = .text:0x00003FC8; // type:function size:0x68 -fn_1_4030 = .text:0x00004030; // type:function size:0x6C -fn_1_409C = .text:0x0000409C; // type:function size:0x98 -fn_1_4134 = .text:0x00004134; // type:function size:0x18 -fn_1_414C = .text:0x0000414C; // type:function size:0x18 -fn_1_4164 = .text:0x00004164; // type:function size:0x18 -fn_1_417C = .text:0x0000417C; // type:function size:0x18 -fn_1_4194 = .text:0x00004194; // type:function size:0x8 -fn_1_419C = .text:0x0000419C; // type:function size:0x18 -fn_1_41B4 = .text:0x000041B4; // type:function size:0x40 -fn_1_41F4 = .text:0x000041F4; // type:function size:0x30 -fn_1_4224 = .text:0x00004224; // type:function size:0x30 -fn_1_4254 = .text:0x00004254; // type:function size:0x30 -fn_1_4284 = .text:0x00004284; // type:function size:0x38 -fn_1_42BC = .text:0x000042BC; // type:function size:0x34 -fn_1_42F0 = .text:0x000042F0; // type:function size:0x18 -fn_1_4308 = .text:0x00004308; // type:function size:0x1C -fn_1_4324 = .text:0x00004324; // type:function size:0x18 -fn_1_433C = .text:0x0000433C; // type:function size:0x1C -fn_1_4358 = .text:0x00004358; // type:function size:0x18 -fn_1_4370 = .text:0x00004370; // type:function size:0x18 -fn_1_4388 = .text:0x00004388; // type:function size:0x208 -fn_1_4590 = .text:0x00004590; // type:function size:0x240 -fn_1_47D0 = .text:0x000047D0; // type:function size:0x11C -fn_1_48EC = .text:0x000048EC; // type:function size:0xB4 -fn_1_49A0 = .text:0x000049A0; // type:function size:0x244 -fn_1_4BE4 = .text:0x00004BE4; // type:function size:0x24 -fn_1_4C08 = .text:0x00004C08; // type:function size:0x364 -fn_1_4F6C = .text:0x00004F6C; // type:function size:0x1FC -fn_1_5168 = .text:0x00005168; // type:function size:0x484 -fn_1_55EC = .text:0x000055EC; // type:function size:0x1EC -fn_1_57D8 = .text:0x000057D8; // type:function size:0xF0 -fn_1_58C8 = .text:0x000058C8; // type:function size:0x14C -fn_1_5A14 = .text:0x00005A14; // type:function size:0x274 -fn_1_5C88 = .text:0x00005C88; // type:function size:0x58 -fn_1_5CE0 = .text:0x00005CE0; // type:function size:0x18C -fn_1_5E6C = .text:0x00005E6C; // type:function size:0x74 -fn_1_5EE0 = .text:0x00005EE0; // type:function size:0x1D0 -fn_1_60B0 = .text:0x000060B0; // type:function size:0x144 -fn_1_61F4 = .text:0x000061F4; // type:function size:0x5C0 -fn_1_67B4 = .text:0x000067B4; // type:function size:0x60 -fn_1_6814 = .text:0x00006814; // type:function size:0x4 -fn_1_6818 = .text:0x00006818; // type:function size:0x3E8 -fn_1_6C00 = .text:0x00006C00; // type:function size:0x7F8 -fn_1_73F8 = .text:0x000073F8; // type:function size:0x2CC -fn_1_76C4 = .text:0x000076C4; // type:function size:0x60 -fn_1_7724 = .text:0x00007724; // type:function size:0x6C -fn_1_7790 = .text:0x00007790; // type:function size:0x404 -fn_1_7B94 = .text:0x00007B94; // type:function size:0x214 -fn_1_7DA8 = .text:0x00007DA8; // type:function size:0xDF8 -fn_1_8BA0 = .text:0x00008BA0; // type:function size:0xD8 -fn_1_8C78 = .text:0x00008C78; // type:function size:0x34 -fn_1_8CAC = .text:0x00008CAC; // type:function size:0x28C -fn_1_8F38 = .text:0x00008F38; // type:function size:0x74 -fn_1_8FAC = .text:0x00008FAC; // type:function size:0x50 -fn_1_8FFC = .text:0x00008FFC; // type:function size:0x24 -fn_1_9020 = .text:0x00009020; // type:function size:0x30 -fn_1_9050 = .text:0x00009050; // type:function size:0x11C -fn_1_916C = .text:0x0000916C; // type:function size:0x78 -fn_1_91E4 = .text:0x000091E4; // type:function size:0x8C -fn_1_9270 = .text:0x00009270; // type:function size:0x164 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC data:4byte -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:4byte -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x50 -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x14 data:4byte -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x10 data:4byte -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x10 data:4byte -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x30 data:4byte -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x18 data:4byte -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x18 data:4byte -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x18 data:4byte -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:4byte -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x1 data:byte -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x1 data:byte -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0xC data:4byte -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0xC -lbl_1_data_C = .data:0x0000000C; // type:object size:0xC -lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float -lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 -lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float -lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float -lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float -lbl_1_data_4C = .data:0x0000004C; // type:object size:0x24 -lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 -lbl_1_data_94 = .data:0x00000094; // type:object size:0xC -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC -lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC -lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x1 data:byte -lbl_1_data_BC = .data:0x000000BC; // type:object size:0x1A data:string -lbl_1_data_D6 = .data:0x000000D6; // type:object size:0x1A -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x20 -lbl_1_data_110 = .data:0x00000110; // type:object size:0xA0 -jumptable_1_data_1B0 = .data:0x000001B0; // type:object size:0x24 scope:local -lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x14 -lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x100 -lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x40 -lbl_1_data_328 = .data:0x00000328; // type:object size:0xC -lbl_1_data_334 = .data:0x00000334; // type:object size:0xC -lbl_1_data_340 = .data:0x00000340; // type:object size:0xC -lbl_1_data_34C = .data:0x0000034C; // type:object size:0x8 -lbl_1_data_354 = .data:0x00000354; // type:object size:0x8 -lbl_1_data_35C = .data:0x0000035C; // type:object size:0x7 data:string -lbl_1_data_363 = .data:0x00000363; // type:object size:0x9 -lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC -lbl_1_data_378 = .data:0x00000378; // type:object size:0x8 data:byte -lbl_1_data_380 = .data:0x00000380; // type:object size:0xC -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte -lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte -lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x2 data:2byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x2 data:2byte -lbl_1_bss_1A = .bss:0x0000001A; // type:object size:0x6 data:2byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:4byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x8 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x8 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/m461Dll/splits.txt b/config/GMPJ01_00/rels/m461Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m461Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m461Dll/symbols.txt b/config/GMPJ01_00/rels/m461Dll/symbols.txt deleted file mode 100644 index 02cf6c76..00000000 --- a/config/GMPJ01_00/rels/m461Dll/symbols.txt +++ /dev/null @@ -1,224 +0,0 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x24 -fn_1_24 = .text:0x00000024; // type:function size:0x88 -fn_1_AC = .text:0x000000AC; // type:function size:0xA4 -fn_1_150 = .text:0x00000150; // type:function size:0x24 -fn_1_174 = .text:0x00000174; // type:function size:0x164 -fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C -fn_1_414 = .text:0x00000414; // type:function size:0x58 -fn_1_46C = .text:0x0000046C; // type:function size:0x114 -fn_1_580 = .text:0x00000580; // type:function size:0x218 -fn_1_798 = .text:0x00000798; // type:function size:0x254 -fn_1_9EC = .text:0x000009EC; // type:function size:0x54 -fn_1_A40 = .text:0x00000A40; // type:function size:0x10C -fn_1_B4C = .text:0x00000B4C; // type:function size:0x6A8 -fn_1_11F4 = .text:0x000011F4; // type:function size:0x15C -fn_1_1350 = .text:0x00001350; // type:function size:0x8C -fn_1_13DC = .text:0x000013DC; // type:function size:0x334 -fn_1_1710 = .text:0x00001710; // type:function size:0x350 -fn_1_1A60 = .text:0x00001A60; // type:function size:0x2B8 -fn_1_1D18 = .text:0x00001D18; // type:function size:0x58 -fn_1_1D70 = .text:0x00001D70; // type:function size:0xB0 -fn_1_1E20 = .text:0x00001E20; // type:function size:0x104 -fn_1_1F24 = .text:0x00001F24; // type:function size:0x34 -fn_1_1F58 = .text:0x00001F58; // type:function size:0x6C -fn_1_1FC4 = .text:0x00001FC4; // type:function size:0x3F0 -fn_1_23B4 = .text:0x000023B4; // type:function size:0x64 -fn_1_2418 = .text:0x00002418; // type:function size:0xE0 -fn_1_24F8 = .text:0x000024F8; // type:function size:0x32C -fn_1_2824 = .text:0x00002824; // type:function size:0x3AC -fn_1_2BD0 = .text:0x00002BD0; // type:function size:0x30 -fn_1_2C00 = .text:0x00002C00; // type:function size:0x1C -fn_1_2C1C = .text:0x00002C1C; // type:function size:0x18C -fn_1_2DA8 = .text:0x00002DA8; // type:function size:0x8 -fn_1_2DB0 = .text:0x00002DB0; // type:function size:0x8 -fn_1_2DB8 = .text:0x00002DB8; // type:function size:0x8 -fn_1_2DC0 = .text:0x00002DC0; // type:function size:0x8 -fn_1_2DC8 = .text:0x00002DC8; // type:function size:0xC -fn_1_2DD4 = .text:0x00002DD4; // type:function size:0x60 -fn_1_2E34 = .text:0x00002E34; // type:function size:0xB90 -fn_1_39C4 = .text:0x000039C4; // type:function size:0x2B0 -fn_1_3C74 = .text:0x00003C74; // type:function size:0xD8 -fn_1_3D4C = .text:0x00003D4C; // type:function size:0x114 -fn_1_3E60 = .text:0x00003E60; // type:function size:0xB8 -fn_1_3F18 = .text:0x00003F18; // type:function size:0xA0 -fn_1_3FB8 = .text:0x00003FB8; // type:function size:0x9C -fn_1_4054 = .text:0x00004054; // type:function size:0xDC8 -fn_1_4E1C = .text:0x00004E1C; // type:function size:0x250 -fn_1_506C = .text:0x0000506C; // type:function size:0x10 -fn_1_507C = .text:0x0000507C; // type:function size:0x10 -_prolog = .text:0x0000508C; // type:function size:0x54 scope:global -_epilog = .text:0x000050E0; // type:function size:0x4C scope:global -fn_1_512C = .text:0x0000512C; // type:function size:0x30C -fn_1_5438 = .text:0x00005438; // type:function size:0xF0 -fn_1_5528 = .text:0x00005528; // type:function size:0x36C -fn_1_5894 = .text:0x00005894; // type:function size:0x1E8 -fn_1_5A7C = .text:0x00005A7C; // type:function size:0x178 -fn_1_5BF4 = .text:0x00005BF4; // type:function size:0xE0C -fn_1_6A00 = .text:0x00006A00; // type:function size:0x928 -fn_1_7328 = .text:0x00007328; // type:function size:0x288 -fn_1_75B0 = .text:0x000075B0; // type:function size:0x11C -fn_1_76CC = .text:0x000076CC; // type:function size:0x40C -fn_1_7AD8 = .text:0x00007AD8; // type:function size:0x1230 -fn_1_8D08 = .text:0x00008D08; // type:function size:0x45C -fn_1_9164 = .text:0x00009164; // type:function size:0x408 -fn_1_956C = .text:0x0000956C; // type:function size:0x1B8 -fn_1_9724 = .text:0x00009724; // type:function size:0x130 -fn_1_9854 = .text:0x00009854; // type:function size:0x458 -fn_1_9CAC = .text:0x00009CAC; // type:function size:0x248 -fn_1_9EF4 = .text:0x00009EF4; // type:function size:0xEE8 -fn_1_ADDC = .text:0x0000ADDC; // type:function size:0x458 -fn_1_B234 = .text:0x0000B234; // type:function size:0x7F8 -fn_1_BA2C = .text:0x0000BA2C; // type:function size:0xF44 -fn_1_C970 = .text:0x0000C970; // type:function size:0x240 -fn_1_CBB0 = .text:0x0000CBB0; // type:function size:0xB5C -fn_1_D70C = .text:0x0000D70C; // type:function size:0xD0 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 -lbl_1_data_10 = .data:0x00000010; // type:object size:0x20 -lbl_1_data_30 = .data:0x00000030; // type:object size:0x28 -lbl_1_data_58 = .data:0x00000058; // type:object size:0x28 -lbl_1_data_80 = .data:0x00000080; // type:object size:0x20 -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC data:4byte -lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC -lbl_1_data_B8 = .data:0x000000B8; // type:object size:0xC data:4byte -lbl_1_data_C4 = .data:0x000000C4; // type:object size:0xC data:4byte -lbl_1_data_D0 = .data:0x000000D0; // type:object size:0xC -lbl_1_data_DC = .data:0x000000DC; // type:object size:0xC data:4byte -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0xC -lbl_1_data_F4 = .data:0x000000F4; // type:object size:0xC -lbl_1_data_100 = .data:0x00000100; // type:object size:0x4 -lbl_1_data_104 = .data:0x00000104; // type:object size:0xC -lbl_1_data_110 = .data:0x00000110; // type:object size:0xC -lbl_1_data_11C = .data:0x0000011C; // type:object size:0xC -lbl_1_data_128 = .data:0x00000128; // type:object size:0xA0 -lbl_1_data_1C8 = .data:0x000001C8; // type:object size:0xC -lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x10 -lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0xC -lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x50 data:float -lbl_1_data_240 = .data:0x00000240; // type:object size:0x24 -lbl_1_data_264 = .data:0x00000264; // type:object size:0xC data:4byte -lbl_1_data_270 = .data:0x00000270; // type:object size:0x80 -lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x30 -lbl_1_data_320 = .data:0x00000320; // type:object size:0x23 data:string -lbl_1_data_343 = .data:0x00000343; // type:object size:0x9 data:string -lbl_1_data_34C = .data:0x0000034C; // type:object size:0x6 data:string -lbl_1_data_352 = .data:0x00000352; // type:object size:0x1D data:string -lbl_1_data_36F = .data:0x0000036F; // type:object size:0x1D data:string -lbl_1_data_38C = .data:0x0000038C; // type:object size:0x1C -jumptable_1_data_3A8 = .data:0x000003A8; // type:object size:0x20 scope:local -lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x24 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:float -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x10 -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x10 data:4byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x50 -lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte -lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte -lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:float -lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte -lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x100 -lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x40 data:4byte -lbl_1_bss_1EC = .bss:0x000001EC; // type:object size:0x4 data:float -lbl_1_bss_1F0 = .bss:0x000001F0; // type:object size:0x4 data:4byte -lbl_1_bss_1F4 = .bss:0x000001F4; // type:object size:0x4 data:4byte -lbl_1_bss_1F8 = .bss:0x000001F8; // type:object size:0x2 data:2byte -lbl_1_bss_1FA = .bss:0x000001FA; // type:object size:0x2 data:2byte -lbl_1_bss_1FC = .bss:0x000001FC; // type:object size:0x4 data:4byte -lbl_1_bss_200 = .bss:0x00000200; // type:object size:0x4 data:4byte -lbl_1_bss_204 = .bss:0x00000204; // type:object size:0x4 data:4byte -lbl_1_bss_208 = .bss:0x00000208; // type:object size:0xC data:4byte -lbl_1_bss_214 = .bss:0x00000214; // type:object size:0xC data:4byte -lbl_1_bss_220 = .bss:0x00000220; // type:object size:0xC data:4byte -lbl_1_bss_22C = .bss:0x0000022C; // type:object size:0xC data:4byte -lbl_1_bss_238 = .bss:0x00000238; // type:object size:0x4 data:4byte -lbl_1_bss_23C = .bss:0x0000023C; // type:object size:0x18 data:4byte -lbl_1_bss_254 = .bss:0x00000254; // type:object size:0xC data:4byte diff --git a/config/GMPJ01_00/rels/mgmodedll/splits.txt b/config/GMPJ01_00/rels/mgmodedll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/mgmodedll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/mgmodedll/symbols.txt b/config/GMPJ01_00/rels/mgmodedll/symbols.txt deleted file mode 100644 index 506d2aa6..00000000 --- a/config/GMPJ01_00/rels/mgmodedll/symbols.txt +++ /dev/null @@ -1,583 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x3C4 -fn_1_464 = .text:0x00000464; // type:function size:0x294 -fn_1_6F8 = .text:0x000006F8; // type:function size:0x6F8 -fn_1_DF0 = .text:0x00000DF0; // type:function size:0xD1C -fn_1_1B0C = .text:0x00001B0C; // type:function size:0x6B8 -fn_1_21C4 = .text:0x000021C4; // type:function size:0x77C -fn_1_2940 = .text:0x00002940; // type:function size:0x810 -fn_1_3150 = .text:0x00003150; // type:function size:0x788 -fn_1_38D8 = .text:0x000038D8; // type:function size:0x738 -fn_1_4010 = .text:0x00004010; // type:function size:0x86C -fn_1_487C = .text:0x0000487C; // type:function size:0x260 -fn_1_4ADC = .text:0x00004ADC; // type:function size:0x800 -fn_1_52DC = .text:0x000052DC; // type:function size:0x218 -fn_1_54F4 = .text:0x000054F4; // type:function size:0xCC -fn_1_55C0 = .text:0x000055C0; // type:function size:0x3B4 -fn_1_5974 = .text:0x00005974; // type:function size:0xC78 -fn_1_65EC = .text:0x000065EC; // type:function size:0xC4 -fn_1_66B0 = .text:0x000066B0; // type:function size:0x2C4 -fn_1_6974 = .text:0x00006974; // type:function size:0x90 -fn_1_6A04 = .text:0x00006A04; // type:function size:0xEC -fn_1_6AF0 = .text:0x00006AF0; // type:function size:0x128 -fn_1_6C18 = .text:0x00006C18; // type:function size:0x110 -fn_1_6D28 = .text:0x00006D28; // type:function size:0x311C -fn_1_9E44 = .text:0x00009E44; // type:function size:0x120 -fn_1_9F64 = .text:0x00009F64; // type:function size:0x400 -fn_1_A364 = .text:0x0000A364; // type:function size:0x2C0 -fn_1_A624 = .text:0x0000A624; // type:function size:0x84 -fn_1_A6A8 = .text:0x0000A6A8; // type:function size:0x604 -fn_1_ACAC = .text:0x0000ACAC; // type:function size:0xF4 -fn_1_ADA0 = .text:0x0000ADA0; // type:function size:0x80 -fn_1_AE20 = .text:0x0000AE20; // type:function size:0xB0 -fn_1_AED0 = .text:0x0000AED0; // type:function size:0x6D8 -fn_1_B5A8 = .text:0x0000B5A8; // type:function size:0x1C8 -fn_1_B770 = .text:0x0000B770; // type:function size:0x248 -fn_1_B9B8 = .text:0x0000B9B8; // type:function size:0x16C -fn_1_BB24 = .text:0x0000BB24; // type:function size:0x47C -fn_1_BFA0 = .text:0x0000BFA0; // type:function size:0x128 -fn_1_C0C8 = .text:0x0000C0C8; // type:function size:0x1808 -fn_1_D8D0 = .text:0x0000D8D0; // type:function size:0x56C -fn_1_DE3C = .text:0x0000DE3C; // type:function size:0x17C -fn_1_DFB8 = .text:0x0000DFB8; // type:function size:0x74 -fn_1_E02C = .text:0x0000E02C; // type:function size:0x700 -fn_1_E72C = .text:0x0000E72C; // type:function size:0x1830 -fn_1_FF5C = .text:0x0000FF5C; // type:function size:0x608 -fn_1_10564 = .text:0x00010564; // type:function size:0xD38 -fn_1_1129C = .text:0x0001129C; // type:function size:0xBCC -fn_1_11E68 = .text:0x00011E68; // type:function size:0x3C4 -fn_1_1222C = .text:0x0001222C; // type:function size:0x938 -fn_1_12B64 = .text:0x00012B64; // type:function size:0x88 -fn_1_12BEC = .text:0x00012BEC; // type:function size:0x82C -fn_1_13418 = .text:0x00013418; // type:function size:0x18E4 -fn_1_14CFC = .text:0x00014CFC; // type:function size:0x119C -fn_1_15E98 = .text:0x00015E98; // type:function size:0x5A0 -fn_1_16438 = .text:0x00016438; // type:function size:0x6F8 -fn_1_16B30 = .text:0x00016B30; // type:function size:0xF2C -fn_1_17A5C = .text:0x00017A5C; // type:function size:0x184 -fn_1_17BE0 = .text:0x00017BE0; // type:function size:0x1218 -fn_1_18DF8 = .text:0x00018DF8; // type:function size:0x220 -fn_1_19018 = .text:0x00019018; // type:function size:0x4B0 -fn_1_194C8 = .text:0x000194C8; // type:function size:0x568 -fn_1_19A30 = .text:0x00019A30; // type:function size:0x15C -fn_1_19B8C = .text:0x00019B8C; // type:function size:0x174 -fn_1_19D00 = .text:0x00019D00; // type:function size:0x194 -fn_1_19E94 = .text:0x00019E94; // type:function size:0xC8 -fn_1_19F5C = .text:0x00019F5C; // type:function size:0x608 -fn_1_1A564 = .text:0x0001A564; // type:function size:0x13C -fn_1_1A6A0 = .text:0x0001A6A0; // type:function size:0x248 -fn_1_1A8E8 = .text:0x0001A8E8; // type:function size:0x140 -fn_1_1AA28 = .text:0x0001AA28; // type:function size:0x130 -fn_1_1AB58 = .text:0x0001AB58; // type:function size:0x130 -fn_1_1AC88 = .text:0x0001AC88; // type:function size:0x5D8 -fn_1_1B260 = .text:0x0001B260; // type:function size:0xA8C -fn_1_1BCEC = .text:0x0001BCEC; // type:function size:0x1E0 -fn_1_1BECC = .text:0x0001BECC; // type:function size:0x1D0 -fn_1_1C09C = .text:0x0001C09C; // type:function size:0xAB0 -fn_1_1CB4C = .text:0x0001CB4C; // type:function size:0x364 -fn_1_1CEB0 = .text:0x0001CEB0; // type:function size:0x5EC -fn_1_1D49C = .text:0x0001D49C; // type:function size:0x1EC -fn_1_1D688 = .text:0x0001D688; // type:function size:0x6EC -fn_1_1DD74 = .text:0x0001DD74; // type:function size:0x894 -fn_1_1E608 = .text:0x0001E608; // type:function size:0x518 -fn_1_1EB20 = .text:0x0001EB20; // type:function size:0xC8 -fn_1_1EBE8 = .text:0x0001EBE8; // type:function size:0x138 -fn_1_1ED20 = .text:0x0001ED20; // type:function size:0x138 -fn_1_1EE58 = .text:0x0001EE58; // type:function size:0x4D4 -fn_1_1F32C = .text:0x0001F32C; // type:function size:0x790 -fn_1_1FABC = .text:0x0001FABC; // type:function size:0x188 -fn_1_1FC44 = .text:0x0001FC44; // type:function size:0xAE4 -fn_1_20728 = .text:0x00020728; // type:function size:0x248 -fn_1_20970 = .text:0x00020970; // type:function size:0x514 -fn_1_20E84 = .text:0x00020E84; // type:function size:0x150 -fn_1_20FD4 = .text:0x00020FD4; // type:function size:0x1E0 -fn_1_211B4 = .text:0x000211B4; // type:function size:0x2F0 -fn_1_214A4 = .text:0x000214A4; // type:function size:0x800 -fn_1_21CA4 = .text:0x00021CA4; // type:function size:0x5E8 -fn_1_2228C = .text:0x0002228C; // type:function size:0x49C -fn_1_22728 = .text:0x00022728; // type:function size:0x4E0 -fn_1_22C08 = .text:0x00022C08; // type:function size:0x5E8 -fn_1_231F0 = .text:0x000231F0; // type:function size:0xEF4 -fn_1_240E4 = .text:0x000240E4; // type:function size:0x28 -fn_1_2410C = .text:0x0002410C; // type:function size:0x20 -fn_1_2412C = .text:0x0002412C; // type:function size:0xD8 -fn_1_24204 = .text:0x00024204; // type:function size:0xC8 -fn_1_242CC = .text:0x000242CC; // type:function size:0xBC -fn_1_24388 = .text:0x00024388; // type:function size:0x28 -fn_1_243B0 = .text:0x000243B0; // type:function size:0x20 -fn_1_243D0 = .text:0x000243D0; // type:function size:0x14 -fn_1_243E4 = .text:0x000243E4; // type:function size:0xDC -fn_1_244C0 = .text:0x000244C0; // type:function size:0xE8 -fn_1_245A8 = .text:0x000245A8; // type:function size:0x24 -fn_1_245CC = .text:0x000245CC; // type:function size:0xA48 -fn_1_25014 = .text:0x00025014; // type:function size:0x2F8 -fn_1_2530C = .text:0x0002530C; // type:function size:0x218 -fn_1_25524 = .text:0x00025524; // type:function size:0x60 -fn_1_25584 = .text:0x00025584; // type:function size:0x68 -fn_1_255EC = .text:0x000255EC; // type:function size:0x90 -fn_1_2567C = .text:0x0002567C; // type:function size:0x134 -fn_1_257B0 = .text:0x000257B0; // type:function size:0x48 -fn_1_257F8 = .text:0x000257F8; // type:function size:0x40 -fn_1_25838 = .text:0x00025838; // type:function size:0xF4 -fn_1_2592C = .text:0x0002592C; // type:function size:0x37C -fn_1_25CA8 = .text:0x00025CA8; // type:function size:0x1CC -fn_1_25E74 = .text:0x00025E74; // type:function size:0x54 -fn_1_25EC8 = .text:0x00025EC8; // type:function size:0x13C -fn_1_26004 = .text:0x00026004; // type:function size:0x78C -fn_1_26790 = .text:0x00026790; // type:function size:0x58 -fn_1_267E8 = .text:0x000267E8; // type:function size:0x290 -fn_1_26A78 = .text:0x00026A78; // type:function size:0x138 -fn_1_26BB0 = .text:0x00026BB0; // type:function size:0x78 -fn_1_26C28 = .text:0x00026C28; // type:function size:0x2C -fn_1_26C54 = .text:0x00026C54; // type:function size:0x42C -fn_1_27080 = .text:0x00027080; // type:function size:0x134 -fn_1_271B4 = .text:0x000271B4; // type:function size:0x264 -fn_1_27418 = .text:0x00027418; // type:function size:0x424 -fn_1_2783C = .text:0x0002783C; // type:function size:0x1C0 -fn_1_279FC = .text:0x000279FC; // type:function size:0x210 -fn_1_27C0C = .text:0x00027C0C; // type:function size:0xE4 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0xC data:4byte -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0xC data:4byte -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0xC data:4byte -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 data:double -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:double -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 data:double -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:double -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x8 data:double -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 data:double -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:double -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float -lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:double -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 data:double -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 data:double -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float -lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:double -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float -lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0xC data:4byte -lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float -lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float -lbl_1_rodata_5FC = .rodata:0x000005FC; // type:object size:0x4 data:float -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x4 data:float -lbl_1_rodata_604 = .rodata:0x00000604; // type:object size:0x4 data:float -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 data:float -lbl_1_rodata_60C = .rodata:0x0000060C; // type:object size:0x4 data:float -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float -lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float -lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 data:float -lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 data:float -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float -lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float -lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float -lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 data:float -lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 data:float -lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 data:float -lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 data:float -lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 data:float -lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 data:float -lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 data:float -lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float -lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float -lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 data:float -lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 data:double -lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x8 data:double -lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 data:float -lbl_1_rodata_684 = .rodata:0x00000684; // type:object size:0x4 data:float -lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x8 data:double -lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 data:double -lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 data:float -lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x8 data:double -lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float -lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 data:float -lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x4 data:float -lbl_1_rodata_6B4 = .rodata:0x000006B4; // type:object size:0xC data:4byte -lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0xC data:4byte -lbl_1_rodata_6CC = .rodata:0x000006CC; // type:object size:0xC data:4byte -lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float -lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float -lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 data:float -lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 data:float -lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 data:float -lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 data:float -lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0x4 data:float -lbl_1_rodata_6F4 = .rodata:0x000006F4; // type:object size:0x4 data:float -lbl_1_rodata_6F8 = .rodata:0x000006F8; // type:object size:0x4 data:float -lbl_1_rodata_6FC = .rodata:0x000006FC; // type:object size:0x4 data:float -lbl_1_rodata_700 = .rodata:0x00000700; // type:object size:0x4 data:float -lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x8 data:double -lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x8 data:float -lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 data:float -lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x8 data:double -lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float -lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float -lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float -lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x4 data:float -lbl_1_rodata_738 = .rodata:0x00000738; // type:object size:0x4 data:float -lbl_1_rodata_740 = .rodata:0x00000740; // type:object size:0x8 data:double -lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x8 data:double -lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 data:float -lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x8 data:double -lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x4 data:float -lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x8 data:double -lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0x8 data:double -lbl_1_rodata_778 = .rodata:0x00000778; // type:object size:0x4 data:float -lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x8 data:double -lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x4 data:float -lbl_1_rodata_78C = .rodata:0x0000078C; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x1C -lbl_1_data_1C = .data:0x0000001C; // type:object size:0x24 -lbl_1_data_40 = .data:0x00000040; // type:object size:0x30 data:4byte -lbl_1_data_70 = .data:0x00000070; // type:object size:0x16 data:string -lbl_1_data_86 = .data:0x00000086; // type:object size:0x6 -lbl_1_data_8C = .data:0x0000008C; // type:object size:0x4 -lbl_1_data_90 = .data:0x00000090; // type:object size:0xA data:string -lbl_1_data_9A = .data:0x0000009A; // type:object size:0x6 -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x2 data:2byte -lbl_1_data_A2 = .data:0x000000A2; // type:object size:0xE -lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 -lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x10 -lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x6 -lbl_1_data_D6 = .data:0x000000D6; // type:object size:0xA -lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x20 -lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 -lbl_1_data_110 = .data:0x00000110; // type:object size:0x10 -lbl_1_data_120 = .data:0x00000120; // type:object size:0x28 -lbl_1_data_148 = .data:0x00000148; // type:object size:0x2 data:2byte -lbl_1_data_14A = .data:0x0000014A; // type:object size:0x8 -lbl_1_data_152 = .data:0x00000152; // type:object size:0x16 -lbl_1_data_168 = .data:0x00000168; // type:object size:0x2 data:2byte -lbl_1_data_16A = .data:0x0000016A; // type:object size:0x32 -lbl_1_data_19C = .data:0x0000019C; // type:object size:0x10 -lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x10 -lbl_1_data_1BC = .data:0x000001BC; // type:object size:0xA data:string -lbl_1_data_1C6 = .data:0x000001C6; // type:object size:0xE data:string -lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x10 -lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x24 data:string -lbl_1_data_208 = .data:0x00000208; // type:object size:0x26 data:string -lbl_1_data_22E = .data:0x0000022E; // type:object size:0x27 data:string -lbl_1_data_255 = .data:0x00000255; // type:object size:0x1C data:string -lbl_1_data_271 = .data:0x00000271; // type:object size:0x1B data:string -lbl_1_data_28C = .data:0x0000028C; // type:object size:0x1C data:string -lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x1D data:string -lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0xC data:string -lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x1A data:string -lbl_1_data_2EB = .data:0x000002EB; // type:object size:0x1A data:string -lbl_1_data_305 = .data:0x00000305; // type:object size:0x27 -lbl_1_data_32C = .data:0x0000032C; // type:object size:0x40 data:4byte -lbl_1_data_36C = .data:0x0000036C; // type:object size:0x60 -lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x18 data:4byte -lbl_1_data_3E4 = .data:0x000003E4; // type:object size:0x64 -lbl_1_data_448 = .data:0x00000448; // type:object size:0x40 -lbl_1_data_488 = .data:0x00000488; // type:object size:0x8 data:4byte -lbl_1_data_490 = .data:0x00000490; // type:object size:0x2D8 -lbl_1_data_768 = .data:0x00000768; // type:object size:0x258 -lbl_1_data_9C0 = .data:0x000009C0; // type:object size:0x20 -lbl_1_data_9E0 = .data:0x000009E0; // type:object size:0x20 -lbl_1_data_A00 = .data:0x00000A00; // type:object size:0x2 data:2byte -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x264 data:4byte -lbl_1_bss_26C = .bss:0x0000026C; // type:object size:0x8 data:float -lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x18 data:4byte -lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x18 data:4byte -lbl_1_bss_2A4 = .bss:0x000002A4; // type:object size:0x2 data:2byte -lbl_1_bss_2A6 = .bss:0x000002A6; // type:object size:0xA data:2byte -lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 data:float -lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0xC data:4byte -lbl_1_bss_2C0 = .bss:0x000002C0; // type:object size:0xC data:4byte -lbl_1_bss_2CC = .bss:0x000002CC; // type:object size:0x2 data:2byte -lbl_1_bss_2CE = .bss:0x000002CE; // type:object size:0x2 data:2byte -lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x8 data:4byte -lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0x4 data:4byte -lbl_1_bss_2DC = .bss:0x000002DC; // type:object size:0x6 -lbl_1_bss_2E2 = .bss:0x000002E2; // type:object size:0x2 data:2byte -lbl_1_bss_2E4 = .bss:0x000002E4; // type:object size:0x2 data:2byte -lbl_1_bss_2E6 = .bss:0x000002E6; // type:object size:0x2 data:2byte -lbl_1_bss_2E8 = .bss:0x000002E8; // type:object size:0x4 data:float -lbl_1_bss_2EC = .bss:0x000002EC; // type:object size:0x2 data:2byte -lbl_1_bss_2EE = .bss:0x000002EE; // type:object size:0x2 data:2byte -lbl_1_bss_2F0 = .bss:0x000002F0; // type:object size:0x2 data:2byte -lbl_1_bss_2F4 = .bss:0x000002F4; // type:object size:0x18 -lbl_1_bss_30C = .bss:0x0000030C; // type:object size:0x2 data:2byte -lbl_1_bss_30E = .bss:0x0000030E; // type:object size:0x8 -lbl_1_bss_316 = .bss:0x00000316; // type:object size:0x2 data:2byte -lbl_1_bss_318 = .bss:0x00000318; // type:object size:0x28 data:2byte -lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x8 -lbl_1_bss_348 = .bss:0x00000348; // type:object size:0x2 data:2byte -lbl_1_bss_34A = .bss:0x0000034A; // type:object size:0x8 data:2byte -lbl_1_bss_352 = .bss:0x00000352; // type:object size:0x1E -lbl_1_bss_370 = .bss:0x00000370; // type:object size:0xC -lbl_1_bss_37C = .bss:0x0000037C; // type:object size:0xC -lbl_1_bss_388 = .bss:0x00000388; // type:object size:0x2 data:2byte -lbl_1_bss_38A = .bss:0x0000038A; // type:object size:0x2 data:2byte -lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x8 -lbl_1_bss_394 = .bss:0x00000394; // type:object size:0x2 data:2byte -lbl_1_bss_396 = .bss:0x00000396; // type:object size:0xA -lbl_1_bss_3A0 = .bss:0x000003A0; // type:object size:0x4 data:4byte -lbl_1_bss_3A4 = .bss:0x000003A4; // type:object size:0x2 data:2byte -lbl_1_bss_3A8 = .bss:0x000003A8; // type:object size:0x2 data:2byte -lbl_1_bss_3AA = .bss:0x000003AA; // type:object size:0x2 data:2byte -lbl_1_bss_3AC = .bss:0x000003AC; // type:object size:0x2 data:2byte -lbl_1_bss_3B0 = .bss:0x000003B0; // type:object size:0x2 data:2byte -lbl_1_bss_3B4 = .bss:0x000003B4; // type:object size:0x2 data:2byte -lbl_1_bss_3B8 = .bss:0x000003B8; // type:object size:0x8 data:2byte -lbl_1_bss_3C0 = .bss:0x000003C0; // type:object size:0x4 data:4byte -lbl_1_bss_3C4 = .bss:0x000003C4; // type:object size:0x4 data:4byte -lbl_1_bss_3C8 = .bss:0x000003C8; // type:object size:0x4 data:4byte -lbl_1_bss_3CC = .bss:0x000003CC; // type:object size:0x1A40 -lbl_1_bss_1E0C = .bss:0x00001E0C; // type:object size:0x4 data:4byte -lbl_1_bss_1E10 = .bss:0x00001E10; // type:object size:0x240 data:4byte -lbl_1_bss_2050 = .bss:0x00002050; // type:object size:0x5A -lbl_1_bss_20AA = .bss:0x000020AA; // type:object size:0x2 data:2byte -lbl_1_bss_20AC = .bss:0x000020AC; // type:object size:0x14 data:2byte -lbl_1_bss_20C0 = .bss:0x000020C0; // type:object size:0x578 -lbl_1_bss_2638 = .bss:0x00002638; // type:object size:0x14 data:2byte -lbl_1_bss_264C = .bss:0x0000264C; // type:object size:0x578 -lbl_1_bss_2BC4 = .bss:0x00002BC4; // type:object size:0x50 -lbl_1_bss_2C14 = .bss:0x00002C14; // type:object size:0x8 -lbl_1_bss_2C1C = .bss:0x00002C1C; // type:object size:0x8 -lbl_1_bss_2C24 = .bss:0x00002C24; // type:object size:0x8 -lbl_1_bss_2C2C = .bss:0x00002C2C; // type:object size:0x3A data:2byte -lbl_1_bss_2C66 = .bss:0x00002C66; // type:object size:0x1A data:2byte -lbl_1_bss_2C80 = .bss:0x00002C80; // type:object size:0x1A data:2byte diff --git a/config/GMPJ01_00/rels/modeltestDll/splits.txt b/config/GMPJ01_00/rels/modeltestDll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/modeltestDll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/modeltestDll/symbols.txt b/config/GMPJ01_00/rels/modeltestDll/symbols.txt deleted file mode 100644 index 3c87f506..00000000 --- a/config/GMPJ01_00/rels/modeltestDll/symbols.txt +++ /dev/null @@ -1,230 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x1FC -fn_1_29C = .text:0x0000029C; // type:function size:0xC9C -fn_1_F38 = .text:0x00000F38; // type:function size:0x64 -fn_1_F9C = .text:0x00000F9C; // type:function size:0x1158 -fn_1_20F4 = .text:0x000020F4; // type:function size:0x804 -fn_1_28F8 = .text:0x000028F8; // type:function size:0x204 -fn_1_2AFC = .text:0x00002AFC; // type:function size:0x6C -fn_1_2B68 = .text:0x00002B68; // type:function size:0x948 -fn_1_34B0 = .text:0x000034B0; // type:function size:0x32C -fn_1_37DC = .text:0x000037DC; // type:function size:0xBC0 -fn_1_439C = .text:0x0000439C; // type:function size:0x354 -fn_1_46F0 = .text:0x000046F0; // type:function size:0x3D8 -fn_1_4AC8 = .text:0x00004AC8; // type:function size:0x330 -fn_1_4DF8 = .text:0x00004DF8; // type:function size:0xC68 -fn_1_5A60 = .text:0x00005A60; // type:function size:0x348 -fn_1_5DA8 = .text:0x00005DA8; // type:function size:0xC20 -fn_1_69C8 = .text:0x000069C8; // type:function size:0x118 -fn_1_6AE0 = .text:0x00006AE0; // type:function size:0x166C -fn_1_814C = .text:0x0000814C; // type:function size:0x17C -fn_1_82C8 = .text:0x000082C8; // type:function size:0xEC -fn_1_83B4 = .text:0x000083B4; // type:function size:0x304 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0xC data:4byte -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0xC data:4byte -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x10 data:2byte -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0xC data:4byte -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0xC data:4byte -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0xC data:4byte -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0xC data:4byte -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0xC data:4byte -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0xC data:4byte -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:4byte -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 data:4byte -lbl_1_data_20 = .data:0x00000020; // type:object size:0x28 data:string -lbl_1_data_48 = .data:0x00000048; // type:object size:0x9 data:string -lbl_1_data_51 = .data:0x00000051; // type:object size:0x9 data:string -lbl_1_data_5A = .data:0x0000005A; // type:object size:0x9 data:string -lbl_1_data_63 = .data:0x00000063; // type:object size:0x9 data:string -lbl_1_data_6C = .data:0x0000006C; // type:object size:0x9 data:string -lbl_1_data_75 = .data:0x00000075; // type:object size:0x9 data:string -lbl_1_data_7E = .data:0x0000007E; // type:object size:0x9 data:string -lbl_1_data_87 = .data:0x00000087; // type:object size:0x9 data:string -lbl_1_data_90 = .data:0x00000090; // type:object size:0x9 data:string -lbl_1_data_99 = .data:0x00000099; // type:object size:0x9 data:string -lbl_1_data_A2 = .data:0x000000A2; // type:object size:0x9 data:string -lbl_1_data_AB = .data:0x000000AB; // type:object size:0x9 data:string -lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x9 data:string -lbl_1_data_BD = .data:0x000000BD; // type:object size:0x9 data:string -lbl_1_data_C6 = .data:0x000000C6; // type:object size:0x9 data:string -lbl_1_data_CF = .data:0x000000CF; // type:object size:0x9 data:string -lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x40 -lbl_1_data_118 = .data:0x00000118; // type:object size:0x50 data:float -lbl_1_data_168 = .data:0x00000168; // type:object size:0xA0 -lbl_1_data_208 = .data:0x00000208; // type:object size:0x50 -lbl_1_data_258 = .data:0x00000258; // type:object size:0x50 -lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x1A data:string -lbl_1_data_2C2 = .data:0x000002C2; // type:object size:0x16 -lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x10 data:string -lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x4 data:string -lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x2C data:string -lbl_1_data_318 = .data:0x00000318; // type:object size:0x40 -lbl_1_data_358 = .data:0x00000358; // type:object size:0x8 -lbl_1_data_360 = .data:0x00000360; // type:object size:0x28 data:string -lbl_1_data_388 = .data:0x00000388; // type:object size:0x28 data:string -lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x58 -lbl_1_data_408 = .data:0x00000408; // type:object size:0x58 -lbl_1_data_460 = .data:0x00000460; // type:object size:0x58 -lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0x58 -lbl_1_data_510 = .data:0x00000510; // type:object size:0x58 -lbl_1_data_568 = .data:0x00000568; // type:object size:0x58 -lbl_1_data_5C0 = .data:0x000005C0; // type:object size:0x58 -lbl_1_data_618 = .data:0x00000618; // type:object size:0x58 -lbl_1_data_670 = .data:0x00000670; // type:object size:0x20 -lbl_1_data_690 = .data:0x00000690; // type:object size:0x10 data:string -lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0xD data:string -lbl_1_data_6AD = .data:0x000006AD; // type:object size:0xD data:string -lbl_1_data_6BA = .data:0x000006BA; // type:object size:0xD data:string -lbl_1_data_6C7 = .data:0x000006C7; // type:object size:0xB data:string -lbl_1_data_6D2 = .data:0x000006D2; // type:object size:0x8 data:string -lbl_1_data_6DA = .data:0x000006DA; // type:object size:0xF data:string -lbl_1_data_6E9 = .data:0x000006E9; // type:object size:0xB -lbl_1_data_6F4 = .data:0x000006F4; // type:object size:0x60 -lbl_1_data_754 = .data:0x00000754; // type:object size:0x4 data:4byte -lbl_1_data_758 = .data:0x00000758; // type:object size:0x12 -lbl_1_data_76A = .data:0x0000076A; // type:object size:0x2E -lbl_1_data_798 = .data:0x00000798; // type:object size:0x14 -lbl_1_data_7AC = .data:0x000007AC; // type:object size:0x2 data:2byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x1 data:byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x10 data:4byte -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x414 -lbl_1_bss_454 = .bss:0x00000454; // type:object size:0x4 data:4byte -lbl_1_bss_458 = .bss:0x00000458; // type:object size:0x2 data:2byte -lbl_1_bss_45A = .bss:0x0000045A; // type:object size:0x6 data:2byte -lbl_1_bss_460 = .bss:0x00000460; // type:object size:0x204 data:2byte -lbl_1_bss_664 = .bss:0x00000664; // type:object size:0x200 data:2byte -lbl_1_bss_864 = .bss:0x00000864; // type:object size:0x20 -lbl_1_bss_884 = .bss:0x00000884; // type:object size:0x2 data:2byte -lbl_1_bss_888 = .bss:0x00000888; // type:object size:0x2 data:2byte -lbl_1_bss_88A = .bss:0x0000088A; // type:object size:0x100 -lbl_1_bss_98A = .bss:0x0000098A; // type:object size:0x10 data:2byte -lbl_1_bss_99A = .bss:0x0000099A; // type:object size:0x2 data:2byte -lbl_1_bss_99C = .bss:0x0000099C; // type:object size:0x2 data:2byte -lbl_1_bss_9A0 = .bss:0x000009A0; // type:object size:0x4 data:4byte -lbl_1_bss_9A4 = .bss:0x000009A4; // type:object size:0x4 data:4byte -lbl_1_bss_9A8 = .bss:0x000009A8; // type:object size:0x4 data:4byte -lbl_1_bss_9AC = .bss:0x000009AC; // type:object size:0x40 -lbl_1_bss_9EC = .bss:0x000009EC; // type:object size:0x8 -lbl_1_bss_9F4 = .bss:0x000009F4; // type:object size:0x4 data:4byte -lbl_1_bss_9F8 = .bss:0x000009F8; // type:object size:0x8 data:4byte -lbl_1_bss_A00 = .bss:0x00000A00; // type:object size:0x4 data:4byte -lbl_1_bss_A04 = .bss:0x00000A04; // type:object size:0x4 data:4byte -lbl_1_bss_A08 = .bss:0x00000A08; // type:object size:0x2 data:2byte -lbl_1_bss_A0C = .bss:0x00000A0C; // type:object size:0x8 data:float -lbl_1_bss_A14 = .bss:0x00000A14; // type:object size:0x4 data:4byte -lbl_1_bss_A18 = .bss:0x00000A18; // type:object size:0xA4 data:float -lbl_1_bss_ABC = .bss:0x00000ABC; // type:object size:0x4 data:4byte -lbl_1_bss_AC0 = .bss:0x00000AC0; // type:object size:0x8 data:4byte diff --git a/config/GMPJ01_00/rels/present/splits.txt b/config/GMPJ01_00/rels/present/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/present/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/present/symbols.txt b/config/GMPJ01_00/rels/present/symbols.txt deleted file mode 100644 index e6b4d8f0..00000000 --- a/config/GMPJ01_00/rels/present/symbols.txt +++ /dev/null @@ -1,189 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0xA4 -fn_1_144 = .text:0x00000144; // type:function size:0x110 -fn_1_254 = .text:0x00000254; // type:function size:0xE0 -fn_1_334 = .text:0x00000334; // type:function size:0x128 -fn_1_45C = .text:0x0000045C; // type:function size:0xF4 -fn_1_550 = .text:0x00000550; // type:function size:0x34 -fn_1_584 = .text:0x00000584; // type:function size:0x34 -fn_1_5B8 = .text:0x000005B8; // type:function size:0x34 -fn_1_5EC = .text:0x000005EC; // type:function size:0xC8 -fn_1_6B4 = .text:0x000006B4; // type:function size:0x23C -fn_1_8F0 = .text:0x000008F0; // type:function size:0x30 -fn_1_920 = .text:0x00000920; // type:function size:0x84 -fn_1_9A4 = .text:0x000009A4; // type:function size:0x84 -fn_1_A28 = .text:0x00000A28; // type:function size:0x84 -fn_1_AAC = .text:0x00000AAC; // type:function size:0x30 -fn_1_ADC = .text:0x00000ADC; // type:function size:0x30 -fn_1_B0C = .text:0x00000B0C; // type:function size:0x30 -fn_1_B3C = .text:0x00000B3C; // type:function size:0x30 -fn_1_B6C = .text:0x00000B6C; // type:function size:0x8C -fn_1_BF8 = .text:0x00000BF8; // type:function size:0x28 -fn_1_C20 = .text:0x00000C20; // type:function size:0x578 -fn_1_1198 = .text:0x00001198; // type:function size:0x200 -fn_1_1398 = .text:0x00001398; // type:function size:0xC0 -fn_1_1458 = .text:0x00001458; // type:function size:0x32C -fn_1_1784 = .text:0x00001784; // type:function size:0x88 -fn_1_180C = .text:0x0000180C; // type:function size:0x44 -fn_1_1850 = .text:0x00001850; // type:function size:0x1C -fn_1_186C = .text:0x0000186C; // type:function size:0xBC -fn_1_1928 = .text:0x00001928; // type:function size:0x680 -fn_1_1FA8 = .text:0x00001FA8; // type:function size:0x140 -fn_1_20E8 = .text:0x000020E8; // type:function size:0x5A4 -fn_1_268C = .text:0x0000268C; // type:function size:0x7C -fn_1_2708 = .text:0x00002708; // type:function size:0x6C -fn_1_2774 = .text:0x00002774; // type:function size:0x17C -fn_1_28F0 = .text:0x000028F0; // type:function size:0x34 -fn_1_2924 = .text:0x00002924; // type:function size:0x260 -fn_1_2B84 = .text:0x00002B84; // type:function size:0x48 -fn_1_2BCC = .text:0x00002BCC; // type:function size:0x90 -fn_1_2C5C = .text:0x00002C5C; // type:function size:0x738 -fn_1_3394 = .text:0x00003394; // type:function size:0x18 -fn_1_33AC = .text:0x000033AC; // type:function size:0x590 -fn_1_393C = .text:0x0000393C; // type:function size:0x6C -fn_1_39A8 = .text:0x000039A8; // type:function size:0x170 -fn_1_3B18 = .text:0x00003B18; // type:function size:0x74 -fn_1_3B8C = .text:0x00003B8C; // type:function size:0x22C -fn_1_3DB8 = .text:0x00003DB8; // type:function size:0xEC -fn_1_3EA4 = .text:0x00003EA4; // type:function size:0x19C -fn_1_4040 = .text:0x00004040; // type:function size:0x40 -fn_1_4080 = .text:0x00004080; // type:function size:0x18 -fn_1_4098 = .text:0x00004098; // type:function size:0x18 -fn_1_40B0 = .text:0x000040B0; // type:function size:0x54 -fn_1_4104 = .text:0x00004104; // type:function size:0x40 -fn_1_4144 = .text:0x00004144; // type:function size:0x40 -fn_1_4184 = .text:0x00004184; // type:function size:0xC -fn_1_4190 = .text:0x00004190; // type:function size:0xC -fn_1_419C = .text:0x0000419C; // type:function size:0x20 -fn_1_41BC = .text:0x000041BC; // type:function size:0x24 -fn_1_41E0 = .text:0x000041E0; // type:function size:0x114 -fn_1_42F4 = .text:0x000042F4; // type:function size:0x240 -fn_1_4534 = .text:0x00004534; // type:function size:0x8C -fn_1_45C0 = .text:0x000045C0; // type:function size:0x44 -fn_1_4604 = .text:0x00004604; // type:function size:0x1C -fn_1_4620 = .text:0x00004620; // type:function size:0x260 -fn_1_4880 = .text:0x00004880; // type:function size:0x184 -fn_1_4A04 = .text:0x00004A04; // type:function size:0x2E8 -fn_1_4CEC = .text:0x00004CEC; // type:function size:0x104 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x218 -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x708 -lbl_1_rodata_9C0 = .rodata:0x000009C0; // type:object size:0x4 data:float -lbl_1_rodata_9C4 = .rodata:0x000009C4; // type:object size:0x4 data:float -lbl_1_rodata_9C8 = .rodata:0x000009C8; // type:object size:0x4 data:float -lbl_1_rodata_9D0 = .rodata:0x000009D0; // type:object size:0x8 data:double -lbl_1_rodata_9D8 = .rodata:0x000009D8; // type:object size:0x20 -lbl_1_rodata_9F8 = .rodata:0x000009F8; // type:object size:0x28 -lbl_1_rodata_A20 = .rodata:0x00000A20; // type:object size:0x4 data:float -lbl_1_rodata_A24 = .rodata:0x00000A24; // type:object size:0x4 data:float -lbl_1_rodata_A28 = .rodata:0x00000A28; // type:object size:0x4 data:float -lbl_1_rodata_A2C = .rodata:0x00000A2C; // type:object size:0x4 data:float -lbl_1_rodata_A30 = .rodata:0x00000A30; // type:object size:0x4 data:float -lbl_1_rodata_A34 = .rodata:0x00000A34; // type:object size:0x4 data:float -lbl_1_rodata_A38 = .rodata:0x00000A38; // type:object size:0x4 data:float -lbl_1_rodata_A3C = .rodata:0x00000A3C; // type:object size:0x4 data:float -lbl_1_rodata_A40 = .rodata:0x00000A40; // type:object size:0x4 data:float -lbl_1_rodata_A44 = .rodata:0x00000A44; // type:object size:0x4 data:float -lbl_1_rodata_A48 = .rodata:0x00000A48; // type:object size:0x4 data:float -lbl_1_rodata_A50 = .rodata:0x00000A50; // type:object size:0x8 data:double -lbl_1_rodata_A58 = .rodata:0x00000A58; // type:object size:0x4 data:float -lbl_1_rodata_A60 = .rodata:0x00000A60; // type:object size:0x8 data:double -lbl_1_rodata_A68 = .rodata:0x00000A68; // type:object size:0x8 data:double -lbl_1_rodata_A70 = .rodata:0x00000A70; // type:object size:0x4 data:float -lbl_1_rodata_A74 = .rodata:0x00000A74; // type:object size:0x28 -lbl_1_rodata_A9C = .rodata:0x00000A9C; // type:object size:0x4 data:float -lbl_1_rodata_AA0 = .rodata:0x00000AA0; // type:object size:0x4 data:float -lbl_1_rodata_AA4 = .rodata:0x00000AA4; // type:object size:0x4 data:float -lbl_1_rodata_AA8 = .rodata:0x00000AA8; // type:object size:0x4 data:float -lbl_1_rodata_AAC = .rodata:0x00000AAC; // type:object size:0x4 data:float -lbl_1_rodata_AB0 = .rodata:0x00000AB0; // type:object size:0x4 data:float -lbl_1_rodata_AB8 = .rodata:0x00000AB8; // type:object size:0x8 data:double -lbl_1_rodata_AC0 = .rodata:0x00000AC0; // type:object size:0x8 data:double -lbl_1_rodata_AC8 = .rodata:0x00000AC8; // type:object size:0x28 -lbl_1_rodata_AF0 = .rodata:0x00000AF0; // type:object size:0x28 -lbl_1_rodata_B18 = .rodata:0x00000B18; // type:object size:0x28 -lbl_1_rodata_B40 = .rodata:0x00000B40; // type:object size:0x28 -lbl_1_rodata_B68 = .rodata:0x00000B68; // type:object size:0x28 -lbl_1_rodata_B90 = .rodata:0x00000B90; // type:object size:0x4 data:float -lbl_1_rodata_B94 = .rodata:0x00000B94; // type:object size:0x4 data:float -lbl_1_rodata_B98 = .rodata:0x00000B98; // type:object size:0x4 data:float -lbl_1_rodata_B9C = .rodata:0x00000B9C; // type:object size:0x4 data:float -lbl_1_rodata_BA0 = .rodata:0x00000BA0; // type:object size:0x4 data:float -lbl_1_rodata_BA4 = .rodata:0x00000BA4; // type:object size:0xC -lbl_1_rodata_BB0 = .rodata:0x00000BB0; // type:object size:0x4 data:float -lbl_1_rodata_BB4 = .rodata:0x00000BB4; // type:object size:0x4 data:float -lbl_1_rodata_BB8 = .rodata:0x00000BB8; // type:object size:0x4 data:float -lbl_1_rodata_BBC = .rodata:0x00000BBC; // type:object size:0x4 data:float -lbl_1_rodata_BC0 = .rodata:0x00000BC0; // type:object size:0x4 data:float -lbl_1_rodata_BC4 = .rodata:0x00000BC4; // type:object size:0x4 data:float -lbl_1_rodata_BC8 = .rodata:0x00000BC8; // type:object size:0x4 data:float -lbl_1_rodata_BCC = .rodata:0x00000BCC; // type:object size:0x4 data:float -lbl_1_rodata_BD0 = .rodata:0x00000BD0; // type:object size:0x8 data:float -lbl_1_rodata_BD8 = .rodata:0x00000BD8; // type:object size:0xC -lbl_1_rodata_BE4 = .rodata:0x00000BE4; // type:object size:0x4 data:float -lbl_1_rodata_BE8 = .rodata:0x00000BE8; // type:object size:0x4 data:float -lbl_1_rodata_BEC = .rodata:0x00000BEC; // type:object size:0x4 data:float -lbl_1_rodata_BF0 = .rodata:0x00000BF0; // type:object size:0x4 data:float -lbl_1_rodata_BF4 = .rodata:0x00000BF4; // type:object size:0x4 data:float -lbl_1_rodata_BF8 = .rodata:0x00000BF8; // type:object size:0x8 data:double -lbl_1_rodata_C00 = .rodata:0x00000C00; // type:object size:0x4 data:float -lbl_1_rodata_C08 = .rodata:0x00000C08; // type:object size:0x8 data:double -lbl_1_rodata_C10 = .rodata:0x00000C10; // type:object size:0x4 data:float -lbl_1_rodata_C14 = .rodata:0x00000C14; // type:object size:0x4 data:float -lbl_1_rodata_C18 = .rodata:0x00000C18; // type:object size:0x4 data:float -lbl_1_rodata_C1C = .rodata:0x00000C1C; // type:object size:0x4 data:float -lbl_1_rodata_C20 = .rodata:0x00000C20; // type:object size:0x8 data:double -lbl_1_rodata_C28 = .rodata:0x00000C28; // type:object size:0x8 data:double -lbl_1_rodata_C30 = .rodata:0x00000C30; // type:object size:0x4 data:float -lbl_1_rodata_C34 = .rodata:0x00000C34; // type:object size:0x4 data:float -lbl_1_rodata_C38 = .rodata:0x00000C38; // type:object size:0x4 data:float -lbl_1_rodata_C40 = .rodata:0x00000C40; // type:object size:0x8 data:double -lbl_1_rodata_C48 = .rodata:0x00000C48; // type:object size:0x4 data:float -lbl_1_rodata_C4C = .rodata:0x00000C4C; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B data:string -lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1B data:string -lbl_1_data_36 = .data:0x00000036; // type:object size:0x1A -lbl_1_data_50 = .data:0x00000050; // type:object size:0x1C -lbl_1_data_6C = .data:0x0000006C; // type:object size:0x10 data:4byte -lbl_1_data_7C = .data:0x0000007C; // type:object size:0x8 -lbl_1_data_84 = .data:0x00000084; // type:object size:0x20 -jumptable_1_data_A4 = .data:0x000000A4; // type:object size:0x2C scope:local -jumptable_1_data_D0 = .data:0x000000D0; // type:object size:0x1C scope:local -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x24 -lbl_1_data_114 = .data:0x00000114; // type:object size:0x2A data:string -lbl_1_data_13E = .data:0x0000013E; // type:object size:0x2E -jumptable_1_data_16C = .data:0x0000016C; // type:object size:0x34 scope:local -lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0xC data:4byte -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/resultDll/splits.txt b/config/GMPJ01_00/rels/resultDll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/resultDll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/resultDll/symbols.txt b/config/GMPJ01_00/rels/resultDll/symbols.txt deleted file mode 100644 index 07d67720..00000000 --- a/config/GMPJ01_00/rels/resultDll/symbols.txt +++ /dev/null @@ -1,203 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x438 -fn_1_4D8 = .text:0x000004D8; // type:function size:0x3B0 -fn_1_888 = .text:0x00000888; // type:function size:0x2F0 -fn_1_B78 = .text:0x00000B78; // type:function size:0x13D4 -fn_1_1F4C = .text:0x00001F4C; // type:function size:0xB90 -fn_1_2ADC = .text:0x00002ADC; // type:function size:0x1074 -fn_1_3B50 = .text:0x00003B50; // type:function size:0x15C -fn_1_3CAC = .text:0x00003CAC; // type:function size:0x15C -fn_1_3E08 = .text:0x00003E08; // type:function size:0x1D0 -fn_1_3FD8 = .text:0x00003FD8; // type:function size:0x104 -fn_1_40DC = .text:0x000040DC; // type:function size:0x160 -fn_1_423C = .text:0x0000423C; // type:function size:0x3E0 -fn_1_461C = .text:0x0000461C; // type:function size:0x1E0 -fn_1_47FC = .text:0x000047FC; // type:function size:0x1084 -fn_1_5880 = .text:0x00005880; // type:function size:0xC10 -fn_1_6490 = .text:0x00006490; // type:function size:0x2D0 -fn_1_6760 = .text:0x00006760; // type:function size:0xC4 -fn_1_6824 = .text:0x00006824; // type:function size:0xD20 -fn_1_7544 = .text:0x00007544; // type:function size:0xA54 -fn_1_7F98 = .text:0x00007F98; // type:function size:0x3A0 -fn_1_8338 = .text:0x00008338; // type:function size:0x14C -fn_1_8484 = .text:0x00008484; // type:function size:0x1D4 -fn_1_8658 = .text:0x00008658; // type:function size:0x84 -fn_1_86DC = .text:0x000086DC; // type:function size:0x2BC -fn_1_8998 = .text:0x00008998; // type:function size:0x320 -fn_1_8CB8 = .text:0x00008CB8; // type:function size:0x340 -fn_1_8FF8 = .text:0x00008FF8; // type:function size:0x284 -fn_1_927C = .text:0x0000927C; // type:function size:0x138 -fn_1_93B4 = .text:0x000093B4; // type:function size:0x78 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x10 data:4byte -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0x2A4 -lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0xDC data:4byte -lbl_1_data_380 = .data:0x00000380; // type:object size:0x2 data:2byte -lbl_1_data_382 = .data:0x00000382; // type:object size:0x26 data:string -lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x18 -lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x18 -lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x20 -lbl_1_data_3F8 = .data:0x000003F8; // type:object size:0x10 -lbl_1_data_408 = .data:0x00000408; // type:object size:0x30 -lbl_1_data_438 = .data:0x00000438; // type:object size:0x10 -lbl_1_data_448 = .data:0x00000448; // type:object size:0x8 -lbl_1_data_450 = .data:0x00000450; // type:object size:0x38 -lbl_1_data_488 = .data:0x00000488; // type:object size:0x30 -lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0x11 data:string -lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0x11 data:string -lbl_1_data_4DA = .data:0x000004DA; // type:object size:0xE -lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x270 -lbl_1_data_758 = .data:0x00000758; // type:object size:0x28 -lbl_1_data_780 = .data:0x00000780; // type:object size:0x70 -lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x40 -lbl_1_data_830 = .data:0x00000830; // type:object size:0x10 -lbl_1_data_840 = .data:0x00000840; // type:object size:0x20 -lbl_1_data_860 = .data:0x00000860; // type:object size:0x20 -lbl_1_data_880 = .data:0x00000880; // type:object size:0x20 -lbl_1_data_8A0 = .data:0x000008A0; // type:object size:0x6 data:2byte -lbl_1_data_8A6 = .data:0x000008A6; // type:object size:0x8 data:string -lbl_1_data_8AE = .data:0x000008AE; // type:object size:0xA -lbl_1_data_8B8 = .data:0x000008B8; // type:object size:0x60 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte -lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x8 -lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x28 -lbl_1_bss_3A = .bss:0x0000003A; // type:object size:0x8 -lbl_1_bss_42 = .bss:0x00000042; // type:object size:0x8 -lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x8 -lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x2 data:2byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x40 -lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x2 data:2byte -lbl_1_bss_9E = .bss:0x0000009E; // type:object size:0x30 -lbl_1_bss_CE = .bss:0x000000CE; // type:object size:0x12 -lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte -lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x60 -lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x14 -lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x10 -lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x8 -lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x2 data:2byte -lbl_1_bss_172 = .bss:0x00000172; // type:object size:0x2 data:2byte -lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x4 data:4byte -lbl_1_bss_178 = .bss:0x00000178; // type:object size:0x4 data:4byte -lbl_1_bss_17C = .bss:0x0000017C; // type:object size:0x2 data:2byte -lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x4 data:4byte -lbl_1_bss_184 = .bss:0x00000184; // type:object size:0xC data:4byte -lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:4byte -lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x1680 -lbl_1_bss_1814 = .bss:0x00001814; // type:object size:0x14 -lbl_1_bss_1828 = .bss:0x00001828; // type:object size:0x168 data:2byte -lbl_1_bss_1990 = .bss:0x00001990; // type:object size:0x20 -lbl_1_bss_19B0 = .bss:0x000019B0; // type:object size:0x8 -lbl_1_bss_19B8 = .bss:0x000019B8; // type:object size:0x28 -lbl_1_bss_19E0 = .bss:0x000019E0; // type:object size:0x8 -lbl_1_bss_19E8 = .bss:0x000019E8; // type:object size:0x8 -lbl_1_bss_19F0 = .bss:0x000019F0; // type:object size:0x2A -lbl_1_bss_1A1A = .bss:0x00001A1A; // type:object size:0x42 data:2byte -lbl_1_bss_1A5C = .bss:0x00001A5C; // type:object size:0x40 data:2byte -lbl_1_bss_1A9C = .bss:0x00001A9C; // type:object size:0x40 data:2byte diff --git a/configure.py b/configure.py index aa1b0b54..7ef9db2f 100644 --- a/configure.py +++ b/configure.py @@ -824,13 +824,13 @@ config.libs = [ "objects": [ Object(Matching, "REL/executor.c"), Object(Matching, "REL/empty.c"), # Must be marked as matching - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/board_executor.c"), + Object(Matching, "REL/board_executor.c"), ], }, Rel( "_minigameDLL", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/_minigameDLL/_minigameDLL.c"), + Object(Matching, "REL/_minigameDLL/_minigameDLL.c"), }, ), Rel( @@ -843,8 +843,8 @@ config.libs = [ Rel( "E3setupDLL", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/E3setupDLL/mgselect.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/E3setupDLL/main.c"), + Object(Matching, "REL/E3setupDLL/mgselect.c"), + Object(Matching, "REL/E3setupDLL/main.c"), }, ), Rel( @@ -857,92 +857,92 @@ config.libs = [ Rel( "m401Dll", # Manta Rings objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m401Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m401Dll/main_ex.c"), + Object(Matching, "REL/m401Dll/main.c"), + Object(Matching, "REL/m401Dll/main_ex.c"), }, ), Rel( "m402Dll", # Slime Time objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m402Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m402Dll/main.c"), }, ), Rel( "m403Dll", # Booksquirm objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m403Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m403Dll/scene.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m403Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m403Dll/scene.c"), }, ), Rel( "m404Dll", # Trace Race objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m404Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m404Dll/main.c"), }, ), Rel( "m405Dll", # Mario Medley objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m405Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m405Dll/main.c"), }, ), Rel( "m406Dll", # Avalanche! objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m406Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m406Dll/map.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m406Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m406Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m406Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m406Dll/player.c"), }, ), Rel( "m407dll", # Domination objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m407dll/player.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m407dll/map.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m407dll/camera.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m407dll/whomp.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m407dll/whomp_score.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m407dll/effect.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m407dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m407dll/score.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m407dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m407dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m407dll/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m407dll/whomp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m407dll/whomp_score.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m407dll/effect.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m407dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m407dll/score.c"), }, ), Rel( "m408Dll", # Paratrooper Plunge objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m408Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m408Dll/camera.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m408Dll/stage.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m408Dll/object.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m408Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m408Dll/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m408Dll/stage.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m408Dll/object.c"), }, ), Rel( "m409Dll", # Toad's Quick Draw objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m409Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m409Dll/player.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m409Dll/cursor.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m409Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m409Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m409Dll/cursor.c"), }, ), Rel( "m410Dll", # Three Throw objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m410Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m410Dll/stage.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m410Dll/game.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m410Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m410Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m410Dll/stage.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m410Dll/game.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m410Dll/player.c"), }, ), Rel( "m411Dll", # Photo Finish objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m411Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m411Dll/main.c"), }, ), Rel( "m412Dll", # Mr. Blizzard's Brigade objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m412Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m412Dll/main.c"), }, ), Rel( @@ -954,30 +954,30 @@ config.libs = [ Rel( "m414Dll", # Long Claw of the Law objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m414Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m414Dll/main.c"), }, ), Rel( "m415Dll", # Stamp Out! objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m415Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m415Dll/main.c"), Object(NonMatching, "REL/m415Dll/map.c"), }, ), Rel( "m416Dll", # Candlelight Flight objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m416Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m416Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m416Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m416Dll/map.c"), }, ), Rel( "m417Dll", # Makin' Waves objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m417Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m417Dll/water.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m417Dll/player.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m417Dll/sequence.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m417Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m417Dll/water.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m417Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m417Dll/sequence.c"), }, ), Rel( @@ -996,19 +996,19 @@ config.libs = [ Rel( "m420dll", # Fish n' Drips objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m420dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m420dll/camera.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m420dll/player.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m420dll/map.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m420dll/rand.c"), + Object(Matching, "REL/m420dll/main.c"), + Object(Matching, "REL/m420dll/camera.c"), + Object(Matching, "REL/m420dll/player.c"), + Object(Matching, "REL/m420dll/map.c"), + Object(Matching, "REL/m420dll/rand.c"), }, ), Rel( "m421Dll", # Hop or Pop objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m421Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m421Dll/player.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m421Dll/map.c"), + Object(Matching, "REL/m421Dll/main.c"), + Object(Matching, "REL/m421Dll/player.c"), + Object(Matching, "REL/m421Dll/map.c"), }, ), Rel( @@ -1078,14 +1078,14 @@ config.libs = [ Rel( "m431Dll", # Order Up objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m431Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m431Dll/object.c"), + Object(Matching, "REL/m431Dll/main.c"), + Object(Matching, "REL/m431Dll/object.c"), }, ), Rel( "m432Dll", # Dungeon Duos objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m432Dll/main.c"), + Object(Matching, "REL/m432Dll/main.c"), }, ), Rel( @@ -1099,10 +1099,10 @@ config.libs = [ Rel( "m434Dll", # Cheep Cheep Sweep objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m434Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m434Dll/map.c"), + Object(Matching, "REL/m434Dll/main.c"), + Object(Matching, "REL/m434Dll/map.c"), Object(NonMatching, "REL/m434Dll/player.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m434Dll/fish.c"), + Object(Matching, "REL/m434Dll/fish.c"), }, ), Rel( @@ -1115,15 +1115,15 @@ config.libs = [ Rel( "m436Dll", # Fruits of Doom objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m436Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m436Dll/sequence.c"), + Object(Matching, "REL/m436Dll/main.c"), + Object(Matching, "REL/m436Dll/sequence.c"), }, ), Rel( "m437Dll", # Balloon of Doom objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m437Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m437Dll/sequence.c"), + Object(Matching, "REL/m437Dll/main.c"), + Object(Matching, "REL/m437Dll/sequence.c"), }, ), Rel( @@ -1137,35 +1137,35 @@ config.libs = [ Rel( "m439Dll", # Paths of Peril objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m439Dll/main.c"), + Object(Matching, "REL/m439Dll/main.c"), }, ), Rel( "m440Dll", # Bowser's Bigger Blast objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m440Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m440Dll/object.c"), + Object(Matching, "REL/m440Dll/main.c"), + Object(Matching, "REL/m440Dll/object.c"), }, ), Rel( "m441Dll", # Butterfly Blitz objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m441Dll/main.c"), + Object(Matching, "REL/m441Dll/main.c"), }, ), Rel( "m442Dll", # Barrel Baron objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m442Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m442Dll/score.c"), + Object(Matching, "REL/m442Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m442Dll/score.c"), }, ), Rel( "m443Dll", # Mario Speedwagons objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m443Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m443Dll/map.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m443Dll/player.c"), + Object(Matching, "REL/m443Dll/main.c"), + Object(Matching, "REL/m443Dll/map.c"), + Object(Matching, "REL/m443Dll/player.c"), }, ), Rel( @@ -1180,37 +1180,37 @@ config.libs = [ Rel( "m445Dll", # Bowser Bop objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m445Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m445Dll/main.c"), }, ), Rel( "m446dll", # Mystic Match 'Em objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m446Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m446Dll/card.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m446Dll/deck.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m446Dll/table.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m446Dll/player.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m446Dll/camera.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m446Dll/cursor.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m446Dll/stage.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m446Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m446Dll/card.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m446Dll/deck.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m446Dll/table.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m446Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m446Dll/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m446Dll/cursor.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m446Dll/stage.c"), }, ), Rel( "m447dll", # Archaeologuess objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m447dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m447dll/stage.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m447dll/camera.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m447dll/player.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m447dll/player_col.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m447dll/block.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m447dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m447dll/stage.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m447dll/camera.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m447dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m447dll/player_col.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m447dll/block.c"), }, ), Rel( "m448Dll", # Goomba's Chip Flip objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m448Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m448Dll/main.c"), }, ), Rel( @@ -1222,28 +1222,28 @@ config.libs = [ Rel( "m450Dll", # The Final Battle! objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m450Dll/main.c"), + Object(Matching, "REL/m450Dll/main.c"), }, ), Rel( "m451Dll", # Jigsaw Jitters objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m451Dll/m451.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m451Dll/m451.c"), }, ), Rel( "m453Dll", # Challenge Booksquirm objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m453Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m453Dll/map.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m453Dll/score.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m453Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m453Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m453Dll/score.c"), }, ), Rel( "m455Dll", # Rumble Fishing objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m455Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m455Dll/stage.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m455Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m455Dll/stage.c"), }, ), Rel( @@ -1274,16 +1274,16 @@ config.libs = [ Rel( "m460Dll", # Doors of Doom objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m460Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m460Dll/player.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m460Dll/map.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m460Dll/score.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m460Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m460Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m460Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m460Dll/score.c"), }, ), Rel( "m461Dll", # Bob-omb X-ing objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m461Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m461Dll/main.c"), }, ), Rel( @@ -1308,28 +1308,28 @@ config.libs = [ Rel( "messDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/messDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/messDll/main.c"), }, ), Rel( "mgmodedll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mgmodedll/mgmode.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mgmodedll/free_play.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mgmodedll/record.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mgmodedll/battle.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/mgmode.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/free_play.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/record.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/battle.c"), Object(NonMatching, "REL/mgmodedll/tictactoe.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mgmodedll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mgmodedll/datalist.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/mgmodedll/minigame.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/datalist.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/minigame.c"), }, ), Rel( "modeltestDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/modeltestDll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/modeltestDll/modeltest00.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/modeltestDll/modeltest01.c"), + Object(Matching, "REL/modeltestDll/main.c"), + Object(Matching, "REL/modeltestDll/modeltest00.c"), + Object(Matching, "REL/modeltestDll/modeltest01.c"), }, ), Rel( @@ -1392,7 +1392,7 @@ config.libs = [ Rel( "nisDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/nisDll/main.c") + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/nisDll/main.c") }, ), Rel( @@ -1412,19 +1412,19 @@ config.libs = [ Rel( "present", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/present/init.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/present/camera.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/present/present.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/present/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/present/common.c"), + Object(Matching, "REL/present/init.c"), + Object(Matching, "REL/present/camera.c"), + Object(Matching, "REL/present/present.c"), + Object(Matching, "REL/present/main.c"), + Object(Matching, "REL/present/common.c"), }, ), Rel( "resultDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/resultDll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/resultDll/battle.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/resultDll/datalist.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/resultDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/resultDll/battle.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/resultDll/datalist.c"), }, ), Rel( @@ -1448,7 +1448,7 @@ config.libs = [ Rel( "subchrselDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/subchrselDll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/subchrselDll/main.c"), }, ), Rel( From 74e3749b5a2ab91867856015ca6381c360408d1f Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 26 Nov 2024 20:18:02 +0100 Subject: [PATCH 185/311] configure.py fixes --- configure.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/configure.py b/configure.py index 7ef9db2f..4db092f9 100644 --- a/configure.py +++ b/configure.py @@ -465,7 +465,7 @@ config.libs = [ DolphinLib( "os", [ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OS.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "dolphin/os/OS.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSAlarm.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSAlloc.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSArena.c"), @@ -487,7 +487,7 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSSync.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSThread.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSTime.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/__start.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "dolphin/os/__start.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/__ppc_eabi_init.c"), ], ), @@ -837,7 +837,7 @@ config.libs = [ "bootDll", objects={ Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/bootDll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/bootDll/nintendo_data.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/bootDll/language.c"), }, ), Rel( @@ -1163,9 +1163,9 @@ config.libs = [ Rel( "m443Dll", # Mario Speedwagons objects={ - Object(Matching, "REL/m443Dll/main.c"), - Object(Matching, "REL/m443Dll/map.c"), - Object(Matching, "REL/m443Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m443Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m443Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m443Dll/player.c"), }, ), Rel( From cb0cd12ab05ba725f5dcab0ba9771f2536959cda Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Tue, 26 Nov 2024 21:12:39 -0500 Subject: [PATCH 186/311] halfway done --- .vscode/settings.json | 80 ++++- config/GMPE01_00/rels/m438Dll/symbols.txt | 1 + src/REL/m438Dll/main.c | 344 ++++++---------------- 3 files changed, 162 insertions(+), 263 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 7c43f1a7..233a6160 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -22,20 +22,78 @@ "m443dll.h": "c", "object.h": "c", "executor.h": "c", - "m438dll.h": "c" + "m438dll.h": "c", + "audio.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { - "build/*/config.json": true, - "build/**/*.MAP": true, - "build.ninja": true, - ".ninja_*": true, - "objdiff.json": true, - "progress.json": true, - "report.json": true, - "compile_commands.json": true, + "build/*/config.json": true, + "build/**/*.MAP": true, + "build.ninja": true, + ".ninja_*": true, + "objdiff.json": true, + "progress.json": true, + "report.json": true, + "compile_commands.json": true }, "cmake.ignoreCMakeListsMissing": true, "editor.fontFamily": "Fira Code", - "editor.fontLigatures": true -} + "editor.fontLigatures": true, + "C_Cpp_Runner.cCompilerPath": "gcc", + "C_Cpp_Runner.cppCompilerPath": "g++", + "C_Cpp_Runner.debuggerPath": "gdb", + "C_Cpp_Runner.cStandard": "", + "C_Cpp_Runner.cppStandard": "", + "C_Cpp_Runner.msvcBatchPath": "C:/Program Files/Microsoft Visual Studio/VR_NR/Community/VC/Auxiliary/Build/vcvarsall.bat", + "C_Cpp_Runner.useMsvc": false, + "C_Cpp_Runner.warnings": [ + "-Wall", + "-Wextra", + "-Wpedantic", + "-Wshadow", + "-Wformat=2", + "-Wcast-align", + "-Wconversion", + "-Wsign-conversion", + "-Wnull-dereference" + ], + "C_Cpp_Runner.msvcWarnings": [ + "/W4", + "/permissive-", + "/w14242", + "/w14287", + "/w14296", + "/w14311", + "/w14826", + "/w44062", + "/w44242", + "/w14905", + "/w14906", + "/w14263", + "/w44265", + "/w14928" + ], + "C_Cpp_Runner.enableWarnings": true, + "C_Cpp_Runner.warningsAsError": false, + "C_Cpp_Runner.compilerArgs": [], + "C_Cpp_Runner.linkerArgs": [], + "C_Cpp_Runner.includePaths": [], + "C_Cpp_Runner.includeSearch": [ + "*", + "**/*" + ], + "C_Cpp_Runner.excludeSearch": [ + "**/build", + "**/build/**", + "**/.*", + "**/.*/**", + "**/.vscode", + "**/.vscode/**" + ], + "C_Cpp_Runner.useAddressSanitizer": false, + "C_Cpp_Runner.useUndefinedSanitizer": false, + "C_Cpp_Runner.useLeakSanitizer": false, + "C_Cpp_Runner.showCompilationTime": false, + "C_Cpp_Runner.useLinkTimeOptimization": false, + "C_Cpp_Runner.msvcSecureNoWarnings": false +} \ No newline at end of file diff --git a/config/GMPE01_00/rels/m438Dll/symbols.txt b/config/GMPE01_00/rels/m438Dll/symbols.txt index 42b61291..13ca3c7d 100644 --- a/config/GMPE01_00/rels/m438Dll/symbols.txt +++ b/config/GMPE01_00/rels/m438Dll/symbols.txt @@ -387,6 +387,7 @@ lbl_1_data_68 = .data:0x00000068; // type:object size:0x420 data:float lbl_1_data_488 = .data:0x00000488; // type:object size:0x2C lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x30 jumptable_1_data_4E4 = .data:0x000004E4; // type:object size:0x2C scope:local +lbl_1_data_510 = .data:0x00000510; // type:object size:0x4 lbl_1_data_514 = .data:0x00000514; // type:object size:0xC lbl_1_data_520 = .data:0x00000520; // type:object size:0x64 lbl_1_data_584 = .data:0x00000584; // type:object size:0x64 diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index 64c73098..3bdd8fbd 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -210,9 +210,9 @@ void fn_1_7DD8(s32 arg0, s32 *arg1); float fn_1_7EDC(float arg8, float arg9, float argA); void fn_1_8164(float *arg0, Vec *arg1); void fn_1_8C34(float *arg0, float *arg1, float *arg2, s32 arg3); -float fn_1_8EEC(float *arg0, float *arg1, float *arg2, float arg8); +float fn_1_8EEC(float arg8, float *arg0, float *arg1, float *arg2, s32 arg3); void fn_1_9040(float *arg0, Vec *arg1, float arg2[3][3], s32 arg3); -void fn_1_9420(float *arg0, float *arg1, float arg2[3][3], float arg3[3][3], s32 arg4, float arg8); +void fn_1_9420(float arg8, float *arg0, float *arg1, float arg2[3][3], float arg3[3][3], s32 arg4); float fn_1_9634(Vec *arg0); void fn_1_974(omObjData *object); float fn_1_9960(Vec *arg0, Vec *arg1, Vec *arg2); @@ -558,244 +558,78 @@ Vec lbl_1_data_68[11][8] = { { 15.000001f, 0.0f, 505.7f }, { 148.59999f, 0.0f, 393.0f }, { 0.0f, 1.0f, 0.0f }, - { 0.0f, 0.0f, 0.0f }, }, { { -198.7f, 0.0f, -122.899994f }, - { -11.599999f, 0.0f, -177.1f } + { -11.599999f, 0.0f, -177.1f }, + { 63.4f, 0.0f, -349.7f }, + { 277.09999f, 0.0f, -296.4f }, + { 397.5f, 0.0f, -470.2f }, + { 0.0f, 1.0f, 0.0f }, + }, + { + { -421.0f, 0.0f, -471.3f }, + { -270.1f, 0.0f, -460.0f }, + { -153.1f, 0.0f, -356.5f }, + { 12.4f, 0.0f, -473.99997f }, + { 0.0f, 1.0f, 0.0f }, + }, + { + { -545.10004f, 0.0f, -318.9f }, + { -469.0f, 0.0f, -154.1f }, + { -313.4, 0.0f, -170.09999f }, + { -250.0f, 0.0f, -32.8f }, + { 0.0f, 1.0f, 0.0f }, + }, + { + { -155.6f, 0.0f, 19.5f }, + { -34.3f, 0.0f, 96.6f }, + { -63.9f, 0.0f, 240.00002f }, + { 37.5f, 0.0f, 402.8f }, + { 0.0f, 1.0f, 0.0f } + }, + { + { 207.5f, 0.0f, -163.2f }, + { 270.1f, 0.0f, -104.799995f }, + { 402.19998f, 0.0f, -102.4f }, + { 511.49997f, 0.0f, -25.099998f }, + { 627.3f, 0.0f, -142.0f }, + { 0.0f, 1.0f, 0.0f } + }, + { + { -601.0f, 0.0f, 97.799995f }, + { -516.80005f, 0.0f, 60.000004f }, + { -417.7f, 0.0f, 92.9f }, + { -309.40002f, 0.0f, 76.1f }, + { 0.0f, 1.0f, 0.0f }, + }, + { + { 82.8f, 0.0f, 164.2f }, + { 179.40001f, 0.0f, 179.8f }, + { 241.00002f, 0.0f, 87.1f }, + { 323.0f, 0.0f, 38.800003f }, + { 0.0f, 1.0f, 0.0f } + }, + { + { 243.4f, 0.0f, 573.5f }, + { 227.7f, 0.0f, 461.2f }, + { 319.30002f, 0.0f, 400.6f }, + { 342.30002f, 0.0f, 310.0f }, + { 0.0f, 1.0f, 0.0f } + }, + { + { 357.69998f, 0.0f, 146.8f }, + { 418.80002f, 0.0f, 225.0f }, + { 503.2f, 0.0f, 234.69998f }, + { 548.1f, 0.0f, 321.19998f }, + { 0.0f, 1.0f, 0.0f } + }, + { + { -100.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, -100.0f }, + { 100.0f, 0.0f, 0.0f }, + { 0.0f, 1.0f, 0.0f } } -// 63.4, 0, -349.7 -// 277.09998 -// 0 -// -296.4 -// 397.5 -// 0 -// -470.2 -// 0 -// 1 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// -421 -// 0 -// -471.3 -// -270.1 -// 0 -// -460 -// -153.1 -// 0 -// -356.5 -// 12.4 -// 0 -// -473.99997 -// 0 -// 1 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// -545.10004 -// 0 -// -318.9 -// -469 -// 0 -// -154.1 -// -313.4 -// 0 -// -170.09999 -// -250 -// 0 -// -32.8 -// 0 -// 1 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// -155.6 -// 0 -// 19.5 -// -34.3 -// 0 -// 96.6 -// -63.9 -// 0 -// 240.00002 -// 37.5 -// 0 -// 402.8 -// 0 -// 1 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 207.5 -// 0 -// -163.2 -// 270.1 -// 0 -// -104.799995 -// 402.19998 -// 0 -// -102.4 -// 511.49997 -// 0 -// -25.099998 -// 627.3 -// 0 -// -142 -// 0 -// 1 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// -601 -// 0 -// 97.799995 -// -516.80005 -// 0 -// 60.000004 -// -417.7 -// 0 -// 92.9 -// -309.40002 -// 0 -// 76.1 -// 0 -// 1 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 82.8 -// 0 -// 164.2 -// 179.40001 -// 0 -// 179.8 -// 241.00002 -// 0 -// 87.1 -// 323 -// 0 -// 38.800003 -// 0 -// 1 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 243.4 -// 0 -// 573.5 -// 227.7 -// 0 -// 461.2 -// 319.30002 -// 0 -// 400.6 -// 342.30002 -// 0 -// 310 -// 0 -// 1 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 357.69998 -// 0 -// 146.8 -// 418.80002 -// 0 -// 225 -// 503.2 -// 0 -// 234.69998 -// 548.1 -// 0 -// 321.19998 -// 0 -// 1 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// -100 -// 0 -// 0 -// 0 -// 0 -// -100 -// 100 -// 0 -// 0 -// 0 -// 1 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 -// 0 }; void fn_1_1204(omObjData *object) { @@ -849,9 +683,8 @@ void fn_1_13A0(omObjData *object) switch (lbl_1_bss_DBA) { case 0: case 1: - case 2: - case 3: case 4: + case 5: break; case 6: lbl_1_bss_294 = 0x1E; @@ -1092,11 +925,10 @@ void fn_1_2070(omObjData *object) var_r31->unk_10.y = var_r31->unk_28.y + (var_f31 * (var_r31->unk_40.y - var_r31->unk_28.y)); var_r31->unk_10.z = var_r31->unk_28.z + (var_f31 * (var_r31->unk_40.z - var_r31->unk_28.z)); var_r31->unk_130 = var_r31->unk_134 + (var_f31 * (var_r31->unk_138 - var_r31->unk_134)); - } - else { - fn_1_9420((float *)&var_r31->unk_04, var_r31->unk_F4, (float(*)[3]) & var_r31->unk_64, var_r31->unk_88, 3, 2.0f * var_f31); - fn_1_9420((float *)&var_r31->unk_10, var_r31->unk_100, (float(*)[3]) & var_r31->unk_AC, var_r31->unk_D0, 3, 2.0f * var_f31); - var_r31->unk_130 = fn_1_8EEC(var_r31->unk_124, var_r31->unk_10C, var_r31->unk_118, 2.0f * var_f31); + } else { + fn_1_9420(2.0f * var_f31, (float *)&var_r31->unk_04, var_r31->unk_F4, (float(*)[3]) & var_r31->unk_64, var_r31->unk_88, 3); + fn_1_9420(2.0f * var_f31, (float *)&var_r31->unk_10, var_r31->unk_100, (float(*)[3]) & var_r31->unk_AC, var_r31->unk_D0, 3); + var_r31->unk_130 = fn_1_8EEC(2.0f * var_f31, var_r31->unk_124, var_r31->unk_10C, var_r31->unk_118, 3); } } CRot.x = var_r31->unk_10.x; @@ -1615,12 +1447,16 @@ void fn_1_35C0(omObjData *object) var_r31->unk_22 = var_r28; var_r31->unk_20 = var_r28; CharModelMotionShiftSet(var_r31->unk_01, object->motion[8], 0.0f, 8.0f, var_r27); - } - else if (var_r28 < 3) { - if (var_r28 < 0 || var_r31->unk_20 == 0 || CharModelMotionShiftIDGet(var_r31->unk_01) < 0) { - var_r31->unk_22 = var_r28; - var_r31->unk_20 = var_r28; - CharModelMotionShiftSet(var_r31->unk_01, object->motion[var_r31->unk_20], 0.0f, 8.0f, var_r27); + } else { + switch (var_r28) { + case 0: + case 1: + case 2: + if (var_r31->unk_20 != 0 && CharModelMotionShiftIDGet(var_r31->unk_01) >= 0) break; + default: + var_r31->unk_22 = var_r28; + var_r31->unk_20 = var_r28; + CharModelMotionShiftSet(var_r31->unk_01, object->motion[var_r31->unk_20], 0.0f, 8.0f, var_r27); } } var_r31->unk_30 = CharModelMotionMaxTimeGet(var_r31->unk_01); @@ -1728,6 +1564,7 @@ void fn_1_4724(omObjData *object) object->func = fn_1_4984; } + // void fn_1_4984(omObjData *object) // { // float sp10; @@ -3046,7 +2883,7 @@ void fn_1_8C34(float *arg0, float *arg1, float *arg2, s32 arg3) } } -float fn_1_8EEC(float *arg0, float *arg1, float *arg2, float arg8) +float fn_1_8EEC(float arg8, float *arg0, float *arg1, float *arg2, s32 arg3) { float var_f31; float var_f30; @@ -3123,7 +2960,8 @@ void fn_1_9040(float *arg0, Vec *arg1, float arg2[3][3], s32 arg3) } } -void fn_1_9420(float *arg0, float *arg1, float arg2[3][3], float arg3[3][3], s32 arg4, float arg8) + +void fn_1_9420(float arg8, float *arg0, float *arg1, float arg2[3][3], float arg3[3][3], s32 arg4) { float sp48[16]; float sp8[16]; @@ -3138,7 +2976,7 @@ void fn_1_9420(float *arg0, float *arg1, float arg2[3][3], float arg3[3][3], s32 sp48[var_r30] = arg2[var_r30][var_r29]; sp8[var_r30] = arg3[var_r30][var_r29]; } - arg0[var_r29] = fn_1_8EEC(arg1, sp48, sp8, arg8); + arg0[var_r29] = fn_1_8EEC(arg8, arg1, sp48, sp8, arg4); } } @@ -3503,6 +3341,8 @@ void fn_1_A60C(omObjData *object) object->func = fn_1_A688; } +u32 lbl_1_data_510 = 0x41C64E6D; + void fn_1_A688(omObjData *object) { } Vec lbl_1_data_514 = { -850.0f, 0.0f, -850.0f }; From fa773dcfbdd309313a3eedb3550d44062e216e0f Mon Sep 17 00:00:00 2001 From: CreateSource Date: Wed, 27 Nov 2024 10:49:58 -0500 Subject: [PATCH 187/311] complete fn_1_4984 --- src/REL/m438Dll/main.c | 209 +++++++++++++++++++---------------------- 1 file changed, 97 insertions(+), 112 deletions(-) diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index 3bdd8fbd..13c88ac0 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -178,6 +178,9 @@ typedef struct M438StructBssDE4 { M438UnkStruct2 *unk_40; } M438StructBssDE4; /* size = */ +void fn_1_4DC(omObjData *object); +void fn_1_4FC(omObjData *object); +void fn_1_974(omObjData *object); void fn_1_1174(omObjData *object); void fn_1_1204(omObjData *object); void fn_1_13A0(omObjData *object); @@ -193,9 +196,7 @@ void fn_1_35C0(omObjData *object); void fn_1_4374(omObjData *object); void fn_1_4724(omObjData *object); void fn_1_4984(omObjData *object); -void fn_1_4DC(omObjData *object); void fn_1_4F50(omObjData *object); -void fn_1_4FC(omObjData *object); void fn_1_5D4C(void *arg0); void fn_1_62BC(void *arg0); void fn_1_63B0(void *arg0); @@ -208,13 +209,12 @@ void fn_1_7D30(void); s32 fn_1_7DB4(void); void fn_1_7DD8(s32 arg0, s32 *arg1); float fn_1_7EDC(float arg8, float arg9, float argA); -void fn_1_8164(float *arg0, Vec *arg1); +void fn_1_8164(Mtx arg0, Vec *arg1); void fn_1_8C34(float *arg0, float *arg1, float *arg2, s32 arg3); float fn_1_8EEC(float arg8, float *arg0, float *arg1, float *arg2, s32 arg3); void fn_1_9040(float *arg0, Vec *arg1, float arg2[3][3], s32 arg3); void fn_1_9420(float arg8, float *arg0, float *arg1, float arg2[3][3], float arg3[3][3], s32 arg4); float fn_1_9634(Vec *arg0); -void fn_1_974(omObjData *object); float fn_1_9960(Vec *arg0, Vec *arg1, Vec *arg2); float fn_1_A14C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3); void fn_1_A60C(omObjData *object); @@ -1565,115 +1565,100 @@ void fn_1_4724(omObjData *object) } -// void fn_1_4984(omObjData *object) -// { -// float sp10; -// float spC; -// float sp8; -// float temp_f0; -// float temp_f0_2; -// float var_f31; -// omObjData *var_r29; -// s16 var_r27; -// void *var_r28; -// void *var_r30; -// void *var_r31; +void fn_1_4984(omObjData *object) +{ + Vec sp8; + float var_f31; + s32 var_r27; + M438MainWork3 *var_r28; + M438MainWork3 *var_r30; + M438MainWork3 *var_r31; -// var_r29 = object; -// var_r31 = var_r29->data; -// switch (lbl_1_bss_DBA) { -// case 1: -// if (lbl_1_bss_4 == 0) { -// lbl_1_bss_4 = fn_1_10258(0x90, 1); -// fn_1_11018(lbl_1_bss_4, 0, 0x45000A); -// *(lbl_1_bss_DE4.unk_40 + ((lbl_1_bss_4 * 0xBC) + 0x30)) = fn_1_6A3C; -// fn_1_11890(lbl_1_bss_4, var_r31->unk_10, -80.0f, var_r31->unk_18); -// fn_1_12100(lbl_1_bss_4, 4); -// fn_1_124CC(lbl_1_bss_4, 1); -// *(lbl_1_bss_DE4.unk_40 + ((lbl_1_bss_4 * 0xBC) + 0x7C)) = 0; -// } -// break; -// case 2: -// var_r31->unk_14 = var_r31->unk_14 + var_r31->unk_2C; -// var_r31->unk_2C = var_r31->unk_2C - -2.0416667f; -// if (var_r31->unk_14 >= -350.0f) { -// HuAudFXPlay(0x6FA); -// *(lbl_1_bss_DE4.unk_40 + ((lbl_1_bss_4 * 0xBC) + 0x7C)) = 1; -// } -// if (var_r31->unk_14 > 0.0f) { -// HuAudFXEmiterPlay(0x700, var_r31 + 0x10); -// lbl_1_bss_DB2 = 0x78; -// lbl_1_bss_DBA += 1; -// var_r31->unk_30 = 20.0f; -// } -// break; -// case 3: -// var_r31->unk_14 = var_r31->unk_14 + var_r31->unk_2C; -// var_r31->unk_18 = var_r31->unk_18 + var_r31->unk_30; -// var_r31->unk_2C = var_r31->unk_2C + -2.0416667f; -// if (var_r31->unk_14 < 0.0f) { -// var_r31->unk_30 = var_r31->unk_30 - 0.5f; -// if (var_r31->unk_30 < 0.0f) { -// var_r31->unk_30 = 0.0f; -// } -// var_r31->unk_14 = 0.0f; -// if (lbl_1_bss_8 == 0) { -// HuAudFXPlay(0x6FE); -// var_r28 = lbl_1_bss_DD8->data; -// var_r28->unk_18A = 0x3C; -// var_r28->unk_150 = 25.0f; -// var_r28->unk_15C = 0.95f; -// var_r28->unk_174 = 90.0f; -// var_r28->unk_168 = 90.0f; -// for (var_r27 = 0; var_r27 < 4; var_r27++) { -// omVibrate(var_r27, 0x36, 0xC, 0); -// } -// lbl_1_bss_4 = fn_1_10258(0x3C, 1); -// fn_1_11018(lbl_1_bss_4, 0, 0x45000F); -// *(lbl_1_bss_DE4.unk_40 + ((lbl_1_bss_4 * 0xBC) + 0x30)) = fn_1_5D4C; -// fn_1_11890(lbl_1_bss_4, var_r31->unk_10, 50.0f + var_r31->unk_14, var_r31->unk_18); -// fn_1_124CC(lbl_1_bss_4, 1); -// lbl_1_bss_8++; -// } -// } -// sp8 = var_r31->unk_10; -// spC = var_r31->unk_14; -// sp10 = var_r31->unk_18; -// temp_f0 = spC + 120.00001f; -// spC = temp_f0; -// temp_f0_2 = sp10 - 300.0f; -// sp10 = temp_f0_2; -// var_f31 = CZoom; -// var_r30 = lbl_1_bss_DD8->data; -// var_r30->unk_00 = 0; -// var_r30->unk_144 = 1.0f; -// var_r30->unk_148 = 1.0f; -// var_r30->unk_1C = var_r30->unk_04; -// var_r30->unk_20 = var_r30->unk_08; -// var_r30->unk_24 = var_r30->unk_0C; -// var_r30->unk_34 = sp8; -// var_r30->unk_38 = temp_f0; -// var_r30->unk_3C = temp_f0_2; -// var_r30->unk_28 = var_r30->unk_10; -// var_r30->unk_2C = var_r30->unk_14; -// var_r30->unk_30 = var_r30->unk_18; -// var_r30->unk_40 = CRot.x; -// var_r30->unk_44 = CRot.y; -// var_r30->unk_48 = CRot.z; -// var_r30->unk_134 = var_r30->unk_130; -// var_r30->unk_138 = var_f31; -// break; -// case 5: -// Hu3DModelAttrReset(*var_r29->model, HU3D_MOTATTR_LOOP); -// Hu3DModelAttrSet(*var_r29->model, HU3D_MOTATTR_REV); -// var_r29->func = fn_1_4F50; -// var_r29->work[0] = 0xA; -// var_r29->work[1] = 0; -// break; -// } -// omSetTra(var_r29, var_r31->unk_10, var_r31->unk_14, var_r31->unk_18); -// omSetRot(var_r29, var_r31->unk_1C, var_r31->unk_20, var_r31->unk_24); -// } + var_r31 = object->data; + switch (lbl_1_bss_DBA) { + case 1: + if (lbl_1_bss_4 == 0) { + lbl_1_bss_4 = fn_1_10258(0x90, 1); + fn_1_11018(lbl_1_bss_4, 0, 0x45000A); + lbl_1_bss_DE4.unk_40[lbl_1_bss_4].unk_30 = fn_1_6A3C; + fn_1_11890(lbl_1_bss_4, var_r31->unk_10.x, -80.0f, var_r31->unk_10.z); + fn_1_12100(lbl_1_bss_4, 4); + fn_1_124CC(lbl_1_bss_4, 1); + lbl_1_bss_DE4.unk_40[lbl_1_bss_4].unk_7C = 0; + } + break; + case 2: + var_r31->unk_10.y += var_r31->unk_28.y; + var_r31->unk_28.y -= -2.0416667f; + if (var_r31->unk_10.y >= -350.0f) { + HuAudFXPlay(0x6FA); + lbl_1_bss_DE4.unk_40[lbl_1_bss_4].unk_7C = 1; + } + if (var_r31->unk_10.y > 0.0f) { + HuAudFXEmiterPlay(0x700, &var_r31->unk_10); + lbl_1_bss_DB2 = 0x78; + lbl_1_bss_DBA += 1; + var_r31->unk_28.z = 20.0f; + } + break; + case 3: + var_r31->unk_10.y += var_r31->unk_28.y; + var_r31->unk_10.z += var_r31->unk_28.z; + var_r31->unk_28.y += -2.0416667f; + if (var_r31->unk_10.y < 0.0f) { + var_r31->unk_28.z -= 0.5f; + if (var_r31->unk_28.z < 0.0f) { + var_r31->unk_28.z = 0.0f; + } + var_r31->unk_10.y = 0.0f; + if (lbl_1_bss_8 == 0) { + HuAudFXPlay(0x6FE); + var_r28 = lbl_1_bss_DD8->data; + var_r28->unk_188[1] = 0x3C; + var_r28->unk_14C[1] = 25.0f; + var_r28->unk_158[1] = 0.95f; + var_r28->unk_170[1] = 90.0f; + var_r28->unk_164[1] = 90.0f; + for (var_r27 = 0; var_r27 < 4; var_r27++) { + omVibrate(var_r27, 0x36, 0xC, 0); + } + lbl_1_bss_4 = fn_1_10258(0x3C, 1); + fn_1_11018(lbl_1_bss_4, 0, 0x45000F); + lbl_1_bss_DE4.unk_40[lbl_1_bss_4].unk_30 = fn_1_5D4C; + fn_1_11890(lbl_1_bss_4, var_r31->unk_10.x, 50.0f + var_r31->unk_10.y, var_r31->unk_10.z); + fn_1_124CC(lbl_1_bss_4, 1); + lbl_1_bss_8++; + } + } + sp8 = var_r31->unk_10; + sp8.y += 120.00001f; + sp8.z -= 300.0f; + var_f31 = CZoom; + var_r30 = lbl_1_bss_DD8->data; + var_r30->unk_00 = 0; + var_r30->unk_148 = var_r30->unk_144 = 1.0f; + var_r30->unk_1C = var_r30->unk_04; + var_r30->unk_34.x = sp8.x; + var_r30->unk_34.y = sp8.y; + var_r30->unk_34.z = sp8.z; + var_r30->unk_28 = var_r30->unk_10; + var_r30->unk_40.x = CRot.x; + var_r30->unk_40.y = CRot.y; + var_r30->unk_40.z = CRot.z; + var_r30->unk_134 = var_r30->unk_130; + var_r30->unk_138 = var_f31; + break; + case 5: + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_REV); + object->func = fn_1_4F50; + object->work[0] = 10; + object->work[1] = 0; + break; + } + omSetTra(object, var_r31->unk_10.x, var_r31->unk_10.y, var_r31->unk_10.z); + omSetRot(object, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z); +} // void fn_1_4F50(omObjData *object) // { From f826ddd8fe12fb9ef397a5d3b380df8f823c7367 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Sat, 30 Nov 2024 19:59:13 -0500 Subject: [PATCH 188/311] up to 7EDC --- src/REL/m438Dll/main.c | 1388 ++++++++++++++++++---------------------- 1 file changed, 634 insertions(+), 754 deletions(-) diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index 13c88ac0..77956add 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -82,7 +82,11 @@ typedef struct M438MainWork2 { typedef struct M438MainWork3 { u8 unk_00; - Vec unk_04; + s16 unk_02; + union { + Vec unk_04; + s32 unk_04s; + }; Vec unk_10; Vec unk_1C; Vec unk_28; @@ -147,18 +151,51 @@ typedef struct M438StructBss298 { Vec unk_24; } M438StructBss298; /* size = 0x30 */ +typedef struct M438UnkSubStruct { + u8 unk_00; + char unk01[0x23]; + u8 unk_24; + float unk_28; + float unk_2C; +} M438UnkSubStruct; + typedef struct M438UnkStruct { - char unk00[0x5C]; - s8 unk_5C; - char unk5D[0x3B]; + Vec unk_00; + char unk0C[0xC]; + Vec unk_18; + char unk24[0xF]; + s8 unk_33; + char unk34[0x4]; + s32 unk_38; + char unk_3C[0x18]; + s8 unk_54; + s8 unk_55; + s8 unk_56; + u8 unk_57; + M438UnkSubStruct* unk_58; + u8 unk_5C; + char unk5D[0x3]; + Vec unk_60; + Vec unk_6C; + s16 unk_78; + s16 unk_7A; + char unk7C[0x1C]; } M438UnkStruct; /* size = 0x98 */ typedef struct M438UnkStruct2 { - char unk00[0x30]; - void *unk_30; // TODO type + s16 unk_00; + s16 unk_02; + char unk04[0x8]; + Vec unk_0C; + char unk18[0xC]; + Vec unk_24; + void (*unk_30)(struct M438UnkStruct2*); char unk34[8]; M438UnkStruct *unk_3C; - char unk40[0x3C]; + char unk40[0x20]; + u8 unk_60; + char unk61[0x3]; + char unk64[0x18]; s16 unk_7C; s16 unk_7E; float unk_80; @@ -197,11 +234,11 @@ void fn_1_4374(omObjData *object); void fn_1_4724(omObjData *object); void fn_1_4984(omObjData *object); void fn_1_4F50(omObjData *object); -void fn_1_5D4C(void *arg0); -void fn_1_62BC(void *arg0); -void fn_1_63B0(void *arg0); -void fn_1_6A3C(void *arg0); -void fn_1_7300(void *arg0); +void fn_1_5D4C(M438UnkStruct2 *arg0); +void fn_1_62BC(M438UnkStruct2 *arg0); +void fn_1_63B0(M438UnkStruct2 *arg0); +void fn_1_6A3C(M438UnkStruct2 *arg0); +void fn_1_7300(M438UnkStruct2 *arg0); void fn_1_7B58(omObjData *object); void fn_1_7BBC(void); void *fn_1_7BFC(s32 arg0); @@ -711,7 +748,7 @@ void fn_1_13A0(omObjData *object) } for (var_r28 = 0, var_r26 = 0; var_r26 < var_r27; var_r28++) { var_r25 = sp8[var_r28]; - var_r24 = (s32)(80.0f * (0.000015258789f * fn_1_7DB4())) + 0x3C; + var_r24 = (s32)(80.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 0x3C; for (var_r31 = lbl_1_bss_298, var_r30 = 0; var_r30 < 0x30; var_r30++, var_r31++) { if (var_r31->unk_02 == var_r25) { if (var_r31->unk_00 != 0) { @@ -1101,7 +1138,7 @@ void fn_1_2964(omObjData *object) var_r31->unk_0A = 0; var_r28 = object->work[1]; var_r31->unk_6C.x = lbl_1_data_4B4[var_r28].x; - var_r31->unk_6C.y = lbl_1_data_4B4[var_r28].y + 100.0f * (0.000030517578f * (fn_1_7DB4() - 0x8000)); + var_r31->unk_6C.y = lbl_1_data_4B4[var_r28].y + 100.0f * ((1.0f / 32768.0f) * (fn_1_7DB4() - 0x8000)); var_r31->unk_6C.z = lbl_1_data_4B4[var_r28].z; var_r31->unk_84 = var_r31->unk_88 = var_r31->unk_8C = 0.0f; var_r31->unk_78 = var_r31->unk_7C = var_r31->unk_80 = 0.0f; @@ -1613,12 +1650,7 @@ void fn_1_4984(omObjData *object) var_r31->unk_10.y = 0.0f; if (lbl_1_bss_8 == 0) { HuAudFXPlay(0x6FE); - var_r28 = lbl_1_bss_DD8->data; - var_r28->unk_188[1] = 0x3C; - var_r28->unk_14C[1] = 25.0f; - var_r28->unk_158[1] = 0.95f; - var_r28->unk_170[1] = 90.0f; - var_r28->unk_164[1] = 90.0f; + fn_1_28E4(1, 0x3C, 25.0f, 0.95f, 90.0f); for (var_r27 = 0; var_r27 < 4; var_r27++) { omVibrate(var_r27, 0x36, 0xC, 0); } @@ -1660,743 +1692,593 @@ void fn_1_4984(omObjData *object) omSetRot(object, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z); } -// void fn_1_4F50(omObjData *object) -// { -// Vec sp18; -// float var_f24; -// float var_f25; -// float var_f26; -// float var_f27; -// float var_f28; -// float var_f29; -// float var_f30; -// float var_f31; -// omObjData *var_r30; -// s16 temp_r0; -// s16 temp_r3_3; -// s16 temp_r6; -// s16 var_r28; -// s32 temp_r3_2; -// s32 var_r26; -// u8 temp_r3; -// void *var_r27; -// void *var_r29; -// void *var_r31; - -// var_r30 = object; -// var_r31 = var_r30->data; -// switch (lbl_1_bss_DBA) { -// case 7: -// temp_r3 = var_r31->unk_00; -// switch (temp_r3) { -// case 0: -// var_r31->unk_34 = var_r31->unk_10; -// var_r31->unk_38 = var_r31->unk_14; -// var_r31->unk_3C = var_r31->unk_18; -// Hu3DMotionShiftSet(*var_r30->model, var_r30->motion->unk_06, 0.0f, 8.0f, 0); -// var_r31->unk_00 = var_r31->unk_00 + 1; - -// case 1: -// var_r31->unk_34 = var_r31->unk_10; -// var_r31->unk_38 = var_r31->unk_14; -// var_r31->unk_3C = var_r31->unk_18; -// var_r28 = 0; -// var_r26 = 0; -// loop_21: -// if (var_r28 < 4) { -// var_r29 = lbl_1_bss_DC4[var_r28]->data; -// if ((var_r29->unk_07 != 0) && ((var_r29->unk_07 & 2) == 0)) { -// VECSubtract(var_r29 + 0x6C, var_r31 + 0x10, &sp18); -// temp_r3_2 = var_r26; -// var_r26++; -// (&sp8[0])[temp_r3_2] = atan2d(sp18, sp18.z); -// } -// var_r28++; -// goto loop_21; -// } -// var_r31->unk_20 = var_r31->unk_20 + (18.0f + var_r30->work[1]); -// if (var_r31->unk_20 > 180.0f) { -// var_r31->unk_20 = var_r31->unk_20 - 360.0f; -// } -// if (var_r31->unk_20 <= -180.0f) { -// var_r31->unk_20 = var_r31->unk_20 + 360.0f; -// } -// var_r28 = 0; -// loop_35: -// if (var_r28 >= var_r26) { } -// else { -// var_f31 = fn_1_E5A4((&sp8[0])[var_r28], var_r30->rot.y); -// if (var_f31 < 0.0f) { -// var_f27 = -var_f31; -// } -// else { -// var_f27 = var_f31; -// } -// if (!(var_f27 > (20.0f + var_r30->work[1])) -// && ((var_r30->work[0] -= 1, ((var_r30->work[0] == 0) != 0)) || ((fn_1_7DB4() & 0xF) == 0))) { -// var_r31->unk_08 = (&sp8[0])[var_r28]; -// var_r31->unk_20 = (&sp8[0])[var_r28]; -// var_r31->unk_2C = 16.333334f; -// var_r31->unk_0C = 6.0 + (0.5 * var_r30->work[1]); -// var_r31->unk_34 = var_r31->unk_10; -// var_r31->unk_38 = var_r31->unk_14; -// var_r31->unk_3C = var_r31->unk_18; -// var_r31->unk_40 = 20.0f; -// var_r31->unk_44 = 0.0f; -// var_r31->unk_02 = 0x1E; -// Hu3DMotionShiftSet(*var_r30->model, var_r30->motion->unk_00, 0.0f, 8.0f, 0x40000002); -// var_r31->unk_00 = var_r31->unk_00 + 1; -// } -// else { -// var_r28++; -// goto loop_35; -// } -// } -// break; -// case 2: -// var_r31->unk_44 = var_r31->unk_44 + 10.0f; -// if (var_r31->unk_44 > 90.0f) { -// var_r31->unk_44 = 0.0f; -// } -// var_f29 = cosd(var_r31->unk_44); -// var_r31->unk_1C = var_r31->unk_40 * var_f29; -// var_r31->unk_10 = var_r31->unk_34 + ((50.0f * var_f29) * sind(var_r31->unk_20)); -// var_r31->unk_18 = var_r31->unk_3C + ((50.0f * var_f29) * cosd(var_r31->unk_20)); -// temp_r0 = var_r31->unk_02 - 1; -// var_r31->unk_02 = temp_r0; -// if (temp_r0 == 0) { -// HuAudFXEmiterPlay(0x700, var_r31 + 0x10); -// Hu3DModelAttrReset(*var_r30->model, HU3D_MOTATTR_PAUSE); -// Hu3DModelAttrSet(*var_r30->model, HU3D_MOTATTR_LOOP); -// var_r31->unk_1C = 0.0f; -// var_r31->unk_00 = var_r31->unk_00 + 1; -// } -// break; -// case 3: -// var_r31->unk_0C = var_r31->unk_0C + 0.5; -// var_r31->unk_2C = var_r31->unk_2C + -3.0625f; -// var_f28 = var_r31->unk_0C + (0.8f * var_r31->unk_2C); -// var_r31->unk_28 = var_f28 * sind(var_r31->unk_08); -// var_r31->unk_30 = var_f28 * cosd(var_r31->unk_08); -// var_r31->unk_10 = var_r31->unk_10 + var_r31->unk_28; -// var_r31->unk_14 = var_r31->unk_14 + var_r31->unk_2C; -// var_r31->unk_18 = var_r31->unk_18 + var_r31->unk_30; -// var_r31->unk_34 = var_r31->unk_10; -// var_r31->unk_38 = var_r31->unk_14; -// var_r31->unk_3C = var_r31->unk_18; -// if (var_r31->unk_14 < 0.0f) { -// var_r31->unk_14 = 0.0f; -// var_r31->unk_2C = 16.333334f; -// } -// sp18 = var_r31->unk_10; -// sp18.y = var_r31->unk_14; -// sp18.z = var_r31->unk_18; -// sp18.y = 0.0f; -// var_f30 = VECMag(&sp18); -// if (!(var_f30 <= 700.0f)) { -// var_r31->unk_02 = 1; -// if (fn_1_DA64(atan2d(sp18, sp18.z)) != 0) { -// var_r31->unk_02 = 0x78; -// for (var_r28 = 0; var_r28 < 4; var_r28++) { -// var_r29 = lbl_1_bss_DC4[var_r28]->data; -// if ((var_r29->unk_07 != 0) && ((var_r29->unk_07 & 2) == 0)) { -// omVibrate(var_r28, 0xC, 4, 2); -// } -// } -// var_r27 = lbl_1_bss_DD8->data; -// var_r27->unk_188 = 0x3C; -// var_r27->unk_14C = 25.0f; -// var_r27->unk_158 = 0.95f; -// var_r27->unk_170 = 90.0f; -// var_r27->unk_164 = 90.0f; -// HuAudFXEmiterPlay(0x6FC, var_r31 + 0x10); -// HuAudFXPlay(0x6FE); -// } -// fn_1_9634(&sp18); -// var_r31->unk_10 = 700.0f * sp18; -// var_r31->unk_18 = 700.0f * sp18.z; -// var_r31->unk_40 = var_r31->unk_1C; -// var_r31->unk_44 = var_r31->unk_20; -// var_r31->unk_48 = var_r31->unk_24; -// var_r31->unk_00 = var_r31->unk_00 + 1; -// } -// break; -// case 4: -// var_r31->unk_2C = var_r31->unk_2C + -3.0625f; -// var_r31->unk_14 = var_r31->unk_14 + var_r31->unk_2C; -// if (!(var_r31->unk_14 > 0.0f)) { -// var_r31->unk_14 = 0.0f; -// var_r31->unk_34 = var_r31->unk_10; -// var_r31->unk_38 = var_r31->unk_14; -// var_r31->unk_3C = var_r31->unk_18; -// Hu3DModelAttrReset(*var_r30->model, HU3D_MOTATTR_LOOP); -// Hu3DModelAttrSet(*var_r30->model, HU3D_MOTATTR_REV); -// var_r31->unk_44 = var_r31->unk_44 + 8.0f; -// var_r31->unk_40 = 10.0 * sind(var_r31->unk_44); -// var_r31->unk_48 = 10.0 * cosd(var_r31->unk_44); -// mtxRot(&sp24[0], 0.0f, 360.0f - var_r31->unk_08, var_r31->unk_48); -// mtxRotCat(&sp24[0], var_r31->unk_40, 0.0f, 0.0f); -// fn_1_8164(&sp24[0], var_r31 + 0x1C); -// temp_r3_3 = var_r31->unk_02 - 1; -// var_r31->unk_02 = temp_r3_3; -// if (temp_r3_3 == 0) { -// var_r31->unk_24 = 0.0f; -// var_r31->unk_1C = 0.0f; -// var_r31->unk_20 = var_r31->unk_08; -// var_r30->work[0] = 0.5f * (lbl_1_bss_DB4 / 60.0f); -// var_r30->work[1] += 1; -// var_r31->unk_00 = 0; -// } -// } -// break; -// } -// break; -// case 8: -// var_r31->unk_24 = 0.0f; -// var_r31->unk_1C = 0.0f; -// Hu3DModelAttrReset(*var_r30->model, HU3D_MOTATTR_LOOP); -// Hu3DModelAttrSet(*var_r30->model, HU3D_MOTATTR_REV); -// break; -// case 9: -// var_r31->unk_20 = fn_1_7EDC(var_r31->unk_20, 0.0f, 0.9f); -// break; -// case 10: -// if (var_r31->unk_04 == 0) { -// Hu3DModelAttrReset(*var_r30->model, HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); -// Hu3DMotionSet(*var_r30->model, var_r30->motion->unk_02); -// Hu3DMotionSpeedSet(*var_r30->model, 1.0f); -// Hu3DModelAttrSet(*var_r30->model, HU3D_MOTATTR_LOOP); -// var_r31->unk_04 = 1; -// } -// break; -// } -// if (lbl_1_bss_DBA == 7) { -// var_r28 = 0; -// var_r26 = 0; -// loop_72: -// if (var_r28 < 4) { -// var_r29 = lbl_1_bss_DC4[var_r28]->data; -// VECSubtract(var_r29 + 0x6C, var_r31 + 0x10, &sp18); -// var_f30 = VECMag(&sp18); -// if (!(var_f30 >= 200.0f) && (var_r29->unk_20 != 7)) { -// omVibrate(var_r29->unk_00, 0xC, 4, 2); -// var_r29->unk_07 = var_r29->unk_07 | 2; -// var_r29->unk_0D = 0; -// var_r29->unk_20 = 7; -// var_r29->unk_28 = atan2d(sp18, sp18.z); -// if (var_r29->unk_28 >= 360.0f) { -// var_r29->unk_28 = var_r29->unk_28 - 360.0f; -// } -// var_f26 = fn_1_E5A4(var_r29->unk_28, var_r29->unk_7C); -// var_f25 = fabs(var_f26); -// var_f24 = var_f25; -// if (var_f24 > 90.0) { -// var_r29->unk_7C = 180.0f + var_r29->unk_28; -// var_r29->unk_14 = 0; -// } -// else { -// var_r29->unk_7C = var_r29->unk_28; -// var_r29->unk_14 = 1; -// } -// var_r29->unk_24 = 10.0f; -// var_r29->unk_88 = 53.083336f; -// if (lbl_1_bss_DAA[var_r28] == 0) { -// temp_r6 = lbl_1_bss_DA8; -// lbl_1_bss_DA8 = temp_r6 - 1; -// lbl_1_bss_DAA[var_r28] = temp_r6; -// } -// } -// var_r28++; -// goto loop_72; -// } -// } -// omSetTra(var_r30, var_r31->unk_10, var_r31->unk_14, var_r31->unk_18); -// omSetRot(var_r30, var_r31->unk_1C, var_r31->unk_20, var_r31->unk_24); -// } - -// void fn_1_5D4C(void *arg0) -// { -// s16 sp8; -// float var_f26; -// float var_f27; -// float var_f28; -// float var_f29; -// float var_f30; -// float var_f31; -// s32 var_r29; -// u8 temp_r0; -// void *var_r30; -// void *var_r31; - -// var_r30 = arg0; -// sp8 = 0; -// temp_r0 = var_r30->unk_60; -// switch (temp_r0) { -// case 0: -// var_f27 = 360.0f / var_r30->unk_02; -// for (var_r31 = var_r30->unk_3C; var_r29 = 0; var_r31 < var_r30->unk_02; var_r29++; var_r31 += 0x98) { -// var_f26 = 0.8f + (0.1f * (2.0f * (0.000030517578f * (fn_1_7DB4() - 0x8000)))); -// var_r31->unk_6C = sind((var_f27 * var_r29)) * var_f26; -// var_r31->unk_70 = 0.0f; -// var_f26 = 0.8f + (0.1f * (2.0f * (0.000030517578f * (fn_1_7DB4() - 0x8000)))); -// var_r31->unk_74 = cosd((var_f27 * var_r29)) * var_f26; -// var_r31->unk_00 = 40.0f * var_r31->unk_6C; -// var_r31->unk_04 = 6.0f; -// var_r31->unk_08 = 40.0f * var_r31->unk_74; -// var_f29 = 0.01f * (100.0f * (0.000015258789f * fn_1_7DB4())); -// var_r31->unk_54 = 80.0f + (60.0f * var_f29); -// var_r31->unk_55 = 64.0f + (60.0f * var_f29); -// var_r31->unk_56 = 56.0f + (60.0f * var_f29); -// } -// var_r30->unk_7C = 0x30; -// var_r30->unk_60 = var_r30->unk_60 + 1; - -// case 1: -// var_r30->unk_7C = var_r30->unk_7C - 1; -// var_f31 = (48.0f - var_r30->unk_7C) / 48.0f; -// var_f28 = var_r30->unk_7C / 48.0f; -// for (var_r31 = var_r30->unk_3C; var_r29 = 0; var_r31 < var_r30->unk_02; var_r29++; var_r31 += 0x98) { -// var_r31->unk_00 = var_r31->unk_00 + (12.5f * var_f28 * var_r31->unk_6C); -// var_r31->unk_08 = var_r31->unk_08 + (12.5f * var_f28 * var_r31->unk_74); -// var_f30 = 2.4f + (6.0f * var_f31); -// var_r31->unk_18 = var_f30; -// var_r31->unk_1C = var_f30; -// var_r31->unk_20 = var_f30; -// var_r31->unk_57 = 96.0f * (1.0f - (var_f31 * var_f31)); -// } -// if (var_r30->unk_7C == 0) { -// var_r30->unk_60 = var_r30->unk_60 + 1; -// return; -// } -// return; -// case 2: -// fn_1_107BC(var_r30->unk_00); -// break; -// } -// } - -void fn_1_62BC(void *arg0) +void fn_1_4F50(omObjData *object) { - // s16 sp8; + Mtx sp24; + Vec sp18; + float sp8[4]; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f25; + s32 var_r26; + M438MainWork3 *var_r27; + s32 var_r28; + M438MainWork *var_r29; + M438MainWork3 *var_r31; - // void *var_r31; - // void *var_r30; - - // var_r30 = arg0; - // sp8 = 0; - // switch (var_r30->unk_60) { - // case 0: - // var_r31 = var_r30->unk_3C; - // var_r31->unk_70 = 5.0f; - // var_r31->unk_6C *= -2.0f; - // var_r31->unk_74 *= -2.0f; - // var_r30->unk_60++; - - // case 1: - // var_r31 = var_r30->unk_3C; - // var_r31->unk_00 += var_r31->unk_6C; - // var_r31->unk_04 += var_r31->unk_70; - // var_r31->unk_08 += var_r31->unk_74; - // return; - // case 2: - // fn_1_107BC(var_r30->unk_00); - // return; - // } + var_r31 = object->data; + switch (lbl_1_bss_DBA) { + case 7: + switch (var_r31->unk_00) { + case 0: + var_r31->unk_34 = var_r31->unk_10; + Hu3DMotionShiftSet(object->model[0], object->motion[3], 0.0f, 8.0f, 0); + var_r31->unk_00++; + case 1: + var_r31->unk_34 = var_r31->unk_10; + + for (var_r28 = 0, var_r26 = 0; var_r28 < 4; var_r28++) { + var_r29 = lbl_1_bss_DC4[var_r28]->data; + if ((var_r29->unk_07 != 0) && ((var_r29->unk_07 & 2) == 0)) { + VECSubtract(&var_r29->unk_6C, &var_r31->unk_10, &sp18); + sp8[var_r26++] = atan2d(sp18.x, sp18.z); + } + } + var_r31->unk_1C.y += 18.0f + object->work[1]; + if (var_r31->unk_1C.y > 180.0f) { + var_r31->unk_1C.y -= 360.0f; + } + if (var_r31->unk_1C.y <= -180.0f) { + var_r31->unk_1C.y += 360.0f; + } + + for (var_r28 = 0; var_r28 < var_r26; var_r28++) { + var_f31 = fn_1_E5A4(sp8[var_r28], object->rot.y); + if (var_f31 < 0.0f) { + var_f27 = -var_f31; + } else { + var_f27 = var_f31; + } + if (var_f27 > (20.0f + object->work[1])) continue; + object->work[0]--; + if (object->work[0] != 0 && ((fn_1_7DB4() & 0xF) != 0)) continue; + var_r31->unk_04.y = sp8[var_r28]; + var_r31->unk_1C.y = sp8[var_r28]; + var_r31->unk_28.y = 16.333334f; + var_r31->unk_04.z = 6.0 + (0.5 * object->work[1]); + var_r31->unk_34 = var_r31->unk_10; + var_r31->unk_40.x = 20.0f; + var_r31->unk_40.y = 0.0f; + var_r31->unk_02 = 30; + Hu3DMotionShiftSet(object->model[0], object->motion[0], 0.0f, 8.0f, 0x40000002); + var_r31->unk_00++; + break; + } + break; + case 2: + var_r31->unk_40.y += 10.0f; + if (var_r31->unk_40.y > 90.0f) { + var_r31->unk_40.y = 0.0f; + } + var_f29 = cosd(var_r31->unk_40.y); + var_r31->unk_1C.x = var_r31->unk_40.x * var_f29; + var_r31->unk_10.x = var_r31->unk_34.x + ((50.0f * var_f29) * sind(var_r31->unk_1C.y)); + var_r31->unk_10.z = var_r31->unk_34.z + ((50.0f * var_f29) * cosd(var_r31->unk_1C.y)); + if (--var_r31->unk_02 == 0) { + HuAudFXEmiterPlay(0x700, &var_r31->unk_10); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + var_r31->unk_1C.x = 0.0f; + var_r31->unk_00++; + } + break; + case 3: + var_r31->unk_04.z += 0.5; + var_r31->unk_28.y += -3.0625f; + var_f28 = var_r31->unk_04.z + (0.8f * var_r31->unk_28.y); + var_r31->unk_28.x = var_f28 * sind(var_r31->unk_04.y); + var_r31->unk_28.z = var_f28 * cosd(var_r31->unk_04.y); + var_r31->unk_10.x += var_r31->unk_28.x; + var_r31->unk_10.y += var_r31->unk_28.y; + var_r31->unk_10.z += var_r31->unk_28.z; + var_r31->unk_34 = var_r31->unk_10; + if (var_r31->unk_10.y < 0.0f) { + var_r31->unk_10.y = 0.0f; + var_r31->unk_28.y = 16.333334f; + } + sp18 = var_r31->unk_10; + sp18.y = 0.0f; + var_f30 = VECMag(&sp18); + if (var_f30 <= 700.0f) break; + var_r31->unk_02 = 1; + if (fn_1_DA64(atan2d(sp18.x, sp18.z)) != 0) { + var_r31->unk_02 = 0x78; + for (var_r28 = 0; var_r28 < 4; var_r28++) { + var_r29 = lbl_1_bss_DC4[var_r28]->data; + if ((var_r29->unk_07 != 0) && ((var_r29->unk_07 & 2) == 0)) { + omVibrate(var_r28, 0xC, 4, 2); + } + } + fn_1_28E4(0, 0x3C, 25.0f, 0.95f, 90.0f); + HuAudFXEmiterPlay(0x6FC, &var_r31->unk_10); + HuAudFXPlay(0x6FE); + } + fn_1_9634(&sp18); + var_r31->unk_10.x = 700.0f * sp18.x; + var_r31->unk_10.z = 700.0f * sp18.z; + var_r31->unk_40 = var_r31->unk_1C; + var_r31->unk_00++; + break; + case 4: + var_r31->unk_28.y += -3.0625f; + var_r31->unk_10.y += var_r31->unk_28.y; + if (var_r31->unk_10.y > 0.0f) break; + var_r31->unk_10.y = 0.0f; + var_r31->unk_34 = var_r31->unk_10; + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_REV); + var_r31->unk_40.y += 8.0f; + var_r31->unk_40.x = 10.0 * sind(var_r31->unk_40.y); + var_r31->unk_40.z = 10.0 * cosd(var_r31->unk_40.y); + mtxRot(sp24, 0.0f, 360.0f - var_r31->unk_04.y, var_r31->unk_40.z); + mtxRotCat(sp24, var_r31->unk_40.x, 0.0f, 0.0f); + fn_1_8164(sp24, &var_r31->unk_1C); + if (--var_r31->unk_02 == 0) { + var_r31->unk_1C.x = var_r31->unk_1C.z = 0.0f; + var_r31->unk_1C.y = var_r31->unk_04.y; + object->work[0] = 0.5f * (lbl_1_bss_DB4 / 60.0f); + object->work[1]++; + var_r31->unk_00 = 0; + } + break; + } + break; + case 8: + var_r31->unk_1C.x = var_r31->unk_1C.z = 0.0f; + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_REV); + break; + case 9: + var_r31->unk_1C.y = fn_1_7EDC(var_r31->unk_1C.y, 0.0f, 0.9f); + break; + case 10: + if (var_r31->unk_04s == 0) { + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_REV); + Hu3DMotionSet(object->model[0], object->motion[1]); + Hu3DMotionSpeedSet(object->model[0], 1.0f); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + var_r31->unk_04s = 1; + } + break; + } + if (lbl_1_bss_DBA == 7) { + for (var_r28 = 0, var_r26 = 0; var_r28 < 4; var_r28++) { + var_r29 = lbl_1_bss_DC4[var_r28]->data; + VECSubtract(&var_r29->unk_6C, &var_r31->unk_10, &sp18); + var_f30 = VECMag(&sp18); + if (var_f30 >= 200.0f || var_r29->unk_20 == 7) continue; + omVibrate(var_r29->unk_00, 0xC, 4, 2); + var_r29->unk_07 |= 2; + var_r29->unk_0D = 0; + var_r29->unk_20 = 7; + var_r29->unk_28 = atan2d(sp18.x, sp18.z); + if (var_r29->unk_28 >= 360.0f) { + var_r29->unk_28 -= 360.0f; + } + if (fabs(fn_1_E5A4(var_r29->unk_28, var_r29->unk_7C)) > 90.0) { + var_r29->unk_7C = 180.0f + var_r29->unk_28; + var_r29->unk_14 = 0; + } else { + var_r29->unk_7C = var_r29->unk_28; + var_r29->unk_14 = 1; + } + var_r29->unk_24 = 10.0f; + var_r29->unk_88 = 53.083336f; + if (lbl_1_bss_DAA[var_r28] == 0) { + lbl_1_bss_DAA[var_r28] = lbl_1_bss_DA8--; + } + } + } + omSetTra(object, var_r31->unk_10.x, var_r31->unk_10.y, var_r31->unk_10.z); + omSetRot(object, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z); } -// void fn_1_63B0(void *arg0) -// { -// float sp10; -// float spC; -// float sp8; -// float temp_f0; -// float temp_f0_2; -// float temp_f0_3; -// float var_f28; -// float var_f29; -// float var_f30; -// float var_f31; -// double var_f27; -// s16 temp_r0_2; -// s32 var_r29; -// u8 temp_r0; -// void *var_r30; -// void *var_r31; +void fn_1_5D4C(M438UnkStruct2 *arg0) { + s16 sp8; + f32 temp_f31; + f32 temp_f30; + f32 temp_f29; + f32 temp_f28; + f32 temp_f27; + s32 var_r29; + M438UnkStruct* var_r31; -// var_r30 = arg0; -// for (var_r31 = var_r30->unk_3C; var_r29 = 0; var_r31 < var_r30->unk_02; var_r29++; var_r31 += 0x98) { -// temp_r0 = var_r31->unk_5C; -// switch (temp_r0) { -// case 0: -// if ((atan2d(var_r30->unk_80, var_r30->unk_84)) < 0.0) { -// var_f27 = -(atan2d(var_r30->unk_80, var_r30->unk_84)); -// } -// else { -// var_f27 = atan2d(var_r30->unk_80, var_r30->unk_84); -// } -// var_f29 = var_f27; -// if (var_f29 > 90.0f) { -// var_f29 = 180.0f - var_f29; -// } -// var_f28 = 40.0f * (0.1f + ((0.9f * var_f29) / 90.0f)); -// var_f31 = (0.5f * var_f28) + ((var_r30->unk_88 - var_f28) * (0.000015258789f * fn_1_7DB4())); -// temp_f0 = var_f31 * var_r30->unk_80; -// sp8 = temp_f0; -// temp_f0_2 = var_f31 * var_r30->unk_84; -// sp10 = temp_f0_2; -// var_r31->unk_00 = temp_f0; -// var_r31->unk_04 = 0.0f; -// var_r31->unk_08 = temp_f0_2; -// var_f31 = 0.0f; -// spC = 0.0f; -// loop_14: -// if (var_f31 < (var_r30->unk_8C - 40.0f)) { -// temp_f0_3 = spC + 0.8f; -// spC = temp_f0_3; -// var_f31 += temp_f0_3; -// goto loop_14; -// } -// var_r31->unk_6C = 0.0f; -// var_r31->unk_70 = spC + (1.5f * (0.000015258789f * fn_1_7DB4())); -// var_r31->unk_74 = 0.0f; -// if ((fn_1_7DB4() & 7) != 0) { -// var_r31->unk_33 = 1; -// var_r31->unk_54 = 0x40; -// var_r31->unk_55 = 0x10; -// var_r31->unk_56 = 4; -// var_r31->unk_57 = 0xFF; -// var_f30 = 3.75f + (1.75f * (0.000015258789f * fn_1_7DB4())); -// var_r31->unk_60 = var_f30 * (0.1f + ((0.9f * var_f29) / 90.0f)); -// var_r31->unk_68 = var_f30; -// var_r31->unk_64 = var_f30; -// } -// else { -// var_r31->unk_33 = 0; -// var_r31->unk_54 = 0; -// var_r31->unk_55 = 0; -// var_r31->unk_56 = 0; -// var_r31->unk_57 = 0xFF; -// var_f30 = 0.25f + (0.25f * (0.000015258789f * fn_1_7DB4())); -// var_r31->unk_64 = 1.5f * var_f30; -// var_r31->unk_68 = var_f30; -// var_r31->unk_60 = var_f30; -// } -// var_r31->unk_58->unk_24 = 0; -// var_r31->unk_78 = (60.0f * (0.000015258789f * fn_1_7DB4())) + 1; -// var_r31->unk_5C = var_r31->unk_5C + 1; + sp8 = 0; + switch (arg0->unk_60) { /* irregular */ + case 0: + temp_f27 = 360.0f / arg0->unk_02; + + var_r31 = &arg0->unk_3C[0]; + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { + var_r31->unk_6C.x = sind(temp_f27 * var_r29) * (0.8f + (0.1f * (2.0f * ((1.0f / 32768.0f) * (fn_1_7DB4() - 0x8000))))); + var_r31->unk_6C.y = 0.0f; + var_r31->unk_6C.z = cosd(temp_f27 * var_r29) * (0.8f + (0.1f * (2.0f * ((1.0f / 32768.0f) * (fn_1_7DB4() - 0x8000))))); + var_r31->unk_00.x = (40.0f * var_r31->unk_6C.x); + var_r31->unk_00.y = 6.0f; + var_r31->unk_00.z = (40.0f * var_r31->unk_6C.z); + temp_f29 = 0.01f * (100.0f * ((1.0f / 65536.0f) * fn_1_7DB4())); + var_r31->unk_54 = (80.0f + 60.0f * temp_f29); + var_r31->unk_55 = (64.0f + 60.0f * temp_f29); + var_r31->unk_56 = (56.0f + 60.0f * temp_f29); + } + arg0->unk_7C = 0x30; + arg0->unk_60++; + case 1: + arg0->unk_7C--; + temp_f31 = (48.0f - arg0->unk_7C) / 48.0f; + temp_f28 = arg0->unk_7C / 48.0f; + + var_r31 = arg0->unk_3C; + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { + var_r31->unk_00.x += 12.5f * temp_f28 * var_r31->unk_6C.x; + var_r31->unk_00.z += 12.5f * temp_f28 * var_r31->unk_6C.z; + temp_f30 = 2.4f + (6.0f * temp_f31); + var_r31->unk_18.x = temp_f30; + var_r31->unk_18.y = temp_f30; + var_r31->unk_18.z = temp_f30; + var_r31->unk_57 = (96.0f * (1.0f - (temp_f31 * temp_f31))); + } + if (arg0->unk_7C == 0) { + arg0->unk_60++; + } + break; + case 2: + fn_1_107BC(arg0->unk_00); + return; + } +} -// case 1: -// temp_r0_2 = var_r31->unk_78 - 1; -// var_r31->unk_78 = temp_r0_2; -// if (temp_r0_2 == 0) { -// var_r31->unk_58->unk_24 = 0x11; -// var_r31->unk_58->unk_28 = 0.5f; -// var_r31->unk_58->unk_2C = 0.0f; -// var_r31->unk_58->unk_00 = 0; -// var_r31->unk_5C = var_r31->unk_5C + 1; -// } -// break; -// case 2: -// var_r31->unk_00 = var_r31->unk_00 + var_r31->unk_6C; -// var_r31->unk_04 = var_r31->unk_04 + var_r31->unk_70; -// var_r31->unk_08 = var_r31->unk_08 + var_r31->unk_74; -// if (var_r31->unk_04 < 0.0f) { -// var_r31->unk_04 = 0.0f; -// } -// var_r31->unk_60 = var_r31->unk_60 * 0.95f; -// var_r31->unk_64 = var_r31->unk_64 * 0.95f; -// var_r31->unk_68 = var_r31->unk_68 * 0.95f; -// var_r31->unk_70 = var_r31->unk_70 - 0.8f; -// if ((var_r31->unk_58->unk_24 & 8) != 0) { -// var_r31->unk_5C = 0; -// } -// break; -// } -// var_r31->unk_18 = var_r31->unk_60 * var_r30->unk_90; -// var_r31->unk_1C = var_r31->unk_64 * var_r30->unk_90; -// var_r31->unk_20 = var_r31->unk_68 * var_r30->unk_90; -// } -// } +void fn_1_62BC(M438UnkStruct2 *arg0) +{ + s16 sp8; -// void fn_1_6A3C(void *arg0) -// { -// float sp10; -// float spC; -// float sp8; -// float temp_f0; -// float temp_f0_2; -// float temp_f0_3; -// float temp_f0_4; -// float var_f29; -// float var_f30; -// float var_f31; -// s16 temp_r0_2; -// s16 var_r29; -// s32 var_r27; -// s32 var_r28; -// u8 temp_r0; -// void *var_r30; -// void *var_r31; + M438UnkStruct *var_r31; + + sp8 = 0; + switch (arg0->unk_60) { + case 0: + var_r31 = arg0->unk_3C; + var_r31->unk_6C.y = 5.0f; + var_r31->unk_6C.x *= -2.0f; + var_r31->unk_6C.z *= -2.0f; + arg0->unk_60++; -// var_r30 = arg0; -// var_r31 = var_r30->unk_3C; -// var_r28 = 0; -// var_r27 = 0; -// loop_35: -// if (var_r27 < var_r30->unk_02) { -// if ((var_r30->unk_7C != 0) && (var_r31->unk_7A == 0)) { -// var_r31->unk_5C = 0; -// } -// temp_r0 = var_r31->unk_5C; -// switch (temp_r0) { -// case 0: -// if (var_r30->unk_7C != 0) { -// var_f30 = (180.0f * (0.000015258789f * fn_1_7DB4())) - 90.0f; -// var_f29 = 125.0f; -// temp_f0 = sind(var_f30); -// sp8 = temp_f0; -// temp_f0_2 = cosd(var_f30); -// sp10 = temp_f0_2; -// var_r31->unk_00 = 125.0f * temp_f0; -// var_r31->unk_04 = 0.0f; -// var_r31->unk_08 = 125.0f * temp_f0_2; -// spC = 25.0f; -// var_r31->unk_6C = 100.0f * (0.1f * temp_f0); -// var_r31->unk_70 = 25.0f + (2.5f * (0.000015258789f * fn_1_7DB4())); -// var_r31->unk_74 = 100.0f * (0.1f * temp_f0_2); -// var_r31->unk_78 = (24.0f * (0.000015258789f * fn_1_7DB4())) + 1; -// var_r31->unk_7A = 1; -// } -// else { -// var_f30 = (180.0f * (0.000015258789f * fn_1_7DB4())) - 90.0f; -// var_f29 = 125.0f * (0.000015258789f * fn_1_7DB4()); -// temp_f0_3 = sind(var_f30); -// sp8 = temp_f0_3; -// temp_f0_4 = cosd(var_f30); -// sp10 = temp_f0_4; -// var_r31->unk_00 = var_f29 * temp_f0_3; -// var_r31->unk_04 = 0.0f; -// var_r31->unk_08 = var_f29 * temp_f0_4; -// spC = 5.0f; -// var_r31->unk_6C = 100.0 * (0.015 * temp_f0_3); -// var_r31->unk_70 = 5.0f + (0.000015258789f * fn_1_7DB4()); -// var_r31->unk_74 = 100.0f * (0.015f * temp_f0_4); -// var_r31->unk_78 = (60.0f * (0.000015258789f * fn_1_7DB4())) + 1; -// var_r31->unk_7A = 0; -// } -// var_r31->unk_38 = var_r31->unk_38 & 0xFFFFFFFB; -// if ((fn_1_7DB4() & 0xF) != 0) { -// var_r31->unk_33 = 1; -// var_r31->unk_54 = 0x40; -// var_r31->unk_55 = 0x10; -// var_r31->unk_56 = 4; -// var_r31->unk_57 = 0xFF; -// var_f31 = 1.8f + (0.000015258789f * fn_1_7DB4()); -// var_r31->unk_18 = var_f31; -// var_r31->unk_1C = var_f31; -// var_r31->unk_20 = var_f31; -// goto block_19; -// } -// if (var_r30->unk_7C != 0) { -// var_r31->unk_33 = 0; -// var_r31->unk_54 = 0; -// var_r31->unk_55 = 0; -// var_r31->unk_56 = 0; -// var_r31->unk_57 = 0xFF; -// var_f31 = 0.25f + (0.25f * (0.000015258789f * fn_1_7DB4())); -// var_r31->unk_18 = var_f31; -// var_r31->unk_1C = 1.5f * var_f31; -// var_r31->unk_20 = var_f31; -// block_19: -// var_r31->unk_58->unk_24 = 0; -// var_r31->unk_5C = var_r31->unk_5C + 1; -// } -// else { -// var_r29 = fn_1_10258(8, 1); -// fn_1_11018(var_r29, 0, 0x45000A); -// *(lbl_1_bss_DE4.unk_40 + ((var_r29 * 0xBC) + 0x30)) = fn_1_7300; -// fn_1_11890(var_r29, var_r30->unk_0C + var_r31->unk_00, var_r30->unk_10 + var_r31->unk_04, var_r30->unk_14 + var_r31->unk_08); -// fn_1_12100(var_r29, 4); -// fn_1_124CC(var_r29, 1); -// var_r31->unk_38 = var_r31->unk_38 | 4; -// } -// break; -// case 1: -// if (var_r31->unk_7A != 0) { -// var_r31->unk_70 = var_r31->unk_70 - 0.5f; -// } -// temp_r0_2 = var_r31->unk_78 - 1; -// var_r31->unk_78 = temp_r0_2; -// if (temp_r0_2 == 0) { -// var_r31->unk_58->unk_24 = 0x11; -// if (var_r31->unk_7A != 0) { -// var_r31->unk_58->unk_28 = 0.5f; -// } -// else { -// var_r31->unk_58->unk_28 = 0.5f; -// } -// var_r31->unk_58->unk_2C = 0.0f; -// var_r31->unk_58->unk_00 = 0; -// var_r31->unk_5C = var_r31->unk_5C + 1; -// } -// break; -// case 2: -// var_r31->unk_00 = var_r31->unk_00 + var_r31->unk_6C; -// var_r31->unk_04 = var_r31->unk_04 + var_r31->unk_70; -// var_r31->unk_08 = var_r31->unk_08 + var_r31->unk_74; -// if (var_r31->unk_04 < 0.0f) { -// var_r31->unk_04 = 0.0f; -// } -// var_r31->unk_18 = var_r31->unk_18 * 0.95f; -// var_r31->unk_1C = var_r31->unk_1C * 0.95f; -// var_r31->unk_20 = var_r31->unk_20 * 0.95f; -// var_r31->unk_70 = var_r31->unk_70 - 1.5f; -// if ((var_r31->unk_58->unk_24 & 8) != 0) { -// if (var_r31->unk_7A != 0) { -// var_r31->unk_5C = 3; -// } -// else { -// var_r31->unk_5C = 0; -// } -// } -// break; -// case 3: -// var_r28++; -// break; -// } -// var_r27++; -// var_r31 += 0x98; -// goto loop_35; -// } -// if (var_r28 >= var_r30->unk_02) { -// fn_1_107BC(var_r30->unk_00); -// } -// } + case 1: + var_r31 = arg0->unk_3C; + var_r31->unk_00.x += var_r31->unk_6C.x; + var_r31->unk_00.y += var_r31->unk_6C.y; + var_r31->unk_00.z += var_r31->unk_6C.z; + return; + case 2: + fn_1_107BC(arg0->unk_00); + return; + } +} -// void fn_1_7300(void *arg0) -// { -// float sp10; -// float spC; -// float sp8; -// float temp_f0; -// float temp_f0_2; -// float temp_f0_3; -// float var_f29; -// float var_f30; -// float var_f31; -// s16 temp_r0_2; -// s32 var_r28; -// s32 var_r29; -// u8 temp_r0; -// u8 temp_r0_3; -// void *var_r30; -// void *var_r31; +void fn_1_63B0(M438UnkStruct2* arg0) { + Vec sp8; + M438UnkStruct* var_r31; + f32 var_f31; + f32 temp_f30; + f32 var_f29; + f32 temp_f28; + s32 var_r29; -// var_r30 = arg0; -// var_r31 = var_r30->unk_3C; -// temp_r0 = var_r30->unk_60; -// switch (temp_r0) { -// case 0: -// var_f31 = 0.01f; -// var_r30->unk_2C = 0.01f; -// var_r30->unk_28 = 0.01f; -// var_r30->unk_24 = 0.01f; -// var_r30->unk_7C = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M438, 0x0B)); -// var_r30->unk_7E = (30.0f * (0.000015258789f * fn_1_7DB4())) + 0x1E; -// var_r29 = 0; -// loop_6: -// if (var_r29 < var_r30->unk_02) { -// var_r31->unk_38 = var_r31->unk_38 | 4; -// var_r29++; -// var_r31 += 0x98; -// goto loop_6; -// } -// var_r30->unk_60 = var_r30->unk_60 + 1; + var_r31 = arg0->unk_3C; + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { + switch (var_r31->unk_5C) { + case 0: + var_f29 = atan2d(arg0->unk_80, arg0->unk_84) < 0 + ? -atan2d(arg0->unk_80, arg0->unk_84) + : atan2d(arg0->unk_80, arg0->unk_84); + + if (var_f29 > 90.0f) { + var_f29 = 180.0f - var_f29; + } + temp_f28 = 40.0f * (0.1f + ((0.9f * var_f29) / 90.0f)); + var_f31 = (0.5f * temp_f28) + ((arg0->unk_88 - temp_f28) * ((1.0f / 65536.0f) * fn_1_7DB4())); + sp8.x = var_f31 * arg0->unk_80; + sp8.z = var_f31 * arg0->unk_84; + var_r31->unk_00.x = sp8.x; + var_r31->unk_00.y = 0.0f; + var_r31->unk_00.z = sp8.z; + + for (var_f31 = 0.0f, sp8.y = 0.0f; var_f31 < (arg0->unk_8C - 40.0f); var_f31 += sp8.y) { + sp8.y += 0.8f; + } + var_r31->unk_6C.x = 0.0f; + var_r31->unk_6C.y = sp8.y + (1.5f * ((1.0f / 65536.0f) * fn_1_7DB4())); + var_r31->unk_6C.z = 0.0f; + if ((fn_1_7DB4() & 7) != 0) { + var_r31->unk_33 = 1; + var_r31->unk_54 = 0x40; + var_r31->unk_55 = 0x10; + var_r31->unk_56 = 4; + var_r31->unk_57 = 0xFF; + temp_f30 = 3.75f + (1.75f * ((1.0f / 65536.0f) * fn_1_7DB4())); + var_r31->unk_60.x = (temp_f30 * (0.1f + ((0.9f * var_f29) / 90.0f))); + var_r31->unk_60.y = var_r31->unk_60.z = temp_f30; + } else { + var_r31->unk_33 = 0; + var_r31->unk_54 = 0; + var_r31->unk_55 = 0; + var_r31->unk_56 = 0; + var_r31->unk_57 = 0xFF; + temp_f30 = 0.25f + (0.25f * ((1.0f / 65536.0f) * fn_1_7DB4())); + var_r31->unk_60.y = (1.5f * temp_f30); + var_r31->unk_60.x = var_r31->unk_60.z = temp_f30; + } + var_r31->unk_58->unk_24 = 0; + var_r31->unk_78 = (s32)((60.0f * ((1.0f / 65536.0f) * fn_1_7DB4()))) + 1; + var_r31->unk_5C++; + case 1: + if (--var_r31->unk_78 == 0) { + var_r31->unk_58->unk_24 = 0x11U; + var_r31->unk_58->unk_28 = 0.5f; + var_r31->unk_58->unk_2C = 0.0f; + var_r31->unk_58->unk_00 = 0; + var_r31->unk_5C++; + } + break; + case 2: + var_r31->unk_00.x += var_r31->unk_6C.x; + var_r31->unk_00.y += var_r31->unk_6C.y; + var_r31->unk_00.z += var_r31->unk_6C.z; + if (var_r31->unk_00.y < 0.0f) { + var_r31->unk_00.y = 0.0f; + } + var_r31->unk_60.x *= 0.95f; + var_r31->unk_60.y *= 0.95f; + var_r31->unk_60.z *= 0.95f; + var_r31->unk_6C.y -= 0.8f; + if ((var_r31->unk_58->unk_24 & 8) != 0) { + var_r31->unk_5C = 0; + } + break; + } + var_r31->unk_18.x = var_r31->unk_60.x * arg0->unk_90; + var_r31->unk_18.y = var_r31->unk_60.y * arg0->unk_90; + var_r31->unk_18.z = var_r31->unk_60.z * arg0->unk_90; + } +} -// case 1: -// var_r30->unk_2C = var_r30->unk_2C + 0.008f; -// temp_f0 = var_r30->unk_2C; -// var_r30->unk_28 = temp_f0; -// var_r30->unk_24 = temp_f0; -// Hu3DModelPosSetV(var_r30->unk_7C, var_r30 + 0xC); -// Hu3DModelScaleSetV(var_r30->unk_7C, var_r30 + 0x24); -// temp_r0_2 = var_r30->unk_7E - 1; -// var_r30->unk_7E = temp_r0_2; -// if (temp_r0_2 == 0) { -// Hu3DModelKill(var_r30->unk_7C); -// var_r30->unk_7C = 0; -// var_r29 = 0; -// loop_11: -// if (var_r29 < var_r30->unk_02) { -// var_r31->unk_5C = 1; -// var_r29++; -// var_r31 += 0x98; -// goto loop_11; -// } -// var_r30->unk_80 = var_r30->unk_24; -// var_r30->unk_2C = 1.0f; -// var_r30->unk_28 = 1.0f; -// var_r30->unk_24 = 1.0f; -// var_r30->unk_60 = var_r30->unk_60 + 1; -// } -// break; -// } -// var_r28 = 0; -// for (var_r31 = var_r30->unk_3C; var_r29 = 0; var_r31 < var_r30->unk_02; var_r29++; var_r31 += 0x98) { -// temp_r0_3 = var_r31->unk_5C; -// switch (temp_r0_3) { -// case 1: -// var_r31->unk_38 = var_r31->unk_38 & 0xFFFFFFFB; -// var_r31->unk_33 = 1; -// var_r31->unk_54 = 0x60; -// var_r31->unk_55 = 0x20; -// var_r31->unk_56 = 0x10; -// var_r31->unk_57 = 0xFF; -// var_f31 = 0.4f + (0.15f * (0.000015258789f * fn_1_7DB4())); -// var_r31->unk_18 = var_f31; -// var_r31->unk_1C = var_f31; -// var_r31->unk_20 = var_f31; -// var_f29 = 360.0f * (0.000015258789f * fn_1_7DB4()); -// var_f30 = 50.0f * var_r30->unk_80; -// temp_f0_2 = sind(var_f29); -// sp8 = temp_f0_2; -// temp_f0_3 = cosd(var_f29); -// sp10 = temp_f0_3; -// var_r31->unk_00 = var_f30 * temp_f0_2; -// var_r31->unk_04 = var_f30; -// var_r31->unk_08 = var_f30 * temp_f0_3; -// spC = 6.0f; -// var_r31->unk_6C = 100.0f * (0.015f * temp_f0_2); -// var_r31->unk_70 = 6.0f + (1.5f * (0.000015258789f * fn_1_7DB4())); -// var_r31->unk_74 = 100.0f * (0.015f * temp_f0_3); -// var_r31->unk_58->unk_24 = 0x11; -// var_r31->unk_58->unk_28 = 0.75f; -// var_r31->unk_5C = var_r31->unk_5C + 1; -// break; -// case 2: -// var_r31->unk_00 = var_r31->unk_00 + var_r31->unk_6C; -// var_r31->unk_04 = var_r31->unk_04 + var_r31->unk_70; -// var_r31->unk_08 = var_r31->unk_08 + var_r31->unk_74; -// var_r31->unk_70 = var_r31->unk_70 - 0.75f; -// if ((var_r31->unk_58->unk_24 & 8) != 0) { -// var_r31->unk_5C = var_r31->unk_5C + 1; -// } -// break; -// case 3: -// var_r28++; -// break; -// } -// } -// if (var_r28 >= var_r30->unk_02) { -// fn_1_107BC(var_r30->unk_00); -// } -// if (lbl_1_bss_DBA == 2) { -// if (var_r30->unk_7C != 0) { -// Hu3DModelKill(var_r30->unk_7C); -// } -// fn_1_107BC(var_r30->unk_00); -// } -// } +void fn_1_6A3C(M438UnkStruct2* arg0) { + Vec sp8; + M438UnkStruct* var_r31; + f32 temp_f31; + f32 temp_f30; + f32 temp_f29; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r31 = arg0->unk_3C; + var_r28 = 0; + + for (var_r27 = 0; var_r27 < arg0->unk_02; var_r27++, var_r31++) { + if ((arg0->unk_7C != 0) && (var_r31->unk_7A == 0)) { + var_r31->unk_5C = 0; + } + switch (var_r31->unk_5C) { + case 0: + if (arg0->unk_7C != 0) { + temp_f30 = (180.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) - 90.0f; + temp_f29 = 125.0f; + sp8.x = sind(temp_f30); + sp8.z = cosd(temp_f30); + var_r31->unk_00.x = temp_f29 * sp8.x; + var_r31->unk_00.y = 0.0f; + var_r31->unk_00.z = temp_f29 * sp8.z; + sp8.y = 25.0f; + var_r31->unk_6C.x = 100.0f * (0.1f * sp8.x); + var_r31->unk_6C.y = sp8.y + (2.5f * ((1.0f / 65536.0f) * fn_1_7DB4())); + var_r31->unk_6C.z = 100.0f * (0.1f * sp8.z); + var_r31->unk_78 = (s32)(24.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1; + var_r31->unk_7A = 1; + } else { + temp_f30 = (180.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) - 90.0f; + temp_f29 = 125.0f * ((1.0f / 65536.0f) * fn_1_7DB4()); + sp8.x = sind(temp_f30); + sp8.z = cosd(temp_f30); + var_r31->unk_00.x = temp_f29 * sp8.x; + var_r31->unk_00.y = 0.0f; + var_r31->unk_00.z = temp_f29 * sp8.z; + sp8.y = 5.0f; + var_r31->unk_6C.x = (100.0 * (0.015 * sp8.x)); + var_r31->unk_6C.y = sp8.y + ((1.0f / 65536.0f) * fn_1_7DB4()); + var_r31->unk_6C.z = 100.0f * (0.015f * sp8.z); + var_r31->unk_78 = (s32)(60.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1; + var_r31->unk_7A = 0; + } + var_r31->unk_38 &= ~4; + if ((fn_1_7DB4() & 0xF) != 0) { + var_r31->unk_33 = 1; + var_r31->unk_54 = 0x40; + var_r31->unk_55 = 0x10; + var_r31->unk_56 = 4; + var_r31->unk_57 = 0xFF; + temp_f31 = 1.8f + ((1.0f / 65536.0f) * fn_1_7DB4()); + var_r31->unk_18.x = temp_f31; + var_r31->unk_18.y = temp_f31; + var_r31->unk_18.z = temp_f31; + } else if (arg0->unk_7C != 0) { + var_r31->unk_33 = 0; + var_r31->unk_54 = 0; + var_r31->unk_55 = 0; + var_r31->unk_56 = 0; + var_r31->unk_57 = 0xFF; + temp_f31 = 0.25f + (0.25f * ((1.0f / 65536.0f) * fn_1_7DB4())); + var_r31->unk_18.x = temp_f31; + var_r31->unk_18.y = 1.5f * temp_f31; + var_r31->unk_18.z = temp_f31; + } else { + var_r29 = fn_1_10258(8, 1); + fn_1_11018(var_r29, 0, 0x45000A); + lbl_1_bss_DE4.unk_40[var_r29].unk_30 = (void (*)(M438UnkStruct2*)) fn_1_7300; + fn_1_11890(var_r29, arg0->unk_0C.x + var_r31->unk_00.x, arg0->unk_0C.y + var_r31->unk_00.y, arg0->unk_0C.z + var_r31->unk_00.z); + fn_1_12100(var_r29, 4); + fn_1_124CC(var_r29, 1); + var_r31->unk_38 |= 4; + break; + } + var_r31->unk_58->unk_24 = 0; + var_r31->unk_5C++; + break; + case 1: + if (var_r31->unk_7A != 0) { + var_r31->unk_6C.y -= 0.5f; + } + if (--var_r31->unk_78 == 0) { + var_r31->unk_58->unk_24 = 0x11; + if (var_r31->unk_7A != 0) { + var_r31->unk_58->unk_28 = 0.5f; + } else { + var_r31->unk_58->unk_28 = 0.5f; + } + var_r31->unk_58->unk_2C = 0.0f; + var_r31->unk_58->unk_00 = 0; + var_r31->unk_5C++; + } + break; + case 2: + var_r31->unk_00.x += var_r31->unk_6C.x; + var_r31->unk_00.y += var_r31->unk_6C.y; + var_r31->unk_00.z += var_r31->unk_6C.z; + if (var_r31->unk_00.y < 0.0f) { + var_r31->unk_00.y = 0.0f; + } + var_r31->unk_18.x *= 0.95f; + var_r31->unk_18.y *= 0.95f; + var_r31->unk_18.z *= 0.95f; + var_r31->unk_6C.y -= 1.5f; + if ((var_r31->unk_58->unk_24 & 8) != 0) { + if (var_r31->unk_7A != 0) { + var_r31->unk_5C = 3; + } else { + var_r31->unk_5C = 0; + } + } + break; + case 3: + var_r28++; + break; + } + } + if (var_r28 >= arg0->unk_02) { + fn_1_107BC(arg0->unk_00); + } +} + +void fn_1_7300(M438UnkStruct2* arg0) { + Vec sp8; + M438UnkStruct* var_r31; + f32 temp_f29; + f32 temp_f30; + f32 temp_f31; + s32 var_r28; + s32 var_r29; + + var_r31 = arg0->unk_3C; + + switch (arg0->unk_60) { + case 0: + arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z = temp_f31 = 0.01f; + arg0->unk_7C = Hu3DModelCreateFile(0x45000B); + arg0->unk_7E = (s32)(30.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 30; + + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { + var_r31->unk_38 |= 4; + } + arg0->unk_60++; + case 1: + arg0->unk_24.z += 0.008f; + + arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z; + Hu3DModelPosSetV(arg0->unk_7C, &arg0->unk_0C); + Hu3DModelScaleSetV(arg0->unk_7C, &arg0->unk_24); + if (--arg0->unk_7E == 0) { + Hu3DModelKill(arg0->unk_7C); + arg0->unk_7C = 0; + + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { + var_r31->unk_5C = 1; + } + arg0->unk_80 = arg0->unk_24.x; + + + arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z = 1.0f; + arg0->unk_60++; + } + break; + } + var_r28 = 0; + var_r31 = arg0->unk_3C; + + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { + switch (var_r31->unk_5C) { + case 1: + var_r31->unk_38 &= ~4; + var_r31->unk_33 = 1; + var_r31->unk_54 = 0x60; + var_r31->unk_55 = 0x20; + var_r31->unk_56 = 0x10; + var_r31->unk_57 = 0xFF; + temp_f31 = 0.4f + (0.15f * ((1.0f / 65536.0f) * fn_1_7DB4())); + var_r31->unk_18.x = temp_f31; + var_r31->unk_18.y = temp_f31; + var_r31->unk_18.z = temp_f31; + temp_f29 = 360.0f * ((1.0f / 65536.0f) * fn_1_7DB4()); + temp_f30 = 50.0f * arg0->unk_80; + sp8.x = sind(temp_f29); + sp8.z = cosd(temp_f29); + var_r31->unk_00.x = temp_f30 * sp8.x; + var_r31->unk_00.y = temp_f30; + var_r31->unk_00.z = temp_f30 * sp8.z; + sp8.y = 6.0f; + var_r31->unk_6C.x = 100.0f * (0.015f * sp8.x); + var_r31->unk_6C.y = sp8.y + (1.5f * ((1.0f / 65536.0f) * fn_1_7DB4())); + var_r31->unk_6C.z = 100.0f * (0.015f * sp8.z); + var_r31->unk_58->unk_24 = 0x11; + var_r31->unk_58->unk_28 = 0.75f; + var_r31->unk_5C++; + break; + case 2: + var_r31->unk_00.x += var_r31->unk_6C.x; + var_r31->unk_00.y += var_r31->unk_6C.y; + var_r31->unk_00.z += var_r31->unk_6C.z; + var_r31->unk_6C.y -= 0.75f; + if ((var_r31->unk_58->unk_24 & 8) != 0) { + var_r31->unk_5C++; + } + break; + case 3: + var_r28++; + break; + } + } + if (var_r28 >= arg0->unk_02) { + fn_1_107BC(arg0->unk_00); + } + if (lbl_1_bss_DBA == 2) { + if (arg0->unk_7C != 0) { + Hu3DModelKill(arg0->unk_7C); + } + fn_1_107BC(arg0->unk_00); + } +} void fn_1_7858(omObjData *object) { @@ -2555,7 +2437,6 @@ void fn_1_7DD8(s32 arg0, s32 *arg1) float fn_1_7EDC(float arg8, float arg9, float argA) { - float var_f1; float var_f31; if (arg8 > 180.0f) { @@ -2577,14 +2458,13 @@ float fn_1_7EDC(float arg8, float arg9, float argA) else if (var_f31 <= -180.0f) { var_f31 += 360.0f; } - var_f1 = arg9 + (var_f31 * argA); - if (var_f1 > 180.0f) { - return var_f1 - 360.0f; + arg8 = arg9 + (var_f31 * argA); + if (arg8 > 180.0f) { + arg8 -= 360.0f; + } else if (arg8 <= -180.0f) { + arg8 += 360.0f; } - if (var_f1 <= -180.0f) { - var_f1 += 360.0f; - } - return var_f1; + return arg8; } // void fn_1_8044(Mtx arg0, float arg8, float arg9, float argA) From 5d834eb36dcd755972c253b0bbfc88c244189e71 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Tue, 3 Dec 2024 20:59:55 -0500 Subject: [PATCH 189/311] up to 9420 --- include/dolphin/mtx.h | 2 +- src/REL/m438Dll/main.c | 320 ++++++++++++----------------------------- 2 files changed, 91 insertions(+), 231 deletions(-) diff --git a/include/dolphin/mtx.h b/include/dolphin/mtx.h index fd975968..9aba8f15 100644 --- a/include/dolphin/mtx.h +++ b/include/dolphin/mtx.h @@ -31,7 +31,7 @@ typedef struct { } MtxStack, *MtxStackPtr; -#define MTXDegToRad(a) ((a)*0.01745329252f) +#define MTXDegToRad(a) ((a)*0.017453292f) #define MTXRadToDeg(a) ((a)*57.29577951f) #define MTXRowCol(m, r, c) ((m)[(r)][(c)]) diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index 77956add..d3bf4e10 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -12,6 +12,8 @@ #include "REL/m438Dll.h" +#define BOARD_FABS(value) ((value < 0.0f) ? -(value) : (value)) + typedef struct M438MainWork { u8 unk_00; u8 unk_01; @@ -2467,247 +2469,105 @@ float fn_1_7EDC(float arg8, float arg9, float argA) return arg8; } -// void fn_1_8044(Mtx arg0, float arg8, float arg9, float argA) -// { -// Mtx var_r31; -// float var_f29; -// float var_f30; -// float var_f31; +void fn_1_8044(Mtx arg0, f32 arg8, f32 arg9, f32 argA) { + Mtx sp38; + Mtx sp8; + + if (0.0f != argA) { + PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + } else { + PSMTXIdentity(arg0); + } + if (0.0f != arg8) { + PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + PSMTXConcat(sp38, arg0, arg0); + } + if (0.0f != arg9) { + PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + PSMTXConcat(sp8, arg0, arg0); + } +} -// var_r31 = arg0; -// var_f29 = arg8; -// var_f30 = arg9; -// var_f31 = argA; -// if (var_f31 != 0.0f) { -// PSMTXRotRad(var_r31, 0x5A, 0.017453292f * var_f31); -// } -// else { -// PSMTXIdentity(var_r31); -// } -// if (var_f29 != 0.0f) { -// PSMTXRotRad(&sp38[0], 0x58, 0.017453292f * var_f29); -// PSMTXConcat(&sp38[0], var_r31, var_r31); -// } -// if (var_f30 != 0.0f) { -// PSMTXRotRad(&sp8[0], 0x59, 0.017453292f * var_f30); -// PSMTXConcat(&sp8[0], var_r31, var_r31); -// } -// } +void fn_1_8164(Mtx arg0, Vec* arg1) { + f32 temp_f29; + f32 var_f28; -// void fn_1_8164(float *arg0, Vec *arg1) -// { -// float sp8; -// Vec *var_r31; -// float *var_r30; -// float var_f27; -// float var_f28; -// float var_f29; -// double var_f30; -// double var_f31; + arg1->x = atan2d(arg0[1][2], arg0[2][2]); + if (arg1->x < 0.0f) { + arg1->x += 360.0f; + } + arg1->z = atan2d(arg0[0][1], arg0[0][0]); + if (arg1->z < 0.0f) { + arg1->z += 360.0f; + } + temp_f29 = -arg0[0][2]; + var_f28 = sqrtf(BOARD_FABS(1.0 - temp_f29 * temp_f29)); + if ((arg1->x > 90.0f) && (arg1->x < 270.0f) && (arg1->z > 90.0f) && (arg1->z < 270.0f)) { + arg1->x = fmod((180.0f + arg1->x), 360.0); + arg1->z = fmod((180.0f + arg1->z), 360.0); + var_f28 = -var_f28; + } + arg1->y = atan2d(temp_f29, var_f28); + if (arg1->y < 0.0f) { + arg1->y += 360.0f; + } +} -// var_r30 = arg0; -// var_r31 = arg1; -// var_r31->x = atan2d(var_r30->unk_18, var_r30->unk_28); -// if (var_r31->x < 0.0f) { -// var_r31->x += 360.0f; -// } -// var_r31->z = atan2d(var_r30->unk_04, var_r30->unk_00); -// if (var_r31->z < 0.0f) { -// var_r31->z += 360.0f; -// } -// var_f29 = -var_r30->unk_08; -// if ((1.0 - (var_f29 * var_f29)) < 0.0) { -// var_f30 = -(1.0 - (var_f29 * var_f29)); -// } -// else { -// var_f30 = 1.0 - (var_f29 * var_f29); -// } -// if (var_f30 > 0.0f) { -// var_f31 = __frsqrte(var_f30); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// sp8 = var_f30 * var_f31; -// var_f27 = sp8; -// } -// else { -// var_f27 = var_f30; -// } -// var_f28 = var_f27; -// if ((var_r31->x > 90.0f) && (var_r31->x < 270.0f) && (var_r31->z > 90.0f) && (var_r31->z < 270.0f)) { -// var_r31->x = fmod(180.0f + var_r31->x, 360.0); -// var_r31->z = fmod(180.0f + var_r31->z, 360.0); -// var_f28 = -var_f28; -// } -// var_r31->y = atan2d(var_f29, var_f28); -// if (var_r31->y < 0.0f) { -// var_r31->y += 360.0f; -// } -// } +void fn_1_8500(Mtx arg0, Vec* arg1) { + f32 temp_f29; + f32 var_f28; -// void fn_1_8500(void *arg0, void *arg1) -// { -// float sp8; -// float var_f27; -// float var_f28; -// float var_f29; -// double var_f30; -// double var_f31; -// void *var_r30; -// void *var_r31; + arg1->z = atan2d(arg0[0][1], arg0[1][1]); + arg1->y = atan2d(arg0[2][0], arg0[2][2]); + temp_f29 = -arg0[2][1]; + var_f28 = sqrtf(BOARD_FABS(1.0 - temp_f29 * temp_f29)); + arg1->x = atan2d(temp_f29, var_f28); +} -// var_r31 = arg0; -// var_r30 = arg1; -// var_r30->unk_08 = atan2d(var_r31->unk_04, var_r31->unk_14); -// var_r30->unk_04 = atan2d(var_r31->unk_20, var_r31->unk_28); -// var_f29 = -var_r31->unk_24; -// if ((1.0 - (var_f29 * var_f29)) < 0.0) { -// var_f30 = -(1.0 - (var_f29 * var_f29)); -// } -// else { -// var_f30 = 1.0 - (var_f29 * var_f29); -// } -// if (var_f30 > 0.0f) { -// var_f31 = __frsqrte(var_f30); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// sp8 = var_f30 * var_f31; -// var_f28 = sp8; -// } -// else { -// var_f28 = var_f30; -// } -// var_f27 = var_f28; -// var_r30->unk_00 = atan2d(var_f29, var_f27); -// } +f32 fn_1_8750(f32 arg8, f32 arg9, f32 argA, f32 argB) { + f32 temp_f31; + f32 var_f30; -// double fn_1_8750(double arg8, float arg9, float argA, float argB) -// { -// double var_f30; -// double var_f31; + temp_f31 = (1.0 - arg8); + var_f30 = ((temp_f31 * temp_f31) * arg9) + (temp_f31 * arg8 * argA * 2.0) + ((arg8 * arg8) * argB); + return var_f30; +} -// var_f31 = 1.0 - arg8; -// var_f31 = var_f31; -// var_f30 = (argB * (arg8 * arg8)) + ((arg9 * (var_f31 * var_f31)) + (2.0 * (argA * (var_f31 * arg8)))); -// var_f30 = var_f30; -// return var_f30; -// } +void fn_1_87C8(f32* arg0, f32* arg1, f32* arg2, f32* arg3, f32 arg8) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *arg3++ = fn_1_8750(arg8, *arg0++, *arg1++, *arg2++); + } +} -// void fn_1_87C8(float *arg0, float *arg1, float *arg2, float *arg3, double arg8) -// { -// float *var_r3; -// float *var_r4; -// float *var_r5; -// float *var_r6; -// float var_f26; -// float var_f27; -// float var_f28; -// float var_f29; -// double var_f24; -// double var_f25; -// double var_f30; -// double var_f31; -// s32 var_r31; +f32 fn_1_88E4(f32 arg8, f32 arg9, f32 argA, f32 argB) { + f32 var_f31; -// var_r3 = arg0; -// var_r4 = arg1; -// var_r5 = arg2; -// var_r6 = arg3; -// for (var_r31 = 0; var_r31 < 3; var_r31++) { -// var_f27 = *var_r5; -// var_r5 += 4; -// var_f28 = *var_r4; -// var_r4 += 4; -// var_f29 = *var_r3; -// var_r3 += 4; -// var_f26 = var_f29; -// var_f31 = 1.0 - arg8; -// var_f31 = var_f31; -// var_f30 = (var_f27 * (arg8 * arg8)) + ((var_f29 * (var_f31 * var_f31)) + (2.0 * (var_f28 * (var_f31 * arg8)))); -// var_f30 = var_f30; -// var_f25 = var_f30; -// var_f24 = var_f25; -// *var_r6 = var_f24; -// var_r6 += 4; -// } -// } + var_f31 = 2.0 * ((arg8 - 1.0) * arg9 + (1.0 - (2.0 * arg8)) * argA + (arg8 * argB)); + return var_f31; +} -// double fn_1_88E4(float arg8, double arg9, double argA, float argB) -// { -// double var_f31; +void fn_1_895C(f32* arg0, f32* arg1, f32* arg2, f32* arg3, f32 arg8) { + f32 spC[3]; + f32 var_f29; + s32 var_r31; -// var_f31 = 2.0 * ((arg8 * argB) + (((arg8 - 1.0) * arg9) + ((1.0 - (2.0 * arg8)) * argA))); -// var_f31 = var_f31; -// return var_f31; -// } - -// void fn_1_895C(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) -// { -// float sp8; -// float *temp_r6; -// float *var_r3; -// float *var_r4; -// float *var_r5; -// float *var_r6; -// float var_f23; -// float var_f24; -// float var_f25; -// float var_f26; -// float var_f28; -// float var_f29; -// float var_f30; -// double var_f21; -// double var_f22; -// double var_f27; -// double var_f31; -// s32 var_r31; - -// var_r3 = arg0; -// var_r4 = arg1; -// var_r5 = arg2; -// var_r6 = arg3; -// for (var_r31 = 0; var_r31 < 3; var_r31++) { -// var_f24 = *var_r5; -// var_r5 += 4; -// var_f25 = *var_r4; -// var_r4 += 4; -// var_f26 = *var_r3; -// var_r3 += 4; -// var_f23 = var_f26; -// var_f27 = 2.0 * ((arg8 * var_f24) + (((arg8 - 1.0) * var_f26) + ((1.0 - (2.0 * arg8)) * var_f25))); -// var_f27 = var_f27; -// var_f22 = var_f27; -// var_f21 = var_f22; -// (&spC[0])[var_r31] = var_f21; -// } -// var_f30 = (sp14 * sp14) + ((spC[0] * spC[0]) + (sp10 * sp10)); -// if (var_f30 > 0.0f) { -// var_f31 = __frsqrte(var_f30); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// sp8 = var_f30 * var_f31; -// var_f28 = sp8; -// } -// else { -// var_f28 = var_f30; -// } -// var_f29 = var_f28; -// if (var_f29 != 0.0f) { -// var_f29 = 1.0 / var_f29; -// var_f29 = var_f29; -// for (var_r31 = 0; var_r31 < 3; var_r31++) { -// *var_r6 = var_f29 * (&spC[0])[var_r31]; -// var_r6 += 4; -// } -// return; -// } -// *var_r6 = 0.0f; -// temp_r6 = var_r6 + 4; -// *temp_r6 = 0.0f; -// *(temp_r6 + 4) = 1.0f; -// } + for (var_r31 = 0; var_r31 < 3; var_r31++) { + spC[var_r31] = fn_1_88E4(arg8, *arg0++, *arg1++, *arg2++); + } + var_f29 = sqrtf((spC[0] * spC[0]) + (spC[1] * spC[1]) + (spC[2] * spC[2])); + if (var_f29) { + var_f29 = (1.0 / var_f29); + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *arg3++ = var_f29 * spC[var_r31]; + } + return; + } + *arg3++ = 0.0f; + *arg3++ = 0.0f; + *arg3++ = 1.0f; +} void fn_1_8C34(float *arg0, float *arg1, float *arg2, s32 arg3) { From 105e296095ae57cfa614eeb53482563dc965ee9a Mon Sep 17 00:00:00 2001 From: mrshigure Date: Wed, 4 Dec 2024 12:48:40 -0800 Subject: [PATCH 190/311] Matched most of REL m435: missing 3 funcs --- config/GMPE01_00/rels/m435Dll/symbols.txt | 354 +- include/REL/m435Dll.h | 18 +- src/REL/m435Dll/main.c | 4179 +++++++++++++++++++++ src/REL/m435Dll/sequence.c | 10 +- 4 files changed, 4371 insertions(+), 190 deletions(-) create mode 100755 src/REL/m435Dll/main.c diff --git a/config/GMPE01_00/rels/m435Dll/symbols.txt b/config/GMPE01_00/rels/m435Dll/symbols.txt index 42eb3002..9c0524b6 100644 --- a/config/GMPE01_00/rels/m435Dll/symbols.txt +++ b/config/GMPE01_00/rels/m435Dll/symbols.txt @@ -194,7 +194,7 @@ fn_1_14760 = .text:0x00014760; // type:function size:0x254 _prolog = .text:0x000149B4; // type:function size:0x54 scope:global _epilog = .text:0x00014A08; // type:function size:0x4C scope:global fn_1_14A54 = .text:0x00014A54; // type:function size:0x40C -fn_1_14E60 = .text:0x00014E60; // type:function size:0x40C +ObjectSetup = .text:0x00014E60; // type:function size:0x40C fn_1_1526C = .text:0x0001526C; // type:function size:0x28 fn_1_15294 = .text:0x00015294; // type:function size:0x40 fn_1_152D4 = .text:0x000152D4; // type:function size:0xC8 @@ -238,161 +238,161 @@ fn_1_19E50 = .text:0x00019E50; // type:function size:0x4EC fn_1_1A33C = .text:0x0001A33C; // type:function size:0x110 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:4byte -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x48 -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x20 data:4byte -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x30 data:4byte -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x30 data:4byte -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x30 data:4byte -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x8 data:4byte -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x8 data:4byte -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x8 data:4byte -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x8 data:4byte -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x24 data:4byte -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:4byte -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x24 data:4byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x8 data:4byte -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x8 data:4byte -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:4byte -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:4byte -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x8 data:4byte -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x8 data:4byte -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x10 data:4byte -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x8 data:4byte -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x8 data:4byte -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x8 data:4byte -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x8 data:4byte -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x30 data:4byte -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x30 data:4byte -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x30 data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x48 scope:local +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x30 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x30 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x30 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x30 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x30 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x30 scope:local data:float lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 scope:local data:double lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float @@ -411,39 +411,39 @@ lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data: lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 -lbl_1_data_60 = .data:0x00000060; // type:object size:0x10 data:string -lbl_1_data_70 = .data:0x00000070; // type:object size:0x10 data:string -lbl_1_data_80 = .data:0x00000080; // type:object size:0x10 data:string -lbl_1_data_90 = .data:0x00000090; // type:object size:0x10 data:string -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x10 data:string -lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 data:string -lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x10 data:string -lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x10 data:string +lbl_1_data_60 = .data:0x00000060; // type:object size:0x10 scope:local data:string +lbl_1_data_70 = .data:0x00000070; // type:object size:0x10 scope:local data:string +lbl_1_data_80 = .data:0x00000080; // type:object size:0x10 scope:local data:string +lbl_1_data_90 = .data:0x00000090; // type:object size:0x10 scope:local data:string +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x10 scope:local data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 scope:local data:string +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x10 scope:local data:string +lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x10 scope:local data:string lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x20 lbl_1_data_100 = .data:0x00000100; // type:object size:0x40 lbl_1_data_140 = .data:0x00000140; // type:object size:0xA0 lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x4 data:4byte lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x4 data:4byte lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x4 data:4byte -lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x1B data:string -lbl_1_data_207 = .data:0x00000207; // type:object size:0x22 data:string -lbl_1_data_229 = .data:0x00000229; // type:object size:0x1A data:string -lbl_1_data_243 = .data:0x00000243; // type:object size:0x1A data:string -lbl_1_data_25D = .data:0x0000025D; // type:object size:0xF +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x1B scope:local data:string +lbl_1_data_207 = .data:0x00000207; // type:object size:0x22 scope:local data:string +lbl_1_data_229 = .data:0x00000229; // type:object size:0x1A scope:local data:string +lbl_1_data_243 = .data:0x00000243; // type:object size:0x1A scope:local data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0xF scope:local lbl_1_data_26C = .data:0x0000026C; // type:object size:0x4 data:4byte jumptable_1_data_270 = .data:0x00000270; // type:object size:0x54 scope:local lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x4 data:float -lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x13 data:string -lbl_1_data_2DB = .data:0x000002DB; // type:object size:0x11 +lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x13 scope:local data:string +lbl_1_data_2DB = .data:0x000002DB; // type:object size:0xF scope:local data:string jumptable_1_data_2EC = .data:0x000002EC; // type:object size:0x24 scope:local jumptable_1_data_310 = .data:0x00000310; // type:object size:0x2C scope:local -lbl_1_data_33C = .data:0x0000033C; // type:object size:0xE data:string -lbl_1_data_34A = .data:0x0000034A; // type:object size:0x12 data:string -lbl_1_data_35C = .data:0x0000035C; // type:object size:0x14 +lbl_1_data_33C = .data:0x0000033C; // type:object size:0xE scope:local data:string +lbl_1_data_34A = .data:0x0000034A; // type:object size:0x12 scope:local data:string +lbl_1_data_35C = .data:0x0000035C; // type:object size:0x12 scope:local data:string jumptable_1_data_370 = .data:0x00000370; // type:object size:0x30 scope:local lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0xA8 jumptable_1_data_448 = .data:0x00000448; // type:object size:0x1C scope:local -lbl_1_data_464 = .data:0x00000464; // type:object size:0x4 +lbl_1_data_464 = .data:0x00000464; // type:object size:0x3 scope:local data:string lbl_1_data_468 = .data:0x00000468; // type:object size:0xB4 lbl_1_data_51C = .data:0x0000051C; // type:object size:0x18 jumptable_1_data_534 = .data:0x00000534; // type:object size:0x28 scope:local @@ -452,7 +452,7 @@ lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x8 data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:4byte @@ -466,7 +466,7 @@ lbl_1_bss_C1C = .bss:0x00000C1C; // type:object size:0x14 data:4byte lbl_1_bss_C30 = .bss:0x00000C30; // type:object size:0x1B4 data:4byte lbl_1_bss_DE4 = .bss:0x00000DE4; // type:object size:0x24 data:4byte lbl_1_bss_E08 = .bss:0x00000E08; // type:object size:0x80 data:4byte -lbl_1_bss_E88 = .bss:0x00000E88; // type:object size:0x4060 data:4byte +lbl_1_bss_E88 = .bss:0x00000E88; // type:object size:0x1360 data:4byte lbl_1_bss_4EE8 = .bss:0x00004EE8; // type:object size:0x20 data:4byte lbl_1_bss_4F08 = .bss:0x00004F08; // type:object size:0x8 data:4byte lbl_1_bss_4F10 = .bss:0x00004F10; // type:object size:0x38 data:4byte diff --git a/include/REL/m435Dll.h b/include/REL/m435Dll.h index d4a7464c..36ee1baa 100755 --- a/include/REL/m435Dll.h +++ b/include/REL/m435Dll.h @@ -17,12 +17,12 @@ typedef struct { /* 0x0C */ StructData3A0* unk0C; /* 0x10 */ void (*unk10)(void); /* 0x14 */ s32 (*unk14)(void); -} StructBss84; // Size unknown +} StructBss84; // Size 0x18 typedef struct { - /* 0x00 */ void (*unk00)(void); // inferred - /* 0x04 */ void (*unk04)(void); // inferred - /* 0x08 */ char unk08[4]; + /* 0x00 */ void (*unk00)(void); // inferred (unsure) + /* 0x04 */ void (*unk04)(void); + /* 0x08 */ void (*unk08)(void); /* 0x0C */ float unk0C; /* 0x10 */ float unk10; /* 0x14 */ float unk14; @@ -38,7 +38,9 @@ typedef struct { /* 0x3C */ float unk3C; /* 0x40 */ float unk40; /* 0x44 */ float unk44; -} StructBssE08; // Size unknown + /* 0x48 */ s32 unk48[7]; + /* 0x64 */ float unk64[7]; +} StructBssE08; // Size 0x80 typedef struct { /* 0x000 */ omObjData* unk00; @@ -55,7 +57,7 @@ typedef struct { /* 0x474 */ float unk474; /* 0x478 */ float unk478; /* 0x47C */ float unk47C; -} StructFn19894; // Size unknown +} StructFn19894; // Size 0x480 float fn_1_1526C(float arg0, float arg1, float arg2, float arg3); float fn_1_15294(float arg0, float arg1, float arg2); @@ -75,10 +77,10 @@ void fn_1_17804(StructBssE08* arg0, StructBssE08* arg1, float arg2, float arg3, void fn_1_188E0(StructBssE08* arg0, StructBssE08* arg1, float arg2, float arg3, float arg4); void fn_1_19530(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6); void fn_1_195F4(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 arg5, s32 arg6); -void fn_1_19658(omObjData* arg0, s32 arg1, s32 arg2, float arg3); +void fn_1_19658(omObjData* arg0, s32 arg1, float arg2, s32 arg3); void fn_1_19894(StructFn19894* arg0, s32 arg1); void fn_1_198F8(StructFn19894* arg0, s32 arg1); void fn_1_19960(StructFn19894* arg0, s32 arg1); -void fn_1_19968(StructFn19894* arg0); +void fn_1_19968(StructFn19894* arg0, s32 arg1); void fn_1_19974(StructFn19894* arg0, s32 arg1); void fn_1_1A33C(Process* arg0, StructFn19894* arg1, s32 arg2, char* arg3, s32 arg4, s32 arg5); diff --git a/src/REL/m435Dll/main.c b/src/REL/m435Dll/main.c new file mode 100755 index 00000000..1972c585 --- /dev/null +++ b/src/REL/m435Dll/main.c @@ -0,0 +1,4179 @@ +#include "REL/m435Dll.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "ext_math.h" + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ s32 unk28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s32 unk30; + /* 0x34 */ s32 unk34; + /* 0x38 */ s32 unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ float unk40; + /* 0x44 */ float unk44; + /* 0x48 */ float unk48; + /* 0x4C */ float unk4C; + /* 0x50 */ float unk50; + /* 0x54 */ float unk54; + /* 0x58 */ StructFn19894 unk58; +} StructBssE88; // Size 0x4D8 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; +} StructBssDE4; // Size 0x24 + +typedef struct { + /* 0x000 */ omObjData* unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14[3]; + /* 0x020 */ s32 unk20; + /* 0x024 */ s32 unk24; + /* 0x028 */ s32 unk28; + /* 0x02C */ s32 unk2C[3]; + /* 0x038 */ s32 unk38[3]; + /* 0x044 */ s32 unk44[3]; + /* 0x050 */ s32 unk50[3]; + /* 0x05C */ s32 unk5C[3]; + /* 0x068 */ s32 unk68[3]; + /* 0x074 */ float unk74; + /* 0x078 */ float unk78; + /* 0x07C */ float unk7C[3]; + /* 0x088 */ float unk88[3]; + /* 0x094 */ float unk94[3]; + /* 0x0A0 */ float unkA0[3]; + /* 0x0AC */ Vec unkAC[3]; + /* 0x0D0 */ Vec unkD0[3]; + /* 0x0F4 */ Vec unkF4[3]; + /* 0x118 */ Vec unk118[3]; + /* 0x13C */ Vec unk13C[3]; + /* 0x160 */ Vec unk160[3]; + /* 0x184 */ Vec unk184[3]; + /* 0x1A8 */ float unk1A8[3]; +} StructBssC30; // Size 0x1B4 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ char unk08[0xC]; + /* 0x14 */ s32 unk14; + /* 0x18 */ char unk18[0x20]; +} StructBss4F10; // Size 0x38 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; +} StructBss4EE8; // Size 0x20 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; +} StructBssC1C; // Size 0x14 + +typedef struct { + /* 0x000 */ omObjData* unk00; + /* 0x004 */ Vec unk04; + /* 0x010 */ Vec unk10; + /* 0x01C */ s32 unk1C; + /* 0x020 */ s32 unk20; + /* 0x024 */ s32 unk24; + /* 0x028 */ s32 unk28; + /* 0x02C */ s32 unk2C; + /* 0x030 */ s32 unk30; + /* 0x034 */ s32 unk34; + /* 0x038 */ s32 unk38; + /* 0x03C */ StructFn19894 unk3C; +} StructBss2A4; // Size 0x4BC + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ s32 unk04[6]; + /* 0x1C */ char unk1C[0x10]; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s32 unk30; + /* 0x34 */ s32 unk34; + /* 0x38 */ s32 unk38; + /* 0x3C */ s32 unk3C; + /* 0x40 */ s32 unk40; + /* 0x44 */ s32 unk44; + /* 0x48 */ s32 unk48; + /* 0x4C */ float unk4C; + /* 0x50 */ s32 unk50; + /* 0x54 */ s32 unk54; +} StructBss144; // Size 0x58 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ float unk08[6]; + /* 0x20 */ char unk20[8]; + /* 0x28 */ float unk28[6]; + /* 0x40 */ char unk40[8]; + /* 0x48 */ float unk48[6]; + /* 0x60 */ char unk60[8]; + /* 0x68 */ float unk68[6]; + /* 0x80 */ char unk80[8]; + /* 0x88 */ float unk88[6]; + /* 0xA0 */ char unkA0[8]; +} StructBss9C; // Size 0xA8 + +void fn_1_3AF4(s32 arg0); +void fn_1_4104(s32 arg0); +void fn_1_7D50(s32 arg0); +void fn_1_8544(s32 arg0); +s32 fn_1_8E48(s32 arg0); +s32 fn_1_8F34(s32 arg0); + +StructBss4F10 lbl_1_bss_4F10; +s32 lbl_1_bss_4F08[2]; +StructBss4EE8 lbl_1_bss_4EE8; +char lbl_1_bss_21E8_pad[0x2D00]; // unused +StructBssE88 lbl_1_bss_E88[4]; +StructBssE08 lbl_1_bss_E08; +StructBssDE4 lbl_1_bss_DE4; +StructBssC30 lbl_1_bss_C30; +StructBssC1C lbl_1_bss_C1C; +StructBss2A4 lbl_1_bss_2A4[2]; +StructBss144 lbl_1_bss_144[4]; +StructBss9C lbl_1_bss_9C; +StructBss84 lbl_1_bss_84; +StructBss84 lbl_1_bss_6C; +Vec lbl_1_bss_3C[4]; +StructBss84 lbl_1_bss_24; +s32 lbl_1_bss_20; +s32 lbl_1_bss_1C; +s32 lbl_1_bss_18; // unused +s32 lbl_1_bss_14; +s32 lbl_1_bss_10; +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +Process* lbl_1_bss_0; + +s32 lbl_1_data_0[][3] = { + { DATA_MAKE_NUM(DATADIR_M435, 27), DATA_MAKE_NUM(DATADIR_M435, 26), DATA_MAKE_NUM(DATADIR_MGCONST, 0) }, + { DATA_MAKE_NUM(DATADIR_M435, 28), DATA_MAKE_NUM(DATADIR_M435, 26), DATA_MAKE_NUM(DATADIR_MGCONST, 1) }, + { DATA_MAKE_NUM(DATADIR_M435, 30), DATA_MAKE_NUM(DATADIR_M435, 26), DATA_MAKE_NUM(DATADIR_MGCONST, 2) }, + { DATA_MAKE_NUM(DATADIR_M435, 29), DATA_MAKE_NUM(DATADIR_M435, 26), DATA_MAKE_NUM(DATADIR_MGCONST, 3) }, + { DATA_MAKE_NUM(DATADIR_M435, 32), DATA_MAKE_NUM(DATADIR_M435, 26), DATA_MAKE_NUM(DATADIR_MGCONST, 4) }, + { DATA_MAKE_NUM(DATADIR_M435, 31), DATA_MAKE_NUM(DATADIR_M435, 26), DATA_MAKE_NUM(DATADIR_MGCONST, 5) }, + { DATA_MAKE_NUM(DATADIR_M435, 33), DATA_MAKE_NUM(DATADIR_M435, 26), DATA_MAKE_NUM(DATADIR_MGCONST, 6) }, + { DATA_MAKE_NUM(DATADIR_M435, 34), DATA_MAKE_NUM(DATADIR_M435, 26), DATA_MAKE_NUM(DATADIR_MGCONST, 7) } +}; + +char* lbl_1_data_E0[] = { + "c000m1-ske_head", + "c001m1-ske_head", + "c002m1-ske_head", + "c003m1-ske_head", + "c004m1-ske_head", + "c005m1-ske_head", + "c006m1-ske_head", + "c007m1-ske_head" +}; + +s32 lbl_1_data_100[][2] = { + { 0x00000100, 0x00000001 }, + { 0x00000100, 0x00000001 }, + { 0x00000080, 0x00000000 }, + { 0x00000080, 0x00000000 }, + { 0x00000080, 0x00000000 }, + { 0x00000100, 0x00000001 }, + { 0x00000080, 0x00000000 }, + { 0x00000080, 0x00000000 } +}; + +s32 lbl_1_data_140[][5] = { + { 91, 105, 126, 141, -1 }, + { 91, 105, 126, 141, -1 }, + { 124, 137, -1, -1, -1 }, + { 85, 100, 127, -1, -1 }, + { 124, 139, -1, -1, -1 }, + { 85, 97, 127, 139, -1 }, + { 127, 137, -1, -1, -1 }, + { 79, 95, 109, 127, -1 } +}; + +s32 lbl_1_data_1E0 = -1; +s32 lbl_1_data_1E4 = -1; +s32 lbl_1_data_1E8 = -1; + +void fn_1_0(void) { + s32 i; + + while (TRUE) { + HuPrcVSleep(); + if (lbl_1_data_1E0 == -1 || lbl_1_data_1E4 == -1 || lbl_1_data_1E8 == -1 || lbl_1_data_1E4 != Hu3DMotionIDGet(lbl_1_data_1E0)) { + continue; + } + for (i = 0; i < 5; i++) { + if (lbl_1_data_140[lbl_1_data_1E8][i] != -1 && Hu3DMotionTimeGet(lbl_1_data_1E0) >= lbl_1_data_140[lbl_1_data_1E8][i]) { + OSReport("KE-System CHR:%d TIME:%d\n", lbl_1_data_1E8, lbl_1_data_140[lbl_1_data_1E8][i]); + HuAudFXPlay(0x6D8); + lbl_1_data_140[lbl_1_data_1E8][i] = -1; + } + } + } +} + +void fn_1_1A8(void) { + s32 var_r31; + + var_r31 = Hu3DGLightCreate(0.0f, 1000.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0xFF, 0xFF, 0xFF); + Hu3DGLightInfinitytSet(var_r31); +} + +void fn_1_230(s32 arg0, s32 arg1, float arg2) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk48[arg0] = arg1; + if (var_r31->unk64[arg0] < 0.0f) { + var_r31->unk64[arg0] = -arg2; + } + else { + var_r31->unk64[arg0] = arg2; + } +} + +void fn_1_298(s32 arg0, float arg1) { + fn_1_230(arg0, -1, arg1); +} + +float fn_1_304(s32 arg0) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + if (var_r31->unk64[arg0] != 0.0f) { + var_r31->unk64[arg0] *= -0.9f; + if (var_r31->unk48[arg0] == -1) { + if (var_r31->unk64[arg0] >= -0.5f && var_r31->unk64[arg0] <= 0.5f) { + var_r31->unk64[arg0] = 0.0f; + } + } + else { + var_r31->unk48[arg0]--; + if (var_r31->unk48[arg0] <= 0) { + var_r31->unk48[arg0] = 0; + var_r31->unk64[arg0] = 0.0f; + } + } + } + return var_r31->unk64[arg0]; +} + +void fn_1_434(void) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + if (HuPadBtn[0] & 0x200) { + if (HuPadBtn[0] & 0x100) { + var_r31->unk14 -= HuPadStkY[0] / 10.0f; + } + else { + var_r31->unk0C += HuPadStkX[0] / 10.0f; + var_r31->unk10 += HuPadStkY[0] / 10.0f; + } + } + if (HuPadBtn[0] & 0x800) { + var_r31->unk24 -= HuPadStkY[0] / 100.0f; + var_r31->unk28 += HuPadStkX[0] / 100.0f; + if (var_r31->unk24 < 0.0f) { + var_r31->unk24 += 360.0f; + } + if (var_r31->unk24 >= 360.0f) { + var_r31->unk24 -= 360.0f; + } + if (var_r31->unk28 < 0.0f) { + var_r31->unk28 += 360.0f; + } + if (var_r31->unk28 >= 360.0f) { + var_r31->unk28 -= 360.0f; + } + } + if (HuPadBtn[0] & 0x400) { + var_r31->unk3C -= HuPadStkY[0] / 10.0f; + } + print8(16, 100, 1.0f, ">>>>>>>>>> CAMERA TEST <<<<<<<<<<"); + print8(16, 110, 1.0f, "CENTER : %.2f, %.2f, %.2f", var_r31->unk0C, var_r31->unk10, var_r31->unk14); + print8(16, 120, 1.0f, "ROT : %.2f, %.2f, %.2f", var_r31->unk24, var_r31->unk28, var_r31->unk2C); + print8(16, 130, 1.0f, "ZOOM : %.2f", var_r31->unk3C); +} + +void fn_1_818(void) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk0C = 0.0f; + var_r31->unk10 = 225.0f; + var_r31->unk14 = 1740.0f; + var_r31->unk24 = -10.0f; + var_r31->unk28 = 0.0f; + var_r31->unk2C = 0.0f; + var_r31->unk3C = 300.0f; +} + +void fn_1_8A4(void (*arg0)(void)) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk04 = arg0; +} + +void fn_1_8C4(void (*arg0)(void)) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk08 = arg0; +} + +void fn_1_8E4(omObjData* arg0) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + if (var_r31->unk04 != NULL) { + var_r31->unk04(); + } +} + +void fn_1_92C(omObjData* arg0) { + StructBssE08* var_r23; + + var_r23 = &lbl_1_bss_E08; + fn_1_8E4(arg0); + Center.x = var_r23->unk0C + fn_1_304(0); + Center.y = var_r23->unk10 + fn_1_304(1); + Center.z = var_r23->unk14 + fn_1_304(2); + CRot.x = var_r23->unk24 + fn_1_304(3); + CRot.y = var_r23->unk28 + fn_1_304(4); + CRot.z = var_r23->unk2C + fn_1_304(5); + CZoom = var_r23->unk3C + fn_1_304(6); +} + +void fn_1_FDC(void) { + Hu3DCameraCreate(1); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 45.0f, 0.1f, 10000.0f, 1.2f); + fn_1_8A4(fn_1_818); + fn_1_8C4(fn_1_434); + omAddObjEx(lbl_1_bss_0, 0x7FDA, 0, 0, -1, omOutView); + omAddObjEx(lbl_1_bss_0, 0x7FD9, 0, 0, -1, fn_1_92C); +} + +void fn_1_1110(void) { + Vec sp20 = { 0.0f, 2500.0f, 1.0f }; + Vec sp14 = { 0.0f, 0.0f, 0.0f }; + Vec sp8 = { 0.0f, 1.0f, 0.0f }; + + Hu3DShadowCreate(45.0f, 2000.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.8f); + Hu3DShadowPosSet(&sp20, &sp8, &sp14); +} + +void fn_1_11D4(s32 arg0, float arg1, float arg2, s32 arg3) { + WindowData* temp_r29; + float temp_f29; + float temp_f28; + float temp_f25; + float temp_f24; + float temp_f27; + float temp_f26; + float var_f31; + float var_f30; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + s32 i; + + temp_r29 = &winData[arg0]; + temp_f29 = temp_r29->pos_x; + temp_f28 = temp_r29->pos_y; + temp_f25 = temp_r29->w; + temp_f24 = temp_r29->h; + var_f31 = temp_f29 + temp_f25 * arg1; + temp_f27 = 4.0f / temp_f25; + if (var_f31 + 4.0f - (temp_f29 + temp_f25) >= 0.0f) { + var_f31 = temp_f29 + temp_f25 - 4.0f; + } + else { + if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { + var_f31 = temp_f29; + } + else { + var_f31 -= 2.0f; + } + } + var_f30 = temp_f28 + temp_f24 * arg2; + temp_f26 = 4.0f / temp_f24; + if (var_f30 + 4.0f - (temp_f28 + temp_f24) >= 0.0f) { + var_f30 = temp_f28 + temp_f24 - 4.0f; + } + else { + if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { + var_f30 = temp_f28; + } + else { + var_f30 -= 2.0f; + } + } + if (arg3 != 0) { + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + var_f23 = var_f31; + var_f21 = temp_f27; + var_f22 = var_f30; + var_f20 = temp_f26; + } + else { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + var_f23 = temp_f29; + var_f21 = 1.0f; + var_f22 = temp_f28; + var_f20 = 1.0f; + } + HuWinDispOn(arg0); + for (i = 0; i <= 15; i++) { + HuPrcVSleep(); + if (arg3 != 0) { + if (i <= 10) { + var_f23 = fn_1_152D4(var_f31, temp_f29, i, 10.0f); + var_f21 = fn_1_152D4(temp_f27, 1.0f, i, 10.0f); + } + else { + var_f22 = fn_1_152D4(var_f30, temp_f28, i - 10, 5.0f); + var_f20 = fn_1_152D4(temp_f26, 1.0f, i - 10, 5.0f); + } + } + else { + if (i <= 10) { + var_f22 = fn_1_152D4(temp_f28, var_f30, i, 10.0f); + var_f20 = fn_1_152D4(1.0f, temp_f26, i, 10.0f); + } + else { + var_f23 = fn_1_152D4(temp_f29, var_f31, i - 10, 5.0f); + var_f21 = fn_1_152D4(1.0f, temp_f27, i - 10, 5.0f); + } + } + HuWinPosSet(arg0, var_f23, var_f22); + HuWinScaleSet(arg0, var_f21, var_f20); + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + } + else { + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + } + HuPrcVSleep(); +} + +void fn_1_1818(void) { + HuWinInit(1); +} + +void fn_1_183C(s32 arg0, float arg1, float arg2) { + WindowData* temp_r31; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f24; + float var_f31; + float var_f30; + float temp_f23; + float temp_f22; + float temp_f21; + float temp_f20; + s32 i; + + temp_r31 = &winData[arg0]; + temp_f29 = temp_r31->pos_x; + temp_f28 = temp_r31->pos_y; + temp_f27 = temp_r31->w; + temp_f26 = temp_r31->h; + var_f31 = temp_f29 + temp_f27 * arg1; + temp_f25 = 4.0f / temp_f27; + if (var_f31 + 4.0f - (temp_f29 + temp_f27) >= 0.0f) { + var_f31 = temp_f29 + temp_f27 - 4.0f; + } + else { + if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { + var_f31 = temp_f29; + } + else { + var_f31 -= 2.0f; + } + } + var_f30 = temp_f28 + temp_f26 * arg2; + temp_f24 = 4.0f / temp_f26; + if (var_f30 + 4.0f - (temp_f28 + temp_f26) >= 0.0f) { + var_f30 = temp_f28 + temp_f26 - 4.0f; + } + else { + if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { + var_f30 = temp_f28; + } + else { + var_f30 -= 2.0f; + } + } + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f25, temp_f24); + HuPrcVSleep(); + for (i = 0; i < 10; i++) { + temp_f23 = fn_1_152D4(var_f31, temp_f29, i, 10.0f); + temp_f21 = fn_1_152D4(temp_f25, 1.0f, i, 10.0f); + temp_f22 = fn_1_152D4(var_f30, temp_f28, i, 10.0f); + temp_f20 = fn_1_152D4(temp_f24, 1.0f, i, 10.0f); + HuWinPosSet(arg0, temp_f23, temp_f22); + HuWinScaleSet(arg0, temp_f21, temp_f20); + HuPrcVSleep(); + } + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + HuPrcVSleep(); +} + +s32 fn_1_1C94(float arg0, float arg1, float arg2, float arg3, s32 arg4) { + s32 var_r31; + s32 sp18[][6] = { + { 0xFF, 0xFF, 0xCC, 0x00, 0x09, 0x09 }, + { 0xCC, 0xFF, 0xFF, 0x00, 0x09, 0x09 }, + { 0xFF, 0xCC, 0xFF, 0x00, 0x09, 0x09 } + }; + + var_r31 = HuWinCreate(arg0, arg1, arg2, arg3, 1); + HuSprColorSet(winData[var_r31].group, 0, sp18[arg4][0], sp18[arg4][1], sp18[arg4][2]); + winData[var_r31].mess_color = sp18[arg4][3]; + winData[var_r31].mess_shadow_color = sp18[arg4][4]; + winData[var_r31].attr |= 0x80; + HuWinBGTPLvlSet(var_r31, sp18[arg4][5] / 10.0f); + winData[var_r31].active_pad = 0; + fn_1_11D4(var_r31, 0.5f, 0.5f, 1); + return var_r31; +} + +s32 fn_1_1E80(float arg0, float arg1, float arg2, float arg3, s32 arg4) { + return fn_1_1C94(arg0, arg1, arg2, arg3, arg4); +} + +void fn_1_206C(s32 arg0, float arg1, float arg2) { + WindowData* temp_r31; + float temp_f29; + float temp_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f24; + float var_f31; + float var_f30; + float temp_f23; + float temp_f22; + float temp_f21; + float temp_f20; + s32 i; + + temp_r31 = &winData[arg0]; + temp_f29 = temp_r31->pos_x; + temp_f28 = temp_r31->pos_y; + temp_f27 = temp_r31->w; + temp_f26 = temp_r31->h; + var_f31 = temp_f29 + temp_f27 * arg1; + temp_f25 = 4.0f / temp_f27; + if (var_f31 + 4.0f - (temp_f29 + temp_f27) >= 0.0f) { + var_f31 = temp_f29 + temp_f27 - 4.0f; + } + else { + if (temp_f29 - (var_f31 - 2.0f) >= 0.0f) { + var_f31 = temp_f29; + } + else { + var_f31 = var_f31 - 2.0f; + } + } + var_f30 = temp_f28 + temp_f26 * arg2; + temp_f24 = 4.0f / temp_f26; + if (var_f30 + 4.0f - (temp_f28 + temp_f26) >= 0.0f) { + var_f30 = temp_f28 + temp_f26 - 4.0f; + } + else { + if (temp_f28 - (var_f30 - 2.0f) >= 0.0f) { + var_f30 = temp_f28; + } + else { + var_f30 = var_f30 - 2.0f; + } + } + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + HuPrcVSleep(); + for (i = 0; i < 10; i++) { + temp_f23 = fn_1_1539C(temp_f29, var_f31, i, 10.0f); + temp_f21 = fn_1_1539C(1.0f, temp_f25, i, 10.0f); + temp_f22 = fn_1_1539C(temp_f28, var_f30, i, 10.0f); + temp_f20 = fn_1_1539C(1.0f, temp_f24, i, 10.0f); + HuWinPosSet(arg0, temp_f23, temp_f22); + HuWinScaleSet(arg0, temp_f21, temp_f20); + HuPrcVSleep(); + } + HuWinPosSet(arg0, var_f31, var_f30); + HuWinScaleSet(arg0, temp_f25, temp_f24); + HuPrcVSleep(); +} + +void fn_1_24C4(s32 arg0) { + HuWinMesSet(arg0, MAKE_MESSID(29, 22)); + HuPrcVSleep(); + fn_1_11D4(arg0, 0.5f, 0.5f, 0); + HuWinKill(arg0); +} + +void fn_1_252C(s32 arg0) { + fn_1_24C4(arg0); +} + +void fn_1_2594(s32 arg0, s32 arg1) { + s32 i; + s32 var_r30; + s32 temp_r28; + + var_r30 = 0; + temp_r28 = GWMessDelayGet(); + if (arg1 > 0) { + HuPrcSleep(arg1); + return; + } + HuWinComKeyReset(); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_E88[i].unk2C == 0) { + var_r30 = 1; + winData[arg0].active_pad = 0xF; + } + } + if (var_r30 == 0) { + winData[arg0].active_pad = 0xF; + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, temp_r28); + } + HuWinMesWait(arg0); + HuWinComKeyReset(); +} + +void fn_1_267C(s32 arg0) { + s32 var_r31; + s32 temp_r28; + s32 i; + + var_r31 = 0; + temp_r28 = GWMessDelayGet(); + HuWinComKeyReset(); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_E88[i].unk2C == 0) { + var_r31 = 1; + winData[arg0].active_pad = 0xF; + } + } + if (var_r31 == 0) { + winData[arg0].active_pad = 0xF; + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, temp_r28); + } + var_r31 = HuWinChoiceGet(arg0, 1); + if (var_r31 == -1 || var_r31 == 1) { + lbl_1_bss_8 = 0; + } + else { + lbl_1_bss_8 = 1; + } + HuWinComKeyReset(); +} + +void fn_1_2798(s32 arg0, s32 arg1) { + winData[arg0].mess_color = 0; + winData[arg0].mess_shadow_color = 9; + winData[arg0].attr |= 0x80; + HuWinMesSet(arg0, arg1); +} + +void fn_1_281C(float* arg0, s32 arg1) { + float spC[2]; + + HuWinMesMaxSizeGet(1, spC, arg1); + if (spC[0] > arg0[0]) { + arg0[0] = spC[0]; + } + if (spC[1] > arg0[1]) { + arg0[1] = spC[1]; + } +} + +void fn_1_288C(s32 arg0) { + if (lbl_1_bss_10 == 0) { + lbl_1_bss_10 = 1; + lbl_1_bss_C = arg0 * 60; + } +} + +s32 fn_1_28C4(void) { + if (lbl_1_bss_10 == 3) { + return 1; + } else { + return 0; + } +} + +s32 fn_1_28E8(void) { + if (lbl_1_bss_10 == 2) { + lbl_1_bss_10 = 3; + lbl_1_bss_C = 30; + } +} + +s32 lbl_1_data_26C = -1; + +void fn_1_2920(omObjData* arg0) { + switch (lbl_1_bss_10) { + case 1: + if (lbl_1_data_26C == -1) { + lbl_1_data_26C = MGSeqCreate(1, lbl_1_bss_C / 60, -1, -1); + } + lbl_1_bss_10 = 2; + break; + case 2: + lbl_1_bss_C--; + if (lbl_1_data_26C != -1) { + MGSeqParamSet(lbl_1_data_26C, 1, (lbl_1_bss_C + 59) / 60); + } + if (lbl_1_bss_C <= 0) { + lbl_1_bss_C = 30; + lbl_1_bss_10 = 3; + } + break; + case 3: + if (lbl_1_data_26C != -1) { + MGSeqParamSet(lbl_1_data_26C, 2, -1); + lbl_1_data_26C = -1; + } + lbl_1_bss_C = 0; + lbl_1_bss_10 = 0; + break; + } +} + +void fn_1_2AF0(void) { + lbl_1_bss_C = 0; + lbl_1_bss_10 = 0; + omAddObjEx(lbl_1_bss_0, 0x2000, 0, 0, -1, fn_1_2920); +} + +void fn_1_2B54(omObjData* arg0) { + s32 i; + + for (i = 0; i < 3; i++) { + Hu3DData[arg0->model[i + 5]].rot.y += 360.0f / (2500.0f + 2500.0f * i); + } +} + +void fn_1_2BFC(s32 arg0) { + StructBssDE4* var_r31; + + var_r31 = &lbl_1_bss_DE4; + var_r31->unk04 = arg0; +} + +void fn_1_2C1C(omObjData* arg0) { + StructBssDE4* var_r30; + + var_r30 = &lbl_1_bss_DE4; + switch (var_r30->unk04) { + case 2: + fn_1_157BC(arg0, 9, 9, 1, 0); + Hu3DModelAttrReset(arg0->model[9], 1); + var_r30->unk1C = 0; + fn_1_230(1, 10, 4.0f); + HuAudFXPlay(0x6CF); + /* fallthrough */ + case 1: + fn_1_157BC(arg0, 0, 0, 1, 0); + fn_1_157BC(arg0, 3, 3, 1, 0); + fn_1_157BC(arg0, 4, 4, 1, 0); + fn_1_157BC(arg0, 5, 5, 1, 0); + fn_1_157BC(arg0, 6, 6, 1, 0); + fn_1_157BC(arg0, 7, 7, 1, 0); + if (var_r30->unk04 == 1) { + HuAudFXPlay(0x6CE); + } + var_r30->unk04 = 20; + break; + case 3: + var_r30->unk04 = 10; + fn_1_157BC(arg0, 0, 0, 1, 0); + fn_1_157BC(arg0, 1, 1, 1, 0); + fn_1_157BC(arg0, 2, 2, 1, 0); + fn_1_157BC(arg0, 3, 3, 1, 0); + fn_1_157BC(arg0, 4, 4, 1, 0); + fn_1_157BC(arg0, 5, 5, 1, 0); + fn_1_157BC(arg0, 6, 6, 1, 0); + fn_1_157BC(arg0, 7, 7, 1, 0); + fn_1_157BC(arg0, 8, 8, 0, 0); + HuAudFXPlay(0x6D0); + Hu3DModelAttrReset(arg0->model[8], 1); + break; + case 10: + fn_1_230(6, -1, 8.0f); + if (Hu3DMotionTimeGet(arg0->model[3]) >= 30.0f) { + var_r30->unk04 = 20; + fn_1_3AF4(1); + fn_1_230(6, -1, 128.0f); + HuAudFXPlay(0x6DA); + omVibrate(fn_1_8E48(0), 12, 12, 0); + omVibrate(fn_1_8E48(1), 12, 12, 0); + omVibrate(fn_1_8E48(2), 12, 12, 0); + omVibrate(fn_1_8E48(3), 12, 12, 0); + } + break; + case 20: + if (Hu3DMotionEndCheck(arg0->model[3])) { + var_r30->unk04 = 0; + fn_1_157BC(arg0, 3, 10, 1, 1); + fn_1_157BC(arg0, 4, 11, 1, 1); + Hu3DModelAttrSet(arg0->model[8], 1); + Hu3DModelAttrSet(arg0->model[9], 1); + } + break; + } + if (Hu3DMotionTimeGet(arg0->model[9]) >= 25.0f && var_r30->unk1C == 0) { + var_r30->unk1C = 1; + fn_1_230(1, 10, 4.0f); + } else if (Hu3DMotionTimeGet(arg0->model[9]) >= 40.0f && var_r30->unk1C == 1) { + var_r30->unk1C = 2; + fn_1_230(1, 10, 4.0f); + } + if (var_r30->unk04 == 0) { + if (var_r30->unk14++ >= 300) { + var_r30->unk14 = 0; + if (rand8() % 2 != 0) { + fn_1_2BFC(1); + } + } + } +} + +void fn_1_31BC(omObjData* arg0) { + fn_1_2B54(arg0); + fn_1_2C1C(arg0); +} + +void fn_1_3288(StructBssDE4* arg0) { + omObjData* temp_r31; + + temp_r31 = arg0->unk00; + fn_1_157BC(temp_r31, 0, 0, 1, 2); + Hu3DModelPosSet(temp_r31->model[1], 0.0f, 0.0f, -680.0f); + fn_1_157BC(temp_r31, 1, 1, 1, 2); + Hu3DModelPosSet(temp_r31->model[2], 0.0f, 0.0f, -680.0f); + fn_1_157BC(temp_r31, 2, 2, 1, 2); + Hu3DModelPosSet(temp_r31->model[3], 525.0f, 0.0f, -1150.0f); + fn_1_157BC(temp_r31, 3, 10, 1, 1); + Hu3DModelPosSet(temp_r31->model[4], -525.0f, 0.0f, -1150.0f); + fn_1_157BC(temp_r31, 4, 11, 1, 1); + Hu3DModelPosSet(temp_r31->model[5], 50.0f, 150.0f, 50.0f); + fn_1_157BC(temp_r31, 5, 5, 1, 2); + Hu3DModelPosSet(temp_r31->model[6], 0.0f, 150.0f, 0.0f); + fn_1_157BC(temp_r31, 6, 6, 1, 2); + Hu3DModelPosSet(temp_r31->model[7], 0.0f, 150.0f, 0.0f); + fn_1_157BC(temp_r31, 7, 7, 1, 2); + Hu3DModelAttrSet(temp_r31->model[8], 1); + fn_1_157BC(temp_r31, 8, 8, 1, 2); + Hu3DModelAttrSet(temp_r31->model[9], 1); + fn_1_157BC(temp_r31, 9, 9, 1, 2); + temp_r31->work[0] = temp_r31->work[1] = temp_r31->work[2] = temp_r31->work[3] = 0; + arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; + arg0->unk14 = arg0->unk18 = arg0->unk1C = arg0->unk20 = 0; +} + +void fn_1_3558(omObjData* arg0) { + StructBssDE4* var_r30; + + var_r30 = &lbl_1_bss_DE4; + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 39)); + arg0->motion[0] = Hu3DMotionIDGet(arg0->model[0]); + Hu3DModelShadowMapSet(arg0->model[0]); + fn_1_157BC(arg0, 0, 0, 1, 2); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 40)); + arg0->motion[1] = Hu3DMotionIDGet(arg0->model[1]); + Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, -680.0f); + Hu3DModelShadowMapSet(arg0->model[1]); + fn_1_157BC(arg0, 1, 1, 1, 2); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 41)); + arg0->motion[2] = Hu3DMotionIDGet(arg0->model[2]); + Hu3DModelPosSet(arg0->model[2], 0.0f, 0.0f, -680.0f); + Hu3DModelShadowSet(arg0->model[2]); + fn_1_157BC(arg0, 2, 2, 1, 2); + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 42)); + arg0->motion[3] = Hu3DMotionIDGet(arg0->model[3]); + arg0->motion[10] = Hu3DJointMotionFile(arg0->model[3], DATA_MAKE_NUM(DATADIR_M435, 44)); + Hu3DModelPosSet(arg0->model[3], 525.0f, 0.0f, -1150.0f); + Hu3DModelShadowSet(arg0->model[3]); + fn_1_157BC(arg0, 3, 10, 1, 1); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 43)); + arg0->motion[4] = Hu3DMotionIDGet(arg0->model[4]); + arg0->motion[11] = Hu3DJointMotionFile(arg0->model[4], DATA_MAKE_NUM(DATADIR_M435, 45)); + Hu3DModelPosSet(arg0->model[4], -525.0f, 0.0f, -1150.0f); + Hu3DModelShadowSet(arg0->model[4]); + fn_1_157BC(arg0, 4, 11, 1, 1); + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 36)); + arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]); + Hu3DModelPosSet(arg0->model[5], 50.0f, 150.0f, 50.0f); + fn_1_157BC(arg0, 5, 5, 1, 2); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 37)); + arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]); + Hu3DModelPosSet(arg0->model[6], 0.0f, 150.0f, 0.0f); + fn_1_157BC(arg0, 6, 6, 1, 2); + arg0->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 38)); + arg0->motion[7] = Hu3DMotionIDGet(arg0->model[7]); + Hu3DModelPosSet(arg0->model[7], 0.0f, 150.0f, 0.0f); + fn_1_157BC(arg0, 7, 7, 1, 2); + arg0->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 46)); + arg0->motion[8] = Hu3DMotionIDGet(arg0->model[8]); + Hu3DModelAttrSet(arg0->model[8], 1); + Hu3DModelLayerSet(arg0->model[8], 1); + fn_1_157BC(arg0, 8, 8, 1, 2); + arg0->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 47)); + arg0->motion[9] = Hu3DMotionIDGet(arg0->model[9]); + Hu3DModelAttrSet(arg0->model[9], 1); + Hu3DModelLayerSet(arg0->model[9], 1); + fn_1_157BC(arg0, 9, 9, 1, 2); + arg0->work[0] = arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; + var_r30->unk04 = var_r30->unk08 = var_r30->unk0C = var_r30->unk10 = 0; + var_r30->unk14 = var_r30->unk18 = var_r30->unk1C = var_r30->unk20 = 0; + arg0->func = fn_1_31BC; +} + +void fn_1_3AF4(s32 arg0) { + StructBssC30* var_r31; + + var_r31 = &lbl_1_bss_C30; + var_r31->unk04 = arg0; +} + +float lbl_1_data_2C4 = 270.0f; + +void fn_1_3B14(omObjData* arg0) { + Vec sp14; + Vec sp8; + ModelData* temp_r30; + StructBssC30* var_r29; + s32 var_r28; + + temp_r30 = &Hu3DData[arg0->model[1]]; + var_r29 = &lbl_1_bss_C30; + if (var_r29->unk04 == 1) { + var_r29->unk04 = 0; + fn_1_157BC(arg0, 0, 0, 1, 0); + fn_1_157BC(arg0, 1, 2, 1, 0); + Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DModelAttrReset(arg0->model[1], 1); + } else if (var_r29->unk04 >= 2) { + temp_r30->pos.x = 750.0 * cosd(lbl_1_data_2C4); + temp_r30->pos.z = 500.0 + 750.0 * sind(lbl_1_data_2C4); + temp_r30->rot.y += 0.2f; + if (var_r29->unk04 == 2) { + var_r29->unk04 = 3; + lbl_1_bss_4F10.unk00 = HuAudFXPlay(0x6DB); + fn_1_157BC(arg0, 1, 1, 1, 1); + } + lbl_1_data_2C4 -= 0.2f; + if (lbl_1_data_2C4 < 180.0f) { + var_r29->unk04 = 0; + HuAudFXStop(lbl_1_bss_4F10.unk00); + lbl_1_bss_4F10.unk00 = -1; + lbl_1_data_2C4 = 270.0f; + Hu3DModelPosSet(arg0->model[1], -750.0f, 0.0f, 500.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 90.0f, 0.0f); + fn_1_157BC(arg0, 1, 1, 1, 2); + fn_1_7D50(6); + } + } + sp14.x = temp_r30->pos.x; + sp14.y = temp_r30->pos.y; + sp14.z = temp_r30->pos.z; + Hu3D3Dto2D(&sp14, 1, &sp8); + var_r28 = 32.0f + sp8.x * 0.1f; + if (var_r28 <= 32) { + var_r28 = 32; + } else if (var_r28 >= 96) { + var_r28 = 96; + } + if (lbl_1_bss_4F10.unk00 != -1) { + HuAudFXPanning(lbl_1_bss_4F10.unk00, var_r28); + } +} + +void fn_1_3E84(s32 arg0) { + StructBssC30* var_r31; + + var_r31 = &lbl_1_bss_C30; + var_r31->unk08 = arg0; +} + +void fn_1_3EA4(omObjData* arg0) { + StructBssC30* var_r31; + s32 i; + + var_r31 = &lbl_1_bss_C30; + switch (var_r31->unk08) { + case 0: + var_r31->unk10 = 0; + var_r31->unk78 = 7.5f; + var_r31->unk74 = var_r31->unk74; + break; + case 1: + if (lbl_1_bss_4F10.unk14 == 0) { + lbl_1_bss_4F10.unk14 = 1; + lbl_1_bss_4F10.unk04 = HuAudFXPlay(0x6DE); + } + fn_1_4104(1); + var_r31->unk74 -= var_r31->unk78; + if (var_r31->unk74 < 0.0f) { + var_r31->unk74 += 360.0f; + } + break; + case 2: + if (lbl_1_bss_4F10.unk14 == 1) { + lbl_1_bss_4F10.unk14 = 0; + HuAudFXStop(lbl_1_bss_4F10.unk04); + } + for (i = 0; i < 3; i++) { + if (var_r31->unk2C[i] != 7) { + break; + } + } + var_r31->unk74 -= var_r31->unk78; + if (var_r31->unk74 < 0.0f) { + var_r31->unk74 += 360.0f; + } + if (i == 3) { + var_r31->unk08 = 3; + } + break; + case 3: + var_r31->unk74 -= var_r31->unk78; + if (var_r31->unk74 < 0.0f) { + var_r31->unk74 += 360.0f; + } + var_r31->unk78 -= 0.025f; + if (var_r31->unk78 < 0.0f) { + var_r31->unk78 = 0.0f; + } + break; + } + omSetRot(arg0, 0.0f, 0.0f, var_r31->unk74); +} + +void fn_1_4104(s32 arg0) { + StructBssC30* var_r31; + + var_r31 = &lbl_1_bss_C30; + if (var_r31->unk10 == 0) { + var_r31->unk10 = arg0; + } +} + +void fn_1_4130(omObjData* arg0) { + Vec spC; + StructBss4EE8* sp8; + StructBssC30* var_r31; + ModelData* temp_r28; + ModelData* temp_r29; + s32 temp_r26; + s32 i; + + sp8 = &lbl_1_bss_4EE8; + var_r31 = &lbl_1_bss_C30; + temp_r26 = lbl_1_bss_4EE8.unk10 - 1; + switch (var_r31->unk10) { + case 1: + var_r31->unk10 = 2; + if (temp_r26 < 0) { + var_r31->unk10 = 0; + break; + } + for (i = 0; i < 3; i++) { + temp_r28 = &Hu3DData[arg0->model[i + temp_r26 * 3 + 2]]; + var_r31->unk13C[i].x = temp_r28->pos.x; + var_r31->unk13C[i].y = temp_r28->pos.y; + var_r31->unk13C[i].z = temp_r28->pos.z; + var_r31->unk160[i].x = var_r31->unk13C[i].x + rand8() % 50; + var_r31->unk160[i].y = 7.5f; + var_r31->unk160[i].z = var_r31->unk13C[i].z + (rand8() % 150 - 75); + var_r31->unk184[i].x = 0.0f; + var_r31->unk184[i].y = rand8() % 120; + if (rand8() % 2 == 0) { + var_r31->unk184[i].y *= -1.0f; + } + var_r31->unk184[i].z = 5.0f + rand8() % 5; + var_r31->unk14[i] = rand8() % 10 + 15; + } + var_r31->unk20 = 0; + break; + case 2: + for (i = 0; i < 3; i++) { + temp_r29 = &Hu3DData[arg0->model[i + temp_r26 * 3 + 2]]; + spC.x = fn_1_1539C(var_r31->unk13C[i].x, var_r31->unk160[i].x, var_r31->unk20, var_r31->unk14[i]); + spC.y = fn_1_1539C(var_r31->unk13C[i].y, var_r31->unk160[i].y, var_r31->unk20, var_r31->unk14[i]); + spC.z = fn_1_1539C(var_r31->unk13C[i].z, var_r31->unk160[i].z, var_r31->unk20, var_r31->unk14[i]); + Hu3DModelPosSet(arg0->model[i + temp_r26 * 3 + 2], spC.x, spC.y, spC.z); + if (var_r31->unk20 <= var_r31->unk14[i]) { + temp_r29->rot.y = fn_1_15294(temp_r29->rot.y, var_r31->unk184[i].y, 15.0f); + temp_r29->rot.z = fn_1_15294(temp_r29->rot.z, 90.0f, 15.0f); + } else { + temp_r29->rot.z = fn_1_15294(temp_r29->rot.z, 0.0f, 3.0f); + } + } + var_r31->unk20++; + if (var_r31->unk20 >= 60) { + var_r31->unk20 = 0; + var_r31->unk10 = 3; + } + break; + } +} + +s32 fn_1_46D8(float arg0, float arg1) { + s32 sp8[] = { 90, 5, 70, 30, 50, 1, 100, 10 }; + s32 var_r31; + + if (arg0 >= 0.0f && arg0 < 45.0f) { + var_r31 = sp8[0]; + } else if (arg0 >= 45.0f && arg0 < 90.0f) { + var_r31 = sp8[1]; + } else if (arg0 >= 90.0f && arg0 < 135.0f) { + var_r31 = sp8[2]; + } else if (arg0 >= 135.0f && arg0 < 180.0f) { + var_r31 = sp8[3]; + } else if (arg0 >= 180.0f && arg0 < 225.0f) { + var_r31 = sp8[4]; + } else if (arg0 >= 225.0f && arg0 < 270.0f) { + var_r31 = sp8[5]; + } else if (arg0 >= 270.0f && arg0 < 315.0f) { + var_r31 = sp8[6]; + } else if (arg0 >= 315.0f && arg0 < 360.0f) { + var_r31 = sp8[7]; + } + if (arg1 > 75.0f) { + var_r31 = 0; + } + if (arg1 < 25.0f) { + var_r31 = -999; + } + return var_r31; +} + +void fn_1_4904(s32 arg0) { + Vec spC; + StructBssC30* var_r31; + + var_r31 = &lbl_1_bss_C30; + spC.x = -675.0f; + spC.y = var_r31->unkD0[arg0].y - 175.0f; + spC.z = var_r31->unkD0[arg0].z - 500.0f; + var_r31->unk7C[arg0] = var_r31->unk1A8[arg0] + sqrtf(spC.y * spC.y + spC.z * spC.z); + var_r31->unk94[arg0] = var_r31->unk74 - var_r31->unk78 * (var_r31->unk50[arg0] + 2) + atan2d(spC.y, spC.z); + if (var_r31->unk94[arg0] >= 360.0f) { + var_r31->unk94[arg0] -= 360.0f; + } else if (var_r31->unk94[arg0] < 0.0f) { + var_r31->unk94[arg0] += 360.0f; + } + if (var_r31->unk94[arg0] >= 360.0f) { + var_r31->unk94[arg0] -= 360.0f; + } else if (var_r31->unk94[arg0] < 0.0f) { + var_r31->unk94[arg0] += 360.0f; + } + if (var_r31->unk94[arg0] >= 360.0f) { + var_r31->unk94[arg0] -= 360.0f; + } else if (var_r31->unk94[arg0] < 0.0f) { + var_r31->unk94[arg0] += 360.0f; + } + var_r31->unk5C[arg0] = fn_1_46D8(var_r31->unk94[arg0], var_r31->unk7C[arg0]); +} + +void fn_1_4CEC(s32 arg0) { + StructBssC30* var_r31; + + var_r31 = &lbl_1_bss_C30; + if ((var_r31->unk7C[arg0] >= 23.0f && var_r31->unk7C[arg0] <= 27.0f) + || (var_r31->unk7C[arg0] >= 73.0f && var_r31->unk7C[arg0] <= 77.0f)) + { + var_r31->unk1A8[arg0] = 5.0f; + if (rand8() % 2 == 0) { + var_r31->unk1A8[arg0] *= -1.0f; + } + } +} + +void fn_1_4E08(s32 arg0) { + StructBssC30* var_r31; + float temp_f31; + + var_r31 = &lbl_1_bss_C30; + temp_f31 = var_r31->unk94[arg0]; + if ((temp_f31 >= -2.0f && temp_f31 < 2.0f) + || (temp_f31 >= 43.0f && temp_f31 < 47.0f) + || (temp_f31 >= 88.0f && temp_f31 < 92.0f) + || (temp_f31 >= 133.0f && temp_f31 < 137.0f) + || (temp_f31 >= 178.0f && temp_f31 < 182.0f) + || (temp_f31 >= 223.0f && temp_f31 < 227.0f) + || (temp_f31 >= 268.0f && temp_f31 < 272.0f) + || (temp_f31 >= 313.0f && temp_f31 < 317.0f)) + { + var_r31->unk50[arg0]++; + } +} + +s32 fn_1_4FB4(void) { + StructBssC30* var_r29; + s32 var_r28; + s32 i; + + var_r28 = 0; + var_r29 = &lbl_1_bss_C30; + for (i = 0; i < 3; i++) { + var_r28 += var_r29->unk5C[i]; + } + if (var_r28 < 0) { + return 1; + } + if (var_r29->unk24 == var_r28) { + for (i = 0; i < 3; i++) { + var_r29->unk50[i] += 3; + fn_1_4904(i); + } + return 0; + } + if (var_r29->unk24 > var_r28) { + var_r29->unk24 = var_r28; + } + return 1; +} + +s32 fn_1_5438(void) { + Vec spC; + float var_f28; + StructBssC30* var_r30; + s32 var_r29; + s32 i; + + var_r29 = 1; + var_r30 = &lbl_1_bss_C30; + for (i = 0; i < 3; i++) { + spC.x = -675.0f; + spC.y = var_r30->unkD0[i].y - 175.0f; + spC.z = var_r30->unkD0[i].z - 500.0f; + var_f28 = sqrtf(spC.y * spC.y + spC.z * spC.z); + if (var_f28 <= 30.0f) { + var_r29 = 0; + } + } + return var_r29; +} + +void fn_1_5600(s32 arg0) { + StructBssC30* var_r30; + s32 i; + + var_r30 = &lbl_1_bss_C30; + for (i = 0; i < 3; i++) { + var_r30->unk2C[i] = arg0; + } +} + +void fn_1_5644(omObjData* arg0) { + Vec sp2C; + float temp_f27; + float temp_f23; + StructBssC30* var_r31; + s32 temp_r26; + s32 i; + + var_r31 = &lbl_1_bss_C30; + temp_r26 = lbl_1_bss_4EE8.unk14; + for (i = 0; i < 3; i++) { + switch (var_r31->unk2C[i]) { + case 1: + var_r31->unkAC[i].x = var_r31->unkD0[i].x = -675.0f; + var_r31->unkAC[i].y = var_r31->unkD0[i].y = 175.0f; + var_r31->unkAC[i].z = var_r31->unkD0[i].z = 500.0f; + var_r31->unk38[i] = 0; + var_r31->unkF4[i].x = 0.0f; + var_r31->unkF4[i].y = -325.0f; + var_r31->unkF4[i].z = 500.0f; + var_r31->unk118[i].x = var_r31->unk118[i].y = var_r31->unk118[i].z = 0.0f; + var_r31->unk44[i] = 0; + var_r31->unk50[i] = i + 15; + var_r31->unk7C[i] = var_r31->unk88[i] = 0.0f; + var_r31->unk94[i] = var_r31->unkA0[i] = 0.0f; + var_r31->unk5C[i] = var_r31->unk68[i] = 0; + var_r31->unk1A8[i] = 0.0f; + Hu3DModelPosSet(arg0->model[i + temp_r26 * 3 + 2], var_r31->unkF4[i].x, var_r31->unkF4[i].y, var_r31->unkF4[i].z); + Hu3DModelRotSet(arg0->model[i + temp_r26 * 3 + 2], 0.0f, 0.0f, 0.0f); + /* fallthrough */ + case 2: + var_r31->unk2C[i] = 2; + temp_f27 = fn_1_152D4(1.5f, 0.5f, var_r31->unk38[i], 15.0f); + temp_f23 = fn_1_152D4(0.0f, 1.0f, var_r31->unk38[i], 10.0f); + Hu3DModelAttrReset(arg0->model[i + temp_r26 * 3 + 14], 1); + Hu3DModelScaleSet(arg0->model[i + temp_r26 * 3 + 14], temp_f27, temp_f27, temp_f27); + Hu3DModelTPLvlSet(arg0->model[i + temp_r26 * 3 + 14], temp_f23); + Hu3DModelPosSet(arg0->model[i + temp_r26 * 3 + 14], var_r31->unkD0[i].x, var_r31->unkD0[i].y, var_r31->unkD0[i].z); + if (var_r31->unk38[i]++ >= 20) { + var_r31->unk38[i] = 0; + var_r31->unk2C[i] = 3; + } + break; + case 3: + if (var_r31->unk38[i]++ >= 30) { + var_r31->unk38[i] = 0; + temp_f23 = 100.0f - i * 15; + temp_f27 = 2.0f * (rand8() % 180); + var_r31->unkAC[i].x = -675.0f; + var_r31->unkAC[i].y = 175.0 + temp_f23 * sind(temp_f27); + var_r31->unkAC[i].z = 500.0 + temp_f23 * cosd(temp_f27); + } + var_r31->unkD0[i].x = var_r31->unkAC[i].x; + var_r31->unkD0[i].y = fn_1_15294(var_r31->unkD0[i].y, var_r31->unkAC[i].y, 30.0f); + var_r31->unkD0[i].z = fn_1_15294(var_r31->unkD0[i].z, var_r31->unkAC[i].z, 30.0f); + Hu3DModelPosSet(arg0->model[i + temp_r26 * 3 + 14], var_r31->unkD0[i].x, var_r31->unkD0[i].y, var_r31->unkD0[i].z); + break; + case 4: + var_r31->unk2C[i] = 100; + fn_1_4904(i); + fn_1_4CEC(i); + fn_1_4E08(i); + fn_1_4904(i); + var_r31->unk28 = 0; + HuAudFXPlay(0x6DC); + /* fallthrough */ + case 100: + var_r31->unk2C[i] = 5; + if (var_r31->unk28 == 1) { + var_r31->unk2C[i] = 5; + } + if (i == 2) { + while (fn_1_4FB4() == 0) { + } + var_r31->unk28 = 1; + } + Hu3DModelAttrReset(arg0->model[i + temp_r26 * 3 + 2], 1); + break; + case 5: + var_r31->unkF4[i].x = fn_1_1526C(0.0f, -675.0f, var_r31->unk44[i], var_r31->unk50[i]); + var_r31->unkF4[i].y = fn_1_1526C(175.0f, var_r31->unkD0[i].y, var_r31->unk44[i], var_r31->unk50[i]); + var_r31->unkF4[i].z = fn_1_1526C(500.0f, var_r31->unkD0[i].z, var_r31->unk44[i], var_r31->unk50[i]); + var_r31->unk118[i].x -= 360.0f / var_r31->unk50[i]; + if (var_r31->unk118[i].x >= 360.0f) { + var_r31->unk118[i].x -= 360.0f; + } else if (var_r31->unk118[i].x < 0.0f) { + var_r31->unk118[i].x += 360.0f; + } + Hu3DModelPosSet(arg0->model[i + temp_r26 * 3 + 2], var_r31->unkF4[i].x, var_r31->unkF4[i].y, var_r31->unkF4[i].z); + Hu3DModelRotSet(arg0->model[i + temp_r26 * 3 + 2], var_r31->unk118[i].x, 0.0f, 0.0f); + if (var_r31->unk44[i]++ >= var_r31->unk50[i]) { + var_r31->unk2C[i] = 6; + var_r31->unk38[i] = 0; + } + break; + case 6: + var_r31->unk2C[i] = 7; + sp2C.x = -675.0f; + sp2C.y = var_r31->unkF4[i].y - 175.0f; + sp2C.z = var_r31->unkF4[i].z - 500.0f; + var_r31->unk88[i] = var_r31->unk1A8[i] + sqrtf(sp2C.y * sp2C.y + sp2C.z * sp2C.z); + var_r31->unkA0[i] = var_r31->unk74 + atan2d(sp2C.y, sp2C.z); + if (var_r31->unkA0[i] >= 360.0f) { + var_r31->unkA0[i] -= 360.0f; + } else if (var_r31->unkA0[i] < 0.0f) { + var_r31->unkA0[i] += 360.0f; + } + var_r31->unk118[i].y = atan2d(sp2C.y, sp2C.z); + var_r31->unk68[i] = fn_1_46D8(var_r31->unkA0[i], var_r31->unk88[i]); + if (var_r31->unk68[i] >= 0) { + HuAudFXPlay(0x6DD); + } else { + HuAudFXPlay(0x6DF); + } + fn_1_8544(7); + fn_1_3E84(2); + omVibrate(fn_1_8E48(lbl_1_bss_4EE8.unk14), 12, 6, 6); + /* fallthrough */ + case 7: + temp_f27 = fn_1_152D4(0.5f, 1.5f, var_r31->unk38[i], 15.0f); + temp_f23 = fn_1_152D4(1.0f, 0.0f, var_r31->unk38[i], 10.0f); + Hu3DModelScaleSet(arg0->model[i + temp_r26 * 3 + 14], temp_f27, temp_f27, temp_f27); + Hu3DModelTPLvlSet(arg0->model[i + temp_r26 * 3 + 14], temp_f23); + if (var_r31->unk38[i]++ >= 20) { + Hu3DModelAttrSet(arg0->model[i + temp_r26 * 3 + 14], 1); + } + var_r31->unkF4[i].x = -675.0f; + var_r31->unkF4[i].y = 175.0 + var_r31->unk88[i] * sind(var_r31->unk118[i].y); + var_r31->unkF4[i].z = 500.0 + var_r31->unk88[i] * cosd(var_r31->unk118[i].y); + Hu3DModelPosSet(arg0->model[i + temp_r26 * 3 + 2], var_r31->unkF4[i].x, var_r31->unkF4[i].y, var_r31->unkF4[i].z); + Hu3DModelRotSet(arg0->model[i + temp_r26 * 3 + 2], var_r31->unk118[i].x, 0.0f, 0.0f); + var_r31->unk118[i].z = var_r31->unk118[i].y + var_r31->unk74; + if (var_r31->unk118[i].z >= 360.0f) { + var_r31->unk118[i].z -= 360.0f; + } else if (var_r31->unk118[i].z < 0.0f) { + var_r31->unk118[i].z += 360.0f; + } + var_r31->unk118[i].x -= var_r31->unk78; + if (var_r31->unk118[i].x >= 360.0f) { + var_r31->unk118[i].x -= 360.0f; + } else if (var_r31->unk118[i].x < 0.0f) { + var_r31->unk118[i].x += 360.0f; + } + var_r31->unk118[i].y += var_r31->unk78; + if (var_r31->unk118[i].y >= 360.0f) { + var_r31->unk118[i].y -= 360.0f; + } else if (var_r31->unk118[i].y < 0.0f) { + var_r31->unk118[i].y += 360.0f; + } + break; + } + } +} + +void fn_1_725C(omObjData* arg0) { + fn_1_3B14(arg0); + fn_1_3EA4(arg0); + fn_1_5644(arg0); + fn_1_4130(arg0); +} + +void fn_1_72A4(StructBssC30* arg0) { + omObjData* temp_r29; + s32 i; + s32 j; + + temp_r29 = arg0->unk00; + Hu3DModelRotSet(temp_r29->model[0], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(temp_r29->model[0], 1); + Hu3DModelPosSet(temp_r29->model[1], 0.0f, 0.0f, -250.0f); + Hu3DModelRotSet(temp_r29->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(temp_r29->model[1], 1); + for (i = 0; i < 4; i++) { + for (j = 0; j < 3; j++) { + Hu3DModelPosSet(temp_r29->model[i + 2], 0.0f, -325.0f, 500.0f); + Hu3DModelAttrSet(temp_r29->model[j + i * 3 + 2], 1); + Hu3DModelAttrSet(temp_r29->model[j + i * 3 + 14], 1); + } + } + arg0->unk74 = 0.0f; + for (i = 0; i < 3; i++) { + arg0->unk2C[i] = 0; + arg0->unkAC[i].x = arg0->unkD0[i].x = -675.0f; + arg0->unkAC[i].y = arg0->unkD0[i].y = 175.0f; + arg0->unkAC[i].z = arg0->unkD0[i].z = 500.0f; + arg0->unk38[i] = 0; + arg0->unkF4[i].x = 0.0f; + arg0->unkF4[i].y = -325.0f; + arg0->unkF4[i].z = 500.0f; + arg0->unk118[i].x = arg0->unk118[i].y = arg0->unk118[i].z = 0.0f; + arg0->unk44[i] = 0; + arg0->unk50[i] = 0; + arg0->unk7C[i] = arg0->unk88[i] = 0.0f; + arg0->unk94[i] = arg0->unkA0[i] = 0.0f; + arg0->unk5C[i] = arg0->unk68[i] = 0; + } + arg0->unk24 = 9999; + temp_r29->work[0] = temp_r29->work[1] = temp_r29->work[2] = temp_r29->work[3] = 0; + arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; + arg0->unk14[0] = arg0->unk14[1] = arg0->unk14[2] = arg0->unk20 = 0; +} + +void fn_1_7628(omObjData* arg0) { + StructBssC30* var_r30; + s32 i; + s32 j; + + var_r30 = &lbl_1_bss_C30; + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 24)); + arg0->motion[0] = Hu3DMotionIDGet(arg0->model[0]); + Hu3DModelRotSet(arg0->model[0], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[0], 1U); + Hu3DModelLayerSet(arg0->model[0], 1); + Hu3DModelShadowSet(arg0->model[0]); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 25)); + arg0->motion[1] = Hu3DMotionIDGet(arg0->model[1]); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_M435, 35)); + Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, -250.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[1], 1); + Hu3DModelLayerSet(arg0->model[1], 1); + Hu3DModelShadowSet(arg0->model[1]); + Hu3DModelHookSet(arg0->model[1], "m435a02-itemfook_d", arg0->model[0]); + for (i = 0; i < 4; i++) { + for (j = 0; j < 3; j++) { + arg0->model[j + i * 3 + 2] = Hu3DModelCreateFile(lbl_1_data_0[fn_1_8F34(i)][0]); + Hu3DModelAttrSet(arg0->model[j + i * 3 + 2], 1); + Hu3DModelShadowSet(arg0->model[j + i * 3 + 2]); + arg0->model[j + i * 3 + 14] = Hu3DModelCreateFile(lbl_1_data_0[fn_1_8F34(i)][1]); + Hu3DModelRotSet(arg0->model[j + i * 3 + 14], 0.0f, 90.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[j + i * 3 + 14], 1); + } + } + arg0->work[0] = arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; + var_r30->unk04 = var_r30->unk08 = var_r30->unk0C = var_r30->unk10 = 0; + var_r30->unk14[0] = var_r30->unk14[1] = var_r30->unk14[2] = var_r30->unk20 = 0; + arg0->func = fn_1_725C; +} + +void fn_1_799C(s32 arg0) { + StructBssC1C* var_r31; + + var_r31 = &lbl_1_bss_C1C; + var_r31->unk00->work[0] = arg0; +} + +void fn_1_79C0(omObjData* arg0) { + switch (arg0->work[0]) { + case 1: + arg0->work[0] = 0; + fn_1_157BC(arg0, 0, 1, 30, 1); + break; + case 2: + arg0->work[0] = 0; + fn_1_157BC(arg0, 0, 2, 10, 0); + break; + case 3: + arg0->work[0] = 0; + fn_1_157BC(arg0, 0, 3, 10, 0); + break; + } +} + +void fn_1_7A78(StructBssC1C* arg0) { + omObjData* temp_r31; + + temp_r31 = arg0->unk00; + omSetTra(temp_r31, 0.0f, 37.0f, -565.0f); + omSetSca(temp_r31, 1.5f, 1.5f, 1.5f); + fn_1_157BC(temp_r31, 0, 1, 1, 1); + temp_r31->work[0] = temp_r31->work[1] = temp_r31->work[2] = temp_r31->work[3] = 0; + arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; +} + +void fn_1_7B44(omObjData* arg0) { + StructBssC1C* var_r30; + + var_r30 = &lbl_1_bss_C1C; + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 48)); + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 53)); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 49)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 50)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 51)); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 52)); + omSetTra(arg0, 0.0f, 37.0f, -565.0f); + omSetSca(arg0, 1.5f, 1.5f, 1.5f); + Hu3DModelShadowSet(arg0->model[0]); + fn_1_157BC(arg0, 0, 1, 1, 1); + arg0->work[0] = arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; + var_r30->unk04 = var_r30->unk08 = var_r30->unk0C = var_r30->unk10 = 0; + arg0->func = fn_1_79C0; +} + +void fn_1_7D28(s32 arg0, s32 arg1) { + StructBss2A4* temp_r31; + + temp_r31 = &lbl_1_bss_2A4[arg0]; + temp_r31->unk1C = arg1; +} + +void fn_1_7D50(s32 arg0) { + StructBss2A4* temp_r31; + + temp_r31 = &lbl_1_bss_2A4[1]; + temp_r31->unk20 = arg0; +} + +void fn_1_7D74(omObjData* arg0) { + StructBss2A4* temp_r30; + + temp_r30 = &lbl_1_bss_2A4[arg0->work[0]]; + switch (temp_r30->unk1C) { + case 1: + temp_r30->unk1C = 0; + if (arg0->work[0] != 0) { + fn_1_157BC(arg0, 0, 0, 30, 1); + } else { + fn_1_157BC(arg0, 0, 0, 30, 1); + fn_1_157BC(arg0, 1, 5, 30, 1); + } + break; + case 2: + temp_r30->unk1C = 0; + if (arg0->work[0] != 0) { + fn_1_157BC(arg0, 0, 4, 10, 0); + } else { + fn_1_157BC(arg0, 0, 2, 10, 0); + fn_1_157BC(arg0, 1, 5, 10, 2); + } + break; + case 3: + temp_r30->unk1C = 0; + if (arg0->work[0] != 0) { + fn_1_157BC(arg0, 0, 9, 5, 0); + } + break; + } +} + +void fn_1_7ED4(omObjData* arg0) { + StructBss2A4* temp_r31; + Mtx sp38; + Mtx sp8; + + temp_r31 = &lbl_1_bss_2A4[arg0->work[0]]; + switch (temp_r31->unk20) { + case 1: + case 3: + case 6: + temp_r31->unk04.x = arg0->trans.x; + temp_r31->unk04.y = arg0->trans.y; + temp_r31->unk04.z = arg0->trans.z; + Hu3DModelObjMtxGet(lbl_1_bss_C30.unk00->model[1], "435a02-point00", sp38); + temp_r31->unk10.x = sp38[0][3]; + temp_r31->unk10.y = sp38[1][3]; + temp_r31->unk10.z = sp38[2][3]; + if (temp_r31->unk20 == 1) { + temp_r31->unk10.x = temp_r31->unk04.x - 30.0f; + } else if (temp_r31->unk20 == 6) { + temp_r31->unk10.x = (120.0f + sp38[0][3]); + temp_r31->unk10.z = (sp38[2][3] - 50.0f); + } + temp_r31->unk2C = 0; + temp_r31->unk20++; + break; + case 2: + fn_1_15934(arg0, 0, 1, 10, 1); + fn_1_195F4(arg0, 0, &temp_r31->unk04, &temp_r31->unk10, 5, temp_r31->unk2C++, 0xF); + if (temp_r31->unk2C > 15) { + temp_r31->unk20++; + } + break; + case 4: + if (temp_r31->unk2C == 25) { + fn_1_15934(arg0, 0, 0, 5, 1); + } else if (temp_r31->unk2C == 40) { + fn_1_15934(arg0, 0, 5, 30, 1); + } + fn_1_195F4(arg0, 0, &temp_r31->unk04, &temp_r31->unk10, 10, temp_r31->unk2C++, 25); + if (temp_r31->unk2C > 60) { + fn_1_3AF4(2); + temp_r31->unk20++; + } + break; + case 5: + Hu3DModelObjMtxGet(lbl_1_bss_C30.unk00->model[1], "435a02-point00", sp8); + omSetTra(arg0, sp8[0][3], sp8[1][3], sp8[2][3]); + omSetRot(arg0, 0.0f, Hu3DData[lbl_1_bss_C30.unk00->model[1]].rot.y - 90.0f, 0.0f); + break; + case 7: + fn_1_15934(arg0, 0, 1, 10, 1); + fn_1_19530(arg0, 0, &temp_r31->unk04, &temp_r31->unk10, 5, temp_r31->unk2C++, 15); + fn_1_19658(arg0, 0, 90.0f, 5); + if (temp_r31->unk2C > 15) { + temp_r31->unk20++; + } + break; + case 8: + fn_1_15934(arg0, 0, 0, 5, 1); + lbl_1_bss_14 = 1; + temp_r31->unk20 = temp_r31->unk2C = 0; + break; + } +} + +void fn_1_8250(s32 arg0) { + StructBss2A4* temp_r31; + + temp_r31 = &lbl_1_bss_2A4[1]; + temp_r31->unk24 = arg0; +} + +void fn_1_8274(omObjData* arg0) { + StructBss2A4* temp_r31; + Mtx sp8; + + temp_r31 = &lbl_1_bss_2A4[arg0->work[0]]; + switch (temp_r31->unk24) { + case 1: + case 3: + case 5: + fn_1_15934(temp_r31->unk00, 0, 1, 10, 1); + temp_r31->unk04.x = arg0->trans.x; + temp_r31->unk04.y = arg0->trans.y; + temp_r31->unk04.z = arg0->trans.z; + if (temp_r31->unk24 == 1) { + temp_r31->unk10.x = -400.0f; + temp_r31->unk10.y = arg0->trans.y; + temp_r31->unk10.z = -310.0f; + } else if (temp_r31->unk24 == 3) { + temp_r31->unk10.x = 400.0f; + temp_r31->unk10.y = arg0->trans.y; + temp_r31->unk10.z = arg0->trans.z; + } else if (temp_r31->unk24 == 5) { + temp_r31->unk10.x = 400.0f; + temp_r31->unk10.y = 37.0f; + temp_r31->unk10.z = -425.0f; + } + temp_r31->unk2C = 0; + temp_r31->unk24++; + break; + case 2: + fn_1_195F4(arg0, 0, &temp_r31->unk04, &temp_r31->unk10, 10, temp_r31->unk2C++, 90); + if (temp_r31->unk2C > 90) { + temp_r31->unk24++; + } + break; + case 4: + fn_1_195F4(arg0, 0, &temp_r31->unk04, &temp_r31->unk10, 10, temp_r31->unk2C++, 90); + if (temp_r31->unk2C > 90) { + temp_r31->unk24++; + } + break; + case 6: + fn_1_195F4(arg0, 0, &temp_r31->unk04, &temp_r31->unk10, 10, temp_r31->unk2C++, 15); + if (temp_r31->unk2C > 15) { + temp_r31->unk24++; + temp_r31->unk2C = 0; + } + break; + case 7: + fn_1_19658(arg0, 0, -15.0f, 5); + if (temp_r31->unk2C++ > 15) { + temp_r31->unk24++; + } + break; + case 8: + fn_1_15934(temp_r31->unk00, 0, 0, 10, 1); + temp_r31->unk24 = 0; + break; + case 10: + temp_r31->unk24 = 0; + Hu3DModelObjMtxGet(lbl_1_bss_C30.unk00->model[1], "435a02-point00", sp8); + arg0->trans.x = sp8[0][3]; + arg0->trans.y = sp8[1][3]; + arg0->trans.z = sp8[2][3]; + break; + } +} + +void fn_1_8544(s32 arg0) { + StructBss2A4* temp_r31; + + temp_r31 = &lbl_1_bss_2A4[1]; + fn_1_15934(temp_r31->unk00, 0, arg0, 1, 0); +} + +void fn_1_8590(omObjData* arg0) { + StructBss2A4* temp_r29; + + temp_r29 = &lbl_1_bss_2A4[arg0->work[0]]; + if (temp_r29->unk1C != 0) { + fn_1_7D74(arg0); + } + if (temp_r29->unk20 != 0) { + fn_1_7ED4(arg0); + } + fn_1_8274(arg0); +} + +void fn_1_8734(StructBss2A4* arg0) { + omObjData* temp_r30; + + temp_r30 = arg0->unk00; + if (temp_r30->work[0] != 0) { + omSetTra(temp_r30, 400.0f, 37.0f, -425.0f); + omSetRot(temp_r30, 0.0f, -15.0f, 0.0f); + fn_1_157BC(temp_r30, 0, 0, 1, 1); + fn_1_19974(&arg0->unk3C, 0); + fn_1_198F8(&arg0->unk3C, -1); + fn_1_19968(&arg0->unk3C, -1); + } else { + omSetTra(temp_r30, -400.0f, 37.0f, -425.0f); + fn_1_157BC(temp_r30, 0, 0, 1, 1); + fn_1_157BC(temp_r30, 1, 5, 1, 1); + } + temp_r30->work[1] = temp_r30->work[2] = temp_r30->work[3] = 0; + arg0->unk1C = arg0->unk20 = arg0->unk24 = arg0->unk28 = 0; + arg0->unk2C = arg0->unk30 = arg0->unk34 = arg0->unk38 = 0; + lbl_1_bss_14 = 0; +} + +void fn_1_88B0(omObjData* arg0) { + StructBss2A4* temp_r30; + s32 var_r29; + + var_r29 = arg0->work[0]; + temp_r30 = &lbl_1_bss_2A4[var_r29]; + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 56)); + if (arg0->work[0] != 0) { + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 57)); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 58)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 62)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 63)); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 64)); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 65)); + arg0->motion[6] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 66)); + arg0->motion[7] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 67)); + arg0->motion[8] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 68)); + arg0->motion[9] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 69)); + arg0->motion[10] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 70)); + arg0->motion[11] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 71)); + arg0->motion[12] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 72)); + omSetTra(arg0, 400.0f, 37.0f, -425.0f); + omSetRot(arg0, 0.0f, -15.0f, 0.0f); + fn_1_157BC(arg0, 0, 0, 1, 1); + fn_1_1A33C(lbl_1_bss_0, &temp_r30->unk3C, arg0->model[0], "g007m0-skl_at", 0x100, 0); + fn_1_19974(&temp_r30->unk3C, 0); + fn_1_198F8(&temp_r30->unk3C, -1); + fn_1_19968(&temp_r30->unk3C, -1); + } else { + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 59)); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 60)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 61)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 73)); + omSetTra(arg0, -400.0f, 37.0f, -425.0f); + fn_1_157BC(arg0, 0, 0, 1, 1); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 74)); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_M435, 75)); + arg0->motion[6] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_M435, 76)); + Hu3DModelHookSet(arg0->model[0], "g007m0-itemhook_r", arg0->model[1]); + Hu3DModelLayerSet(arg0->model[0], 2); + Hu3DModelLayerSet(arg0->model[1], 2); + fn_1_157BC(arg0, 1, 5, 1, 1); + } + Hu3DModelShadowSet(arg0->model[0]); + arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; + temp_r30->unk1C = temp_r30->unk20 = temp_r30->unk24 = temp_r30->unk28 = 0; + temp_r30->unk2C = temp_r30->unk30 = temp_r30->unk34 = temp_r30->unk38 = 0; + lbl_1_bss_14 = 0; + arg0->func = fn_1_8590; +} + +s32 fn_1_8E48(s32 arg0) { + StructBssE88* temp_r31; + + temp_r31 = &lbl_1_bss_E88[arg0]; + return temp_r31->unk24; +} + +s32 fn_1_8E70(void) { + s32 var_r30; + s32 i; + + var_r30 = 0; + for (i = 0; i < 4; i++) { + if (lbl_1_bss_E88[i].unk2C != 0) { + var_r30++; + } + } + return var_r30; +} + +s32 fn_1_8EC8(s32 arg0) { + if (lbl_1_bss_E88[arg0].unk2C != 0) { + return 1; + } else { + return 0; + } +} + +s32 fn_1_8EF4(s32 arg0) { + if (HuPadBtnDown[lbl_1_bss_E88[arg0].unk38] == 0x100) { + return 1; + } else { + return 0; + } +} + +s32 fn_1_8F34(s32 arg0) { + return lbl_1_bss_E88[arg0].unk34; +} + +void fn_1_8F4C(void) { + StructBssE88* temp_r31; + s32 sp8[4]; + s32 i; + + sp8[0] = GWPlayerCurrGet(); + for (i = 1; i < 4; i++) { + sp8[i] = sp8[i - 1] + 1; + if (sp8[i] >= 4) { + sp8[i] = 0; + } + } + for (i = 0; i < 4; i++) { + temp_r31 = &lbl_1_bss_E88[i]; + temp_r31->unk24 = sp8[i]; + temp_r31->unk28 = GWPlayerCfg[temp_r31->unk24].group; + temp_r31->unk2C = GWPlayerCfg[temp_r31->unk24].iscom; + temp_r31->unk30 = GWPlayerCfg[temp_r31->unk24].diff; + temp_r31->unk34 = GWPlayerCfg[temp_r31->unk24].character; + temp_r31->unk38 = GWPlayerCfg[temp_r31->unk24].pad_idx; + } +} + +void fn_1_909C(omObjData* arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5, s32 arg6) { + StructBssE88* sp18; + float temp_f31; + float temp_f30; + float var_f26; + float var_f27; + + sp18 = &lbl_1_bss_E88[arg0->work[0]]; + temp_f31 = arg1.x - arg0->trans.x; + temp_f30 = arg0->trans.z - arg1.z; + var_f26 = 90.0 + atan2d(temp_f30, temp_f31); + var_f27 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30); + if (var_f27 <= arg4) { + temp_f31 = temp_f30 = 0.0f; + } else { + temp_f31 = 72.0f * (temp_f31 / var_f27); + temp_f30 = 72.0f * (temp_f30 / var_f27); + } + var_f27 = arg3 * (sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30) / 72.0f); + if (var_f27 >= arg3) { + var_f27 = arg3; + } else if (var_f27 <= 1.0f) { + temp_f31 = temp_f30 = var_f27 = 0.0f; + } + if (temp_f31 != 0.0f || temp_f30 != 0.0f || arg2 >= 0.0f) { + if (arg2 >= 0.0f && temp_f31 == 0.0f && temp_f30 == 0.0f) { + var_f26 = arg2; + } + if (var_f26 >= 180.0f) { + if (arg0->rot.y - var_f26 >= 180.0f) { + arg0->rot.y -= 360.0f; + } + if (arg0->rot.y - var_f26 < -180.0f) { + arg0->rot.y += 360.0f; + } + } else { + if (arg0->rot.y - var_f26 > 180.0f) { + arg0->rot.y -= 360.0f; + } + if (arg0->rot.y - var_f26 <= -180.0f) { + arg0->rot.y += 360.0f; + } + } + arg0->rot.y = (var_f26 + arg0->rot.y * (arg5 - 1.0f)) / arg5; + } + arg0->trans.x += var_f27 * sind(arg0->rot.y); + arg0->trans.z += var_f27 * cosd(arg0->rot.y); + if (var_f27 >= 6.75f) { + if (arg6 != 0) { + fn_1_15934(arg0, 0, 5, 10, 1); + } else { + fn_1_15934(arg0, 0, 2, 10, 1); + } + } else { + if (var_f27 > 0.0f) { + fn_1_15934(arg0, 0, 2, 10, 1); + } else { + fn_1_15934(arg0, 0, 0, 10, 1); + } + } +} + +void fn_1_9768(s32 arg0, s32 arg1) { + StructBssE88* temp_r31; + + temp_r31 = &lbl_1_bss_E88[arg0]; + temp_r31->unk04 = arg1; +} + +void fn_1_9790(omObjData* arg0) { + StructBssE88* temp_r31; + + temp_r31 = &lbl_1_bss_E88[arg0->work[0]]; + switch (temp_r31->unk04) { + case 0: + temp_r31->unk04 = 99; + Hu3DModelAttrSet(arg0->model[0], 1); + break; + case 1: + temp_r31->unk04 = 99; + Hu3DModelAttrReset(arg0->model[0], 1); + break; + } +} + +void fn_1_9824(s32 arg0, s32 arg1) { + StructBssE88* temp_r31; + + temp_r31 = &lbl_1_bss_E88[arg0]; + temp_r31->unk08 = arg1; +} + +void fn_1_984C(omObjData* arg0) { + StructBssE88* temp_r30; + HsfMaterial* var_r31; + HsfData* temp_r28; + char** temp_r27; + s32 var_r23; + s32 i, j; + ModelData* temp_r25; + HsfAttribute* temp_r24; + + temp_r30 = &lbl_1_bss_E88[arg0->work[0]]; + if (temp_r30->unk08 != 1) { + return; + } + var_r23 = 1; + temp_r25 = &Hu3DData[arg0->model[0]]; + temp_r28 = temp_r25->hsfData; + var_r31 = temp_r28->material; + if (temp_r30->unk34 == 3) { + for (i = 0; i < temp_r25->hsfData->materialCnt; i++, var_r31++) { + if (i == 1 || i == 2) { + continue; + } + var_r31->color[0] *= temp_r30->unk3C; + if (var_r31->color[0] == 0) { + var_r31->color[0] = 0; + } + var_r31->color[1] *= temp_r30->unk3C; + if (var_r31->color[1] == 0) { + var_r31->color[1] = 0; + } + var_r31->color[2] *= temp_r30->unk3C; + if (var_r31->color[2] == 0) { + var_r31->color[2] = 0; + } + } + } else { + temp_r27 = CharModelTexNameGet(temp_r30->unk34, 2); + for (i = 0; i < temp_r28->materialCnt; i++, var_r31++) { + var_r23 = 1; + for (j = 0; j < var_r31->numAttrs; j++) { + temp_r24 = &temp_r28->attribute[var_r31->attrs[j]]; + if (strcmp(temp_r27[0], temp_r24->bitmap->name) == 0 || strcmp(temp_r27[1], temp_r24->bitmap->name) == 0) { + var_r23 = 0; + } + } + if (var_r23 == 0) { + continue; + } + var_r31->color[0] *= temp_r30->unk3C; + if (var_r31->color[0] == 0) { + var_r31->color[0] = 0; + } + var_r31->color[1] *= temp_r30->unk3C; + if (var_r31->color[1] == 0) { + var_r31->color[1] = 0; + } + var_r31->color[2] *= temp_r30->unk3C; + if (var_r31->color[2] == 0) { + var_r31->color[2] = 0; + } + } + } + temp_r30->unk3C -= 0.01; + if (temp_r30->unk3C < 0.0f) { + temp_r30->unk08 = 99; + temp_r30->unk3C = 0.0f; + } +} + +void fn_1_9BCC(s32 arg0, s32 arg1) { + StructBssE88* temp_r31; + + temp_r31 = &lbl_1_bss_E88[arg0]; + temp_r31->unk0C = arg1; + temp_r31->unk1C = 15 - arg1 * 5; + temp_r31->unk20 = 0; +} + +void fn_1_9C08(omObjData* arg0) { + StructBssE88* temp_r31 = &lbl_1_bss_E88[arg0->work[0]]; + Vec sp14[] = { + { 0.0f, 0.0f, 0.0f }, + { 600.0f, 0.0f, 800.0f }, + { -200.0f, 0.0f, 800.0f }, + { -1000.0f, 0.0f, 400.0f } + }; + + if (temp_r31->unk0C >= 1) { + if (temp_r31->unk1C-- <= 0) { + temp_r31->unk20 = 1; + } + if (temp_r31->unk20 != 0) { + fn_1_909C(arg0, sp14[temp_r31->unk0C], -1.0f, 7.0f + temp_r31->unk0C, 30.0f, 5.0f, 1); + } + } +} + +void fn_1_9D88(omObjData* arg0) { + fn_1_9790(arg0); + fn_1_984C(arg0); + fn_1_9C08(arg0); +} + +void fn_1_9F7C(StructBssE88* arg0) { + omObjData* temp_r30 = arg0->unk00; + Vec sp8[] = { + { 0.0f, 0.0f, 500.0f }, + { 200.0f, 0.0f, 300.0f }, + { 200.0f, 0.0f, 450.0f }, + { 200.0f, 0.0f, 600.0f } + }; + s32 temp_r29; + + temp_r29 = temp_r30->work[0]; + omSetTra(temp_r30, sp8[temp_r29].x, sp8[temp_r29].y, sp8[temp_r29].z); + omSetRot(temp_r30, 0.0f, -90.0f, 0.0f); + Hu3DModelAttrSet(temp_r30->model[0], 1); + fn_1_15934(temp_r30, 0, 0, 0, 1); + fn_1_19974(&arg0->unk58, 0); + fn_1_198F8(&arg0->unk58, -1); + fn_1_19968(&arg0->unk58, -1); + temp_r30->work[1] = temp_r30->work[2] = temp_r30->work[3] = 0; + arg0->unk04 = arg0->unk08 = arg0->unk0C = arg0->unk10 = 0; + arg0->unk14 = arg0->unk18 = arg0->unk1C = arg0->unk20 = 0; + arg0->unk40 = arg0->unk44 = arg0->unk48 = 0.0f; + arg0->unk4C = arg0->unk50 = arg0->unk54 = 0.0f; + arg0->unk3C = 1.0f; +} + +void fn_1_A148(omObjData* arg0) { + s32 temp_r29 = arg0->work[0]; + StructBssE88* temp_r31 = &lbl_1_bss_E88[temp_r29]; + Vec sp8[] = { + { 0.0f, 0.0f, 500.0f }, + { 200.0f, 0.0f, 300.0f }, + { 200.0f, 0.0f, 450.0f }, + { 200.0f, 0.0f, 600.0f } + }; + + arg0->model[0] = CharModelCreate(temp_r31->unk34, 2); + arg0->motion[0] = CharModelMotionCreate(temp_r31->unk34, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + arg0->motion[1] = CharModelMotionCreate(temp_r31->unk34, DATA_MAKE_NUM(DATADIR_MARIOMOT, 2)); + arg0->motion[2] = CharModelMotionCreate(temp_r31->unk34, DATA_MAKE_NUM(DATADIR_MARIOMOT, 3)); + arg0->motion[6] = CharModelMotionCreate(temp_r31->unk34, DATA_MAKE_NUM(DATADIR_MARIOMOT, 28)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, temp_r31->unk34)); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 8 + temp_r31->unk34)); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[0], DATA_MAKE_NUM(DATADIR_M435, 16 + temp_r31->unk34)); + omSetTra(arg0, sp8[temp_r29].x, sp8[temp_r29].y, sp8[temp_r29].z); + omSetRot(arg0, 0.0f, -90.0f, 0.0f); + Hu3DModelShadowSet(arg0->model[0]); + Hu3DModelAttrSet(arg0->model[0], 1); + fn_1_15934(arg0, 0, 0, 0, 1); + fn_1_1A33C(lbl_1_bss_0, &temp_r31->unk58, arg0->model[0], lbl_1_data_E0[temp_r31->unk34], lbl_1_data_100[temp_r31->unk34][0], lbl_1_data_100[temp_r31->unk34][1]); + fn_1_19974(&temp_r31->unk58, 0); + fn_1_198F8(&temp_r31->unk58, -1); + fn_1_19968(&temp_r31->unk58, -1); + arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; + temp_r31->unk04 = temp_r31->unk08 = temp_r31->unk0C = temp_r31->unk10 = 0; + temp_r31->unk14 = temp_r31->unk18 = temp_r31->unk1C = temp_r31->unk20 = 0; + temp_r31->unk40 = temp_r31->unk44 = temp_r31->unk48 = 0.0f; + temp_r31->unk4C = temp_r31->unk50 = temp_r31->unk54 = 0.0f; + temp_r31->unk3C = 1.0f; + CharModelMotionDataClose(temp_r31->unk34); + arg0->func = fn_1_9D88; +} + +void fn_1_A4B8(s32 arg0, s32 arg1) { + StructBss144* var_r31; + + var_r31 = &lbl_1_bss_144[arg0]; + var_r31->unk2C = arg1; +} + +void fn_1_A4E0(omObjData* arg0) { + StructBss144* temp_r31; + s32 i; + + temp_r31 = &lbl_1_bss_144[arg0->work[0]]; + switch (temp_r31->unk2C) { + case 0: + temp_r31->unk4C -= 0.1f; + if (temp_r31->unk4C < 0.0f) { + temp_r31->unk4C = 0.0f; + } + break; + case 1: + temp_r31->unk4C += 0.1f; + if (temp_r31->unk4C > 1.0f) { + temp_r31->unk4C = 1.0f; + } + break; + } + for (i = 0; i < 6; i++) { + if (temp_r31->unk4C > 0.0f) { + espDispOn(temp_r31->unk04[i]); + } else { + espDispOff(temp_r31->unk04[i]); + } + if (i == 5) { + espTPLvlSet(temp_r31->unk04[i], 0.5f * temp_r31->unk4C); + } else { + espTPLvlSet(temp_r31->unk04[i], temp_r31->unk4C); + } + } +} + +void fn_1_A670(s32 arg0, s32 arg1) { + StructBss144* temp_r31; + + temp_r31 = &lbl_1_bss_144[arg0]; + temp_r31->unk54 = temp_r31->unk50; + temp_r31->unk50 = arg1; + if (temp_r31->unk50 < 0) { + temp_r31->unk50 = 0; + } else if (temp_r31->unk50 > 999) { + temp_r31->unk50 = 999; + } + temp_r31->unk3C = 0; +} + +void fn_1_A6D4(omObjData* arg0) { + StructBss144* temp_r31; + s32 temp_r30; + s32 var_r29; + + temp_r31 = &lbl_1_bss_144[arg0->work[0]]; + if (temp_r31->unk3C <= 60) { + var_r29 = fn_1_152D4(temp_r31->unk54, temp_r31->unk50, temp_r31->unk3C++, 60.0f); + } else { + var_r29 = temp_r31->unk54 = temp_r31->unk50; + } + if ((temp_r30 = var_r29 / 100) == 0) { + espDispOff(temp_r31->unk04[0]); + } + espBankSet(temp_r31->unk04[0], temp_r30); + if ((temp_r30 = (var_r29 % 100) / 10) == 0 && var_r29 / 100 == 0) { + espDispOff(temp_r31->unk04[1]); + } + espBankSet(temp_r31->unk04[1], temp_r30); + temp_r30 = var_r29 % 10; + espBankSet(temp_r31->unk04[2], temp_r30); +} + +void fn_1_A8C4(omObjData* arg0) { + fn_1_A4E0(arg0); + fn_1_A6D4(arg0); +} + +void fn_1_ABFC(StructBss144* arg0) { + omObjData* temp_r30; + + temp_r30 = arg0->unk00; + espTPLvlSet(arg0->unk04[5], 0.0f); + espDispOff(arg0->unk04[5]); + espTPLvlSet(arg0->unk04[4], 0.0f); + espDispOff(arg0->unk04[4]); + espTPLvlSet(arg0->unk04[3], 0.0f); + espDispOff(arg0->unk04[3]); + espTPLvlSet(arg0->unk04[2], 0.0f); + espDispOff(arg0->unk04[2]); + espTPLvlSet(arg0->unk04[1], 0.0f); + espDispOff(arg0->unk04[1]); + espTPLvlSet(arg0->unk04[0], 0.0f); + espDispOff(arg0->unk04[0]); + temp_r30->work[1] = temp_r30->work[2] = temp_r30->work[3] = 0; + arg0->unk4C = 0.0f; + arg0->unk50 = arg0->unk54 = 0; + arg0->unk2C = arg0->unk30 = arg0->unk34 = arg0->unk38 = 0; + arg0->unk3C = arg0->unk40 = arg0->unk44 = arg0->unk48 = 0; +} + +void fn_1_AD5C(omObjData* arg0) { + StructBss144* temp_r31; + StructBssE88* var_r26; + s32 temp_r27; + s32 var_r28; + s32 var_r29; + + temp_r27 = arg0->work[0]; + var_r28 = 62; + temp_r31 = &lbl_1_bss_144[temp_r27]; + var_r26 = &lbl_1_bss_E88[temp_r27]; + if (temp_r27 < 2) { + var_r29 = temp_r27 * 118 + 84; + } else { + var_r29 = (temp_r27 - 2) * 118 + 390; + } + temp_r31->unk04[5] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 21), 100, 0); + espPosSet(temp_r31->unk04[5], var_r29, var_r28); + espColorSet(temp_r31->unk04[5], 1, 1, 1); + espTPLvlSet(temp_r31->unk04[5], 0.0f); + espDispOff(temp_r31->unk04[5]); + temp_r31->unk04[4] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 20), 100, 0); + espPosSet(temp_r31->unk04[4], var_r29, var_r28); + espTPLvlSet(temp_r31->unk04[4], 0.0f); + espDispOff(temp_r31->unk04[4]); + temp_r31->unk04[3] = espEntry(lbl_1_data_0[var_r26->unk34][2], 100, 0); + espPosSet(temp_r31->unk04[3], var_r29 - 46, var_r28 - 2); + espTPLvlSet(temp_r31->unk04[3], 0.0f); + espDispOff(temp_r31->unk04[3]); + temp_r31->unk04[0] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 51), 100, 0); + espPosSet(temp_r31->unk04[0], var_r29 - 14, var_r28 + 2); + espTPLvlSet(temp_r31->unk04[2], 0.0f); + espDispOff(temp_r31->unk04[2]); + temp_r31->unk04[1] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 51), 100, 0); + espPosSet(temp_r31->unk04[1], var_r29 + 6, var_r28 + 2); + espTPLvlSet(temp_r31->unk04[1], 0.0f); + espDispOff(temp_r31->unk04[1]); + temp_r31->unk04[2] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 51), 100, 0); + espPosSet(temp_r31->unk04[2], var_r29 + 26, var_r28 + 2); + espTPLvlSet(temp_r31->unk04[0], 0.0f); + espDispOff(temp_r31->unk04[0]); + arg0->work[1] = arg0->work[2] = arg0->work[3] = 0; + temp_r31->unk4C = 0.0f; + temp_r31->unk50 = temp_r31->unk54 = 0; + temp_r31->unk2C = temp_r31->unk30 = temp_r31->unk34 = temp_r31->unk38 = 0; + temp_r31->unk3C = temp_r31->unk40 = temp_r31->unk44 = temp_r31->unk48 = 0; + arg0->func = fn_1_A8C4; +} + +s32 fn_1_B1F4(omObjData* arg0) { + StructBss4EE8* var_r25; + StructBss9C* var_r31; + StructBssC1C* var_r28; + StructBssE88* temp_r26; + Mtx sp8; + s32 i; + + var_r25 = &lbl_1_bss_4EE8; + var_r31 = &lbl_1_bss_9C; + var_r28 = &lbl_1_bss_C1C; + temp_r26 = &lbl_1_bss_E88[var_r25->unk10]; + if (arg0->work[3] == 1) { + arg0->work[3] = 0; + arg0->work[1] = 1; + arg0->work[2] = 0; + var_r31->unk04 = 1; + for (i = 0; i < 6; i++) { + var_r31->unk08[i] = -(50.0f * i); + } + } + switch (arg0->work[1]) { + case 1: + arg0->work[1] = 2; + fn_1_19974(&temp_r26->unk58, 0); + fn_1_157BC(var_r28->unk00, 0, 4, 5, 0); + break; + case 2: + if (Hu3DMotionTimeGet(var_r28->unk00->model[0]) == 90.0f) { + arg0->work[1] = 3; + fn_1_157BC(temp_r26->unk00, 0, 6, 5, 0); + Hu3DMotionTimeSet(var_r28->unk00->model[0], 90.0f); + Hu3DMotionSpeedSet(var_r28->unk00->model[0], 0.0f); + HuAudCharVoicePlay(temp_r26->unk34, 0x123); + HuAudFXPlay(0x6D5); + omVibrate(temp_r26->unk24, 120, 12, 0); + } + break; + case 3: + Hu3DModelObjMtxGet(var_r28->unk00->model[0], "g000m0-itemhook_M", sp8); + fn_1_9824(var_r25->unk10, 1); + for (i = 0; i < 6; i++) { + if (var_r31->unk04 == 1 || (var_r31->unk04 == 0 && var_r31->unk08[i] > 0.0f)) { + var_r31->unk08[i] += 10.0f; + } + if (var_r31->unk08[i] > 0.0f) { + var_r31->unk48[i] += 0.1f; + var_r31->unk28[i] -= 5.0f; + if (var_r31->unk88[i] == 0.0f) { + fn_1_157BC(arg0, i + 1, i + 1, 1, 1); + } + if (var_r31->unk88[i] < 8.0f) { + var_r31->unk68[i] += 0.025f; + } else if (var_r31->unk88[i] < 23.0f) { + var_r31->unk68[i] = 0.7f; + } else if (var_r31->unk88[i] < 31.0f) { + var_r31->unk68[i] -= 0.1f; + if (var_r31->unk68[i] < 0.0f) { + var_r31->unk68[i] = 0.0f; + } + } + var_r31->unk88[i] += 1.0f; + } + Hu3DModelPosSet(arg0->model[i + 1], sp8[0][3], sp8[1][3] + var_r31->unk28[i], sp8[2][3] + var_r31->unk08[i]); + Hu3DModelScaleSet(arg0->model[i + 1], 1.5f * var_r31->unk48[i], 1.5f * var_r31->unk48[i], 1.5f * var_r31->unk48[i]); + Hu3DModelTPLvlSet(arg0->model[i + 1], var_r31->unk68[i]); + if (var_r31->unk88[i] == 31.0f) { + var_r31->unk08[i] = 0.0f; + var_r31->unk28[i] = 0.0f; + var_r31->unk48[i] = 0.0f; + var_r31->unk68[i] = 0.5f; + var_r31->unk88[i] = 0.0f; + } + } + if (arg0->work[2]++ >= 120) { + var_r31->unk04 = 0; + Hu3DMotionSpeedSet(var_r28->unk00->model[0], 1.0f); + } + if (arg0->work[2] >= 10 && arg0->work[2] <= 120) { + fn_1_230(6, -1, 8.0f); + } + break; + } +} + +void fn_1_B828(StructBss9C* arg0) { + omObjData* temp_r29; + s32 i; + + temp_r29 = arg0->unk00; + for (i = 0; i < 6; i++) { + fn_1_157BC(temp_r29, i + 1, i + 1, 5, 1); + arg0->unk08[i] = -(50.0f * i); + arg0->unk28[i] = 0.0f; + arg0->unk48[i] = 0.0f; + arg0->unk68[i] = 0.5f; + arg0->unk88[i] = 0.0f; + } + arg0->unk04 = 1; + temp_r29->work[0] = temp_r29->work[1] = temp_r29->work[2] = temp_r29->work[3] = 0; +} + +void fn_1_B950(omObjData *arg0) { + StructBss9C* var_r29; + s32 i; + + var_r29 = &lbl_1_bss_9C; + for (i = 0; i < 6; i++) { + if (i % 2 == 0) { + arg0->model[i + 1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 54)); + arg0->motion[i + 1] = Hu3DMotionIDGet(arg0->model[i + 1]); + } + else { + arg0->model[i + 1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M435, 55)); + arg0->motion[i + 1] = Hu3DMotionIDGet(arg0->model[i + 1]); + } + fn_1_157BC(arg0, i + 1, i + 1, 5, 1); + Hu3DModelPosSet(arg0->model[i + 1], 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(arg0->model[i + 1], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[i + 1], 0.0f, 0.0f, 0.0f); + Hu3DModelLayerSet(arg0->model[i + 1], 2); + var_r29->unk08[i] = -(50.0f * i); + var_r29->unk28[i] = 0.0f; + var_r29->unk48[i] = 0.0f; + var_r29->unk68[i] = 0.5f; + var_r29->unk88[i] = 0.0f; + } + var_r29->unk04 = 1; + arg0->func = (void*) fn_1_B1F4; // fn_1_B1F4 must return s32 to match +} + +void fn_1_BBE8(void) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk18 = 0.0f; + var_r31->unk1C = 300.0f; + var_r31->unk20 = 1740.0f; + var_r31->unk30 = -10.0f; + var_r31->unk34 = 0.0f; + var_r31->unk38 = 0.0f; + var_r31->unk40 = 300.0f; + fn_1_161B0(var_r31, 200.0f); +} + +void fn_1_BC98(void) { + StructBssE08* var_r31; + StructBssE08 sp8; + + var_r31 = &lbl_1_bss_E08; + sp8.unk0C = 0.0f; + sp8.unk10 = 200.0f; + sp8.unk14 = -50.0f; + sp8.unk24 = 5.0f; + sp8.unk28 = 0.0f; + sp8.unk2C = 0.0f; + sp8.unk3C = 200.0f; + fn_1_188E0(var_r31, &sp8, var_r31->unk44++, 30.0f, 5.0f); +} + +void fn_1_BD70(void) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk18 = 0.0f; + var_r31->unk1C = 200.0f; + var_r31->unk20 = -50.0f; + var_r31->unk30 = 5.0f; + var_r31->unk34 = 0.0f; + var_r31->unk38 = 0.0f; + var_r31->unk40 = 200.0f; + fn_1_161B0(var_r31, 200.0f); +} + +void fn_1_BE20(void) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk18 = 0.0f; + var_r31->unk1C = 300.0f; + var_r31->unk20 = -550.0f; + var_r31->unk30 = -15.0f; + var_r31->unk34 = 0.0f; + var_r31->unk38 = 0.0f; + var_r31->unk40 = 1200.0f; + fn_1_161B0(var_r31, 45.0f); +} + +void fn_1_BED0(void) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk18 = 0.0f; + var_r31->unk1C = 150.0f; + var_r31->unk20 = -550.0f; + var_r31->unk30 = -15.0f; + var_r31->unk34 = 0.0f; + var_r31->unk38 = 0.0f; + var_r31->unk40 = 1200.0f; + fn_1_161B0(var_r31, 30.0f); +} + +void fn_1_BF80(void) { + StructBssC30* var_r29; + StructBss2A4* sp8; + StructBssE08* var_r31; + ModelData* temp_r30; + + var_r29 = &lbl_1_bss_C30; + sp8 = &lbl_1_bss_2A4[1]; + var_r31 = &lbl_1_bss_E08; + temp_r30 = &Hu3DData[var_r29->unk00->model[1]]; + var_r31->unk18 = temp_r30->pos.x; + var_r31->unk1C = temp_r30->pos.y + 175.0f; + var_r31->unk20 = temp_r30->pos.z; + var_r31->unk30 = -5.0f; + var_r31->unk34 = temp_r30->rot.y; + var_r31->unk38 = 0.0f; + var_r31->unk40 = 600.0f; + fn_1_161B0(var_r31, 15.0f); +} + +void fn_1_C064(void) { + StructBssE08* var_r31; + StructBssE08 sp8; + + var_r31 = &lbl_1_bss_E08; + sp8.unk0C = 0.0f; + sp8.unk10 = 175.0f; + sp8.unk14 = -250.0f; + sp8.unk24 = -5.0f; + sp8.unk28 = 0.0f; + sp8.unk2C = 0.0f; + sp8.unk3C = 600.0f; + fn_1_17804(var_r31, &sp8, var_r31->unk44++, 10.0f, 5.0f); +} + +void fn_1_C13C(void) { + StructBssE08* var_r31; + StructBssE08 sp8; + + var_r31 = &lbl_1_bss_E08; + sp8.unk0C = 0.0f; + sp8.unk10 = 145.0f; + sp8.unk14 = 500.0f; + sp8.unk24 = -15.0f; + sp8.unk28 = 90.0f; + sp8.unk2C = 0.0f; + sp8.unk3C = 800.0f; + fn_1_17804(var_r31, &sp8, var_r31->unk44++, 60.0f, 5.0f); +} + +void fn_1_C214(void) { + StructBssE08* var_r31; + StructBssE08 sp8; + + var_r31 = &lbl_1_bss_E08; + sp8.unk0C = -1000.0f; + sp8.unk10 = 150.0f; + sp8.unk14 = 435.0f; + sp8.unk24 = 0.0f; + sp8.unk28 = 90.0f; + sp8.unk2C = 0.0f; + sp8.unk3C = 800.0f; + fn_1_188E0(var_r31, &sp8, var_r31->unk44++, 30.0f, 15.0f); +} + +void fn_1_C2EC(void) { + StructBssE08* var_r31; + StructBssE08 sp8; + + var_r31 = &lbl_1_bss_E08; + sp8.unk0C = -1000.0f; + sp8.unk10 = 200.0f; + sp8.unk14 = 500.0f; + sp8.unk24 = 10.0f; + sp8.unk28 = 105.0f; + sp8.unk2C = 0.0f; + sp8.unk3C = 800.0f; + fn_1_17804(var_r31, &sp8, var_r31->unk44++, 30.0f, 15.0f); +} + +void fn_1_C3C4(void) { + StructBssE08* var_r31; + StructBssE08 sp8; + + var_r31 = &lbl_1_bss_E08; + sp8.unk0C = -1000.0f; + sp8.unk10 = 200.0f; + sp8.unk14 = 500.0f; + sp8.unk24 = 10.0f; + sp8.unk28 = 105.0f; + sp8.unk2C = 0.0f; + sp8.unk3C = 800.0f; + fn_1_188E0(var_r31, &sp8, var_r31->unk44++, 10.0f, 5.0f); +} + +void fn_1_C49C(void) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk18 = 0.0f; + var_r31->unk1C = 150.0f; + var_r31->unk20 = -550.0f; + var_r31->unk30 = -15.0f; + var_r31->unk34 = 0.0f; + var_r31->unk38 = 0.0f; + var_r31->unk40 = 1200.0f; + fn_1_161B0(var_r31, 20.0f); +} + +void fn_1_C54C(void) { + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + var_r31->unk18 = 0.0f; + var_r31->unk1C = 300.0f; + var_r31->unk20 = -550.0f; + var_r31->unk30 = -15.0f; + var_r31->unk34 = 0.0f; + var_r31->unk38 = 0.0f; + var_r31->unk40 = 1200.0f; + fn_1_161B0(var_r31, 20.0f); +} + +void fn_1_C5FC(s32 arg0) { + StructBssE08* var_r20; + + var_r20 = &lbl_1_bss_E08; + fn_1_15E50(var_r20); + switch (arg0) { + case 0: + fn_1_8A4(fn_1_BBE8); + break; + case 1: + fn_1_8A4(fn_1_BC98); + break; + case 2: + fn_1_8A4(fn_1_BD70); + break; + case 3: + fn_1_8A4(fn_1_BE20); + break; + case 4: + fn_1_8A4(fn_1_BED0); + break; + case 5: + fn_1_8A4(fn_1_BF80); + break; + case 6: + fn_1_8A4(fn_1_C064); + break; + case 7: + fn_1_8A4(fn_1_C13C); + break; + case 8: + fn_1_8A4(fn_1_C214); + break; + case 10: + fn_1_8A4(fn_1_C49C); + break; + case 11: + fn_1_8A4(fn_1_C54C); + break; + } +} + +void fn_1_C764(void) { + float sp1C[] = { 0.0f, 0.0f }; + s32 sp8; + + lbl_1_bss_4 = 0; + fn_1_281C(sp1C, MAKE_MESSID(29, 0)); + fn_1_281C(sp1C, MAKE_MESSID(29, 1)); + sp8 = fn_1_1E80((580.0f - sp1C[0]) / 2, 80.0f, sp1C[0], sp1C[1], 2); + HuAudFXPlay(0x6D1); + fn_1_799C(2); + fn_1_2798(sp8, MAKE_MESSID(29, 0)); + fn_1_2594(sp8, 0); + fn_1_799C(2); + fn_1_2798(sp8, MAKE_MESSID(29, 1)); + fn_1_2594(sp8, 0); + fn_1_799C(1); + fn_1_24C4(sp8); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_CCBC(void) { + float sp1C[] = { 0.0f, 0.0f }; + s32 sp8; + + lbl_1_bss_4 = 0; + fn_1_281C(sp1C, MAKE_MESSID(29, 2)); + sp8 = fn_1_1E80((580.0f - sp1C[0]) / 2, 100.0f, sp1C[0], sp1C[1], 2); + HuAudFXPlay(0x6D2); + fn_1_799C(3); + fn_1_2798(sp8, MAKE_MESSID(29, 2)); + fn_1_2594(sp8, 60); + fn_1_2BFC(3); + fn_1_2594(sp8, 60); + fn_1_799C(1); + fn_1_24C4(sp8); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_D05C(void) { + float sp1C[] = { 0.0f, 0.0f }; + s32 sp8; + + lbl_1_bss_4 = 0; + fn_1_281C(sp1C, MAKE_MESSID(29, 64)); + sp8 = fn_1_1E80(550.0f - sp1C[0], 340.0f, sp1C[0], sp1C[1], 1); + fn_1_7D28(1, 2); + HuAudFXPlayVolPan(0x65, 0x7F, 0x60); + fn_1_2798(sp8, MAKE_MESSID(29, 64)); + fn_1_267C(sp8); + fn_1_7D28(1, 1); + fn_1_24C4(sp8); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_D498(s32 arg0) { + float sp1C[] = { 0.0f, 0.0f }; + s32 sp10[] = { + MAKE_MESSID(29, 6), + MAKE_MESSID(29, 39), + MAKE_MESSID(29, 41), + MAKE_MESSID(29, 43), + MAKE_MESSID(29, 45), + MAKE_MESSID(29, 47), + MAKE_MESSID(29, 49), + MAKE_MESSID(29, 51), + -1 + }; + s32 sp8; + + if (sp10[arg0] == -1) { + return; + } + fn_1_7D28(0, 2); + HuPrcSleep(15); + fn_1_281C(sp1C, sp10[arg0]); + sp8 = fn_1_1E80(20.0f, 360.0f, sp1C[0], sp1C[1], 0); + HuAudFXPlayVolPan(0x3E, 0x7F, 0x20); + fn_1_2798(sp8, sp10[arg0]); + fn_1_2594(sp8, 0); + fn_1_7D28(0, 1); + fn_1_24C4(sp8); +} + +void fn_1_D8BC(void) { + float sp64[] = { 0.0f, 0.0f }; + s32 sp10[] = { + MAKE_MESSID(29, 5), + MAKE_MESSID(29, 38), + MAKE_MESSID(29, 40), + MAKE_MESSID(29, 42), + MAKE_MESSID(29, 44), + MAKE_MESSID(29, 46), + MAKE_MESSID(29, 48), + MAKE_MESSID(29, 50), + MAKE_MESSID(29, 52) + }; + s32 var_r30; + s32 i; + + lbl_1_bss_4 = 0; + for (i = 0; i < 9; i++) { + fn_1_281C(sp64, sp10[i]); + } + var_r30 = fn_1_1E80(550.0f - sp64[0], 340.0f, sp64[0], sp64[1], 1); + HuAudFXPlayVolPan(0x65, 0x7F, 0x60); + for (i = 0; i < 9; i++) { + fn_1_7D28(1, 2); + fn_1_2798(var_r30, sp10[i]); + fn_1_2594(var_r30, 0); + fn_1_D498(i); + } + fn_1_7D28(1, 1); + fn_1_24C4(var_r30); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_E190(void) { + float sp1C[] = { 0.0f, 0.0f }; + s32 sp8; + + lbl_1_bss_4 = 0; + fn_1_281C(sp1C, MAKE_MESSID(29, 53)); + sp8 = fn_1_1E80((580.0f - sp1C[0]) / 2, 80.0f, sp1C[0], sp1C[1], 2); + omVibrate(fn_1_8E48(0), 12, 4, 2); + omVibrate(fn_1_8E48(1), 12, 4, 2); + omVibrate(fn_1_8E48(2), 12, 4, 2); + omVibrate(fn_1_8E48(3), 12, 4, 2); + HuAudFXPlay(0x6D2); + fn_1_799C(2); + fn_1_2798(sp8, MAKE_MESSID(29, 53)); + fn_1_2594(sp8, 0); + fn_1_799C(1); + fn_1_24C4(sp8); + lbl_1_bss_4++; + HuPrcEnd(); +} + +void fn_1_E670(void) { + float sp1C[] = { 0.0f, 0.0f }; + StructBss2A4* var_r27; + s32 sp8; + + lbl_1_bss_4 = 0; + fn_1_281C(sp1C, MAKE_MESSID(29, 54)); + sp8 = fn_1_1E80(580.0f - sp1C[0] - 40.0f, 260.0f, sp1C[0], sp1C[1], 1); + var_r27 = &lbl_1_bss_2A4[1]; + fn_1_157BC(var_r27->unk00, 0, 12, 1, 0); + HuAudFXPlayVolPan(0x3E, 0x7F, 0x20); + fn_1_2798(sp8, MAKE_MESSID(29, 54)); + fn_1_2594(sp8, 15); + fn_1_7D50(1); + fn_1_2594(sp8, 15); + fn_1_24C4(sp8); + fn_1_C5FC(5); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_EA54(void) { + float sp1C[] = { 0.0f, 0.0f }; + StructBss2A4* var_r27; + s32 sp8; + + fn_1_281C(sp1C, MAKE_MESSID(29, 55)); + sp8 = fn_1_1E80(40.0f, 260.0f, sp1C[0], sp1C[1], 0); + var_r27 = &lbl_1_bss_2A4[0]; + fn_1_157BC(var_r27->unk00, 0, 3, 1, 0); + HuAudFXPlayVolPan(0x65, 0x7F, 0x60); + fn_1_2798(sp8, MAKE_MESSID(29, 55)); + fn_1_2594(sp8, 15); + fn_1_7D28(0, 1); + fn_1_2594(sp8, 15); + fn_1_24C4(sp8); + HuPrcEnd(); +} + +void fn_1_ED94(void) { + float sp1C[] = { 0.0f, 0.0f }; + s32 sp8; + + lbl_1_bss_4 = 0; + fn_1_281C(sp1C, MAKE_MESSID(29, 56)); + fn_1_C5FC(6); + sp8 = fn_1_1E80((580.0f - sp1C[0]) / 2, 320.0f, sp1C[0], sp1C[1], 2); + HuAudFXPlay(0x6D2); + fn_1_799C(2); + fn_1_2798(sp8, MAKE_MESSID(29, 56)); + fn_1_2594(sp8, 0); + fn_1_799C(1); + fn_1_24C4(sp8); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_F1DC(void) { +} + +s32 fn_1_F1E0(void) { + if (fn_1_15670(&lbl_1_bss_84, 0) == 80) { + fn_1_C5FC(1); + lbl_1_bss_4F08[0] = HuAudSeqPlay(6); + } + if (fn_1_15670(&lbl_1_bss_84, 0) == 115) { + fn_1_C5FC(2); + } + if (fn_1_15670(&lbl_1_bss_84, 0) == 180) { + fn_1_C5FC(3); + } + if (fn_1_15670(&lbl_1_bss_84, 0) == 0) { + fn_1_2BFC(2); + } + if (fn_1_15670(&lbl_1_bss_84, 0) == 150) { + fn_1_2BFC(1); + } + if (fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F36C(void) { + HuPrcChildCreate(fn_1_C764, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_F3A8(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F404(void) { + s32 i; + + HuPrcChildCreate(fn_1_CCBC, 100, 0x2000, 0, HuPrcCurrentGet()); + for (i = 0; i < 4; i++) { + fn_1_9768(i, 1); + } +} + +s32 fn_1_F47C(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F4D8(void) { + StructBssC1C* sp8; + + sp8 = &lbl_1_bss_C1C; + fn_1_C5FC(10); +} + +s32 fn_1_F534(void) { + if (fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F57C(void) { + HuPrcChildCreate(fn_1_D05C, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_F5B8(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_84, 1) != 0) { + if (lbl_1_bss_8 != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + fn_1_1561C(&lbl_1_bss_84, 6); + } + return 0; +} + +void fn_1_F638(void) { + StructBssC1C* var_r31; + + var_r31 = &lbl_1_bss_C1C; + fn_1_157BC(var_r31->unk00, 0, 0, 60, 1); + HuPrcChildCreate(fn_1_D8BC, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_F69C(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F6F8(void) { + StructBssC1C* var_r31; + + var_r31 = &lbl_1_bss_C1C; + fn_1_C5FC(11); + fn_1_157BC(var_r31->unk00, 0, 1, 60, 1); +} + +s32 fn_1_F768(void) { + if (fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F7B0(void) { + StructBssC1C* var_r30; + StructBss2A4* var_r31; + + lbl_1_bss_4 = 0; + HuPrcChildCreate(fn_1_E190, 100, 0x2000, 0, HuPrcCurrentGet()); + var_r31 = &lbl_1_bss_2A4[1]; + var_r30 = &lbl_1_bss_C1C; + fn_1_19974(&var_r31->unk3C, 1); + fn_1_198F8(&var_r31->unk3C, -1); + fn_1_19968(&var_r31->unk3C, -1); + fn_1_19960(&var_r31->unk3C, var_r30->unk00->model[0]); +} + +s32 fn_1_F858(void) { + if (lbl_1_bss_4 != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F89C(void) { + HuPrcChildCreate(fn_1_E670, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_EA54, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_F8F8(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F954(void) { +} + +s32 fn_1_F958(void) { + if (fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_F9A0(void) { + lbl_1_bss_4 = 0; + HuPrcChildCreate(fn_1_ED94, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_F9EC(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_84, 1) != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_FA48(void) { + s32 i; + StructBssC30* var_r28; + StructBssC1C* var_r27; + StructBssE88* temp_r30; + StructBss2A4* var_r29; + + var_r28 = &lbl_1_bss_C30; + var_r27 = &lbl_1_bss_C1C; + fn_1_157BC(var_r27->unk00, 0, 0, 60, 1); + fn_1_C5FC(7); + for (i = 0; i < 4; i++) { + temp_r30 = &lbl_1_bss_E88[i]; + fn_1_19974(&temp_r30->unk58, 1); + fn_1_198F8(&temp_r30->unk58, -1); + fn_1_19968(&temp_r30->unk58, -1); + fn_1_19960(&temp_r30->unk58, var_r28->unk00->model[1]); + } + var_r29 = &lbl_1_bss_2A4[1]; + fn_1_19974(&var_r29->unk3C, 0); + fn_1_198F8(&var_r29->unk3C, -1); + fn_1_19968(&var_r29->unk3C, -1); +} + +s32 fn_1_FB50(void) { + if (fn_1_15670(&lbl_1_bss_84, 1) != 0 && lbl_1_bss_14 != 0) { + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +void fn_1_FBAC(void) { + StructBss4EE8* var_r31; + StructBss2A4* var_r30; + StructBssE88* temp_r29; + + var_r31 = &lbl_1_bss_4EE8; + var_r30 = &lbl_1_bss_2A4[1]; + temp_r29 = &lbl_1_bss_E88[var_r31->unk10]; + var_r31->unk0C = 0; + fn_1_157BC(var_r30->unk00, 0, 6, 10, 0); + fn_1_157BC(temp_r29->unk00, 0, 4, 60, 1); + var_r31->unk14 = var_r31->unk10; + HuAudSeqFadeOut(lbl_1_bss_4F08[0], 1000); +} + +s32 fn_1_FC5C(void) { + StructBss4EE8* var_r29; + StructBss2A4* var_r30; + StructBssC30* var_r26; + StructBss2A4* var_r28; + s32 i; + + var_r29 = &lbl_1_bss_4EE8; + var_r30 = &lbl_1_bss_2A4[1]; + if (fn_1_156AC(var_r30->unk00, 0, 6, 50, 0) != 0) { + fn_1_19658(var_r30->unk00, 0, 0.0f, 10); + } else if (fn_1_156AC(var_r30->unk00, 0, 6, 50, 1) != 0) { + fn_1_19658(var_r30->unk00, 0, 90.0f, 10); + if (var_r29->unk0C == 0) { + var_r29->unk0C = 1; + for (i = 0; i < 4; i++) { + fn_1_A4B8(i, 1); + } + fn_1_3E84(1); + fn_1_5600(1); + } + } + if (fn_1_15670(&lbl_1_bss_84, 1) != 0) { + var_r26 = &lbl_1_bss_C30; + var_r28 = &lbl_1_bss_2A4[1]; + fn_1_19974(&var_r28->unk3C, 1); + fn_1_198F8(&var_r28->unk3C, -1); + fn_1_19968(&var_r28->unk3C, -1); + for (i = 0; i < 3; i++) { + fn_1_19894(&var_r28->unk3C, var_r26->unk00->model[i + var_r29->unk10 * 3 + 2]); + } + fn_1_C5FC(8); + return fn_1_15520(&lbl_1_bss_84); + } + return 0; +} + +StructData3A0 lbl_1_data_3A0[] = { + { fn_1_F1DC, fn_1_F1E0, 300 }, + { fn_1_F36C, fn_1_F3A8, 60 }, + { fn_1_F404, fn_1_F47C, 60 }, + { fn_1_F4D8, fn_1_F534, 45 }, + { fn_1_F57C, fn_1_F5B8, 60 }, + { fn_1_F638, fn_1_F69C, 60 }, + { fn_1_F6F8, fn_1_F768, 45 }, + { fn_1_F7B0, fn_1_F858, 60 }, + { fn_1_F89C, fn_1_F8F8, 60 }, + { fn_1_F954, fn_1_F958, 90 }, + { fn_1_F9A0, fn_1_F9EC, 60 }, + { fn_1_FA48, fn_1_FB50, 180 }, + { fn_1_FBAC, fn_1_FC5C, 180 }, + { NULL, NULL, -1 } +}; + +void fn_1_FE64(void) { + fn_1_154C4(&lbl_1_bss_84, lbl_1_data_3A0); +} + +s32 fn_1_FE94(void) { + s32 var_r31; + + var_r31 = 0; + if (lbl_1_bss_84.unk10 != NULL) { + lbl_1_bss_84.unk10(); + lbl_1_bss_84.unk10 = NULL; + } + if (lbl_1_bss_84.unk14 != NULL) { + var_r31 = lbl_1_bss_84.unk14(); + } + return var_r31; +} + +s32 fn_1_FF2C(s32 arg0, s32 arg1) { + s32 var_r31; + StructBssE88* temp_r30; + + var_r31 = 0; + temp_r30 = &lbl_1_bss_E88[arg0]; + if (temp_r30->unk2C != 0) { + switch (temp_r30->unk30) { + case 0: + if (arg1 % 60 == 1 && fn_1_5438()) { + var_r31 = 1; + } + break; + case 1: + if (arg1 % 45 == 1 && fn_1_5438()) { + var_r31 = 1; + } + break; + case 2: + if (arg1 % 30 == 1 && fn_1_5438()) { + var_r31 = 1; + } + break; + case 3: + if (arg1 % 15 == 1 && fn_1_5438()) { + var_r31 = 1; + } + break; + } + } else if (HuPadBtnDown[temp_r30->unk38] & 0x100) { + var_r31 = 1; + } + return var_r31; +} + +void fn_1_10734(void) { + StructBss2A4* spC; + StructBssE08* sp8; + + spC = &lbl_1_bss_2A4[1]; + sp8 = &lbl_1_bss_E08; +} + +void fn_1_1075C(void) { + StructBssE08 sp8; + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + sp8.unk0C = 0.0f; + sp8.unk10 = 200.0f; + sp8.unk14 = -550.0f; + sp8.unk24 = 5.0f; + sp8.unk28 = 0.0f; + sp8.unk2C = 0.0f; + sp8.unk3C = 1300.0f; + fn_1_169F4(var_r31, &sp8, var_r31->unk44++, 90.0f, 10.0f); +} + +void fn_1_10834(void) { + StructBssE08 sp8; + StructBssE08* var_r31; + + var_r31 = &lbl_1_bss_E08; + sp8.unk0C = 0.0f; + sp8.unk10 = 200.0f; + sp8.unk14 = -850.0f; + sp8.unk24 = 5.0f; + sp8.unk28 = 0.0f; + sp8.unk2C = 0.0f; + sp8.unk3C = 1300.0f; + fn_1_169F4(var_r31, &sp8, var_r31->unk44++, 120.0f, 10.0f); +} + +void fn_1_1090C(s32 arg0) { + StructBssE08* var_r24; + + var_r24 = &lbl_1_bss_E08; + fn_1_15E50(var_r24); + switch (arg0) { + case 0: + fn_1_8A4(fn_1_C13C); + break; + case 1: + fn_1_8A4(fn_1_C214); + break; + case 2: + fn_1_8A4(fn_1_C2EC); + break; + case 3: + fn_1_8A4(fn_1_C3C4); + break; + case 4: + fn_1_8A4(fn_1_10734); + break; + case 5: + fn_1_8A4(fn_1_1075C); + break; + case 6: + fn_1_8A4(fn_1_10834); + break; + } +} + +void fn_1_10A14(void) { + char sp18[8]; + float sp10[] = { 0.0f, 0.0f }; + StructBss4EE8* var_r29; + StructBssE88* temp_r27; + s32 sp8; + + var_r29 = &lbl_1_bss_4EE8; + temp_r27 = &lbl_1_bss_E88[var_r29->unk10]; + lbl_1_bss_4 = 0; + sprintf(sp18, "%d", var_r29->unk04); + HuWinInsertMesSizeGet(temp_r27->unk34, 0); + HuWinInsertMesSizeGet(MAKE_MESSID_PTR(sp18), 1); + HuWinMesMaxSizeGet(1, sp10, MAKE_MESSID(29, 63)); + sp8 = fn_1_1E80(550.0f - sp10[0], 180.0f, sp10[0], sp10[1], 1); + HuAudFXPlayVolPan(0x65, 0x7F, 0x60); + fn_1_A670(var_r29->unk10, var_r29->unk04); + HuWinInsertMesSet(sp8, MAKE_MESSID_PTR(temp_r27->unk34), 0); + HuWinInsertMesSet(sp8, MAKE_MESSID_PTR(sp18), 1); + fn_1_7D28(1, 2); + fn_1_2798(sp8, MAKE_MESSID(29, 63)); + fn_1_2594(sp8, 120); + fn_1_7D28(1, 1); + fn_1_24C4(sp8); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_10E1C(void) { + float sp14[] = { 0.0f, 0.0f }; + s32 sp1C[][2] = { + { MAKE_MESSID(29, 60), 9 }, + { MAKE_MESSID(29, 61), 11 } + }; + StructBss2A4* var_r27; + s32 sp8; + s32 i; + + lbl_1_bss_4 = 0; + for (i = 0; i < 2; i++) { + if (i == 1) { + var_r27 = &lbl_1_bss_2A4[1]; + fn_1_19974(&var_r27->unk3C, 0); + fn_1_198F8(&var_r27->unk3C, -1); + fn_1_19968(&var_r27->unk3C, -1); + } + fn_1_281C(sp14, sp1C[i][0]); + sp8 = fn_1_1E80(550.0f - sp14[0], 180.0f, sp14[0], sp14[1], 1); + HuAudFXPlayVolPan(0x65, 0x7F, 0x60); + fn_1_8544(sp1C[i][1]); + fn_1_2798(sp8, sp1C[i][0]); + fn_1_2594(sp8, 120); + fn_1_24C4(sp8); + } + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_11220(void) { + float sp10[] = { 0.0f, 0.0f }; + float temp_f31; + float temp_f30; + s32 var_r22; + s32 sp8; + s32 i; + StructBssC1C* var_r27; + StructBss2A4* var_r28; + + lbl_1_bss_4 = 0; + fn_1_281C(sp10, MAKE_MESSID(29, 62)); + temp_f31 = 640.0f; + temp_f30 = (580.0f - sp10[0]) / 2 - 1.0f; + sp8 = fn_1_1E80(temp_f31, 100.0f, sp10[0], sp10[1], 2); + fn_1_8544(9); + var_r27 = &lbl_1_bss_C1C; + var_r28 = &lbl_1_bss_2A4[1]; + fn_1_19974(&var_r28->unk3C, 1); + fn_1_198F8(&var_r28->unk3C, -1); + fn_1_19968(&var_r28->unk3C, -1); + fn_1_19960(&var_r28->unk3C, var_r27->unk00->model[0]); + var_r22 = HuAudFXPlay(0x6D6); + HuAudFXPanning(var_r22, 0x60); + fn_1_799C(2); + fn_1_2798(sp8, MAKE_MESSID(29, 62)); + HuPrcSleep(5); + for (i = 0; i < 120; i++) { + temp_f31 = fn_1_1539C(640.0f, temp_f30, i, 30.0f); + HuWinPosSet(sp8, temp_f31, 100.0f); + HuPrcVSleep(); + } + HuPrcSleep(60); + fn_1_799C(1); + fn_1_24C4(sp8); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_116A8(void) { + float sp10[] = { 0.0f, 0.0f }; + float temp_f31; + float temp_f30; + s32 var_r22; + s32 sp8; + s32 i; + StructBssC1C* var_r27; + StructBss2A4* var_r28; + + lbl_1_bss_4 = 0; + fn_1_281C(sp10, MAKE_MESSID(29, 57)); + temp_f31 = 640.0f; + temp_f30 = (580.0f - sp10[0]) / 2 - 1.0f; + sp8 = fn_1_1E80(temp_f31, 100.0f, sp10[0], sp10[1], 2); + var_r27 = &lbl_1_bss_C1C; + var_r28 = &lbl_1_bss_2A4[1]; + fn_1_19974(&var_r28->unk3C, 1); + fn_1_198F8(&var_r28->unk3C, -1); + fn_1_19968(&var_r28->unk3C, -1); + fn_1_19960(&var_r28->unk3C, var_r27->unk00->model[0]); + var_r22 = HuAudFXPlay(0x6D2); + HuAudFXPanning(var_r22, 0x60); + fn_1_799C(2); + fn_1_2798(sp8, MAKE_MESSID(29, 57)); + HuPrcSleep(5); + for (i = 0; i < 120; i++) { + temp_f31 = fn_1_1539C(640.0f, temp_f30, i, 30.0f); + HuWinPosSet(sp8, temp_f31, 100.0f); + HuPrcVSleep(); + } + fn_1_799C(1); + fn_1_24C4(sp8); + lbl_1_bss_4 = 1; + HuPrcEnd(); +} + +void fn_1_11B04(void) { + float sp14[] = { 0.0f, 0.0f }; + s32 sp1C[] = { + MAKE_MESSID(29, 58), + MAKE_MESSID(29, 59) + }; + StructBss2A4* var_r25; + StructBss2A4* var_r28; + StructBss9C* var_r24; + s32 sp8; + s32 i; + + lbl_1_bss_4 = 0; + for (i = 0; i < 2; i++) { + if (i == 1) { + var_r25 = &lbl_1_bss_2A4[1]; + var_r28 = &lbl_1_bss_2A4[0]; + var_r24 = &lbl_1_bss_9C; + var_r24->unk00->work[3] = 1; + fn_1_157BC(var_r28->unk00, 0, 1, 30, 1); + fn_1_157BC(var_r28->unk00, 1, 6, 30, 1); + fn_1_157BC(var_r25->unk00, 0, 10, 60, 0); + lbl_1_bss_4 = 1; + } + fn_1_281C(sp14, sp1C[i]); + sp8 = fn_1_1E80((580.0f - sp14[0]) / 2 - 1.0f, 75.0f, sp14[0], sp14[1], 2); + HuAudFXPlay(0x6D6); + if (i == 0) { + fn_1_799C(2); + } + fn_1_2798(sp8, sp1C[i]); + fn_1_2594(sp8, 60); + if (i == 0) { + fn_1_799C(1); + } + if (i == 1) { + fn_1_2594(sp8, 60); + } + fn_1_24C4(sp8); + } + HuPrcEnd(); +} + +void fn_1_11F7C(void) { +} + +s32 fn_1_11F80(void) { + if (fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_11FC8(void) { + StructBss4EE8* var_r31; + StructBss2A4* var_r30; + StructBssE88* temp_r29; + + var_r31 = &lbl_1_bss_4EE8; + var_r30 = &lbl_1_bss_2A4[1]; + temp_r29 = &lbl_1_bss_E88[var_r31->unk10]; + var_r31->unk0C = 0; + fn_1_157BC(var_r30->unk00, 0, 6, 10, 0); + fn_1_157BC(temp_r29->unk00, 0, 4, 60, 1); + var_r31->unk14 = var_r31->unk10; +} + +s32 fn_1_12064(void) { + s32 i; + StructBss4EE8* var_r29; + StructBss2A4* var_r30; + StructBssC30* var_r26; + StructBss2A4* var_r28; + + var_r29 = &lbl_1_bss_4EE8; + var_r30 = &lbl_1_bss_2A4[1]; + if (fn_1_156AC(var_r30->unk00, 0, 6, 50, 0) != 0) { + fn_1_19658(var_r30->unk00, 0, 0.0f, 10); + } else if (fn_1_156AC(var_r30->unk00, 0, 6, 50, 1) != 0) { + fn_1_19658(var_r30->unk00, 0, 90.0f, 10); + if (var_r29->unk0C == 0) { + var_r29->unk0C = 1; + fn_1_3E84(1); + fn_1_5600(1); + } + } + if (fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + var_r26 = &lbl_1_bss_C30; + var_r28 = &lbl_1_bss_2A4[1]; + fn_1_19974(&var_r28->unk3C, 1); + fn_1_198F8(&var_r28->unk3C, -1); + fn_1_19968(&var_r28->unk3C, -1); + for (i = 0; i < 3; i++) { + fn_1_19960(&var_r28->unk3C, var_r26->unk00->model[i + var_r29->unk10 * 3 + 2]); + } + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_12210(void) { + fn_1_1090C(1); +} + +s32 fn_1_12260(void) { + if (fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_122A8(void) { + if (lbl_1_bss_10 == 0) { + lbl_1_bss_10 = 1; + lbl_1_bss_C = 300; + } +} + +s32 fn_1_122E0(void) { + s32 var_r30; + StructBss4EE8* var_r29; + + var_r30 = 0; + var_r29 = &lbl_1_bss_4EE8; + fn_1_15670(&lbl_1_bss_6C, 1); + if (fn_1_15670(&lbl_1_bss_6C, 0) <= 10) { + return 0; + } + if (fn_1_FF2C(var_r29->unk10, fn_1_15670(&lbl_1_bss_6C, 0)) != 0) { + var_r30 = 1; + fn_1_28E8(); + } + if (var_r30 != 0 || fn_1_28C4() != 0) { + fn_1_5600(4); + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_12414(void) { + StructBss4EE8* var_r31; + + var_r31 = &lbl_1_bss_4EE8; + var_r31->unk00 = var_r31->unk04 = var_r31->unk08 = 0; +} + +s32 fn_1_12440(void) { + s32 i; + s32 j; + StructBss4EE8* var_r31; + StructBssC30* var_r28; + + var_r31 = &lbl_1_bss_4EE8; + var_r28 = &lbl_1_bss_C30; + if (var_r31->unk00 == 0) { + for (i = 0; i < 3; i++) { + if (var_r28->unk2C[i] != 7) { + break; + } + } + if (i == 3) { + var_r31->unk00 = 1; + for (j = 0; j < 3; j++) { + var_r31->unk04 += var_r28->unk68[j]; + } + } + } else if (var_r31->unk00 == 1) { + if (var_r31->unk04 < 0) { + var_r31->unk08 = 1; + fn_1_1561C(&lbl_1_bss_6C, 9); + fn_1_1090C(3); + } else if (fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + return fn_1_15520(&lbl_1_bss_6C); + } + } + return 0; +} + +void fn_1_12574(void) { + StructBss2A4* temp_r31; + + temp_r31 = &lbl_1_bss_2A4[1]; + fn_1_157BC(temp_r31->unk00, 0, 8, 10, 1); +} + +s32 fn_1_125BC(void) { + if (fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_12604(void) { + StructBss4EE8* var_r30; + StructBssE88* spC; + StructBss2A4* var_r29; + StructBssC30* sp8; + StructBss2A4* var_r31; + + var_r30 = &lbl_1_bss_4EE8; + spC = &lbl_1_bss_E88[var_r30->unk10]; + var_r29 = &lbl_1_bss_2A4[1]; + fn_1_157BC(var_r29->unk00, 0, 0, 10, 1); + HuPrcChildCreate(fn_1_10A14, 100, 0x2000, 0, HuPrcCurrentGet()); + fn_1_1090C(3); + sp8 = &lbl_1_bss_C30; + var_r31 = &lbl_1_bss_2A4[1]; + fn_1_19974(&var_r31->unk3C, 0); + fn_1_198F8(&var_r31->unk3C, -1); + fn_1_19968(&var_r31->unk3C, -1); +} + +s32 fn_1_126F4(void) { + StructBss4EE8* var_r31; + StructBssE88* var_r30; + + var_r31 = &lbl_1_bss_4EE8; + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + var_r30 = &lbl_1_bss_E88[var_r31->unk10]; + fn_1_157BC(var_r30->unk00, 0, 0, 1, 1); + if (var_r31->unk10 == 3) { + fn_1_1561C(&lbl_1_bss_6C, 11); + } else { + return fn_1_15520(&lbl_1_bss_6C); + } + } + return 0; +} + +void fn_1_127B4(void) { + StructBss4EE8* sp8; + + sp8 = &lbl_1_bss_4EE8; + fn_1_1090C(0); +} + +s32 fn_1_12810(void) { + if (fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_12858(void) { + StructBss4EE8* var_r28; + StructBssE88* temp_r31; + s32 var_r30; + s32 i; + + var_r28 = &lbl_1_bss_4EE8; + var_r30 = var_r28->unk10 + 1; + if (var_r30 >= 4) { + var_r30 = 0; + } + for (i = 0; i < 4; i++) { + temp_r31 = &lbl_1_bss_E88[var_r30]; + lbl_1_bss_3C[i].x = temp_r31->unk00->trans.x; + lbl_1_bss_3C[i].y = temp_r31->unk00->trans.y; + lbl_1_bss_3C[i].z = temp_r31->unk00->trans.z; + temp_r31->unk14 = 0; + fn_1_15934(temp_r31->unk00, 0, 2, 10, 1); + var_r30++; + if (var_r30 >= 4) { + var_r30 = 0; + } + } +} + +s32 fn_1_12958(void) { + StructBss4EE8* var_r30 = &lbl_1_bss_4EE8; + StructBssE88* temp_r31; + s32 var_r28; + s32 var_r29; + Vec sp8[] = { + { 0.0f, 0.0f, 500.0f }, + { 200.0f, 0.0f, 300.0f }, + { 200.0f, 0.0f, 450.0f }, + { 200.0f, 0.0f, 600.0f } + }; + + var_r29 = var_r30->unk10 + 1; + if (var_r29 >= 4) { + var_r29 = 0; + } + for (var_r28 = 0; var_r28 < 4; var_r28++) { + temp_r31 = &lbl_1_bss_E88[var_r29]; + if (temp_r31->unk14++ <= 30) { + fn_1_195F4(temp_r31->unk00, 0, &lbl_1_bss_3C[var_r28], &sp8[var_r28], 5, temp_r31->unk14, 30); + } else { + fn_1_19658(temp_r31->unk00, 0, -90.0f, 10); + if (temp_r31->unk14 >= 40) { + fn_1_15934(temp_r31->unk00, 0, 0, 10, 1); + } + } + var_r29++; + if (var_r29 == 4) { + var_r29 = 0; + } + } + if (fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + var_r30->unk10++; + if (var_r30->unk10 >= 4) { + var_r30->unk10 = 0; + } + fn_1_3E84(0); + fn_1_5600(0); + fn_1_1561C(&lbl_1_bss_6C, 0); + } + return 0; +} + +void fn_1_12B50(void) { + HuPrcChildCreate(fn_1_10E1C, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_12B8C(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_12BE8(void) { + HuPrcChildCreate(fn_1_11220, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_12C24(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + fn_1_1561C(&lbl_1_bss_6C, 12); + } + return 0; +} + +void fn_1_12C80(void) { + HuPrcChildCreate(fn_1_116A8, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_12CBC(void) { + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_12D18(void) { + StructBss4EE8* var_r28; + StructBssC1C* sp10; + StructBss144* temp_r27; + s32 var_r30; + s32 var_r31; + + var_r30 = 999; + var_r28 = &lbl_1_bss_4EE8; + sp10 = &lbl_1_bss_C1C; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_A4B8(var_r31, 0); + } + fn_1_8250(1); + if (var_r28->unk08 != 1) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + temp_r27 = &lbl_1_bss_144[var_r31]; + if (var_r30 > temp_r27->unk50) { + var_r30 = temp_r27->unk50; + var_r28->unk10 = var_r31; + } + } + } + { + StructBssE88* temp_r29; + StructBss2A4* var_r24; + Vec sp14[] = { + { 0.0f, 0.0f, -225.0f }, + { -200.0f, 0.0f, -225.0f }, + { 200.0f, 0.0f, -225.0f }, + { 400.0f, 0.0f, -225.0f } + }; + + var_r30 = var_r28->unk10; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + temp_r29 = &lbl_1_bss_E88[var_r30]; + omSetTra(temp_r29->unk00, sp14[var_r31].x, sp14[var_r31].y, sp14[var_r31].z); + omSetRot(temp_r29->unk00, 0.0f, 180.0f, 0.0f); + fn_1_157BC(temp_r29->unk00, 0, 0, 10, 1); + var_r30++; + if (var_r30 >= 4) { + var_r30 = 0; + } + var_r24 = &lbl_1_bss_2A4[1]; + fn_1_19960(&temp_r29->unk58, var_r24->unk00->model[0]); + } + } + fn_1_1090C(5); +} + +// Unused. Mirrors the Vec array defined in fn_1_12D18. +const Vec lbl_1_rodata_48C[] = { + { 0.0f, 0.0f, -225.0f }, + { -200.0f, 0.0f, -225.0f }, + { 200.0f, 0.0f, -225.0f }, + { 400.0f, 0.0f, -225.0f } +}; + +s32 fn_1_12F48(void) { + StructBss4EE8* var_r27; + StructBssC1C* var_r25; + StructBssC30* var_r24; + StructBssE88* sp8; + s32 var_r29; + s32 var_r28; + + var_r27 = &lbl_1_bss_4EE8; + if (fn_1_15670(&lbl_1_bss_6C, 0) == 180) { + var_r25 = &lbl_1_bss_C1C; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + sp8 = &lbl_1_bss_E88[var_r29]; + fn_1_19960(&sp8->unk58, var_r25->unk00->model[0]); + } + } + if (fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + var_r24 = &lbl_1_bss_C30; + for (var_r28 = 0; var_r28 < 14; var_r28++) { + Hu3DModelAttrSet(var_r24->unk00->model[var_r28], 1); + } + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +void fn_1_1303C(void) { + lbl_1_bss_4 = 0; + HuPrcChildCreate(fn_1_11B04, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_13088(void) { + s32 var_r31; + s32 i; + StructBss4EE8* var_r28; + StructBssE88* temp_r29; + + var_r28 = &lbl_1_bss_4EE8; + var_r31 = var_r28->unk10; + if (var_r31 == 4) { + var_r31 = 0; + } + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_6C, 0) == 20) { + fn_1_1090C(6); + for (i = 0; i < 4; i++) { + if (i != 0) { + temp_r29 = &lbl_1_bss_E88[var_r31]; + temp_r29->unk0C = i; + temp_r29->unk1C = 15 - i * 5; + temp_r29->unk20 = 0; + } + var_r31++; + if (var_r31 >= 4) { + var_r31 = 0; + } + } + } + if (lbl_1_bss_4 != 0 && fn_1_15670(&lbl_1_bss_6C, 1) != 0) { + return fn_1_15520(&lbl_1_bss_6C); + } + return 0; +} + +StructData3A0 lbl_1_data_468[] = { + { fn_1_11F7C, fn_1_11F80, 1 }, + { fn_1_11FC8, fn_1_12064, 120 }, + { fn_1_12210, fn_1_12260, 90 }, + { fn_1_122A8, fn_1_122E0, 120 }, + { fn_1_12414, fn_1_12440, -1 }, + { fn_1_12574, fn_1_125BC, 120 }, + { fn_1_12604, fn_1_126F4, 60 }, + { fn_1_127B4, fn_1_12810, 30 }, + { fn_1_12858, fn_1_12958, 120 }, + { fn_1_12B50, fn_1_12B8C, 60 }, + { fn_1_12BE8, fn_1_12C24, 60 }, + { fn_1_12C80, fn_1_12CBC, 60 }, + { fn_1_12D18, fn_1_12F48, 300 }, + { fn_1_1303C, fn_1_13088, 60 }, + { NULL, NULL, -1 } +}; + +void fn_1_131B0(void) { + fn_1_154C4(&lbl_1_bss_6C, lbl_1_data_468); + fn_1_1561C(&lbl_1_bss_6C, 3); +} + +s32 fn_1_131F0(void) { + s32 var_r31; + + var_r31 = 0; + if (lbl_1_bss_6C.unk10 != NULL) { + lbl_1_bss_6C.unk10(); + lbl_1_bss_6C.unk10 = NULL; + } + if (lbl_1_bss_6C.unk14 != NULL) { + var_r31 = lbl_1_bss_6C.unk14(); + } + return var_r31; +} + +void fn_1_13288(void) { + StructBss4EE8* var_r30; + StructBssE88* temp_r31; + + var_r30 = &lbl_1_bss_4EE8; + temp_r31 = &lbl_1_bss_E88[var_r30->unk10]; + var_r30->unk1C = 0; + lbl_1_data_1E0 = temp_r31->unk00->model[0]; + lbl_1_data_1E4 = temp_r31->unk00->motion[3]; + lbl_1_data_1E8 = temp_r31->unk34; + HuPrcChildCreate(fn_1_0, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +s32 fn_1_13338(void) { + StructBss4EE8* var_r31; + StructBssE88* temp_r30; + + var_r31 = &lbl_1_bss_4EE8; + temp_r30 = &lbl_1_bss_E88[var_r31->unk10]; + if (fn_1_15670(&lbl_1_bss_24, 0) == 120) { + fn_1_157BC(temp_r30->unk00, 0, 3, 30, 0); + HuAudSStreamPlay(3); + } + if (fn_1_15670(&lbl_1_bss_24, 1) != 0) { + return fn_1_15520(&lbl_1_bss_24); + } + return 0; +} + +StructData3A0 lbl_1_data_51C[] = { + { fn_1_13288, fn_1_13338, 360 }, + { NULL, NULL, -1 } +}; + +void fn_1_133E4(void) { + fn_1_154C4(&lbl_1_bss_24, lbl_1_data_51C); +} + +s32 fn_1_13414(void) { + s32 var_r31; + + var_r31 = 0; + if (lbl_1_bss_24.unk10 != NULL) { + lbl_1_bss_24.unk10(); + lbl_1_bss_24.unk10 = NULL; + } + if (lbl_1_bss_24.unk14 != NULL) { + var_r31 = lbl_1_bss_24.unk14(); + } + return var_r31; +} + +void fn_1_134AC(omObjData* arg0) { + StructBss4EE8* var_r30; + StructBssE88* temp_r29; + s32 i; + + if (WipeStatGet() == 0) { + CharModelKill(-1); + MGSeqKillAll(); + HuAudFadeOut(1); + var_r30 = &lbl_1_bss_4EE8; + temp_r29 = &lbl_1_bss_E88[var_r30->unk10]; + for (i = 0; i < 4; i++) { + GWPlayerCoinWinSet(i, 0); + } + GWPlayerCoinWinSet(temp_r29->unk24, 1); + omOvlReturnEx(1, 1); + arg0->func = NULL; + } +} + +void fn_1_135A0(omObjData* arg0) { + if (omSysExitReq == 1) { + HuAudSeqAllFadeOut(250); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + arg0->func = fn_1_134AC; + } +} + +void fn_1_13600(void) { + StructBss4EE8* var_r29; + s32 i; + + fn_1_3288(&lbl_1_bss_DE4); + fn_1_72A4(&lbl_1_bss_C30); + fn_1_7A78(&lbl_1_bss_C1C); + for (i = 0; i < 2; i++) { + fn_1_8734(&lbl_1_bss_2A4[i]); + } + for (i = 0; i < 4; i++) { + fn_1_9F7C(&lbl_1_bss_E88[i]); + } + for (i = 0; i < 4; i++) { + fn_1_ABFC(&lbl_1_bss_144[i]); + } + fn_1_B828(&lbl_1_bss_9C); + var_r29 = &lbl_1_bss_4EE8; + var_r29->unk00 = var_r29->unk04 = var_r29->unk08 = var_r29->unk0C = 0; + var_r29->unk10 = var_r29->unk14 = var_r29->unk18 = var_r29->unk1C = 0; + fn_1_FE64(); + fn_1_131B0(); + fn_1_133E4(); + fn_1_C5FC(0); + HuAudFXPlay(0x6D7); +} + +void fn_1_14384(omObjData* arg0) { + switch (lbl_1_bss_1C) { + case 0: + fn_1_13600(); + lbl_1_bss_1C = 1; + break; + case 1: + if (WipeStatGet() == 0) { + lbl_1_bss_1C = 2; + } + break; + case 2: + if (fn_1_FE94()) { + lbl_1_bss_1C = 3; + } + break; + case 3: + lbl_1_bss_20 = MGSeqStartCreate(); + lbl_1_bss_1C = 4; + lbl_1_bss_4F08[1] = -1; + break; + case 4: + if ((MGSeqStatGet(lbl_1_bss_20) & 0x10) && lbl_1_bss_4F08[1] == -1) { + lbl_1_bss_4F08[1] = HuAudSeqPlay(0x4D); + } + if (MGSeqStatGet(lbl_1_bss_20) == 0) { + lbl_1_bss_1C = 5; + } + break; + case 5: + if (fn_1_131F0()) { + lbl_1_bss_1C = 6; + } + break; + case 6: + lbl_1_bss_20 = MGSeqFinishCreate(); + lbl_1_bss_1C = 7; + HuAudSeqPauseAll(0); + HuAudSeqAllFadeOut(250); + break; + case 7: + if (MGSeqStatGet(lbl_1_bss_20) == 0) { + lbl_1_bss_1C = 8; + } + break; + case 8: + fn_1_2BFC(999); + if (fn_1_13414()) { + lbl_1_bss_1C = 9; + } + break; + case 9: + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + arg0->func = fn_1_134AC; + break; + } + fn_1_135A0(arg0); +} + +void fn_1_14760(omObjData* arg0) { + s32 i; + + lbl_1_bss_DE4.unk00 = omAddObjEx(lbl_1_bss_0, 0x200, 16, 16, -1, fn_1_3558); + lbl_1_bss_C30.unk00 = omAddObjEx(lbl_1_bss_0, 0x300, 32, 32, -1, fn_1_7628); + lbl_1_bss_C1C.unk00 = omAddObjEx(lbl_1_bss_0, 0x400, 16, 16, -1, fn_1_7B44); + for (i = 0; i < 2; i++) { + lbl_1_bss_2A4[i].unk00 = omAddObjEx(lbl_1_bss_0, 0x500, 16, 16, -1, fn_1_88B0); + lbl_1_bss_2A4[i].unk00->work[0] = i; + } + for (i = 0; i < 4; i++) { + lbl_1_bss_E88[i].unk00 = omAddObjEx(lbl_1_bss_0, 0x50, 16, 16, -1, fn_1_A148); + lbl_1_bss_E88[i].unk00->work[0] = i; + } + for (i = 0; i < 4; i++) { + lbl_1_bss_144[i].unk00 = omAddObjEx(lbl_1_bss_0, 0x800, 16, 16, -1, fn_1_AD5C); + lbl_1_bss_144[i].unk00->work[0] = i; + } + lbl_1_bss_9C.unk00 = omAddObjEx(lbl_1_bss_0, 0x700, 16, 16, -1, fn_1_B950); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + arg0->func = fn_1_14384; +} + +#include "src/REL/executor.c" + +void fn_1_14A54(void) { + lbl_1_bss_0 = omInitObjMan(62, 0x2000); + omGameSysInit(lbl_1_bss_0); + fn_1_1A8(); + fn_1_FDC(); + fn_1_1110(); + fn_1_1818(); + fn_1_2AF0(); + fn_1_8F4C(); + omAddObjEx(lbl_1_bss_0, 0x1000, 0, 0, -1, fn_1_14760); +} + +void ObjectSetup(void) { + fn_1_14A54(); +} diff --git a/src/REL/m435Dll/sequence.c b/src/REL/m435Dll/sequence.c index 57b3db46..704c4c34 100755 --- a/src/REL/m435Dll/sequence.c +++ b/src/REL/m435Dll/sequence.c @@ -322,7 +322,7 @@ void fn_1_195F4(omObjData* arg0, s32 arg1, Vec* arg2, Vec* arg3, s32 arg4, s32 a fn_1_1906C(arg0, arg1, arg2, arg3, arg4, arg5, arg6, 1, 1); } -void fn_1_19658(omObjData* arg0, s32 arg1, s32 arg2, float arg3) { +void fn_1_19658(omObjData* arg0, s32 arg1, float arg2, s32 arg3) { float var_f31; float var_f30; @@ -332,7 +332,7 @@ void fn_1_19658(omObjData* arg0, s32 arg1, s32 arg2, float arg3) { } else if (var_f31 >= 360.0f) { var_f31 -= 360.0f; } - var_f30 = arg3; + var_f30 = arg2; if (var_f30 < 0.0f) { var_f30 += 360.0f; } else if (var_f30 >= 360.0f) { @@ -353,7 +353,7 @@ void fn_1_19658(omObjData* arg0, s32 arg1, s32 arg2, float arg3) { var_f31 += 360.0f; } } - var_f31 = (var_f30 + var_f31 * (arg2 - 1)) / arg2; + var_f31 = (var_f30 + var_f31 * (arg3 - 1)) / arg3; if (arg1 == 0) { arg0->rot.y = var_f31; } else { @@ -393,7 +393,7 @@ void fn_1_19960(StructFn19894* arg0, s32 arg1) { arg0->unk464 = arg1; } -void fn_1_19968(StructFn19894* arg0) { +void fn_1_19968(StructFn19894* arg0, s32 arg1) { arg0->unk464 = -1; } @@ -526,7 +526,7 @@ void fn_1_1A33C(Process* arg0, StructFn19894* arg1, s32 arg2, char* arg3, s32 ar fn_1_19974(arg1, 1); arg1->unk08 = arg2; strcpy(arg1->unk10, arg3); - fn_1_19968(arg1); + fn_1_19968(arg1, -1); fn_1_198F8(arg1, -1); arg1->unk470 = 5.0f; arg1->unk474 = 10000.0f; From e8f986b61ef7894a5bff186669f7ce3b8e5ec902 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Sat, 7 Dec 2024 15:51:08 -0800 Subject: [PATCH 191/311] Fully matched REL m435 --- configure.py | 4 +- include/REL/m435Dll.h | 2 +- src/REL/m435Dll/main.c | 114 +++++++++++++++++++++++++++++++++++++---- 3 files changed, 106 insertions(+), 14 deletions(-) diff --git a/configure.py b/configure.py index 4db092f9..c748d7c4 100644 --- a/configure.py +++ b/configure.py @@ -1108,8 +1108,8 @@ config.libs = [ Rel( "m435Dll", # Darts of Doom objects={ - Object(NonMatching, "REL/m435Dll/main.c"), - Object(NonMatching, "REL/m435Dll/sequence.c"), + Object(Matching, "REL/m435Dll/main.c"), + Object(Matching, "REL/m435Dll/sequence.c"), }, ), Rel( diff --git a/include/REL/m435Dll.h b/include/REL/m435Dll.h index 36ee1baa..102610b2 100755 --- a/include/REL/m435Dll.h +++ b/include/REL/m435Dll.h @@ -20,7 +20,7 @@ typedef struct { } StructBss84; // Size 0x18 typedef struct { - /* 0x00 */ void (*unk00)(void); // inferred (unsure) + /* 0x00 */ char unk00[4]; /* 0x04 */ void (*unk04)(void); /* 0x08 */ void (*unk08)(void); /* 0x0C */ float unk0C; diff --git a/src/REL/m435Dll/main.c b/src/REL/m435Dll/main.c index 1972c585..df551b13 100755 --- a/src/REL/m435Dll/main.c +++ b/src/REL/m435Dll/main.c @@ -3818,21 +3818,21 @@ void fn_1_12D18(void) { StructBssC1C* sp10; StructBss144* temp_r27; s32 var_r30; - s32 var_r31; + s32 i; var_r30 = 999; var_r28 = &lbl_1_bss_4EE8; sp10 = &lbl_1_bss_C1C; - for (var_r31 = 0; var_r31 < 4; var_r31++) { - fn_1_A4B8(var_r31, 0); + for (i = 0; i < 4; i++) { + fn_1_A4B8(i, 0); } fn_1_8250(1); if (var_r28->unk08 != 1) { - for (var_r31 = 0; var_r31 < 4; var_r31++) { - temp_r27 = &lbl_1_bss_144[var_r31]; + for (i = 0; i < 4; i++) { + temp_r27 = &lbl_1_bss_144[i]; if (var_r30 > temp_r27->unk50) { var_r30 = temp_r27->unk50; - var_r28->unk10 = var_r31; + var_r28->unk10 = i; } } } @@ -3847,9 +3847,9 @@ void fn_1_12D18(void) { }; var_r30 = var_r28->unk10; - for (var_r31 = 0; var_r31 < 4; var_r31++) { + for (i = 0; i < 4; i++) { temp_r29 = &lbl_1_bss_E88[var_r30]; - omSetTra(temp_r29->unk00, sp14[var_r31].x, sp14[var_r31].y, sp14[var_r31].z); + omSetTra(temp_r29->unk00, sp14[i].x, sp14[i].y, sp14[i].z); omSetRot(temp_r29->unk00, 0.0f, 180.0f, 0.0f); fn_1_157BC(temp_r29->unk00, 0, 0, 10, 1); var_r30++; @@ -3861,6 +3861,21 @@ void fn_1_12D18(void) { } } fn_1_1090C(5); + + // Hack required to match. + if (0) { + s32 var_r25; + s32 var_r26; + + (void) var_r26; + (void) var_r26; + (void) var_r26; + (void) var_r26; + (void) var_r25; + (void) var_r25; + (void) var_r25; + (void) var_r25; + } } // Unused. Mirrors the Vec array defined in fn_1_12D18. @@ -3871,15 +3886,75 @@ const Vec lbl_1_rodata_48C[] = { { 400.0f, 0.0f, -225.0f } }; -s32 fn_1_12F48(void) { +static inline void fn_1_12F48_inline_hack(s32 arg0) { StructBss4EE8* var_r27; + + var_r27 = &lbl_1_bss_4EE8; + (void) var_r27; + (void) var_r27; + (void) var_r27; + (void) var_r27; + + if (arg0) { + s32 var_r31; + s32 var_r30; + s32 var_r26; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + s32 var_r18; + s32 var_r17; + + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r26; + (void) var_r26; + (void) var_r26; + (void) var_r26; + (void) var_r23; + (void) var_r23; + (void) var_r23; + (void) var_r22; + (void) var_r22; + (void) var_r22; + (void) var_r21; + (void) var_r21; + (void) var_r21; + (void) var_r20; + (void) var_r20; + (void) var_r20; + (void) var_r19; + (void) var_r19; + (void) var_r19; + (void) var_r18; + (void) var_r18; + (void) var_r18; + (void) var_r17; + (void) var_r17; + (void) var_r17; + } +} + +s32 fn_1_12F48(void) { StructBssC1C* var_r25; StructBssC30* var_r24; StructBssE88* sp8; s32 var_r29; s32 var_r28; - var_r27 = &lbl_1_bss_4EE8; + fn_1_12F48_inline_hack(0); // Required to match. if (fn_1_15670(&lbl_1_bss_6C, 0) == 180) { var_r25 = &lbl_1_bss_C1C; for (var_r29 = 0; var_r29 < 4; var_r29++) { @@ -4079,6 +4154,8 @@ void fn_1_13600(void) { } void fn_1_14384(omObjData* arg0) { + StructBssDE4* var_r25; + switch (lbl_1_bss_1C) { case 0: fn_1_13600(); @@ -4124,7 +4201,8 @@ void fn_1_14384(omObjData* arg0) { } break; case 8: - fn_1_2BFC(999); + var_r25 = &lbl_1_bss_DE4; + var_r25->unk04 = 999; if (fn_1_13414()) { lbl_1_bss_1C = 9; } @@ -4135,6 +4213,20 @@ void fn_1_14384(omObjData* arg0) { break; } fn_1_135A0(arg0); + + // Hack required to match. + if (0) { + s32 var_r31; + s32 var_r28; + + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r28; + (void) var_r28; + (void) var_r28; + } } void fn_1_14760(omObjData* arg0) { From 0c3008d2e372c85fec043e9a6675711b41dc969f Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Wed, 11 Dec 2024 01:48:05 +0100 Subject: [PATCH 192/311] Almost fully matched m459dll --- config/GMPE01_00/rels/m459dll/symbols.txt | 170 +- src/REL/m459dll/main.c | 2132 +++++++++++++++++++++ 2 files changed, 2217 insertions(+), 85 deletions(-) create mode 100644 src/REL/m459dll/main.c diff --git a/config/GMPE01_00/rels/m459dll/symbols.txt b/config/GMPE01_00/rels/m459dll/symbols.txt index 5520ff1e..7e0f8085 100644 --- a/config/GMPE01_00/rels/m459dll/symbols.txt +++ b/config/GMPE01_00/rels/m459dll/symbols.txt @@ -64,91 +64,91 @@ fn_1_6198 = .text:0x00006198; // type:function size:0x2C0 fn_1_6458 = .text:0x00006458; // type:function size:0x128 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x30 -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x78 -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x18 -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:4byte -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x20 -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x20 -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x18C -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x10 -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x8 -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x14 -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x14 -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x14 -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x14 -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0xC data:4byte -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0xC data:4byte -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0xC data:4byte -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x48 -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B data:string -lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1B data:string +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x30 scope:local +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x78 scope:local +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x18 scope:local +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x20 scope:local +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x20 scope:local +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x18C scope:local +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x10 scope:local +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x8 scope:local +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x14 scope:local +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x14 scope:local +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x14 scope:local +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x14 scope:local +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 scope:local data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0xC scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0xC scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0xC scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x48 scope:local +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B scope:local data:string +lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1B scope:local data:string jumptable_1_data_38 = .data:0x00000038; // type:object size:0x38 scope:local lbl_1_data_70 = .data:0x00000070; // type:object size:0x1C lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x2 data:2byte diff --git a/src/REL/m459dll/main.c b/src/REL/m459dll/main.c new file mode 100644 index 00000000..b9ecf9b3 --- /dev/null +++ b/src/REL/m459dll/main.c @@ -0,0 +1,2132 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/esprite.h" +#include "game/gamework.h" +#include "game/hsfex.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/wipe.h" + +// #ifndef __MWERKS__ +#include "game/frand.h" +// #endif + +typedef struct M459DllBss18Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s16 unk_04[8]; + /* 0x14 */ s16 unk_14[8]; + /* 0x24 */ u8 unk_24[2]; + /* 0x28 */ s32 unk_28; + /* 0x2C */ s32 unk_2C; +} M459DllBss18Struct; /* size = 0x30 */ + +typedef struct M459DllBss4CStruct { + /* 0x00 */ s16 unk_00[6]; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; +} M459DllBss4CStruct; /* size = 0x18 */ + +typedef struct M459DllBss64Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s16 unk_08; +} M459DllBss64Struct; /* size = 0xC */ + +typedef struct M459DllBss70Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s16 unk_04; + /* 0x08 */ s32 unk_08; +} M459DllBss70Struct; /* size = 0xC */ + +typedef struct M459DllBss7CStruct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ u32 unk_08; + /* 0x0C */ s16 unk_0C[2]; +} M459DllBss7CStruct; /* size = 0x10 */ + +typedef struct M459DllBssCCStruct { + /* 0x000 */ s32 unk_00; + /* 0x004 */ s32 unk_04; + /* 0x008 */ s32 unk_08; + /* 0x00C */ Vec unk_0C; + /* 0x018 */ float unk_18; + /* 0x01C */ float unk_1C; + /* 0x020 */ float unk_20; + /* 0x024 */ char pad_24[0x4]; + /* 0x028 */ s32 unk_28[5]; + /* 0x03C */ s32 unk_3C[5]; + /* 0x050 */ float unk_50; + /* 0x054 */ float unk_54; + /* 0x058 */ float unk_58; + /* 0x05C */ float unk_5C; + /* 0x060 */ s16 unk_60; + /* 0x062 */ s16 unk_62[0xC]; + /* 0x07A */ s16 unk_7A[0xC][6]; + /* 0x10A */ s16 unk_10A[2]; + /* 0x10E */ char pad_10E[2]; +} M459DllBssCCStruct; /* size = 0x110 */ + +typedef struct M459DllBss61CStruct { + /* 0x00 */ Vec unk_00; + /* 0x0C */ Vec unk_0C; + /* 0x18 */ float unk_18; + /* 0x1C */ float unk_1C; + /* 0x20 */ float unk_20; + /* 0x24 */ float unk_24; + /* 0x24 */ float unk_28; + /* 0x2C */ float unk_2C; + /* 0x30 */ float unk_30; + /* 0x34 */ float unk_34; + /* 0x38 */ float unk_38; + /* 0x3C */ char unk3C[0xC]; + /* 0x48 */ Vec unk_48; + /* 0x54 */ Vec unk_54; + /* 0x60 */ char unk60[0xC]; + /* 0x6C */ float unk_6C; + /* 0x70 */ float unk_70; + /* 0x74 */ float unk_74; + /* 0x78 */ float unk_78; +} M459DllBss61CStruct; /* size = 0x7C */ + +typedef struct M459DllData70Struct { + /* 0x00 */ Vec unk_00; + /* 0x0C */ Vec unk_0C; + /* 0x18 */ GXColor unk_18; +} M459DllData70Struct; /* size = 0x1C */ + +void fn_1_11DC(float arg8, float arg9, float argA); +void fn_1_1204(float arg8, float arg9, float argA); +void fn_1_122C(void); +void fn_1_14B8(void); +void fn_1_19B4(M459DllBssCCStruct *arg0); +void fn_1_1A00(M459DllBssCCStruct *arg0); +void fn_1_1D8(void); +void fn_1_1FDC(M459DllBssCCStruct *arg0); +void fn_1_2044(M459DllBssCCStruct *arg0); +void fn_1_21AC(M459DllBssCCStruct *arg0); +void fn_1_23AC(M459DllBssCCStruct *arg0); +void fn_1_25C8(M459DllBssCCStruct *arg0); +void fn_1_27C8(M459DllBssCCStruct *arg0); +void fn_1_2930(M459DllBssCCStruct *arg0); +void fn_1_2B24(M459DllBssCCStruct *arg0); +void fn_1_2F18(M459DllBssCCStruct *arg0); +void fn_1_3004(M459DllBssCCStruct *arg0); +void fn_1_338C(M459DllBssCCStruct *arg0, float arg8); +void fn_1_3700(M459DllBssCCStruct *arg0); +void fn_1_4160(M459DllBssCCStruct *arg0); +float fn_1_4210(float arg8, float arg9, float argA); +void fn_1_4314(s32 arg0, u32 arg1); +void fn_1_4530(void); +void fn_1_45EC(void); +void fn_1_4764(void); +void fn_1_47E4(void); +void fn_1_4850(void); +void fn_1_48E4(void); +void fn_1_4A74(void); +void fn_1_4B68(void); +void fn_1_4C1C(void); +void fn_1_4CD0(void); +s32 fn_1_4E54(void); +void fn_1_4E64(s32 arg0); +void fn_1_4E98(void); +void fn_1_4EAC(void); +void fn_1_4F8C(s32 arg0); +s32 fn_1_4FAC(void); +void fn_1_4FC8(void); +void fn_1_52D8(s32 arg0); +s32 fn_1_52F0(void); +s32 fn_1_5300(void); +void fn_1_5310(void); +void fn_1_535C(void); +void fn_1_5490(void); +void fn_1_556C(M459DllBss18Struct *arg0); +void fn_1_55B0(M459DllBss18Struct *arg0); +void fn_1_5A78(M459DllBss18Struct *arg0); +void fn_1_5E3C(M459DllBss18Struct *arg0); +void fn_1_5EAC(void); +void fn_1_5F40(M459DllBss7CStruct *arg0); +void fn_1_5F84(M459DllBss7CStruct *arg0); +void fn_1_6198(M459DllBss7CStruct *arg0); +void fn_1_640(void); +void fn_1_6458(M459DllBss7CStruct *arg0); +void fn_1_73C(void); +void fn_1_E78(void); + +Process *lbl_1_bss_6E4; +Process *lbl_1_bss_698[0x13]; +M459DllBss61CStruct lbl_1_bss_61C; +M459DllBssCCStruct lbl_1_bss_CC[5]; +M459DllBss7CStruct lbl_1_bss_7C[5]; +M459DllBss70Struct lbl_1_bss_70; +M459DllBss64Struct lbl_1_bss_64; +M459DllBss4CStruct lbl_1_bss_4C; +s16 lbl_1_bss_48[1]; +M459DllBss18Struct lbl_1_bss_18; +s32 lbl_1_bss_14; +s32 lbl_1_bss_10; +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +u8 lbl_1_bss_2; +s16 lbl_1_bss_0; + +static const s32 lbl_1_rodata_10[0xC] = { + DATA_MAKE_NUM(DATADIR_M459, 0x05), + DATA_MAKE_NUM(DATADIR_M459, 0x03), + DATA_MAKE_NUM(DATADIR_M459, 0x04), + DATA_MAKE_NUM(DATADIR_M459, 0x01), + DATA_MAKE_NUM(DATADIR_M459, 0x02), + DATA_MAKE_NUM(DATADIR_M459, 0x05), + DATA_MAKE_NUM(DATADIR_M459, 0x03), + DATA_MAKE_NUM(DATADIR_M459, 0x04), + DATA_MAKE_NUM(DATADIR_M459, 0x01), + DATA_MAKE_NUM(DATADIR_M459, 0x02), + DATA_MAKE_NUM(DATADIR_M459, 0x0E), + DATA_MAKE_NUM(DATADIR_M459, 0x0F), +}; +static const s32 lbl_1_rodata_40[5][6] = { + { + DATA_MAKE_NUM(DATADIR_M459, 0x28), + DATA_MAKE_NUM(DATADIR_M459, 0x29), + DATA_MAKE_NUM(DATADIR_M459, 0x2A), + DATA_MAKE_NUM(DATADIR_M459, 0x2C), + DATA_MAKE_NUM(DATADIR_M459, 0x2B), + DATA_MAKE_NUM(DATADIR_M459, 0x2D), + }, + { + DATA_MAKE_NUM(DATADIR_M459, 0x1C), + DATA_MAKE_NUM(DATADIR_M459, 0x1D), + DATA_MAKE_NUM(DATADIR_M459, 0x1E), + DATA_MAKE_NUM(DATADIR_M459, 0x20), + DATA_MAKE_NUM(DATADIR_M459, 0x1F), + DATA_MAKE_NUM(DATADIR_M459, 0x21), + }, + { + DATA_MAKE_NUM(DATADIR_M459, 0x22), + DATA_MAKE_NUM(DATADIR_M459, 0x23), + DATA_MAKE_NUM(DATADIR_M459, 0x24), + DATA_MAKE_NUM(DATADIR_M459, 0x26), + DATA_MAKE_NUM(DATADIR_M459, 0x25), + DATA_MAKE_NUM(DATADIR_M459, 0x27), + }, + { + DATA_MAKE_NUM(DATADIR_M459, 0x10), + DATA_MAKE_NUM(DATADIR_M459, 0x11), + DATA_MAKE_NUM(DATADIR_M459, 0x12), + DATA_MAKE_NUM(DATADIR_M459, 0x14), + DATA_MAKE_NUM(DATADIR_M459, 0x13), + DATA_MAKE_NUM(DATADIR_M459, 0x15), + }, + { + DATA_MAKE_NUM(DATADIR_M459, 0x16), + DATA_MAKE_NUM(DATADIR_M459, 0x17), + DATA_MAKE_NUM(DATADIR_M459, 0x18), + DATA_MAKE_NUM(DATADIR_M459, 0x1A), + DATA_MAKE_NUM(DATADIR_M459, 0x19), + DATA_MAKE_NUM(DATADIR_M459, 0x1B), + }, +}; +static const s32 lbl_1_rodata_B8[2] = { DATA_MAKE_NUM(DATADIR_M459, 0x3C), DATA_MAKE_NUM(DATADIR_M459, 0x3D) }; +static const s32 lbl_1_rodata_C0[2] = { DATA_MAKE_NUM(DATADIR_M459, 0x3A), DATA_MAKE_NUM(DATADIR_M459, 0x3B) }; +static const s32 lbl_1_rodata_C8[6] = { + DATA_MAKE_NUM(DATADIR_M459, 0x30), + DATA_MAKE_NUM(DATADIR_M459, 0x30), + DATA_MAKE_NUM(DATADIR_M459, 0x2F), + DATA_MAKE_NUM(DATADIR_M459, 0x2F), + DATA_MAKE_NUM(DATADIR_M459, 0x31), + DATA_MAKE_NUM(DATADIR_M459, 0x2E), +}; +static const s32 lbl_1_rodata_E0[1] = { DATA_MAKE_NUM(DATADIR_M459, 0x00) }; +static const s32 lbl_1_rodata_E4[8] = { + DATA_MAKE_NUM(DATADIR_M459, 0x06), + DATA_MAKE_NUM(DATADIR_M459, 0x07), + DATA_MAKE_NUM(DATADIR_M459, 0x08), + DATA_MAKE_NUM(DATADIR_M459, 0x09), + DATA_MAKE_NUM(DATADIR_M459, 0x0A), + DATA_MAKE_NUM(DATADIR_M459, 0x0B), + DATA_MAKE_NUM(DATADIR_M459, 0x0C), + DATA_MAKE_NUM(DATADIR_M459, 0x0D), +}; +static const s32 lbl_1_rodata_104[8] = { + DATA_MAKE_NUM(DATADIR_M459, 0x32), + DATA_MAKE_NUM(DATADIR_M459, 0x33), + DATA_MAKE_NUM(DATADIR_M459, 0x34), + DATA_MAKE_NUM(DATADIR_M459, 0x35), + DATA_MAKE_NUM(DATADIR_M459, 0x36), + DATA_MAKE_NUM(DATADIR_M459, 0x37), + DATA_MAKE_NUM(DATADIR_M459, 0x38), + DATA_MAKE_NUM(DATADIR_M459, 0x39), +}; +static const s32 lbl_1_rodata_124[0x63] = { 0x14, 0x13, 0x12, 0x11, 0x10, 0xF, 0xE, 0xD, 0xC, 0xB, 0xA, 9, 8, 7, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 }; + +static const s32 lbl_1_rodata_2B0[4] = {0x80000000, 0x40000000, 0x20000000, 0x10000000}; + +void ObjectSetup(void) +{ + s32 var_r31; + u32 var_r30; + + lbl_1_bss_6E4 = omInitObjMan(1, 0x2000); + omGameSysInit(lbl_1_bss_6E4); + fn_1_1D8(); + var_r30 = HuPadRumbleGet(); + if ((var_r30 & 0x80000000) != 0) { + lbl_1_bss_8 = GWGameStat.rumble; + } + else { + lbl_1_bss_8 = 0; + } + lbl_1_bss_4 = 0; + for (var_r31 = 0; var_r31 < 0x13; var_r31++) { + lbl_1_bss_698[var_r31] = NULL; + } + lbl_1_bss_698[0] = HuPrcChildCreate(fn_1_640, 0x100, 0x1000, 0, lbl_1_bss_6E4); + lbl_1_bss_698[1] = HuPrcChildCreate(fn_1_73C, 0x101, 0x3000, 0, lbl_1_bss_6E4); +} + +void fn_1_1D8(void) +{ + M459DllBssCCStruct *var_r29; + s32 var_r31; + s32 var_r30; + M459DllBss18Struct *var_r28; + s16 *var_r27; + s32 var_r26; + s16 *var_r25; + M459DllBss7CStruct *var_r24; + + for (var_r30 = 0; var_r30 < 5; var_r30++) { + var_r29 = &lbl_1_bss_CC[var_r30]; + for (var_r31 = 0; var_r31 < 0xC; var_r31++) { + if ((var_r31 >= 5) && (var_r31 <= 9)) { + var_r29->unk_62[var_r31] = Hu3DModelLink(var_r29->unk_62[var_r31 - 5]); + } + else { + var_r29->unk_62[var_r31] = Hu3DModelCreateFile(lbl_1_rodata_10[var_r31]); + } + if ((var_r31 >= 0) && (var_r31 <= 4)) { + Hu3DModelLayerSet(var_r29->unk_62[var_r31], 2); + } + else if ((var_r31 >= 5) && (var_r31 <= 9)) { + Hu3DModelLayerSet(var_r29->unk_62[var_r31], 0); + Hu3DModelAttrSet(var_r29->unk_62[var_r31], HU3D_ATTR_CULL_FRONT); + } + else { + Hu3DModelLayerSet(var_r29->unk_62[var_r31], 3); + } + if (var_r31 == 0xA) { + Hu3DModelAttrSet(var_r29->unk_62[var_r31], HU3D_ATTR_ZWRITE_OFF); + } + if ((var_r31 >= 0) && (var_r31 <= 4)) { + Hu3DModelShadowSet(var_r29->unk_62[var_r31]); + } + Hu3DModelAttrSet(var_r29->unk_62[var_r31], HU3D_ATTR_DISPOFF); + } + for (var_r26 = 0; var_r26 < 5; var_r26++) { + for (var_r31 = 0; var_r31 < 6; var_r31++) { + var_r29->unk_7A[var_r26][var_r31] = Hu3DJointMotionFile(var_r29->unk_62[var_r26], lbl_1_rodata_40[var_r26][var_r31]); + } + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r29->unk_10A[var_r31] = espEntry(lbl_1_rodata_B8[var_r31], 0, 0); + espDispOff(var_r29->unk_10A[var_r31]); + } + } + CharModelLayerSetAll(3); + for (var_r30 = 0; var_r30 < 5; var_r30++) { + var_r24 = &lbl_1_bss_7C[var_r30]; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r24->unk_0C[var_r31] = espEntry(lbl_1_rodata_C0[var_r31], 0, 0); + espDispOff(var_r24->unk_0C[var_r31]); + } + } + var_r25 = lbl_1_bss_4C.unk_00; + for (var_r30 = 0; var_r30 < 6; var_r30++) { + var_r25[var_r30] = espEntry(lbl_1_rodata_C8[var_r30], 0, 0); + } + espColorSet(var_r25[5], 0, 0, 0); + var_r27 = lbl_1_bss_48; + for (var_r30 = 0; var_r30 < 1; var_r30++) { + var_r27[var_r30] = Hu3DModelCreateFile(lbl_1_rodata_E0[var_r30]); + Hu3DModelLayerSet(var_r27[var_r30], 1); + Hu3DModelShadowMapSet(var_r27[var_r30]); + } + var_r28 = &lbl_1_bss_18; + for (var_r30 = 0; var_r30 < 8; var_r30++) { + var_r28->unk_14[var_r30] = Hu3DModelCreateFile(lbl_1_rodata_E4[var_r30]); + Hu3DModelLayerSet(var_r28->unk_14[var_r30], 2); + Hu3DModelAttrSet(var_r28->unk_14[var_r30], HU3D_ATTR_ZWRITE_OFF); + Hu3DModelAttrSet(var_r28->unk_14[var_r30], HU3D_ATTR_DISPOFF); + } + for (var_r30 = 0; var_r30 < 8; var_r30++) { + var_r28->unk_04[var_r30] = espEntry(lbl_1_rodata_104[var_r30], 0, 0); + espDispOff(var_r28->unk_04[var_r30]); + } +} + +void fn_1_640(void) +{ + s32 var_r31; + + while (omSysExitReq == 0) { + HuPrcVSleep(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + HuAudFadeOut(0x3E8); + for (var_r31 = 0; var_r31 < 0x13; var_r31++) { + if ((var_r31 != 0) && lbl_1_bss_698[var_r31]) { + HuPrcKill(lbl_1_bss_698[var_r31]); + lbl_1_bss_698[var_r31] = NULL; + } + } + HuPrcVSleep(); + omOvlReturnEx(1, 1); + HuPrcEnd(); + lbl_1_bss_698[0] = NULL; +} + +void fn_1_73C(void) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + lbl_1_bss_698[2] = HuPrcChildCreate(fn_1_E78, 0xFF, 0x1000, 0, HuPrcCurrentGet()); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_698[var_r31 + 3] = HuPrcChildCreate(fn_1_14B8, 0x102, 0x3000, 0, HuPrcCurrentGet()); + *((s32 *)&lbl_1_bss_698[var_r31 + 3]->user_data) = var_r31; + } + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_698[var_r31 + 8] = HuPrcChildCreate(fn_1_5EAC, 0x105, 0x1000, 0, HuPrcCurrentGet()); + *((s32 *)&lbl_1_bss_698[var_r31 + 8]->user_data) = var_r31; + } + lbl_1_bss_698[0x11] = HuPrcChildCreate(fn_1_5490, 0x103, 0x2000, 0, HuPrcCurrentGet()); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + fn_1_4314(var_r31, frandmod(5)); + } + lbl_1_bss_698[0xD] = HuPrcChildCreate(fn_1_4CD0, 0x200, 0x2000, 0, HuPrcCurrentGet()); + lbl_1_bss_698[0xE] = HuPrcChildCreate(fn_1_4EAC, 0x103, 0x2000, 0, HuPrcCurrentGet()); + lbl_1_bss_698[0xF] = HuPrcChildCreate(fn_1_4FC8, 0x104, 0x2000, 0, HuPrcCurrentGet()); + lbl_1_bss_698[0x10] = HuPrcChildCreate(fn_1_535C, 0x110, 0x2000, 0, HuPrcCurrentGet()); + HuPrcVSleep(); + fn_1_1204(0.0f, 90.0f, -400.0f); + fn_1_11DC(0.0f, 300.0f, 1100.0f); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_4530, 0x100, 0x4000, 0, HuPrcCurrentGet()); + + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + while (TRUE) { + lbl_1_bss_10 = frandmod(5); + var_r29 = frandmod(5); + var_r30 = frandmod(5); + if (var_r29 == var_r30) { + var_r30 = (var_r30 + 1) % 5; + } + for (var_r31 = 0; var_r31 < 5; var_r31++) { + if (var_r31 != lbl_1_bss_10) { + lbl_1_bss_7C[var_r31].unk_08 = var_r29; + } + } + lbl_1_bss_7C[lbl_1_bss_10].unk_08 = var_r30; + if (fn_1_52F0() > 0) { + for (var_r31 = 0; var_r31 < 5; var_r31++) { + fn_1_4314(var_r31, frandmod(5)); + } + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_4C1C, 0x100, 0x4000, 0, HuPrcCurrentGet()); + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + HuPrcSleep(0x3C); + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_4764, 0x100, 0x4000, 0, HuPrcCurrentGet()); + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + } + var_r28 = lbl_1_rodata_124[fn_1_52F0()] * 0x3C; + fn_1_4E64(var_r28); + lbl_1_bss_18.unk_00 = 1; + while (TRUE) { + if ((lbl_1_bss_18.unk_00 == 0) || (fn_1_4E54() <= 0)) { + break; + } + HuPrcVSleep(); + } + fn_1_4E98(); + if (lbl_1_bss_18.unk_00 != 0) { + lbl_1_bss_18.unk_00 = 2; + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_4A74, 0x100, 0x4000, 0, HuPrcCurrentGet()); + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + } + else { + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_47E4, 0x100, 0x4000, 0, HuPrcCurrentGet()); + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + if (lbl_1_bss_14 == lbl_1_bss_10) { + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_4850, 0x100, 0x4000, 0, HuPrcCurrentGet()); + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + fn_1_52D8(1); + if (fn_1_52F0() != 0x63) { + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_4B68, 0x100, 0x4000, 0, HuPrcCurrentGet()); + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + continue; + } + } + else { + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_48E4, 0x100, 0x4000, 0, HuPrcCurrentGet()); + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + } + } + break; + } + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_45EC, 0x100, 0x4000, 0, HuPrcCurrentGet()); + + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + mgRecordExtra = fn_1_52F0(); + omSysExitReq = 1; + HuPrcEnd(); + lbl_1_bss_698[1] = NULL; + lbl_1_bss_698[1] = NULL; +} + +void fn_1_E78(void) +{ + float sp8; + float var_f31; + M459DllBss61CStruct *var_r31; + + var_r31 = &lbl_1_bss_61C; + var_r31->unk_00.x = 0.0f; + var_r31->unk_00.y = 300.0f; + var_r31->unk_00.z = 1100.0f; + var_r31->unk_0C.x = 90.0f; + var_r31->unk_0C.y = -400.0f; + var_r31->unk_0C.z = 0.0f; + var_r31->unk_18 = 0.0f; + var_r31->unk_1C = 1.0f; + var_r31->unk_20 = 0.0f; + var_r31->unk_74 = 1.0f; + var_r31->unk_6C = 1.0f; + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 30.0f, 10.0f, 8000.0f, 1.2f); + while (TRUE) { + fn_1_122C(); + if (var_r31->unk_6C < 1.0f) { + var_f31 = sind((90.0f * var_r31->unk_6C)); + var_r31->unk_00.x = var_r31->unk_24 + (var_f31 * (var_r31->unk_48.x - var_r31->unk_24)); + var_r31->unk_00.y = var_r31->unk_28 + (var_f31 * (var_r31->unk_48.y - var_r31->unk_28)); + var_r31->unk_00.z = var_r31->unk_2C + (var_f31 * (var_r31->unk_48.z - var_r31->unk_2C)); + if ((var_r31->unk_6C += var_r31->unk_70) >= 1.0f) { + var_r31->unk_00 = var_r31->unk_48; + } + } + if (var_r31->unk_74 < 1.0f) { + var_f31 = sind((90.0f * var_r31->unk_74)); + var_r31->unk_0C.x = var_r31->unk_30 + (var_f31 * (var_r31->unk_54.x - var_r31->unk_30)); + var_r31->unk_0C.y = var_r31->unk_34 + (var_f31 * (var_r31->unk_54.y - var_r31->unk_34)); + var_r31->unk_0C.z = var_r31->unk_38 + (var_f31 * (var_r31->unk_54.z - var_r31->unk_38)); + if ((var_r31->unk_74 += var_r31->unk_78) >= 1.0f) { + var_r31->unk_0C = var_r31->unk_54; + } + } + Hu3DCameraPosSet(1, var_r31->unk_00.x, var_r31->unk_00.y, var_r31->unk_00.z, var_r31->unk_18, var_r31->unk_1C, var_r31->unk_20, + var_r31->unk_0C.x, var_r31->unk_0C.y, var_r31->unk_0C.z); + HuPrcVSleep(); + } +} + +void fn_1_11DC(float arg8, float arg9, float argA) +{ + M459DllBss61CStruct *var_r31 = &lbl_1_bss_61C; + var_r31->unk_00.x = arg8; + var_r31->unk_00.y = arg9; + var_r31->unk_00.z = argA; +} + +void fn_1_1204(float arg8, float arg9, float argA) +{ + M459DllBss61CStruct *var_r31 = &lbl_1_bss_61C; + var_r31->unk_0C.x = arg8; + var_r31->unk_0C.y = arg9; + var_r31->unk_0C.z = argA; +} + +void fn_1_122C(void) +{ + M459DllBss61CStruct *var_r31; + + if (lbl_1_bss_4 != 0) { + var_r31 = &lbl_1_bss_61C; + var_r31->unk_0C.x += (0.25f * HuPadStkX[0]); + var_r31->unk_0C.y += (0.25f * HuPadStkY[0]); + var_r31->unk_00.z += (0.25f * HuPadTrigL[0]); + var_r31->unk_00.z -= (0.25f * HuPadTrigR[0]); + var_r31->unk_00.x += (0.25f * HuPadSubStkX[0]); + var_r31->unk_00.y += (0.25f * HuPadSubStkY[0]); + } +} + +void fn_1_142C(void) +{ + M459DllBss61CStruct *var_r31 = &lbl_1_bss_61C; + print8(0x20, 0x40, 1.5f, "AT : x=%.2f y=%.2f z=%.2f", var_r31->unk_0C.x, var_r31->unk_0C.y, var_r31->unk_0C.z); + print8(0x20, 0x50, 1.5f, "EYE : x=%.2f y=%.2f z=%.2f", var_r31->unk_00.x, var_r31->unk_00.y, var_r31->unk_00.z); +} + +static const u8 lbl_1_rodata_31C[8] = { 9, 0xE, 0xC, 0xA, 0xB }; + +void fn_1_14B8(void) +{ + M459DllBssCCStruct *var_r31; + s32 var_r30; + s32 var_r29; + + var_r29 = (s32)HuPrcCurrentGet()->user_data; + var_r31 = &lbl_1_bss_CC[var_r29]; + var_r31->unk_00 = var_r29; + var_r31->unk_04 = 0; + var_r31->unk_0C.x = -260.0f + (130.0f * var_r29); + var_r31->unk_0C.y = 0.0f; + var_r31->unk_0C.z = 0.0f; + var_r31->unk_18 = 0.0f; + var_r31->unk_1C = 0.0f; + var_r31->unk_20 = 0.0f; + var_r31->unk_50 = 0.0f; + var_r31->unk_54 = 0.0f; + var_r31->unk_58 = 0.0f; + Hu3DMotionSet(var_r31->unk_62[var_r31->unk_08], var_r31->unk_7A[var_r31->unk_08][var_r31->unk_60 = 0]); + Hu3DModelAttrSet(var_r31->unk_62[var_r31->unk_08], HU3D_MOTATTR_LOOP); + for (var_r30 = 0; var_r30 < 5; var_r30++) { + var_r31->unk_28[var_r30] = CharModelEffectNpcInit(var_r31->unk_62[var_r30], var_r31->unk_7A[var_r30][2], 1, lbl_1_rodata_31C[var_r30]); + var_r31->unk_3C[var_r30] = CharModelEffectNpcInit(var_r31->unk_62[var_r30], var_r31->unk_7A[var_r30][1], 0, lbl_1_rodata_31C[var_r30]); + } + while (TRUE) { + switch (var_r31->unk_04) { + case 0: + fn_1_19B4(var_r31); + break; + case 1: + fn_1_1A00(var_r31); + break; + case 3: + fn_1_1FDC(var_r31); + lbl_1_bss_7C[var_r31->unk_00].unk_04 = 3; + break; + case 4: + fn_1_2044(var_r31); + break; + case 5: + fn_1_21AC(var_r31); + break; + case 6: + fn_1_23AC(var_r31); + break; + case 7: + fn_1_27C8(var_r31); + break; + case 8: + fn_1_2930(var_r31); + break; + case 9: + fn_1_2B24(var_r31); + break; + case 10: + fn_1_3004(var_r31); + break; + case 11: + fn_1_2F18(var_r31); + break; + case 12: + fn_1_25C8(var_r31); + break; + case 13: + fn_1_3700(var_r31); + break; + } + } +} + +void fn_1_1778(M459DllBssCCStruct *arg0, s16 arg1, float arg8, float arg9, u32 arg2) +{ + Hu3DMotionShiftSet(arg0->unk_62[arg0->unk_08], arg0->unk_7A[arg0->unk_08][arg0->unk_60 = arg1], arg8, arg9, arg2); + Hu3DMotionShiftSet(arg0->unk_62[arg0->unk_08 + 5], arg0->unk_7A[arg0->unk_08][arg1], arg8, arg9, arg2); + Hu3DModelScaleSet(arg0->unk_62[arg0->unk_08 + 5], 1.0f, -1.0f, 1.0f); +} + +void fn_1_189C(M459DllBssCCStruct *arg0, s16 arg1, u32 arg2) +{ + Hu3DMotionSet(arg0->unk_62[arg0->unk_08], arg0->unk_7A[arg0->unk_08][arg0->unk_60 = arg1]); + Hu3DMotionSet(arg0->unk_62[arg0->unk_08 + 5], arg0->unk_7A[arg0->unk_08][arg1]); + Hu3DModelScaleSet(arg0->unk_62[arg0->unk_08 + 5], 1.0f, -1.0f, 1.0f); + Hu3DModelAttrSet(arg0->unk_62[arg0->unk_08], arg2); + Hu3DModelAttrSet(arg0->unk_62[arg0->unk_08 + 5], arg2); +} + +void fn_1_19B4(M459DllBssCCStruct *arg0) +{ + s32 var_r30; + do { + var_r30 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + } while (arg0->unk_04 == var_r30); +} + +static const s32 lbl_1_rodata_330[5] = { 0x36, 0x44, 0x47, 0x41, 0x4C }; + +void fn_1_1A00(M459DllBssCCStruct *var_r31) +{ + Vec sp8; + float var_f31; + + s32 var_r30; + s16 var_r29; + s16 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + if (var_r31->unk_00 == 0) { + HuAudFXPlay(0x30D); + } + var_r29 = var_r31->unk_62[10]; + Hu3DModelAttrReset(var_r29, HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(var_r29, 1.0f, 1.0f, 1.0f); + Hu3DModelTPLvlSet(var_r29, 1.0f); + sp8 = var_r31->unk_0C; + for (var_r30 = 0; var_r30 < 0x28; var_r30++) { + var_f31 = sind((2.25f * var_r30)); + sp8.y = 170.0f + (350.0f - (350.0f * var_f31)); + Hu3DModelPosSet(var_r29, sp8.x, sp8.y, sp8.z); + var_r27 = var_r31->unk_04; + fn_1_4160(var_r31); + HuPrcVSleep(); + if (var_r31->unk_04 != var_r27) { + return; + } + } + if (var_r31->unk_00 == 0) { + HuAudFXPlay(0x312); + HuAudFXPlay(0x314); + } + for (var_r30 = 0; var_r30 < 0x14; var_r30++) { + var_f31 = sind((4.5f * var_r30)); + var_f31 = 1.0f - var_f31; + Hu3DModelScaleSet(var_r29, var_f31, var_f31, var_f31); + Hu3DModelTPLvlSet(var_r29, var_f31); + sp8.y = 170.0f - (2.0f * var_r30); + Hu3DModelPosSet(var_r29, sp8.x, sp8.y, sp8.z); + var_r26 = var_r31->unk_04; + fn_1_4160(var_r31); + HuPrcVSleep(); + if (var_r31->unk_04 != var_r26) { + return; + } + } + Hu3DModelAttrSet(var_r29, HU3D_ATTR_DISPOFF); + HuAudFXPlay(lbl_1_rodata_330[var_r31->unk_08]); + var_r28 = var_r31->unk_10A[0]; + sp8 = var_r31->unk_0C; + sp8.y = 200.0f; + Hu3D3Dto2D(&sp8, 1, &sp8); + espPosSet(var_r28, sp8.x, sp8.y); + espTPLvlSet(var_r28, 1.0f); + espDispOn(var_r28); + fn_1_1778(var_r31, 3, 0.0f, 8.0f, HU3D_ATTR_NONE); + for (var_r30 = 0; var_r30 < 0x3C; var_r30++) { + var_r25 = var_r31->unk_04; + fn_1_4160(var_r31); + HuPrcVSleep(); + if (var_r31->unk_04 != var_r25) { + return; + } + } + fn_1_1778(var_r31, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + for (var_r30 = 0; var_r30 <= 0xA; var_r30++) { + espTPLvlSet(var_r28, 1.0f - (0.1f * var_r30)); + var_r24 = var_r31->unk_04; + fn_1_4160(var_r31); + HuPrcVSleep(); + if (var_r31->unk_04 != var_r24) { + return; + } + } + espDispOff(var_r28); + lbl_1_bss_CC[var_r31->unk_00].unk_04 = 0; +} + +void fn_1_1FDC(M459DllBssCCStruct *arg0) +{ + s32 var_r30; + + lbl_1_bss_7C[arg0->unk_00].unk_04 = 1; + do { + var_r30 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + } while (arg0->unk_04 == var_r30); +} + +void fn_1_2044(M459DllBssCCStruct *var_r31) +{ + Vec sp8; + + s32 var_r30; + s16 var_r29; + s32 var_r28; + s32 var_r27; + + var_r29 = var_r31->unk_10A[0]; + sp8 = var_r31->unk_0C; + sp8.y = 200.0f; + Hu3D3Dto2D(&sp8, 1, &sp8); + espPosSet(var_r29, sp8.x, sp8.y); + espTPLvlSet(var_r29, 1.0f); + espDispOn(var_r29); + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + var_r28 = var_r31->unk_04; + fn_1_4160(var_r31); + HuPrcVSleep(); + if (var_r31->unk_04 != var_r28) { + return; + } + } + for (var_r30 = 0; var_r30 <= 0xA; var_r30++) { + espTPLvlSet(var_r29, 1.0f - (0.1f * var_r30)); + var_r27 = var_r31->unk_04; + fn_1_4160(var_r31); + HuPrcVSleep(); + if (var_r31->unk_04 != var_r27) { + return; + } + } + espDispOff(var_r29); + lbl_1_bss_CC[var_r31->unk_00].unk_04 = 0; +} + +void fn_1_21AC(M459DllBssCCStruct *arg0) +{ + s32 var_r30; + s32 var_r29; + s32 var_r28; + + if (lbl_1_bss_C > arg0->unk_00) { + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + arg0->unk_50 = 0.0001f; + fn_1_338C(arg0, 0.1f); + var_r29 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r29) { + return; + } + } + } + else { + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + arg0->unk_50 = -0.0001f; + fn_1_338C(arg0, 0.1f); + var_r28 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r28) { + return; + } + } + } + fn_1_1778(arg0, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; +} + +static const s32 lbl_1_rodata_36C[5] = { 0x38, 0x44, 0x47, 0x41, 0x4C }; + +void fn_1_23AC(M459DllBssCCStruct *arg0) +{ + s32 var_r30; + s32 var_r29; + s32 var_r28; + + if (lbl_1_bss_C > arg0->unk_00) { + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + arg0->unk_50 = 0.0001f; + fn_1_338C(arg0, 0.1f); + var_r29 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r29) { + return; + } + } + } + else { + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + arg0->unk_50 = -0.0001f; + fn_1_338C(arg0, 0.1f); + var_r28 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r28) { + return; + } + } + } + HuAudFXPlay(lbl_1_rodata_36C[arg0->unk_08]); + fn_1_1778(arg0, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; +} + +void fn_1_25C8(M459DllBssCCStruct *arg0) +{ + s32 var_r30; + s32 var_r29; + s32 var_r28; + + if (lbl_1_bss_C > arg0->unk_00) { + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + arg0->unk_58 = 0.0001f; + fn_1_338C(arg0, 0.1f); + var_r29 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r29) { + return; + } + } + } + else { + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + arg0->unk_58 = 0.0001f; + fn_1_338C(arg0, 0.1f); + var_r28 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r28) { + return; + } + } + } + fn_1_1778(arg0, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; +} + +void fn_1_27C8(M459DllBssCCStruct *arg0) +{ + Vec sp8; + + s32 var_r30; + s16 var_r29; + s32 var_r28; + s32 var_r27; + + var_r29 = arg0->unk_10A[1]; + sp8 = arg0->unk_0C; + sp8.y = 200.0f; + Hu3D3Dto2D(&sp8, 1, &sp8); + espPosSet(var_r29, sp8.x, sp8.y); + espTPLvlSet(var_r29, 1.0f); + espDispOn(var_r29); + for (var_r30 = 0; var_r30 < 0x3C; var_r30++) { + var_r28 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r28) { + return; + } + } + for (var_r30 = 0; var_r30 <= 0xA; var_r30++) { + espTPLvlSet(var_r29, 1.0f - (0.1f * var_r30)); + var_r27 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r27) { + return; + } + } + espDispOff(var_r29); + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; +} + +static const s32 lbl_1_rodata_380[5] = { 0x38, 0x44, 0x47, 0x41, 0x4C }; + +void fn_1_2930(M459DllBssCCStruct *arg0) +{ + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + var_r29 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r29) { + return; + } + } + for (var_r30 = 0; var_r30 < 0xF; var_r30++) { + arg0->unk_58 = 0.0001f; + fn_1_338C(arg0, 0.2f); + var_r28 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r28) { + return; + } + } + HuAudFXPlay(lbl_1_rodata_380[arg0->unk_08]); + fn_1_1778(arg0, 5, 0.0f, 8.0f, HU3D_ATTR_NONE); + for (var_r30 = 0; var_r30 < 0x8C; var_r30++) { + var_r27 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r27) { + return; + } + } + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; +} + +static const s32 lbl_1_rodata_398[5] = { 0x39, 0x43, 0x46, 0x40, 0x4B }; + +void fn_1_2B24(M459DllBssCCStruct *arg0) +{ + Vec sp8; + + s16 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r30 = arg0->unk_62[11]; + sp8 = arg0->unk_0C; + sp8.y = 80.0f; + sp8.z = -50.0f; + Hu3DModelPosSet(var_r30, sp8.x, sp8.y, sp8.z); + Hu3DMotionTimeSet(var_r30, 0.0f); + Hu3DModelAttrReset(var_r30, HU3D_ATTR_DISPOFF); + for (var_r29 = 0; var_r29 < 0x1E; var_r29++) { + var_r28 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r28) { + return; + } + } + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); + HuAudFXPlay(lbl_1_rodata_398[arg0->unk_08]); + fn_1_1778(arg0, 4, 0.0f, 8.0f, HU3D_ATTR_NONE); + while (Hu3DMotionEndCheck(arg0->unk_62[arg0->unk_08]) == 0) { + var_r27 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r27) { + return; + } + } + + if (arg0->unk_08 == 4) { + fn_1_189C(arg0, 0, HU3D_MOTATTR_LOOP); + } + else { + fn_1_1778(arg0, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; +} + +void fn_1_2F18(M459DllBssCCStruct *arg0) +{ + s32 var_r30; + s32 var_r29; + s32 var_r28; + + for (var_r30 = 0; var_r30 < (arg0->unk_00 * 8); var_r30++) { + var_r29 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r29) { + return; + } + } + while (TRUE) { + arg0->unk_50 = -8.0f; + fn_1_338C(arg0, 0.2f); + var_r28 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 == var_r28) { + if (arg0->unk_0C.x < -600.0f) { + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; + break; + } + } + else { + break; + } + } +} + +void fn_1_3004(M459DllBssCCStruct *arg0) +{ + float var_f31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + arg0->unk_0C.x = 600.0f; + arg0->unk_0C.z = 0.0f; + arg0->unk_0C.y = 0.0f; + var_f31 = -260.0f + (130.0f * arg0->unk_00); + for (var_r30 = 0; var_r30 < (arg0->unk_00 * 0x1E); var_r30++) { + var_r29 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r29) { + return; + } + } +loop_1: + arg0->unk_50 = -8.0f; + fn_1_338C(arg0, 0.2f); + if (arg0->unk_0C.x < var_f31) { + arg0->unk_0C.x = var_f31; + } + else { + var_r28 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r28) { + return; + } + goto loop_1; + } + fn_1_1778(arg0, 1, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + for (var_r30 = 0; var_r30 < 0xF; var_r30++) { + arg0->unk_58 = 0.0001f; + fn_1_338C(arg0, 0.2f); + var_r27 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r27) { + return; + } + } + arg0->unk_1C = 0.0f; + fn_1_1778(arg0, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; +} + +void fn_1_338C(M459DllBssCCStruct *arg0, float arg8) +{ + float spC; + float var_f31; + float var_f30; + float var_f29; + s16 var_r30; + + var_r30 = 0; + arg0->unk_5C = sqrtf((arg0->unk_50 * arg0->unk_50) + (arg0->unk_58 * arg0->unk_58)); + if (0.0001f <= arg0->unk_5C) { + if (10.0f <= arg0->unk_5C) { + arg0->unk_50 /= arg0->unk_5C; + arg0->unk_58 /= arg0->unk_5C; + arg0->unk_5C = 10.0f; + arg0->unk_50 = 10.0f * arg0->unk_50; + arg0->unk_58 = 10.0f * arg0->unk_58; + } + arg0->unk_1C = fn_1_4210(arg0->unk_1C, atan2d(arg0->unk_50, arg0->unk_58), arg8); + if (8.0f <= arg0->unk_5C) { + var_r30 = 2; + } + else { + var_r30 = 1; + } + } + arg0->unk_0C.x += arg0->unk_50; + arg0->unk_0C.z += arg0->unk_58; + if (arg0->unk_60 != var_r30) { + fn_1_1778(arg0, var_r30, 0.0f, 4.0f, HU3D_MOTATTR_LOOP); + } + arg0->unk_50 = 0.0f; + arg0->unk_58 = 0.0f; +} + +void fn_1_3700(M459DllBssCCStruct *arg0) +{ + s32 var_r30; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + if (lbl_1_bss_C > arg0->unk_00) { + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + arg0->unk_58 = 0.0001f; + fn_1_338C(arg0, 0.4f); + var_r25 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r25) { + return; + } + } + } + else { + for (var_r30 = 0; var_r30 < 0x1E; var_r30++) { + arg0->unk_58 = 0.0001f; + fn_1_338C(arg0, 0.4f); + var_r24 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r24) { + return; + } + } + } + fn_1_1778(arg0, 4, 0.0f, 8.0f, HU3D_ATTR_NONE); + while (Hu3DMotionEndCheck(arg0->unk_62[arg0->unk_08]) == 0) { + var_r23 = arg0->unk_04; + fn_1_4160(arg0); + HuPrcVSleep(); + if (arg0->unk_04 != var_r23) { + return; + } + } + if (arg0->unk_08 == 4) { + fn_1_189C(arg0, 0, HU3D_MOTATTR_LOOP); + } + else { + fn_1_1778(arg0, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + lbl_1_bss_CC[arg0->unk_00].unk_04 = 0; +} + +void fn_1_4160(M459DllBssCCStruct *arg0) +{ + Hu3DModelPosSet(arg0->unk_62[arg0->unk_08], arg0->unk_0C.x, arg0->unk_0C.y, arg0->unk_0C.z); + Hu3DModelPosSet(arg0->unk_62[arg0->unk_08 + 5], arg0->unk_0C.x, arg0->unk_0C.y, arg0->unk_0C.z); + Hu3DModelRotSet(arg0->unk_62[arg0->unk_08], arg0->unk_18, arg0->unk_1C, arg0->unk_20); + Hu3DModelRotSet(arg0->unk_62[arg0->unk_08 + 5], arg0->unk_18, arg0->unk_1C, arg0->unk_20); +} + +float fn_1_4210(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + + var_f31 = fmod(arg9 - arg8, 360.0); + if (0.0f > var_f31) { + var_f31 += 360.0f; + } + if (180.0f < var_f31) { + var_f31 -= 360.0f; + } + var_f30 = fmod(arg8 + (var_f31 * argA), 360.0); + if (0.0f > var_f30) { + var_f30 += 360.0f; + } + return var_f30; +} + +void fn_1_4314(s32 arg0, u32 arg1) +{ + M459DllBssCCStruct *var_r31; + s32 var_r30; + + var_r31 = &lbl_1_bss_CC[arg0]; + var_r31->unk_08 = arg1; + for (var_r30 = 0; var_r30 < 5; var_r30++) { + if (var_r30 != var_r31->unk_08) { + Hu3DModelAttrSet(var_r31->unk_62[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk_62[var_r30 + 5], HU3D_ATTR_DISPOFF); + } + Hu3DModelPosSet(var_r31->unk_62[var_r30], 0.0f, 0.0f, -1000.0f); + Hu3DModelPosSet(var_r31->unk_62[var_r30 + 5], 0.0f, 0.0f, -1000.0f); + } + Hu3DModelAttrReset(var_r31->unk_62[var_r31->unk_08], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->unk_62[var_r31->unk_08 + 5], HU3D_ATTR_DISPOFF); + fn_1_1778(var_r31, 0, 0.0f, 8.0f, HU3D_MOTATTR_LOOP); +} + +void fn_1_4530(void) +{ + s32 var_r31; + + HuPrcSleep(0x3C); + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_CC[var_r31].unk_04 = 1; + } + while (lbl_1_bss_CC->unk_04 != 0) { + HuPrcVSleep(); + } + lbl_1_bss_0 = HuAudSeqPlay(0x43); + fn_1_4F8C(0); + while (fn_1_4FAC() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_45EC(void) +{ + s32 var_r31; + s32 var_r30; + s16 var_r29; + s32 var_r28; + + HuAudSeqFadeOut(lbl_1_bss_0, 0x64); + HuAudFXPlay(0x814); + var_r28 = fn_1_5300(); + if (fn_1_52F0() > var_r28) { + fn_1_4F8C(1); + while (fn_1_4FAC() != 0) { + HuPrcVSleep(); + } + var_r30 = fn_1_52F0(); + GWMGRecordSet(0xB, var_r30); + var_r29 = MGSeqCreate(0xE, var_r30); + HuAudFXPlay(0x26); + fn_1_5310(); + while (MGSeqStatGet(var_r29) != 0) { + HuPrcVSleep(); + } + } + else { + fn_1_4F8C(1); + while (fn_1_4FAC() != 0) { + HuPrcVSleep(); + } + } + HuAudSStreamPlay(3); + if (fn_1_52F0() >= 0x63) { + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_CC[var_r31].unk_04 = 0xD; + } + while (lbl_1_bss_CC[var_r31].unk_04 == 0xD) { + HuPrcVSleep(); + } + } + HuPrcSleep(0xD2); + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_4764(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_CC[var_r31].unk_04 = 1; + } + while (lbl_1_bss_CC->unk_04 != 0) { + HuPrcVSleep(); + } + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_47E4(void) +{ + HuPrcSleep(0x1E); + HuAudFXPlay(0x30D); + lbl_1_bss_18.unk_00 = 3; + while (lbl_1_bss_18.unk_00 != 0) { + HuPrcVSleep(); + } + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_4850(void) +{ + HuAudFXPlay(9); + lbl_1_bss_CC[lbl_1_bss_14].unk_04 = 9; + while (lbl_1_bss_CC[lbl_1_bss_14].unk_04 == 9) { + HuPrcVSleep(); + } + HuPrcSleep(8); + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_48E4(void) +{ + s32 var_r31; + + lbl_1_bss_CC[lbl_1_bss_14].unk_04 = 7; + HuPrcSleep(0x1E); + lbl_1_bss_CC[lbl_1_bss_10].unk_04 = 8; + HuPrcSleep(0x50); + lbl_1_bss_C = lbl_1_bss_10; + for (var_r31 = 0; var_r31 < 5; var_r31++) { + if ((var_r31 != lbl_1_bss_10) && (var_r31 != lbl_1_bss_14)) { + lbl_1_bss_CC[var_r31].unk_04 = 6; + } + } + while (lbl_1_bss_CC[lbl_1_bss_14].unk_04 == 7) { + HuPrcVSleep(); + } + HuPrcSleep(0x1E); + lbl_1_bss_CC[lbl_1_bss_14].unk_04 = 5; + while (lbl_1_bss_CC[lbl_1_bss_14].unk_04 == 5) { + HuPrcVSleep(); + } + HuPrcSleep(0x3C); + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_4A74(void) +{ + s32 var_r31; + + lbl_1_bss_CC[lbl_1_bss_10].unk_04 = 8; + HuPrcSleep(0x6E); + lbl_1_bss_C = lbl_1_bss_10; + for (var_r31 = 0; var_r31 < 5; var_r31++) { + if (var_r31 != lbl_1_bss_10) { + lbl_1_bss_CC[var_r31].unk_04 = 5; + } + } + while (lbl_1_bss_CC[lbl_1_bss_10].unk_04 != 8) { + HuPrcVSleep(); + } + HuPrcSleep(0x3C); + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_4B68(void) +{ + s32 var_r31; + s32 var_r30; + + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_CC[var_r31].unk_04 = 0xB; + } + while (TRUE) { + var_r30 = 0; + for (var_r31 = 0; var_r31 < 5; var_r31++) { + if (lbl_1_bss_CC[var_r31].unk_04 != 0) { + var_r30++; + } + } + if (var_r30 != 0) { + HuPrcVSleep(); + } + else { + break; + } + } + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_4C1C(void) +{ + s32 var_r31; + s32 var_r30; + + for (var_r31 = 0; var_r31 < 5; var_r31++) { + lbl_1_bss_CC[var_r31].unk_04 = 0xA; + } + while (TRUE) { + var_r30 = 0; + for (var_r31 = 0; var_r31 < 5; var_r31++) { + if (lbl_1_bss_CC[var_r31].unk_04 != 0) { + var_r30++; + } + } + if (var_r30 != 0) { + HuPrcVSleep(); + } + else { + break; + } + } + lbl_1_bss_698[0x12] = NULL; + HuPrcEnd(); +} + +void fn_1_4CD0(void) +{ + M459DllBss70Struct *var_r31; + + var_r31 = &lbl_1_bss_70; + var_r31->unk_00 = 0; + var_r31->unk_08 = 0; + var_r31->unk_04 = -1; + while (TRUE) { + switch (var_r31->unk_00) { + case 4: + case 0: + break; + case 1: + if (var_r31->unk_04 == -1) { + var_r31->unk_04 = MGSeqCreate(1, var_r31->unk_08 / 60, -1, -1); + } + var_r31->unk_00 = 2; + break; + case 3: + if (var_r31->unk_04 != -1) { + MGSeqParamSet(var_r31->unk_04, 2, -1); + var_r31->unk_04 = -1; + } + var_r31->unk_00 = 0; + break; + case 2: + if ((var_r31->unk_04 != -1) && (var_r31->unk_08 > 0)) { + if (--var_r31->unk_08 <= 0) { + var_r31->unk_08 = 0; + var_r31->unk_00 = 3; + } + if ((var_r31->unk_08 % 60) == 0) { + MGSeqParamSet(var_r31->unk_04, 1, var_r31->unk_08 / 60); + } + } + break; + } + HuPrcVSleep(); + } +} + +s32 fn_1_4E54(void) +{ + return lbl_1_bss_70.unk_08; +} + +void fn_1_4E64(s32 arg0) +{ + lbl_1_bss_70.unk_08 = arg0; + lbl_1_bss_70.unk_00 = 1; +} + +void fn_1_4E84(void) +{ + lbl_1_bss_70.unk_00 = 4; +} + +void fn_1_4E98(void) +{ + lbl_1_bss_70.unk_00 = 3; +} + +void fn_1_4EAC(void) +{ + M459DllBss64Struct *var_r31; + + var_r31 = &lbl_1_bss_64; + var_r31->unk_00 = 0; + var_r31->unk_08 = -1; + while (TRUE) { + switch (var_r31->unk_00) { + case 0: + break; + case 2: + if (var_r31->unk_08 == -1) { + switch (var_r31->unk_04) { + case 0: + var_r31->unk_08 = MGSeqCreate(3, 0); + break; + case 1: + var_r31->unk_08 = MGSeqCreate(3, 1); + break; + } + } + var_r31->unk_00 = 1; + break; + case 1: + if (MGSeqStatGet(var_r31->unk_08) == 0) { + MGSeqKill(var_r31->unk_08); + var_r31->unk_08 = -1; + var_r31->unk_00 = 0; + } + break; + } + HuPrcVSleep(); + } +} + +void fn_1_4F8C(s32 arg0) +{ + lbl_1_bss_64.unk_00 = 2; + lbl_1_bss_64.unk_04 = arg0; +} + +s32 fn_1_4FAC(void) +{ + return lbl_1_bss_64.unk_00 != 0; +} + +void fn_1_4FC8(void) +{ + float var_f31; + M459DllBss4CStruct *var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r31 = &lbl_1_bss_4C; + var_r31->unk_0C = 0; + var_r31->unk_10 = (s16)GWMGRecordGet(0xB); + var_r31->unk_14 = 0; + espPosSet(var_r31->unk_00[5], 508.0f, 64.0f); + espPosSet(var_r31->unk_00[4], 488.0f, 56.0f); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + espPosSet(var_r31->unk_00[var_r30 + 2], (var_r30 * 0x10) + 0x1FC, 57.0f); + espPosSet(var_r31->unk_00[var_r30], (var_r30 * 0x10) + 0x1FC, 75.0f); + } + espTPLvlSet(var_r31->unk_00[5], 0.5f); + espPriSet(var_r31->unk_00[5], 0x65); + espPriSet(var_r31->unk_00[4], 0x64); + espPriSet(var_r31->unk_00[2], 0x64); + espPriSet(var_r31->unk_00[3], 0x64); + espPriSet(var_r31->unk_00[0], 0x64); + espPriSet(var_r31->unk_00[1], 0x64); + var_f31 = 1.0f; + while (TRUE) { + if (var_r31->unk_14 != 0) { + if (var_r28 != 0) { + var_f31 += 0.02; + var_f31 = var_f31; + if (var_f31 >= 1.2f) { + var_f31 = 1.2f; + var_r28 = 0; + } + } + else { + var_f31 -= 0.02; + var_f31 = var_f31; + if (var_f31 <= 1.0f) { + var_f31 = 1.0f; + var_r28 = 1; + } + } + espScaleSet(var_r31->unk_00[4], var_f31, var_f31); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + espScaleSet(var_r31->unk_00[var_r30 + 2], var_f31, var_f31); + } + } + var_r29 = var_r31->unk_0C; + espBankSet(var_r31->unk_00[0], var_r29 / 10); + var_r29 = var_r29 % 10; + espBankSet(var_r31->unk_00[1], var_r29); + var_r29 = var_r31->unk_10; + espBankSet(var_r31->unk_00[2], var_r29 / 10); + var_r29 = var_r29 % 10; + espBankSet(var_r31->unk_00[3], var_r29); + HuPrcVSleep(); + } +} + +void fn_1_52D8(s32 arg0) +{ + lbl_1_bss_4C.unk_0C += arg0; +} + +s32 fn_1_52F0(void) +{ + return lbl_1_bss_4C.unk_0C; +} + +s32 fn_1_5300(void) +{ + return lbl_1_bss_4C.unk_10; +} + +void fn_1_5310(void) +{ + if (lbl_1_bss_4C.unk_10 < lbl_1_bss_4C.unk_0C) { + lbl_1_bss_4C.unk_10 = lbl_1_bss_4C.unk_0C; + lbl_1_bss_4C.unk_14 = 1; + } +} + +M459DllData70Struct lbl_1_data_70 = { { 0.0f, 300.0f, 0.0f }, { 0.0f, -300.0f, -600.0f }, { 0xFF, 0xFF, 0xFF, 0xFF } }; + +void fn_1_535C(void) +{ + LightData *sp8; + s16 *var_r31; + + var_r31 = lbl_1_bss_48; + Hu3DLighInit(); + var_r31[1] = Hu3DGLightCreateV(&lbl_1_data_70.unk_00, &lbl_1_data_70.unk_0C, &lbl_1_data_70.unk_18); + Hu3DGLightInfinitytSet(var_r31[1]); + sp8 = &Hu3DGlobalLight[var_r31[1]]; + { + Vec sp24 = { 0.0f, 3000.0f, 1.0f }; + Vec sp18 = { 0.0f, 1.0f, 0.0f }; + Vec spC = { 0.0f, 0.0f, 0.0f }; + Hu3DShadowCreate(30.0f, 20.0f, 5000.0f); + Hu3DShadowTPLvlSet(0.45f); + Hu3DShadowPosSet(&sp24, &sp18, &spC); + } + Hu3DShadowTPLvlSet(0.3f); + Hu3DModelAttrSet(var_r31[0], HU3D_MOTATTR_LOOP); + while (TRUE) { + HuPrcVSleep(); + } +} + +static const s32 lbl_1_rodata_458[6][3]; + +void fn_1_5490(void) +{ + M459DllBss18Struct *var_r31; + + var_r31 = &lbl_1_bss_18; + var_r31->unk_00 = 0; + var_r31->unk_24[0] = GWPlayerCfg->pad_idx; + var_r31->unk_24[1] = GWPlayerCfg->character; + var_r31->unk_28 = GWPlayerCfg->iscom; + var_r31->unk_2C = 0x14; + lbl_1_bss_14 = 0; + lbl_1_bss_2 = var_r31->unk_24[0]; + while (TRUE) { + switch (var_r31->unk_00) { + case 0: + fn_1_556C(var_r31); + continue; + case 1: + fn_1_55B0(var_r31); + continue; + case 2: + break; + case 3: + fn_1_5A78(var_r31); + continue; + default: + continue; + } + fn_1_5E3C(var_r31); + } +} + +void fn_1_556C(M459DllBss18Struct *arg0) +{ + s32 var_r30; + + do { + var_r30 = arg0->unk_00; + HuPrcVSleep(); + } while (arg0->unk_00 == var_r30); +} + +void fn_1_55B0(M459DllBss18Struct *var_r31) +{ + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + + u8 var_r30; + s16 var_r29; + s32 var_r28; + u16 var_r27; + s32 var_r26; + M459DllBssCCStruct *var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + + lbl_1_bss_14 = 0; + var_r28 = -1; + var_r29 = var_r31->unk_04[var_r31->unk_24[1]]; + espDispOn(var_r29); + var_r23 = 0; +loop_1: + var_r30 = 0; + var_r27 = 0; + if (var_r31->unk_28 != 0) { + if (var_r31->unk_2C <= 0) { + var_r20 = lbl_1_bss_70.unk_08; + if ((var_r20 > 0xB4) && (var_r23 == 0)) { + var_r24 = frandmod(0xA); + if (var_r24 >= 5) { + var_r30 |= 1; + } + else if (var_r24 > 1) { + var_r30 |= 2; + } + else { + var_r23 = 1; + } + } + else { + if (lbl_1_bss_14 > lbl_1_bss_10) { + var_r30 |= 1; + } + else if (lbl_1_bss_14 < lbl_1_bss_10) { + var_r30 |= 2; + } + if (lbl_1_bss_14 == lbl_1_bss_10) { + var_r27 |= 0x100; + } + } + var_r31->unk_2C = 0x1E; + } + else { + var_r31->unk_2C--; + } + } + else { + var_r30 = HuPadDStkRep[var_r31->unk_24[0]]; + var_r27 = HuPadBtnDown[var_r31->unk_24[0]]; + } + if (var_r28 != -1) { + if ((var_r27 & 0x100) != 0) { + HuAudFXPlay(2); + // lbl_1_bss_7C[lbl_1_bss_14].unk_04 = 3; + // espDispOff(var_r29); + // lbl_1_bss_18.unk_00 = 0; + } + else { + if ((var_r30 & 1) != 0) { + if (--lbl_1_bss_14 < 0) { + lbl_1_bss_14 = 4; + } + HuAudFXPlay(0); + } + else if ((var_r30 & 2) != 0) { + if (++lbl_1_bss_14 >= 5) { + lbl_1_bss_14 = 0; + } + HuAudFXPlay(0); + } + goto block_30; + } + } + else { + block_30: + if (var_r28 != lbl_1_bss_14) { + var_r25 = &lbl_1_bss_CC[lbl_1_bss_14]; + sp14 = sp20; + sp20 = var_r25->unk_0C; + sp20.y = 40.0f; + espPriSet(var_r29, 0x32); + if (var_r28 == -1) { + sp14 = sp20; + } + else { + lbl_1_bss_7C[var_r28].unk_04 = 3; + } + for (var_r26 = 0; var_r26 < 4; var_r26++) { + // espPosSet(var_r29, sp8.x, sp8.y); + // lbl_1_bss_7C[lbl_1_bss_14].unk_04 = 1; + goto block_39; + } + var_f31 = sind((90.0f * (0.25f * var_r26))); + var_f31 *= var_f31 * var_f31; + sp8.x = sp14.x + (var_f31 * (sp20.x - sp14.x)); + sp8.y = sp14.y + (var_f31 * (sp20.y - sp14.y)); + sp8.z = sp14.z + (var_f31 * (sp20.z - sp14.z)); + Hu3D3Dto2D(&sp8, 1, &sp8); + espPosSet(var_r29, sp8.x, sp8.y); + var_r22 = var_r31->unk_00; + HuPrcVSleep(); + if (var_r31->unk_00 == var_r22) { } + } + else { + block_39: + var_r28 = lbl_1_bss_14; + var_r21 = var_r31->unk_00; + HuPrcVSleep(&lbl_1_bss_14); + if (var_r31->unk_00 == var_r21) { + goto loop_1; + } + } + } +} + +void fn_1_5A78(M459DllBss18Struct *arg0) +{ + Vec sp8; + float var_f31; + + s32 var_r31; + s16 var_r29; + M459DllBssCCStruct *var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + var_r28 = &lbl_1_bss_CC[lbl_1_bss_14]; + lbl_1_bss_CC[lbl_1_bss_14].unk_04 = 4; + for (var_r31 = 0; var_r31 < 0x3C; var_r31++) { + var_r27 = arg0->unk_00; + HuPrcVSleep(); + if (arg0->unk_00 != var_r27) { + return; + } + } + var_r29 = arg0->unk_14[arg0->unk_24[1]]; + Hu3DModelAttrReset(var_r29, HU3D_ATTR_DISPOFF); + Hu3DModelTPLvlSet(var_r29, 1.0f); + Hu3DModelScaleSet(var_r29, 1.0f, 1.0f, 1.0f); + sp8 = var_r28->unk_0C; + for (var_r31 = 0; var_r31 < 0x3C; var_r31++) { + var_f31 = sind((1.5000001f * var_r31)); + sp8.y = 170.0f + (350.0f - (350.0f * var_f31)); + Hu3DModelPosSet(var_r29, sp8.x, sp8.y, sp8.z); + var_r26 = arg0->unk_00; + HuPrcVSleep(); + if (arg0->unk_00 != var_r26) { + return; + } + } + for (var_r31 = 0; var_r31 < 0x14; var_r31++) { + var_f31 = sind((4.5f * var_r31)); + var_f31 = 1.0f - var_f31; + Hu3DModelScaleSet(var_r29, var_f31, var_f31, var_f31); + Hu3DModelTPLvlSet(var_r29, var_f31); + Hu3DModelRotSet(var_r29, 0.0f, 540.0f * var_f31, 0.0f); + sp8.y = 170.0f - (2.0f * var_r31); + Hu3DModelPosSet(var_r29, sp8.x, sp8.y, sp8.z); + var_r25 = arg0->unk_00; + HuPrcVSleep(); + if (arg0->unk_00 != var_r25) { + return; + } + } + Hu3DModelAttrSet(var_r29, HU3D_ATTR_DISPOFF); + lbl_1_bss_C = lbl_1_bss_14; + for (var_r31 = 0; var_r31 < 5; var_r31++) { + if (var_r31 != lbl_1_bss_14) { + lbl_1_bss_CC[var_r31].unk_04 = 5; + } + } + for (var_r31 = 0; var_r31 < 0x78; var_r31++) { + var_r24 = arg0->unk_00; + HuPrcVSleep(); + if (arg0->unk_00 != var_r24) { + return; + } + } + lbl_1_bss_18.unk_00 = 0; +} + +void fn_1_5E3C(M459DllBss18Struct *arg0) +{ + lbl_1_bss_7C[lbl_1_bss_14].unk_04 = 3; + espDispOff(arg0->unk_04[arg0->unk_24[1]]); + lbl_1_bss_18.unk_00 = 0; +} + +void fn_1_5EAC(void) +{ + M459DllBss7CStruct *var_r31; + s32 var_r30; + + var_r30 = (s32)HuPrcCurrentGet()->user_data; + var_r31 = &lbl_1_bss_7C[var_r30]; + var_r31->unk_00 = var_r30; + var_r31->unk_04 = 0; + while (TRUE) { + switch (var_r31->unk_04) { + case 0: + fn_1_5F40(var_r31); + continue; + case 1: + fn_1_5F84(var_r31); + continue; + case 2: + fn_1_6198(var_r31); + continue; + case 3: + continue; + } + fn_1_6458(var_r31); + } +} + +void fn_1_5F40(M459DllBss7CStruct *arg0) +{ + s32 var_r30; + + do { + var_r30 = arg0->unk_04; + HuPrcVSleep(); + } while (arg0->unk_04 == var_r30); +} + +void fn_1_5F84(M459DllBss7CStruct *arg0) +{ + Vec sp8; + float var_f31; + + M459DllBssCCStruct *var_r27; + s16 var_r30; + s16 var_r29; + s32 var_r28; + s32 var_r26; + + var_r29 = arg0->unk_0C[1]; + var_r30 = arg0->unk_0C[0]; + var_r27 = &lbl_1_bss_CC[arg0->unk_00]; + sp8 = var_r27->unk_0C; + sp8.y = 200.0f; + Hu3D3Dto2D(&sp8, 1, &sp8); + espPosSet(var_r29, sp8.x, sp8.y); + espPosSet(var_r30, sp8.x, sp8.y); + espScaleSet(var_r30, 0.0f, 0.0f); + espPriSet(var_r29, 0x32); + espPriSet(var_r30, 0x31); + if (lbl_1_bss_8 == 0) { + espScaleSet(var_r29, 1.0f, 1.0f); + espScaleSet(var_r30, 0.5f, 0.5f); + espDispOn(var_r29); + espDispOn(var_r30); + } + var_f31 = 0.0f; + for (var_r28 = 0; var_r28 < 0xA; var_r28++) { + espTPLvlSet(var_r29, var_f31); + espTPLvlSet(var_r30, var_f31); + var_f31 = 0.08f * var_r28; + var_r26 = arg0->unk_04; + HuPrcVSleep(); + if (arg0->unk_04 != var_r26) { + return; + } + } + espTPLvlSet(var_r29, 0.8f); + espTPLvlSet(var_r30, 0.8f); + lbl_1_bss_7C[arg0->unk_00].unk_04 = 2; +} + +static const s32 lbl_1_rodata_458[6][3] = { + { 0, 0xF, 0xF }, + { 1, 0xA, 0xA }, + { 1, 0x14, 5 }, + { 2, 0x14, 0xA }, + { 2, 5, 0xA }, + { 0x3F000000, 0x3F000000, 0x3F000000 }, +}; + +void fn_1_6198(M459DllBss7CStruct *var_r31) +{ + float var_f31; + float var_f30; + s32 var_r30; + s32 var_r29; + s16 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + var_r28 = var_r31->unk_0C[0]; + var_r27 = lbl_1_rodata_458[var_r31->unk_08][0]; + var_r29 = lbl_1_rodata_458[var_r31->unk_08][1]; + var_r26 = lbl_1_rodata_458[var_r31->unk_08][2]; + while (TRUE) { + if (lbl_1_bss_8 != 0) { + switch (var_r27) { + case 0: + omVibrate(0, var_r29, 6, 6); + break; + case 1: + omVibrate(0, var_r29, 4, 2); + break; + case 2: + omVibrate(0, var_r29, 0xC, 0); + break; + } + } + switch (var_r27) { + case 0: + var_f30 = 0.4f; + break; + case 1: + var_f30 = 0.55f; + break; + case 2: + var_f30 = 0.7f; + break; + } + for (var_r30 = 0; var_r30 < var_r29; var_r30++) { + var_f31 = var_r30 * (var_f30 * (1.0f / var_r29)); + var_f31 += 0.5f; + espScaleSet(var_r28, var_f31, var_f31); + var_r25 = var_r31->unk_04; + HuPrcVSleep(); + if (var_r31->unk_04 != var_r25) { + return; + } + } + + for (var_r30 = 0; var_r30 < var_r26; var_r30++) { + var_f31 = var_f30 - (var_r30 * (var_f30 * (1.0f / var_r26))); + var_f31 += 0.5f; + espScaleSet(var_r28, var_f31, var_f31); + var_r24 = var_r31->unk_04; + HuPrcVSleep(); + if (var_r31->unk_04 != var_r24) { + return; + } + } + } +} + +void fn_1_6458(M459DllBss7CStruct *arg0) +{ + float var_f31; + s32 var_r30; + s16 var_r29; + s16 var_r28; + s32 var_r27; + + var_r29 = arg0->unk_0C[1]; + var_r28 = arg0->unk_0C[0]; + if (lbl_1_bss_8 != 0) { + HuPadRumbleStop(lbl_1_bss_2); + } + var_f31 = 0.8f; + for (var_r30 = 0; var_r30 < 0xA; var_r30++) { + espTPLvlSet(var_r29, var_f31); + espTPLvlSet(var_r28, var_f31); + var_f31 = 0.8f - (0.08f * var_r30); + var_r27 = arg0->unk_04; + HuPrcVSleep(); + if (arg0->unk_04 != var_r27) { + return; + } + } + espDispOff(var_r29); + espDispOff(var_r28); + lbl_1_bss_7C[arg0->unk_00].unk_04 = 0; +} From 9f21fff0bd5b4ca8cf3de116a7f68f3ff051c4ca Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Wed, 11 Dec 2024 01:50:31 +0100 Subject: [PATCH 193/311] Renamed VERSION_JPN to VERSION_JP Added the new game versions to the readme --- README.md | 3 +++ include/ovl_table.h | 2 +- include/version.h | 6 +++--- src/game/board/main.c | 2 +- src/game/board/player.c | 6 +++--- src/game/gamework.c | 4 ++-- src/game/minigame_seq.c | 36 ++++++++++++++++++------------------ src/game/saveload.c | 6 +++--- src/game/sreset.c | 2 +- src/game/window.c | 24 ++++++++++++------------ 10 files changed, 47 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index 26c49ce7..3415a3d7 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,9 @@ Supported versions: - `GMPE01_00`: Rev 0 (USA) - `GMPE01_01`: Rev 1 (USA) +- `GMPP01_00`, Rev 0 (PAL) +- `GMPP01_02`, REV 2 (PAL) +- `GMPJ01_00`, REV 0 (JP) Dependencies ============ diff --git a/include/ovl_table.h b/include/ovl_table.h index fcf4747c..fe695ea9 100644 --- a/include/ovl_table.h +++ b/include/ovl_table.h @@ -71,7 +71,7 @@ OVL_DEFINE(OVL_M461, "dll/m461dll.rel") OVL_DEFINE(OVL_M462, "dll/m462dll.rel") OVL_DEFINE(OVL_M463, "dll/m463dll.rel") OVL_DEFINE(OVL_MENT, "dll/mentdll.rel") -#if VERSION_JPN +#if VERSION_JP OVL_DEFINE(OVL_MGMODE, "dll/mgmodedll.rel") OVL_DEFINE(OVL_MODELTEST, "dll/modeltestdll.rel") OVL_DEFINE(OVL_MODESEL, "dll/modeseldll.rel") diff --git a/include/version.h b/include/version.h index 379389bb..209a7d53 100644 --- a/include/version.h +++ b/include/version.h @@ -5,14 +5,14 @@ #define VERSION_NO_ENG1 1 #define VERSION_NO_PAL0 2 #define VERSION_NO_PAL2 3 -#define VERSION_NO_JAP 4 +#define VERSION_NO_JP 4 #define VERSION_ENG (VERSION == VERSION_NO_ENG0 || VERSION == VERSION_NO_ENG1) #define VERSION_PAL (VERSION == VERSION_NO_PAL0 || VERSION == VERSION_NO_PAL2) -#define VERSION_JPN (VERSION == VERSION_NO_JAP) +#define VERSION_JP (VERSION == VERSION_NO_JP) #define VERSION_NTSC (!VERSION_PAL) -#define VERSION_REV0 (VERSION == VERSION_NO_ENG0 || VERSION == VERSION_NO_PAL0 || VERSION == VERSION_NO_JAP) +#define VERSION_REV0 (VERSION == VERSION_NO_ENG0 || VERSION == VERSION_NO_PAL0 || VERSION == VERSION_NO_JP) #define VERSION_REV1 (!VERSION_REV0) #if VERSION_PAL diff --git a/src/game/board/main.c b/src/game/board/main.c index a1a904e3..119780c2 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -1988,7 +1988,7 @@ void BoardLast5GfxInit(void) } else { prio = 1400; } -#if !VERSION_JPN +#if !VERSION_JP spr_file = last5GfxSprTbl[i]; if(i == 2 && work->is_last && GWLanguageGet() != 0) { spr_file = DATA_MAKE_NUM(DATADIR_BOARD, 98); diff --git a/src/game/board/player.c b/src/game/board/player.c index c73efa85..c54b318e 100644 --- a/src/game/board/player.c +++ b/src/game/board/player.c @@ -137,7 +137,7 @@ static s32 bowserSuitCharMdlTbl[] = { static s32 bowserSuitMotTbl[] = { DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x19), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1A), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1B), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1E), DATA_MAKE_NUM(DATADIR_BKOOPASUIT, 0x1F) }; -#if VERSION_JPN +#if VERSION_JP static s32 sparkMotTbl[] = { DATA_MAKE_NUM(DATADIR_BOARD, 0x94), DATA_MAKE_NUM(DATADIR_BOARD, 0x95), @@ -2512,7 +2512,7 @@ static s32 DoSparkSpace(s32 player, s32 pause_cam) BoardCameraMotionWait(); BoardCameraTargetPlayerSet(player); BoardPlayerIdleSet(player); - temp_r28 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, VERSION_JPN ? 0x73 : 0x74), NULL, 0); + temp_r28 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, VERSION_JP ? 0x73 : 0x74), NULL, 0); BoardModelMotionStart(temp_r28, 0, 0x40000002); BoardModelMotionTimeSet(temp_r28, 30.0f); BoardModelAttrSet(temp_r28, 0x40000002); @@ -2520,7 +2520,7 @@ static s32 DoSparkSpace(s32 player, s32 pause_cam) BoardModelScaleSet(temp_r28, 2.0f, 2.0f, 2.0f); BoardModelVisibilitySet(temp_r28, 0); BoardModelLayerSet(temp_r28, 1); - sp2E = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, VERSION_JPN ? 0x66 : 0x67), NULL, 0); + sp2E = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, VERSION_JP ? 0x66 : 0x67), NULL, 0); BoardModelLayerSet(sp2E, 1); BoardModelMotionStart(sp2E, 0, 0); HuAudFXPlay(796); diff --git a/src/game/gamework.c b/src/game/gamework.c index 2a074800..68c1783c 100644 --- a/src/game/gamework.c +++ b/src/game/gamework.c @@ -54,7 +54,7 @@ void GWInit(void) _InitFlag(); GWErase(); InitPlayerConfig(); -#if VERSION_JPN +#if VERSION_JP GWGameStat.language = 0; #elif VERSION_ENG GWGameStat.language = 1; @@ -131,7 +131,7 @@ void GWGameStatReset(void) GameStat *game_stat = &GWGameStatDefault; memset(game_stat, 0, sizeof(GameStat)); game_stat->unk_00 = 0; -#if VERSION_JPN +#if VERSION_JP game_stat->language = 0; #elif VERSION_ENG game_stat->language = 1; diff --git a/src/game/minigame_seq.c b/src/game/minigame_seq.c index ee3d52df..1bdf7b50 100644 --- a/src/game/minigame_seq.c +++ b/src/game/minigame_seq.c @@ -808,7 +808,7 @@ static s32 SeqMakeWord(SeqWork *work, char *str, s16 flags) s16 x; s16 i; s16 grp_idx; -#if VERSION_JPN +#if VERSION_JP char *str_ptr; AnimData **char_anim; s16 *char_pos; @@ -832,7 +832,7 @@ static s32 SeqMakeWord(SeqWork *work, char *str, s16 flags) x = 0; len = 0; while (*str_ptr != '\0') { -#if VERSION_JPN +#if VERSION_JP if (*str_ptr == ' ') { x += 56; } @@ -876,26 +876,26 @@ static AnimData *SeqLoadFontChar(char *str, s16 flags) if (c == 222 || c == 223) { return NULL; } -#if !VERSION_JPN +#if !VERSION_JP if (c == 32) { return HuSprAnimRead(SeqReadFile(DATA_MAKE_NUM(DATADIR_GAMEMES, 10))); } #endif for (id = 0, list = seqFontAlphaTbl; *list != 0; id++, list++) { if (*list == c) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 20 : 21)); + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JP ? 20 : 21)); return HuSprAnimRead(SeqReadFile(data_num)); } } for (id = 0, list = seqFontNumTbl; *list != 0; id++, list++) { if (*list == c) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 10 : 11)); + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JP ? 10 : 11)); return HuSprAnimRead(SeqReadFile(data_num)); } } for (id = 0, list = seqPunctTbl; *list != 0; id++, list++) { if (*list == c) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 153 : 154)); + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JP ? 153 : 154)); return HuSprAnimRead(SeqReadFile(data_num)); } } @@ -916,10 +916,10 @@ static AnimData *SeqLoadFontChar(char *str, s16 flags) while (*list != 0) { if (*list == c) { if (flags & 0x1) { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 155 : 156)); + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JP ? 155 : 156)); } else { - data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JPN ? 72 : 73)); + data_num = DATA_MAKE_NUM(DATADIR_GAMEMES, id + (VERSION_JP ? 72 : 73)); } return HuSprAnimRead(SeqReadFile(data_num)); } @@ -2685,7 +2685,7 @@ static char *winCharNameTbl[] = { "ワリオ", "WARIO", "ドンキー", - VERSION_JPN ? "DK" : " DK ", + VERSION_JP ? "DK" : " DK ", "デイジー", "DAISY", "ワルイージ", @@ -2695,21 +2695,21 @@ static char *winCharNameTbl[] = { "キノピオ", "TOAD", "ヘイホー", - VERSION_JPN ? "HEHOH" : "SHY GUY", + VERSION_JP ? "HEHOH" : "SHY GUY", "テレサ", - VERSION_JPN ? "TERETHA" : "BOO", + VERSION_JP ? "TERETHA" : "BOO", "ノコノコ", - VERSION_JPN ? "NOKONOKO" : "KOOPA", + VERSION_JP ? "NOKONOKO" : "KOOPA", "ミニクッパ", VERSION_NTSC ? (VERSION_ENG ? "KOOPA KID" : "BABYBOWSER") : "MINI BOWSER", "クリボー", - VERSION_JPN ? "KURIBO" : "GOOMBA", + VERSION_JP ? "KURIBO" : "GOOMBA", }; static char *winWordTbl[] = { "カチ", "WON!", "ハイボク", "LOSE", "ユウショウ!", "CHAMPION!" }; static s16 winPosOfs[][5][2] = { - { { VERSION_JPN ? 144 : 114, 0 }, { -144, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, + { { VERSION_JP ? 144 : 114, 0 }, { -144, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } }, { { 0, 35 }, { -144, -35 }, { 144, -35 }, { 0, 0 }, { 0, 0 } }, { { 0, 105 }, { 0, -105 }, { -144, 0 }, { 144, 0 }, { 0, 0 } }, { { 0, 105 }, { -144, -105 }, { 144, -105 }, { -144, 0 }, { 144, 0 } }, @@ -2745,15 +2745,15 @@ s32 MGSeqInitWin(SeqWork *work, va_list params) } } word_grp = SeqMakeWord(work, winWordTbl[word_idx], GET_WIN_KANAF()); - winnerNameW[0] = work->word_len * (VERSION_JPN ? 56 : 50); -#if !VERSION_JPN + winnerNameW[0] = work->word_len * (VERSION_JP ? 56 : 50); +#if !VERSION_JP for (i = 0; i < work->word_len; i++) { HuSprPosSet(work->spr_grp[word_grp], i, 25.0f + ((i * 50) - (0.5f * (work->word_len * 50))), 0.0f); HuSprAttrSet(work->spr_grp[word_grp], i, HUSPR_ATTR_LINEAR); } #endif num_winners = 0; -#if !VERSION_JPN +#if !VERSION_JP work->win_scale = 1.0f; #endif for (j = 0; j < 4; j++) { @@ -2855,7 +2855,7 @@ s32 MGSeqInitWin(SeqWork *work, va_list params) work->type = 0; for (j = 0; j < num_winners + 1; j++) { if (num_winners == 1) { -#if VERSION_JPN +#if VERSION_JP word_x = 32 + (winnerNameW[1] + winnerNameW[0]); #else word_x = 32.0f + ((float)winnerNameW[0] + (winnerNameW[1] * work->win_scale)); diff --git a/src/game/saveload.c b/src/game/saveload.c index f756d77e..df1e5d6e 100644 --- a/src/game/saveload.c +++ b/src/game/saveload.c @@ -35,7 +35,7 @@ s32 saveExecF; u8 curBoxNo; s16 curSlotNo; -#if VERSION_JPN +#if VERSION_JP static u8 commentTbl[2][32] = { "マリオパーティ4", "??月??日 データ?です。" }; static u8 sjisNumTbl[20] = "0123456789"; #else @@ -48,7 +48,7 @@ s32 SaveEnableF = 1; static char *SlotNameTbl[] = { "A", "B" }; -#if VERSION_JPN +#if VERSION_JP static char *slotIconMesTbl[] = { "\x0E\x16", "\x0E\x17" }; static u8 sjisSpace[] = " "; #endif @@ -498,7 +498,7 @@ s32 SLSave(void) #define SAVEWIN_POS 120 #endif -#if VERSION_JPN +#if VERSION_JP #define SAVEWIN_MESS slotIconMesTbl #else #define SAVEWIN_MESS SlotNameTbl diff --git a/src/game/sreset.c b/src/game/sreset.c index 44679b73..10d49ef4 100644 --- a/src/game/sreset.c +++ b/src/game/sreset.c @@ -22,7 +22,7 @@ extern s32 HuDvdErrWait; static s32 SR_PreRstChk[4] = {}; -#if VERSION_JPN +#if VERSION_JP static s32 padding[4] = {}; #endif diff --git a/src/game/window.c b/src/game/window.c index c4806b31..ac3be92e 100644 --- a/src/game/window.c +++ b/src/game/window.c @@ -91,7 +91,7 @@ u8 charWETbl[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0 17, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }; -#elif VERSION_JPN +#elif VERSION_JP u8 charWETbl[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 8, 11, 12, 13, 12, 11, 11, 12, 11, 18, 20, 12, 12, 11, 14, 8, 13, 12, 12, 12, 12, 12, 12, 12, 9, 11, 12, 11, 15, 12, 13, 12, 13, 12, 12, 11, 12, 11, 15, 12, 13, 11, 12, 6, 8, 8, 12, 20, 12, 11, 12, 11, 11, 9, 12, 11, 4, 8, 11, 4, 14, 11, 12, 11, 12, 9, 11, 9, 11, 11, 15, @@ -257,7 +257,7 @@ s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame) sprite_ptr->work[0] = window_id; HuSprGrpMemberSet(group, 1, sprite); window->num_chars = 0; -#if VERSION_JPN +#if VERSION_JP window->max_chars = (w / 20) * (h / 24) * 3; #else window->max_chars = (w / 8) * (h / 24) * 4; @@ -290,7 +290,7 @@ s16 HuWinCreate(float x, float y, s16 w, s16 h, s16 frame) window->scissor_h = 0x1E0; window->tab_w = 24; window->push_key = 0x300; -#if !VERSION_JPN +#if !VERSION_JP window->key_auto = 0; #endif if (frame == 0 || frame == 2) { @@ -425,12 +425,12 @@ static void MesDispFunc(HuSprite *sprite) MTXConcat(*sprite->group_mtx, modelview, modelview); GXLoadPosMtxImm(modelview, 0); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); - HuSprTexLoad(fontAnim, 0, 0, GX_CLAMP, GX_CLAMP, VERSION_JPN ? GX_NEAR : GX_LINEAR); + HuSprTexLoad(fontAnim, 0, 0, GX_CLAMP, GX_CLAMP, VERSION_JP ? GX_NEAR : GX_LINEAR); GXBegin(GX_QUADS, GX_VTXFMT0, window->num_chars * 4); char_uv_h = (LanguageNo == 0) ? (24.0f / 408.0f) : (24.0f / 312.0f); for (i = 0; i < window->num_chars; i++) { char_w = fontWidthP[window->char_data[i].character + 48]; -#if VERSION_JPN +#if VERSION_JP uv_minx = 0.003125 + (20.0f / 320.0f) * (window->char_data[i].character % 16); #else uv_minx = (20.0f / 320.0f) * (window->char_data[i].character % 16); @@ -605,9 +605,9 @@ static void HuWinDrawMes(s16 window) s16 color; s16 mess_w; - window_ptr->mess_time += VERSION_JPN ? 1 : 3; + window_ptr->mess_time += VERSION_JP ? 1 : 3; while (window_ptr->mess_time >= window_ptr->speed || (window_ptr->attr & 0x2000)) { -#if VERSION_JPN +#if VERSION_JP window_ptr->mess_time = 0; #else window_ptr->mess_time -= window_ptr->speed; @@ -634,7 +634,7 @@ static void HuWinDrawMes(s16 window) } window_ptr->mess_stackptr--; window_ptr->mess = window_ptr->mess_stack[window_ptr->mess_stackptr]; -#if !VERSION_JPN +#if !VERSION_JP window_ptr->mess_time = 0; #endif break; @@ -1108,14 +1108,14 @@ static void HuWinChoice(WindowData *window) window->choice = choice_next; HuAudFXPlay(0); } - else if (key & (VERSION_JPN ? PAD_BUTTON_A : (window->key_auto | PAD_BUTTON_A))) { + else if (key & (VERSION_JP ? PAD_BUTTON_A : (window->key_auto | PAD_BUTTON_A))) { HuAudFXPlay(2); window->key_down = key; window->stat = 0; } else if ((key & PAD_BUTTON_B) && !(window->attr & 0x10)) { HuAudFXPlay(3); -#if !VERSION_JPN +#if !VERSION_JP window->key_down = key; #else (void)key; // hack to match Japanese version @@ -1324,7 +1324,7 @@ void HuWinMesSet(s16 window, u32 mess) window_ptr->mess = MessData_MesPtrGet(messDataPtr, mess); if (window_ptr->mess == 0) { OSReport("Error: No Message data\n"); -#if !VERSION_JPN +#if !VERSION_JP HuWinMesSet(window, 0); return; #endif @@ -1335,7 +1335,7 @@ void HuWinMesSet(s16 window, u32 mess) } if (!(window_ptr->attr & 0x80)) { window_ptr->mess_color = 7; -#if !VERSION_JPN +#if !VERSION_JP window_ptr->mess_time = 0; #endif } From b5c05240c0e8d08dd5598980413a790202726b75 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Wed, 11 Dec 2024 01:52:44 +0100 Subject: [PATCH 194/311] Set m435Dll matching only for US --- configure.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.py b/configure.py index c748d7c4..e1abca70 100644 --- a/configure.py +++ b/configure.py @@ -1108,8 +1108,8 @@ config.libs = [ Rel( "m435Dll", # Darts of Doom objects={ - Object(Matching, "REL/m435Dll/main.c"), - Object(Matching, "REL/m435Dll/sequence.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m435Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m435Dll/sequence.c"), }, ), Rel( From 9ddf82f14ed8cdd8d54f0b601d50bcae2ba4654d Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sat, 14 Dec 2024 22:42:43 +0100 Subject: [PATCH 195/311] Port boards to JP --- config/GMPJ01_00/config.yml | 36 +- config/GMPJ01_00/rels/m435Dll/splits.txt | 7 - config/GMPJ01_00/rels/m435Dll/symbols.txt | 471 ------------ config/GMPJ01_00/rels/safDll/splits.txt | 6 + config/GMPJ01_00/rels/w01Dll/splits.txt | 7 - config/GMPJ01_00/rels/w01Dll/symbols.txt | 469 ------------ config/GMPJ01_00/rels/w02Dll/splits.txt | 7 - config/GMPJ01_00/rels/w02Dll/symbols.txt | 456 ----------- config/GMPJ01_00/rels/w03Dll/splits.txt | 7 - config/GMPJ01_00/rels/w03Dll/symbols.txt | 443 ----------- config/GMPJ01_00/rels/w04Dll/splits.txt | 40 + config/GMPJ01_00/rels/w04Dll/symbols.txt | 872 +++++++++++----------- config/GMPJ01_00/rels/w05Dll/splits.txt | 7 - config/GMPJ01_00/rels/w05Dll/symbols.txt | 356 --------- config/GMPJ01_00/rels/w06Dll/splits.txt | 7 - config/GMPJ01_00/rels/w06Dll/symbols.txt | 373 --------- config/GMPJ01_00/rels/w10Dll/splits.txt | 7 - config/GMPJ01_00/rels/w10Dll/symbols.txt | 114 --- config/GMPJ01_00/rels/w20Dll/splits.txt | 7 - config/GMPJ01_00/rels/w20Dll/symbols.txt | 27 - config/GMPJ01_00/rels/w21Dll/splits.txt | 6 - config/GMPJ01_00/rels/w21Dll/symbols.txt | 18 - config/GMPJ01_00/symbols.txt | 2 +- config/GMPP01_02/rels/w04Dll/splits.txt | 7 + config/GMPP01_02/rels/w04Dll/symbols.txt | 399 ++++++++++ configure.py | 86 +-- src/REL/w01Dll/mg_item.c | 26 +- src/REL/w02Dll/mg_item.c | 34 +- src/REL/w03Dll/mg_item.c | 34 +- src/REL/w04Dll/big_boo.c | 2 +- src/REL/w04Dll/mg_item.c | 34 +- src/REL/w05Dll/mg_item.c | 34 +- src/REL/w06Dll/bowser.c | 8 +- 33 files changed, 1060 insertions(+), 3349 deletions(-) delete mode 100644 config/GMPJ01_00/rels/m435Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m435Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/w01Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/w01Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/w02Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/w02Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/w03Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/w03Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/w05Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/w05Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/w06Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/w06Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/w10Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/w10Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/w20Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/w20Dll/symbols.txt delete mode 100644 config/GMPJ01_00/rels/w21Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/w21Dll/symbols.txt create mode 100644 config/GMPP01_02/rels/w04Dll/splits.txt create mode 100644 config/GMPP01_02/rels/w04Dll/symbols.txt diff --git a/config/GMPJ01_00/config.yml b/config/GMPJ01_00/config.yml index 3d774ecc..f074a33e 100644 --- a/config/GMPJ01_00/config.yml +++ b/config/GMPJ01_00/config.yml @@ -214,8 +214,8 @@ modules: links: [] - object: files/dll/m435Dll.rel - symbols: config/GMPJ01_00/rels/m435Dll/symbols.txt - splits: config/GMPJ01_00/rels/m435Dll/splits.txt + symbols: config/GMPE01_00/rels/m435Dll/symbols.txt + splits: config/GMPE01_00/rels/m435Dll/splits.txt links: [] - object: files/dll/m436Dll.rel @@ -444,18 +444,18 @@ modules: links: [] - object: files/dll/w01Dll.rel - symbols: config/GMPJ01_00/rels/w01Dll/symbols.txt - splits: config/GMPJ01_00/rels/w01Dll/splits.txt + symbols: config/GMPE01_00/rels/w01Dll/symbols.txt + splits: config/GMPE01_00/rels/w01Dll/splits.txt links: [] - object: files/dll/w02Dll.rel - symbols: config/GMPJ01_00/rels/w02Dll/symbols.txt - splits: config/GMPJ01_00/rels/w02Dll/splits.txt + symbols: config/GMPE01_00/rels/w02Dll/symbols.txt + splits: config/GMPE01_00/rels/w02Dll/splits.txt links: [] - object: files/dll/w03Dll.rel - symbols: config/GMPJ01_00/rels/w03Dll/symbols.txt - splits: config/GMPJ01_00/rels/w03Dll/splits.txt + symbols: config/GMPE01_00/rels/w03Dll/symbols.txt + splits: config/GMPE01_00/rels/w03Dll/splits.txt links: [] - object: files/dll/w04Dll.rel @@ -464,28 +464,28 @@ modules: links: [] - object: files/dll/w05Dll.rel - symbols: config/GMPJ01_00/rels/w05Dll/symbols.txt - splits: config/GMPJ01_00/rels/w05Dll/splits.txt + symbols: config/GMPE01_00/rels/w05Dll/symbols.txt + splits: config/GMPE01_00/rels/w05Dll/splits.txt links: [] - object: files/dll/w06Dll.rel - symbols: config/GMPJ01_00/rels/w06Dll/symbols.txt - splits: config/GMPJ01_00/rels/w06Dll/splits.txt + symbols: config/GMPE01_00/rels/w06Dll/symbols.txt + splits: config/GMPE01_00/rels/w06Dll/splits.txt links: [] - object: files/dll/w10Dll.rel - symbols: config/GMPJ01_00/rels/w10Dll/symbols.txt - splits: config/GMPJ01_00/rels/w10Dll/splits.txt + symbols: config/GMPE01_00/rels/w10Dll/symbols.txt + splits: config/GMPE01_00/rels/w10Dll/splits.txt links: [] - object: files/dll/w20Dll.rel - symbols: config/GMPJ01_00/rels/w20Dll/symbols.txt - splits: config/GMPJ01_00/rels/w20Dll/splits.txt + symbols: config/GMPE01_00/rels/w20Dll/symbols.txt + splits: config/GMPE01_00/rels/w20Dll/splits.txt links: [] - object: files/dll/w21Dll.rel - symbols: config/GMPJ01_00/rels/w21Dll/symbols.txt - splits: config/GMPJ01_00/rels/w21Dll/splits.txt + symbols: config/GMPE01_00/rels/w21Dll/symbols.txt + splits: config/GMPE01_00/rels/w21Dll/splits.txt links: [] - object: files/dll/ztardll.rel diff --git a/config/GMPJ01_00/rels/m435Dll/splits.txt b/config/GMPJ01_00/rels/m435Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m435Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m435Dll/symbols.txt b/config/GMPJ01_00/rels/m435Dll/symbols.txt deleted file mode 100644 index f12299da..00000000 --- a/config/GMPJ01_00/rels/m435Dll/symbols.txt +++ /dev/null @@ -1,471 +0,0 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x1A8 -fn_1_1A8 = .text:0x000001A8; // type:function size:0x88 -fn_1_230 = .text:0x00000230; // type:function size:0x68 -fn_1_298 = .text:0x00000298; // type:function size:0x6C -fn_1_304 = .text:0x00000304; // type:function size:0x130 -fn_1_434 = .text:0x00000434; // type:function size:0x3E4 -fn_1_818 = .text:0x00000818; // type:function size:0x8C -fn_1_8A4 = .text:0x000008A4; // type:function size:0x20 -fn_1_8C4 = .text:0x000008C4; // type:function size:0x20 -fn_1_8E4 = .text:0x000008E4; // type:function size:0x48 -fn_1_92C = .text:0x0000092C; // type:function size:0x6B0 -fn_1_FDC = .text:0x00000FDC; // type:function size:0x134 -fn_1_1110 = .text:0x00001110; // type:function size:0xC4 -fn_1_11D4 = .text:0x000011D4; // type:function size:0x644 -fn_1_1818 = .text:0x00001818; // type:function size:0x24 -fn_1_183C = .text:0x0000183C; // type:function size:0x458 -fn_1_1C94 = .text:0x00001C94; // type:function size:0x1EC -fn_1_1E80 = .text:0x00001E80; // type:function size:0x1EC -fn_1_206C = .text:0x0000206C; // type:function size:0x458 -fn_1_24C4 = .text:0x000024C4; // type:function size:0x68 -fn_1_252C = .text:0x0000252C; // type:function size:0x68 -fn_1_2594 = .text:0x00002594; // type:function size:0xE8 -fn_1_267C = .text:0x0000267C; // type:function size:0x11C -fn_1_2798 = .text:0x00002798; // type:function size:0x84 -fn_1_281C = .text:0x0000281C; // type:function size:0x70 -fn_1_288C = .text:0x0000288C; // type:function size:0x38 -fn_1_28C4 = .text:0x000028C4; // type:function size:0x24 -fn_1_28E8 = .text:0x000028E8; // type:function size:0x38 -fn_1_2920 = .text:0x00002920; // type:function size:0x1D0 -fn_1_2AF0 = .text:0x00002AF0; // type:function size:0x64 -fn_1_2B54 = .text:0x00002B54; // type:function size:0xA8 -fn_1_2BFC = .text:0x00002BFC; // type:function size:0x20 -fn_1_2C1C = .text:0x00002C1C; // type:function size:0x5A0 -fn_1_31BC = .text:0x000031BC; // type:function size:0xCC -fn_1_3288 = .text:0x00003288; // type:function size:0x2D0 -fn_1_3558 = .text:0x00003558; // type:function size:0x59C -fn_1_3AF4 = .text:0x00003AF4; // type:function size:0x20 -fn_1_3B14 = .text:0x00003B14; // type:function size:0x370 -fn_1_3E84 = .text:0x00003E84; // type:function size:0x20 -fn_1_3EA4 = .text:0x00003EA4; // type:function size:0x260 -fn_1_4104 = .text:0x00004104; // type:function size:0x2C -fn_1_4130 = .text:0x00004130; // type:function size:0x5A8 -fn_1_46D8 = .text:0x000046D8; // type:function size:0x22C -fn_1_4904 = .text:0x00004904; // type:function size:0x3E8 -fn_1_4CEC = .text:0x00004CEC; // type:function size:0x11C -fn_1_4E08 = .text:0x00004E08; // type:function size:0x1AC -fn_1_4FB4 = .text:0x00004FB4; // type:function size:0x484 -fn_1_5438 = .text:0x00005438; // type:function size:0x1C8 -fn_1_5600 = .text:0x00005600; // type:function size:0x44 -fn_1_5644 = .text:0x00005644; // type:function size:0x1C18 -fn_1_725C = .text:0x0000725C; // type:function size:0x48 -fn_1_72A4 = .text:0x000072A4; // type:function size:0x384 -fn_1_7628 = .text:0x00007628; // type:function size:0x374 -fn_1_799C = .text:0x0000799C; // type:function size:0x24 -fn_1_79C0 = .text:0x000079C0; // type:function size:0xB8 -fn_1_7A78 = .text:0x00007A78; // type:function size:0xCC -fn_1_7B44 = .text:0x00007B44; // type:function size:0x1E4 -fn_1_7D28 = .text:0x00007D28; // type:function size:0x28 -fn_1_7D50 = .text:0x00007D50; // type:function size:0x24 -fn_1_7D74 = .text:0x00007D74; // type:function size:0x160 -fn_1_7ED4 = .text:0x00007ED4; // type:function size:0x37C -fn_1_8250 = .text:0x00008250; // type:function size:0x24 -fn_1_8274 = .text:0x00008274; // type:function size:0x2D0 -fn_1_8544 = .text:0x00008544; // type:function size:0x4C -fn_1_8590 = .text:0x00008590; // type:function size:0x1A4 -fn_1_8734 = .text:0x00008734; // type:function size:0x17C -fn_1_88B0 = .text:0x000088B0; // type:function size:0x598 -fn_1_8E48 = .text:0x00008E48; // type:function size:0x28 -fn_1_8E70 = .text:0x00008E70; // type:function size:0x58 -fn_1_8EC8 = .text:0x00008EC8; // type:function size:0x2C -fn_1_8EF4 = .text:0x00008EF4; // type:function size:0x40 -fn_1_8F34 = .text:0x00008F34; // type:function size:0x18 -fn_1_8F4C = .text:0x00008F4C; // type:function size:0x150 -fn_1_909C = .text:0x0000909C; // type:function size:0x6CC -fn_1_9768 = .text:0x00009768; // type:function size:0x28 -fn_1_9790 = .text:0x00009790; // type:function size:0x94 -fn_1_9824 = .text:0x00009824; // type:function size:0x28 -fn_1_984C = .text:0x0000984C; // type:function size:0x380 -fn_1_9BCC = .text:0x00009BCC; // type:function size:0x3C -fn_1_9C08 = .text:0x00009C08; // type:function size:0x180 -fn_1_9D88 = .text:0x00009D88; // type:function size:0x1F4 -fn_1_9F7C = .text:0x00009F7C; // type:function size:0x1CC -fn_1_A148 = .text:0x0000A148; // type:function size:0x370 -fn_1_A4B8 = .text:0x0000A4B8; // type:function size:0x28 -fn_1_A4E0 = .text:0x0000A4E0; // type:function size:0x190 -fn_1_A670 = .text:0x0000A670; // type:function size:0x64 -fn_1_A6D4 = .text:0x0000A6D4; // type:function size:0x1F0 -fn_1_A8C4 = .text:0x0000A8C4; // type:function size:0x338 -fn_1_ABFC = .text:0x0000ABFC; // type:function size:0x160 -fn_1_AD5C = .text:0x0000AD5C; // type:function size:0x498 -fn_1_B1F4 = .text:0x0000B1F4; // type:function size:0x634 -fn_1_B828 = .text:0x0000B828; // type:function size:0x128 -fn_1_B950 = .text:0x0000B950; // type:function size:0x298 -fn_1_BBE8 = .text:0x0000BBE8; // type:function size:0xB0 -fn_1_BC98 = .text:0x0000BC98; // type:function size:0xD8 -fn_1_BD70 = .text:0x0000BD70; // type:function size:0xB0 -fn_1_BE20 = .text:0x0000BE20; // type:function size:0xB0 -fn_1_BED0 = .text:0x0000BED0; // type:function size:0xB0 -fn_1_BF80 = .text:0x0000BF80; // type:function size:0xE4 -fn_1_C064 = .text:0x0000C064; // type:function size:0xD8 -fn_1_C13C = .text:0x0000C13C; // type:function size:0xD8 -fn_1_C214 = .text:0x0000C214; // type:function size:0xD8 -fn_1_C2EC = .text:0x0000C2EC; // type:function size:0xD8 -fn_1_C3C4 = .text:0x0000C3C4; // type:function size:0xD8 -fn_1_C49C = .text:0x0000C49C; // type:function size:0xB0 -fn_1_C54C = .text:0x0000C54C; // type:function size:0xB0 -fn_1_C5FC = .text:0x0000C5FC; // type:function size:0x168 -fn_1_C764 = .text:0x0000C764; // type:function size:0x558 -fn_1_CCBC = .text:0x0000CCBC; // type:function size:0x3A0 -fn_1_D05C = .text:0x0000D05C; // type:function size:0x43C -fn_1_D498 = .text:0x0000D498; // type:function size:0x424 -fn_1_D8BC = .text:0x0000D8BC; // type:function size:0x8D4 -fn_1_E190 = .text:0x0000E190; // type:function size:0x4E0 -fn_1_E670 = .text:0x0000E670; // type:function size:0x3E4 -fn_1_EA54 = .text:0x0000EA54; // type:function size:0x340 -fn_1_ED94 = .text:0x0000ED94; // type:function size:0x448 -fn_1_F1DC = .text:0x0000F1DC; // type:function size:0x4 -fn_1_F1E0 = .text:0x0000F1E0; // type:function size:0x18C -fn_1_F36C = .text:0x0000F36C; // type:function size:0x3C -fn_1_F3A8 = .text:0x0000F3A8; // type:function size:0x5C -fn_1_F404 = .text:0x0000F404; // type:function size:0x78 -fn_1_F47C = .text:0x0000F47C; // type:function size:0x5C -fn_1_F4D8 = .text:0x0000F4D8; // type:function size:0x5C -fn_1_F534 = .text:0x0000F534; // type:function size:0x48 -fn_1_F57C = .text:0x0000F57C; // type:function size:0x3C -fn_1_F5B8 = .text:0x0000F5B8; // type:function size:0x80 -fn_1_F638 = .text:0x0000F638; // type:function size:0x64 -fn_1_F69C = .text:0x0000F69C; // type:function size:0x5C -fn_1_F6F8 = .text:0x0000F6F8; // type:function size:0x70 -fn_1_F768 = .text:0x0000F768; // type:function size:0x48 -fn_1_F7B0 = .text:0x0000F7B0; // type:function size:0xA8 -fn_1_F858 = .text:0x0000F858; // type:function size:0x44 -fn_1_F89C = .text:0x0000F89C; // type:function size:0x5C -fn_1_F8F8 = .text:0x0000F8F8; // type:function size:0x5C -fn_1_F954 = .text:0x0000F954; // type:function size:0x4 -fn_1_F958 = .text:0x0000F958; // type:function size:0x48 -fn_1_F9A0 = .text:0x0000F9A0; // type:function size:0x4C -fn_1_F9EC = .text:0x0000F9EC; // type:function size:0x5C -fn_1_FA48 = .text:0x0000FA48; // type:function size:0x108 -fn_1_FB50 = .text:0x0000FB50; // type:function size:0x5C -fn_1_FBAC = .text:0x0000FBAC; // type:function size:0xB0 -fn_1_FC5C = .text:0x0000FC5C; // type:function size:0x208 -fn_1_FE64 = .text:0x0000FE64; // type:function size:0x30 -fn_1_FE94 = .text:0x0000FE94; // type:function size:0x98 -fn_1_FF2C = .text:0x0000FF2C; // type:function size:0x808 -fn_1_10734 = .text:0x00010734; // type:function size:0x28 -fn_1_1075C = .text:0x0001075C; // type:function size:0xD8 -fn_1_10834 = .text:0x00010834; // type:function size:0xD8 -fn_1_1090C = .text:0x0001090C; // type:function size:0x108 -fn_1_10A14 = .text:0x00010A14; // type:function size:0x408 -fn_1_10E1C = .text:0x00010E1C; // type:function size:0x404 -fn_1_11220 = .text:0x00011220; // type:function size:0x488 -fn_1_116A8 = .text:0x000116A8; // type:function size:0x45C -fn_1_11B04 = .text:0x00011B04; // type:function size:0x478 -fn_1_11F7C = .text:0x00011F7C; // type:function size:0x4 -fn_1_11F80 = .text:0x00011F80; // type:function size:0x48 -fn_1_11FC8 = .text:0x00011FC8; // type:function size:0x9C -fn_1_12064 = .text:0x00012064; // type:function size:0x1AC -fn_1_12210 = .text:0x00012210; // type:function size:0x50 -fn_1_12260 = .text:0x00012260; // type:function size:0x48 -fn_1_122A8 = .text:0x000122A8; // type:function size:0x38 -fn_1_122E0 = .text:0x000122E0; // type:function size:0x134 -fn_1_12414 = .text:0x00012414; // type:function size:0x2C -fn_1_12440 = .text:0x00012440; // type:function size:0x134 -fn_1_12574 = .text:0x00012574; // type:function size:0x48 -fn_1_125BC = .text:0x000125BC; // type:function size:0x48 -fn_1_12604 = .text:0x00012604; // type:function size:0xF0 -fn_1_126F4 = .text:0x000126F4; // type:function size:0xC0 -fn_1_127B4 = .text:0x000127B4; // type:function size:0x5C -fn_1_12810 = .text:0x00012810; // type:function size:0x48 -fn_1_12858 = .text:0x00012858; // type:function size:0x100 -fn_1_12958 = .text:0x00012958; // type:function size:0x1F8 -fn_1_12B50 = .text:0x00012B50; // type:function size:0x3C -fn_1_12B8C = .text:0x00012B8C; // type:function size:0x5C -fn_1_12BE8 = .text:0x00012BE8; // type:function size:0x3C -fn_1_12C24 = .text:0x00012C24; // type:function size:0x5C -fn_1_12C80 = .text:0x00012C80; // type:function size:0x3C -fn_1_12CBC = .text:0x00012CBC; // type:function size:0x5C -fn_1_12D18 = .text:0x00012D18; // type:function size:0x230 -fn_1_12F48 = .text:0x00012F48; // type:function size:0xF4 -fn_1_1303C = .text:0x0001303C; // type:function size:0x4C -fn_1_13088 = .text:0x00013088; // type:function size:0x128 -fn_1_131B0 = .text:0x000131B0; // type:function size:0x40 -fn_1_131F0 = .text:0x000131F0; // type:function size:0x98 -fn_1_13288 = .text:0x00013288; // type:function size:0xB0 -fn_1_13338 = .text:0x00013338; // type:function size:0xAC -fn_1_133E4 = .text:0x000133E4; // type:function size:0x30 -fn_1_13414 = .text:0x00013414; // type:function size:0x98 -fn_1_134AC = .text:0x000134AC; // type:function size:0xF4 -fn_1_135A0 = .text:0x000135A0; // type:function size:0x60 -fn_1_13600 = .text:0x00013600; // type:function size:0xD84 -fn_1_14384 = .text:0x00014384; // type:function size:0x3DC -fn_1_14760 = .text:0x00014760; // type:function size:0x254 -_prolog = .text:0x000149B4; // type:function size:0x54 scope:global -_epilog = .text:0x00014A08; // type:function size:0x4C scope:global -fn_1_14A54 = .text:0x00014A54; // type:function size:0x40C -fn_1_14E60 = .text:0x00014E60; // type:function size:0x40C -fn_1_1526C = .text:0x0001526C; // type:function size:0x28 -fn_1_15294 = .text:0x00015294; // type:function size:0x40 -fn_1_152D4 = .text:0x000152D4; // type:function size:0xC8 -fn_1_1539C = .text:0x0001539C; // type:function size:0xD8 -fn_1_15474 = .text:0x00015474; // type:function size:0x50 -fn_1_154C4 = .text:0x000154C4; // type:function size:0x5C -fn_1_15520 = .text:0x00015520; // type:function size:0x88 -fn_1_155A8 = .text:0x000155A8; // type:function size:0x74 -fn_1_1561C = .text:0x0001561C; // type:function size:0x54 -fn_1_15670 = .text:0x00015670; // type:function size:0x3C -fn_1_156AC = .text:0x000156AC; // type:function size:0x110 -fn_1_157BC = .text:0x000157BC; // type:function size:0x178 -fn_1_15934 = .text:0x00015934; // type:function size:0x1C8 -fn_1_15AFC = .text:0x00015AFC; // type:function size:0x318 -fn_1_15E14 = .text:0x00015E14; // type:function size:0x3C -fn_1_15E50 = .text:0x00015E50; // type:function size:0x4C -fn_1_15E9C = .text:0x00015E9C; // type:function size:0x314 -fn_1_161B0 = .text:0x000161B0; // type:function size:0x314 -fn_1_164C4 = .text:0x000164C4; // type:function size:0x27C -fn_1_16740 = .text:0x00016740; // type:function size:0x2B4 -fn_1_169F4 = .text:0x000169F4; // type:function size:0x530 -fn_1_16F24 = .text:0x00016F24; // type:function size:0x454 -fn_1_17378 = .text:0x00017378; // type:function size:0x48C -fn_1_17804 = .text:0x00017804; // type:function size:0x71C -fn_1_17F20 = .text:0x00017F20; // type:function size:0x4C4 -fn_1_183E4 = .text:0x000183E4; // type:function size:0x4FC -fn_1_188E0 = .text:0x000188E0; // type:function size:0x78C -fn_1_1906C = .text:0x0001906C; // type:function size:0x4C4 -fn_1_19530 = .text:0x00019530; // type:function size:0x60 -fn_1_19590 = .text:0x00019590; // type:function size:0x64 -fn_1_195F4 = .text:0x000195F4; // type:function size:0x64 -fn_1_19658 = .text:0x00019658; // type:function size:0x23C -fn_1_19894 = .text:0x00019894; // type:function size:0x64 -fn_1_198F8 = .text:0x000198F8; // type:function size:0x68 -fn_1_19960 = .text:0x00019960; // type:function size:0x8 -fn_1_19968 = .text:0x00019968; // type:function size:0xC -fn_1_19974 = .text:0x00019974; // type:function size:0x8 -fn_1_1997C = .text:0x0001997C; // type:function size:0x344 -fn_1_19CC0 = .text:0x00019CC0; // type:function size:0x190 -fn_1_19E50 = .text:0x00019E50; // type:function size:0x4EC -fn_1_1A33C = .text:0x0001A33C; // type:function size:0x110 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0xC data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:4byte -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x48 -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x20 data:4byte -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x30 data:4byte -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x30 data:4byte -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x30 data:4byte -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x8 data:4byte -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x8 data:4byte -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x8 data:4byte -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x8 data:4byte -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x24 data:4byte -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:4byte -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x24 data:4byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x8 data:4byte -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x8 data:4byte -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:4byte -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:4byte -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x8 data:4byte -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x8 data:4byte -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x10 data:4byte -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x8 data:4byte -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x8 data:4byte -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x8 data:4byte -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x8 data:4byte -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x30 data:4byte -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x64 data:4byte -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x8 data:double -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 -lbl_1_data_60 = .data:0x00000060; // type:object size:0x10 data:string -lbl_1_data_70 = .data:0x00000070; // type:object size:0x10 data:string -lbl_1_data_80 = .data:0x00000080; // type:object size:0x10 data:string -lbl_1_data_90 = .data:0x00000090; // type:object size:0x10 data:string -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x10 data:string -lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 data:string -lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x10 data:string -lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x10 data:string -lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x20 -lbl_1_data_100 = .data:0x00000100; // type:object size:0x40 -lbl_1_data_140 = .data:0x00000140; // type:object size:0xA0 -lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x4 data:4byte -lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x4 data:4byte -lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x4 data:4byte -lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x1B data:string -lbl_1_data_207 = .data:0x00000207; // type:object size:0x22 data:string -lbl_1_data_229 = .data:0x00000229; // type:object size:0x1A data:string -lbl_1_data_243 = .data:0x00000243; // type:object size:0x1A data:string -lbl_1_data_25D = .data:0x0000025D; // type:object size:0xF -lbl_1_data_26C = .data:0x0000026C; // type:object size:0x4 data:4byte -jumptable_1_data_270 = .data:0x00000270; // type:object size:0x54 scope:local -lbl_1_data_2C4 = .data:0x000002C4; // type:object size:0x4 data:float -lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x13 data:string -lbl_1_data_2DB = .data:0x000002DB; // type:object size:0x11 -jumptable_1_data_2EC = .data:0x000002EC; // type:object size:0x24 scope:local -jumptable_1_data_310 = .data:0x00000310; // type:object size:0x2C scope:local -lbl_1_data_33C = .data:0x0000033C; // type:object size:0xE data:string -lbl_1_data_34A = .data:0x0000034A; // type:object size:0x12 data:string -lbl_1_data_35C = .data:0x0000035C; // type:object size:0x14 -jumptable_1_data_370 = .data:0x00000370; // type:object size:0x30 scope:local -lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0xA8 -jumptable_1_data_448 = .data:0x00000448; // type:object size:0x1C scope:local -lbl_1_data_464 = .data:0x00000464; // type:object size:0x4 -lbl_1_data_468 = .data:0x00000468; // type:object size:0xB4 -lbl_1_data_51C = .data:0x0000051C; // type:object size:0x18 -jumptable_1_data_534 = .data:0x00000534; // type:object size:0x28 scope:local -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x8 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x18 data:4byte -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x30 -lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x18 data:4byte -lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x18 data:4byte -lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0xA8 data:4byte -lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x160 -lbl_1_bss_2A4 = .bss:0x000002A4; // type:object size:0x978 data:4byte -lbl_1_bss_C1C = .bss:0x00000C1C; // type:object size:0x14 data:4byte -lbl_1_bss_C30 = .bss:0x00000C30; // type:object size:0x1B4 data:4byte -lbl_1_bss_DE4 = .bss:0x00000DE4; // type:object size:0x24 data:4byte -lbl_1_bss_E08 = .bss:0x00000E08; // type:object size:0x80 data:4byte -lbl_1_bss_E88 = .bss:0x00000E88; // type:object size:0x4060 data:4byte -lbl_1_bss_4EE8 = .bss:0x00004EE8; // type:object size:0x20 data:4byte -lbl_1_bss_4F08 = .bss:0x00004F08; // type:object size:0x8 data:4byte -lbl_1_bss_4F10 = .bss:0x00004F10; // type:object size:0x38 data:4byte diff --git a/config/GMPJ01_00/rels/safDll/splits.txt b/config/GMPJ01_00/rels/safDll/splits.txt index 531cd645..e4b1b5df 100644 --- a/config/GMPJ01_00/rels/safDll/splits.txt +++ b/config/GMPJ01_00/rels/safDll/splits.txt @@ -5,3 +5,9 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/safDll/main.c: + .text start:0x00000000 end:0x0000052C + .rodata start:0x00000000 end:0x00000024 + .data start:0x00000000 end:0x00000070 + .bss start:0x00000000 end:0x0000030C diff --git a/config/GMPJ01_00/rels/w01Dll/splits.txt b/config/GMPJ01_00/rels/w01Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/w01Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/w01Dll/symbols.txt b/config/GMPJ01_00/rels/w01Dll/symbols.txt deleted file mode 100644 index 90f53307..00000000 --- a/config/GMPJ01_00/rels/w01Dll/symbols.txt +++ /dev/null @@ -1,469 +0,0 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x30 -_prolog = .text:0x00000030; // type:function size:0x64 scope:global -_epilog = .text:0x00000094; // type:function size:0x4C scope:global -fn_1_E0 = .text:0x000000E0; // type:function size:0x4BC -fn_1_59C = .text:0x0000059C; // type:function size:0x194 -fn_1_730 = .text:0x00000730; // type:function size:0x44 -fn_1_774 = .text:0x00000774; // type:function size:0x4 -fn_1_778 = .text:0x00000778; // type:function size:0x9C -fn_1_814 = .text:0x00000814; // type:function size:0x1D4 -fn_1_9E8 = .text:0x000009E8; // type:function size:0x318 -fn_1_D00 = .text:0x00000D00; // type:function size:0x4 -fn_1_D04 = .text:0x00000D04; // type:function size:0x550 -fn_1_1254 = .text:0x00001254; // type:function size:0x38 -fn_1_128C = .text:0x0000128C; // type:function size:0x80 -fn_1_130C = .text:0x0000130C; // type:function size:0x270 -fn_1_157C = .text:0x0000157C; // type:function size:0xF4 -fn_1_1670 = .text:0x00001670; // type:function size:0x90 -fn_1_1700 = .text:0x00001700; // type:function size:0x290 -fn_1_1990 = .text:0x00001990; // type:function size:0x148 -fn_1_1AD8 = .text:0x00001AD8; // type:function size:0x64 -fn_1_1B3C = .text:0x00001B3C; // type:function size:0x3A8 -fn_1_1EE4 = .text:0x00001EE4; // type:function size:0x48 -fn_1_1F2C = .text:0x00001F2C; // type:function size:0x78 -fn_1_1FA4 = .text:0x00001FA4; // type:function size:0x580 -fn_1_2524 = .text:0x00002524; // type:function size:0x248 -fn_1_276C = .text:0x0000276C; // type:function size:0x7AC -fn_1_2F18 = .text:0x00002F18; // type:function size:0x438 -fn_1_3350 = .text:0x00003350; // type:function size:0x1C4 -fn_1_3514 = .text:0x00003514; // type:function size:0xA0 -fn_1_35B4 = .text:0x000035B4; // type:function size:0x70 -fn_1_3624 = .text:0x00003624; // type:function size:0xFD0 -fn_1_45F4 = .text:0x000045F4; // type:function size:0x180 -fn_1_4774 = .text:0x00004774; // type:function size:0xF0 -fn_1_4864 = .text:0x00004864; // type:function size:0x50 -fn_1_48B4 = .text:0x000048B4; // type:function size:0x560 -fn_1_4E14 = .text:0x00004E14; // type:function size:0x194 -fn_1_4FA8 = .text:0x00004FA8; // type:function size:0x30 -fn_1_4FD8 = .text:0x00004FD8; // type:function size:0xFC -fn_1_50D4 = .text:0x000050D4; // type:function size:0x2E4 -fn_1_53B8 = .text:0x000053B8; // type:function size:0x84 -fn_1_543C = .text:0x0000543C; // type:function size:0x258 -fn_1_5694 = .text:0x00005694; // type:function size:0x1D8 -fn_1_586C = .text:0x0000586C; // type:function size:0xC0 -fn_1_592C = .text:0x0000592C; // type:function size:0x200 -fn_1_5B2C = .text:0x00005B2C; // type:function size:0x14 -fn_1_5B40 = .text:0x00005B40; // type:function size:0x190 -fn_1_5CD0 = .text:0x00005CD0; // type:function size:0x38 -fn_1_5D08 = .text:0x00005D08; // type:function size:0x390 -fn_1_6098 = .text:0x00006098; // type:function size:0xFC -fn_1_6194 = .text:0x00006194; // type:function size:0x25C -fn_1_63F0 = .text:0x000063F0; // type:function size:0x624 -fn_1_6A14 = .text:0x00006A14; // type:function size:0x1AC -fn_1_6BC0 = .text:0x00006BC0; // type:function size:0x3F4 -fn_1_6FB4 = .text:0x00006FB4; // type:function size:0x574 -fn_1_7528 = .text:0x00007528; // type:function size:0x2C4 -fn_1_77EC = .text:0x000077EC; // type:function size:0xA8 -fn_1_7894 = .text:0x00007894; // type:function size:0x1D0 -fn_1_7A64 = .text:0x00007A64; // type:function size:0xAC8 -fn_1_852C = .text:0x0000852C; // type:function size:0x280 -fn_1_87AC = .text:0x000087AC; // type:function size:0x34 -fn_1_87E0 = .text:0x000087E0; // type:function size:0x1A8 -fn_1_8988 = .text:0x00008988; // type:function size:0xC8 -fn_1_8A50 = .text:0x00008A50; // type:function size:0x11C -fn_1_8B6C = .text:0x00008B6C; // type:function size:0x270 -fn_1_8DDC = .text:0x00008DDC; // type:function size:0x3B0 -fn_1_918C = .text:0x0000918C; // type:function size:0xF0 -fn_1_927C = .text:0x0000927C; // type:function size:0xB0 -fn_1_932C = .text:0x0000932C; // type:function size:0x17C -fn_1_94A8 = .text:0x000094A8; // type:function size:0x14C -fn_1_95F4 = .text:0x000095F4; // type:function size:0x200 -fn_1_97F4 = .text:0x000097F4; // type:function size:0xF8 -fn_1_98EC = .text:0x000098EC; // type:function size:0x34 -fn_1_9920 = .text:0x00009920; // type:function size:0x104 -fn_1_9A24 = .text:0x00009A24; // type:function size:0x198 -fn_1_9BBC = .text:0x00009BBC; // type:function size:0x144 -fn_1_9D00 = .text:0x00009D00; // type:function size:0xD8 -fn_1_9DD8 = .text:0x00009DD8; // type:function size:0x6E0 -fn_1_A4B8 = .text:0x0000A4B8; // type:function size:0x9C -fn_1_A554 = .text:0x0000A554; // type:function size:0xA8 -fn_1_A5FC = .text:0x0000A5FC; // type:function size:0xE4 -fn_1_A6E0 = .text:0x0000A6E0; // type:function size:0x938 -fn_1_B018 = .text:0x0000B018; // type:function size:0x70 -fn_1_B088 = .text:0x0000B088; // type:function size:0x144 -fn_1_B1CC = .text:0x0000B1CC; // type:function size:0x1EC -fn_1_B3B8 = .text:0x0000B3B8; // type:function size:0xC0 -fn_1_B478 = .text:0x0000B478; // type:function size:0x680 -fn_1_BAF8 = .text:0x0000BAF8; // type:function size:0x1E4 -fn_1_BCDC = .text:0x0000BCDC; // type:function size:0x224 -fn_1_BF00 = .text:0x0000BF00; // type:function size:0x68 -fn_1_BF68 = .text:0x0000BF68; // type:function size:0x98 -fn_1_C000 = .text:0x0000C000; // type:function size:0xFC -fn_1_C0FC = .text:0x0000C0FC; // type:function size:0x160 -fn_1_C25C = .text:0x0000C25C; // type:function size:0x5E8 -fn_1_C844 = .text:0x0000C844; // type:function size:0x50 -fn_1_C894 = .text:0x0000C894; // type:function size:0xB8 -fn_1_C94C = .text:0x0000C94C; // type:function size:0x4C -fn_1_C998 = .text:0x0000C998; // type:function size:0x1AC -fn_1_CB44 = .text:0x0000CB44; // type:function size:0x380 -fn_1_CEC4 = .text:0x0000CEC4; // type:function size:0x170 -fn_1_D034 = .text:0x0000D034; // type:function size:0x48 -fn_1_D07C = .text:0x0000D07C; // type:function size:0x98 -fn_1_D114 = .text:0x0000D114; // type:function size:0x62C -fn_1_D740 = .text:0x0000D740; // type:function size:0x644 -fn_1_DD84 = .text:0x0000DD84; // type:function size:0x110 -fn_1_DE94 = .text:0x0000DE94; // type:function size:0x26C -fn_1_E100 = .text:0x0000E100; // type:function size:0x54 -fn_1_E154 = .text:0x0000E154; // type:function size:0x164 -fn_1_E2B8 = .text:0x0000E2B8; // type:function size:0x194 -fn_1_E44C = .text:0x0000E44C; // type:function size:0x4C8 -fn_1_E914 = .text:0x0000E914; // type:function size:0x3C0 -fn_1_ECD4 = .text:0x0000ECD4; // type:function size:0x1CC -fn_1_EEA0 = .text:0x0000EEA0; // type:function size:0x38 -fn_1_EED8 = .text:0x0000EED8; // type:function size:0x1C4 -fn_1_F09C = .text:0x0000F09C; // type:function size:0x2AC -fn_1_F348 = .text:0x0000F348; // type:function size:0xB0 -fn_1_F3F8 = .text:0x0000F3F8; // type:function size:0x2F0 -fn_1_F6E8 = .text:0x0000F6E8; // type:function size:0x1A8 -fn_1_F890 = .text:0x0000F890; // type:function size:0x18C -fn_1_FA1C = .text:0x0000FA1C; // type:function size:0xA0 -fn_1_FABC = .text:0x0000FABC; // type:function size:0x9C -fn_1_FB58 = .text:0x0000FB58; // type:function size:0xE4 -fn_1_FC3C = .text:0x0000FC3C; // type:function size:0xB0 -fn_1_FCEC = .text:0x0000FCEC; // type:function size:0x50 -fn_1_FD3C = .text:0x0000FD3C; // type:function size:0x108 -fn_1_FE44 = .text:0x0000FE44; // type:function size:0x8C -fn_1_FED0 = .text:0x0000FED0; // type:function size:0x14C -fn_1_1001C = .text:0x0001001C; // type:function size:0x19C -fn_1_101B8 = .text:0x000101B8; // type:function size:0x4AC -fn_1_10664 = .text:0x00010664; // type:function size:0x1BC -fn_1_10820 = .text:0x00010820; // type:function size:0x2C8 -fn_1_10AE8 = .text:0x00010AE8; // type:function size:0xC8 -fn_1_10BB0 = .text:0x00010BB0; // type:function size:0x140 -fn_1_10CF0 = .text:0x00010CF0; // type:function size:0x1C8 -fn_1_10EB8 = .text:0x00010EB8; // type:function size:0x1AC -fn_1_11064 = .text:0x00011064; // type:function size:0x420 -fn_1_11484 = .text:0x00011484; // type:function size:0x56C -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x10 data:4byte -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x8 data:4byte -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x8 data:4byte -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x2 data:2byte -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x2 data:2byte -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0xC data:2byte -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x528 -lbl_1_data_528 = .data:0x00000528; // type:object size:0x2 data:2byte -lbl_1_data_52A = .data:0x0000052A; // type:object size:0x2 data:2byte -lbl_1_data_52C = .data:0x0000052C; // type:object size:0x2 data:2byte -lbl_1_data_52E = .data:0x0000052E; // type:object size:0x2 data:2byte -lbl_1_data_530 = .data:0x00000530; // type:object size:0x2 data:2byte -lbl_1_data_534 = .data:0x00000534; // type:object size:0x8 -lbl_1_data_53C = .data:0x0000053C; // type:object size:0x8 -lbl_1_data_544 = .data:0x00000544; // type:object size:0x14 data:string -lbl_1_data_558 = .data:0x00000558; // type:object size:0x14 data:string -lbl_1_data_56C = .data:0x0000056C; // type:object size:0x14 -lbl_1_data_580 = .data:0x00000580; // type:object size:0x2 data:2byte -lbl_1_data_582 = .data:0x00000582; // type:object size:0x12 -lbl_1_data_594 = .data:0x00000594; // type:object size:0x40 -lbl_1_data_5D4 = .data:0x000005D4; // type:object size:0x4 data:4byte -lbl_1_data_5D8 = .data:0x000005D8; // type:object size:0x4 data:4byte -lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x10 -lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x7 data:string -lbl_1_data_5F3 = .data:0x000005F3; // type:object size:0x7 data:string -lbl_1_data_5FA = .data:0x000005FA; // type:object size:0xA -lbl_1_data_604 = .data:0x00000604; // type:object size:0xC -lbl_1_data_610 = .data:0x00000610; // type:object size:0x10 -lbl_1_data_620 = .data:0x00000620; // type:object size:0x5 data:string -lbl_1_data_625 = .data:0x00000625; // type:object size:0x5 data:string -lbl_1_data_62A = .data:0x0000062A; // type:object size:0x5 data:string -lbl_1_data_62F = .data:0x0000062F; // type:object size:0x4 data:string -lbl_1_data_633 = .data:0x00000633; // type:object size:0x1 data:byte -lbl_1_data_634 = .data:0x00000634; // type:object size:0x24 -lbl_1_data_658 = .data:0x00000658; // type:object size:0x24 -lbl_1_data_67C = .data:0x0000067C; // type:object size:0x14 -lbl_1_data_690 = .data:0x00000690; // type:object size:0x2D0 -lbl_1_data_960 = .data:0x00000960; // type:object size:0x2D0 -lbl_1_data_C30 = .data:0x00000C30; // type:object size:0x2D0 -lbl_1_data_F00 = .data:0x00000F00; // type:object size:0x8 -lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x38 -lbl_1_data_F40 = .data:0x00000F40; // type:object size:0x20 -lbl_1_data_F60 = .data:0x00000F60; // type:object size:0x20 -lbl_1_data_F80 = .data:0x00000F80; // type:object size:0x7 data:string -lbl_1_data_F87 = .data:0x00000F87; // type:object size:0x5 data:string -lbl_1_data_F8C = .data:0x00000F8C; // type:object size:0x5 data:string -lbl_1_data_F91 = .data:0x00000F91; // type:object size:0x5 data:string -lbl_1_data_F96 = .data:0x00000F96; // type:object size:0x6 -lbl_1_data_F9C = .data:0x00000F9C; // type:object size:0x10 data:4byte -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 data:byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte -lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 data:2byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x1 data:byte -lbl_1_bss_29 = .bss:0x00000029; // type:object size:0x1 data:byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x5A0 -lbl_1_bss_5CC = .bss:0x000005CC; // type:object size:0x2 data:2byte -lbl_1_bss_5D0 = .bss:0x000005D0; // type:object size:0x30 -lbl_1_bss_600 = .bss:0x00000600; // type:object size:0x18 -lbl_1_bss_618 = .bss:0x00000618; // type:object size:0xC data:4byte -lbl_1_bss_624 = .bss:0x00000624; // type:object size:0xC data:float -lbl_1_bss_630 = .bss:0x00000630; // type:object size:0xC data:4byte -lbl_1_bss_63C = .bss:0x0000063C; // type:object size:0x4 data:float -lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x4 data:float -lbl_1_bss_644 = .bss:0x00000644; // type:object size:0x4 data:float -lbl_1_bss_648 = .bss:0x00000648; // type:object size:0xC data:4byte -lbl_1_bss_654 = .bss:0x00000654; // type:object size:0xC data:float -lbl_1_bss_660 = .bss:0x00000660; // type:object size:0xC data:float -lbl_1_bss_66C = .bss:0x0000066C; // type:object size:0x4 data:float -lbl_1_bss_670 = .bss:0x00000670; // type:object size:0x4 data:float -lbl_1_bss_674 = .bss:0x00000674; // type:object size:0x4 data:float -lbl_1_bss_678 = .bss:0x00000678; // type:object size:0x30 -lbl_1_bss_6A8 = .bss:0x000006A8; // type:object size:0x4 data:float -lbl_1_bss_6AC = .bss:0x000006AC; // type:object size:0x2 data:2byte -lbl_1_bss_6AE = .bss:0x000006AE; // type:object size:0x2 data:2byte -lbl_1_bss_6B0 = .bss:0x000006B0; // type:object size:0x1 data:byte -lbl_1_bss_6B1 = .bss:0x000006B1; // type:object size:0x1 data:byte -lbl_1_bss_6B2 = .bss:0x000006B2; // type:object size:0x1 data:byte -lbl_1_bss_6B3 = .bss:0x000006B3; // type:object size:0x1 data:byte -lbl_1_bss_6B4 = .bss:0x000006B4; // type:object size:0x1 data:byte -lbl_1_bss_6B6 = .bss:0x000006B6; // type:object size:0xA data:2byte -lbl_1_bss_6C0 = .bss:0x000006C0; // type:object size:0x4 data:4byte -lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x44 data:2byte -lbl_1_bss_708 = .bss:0x00000708; // type:object size:0x2 data:2byte -lbl_1_bss_70C = .bss:0x0000070C; // type:object size:0x4 data:4byte -lbl_1_bss_710 = .bss:0x00000710; // type:object size:0x4 data:4byte -lbl_1_bss_714 = .bss:0x00000714; // type:object size:0xC -lbl_1_bss_720 = .bss:0x00000720; // type:object size:0x4 data:4byte -lbl_1_bss_724 = .bss:0x00000724; // type:object size:0x4 data:4byte -lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x2 data:2byte -lbl_1_bss_72A = .bss:0x0000072A; // type:object size:0x2 data:2byte -lbl_1_bss_72C = .bss:0x0000072C; // type:object size:0x4 data:4byte -lbl_1_bss_730 = .bss:0x00000730; // type:object size:0x4 data:4byte -lbl_1_bss_734 = .bss:0x00000734; // type:object size:0x4 data:4byte -lbl_1_bss_738 = .bss:0x00000738; // type:object size:0xC data:float -lbl_1_bss_744 = .bss:0x00000744; // type:object size:0x2 data:2byte -lbl_1_bss_748 = .bss:0x00000748; // type:object size:0x4 data:4byte -lbl_1_bss_74C = .bss:0x0000074C; // type:object size:0x4 data:4byte -lbl_1_bss_750 = .bss:0x00000750; // type:object size:0x2 data:2byte -lbl_1_bss_754 = .bss:0x00000754; // type:object size:0x4 data:float -lbl_1_bss_758 = .bss:0x00000758; // type:object size:0x4 data:4byte -lbl_1_bss_75C = .bss:0x0000075C; // type:object size:0x4 data:4byte -lbl_1_bss_760 = .bss:0x00000760; // type:object size:0x28 -lbl_1_bss_788 = .bss:0x00000788; // type:object size:0x2 data:2byte -lbl_1_bss_78A = .bss:0x0000078A; // type:object size:0x6 data:2byte -lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x6 data:2byte -lbl_1_bss_796 = .bss:0x00000796; // type:object size:0x2 data:2byte -lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x4 data:4byte -lbl_1_bss_79C = .bss:0x0000079C; // type:object size:0x4 data:4byte -lbl_1_bss_7A0 = .bss:0x000007A0; // type:object size:0x4 data:4byte -lbl_1_bss_7A4 = .bss:0x000007A4; // type:object size:0x4 data:4byte -lbl_1_bss_7A8 = .bss:0x000007A8; // type:object size:0x2 data:2byte -lbl_1_bss_7AA = .bss:0x000007AA; // type:object size:0x2 data:2byte -lbl_1_bss_7AC = .bss:0x000007AC; // type:object size:0x8 data:4byte -lbl_1_bss_7B4 = .bss:0x000007B4; // type:object size:0x2 data:2byte -lbl_1_bss_7B8 = .bss:0x000007B8; // type:object size:0x4 data:4byte -lbl_1_bss_7BC = .bss:0x000007BC; // type:object size:0x8 data:4byte -lbl_1_bss_7C4 = .bss:0x000007C4; // type:object size:0xC data:float -lbl_1_bss_7D0 = .bss:0x000007D0; // type:object size:0x2 data:2byte -lbl_1_bss_7D2 = .bss:0x000007D2; // type:object size:0x2 data:2byte -lbl_1_bss_7D4 = .bss:0x000007D4; // type:object size:0x2 data:2byte -lbl_1_bss_7D6 = .bss:0x000007D6; // type:object size:0x2 data:2byte -lbl_1_bss_7D8 = .bss:0x000007D8; // type:object size:0xC data:4byte -lbl_1_bss_7E4 = .bss:0x000007E4; // type:object size:0x4 data:4byte -lbl_1_bss_7E8 = .bss:0x000007E8; // type:object size:0x4 data:float -lbl_1_bss_7EC = .bss:0x000007EC; // type:object size:0x4 data:float -lbl_1_bss_7F0 = .bss:0x000007F0; // type:object size:0x4 data:4byte -lbl_1_bss_7F4 = .bss:0x000007F4; // type:object size:0x4 data:4byte -lbl_1_bss_7F8 = .bss:0x000007F8; // type:object size:0x4 data:4byte -lbl_1_bss_7FC = .bss:0x000007FC; // type:object size:0x10 data:4byte -lbl_1_bss_80C = .bss:0x0000080C; // type:object size:0xC data:float -lbl_1_bss_818 = .bss:0x00000818; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/w02Dll/splits.txt b/config/GMPJ01_00/rels/w02Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/w02Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/w02Dll/symbols.txt b/config/GMPJ01_00/rels/w02Dll/symbols.txt deleted file mode 100644 index 2969cbd4..00000000 --- a/config/GMPJ01_00/rels/w02Dll/symbols.txt +++ /dev/null @@ -1,456 +0,0 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x30 -_prolog = .text:0x00000030; // type:function size:0x64 scope:global -_epilog = .text:0x00000094; // type:function size:0x4C scope:global -fn_1_E0 = .text:0x000000E0; // type:function size:0x4F4 -fn_1_5D4 = .text:0x000005D4; // type:function size:0x158 -fn_1_72C = .text:0x0000072C; // type:function size:0x44 -fn_1_770 = .text:0x00000770; // type:function size:0x4 -fn_1_774 = .text:0x00000774; // type:function size:0x8C -fn_1_800 = .text:0x00000800; // type:function size:0x12C -fn_1_92C = .text:0x0000092C; // type:function size:0x24 -fn_1_950 = .text:0x00000950; // type:function size:0x4 -fn_1_954 = .text:0x00000954; // type:function size:0x3C -fn_1_990 = .text:0x00000990; // type:function size:0x2C0 -fn_1_C50 = .text:0x00000C50; // type:function size:0x420 -fn_1_1070 = .text:0x00001070; // type:function size:0x38 -fn_1_10A8 = .text:0x000010A8; // type:function size:0x80 -fn_1_1128 = .text:0x00001128; // type:function size:0xF4 -fn_1_121C = .text:0x0000121C; // type:function size:0x38 -fn_1_1254 = .text:0x00001254; // type:function size:0x17C -fn_1_13D0 = .text:0x000013D0; // type:function size:0x148 -fn_1_1518 = .text:0x00001518; // type:function size:0x5C -fn_1_1574 = .text:0x00001574; // type:function size:0x220 -fn_1_1794 = .text:0x00001794; // type:function size:0x60 -fn_1_17F4 = .text:0x000017F4; // type:function size:0x5C -fn_1_1850 = .text:0x00001850; // type:function size:0x744 -fn_1_1F94 = .text:0x00001F94; // type:function size:0x9C -fn_1_2030 = .text:0x00002030; // type:function size:0xD0 -fn_1_2100 = .text:0x00002100; // type:function size:0x120 -fn_1_2220 = .text:0x00002220; // type:function size:0x9C -fn_1_22BC = .text:0x000022BC; // type:function size:0x80 -fn_1_233C = .text:0x0000233C; // type:function size:0x78 -fn_1_23B4 = .text:0x000023B4; // type:function size:0x48 -fn_1_23FC = .text:0x000023FC; // type:function size:0x1D4 -fn_1_25D0 = .text:0x000025D0; // type:function size:0xC4 -fn_1_2694 = .text:0x00002694; // type:function size:0x98 -fn_1_272C = .text:0x0000272C; // type:function size:0x104 -fn_1_2830 = .text:0x00002830; // type:function size:0x3B4 -fn_1_2BE4 = .text:0x00002BE4; // type:function size:0x120 -fn_1_2D04 = .text:0x00002D04; // type:function size:0xC34 -fn_1_3938 = .text:0x00003938; // type:function size:0x14 -fn_1_394C = .text:0x0000394C; // type:function size:0xA8 -fn_1_39F4 = .text:0x000039F4; // type:function size:0x200 -fn_1_3BF4 = .text:0x00003BF4; // type:function size:0x318 -fn_1_3F0C = .text:0x00003F0C; // type:function size:0x58 -fn_1_3F64 = .text:0x00003F64; // type:function size:0x30 -fn_1_3F94 = .text:0x00003F94; // type:function size:0xBC -fn_1_4050 = .text:0x00004050; // type:function size:0xB0 -fn_1_4100 = .text:0x00004100; // type:function size:0xB8 -fn_1_41B8 = .text:0x000041B8; // type:function size:0x1C0 -fn_1_4378 = .text:0x00004378; // type:function size:0x320 -fn_1_4698 = .text:0x00004698; // type:function size:0x50 -fn_1_46E8 = .text:0x000046E8; // type:function size:0xA34 -fn_1_511C = .text:0x0000511C; // type:function size:0x98 -fn_1_51B4 = .text:0x000051B4; // type:function size:0xDC -fn_1_5290 = .text:0x00005290; // type:function size:0x128 -fn_1_53B8 = .text:0x000053B8; // type:function size:0x27C -fn_1_5634 = .text:0x00005634; // type:function size:0x234 -fn_1_5868 = .text:0x00005868; // type:function size:0x258 -fn_1_5AC0 = .text:0x00005AC0; // type:function size:0x1C4 -fn_1_5C84 = .text:0x00005C84; // type:function size:0x74 -fn_1_5CF8 = .text:0x00005CF8; // type:function size:0x30 -fn_1_5D28 = .text:0x00005D28; // type:function size:0x1E0 -fn_1_5F08 = .text:0x00005F08; // type:function size:0x58 -fn_1_5F60 = .text:0x00005F60; // type:function size:0x30 -fn_1_5F90 = .text:0x00005F90; // type:function size:0x9C -fn_1_602C = .text:0x0000602C; // type:function size:0x40 -fn_1_606C = .text:0x0000606C; // type:function size:0x100 -fn_1_616C = .text:0x0000616C; // type:function size:0xDC -fn_1_6248 = .text:0x00006248; // type:function size:0x868 -fn_1_6AB0 = .text:0x00006AB0; // type:function size:0x1F4 -fn_1_6CA4 = .text:0x00006CA4; // type:function size:0x60 -fn_1_6D04 = .text:0x00006D04; // type:function size:0x130 -fn_1_6E34 = .text:0x00006E34; // type:function size:0x74 -fn_1_6EA8 = .text:0x00006EA8; // type:function size:0x43C -fn_1_72E4 = .text:0x000072E4; // type:function size:0x48 -fn_1_732C = .text:0x0000732C; // type:function size:0x2C -fn_1_7358 = .text:0x00007358; // type:function size:0x70 -fn_1_73C8 = .text:0x000073C8; // type:function size:0x11C -fn_1_74E4 = .text:0x000074E4; // type:function size:0x26C -fn_1_7750 = .text:0x00007750; // type:function size:0xC8 -fn_1_7818 = .text:0x00007818; // type:function size:0x80 -fn_1_7898 = .text:0x00007898; // type:function size:0x124 -fn_1_79BC = .text:0x000079BC; // type:function size:0x888 -fn_1_8244 = .text:0x00008244; // type:function size:0x32C -fn_1_8570 = .text:0x00008570; // type:function size:0x8C -fn_1_85FC = .text:0x000085FC; // type:function size:0x7B0 -fn_1_8DAC = .text:0x00008DAC; // type:function size:0x8C -fn_1_8E38 = .text:0x00008E38; // type:function size:0x418 -fn_1_9250 = .text:0x00009250; // type:function size:0x178 -fn_1_93C8 = .text:0x000093C8; // type:function size:0xE4 -fn_1_94AC = .text:0x000094AC; // type:function size:0x14 -fn_1_94C0 = .text:0x000094C0; // type:function size:0x418 -fn_1_98D8 = .text:0x000098D8; // type:function size:0x5EC -fn_1_9EC4 = .text:0x00009EC4; // type:function size:0x694 -fn_1_A558 = .text:0x0000A558; // type:function size:0x390 -fn_1_A8E8 = .text:0x0000A8E8; // type:function size:0xB68 -fn_1_B450 = .text:0x0000B450; // type:function size:0x458 -fn_1_B8A8 = .text:0x0000B8A8; // type:function size:0x288 -fn_1_BB30 = .text:0x0000BB30; // type:function size:0xEC -fn_1_BC1C = .text:0x0000BC1C; // type:function size:0xE0 -fn_1_BCFC = .text:0x0000BCFC; // type:function size:0x178 -fn_1_BE74 = .text:0x0000BE74; // type:function size:0x14 -fn_1_BE88 = .text:0x0000BE88; // type:function size:0x280 -fn_1_C108 = .text:0x0000C108; // type:function size:0xBFC -fn_1_CD04 = .text:0x0000CD04; // type:function size:0x6A8 -fn_1_D3AC = .text:0x0000D3AC; // type:function size:0x518 -fn_1_D8C4 = .text:0x0000D8C4; // type:function size:0x684 -fn_1_DF48 = .text:0x0000DF48; // type:function size:0x364 -fn_1_E2AC = .text:0x0000E2AC; // type:function size:0x64 -fn_1_E310 = .text:0x0000E310; // type:function size:0x10C -fn_1_E41C = .text:0x0000E41C; // type:function size:0xB8 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0xC data:4byte -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x18 data:4byte -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x24 data:4byte -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC data:4byte -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x28 data:4byte -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:byte -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:double -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0xC data:4byte -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x8 data:double -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x280 -lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:2byte -lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:2byte -lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 data:2byte -lbl_1_data_286 = .data:0x00000286; // type:object size:0x2 data:2byte -lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 -lbl_1_data_290 = .data:0x00000290; // type:object size:0x18 -lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x12 data:string -lbl_1_data_2BA = .data:0x000002BA; // type:object size:0xE data:string -lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0x10 data:string -lbl_1_data_2D8 = .data:0x000002D8; // type:object size:0x50 -lbl_1_data_328 = .data:0x00000328; // type:object size:0x1D data:string -lbl_1_data_345 = .data:0x00000345; // type:object size:0x1B data:string -lbl_1_data_360 = .data:0x00000360; // type:object size:0x11 data:string -lbl_1_data_371 = .data:0x00000371; // type:object size:0x7 -lbl_1_data_378 = .data:0x00000378; // type:object size:0x24 -lbl_1_data_39C = .data:0x0000039C; // type:object size:0x24 -lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x24 -lbl_1_data_3E4 = .data:0x000003E4; // type:object size:0x20 -lbl_1_data_404 = .data:0x00000404; // type:object size:0x20 -lbl_1_data_424 = .data:0x00000424; // type:object size:0x4 -lbl_1_data_428 = .data:0x00000428; // type:object size:0x38 -lbl_1_data_460 = .data:0x00000460; // type:object size:0x5 data:string -lbl_1_data_465 = .data:0x00000465; // type:object size:0x6 data:string -lbl_1_data_46B = .data:0x0000046B; // type:object size:0x9 -lbl_1_data_474 = .data:0x00000474; // type:object size:0xC -lbl_1_data_480 = .data:0x00000480; // type:object size:0x10 -lbl_1_data_490 = .data:0x00000490; // type:object size:0x20 -lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0x20 -lbl_1_data_4D0 = .data:0x000004D0; // type:object size:0x40 -lbl_1_data_510 = .data:0x00000510; // type:object size:0x14 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:2byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0xC -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0xC -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte -lbl_1_bss_2E = .bss:0x0000002E; // type:object size:0x2 data:2byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x20 data:2byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x28 data:2byte -lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x2 data:2byte -lbl_1_bss_86 = .bss:0x00000086; // type:object size:0xE data:2byte -lbl_1_bss_94 = .bss:0x00000094; // type:object size:0xC data:4byte -lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x2 data:2byte -lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte -lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte -lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte -lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0xC -lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x6 -lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x6 -lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte -lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0xC -lbl_1_bss_D8 = .bss:0x000000D8; // type:object size:0x4 data:4byte -lbl_1_bss_DC = .bss:0x000000DC; // type:object size:0x24 -lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte -lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte -lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte -lbl_1_bss_10C = .bss:0x0000010C; // type:object size:0x4 data:4byte -lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:float -lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:float -lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x24 -lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0x24 -lbl_1_bss_160 = .bss:0x00000160; // type:object size:0x24 data:float -lbl_1_bss_184 = .bss:0x00000184; // type:object size:0x6 data:2byte -lbl_1_bss_18A = .bss:0x0000018A; // type:object size:0x6 data:2byte -lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x6 data:2byte -lbl_1_bss_196 = .bss:0x00000196; // type:object size:0x2 data:2byte -lbl_1_bss_198 = .bss:0x00000198; // type:object size:0x8 data:2byte -lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0xC data:float -lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x2 data:2byte -lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0xC data:float -lbl_1_bss_1BC = .bss:0x000001BC; // type:object size:0x4 data:float -lbl_1_bss_1C0 = .bss:0x000001C0; // type:object size:0x2 data:2byte -lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0x20 -lbl_1_bss_1E4 = .bss:0x000001E4; // type:object size:0xB4 -lbl_1_bss_298 = .bss:0x00000298; // type:object size:0xB4 data:float -lbl_1_bss_34C = .bss:0x0000034C; // type:object size:0x1E -lbl_1_bss_36A = .bss:0x0000036A; // type:object size:0x2 data:2byte -lbl_1_bss_36C = .bss:0x0000036C; // type:object size:0x2 data:2byte -lbl_1_bss_36E = .bss:0x0000036E; // type:object size:0x2 data:2byte -lbl_1_bss_370 = .bss:0x00000370; // type:object size:0x2 data:2byte -lbl_1_bss_374 = .bss:0x00000374; // type:object size:0x4 data:4byte -lbl_1_bss_378 = .bss:0x00000378; // type:object size:0x8 data:4byte -lbl_1_bss_380 = .bss:0x00000380; // type:object size:0x4 data:float -lbl_1_bss_384 = .bss:0x00000384; // type:object size:0x4 data:4byte -lbl_1_bss_388 = .bss:0x00000388; // type:object size:0x2 data:2byte -lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x4 data:4byte diff --git a/config/GMPJ01_00/rels/w03Dll/splits.txt b/config/GMPJ01_00/rels/w03Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/w03Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/w03Dll/symbols.txt b/config/GMPJ01_00/rels/w03Dll/symbols.txt deleted file mode 100644 index d0fda24e..00000000 --- a/config/GMPJ01_00/rels/w03Dll/symbols.txt +++ /dev/null @@ -1,443 +0,0 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x30 -_prolog = .text:0x00000030; // type:function size:0x64 scope:global -_epilog = .text:0x00000094; // type:function size:0x4C scope:global -fn_1_E0 = .text:0x000000E0; // type:function size:0x660 -fn_1_740 = .text:0x00000740; // type:function size:0x144 -fn_1_884 = .text:0x00000884; // type:function size:0x6C -fn_1_8F0 = .text:0x000008F0; // type:function size:0x20 -fn_1_910 = .text:0x00000910; // type:function size:0x164 -fn_1_A74 = .text:0x00000A74; // type:function size:0x84 -fn_1_AF8 = .text:0x00000AF8; // type:function size:0x64 -fn_1_B5C = .text:0x00000B5C; // type:function size:0x198 -fn_1_CF4 = .text:0x00000CF4; // type:function size:0xF8 -fn_1_DEC = .text:0x00000DEC; // type:function size:0x2C4 -fn_1_10B0 = .text:0x000010B0; // type:function size:0x34 -fn_1_10E4 = .text:0x000010E4; // type:function size:0x1E4 -fn_1_12C8 = .text:0x000012C8; // type:function size:0x90 -fn_1_1358 = .text:0x00001358; // type:function size:0x1D4 -fn_1_152C = .text:0x0000152C; // type:function size:0xBC -fn_1_15E8 = .text:0x000015E8; // type:function size:0x68 -fn_1_1650 = .text:0x00001650; // type:function size:0x38C -fn_1_19DC = .text:0x000019DC; // type:function size:0x340 -fn_1_1D1C = .text:0x00001D1C; // type:function size:0x1B8 -fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x20C -fn_1_20E0 = .text:0x000020E0; // type:function size:0x600 -fn_1_26E0 = .text:0x000026E0; // type:function size:0x138 -fn_1_2818 = .text:0x00002818; // type:function size:0x118 -fn_1_2930 = .text:0x00002930; // type:function size:0x110 -fn_1_2A40 = .text:0x00002A40; // type:function size:0x80 -fn_1_2AC0 = .text:0x00002AC0; // type:function size:0x84 -fn_1_2B44 = .text:0x00002B44; // type:function size:0x514 -fn_1_3058 = .text:0x00003058; // type:function size:0x44 -fn_1_309C = .text:0x0000309C; // type:function size:0xA0 -fn_1_313C = .text:0x0000313C; // type:function size:0xDC -fn_1_3218 = .text:0x00003218; // type:function size:0xEC -fn_1_3304 = .text:0x00003304; // type:function size:0x174 -fn_1_3478 = .text:0x00003478; // type:function size:0x39C -fn_1_3814 = .text:0x00003814; // type:function size:0x154 -fn_1_3968 = .text:0x00003968; // type:function size:0x520 -fn_1_3E88 = .text:0x00003E88; // type:function size:0xD4 -fn_1_3F5C = .text:0x00003F5C; // type:function size:0x3F8 -fn_1_4354 = .text:0x00004354; // type:function size:0xD0 -fn_1_4424 = .text:0x00004424; // type:function size:0x4C8 -fn_1_48EC = .text:0x000048EC; // type:function size:0x1B0 -fn_1_4A9C = .text:0x00004A9C; // type:function size:0x20 -fn_1_4ABC = .text:0x00004ABC; // type:function size:0x250 -fn_1_4D0C = .text:0x00004D0C; // type:function size:0x54 -fn_1_4D60 = .text:0x00004D60; // type:function size:0x1C4 -fn_1_4F24 = .text:0x00004F24; // type:function size:0x1B0 -fn_1_50D4 = .text:0x000050D4; // type:function size:0x764 -fn_1_5838 = .text:0x00005838; // type:function size:0x290 -fn_1_5AC8 = .text:0x00005AC8; // type:function size:0x194 -fn_1_5C5C = .text:0x00005C5C; // type:function size:0x3D0 -fn_1_602C = .text:0x0000602C; // type:function size:0x178 -fn_1_61A4 = .text:0x000061A4; // type:function size:0xF8 -fn_1_629C = .text:0x0000629C; // type:function size:0x34 -fn_1_62D0 = .text:0x000062D0; // type:function size:0x2C -fn_1_62FC = .text:0x000062FC; // type:function size:0xF8 -fn_1_63F4 = .text:0x000063F4; // type:function size:0xA0 -fn_1_6494 = .text:0x00006494; // type:function size:0x204 -fn_1_6698 = .text:0x00006698; // type:function size:0xC4 -fn_1_675C = .text:0x0000675C; // type:function size:0x9C -fn_1_67F8 = .text:0x000067F8; // type:function size:0x8C -fn_1_6884 = .text:0x00006884; // type:function size:0x14 -fn_1_6898 = .text:0x00006898; // type:function size:0x300 -fn_1_6B98 = .text:0x00006B98; // type:function size:0x404 -fn_1_6F9C = .text:0x00006F9C; // type:function size:0x3C0 -fn_1_735C = .text:0x0000735C; // type:function size:0x320 -fn_1_767C = .text:0x0000767C; // type:function size:0x168 -fn_1_77E4 = .text:0x000077E4; // type:function size:0x78 -fn_1_785C = .text:0x0000785C; // type:function size:0x184 -fn_1_79E0 = .text:0x000079E0; // type:function size:0xDC -fn_1_7ABC = .text:0x00007ABC; // type:function size:0x9C -fn_1_7B58 = .text:0x00007B58; // type:function size:0x50 -fn_1_7BA8 = .text:0x00007BA8; // type:function size:0x90 -fn_1_7C38 = .text:0x00007C38; // type:function size:0x60 -fn_1_7C98 = .text:0x00007C98; // type:function size:0x80 -fn_1_7D18 = .text:0x00007D18; // type:function size:0x428 -fn_1_8140 = .text:0x00008140; // type:function size:0xA0 -fn_1_81E0 = .text:0x000081E0; // type:function size:0x254 -fn_1_8434 = .text:0x00008434; // type:function size:0x74 -fn_1_84A8 = .text:0x000084A8; // type:function size:0x88 -fn_1_8530 = .text:0x00008530; // type:function size:0x168 -fn_1_8698 = .text:0x00008698; // type:function size:0x570 -fn_1_8C08 = .text:0x00008C08; // type:function size:0x23C -fn_1_8E44 = .text:0x00008E44; // type:function size:0x200 -fn_1_9044 = .text:0x00009044; // type:function size:0x174 -fn_1_91B8 = .text:0x000091B8; // type:function size:0x78 -fn_1_9230 = .text:0x00009230; // type:function size:0x154 -fn_1_9384 = .text:0x00009384; // type:function size:0xF0 -fn_1_9474 = .text:0x00009474; // type:function size:0x144 -fn_1_95B8 = .text:0x000095B8; // type:function size:0x240 -fn_1_97F8 = .text:0x000097F8; // type:function size:0x224 -fn_1_9A1C = .text:0x00009A1C; // type:function size:0x60 -fn_1_9A7C = .text:0x00009A7C; // type:function size:0x20 -fn_1_9A9C = .text:0x00009A9C; // type:function size:0x4 -fn_1_9AA0 = .text:0x00009AA0; // type:function size:0x90 -fn_1_9B30 = .text:0x00009B30; // type:function size:0x15C -fn_1_9C8C = .text:0x00009C8C; // type:function size:0x68 -fn_1_9CF4 = .text:0x00009CF4; // type:function size:0x284 -fn_1_9F78 = .text:0x00009F78; // type:function size:0x6C -fn_1_9FE4 = .text:0x00009FE4; // type:function size:0x468 -fn_1_A44C = .text:0x0000A44C; // type:function size:0x194 -fn_1_A5E0 = .text:0x0000A5E0; // type:function size:0xD0 -fn_1_A6B0 = .text:0x0000A6B0; // type:function size:0xF0 -fn_1_A7A0 = .text:0x0000A7A0; // type:function size:0x10C -fn_1_A8AC = .text:0x0000A8AC; // type:function size:0xE8 -fn_1_A994 = .text:0x0000A994; // type:function size:0x184 -fn_1_AB18 = .text:0x0000AB18; // type:function size:0xB8 -fn_1_ABD0 = .text:0x0000ABD0; // type:function size:0x108 -fn_1_ACD8 = .text:0x0000ACD8; // type:function size:0x148 -fn_1_AE20 = .text:0x0000AE20; // type:function size:0x2C -fn_1_AE4C = .text:0x0000AE4C; // type:function size:0xD8 -fn_1_AF24 = .text:0x0000AF24; // type:function size:0x180 -fn_1_B0A4 = .text:0x0000B0A4; // type:function size:0x2AC -fn_1_B350 = .text:0x0000B350; // type:function size:0x15C -fn_1_B4AC = .text:0x0000B4AC; // type:function size:0x1DC -fn_1_B688 = .text:0x0000B688; // type:function size:0xC0 -fn_1_B748 = .text:0x0000B748; // type:function size:0x1A0 -fn_1_B8E8 = .text:0x0000B8E8; // type:function size:0x260 -fn_1_BB48 = .text:0x0000BB48; // type:function size:0x2C -fn_1_BB74 = .text:0x0000BB74; // type:function size:0x50 -fn_1_BBC4 = .text:0x0000BBC4; // type:function size:0x34 -fn_1_BBF8 = .text:0x0000BBF8; // type:function size:0x84 -fn_1_BC7C = .text:0x0000BC7C; // type:function size:0x130 -fn_1_BDAC = .text:0x0000BDAC; // type:function size:0x84 -fn_1_BE30 = .text:0x0000BE30; // type:function size:0x418 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0xC data:4byte -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x24 data:4byte -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x6 data:2byte -lbl_1_rodata_BE = .rodata:0x000000BE; // type:object size:0x1 data:byte -lbl_1_rodata_C2 = .rodata:0x000000C2; // type:object size:0x6 data:byte -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x20 data:4byte -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:4byte -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x10 data:4byte -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0x1E0 -lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x2 data:2byte -lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0x2 data:2byte -lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x2 data:2byte -lbl_1_data_1E6 = .data:0x000001E6; // type:object size:0x2 data:2byte -lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x2 data:2byte -lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x20 data:float -lbl_1_data_20C = .data:0x0000020C; // type:object size:0x8 -lbl_1_data_214 = .data:0x00000214; // type:object size:0x8 -lbl_1_data_21C = .data:0x0000021C; // type:object size:0x10 -lbl_1_data_22C = .data:0x0000022C; // type:object size:0x30 -lbl_1_data_25C = .data:0x0000025C; // type:object size:0x10 -lbl_1_data_26C = .data:0x0000026C; // type:object size:0x14 -lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:2byte -lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:2byte -lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 data:2byte -lbl_1_data_286 = .data:0x00000286; // type:object size:0x2 data:2byte -lbl_1_data_288 = .data:0x00000288; // type:object size:0x4 data:4byte -lbl_1_data_28C = .data:0x0000028C; // type:object size:0x4 -lbl_1_data_290 = .data:0x00000290; // type:object size:0x20 -lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x20 -lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x20 -lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x20 -lbl_1_data_310 = .data:0x00000310; // type:object size:0x2 data:2byte -lbl_1_data_312 = .data:0x00000312; // type:object size:0x2 data:2byte -lbl_1_data_314 = .data:0x00000314; // type:object size:0x2 data:2byte -lbl_1_data_316 = .data:0x00000316; // type:object size:0x2 data:2byte -lbl_1_data_318 = .data:0x00000318; // type:object size:0x18 -lbl_1_data_330 = .data:0x00000330; // type:object size:0xD data:string -lbl_1_data_33D = .data:0x0000033D; // type:object size:0x6 data:string -lbl_1_data_343 = .data:0x00000343; // type:object size:0x9 -lbl_1_data_34C = .data:0x0000034C; // type:object size:0x8 -lbl_1_data_354 = .data:0x00000354; // type:object size:0x8 -lbl_1_data_35C = .data:0x0000035C; // type:object size:0xC -lbl_1_data_368 = .data:0x00000368; // type:object size:0x20 -lbl_1_data_388 = .data:0x00000388; // type:object size:0x2 data:2byte -lbl_1_data_38A = .data:0x0000038A; // type:object size:0x2 data:2byte -lbl_1_data_38C = .data:0x0000038C; // type:object size:0x2 data:2byte -lbl_1_data_390 = .data:0x00000390; // type:object size:0x10 -lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0xB data:string -lbl_1_data_3AB = .data:0x000003AB; // type:object size:0x6 data:string -lbl_1_data_3B1 = .data:0x000003B1; // type:object size:0x7 -lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x48 -lbl_1_data_400 = .data:0x00000400; // type:object size:0x3 data:string -lbl_1_data_403 = .data:0x00000403; // type:object size:0xD -lbl_1_data_410 = .data:0x00000410; // type:object size:0x8 data:string -lbl_1_data_418 = .data:0x00000418; // type:object size:0x8 data:string -lbl_1_data_420 = .data:0x00000420; // type:object size:0x8 data:string -lbl_1_data_428 = .data:0x00000428; // type:object size:0x8 data:string -lbl_1_data_430 = .data:0x00000430; // type:object size:0x8 data:string -lbl_1_data_438 = .data:0x00000438; // type:object size:0x18 -lbl_1_data_450 = .data:0x00000450; // type:object size:0x4 data:4byte -lbl_1_data_454 = .data:0x00000454; // type:object size:0x2 data:2byte -lbl_1_data_456 = .data:0x00000456; // type:object size:0x2 data:2byte -lbl_1_data_458 = .data:0x00000458; // type:object size:0x2 data:2byte -lbl_1_data_45C = .data:0x0000045C; // type:object size:0xC -lbl_1_data_468 = .data:0x00000468; // type:object size:0x8 -lbl_1_data_470 = .data:0x00000470; // type:object size:0x20 -lbl_1_data_490 = .data:0x00000490; // type:object size:0x20 -lbl_1_data_4B0 = .data:0x000004B0; // type:object size:0x1 data:byte -lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x14 -lbl_1_data_4C8 = .data:0x000004C8; // type:object size:0x6 -lbl_1_data_4CE = .data:0x000004CE; // type:object size:0xA -lbl_1_data_4D8 = .data:0x000004D8; // type:object size:0x2 data:2byte -lbl_1_data_4DA = .data:0x000004DA; // type:object size:0x2 data:2byte -lbl_1_data_4DC = .data:0x000004DC; // type:object size:0x2 data:2byte -lbl_1_data_4E0 = .data:0x000004E0; // type:object size:0x4 data:4byte -lbl_1_data_4E4 = .data:0x000004E4; // type:object size:0x2 data:2byte -lbl_1_data_4E6 = .data:0x000004E6; // type:object size:0xE -lbl_1_data_4F4 = .data:0x000004F4; // type:object size:0x5 data:string -lbl_1_data_4F9 = .data:0x000004F9; // type:object size:0x6 data:string -lbl_1_data_4FF = .data:0x000004FF; // type:object size:0x9 -lbl_1_data_508 = .data:0x00000508; // type:object size:0xC -lbl_1_data_514 = .data:0x00000514; // type:object size:0x38 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x1C data:2byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x1 data:byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0xC -lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x20 -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x2 data:2byte -lbl_1_bss_6A = .bss:0x0000006A; // type:object size:0x2 data:2byte -lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x2 data:2byte -lbl_1_bss_6E = .bss:0x0000006E; // type:object size:0x1 data:byte -lbl_1_bss_6F = .bss:0x0000006F; // type:object size:0x1 data:byte -lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte -lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte -lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte -lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x1 data:byte -lbl_1_bss_7D = .bss:0x0000007D; // type:object size:0x1 data:byte -lbl_1_bss_80 = .bss:0x00000080; // type:object size:0xA0 -lbl_1_bss_120 = .bss:0x00000120; // type:object size:0x4 data:4byte -lbl_1_bss_124 = .bss:0x00000124; // type:object size:0x4 data:4byte -lbl_1_bss_128 = .bss:0x00000128; // type:object size:0x2 data:2byte -lbl_1_bss_12C = .bss:0x0000012C; // type:object size:0x4 data:4byte -lbl_1_bss_130 = .bss:0x00000130; // type:object size:0x8 -lbl_1_bss_138 = .bss:0x00000138; // type:object size:0x8 data:4byte -lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x4 data:4byte -lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x4 data:4byte -lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x4 data:4byte -lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x1 data:byte -lbl_1_bss_14E = .bss:0x0000014E; // type:object size:0x2 data:2byte -lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x30 -lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x4 data:4byte -lbl_1_bss_184 = .bss:0x00000184; // type:object size:0x4 data:4byte -lbl_1_bss_188 = .bss:0x00000188; // type:object size:0x4 data:4byte -lbl_1_bss_18C = .bss:0x0000018C; // type:object size:0x1 data:byte -lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:4byte -lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x3 diff --git a/config/GMPJ01_00/rels/w04Dll/splits.txt b/config/GMPJ01_00/rels/w04Dll/splits.txt index 531cd645..d977e9ab 100644 --- a/config/GMPJ01_00/rels/w04Dll/splits.txt +++ b/config/GMPJ01_00/rels/w04Dll/splits.txt @@ -5,3 +5,43 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/board_executor.c: + .text start:0x00000000 end:0x000000E0 + .rodata start:0x00000000 end:0x00000010 + +REL/w04Dll/main.c: + .text start:0x000000E0 end:0x000012FC + .rodata start:0x00000010 end:0x00000040 + .data start:0x00000000 end:0x00000298 + .bss start:0x00000000 end:0x00000038 + +REL/w04Dll/bridge.c: + .text start:0x000012FC end:0x000020EC + .rodata start:0x00000040 end:0x00000098 + .data start:0x00000298 end:0x000002D0 + .bss start:0x00000038 end:0x00000048 + +REL/w04Dll/boo_event.c: + .text start:0x000020EC end:0x00006024 + .rodata start:0x00000098 end:0x00000180 + .data start:0x000002D0 end:0x000003A8 + .bss start:0x00000048 end:0x00000100 + +REL/w04Dll/big_boo.c: + .text start:0x00006024 end:0x0000A0DC + .rodata start:0x00000180 end:0x000002C0 + .data start:0x000003A8 end:0x000004F0 + .bss start:0x00000100 end:0x00000288 + +REL/w04Dll/mg_item.c: + .text start:0x0000A0DC end:0x0000C784 + .rodata start:0x000002C0 end:0x000003A0 + .data start:0x000004F0 end:0x00000588 + .bss start:0x00000288 end:0x000002B0 + +REL/w04Dll/mg_coin.c: + .text start:0x0000C784 end:0x0000E9F0 + .rodata start:0x000003A0 end:0x00000428 + .data start:0x00000588 end:0x0000063F + .bss start:0x000002B0 end:0x00000328 diff --git a/config/GMPJ01_00/rels/w04Dll/symbols.txt b/config/GMPJ01_00/rels/w04Dll/symbols.txt index 662a89da..de97498a 100644 --- a/config/GMPJ01_00/rels/w04Dll/symbols.txt +++ b/config/GMPJ01_00/rels/w04Dll/symbols.txt @@ -1,451 +1,451 @@ fn_1_0 = .text:0x00000000; // type:function size:0x30 _prolog = .text:0x00000030; // type:function size:0x64 scope:global _epilog = .text:0x00000094; // type:function size:0x4C scope:global -fn_1_E0 = .text:0x000000E0; // type:function size:0x514 -fn_1_5F4 = .text:0x000005F4; // type:function size:0x15C -fn_1_750 = .text:0x00000750; // type:function size:0x44 -fn_1_794 = .text:0x00000794; // type:function size:0x4 -fn_1_798 = .text:0x00000798; // type:function size:0x64 -fn_1_7FC = .text:0x000007FC; // type:function size:0x134 -fn_1_930 = .text:0x00000930; // type:function size:0x24 -fn_1_954 = .text:0x00000954; // type:function size:0x4 -fn_1_958 = .text:0x00000958; // type:function size:0x3A0 -fn_1_CF8 = .text:0x00000CF8; // type:function size:0x38 -fn_1_D30 = .text:0x00000D30; // type:function size:0x80 -fn_1_DB0 = .text:0x00000DB0; // type:function size:0x28C -fn_1_103C = .text:0x0000103C; // type:function size:0xF4 +BoardCreate = .text:0x000000E0; // type:function size:0x514 +BoardDestroy = .text:0x000005F4; // type:function size:0x15C +fn_1_750 = .text:0x00000750; // type:function size:0x44 scope:local +fn_1_794 = .text:0x00000794; // type:function size:0x4 scope:local +fn_1_798 = .text:0x00000798; // type:function size:0x64 scope:local +fn_1_7FC = .text:0x000007FC; // type:function size:0x134 scope:local +fn_1_930 = .text:0x00000930; // type:function size:0x24 scope:local +fn_1_954 = .text:0x00000954; // type:function size:0x4 scope:local +fn_1_958 = .text:0x00000958; // type:function size:0x3A0 scope:local +fn_1_CF8 = .text:0x00000CF8; // type:function size:0x38 scope:local +fn_1_D30 = .text:0x00000D30; // type:function size:0x80 scope:local +fn_1_DB0 = .text:0x00000DB0; // type:function size:0x28C scope:local +fn_1_103C = .text:0x0000103C; // type:function size:0xF4 scope:local fn_1_1130 = .text:0x00001130; // type:function size:0x1CC fn_1_12FC = .text:0x000012FC; // type:function size:0x2CC fn_1_15C8 = .text:0x000015C8; // type:function size:0x50 -fn_1_1618 = .text:0x00001618; // type:function size:0x19C -fn_1_17B4 = .text:0x000017B4; // type:function size:0x168 -fn_1_191C = .text:0x0000191C; // type:function size:0x27C -fn_1_1B98 = .text:0x00001B98; // type:function size:0x94 -fn_1_1C2C = .text:0x00001C2C; // type:function size:0x234 -fn_1_1E60 = .text:0x00001E60; // type:function size:0x1A8 -fn_1_2008 = .text:0x00002008; // type:function size:0x3C -fn_1_2044 = .text:0x00002044; // type:function size:0x14 +fn_1_1618 = .text:0x00001618; // type:function size:0x19C scope:local +fn_1_17B4 = .text:0x000017B4; // type:function size:0x168 scope:local +fn_1_191C = .text:0x0000191C; // type:function size:0x27C scope:local +fn_1_1B98 = .text:0x00001B98; // type:function size:0x94 scope:local +fn_1_1C2C = .text:0x00001C2C; // type:function size:0x234 scope:local +fn_1_1E60 = .text:0x00001E60; // type:function size:0x1A8 scope:local +fn_1_2008 = .text:0x00002008; // type:function size:0x3C scope:local +fn_1_2044 = .text:0x00002044; // type:function size:0x14 scope:local fn_1_2058 = .text:0x00002058; // type:function size:0x94 -fn_1_20EC = .text:0x000020EC; // type:function size:0x7D0 -fn_1_28BC = .text:0x000028BC; // type:function size:0x2D0 -fn_1_2B8C = .text:0x00002B8C; // type:function size:0x84 -fn_1_2C10 = .text:0x00002C10; // type:function size:0x250 -fn_1_2E60 = .text:0x00002E60; // type:function size:0x88 -fn_1_2EE8 = .text:0x00002EE8; // type:function size:0x6C -fn_1_2F54 = .text:0x00002F54; // type:function size:0x68 -fn_1_2FBC = .text:0x00002FBC; // type:function size:0x20 -fn_1_2FDC = .text:0x00002FDC; // type:function size:0xC8 -fn_1_30A4 = .text:0x000030A4; // type:function size:0x834 -fn_1_38D8 = .text:0x000038D8; // type:function size:0x3C4 -fn_1_3C9C = .text:0x00003C9C; // type:function size:0x90C -fn_1_45A8 = .text:0x000045A8; // type:function size:0x88 -fn_1_4630 = .text:0x00004630; // type:function size:0x50 -fn_1_4680 = .text:0x00004680; // type:function size:0x1C8 -fn_1_4848 = .text:0x00004848; // type:function size:0x7D0 -fn_1_5018 = .text:0x00005018; // type:function size:0x288 -fn_1_52A0 = .text:0x000052A0; // type:function size:0x300 -fn_1_55A0 = .text:0x000055A0; // type:function size:0x14 +fn_1_20EC = .text:0x000020EC; // type:function size:0x7D0 scope:local +fn_1_28BC = .text:0x000028BC; // type:function size:0x2D0 scope:local +fn_1_2B8C = .text:0x00002B8C; // type:function size:0x84 scope:local +fn_1_2C10 = .text:0x00002C10; // type:function size:0x250 scope:local +fn_1_2E60 = .text:0x00002E60; // type:function size:0x88 scope:local +fn_1_2EE8 = .text:0x00002EE8; // type:function size:0x6C scope:local +fn_1_2F54 = .text:0x00002F54; // type:function size:0x68 scope:local +fn_1_2FBC = .text:0x00002FBC; // type:function size:0x20 scope:local +fn_1_2FDC = .text:0x00002FDC; // type:function size:0xC8 scope:local +fn_1_30A4 = .text:0x000030A4; // type:function size:0x834 scope:local +fn_1_38D8 = .text:0x000038D8; // type:function size:0x3C4 scope:local +fn_1_3C9C = .text:0x00003C9C; // type:function size:0x90C scope:local +fn_1_45A8 = .text:0x000045A8; // type:function size:0x88 scope:local +fn_1_4630 = .text:0x00004630; // type:function size:0x50 scope:local +fn_1_4680 = .text:0x00004680; // type:function size:0x1C8 scope:local +fn_1_4848 = .text:0x00004848; // type:function size:0x7D0 scope:local +fn_1_5018 = .text:0x00005018; // type:function size:0x288 scope:local +fn_1_52A0 = .text:0x000052A0; // type:function size:0x300 scope:local +fn_1_55A0 = .text:0x000055A0; // type:function size:0x14 scope:local fn_1_55B4 = .text:0x000055B4; // type:function size:0x94 -fn_1_5648 = .text:0x00005648; // type:function size:0x1E0 -fn_1_5828 = .text:0x00005828; // type:function size:0x7C -fn_1_58A4 = .text:0x000058A4; // type:function size:0xDC -fn_1_5980 = .text:0x00005980; // type:function size:0x44 -fn_1_59C4 = .text:0x000059C4; // type:function size:0x68 -fn_1_5A2C = .text:0x00005A2C; // type:function size:0x5F8 +fn_1_5648 = .text:0x00005648; // type:function size:0x1E0 scope:local +fn_1_5828 = .text:0x00005828; // type:function size:0x7C scope:local +fn_1_58A4 = .text:0x000058A4; // type:function size:0xDC scope:local +fn_1_5980 = .text:0x00005980; // type:function size:0x44 scope:local +fn_1_59C4 = .text:0x000059C4; // type:function size:0x68 scope:local +fn_1_5A2C = .text:0x00005A2C; // type:function size:0x5F8 scope:local fn_1_6024 = .text:0x00006024; // type:function size:0x28C -fn_1_62B0 = .text:0x000062B0; // type:function size:0x628 -fn_1_68D8 = .text:0x000068D8; // type:function size:0x420 -fn_1_6CF8 = .text:0x00006CF8; // type:function size:0x608 -fn_1_7300 = .text:0x00007300; // type:function size:0x27C -fn_1_757C = .text:0x0000757C; // type:function size:0x5C -fn_1_75D8 = .text:0x000075D8; // type:function size:0x2B0 -fn_1_7888 = .text:0x00007888; // type:function size:0x11D8 -fn_1_8A60 = .text:0x00008A60; // type:function size:0xE24 -fn_1_9884 = .text:0x00009884; // type:function size:0x294 -fn_1_9B18 = .text:0x00009B18; // type:function size:0xA8 -fn_1_9BC0 = .text:0x00009BC0; // type:function size:0x3C -fn_1_9BFC = .text:0x00009BFC; // type:function size:0x290 -fn_1_9E8C = .text:0x00009E8C; // type:function size:0x14 -fn_1_9EA0 = .text:0x00009EA0; // type:function size:0x94 -fn_1_9F34 = .text:0x00009F34; // type:function size:0x124 -fn_1_A058 = .text:0x0000A058; // type:function size:0x84 -fn_1_A0DC = .text:0x0000A0DC; // type:function size:0xF8 -fn_1_A1D4 = .text:0x0000A1D4; // type:function size:0x52C -fn_1_A700 = .text:0x0000A700; // type:function size:0xCC -fn_1_A7CC = .text:0x0000A7CC; // type:function size:0x1294 -fn_1_BA60 = .text:0x0000BA60; // type:function size:0x84 -fn_1_BAE4 = .text:0x0000BAE4; // type:function size:0x7BC -fn_1_C2A0 = .text:0x0000C2A0; // type:function size:0xCC -fn_1_C36C = .text:0x0000C36C; // type:function size:0x418 -fn_1_C784 = .text:0x0000C784; // type:function size:0x34 -fn_1_C7B8 = .text:0x0000C7B8; // type:function size:0x7B8 -fn_1_CF70 = .text:0x0000CF70; // type:function size:0x120 -fn_1_D090 = .text:0x0000D090; // type:function size:0x30 -fn_1_D0C0 = .text:0x0000D0C0; // type:function size:0x98 -fn_1_D158 = .text:0x0000D158; // type:function size:0xBC -fn_1_D214 = .text:0x0000D214; // type:function size:0x74 -fn_1_D288 = .text:0x0000D288; // type:function size:0x2B0 -fn_1_D538 = .text:0x0000D538; // type:function size:0x154 -fn_1_D68C = .text:0x0000D68C; // type:function size:0x64 -fn_1_D6F0 = .text:0x0000D6F0; // type:function size:0x64 -fn_1_D754 = .text:0x0000D754; // type:function size:0x894 -fn_1_DFE8 = .text:0x0000DFE8; // type:function size:0x140 -fn_1_E128 = .text:0x0000E128; // type:function size:0x48 -fn_1_E170 = .text:0x0000E170; // type:function size:0x1E8 -fn_1_E358 = .text:0x0000E358; // type:function size:0x14C -fn_1_E4A4 = .text:0x0000E4A4; // type:function size:0x1EC -fn_1_E690 = .text:0x0000E690; // type:function size:0x1D4 -fn_1_E864 = .text:0x0000E864; // type:function size:0x18C +fn_1_62B0 = .text:0x000062B0; // type:function size:0x628 scope:local +fn_1_68D8 = .text:0x000068D8; // type:function size:0x420 scope:local +fn_1_6CF8 = .text:0x00006CF8; // type:function size:0x608 scope:local +fn_1_7300 = .text:0x00007300; // type:function size:0x27C scope:local +fn_1_757C = .text:0x0000757C; // type:function size:0x5C scope:local +fn_1_75D8 = .text:0x000075D8; // type:function size:0x2B0 scope:local +fn_1_7888 = .text:0x00007888; // type:function size:0x11D8 scope:local +fn_1_8A60 = .text:0x00008A60; // type:function size:0xE24 scope:local +fn_1_98A0 = .text:0x00009884; // type:function size:0x294 scope:local +fn_1_9B34 = .text:0x00009B18; // type:function size:0xA8 scope:local +fn_1_9BDC = .text:0x00009BC0; // type:function size:0x3C scope:local +fn_1_9C18 = .text:0x00009BFC; // type:function size:0x290 scope:local +fn_1_9EA8 = .text:0x00009E8C; // type:function size:0x14 scope:local +fn_1_9EBC = .text:0x00009EA0; // type:function size:0x94 +fn_1_9F50 = .text:0x00009F34; // type:function size:0x124 scope:local +fn_1_A074 = .text:0x0000A058; // type:function size:0x84 scope:local +fn_1_A0F8 = .text:0x0000A0DC; // type:function size:0xF8 +fn_1_A1F0 = .text:0x0000A1D4; // type:function size:0x52C +fn_1_A71C = .text:0x0000A700; // type:function size:0xCC scope:local +fn_1_A7E8 = .text:0x0000A7CC; // type:function size:0x1294 scope:local +fn_1_BA7C = .text:0x0000BA60; // type:function size:0x84 +fn_1_BB00 = .text:0x0000BAE4; // type:function size:0x7BC +fn_1_C2BC = .text:0x0000C2A0; // type:function size:0xCC +fn_1_C388 = .text:0x0000C36C; // type:function size:0x418 scope:local +fn_1_C7A0 = .text:0x0000C784; // type:function size:0x34 +fn_1_C7D4 = .text:0x0000C7B8; // type:function size:0x7B8 +fn_1_CF8C = .text:0x0000CF70; // type:function size:0x120 scope:local +fn_1_D0AC = .text:0x0000D090; // type:function size:0x30 scope:local +fn_1_D0DC = .text:0x0000D0C0; // type:function size:0x98 scope:local +fn_1_D174 = .text:0x0000D158; // type:function size:0xBC scope:local +fn_1_D230 = .text:0x0000D214; // type:function size:0x74 scope:local +fn_1_D2A4 = .text:0x0000D288; // type:function size:0x2B0 scope:local +fn_1_D554 = .text:0x0000D538; // type:function size:0x154 scope:local +fn_1_D6A8 = .text:0x0000D68C; // type:function size:0x64 scope:local +fn_1_D70C = .text:0x0000D6F0; // type:function size:0x64 scope:local +fn_1_D770 = .text:0x0000D754; // type:function size:0x894 scope:local +fn_1_E004 = .text:0x0000DFE8; // type:function size:0x140 scope:local +fn_1_E144 = .text:0x0000E128; // type:function size:0x48 scope:local +fn_1_E18C = .text:0x0000E170; // type:function size:0x1E8 scope:local +fn_1_E374 = .text:0x0000E358; // type:function size:0x14C scope:local +fn_1_E4C0 = .text:0x0000E4A4; // type:function size:0x1EC scope:local +fn_1_E6AC = .text:0x0000E690; // type:function size:0x1D4 scope:local +fn_1_E880 = .text:0x0000E864; // type:function size:0x18C scope:local _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0xC data:4byte -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC data:4byte -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x280 -lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:2byte -lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:2byte -lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 data:2byte -lbl_1_data_286 = .data:0x00000286; // type:object size:0x2 data:2byte -lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 -lbl_1_data_290 = .data:0x00000290; // type:object size:0x8 -lbl_1_data_298 = .data:0x00000298; // type:object size:0x8 -lbl_1_data_2A0 = .data:0x000002A0; // type:object size:0xC -lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x24 -lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x20 -lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x4 data:4byte -lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20 -lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 -lbl_1_data_334 = .data:0x00000334; // type:object size:0x5 data:string -lbl_1_data_339 = .data:0x00000339; // type:object size:0x5 data:string -lbl_1_data_33E = .data:0x0000033E; // type:object size:0x5 data:string -lbl_1_data_343 = .data:0x00000343; // type:object size:0x5 data:string -lbl_1_data_348 = .data:0x00000348; // type:object size:0x10 -lbl_1_data_358 = .data:0x00000358; // type:object size:0x10 -lbl_1_data_368 = .data:0x00000368; // type:object size:0x8 data:string -lbl_1_data_370 = .data:0x00000370; // type:object size:0x12 data:string -lbl_1_data_382 = .data:0x00000382; // type:object size:0x11 data:string -lbl_1_data_393 = .data:0x00000393; // type:object size:0x15 -lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x8 data:string -lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x9 data:string -lbl_1_data_3B9 = .data:0x000003B9; // type:object size:0x6 data:string -lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x5 data:string -lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x8 -lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x14 data:4byte -lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x14 -lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x20 -lbl_1_data_414 = .data:0x00000414; // type:object size:0x10 -lbl_1_data_424 = .data:0x00000424; // type:object size:0x30 data:2byte -lbl_1_data_454 = .data:0x00000454; // type:object size:0xB data:string -lbl_1_data_45F = .data:0x0000045F; // type:object size:0x2 data:string -lbl_1_data_461 = .data:0x00000461; // type:object size:0xC data:string -lbl_1_data_46D = .data:0x0000046D; // type:object size:0x1B -lbl_1_data_488 = .data:0x00000488; // type:object size:0x3 data:string -lbl_1_data_48B = .data:0x0000048B; // type:object size:0x11 -lbl_1_data_49C = .data:0x0000049C; // type:object size:0x54 -lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x6 data:string -lbl_1_data_4F6 = .data:0x000004F6; // type:object size:0x6 data:string -lbl_1_data_4FC = .data:0x000004FC; // type:object size:0x6 data:string -lbl_1_data_502 = .data:0x00000502; // type:object size:0x8 data:string -lbl_1_data_50A = .data:0x0000050A; // type:object size:0x8 data:string -lbl_1_data_512 = .data:0x00000512; // type:object size:0xA -lbl_1_data_51C = .data:0x0000051C; // type:object size:0x18 data:4byte -lbl_1_data_534 = .data:0x00000534; // type:object size:0xC -lbl_1_data_540 = .data:0x00000540; // type:object size:0x48 -lbl_1_data_588 = .data:0x00000588; // type:object size:0x4 data:4byte -lbl_1_data_58C = .data:0x0000058C; // type:object size:0x5 data:string -lbl_1_data_591 = .data:0x00000591; // type:object size:0x5 data:string -lbl_1_data_596 = .data:0x00000596; // type:object size:0x5 data:string -lbl_1_data_59B = .data:0x0000059B; // type:object size:0x5 data:string -lbl_1_data_5A0 = .data:0x000005A0; // type:object size:0x5 data:string -lbl_1_data_5A5 = .data:0x000005A5; // type:object size:0x5 data:string -lbl_1_data_5AA = .data:0x000005AA; // type:object size:0x5 data:string -lbl_1_data_5AF = .data:0x000005AF; // type:object size:0x5 data:string -lbl_1_data_5B4 = .data:0x000005B4; // type:object size:0x8 -lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x24 data:4byte -lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0x10 -lbl_1_data_5F0 = .data:0x000005F0; // type:object size:0x20 -lbl_1_data_610 = .data:0x00000610; // type:object size:0xE data:string -lbl_1_data_61E = .data:0x0000061E; // type:object size:0xE data:string +lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 scope:local data:2byte +lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 scope:local data:2byte +lbl_1_data_284 = .data:0x00000284; // type:object size:0x2 scope:local data:2byte +lbl_1_data_286 = .data:0x00000286; // type:object size:0x2 scope:local data:2byte +lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 scope:local +lbl_1_data_290 = .data:0x00000290; // type:object size:0x8 scope:local +lbl_1_data_298 = .data:0x00000298; // type:object size:0x8 scope:local +lbl_1_data_2A0 = .data:0x000002A0; // type:object size:0xC scope:local +lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x24 scope:local +lbl_1_data_2D0 = .data:0x000002D0; // type:object size:0x20 scope:local +lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x4 scope:local data:4byte +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20 scope:local +lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 scope:local +lbl_1_data_334 = .data:0x00000334; // type:object size:0x5 scope:local data:string +lbl_1_data_339 = .data:0x00000339; // type:object size:0x5 scope:local data:string +lbl_1_data_33E = .data:0x0000033E; // type:object size:0x5 scope:local data:string +lbl_1_data_343 = .data:0x00000343; // type:object size:0x5 scope:local data:string +lbl_1_data_348 = .data:0x00000348; // type:object size:0x10 scope:local +lbl_1_data_358 = .data:0x00000358; // type:object size:0x10 scope:local +lbl_1_data_368 = .data:0x00000368; // type:object size:0x8 scope:local data:string +lbl_1_data_370 = .data:0x00000370; // type:object size:0x12 scope:local data:string +lbl_1_data_382 = .data:0x00000382; // type:object size:0x11 scope:local data:string +lbl_1_data_393 = .data:0x00000393; // type:object size:0x15 scope:local +lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x8 scope:local data:string +lbl_1_data_3B0 = .data:0x000003B0; // type:object size:0x9 scope:local data:string +lbl_1_data_3B9 = .data:0x000003B9; // type:object size:0x6 scope:local data:string +lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x5 scope:local data:string +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x8 scope:local +lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x14 scope:local data:4byte +lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x14 scope:local +lbl_1_data_3F4 = .data:0x000003F4; // type:object size:0x20 scope:local +lbl_1_data_414 = .data:0x00000414; // type:object size:0x10 scope:local +lbl_1_data_424 = .data:0x00000424; // type:object size:0x30 scope:local data:2byte +lbl_1_data_454 = .data:0x00000454; // type:object size:0xB scope:local data:string +lbl_1_data_45F = .data:0x0000045F; // type:object size:0x2 scope:local data:string +lbl_1_data_461 = .data:0x00000461; // type:object size:0xC scope:local data:string +lbl_1_data_46D = .data:0x0000046D; // type:object size:0x1B scope:local +lbl_1_data_488 = .data:0x00000488; // type:object size:0x3 scope:local data:string +lbl_1_data_48B = .data:0x0000048B; // type:object size:0x11 scope:local +lbl_1_data_49C = .data:0x0000049C; // type:object size:0x54 scope:local +lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x6 scope:local data:string +lbl_1_data_4F6 = .data:0x000004F6; // type:object size:0x6 scope:local data:string +lbl_1_data_4FC = .data:0x000004FC; // type:object size:0x6 scope:local data:string +lbl_1_data_502 = .data:0x00000502; // type:object size:0x8 scope:local data:string +lbl_1_data_50A = .data:0x0000050A; // type:object size:0x8 scope:local data:string +lbl_1_data_512 = .data:0x00000512; // type:object size:0xA scope:local +lbl_1_data_51C = .data:0x0000051C; // type:object size:0x18 scope:local data:4byte +lbl_1_data_534 = .data:0x00000534; // type:object size:0xC scope:local +lbl_1_data_540 = .data:0x00000540; // type:object size:0x48 scope:local +lbl_1_data_588 = .data:0x00000588; // type:object size:0x4 scope:local data:4byte +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x5 scope:local data:string +lbl_1_data_591 = .data:0x00000591; // type:object size:0x5 scope:local data:string +lbl_1_data_596 = .data:0x00000596; // type:object size:0x5 scope:local data:string +lbl_1_data_59B = .data:0x0000059B; // type:object size:0x5 scope:local data:string +lbl_1_data_5A0 = .data:0x000005A0; // type:object size:0x5 scope:local data:string +lbl_1_data_5A5 = .data:0x000005A5; // type:object size:0x5 scope:local data:string +lbl_1_data_5AA = .data:0x000005AA; // type:object size:0x5 scope:local data:string +lbl_1_data_5AF = .data:0x000005AF; // type:object size:0x5 scope:local data:string +lbl_1_data_5B4 = .data:0x000005B4; // type:object size:0x8 scope:local +lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x24 scope:local data:4byte +lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0x10 scope:local +lbl_1_data_5F0 = .data:0x000005F0; // type:object size:0x20 scope:local +lbl_1_data_610 = .data:0x00000610; // type:object size:0xE scope:local data:string +lbl_1_data_61E = .data:0x0000061E; // type:object size:0xE scope:local data:string lbl_1_data_62C = .data:0x0000062C; // type:object size:0x10 -lbl_1_data_63C = .data:0x0000063C; // type:object size:0x3 data:string +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x3 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:2byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 scope:local data:2byte +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 scope:local data:4byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x24 data:2byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x2 data:2byte -lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x18 -lbl_1_bss_6A = .bss:0x0000006A; // type:object size:0x2 data:2byte -lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte -lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x2 data:2byte -lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte -lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte -lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x2 data:2byte -lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x30 -lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x2 data:2byte -lbl_1_bss_B2 = .bss:0x000000B2; // type:object size:0x8 -lbl_1_bss_BA = .bss:0x000000BA; // type:object size:0x8 data:2byte -lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x2 data:2byte -lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x10 -lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x10 -lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x10 -lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x6 data:2byte -lbl_1_bss_FA = .bss:0x000000FA; // type:object size:0x6 data:2byte -lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte -lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte -lbl_1_bss_108 = .bss:0x00000108; // type:object size:0xC -lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x20 -lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x6 -lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x2 data:2byte -lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0xD4 data:2byte -lbl_1_bss_210 = .bss:0x00000210; // type:object size:0x30 -lbl_1_bss_240 = .bss:0x00000240; // type:object size:0x30 -lbl_1_bss_270 = .bss:0x00000270; // type:object size:0x2 data:2byte -lbl_1_bss_272 = .bss:0x00000272; // type:object size:0x2 data:2byte -lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x2 data:2byte -lbl_1_bss_278 = .bss:0x00000278; // type:object size:0x4 data:4byte -lbl_1_bss_27C = .bss:0x0000027C; // type:object size:0x2 data:2byte -lbl_1_bss_27E = .bss:0x0000027E; // type:object size:0x2 data:2byte -lbl_1_bss_280 = .bss:0x00000280; // type:object size:0x2 data:2byte -lbl_1_bss_282 = .bss:0x00000282; // type:object size:0x6 data:2byte -lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x4 data:4byte -lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x8 data:4byte -lbl_1_bss_294 = .bss:0x00000294; // type:object size:0x4 data:float -lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x6 -lbl_1_bss_29E = .bss:0x0000029E; // type:object size:0x8 -lbl_1_bss_2A6 = .bss:0x000002A6; // type:object size:0x6 -lbl_1_bss_2AC = .bss:0x000002AC; // type:object size:0x2 data:2byte -lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 data:4byte -lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0xE -lbl_1_bss_2C2 = .bss:0x000002C2; // type:object size:0xE -lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x28 data:2byte -lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x2 data:2byte -lbl_1_bss_2FA = .bss:0x000002FA; // type:object size:0x2 data:2byte -lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0xC -lbl_1_bss_308 = .bss:0x00000308; // type:object size:0xC data:float -lbl_1_bss_314 = .bss:0x00000314; // type:object size:0x2 data:2byte -lbl_1_bss_318 = .bss:0x00000318; // type:object size:0x4 data:4byte -lbl_1_bss_31C = .bss:0x0000031C; // type:object size:0x4 data:4byte -lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x4 data:4byte -lbl_1_bss_324 = .bss:0x00000324; // type:object size:0x2 data:2byte -lbl_1_bss_326 = .bss:0x00000326; // type:object size:0x2 data:2byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC scope:local +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x18 scope:local +lbl_1_bss_6A = .bss:0x0000006A; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x30 scope:local +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_B2 = .bss:0x000000B2; // type:object size:0x8 scope:local +lbl_1_bss_BA = .bss:0x000000BA; // type:object size:0x8 scope:local data:2byte +lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x10 scope:local +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x10 scope:local +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x10 scope:local +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x6 scope:local data:2byte +lbl_1_bss_FA = .bss:0x000000FA; // type:object size:0x6 scope:local data:2byte +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0xC scope:local +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x20 scope:local +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x6 scope:local +lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0xD4 scope:local data:2byte +lbl_1_bss_210 = .bss:0x00000210; // type:object size:0x30 scope:local +lbl_1_bss_240 = .bss:0x00000240; // type:object size:0x30 scope:local +lbl_1_bss_270 = .bss:0x00000270; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_272 = .bss:0x00000272; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_278 = .bss:0x00000278; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_27C = .bss:0x0000027C; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_27E = .bss:0x0000027E; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_280 = .bss:0x00000280; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_282 = .bss:0x00000282; // type:object size:0x6 scope:local data:2byte +lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x8 scope:local data:4byte +lbl_1_bss_294 = .bss:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x6 scope:local +lbl_1_bss_29E = .bss:0x0000029E; // type:object size:0x8 scope:local +lbl_1_bss_2A6 = .bss:0x000002A6; // type:object size:0x6 scope:local +lbl_1_bss_2AC = .bss:0x000002AC; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0xE scope:local +lbl_1_bss_2C2 = .bss:0x000002C2; // type:object size:0xE scope:local +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x28 scope:local data:2byte +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_2FA = .bss:0x000002FA; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0xC scope:local +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0xC scope:local data:float +lbl_1_bss_314 = .bss:0x00000314; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_31C = .bss:0x0000031C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_324 = .bss:0x00000324; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_326 = .bss:0x00000326; // type:object size:0x2 scope:local data:2byte diff --git a/config/GMPJ01_00/rels/w05Dll/splits.txt b/config/GMPJ01_00/rels/w05Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/w05Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/w05Dll/symbols.txt b/config/GMPJ01_00/rels/w05Dll/symbols.txt deleted file mode 100644 index 03b04aa2..00000000 --- a/config/GMPJ01_00/rels/w05Dll/symbols.txt +++ /dev/null @@ -1,356 +0,0 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x30 -_prolog = .text:0x00000030; // type:function size:0x64 scope:global -_epilog = .text:0x00000094; // type:function size:0x4C scope:global -fn_1_E0 = .text:0x000000E0; // type:function size:0x4D8 -fn_1_5B8 = .text:0x000005B8; // type:function size:0x18C -fn_1_744 = .text:0x00000744; // type:function size:0x44 -fn_1_788 = .text:0x00000788; // type:function size:0x4 -fn_1_78C = .text:0x0000078C; // type:function size:0xA0 -fn_1_82C = .text:0x0000082C; // type:function size:0x100 -fn_1_92C = .text:0x0000092C; // type:function size:0x24 -fn_1_950 = .text:0x00000950; // type:function size:0x4 -fn_1_954 = .text:0x00000954; // type:function size:0x3F8 -fn_1_D4C = .text:0x00000D4C; // type:function size:0x38 -fn_1_D84 = .text:0x00000D84; // type:function size:0x80 -fn_1_E04 = .text:0x00000E04; // type:function size:0x3C -fn_1_E40 = .text:0x00000E40; // type:function size:0x2D4 -fn_1_1114 = .text:0x00001114; // type:function size:0xF4 -fn_1_1208 = .text:0x00001208; // type:function size:0x1CC -fn_1_13D4 = .text:0x000013D4; // type:function size:0xFC -fn_1_14D0 = .text:0x000014D0; // type:function size:0x2C -fn_1_14FC = .text:0x000014FC; // type:function size:0x60 -fn_1_155C = .text:0x0000155C; // type:function size:0x8E8 -fn_1_1E44 = .text:0x00001E44; // type:function size:0xCFC -fn_1_2B40 = .text:0x00002B40; // type:function size:0x13C -fn_1_2C7C = .text:0x00002C7C; // type:function size:0x3C8 -fn_1_3044 = .text:0x00003044; // type:function size:0x3EC -fn_1_3430 = .text:0x00003430; // type:function size:0xE4 -fn_1_3514 = .text:0x00003514; // type:function size:0x874 -fn_1_3D88 = .text:0x00003D88; // type:function size:0x104 -fn_1_3E8C = .text:0x00003E8C; // type:function size:0xE8 -fn_1_3F74 = .text:0x00003F74; // type:function size:0x64 -fn_1_3FD8 = .text:0x00003FD8; // type:function size:0x5C -fn_1_4034 = .text:0x00004034; // type:function size:0xE80 -fn_1_4EB4 = .text:0x00004EB4; // type:function size:0x794 -fn_1_5648 = .text:0x00005648; // type:function size:0x14C -fn_1_5794 = .text:0x00005794; // type:function size:0xB18 -fn_1_62AC = .text:0x000062AC; // type:function size:0x210 -fn_1_64BC = .text:0x000064BC; // type:function size:0x12C -fn_1_65E8 = .text:0x000065E8; // type:function size:0x88 -fn_1_6670 = .text:0x00006670; // type:function size:0x50 -fn_1_66C0 = .text:0x000066C0; // type:function size:0x254 -fn_1_6914 = .text:0x00006914; // type:function size:0x214 -fn_1_6B28 = .text:0x00006B28; // type:function size:0x54 -fn_1_6B7C = .text:0x00006B7C; // type:function size:0x708 -fn_1_7284 = .text:0x00007284; // type:function size:0x60 -fn_1_72E4 = .text:0x000072E4; // type:function size:0x30 -fn_1_7314 = .text:0x00007314; // type:function size:0xAC -fn_1_73C0 = .text:0x000073C0; // type:function size:0x40 -fn_1_7400 = .text:0x00007400; // type:function size:0xD0 -fn_1_74D0 = .text:0x000074D0; // type:function size:0x2E0 -fn_1_77B0 = .text:0x000077B0; // type:function size:0xF0 -fn_1_78A0 = .text:0x000078A0; // type:function size:0x88 -fn_1_7928 = .text:0x00007928; // type:function size:0x74 -fn_1_799C = .text:0x0000799C; // type:function size:0x4B0 -fn_1_7E4C = .text:0x00007E4C; // type:function size:0x48 -fn_1_7E94 = .text:0x00007E94; // type:function size:0x70 -fn_1_7F04 = .text:0x00007F04; // type:function size:0x1D4 -fn_1_80D8 = .text:0x000080D8; // type:function size:0x338 -fn_1_8410 = .text:0x00008410; // type:function size:0xFC -fn_1_850C = .text:0x0000850C; // type:function size:0x15C -fn_1_8668 = .text:0x00008668; // type:function size:0x130 -fn_1_8798 = .text:0x00008798; // type:function size:0xEC -fn_1_8884 = .text:0x00008884; // type:function size:0x34 -fn_1_88B8 = .text:0x000088B8; // type:function size:0xB4 -fn_1_896C = .text:0x0000896C; // type:function size:0x870 -fn_1_91DC = .text:0x000091DC; // type:function size:0x8C -fn_1_9268 = .text:0x00009268; // type:function size:0x418 -fn_1_9680 = .text:0x00009680; // type:function size:0x34 -fn_1_96B4 = .text:0x000096B4; // type:function size:0xAC -fn_1_9760 = .text:0x00009760; // type:function size:0x4C -fn_1_97AC = .text:0x000097AC; // type:function size:0x2BC -fn_1_9A68 = .text:0x00009A68; // type:function size:0x58 -fn_1_9AC0 = .text:0x00009AC0; // type:function size:0x30 -fn_1_9AF0 = .text:0x00009AF0; // type:function size:0x84 -fn_1_9B74 = .text:0x00009B74; // type:function size:0xB0 -fn_1_9C24 = .text:0x00009C24; // type:function size:0x74 -fn_1_9C98 = .text:0x00009C98; // type:function size:0x74 -fn_1_9D0C = .text:0x00009D0C; // type:function size:0x218 -fn_1_9F24 = .text:0x00009F24; // type:function size:0x300 -fn_1_A224 = .text:0x0000A224; // type:function size:0x2D4 -fn_1_A4F8 = .text:0x0000A4F8; // type:function size:0xB8 -fn_1_A5B0 = .text:0x0000A5B0; // type:function size:0x3E0 -fn_1_A990 = .text:0x0000A990; // type:function size:0x194 -fn_1_AB24 = .text:0x0000AB24; // type:function size:0x6F0 -fn_1_B214 = .text:0x0000B214; // type:function size:0x9C -fn_1_B2B0 = .text:0x0000B2B0; // type:function size:0x114 -fn_1_B3C4 = .text:0x0000B3C4; // type:function size:0x280 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:4byte -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0x118 -lbl_1_data_118 = .data:0x00000118; // type:object size:0x2 data:2byte -lbl_1_data_11A = .data:0x0000011A; // type:object size:0x2 data:2byte -lbl_1_data_11C = .data:0x0000011C; // type:object size:0x2 data:2byte -lbl_1_data_11E = .data:0x0000011E; // type:object size:0x2 data:2byte -lbl_1_data_120 = .data:0x00000120; // type:object size:0x2 data:2byte -lbl_1_data_124 = .data:0x00000124; // type:object size:0x20 -lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 -lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4 -lbl_1_data_150 = .data:0x00000150; // type:object size:0x14 -lbl_1_data_164 = .data:0x00000164; // type:object size:0x2 data:2byte -lbl_1_data_166 = .data:0x00000166; // type:object size:0xA -lbl_1_data_170 = .data:0x00000170; // type:object size:0x10 -lbl_1_data_180 = .data:0x00000180; // type:object size:0x4 data:4byte -lbl_1_data_184 = .data:0x00000184; // type:object size:0x4 -lbl_1_data_188 = .data:0x00000188; // type:object size:0x10 -lbl_1_data_198 = .data:0x00000198; // type:object size:0x8 -lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x8 data:string -lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0xC -lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x7 data:string -lbl_1_data_1BB = .data:0x000001BB; // type:object size:0x9 -lbl_1_data_1C4 = .data:0x000001C4; // type:object size:0x8 data:4byte -lbl_1_data_1CC = .data:0x000001CC; // type:object size:0xC -lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x8 data:string -lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x8 data:string -lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0xA data:string -lbl_1_data_1F2 = .data:0x000001F2; // type:object size:0xE -lbl_1_data_200 = .data:0x00000200; // type:object size:0x8 data:string -lbl_1_data_208 = .data:0x00000208; // type:object size:0x8 data:string -lbl_1_data_210 = .data:0x00000210; // type:object size:0x6 data:string -lbl_1_data_216 = .data:0x00000216; // type:object size:0x6 data:string -lbl_1_data_21C = .data:0x0000021C; // type:object size:0x7 data:string -lbl_1_data_223 = .data:0x00000223; // type:object size:0x9 -lbl_1_data_22C = .data:0x0000022C; // type:object size:0x18 -lbl_1_data_244 = .data:0x00000244; // type:object size:0x18 -lbl_1_data_25C = .data:0x0000025C; // type:object size:0x48 -lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x48 -lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x8 -lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x1C -lbl_1_data_310 = .data:0x00000310; // type:object size:0x8 -lbl_1_data_318 = .data:0x00000318; // type:object size:0x7 data:string -lbl_1_data_31F = .data:0x0000031F; // type:object size:0x7 data:string -lbl_1_data_326 = .data:0x00000326; // type:object size:0xA -lbl_1_data_330 = .data:0x00000330; // type:object size:0xC -lbl_1_data_33C = .data:0x0000033C; // type:object size:0x7 data:string -lbl_1_data_343 = .data:0x00000343; // type:object size:0xD data:string -lbl_1_data_350 = .data:0x00000350; // type:object size:0xF0 -lbl_1_data_440 = .data:0x00000440; // type:object size:0x10 -lbl_1_data_450 = .data:0x00000450; // type:object size:0x6 data:string -lbl_1_data_456 = .data:0x00000456; // type:object size:0x7 data:string -lbl_1_data_45D = .data:0x0000045D; // type:object size:0x7 data:string -lbl_1_data_464 = .data:0x00000464; // type:object size:0xC -lbl_1_data_470 = .data:0x00000470; // type:object size:0xC -lbl_1_data_47C = .data:0x0000047C; // type:object size:0xC -lbl_1_data_488 = .data:0x00000488; // type:object size:0x3 data:string -lbl_1_data_48B = .data:0x0000048B; // type:object size:0x4 data:string -lbl_1_data_48F = .data:0x0000048F; // type:object size:0x5 -lbl_1_data_494 = .data:0x00000494; // type:object size:0xC -lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0xD data:string -lbl_1_data_4AD = .data:0x000004AD; // type:object size:0x5 data:string -lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x6 -lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0xC -lbl_1_data_4C4 = .data:0x000004C4; // type:object size:0x3 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:2byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x14 data:2byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:2byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x8 data:2byte -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0xC data:float -lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x2 data:2byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x2 data:2byte -lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x2 data:2byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x2 data:2byte -lbl_1_bss_4E = .bss:0x0000004E; // type:object size:0xA data:2byte -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0xC -lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x2 data:2byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte -lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x6 -lbl_1_bss_72 = .bss:0x00000072; // type:object size:0x6 data:2byte -lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 data:4byte -lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0xC -lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte -lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte -lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte -lbl_1_bss_94 = .bss:0x00000094; // type:object size:0x4 data:4byte -lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte -lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x2 data:2byte -lbl_1_bss_9E = .bss:0x0000009E; // type:object size:0x2 data:2byte -lbl_1_bss_A2 = .bss:0x000000A2; // type:object size:0x2 data:2byte -lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x6 -lbl_1_bss_AA = .bss:0x000000AA; // type:object size:0x6 -lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x6 -lbl_1_bss_B6 = .bss:0x000000B6; // type:object size:0x2 data:2byte -lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte -lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte -lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x2 data:2byte -lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x2 data:2byte -lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x2 data:2byte -lbl_1_bss_C6 = .bss:0x000000C6; // type:object size:0x2 data:2byte -lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte -lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte -lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x4 data:4byte -lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x2 data:2byte -lbl_1_bss_D6 = .bss:0x000000D6; // type:object size:0x28 data:2byte -lbl_1_bss_FE = .bss:0x000000FE; // type:object size:0x2 data:2byte -lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x2 data:2byte -lbl_1_bss_102 = .bss:0x00000102; // type:object size:0x6 data:2byte diff --git a/config/GMPJ01_00/rels/w06Dll/splits.txt b/config/GMPJ01_00/rels/w06Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/w06Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/w06Dll/symbols.txt b/config/GMPJ01_00/rels/w06Dll/symbols.txt deleted file mode 100644 index 51c6c855..00000000 --- a/config/GMPJ01_00/rels/w06Dll/symbols.txt +++ /dev/null @@ -1,373 +0,0 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x30 -_prolog = .text:0x00000030; // type:function size:0x64 scope:global -_epilog = .text:0x00000094; // type:function size:0x4C scope:global -fn_1_E0 = .text:0x000000E0; // type:function size:0x4C4 -fn_1_5A4 = .text:0x000005A4; // type:function size:0x18C -fn_1_730 = .text:0x00000730; // type:function size:0x6C -fn_1_79C = .text:0x0000079C; // type:function size:0x20 -fn_1_7BC = .text:0x000007BC; // type:function size:0x144 -fn_1_900 = .text:0x00000900; // type:function size:0x84 -fn_1_984 = .text:0x00000984; // type:function size:0x3C -fn_1_9C0 = .text:0x000009C0; // type:function size:0x168 -fn_1_B28 = .text:0x00000B28; // type:function size:0x34 -fn_1_B5C = .text:0x00000B5C; // type:function size:0x214 -fn_1_D70 = .text:0x00000D70; // type:function size:0x1FC -fn_1_F6C = .text:0x00000F6C; // type:function size:0xE8 -fn_1_1054 = .text:0x00001054; // type:function size:0x90 -fn_1_10E4 = .text:0x000010E4; // type:function size:0x64 -fn_1_1148 = .text:0x00001148; // type:function size:0x68 -fn_1_11B0 = .text:0x000011B0; // type:function size:0xF0 -fn_1_12A0 = .text:0x000012A0; // type:function size:0x32C -fn_1_15CC = .text:0x000015CC; // type:function size:0x614 -fn_1_1BE0 = .text:0x00001BE0; // type:function size:0xD0 -fn_1_1CB0 = .text:0x00001CB0; // type:function size:0xAC -fn_1_1D5C = .text:0x00001D5C; // type:function size:0xD4 -fn_1_1E30 = .text:0x00001E30; // type:function size:0xD8 -fn_1_1F08 = .text:0x00001F08; // type:function size:0x140 -fn_1_2048 = .text:0x00002048; // type:function size:0x84 -fn_1_20CC = .text:0x000020CC; // type:function size:0xA8 -fn_1_2174 = .text:0x00002174; // type:function size:0x58 -fn_1_21CC = .text:0x000021CC; // type:function size:0x54 -fn_1_2220 = .text:0x00002220; // type:function size:0x21C -fn_1_243C = .text:0x0000243C; // type:function size:0x5E0 -fn_1_2A1C = .text:0x00002A1C; // type:function size:0x144 -fn_1_2B60 = .text:0x00002B60; // type:function size:0xB8 -fn_1_2C18 = .text:0x00002C18; // type:function size:0x178 -fn_1_2D90 = .text:0x00002D90; // type:function size:0x40 -fn_1_2DD0 = .text:0x00002DD0; // type:function size:0x48 -fn_1_2E18 = .text:0x00002E18; // type:function size:0xDC -fn_1_2EF4 = .text:0x00002EF4; // type:function size:0x57C -fn_1_3470 = .text:0x00003470; // type:function size:0xF0 -fn_1_3560 = .text:0x00003560; // type:function size:0x5C -fn_1_35BC = .text:0x000035BC; // type:function size:0x48 -fn_1_3604 = .text:0x00003604; // type:function size:0x94 -fn_1_3698 = .text:0x00003698; // type:function size:0x2DC -fn_1_3974 = .text:0x00003974; // type:function size:0x6FC -fn_1_4070 = .text:0x00004070; // type:function size:0xB4 -fn_1_4124 = .text:0x00004124; // type:function size:0x70 -fn_1_4194 = .text:0x00004194; // type:function size:0x118 -fn_1_42AC = .text:0x000042AC; // type:function size:0x130 -fn_1_43DC = .text:0x000043DC; // type:function size:0x84 -fn_1_4460 = .text:0x00004460; // type:function size:0x418 -fn_1_4878 = .text:0x00004878; // type:function size:0x198 -fn_1_4A10 = .text:0x00004A10; // type:function size:0x50 -fn_1_4A60 = .text:0x00004A60; // type:function size:0xA0 -fn_1_4B00 = .text:0x00004B00; // type:function size:0xA0 -fn_1_4BA0 = .text:0x00004BA0; // type:function size:0x58 -fn_1_4BF8 = .text:0x00004BF8; // type:function size:0x3C0 -fn_1_4FB8 = .text:0x00004FB8; // type:function size:0x1E4 -fn_1_519C = .text:0x0000519C; // type:function size:0x204 -fn_1_53A0 = .text:0x000053A0; // type:function size:0xF0 -fn_1_5490 = .text:0x00005490; // type:function size:0x23C -fn_1_56CC = .text:0x000056CC; // type:function size:0x110 -fn_1_57DC = .text:0x000057DC; // type:function size:0xA0 -fn_1_587C = .text:0x0000587C; // type:function size:0x80 -fn_1_58FC = .text:0x000058FC; // type:function size:0x6C -fn_1_5968 = .text:0x00005968; // type:function size:0x68 -fn_1_59D0 = .text:0x000059D0; // type:function size:0x13C -fn_1_5B0C = .text:0x00005B0C; // type:function size:0x48 -fn_1_5B54 = .text:0x00005B54; // type:function size:0x190 -fn_1_5CE4 = .text:0x00005CE4; // type:function size:0x1D8 -fn_1_5EBC = .text:0x00005EBC; // type:function size:0x40 -fn_1_5EFC = .text:0x00005EFC; // type:function size:0x5C -fn_1_5F58 = .text:0x00005F58; // type:function size:0x114 -fn_1_606C = .text:0x0000606C; // type:function size:0x9A0 -fn_1_6A0C = .text:0x00006A0C; // type:function size:0x240 -fn_1_6C4C = .text:0x00006C4C; // type:function size:0x244 -fn_1_6E90 = .text:0x00006E90; // type:function size:0x60 -fn_1_6EF0 = .text:0x00006EF0; // type:function size:0x90 -fn_1_6F80 = .text:0x00006F80; // type:function size:0x290 -fn_1_7210 = .text:0x00007210; // type:function size:0x94 -fn_1_72A4 = .text:0x000072A4; // type:function size:0x28 -fn_1_72CC = .text:0x000072CC; // type:function size:0x120 -fn_1_73EC = .text:0x000073EC; // type:function size:0xD0 -fn_1_74BC = .text:0x000074BC; // type:function size:0xB8 -fn_1_7574 = .text:0x00007574; // type:function size:0x100 -fn_1_7674 = .text:0x00007674; // type:function size:0xEC -fn_1_7760 = .text:0x00007760; // type:function size:0x1E4 -fn_1_7944 = .text:0x00007944; // type:function size:0x26C -fn_1_7BB0 = .text:0x00007BB0; // type:function size:0x38C -fn_1_7F3C = .text:0x00007F3C; // type:function size:0x68 -fn_1_7FA4 = .text:0x00007FA4; // type:function size:0x2C0 -fn_1_8264 = .text:0x00008264; // type:function size:0xBC -fn_1_8320 = .text:0x00008320; // type:function size:0x100 -fn_1_8420 = .text:0x00008420; // type:function size:0x70 -fn_1_8490 = .text:0x00008490; // type:function size:0x5C8 -fn_1_8A58 = .text:0x00008A58; // type:function size:0x4C8 -fn_1_8F20 = .text:0x00008F20; // type:function size:0x2B8 -fn_1_91D8 = .text:0x000091D8; // type:function size:0xBC -fn_1_9294 = .text:0x00009294; // type:function size:0x44 -fn_1_92D8 = .text:0x000092D8; // type:function size:0xF0 -fn_1_93C8 = .text:0x000093C8; // type:function size:0x10C -fn_1_94D4 = .text:0x000094D4; // type:function size:0xD8 -fn_1_95AC = .text:0x000095AC; // type:function size:0x8B0 -fn_1_9E5C = .text:0x00009E5C; // type:function size:0x5AC -fn_1_A408 = .text:0x0000A408; // type:function size:0x744 -fn_1_AB4C = .text:0x0000AB4C; // type:function size:0x730 -fn_1_B27C = .text:0x0000B27C; // type:function size:0x424 -fn_1_B6A0 = .text:0x0000B6A0; // type:function size:0x240 -fn_1_B8E0 = .text:0x0000B8E0; // type:function size:0x230 -fn_1_BB10 = .text:0x0000BB10; // type:function size:0x1F8 -fn_1_BD08 = .text:0x0000BD08; // type:function size:0x3C -fn_1_BD44 = .text:0x0000BD44; // type:function size:0x48 -fn_1_BD8C = .text:0x0000BD8C; // type:function size:0x37C -fn_1_C108 = .text:0x0000C108; // type:function size:0x1AC -fn_1_C2B4 = .text:0x0000C2B4; // type:function size:0x158 -fn_1_C40C = .text:0x0000C40C; // type:function size:0x5B0 -fn_1_C9BC = .text:0x0000C9BC; // type:function size:0xD0 -fn_1_CA8C = .text:0x0000CA8C; // type:function size:0x40 -fn_1_CACC = .text:0x0000CACC; // type:function size:0x1C4 -fn_1_CC90 = .text:0x0000CC90; // type:function size:0x7C -fn_1_CD0C = .text:0x0000CD0C; // type:function size:0x398 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:4byte -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:4byte -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x1 data:byte -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x1 data:byte -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x6 data:2byte -lbl_1_rodata_9A = .rodata:0x0000009A; // type:object size:0x1 data:byte -lbl_1_rodata_9E = .rodata:0x0000009E; // type:object size:0x6 data:2byte -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x5 -lbl_1_rodata_F5 = .rodata:0x000000F5; // type:object size:0x7 -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0xC data:4byte -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0xF0 -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x2 data:2byte -lbl_1_data_F2 = .data:0x000000F2; // type:object size:0x2 data:2byte -lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x2 data:2byte -lbl_1_data_F6 = .data:0x000000F6; // type:object size:0x2 data:2byte -lbl_1_data_F8 = .data:0x000000F8; // type:object size:0x8 -lbl_1_data_100 = .data:0x00000100; // type:object size:0x8 -lbl_1_data_108 = .data:0x00000108; // type:object size:0xA0 -lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x2 data:2byte -lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x1 data:byte -lbl_1_data_1AD = .data:0x000001AD; // type:object size:0x3 -lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2 data:2byte -lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0xC -lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x5 data:string -lbl_1_data_1C5 = .data:0x000001C5; // type:object size:0x13 -lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x2 data:2byte -lbl_1_data_1DA = .data:0x000001DA; // type:object size:0x2 data:2byte -lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x2 data:2byte -lbl_1_data_1DE = .data:0x000001DE; // type:object size:0x6 -lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x24 -lbl_1_data_208 = .data:0x00000208; // type:object size:0x20 -lbl_1_data_228 = .data:0x00000228; // type:object size:0x1 data:byte -lbl_1_data_22A = .data:0x0000022A; // type:object size:0x2 data:2byte -lbl_1_data_22C = .data:0x0000022C; // type:object size:0x2 data:2byte -lbl_1_data_230 = .data:0x00000230; // type:object size:0x38 -lbl_1_data_268 = .data:0x00000268; // type:object size:0x5 data:string -lbl_1_data_26D = .data:0x0000026D; // type:object size:0xE -lbl_1_data_27B = .data:0x0000027B; // type:object size:0x4 -lbl_1_data_27F = .data:0x0000027F; // type:object size:0x8 -lbl_1_data_287 = .data:0x00000287; // type:object size:0x12 data:string -lbl_1_data_299 = .data:0x00000299; // type:object size:0x11 data:string -lbl_1_data_2AA = .data:0x000002AA; // type:object size:0x18 data:string -lbl_1_data_2C2 = .data:0x000002C2; // type:object size:0x17 data:string -lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x16 data:string -lbl_1_data_2EF = .data:0x000002EF; // type:object size:0x10 data:string -lbl_1_data_2FF = .data:0x000002FF; // type:object size:0x10 data:string -lbl_1_data_30F = .data:0x0000030F; // type:object size:0x11 data:string -lbl_1_data_320 = .data:0x00000320; // type:object size:0x15 data:string -lbl_1_data_335 = .data:0x00000335; // type:object size:0x15 data:string -lbl_1_data_34A = .data:0x0000034A; // type:object size:0x10 data:string -lbl_1_data_35A = .data:0x0000035A; // type:object size:0x13 data:string -lbl_1_data_36D = .data:0x0000036D; // type:object size:0x13 data:string -lbl_1_data_380 = .data:0x00000380; // type:object size:0x98 -lbl_1_data_418 = .data:0x00000418; // type:object size:0x2 data:2byte -lbl_1_data_41C = .data:0x0000041C; // type:object size:0x18 -lbl_1_data_434 = .data:0x00000434; // type:object size:0x18 -lbl_1_data_44C = .data:0x0000044C; // type:object size:0xC -lbl_1_data_458 = .data:0x00000458; // type:object size:0x20 -lbl_1_data_478 = .data:0x00000478; // type:object size:0x20 -lbl_1_data_498 = .data:0x00000498; // type:object size:0x2 data:2byte -lbl_1_data_49A = .data:0x0000049A; // type:object size:0x2 data:2byte -lbl_1_data_49C = .data:0x0000049C; // type:object size:0x2 data:2byte -lbl_1_data_49E = .data:0x0000049E; // type:object size:0x2 data:2byte -lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x2 data:2byte -lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x2 data:2byte -lbl_1_data_4A4 = .data:0x000004A4; // type:object size:0x8 -lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x20 -lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x20 -lbl_1_data_4EC = .data:0x000004EC; // type:object size:0x24 -lbl_1_data_510 = .data:0x00000510; // type:object size:0x20 -lbl_1_data_530 = .data:0x00000530; // type:object size:0x6 data:string -lbl_1_data_536 = .data:0x00000536; // type:object size:0xB data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:2byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 data:byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x1 data:byte -lbl_1_bss_33 = .bss:0x00000033; // type:object size:0x1 data:byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte -lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x6 -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC data:2byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x1 data:byte -lbl_1_bss_59 = .bss:0x00000059; // type:object size:0x1 data:byte -lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x1 data:byte -lbl_1_bss_5B = .bss:0x0000005B; // type:object size:0x31 -lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte -lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x28 data:4byte -lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte -lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte -lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x2 data:2byte -lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x4 -lbl_1_bss_C6 = .bss:0x000000C6; // type:object size:0x1 data:byte -lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte -lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte -lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x6 -lbl_1_bss_D6 = .bss:0x000000D6; // type:object size:0xC -lbl_1_bss_E2 = .bss:0x000000E2; // type:object size:0x2 data:2byte -lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x2 data:2byte -lbl_1_bss_E6 = .bss:0x000000E6; // type:object size:0x1 data:byte -lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x4 data:4byte -lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x4 data:4byte -lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x4 data:4byte -lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x1 data:byte diff --git a/config/GMPJ01_00/rels/w10Dll/splits.txt b/config/GMPJ01_00/rels/w10Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/w10Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/w10Dll/symbols.txt b/config/GMPJ01_00/rels/w10Dll/symbols.txt deleted file mode 100644 index c99d83da..00000000 --- a/config/GMPJ01_00/rels/w10Dll/symbols.txt +++ /dev/null @@ -1,114 +0,0 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x30 -_prolog = .text:0x00000030; // type:function size:0x64 scope:global -_epilog = .text:0x00000094; // type:function size:0x4C scope:global -fn_1_E0 = .text:0x000000E0; // type:function size:0x5F8 -fn_1_6D8 = .text:0x000006D8; // type:function size:0x1E8 -fn_1_8C0 = .text:0x000008C0; // type:function size:0x44 -fn_1_904 = .text:0x00000904; // type:function size:0x4 -fn_1_908 = .text:0x00000908; // type:function size:0x4 -fn_1_90C = .text:0x0000090C; // type:function size:0x8 -fn_1_914 = .text:0x00000914; // type:function size:0x4 -fn_1_918 = .text:0x00000918; // type:function size:0x4 -fn_1_91C = .text:0x0000091C; // type:function size:0x4 -fn_1_920 = .text:0x00000920; // type:function size:0x1CC -fn_1_AEC = .text:0x00000AEC; // type:function size:0xB4 -fn_1_BA0 = .text:0x00000BA0; // type:function size:0x70 -fn_1_C10 = .text:0x00000C10; // type:function size:0x10 -fn_1_C20 = .text:0x00000C20; // type:function size:0x10C -fn_1_D2C = .text:0x00000D2C; // type:function size:0x28 -fn_1_D54 = .text:0x00000D54; // type:function size:0x28 -fn_1_D7C = .text:0x00000D7C; // type:function size:0x28 -fn_1_DA4 = .text:0x00000DA4; // type:function size:0x28 -fn_1_DCC = .text:0x00000DCC; // type:function size:0x28 -fn_1_DF4 = .text:0x00000DF4; // type:function size:0x28 -fn_1_E1C = .text:0x00000E1C; // type:function size:0x28 -fn_1_E44 = .text:0x00000E44; // type:function size:0x50 -fn_1_E94 = .text:0x00000E94; // type:function size:0x28 -fn_1_EBC = .text:0x00000EBC; // type:function size:0x28 -fn_1_EE4 = .text:0x00000EE4; // type:function size:0x4 -fn_1_EE8 = .text:0x00000EE8; // type:function size:0x48 -fn_1_F30 = .text:0x00000F30; // type:function size:0x3C -fn_1_F6C = .text:0x00000F6C; // type:function size:0x4C -fn_1_FB8 = .text:0x00000FB8; // type:function size:0x58 -fn_1_1010 = .text:0x00001010; // type:function size:0x4C -fn_1_105C = .text:0x0000105C; // type:function size:0x3C -fn_1_1098 = .text:0x00001098; // type:function size:0x28 -fn_1_10C0 = .text:0x000010C0; // type:function size:0x38 -fn_1_10F8 = .text:0x000010F8; // type:function size:0x3C -fn_1_1134 = .text:0x00001134; // type:function size:0x44 -fn_1_1178 = .text:0x00001178; // type:function size:0x28 -fn_1_11A0 = .text:0x000011A0; // type:function size:0x4C -fn_1_11EC = .text:0x000011EC; // type:function size:0x54 -fn_1_1240 = .text:0x00001240; // type:function size:0x38 -fn_1_1278 = .text:0x00001278; // type:function size:0x28 -fn_1_12A0 = .text:0x000012A0; // type:function size:0x3C -fn_1_12DC = .text:0x000012DC; // type:function size:0x28 -fn_1_1304 = .text:0x00001304; // type:function size:0x28 -fn_1_132C = .text:0x0000132C; // type:function size:0x28 -fn_1_1354 = .text:0x00001354; // type:function size:0x28 -fn_1_137C = .text:0x0000137C; // type:function size:0x28 -fn_1_13A4 = .text:0x000013A4; // type:function size:0x3C8 -fn_1_176C = .text:0x0000176C; // type:function size:0x30 -fn_1_179C = .text:0x0000179C; // type:function size:0x58 -fn_1_17F4 = .text:0x000017F4; // type:function size:0x40 -fn_1_1834 = .text:0x00001834; // type:function size:0x88 -fn_1_18BC = .text:0x000018BC; // type:function size:0x4C -fn_1_1908 = .text:0x00001908; // type:function size:0x28 -fn_1_1930 = .text:0x00001930; // type:function size:0x28 -fn_1_1958 = .text:0x00001958; // type:function size:0x28 -fn_1_1980 = .text:0x00001980; // type:function size:0x4 -fn_1_1984 = .text:0x00001984; // type:function size:0x128 -fn_1_1AAC = .text:0x00001AAC; // type:function size:0x2BC -fn_1_1D68 = .text:0x00001D68; // type:function size:0x84 -fn_1_1DEC = .text:0x00001DEC; // type:function size:0x50 -fn_1_1E3C = .text:0x00001E3C; // type:function size:0x174 -fn_1_1FB0 = .text:0x00001FB0; // type:function size:0xBC -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0x28 -lbl_1_data_28 = .data:0x00000028; // type:object size:0x2 data:2byte -lbl_1_data_2A = .data:0x0000002A; // type:object size:0x2 data:2byte -lbl_1_data_2C = .data:0x0000002C; // type:object size:0x2 data:2byte -lbl_1_data_2E = .data:0x0000002E; // type:object size:0x2 data:2byte -lbl_1_data_30 = .data:0x00000030; // type:object size:0x2 data:2byte -lbl_1_data_32 = .data:0x00000032; // type:object size:0x22 data:2byte -lbl_1_data_54 = .data:0x00000054; // type:object size:0x8 -lbl_1_data_5C = .data:0x0000005C; // type:object size:0x8 -lbl_1_data_64 = .data:0x00000064; // type:object size:0x8 -lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC -lbl_1_data_78 = .data:0x00000078; // type:object size:0x8 -lbl_1_data_80 = .data:0x00000080; // type:object size:0x18 -lbl_1_data_98 = .data:0x00000098; // type:object size:0x2E -lbl_1_data_C6 = .data:0x000000C6; // type:object size:0x42 -lbl_1_data_108 = .data:0x00000108; // type:object size:0x150 -lbl_1_data_258 = .data:0x00000258; // type:object size:0x50 data:string -lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x2C -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x8 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte -lbl_1_bss_E = .bss:0x0000000E; // type:object size:0x2 data:2byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x8 data:2byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x2 data:2byte -lbl_1_bss_1E = .bss:0x0000001E; // type:object size:0x2 data:2byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte -lbl_1_bss_22 = .bss:0x00000022; // type:object size:0x16 diff --git a/config/GMPJ01_00/rels/w20Dll/splits.txt b/config/GMPJ01_00/rels/w20Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/w20Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/w20Dll/symbols.txt b/config/GMPJ01_00/rels/w20Dll/symbols.txt deleted file mode 100644 index 709c60ad..00000000 --- a/config/GMPJ01_00/rels/w20Dll/symbols.txt +++ /dev/null @@ -1,27 +0,0 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x30 -_prolog = .text:0x00000030; // type:function size:0x64 scope:global -_epilog = .text:0x00000094; // type:function size:0x4C scope:global -fn_1_E0 = .text:0x000000E0; // type:function size:0x2B0 -fn_1_390 = .text:0x00000390; // type:function size:0xBC -fn_1_44C = .text:0x0000044C; // type:function size:0x44 -fn_1_490 = .text:0x00000490; // type:function size:0x4 -fn_1_494 = .text:0x00000494; // type:function size:0x4 -fn_1_498 = .text:0x00000498; // type:function size:0x8 -fn_1_4A0 = .text:0x000004A0; // type:function size:0x4 -fn_1_4A4 = .text:0x000004A4; // type:function size:0x4 -fn_1_4A8 = .text:0x000004A8; // type:function size:0x4 -fn_1_4AC = .text:0x000004AC; // type:function size:0x1CC -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte -lbl_1_data_2 = .data:0x00000002; // type:object size:0x2 data:2byte -lbl_1_data_6 = .data:0x00000006; // type:object size:0x2 data:2byte -lbl_1_data_8 = .data:0x00000008; // type:object size:0x24 data:2byte -lbl_1_data_2C = .data:0x0000002C; // type:object size:0x8 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xE diff --git a/config/GMPJ01_00/rels/w21Dll/splits.txt b/config/GMPJ01_00/rels/w21Dll/splits.txt deleted file mode 100644 index be323846..00000000 --- a/config/GMPJ01_00/rels/w21Dll/splits.txt +++ /dev/null @@ -1,6 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 diff --git a/config/GMPJ01_00/rels/w21Dll/symbols.txt b/config/GMPJ01_00/rels/w21Dll/symbols.txt deleted file mode 100644 index 1e9f2fcb..00000000 --- a/config/GMPJ01_00/rels/w21Dll/symbols.txt +++ /dev/null @@ -1,18 +0,0 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x30 -_prolog = .text:0x00000030; // type:function size:0x64 scope:global -_epilog = .text:0x00000094; // type:function size:0x4C scope:global -fn_1_E0 = .text:0x000000E0; // type:function size:0x1D4 -fn_1_2B4 = .text:0x000002B4; // type:function size:0xB8 -fn_1_36C = .text:0x0000036C; // type:function size:0x44 -fn_1_3B0 = .text:0x000003B0; // type:function size:0x20 -fn_1_3D0 = .text:0x000003D0; // type:function size:0x8 -fn_1_3D8 = .text:0x000003D8; // type:function size:0x4 -fn_1_3DC = .text:0x000003DC; // type:function size:0x4 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte -lbl_1_data_2 = .data:0x00000002; // type:object size:0x2 data:2byte -lbl_1_data_4 = .data:0x00000004; // type:object size:0x2 data:2byte -lbl_1_data_8 = .data:0x00000008; // type:object size:0x8 diff --git a/config/GMPJ01_00/symbols.txt b/config/GMPJ01_00/symbols.txt index f2e3abc5..8701d170 100644 --- a/config/GMPJ01_00/symbols.txt +++ b/config/GMPJ01_00/symbols.txt @@ -4534,7 +4534,7 @@ lbl_801A49D8 = .bss:0x801A49D8; // type:object size:0x20 lbl_801A49F8 = .bss:0x801A49F8; // type:object size:0x10 data:float lbl_801A4A08 = .bss:0x801A4A08; // type:object size:0x500 data:byte lbl_801A4F08 = .bss:0x801A4F08; // type:object size:0x80 -lbl_801A4F88 = .bss:0x801A4F88; // type:object size:0x18 data:4byte +boardTutorialData = .bss:0x801A4F88; // type:object size:0x18 data:4byte DriveInfo = .bss:0x801A4FA0; // type:object size:0x20 scope:local __OSErrorTable = .bss:0x801A4FF0; // type:object size:0x40 scope:global lbl_801A5040 = .bss:0x801A5040; // type:object size:0x20 diff --git a/config/GMPP01_02/rels/w04Dll/splits.txt b/config/GMPP01_02/rels/w04Dll/splits.txt new file mode 100644 index 00000000..c1698acd --- /dev/null +++ b/config/GMPP01_02/rels/w04Dll/splits.txt @@ -0,0 +1,7 @@ +Sections: + .text type:code align:4 + .section2 type:data align:8 + .section3 type:data align:4 + .section4 type:data align:8 + .section5 type:data align:8 + .bss type:bss align:8 diff --git a/config/GMPP01_02/rels/w04Dll/symbols.txt b/config/GMPP01_02/rels/w04Dll/symbols.txt new file mode 100644 index 00000000..cc5cf0ab --- /dev/null +++ b/config/GMPP01_02/rels/w04Dll/symbols.txt @@ -0,0 +1,399 @@ +_prolog = .text:0x00000030; // type:function scope:global +_epilog = .text:0x00000094; // type:function scope:global +lbl_1_text_E0 = .text:0x000000E0; // type:label +lbl_1_text_5F4 = .text:0x000005F4; // type:label +lbl_1_text_750 = .text:0x00000750; // type:label +lbl_1_text_794 = .text:0x00000794; // type:label +lbl_1_text_798 = .text:0x00000798; // type:label +lbl_1_text_7FC = .text:0x000007FC; // type:label +lbl_1_text_958 = .text:0x00000958; // type:label +lbl_1_text_CF8 = .text:0x00000CF8; // type:label +lbl_1_text_103C = .text:0x0000103C; // type:label +lbl_1_text_1618 = .text:0x00001618; // type:label +lbl_1_text_1E60 = .text:0x00001E60; // type:label +lbl_1_text_2008 = .text:0x00002008; // type:label +lbl_1_text_2044 = .text:0x00002044; // type:label +lbl_1_text_20EC = .text:0x000020EC; // type:label +lbl_1_text_2FDC = .text:0x00002FDC; // type:label +lbl_1_text_30A4 = .text:0x000030A4; // type:label +lbl_1_text_38D8 = .text:0x000038D8; // type:label +lbl_1_text_45A8 = .text:0x000045A8; // type:label +lbl_1_text_4630 = .text:0x00004630; // type:label +lbl_1_text_4848 = .text:0x00004848; // type:label +lbl_1_text_55A0 = .text:0x000055A0; // type:label +lbl_1_text_59C4 = .text:0x000059C4; // type:label +lbl_1_text_5A2C = .text:0x00005A2C; // type:label +lbl_1_text_62B0 = .text:0x000062B0; // type:label +lbl_1_text_757C = .text:0x0000757C; // type:label +lbl_1_text_75D8 = .text:0x000075D8; // type:label +lbl_1_text_9BC0 = .text:0x00009BC0; // type:label +lbl_1_text_9E8C = .text:0x00009E8C; // type:label +lbl_1_text_A700 = .text:0x0000A700; // type:label +lbl_1_text_C36C = .text:0x0000C36C; // type:label +lbl_1_text_CF70 = .text:0x0000CF70; // type:label +lbl_1_text_D158 = .text:0x0000D158; // type:label +lbl_1_text_D214 = .text:0x0000D214; // type:label +lbl_1_text_D288 = .text:0x0000D288; // type:label +lbl_1_text_D538 = .text:0x0000D538; // type:label +lbl_1_text_D68C = .text:0x0000D68C; // type:label +lbl_1_text_D6F0 = .text:0x0000D6F0; // type:label +lbl_1_text_D754 = .text:0x0000D754; // type:label +lbl_1_text_DFE8 = .text:0x0000DFE8; // type:label +lbl_1_text_E128 = .text:0x0000E128; // type:label +lbl_1_text_E170 = .text:0x0000E170; // type:label +lbl_1_text_E358 = .text:0x0000E358; // type:label +lbl_1_text_E4A4 = .text:0x0000E4A4; // type:label +lbl_1_text_E690 = .text:0x0000E690; // type:label +lbl_1_section2_0 = .section2:0x00000000; // type:object size:0x4 +lbl_1_section3_0 = .section3:0x00000000; // type:object size:0x4 +lbl_1_section4_10 = .section4:0x00000010; // type:object size:0x4 +lbl_1_section4_14 = .section4:0x00000014; // type:object size:0x4 +lbl_1_section4_18 = .section4:0x00000018; // type:object size:0x4 +lbl_1_section4_1C = .section4:0x0000001C; // type:object size:0x4 +lbl_1_section4_20 = .section4:0x00000020; // type:object size:0x4 +lbl_1_section4_24 = .section4:0x00000024; // type:object size:0x4 +lbl_1_section4_28 = .section4:0x00000028; // type:object size:0x4 +lbl_1_section4_2C = .section4:0x0000002C; // type:object size:0x4 +lbl_1_section4_30 = .section4:0x00000030; // type:object size:0x8 +lbl_1_section4_38 = .section4:0x00000038; // type:object size:0x4 +lbl_1_section4_3C = .section4:0x0000003C; // type:object size:0x4 +lbl_1_section4_40 = .section4:0x00000040; // type:object size:0x4 +lbl_1_section4_44 = .section4:0x00000044; // type:object size:0x4 +lbl_1_section4_48 = .section4:0x00000048; // type:object size:0x4 +lbl_1_section4_4C = .section4:0x0000004C; // type:object size:0x4 +lbl_1_section4_50 = .section4:0x00000050; // type:object size:0x4 +lbl_1_section4_54 = .section4:0x00000054; // type:object size:0x4 +lbl_1_section4_58 = .section4:0x00000058; // type:object size:0x8 +lbl_1_section4_60 = .section4:0x00000060; // type:object size:0x8 +lbl_1_section4_68 = .section4:0x00000068; // type:object size:0x4 +lbl_1_section4_6C = .section4:0x0000006C; // type:object size:0x4 +lbl_1_section4_70 = .section4:0x00000070; // type:object size:0x4 +lbl_1_section4_74 = .section4:0x00000074; // type:object size:0x4 +lbl_1_section4_78 = .section4:0x00000078; // type:object size:0x4 +lbl_1_section4_7C = .section4:0x0000007C; // type:object size:0x4 +lbl_1_section4_80 = .section4:0x00000080; // type:object size:0x8 +lbl_1_section4_88 = .section4:0x00000088; // type:object size:0x8 +lbl_1_section4_90 = .section4:0x00000090; // type:object size:0x8 +lbl_1_section4_98 = .section4:0x00000098; // type:object size:0x4 +lbl_1_section4_9C = .section4:0x0000009C; // type:object size:0x4 +lbl_1_section4_A0 = .section4:0x000000A0; // type:object size:0x8 +lbl_1_section4_A8 = .section4:0x000000A8; // type:object size:0x8 +lbl_1_section4_B0 = .section4:0x000000B0; // type:object size:0x8 +lbl_1_section4_B8 = .section4:0x000000B8; // type:object size:0x4 +lbl_1_section4_BC = .section4:0x000000BC; // type:object size:0x4 +lbl_1_section4_C0 = .section4:0x000000C0; // type:object size:0x4 +lbl_1_section4_C4 = .section4:0x000000C4; // type:object size:0x4 +lbl_1_section4_C8 = .section4:0x000000C8; // type:object size:0x4 +lbl_1_section4_CC = .section4:0x000000CC; // type:object size:0x4 +lbl_1_section4_D0 = .section4:0x000000D0; // type:object size:0x4 +lbl_1_section4_D4 = .section4:0x000000D4; // type:object size:0x4 +lbl_1_section4_D8 = .section4:0x000000D8; // type:object size:0x8 +lbl_1_section4_E0 = .section4:0x000000E0; // type:object size:0x8 +lbl_1_section4_E8 = .section4:0x000000E8; // type:object size:0x8 +lbl_1_section4_F0 = .section4:0x000000F0; // type:object size:0x4 +lbl_1_section4_F4 = .section4:0x000000F4; // type:object size:0x4 +lbl_1_section4_F8 = .section4:0x000000F8; // type:object size:0x4 +lbl_1_section4_FC = .section4:0x000000FC; // type:object size:0x4 +lbl_1_section4_100 = .section4:0x00000100; // type:object size:0x4 +lbl_1_section4_104 = .section4:0x00000104; // type:object size:0x4 +lbl_1_section4_108 = .section4:0x00000108; // type:object size:0x4 +lbl_1_section4_10C = .section4:0x0000010C; // type:object size:0x4 +lbl_1_section4_110 = .section4:0x00000110; // type:object size:0x4 +lbl_1_section4_114 = .section4:0x00000114; // type:object size:0x4 +lbl_1_section4_118 = .section4:0x00000118; // type:object size:0x4 +lbl_1_section4_11C = .section4:0x0000011C; // type:object size:0x4 +lbl_1_section4_120 = .section4:0x00000120; // type:object size:0x8 +lbl_1_section4_128 = .section4:0x00000128; // type:object size:0x8 +lbl_1_section4_130 = .section4:0x00000130; // type:object size:0x4 +lbl_1_section4_134 = .section4:0x00000134; // type:object size:0x4 +lbl_1_section4_138 = .section4:0x00000138; // type:object size:0x4 +lbl_1_section4_13C = .section4:0x0000013C; // type:object size:0x4 +lbl_1_section4_140 = .section4:0x00000140; // type:object size:0x8 +lbl_1_section4_148 = .section4:0x00000148; // type:object size:0x8 +lbl_1_section4_150 = .section4:0x00000150; // type:object size:0x4 +lbl_1_section4_154 = .section4:0x00000154; // type:object size:0x4 +lbl_1_section4_158 = .section4:0x00000158; // type:object size:0x4 +lbl_1_section4_15C = .section4:0x0000015C; // type:object size:0x4 +lbl_1_section4_160 = .section4:0x00000160; // type:object size:0x4 +lbl_1_section4_164 = .section4:0x00000164; // type:object size:0x4 +lbl_1_section4_168 = .section4:0x00000168; // type:object size:0x4 +lbl_1_section4_16C = .section4:0x0000016C; // type:object size:0x4 +lbl_1_section4_170 = .section4:0x00000170; // type:object size:0x4 +lbl_1_section4_174 = .section4:0x00000174; // type:object size:0x4 +lbl_1_section4_178 = .section4:0x00000178; // type:object size:0x4 +lbl_1_section4_17C = .section4:0x0000017C; // type:object size:0x4 +lbl_1_section4_180 = .section4:0x00000180; // type:object size:0x4 +lbl_1_section4_184 = .section4:0x00000184; // type:object size:0x4 +lbl_1_section4_188 = .section4:0x00000188; // type:object size:0x4 +lbl_1_section4_18C = .section4:0x0000018C; // type:object size:0x4 +lbl_1_section4_190 = .section4:0x00000190; // type:object size:0x4 +lbl_1_section4_194 = .section4:0x00000194; // type:object size:0x4 +lbl_1_section4_198 = .section4:0x00000198; // type:object size:0x8 +lbl_1_section4_1A0 = .section4:0x000001A0; // type:object size:0x4 +lbl_1_section4_1A4 = .section4:0x000001A4; // type:object size:0x4 +lbl_1_section4_1A8 = .section4:0x000001A8; // type:object size:0x4 +lbl_1_section4_1AC = .section4:0x000001AC; // type:object size:0x4 +lbl_1_section4_1B0 = .section4:0x000001B0; // type:object size:0x4 +lbl_1_section4_1B4 = .section4:0x000001B4; // type:object size:0x4 +lbl_1_section4_1B8 = .section4:0x000001B8; // type:object size:0x4 +lbl_1_section4_1BC = .section4:0x000001BC; // type:object size:0x4 +lbl_1_section4_1C0 = .section4:0x000001C0; // type:object size:0x4 +lbl_1_section4_1C4 = .section4:0x000001C4; // type:object size:0x4 +lbl_1_section4_1C8 = .section4:0x000001C8; // type:object size:0x4 +lbl_1_section4_1CC = .section4:0x000001CC; // type:object size:0x4 +lbl_1_section4_1D0 = .section4:0x000001D0; // type:object size:0x4 +lbl_1_section4_1D4 = .section4:0x000001D4; // type:object size:0x4 +lbl_1_section4_1D8 = .section4:0x000001D8; // type:object size:0x4 +lbl_1_section4_1DC = .section4:0x000001DC; // type:object size:0x4 +lbl_1_section4_1E0 = .section4:0x000001E0; // type:object size:0x4 +lbl_1_section4_1E4 = .section4:0x000001E4; // type:object size:0x4 +lbl_1_section4_1E8 = .section4:0x000001E8; // type:object size:0x4 +lbl_1_section4_1EC = .section4:0x000001EC; // type:object size:0x4 +lbl_1_section4_1F0 = .section4:0x000001F0; // type:object size:0x8 +lbl_1_section4_1F8 = .section4:0x000001F8; // type:object size:0x8 +lbl_1_section4_200 = .section4:0x00000200; // type:object size:0x4 +lbl_1_section4_204 = .section4:0x00000204; // type:object size:0x4 data:string +lbl_1_section4_208 = .section4:0x00000208; // type:object size:0x8 +lbl_1_section4_210 = .section4:0x00000210; // type:object size:0x8 +lbl_1_section4_218 = .section4:0x00000218; // type:object size:0x8 +lbl_1_section4_220 = .section4:0x00000220; // type:object size:0x4 +lbl_1_section4_224 = .section4:0x00000224; // type:object size:0x4 +lbl_1_section4_228 = .section4:0x00000228; // type:object size:0x4 +lbl_1_section4_22C = .section4:0x0000022C; // type:object size:0xC +lbl_1_section4_238 = .section4:0x00000238; // type:object size:0x4 +lbl_1_section4_23C = .section4:0x0000023C; // type:object size:0x4 +lbl_1_section4_240 = .section4:0x00000240; // type:object size:0x8 +lbl_1_section4_248 = .section4:0x00000248; // type:object size:0x8 +lbl_1_section4_250 = .section4:0x00000250; // type:object size:0x4 +lbl_1_section4_254 = .section4:0x00000254; // type:object size:0x4 +lbl_1_section4_258 = .section4:0x00000258; // type:object size:0x4 +lbl_1_section4_25C = .section4:0x0000025C; // type:object size:0x4 +lbl_1_section4_260 = .section4:0x00000260; // type:object size:0x4 +lbl_1_section4_264 = .section4:0x00000264; // type:object size:0x4 +lbl_1_section4_268 = .section4:0x00000268; // type:object size:0x4 +lbl_1_section4_26C = .section4:0x0000026C; // type:object size:0x4 +lbl_1_section4_270 = .section4:0x00000270; // type:object size:0x4 +lbl_1_section4_274 = .section4:0x00000274; // type:object size:0x4 +lbl_1_section4_278 = .section4:0x00000278; // type:object size:0x4 +lbl_1_section4_27C = .section4:0x0000027C; // type:object size:0x4 +lbl_1_section4_280 = .section4:0x00000280; // type:object size:0x4 +lbl_1_section4_284 = .section4:0x00000284; // type:object size:0xC +lbl_1_section4_290 = .section4:0x00000290; // type:object size:0x4 +lbl_1_section4_294 = .section4:0x00000294; // type:object size:0x4 +lbl_1_section4_298 = .section4:0x00000298; // type:object size:0x4 +lbl_1_section4_29C = .section4:0x0000029C; // type:object size:0x4 +lbl_1_section4_2A0 = .section4:0x000002A0; // type:object size:0x4 +lbl_1_section4_2A4 = .section4:0x000002A4; // type:object size:0x4 +lbl_1_section4_2A8 = .section4:0x000002A8; // type:object size:0x4 +lbl_1_section4_2AC = .section4:0x000002AC; // type:object size:0x4 +lbl_1_section4_2B0 = .section4:0x000002B0; // type:object size:0x4 +lbl_1_section4_2B4 = .section4:0x000002B4; // type:object size:0x4 +lbl_1_section4_2B8 = .section4:0x000002B8; // type:object size:0x8 +lbl_1_section4_2C0 = .section4:0x000002C0; // type:object size:0x4 +lbl_1_section4_2C4 = .section4:0x000002C4; // type:object size:0x4 +lbl_1_section4_2C8 = .section4:0x000002C8; // type:object size:0x4 +lbl_1_section4_2CC = .section4:0x000002CC; // type:object size:0x4 +lbl_1_section4_2D0 = .section4:0x000002D0; // type:object size:0x4 +lbl_1_section4_2D4 = .section4:0x000002D4; // type:object size:0x4 +lbl_1_section4_2D8 = .section4:0x000002D8; // type:object size:0x4 +lbl_1_section4_2DC = .section4:0x000002DC; // type:object size:0x4 +lbl_1_section4_2E0 = .section4:0x000002E0; // type:object size:0x4 +lbl_1_section4_2E4 = .section4:0x000002E4; // type:object size:0x4 +lbl_1_section4_2E8 = .section4:0x000002E8; // type:object size:0x8 +lbl_1_section4_2F0 = .section4:0x000002F0; // type:object size:0x8 +lbl_1_section4_2F8 = .section4:0x000002F8; // type:object size:0x8 +lbl_1_section4_300 = .section4:0x00000300; // type:object size:0x4 +lbl_1_section4_304 = .section4:0x00000304; // type:object size:0x4 +lbl_1_section4_308 = .section4:0x00000308; // type:object size:0x8 +lbl_1_section4_310 = .section4:0x00000310; // type:object size:0x8 +lbl_1_section4_318 = .section4:0x00000318; // type:object size:0x8 +lbl_1_section4_320 = .section4:0x00000320; // type:object size:0x4 +lbl_1_section4_324 = .section4:0x00000324; // type:object size:0x4 +lbl_1_section4_328 = .section4:0x00000328; // type:object size:0x4 +lbl_1_section4_32C = .section4:0x0000032C; // type:object size:0x4 +lbl_1_section4_330 = .section4:0x00000330; // type:object size:0x4 +lbl_1_section4_334 = .section4:0x00000334; // type:object size:0x4 +lbl_1_section4_338 = .section4:0x00000338; // type:object size:0x4 +lbl_1_section4_33C = .section4:0x0000033C; // type:object size:0x4 +lbl_1_section4_340 = .section4:0x00000340; // type:object size:0x4 +lbl_1_section4_344 = .section4:0x00000344; // type:object size:0x4 +lbl_1_section4_348 = .section4:0x00000348; // type:object size:0x4 +lbl_1_section4_34C = .section4:0x0000034C; // type:object size:0x4 +lbl_1_section4_350 = .section4:0x00000350; // type:object size:0x8 +lbl_1_section4_358 = .section4:0x00000358; // type:object size:0x8 +lbl_1_section4_360 = .section4:0x00000360; // type:object size:0x4 +lbl_1_section4_364 = .section4:0x00000364; // type:object size:0x4 +lbl_1_section4_368 = .section4:0x00000368; // type:object size:0x4 +lbl_1_section4_36C = .section4:0x0000036C; // type:object size:0x4 +lbl_1_section4_370 = .section4:0x00000370; // type:object size:0x8 +lbl_1_section4_378 = .section4:0x00000378; // type:object size:0x8 +lbl_1_section4_380 = .section4:0x00000380; // type:object size:0x4 +lbl_1_section4_384 = .section4:0x00000384; // type:object size:0x4 +lbl_1_section4_388 = .section4:0x00000388; // type:object size:0x4 +lbl_1_section4_38C = .section4:0x0000038C; // type:object size:0x4 +lbl_1_section4_390 = .section4:0x00000390; // type:object size:0x4 +lbl_1_section4_394 = .section4:0x00000394; // type:object size:0x4 +lbl_1_section4_398 = .section4:0x00000398; // type:object size:0x8 +lbl_1_section4_3A0 = .section4:0x000003A0; // type:object size:0x4 +lbl_1_section4_3A4 = .section4:0x000003A4; // type:object size:0x4 +lbl_1_section4_3A8 = .section4:0x000003A8; // type:object size:0x4 +lbl_1_section4_3AC = .section4:0x000003AC; // type:object size:0x4 +lbl_1_section4_3B0 = .section4:0x000003B0; // type:object size:0x4 +lbl_1_section4_3B4 = .section4:0x000003B4; // type:object size:0x4 +lbl_1_section4_3B8 = .section4:0x000003B8; // type:object size:0x4 +lbl_1_section4_3BC = .section4:0x000003BC; // type:object size:0x4 +lbl_1_section4_3C0 = .section4:0x000003C0; // type:object size:0x4 +lbl_1_section4_3C4 = .section4:0x000003C4; // type:object size:0x4 +lbl_1_section4_3C8 = .section4:0x000003C8; // type:object size:0x4 +lbl_1_section4_3CC = .section4:0x000003CC; // type:object size:0x4 +lbl_1_section4_3D0 = .section4:0x000003D0; // type:object size:0x8 +lbl_1_section4_3D8 = .section4:0x000003D8; // type:object size:0x4 +lbl_1_section4_3DC = .section4:0x000003DC; // type:object size:0x4 +lbl_1_section4_3E0 = .section4:0x000003E0; // type:object size:0x4 +lbl_1_section4_3E4 = .section4:0x000003E4; // type:object size:0x4 +lbl_1_section4_3E8 = .section4:0x000003E8; // type:object size:0x4 +lbl_1_section4_3EC = .section4:0x000003EC; // type:object size:0x4 +lbl_1_section4_3F0 = .section4:0x000003F0; // type:object size:0x4 +lbl_1_section4_3F4 = .section4:0x000003F4; // type:object size:0x4 +lbl_1_section4_3F8 = .section4:0x000003F8; // type:object size:0x4 +lbl_1_section4_3FC = .section4:0x000003FC; // type:object size:0x4 +lbl_1_section4_400 = .section4:0x00000400; // type:object size:0x4 +lbl_1_section4_404 = .section4:0x00000404; // type:object size:0x4 +lbl_1_section4_408 = .section4:0x00000408; // type:object size:0x8 +lbl_1_section4_410 = .section4:0x00000410; // type:object size:0x8 +lbl_1_section4_418 = .section4:0x00000418; // type:object size:0x4 +lbl_1_section4_41C = .section4:0x0000041C; // type:object size:0x4 +lbl_1_section4_420 = .section4:0x00000420; // type:object size:0x4 +lbl_1_section4_424 = .section4:0x00000424; // type:object size:0x4 +lbl_1_section5_0 = .section5:0x00000000; // type:object size:0x280 +lbl_1_section5_280 = .section5:0x00000280; // type:object size:0x2 +lbl_1_section5_282 = .section5:0x00000282; // type:object size:0x2 +lbl_1_section5_284 = .section5:0x00000284; // type:object size:0x2 +lbl_1_section5_286 = .section5:0x00000286; // type:object size:0x2 +lbl_1_section5_288 = .section5:0x00000288; // type:object size:0x8 +lbl_1_section5_290 = .section5:0x00000290; // type:object size:0x8 +lbl_1_section5_298 = .section5:0x00000298; // type:object size:0x8 +lbl_1_section5_2A0 = .section5:0x000002A0; // type:object size:0xC +lbl_1_section5_2AC = .section5:0x000002AC; // type:object size:0x24 +lbl_1_section5_2D0 = .section5:0x000002D0; // type:object size:0x20 +lbl_1_section5_2F0 = .section5:0x000002F0; // type:object size:0x4 +lbl_1_section5_2F4 = .section5:0x000002F4; // type:object size:0x20 +lbl_1_section5_314 = .section5:0x00000314; // type:object size:0x20 +lbl_1_section5_334 = .section5:0x00000334; // type:object size:0x5 data:string +lbl_1_section5_339 = .section5:0x00000339; // type:object size:0x5 data:string +lbl_1_section5_33E = .section5:0x0000033E; // type:object size:0x5 data:string +lbl_1_section5_343 = .section5:0x00000343; // type:object size:0x5 data:string +lbl_1_section5_348 = .section5:0x00000348; // type:object size:0x10 +lbl_1_section5_358 = .section5:0x00000358; // type:object size:0x10 +lbl_1_section5_368 = .section5:0x00000368; // type:object size:0x8 data:string +lbl_1_section5_370 = .section5:0x00000370; // type:object size:0x12 data:string +lbl_1_section5_382 = .section5:0x00000382; // type:object size:0x11 data:string +lbl_1_section5_393 = .section5:0x00000393; // type:object size:0x15 +lbl_1_section5_3A8 = .section5:0x000003A8; // type:object size:0x8 data:string +lbl_1_section5_3B0 = .section5:0x000003B0; // type:object size:0x9 data:string +lbl_1_section5_3B9 = .section5:0x000003B9; // type:object size:0x6 data:string +lbl_1_section5_3BF = .section5:0x000003BF; // type:object size:0x5 data:string +lbl_1_section5_3C4 = .section5:0x000003C4; // type:object size:0x8 +lbl_1_section5_3CC = .section5:0x000003CC; // type:object size:0x14 +lbl_1_section5_3E0 = .section5:0x000003E0; // type:object size:0x14 +lbl_1_section5_3F4 = .section5:0x000003F4; // type:object size:0x20 +lbl_1_section5_414 = .section5:0x00000414; // type:object size:0x10 +lbl_1_section5_424 = .section5:0x00000424; // type:object size:0x30 +lbl_1_section5_454 = .section5:0x00000454; // type:object size:0xB data:string +lbl_1_section5_45F = .section5:0x0000045F; // type:object size:0x2 data:string +lbl_1_section5_461 = .section5:0x00000461; // type:object size:0xC data:string +lbl_1_section5_46D = .section5:0x0000046D; // type:object size:0x1B +lbl_1_section5_488 = .section5:0x00000488; // type:object size:0x3 data:string +lbl_1_section5_48B = .section5:0x0000048B; // type:object size:0x11 +lbl_1_section5_49C = .section5:0x0000049C; // type:object size:0x54 +lbl_1_section5_4F0 = .section5:0x000004F0; // type:object size:0x6 data:string +lbl_1_section5_4F6 = .section5:0x000004F6; // type:object size:0x6 data:string +lbl_1_section5_4FC = .section5:0x000004FC; // type:object size:0x6 data:string +lbl_1_section5_502 = .section5:0x00000502; // type:object size:0x8 data:string +lbl_1_section5_50A = .section5:0x0000050A; // type:object size:0x8 data:string +lbl_1_section5_512 = .section5:0x00000512; // type:object size:0xA +lbl_1_section5_51C = .section5:0x0000051C; // type:object size:0x18 +lbl_1_section5_534 = .section5:0x00000534; // type:object size:0xC +lbl_1_section5_540 = .section5:0x00000540; // type:object size:0x48 +lbl_1_section5_588 = .section5:0x00000588; // type:object size:0x4 +lbl_1_section5_58C = .section5:0x0000058C; // type:object size:0x5 data:string +lbl_1_section5_591 = .section5:0x00000591; // type:object size:0x5 data:string +lbl_1_section5_596 = .section5:0x00000596; // type:object size:0x5 data:string +lbl_1_section5_59B = .section5:0x0000059B; // type:object size:0x5 data:string +lbl_1_section5_5A0 = .section5:0x000005A0; // type:object size:0x5 data:string +lbl_1_section5_5A5 = .section5:0x000005A5; // type:object size:0x5 data:string +lbl_1_section5_5AA = .section5:0x000005AA; // type:object size:0x5 data:string +lbl_1_section5_5AF = .section5:0x000005AF; // type:object size:0x5 data:string +lbl_1_section5_5B4 = .section5:0x000005B4; // type:object size:0x8 +lbl_1_section5_5BC = .section5:0x000005BC; // type:object size:0x24 +lbl_1_section5_5E0 = .section5:0x000005E0; // type:object size:0x10 +lbl_1_section5_5F0 = .section5:0x000005F0; // type:object size:0x20 +lbl_1_section5_610 = .section5:0x00000610; // type:object size:0xE data:string +lbl_1_section5_61E = .section5:0x0000061E; // type:object size:0xE data:string +lbl_1_section5_62C = .section5:0x0000062C; // type:object size:0x10 +lbl_1_section5_63C = .section5:0x0000063C; // type:object size:0x3 data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x24 +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x2 +lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x18 +lbl_1_bss_6A = .bss:0x0000006A; // type:object size:0x2 +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 +lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 +lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x4 +lbl_1_bss_7C = .bss:0x0000007C; // type:object size:0x4 +lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x30 +lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x2 +lbl_1_bss_B2 = .bss:0x000000B2; // type:object size:0x8 +lbl_1_bss_BA = .bss:0x000000BA; // type:object size:0x8 +lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x2 +lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x10 +lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0x10 +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x10 +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x6 +lbl_1_bss_FA = .bss:0x000000FA; // type:object size:0x6 +lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 +lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0xC +lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x20 +lbl_1_bss_134 = .bss:0x00000134; // type:object size:0x6 +lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x2 +lbl_1_bss_13C = .bss:0x0000013C; // type:object size:0xD4 +lbl_1_bss_210 = .bss:0x00000210; // type:object size:0x30 +lbl_1_bss_240 = .bss:0x00000240; // type:object size:0x30 +lbl_1_bss_270 = .bss:0x00000270; // type:object size:0x2 +lbl_1_bss_272 = .bss:0x00000272; // type:object size:0x2 +lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x4 +lbl_1_bss_278 = .bss:0x00000278; // type:object size:0x4 +lbl_1_bss_27C = .bss:0x0000027C; // type:object size:0x2 +lbl_1_bss_27E = .bss:0x0000027E; // type:object size:0x2 +lbl_1_bss_280 = .bss:0x00000280; // type:object size:0x2 +lbl_1_bss_282 = .bss:0x00000282; // type:object size:0x6 +lbl_1_bss_288 = .bss:0x00000288; // type:object size:0x4 +lbl_1_bss_28C = .bss:0x0000028C; // type:object size:0x8 +lbl_1_bss_294 = .bss:0x00000294; // type:object size:0x4 +lbl_1_bss_298 = .bss:0x00000298; // type:object size:0x6 +lbl_1_bss_29E = .bss:0x0000029E; // type:object size:0x8 +lbl_1_bss_2A6 = .bss:0x000002A6; // type:object size:0x6 +lbl_1_bss_2AC = .bss:0x000002AC; // type:object size:0x4 +lbl_1_bss_2B0 = .bss:0x000002B0; // type:object size:0x4 +lbl_1_bss_2B4 = .bss:0x000002B4; // type:object size:0xE +lbl_1_bss_2C2 = .bss:0x000002C2; // type:object size:0xE +lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x28 +lbl_1_bss_2F8 = .bss:0x000002F8; // type:object size:0x2 +lbl_1_bss_2FA = .bss:0x000002FA; // type:object size:0x2 +lbl_1_bss_2FC = .bss:0x000002FC; // type:object size:0xC +lbl_1_bss_308 = .bss:0x00000308; // type:object size:0xC +lbl_1_bss_314 = .bss:0x00000314; // type:object size:0x4 +lbl_1_bss_318 = .bss:0x00000318; // type:object size:0x4 +lbl_1_bss_31C = .bss:0x0000031C; // type:object size:0x4 +lbl_1_bss_320 = .bss:0x00000320; // type:object size:0x4 +lbl_1_bss_324 = .bss:0x00000324; // type:object size:0x2 +lbl_1_bss_326 = .bss:0x00000326; // type:object size:0x2 diff --git a/configure.py b/configure.py index e1abca70..8f551ad4 100644 --- a/configure.py +++ b/configure.py @@ -1108,8 +1108,8 @@ config.libs = [ Rel( "m435Dll", # Darts of Doom objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m435Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m435Dll/sequence.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m435Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01" "GMPJ01_00"), "REL/m435Dll/sequence.c"), }, ), Rel( @@ -1454,87 +1454,87 @@ config.libs = [ Rel( "w01Dll", # Toad's Midway Madness objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w01Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w01Dll/mg_coin.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w01Dll/mg_item.c"), + Object(Matching, "REL/w01Dll/main.c"), + Object(Matching, "REL/w01Dll/mg_coin.c"), + Object(Matching, "REL/w01Dll/mg_item.c"), }, ), Rel( "w02Dll", # Goomba's Greedy Gala objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w02Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w02Dll/gendice.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w02Dll/gamble.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w02Dll/mg_coin.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w02Dll/mg_item.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w02Dll/shuffleboard.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w02Dll/roulette.c"), + Object(Matching, "REL/w02Dll/main.c"), + Object(Matching, "REL/w02Dll/gendice.c"), + Object(Matching, "REL/w02Dll/gamble.c"), + Object(Matching, "REL/w02Dll/mg_coin.c"), + Object(Matching, "REL/w02Dll/mg_item.c"), + Object(Matching, "REL/w02Dll/shuffleboard.c"), + Object(Matching, "REL/w02Dll/roulette.c"), }, ), Rel( "w03Dll", # Shy Guy's Jungle Jam objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w03Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w03Dll/statue.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w03Dll/condor.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w03Dll/river.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w03Dll/smoke.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w03Dll/mg_coin.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w03Dll/mg_item.c"), + Object(Matching, "REL/w03Dll/main.c"), + Object(Matching, "REL/w03Dll/statue.c"), + Object(Matching, "REL/w03Dll/condor.c"), + Object(Matching, "REL/w03Dll/river.c"), + Object(Matching, "REL/w03Dll/smoke.c"), + Object(Matching, "REL/w03Dll/mg_coin.c"), + Object(Matching, "REL/w03Dll/mg_item.c"), }, ), Rel( "w04Dll", # Boo's Haunted Bash objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w04Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w04Dll/bridge.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w04Dll/boo_event.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w04Dll/big_boo.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w04Dll/mg_item.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w04Dll/mg_coin.c"), + Object(Matching, "REL/w04Dll/main.c"), + Object(Matching, "REL/w04Dll/bridge.c"), + Object(Matching, "REL/w04Dll/boo_event.c"), + Object(Matching, "REL/w04Dll/big_boo.c"), + Object(Matching, "REL/w04Dll/mg_item.c"), + Object(Matching, "REL/w04Dll/mg_coin.c"), }, ), Rel( "w05Dll", # Koopa's Seaside Soiree objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w05Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w05Dll/hotel.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w05Dll/monkey.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w05Dll/dolphin.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w05Dll/mg_item.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w05Dll/mg_coin.c"), + Object(Matching, "REL/w05Dll/main.c"), + Object(Matching, "REL/w05Dll/hotel.c"), + Object(Matching, "REL/w05Dll/monkey.c"), + Object(Matching, "REL/w05Dll/dolphin.c"), + Object(Matching, "REL/w05Dll/mg_item.c"), + Object(Matching, "REL/w05Dll/mg_coin.c"), }, ), Rel( "w06Dll", # Bowser's Gnarly Party objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w06Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w06Dll/mg_item.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w06Dll/mg_coin.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w06Dll/fire.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w06Dll/bridge.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w06Dll/bowser.c"), + Object(Matching, "REL/w06Dll/main.c"), + Object(Matching, "REL/w06Dll/mg_item.c"), + Object(Matching, "REL/w06Dll/mg_coin.c"), + Object(Matching, "REL/w06Dll/fire.c"), + Object(Matching, "REL/w06Dll/bridge.c"), + Object(Matching, "REL/w06Dll/bowser.c"), }, ), Rel( "w10Dll", # Tutorial board objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w10Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w10Dll/host.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w10Dll/scene.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w10Dll/tutorial.c"), + Object(Matching, "REL/w10Dll/main.c"), + Object(Matching, "REL/w10Dll/host.c"), + Object(Matching, "REL/w10Dll/scene.c"), + Object(Matching, "REL/w10Dll/tutorial.c"), }, ), Rel( "w20Dll", # Mega Board Mayhem objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w20Dll/main.c"), + Object(Matching, "REL/w20Dll/main.c"), }, ), Rel( "w21Dll", # Mini Board Mad Dash objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/w21Dll/main.c"), + Object(Matching, "REL/w21Dll/main.c"), }, ), Rel( diff --git a/src/REL/w01Dll/mg_item.c b/src/REL/w01Dll/mg_item.c index 99d31a68..6830c410 100755 --- a/src/REL/w01Dll/mg_item.c +++ b/src/REL/w01Dll/mg_item.c @@ -83,10 +83,28 @@ static s16 lbl_1_bss_7A8; static s32 lbl_1_bss_7A4; static AnimData *lbl_1_bss_7A0; -static s32 lbl_1_data_F08[] = { DATA_MAKE_NUM(DATADIR_BOARD, 109), DATA_MAKE_NUM(DATADIR_BOARD, 110), DATA_MAKE_NUM(DATADIR_BOARD, 111), - DATA_MAKE_NUM(DATADIR_BOARD, 112), DATA_MAKE_NUM(DATADIR_BOARD, 113), DATA_MAKE_NUM(DATADIR_BOARD, 114), DATA_MAKE_NUM(DATADIR_BOARD, 115), - DATA_MAKE_NUM(DATADIR_BOARD, 116), DATA_MAKE_NUM(DATADIR_BOARD, 118), DATA_MAKE_NUM(DATADIR_BOARD, 119), DATA_MAKE_NUM(DATADIR_BOARD, 120), - DATA_MAKE_NUM(DATADIR_BOARD, 121), DATA_MAKE_NUM(DATADIR_BOARD, 122), DATA_MAKE_NUM(DATADIR_BOARD, 123) }; +#if VERSION_JP +#define MDL_ID_SHIFT 0 +#else +#define MDL_ID_SHIFT 1 +#endif + +static s32 lbl_1_data_F08[] = { + DATA_MAKE_NUM(DATADIR_BOARD, 108 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 109 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 110 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 111 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 112 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 113 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 114 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 115 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 117 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 118 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 119 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 120 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 121 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 122 + MDL_ID_SHIFT), +}; static s32 lbl_1_data_F40[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 23), DATA_MAKE_NUM(DATADIR_PEACHMOT, 23), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 23), DATA_MAKE_NUM(DATADIR_WARIOMOT, 23), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 23), diff --git a/src/REL/w02Dll/mg_item.c b/src/REL/w02Dll/mg_item.c index e7b041b5..fd0f4073 100644 --- a/src/REL/w02Dll/mg_item.c +++ b/src/REL/w02Dll/mg_item.c @@ -10,21 +10,27 @@ #include "game/minigame_seq.h" +#if VERSION_JP +#define MDL_ID_SHIFT 0 +#else +#define MDL_ID_SHIFT 1 +#endif + s32 lbl_1_data_428[14] = { - DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), - DATA_MAKE_NUM(DATADIR_BOARD, 0x6E), - DATA_MAKE_NUM(DATADIR_BOARD, 0x6F), - DATA_MAKE_NUM(DATADIR_BOARD, 0x70), - DATA_MAKE_NUM(DATADIR_BOARD, 0x71), - DATA_MAKE_NUM(DATADIR_BOARD, 0x72), - DATA_MAKE_NUM(DATADIR_BOARD, 0x73), - DATA_MAKE_NUM(DATADIR_BOARD, 0x74), - DATA_MAKE_NUM(DATADIR_BOARD, 0x76), - DATA_MAKE_NUM(DATADIR_BOARD, 0x77), - DATA_MAKE_NUM(DATADIR_BOARD, 0x78), - DATA_MAKE_NUM(DATADIR_BOARD, 0x79), - DATA_MAKE_NUM(DATADIR_BOARD, 0x7A), - DATA_MAKE_NUM(DATADIR_BOARD, 0x7B), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6C + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6D + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6E + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6F + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x70 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x71 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x72 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x73 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x75 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x76 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x77 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x78 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x79 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7A + MDL_ID_SHIFT), }; char *lbl_1_data_474[3] = { "item", "item1", "item2" }; diff --git a/src/REL/w03Dll/mg_item.c b/src/REL/w03Dll/mg_item.c index 349a7176..24d08ad3 100644 --- a/src/REL/w03Dll/mg_item.c +++ b/src/REL/w03Dll/mg_item.c @@ -106,21 +106,27 @@ s8 lbl_1_data_4E6[] = { 1, 1, 3, 3, 2, 2, 2, 1, 2, 3, 0, 4, 5, 0 }; char *lbl_1_data_508[] = { "item", "item1", "item2" }; +#if VERSION_JP +#define MDL_ID_SHIFT 0 +#else +#define MDL_ID_SHIFT 1 +#endif + s32 lbl_1_data_514[] = { - DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), - DATA_MAKE_NUM(DATADIR_BOARD, 0x6E), - DATA_MAKE_NUM(DATADIR_BOARD, 0x6F), - DATA_MAKE_NUM(DATADIR_BOARD, 0x70), - DATA_MAKE_NUM(DATADIR_BOARD, 0x71), - DATA_MAKE_NUM(DATADIR_BOARD, 0x72), - DATA_MAKE_NUM(DATADIR_BOARD, 0x73), - DATA_MAKE_NUM(DATADIR_BOARD, 0x74), - DATA_MAKE_NUM(DATADIR_BOARD, 0x76), - DATA_MAKE_NUM(DATADIR_BOARD, 0x77), - DATA_MAKE_NUM(DATADIR_BOARD, 0x78), - DATA_MAKE_NUM(DATADIR_BOARD, 0x79), - DATA_MAKE_NUM(DATADIR_BOARD, 0x7A), - DATA_MAKE_NUM(DATADIR_BOARD, 0x7B), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6C + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6D + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6E + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6F + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x70 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x71 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x72 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x73 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x75 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x76 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x77 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x78 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x79 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7A + MDL_ID_SHIFT), }; // BSS diff --git a/src/REL/w04Dll/big_boo.c b/src/REL/w04Dll/big_boo.c index b5f6b3cf..16df9492 100755 --- a/src/REL/w04Dll/big_boo.c +++ b/src/REL/w04Dll/big_boo.c @@ -913,7 +913,7 @@ static void fn_1_8A60(void) { HuPrcVSleep(); } fn_1_7300(); - #if VERSION_NTSC + #if VERSION_ENG sprintf(sp10, "%d", var_r29); BoardWinCreate(2, MAKE_MESSID(32, 11), 9); BoardWinInsertMesSet(MAKE_MESSID_PTR(sp10), 0); diff --git a/src/REL/w04Dll/mg_item.c b/src/REL/w04Dll/mg_item.c index fe8464a2..cbda9008 100755 --- a/src/REL/w04Dll/mg_item.c +++ b/src/REL/w04Dll/mg_item.c @@ -45,21 +45,27 @@ static s32 lbl_1_data_534[] = { 0x00000468 }; +#if VERSION_JP +#define MDL_ID_SHIFT 0 +#else +#define MDL_ID_SHIFT 1 +#endif + static s32 lbl_1_data_540[] = { - DATA_MAKE_NUM(DATADIR_BOARD, 109), - DATA_MAKE_NUM(DATADIR_BOARD, 110), - DATA_MAKE_NUM(DATADIR_BOARD, 111), - DATA_MAKE_NUM(DATADIR_BOARD, 112), - DATA_MAKE_NUM(DATADIR_BOARD, 113), - DATA_MAKE_NUM(DATADIR_BOARD, 114), - DATA_MAKE_NUM(DATADIR_BOARD, 115), - DATA_MAKE_NUM(DATADIR_BOARD, 116), - DATA_MAKE_NUM(DATADIR_BOARD, 118), - DATA_MAKE_NUM(DATADIR_BOARD, 119), - DATA_MAKE_NUM(DATADIR_BOARD, 120), - DATA_MAKE_NUM(DATADIR_BOARD, 121), - DATA_MAKE_NUM(DATADIR_BOARD, 122), - DATA_MAKE_NUM(DATADIR_BOARD, 123), + DATA_MAKE_NUM(DATADIR_BOARD, 108 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 109 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 110 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 111 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 112 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 113 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 114 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 115 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 117 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 118 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 119 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 120 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 121 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 122 + MDL_ID_SHIFT), DATA_MAKE_NUM(DATADIR_W02, 24), DATA_MAKE_NUM(DATADIR_W02, 25), DATA_MAKE_NUM(DATADIR_W02, 26), diff --git a/src/REL/w05Dll/mg_item.c b/src/REL/w05Dll/mg_item.c index f0f6c031..0a596430 100644 --- a/src/REL/w05Dll/mg_item.c +++ b/src/REL/w05Dll/mg_item.c @@ -172,21 +172,27 @@ void fn_1_7400(void) HuPrcEnd(); } +#if VERSION_JP +#define MDL_ID_SHIFT 0 +#else +#define MDL_ID_SHIFT 1 +#endif + s32 lbl_1_data_350[14] = { - DATA_MAKE_NUM(DATADIR_BOARD, 0x6D), - DATA_MAKE_NUM(DATADIR_BOARD, 0x6E), - DATA_MAKE_NUM(DATADIR_BOARD, 0x6F), - DATA_MAKE_NUM(DATADIR_BOARD, 0x70), - DATA_MAKE_NUM(DATADIR_BOARD, 0x71), - DATA_MAKE_NUM(DATADIR_BOARD, 0x72), - DATA_MAKE_NUM(DATADIR_BOARD, 0x73), - DATA_MAKE_NUM(DATADIR_BOARD, 0x74), - DATA_MAKE_NUM(DATADIR_BOARD, 0x76), - DATA_MAKE_NUM(DATADIR_BOARD, 0x77), - DATA_MAKE_NUM(DATADIR_BOARD, 0x78), - DATA_MAKE_NUM(DATADIR_BOARD, 0x79), - DATA_MAKE_NUM(DATADIR_BOARD, 0x7A), - DATA_MAKE_NUM(DATADIR_BOARD, 0x7B), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6C + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6D + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6E + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x6F + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x70 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x71 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x72 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x73 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x75 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x76 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x77 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x78 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x79 + MDL_ID_SHIFT), + DATA_MAKE_NUM(DATADIR_BOARD, 0x7A + MDL_ID_SHIFT), }; s16 lbl_1_data_388[92] = { 0, 1, -1, 2, 0, -1, 1, 2, 0, -1, 2, 1, 0, 2, -1, 1, 0, 2, 1, -1, 1, 2, -1, 0, 1, 2, 0, -1, 1, -1, 0, 2, 1, -1, 2, 0, 1, 0, diff --git a/src/REL/w06Dll/bowser.c b/src/REL/w06Dll/bowser.c index c2590736..bce6d422 100755 --- a/src/REL/w06Dll/bowser.c +++ b/src/REL/w06Dll/bowser.c @@ -89,6 +89,12 @@ static s32 lbl_1_data_4CC[8] = { 0x000002E3 }; +#if VERSION_JP +#define MDL_ID_SHIFT 0 +#else +#define MDL_ID_SHIFT 1 +#endif + static s32 lbl_1_data_4EC[] = { DATA_MAKE_NUM(DATADIR_BKOOPA, 8), DATA_MAKE_NUM(DATADIR_BKOOPA, 10), @@ -1036,7 +1042,7 @@ static void fn_1_C40C(void) { BoardCameraMotionWait(); BoardCameraTargetModelSet(-1); BoardModelRotYSet(lbl_1_data_498, var_f30); - lbl_1_data_4A0 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 99), NULL, 0); + lbl_1_data_4A0 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 98 + MDL_ID_SHIFT), NULL, 0); BoardModelVisibilitySet(lbl_1_data_4A0, 0); BoardModelLayerSet(lbl_1_data_4A0, 2); var_r29 = BoardSpaceStarGet(lbl_1_bss_0->unk04 - 1); From f8378e169a2f5c8824314bce77bccb339ba0162c Mon Sep 17 00:00:00 2001 From: mrshigure Date: Sat, 14 Dec 2024 15:28:58 -0800 Subject: [PATCH 196/311] Matched m419Dll (US) --- config/GMPE01_00/rels/m419Dll/symbols.txt | 216 +- configure.py | 2 +- include/ext_math.h | 1 + src/REL/m419Dll/main.c | 2987 +++++++++++++++++++++ 4 files changed, 3097 insertions(+), 109 deletions(-) create mode 100755 src/REL/m419Dll/main.c diff --git a/config/GMPE01_00/rels/m419Dll/symbols.txt b/config/GMPE01_00/rels/m419Dll/symbols.txt index 1a40f379..a3696d5f 100644 --- a/config/GMPE01_00/rels/m419Dll/symbols.txt +++ b/config/GMPE01_00/rels/m419Dll/symbols.txt @@ -46,117 +46,117 @@ fn_1_104A0 = .text:0x000104A0; // type:function size:0x60 fn_1_10500 = .text:0x00010500; // type:function size:0x3E0 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 lbl_1_data_20 = .data:0x00000020; // type:object size:0x2C lbl_1_data_4C = .data:0x0000004C; // type:object size:0x10 -lbl_1_data_5C = .data:0x0000005C; // type:object size:0x60 -lbl_1_data_BC = .data:0x000000BC; // type:object size:0xB data:string +lbl_1_data_5C = .data:0x0000005C; // type:object size:0x60 data:float +lbl_1_data_BC = .data:0x000000BC; // type:object size:0xB scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x60 lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x1 data:byte lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x20 diff --git a/configure.py b/configure.py index 8f551ad4..ac7d5cd7 100644 --- a/configure.py +++ b/configure.py @@ -990,7 +990,7 @@ config.libs = [ Rel( "m419Dll", # Tree Stomp objects={ - Object(NonMatching, "REL/m419Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m419Dll/main.c"), }, ), Rel( diff --git a/include/ext_math.h b/include/ext_math.h index 4651c2c4..e9a608a6 100644 --- a/include/ext_math.h +++ b/include/ext_math.h @@ -19,6 +19,7 @@ typedef struct vec2f { #define VECDistanceZY(a, b) sqrtf((((a)->z-(b)->z)*((a)->z-(b)->z))+(((a)->y-(b)->y)*((a)->y-(b)->y))) #define VECSumXZ(a, b) sqrtf((((a)->x+(b)->x)*((a)->x+(b)->x))+(((a)->z+(b)->z)*((a)->z+(b)->z))) +#define VECMagXYZ(a) sqrtf(((a)->x*(a)->x)+((a)->y*(a)->y)+((a)->z*(a)->z)) #define VECMagXZ(a) sqrtf(((a)->x*(a)->x)+((a)->z*(a)->z)) #define VECMagXY(a) sqrtf(((a)->x*(a)->x)+((a)->y*(a)->y)) diff --git a/src/REL/m419Dll/main.c b/src/REL/m419Dll/main.c new file mode 100755 index 00000000..e0dfba50 --- /dev/null +++ b/src/REL/m419Dll/main.c @@ -0,0 +1,2987 @@ +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/wipe.h" + +#include "dolphin.h" +#include "ext_math.h" + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ char unk04[0xB4]; +} StructBssC8; // Size 0xB8 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02[5]; +} StructBss1E8; // Size 0xC + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06[8]; + /* 0x16 */ s16 unk16; + /* 0x18 */ s16 unk18; + /* 0x1A */ s16 unk1A; + /* 0x1C */ s16 unk1C[4]; + /* 0x24 */ s16 unk24; + /* 0x26 */ char unk26[2]; + /* 0x28 */ s32 unk28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s32 unk30; + /* 0x34 */ s32 unk34; + /* 0x38 */ s32 unk38; + /* 0x3C */ s32 unk3C; + /* 0x40 */ s32 unk40; + /* 0x44 */ s32 unk44; + /* 0x48 */ s32 unk48; + /* 0x4C */ s32 unk4C; + /* 0x50 */ s32 unk50; + /* 0x54 */ float unk54; + /* 0x58 */ float unk58; + /* 0x5C */ float unk5C; + /* 0x60 */ float unk60; + /* 0x64 */ float unk64; + /* 0x68 */ float unk68; + /* 0x6C */ float unk6C; + /* 0x70 */ float unk70; + /* 0x74 */ float unk74; + /* 0x78 */ float unk78; + /* 0x7C */ float unk7C; + /* 0x80 */ float unk80; + /* 0x84 */ float unk84; + /* 0x88 */ float unk88; + /* 0x8C */ float unk8C; + /* 0x90 */ float unk90; + /* 0x94 */ float unk94; + /* 0x98 */ float unk98; + /* 0x9C */ float unk9C; + /* 0xA0 */ s8 unkA0; + /* 0xA1 */ s8 unkA1; + /* 0xA2 */ s8 unkA2; + /* 0xA3 */ s8 unkA3; + /* 0xA4 */ u16 unkA4; + /* 0xA6 */ u16 unkA6; + /* 0xA8 */ s32 unkA8; + /* 0xAC */ s32 unkAC; + /* 0xB0 */ s32 unkB0; + /* 0xB4 */ s32 unkB4; + /* 0xB8 */ s32 unkB8; + /* 0xBC */ s32 unkBC; + /* 0xC0 */ s32 unkC0; + /* 0xC4 */ float unkC4; + /* 0xC8 */ char unkC8[4]; + /* 0xCC */ float unkCC; + /* 0xD0 */ s32 unkD0; + /* 0xD4 */ s32 unkD4; + /* 0xD8 */ float unkD8; + /* 0xDC */ float unkDC; +} StructBss200; // Size 0xE0 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06; + /* 0x08 */ s16 unk08; + /* 0x0A */ s16 unk0A; + /* 0x0C */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ float unk20; + /* 0x24 */ float unk24; + /* 0x28 */ float unk28; +} StructBss190; // Size 0x2C + +void fn_1_57C(s16 arg0); +void fn_1_AD0(s16 arg0); +void fn_1_F58(void); +void fn_1_2254(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_2744(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_47E4(void); +void fn_1_4B20(void); +void fn_1_9AF0(void); +void fn_1_DF98(void); +void fn_1_104A0(void); +void fn_1_10500(void); + +s16 lbl_1_bss_5C2; +s16 lbl_1_bss_5C0; // unused +s16 lbl_1_bss_5BE; +s16 lbl_1_bss_5BC; +s16 lbl_1_bss_5BA; +s16 lbl_1_bss_5B8; +s32 lbl_1_bss_5B4; +s32 lbl_1_bss_5B0; +s32 lbl_1_bss_5AC; +s32 lbl_1_bss_5A8; +s32 lbl_1_bss_5A4; +s32 lbl_1_bss_594[4]; +s32 lbl_1_bss_584[4]; +s32 lbl_1_bss_580; +StructBss200 lbl_1_bss_200[4]; +StructBss1E8 lbl_1_bss_1E8[2]; +StructBss190 lbl_1_bss_190[2]; +Process* lbl_1_bss_180[4]; +StructBssC8 lbl_1_bss_C8; +Vec lbl_1_bss_BC; +Vec lbl_1_bss_B0; +Vec lbl_1_bss_A4; +void* lbl_1_bss_84[8]; +void* lbl_1_bss_64[8]; +u8 lbl_1_bss_60; +Vec lbl_1_bss_0[8]; + +s32 lbl_1_data_0[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; + +s32 lbl_1_data_20[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 21), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 26), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), + DATA_MAKE_NUM(DATADIR_M419, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 25), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 13), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 16) +}; + +s32 lbl_1_data_4C[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 79), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 22) +}; + +Vec lbl_1_data_5C[] = { + { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f } +}; + +void ObjectSetup(void) { + Process* temp_r3; + + temp_r3 = omInitObjMan(50, 0x2000); + omGameSysInit(temp_r3); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 20.0f, 20.0f, 10000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 640, 480); + lbl_1_bss_C8.unk00 = omAddObjEx(temp_r3, 0x7FDA, 0, 0, -1, omOutViewMulti); + lbl_1_bss_C8.unk00->work[0] = 1; + CRotM->x = -40.0f; + CRotM->y = 0.0f; + CRotM->z = 0.0f; + CenterM->x = 0.0f; + CenterM->y = 0.0f; + CenterM->z = 3000.0f; + CZoomM[0] = 1500.0f; + Hu3DLighInit(); + lbl_1_bss_5C2 = Hu3DGLightCreate(10000.0f, 0.0f, 10000.0f, -1.0f, 0.0f, -1.0f, 0xFF, 0xFF, 0xFF); + Hu3DGLightPosAimSet(lbl_1_bss_5C2, 0.0f, 4330.13f, 2500.0f, 0.0f, 0.0f, 0.0f); + Hu3DGLightInfinitytSet(lbl_1_bss_5C2); + lbl_1_bss_BC.x = -500.0f; + lbl_1_bss_BC.y = 4000.0f; + lbl_1_bss_BC.z = 0.0f; + lbl_1_bss_B0.x = lbl_1_bss_B0.z = 0.0f; + lbl_1_bss_B0.y = 1.0f; + lbl_1_bss_A4.x = 0.0f; + lbl_1_bss_A4.y = 0.0f; + lbl_1_bss_A4.z = 0.0f; + Hu3DShadowCreate(30.0f, 20.0f, 10000.0f); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowPosSet(&lbl_1_bss_BC, &lbl_1_bss_B0, &lbl_1_bss_A4); + Hu3DBGColorSet(0, 0, 0); + fn_1_F58(); + HuPrcChildCreate(fn_1_10500, 0x1000, 0x2000, 0, HuPrcCurrentGet()); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); +} + +void fn_1_4A0(void) { + s16 i; + + Hu3DLayerHookSet(1, fn_1_57C); + for (i = 0; i < 8; i++) { + lbl_1_bss_84[i] = HuMemDirectMallocNum(HEAP_DATA, 0x4800, MEMORY_DEFAULT_NUM); + lbl_1_bss_64[i] = HuMemDirectMallocNum(HEAP_DATA, 0x9000, MEMORY_DEFAULT_NUM); + lbl_1_bss_0[i].x = lbl_1_bss_0[i].y = 0.0f; + } +} + +void fn_1_57C(s16 arg0) { + Vec sp14; + Vec sp8; + ModelData* temp_r30; + s16 var_r31; + + temp_r30 = &Hu3DData[lbl_1_bss_5BE]; + sp14 = temp_r30->pos; + sp14.y += 50.0f; + Hu3D3Dto2D(&sp14, 1, &sp8.x); + var_r31 = sp8.x - 96.0f; + var_r31 &= 0xFFF8; + sp8.x = var_r31; + if (sp8.x < 0.0f) { + sp8.x = 0.0f; + } + if (sp8.x > 448.0f) { + sp8.x = 448.0f; + } + var_r31 = sp8.y - 96.0f; + var_r31 &= 0xFFF8; + sp8.y = var_r31; + if (sp8.y < 0.0f) { + sp8.y = 0.0f; + } + if (sp8.y > 288.0f) { + sp8.y = 288.0f; + } + lbl_1_bss_0[lbl_1_bss_60] = sp8; + GXSetTexCopySrc(sp8.x, sp8.y, 192, 192); + GXSetTexCopyDst(96, 96, GX_TF_RGB5A3, 1); + GXCopyTex(lbl_1_bss_84[lbl_1_bss_60], 0); + GXSetTexCopySrc(sp8.x, sp8.y, 192, 192); + GXSetTexCopyDst(96, 96, GX_TF_Z24X8, 1); + GXCopyTex(lbl_1_bss_64[lbl_1_bss_60], 0); +} + +void fn_1_848(ModelData* arg0, Mtx arg1) { + Mtx44 sp10; + GXColor spC; + s16 i; + + C_MTXOrtho(sp10, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 8000.0f); + GXSetProjection(sp10, GX_ORTHOGRAPHIC); + PSMTXIdentity(arg1); + GXLoadPosMtxImm(arg1, GX_PNMTX0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_A0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevOp(GX_TEVSTAGE1, GX_PASSCLR); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP1, GX_COLOR_NULL); + GXSetZTexture(GX_ZT_REPLACE, GX_TF_Z24X8, 0); + GXSetNumTexGens(1); + GXSetNumTevStages(2); + if (lbl_1_bss_5BC != 0) { + for (i = 1; i < 8; i++) { + spC.a = i * 24; + GXSetTevColor(GX_TEVREG0, spC); + fn_1_AD0((lbl_1_bss_60 - 8 + i) & 7); + } + } + lbl_1_bss_60 = (lbl_1_bss_60 + 1) & 7; + GXSetZTexture(GX_ZT_DISABLE, GX_TF_Z8, 0); +} + +void fn_1_AD0(s16 arg0) { + GXTexObj sp58; + GXTexObj sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + + GXInitTexObj(&sp58, lbl_1_bss_84[arg0], 96, 96, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&sp58, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXLoadTexObj(&sp58, GX_TEXMAP0); + GXInitTexObj(&sp38, lbl_1_bss_64[arg0], 96, 96, GX_TF_Z24X8, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXLoadTexObj(&sp38, GX_TEXMAP1); + sp2C.x = 0.0f; + sp2C.y = 0.0f; + sp2C.z = 0.0f; + sp20.x = 640.0f; + sp20.y = 0.0f; + sp20.z = 0.0f; + sp14.x = 640.0f; + sp14.y = 480.0f; + sp14.z = 0.0f; + sp8.x = 0.0f; + sp8.y = 480.0f; + sp8.z = 0.0f; + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXSetZCompLoc(GX_FALSE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(lbl_1_bss_0[arg0].x, lbl_1_bss_0[arg0].y, 0.0f); + GXTexCoord2f32(0.0f, 0.0f); + GXPosition3f32(lbl_1_bss_0[arg0].x + 192.0f, lbl_1_bss_0[arg0].y, 0.0f); + GXTexCoord2f32(1.0f, 0.0f); + GXPosition3f32(lbl_1_bss_0[arg0].x + 192.0f, lbl_1_bss_0[arg0].y + 192.0f, 0.0f); + GXTexCoord2f32(1.0f, 1.0f); + GXPosition3f32(lbl_1_bss_0[arg0].x, lbl_1_bss_0[arg0].y + 192.0f, 0.0f); + GXTexCoord2f32(0.0f, 1.0f); + GXEnd(); +} + +void fn_1_F58(void) { + void* var_r29; + StructBss1E8* temp_r26; + StructBss200* temp_r31; + Process* var_r25; + float temp_f31; + s16 var_r30; + s32 var_r22; + s32 var_r23; + AnimData* var_r21; + s32 i; + s32 j; + + lbl_1_bss_5BC = 0; + lbl_1_bss_5BA = 0; + lbl_1_bss_5B0 = 0; + HuAudSndGrpSet(0x2C); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 8), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelShadowMapSet(var_r30); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 9), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelShadowMapSet(var_r30); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 10), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30); + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelShadowSet(var_r30); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 11), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelShadowSet(var_r30); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 12), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + lbl_1_bss_5B8 = var_r30; + Hu3DModelLayerSet(var_r30, 1); + temp_r26 = &lbl_1_bss_1E8[0]; + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 13), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + temp_r26->unk00 = var_r30; + Hu3DModelLayerSet(var_r30, 1); + for (j = 0; j < 5; j++) { + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 14 + j), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r26->unk02[j] = Hu3DJointMotion(var_r30, var_r29); + } + Hu3DMotionSet(var_r30, temp_r26->unk02[0]); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30); + HuPrcChildCreate(fn_1_47E4, 0x2000, 0x2000, 0, HuPrcCurrentGet()); + temp_r26 = &lbl_1_bss_1E8[1]; + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 19), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + temp_r26->unk00 = var_r30; + Hu3DModelLayerSet(var_r30, 1); + for (j = 0; j < 5; j++) { + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 20 + j), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r26->unk02[j] = Hu3DJointMotion(var_r30, var_r29); + } + Hu3DMotionSet(var_r30, temp_r26->unk02[0]); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30); + HuPrcChildCreate(fn_1_4B20, 0x2000, 0x2000, 0, HuPrcCurrentGet()); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 25), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + lbl_1_bss_190[0].unk00 = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, 1); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 26), MEMORY_DEFAULT_NUM, HEAP_DATA); + lbl_1_bss_190[0].unk04 = Hu3DJointMotion(var_r30, var_r29); + Hu3DMotionSet(var_r30, lbl_1_bss_190[0].unk04); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 27), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + lbl_1_bss_190[0].unk02 = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, 1); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 28), MEMORY_DEFAULT_NUM, HEAP_DATA); + lbl_1_bss_190[0].unk06 = Hu3DJointMotion(var_r30, var_r29); + Hu3DMotionSet(var_r30, lbl_1_bss_190[0].unk04); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30); + lbl_1_bss_190[0].unk08 = 0; + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 29), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + lbl_1_bss_190[1].unk00 = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + lbl_1_bss_190[1].unk08 = 1; + Hu3DModelShadowSet(var_r30); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 30), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r29); + lbl_1_bss_190[1].unk02 = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, 1); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + for (i = 0, var_r22 = 0; i < 4; i++) { + temp_r31 = &lbl_1_bss_200[i]; + temp_r31->unk28 = i; + temp_r31->unk2C = i; + temp_r31->unk30 = GWPlayerCfg[i].pad_idx; + if (GWPlayerCfg[temp_r31->unk28].group == 0) { + lbl_1_bss_5AC = temp_r31->unk28; + lbl_1_bss_5BE = temp_r31->unk00 = CharModelCreate(lbl_1_data_0[GWPlayerCfg[i].character], 2); + Hu3DModelLayerSet(temp_r31->unk00, 0); + CharModelLayerSetAll(2); + fn_1_4A0(); + temp_r31->unk68 = temp_r31->unk70 = temp_r31->unk6C = 0.0f; + temp_r31->unk9C = temp_r31->unk6C; + temp_r31->unk54 = temp_r31->unk58 = temp_r31->unk5C = 0.0f; + temp_r31->unk8C = 50.0f; + temp_r31->unk90 = 0.0f; + temp_r31->unk94 = 1.0f; + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C); + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, temp_r31->unk6C, temp_r31->unk70); + Hu3DModelShadowSet(temp_r31->unk00); + for (j = 0; j < 11; j++) { + var_r23 = lbl_1_data_20[j]; + if ((var_r23 & 0xFFFF0000) == DATADIR_M419) { + var_r23 += GWPlayerCfg[i].character; + } + temp_r31->unk06[j] = CharModelMotionCreate(lbl_1_data_0[GWPlayerCfg[i].character], var_r23); + } + CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[i].character], temp_r31->unk06[0]); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_LOOP); + CharModelMotionDataClose(lbl_1_data_0[GWPlayerCfg[i].character]); + var_r25 = HuPrcChildCreate(fn_1_9AF0, 0x2000, 0x3000, 0, HuPrcCurrentGet()); + var_r25->user_data = temp_r31; + lbl_1_bss_180[i] = var_r25; + } else { + temp_r31->unk02 = CharModelCreate(lbl_1_data_0[GWPlayerCfg[i].character], 2); + Hu3DModelLayerSet(temp_r31->unk00, 1); + CharModelLayerSetAll(2); + temp_r31->unk80 = lbl_1_data_5C[GWPlayerCfg[i].character].x; + temp_r31->unk84 = lbl_1_data_5C[GWPlayerCfg[i].character].y; + temp_r31->unk88 = lbl_1_data_5C[GWPlayerCfg[i].character].z; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk80, temp_r31->unk84, temp_r31->unk88); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 31), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk00 = Hu3DModelCreate(var_r29); + Hu3DModelLayerSet(temp_r31->unk00, 1); + temp_r31->unk68 = temp_r31->unk70 = 0.0f; + temp_r31->unk6C = 120.0f * var_r22; + var_r22++; + if (temp_r31->unk6C > 360.0f) { + temp_r31->unk6C -= 360.0f; + } + Hu3DModelAttrSet(temp_r31->unk00, 1); + temp_f31 = 1000.0f; + temp_r31->unk54 = temp_f31 * sind(temp_r31->unk6C); + temp_r31->unk58 = 0.0f; + temp_r31->unk5C = temp_f31 * cosd(temp_r31->unk6C); + temp_r31->unk6C += 180.0f; + if (temp_r31->unk6C > 360.0f) { + temp_r31->unk6C -= 360.0f; + } + temp_r31->unk9C = temp_r31->unk6C; + temp_r31->unk8C = 200.0f; + temp_r31->unk90 = 2.25f; + temp_r31->unk94 = 1.0f; + temp_r31->unk98 = 0.66f; + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C); + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, temp_r31->unk6C, temp_r31->unk70); + Hu3DModelShadowSet(temp_r31->unk00); + Hu3DModelHookSet(temp_r31->unk00, "itemhook_c", temp_r31->unk02); + for (j = 0; j < 4; j++) { + temp_r31->unk1C[j] = CharModelMotionCreate(lbl_1_data_0[GWPlayerCfg[i].character], lbl_1_data_4C[j]); + } + CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[i].character], temp_r31->unk1C[0]); + CharModelMotionTimeSet(lbl_1_data_0[GWPlayerCfg[i].character], 60.0f); + CharModelVoiceEnableSet(lbl_1_data_0[GWPlayerCfg[i].character], temp_r31->unk1C[3], 0); + for (j = 0; j < 8; j++) { + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 32 + j), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk06[j] = Hu3DJointMotion(temp_r31->unk00, var_r29); + } + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[1]); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 1.0f); + Hu3DMotionSpeedSet(temp_r31->unk00, 1.0f); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_LOOP); + var_r29 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M419, 40), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk04 = Hu3DModelCreate(var_r29); + Hu3DModelLayerSet(temp_r31->unk04, 1); + Hu3DModelAttrSet(temp_r31->unk04, 1); + Hu3DModelAttrSet(temp_r31->unk04, HU3D_MOTATTR_PAUSE); + CharModelMotionDataClose(lbl_1_data_0[GWPlayerCfg[i].character]); + var_r25 = HuPrcChildCreate(fn_1_DF98, 0x2000, 0x3000, 0, HuPrcCurrentGet()); + var_r25->user_data = temp_r31; + lbl_1_bss_180[i] = var_r25; + } + } + var_r21 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 2), MEMORY_DEFAULT_NUM)); + var_r30 = Hu3DParticleCreate(var_r21, 50); + Hu3DModelPosSet(var_r30, 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(var_r30, 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(var_r30, 3); + Hu3DParticleColSet(var_r30, 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(var_r30, 0.0f); + Hu3DParticleHookSet(var_r30, fn_1_2254); + var_r21 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 2), MEMORY_DEFAULT_NUM)); + var_r30 = Hu3DParticleCreate(var_r21, 50); + Hu3DModelPosSet(var_r30, 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(var_r30, 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(var_r30, 3); + Hu3DParticleColSet(var_r30, 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(var_r30, 0.0f); + Hu3DParticleHookSet(var_r30, fn_1_2744); + HuDataDirClose(DATADIR_EFFECT); + lbl_1_bss_580 = 0; + lbl_1_bss_584[0] = frandmod(5) * 60 + 600; + lbl_1_bss_584[1] = frandmod(5) * 60 + 1380; + lbl_1_bss_584[2] = 2760; + Hu3DModelLayerSet(Hu3DHookFuncCreate(fn_1_848), 1); + HuPrcChildCreate(fn_1_104A0, 0x1000, 0x1000, 0, HuPrcCurrentGet()); +} + +float fn_1_1F84(float arg0, float arg1) { + float var_f31; + float var_f30; + + if (arg0 > 600.0f - arg1) { + var_f31 = 600.0f + 200.0f * ((800.0f - (arg0 + arg1)) / 200.0f); + } else if (arg0 < -(600.0f - arg1)) { + var_f31 = 600.0f + 200.0f * ((800.0f - ABS_INV(arg0 - arg1)) / 200.0f); + } else { + var_f31 = 800.0f; + } + return var_f31; +} + +float fn_1_20AC(float arg0, float arg1) { + return fn_1_1F84(arg0, arg1); +} + +float fn_1_21D4(float arg0) { + while (arg0 >= 360.0f || arg0 < 0.0f) { + if (arg0 >= 360.0f) { + arg0 -= 360.0f; + } + if (arg0 < 0.0f) { + arg0 += 360.0f; + } + } + return arg0; +} + +void fn_1_2254(ModelData* model, ParticleData* particle, Mtx matrix) { + HsfanimStruct01* var_r31; + StructBss200* temp_r28; + float var_f31; + float temp_f29; + float var_f30; + s32 var_r27; + s16 i; + s16 j; + s16 k; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + var_r31->unk14.x = var_r31->unk2C = 0.0f; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < 4; i++) { + temp_r28 = &lbl_1_bss_200[i]; + if (temp_r28->unk38 & 1) { + for (j = 0, var_f30 = 0.0f; j < 16; j++, var_f30 += 22.5f) { + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk14.x == 0.0f) { + break; + } + } + if (k == particle->unk_30) { + break; + } + var_f31 = var_f30; + temp_f29 = 125.0f + 70.0f * frandf(); + var_r31->unk34.x = temp_r28->unk74 + temp_f29 * sind(var_f31); + var_r31->unk34.y = temp_r28->unk78 + 50.0f * frandf(); + var_r31->unk34.z = temp_r28->unk7C + temp_f29 * cosd(var_f31); + var_r31->unk08.x = 5.0 * sind(var_f31); + var_r31->unk08.y = 9.0f + 2.0f * frandf(); + var_r31->unk08.z = 5.0 * cosd(var_f31); + var_r31->unk14.x = 30.0f; + var_r31->unk2C = 80.0f + 20.0f * frandf(); + var_r31->unk14.y = 15.0f; + var_r31->unk40.a = 0xC8; + var_r31->unk14.z = 17.0f; + } + temp_r28->unk38 &= ~1; + } + } + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk14.x != 0.0f) { + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + var_r31->unk08.x *= 0.95f; + var_r31->unk08.z *= 0.95f; + if (var_r31->unk08.y > 0.1f) { + var_r31->unk08.y -= 0.2f; + } + if (var_r31->unk08.y < 0.0f) { + var_r31->unk08.y = 0.0f; + } + var_r31->unk2C += var_r31->unk14.y; + if (var_r31->unk14.y > 2.0f) { + var_r31->unk14.y -= 1.5f; + } + var_r27 = var_r31->unk40.a; + var_r27 -= var_r31->unk14.z; + if (var_r31->unk14.z > 3.0f) { + var_r31->unk14.z -= 1.0f; + } + if (var_r27 < 0) { + var_r27 = 0; + var_r31->unk14.x = 0.0f; + } + var_r31->unk40.a = var_r27; + if (var_r31->unk14.x == 0.0f) { + var_r31->unk2C = 0.0f; + } + } + } +} + +void fn_1_2744(ModelData* model, ParticleData* particle, Mtx matrix) { + HsfanimStruct01* var_r31; + StructBss200* temp_r28; + float temp_f31; + float temp_f30; + s32 var_r27; + s16 i; + s16 j; + s16 k; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + var_r31->unk14.x = var_r31->unk2C = 0.0f; + var_r31->unk20 = -1.0f; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < 4; i++) { + temp_r28 = &lbl_1_bss_200[i]; + if (temp_r28->unk38 & 2) { + for (j = 0; j < 10; j++) { + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk14.x == 0.0f) { + break; + } + } + if (k == particle->unk_30) { + break; + } + temp_f31 = 400.0f * frandf() - 200.0f; + temp_f30 = 400.0f * frandf() - 200.0f; + var_r31->unk34.x = temp_r28->unk74 + temp_f31; + var_r31->unk34.y = temp_r28->unk78 + 50.0f; + var_r31->unk34.z = temp_r28->unk7C + temp_f30; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 7.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20 = frandmod(10); + var_r31->unk24 = 0.0f; + var_r31->unk14.x = 100.0f; + var_r31->unk2C = 0.0f; + var_r31->unk14.y = 7.0f; + var_r31->unk40.a = 0xFF; + var_r31->unk14.z = 10.0f; + } + temp_r28->unk38 &= ~2; + } + } + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk20 > 0.0f) { + var_r31->unk20 -= 1.0f; + } + if (var_r31->unk20 == 0.0f) { + var_r31->unk24 = 1.0f; + var_r31->unk2C = 100.0f + 100.0f * frandf(); + var_r31->unk20 = -1.0f; + } + if (var_r31->unk14.x != 0.0f && var_r31->unk24 != 0.0f) { + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + if (var_r31->unk08.y > 1.0f) { + var_r31->unk08.y -= 0.3f; + } + var_r31->unk2C += var_r31->unk14.y; + if (var_r31->unk14.y > 2.0f) { + var_r31->unk14.y -= 0.4f; + } + var_r27 = var_r31->unk40.a; + var_r27 -= var_r31->unk14.z; + if (var_r31->unk14.z > 3.0f) { + var_r31->unk14.z -= 1.0f; + } + if (var_r27 < 0) { + var_r27 = 0; + var_r31->unk14.x = 0.0f; + } + var_r31->unk40.a = var_r27; + if (var_r31->unk14.x == 0.0f) { + var_r31->unk2C = 0.0f; + } + } + } +} + +s32 fn_1_2BDC(StructBss190* arg0) { + StructBss200* temp_r31; + Vec sp24; + Vec sp18; + Vec spC; + float var_f29; + float var_f28; + s32 var_r28; + s32 i; + + for (i = 0, var_f29 = 10000.0f, var_r28 = -1; i < 4; i++) { + temp_r31 = &lbl_1_bss_200[i]; + HuSetVecF(&sp24, arg0->unk14, 0.0, arg0->unk1C); + HuSetVecF(&sp18, temp_r31->unk54, 0.0, temp_r31->unk5C); + HuSubVecF(&spC, &sp24, &sp18); + if ((var_f28 = VECMagXYZ(&spC)) < 50.0f + temp_r31->unk8C && var_f28 < var_f29) { + var_f29 = var_f28; + var_r28 = i; + } + } + return var_r28; +} + +void fn_1_2DFC(StructBss190* arg0) { + float temp_f31; + float var_f26; + float var_f25; + + temp_f31 = 50.0f; + var_f26 = fn_1_1F84(arg0->unk1C, 50.0f); + var_f25 = fn_1_1F84(arg0->unk14, 50.0f); + if (arg0->unk14 > var_f26 - temp_f31) { + arg0->unk14 = var_f26 - temp_f31; + } + if (arg0->unk14 < -(var_f26 - temp_f31)) { + arg0->unk14 = -(var_f26 - temp_f31); + } + if (arg0->unk1C > var_f25 - temp_f31) { + arg0->unk1C = var_f25 - temp_f31; + } + if (arg0->unk1C < -(var_f25 - temp_f31)) { + arg0->unk1C = -(var_f25 - temp_f31); + } + if (arg0->unk1C > var_f25 - temp_f31 || arg0->unk1C < -(var_f25 - temp_f31)) { + arg0->unk14 += arg0->unk10 * sind(arg0->unk0C) * 0.8f; + } + if (arg0->unk14 > var_f26 - temp_f31 || arg0->unk14 < -(var_f26 - temp_f31)) { + arg0->unk1C += arg0->unk10 * cosd(arg0->unk0C) * 0.8f; + } + if (arg0->unk14 > var_f26 - temp_f31) { + arg0->unk14 = var_f26 - temp_f31; + } + if (arg0->unk14 < -(var_f26 - temp_f31)) { + arg0->unk14 = -(var_f26 - temp_f31); + } + if (arg0->unk1C > var_f25 - temp_f31) { + arg0->unk1C = var_f25 - temp_f31; + } + if (arg0->unk1C < -(var_f25 - temp_f31)) { + arg0->unk1C = -(var_f25 - temp_f31); + } +} + +void fn_1_32F8(void) { + StructBss200* temp_r31; + float var_f31; + s32 var_r29; + s32 i; + + var_r29 = (s32) HuPrcCurrentGet()->user_data; + temp_r31 = &lbl_1_bss_200[var_r29]; + for (i = 0, var_f31 = 1.0f; i < 30; i++, var_f31 -= 0.033333335f) { + Hu3DModelAmbSet(temp_r31->unk00, 1.0f, var_f31, var_f31); + HuPrcVSleep(); + } + Hu3DModelAmbSet(temp_r31->unk00, 1.0f, 0.0f, 0.0f); + while (temp_r31->unk48 > 30) { + HuPrcVSleep(); + } + for (i = 0, var_f31 = 0.0f; i < 30; i++, var_f31 += 0.033333335f) { + Hu3DModelAmbSet(temp_r31->unk00, 1.0f, var_f31, var_f31); + HuPrcVSleep(); + } + Hu3DModelAmbSet(temp_r31->unk00, 1.0f, 1.0f, 1.0f); + HuPrcKill(HuPrcCurrentGet()); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_344C(void) { + StructBss190* temp_r31; + StructBss200* temp_r30; + Vec spAC; + Vec spA0; + Vec sp94; + float sp6C; + float sp68; + float sp64; + float sp60; + float sp5C; + float sp58; + float sp54; + float sp50; + float sp4C; + float sp48; + float sp44; + float var_f24; + float var_f23; + s32 var_r24; + s32 var_r23; + s16 var_r22; + s32 var_r25; + s32 var_r28; + s32 i; + + temp_r31 = HuPrcCurrentGet()->user_data; + HuPrcSleep(25); + var_r23 = 0; + temp_r31->unk0A = 0; + var_r28 = 0; + var_f24 = temp_r31->unk18; + var_f23 = 15.0f; + sp58 = 0.9f; + while (var_f24 > 50.0f) { + var_f23 -= sp58; + var_f24 += var_f23; + var_r28++; + } + if (temp_r31->unk08 == 0) { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_LOOP); + Hu3DModelTPLvlSet(temp_r31->unk00, 1.0f); + } else { + Hu3DModelAttrReset(temp_r31->unk02, 1); + } + Hu3DModelAttrReset(temp_r31->unk00, 1); + temp_r31->unk0C = atan2d(temp_r31->unk24 - temp_r31->unk14, temp_r31->unk28 - temp_r31->unk1C); + HuSetVecF(&spAC, temp_r31->unk24, 0.0, temp_r31->unk28); + HuSetVecF(&spA0, temp_r31->unk14, 0.0, temp_r31->unk1C); + HuSubVecF(&sp94, &spAC, &spA0); + temp_r31->unk10 = VECMagXYZ(&sp94) / var_r28; + var_f24 = temp_r31->unk18; + var_f23 = 15.0f; + sp58 = 0.9f; + while (var_f24 > 50.0f) { + sp68 = temp_r31->unk14; + sp64 = temp_r31->unk18; + sp60 = temp_r31->unk1C; + temp_r31->unk14 += temp_r31->unk10 * sind(temp_r31->unk0C); + temp_r31->unk18 = var_f24; + temp_r31->unk1C += temp_r31->unk10 * cosd(temp_r31->unk0C); + if ((var_r25 = fn_1_2BDC(temp_r31)) != -1) { + temp_r30 = &lbl_1_bss_200[var_r25]; + if (GWPlayerCfg[temp_r30->unk28].group == 0) { + sp5C = 150.0f; + } else { + sp5C = 400.0f; + } + if (temp_r31->unk18 < sp5C) { + if (temp_r31->unk18 < sp5C && temp_r31->unk18 > sp5C - 50.0f) { + var_f23 = 15.0f; + sp58 = 0.9f; + } else { + sp6C = atan2d(temp_r31->unk14 - temp_r30->unk54, temp_r31->unk1C - temp_r30->unk5C); + temp_r31->unk0C = fn_1_21D4(180.0f + temp_r31->unk0C); + temp_r31->unk0C = sp6C - (temp_r31->unk0C - sp6C); + } + temp_r31->unk14 = sp68; + temp_r31->unk18 = sp64; + temp_r31->unk1C = sp60; + } + } + fn_1_2DFC(temp_r31); + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14, temp_r31->unk18, temp_r31->unk1C); + if (temp_r31->unk08 != 0) { + temp_r31->unk20 += 10.0f; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk14, temp_r31->unk18, temp_r31->unk1C); + Hu3DModelRotSet(temp_r31->unk02, 0.0f, 0.0f, temp_r31->unk20); + } + Hu3DModelRotSet(temp_r31->unk00, 0.0f, 0.0f, temp_r31->unk20); + if (lbl_1_bss_5B4 >= 4) { + var_r23 = 1; + goto fn_1_344C_label; + } + HuPrcVSleep(); + var_f23 -= sp58; + var_f24 += var_f23; + } + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14, 50.0f, temp_r31->unk1C); + if (temp_r31->unk08 != 0) { + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk14, 50.0f, temp_r31->unk1C); + } + if (temp_r31->unk08 == 0) { + Hu3DModelAttrSet(temp_r31->unk00, 1); + Hu3DModelAttrReset(temp_r31->unk02, 1); + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk14, 0.0f, temp_r31->unk1C); + Hu3DModelRotSet(temp_r31->unk02, 0.0f, 0.0f, 0.0f); + Hu3DMotionSet(temp_r31->unk02, temp_r31->unk06); + Hu3DModelAttrReset(temp_r31->unk02, HU3D_MOTATTR_LOOP); + Hu3DModelTPLvlSet(temp_r31->unk02, 1.0f); + } + for (var_r28 = 300, var_r24 = 0; var_r28 != 0; var_r28--) { + if (temp_r31->unk08 != 0 && 0.0f != temp_r31->unk20) { + temp_r31->unk20 += 10.0f; + if (temp_r31->unk20 > 360.0f) { + temp_r31->unk20 = 0.0f; + } + Hu3DModelRotSet(temp_r31->unk00, 0.0f, 0.0f, temp_r31->unk20); + Hu3DModelRotSet(temp_r31->unk02, 0.0f, 0.0f, temp_r31->unk20); + } + for (i = 0, sp50 = 10000.0f; i < 4; i++) { + temp_r30 = &lbl_1_bss_200[i]; + HuSetVecF(&spAC, temp_r31->unk14, 0.0, temp_r31->unk1C); + HuSetVecF(&spA0, temp_r30->unk54, 0.0, temp_r30->unk5C); + HuSubVecF(&sp94, &spAC, &spA0); + if ((sp54 = VECMagXYZ(&sp94)) < 50.0f + temp_r30->unk8C && sp54 < sp50) { + sp50 = sp54; + var_r25 = i; + } + } + if (sp50 < 10000.0f) { + temp_r30 = &lbl_1_bss_200[var_r25]; + temp_r31->unk0A = 1; + if (temp_r31->unk08 != 0) { + temp_r30->unk3C = 1; + temp_r30->unk48 = 300; + if (GWPlayerCfg[temp_r30->unk28].group == 0) { + temp_r30->unk94 = 3.0f; + lbl_1_bss_5BC = 1; + HuAudFXPlay(0x5E6); + } else { + temp_r30->unk90 = 6.75f; + temp_r30->unk98 = 0.99f; + HuAudFXPlay(0x5E2); + } + } else if (temp_r30->unk24 == 0) { + temp_r30->unk34 = 4; + HuAudPlayerVoicePlay(temp_r30->unk28, 0x128); + HuAudFXPlay(0x5E9); + } + break; + } + if (var_r28 < 60) { + var_r22 = temp_r31->unk00; + if (temp_r31->unk08 == 0) { + var_r22 = temp_r31->unk02; + } + if (var_r24 & 1) { + Hu3DModelAttrReset(var_r22, 1); + } else { + Hu3DModelAttrSet(var_r22, 1); + } + var_r24++; + } + HuPrcVSleep(); + if (lbl_1_bss_5B4 >= 4) { + var_r23 = 1; + break; + } + } +fn_1_344C_label: + if (var_r23 != 0) { + for (i = 0, sp4C = 1.0f; i < 30; i++) { + sp4C -= 0.033333335f; + Hu3DModelScaleSet(temp_r31->unk00, sp4C, sp4C, sp4C); + HuPrcVSleep(); + } + Hu3DModelAttrSet(temp_r31->unk00, 1); + Hu3DModelAttrSet(temp_r31->unk02, 1); + } else { + if (temp_r31->unk08 == 0) { + temp_r30 = &lbl_1_bss_200[var_r25]; + sp6C = atan2d(temp_r31->unk14 - temp_r30->unk54, temp_r31->unk1C - temp_r30->unk5C); + sp44 = 1.0f; + temp_r31->unk20 = 0.0f; + for (i = 0, sp48 = 0.0f; i < 10; i++, sp48 += 9.0f, sp44 -= 0.1f) { + temp_r31->unk14 += 2.0 * sind(sp6C); + temp_r31->unk18 += 10.0f; + temp_r31->unk1C += 2.0 * cosd(sp6C); + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk14, temp_r31->unk18, temp_r31->unk1C); + temp_r31->unk20 += 10.0f; + Hu3DModelRotSet(temp_r31->unk02, 0.0f, 0.0f, temp_r31->unk20); + Hu3DModelTPLvlSet(temp_r31->unk02, sp44); + HuPrcVSleep(); + } + } + Hu3DModelAttrSet(temp_r31->unk00, 1); + if (temp_r31->unk08 != 0) { + Hu3DModelAttrSet(temp_r31->unk02, 1); + } + temp_r31->unk20 = 0.0f; + HuPrcCurrentGet()->user_data = NULL; + HuPrcKill(HuPrcCurrentGet()); + } + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_47E4(void) { + StructBss1E8* var_r31; + StructBss190* var_r30; + ModelData* temp_r29; + Process* temp_r3; + s32 var_r27; + + var_r31 = &lbl_1_bss_1E8[0]; + while (lbl_1_bss_5B4 != 3) { + HuPrcVSleep(); + } + while (TRUE) { + while (lbl_1_bss_5BA != 0) { + HuPrcVSleep(); + } + if (lbl_1_bss_5B4 >= 4) { + break; + } + var_r30 = &lbl_1_bss_190[0]; + if (lbl_1_bss_5B0 > lbl_1_bss_584[lbl_1_bss_580]) { + lbl_1_bss_580++; + var_r30 = &lbl_1_bss_190[1]; + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } else { + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[3], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } + HuPrcVSleep(); + var_r27 = Hu3DMotionMaxTimeGet(var_r31->unk00); + while (var_r27 != 0) { + HuPrcVSleep(); + var_r27--; + } + HuAudFXPlay(0x5E4); + temp_r3 = HuPrcChildCreate(fn_1_344C, 0x2010, 0x3000, 0, HuPrcCurrentGet()); + temp_r3->user_data = var_r30; + temp_r29 = &Hu3DData[lbl_1_bss_1E8[0].unk00]; + var_r30->unk14 = temp_r29->pos.x + 640.0f; + var_r30->unk18 = temp_r29->pos.y + 620.0f; + var_r30->unk1C = temp_r29->pos.y - 200.0f; + var_r30->unk20 = 0.0f; + var_r30->unk24 = 1000.0f * frandf() - 500.0f; + var_r30->unk28 = 1000.0f * frandf() - 500.0f; + while (!Hu3DMotionEndCheck(var_r31->unk00)) { + HuPrcVSleep(); + } + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + while (temp_r3->user_data) { + HuPrcVSleep(); + } + lbl_1_bss_5BA = 1; + if (var_r30->unk0A != 0) { + HuAudFXPlay(0x5E8); + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[2], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + HuPrcSleep(6); + while (!Hu3DMotionEndCheck(var_r31->unk00)) { + HuPrcVSleep(); + } + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + } + } + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_4B20(void) { + StructBss1E8* var_r31; + StructBss190* var_r30; + Process* temp_r3; + ModelData* temp_r29; + s32 var_r27; + + var_r31 = &lbl_1_bss_1E8[1]; + while (lbl_1_bss_5B4 != 3) { + HuPrcVSleep(); + } + while (TRUE) { + while (lbl_1_bss_5BA == 0) { + HuPrcVSleep(); + } + if (lbl_1_bss_5B4 >= 4) { + break; + } + var_r30 = lbl_1_bss_190; + if (lbl_1_bss_5B0 > lbl_1_bss_584[lbl_1_bss_580]) { + lbl_1_bss_580++; + var_r30 = &lbl_1_bss_190[1]; + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } else { + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[3], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } + HuPrcVSleep(); + var_r27 = Hu3DMotionMaxTimeGet(var_r31->unk00); + while (var_r27 != 0) { + HuPrcVSleep(); + var_r27--; + } + HuAudFXPlay(0x5E4); + temp_r3 = HuPrcChildCreate(fn_1_344C, 0x2010, 0x3000, 0, HuPrcCurrentGet()); + temp_r3->user_data = var_r30; + temp_r29 = &Hu3DData[lbl_1_bss_1E8->unk00]; + var_r30->unk14 = -(temp_r29->pos.x + 640.0f); + var_r30->unk18 = temp_r29->pos.y + 620.0f; + var_r30->unk1C = temp_r29->pos.y - 200.0f; + var_r30->unk24 = 1000.0f * frandf() - 500.0f; + var_r30->unk28 = 1000.0f * frandf() - 500.0f; + while (!Hu3DMotionEndCheck(var_r31->unk00)) { + HuPrcVSleep(); + } + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + while (temp_r3->user_data) { + HuPrcVSleep(); + } + lbl_1_bss_5BA = 0; + if (var_r30->unk0A != 0) { + HuAudFXPlay(0x5E8); + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[2], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + HuPrcSleep(6); + while (!Hu3DMotionEndCheck(var_r31->unk00)) { + HuPrcVSleep(); + } + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + } + } + while (TRUE) { + HuPrcVSleep(); + } +} + +s8 fn_1_4E54(s32 arg0, s32 arg1) { + StructBss200* temp_r31; + s8 var_r30; + + temp_r31 = &lbl_1_bss_200[arg0]; + if (GWPlayerCfg[arg0].iscom == 0) { + (arg1 != 0) ? (var_r30 = HuPadStkY[temp_r31->unk30]) : (var_r30 = HuPadStkX[temp_r31->unk30]); + } else { + (arg1 != 0) ? (var_r30 = temp_r31->unkA1) : (var_r30 = temp_r31->unkA0); + } + return var_r30; +} + +u8 fn_1_4F0C(s32 arg0, s32 arg1) { + StructBss200* temp_r31; + s8 var_r30; + + temp_r31 = &lbl_1_bss_200[arg0]; + if (GWPlayerCfg[arg0].iscom == 0) { + (arg1 != 0) ? (var_r30 = HuPadTrigR[temp_r31->unk30]) : (var_r30 = HuPadTrigL[temp_r31->unk30]); + } else { + (arg1 != 0) ? (var_r30 = temp_r31->unkA2) : (var_r30 = temp_r31->unkA3); + } + return var_r30; +} + +u16 fn_1_4FCC(s32 arg0) { + StructBss200* temp_r31; + u16 var_r30; + + temp_r31 = &lbl_1_bss_200[arg0]; + if (GWPlayerCfg[arg0].iscom == 0) { + var_r30 = HuPadBtnDown[temp_r31->unk30]; + } else { + var_r30 = temp_r31->unkA6; + } + return var_r30; +} + +u16 fn_1_5038(s32 arg0) { + StructBss200* temp_r31; + u16 var_r30; + + temp_r31 = &lbl_1_bss_200[arg0]; + if (GWPlayerCfg[arg0].iscom == 0) { + var_r30 = HuPadBtn[temp_r31->unk30]; + } else { + var_r30 = temp_r31->unkA4; + } + return var_r30; +} + +s32 fn_1_50A4(StructBss200* arg0, float arg1, s32 arg2) { + Vec sp2C; + Vec sp20; + Vec sp14; + StructBss200* temp_r30; + s32 var_r28; + float var_f27; + float var_f28; + s32 i; + + var_r28 = -1; + for (i = 0, var_f28 = 10000.0f; i < 4; i++) { + if (i != arg0->unk28 && (arg2 == 0 || i != lbl_1_bss_5AC)) { + temp_r30 = &lbl_1_bss_200[i]; + HuSetVecF(&sp2C, arg0->unk54, arg0->unk58, arg0->unk5C); + HuSetVecF(&sp20, temp_r30->unk54, temp_r30->unk58, temp_r30->unk5C); + HuSubVecF(&sp14, &sp2C, &sp20); + if ((var_f27 = VECMagXYZ(&sp14)) < arg0->unk8C + temp_r30->unk8C + arg1 && var_f27 < var_f28) { + var_f28 = var_f27; + var_r28 = i; + } + } + } + return var_r28; +} + +s32 fn_1_52E8(StructBss200* arg0) { + float var_f25; + float var_f24; + s32 var_r28; + + var_f25 = fn_1_1F84(arg0->unk5C, arg0->unk8C); + var_f24 = fn_1_1F84(arg0->unk54, arg0->unk8C); + if (arg0->unk54 > var_f25 - arg0->unk8C) { + arg0->unk54 = var_f25 - arg0->unk8C; + } + if (arg0->unk54 < -(var_f25 - arg0->unk8C)) { + arg0->unk54 = -(var_f25 - arg0->unk8C); + } + if (arg0->unk5C > var_f24 - arg0->unk8C) { + arg0->unk5C = var_f24 - arg0->unk8C; + } + if (arg0->unk5C < -(var_f24 - arg0->unk8C)) { + arg0->unk5C = -(var_f24 - arg0->unk8C); + } + if ((var_r28 = fn_1_50A4(arg0, 0.0f, 0)) != -1) { + arg0->unk54 = arg0->unk60; + arg0->unk5C = arg0->unk64; + } + return var_r28; +} + +float fn_1_5858(float arg0, float arg1, float arg2) { + float var_f31; + float var_f30; + + var_f31 = fmod(arg1 - arg0, 360.0); + if (0.0f > var_f31) { + var_f31 += 360.0f; + } + if (180.0f < var_f31) { + var_f31 -= 360.0f; + } + var_f30 = fmod(arg0 + var_f31 * arg2, 360.0); + if (0.0f > var_f30) { + var_f30 += 360.0f; + } + return var_f30; +} + +float fn_1_595C(float arg0, float arg1, StructBss200* arg2) { + Vec sp2C; + Vec sp20; + Vec sp14; + + HuSetVecF(&sp2C, arg0, 0.0, arg1); + HuSetVecF(&sp20, arg2->unk54, 0.0, arg2->unk5C); + HuSubVecF(&sp14, &sp2C, &sp20); + return VECMagXZ(&sp14); +} + +float fn_1_5AD8(float arg0, float arg1) { + float var_f31; + + if (arg0 > arg1) { + var_f31 = fn_1_21D4(arg0 - arg1); + if (var_f31 < 180.0f) { + var_f31 = fn_1_21D4(arg1 + var_f31 + 180.0f); + } else { + var_f31 = fn_1_21D4(arg1 - var_f31); + } + } else { + var_f31 = fn_1_21D4(arg1 - arg0); + if (var_f31 < 180.0f) { + var_f31 = fn_1_21D4(arg0 + var_f31 + 180.0f); + } else { + var_f31 = fn_1_21D4(arg0 - var_f31); + } + } + return var_f31; +} + +s32 fn_1_5F34(StructBss200* arg0, float arg1) { + s32 var_r31; + float var_f25; + float var_f24; + + var_f25 = fn_1_1F84(arg0->unk5C, arg0->unk8C); + var_f24 = fn_1_1F84(arg0->unk54, arg0->unk8C); + var_r31 = 0; + if (arg0->unk54 > var_f25 - arg0->unk8C - arg1 + || arg0->unk54 < -(var_f25 - arg0->unk8C - arg1) + || arg0->unk5C > var_f24 - arg0->unk8C - arg1 + || arg0->unk5C < -(var_f24 - arg0->unk8C - arg1)) + { + var_r31 = 1; + } + return var_r31; +} + +void fn_1_628C(StructBss200* arg0) { + Vec spC; + + HuSetVecF(&spC, fn_1_4E54(arg0->unk28, 0) / 4.0f, 0.0, -fn_1_4E54(arg0->unk28, 1) / 4.0f); + arg0->unk90 = VECMagXYZ(&spC); + if (arg0->unk90 >= 0.5f) { + if (arg0->unk90 >= 10.0f) { + spC.x /= arg0->unk90; + spC.z /= arg0->unk90; + arg0->unk90 = 10.0f; + spC.x = 10.0f * spC.x; + spC.z = 10.0f * spC.z; + } + arg0->unk54 += spC.x * arg0->unk94; + arg0->unk5C += spC.z * arg0->unk94; + } +} + +void fn_1_65C0(Vec* arg0, StructBss200** arg1) { + float temp_f31; + StructBss200* temp_r31; + StructBss200* temp_r30; + s32 var_r28; + s32 i; + + for (i = 0; i < 3; i++) { + temp_r31 = arg1[i]; + (i >= 2) ? (var_r28 = 0) : (var_r28 = i + 1); + temp_r30 = arg1[var_r28]; + temp_f31 = ABS_INV(temp_r31->unk54 - temp_r30->unk54) / 2.0f; + if (temp_r31->unk54 > temp_r30->unk54) { + arg0[i].x = temp_r31->unk54 - temp_f31; + } else { + arg0[i].x = temp_r30->unk54 - temp_f31; + } + temp_r31 = arg1[i]; + (i >= 2) ? (var_r28 = 0) : (var_r28 = i + 1); + temp_r30 = arg1[var_r28]; + temp_f31 = ABS_INV(temp_r31->unk5C - temp_r30->unk5C) / 2.0f; + if (temp_r31->unk5C > temp_r30->unk5C) { + arg0[i].z = temp_r31->unk5C - temp_f31; + } else { + arg0[i].z = temp_r30->unk5C - temp_f31; + } + } +} + +s32 fn_1_67A0(float arg0, float arg1, StructBss200* arg2, StructBss200** arg3) { + StructBss200* var_r31; + StructBss200 sp5C; + float var_f29; + s32 var_r27; + s32 i; + + var_r31 = &sp5C; + var_r31->unk28 = arg2->unk28; + var_r31->unk54 = arg2->unk54; + var_r31->unk58 = arg2->unk58; + var_r31->unk5C = arg2->unk5C; + var_r31->unk8C = arg2->unk8C; + var_r31->unk90 = arg2->unk90; + var_r31->unk94 = arg2->unk94; + var_f29 = fn_1_21D4(atan2d(arg0 - arg2->unk54, arg1 - arg2->unk5C)); + var_r27 = 1; + while (fn_1_595C(arg0, arg1, var_r31) >= 10.0f) { + var_r31->unk54 += 10.0 * sind(var_f29); + var_r31->unk5C += 10.0 * cosd(var_f29); + for (i = 0; i < 3; i++) { + if (fn_1_595C(arg3[i]->unk54, arg3[i]->unk5C, var_r31) < var_r31->unk8C + arg3[i]->unk8C + 10.0f) { + break; + } + } + if (i < 3) { + var_r27 = 0; + break; + } + } + return var_r27; +} + +s32 fn_1_6D04(void) { + StructBss200* sp8[3]; + StructBss200* var_r29; + s32 var_r30; + s32 var_r28; + s32 i; + + for (i = 0, var_r30 = 0; i < 4; i++) { + if (i == lbl_1_bss_5AC) { + var_r29 = &lbl_1_bss_200[i]; + } else { + sp8[var_r30++] = &lbl_1_bss_200[i]; + } + } + var_r30 = 0; + for (i = 0; i < 3; i++) { + if (sp8[i]->unk54 > var_r29->unk54) { + break; + } + } + if (i < 3) { + var_r30++; + for (i = 0; i < 3; i++) { + if (sp8[i]->unk54 < var_r29->unk54) { + break; + } + } + if (i < 3) { + var_r30++; + for (i = 0; i < 3; i++) { + if (sp8[i]->unk5C > var_r29->unk5C) { + break; + } + } + if (i < 3) { + var_r30++; + for (i = 0; i < 3; i++) { + if (sp8[i]->unk5C < var_r29->unk5C) { + break; + } + } + if (i < 3) { + var_r30++; + } + } + } + } + var_r28 = 0; + if (var_r30 >= 4) { + var_r28 = 1; + } + return var_r28; +} + +float fn_1_6E9C(StructBss200* arg0) { + s32 sp88[3]; + s32 sp50[2]; + float sp44; + float var_f20; + float sp48[2]; + StructBss200* sp7C[3]; + s32 var_r29; + s32 var_r28; + s32 i; + + for (i = 0, var_r29 = 0; i < 4; i++) { + if (i != arg0->unk28) { + sp7C[var_r29++] = &lbl_1_bss_200[i]; + } + } + for (i = 0, var_r28 = 0; i < 3; i++) { + sp44 = fn_1_595C(sp7C[i]->unk54, sp7C[i]->unk5C, arg0); + if (sp44 < arg0->unk8C + sp7C[i]->unk8C + 100.0f) { + sp88[i] = 1; + var_r28++; + } else { + sp88[i] = -1; + } + } + var_f20 = -1.0f; + switch (var_r28) { + case 1: + for (i = 0; i < 3; i++) { + if (sp88[i] != 0) { + break; + } + } + var_f20 = fn_1_21D4(atan2d(arg0->unk54 - sp7C[i]->unk54, arg0->unk5C - sp7C[i]->unk5C)); + break; + case 2: + for (i = 0, var_r29 = 0; i < 3; i++) { + if (sp88[i] == 0) { + sp50[var_r29++] = i; + } + } + for (i = 0; i < 2; i++) { + sp48[i] = fn_1_21D4(atan2d(arg0->unk54 - sp7C[sp50[i]]->unk54, arg0->unk5C - sp7C[sp50[i]]->unk5C)); + } + var_f20 = fn_1_5AD8(sp48[0], sp48[1]); + break; + } + if (var_f20 != -1.0f); + if (var_f20 != -1.0f) { + var_f20 = fn_1_21D4(var_f20); + } + return var_f20; +} + +void fn_1_78B4(StructBss200* arg0) { + StructBss200* temp_r18; + StructBss200* var_r17; + StructBss200* sp224[3]; + Vec sp254[3]; + Vec sp230[3]; + s32 sp218[3]; + s32 sp138[2]; + s32 sp130[2]; + s32 sp12C; + float sp128; + float sp124; + s32 sp120; + float sp11C; + float sp118; + float sp114; + float sp110; + float var_f27; + float var_f29; + float var_f28; + float var_f30; + float var_f31; + float var_f26; + s32 var_r21; + s32 var_r22; + s32 var_r29; + s32 var_r30; + s32 sp10C; + + arg0->unkA0 = arg0->unkA1 = 0; + arg0->unkA3 = arg0->unkA2 = 0; + arg0->unkA4 = arg0->unkA6 = 0; + switch (GWPlayerCfg[arg0->unk28].diff) { + case 0: + sp12C = 60; + break; + case 1: + sp12C = 80; + break; + case 2: + sp12C = 90; + break; + default: + sp12C = 95; + break; + } + for (var_r30 = 0, var_r29 = 0; var_r30 < 4; var_r30++) { + if (var_r30 != arg0->unk28) { + sp224[var_r29++] = &lbl_1_bss_200[var_r30]; + } + } + for (var_r30 = 0, var_f31 = 10000.0f; var_r30 < 3; var_r30++) { + if (sp224[var_r30]->unk54 < var_f31) { + var_f31 = sp224[var_r30]->unk54; + } + } + for (var_r30 = 0, var_f30 = -10000.0f; var_r30 < 3; var_r30++) { + if (sp224[var_r30]->unk54 > var_f30) { + var_f30 = sp224[var_r30]->unk54; + } + } + sp124 = ABS_INV(var_f30 - var_f31) / 2.0f; + var_f29 = var_f30 - sp124; + for (var_r30 = 0, var_f31 = 10000.0f; var_r30 < 3; var_r30++) { + if (sp224[var_r30]->unk5C < var_f31) { + var_f31 = sp224[var_r30]->unk5C; + } + } + for (var_r30 = 0, var_f30 = -10000.0f; var_r30 < 3; var_r30++) { + if (sp224[var_r30]->unk5C > var_f30) { + var_f30 = sp224[var_r30]->unk5C; + } + } + sp124 = ABS_INV(var_f30 - var_f31) / 2.0f; + var_f28 = var_f30 - sp124; + for (var_r30 = 0, var_f31 = 10000.0f; var_r30 < 3; var_r30++) { + var_f26 = fn_1_595C(var_f29, var_f28, sp224[var_r30]); + if (var_f26 < var_f31) { + var_f31 = var_f26; + } + } + if (fn_1_6D04() != 0) { + arg0->unkB0 = 0; + if (var_f31 < 400.0f || (arg0->unkB4 & 2)) { + arg0->unkB4 |= 2; + fn_1_65C0(sp254, sp224); + if (arg0->unkBC == -1) { + for (var_r30 = 0, sp120 = 0, var_f30 = 0.0f; var_r30 < 3; var_r30++) { + temp_r18 = sp224[var_r30]; + (var_r30 >= 2) ? (var_r29 = 0) : (var_r29 = var_r30 + 1); + var_r17 = sp224[var_r29]; + var_f26 = fn_1_595C(temp_r18->unk54, temp_r18->unk5C, var_r17); + if (var_f26 > 700.0f) { + sp218[var_r30] = 1; + sp120++; + } else { + sp218[var_r30] = 0; + } + if (var_f26 > var_f30) { + var_f30 = var_f26; + var_r21 = var_r30; + var_f27 = fn_1_21D4(atan2d(sp254[var_r30].x - arg0->unk54, sp254[var_r30].z - arg0->unk5C)); + } + } + if (sp120 > 0) { + var_r29 = frandmod(sp120); + for (var_r30 = 0; var_r30 < 3; var_r30++) { + if (sp218[var_r30] != 0 && var_r29-- == 0) { + break; + } + } + var_r21 = var_r30; + var_f27 = fn_1_21D4(atan2d(sp254[var_r30].x - arg0->unk54, sp254[var_r30].z - arg0->unk5C)); + } + arg0->unkBC = var_r21; + arg0->unkCC = var_f27; + } else { + var_r21 = arg0->unkBC; + var_f27 = arg0->unkCC; + } + sp11C = var_f29; + sp118 = var_f28; + var_f29 = sp254[var_r21].x; + var_f28 = sp254[var_r21].z; + if (fn_1_595C(var_f29, var_f28, arg0) <= 30.0f && !(arg0->unkB4 & 1)) { + arg0->unkC4 = fn_1_21D4(atan2d(var_f29, var_f28)); + arg0->unkB4 |= 1; + } + if (arg0->unkB4 & 1) { + var_f29 = 800.0 * sind(arg0->unkC4); + var_f28 = 800.0 * cosd(arg0->unkC4); + } + } + } else { + arg0->unkAC = 0; + arg0->unkB4 = 0; + arg0->unkBC = -1; + if ((var_f31 >= 600.0f && fn_1_67A0(var_f29, var_f28, arg0, &sp224[0]) != 0) || (arg0->unkB0 & 0x10)) { + arg0->unkB0 |= 0x10; + fn_1_65C0(sp230, sp224); + for (var_r30 = 0, var_r21 = 0, var_f31 = 10000.0f; var_r30 < 3; var_r30++) { + var_f26 = fn_1_595C(sp230[var_r30].x, sp230[var_r30].z, arg0); + if (var_f26 < var_f31) { + var_f31 = var_f26; + var_r21 = var_r30; + } + } + sp114 = var_f29; + sp110 = var_f28; + var_f29 = sp230[var_r21].x; + var_f28 = sp230[var_r21].z; + if (fn_1_595C(var_f29, var_f28, arg0) <= 30.0f && !(arg0->unkB0 & 0x20)) { + arg0->unkC4 = fn_1_21D4(var_f27 - 90.0f); + arg0->unkB0 |= 0x20; + } + if (arg0->unkB0 & 0x20) { + var_f29 = 800.0 * sind(arg0->unkC4); + var_f28 = 800.0 * cosd(arg0->unkC4); + if (fn_1_5F34(arg0, 10.0f)) { + arg0->unkB0 &= ~0x20; + } else { + arg0->unkB0 |= 0x20; + } + } + } else { + if (arg0->unk54 >= 0.0f && arg0->unk5C < 0.0f) { + sp138[0] = 0; + sp138[1] = 1; + } + if (arg0->unk54 < 0.0f && arg0->unk5C < 0.0f) { + sp138[0] = 3; + sp138[1] = 0; + } + if (arg0->unk54 >= 0.0f && arg0->unk5C >= 0.0f) { + sp138[0] = 1; + sp138[1] = 2; + } + if (arg0->unk54 < 0.0f && arg0->unk5C >= 0.0f) { + sp138[0] = 2; + sp138[1] = 3; + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r22 = 0; + sp10C = sp138[var_r30]; + switch (sp10C) { + case 0: + for (var_r29 = 0; var_r29 < 3; var_r29++) { + if (sp224[var_r29]->unk5C < -800.0f + sp224[var_r29]->unk8C + 150.0f) { + break; + } + } + if (var_r29 >= 3) { + var_r22 = 1; + } + break; + case 1: + for (var_r29 = 0; var_r29 < 3; var_r29++) { + if (sp224[var_r29]->unk54 > 800.0f - sp224[var_r29]->unk8C - 150.0f) { + break; + } + } + if (var_r29 >= 3) { + var_r22 = 1; + } + break; + case 2: + for (var_r29 = 0; var_r29 < 3; var_r29++) { + if (sp224[var_r29]->unk5C > 800.0f - sp224[var_r29]->unk8C - 150.0f) { + break; + } + } + if (var_r29 >= 3) { + var_r22 = 1; + } + break; + case 3: + for (var_r29 = 0; var_r29 < 3; var_r29++) { + if (sp224[var_r29]->unk54 < -800.0f + sp224[var_r29]->unk8C + 150.0f) { + break; + } + } + if (var_r29 >= 3) { + var_r22 = 1; + } + break; + } + sp130[var_r30] = var_r22; + } + var_r22 = 0; + if ((arg0->unkB0 & 4) || (arg0->unkB0 & 8)) { + if ((arg0->unkB0 & 4) && sp130[0] != 0) { + var_r22 = 1; + } + if ((arg0->unkB0 & 8) && sp130[1] != 0) { + var_r22 = 1; + } + } + if (arg0->unkC0 > 0) { + var_r22 = 1; + arg0->unkC0--; + } + if (var_r22 == 0) { + arg0->unkB0 &= ~0xC; + if (sp130[0] != 0 && sp130[1] != 0) { + if (frandmod(2) != 0) { + arg0->unkB0 |= 4; + arg0->unkC0 = 30; + } else { + arg0->unkB0 |= 8; + arg0->unkC0 = 30; + } + } else if (sp130[0] != 0) { + arg0->unkB0 |= 4; + arg0->unkC0 = 30; + } else if (sp130[1] != 0) { + arg0->unkB0 |= 8; + arg0->unkC0 = 30; + } else { + arg0->unkB0 |= 0x10; + } + } + if ((arg0->unkB0 & 4) || (arg0->unkB0 & 8)) { + var_f27 = fn_1_21D4(atan2d(arg0->unk54, arg0->unk5C)); + if (arg0->unkB0 & 4) { + var_f27 += 10.0f; + } else { + var_f27 -= 10.0f; + } + var_f29 = 800.0 * sind(var_f27); + var_f28 = 800.0 * cosd(var_f27); + } else { + var_f29 = arg0->unk54; + var_f28 = arg0->unk5C; + } + } + } + var_f26 = fn_1_595C(var_f29, var_f28, arg0); + if (var_f26 > 100.0f || arg0->unkAC == 1) { + if (arg0->unkAC != 1) { + arg0->unkAC = 1; + } + if (var_f26 < 20.0f) { + arg0->unkAC = 0; + return; + } + if (var_f26 < 30.0f) { + sp128 = 10.0f; + } else { + sp128 = 50.0f; + } + var_f27 = fn_1_21D4(atan2d(var_f29 - arg0->unk54, var_f28 - arg0->unk5C)); + arg0->unkA0 = sp128 * sind(var_f27); + arg0->unkA1 = sp128 * -cosd(var_f27); + } +} + +void fn_1_9AF0(void) { + StructBss200* temp_r31; + StructBss200* temp_r29; + Vec sp6C; + float sp44; + float sp40; + float var_f23; + float var_f22; + float var_f21; + float var_f28; + float var_f19; + s32 var_r24; + s32 var_r30; + + temp_r31 = HuPrcCurrentGet()->user_data; + temp_r31->unk34 = 0; + temp_r31->unk24 = 0; + temp_r31->unkA8 = 0; + temp_r31->unk38 = 0; + temp_r31->unkBC = -1; + while (lbl_1_bss_5B4 == 0) { + HuPrcVSleep(); + } + lbl_1_bss_5B4 = 2; + while (lbl_1_bss_5B4 == 2) { + HuPrcVSleep(); + } + while (TRUE) { + temp_r31->unk60 = temp_r31->unk54; + temp_r31->unk64 = temp_r31->unk5C; + if (GWPlayerCfg[temp_r31->unk28].iscom == 1) { + fn_1_78B4(temp_r31); + } + if (temp_r31->unk3C != 0 && temp_r31->unk48-- == 0) { + temp_r31->unk3C = 0; + temp_r31->unk94 = 1.0f; + lbl_1_bss_5BC = 0; + } + if (temp_r31->unk24 != 0) { + break; + } + switch (temp_r31->unk34) { + case 4: + omVibrate(temp_r31->unk28, 12, 6, 6); + CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 1.0f); + CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[6]); + Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); + temp_r31->unk44 = 60; + temp_r31->unk34 = 5; + break; + case 5: + if (temp_r31->unk44 != 0) { + if (temp_r31->unk44 == 20) { + HuAudPlayerVoicePlay(temp_r31->unk28, 0x119); + } + temp_r31->unk44--; + } else { + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[7], 0.0f, 10.0f, HU3D_MOTATTR_NONE); + temp_r31->unk44 = 20; + temp_r31->unk34 = 6; + } + break; + case 6: + if (temp_r31->unk44 != 0) { + Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); + temp_r31->unk44--; + } else if (Hu3DMotionEndCheck(temp_r31->unk00) == 1) { + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[4], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + temp_r31->unk44 = 10; + temp_r31->unk34 = 7; + } + break; + case 7: + if (temp_r31->unk44 != 0) { + temp_r31->unk44--; + } else { + CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 2.0f); + temp_r31->unk34 = 0; + } + break; + default: + HuSetVecF(&sp6C, fn_1_4E54(temp_r31->unk28, 0) / 4.0f, 0.0, -fn_1_4E54(temp_r31->unk28, 1) / 4.0f); + temp_r31->unk90 = VECMagXYZ(&sp6C); + if (temp_r31->unk90 >= 0.5f) { + CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 1.0f); + if (temp_r31->unk90 >= 10.0f) { + sp6C.x /= temp_r31->unk90; + sp6C.z /= temp_r31->unk90; + temp_r31->unk90 = 10.0f; + sp6C.x = 10.0f * sp6C.x; + sp6C.z = 10.0f * sp6C.z; + } + temp_r31->unk6C = fn_1_5858(temp_r31->unk6C, atan2d(sp6C.x, sp6C.z), 0.4f); + if (temp_r31->unk90 >= 8.0f) { + if (temp_r31->unk34 != 3) { + temp_r31->unk34 = 3; + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + } else if (temp_r31->unk34 != 2) { + temp_r31->unk34 = 2; + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + temp_r31->unk54 += sp6C.x * temp_r31->unk94; + temp_r31->unk5C += sp6C.z * temp_r31->unk94; + } else if (temp_r31->unk34 != 0) { + temp_r31->unk34 = 0; + CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[4]); + CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 2.0f); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_LOOP); + } + break; + } + if ((temp_r31->unk40 = fn_1_50A4(temp_r31, 0.0f, 0)) != -1) { + temp_r31->unk24 = 1; + break; + } + if ((temp_r31->unk40 = fn_1_52E8(temp_r31)) != -1) { + temp_r31->unk24 = 1; + break; + } + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C); + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, temp_r31->unk6C, temp_r31->unk70); + HuPrcVSleep(); + } + lbl_1_bss_5BC = 0; + if (lbl_1_bss_5A8 == lbl_1_bss_5AC) { + var_f23 = 10.0f; + CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 1.0f); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + var_r30 = (360.0f - fn_1_21D4(temp_r31->unk6C)) / var_f23; + if (temp_r31->unk6C < 180.0f) { + var_r30 = temp_r31->unk6C / var_f23; + var_f23 = -var_f23; + } + for (; var_r30 != 0; var_r30--) { + temp_r31->unk6C += var_f23; + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, temp_r31->unk6C, temp_r31->unk70); + HuPrcVSleep(); + } + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, 0.0f, temp_r31->unk70); + } else { + omVibrate(temp_r31->unk28, 12, 4, 2); + HuAudPlayerVoicePlay(temp_r31->unk28, 0x123); + HuAudFXPlay(0x5EC); + temp_r29 = &lbl_1_bss_200[temp_r31->unk40]; + temp_r31->unk9C = atan2d(temp_r31->unk54 - temp_r29->unk54, temp_r31->unk5C - temp_r29->unk5C); + var_r30 = 0; + var_f22 = temp_r31->unk54; + var_f21 = temp_r31->unk5C; + while (TRUE) { + var_f22 += 20.0 * sind(temp_r31->unk9C); + var_f21 += 20.0 * cosd(temp_r31->unk9C); + if (ABS_INV(var_f22) > 1200.0f || var_f21 > 1200.0f || var_f21 < -2000.0f) { + break; + } + var_r30++; + } + var_f28 = fn_1_21D4(atan2d(temp_r31->unk54 - temp_r29->unk54, temp_r31->unk5C - temp_r29->unk5C)); + if (ABS_INV(var_f28 - temp_r31->unk6C) > 90.0f && ABS_INV(var_f28 - temp_r31->unk6C) < 270.0f) { + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk18, 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } else { + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk1A, 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } + sp44 = temp_r31->unk58; + var_f19 = 0.0f; + sp40 = 180.0f / var_r30; + var_r24 = 0; + for (; var_r30 != 0; var_r30--) { + temp_r31->unk54 += 20.0 * sind(temp_r31->unk9C); + temp_r31->unk58 = 700.0 * sind(var_f19); + temp_r31->unk5C += 20.0 * cosd(temp_r31->unk9C); + var_f19 += sp40; + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C); + if (Hu3DMotionTimeGet(temp_r31->unk00) == 20.0f && var_r24 == 0) { + var_r24 = 1; + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_PAUSE); + } + HuPrcVSleep(); + } + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk54, -1000.0f, temp_r31->unk5C); + Hu3DModelAttrSet(temp_r31->unk00, 1); + } + while (TRUE) { + HuPrcVSleep(); + } +} + +float fn_1_ADFC(s32 arg0, float arg1, float arg2) { + float temp_f31; + float var_f29; + + temp_f31 = arg1 - fn_1_21D4(arg2); + if (temp_f31 < 0.0f || ABS_INV(temp_f31) > 180.0f) { + if (ABS_INV(temp_f31) > 180.0f) { + var_f29 = (360.0f - ABS_INV(temp_f31)) / arg0; + if (temp_f31 > 0.0f) { + var_f29 = -var_f29; + } + } else { + var_f29 = temp_f31 / arg0; + } + } else { + var_f29 = temp_f31 / arg0; + } + return var_f29; +} + +void fn_1_B054(StructBss200* arg0) { + StructBss200 sp23C; + float sp230[3]; + float sp198[2]; + Vec sp224; + Vec sp218; + Vec sp20C; + float sp194; + float sp190; + float sp18C; + float sp188; + float sp184; + float sp180; + s32 sp17C; + float sp178; + float sp174; + float var_f30; + float var_f29; + float var_f31; + s32 var_r21; + s32 var_r20; + StructBss200* temp_r30; + StructBss200* var_r29; + StructBss200* temp_r28; + s32 var_r19; + s32 var_r18; + s32 var_r17; + s32 var_r26; + s32 i; + + arg0->unkA0 = arg0->unkA1 = 0; + arg0->unkA3 = arg0->unkA2 = 0; + arg0->unkA4 = arg0->unkA6 = 0; + switch(GWPlayerCfg[arg0->unk28].diff) { + case 0: + var_r19 = 60; + break; + case 1: + var_r19 = 80; + break; + case 2: + var_r19 = 90; + break; + default: + var_r19 = 95; + break; + } + temp_r30 = &lbl_1_bss_200[lbl_1_bss_5AC]; + var_r29 = &sp23C; + for (i = 0, var_r26 = 0; i < 4; i++) { + if (i != lbl_1_bss_5AC && i != arg0->unk28) { + temp_r28 = &lbl_1_bss_200[i]; + sp230[var_r26] = fn_1_21D4(atan2d(temp_r28->unk54 - temp_r30->unk54, temp_r28->unk5C - temp_r30->unk5C)); + var_r26++; + } + } + if (sp230[0] > sp230[1]) { + sp230[2] = fn_1_21D4(sp230[0] - sp230[1]); + if (sp230[2] < 180.0f) { + sp230[2] = fn_1_21D4(sp230[1] + sp230[2] + 180.0f); + } else { + sp230[2] = fn_1_21D4(sp230[1] - sp230[2]); + } + } else { + sp230[2] = fn_1_21D4(sp230[1] - sp230[0]); + if (sp230[2] < 180.0f) { + sp230[2] = fn_1_21D4(sp230[0] + sp230[2] + 180.0f); + } else { + sp230[2] = fn_1_21D4(sp230[0] - sp230[2]); + } + } + temp_r28 = &lbl_1_bss_200[arg0->unk28]; + HuSetVecF(&sp224, temp_r28->unk54, temp_r28->unk58, temp_r28->unk5C); + HuSetVecF(&sp218, temp_r30->unk54, temp_r30->unk58, temp_r30->unk5C); + HuSubVecF(&sp20C, &sp224, &sp218); + sp184 = VECMagXYZ(&sp20C); + for (i = 0, var_r21 = 0; i < 4; i++) { + if (i != lbl_1_bss_5AC && i != arg0->unk28 && GWPlayerCfg[i].iscom) { + temp_r28 = &lbl_1_bss_200[i]; + HuSetVecF(&sp224, temp_r28->unk54, temp_r28->unk58, temp_r28->unk5C); + HuSetVecF(&sp218, temp_r30->unk54, temp_r30->unk58, temp_r30->unk5C); + HuSubVecF(&sp20C, &sp224, &sp218); + sp194 = VECMagXYZ(&sp20C); + if (sp194 < sp184) { + var_r21++; + } + } + } + if (arg0->unkAC != 2) { + if (fn_1_6D04() != 0) { + arg0->unkAC = 0; + } else { + if (ABS_INV(temp_r30->unk54) > 600.0f && ABS_INV(temp_r30->unk5C) > 600.0f) { + if (var_r21 <= 0) { + arg0->unkAC = 0; + } else { + arg0->unkAC = 2; + } + } else { + if (var_r21 <= 0) { + arg0->unkAC = 0; + } else { + arg0->unkAC = 1; + } + } + } + } + if (arg0->unkAC != 3 && arg0->unkD0 > 180) { + arg0->unkAC = 3; + arg0->unkD4 = frandmod(120) + 120; + } + switch (arg0->unkAC) { + case 0: + var_f30 = temp_r30->unk54; + var_f29 = temp_r30->unk5C; + var_f31 = fn_1_21D4(atan2d(var_f30 - arg0->unk54, var_f29 - arg0->unk5C)); + break; + case 1: + var_f30 = var_f29 = sp18C = sp188 = 0.0f; + if (temp_r30->unk54 >= 300.0f && temp_r30->unk5C < -300.0f) { + var_f30 = 550.0f; + var_f29 = -100.0f; + sp18C = 100.0f; + sp188 = 550.0f; + } + if (temp_r30->unk54 < -300.0f && temp_r30->unk5C < -300.0f) { + var_f30 = -550.0f; + var_f29 = -100.0f; + sp18C = -100.0f; + sp188 = 550.0f; + } + if (temp_r30->unk54 >= 300.0f && temp_r30->unk5C >= 300.0f) { + var_f30 = 550.0f; + var_f29 = -100.0f; + sp18C = 100.0f; + sp188 = -550.0f; + } + if (temp_r30->unk54 < -300.0f && temp_r30->unk5C >= -300.0f) { + var_f30 = -550.0f; + var_f29 = -100.0f; + sp18C = -100.0f; + sp188 = -550.0f; + } + if (temp_r30->unk54 > 300.0f && temp_r30->unk5C > -300.0f && temp_r30->unk5C < 300.0f) { + var_f30 = 200.0f; + var_f29 = 550.0f; + sp18C = 200.0f; + sp188 = -550.0f; + } + if (temp_r30->unk54 < -300.0f && temp_r30->unk5C > -300.0f && temp_r30->unk5C < 300.0f) { + var_f30 = -200.0f; + var_f29 = 550.0f; + sp18C = -200.0f; + sp188 = -550.0f; + } + if (temp_r30->unk54 < 300.0f && temp_r30->unk54 > -300.0f && temp_r30->unk5C < -300.0f) { + var_f30 = 550.0f; + var_f29 = -200.0f; + sp18C = -550.0f; + sp188 = -200.0f; + } + if (temp_r30->unk54 < 300.0f && temp_r30->unk54 > -300.0f && temp_r30->unk5C > 300.0f) { + var_f30 = 550.0f; + var_f29 = 200.0f; + sp18C = -550.0f; + sp188 = 200.0f; + } + for (i = 0, var_r17 = -1, sp190 = 10000.0f; i < 4; i++) { + if (i != lbl_1_bss_5AC) { + temp_r28 = &lbl_1_bss_200[i]; + HuSetVecF(&sp224, temp_r30->unk54, 0.0, temp_r30->unk5C); + HuSetVecF(&sp218, temp_r28->unk54, 0.0, temp_r28->unk5C); + HuSubVecF(&sp20C, &sp224, &sp218); + sp194 = VECMagXZ(&sp20C); + if (sp194 < sp190) { + sp190 = sp194; + var_r17 = i; + } + } + } + for (i = 0, var_r26 = -1, sp190 = 10000.0f; i < 4; i++) { + if (i != lbl_1_bss_5AC && i != var_r17) { + temp_r28 = &lbl_1_bss_200[i]; + HuSetVecF(&sp224, temp_r30->unk54, 0.0, temp_r30->unk5C); + HuSetVecF(&sp218, temp_r28->unk54, 0.0, temp_r28->unk5C); + HuSubVecF(&sp20C, &sp224, &sp218); + sp194 = VECMagXZ(&sp20C); + if (sp194 < sp190) { + sp190 = sp194; + var_r26 = i; + } + } + } + if (arg0->unk28 != var_r26) { + var_f30 = sp18C; + var_f29 = sp188; + } + var_f31 = fn_1_21D4(atan2d(var_f30 - arg0->unk54, var_f29 - arg0->unk5C)); + break; + case 2: + for (i = 0, var_r26 = 0; i < 4; i++) { + if (i != lbl_1_bss_5AC && i != arg0->unk28) { + temp_r28 = &lbl_1_bss_200[i]; + sp198[var_r26++] = fn_1_21D4(atan2d(temp_r28->unk54 - arg0->unk54, temp_r28->unk5C - arg0->unk5C)); + } + } + sp180 = fn_1_21D4(ABS_INV(sp198[0] - sp198[1]) / 2.0f); + if (sp180 < 90.0f) { + sp180 += 180.0f; + } + if (sp198[0] < sp198[1]) { + sp180 += sp198[0]; + } else { + sp180 += sp198[1]; + } + sp180 = fn_1_21D4(sp180); + if (sqrtf(arg0->unk54 * arg0->unk54 + arg0->unk5C * arg0->unk5C) < 500.0f) { + sp194 = 600.0f; + var_f30 = arg0->unk54 + sp194 * sind(sp180); + var_f29 = arg0->unk5C + sp194 * cosd(sp180); + var_f31 = fn_1_21D4(atan2d(var_f30 - arg0->unk54, var_f29 - arg0->unk5C)); + } else { + arg0->unkAC = 1; + } + break; + case 3: + for (i = 0, sp174 = 10000.0f; i < 4; i++) { + if (i != lbl_1_bss_5AC && i != arg0->unk28) { + temp_r28 = &lbl_1_bss_200[i]; + sp178 = fn_1_595C(temp_r28->unk54, temp_r28->unk5C, arg0); + if (sp178 < sp174) { + sp174 = sp178; + sp17C = i; + } + } + } + temp_r28 = &lbl_1_bss_200[sp17C]; + var_f31 = fn_1_21D4(180.0 + atan2d(temp_r28->unk54 - arg0->unk54, temp_r28->unk5C - arg0->unk5C)); + var_f30 = arg0->unk54 + 100.0 * sind(var_f31); + var_f29 = arg0->unk5C + 100.0 * cosd(var_f31); + if (arg0->unkD4-- == 0) { + arg0->unkD0 = 0; + arg0->unkAC = 1; + } + break; + } + var_r29->unk9C = 0.0f; + if (ABS_INV(arg0->unk6C - var_f31) > 30.0f && ABS_INV(arg0->unk6C - var_f31) < 330.0f) { + if (ABS_INV(fn_1_21D4(arg0->unk6C - var_f31)) > 180.0f) { + arg0->unkA0 = -30; + var_r29->unk9C = arg0->unk98; + } else { + arg0->unkA0 = 30; + var_r29->unk9C = -arg0->unk98; + } + } + if (arg0->unkB8 == 0) { + HuSetVecF(&sp224, var_f30, 0.0, var_f29); + HuSetVecF(&sp218, arg0->unk54, 0.0, arg0->unk5C); + HuSubVecF(&sp20C, &sp224, &sp218); + if (VECMagXZ(&sp20C) > 10.0f) { + if (ABS_INV(arg0->unk6C - var_f31) < 90.0f || ABS_INV(arg0->unk6C - var_f31) > 270.0f) { + arg0->unkA4 |= 0x100; + } else { + arg0->unkA4 |= 0x200; + var_r29->unk9C = -var_r29->unk9C; + } + } + } + var_r29->unk28 = arg0->unk28; + var_r29->unk54 = arg0->unk54; + var_r29->unk58 = arg0->unk58; + var_r29->unk5C = arg0->unk5C; + var_r29->unk90 = arg0->unk90; + var_r29->unk9C = fn_1_21D4(arg0->unk9C + var_r29->unk9C); + var_r29->unk8C = lbl_1_bss_200[lbl_1_bss_5AC].unk8C + arg0->unk8C + arg0->unk90; + var_r20 = fn_1_50A4(var_r29, arg0->unk90, 0); + if (var_r20 != -1 && var_r20 != lbl_1_bss_5AC) { + if (arg0->unkA4 & 0x100) { + var_r29->unk54 += var_r29->unk90 * sind(var_r29->unk9C); + var_r29->unk5C += var_r29->unk90 * cosd(var_r29->unk9C); + } + if (arg0->unkA4 & 0x200) { + var_r29->unk54 -= var_r29->unk90 * sind(var_r29->unk9C); + var_r29->unk5C -= var_r29->unk90 * cosd(var_r29->unk9C); + } + temp_r28 = &lbl_1_bss_200[var_r20]; + HuSetVecF(&sp224, arg0->unk54, 0.0, arg0->unk5C); + HuSetVecF(&sp218, temp_r28->unk54, 0.0, temp_r28->unk5C); + HuSubVecF(&sp20C, &sp224, &sp218); + sp194 = VECMagXYZ(&sp20C); + HuSetVecF(&sp224, var_r29->unk54, 0.0, var_r29->unk5C); + HuSetVecF(&sp218, temp_r28->unk54, 0.0, temp_r28->unk5C); + HuSubVecF(&sp20C, &sp224, &sp218); + sp190 = VECMagXYZ(&sp20C); + var_r18 = fn_1_50A4(var_r29, 0.0f, 0); + if (sp194 > sp190 || (var_r20 != var_r18 && var_r18 != -1)) { + arg0->unkA0 = 30; + arg0->unkA4 = 0; + arg0->unkAC = 2; + arg0->unkA8 = 300; + if (arg0->unkB8 == 0) { + arg0->unkB8 = 60; + } + } else if (var_r18 == -1) { + arg0->unkAC = 2; + if (ABS_INV(arg0->unk6C - var_f31) < 90.0f || ABS_INV(arg0->unk6C - var_f31) > 270.0f) { + arg0->unkA4 |= 0x100; + } else { + arg0->unkA4 |= 0x200; + var_r29->unk9C = -var_r29->unk9C; + } + } else { + arg0->unkA0 = 30; + } + } + if (arg0->unkB8 != 0) { + arg0->unkB8--; + } +} + +void fn_1_DECC(void) { + StructBss200* temp_r31; + s32 i; + + temp_r31 = HuPrcCurrentGet()->user_data; + for (i = 0; i < 20; i++) { + temp_r31->unk88 -= 4.0f; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk80, temp_r31->unk84, temp_r31->unk88); + HuPrcVSleep(); + } + HuPrcKill(HuPrcCurrentGet()); + while (TRUE) { + HuPrcVSleep(); + } +} + +s32 fn_1_DF3C(StructBss200* arg0) { + s32 var_r31; + s32 var_r30; + + var_r31 = 1; + var_r30 = 1; + if (arg0->unk34 != 4 && arg0->unk34 != 5) { + var_r30 = 0; + } + if (var_r30 == 0 && arg0->unk34 != 6) { + var_r31 = 0; + } + return var_r31; +} + +void fn_1_DF98(void) { + float var_f27; + float var_f25; + float var_f26; + StructBss200* temp_r31; + StructBss200* temp_r30; + s32 var_r25; + s32 var_r29; + s32 var_r28; + s32 sp90; + Process* sp8C; + s32 sp88; + s32 sp84; + s32 sp80; + s32 sp7C; + Process* sp78; + + temp_r31 = HuPrcCurrentGet()->user_data; + temp_r31->unk34 = 0; + temp_r31->unkA8 = temp_r31->unkAC = temp_r31->unkB0 + = temp_r31->unkB4 = temp_r31->unkB8 = temp_r31->unk50 = 0; + temp_r31->unkC0 = 0; + temp_r31->unk38 = 0; + temp_r31->unkD0 = 0; + while (lbl_1_bss_5B4 == 0) { + HuPrcVSleep(); + } + lbl_1_bss_5B4 = 2; + while (lbl_1_bss_5B4 == 2) { + HuPrcVSleep(); + } + temp_r31->unkD8 = temp_r31->unk54; + temp_r31->unkDC = temp_r31->unk5C; + var_r29 = 0; + while (TRUE) { + temp_r31->unk60 = temp_r31->unk54; + temp_r31->unk64 = temp_r31->unk5C; + if (GWPlayerCfg[temp_r31->unk28].iscom == 1) { + fn_1_B054(temp_r31); + } + if (temp_r31->unk3C != 0) { + if (temp_r31->unk48 == 300) { + sp8C = HuPrcChildCreate(fn_1_32F8, 0x2000, 0x1000, 0, HuPrcCurrentGet()); + sp8C->user_data = (void*) temp_r31->unk28; + } + if (temp_r31->unk48-- == 0) { + temp_r31->unk3C = 0; + temp_r31->unk90 = 2.25f; + temp_r31->unk98 = 0.66f; + } + } + if (temp_r31->unk24 != 0) { + break; + } + switch (temp_r31->unk34) { + case 8: + if (temp_r31->unk44 != 0) { + temp_r31->unk44--; + } else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + temp_r31->unk34 = 0; + } + break; + case 4: + omVibrate(temp_r31->unk28, 12, 4, 2); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + temp_r31->unk44 = 90; + temp_r31->unk4C = 30; + temp_r31->unk34 = 5; + break; + case 5: + if (temp_r31->unk4C-- == 0) { + HuAudFXPlay(0x5E7); + temp_r31->unk74 = temp_r31->unk54; + temp_r31->unk78 = temp_r31->unk58; + temp_r31->unk7C = temp_r31->unk5C; + temp_r31->unk38 |= 1; + } + if (temp_r31->unk44 != 0) { + temp_r31->unk44--; + } else { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[5]); + Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); + temp_r31->unk34 = 6; + } + break; + case 6: + if (Hu3DMotionEndCheck(temp_r31->unk00) == 1) { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[0]); + temp_r31->unk34 = 0; + } + break; + default: + if (fn_1_4E54(temp_r31->unk28, 0) > 20) { + temp_r31->unk9C -= temp_r31->unk98; + if (temp_r31->unk9C < 0.0f) { + temp_r31->unk9C += 360.0f; + } + temp_r31->unk6C = temp_r31->unk9C; + } + if (fn_1_4E54(temp_r31->unk28, 0) < -20) { + temp_r31->unk9C += temp_r31->unk98; + if (temp_r31->unk9C > 360.0f) { + temp_r31->unk9C -= 360.0f; + } + temp_r31->unk6C = temp_r31->unk9C; + } + if (fn_1_5038(temp_r31->unk28) & 0x100) { + temp_r31->unk54 += temp_r31->unk90 * sind(temp_r31->unk9C); + temp_r31->unk5C += temp_r31->unk90 * cosd(temp_r31->unk9C); + } + if (fn_1_5038(temp_r31->unk28) & 0x200) { + temp_r31->unk54 -= temp_r31->unk90 * sind(temp_r31->unk9C); + temp_r31->unk5C -= temp_r31->unk90 * cosd(temp_r31->unk9C); + } + if (fn_1_5038(temp_r31->unk28) & 0x300) { + if (temp_r31->unk3C != 1) { + if (temp_r31->unk34 != 2) { + temp_r31->unk34 = 2; + if (fn_1_5038(temp_r31->unk28) & 0x100) { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } + if (var_r29 != 0) { + var_r29 = 0; + HuAudFXStop(var_r25); + } + } + } else { + if (temp_r31->unk34 != 3) { + temp_r31->unk34 = 3; + temp_r31->unk50 = 0; + if (fn_1_5038(temp_r31->unk28) & 0x100) { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } + if (var_r29 != 0) { + var_r29 = 0; + HuAudFXStop(var_r25); + } + } + } + if (temp_r31->unk3C != 1) { + sp88 = 8; + sp84 = 32; + } else { + sp88 = 7; + sp84 = 22; + } + if (temp_r31->unk50 == sp88) { + HuAudFXPlay(0x5E0); + } + if (temp_r31->unk50 == sp84) { + HuAudFXPlay(0x5E0); + } + temp_r31->unk50++; + if (temp_r31->unk3C != 1) { + if (temp_r31->unk50 >= 50) { + temp_r31->unk50 -= 50; + } + } else { + if (temp_r31->unk50 >= 30) { + temp_r31->unk50 -= 30; + } + } + } else { + if (ABS_INV(fn_1_4E54(temp_r31->unk28, 0)) <= 20) { + if (temp_r31->unk34 != 0) { + temp_r31->unk34 = 0; + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + if (var_r29 != 0) { + var_r29 = 0; + HuAudFXStop(var_r25); + } + } + } else { + if (temp_r31->unk34 != 1) { + temp_r31->unk34 = 1; + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 1.5f); + var_r25 = HuAudFXPlay(0x5EB); + var_r29 = 1; + } + } + } + if ((sp90 = fn_1_50A4(temp_r31, 0.0f, 0)) != -1) { + temp_r30 = &lbl_1_bss_200[sp90]; + if (GWPlayerCfg[temp_r30->unk28].group != 0) { + HuAudFXPlay(0x5ED); + temp_r31->unk34 = 8; + temp_r31->unk44 = 90; + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[6], 0.0f, 5.0f, 0U); + if ((temp_r30->unk34 == 4 || temp_r30->unk34 == 5 || temp_r30->unk34 == 6) == FALSE) { + temp_r30->unk34 = 8; + temp_r30->unk44 = 90; + Hu3DMotionShiftSet(temp_r30->unk00, temp_r30->unk06[6], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } + temp_r31->unk54 = temp_r31->unk60; + temp_r31->unk5C = temp_r31->unk64; + } else { + temp_r30->unk24 = 1; + temp_r30->unk40 = temp_r31->unk28; + } + } + if ((sp90 = fn_1_52E8(temp_r31)) != -1) { + temp_r30 = &lbl_1_bss_200[sp90]; + if (GWPlayerCfg[temp_r30->unk28].group != 0) { + HuAudFXPlay(0x5ED); + temp_r31->unk34 = 8; + temp_r31->unk44 = 90; + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[6], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + if ((temp_r30->unk34 == 4 || temp_r30->unk34 == 5 || temp_r30->unk34 == 6) == FALSE) { + temp_r30->unk34 = 8; + temp_r30->unk44 = 90; + Hu3DMotionShiftSet(temp_r30->unk00, temp_r30->unk06[6], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } + temp_r31->unk54 = temp_r31->unk60; + temp_r31->unk5C = temp_r31->unk64; + } else { + temp_r30->unk24 = 1; + temp_r30->unk40 = temp_r31->unk28; + } + } + break; + } + if (temp_r31->unkD8 == temp_r31->unk54 && temp_r31->unkDC == temp_r31->unk5C) { + temp_r31->unkD0++; + } else { + temp_r31->unkD8 = temp_r31->unk54; + temp_r31->unkDC = temp_r31->unk5C; + temp_r31->unkD0 = 0; + } + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C); + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, temp_r31->unk6C, temp_r31->unk70); + HuPrcVSleep(); + } + if (var_r29 != 0) { + HuAudFXStop(var_r25); + } + if (lbl_1_bss_5A8 == lbl_1_bss_5AC) { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); + HuPrcSleep(90); + if (lbl_1_bss_5AC == 0) { + if (temp_r31->unk28 != 0) { + HuAudFXPlay(0x5EA); + } + } else { + if (temp_r31->unk28 == 0) { + HuAudFXPlay(0x5EA); + } + } + Hu3DModelAttrReset(temp_r31->unk04, 1); + Hu3DModelAttrReset(temp_r31->unk04, HU3D_MOTATTR_PAUSE); + Hu3DModelPosSet(temp_r31->unk04, temp_r31->unk54, temp_r31->unk58, temp_r31->unk5C); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[7], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + if (lbl_1_bss_5AC == 0) { + if (temp_r31->unk28 != 0) { + HuAudFXPlay(0x5E3); + } + } else { + if (temp_r31->unk28 == 0) { + HuAudFXPlay(0x5E3); + } + } + HuPrcSleep(15); + HuPrcSleep(30); + temp_r31->unk74 = temp_r31->unk54; + temp_r31->unk78 = temp_r31->unk58; + temp_r31->unk7C = temp_r31->unk5C; + temp_r31->unk38 |= 2; + while (!Hu3DMotionEndCheck(temp_r31->unk00)) { + HuPrcVSleep(); + } + lbl_1_bss_594[temp_r31->unk28] = HuAudPlayerVoicePlay(temp_r31->unk28, 0x11A); + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk1C[3], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + Hu3DModelHookReset(temp_r31->unk00); + Hu3DModelShadowSet(temp_r31->unk02); + var_f27 = 50.0f; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk54, temp_r31->unk58 + var_f27, temp_r31->unk5C); + HuPrcSleep(60); + for (sp80 = 0, sp7C = 0; sp80 < 90; sp80++) { + if (sp7C & 1) { + Hu3DModelAttrReset(temp_r31->unk00, 1); + Hu3DModelAttrReset(temp_r31->unk04, 1); + } else { + Hu3DModelAttrSet(temp_r31->unk00, 1); + Hu3DModelAttrSet(temp_r31->unk04, 1); + } + sp7C++; + HuPrcVSleep(); + } + Hu3DModelAttrSet(temp_r31->unk04, 1); + for (var_r28 = 0, var_f25 = 1.0f; var_r28 < 30; var_r28++) { + var_f25 -= 0.033333335f; + Hu3DModelTPLvlSet(temp_r31->unk00, var_f25); + if (var_f27 > 0.0f) { + var_f27 -= 5.0f; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk54, temp_r31->unk58 + var_f27, temp_r31->unk5C); + } + HuPrcVSleep(); + } + Hu3DModelAttrSet(temp_r31->unk00, 1); + } else { + var_f26 = temp_r31->unk98; + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); + if (fn_1_21D4(temp_r31->unk6C) != 0.0f) { + var_r28 = (360.0f - fn_1_21D4(temp_r31->unk6C)) / var_f26; + if (temp_r31->unk6C < 180.0f) { + var_r28 = temp_r31->unk6C / var_f26; + var_f26 = -var_f26; + } + while (var_r28 != 0) { + temp_r31->unk6C += var_f26; + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, temp_r31->unk6C, temp_r31->unk70); + HuPrcVSleep(); + var_r28--; + } + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, 0.0f, temp_r31->unk70); + } + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); + while (lbl_1_bss_5A4 < 60) { + HuPrcVSleep(); + } + sp78 = HuPrcChildCreate(fn_1_DECC, 0x2000, 0x1000, 0, HuPrcCurrentGet()); + sp78->user_data = temp_r31; + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk1C[2], 0.0f, 2.0f, HU3D_MOTATTR_NONE); + temp_r31->unk34 = 10; + } + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_F73C(void) { + StructBss200* var_r31; + float var_f31; + s32 var_r30; + s32 var_r29; + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + Hu3DModelAttrReset(lbl_1_bss_200[var_r30].unk00, 1); + } + for (var_r29 = 0, var_f31 = 1000.0f; var_r29 < 60; var_r29++, var_f31 -= 7.5f) { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r30 != lbl_1_bss_5AC) { + var_r31 = &lbl_1_bss_200[var_r30]; + var_r31->unk54 = var_f31 * sind(var_r31->unk6C - 180.0f); + var_r31->unk5C = var_f31 * cosd(var_r31->unk6C - 180.0f); + Hu3DModelPosSet(var_r31->unk00, var_r31->unk54, var_r31->unk58, var_r31->unk5C); + } + } + HuPrcVSleep(); + } + var_r31->unk54 = 550.0 * sind(var_r31->unk6C - 180.0f); + var_r31->unk5C = 550.0 * cosd(var_r31->unk6C - 180.0f); + Hu3DModelPosSet(var_r31->unk00, var_r31->unk54, var_r31->unk58, var_r31->unk5C); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r30 != lbl_1_bss_5AC) { + var_r31 = &lbl_1_bss_200[var_r30]; + Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk06[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + } + } + HuPrcKill(HuPrcCurrentGet()); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_F9BC(void) { + StructBss200* temp_r31; + float temp_f26; + float temp_f28; + float temp_f27; + float temp_f29; + float temp_f30; + float var_f31; + s32 var_r28; + s32 var_r30; + s32 var_r29; + s32 var_r27; + + HuAudFXPlay(0x5E5); + temp_r31 = &lbl_1_bss_200[lbl_1_bss_5AC]; + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[4], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + var_r27 = 180; + temp_f29 = ((CenterM->z - 687.0f) / var_r27) * 40.0f / 60.0f; + temp_f26 = ((CenterM->z - 687.0f) / var_r27) * 20.0f / 60.0f; + temp_f30 = CenterM->y; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + for (var_r29 = 30, var_f31 = 0.0f; var_r29 != 0; var_r29--, var_f31 += 3.0f) { + CenterM->y = temp_f30 + 50.0 * sind(var_f31); + CenterM->z -= 2.0f * temp_f29; + HuPrcVSleep(); + } + for (var_r29 = 20, var_f31 = 90.0f; var_r29 != 0; var_r29--, var_f31 += 4.5f) { + CenterM->y = temp_f30 + 50.0 * sind(var_f31); + CenterM->z -= 2.0f * temp_f26 * 1.5f; + HuPrcVSleep(); + } + HuAudFXPlay(0x5DF); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + omVibrate(var_r28, 12, 12, 0); + } + HuPrcSleep(5); + for (var_r29 = 10, var_f31 = 180.0f; var_r29 != 0; var_r29--, var_f31 += 18.0f) { + CenterM->y = temp_f30 + 10.0 * sind(var_f31); + HuPrcVSleep(); + } + HuPrcSleep(10); + } + HuPrcChildCreate(fn_1_F73C, 0x2000, 0x1000, 0, HuPrcCurrentGet()); + temp_f28 = CRotM->x; + temp_f30 = CenterM->y; + temp_f29 = CenterM->z; + temp_f27 = CZoomM[0]; + for (var_r30 = 0; var_r30 < 60; var_r30++) { + CRotM->x += (-45.0f - temp_f28) / 60.0f; + CenterM->y += (100.0f - temp_f30) / 60.0f; + CenterM->z += (70.0f - temp_f29) / 60.0f; + CZoomM[0] += (2130.0f - temp_f27) / 60.0f; + HuPrcVSleep(); + } + HuAudFXPlay(0x5DF); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + omVibrate(var_r28, 12, 12, 0); + } + Hu3DModelAttrSet(lbl_1_bss_5B8, 1); + HuAudPlayerVoicePlay(temp_r31->unk28, 0x128); + temp_r31 = &lbl_1_bss_200[lbl_1_bss_5AC]; + while (Hu3DMotionEndCheck(temp_r31->unk00)) { + HuPrcVSleep(); + } + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[5], 0.0f, 10.0f, HU3D_MOTATTR_NONE); + HuPrcSleep(15); + while (Hu3DMotionEndCheck(temp_r31->unk00)) { + HuPrcVSleep(); + } + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + HuPrcSleep(60); + temp_f28 = CRotM->x; + temp_f30 = CenterM->y; + temp_f29 = CenterM->z; + temp_f27 = CZoomM[0]; + for (var_r30 = 0; var_r30 < 60; var_r30++) { + CRotM->x += (-35.0f - temp_f28) / 60.0f; + CenterM->y += -temp_f30 / 60.0f; + CenterM->z += (-250.0f - temp_f29) / 60.0f; + CZoomM[0] += (4820.0f - temp_f27) / 60.0f; + HuPrcVSleep(); + } + HuPrcSleep(30); + temp_r31 = &lbl_1_bss_200[lbl_1_bss_5AC]; + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[4], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + HuPrcSleep(15); + while (Hu3DMotionEndCheck(temp_r31->unk00)) { + HuPrcVSleep(); + } + CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 2.0f); +} + +void fn_1_10258(s32 arg0) { + StructBss200* var_r30; + float temp_f31; + float temp_f30; + float temp_f29; + s32 i; + + if (arg0 == lbl_1_bss_5AC) { + HuPrcSleep(120); + temp_f31 = CenterM->x; + temp_f30 = CenterM->z; + temp_f29 = CZoomM[0]; + for (i = 0; i < 60; i++) { + var_r30 = &lbl_1_bss_200[lbl_1_bss_5AC]; + CenterM->x += (var_r30->unk54 - temp_f31) / 60.0f; + CenterM->z += (var_r30->unk5C - 100.0f - temp_f30) / 60.0f; + CZoomM[0] += (1000.0f - temp_f29) / 60.0f; + HuPrcVSleep(); + } + for (i = 0; i < 4; i++) { + if (i == lbl_1_bss_5AC) { + continue; + } + HuAudFXStop(lbl_1_bss_594[i]); + } + HuAudSStreamPlay(1); + Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk16, 0.0f, 5.0f, HU3D_MOTATTR_NONE); + } else { + for (lbl_1_bss_5A4 = 0; lbl_1_bss_5A4 < 60; lbl_1_bss_5A4++) { + HuPrcVSleep(); + } + HuAudSStreamPlay(1); + } +} + +void fn_1_104A0(void) { + while (TRUE) { + if (omSysExitReq == 1) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudFadeOut(1000); + HuPrcSleep(60); + MGSeqKillAll(); + omOvlReturnEx(1, 1); + while (TRUE) { + HuPrcVSleep(); + } + } + HuPrcVSleep(); + } +} + +void fn_1_10500(void) { + s16 temp_r28; + s16 temp_r30; + s16 var_r29; + s32 var_r26; + s32 var_r27; + s32 sp8[3]; + s32 i; + + lbl_1_bss_5B4 = 0; + lbl_1_bss_5A8 = -1; + fn_1_F9BC(); + HuPrcSleep(30); + lbl_1_bss_5B4 = 1; + while (lbl_1_bss_5B4 == 1) { + HuPrcVSleep(); + } + var_r26 = HuAudSeqPlay(0x49); + temp_r30 = MGSeqStartCreate(); + while (MGSeqStatGet(temp_r30) != 0) { + HuPrcVSleep(); + } + var_r29 = 0xAC7; + temp_r28 = MGSeqTimerCreate(var_r29 / 60); + lbl_1_bss_5B4 = 3; + while (TRUE) { + if (lbl_1_bss_200[lbl_1_bss_5AC].unk24 == 1) { + break; + } + if (var_r29 < 59) { + lbl_1_bss_5A8 = lbl_1_bss_5AC; + break; + } + MGSeqParamSet(temp_r28, 1, var_r29-- / 60); + lbl_1_bss_5B0++; + HuPrcVSleep(); + } + for (i = 0; i < 4; i++) { + lbl_1_bss_200[i].unk24 = 1; + } + lbl_1_bss_5B4 = 4; + HuAudSeqFadeOut(var_r26, 100); + MGSeqParamSet(temp_r28, 2, -1); + temp_r30 = MGSeqFinishCreate(); + while (MGSeqStatGet(temp_r30) != 0) { + HuPrcVSleep(); + } + fn_1_10258(lbl_1_bss_5A8); + if (lbl_1_bss_5A8 == lbl_1_bss_5AC) { + GWPlayerCoinWinSet(lbl_1_bss_5A8, 10); + temp_r30 = MGSeqWinCreate(GWPlayerCfg[lbl_1_bss_5A8].character, -1, -1, -1); + } else { + for (i = 0, var_r27 = 0; i < 4; i++) { + if (i != lbl_1_bss_5AC) { + sp8[var_r27++] = i; + GWPlayerCoinWinSet(i, 10); + } + } + temp_r30 = MGSeqWinCreate(GWPlayerCfg[sp8[0]].character, GWPlayerCfg[sp8[1]].character, GWPlayerCfg[sp8[2]].character, -1); + } + HuPrcSleep(210); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuPrcSleep(60); + HuAudFadeOut(1); + MGSeqKillAll(); + omOvlReturnEx(1, 1); + while (TRUE) { + HuPrcVSleep(); + } +} From 76c597f352e6583a7e66caf55c28de62d3d02df6 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 15 Dec 2024 20:23:30 +0100 Subject: [PATCH 197/311] Match m456Dll for every TU --- config/GMPE01_00/rels/m456Dll/symbols.txt | 96 +-- config/GMPJ01_00/config.yml | 4 +- config/GMPJ01_00/rels/m456Dll/splits.txt | 7 - config/GMPJ01_00/rels/m456Dll/symbols.txt | 282 ------- config/GMPP01_00/rels/m456Dll/splits.txt | 15 + config/GMPP01_00/rels/m456Dll/symbols.txt | 424 +++++----- configure.py | 4 +- include/REL/m456Dll.h | 2 + src/REL/m456Dll/main.c | 969 ++++++++++++++++++++++ src/REL/m456Dll/stage.c | 816 ++++++++---------- 10 files changed, 1614 insertions(+), 1005 deletions(-) delete mode 100644 config/GMPJ01_00/rels/m456Dll/splits.txt delete mode 100644 config/GMPJ01_00/rels/m456Dll/symbols.txt create mode 100644 src/REL/m456Dll/main.c diff --git a/config/GMPE01_00/rels/m456Dll/symbols.txt b/config/GMPE01_00/rels/m456Dll/symbols.txt index 4321bb34..68d90044 100644 --- a/config/GMPE01_00/rels/m456Dll/symbols.txt +++ b/config/GMPE01_00/rels/m456Dll/symbols.txt @@ -65,51 +65,52 @@ fn_1_9900 = .text:0x00009900; // type:function size:0x118 fn_1_9A18 = .text:0x00009A18; // type:function size:0x250 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:float lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float @@ -221,11 +222,11 @@ lbl_1_data_44 = .data:0x00000044; // type:object size:0xC data:float lbl_1_data_50 = .data:0x00000050; // type:object size:0x4 lbl_1_data_54 = .data:0x00000054; // type:object size:0xC lbl_1_data_60 = .data:0x00000060; // type:object size:0xC -lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x23 scope:local data:string lbl_1_data_90 = .data:0x00000090; // type:object size:0x4 data:4byte lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 data:4byte jumptable_1_data_98 = .data:0x00000098; // type:object size:0x30 scope:local -lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x1C data:string +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x1C scope:local data:string lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x50 lbl_1_data_134 = .data:0x00000134; // type:object size:0x30 lbl_1_data_164 = .data:0x00000164; // type:object size:0x20 @@ -255,6 +256,7 @@ lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x8 data:byte lbl_1_data_7AC = .data:0x000007AC; // type:object size:0x1 data:byte lbl_1_data_7B0 = .data:0x000007B0; // type:object size:0x10 lbl_1_data_7C0 = .data:0x000007C0; // type:object size:0x10 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 data:2byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:float diff --git a/config/GMPJ01_00/config.yml b/config/GMPJ01_00/config.yml index f074a33e..253a517d 100644 --- a/config/GMPJ01_00/config.yml +++ b/config/GMPJ01_00/config.yml @@ -309,8 +309,8 @@ modules: links: [] - object: files/dll/m456Dll.rel - symbols: config/GMPJ01_00/rels/m456Dll/symbols.txt - splits: config/GMPJ01_00/rels/m456Dll/splits.txt + symbols: config/GMPE01_00/rels/m456Dll/symbols.txt + splits: config/GMPE01_00/rels/m456Dll/splits.txt links: [] - object: files/dll/m457Dll.rel diff --git a/config/GMPJ01_00/rels/m456Dll/splits.txt b/config/GMPJ01_00/rels/m456Dll/splits.txt deleted file mode 100644 index 531cd645..00000000 --- a/config/GMPJ01_00/rels/m456Dll/splits.txt +++ /dev/null @@ -1,7 +0,0 @@ -Sections: - .text type:code align:4 - .ctors type:rodata align:4 - .dtors type:rodata align:4 - .rodata type:rodata align:8 - .data type:data align:8 - .bss type:bss align:8 diff --git a/config/GMPJ01_00/rels/m456Dll/symbols.txt b/config/GMPJ01_00/rels/m456Dll/symbols.txt deleted file mode 100644 index fbdbf93f..00000000 --- a/config/GMPJ01_00/rels/m456Dll/symbols.txt +++ /dev/null @@ -1,282 +0,0 @@ -_prolog = .text:0x00000000; // type:function size:0x54 scope:global -_epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x300 -fn_1_3A0 = .text:0x000003A0; // type:function size:0x10 -fn_1_3B0 = .text:0x000003B0; // type:function size:0x10 -fn_1_3C0 = .text:0x000003C0; // type:function size:0xD8 -fn_1_498 = .text:0x00000498; // type:function size:0x74C -fn_1_BE4 = .text:0x00000BE4; // type:function size:0x5C -fn_1_C40 = .text:0x00000C40; // type:function size:0x84 -fn_1_CC4 = .text:0x00000CC4; // type:function size:0x68 -fn_1_D2C = .text:0x00000D2C; // type:function size:0x220 -fn_1_F4C = .text:0x00000F4C; // type:function size:0x84 -fn_1_FD0 = .text:0x00000FD0; // type:function size:0x2B8 -fn_1_1288 = .text:0x00001288; // type:function size:0x7C -fn_1_1304 = .text:0x00001304; // type:function size:0xD3C -fn_1_2040 = .text:0x00002040; // type:function size:0x50 -fn_1_2090 = .text:0x00002090; // type:function size:0x104 -fn_1_2194 = .text:0x00002194; // type:function size:0x64 -fn_1_21F8 = .text:0x000021F8; // type:function size:0x250 -fn_1_2448 = .text:0x00002448; // type:function size:0x4D0 -fn_1_2918 = .text:0x00002918; // type:function size:0x1AC -fn_1_2AC4 = .text:0x00002AC4; // type:function size:0x330 -fn_1_2DF4 = .text:0x00002DF4; // type:function size:0x148 -fn_1_2F3C = .text:0x00002F3C; // type:function size:0x70 -fn_1_2FAC = .text:0x00002FAC; // type:function size:0x960 -fn_1_390C = .text:0x0000390C; // type:function size:0x328 -fn_1_3C34 = .text:0x00003C34; // type:function size:0x7C -fn_1_3CB0 = .text:0x00003CB0; // type:function size:0x82C -fn_1_44DC = .text:0x000044DC; // type:function size:0x68 -fn_1_4544 = .text:0x00004544; // type:function size:0x108 -fn_1_464C = .text:0x0000464C; // type:function size:0x348 -fn_1_4994 = .text:0x00004994; // type:function size:0xB3C -fn_1_54D0 = .text:0x000054D0; // type:function size:0x6E8 -fn_1_5BB8 = .text:0x00005BB8; // type:function size:0xBC -fn_1_5C74 = .text:0x00005C74; // type:function size:0x450 -fn_1_60C4 = .text:0x000060C4; // type:function size:0x104 -fn_1_61C8 = .text:0x000061C8; // type:function size:0x1E4 -fn_1_63AC = .text:0x000063AC; // type:function size:0x4C -fn_1_63F8 = .text:0x000063F8; // type:function size:0x4C -fn_1_6444 = .text:0x00006444; // type:function size:0x158 -fn_1_659C = .text:0x0000659C; // type:function size:0x1F4 -fn_1_6790 = .text:0x00006790; // type:function size:0x50 -fn_1_67E0 = .text:0x000067E0; // type:function size:0x5D0 -fn_1_6DB0 = .text:0x00006DB0; // type:function size:0xE8 -fn_1_6E98 = .text:0x00006E98; // type:function size:0xC8 -fn_1_6F60 = .text:0x00006F60; // type:function size:0x4 -fn_1_6F64 = .text:0x00006F64; // type:function size:0x18C -fn_1_70F0 = .text:0x000070F0; // type:function size:0xF0 -fn_1_71E0 = .text:0x000071E0; // type:function size:0x2C4 -fn_1_74A4 = .text:0x000074A4; // type:function size:0x54 -fn_1_74F8 = .text:0x000074F8; // type:function size:0x280 -fn_1_7778 = .text:0x00007778; // type:function size:0x3D8 -fn_1_7B50 = .text:0x00007B50; // type:function size:0x424 -fn_1_7F74 = .text:0x00007F74; // type:function size:0x4 -fn_1_7F78 = .text:0x00007F78; // type:function size:0x100 -fn_1_8078 = .text:0x00008078; // type:function size:0x104 -fn_1_817C = .text:0x0000817C; // type:function size:0x2A0 -fn_1_841C = .text:0x0000841C; // type:function size:0x474 -fn_1_8890 = .text:0x00008890; // type:function size:0x11C -fn_1_89AC = .text:0x000089AC; // type:function size:0x2BC -fn_1_8C68 = .text:0x00008C68; // type:function size:0x50 -fn_1_8CB8 = .text:0x00008CB8; // type:function size:0xB44 -fn_1_97FC = .text:0x000097FC; // type:function size:0x104 -fn_1_9900 = .text:0x00009900; // type:function size:0x118 -fn_1_9A18 = .text:0x00009A18; // type:function size:0x250 -_ctors = .ctors:0x00000000; // type:label scope:global data:4byte -_dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float -lbl_1_data_38 = .data:0x00000038; // type:object size:0xC data:float -lbl_1_data_44 = .data:0x00000044; // type:object size:0xC data:float -lbl_1_data_50 = .data:0x00000050; // type:object size:0x4 -lbl_1_data_54 = .data:0x00000054; // type:object size:0xC -lbl_1_data_60 = .data:0x00000060; // type:object size:0xC -lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 -lbl_1_data_90 = .data:0x00000090; // type:object size:0x4 data:4byte -lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 data:4byte -jumptable_1_data_98 = .data:0x00000098; // type:object size:0x30 scope:local -lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x1C data:string -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x50 -lbl_1_data_134 = .data:0x00000134; // type:object size:0x30 -lbl_1_data_164 = .data:0x00000164; // type:object size:0x20 -lbl_1_data_184 = .data:0x00000184; // type:object size:0x4 -jumptable_1_data_188 = .data:0x00000188; // type:object size:0x20 scope:local -lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x8 data:float -lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x80 -lbl_1_data_230 = .data:0x00000230; // type:object size:0xB8 -lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x30 -lbl_1_data_318 = .data:0x00000318; // type:object size:0x1 data:byte -lbl_1_data_31C = .data:0x0000031C; // type:object size:0x50 -lbl_1_data_36C = .data:0x0000036C; // type:object size:0x7 data:string -lbl_1_data_373 = .data:0x00000373; // type:object size:0x7 data:string -lbl_1_data_37A = .data:0x0000037A; // type:object size:0x1 data:byte -lbl_1_data_37E = .data:0x0000037E; // type:object size:0x1 data:byte -lbl_1_data_382 = .data:0x00000382; // type:object size:0x6 data:byte -lbl_1_data_388 = .data:0x00000388; // type:object size:0x30 -lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x138 -lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x68 -lbl_1_data_558 = .data:0x00000558; // type:object size:0xD0 -lbl_1_data_628 = .data:0x00000628; // type:object size:0xD0 -lbl_1_data_6F8 = .data:0x000006F8; // type:object size:0x18 -lbl_1_data_710 = .data:0x00000710; // type:object size:0x1 data:byte -lbl_1_data_714 = .data:0x00000714; // type:object size:0x6C -lbl_1_data_780 = .data:0x00000780; // type:object size:0x24 -lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x8 data:byte -lbl_1_data_7AC = .data:0x000007AC; // type:object size:0x1 data:byte -lbl_1_data_7B0 = .data:0x000007B0; // type:object size:0x10 -lbl_1_data_7C0 = .data:0x000007C0; // type:object size:0x10 -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte -lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 data:2byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:float -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x40 data:2byte -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x2 data:2byte -lbl_1_bss_62 = .bss:0x00000062; // type:object size:0x2 data:2byte -lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte -lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x4 data:4byte -lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x10 data:4byte -lbl_1_bss_80 = .bss:0x00000080; // type:object size:0x4 data:4byte -lbl_1_bss_84 = .bss:0x00000084; // type:object size:0x4 data:4byte -lbl_1_bss_88 = .bss:0x00000088; // type:object size:0x4 data:4byte -lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte -lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x10 data:4byte -lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte -lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte -lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte -lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte -lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte -lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte -lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m456Dll/splits.txt b/config/GMPP01_00/rels/m456Dll/splits.txt index 531cd645..ba1c0109 100644 --- a/config/GMPP01_00/rels/m456Dll/splits.txt +++ b/config/GMPP01_00/rels/m456Dll/splits.txt @@ -5,3 +5,18 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m456Dll/main.c: + .text start:0x000000A0 end:0x00002EB0 + .rodata start:0x00000000 end:0x000000F0 + .data start:0x00000000 end:0x000002E8 + .bss start:0x00000000 end:0x00000090 + +REL/m456Dll/stage.c: + .text start:0x00002EB0 end:0x00009D74 + .rodata start:0x000000F0 end:0x00000330 + .data start:0x000002E8 end:0x000007D0 + .bss start:0x00000090 end:0x000000BC diff --git a/config/GMPP01_00/rels/m456Dll/symbols.txt b/config/GMPP01_00/rels/m456Dll/symbols.txt index 3dfe3a85..b5353f63 100644 --- a/config/GMPP01_00/rels/m456Dll/symbols.txt +++ b/config/GMPP01_00/rels/m456Dll/symbols.txt @@ -1,6 +1,6 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x300 +ObjectSetup = .text:0x000000A0; // type:function size:0x300 fn_1_3A0 = .text:0x000003A0; // type:function size:0x10 fn_1_3B0 = .text:0x000003B0; // type:function size:0x10 fn_1_3C0 = .text:0x000003C0; // type:function size:0xD8 @@ -12,207 +12,207 @@ fn_1_D2C = .text:0x00000D2C; // type:function size:0x220 fn_1_F4C = .text:0x00000F4C; // type:function size:0x84 fn_1_FD0 = .text:0x00000FD0; // type:function size:0x2B8 fn_1_1288 = .text:0x00001288; // type:function size:0xD8 -fn_1_1360 = .text:0x00001360; // type:function size:0xD9C -fn_1_20FC = .text:0x000020FC; // type:function size:0x50 -fn_1_214C = .text:0x0000214C; // type:function size:0x104 -fn_1_2250 = .text:0x00002250; // type:function size:0x64 -fn_1_22B4 = .text:0x000022B4; // type:function size:0x250 -fn_1_2504 = .text:0x00002504; // type:function size:0x4D0 -fn_1_29D4 = .text:0x000029D4; // type:function size:0x1AC -fn_1_2B80 = .text:0x00002B80; // type:function size:0x330 -fn_1_2EB0 = .text:0x00002EB0; // type:function size:0x148 -fn_1_2FF8 = .text:0x00002FF8; // type:function size:0x70 -fn_1_3068 = .text:0x00003068; // type:function size:0x960 -fn_1_39C8 = .text:0x000039C8; // type:function size:0x328 -fn_1_3CF0 = .text:0x00003CF0; // type:function size:0x7C -fn_1_3D6C = .text:0x00003D6C; // type:function size:0x82C -fn_1_4598 = .text:0x00004598; // type:function size:0x68 -fn_1_4600 = .text:0x00004600; // type:function size:0x108 -fn_1_4708 = .text:0x00004708; // type:function size:0x348 -fn_1_4A50 = .text:0x00004A50; // type:function size:0xB3C -fn_1_558C = .text:0x0000558C; // type:function size:0x6E8 -fn_1_5C74 = .text:0x00005C74; // type:function size:0xBC -fn_1_5D30 = .text:0x00005D30; // type:function size:0x450 -fn_1_6180 = .text:0x00006180; // type:function size:0x104 -fn_1_6284 = .text:0x00006284; // type:function size:0x1E4 -fn_1_6468 = .text:0x00006468; // type:function size:0x4C -fn_1_64B4 = .text:0x000064B4; // type:function size:0x4C -fn_1_6500 = .text:0x00006500; // type:function size:0x158 -fn_1_6658 = .text:0x00006658; // type:function size:0x1F4 -fn_1_684C = .text:0x0000684C; // type:function size:0x50 -fn_1_689C = .text:0x0000689C; // type:function size:0x5D0 -fn_1_6E6C = .text:0x00006E6C; // type:function size:0xE8 -fn_1_6F54 = .text:0x00006F54; // type:function size:0xC8 -fn_1_701C = .text:0x0000701C; // type:function size:0x4 -fn_1_7020 = .text:0x00007020; // type:function size:0x18C -fn_1_71AC = .text:0x000071AC; // type:function size:0xF0 -fn_1_729C = .text:0x0000729C; // type:function size:0x2C4 -fn_1_7560 = .text:0x00007560; // type:function size:0x54 -fn_1_75B4 = .text:0x000075B4; // type:function size:0x2B0 -fn_1_7864 = .text:0x00007864; // type:function size:0x3D8 -fn_1_7C3C = .text:0x00007C3C; // type:function size:0x444 -fn_1_8080 = .text:0x00008080; // type:function size:0x4 -fn_1_8084 = .text:0x00008084; // type:function size:0x100 -fn_1_8184 = .text:0x00008184; // type:function size:0x104 -fn_1_8288 = .text:0x00008288; // type:function size:0x2A0 -fn_1_8528 = .text:0x00008528; // type:function size:0x474 -fn_1_899C = .text:0x0000899C; // type:function size:0x11C -fn_1_8AB8 = .text:0x00008AB8; // type:function size:0x2BC -fn_1_8D74 = .text:0x00008D74; // type:function size:0x50 -fn_1_8DC4 = .text:0x00008DC4; // type:function size:0xB44 -fn_1_9908 = .text:0x00009908; // type:function size:0x104 -fn_1_9A0C = .text:0x00009A0C; // type:function size:0x118 -fn_1_9B24 = .text:0x00009B24; // type:function size:0x250 +fn_1_1304 = .text:0x00001360; // type:function size:0xD9C +fn_1_2040 = .text:0x000020FC; // type:function size:0x50 +fn_1_2090 = .text:0x0000214C; // type:function size:0x104 +fn_1_2194 = .text:0x00002250; // type:function size:0x64 +fn_1_21F8 = .text:0x000022B4; // type:function size:0x250 +fn_1_2448 = .text:0x00002504; // type:function size:0x4D0 +fn_1_2918 = .text:0x000029D4; // type:function size:0x1AC +fn_1_2AC4 = .text:0x00002B80; // type:function size:0x330 +fn_1_2DF4 = .text:0x00002EB0; // type:function size:0x148 +fn_1_2F3C = .text:0x00002FF8; // type:function size:0x70 +fn_1_2FAC = .text:0x00003068; // type:function size:0x960 +fn_1_390C = .text:0x000039C8; // type:function size:0x328 +fn_1_3C34 = .text:0x00003CF0; // type:function size:0x7C +fn_1_3CB0 = .text:0x00003D6C; // type:function size:0x82C +fn_1_44DC = .text:0x00004598; // type:function size:0x68 +fn_1_4544 = .text:0x00004600; // type:function size:0x108 +fn_1_464C = .text:0x00004708; // type:function size:0x348 +fn_1_4994 = .text:0x00004A50; // type:function size:0xB3C +fn_1_54D0 = .text:0x0000558C; // type:function size:0x6E8 +fn_1_5BB8 = .text:0x00005C74; // type:function size:0xBC +fn_1_5C74 = .text:0x00005D30; // type:function size:0x450 +fn_1_60C4 = .text:0x00006180; // type:function size:0x104 +fn_1_61C8 = .text:0x00006284; // type:function size:0x1E4 +fn_1_63AC = .text:0x00006468; // type:function size:0x4C +fn_1_63F8 = .text:0x000064B4; // type:function size:0x4C +fn_1_6444 = .text:0x00006500; // type:function size:0x158 +fn_1_659C = .text:0x00006658; // type:function size:0x1F4 +fn_1_6790 = .text:0x0000684C; // type:function size:0x50 +fn_1_67E0 = .text:0x0000689C; // type:function size:0x5D0 +fn_1_6DB0 = .text:0x00006E6C; // type:function size:0xE8 +fn_1_6E98 = .text:0x00006F54; // type:function size:0xC8 +fn_1_6F60 = .text:0x0000701C; // type:function size:0x4 +fn_1_6F64 = .text:0x00007020; // type:function size:0x18C +fn_1_70F0 = .text:0x000071AC; // type:function size:0xF0 +fn_1_71E0 = .text:0x0000729C; // type:function size:0x2C4 +fn_1_74A4 = .text:0x00007560; // type:function size:0x54 +fn_1_74F8 = .text:0x000075B4; // type:function size:0x2B0 +fn_1_7778 = .text:0x00007864; // type:function size:0x3D8 +fn_1_7B50 = .text:0x00007C3C; // type:function size:0x444 +fn_1_7F74 = .text:0x00008080; // type:function size:0x4 +fn_1_7F78 = .text:0x00008084; // type:function size:0x100 +fn_1_8078 = .text:0x00008184; // type:function size:0x104 +fn_1_817C = .text:0x00008288; // type:function size:0x2A0 +fn_1_841C = .text:0x00008528; // type:function size:0x474 +fn_1_8890 = .text:0x0000899C; // type:function size:0x11C +fn_1_89AC = .text:0x00008AB8; // type:function size:0x2BC +fn_1_8C68 = .text:0x00008D74; // type:function size:0x50 +fn_1_8CB8 = .text:0x00008DC4; // type:function size:0xB44 +fn_1_97FC = .text:0x00009908; // type:function size:0x104 +fn_1_9900 = .text:0x00009A0C; // type:function size:0x118 +fn_1_9A18 = .text:0x00009B24; // type:function size:0x250 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double @@ -222,11 +222,11 @@ lbl_1_data_44 = .data:0x00000044; // type:object size:0xC data:float lbl_1_data_50 = .data:0x00000050; // type:object size:0x4 lbl_1_data_54 = .data:0x00000054; // type:object size:0xC lbl_1_data_60 = .data:0x00000060; // type:object size:0xC -lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 +lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 scope:local lbl_1_data_90 = .data:0x00000090; // type:object size:0x4 data:4byte lbl_1_data_94 = .data:0x00000094; // type:object size:0x4 data:4byte jumptable_1_data_98 = .data:0x00000098; // type:object size:0x30 scope:local -lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x1C data:string +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x1C scope:local data:string lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x50 lbl_1_data_134 = .data:0x00000134; // type:object size:0x30 lbl_1_data_164 = .data:0x00000164; // type:object size:0x20 @@ -236,26 +236,28 @@ lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x8 data:float lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x80 lbl_1_data_230 = .data:0x00000230; // type:object size:0xB8 lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x30 -lbl_1_data_318 = .data:0x00000318; // type:object size:0x1 data:byte +lbl_1_data_318 = .data:0x00000318; // type:object size:0x4 data:byte lbl_1_data_31C = .data:0x0000031C; // type:object size:0x50 -lbl_1_data_36C = .data:0x0000036C; // type:object size:0x7 data:string -lbl_1_data_373 = .data:0x00000373; // type:object size:0x7 data:string -lbl_1_data_37A = .data:0x0000037A; // type:object size:0x1 data:byte -lbl_1_data_37E = .data:0x0000037E; // type:object size:0x1 data:byte -lbl_1_data_382 = .data:0x00000382; // type:object size:0x6 data:byte +lbl_1_data_36C = .data:0x0000036C; // type:object size:0x7 scope:local data:string +lbl_1_data_373 = .data:0x00000373; // type:object size:0x7 scope:local data:string +lbl_1_data_37A = .data:0x0000037A; // type:object size:0x4 data:byte +lbl_1_data_37E = .data:0x0000037E; // type:object size:0x4 data:byte +lbl_1_data_382 = .data:0x00000382; // type:object size:0x4 data:byte lbl_1_data_388 = .data:0x00000388; // type:object size:0x30 lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0x138 lbl_1_data_4F0 = .data:0x000004F0; // type:object size:0x68 lbl_1_data_558 = .data:0x00000558; // type:object size:0xD0 lbl_1_data_628 = .data:0x00000628; // type:object size:0xD0 lbl_1_data_6F8 = .data:0x000006F8; // type:object size:0x18 -lbl_1_data_710 = .data:0x00000710; // type:object size:0x1 data:byte +lbl_1_data_710 = .data:0x00000710; // type:object size:0x4 data:byte lbl_1_data_714 = .data:0x00000714; // type:object size:0x6C lbl_1_data_780 = .data:0x00000780; // type:object size:0x24 -lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x8 data:byte -lbl_1_data_7AC = .data:0x000007AC; // type:object size:0x1 data:byte +lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x4 data:byte +lbl_1_data_7A8 = .data:0x000007A8; // type:object size:0x4 data:byte +lbl_1_data_7AC = .data:0x000007AC; // type:object size:0x4 data:byte lbl_1_data_7B0 = .data:0x000007B0; // type:object size:0x10 lbl_1_data_7C0 = .data:0x000007C0; // type:object size:0x10 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 data:2byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0xC data:float diff --git a/configure.py b/configure.py index ac7d5cd7..c9d90084 100644 --- a/configure.py +++ b/configure.py @@ -1249,8 +1249,8 @@ config.libs = [ Rel( "m456Dll", # Take a Breather objects={ - Object(NonMatching, "REL/m456Dll/main.c"), - Object(NonMatching, "REL/m456Dll/stage.c"), + Object(Matching, "REL/m456Dll/main.c"), + Object(Matching, "REL/m456Dll/stage.c"), }, ), Rel( diff --git a/include/REL/m456Dll.h b/include/REL/m456Dll.h index 749d8bd1..3b566223 100644 --- a/include/REL/m456Dll.h +++ b/include/REL/m456Dll.h @@ -8,5 +8,7 @@ void fn_1_2F3C(void); s32 fn_1_61C8(Vec *arg0, float arg1, float arg2, s32 arg3); float fn_1_63AC(void); s32 fn_1_67E0(Vec *arg0, float arg1); +s32 fn_1_74F8(Vec *pos, float scale); +void fn_1_7F78(void); #endif diff --git a/src/REL/m456Dll/main.c b/src/REL/m456Dll/main.c new file mode 100644 index 00000000..8604098f --- /dev/null +++ b/src/REL/m456Dll/main.c @@ -0,0 +1,969 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m456Dll.h" +#include "version.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#include "game/frand.h" +#endif + +typedef struct M456DllMainWork { + struct { + u8 unk_00_field0 : 1; + u8 unk_00_field1 : 1; + u8 unk_00_field2 : 1; + u8 unk_00_field3 : 1; + }; + s16 unk_02; + s16 unk_04; + s8 unk_06; + s8 unk_07; + u16 unk_08; + u16 unk_0A; + s32 unk_0C; + s32 unk_10; + s16 unk_14; + s16 unk_16; + s16 unk_18; + s16 unk_1A; + char unk1C[4]; + s32 unk_20; + s32 unk_24; + s16 unk_28; + s16 unk_2A; + s16 unk_2C; + s16 unk_2E; + s16 unk_30; +} M456DllMainWork; /* size = 0x34 */ + +typedef struct M456DllData0Struct { + /* 0x00 */ float unk_00; + /* 0x04 */ float unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ float unk_10; + /* 0x14 */ float unk_14; + /* 0x18 */ float unk_18; +} M456DllData0Struct; /* size = 0x1C */ + +typedef struct M456DllData1B0Struct { + /* 0x00 */ u32 unk_00; + /* 0x04 */ s32 unk_04; +} M456DllData1B0Struct; /* size = 0x08 */ + +typedef struct M456DllDataE4Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ u32 unk_04; +} M456DllDataE4Struct; /* size = 0x08 */ + +typedef struct M456DllBss18Struct { + s32 unk_00; + s32 unk_04; + s32 unk_08; + float unk_0C; + float unk_10; + s32 unk_14; + s32 unk_18; + float unk_1C; + s16 unk_20[0x10]; +} M456DllBss18Struct; /* size 0x40 */ + +void fn_1_1304(omObjData *object); +void fn_1_2040(omObjData *object); +float fn_1_2090(float arg8, float arg9, float argA); +void fn_1_2194(Process *process); +void fn_1_21F8(s32 arg0, s32 arg1, float arg8); +void fn_1_2448(omObjData *object); +void fn_1_2918(Process *process); +void fn_1_2AC4(omObjData *object); +void fn_1_3C0(omObjData *object); +void fn_1_498(omObjData *); +void fn_1_BE4(omObjData *); +void fn_1_C40(Process *process); +void fn_1_CC4(void); +s32 fn_1_D2C(void); +s32 fn_1_F4C(void); +void fn_1_FD0(omObjData *object); + +M456DllData0Struct lbl_1_data_0[2] = { + { 500.0f, 0.0f, 1000.0f, 0.0f, 40.0f, 0.0f, 0.0f }, + { 1985.0f, 0.0f, 100.0f, 100.0f, -13.0f, 0.0f, 0.0f }, +}; +Vec lbl_1_data_38 = { 700.0f, 2500.0f, -700.0f }; +Vec lbl_1_data_44 = { 0.0f, 0.0f, 0.0f }; +GXColor lbl_1_data_50 = { 0xFF, 0xFF, 0xFF, 0xFF }; +Vec lbl_1_data_54 = { 200.0f, 15000.0f, -200.0f }; +Vec lbl_1_data_60 = { 0.0f, 1.0f, 0.0f }; + +omObjData *lbl_1_bss_8C; +omObjData *lbl_1_bss_88; +omObjData *lbl_1_bss_84; +s32 lbl_1_bss_80; +s32 lbl_1_bss_70[4]; +s32 lbl_1_bss_6C; +s32 lbl_1_bss_68; +s32 lbl_1_bss_64; +s16 lbl_1_bss_62; +s16 lbl_1_bss_60; +u32 lbl_1_bss_5C; +u32 lbl_1_bss_58; +M456DllBss18Struct lbl_1_bss_18; +u32 lbl_1_bss_14; +Vec lbl_1_bss_8; +s16 lbl_1_bss_6; +s16 lbl_1_bss_4; +s32 lbl_1_bss_0; + +void ObjectSetup(void) +{ + Process *var_r31; + CameraData *var_r30; + s16 var_r29; + + var_r30 = Hu3DCamera; + OSReport("******* M456ObjectSetup *********\n"); + var_r31 = omInitObjMan(0x32, 0x2000); + omGameSysInit(var_r31); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, -1.0f, 20.0f, 25000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + lbl_1_bss_88 = omAddObjEx(var_r31, 0x7FDA, 0, 0, -1, omOutView); + lbl_1_bss_8.x = lbl_1_data_44.x - lbl_1_data_38.x; + lbl_1_bss_8.y = lbl_1_data_44.y - lbl_1_data_38.y; + lbl_1_bss_8.z = lbl_1_data_44.z - lbl_1_data_38.z; + PSVECNormalize(&lbl_1_bss_8, &lbl_1_bss_8); + var_r29 = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50); + Hu3DGLightInfinitytSet(var_r29); + Hu3DGLightStaticSet(var_r29, 1); + Hu3DShadowCreate(10.0f, var_r30->near, var_r30->far); + Hu3DShadowTPLvlSet(0.7f); + Hu3DShadowPosSet(&lbl_1_data_54, &lbl_1_data_60, &lbl_1_data_44); + HuAudSndGrpSet(0x4E); + lbl_1_bss_84 = omAddObjEx(var_r31, 0, 0, 0, -1, fn_1_3C0); + fn_1_2194(var_r31); + fn_1_C40(var_r31); + fn_1_2DF4(var_r31); + lbl_1_bss_5C = GWMGRecordGet(0xA); + if (lbl_1_bss_5C == 0) { + lbl_1_bss_5C = 5 * REFRESH_RATE; + } + lbl_1_bss_58 = 0; + fn_1_2918(var_r31); + lbl_1_bss_18.unk_14 = lbl_1_bss_5C; + lbl_1_bss_18.unk_00 = 1; + lbl_1_bss_18.unk_0C = 536.0f; +} + +s32 lbl_1_data_90 = -1; +s32 lbl_1_data_94 = -1; + +void fn_1_3A0(u32 arg0) +{ + lbl_1_bss_80 = arg0; +} + +s32 fn_1_3B0(void) +{ + return lbl_1_bss_80; +} + +void fn_1_3C0(omObjData *object) +{ + CameraData *var_r31 = Hu3DCamera; + fn_1_3A0(0); + lbl_1_bss_6C = REFRESH_RATE; + lbl_1_bss_70[0] = lbl_1_bss_70[1] = lbl_1_bss_70[2] = lbl_1_bss_70[3] = -1; + lbl_1_bss_62 = 5; + lbl_1_bss_60 = REFRESH_RATE; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x3C); + var_r31->fov = 30.0f; + object->func = fn_1_498; +} + +void fn_1_498(omObjData *object) +{ + s16 sp8[4]; + + s32 var_r31; + omObjData **var_r29; + M456DllMainWork *var_r28; + + switch (fn_1_3B0()) { + case 0: + if (lbl_1_data_94 < 0) { + lbl_1_data_94 = HuAudFXPlay(0x7D1); + } + if (--lbl_1_bss_6C == 0) { + fn_1_3A0(1); + lbl_1_bss_6C = 2 * REFRESH_RATE; + } + break; + case 1: + if (--lbl_1_bss_6C == 0) { + fn_1_3A0(2); + lbl_1_bss_6 = MGSeqCreate(3, 0); + } + break; + case 2: + if (MGSeqStatGet(lbl_1_bss_6) == 0) { + fn_1_3A0(3); + lbl_1_bss_4 = MGSeqCreate(1, 5, -1, -1); + } + if ((lbl_1_data_90 < 0) && ((MGSeqStatGet(lbl_1_bss_6) & 0x10) != 0)) { + lbl_1_data_90 = HuAudSeqPlay(0x43); + } + break; + case 3: + if (--lbl_1_bss_60 == 0) { + lbl_1_bss_62--; + MGSeqParamSet(lbl_1_bss_4, 1, lbl_1_bss_62); + lbl_1_bss_60 = REFRESH_RATE; + } + if (lbl_1_bss_62 == 0) { + lbl_1_bss_64 = fn_1_D2C(); + if (lbl_1_bss_64 == 0) { + fn_1_3A0(5); + lbl_1_bss_6 = MGSeqCreate(3, 1); + HuAudSeqFadeOut(lbl_1_data_90, 0x64); + } + else { + fn_1_3A0(4); + HuAudFXPlay(0x11); + lbl_1_bss_6C = 2 * REFRESH_RATE; + } + } + break; + case 4: + if (lbl_1_bss_4 >= 0) { + MGSeqParamSet(lbl_1_bss_4, 2, -1); + lbl_1_bss_4 = -1; + } + if (lbl_1_bss_6C != 0) { + lbl_1_bss_6C--; + } + else if (lbl_1_bss_18.unk_18 < lbl_1_bss_14) { + lbl_1_bss_18.unk_18++; + } + if (fn_1_F4C() != 0) { + fn_1_3A0(5); + lbl_1_bss_6 = MGSeqCreate(3, 1); + HuAudSeqFadeOut(lbl_1_data_90, 0x64); + } + break; + case 5: + if (lbl_1_bss_4 >= 0) { + MGSeqParamSet(lbl_1_bss_4, 2, -1); + lbl_1_bss_4 = -1; + } + if (MGSeqStatGet(lbl_1_bss_6) == 0) { + if (lbl_1_bss_58 == 0) { + fn_1_3A0(9); + lbl_1_bss_6C = 2 * REFRESH_RATE; + } + else { + fn_1_3A0(6); + lbl_1_bss_6 = MGSeqCreate(0xE, lbl_1_bss_58); + GWMGRecordSet(0xA, lbl_1_bss_58); + lbl_1_bss_18.unk_04 = 1; + lbl_1_bss_18.unk_14 = lbl_1_bss_18.unk_18; + } + } + break; + case 6: + if (MGSeqStatGet(lbl_1_bss_6) == 0) { + fn_1_3A0(9); + lbl_1_bss_6C = 2 * REFRESH_RATE; + } + break; + case 9: + if (lbl_1_bss_6C != 0) { + lbl_1_bss_6C--; + } + if (lbl_1_bss_6C == 0) { + if (fn_1_F4C() != 0) { + fn_1_3A0(0xB); + if (lbl_1_bss_64 != 0) { + var_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + for (var_r31 = 0; var_r31 < lbl_1_bss_64; var_r31++) { + var_r28 = var_r29[lbl_1_bss_70[var_r31]]->data; + sp8[var_r31] = var_r28->unk_14; + GWPlayerCoinWinSet(lbl_1_bss_70[var_r31], 10); + } + for (; var_r31 < 4; var_r31++) { + sp8[var_r31] = -1; + } + lbl_1_bss_6 = MGSeqCreate(5, 3, sp8[0], sp8[1], sp8[2], sp8[3]); + HuAudSStreamPlay(1); + } + else { + lbl_1_bss_6 = MGSeqCreate(3, 2); + HuAudSStreamPlay(4); + } + lbl_1_bss_6C = 3.5 * REFRESH_RATE; + } + } + break; + case 11: + if (--lbl_1_bss_6C == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); + HuAudFXStop(lbl_1_data_94); + object->func = fn_1_BE4; + } + break; + } + if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); + object->func = fn_1_BE4; + } +} + +void fn_1_BE4(omObjData *object) +{ + if (WipeStatGet() == 0) { + fn_1_CC4(); + fn_1_2F3C(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + OSReport("******* M456Exit *********\n"); + } +} + +void fn_1_C40(Process *process) +{ + s32 var_r31; + + lbl_1_bss_68 = 0; + omMakeGroupEx(process, 0, 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + omAddObjEx(process, 5, 0xA, 0x32, 0, fn_1_FD0); + } +} + +void fn_1_CC4(void) +{ + s32 var_r31; + omObjData **var_r30; + + var_r30 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + if (var_r30 != NULL) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_2040(var_r30[var_r31]); + } + } +} + +s32 fn_1_D2C(void) +{ + s32 sp8[4]; + + s32 var_r31; + M456DllMainWork *var_r30; + s32 var_r29; + u32 var_r28; + omObjData **var_r27; + + var_r29 = 0; + var_r28 = 0; + var_r27 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = var_r27[var_r31]->data; + if ((var_r30->unk_30 != 0) && (var_r30->unk_30 < 5)) { + var_r30->unk_30 = 5; + } + if (var_r30->unk_30 > var_r28) { + var_r28 = var_r30->unk_30; + var_r29 = 0; + sp8[var_r29++] = var_r31; + } + else if (var_r30->unk_30 == var_r28) { + sp8[var_r29++] = var_r31; + } + } + if (var_r28 == 0) { + lbl_1_bss_70[var_r31] = -1; + return 0; + } + lbl_1_bss_14 = (var_r28 * REFRESH_RATE) / 5; + for (var_r31 = 0; var_r31 < var_r29; var_r31++) { + if (GWPlayerCfg[sp8[var_r31]].iscom == 0) { + break; + } + } + if (var_r31 < var_r29) { + if (lbl_1_bss_14 > lbl_1_bss_5C) { + lbl_1_bss_58 = lbl_1_bss_14; + } + if (lbl_1_bss_14 >= 7.5f * REFRESH_RATE) { + GWGameStat.present[0x33] = 1; + } + } + for (var_r31 = 0; var_r31 < var_r29; var_r31++) { + lbl_1_bss_70[var_r31] = sp8[var_r31]; + } + return var_r29; +} + +s32 fn_1_F4C(void) +{ + s32 var_r31; + omObjData **var_r30; + M456DllMainWork *var_r29; + + var_r30 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = var_r30[var_r31]->data; + if (var_r29->unk_00_field2 == 0) { + return 0; + } + } + return 1; +} + +M456DllDataE4Struct lbl_1_data_E4[0xA] = { + { 0x5F0000, 0 }, + { 0x55001C, 1 }, + { 0x550024, 1 }, + { 0x55002C, 1 }, + { 0x550034, 1 }, + { 0x5F002A, 0 }, + { 0x5F0005, 0 }, + { 0x5F0017, 0 }, + { 0x5F0018, 0 }, + { 0x55003C, 1 }, +}; +Vec lbl_1_data_134[4] = { + { -300.0f, 0.0f, 0.0f }, + { -100.0f, 0.0f, 0.0f }, + { 100.0f, 0.0f, 0.0f }, + { 300.0f, 0.0f, 0.0f }, +}; +float lbl_1_data_164[8] = { -50.0f, -50.0f, -50.0f, -50.0f, -50.0f, -50.0f, -50.0f, -50.0f }; +u16 lbl_1_data_184[2] = { 0x40, 0x20 }; + +void fn_1_FD0(omObjData *object) +{ + M456DllMainWork *var_r31; + u32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M456DllMainWork), MEMORY_DEFAULT_NUM); + object->data = var_r31; + memset(var_r31, 0, sizeof(M456DllMainWork)); + var_r31->unk_02 = lbl_1_bss_68++; + var_r31->unk_04 = GWPlayerCfg[var_r31->unk_02].pad_idx; + var_r27 = GWGameStat.rumble; + var_r31->unk_10 = var_r27; + var_r28 = GWPlayerCfg[var_r31->unk_02].character; + var_r31->unk_14 = var_r28; + var_r31->unk_16 = GWPlayerCfg[var_r31->unk_02].diff; + var_r31->unk_18 = GWPlayerCfg[var_r31->unk_02].group; + var_r31->unk_0C = -1; + object->model[0] = CharModelCreate(var_r28, 8); + Hu3DModelShadowSet(object->model[0]); + Hu3DModelLayerSet(object->model[0], 3); + Hu3DModelCameraSet(object->model[0], 1); + var_r31->unk_20 = 0; + for (var_r29 = 0; var_r29 < 0xA; var_r29++) { + if (lbl_1_data_E4[var_r29].unk_04 == 0) { + object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_14, lbl_1_data_E4[var_r29].unk_00); + } + else { + object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_14, var_r31->unk_14 + lbl_1_data_E4[var_r29].unk_00); + } + } + Hu3DMotionSet(object->model[0], object->motion[var_r31->unk_20]); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + CharModelVoiceEnableSet(var_r31->unk_14, object->motion[5], 0); + CharModelVoiceEnableSet(var_r31->unk_14, object->motion[6], 0); + var_r31->unk_2E = REFRESH_RATE; + object->trans.x = lbl_1_data_134[var_r31->unk_02].x; + object->trans.y = lbl_1_data_134[var_r31->unk_02].y; + object->trans.z = lbl_1_data_134[var_r31->unk_02].z; + object->rot.y = 0.0f; + CharModelDataClose(var_r31->unk_14); + object->func = fn_1_1304; +} + +#if VERSION_PAL +#define fn_1_1288_COND (((var_r31->unk_16 + 4) * 60) / 50.0f) +#else +#define fn_1_1288_COND (var_r31->unk_16 + 4) +#endif + +void fn_1_1288(omObjData *object) +{ + M456DllMainWork *var_r31 = object->data; + + if ((frand() & 0x3F) < fn_1_1288_COND) { + if (var_r31->unk_0C <= 0) { + var_r31->unk_0A |= 0x40; + return; + } + var_r31->unk_0A |= 0x20; + } +} + +void fn_1_1304(omObjData *var_r30) +{ + Vec sp14; + Vec sp8; + float var_f31; + + M456DllMainWork *var_r31; + s32 var_r29; + u32 var_r28; + void *var_r27; + s32 var_r26; + omObjData **var_r25; + s32 var_r24; + + var_r31 = var_r30->data; + var_r29 = var_r31->unk_20; + var_r28 = var_r31->unk_24; + if (var_r31->unk_00_field0 == 0) { + var_r30->trans.y = fn_1_63AC(); + } + if (fn_1_3B0() < 3) { + return; + } + switch (var_r31->unk_1A) { + case 0: + if (fn_1_3B0() == 5) { + var_r31->unk_00_field2 = 1; + var_r31->unk_1A = 6; + return; + } + if (fn_1_3B0() == 4) { + if (var_r31->unk_30 != 0) { + var_r31->unk_1A = 1; + var_r31->unk_28 = REFRESH_RATE; + } + else { + var_r31->unk_1A = 6; + var_r31->unk_00_field2 = 1; + } + return; + } + if (GWPlayerCfg[var_r31->unk_02].iscom == 0) { + var_r31->unk_06 = HuPadStkX[var_r31->unk_04]; + var_r31->unk_07 = HuPadStkY[var_r31->unk_04]; + var_r31->unk_08 = HuPadBtn[var_r31->unk_04]; + var_r31->unk_0A = HuPadBtnDown[var_r31->unk_04] & 0xFFFF9FFF; + } + else { + var_r31->unk_08 = var_r31->unk_0A = 0; + var_r31->unk_06 = var_r31->unk_07 = 0; + fn_1_1288(var_r30); + } + if (var_r31->unk_2C != 0) { + if (--var_r31->unk_2C == 0) { + var_r29 = 0; + var_r28 = 0x40000001; + } + } + if ((var_r31->unk_0A & 0x60) != 0) { + if (var_r31->unk_0C < 0) { + var_r31->unk_0C = (var_r31->unk_0A & 0x40) ? 0 : 1; + } + if (((var_r31->unk_0A & lbl_1_data_184[var_r31->unk_0C]) != 0) && ((var_r31->unk_0A & ~lbl_1_data_184[var_r31->unk_0C]) == 0)) { + var_r31->unk_30++; + var_r31->unk_2C = var_r31->unk_2E; + var_r29 = 1; + var_r28 = 0x40000001; + var_r31->unk_0C ^= 1; + } + } + break; + case 1: + if (--var_r31->unk_28 == 0) { + var_r31->unk_00_field0 = 1; + var_r31->unk_1A = 2; + var_r31->unk_28 = var_r31->unk_2A = REFRESH_RATE; + } + var_r29 = 2; + var_r28 = 0; + break; + case 2: + var_r29 = 3; + var_r28 = 0; + if (var_r31->unk_28 < (var_r31->unk_2A - 0xF)) { + var_f31 = (float)var_r31->unk_28 / (var_r31->unk_2A - 0xF); + var_r30->trans.y = -300.0 * cosd((270.0f * var_f31)); + var_r30->trans.z = 400.0f + (-400.0f * var_f31); + if ((var_r31->unk_00_field1 == 0) && (var_f31 < 0.35f)) { + var_r31->unk_00_field1 = 1; + fn_1_67E0(&var_r30->trans, -1.0f); + fn_1_61C8(&var_r30->trans, -1.0f, -1.0f, -1); + fn_1_7F78(); + HuAudFXPlay(0x7D2); + } + } + if (--var_r31->unk_28 == 0) { + var_r30->trans.y = -300.0f; + var_r30->trans.z = 400.0f; + var_r31->unk_1A = 3; + var_r31->unk_28 = (var_r31->unk_30 * REFRESH_RATE) / 5; + for (var_r26 = 0; var_r26 < lbl_1_bss_64; var_r26++) { + if (var_r31->unk_02 == lbl_1_bss_70[var_r26]) { + break; + } + } + if (var_r26 < lbl_1_bss_64) { + var_r31->unk_00_field3 = 1; + var_r31->unk_28 -= VERSION_PAL ? 16.5f : 19.800001f; + } + else { + var_r31->unk_28 -= 0.8f * REFRESH_RATE; + } + var_r31->unk_2A = var_r31->unk_28; + } + break; + case 3: + var_r29 = 5; + var_r28 = 0x40000001; + if (var_r31->unk_28 < 1.0f * REFRESH_RATE) { + if ((frand() & 3) == 0) { + sp14.x = var_r30->trans.x; + sp14.y = 100.0f + var_r30->trans.y; + sp14.z = var_r30->trans.z; + fn_1_74F8(&sp14, -1.0f); + } + } + else if ((frand() & 0xF) == 0) { + sp14.x = var_r30->trans.x; + sp14.y = 100.0f + var_r30->trans.y; + sp14.z = var_r30->trans.z; + fn_1_74F8(&sp14, -1.0f); + } + if (--var_r31->unk_28 == 0) { + var_r31->unk_00_field1 = 0; + if (var_r31->unk_00_field3 == 0) { + var_r31->unk_1A = 4; + var_r31->unk_28 = var_r31->unk_2A = REFRESH_RATE / 1.25; + } + else { + var_r31->unk_1A = 5; + var_r31->unk_28 = var_r31->unk_2A = REFRESH_RATE; + } + } + break; + case 4: + var_r29 = 4; + var_r28 = 0x40000001; + var_f31 = (float)var_r31->unk_28 / var_r31->unk_2A; + var_r30->trans.y = -300.0 * sind((90.0f * var_f31)); + if ((frand() & 3) == 0) { + fn_1_74F8(&var_r30->trans, -1.0f); + } + if ((var_r31->unk_00_field1 == 0) && (var_f31 < 0.2f)) { + var_r31->unk_00_field1 = 1; + fn_1_67E0(&var_r30->trans, -1.0f); + fn_1_61C8(&var_r30->trans, -1.0f, -1.0f, -1); + HuAudFXPlay(0x7D3); + } + if (--var_r31->unk_28 == 0) { + var_r31->unk_00_field2 = 1; + var_r31->unk_1A = 6; + var_r30->trans.y = lbl_1_data_164[var_r31->unk_14]; + } + break; + case 5: + var_r29 = 6; + var_r28 = 0; + var_f31 = (float)var_r31->unk_28 / var_r31->unk_2A; + var_r30->trans.y = -300.0 * -sind((270.0f * var_f31)); + if ((var_r31->unk_00_field1 == 0) && (var_f31 < 0.7f)) { + var_r31->unk_00_field1 = 1; + fn_1_67E0(&var_r30->trans, 5.0f); + fn_1_61C8(&var_r30->trans, -1.0f, -1.0f, -1); + HuAudFXPlay(0x7D3); + HuAudCharVoicePlay(var_r31->unk_14, 0x125); + } + if (--var_r31->unk_28 == 0) { + var_r31->unk_00_field2 = 1; + var_r31->unk_1A = 6; + var_r30->trans.y = lbl_1_data_164[var_r31->unk_14]; + fn_1_67E0(&var_r30->trans, -1.0f); + fn_1_61C8(&var_r30->trans, -1.0f, -1.0f, -1); + } + break; + case 6: + if (var_r31->unk_00_field0 == 0) { + var_r29 = 0; + } + else { + var_r29 = 5; + } + var_r28 = 0x40000001; + if ((fn_1_3B0() == 5) && (var_r31->unk_00_field3 == 0) && (lbl_1_bss_64 == 1)) { + var_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); + PSVECSubtract(&var_r25[*lbl_1_bss_70]->trans, &var_r30->trans, &sp8); + var_r30->rot.y = fn_1_2090(var_r30->rot.y, atan2d(sp8.x, sp8.z), 0.1f); + } + if (fn_1_3B0() == 0xB) { + var_r31->unk_1A = 7; + if (var_r31->unk_00_field3 != 0) { + Hu3DMotionOverlaySet(var_r30->model[0], var_r30->motion[9]); + HuAudCharVoicePlay(var_r31->unk_14, 0x124); + } + } + break; + case 7: + if (var_r31->unk_00_field3 != 0) { + var_r29 = 5; + var_r28 = 0x40000001; + if (73.0f <= Hu3DMotionOverlayTimeGet(var_r30->model[0])) { + Hu3DMotionOverlayTimeSet(var_r30->model[0], 35.0f); + Hu3DModelAttrReset(var_r30->model[0], HU3D_MOTATTR_OVL_PAUSE); + } + } + else if (var_r31->unk_00_field0 == 0) { + var_r29 = 8; + var_r28 = 0; + } + break; + } + if ((var_r31->unk_00_field0 != 0) && (var_r31->unk_1A >= 6) && (var_r31->unk_1A <= 7) && ((frand() & 0x3F) == 0)) { + fn_1_61C8(&var_r30->trans, 0.3f, -1.0f, -1); + } + if ((var_r29 != var_r31->unk_20) || (var_r28 != var_r31->unk_24)) { + var_r31->unk_20 = var_r29; + var_r31->unk_24 = var_r28; + CharModelMotionShiftSet(var_r31->unk_14, var_r30->motion[var_r31->unk_20], 0.0f, 8.0f, var_r28); + } +} + +void fn_1_2040(omObjData *object) +{ + M456DllMainWork *sp8 = object->data; + if (object->data != NULL) { + HuMemDirectFree(object->data); + object->data = NULL; + } +} + +float fn_1_2090(float var_f29, float sp8, float spC) +{ + float var_f31; + float var_f30; + + var_f31 = fmod(sp8 - var_f29, 360.0); + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + var_f30 = fmod(var_f29 + (spC * var_f31), 360.0); + if (var_f30 < 0.0f) { + var_f30 += 360.0f; + } + return var_f30; +} + +void fn_1_2194(Process *process) +{ + fn_1_21F8(0, 0, 0.0f); + lbl_1_bss_8C = omAddObjEx(process, 0xA, 0, 0, -1, fn_1_2448); +} + +void fn_1_21F8(s32 arg0, s32 arg1, float arg8) +{ + CZoom = lbl_1_data_0[arg0].unk_00 + (arg8 * (lbl_1_data_0[arg1].unk_00 - lbl_1_data_0[arg0].unk_00)); + Center.x = lbl_1_data_0[arg0].unk_04 + (arg8 * (lbl_1_data_0[arg1].unk_04 - lbl_1_data_0[arg0].unk_04)); + Center.y = lbl_1_data_0[arg0].unk_08 + (arg8 * (lbl_1_data_0[arg1].unk_08 - lbl_1_data_0[arg0].unk_08)); + Center.z = lbl_1_data_0[arg0].unk_0C + (arg8 * (lbl_1_data_0[arg1].unk_0C - lbl_1_data_0[arg0].unk_0C)); + CRot.x = lbl_1_data_0[arg0].unk_10 + (arg8 * (lbl_1_data_0[arg1].unk_10 - lbl_1_data_0[arg0].unk_10)); + CRot.y = lbl_1_data_0[arg0].unk_14 + (arg8 * (lbl_1_data_0[arg1].unk_14 - lbl_1_data_0[arg0].unk_14)); + CRot.z = lbl_1_data_0[arg0].unk_18 + (arg8 * (lbl_1_data_0[arg1].unk_18 - lbl_1_data_0[arg0].unk_18)); +} + +float lbl_1_data_1A8[2] = { 0.0f, 0.0f }; + +void fn_1_2448(omObjData *object) +{ + CameraData *sp8 = Hu3DCamera; + + switch (fn_1_3B0()) { + case 1: + fn_1_21F8(0, 1, sind((90.0f * lbl_1_data_1A8[0]))); + if (lbl_1_data_1A8[0] < 1.0f) { + lbl_1_data_1A8[0] += 1.0f / REFRESH_RATE; + if (lbl_1_data_1A8[0] > 1.0f) { + lbl_1_data_1A8[0] = 1.0f; + break; + } + } + break; + case 4: + case 5: + case 6: + case 7: + break; + case 8: + fn_1_21F8(1, 1, 0.0f); + break; + case 9: + break; + } +} + +M456DllData1B0Struct lbl_1_data_1B0[0x10] = { + { 0x550044, 0x10E }, + { 0x610037, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610030, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, + { 0x610031, 0xFA }, +}; + +Vec2f lbl_1_data_230[0x17] = { + { 0.0f, 0.0f }, + { -52.0f, -9.0f }, + { 53.0f, -8.0f }, + { 35.0f, -8.0f }, + { 9.0f, -8.0f }, + { -9.0f, -8.0f }, + { -31.0f, -8.0f }, + { 23.0f, -8.0f }, + { -17.0f, -8.0f }, + { 53.0f, 8.0f }, + { 35.0f, 8.0f }, + { 9.0f, 8.0f }, + { -9.0f, 8.0f }, + { -31.0f, 8.0f }, + { 23.0f, 8.0f }, + { -17.0f, 8.0f }, + { 355.0f, 0.0f }, + { 0.0f, 0.0f }, + { 275.0f, 128.0f }, + { 950.0f, 6.0f }, + { 0.0f, 0.0f }, + { 0.0f, 190.0f }, + { 0.0f, 550.0f }, +}; + +void fn_1_2918(Process *sp8) +{ + M456DllBss18Struct *var_r31; + s32 var_r30; + omObjData *var_r29; + + var_r29 = omAddObjEx(sp8, 0x7FD9, 0, 0, -1, fn_1_2AC4); + var_r31 = &lbl_1_bss_18; + var_r29->data = var_r31; + memset(var_r31, 0, sizeof(M456DllBss18Struct)); + var_r31->unk_14 = 60 * REFRESH_RATE; + var_r31->unk_0C = 320.0f; + var_r31->unk_10 = 64.0f; + var_r31->unk_1C = 1.0f; + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + var_r31->unk_20[var_r30] = -1; + if (lbl_1_data_1B0[var_r30].unk_00 != 0) { + var_r31->unk_20[var_r30] = espEntry(lbl_1_data_1B0[var_r30].unk_00, lbl_1_data_1B0[var_r30].unk_04, 0); + espAttrSet(var_r31->unk_20[var_r30], HUSPR_ATTR_LINEAR); + espDispOff(var_r31->unk_20[var_r30]); + } + } + espColorSet(var_r31->unk_20[0], 0, 0, 0); + espTPLvlSet(var_r31->unk_20[0], 0.699999988079071); + espBankSet(var_r31->unk_20[7], 0xB); + espBankSet(var_r31->unk_20[8], 0xA); + espBankSet(var_r31->unk_20[14], 0xB); + espBankSet(var_r31->unk_20[15], 0xA); +} + +void fn_1_2AC4(omObjData *var_r26) +{ + u32 sp8[3]; + + M456DllBss18Struct *var_r31; + s32 var_r30; + u32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r31 = var_r26->data; + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + if (var_r31->unk_20[var_r30] >= 0) { + if (var_r31->unk_00 == 0) { + espDispOff(var_r31->unk_20[var_r30]); + } + else { + espDispOn(var_r31->unk_20[var_r30]); + espPosSet( + var_r31->unk_20[var_r30], 0.9f * (var_r31->unk_0C + lbl_1_data_230[var_r30].x), var_r31->unk_10 + lbl_1_data_230[var_r30].y); + } + } + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + if (var_r30 != 0) { + var_r29 = var_r31->unk_18; + var_r27 = 9; + } + else { + var_r29 = var_r31->unk_14; + var_r27 = 2; + } + sp8[0] = var_r29 % REFRESH_RATE; + var_r29 = (var_r29 - sp8[0]) / REFRESH_RATE; +#if VERSION_PAL + sp8[0] = 100.0f * (sp8[0] / (float)REFRESH_RATE); +#else + sp8[0] = 100.0f * (1.0f / REFRESH_RATE * sp8[0]); +#endif + sp8[1] = var_r29 % 60; + var_r29 = (var_r29 - sp8[1]) / 60; + sp8[2] = var_r29; + for (var_r28 = 0; var_r28 < 3; var_r28++) { + espBankSet(var_r31->unk_20[var_r27++], sp8[var_r28] % 10); + if (var_r28 < 2) { + espBankSet(var_r31->unk_20[var_r27++], sp8[var_r28] / 10); + } + } + } + if (var_r31->unk_04 != 0) { + if (var_r31->unk_08 == 0) { + if ((var_r31->unk_1C += 0.02f) >= 1.2f) { + var_r31->unk_1C = 1.2f; + var_r31->unk_08 = 1; + } + } + else { + if ((var_r31->unk_1C -= 0.04f) <= 1.0f) { + var_r31->unk_1C = 1.0f; + var_r31->unk_08 = 0; + } + } + for (var_r30 = 1; var_r30 < 9; var_r30++) { + espScaleSet(var_r31->unk_20[var_r30], var_r31->unk_1C, var_r31->unk_1C); + } + } +} diff --git a/src/REL/m456Dll/stage.c b/src/REL/m456Dll/stage.c index a90d1b95..072377d8 100644 --- a/src/REL/m456Dll/stage.c +++ b/src/REL/m456Dll/stage.c @@ -1,24 +1,28 @@ +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" #include "game/object.h" #include "game/objsub.h" -#include "game/hsfman.h" -#include "game/hsfdraw.h" -#include "game/hsfanim.h" #include "game/hsfmotion.h" #include "game/pad.h" -#include "game/wipe.h" -#include "game/frand.h" #include "game/audio.h" -#include "game/minigame_seq.h" -#include "game/gamework_data.h" #include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/minigame_seq.h" #include "game/sprite.h" +#include "game/wipe.h" #include "REL/m456Dll.h" #include "ext_math.h" #include "math.h" +#include "version.h" + +#if !VERSION_PAL +#include "game/frand.h" +#endif Process *lbl_1_bss_B8; omObjData *lbl_1_bss_B4; @@ -154,7 +158,7 @@ omObjData *fn_1_2FAC(void) s32 id; ModelData *modelP; s32 i; - + work->unkA40 = 0; work->unkA44 = 0; work->unkA48 = 0; @@ -162,7 +166,7 @@ omObjData *fn_1_2FAC(void) work->unkA50 = 0; work->unkA54 = 0; work->unkA58 = 0; - + object->model[0] = id = Hu3DHookFuncCreate(fn_1_4994); Hu3DModelCameraSet(id, HU3D_CAM0); Hu3DModelLayerSet(id, 5); @@ -196,52 +200,52 @@ omObjData *fn_1_2FAC(void) GXPosition2f32(-0.5f, 0.5f); GXTexCoord2f32(0, 1); work2->unkA18 = GXEndDisplayList(); - for(i=0; i<26; i++) { + for (i = 0; i < 26; i++) { work2->unk874[i][0] = 0; work2->unk874[i][1] = 0; work2->unk944[i][0] = 0; work2->unk944[i][1] = 0; } - + object->model[3] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 5)); Hu3DModelPosSet(id, 0, 0, -5000); Hu3DModelScaleSet(id, 2, 2, 2); Hu3DModelCameraSet(id, HU3D_CAM0); Hu3DModelLayerSet(id, 1); id = Hu3DTexScrollCreate(object->model[3], "S3TCsk"); - Hu3DTexScrollPosMoveSet(id, -0.00009166667f, 0, 0); + Hu3DTexScrollPosMoveSet(id, VERSION_PAL ? -0.00010999999f : -0.00009166667f, 0, 0); id = Hu3DTexScrollCreate(object->model[3], "pa_sk3"); - Hu3DTexScrollPosMoveSet(id, -0.00020833335f, 0, 0); - + Hu3DTexScrollPosMoveSet(id, VERSION_PAL ? -0.00025f : -0.00020833335f, 0, 0); + object->model[4] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 6)); Hu3DModelPosSet(id, 0, 0, -3000); Hu3DModelScaleSet(id, 1.2f, 1.2f, 1.2f); Hu3DModelCameraSet(id, HU3D_CAM0); Hu3DModelLayerSet(id, 1); - + object->model[8] = id = Hu3DHookFuncCreate(fn_1_44DC); Hu3DModelCameraSet(id, HU3D_CAM0); Hu3DModelLayerSet(id, 2); modelP = &Hu3DData[id]; modelP->unk_120 = work; - + object->model[10] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 0)); Hu3DModelPosSet(id, 0, 0, 0); Hu3DModelCameraSet(id, HU3D_CAM0); Hu3DModelLayerSet(id, 3); Hu3DModelShadowMapSet(object->model[10]); - for(i=0; i<4; i++) { - - object->model[i+11] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 1)); - Hu3DModelCameraSet(object->model[i+11], HU3D_CAM0); - Hu3DModelLayerSet(object->model[i+11], 3); - Hu3DModelPosSet(object->model[i+11], lbl_1_data_2E8[i].x, lbl_1_data_2E8[i].y, lbl_1_data_2E8[i].z); - Hu3DModelAttrSet(object->model[i+11], HU3D_MOTATTR_SHAPE_LOOP); - Hu3DMotionShapeTimeSet(object->model[i+11], (0.25*i)*Hu3DMotionShapeMaxTimeGet(object->model[i+11])); + for (i = 0; i < 4; i++) { + + object->model[i + 11] = id = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 1)); + Hu3DModelCameraSet(object->model[i + 11], HU3D_CAM0); + Hu3DModelLayerSet(object->model[i + 11], 3); + Hu3DModelPosSet(object->model[i + 11], lbl_1_data_2E8[i].x, lbl_1_data_2E8[i].y, lbl_1_data_2E8[i].z); + Hu3DModelAttrSet(object->model[i + 11], HU3D_MOTATTR_SHAPE_LOOP); + Hu3DMotionShapeTimeSet(object->model[i + 11], (0.25 * i) * Hu3DMotionShapeMaxTimeGet(object->model[i + 11])); } modelP = &Hu3DData[object->model[0]]; workUnk4 = &work2->unk4[0]; - for(i=0; i<4; i++, workUnk4++) { + for (i = 0; i < 4; i++, workUnk4++) { workUnk4->unkC = lbl_1_data_31C[i].unk0; workUnk4->unk10 = lbl_1_data_31C[i].unk4; workUnk4->unk14 = lbl_1_data_31C[i].unk8; @@ -252,13 +256,13 @@ omObjData *fn_1_2FAC(void) memset(workUnk4->unk0, 0, workUnk4->unk4); DCFlushRange(workUnk4->unk0, workUnk4->unk4); } - for(i=0; i<64; i++, workUnk74++) { + for (i = 0; i < 64; i++, workUnk74++) { workUnk74->unk0.x = workUnk74->unk0.y = workUnk74->unk0.z = 0; workUnk74->unkC.x = 0; workUnk74->unkC.y = 0; workUnk74->unkC.z = 1; - workUnk74->unk18 = 0.016666668f; - workUnk74->unk1C = 60; + workUnk74->unk18 = 1.0f / REFRESH_RATE; + workUnk74->unk1C = REFRESH_RATE; workUnk74->unk1E = 0; } return object; @@ -271,21 +275,21 @@ void fn_1_390C(omObjData *object) Work2FAC *work = object->data; Work2FAC *work2 = work; s32 i; - if((work->unkA50 = work->unkA50+(0.007874016f*((s32)frand() & 0x7F)*3.0f)) > 360) { + if ((work->unkA50 = work->unkA50 + (0.007874016f * ((s32)frand() & 0x7F) * 3.0f)) > 360) { work->unkA50 -= 360; } - work->unkA44 = (25+work->unkA40)+(5.0*sind(work->unkA50)); + work->unkA44 = (25 + work->unkA40) + (5.0 * sind(work->unkA50)); Hu3DModelPosSet(object->model[10], 0, work->unkA44, 0); - for(i=0; i<4; i++) { - Hu3DModelPosSet(object->model[i+11], lbl_1_data_2E8[i].x, work->unkA44+lbl_1_data_2E8[i].y, lbl_1_data_2E8[i].z); + for (i = 0; i < 4; i++) { + Hu3DModelPosSet(object->model[i + 11], lbl_1_data_2E8[i].x, work->unkA44 + lbl_1_data_2E8[i].y, lbl_1_data_2E8[i].z); } - work->unkA54 += 0.001f; - work->unkA58 += 0.001f; + work->unkA54 += VERSION_PAL ? 0.0012f : 0.001f; // 0.06f / REFRESH_RATE + work->unkA58 += VERSION_PAL ? 0.0012f : 0.001f; work->unkA48++; work->unkA4C++; - if(work->unkA4C >= 60.0f && work->unkA4C <= 81.0f) { - float time = 1-((work->unkA4C-60.0f)/21.0f); - if(time < 0.0f) { + if (work->unkA4C >= (float)REFRESH_RATE && work->unkA4C <= (VERSION_PAL ? 67.5f : 81.0f)) { + float time = 1 - ((work->unkA4C - (float)REFRESH_RATE) / (VERSION_PAL ? 17.5f : 21.0f)); + if (time < 0.0f) { time = 0.0f; } fn_1_97FC(time); @@ -309,147 +313,31 @@ void fn_1_3C34(omObjData *object) GXColor lbl_1_data_37A = { 255, 255, 255, 32 }; GXColor lbl_1_data_37E = { 255, 255, 255, 10 }; GXColor lbl_1_data_382 = { 0, 126, 126, 255 }; -Vec lbl_1_data_388[4] = { - -1000, 50, 1000, - -1000, 50, -1000, - 1000, 50, -1000, - 1000, 50, 1000 -}; +Vec lbl_1_data_388[4] = { -1000, 50, 1000, -1000, 50, -1000, 1000, 50, -1000, 1000, 50, 1000 }; -Vec lbl_1_data_3B8[26] = { - -1500, 0, 1000, - -1400, 0, 1000, - 0, 0, 1000, - 1400, 0, 1000, - 1500, 0, 1000, - -1500, 0, -500, - -1400, 0, -500, - 0, 0, -500, - 1400, 0, -500, - 1500, 0, -500, - -1500, 0, -2000, - -1400, 0, -2000, - 0, 0, -2000, - 1400, 0, -2000, - 1500, 0, -2000, - -1500, 0, -5000, - -1400, 0, -5000, - 0, 0, -5000, - 1400, 0, -5000, - 1500, 0, -5000, - -2000, 0, -500, - -2500, 0, -2000, - -3000, 0, -5000, - 2000, 0, -500, - 2500, 0, -2000, - 3000, 0, -5000 -}; +Vec lbl_1_data_3B8[26] = { -1500, 0, 1000, -1400, 0, 1000, 0, 0, 1000, 1400, 0, 1000, 1500, 0, 1000, -1500, 0, -500, -1400, 0, -500, 0, 0, -500, 1400, + 0, -500, 1500, 0, -500, -1500, 0, -2000, -1400, 0, -2000, 0, 0, -2000, 1400, 0, -2000, 1500, 0, -2000, -1500, 0, -5000, -1400, 0, -5000, 0, 0, + -5000, 1400, 0, -5000, 1500, 0, -5000, -2000, 0, -500, -2500, 0, -2000, -3000, 0, -5000, 2000, 0, -500, 2500, 0, -2000, 3000, 0, -5000 }; -GXColor lbl_1_data_4F0[26] = { - { 96, 128, 255, 255 }, - { 128, 160, 255, 32 }, - { 128, 160, 255, 32 }, - { 128, 160, 255, 32 }, - { 96, 128, 255, 255 }, - { 24, 48, 255, 255 }, - { 96, 128, 255, 32 }, - { 128, 160, 255, 32 }, - { 96, 128, 255, 32 }, - { 24, 48, 255, 255 }, - { 24, 48, 255, 255 }, - { 24, 48, 255, 255 }, - { 96, 128, 255, 255 }, - { 24, 48, 255, 255 }, - { 24, 48, 255, 255 }, - { 8, 24, 143, 255 }, - { 8, 24, 143, 255 }, - { 8, 24, 143, 255 }, - { 8, 24, 143, 255 }, - { 8, 24, 143, 255 }, - { 24, 48, 255, 255 }, - { 24, 48, 255, 255 }, - { 24, 48, 255, 255 }, - { 24, 48, 255, 255 }, - { 24, 48, 255, 255 }, - { 24, 48, 255, 255 } -}; +GXColor lbl_1_data_4F0[26] = { { 96, 128, 255, 255 }, { 128, 160, 255, 32 }, { 128, 160, 255, 32 }, { 128, 160, 255, 32 }, { 96, 128, 255, 255 }, + { 24, 48, 255, 255 }, { 96, 128, 255, 32 }, { 128, 160, 255, 32 }, { 96, 128, 255, 32 }, { 24, 48, 255, 255 }, { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, { 96, 128, 255, 255 }, { 24, 48, 255, 255 }, { 24, 48, 255, 255 }, { 8, 24, 143, 255 }, { 8, 24, 143, 255 }, + { 8, 24, 143, 255 }, { 8, 24, 143, 255 }, { 8, 24, 143, 255 }, { 24, 48, 255, 255 }, { 24, 48, 255, 255 }, { 24, 48, 255, 255 }, + { 24, 48, 255, 255 }, { 24, 48, 255, 255 }, { 24, 48, 255, 255 } }; -float lbl_1_data_558[26][2] = { - 0, 1, - 0.033333335, 1, - 0.5, 1, - 0.96666664, 1, - 1, 1, - 0, 0.5, - 0.033333335, 0.5, - 0.5, 0.5, - 0.96666664, 0.5, - 1, 0.5, - 0, 0, - 0.033333335, 0, - 0.5, 0, - 0.96666664, 0, - 1, 0, - 0, 0, - 0.033333335, 0, - 0.5, 0, - 0.96666664, 0, - 1, 0, - -0.15, 0.5, - -0.33, 0, - -0.49, 0, - 1.15, 0.5, - 1.33, 0, - 1.49, 0 -}; +float lbl_1_data_558[26][2] + = { 0, 1, 0.033333335, 1, 0.5, 1, 0.96666664, 1, 1, 1, 0, 0.5, 0.033333335, 0.5, 0.5, 0.5, 0.96666664, 0.5, 1, 0.5, 0, 0, 0.033333335, 0, 0.5, 0, + 0.96666664, 0, 1, 0, 0, 0, 0.033333335, 0, 0.5, 0, 0.96666664, 0, 1, 0, -0.15, 0.5, -0.33, 0, -0.49, 0, 1.15, 0.5, 1.33, 0, 1.49, 0 }; -float lbl_1_data_628[26][2] = { - 0, 30, - 0.5, 30, - 7.5, 30, - 14.5, 30, - 15, 30, - 0, 15, - 0.5, 15, - 7.5, 15, - 14.5, 15, - 15, 15, - 0, 7.5, - 0.5, 7.5, - 7.5, 7.5, - 14.5, 7.5, - 15, 7.5, - 0, 0, - 0.5, 0, - 7.5, 0, - 14.5, 0, - 15, 0, - -2.25, 15, - -4.9500003, 7.5, - -7.3500004, 0, - 17.25, 15, - 19.95, 7.5, - 22.35, 0 -}; +float lbl_1_data_628[26][2] = { 0, 30, 0.5, 30, 7.5, 30, 14.5, 30, 15, 30, 0, 15, 0.5, 15, 7.5, 15, 14.5, 15, 15, 15, 0, 7.5, 0.5, 7.5, 7.5, 7.5, + 14.5, 7.5, 15, 7.5, 0, 0, 0.5, 0, 7.5, 0, 14.5, 0, 15, 0, -2.25, 15, -4.9500003, 7.5, -7.3500004, 0, 17.25, 15, 19.95, 7.5, 22.35, 0 }; -float lbl_1_data_6F8[2][3] = { - 0, 0, 0.5, - 0, 0.5, 0 -}; +float lbl_1_data_6F8[2][3] = { 0, 0, 0.5, 0, 0.5, 0 }; GXColor lbl_1_data_710 = { 80, 80, 80, 80 }; -Vec lbl_1_data_714[9] = { - -1500, 0, -5000, - 0, 0, -5000, - 1500, 0, -5000, - -1500, 0, -3000, - 0, 0, -3000, - 1500, 0, -3000, - -1500, 0, 1000, - 0, 0, 1000, - 1500, 0, 1000 -}; +Vec lbl_1_data_714[9] + = { -1500, 0, -5000, 0, 0, -5000, 1500, 0, -5000, -1500, 0, -3000, 0, 0, -3000, 1500, 0, -3000, -1500, 0, 1000, 0, 0, 1000, 1500, 0, 1000 }; GXColor lbl_1_data_780[9] = { { 255, 255, 255, 0 }, @@ -509,11 +397,11 @@ void fn_1_3CB0(ModelData *model, Mtx matrix) GXPosition2u16(0, 0); GXTexCoord2f32(work->unkA54, work->unkA58); GXPosition2u16(400, 0); - GXTexCoord2f32(work->unkA54+7, work->unkA58); + GXTexCoord2f32(work->unkA54 + 7, work->unkA58); GXPosition2u16(400, 400); - GXTexCoord2f32(work->unkA54+7, work->unkA58+7); + GXTexCoord2f32(work->unkA54 + 7, work->unkA58 + 7); GXPosition2u16(0, 400); - GXTexCoord2f32(work->unkA54, work->unkA58+7); + GXTexCoord2f32(work->unkA54, work->unkA58 + 7); GXEnd(); GXSetNumTexGens(1); GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); @@ -532,22 +420,22 @@ void fn_1_3CB0(ModelData *model, Mtx matrix) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); workUnk74 = &work2->unk74[0]; - for(i=0; i<64; i++, workUnk74++) { + for (i = 0; i < 64; i++, workUnk74++) { float scale; float accel; - if(workUnk74->unk1E == 0) { + if (workUnk74->unk1E == 0) { continue; } - scale = 128*(workUnk74->unkC.x*(0.2f+cosd(workUnk74->unk1E*workUnk74->unk18*90.0f))); - accel = workUnk74->unk1E*workUnk74->unk18; - lbl_1_data_37A.a = workUnk74->unkC.z*sind((accel*accel)*90.0f)*255.0; + scale = 128 * (workUnk74->unkC.x * (0.2f + cosd(workUnk74->unk1E * workUnk74->unk18 * 90.0f))); + accel = workUnk74->unk1E * workUnk74->unk18; + lbl_1_data_37A.a = workUnk74->unkC.z * sind((accel * accel) * 90.0f) * 255.0; GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_37A); - MTXScale(modelview, 0.5f*scale, 0.5f*scale, 1.0f); + MTXScale(modelview, 0.5f * scale, 0.5f * scale, 1.0f); mtxRotCat(modelview, 0, 0, workUnk74->unkC.y); - mtxTransCat(modelview, 400*(workUnk74->unk0.x+1500)/3000, 400*(workUnk74->unk0.z - -2000)/3000, 0); + mtxTransCat(modelview, 400 * (workUnk74->unk0.x + 1500) / 3000, 400 * (workUnk74->unk0.z - -2000) / 3000, 0); GXLoadPosMtxImm(modelview, GX_PNMTX0); GXCallDisplayList(work2->unkA14, work2->unkA18); - if(!omPauseChk()) { + if (!omPauseChk()) { workUnk74->unk1E--; } } @@ -600,11 +488,11 @@ void fn_1_464C(ModelData *model, Mtx matrix) Mtx projCamera; s16 lightMask; s16 i; - + fn_1_5BB8(workUnk4, 0); GXLoadPosMtxImm(matrix, GX_PNMTX0); fov = cameraP->fov; - if(fov <= 0.0f) { + if (fov <= 0.0f) { fov = 45; } MTXLightPerspective(proj, fov, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); @@ -632,7 +520,7 @@ void fn_1_464C(ModelData *model, Mtx matrix) GXSetVtxDesc(GX_VA_POS, GX_INDEX16); GXSetArray(GX_VA_POS, lbl_1_data_388, sizeof(Vec)); GXBegin(GX_QUADS, GX_VTXFMT0, 4); - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { GXPosition1x16(i); } GXEnd(); @@ -641,7 +529,7 @@ void fn_1_464C(ModelData *model, Mtx matrix) workUnk4 = &work2->unk4[2]; fn_1_60C4(0, workUnk4, 0, 0, 0); GXBegin(GX_QUADS, GX_VTXFMT0, 4); - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { GXPosition1x16(i); } GXEnd(); @@ -668,7 +556,7 @@ void fn_1_4994(ModelData *model, Mtx matrix) MTXInvXpose(matrix, invXPose); GXLoadNrmMtxImm(invXPose, GX_PNMTX0); fov = cameraP->fov; - if(fov <= 0.0f) { + if (fov <= 0.0f) { fov = 45; } MTXLightPerspective(proj, fov, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); @@ -710,53 +598,55 @@ void fn_1_4994(ModelData *model, Mtx matrix) GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_1); GXSetIndTexMtx(GX_ITM_1, lbl_1_data_6F8, -1); - for(i=0; i<26; i++) { - work2->unk944[i][0] -= 0.007874016f*((s32)frand() & 0x7F)*0.005f; - work2->unk944[i][1] += 0.007874016f*((s32)frand() & 0x7F)*0.005f; - work2->unk874[i][0] = work2->unk944[i][0]+lbl_1_data_628[i][0]; - work2->unk874[i][1] = work2->unk944[i][1]+lbl_1_data_628[i][1]; + for (i = 0; i < 26; i++) { + work2->unk944[i][0] -= 0.007874016f * ((s32)frand() & 0x7F) * 0.005f; + work2->unk944[i][1] += 0.007874016f * ((s32)frand() & 0x7F) * 0.005f; + work2->unk874[i][0] = work2->unk944[i][0] + lbl_1_data_628[i][0]; + work2->unk874[i][1] = work2->unk944[i][1] + lbl_1_data_628[i][1]; } DCFlushRange(&work2->unk874[0][0], sizeof(work2->unk874)); GXClearVtxDesc(); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - + GXSetArray(GX_VA_POS, lbl_1_data_3B8, sizeof(Vec)); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetArray(GX_VA_CLR0, lbl_1_data_4F0, sizeof(GXColor)); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); - GXSetArray(GX_VA_TEX0, lbl_1_data_558, sizeof(float)*2); + GXSetArray(GX_VA_TEX0, lbl_1_data_558, sizeof(float) * 2); GXSetVtxDesc(GX_VA_TEX1, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_TEX_ST, GX_F32, 0); - GXSetArray(GX_VA_TEX1, &work2->unk874[0][0], sizeof(float)*2); + GXSetArray(GX_VA_TEX1, &work2->unk874[0][0], sizeof(float) * 2); GXBegin(GX_QUADS, GX_VTXFMT0, 48); - for(i=0; i<12; i++) { + for (i = 0; i < 12; i++) { s16 index; - if(i == 4) { + if (i == 4) { index = 12; - } else if(i == 9) { + } + else if (i == 9) { index = 13; - } else { + } + else { index = i; } - GXPosition1x16(index+0); - GXColor1x16(index+0); - GXTexCoord1x16(index+0); - GXTexCoord1x16(index+0); - GXPosition1x16(index+5); - GXColor1x16(index+5); - GXTexCoord1x16(index+5); - GXTexCoord1x16(index+5); - GXPosition1x16(index+6); - GXColor1x16(index+6); - GXTexCoord1x16(index+6); - GXTexCoord1x16(index+6); - GXPosition1x16(index+1); - GXColor1x16(index+1); - GXTexCoord1x16(index+1); - GXTexCoord1x16(index+1); + GXPosition1x16(index + 0); + GXColor1x16(index + 0); + GXTexCoord1x16(index + 0); + GXTexCoord1x16(index + 0); + GXPosition1x16(index + 5); + GXColor1x16(index + 5); + GXTexCoord1x16(index + 5); + GXTexCoord1x16(index + 5); + GXPosition1x16(index + 6); + GXColor1x16(index + 6); + GXTexCoord1x16(index + 6); + GXTexCoord1x16(index + 6); + GXPosition1x16(index + 1); + GXColor1x16(index + 1); + GXTexCoord1x16(index + 1); + GXTexCoord1x16(index + 1); } GXEnd(); GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 8); @@ -853,18 +743,18 @@ void fn_1_54D0(ModelData *model, Mtx matrix) HuSprTexLoad(work->unkA1C[1], 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); GXSetNumTexGens(2); MTXRotDeg(final, 'X', 90.0f); - x = 0.004f*scale; + x = 0.004f * scale; MTXScale(temp, x, -0.004f, 0.004f); MTXConcat(final, temp, final); - MTXTrans(temp, (work->unkA48%1024)/(512.0f*x), 0, 1.2499999f*(work->unkA48%400)); + MTXTrans(temp, (work->unkA48 % 1024) / (512.0f * x), 0, 1.2499999f * (work->unkA48 % 400)); MTXConcat(final, temp, final); GXLoadTexMtxImm(final, GX_TEXMTX0, GX_MTX2x4); GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX0); MTXRotDeg(final, 'X', 90.0f); - x = 0.004f*scale; + x = 0.004f * scale; MTXScale(temp, x, -0.004f, 0.004f); MTXConcat(final, temp, final); - MTXTrans(temp, (work->unkA48%300)/(150.0f*x), 0, 0); + MTXTrans(temp, (work->unkA48 % 300) / (150.0f * x), 0, 0); MTXConcat(final, temp, final); GXLoadTexMtxImm(final, GX_TEXMTX1, GX_MTX2x4); GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, GX_TEXMTX1); @@ -928,8 +818,8 @@ void fn_1_5BB8(Work2FACUnk4 *arg0, s32 arg1) void fn_1_5C74(Work2FACUnk4 *fbWork, float x1, float y1, float scale) { - float x2 = x1+(fbWork->unk14*scale); - float y2 = y1+(fbWork->unk18*scale); + float x2 = x1 + (fbWork->unk14 * scale); + float y2 = y1 + (fbWork->unk18 * scale); Mtx44 proj; Mtx modelview; GXTexObj texObj; @@ -973,9 +863,10 @@ void fn_1_60C4(s16 arg0, Work2FACUnk4 *arg1, GXTexWrapMode arg2, s32 arg3, BOOL { GXTexObj texObj; GXInitTexObj(&texObj, arg1->unk0, arg1->unk14, arg1->unk18, GX_TF_RGB565, arg2, arg2, FALSE); - if(arg4) { + if (arg4) { GXInitTexObjLOD(&texObj, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); - } else { + } + else { GXInitTexObjLOD(&texObj, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); } GXLoadTexObj(&texObj, arg0); @@ -987,47 +878,51 @@ s32 fn_1_61C8(Vec *arg0, float arg1, float arg2, s32 arg3) Work2FAC *work2; Work2FACUnk74 *workUnk74; s32 i; - if(!lbl_1_bss_B4) { + if (!lbl_1_bss_B4) { return -1; } work = lbl_1_bss_B4->data; work2 = work; workUnk74 = &work->unk74[0]; - for(i=0; i<64; i++, workUnk74++) { - if(workUnk74->unk1E == 0) { + for (i = 0; i < 64; i++, workUnk74++) { + if (workUnk74->unk1E == 0) { break; } } - if(i >= 64) { + if (i >= 64) { return -1; } workUnk74->unk0 = *arg0; - if(arg1 < 0.0f) { + if (arg1 < 0.0f) { workUnk74->unkC.x = 1; - } else { + } + else { workUnk74->unkC.x = arg1; } - if(arg2 < 0.0f) { + if (arg2 < 0.0f) { workUnk74->unkC.z = 1; - } else { + } + else { workUnk74->unkC.z = arg2; } - if(arg3 < 0) { - workUnk74->unk1C = 60; - } else { + if (arg3 < 0) { + workUnk74->unk1C = REFRESH_RATE; + } + else { workUnk74->unk1C = arg3; } - workUnk74->unkC.y = (s32)frand()%360; + workUnk74->unkC.y = (s32)frand() % 360; workUnk74->unk1E = workUnk74->unk1C; - workUnk74->unk18 = 1.0f/workUnk74->unk1C; + workUnk74->unk18 = 1.0f / workUnk74->unk1C; return i; } float fn_1_63AC(void) { - if(!lbl_1_bss_B4) { + if (!lbl_1_bss_B4) { return 0; - } else { + } + else { Work2FAC *work = lbl_1_bss_B4->data; return work->unkA44; } @@ -1035,9 +930,10 @@ float fn_1_63AC(void) float fn_1_63F8(void) { - if(!lbl_1_bss_B4) { + if (!lbl_1_bss_B4) { return 0; - } else { + } + else { Work2FAC *work = lbl_1_bss_B4->data; return work->unkA40; } @@ -1061,10 +957,10 @@ void fn_1_6444(omObjData *object) Work6914 *work; s32 i; AnimData *anim; - work = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work6914)*8, MEMORY_DEFAULT_NUM); - memset(work, 0, sizeof(Work6914)*8); + work = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work6914) * 8, MEMORY_DEFAULT_NUM); + memset(work, 0, sizeof(Work6914) * 8); anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 26), MEMORY_DEFAULT_NUM)); - for(i=0; i<8; i++, work++) { + for (i = 0; i < 8; i++, work++) { work->unk10 = anim; work->unk0 = i; work->unk4 = Hu3DParticleCreate(work->unk10, 32); @@ -1085,21 +981,22 @@ void fn_1_659C(omObjData *object) { Work6914 *work = object->data; s32 i; - for(i=0; i<8; i++, work++) { - if(work->unk8 == 0) { + for (i = 0; i < 8; i++, work++) { + if (work->unk8 == 0) { continue; } - if(work->unkC > 1) { + if (work->unkC > 1) { ModelData *modelP = &Hu3DData[work->unk4]; ParticleData *particleP = modelP->unk_120; HsfanimStruct01 *data = particleP->unk_48; s32 j; - for(j=0; junk_30; j++, data++) { - if(++data->unk00_s16 > data->unk02) { - s32 alpha = data->unk40.a-1; - if(alpha < 0) { + for (j = 0; j < particleP->unk_30; j++, data++) { + if (++data->unk00_s16 > data->unk02) { + s32 alpha = data->unk40.a - 1; + if (alpha < 0) { data->unk2C = 0; - } else { + } + else { data->unk40.a = alpha; } } @@ -1110,10 +1007,11 @@ void fn_1_659C(omObjData *object) data->unk08.y -= 0.3103333379576603; } } - if(++work->unkC > 90.0f) { + if (++work->unkC > (1.5f * REFRESH_RATE)) { Hu3DModelAttrSet(work->unk4, HU3D_ATTR_DISPOFF); work->unk8 = 0; - } else { + } + else { Hu3DModelPosSet(work->unk4, work->unk14.x, work->unk14.y, work->unk14.z); Hu3DModelRotSet(work->unk4, work->unk20.x, work->unk20.y, work->unk20.z); Hu3DModelScaleSet(work->unk4, work->unk2C.x, work->unk2C.y, work->unk2C.z); @@ -1136,13 +1034,13 @@ s32 fn_1_67E0(Vec *arg0, float arg1) ModelData *temp_r27; ParticleData *temp_r28; HsfanimStruct01 *temp_r30; - - for(i=0; i<8; i++, work++) { - if(work->unk8 == 0) { + + for (i = 0; i < 8; i++, work++) { + if (work->unk8 == 0) { break; } } - if(i >= 8) { + if (i >= 8) { return -1; } Hu3DModelAttrReset(work->unk4, HU3D_ATTR_DISPOFF); @@ -1152,29 +1050,29 @@ s32 fn_1_67E0(Vec *arg0, float arg1) temp_r28 = temp_r27->unk_120; temp_r28->unk_2C = 1; temp_r30 = temp_r28->unk_48; - for(i=0; iunk_30; i++, temp_r30++) { - float temp_f30 = ((s32)frand()%20)+90; - float temp_f29 = (s32)frand()%360; + for (i = 0; i < temp_r28->unk_30; i++, temp_r30++) { + float temp_f30 = ((s32)frand() % 20) + 90; + float temp_f29 = (s32)frand() % 360; float temp_f26 = sind(temp_f30); float temp_f28 = cosd(temp_f30); - float temp_f25 = 0.75f+0.15f*(0.007874016f*((s32)frand() & 0x7F)); + float temp_f25 = 0.75f + 0.15f * (0.007874016f * ((s32)frand() & 0x7F)); float temp_f31 = 0.15f; - temp_r30->unk08.x = temp_f31*(0.65f*(50.0*(temp_f28*sind(temp_f29)))); - temp_r30->unk08.z = temp_f31*(0.65f*(50.0*(temp_f28*cosd(temp_f29)))); - temp_r30->unk08.y = temp_f31*(50*temp_f26*temp_f25); + temp_r30->unk08.x = temp_f31 * (0.65f * (50.0 * (temp_f28 * sind(temp_f29)))); + temp_r30->unk08.z = temp_f31 * (0.65f * (50.0 * (temp_f28 * cosd(temp_f29)))); + temp_r30->unk08.y = temp_f31 * (50 * temp_f26 * temp_f25); temp_r30->unk00_s16 = 0; - temp_r30->unk02 = ((s32)frand()%16)+45; - temp_r30->unk30 = (s32)frand()%360; - temp_r30->unk2C = 145; - temp_r30->unk34.x = 0.05f*(((s32)frand() & 0x7F)-64); - temp_r30->unk34.y = 0.65f*(((s32)frand() & 0x7F)-64); - temp_r30->unk34.z = 0.05f*(((s32)frand() & 0x7F)-64); - temp_r30->unk40.r = ((s32)frand()%64)+192; - temp_r30->unk40.g = ((s32)frand()%64)+192; - temp_r30->unk40.b = ((s32)frand()%64)+192; + temp_r30->unk02 = ((s32)frand() % 16) + 45; + temp_r30->unk30 = (s32)frand() % 360; + temp_r30->unk2C = 145.0f; + temp_r30->unk34.x = 0.05f * (((s32)frand() & 0x7F) - 64); + temp_r30->unk34.y = 0.65f * (((s32)frand() & 0x7F) - 64); + temp_r30->unk34.z = 0.05f * (((s32)frand() & 0x7F) - 64); + temp_r30->unk40.r = ((s32)frand() % 64) + 192; + temp_r30->unk40.g = ((s32)frand() % 64) + 192; + temp_r30->unk40.b = ((s32)frand() % 64) + 192; temp_r30->unk40.a = 64; } - if(arg1 < 0.0f) { + if (arg1 < 0.0f) { arg1 = 1.0f; } work->unk14 = *arg0; @@ -1191,16 +1089,16 @@ void fn_1_6E98(omObjData *object); void fn_1_6DB0(omObjData *object) { s32 i; - for(i=0; imdlcnt; i++) { - if(i == 0) { + for (i = 0; i < object->mdlcnt; i++) { + if (i == 0) { object->model[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 9)); - } else { + } + else { object->model[i] = Hu3DModelLink(object->model[0]); } Hu3DModelCameraSet(object->model[i], HU3D_CAM0); Hu3DModelLayerSet(object->model[i], 6); Hu3DModelAttrSet(object->model[i], HU3D_ATTR_DISPOFF); - } object->stat |= 0x100; object->func = fn_1_6E98; @@ -1209,31 +1107,28 @@ void fn_1_6DB0(omObjData *object) void fn_1_6E98(omObjData *object) { s32 i; - for(i=0; imdlcnt; i++) { + for (i = 0; i < object->mdlcnt; i++) { ModelData *modelP = &Hu3DData[object->model[i]]; - if(!(modelP->attr & HU3D_ATTR_DISPOFF)) { - if(Hu3DMotionTimeGet(object->model[i]) >= Hu3DMotionMaxTimeGet(object->model[i])) { - Hu3DModelAttrSet(object->model[i], HU3D_ATTR_DISPOFF); - } + if (!(modelP->attr & HU3D_ATTR_DISPOFF)) { + if (Hu3DMotionTimeGet(object->model[i]) >= Hu3DMotionMaxTimeGet(object->model[i])) { + Hu3DModelAttrSet(object->model[i], HU3D_ATTR_DISPOFF); + } } } } -void fn_1_6F60(omObjData *object) -{ - -} +void fn_1_6F60(omObjData *object) { } s32 fn_1_6F64(Vec *pos, float scale) { s32 i; - for(i=0; imdlcnt; i++) { + for (i = 0; i < lbl_1_bss_AC->mdlcnt; i++) { ModelData *modelP = &Hu3DData[lbl_1_bss_AC->model[i]]; - if(modelP->attr & HU3D_ATTR_DISPOFF) { + if (modelP->attr & HU3D_ATTR_DISPOFF) { break; } } - if(i >= lbl_1_bss_AC->mdlcnt) { + if (i >= lbl_1_bss_AC->mdlcnt) { return -1; } Hu3DMotionTimeSet(lbl_1_bss_AC->model[i], 0); @@ -1253,7 +1148,7 @@ void fn_1_70F0(omObjData *object) s32 i; ModelData *modelP; AnimData *anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M456, 26), MEMORY_DEFAULT_NUM)); - + object->data = anim; object->model[0] = Hu3DParticleCreate(anim, 64); Hu3DModelCameraSet(object->model[0], HU3D_CAM0); @@ -1263,7 +1158,7 @@ void fn_1_70F0(omObjData *object) temp_r30 = modelP->unk_120; temp_r29 = temp_r30->unk_48; temp_r30->unk_2C = 1; - for(i=0; iunk_30; i++, temp_r29++) { + for (i = 0; i < temp_r30->unk_30; i++, temp_r29++) { temp_r29->unk2C = 0; } object->func = fn_1_71E0; @@ -1275,20 +1170,19 @@ void fn_1_71E0(omObjData *object) ParticleData *temp_r29 = modelP->unk_120; HsfanimStruct01 *temp_r30 = temp_r29->unk_48; s32 i; - for(i=0; iunk_30; i++, temp_r30++) { - if(temp_r30->unk2C <= 0.0f) { + for (i = 0; i < temp_r29->unk_30; i++, temp_r30++) { + if (temp_r30->unk2C <= 0.0f) { continue; } - if(++temp_r30->unk00_s16 > 360) { + if (++temp_r30->unk00_s16 > 360) { temp_r30->unk00_s16 -= 360; } - temp_r30->unk34.x += temp_r30->unk08.x*sind(2.0f*temp_r30->unk00_s16); + temp_r30->unk34.x += temp_r30->unk08.x * sind(2.0f * temp_r30->unk00_s16); temp_r30->unk34.y += temp_r30->unk08.y; - if(temp_r30->unk34.y >= 0.0f) { - fn_1_61C8(&temp_r30->unk34, 0.00625f*temp_r30->unk2C, 1, 15); + if (temp_r30->unk34.y >= 0.0f) { + fn_1_61C8(&temp_r30->unk34, 0.00625f * temp_r30->unk2C, 1, REFRESH_RATE / 4); temp_r30->unk2C = 0; } - } } @@ -1306,27 +1200,32 @@ s32 fn_1_74F8(Vec *pos, float scale) ModelData *modelP = &Hu3DData[lbl_1_bss_A8->model[0]]; ParticleData *temp_r30 = modelP->unk_120; HsfanimStruct01 *temp_r31 = temp_r30->unk_48; - for(i=0; iunk_30; i++, temp_r31++) { - if(temp_r31->unk2C <= 0.0f) { + for (i = 0; i < temp_r30->unk_30; i++, temp_r31++) { + if (temp_r31->unk2C <= 0.0f) { break; } } - if(i >= temp_r30->unk_30) { + if (i >= temp_r30->unk_30) { return -1; } - if(scale <= 0.0f) { + if (scale <= 0.0f) { scale = 1.0f; } temp_r31->unk34 = *pos; - temp_r31->unk08.x = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*0.5f; - temp_r31->unk08.z = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F)))); - temp_r31->unk08.y = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*2.0f; - temp_r31->unk00_s16 = (s32)frand()%360; - temp_r31->unk2C = 20*scale; +#if VERSION_PAL + temp_r31->unk08.x = (1.2f * (1.5f + (0.2f * (0.007874016f * (frand() & 0x7F))))) * 0.5f; + temp_r31->unk08.z = (1.5f + (0.2f * (0.007874016f * (frand() & 0x7F)))) * 1.2f; + temp_r31->unk08.y = (1.2f * (1.5f + (0.2f * (0.007874016f * (frand() & 0x7F))))) * 2.0f; +#else + temp_r31->unk08.x = (1.5f + (0.2f * (0.007874016f * ((s32)frand() & 0x7F)))) * 0.5f; + temp_r31->unk08.z = (1.5f + (0.2f * (0.007874016f * ((s32)frand() & 0x7F)))); + temp_r31->unk08.y = (1.5f + (0.2f * (0.007874016f * ((s32)frand() & 0x7F)))) * 2.0f; +#endif + temp_r31->unk00_s16 = (s32)frand() % 360; + temp_r31->unk2C = 20 * scale; return i; } - typedef struct work7C48 { s32 unk0; s32 unk4; @@ -1341,24 +1240,25 @@ void fn_1_7B50(omObjData *object); void fn_1_7778(omObjData *object) { - Work7C48 *workBase = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work7C48)*8, MEMORY_DEFAULT_NUM); + Work7C48 *workBase = object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Work7C48) * 8, MEMORY_DEFAULT_NUM); Work7C48 *workP = workBase; s32 i; - memset(workP, 0, 8*sizeof(Work7C48)); - for(i=0; i<8; i++, workP++) { - switch(i) { + memset(workP, 0, 8 * sizeof(Work7C48)); + for (i = 0; i < 8; i++, workP++) { + switch (i) { case 0: workP->unk0 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 3)); break; - + case 1: workP->unk0 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 4)); break; - + default: - if(i & 0x1) { + if (i & 0x1) { workP->unk0 = Hu3DModelLink(workBase[0].unk0); - } else { + } + else { workP->unk0 = Hu3DModelLink(workBase[1].unk0); } break; @@ -1369,11 +1269,11 @@ void fn_1_7778(omObjData *object) workP->unk8 = 0; workP->unkC = 2; workP->unk10 = (s32)frand() % 360; - workP->unk14.x = 1500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); - workP->unk14.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); - workP->unk14.y = -250+(100*(0.3f*i)); - workP->unk20.x = 1500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); - workP->unk20.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk14.x = 1500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); + workP->unk14.z = 500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); + workP->unk14.y = -250 + (100 * (0.3f * i)); + workP->unk20.x = 1500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); + workP->unk20.z = 500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); workP->unk20.y = workP->unk14.y; Hu3DModelPosSet(workP->unk0, workP->unk14.x, workP->unk14.y, workP->unk14.z); Hu3DModelRotSet(workP->unk0, 0, workP->unk10, 0); @@ -1387,60 +1287,67 @@ void fn_1_7B50(omObjData *object) { Work7C48 *workP = object->data; s32 i; - for(i=0; i<8; i++, workP++) { + for (i = 0; i < 8; i++, workP++) { float dx; float dz; float vel; float angle; - if(workP->unk4 == 0) { - vel = 1+(0.5*sind((workP->unk8*5)%180)); - } else { + if (workP->unk4 == 0) { + vel = 1 + (0.5 * sind((workP->unk8 * 5) % 180)); + } + else { vel = 3; } - workP->unk14.x += vel*(workP->unkC*sind(workP->unk10)); - workP->unk14.z += vel*(workP->unkC*cosd(workP->unk10)); - dx = workP->unk20.x-workP->unk14.x; - dz = workP->unk20.z-workP->unk14.z; + // TODO replace with 60.0 / REFRESH_RATE +#if VERSION_PAL + workP->unk14.x += (1.2000000476837158 * (vel * (workP->unkC * sind(workP->unk10)))); + workP->unk14.z += (1.2000000476837158 * (vel * (workP->unkC * cosd(workP->unk10)))); +#else + workP->unk14.x += vel * (workP->unkC * sind(workP->unk10)); + workP->unk14.z += vel * (workP->unkC * cosd(workP->unk10)); +#endif + dx = workP->unk20.x - workP->unk14.x; + dz = workP->unk20.z - workP->unk14.z; angle = atan2d(dx, dz); workP->unk10 = fn_1_9A18(angle, workP->unk10, 3.5f); - if((dx*dx)+(dz*dz) < 10000.0f) { - if(workP->unk4 == 0) { - workP->unk20.x = 2000*((0.007874016f*((s32)frand() & 0x7F))-0.5f); - workP->unk20.z = 700*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + if ((dx * dx) + (dz * dz) < 10000.0f) { + if (workP->unk4 == 0) { + workP->unk20.x = 2000 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); + workP->unk20.z = 700 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); workP->unk20.y = workP->unk14.y; - } else { - if(workP->unk14.x < 0.0f) { + } + else { + if (workP->unk14.x < 0.0f) { workP->unk20.x = -2500; - } else { + } + else { workP->unk20.x = 2500; } - workP->unk20.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.z = 500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); workP->unk20.y = workP->unk14.y; } } Hu3DModelPosSet(workP->unk0, workP->unk14.x, workP->unk14.y, workP->unk14.z); Hu3DModelRotSet(workP->unk0, 0, workP->unk10, 0); - workP->unk8 += frand()&0x3; + workP->unk8 += frand() & 0x3; } } -void fn_1_7F74(omObjData *object) -{ - -} +void fn_1_7F74(omObjData *object) { } void fn_1_7F78(void) { Work7C48 *workP = lbl_1_bss_A4->data; s32 i; - for(i=0; i<8; i++, workP++) { + for (i = 0; i < 8; i++, workP++) { workP->unk4 = 1; - if(workP->unk14.x < 0.0f) { + if (workP->unk14.x < 0.0f) { workP->unk20.x = -2500; - } else { + } + else { workP->unk20.x = 2500; } - workP->unk20.z = 500*((0.007874016f*((s32)frand() & 0x7F))-0.5f); + workP->unk20.z = 500 * ((0.007874016f * ((s32)frand() & 0x7F)) - 0.5f); workP->unk20.y = workP->unk14.y; } } @@ -1466,10 +1373,10 @@ void fn_1_8078(omObjData *object, Work891C *workP) s32 num = workP[0].unk6; float ofsZ = -2000; s32 i; - for(i=0; iunk0, workP->unk8.x, workP->unk8.y, workP->unk8.z+ofsZ); + Hu3DModelPosSet(workP->unk0, workP->unk8.x, workP->unk8.y, workP->unk8.z + ofsZ); modelMtx = &Hu3DData[workP->unk0].unk_F0; MTXRotDeg(*modelMtx, 'Y', workP->unk28); MTXRotDeg(rotZ, 'Z', workP->unk38); @@ -1485,20 +1392,19 @@ void fn_1_817C(omObjData *object) Work891C *workP = object->data; s32 num = workP[0].unk6; s32 i; - for(i=0; iunk14, &workP->unk8, &diff); workP->unk2C = atan2d(diff.x, diff.z); - workP->unk28 = fn_1_8890(workP->unk28, workP->unk2C+workP->unk3C, 0.08f); - workP->unk24 += 0.05f*(600.0f-workP->unk24); - workP->unk20 += 0.2f*(workP->unk24-workP->unk20); - workP->unk8.x += (workP->unk20*0.016666668f)*sind(workP->unk28); - workP->unk8.z += (workP->unk20*0.016666668f)*cosd(workP->unk28); - workP->unk30 += workP->unk20*0.016666668f; + workP->unk28 = fn_1_8890(workP->unk28, workP->unk2C + workP->unk3C, 0.08f); + workP->unk24 += 0.05f * (600.0f - workP->unk24); + workP->unk20 += 0.2f * (workP->unk24 - workP->unk20); + workP->unk8.x += (workP->unk20 * (1.0f / REFRESH_RATE)) * sind(workP->unk28); + workP->unk8.z += (workP->unk20 * (1.0f / REFRESH_RATE)) * cosd(workP->unk28); + workP->unk30 += workP->unk20 * (1.0f / REFRESH_RATE); } fn_1_8078(object, object->data); - } void fn_1_841C(omObjData *object) @@ -1511,31 +1417,31 @@ void fn_1_841C(omObjData *object) float angle; float ofsZ; s32 i; - object->data = workBase = HuMemDirectMallocNum(HEAP_SYSTEM, num*sizeof(Work891C), MEMORY_DEFAULT_NUM); - memset(workBase, 0, num*sizeof(Work891C)); + object->data = workBase = HuMemDirectMallocNum(HEAP_SYSTEM, num * sizeof(Work891C), MEMORY_DEFAULT_NUM); + memset(workBase, 0, num * sizeof(Work891C)); modelId = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M456, 8)); ofsZ = 1500; work = workBase; - for(i=0; iunk0 = Hu3DModelLink(modelId); Hu3DModelLayerSet(work->unk0, 6); Hu3DModelCameraSet(work->unk0, 1); Hu3DModelScaleSet(work->unk0, 7, 7, 7); - work->unk14.x = ((s32)frandmod(1000)*4.0f)-2000; - work->unk14.z = ((s32)frandmod(1000))-500.0f; - work->unk14.y = ((s32)frandmod(1000)*0.8f)+300; + work->unk14.x = ((s32)frandmod(1000) * 4.0f) - 2000; + work->unk14.z = ((s32)frandmod(1000)) - 500.0f; + work->unk14.y = ((s32)frandmod(1000) * 0.8f) + 300; angle = (s32)frandmod(360); - radius = ((s32)frandmod(250))+200.0f; - work->unk8.x = radius*sind(angle); + radius = ((s32)frandmod(250)) + 200.0f; + work->unk8.x = radius * sind(angle); work->unk8.y = 0; - work->unk8.z = radius*cosd(angle); + work->unk8.z = radius * cosd(angle); VECAdd(&work->unk14, &work->unk8, &work->unk8); - work->unk38 = 60-((6.0f/55.0f)*radius); + work->unk38 = 60 - ((6.0f / 55.0f) * radius); work->unk28 = (s32)frandmod(360); - work->unk3C = ((s32)frandmod(1000) < 500) ? (-70.0f+((s32)frandmod(50)*0.1f)) : (70.0f-((s32)frandmod(50)*0.1f)); - if(work->unk3C < 0.0f) { + work->unk3C = ((s32)frandmod(1000) < 500) ? (-70.0f + ((s32)frandmod(50) * 0.1f)) : (70.0f - ((s32)frandmod(50) * 0.1f)); + if (work->unk3C < 0.0f) { work->unk38 = -work->unk38; } work->unk30 = 1; @@ -1549,15 +1455,15 @@ void fn_1_841C(omObjData *object) float fn_1_8890(float start, float end, float weight) { - float angle = fmodf(end-start, 360); - if(angle < 0.0f) { + float angle = fmodf(end - start, 360); + if (angle < 0.0f) { angle += 360.0f; } - if(angle > 180.0f) { + if (angle > 180.0f) { angle -= 360.0f; } - angle = fmodf(start+(weight*angle), 360); - if(angle < 0.0f) { + angle = fmodf(start + (weight * angle), 360); + if (angle < 0.0f) { angle += 360.0f; } return angle; @@ -1585,8 +1491,8 @@ void fn_1_89AC(void) particle = modelP->unk_120; particle->unk_2C = 1; particle->unk_54 = fn_1_8CB8; - newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); - memset(newWork, 0, 4*sizeof(s16)); + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16) * 4, modelP->unk_48); + memset(newWork, 0, 4 * sizeof(s16)); newWork[1] = 0; workP->unk10[1] = modelId = Hu3DParticleCreate(workP->unk0[3], 10); Hu3DModelLayerSet(modelId, 6); @@ -1594,8 +1500,8 @@ void fn_1_89AC(void) particle = modelP->unk_120; particle->unk_2C = 1; particle->unk_54 = fn_1_8CB8; - newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); - memset(newWork, 0, 4*sizeof(s16)); + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16) * 4, modelP->unk_48); + memset(newWork, 0, 4 * sizeof(s16)); newWork[1] = 1; workP->unk10[2] = modelId = Hu3DParticleCreate(workP->unk0[2], 4); Hu3DModelLayerSet(modelId, 6); @@ -1603,8 +1509,8 @@ void fn_1_89AC(void) particle = modelP->unk_120; particle->unk_2C = 1; particle->unk_54 = fn_1_8CB8; - newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); - memset(newWork, 0, 4*sizeof(s16)); + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16) * 4, modelP->unk_48); + memset(newWork, 0, 4 * sizeof(s16)); newWork[1] = 2; workP->unk10[3] = modelId = Hu3DParticleCreate(workP->unk0[1], 6); Hu3DModelLayerSet(modelId, 6); @@ -1612,8 +1518,8 @@ void fn_1_89AC(void) particle = modelP->unk_120; particle->unk_2C = 1; particle->unk_54 = fn_1_8CB8; - newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16)*4, modelP->unk_48); - memset(newWork, 0, 4*sizeof(s16)); + newWork = particle->unk_1C = HuMemDirectMallocNum(HEAP_DATA, sizeof(s16) * 4, modelP->unk_48); + memset(newWork, 0, 4 * sizeof(s16)); newWork[1] = 3; } @@ -1626,19 +1532,9 @@ void fn_1_8C68(void) HuSprAnimKill(workP->unk0[3]); } -float lbl_1_data_7B0[4] = { - 1000, - 200, - 600, - 1200 -}; +float lbl_1_data_7B0[4] = { 1000, 200, 600, 1200 }; -float lbl_1_data_7C0[4] = { - 1, - 0.6, - 0.3, - 0.425 -}; +float lbl_1_data_7C0[4] = { 1, 0.6, 0.3, 0.425 }; void fn_1_8CB8(ModelData *model, ParticleData *particle, Mtx matrix) { @@ -1659,34 +1555,37 @@ void fn_1_8CB8(ModelData *model, ParticleData *particle, Mtx matrix) float temp_f29; float temp_f23; s32 i; - switch(newWorkP[2]) { + switch (newWorkP[2]) { case 0: temp_r31 = particle->unk_48; - if(newWorkP[1]) { + if (newWorkP[1]) { sp18.x = 2000; sp18.y = -300; sp18.z = 500; - temp_f29 = 1/VECMagPoint(sp18.x, sp18.y, sp18.z); + temp_f29 = 1 / VECMagPoint(sp18.x, sp18.y, sp18.z); sp18.x *= temp_f29; sp18.y *= temp_f29; sp18.z *= temp_f29; - temp_f23 = 3200.0f/particle->unk_30; - for(i=0; iunk_30; i++, temp_r31++) { - temp_f26 = 500.0+((temp_f23*i)+((0.25f*temp_f23)*((float)((s32)frand() & 0xFFFF)*0.0000152587890625))); - temp_f25 = temp_f26/3200; + temp_f23 = 3200.0f / particle->unk_30; + for (i = 0; i < particle->unk_30; i++, temp_r31++) { + temp_f26 = 500.0 + ((temp_f23 * i) + ((0.25f * temp_f23) * ((float)((s32)frand() & 0xFFFF) * 0.0000152587890625))); + temp_f25 = temp_f26 / 3200; temp_r31->unk14.x = temp_f26; - temp_r31->unk34.x = 1000+(temp_f26*sp18.x); - temp_r31->unk34.y = 4800+(temp_f26*sp18.y); - temp_r31->unk34.z = -3500+(temp_f26*sp18.z); - temp_r31->unk2C = ((0.7f*(temp_f25*temp_f25))+0.3f)*(lbl_1_data_7B0[newWorkP[1]]*(0.7f+(0.3f*((float)((s32)frand() & 0xFFFF)*0.0000152587890625)))); - temp_r31->unk40.r = (s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*160.0)+32; - temp_r31->unk40.g = (s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*96.0)+32; - temp_r31->unk40.b = (s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*128.0)+32; - temp_r31->unk40.a = (255*lbl_1_data_7C0[newWorkP[1]]*(1.0-(0.4*temp_f25)))-(s32)(((float)((s32)frand() & 0xFFFF)*0.0000152587890625)*16.0); + temp_r31->unk34.x = 1000 + (temp_f26 * sp18.x); + temp_r31->unk34.y = 4800 + (temp_f26 * sp18.y); + temp_r31->unk34.z = -3500 + (temp_f26 * sp18.z); + temp_r31->unk2C = ((0.7f * (temp_f25 * temp_f25)) + 0.3f) + * (lbl_1_data_7B0[newWorkP[1]] * (0.7f + (0.3f * ((float)((s32)frand() & 0xFFFF) * 0.0000152587890625)))); + temp_r31->unk40.r = (s32)(((float)((s32)frand() & 0xFFFF) * 0.0000152587890625) * 160.0) + 32; + temp_r31->unk40.g = (s32)(((float)((s32)frand() & 0xFFFF) * 0.0000152587890625) * 96.0) + 32; + temp_r31->unk40.b = (s32)(((float)((s32)frand() & 0xFFFF) * 0.0000152587890625) * 128.0) + 32; + temp_r31->unk40.a = (255 * lbl_1_data_7C0[newWorkP[1]] * (1.0 - (0.4 * temp_f25))) + - (s32)(((float)((s32)frand() & 0xFFFF) * 0.0000152587890625) * 16.0); temp_r31->unk14.z = temp_r31->unk40.a; } newWorkP[2]++; - } else { + } + else { temp_r31->unk34.x = 1000; temp_r31->unk34.y = 4800; temp_r31->unk34.z = -3500; @@ -1695,46 +1594,46 @@ void fn_1_8CB8(ModelData *model, ParticleData *particle, Mtx matrix) break; case 1: - sp3C.x = sind(rot.y)*cosd(rot.x); + sp3C.x = sind(rot.y) * cosd(rot.x); sp3C.y = -sind(rot.x); - sp3C.z = cosd(rot.y)*cosd(rot.x); - sp30.x = 1000-(pos.x+(1.25f*(sp3C.x*zoom))); - sp30.y = 4800-(pos.y+(sp3C.y*zoom)); - sp30.z = -3500-(pos.z+(1.25f*(sp3C.z*zoom))); - temp_f29 = 1/VECMagPoint(sp30.x, sp30.y, sp30.z); + sp3C.z = cosd(rot.y) * cosd(rot.x); + sp30.x = 1000 - (pos.x + (1.25f * (sp3C.x * zoom))); + sp30.y = 4800 - (pos.y + (sp3C.y * zoom)); + sp30.z = -3500 - (pos.z + (1.25f * (sp3C.z * zoom))); + temp_f29 = 1 / VECMagPoint(sp30.x, sp30.y, sp30.z); sp30.x *= temp_f29; sp30.y *= temp_f29; sp30.z *= temp_f29; - temp_f29 = -((-sp30.x*-sp3C.x)+(-sp30.y*-sp3C.y)+(-sp30.z*-sp3C.z)); - sp24.x = -sp3C.x+((-2.0f*sp30.x)*temp_f29); - sp24.y = -sp3C.y+((-2.0f*sp30.y)*temp_f29); - sp24.z = -sp3C.z+((-2.0f*sp30.z)*temp_f29); + temp_f29 = -((-sp30.x * -sp3C.x) + (-sp30.y * -sp3C.y) + (-sp30.z * -sp3C.z)); + sp24.x = -sp3C.x + ((-2.0f * sp30.x) * temp_f29); + sp24.y = -sp3C.y + ((-2.0f * sp30.y) * temp_f29); + sp24.z = -sp3C.z + ((-2.0f * sp30.z) * temp_f29); temp_r31 = particle->unk_48; - for(i=0; iunk_30; i++, temp_r31++) { - temp_r31->unk34.x = 1000+(sp24.x*temp_r31->unk14.x); - temp_r31->unk34.y = 4800+(sp24.y*temp_r31->unk14.x); - temp_r31->unk34.z = -3500+(sp24.z*temp_r31->unk14.x); - temp_r31->unk40.a = temp_r31->unk14.z*workP->unk20.y; + for (i = 0; i < particle->unk_30; i++, temp_r31++) { + temp_r31->unk34.x = 1000 + (sp24.x * temp_r31->unk14.x); + temp_r31->unk34.y = 4800 + (sp24.y * temp_r31->unk14.x); + temp_r31->unk34.z = -3500 + (sp24.z * temp_r31->unk14.x); + temp_r31->unk40.a = temp_r31->unk14.z * workP->unk20.y; } break; } - DCFlushRange(particle->unk_48, particle->unk_30*sizeof(HsfanimStruct01)); - + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); } void fn_1_97FC(float arg0) { StructBss90 *workP = lbl_1_bss_90; workP->unk20.y = arg0; - if(workP->unk20.y > 1.0f) { + if (workP->unk20.y > 1.0f) { workP->unk20.y = 1.0f; } - if(workP->unk20.y <= 0.0f) { + if (workP->unk20.y <= 0.0f) { Hu3DModelAttrSet(workP->unk10[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(workP->unk10[1], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(workP->unk10[2], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(workP->unk10[3], HU3D_ATTR_DISPOFF); - } else { + } + else { Hu3DModelAttrReset(workP->unk10[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(workP->unk10[1], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(workP->unk10[2], HU3D_ATTR_DISPOFF); @@ -1745,20 +1644,23 @@ void fn_1_97FC(float arg0) float fn_1_9900(float start, float end) { float angleDiff; - if(start >= 360.0f) { + if (start >= 360.0f) { start -= 360.0f; - } else if(start < 0.0f) { + } + else if (start < 0.0f) { start += 360.0f; } - if(end >= 360.0f) { + if (end >= 360.0f) { end -= 360.0f; - } else if(end < 0.0f) { + } + else if (end < 0.0f) { end += 360.0f; } - angleDiff = start-end; - if(angleDiff <= -180.0f) { + angleDiff = start - end; + if (angleDiff <= -180.0f) { angleDiff += 360.0f; - } else if(angleDiff >= 180.0f) { + } + else if (angleDiff >= 180.0f) { angleDiff -= 360.0f; } return angleDiff; @@ -1768,38 +1670,44 @@ float fn_1_9A18(float start, float end, float max) { float angle; float diff; - - if(start >= 360.0) { + + if (start >= 360.0) { start -= 360.0; - } else if(start < 0.0) { + } + else if (start < 0.0) { start += 360.0; } - if(end >= 360.0) { + if (end >= 360.0) { end -= 360.0; - } else if(end < 0.0) { + } + else if (end < 0.0) { end += 360.0; } - diff = 360.0+(start-end); - if(fabs(diff) >= 360.0) { + diff = 360.0 + (start - end); + if (fabs(diff) >= 360.0) { diff = fmod(diff, 360.0); } - if(diff < 180.0) { - if(diff <= max) { + if (diff < 180.0) { + if (diff <= max) { angle = diff; - } else { + } + else { angle = max; } - } else if(360.0-diff <= max) { - angle = -(360.0-diff); - } else { + } + else if (360.0 - diff <= max) { + angle = -(360.0 - diff); + } + else { angle = -max; } angle += end; - if(angle >= 360.0) { + if (angle >= 360.0) { angle -= 360.0; - } else if(angle < 0.0) { + } + else if (angle < 0.0) { angle += 360.0; } - + return angle; -} \ No newline at end of file +} From 6527d715162a484fbd7f408e452f7c08d9cafffc Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 15 Dec 2024 21:14:10 +0100 Subject: [PATCH 198/311] Ported m444dll to JP --- config/GMPJ01_00/rels/m444dll/splits.txt | 25 +++++ config/GMPJ01_00/rels/m444dll/symbols.txt | 128 +++++++++++----------- configure.py | 8 +- src/REL/m444dll/main.c | 3 + 4 files changed, 96 insertions(+), 68 deletions(-) diff --git a/config/GMPJ01_00/rels/m444dll/splits.txt b/config/GMPJ01_00/rels/m444dll/splits.txt index 531cd645..d8c548ff 100644 --- a/config/GMPJ01_00/rels/m444dll/splits.txt +++ b/config/GMPJ01_00/rels/m444dll/splits.txt @@ -5,3 +5,28 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m444dll/main.c: + .text start:0x000000A0 end:0x00008434 + .rodata start:0x00000000 end:0x00000278 + .data start:0x00000000 end:0x00000258 + .bss start:0x00000000 end:0x00000310 + +REL/m444dll/pinball.c: + .text start:0x00008434 end:0x0000D598 + .rodata start:0x00000278 end:0x00000428 + .data start:0x00000258 end:0x00000470 + .bss start:0x00000310 end:0x00019904 + +REL/m444dll/datalist.c: + .text start:0x0000D598 end:0x0000D9D8 + .rodata start:0x00000428 end:0x00000438 + .data start:0x00000470 end:0x000016EC + .bss start:0x00019908 end:0x00019A76 + +REL/m444dll/shadow.c: + .text start:0x0000D9D8 end:0x0000DE30 + .rodata start:0x00000438 end:0x00000474 diff --git a/config/GMPJ01_00/rels/m444dll/symbols.txt b/config/GMPJ01_00/rels/m444dll/symbols.txt index 5cf095ae..88d2d388 100644 --- a/config/GMPJ01_00/rels/m444dll/symbols.txt +++ b/config/GMPJ01_00/rels/m444dll/symbols.txt @@ -1,41 +1,41 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x3E0 -fn_1_480 = .text:0x00000480; // type:function size:0x370C -fn_1_3B8C = .text:0x00003B8C; // type:function size:0x1270 -fn_1_4DFC = .text:0x00004DFC; // type:function size:0x7C4 -fn_1_55C0 = .text:0x000055C0; // type:function size:0x1C4 -fn_1_5784 = .text:0x00005784; // type:function size:0x6F4 -fn_1_5E78 = .text:0x00005E78; // type:function size:0x6F4 -fn_1_656C = .text:0x0000656C; // type:function size:0x824 -fn_1_6D90 = .text:0x00006D90; // type:function size:0xBC -fn_1_6E4C = .text:0x00006E4C; // type:function size:0xA0 -fn_1_6EEC = .text:0x00006EEC; // type:function size:0x3B4 -fn_1_72A0 = .text:0x000072A0; // type:function size:0xC2C -fn_1_7ECC = .text:0x00007ECC; // type:function size:0x2C4 -fn_1_8190 = .text:0x00008190; // type:function size:0x90 -fn_1_8220 = .text:0x00008220; // type:function size:0xEC -fn_1_830C = .text:0x0000830C; // type:function size:0x128 -fn_1_8434 = .text:0x00008434; // type:function size:0x1F8 -fn_1_862C = .text:0x0000862C; // type:function size:0x7B4 -fn_1_8DE0 = .text:0x00008DE0; // type:function size:0x648 -fn_1_9428 = .text:0x00009428; // type:function size:0x894 -fn_1_9CBC = .text:0x00009CBC; // type:function size:0x3B4 -fn_1_A070 = .text:0x0000A070; // type:function size:0xB70 -fn_1_ABE0 = .text:0x0000ABE0; // type:function size:0x618 -fn_1_B1F8 = .text:0x0000B1F8; // type:function size:0x102C -fn_1_C224 = .text:0x0000C224; // type:function size:0x528 -fn_1_C74C = .text:0x0000C74C; // type:function size:0x2F4 -fn_1_CA40 = .text:0x0000CA40; // type:function size:0x140 -fn_1_CB80 = .text:0x0000CB80; // type:function size:0x298 -fn_1_CE18 = .text:0x0000CE18; // type:function size:0x194 -fn_1_CFAC = .text:0x0000CFAC; // type:function size:0x244 -fn_1_D1F0 = .text:0x0000D1F0; // type:function size:0x3A8 -fn_1_D598 = .text:0x0000D598; // type:function size:0x290 -fn_1_D828 = .text:0x0000D828; // type:function size:0x138 -fn_1_D960 = .text:0x0000D960; // type:function size:0x78 -fn_1_D9D8 = .text:0x0000D9D8; // type:function size:0x2C -fn_1_DA04 = .text:0x0000DA04; // type:function size:0x42C +ObjectSetup = .text:0x000000A0; // type:function size:0x3E0 +fn_1_470 = .text:0x00000480; // type:function size:0x370C +fn_1_3B7C = .text:0x00003B8C; // type:function size:0x1270 +fn_1_4DEC = .text:0x00004DFC; // type:function size:0x7C4 +fn_1_55B0 = .text:0x000055C0; // type:function size:0x1C4 +fn_1_5774 = .text:0x00005784; // type:function size:0x6F4 +fn_1_5E68 = .text:0x00005E78; // type:function size:0x6F4 +fn_1_655C = .text:0x0000656C; // type:function size:0x824 +fn_1_6D80 = .text:0x00006D90; // type:function size:0xBC +fn_1_6E3C = .text:0x00006E4C; // type:function size:0xA0 +fn_1_6EDC = .text:0x00006EEC; // type:function size:0x3B4 +fn_1_7290 = .text:0x000072A0; // type:function size:0xC2C +fn_1_7EBC = .text:0x00007ECC; // type:function size:0x2C4 +fn_1_8180 = .text:0x00008190; // type:function size:0x90 +fn_1_8210 = .text:0x00008220; // type:function size:0xEC +fn_1_82FC = .text:0x0000830C; // type:function size:0x128 +fn_1_8424 = .text:0x00008434; // type:function size:0x1F8 +fn_1_861C = .text:0x0000862C; // type:function size:0x7B4 +fn_1_8DD0 = .text:0x00008DE0; // type:function size:0x648 +fn_1_9418 = .text:0x00009428; // type:function size:0x894 +fn_1_9CAC = .text:0x00009CBC; // type:function size:0x3B4 +fn_1_A060 = .text:0x0000A070; // type:function size:0xB70 +fn_1_ABD0 = .text:0x0000ABE0; // type:function size:0x618 +fn_1_B1E8 = .text:0x0000B1F8; // type:function size:0x102C +fn_1_C214 = .text:0x0000C224; // type:function size:0x528 +fn_1_C73C = .text:0x0000C74C; // type:function size:0x2F4 +fn_1_CA30 = .text:0x0000CA40; // type:function size:0x140 +fn_1_CB70 = .text:0x0000CB80; // type:function size:0x298 +fn_1_CE08 = .text:0x0000CE18; // type:function size:0x194 +fn_1_CF9C = .text:0x0000CFAC; // type:function size:0x244 +fn_1_D1E0 = .text:0x0000D1F0; // type:function size:0x3A8 +fn_1_D588 = .text:0x0000D598; // type:function size:0x290 +fn_1_D818 = .text:0x0000D828; // type:function size:0x138 +fn_1_D950 = .text:0x0000D960; // type:function size:0x78 +fn_1_D9C8 = .text:0x0000D9D8; // type:function size:0x2C +fn_1_D9F4 = .text:0x0000DA04; // type:function size:0x42C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float @@ -233,44 +233,44 @@ lbl_1_data_0 = .data:0x00000000; // type:object size:0x118 lbl_1_data_118 = .data:0x00000118; // type:object size:0x28 lbl_1_data_140 = .data:0x00000140; // type:object size:0x54 data:float lbl_1_data_194 = .data:0x00000194; // type:object size:0x20 -lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 data:string -lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0xA data:string -lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0xA data:string -lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xA data:string -lbl_1_data_1F6 = .data:0x000001F6; // type:object size:0xD data:string -lbl_1_data_203 = .data:0x00000203; // type:object size:0xD data:string -lbl_1_data_210 = .data:0x00000210; // type:object size:0xD data:string -lbl_1_data_21D = .data:0x0000021D; // type:object size:0xD data:string -lbl_1_data_22A = .data:0x0000022A; // type:object size:0xB data:string -lbl_1_data_235 = .data:0x00000235; // type:object size:0xB data:string +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x24 scope:local data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0xA scope:local data:string +lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0xA scope:local data:string +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xA scope:local data:string +lbl_1_data_1F6 = .data:0x000001F6; // type:object size:0xD scope:local data:string +lbl_1_data_203 = .data:0x00000203; // type:object size:0xD scope:local data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0xD scope:local data:string +lbl_1_data_21D = .data:0x0000021D; // type:object size:0xD scope:local data:string +lbl_1_data_22A = .data:0x0000022A; // type:object size:0xB scope:local data:string +lbl_1_data_235 = .data:0x00000235; // type:object size:0xB scope:local data:string lbl_1_data_240 = .data:0x00000240; // type:object size:0x4 -lbl_1_data_244 = .data:0x00000244; // type:object size:0xA data:string -lbl_1_data_24E = .data:0x0000024E; // type:object size:0xA +lbl_1_data_244 = .data:0x00000244; // type:object size:0xA scope:local data:string +lbl_1_data_24E = .data:0x0000024E; // type:object size:0xA scope:local lbl_1_data_258 = .data:0x00000258; // type:object size:0xC lbl_1_data_264 = .data:0x00000264; // type:object size:0x3C lbl_1_data_2A0 = .data:0x000002A0; // type:object size:0x28 lbl_1_data_2C8 = .data:0x000002C8; // type:object size:0xA -lbl_1_data_2D2 = .data:0x000002D2; // type:object size:0xD data:string -lbl_1_data_2DF = .data:0x000002DF; // type:object size:0xD data:string -lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xD data:string -lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0xD data:string -lbl_1_data_306 = .data:0x00000306; // type:object size:0xD data:string -lbl_1_data_313 = .data:0x00000313; // type:object size:0xD data:string -lbl_1_data_320 = .data:0x00000320; // type:object size:0xD data:string -lbl_1_data_32D = .data:0x0000032D; // type:object size:0xD data:string -lbl_1_data_33A = .data:0x0000033A; // type:object size:0xD data:string -lbl_1_data_347 = .data:0x00000347; // type:object size:0xD data:string -lbl_1_data_354 = .data:0x00000354; // type:object size:0xD data:string -lbl_1_data_361 = .data:0x00000361; // type:object size:0xD data:string -lbl_1_data_36E = .data:0x0000036E; // type:object size:0xD data:string -lbl_1_data_37B = .data:0x0000037B; // type:object size:0xD data:string +lbl_1_data_2D2 = .data:0x000002D2; // type:object size:0xD scope:local data:string +lbl_1_data_2DF = .data:0x000002DF; // type:object size:0xD scope:local data:string +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0xD scope:local data:string +lbl_1_data_2F9 = .data:0x000002F9; // type:object size:0xD scope:local data:string +lbl_1_data_306 = .data:0x00000306; // type:object size:0xD scope:local data:string +lbl_1_data_313 = .data:0x00000313; // type:object size:0xD scope:local data:string +lbl_1_data_320 = .data:0x00000320; // type:object size:0xD scope:local data:string +lbl_1_data_32D = .data:0x0000032D; // type:object size:0xD scope:local data:string +lbl_1_data_33A = .data:0x0000033A; // type:object size:0xD scope:local data:string +lbl_1_data_347 = .data:0x00000347; // type:object size:0xD scope:local data:string +lbl_1_data_354 = .data:0x00000354; // type:object size:0xD scope:local data:string +lbl_1_data_361 = .data:0x00000361; // type:object size:0xD scope:local data:string +lbl_1_data_36E = .data:0x0000036E; // type:object size:0xD scope:local data:string +lbl_1_data_37B = .data:0x0000037B; // type:object size:0xD scope:local data:string jumptable_1_data_388 = .data:0x00000388; // type:object size:0x1C scope:local lbl_1_data_3A4 = .data:0x000003A4; // type:object size:0x8 lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x30 lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x24 lbl_1_data_400 = .data:0x00000400; // type:object size:0x54 lbl_1_data_454 = .data:0x00000454; // type:object size:0xC -lbl_1_data_460 = .data:0x00000460; // type:object size:0x10 data:string +lbl_1_data_460 = .data:0x00000460; // type:object size:0x10 scope:local data:string lbl_1_data_470 = .data:0x00000470; // type:object size:0x127C lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte @@ -314,7 +314,7 @@ lbl_1_bss_18A0 = .bss:0x000018A0; // type:object size:0x14 lbl_1_bss_18B4 = .bss:0x000018B4; // type:object size:0x3C lbl_1_bss_18F0 = .bss:0x000018F0; // type:object size:0xC000 lbl_1_bss_D8F0 = .bss:0x0000D8F0; // type:object size:0xC000 -lbl_1_bss_198F0 = .bss:0x000198F0; // type:object size:0x1A +lbl_1_bss_198F0 = .bss:0x000198F0; // type:object size:0x14 lbl_1_bss_1990A = .bss:0x0001990A; // type:object size:0x2 data:2byte lbl_1_bss_1990E = .bss:0x0001990E; // type:object size:0xB4 data:2byte lbl_1_bss_199C2 = .bss:0x000199C2; // type:object size:0xB4 data:2byte diff --git a/configure.py b/configure.py index c9d90084..0a9f3eba 100644 --- a/configure.py +++ b/configure.py @@ -1171,10 +1171,10 @@ config.libs = [ Rel( "m444dll", # Reversal of Fortune objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m444dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m444dll/pinball.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m444dll/datalist.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m444dll/shadow.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m444dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m444dll/pinball.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m444dll/datalist.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m444dll/shadow.c"), }, ), Rel( diff --git a/src/REL/m444dll/main.c b/src/REL/m444dll/main.c index 12db5f84..27ef0821 100644 --- a/src/REL/m444dll/main.c +++ b/src/REL/m444dll/main.c @@ -128,6 +128,9 @@ void ObjectSetup(void) lbl_1_bss_30C = omAddObjEx(lbl_1_bss_308, 32730, 0, 0, -1, fn_1_6EDC); omAddObjEx(lbl_1_bss_308, 0, 32, 32, -1, fn_1_7290); Hu3DBGColorSet(0, 0, 0); +#if VERSION_JP + GWGameStat.language = 0; +#endif HuWinInit(1); BoardStatusCreate(); } From 306ba21ebb5abb88e0bf23895dc8e66519201831 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 15 Dec 2024 21:19:39 +0100 Subject: [PATCH 199/311] Port m429 to JP --- config/GMPJ01_00/config.yml | 4 ++-- configure.py | 2 +- src/REL/m429Dll/main.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/config/GMPJ01_00/config.yml b/config/GMPJ01_00/config.yml index 253a517d..441f226f 100644 --- a/config/GMPJ01_00/config.yml +++ b/config/GMPJ01_00/config.yml @@ -184,8 +184,8 @@ modules: links: [] - object: files/dll/m429Dll.rel - symbols: config/GMPJ01_00/rels/m429Dll/symbols.txt - splits: config/GMPJ01_00/rels/m429Dll/splits.txt + symbols: config/GMPE01_00/rels/m429Dll/symbols.txt + splits: config/GMPE01_00/rels/m429Dll/splits.txt links: [] - object: files/dll/m430Dll.rel diff --git a/configure.py b/configure.py index 0a9f3eba..7cc762cb 100644 --- a/configure.py +++ b/configure.py @@ -1064,7 +1064,7 @@ config.libs = [ Rel( "m429Dll", # Team Treasure Trek objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m429Dll/main.c"), + Object(Matching, "REL/m429Dll/main.c"), }, ), Rel( diff --git a/src/REL/m429Dll/main.c b/src/REL/m429Dll/main.c index f48c989e..e37af222 100644 --- a/src/REL/m429Dll/main.c +++ b/src/REL/m429Dll/main.c @@ -2396,8 +2396,8 @@ void fn_1_B01C(void) temp_f31 = lbl_1_bss_98[lbl_1_bss_28].x - temp_r30->unk4.x; temp_f30 = lbl_1_bss_98[lbl_1_bss_28].z - temp_r30->unk4.z; temp_r30->unk64 = atan2d(temp_f31, temp_f30); - omVibrate(temp_r31->unk114, 2 * REFRESH_RATE, 6, 6); - omVibrate(temp_r30->unk114, 2 * REFRESH_RATE, 6, 6); + omVibrate(temp_r31->unk114, (VERSION_JP ? 3 : 2) * REFRESH_RATE, 6, 6); + omVibrate(temp_r30->unk114, (VERSION_JP ? 3 : 2) * REFRESH_RATE, 6, 6); } void fn_1_B754(float *arg0, float arg1, float arg2, s32 arg3) From 9c915a08fd2f76d10c4941877cbb0986281660ac Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 15 Dec 2024 22:35:14 +0100 Subject: [PATCH 200/311] Port ztardll to JP --- config/GMPJ01_00/rels/ztardll/splits.txt | 20 ++ config/GMPJ01_00/rels/ztardll/symbols.txt | 416 +++++++++++----------- configure.py | 6 +- src/REL/ztardll/font.c | 34 +- src/REL/ztardll/main.c | 31 +- src/REL/ztardll/select.c | 21 ++ 6 files changed, 309 insertions(+), 219 deletions(-) diff --git a/config/GMPJ01_00/rels/ztardll/splits.txt b/config/GMPJ01_00/rels/ztardll/splits.txt index 531cd645..9d81d15d 100644 --- a/config/GMPJ01_00/rels/ztardll/splits.txt +++ b/config/GMPJ01_00/rels/ztardll/splits.txt @@ -5,3 +5,23 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/ztardll/main.c: + .text start:0x000000A0 end:0x00007820 + .rodata start:0x00000000 end:0x000001B8 + .data start:0x00000000 end:0x000000B0 + .bss start:0x00000000 end:0x00000070 + +REL/ztardll/font.c: + .text start:0x00007820 end:0x00007C9C + .rodata start:0x000001B8 end:0x000001C0 + .data start:0x000000B0 end:0x00000578 + +REL/ztardll/select.c: + .text start:0x00007C9C end:0x00012358 + .rodata start:0x000001C0 end:0x00000298 + .data start:0x00000578 end:0x00000824 + .bss start:0x00000070 end:0x000002D8 diff --git a/config/GMPJ01_00/rels/ztardll/symbols.txt b/config/GMPJ01_00/rels/ztardll/symbols.txt index 7e87352c..f9516f21 100644 --- a/config/GMPJ01_00/rels/ztardll/symbols.txt +++ b/config/GMPJ01_00/rels/ztardll/symbols.txt @@ -1,6 +1,6 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x384 +ObjectSetup = .text:0x000000A0; // type:function size:0x384 fn_1_424 = .text:0x00000424; // type:function size:0x1350 fn_1_1774 = .text:0x00001774; // type:function size:0x57C fn_1_1CF0 = .text:0x00001CF0; // type:function size:0xB0 @@ -11,197 +11,197 @@ fn_1_40E4 = .text:0x000040E4; // type:function size:0x290 fn_1_4374 = .text:0x00004374; // type:function size:0x5D4 fn_1_4948 = .text:0x00004948; // type:function size:0x874 fn_1_51BC = .text:0x000051BC; // type:function size:0x15C -fn_1_5318 = .text:0x00005318; // type:function size:0x14AC -fn_1_67C4 = .text:0x000067C4; // type:function size:0x10C -fn_1_68D0 = .text:0x000068D0; // type:function size:0xC10 -fn_1_74E0 = .text:0x000074E0; // type:function size:0x340 -fn_1_7820 = .text:0x00007820; // type:function size:0x47C -fn_1_7C9C = .text:0x00007C9C; // type:function size:0x16C -fn_1_7E08 = .text:0x00007E08; // type:function size:0xA0 -fn_1_7EA8 = .text:0x00007EA8; // type:function size:0x224 -fn_1_80CC = .text:0x000080CC; // type:function size:0x2DC -fn_1_83A8 = .text:0x000083A8; // type:function size:0x2C -fn_1_83D4 = .text:0x000083D4; // type:function size:0x518 -fn_1_88EC = .text:0x000088EC; // type:function size:0x2C -fn_1_8918 = .text:0x00008918; // type:function size:0x28 -fn_1_8940 = .text:0x00008940; // type:function size:0x274 -fn_1_8BB4 = .text:0x00008BB4; // type:function size:0x2C -fn_1_8BE0 = .text:0x00008BE0; // type:function size:0x2C -fn_1_8C0C = .text:0x00008C0C; // type:function size:0x24 -fn_1_8C30 = .text:0x00008C30; // type:function size:0x2BC -fn_1_8EEC = .text:0x00008EEC; // type:function size:0x500 -fn_1_93EC = .text:0x000093EC; // type:function size:0x480 -fn_1_986C = .text:0x0000986C; // type:function size:0x80C -fn_1_A078 = .text:0x0000A078; // type:function size:0x28 -fn_1_A0A0 = .text:0x0000A0A0; // type:function size:0x28 -fn_1_A0C8 = .text:0x0000A0C8; // type:function size:0x21C -fn_1_A2E4 = .text:0x0000A2E4; // type:function size:0x194 -fn_1_A478 = .text:0x0000A478; // type:function size:0x198 -fn_1_A610 = .text:0x0000A610; // type:function size:0x9C -fn_1_A6AC = .text:0x0000A6AC; // type:function size:0x2D8 -fn_1_A984 = .text:0x0000A984; // type:function size:0x2DC -fn_1_AC60 = .text:0x0000AC60; // type:function size:0x1E0 -fn_1_AE40 = .text:0x0000AE40; // type:function size:0xF0 -fn_1_AF30 = .text:0x0000AF30; // type:function size:0x50 -fn_1_AF80 = .text:0x0000AF80; // type:function size:0x584 -fn_1_B504 = .text:0x0000B504; // type:function size:0x5D8 -fn_1_BADC = .text:0x0000BADC; // type:function size:0x33C -fn_1_BE18 = .text:0x0000BE18; // type:function size:0x274 -fn_1_C08C = .text:0x0000C08C; // type:function size:0x7C -fn_1_C108 = .text:0x0000C108; // type:function size:0x44C -fn_1_C554 = .text:0x0000C554; // type:function size:0x434 -fn_1_C988 = .text:0x0000C988; // type:function size:0x204 -fn_1_CB8C = .text:0x0000CB8C; // type:function size:0x790 -fn_1_D31C = .text:0x0000D31C; // type:function size:0xB0C -fn_1_DE28 = .text:0x0000DE28; // type:function size:0x720 -fn_1_E548 = .text:0x0000E548; // type:function size:0x9C -fn_1_E5E4 = .text:0x0000E5E4; // type:function size:0xCCC -fn_1_F2B0 = .text:0x0000F2B0; // type:function size:0x924 -fn_1_FBD4 = .text:0x0000FBD4; // type:function size:0x258 -fn_1_FE2C = .text:0x0000FE2C; // type:function size:0x958 -fn_1_10784 = .text:0x00010784; // type:function size:0x7C -fn_1_10800 = .text:0x00010800; // type:function size:0x164 -fn_1_10964 = .text:0x00010964; // type:function size:0x1B8 -fn_1_10B1C = .text:0x00010B1C; // type:function size:0xA4 -fn_1_10BC0 = .text:0x00010BC0; // type:function size:0xF4 -fn_1_10CB4 = .text:0x00010CB4; // type:function size:0x80 -fn_1_10D34 = .text:0x00010D34; // type:function size:0x80 -fn_1_10DB4 = .text:0x00010DB4; // type:function size:0x28 -fn_1_10DDC = .text:0x00010DDC; // type:function size:0x20 -fn_1_10DFC = .text:0x00010DFC; // type:function size:0xD8 -fn_1_10ED4 = .text:0x00010ED4; // type:function size:0xC8 -fn_1_10F9C = .text:0x00010F9C; // type:function size:0xBC -fn_1_11058 = .text:0x00011058; // type:function size:0x40 -fn_1_11098 = .text:0x00011098; // type:function size:0x24 -fn_1_110BC = .text:0x000110BC; // type:function size:0x1C0 -fn_1_1127C = .text:0x0001127C; // type:function size:0x84 -fn_1_11300 = .text:0x00011300; // type:function size:0xD4 -fn_1_113D4 = .text:0x000113D4; // type:function size:0x58 -fn_1_1142C = .text:0x0001142C; // type:function size:0x15C -fn_1_11588 = .text:0x00011588; // type:function size:0x1C4 -fn_1_1174C = .text:0x0001174C; // type:function size:0x1AC -fn_1_118F8 = .text:0x000118F8; // type:function size:0x54 -fn_1_1194C = .text:0x0001194C; // type:function size:0x304 -fn_1_11C50 = .text:0x00011C50; // type:function size:0x304 -fn_1_11F54 = .text:0x00011F54; // type:function size:0x340 -fn_1_12294 = .text:0x00012294; // type:function size:0xC4 +fn_1_524C = .text:0x00005318; // type:function size:0x14AC +fn_1_66F8 = .text:0x000067C4; // type:function size:0x10C +fn_1_6804 = .text:0x000068D0; // type:function size:0xC10 +fn_1_7414 = .text:0x000074E0; // type:function size:0x340 +fn_1_7754 = .text:0x00007820; // type:function size:0x47C +fn_1_7C00 = .text:0x00007C9C; // type:function size:0x16C +fn_1_7D6C = .text:0x00007E08; // type:function size:0xA0 +fn_1_7E0C = .text:0x00007EA8; // type:function size:0x224 +fn_1_8030 = .text:0x000080CC; // type:function size:0x2DC +fn_1_830C = .text:0x000083A8; // type:function size:0x2C +fn_1_8338 = .text:0x000083D4; // type:function size:0x518 +fn_1_8850 = .text:0x000088EC; // type:function size:0x2C +fn_1_887C = .text:0x00008918; // type:function size:0x28 +fn_1_88A4 = .text:0x00008940; // type:function size:0x274 +fn_1_8B18 = .text:0x00008BB4; // type:function size:0x2C +fn_1_8B44 = .text:0x00008BE0; // type:function size:0x2C +fn_1_8B70 = .text:0x00008C0C; // type:function size:0x24 +fn_1_8B94 = .text:0x00008C30; // type:function size:0x2BC +fn_1_8E50 = .text:0x00008EEC; // type:function size:0x500 +fn_1_9350 = .text:0x000093EC; // type:function size:0x480 +fn_1_97D0 = .text:0x0000986C; // type:function size:0x80C +fn_1_9FDC = .text:0x0000A078; // type:function size:0x28 +fn_1_A004 = .text:0x0000A0A0; // type:function size:0x28 +fn_1_A02C = .text:0x0000A0C8; // type:function size:0x21C +fn_1_A248 = .text:0x0000A2E4; // type:function size:0x194 +fn_1_A3DC = .text:0x0000A478; // type:function size:0x198 +fn_1_A574 = .text:0x0000A610; // type:function size:0x9C +fn_1_A610 = .text:0x0000A6AC; // type:function size:0x2D8 +fn_1_A8E8 = .text:0x0000A984; // type:function size:0x2DC +fn_1_ABC4 = .text:0x0000AC60; // type:function size:0x1E0 +fn_1_ADA4 = .text:0x0000AE40; // type:function size:0xF0 +fn_1_AE94 = .text:0x0000AF30; // type:function size:0x50 +fn_1_AEE4 = .text:0x0000AF80; // type:function size:0x584 +fn_1_B468 = .text:0x0000B504; // type:function size:0x5D8 +fn_1_BA40 = .text:0x0000BADC; // type:function size:0x33C +fn_1_BD7C = .text:0x0000BE18; // type:function size:0x274 +fn_1_BFF0 = .text:0x0000C08C; // type:function size:0x7C +fn_1_C06C = .text:0x0000C108; // type:function size:0x44C +fn_1_C4B8 = .text:0x0000C554; // type:function size:0x434 +fn_1_C8EC = .text:0x0000C988; // type:function size:0x204 +fn_1_CAF0 = .text:0x0000CB8C; // type:function size:0x790 +fn_1_D280 = .text:0x0000D31C; // type:function size:0xB0C +fn_1_DD8C = .text:0x0000DE28; // type:function size:0x720 +fn_1_E4AC = .text:0x0000E548; // type:function size:0x9C +fn_1_E548 = .text:0x0000E5E4; // type:function size:0xCCC +fn_1_F214 = .text:0x0000F2B0; // type:function size:0x924 +fn_1_FB38 = .text:0x0000FBD4; // type:function size:0x258 +fn_1_FD90 = .text:0x0000FE2C; // type:function size:0x958 +fn_1_106E8 = .text:0x00010784; // type:function size:0x7C +fn_1_10764 = .text:0x00010800; // type:function size:0x164 +fn_1_108C8 = .text:0x00010964; // type:function size:0x1B8 +fn_1_10A80 = .text:0x00010B1C; // type:function size:0xA4 +fn_1_10B24 = .text:0x00010BC0; // type:function size:0xF4 +fn_1_10C18 = .text:0x00010CB4; // type:function size:0x80 +fn_1_10C98 = .text:0x00010D34; // type:function size:0x80 +fn_1_10D18 = .text:0x00010DB4; // type:function size:0x28 +fn_1_10D40 = .text:0x00010DDC; // type:function size:0x20 +fn_1_10D60 = .text:0x00010DFC; // type:function size:0xD8 +fn_1_10E38 = .text:0x00010ED4; // type:function size:0xC8 +fn_1_10F00 = .text:0x00010F9C; // type:function size:0xBC +fn_1_10FBC = .text:0x00011058; // type:function size:0x40 +fn_1_10FFC = .text:0x00011098; // type:function size:0x24 +fn_1_11020 = .text:0x000110BC; // type:function size:0x1C0 +fn_1_111E0 = .text:0x0001127C; // type:function size:0x84 +fn_1_11264 = .text:0x00011300; // type:function size:0xD4 +fn_1_11338 = .text:0x000113D4; // type:function size:0x58 +fn_1_11390 = .text:0x0001142C; // type:function size:0x15C +fn_1_114EC = .text:0x00011588; // type:function size:0x1C4 +fn_1_11708 = .text:0x0001174C; // type:function size:0x1AC +fn_1_1190C = .text:0x000118F8; // type:function size:0x54 +fn_1_11960 = .text:0x0001194C; // type:function size:0x304 +fn_1_11C64 = .text:0x00011C50; // type:function size:0x304 +fn_1_11F68 = .text:0x00011F54; // type:function size:0x340 +fn_1_122A8 = .text:0x00012294; // type:function size:0xC4 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x38 data:4byte -lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 data:string -lbl_1_data_22 = .data:0x00000022; // type:object size:0xA +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x38 scope:local data:4byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 scope:local data:string +lbl_1_data_22 = .data:0x00000022; // type:object size:0x8 lbl_1_data_2C = .data:0x0000002C; // type:object size:0x18 lbl_1_data_44 = .data:0x00000044; // type:object size:0x6 lbl_1_data_4A = .data:0x0000004A; // type:object size:0xC @@ -209,25 +209,25 @@ lbl_1_data_56 = .data:0x00000056; // type:object size:0xE data:wstring lbl_1_data_64 = .data:0x00000064; // type:object size:0x20 lbl_1_data_84 = .data:0x00000084; // type:object size:0x10 lbl_1_data_94 = .data:0x00000094; // type:object size:0xC -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA data:string -lbl_1_data_AA = .data:0x000000AA; // type:object size:0x6 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA scope:local data:string +lbl_1_data_AA = .data:0x000000AA; // type:object size:0x6 scope:local lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x4C8 -lbl_1_data_578 = .data:0x00000578; // type:object size:0x20 -lbl_1_data_598 = .data:0x00000598; // type:object size:0x20 -lbl_1_data_5B8 = .data:0x000005B8; // type:object size:0x3C data:string -lbl_1_data_5F4 = .data:0x000005F4; // type:object size:0x19 data:string -lbl_1_data_60D = .data:0x0000060D; // type:object size:0x1A data:string -lbl_1_data_627 = .data:0x00000627; // type:object size:0x3D -lbl_1_data_664 = .data:0x00000664; // type:object size:0x20 data:4byte -lbl_1_data_684 = .data:0x00000684; // type:object size:0x40 data:4byte -lbl_1_data_6C4 = .data:0x000006C4; // type:object size:0x70 -lbl_1_data_734 = .data:0x00000734; // type:object size:0x90 data:4byte -lbl_1_data_7C4 = .data:0x000007C4; // type:object size:0x20 -lbl_1_data_7E4 = .data:0x000007E4; // type:object size:0x8 data:4byte -lbl_1_data_7EC = .data:0x000007EC; // type:object size:0x10 -lbl_1_data_7FC = .data:0x000007FC; // type:object size:0x20 -lbl_1_data_81C = .data:0x0000081C; // type:object size:0x4 data:4byte -lbl_1_data_820 = .data:0x00000820; // type:object size:0x4 data:4byte +lbl_1_data_3C8 = .data:0x00000578; // type:object size:0x20 +lbl_1_data_3E8 = .data:0x00000598; // type:object size:0x20 +lbl_1_data_5B8 = .data:0x000005B8; // type:object size:0x3C scope:local data:string +lbl_1_data_5F4 = .data:0x000005F4; // type:object size:0x19 scope:local data:string +lbl_1_data_60D = .data:0x0000060D; // type:object size:0x1A scope:local data:string +lbl_1_data_627 = .data:0x00000627; // type:object size:0x3A scope:local data:string +lbl_1_data_4B4 = .data:0x00000664; // type:object size:0x20 data:4byte +lbl_1_data_4D4 = .data:0x00000684; // type:object size:0x40 data:4byte +lbl_1_data_514 = .data:0x000006C4; // type:object size:0x70 +lbl_1_data_584 = .data:0x00000734; // type:object size:0x90 data:4byte +lbl_1_data_614 = .data:0x000007C4; // type:object size:0x20 +lbl_1_data_634 = .data:0x000007E4; // type:object size:0x8 data:4byte +lbl_1_data_63C = .data:0x000007EC; // type:object size:0x10 +lbl_1_data_64C = .data:0x000007FC; // type:object size:0x20 +lbl_1_data_66C = .data:0x0000081C; // type:object size:0x4 data:4byte +lbl_1_data_670 = .data:0x00000820; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte diff --git a/configure.py b/configure.py index 7cc762cb..2cde7dff 100644 --- a/configure.py +++ b/configure.py @@ -1540,9 +1540,9 @@ config.libs = [ Rel( "ztardll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/ztardll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/ztardll/font.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/ztardll/select.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/ztardll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/ztardll/font.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/ztardll/select.c"), }, ), ] diff --git a/src/REL/ztardll/font.c b/src/REL/ztardll/font.c index fe081d17..9ee3d56c 100644 --- a/src/REL/ztardll/font.c +++ b/src/REL/ztardll/font.c @@ -1,8 +1,9 @@ -#include "game/sprite.h" #include "game/minigame_seq.h" +#include "game/sprite.h" #include "REL/ztardll.h" +#if VERSION_ENG s32 lbl_1_data_B0[0xC6] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x01), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x02), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x03), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x04), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x05), @@ -54,6 +55,33 @@ s32 lbl_1_data_B0[0xC6] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0B), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0C), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00) }; +#elif VERSION_PAL + +#else +s32 lbl_1_data_B0[0x132] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0x00150000, 0x00150001, 0x00150002, 0x00150003, 0x00150004, 0x00150005, 0x00150006, 0x00150007, 0x00150008, 0x00150009, + 0x0013000A, 0x0013000A, 0x0013000A, 0x0015000A, 0x0013000A, 0x0013000A, 0x0013000A, 0x00130014, 0x00130015, 0x00130016, 0x00130017, 0x00130018, + 0x00130019, 0x001500AE, 0x0013001B, 0x0013001C, 0x0013001D, 0x0013001E, 0x0013001F, 0x00130020, 0x00130021, 0x001500AF, 0x00130023, 0x00130024, + 0x00130025, 0x00130026, 0x00130027, 0x00130028, 0x00130029, 0x0013002A, 0x0013002B, 0x0013002C, 0x0013002D, 0x00130022, 0x00130022, 0x00130022, + 0x00130022, 0x00130022, 0x00130022, 0x0013002E, 0x0013002F, 0x00130030, 0x00130031, 0x00130032, 0x00130033, 0x00130034, 0x00130035, 0x00130036, + 0x00130037, 0x00130038, 0x00130039, 0x0013003A, 0x0013003B, 0x0013003C, 0x0013003D, 0x0013003E, 0x0013003F, 0x00130040, 0x00130041, 0x00130042, + 0x00130043, 0x00130044, 0x00130045, 0x00130046, 0x00130047, 0x0013000A, 0x0013000A, 0x0013000A, 0x0013000A, 0x0013000A, 0x0013000A, 0x0013000A, + 0x0013000A, 0x0013000A, 0x0015000A, 0x0013000A, 0x0015008A, 0x0015008C, 0x0015008D, 0x0015008E, 0x0015008F, 0x00150090, 0x00150091, 0x00150092, + 0x00150093, 0x00150094, 0x0013000A, 0x0015005E, 0x0015005F, 0x00150060, 0x00150061, 0x00150062, 0x00150063, 0x00150064, 0x00150065, 0x00150066, + 0x00150067, 0x00150068, 0x00150069, 0x0015006A, 0x0015006B, 0x0015006C, 0x0015006D, 0x0015006E, 0x0015006F, 0x00150070, 0x00150071, 0x00150072, + 0x00150073, 0x00150074, 0x00150075, 0x00150076, 0x00150077, 0x00150078, 0x00150079, 0x0015007A, 0x0015007B, 0x0015007C, 0x0015007D, 0x0015007E, + 0x0015007F, 0x00150080, 0x00150081, 0x00150082, 0x00150083, 0x00150084, 0x00150085, 0x00150086, 0x00150087, 0x00150088, 0x00150089, 0x0015008B, + 0x0013000A, 0x0013000A, 0x0013000A, 0x0013000A, 0x0015000B, 0x0015000C, 0x0013000A, 0x0013000A, 0x0015003A, 0x0015003C, 0x0015003D, 0x0015003E, + 0x0015003F, 0x00150040, 0x00150041, 0x00150042, 0x00150043, 0x00150044, 0x0013000A, 0x0015000E, 0x0015000F, 0x00150010, 0x00150011, 0x00150012, + 0x00150013, 0x00150014, 0x00150015, 0x00150016, 0x00150017, 0x00150018, 0x00150019, 0x0015001A, 0x0015001B, 0x0015001C, 0x0015001D, 0x0015001E, + 0x0015001F, 0x00150020, 0x00150021, 0x00150022, 0x00150023, 0x00150024, 0x00150025, 0x00150026, 0x00150027, 0x00150028, 0x00150029, 0x0015002A, + 0x0015002B, 0x0015002C, 0x0015002D, 0x0015002E, 0x0015002F, 0x00150030, 0x00150031, 0x00150032, 0x00150033, 0x00150034, 0x00150035, 0x00150036, + 0x00150037, 0x00150038, 0x00150039, 0x0015003B, 0x0013000A, 0x0013000A, 0x00150095, 0x00150096, 0x00150097, 0x00150098, 0x00150099, 0x0015009A, + 0x0015009B, 0x0015009C, 0x0015009D, 0x0015009E, 0x0015009F, 0x001500A0, 0x001500A1, 0x001500A2, 0x001500A3, 0x001500A4, 0x001500A5, 0x001500A6, + 0x001500A7, 0x001500A8, 0x001500A9, 0x001500AA, 0x001500AB, 0x001500AC, 0x001500AD, 0x00150045, 0x00150046, 0x00150047, 0x00150048, 0x00150049, + 0x0015004A, 0x0015004B, 0x0015004C, 0x0015004D, 0x0015004E, 0x0015004F, 0x00150050, 0x00150051, 0x00150052, 0x00150053, 0x00150054, 0x00150055, + 0x00150056, 0x00150057, 0x00150058, 0x00150059, 0x0015005A, 0x0015005B, 0x0015005C, 0x0015005D }; +#endif s32 fn_1_7754(SeqWork *work, char *mess) { @@ -84,7 +112,7 @@ s32 fn_1_7754(SeqWork *work, char *mess) var_r29 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); for (var_r31 = mess, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) { if (var_r31[0] == 0x20 || var_r31[0] == 0x10) { - var_r30 += 0xE; + var_r30 += VERSION_JP ? 0x1C : 0xE; } else if (var_r31[0] < 0x30) { } @@ -140,10 +168,12 @@ s32 fn_1_7754(SeqWork *work, char *mess) var_r29[var_r28] = 4; var_r30 += 0x18; } +#if !VERSION_JP else if ((var_r31[0] == 0x3D) || (var_r31[0] == 0x84)) { var_r29[var_r28] = 0; var_r30 += 0x14; } +#endif else { var_r29[var_r28] = 0; var_r30 += 0x1C; diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c index 0c0b8ce0..462a3d62 100644 --- a/src/REL/ztardll/main.c +++ b/src/REL/ztardll/main.c @@ -763,7 +763,7 @@ void fn_1_33B0(void) var_r30 = HuSprCreate(var_r29, 0x64, mgBattleStarMax + 1); } HuSprGrpMemberSet(lbl_1_bss_50, 1, var_r30); - HuSprPosSet(lbl_1_bss_50, 1, 342.0f, 80.0f); + HuSprPosSet(lbl_1_bss_50, 1, VERSION_JP ? 234.0f : 342.0f, 80.0f); HuSprScaleSet(lbl_1_bss_50, 1, 0.0f, 0.0f); HuSprGrpDrawNoSet(lbl_1_bss_50, 0x7F); var_r29 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_ZTAR, 9)); @@ -1096,17 +1096,36 @@ void fn_1_4948(void) void fn_1_51BC(s16 arg0) { - omOvlHisData *var_r31; + s16 var_r31; + omOvlHisData *var_r30; + u32 var_r29; WipeColorSet(0xFF, 0xFF, 0xFF); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); HuAudSeqAllFadeOut(0x3E8); - while (WipeStatGet() != 0) { HuPrcVSleep(); } - var_r31 = omOvlHisGet(0); - omOvlHisChg(0, OVL_ZTAR, arg0, var_r31->stat); +#if VERSION_JP + if ((GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8)) { + msmMusStopAll(1, 0); + msmSeStopAll(1, 0); + var_r29 = OSGetTick(); + while (TRUE) { + if ((msmMusGetNumPlay(1) != 0) || (msmSeGetNumPlay(1) != 0)) { + if (((OSGetTick() - var_r29) / (*((u32 *)0x800000F8) / 4 / 1000)) >= 0x1F4) { + break; + } + } + else { + break; + } + } + msmSysDelGroupBase(0); + } +#endif + var_r30 = omOvlHisGet(0); + omOvlHisChg(0, OVL_ZTAR, arg0, var_r30->stat); omOvlCallEx(OVL_M433, 1, 0, 0); while (TRUE) { HuPrcVSleep(); diff --git a/src/REL/ztardll/select.c b/src/REL/ztardll/select.c index b092f9b5..e8de9216 100644 --- a/src/REL/ztardll/select.c +++ b/src/REL/ztardll/select.c @@ -3028,6 +3028,12 @@ void fn_1_114EC(u32 arg0, s32 arg1) s32 var_r29; s32 var_r28; +#if VERSION_JP + if (lbl_1_data_670 != -1) { + HuWinMesSet(lbl_1_data_670, arg0); + return; + } +#endif HuWinMesMaxSizeGet(1, spC, arg0); var_r29 = spC[0]; var_r31 = spC[1]; @@ -3038,6 +3044,9 @@ void fn_1_114EC(u32 arg0, s32 arg1) else { var_r30 = 0x181 - var_r31; } +#if VERSION_JP + lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r30, var_r29, var_r31, -1, 1); +#else if (lbl_1_data_670 != -1) { fn_1_1190C(); lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r30, var_r29, var_r31, -1, 1); @@ -3045,6 +3054,7 @@ void fn_1_114EC(u32 arg0, s32 arg1) else { lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r30, var_r29, var_r31, -1, 1); } +#endif HuWinBGTPLvlSet(lbl_1_data_670, 0.0f); HuWinDispOn(lbl_1_data_670); HuWinMesSet(lbl_1_data_670, arg0); @@ -3059,11 +3069,21 @@ void fn_1_11708(u32 arg0) s32 var_r29; s32 var_r28; +#if VERSION_JP + if (lbl_1_data_670 != -1) { + HuWinMesSet(lbl_1_data_670, arg0); + return; + } +#endif HuWinMesMaxSizeGet(1, sp8, arg0); var_r30 = sp8[0]; var_r31 = sp8[1]; var_r28 = (0x240 - var_r30) / 2.0f; var_r29 = 0x181 - var_r31; +#if VERSION_JP + lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r29, var_r30, var_r31, -1, 1); + (void)var_r29; +#else if (lbl_1_data_670 != -1) { fn_1_1190C(); lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r29, var_r30, var_r31, -1, 1); @@ -3071,6 +3091,7 @@ void fn_1_11708(u32 arg0) else { lbl_1_data_670 = HuWinExCreateStyled(var_r28, var_r29, var_r30, var_r31, -1, 1); } +#endif HuWinBGTPLvlSet(lbl_1_data_670, 0.0f); HuWinDispOn(lbl_1_data_670); HuWinMesSet(lbl_1_data_670, arg0); From 55901c10203725994ff5e9bfc17229aea16abb78 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 15 Dec 2024 23:14:45 +0100 Subject: [PATCH 201/311] Port ztardll to PAL --- config/GMPP01_00/rels/ztardll/symbols.txt | 415 +++++++++++----------- configure.py | 6 +- src/REL/ztardll/font.c | 70 +++- src/REL/ztardll/main.c | 17 +- 4 files changed, 294 insertions(+), 214 deletions(-) diff --git a/config/GMPP01_00/rels/ztardll/symbols.txt b/config/GMPP01_00/rels/ztardll/symbols.txt index acceedbe..3ccb8483 100644 --- a/config/GMPP01_00/rels/ztardll/symbols.txt +++ b/config/GMPP01_00/rels/ztardll/symbols.txt @@ -11,197 +11,197 @@ fn_1_40E4 = .text:0x000040E4; // type:function size:0x290 fn_1_4374 = .text:0x00004374; // type:function size:0x5D4 fn_1_4948 = .text:0x00004948; // type:function size:0x874 fn_1_51BC = .text:0x000051BC; // type:function size:0x194 -fn_1_5350 = .text:0x00005350; // type:function size:0x14BC -fn_1_680C = .text:0x0000680C; // type:function size:0x140 -fn_1_694C = .text:0x0000694C; // type:function size:0xC10 -fn_1_755C = .text:0x0000755C; // type:function size:0x340 -fn_1_789C = .text:0x0000789C; // type:function size:0x3A4 -fn_1_7C40 = .text:0x00007C40; // type:function size:0x16C -fn_1_7DAC = .text:0x00007DAC; // type:function size:0xA0 -fn_1_7E4C = .text:0x00007E4C; // type:function size:0x224 -fn_1_8070 = .text:0x00008070; // type:function size:0x2DC -fn_1_834C = .text:0x0000834C; // type:function size:0x2C -fn_1_8378 = .text:0x00008378; // type:function size:0x518 -fn_1_8890 = .text:0x00008890; // type:function size:0x2C -fn_1_88BC = .text:0x000088BC; // type:function size:0x28 -fn_1_88E4 = .text:0x000088E4; // type:function size:0x274 -fn_1_8B58 = .text:0x00008B58; // type:function size:0x2C -fn_1_8B84 = .text:0x00008B84; // type:function size:0x2C -fn_1_8BB0 = .text:0x00008BB0; // type:function size:0x24 -fn_1_8BD4 = .text:0x00008BD4; // type:function size:0x2BC -fn_1_8E90 = .text:0x00008E90; // type:function size:0x500 -fn_1_9390 = .text:0x00009390; // type:function size:0x480 -fn_1_9810 = .text:0x00009810; // type:function size:0x80C -fn_1_A01C = .text:0x0000A01C; // type:function size:0x28 -fn_1_A044 = .text:0x0000A044; // type:function size:0x28 -fn_1_A06C = .text:0x0000A06C; // type:function size:0x21C -fn_1_A288 = .text:0x0000A288; // type:function size:0x194 -fn_1_A41C = .text:0x0000A41C; // type:function size:0x198 -fn_1_A5B4 = .text:0x0000A5B4; // type:function size:0x9C -fn_1_A650 = .text:0x0000A650; // type:function size:0x2D8 -fn_1_A928 = .text:0x0000A928; // type:function size:0x2DC -fn_1_AC04 = .text:0x0000AC04; // type:function size:0x1E0 -fn_1_ADE4 = .text:0x0000ADE4; // type:function size:0xF0 -fn_1_AED4 = .text:0x0000AED4; // type:function size:0x50 -fn_1_AF24 = .text:0x0000AF24; // type:function size:0x584 -fn_1_B4A8 = .text:0x0000B4A8; // type:function size:0x5D8 -fn_1_BA80 = .text:0x0000BA80; // type:function size:0x33C -fn_1_BDBC = .text:0x0000BDBC; // type:function size:0x274 -fn_1_C030 = .text:0x0000C030; // type:function size:0x7C -fn_1_C0AC = .text:0x0000C0AC; // type:function size:0x44C -fn_1_C4F8 = .text:0x0000C4F8; // type:function size:0x434 -fn_1_C92C = .text:0x0000C92C; // type:function size:0x204 -fn_1_CB30 = .text:0x0000CB30; // type:function size:0x790 -fn_1_D2C0 = .text:0x0000D2C0; // type:function size:0xB0C -fn_1_DDCC = .text:0x0000DDCC; // type:function size:0x720 -fn_1_E4EC = .text:0x0000E4EC; // type:function size:0x9C -fn_1_E588 = .text:0x0000E588; // type:function size:0xCCC -fn_1_F254 = .text:0x0000F254; // type:function size:0x924 -fn_1_FB78 = .text:0x0000FB78; // type:function size:0x258 -fn_1_FDD0 = .text:0x0000FDD0; // type:function size:0x958 -fn_1_10728 = .text:0x00010728; // type:function size:0x7C -fn_1_107A4 = .text:0x000107A4; // type:function size:0x164 -fn_1_10908 = .text:0x00010908; // type:function size:0x1B8 -fn_1_10AC0 = .text:0x00010AC0; // type:function size:0xA4 -fn_1_10B64 = .text:0x00010B64; // type:function size:0xF4 -fn_1_10C58 = .text:0x00010C58; // type:function size:0x80 -fn_1_10CD8 = .text:0x00010CD8; // type:function size:0x80 -fn_1_10D58 = .text:0x00010D58; // type:function size:0x28 -fn_1_10D80 = .text:0x00010D80; // type:function size:0x20 -fn_1_10DA0 = .text:0x00010DA0; // type:function size:0xD8 -fn_1_10E78 = .text:0x00010E78; // type:function size:0xC8 -fn_1_10F40 = .text:0x00010F40; // type:function size:0xBC -fn_1_10FFC = .text:0x00010FFC; // type:function size:0x40 -fn_1_1103C = .text:0x0001103C; // type:function size:0x24 -fn_1_11060 = .text:0x00011060; // type:function size:0x1C0 -fn_1_11220 = .text:0x00011220; // type:function size:0x84 -fn_1_112A4 = .text:0x000112A4; // type:function size:0xD4 -fn_1_11378 = .text:0x00011378; // type:function size:0x58 -fn_1_113D0 = .text:0x000113D0; // type:function size:0x15C -fn_1_1152C = .text:0x0001152C; // type:function size:0x21C -fn_1_11748 = .text:0x00011748; // type:function size:0x204 -fn_1_1194C = .text:0x0001194C; // type:function size:0x54 -fn_1_119A0 = .text:0x000119A0; // type:function size:0x304 -fn_1_11CA4 = .text:0x00011CA4; // type:function size:0x304 -fn_1_11FA8 = .text:0x00011FA8; // type:function size:0x340 -fn_1_122E8 = .text:0x000122E8; // type:function size:0xC4 +fn_1_524C = .text:0x00005350; // type:function size:0x14BC +fn_1_66F8 = .text:0x0000680C; // type:function size:0x140 +fn_1_6804 = .text:0x0000694C; // type:function size:0xC10 +fn_1_7414 = .text:0x0000755C; // type:function size:0x340 +fn_1_7754 = .text:0x0000789C; // type:function size:0x3A4 +fn_1_7C00 = .text:0x00007C40; // type:function size:0x16C +fn_1_7D6C = .text:0x00007DAC; // type:function size:0xA0 +fn_1_7E0C = .text:0x00007E4C; // type:function size:0x224 +fn_1_8030 = .text:0x00008070; // type:function size:0x2DC +fn_1_830C = .text:0x0000834C; // type:function size:0x2C +fn_1_8338 = .text:0x00008378; // type:function size:0x518 +fn_1_8850 = .text:0x00008890; // type:function size:0x2C +fn_1_887C = .text:0x000088BC; // type:function size:0x28 +fn_1_88A4 = .text:0x000088E4; // type:function size:0x274 +fn_1_8B18 = .text:0x00008B58; // type:function size:0x2C +fn_1_8B44 = .text:0x00008B84; // type:function size:0x2C +fn_1_8B70 = .text:0x00008BB0; // type:function size:0x24 +fn_1_8B94 = .text:0x00008BD4; // type:function size:0x2BC +fn_1_8E50 = .text:0x00008E90; // type:function size:0x500 +fn_1_9350 = .text:0x00009390; // type:function size:0x480 +fn_1_97D0 = .text:0x00009810; // type:function size:0x80C +fn_1_9FDC = .text:0x0000A01C; // type:function size:0x28 +fn_1_A004 = .text:0x0000A044; // type:function size:0x28 +fn_1_A02C = .text:0x0000A06C; // type:function size:0x21C +fn_1_A248 = .text:0x0000A288; // type:function size:0x194 +fn_1_A3DC = .text:0x0000A41C; // type:function size:0x198 +fn_1_A574 = .text:0x0000A5B4; // type:function size:0x9C +fn_1_A610 = .text:0x0000A650; // type:function size:0x2D8 +fn_1_A8E8 = .text:0x0000A928; // type:function size:0x2DC +fn_1_ABC4 = .text:0x0000AC04; // type:function size:0x1E0 +fn_1_ADA4 = .text:0x0000ADE4; // type:function size:0xF0 +fn_1_AE94 = .text:0x0000AED4; // type:function size:0x50 +fn_1_AEE4 = .text:0x0000AF24; // type:function size:0x584 +fn_1_B468 = .text:0x0000B4A8; // type:function size:0x5D8 +fn_1_BA40 = .text:0x0000BA80; // type:function size:0x33C +fn_1_BD7C = .text:0x0000BDBC; // type:function size:0x274 +fn_1_BFF0 = .text:0x0000C030; // type:function size:0x7C +fn_1_C06C = .text:0x0000C0AC; // type:function size:0x44C +fn_1_C4B8 = .text:0x0000C4F8; // type:function size:0x434 +fn_1_C8EC = .text:0x0000C92C; // type:function size:0x204 +fn_1_CAF0 = .text:0x0000CB30; // type:function size:0x790 +fn_1_D280 = .text:0x0000D2C0; // type:function size:0xB0C +fn_1_DD8C = .text:0x0000DDCC; // type:function size:0x720 +fn_1_E4AC = .text:0x0000E4EC; // type:function size:0x9C +fn_1_E548 = .text:0x0000E588; // type:function size:0xCCC +fn_1_F214 = .text:0x0000F254; // type:function size:0x924 +fn_1_FB38 = .text:0x0000FB78; // type:function size:0x258 +fn_1_FD90 = .text:0x0000FDD0; // type:function size:0x958 +fn_1_106E8 = .text:0x00010728; // type:function size:0x7C +fn_1_10764 = .text:0x000107A4; // type:function size:0x164 +fn_1_108C8 = .text:0x00010908; // type:function size:0x1B8 +fn_1_10A80 = .text:0x00010AC0; // type:function size:0xA4 +fn_1_10B24 = .text:0x00010B64; // type:function size:0xF4 +fn_1_10C18 = .text:0x00010C58; // type:function size:0x80 +fn_1_10C98 = .text:0x00010CD8; // type:function size:0x80 +fn_1_10D18 = .text:0x00010D58; // type:function size:0x28 +fn_1_10D40 = .text:0x00010D80; // type:function size:0x20 +fn_1_10D60 = .text:0x00010DA0; // type:function size:0xD8 +fn_1_10E38 = .text:0x00010E78; // type:function size:0xC8 +fn_1_10F00 = .text:0x00010F40; // type:function size:0xBC +fn_1_10FBC = .text:0x00010FFC; // type:function size:0x40 +fn_1_10FFC = .text:0x0001103C; // type:function size:0x24 +fn_1_11020 = .text:0x00011060; // type:function size:0x1C0 +fn_1_111E0 = .text:0x00011220; // type:function size:0x84 +fn_1_11264 = .text:0x000112A4; // type:function size:0xD4 +fn_1_11338 = .text:0x00011378; // type:function size:0x58 +fn_1_11390 = .text:0x000113D0; // type:function size:0x15C +fn_1_114EC = .text:0x0001152C; // type:function size:0x21C +fn_1_11708 = .text:0x00011748; // type:function size:0x204 +fn_1_1190C = .text:0x0001194C; // type:function size:0x54 +fn_1_11960 = .text:0x000119A0; // type:function size:0x304 +fn_1_11C64 = .text:0x00011CA4; // type:function size:0x304 +fn_1_11F68 = .text:0x00011FA8; // type:function size:0x340 +fn_1_122A8 = .text:0x000122E8; // type:function size:0xC4 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x38 data:4byte -lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 data:string +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x38 scope:local data:4byte +lbl_1_data_0 = .data:0x00000000; // type:object size:0x22 scope:local data:string lbl_1_data_22 = .data:0x00000022; // type:object size:0xA lbl_1_data_2C = .data:0x0000002C; // type:object size:0x18 lbl_1_data_44 = .data:0x00000044; // type:object size:0x6 @@ -210,25 +210,26 @@ lbl_1_data_56 = .data:0x00000056; // type:object size:0xE data:wstring lbl_1_data_64 = .data:0x00000064; // type:object size:0x20 lbl_1_data_84 = .data:0x00000084; // type:object size:0x10 lbl_1_data_94 = .data:0x00000094; // type:object size:0xC -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA data:string -lbl_1_data_AA = .data:0x000000AA; // type:object size:0x6 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xA scope:local data:string +lbl_1_data_AA = .data:0x000000AA; // type:object size:0x6 scope:local lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x4C0 -lbl_1_data_570 = .data:0x00000570; // type:object size:0x20 -lbl_1_data_590 = .data:0x00000590; // type:object size:0x20 -lbl_1_data_5B0 = .data:0x000005B0; // type:object size:0x3C data:string -lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x19 data:string -lbl_1_data_605 = .data:0x00000605; // type:object size:0x1A data:string -lbl_1_data_61F = .data:0x0000061F; // type:object size:0x3D -lbl_1_data_65C = .data:0x0000065C; // type:object size:0x20 data:4byte -lbl_1_data_67C = .data:0x0000067C; // type:object size:0x40 data:4byte -lbl_1_data_6BC = .data:0x000006BC; // type:object size:0x70 -lbl_1_data_72C = .data:0x0000072C; // type:object size:0x90 data:4byte -lbl_1_data_7BC = .data:0x000007BC; // type:object size:0x20 -lbl_1_data_7DC = .data:0x000007DC; // type:object size:0x8 data:4byte -lbl_1_data_7E4 = .data:0x000007E4; // type:object size:0x10 -lbl_1_data_7F4 = .data:0x000007F4; // type:object size:0x20 -lbl_1_data_814 = .data:0x00000814; // type:object size:0x4 data:4byte -lbl_1_data_818 = .data:0x00000818; // type:object size:0x4 data:4byte +lbl_1_data_3C8 = .data:0x00000570; // type:object size:0x20 +lbl_1_data_3E8 = .data:0x00000590; // type:object size:0x20 +lbl_1_data_5B0 = .data:0x000005B0; // type:object size:0x3C scope:local data:string +lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x19 scope:local data:string +lbl_1_data_605 = .data:0x00000605; // type:object size:0x1A scope:local data:string +lbl_1_data_61F = .data:0x0000061F; // type:object size:0x3D scope:local +lbl_1_data_4B4 = .data:0x0000065C; // type:object size:0x20 data:4byte +lbl_1_data_4D4 = .data:0x0000067C; // type:object size:0x40 data:4byte +lbl_1_data_514 = .data:0x000006BC; // type:object size:0x70 +lbl_1_data_584 = .data:0x0000072C; // type:object size:0x90 data:4byte +lbl_1_data_614 = .data:0x000007BC; // type:object size:0x20 +lbl_1_data_634 = .data:0x000007DC; // type:object size:0x8 data:4byte +lbl_1_data_63C = .data:0x000007E4; // type:object size:0x10 +lbl_1_data_64C = .data:0x000007F4; // type:object size:0x20 +lbl_1_data_66C = .data:0x00000814; // type:object size:0x4 data:4byte +lbl_1_data_670 = .data:0x00000818; // type:object size:0x4 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte diff --git a/configure.py b/configure.py index 2cde7dff..4e80312b 100644 --- a/configure.py +++ b/configure.py @@ -1540,9 +1540,9 @@ config.libs = [ Rel( "ztardll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/ztardll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/ztardll/font.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/ztardll/select.c"), + Object(Matching, "REL/ztardll/main.c"), + Object(Matching, "REL/ztardll/font.c"), + Object(Matching, "REL/ztardll/select.c"), }, ), ] diff --git a/src/REL/ztardll/font.c b/src/REL/ztardll/font.c index 9ee3d56c..8dbfe634 100644 --- a/src/REL/ztardll/font.c +++ b/src/REL/ztardll/font.c @@ -56,10 +56,32 @@ s32 lbl_1_data_B0[0xC6] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0B), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x0C), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00) }; #elif VERSION_PAL - +s32 lbl_1_data_B0[0x130] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0x00140025, 0x00140026, 0x00140027, 0x00140028, 0x00140029, 0x0014002A, 0x0014002B, 0x0014002C, 0x0014002D, 0x0014002E, + 0x00140025, 0x00140025, 0x00140025, 0x0014002F, 0x00140025, 0x00140025, 0x00140025, 0x00140035, 0x00140036, 0x00140037, 0x00140038, 0x00140039, + 0x0014003A, 0x0014003B, 0x0014003C, 0x0014003D, 0x0014003E, 0x0014003F, 0x00140040, 0x00140041, 0x00140042, 0x00140043, 0x00140044, 0x00140045, + 0x00140046, 0x00140047, 0x00140048, 0x00140049, 0x0014004A, 0x0014004B, 0x0014004C, 0x0014004D, 0x0014004E, 0x00140043, 0x00140032, 0x00140043, + 0x00140043, 0x00140043, 0x00140043, 0x0014004F, 0x00140050, 0x00140051, 0x00140052, 0x00140053, 0x00140054, 0x00140055, 0x00140056, 0x00140057, + 0x00140058, 0x00140059, 0x0014005A, 0x0014005B, 0x0014005C, 0x0014005D, 0x0014005E, 0x0014005F, 0x00140060, 0x00140061, 0x00140062, 0x00140063, + 0x00140064, 0x00140065, 0x00140066, 0x00140067, 0x00140068, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x0014002F, 0x00140033, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140069, 0x0014006A, 0x0014006B, 0x0014006C, 0x0014006D, 0x0014006E, 0x0014006F, 0x00140070, 0x00140071, + 0x00140072, 0x00140073, 0x00140074, 0x00140075, 0x00140076, 0x00140077, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140030, 0x00140031, 0x00140025, 0x00140025, 0x0014008F, 0x0014008E, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140078, 0x00140079, 0x0014007A, 0x0014007B, 0x0014007C, + 0x0014007D, 0x0014007E, 0x0014007F, 0x00140080, 0x00140081, 0x00140082, 0x00140083, 0x00140084, 0x00140085, 0x00140086, 0x00140087, 0x00140088, + 0x00140089, 0x0014008A, 0x0014008B, 0x0014008C, 0x0014008D, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, + 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025, 0x00140025 }; #else -s32 lbl_1_data_B0[0x132] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0x00150000, 0x00150001, 0x00150002, 0x00150003, 0x00150004, 0x00150005, 0x00150006, 0x00150007, 0x00150008, 0x00150009, +s32 lbl_1_data_B0[0x132] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0x00150000, 0x00150001, 0x00150002, 0x00150003, 0x00150004, 0x00150005, 0x00150006, 0x00150007, 0x00150008, 0x00150009, 0x0013000A, 0x0013000A, 0x0013000A, 0x0015000A, 0x0013000A, 0x0013000A, 0x0013000A, 0x00130014, 0x00130015, 0x00130016, 0x00130017, 0x00130018, 0x00130019, 0x001500AE, 0x0013001B, 0x0013001C, 0x0013001D, 0x0013001E, 0x0013001F, 0x00130020, 0x00130021, 0x001500AF, 0x00130023, 0x00130024, 0x00130025, 0x00130026, 0x00130027, 0x00130028, 0x00130029, 0x0013002A, 0x0013002B, 0x0013002C, 0x0013002D, 0x00130022, 0x00130022, 0x00130022, @@ -97,6 +119,7 @@ s32 fn_1_7754(SeqWork *work, char *mess) AnimData **var_r21; s16 var_r20; s16 var_r19; + s32 var_r19_2; var_r27 = lbl_1_data_B0; for (var_r25 = 0; var_r25 < 0x10; var_r25++) { @@ -114,6 +137,46 @@ s32 fn_1_7754(SeqWork *work, char *mess) if (var_r31[0] == 0x20 || var_r31[0] == 0x10) { var_r30 += VERSION_JP ? 0x1C : 0xE; } +#if VERSION_PAL + else if (*var_r31 >= 0x30) { + var_r19_2 = var_r27[*var_r31]; + var_r21[var_r28] = HuSprAnimReadFile(var_r19_2); + var_r22[var_r28] = var_r30; + if ((*var_r31 >= 0x61) && (*var_r31 <= 0x7A)) { + var_r29[var_r28] = 2; + var_r30 += 0x12; + } + else if ((*var_r31 == 0xC2) || (*var_r31 == 0xC3) || (*var_r31 == 0xC7)) { + var_r29[var_r28] = 0; + var_r30 += 0x12; + } + else if (*var_r31 == 0xC6) { + var_r29[var_r28] = 0; + var_r30 += 0x18; + } + else if (*var_r31 == 0x5C) { + var_r29[var_r28] = 0; + var_r30 += 8; + } + else if ((*var_r31 >= 0x90) && (*var_r31 <= 0x9F)) { + var_r29[var_r28] = -2; + var_r30 += 0x18; + } + else if ((*var_r31 >= 0xD0) && (*var_r31 <= 0xEF)) { + var_r29[var_r28] = -2; + var_r30 += 0x12; + } + else if ((*var_r31 == 0x3D) || (*var_r31 == 0x84)) { + var_r29[var_r28] = 0; + var_r30 += 0x14; + } + else { + var_r29[var_r28] = 0; + var_r30 += 0x1C; + } + var_r28++; + } +#else else if (var_r31[0] < 0x30) { } else if (var_r31[0] == 0x80) { @@ -180,6 +243,7 @@ s32 fn_1_7754(SeqWork *work, char *mess) } var_r28++; } +#endif } var_r20 = HuSprGrpCreate(var_r28); work->spr_grp[var_r25] = var_r20; diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c index 462a3d62..e1e91168 100644 --- a/src/REL/ztardll/main.c +++ b/src/REL/ztardll/main.c @@ -13,6 +13,8 @@ #include "REL/ztardll.h" +extern s32 charVoiceGroupStat[8]; + void fn_1_1774(void); void fn_1_1CF0(void); void fn_1_1DA0(void); @@ -1106,7 +1108,7 @@ void fn_1_51BC(s16 arg0) while (WipeStatGet() != 0) { HuPrcVSleep(); } -#if VERSION_JP +#if !VERSION_ENG if ((GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8) && (GWPlayerCfg->character >= 8)) { msmMusStopAll(1, 0); msmSeStopAll(1, 0); @@ -1122,6 +1124,11 @@ void fn_1_51BC(s16 arg0) } } msmSysDelGroupBase(0); +#if VERSION_PAL + for (var_r31 = 0; var_r31 < 8; var_r31++) { + charVoiceGroupStat[var_r31] = 0; + } +#endif } #endif var_r30 = omOvlHisGet(0); @@ -1258,6 +1265,9 @@ s32 fn_1_524C(s32 arg0) var_r22 = &winData[var_r24]; HuWinPriSet(var_r24, 5); HuWinPosSet(var_r24, (576.0f - var_r22->w) / 2, 300.0f); +#if VERSION_PAL + HuWinScaleSet(var_r24, 0.95f, 1.0f); +#endif HuWinAttrSet(var_r24, 0x800); var_r30 = 0; var_r23 = 0; @@ -1419,6 +1429,11 @@ void fn_1_66F8(void) for (var_r31 = 0; var_r31 < 4; var_r31++) { GWPlayerCfg[var_r31].character = -1; } +#if VERSION_PAL + for (var_r31 = 0; var_r31 < 8; var_r31++) { + charVoiceGroupStat[var_r31] = 0; + } +#endif mgPracticeEnableF = 0; omOvlReturnEx(1, 1); HuPrcEnd(); From 56f44900f051e3bc4315f2d5749b7ec6f250e68c Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 16 Dec 2024 02:52:42 +0100 Subject: [PATCH 202/311] Fix readme --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3415a3d7..88de0b1a 100644 --- a/README.md +++ b/README.md @@ -19,9 +19,9 @@ Supported versions: - `GMPE01_00`: Rev 0 (USA) - `GMPE01_01`: Rev 1 (USA) -- `GMPP01_00`, Rev 0 (PAL) -- `GMPP01_02`, REV 2 (PAL) -- `GMPJ01_00`, REV 0 (JP) +- `GMPP01_00`: Rev 0 (PAL) +- `GMPP01_02`: REV 2 (PAL) +- `GMPJ01_00`: REV 0 (JP) Dependencies ============ From 177c1957ccac923443ef3ac0c7f50cf8dbf6dbc9 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 16 Dec 2024 03:21:05 +0100 Subject: [PATCH 203/311] Split musyx function in PAL --- config/GMPP01_00/splits.txt | 87 ++++++++++++++++++++++++++++++++++++ config/GMPP01_00/symbols.txt | 54 +++++++++++----------- 2 files changed, 114 insertions(+), 27 deletions(-) diff --git a/config/GMPP01_00/splits.txt b/config/GMPP01_00/splits.txt index 3706997a..e1da1fa4 100644 --- a/config/GMPP01_00/splits.txt +++ b/config/GMPP01_00/splits.txt @@ -565,3 +565,90 @@ dolphin/os/OS.c: .data start:0x801588E8 end:0x80158AA8 .bss start:0x801C26A0 end:0x801C26F0 .sbss start:0x801F1668 end:0x801F1698 + +musyx/runtime/seq.c: + .text start:0x800F26B0 end:0x800F6620 + +musyx/runtime/synth.c: + .text start:0x800F6620 end:0x800F997C + +musyx/runtime/seq_api.c: + .text start:0x800F997C end:0x800F9BFC + +musyx/runtime/snd_synthapi.c: + .text start:0x800F9BFC end:0x800FA37C + +musyx/runtime/stream.c: + .text start:0x800FA37C end:0x800FDEE8 + +musyx/runtime/synthdata.c: + .text start:0x800FDEE8 end:0x800FFC78 + +musyx/runtime/synthmacros.c: + .text start:0x800FFC78 end:0x801049D0 + +musyx/runtime/synthvoice.c: + .text start:0x801049D0 end:0x80106460 + +musyx/runtime/synth_ac.c: + .text start:0x80106460 end:0x80106580 + +musyx/runtime/synth_adsr.c: + .text start:0x80106580 end:0x80106D40 + +musyx/runtime/synth_vsamples.c: + .text start:0x80106D40 end:0x801074C8 + +musyx/runtime/s_data.c: + .text start:0x801074C8 end:0x80108020 + +musyx/runtime/hw_dspctrl.c: + .text start:0x80108020 end:0x8010B434 + +musyx/runtime/hw_volconv.c: + .text start:0x8010B434 end:0x8010BB24 + +musyx/runtime/snd3d.c: + .text start:0x8010BB24 end:0x8010DEF4 + +musyx/runtime/snd_init.c: + .text start:0x8010DEF4 end:0x8010E048 + +musyx/runtime/snd_math.c: + .text start:0x8010E048 end:0x8010E408 + +musyx/runtime/snd_midictrl.c: + .text start:0x8010E408 end:0x801100DC + +musyx/runtime/snd_service.c: + .text start:0x801100DC end:0x80110288 + +musyx/runtime/hardware.c: + .text start:0x80110288 end:0x8011128C + +musyx/runtime/hw_aramdma.c: + .text start:0x8011128C end:0x80111F00 + +musyx/runtime/hw_dolphin.c: + .text start:0x80111F00 end:0x801123F8 + +musyx/runtime/hw_memory.c: + .text start:0x801123F8 end:0x8011244C + +musyx/runtime/CheapReverb/creverb_fx.c: + .text start:0x8011244C end:0x80112508 + +musyx/runtime/CheapReverb/creverb.c: + .text start:0x80112508 end:0x80112DC4 + +musyx/runtime/StdReverb/reverb_fx.c: + .text start:0x80112DC4 end:0x80112E84 + +musyx/runtime/StdReverb/reverb.c: + .text start:0x80112E84 end:0x80113BC8 + +musyx/runtime/Delay/delay_fx.c: + .text start:0x80113BC8 end:0x80113F74 + +musyx/runtime/Chorus/chorus_fx.c: + .text start:0x80113F74 end:0x801147DC diff --git a/config/GMPP01_00/symbols.txt b/config/GMPP01_00/symbols.txt index a679c466..b75f1161 100644 --- a/config/GMPP01_00/symbols.txt +++ b/config/GMPP01_00/symbols.txt @@ -3091,33 +3091,33 @@ fn_800F251C = .text:0x800F251C; // type:function size:0x10 fn_800F252C = .text:0x800F252C; // type:function size:0xC fn_800F2538 = .text:0x800F2538; // type:function size:0xBC fn_800F25F4 = .text:0x800F25F4; // type:function size:0xBC -fn_800F26B0 = .text:0x800F26B0; // type:function size:0x68 -fn_800F2718 = .text:0x800F2718; // type:function size:0xAC4 -fn_800F31DC = .text:0x800F31DC; // type:function size:0x64 -fn_800F3240 = .text:0x800F3240; // type:function size:0x27C -fn_800F34BC = .text:0x800F34BC; // type:function size:0x2B0 -fn_800F376C = .text:0x800F376C; // type:function size:0x90 -fn_800F37FC = .text:0x800F37FC; // type:function size:0xE4 -fn_800F38E0 = .text:0x800F38E0; // type:function size:0x108 -fn_800F39E8 = .text:0x800F39E8; // type:function size:0xBC -fn_800F3AA4 = .text:0x800F3AA4; // type:function size:0x1CC -fn_800F3C70 = .text:0x800F3C70; // type:function size:0xB58 -fn_800F47C8 = .text:0x800F47C8; // type:function size:0x218 -fn_800F49E0 = .text:0x800F49E0; // type:function size:0xA94 -fn_800F5474 = .text:0x800F5474; // type:function size:0x174 -fn_800F55E8 = .text:0x800F55E8; // type:function size:0x49C -fn_800F5A84 = .text:0x800F5A84; // type:function size:0x9F4 -fn_800F6478 = .text:0x800F6478; // type:function size:0x1A8 -fn_800F6620 = .text:0x800F6620; // type:function size:0x44 -fn_800F6664 = .text:0x800F6664; // type:function size:0x34 -fn_800F6698 = .text:0x800F6698; // type:function size:0x78 -fn_800F6710 = .text:0x800F6710; // type:function size:0x2A0 -fn_800F69B0 = .text:0x800F69B0; // type:function size:0x3C0 -fn_800F6D70 = .text:0x800F6D70; // type:function size:0x25C -fn_800F6FCC = .text:0x800F6FCC; // type:function size:0x45C -fn_800F7428 = .text:0x800F7428; // type:function size:0x744 -fn_800F7B6C = .text:0x800F7B6C; // type:function size:0x6FC -fn_800F8268 = .text:0x800F8268; // type:function size:0x150 +seqGetPrivateId = .text:0x800F26B0; // type:function size:0x68 +seqStartPlay = .text:0x800F2718; // type:function size:0xAC4 +StartPause = .text:0x800F31DC; // type:function size:0x64 +seqPause = .text:0x800F3240; // type:function size:0x27C +seqStop = .text:0x800F34BC; // type:function size:0x2B0 +seqKillInstancesByGroupID = .text:0x800F376C; // type:function size:0x90 +seqSpeed = .text:0x800F37FC; // type:function size:0xE4 +seqContinue = .text:0x800F38E0; // type:function size:0x108 +seqMute = .text:0x800F39E8; // type:function size:0xBC +seqVolume = .text:0x800F3AA4; // type:function size:0x1CC +seqCrossFade = .text:0x800F3C70; // type:function size:0xB58 +GenerateNextTrackEvent = .text:0x800F47C8; // type:function size:0x218 +HandleEvent = .text:0x800F49E0; // type:function size:0xA94 +InitTrackEvents = .text:0x800F5474; // type:function size:0x174 +HandleTrackEvents = .text:0x800F55E8; // type:function size:0x49C +seqHandle = .text:0x800F5A84; // type:function size:0x9F4 +seqInit = .text:0x800F6478; // type:function size:0x1A8 +synthSetBpm = .text:0x800F6620; // type:function size:0x44 +synthGetTicksPerSecond = .text:0x800F6664; // type:function size:0x34 +synthInitPortamento = .text:0x800F6698; // type:function size:0x78 +do_voice_portamento = .text:0x800F6710; // type:function size:0x2A0 +StartLayer = .text:0x800F69B0; // type:function size:0x3C0 +StartKeymap = .text:0x800F6D70; // type:function size:0x25C +synthStartSound = .text:0x800F6FCC; // type:function size:0x45C +LowPrecisionHandler = .text:0x800F7428; // type:function size:0x744 +ZeroOffsetHandler = .text:0x800F7B6C; // type:function size:0x6FC +synthAddJob = .text:0x800F8268; // type:function size:0x150 fn_800F83B8 = .text:0x800F83B8; // type:function size:0x64 fn_800F841C = .text:0x800F841C; // type:function size:0x44 fn_800F8460 = .text:0x800F8460; // type:function size:0x28 From c9e1ed75990a03a1eb74d9aeacfe895f27f17298 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 16 Dec 2024 03:24:17 +0100 Subject: [PATCH 204/311] Properly name musyx functions in PAL splits --- config/GMPP01_00/symbols.txt | 706 +++++++++++++++++------------------ 1 file changed, 353 insertions(+), 353 deletions(-) diff --git a/config/GMPP01_00/symbols.txt b/config/GMPP01_00/symbols.txt index b75f1161..83524e64 100644 --- a/config/GMPP01_00/symbols.txt +++ b/config/GMPP01_00/symbols.txt @@ -3118,360 +3118,360 @@ synthStartSound = .text:0x800F6FCC; // type:function size:0x45C LowPrecisionHandler = .text:0x800F7428; // type:function size:0x744 ZeroOffsetHandler = .text:0x800F7B6C; // type:function size:0x6FC synthAddJob = .text:0x800F8268; // type:function size:0x150 -fn_800F83B8 = .text:0x800F83B8; // type:function size:0x64 -fn_800F841C = .text:0x800F841C; // type:function size:0x44 -fn_800F8460 = .text:0x800F8460; // type:function size:0x28 -fn_800F8488 = .text:0x800F8488; // type:function size:0x510 -fn_800F8998 = .text:0x800F8998; // type:function size:0x34 -fn_800F89CC = .text:0x800F89CC; // type:function size:0xC8 -fn_800F8A94 = .text:0x800F8A94; // type:function size:0xE4 -fn_800F8B78 = .text:0x800F8B78; // type:function size:0xE4 -fn_800F8C5C = .text:0x800F8C5C; // type:function size:0x84 -fn_800F8CE0 = .text:0x800F8CE0; // type:function size:0x88 -fn_800F8D68 = .text:0x800F8D68; // type:function size:0x530 -fn_800F9298 = .text:0x800F9298; // type:function size:0x54 -fn_800F92EC = .text:0x800F92EC; // type:function size:0x28 -fn_800F9314 = .text:0x800F9314; // type:function size:0xD0 -fn_800F93E4 = .text:0x800F93E4; // type:function size:0x574 -fn_800F9958 = .text:0x800F9958; // type:function size:0x24 -fn_800F997C = .text:0x800F997C; // type:function size:0x30 -fn_800F99AC = .text:0x800F99AC; // type:function size:0x38 -fn_800F99E4 = .text:0x800F99E4; // type:function size:0x38 -fn_800F9A1C = .text:0x800F9A1C; // type:function size:0x48 -fn_800F9A64 = .text:0x800F9A64; // type:function size:0x38 -fn_800F9A9C = .text:0x800F9A9C; // type:function size:0x58 -fn_800F9AF4 = .text:0x800F9AF4; // type:function size:0x68 -fn_800F9B5C = .text:0x800F9B5C; // type:function size:0x84 -fn_800F9BE0 = .text:0x800F9BE0; // type:function size:0x1C -fn_800F9BFC = .text:0x800F9BFC; // type:function size:0x60 -fn_800F9C5C = .text:0x800F9C5C; // type:function size:0x60 -fn_800F9CBC = .text:0x800F9CBC; // type:function size:0x40 -fn_800F9CFC = .text:0x800F9CFC; // type:function size:0xE0 -fn_800F9DDC = .text:0x800F9DDC; // type:function size:0x40 -fn_800F9E1C = .text:0x800F9E1C; // type:function size:0x50 -fn_800F9E6C = .text:0x800F9E6C; // type:function size:0x60 -fn_800F9ECC = .text:0x800F9ECC; // type:function size:0x94 -fn_800F9F60 = .text:0x800F9F60; // type:function size:0xEC -fn_800FA04C = .text:0x800FA04C; // type:function size:0x158 -fn_800FA1A4 = .text:0x800FA1A4; // type:function size:0xA8 -fn_800FA24C = .text:0x800FA24C; // type:function size:0xF0 -fn_800FA33C = .text:0x800FA33C; // type:function size:0x20 -fn_800FA35C = .text:0x800FA35C; // type:function size:0x20 -fn_800FA37C = .text:0x800FA37C; // type:function size:0xBC -fn_800FA438 = .text:0x800FA438; // type:function size:0x8C -fn_800FA4C4 = .text:0x800FA4C4; // type:function size:0x8AC -fn_800FAD70 = .text:0x800FAD70; // type:function size:0x4 -fn_800FAD74 = .text:0x800FAD74; // type:function size:0x84 -fn_800FADF8 = .text:0x800FADF8; // type:function size:0x160 -fn_800FAF58 = .text:0x800FAF58; // type:function size:0x2C4 -fn_800FB21C = .text:0x800FB21C; // type:function size:0x34 -fn_800FB250 = .text:0x800FB250; // type:function size:0x44 -fn_800FB294 = .text:0x800FB294; // type:function size:0x130 -fn_800FB3C4 = .text:0x800FB3C4; // type:function size:0x458 -fn_800FB81C = .text:0x800FB81C; // type:function size:0x44 -fn_800FB860 = .text:0x800FB860; // type:function size:0x6E8 -fn_800FBF48 = .text:0x800FBF48; // type:function size:0x560 -fn_800FC4A8 = .text:0x800FC4A8; // type:function size:0x654 -fn_800FCAFC = .text:0x800FCAFC; // type:function size:0x6B8 -fn_800FD1B4 = .text:0x800FD1B4; // type:function size:0x634 -fn_800FD7E8 = .text:0x800FD7E8; // type:function size:0x700 -fn_800FDEE8 = .text:0x800FDEE8; // type:function size:0x1F0 -fn_800FE0D8 = .text:0x800FE0D8; // type:function size:0x17C -fn_800FE254 = .text:0x800FE254; // type:function size:0x248 -fn_800FE49C = .text:0x800FE49C; // type:function size:0x1C4 -fn_800FE660 = .text:0x800FE660; // type:function size:0x204 -fn_800FE864 = .text:0x800FE864; // type:function size:0x17C -fn_800FE9E0 = .text:0x800FE9E0; // type:function size:0x188 -fn_800FEB68 = .text:0x800FEB68; // type:function size:0x2C8 -fn_800FEE30 = .text:0x800FEE30; // type:function size:0xD8 -fn_800FEF08 = .text:0x800FEF08; // type:function size:0x98 -fn_800FEFA0 = .text:0x800FEFA0; // type:function size:0x11C -fn_800FF0BC = .text:0x800FF0BC; // type:function size:0x15C -fn_800FF218 = .text:0x800FF218; // type:function size:0x304 -fn_800FF51C = .text:0x800FF51C; // type:function size:0x284 -fn_800FF7A0 = .text:0x800FF7A0; // type:function size:0x10 -fn_800FF7B0 = .text:0x800FF7B0; // type:function size:0x8C -fn_800FF83C = .text:0x800FF83C; // type:function size:0x10 -fn_800FF84C = .text:0x800FF84C; // type:function size:0x128 -fn_800FF974 = .text:0x800FF974; // type:function size:0x10 -fn_800FF984 = .text:0x800FF984; // type:function size:0x5C -fn_800FF9E0 = .text:0x800FF9E0; // type:function size:0x5C -fn_800FFA3C = .text:0x800FFA3C; // type:function size:0x10 -fn_800FFA4C = .text:0x800FFA4C; // type:function size:0x7C -fn_800FFAC8 = .text:0x800FFAC8; // type:function size:0x10 -fn_800FFAD8 = .text:0x800FFAD8; // type:function size:0x9C -fn_800FFB74 = .text:0x800FFB74; // type:function size:0xE4 -fn_800FFC58 = .text:0x800FFC58; // type:function size:0x20 -fn_800FFC78 = .text:0x800FFC78; // type:function size:0x2F0 -fn_800FFF68 = .text:0x800FFF68; // type:function size:0xD0 -fn_80100038 = .text:0x80100038; // type:function size:0x154 -fn_8010018C = .text:0x8010018C; // type:function size:0x18C -fn_80100318 = .text:0x80100318; // type:function size:0xD8 -fn_801003F0 = .text:0x801003F0; // type:function size:0x1FC -fn_801005EC = .text:0x801005EC; // type:function size:0x17C -fn_80100768 = .text:0x80100768; // type:function size:0x1A0 -fn_80100908 = .text:0x80100908; // type:function size:0x258 -fn_80100B60 = .text:0x80100B60; // type:function size:0x12C -fn_80100C8C = .text:0x80100C8C; // type:function size:0x27C -fn_80100F08 = .text:0x80100F08; // type:function size:0x9C -fn_80100FA4 = .text:0x80100FA4; // type:function size:0x9C -fn_80101040 = .text:0x80101040; // type:function size:0x134 -fn_80101174 = .text:0x80101174; // type:function size:0x130 -fn_801012A4 = .text:0x801012A4; // type:function size:0x13C -fn_801013E0 = .text:0x801013E0; // type:function size:0x19C -fn_8010157C = .text:0x8010157C; // type:function size:0x104 -fn_80101680 = .text:0x80101680; // type:function size:0x104 -fn_80101784 = .text:0x80101784; // type:function size:0x104 -fn_80101888 = .text:0x80101888; // type:function size:0x104 -fn_8010198C = .text:0x8010198C; // type:function size:0x104 -fn_80101A90 = .text:0x80101A90; // type:function size:0x104 -fn_80101B94 = .text:0x80101B94; // type:function size:0x104 -fn_80101C98 = .text:0x80101C98; // type:function size:0x104 -fn_80101D9C = .text:0x80101D9C; // type:function size:0x104 -fn_80101EA0 = .text:0x80101EA0; // type:function size:0x104 -fn_80101FA4 = .text:0x80101FA4; // type:function size:0x104 -fn_801020A8 = .text:0x801020A8; // type:function size:0x104 -fn_801021AC = .text:0x801021AC; // type:function size:0x104 -fn_801022B0 = .text:0x801022B0; // type:function size:0x17C -fn_8010242C = .text:0x8010242C; // type:function size:0x17C -fn_801025A8 = .text:0x801025A8; // type:function size:0x164 -fn_8010270C = .text:0x8010270C; // type:function size:0x68 -fn_80102774 = .text:0x80102774; // type:function size:0x220 -fn_80102994 = .text:0x80102994; // type:function size:0x14C -fn_80102AE0 = .text:0x80102AE0; // type:function size:0xBC -fn_80102B9C = .text:0x80102B9C; // type:function size:0x244 -fn_80102DE0 = .text:0x80102DE0; // type:function size:0x80 -fn_80102E60 = .text:0x80102E60; // type:function size:0xDC -fn_80102F3C = .text:0x80102F3C; // type:function size:0xF58 -fn_80103E94 = .text:0x80103E94; // type:function size:0x150 -fn_80103FE4 = .text:0x80103FE4; // type:function size:0xAC -fn_80104090 = .text:0x80104090; // type:function size:0xF0 -fn_80104180 = .text:0x80104180; // type:function size:0x108 -fn_80104288 = .text:0x80104288; // type:function size:0xA4 -fn_8010432C = .text:0x8010432C; // type:function size:0x108 -fn_80104434 = .text:0x80104434; // type:function size:0xFC -fn_80104530 = .text:0x80104530; // type:function size:0x438 -fn_80104968 = .text:0x80104968; // type:function size:0x68 -fn_801049D0 = .text:0x801049D0; // type:function size:0xE0 -fn_80104AB0 = .text:0x80104AB0; // type:function size:0x350 -fn_80104E00 = .text:0x80104E00; // type:function size:0x14 -fn_80104E14 = .text:0x80104E14; // type:function size:0x104 -fn_80104F18 = .text:0x80104F18; // type:function size:0x50 -fn_80104F68 = .text:0x80104F68; // type:function size:0x24C -fn_801051B4 = .text:0x801051B4; // type:function size:0x460 -fn_80105614 = .text:0x80105614; // type:function size:0x1C4 -fn_801057D8 = .text:0x801057D8; // type:function size:0x2A0 -fn_80105A78 = .text:0x80105A78; // type:function size:0xFC -fn_80105B74 = .text:0x80105B74; // type:function size:0x218 -fn_80105D8C = .text:0x80105D8C; // type:function size:0x234 -fn_80105FC0 = .text:0x80105FC0; // type:function size:0xC4 -fn_80106084 = .text:0x80106084; // type:function size:0x15C -fn_801061E0 = .text:0x801061E0; // type:function size:0x74 -fn_80106254 = .text:0x80106254; // type:function size:0x54 -fn_801062A8 = .text:0x801062A8; // type:function size:0x74 -fn_8010631C = .text:0x8010631C; // type:function size:0x144 -fn_80106460 = .text:0x80106460; // type:function size:0x3C -fn_8010649C = .text:0x8010649C; // type:function size:0xE4 -fn_80106580 = .text:0x80106580; // type:function size:0x58 -fn_801065D8 = .text:0x801065D8; // type:function size:0x26C -fn_80106844 = .text:0x80106844; // type:function size:0x28 -fn_8010686C = .text:0x8010686C; // type:function size:0x150 -fn_801069BC = .text:0x801069BC; // type:function size:0x168 -fn_80106B24 = .text:0x80106B24; // type:function size:0x198 -fn_80106CBC = .text:0x80106CBC; // type:function size:0x84 -fn_80106D40 = .text:0x80106D40; // type:function size:0xBC -fn_80106DFC = .text:0x80106DFC; // type:function size:0x248 -fn_80107044 = .text:0x80107044; // type:function size:0xA8 -fn_801070EC = .text:0x801070EC; // type:function size:0x1F8 -fn_801072E4 = .text:0x801072E4; // type:function size:0x1E4 -fn_801074C8 = .text:0x801074C8; // type:function size:0xC -fn_801074D4 = .text:0x801074D4; // type:function size:0x27C -fn_80107750 = .text:0x80107750; // type:function size:0x32C -fn_80107A7C = .text:0x80107A7C; // type:function size:0x33C -fn_80107DB8 = .text:0x80107DB8; // type:function size:0x14C -fn_80107F04 = .text:0x80107F04; // type:function size:0x11C -fn_80108020 = .text:0x80108020; // type:function size:0x3B4 -fn_801083D4 = .text:0x801083D4; // type:function size:0x38 -fn_8010840C = .text:0x8010840C; // type:function size:0xE0 -fn_801084EC = .text:0x801084EC; // type:function size:0x150 -fn_8010863C = .text:0x8010863C; // type:function size:0x20 -fn_8010865C = .text:0x8010865C; // type:function size:0xF4 -fn_80108750 = .text:0x80108750; // type:function size:0x48 -fn_80108798 = .text:0x80108798; // type:function size:0x74 -fn_8010880C = .text:0x8010880C; // type:function size:0xAC -fn_801088B8 = .text:0x801088B8; // type:function size:0x2DC -fn_80108B94 = .text:0x80108B94; // type:function size:0x258 -fn_80108DEC = .text:0x80108DEC; // type:function size:0x21B8 -fn_8010AFA4 = .text:0x8010AFA4; // type:function size:0x44 -fn_8010AFE8 = .text:0x8010AFE8; // type:function size:0xA0 -fn_8010B088 = .text:0x8010B088; // type:function size:0x60 -fn_8010B0E8 = .text:0x8010B0E8; // type:function size:0xC8 -fn_8010B1B0 = .text:0x8010B1B0; // type:function size:0xA8 -fn_8010B258 = .text:0x8010B258; // type:function size:0x84 -fn_8010B2DC = .text:0x8010B2DC; // type:function size:0x158 -fn_8010B434 = .text:0x8010B434; // type:function size:0x6F0 -fn_8010BB24 = .text:0x8010BB24; // type:function size:0x4B4 -fn_8010BFD8 = .text:0x8010BFD8; // type:function size:0x51C -fn_8010C4F4 = .text:0x8010C4F4; // type:function size:0x130 -fn_8010C624 = .text:0x8010C624; // type:function size:0x20 -fn_8010C644 = .text:0x8010C644; // type:function size:0x3F8 -fn_8010CA3C = .text:0x8010CA3C; // type:function size:0x50 -fn_8010CA8C = .text:0x8010CA8C; // type:function size:0xA8 -fn_8010CB34 = .text:0x8010CB34; // type:function size:0x5C -fn_8010CB90 = .text:0x8010CB90; // type:function size:0xFC -fn_8010CC8C = .text:0x8010CC8C; // type:function size:0x204 -fn_8010CE90 = .text:0x8010CE90; // type:function size:0x230 -fn_8010D0C0 = .text:0x8010D0C0; // type:function size:0xD0 -fn_8010D190 = .text:0x8010D190; // type:function size:0x14C -fn_8010D2DC = .text:0x8010D2DC; // type:function size:0x3B0 -fn_8010D68C = .text:0x8010D68C; // type:function size:0x82C -fn_8010DEB8 = .text:0x8010DEB8; // type:function size:0x38 -fn_8010DEF0 = .text:0x8010DEF0; // type:function size:0x4 -fn_8010DEF4 = .text:0x8010DEF4; // type:function size:0x118 -fn_8010E00C = .text:0x8010E00C; // type:function size:0x34 -fn_8010E040 = .text:0x8010E040; // type:function size:0x8 -fn_8010E048 = .text:0x8010E048; // type:function size:0xAC -fn_8010E0F4 = .text:0x8010E0F4; // type:function size:0xB4 -fn_8010E1A8 = .text:0x8010E1A8; // type:function size:0x64 -fn_8010E20C = .text:0x8010E20C; // type:function size:0x1FC -fn_8010E408 = .text:0x8010E408; // type:function size:0x24 -fn_8010E42C = .text:0x8010E42C; // type:function size:0x608 -fn_8010EA34 = .text:0x8010EA34; // type:function size:0x124 -fn_8010EB58 = .text:0x8010EB58; // type:function size:0xF0 -fn_8010EC48 = .text:0x8010EC48; // type:function size:0x2C4 -fn_8010EF0C = .text:0x8010EF0C; // type:function size:0x34 -fn_8010EF40 = .text:0x8010EF40; // type:function size:0x3C -fn_8010EF7C = .text:0x8010EF7C; // type:function size:0x98 -fn_8010F014 = .text:0x8010F014; // type:function size:0x114 -fn_8010F128 = .text:0x8010F128; // type:function size:0x3C -fn_8010F164 = .text:0x8010F164; // type:function size:0x3C -fn_8010F1A0 = .text:0x8010F1A0; // type:function size:0x4A0 -fn_8010F640 = .text:0x8010F640; // type:function size:0x48 -fn_8010F688 = .text:0x8010F688; // type:function size:0x48 -fn_8010F6D0 = .text:0x8010F6D0; // type:function size:0x48 -fn_8010F718 = .text:0x8010F718; // type:function size:0x48 -fn_8010F760 = .text:0x8010F760; // type:function size:0x48 -fn_8010F7A8 = .text:0x8010F7A8; // type:function size:0x48 -fn_8010F7F0 = .text:0x8010F7F0; // type:function size:0x48 -fn_8010F838 = .text:0x8010F838; // type:function size:0x48 -fn_8010F880 = .text:0x8010F880; // type:function size:0x48 -fn_8010F8C8 = .text:0x8010F8C8; // type:function size:0x48 -fn_8010F910 = .text:0x8010F910; // type:function size:0x48 -fn_8010F958 = .text:0x8010F958; // type:function size:0x48 -fn_8010F9A0 = .text:0x8010F9A0; // type:function size:0xB4 -fn_8010FA54 = .text:0x8010FA54; // type:function size:0xB4 -fn_8010FB08 = .text:0x8010FB08; // type:function size:0x284 -fn_8010FD8C = .text:0x8010FD8C; // type:function size:0x70 -fn_8010FDFC = .text:0x8010FDFC; // type:function size:0xFC -fn_8010FEF8 = .text:0x8010FEF8; // type:function size:0x1E4 -fn_801100DC = .text:0x801100DC; // type:function size:0x1C -fn_801100F8 = .text:0x801100F8; // type:function size:0x8C -fn_80110184 = .text:0x80110184; // type:function size:0xA4 -fn_80110228 = .text:0x80110228; // type:function size:0x10 -fn_80110238 = .text:0x80110238; // type:function size:0x48 -fn_80110280 = .text:0x80110280; // type:function size:0x8 -fn_80110288 = .text:0x80110288; // type:function size:0x154 -fn_801103DC = .text:0x801103DC; // type:function size:0xB8 -fn_80110494 = .text:0x80110494; // type:function size:0x34 -fn_801104C8 = .text:0x801104C8; // type:function size:0x8 -fn_801104D0 = .text:0x801104D0; // type:function size:0x8 -fn_801104D8 = .text:0x801104D8; // type:function size:0x20 -fn_801104F8 = .text:0x801104F8; // type:function size:0x8 -fn_80110500 = .text:0x80110500; // type:function size:0x14 -fn_80110514 = .text:0x80110514; // type:function size:0x1B4 -fn_801106C8 = .text:0x801106C8; // type:function size:0x50 -fn_80110718 = .text:0x80110718; // type:function size:0x1AC -fn_801108C4 = .text:0x801108C4; // type:function size:0x20 -fn_801108E4 = .text:0x801108E4; // type:function size:0x14 -fn_801108F8 = .text:0x801108F8; // type:function size:0x14 -fn_8011090C = .text:0x8011090C; // type:function size:0x14 -fn_80110920 = .text:0x80110920; // type:function size:0x14 -fn_80110934 = .text:0x80110934; // type:function size:0x3C -fn_80110970 = .text:0x80110970; // type:function size:0x28 -fn_80110998 = .text:0x80110998; // type:function size:0x78 -fn_80110A10 = .text:0x80110A10; // type:function size:0x2C -fn_80110A3C = .text:0x80110A3C; // type:function size:0x2C -fn_80110A68 = .text:0x80110A68; // type:function size:0x5C -fn_80110AC4 = .text:0x80110AC4; // type:function size:0x2C0 -fn_80110D84 = .text:0x80110D84; // type:function size:0x2C -fn_80110DB0 = .text:0x80110DB0; // type:function size:0x28 -fn_80110DD8 = .text:0x80110DD8; // type:function size:0x20 -fn_80110DF8 = .text:0x80110DF8; // type:function size:0x20 -fn_80110E18 = .text:0x80110E18; // type:function size:0x34 -fn_80110E4C = .text:0x80110E4C; // type:function size:0x34 -fn_80110E80 = .text:0x80110E80; // type:function size:0x2C -fn_80110EAC = .text:0x80110EAC; // type:function size:0xA4 -fn_80110F50 = .text:0x80110F50; // type:function size:0x90 -fn_80110FE0 = .text:0x80110FE0; // type:function size:0x20 -fn_80111000 = .text:0x80111000; // type:function size:0x20 -fn_80111020 = .text:0x80111020; // type:function size:0x24 -fn_80111044 = .text:0x80111044; // type:function size:0x4 -fn_80111048 = .text:0x80111048; // type:function size:0x5C -fn_801110A4 = .text:0x801110A4; // type:function size:0x24 -fn_801110C8 = .text:0x801110C8; // type:function size:0x20 -fn_801110E8 = .text:0x801110E8; // type:function size:0x94 -fn_8011117C = .text:0x8011117C; // type:function size:0x84 -fn_80111200 = .text:0x80111200; // type:function size:0x20 -fn_80111220 = .text:0x80111220; // type:function size:0x4 -fn_80111224 = .text:0x80111224; // type:function size:0x14 -fn_80111238 = .text:0x80111238; // type:function size:0xC -fn_80111244 = .text:0x80111244; // type:function size:0x28 -fn_8011126C = .text:0x8011126C; // type:function size:0x20 -fn_8011128C = .text:0x8011128C; // type:function size:0xA0 -fn_8011132C = .text:0x8011132C; // type:function size:0x1DC -fn_80111508 = .text:0x80111508; // type:function size:0x18 -fn_80111520 = .text:0x80111520; // type:function size:0x2EC -fn_8011180C = .text:0x8011180C; // type:function size:0x4 -fn_80111810 = .text:0x80111810; // type:function size:0x20 -fn_80111830 = .text:0x80111830; // type:function size:0x3BC -fn_80111BEC = .text:0x80111BEC; // type:function size:0x18 -fn_80111C04 = .text:0x80111C04; // type:function size:0xC4 -fn_80111CC8 = .text:0x80111CC8; // type:function size:0x108 -fn_80111DD0 = .text:0x80111DD0; // type:function size:0x38 -fn_80111E08 = .text:0x80111E08; // type:function size:0xF8 -fn_80111F00 = .text:0x80111F00; // type:function size:0xA8 -fn_80111FA8 = .text:0x80111FA8; // type:function size:0x10 -fn_80111FB8 = .text:0x80111FB8; // type:function size:0x64 -fn_8011201C = .text:0x8011201C; // type:function size:0xC8 -fn_801120E4 = .text:0x801120E4; // type:function size:0x20 -fn_80112104 = .text:0x80112104; // type:function size:0x34 -fn_80112138 = .text:0x80112138; // type:function size:0x30 -fn_80112168 = .text:0x80112168; // type:function size:0xBC -fn_80112224 = .text:0x80112224; // type:function size:0x34 -fn_80112258 = .text:0x80112258; // type:function size:0x74 -fn_801122CC = .text:0x801122CC; // type:function size:0x4C -fn_80112318 = .text:0x80112318; // type:function size:0x2C -fn_80112344 = .text:0x80112344; // type:function size:0x4 -fn_80112348 = .text:0x80112348; // type:function size:0x38 -fn_80112380 = .text:0x80112380; // type:function size:0x38 -fn_801123B8 = .text:0x801123B8; // type:function size:0x20 -fn_801123D8 = .text:0x801123D8; // type:function size:0x20 -fn_801123F8 = .text:0x801123F8; // type:function size:0x28 -fn_80112420 = .text:0x80112420; // type:function size:0x2C -fn_8011244C = .text:0x8011244C; // type:function size:0x5C -fn_801124A8 = .text:0x801124A8; // type:function size:0x3C -fn_801124E4 = .text:0x801124E4; // type:function size:0x24 -fn_80112508 = .text:0x80112508; // type:function size:0x428 +synthStartSynthJobHandling = .text:0x800F83B8; // type:function size:0x64 +synthForceLowPrecisionUpdate = .text:0x800F841C; // type:function size:0x44 +synthKeyStateUpdate = .text:0x800F8460; // type:function size:0x28 +synthHandle = .text:0x800F8488; // type:function size:0x510 +synthFXGetMaxVoices = .text:0x800F8998; // type:function size:0x34 +synthFXStart = .text:0x800F89CC; // type:function size:0xC8 +synthFXSetCtrl = .text:0x800F8A94; // type:function size:0xE4 +synthFXSetCtrl14 = .text:0x800F8B78; // type:function size:0xE4 +synthFXCloneMidiSetup = .text:0x800F8C5C; // type:function size:0x84 +synthSendKeyOff = .text:0x800F8CE0; // type:function size:0x88 +synthVolume = .text:0x800F8D68; // type:function size:0x530 +synthIsFadeOutActive = .text:0x800F9298; // type:function size:0x54 +synthSetMusicVolumeType = .text:0x800F92EC; // type:function size:0x28 +synthHWMessageHandler = .text:0x800F9314; // type:function size:0xD0 +synthInit = .text:0x800F93E4; // type:function size:0x574 +synthExit = .text:0x800F9958; // type:function size:0x24 +sndSeqGetValid = .text:0x800F997C; // type:function size:0x30 +sndSeqPause = .text:0x800F99AC; // type:function size:0x38 +sndSeqStop = .text:0x800F99E4; // type:function size:0x38 +sndSeqSpeed = .text:0x800F9A1C; // type:function size:0x48 +sndSeqContinue = .text:0x800F9A64; // type:function size:0x38 +sndSeqMute = .text:0x800F9A9C; // type:function size:0x58 +sndSeqVolume = .text:0x800F9AF4; // type:function size:0x68 +sndSeqGetMidiCtrl = .text:0x800F9B5C; // type:function size:0x84 +seqGetMIDIPriority = .text:0x800F9BE0; // type:function size:0x1C +sndFXCtrl = .text:0x800F9BFC; // type:function size:0x60 +sndFXCtrl14 = .text:0x800F9C5C; // type:function size:0x60 +sndFXKeyOff = .text:0x800F9CBC; // type:function size:0x40 +sndFXStartParaInfo = .text:0x800F9CFC; // type:function size:0xE0 +sndFXCheck = .text:0x800F9DDC; // type:function size:0x40 +sndSendMessage = .text:0x800F9E1C; // type:function size:0x50 +sndVolume = .text:0x800F9E6C; // type:function size:0x60 +sndMasterVolume = .text:0x800F9ECC; // type:function size:0x94 +sndOutputMode = .text:0x800F9F60; // type:function size:0xEC +sndSetAuxProcessingCallbacks = .text:0x800FA04C; // type:function size:0x158 +synthActivateStudio = .text:0x800FA1A4; // type:function size:0xA8 +synthDeactivateStudio = .text:0x800FA24C; // type:function size:0xF0 +synthAddStudioInput = .text:0x800FA33C; // type:function size:0x20 +synthRemoveStudioInput = .text:0x800FA35C; // type:function size:0x20 +streamInit = .text:0x800FA37C; // type:function size:0xBC +SetHWMix = .text:0x800FA438; // type:function size:0x8C +streamHandle = .text:0x800FA4C4; // type:function size:0x8AC +streamCorrectLoops = .text:0x800FAD70; // type:function size:0x4 +streamKill = .text:0x800FAD74; // type:function size:0x84 +GetPrivateIndex = .text:0x800FADF8; // type:function size:0x160 +sndStreamARAMUpdate = .text:0x800FAF58; // type:function size:0x2C4 +CheckOutputMode = .text:0x800FB21C; // type:function size:0x34 +SetupVolumeAndPan = .text:0x800FB250; // type:function size:0x44 +streamOutputModeChanged = .text:0x800FB294; // type:function size:0x130 +sndStreamAllocEx = .text:0x800FB3C4; // type:function size:0x458 +sndStreamAllocLength = .text:0x800FB81C; // type:function size:0x44 +sndStreamADPCMParameter = .text:0x800FB860; // type:function size:0x6E8 +sndStreamMixParameterEx = .text:0x800FBF48; // type:function size:0x560 +sndStreamFrq = .text:0x800FC4A8; // type:function size:0x654 +sndStreamFree = .text:0x800FCAFC; // type:function size:0x6B8 +sndStreamActivate = .text:0x800FD1B4; // type:function size:0x634 +sndStreamDeactivate = .text:0x800FD7E8; // type:function size:0x700 +dataInsertKeymap = .text:0x800FDEE8; // type:function size:0x1F0 +dataRemoveKeymap = .text:0x800FE0D8; // type:function size:0x17C +dataInsertLayer = .text:0x800FE254; // type:function size:0x248 +dataRemoveLayer = .text:0x800FE49C; // type:function size:0x1C4 +dataInsertCurve = .text:0x800FE660; // type:function size:0x204 +dataRemoveCurve = .text:0x800FE864; // type:function size:0x17C +dataInsertSDir = .text:0x800FE9E0; // type:function size:0x188 +dataRemoveSDir = .text:0x800FEB68; // type:function size:0x2C8 +dataAddSampleReference = .text:0x800FEE30; // type:function size:0xD8 +dataRemoveSampleReference = .text:0x800FEF08; // type:function size:0x98 +dataInsertFX = .text:0x800FEFA0; // type:function size:0x11C +dataRemoveFX = .text:0x800FF0BC; // type:function size:0x15C +dataInsertMacro = .text:0x800FF218; // type:function size:0x304 +dataRemoveMacro = .text:0x800FF51C; // type:function size:0x284 +maccmp = .text:0x800FF7A0; // type:function size:0x10 +dataGetMacro = .text:0x800FF7B0; // type:function size:0x8C +smpcmp = .text:0x800FF83C; // type:function size:0x10 +dataGetSample = .text:0x800FF84C; // type:function size:0x128 +curvecmp = .text:0x800FF974; // type:function size:0x10 +dataGetCurve = .text:0x800FF984; // type:function size:0x5C +dataGetKeymap = .text:0x800FF9E0; // type:function size:0x5C +layercmp = .text:0x800FFA3C; // type:function size:0x10 +dataGetLayer = .text:0x800FFA4C; // type:function size:0x7C +fxcmp = .text:0x800FFAC8; // type:function size:0x10 +dataGetFX = .text:0x800FFAD8; // type:function size:0x9C +dataInit = .text:0x800FFB74; // type:function size:0xE4 +dataExit = .text:0x800FFC58; // type:function size:0x20 +mcmdWait = .text:0x800FFC78; // type:function size:0x2F0 +mcmdGosub = .text:0x800FFF68; // type:function size:0xD0 +mcmdLoop = .text:0x80100038; // type:function size:0x154 +mcmdPlayMacro = .text:0x8010018C; // type:function size:0x18C +mcmdAddKey = .text:0x80100318; // type:function size:0xD8 +mcmdStartSample = .text:0x801003F0; // type:function size:0x1FC +mcmdVibrato = .text:0x801005EC; // type:function size:0x17C +DoSetPitch = .text:0x80100768; // type:function size:0x1A0 +mcmdSetADSR = .text:0x80100908; // type:function size:0x258 +mcmdSetADSRFromCtrl = .text:0x80100B60; // type:function size:0x12C +mcmdSetPitchADSR = .text:0x80100C8C; // type:function size:0x27C +mcmdSetPanning = .text:0x80100F08; // type:function size:0x9C +mcmdSetSurroundPanning = .text:0x80100FA4; // type:function size:0x9C +mcmdScaleVolume = .text:0x80101040; // type:function size:0x134 +mcmdEnvelope = .text:0x80101174; // type:function size:0x130 +mcmdFadeIn = .text:0x801012A4; // type:function size:0x13C +mcmdRandomKey = .text:0x801013E0; // type:function size:0x19C +mcmdVolumeSelect = .text:0x8010157C; // type:function size:0x104 +mcmdPanningSelect = .text:0x80101680; // type:function size:0x104 +mcmdPitchWheelSelect = .text:0x80101784; // type:function size:0x104 +mcmdModWheelSelect = .text:0x80101888; // type:function size:0x104 +mcmdPedalSelect = .text:0x8010198C; // type:function size:0x104 +mcmdPortamentoSelect = .text:0x80101A90; // type:function size:0x104 +mcmdReverbSelect = .text:0x80101B94; // type:function size:0x104 +mcmdPreAuxASelect = .text:0x80101C98; // type:function size:0x104 +mcmdPreAuxBSelect = .text:0x80101D9C; // type:function size:0x104 +mcmdPostAuxBSelect = .text:0x80101EA0; // type:function size:0x104 +mcmdSurroundPanningSelect = .text:0x80101FA4; // type:function size:0x104 +mcmdDopplerSelect = .text:0x801020A8; // type:function size:0x104 +mcmdTremoloSelect = .text:0x801021AC; // type:function size:0x104 +mcmdAuxAFXSelect = .text:0x801022B0; // type:function size:0x17C +mcmdAuxBFXSelect = .text:0x8010242C; // type:function size:0x17C +mcmdPortamento = .text:0x801025A8; // type:function size:0x164 +varGet = .text:0x8010270C; // type:function size:0x68 +mcmdVarCalculation = .text:0x80102774; // type:function size:0x220 +mcmdIfVarCompare = .text:0x80102994; // type:function size:0x14C +macPostMessage = .text:0x80102AE0; // type:function size:0xBC +mcmdSendMessage = .text:0x80102B9C; // type:function size:0x244 +mcmdGetVID = .text:0x80102DE0; // type:function size:0x80 +mcmdSetKeyGroup = .text:0x80102E60; // type:function size:0xDC +macHandleActive = .text:0x80102F3C; // type:function size:0xF58 +macHandle = .text:0x80103E94; // type:function size:0x150 +macSampleEndNotify = .text:0x80103FE4; // type:function size:0xAC +macSetExternalKeyoff = .text:0x80104090; // type:function size:0xF0 +macSetPedalState = .text:0x80104180; // type:function size:0x108 +TimeQueueAdd = .text:0x80104288; // type:function size:0xA4 +macMakeActive = .text:0x8010432C; // type:function size:0x108 +macMakeInactive = .text:0x80104434; // type:function size:0xFC +macStart = .text:0x80104530; // type:function size:0x438 +macInit = .text:0x80104968; // type:function size:0x68 +vidInit = .text:0x801049D0; // type:function size:0xE0 +vidRemoveVoiceReferences = .text:0x80104AB0; // type:function size:0x350 +vidMakeRoot = .text:0x80104E00; // type:function size:0x14 +vidMakeNew = .text:0x80104E14; // type:function size:0x104 +vidGetInternalId = .text:0x80104F18; // type:function size:0x50 +voiceSetPriority = .text:0x80104F68; // type:function size:0x24C +voiceAllocate = .text:0x801051B4; // type:function size:0x460 +voiceFree = .text:0x80105614; // type:function size:0x1C4 +synthInitAllocationAids = .text:0x801057D8; // type:function size:0x2A0 +voiceBlock = .text:0x80105A78; // type:function size:0xFC +voiceUnblock = .text:0x80105B74; // type:function size:0x218 +voiceKill = .text:0x80105D8C; // type:function size:0x234 +voiceKillSound = .text:0x80105FC0; // type:function size:0xC4 +synthKillVoicesByMacroReferences = .text:0x80106084; // type:function size:0x15C +voiceIsLastStarted = .text:0x801061E0; // type:function size:0x74 +voiceSetLastStarted = .text:0x80106254; // type:function size:0x54 +voiceResetLastStarted = .text:0x801062A8; // type:function size:0x74 +voiceInitLastStarted = .text:0x8010631C; // type:function size:0x144 +sndPitchUpOne = .text:0x80106460; // type:function size:0x3C +sndGetPitch = .text:0x8010649C; // type:function size:0xE4 +adsrConvertTimeCents = .text:0x80106580; // type:function size:0x58 +salChangeADSRState = .text:0x801065D8; // type:function size:0x26C +adsrSetup = .text:0x80106844; // type:function size:0x28 +adsrStartRelease = .text:0x8010686C; // type:function size:0x150 +adsrRelease = .text:0x801069BC; // type:function size:0x168 +adsrHandle = .text:0x80106B24; // type:function size:0x198 +adsrHandleLowPrecision = .text:0x80106CBC; // type:function size:0x84 +vsInit = .text:0x80106D40; // type:function size:0xBC +vsSampleStartNotify = .text:0x80106DFC; // type:function size:0x248 +vsSampleEndNotify = .text:0x80107044; // type:function size:0xA8 +vsUpdateBuffer = .text:0x801070EC; // type:function size:0x1F8 +vsSampleUpdates = .text:0x801072E4; // type:function size:0x1E4 +dataInitStack = .text:0x801074C8; // type:function size:0xC +InsertData = .text:0x801074D4; // type:function size:0x27C +sndPushGroup = .text:0x80107750; // type:function size:0x32C +sndPopGroup = .text:0x80107A7C; // type:function size:0x33C +seqPlaySong = .text:0x80107DB8; // type:function size:0x14C +sndSeqPlayEx = .text:0x80107F04; // type:function size:0x11C +salInitDspCtrl = .text:0x80108020; // type:function size:0x3B4 +salInitHRTFBuffer = .text:0x801083D4; // type:function size:0x38 +salExitDspCtrl = .text:0x8010840C; // type:function size:0xE0 +salActivateStudio = .text:0x801084EC; // type:function size:0x150 +salDeactivateStudio = .text:0x8010863C; // type:function size:0x20 +salCheckVolErrorAndResetDelta = .text:0x8010865C; // type:function size:0xF4 +sal_setup_dspvol = .text:0x80108750; // type:function size:0x48 +sal_update_hostplayinfo = .text:0x80108798; // type:function size:0x74 +DoDepopFade = .text:0x8010880C; // type:function size:0xAC +HandleDepopVoice = .text:0x801088B8; // type:function size:0x2DC +SortVoices = .text:0x80108B94; // type:function size:0x258 +salBuildCommandList = .text:0x80108DEC; // type:function size:0x21B8 +salSynthSendMessage = .text:0x8010AFA4; // type:function size:0x44 +salActivateVoice = .text:0x8010AFE8; // type:function size:0xA0 +salDeactivateVoice = .text:0x8010B088; // type:function size:0x60 +salReconnectVoice = .text:0x8010B0E8; // type:function size:0xC8 +salAddStudioInput = .text:0x8010B1B0; // type:function size:0xA8 +salRemoveStudioInput = .text:0x8010B258; // type:function size:0x84 +salHandleAuxProcessing = .text:0x8010B2DC; // type:function size:0x158 +salCalcVolume = .text:0x8010B434; // type:function size:0x6F0 +CheckRoomStatus = .text:0x8010BB24; // type:function size:0x4B4 +CalcEmitter = .text:0x8010BFD8; // type:function size:0x51C +sndUpdateEmitter = .text:0x8010C4F4; // type:function size:0x130 +sndCheckEmitter = .text:0x8010C624; // type:function size:0x20 +AddEmitter = .text:0x8010C644; // type:function size:0x3F8 +sndAddEmitterParaEx = .text:0x8010CA3C; // type:function size:0x50 +sndRemoveEmitter = .text:0x8010CA8C; // type:function size:0xA8 +sndEmitterVoiceID = .text:0x8010CB34; // type:function size:0x5C +s3dKillEmitterByFXID = .text:0x8010CB90; // type:function size:0xFC +sndUpdateListener = .text:0x8010CC8C; // type:function size:0x204 +sndAddListenerEx = .text:0x8010CE90; // type:function size:0x230 +sndRemoveListener = .text:0x8010D0C0; // type:function size:0xD0 +AddStartingEmitter = .text:0x8010D190; // type:function size:0x14C +StartContinousEmitters = .text:0x8010D2DC; // type:function size:0x3B0 +s3dHandle = .text:0x8010D68C; // type:function size:0x82C +s3dInit = .text:0x8010DEB8; // type:function size:0x38 +s3dExit = .text:0x8010DEF0; // type:function size:0x4 +sndInit = .text:0x8010DEF4; // type:function size:0x118 +sndQuit = .text:0x8010E00C; // type:function size:0x34 +sndIsInstalled = .text:0x8010E040; // type:function size:0x8 +salApplyMatrix = .text:0x8010E048; // type:function size:0xAC +salNormalizeVector = .text:0x8010E0F4; // type:function size:0xB4 +salCrossProduct = .text:0x8010E1A8; // type:function size:0x64 +salInvertMatrix = .text:0x8010E20C; // type:function size:0x1FC +inpSetGlobalMIDIDirtyFlag = .text:0x8010E408; // type:function size:0x24 +inpSetMidiCtrl = .text:0x8010E42C; // type:function size:0x608 +inpSetMidiCtrl14 = .text:0x8010EA34; // type:function size:0x124 +inpResetMidiCtrl = .text:0x8010EB58; // type:function size:0xF0 +inpGetMidiCtrl = .text:0x8010EC48; // type:function size:0x2C4 +inpGetChannelDefaults = .text:0x8010EF0C; // type:function size:0x34 +inpResetChannelDefaults = .text:0x8010EF40; // type:function size:0x3C +inpAddCtrl = .text:0x8010EF7C; // type:function size:0x98 +inpFXCopyCtrl = .text:0x8010F014; // type:function size:0x114 +inpSetMidiLastNote = .text:0x8010F128; // type:function size:0x3C +inpGetMidiLastNote = .text:0x8010F164; // type:function size:0x3C +_GetInputValue = .text:0x8010F1A0; // type:function size:0x4A0 +inpGetVolume = .text:0x8010F640; // type:function size:0x48 +inpGetPanning = .text:0x8010F688; // type:function size:0x48 +inpGetSurPanning = .text:0x8010F6D0; // type:function size:0x48 +inpGetPitchBend = .text:0x8010F718; // type:function size:0x48 +inpGetDoppler = .text:0x8010F760; // type:function size:0x48 +inpGetModulation = .text:0x8010F7A8; // type:function size:0x48 +inpGetPedal = .text:0x8010F7F0; // type:function size:0x48 +inpGetPreAuxA = .text:0x8010F838; // type:function size:0x48 +inpGetReverb = .text:0x8010F880; // type:function size:0x48 +inpGetPreAuxB = .text:0x8010F8C8; // type:function size:0x48 +inpGetPostAuxB = .text:0x8010F910; // type:function size:0x48 +inpGetTremolo = .text:0x8010F958; // type:function size:0x48 +inpGetAuxA = .text:0x8010F9A0; // type:function size:0xB4 +inpGetAuxB = .text:0x8010FA54; // type:function size:0xB4 +inpInit = .text:0x8010FB08; // type:function size:0x284 +inpTranslateExCtrl = .text:0x8010FD8C; // type:function size:0x70 +inpGetExCtrl = .text:0x8010FDFC; // type:function size:0xFC +inpSetExCtrl = .text:0x8010FEF8; // type:function size:0x1E4 +sndRand = .text:0x801100DC; // type:function size:0x1C +sndSin = .text:0x801100F8; // type:function size:0x8C +sndBSearch = .text:0x80110184; // type:function size:0xA4 +sndConvertMs = .text:0x80110228; // type:function size:0x10 +sndConvertTicks = .text:0x80110238; // type:function size:0x48 +sndConvert2Ms = .text:0x80110280; // type:function size:0x8 +snd_handle_irq = .text:0x80110288; // type:function size:0x154 +hwInit = .text:0x801103DC; // type:function size:0xB8 +hwExit = .text:0x80110494; // type:function size:0x34 +hwSetTimeOffset = .text:0x801104C8; // type:function size:0x8 +hwGetTimeOffset = .text:0x801104D0; // type:function size:0x8 +hwIsActive = .text:0x801104D8; // type:function size:0x20 +hwSetMesgCallback = .text:0x801104F8; // type:function size:0x8 +hwSetPriority = .text:0x80110500; // type:function size:0x14 +hwInitSamplePlayback = .text:0x80110514; // type:function size:0x1B4 +hwBreak = .text:0x801106C8; // type:function size:0x50 +hwSetADSR = .text:0x80110718; // type:function size:0x1AC +hwSetVirtualSampleLoopBuffer = .text:0x801108C4; // type:function size:0x20 +hwGetVirtualSampleState = .text:0x801108E4; // type:function size:0x14 +hwGetSampleType = .text:0x801108F8; // type:function size:0x14 +hwGetSampleID = .text:0x8011090C; // type:function size:0x14 +hwSetStreamLoopPS = .text:0x80110920; // type:function size:0x14 +hwStart = .text:0x80110934; // type:function size:0x3C +hwKeyOff = .text:0x80110970; // type:function size:0x28 +hwSetPitch = .text:0x80110998; // type:function size:0x78 +hwSetSRCType = .text:0x80110A10; // type:function size:0x2C +hwSetPolyPhaseFilter = .text:0x80110A3C; // type:function size:0x2C +hwSetITDMode = .text:0x80110A68; // type:function size:0x5C +hwSetVolume = .text:0x80110AC4; // type:function size:0x2C0 +hwOff = .text:0x80110D84; // type:function size:0x2C +hwSetAUXProcessingCallbacks = .text:0x80110DB0; // type:function size:0x28 +hwActivateStudio = .text:0x80110DD8; // type:function size:0x20 +hwDeactivateStudio = .text:0x80110DF8; // type:function size:0x20 +hwAddInput = .text:0x80110E18; // type:function size:0x34 +hwRemoveInput = .text:0x80110E4C; // type:function size:0x34 +hwChangeStudio = .text:0x80110E80; // type:function size:0x2C +hwGetPos = .text:0x80110EAC; // type:function size:0xA4 +hwFlushStream = .text:0x80110F50; // type:function size:0x90 +hwInitStream = .text:0x80110FE0; // type:function size:0x20 +hwExitStream = .text:0x80111000; // type:function size:0x20 +hwGetStreamPlayBuffer = .text:0x80111020; // type:function size:0x24 +hwTransAddr = .text:0x80111044; // type:function size:0x4 +hwFrq2Pitch = .text:0x80111048; // type:function size:0x5C +hwInitSampleMem = .text:0x801110A4; // type:function size:0x24 +hwExitSampleMem = .text:0x801110C8; // type:function size:0x20 +hwSaveSample = .text:0x801110E8; // type:function size:0x94 +hwRemoveSample = .text:0x8011117C; // type:function size:0x84 +hwSyncSampleMem = .text:0x80111200; // type:function size:0x20 +hwFrameDone = .text:0x80111220; // type:function size:0x4 +sndSetHooks = .text:0x80111224; // type:function size:0x14 +hwDisableHRTF = .text:0x80111238; // type:function size:0xC +hwGetVirtualSampleID = .text:0x80111244; // type:function size:0x28 +hwVoiceInStartup = .text:0x8011126C; // type:function size:0x20 +aramQueueCallback = .text:0x8011128C; // type:function size:0xA0 +aramUploadData = .text:0x8011132C; // type:function size:0x1DC +aramSyncTransferQueue = .text:0x80111508; // type:function size:0x18 +aramInit = .text:0x80111520; // type:function size:0x2EC +aramExit = .text:0x8011180C; // type:function size:0x4 +aramGetZeroBuffer = .text:0x80111810; // type:function size:0x20 +aramStoreData = .text:0x80111830; // type:function size:0x3BC +aramRemoveData = .text:0x80111BEC; // type:function size:0x18 +InitStreamBuffers = .text:0x80111C04; // type:function size:0xC4 +aramAllocateStreamBuffer = .text:0x80111CC8; // type:function size:0x108 +aramGetStreamBufferAddress = .text:0x80111DD0; // type:function size:0x38 +aramFreeStreamBuffer = .text:0x80111E08; // type:function size:0xF8 +salCallback = .text:0x80111F00; // type:function size:0xA8 +dspInitCallback = .text:0x80111FA8; // type:function size:0x10 +dspResumeCallback = .text:0x80111FB8; // type:function size:0x64 +salInitAi = .text:0x8011201C; // type:function size:0xC8 +salStartAi = .text:0x801120E4; // type:function size:0x20 +salExitAi = .text:0x80112104; // type:function size:0x34 +salAiGetDest = .text:0x80112138; // type:function size:0x30 +salInitDsp = .text:0x80112168; // type:function size:0xBC +salExitDsp = .text:0x80112224; // type:function size:0x34 +salCtrlDsp = .text:0x80112258; // type:function size:0x74 +salGetStartDelay = .text:0x801122CC; // type:function size:0x4C +hwInitIrq = .text:0x80112318; // type:function size:0x2C +hwExitIrq = .text:0x80112344; // type:function size:0x4 +hwEnableIrq = .text:0x80112348; // type:function size:0x38 +hwDisableIrq = .text:0x80112380; // type:function size:0x38 +hwIRQEnterCritical = .text:0x801123B8; // type:function size:0x20 +hwIRQLeaveCritical = .text:0x801123D8; // type:function size:0x20 +salMalloc = .text:0x801123F8; // type:function size:0x28 +salFree = .text:0x80112420; // type:function size:0x2C +sndAuxCallbackReverbSTD = .text:0x8011244C; // type:function size:0x5C +sndAuxCallbackPrepareReverbSTD = .text:0x801124A8; // type:function size:0x3C +sndAuxCallbackShutdownReverbSTD = .text:0x801124E4; // type:function size:0x24 +ReverbSTDCreate = .text:0x80112508; // type:function size:0x428 fn_80112930 = .text:0x80112930; // type:function size:0x3B4 -fn_80112CE4 = .text:0x80112CE4; // type:function size:0x24 -fn_80112D08 = .text:0x80112D08; // type:function size:0xBC -fn_80112DC4 = .text:0x80112DC4; // type:function size:0x5C -fn_80112E20 = .text:0x80112E20; // type:function size:0x40 -fn_80112E60 = .text:0x80112E60; // type:function size:0x24 -fn_80112E84 = .text:0x80112E84; // type:function size:0x50C -fn_80113390 = .text:0x80113390; // type:function size:0x190 -fn_80113520 = .text:0x80113520; // type:function size:0x50C -fn_80113A2C = .text:0x80113A2C; // type:function size:0xE0 -fn_80113B0C = .text:0x80113B0C; // type:function size:0xBC -fn_80113BC8 = .text:0x80113BC8; // type:function size:0x168 -fn_80113D30 = .text:0x80113D30; // type:function size:0x1D0 -fn_80113F00 = .text:0x80113F00; // type:function size:0x28 -fn_80113F28 = .text:0x80113F28; // type:function size:0x4C -fn_80113F74 = .text:0x80113F74; // type:function size:0x198 -fn_8011410C = .text:0x8011410C; // type:function size:0x1EC -fn_801142F8 = .text:0x801142F8; // type:function size:0x2BC -fn_801145B4 = .text:0x801145B4; // type:function size:0x200 -fn_801147B4 = .text:0x801147B4; // type:function size:0x28 +ReverbSTDCallback = .text:0x80112CE4; // type:function size:0x24 +ReverbSTDFree = .text:0x80112D08; // type:function size:0xBC +sndAuxCallbackReverbHI = .text:0x80112DC4; // type:function size:0x5C +sndAuxCallbackPrepareReverbHI = .text:0x80112E20; // type:function size:0x40 +sndAuxCallbackShutdownReverbHI = .text:0x80112E60; // type:function size:0x24 +ReverbHICreate = .text:0x80112E84; // type:function size:0x50C +DoCrossTalk = .text:0x80113390; // type:function size:0x190 +HandleReverb = .text:0x80113520; // type:function size:0x50C +ReverbHICallback = .text:0x80113A2C; // type:function size:0xE0 +ReverbHIFree = .text:0x80113B0C; // type:function size:0xBC +sndAuxCallbackDelay = .text:0x80113BC8; // type:function size:0x168 +sndAuxCallbackUpdateSettingsDelay = .text:0x80113D30; // type:function size:0x1D0 +sndAuxCallbackPrepareDelay = .text:0x80113F00; // type:function size:0x28 +sndAuxCallbackShutdownDelay = .text:0x80113F28; // type:function size:0x4C +do_src1 = .text:0x80113F74; // type:function size:0x198 +do_src2 = .text:0x8011410C; // type:function size:0x1EC +sndAuxCallbackChorus = .text:0x801142F8; // type:function size:0x2BC +sndAuxCallbackPrepareChorus = .text:0x801145B4; // type:function size:0x200 +sndAuxCallbackShutdownChorus = .text:0x801147B4; // type:function size:0x28 DBClose = .text:0x801147DC; // type:function size:0x4 scope:global DBOpen = .text:0x801147E0; // type:function size:0x4 scope:global DBWrite = .text:0x801147E4; // type:function size:0x260 scope:global From 116db5fe812b3d4b343c513272bf4b9bdc38a989 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 17 Dec 2024 04:48:47 +0100 Subject: [PATCH 205/311] Update musyx and set it to matching --- configure.py | 27 ++++++++++++++++++++++----- extern/musyx | 2 +- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/configure.py b/configure.py index 4e80312b..eae7d004 100644 --- a/configure.py +++ b/configure.py @@ -278,6 +278,23 @@ cflags_musyx = [ "-DMUSY_TARGET=MUSY_TARGET_DOLPHIN", ] +cflags_musyx_debug = [ + "-proc gecko", + "-fp hard", + "-nodefaults", + "-nosyspath", + "-i include", + "-i extern/musyx/include", + "-i libc", + "-g", + "-sym on", + "-D_DEBUG=1", + "-fp hard", + "-enum int", + "-Cpp_exceptions off", + "-DMUSY_TARGET=MUSY_TARGET_DOLPHIN", +] + # REL flags cflags_rel = [ *cflags_base, @@ -736,21 +753,21 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synth.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/seq_api.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/snd_synthapi.c"), - Object(NonMatching, "musyx/runtime/stream.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/stream.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synthdata.c"), - Object(NonMatching, "musyx/runtime/synthmacros.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synthmacros.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synthvoice.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synth_ac.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synth_dbtab.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synth_adsr.c"), - Object(NonMatching, "musyx/runtime/synth_vsamples.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/synth_vsamples.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/s_data.c"), - Object(NonMatching, "musyx/runtime/hw_dspctrl.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/hw_dspctrl.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/hw_volconv.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/snd3d.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/snd_init.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/snd_math.c"), - Object(NonMatching, "musyx/runtime/snd_midictrl.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/snd_midictrl.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/snd_service.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/hardware.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "musyx/runtime/dsp_import.c"), diff --git a/extern/musyx b/extern/musyx index ddfad60c..a170f2ef 160000 --- a/extern/musyx +++ b/extern/musyx @@ -1 +1 @@ -Subproject commit ddfad60c3e4fede55479c744a1c70081e0d6cd12 +Subproject commit a170f2ef4a3f51edb89bc792dff79d55b2c42a89 From 4dd8a0ba10e2b68f9c9bf0cd1f449f49088083ed Mon Sep 17 00:00:00 2001 From: mrshigure Date: Tue, 17 Dec 2024 19:31:42 -0800 Subject: [PATCH 206/311] US: matched m422Dll --- config/GMPE01_00/rels/m422Dll/symbols.txt | 404 ++--- configure.py | 2 +- src/REL/m422Dll/main.c | 1887 +++++++++++++++++++++ 3 files changed, 2090 insertions(+), 203 deletions(-) create mode 100755 src/REL/m422Dll/main.c diff --git a/config/GMPE01_00/rels/m422Dll/symbols.txt b/config/GMPE01_00/rels/m422Dll/symbols.txt index f4f38637..db300891 100644 --- a/config/GMPE01_00/rels/m422Dll/symbols.txt +++ b/config/GMPE01_00/rels/m422Dll/symbols.txt @@ -13,191 +13,191 @@ ObjectSetup = .text:0x0000B058; // type:function size:0x428 fn_1_B480 = .text:0x0000B480; // type:function size:0xAC _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x30 -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x30 -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x30 -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x30 -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x30 -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x30 -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x30 -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x1C data:4byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x1C data:4byte -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 data:4byte -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x10 data:4byte -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC data:4byte -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0xC data:4byte -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC data:4byte -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0xC data:4byte -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0xC data:4byte -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x20 data:4byte -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x60 -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:4byte -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x60 -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x30 data:4byte -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x34 data:4byte -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 data:double -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x8 data:double -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:double -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x8 data:double -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:double -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float -lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float -lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 data:double -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 data:double -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x8 data:double -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:double -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:double -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 data:double -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float -lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 data:double -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 data:double -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float -lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float -lbl_1_rodata_5EC = .rodata:0x000005EC; // type:object size:0x4 data:float -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float -lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 data:float -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x2C data:4byte -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float -lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float -lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x8 data:double -lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x8 data:double -lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x8 data:double -lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float -lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float -lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x28 data:4byte -lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x20 data:4byte -lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 data:4byte -lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 data:4byte -lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x8 data:4byte -lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x40 data:4byte -lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x40 data:4byte -lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x4 data:float -lbl_1_rodata_74C = .rodata:0x0000074C; // type:object size:0x4 data:float -lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 data:float -lbl_1_rodata_754 = .rodata:0x00000754; // type:object size:0x4 data:float -lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x4 data:float -lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x8 data:double -lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x4 data:float -lbl_1_rodata_76C = .rodata:0x0000076C; // type:object size:0x10 data:4byte -lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0xC data:4byte -lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0xC data:4byte -lbl_1_rodata_794 = .rodata:0x00000794; // type:object size:0x4 data:byte -lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x4 data:float -lbl_1_rodata_79C = .rodata:0x0000079C; // type:object size:0x4 data:float -lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x4 data:float -lbl_1_rodata_7A4 = .rodata:0x000007A4; // type:object size:0x4 data:float -lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x30 data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x30 data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x30 data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x30 data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x30 data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x30 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x30 data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x1C scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x1C scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x10 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0xC scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0xC scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0xC scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x60 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x60 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x30 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 scope:local data:double +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 scope:local data:double +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x8 scope:local data:double +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 scope:local data:double +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x8 scope:local data:double +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 scope:local data:double +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 scope:local data:double +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 scope:local data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 scope:local data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 scope:local data:double +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 scope:local data:double +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x8 scope:local data:double +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5EC = .rodata:0x000005EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x2C scope:local data:4byte +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 scope:local data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x8 scope:local data:double +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x8 scope:local data:double +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x8 scope:local data:double +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 scope:local data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 scope:local data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x28 scope:local data:4byte +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74C = .rodata:0x0000074C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 scope:local data:float +lbl_1_rodata_754 = .rodata:0x00000754; // type:object size:0x4 scope:local data:float +lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x4 scope:local data:float +lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x8 scope:local data:double +lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x4 scope:local data:float +lbl_1_rodata_76C = .rodata:0x0000076C; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0xC scope:local data:float +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0xC scope:local data:float +lbl_1_rodata_794 = .rodata:0x00000794; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x4 scope:local data:float +lbl_1_rodata_79C = .rodata:0x0000079C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7A4 = .rodata:0x000007A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x40 lbl_1_data_40 = .data:0x00000040; // type:object size:0x60 lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x20 @@ -205,29 +205,29 @@ lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x20 lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x7 lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x9 lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x1680 data:float -lbl_1_data_1770 = .data:0x00001770; // type:object size:0xF data:string -lbl_1_data_177F = .data:0x0000177F; // type:object size:0x10 data:string -lbl_1_data_178F = .data:0x0000178F; // type:object size:0x10 data:string -lbl_1_data_179F = .data:0x0000179F; // type:object size:0xF data:string -lbl_1_data_17AE = .data:0x000017AE; // type:object size:0x10 data:string -lbl_1_data_17BE = .data:0x000017BE; // type:object size:0x10 data:string -lbl_1_data_17CE = .data:0x000017CE; // type:object size:0xF data:string -lbl_1_data_17DD = .data:0x000017DD; // type:object size:0x11 data:string -lbl_1_data_17EE = .data:0x000017EE; // type:object size:0x11 data:string -lbl_1_data_17FF = .data:0x000017FF; // type:object size:0x12 data:string -lbl_1_data_1811 = .data:0x00001811; // type:object size:0x5 data:string -lbl_1_data_1816 = .data:0x00001816; // type:object size:0x12 +lbl_1_data_1770 = .data:0x00001770; // type:object size:0xF scope:local data:string +lbl_1_data_177F = .data:0x0000177F; // type:object size:0x10 scope:local data:string +lbl_1_data_178F = .data:0x0000178F; // type:object size:0x10 scope:local data:string +lbl_1_data_179F = .data:0x0000179F; // type:object size:0xF scope:local data:string +lbl_1_data_17AE = .data:0x000017AE; // type:object size:0x10 scope:local data:string +lbl_1_data_17BE = .data:0x000017BE; // type:object size:0x10 scope:local data:string +lbl_1_data_17CE = .data:0x000017CE; // type:object size:0xF scope:local data:string +lbl_1_data_17DD = .data:0x000017DD; // type:object size:0x11 scope:local data:string +lbl_1_data_17EE = .data:0x000017EE; // type:object size:0x11 scope:local data:string +lbl_1_data_17FF = .data:0x000017FF; // type:object size:0x12 scope:local data:string +lbl_1_data_1811 = .data:0x00001811; // type:object size:0x5 scope:local data:string +lbl_1_data_1816 = .data:0x00001816; // type:object size:0x10 scope:local data:string lbl_1_data_1828 = .data:0x00001828; // type:object size:0x50 lbl_1_data_1878 = .data:0x00001878; // type:object size:0x2C lbl_1_data_18A4 = .data:0x000018A4; // type:object size:0x8 data:4byte lbl_1_data_18AC = .data:0x000018AC; // type:object size:0x4 data:4byte lbl_1_data_18B0 = .data:0x000018B0; // type:object size:0x4 data:4byte -lbl_1_data_18B4 = .data:0x000018B4; // type:object size:0x40 -lbl_1_data_18F4 = .data:0x000018F4; // type:object size:0xC data:4byte +lbl_1_data_18B4 = .data:0x000018B4; // type:object size:0x40 data:float +lbl_1_data_18F4 = .data:0x000018F4; // type:object size:0x8 data:4byte lbl_1_data_1900 = .data:0x00001900; // type:object size:0x4 data:4byte -lbl_1_data_1904 = .data:0x00001904; // type:object size:0x1B data:string -lbl_1_data_191F = .data:0x0000191F; // type:object size:0x19 data:string -lbl_1_data_1938 = .data:0x00001938; // type:object size:0x24 data:string +lbl_1_data_1904 = .data:0x00001904; // type:object size:0x1B scope:local data:string +lbl_1_data_191F = .data:0x0000191F; // type:object size:0x19 scope:local data:string +lbl_1_data_1938 = .data:0x00001938; // type:object size:0x24 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float diff --git a/configure.py b/configure.py index eae7d004..87bace0d 100644 --- a/configure.py +++ b/configure.py @@ -1031,7 +1031,7 @@ config.libs = [ Rel( "m422Dll", # Money Belts objects={ - Object(NonMatching, "REL/m422Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m422Dll/main.c"), }, ), Rel( diff --git a/src/REL/m422Dll/main.c b/src/REL/m422Dll/main.c new file mode 100755 index 00000000..15c1186f --- /dev/null +++ b/src/REL/m422Dll/main.c @@ -0,0 +1,1887 @@ +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/wipe.h" + +#include "ext_math.h" +#include "dolphin.h" + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ u32 unk04; +} StructBss104; // Size 4 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ float unk04[3]; +} StructBss54; // Size 0x10 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ float unk28; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ float unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ s32 unk40; +} StructBss3CData; // Size 0x44 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ u32 unk08; + /* 0x0C */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ float unk20; + /* 0x24 */ float unk24; + /* 0x28 */ char unk28[4]; + /* 0x2C */ s32 unk2C; +} StructDataF0; // Size 0x30 + +void fn_1_B480(omObjData* arg0); + +StructBss104 lbl_1_bss_104[3][8]; +StructBss54 lbl_1_bss_54[11]; +omObjData* lbl_1_bss_50; +omObjData* lbl_1_bss_4C; +omObjData* lbl_1_bss_3C[4]; +omObjData* lbl_1_bss_38; +s32 lbl_1_bss_34; +Process* lbl_1_bss_30; +s16 lbl_1_bss_2E; +s16 lbl_1_bss_2C; +s32 lbl_1_bss_28; +s32 lbl_1_bss_24; +s32 lbl_1_bss_20; +s32 lbl_1_bss_1C; // unused +s32 lbl_1_bss_18; +s32 lbl_1_bss_14; +s32 lbl_1_bss_10; // unused +s32 lbl_1_bss_C; +float lbl_1_bss_8; +float lbl_1_bss_4; +float lbl_1_bss_0; + +const float lbl_1_rodata_10[12] = { + 25.0f, 95.0f, 25.0f, + 75.0f, 75.0f, 75.0f, + 35.0f, 35.0f, 35.0f, + 25.0f, 50.0f, 50.0f +}; + +const float lbl_1_rodata_40[12] = { + 75.0f, 0.0f, 75.0f, + 0.0f, 0.0f, 0.0f, + 20.0f, 20.0f, 20.0f, + 50.0f, 0.0f, 0.0f +}; + +const float lbl_1_rodata_70[12] = { + 75.0f, 0.0f, 37.0f, + 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, + 70.0f, 0.0f, 0.0f +}; + +const float lbl_1_rodata_A0[12] = { + 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, + 75.0f, 50.0f, 0.0f +}; + +const float lbl_1_rodata_D0[12] = { + 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f +}; + +const float lbl_1_rodata_100[12] = { + 30.0f, 30.0f, 30.0f, + 30.0f, 30.0f, 30.0f, + 40.0f, 40.0f, 40.0f, + 0.0f, 0.0f, 0.0f +}; + +const float lbl_1_rodata_130[12] = { + 290.0f, 290.0f, 290.0f, + 370.0f, 370.0f, 370.0f, + 450.0f, 450.0f, 450.0f, + 0.0f, 0.0f, 0.0f +}; + +s32 lbl_1_data_0[] = { + DATA_MAKE_NUM(DATADIR_MGCONST, 41), + DATA_MAKE_NUM(DATADIR_MGCONST, 40), + DATA_MAKE_NUM(DATADIR_MGCONST, 51), + DATA_MAKE_NUM(DATADIR_MGCONST, 51), + DATA_MAKE_NUM(DATADIR_MGCONST, 8), + DATA_MAKE_NUM(DATADIR_M422, 51), + DATA_MAKE_NUM(DATADIR_MGCONST, 0), + DATA_MAKE_NUM(DATADIR_MGCONST, 37), + DATA_MAKE_NUM(DATADIR_MGCONST, 36), + DATA_MAKE_NUM(DATADIR_MGCONST, 51), + DATA_MAKE_NUM(DATADIR_MGCONST, 51), + DATA_MAKE_NUM(DATADIR_MGCONST, 8), + DATA_MAKE_NUM(DATADIR_M422, 51), + DATA_MAKE_NUM(DATADIR_MGCONST, 12), + DATA_MAKE_NUM(DATADIR_MGCONST, 12), + DATA_MAKE_NUM(DATADIR_MGCONST, 12) +}; + +s32 lbl_1_data_40[] = { + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x005E0000, 0x00190000, 0x006C0000, 0x00890000, + 0x00840000, 0x00100000, 0x000C0000, 0x00800000 +}; + +s32 lbl_1_data_A0[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_M422, 0), + DATA_MAKE_NUM(DATADIR_M422, 8), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) +}; + +u32 lbl_1_data_C0[] = { 0, 0, 0, 1, 1, 0, 0, 0 }; +u8 lbl_1_data_E0[] = { 0, 0, 0, 1, 0, 1, 1 }; +u8 lbl_1_data_E7[] = { 8, 8, 8, 0, 12, 0, 8, 8, 0 }; +StructDataF0 lbl_1_data_F0[12][10] = { 0 }; + +char* lbl_1_data_1828[] = { + "m422al01-cube8", + "m422al02-cyl143", + "m422al03-cube11", + "m422am01-cyl76", + "m422am02-cube13", + "m422am03-cube12", + "m422as01-cube9", + "m422test11-cube9", + "m422test12-cube9", + "m422m09m-m422m09m", + "coin", + "m422a04-sphere2", + "m422m09m-m422m09m", + "m422m09m-m422m09m", + "m422m09m-m422m09m", + "m422m09m-m422m09m", + "m422m09m-m422m09m", + "m422m09m-m422m09m", + "m422m09m-m422m09m", + "m422m09m-m422m09m" +}; + +s32 lbl_1_data_1878[11] = { 0 }; +s32 lbl_1_data_18A4[2] = { 0 }; +s32 lbl_1_data_18AC = -1; +s32 lbl_1_data_18B0 = -1; + +float lbl_1_data_18B4[][4] = { + { 0.0f, 300.0f, 450.0f, 180.0f }, + { -200.0f, 0.0f, 1050.0f, 180.0f }, + { 0.0f, 0.0f, 1050.0f, 180.0f }, + { 200.0f, 0.0f, 1050.0f, 180.0f } +}; + +s32 lbl_1_data_18F4[] = { 0, 0 }; + +float lbl_1_data_18FC = 1.0f; // unused +s32 lbl_1_data_1900 = -1; + +void fn_1_A0(void) { + Center.x += 10.0 * (((HuPadBtn[0] & 2) != 0) - ((HuPadBtn[0] & 1) != 0)); + Center.z -= 10.0 * (((HuPadBtn[0] & 8) != 0) - ((HuPadBtn[0] & 4) != 0)); + Center.y += ((HuPadTrigL[0] - HuPadTrigR[0]) / 128.0) * 30.0; + CRot.y += HuPadSubStkX[0] / 16.0; + CRot.x += HuPadSubStkY[0] / -16.0; +} + +void fn_1_2FC(omObjData* arg0) { + Mtx sp254; + s32 sp1CC; + s32 sp1C8; + s32 sp1A4; + float sp1A0; + float sp158; + float sp154; + float sp150; + float sp14C; + float sp148; + s32 sp144; + float sp140; + float sp13C; + float sp138; + float sp134; + float sp130; + float sp12C; + float sp128; + s32 sp124; + float sp120; + float sp11C; + float sp118; + s32 var_r17; + s32 sp114; + float temp_f23; + float temp_f22; + float temp_f25; + float temp_f24; + float temp_f27; + float temp_f26; + float phi_f29; + float phi_f28; + StructDataF0* temp_r28; + StructDataF0* temp_r29; + StructBss3CData* temp_r31; + s32 var_r19; + s32 phi_r23; + s32 phi_r26; + s32 phi_r22; + s32 phi_r21; + s16 phi_r25; + s32 phi_r24; + s32 phi_r20; + s32 var_r18; + s32 i; + + temp_r31 = arg0->data; + sp158 = 0.0f; + sp154 = 0.0f; + sp150 = 0.0f; + phi_r25 = -1; + if (temp_r31->unk20 == 0 || temp_r31->unk20 == 1) { + arg0->trans.z += lbl_1_bss_0; + } + temp_r31->unk2C = temp_r31->unk34 = 0.0f; + if (lbl_1_bss_34 != 1004 || !(lbl_1_bss_8 < 45.0f)) { + if (lbl_1_bss_34 >= 1004 && temp_r31->unk20 != 0) { + temp_f25 = lbl_1_data_18B4[temp_r31->unk00][0] - arg0->trans.x; + temp_f24 = lbl_1_data_18B4[temp_r31->unk00][2] - arg0->trans.z; + sp14C = 270.0 + atan2d(temp_f25, temp_f24) - CRot.y; + sp148 = sqrtf(temp_f25 * temp_f25 + temp_f24 * temp_f24); + sp148 = (sp148 > 100.0f) ? 72.0f + : (sp148 < 12.0f) ? 0.0f + : (72.0f * (sp148 / 100.0f)); + sp154 = sp148 * cosd(sp14C); + sp150 = sp148 * sind(sp14C); + if (sp148 == 0.0f) { + temp_r31->unk20 = 0; + } + } else if (temp_r31->unk20 == 1) { + if (temp_r31->unk0C != -1) { + sp154 = HuPadStkX[temp_r31->unk0C]; + sp150 = HuPadStkY[temp_r31->unk0C]; + } else { + float sp238[7] = { 0 }; + float sp21C[7] = { 0 }; + float sp1EC[] = { -400.0f, -550.0f, -700.0f, -800.0f }; + float sp1DC[] = { -800.0f, -900.0f, -1100.0f, -2100.0f }; + Vec sp1D0; + + sp154 = sp150 = 0.0f; + for (i = 0; i < 7; i++) { + sp238[i] = (temp_r31->unk00 == 0 ? 600.0f : 1400.0f) + sp1EC[temp_r31->unk10]; + sp21C[i] = (temp_r31->unk00 == 0 ? 600.0f : 1400.0f) + sp1EC[temp_r31->unk10]; + } + for (i = 0; i < 12; i++) { + for (phi_r23 = 0; phi_r23 < (i < 10 ? 4 : 10); phi_r23++) { + temp_r28 = &lbl_1_data_F0[i][phi_r23]; + sp144 = (i < 10) ? (i * 4 + 43 + phi_r23) : ((i - 10) * 10 + 83 + phi_r23); + if (temp_r28->unk04 != 0 && !(temp_r28->unk14 < 0.0f)) { + Hu3DModelObjPosGet(lbl_1_bss_38->model[sp144], lbl_1_data_1828[temp_r28->unk00], &sp1D0); + phi_r26 = (s32) (300.0f + sp1D0.x + 2000.0f) / 100 - 20; + phi_r26--; + for (phi_r22 = 0; phi_r22 < 3; phi_r26++, phi_r22++) { + if (phi_r26 >= 0 && phi_r26 < 7 + && arg0->trans.z + 50.0f >= sp1D0.z - lbl_1_rodata_10[temp_r28->unk00] - lbl_1_rodata_70[temp_r28->unk00] + && sp1D0.x - lbl_1_rodata_10[temp_r28->unk00] - lbl_1_rodata_70[temp_r28->unk00] - 50.0f < (phi_r26 - 3) * 100 && sp1D0.x + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00] + 50.0f > (phi_r26 - 3) * 100) + { + if (temp_r28->unk00 < 10) { + if (sp238[phi_r26] < sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00]) { + sp238[phi_r26] = sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00]; + } + } else { + if (sp21C[phi_r26] < sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00]) { + sp21C[phi_r26] = sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00] + (temp_r28->unk00 < 11); + } + } + } + } + } + } + } + phi_r26 = (s32) (300.0f + arg0->trans.x + 2000.0f) / 100 - 20; + phi_r26 = (phi_r26 < 0) ? 0 + : (phi_r26 >= 7) ? 6 + : phi_r26; + for (i = 0, phi_r22 = phi_r26; i < 7; i++) { + var_r19 = ((temp_r31->unk00 / 2) % 2 == 0) ? i : (6 - i); + if (sp21C[phi_r22] - 60.0 * fabs(phi_r22 - phi_r26) < sp21C[var_r19] - 60.0 * fabs(var_r19 - phi_r26) && sp238[var_r19] < sp21C[var_r19]) { + phi_r22 = var_r19; + } + } + sp238[phi_r22] -= 1.0f; + for (i = 0, phi_r23 = phi_r26; i < 7; i++) { + var_r17 = ((temp_r31->unk00 / 2) % 2 == 0) ? i : (6 - i); + if (sp238[phi_r23] > sp238[var_r17]) { + phi_r23 = var_r17; + } + } + sp140 = arg0->trans.z - (temp_r31->unk00 == 0 ? -100.0f : 700.0f); + sp13C = (((sp238[phi_r22] > sp140 - 400.0f || sp140 > 550.0f) ? phi_r23 + : (sp140 > 500.0f) ? ((sp140 - 500.0f) / 50.0f) * phi_r23 + (1.0f - (sp140 - 500.0f) / 50.0f) * phi_r22 + : phi_r22) - 3.0f) * 100.0f - arg0->trans.x; + { + float sp1C4[] = { -21.0f, 0.0f, 15.0f }; + float sp1B8[] = { 60.0f, 65.0f, 53.0f }; + float sp1AC[] = { 54.0f, 72.0f, 59.0f }; + float sp1A0[] = { -15.0f, 7.0f, 22.0f }; + + var_r18 = (temp_r31->unk14 / 5) % 3; + var_r18 = (temp_r31->unk00 == 0) ? (arg0->trans.z < 200.0f ? 0 : 1) : 2; + sp13C /= 20.0f; + sp13C = (sp13C < -1.0f) ? sp13C + : (sp13C > 1.0f) ? 1.0f + : sp13C; + sp138 = (sp13C < 0.0f) ? -sp13C : sp13C; + sp134 = 1.0f - sp138; + sp154 = (sp13C < 0.0f) + ? (36.0f * sp134 + sp138 * sp1C4[var_r18]) + : (36.0f * sp134 + sp138 * sp1B8[var_r18]); + sp150 = (sp13C < 0.0f) + ? (42.0f * sp134 + sp138 * sp1AC[var_r18]) + : (42.0f * sp134 + sp138 * sp1A0[var_r18]); + } + temp_f23 = temp_r31->unk38 - sp154; + temp_f22 = temp_r31->unk3C - sp150; + if (sqrtf(temp_f23 * temp_f23 + temp_f22 * temp_f22) > 50.0f) { + temp_r31->unk40++; + } else { + temp_r31->unk40 = 0; + } + if (temp_r31->unk40 >= 2) { + sp154 = temp_r31->unk38; + sp150 = temp_r31->unk3C; + temp_r31->unk40 = 0; + } + temp_r31->unk38 = sp154; + temp_r31->unk3C = sp150; + } + } + } + if (temp_r31->unk20 == 2) { + sp130 = arg0->trans.y; + sp12C = arg0->trans.z; + phi_r25 = 4; + arg0->trans.z += 9.375; + if (temp_r31->unk00 == 0 + && lbl_1_data_1900 != -1 + && arg0->trans.z > (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) + 50.0f + && sp12C <= (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) + 50.0f) + { + HuAudFXStop(lbl_1_data_1900); + lbl_1_data_1900 = -1; + } + temp_r31->unk30 -= 1.0f; + arg0->trans.y += (arg0->trans.z > (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) - 50.0f) + ? temp_r31->unk30 : 0.0f; + if (temp_r31->unk00 == 0 && lbl_1_data_1900 == -1 && arg0->trans.z > 670.0f && arg0->trans.z < 1450.0f && arg0->trans.y == 0.0f && sp130 > 0.0f) { + lbl_1_data_1900 = HuAudFXPlay(0x612); + } + if (arg0->trans.z < 1400.0f && arg0->trans.y <= 0.0f) { + arg0->trans.y = 0.0f; + temp_r31->unk30 = 0.0f; + } + arg0->rot.y += (arg0->rot.y < 0.0f) ? 360 + : (arg0->rot.y > 360.0f) ? -360 : 0; + arg0->rot.y = (arg0->rot.y > 140.0f && arg0->rot.y < 220.0f) ? 180.0f + : (arg0->rot.y < 180.0f) ? (40.0f + arg0->rot.y) + : (arg0->rot.y > 180.0f) ? (arg0->rot.y - 40.0f) + : arg0->trans.y;; + if (lbl_1_bss_C % 4 < 3) { + Hu3DModelAttrReset(arg0->model[0], 1); + } else { + Hu3DModelAttrSet(arg0->model[0], 1); + } + if (arg0->trans.y < -500.0f) { + temp_r31->unk20 = 3; + Hu3DModelAttrSet(arg0->model[0], 1); + } + } else if (temp_r31->unk20 != 3 && temp_r31->unk20 != 4) { + if (temp_r31->unk20 == 5) { + if (temp_r31->unk24 == 0) { + phi_r25 = 3; + Hu3DMotionSpeedSet(arg0->model[0], 1.0f); + Hu3DModelAttrReset(arg0->model[0], 1); + } + temp_r31->unk24++; + if (temp_r31->unk24 == 30) { + temp_r31->unk1C = -1; + temp_r31->unk18 = phi_r25 = 0; + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + if (temp_r31->unk24 >= 31 && temp_r31->unk24 <= 38) { + arg0->trans.x -= 150.0 * -sind(arg0->rot.y) / 7.0; + arg0->trans.z -= 150.0 * -cosd(arg0->rot.y) / 7.0; + } else { + arg0->trans.x = lbl_1_data_F0[9][temp_r31->unk00].unk0C; + arg0->trans.y = (temp_r31->unk00 == 0) ? 300 : 0; + arg0->trans.z = lbl_1_data_F0[9][temp_r31->unk00].unk14; + } + if (temp_r31->unk24 == 34 && temp_r31->unk00 == 0) { + Hu3DMotionTimeSet(lbl_1_bss_38->model[temp_r31->unk00 + 79], 15.0f + Hu3DMotionTimeGet(lbl_1_bss_38->model[temp_r31->unk00 + 79])); + } + if (temp_r31->unk24 == 38) { + temp_r31->unk20 = 1; + } + } else { + float temp_f31 = 0.25 * sp154; + float temp_f30 = 0.25 * -sp150; + Vec sp194 = { 0.0f, 0.0f, 0.0f }; + + sp194.x = temp_f31; + sp194.z = temp_f30; + PSMTXRotRad(sp254, 'y', MTXDegToRad(CRot.y)); + PSMTXMultVec(sp254, &sp194, &sp194); + temp_f31 = sp194.x; + temp_f30 = sp194.z; + sp158 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30); + if (sp158 >= 0.5f) { + if (sp158 < 10.0f) { + temp_r31->unk2C = temp_f31; + temp_r31->unk34 += temp_f30; + } else { + temp_f31 /= sp158; + temp_f30 /= sp158; + sp158 = 10.0f; + temp_r31->unk2C = temp_f31 * sp158; + temp_r31->unk34 = temp_f30 * sp158; + } + temp_r31->unk28 = sp158; + arg0->rot.y = atan2d(temp_r31->unk2C, temp_r31->unk34); + if (temp_r31->unk20 == 1) { + if (temp_r31->unk28 >= 8.0f) { + phi_r25 = 2; + } else { + phi_r25 = 1; + } + } + } else if (temp_r31->unk20 == 1) { + phi_r25 = 0; + } + if (lbl_1_bss_34 == 1005 && (temp_r31->unk20 == 1 || temp_r31->unk20 == 0)) { + temp_r31->unk1C = (lbl_1_data_18F4[temp_r31->unk00 == 0 ? 0 : 1] > 0) ? 6 : 7; + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + temp_r31->unk20 = 0; + if (lbl_1_bss_8 == 1.0f && lbl_1_data_18F4[temp_r31->unk00 == 0 ? 0 : 1] > 0) { + s32 sp1FC[] = { + 0x122, 0x162, 0x1A2, 0x1E2, + 0x222, 0x262, 0x2A2, 0x2E2 + }; + + HuAudFXPlay(sp1FC[temp_r31->unk08]); + } + } + if (lbl_1_bss_34 >= 1004 && temp_r31->unk20 == 0) { + arg0->rot.y = 2.4f + 0.8f * arg0->rot.y; + if (temp_r31->unk18 != 6 && temp_r31->unk18 != 7) { + phi_r25 = 0; + } + } + arg0->trans.x += temp_r31->unk2C; + arg0->trans.z += temp_r31->unk34; + if (temp_r31->unk00 != 0) { + for (phi_r21 = 1; phi_r21 < 4; phi_r21++) { + temp_f27 = lbl_1_bss_3C[phi_r21]->trans.x - arg0->trans.x; + phi_f29 = lbl_1_bss_3C[phi_r21]->trans.z - arg0->trans.z; + if (phi_r21 != temp_r31->unk00) { + if (temp_f27 == 0.0f && phi_f29 == 0.0f) { + phi_f29 = -1.0f; + } + sp128 = sqrtf(temp_f27 * temp_f27 + phi_f29 * phi_f29); + if (sp128 < 100.0f) { + temp_f27 *= (100.0f / sp128); + phi_f29 *= (100.0f / sp128); + arg0->trans.x = lbl_1_bss_3C[phi_r21]->trans.x - temp_f27; + arg0->trans.z = lbl_1_bss_3C[phi_r21]->trans.z - phi_f29; + } + } + } + } + if (lbl_1_bss_34 > 1001) { + for (phi_r24 = 0; phi_r24 < 12; phi_r24++) { + if (phi_r24 == 9 && lbl_1_bss_34 <= 1001) { + } + for (phi_r20 = 0; phi_r20 < (phi_r24 < 10 ? 4 : 10); phi_r20++) { + temp_r29 = &lbl_1_data_F0[phi_r24][phi_r20]; + sp124 = (phi_r24 < 10) ? (phi_r24 * 4 + 43 + phi_r20) + : ((phi_r24 - 10) * 10 + 83 + phi_r20); + if (temp_r29->unk04 != 0 && temp_r29->unk2C <= 0) { + Vec sp188; + + Hu3DModelObjPosGet(lbl_1_bss_38->model[sp124], lbl_1_data_1828[temp_r29->unk00], &sp188); + if (((temp_r29->unk04 == 3 || (temp_r29->unk04 == 4 && sp188.y >= 250.0f)) && temp_r31->unk00 == 0) + || (((temp_r29->unk04 == 4 && sp188.y < 250.0f) || temp_r29->unk04 == 5 || temp_r29->unk04 == 6) && temp_r31->unk00 != 0)) + { + sp11C = sp188.x; + sp118 = sp188.z; + if (lbl_1_rodata_40[temp_r29->unk00] > 0.0f || lbl_1_rodata_70[temp_r29->unk00] > 0.0f) { + sp11C = (arg0->trans.x < sp11C - lbl_1_rodata_40[temp_r29->unk00]) ? (sp11C - lbl_1_rodata_40[temp_r29->unk00]) + : (arg0->trans.x > sp11C + lbl_1_rodata_40[temp_r29->unk00]) ? (sp11C + lbl_1_rodata_40[temp_r29->unk00]) + : arg0->trans.x; + sp118 = (arg0->trans.z < sp118 - lbl_1_rodata_70[temp_r29->unk00]) ? (sp118 - lbl_1_rodata_70[temp_r29->unk00]) + : (arg0->trans.z > sp118 + lbl_1_rodata_70[temp_r29->unk00]) ? (sp118 + lbl_1_rodata_70[temp_r29->unk00]) + : arg0->trans.z; + } + temp_f26 = sp11C - arg0->trans.x; + phi_f28 = sp118 - arg0->trans.z; + if (phi_r24 < 10 && temp_f26 == 0.0f && phi_f28 == 0.0f) { + phi_f28 = -1.0f; + } + sp120 = sqrtf(temp_f26 * temp_f26 + phi_f28 * phi_f28); + if (sp120 < 50.0f + lbl_1_rodata_10[temp_r29->unk00]) { + if (phi_r24 < 10) { + temp_f26 *= (50.0f + lbl_1_rodata_10[temp_r29->unk00]) / sp120; + phi_f28 *= (50.0f + lbl_1_rodata_10[temp_r29->unk00]) / sp120; + arg0->trans.x = sp11C - temp_f26; + arg0->trans.z = sp118 - phi_f28; + } else { + temp_r29->unk04 = 0; + lbl_1_data_18F4[temp_r31->unk00 == 0 ? 0 : 1] += (phi_r24 == 10 ? 1 : 5); + CharModelCoinEffectCreate(-1, &sp188); + if (lbl_1_bss_54[phi_r24 == 10 ? 8 : 9].unk00 < 3) { + lbl_1_bss_54[phi_r24 == 10 ? 8 : 9].unk04[lbl_1_bss_54[phi_r24 == 10 ? 8 : 9].unk00] = 0.0f; + lbl_1_bss_54[phi_r24 == 10 ? 8 : 9].unk00++; + } + } + } + } + } + } + } + } + if (arg0->trans.z > (temp_r31->unk00 == 0 ? 620.0f : 1400.0f) - 50.0f) { + temp_r31->unk20 = 2; + temp_r31->unk30 = 0.0f; + HuAudCharVoicePlay(temp_r31->unk08, 0x123); + } + if (temp_r31->unk20 != 2) { + if (arg0->trans.x > (temp_r31->unk00 == 0 ? 400 : 400) - 50.0f) { + arg0->trans.x = (temp_r31->unk00 == 0 ? 400 : 400) - 50.0f; + } + if (arg0->trans.x < -(temp_r31->unk00 == 0 ? 400 : 400) + 50.0f) { + arg0->trans.x = -(temp_r31->unk00 == 0 ? 400 : 400) + 50.0f; + } + if (arg0->trans.z < (temp_r31->unk00 == 0 ? 0.0f : 600.0f) + 50.0f) { + arg0->trans.z = (temp_r31->unk00 == 0 ? 0.0f : 600.0f) + 50.0f; + } + if (arg0->trans.z > (temp_r31->unk00 == 0 ? 620.0f : 1400.0f) - 50.0f) { + arg0->trans.z = (temp_r31->unk00 == 0 ? 620.0f : 1400.0f) - 50.0f; + } + } + } + } + if (lbl_1_bss_34 == 1001) { + sp114 = temp_r31->unk00; + if (lbl_1_bss_8 == 23.0f) { + Hu3DMotionSet(lbl_1_bss_38->model[temp_r31->unk00 + 79], lbl_1_bss_38->motion[temp_r31->unk00 + 22]); + Hu3DModelAttrReset(lbl_1_bss_38->model[temp_r31->unk00 + 79], HU3D_MOTATTR_PAUSE); + if (lbl_1_bss_54[4].unk00 < 3) { + lbl_1_bss_54[4].unk04[lbl_1_bss_54[4].unk00] = 0.0f; + lbl_1_bss_54[4].unk00++; + } + } + if (lbl_1_bss_8 == 43.0f) { + Hu3DModelAttrSet(lbl_1_bss_38->model[temp_r31->unk00 + 79], HU3D_MOTATTR_PAUSE); + } + if (lbl_1_bss_8 == 80.0f) { + Hu3DMotionTimeSet(lbl_1_bss_38->model[temp_r31->unk00 + 79], 20.0f); + Hu3DModelAttrReset(lbl_1_bss_38->model[temp_r31->unk00 + 79], HU3D_MOTATTR_PAUSE); + } + if (lbl_1_bss_8 == 100.0f && lbl_1_bss_54[0].unk00 < 3) { + lbl_1_bss_54[0].unk04[lbl_1_bss_54[0].unk00] = 0.0f; + lbl_1_bss_54[0].unk00++; + } + if (lbl_1_bss_8 == 106.0f) { + Hu3DModelAttrReset(lbl_1_bss_38->model[temp_r31->unk00 + 39], 1); + Hu3DParticleCntSet(lbl_1_bss_38->model[temp_r31->unk00 + 39], 0); + lbl_1_bss_18 = 1; + } + if (lbl_1_bss_8 == 60.0f) { + Hu3DModelAttrReset(arg0->model[0], 1); + Hu3DMotionSet(arg0->model[0], arg0->motion[3]); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_PAUSE); + } + if (lbl_1_bss_8 == 61.0f) { + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_PAUSE); + } + if (lbl_1_bss_8 == 120.0f) { + phi_r25 = 3; + Hu3DModelAttrReset(arg0->model[0], 1); + } + if (lbl_1_bss_8 == 155.0f) { + phi_r25 = 0; + } + arg0->trans.x = lbl_1_data_F0[9][sp114].unk0C; + arg0->trans.z = (lbl_1_bss_8 > 163.0f) ? arg0->trans.z + : (lbl_1_bss_8 > 155.0f) ? (arg0->trans.z - 18.75) + : lbl_1_data_F0[9][sp114].unk14; + } + if (temp_r31->unk1C >= 0) { + phi_r25 = temp_r31->unk1C; + } + if (phi_r25 >= 0 && phi_r25 != temp_r31->unk18) { + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[phi_r25], 0.0f, lbl_1_data_E7[phi_r25], (lbl_1_data_E0[phi_r25] != 0) ? HU3D_MOTATTR_NONE : HU3D_MOTATTR_LOOP); + temp_r31->unk18 = phi_r25; + } +} + +s32 fn_1_34BC(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) { + Vec sp1C; + float var_f27; + float var_f28; + float var_f25; + float var_f26; + float temp_f30; + float var_f31; + float sp18; + StructDataF0* temp_r31; + s32 var_r24; + s32 i; + s32 j; + + for (i = 0; i < 12; i++) { + for (j = 0; j < (i < 10 ? 4 : 10); j++) { + temp_r31 = &lbl_1_data_F0[i][j]; + var_r24 = (i < 10) ? (i * 4 + 43 + j) : ((i - 10) * 10 + 83 + j); + if (temp_r31->unk04 != 0 && temp_r31->unk2C <= 0) { + Hu3DModelObjPosGet(lbl_1_bss_38->model[var_r24], lbl_1_data_1828[temp_r31->unk00], &sp1C); + if (temp_r31->unk04 == 3 || temp_r31->unk04 == 5) { + var_f27 = (temp_r31->unk08 == 0) ? temp_r31->unk0C : sp1C.x; + var_f28 = (temp_r31->unk08 == 0) ? temp_r31->unk14 : sp1C.z; + var_f25 = 50.0f + lbl_1_rodata_70[temp_r31->unk00]; + var_f26 = 50.0f + lbl_1_rodata_70[temp_r31->unk00]; + if (temp_r31->unk04 == 3) { + float sp28[][12] = { + { + -25.0f, -25.0f, -25.0f, + -6.6875f, -6.6875f, -6.6875f, + 62.765625f, 62.765625f, 62.765625f, + 51.99469f, 76.875f, 45.0f + }, + { + -27.647583f, -27.647583f, -27.647583f, + -9.64325f, -9.64325f, -9.64325f, + 60.49022f, 60.49022f, 60.49022f, + 51.99469f, 76.875f, 45.0f + } + }; + + var_f28 += sp28[temp_r31->unk08 == 0 ? 0 : 1][temp_r31->unk00]; + var_f25 += 50.0f; + var_f26 += 50.0f; + } else if (temp_r31->unk04 == 5 && temp_r31->unk08 == 0) { + var_f28 += lbl_1_rodata_130[temp_r31->unk00]; + } else if (temp_r31->unk04 == 1) { + var_f27 = (temp_r31->unk0C < 0.0f ? -1 : 1) * 321; + var_f28 = 880.0f - lbl_1_bss_0 * (100 - temp_r31->unk08); + } + if (temp_r31->unk00 == 9) { + var_f26 += 300.0f; + } + if (lbl_1_rodata_40[temp_r31->unk00] > 0.0f || var_f25 > 0.0f || var_f26 > 0.0f) { + var_f27 = (arg0 < var_f27 - lbl_1_rodata_40[temp_r31->unk00]) ? (var_f27 - lbl_1_rodata_40[temp_r31->unk00]) + : (arg0 > var_f27 + lbl_1_rodata_40[temp_r31->unk00]) ? (var_f27 + lbl_1_rodata_40[temp_r31->unk00]) + : arg0; + var_f28 = (arg1 < var_f28 - var_f25) ? (var_f28 - var_f25) + : (arg1 > var_f28 + var_f26) ? (var_f28 + var_f26) + : arg1; + } + temp_f30 = var_f27 - arg0; + var_f31 = var_f28 - arg1; + if (i < 10 && temp_f30 == 0.0f && var_f31 == 0.0f) { + var_f31 = -1.0f; + } + sp18 = sqrtf(temp_f30 * temp_f30 + var_f31 * var_f31); + if (sp18 < arg2 + lbl_1_rodata_10[temp_r31->unk00]) { + return 1; + } + } + } + } + } + return 0; +} + +void fn_1_3B74(omObjData* arg0) { + StructBss3CData* sp354[4]; + Vec sp348; + s32 var_r20; + s32 var_r19; + s32 var_r18; + s32 var_r17; + s32 sp230; + s32 sp22C; + s32 sp228; + s32 sp224; + s32 sp220; + s32 sp21C; + s32 sp218; + float sp214; + float sp210; + float sp20C; + s32 sp208; + float var_f25; + float var_f24; + float temp_f21; + float temp_f20; + float temp_f23; + float temp_f22; + float temp_f26; + float temp_f28; + float temp_f27; + float temp_f29; + float temp_f30; + float temp_f31; + StructDataF0* temp_r31; + s32 var_r21; + s32 var_r28; + s32 var_r27; + s32 var_r25; + s32 i; + s32 j; + + for (i = 0; i < 4; i++) { + sp354[i] = lbl_1_bss_3C[i]->data; + } + lbl_1_bss_C++; + lbl_1_bss_0 = (lbl_1_bss_34 <= 1002) ? 1.5 + : (lbl_1_bss_34 == 1003) ? (7.5 * (lbl_1_bss_8 > 120.0f ? 1.0 : (0.2 + 0.8 * (lbl_1_bss_8 / 120.0)))) + : 0.0; + lbl_1_bss_4 = (lbl_1_bss_34 < 1005 && sp354[0]->unk20 >= 2 && sp354[0]->unk20 <= 5 + && !(lbl_1_bss_34 == 1003 && lbl_1_bss_8 <= 120.0f)) ? 7.5 : lbl_1_bss_0; + Hu3DMotionSpeedSet(arg0->model[1], 1.5 * lbl_1_bss_4 / 7.5); + Hu3DMotionSpeedSet(arg0->model[3], 1.5 * lbl_1_bss_0 / 7.5); + if (lbl_1_data_18B0 != -1) { + temp_f21 = 1.5 * lbl_1_bss_4 / 7.5; + HuAudFXPitchSet(lbl_1_data_18B0, 8190.0f * temp_f21 - 8190.0f); + HuAudFXVolSet(lbl_1_data_18B0, temp_f21 <= 0.001 ? 0 : 127); + } + if (lbl_1_bss_34 <= 1001) { + temp_f31 = (lbl_1_bss_34 == 1000 || lbl_1_bss_8 < 60.0f) ? 0.0 + : (lbl_1_bss_8 < 120.0f) ? (lbl_1_bss_8 - 60.0f) / 60.0 + : 1.0; + temp_f31 = 1.0f - temp_f31; + temp_f31 *= temp_f31; + temp_f31 = 1.0f - temp_f31; + temp_f28 = 1.0f - temp_f31; + Center.x = 690.0f * temp_f31; + Center.y = 400.0f * temp_f28 + 1340.0f * temp_f31; + Center.z = 500.0f * temp_f28 + 1380.0f * temp_f31; + CRot.x = -10.0f * temp_f28 + -50.8125f * temp_f31; + CRot.y = 40.0f * temp_f31; + CZoom = 2126.6f * temp_f28 + 2126.6f * temp_f31; + Center.x = 700.0f * temp_f31; + Center.y = 400.0f * temp_f28 + 870.0f * temp_f31; + Center.z = 500.0f * temp_f28 + 1320.0f * temp_f31; + CRot.x = -10.0f * temp_f28 + -37.25f * temp_f31; + CRot.y = 40.0f * temp_f31; + } + if (lbl_1_bss_34 == 1005 && lbl_1_bss_8 < 100.0f) { + temp_f30 = (lbl_1_bss_8 < 90.0f) ? (lbl_1_bss_8 / 90.0) : 1.0; + temp_f30 = 1.0f - temp_f30; + temp_f30 *= temp_f30; + temp_f30 = 1.0f - temp_f30; + temp_f26 = 1.0f - temp_f30; + Center.x = 120.0f * temp_f30 + 700.0f * temp_f26; + Center.y = 292.5f * temp_f30 + 870.0f * temp_f26; + Center.z = 1200.0f * temp_f30 + 1320.0f * temp_f26; + CRot.x = -19.5f * temp_f30 + -37.25f * temp_f26; + CRot.y = 13.5f * temp_f30 + 40.0 * temp_f26; + CZoom = 2126.6f * temp_f30 + 2126.6f * temp_f26; + } + var_r20 = (sp354[0]->unk20 == 3 && (lbl_1_data_F0[9][0].unk04 == 0 || lbl_1_bss_34 != 1003)); + sp22C = (sp354[1]->unk20 == 3 && (lbl_1_data_F0[9][1].unk04 == 0 || lbl_1_bss_34 != 1003)) + + (sp354[2]->unk20 == 3 && (lbl_1_data_F0[9][2].unk04 == 0 || lbl_1_bss_34 != 1003)) + + (sp354[3]->unk20 == 3 && (lbl_1_data_F0[9][3].unk04 == 0 || lbl_1_bss_34 != 1003)); + var_r19 = (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 60 == 0) ? (rand8() % 2 + 1 + var_r20) : var_r20; + var_r18 = (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 120 == 0) ? (rand8() % 2 + 1) : 0; + var_r17 = sp22C + (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 60 == 0 && lbl_1_bss_28 > 120); + sp228 = (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 60 == 0) ? (rand8() % 2 + 2) : 0; + sp224 = 0; + var_r19 = (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 60 == 0) ? ((rand8() % 4 < 3) + 1 + var_r20) : var_r20; + var_r18 = (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 120 == 1) ? (rand8() % 2 + 1) : 0; + var_r17 = sp22C + (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 60 == 38 && lbl_1_bss_28 > 120); + sp228 = (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 60 == 0) ? (rand8() % 2 + 2) : 0; + while (var_r19 > 0 || var_r18 > 0 || var_r17 > 0 || sp228 > 0) { + var_r27 = (rand8() % 2 == 0) + ? ((var_r17 != 0) ? 3 + : (sp228 != 0) ? 4 + : (var_r19 != 0) ? 1 + : (var_r18 != 0) ? 2 : 0) + : ((var_r17 != 0) ? 3 + : (var_r19 != 0) ? 1 + : (sp228 != 0) ? 4 + : (var_r18 != 0) ? 2 : 0); + sp224++; + if (sp224 > 8) { + var_r19 -= (var_r27 == 1); + var_r18 -= (var_r27 == 2); + var_r17 -= (var_r27 == 3); + sp228 -= (var_r27 == 4); + sp224 = 0; + } else if (var_r27 == 1 || var_r27 == 2 || var_r27 == 3 || var_r27 == 4) { + var_r28 = (var_r27 != 4) ? (rand8() % 9) : 10; + if (var_r27 == 1 && var_r20 != 0) { + var_r28 = 9; + i = 0; + } else if (var_r27 == 3 && sp22C != 0) { + var_r28 = 9; + i = (sp354[(lbl_1_bss_C % 3) + 1]->unk20 == 3 && (lbl_1_data_F0[9][lbl_1_bss_C % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) ? (lbl_1_bss_C % 3 + 1) + : (sp354[(lbl_1_bss_C + 1) % 3 + 1]->unk20 == 3 && (lbl_1_data_F0[9][(lbl_1_bss_C + 1) % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) ? ((lbl_1_bss_C + 1) % 3 + 1) + : (sp354[(lbl_1_bss_C + 2) % 3 + 1]->unk20 == 3 && (lbl_1_data_F0[9][(lbl_1_bss_C + 2) % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) ? ((lbl_1_bss_C + 2) % 3 + 1) : 0; + } else { + if (var_r28 == 10 && (lbl_1_bss_28 / 60) / 15 + 1 <= 2 - lbl_1_bss_14 && rand8() % (((lbl_1_bss_28 / 60 - (1 - lbl_1_bss_14) * 15) * 3) + 1) == 0) { + var_r28 = 11; + } + for (i = 0; i < (var_r27 != 4 ? 4 : 10); i++) { + if (lbl_1_data_F0[var_r28][i].unk04 == 0) { + break; + } + } + if (i >= (var_r27 != 4 ? 4 : 10)) { + continue; + } + } + lbl_1_data_F0[var_r28][i].unk0C = (var_r27 != 3) + ? (rand8() % 7 - 3) * 100 + : ((rand8() % 2) * 2 - 1) * 1595; + if (i == 0 && lbl_1_bss_34 >= 1004 && var_r28 == 9) { + lbl_1_data_F0[var_r28][i].unk0C = 0.0f; + } + lbl_1_data_F0[var_r28][i].unk10 = (var_r27 == 1) ? 300 + : (var_r27 == 2) ? 0 + : (var_r27 == 3) ? 500 + : (var_r27 == 4) ? 300 : 0; + lbl_1_data_F0[var_r28][i].unk14 = (var_r27 == 1) ? -450 + : (var_r27 == 2) ? -450 + : (var_r27 == 3) ? 105 + : (var_r27 == 4) ? -150 : 0; + lbl_1_data_F0[var_r28][i].unk14 += (var_r27 == 1) ? -(var_r28 <= 8 ? 0 : 0) + : (var_r27 == 2) ? -(var_r28 <= 8 ? (var_r28 / 3) * 80 : 0) + : (var_r27 == 4) ? -50 : 0; + lbl_1_data_F0[var_r28][i].unk14 += (var_r27 == 1) + ? ((var_r28 <= 2) ? 315.0 + : (var_r28 <= 5) ? 296.6875 + : (var_r28 <= 8) ? 227.234375 + : (var_r28 == 9) ? 200 : 0) : 0.0; + if (var_r27 == 1 || var_r27 == 4) { + float sp3C4[] = { + -25.0f, -25.0f, -25.0f, + -6.6875f, -6.6875f, -6.6875f, + 62.765625f, 62.765625f, 62.765625f, + 51.99469f, 76.875f, 45.0f, + -27.647583f, -27.647583f, -27.647583f, + -9.64325f, -9.64325f, -9.64325f, + 60.49022f, 60.49022f, 60.49022f, + 51.99469f, 76.875f, 45.0f + }; + + var_f25 = lbl_1_data_F0[var_r28][i].unk0C; + var_f24 = sp3C4[var_r28] + lbl_1_data_F0[var_r28][i].unk14; + } else if (var_r27 == 2) { + var_f25 = lbl_1_data_F0[var_r28][i].unk0C; + var_f24 = lbl_1_rodata_130[var_r28] + lbl_1_data_F0[var_r28][i].unk14; + } else if (var_r27 == 3) { + var_f25 = (lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? -335 : 335; + var_f24 = 830.0f - 94.0f * lbl_1_bss_0; + } else { + var_f25 = lbl_1_data_F0[var_r28][i].unk0C; + var_f24 = lbl_1_data_F0[var_r28][i].unk14; + } + if (fn_1_34BC(var_f25, var_f24, lbl_1_rodata_10[lbl_1_data_F0[var_r28][i].unk00] + lbl_1_rodata_40[lbl_1_data_F0[var_r28][i].unk00], var_r28, 0) != 0) { + continue; + } + if (var_r27 == 3 && lbl_1_data_18A4[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 0 : 1] > 0) { + continue; + } + if (var_r27 == 4) { + for (var_r21 = 0; var_r21 < 10; var_r21++) { + if (lbl_1_data_F0[10][var_r21].unk04 != 0 + && fabs(lbl_1_data_F0[var_r28][i].unk14 - lbl_1_data_F0[10][var_r21].unk14) <= 100.0 + && fabs(lbl_1_data_F0[var_r28][i].unk0C - lbl_1_data_F0[10][var_r21].unk0C) <= 200.0) + { + break; + } + if (lbl_1_data_F0[11][var_r21].unk04 != 0 + && fabs(lbl_1_data_F0[var_r28][i].unk14 - lbl_1_data_F0[11][var_r21].unk14) <= 100.0 + && fabs(lbl_1_data_F0[var_r28][i].unk0C - lbl_1_data_F0[11][var_r21].unk0C) <= 200.0) + { + break; + } + } + if (var_r21 < 10 || (lbl_1_data_F0[var_r28][i].unk0C >= -100.0f && lbl_1_data_F0[var_r28][i].unk0C <= 100.0f)) { + continue; + } + } + if (var_r28 == 11) { + lbl_1_bss_14++; + } + if ((lbl_1_bss_28 / 60) / 15 == 0 && lbl_1_bss_14 == 0) { + lbl_1_bss_14++; + } + lbl_1_data_F0[var_r28][i].unk00 = var_r28; + lbl_1_data_F0[var_r28][i].unk04 = (var_r27 == 1) ? 3 + : (var_r27 == 2) ? 5 + : (var_r27 == 3) ? 1 + : (var_r27 == 4) ? 3 : 0; + lbl_1_data_F0[var_r28][i].unk08 = 0; + lbl_1_data_F0[var_r28][i].unk2C = 0; + lbl_1_data_F0[var_r28][i].unk18 = lbl_1_data_F0[var_r28][i].unk1C = lbl_1_data_F0[var_r28][i].unk20 = 0.0f; + if (var_r27 != 4) { + sp220 = var_r28 * 4 + 43 + i; + Hu3DMotionTimeSet(arg0->model[sp220], (var_r27 == 1 || var_r27 == 3) ? 1.0f : Hu3DMotionMaxTimeGet(arg0->model[sp220])); + Hu3DModelAttrSet(arg0->model[sp220], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(arg0->model[sp220], 1); + Hu3DModelRotSet(arg0->model[sp220], 0.0f, 0.0f, 0.0f); + } else { + Hu3DModelAttrReset(arg0->model[i + (var_r28 == 10 ? 83 : 93)], 1); + } + if (var_r27 == 1 && var_r20 != 0) { + var_r20--; + sp354[0]->unk20 = 4; + } else if (var_r27 == 3 && sp22C != 0) { + sp22C--; + sp354[i]->unk20 = 4; + } + if (var_r27 == 3) { + lbl_1_data_18A4[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 0 : 1] = 85; + Hu3DMotionTimeSet(arg0->model[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 6 : 5], 9.0f); + if (var_r28 == 9 && lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6].unk00 < 3) { + lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6].unk04[lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6].unk00] = 0.0f; + lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6].unk00++; + } + } + if (var_r28 == 9) { + sp21C = var_r28 * 4 + 43 + i; + Hu3DMotionSet(arg0->model[sp21C], arg0->motion[i + 22]); + Hu3DMotionTimeSet(arg0->model[sp21C], 0.0f); + Hu3DMotionSpeedSet(arg0->model[sp21C], 2.0f); + } + var_r19 -= (var_r27 == 1); + var_r18 -= (var_r27 == 2); + var_r17 -= (var_r27 == 3); + sp228 -= (var_r27 == 4); + sp224 = 0; + } + } + for (i = 0; i < 12; i++) { + for (j = 0; j < (i < 10 ? 4 : 10); j++) { + temp_r31 = &lbl_1_data_F0[i][j]; + var_r25 = (i < 10) + ? (i * 4 + 43 + j) + : ((i - 10) * 10 + 83 + j); + sp348.x = sp348.y = sp348.z = 0.0f; + if (temp_r31->unk04 == 0) { + Hu3DModelAttrSet(arg0->model[var_r25], 1); + } else { + temp_r31->unk08++; + temp_r31->unk24 += (temp_r31->unk00 == 10) ? 0 : 0; + temp_r31->unk24 += (temp_r31->unk24 < 0.0f) ? 360 + : (temp_r31->unk24 > 360.0f) ? -360 : 0; + Hu3DModelObjPosGet(arg0->model[var_r25], lbl_1_data_1828[temp_r31->unk00], &sp348); + switch (temp_r31->unk04) { + case 3: + case 5: + case 6: + if (temp_r31->unk00 >= 3 && temp_r31->unk00 >= 9 && temp_r31->unk04 == 3 + && temp_r31->unk14 < -120.0f && temp_r31->unk14 + lbl_1_bss_4 >= -120.0f) + { + sp218 = (500.0f + temp_r31->unk0C) / 100.0f; + sp218 = (sp218 < 0) ? 0 + : (sp218 >= 11) ? 10 + : sp218; + lbl_1_data_1878[sp218] = 15; + Hu3DMotionShiftSet(arg0->model[sp218 + 8], arg0->motion[11], 20.0f, 15.0f, HU3D_MOTATTR_NONE); + if (temp_r31->unk00 == 9 && lbl_1_bss_54[5].unk00 < 3) { + lbl_1_bss_54[5].unk04[lbl_1_bss_54[5].unk00] = 0.0f; + lbl_1_bss_54[5].unk00++; + } + } + temp_r31->unk14 += (temp_r31->unk04 == 3 ? lbl_1_bss_4 : lbl_1_bss_0); + if (lbl_1_bss_34 >= 1003 && lbl_1_bss_34 < 1005) { + if ((temp_r31->unk04 == 3 && temp_r31->unk00 == 9 && temp_r31->unk14 >= 150.0f && temp_r31->unk14 - lbl_1_bss_4 < 150.0f) + || (temp_r31->unk04 == 6 && temp_r31->unk00 == 9 && temp_r31->unk08 == 1)) + { + sp354[j]->unk20 = 5; + sp354[j]->unk24 = 0; + lbl_1_bss_3C[j]->trans.x = temp_r31->unk0C; + lbl_1_bss_3C[j]->trans.y = (j == 0 ? 300 : 0); + lbl_1_bss_3C[j]->trans.z = temp_r31->unk14; + lbl_1_bss_3C[j]->rot.y = 180 + ((lbl_1_bss_20 == 4 && temp_r31->unk04 == 6) + ? (temp_r31->unk0C < 0.0f ? -45 : 45) + : 0); + Hu3DMotionSpeedSet(arg0->model[j + 79], 1.0f); + Hu3DMotionShiftSet(arg0->model[j + 79], arg0->motion[j + 22], 44.0f, 2.0f, HU3D_MOTATTR_NONE); + Hu3DParticleCntSet(arg0->model[j + 39], j == 0 ? 15 : 0); + if (lbl_1_bss_54->unk00 < 3) { + lbl_1_bss_54->unk04[lbl_1_bss_54->unk00] = 0.0f; + lbl_1_bss_54->unk00++; + } + } + } + if (temp_r31->unk04 == 3 && temp_r31->unk14 > 510.0f) { + temp_r31->unk04 = 4; + temp_r31->unk08 = 0; + if (temp_r31->unk00 != 10) { + if (temp_r31->unk00 != 9) { + Hu3DMotionTimeSet(arg0->model[var_r25], 1.0f); + } else { + Hu3DMotionSet(arg0->model[var_r25], arg0->motion[j + 26]); + Hu3DMotionTimeSet(arg0->model[var_r25], 1.0f); + Hu3DMotionSpeedSet(arg0->model[var_r25], 1.0f); + } + Hu3DModelAttrReset(arg0->model[var_r25], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); + } + } + if ((temp_r31->unk04 == 5 || temp_r31->unk04 == 6) && sp348.z > 1400.0f && temp_r31->unk14 > 700.0f) { + temp_r31->unk08 = 0; + temp_r31->unk10 = sp348.y; + temp_r31->unk14 = sp348.z; + temp_r31->unk1C = 0.0f; + if (temp_r31->unk00 == 10) { + Hu3DModelAttrSet(arg0->model[var_r25], HU3D_MOTATTR_LOOP); + } else if (temp_r31->unk00 != 9) { + Hu3DMotionTimeSet(arg0->model[var_r25], 2.0f); + Hu3DModelAttrReset(arg0->model[var_r25], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); + } else { + Hu3DMotionSet(arg0->model[var_r25], arg0->motion[(temp_r31->unk04 == 6) ? (j + 26) : (j + 30)]); + Hu3DMotionTimeSet(arg0->model[var_r25], 1.0f); + Hu3DMotionSpeedSet(arg0->model[var_r25], 1.0f); + } + temp_r31->unk04 = 7; + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, temp_r31->unk10, temp_r31->unk14); + } else { + Hu3DModelPosSet(arg0->model[var_r25], + temp_r31->unk0C, + ((temp_r31->unk00 >= 0 && temp_r31->unk00 < 10) + ? ((temp_r31->unk04 != 6 ? 300 : 0) + lbl_1_rodata_100[temp_r31->unk00]) + : temp_r31->unk10) + lbl_1_rodata_A0[temp_r31->unk00], + temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); + } + if (temp_r31->unk00 >= 10) { + Hu3DModelRotSet(arg0->model[var_r25], 0.0f, temp_r31->unk24, 0.0f); + } + break; + case 4: + if (temp_r31->unk00 >= 0 && temp_r31->unk00 < 10) { + float sp394[] = { + 0.0f, 0.0f, 0.0f, 0.9f, 0.9f, 0.9f, + 1.75f, 1.75f, 1.75f, 0.0f, 0.0f, 0.0f + }; + s32 sp364[] = { + 42, 42, 42, 41, 41, 41, + 48, 48, 48, 27, 27, 27 + }; + + if (temp_r31->unk00 >= 6 && temp_r31->unk00 <= 8) { + temp_f29 = temp_r31->unk08; + temp_f27 = (temp_f29 <= 1.0f) ? 0.0 + : (temp_f29 >= 30.0f && temp_f29 < 40.0f) ? -1.0 * (1.0 - (temp_f29 - 30.0f) / 9.0) + : (temp_f29 >= 40.0f) ? 1.0 - (temp_f29 - 40.0f) / 8.0 + : 1.0; + temp_f27 = (temp_f29 >= 40.0f) + ? -1.0 + (temp_f27 * 0.5 + temp_f27 * temp_f27 * 0.5) + : temp_f27; + temp_f27 = (temp_f29 <= 1.0f) ? 0.0 + : (temp_f29 < 23.0f) ? 1.0 + : (temp_f29 < 32.0f) ? 0.5 + : (temp_f29 < 40.0f) ? -0.8 + : (-1.0 - 0.4 * (1.0 - (temp_f29 - 40.0f) / 8.0)); + temp_r31->unk14 -= (lbl_1_bss_4 * sp394[temp_r31->unk00] / 4.0) * temp_f27; + } else { + temp_r31->unk14 -= lbl_1_bss_4 * sp394[temp_r31->unk00] / 4.0; + } + if (temp_r31->unk08 >= sp364[temp_r31->unk00]) { + temp_r31->unk10 = 0.0f; + temp_r31->unk04 = 5; + temp_r31->unk08 = 0; + } + } else { + temp_r31->unk1C -= 1.0f; + temp_r31->unk10 += temp_r31->unk1C; + temp_r31->unk14 += 1.25 * lbl_1_bss_4; + if (temp_r31->unk10 <= 0.0f) { + if (temp_r31->unk1C < -10.0f && temp_r31->unk00 == 10) { + temp_r31->unk1C = 9.0f; + } else { + temp_r31->unk1C = 0.0f; + temp_r31->unk10 = 0.0f; + temp_r31->unk04 = 5; + temp_r31->unk08 = 0; + } + } + } + Hu3DModelPosSet(arg0->model[var_r25], + temp_r31->unk0C, + lbl_1_rodata_A0[temp_r31->unk00] + ((temp_r31->unk00 >= 0 && temp_r31->unk00 < 10) ? (300.0f + lbl_1_rodata_100[temp_r31->unk00]) : temp_r31->unk10), + temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); + if (temp_r31->unk00 >= 10) { + Hu3DModelRotSet(arg0->model[var_r25], 0.0f, temp_r31->unk24, 0.0f); + } + break; + case 1: + temp_f20 = temp_r31->unk08 / 90.0; + temp_f23 = 1.0f - temp_f20; + sp214 = temp_r31->unk0C; + sp210 = temp_r31->unk10; + sp20C = temp_r31->unk14; + temp_r31->unk0C = (460.0f + 1135.0f * temp_f23) * (temp_r31->unk0C < 0.0f ? -1 : 1); + temp_r31->unk10 = 100.0f * temp_f20 + 500.0f * temp_f23; + temp_r31->unk14 = 800.0f - 695.0f * temp_f23; + temp_r31->unk18 = temp_r31->unk0C - sp214; + temp_r31->unk1C = temp_r31->unk10 - sp210; + temp_r31->unk20 = temp_r31->unk14 - sp20C; + if (temp_r31->unk08 >= 90) { + temp_r31->unk04 = 2; + temp_r31->unk08 = 0; + } + Hu3DModelPosSet(arg0->model[var_r25], + temp_r31->unk0C, + temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00], + temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); + Hu3DModelRotSet(arg0->model[var_r25], + 9.0f, + (temp_r31->unk0C < 0.0f) ? -31 : 31, + (temp_r31->unk0C < 0.0f) ? -18 : 18); + break; + case 2: + temp_r31->unk1C -= (temp_r31->unk00 != 9) ? 0.625 : 0.9; + temp_r31->unk0C += temp_r31->unk18; + temp_r31->unk10 += temp_r31->unk1C; + temp_r31->unk14 += temp_r31->unk20; + if (temp_r31->unk10 <= lbl_1_rodata_100[temp_r31->unk00]) { + temp_r31->unk10 = -lbl_1_rodata_100[temp_r31->unk00]; + temp_r31->unk1C = 0.0f; + temp_r31->unk04 = 6; + temp_r31->unk08 = 0; + Hu3DModelPosSet(arg0->model[var_r25], + temp_r31->unk0C, + temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00] + lbl_1_rodata_100[temp_r31->unk00] + lbl_1_rodata_100[temp_r31->unk00], + temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); + Hu3DModelRotSet(arg0->model[var_r25], 0.0f, (temp_r31->unk0C < 0.0f) ? -31 : 31, 0.0f); + } else { + Hu3DModelPosSet(arg0->model[var_r25], + temp_r31->unk0C, + temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00], + temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); + } + break; + case 7: + temp_r31->unk1C -= 1.0f; + temp_r31->unk10 += temp_r31->unk1C; + temp_r31->unk14 += (temp_r31->unk00 >= 10) ? lbl_1_bss_0 : 0.0f; + if (temp_r31->unk10 <= -800.0f) { + Hu3DModelAttrSet(arg0->model[var_r25], 1); + if (temp_r31->unk00 == 9) { + Hu3DMotionSet(arg0->model[var_r25], arg0->motion[j + 22]); + Hu3DMotionTimeSet(arg0->model[var_r25], 0.0f); + Hu3DMotionSpeedSet(arg0->model[var_r25], 2.0f); + } + temp_r31->unk04 = 0; + } + Hu3DModelPosSet(arg0->model[var_r25], + temp_r31->unk0C, + (temp_r31->unk00 >= 0 && temp_r31->unk00 < 9) ? (300.0f + lbl_1_rodata_100[temp_r31->unk00]) : temp_r31->unk10, + temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, temp_r31->unk10, temp_r31->unk14); + if (temp_r31->unk00 >= 10) { + Hu3DModelRotSet(arg0->model[var_r25], 0.0f, temp_r31->unk24, 0.0f); + } + break; + } + if (temp_r31->unk00 >= 0 && temp_r31->unk00 <= 8 && (temp_r31->unk04 == 4 || temp_r31->unk04 == 5)) { + sp208 = Hu3DMotionTimeGet(arg0->model[var_r25]); + if (temp_r31->unk00 >= 0 && temp_r31->unk00 <= 2 && (sp208 == 26 || sp208 == -41) && lbl_1_bss_54[3].unk00 < 3) { + lbl_1_bss_54[3].unk04[lbl_1_bss_54[3].unk00] = 0.0f; + lbl_1_bss_54[3].unk00++; + } + if (temp_r31->unk00 >= 3 && temp_r31->unk00 <= 5 && (sp208 == 23 || sp208 == -39) && lbl_1_bss_54[2].unk00 < 3) { + lbl_1_bss_54[2].unk04[lbl_1_bss_54[2].unk00] = 0.0f; + lbl_1_bss_54[2].unk00++; + } + if (temp_r31->unk00 >= 6 && temp_r31->unk00 <= 8 && (sp208 == 20 || sp208 == -29) && lbl_1_bss_54[1].unk00 < 3) { + lbl_1_bss_54[1].unk04[lbl_1_bss_54[1].unk00] = 0.0f; + lbl_1_bss_54[1].unk00++; + } + } + if (i == 9 && lbl_1_bss_18 != 0) { + ModelData* sp204 = &Hu3DData[arg0->model[j + 39]]; + ParticleData* sp200 = sp204->unk_120; + + if (sp200->unk_34 == 63) { + ModelData* temp_r23 = &Hu3DData[arg0->model[var_r25]]; + ModelData* temp_r22 = &Hu3DData[arg0->model[j + 39]]; + + temp_r22->pos.x = temp_r23->pos.x; + temp_r22->pos.y = temp_r23->pos.y; + temp_r22->pos.z = temp_r23->pos.z; + temp_r22->rot.x = temp_r23->rot.x; + temp_r22->rot.y = temp_r23->rot.y; + temp_r22->rot.z = temp_r23->rot.z; + } + } + if (temp_r31->unk2C == 0 && (lbl_1_bss_34 == 1004 || lbl_1_bss_34 == 1005)) { + if (temp_r31->unk00 != 9 + || (temp_r31->unk04 != 1 && temp_r31->unk04 != 2 && ((temp_r31->unk04 != 3 && temp_r31->unk04 != 6) || sp354[j]->unk20 > 5 || sp354[j]->unk20 < 3))) + { + temp_r31->unk2C = 1; + } + } + temp_r31->unk2C += (temp_r31->unk2C > 0); + if (temp_r31->unk2C != 0 && (temp_r31->unk2C % 2 == 0 || temp_r31->unk2C > 25)) { + Hu3DModelAttrSet(arg0->model[var_r25], 1); + } else { + Hu3DModelAttrReset(arg0->model[var_r25], 1); + } + } + } + } + for (i = 0; i < 11; i++) { + if (lbl_1_data_1878[i] == 1) { + Hu3DMotionShiftSet(arg0->model[i + 8], arg0->motion[0], 0.0f, 60.0f, HU3D_MOTATTR_LOOP); + } + lbl_1_data_1878[i] -= (lbl_1_data_1878[i] > 0); + } + lbl_1_data_18A4[0] -= (lbl_1_data_18A4[0] > 0); + lbl_1_data_18A4[1] -= (lbl_1_data_18A4[1] > 0); + for (i = 0; i < 3; i++) { + for (j = 0; j < 8; j++) { + s32 sp1FC = lbl_1_bss_104[i][j].unk00 + 21; + + lbl_1_bss_104[i][j].unk04++; + if (lbl_1_bss_104[i][j].unk04 >= 520) { + if (lbl_1_bss_104[i][j].unk00 != -1) { + Hu3DModelAttrReset(arg0->model[lbl_1_bss_104[i][j].unk00 + 21], 1); + } + lbl_1_bss_104[i][j].unk04 = 0; + lbl_1_bss_104[i][j].unk00 = -1; + for (sp230 = 0; sp230 < 14; sp230++) { + s32 sp1F8; + s32 sp1F4 = rand8() % 18; + + for (sp1F8 = 0; sp1F8 < 24; sp1F8++) { + if (sp1F4 == lbl_1_bss_104[sp1F8 / 8][sp1F8 % 8].unk00) { + break; + } + } + if (sp1F8 == 24) { + lbl_1_bss_104[i][j].unk00 = sp1F4; + break; + } + } + if (lbl_1_bss_104[i][j].unk00 != -1) { + Hu3DModelAttrReset(arg0->model[lbl_1_bss_104[i][j].unk00 + 21], 1); + } + } + sp1FC = lbl_1_bss_104[i][j].unk00 + 21; + temp_f22 = lbl_1_bss_104[i][j].unk04 / 520.0f; + if (lbl_1_bss_104[i][j].unk00 != -1) { + switch (i) { + case 0: + Hu3DModelPosSet(arg0->model[sp1FC], 2000.0f - 4000.0f * temp_f22, -490.0f, 1000.0f); + break; + case 1: + Hu3DModelPosSet(arg0->model[sp1FC], -1200.0f, -290.0f, 2000.0f - 4000.0f * temp_f22); + break; + case 2: + Hu3DModelPosSet(arg0->model[sp1FC], 1200.0f, -290.0f, 2000.0f - 4000.0f * temp_f22); + break; + } + } + } + } + for (i = 0; i < 2; i++) { + espBankSet(lbl_1_data_40[i * 7 + 2], lbl_1_data_18F4[i] % 10); + espBankSet(lbl_1_data_40[i * 7 + 3], (lbl_1_data_18F4[i] / 10) % 10); + } + for (i = 0; i < 4; i++) { + ModelData* temp_r24 = &Hu3DData[lbl_1_bss_3C[i]->model[0]]; + float temp_f19 = 0.0f; + float sp1F0 = (temp_r24->unk_08 == lbl_1_bss_3C[i]->motion[3]) ? 0 : -1; + float sp1EC = (temp_r24->unk_0C == lbl_1_bss_3C[i]->motion[3]) ? 0 : -1; + float sp1E8 = (sp1F0 == -1.0f) ? 0.0f + : (temp_r24->unk_64 < 4.0f) ? 0.0f + : (temp_r24->unk_64 > 28.0f) ? 1.0f + : (temp_r24->unk_64 - 4.0f) / 24.0f; + float sp1E4 = (sp1EC == -1.0f) ? 0.0f + : (temp_r24->unk_84 < 4.0f) ? 0.0f + : (temp_r24->unk_84 > 28.0f) ? 1.0f + : (temp_r24->unk_84 - 4.0f) / 24.0f; + float temp_f18 = (temp_r24->unk_0C == -1) ? 0.0f + : (temp_r24->unk_80 == 0.0f) ? 1.0f + : (temp_r24->unk_7C / temp_r24->unk_80); + + temp_f19 = sp1E8 * (1.0f - temp_f18) + sp1E4 * temp_f18; + if (!(temp_r24->attr & 1) && sp354[i]->unk20 != 3 && sp354[i]->unk20 != 4 && lbl_1_bss_3C[i]->trans.z < 1400.0f) { + Hu3DModelAttrReset(lbl_1_bss_3C[i]->model[1], 1); + Hu3DModelPosSet(lbl_1_bss_3C[i]->model[1], + lbl_1_bss_3C[i]->trans.x, + (lbl_1_bss_3C[i]->trans.z < 620.0f) ? 5 : -295, + lbl_1_bss_3C[i]->trans.z - 165.0f * temp_f19); + Hu3DModelScaleSet(lbl_1_bss_3C[i]->model[1], + 0.75 * (sp354[i]->unk08 == 5 ? 1.25 : 1.0), + 1.0f, + 1.25 * (sp354[i]->unk08 == 5 ? 1.25 : 1.0)); + } else { + Hu3DModelAttrSet(lbl_1_bss_3C[i]->model[1], 1); + } + } +} + +void fn_1_89E0(omObjData* arg0) { + StructBss3CData* spC[4]; + s32 sp8; + s32 var_r29; + s32 var_r30; + s32 i; + + for (i = 0; i < 4; i++) { + spC[i] = lbl_1_bss_3C[i]->data; + } + for (i = 0; i < 11; i++) { + s32 sp1C[] = { + 0x60A, 0x60B, 0x60C, + 0x60D, 0x60E, 0x60F, + 0x611, 0x610, 0x007, + 0x013, 0x612 + }; + + if (lbl_1_bss_54[i].unk00 > 3) { + lbl_1_bss_54[i].unk00 = 3; + } + if (lbl_1_bss_54[i].unk00 > 0) { + sp8 = HuAudFXPlay(sp1C[i]); + lbl_1_bss_54[i].unk00--; + } + } + if (omSysExitReq != 0 && WipeStatGet() == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_B480; + } + switch (lbl_1_bss_34) { + case 1000: + lbl_1_bss_8 += 1.0f; + if (lbl_1_bss_8 == 5.0f) { + lbl_1_data_18B0 = HuAudFXPlay(0x609); + } + if (WipeStatGet() == 0) { + lbl_1_bss_34++; + lbl_1_bss_8 = 0.0f; + } + break; + case 1001: + lbl_1_bss_8 += 1.0f; + if (180.0f < lbl_1_bss_8) { + lbl_1_bss_34++; + lbl_1_bss_8 = 0.0f; + } + break; + case 1002: + lbl_1_bss_8 += 1.0f; + if (lbl_1_bss_8 == 5.0f && lbl_1_bss_2E < 0) { + lbl_1_bss_2E = MGSeqStartCreate(); + } + if (lbl_1_bss_8 >= 5.0f && lbl_1_data_18AC == -1 && (MGSeqStatGet(lbl_1_bss_2E) & 0x10)) { + lbl_1_data_18AC = HuAudSeqPlay(0x47); + } + if (lbl_1_bss_8 >= 5.0f && MGSeqStatGet(lbl_1_bss_2E) == 0 && lbl_1_bss_2E >= 0) { + lbl_1_bss_34++; + lbl_1_bss_28 = 1800; + lbl_1_bss_2C = MGSeqTimerCreate(lbl_1_bss_28 / 60); + lbl_1_bss_2E = -1; + lbl_1_bss_8 = 0.0f; + for (i = 0; i < 16; i++) { + espDispOn(lbl_1_data_40[i]); + } + for (i = 0; i < 4; i++) { + spC[i]->unk20 = 1; + } + } + break; + case 1003: + lbl_1_bss_8 += 1.0f; + MGSeqParamSet(lbl_1_bss_2C, 1, (lbl_1_bss_28 + 58) / 60); + lbl_1_bss_28--; + if (lbl_1_bss_28 <= 0) { + lbl_1_bss_34 = 1004; + lbl_1_bss_8 = 0.0f; + lbl_1_bss_20 = 4; + } + break; + case 1004: + if (lbl_1_bss_2E < 0 && lbl_1_bss_8 == 0.0f) { + MGSeqParamSet(lbl_1_bss_2C, 2, -1); + lbl_1_bss_2E = MGSeqFinishCreate(); + if (lbl_1_data_18AC != -1) { + HuAudSeqFadeOut(lbl_1_data_18AC, 100); + } + } else { + var_r29 = 0; + var_r30 = 0; + for (i = 0; i < 4; i++) { + if (spC[i]->unk20 == 1 || (spC[i]->unk20 >= 2 && spC[i]->unk20 <= 5)) { + var_r29++; + } + if (i == 0 && ((spC[0]->unk20 >= 2 && spC[0]->unk20 <= 4) || (spC[0]->unk20 == 4 && lbl_1_data_F0[9][0].unk14 < 70.0f))) { + var_r30++; + } else if (i != 0 && spC[i]->unk20 >= 2 && spC[i]->unk20 <= 4) { + var_r30++; + } + } + if (MGSeqStatGet(lbl_1_bss_2E) == 0 + && ((lbl_1_bss_8 >= 150.0f && var_r29 == 0 && var_r30 == 0) + || (lbl_1_bss_8 >= 240.0f && var_r30 == 0) + || lbl_1_bss_8 >= 360.0f)) + { + lbl_1_bss_34++; + lbl_1_bss_8 = 0.0f; + GWPlayerCoinCollectSet(spC[0]->unk04, lbl_1_data_18F4[0]); + GWPlayerCoinCollectSet(spC[1]->unk04, lbl_1_data_18F4[1]); + GWPlayerCoinCollectSet(spC[2]->unk04, lbl_1_data_18F4[1]); + GWPlayerCoinCollectSet(spC[3]->unk04, lbl_1_data_18F4[1]); + if (lbl_1_data_18F4[0] == 0 && lbl_1_data_18F4[1] == 0) { + HuAudSStreamPlay(4); + } else { + HuAudSStreamPlay(1); + } + } + } + lbl_1_bss_8 += 1.0f; + break; + case 1005: + lbl_1_bss_8 += 1.0f; + if (210.0f < lbl_1_bss_8) { + HuAudFXStop(lbl_1_data_18B0); + lbl_1_bss_2E = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_B480; + } + break; + default: + OSReport("*** main mode error(%d)!!\n", lbl_1_bss_34); + break; + } +} + +void fn_1_9410(ModelData* model, ParticleData* particle, Mtx matrix) { + HsfanimStruct01* var_r31; + float temp_f31; + float temp_f30; + s16 i; + + if (particle->unk_34 < 50) { + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + var_r31->unk00_s16 = particle->unk_34 + 41; + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + } + if (particle->unk_34 >= 255) { + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + var_r31->unk00_s16 = 255; + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + if (!var_r31->unk2C) { + break; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r31++) { + if (var_r31->unk00_s16 == 104) { + var_r31->unk34.x = var_r31->unk34.z = 0.0f; + var_r31->unk34.y = 72.0f; + temp_f31 = frandu8() * 360 / 256; + temp_f30 = 0.5 + (rand8() / 256.0) * 1.5; + var_r31->unk34.x = 75.0 * sind(temp_f31); + var_r31->unk34.z = 75.0 * cosd(temp_f31); + var_r31->unk08.x = temp_f30 * sind(temp_f31) * 2.0; + var_r31->unk08.y = 3.0 + (rand8() / 256.0) * 1.5; + var_r31->unk08.z = temp_f30 * cosd(temp_f31) * 2.0; + var_r31->unk40.r = 0xFF; + var_r31->unk40.g = 0xFF; + var_r31->unk40.b = 0xFF; + var_r31->unk40.a = 0x60; + var_r31->unk2C = 50.0f; + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + } + if (var_r31->unk00_s16 < 240) { + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + var_r31->unk08.x *= 0.9f; + var_r31->unk08.z *= 0.9f; + var_r31->unk08.y *= 0.9f; + var_r31->unk40.a = var_r31->unk40.a * 16 / 17; + var_r31->unk08.z *= 0.99f; + var_r31->unk2C += 2.0f; + if (var_r31->unk2C <= 0.0f) { + var_r31->unk2C = 0.0f; + } + if (var_r31->unk40.a <= 3) { + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + } + var_r31->unk00_s16 += (var_r31->unk00_s16 < 0x8000); + } +} + +void fn_1_9900(omObjData* arg0) { + s32 temp_r28; + s32 i; + s32 j; + s32 k; + + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 18)); + omSetTra(arg0, 0.0f, 0.0f, 0.0f); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 17)); + Hu3DModelPosSet(arg0->model[1], 0.0f, 300.0f, -100.0f); + Hu3DModelAttrSet(arg0->model[1], HU3D_MOTATTR_LOOP); + Hu3DModelLayerSet(arg0->model[1], 0); + Hu3DMotionSpeedSet(arg0->model[1], 1.5f); + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 16)); + Hu3DModelPosSet(arg0->model[3], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[3], HU3D_MOTATTR_LOOP); + Hu3DModelLayerSet(arg0->model[3], 0); + Hu3DMotionSpeedSet(arg0->model[3], 1.5f); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 19)); + Hu3DModelAttrSet(arg0->model[4], HU3D_MOTATTR_LOOP); + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 20)); + Hu3DModelPosSet(arg0->model[5], 460.0f, 0.0f, 800.0f); + Hu3DModelAttrReset(arg0->model[5], HU3D_MOTATTR_LOOP); + Hu3DMotionTimeSet(arg0->model[5], Hu3DMotionMaxTimeGet(arg0->model[5])); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 21)); + Hu3DModelPosSet(arg0->model[6], -460.0f, 0.0f, 800.0f); + Hu3DModelAttrReset(arg0->model[6], HU3D_MOTATTR_LOOP); + Hu3DMotionTimeSet(arg0->model[6], Hu3DMotionMaxTimeGet(arg0->model[6])); + arg0->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 22)); + Hu3DModelAttrSet(arg0->model[7], HU3D_MOTATTR_LOOP); + arg0->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 23)); + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[8], DATA_MAKE_NUM(DATADIR_M422, 24)); + arg0->motion[11] = Hu3DJointMotionFile(arg0->model[8], DATA_MAKE_NUM(DATADIR_M422, 25)); + for (i = 0; i < 11; i++) { + if (i != 0) { + arg0->model[i + 8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 23)); + arg0->motion[i] = Hu3DJointMotionFile(arg0->model[i + 8], DATA_MAKE_NUM(DATADIR_M422, 24)); + arg0->motion[i + 11] = Hu3DJointMotionFile(arg0->model[i + 8], DATA_MAKE_NUM(DATADIR_M422, 25)); + } + Hu3DModelPosSet(arg0->model[i + 8], i * 100 - 500, 550.0f, 0.0f); + Hu3DMotionSet(arg0->model[i + 8], arg0->motion[0]); + Hu3DModelAttrSet(arg0->model[i + 8], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[i + 8], HU3D_MOTATTR_PAUSE); + Hu3DMotionTimeSet(arg0->model[i + 8], rand8() % (s32) Hu3DMotionMaxTimeGet(arg0->model[i + 8])); + } + arg0->model[19] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 26)); + Hu3DModelPosSet(arg0->model[19], 1800.0f, 0.0f, -22.0f); + Hu3DModelAttrSet(arg0->model[19], HU3D_MOTATTR_LOOP); + arg0->model[20] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 27)); + Hu3DModelPosSet(arg0->model[20], -1800.0f, 0.0f, -22.0f); + Hu3DModelAttrSet(arg0->model[20], HU3D_MOTATTR_LOOP); + for (i = 0; i < 10; i++) { + for (j = 0; j < 4; j++) { + s32 spD0[] = { + DATA_MAKE_NUM(DATADIR_M422, 41), + DATA_MAKE_NUM(DATADIR_M422, 42), + DATA_MAKE_NUM(DATADIR_M422, 43), + DATA_MAKE_NUM(DATADIR_M422, 44), + DATA_MAKE_NUM(DATADIR_M422, 45), + DATA_MAKE_NUM(DATADIR_M422, 46), + DATA_MAKE_NUM(DATADIR_M422, 47), + DATA_MAKE_NUM(DATADIR_M422, 48), + DATA_MAKE_NUM(DATADIR_M422, 49), + DATA_MAKE_NUM(DATADIR_M422, 30) + }; + s32 sp30[] = { + DATA_MAKE_NUM(DATADIR_M422, 30), + DATA_MAKE_NUM(DATADIR_M422, 31), + DATA_MAKE_NUM(DATADIR_M422, 32), + DATA_MAKE_NUM(DATADIR_M422, 33), + DATA_MAKE_NUM(DATADIR_M422, 34), + DATA_MAKE_NUM(DATADIR_M422, 35), + DATA_MAKE_NUM(DATADIR_M422, 37), + DATA_MAKE_NUM(DATADIR_M422, 36) + }; + + temp_r28 = i * 4 + 43 + j; + if (i == 9) { + StructBss3CData* var_r23 = lbl_1_bss_3C[j]->data; + + arg0->model[temp_r28] = Hu3DModelCreateFile(sp30[var_r23->unk08]); + } else if (j == 0) { + arg0->model[temp_r28] = Hu3DModelCreateFile(spD0[i]); + } else { + arg0->model[temp_r28] = Hu3DModelLink(arg0->model[temp_r28 - j]); + } + Hu3DModelAttrSet(arg0->model[temp_r28], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(arg0->model[temp_r28], HU3D_MOTATTR_LOOP); + Hu3DMotionTimeSet(arg0->model[temp_r28], 0.0f); + Hu3DMotionSpeedSet(arg0->model[temp_r28], (i != 9) ? 0.9375 : 1.0); + if (i == 9) { + arg0->motion[j + 22] = Hu3DJointMotionFile(arg0->model[temp_r28], DATA_MAKE_NUM(DATADIR_M422, 38)); + arg0->motion[j + 26] = Hu3DJointMotionFile(arg0->model[temp_r28], DATA_MAKE_NUM(DATADIR_M422, 39)); + arg0->motion[j + 30] = Hu3DJointMotionFile(arg0->model[temp_r28], DATA_MAKE_NUM(DATADIR_M422, 40)); + Hu3DMotionSet(arg0->model[temp_r28], arg0->motion[j + 22]); + Hu3DModelAttrSet(arg0->model[temp_r28], HU3D_MOTATTR_PAUSE); + } + } + if (i <= 8) { + for (k = 0; k < 2; k++) { + arg0->model[i * 2 + 21 + k] = Hu3DModelLink(arg0->model[i * 4 + 43]); + Hu3DModelAttrSet(arg0->model[i * 2 + 21 + k], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); + } + } + } + for (i = 0; i < 2; i++) { + for (j = 0; j < 10; j++) { + s32 sp28[] = { + DATA_MAKE_NUM(DATADIR_M422, 28), + DATA_MAKE_NUM(DATADIR_M422, 29) + }; + + temp_r28 = i * 10 + 83 + j; + if (j == 0) { + arg0->model[temp_r28] = Hu3DModelCreateFile(sp28[i]); + } else { + arg0->model[temp_r28] = Hu3DModelLink(arg0->model[temp_r28 - j]); + } + Hu3DModelAttrSet(arg0->model[temp_r28], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(arg0->model[temp_r28], 1); + } + } + for (i = 0; i < 3; i++) { + for (j = 0; j < 8; j++) { + lbl_1_bss_104[i][j].unk04 = j * 520 / 8; + lbl_1_bss_104[i][j].unk00 = -1; + } + } + for (i = 0; i < 16; i++) { + s32 sp20[] = { 88, 473 }; + s32 sp18[] = { 78, 70 }; + s32 sp90[] = { 0, 0, 42, 22, -20, 2, -54, 0, 0, 55, 35, -7, 15, -51, -65, -37 }; + s32 sp50[] = { 0, 0, 1, 1, 1, 1, -2, 0, 0, 9, 9, 9, 9, -14, 10, 10 }; + + if (lbl_1_data_0[i] == DATA_MAKE_NUM(DATADIR_MGCONST, 12) || lbl_1_data_0[i] == DATA_MAKE_NUM(DATADIR_MGCONST, 0)) { + StructBss3CData* var_r22 = lbl_1_bss_3C[ + (i == 6) ? 0 + : (i == 13) ? 1 + : (i == 14) ? 2 : 3 + ]->data; + + lbl_1_data_40[i] = espEntry(lbl_1_data_0[i] + var_r22->unk08, 0, 0); + } else { + lbl_1_data_40[i] = espEntry(lbl_1_data_0[i], 0, 0); + } + espDrawNoSet(lbl_1_data_40[i], 0); + espDispOff(lbl_1_data_40[i]); + espAttrSet(lbl_1_data_40[i], 1); + espBankSet(lbl_1_data_40[i], 0); + espPriSet(lbl_1_data_40[i], 128 - i); + espPosSet(lbl_1_data_40[i], sp90[i] + sp20[i < 7 ? 0 : 1], sp50[i] + sp18[i < 7 ? 0 : 1]); + switch (i >= 7 ? i - 7 : i) { + case 0: + espTPLvlSet(lbl_1_data_40[i], 0.5f); + espColorSet(lbl_1_data_40[i], 0, 0, 0); + break; + case 5: + espBankSet(lbl_1_data_40[i], 10); + break; + } + } + for (i = 0; i < 4; i++) { + s32 temp_r26 = i + 39; + + arg0->model[temp_r26] = Hu3DParticleCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 3), MEMORY_DEFAULT_NUM)), 40); + Hu3DModelPosSet(arg0->model[temp_r26], 2000.0f, -2000.0f, -2000.0f); + Hu3DModelScaleSet(arg0->model[temp_r26], 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(arg0->model[temp_r26], 3); + Hu3DModelAttrReset(arg0->model[temp_r26], 1); + Hu3DParticleColSet(arg0->model[temp_r26], 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(arg0->model[temp_r26], 5.0f); + Hu3DParticleHookSet(arg0->model[temp_r26], fn_1_9410); + Hu3DParticleCntSet(arg0->model[temp_r26], 45); + } + for (i = 0; i < 4; i++) { + s32 var_r27 = 9; + s32 temp_r24 = 43 + var_r27 * 4 + i; + + lbl_1_data_F0[var_r27][i].unk0C = lbl_1_data_18B4[i][0]; + lbl_1_data_F0[var_r27][i].unk10 = (i == 0 ? 300 : 0); + lbl_1_data_F0[var_r27][i].unk14 = (i == 0 ? 50 : 800); + lbl_1_data_F0[var_r27][i].unk00 = 9; + lbl_1_data_F0[var_r27][i].unk04 = (i == 0 ? 3 : 6); + lbl_1_data_F0[var_r27][i].unk08 = 0; + lbl_1_data_F0[var_r27][i].unk18 = lbl_1_data_F0[var_r27][i].unk1C = lbl_1_data_F0[var_r27][i].unk20 = 0.0f; + Hu3DMotionTimeSet(arg0->model[temp_r24], 0.0f); + Hu3DModelAttrSet(arg0->model[temp_r24], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(arg0->model[temp_r24], 1); + Hu3DModelRotSet(arg0->model[temp_r24], 0.0f, 0.0f, 0.0f); + } + arg0->func = fn_1_3B74; +} + +void fn_1_AC4C(omObjData* arg0) { + s32 sp8[] = { 0, 1, 2, 3 }; + StructBss3CData* temp_r31; + s32 var_r27; + s32 j; + s32 i; + + var_r27 = 0; + temp_r31 = arg0->data; + memset(temp_r31, 0, sizeof(*temp_r31)); + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + if (i == GWPlayerCfg[j].group) { + sp8[var_r27] = j; + var_r27++; + } + } + } + temp_r31->unk00 = arg0->work[0]; + temp_r31->unk04 = sp8[temp_r31->unk00]; + if (temp_r31->unk04 == 4) { + OSReport("m422:wrong player group\n"); + temp_r31->unk04 = temp_r31->unk00; + } + temp_r31->unk08 = GWPlayerCfg[temp_r31->unk04].character; + temp_r31->unk0C = (GWPlayerCfg[temp_r31->unk04].iscom ? -1 : GWPlayerCfg[temp_r31->unk04].pad_idx); + temp_r31->unk10 = (temp_r31->unk0C != -1) ? 0 : GWPlayerCfg[temp_r31->unk04].diff; + temp_r31->unk14 = rand8(); + temp_r31->unk20 = 0; + arg0->model[0] = CharModelCreate(temp_r31->unk08, temp_r31->unk00 == 0 ? 2 : 2); + Hu3DModelLayerSet(arg0->model[0], 1); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(arg0->model[0], 1); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 50)); + Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelLayerSet(arg0->model[1], 0); + temp_r31->unk18 = 0; + temp_r31->unk1C = -1; + for (i = 0; i < 8; i++) { + arg0->motion[i] = CharModelMotionCreate(temp_r31->unk08, lbl_1_data_A0[i] + (lbl_1_data_C0[i] != 0 ? temp_r31->unk08 : 0)); + } + CharModelVoiceEnableSet(temp_r31->unk08, arg0->motion[6], 0); + Hu3DMotionSet(arg0->model[0], arg0->motion[3]); + arg0->trans.x = lbl_1_data_18B4[temp_r31->unk00][0]; + arg0->trans.y = lbl_1_data_18B4[temp_r31->unk00][1]; + arg0->trans.z = lbl_1_data_18B4[temp_r31->unk00][2]; + arg0->rot.y = lbl_1_data_18B4[temp_r31->unk00][3]; + arg0->scale.x = arg0->scale.y = arg0->scale.z = 1.0f; + arg0->rot.x = arg0->rot.z = 0.0f; + arg0->func = fn_1_2FC; +} + +void fn_1_B004(omObjData* arg0) { + lbl_1_bss_34 = 1000; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_89E0; +} + +void ObjectSetup(void) { + omObjData* var_r30; + s32 i; + + OSReport("******* M422 ObjectSetup *********\n"); + HuAudSndGrpSet(47); + lbl_1_bss_30 = omInitObjMan(600, 0x2000); + omGameSysInit(lbl_1_bss_30); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 25000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + CZoom = 1676.6f; + Center.x = 690.0f; + Center.y = 1340.0f; + Center.z = 1380.0f; + CRot.x = -50.8125f; + CRot.y = 40.0f; + CRot.z = 0.0f; + CZoom = 2126.6f; + Center.x = 700.0f; + Center.y = 870.0f; + Center.z = 1320.0f; + CRot.x = -37.25f; + CRot.y = 40.0f; + CRot.z = 0.0f; + { + Vec sp18 = { -822.5f, 6743.0f, 4625.5f }; + Vec spC = { 0.1545085f, -0.788462f, -0.5850064f }; + GXColor sp8 = { 0xFF, 0xFF, 0xFF, 0xFF }; + + lbl_1_bss_24 = Hu3DGLightCreateV(&sp18, &spC, &sp8); + } + Hu3DGLightStaticSet(lbl_1_bss_24, 1); + Hu3DGLightInfinitytSet(lbl_1_bss_24); + lbl_1_bss_2E = -1; + lbl_1_bss_20 = -1; + lbl_1_bss_38 = omAddObjEx(lbl_1_bss_30, 101, 103, 34, 1, fn_1_9900); + for (i = 0; i < 4; i++) { + var_r30 = lbl_1_bss_3C[i] = omAddObjEx(lbl_1_bss_30, 100, 2, 8, 0, fn_1_AC4C); + var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(StructBss3CData), MEMORY_DEFAULT_NUM); + var_r30->work[0] = i; + } + lbl_1_bss_4C = omAddObjEx(lbl_1_bss_30, 0x7FDA, 0, 0, -1, omOutView); + lbl_1_bss_50 = omAddObjEx(lbl_1_bss_30, 102, 0, 0, -1, fn_1_B004); +} + +void fn_1_B480(omObjData* arg0) { + StructBss3CData* var_r30; + s32 i; + + if (WipeStatGet() == 0) { + for (i = 0; i < 4; i++) { + var_r30 = lbl_1_bss_3C[i]->data; + CharModelKill(var_r30->unk08); + } + if (lbl_1_bss_2E >= 0) { + MGSeqKill(lbl_1_bss_2E); + } + MGSeqKillAll(); + HuAudAllStop(); + omOvlReturnEx(1, 1); + } +} From d769720cc13679b117b5d69abf97841cce216cf0 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Tue, 17 Dec 2024 21:47:09 -0600 Subject: [PATCH 207/311] Link m418dll in US --- configure.py | 2 +- src/REL/m418Dll/main.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/configure.py b/configure.py index 87bace0d..53f72b05 100644 --- a/configure.py +++ b/configure.py @@ -1000,7 +1000,7 @@ config.libs = [ Rel( "m418Dll", # Hide and Go BOOM! objects={ - Object(NonMatching, "REL/m418Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m418Dll/main.c"), Object(NonMatching, "REL/m418Dll/sequence.c"), }, ), diff --git a/src/REL/m418Dll/main.c b/src/REL/m418Dll/main.c index e4b50f24..4618d902 100644 --- a/src/REL/m418Dll/main.c +++ b/src/REL/m418Dll/main.c @@ -94,6 +94,7 @@ s32 lbl_1_bss_1C; u32 lbl_1_bss_18; s32 lbl_1_bss_14; s32 lbl_1_bss_10; +s32 lbl_1_bss_C; s32 lbl_1_bss_8; s32 lbl_1_bss_4; Process* lbl_1_bss_0; From 604f0397a3c625c582be5e179f420c6aef931001 Mon Sep 17 00:00:00 2001 From: gamemasterplc Date: Wed, 18 Dec 2024 12:59:46 -0600 Subject: [PATCH 208/311] Match m459dll in US --- configure.py | 2 +- src/REL/m459dll/main.c | 204 +++++++++++++++++++++-------------------- 2 files changed, 106 insertions(+), 100 deletions(-) diff --git a/configure.py b/configure.py index 53f72b05..a0831ccc 100644 --- a/configure.py +++ b/configure.py @@ -1285,7 +1285,7 @@ config.libs = [ Rel( "m459dll", # Mushroom Medic objects={ - Object(NonMatching, "REL/m459dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m459dll/main.c"), }, ), Rel( diff --git a/src/REL/m459dll/main.c b/src/REL/m459dll/main.c index b9ecf9b3..c8c96218 100644 --- a/src/REL/m459dll/main.c +++ b/src/REL/m459dll/main.c @@ -143,7 +143,7 @@ void fn_1_4FC8(void); void fn_1_52D8(s32 arg0); s32 fn_1_52F0(void); s32 fn_1_5300(void); -void fn_1_5310(void); +s32 fn_1_5310(void); void fn_1_535C(void); void fn_1_5490(void); void fn_1_556C(M459DllBss18Struct *arg0); @@ -489,20 +489,25 @@ void fn_1_73C(void) while (lbl_1_bss_698[0x12]) { HuPrcVSleep(); } - fn_1_52D8(1); - if (fn_1_52F0() != 0x63) { - lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_4B68, 0x100, 0x4000, 0, HuPrcCurrentGet()); - while (lbl_1_bss_698[0x12]) { - HuPrcVSleep(); - } - continue; - } + goto label; } else { + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_48E4, 0x100, 0x4000, 0, HuPrcCurrentGet()); while (lbl_1_bss_698[0x12]) { HuPrcVSleep(); } + if(0) { + label: + fn_1_52D8(1); + if (fn_1_52F0() != 0x63) { + lbl_1_bss_698[0x12] = HuPrcChildCreate(fn_1_4B68, 0x100, 0x4000, 0, HuPrcCurrentGet()); + while (lbl_1_bss_698[0x12]) { + HuPrcVSleep(); + } + continue; + } + } } } break; @@ -1665,7 +1670,7 @@ s32 fn_1_5300(void) return lbl_1_bss_4C.unk_10; } -void fn_1_5310(void) +s32 fn_1_5310(void) { if (lbl_1_bss_4C.unk_10 < lbl_1_bss_4C.unk_0C) { lbl_1_bss_4C.unk_10 = lbl_1_bss_4C.unk_0C; @@ -1768,108 +1773,108 @@ void fn_1_55B0(M459DllBss18Struct *var_r31) var_r29 = var_r31->unk_04[var_r31->unk_24[1]]; espDispOn(var_r29); var_r23 = 0; -loop_1: - var_r30 = 0; - var_r27 = 0; - if (var_r31->unk_28 != 0) { - if (var_r31->unk_2C <= 0) { - var_r20 = lbl_1_bss_70.unk_08; - if ((var_r20 > 0xB4) && (var_r23 == 0)) { - var_r24 = frandmod(0xA); - if (var_r24 >= 5) { - var_r30 |= 1; - } - else if (var_r24 > 1) { - var_r30 |= 2; + while(1) { + var_r30 = 0; + var_r27 = 0; + if (var_r31->unk_28 != 0) { + if (var_r31->unk_2C <= 0) { + var_r20 = lbl_1_bss_70.unk_08; + if ((var_r20 > 0xB4) && (var_r23 == 0)) { + var_r24 = frandmod(0xA); + if (var_r24 >= 5) { + var_r30 |= 1; + } + else if (var_r24 > 1) { + var_r30 |= 2; + } + else { + var_r23 = 1; + } } else { - var_r23 = 1; + if (lbl_1_bss_14 > lbl_1_bss_10) { + var_r30 |= 1; + } + else if (lbl_1_bss_14 < lbl_1_bss_10) { + var_r30 |= 2; + } + if (lbl_1_bss_14 == lbl_1_bss_10) { + var_r27 |= 0x100; + } } + var_r31->unk_2C = 0x1E; } else { - if (lbl_1_bss_14 > lbl_1_bss_10) { - var_r30 |= 1; - } - else if (lbl_1_bss_14 < lbl_1_bss_10) { - var_r30 |= 2; - } - if (lbl_1_bss_14 == lbl_1_bss_10) { - var_r27 |= 0x100; - } + var_r31->unk_2C--; } - var_r31->unk_2C = 0x1E; } else { - var_r31->unk_2C--; + var_r30 = HuPadDStkRep[var_r31->unk_24[0]]; + var_r27 = HuPadBtnDown[var_r31->unk_24[0]]; } - } - else { - var_r30 = HuPadDStkRep[var_r31->unk_24[0]]; - var_r27 = HuPadBtnDown[var_r31->unk_24[0]]; - } - if (var_r28 != -1) { - if ((var_r27 & 0x100) != 0) { - HuAudFXPlay(2); - // lbl_1_bss_7C[lbl_1_bss_14].unk_04 = 3; - // espDispOff(var_r29); - // lbl_1_bss_18.unk_00 = 0; + if (var_r28 != -1) { + if ((var_r27 & 0x100) != 0) { + HuAudFXPlay(2); + break; + } + else { + if ((var_r30 & 1) != 0) { + if (--lbl_1_bss_14 < 0) { + lbl_1_bss_14 = 4; + } + HuAudFXPlay(0); + } + else if ((var_r30 & 2) != 0) { + if (++lbl_1_bss_14 >= 5) { + lbl_1_bss_14 = 0; + } + HuAudFXPlay(0); + } + goto block_30; + } } else { - if ((var_r30 & 1) != 0) { - if (--lbl_1_bss_14 < 0) { - lbl_1_bss_14 = 4; - } - HuAudFXPlay(0); - } - else if ((var_r30 & 2) != 0) { - if (++lbl_1_bss_14 >= 5) { - lbl_1_bss_14 = 0; - } - HuAudFXPlay(0); - } - goto block_30; - } - } - else { - block_30: - if (var_r28 != lbl_1_bss_14) { - var_r25 = &lbl_1_bss_CC[lbl_1_bss_14]; - sp14 = sp20; - sp20 = var_r25->unk_0C; - sp20.y = 40.0f; - espPriSet(var_r29, 0x32); - if (var_r28 == -1) { + block_30: + if (var_r28 != lbl_1_bss_14) { + var_r25 = &lbl_1_bss_CC[lbl_1_bss_14]; sp14 = sp20; + sp20 = var_r25->unk_0C; + sp20.y = 40.0f; + espPriSet(var_r29, 0x32); + if (var_r28 == -1) { + sp14 = sp20; + } + else { + lbl_1_bss_7C[var_r28].unk_04 = 3; + } + for (var_r26 = 0; var_r26 <= 4; var_r26++) { + var_f31 = sind((90.0f * (0.25f * var_r26))); + var_f31 *= var_f31 * var_f31; + sp8.x = sp14.x + (var_f31 * (sp20.x - sp14.x)); + sp8.y = sp14.y + (var_f31 * (sp20.y - sp14.y)); + sp8.z = sp14.z + (var_f31 * (sp20.z - sp14.z)); + Hu3D3Dto2D(&sp8, 1, &sp8); + espPosSet(var_r29, sp8.x, sp8.y); + var_r22 = var_r31->unk_00; + HuPrcVSleep(); + if (var_r31->unk_00 != var_r22) { + return; + } + } + espPosSet(var_r29, sp8.x, sp8.y); + lbl_1_bss_7C[lbl_1_bss_14].unk_04 = 1; } - else { - lbl_1_bss_7C[var_r28].unk_04 = 3; - } - for (var_r26 = 0; var_r26 < 4; var_r26++) { - // espPosSet(var_r29, sp8.x, sp8.y); - // lbl_1_bss_7C[lbl_1_bss_14].unk_04 = 1; - goto block_39; - } - var_f31 = sind((90.0f * (0.25f * var_r26))); - var_f31 *= var_f31 * var_f31; - sp8.x = sp14.x + (var_f31 * (sp20.x - sp14.x)); - sp8.y = sp14.y + (var_f31 * (sp20.y - sp14.y)); - sp8.z = sp14.z + (var_f31 * (sp20.z - sp14.z)); - Hu3D3Dto2D(&sp8, 1, &sp8); - espPosSet(var_r29, sp8.x, sp8.y); - var_r22 = var_r31->unk_00; - HuPrcVSleep(); - if (var_r31->unk_00 == var_r22) { } - } - else { - block_39: var_r28 = lbl_1_bss_14; var_r21 = var_r31->unk_00; - HuPrcVSleep(&lbl_1_bss_14); - if (var_r31->unk_00 == var_r21) { - goto loop_1; + HuPrcVSleep(); + if (var_r31->unk_00 != var_r21) { + return; } } } + lbl_1_bss_7C[lbl_1_bss_14].unk_04 = 3; + espDispOff(var_r29); + lbl_1_bss_18.unk_00 = 0; } void fn_1_5A78(M459DllBss18Struct *arg0) @@ -1960,17 +1965,18 @@ void fn_1_5EAC(void) switch (var_r31->unk_04) { case 0: fn_1_5F40(var_r31); - continue; + break; case 1: fn_1_5F84(var_r31); - continue; + break; case 2: fn_1_6198(var_r31); - continue; + break; case 3: - continue; + fn_1_6458(var_r31); + break; } - fn_1_6458(var_r31); + } } From 8f6ac67deee9b6c994212e79767635b01e1fee76 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Wed, 18 Dec 2024 21:18:24 +0100 Subject: [PATCH 209/311] Set m415Dll to matching --- config/GMPE01_00/rels/m415Dll/symbols.txt | 16 ++++++++-------- configure.py | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/GMPE01_00/rels/m415Dll/symbols.txt b/config/GMPE01_00/rels/m415Dll/symbols.txt index 3c3a6a5f..62f5cc6f 100644 --- a/config/GMPE01_00/rels/m415Dll/symbols.txt +++ b/config/GMPE01_00/rels/m415Dll/symbols.txt @@ -190,14 +190,14 @@ lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data: lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x30 data:4byte -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x10 data:byte -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x10 scope:local data:byte +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 diff --git a/configure.py b/configure.py index a0831ccc..b761c7f8 100644 --- a/configure.py +++ b/configure.py @@ -978,7 +978,7 @@ config.libs = [ "m415Dll", # Stamp Out! objects={ Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m415Dll/main.c"), - Object(NonMatching, "REL/m415Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m415Dll/map.c"), }, ), Rel( From 4b5565bbdc7f1b3b0fa6072095ca1ec1ba4cd10e Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Wed, 18 Dec 2024 21:24:42 +0100 Subject: [PATCH 210/311] Fix some data locality --- config/GMPE01_00/rels/m413Dll/symbols.txt | 302 +++++++++++----------- config/GMPE01_00/rels/m418Dll/symbols.txt | 22 +- config/GMPJ01_00/rels/m418Dll/symbols.txt | 22 +- config/GMPP01_00/rels/m418Dll/symbols.txt | 24 +- 4 files changed, 185 insertions(+), 185 deletions(-) diff --git a/config/GMPE01_00/rels/m413Dll/symbols.txt b/config/GMPE01_00/rels/m413Dll/symbols.txt index 0da93366..69d55a26 100644 --- a/config/GMPE01_00/rels/m413Dll/symbols.txt +++ b/config/GMPE01_00/rels/m413Dll/symbols.txt @@ -22,157 +22,157 @@ ObjectSetup = .text:0x0000D3A0; // type:function size:0x360 fn_1_D700 = .text:0x0000D700; // type:function size:0x64 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_0 = .rodata:0x00000000; // type:object size:0x10 data:double -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x18 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x18 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xCC -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC data:byte -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:4byte -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:4byte -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:4byte -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 data:4byte -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x10 data:4byte -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x19 data:byte -lbl_1_rodata_201 = .rodata:0x00000201; // type:object size:0x1F data:byte -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0xC data:4byte -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0xC data:4byte -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x30 data:4byte -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x10 data:4byte -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0xC data:4byte -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x10 data:4byte -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0xC data:4byte -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0xC data:4byte -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 data:4byte -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 data:4byte -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:4byte -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x428 -lbl_1_rodata_764 = .rodata:0x00000764; // type:object size:0xC data:4byte -lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0xC data:4byte -lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0x4 data:float -lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x4 data:float -lbl_1_rodata_784 = .rodata:0x00000784; // type:object size:0x4 data:float -lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x8 data:double -lbl_1_rodata_790 = .rodata:0x00000790; // type:object size:0x8 data:double -lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x8 data:double -lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x8 data:double -lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 data:float -lbl_1_rodata_7AC = .rodata:0x000007AC; // type:object size:0x10 data:4byte -lbl_1_rodata_7BC = .rodata:0x000007BC; // type:object size:0x14 data:4byte -lbl_1_rodata_7D0 = .rodata:0x000007D0; // type:object size:0x60 -lbl_1_rodata_830 = .rodata:0x00000830; // type:object size:0x8 data:double -lbl_1_rodata_838 = .rodata:0x00000838; // type:object size:0x8 data:double -lbl_1_rodata_840 = .rodata:0x00000840; // type:object size:0x4 data:float -lbl_1_rodata_848 = .rodata:0x00000848; // type:object size:0x8 data:double -lbl_1_rodata_850 = .rodata:0x00000850; // type:object size:0x4 data:float -lbl_1_rodata_858 = .rodata:0x00000858; // type:object size:0x8 data:double -lbl_1_rodata_860 = .rodata:0x00000860; // type:object size:0x8 data:double -lbl_1_rodata_868 = .rodata:0x00000868; // type:object size:0x8 data:double -lbl_1_rodata_870 = .rodata:0x00000870; // type:object size:0x8 data:double -lbl_1_rodata_878 = .rodata:0x00000878; // type:object size:0x4 data:float -lbl_1_rodata_87C = .rodata:0x0000087C; // type:object size:0x4 data:float -lbl_1_rodata_880 = .rodata:0x00000880; // type:object size:0x4 data:float -lbl_1_rodata_884 = .rodata:0x00000884; // type:object size:0x4 data:float -lbl_1_rodata_888 = .rodata:0x00000888; // type:object size:0x4 data:float -lbl_1_rodata_88C = .rodata:0x0000088C; // type:object size:0x1C data:4byte -lbl_1_rodata_8A8 = .rodata:0x000008A8; // type:object size:0x8 data:double -lbl_1_rodata_8B0 = .rodata:0x000008B0; // type:object size:0x4 data:float -lbl_1_rodata_8B4 = .rodata:0x000008B4; // type:object size:0x4 data:float -lbl_1_rodata_8B8 = .rodata:0x000008B8; // type:object size:0x4 data:float -lbl_1_rodata_8BC = .rodata:0x000008BC; // type:object size:0x4 data:float -lbl_1_rodata_8C0 = .rodata:0x000008C0; // type:object size:0x8 data:double -lbl_1_rodata_8C8 = .rodata:0x000008C8; // type:object size:0x4 data:float -lbl_1_rodata_8D0 = .rodata:0x000008D0; // type:object size:0x8 data:double -lbl_1_rodata_8D8 = .rodata:0x000008D8; // type:object size:0x4 data:float -lbl_1_rodata_8DC = .rodata:0x000008DC; // type:object size:0x4 data:float -lbl_1_rodata_8E0 = .rodata:0x000008E0; // type:object size:0x4 data:float -lbl_1_rodata_8E4 = .rodata:0x000008E4; // type:object size:0x4 data:float -lbl_1_rodata_8E8 = .rodata:0x000008E8; // type:object size:0x4 data:float -lbl_1_rodata_8EC = .rodata:0x000008EC; // type:object size:0x4 data:float -lbl_1_rodata_8F0 = .rodata:0x000008F0; // type:object size:0x4 data:float -lbl_1_rodata_8F4 = .rodata:0x000008F4; // type:object size:0x4 data:float -lbl_1_rodata_8F8 = .rodata:0x000008F8; // type:object size:0x8 data:double -lbl_1_rodata_900 = .rodata:0x00000900; // type:object size:0x8 data:double -lbl_1_rodata_908 = .rodata:0x00000908; // type:object size:0x4 data:float -lbl_1_rodata_90C = .rodata:0x0000090C; // type:object size:0x4 data:float -lbl_1_rodata_910 = .rodata:0x00000910; // type:object size:0x4 data:float -lbl_1_rodata_914 = .rodata:0x00000914; // type:object size:0xC data:byte -lbl_1_rodata_920 = .rodata:0x00000920; // type:object size:0x18 data:4byte -lbl_1_rodata_938 = .rodata:0x00000938; // type:object size:0x8 data:byte -lbl_1_rodata_940 = .rodata:0x00000940; // type:object size:0x10 data:4byte -lbl_1_rodata_950 = .rodata:0x00000950; // type:object size:0x1 data:byte -lbl_1_rodata_954 = .rodata:0x00000954; // type:object size:0x10 data:4byte -lbl_1_rodata_964 = .rodata:0x00000964; // type:object size:0x14 data:4byte -lbl_1_rodata_978 = .rodata:0x00000978; // type:object size:0x8 data:double -lbl_1_rodata_980 = .rodata:0x00000980; // type:object size:0x4 data:float -lbl_1_rodata_984 = .rodata:0x00000984; // type:object size:0x4 data:float -lbl_1_rodata_988 = .rodata:0x00000988; // type:object size:0x4 data:float -lbl_1_rodata_98C = .rodata:0x0000098C; // type:object size:0x4 data:float -lbl_1_rodata_990 = .rodata:0x00000990; // type:object size:0x8 data:double -lbl_1_rodata_998 = .rodata:0x00000998; // type:object size:0x4 data:float -lbl_1_rodata_99C = .rodata:0x0000099C; // type:object size:0x4 data:float -lbl_1_rodata_9A0 = .rodata:0x000009A0; // type:object size:0x8 data:double -lbl_1_rodata_9A8 = .rodata:0x000009A8; // type:object size:0x8 data:double -lbl_1_rodata_9B0 = .rodata:0x000009B0; // type:object size:0x10 data:4byte -lbl_1_rodata_9C0 = .rodata:0x000009C0; // type:object size:0x4 data:float -lbl_1_rodata_9C4 = .rodata:0x000009C4; // type:object size:0x4 data:float -lbl_1_rodata_9C8 = .rodata:0x000009C8; // type:object size:0x4 data:float -lbl_1_rodata_9CC = .rodata:0x000009CC; // type:object size:0xC data:4byte -lbl_1_rodata_9D8 = .rodata:0x000009D8; // type:object size:0xC data:4byte -lbl_1_rodata_9E4 = .rodata:0x000009E4; // type:object size:0xC data:4byte -lbl_1_rodata_9F0 = .rodata:0x000009F0; // type:object size:0xC data:4byte -lbl_1_rodata_9FC = .rodata:0x000009FC; // type:object size:0xC data:4byte -lbl_1_rodata_A08 = .rodata:0x00000A08; // type:object size:0xC data:4byte -lbl_1_rodata_A14 = .rodata:0x00000A14; // type:object size:0xC data:4byte -lbl_1_rodata_A20 = .rodata:0x00000A20; // type:object size:0x1 data:byte -lbl_1_rodata_A24 = .rodata:0x00000A24; // type:object size:0x4 data:float -lbl_1_rodata_A28 = .rodata:0x00000A28; // type:object size:0x4 data:float -lbl_1_rodata_A2C = .rodata:0x00000A2C; // type:object size:0x4 data:float -lbl_1_rodata_A30 = .rodata:0x00000A30; // type:object size:0x4 data:float -lbl_1_rodata_A34 = .rodata:0x00000A34; // type:object size:0x4 data:float +lbl_1_rodata_0 = .rodata:0x00000000; // type:object size:0x10 scope:local data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x18 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x18 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xCC scope:local +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0xC scope:local data:byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x19 scope:local data:byte +lbl_1_rodata_201 = .rodata:0x00000201; // type:object size:0x1F scope:local data:byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x428 scope:local +lbl_1_rodata_764 = .rodata:0x00000764; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_77C = .rodata:0x0000077C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x4 scope:local data:float +lbl_1_rodata_784 = .rodata:0x00000784; // type:object size:0x4 scope:local data:float +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x8 scope:local data:double +lbl_1_rodata_790 = .rodata:0x00000790; // type:object size:0x8 scope:local data:double +lbl_1_rodata_798 = .rodata:0x00000798; // type:object size:0x8 scope:local data:double +lbl_1_rodata_7A0 = .rodata:0x000007A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_7A8 = .rodata:0x000007A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7AC = .rodata:0x000007AC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_7BC = .rodata:0x000007BC; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_7D0 = .rodata:0x000007D0; // type:object size:0x60 scope:local +lbl_1_rodata_830 = .rodata:0x00000830; // type:object size:0x8 scope:local data:double +lbl_1_rodata_838 = .rodata:0x00000838; // type:object size:0x8 scope:local data:double +lbl_1_rodata_840 = .rodata:0x00000840; // type:object size:0x4 scope:local data:float +lbl_1_rodata_848 = .rodata:0x00000848; // type:object size:0x8 scope:local data:double +lbl_1_rodata_850 = .rodata:0x00000850; // type:object size:0x4 scope:local data:float +lbl_1_rodata_858 = .rodata:0x00000858; // type:object size:0x8 scope:local data:double +lbl_1_rodata_860 = .rodata:0x00000860; // type:object size:0x8 scope:local data:double +lbl_1_rodata_868 = .rodata:0x00000868; // type:object size:0x8 scope:local data:double +lbl_1_rodata_870 = .rodata:0x00000870; // type:object size:0x8 scope:local data:double +lbl_1_rodata_878 = .rodata:0x00000878; // type:object size:0x4 scope:local data:float +lbl_1_rodata_87C = .rodata:0x0000087C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_880 = .rodata:0x00000880; // type:object size:0x4 scope:local data:float +lbl_1_rodata_884 = .rodata:0x00000884; // type:object size:0x4 scope:local data:float +lbl_1_rodata_888 = .rodata:0x00000888; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88C = .rodata:0x0000088C; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_8A8 = .rodata:0x000008A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_8B0 = .rodata:0x000008B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8B4 = .rodata:0x000008B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8B8 = .rodata:0x000008B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8BC = .rodata:0x000008BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C0 = .rodata:0x000008C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_8C8 = .rodata:0x000008C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8D0 = .rodata:0x000008D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_8D8 = .rodata:0x000008D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8DC = .rodata:0x000008DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8E0 = .rodata:0x000008E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8E4 = .rodata:0x000008E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8E8 = .rodata:0x000008E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8EC = .rodata:0x000008EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8F0 = .rodata:0x000008F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8F4 = .rodata:0x000008F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8F8 = .rodata:0x000008F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_900 = .rodata:0x00000900; // type:object size:0x8 scope:local data:double +lbl_1_rodata_908 = .rodata:0x00000908; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90C = .rodata:0x0000090C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_910 = .rodata:0x00000910; // type:object size:0x4 scope:local data:float +lbl_1_rodata_914 = .rodata:0x00000914; // type:object size:0xC scope:local data:byte +lbl_1_rodata_920 = .rodata:0x00000920; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_938 = .rodata:0x00000938; // type:object size:0x8 scope:local data:byte +lbl_1_rodata_940 = .rodata:0x00000940; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_950 = .rodata:0x00000950; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_954 = .rodata:0x00000954; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_964 = .rodata:0x00000964; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_978 = .rodata:0x00000978; // type:object size:0x8 scope:local data:double +lbl_1_rodata_980 = .rodata:0x00000980; // type:object size:0x4 scope:local data:float +lbl_1_rodata_984 = .rodata:0x00000984; // type:object size:0x4 scope:local data:float +lbl_1_rodata_988 = .rodata:0x00000988; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98C = .rodata:0x0000098C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_990 = .rodata:0x00000990; // type:object size:0x8 scope:local data:double +lbl_1_rodata_998 = .rodata:0x00000998; // type:object size:0x4 scope:local data:float +lbl_1_rodata_99C = .rodata:0x0000099C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9A0 = .rodata:0x000009A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_9A8 = .rodata:0x000009A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_9B0 = .rodata:0x000009B0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_9C0 = .rodata:0x000009C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C4 = .rodata:0x000009C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C8 = .rodata:0x000009C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9CC = .rodata:0x000009CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_9D8 = .rodata:0x000009D8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_9E4 = .rodata:0x000009E4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_9F0 = .rodata:0x000009F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_9FC = .rodata:0x000009FC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_A08 = .rodata:0x00000A08; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_A14 = .rodata:0x00000A14; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_A20 = .rodata:0x00000A20; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_A24 = .rodata:0x00000A24; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A28 = .rodata:0x00000A28; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A2C = .rodata:0x00000A2C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A30 = .rodata:0x00000A30; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A34 = .rodata:0x00000A34; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x4 data:4byte lbl_1_data_4 = .data:0x00000004; // type:object size:0x8 data:4byte lbl_1_data_C = .data:0x0000000C; // type:object size:0x10 data:4byte diff --git a/config/GMPE01_00/rels/m418Dll/symbols.txt b/config/GMPE01_00/rels/m418Dll/symbols.txt index 480de9a9..f9b964c5 100644 --- a/config/GMPE01_00/rels/m418Dll/symbols.txt +++ b/config/GMPE01_00/rels/m418Dll/symbols.txt @@ -258,19 +258,19 @@ lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 data:4byte lbl_1_data_8 = .data:0x00000008; // type:object size:0x4 data:4byte -lbl_1_data_C = .data:0x0000000C; // type:object size:0x12 data:string -lbl_1_data_1E = .data:0x0000001E; // type:object size:0x13 data:string -lbl_1_data_31 = .data:0x00000031; // type:object size:0x10 data:string -lbl_1_data_41 = .data:0x00000041; // type:object size:0x10 data:string -lbl_1_data_51 = .data:0x00000051; // type:object size:0x10 data:string -lbl_1_data_61 = .data:0x00000061; // type:object size:0x10 data:string -lbl_1_data_71 = .data:0x00000071; // type:object size:0xD data:string -lbl_1_data_7E = .data:0x0000007E; // type:object size:0xE data:string +lbl_1_data_C = .data:0x0000000C; // type:object size:0x12 scope:local data:string +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x13 scope:local data:string +lbl_1_data_31 = .data:0x00000031; // type:object size:0x10 scope:local data:string +lbl_1_data_41 = .data:0x00000041; // type:object size:0x10 scope:local data:string +lbl_1_data_51 = .data:0x00000051; // type:object size:0x10 scope:local data:string +lbl_1_data_61 = .data:0x00000061; // type:object size:0x10 scope:local data:string +lbl_1_data_71 = .data:0x00000071; // type:object size:0xD scope:local data:string +lbl_1_data_7E = .data:0x0000007E; // type:object size:0xE scope:local data:string lbl_1_data_8C = .data:0x0000008C; // type:object size:0x6C data:4byte jumptable_1_data_F8 = .data:0x000000F8; // type:object size:0x88 scope:local -lbl_1_data_180 = .data:0x00000180; // type:object size:0x12 data:string -lbl_1_data_192 = .data:0x00000192; // type:object size:0x15 data:string -lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x19 data:string +lbl_1_data_180 = .data:0x00000180; // type:object size:0x12 scope:local data:string +lbl_1_data_192 = .data:0x00000192; // type:object size:0x15 scope:local data:string +lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x19 scope:local data:string lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x20 lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x20 lbl_1_data_200 = .data:0x00000200; // type:object size:0x40 diff --git a/config/GMPJ01_00/rels/m418Dll/symbols.txt b/config/GMPJ01_00/rels/m418Dll/symbols.txt index 964068e3..d87bb605 100644 --- a/config/GMPJ01_00/rels/m418Dll/symbols.txt +++ b/config/GMPJ01_00/rels/m418Dll/symbols.txt @@ -258,19 +258,19 @@ lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 data:4byte lbl_1_data_8 = .data:0x00000008; // type:object size:0x4 data:4byte -lbl_1_data_C = .data:0x0000000C; // type:object size:0x12 data:string -lbl_1_data_1E = .data:0x0000001E; // type:object size:0x13 data:string -lbl_1_data_31 = .data:0x00000031; // type:object size:0x10 data:string -lbl_1_data_41 = .data:0x00000041; // type:object size:0x10 data:string -lbl_1_data_51 = .data:0x00000051; // type:object size:0x10 data:string -lbl_1_data_61 = .data:0x00000061; // type:object size:0x10 data:string -lbl_1_data_71 = .data:0x00000071; // type:object size:0xD data:string -lbl_1_data_7E = .data:0x0000007E; // type:object size:0xE data:string +lbl_1_data_C = .data:0x0000000C; // type:object size:0x12 data:string scope:local +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x13 data:string scope:local +lbl_1_data_31 = .data:0x00000031; // type:object size:0x10 data:string scope:local +lbl_1_data_41 = .data:0x00000041; // type:object size:0x10 data:string scope:local +lbl_1_data_51 = .data:0x00000051; // type:object size:0x10 data:string scope:local +lbl_1_data_61 = .data:0x00000061; // type:object size:0x10 data:string scope:local +lbl_1_data_71 = .data:0x00000071; // type:object size:0xD data:string scope:local +lbl_1_data_7E = .data:0x0000007E; // type:object size:0xE data:string scope:local lbl_1_data_8C = .data:0x0000008C; // type:object size:0x6C data:4byte jumptable_1_data_F8 = .data:0x000000F8; // type:object size:0x88 scope:local -lbl_1_data_180 = .data:0x00000180; // type:object size:0x12 data:string -lbl_1_data_192 = .data:0x00000192; // type:object size:0x15 data:string -lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x19 data:string +lbl_1_data_180 = .data:0x00000180; // type:object size:0x12 data:string scope:local +lbl_1_data_192 = .data:0x00000192; // type:object size:0x15 data:string scope:local +lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x19 data:string scope:local lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x20 lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x60 lbl_1_data_240 = .data:0x00000240; // type:object size:0x24 diff --git a/config/GMPP01_00/rels/m418Dll/symbols.txt b/config/GMPP01_00/rels/m418Dll/symbols.txt index f4a0ef38..0236cc86 100644 --- a/config/GMPP01_00/rels/m418Dll/symbols.txt +++ b/config/GMPP01_00/rels/m418Dll/symbols.txt @@ -259,19 +259,19 @@ lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 data:4byte lbl_1_data_8 = .data:0x00000008; // type:object size:0x4 data:4byte -lbl_1_data_C = .data:0x0000000C; // type:object size:0x12 data:string -lbl_1_data_1E = .data:0x0000001E; // type:object size:0x13 data:string -lbl_1_data_31 = .data:0x00000031; // type:object size:0x10 data:string -lbl_1_data_41 = .data:0x00000041; // type:object size:0x10 data:string -lbl_1_data_51 = .data:0x00000051; // type:object size:0x10 data:string -lbl_1_data_61 = .data:0x00000061; // type:object size:0x10 data:string -lbl_1_data_71 = .data:0x00000071; // type:object size:0xD data:string -lbl_1_data_7E = .data:0x0000007E; // type:object size:0xE data:string -lbl_1_data_8C = .data:0x0000008C; // type:object size:0x6C data:4byte +lbl_1_data_C = .data:0x0000000C; // type:object size:0x12 data:string scope:local +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x13 data:string scope:local +lbl_1_data_31 = .data:0x00000031; // type:object size:0x10 data:string scope:local +lbl_1_data_41 = .data:0x00000041; // type:object size:0x10 data:string scope:local +lbl_1_data_51 = .data:0x00000051; // type:object size:0x10 data:string scope:local +lbl_1_data_61 = .data:0x00000061; // type:object size:0x10 data:string scope:local +lbl_1_data_71 = .data:0x00000071; // type:object size:0xD data:string scope:local +lbl_1_data_7E = .data:0x0000007E; // type:object size:0xE data:string scope:local +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x6C data:4byte scope:local jumptable_1_data_F8 = .data:0x000000F8; // type:object size:0x88 scope:local -lbl_1_data_180 = .data:0x00000180; // type:object size:0x12 data:string -lbl_1_data_192 = .data:0x00000192; // type:object size:0x15 data:string -lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x19 data:string +lbl_1_data_180 = .data:0x00000180; // type:object size:0x12 data:string scope:local +lbl_1_data_192 = .data:0x00000192; // type:object size:0x15 data:string scope:local +lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x19 data:string scope:local lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x20 lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x60 lbl_1_data_240 = .data:0x00000240; // type:object size:0x24 From 213088dfbca640d7d7f2a1c2b55e738047f481cd Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sat, 28 Dec 2024 18:18:01 +0100 Subject: [PATCH 211/311] Add all game versions to the CI --- .github/workflows/build.yml | 2 +- config/GMPJ01_00/rels/m418Dll/symbols.txt | 22 ++++++++++----------- config/GMPP01_00/rels/m418Dll/symbols.txt | 24 +++++++++++------------ 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 91dcc72b..696586eb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - version: [GMPE01_00] + version: [GMPE01_00, GMPE01_01, GMPP01_00, GMPP01_02, GMPJ01_00] steps: # Checkout the repository diff --git a/config/GMPJ01_00/rels/m418Dll/symbols.txt b/config/GMPJ01_00/rels/m418Dll/symbols.txt index d87bb605..f4b66ec8 100644 --- a/config/GMPJ01_00/rels/m418Dll/symbols.txt +++ b/config/GMPJ01_00/rels/m418Dll/symbols.txt @@ -258,19 +258,19 @@ lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 data:4byte lbl_1_data_8 = .data:0x00000008; // type:object size:0x4 data:4byte -lbl_1_data_C = .data:0x0000000C; // type:object size:0x12 data:string scope:local -lbl_1_data_1E = .data:0x0000001E; // type:object size:0x13 data:string scope:local -lbl_1_data_31 = .data:0x00000031; // type:object size:0x10 data:string scope:local -lbl_1_data_41 = .data:0x00000041; // type:object size:0x10 data:string scope:local -lbl_1_data_51 = .data:0x00000051; // type:object size:0x10 data:string scope:local -lbl_1_data_61 = .data:0x00000061; // type:object size:0x10 data:string scope:local -lbl_1_data_71 = .data:0x00000071; // type:object size:0xD data:string scope:local -lbl_1_data_7E = .data:0x0000007E; // type:object size:0xE data:string scope:local +lbl_1_data_C = .data:0x0000000C; // type:object size:0x12 scope:local data:string +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x13 scope:local data:string +lbl_1_data_31 = .data:0x00000031; // type:object size:0x10 scope:local data:string +lbl_1_data_41 = .data:0x00000041; // type:object size:0x10 scope:local data:string +lbl_1_data_51 = .data:0x00000051; // type:object size:0x10 scope:local data:string +lbl_1_data_61 = .data:0x00000061; // type:object size:0x10 scope:local data:string +lbl_1_data_71 = .data:0x00000071; // type:object size:0xD scope:local data:string +lbl_1_data_7E = .data:0x0000007E; // type:object size:0xE scope:local data:string lbl_1_data_8C = .data:0x0000008C; // type:object size:0x6C data:4byte jumptable_1_data_F8 = .data:0x000000F8; // type:object size:0x88 scope:local -lbl_1_data_180 = .data:0x00000180; // type:object size:0x12 data:string scope:local -lbl_1_data_192 = .data:0x00000192; // type:object size:0x15 data:string scope:local -lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x19 data:string scope:local +lbl_1_data_180 = .data:0x00000180; // type:object size:0x12 scope:local data:string +lbl_1_data_192 = .data:0x00000192; // type:object size:0x15 scope:local data:string +lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x19 scope:local data:string lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x20 lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x60 lbl_1_data_240 = .data:0x00000240; // type:object size:0x24 diff --git a/config/GMPP01_00/rels/m418Dll/symbols.txt b/config/GMPP01_00/rels/m418Dll/symbols.txt index 0236cc86..e44b8b6a 100644 --- a/config/GMPP01_00/rels/m418Dll/symbols.txt +++ b/config/GMPP01_00/rels/m418Dll/symbols.txt @@ -259,19 +259,19 @@ lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 data:4byte lbl_1_data_8 = .data:0x00000008; // type:object size:0x4 data:4byte -lbl_1_data_C = .data:0x0000000C; // type:object size:0x12 data:string scope:local -lbl_1_data_1E = .data:0x0000001E; // type:object size:0x13 data:string scope:local -lbl_1_data_31 = .data:0x00000031; // type:object size:0x10 data:string scope:local -lbl_1_data_41 = .data:0x00000041; // type:object size:0x10 data:string scope:local -lbl_1_data_51 = .data:0x00000051; // type:object size:0x10 data:string scope:local -lbl_1_data_61 = .data:0x00000061; // type:object size:0x10 data:string scope:local -lbl_1_data_71 = .data:0x00000071; // type:object size:0xD data:string scope:local -lbl_1_data_7E = .data:0x0000007E; // type:object size:0xE data:string scope:local -lbl_1_data_8C = .data:0x0000008C; // type:object size:0x6C data:4byte scope:local +lbl_1_data_C = .data:0x0000000C; // type:object size:0x12 scope:local data:string +lbl_1_data_1E = .data:0x0000001E; // type:object size:0x13 scope:local data:string +lbl_1_data_31 = .data:0x00000031; // type:object size:0x10 scope:local data:string +lbl_1_data_41 = .data:0x00000041; // type:object size:0x10 scope:local data:string +lbl_1_data_51 = .data:0x00000051; // type:object size:0x10 scope:local data:string +lbl_1_data_61 = .data:0x00000061; // type:object size:0x10 scope:local data:string +lbl_1_data_71 = .data:0x00000071; // type:object size:0xD scope:local data:string +lbl_1_data_7E = .data:0x0000007E; // type:object size:0xE scope:local data:string +lbl_1_data_8C = .data:0x0000008C; // type:object size:0x6C scope:local data:4byte jumptable_1_data_F8 = .data:0x000000F8; // type:object size:0x88 scope:local -lbl_1_data_180 = .data:0x00000180; // type:object size:0x12 data:string scope:local -lbl_1_data_192 = .data:0x00000192; // type:object size:0x15 data:string scope:local -lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x19 data:string scope:local +lbl_1_data_180 = .data:0x00000180; // type:object size:0x12 scope:local data:string +lbl_1_data_192 = .data:0x00000192; // type:object size:0x15 scope:local data:string +lbl_1_data_1A7 = .data:0x000001A7; // type:object size:0x19 scope:local data:string lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x20 lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x60 lbl_1_data_240 = .data:0x00000240; // type:object size:0x24 From c23ff7a0966873ede0982b0f5102beb7e8a3b465 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Sun, 29 Dec 2024 14:34:04 -0500 Subject: [PATCH 212/311] continued work on m438 --- .vscode/settings.json | 6 +- src/REL/m438Dll/main.c | 795 +++++++++++++++-------------------------- 2 files changed, 301 insertions(+), 500 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 233a6160..f4d558fa 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -23,7 +23,9 @@ "object.h": "c", "executor.h": "c", "m438dll.h": "c", - "audio.h": "c" + "audio.h": "c", + "musyx.h": "c", + "math.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { @@ -96,4 +98,4 @@ "C_Cpp_Runner.showCompilationTime": false, "C_Cpp_Runner.useLinkTimeOptimization": false, "C_Cpp_Runner.msvcSecureNoWarnings": false -} \ No newline at end of file +} diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index d3bf4e10..2faac948 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -5,6 +5,7 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/minigame_seq.h" +#include "game/object.h" #include "game/objsub.h" #include "game/pad.h" #include "game/sprite.h" @@ -121,8 +122,9 @@ typedef struct M438MainWork3 { } M438MainWork3; /* size = */ typedef struct M438MainWork4 { - s8 unk_00; - char unk04[11]; + u8 unk_00; + char unk01[0x7]; + float unk_08; float unk_0C; float unk_10; float unk_14; @@ -217,6 +219,8 @@ typedef struct M438StructBssDE4 { M438UnkStruct2 *unk_40; } M438StructBssDE4; /* size = */ +typedef u8 M438UnkType[0x30]; + void fn_1_4DC(omObjData *object); void fn_1_4FC(omObjData *object); void fn_1_974(omObjData *object); @@ -259,7 +263,7 @@ float fn_1_A14C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3); void fn_1_A60C(omObjData *object); void fn_1_A688(omObjData *object); void fn_1_A68C(ModelData *model, Mtx matrix); -s32 fn_1_AE18(u32 arg0, Vec *arg1, Vec *arg2); +s32 fn_1_AE18(u32 arg0, float arg8, Vec *arg1, Vec *arg2); float fn_1_B440(Vec *arg0, Vec *arg1, Vec *arg2); Vec lbl_1_data_0 = { 1000.0f, 3000.0f, 1000.0f }; @@ -2705,357 +2709,169 @@ void fn_1_9420(float arg8, float *arg0, float *arg1, float arg2[3][3], float arg } } -// float fn_1_9634(Vec *arg0) -// { -// float sp8; -// float var_f28; -// float var_f29; -// float var_f30; -// double var_f31; +f32 fn_1_9634(Vec* arg0) { + f32 var_f30; + f32 var_f29; + var_f30 = (arg0->x * arg0->x) + (arg0->y * arg0->y) + (arg0->z * arg0->z); + var_f30 = sqrtf(var_f30); + if (var_f30 != 0.0f) { + var_f29 = 1.0f / var_f30; + arg0->x *= var_f29; + arg0->y *= var_f29; + arg0->z *= var_f29; + } else { + arg0->x = arg0->y = arg0->z = 0.0f; + } + return var_f30; +} -// var_f30 = (arg0->z * arg0->z) + ((arg0->x * arg0->x) + (arg0->y * arg0->y)); -// if (var_f30 > 0.0f) { -// var_f31 = __frsqrte(var_f30); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f30 * (var_f31 * var_f31))); -// sp8 = var_f30 * var_f31; -// var_f28 = sp8; -// } -// else { -// var_f28 = var_f30; -// } -// var_f30 = var_f28; -// if (var_f30 != 0.0f) { -// var_f29 = 1.0f / var_f30; -// arg0->x *= var_f29; -// arg0->y *= var_f29; -// arg0->z *= var_f29; -// } -// else { -// arg0->z = 0.0f; -// arg0->y = 0.0f; -// arg0->x = 0.0f; -// } -// return var_f30; -// } +f32 fn_1_97CC(Vec arg0, Vec arg1, Vec* arg2, f32 arg8) { + if (arg8 <= 0.0f) { + arg2->x = arg0.x; + arg2->y = arg0.y; + arg2->z = arg0.z; + arg8 = 0.0f; + } else if (arg8 >= 1.0f) { + arg2->x = (arg0.x + arg1.x); + arg2->y = (arg0.y + arg1.y); + arg2->z = (arg0.z + arg1.z); + arg8 = 1.0f; + } else { + arg2->x = (arg0.x + (arg8 * arg1.x)); + arg2->y = (arg0.y + (arg8 * arg1.y)); + arg2->z = (arg0.z + (arg8 * arg1.z)); + } + return arg8; +} -// float fn_1_97CC(void *arg0, void *arg1, void *arg2, float arg8) -// { -// if (arg8 <= 0.0f) { -// arg2->unk_00 = arg0->unk_00; -// arg2->unk_04 = arg0->unk_04; -// arg2->unk_08 = arg0->unk_08; -// return 0.0f; -// } -// if (arg8 >= 1.0f) { -// arg2->unk_00 = arg0->unk_00 + arg1->unk_00; -// arg2->unk_04 = arg0->unk_04 + arg1->unk_04; -// arg2->unk_08 = arg0->unk_08 + arg1->unk_08; -// return 1.0f; -// } -// arg2->unk_00 = arg0->unk_00 + (arg8 * arg1->unk_00); -// arg2->unk_04 = arg0->unk_04 + (arg8 * arg1->unk_04); -// arg2->unk_08 = arg0->unk_08 + (arg8 * arg1->unk_08); -// return arg8; -// } +f32 fn_1_98A4(Vec arg0, Vec arg1, Vec arg2) { + f32 temp_f30; + f32 var_f31; -// float fn_1_98A4(void *arg0, void *arg1, void *arg2) -// { -// float var_f30; -// float var_f31; + var_f31 = (arg2.z * (arg1.z - arg0.z)) + ((arg2.x * (arg1.x - arg0.x)) + (arg2.y * (arg1.y - arg0.y))); + temp_f30 = -((arg2.z * arg2.z) + ((arg2.x * arg2.x) + (arg2.y * arg2.y))); + if (0.0f != temp_f30) { + var_f31 /= temp_f30; + } + return var_f31; +} -// var_f31 = (arg2->unk_08 * (arg1->unk_08 - arg0->unk_08)) -// + ((arg2->unk_00 * (arg1->unk_00 - arg0->unk_00)) + (arg2->unk_04 * (arg1->unk_04 - arg0->unk_04))); -// var_f30 = -((arg2->unk_08 * arg2->unk_08) + ((arg2->unk_00 * arg2->unk_00) + (arg2->unk_04 * arg2->unk_04))); -// if (var_f30 != 0.0f) { -// var_f31 /= var_f30; -// } -// return var_f31; -// } +f32 fn_1_9960(Vec* arg0, Vec* arg1, Vec* arg2) { + Vec sp44; + f32 var_f31; + f32 var_f30; + f32 temp_f29; -// float fn_1_9960(Vec *arg0, Vec *arg1, Vec *arg2) -// { -// float sp4C; -// float sp48; -// float sp44; -// float sp40; -// float sp3C; -// float sp38; -// float sp34; -// float sp30; -// float sp2C; -// float sp28; -// float sp24; -// float sp20; -// float sp1C; -// float sp18; -// float sp14; -// float sp10; -// float spC; -// float sp8; -// float var_f27; -// float var_f28; -// float var_f29; -// float var_f30; -// float var_f31; + if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + } + var_f31 = fn_1_98A4(*arg0, *arg1, *arg2); + fn_1_97CC(*arg1, *arg2, &sp44, var_f31); + return ((arg0->z - sp44.z) * (arg0->z - sp44.z)) + (((arg0->x - sp44.x) * (arg0->x - sp44.x)) + ((arg0->y - sp44.y) * (arg0->y - sp44.y))); +} -// if (((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y))) == 0.0f) { -// return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) -// + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); -// } -// sp38 = arg0->x; -// sp3C = arg0->y; -// sp40 = arg0->z; -// sp2C = arg1->x; -// sp30 = arg1->y; -// sp34 = arg1->z; -// sp20 = arg2->x; -// sp24 = arg2->y; -// sp28 = arg2->z; -// var_f30 = (sp28 * (sp34 - sp40)) + ((sp20 * (sp2C - sp38)) + (sp24 * (sp30 - sp3C))); -// var_f29 = -((sp28 * sp28) + ((sp20 * sp20) + (sp24 * sp24))); -// if (var_f29 != 0.0f) { -// var_f30 /= var_f29; -// } -// var_f27 = var_f30; -// var_f28 = var_f27; -// var_f31 = var_f28; -// sp8 = arg2->x; -// spC = arg2->y; -// sp10 = arg2->z; -// sp14 = arg1->x; -// sp18 = arg1->y; -// sp1C = arg1->z; -// if (var_f31 <= 0.0f) { -// sp44 = sp14; -// sp48 = sp18; -// sp4C = sp1C; -// var_f31 = 0.0f; -// } -// else if (var_f31 >= 1.0f) { -// sp44 = sp14 + sp8; -// sp48 = sp18 + spC; -// sp4C = sp1C + sp10; -// var_f31 = 1.0f; -// } -// else { -// sp44 = sp14 + (var_f31 * sp8); -// sp48 = sp18 + (var_f31 * spC); -// sp4C = sp1C + (var_f31 * sp10); -// } -// return ((arg0->z - sp4C) * (arg0->z - sp4C)) + (((arg0->x - sp44) * (arg0->x - sp44)) + ((arg0->y - sp48) * (arg0->y - sp48))); -// } +f32 fn_1_9C9C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { + f32 sp44; + f32 sp40; + f32 sp3C; + f32 sp38; + f32 sp34; + f32 sp30; + f32 sp2C; + f32 sp28; + f32 sp24; + Vec sp18; + f32 sp14; + f32 sp10; + f32 spC; + f32 sp8; + f32 temp_f25; + f32 temp_f26; + f32 temp_f28; + f32 var_f24; + f32 var_f27; + f64 temp_f31; + f64 temp_f31_2; + f64 temp_f31_3; -// float fn_1_9C9C(void *arg0, void *arg1, void *arg2, void *arg3, void *arg4) -// { -// float sp44; -// float sp40; -// float sp3C; -// float sp38; -// float sp34; -// float sp30; -// float sp2C; -// float sp28; -// float sp24; -// float sp20; -// float sp1C; -// float sp18; -// float sp14; -// float sp10; -// float spC; -// float sp8; -// float var_f22; -// float var_f23; -// float var_f24; -// float var_f25; -// float var_f26; -// float var_f27; -// float var_f28; -// float var_f29; -// float var_f30; -// double var_f31; + if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + } + var_f27 = fn_1_98A4(*arg0, *arg1, *arg2); + fn_1_97CC(*arg1, *arg2, arg3, var_f27); + arg4->x = (arg0->x - arg3->x); + arg4->y = (arg0->y - arg3->y); + arg4->z = (arg0->z - arg3->z); -// if (((arg2->unk_08 * arg2->unk_08) + ((arg2->unk_00 * arg2->unk_00) + (arg2->unk_04 * arg2->unk_04))) == 0.0f) { -// return ((arg0->unk_08 - arg1->unk_08) * (arg0->unk_08 - arg1->unk_08)) -// + (((arg0->unk_00 - arg1->unk_00) * (arg0->unk_00 - arg1->unk_00)) + ((arg0->unk_04 - arg1->unk_04) * (arg0->unk_04 - -// arg1->unk_04))); -// } -// sp3C = arg0->unk_00; -// sp40 = arg0->unk_04; -// sp44 = arg0->unk_08; -// sp30 = arg1->unk_00; -// sp34 = arg1->unk_04; -// sp38 = arg1->unk_08; -// sp24 = arg2->unk_00; -// sp28 = arg2->unk_04; -// sp2C = arg2->unk_08; -// var_f27 = (sp2C * (sp38 - sp44)) + ((sp24 * (sp30 - sp3C)) + (sp28 * (sp34 - sp40))); -// var_f25 = -((sp2C * sp2C) + ((sp24 * sp24) + (sp28 * sp28))); -// if (var_f25 != 0.0f) { -// var_f27 /= var_f25; -// } -// var_f22 = var_f27; -// var_f23 = var_f22; -// var_f30 = var_f23; -// spC = arg2->unk_00; -// sp10 = arg2->unk_04; -// sp14 = arg2->unk_08; -// sp18 = arg1->unk_00; -// sp1C = arg1->unk_04; -// sp20 = arg1->unk_08; -// if (var_f30 <= 0.0f) { -// arg3->unk_00 = sp18; -// arg3->unk_04 = sp1C; -// arg3->unk_08 = sp20; -// var_f30 = 0.0f; -// } -// else if (var_f30 >= 1.0f) { -// arg3->unk_00 = sp18 + spC; -// arg3->unk_04 = sp1C + sp10; -// arg3->unk_08 = sp20 + sp14; -// var_f30 = 1.0f; -// } -// else { -// arg3->unk_00 = sp18 + (var_f30 * spC); -// arg3->unk_04 = sp1C + (var_f30 * sp10); -// arg3->unk_08 = sp20 + (var_f30 * sp14); -// } -// arg4->unk_00 = arg0->unk_00 - arg3->unk_00; -// arg4->unk_04 = arg0->unk_04 - arg3->unk_04; -// arg4->unk_08 = arg0->unk_08 - arg3->unk_08; -// var_f28 = (arg4->unk_08 * arg4->unk_08) + ((arg4->unk_00 * arg4->unk_00) + (arg4->unk_04 * arg4->unk_04)); -// var_f29 = var_f28; -// if (var_f29 > 0.0f) { -// var_f31 = __frsqrte(var_f29); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f29 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f29 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f29 * (var_f31 * var_f31))); -// sp8 = var_f29 * var_f31; -// var_f24 = sp8; -// } -// else { -// var_f24 = var_f29; -// } -// var_f28 = var_f24; -// if (var_f28 != 0.0f) { -// var_f26 = 1.0f / var_f28; -// arg4->unk_00 = arg4->unk_00 * var_f26; -// arg4->unk_04 = arg4->unk_04 * var_f26; -// arg4->unk_08 = arg4->unk_08 * var_f26; -// } -// else { -// arg4->unk_08 = 0.0f; -// arg4->unk_04 = 0.0f; -// arg4->unk_00 = 0.0f; -// } -// return var_f28; -// } + return fn_1_9634(arg4); +} -// float fn_1_A14C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) -// { -// float var_f23; -// float var_f24; -// float var_f25; -// float var_f26; -// float var_f27; -// float var_f28; -// float var_f29; -// float var_f30; -// float var_f31; -// s32 var_r29; -// s32 var_r30; -// s32 var_r31; +f32 fn_1_A14C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3) { + f32 temp_f31; + f32 var_f30; + f32 var_f29; + f32 var_f28; + f32 var_f27; + f32 var_f26; + s32 var_r31; + s32 var_r30; + s32 var_r29; -// var_f30 = -1.0f; -// var_r31 = 0; -// if (arg3->unk_00 < 0.0f) { -// var_f25 = -arg3->unk_00; -// } -// else { -// var_f25 = arg3->unk_00; -// } -// var_f28 = var_f25; -// if (arg3->unk_04 < 0.0f) { -// var_f24 = -arg3->unk_04; -// } -// else { -// var_f24 = arg3->unk_04; -// } -// var_f27 = var_f24; -// if (arg3->unk_08 < 0.0f) { -// var_f23 = -arg3->unk_08; -// } -// else { -// var_f23 = arg3->unk_08; -// } -// var_f26 = var_f23; -// if (var_f28 >= var_f27) { -// if (var_f28 >= var_f26) { -// var_r30 = 1; -// } -// else { -// var_r30 = 0x100; -// } -// var_r31 = var_r30; -// } -// else { -// if (var_f27 >= var_f26) { -// var_r29 = 0x10; -// } -// else { -// var_r29 = 0x100; -// } -// var_r31 = var_r29; -// } -// if ((var_r31 & 3) != 0) { -// if ((arg1->x != 0.0f) || (arg1->z != 0.0f)) { -// var_f31 = (arg3->unk_00 * arg1->z) - (arg3->unk_08 * arg1->x); -// if (var_f31 == 0.0f) { -// return -1.0f; -// } -// var_f29 = ((arg3->unk_08 * (arg0->x - arg2->x)) - (arg3->unk_00 * (arg0->z - arg2->z))) / var_f31; -// goto block_44; -// } -// var_f31 = (arg3->unk_04 * arg1->x) - (arg3->unk_00 * arg1->y); -// if (var_f31 == 0.0f) { -// return -1.0f; -// } -// var_f29 = ((arg3->unk_00 * (arg0->y - arg2->y)) - (arg3->unk_04 * (arg0->x - arg2->x))) / var_f31; -// goto block_44; -// } -// if ((var_r31 & 0x30) != 0) { -// if ((arg1->x != 0.0f) || (arg1->y != 0.0f)) { -// var_f31 = (arg3->unk_04 * arg1->x) - (arg3->unk_00 * arg1->y); -// if (var_f31 == 0.0f) { -// return -1.0f; -// } -// var_f29 = ((arg3->unk_00 * (arg0->y - arg2->y)) - (arg3->unk_04 * (arg0->x - arg2->x))) / var_f31; -// goto block_44; -// } -// var_f31 = (arg3->unk_08 * arg1->y) - (arg3->unk_04 * arg1->z); -// if (var_f31 == 0.0f) { -// return -1.0f; -// } -// var_f29 = ((arg3->unk_04 * (arg0->z - arg2->z)) - (arg3->unk_08 * (arg0->y - arg2->y))) / var_f31; -// goto block_44; -// } -// if ((arg1->x != 0.0f) || (arg1->z != 0.0f)) { -// var_f31 = (arg3->unk_00 * arg1->z) - (arg3->unk_08 * arg1->x); -// if (var_f31 == 0.0f) { -// return -1.0f; -// } -// var_f29 = ((arg3->unk_08 * (arg0->x - arg2->x)) - (arg3->unk_00 * (arg0->z - arg2->z))) / var_f31; -// goto block_44; -// } -// var_f31 = (arg3->unk_08 * arg1->y) - (arg3->unk_04 * arg1->z); -// if (var_f31 == 0.0f) { -// return -1.0f; -// } -// var_f29 = ((arg3->unk_04 * (arg0->z - arg2->z)) - (arg3->unk_08 * (arg0->y - arg2->y))) / var_f31; -// block_44: -// return var_f29; -// } + var_f30 = -1.0f; + var_r31 = 0; + + var_f28 = BOARD_FABS(arg3->x); + var_f27 = BOARD_FABS(arg3->y); + var_f26 = BOARD_FABS(arg3->z); + if (var_f28 >= var_f27) { + if (var_f28 >= var_f26) { + var_r30 = 1; + } else { + var_r30 = 0x100; + } + var_r31 = var_r30; + } else { + if (var_f27 >= var_f26) { + var_r29 = 0x10; + } else { + var_r29 = 0x100; + } + var_r31 = var_r29; + } + if ((var_r31 & 3) != 0) { + if ((0.0f != arg1->x) || (0.0f != arg1->z)) { + if (0.0f == (temp_f31 = (arg3->x * arg1->z) - (arg3->z * arg1->x))) { + return var_f30; + } + var_f29 = ((arg3->z * (arg0->x - arg2->x)) - (arg3->x * (arg0->z - arg2->z))) / temp_f31; + } else if (0.0f == (temp_f31 = (arg3->y * arg1->x) - (arg3->x * arg1->y))) { + return var_f30; + } else { + var_f29 = ((arg3->x * (arg0->y - arg2->y)) - (arg3->y * (arg0->x - arg2->x))) / temp_f31; + } + } else if ((var_r31 & 0x30) != 0) { + if ((0.0f != arg1->x) || (0.0f != arg1->y)) { + if (0.0f == (temp_f31 = (arg3->y * arg1->x) - (arg3->x * arg1->y))) { + return var_f30; + } + var_f29 = ((arg3->x * (arg0->y - arg2->y)) - (arg3->y * (arg0->x - arg2->x))) / temp_f31; + } else if (0.0f == (temp_f31 = (arg3->z * arg1->y) - (arg3->y * arg1->z))) { + return var_f30; + } else { + var_f29 = ((arg3->y * (arg0->z - arg2->z)) - (arg3->z * (arg0->y - arg2->y))) / temp_f31; + } + } else if ((0.0f != arg1->x) || (0.0f != arg1->z)) { + if (0.0f == (temp_f31 = (arg3->x * arg1->z) - (arg3->z * arg1->x))) { + return var_f30; + } + var_f29 = ((arg3->z * (arg0->x - arg2->x)) - (arg3->x * (arg0->z - arg2->z))) / temp_f31; + } else if (0.0f == (temp_f31 = (arg3->z * arg1->y) - (arg3->y * arg1->z))) { + return var_f30; + } else { + var_f29 = ((arg3->y * (arg0->z - arg2->z)) - (arg3->z * (arg0->y - arg2->y))) / temp_f31; + } + return var_f29; +} void fn_1_A60C(omObjData *object) { @@ -3072,11 +2888,11 @@ void fn_1_A688(omObjData *object) { } Vec lbl_1_data_514 = { -850.0f, 0.0f, -850.0f }; s32 lbl_1_data_520[25] = { - -98, -97, -96, -95, -94, - -50, -49, -48, -47, -46, - -2, -1, 0, 1, 2, - 0x2E, 0x2F, 0x30, 0x31, 0x32, - 0x5E, 0x5F, 0x60, 0x61, 0x62, + -0x62, -0x61, -0x60, -0x5F, -0x5E, + -0x32, -0x31, -0x30, -0x2F, -0x2E, + -0x2, -0x1, 0x0, 0x1, 0x2, + 0x2E, 0x2F, 0x30, 0x31, 0x32, + 0x5E, 0x5F, 0x60, 0x61, 0x62, }; u32 lbl_1_data_584[25] = { @@ -3107,158 +2923,141 @@ u32 lbl_1_data_584[25] = { 0x50, }; -// void fn_1_A68C(ModelData *model, Mtx matrix) -// { -// Vec sp14; -// Vec sp8; -// ? *var_r30; -// float var_f31; -// omObjData *var_r27; -// s32 var_r24; -// s32 var_r28; -// s32 var_r29; -// u8 *var_r26; -// void *var_r25; -// void *var_r31; +#define getData(v, off) &( &( *OM_GET_DATA_PTR(lbl_1_bss_DBC, M438UnkType) )[ (u32)(0.028235294f * (v.x - off)) ] )[ (u32)(0.028235294f * (v.z - off)) * 0x30 ] -// if (omPauseChk() == 0) { -// memset(lbl_1_bss_DBC->data, 0, 0x900); -// if (lbl_1_bss_DBA == 7) { -// for (var_r30 = &lbl_1_bss_298; var_r29 = 0; var_r30 < 0x30; var_r29++; var_r30 += 0x30) { -// if ((var_r30->unk_00 > 1) && (var_r30->unk_00 < 5)) { -// var_f31 = 0.0f; -// for (var_f31 = 0.0f; var_f31 < (35.416668f + var_r30->unk_14); var_f31 += 35.416668f) { -// VECScale(var_r30 + 0x24, &sp8, var_f31); -// VECAdd(var_r30 + 0x18, &sp8, &sp14); -// VECSubtract(&sp14, &lbl_1_data_514, &sp14); -// var_r24 = (0.028235294f * sp14.z) * 0x30; -// var_r25 = (0.028235294f * sp14) + var_r24; -// var_r25 += lbl_1_bss_DBC->data; -// for (var_r28 = 0; var_r28 < 0x19; var_r28++) { -// var_r26 = var_r25 + lbl_1_data_520[var_r28]; -// if (*var_r26 < lbl_1_data_584[var_r28]) { -// *var_r26 = lbl_1_data_584[var_r28]; -// } -// } -// } -// } -// } -// for (var_r29 = 0; var_r29 < 4; var_r29++) { -// if (lbl_1_bss_DC4[var_r29] != NULL) { -// var_r27 = lbl_1_bss_DC4[var_r29]; -// var_r31 = var_r27->data; -// if ((var_r31 != NULL) && (var_r31->unk_68 != 0)) { -// var_r31->unk_68 = 0; -// VECAdd(var_r31 + 0x6C, var_r31 + 0x4C, &sp14); -// var_r31->unk_64 = fn_1_AE18(var_r27->work[0], &sp14, var_r31 + 0x58); -// } -// } -// } -// } -// } -// } +void fn_1_A68C(ModelData* model, Mtx matrix) { + Vec sp14; + Vec sp8; + M438StructBss298* var_r30; + f32 var_f31; + omObjData* temp_r27; + s32 var_r28; + s32 var_r29; + u8* temp_r26; + u8* var_r25; + M438MainWork *temp_r31; -// u16 fn_1_A8FC(Vec *arg0, float arg8) -// { -// s32 sp34; -// float sp30; -// s32 sp2C; -// Vec sp20; -// Vec sp14; -// float sp10; -// float spC; -// float sp8; -// Vec *var_r29; -// float var_f25; -// float var_f28; -// float var_f29; -// float var_f30; -// float var_f31; -// double var_f26; -// double var_f27; -// s32 var_r28; -// u16 var_r30; -// u8 temp_r0; -// void *var_r31; + if ((u8)omPauseChk() == 0) { + memset(lbl_1_bss_DBC->data, 0, 0x900); + if (lbl_1_bss_DBA == 7) { + var_r30 = lbl_1_bss_298; + for (var_r29 = 0; var_r29 < 0x30; var_r29++, var_r30++) { + if ((var_r30->unk_00 > 1U) && (var_r30->unk_00 < 5U)) { -// var_r29 = arg0; -// var_f25 = arg8; -// var_r30 = 0; -// var_r28 = 0; -// var_f28 = 100.0f * (4.5f - (2.0f * var_f25)); -// var_f31 = VECMag(var_r29); -// if (var_f31 > 280.0f) { -// if (var_f31 > 560.0f) { -// var_r28 = 1; -// VECNormalize(var_r29, &sp14); -// } -// var_f31 -= 280.0f; -// var_f31 *= 0.12987013f; -// if (var_f31 > 50.0f) { -// var_f31 = 500.0f; -// } -// var_r30 = var_f31; -// } -// if (lbl_1_bss_DBA == 7) { -// var_r31 = lbl_1_bss_DC0->data; -// sp2C = var_r31->unk_34; -// sp30 = var_r31->unk_38; -// sp34 = var_r31->unk_3C; -// sp30 = 0.0f; -// temp_r0 = var_r31->unk_00; -// if (temp_r0 < 4) { -// if (temp_r0 < 2) { -// goto block_18; -// } -// sp8 = sind(var_r31->unk_08); -// spC = 0.0f; -// sp10 = cosd(var_r31->unk_08); -// VECScale(&sp8, &sp20, 600.0f + (100.0f * (8.0f * var_f25))); -// var_f30 = fn_1_B440(var_r29, &sp2C, &sp20); -// if ((var_f30 > -0.2f) && (var_f30 < 1.0f)) { -// VECScale(&sp20, &sp20, var_f30); -// VECAdd(&sp2C, &sp20, &sp2C); -// VECSubtract(&sp2C, var_r29, &sp20); -// var_f31 = VECMag(&sp20); -// if (var_f31 < var_f28) { -// var_f29 = 0.0f; -// if (var_r28 != 0) { -// var_f29 = VECDotProduct(&sp14, &sp8); -// var_f27 = fabs(var_f29); -// var_f29 = 1.0 - var_f27; -// var_f29 = var_f29; -// } -// var_f31 = (1.0f / var_f28) * (var_f28 - var_f31); -// var_f31 = 0.5f * (var_f31 + (1.0f - ((1.0f - var_f31) * (1.0f - var_f31)))); -// var_f31 += (1.0f - var_f31) * var_f29; -// var_f31 = 100.0f + (50.0f * var_f31); -// var_f26 = fabs(var_f30); -// var_f30 = 0.5 + (0.5 * (1.0 - var_f26)); -// var_f30 = var_f30; -// var_f31 *= var_f30; -// if (var_f31 > 150.0f) { -// var_f31 = 150.0f; -// } -// var_r30 = var_r30 + var_f31; -// } -// } -// } -// else { -// block_18: -// VECSubtract(var_r29, &sp2C, &sp20); -// var_f31 = VECMag(&sp20); -// if (var_f31 < 600.0f) { -// var_f31 = 800.0f - var_f31; -// var_f31 = 20.0f + (0.1f * var_f31); -// if (var_f31 > 100.0f) { -// var_f31 = 100.0f; -// } -// var_r30 = var_r30 + var_f31; -// } -// } -// } -// return var_r30; -// } + var_f31 = 0.0f; + for (var_f31 = 0.0f; var_f31 < (35.416668f + var_r30->unk_14); var_f31 += 35.416668f) { + PSVECScale(&var_r30->unk_24, &sp8, var_f31); + PSVECAdd(&var_r30->unk_18, &sp8, &sp14); + PSVECSubtract(&sp14, &lbl_1_data_514, &sp14); + + // @todo make this look nicer + // var_r25 = getData(sp14, 0); + var_r25 = getData(sp14, 0); + for (var_r28 = 0; var_r28 < 0x19; var_r28++) { + temp_r26 = &var_r25[lbl_1_data_520[var_r28]]; + if (temp_r26[0] < lbl_1_data_584[var_r28]) { + temp_r26[0] = lbl_1_data_584[var_r28]; + } + } + } + } + } + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if ((omObjData* ) lbl_1_bss_DC4[var_r29]) { + temp_r27 = lbl_1_bss_DC4[var_r29]; + temp_r31 = temp_r27->data; + if ((temp_r31) && (temp_r31->unk_68 != 0)) { + temp_r31->unk_68 = 0; + PSVECAdd(&temp_r31->unk_6C, &temp_r31->unk_4C, &sp14); + temp_r31->unk_64 = fn_1_AE18(temp_r27->work[0], temp_r31->unk_7C, &sp14, &temp_r31->unk_58); + } + } + } + } + } +} + +u32 fn_1_A8FC(Vec* arg0, f32 arg8) { + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + f32 var_f31; + f32 var_f30; + f32 var_f29; + f32 temp_f28; + s32 var_r28; + u32 var_r30; + M438MainWork4 *temp_r31; + + var_r30 = 0; + var_r28 = 0; + temp_f28 = 100.0f * (4.5f - (2.0f * arg8)); + var_f31 = PSVECMag(arg0); + if (var_f31 > 280.0f) { + if (var_f31 > 560.0f) { + var_r28 = 1; + PSVECNormalize(arg0, &sp14); + } + var_f31 -= 280.0f; + var_f31 *= 0.12987013f; + if (var_f31 > 50.0f) { + var_f31 = 500.0f; + } + var_r30 = var_f31; + } + if (lbl_1_bss_DBA == 7) { + temp_r31 = lbl_1_bss_DC0->data; + sp2C = temp_r31->unk_34; + sp2C.y = 0.0f; + switch (temp_r31->unk_00) { + case 2: + case 3: + sp8.x = sind(temp_r31->unk_08); + sp8.y = 0.0f; + sp8.z = cosd(temp_r31->unk_08); + PSVECScale(&sp8, &sp20, 600.0f + (100.0f * (8.0f * arg8))); + var_f30 = fn_1_B440(arg0, &sp2C, &sp20); + if (var_f30 > -0.2f && var_f30 < 1.0f) { + PSVECScale(&sp20, &sp20, var_f30); + PSVECAdd(&sp2C, &sp20, &sp2C); + PSVECSubtract(&sp2C, arg0, &sp20); + var_f31 = PSVECMag(&sp20); + if (var_f31 < temp_f28) { + var_f29 = 0.0f; + if (var_r28 != 0) { + var_f29 = PSVECDotProduct(&sp14, &sp8); + var_f29 = 1.0 - fabs(var_f29); + } + var_f31 = (1.0f / temp_f28) * (temp_f28 - var_f31); + var_f31 = 0.5f * (var_f31 + (1.0f - ((1.0f - var_f31) * (1.0f - var_f31)))); + var_f31 += (1.0f - var_f31) * var_f29; + var_f31 = 100.0f + 50.0f * var_f31; + var_f30 = 0.5 + 0.5 * (1.0 - fabs(var_f30)); + var_f31 *= var_f30; + if (var_f31 > 150.0f) { + var_f31 = 150.0f; + } + var_r30 += var_f31; + } + } + break; + default: + PSVECSubtract(arg0, &sp2C, &sp20); + var_f31 = PSVECMag(&sp20); + if (var_f31 < 600.0f) { + var_f31 = 800.0f - var_f31; + var_f31 = 20.0f + (0.1f * var_f31); + if (var_f31 > 100.0f) { + var_f31 = 100.0f; + } + var_r30 += var_f31; + } + break; + } + } + return var_r30; +} s32 lbl_1_data_5E8[9] = { 0, -49, -48, -47, -1, 1, 0x2F, 0x30, 0x31 }; From 5886085302439c1613be719aaea52e138d132575 Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Sun, 29 Dec 2024 14:38:00 -0500 Subject: [PATCH 213/311] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 88de0b1a..f1594c57 100644 --- a/README.md +++ b/README.md @@ -20,8 +20,8 @@ Supported versions: - `GMPE01_00`: Rev 0 (USA) - `GMPE01_01`: Rev 1 (USA) - `GMPP01_00`: Rev 0 (PAL) -- `GMPP01_02`: REV 2 (PAL) -- `GMPJ01_00`: REV 0 (JP) +- `GMPP01_02`: Rev 2 (PAL) +- `GMPJ01_00`: Rev 0 (JP) Dependencies ============ From c914104198ca8604dc2a68f3e0d3ca59771e864a Mon Sep 17 00:00:00 2001 From: CreateSource Date: Sun, 29 Dec 2024 16:19:06 -0500 Subject: [PATCH 214/311] match m438Dll/main --- config/GMPE01_00/rels/m438Dll/symbols.txt | 3 +- configure.py | 2 +- src/REL/m438Dll/main.c | 305 +++++++++------------- 3 files changed, 132 insertions(+), 178 deletions(-) diff --git a/config/GMPE01_00/rels/m438Dll/symbols.txt b/config/GMPE01_00/rels/m438Dll/symbols.txt index 13ca3c7d..e1febc85 100644 --- a/config/GMPE01_00/rels/m438Dll/symbols.txt +++ b/config/GMPE01_00/rels/m438Dll/symbols.txt @@ -381,7 +381,7 @@ lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC lbl_1_data_28 = .data:0x00000028; // type:object size:0xC lbl_1_data_34 = .data:0x00000034; // type:object size:0xC -lbl_1_data_40 = .data:0x00000040; // type:object size:0x23 data:string +lbl_1_data_40 = .data:0x00000040; // type:object size:0x23 scope:local data:string lbl_1_data_64 = .data:0x00000064; // type:object size:0x4 data:4byte lbl_1_data_68 = .data:0x00000068; // type:object size:0x420 data:float lbl_1_data_488 = .data:0x00000488; // type:object size:0x2C @@ -434,6 +434,7 @@ lbl_1_data_8C8 = .data:0x000008C8; // type:object size:0x9 data:string lbl_1_data_8D1 = .data:0x000008D1; // type:object size:0x7 data:string lbl_1_data_8D8 = .data:0x000008D8; // type:object size:0x60 lbl_1_data_938 = .data:0x00000938; // type:object size:0xB data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x288 diff --git a/configure.py b/configure.py index b761c7f8..83619991 100644 --- a/configure.py +++ b/configure.py @@ -1146,7 +1146,7 @@ config.libs = [ Rel( "m438Dll", # Chain Chomp Fever objects={ - Object(NonMatching, "REL/m438Dll/main.c"), + Object(MatchingFor("GMPE01_00"), "REL/m438Dll/main.c"), Object(NonMatching, "REL/m438Dll/map.c"), Object(NonMatching, "REL/m438Dll/fire.c"), }, diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index 2faac948..c7409d36 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -290,12 +290,13 @@ s16 lbl_1_bss_DAA[4]; s16 lbl_1_bss_DA8; s32 lbl_1_bss_DA4; void *lbl_1_bss_BA4[0x80]; -u32 lbl_1_bss_B98; +u32 lbl_1_bss_B98[3]; M438StructBss298 lbl_1_bss_298[48]; s32 lbl_1_bss_294; u16 lbl_1_bss_C[0x144]; s32 lbl_1_bss_8; s32 lbl_1_bss_4; +static u32 lbl_1_bss_0; void ObjectSetup(void) { @@ -458,7 +459,7 @@ void fn_1_974(omObjData *object) if (lbl_1_data_64 == -1 && (MGSeqStatGet(lbl_1_bss_DB6) & 0x10) != 0) { lbl_1_data_64 = HuAudSeqPlay(0x49); } - lbl_1_bss_B98 = 0x12C; + lbl_1_bss_B98[0] = 0x12C; break; case 7: var_r29 = 0; @@ -481,8 +482,8 @@ void fn_1_974(omObjData *object) } break; case 8: - if (lbl_1_bss_B98 != 0) { - lbl_1_bss_B98--; + if (lbl_1_bss_B98[0] != 0) { + lbl_1_bss_B98[0]--; } var_r24 = 0; for (var_r31 = 0; var_r31 < 4; var_r31++) { @@ -502,7 +503,7 @@ void fn_1_974(omObjData *object) } HuAudSeqFadeOut(lbl_1_data_64, 0x3C); } - else if ((MGSeqStatGet(lbl_1_bss_DB6) == 0) && (var_r24 == 0 || lbl_1_bss_B98 == 0)) { + else if ((MGSeqStatGet(lbl_1_bss_DB6) == 0) && (var_r24 == 0 || lbl_1_bss_B98[0] == 0)) { lbl_1_bss_DB6 = -1; lbl_1_bss_DB2 = 0x3C; lbl_1_bss_DBA += 1; @@ -3090,176 +3091,128 @@ Vec lbl_1_data_69C[9] = { s32 lbl_1_data_708[9] = { 0, -19, -18, -17, -1, 1, 0x11, 0x12, 0x13 }; s32 lbl_1_data_72C[9] = { 0, -38, -54, -34, -3, 3, 0x22, 0x36, 0x26 }; +s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) { + s32 sp58[9]; + Vec sp4C; + Vec sp40; + Vec sp34; + Vec sp28; + Vec sp1C; + u8* sp18; + u32 sp14; + u32 sp10; + f32 var_f31; + f32 var_f30; + f32 var_f29; + f32 temp_f28; + s32 var_r31; + s32 var_r30; + u32 var_r29; + s32 var_r28; + u16* temp_r27; + s32 var_r26; + M438MainWork *var_r25; + u8* temp_r24; + s32 var_r23; + u8* var_r22; + u16* var_r21; + u32 var_r19; + u32 var_r18; + u8* temp_r17; -// s32 fn_1_AE18(u32 arg0, Vec *arg1, Vec *arg2) -// { -// Vec sp4C; -// float sp48; -// float sp44; -// float sp40; -// Vec sp34; -// float sp30; -// float sp2C; -// s32 sp28; -// Vec sp1C; -// void *sp18; -// u32 sp14; -// u32 sp10; -// Vec *spC; -// u32 sp8; -// Vec *var_r20; -// float temp_r0; -// float temp_r3; -// float var_f22; -// float var_f23; -// float var_f24; -// float var_f25; -// float var_f26; -// float var_f27; -// float var_f28; -// float var_f29; -// float var_f30; -// float var_f31; -// s32 var_r18; -// s32 var_r23; -// s32 var_r26; -// s32 var_r28; -// s32 var_r30; -// u16 *var_r21; -// u16 *var_r27; -// u16 var_r31; -// u32 temp_r3_2; -// u32 var_r19; -// u32 var_r29; -// u8 *var_r24; -// void *var_r17; -// void *var_r22; -// void *var_r25; + memset(lbl_1_bss_C, 0, 0x288); + sp40 = *arg1; + sp10 = 0.028235294f * (sp40.x - -850.0f); + sp14 = 0.028235294f * (sp40.z - -850.0f); + temp_r17 = &(&(*OM_GET_DATA_PTR(lbl_1_bss_DBC, M438UnkType))[sp10])[sp14 * 0x30]; + sp40.y = 0.0f; + *arg2 = sp40; + var_r25 = lbl_1_bss_DC4[arg0]->data; + temp_f28 = var_r25->unk_3C; + var_r19 = 0x2710; + var_r18 = 0; + + for (var_r30 = 0; var_r30 < 9; var_r30++) { + PSVECAdd(&sp40, &lbl_1_data_60C[var_r30], &sp34); + sp18 = temp_r17 + lbl_1_data_5E8[var_r30]; + (void)temp_r17; + var_r21 = &(&lbl_1_bss_C[lbl_1_data_708[var_r30]])[0xAB]; + var_f31 = 0.0f; + var_r29 = 0; + var_r22 = sp18; + sp28 = sp34; + + for (var_r23 = 0; var_r23 < 3; var_r23++) { + for (var_r28 = 0; var_r28 < 9; var_r28++) { + temp_r24 = var_r22 + lbl_1_data_5E8[var_r28]; + PSVECAdd(&sp28, &lbl_1_data_60C[var_r28], &sp4C); + if ((lbl_1_bss_DBC->data <= temp_r24) && (((u8*)lbl_1_bss_DBC->data + 0x900 > temp_r24) && (fabs(sp4C.x) < 850.0) && (fabs(sp4C.z) < 850.0))) { + var_f31++; + temp_r27 = &var_r21[lbl_1_data_708[var_r28]]; + if (*temp_r27 == 0) { + var_r31 = fn_1_A8FC(&sp4C, temp_f28); + var_r31 += *temp_r24; + var_f29 = 0.0f; + if (var_r31 < 0x3C) { + var_f29 = (1.0f / 60.0f) * (0x3C - var_r31); + } + var_f29 = 80.0f + (100.0f * (2.5f * var_f29)); + for (var_r26 = 0; var_r26 < 4; var_r26++) { + if (var_r26 != arg0) { + var_r25 = lbl_1_bss_DC4[var_r26]->data; + PSVECSubtract(&sp4C, &var_r25->unk_6C, &sp1C); + sp1C.y = 0.0f; + var_f30 = PSVECMag(&sp1C); + if (var_f30 < var_f29) { + var_f30 = var_f29 - var_f30; + var_f30 *= (40.0f / var_f29); + var_r31 += var_f30; + } + } + } + *temp_r27 = ++var_r31; + } else { + var_r31 = *temp_r27; + } + var_r29 += var_r31; + if ((var_r28 == 0) && (var_r23 == 0)) { + var_r29 += var_r31 * 3; + var_f31 += 3.0f; + } + } + } + PSVECAdd(&sp28, &lbl_1_data_69C[var_r30], &sp28); + var_r22 += lbl_1_data_678[var_r30]; + var_r21 = &var_r21[lbl_1_data_72C[var_r30]]; + var_f31 *= 2.0f; + var_r29 *= 2.0f; + } + if (var_f31 > 1.0f) { + var_r29 /= var_f31; + } + if (var_r19 > var_r29) { + var_r18 = var_r30; + var_r19 = var_r29; + *arg2 = sp34; + } + sp58[var_r30] = var_r29; + } + if (var_r18 != 0) { + return 1; + } + return 0; +} -// sp8 = arg0; -// spC = arg1; -// var_r20 = arg2; -// memset(lbl_1_bss_C, 0, 0x288); -// temp_r3 = arg1->x; -// sp40 = temp_r3; -// sp44 = arg1->y; -// temp_r0 = arg1->z; -// sp48 = temp_r0; -// temp_r3_2 = 0.028235294f * (sp40 - -850.0f); -// sp10 = temp_r3_2; -// sp14 = 0.028235294f * (sp48 - -850.0f); -// var_r17 = temp_r3_2 + (sp14 * 0x30); -// var_r17 += lbl_1_bss_DBC->data; -// sp44 = 0.0f; -// var_r20->x = temp_r3; -// var_r20->y = sp44; -// var_r20->z = temp_r0; -// var_r25 = lbl_1_bss_DC4[sp8]->data; -// var_f28 = var_r25->unk_3C; -// var_r19 = 0x2710; -// var_r18 = 0; -// for (var_r30 = 0; var_r30 < 9; var_r30++) { -// VECAdd(&sp40, &lbl_1_data_60C[var_r30], &sp34); -// sp18 = var_r17 + lbl_1_data_5E8[var_r30]; -// var_r21 = &lbl_1_bss_C[lbl_1_data_708[var_r30]] + 0x156; -// var_f31 = 0.0f; -// var_r29 = 0; -// var_r22 = sp18; -// sp28 = sp34; -// sp2C = sp34.y; -// sp30 = sp34.z; -// for (var_r23 = 0; var_r23 < 3; var_r23++) { -// for (var_r28 = 0; var_r28 < 9; var_r28++) { -// var_r24 = var_r22 + lbl_1_data_5E8[var_r28]; -// VECAdd(&sp28, &lbl_1_data_60C[var_r28], &sp4C); -// if ((lbl_1_bss_DBC->data <= var_r24) && ((lbl_1_bss_DBC->data + 0x900) > var_r24)) { -// var_f27 = sp4C; -// var_f25 = fabs(var_f27); -// var_f24 = var_f25; -// if (var_f24 < 850.0) { -// var_f26 = sp4C.z; -// var_f23 = fabs(var_f26); -// var_f22 = var_f23; -// if (var_f22 < 850.0) { -// var_f31 += 1.0f; -// var_r27 = &var_r21[lbl_1_data_708[var_r28]]; -// if (*var_r27 == 0) { -// var_r31 = fn_1_A8FC(&sp4C, var_f28); -// var_r31 += *var_r24; -// var_f29 = 0.0f; -// if (var_r31 < 0x3C) { -// var_f29 = 0.016666668f * (0x3C - var_r31); -// } -// var_f29 = 80.0f + (100.0f * (2.5f * var_f29)); -// for (var_r26 = 0; var_r26 < 4; var_r26++) { -// if (var_r26 != sp8) { -// var_r25 = lbl_1_bss_DC4[var_r26]->data; -// VECSubtract(&sp4C, var_r25 + 0x6C, &sp1C); -// sp1C.y = 0.0f; -// var_f30 = VECMag(&sp1C); -// if (var_f30 < var_f29) { -// var_f30 = var_f29 - var_f30; -// var_f30 *= 40.0f / var_f29; -// var_r31 = var_r31 + var_f30; -// } -// } -// } -// var_r31++; -// *var_r27 = var_r31; -// } -// else { -// var_r31 = *var_r27; -// } -// var_r29 += var_r31; -// if ((var_r28 == 0) && (var_r23 == 0)) { -// var_r29 += var_r31 * 3; -// var_f31 += 3.0f; -// } -// } -// } -// } -// } -// VECAdd(&sp28, &lbl_1_data_69C[var_r30], &sp28); -// var_r22 += lbl_1_data_678[var_r30]; -// var_r21 = &var_r21[lbl_1_data_72C[var_r30]]; -// var_f31 *= 2.0f; -// var_r29 = var_r29 * 2.0f; -// } -// if (var_f31 > 1.0f) { -// var_r29 = var_r29 / var_f31; -// } -// if (var_r19 > var_r29) { -// var_r18 = var_r30; -// var_r19 = var_r29; -// var_r20->x = sp34; -// var_r20->y = sp34.y; -// var_r20->z = sp34.z; -// } -// (&sp58[0])[var_r30] = var_r29; -// } -// if (var_r18 != 0) { -// return 1; -// } -// return 0; -// } - -// float fn_1_B440(Vec *arg0, Vec *arg1, Vec *arg2) -// { -// Vec sp10; -// Vec *spC; -// Vec *sp8; -// Vec *var_r31; -// float var_f30; -// float var_f31; - -// sp8 = arg0; -// spC = arg1; -// var_r31 = arg2; -// VECSubtract(spC, sp8, &sp10); -// var_f31 = VECDotProduct(&sp10, var_r31); -// var_f30 = -VECSquareMag(var_r31); -// if (var_f30 != 0.0f) { -// var_f31 /= var_f30; -// } -// return var_f31; -// } +f32 fn_1_B440(Vec* arg0, Vec* arg1, Vec* arg2) { + Vec sp10; + f32 temp_f30; + f32 var_f31; + + PSVECSubtract(arg1, arg0, &sp10); + var_f31 = PSVECDotProduct(&sp10, arg2); + temp_f30 = -PSVECSquareMag(arg2); + if (temp_f30 != 0.0f) { + var_f31 /= temp_f30; + } + return var_f31; +} From 99e5615150d85de1af2c94e9858211fa92bc9cf2 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Sun, 29 Dec 2024 19:07:19 -0500 Subject: [PATCH 215/311] match m418Dll --- .vscode/settings.json | 11 +- config/GMPE01_00/rels/m418Dll/symbols.txt | 256 +++++++++++----------- config/GMPE01_00/rels/m438Dll/symbols.txt | 2 +- configure.py | 2 +- include/REL/m418Dll.h | 27 ++- src/REL/m418Dll/main.c | 8 +- src/REL/m418Dll/sequence.c | 252 +++++++++++++++++++++ 7 files changed, 412 insertions(+), 146 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index f4d558fa..5343bec3 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -17,6 +17,7 @@ "*.s": "plaintext", "*.json": "jsonc", "*.c": "c", + "*.asm": "masm", "*.inc": "c", ".clangd": "yaml", "m443dll.h": "c", @@ -25,7 +26,15 @@ "m438dll.h": "c", "audio.h": "c", "musyx.h": "c", - "math.h": "c" + "math.h": "c", + "m418dll.h": "c", + "ext_math.h": "c", + "mtx.h": "c", + "types.h": "c", + "corecrt_math.h": "c", + "corecrt.h": "c", + "vcruntime.h": "c", + "hsfmotion.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { diff --git a/config/GMPE01_00/rels/m418Dll/symbols.txt b/config/GMPE01_00/rels/m418Dll/symbols.txt index f9b964c5..ad0f568b 100644 --- a/config/GMPE01_00/rels/m418Dll/symbols.txt +++ b/config/GMPE01_00/rels/m418Dll/symbols.txt @@ -128,134 +128,134 @@ fn_1_D714 = .text:0x0000D714; // type:function size:0x4FC fn_1_DC10 = .text:0x0000DC10; // type:function size:0x6C8 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0xC data:4byte -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0xC data:4byte -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0xC data:4byte -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0xC data:4byte -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0xC data:4byte -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:4byte -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0xC data:4byte -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x10 data:4byte -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 data:4byte -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x10 data:4byte -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x10 data:4byte -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC data:4byte -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0xC data:4byte -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0xC data:4byte -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0xC data:4byte -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0xC data:4byte -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0xC data:4byte -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0xC data:4byte -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0xC data:4byte -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0xC data:4byte -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0xC data:4byte -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0xC data:4byte -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0xC data:4byte -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0xC data:4byte -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 data:4byte lbl_1_data_8 = .data:0x00000008; // type:object size:0x4 data:4byte lbl_1_data_C = .data:0x0000000C; // type:object size:0x12 scope:local data:string diff --git a/config/GMPE01_00/rels/m438Dll/symbols.txt b/config/GMPE01_00/rels/m438Dll/symbols.txt index e1febc85..94448680 100644 --- a/config/GMPE01_00/rels/m438Dll/symbols.txt +++ b/config/GMPE01_00/rels/m438Dll/symbols.txt @@ -434,7 +434,7 @@ lbl_1_data_8C8 = .data:0x000008C8; // type:object size:0x9 data:string lbl_1_data_8D1 = .data:0x000008D1; // type:object size:0x7 data:string lbl_1_data_8D8 = .data:0x000008D8; // type:object size:0x60 lbl_1_data_938 = .data:0x00000938; // type:object size:0xB data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x288 diff --git a/configure.py b/configure.py index 83619991..ee154540 100644 --- a/configure.py +++ b/configure.py @@ -1001,7 +1001,7 @@ config.libs = [ "m418Dll", # Hide and Go BOOM! objects={ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m418Dll/main.c"), - Object(NonMatching, "REL/m418Dll/sequence.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m418Dll/sequence.c"), }, ), Rel( diff --git a/include/REL/m418Dll.h b/include/REL/m418Dll.h index cd283bde..f21c4256 100644 --- a/include/REL/m418Dll.h +++ b/include/REL/m418Dll.h @@ -3,6 +3,10 @@ #include "dolphin.h" +#include "ext_math.h" +#include "game/hsfmotion.h" +#include "game/object.h" + typedef void (*M418DllFunc)(void); typedef s32 (*M418DllRetFunc)(void); typedef void (*M418DllInFunc)(s32); @@ -11,33 +15,36 @@ typedef s32 (*M418DllInRetFunc)(s32); typedef struct M418DllUnkStruct { M418DllFunc unk0; Vec center; - char unk10[0xC]; + Vec unk10; // sequence center Vec rot; - char unk28[0xC]; + Vec unk28; // sequence rot f32 zoom; - char unk38[0x4]; + f32 unk38; // sequence zoom f32 unk3C[3]; f32 unk48; } M418DllUnkStruct; // sizeof 0x4C -typedef struct M418DllUnkStruct7 { - char unk[0x10]; - M418DllFunc unk10; - M418DllRetFunc unk14; -} M418DllUnkStruct7; // sizeof 0x18 - typedef struct M418DllUnkStruct8 { M418DllInFunc unk0; M418DllInRetFunc unk4; s32 unk8; } M418DllUnkStruct8; // sizeof 0x24 +typedef struct M418DllUnkStruct7 { + s32 unk0; + M418DllUnkStruct8* unk4; + s32 unk8; + s32 unkC; + M418DllFunc unk10; + M418DllRetFunc unk14; +} M418DllUnkStruct7; // sizeof 0x18 + f32 fn_1_A920(f32, f32, f32); f32 fn_1_A940(f32, f32, f32, f32); f32 fn_1_AA30(f32, f32, f32, f32); void fn_1_ABC4(omObjData*, s32, s32, s32, s32); void fn_1_AD14(omObjData*, s32, s32, s32, s32); -void fn_1_AEDC(M418DllUnkStruct7*, M418DllUnkStruct8**); +void fn_1_AEDC(M418DllUnkStruct7*, M418DllUnkStruct8*); s32 fn_1_AF38(M418DllUnkStruct7*); s32 fn_1_B034(M418DllUnkStruct7*, s32); s32 fn_1_B0C8(M418DllUnkStruct7*, s32); diff --git a/src/REL/m418Dll/main.c b/src/REL/m418Dll/main.c index 4618d902..c2794f39 100644 --- a/src/REL/m418Dll/main.c +++ b/src/REL/m418Dll/main.c @@ -2,9 +2,7 @@ #include "ext_math.h" #include "game/chrman.h" #include "game/hsfman.h" -#include "game/hsfmotion.h" #include "game/minigame_seq.h" -#include "game/object.h" #include "game/objsub.h" #include "game/pad.h" #include "game/wipe.h" @@ -1377,7 +1375,7 @@ M418DllUnkStruct8 lbl_1_data_294[3] = { }; void fn_1_5D28(void) { - fn_1_AEDC(&lbl_1_bss_50, (M418DllUnkStruct8**)&lbl_1_data_294); + fn_1_AEDC(&lbl_1_bss_50, &lbl_1_data_294[0]); } s32 fn_1_5D58(void) { @@ -2155,7 +2153,7 @@ M418DllUnkStruct8 lbl_1_data_348[11] = { }; void fn_1_8480(void) { - fn_1_AEDC(&lbl_1_bss_38, (M418DllUnkStruct8**)&lbl_1_data_348); + fn_1_AEDC(&lbl_1_bss_38, &lbl_1_data_348[0]); } s32 fn_1_84B0(void) { @@ -2527,7 +2525,7 @@ M418DllUnkStruct8 lbl_1_data_444[8] = { }; void fn_1_9334(void) { - fn_1_AEDC(&lbl_1_bss_20, (M418DllUnkStruct8**)&lbl_1_data_444); + fn_1_AEDC(&lbl_1_bss_20, &lbl_1_data_444[0]); } s32 fn_1_9364(void) { diff --git a/src/REL/m418Dll/sequence.c b/src/REL/m418Dll/sequence.c index e69de29b..9ccd5985 100644 --- a/src/REL/m418Dll/sequence.c +++ b/src/REL/m418Dll/sequence.c @@ -0,0 +1,252 @@ +#include "REL/m418Dll.h" + +f32 fn_1_A920(f32 arg0, f32 arg1, f32 arg2) { + return (arg1 + (arg0 * (arg2 - 1.0f))) / arg2; +} + +f32 fn_1_A940(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + ((arg2 / arg3) * (arg1 - arg0)); +} + +f32 fn_1_A968(f32 arg8, f32 arg9, f32 argA, f32 argB) { + if (argA >= argB) { + return arg9; + } + return arg8 + (arg9 - arg8) * sind(((90.0f / argB) * argA)); +} + +f32 fn_1_AA30(f32 arg0, f32 arg1, f32 arg2, f32 arg3) { + if (arg2 >= arg3) { + return arg0; + } + return arg0 + (arg1 - arg0) * sind((180.0f / arg3) * arg2); +} + +f32 fn_1_AAEC(f32 arg8, f32 arg9, f32 argA, f32 argB) { + if (argA >= argB) { + return arg9; + } + return (arg8 + (arg9 - arg8) * (1.0 - cosd((90.0f / argB) * argA))); +} + +void fn_1_ABC4(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg4 == 1) { + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000001); + return; + } + if (arg4 == 2) { + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000002); + return; + } + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0); +} + +void fn_1_AD14(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg0->work[3] != arg0->motion[arg2]) { + arg0->work[3] = arg0->motion[arg2]; + if (arg4 == 1) { + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000001); + return; + } + if (arg4 == 2) { + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0x40000002); + return; + } + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, 0); + } +} + +void fn_1_AE8C(M418DllUnkStruct7* arg0) { + arg0->unk8 = 0; + arg0->unkC = arg0->unk4[arg0->unk0].unk8; + arg0->unk10 = (M418DllFunc)arg0->unk4[arg0->unk0].unk0; + arg0->unk14 = (M418DllRetFunc)arg0->unk4[arg0->unk0].unk4; +} + +void fn_1_AEDC(M418DllUnkStruct7* arg0, M418DllUnkStruct8* arg1) { + arg0->unk0 = 0; + arg0->unk4 = arg1; + fn_1_AE8C(arg0); +} + +s32 fn_1_AF38(M418DllUnkStruct7* arg0) { + arg0->unk0++; + fn_1_AE8C(arg0); + if ((arg0->unk10 == NULL) && (arg0->unk14 == NULL)) { + return 1; + } + return 0; +} + +s32 fn_1_AFC0(M418DllUnkStruct7* arg0) { + arg0->unk0--; + if (arg0->unk0 < 0) { + return 1; + } + fn_1_AE8C(arg0); + return 0; +} + +s32 fn_1_B034(M418DllUnkStruct7* arg0, s32 arg1) { + arg0->unk0 = arg1; + if (arg0->unk0 < 0) { + return 1; + } + fn_1_AE8C(arg0); + if ((arg0->unk10 == NULL) && (arg0->unk14 == NULL)) { + return 1; + } + return 0; +} + +s32 fn_1_B0C8(M418DllUnkStruct7* arg0, s32 arg1) { + if (arg1 == 0) { + return arg0->unk8; + } + arg0->unk8 += arg1; + if (arg0->unk8 >= arg0->unkC) { + return 1; + } + return 0; +} + +void fn_1_B104(M418DllUnkStruct* arg0, Vec arg1, Vec arg2) { + f32 temp_f31; + f32 temp_f30; + f32 temp_f29; + f32 temp_f27; + + temp_f31 = arg1.x - arg2.x; + temp_f29 = arg1.y - arg2.y; + temp_f30 = arg1.z - arg2.z; + arg0->unk10.x = arg2.x; + arg0->unk10.y = arg2.y; + arg0->unk10.z = arg2.z; + arg0->unk38 = sqrtf((temp_f30 * temp_f30) + ((temp_f31 * temp_f31) + (temp_f29 * temp_f29))); + temp_f27 = atan2d(temp_f30, temp_f31); + arg0->unk28.x = -atan2d(temp_f29, (temp_f31 * cosd(-temp_f27)) + (temp_f30 * -sind(-temp_f27))); + arg0->unk28.y = -(temp_f27 - 90.0f); + arg0->unk28.z = 0.0f; +} + +void fn_1_B41C(M418DllUnkStruct* arg0) { + arg0->center.x = arg0->unk10.x; + arg0->center.y = arg0->unk10.y; + arg0->center.z = arg0->unk10.z; + arg0->rot.x = arg0->unk28.x; + arg0->rot.y = arg0->unk28.y; + arg0->rot.z = arg0->unk28.z; + arg0->zoom = arg0->unk38; +} + +void fn_1_B458(M418DllUnkStruct* arg0) { + arg0->unk48 = 0.0f; + arg0->unk10.x = arg0->center.x; + arg0->unk10.y = arg0->center.y; + arg0->unk10.z = arg0->center.z; + arg0->unk28.x = arg0->rot.x; + arg0->unk28.y = arg0->rot.y; + arg0->unk28.z = arg0->rot.z; + arg0->unk38 = arg0->zoom; +} + +void fn_1_B4A4(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg8) { + arg0->center.x = fn_1_A920(arg0->center.x, arg1->unk10.x, arg8); + arg0->center.y = fn_1_A920(arg0->center.y, arg1->unk10.y, arg8); + arg0->center.z = fn_1_A920(arg0->center.z, arg1->unk10.z, arg8); + arg0->rot.x = fn_1_A920(arg0->rot.x, arg1->unk28.x, arg8); + arg0->rot.y = fn_1_A920(arg0->rot.y, arg1->unk28.y, arg8); + arg0->rot.z = fn_1_A920(arg0->rot.z, arg1->unk28.z, arg8); + arg0->zoom = fn_1_A920(arg0->zoom, arg1->unk38, arg8); +} + +void fn_1_B710(M418DllUnkStruct* arg0, f32 arg1) { + arg0->center.x = fn_1_A920(arg0->center.x, arg0->unk10.x, arg1); + arg0->center.y = fn_1_A920(arg0->center.y, arg0->unk10.y, arg1); + arg0->center.z = fn_1_A920(arg0->center.z, arg0->unk10.z, arg1); + arg0->rot.x = fn_1_A920(arg0->rot.x, arg0->unk28.x, arg1); + arg0->rot.y = fn_1_A920(arg0->rot.y, arg0->unk28.y, arg1); + arg0->rot.z = fn_1_A920(arg0->rot.z, arg0->unk28.z, arg1); + arg0->zoom = fn_1_A920(arg0->zoom, arg0->unk38, arg1); +} + +void fn_1_B97C(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg8, f32 arg9) { + arg1->unk10.x = fn_1_A940(arg0->unk10.x, arg1->center.x, arg8, arg9); + arg1->unk10.y = fn_1_A940(arg0->unk10.y, arg1->center.y, arg8, arg9); + arg1->unk10.z = fn_1_A940(arg0->unk10.z, arg1->center.z, arg8, arg9); + arg1->unk28.x = fn_1_A940(arg0->unk28.x, arg1->rot.x, arg8, arg9); + arg1->unk28.y = fn_1_A940(arg0->unk28.y, arg1->rot.y, arg8, arg9); + arg1->unk28.z = fn_1_A940(arg0->unk28.z, arg1->rot.z, arg8, arg9); + arg1->unk38 = fn_1_A940(arg0->unk38, arg1->zoom, arg8, arg9); +} + +void fn_1_BBF8(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg8, f32 arg9) { + fn_1_B97C(arg0, arg1, arg8, arg9); + arg0->center.x = arg1->unk10.x; + arg0->center.y = arg1->unk10.y; + arg0->center.z = arg1->unk10.z; + arg0->rot.x = arg1->unk28.x; + arg0->rot.y = arg1->unk28.y; + arg0->rot.z = arg1->unk28.z; + arg0->zoom = arg1->unk38; +} + +void fn_1_BEAC(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg2, f32 arg3, f32 arg4) { + fn_1_B97C(arg0, arg1, arg2, arg3); + fn_1_B4A4(arg0, arg1, arg4); +} + +void fn_1_C318(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg8, f32 arg9) { + arg1->unk10.x = fn_1_A968(arg0->unk10.x, arg1->center.x, arg8, arg9); + arg1->unk10.y = fn_1_A968(arg0->unk10.y, arg1->center.y, arg8, arg9); + arg1->unk10.z = fn_1_A968(arg0->unk10.z, arg1->center.z, arg8, arg9); + arg1->unk28.x = fn_1_A968(arg0->unk28.x, arg1->rot.x, arg8, arg9); + arg1->unk28.y = fn_1_A968(arg0->unk28.y, arg1->rot.y, arg8, arg9); + arg1->unk28.z = fn_1_A968(arg0->unk28.z, arg1->rot.z, arg8, arg9); + arg1->unk38 = fn_1_A968(arg0->unk38, arg1->zoom, arg8, arg9); +} + +void fn_1_C76C(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg8, f32 arg9) { + fn_1_C318(arg0, arg1, arg8, arg9); + arg0->center.x = arg1->unk10.x; + arg0->center.y = arg1->unk10.y; + arg0->center.z = arg1->unk10.z; + arg0->rot.x = arg1->unk28.x; + arg0->rot.y = arg1->unk28.y; + arg0->rot.z = arg1->unk28.z; + arg0->zoom = arg1->unk38; +} + +void fn_1_CBF8(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg2, f32 arg3, f32 arg4) { + fn_1_C318(arg0, arg1, arg2, arg3); + fn_1_B4A4(arg0, arg1, arg4); +} + +void fn_1_D250(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg8, f32 arg9) { + arg1->unk10.x = fn_1_AAEC(arg0->unk10.x, arg1->center.x, arg8, arg9); + arg1->unk10.y = fn_1_AAEC(arg0->unk10.y, arg1->center.y, arg8, arg9); + arg1->unk10.z = fn_1_AAEC(arg0->unk10.z, arg1->center.z, arg8, arg9); + arg1->unk28.x = fn_1_AAEC(arg0->unk28.x, arg1->rot.x, arg8, arg9); + arg1->unk28.y = fn_1_AAEC(arg0->unk28.y, arg1->rot.y, arg8, arg9); + arg1->unk28.z = fn_1_AAEC(arg0->unk28.z, arg1->rot.z, arg8, arg9); + arg1->unk38 = fn_1_AAEC(arg0->unk38, arg1->zoom, arg8, arg9); +} + +void fn_1_D714(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg8, f32 arg9) { + fn_1_D250(arg0, arg1, arg8, arg9); + arg0->center.x = arg1->unk10.x; + arg0->center.y = arg1->unk10.y; + arg0->center.z = arg1->unk10.z; + arg0->rot.x = arg1->unk28.x; + arg0->rot.y = arg1->unk28.y; + arg0->rot.z = arg1->unk28.z; + arg0->zoom = arg1->unk38; +} + +void fn_1_DC10(M418DllUnkStruct* arg0, M418DllUnkStruct* arg1, f32 arg2, f32 arg3, f32 arg4) { + fn_1_D250(arg0, arg1, arg2, arg3); + fn_1_B4A4(arg0, arg1, arg4); +} From 40b1a42e081fec4bed2bfbf363d5e27fe4698210 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 30 Dec 2024 02:53:32 +0100 Subject: [PATCH 216/311] Import THPAudio.c from MKDD --- configure.py | 2 +- src/dolphin/thp/THPAudio.c | 218 ++++++++++++++++++++----------------- 2 files changed, 118 insertions(+), 102 deletions(-) diff --git a/configure.py b/configure.py index ee154540..1dd001d7 100644 --- a/configure.py +++ b/configure.py @@ -640,7 +640,7 @@ config.libs = [ "host": False, "objects": [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/thp/THPDec.c"), - Object(NonMatching, "dolphin/thp/THPAudio.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/thp/THPAudio.c"), ], }, { diff --git a/src/dolphin/thp/THPAudio.c b/src/dolphin/thp/THPAudio.c index 11a29fe4..e782abcb 100644 --- a/src/dolphin/thp/THPAudio.c +++ b/src/dolphin/thp/THPAudio.c @@ -2,131 +2,147 @@ u32 THPAudioDecode(s16 *audioBuffer, u8 *audioFrame, s32 flag) { - // THPAudioRecordHeader *header; - // THPAudioDecodeInfo decInfo; - // u8 *left, *right; - // s16 *decLeftPtr, *decRightPtr; - // s16 yn1, yn2; - // s32 i; - // s32 step; - // s32 sample; - // s64 yn; + THPAudioRecordHeader *header; + THPAudioDecodeInfo decInfo; + u8 *left, *right; + s16 *decLeftPtr, *decRightPtr; + s16 yn1, yn2; + s32 i; + s32 step; + s32 sample; + s64 yn; - // if (audioBuffer == NULL || audioFrame == NULL) { - // return 0; - // } + if (audioBuffer == NULL || audioFrame == NULL) { + return 0; + } - // header = (THPAudioRecordHeader *)audioFrame; - // left = audioFrame + sizeof(THPAudioRecordHeader); - // right = left + header->offsetNextChannel; + header = (THPAudioRecordHeader *)audioFrame; + left = audioFrame + sizeof(THPAudioRecordHeader); + right = left + header->offsetNextChannel; - // if (flag == 1) { - // decRightPtr = audioBuffer; - // decLeftPtr = audioBuffer + header->sampleSize; - // step = 1; - // } - // else { - // decRightPtr = audioBuffer; - // decLeftPtr = audioBuffer + 1; - // step = 2; - // } + if (flag == 1) { + decRightPtr = audioBuffer; + decLeftPtr = audioBuffer + header->sampleSize; + step = 1; + } + else { + decRightPtr = audioBuffer; + decLeftPtr = audioBuffer + 1; + step = 2; + } - // if (header->offsetNextChannel == 0) { - // __THPAudioInitialize(&decInfo, left); + if (header->offsetNextChannel == 0) { + __THPAudioInitialize(&decInfo, left); - // yn1 = header->lYn1; - // yn2 = header->lYn2; + yn1 = header->lYn1; + yn2 = header->lYn2; - // for (i = 0; i < header->sampleSize; i++) { - // sample = __THPAudioGetNewSample(&decInfo); - // yn = header->lCoef[decInfo.predictor][1] * yn2; - // yn += header->lCoef[decInfo.predictor][0] * yn1; - // yn += (sample << decInfo.scale) << 11; - // yn <<= 5; + for (i = 0; i < header->sampleSize; i++) { + sample = __THPAudioGetNewSample(&decInfo); + yn = header->lCoef[decInfo.predictor][1] * yn2; + yn += header->lCoef[decInfo.predictor][0] * yn1; + yn += (sample << decInfo.scale) << 11; + yn <<= 5; - // if (sample > 0x8000) { - // yn += 0x10000; - // } - // else if ((sample == 0x8000) && ((yn & 0x10000) != 0)) { - // yn += 0x10000; - // } + if ((u16)(yn & 0xffff) > 0x8000) { + yn += 0x10000; + } + else if ((u16)(yn & 0xffff) == 0x8000) { + if ((yn & 0x10000)) + yn += 0x10000; + } - // yn += 0x8000; + if (yn > 2147483647LL) { + yn = 2147483647LL; + } - // if (yn > 2147483647LL) { - // yn = 2147483647LL; - // } + if (yn < -2147483648LL) { + yn = -2147483648LL; + } - // if (yn < -2147483648LL) { - // yn = -2147483648LL; - // } + *decLeftPtr = (s16)(yn >> 16); + decLeftPtr += step; + *decRightPtr = (s16)(yn >> 16); + decRightPtr += step; + yn2 = yn1; + yn1 = (s16)(yn >> 16); + } + } + else { + __THPAudioInitialize(&decInfo, left); - // *decLeftPtr = (s16)(yn >> 16); - // decLeftPtr += step; - // *decRightPtr = (s16)(yn >> 16); - // decRightPtr += step; - // yn2 = yn1; - // yn1 = (s16)(yn >> 16); - // } - // } - // else { - // __THPAudioInitialize(&decInfo, left); + yn1 = header->lYn1; + yn2 = header->lYn2; - // yn1 = header->lYn1; - // yn2 = header->lYn2; + for (i = 0; i < header->sampleSize; i++) { + sample = __THPAudioGetNewSample(&decInfo); + yn = header->lCoef[decInfo.predictor][1] * yn2; + yn += header->lCoef[decInfo.predictor][0] * yn1; + yn += (sample << decInfo.scale) << 11; + yn <<= 5; - // for (i = 0; i < header->sampleSize; i++) { - // sample = __THPAudioGetNewSample(&decInfo); - // yn = header->lCoef[decInfo.predictor][1] * yn2; - // yn += header->lCoef[decInfo.predictor][0] * yn1; - // yn += (sample << decInfo.scale) << 11; - // yn <<= 5; - // yn += 0x8000; + if ((u16)(yn & 0xffff) > 0x8000) { + yn += 0x10000; + } + else { + if ((u16)(yn & 0xffff) == 0x8000) { + if ((yn & 0x10000)) + yn += 0x10000; + } + } - // if (yn > 2147483647LL) { - // yn = 2147483647LL; - // } + if (yn > 2147483647LL) { + yn = 2147483647LL; + } - // if (yn < -2147483648LL) { - // yn = -2147483648LL; - // } + if (yn < -2147483648LL) { + yn = -2147483648LL; + } - // *decLeftPtr = (s16)(yn >> 16); - // decLeftPtr += step; - // yn2 = yn1; - // yn1 = (s16)(yn >> 16); - // } + *decLeftPtr = (s16)(yn >> 16); + decLeftPtr += step; + yn2 = yn1; + yn1 = (s16)(yn >> 16); + } - // __THPAudioInitialize(&decInfo, right); + __THPAudioInitialize(&decInfo, right); - // yn1 = header->rYn1; - // yn2 = header->rYn2; + yn1 = header->rYn1; + yn2 = header->rYn2; - // for (i = 0; i < header->sampleSize; i++) { - // sample = __THPAudioGetNewSample(&decInfo); - // yn = header->rCoef[decInfo.predictor][1] * yn2; - // yn += header->rCoef[decInfo.predictor][0] * yn1; - // yn += (sample << decInfo.scale) << 11; - // yn <<= 5; + for (i = 0; i < header->sampleSize; i++) { + sample = __THPAudioGetNewSample(&decInfo); + yn = header->rCoef[decInfo.predictor][1] * yn2; + yn += header->rCoef[decInfo.predictor][0] * yn1; + yn += (sample << decInfo.scale) << 11; + yn <<= 5; - // yn += 0x8000; + if ((u16)(yn & 0xffff) > 0x8000) { + yn += 0x10000; + } + else { + if ((u16)(yn & 0xffff) == 0x8000) { + if ((yn & 0x10000)) + yn += 0x10000; + } + } - // if (yn > 2147483647LL) { - // yn = 2147483647LL; - // } + if (yn > 2147483647LL) { + yn = 2147483647LL; + } - // if (yn < -2147483648LL) { - // yn = -2147483648LL; - // } + if (yn < -2147483648LL) { + yn = -2147483648LL; + } - // *decRightPtr = (s16)(yn >> 16); - // decRightPtr += step; - // yn2 = yn1; - // yn1 = (s16)(yn >> 16); - // } - // } + *decRightPtr = (s16)(yn >> 16); + decRightPtr += step; + yn2 = yn1; + yn1 = (s16)(yn >> 16); + } + } - // return header->sampleSize; + return header->sampleSize; } static s32 __THPAudioGetNewSample(THPAudioDecodeInfo *info) From e8a2a533153c8dd900d2b2fba5ad95cc4dde4ee5 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Sun, 29 Dec 2024 21:00:14 -0500 Subject: [PATCH 217/311] start m424 --- include/REL/m424Dll.h | 1 + src/REL/m424Dll/main.c | 61 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 include/REL/m424Dll.h create mode 100644 src/REL/m424Dll/main.c diff --git a/include/REL/m424Dll.h b/include/REL/m424Dll.h new file mode 100644 index 00000000..2739a911 --- /dev/null +++ b/include/REL/m424Dll.h @@ -0,0 +1 @@ +#include "dolphin.h" diff --git a/src/REL/m424Dll/main.c b/src/REL/m424Dll/main.c new file mode 100644 index 00000000..3402c8e2 --- /dev/null +++ b/src/REL/m424Dll/main.c @@ -0,0 +1,61 @@ +#include "REL/m424Dll.h" + +#include "game/hsfman.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/audio.h" + +// BSS +Process* lbl_1_bss_4C; +s32 lbl_1_bss_48; +s32 lbl_1_bss_44; +s32 lbl_1_bss_40; +s32 lbl_1_bss_3C; +s32 lbl_1_bss_34; +s32 lbl_1_bss_2C; +s16 lbl_1_bss_24[4]; +s16 lbl_1_bss_1C[4]; +omObjData* lbl_1_bss_18; + +// data +Vec lbl_1_data_54 = { 1000.0f, 2000.0f, 1000.0f }; +Vec lbl_1_data_60 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_6C = { 0.0f, 0.0f, -450.0f }; + +// PROTO +void fn_1_264(omObjData* object); +void fn_1_FF0(void); + +/// FUNCTIONS /// + +void ObjectSetup(void) { + s32 var_r31; + Process* var_r30; + CameraData* var_r29; + + OSReport("******* M424ObjectSetup *********"); + var_r30 = omInitObjMan(0x32, 0x2000); + lbl_1_bss_4C = var_r30; + omGameSysInit(var_r30); + fn_1_FF0(); + var_r29 = &Hu3DCamera[0]; + var_r29->fov = -1.0f; + Hu3DLightAllKill(); + Hu3DLighInit(); + HuAudSndGrpSet(0x31); + lbl_1_bss_18 = omAddObjEx(var_r30, 0xFF, 2, 0, -1, fn_1_264); + lbl_1_bss_48 = lbl_1_bss_44 = -1; + lbl_1_bss_40 = 0; + lbl_1_bss_3C = 0; + lbl_1_bss_34 = 0; + lbl_1_bss_2C = -1; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_24[var_r31] = -1; + lbl_1_bss_1C[var_r31] = -1; + } + Hu3DShadowCreate(30.0f, 1000.0f, 250000.0f); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowPosSet(&lbl_1_data_54, &lbl_1_data_60, &lbl_1_data_6C); + Hu3DBGColorSet(0xFFU, 0xFFU, 0xFFU); +} From 129e419efefca984c2a763b597c618e6ae86f9df Mon Sep 17 00:00:00 2001 From: mrshigure Date: Mon, 30 Dec 2024 12:58:33 -0800 Subject: [PATCH 218/311] US: matched m423Dll --- config/GMPE01_00/rels/m423Dll/symbols.txt | 390 +- configure.py | 2 +- include/game/gamework_data.h | 99 +- src/REL/m409Dll/cursor.c | 12 +- src/REL/m409Dll/main.c | 8 +- src/REL/m415Dll/map.c | 14 +- src/REL/m423Dll/main.c | 5648 +++++++++++++++++++++ src/REL/m426Dll/main.c | 2 +- src/REL/m440Dll/main.c | 12 +- src/REL/m448Dll/main.c | 4 +- src/REL/modeltestDll/main.c | 8 +- 11 files changed, 5926 insertions(+), 273 deletions(-) create mode 100755 src/REL/m423Dll/main.c diff --git a/config/GMPE01_00/rels/m423Dll/symbols.txt b/config/GMPE01_00/rels/m423Dll/symbols.txt index bd1d1367..ddeb5a66 100644 --- a/config/GMPE01_00/rels/m423Dll/symbols.txt +++ b/config/GMPE01_00/rels/m423Dll/symbols.txt @@ -103,234 +103,234 @@ fn_1_1367C = .text:0x0001367C; // type:function size:0x148 fn_1_137C4 = .text:0x000137C4; // type:function size:0x78C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x1 data:byte -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 scope:local data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x38 data:float -lbl_1_data_38 = .data:0x00000038; // type:object size:0x118 +lbl_1_data_38 = .data:0x00000038; // type:object size:0x118 data:float lbl_1_data_150 = .data:0x00000150; // type:object size:0x30 data:float lbl_1_data_180 = .data:0x00000180; // type:object size:0x30 data:float -lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x24 -lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0xC -lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0xC -lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xC -lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x24 -lbl_1_data_21C = .data:0x0000021C; // type:object size:0xC -lbl_1_data_228 = .data:0x00000228; // type:object size:0xC +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x24 data:float +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0xC data:float +lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0xC data:float +lbl_1_data_1EC = .data:0x000001EC; // type:object size:0xC data:float +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x23 scope:local data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0xC data:float +lbl_1_data_228 = .data:0x00000228; // type:object size:0xC data:float lbl_1_data_234 = .data:0x00000234; // type:object size:0x4 lbl_1_data_238 = .data:0x00000238; // type:object size:0x18 lbl_1_data_250 = .data:0x00000250; // type:object size:0x18 jumptable_1_data_268 = .data:0x00000268; // type:object size:0x30 scope:local -lbl_1_data_298 = .data:0x00000298; // type:object size:0x1 data:byte -lbl_1_data_29C = .data:0x0000029C; // type:object size:0x30 -lbl_1_data_2CC = .data:0x000002CC; // type:object size:0x20 -lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x20 -lbl_1_data_30C = .data:0x0000030C; // type:object size:0x4 -lbl_1_data_310 = .data:0x00000310; // type:object size:0x1 data:byte +lbl_1_data_298 = .data:0x00000298; // type:object size:0x4 data:byte +lbl_1_data_29C = .data:0x0000029C; // type:object size:0x30 data:float +lbl_1_data_2CC = .data:0x000002CC; // type:object size:0x20 data:float +lbl_1_data_2EC = .data:0x000002EC; // type:object size:0x20 data:float +lbl_1_data_30C = .data:0x0000030C; // type:object size:0x4 data:byte +lbl_1_data_310 = .data:0x00000310; // type:object size:0x4 data:byte lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 data:4byte -lbl_1_data_334 = .data:0x00000334; // type:object size:0x30 -lbl_1_data_364 = .data:0x00000364; // type:object size:0x24 +lbl_1_data_334 = .data:0x00000334; // type:object size:0x30 data:float +lbl_1_data_364 = .data:0x00000364; // type:object size:0x24 data:float lbl_1_data_388 = .data:0x00000388; // type:object size:0x4 data:byte -lbl_1_data_38C = .data:0x0000038C; // type:object size:0x1F data:string +lbl_1_data_38C = .data:0x0000038C; // type:object size:0x1F scope:local data:string lbl_1_data_3AB = .data:0x000003AB; // type:object size:0x4 data:byte lbl_1_data_3AF = .data:0x000003AF; // type:object size:0x4 data:byte lbl_1_data_3B3 = .data:0x000003B3; // type:object size:0x4 data:byte -lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0xF0 +lbl_1_data_3B8 = .data:0x000003B8; // type:object size:0xF0 data:float lbl_1_data_4A8 = .data:0x000004A8; // type:object size:0x54 lbl_1_data_4FC = .data:0x000004FC; // type:object size:0xC lbl_1_data_508 = .data:0x00000508; // type:object size:0x18 -lbl_1_data_520 = .data:0x00000520; // type:object size:0x6 +lbl_1_data_520 = .data:0x00000520; // type:object size:0x6 data:2byte lbl_1_data_526 = .data:0x00000526; // type:object size:0x6 lbl_1_data_52C = .data:0x0000052C; // type:object size:0x8 lbl_1_data_534 = .data:0x00000534; // type:object size:0x40 lbl_1_data_574 = .data:0x00000574; // type:object size:0xC lbl_1_data_580 = .data:0x00000580; // type:object size:0x58 lbl_1_data_5D8 = .data:0x000005D8; // type:object size:0x10 -lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0xC data:4byte -lbl_1_data_5F4 = .data:0x000005F4; // type:object size:0x1 data:byte -lbl_1_data_5F8 = .data:0x000005F8; // type:object size:0x1 data:byte +lbl_1_data_5E8 = .data:0x000005E8; // type:object size:0xC data:float +lbl_1_data_5F4 = .data:0x000005F4; // type:object size:0x4 data:byte +lbl_1_data_5F8 = .data:0x000005F8; // type:object size:0x4 data:byte jumptable_1_data_5FC = .data:0x000005FC; // type:object size:0x34 scope:local -lbl_1_data_630 = .data:0x00000630; // type:object size:0x1 data:byte +lbl_1_data_630 = .data:0x00000630; // type:object size:0x4 data:byte jumptable_1_data_634 = .data:0x00000634; // type:object size:0x34 scope:local lbl_1_data_668 = .data:0x00000668; // type:object size:0x10 -lbl_1_data_678 = .data:0x00000678; // type:object size:0x10 +lbl_1_data_678 = .data:0x00000678; // type:object size:0x10 data:float lbl_1_data_688 = .data:0x00000688; // type:object size:0x20 lbl_1_data_6A8 = .data:0x000006A8; // type:object size:0x20 data:4byte lbl_1_data_6C8 = .data:0x000006C8; // type:object size:0x10 -lbl_1_data_6D8 = .data:0x000006D8; // type:object size:0x20 +lbl_1_data_6D8 = .data:0x000006D8; // type:object size:0x20 data:float lbl_1_data_6F8 = .data:0x000006F8; // type:object size:0x20 lbl_1_data_718 = .data:0x00000718; // type:object size:0x20 lbl_1_data_738 = .data:0x00000738; // type:object size:0x20 -lbl_1_data_758 = .data:0x00000758; // type:object size:0x1 data:byte -lbl_1_data_75C = .data:0x0000075C; // type:object size:0x48 +lbl_1_data_758 = .data:0x00000758; // type:object size:0x4 data:byte +lbl_1_data_75C = .data:0x0000075C; // type:object size:0x48 data:2byte jumptable_1_data_7A4 = .data:0x000007A4; // type:object size:0x20 scope:local lbl_1_data_7C4 = .data:0x000007C4; // type:object size:0x18 jumptable_1_data_7DC = .data:0x000007DC; // type:object size:0x20 scope:local -lbl_1_data_7FC = .data:0x000007FC; // type:object size:0x20 +lbl_1_data_7FC = .data:0x000007FC; // type:object size:0x20 data:byte lbl_1_data_81C = .data:0x0000081C; // type:object size:0x20 -lbl_1_data_83C = .data:0x0000083C; // type:object size:0x8 -lbl_1_data_844 = .data:0x00000844; // type:object size:0x60 -lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x20 -lbl_1_data_8C4 = .data:0x000008C4; // type:object size:0x30 -lbl_1_data_8F4 = .data:0x000008F4; // type:object size:0x20 +lbl_1_data_83C = .data:0x0000083C; // type:object size:0x8 data:2byte +lbl_1_data_844 = .data:0x00000844; // type:object size:0x60 data:2byte +lbl_1_data_8A4 = .data:0x000008A4; // type:object size:0x20 data:float +lbl_1_data_8C4 = .data:0x000008C4; // type:object size:0x30 data:float +lbl_1_data_8F4 = .data:0x000008F4; // type:object size:0x20 data:float lbl_1_data_914 = .data:0x00000914; // type:object size:0x6 data:byte lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x3C data:4byte @@ -359,7 +359,7 @@ lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x10 data:4byte lbl_1_bss_FC = .bss:0x000000FC; // type:object size:0x4 data:4byte lbl_1_bss_100 = .bss:0x00000100; // type:object size:0x4 data:4byte lbl_1_bss_104 = .bss:0x00000104; // type:object size:0x4 data:4byte -lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x8 data:4byte +lbl_1_bss_108 = .bss:0x00000108; // type:object size:0x4 data:4byte lbl_1_bss_110 = .bss:0x00000110; // type:object size:0x4 data:4byte lbl_1_bss_114 = .bss:0x00000114; // type:object size:0x4 data:4byte lbl_1_bss_118 = .bss:0x00000118; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 1dd001d7..08fc269a 100644 --- a/configure.py +++ b/configure.py @@ -1037,7 +1037,7 @@ config.libs = [ Rel( "m423Dll", # GOOOOOOOAL!! objects={ - Object(NonMatching, "REL/m423Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m423Dll/main.c"), }, ), Rel( diff --git a/include/game/gamework_data.h b/include/game/gamework_data.h index 53500e51..08b3e075 100644 --- a/include/game/gamework_data.h +++ b/include/game/gamework_data.h @@ -110,11 +110,11 @@ typedef struct player_state { } PlayerState; //size of 0x30 typedef struct pause_backup_config { - u8 explain_mg : 1; - u8 show_com_mg : 1; - u8 mg_list : 2; - u8 mess_speed : 2; - u8 save_mode : 2; + u8 explain_mg : 1; + u8 show_com_mg : 1; + u8 mg_list : 2; + u8 mess_speed : 2; + u8 save_mode : 2; } PauseBackupConfig; typedef struct game_stat { @@ -152,6 +152,11 @@ extern PlayerState GWPlayer[4]; extern SystemState GWSystem; extern GameStat GWGameStat; +static inline s32 GWPlayerCfgGroupGet(s32 player) +{ + return GWPlayerCfg[player].group; +} + static inline s32 GWTeamGet(void) { return GWSystem.team; @@ -159,12 +164,12 @@ static inline s32 GWTeamGet(void) static inline s32 GWMGTypeGet(void) { - return GWSystem.mg_type; + return GWSystem.mg_type; } static inline void GWMGTypeSet(s32 type) { - GWSystem.mg_type = type; + GWSystem.mg_type = type; } static inline s32 GWPartyGet(void) @@ -190,9 +195,9 @@ static inline s32 GWRumbleGet(void) static inline void GWRumbleSet(s32 value) { GWGameStat.rumble = value; - if(value == 0) { - HuPadRumbleAllStop(); - } + if(value == 0) { + HuPadRumbleAllStop(); + } } static inline s32 GWBonusStarGet(void) @@ -245,39 +250,39 @@ static inline s32 GWMessSpeedGet(void) static inline void GWMessSpeedSet(s32 value) { #if VERSION_NTSC - GWSystem.mess_speed = value; - switch(value) { - case 0: - GWSystem.mess_delay = 16; - break; - - case 2: - GWSystem.mess_delay = 48; - break; - - default: - GWSystem.mess_delay = 32; - break; - } + GWSystem.mess_speed = value; + switch(value) { + case 0: + GWSystem.mess_delay = 16; + break; + + case 2: + GWSystem.mess_delay = 48; + break; + + default: + GWSystem.mess_delay = 32; + break; + } #else GWSystem.mess_speed = value; - switch(value) { - case 0: - GWSystem.mess_delay = 32; - break; - + switch(value) { + case 0: + GWSystem.mess_delay = 32; + break; + case 2: - GWSystem.mess_delay = 64; - break; + GWSystem.mess_delay = 64; + break; - case 1: - GWSystem.mess_delay = 48; - break; - - default: - GWSystem.mess_delay = 120; - break; - } + case 1: + GWSystem.mess_delay = 48; + break; + + default: + GWSystem.mess_delay = 120; + break; + } #endif } @@ -289,7 +294,7 @@ static inline void GWSaveModeSet(s32 value) static inline s32 GWSaveModeGet(void) { if (GWSystem.save_mode == 3) { - GWSaveModeSet(1); + GWSaveModeSet(1); } return GWSystem.save_mode; } @@ -326,29 +331,29 @@ static inline void GWLuckyValueSet(s32 value) static inline s16 GWPlayerCoinBattleGet(s32 player) { - return GWPlayer[player].coins_battle; + return GWPlayer[player].coins_battle; } static inline s16 GWPlayerCoinCollectGet(s32 player) { - return GWPlayer[player].coin_collect; + return GWPlayer[player].coin_collect; } static inline void GWPlayerCoinCollectSet(s32 player, s16 value) { - GWPlayer[player].coin_collect = value; + GWPlayer[player].coin_collect = value; } static inline s16 GWPlayerCoinWinGet(s32 player) { - return GWPlayer[player].coin_win; + return GWPlayer[player].coin_win; } static inline void GWPlayerCoinWinSet(s32 player, s16 value) { - if (_CheckFlag(FLAG_ID_MAKE(1, 12)) == 0) { - GWPlayer[player].coin_win = value; - } + if (_CheckFlag(FLAG_ID_MAKE(1, 12)) == 0) { + GWPlayer[player].coin_win = value; + } } #define GWPlayerCoinWinAdd(player, value) GWPlayerCoinWinSet((player), GWPlayerCoinWinGet((player))+(value)) diff --git a/src/REL/m409Dll/cursor.c b/src/REL/m409Dll/cursor.c index 021bc823..c007391c 100644 --- a/src/REL/m409Dll/cursor.c +++ b/src/REL/m409Dll/cursor.c @@ -206,19 +206,19 @@ void fn_1_C164(unkStruct8* arg0) { } GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, var_r31->unk40, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, var_r31->unk40, 12); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetArray(GX_VA_CLR0, var_r31->unk44, 4); for (var_r26 = 0; var_r26 < var_r31->unk32; var_r26++) { GXSetVtxDesc(var_r26 + GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, var_r26 + GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, var_r26 + GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetArray(var_r26 + GX_VA_TEX0, var_r31->unk54[var_r26].unk4, 8); } GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_TEX_S, GX_RGBA6, 0); - GXSetArray(GX_VA_NRM, var_r31->unk48, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, var_r31->unk48, 12); GXCallDisplayList(var_r31->unk3C, var_r31->unk38); } } diff --git a/src/REL/m409Dll/main.c b/src/REL/m409Dll/main.c index 5071127d..3e51e855 100644 --- a/src/REL/m409Dll/main.c +++ b/src/REL/m409Dll/main.c @@ -1376,13 +1376,13 @@ void fn_1_602C(ModelData *arg0, f32 (*arg1)[4]) } GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, temp_r30->unk1C, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r30->unk1C, 12); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetArray(GX_VA_CLR0, temp_r30->unk24, 4); GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetArray(GX_VA_TEX0, temp_r30->unk20, 8); fn_1_40A4(arg1, sp128); PSMTXReorder(sp128, spF8); diff --git a/src/REL/m415Dll/map.c b/src/REL/m415Dll/map.c index 45a83c57..31636233 100644 --- a/src/REL/m415Dll/map.c +++ b/src/REL/m415Dll/map.c @@ -230,20 +230,20 @@ void fn_1_88B8(unkSubStruct2* arg0) { } GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, var_r31->unk40, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, var_r31->unk40, 12); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetArray(GX_VA_CLR0, var_r31->unk44, 4); for (var_r27 = 0; var_r27 < var_r31->unk33; var_r27++) { GXSetVtxDesc(var_r27 + GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, var_r27 + GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, var_r27 + GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetArray(var_r27 + GX_VA_TEX0, var_r31->unk54[var_r27].unk4, 8); } GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_NRM, var_r31->unk48, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, var_r31->unk48, 12); GXCallDisplayList(var_r31->unk3C, var_r31->unk38); } } @@ -1433,4 +1433,4 @@ void fn_1_C81C(s16 arg0, u8 arg1) { var_r31 = &lbl_1_bss_36C.unk3C[arg0]; var_r31->unk4 = arg1; } -} \ No newline at end of file +} diff --git a/src/REL/m423Dll/main.c b/src/REL/m423Dll/main.c new file mode 100755 index 00000000..c063e916 --- /dev/null +++ b/src/REL/m423Dll/main.c @@ -0,0 +1,5648 @@ +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/wipe.h" + +#include "dolphin.h" +#include "ext_math.h" + +#define frand7() (frand() & 0x7F) + +extern u32 GlobalCounter; + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ void* unk10; +} StructBssD0Data; // Size 0x14 + +typedef struct { + /* 0x00 */ Vec unk00; + /* 0x0C */ Vec unk0C; + /* 0x18 */ float unk18; +} StructData0; // Size 0x1C + +typedef struct { + /* 0x00 */ StructBssD0Data* unk00; + /* 0x04 */ AnimData* unk04; +} StructM423_00; // Size 8 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06; + /* 0x08 */ Vec unk08; +} StructM423_01; // Size 0x14 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ char unk06[2]; + /* 0x08 */ Vec unk08; + /* 0x14 */ Vec* unk14; + /* 0x18 */ Vec* unk18; + /* 0x1C */ GXColor* unk1C; + /* 0x20 */ StructM423_01* unk20; + /* 0x24 */ float unk24[4]; + /* 0x34 */ u32 unk34; + /* 0x38 */ void* unk38; +} StructM423_02; // Size 0x3C + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ StructM423_02* unk04; +} StructM423_03; // Size 8 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ Vec unk04; + /* 0x10 */ char unk10[8]; + /* 0x18 */ float unk18; + /* 0x1C */ char unk1C[0xC]; + /* 0x28 */ float unk28; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ Vec unk38; + /* 0x44 */ GXColor unk44; + /* 0x48 */ s32 unk48; +} StructM423_04; // Size 0x4C + +typedef struct struct_m423_05 { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x00 */ char unk04[0x1C]; + /* 0x20 */ u8 unk20; + /* 0x21 */ u8 unk21; + /* 0x22 */ u8 unk22; + /* 0x23 */ s8 unk23; + /* 0x24 */ char unk24[2]; + /* 0x26 */ s16 unk26; + /* 0x28 */ s32 unk28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ u32 unk30; + /* 0x34 */ s32 unk34; + /* 0x38 */ AnimData* unk38; + /* 0x3C */ StructM423_04* unk3C; + /* 0x40 */ Vec* unk40; + /* 0x44 */ float (*unk44)[2]; + /* 0x48 */ void* unk48; + /* 0x4C */ void* unk4C; + /* 0x50 */ ModelData* unk50; +} StructM423_05; // Size 0x54 + +typedef struct { + /* 0x00 */ float unk00; + /* 0x04 */ float unk04; + /* 0x08 */ char unk08[4]; + /* 0x0C */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ char unk14[4]; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ char unk20[4]; + /* 0x24 */ float unk24; + /* 0x28 */ float unk28; + /* 0x2C */ char unk2C[4]; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ char unk38[4]; +} StructM423_08; // Size 0x3C + +typedef struct { + /* 0x00 */ float unk00; + /* 0x04 */ float unk04; + /* 0x08 */ float unk08; + /* 0x0C */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ float unk20; + /* 0x24 */ float unk24; +} StructM423_09; // Size 0x28 + +typedef struct { + /* 0x000 */ u16 unk00; + /* 0x002 */ u16 unk02; + /* 0x004 */ float unk04; + /* 0x008 */ float unk08; + /* 0x00C */ float unk0C; + /* 0x010 */ float unk10; + /* 0x014 */ Vec unk14; +} StructM423_0A; // Size 0x20 + +typedef struct { + /* 0x000 */ StructM423_0A unk00[16]; + /* 0x200 */ AnimData* unk200; + /* 0x204 */ s32 unk204; + /* 0x208 */ void* unk208; + /* 0x20C */ StructM423_08* unk20C; + /* 0x210 */ StructM423_09* unk210; + /* 0x214 */ GXColor* unk214; + /* 0x218 */ s32 unk218; + /* 0x21C */ s32 unk21C; + /* 0x220 */ void* unk220; +} StructM423_0B; // Size 0x224 + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10[24]; + /* 0x070 */ s32 unk70[24][3]; + /* 0x190 */ s16 unk190[10][2]; +} StructM423_0C; // Size 0x1B8 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06; + /* 0x08 */ s16 unk08; + /* 0x0A */ s16 unk0A; + /* 0x0C */ s16 unk0C; + /* 0x0E */ s16 unk0E; + /* 0x10 */ s16 unk10; + /* 0x12 */ s16 unk12; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ Vec unk20; + /* 0x2C */ Vec unk2C; + /* 0x38 */ Vec unk38; + /* 0x44 */ float unk44; + /* 0x48 */ float unk48; + /* 0x4C */ float unk4C; + /* 0x50 */ Vec unk50; + /* 0x5C */ Vec unk5C; + /* 0x68 */ Vec unk68; + /* 0x74 */ Vec unk74; + /* 0x80 */ Vec unk80; + /* 0x8C */ float unk8C; + /* 0x90 */ float unk90; +} StructBssA8Data; // Size 0x94 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06; + /* 0x08 */ s16 unk08; + /* 0x0A */ s16 unk0A; +} StructBssCCData; // Size 0xC + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06; + /* 0x08 */ s16 unk08; + /* 0x0A */ s16 unk0A; + /* 0x0C */ s16 unk0C; + /* 0x0E */ s16 unk0E; + /* 0x10 */ s16 unk10; + /* 0x12 */ s16 unk12; + /* 0x14 */ s16 unk14; + /* 0x16 */ s16 unk16; + /* 0x18 */ s16 unk18; + /* 0x1A */ char unk1A[2]; + /* 0x1C */ float unk1C[15]; + /* 0x58 */ s32 unk58; + /* 0x5C */ s32 unk5C; + /* 0x60 */ float unk60; + /* 0x64 */ s32 unk64; + /* 0x68 */ s32 unk68; + /* 0x6C */ s32 unk6C; + /* 0x70 */ s32 unk70; + /* 0x74 */ s32 unk74; + /* 0x78 */ float unk78; + /* 0x7C */ float unk7C; + /* 0x80 */ s32 unk80; + /* 0x84 */ s32 unk84; + /* 0x88 */ float unk88; + /* 0x8C */ float unk8C; + /* 0x90 */ s32 unk90; + /* 0x94 */ s32 unk94; + /* 0x98 */ s32 unk98; + /* 0x9C */ s32 unk9C; + /* 0xA0 */ s32 unkA0; + /* 0xA4 */ s32 unkA4; + /* 0xA8 */ float unkA8; + /* 0xAC */ s32 unkAC; + /* 0xB0 */ float unkB0; + /* 0xB4 */ float unkB4; + /* 0xB8 */ float unkB8; + /* 0xBC */ float unkBC; + /* 0xC0 */ float unkC0; + /* 0xC4 */ float unkC4; + /* 0xC8 */ Vec unkC8; + /* 0xD4 */ Vec unkD4; + /* 0xE0 */ float unkE0; + /* 0xE4 */ float unkE4; + /* 0xE8 */ float unkE8; + /* 0xEC */ float unkEC; + /* 0xF0 */ float unkF0; + /* 0xF4 */ float unkF4; +} StructBssBCData; // Size 0xF8 + +typedef struct { + /* 0x000 */ s16 unk00; + /* 0x002 */ s16 unk02; + /* 0x004 */ Vec unk04; + /* 0x010 */ Vec unk10; + /* 0x004 */ char unk1C[0xC]; + /* 0x028 */ float unk28; + /* 0x02C */ float unk2C; + /* 0x030 */ float unk30; + /* 0x034 */ float unk34; + /* 0x038 */ char unk38[4]; + /* 0x03C */ float unk3C; + /* 0x040 */ s32 unk40; + /* 0x044 */ float unk44[12][4]; + /* 0x104 */ Vec unk104[12][3]; +} StructBss94Data; // Size 0x2B4 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ AnimData* unk08; +} StructBssA4Data; // Size 0xC + +void fn_1_318(omObjData* arg0); +void fn_1_3B0(omObjData* arg0); +void fn_1_DFC(omObjData* arg0); +void fn_1_E60(omObjData* arg0); +void fn_1_F10(void); +void fn_1_F60(omObjData* arg0); +void fn_1_11A4(omObjData* arg0); +void fn_1_1238(void); +void fn_1_12A0(ModelData* arg0, Mtx arg1); +s32 fn_1_13A0(StructBssD0Data* arg0); +void fn_1_1444(s32 arg0); +void fn_1_14A0(ModelData* arg0, Mtx arg1); +s32 fn_1_18FC(void); +void fn_1_1B5C(ModelData* arg0, StructM423_02* arg1); +void fn_1_1F5C(ModelData* arg0, StructM423_02* arg1); +void fn_1_2290(ModelData* arg0, StructM423_02* arg1); +void fn_1_2624(ModelData* arg0, StructM423_02* arg1); +void fn_1_29B8(s32 arg0); +void fn_1_29BC(ModelData* arg0, Mtx arg1); +void fn_1_2C08(s32 arg0); +void fn_1_34D8(void); +void fn_1_3528(omObjData* arg0); +void fn_1_3898(omObjData* arg0); +void fn_1_3A64(void); +void fn_1_3A8C(void); +void fn_1_3BFC(void); +void fn_1_3FE0(omObjData* arg0); +void fn_1_4778(omObjData* arg0); +void fn_1_5D18(omObjData* arg0); +void fn_1_77D0(void); +s32 fn_1_781C(void); +s32 fn_1_791C(void); +void fn_1_7AA8(s32 arg0); +void fn_1_82C8(s32 arg0, s32 arg1, s32 arg2); +void fn_1_8338(omObjData* arg0); +void fn_1_8CB4(omObjData* arg0); +void fn_1_95C4(void); +void fn_1_9614(omObjData* arg0); +void fn_1_98A0(omObjData* arg0); +void fn_1_A9AC(void); +s32 fn_1_A9D4(s32 arg0, Vec arg1, Vec arg2); +void fn_1_AC0C(s32 arg0, Vec arg1); +void fn_1_AC80(s32 arg0, Vec arg1); +s32 fn_1_AE64(s32 arg0); +void fn_1_AEE8(s32 arg0); +StructBssA8Data* fn_1_B13C(s32 arg0); +void fn_1_B1A4(void); +s32 fn_1_B304(StructBssA8Data** arg0); +void fn_1_B430(void); +void fn_1_BCD8(Vec* arg0, Vec* arg1, Vec* arg2, float arg3, s32 arg4, s32 arg5); +s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5); +void fn_1_D930(void); +void fn_1_DA38(omObjData* arg0); +void fn_1_DBC8(void); +s32 fn_1_DC24(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, GXColor arg5); +s32 fn_1_DD70(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5, GXColor arg6); +void fn_1_E1BC(void); +void fn_1_E290(omObjData* arg0); +void fn_1_E330(void); +s32 fn_1_E334(Vec arg0, Vec arg1, float arg2); +void fn_1_E460(void); +void fn_1_E4EC(omObjData* arg0); +void fn_1_E60C(void); +s32 fn_1_E678(void); +void fn_1_EF44(ModelData* arg0, Mtx arg1); +s32 fn_1_F574(Vec arg0, float arg1, s32 arg2); +void fn_1_F690(void); +void fn_1_F6E0(omObjData* arg0); +void fn_1_FA40(omObjData* arg0); +void fn_1_FF98(void); +void fn_1_10028(s32 arg0); +void fn_1_100DC(void); +void fn_1_10480(omObjData* arg0); +void fn_1_10540(s32 arg0, s32 arg1, s32 arg2, float arg3); +void fn_1_106D8(s32 arg0); +void fn_1_10BC8(void); +void fn_1_11008(StructBssD0Data* arg0, void* arg1, s16 arg2, GXTexWrapMode arg3, s32 arg4, s32 arg5); +s16 fn_1_11114(AnimData* arg0, s16 arg1); +void fn_1_11900(ModelData* arg0, Mtx arg1); +float fn_1_121DC(float arg0, float arg1); +float fn_1_122F4(float arg0, float arg1, float arg2); +float fn_1_12544(float arg0, float arg1, float arg2); +void fn_1_1293C(Mtx arg0, Vec* arg1); +s32 fn_1_12C6C(Vec* arg0, Vec* arg1, float* arg2); +float fn_1_12E68(Vec* arg0, Vec* arg1, s32 arg2); +void fn_1_129F0(Vec* arg0, Vec* arg1, Vec* arg2, float* arg3); +void fn_1_1334C(float* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4); +float fn_1_1367C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float* arg4); +s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5); + +Process* lbl_1_bss_120; +s32 lbl_1_bss_11C; +s32 lbl_1_bss_118; +s32 lbl_1_bss_114; +s32 lbl_1_bss_110; +s32 lbl_1_bss_10C; // unused +s32 lbl_1_bss_108; +s32 lbl_1_bss_104; +s32 lbl_1_bss_100; +s32 lbl_1_bss_FC; +s32 lbl_1_bss_EC[4]; +s32 lbl_1_bss_DC[4]; +s32 lbl_1_bss_D8; +omObjData* lbl_1_bss_D4; +omObjData* lbl_1_bss_D0; +omObjData* lbl_1_bss_CC; +omObjData* lbl_1_bss_BC[4]; +omObjData* lbl_1_bss_B8; +omObjData* lbl_1_bss_AC[3]; +omObjData* lbl_1_bss_A8; +omObjData* lbl_1_bss_A4; +omObjData* lbl_1_bss_A0; +omObjData* lbl_1_bss_9C; +omObjData* lbl_1_bss_98; +StructBss94Data* lbl_1_bss_94; +s32 lbl_1_bss_90; +omObjData* lbl_1_bss_8C; +s32 lbl_1_bss_88; +s32 lbl_1_bss_84; +s32 lbl_1_bss_80; +s32 lbl_1_bss_7C; +StructBssA8Data* lbl_1_bss_40[15]; +StructBssA8Data* lbl_1_bss_4[15]; +s32 lbl_1_bss_0; + +StructData0 lbl_1_data_0[] = { + { { 342.45f, 0.0f, 0.0f }, { 0.0f, 275.0f, 128.0f }, 550.0f }, + { { 6.0f, 0.0f, 0.0f }, { 0.0f, 190.0f, 0.0f }, 550.0f } +}; + +StructData0 lbl_1_data_38[] = { + { { 22.0f, 180.0f, 0.0f }, { -250.0f, 120.00001f, 0.0f }, 160.0f }, + { { 22.0f, 180.0f, 0.0f }, { 0.0f, 120.00001f, 0.0f }, 160.0f }, + { { 22.0f, 180.0f, 0.0f }, { 250.0f, 120.00001f, 0.0f }, 160.0f }, + { { -45.0f, 180.0f, 0.0f }, { -250.0f, 75.0f, 0.0f }, 180.0f }, + { { -45.0f, 180.0f, 0.0f }, { 0.0f, 75.0f, 0.0f }, 180.0f }, + { { -45.0f, 180.0f, 0.0f }, { 250.0f, 75.0f, 0.0f }, 180.0f }, + { { -45.0f, 0.0f, 0.0f }, { -250.0f, 95.0f, 0.0f }, 150.0f }, + { { -45.0f, 0.0f, 0.0f }, { 0.0f, 95.0f, 0.0f }, 150.0f }, + { { -45.0f, 0.0f, 0.0f }, { 250.0f, 95.0f, 0.0f }, 150.0f }, + { { -45.0f, 0.0f, 0.0f }, { 0.0f, 95.0f, -850.0f }, 150.0f } +}; + +Vec lbl_1_data_150[] = { + 0.0f, 0.0f, -850.0f, + -250.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, + 250.0f, 0.0f, 0.0f +}; + +Vec lbl_1_data_180[] = { + 0.0f, 0.0f, -850.0f, + 850.0f, 0.0f, 0.0f, + 1200.0f, 0.0f, 0.0f, + 1650.0f, 0.0f, 0.0f +}; + +Vec lbl_1_data_1B0[] = { + { -250.0f, 45.0f, 500.0f }, + { 0.0f, 45.0f, 500.0f }, + { 250.0f, 45.0f, 500.0f } +}; + +Vec lbl_1_data_1D4 = { 1000.0f, 2000.0f, 1000.0f }; +Vec lbl_1_data_1E0 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_1EC = { 0.0f, 0.0f, -450.0f }; + +void ObjectSetup(void) { + Process* var_r30; + CameraData* var_r29; + s32 i; + + OSReport("******* M426ObjectSetup *********\n"); + var_r30 = omInitObjMan(50, 0x2000); + lbl_1_bss_120 = var_r30; + omGameSysInit(var_r30); + fn_1_100DC(); + Hu3DLightAllKill(); + Hu3DLighInit(); + HuAudSndGrpSet(0x30); + lbl_1_bss_D4 = omAddObjEx(var_r30, 0xFF, 2, 0, -1, fn_1_318); + lbl_1_bss_11C = lbl_1_bss_118 = -1; + lbl_1_bss_D0 = NULL; + lbl_1_bss_CC = NULL; + lbl_1_bss_A8 = NULL; + lbl_1_bss_B8 = NULL; + lbl_1_bss_AC[0] = lbl_1_bss_AC[1] = lbl_1_bss_AC[2] = NULL; + lbl_1_bss_114 = 0; + lbl_1_bss_110 = 0; + lbl_1_bss_108 = 0; + lbl_1_bss_104 = 10; + lbl_1_bss_100 = -1; + lbl_1_bss_FC = 0; + lbl_1_bss_90 = -1; + lbl_1_bss_D8 = -1; + for (i = 0; i < 4; i++) { + lbl_1_bss_DC[i] = 0; + lbl_1_bss_EC[i] = -1; + } + Hu3DShadowCreate(30.0f, 1000.0f, 250000.0f); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowPosSet(&lbl_1_data_1D4, &lbl_1_data_1E0, &lbl_1_data_1EC); + for (i = 0; i < 3; i++) { + var_r29 = &Hu3DCamera[i]; + var_r29->fov = -1.0f; + } +} + +Vec lbl_1_data_21C = { 0.0f, 0.0f, 0.0f }; +Vec lbl_1_data_228 = { -1.0f, -2.0f, -1.0f }; +GXColor lbl_1_data_234 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +void fn_1_318(omObjData* arg0) { + s32 var_r31; + + var_r31 = Hu3DGLightCreateV(&lbl_1_data_21C, &lbl_1_data_228, &lbl_1_data_234); + Hu3DGLightStaticSet(var_r31, 1); + Hu3DGLightInfinitytSet(var_r31); + fn_1_F10(); + fn_1_34D8(); + fn_1_3BFC(); + fn_1_95C4(); + fn_1_D930(); + fn_1_E1BC(); + fn_1_E460(); + fn_1_F690(); + HuAudFXPlay(0x618); + arg0->func = fn_1_3B0; +} + +s32 lbl_1_data_238[] = { 0, 4, 2, 3, 1, 5 }; +s32 lbl_1_data_250[] = { 186, 186, 186, 240, 240, 240 }; + +void fn_1_3B0(omObjData* arg0) { + CameraData* var_r28; + float var_f31; + s32 temp_r27; + s32 var_r30; + s32 var_r29; + s32 i; + + switch (lbl_1_bss_114) { + case 0: + fn_1_10540(2, 1, 1, 0.0f); + if (++lbl_1_bss_110 > 3) { + for (i = 0; i < 3; i++) { + var_r28 = &Hu3DCamera[i]; + var_r28->fov = 45.0f; + } + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_114 = 1; + lbl_1_bss_110 = 0; + } + break; + case 1: + fn_1_10540(2, 1, 1, 0.0f); + if (WipeStatGet() == 0) { + lbl_1_bss_114 = 2; + lbl_1_bss_110 = 0; + } + break; + case 2: + if (++lbl_1_bss_110 >= 30.0f) { + lbl_1_bss_114 = 3; + lbl_1_bss_110 = 0; + } + break; + case 3: + var_f31 = lbl_1_bss_110 / 90.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + var_f31 = sind(90.0f * var_f31); + var_f31 *= var_f31; + fn_1_10540(2, 1, 0, var_f31); + if (++lbl_1_bss_110 >= 90.0f) { + lbl_1_bss_114 = 4; + lbl_1_bss_110 = 0; + } + break; + case 4: + if (fn_1_781C() != 0) { + lbl_1_bss_11C = MGSeqStartCreate(); + lbl_1_bss_114 = 5; + lbl_1_bss_110 = 0; + } + break; + case 5: + if (lbl_1_bss_11C != -1) { + var_r30 = MGSeqStatGet(lbl_1_bss_11C); + if ((var_r30 & 0x10) && lbl_1_bss_D8 == -1) { + lbl_1_bss_D8 = HuAudSeqPlay(0x46); + } + } else { + var_r30 = 0; + } + if (lbl_1_bss_11C == -1 || var_r30 == 0) { + lbl_1_bss_11C = -1; + lbl_1_bss_114 = 6; + lbl_1_bss_110 = 0; + lbl_1_bss_108 = 1800; + fn_1_10028(1); + lbl_1_bss_118 = MGSeqTimerCreate(lbl_1_bss_108 / 60); + } + break; + case 6: + temp_r27 = lbl_1_data_238[lbl_1_bss_0]; + fn_1_106D8(temp_r27); + if (lbl_1_bss_80 >= lbl_1_data_250[temp_r27] && ++lbl_1_bss_0 > 5) { + lbl_1_bss_0 = 0; + } + var_r29 = (lbl_1_bss_108 + 59) / 60; + if (var_r29 < 0) { + var_r29 = 0; + } + MGSeqParamSet(lbl_1_bss_118, 1, var_r29); + if (--lbl_1_bss_108 < -1 || lbl_1_bss_104 <= 0) { + MGSeqParamSet(lbl_1_bss_118, 2, -1); + lbl_1_bss_118 = -1; + fn_1_B1A4(); + if (lbl_1_bss_D8 != -1) { + HuAudSeqFadeOut(lbl_1_bss_D8, 100); + } + lbl_1_bss_11C = MGSeqFinishCreate(); + lbl_1_bss_114 = 7; + lbl_1_bss_110 = 0; + } + break; + case 7: + if (fn_1_791C() != 0 && (lbl_1_bss_11C == -1 || MGSeqStatGet(lbl_1_bss_11C) == 0)) { + lbl_1_bss_114 = 9; + lbl_1_bss_110 = 0; + } + break; + case 9: + if (lbl_1_bss_104 <= 0) { + lbl_1_bss_11C = MGSeqWinCreate(lbl_1_bss_EC[0], lbl_1_bss_EC[1], lbl_1_bss_EC[2], -1); + fn_1_7AA8(1); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_EC[3] != GWPlayerCfg[i].character) { + GWPlayerCoinWinAdd(i, 10); + } + } + if (lbl_1_bss_DC[0] > lbl_1_bss_DC[1] && lbl_1_bss_DC[0] > lbl_1_bss_DC[2]) { + i = 0; + } else if (lbl_1_bss_DC[1] > lbl_1_bss_DC[0] && lbl_1_bss_DC[1] > lbl_1_bss_DC[2]) { + i = 1; + } else if (lbl_1_bss_DC[2] > lbl_1_bss_DC[0] && lbl_1_bss_DC[2] > lbl_1_bss_DC[1]) { + i = 2; + } else { + i = frand() & 3; + if (i > 2) { + i = 2; + } else if (i < 0) { + i = 0; + } + } + fn_1_106D8(i + 6); + lbl_1_bss_114 = 10; + lbl_1_bss_108 = 0; + } else { + lbl_1_bss_11C = MGSeqWinCreate(lbl_1_bss_EC[3], -1, -1, -1); + fn_1_7AA8(0); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_EC[3] == GWPlayerCfg[i].character) { + GWPlayerCoinWinAdd(i, 10); + } + } + fn_1_106D8(9); + lbl_1_bss_114 = 10; + lbl_1_bss_108 = 0; + } + HuAudSStreamPlay(1); + HuAudFXPlay(0x618); + break; + case 10: + fn_1_3A8C(); + if (++lbl_1_bss_108 >= 210.0f) { + lbl_1_bss_11C = -1; + lbl_1_bss_114 = 11; + lbl_1_bss_108 = 0; + } + break; + case 11: + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_DFC; + break; + } + fn_1_E60(arg0); +} + +void fn_1_DFC(omObjData* arg0) { + if (WipeStatGet() == 0) { + fn_1_1238(); + fn_1_3A64(); + fn_1_77D0(); + fn_1_A9AC(); + fn_1_DBC8(); + fn_1_E330(); + fn_1_E60C(); + fn_1_FF98(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_E60(omObjData* arg0) { + s32 var_r30; + + var_r30 = 0; + if (WipeStatGet() != 0 || arg0->func == fn_1_DFC) { + return; + } + if (omSysExitReq != 0) { + var_r30 = 1; + } + if (var_r30 != 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudStreamFadeOut(30); + arg0->func = fn_1_DFC; + } +} + +s32 fn_1_F00(void) { + return lbl_1_bss_114; +} + +void fn_1_F10(void) { + lbl_1_bss_D0 = omAddObjEx(lbl_1_bss_120, 0x7F, 8, 0, -1, fn_1_F60); +} + +void fn_1_F60(omObjData* arg0) { + StructBssD0Data* temp_r30; + ModelData* temp_r29; + + temp_r30 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r30), MEMORY_DEFAULT_NUM); + memset(temp_r30, 0, sizeof(*temp_r30)); + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M423, 0)); + Hu3DModelCameraSet(arg0->model[0], 5); + Hu3DModelShadowMapSet(arg0->model[0]); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M423, 1)); + Hu3DModelCameraSet(arg0->model[1], 5); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M423, 2)); + Hu3DModelScaleSet(arg0->model[2], 1.125f, 1.0f, 1.0f); + Hu3DModelCameraSet(arg0->model[2], 5); + Hu3DModelShadowSet(arg0->model[2]); + arg0->model[3] = Hu3DHookFuncCreate(fn_1_12A0); + Hu3DModelCameraSet(arg0->model[3], 2); + temp_r29 = &Hu3DData[arg0->model[3]]; + temp_r29->unk_120 = temp_r30; + temp_r30->unk00 = 160; + temp_r30->unk04 = 160; + temp_r30->unk08 = GXGetTexBufferSize(temp_r30->unk00, temp_r30->unk04, 5, 0, 0); + temp_r30->unk10 = HuMemDirectMallocNum(HEAP_DATA, temp_r30->unk08, (u32) temp_r29->unk_48); + temp_r30->unk0C = 0.0f; + arg0->model[4] = fn_1_13A0(temp_r30); + Hu3DModelCameraSet(arg0->model[4], 5); + Hu3DModelPosSet(arg0->model[4], 0.0f, 200.0f, -1700.0f); + arg0->model[5] = fn_1_18FC(); + Hu3DModelCameraSet(arg0->model[5], 4); + arg0->func = fn_1_11A4; +} + +void fn_1_11A4(omObjData* arg0) { + fn_1_2C08(arg0->model[5]); +} + +void fn_1_11D8(omObjData* arg0) { + fn_1_1444(arg0->model[4]); + arg0->model[4] = -1; + fn_1_29B8(arg0->model[5]); + arg0->model[5] = -1; + arg0->func = NULL; +} + +void fn_1_1238(void) { + fn_1_11D8(lbl_1_bss_D0); +} + +GXColor lbl_1_data_298 = { 0x00, 0x00, 0x00, 0xFF }; + +void fn_1_12A0(ModelData* arg0, Mtx arg1) { + StructBssD0Data* temp_r31; + CameraData* var_r30; + + temp_r31 = arg0->unk_120; + var_r30 = &Hu3DCamera[1]; + if (var_r30->fov <= 0.0f) { + return; + } + GXSetTexCopySrc(0, 0, 320, 240); + GXSetTexCopyDst(temp_r31->unk00, temp_r31->unk04, GX_TF_RGB5A3, GX_TRUE); + GXSetCopyClear(lbl_1_data_298, 0xFFFFFF); + GXCopyTex(temp_r31->unk10, GX_TRUE); + DCFlushRange(temp_r31->unk10, temp_r31->unk08); + GXPixModeSync(); + temp_r31->unk0C = 1; + fn_1_10BC8(); +} + +s32 fn_1_13A0(StructBssD0Data* arg0) { + StructM423_00* var_r31; + ModelData* temp_r30; + s32 var_r29; + + var_r29 = Hu3DHookFuncCreate(fn_1_14A0); + temp_r30 = &Hu3DData[var_r29]; + var_r31 = temp_r30->unk_120 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r31), temp_r30->unk_48); + memset(var_r31, 0, sizeof(*var_r31)); + var_r31->unk00 = arg0; + var_r31->unk04 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M423, 21), MEMORY_DEFAULT_NUM)); + return var_r29; +} + +void fn_1_1444(s32 arg0) { + StructM423_00* var_r31; + ModelData* var_r30; + + if (arg0 >= 0) { + var_r30 = &Hu3DData[arg0]; + var_r31 = var_r30->unk_120; + HuSprAnimKill(var_r31->unk04); + } +} + +f32 lbl_1_data_29C[] = { + -400.0f, 400.0f, 0.0f, + 400.0f, 400.0f, 0.0f, + 400.0f, 0.0f, 0.0f, + -400.0f, 0.0f, 0.0f +}; + +f32 lbl_1_data_2CC[] = { + 0.0f, 0.0f, + 1.0f, 0.0f, + 1.0f, 0.75f, + 0.0f, 0.75f +}; + +f32 lbl_1_data_2EC[] = { + 0.0f, 0.0f, + 1.2f, 0.0f, + 1.2f, 0.75f, + 0.0f, 0.75f +}; + +GXColor lbl_1_data_30C[] = { + { 0x40, 0x40, 0x40, 0xFF } +}; + +GXColor lbl_1_data_310 = { 0x00, 0x00, 0x00, 0x80 }; + +void fn_1_14A0(ModelData* arg0, Mtx arg1) { + CameraData* var_r28; + StructM423_00* temp_r29; + StructBssD0Data* temp_r30; + Mtx spC; + s16 i; + + var_r28 = &Hu3DCamera[2]; + temp_r29 = arg0->unk_120; + temp_r30 = temp_r29->unk00; + if (temp_r30->unk0C != 0) { + if (var_r28->fov <= 0.0f) { + return; + } + GXLoadPosMtxImm(arg1, GX_PNMTX0); + PSMTXInvXpose(arg1, spC); + GXLoadNrmMtxImm(spC, GX_PNMTX0); + GXSetTevColor(GX_TEVREG2, lbl_1_data_310); + GXSetNumTevStages(2); + GXSetNumTexGens(2); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX1, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR0A0); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_RASC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + if (Hu3DCameraNo != 0) { + GXSetTevOp(GX_TEVSTAGE1, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_CPREV, GX_CC_C2, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + } else { + GXSetTevOp(GX_TEVSTAGE1, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_CPREV, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + } + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_APREV, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_VTX, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_CLAMP, GX_AF_NONE); + fn_1_11008(temp_r30, temp_r30->unk10, GX_TEXMAP0, GX_CLAMP, 0, 1); + HuSprTexLoad(temp_r29->unk04, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(GX_FALSE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, lbl_1_data_29C, 12); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, lbl_1_data_30C, 4); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, lbl_1_data_2CC, 8); + GXSetVtxDesc(GX_VA_TEX1, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX1, lbl_1_data_2EC, 8); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + for (i = 0; i < 4; i++) { + GXPosition1x16(i); + GXColor1x16(0); + GXTexCoord1x16(i); + GXTexCoord1x16(i); + } + GXEnd(); + } +} + +s32 lbl_1_data_314[][2] = { + { 20, 10 }, { 20, 7 }, { 10, 10 }, { 10, 10 } +}; + +Vec lbl_1_data_334[] = { + { 0.0f, 100.0f, -1100.0f }, + { 0.0f, 200.0f, -1000.0f }, + { -225.0f, 100.0f, -1000.0f }, + { 225.0f, 100.0f, -1000.0f } +}; + +s32 fn_1_18FC(void) { + ModelData* temp_r30; + StructM423_03* var_r29; + StructM423_02* temp_r31; + s32 var_r27; + s32 i; + + var_r27 = Hu3DHookFuncCreate(fn_1_29BC); + temp_r30 = &Hu3DData[var_r27]; + var_r29 = temp_r30->unk_120 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r29), temp_r30->unk_48); + memset(var_r29, 0, sizeof(*var_r29)); + var_r29->unk00 = var_r27; + var_r29->unk02 = 4; + temp_r31 = var_r29->unk04 = HuMemDirectMallocNum(HEAP_DATA, var_r29->unk02 * sizeof(*temp_r31), temp_r30->unk_48); + memset(temp_r31, 0, var_r29->unk02 * sizeof(*temp_r31)); + for (i = 0; i < var_r29->unk02; i++) { + temp_r31 = &var_r29->unk04[i]; + temp_r31->unk02 = lbl_1_data_314[i][0]; + temp_r31->unk04 = lbl_1_data_314[i][1]; + temp_r31->unk00 = temp_r31->unk02 * temp_r31->unk04; + temp_r31->unk08 = lbl_1_data_334[i]; + temp_r31->unk14 = HuMemDirectMallocNum(HEAP_DATA, temp_r31->unk00 * sizeof(*temp_r31->unk14), temp_r30->unk_48); + memset(temp_r31->unk14, 0, temp_r31->unk00 * sizeof(*temp_r31->unk14)); + temp_r31->unk18 = HuMemDirectMallocNum(HEAP_DATA, temp_r31->unk00 * sizeof(*temp_r31->unk18), temp_r30->unk_48); + memset(temp_r31->unk18, 0, temp_r31->unk00 * sizeof(*temp_r31->unk18)); + temp_r31->unk1C = HuMemDirectMallocNum(HEAP_DATA, temp_r31->unk00 * sizeof(*temp_r31->unk1C), temp_r30->unk_48); + memset(temp_r31->unk1C, 0, temp_r31->unk00 * sizeof(*temp_r31->unk1C)); + temp_r31->unk20 = HuMemDirectMallocNum(HEAP_DATA, temp_r31->unk00 * sizeof(*temp_r31->unk20), temp_r30->unk_48); + memset(temp_r31->unk20, 0, temp_r31->unk00 * sizeof(*temp_r31->unk20)); + switch (i) { + case 0: + fn_1_1B5C(temp_r30, temp_r31); + break; + case 1: + fn_1_1F5C(temp_r30, temp_r31); + break; + case 2: + fn_1_2290(temp_r30, temp_r31); + break; + default: + fn_1_2624(temp_r30, temp_r31); + break; + } + } + return var_r27; +} + +Vec lbl_1_data_364[] = { + { -200.0f, 0.0f, -1100.0f }, + { -200.0f, 200.0f, -1050.0f }, + { 200.0f, 200.0f, -1050.0f } +}; + +GXColor lbl_1_data_388 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +void fn_1_1B5C(ModelData* arg0, StructM423_02* arg1) { + float var_f31; + float var_f30; + float var_f29; + Vec* var_r27; + GXColor* var_r26; + StructM423_01* var_r28; + void* var_r25; + void* var_r23; + s32 i; + s32 j; + + var_r27 = arg1->unk14; + var_r26 = arg1->unk1C; + var_r28 = arg1->unk20; + for (i = 0; i < 10; i++) { + var_f30 = 200.0f * (i / 9.0f); + var_f29 = -1100.0f + 50.0f * (i / 9.0f); + for (j = 0; j < 20; var_r27++, var_r26++, var_r28++, j++) { + var_f31 = -225.0f + 450.0f * (j / 19.0f); + var_r27->x = var_f31; + var_r27->y = var_f30; + var_r27->z = var_f29; + *var_r26 = lbl_1_data_388; + var_r28->unk00 = j; + var_r28->unk02 = i; + if (i == 0 || i == 9 || j == 0 || j == 19) { + var_r28->unk04 = 1; + } else { + var_r28->unk04 = 0; + } + var_r28->unk06 = 0; + var_r28->unk08.x = var_r28->unk08.y = var_r28->unk08.z = 0.0f; + } + } + memcpy(arg1->unk18, arg1->unk14, arg1->unk00 * sizeof(*arg1->unk14)); + DCFlushRangeNoSync(arg1->unk14, arg1->unk00 * sizeof(*arg1->unk14)); + DCFlushRangeNoSync(arg1->unk1C, arg1->unk00 * sizeof(*arg1->unk1C)); + PPCSync(); + var_r23 = var_r25 = HuMemDirectMallocNum(HEAP_DATA, 0x10000, arg0->unk_48); + DCFlushRange(var_r25, 0x10000); + GXBeginDisplayList(var_r23, 0x10000); + GXBegin(GX_LINES, GX_VTXFMT0, 9 * 19 * 4); + for (i = 1; i < 10; i++) { + for (j = 1; j < 20; j++) { + GXPosition1x16(i * 20 + j); + GXColor1x16(i * 20 + j); + + GXPosition1x16(i * 20 + (j - 1)); + GXColor1x16(i * 20 + (j - 1)); + + GXPosition1x16(i * 20 + j); + GXColor1x16(i * 20 + j); + + GXPosition1x16((i - 1) * 20 + j); + GXColor1x16((i - 1) * 20 + j); + } + } + GXEnd(); + arg1->unk34 = GXEndDisplayList(); + if (arg1->unk34 >= 0x10000) { + OSReport("ERROR! GList test size over! \n"); + } + arg1->unk38 = HuMemDirectMallocNum(HEAP_DATA, arg1->unk34, arg0->unk_48); + memcpy(arg1->unk38, var_r25, arg1->unk34); + DCFlushRange(arg1->unk38, arg1->unk34); + HuMemDirectFree(var_r25); + fn_1_129F0(&lbl_1_data_364[0], &lbl_1_data_364[1], &lbl_1_data_364[2], arg1->unk24); +} + +GXColor lbl_1_data_3AB = { 0xFF, 0xFF, 0xFF, 0xFF }; + +void fn_1_1F5C(ModelData* arg0, StructM423_02* arg1) { + float var_f31; + float var_f30; + float var_f29; + Vec* var_r27; + GXColor* var_r26; + void* var_r25; + void* var_r23; + s32 i; + s32 j; + + var_r27 = arg1->unk14; + var_r26 = arg1->unk1C; + for (i = 0; i < 7; i++) { + var_f30 = 200.0f; + var_f29 = -900.0f - 150.0f * (i / 6.0f); + for (j = 0; j < 20; var_r27++, var_r26++, j++) { + var_f31 = -225.0f + 450.0f * (j / 19.0f); + var_r27->x = var_f31; + var_r27->y = var_f30; + var_r27->z = var_f29; + *var_r26 = lbl_1_data_3AB; + } + } + memcpy(arg1->unk18, arg1->unk14, arg1->unk00 * sizeof(*arg1->unk14)); + DCFlushRangeNoSync(arg1->unk14, arg1->unk00 * sizeof(*arg1->unk14)); + DCFlushRangeNoSync(arg1->unk1C, arg1->unk00 * sizeof(*arg1->unk1C)); + PPCSync(); + var_r23 = var_r25 = HuMemDirectMallocNum(HEAP_DATA, 0x10000, arg0->unk_48); + DCFlushRange(var_r25, 0x10000); + GXBeginDisplayList(var_r23, 0x10000); + GXBegin(GX_LINES, GX_VTXFMT0, 6 * 19 * 4); + for (i = 1; i < 7; i++) { + for (j = 1; j < 20; j++) { + GXPosition1x16(i * 20 + j); + GXColor1x16(i * 20 + j); + + GXPosition1x16(i * 20 + (j - 1)); + GXColor1x16(i * 20 + (j - 1)); + + GXPosition1x16(i * 20 + j); + GXColor1x16(i * 20 + j); + + GXPosition1x16((i - 1) * 20 + j); + GXColor1x16((i - 1) * 20 + j); + } + } + GXEnd(); + arg1->unk34 = GXEndDisplayList(); + if (arg1->unk34 >= 0x10000) { + OSReport("ERROR! GList test size over! \n"); + } + arg1->unk38 = HuMemDirectMallocNum(HEAP_DATA, arg1->unk34, arg0->unk_48); + memcpy(arg1->unk38, var_r25, arg1->unk34); + DCFlushRange(arg1->unk38, arg1->unk34); + HuMemDirectFree(var_r25); +} + +GXColor lbl_1_data_3AF = { 0xFF, 0xFF, 0xFF, 0xFF }; + +void fn_1_2290(ModelData* arg0, StructM423_02* arg1) { + float var_f31; + float var_f30; + float var_f29; + float var_f28; + Vec* var_r27; + GXColor* var_r26; + void* var_r25; + void* var_r23; + s32 i; + s32 j; + + var_r27 = arg1->unk14; + var_r26 = arg1->unk1C; + for (i = 0; i < 10; i++) { + var_f28 = 200.0f * (i / 9.0f); + var_f29 = -225.0f; + var_f30 = -1100.0f + 50.0f * (i / 9.0f); + for (j = 0; j < 10; var_r27++, var_r26++, j++) { + var_f31 = -900.0f - 200.0f * (j / 9.0f); + if (var_f31 < var_f30) { + var_f31 = var_f30; + } + var_r27->x = var_f29; + var_r27->y = var_f28; + var_r27->z = var_f31; + *var_r26 = lbl_1_data_3AF; + } + } + memcpy(arg1->unk18, arg1->unk14, arg1->unk00 * sizeof(*arg1->unk14)); + DCFlushRangeNoSync(arg1->unk14, arg1->unk00 * sizeof(*arg1->unk14)); + DCFlushRangeNoSync(arg1->unk1C, arg1->unk00 * sizeof(*arg1->unk1C)); + PPCSync(); + var_r23 = var_r25 = HuMemDirectMallocNum(HEAP_DATA, 0x10000, arg0->unk_48); + DCFlushRangeNoSync(var_r25, 0x10000); + GXBeginDisplayList(var_r23, 0x10000); + GXBegin(GX_LINES, GX_VTXFMT0, 9 * 9 * 4); + for (i = 1; i < 10; i++) { + for (j = 1; j < 10; j++) { + GXPosition1x16(i * 10 + j); + GXColor1x16(i * 10 + j); + + GXPosition1x16(i * 10 + (j - 1)); + GXColor1x16(i * 10 + (j - 1)); + + GXPosition1x16(i * 10 + j); + GXColor1x16(i * 10 + j); + + GXPosition1x16((i - 1) * 10 + j); + GXColor1x16((i - 1) * 10 + j); + } + } + GXEnd(); + arg1->unk34 = GXEndDisplayList(); + if (arg1->unk34 >= 0x10000) { + OSReport("ERROR! GList test size over! \n"); + } + arg1->unk38 = HuMemDirectMallocNum(HEAP_DATA, arg1->unk34, arg0->unk_48); + memcpy(arg1->unk38, var_r25, arg1->unk34); + DCFlushRange(arg1->unk38, arg1->unk34); + HuMemDirectFree(var_r25); +} + +GXColor lbl_1_data_3B3 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +void fn_1_2624(ModelData* arg0, StructM423_02* arg1) { + float var_f31; + float var_f30; + float var_f29; + float var_f28; + Vec* var_r27; + GXColor* var_r26; + void* var_r25; + void* var_r23; + s32 i; + s32 j; + + var_r27 = arg1->unk14; + var_r26 = arg1->unk1C; + for (i = 0; i < 10; i++) { + var_f28 = 200.0f * (i / 9.0f); + var_f29 = 225.0f; + var_f30 = -1100.0f + 50.0f * (i / 9.0f); + for (j = 0; j < 10; var_r27++, var_r26++, j++) { + var_f31 = -900.0f - 200.0f * (j / 9.0f); + if (var_f31 < var_f30) { + var_f31 = var_f30; + } + var_r27->x = var_f29; + var_r27->y = var_f28; + var_r27->z = var_f31; + *var_r26 = lbl_1_data_3B3; + } + } + memcpy(arg1->unk18, arg1->unk14, arg1->unk00 * sizeof(*arg1->unk14)); + DCFlushRangeNoSync(arg1->unk14, arg1->unk00 * sizeof(*arg1->unk14)); + DCFlushRangeNoSync(arg1->unk1C, arg1->unk00 * sizeof(*arg1->unk1C)); + PPCSync(); + var_r23 = var_r25 = HuMemDirectMallocNum(HEAP_DATA, 0x10000, arg0->unk_48); + DCFlushRange(var_r25, 0x10000); + GXBeginDisplayList(var_r23, 0x10000); + GXBegin(GX_LINES, GX_VTXFMT0, 9 * 9 * 4); + for (i = 1; i < 10; i++) { + for (j = 1; j < 10; j++) { + GXPosition1x16(i * 10 + j); + GXColor1x16(i * 10 + j); + + GXPosition1x16(i * 10 + (j - 1)); + GXColor1x16(i * 10 + (j - 1)); + + GXPosition1x16(i * 10 + j); + GXColor1x16(i * 10 + j); + + GXPosition1x16((i - 1) * 10 + j); + GXColor1x16((i - 1) * 10 + j); + } + } + GXEnd(); + arg1->unk34 = GXEndDisplayList(); + if (arg1->unk34 >= 0x10000) { + OSReport("ERROR! GList test size over! \n"); + } + arg1->unk38 = HuMemDirectMallocNum(HEAP_DATA, arg1->unk34, arg0->unk_48); + memcpy(arg1->unk38, var_r25, arg1->unk34); + DCFlushRange(arg1->unk38, arg1->unk34); + HuMemDirectFree(var_r25); +} + +void fn_1_29B8(s32 arg0) { +} + +void fn_1_29BC(ModelData* arg0, Mtx arg1) { + StructM423_03* temp_r30; + StructM423_02* temp_r31; + Mtx sp8; + s16 i; + + temp_r30 = arg0->unk_120; + GXLoadPosMtxImm(arg1, GX_PNMTX0); + PSMTXInvXpose(arg1, sp8); + GXLoadNrmMtxImm(sp8, GX_PNMTX0); + GXSetLineWidth(6, GX_TO_ZERO); + GXSetNumTevStages(1); + GXSetNumTexGens(0); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_RASC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_RASA, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_VTX, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_CLAMP, GX_AF_NONE); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(GX_FALSE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + for (i = 0; i < temp_r30->unk02; i++) { + temp_r31 = &temp_r30->unk04[i]; + if (temp_r31->unk38 && temp_r31->unk34 != 0) { + DCFlushRangeNoSync(temp_r31->unk14, temp_r31->unk00 * sizeof(*temp_r31->unk14)); + DCFlushRangeNoSync(temp_r31->unk1C, temp_r31->unk00 * sizeof(*temp_r31->unk1C)); + PPCSync(); + GXSetArray(GX_VA_POS, temp_r31->unk14, sizeof(*temp_r31->unk14)); + GXSetArray(GX_VA_CLR0, temp_r31->unk1C, sizeof(*temp_r31->unk1C)); + GXCallDisplayList(temp_r31->unk38, temp_r31->unk34); + } + } +} + +void fn_1_2C08(s32 arg0) { + Vec sp3C; + Vec sp30; + Vec sp24; + Vec* var_r25; + Vec* var_r24; + Vec* temp_r27; + Vec* temp_r29; + float temp_f31; + float temp_f28; + float temp_f30; + float var_f29; + float var_f27; + StructM423_02* temp_r30; + StructM423_01* var_r28; + StructBssA8Data* var_r31; + StructM423_03* var_r17; + ModelData* sp20; + ModelData* sp1C; + StructM423_01* sp18; + s32 var_r20; + s32 temp_r19; + s32 temp_r18; + s32 i; + s32 j; + s32 k; + s32 temp_r21; + s32 sp14; + s32 sp10; + s32 spC; + Mtx sp48; + + sp20 = &Hu3DData[arg0]; + var_r17 = sp20->unk_120; + temp_r30 = var_r17->unk04; + var_r25 = temp_r30->unk14; + var_r24 = temp_r30->unk18; + var_r28 = temp_r30->unk20; + if (lbl_1_bss_A8 == NULL) { + return; + } + var_r31 = lbl_1_bss_A8->data; + for (i = 0; i < temp_r30->unk00; i++, var_r25++, var_r24++, var_r28++) { + if (var_r28->unk04 != 0) { + continue; + } + PSVECSubtract(var_r24, var_r25, &sp30); + temp_f31 = PSVECMag(&sp30); + if (temp_f31 >= 0.0f) { + PSVECScale(&sp30, &sp30, 0.05f); + PSVECAdd(&var_r28->unk08, &sp30, &var_r28->unk08); + temp_f31 = PSVECMag(&var_r28->unk08); + if (temp_f31 > 10.0f) { + PSVECNormalize(&var_r28->unk08, &var_r28->unk08); + PSVECScale(&var_r28->unk08, &var_r28->unk08, 10.0f); + } + } + PSVECAdd(var_r25, &var_r28->unk08, var_r25); + PSVECScale(&var_r28->unk08, &var_r28->unk08, 0.5f); + } + for (i = 0; i < 15; i++, var_r31++) { + if (var_r31->unk06 == 0 || var_r31->unk0C != 3) { + continue; + } + spC = 0; + PSVECSubtract(&var_r31->unk38, &var_r31->unk74, &sp30); + if (var_r31->unk38.x > -225.0f && var_r31->unk38.x < 225.0f + && var_r31->unk38.y > 0.0f && var_r31->unk38.y < 200.0f + && var_r31->unk38.z > -1150.0f && var_r31->unk38.z < -950.0f) + { + var_f27 = 0.005f * var_r31->unk38.y; + var_f29 = -900.0f - (150.0f + var_f27 * 50.0f); + if (var_r31->unk38.z - 20.0 < var_f29) { + if (var_r31->unk38.z < 20.0 + (var_f29 - 75.0f)) { + var_r31->unk38.z = 20.0 + (var_f29 - 75.0f); + } + spC = 1; + } + } + if (spC != 0) { + if (var_r31->unk0A == 0 && var_r31->unk08 == 0) { + fn_1_AEE8(i); + } + if (var_r31->unk10 == 0) { + var_r31->unk5C = var_r31->unk50; + var_r31->unk10 = 1; + } + sp1C = &Hu3DData[var_r31->unk00]; + sp24.x = var_r31->unk5C.z; + sp24.z = -var_r31->unk5C.x; + sp24.y = 0.0f; + temp_f31 = 0.05 * PSVECMag(&sp24); + if (temp_f31 > 0.00001f) { + PSMTXRotAxisRad(sp48, &sp24, temp_f31); + PSMTXConcat(sp48, sp1C->unk_F0, sp1C->unk_F0); + } + temp_f31 = 0.0133333336f * fabs(var_f29 - (var_r31->unk38.z - 20.0)); + var_r31->unk50.z += temp_f31 * 0.4f; + PSVECScale(&var_r31->unk50, &var_r31->unk50, 0.95f); + var_r31->unk50.y *= 0.0f; + var_r31->unk50.x *= 0.75f; + sp14 = (var_r31->unk38.x - -225.0f) / 22.5f; + sp10 = var_r31->unk38.y / 20.0f; + var_r20 = sp14 + sp10 * temp_r30->unk02; + var_r25 = &temp_r30->unk14[var_r20]; + var_r24 = &temp_r30->unk18[var_r20]; + var_r28 = &temp_r30->unk20[var_r20]; + temp_f28 = var_r24->z - (var_r31->unk38.z - 20.0); + sp3C = var_r31->unk38; + if (temp_f28 < 0.0f) { + continue; + } + for (j = -19; j < 20; j++) { + for (k = -19; k < 20; k++) { + temp_r19 = sp14 + k; + temp_r18 = sp10 + j; + temp_r21 = temp_r19 + temp_r18 * temp_r30->unk02; + if (temp_r19 < 0 || temp_r19 >= temp_r30->unk02 || temp_r18 < 0 || temp_r18 >= temp_r30->unk04 || temp_r21 >= temp_r30->unk00) { + continue; + } + sp18 = &temp_r30->unk20[temp_r21]; + if (sp18->unk04 != 0) { + continue; + } + temp_r29 = &temp_r30->unk14[temp_r21]; + temp_r27 = &temp_r30->unk18[temp_r21]; + PSVECSubtract(&sp3C, temp_r29, &sp30); + sp30.z = 0.0f; + temp_f31 = PSVECMag(&sp30); + if (temp_f31 > 400.0f) { + continue; + } + if (temp_f31 > 20.0) { + temp_f30 = 0.0025f * (400.0f - temp_f31); + temp_f30 = temp_f30 * temp_f30; + PSVECNormalize(&sp30, &sp30); + PSVECScale(&sp30, &sp30, 20.0f * (temp_f30 * temp_f30)); + temp_r29->x += 0.5f * (temp_r27->x + sp30.x - temp_r29->x); + temp_r29->y += 0.5f * (temp_r27->y + sp30.y - temp_r29->y); + temp_r29->z += 0.5f * (temp_r27->z - temp_f30 * temp_f28 - temp_r29->z); + } else { + temp_f30 = cosd(0.0025f * temp_f31 * 90.0f); + if (temp_f31 != 0.0f) { + PSVECNormalize(&sp30, &sp30); + } else { + sp30.x = sp30.y = sp30.z = 0.0f; + } + PSVECScale(&sp30, &sp30, temp_f30 * temp_f30 * 20.0f); + temp_r29->z += 0.5f * (temp_r27->z - temp_f30 * temp_f28 - temp_r29->z); + } + } + } + } else { + var_r31->unk10 = 0; + } + } + DCFlushRangeNoSync(temp_r30->unk14, temp_r30->unk00 * sizeof(*temp_r30->unk14)); + PPCSync(); +} + +void fn_1_34D8(void) { + lbl_1_bss_CC = omAddObjEx(lbl_1_bss_120, 0x81, 20, 6, -1, fn_1_3528); +} + +Vec lbl_1_data_3B8[] = { + -1300.0f, 300.0f, -2350.0f, + -800.0f, 200.0f, -2250.0f, + 800.0f, 200.0f, -2250.0f, + 1300.0f, 300.0f, -2350.0f, + -1000.0f, 300.0f, -2350.0f, + 1000.0f, 300.0f, -2350.0f, + -1200.0f, 400.0f, -2450.0f, + -800.0f, 400.0f, -2450.0f, + 800.0f, 400.0f, -2450.0f, + 1200.0f, 400.0f, -2450.0f, + -1400.0f, 200.0f, -2250.0f, + 1400.0f, 200.0f, -2250.0f, + -1400.0f, 400.0f, -2450.0f, + 1400.0f, 400.0f, -2450.0f, + -900.0f, 500.0f, -2550.0f, + 900.0f, 500.0f, -2550.0f, + -1200.0f, 500.0f, -2550.0f, + 1200.0f, 500.0f, -2550.0f, + -1100.0f, 200.0f, -2250.0f, + 1100.0f, 200.0f, -2250.0f +}; + +s32 lbl_1_data_4A8[] = { + 0, 1, 0, 1, 2, 2, 1, 0, + 1, 2, 0, 1, 2, 0, 1, 2, + 0, 1, 2, 1, 0 +}; + +s32 lbl_1_data_4FC[] = { + DATA_MAKE_NUM(DATADIR_M423, 12), + DATA_MAKE_NUM(DATADIR_M423, 15), + DATA_MAKE_NUM(DATADIR_M423, 18) +}; + +s32 lbl_1_data_508[] = { + DATA_MAKE_NUM(DATADIR_M423, 13), + DATA_MAKE_NUM(DATADIR_M423, 14), + DATA_MAKE_NUM(DATADIR_M423, 16), + DATA_MAKE_NUM(DATADIR_M423, 17), + DATA_MAKE_NUM(DATADIR_M423, 19), + DATA_MAKE_NUM(DATADIR_M423, 20) +}; + +s16 lbl_1_data_520[] = { 0, 2, 4 }; + +void fn_1_3528(omObjData* arg0) { + float var_f30; + float var_f29; + float temp_f31; + StructBssCCData* var_r30; + s32 temp_r27; + s32 var_r28; + s32 i; + + var_r30 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 20 * sizeof(*var_r30), MEMORY_DEFAULT_NUM); + memset(var_r30, 0, 20 * sizeof(*var_r30)); + for (i = 0; i < 6; i++) { + arg0->motion[i] = Hu3DMotionCreateFile(lbl_1_data_508[i]); + } + for (i = 0; i < 20; i++, var_r30++) { + temp_r27 = lbl_1_data_4A8[i]; + var_r30->unk00 = temp_r27; + var_r30->unk02 = 0; + var_r30->unk04 = 0; + var_r30->unk08 = 0; + var_r30->unk0A = 0; + var_r30->unk06 = 210.0f + (1.0f / 127) * frand7() * 60.0f; + var_f30 = -lbl_1_data_3B8[i].x; + var_f29 = -lbl_1_data_3B8[i].z; + temp_f31 = atan2d(var_f30, var_f29); + var_r28 = Hu3DModelCreateFile(lbl_1_data_4FC[temp_r27]); + arg0->model[i] = var_r28; + Hu3DModelCameraSet(var_r28, 4); + Hu3DModelPosSet(var_r28, lbl_1_data_3B8[i].x, lbl_1_data_3B8[i].y, lbl_1_data_3B8[i].z); + if (var_r30->unk00 != 1) { + Hu3DModelRotSet(var_r28, 0.0f, temp_f31, 0.0f); + } else { + Hu3DModelRotSet(var_r28, 10.0f, temp_f31, 0.0f); + } + Hu3DModelScaleSet(var_r28, 1.8f, 1.8f, 1.8f); + Hu3DMotionSet(arg0->model[i], arg0->motion[lbl_1_data_520[var_r30->unk00]]); + if ((i >= 14 && i <= 17) || i == 11 || i == 10) { + Hu3DModelAttrSet(var_r28, 1); + } + } + arg0->stat |= 0x100; + arg0->func = fn_1_3898; +} + +s16 lbl_1_data_526[] = { 0, 2, 4 }; +s16 lbl_1_data_52C[] = { 1, 3, 5, 0 }; + +void fn_1_3898(omObjData* arg0) { + StructBssCCData* var_r31; + s32 var_r28; + s32 i; + + var_r31 = arg0->data; + for (i = 0; i < 20; i++, var_r31++) { + var_r28 = 0; + if (var_r31->unk06 > 0) { + var_r28 = 1; + var_r31->unk06--; + } else if (var_r31->unk0A > 0) { + if (var_r31->unk08 > 0) { + var_r31->unk08--; + } else if (var_r31->unk0A > 0) { + var_r28 = 1; + var_r31->unk0A--; + } else { + var_r31->unk08 = 0; + var_r31->unk0A = 0; + } + } + if (var_r28 != var_r31->unk02 && Hu3DMotionShiftIDGet(arg0->model[i]) == -1) { + var_r31->unk02 = var_r28; + if (var_r31->unk02 == 0) { + Hu3DMotionShiftSet(arg0->model[i], arg0->motion[lbl_1_data_526[var_r31->unk00]], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } else { + Hu3DMotionShiftSet(arg0->model[i], arg0->motion[lbl_1_data_52C[var_r31->unk00]], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + } + } +} + +void fn_1_3A58(omObjData* arg0) { + arg0->func = NULL; +} + +void fn_1_3A64(void) { + fn_1_3A58(lbl_1_bss_CC); +} + +void fn_1_3A8C(void) { + omObjData* var_r29; + StructBssCCData* var_r31; + s32 i; + + if (lbl_1_bss_CC == NULL) { + return; + } + var_r29 = lbl_1_bss_CC; + var_r31 = var_r29->data; + for (i = 0; i < 20; i++, var_r31++) { + if (var_r31->unk06 > 0 || var_r31->unk0A > 0) { + var_r31->unk08 = 0; + } else { + var_r31->unk08 = (1.0f / 127) * frand7() * 0.25f * 60.0f; + } + var_r31->unk0A = ((1.0f / 127) * frand7() + 2.0f) * 60.0f; + } +} + +void fn_1_3BFC(void) { + s32 sp8[4]; + s32 temp_r28; + s32 temp_r27; + s32 var_r25; + s32 var_r26; + s32 var_r29; + s32 i; + s32 j; + + for (i = 0; i < 4; i++) { + sp8[i] = -1; + } + for (i = 0, var_r29 = 0; i < 4; i++) { + if (GWPlayerCfgGroupGet(i) == 0) { + sp8[3] = i; + } else { + sp8[var_r29] = i; + var_r29++; + } + } + for (i = 0; i < 4; i++) { + if (sp8[i] == -1) { + break; + } + } + if (i < 4) { + sp8[0] = 1; + sp8[1] = 2; + sp8[2] = 3; + sp8[3] = 0; + } else { + for (i = 0; i < 32; i++) { + temp_r28 = (s16) (frand() & 0xFFF) % 3; + temp_r27 = (s16) (frand() & 0xFFF) % 3; + if (temp_r28 != temp_r27) { + var_r29 = sp8[temp_r27]; + sp8[temp_r27] = sp8[temp_r28]; + sp8[temp_r28] = var_r29; + } + } + } + var_r25 = 1; + for (i = 0, var_r26 = 0; i < 4; i++) { + lbl_1_bss_BC[i] = omAddObjEx(lbl_1_bss_120, 0x40, 4, 11, -1, fn_1_3FE0); + lbl_1_bss_BC[i]->work[0] = i; + if (i == sp8[3]) { + lbl_1_bss_EC[3] = GWPlayerCfg[lbl_1_bss_BC[i]->work[0]].character; + lbl_1_bss_BC[i]->work[1] = 0; + lbl_1_bss_BC[i]->work[2] = 0; + if (GWPlayerCfg[lbl_1_bss_BC[i]->work[0]].iscom) { + lbl_1_bss_FC = 1; + } + } else { + lbl_1_bss_EC[var_r26] = GWPlayerCfg[lbl_1_bss_BC[i]->work[0]].character; + var_r26++; + lbl_1_bss_BC[i]->work[1] = 1; + for (j = 0; j < 3; j++) { + if (i == sp8[j]) { + break; + } + } + if (j >= 3) { + j = i - 1; + } + lbl_1_bss_BC[i]->work[2] = j; + lbl_1_bss_AC[j] = lbl_1_bss_BC[i]; + if (!GWPlayerCfg[lbl_1_bss_BC[i]->work[0]].iscom) { + var_r25 = 0; + } + } + } + if (var_r25 != 0) { + lbl_1_bss_FC = 0; + } +} + +u32 lbl_1_data_534[][2] = { + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), -1 }, + { 0, 0 }, + { 0, 1 }, + { 0, 2 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 24), -1 } +}; + +s32 lbl_1_data_574[] = { + DATA_MAKE_NUM(DATADIR_M423, 58), + DATA_MAKE_NUM(DATADIR_M423, 26), + DATA_MAKE_NUM(DATADIR_M423, 34) +}; + +u32 lbl_1_data_580[][2] = { + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), -1 }, + { 0, 0 }, + { 0, 1 }, + { 0, 2 }, + { 0, 3 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 11), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 24), -1 } +}; + +s32 lbl_1_data_5D8[] = { + DATA_MAKE_NUM(DATADIR_M423, 42), + DATA_MAKE_NUM(DATADIR_M423, 66), + DATA_MAKE_NUM(DATADIR_M423, 50), + DATA_MAKE_NUM(DATADIR_M423, 74) +}; + +void fn_1_3FE0(omObjData* arg0) { + float var_f31; + StructBssBCData* temp_r31; + s32 i; + + temp_r31 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r31), MEMORY_DEFAULT_NUM); + memset(temp_r31, 0, sizeof(*temp_r31)); + temp_r31->unk00 = arg0->work[0]; + temp_r31->unk02 = GWPlayerCfg[arg0->work[0]].character; + temp_r31->unk04 = GWPlayerCfg[arg0->work[0]].pad_idx; + temp_r31->unk06 = GWPlayerCfg[arg0->work[0]].iscom; + temp_r31->unk08 = GWPlayerCfg[arg0->work[0]].diff; + temp_r31->unk0A = arg0->work[1]; + temp_r31->unk0C = arg0->work[2]; + memset(&temp_r31->unk1C, 0, sizeof(temp_r31->unk1C)); + temp_r31->unk58 = 0; + temp_r31->unk5C = -1; + temp_r31->unk60 = 0.0f; + temp_r31->unk64 = -1; + temp_r31->unk68 = 0; + temp_r31->unk6C = 0; + temp_r31->unk70 = 0; + temp_r31->unk74 = 0; + temp_r31->unk16 = -1; + temp_r31->unk88 = 0.0f; + temp_r31->unk8C = 0.0f; + temp_r31->unk90 = 0; + temp_r31->unk94 = 0; + temp_r31->unk98 = 0; + temp_r31->unk9C = 0; + temp_r31->unkA0 = 0; + temp_r31->unkA4 = 0; + temp_r31->unkA8 = 0.0f; + temp_r31->unkAC = 0; + arg0->model[0] = CharModelCreate(temp_r31->unk02, 4); + Hu3DModelCameraSet(arg0->model[0], 5); + Hu3DModelShadowSet(arg0->model[0]); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_CURVE_MOTOFF); + CharModelStepTypeSet(temp_r31->unk02, 2); + if (temp_r31->unk0A == 0) { + for (i = 0; i < 11; i++) { + if (lbl_1_data_580[i][1] == -1) { + arg0->motion[i] = CharModelMotionCreate(temp_r31->unk02, lbl_1_data_580[i][0]); + } else { + arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_5D8[lbl_1_data_580[i][1]] + temp_r31->unk02); + } + } + temp_r31->unk16 = 0; + temp_r31->unk18 = 0; + CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); + temp_r31->unkB0 = arg0->trans.x = lbl_1_data_150[0].x; + temp_r31->unkB4 = arg0->trans.y = lbl_1_data_150[0].y; + temp_r31->unkB8 = arg0->trans.z = lbl_1_data_150[0].z; + temp_r31->unkBC = lbl_1_data_180[0].x; + temp_r31->unkC0 = lbl_1_data_180[0].y; + temp_r31->unkC4 = lbl_1_data_180[0].z; + temp_r31->unk78 = 0.0f; + temp_r31->unk7C = 0.0f; + temp_r31->unkE0 = temp_r31->unkE4 = temp_r31->unkE8 = 0.0f; + temp_r31->unkEC = temp_r31->unkF0 = temp_r31->unkF4 = 0.0f; + temp_r31->unk7C = 6.5f; + var_f31 = 0.0f; + for (i = 0; i < 1000; i++) { + var_f31 += temp_r31->unk7C; + temp_r31->unk7C -= 0.49f; + if (var_f31 <= 0.0f) { + break; + } + } + temp_r31->unk80 = i; + temp_r31->unk7C = 10.5f; + var_f31 = 0.0f; + for (i = 0; i < 1000; i++) { + var_f31 += temp_r31->unk7C; + temp_r31->unk7C -= 0.65333337f; + if (var_f31 <= 0.0f) { + break; + } + } + temp_r31->unk84 = i; + arg0->func = fn_1_5D18; + } else { + for (i = 0; i < 8; i++) { + if (lbl_1_data_534[i][1] == -1) { + arg0->motion[i] = CharModelMotionCreate(temp_r31->unk02, lbl_1_data_534[i][0]); + } else { + arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_574[lbl_1_data_534[i][1]] + temp_r31->unk02); + } + } + temp_r31->unk16 = 0; + temp_r31->unk18 = 0; + CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); + temp_r31->unkB0 = lbl_1_data_150[temp_r31->unk0C + 1].x; + temp_r31->unkB4 = lbl_1_data_150[temp_r31->unk0C + 1].y; + temp_r31->unkB8 = lbl_1_data_150[temp_r31->unk0C + 1].z; + temp_r31->unkBC = arg0->trans.x = lbl_1_data_180[temp_r31->unk0C + 1].x; + temp_r31->unkC0 = arg0->trans.y = lbl_1_data_180[temp_r31->unk0C + 1].y; + temp_r31->unkC4 = arg0->trans.z = lbl_1_data_180[temp_r31->unk0C + 1].z; + temp_r31->unk78 = atan2d(lbl_1_data_150[0].x - temp_r31->unkB0, lbl_1_data_150[0].z - temp_r31->unkB8); + temp_r31->unk7C = 0.0f; + temp_r31->unk98 = 0; + temp_r31->unk9C = 300.0f + (1.0f / 127) * frand7() * 60.0f * 15.0f; + if (lbl_1_bss_FC != 0) { + temp_r31->unk08 = 3; + } + arg0->func = fn_1_4778; + } + CharModelMotionDataClose(temp_r31->unk02); +} + +Vec lbl_1_data_5E8 = { 0.0f, 20.0f, 50.0f }; +GXColor lbl_1_data_5F4 = { 0xFF, 0xFF, 0xFF, 0x10 }; +GXColor lbl_1_data_5F8 = { 0xFF, 0xFF, 0xFF, 0x40 }; + +void fn_1_4778(omObjData* arg0) { + Mtx sp11C; + Vec sp110; + Vec sp104; + Vec spF8; + float temp_f27; + float temp_f29; + float temp_f30; + float var_f25; + StructBssBCData* temp_r31; + ModelData* temp_r27; + s32 temp_r26; + s16 var_r25; + s16 var_r24; + s16 var_r29; + s16 var_r28; + + temp_r31 = arg0->data; + temp_r27 = &Hu3DData[arg0->model[0]]; + temp_r31->unk0E = HuPadBtn[temp_r31->unk04]; + temp_r31->unk10 = HuPadBtnDown[temp_r31->unk04]; + temp_r31->unk12 = HuPadStkX[temp_r31->unk04]; + temp_r31->unk14 = HuPadStkY[temp_r31->unk04]; + if (fn_1_F00() == 6) { + if (temp_r31->unk06 != 0) { + temp_r31->unk0E &= ~PAD_BUTTON_A; + temp_r31->unk10 &= ~PAD_BUTTON_A; + temp_r31->unk12 = 0; + temp_r31->unk14 = 0; + fn_1_8338(arg0); + } + var_r25 = temp_r31->unk0E; + var_r24 = temp_r31->unk10; + var_r29 = temp_r31->unk12; + var_r28 = temp_r31->unk14; + } + if (fabs(var_r29) < 8.0) { + var_r29 = 0; + } + if (fabs(var_r29) > 80.0) { + var_r29 = 80; + } + if (fabs(var_r28) < 8.0) { + var_r28 = 0; + } + if (fabs(var_r28) > 80.0) { + var_r28 = 80; + } + if (fn_1_F00() != 6) { + var_r29 = var_r28 = 0; + var_r25 = var_r24 = 0; + } + switch (temp_r31->unk18) { + case 0: + if (fn_1_F00() < 3) { + break; + } + spF8.x = temp_r31->unkB0 - arg0->trans.x; + spF8.z = temp_r31->unkB8 - arg0->trans.z; + temp_f29 = VECMagXZ(&spF8); + if (temp_f29 > 25.0f) { + spF8.x = temp_r31->unkB0 - arg0->trans.x; + spF8.z = temp_r31->unkB8 - arg0->trans.z; + temp_f30 = atan2d(spF8.x, spF8.z); + arg0->rot.y = fn_1_122F4(temp_f30, arg0->rot.y, 15.0f); + arg0->trans.x += 25.0 * sind(arg0->rot.y) * 0.5; + arg0->trans.z += 25.0 * cosd(arg0->rot.y) * 0.5; + if (temp_r31->unk16 != 2) { + temp_r31->unk16 = 2; + CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); + } + break; + } + arg0->trans.x = temp_r31->unkB0; + arg0->trans.z = temp_r31->unkB8; + temp_r31->unk18 = 1; + if (temp_r31->unk16 != 0) { + temp_r31->unk16 = 0; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + break; + case 1: + arg0->rot.y = fn_1_122F4(0.0f, arg0->rot.y, 5.0f); + if (fabs(fn_1_121DC(arg0->rot.y, 0.0f)) < 1.0) { + arg0->rot.y = 0.0f; + temp_r31->unk18 = 2; + } + break; + case 2: + temp_r31->unk18 = 3; + break; + case 3: + arg0->rot.y = fn_1_122F4(0.0f, arg0->rot.y, 10.0f); + if (fn_1_F00() >= 7) { + temp_r31->unk18 = 10; + temp_r31->unk68 = 0; + break; + } + if (fabs(fn_1_121DC(arg0->rot.y, 0.0f)) < 1.0) { + arg0->rot.y = 0.0f; + sp104 = lbl_1_data_5E8; + mtxRot(sp11C, arg0->rot.x, arg0->rot.y, arg0->rot.z); + fn_1_1293C(sp11C, &sp104); + sp104.x += arg0->trans.x; + sp104.y += arg0->trans.y; + sp104.z += arg0->trans.z; + if (fn_1_F00() <= 6 && (temp_r31->unk5C = fn_1_A9D4(temp_r31->unk02, lbl_1_data_1B0[temp_r31->unk0C], sp104)) != -1) { + temp_r31->unk18 = 4; + temp_r31->unk68 = 0; + } + } + break; + case 4: + temp_r26 = fn_1_AE64(temp_r31->unk5C); + if (fn_1_F00() >= 7) { + temp_r31->unk18 = 10; + temp_r31->unk68 = 0; + break; + } + if (temp_r26 == -1 || temp_r31->unk5C == -1) { + temp_r31->unk18 = 3; + break; + } + if (temp_r26 == 2) { + if (++temp_r31->unk68 >= 6.0f) { + HuAudFXPlay(0x61A); + temp_r31->unk18 = 5; + temp_r31->unk68 = 0; + } + break; + } + if (++temp_r31->unk68 >= 54.0f && temp_r31->unk16 != 3) { + temp_r31->unk16 = 3; + CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + } + break; + case 5: + temp_f30 = fabs(fn_1_121DC(arg0->rot.y, temp_r31->unk78)); + if (temp_f30 < 10.0f) { + arg0->rot.y += temp_f30; + } else { + arg0->rot.y += 10.0f; + } + sp104 = lbl_1_data_5E8; + mtxRot(sp11C, arg0->rot.x, arg0->rot.y, arg0->rot.z); + fn_1_1293C(sp11C, &sp104); + sp104.x += arg0->trans.x; + sp104.y += arg0->trans.y; + sp104.z += arg0->trans.z; + fn_1_AC0C(temp_r31->unk5C, sp104); + spF8.x = 0.0f; + spF8.y = 1.0f; + spF8.z = 1.0f; + sp104.y = 0.0f; + fn_1_DD70(sp104, spF8, 50.0f, -0.5f, 10.0f, 1.0f, lbl_1_data_5F4); + if (fn_1_F00() >= 7) { + temp_r31->unk18 = 10; + temp_r31->unk68 = 0; + break; + } + if (fabs(fn_1_121DC(arg0->rot.y, temp_r31->unk78)) < 1.0) { + temp_r31->unkC8 = sp104; + temp_r31->unk18 = 6; + temp_r31->unk68 = 0; + } + break; + case 6: + sp110.x = 0.0125f * var_r29 * 300.0f; + sp110.y = -900.0f; + sp110.z = -900.0f; + temp_f30 = atan2d(sp110.x - temp_r31->unkC8.x, sp110.z - temp_r31->unkC8.z); + arg0->rot.y = fn_1_122F4(temp_f30, arg0->rot.y, 5.0f); + if (fn_1_F00() >= 7) { + temp_r31->unk18 = 10; + temp_r31->unk68 = 0; + break; + } + if (var_r24 & PAD_BUTTON_A) { + temp_r31->unk16 = 4; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + temp_r27->unk_88 = 0.5f; + temp_r31->unkD4 = sp110; + temp_r31->unk18 = 7; + temp_r31->unk68 = 0; + } + break; + case 7: + temp_r31->unk68++; + if (temp_r31->unk68 > 90.0f) { + temp_r31->unk68 = 90; + } + temp_f29 = 0.011111111f * temp_r31->unk68; + sp110.x = 0.0125f * var_r29 * 300.0f; + sp110.y = -900.0f; + sp110.z = -900.0f; + temp_f30 = atan2d(sp110.x - temp_r31->unkC8.x, sp110.z - temp_r31->unkC8.z); + arg0->rot.y = fn_1_122F4(temp_f30, arg0->rot.y, 5.0f); + temp_r31->unkD4 = sp110; + if (fn_1_F00() >= 7) { + temp_r31->unk18 = 10; + temp_r31->unk68 = 0; + break; + } + if (!(var_r25 & PAD_BUTTON_A)) { + var_f25 = 15.000001f + 30.0f * temp_f29; + temp_r31->unk60 = var_f25; + temp_r31->unk16 = 5; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + temp_r27->unk_88 = 0.5f + 1.5f * temp_f29; + temp_r31->unk18 = 8; + temp_r31->unk68 = 0; + } + break; + case 8: + if (fn_1_F00() >= 7) { + temp_r31->unk18 = 10; + temp_r31->unk68 = 0; + break; + } + if (CharModelMotionTimeGet(temp_r31->unk02) >= 10.0f && CharModelMotionShiftIDGet(temp_r31->unk02) == -1) { + temp_r26 = fn_1_AE64(temp_r31->unk5C); + if (temp_r26 == -1 || temp_r31->unk5C == -1) { + temp_r31->unk18 = 3; + } + PSVECSubtract(&temp_r31->unkD4, &temp_r31->unkC8, &spF8); + PSVECNormalize(&spF8, &spF8); + temp_f27 = 15.0f; + spF8.x *= temp_r31->unk60 * cosd(temp_f27); + spF8.z *= temp_r31->unk60 * cosd(temp_f27); + spF8.y = temp_r31->unk60 * sind(temp_f27); + fn_1_AC80(temp_r31->unk5C, spF8); + temp_r31->unk5C = -1; + HuAudFXPlay(0x61F); + sp104 = temp_r31->unkC8; + sp104.y += 75.0f; + spF8.x = 0.0f; + spF8.y = 1.0f; + spF8.z = 1.0f; + sp104.y = 0.0f; + fn_1_DC24(sp104, spF8, 50.0f, -0.5f, 1.0f, lbl_1_data_5F8); + temp_f29 = (temp_r31->unk60 - 15.000001f) / 30.0f; + if (temp_f29 > 0.66f) { + HuAudFXPlay(0x61B); + } else if (temp_f29 > 0.33f) { + HuAudFXPlay(0x61C); + } else { + HuAudFXPlay(0x61D); + } + temp_r31->unk18 = 9; + temp_r31->unk68 = 0; + } + break; + case 9: + if (fn_1_F00() >= 7) { + temp_r31->unk18 = 10; + temp_r31->unk68 = 0; + break; + } + if (++temp_r31->unk68 >= 12.0f) { + temp_r31->unk16 = 0; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + temp_r31->unk18 = 3; + temp_r31->unk68 = 0; + } + break; + case 10: + arg0->rot.y = fn_1_122F4(0.0f, arg0->rot.y, 10.0f); + if (CharModelMotionShiftIDGet(temp_r31->unk02) == -1 && temp_r31->unk16 != 0) { + temp_r31->unk16 = 0; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + break; + case 11: + if (CharModelMotionShiftIDGet(temp_r31->unk02) == -1 && temp_r31->unk16 != 6) { + temp_r31->unk16 = 6; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + } + break; + case 12: + if (CharModelMotionShiftIDGet(temp_r31->unk02) == -1 && temp_r31->unk16 != 7) { + temp_r31->unk16 = 7; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + } + break; + } +} + +GXColor lbl_1_data_630 = { 0xFF, 0xFF, 0xFF, 0x14 }; + +void fn_1_5D18(omObjData* arg0) { + Vec sp60; + Vec sp54; + Vec sp48; + float var_f30; + float var_f31; + float var_f29; + StructBssBCData* temp_r31; + ModelData* temp_r27; + s16 var_r26; + s16 var_r25; + s16 var_r28; + s16 var_r24; + s16 i; + + temp_r31 = arg0->data; + temp_r27 = &Hu3DData[arg0->model[0]]; + temp_r31->unk0E = HuPadBtn[temp_r31->unk04]; + temp_r31->unk10 = HuPadBtnDown[temp_r31->unk04]; + temp_r31->unk12 = HuPadStkX[temp_r31->unk04]; + temp_r31->unk14 = HuPadStkY[temp_r31->unk04]; + if (fn_1_F00() == 6) { + if (temp_r31->unk06 != 0) { + temp_r31->unk0E &= ~PAD_BUTTON_A; + temp_r31->unk10 &= ~PAD_BUTTON_A; + temp_r31->unk12 = 0; + temp_r31->unk14 = 0; + fn_1_8CB4(arg0); + } + var_r28 = temp_r31->unk12; + var_r24 = temp_r31->unk14; + } + if (fabs(var_r28) < 8.0) { + var_r28 = 0; + } + if (fabs(var_r28) > 80.0) { + var_r28 = 80; + } + if (fabs(var_r24) < 8.0) { + var_r24 = 0; + } + if (fabs(var_r24) > 80.0) { + var_r24 = 80; + } + switch (temp_r31->unk18) { + case 0: + if (fn_1_F00() >= 6) { + temp_r31->unk18 = 1; + } + break; + case 1: + if (fabs(var_r28) > 8.0) { + var_f30 = 0.125f * var_r28; + } else { + var_f30 = 0.0f; + } + temp_r31->unk1C[temp_r31->unk58] = var_f30; + if (++temp_r31->unk58 >= 15) { + temp_r31->unk58 = 0; + } + for (i = 0, var_f30 = 0.0f; i < 15; i++) { + var_f30 += temp_r31->unk1C[i]; + } + var_f30 *= 0.06666667f; + if (var_f30 > 25.0f) { + var_f30 = 25.0f; + } else if (var_f30 < -25.0f) { + var_f30 = -25.0f; + } + if (0.0f == var_f30) { + var_r25 = 0; + } else if (fabs(var_f30) < 10.0) { + var_r25 = 1; + } else { + var_r25 = 2; + } + if (temp_r31->unk16 != var_r25 && CharModelMotionShiftIDGet(temp_r31->unk02) == -1) { + temp_r31->unk16 = var_r25; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + if (temp_r31->unk16 == 1 && CharModelMotionShiftIDGet(temp_r31->unk02) == -1) { + var_f31 = fabs(0.1f * var_f30); + if (var_f31 < 0.25f) { + var_f31 = 0.25f; + } + CharModelMotionSpeedSet(temp_r31->unk02, var_f31); + } + if (var_r28 == 0.0f) { + var_f29 = 0.0f; + } else if (var_r28 < 0.0f) { + var_f29 = -90.0f; + } else { + var_f29 = 90.0f; + } + if (arg0->rot.y < var_f29 && (arg0->rot.y += 20.0f) > var_f29) { + arg0->rot.y = var_f29; + } + if (arg0->rot.y > var_f29 && (arg0->rot.y -= 20.0f) < var_f29) { + arg0->rot.y = var_f29; + } + arg0->trans.x += var_f30; + arg0->trans.y = 0.0f; + arg0->trans.z = temp_r31->unkB8; + if (arg0->trans.x < -225.0f) { + arg0->trans.x = -225.0f; + } + if (arg0->trans.x > 225.0f) { + arg0->trans.x = 225.0f; + } + if (fn_1_F00() >= 7) { + temp_r31->unk18 = 9; + temp_r31->unk68 = 0; + } else if (temp_r31->unk10 & PAD_BUTTON_A) { + if (var_r28 > 0) { + temp_r27->unk_0C = -1; + temp_r31->unk16 = 3; + CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); + CharModelMotionSpeedSet(temp_r31->unk02, 1.0f); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + temp_r31->unk7C = 6.5f; + temp_r31->unk68 = 0; + arg0->rot.y = 90.0f; + i = 99; + if ((var_r26 = fn_1_B304(lbl_1_bss_40)) != 0) { + for (i = 0; i < var_r26; i++) { + if (lbl_1_bss_40[0]->unk1C < lbl_1_bss_40[0]->unk14 || lbl_1_bss_40[0]->unk1C - lbl_1_bss_40[0]->unk14 > 6.0f) { + continue; + } + if (lbl_1_bss_40[0]->unk1C < 36.0f) { + var_f31 = lbl_1_bss_40[0]->unk68.z - arg0->trans.z; + } else { + var_f31 = lbl_1_bss_40[0]->unk38.z - arg0->trans.z; + } + if (var_f31 < -100.0f) { + continue; + } + var_f31 = fabs(var_f31); + if (var_f31 >= 300.0f) { + temp_r31->unk8C = 13.5f; + } else if (var_f31 <= 100.0f) { + temp_r31->unk8C = 6.5f; + } else { + temp_r31->unk8C = 10.0f; + } + } + } + if (i >= var_r26) { + temp_r31->unk8C = 10.0f; + } + temp_r31->unk18 = 2; + } else if (var_r28 < 0) { + temp_r27->unk_0C = -1; + temp_r31->unk16 = 5; + CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); + CharModelMotionSpeedSet(temp_r31->unk02, 1.0f); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + temp_r31->unk7C = 6.5f; + temp_r31->unk68 = 0; + arg0->rot.y = -90.0f; + i = 99; + if ((var_r26 = fn_1_B304(lbl_1_bss_40)) != 0) { + for (i = 0; i < var_r26; i++) { + if (lbl_1_bss_40[0]->unk1C < lbl_1_bss_40[0]->unk14 || lbl_1_bss_40[0]->unk1C - lbl_1_bss_40[0]->unk14 > 6.0f) { + continue; + } + if (lbl_1_bss_40[0]->unk1C < 36.0f) { + var_f31 = lbl_1_bss_40[0]->unk68.z - arg0->trans.z; + } else { + var_f31 = lbl_1_bss_40[0]->unk38.z - arg0->trans.z; + } + if (var_f31 > 100.0f) { + continue; + } + var_f31 = fabs(var_f31); + if (var_f31 >= 300.0f) { + temp_r31->unk8C = 13.5f; + } else if (var_f31 <= 100.0f) { + temp_r31->unk8C = 6.5f; + } else { + temp_r31->unk8C = 10.0f; + } + } + } + if (i >= var_r26) { + temp_r31->unk8C = 10.0f; + } + temp_r31->unk18 = 4; + } else { + temp_r27->unk_0C = -1; + temp_r31->unk16 = 7; + CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); + CharModelMotionSpeedSet(temp_r31->unk02, 1.0f); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + temp_r31->unk7C = 10.5f; + temp_r31->unk68 = 0; + arg0->rot.y = 0.0f; + temp_r31->unk18 = 7; + } + } + break; + case 2: + arg0->trans.x += temp_r31->unk8C; + if (arg0->trans.x > 225.0f) { + arg0->trans.x = 225.0f; + } + arg0->trans.y += temp_r31->unk7C; + temp_r31->unk7C -= 0.49f; + temp_r31->unk68++; + if (temp_r31->unk68 == temp_r31->unk80 - 12.0f) { + temp_r31->unk16 = 4; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + } + if (arg0->trans.y <= 0.0f) { + for (i = 0; i < 6; i++) { + sp48.x = sind(-90.0f + 30.0f * i); + sp48.z = cosd(-90.0f + 30.0f * i); + sp48.y = 0.0f; + sp54.x = 100.0f * sp48.x * 0.01f; + sp54.z = 100.0f * sp48.z * 0.01f; + sp54.y = 1.0f; + sp60.x = arg0->trans.x + 100.0f * sp48.x * 0.2; + sp60.z = arg0->trans.z + 100.0f * sp48.z * 0.2; + sp60.y = 0.0f; + fn_1_DD70(sp60, sp54, 50.0f, -0.25f, 20.0f, 0.5f, lbl_1_data_630); + } + arg0->trans.y = 0.0f; + temp_r31->unk18 = 3; + } + break; + case 3: + if (CharModelMotionEndCheck(temp_r31->unk02) && CharModelMotionShiftIDGet(temp_r31->unk02) == -1) { + memset(&temp_r31->unk1C, 0, sizeof(temp_r31->unk1C)); + temp_r31->unk58 = 0; + temp_r31->unk16 = 0; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + temp_r31->unk18 = 6; + temp_r31->unkAC = 0; + } + break; + case 4: + arg0->trans.x -= temp_r31->unk8C; + if (arg0->trans.x < -225.0f) { + arg0->trans.x = -225.0f; + } + arg0->trans.y += temp_r31->unk7C; + temp_r31->unk7C -= 0.49f; + temp_r31->unk68++; + if (temp_r31->unk68 == temp_r31->unk80 - 12.0f) { + temp_r31->unk16 = 6; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + } + if (arg0->trans.y <= 0.0f) { + for (i = 0; i < 6; i++) { + sp48.x = sind(-90.0f + 30.0f * i); + sp48.z = cosd(-90.0f + 30.0f * i); + sp48.y = 0.0f; + sp54.x = 100.0f * sp48.x * 0.01f; + sp54.z = 100.0f * sp48.z * 0.01f; + sp54.y = 1.0f; + sp60.x = arg0->trans.x + 100.0f * sp48.x * 0.2; + sp60.z = arg0->trans.z + 100.0f * sp48.z * 0.2; + sp60.y = 0.0f; + fn_1_DD70(sp60, sp54, 50.0f, -0.25f, 20.0f, 0.5f, lbl_1_data_630); + } + arg0->trans.y = 0.0f; + temp_r31->unk18 = 5; + } + break; + case 5: + if (CharModelMotionEndCheck(temp_r31->unk02) && CharModelMotionShiftIDGet(temp_r31->unk02) == -1) { + memset(&temp_r31->unk1C, 0, sizeof(temp_r31->unk1C)); + temp_r31->unk58 = 0; + temp_r31->unk16 = 0; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + temp_r31->unk18 = 6; + temp_r31->unkAC = 0; + } + break; + case 6: + if (++temp_r31->unkAC > 0.0f) { + temp_r31->unkAC = 0; + temp_r31->unk18 = 1; + } + break; + case 7: + arg0->trans.y += temp_r31->unk7C; + temp_r31->unk7C -= 0.65333337f; + temp_r31->unk68++; + if (arg0->trans.y <= 0.0f) { + temp_r31->unk16 = 0; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + arg0->trans.y = 0.0f; + temp_r31->unk68 = 0; + temp_r31->unk18 = 8; + } + break; + case 8: + if (++temp_r31->unk68 > 12.0f) { + memset(&temp_r31->unk1C, 0, sizeof(temp_r31->unk1C)); + temp_r31->unk58 = 0; + temp_r31->unk16 = 0; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + temp_r31->unk18 = 1; + } + break; + case 9: + arg0->rot.y = fn_1_122F4(0.0f, arg0->rot.y, 10.0f); + if (CharModelMotionShiftIDGet(temp_r31->unk02) == -1 && temp_r31->unk16 != 1) { + temp_r31->unk16 = 1; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + if (CharModelMotionShiftIDGet(temp_r31->unk02) == -1 && temp_r31->unk16 == 1) { + arg0->trans.z += 5.0f; + } + if (arg0->trans.z > lbl_1_data_150->z + 100.0f) { + temp_r31->unk18 = 10; + } + break; + case 10: + arg0->rot.y = fn_1_122F4(0.0f, arg0->rot.y, 10.0f); + if (CharModelMotionShiftIDGet(temp_r31->unk02) == -1 && temp_r31->unk16 != 0) { + temp_r31->unk16 = 0; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + break; + case 11: + if (CharModelMotionShiftIDGet(temp_r31->unk02) == -1 && temp_r31->unk16 != 9) { + temp_r31->unk16 = 9; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + } + break; + case 12: + if (CharModelMotionShiftIDGet(temp_r31->unk02) == -1 && temp_r31->unk16 != 10) { + temp_r31->unk16 = 10; + CharModelMotionShiftSet(temp_r31->unk02, arg0->motion[temp_r31->unk16], 0.0f, 8.0f, HU3D_MOTATTR_NONE); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_SHIFT_LOOP); + } + break; + } + lbl_1_bss_B8 = arg0; + temp_r31->unkEC = arg0->trans.x - temp_r31->unkE0; + temp_r31->unkF0 = arg0->trans.y - temp_r31->unkE4; + temp_r31->unkF4 = arg0->trans.z - temp_r31->unkE8; + temp_r31->unkE0 = arg0->trans.x; + temp_r31->unkE4 = arg0->trans.y; + temp_r31->unkE8 = arg0->trans.z; +} + +void fn_1_77C4(omObjData* arg0) { + arg0->func = NULL; +} + +void fn_1_77D0(void) { + s32 i; + + for (i = 0; i < 4; i++) { + fn_1_77C4(lbl_1_bss_BC[i]); + } +} + +s32 fn_1_781C(void) { + omObjData* temp_r29; + StructBssBCData* temp_r31; + s32 i; + + for (i = 0; i < 4; i++) { + temp_r29 = lbl_1_bss_BC[i]; + temp_r31 = temp_r29->data; + if (temp_r31->unk0A == 0) { + if (temp_r31->unk18 != 0 || fabs(fn_1_121DC(temp_r29->rot.y, 0.0f)) > 1.0) { + break; + } + } else { + if (temp_r31->unk18 < 5) { + break; + } + } + } + if (i >= 4) { + return 1; + } + return 0; +} + +s32 fn_1_791C(void) { + omObjData* temp_r30; + StructBssBCData* temp_r31; + s32 i; + + for (i = 0; i < 4; i++) { + temp_r30 = lbl_1_bss_BC[i]; + temp_r31 = temp_r30->data; + if (temp_r31->unk0A == 0) { + if (temp_r31->unk18 != 10 || fabs(fn_1_121DC(temp_r30->rot.y, 0.0f)) > 1.0 || CharModelMotionShiftIDGet(temp_r31->unk02) != -1) { + break; + } + } else { + if (temp_r31->unk18 != 10 || fabs(fn_1_121DC(temp_r30->rot.y, 0.0f)) > 1.0 || CharModelMotionShiftIDGet(temp_r31->unk02) != -1) { + break; + } + } + } + if (i >= 4) { + return 1; + } + return 0; +} + +void fn_1_7AA8(s32 arg0) { + omObjData* var_r29; + StructBssBCData* temp_r31; + s32 i; + + for (i = 0; i < 4; i++) { + var_r29 = lbl_1_bss_BC[i]; + temp_r31 = var_r29->data; + if (temp_r31->unk0A == 0) { + if (temp_r31->unk0A == arg0) { + temp_r31->unk18 = 11; + } else { + temp_r31->unk18 = 12; + } + } else { + if (temp_r31->unk0A == arg0) { + temp_r31->unk18 = 11; + } else { + temp_r31->unk18 = 12; + } + } + } +} + +s32 fn_1_7B48(Vec* arg0, Vec* arg1, Vec* arg2, float arg3) { + Vec spA8[4]; + Vec sp78[4]; + Vec sp48[4]; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + float var_f31; + float var_f28; + float var_f30; + float var_f27; + float var_f26; + omObjData* temp_r31; + StructBssBCData* temp_r28; + ModelData* sp8; + + if (lbl_1_bss_B8 == NULL) { + return 0; + } + temp_r31 = lbl_1_bss_B8; + temp_r28 = temp_r31->data; + sp8 = &Hu3DData[temp_r31->model[0]]; + *arg2 = *arg1; + switch (temp_r28->unk18) { + case 2: + case 4: + var_f31 = 150.0f; + var_f28 = 130.0f; + var_f30 = 60.000004f; + var_f27 = 130.0f; + break; + default: + var_f31 = 100.0f; + var_f28 = 130.0f; + var_f30 = 60.000004f; + var_f27 = 0.0f; + break; + } + sp78[0].x = temp_r31->trans.x - 0.5f * var_f31; + sp78[0].y = temp_r31->trans.y + var_f28; + sp78[0].z = temp_r31->trans.z + 0.5f * var_f30; + sp78[1].x = temp_r31->trans.x + 0.5f * var_f31; + sp78[1].y = temp_r31->trans.y + var_f28; + sp78[1].z = temp_r31->trans.z + 0.5f * var_f30; + sp78[2].x = temp_r31->trans.x + 0.5f * var_f31; + sp78[2].y = temp_r31->trans.y - var_f27; + sp78[2].z = temp_r31->trans.z + 0.5f * var_f30; + sp78[3].x = temp_r31->trans.x - 0.5f * var_f31; + sp78[3].y = temp_r31->trans.y - var_f27; + sp78[3].z = temp_r31->trans.z + 0.5f * var_f30; + spA8[0].x = temp_r31->trans.x + 0.5f * var_f31; + spA8[0].y = temp_r31->trans.y + var_f28; + spA8[0].z = temp_r31->trans.z - 0.5f * var_f30; + spA8[1].x = temp_r31->trans.x - 0.5f * var_f31; + spA8[1].y = temp_r31->trans.y + var_f28; + spA8[1].z = temp_r31->trans.z - 0.5f * var_f30; + spA8[2].x = temp_r31->trans.x - 0.5f * var_f31; + spA8[2].y = temp_r31->trans.y - var_f27; + spA8[2].z = temp_r31->trans.z - 0.5f * var_f30; + spA8[3].x = temp_r31->trans.x + 0.5f * var_f31; + spA8[3].y = temp_r31->trans.y - var_f27; + spA8[3].z = temp_r31->trans.z - 0.5f * var_f30; + PSVECNormalize(arg1, &spC); + PSVECScale(&spC, &spC, arg3); + PSVECAdd(arg0, arg1, &sp30); + PSVECAdd(arg0, arg1, &sp24); + PSVECAdd(arg0, &spC, &sp3C); + PSVECAdd(&sp30, &spC, &sp30); + sp48[0] = sp78[0]; + sp48[1] = sp78[1]; + sp48[2] = sp78[2]; + sp48[3] = sp78[3]; + if (fn_1_137C4(sp48, arg0, arg1, &sp18, arg3, 4) != 0) { + arg2->x *= 0.5f; + arg2->z *= -0.5f; + fn_1_82C8(15, 1, 0); + return 1; + } + if (sp24.x >= sp78[0].x - arg3 && sp24.x <= sp78[2].x + arg3 + && sp24.y <= sp78[0].y + arg3 && sp24.y >= sp78[2].y - arg3 + && sp24.z <= sp78[0].z + arg3 && sp24.z >= spA8[3].z - arg3) + { + if (temp_r28->unkEC > 0.0f && sp24.x > temp_r31->trans.x) { + spC = *arg1; + spC.y = 0.0f; + var_f26 = PSVECMag(&spC); + arg2->x = 0.5f * var_f26 + temp_r28->unkEC; + arg2->z = 0.0f; + } else if (temp_r28->unkEC < 0.0f && sp24.x < temp_r31->trans.x) { + spC = *arg1; + spC.y = 0.0f; + var_f26 = PSVECMag(&spC); + arg2->x = -(0.5f * var_f26) + temp_r28->unkEC; + arg2->z = 0.0f; + } else { + if (fabs(arg1->x) > fabs(arg1->z)) { + arg2->x *= -1.0f; + } else { + arg2->z *= -1.0f; + } + arg2->x *= 0.5f; + arg2->z *= 0.5f; + } + fn_1_82C8(15, 1, 0); + return 1; + } + return 0; +} + +void fn_1_82C8(s32 arg0, s32 arg1, s32 arg2) { + omObjData* var_r31; + StructBssBCData* var_r30; + + if (lbl_1_bss_B8 != NULL) { + var_r31 = lbl_1_bss_B8; + var_r30 = var_r31->data; + omVibrate(var_r30->unk00, 12, 6, 6); + HuAudFXPlay(0x61A); + } +} + +s32 lbl_1_data_668[] = { 3, 4, 5, 6 }; +float lbl_1_data_678[] = { 0.6f, 0.65f, 0.7f, 0.7f }; + +s32 lbl_1_data_688[][2] = { + { 30, 60 }, { 24, 48 }, { 12, 24 }, { 0, 12 } +}; + +s32 lbl_1_data_6A8[][2] = { + { 36, 84 }, { 36, 78 }, { 33, 72 }, { 33, 66 } +}; + +void fn_1_8338(omObjData* arg0) { + float var_f31; + float temp_f30; + StructBssBCData* temp_r31; + ModelData* sp8; + s32 var_r29; + + temp_r31 = arg0->data; + sp8 = &Hu3DData[arg0->model[0]]; + var_r29 = temp_r31->unk18; + if (temp_r31->unkA0 == 0) { + temp_r31->unkA0 = 1; + temp_r31->unk70 = 0; + var_r29 = 5; + } + switch (var_r29) { + case 5: + if (temp_r31->unk70 != 0) { + break; + } + if (temp_r31->unk9C > lbl_1_bss_108 && lbl_1_data_668[temp_r31->unk08] > temp_r31->unk98 && lbl_1_bss_B8 != NULL) { + temp_r31->unkA4 = 1; + temp_r31->unkA8 = (1.0f / 127) * frand7(); + if (lbl_1_bss_B8->trans.x >= 270.0f) { + temp_r31->unk88 = -(0.4f + 0.3f * temp_r31->unkA8); + } else if (lbl_1_bss_B8->trans.x <= -270.0f) { + temp_r31->unk88 = 0.4f + 0.3f * temp_r31->unkA8; + } else if (frand() & 1) { + temp_r31->unk88 = -(0.3f + 0.1f * temp_r31->unkA8); + } else { + temp_r31->unk88 = 0.3f + 0.1f * temp_r31->unkA8; + } + var_f31 = lbl_1_data_6A8[3][0]; + temp_f30 = lbl_1_data_6A8[3][1]; + temp_r31->unk70 = var_f31 + (1.0f / 127) * frand7() * (temp_f30 - var_f31); + var_f31 = lbl_1_data_688[temp_r31->unk08][0]; + temp_f30 = lbl_1_data_688[temp_r31->unk08][1]; + temp_r31->unk74 = var_f31 + (1.0f / 127) * frand7() * (temp_f30 - var_f31); + temp_r31->unk98++; + } else { + if (frand() & 1) { + temp_r31->unk88 = (1.0f / 127) * frand7() * lbl_1_data_678[temp_r31->unk08]; + } else { + temp_r31->unk88 = -((1.0f / 127) * frand7()) * lbl_1_data_678[temp_r31->unk08]; + } + var_f31 = lbl_1_data_6A8[temp_r31->unk08][0]; + temp_f30 = lbl_1_data_6A8[temp_r31->unk08][1]; + temp_r31->unk70 = var_f31 + (1.0f / 127) * frand7() * (temp_f30 - var_f31); + var_f31 = lbl_1_data_688[temp_r31->unk08][0]; + temp_f30 = lbl_1_data_688[temp_r31->unk08][1]; + temp_r31->unk74 = var_f31 + (1.0f / 127) * frand7() * (temp_f30 - var_f31); + } + temp_r31->unk6C = 0; + break; + case 6: + if (++temp_r31->unk6C >= temp_r31->unk74) { + temp_r31->unk12 = 80.0f * temp_r31->unk88; + temp_r31->unk10 |= PAD_BUTTON_A; + temp_r31->unk0E |= PAD_BUTTON_A; + temp_r31->unk6C = 0; + return; + } + var_f31 = sind(180.0f * ((temp_r31->unk74 - temp_r31->unk6C) / 60.0f)); + if (temp_r31->unk74 & 1) { + var_f31 *= -1.0f; + } + temp_r31->unk12 = 80.0f * (temp_r31->unk88 + var_f31); + return; + case 7: + if (temp_r31->unkA4 != 0) { + if (lbl_1_bss_B8->trans.x >= 148.5f) { + temp_r31->unk88 = -(0.4f + 0.3f * temp_r31->unkA8); + } else if (lbl_1_bss_B8->trans.x <= -148.5f) { + temp_r31->unk88 = 0.4f + 0.3f * temp_r31->unkA8; + } else if (lbl_1_bss_B8->trans.x > 0.0f) { + temp_r31->unk88 = -(0.5f + 0.2f * temp_r31->unkA8); + } else { + temp_r31->unk88 = 0.5f + 0.2f * temp_r31->unkA8; + } + } + temp_r31->unk12 = 80.0f * temp_r31->unk88; + if (++temp_r31->unk6C > temp_r31->unk70) { + temp_r31->unk88 = 0.0f; + temp_r31->unk6C = 0; + temp_r31->unk70 = 0; + temp_r31->unk74 = 0; + temp_r31->unkA4 = 0; + } else { + temp_r31->unk0E |= PAD_BUTTON_A; + } + break; + default: + temp_r31->unk6C = 0; + break; + } +} + +s32 lbl_1_data_6C8[] = { 60, 45, 30, 15 }; + +float lbl_1_data_6D8[][2] = { + { 200.0f, 150.0f }, { 125.0f, 100.0f }, { 0.0f, 0.0f }, { 0.0f, 0.0f } +}; + +s32 lbl_1_data_6F8[][2] = { + { 48, 150 }, { 39, 114 }, { 33, 90 }, { 21, 42 } +}; + +s32 lbl_1_data_718[][2] = { + { 27, 39 }, { 15, 27 }, { 9, 15 }, { 0, 3 } +}; + +void fn_1_8CB4(omObjData* arg0) { + Vec spC; + float temp_f29; + float temp_f28; + float var_f30; + float var_f31; + float var_f26; + float temp_f27; + StructBssBCData* temp_r31; + ModelData* sp8; + StructBssA8Data* temp_r30; + s32 var_r28; + s32 var_r24; + s32 i, j; + s32 var_r25; + + var_r25 = 0; + temp_r31 = arg0->data; + sp8 = &Hu3DData[arg0->model[0]]; + if (temp_r31->unk64 != -1) { + temp_r30 = fn_1_B13C(temp_r31->unk64); + if (temp_r30 != NULL) { + if (temp_r30->unk0C != 3 || temp_r30->unk08 != 0 || temp_r30->unk38.z <= -900.0f) { + var_r25 = 1; + } + } else { + var_r25 = 1; + } + } else { + var_r25 = 1; + } + if (var_r25 != 0) { + temp_r31->unk64 = -1; + temp_r31->unk6C = 0; + temp_f29 = lbl_1_data_6F8[temp_r31->unk08][0]; + temp_f28 = lbl_1_data_6F8[temp_r31->unk08][1]; + temp_r31->unk90 = temp_f29 + (1.0f / 127) * frand7() * (temp_f28 - temp_f29); + temp_f29 = lbl_1_data_718[temp_r31->unk08][0]; + temp_f28 = lbl_1_data_718[temp_r31->unk08][1]; + temp_r31->unk94 = temp_f29 + (1.0f / 127) * frand7() * (temp_f28 - temp_f29); + temp_r31->unkD4.x = lbl_1_data_6D8[temp_r31->unk08][0] * (0.5f - (1.0f / 127) * frand7()); + temp_r31->unkD4.y = lbl_1_data_6D8[temp_r31->unk08][1] * (0.5f - (1.0f / 127) * frand7()); + if (lbl_1_bss_104 >= 5) { + temp_r31->unkD4.x *= 1.5f; + } + var_r24 = fn_1_B304(lbl_1_bss_4); + if (var_r24 != 0) { + for (i = 0; i < var_r24; i++) { + temp_r30 = lbl_1_bss_4[i]; + if (temp_r30 == NULL || temp_r30->unk06 == 0 + || 0.0f == temp_r30->unk50.z + || fabs(temp_r30->unk38.x) >= 325.0 + || temp_r30->unk14 < temp_r31->unk94) + { + continue; + } + var_r28 = (var_f26 - temp_r30->unk38.z) / temp_r30->unk50.z; + if (var_r28 > 300.0f) { + continue; + } + spC = temp_r30->unk50; + var_f30 = temp_r30->unk38.x; + var_f31 = temp_r30->unk38.y; + for (j = 0; j < var_r28; j++) { + var_f30 += spC.x; + var_f31 += spC.y; + spC.x *= temp_r30->unk8C; + spC.z *= temp_r30->unk8C; + spC.y -= 0.32666668f; + if (var_f31 < 20.0) { + var_f31 = 0.32666668f; + spC.y *= temp_r30->unk90; + } + } + var_f30 += temp_r31->unkD4.x; + var_f31 += temp_r31->unkD4.y; + if (temp_r31->unk08 <= 2 || !(fabs(var_f30) >= 225.0 || var_f31 >= 200.0f)) { + temp_r31->unk64 = temp_r30->unk02; + break; + } + } + } + } + if (temp_r31->unk64 != -1 && (temp_r30 = fn_1_B13C(temp_r31->unk64)) != NULL) { + if (temp_r30->unk38.z > 60.000004f + arg0->trans.z) { + var_f26 = 60.000004f + arg0->trans.z; + var_r28 = (var_f26 - temp_r30->unk38.z) / temp_r30->unk50.z; + if (var_r28 > 300.0f) { + temp_r31->unk64 = -1; + return; + } + spC = temp_r30->unk50; + var_f30 = temp_r30->unk38.x; + var_f31 = temp_r30->unk38.y; + for (j = 0; j < var_r28; j++) { + var_f30 += spC.x; + var_f31 += spC.y; + spC.x *= temp_r30->unk8C; + spC.z *= temp_r30->unk8C; + spC.y -= 0.32666668f; + if (var_f31 < 20.0) { + var_f31 = 0.32666668f; + spC.y *= temp_r30->unk90; + } + } + var_r28 += temp_r31->unk90; + var_f30 += temp_r31->unkD4.x; + var_f31 += temp_r31->unkD4.y; + } else { + var_r28 = 0; + var_f30 = temp_r30->unk38.x; + var_f31 = temp_r30->unk38.y; + } + if (arg0->trans.x - 25.0f > var_f30) { + temp_r31->unk12 = -64; + } + if (arg0->trans.x + 25.0f < var_f30) { + temp_r31->unk12 = 64; + } + temp_f27 = fabs(var_f30 - arg0->trans.x); + if (var_r28 < 10 && temp_f27 > 120.00001f) { + temp_r31->unk10 |= 0x100; + } else if (var_r28 < 5 && temp_f27 < 25.0f && var_f31 > 100.0f) { + temp_r31->unk10 |= 0x100; + } else if (var_r28 > 20 && temp_f27 < 50.0) { + temp_r31->unk10 /= 2; + } + if (++temp_r31->unk6C > lbl_1_data_6C8[temp_r31->unk08]) { + temp_r31->unk64 = -1; + } + } +} + +void fn_1_95C4(void) { + lbl_1_bss_A8 = omAddObjEx(lbl_1_bss_120, 0x50, 0, 0, -1, fn_1_9614); +} + +s32 lbl_1_data_738[] = { + DATA_MAKE_NUM(DATADIR_M423, 4), + DATA_MAKE_NUM(DATADIR_M423, 5), + DATA_MAKE_NUM(DATADIR_M423, 6), + DATA_MAKE_NUM(DATADIR_M423, 7), + DATA_MAKE_NUM(DATADIR_M423, 8), + DATA_MAKE_NUM(DATADIR_M423, 9), + DATA_MAKE_NUM(DATADIR_M423, 10), + DATA_MAKE_NUM(DATADIR_M423, 11) +}; + +void fn_1_9614(omObjData* arg0) { + StructBssA8Data* var_r28; + StructBssA8Data* var_r31; + ModelData* var_r27; + s32 i; + + if (lbl_1_bss_EC[0] == -1) { + return; + } + var_r31 = var_r28 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 15 * sizeof(*var_r31), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, 15 * sizeof(*var_r31)); + for (i = 0; i < 15; i++, var_r31++) { + var_r31->unk04 = i % 3; + var_r31->unk02 = i; + var_r31->unk06 = 0; + var_r31->unk0A = 0; + var_r31->unk08 = 0; + var_r31->unk0C = 0; + var_r31->unk0E = 0; + var_r31->unk10 = 0; + var_r31->unk12 = 0; + var_r31->unk14 = 0; + var_r31->unk18 = 0; + var_r31->unk1C = 0; + var_r31->unk38.x = var_r31->unk38.y = var_r31->unk38.z = 0.0f; + var_r31->unk44 = var_r31->unk48 = var_r31->unk4C = 0.0f; + var_r31->unk50.x = var_r31->unk50.y = var_r31->unk50.z = 0.0f; + var_r31->unk74 = var_r31->unk38; + var_r31->unk80 = var_r31->unk50; + var_r31->unk8C = 0.995f; + var_r31->unk90 = -0.5f; + var_r31->unk68.x = var_r31->unk68.y = var_r31->unk68.z = 0.0f; + if (i < 3) { + var_r31->unk00 = Hu3DModelCreateFile(lbl_1_data_738[lbl_1_bss_EC[var_r31->unk04]]); + } else { + var_r31->unk00 = Hu3DModelLink(var_r28[var_r31->unk04].unk00); + } + Hu3DModelScaleSet(var_r31->unk00, 0.8f, 0.8f, 0.8f); + Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); + Hu3DModelCameraSet(var_r31->unk00, 5); + Hu3DModelShadowSet(var_r31->unk00); + var_r27 = &Hu3DData[var_r31->unk00]; + PSMTXIdentity(var_r27->unk_F0); + } + fn_1_B430(); + arg0->func = fn_1_98A0; +} + +void fn_1_98A0(omObjData* arg0) { + Mtx spC4; + Vec spB8; + Vec spAC; + Vec spA0; + Vec sp94; + Vec sp88; + float temp_f30; + float var_f25; + float var_f31; + float var_f22; + StructBssA8Data* var_r31; + StructBssA8Data* var_r30; + ModelData* temp_r27; + s32 i, j; + s32 var_r25; + s32 var_r23; + s32 var_r28; + + var_r31 = arg0->data; + for (i = 0; i < 15; i++, var_r31++) { + if (var_r31->unk06 == 0) { + continue; + } + temp_r27 = &Hu3DData[var_r31->unk00]; + var_r25 = 0; + switch (var_r31->unk0C) { + case 0: + break; + case 1: + temp_f30 = var_r31->unk14 / 60.0f; + var_r31->unk14++; + if (temp_f30 > 1.0f) { + var_f31 = 1.0f; + } else { + var_f31 = temp_f30; + } + var_r31->unk38.x = var_r31->unk20.x + var_f31 * (var_r31->unk2C.x - var_r31->unk20.x); + var_r31->unk38.z = var_r31->unk20.z + var_f31 * (var_r31->unk2C.z - var_r31->unk20.z); + if (temp_f30 < 0.6f) { + var_f31 = temp_f30 / 0.6f; + var_f25 = 100.0f; + } else if (temp_f30 < 1.0f) { + var_f31 = (temp_f30 - 0.6f) / 0.4f; + var_f25 = 50.0f; + } else { + var_f31 = (temp_f30 - 1.0f) / 0.25f; + var_f25 = 10.0f; + } + var_r31->unk38.y = 20.0 + var_f25 * sind(180.0f * var_f31); + if (var_r31->unk14 >= 75.0f) { + var_r31->unk0C = 2; + var_r31->unk14 = 0; + var_r31->unk38.y = 20.0f; + var_r31->unk50.y = 0.0f; + } + if (var_r31->unk14 < 73.2f) { + spAC.x = var_r31->unk50.z; + spAC.z = -var_r31->unk50.x; + spAC.y = 0.0f; + var_f31 = 0.05 * PSVECMag(&spAC); + if (var_f31 > 0.00001f) { + PSMTXRotAxisRad(spC4, &spAC, var_f31); + PSMTXConcat(spC4, temp_r27->unk_F0, temp_r27->unk_F0); + } + } + Hu3DModelPosSet(var_r31->unk00, var_r31->unk38.x, var_r31->unk38.y, var_r31->unk38.z); + Hu3DModelRotSet(var_r31->unk00, var_r31->unk44, var_r31->unk48, var_r31->unk4C); + break; + case 2: + Hu3DModelPosSet(var_r31->unk00, var_r31->unk38.x, var_r31->unk38.y, var_r31->unk38.z); + Hu3DModelRotSet(var_r31->unk00, var_r31->unk44, var_r31->unk48, var_r31->unk4C); + break; + case 3: + var_r31->unk74 = var_r31->unk38; + var_r31->unk80 = var_r31->unk50; + var_r23 = 0; + if (var_r28 = fn_1_C498(&var_r31->unk38, &var_r31->unk50, &spB8, &sp88, 20.0f, 3)) { + if (var_r28 & 0x8000) { + var_r25 = 1; + } + if (var_r28 & 0x2000) { + } + if ((var_r28 & 0x4000) && var_r31->unk12 == 0 && var_r31->unk08 == 0) { + var_f31 = VECMagXZ(&var_r31->unk50); + sp94.x = 0.0f; + sp94.y = 0.0f; + sp94.z = (1.0f / 127) * frand7() * 360.0f; + fn_1_E334(spB8, sp94, 0.5f); + HuAudFXPlay(0x620); + var_r31->unk12 = 1; + } + var_r31->unk38 = spB8; + var_r31->unk50 = sp88; + var_r31->unk8C = 0.975f; + var_r31->unk90 = -0.5f; + } else { + if (fabs(var_r31->unk38.x) > 1000.0) { + Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); + var_r31->unk0C = 0; + var_r31->unk06 = 0; + var_r31->unk14 = 0; + } else { + var_r31->unk38.x += var_r31->unk50.x; + var_r31->unk38.y += var_r31->unk50.y; + var_r31->unk38.z += var_r31->unk50.z; + } + } + if (var_r31->unk08 == 0) { + for (j = 0, var_r30 = arg0->data; j < 15; j++, var_r30++) { + if (i == j || var_r30->unk06 == 0 || var_r30->unk08 != 0 || var_r30->unk0C != 3) { + continue; + } + PSVECSubtract(&var_r31->unk38, &var_r30->unk38, &spAC); + var_f31 = PSVECMag(&spAC); + if (var_f31 < 40.0) { + spA0 = var_r31->unk38; + if (var_f31 != 0.0f) { + temp_f30 = 40.0 - var_f31; + PSVECNormalize(&spAC, &spAC); + PSVECScale(&spAC, &spAC, temp_f30); + PSVECAdd(&var_r31->unk38, &spAC, &var_r31->unk38); + } else { + var_r31->unk38.x += 40.0; + } + temp_f30 = PSVECMag(&var_r31->unk50); + var_f22 = PSVECMag(&var_r30->unk50); + var_f31 = 0.5f * (temp_f30 + var_f22); + if (PSVECMag(&var_r31->unk50) == 0.0f) { + var_r31->unk50.x = 1.0f; + } + PSVECNormalize(&var_r31->unk50, &var_r31->unk50); + PSVECSubtract(&var_r31->unk38, &var_r30->unk38, &spAC); + if (PSVECMag(&spAC) == 0.0f) { + spAC.x = 1.0f; + } + PSVECNormalize(&spAC, &spAC); + PSVECAdd(&var_r31->unk50, &spAC, &var_r31->unk50); + if (PSVECMag(&var_r31->unk50) == 0.0f) { + var_r31->unk50.x = 1.0f; + } + PSVECNormalize(&var_r31->unk50, &var_r31->unk50); + PSVECScale(&var_r31->unk50, &var_r31->unk50, var_f31); + if (PSVECMag(&var_r30->unk50) == 0.0f) { + var_r30->unk50.x = -1.0f; + } + PSVECNormalize(&var_r30->unk50, &var_r30->unk50); + PSVECSubtract(&var_r30->unk38, &var_r31->unk38, &spAC); + if (PSVECMag(&spAC) == 0.0f) { + spAC.x = 1.0f; + } + PSVECNormalize(&spAC, &spAC); + PSVECAdd(&var_r30->unk50, &spAC, &var_r30->unk50); + if (PSVECMag(&var_r30->unk50) == 0.0f) { + var_r30->unk50.x = -1.0f; + } + PSVECNormalize(&var_r30->unk50, &var_r30->unk50); + PSVECScale(&var_r30->unk50, &var_r30->unk50, var_f31); + if (var_r28 = fn_1_C498(&spA0, &spAC, &spB8, &sp88, 20.0f, 1)) { + if (var_r28 & 0x8000) { + var_r25 = 1; + } + var_r31->unk38 = spB8; + var_r31->unk50 = sp88; + } + } + } + } + if (var_r31->unk38.y < 20.0) { + var_r31->unk38.y = 20.0f; + var_r31->unk50.y *= var_r31->unk90; + var_r23 = 1; + if (var_r31->unk38.x >= -225.0f && var_r31->unk38.x <= 225.0f + && var_r31->unk38.z >= -1100.0f && var_r31->unk38.z <= -900.0f) + { + var_r25 = 1; + } + if (fabs(var_r31->unk50.y) < 0.05f) { + var_r31->unk50.y = 0.0f; + } + } + if (var_r31->unk08 == 0) { + PSVECSubtract(&var_r31->unk38, &var_r31->unk74, &spAC); + if (fn_1_7B48(&var_r31->unk38, &var_r31->unk50, &sp88, 20.0f) != 0) { + var_r31->unk50 = sp88; + var_r31->unk08 = 1; + var_r31->unk8C = 0.975f; + var_r31->unk90 = -0.5f; + } + } + if (var_r31->unk50.z > 0.0f) { + var_r31->unk08 = 1; + } + var_r31->unk50.y -= 0.32666668f; + if (var_r23 == 0) { + var_r31->unk50.x *= var_r31->unk8C; + var_r31->unk50.z *= var_r31->unk8C; + } else { + var_r31->unk50.x *= 0.995f * var_r31->unk8C; + var_r31->unk50.z *= 0.995f * var_r31->unk8C; + } + if (var_r25 != 0 && var_r31->unk0A == 0 && var_r31->unk08 == 0) { + fn_1_AEE8(i); + } + if (var_r31->unk08 != 0) { + var_r31->unk18++; + if (var_r31->unk18 & 1) { + Hu3DModelAttrReset(var_r31->unk00, HU3D_ATTR_DISPOFF); + } else { + Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); + } + if (var_r31->unk18 >= 120.0f) { + Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); + var_r31->unk0C = 0; + var_r31->unk06 = 0; + var_r31->unk14 = 0; + var_r31->unk18 = 0; + } + } + temp_f30 = VECMagXZ(&var_r31->unk50); + if (fabs(temp_f30) < 0.1f && var_r31->unk38.y <= 20.0 && var_r31->unk08 == 0) { + var_r31->unk0C = 4; + var_r31->unk14 = 0; + var_r31->unk18 = 0; + } + if (fabs(var_r31->unk38.x) > 2000.0 || fabs(var_r31->unk38.y) > 2000.0 || fabs(var_r31->unk38.z) > 2000.0) { + var_r31->unk0C = 4; + var_r31->unk14 = 0; + var_r31->unk18 = 120; + } + var_r31->unk14++; + spAC.x = var_r31->unk50.z; + spAC.z = -var_r31->unk50.x; + spAC.y = 0.0f; + var_f31 = 0.05 * PSVECMag(&spAC); + if (var_f31 > 0.00001f) { + PSMTXRotAxisRad(spC4, &spAC, var_f31); + PSMTXConcat(spC4, temp_r27->unk_F0, temp_r27->unk_F0); + } + Hu3DModelPosSet(var_r31->unk00, var_r31->unk38.x, var_r31->unk38.y, var_r31->unk38.z); + break; + case 4: + var_r31->unk18++; + if (var_r31->unk18 & 1) { + Hu3DModelAttrReset(var_r31->unk00, HU3D_ATTR_DISPOFF); + } else { + Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); + } + if (var_r31->unk18 >= 120.0f) { + Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); + var_r31->unk0C = 0; + var_r31->unk06 = 0; + var_r31->unk14 = 0; + var_r31->unk18 = 0; + } + break; + } + } +} + +void fn_1_A9A0(omObjData* arg0) { + arg0->func = NULL; +} + +void fn_1_A9AC(void) { + fn_1_A9A0(lbl_1_bss_A8); +} + +s32 fn_1_A9D4(s32 arg0, Vec arg1, Vec arg2) { + StructBssA8Data* var_r31; + ModelData* temp_r26; + s32 var_r27; + s32 i; + + if (lbl_1_bss_A8 == NULL) { + return -1; + } + var_r31 = lbl_1_bss_A8->data; + for (i = 0, var_r27 = -1; i < 3; i++) { + if (arg0 == lbl_1_bss_EC[i]) { + var_r27 = i; + } + } + if (var_r27 == -1) { + return -1; + } + for (i = 0; i < 15; i++, var_r31++) { + if (var_r31->unk04 == var_r27 && var_r31->unk06 == 0) { + break; + } + } + if (i >= 15) { + return -1; + } + temp_r26 = &Hu3DData[var_r31->unk00]; + var_r31->unk06 = 1; + var_r31->unk0A = 0; + var_r31->unk08 = 0; + var_r31->unk10 = 0; + var_r31->unk12 = 0; + var_r31->unk0C = 1; + var_r31->unk14 = 0; + var_r31->unk18 = 0; + var_r31->unk20 = arg1; + var_r31->unk2C = arg2; + var_r31->unk38 = arg1; + var_r31->unk44 = var_r31->unk48 = var_r31->unk4C = 0.0f; + var_r31->unk50.x = 0.016666668f * (arg2.x - arg1.x); + var_r31->unk50.z = 0.016666668f * (arg2.z - arg1.z); + var_r31->unk50.y = 5.0f; + Hu3DModelPosSet(var_r31->unk00, var_r31->unk38.x, var_r31->unk38.y, var_r31->unk38.z); + Hu3DModelRotSet(var_r31->unk00, var_r31->unk44, var_r31->unk48, var_r31->unk4C); + Hu3DModelAttrReset(var_r31->unk00, HU3D_ATTR_DISPOFF); + PSMTXIdentity(temp_r26->unk_F0); + return i; +} + +void fn_1_AC0C(s32 arg0, Vec arg1) { + StructBssA8Data* var_r31; + + if (lbl_1_bss_A8 != NULL) { + var_r31 = lbl_1_bss_A8->data; + if (arg0 < 0 || arg0 >= 15) { + return; + } + var_r31[arg0].unk38 = arg1; + } +} + +void fn_1_AC80(s32 arg0, Vec arg1) { + Vec sp14; + Vec sp8; + float var_f31; + StructBssA8Data* var_r28; + StructBssA8Data* temp_r31; + + if (lbl_1_bss_A8 == NULL) { + return; + } + var_r28 = lbl_1_bss_A8->data; + if (arg0 < 0 || arg0 >= 15) { + return; + } + temp_r31 = &var_r28[arg0]; + temp_r31->unk0C = 3; + temp_r31->unk14 = 0; + temp_r31->unk18 = 0; + temp_r31->unk50 = arg1; + temp_r31->unk74 = temp_r31->unk38; + temp_r31->unk8C = 0.995f; + temp_r31->unk90 = -0.5f; + if (temp_r31->unk50.z < 0.0f) { + sp14 = temp_r31->unk38; + var_f31 = -800.0f - sp14.z; + temp_r31->unk1C = fabs(var_f31 / temp_r31->unk50.z); + PSVECScale(&arg1, &sp8, temp_r31->unk1C); + PSVECAdd(&sp14, &sp8, &temp_r31->unk68); + } else { + temp_r31->unk1C = 1000; + } +} + +s32 fn_1_AE64(s32 arg0) { + StructBssA8Data* temp_r31; + + if (lbl_1_bss_A8 == NULL) { + return -1; + } + temp_r31 = lbl_1_bss_A8->data; + if (arg0 < 0 || arg0 >= 15) { + return -1; + } + if (temp_r31[arg0].unk06 == 0) { + return -1; + } + return temp_r31[arg0].unk0C; +} + +void fn_1_AEE8(s32 arg0) { + StructBssA8Data* var_r26; + StructBssA8Data* temp_r31; + + if (lbl_1_bss_A8 == NULL) { + return; + } + var_r26 = lbl_1_bss_A8->data; + if (arg0 < 0 || arg0 >= 15) { + return; + } + temp_r31 = &var_r26[arg0]; + temp_r31->unk0A = 1; + temp_r31->unk08 = 1; + temp_r31->unk14 = 0; + fn_1_F574(temp_r31->unk38, 0.75f, lbl_1_bss_EC[temp_r31->unk04]); + HuAudFXPlay(9); + fn_1_3A8C(); + lbl_1_bss_DC[temp_r31->unk04]++; + lbl_1_bss_104--; +} + +StructBssA8Data* fn_1_B13C(s32 arg0) { + StructBssA8Data* temp_r31; + StructBssA8Data* sp8; + + if (lbl_1_bss_A8 == NULL) { + return NULL; + } + temp_r31 = lbl_1_bss_A8->data; + sp8 = temp_r31; + if (arg0 < 0 || arg0 >= 15) { + return NULL; + } + return &temp_r31[arg0]; +} + +GXColor lbl_1_data_758 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +void fn_1_B1A4(void) { + Vec sp2C; + StructBssA8Data* sp10; + StructBssA8Data* var_r31; + s32 spC; + s32 i; + + if (lbl_1_bss_A8 == NULL) { + return; + } + var_r31 = sp10 = lbl_1_bss_A8->data; + for (i = 0, spC = 0; i < 15; i++, var_r31++) { + if (var_r31->unk06 == 0) { + continue; + } + sp2C.x = sp2C.y = sp2C.z = 0.0f; + fn_1_DC24(var_r31->unk38, sp2C, 100.0f, 0.0f, 1.0f, lbl_1_data_758); + Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); + var_r31->unk0C = 0; + var_r31->unk06 = 0; + var_r31->unk14 = 0; + var_r31->unk18 = 0; + } +} + +s32 fn_1_B304(StructBssA8Data** arg0) { + s32 var_r29; + s32 i; + StructBssA8Data* var_r30; + StructBssA8Data* var_r28; + StructBssA8Data* var_r27; + + if (lbl_1_bss_A8 == NULL) { + return; + } + var_r30 = lbl_1_bss_A8->data; + var_r28 = var_r30; + for (i = 0, var_r29 = 0; i < 15; i++, var_r30++) { + if (var_r30->unk06 == 0 || var_r30->unk0C != 3 || var_r30->unk08 != 0 || var_r30->unk38.z <= -900.0f) { + continue; + } + arg0[var_r29] = var_r30; + var_r29++; + } + var_r28 = var_r30; + for (i = 0; i < var_r29 - 1; i++) { + if (arg0[i]->unk38.z > arg0[i + 1]->unk38.z) { + var_r27 = arg0[i]; + arg0[i] = arg0[i + 1]; + arg0[i + 1] = var_r27; + } + } + return var_r29; +} + +void fn_1_B430(void) { + Vec sp2C[8]; + Vec sp20; + Vec sp14; + Vec sp8; + StructBss94Data* var_r31; + s32 i; + + var_r31 = lbl_1_bss_94 = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(*lbl_1_bss_94), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, 16 * sizeof(*var_r31)); + for (i = 0; i < 16; i++, var_r31++) { + var_r31->unk02 = 0; + } + sp20.x = sp20.y = 0.0f; + sp20.z = -1400.0f; + fn_1_BCD8(&sp20, NULL, NULL, 0.8f, 0, 0x2003); + sp2C[0].x = 1000.0f; + sp2C[0].y = 1000.0f; + sp2C[0].z = -200.0f; + sp2C[1].x = -1000.0f; + sp2C[1].y = 1000.0f; + sp2C[1].z = -200.0f; + sp2C[2].x = -1000.0f; + sp2C[2].y = 0.0f; + sp2C[2].z = -200.0f; + sp2C[3].x = 1000.0f; + sp2C[3].y = 0.0f; + sp2C[3].z = -200.0f; + fn_1_BCD8(sp2C, NULL, NULL, 1.0f, 0, 6); + sp20.x = -650.0f; + sp20.y = 75.0f; + sp20.z = -1300.0f; + sp14.x = 370.0f; + sp14.y = 1095.0f; + sp14.z = 120.0f; + fn_1_BCD8(&sp20, &sp14, NULL, 0.8f, 25, 0x2004); + sp20.x = 650.0f; + sp20.y = 75.0f; + sp20.z = -1300.0f; + sp14.x = 370.0f; + sp14.y = 1095.0f; + sp14.z = 120.0f; + fn_1_BCD8(&sp20, &sp14, NULL, 0.8f, 21, 0x2004); + sp20.x = 0.0f; + sp20.y = 100.0f; + sp20.z = -1070.0f; + sp14.x = 245.0f; + sp14.y = 130.0f; + sp14.z = 170.0f; + fn_1_BCD8(&sp20, &sp14, NULL, 1.0f, 45, 4); + sp20.x = -235.0f; + sp20.y = 0.0f; + sp20.z = -900.0f; + sp14.x = -235.0f; + sp14.y = 200.0f; + sp14.z = -900.0f; + sp8.x = 30.000002f; + sp8.y = sp8.z = 0.0f; + fn_1_BCD8(&sp20, &sp14, &sp8, 0.5f, 0, 0x4007); + sp20.x = 235.0f; + sp20.y = 0.0f; + sp20.z = -900.0f; + sp14.x = 235.0f; + sp14.y = 200.0f; + sp14.z = -900.0f; + sp8.x = 30.000002f; + sp8.y = sp8.z = 0.0f; + fn_1_BCD8(&sp20, &sp14, &sp8, 0.5f, 0, 0x4007); + sp20.x = 0.0f; + sp20.y = 200.0f; + sp20.z = -900.0f; + sp14.x = 245.0f; + sp14.y = 30.0f; + sp14.z = 30.0f; + fn_1_BCD8(&sp20, &sp14, NULL, 0.5f, 29, 0x4004); + sp2C[0].x = -225.0f; + sp2C[0].y = 200.0f; + sp2C[0].z = -900.0f; + sp2C[1].x = -225.0f; + sp2C[1].y = 200.0f; + sp2C[1].z = -1150.0f; + sp2C[2].x = -225.0f; + sp2C[2].y = 0.0f; + sp2C[2].z = -1150.0f; + sp2C[3].x = -225.0f; + sp2C[3].y = 0.0f; + sp2C[3].z = -900.0f; + fn_1_BCD8(sp2C, NULL, NULL, 0.5f, 0, 0x8006); + sp2C[0].x = 225.0f; + sp2C[0].y = 200.0f; + sp2C[0].z = -1150.0f; + sp2C[1].x = 225.0f; + sp2C[1].y = 200.0f; + sp2C[1].z = -900.0f; + sp2C[2].x = 225.0f; + sp2C[2].y = 0.0f; + sp2C[2].z = -900.0f; + sp2C[3].x = 225.0f; + sp2C[3].y = 0.0f; + sp2C[3].z = -1150.0f; + fn_1_BCD8(sp2C, NULL, NULL, 0.5f, 0, 0x8006); + sp2C[0].x = -225.0f; + sp2C[0].y = 200.0f; + sp2C[0].z = -1150.0f; + sp2C[1].x = 225.0f; + sp2C[1].y = 200.0f; + sp2C[1].z = -1150.0f; + sp2C[2].x = 225.0f; + sp2C[2].y = 0.0f; + sp2C[2].z = -1150.0f; + sp2C[3].x = -225.0f; + sp2C[3].y = 0.0f; + sp2C[3].z = -1150.0f; + fn_1_BCD8(sp2C, NULL, NULL, 0.1f, 0, 0x8006); + sp2C[0].x = -225.0f; + sp2C[0].y = 200.0f; + sp2C[0].z = -900.0f; + sp2C[1].x = 225.0f; + sp2C[1].y = 200.0f; + sp2C[1].z = -900.0f; + sp2C[2].x = 225.0f; + sp2C[2].y = 200.0f; + sp2C[2].z = -1150.0f; + sp2C[3].x = -225.0f; + sp2C[3].y = 200.0f; + sp2C[3].z = -1150.0f; + fn_1_BCD8(sp2C, NULL, NULL, 0.1f, 0, 0x8006); +} + +s16 lbl_1_data_75C[][3] = { + { 0, 1, 2 }, { 1, 3, 2 }, { 6, 5, 4 }, { 5, 6, 7 }, + { 0, 2, 4 }, { 2, 6, 4 }, { 3, 1, 7 }, { 7, 1, 5 }, + { 2, 3, 6 }, { 3, 7, 6 }, { 1, 0, 4 }, { 1, 4, 5 } +}; + +void fn_1_BCD8(Vec* arg0, Vec* arg1, Vec* arg2, float arg3, s32 arg4, s32 arg5) { + Vec sp24[8]; + Vec sp18; + float var_f29; + StructBss94Data* var_r30; + s32 i; + s32 j; + + var_r30 = lbl_1_bss_94; + for (i = 0; i < 16; i++, var_r30++) { + if (var_r30->unk02 == 0) { + break; + } + } + if (i >= 16) { + return; + } + var_r30->unk00 = i; + var_r30->unk02 = arg5; + var_r30->unk3C = arg3; + switch (var_r30->unk02 & 0xFFF) { + case 1: + var_r30->unk34 = arg0[0].x; + break; + case 2: + var_r30->unk34 = arg0[0].y; + break; + case 3: + var_r30->unk34 = arg0[0].z; + break; + case 4: + var_r30->unk04 = arg0[0]; + var_r30->unk10 = *arg1; + sp24[0].x = arg0[0].x - arg1->x; + sp24[0].y = arg0[0].y + arg1->y; + sp24[0].z = arg0[0].z - arg1->z; + sp24[1].x = arg0[0].x + arg1->x; + sp24[1].y = arg0[0].y + arg1->y; + sp24[1].z = arg0[0].z - arg1->z; + sp24[2].x = arg0[0].x - arg1->x; + sp24[2].y = arg0[0].y + arg1->y; + sp24[2].z = arg0[0].z + arg1->z; + sp24[3].x = arg0[0].x + arg1->x; + sp24[3].y = arg0[0].y + arg1->y; + sp24[3].z = arg0[0].z + arg1->z; + sp24[4].x = arg0[0].x - arg1->x; + sp24[4].y = arg0[0].y - arg1->y; + sp24[4].z = arg0[0].z - arg1->z; + sp24[5].x = arg0[0].x + arg1->x; + sp24[5].y = arg0[0].y - arg1->y; + sp24[5].z = arg0[0].z - arg1->z; + sp24[6].x = arg0[0].x - arg1->x; + sp24[6].y = arg0[0].y - arg1->y; + sp24[6].z = arg0[0].z + arg1->z; + sp24[7].x = arg0[0].x + arg1->x; + sp24[7].y = arg0[0].y - arg1->y; + sp24[7].z = arg0[0].z + arg1->z; + for (j = 0; j < 12; j++) { + fn_1_129F0(&sp24[lbl_1_data_75C[j][0]], + &sp24[lbl_1_data_75C[j][1]], + &sp24[lbl_1_data_75C[j][2]], + var_r30->unk44[j]); + var_r30->unk104[j][0] = sp24[lbl_1_data_75C[j][0]]; + var_r30->unk104[j][1] = sp24[lbl_1_data_75C[j][1]]; + var_r30->unk104[j][2] = sp24[lbl_1_data_75C[j][2]]; + } + var_r30->unk40 = arg4; + break; + case 5: + var_r30->unk104[0][0] = arg0[0]; + var_r30->unk104[1][0] = arg0[1]; + var_r30->unk104[2][0] = arg0[2]; + var_r30->unk104[3][0] = arg0[3]; + fn_1_129F0(&arg0[0], &arg0[1], &arg0[3], var_r30->unk44[0]); + fn_1_129F0(&arg0[1], &arg0[2], &arg0[3], var_r30->unk44[1]); + break; + case 6: + var_r30->unk104[0][0] = arg0[0]; + var_r30->unk104[1][0] = arg0[1]; + var_r30->unk104[2][0] = arg0[2]; + var_r30->unk104[3][0] = arg0[3]; + fn_1_129F0(&arg0[0], &arg0[1], &arg0[3], var_r30->unk44[0]); + fn_1_129F0(&arg0[1], &arg0[2], &arg0[3], var_r30->unk44[1]); + if (var_r30->unk44[0][1] < -0.5f) { + var_r30->unk40 = 0; + } + if (var_r30->unk44[0][1] > 0.5f) { + var_r30->unk40 = 1; + } + if (var_r30->unk44[0][0] > 0.5f) { + var_r30->unk40 = 2; + } + if (var_r30->unk44[0][0] < -0.5f) { + var_r30->unk40 = 3; + } + if (var_r30->unk44[0][2] < -0.5f) { + var_r30->unk40 = 4; + } + if (var_r30->unk44[0][2] > 0.5f) { + var_r30->unk40 = 5; + } + break; + case 7: + var_r30->unk04 = arg0[0]; + var_r30->unk10 = *arg1; + var_r30->unk34 = arg2->x; + sp18.x = arg1->x - arg0[0].x; + sp18.y = arg1->y - arg0[0].y; + sp18.z = arg1->z - arg0[0].z; + var_f29 = VECMagXZ(&sp18); + var_r30->unk28 = -atan2d(sp18.y, var_f29); + var_r30->unk2C = atan2d(sp18.x, sp18.z); + var_r30->unk30 = 0.0f; + break; + } +} + +s32 lbl_1_data_7C4[] = { 1, 1, 0, 0, 2, 2 }; + +s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) { + StructBss94Data* var_r31; + Vec sp140[6]; + Vec sp134; + Vec sp128; + Vec sp11C; + Vec sp110; + Vec sp104; + Vec spF8; + Vec spEC; + Vec spE0; + Vec spD4; + Vec spC8; + float var_f30; + float var_f19; + float sp34; + float sp30; + float sp2C; + s32 var_r26; + s32 var_r24; + s32 var_r23; + s32 i; + s32 j; + + var_r31 = lbl_1_bss_94; + var_r26 = -1; + sp134.x = arg0->x + arg1->x; + sp134.y = arg0->y + arg1->y; + sp134.z = arg0->z + arg1->z; + for (i = 0; i < 16; i++, var_r31++) { + if (var_r31->unk02 == 0) { + continue; + } + switch (var_r31->unk02 & 0xFFF) { + case 1: + if (arg1->x < 0.0f) { + if (arg0->x > var_r31->unk34 + arg4 && sp134.x <= var_r31->unk34 + arg4 + 1.0f) { + sp134.x = var_r31->unk34 + arg4; + *arg2 = sp134; + var_r26 = 0; + } + } else { + if (arg0->x < var_r31->unk34 - arg4 && sp134.x >= var_r31->unk34 - arg4 - 1.0f) { + sp134.x = var_r31->unk34 - arg4; + *arg2 = sp134; + var_r26 = 0; + } + } + break; + case 2: + if (arg1->y < 0.0f) { + if (arg0->y > var_r31->unk34 + arg4 && sp134.y <= var_r31->unk34 + arg4 + 1.0f) { + sp134.y = var_r31->unk34 + arg4; + *arg2 = sp134; + var_r26 = 1; + } + } else { + if (arg0->y < var_r31->unk34 - arg4 && sp134.y >= var_r31->unk34 - arg4 - 1.0f) { + sp134.y = var_r31->unk34 - arg4; + *arg2 = sp134; + var_r26 = 1; + } + } + break; + case 3: + if (arg1->z < 0.0f) { + if (arg0->z > var_r31->unk34 + arg4 && sp134.z <= var_r31->unk34 + arg4 + 1.0f) { + sp134.z = var_r31->unk34 + arg4; + *arg2 = sp134; + var_r26 = 2; + } + } else { + if (arg0->z < var_r31->unk34 - arg4 && sp134.z >= var_r31->unk34 - arg4 - 1.0f) { + sp134.z = var_r31->unk34 - arg4; + *arg2 = sp134; + var_r26 = 2; + } + } + break; + case 4: + arg4 = 0.0f; + PSVECSubtract(&sp134, &var_r31->unk04, &sp128); + if (fabs(sp128.x) < var_r31->unk10.x + arg4 + && fabs(sp128.y) < var_r31->unk10.y + arg4 + && fabs(sp128.z) < var_r31->unk10.z + arg4) + { + for (j = 0; j < 6; j++) { + if (var_r31->unk40 & (1 << j)) { + var_r24 = fn_1_12C6C(arg0, &sp134, var_r31->unk44[j * 2]); + if (var_r24 != 0) { + break; + } + } + } + switch (j) { + case 0: + sp134.y = var_r31->unk04.y + var_r31->unk10.y + arg4 + 1.0f; + break; + case 1: + sp134.y = var_r31->unk04.y - var_r31->unk10.y - arg4 - 1.0f; + break; + case 2: + sp134.x = var_r31->unk04.x - var_r31->unk10.x - arg4 - 1.0f; + break; + case 3: + sp134.x = var_r31->unk04.x + var_r31->unk10.x + arg4 + 1.0f; + break; + case 4: + sp134.z = var_r31->unk04.z + var_r31->unk10.z + arg4 + 1.0f; + break; + case 5: + sp134.z = var_r31->unk04.z - var_r31->unk10.z - arg4 - 1.0f; + break; + } + if (j < 6) { + *arg2 = sp134; + var_r26 = lbl_1_data_7C4[j]; + } + } + break; + case 5: + if (fn_1_12C6C(arg0, &sp134, var_r31->unk44[0]) != 1) { + break; + } + fn_1_1334C(var_r31->unk44[0], arg0, arg1, var_r31->unk104[0], &sp104); + sp110.x = fabs(var_r31->unk44[0][0]); + sp110.y = fabs(var_r31->unk44[0][1]); + sp110.z = fabs(var_r31->unk44[0][2]); + if (sp110.x > sp110.y && sp110.x > sp110.z) { + var_r24 = 0; + } else if (sp110.y > sp110.x && sp110.y > sp110.z) { + var_r24 = 1; + } else { + var_r24 = 2; + } + sp140[0] = var_r31->unk104[0][0]; + sp140[1] = var_r31->unk104[1][0]; + sp140[2] = var_r31->unk104[3][0]; + sp140[3] = var_r31->unk104[1][0]; + sp140[4] = var_r31->unk104[2][0]; + sp140[5] = var_r31->unk104[3][0]; + sp34 = fn_1_12E68(&sp140[0], &sp104, var_r24); + sp30 = fn_1_12E68(&sp140[3], &sp104, var_r24); + if (sp34 != 0.0f || sp30 != 0.0f) { + arg2->x = sp104.x + var_r31->unk44[0][0] * (arg4 + 1.0f); + arg2->y = sp104.y + var_r31->unk44[0][1] * (arg4 + 1.0f); + arg2->z = sp104.z + var_r31->unk44[0][2] * (arg4 + 1.0f); + var_r26 = var_r24; + } + break; + case 6: + sp140[0] = var_r31->unk104[0][0]; + sp140[1] = var_r31->unk104[1][0]; + sp140[2] = var_r31->unk104[2][0]; + sp140[3] = var_r31->unk104[3][0]; + if (fn_1_137C4(&sp140[0], arg0, arg1, &sp104, arg4, var_r31->unk40) != 0) { + *arg2 = sp104; + var_r26 = lbl_1_data_7C4[var_r31->unk40]; + } + break; + case 7: + spEC.x = arg0->x; + spEC.y = arg0->z; + spEC.z = 0.0f; + spE0.x = sp134.x; + spE0.y = sp134.z; + spE0.z = 0.0f; + spD4.x = var_r31->unk04.x; + spD4.y = var_r31->unk04.z; + spD4.z = 0.0f; + var_f30 = fn_1_1367C(&spEC, &spE0, &spD4, &spC8, &sp2C); + if (sp2C >= 0.0f && sp2C <= 1.0f && var_f30 < var_r31->unk34 + arg4) { + var_f19 = arg0->y + arg1->y * sp2C; + if (var_f19 >= var_r31->unk04.y && var_f19 <= var_r31->unk10.y) { + spC8.z = spC8.y; + spC8.y = 0.0f; + PSVECSubtract(&spC8, &var_r31->unk04, &sp128); + sp128.y = 0.0f; + if (PSVECMag(&sp128) == 0.0f) { + sp128.z = 1.0f; + } else { + PSVECNormalize(&sp128, &sp128); + } + PSVECScale(&sp128, &sp128, var_r31->unk34 + arg4 + 1.0f); + arg2->x = sp128.x + var_r31->unk04.x; + arg2->z = sp128.z + var_r31->unk04.z; + arg2->y = var_f19; + sp2C = var_f30; + var_r26 = 99; + } + } else { + sp2C = var_f30; + PSVECSubtract(&sp134, &var_r31->unk04, &sp128); + var_f30 = VECMagXZ(&sp128); + if (var_f30 < var_r31->unk34 + arg4 && sp134.y >= var_r31->unk04.y && sp134.y <= var_r31->unk10.y) { + PSVECSubtract(&sp134, &var_r31->unk04, &sp128); + sp128.y = 0.0f; + if (PSVECMag(&sp128) == 0.0f) { + sp128.z = 1.0f; + } else { + PSVECNormalize(&sp128, &sp128); + } + PSVECScale(&sp128, &sp128, var_r31->unk34 + arg4 + 1.0f); + arg2->x = var_r31->unk04.x + sp128.x; + arg2->z = var_r31->unk04.z + sp128.z; + arg2->y = sp134.y; + var_r26 = 99; + } + } + if (var_r26 == -1) { + break; + } + sp128.x = spC8.x - var_r31->unk04.x; + sp128.z = spC8.y - var_r31->unk04.z; + var_f30 = VECMagXZ(&sp128); + if (var_f30 == 0.0f) { + var_f30 = 1.0f; + sp128.x = 0.0f; + sp128.z = 1.0f; + } else { + var_f30 = 1.0f / var_f30; + } + spC8.x = sp128.x * var_f30; + spC8.z = sp128.z * var_f30; + var_f30 = VECMagXZ(arg1); + if (var_f30 != 0.0f) { + var_f30 = 1.0f / var_f30; + } + spD4.x = -(arg1->x * var_f30); + spD4.z = -(arg1->z * var_f30); + sp2C = var_f30 / (var_r31->unk34 + arg4); + sp128.x = spD4.x + sp2C * (spC8.x - spD4.x); + sp128.z = spD4.z + sp2C * (spC8.z - spD4.z); + var_f30 = VECMagXZ(&sp128); + if (var_f30 == 0.0f) { + var_f30 = 1.0f; + sp128.x = 0.0f; + sp128.z = 1.0f; + } else { + var_f30 = 1.0f / var_f30; + } + sp128.x = sp128.x * var_f30 - spD4.x; + sp128.z = sp128.z * var_f30 - spD4.z; + sp128.y = 0.0f; + if (PSVECMag(&sp128) == 0.0f) { + sp128.z = 1.0f; + } else { + PSVECNormalize(&sp128, &sp128); + } + var_f30 = VECMagXZ(arg1); + arg3->x = sp128.x * var_f30 * var_r31->unk3C; + arg3->z = sp128.z * var_f30 * var_r31->unk3C; + arg3->y = arg1->y; + break; + } + if (var_r26 != -1) { + break; + } + } + if (i < 16) { + switch (var_r26) { + case 0: + arg3->x = -arg1->x * var_r31->unk3C; + arg3->y = arg1->y; + arg3->z = arg1->z * var_r31->unk3C; + var_r23 = var_r31->unk02; + break; + case 1: + arg3->x = arg1->x * var_r31->unk3C; + arg3->y = arg1->y * -0.5f; + arg3->z = arg1->z * var_r31->unk3C; + var_r23 = var_r31->unk02; + break; + case 2: + arg3->x = arg1->x * var_r31->unk3C; + arg3->y = arg1->y; + arg3->z = -arg1->z * var_r31->unk3C; + var_r23 = var_r31->unk02; + break; + default: + var_r23 = var_r31->unk02; + break; + } + arg5--; + if (arg5 > 0) { + sp11C = *arg0; + sp110.x = arg2->x - arg0->x; + sp110.y = arg2->y - arg0->y; + sp110.z = arg2->z - arg0->z; + var_r26 = fn_1_C498(&sp11C, &sp110, &sp104, &spF8, arg4, arg5); + if (var_r26 != 0) { + *arg2 = sp104; + *arg3 = spF8; + if (var_r23 & 0x4000) { + var_r26 |= 0x4000; + } + if (var_r23 & 0x8000) { + var_r26 |= 0x8000; + } + var_r23 = var_r26; + } + } + return var_r23; + } + return 0; +} + +void fn_1_D930(void) { + omObjData* var_r30; + StructBssA4Data* var_r31; + AnimData* var_r27; + StructM423_05* var_r29; + ModelData* var_r28; + s32 sp8; + + var_r30 = lbl_1_bss_A4 = omAddObjEx(lbl_1_bss_120, 0xBF, 0, 0, -1, fn_1_DA38); + var_r31 = var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*var_r31), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, sizeof(*var_r31)); + var_r31->unk08 = var_r27 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M423, 22), MEMORY_DEFAULT_NUM)); + var_r31->unk00 = sp8 = fn_1_11114(var_r27, 0x100); + Hu3DModelCameraSet(var_r31->unk00, 4); + Hu3DModelLayerSet(var_r31->unk00, 1); + var_r31->unk04 = 0; + var_r28 = &Hu3DData[var_r31->unk00]; + var_r29 = var_r28->unk_120; + var_r29->unk20 = 0; +} + +void fn_1_DA38(omObjData* arg0) { + StructBssA4Data* temp_r30; + ModelData* var_r27; + StructM423_05* temp_r29; + StructM423_04* var_r31; + s32 i; + + temp_r30 = arg0->data; + if (temp_r30->unk04 <= 0) { + Hu3DModelAttrSet(temp_r30->unk00, HU3D_ATTR_DISPOFF); + return; + } + Hu3DModelAttrReset(temp_r30->unk00, HU3D_ATTR_DISPOFF); + var_r27 = &Hu3DData[temp_r30->unk00]; + temp_r29 = var_r27->unk_120; + var_r31 = temp_r29->unk3C; + temp_r29->unk23 = 0; + for (i = 0; i < temp_r29->unk26; i++, var_r31++) { + if (var_r31->unk30 <= 0.0f) { + continue; + } + var_r31->unk38.x += var_r31->unk04.x; + var_r31->unk38.y += var_r31->unk04.y; + var_r31->unk38.z += var_r31->unk04.z; + var_r31->unk34 += var_r31->unk18; + if (var_r31->unk34 >= 360.0f) { + var_r31->unk34 -= 360.0f; + } + var_r31->unk48 = var_r31->unk28; + var_r31->unk28 += var_r31->unk2C; + if (var_r31->unk48 >= 16) { + var_r31->unk48 = 0; + var_r31->unk00 = 0; + var_r31->unk30 = 0.0f; + temp_r30->unk04--; + } + } +} + +void fn_1_DBC8(void) { + omObjData* temp_r31; + StructBssA4Data* temp_r30; + + temp_r31 = lbl_1_bss_A4; + temp_r30 = temp_r31->data; + Hu3DModelAttrSet(temp_r30->unk00, HU3D_ATTR_DISPOFF); + HuSprAnimKill(temp_r30->unk08); + temp_r31->func = NULL; +} + +inline s32 fn_1_DC24(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, GXColor arg5) { + omObjData* var_r27; + StructBssA4Data* temp_r28; + ModelData* var_r26; + StructM423_05* temp_r30; + StructM423_04* var_r31; + s32 i; + + var_r27 = lbl_1_bss_A4; + temp_r28 = var_r27->data; + var_r26 = &Hu3DData[temp_r28->unk00]; + temp_r30 = var_r26->unk_120; + var_r31 = temp_r30->unk3C; + for (i = 0; i < temp_r30->unk26; i++, var_r31++) { + if (var_r31->unk30 <= 0.0f) { + break; + } + } + if (i >= temp_r30->unk26) { + return -1; + } + var_r31->unk00 = var_r31->unk02 = 0; + var_r31->unk38.x = arg0.x; + var_r31->unk38.y = arg0.y; + var_r31->unk38.z = arg0.z; + var_r31->unk04.x = arg1.x; + var_r31->unk04.y = arg1.y; + var_r31->unk04.z = arg1.z; + var_r31->unk18 = arg3; + var_r31->unk30 = arg2; + var_r31->unk44.r = arg5.r; + var_r31->unk44.g = arg5.g; + var_r31->unk44.b = arg5.b; + var_r31->unk44.a = arg5.a; + var_r31->unk34 = 0.0f; + var_r31->unk48 = 0; + var_r31->unk00 = 0; + var_r31->unk28 = 0.0f; + var_r31->unk2C = arg4; + temp_r28->unk04++; + return i; +} + +s32 fn_1_DD70(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5, GXColor arg6) { + Vec sp60; + Vec sp54; + float temp_f31; + s32 sp20; + s32 sp1C; + + sp54.x = arg1.z; + sp54.z = arg1.x; + sp54.y = 0.0f; + PSVECNormalize(&sp54, &sp54); + temp_f31 = 0.5f * arg4; + sp60.x = arg0.x + sp54.x * temp_f31; + sp60.y = arg0.y + sp54.y * temp_f31; + sp60.z = arg0.z + sp54.z * temp_f31; + sp20 = fn_1_DC24(sp60, arg1, arg2, arg3, arg5, arg6); + sp60.x = arg0.x - sp54.x * temp_f31; + sp60.y = arg0.y - sp54.y * temp_f31; + sp60.z = arg0.z - sp54.z * temp_f31; + sp1C = fn_1_DC24(sp60, arg1, arg2, -arg3, arg5, arg6); + return (sp20 << 16) | sp1C; +} + +void fn_1_E1BC(void) { + omObjData* var_r31; + s32 var_r29; + s32 i; + + var_r31 = lbl_1_bss_A0 = omAddObjEx(lbl_1_bss_120, 0xBF, 16, 0, -1, fn_1_E290); + for (i = 0; i < var_r31->mdlcnt; i++) { + var_r29 = var_r31->model[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M423, 3)); + Hu3DModelAttrSet(var_r29, HU3D_ATTR_DISPOFF); + Hu3DModelCameraSet(var_r29, 4); + } + var_r31->stat |= 0x100; +} + +void fn_1_E290(omObjData* arg0) { + ModelData* var_r28; + s32 temp_r30; + s32 i; + + for (i = 0; i < arg0->mdlcnt; i++) { + temp_r30 = arg0->model[i]; + var_r28 = &Hu3DData[temp_r30]; + if (!(var_r28->attr & 1) && Hu3DMotionEndCheck(temp_r30)) { + Hu3DModelAttrSet(temp_r30, HU3D_ATTR_DISPOFF); + } + } +} + +void fn_1_E330(void) { +} + +s32 fn_1_E334(Vec arg0, Vec arg1, float arg2) { + omObjData* var_r31; + ModelData* var_r26; + s32 temp_r29; + s32 i; + + var_r31 = lbl_1_bss_A0; + for (i = 0; i < var_r31->mdlcnt; i++) { + var_r26 = &Hu3DData[var_r31->model[i]]; + if (var_r26->attr & 1) { + break; + } + } + if (i >= var_r31->mdlcnt) { + return -1; + } + temp_r29 = var_r31->model[i]; + Hu3DModelPosSet(temp_r29, arg0.x, arg0.y, arg0.z); + Hu3DModelRotSet(temp_r29, arg1.x, arg1.y, arg1.z); + Hu3DModelScaleSet(temp_r29, arg2, arg2, arg2); + Hu3DMotionTimeSet(temp_r29, 0.0f); + Hu3DMotionSpeedSet(temp_r29, 2.0f); + Hu3DModelAttrReset(temp_r29, HU3D_ATTR_DISPOFF); + return i; +} + +void fn_1_E460(void) { + omObjData* temp_r3; + + temp_r3 = lbl_1_bss_9C = omAddObjEx(lbl_1_bss_120, 0xBF, 1, 0, -1, fn_1_E4EC); + temp_r3->model[0] = fn_1_E678(); + Hu3DModelCameraSet(temp_r3->model[0], 4); + Hu3DModelLayerSet(temp_r3->model[0], 2); +} + +void fn_1_E4EC(omObjData* arg0) { + ModelData* var_r29; + StructM423_0B* var_r28; + StructM423_0A* var_r31; + s32 i; + + var_r29 = &Hu3DData[arg0->model[0]]; + var_r28 = var_r29->unk_120; + var_r31 = var_r28->unk00; + for (i = 0; i < 16; i++, var_r31++) { + if (var_r31->unk00 == 0) { + continue; + } + var_r31->unk00++; + if (var_r31->unk00 < 12.0f) { + var_r31->unk04 += 0.058333337f; + } else { + var_r31->unk04 += 0.025000002f; + var_r31->unk10 -= 0.050000004f; + } + if (var_r31->unk10 < 0.0f) { + var_r31->unk00 = 0; + } + } +} + +void fn_1_E60C(void) { + omObjData* temp_r31; + ModelData* var_r30; + StructM423_0B* var_r29; + + temp_r31 = lbl_1_bss_9C; + var_r30 = &Hu3DData[temp_r31->model[0]]; + var_r29 = var_r30->unk_120; + HuSprAnimKill(var_r29->unk200); + temp_r31->func = NULL; +} + +s32 fn_1_E678(void) { + float sp88[32][2]; + float sp8[32]; + float temp_f28; + float temp_f30; + float temp_f29; + float var_f31; + ModelData* temp_r27; + StructM423_0B* var_r30; + StructM423_09* var_r29; + StructM423_08* var_r28; + s32 var_r26; + s32 i; + + var_r26 = Hu3DHookFuncCreate(fn_1_EF44); + temp_r27 = &Hu3DData[var_r26]; + var_r30 = temp_r27->unk_120 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r30), temp_r27->unk_48); + memset(var_r30, 0, sizeof(*var_r30)); + var_r30->unk20C = HuMemDirectMallocNum(HEAP_DATA, 32 * sizeof(*var_r30->unk20C), temp_r27->unk_48); + memset(var_r30->unk20C, 0, 32 * sizeof(*var_r30->unk20C)); + var_r30->unk210 = HuMemDirectMallocNum(HEAP_DATA, 32 * sizeof(*var_r30->unk210), temp_r27->unk_48); + memset(var_r30->unk210, 0, 32 * sizeof(*var_r30->unk210)); + var_r30->unk214 = HuMemDirectMallocNum(HEAP_DATA, 5 * sizeof(*var_r30->unk214), temp_r27->unk_48); + memset(var_r30->unk214, 0, 5 * sizeof(*var_r30->unk214)); + var_r30->unk204 = GXGetTexBufferSize(640, 480, GX_TF_RGB5A3, GX_FALSE, 0); + var_r30->unk208 = HuMemDirectMallocNum(HEAP_DATA, var_r30->unk204, temp_r27->unk_48); + DCFlushRange(var_r30->unk208, var_r30->unk204); + var_r30->unk200 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M423, 23), MEMORY_DEFAULT_NUM)); + var_f31 = 0.0f; + for (i = 0; i < 32; i++) { + temp_f28 = 1.0f + 0.001f * frandmod(1000); + sp8[i] = temp_f28; + var_f31 += temp_f28; + sp88[i][1] = 80.0f * temp_f28; + sp88[i][0] = 10.0f + 0.02f * frandmod(1000); + } + var_f31 = 360.0f / var_f31; + for (i = 0; i < 32; i++) { + sp8[i] *= var_f31; + } + var_f31 = frandmod(90); + var_r28 = var_r30->unk20C; + var_r29 = var_r30->unk210; + for (i = 0; i < 32; var_r28++, var_r29++, i++) { + temp_f29 = -cosd(var_f31); + temp_f30 = sind(var_f31); + var_r28->unk24 = temp_f29 * sp88[i][0]; + var_r28->unk28 = temp_f30 * sp88[i][0]; + var_r28->unk0C = temp_f29 * (sp88[i][0] + sp88[i][1]); + var_r28->unk10 = temp_f30 * (sp88[i][0] + sp88[i][1]); + var_r28->unk00 = temp_f29 * (sp88[i][0] + 0.85f * sp88[i][1]); + var_r28->unk04 = temp_f30 * (sp88[i][0] + 0.85f * sp88[i][1]); + var_r29->unk00 = -0.3f * -temp_f29; + var_r29->unk04 = -0.3f * temp_f30; + temp_f29 = -cosd(var_f31 - 0.4f * sp8[i]); + temp_f30 = sind(var_f31 - 0.4f * sp8[i]); + var_r28->unk30 = temp_f29 * (sp88[i][0] + 0.7f * sp88[i][1]); + var_r28->unk34 = temp_f30 * (sp88[i][0] + 0.7f * sp88[i][1]); + temp_f29 = -cosd(var_f31 + 0.4f * sp8[i]); + temp_f30 = sind(var_f31 + 0.4f * sp8[i]); + var_r28->unk18 = temp_f29 * (sp88[i][0] + 0.7f * sp88[i][1]); + var_r28->unk1C = temp_f30 * (sp88[i][0] + 0.7f * sp88[i][1]); + var_r29->unk08 = var_r29->unk0C = var_r29->unk10 = var_r29->unk14 = 0.0f; + var_r29->unk18 = var_r29->unk1C = var_r29->unk20 = var_r29->unk24 = 0.0f; + var_f31 += sp8[i]; + } + for (i = 0; i < 5; i++) { + var_r30->unk214[i].r = var_r30->unk214[i].g = var_r30->unk214[i].b = 0xFF; + var_r30->unk214[i].a = 0xFF; + } + var_r30->unk218 = 32 * 54; + var_r30->unk220 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r30->unk218, MEMORY_DEFAULT_NUM); + GXBeginDisplayList(var_r30->unk220, var_r30->unk218); + for (i = 0; i < 32; i++) { + GXBegin(GX_TRIANGLEFAN, GX_VTXFMT0, 6); + + GXPosition1x16(i * 5); + GXColor1x16(0); + GXTexCoord1x16(i * 5); + + GXPosition1x16(i * 5 + 1); + GXColor1x16(1); + GXTexCoord1x16(i * 5 + 1); + + GXPosition1x16(i * 5 + 2); + GXColor1x16(2); + GXTexCoord1x16(i * 5 + 2); + + GXPosition1x16(i * 5 + 3); + GXColor1x16(3); + GXTexCoord1x16(i * 5 + 3); + + GXPosition1x16(i * 5 + 4); + GXColor1x16(4); + GXTexCoord1x16(i * 5 + 4); + + GXPosition1x16(i * 5 + 1); + GXColor1x16(1); + GXTexCoord1x16(i * 5 + 1); + + GXEnd(); + } + var_r30->unk21C = GXEndDisplayList(); + DCFlushRangeNoSync(var_r30->unk20C, 32 * sizeof(*var_r30->unk20C)); + DCFlushRangeNoSync(var_r30->unk210, 32 * sizeof(*var_r30->unk210)); + DCFlushRangeNoSync(var_r30->unk214, 5 * sizeof(*var_r30->unk214)); + DCFlushRangeNoSync(var_r30->unk220, var_r30->unk218); + DCStoreRangeNoSync(var_r30, sizeof(*var_r30)); + PPCSync(); + return var_r26; +} + +GXColor lbl_1_data_7FC[] = { + { 0x66, 0x00, 0x00, 0xFF }, + { 0x00, 0x00, 0x66, 0xFF }, + { 0x66, 0x00, 0x5B, 0xFF }, + { 0x00, 0x66, 0x00, 0xFF }, + { 0x42, 0x00, 0x4C, 0xFF }, + { 0x47, 0x28, 0x00, 0xFF }, + { 0x66, 0x66, 0x00, 0xFF }, + { 0x00, 0x00, 0x00, 0xFF } +}; + +void fn_1_EF44(ModelData* arg0, Mtx arg1) { + Mtx sp124; + Mtx spF4; + Mtx spC4; + Mtx sp94; + Mtx sp64; + Mtx sp34; + GXTexObj sp14; + GXColor sp10 = { 0xCC, 0xCC, 0xCC, 0x7F }; + StructM423_0B* temp_r30; + StructM423_0A* var_r31; + s32 i; + + temp_r30 = arg0->unk_120; + GXSetTexCopySrc(0, 0, 640, 480); + GXSetTexCopyDst(640, 480, GX_TF_RGB5A3, GX_FALSE); + GXCopyTex(temp_r30->unk208, GX_FALSE); + GXPixModeSync(); + PSMTXTrans(spF4, -400.0f, 400.0f, -700.0f); + PSMTXConcat(Hu3DCameraMtx, spF4, sp64); + GXLoadPosMtxImm(sp64, GX_PNMTX0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_CLAMP, GX_AF_NONE); + GXInitTexObj(&sp14, temp_r30->unk208, 640, 480, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&sp14, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXLoadTexObj(&sp14, GX_TEXMAP0); + HuSprTexLoad(temp_r30->unk200, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetNumTexGens(2); + C_MTXLightPerspective(sp94, 41.5f, 1.2f, 0.5555555f, -0.5f, 0.5555555f, 0.5f); + PSMTXConcat(sp94, Hu3DCameraMtx, sp94); + PSMTXInverse(Hu3DCameraMtx, sp34); + PSMTXConcat(sp34, sp64, sp124); + PSMTXConcat(sp94, sp124, spF4); + GXLoadTexMtxImm(spF4, GX_TEXMTX0, GX_MTX3x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEXCOORD0, GX_TEXMTX1, GX_FALSE, GX_PTIDENTITY); + GXSetNumIndStages(1); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1); + GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); + GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); + PSMTXScale(spF4, -0.5f, -0.5f, 0.5f); + GXSetIndTexMtx(GX_ITM_0, (float(*)[3]) spF4, -1); + GXSetNumTevStages(1); + GXSetTevColor(GX_TEVREG1, sp10); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_C1, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_RASA, GX_CA_A0, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_SET); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r30->unk20C, 12); + GXSetArray(GX_VA_CLR0, temp_r30->unk214, 4); + GXSetArray(GX_VA_TEX0, temp_r30->unk210, 8); + var_r31 = temp_r30->unk00; + for (i = 0; i < 16; i++, var_r31++) { + if (var_r31->unk00 == 0) { + continue; + } + lbl_1_data_7FC[var_r31->unk02].a = 255.0f * var_r31->unk10; + GXSetTevColor(GX_TEVREG0, lbl_1_data_7FC[var_r31->unk02]); + PSMTXTrans(spF4, var_r31->unk14.x, var_r31->unk14.y, var_r31->unk14.z); + PSMTXRotRad(sp124, 'Z', MTXDegToRad(var_r31->unk0C)); + PSMTXConcat(spF4, sp124, spF4); + PSMTXScale(spC4, var_r31->unk04 * var_r31->unk08, var_r31->unk04 * var_r31->unk08, var_r31->unk04 * var_r31->unk08); + PSMTXConcat(spF4, spC4, spF4); + PSMTXConcat(Hu3DCameraMtx, spF4, sp64); + GXLoadPosMtxImm(sp64, GX_PNMTX0); + PSMTXConcat(sp34, sp64, sp124); + PSMTXConcat(sp94, sp124, spF4); + GXLoadTexMtxImm(spF4, GX_TEXMTX0, GX_MTX3x4); + PSMTXRotRad(sp124, 'Z', MTXDegToRad(-var_r31->unk0C)); + GXLoadTexMtxImm(sp124, GX_TEXMTX1, GX_MTX2x4); + GXCallDisplayList(temp_r30->unk220, temp_r30->unk21C); + } + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); +} + +s32 fn_1_F574(Vec arg0, float arg1, s32 arg2) { + omObjData* var_r29; + ModelData* var_r28; + StructM423_0B* var_r26; + StructM423_0A* var_r31; + s32 var_r27; + s32 i; + + var_r29 = lbl_1_bss_9C; + var_r28 = &Hu3DData[var_r29->model[0]]; + var_r26 = var_r28->unk_120; + var_r31 = var_r26->unk00; + for (i = 0; i < 16; i++, var_r31++) { + if (var_r31->unk00 == 0) { + break; + } + } + if (i < 16) { + if (arg2 < 0) { + arg2 = 0; + } + var_r31->unk00 = 1; + var_r31->unk02 = arg2; + var_r31->unk10 = 1.0f; + var_r31->unk08 = arg1; + var_r31->unk04 = 0.25f; + var_r31->unk0C = frandmod(360); + var_r31->unk14 = arg0; + } +} + +void fn_1_F690(void) { + lbl_1_bss_98 = omAddObjEx(lbl_1_bss_120, 0xFE, 0, 0, -1, fn_1_F6E0); +} + +s32 lbl_1_data_81C[] = { + DATA_MAKE_NUM(DATADIR_MGCONST, 12), + DATA_MAKE_NUM(DATADIR_MGCONST, 13), + DATA_MAKE_NUM(DATADIR_MGCONST, 14), + DATA_MAKE_NUM(DATADIR_MGCONST, 15), + DATA_MAKE_NUM(DATADIR_MGCONST, 16), + DATA_MAKE_NUM(DATADIR_MGCONST, 17), + DATA_MAKE_NUM(DATADIR_MGCONST, 18), + DATA_MAKE_NUM(DATADIR_MGCONST, 19) +}; + +s16 lbl_1_data_83C[] = { 0x7F, 0x7F, 0x7F, 0x100 }; + +s16 lbl_1_data_844[][2] = { + { -75, 10 }, { -61, -14 }, { -47, 10 }, { 0, 0 }, + { -12, -8 }, { -12, -8 }, { 6, -8 }, { 6, -8 }, + { 24, -8 }, { 24, -8 }, { 42, -8 }, { 42, -8 }, + { 60, -8 }, { 60, -8 }, { -12, 10 }, { -12, 10 }, + { 6, 10 }, { 6, 10 }, { 24, 10 }, { 24, 10 }, + { 42, 10 }, { 42, 10 }, { 60, 10 }, { 60, 10 } +}; + +void fn_1_F6E0(omObjData* arg0) { + StructM423_0C* var_r31; + s32 sp8; + s32 var_r29; + s32 i; + + if ((sp8 = lbl_1_bss_EC[3]) != -1) { + var_r31 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*var_r31), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, sizeof(*var_r31)); + var_r31->unk00 = 480; + var_r31->unk04 = 70; + var_r31->unk08 = 0; + var_r31->unk0C = 0; + for (i = 0; i < 24; i++) { + switch (i) { + case 0: + case 1: + case 2: + var_r29 = espEntry(lbl_1_data_81C[lbl_1_bss_EC[i]], lbl_1_data_83C[i], 0); + var_r31->unk10[i] = var_r29; + var_r31->unk70[i][0] = lbl_1_data_844[i][0]; + var_r31->unk70[i][1] = lbl_1_data_844[i][1]; + break; + case 3: + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 38), lbl_1_data_83C[i], 0); + var_r31->unk10[i] = var_r29; + var_r31->unk70[i][0] = lbl_1_data_844[i][0]; + var_r31->unk70[i][1] = lbl_1_data_844[i][1]; + break; + default: + if (!(i & 1)) { + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M423, 24), 0x40, 0); + var_r31->unk10[i] = var_r29; + } else { + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M423, 25), 0x20, 0); + var_r31->unk10[i] = var_r29; + } + var_r31->unk70[i][0] = lbl_1_data_844[i][0]; + var_r31->unk70[i][1] = lbl_1_data_844[i][1]; + break; + } + espDispOn(var_r29); + espDrawNoSet(var_r29, 0); + espAttrSet(var_r29, 1); + espPosSet(var_r29, var_r31->unk00 + var_r31->unk70[i][0], var_r31->unk04 + var_r31->unk70[i][1]); + espBankSet(var_r29, 0); + } + for (i = 0; i < 10; i++) { + var_r31->unk190[i][0] = 0; + var_r31->unk190[i][1] = 0; + } + fn_1_10028(0); + arg0->func = fn_1_FA40; + } +} + +void fn_1_FA40(omObjData* arg0) { + float var_f31; + float var_f28; + float temp_f30; + float temp_f29; + StructM423_0C* temp_r31; + s32 temp_r28; + s32 temp_r29; + s32 i; + + temp_r31 = arg0->data; + if (lbl_1_bss_104 != temp_r31->unk08) { + temp_r31->unk08 = lbl_1_bss_104; + temp_r31->unk0C = 20; + } + if (temp_r31->unk0C != 0) { + var_f31 = 1.0 + 0.8f * sind(180.0f * (temp_r31->unk0C / 20.0f)); + temp_r31->unk0C--; + } else { + var_f31 = 1.0f; + } + var_f31 = 1.0f; + temp_r28 = 10 - lbl_1_bss_104; + for (i = 0; i < 4; i++) { + temp_f30 = temp_r31->unk00 + temp_r31->unk70[i][0]; + temp_f29 = temp_r31->unk04 + temp_r31->unk70[i][1]; + espPosSet(temp_r31->unk10[i], temp_f30, temp_f29); + espScaleSet(temp_r31->unk10[i], 1.0f, 1.0f); + } + for (i = 4; i < 24; i++) { + temp_f30 = temp_r31->unk00 + temp_r31->unk70[i][0]; + temp_f29 = temp_r31->unk04 + temp_r31->unk70[i][1]; + if (!(i & 1)) { + espPosSet(temp_r31->unk10[i], temp_f30, temp_f29); + espScaleSet(temp_r31->unk10[i], 1.0f, 1.0f); + } else { + temp_r29 = (i - 4) / 2; + if (temp_r28 > temp_r29) { + temp_r31->unk190[temp_r29][0] = 1; + } else { + temp_r31->unk190[temp_r29][0] = 0; + } + if (temp_r31->unk190[temp_r29][0] != 0) { + if (temp_r31->unk190[temp_r29][1] < 15) { + temp_r31->unk190[temp_r29][1]++; + var_f31 = 3.0f - 2.0f * (temp_r31->unk190[temp_r29][1] / 15.0f); + var_f28 = temp_r31->unk190[temp_r29][1] / 15.0f; + } else { + var_f31 = 1.0f; + var_f28 = 1.0f; + } + espDispOn(temp_r31->unk10[i]); + espPosSet(temp_r31->unk10[i], temp_f30, temp_f29); + espTPLvlSet(temp_r31->unk10[i], var_f28); + espScaleSet(temp_r31->unk10[i], var_f31, var_f31); + } else { + espDispOff(temp_r31->unk10[i]); + } + } + } +} + +void fn_1_FF10(omObjData* arg0) { + StructM423_0C* temp_r29; + s32 i; + + if (arg0 && arg0->data) { + temp_r29 = arg0->data; + for (i = 0; i < 24; i++) { + espKill(temp_r29->unk10[i]); + } + arg0->data = NULL; + arg0->func = NULL; + } +} + +void fn_1_FF98(void) { + fn_1_FF10(lbl_1_bss_98); +} + +void fn_1_10028(s32 arg0) { + StructM423_0C* temp_r30; + s32 i; + + temp_r30 = lbl_1_bss_98->data; + for (i = 0; i < 24; i++) { + if (arg0 != 0) { + espDispOn(temp_r30->unk10[i]); + } else { + espDispOff(temp_r30->unk10[i]); + } + if (i >= 4 && (i & 1)) { + espDispOff(temp_r30->unk10[i]); + } + } +} + +void fn_1_100DC(void) { + omObjData* temp_r3; + s32 i; + + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 45.0f, 50.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 320.0f, 240.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 320, 240); + Hu3DCameraCreate(2); + Hu3DCameraPerspectiveSet(2, 45.0f, 50.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(2, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(2, 0, 0, 640, 480); + Hu3DCameraCreate(4); + Hu3DCameraPerspectiveSet(4, 45.0f, 100.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(4, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(4, 0, 0, 640, 480); + temp_r3 = lbl_1_bss_8C = omAddObjEx(lbl_1_bss_120, 0x7FDA, 0, 0, -1, omOutViewMulti); + temp_r3->work[0] = 3; + for (i = 0; i < temp_r3->work[0]; i++) { + CRotM[i].x = lbl_1_data_0[0].unk00.x; + CRotM[i].y = lbl_1_data_0[0].unk00.y; + CRotM[i].z = lbl_1_data_0[0].unk00.z; + CenterM[i].x = lbl_1_data_0[0].unk0C.x; + CenterM[i].y = lbl_1_data_0[0].unk0C.y; + CenterM[i].z = lbl_1_data_0[0].unk0C.z; + CZoomM[i] = lbl_1_data_0[0].unk18; + } + lbl_1_bss_84 = 0; + lbl_1_bss_88 = -1; + omAddObjEx(lbl_1_bss_120, 0xFF, 0, 0, -1, fn_1_10480); +} + +void fn_1_10480(omObjData* arg0) { + CRotM[1].x = CRotM[0].x; + CRotM[1].y = CRotM[0].y; + CRotM[1].z = CRotM[0].z; + CenterM[1].x = CenterM[0].x; + CenterM[1].y = CenterM[0].y; + CenterM[1].z = CenterM[0].z; + CZoomM[1] = CZoomM[0]; +} + +void fn_1_1052C(void) { +} + +s32 fn_1_10530(void) { + return lbl_1_bss_84; +} + +void fn_1_10540(s32 arg0, s32 arg1, s32 arg2, f32 arg3) { + StructData0* temp_r31; + StructData0* temp_r30; + + temp_r31 = &lbl_1_data_0[arg1]; + temp_r30 = &lbl_1_data_0[arg2]; + CRotM[arg0].x = fn_1_12544(arg3, temp_r31->unk00.x, temp_r30->unk00.x); + CRotM[arg0].y = fn_1_12544(arg3, temp_r31->unk00.y, temp_r30->unk00.y); + CRotM[arg0].z = fn_1_12544(arg3, temp_r31->unk00.z, temp_r30->unk00.z); + CenterM[arg0].x = temp_r31->unk0C.x + arg3 * (temp_r30->unk0C.x - temp_r31->unk0C.x); + CenterM[arg0].y = temp_r31->unk0C.y + arg3 * (temp_r30->unk0C.y - temp_r31->unk0C.y); + CenterM[arg0].z = temp_r31->unk0C.z + arg3 * (temp_r30->unk0C.z - temp_r31->unk0C.z); + CZoomM[arg0] = temp_r31->unk18 + arg3 * (temp_r30->unk18 - temp_r31->unk18); +} + +float lbl_1_data_8A4[] = { + 95.0f, 95.0f, 135.0f, 95.0f, 95.0f, 125.0f, 135.0f, 125.0f +}; + +void fn_1_106D8(s32 arg0) { + float var_f31; + StructBssBCData* var_r30; + s32 var_r29; + + if (lbl_1_bss_90 != arg0) { + CRotM->x = lbl_1_data_38[arg0].unk00.x; + CRotM->y = lbl_1_data_38[arg0].unk00.y; + CRotM->z = lbl_1_data_38[arg0].unk00.z; + CenterM->x = lbl_1_data_38[arg0].unk0C.x; + CenterM->y = lbl_1_data_38[arg0].unk0C.y; + CenterM->z = lbl_1_data_38[arg0].unk0C.z; + CZoomM[0] = lbl_1_data_38[arg0].unk18; + lbl_1_bss_80 = 0; + if (arg0 != 0) { + lbl_1_bss_7C = frand(); + } else { + lbl_1_bss_7C = 0; + } + lbl_1_bss_90 = arg0; + } + var_r29 = lbl_1_bss_90; + switch (var_r29) { + case 0: + case 1: + case 2: + lbl_1_bss_80++; + if (lbl_1_bss_7C & 1) { + var_f31 = cosd((float) lbl_1_bss_80); + } else { + var_f31 = -cosd((float) lbl_1_bss_80); + } + CRotM->y = 23.0f * var_f31 + lbl_1_data_38[arg0].unk00.y; + break; + case 3: + case 4: + case 5: + lbl_1_bss_80++; + if (lbl_1_bss_7C & 1) { + CRotM->y = lbl_1_data_38[arg0].unk00.y - 45.0f + 0.5f * lbl_1_bss_80; + } else { + CRotM->y = lbl_1_data_38[arg0].unk00.y + 45.0f - 0.5f * lbl_1_bss_80; + } + break; + case 6: + case 7: + case 8: + if (lbl_1_bss_AC[var_r29 - 6] != NULL) { + var_r30 = lbl_1_bss_AC[var_r29 - 6]->data; + CenterM->y = lbl_1_data_8A4[var_r30->unk02]; + } + break; + case 9: + if (lbl_1_bss_B8 != NULL) { + var_r30 = lbl_1_bss_B8->data; + CenterM->x = lbl_1_bss_B8->trans.x; + CenterM->z = lbl_1_bss_B8->trans.z; + CenterM->y = lbl_1_data_8A4[var_r30->unk02]; + } + break; + } +} + +void fn_1_10BC8(void) { + Mtx44 sp64; + Mtx sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + GXColor spC; + CameraData* var_r31; + + var_r31 = &Hu3DCamera[0]; + if (var_r31->fov <= 0.0f) { + return; + } + C_MTXPerspective(sp64, var_r31->fov, var_r31->aspect, var_r31->near, var_r31->far); + GXSetProjection(sp64, GX_PERSPECTIVE); + GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + GXSetScissor(0, 0, 640, 480); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + spC.r = spC.g = spC.b = 0; + spC.a = 0xFF; + GXSetTevColor(GX_TEVREG0, spC); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetCullMode(GX_CULL_NONE); + GXSetZMode(GX_TRUE, GX_ALWAYS, GX_TRUE); + sp28.x = sp28.y = sp28.z = 0.0f; + sp1C.x = sp1C.y = 0.0f; + sp1C.z = -100.0f; + sp10.x = sp10.z = 0.0f; + sp10.y = 1.0f; + C_MTXLookAt(sp34, &sp28, &sp10, &sp1C); + GXLoadPosMtxImm(sp34, GX_PNMTX0); + sp28.x = 10000.0 * -sin(var_r31->fov / 2.0f) * 1.2f; + sp28.y = 10000.0 * -sin(var_r31->fov / 2.0f) * 0.8333333f; + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-sp28.x, -sp28.y, -10000.0f); + GXPosition3f32(sp28.x, -sp28.y, -10000.0f); + GXPosition3f32(sp28.x, sp28.y, -10000.0f); + GXPosition3f32(-sp28.x, sp28.y, -10000.0f); + GXEnd(); +} + +void fn_1_11008(StructBssD0Data* arg0, void* arg1, s16 arg2, GXTexWrapMode arg3, s32 arg4, s32 arg5) { + GXTexObj sp18; + StructBssD0Data* var_r31; + + var_r31 = arg0; + GXInitTexObj(&sp18, arg1, var_r31->unk00, var_r31->unk04, GX_TF_RGB5A3, arg3, arg3, GX_FALSE); + if (arg5 != 0) { + GXInitTexObjLOD(&sp18, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + } else { + GXInitTexObjLOD(&sp18, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + } + GXLoadTexObj(&sp18, arg2); +} + +s16 fn_1_11114(AnimData* arg0, s16 arg1) { + s16 var_r23; + s16 i; + ModelData* temp_r27; + StructM423_05* var_r31; + StructM423_04* var_r29; + Vec* var_r25; + float (*var_r28)[2]; + void* var_r24; + void* var_r22; + + var_r23 = Hu3DHookFuncCreate(fn_1_11900); + temp_r27 = &Hu3DData[var_r23]; + temp_r27->unk_120 = var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r31), temp_r27->unk_48); + var_r31->unk38 = arg0; + var_r31->unk26 = arg1; + var_r31->unk20 = 0; + var_r31->unk22 = 0; + var_r31->unk4C = NULL; + var_r31->unk50 = NULL; + var_r31->unk28 = 0; + var_r31->unk21 = 0; + var_r31->unk23 = 0; + var_r31->unk30 = 0; + var_r31->unk00 = var_r31->unk02 = 0; + var_r31->unk3C = var_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(*var_r29), temp_r27->unk_48); + memset(var_r29, 0, arg1 * sizeof(*var_r29)); + for (i = 0; i < arg1; i++, var_r29++) { + var_r29->unk30 = 0.0f; + var_r29->unk34 = 0.0f; + var_r29->unk28 = 0.0f; + var_r29->unk2C = 1.0f; + var_r29->unk38.x = (frand7() - 64) * 20; + var_r29->unk38.y = (frand7() - 64) * 30; + var_r29->unk38.z = (frand7() - 64) * 20; + var_r29->unk44.r = var_r29->unk44.g = var_r29->unk44.b = var_r29->unk44.a = 0xFF; + var_r29->unk48 = 0; + } + var_r31->unk40 = var_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(*var_r25) * 4, temp_r27->unk_48); + for (i = 0; i < arg1 * 4; i++, var_r25++) { + var_r25->x = var_r25->y = var_r25->z = 0.0f; + } + var_r31->unk44 = var_r28 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(*var_r28) * 4, temp_r27->unk_48); + for (i = 0; i < arg1; i++) { + (*var_r28)[0] = 0.0f; + (*var_r28)[1] = 0.0f; + var_r28++; + (*var_r28)[0] = 1.0f; + (*var_r28)[1] = 0.0f; + var_r28++; + (*var_r28)[0] = 1.0f; + (*var_r28)[1] = 1.0f; + var_r28++; + (*var_r28)[0] = 0.0f; + (*var_r28)[1] = 1.0f; + var_r28++; + } + var_r22 = var_r24 = HuMemDirectMallocNum(HEAP_DATA, 0x10000, temp_r27->unk_48); + DCFlushRange(var_r24, 0x10000); + GXBeginDisplayList(var_r22, 0x10000); + GXBegin(GX_QUADS, GX_VTXFMT0, arg1 * 4); + for (i = 0; i < arg1; i++) { + GXPosition1x16(i * 4); + GXColor1x16(i); + GXTexCoord1x16(i * 4); + + GXPosition1x16(i * 4 + 1); + GXColor1x16(i); + GXTexCoord1x16(i * 4 + 1); + + GXPosition1x16(i * 4 + 2); + GXColor1x16(i); + GXTexCoord1x16(i * 4 + 2); + + GXPosition1x16(i * 4 + 3); + GXColor1x16(i); + GXTexCoord1x16(i * 4 + 3); + } + GXEnd(); + var_r31->unk34 = GXEndDisplayList(); + var_r31->unk48 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk34, temp_r27->unk_48); + memcpy(var_r31->unk48, var_r24, var_r31->unk34); + DCFlushRange(var_r31->unk48, var_r31->unk34); + HuMemDirectFree(var_r24); + return var_r23; +} + +s16 fn_1_115C4(s16 arg0) { + s32 temp_r24; + s16 var_r22; + s16 i; + ModelData* temp_r23; + ModelData* temp_r27; + StructM423_05* temp_r26; + StructM423_05* var_r31; + StructM423_04* var_r30; + Vec* var_r25; + float (*var_r29)[2]; + + temp_r23 = &Hu3DData[arg0]; + temp_r26 = temp_r23->unk_120; + var_r22 = Hu3DHookFuncCreate(temp_r23->hook); + temp_r27 = &Hu3DData[var_r22]; + temp_r27->unk_120 = var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r31), temp_r27->unk_48); + var_r31->unk38 = temp_r26->unk38; + var_r31->unk26 = temp_r26->unk26; + temp_r24 = var_r31->unk26; + var_r31->unk20 = 0; + var_r31->unk22 = temp_r26->unk22; + var_r31->unk4C = NULL; + var_r31->unk50 = NULL; + var_r31->unk28 = 0; + var_r31->unk21 = 0; + var_r31->unk30 = 0; + var_r31->unk00 = var_r31->unk02 = 0; + var_r31->unk3C = var_r30 = HuMemDirectMallocNum(HEAP_DATA, temp_r24 * sizeof(*var_r30), temp_r27->unk_48); + for (i = 0; i < temp_r24; i++, var_r30++) { + var_r30->unk30 = 0.0f; + var_r30->unk34 = 0.0f; + var_r30->unk28 = 0.0f; + var_r30->unk2C = 1.0f; + var_r30->unk38.x = (frand7() - 64) * 20; + var_r30->unk38.y = (frand7() - 64) * 30; + var_r30->unk38.z = (frand7() - 64) * 20; + var_r30->unk44.r = var_r30->unk44.g = var_r30->unk44.b = var_r30->unk44.a = 0xFF; + var_r30->unk48 = 0; + } + var_r31->unk40 = var_r25 = HuMemDirectMallocNum(HEAP_DATA, temp_r24 * sizeof(*var_r25) * 4, temp_r27->unk_48); + for (i = 0; i < (temp_r24 * 4); i++, var_r25++) { + var_r25->x = var_r25->y = var_r25->z = 0.0f; + } + var_r31->unk44 = var_r29 = HuMemDirectMallocNum(HEAP_DATA, temp_r24 * sizeof(*var_r29) * 4, temp_r27->unk_48); + for (i = 0; i < temp_r24; i++) { + (*var_r29)[0] = 0.0f; + (*var_r29)[1] = 0.0f; + var_r29++; + (*var_r29)[0] = 1.0f; + (*var_r29)[1] = 0.0f; + var_r29++; + (*var_r29)[0] = 1.0f; + (*var_r29)[1] = 1.0f; + var_r29++; + (*var_r29)[0] = 0.0f; + (*var_r29)[1] = 1.0f; + var_r29++; + } + var_r31->unk34 = temp_r26->unk34; + var_r31->unk48 = temp_r26->unk48; + return var_r22; +} + +Vec lbl_1_data_8C4[] = { + { -0.5f, 0.5f, 0.0f }, + { 0.5f, 0.5f, 0.0f }, + { 0.5f, -0.5f, 0.0f }, + { -0.5f, -0.5f, 0.0f } +}; + +float lbl_1_data_8F4[][2] = { + { 0.0f, 0.0f }, + { 0.25f, 0.0f }, + { 0.25f, 0.25f }, + { 0.0f, 0.25f } +}; + +void fn_1_11900(ModelData* arg0, Mtx arg1) { + Mtx sp128; + Mtx spF8; + Mtx spC8; + Vec sp98[4]; + Vec sp68[4]; + Vec sp38[4]; + ROMtx sp8; + StructM423_05* temp_r31; + StructM423_04* var_r29; + Vec* var_r30; + float (*var_r28)[2]; + Vec* temp_r27; + Vec* temp_r24; + s16 var_r21; + s16 var_r20; + s16 var_r19; + void (*var_r18)(ModelData*, struct struct_m423_05*, Mtx); + s16 i; + s16 j; + + temp_r31 = arg0->unk_120; + if (temp_r31->unk2C == GlobalCounter && shadowModelDrawF == 0) { + return; + } + if (temp_r31->unk50 && temp_r31->unk50 != arg0) { + fn_1_11900(temp_r31->unk50, arg1); + } + GXLoadPosMtxImm(arg1, GX_PNMTX0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + if (shadowModelDrawF != 0) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ONE, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + } else { + var_r21 = temp_r31->unk38->bmp->dataFmt & 0xF; + if (var_r21 == 7 || var_r21 == 8) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); + } else { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + } + if (temp_r31->unk22 & 1) { + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + } else if (arg0->attr & 2) { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + } else { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + } + } + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_CLAMP, GX_AF_NONE); + HuSprTexLoad(temp_r31->unk38, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(GX_FALSE); + switch (temp_r31->unk20) { + case 0: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + break; + case 1: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + break; + case 2: + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + break; + } + if (HmfInverseMtxF3X3(arg1, sp128) == 0) { + PSMTXIdentity(sp128); + } + PSMTXReorder(sp128, sp8); + if (temp_r31->unk4C) { + var_r18 = temp_r31->unk4C; + var_r18(arg0, temp_r31, arg1); + } + var_r29 = temp_r31->unk3C; + var_r30 = temp_r31->unk40; + var_r28 = temp_r31->unk44; + PSMTXROMultVecArray(sp8, lbl_1_data_8C4, sp38, 4); + for (i = 0; i < temp_r31->unk26; i++, var_r29++) { + if (!var_r29->unk30) { + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + } else if (!var_r29->unk34) { + temp_r27 = sp98; + temp_r24 = sp38; + PSVECScale(temp_r24++, temp_r27, var_r29->unk30); + PSVECAdd(temp_r27++, &var_r29->unk38, var_r30++); + PSVECScale(temp_r24++, temp_r27, var_r29->unk30); + PSVECAdd(temp_r27++, &var_r29->unk38, var_r30++); + PSVECScale(temp_r24++, temp_r27, var_r29->unk30); + PSVECAdd(temp_r27++, &var_r29->unk38, var_r30++); + PSVECScale(temp_r24++, temp_r27, var_r29->unk30); + PSVECAdd(temp_r27++, &var_r29->unk38, var_r30++); + } else { + PSVECScale(&lbl_1_data_8C4[0], &sp98[0], var_r29->unk30); + PSVECScale(&lbl_1_data_8C4[1], &sp98[1], var_r29->unk30); + PSVECScale(&lbl_1_data_8C4[2], &sp98[2], var_r29->unk30); + PSVECScale(&lbl_1_data_8C4[3], &sp98[3], var_r29->unk30); + PSMTXRotRad(spC8, 'Z', var_r29->unk34); + PSMTXConcat(sp128, spC8, spF8); + PSMTXMultVecArray(spF8, sp98, sp68, 4); + PSVECAdd(&sp68[0], &var_r29->unk38, var_r30++); + PSVECAdd(&sp68[1], &var_r29->unk38, var_r30++); + PSVECAdd(&sp68[2], &var_r29->unk38, var_r30++); + PSVECAdd(&sp68[3], &var_r29->unk38, var_r30++); + } + } + var_r29 = temp_r31->unk3C; + var_r28 = temp_r31->unk44; + if (!(temp_r31->unk22 & 2)) { + for (i = 0; i < temp_r31->unk26; i++, var_r29++) { + var_r20 = var_r29->unk48 & 3; + var_r19 = (var_r29->unk48 >> 2) & 3; + for (j = 0; j < 4; j++, var_r28++) { + (*var_r28)[0] = 0.25f * var_r20 + lbl_1_data_8F4[j][0]; + (*var_r28)[1] = 0.25f * var_r19 + lbl_1_data_8F4[j][1]; + } + } + } else { + for (i = 0; i < temp_r31->unk26; i++, var_r29++) { + for (j = 0; j < 4; j++, var_r28++) { + (*var_r28)[0] = 4.0f * lbl_1_data_8F4[j][0]; + (*var_r28)[1] = 4.0f * lbl_1_data_8F4[j][1]; + } + } + } + DCFlushRangeNoSync(temp_r31->unk40, temp_r31->unk26 * sizeof(*temp_r31->unk40) * 4); + DCFlushRangeNoSync(temp_r31->unk44, temp_r31->unk26 * sizeof(*temp_r31->unk44) * 4); + DCFlushRangeNoSync(temp_r31->unk3C, temp_r31->unk26 * sizeof(*temp_r31->unk3C)); + PPCSync(); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r31->unk40, 12); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &temp_r31->unk3C->unk44, 76); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, temp_r31->unk44, 8); + GXCallDisplayList(temp_r31->unk48, temp_r31->unk34); + if (shadowModelDrawF == 0) { + if (!(temp_r31->unk21 & 2)) { + temp_r31->unk28++; + } + if (temp_r31->unk30 != 0 && temp_r31->unk30 <= temp_r31->unk28) { + if (temp_r31->unk21 & 1) { + temp_r31->unk28 = 0; + } + temp_r31->unk28 = temp_r31->unk30; + } + temp_r31->unk2C = GlobalCounter; + } +} + +float fn_1_121DC(float arg0, float arg1) { + float var_f31; + + if (arg0 >= 360.0f) { + arg0 -= 360.0f; + } else if (arg0 < 0.0f) { + arg0 += 360.0f; + } + if (arg1 >= 360.0f) { + arg1 -= 360.0f; + } else if (arg1 < 0.0f) { + arg1 += 360.0f; + } + var_f31 = arg0 - arg1; + if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } else if (var_f31 >= 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} + +float fn_1_122F4(float arg0, float arg1, float arg2) { + float var_f30; + float var_f31; + + if (arg0 >= 360.0) { + arg0 -= 360.0; + } else if (arg0 < 0.0) { + arg0 += 360.0; + } + if (arg1 >= 360.0) { + arg1 -= 360.0; + } else if (arg1 < 0.0) { + arg1 += 360.0; + } + var_f30 = arg0 - arg1 + 360.0; + if (fabs(var_f30) >= 360.0) { + var_f30 = fmod(var_f30, 360.0); + } + if (var_f30 < 180.0) { + if (var_f30 <= arg2) { + var_f31 = var_f30; + } else { + var_f31 = arg2; + } + } else { + if (360.0 - var_f30 <= arg2) { + var_f31 = -(360.0 - var_f30); + } else { + var_f31 = -arg2; + } + } + var_f31 += arg1; + if (var_f31 >= 360.0) { + var_f31 -= 360.0; + } else if (var_f31 < 0.0) { + var_f31 += 360.0; + } + return var_f31; +} + +float fn_1_12544(float arg0, float arg1, float arg2) { + float var_f28; + + var_f28 = fn_1_121DC(arg2, arg1); + return fn_1_122F4(arg2, arg1, fabs(var_f28 * arg0)); +} + +void fn_1_1293C(Mtx arg0, Vec* arg1) { + Vec sp8; + + sp8.x = arg0[0][0] * arg1->x + arg0[0][1] * arg1->y + arg0[0][2] * arg1->z; + sp8.y = arg0[1][0] * arg1->x + arg0[1][1] * arg1->y + arg0[1][2] * arg1->z; + sp8.z = arg0[2][0] * arg1->x + arg0[2][1] * arg1->y + arg0[2][2] * arg1->z; + *arg1 = sp8; +} + +void fn_1_129F0(Vec* arg0, Vec* arg1, Vec* arg2, float* arg3) { + Vec sp18; + Vec spC; + float var_f30; + float var_f29; + + sp18.x = arg1->x - arg0->x; + sp18.y = arg1->y - arg0->y; + sp18.z = arg1->z - arg0->z; + spC.x = arg2->x - arg1->x; + spC.y = arg2->y - arg1->y; + spC.z = arg2->z - arg1->z; + arg3[0] = sp18.y * spC.z - sp18.z * spC.y; + arg3[1] = sp18.z * spC.x - sp18.x * spC.z; + arg3[2] = sp18.x * spC.y - sp18.y * spC.x; + var_f29 = arg3[0] * arg3[0] + arg3[1] * arg3[1] + arg3[2] * arg3[2]; + var_f30 = sqrtf(var_f29); + if (var_f30 != 0.0f) { + var_f30 = 1.0f / var_f30; + } else { + var_f30 = 0.0f; + } + arg3[0] *= var_f30; + arg3[1] *= var_f30; + arg3[2] *= var_f30; + arg3[3] = -(arg3[0] * arg0->x + arg3[1] * arg0->y + arg3[2] * arg0->z); +} + +s32 fn_1_12C6C(Vec* arg0, Vec* arg1, float* arg2) { + float temp_f31; + float temp_f30; + + temp_f31 = arg0->x * arg2[0] + arg0->y * arg2[1] + arg0->z * arg2[2] + arg2[3]; + temp_f30 = arg1->x * arg2[0] + arg1->y * arg2[1] + arg1->z * arg2[2] + arg2[3]; + if (temp_f31 <= 0.0f && temp_f30 > 0.0f) { + return 1; + } + if (temp_f31 >= 0.0f && temp_f30 < 0.0f) { + return -1; + } + return 0; +} + +float fn_1_12D6C(Vec* arg0, Vec* arg1, s32 arg2, float arg3, float arg4) { + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + + switch (arg2) { + case 0: + var_f31 = arg0->y - arg3; + var_f30 = arg0->z - arg4; + var_f29 = arg1->y - arg3; + var_f28 = arg1->z - arg4; + break; + case 1: + var_f31 = arg0->x - arg3; + var_f30 = arg0->z - arg4; + var_f29 = arg1->x - arg3; + var_f28 = arg1->z - arg4; + break; + case 2: + var_f31 = arg0->x - arg3; + var_f30 = arg0->y - arg4; + var_f29 = arg1->x - arg3; + var_f28 = arg1->y - arg4; + break; + } + var_f27 = -(var_f30 * var_f29 - var_f31 * var_f28); + return var_f27; +} + +u8 lbl_1_data_914[][2] = { + { 0, 1 }, { 1, 2 }, { 2, 0 } +}; + +float fn_1_12E68(Vec* arg0, Vec* arg1, s32 arg2) { + float var_f31; + float var_f30; + float var_f29; + s32 i; + + switch (arg2) { + case 0: + var_f31 = arg1->y; + var_f30 = arg1->z; + break; + case 1: + var_f31 = arg1->x; + var_f30 = arg1->z; + break; + case 2: + var_f31 = arg1->x; + var_f30 = arg1->y; + break; + } + var_f29 = fn_1_12D6C(&arg0[lbl_1_data_914[0][0]], &arg0[lbl_1_data_914[0][1]], arg2, var_f31, var_f30); + if (var_f29 > 0.0f) { + for (i = 1; i < 3; i++) { + var_f29 = fn_1_12D6C(&arg0[lbl_1_data_914[i][0]], &arg0[lbl_1_data_914[i][1]], arg2, var_f31, var_f30); + if (var_f29 == 0.0f) { + return 1.0f; + } + if (var_f29 < 0.0f) { + return 0.0f; + } + } + return 1.0f; + } else { + for (i = 1; i < 3; i++) { + var_f29 = fn_1_12D6C(&arg0[lbl_1_data_914[i][0]], &arg0[lbl_1_data_914[i][1]], arg2, var_f31, var_f30); + if (var_f29 == 0.0f) { + return -1.0f; + } + if (var_f29 > 0.0f) { + return 0.0f; + } + } + return -1.0f; + } +} + +void fn_1_1334C(float* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { + float temp_f26; + float temp_f25; + float temp_f24; + float temp_f31; + float temp_f30; + float temp_f29; + float var_f22; + float var_f21; + float var_f20; + float var_f19; + float var_f18; + float spC; + float var_f28; + + temp_f26 = arg0[0]; + temp_f25 = arg0[1]; + temp_f24 = arg0[2]; + var_f19 = arg3->x; + var_f18 = arg3->y; + spC = arg3->z; + temp_f31 = arg2->x; + temp_f30 = arg2->y; + temp_f29 = arg2->z; + var_f22 = arg1->x; + var_f21 = arg1->y; + var_f20 = arg1->z; + var_f28 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30 + temp_f29 * temp_f29); + if (var_f28 != 0.0f) { + var_f28 = 1.0f / var_f28; + } + temp_f31 *= var_f28; + temp_f30 *= var_f28; + temp_f29 *= var_f28; + var_f28 = temp_f26 * temp_f31 + temp_f25 * temp_f30 + temp_f24 * temp_f29; + if (var_f28 != 0.0f) { + var_f28 = -(temp_f26 * (var_f22 - var_f19) + temp_f25 * (var_f21 - var_f18) + temp_f24 * (var_f20 - spC)) / var_f28; + } else { + var_f28 = 0.0f; + } + arg4->x = arg1->x + var_f28 * arg2->x; + arg4->y = arg1->y + var_f28 * arg2->y; + arg4->z = arg1->z + var_f28 * arg2->z; +} + +float fn_1_1367C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, f32* arg4) { + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float temp_f31; + + arg0->z = 0.0f; + arg1->z = 0.0f; + arg2->z = 0.0f; + PSVECSubtract(arg1, arg0, &sp2C); + PSVECSubtract(arg2, arg0, &sp20); + temp_f31 = (sp2C.x * sp20.x + sp2C.y * sp20.y) / (sp2C.x * sp2C.x + sp2C.y * sp2C.y); + if (arg4 != NULL) { + *arg4 = temp_f31; + } + PSVECScale(&sp2C, &sp14, temp_f31); + PSVECAdd(&sp2C, &sp14, &sp38); + if (arg3 != NULL) { + *arg3 = sp38; + } + PSVECSubtract(arg2, &sp38, &sp8); + return PSVECMag(&sp8); +} + +s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) { + Vec sp40; + Vec sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + f32 temp_f30; + f32 temp_f29; + f32 temp_f28; + f32 var_f31; + + PSVECAdd(arg1, arg2, &sp28); + *arg3 = sp28; + PSVECNormalize(arg2, &sp1C); + PSVECScale(&sp1C, &sp1C, arg4); + PSVECAdd(arg1, &sp1C, &sp40); + PSVECAdd(&sp28, &sp1C, &sp34); + PSVECNormalize(arg2, &sp1C); + PSVECScale(&sp1C, &sp10, -arg4); + switch (arg5) { + case 0: + if (sp40.y >= arg0[0].y && sp34.y < arg0[0].y) { + if (sp1C.y == 0.0f) { + var_f31 = 0.0f; + } else { + var_f31 = (arg0[0].y - arg1->y) / sp1C.y; + } + temp_f30 = arg1->x + var_f31 * sp1C.x; + temp_f28 = arg1->z + var_f31 * sp1C.z; + if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x + && temp_f28 >= arg0[0].z && temp_f28 <= arg0[2].z) + { + arg3->x = temp_f30; + arg3->y = arg0[0].y + arg4 + 1.0f; + arg3->z = temp_f28; + PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + return 1; + } + } + break; + case 1: + if (sp40.y <= arg0[0].y && sp34.y > arg0[0].y) { + if (sp1C.y == 0.0f) { + var_f31 = 0.0f; + } else { + var_f31 = (arg0[0].y - arg1->y) / sp1C.y; + } + temp_f30 = arg1->x + var_f31 * sp1C.x; + temp_f28 = arg1->z + var_f31 * sp1C.z; + if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x + && temp_f28 <= arg0[0].z && temp_f28 >= arg0[2].z) + { + arg3->x = temp_f30; + arg3->y = arg0[0].y - arg4 - 1.0f; + arg3->z = temp_f28; + PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + return 1; + } + } + break; + case 2: + if (sp40.x <= arg0[0].x && sp34.x > arg0[0].x) { + if (sp1C.x == 0.0f) { + var_f31 = 0.0f; + } else { + var_f31 = (arg0[0].x - arg1->x) / sp1C.x; + } + temp_f29 = arg1->y + var_f31 * sp1C.y; + temp_f28 = arg1->z + var_f31 * sp1C.z; + if (temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y + && temp_f28 >= arg0[0].z && temp_f28 <= arg0[2].z) + { + arg3->x = arg0[0].x - arg4 - 1.0f; + arg3->y = temp_f29; + arg3->z = temp_f28; + PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + return 1; + } + } + break; + case 3: + if (sp40.x >= arg0[0].x && sp34.x < arg0[0].x) { + if (sp1C.x == 0.0f) { + var_f31 = 0.0f; + } else { + var_f31 = (arg0[0].x - arg1->x) / sp1C.x; + } + temp_f29 = arg1->y + var_f31 * sp1C.y; + temp_f28 = arg1->z + var_f31 * sp1C.z; + if (temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y + && temp_f28 <= arg0[0].z && temp_f28 >= arg0[2].z) + { + arg3->x = arg0[0].x + arg4 + 1.0f; + arg3->y = temp_f29; + arg3->z = temp_f28; + PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + return 1; + } + } + break; + case 4: + if (sp40.z >= arg0[0].z && sp34.z < arg0[0].z) { + if (sp1C.z == 0.0f) { + var_f31 = 0.0f; + } else { + var_f31 = (arg0[0].z - arg1->z) / sp1C.z; + } + temp_f30 = arg1->x + var_f31 * sp1C.x; + temp_f29 = arg1->y + var_f31 * sp1C.y; + if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x + && temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y) + { + arg3->x = temp_f30; + arg3->y = temp_f29; + arg3->z = arg0[0].z + arg4 + 1.0f; + PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + return 1; + } + } + break; + case 5: + if (sp40.z <= arg0[0].z && sp34.z > arg0[0].z) { + if (sp1C.z == 0.0f) { + var_f31 = 0.0f; + } else { + var_f31 = (arg0[0].z - arg1->z) / sp1C.z; + } + temp_f30 = arg1->x + var_f31 * sp1C.x; + temp_f29 = arg1->y + var_f31 * sp1C.y; + if (temp_f30 <= arg0[0].x && temp_f30 >= arg0[2].x + && temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y) + { + arg3->x = temp_f30; + arg3->y = temp_f29; + arg3->z = arg0[0].z - arg4 - 1.0f; + PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + return 1; + } + } + break; + } + return 0; +} diff --git a/src/REL/m426Dll/main.c b/src/REL/m426Dll/main.c index ae15dbe3..7066b831 100644 --- a/src/REL/m426Dll/main.c +++ b/src/REL/m426Dll/main.c @@ -3170,7 +3170,7 @@ void fn_1_88B4(ModelData *arg0, Mtx arg1) GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXSetArray(GX_VA_POS, lbl_1_data_27C, 12); GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); diff --git a/src/REL/m440Dll/main.c b/src/REL/m440Dll/main.c index 1ec95168..e6c29642 100644 --- a/src/REL/m440Dll/main.c +++ b/src/REL/m440Dll/main.c @@ -1875,11 +1875,11 @@ void fn_1_806C(ModelData *arg0, Mtx arg1) GXSetChanMatColor(GX_COLOR0A0, sp10); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, temp_r31->unkC, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r31->unkC, 12); GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_TEX_S, GX_RGBA6, 0); - GXSetArray(GX_VA_NRM, temp_r31->unk14, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, temp_r31->unk14, 12); lbl_1_bss_C = temp_r31->unk3C; if (temp_r31->unk28->unk34 == 0) { GXSetNumTevStages(1); @@ -1893,7 +1893,7 @@ void fn_1_806C(ModelData *arg0, Mtx arg1) } else { GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetArray(GX_VA_TEX0, temp_r31->unk1C, 8); temp_r29 = &temp_r31->unk2C[temp_r31->unk28->unk38[0]]; fn_1_7D60(temp_r29->unk80, temp_r29, 0); @@ -2600,7 +2600,7 @@ void fn_1_A390(ModelData *arg0, Mtx arg1) GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetNumTevStages(1); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_RASC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); diff --git a/src/REL/m448Dll/main.c b/src/REL/m448Dll/main.c index fce3e974..1ee1eb09 100755 --- a/src/REL/m448Dll/main.c +++ b/src/REL/m448Dll/main.c @@ -220,11 +220,11 @@ void fn_1_4FC(ModelData *model, Mtx matrix) GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); for (i = 0; i < 0; i++) { s32 sp84[5] = { 0, 1, 1, 0, 1 }; float sp70[5] = { 1.0f, 2.0f, 2.5f, 0.0f, 0.0f }; diff --git a/src/REL/modeltestDll/main.c b/src/REL/modeltestDll/main.c index a871df64..7c8dc93a 100644 --- a/src/REL/modeltestDll/main.c +++ b/src/REL/modeltestDll/main.c @@ -775,13 +775,13 @@ void fn_1_2B68(ModelData *mdl, Mtx arg1) GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); GXSetVtxDesc(GX_VA_NRM, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0U); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0U); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0U); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); GXSetCullMode(GX_CULL_NONE); GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE); GXSetNumTexGens(1); - GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3CU, 0U, 0x7DU); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); GXSetNumTevStages(1); sp17.r = sp17.g = sp17.b = sp17.a = 255; From dd04a5faff8005e05ec1ce966f5ad4194d066863 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 30 Dec 2024 20:54:58 +0100 Subject: [PATCH 219/311] Match ar/ar.c --- configure.py | 2 +- src/dolphin/ar/ar.c | 418 +++++++++++++++++++++++++++++--------------- 2 files changed, 277 insertions(+), 143 deletions(-) diff --git a/configure.py b/configure.py index 08fc269a..88e5c103 100644 --- a/configure.py +++ b/configure.py @@ -567,7 +567,7 @@ config.libs = [ DolphinLib( "ar", [ - Object(NonMatching, "dolphin/ar/ar.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/ar/ar.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/ar/arq.c"), ], ), diff --git a/src/dolphin/ar/ar.c b/src/dolphin/ar/ar.c index 7f43c1a7..529a6000 100644 --- a/src/dolphin/ar/ar.c +++ b/src/dolphin/ar/ar.c @@ -2,6 +2,7 @@ #include "dolphin/hw_regs.h" #include "dolphin/os.h" +#include "dolphin/os/OSCache.h" static ARCallback __AR_Callback; static u32 __AR_Size; @@ -10,82 +11,89 @@ static u32 __AR_ExpansionSize; static u32 __AR_StackPointer; static u32 __AR_FreeBlocks; -static u32* __AR_BlockLength; +static u32 *__AR_BlockLength; static volatile BOOL __AR_init_flag = FALSE; -static void __ARHandler(__OSInterrupt interrupt, OSContext* context); +static void __ARHandler(__OSInterrupt interrupt, OSContext *context); static void __ARChecksize(void); static void __ARClearArea(u32 start_addr, u32 length); -ARCallback ARRegisterDMACallback(ARCallback callback) { - ARCallback oldCb; - BOOL enabled; - oldCb = __AR_Callback; - enabled = OSDisableInterrupts(); - __AR_Callback = callback; - OSRestoreInterrupts(enabled); - return oldCb; +// TODO import defines for magic numbers from other repos + +ARCallback ARRegisterDMACallback(ARCallback callback) +{ + ARCallback oldCb; + BOOL enabled; + oldCb = __AR_Callback; + enabled = OSDisableInterrupts(); + __AR_Callback = callback; + OSRestoreInterrupts(enabled); + return oldCb; } -u32 ARGetDMAStatus() { - BOOL enabled; - u32 val; - enabled = OSDisableInterrupts(); - val = __DSPRegs[5] & 0x0200; - OSRestoreInterrupts(enabled); - return val; +u32 ARGetDMAStatus() +{ + BOOL enabled; + u32 val; + enabled = OSDisableInterrupts(); + val = __DSPRegs[5] & 0x0200; + OSRestoreInterrupts(enabled); + return val; } -void ARStartDMA(u32 type, u32 mainmem_addr, u32 aram_addr, u32 length) { - BOOL enabled; +void ARStartDMA(u32 type, u32 mainmem_addr, u32 aram_addr, u32 length) +{ + BOOL enabled; - enabled = OSDisableInterrupts(); + enabled = OSDisableInterrupts(); - __DSPRegs[16] = (u16)(__DSPRegs[16] & ~0x3ff) | (u16)(mainmem_addr >> 16); - __DSPRegs[17] = (u16)(__DSPRegs[17] & ~0xffe0) | (u16)(mainmem_addr & 0xffff); - __DSPRegs[18] = (u16)(__DSPRegs[18] & ~0x3ff) | (u16)(aram_addr >> 16); - __DSPRegs[19] = (u16)(__DSPRegs[19] & ~0xffe0) | (u16)(aram_addr & 0xffff); - __DSPRegs[20] = (u16)((__DSPRegs[20] & ~0x8000) | (type << 15)); - __DSPRegs[20] = (u16)(__DSPRegs[20] & ~0x3ff) | (u16)(length >> 16); - __DSPRegs[21] = (u16)(__DSPRegs[21] & ~0xffe0) | (u16)(length & 0xffff); - OSRestoreInterrupts(enabled); + __DSPRegs[16] = (u16)(__DSPRegs[16] & ~0x3ff) | (u16)(mainmem_addr >> 16); + __DSPRegs[17] = (u16)(__DSPRegs[17] & ~0xffe0) | (u16)(mainmem_addr & 0xffff); + __DSPRegs[18] = (u16)(__DSPRegs[18] & ~0x3ff) | (u16)(aram_addr >> 16); + __DSPRegs[19] = (u16)(__DSPRegs[19] & ~0xffe0) | (u16)(aram_addr & 0xffff); + __DSPRegs[20] = (u16)((__DSPRegs[20] & ~0x8000) | (type << 15)); + __DSPRegs[20] = (u16)(__DSPRegs[20] & ~0x3ff) | (u16)(length >> 16); + __DSPRegs[21] = (u16)(__DSPRegs[21] & ~0xffe0) | (u16)(length & 0xffff); + OSRestoreInterrupts(enabled); } -u32 ARAlloc(u32 length) { - u32 tmp; - BOOL enabled; +u32 ARAlloc(u32 length) +{ + u32 tmp; + BOOL enabled; - enabled = OSDisableInterrupts(); - tmp = __AR_StackPointer; - __AR_StackPointer += length; - *__AR_BlockLength = length; - __AR_BlockLength++; - __AR_FreeBlocks--; - OSRestoreInterrupts(enabled); + enabled = OSDisableInterrupts(); + tmp = __AR_StackPointer; + __AR_StackPointer += length; + *__AR_BlockLength = length; + __AR_BlockLength++; + __AR_FreeBlocks--; + OSRestoreInterrupts(enabled); - return tmp; + return tmp; } #if NONMATCHING -u32 ARFree(u32* length) { - BOOL old; +u32 ARFree(u32 *length) +{ + BOOL old; - old = OSDisableInterrupts(); + old = OSDisableInterrupts(); - __AR_BlockLength--; + __AR_BlockLength--; - if (length) { - *length = *__AR_BlockLength; - } + if (length) { + *length = *__AR_BlockLength; + } - __AR_StackPointer -= *__AR_BlockLength; + __AR_StackPointer -= *__AR_BlockLength; - __AR_FreeBlocks++; + __AR_FreeBlocks++; - OSRestoreInterrupts(old); + OSRestoreInterrupts(old); - return __AR_StackPointer; + return __AR_StackPointer; } #else /* clang-format off */ @@ -129,123 +137,249 @@ lbl_8036DAB4: /* clang-format on */ #endif -BOOL ARCheckInit() { return __AR_init_flag; } - -u32 ARInit(u32* stack_index_addr, u32 num_entries) { - - BOOL old; - u16 refresh; - - if (__AR_init_flag == TRUE) { - return 0x4000; - } - - old = OSDisableInterrupts(); - - __AR_Callback = NULL; - - __OSSetInterruptHandler(__OS_INTERRUPT_DSP_ARAM, __ARHandler); - __OSUnmaskInterrupts(OS_INTERRUPTMASK_DSP_ARAM); - - __AR_StackPointer = 0x4000; - __AR_FreeBlocks = num_entries; - __AR_BlockLength = stack_index_addr; - - refresh = (u16)(__DSPRegs[13] & 0x000000ff); - - __DSPRegs[13] = (u16)((__DSPRegs[13] & ~0x000000ff) | (refresh & 0x000000ff)); - - __ARChecksize(); - - __AR_init_flag = TRUE; - - OSRestoreInterrupts(old); - - return __AR_StackPointer; -} - -u32 ARGetBaseAddress(void) { return 0x4000; } - -void ARSetSize(void) +BOOL ARCheckInit() { - + return __AR_init_flag; } -u32 ARGetSize() { return __AR_Size; } +u32 ARInit(u32 *stack_index_addr, u32 num_entries) +{ -static void __ARHandler(__OSInterrupt interrupt, OSContext* context) { + BOOL old; + u16 refresh; - OSContext exceptionContext; - u16 tmp; + if (__AR_init_flag == TRUE) { + return 0x4000; + } - tmp = __DSPRegs[5]; - tmp = (u16)((tmp & ~0x00000088) | 0x20); - __DSPRegs[5] = tmp; + old = OSDisableInterrupts(); - OSClearContext(&exceptionContext); - OSSetCurrentContext(&exceptionContext); + __AR_Callback = NULL; - if (__AR_Callback) { - (*__AR_Callback)(); - } + __OSSetInterruptHandler(__OS_INTERRUPT_DSP_ARAM, __ARHandler); + __OSUnmaskInterrupts(OS_INTERRUPTMASK_DSP_ARAM); - OSClearContext(&exceptionContext); - OSSetCurrentContext(context); + __AR_StackPointer = 0x4000; + __AR_FreeBlocks = num_entries; + __AR_BlockLength = stack_index_addr; + + refresh = (u16)(__DSPRegs[13] & 0x000000ff); + + __DSPRegs[13] = (u16)((__DSPRegs[13] & ~0x000000ff) | (refresh & 0x000000ff)); + + __ARChecksize(); + + __AR_init_flag = TRUE; + + OSRestoreInterrupts(old); + + return __AR_StackPointer; +} + +void ARSetSize(void) { } + +u32 ARGetBaseAddress(void) +{ + return 0x4000; +} + +u32 ARGetSize() +{ + return __AR_Size; +} + +static void __ARHandler(__OSInterrupt interrupt, OSContext *context) +{ + + OSContext exceptionContext; + u16 tmp; + + tmp = __DSPRegs[5]; + tmp = (u16)((tmp & ~0x00000088) | 0x20); + __DSPRegs[5] = tmp; + + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + + if (__AR_Callback) { + (*__AR_Callback)(); + } + + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); } #define RoundUP32(x) (((u32)(x) + 32 - 1) & ~(32 - 1)) -void __ARClearInterrupt(void) { +void __ARClearInterrupt(void) +{ - u16 tmp; - tmp = __DSPRegs[5]; - tmp = (u16)((tmp & ~(0x00000080 | 0x00000008)) | 0x00000020); - __DSPRegs[5] = tmp; + u16 tmp; + tmp = __DSPRegs[5]; + tmp = (u16)((tmp & ~(0x00000080 | 0x00000008)) | 0x00000020); + __DSPRegs[5] = tmp; } -u16 __ARGetInterruptStatus(void) { return ((u16)(__DSPRegs[5] & 0x0200)); } - -static void __ARWaitForDMA(void) { - - while (__DSPRegs[5] & 0x0200) { - } +u16 __ARGetInterruptStatus(void) +{ + return ((u16)(__DSPRegs[5] & 0x0200)); } -static void __ARWriteDMA(u32 mmem_addr, u32 aram_addr, u32 length) { +static void __ARWaitForDMA(void) +{ - __DSPRegs[16] = (u16)((__DSPRegs[16] & ~0x03ff) | (u16)(mmem_addr >> 16)); - __DSPRegs[16 + 1] = (u16)((__DSPRegs[16 + 1] & ~0xffe0) | (u16)(mmem_addr & 0xffff)); - - __DSPRegs[18] = (u16)((__DSPRegs[18] & ~0x03ff) | (u16)(aram_addr >> 16)); - __DSPRegs[18 + 1] = (u16)((__DSPRegs[18 + 1] & ~0xffe0) | (u16)(aram_addr & 0xffff)); - - __DSPRegs[20] = (u16)(__DSPRegs[20] & ~0x8000); - - __DSPRegs[20] = (u16)((__DSPRegs[20] & ~0x03ff) | (u16)(length >> 16)); - __DSPRegs[20 + 1] = (u16)((__DSPRegs[20 + 1] & ~0xffe0) | (u16)(length & 0xffff)); - - __ARWaitForDMA(); - - __ARClearInterrupt(); + while (__DSPRegs[5] & 0x0200) { } } -static void __ARReadDMA(u32 mmem_addr, u32 aram_addr, u32 length) { +static void __ARWriteDMA(u32 mmem_addr, u32 aram_addr, u32 length) +{ - __DSPRegs[16] = (u16)((__DSPRegs[16] & ~0x03ff) | (u16)(mmem_addr >> 16)); - __DSPRegs[16 + 1] = (u16)((__DSPRegs[16 + 1] & ~0xffe0) | (u16)(mmem_addr & 0xffff)); + __DSPRegs[16] = (u16)((__DSPRegs[16] & ~0x03ff) | (u16)(mmem_addr >> 16)); + __DSPRegs[16 + 1] = (u16)((__DSPRegs[16 + 1] & ~0xffe0) | (u16)(mmem_addr & 0xffff)); - __DSPRegs[18] = (u16)((__DSPRegs[18] & ~0x03ff) | (u16)(aram_addr >> 16)); - __DSPRegs[18 + 1] = (u16)((__DSPRegs[18 + 1] & ~0xffe0) | (u16)(aram_addr & 0xffff)); + __DSPRegs[18] = (u16)((__DSPRegs[18] & ~0x03ff) | (u16)(aram_addr >> 16)); + __DSPRegs[18 + 1] = (u16)((__DSPRegs[18 + 1] & ~0xffe0) | (u16)(aram_addr & 0xffff)); - __DSPRegs[20] = (u16)(__DSPRegs[20] | 0x8000); + __DSPRegs[20] = (u16)(__DSPRegs[20] & ~0x8000); - __DSPRegs[20] = (u16)((__DSPRegs[20] & ~0x03ff) | (u16)(length >> 16)); - __DSPRegs[20 + 1] = (u16)((__DSPRegs[20 + 1] & ~0xffe0) | (u16)(length & 0xffff)); + __DSPRegs[20] = (u16)((__DSPRegs[20] & ~0x03ff) | (u16)(length >> 16)); + __DSPRegs[20 + 1] = (u16)((__DSPRegs[20 + 1] & ~0xffe0) | (u16)(length & 0xffff)); - __ARWaitForDMA(); + __ARWaitForDMA(); - __ARClearInterrupt(); + __ARClearInterrupt(); } -static void __ARChecksize(void) { - //TODO: Implement for this SDK version -} \ No newline at end of file +static void __ARReadDMA(u32 mmem_addr, u32 aram_addr, u32 length) +{ + + __DSPRegs[16] = (u16)((__DSPRegs[16] & ~0x03ff) | (u16)(mmem_addr >> 16)); + __DSPRegs[16 + 1] = (u16)((__DSPRegs[16 + 1] & ~0xffe0) | (u16)(mmem_addr & 0xffff)); + + __DSPRegs[18] = (u16)((__DSPRegs[18] & ~0x03ff) | (u16)(aram_addr >> 16)); + __DSPRegs[18 + 1] = (u16)((__DSPRegs[18 + 1] & ~0xffe0) | (u16)(aram_addr & 0xffff)); + + __DSPRegs[20] = (u16)(__DSPRegs[20] | 0x8000); + + __DSPRegs[20] = (u16)((__DSPRegs[20] & ~0x03ff) | (u16)(length >> 16)); + __DSPRegs[20 + 1] = (u16)((__DSPRegs[20 + 1] & ~0xffe0) | (u16)(length & 0xffff)); + + __ARWaitForDMA(); + + __ARClearInterrupt(); +} + +void __ARChecksize(void) +{ + u8 test_data_pad[0x20 + 31]; + u8 dummy_data_pad[0x20 + 31]; + u8 buffer_pad[0x20 + 31]; + + u32 *test_data; + u32 *dummy_data; + u32 *buffer; + + u16 ARAM_mode; + u32 ARAM_size; + + u32 i; + + while (!(__DSPRegs[11] & 1)) + ; + + ARAM_mode = 3; + ARAM_size = __AR_InternalSize = 0x1000000; + __DSPRegs[9] = (u16)((__DSPRegs[9] & ~(0x00000007 | 0x00000038)) | 0x20 | 2 | 1); + + test_data = (u32 *)(RoundUP32((u32)(test_data_pad))); + dummy_data = (u32 *)(RoundUP32((u32)(dummy_data_pad))); + buffer = (u32 *)(RoundUP32((u32)(buffer_pad))); + + for (i = 0; i < 8; i++) { + *(test_data + i) = 0xdeadbeef; + *(dummy_data + i) = 0xbad0bad0; + } + + DCFlushRange((void *)test_data, 0x20); + DCFlushRange((void *)dummy_data, 0x20); + + __AR_ExpansionSize = 0; + + __ARWriteDMA((u32)dummy_data, ARAM_size, 0x20U); + __ARWriteDMA((u32)dummy_data, ARAM_size + 0x200000, 0x20U); + __ARWriteDMA((u32)dummy_data, ARAM_size + 0x01000000, 0x20U); + __ARWriteDMA((u32)dummy_data, ARAM_size + 0x200, 0x20U); + __ARWriteDMA((u32)dummy_data, ARAM_size + 0x400000, 0x20U); + + memset((void *)buffer, 0, 0x20); + DCFlushRange((void *)buffer, 0x20); + + __ARWriteDMA((u32)test_data, ARAM_size + 0x0000000, 0x20); + + DCInvalidateRange((void *)buffer, 0x20); + + __ARReadDMA((u32)buffer, ARAM_size + 0x0000000, 0x20); + PPCSync(); + + if (buffer[0] == test_data[0]) { + memset((void *)buffer, 0, 0x20); + DCFlushRange((void *)buffer, 0x20); + + __ARReadDMA((u32)buffer, ARAM_size + 0x0200000, 0x20); + PPCSync(); + + if (buffer[0] == test_data[0]) { + ARAM_mode |= 0 << 1; + ARAM_size += 0x0200000; + __AR_ExpansionSize = 0x0200000; + } + else { + memset((void *)buffer, 0, 0x20); + DCFlushRange((void *)buffer, 0x20); + + __ARReadDMA((u32)buffer, ARAM_size + 0x1000000, 0x20); + PPCSync(); + + if (buffer[0] == test_data[0]) { + ARAM_mode |= 4 << 1; + ARAM_size += 0x0400000; + __AR_ExpansionSize = 0x0400000; + } + else { + memset((void *)buffer, 0, 0x20); + DCFlushRange((void *)buffer, 0x20); + + __ARReadDMA((u32)buffer, ARAM_size + 0x0000200, 0x20); + PPCSync(); + + if (buffer[0] == test_data[0]) { + ARAM_mode |= 8 << 1; + ARAM_size += 0x800000; + __AR_ExpansionSize = 0x0800000; + } + else { + memset((void *)buffer, 0, 0x20); + DCFlushRange((void *)buffer, 0x20); + + __ARReadDMA((u32)buffer, ARAM_size + 0x0400000, 0x20); + PPCSync(); + + if (buffer[0] == test_data[0]) { + ARAM_mode |= 12 << 1; + ARAM_size += 0x1000000; + __AR_ExpansionSize = 0x1000000; + } + else { + ARAM_mode |= 16 << 1; + ARAM_size += 0x2000000; + __AR_ExpansionSize = 0x2000000; + } + } + } + } + __DSPRegs[9] = (u16)((__DSPRegs[9] & ~(0x07 | 0x38)) | ARAM_mode); + } + + *(u32 *)OSPhysicalToUncached(0x00D0) = ARAM_size; + + __AR_Size = ARAM_size; +} From b4279816e7bf8ed81994acee488615906417f063 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Mon, 30 Dec 2024 21:01:04 +0100 Subject: [PATCH 220/311] Uncomment ar.c::ARFree --- src/dolphin/ar/ar.c | 42 ------------------------------------------ 1 file changed, 42 deletions(-) diff --git a/src/dolphin/ar/ar.c b/src/dolphin/ar/ar.c index 529a6000..94954318 100644 --- a/src/dolphin/ar/ar.c +++ b/src/dolphin/ar/ar.c @@ -74,7 +74,6 @@ u32 ARAlloc(u32 length) return tmp; } -#if NONMATCHING u32 ARFree(u32 *length) { BOOL old; @@ -95,47 +94,6 @@ u32 ARFree(u32 *length) return __AR_StackPointer; } -#else -/* clang-format off */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u32 ARFree(u32* length) { - nofralloc - mflr r0 - stw r0, 4(r1) - stwu r1, -0x18(r1) - stw r31, 0x14(r1) - mr r31, r3 - bl OSDisableInterrupts - lwz r4, __AR_BlockLength - cmplwi r31, 0 - addi r0, r4, -4 - stw r0, __AR_BlockLength - beq lbl_8036DAB4 - lwz r4, __AR_BlockLength - lwz r0, 0(r4) - stw r0, 0(r31) -lbl_8036DAB4: - lwz r5, __AR_BlockLength - lwz r4, __AR_FreeBlocks - lwz r6, 0(r5) - addi r0, r4, 1 - lwz r5, __AR_StackPointer - stw r0, __AR_FreeBlocks - subf r0, r6, r5 - stw r0, __AR_StackPointer - bl OSRestoreInterrupts - lwz r3, __AR_StackPointer - lwz r0, 0x1c(r1) - lwz r31, 0x14(r1) - addi r1, r1, 0x18 - mtlr r0 - blr -} -#pragma pop -/* clang-format on */ -#endif BOOL ARCheckInit() { From 3b90bdcb7fb1525f122820f728d66b94fa4547ed Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Tue, 31 Dec 2024 02:21:59 +0100 Subject: [PATCH 221/311] Match a lot of GX --- config/GMPE01_00/symbols.txt | 100 +-- config/GMPE01_01/symbols.txt | 2 +- config/GMPJ01_00/symbols.txt | 2 +- config/GMPP01_00/symbols.txt | 2 +- configure.py | 22 +- include/dolphin/gx/GXEnum.h | 2 +- include/dolphin/gx/GXPriv.h | 455 +++++++++--- include/dolphin/gx/GXStruct.h | 20 + include/dolphin/gx/GXTexture.h | 50 +- src/dolphin/gx/GXAttr.c | 586 +++++++++++++++ src/dolphin/gx/GXBump.c | 335 +++++++++ src/dolphin/gx/GXDisplayList.c | 83 +++ src/dolphin/gx/GXFifo.c | 559 ++++++++++++++ src/dolphin/gx/GXFrameBuf.c | 604 +++++++++++++++ src/dolphin/gx/GXGeometry.c | 146 ++++ src/dolphin/gx/GXInit.c | 372 ++++++++++ src/dolphin/gx/GXLight.c | 620 ++++++++++++++++ src/dolphin/gx/GXMisc.c | 485 ++++++++++++ src/dolphin/gx/GXPerf.c | 577 +++++++++++++++ src/dolphin/gx/GXPixel.c | 290 ++++++++ src/dolphin/gx/GXStubs.c | 5 + src/dolphin/gx/GXTev.c | 403 ++++++++++ src/dolphin/gx/GXTexture.c | 1269 ++++++++++++++++++++++++++++++++ src/dolphin/gx/GXTransform.c | 372 ++++++++++ src/game/kerent.c | 8 +- 25 files changed, 7195 insertions(+), 174 deletions(-) create mode 100644 src/dolphin/gx/GXAttr.c create mode 100644 src/dolphin/gx/GXBump.c create mode 100644 src/dolphin/gx/GXDisplayList.c create mode 100644 src/dolphin/gx/GXFifo.c create mode 100644 src/dolphin/gx/GXFrameBuf.c create mode 100644 src/dolphin/gx/GXGeometry.c create mode 100644 src/dolphin/gx/GXInit.c create mode 100644 src/dolphin/gx/GXLight.c create mode 100644 src/dolphin/gx/GXMisc.c create mode 100644 src/dolphin/gx/GXPerf.c create mode 100644 src/dolphin/gx/GXPixel.c create mode 100644 src/dolphin/gx/GXStubs.c create mode 100644 src/dolphin/gx/GXTev.c create mode 100644 src/dolphin/gx/GXTexture.c create mode 100644 src/dolphin/gx/GXTransform.c diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 60b719ff..3e84f320 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -2572,7 +2572,7 @@ GXEndDisplayList = .text:0x800CF0E0; // type:function size:0xD4 GXCallDisplayList = .text:0x800CF1B4; // type:function size:0x70 GXProject = .text:0x800CF224; // type:function size:0x174 GXSetProjection = .text:0x800CF398; // type:function size:0xD4 -GXSetProjectionv = .text:0x800CF46C; // type:function size:0x78 +GXGetProjectionv = .text:0x800CF46C; // type:function size:0x78 WriteMTXPS4x3 = .text:0x800CF4E4; // type:function size:0x34 scope:local WriteMTXPS3x3from3x4 = .text:0x800CF518; // type:function size:0x34 scope:local WriteMTXPS4x2 = .text:0x800CF54C; // type:function size:0x24 scope:local @@ -7410,55 +7410,55 @@ lbl_801D63C8 = .sdata2:0x801D63C8; // type:object size:0x8 scope:local data:doub lbl_801D63D0 = .sdata2:0x801D63D0; // type:object size:0x8 scope:local data:float lbl_801D63D8 = .sdata2:0x801D63D8; // type:object size:0x4 scope:local data:float lbl_801D63E0 = .sdata2:0x801D63E0; // type:object size:0x8 scope:local data:double -lbl_801D63E8 = .sdata2:0x801D63E8; // type:object size:0x4 data:4byte -lbl_801D63EC = .sdata2:0x801D63EC; // type:object size:0x4 data:4byte -lbl_801D63F0 = .sdata2:0x801D63F0; // type:object size:0x4 data:4byte -lbl_801D63F4 = .sdata2:0x801D63F4; // type:object size:0x4 data:float -lbl_801D63F8 = .sdata2:0x801D63F8; // type:object size:0x4 data:float -lbl_801D63FC = .sdata2:0x801D63FC; // type:object size:0x4 data:float -lbl_801D6400 = .sdata2:0x801D6400; // type:object size:0x8 data:double -lbl_801D6408 = .sdata2:0x801D6408; // type:object size:0x8 data:float -lbl_801D6410 = .sdata2:0x801D6410; // type:object size:0x4 data:float -lbl_801D6414 = .sdata2:0x801D6414; // type:object size:0x4 data:float -lbl_801D6418 = .sdata2:0x801D6418; // type:object size:0x4 data:float -lbl_801D641C = .sdata2:0x801D641C; // type:object size:0x4 data:float -lbl_801D6420 = .sdata2:0x801D6420; // type:object size:0x4 data:float -lbl_801D6424 = .sdata2:0x801D6424; // type:object size:0x4 data:float -lbl_801D6428 = .sdata2:0x801D6428; // type:object size:0x4 data:float -lbl_801D642C = .sdata2:0x801D642C; // type:object size:0x4 data:float -lbl_801D6430 = .sdata2:0x801D6430; // type:object size:0x4 data:float -lbl_801D6434 = .sdata2:0x801D6434; // type:object size:0x4 data:float -lbl_801D6438 = .sdata2:0x801D6438; // type:object size:0x4 data:float -lbl_801D643C = .sdata2:0x801D643C; // type:object size:0x4 data:float -lbl_801D6440 = .sdata2:0x801D6440; // type:object size:0x4 data:float -lbl_801D6448 = .sdata2:0x801D6448; // type:object size:0x8 data:double -lbl_801D6450 = .sdata2:0x801D6450; // type:object size:0x8 data:double -lbl_801D6458 = .sdata2:0x801D6458; // type:object size:0x8 data:float -lbl_801D6460 = .sdata2:0x801D6460; // type:object size:0x4 data:float -lbl_801D6468 = .sdata2:0x801D6468; // type:object size:0x8 data:double -lbl_801D6470 = .sdata2:0x801D6470; // type:object size:0x4 data:float -lbl_801D6474 = .sdata2:0x801D6474; // type:object size:0x4 data:float -lbl_801D6478 = .sdata2:0x801D6478; // type:object size:0x4 data:float -lbl_801D647C = .sdata2:0x801D647C; // type:object size:0x4 data:float -lbl_801D6480 = .sdata2:0x801D6480; // type:object size:0x4 data:float -lbl_801D6484 = .sdata2:0x801D6484; // type:object size:0x4 data:float -lbl_801D6488 = .sdata2:0x801D6488; // type:object size:0x4 data:float -lbl_801D648C = .sdata2:0x801D648C; // type:object size:0x4 data:float -lbl_801D6490 = .sdata2:0x801D6490; // type:object size:0x4 data:float -lbl_801D6498 = .sdata2:0x801D6498; // type:object size:0x8 data:double -lbl_801D64A0 = .sdata2:0x801D64A0; // type:object size:0x4 data:float -lbl_801D64A4 = .sdata2:0x801D64A4; // type:object size:0x4 data:float -lbl_801D64A8 = .sdata2:0x801D64A8; // type:object size:0x8 data:double -lbl_801D64B0 = .sdata2:0x801D64B0; // type:object size:0x4 data:float -lbl_801D64B8 = .sdata2:0x801D64B8; // type:object size:0x8 data:double -lbl_801D64C0 = .sdata2:0x801D64C0; // type:object size:0x4 data:float -lbl_801D64C8 = .sdata2:0x801D64C8; // type:object size:0x8 data:double -lbl_801D64D0 = .sdata2:0x801D64D0; // type:object size:0x4 data:float -lbl_801D64D4 = .sdata2:0x801D64D4; // type:object size:0x4 data:float -lbl_801D64D8 = .sdata2:0x801D64D8; // type:object size:0x4 data:float -lbl_801D64E0 = .sdata2:0x801D64E0; // type:object size:0x8 data:double -lbl_801D64E8 = .sdata2:0x801D64E8; // type:object size:0x4 data:float -lbl_801D64EC = .sdata2:0x801D64EC; // type:object size:0x4 data:float +lbl_801D63E8 = .sdata2:0x801D63E8; // type:object size:0x4 scope:local data:4byte +lbl_801D63EC = .sdata2:0x801D63EC; // type:object size:0x4 scope:local data:4byte +lbl_801D63F0 = .sdata2:0x801D63F0; // type:object size:0x4 scope:local data:4byte +lbl_801D63F4 = .sdata2:0x801D63F4; // type:object size:0x4 scope:local data:float +lbl_801D63F8 = .sdata2:0x801D63F8; // type:object size:0x4 scope:local data:float +lbl_801D63FC = .sdata2:0x801D63FC; // type:object size:0x4 scope:local data:float +lbl_801D6400 = .sdata2:0x801D6400; // type:object size:0x8 scope:local data:double +lbl_801D6408 = .sdata2:0x801D6408; // type:object size:0x8 scope:local data:float +lbl_801D6410 = .sdata2:0x801D6410; // type:object size:0x4 scope:local data:float +lbl_801D6414 = .sdata2:0x801D6414; // type:object size:0x4 scope:local data:float +lbl_801D6418 = .sdata2:0x801D6418; // type:object size:0x4 scope:local data:float +lbl_801D641C = .sdata2:0x801D641C; // type:object size:0x4 scope:local data:float +lbl_801D6420 = .sdata2:0x801D6420; // type:object size:0x4 scope:local data:float +lbl_801D6424 = .sdata2:0x801D6424; // type:object size:0x4 scope:local data:float +lbl_801D6428 = .sdata2:0x801D6428; // type:object size:0x4 scope:local data:float +lbl_801D642C = .sdata2:0x801D642C; // type:object size:0x4 scope:local data:float +lbl_801D6430 = .sdata2:0x801D6430; // type:object size:0x4 scope:local data:float +lbl_801D6434 = .sdata2:0x801D6434; // type:object size:0x4 scope:local data:float +lbl_801D6438 = .sdata2:0x801D6438; // type:object size:0x4 scope:local data:float +lbl_801D643C = .sdata2:0x801D643C; // type:object size:0x4 scope:local data:float +lbl_801D6440 = .sdata2:0x801D6440; // type:object size:0x4 scope:local data:float +lbl_801D6448 = .sdata2:0x801D6448; // type:object size:0x8 scope:local data:double +lbl_801D6450 = .sdata2:0x801D6450; // type:object size:0x8 scope:local data:double +lbl_801D6458 = .sdata2:0x801D6458; // type:object size:0x8 scope:local data:float +lbl_801D6460 = .sdata2:0x801D6460; // type:object size:0x4 scope:local data:float +lbl_801D6468 = .sdata2:0x801D6468; // type:object size:0x8 scope:local data:double +lbl_801D6470 = .sdata2:0x801D6470; // type:object size:0x4 scope:local data:float +lbl_801D6474 = .sdata2:0x801D6474; // type:object size:0x4 scope:local data:float +lbl_801D6478 = .sdata2:0x801D6478; // type:object size:0x4 scope:local data:float +lbl_801D647C = .sdata2:0x801D647C; // type:object size:0x4 scope:local data:float +lbl_801D6480 = .sdata2:0x801D6480; // type:object size:0x4 scope:local data:float +lbl_801D6484 = .sdata2:0x801D6484; // type:object size:0x4 scope:local data:float +lbl_801D6488 = .sdata2:0x801D6488; // type:object size:0x4 scope:local data:float +lbl_801D648C = .sdata2:0x801D648C; // type:object size:0x4 scope:local data:float +lbl_801D6490 = .sdata2:0x801D6490; // type:object size:0x4 scope:local data:float +lbl_801D6498 = .sdata2:0x801D6498; // type:object size:0x8 scope:local data:double +lbl_801D64A0 = .sdata2:0x801D64A0; // type:object size:0x4 scope:local data:float +lbl_801D64A4 = .sdata2:0x801D64A4; // type:object size:0x4 scope:local data:float +lbl_801D64A8 = .sdata2:0x801D64A8; // type:object size:0x8 scope:local data:double +lbl_801D64B0 = .sdata2:0x801D64B0; // type:object size:0x4 scope:local data:float +lbl_801D64B8 = .sdata2:0x801D64B8; // type:object size:0x8 scope:local data:double +lbl_801D64C0 = .sdata2:0x801D64C0; // type:object size:0x4 scope:local data:float +lbl_801D64C8 = .sdata2:0x801D64C8; // type:object size:0x8 scope:local data:double +lbl_801D64D0 = .sdata2:0x801D64D0; // type:object size:0x4 scope:local data:float +lbl_801D64D4 = .sdata2:0x801D64D4; // type:object size:0x4 scope:local data:float +lbl_801D64D8 = .sdata2:0x801D64D8; // type:object size:0x4 scope:local data:float +lbl_801D64E0 = .sdata2:0x801D64E0; // type:object size:0x8 scope:local data:double +lbl_801D64E8 = .sdata2:0x801D64E8; // type:object size:0x4 scope:local data:float +lbl_801D64EC = .sdata2:0x801D64EC; // type:object size:0x4 scope:local data:float lbl_801D64F0 = .sdata2:0x801D64F0; // type:object size:0x8 data:double lbl_801D64F8 = .sdata2:0x801D64F8; // type:object size:0x4 data:float lbl_801D64FC = .sdata2:0x801D64FC; // type:object size:0x4 data:float diff --git a/config/GMPE01_01/symbols.txt b/config/GMPE01_01/symbols.txt index 4a3aaa79..ef9eff80 100644 --- a/config/GMPE01_01/symbols.txt +++ b/config/GMPE01_01/symbols.txt @@ -2572,7 +2572,7 @@ GXEndDisplayList = .text:0x800CF0E0; // type:function size:0xD4 GXCallDisplayList = .text:0x800CF1B4; // type:function size:0x70 GXProject = .text:0x800CF224; // type:function size:0x174 GXSetProjection = .text:0x800CF398; // type:function size:0xD4 -GXSetProjectionv = .text:0x800CF46C; // type:function size:0x78 +GXGetProjectionv = .text:0x800CF46C; // type:function size:0x78 WriteMTXPS4x3 = .text:0x800CF4E4; // type:function size:0x34 scope:local WriteMTXPS3x3from3x4 = .text:0x800CF518; // type:function size:0x34 scope:local WriteMTXPS4x2 = .text:0x800CF54C; // type:function size:0x24 scope:local diff --git a/config/GMPJ01_00/symbols.txt b/config/GMPJ01_00/symbols.txt index 8701d170..ca5a261c 100644 --- a/config/GMPJ01_00/symbols.txt +++ b/config/GMPJ01_00/symbols.txt @@ -2573,7 +2573,7 @@ GXEndDisplayList = .text:0x800CECD0; // type:function size:0xD4 GXCallDisplayList = .text:0x800CEDA4; // type:function size:0x70 GXProject = .text:0x800CEE14; // type:function size:0x174 GXSetProjection = .text:0x800CEF88; // type:function size:0xD4 -GXSetProjectionv = .text:0x800CF05C; // type:function size:0x78 +GXGetProjectionv = .text:0x800CF05C; // type:function size:0x78 WriteMTXPS4x3 = .text:0x800CF0D4; // type:function size:0x34 scope:local WriteMTXPS3x3from3x4 = .text:0x800CF108; // type:function size:0x34 scope:local WriteMTXPS4x2 = .text:0x800CF13C; // type:function size:0x24 scope:local diff --git a/config/GMPP01_00/symbols.txt b/config/GMPP01_00/symbols.txt index 83524e64..acf35410 100644 --- a/config/GMPP01_00/symbols.txt +++ b/config/GMPP01_00/symbols.txt @@ -2574,7 +2574,7 @@ GXEndDisplayList = .text:0x800CEF10; // type:function size:0xD4 GXCallDisplayList = .text:0x800CEFE4; // type:function size:0x70 GXProject = .text:0x800CF054; // type:function size:0x174 GXSetProjection = .text:0x800CF1C8; // type:function size:0xD4 -GXSetProjectionv = .text:0x800CF29C; // type:function size:0x78 +GXGetProjectionv = .text:0x800CF29C; // type:function size:0x78 fn_800CF314 = .text:0x800CF314; // type:function size:0x34 fn_800CF348 = .text:0x800CF348; // type:function size:0x34 fn_800CF37C = .text:0x800CF37C; // type:function size:0x24 diff --git a/configure.py b/configure.py index 88e5c103..ec8265ae 100644 --- a/configure.py +++ b/configure.py @@ -584,19 +584,19 @@ config.libs = [ [ Object(NonMatching, "dolphin/gx/GXInit.c"), Object(NonMatching, "dolphin/gx/GXFifo.c"), - Object(NonMatching, "dolphin/gx/GXAttr.c"), - Object(NonMatching, "dolphin/gx/GXMisc.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXAttr.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXMisc.c"), Object(NonMatching, "dolphin/gx/GXGeometry.c"), Object(NonMatching, "dolphin/gx/GXFrameBuf.c"), - Object(NonMatching, "dolphin/gx/GXLight.c"), - Object(NonMatching, "dolphin/gx/GXTexture.c"), - Object(NonMatching, "dolphin/gx/GXBump.c"), - Object(NonMatching, "dolphin/gx/GXTev.c"), - Object(NonMatching, "dolphin/gx/GXPixel.c"), - Object(NonMatching, "dolphin/gx/GXStubs.c"), - Object(NonMatching, "dolphin/gx/GXDisplayList.c"), - Object(NonMatching, "dolphin/gx/GXTransform.c"), - Object(NonMatching, "dolphin/gx/GXPerf.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXLight.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXTexture.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXBump.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXTev.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXPixel.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXStubs.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXDisplayList.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXTransform.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXPerf.c"), ], ), DolphinLib( diff --git a/include/dolphin/gx/GXEnum.h b/include/dolphin/gx/GXEnum.h index d6fed014..d8c48579 100644 --- a/include/dolphin/gx/GXEnum.h +++ b/include/dolphin/gx/GXEnum.h @@ -901,7 +901,7 @@ typedef enum _GXAlphaReadMode { GX_READ_FF = 1, GX_READ_NONE = 2, -} _GXAlphaReadMode; +} GXAlphaReadMode; #ifdef __cplusplus } diff --git a/include/dolphin/gx/GXPriv.h b/include/dolphin/gx/GXPriv.h index ea3d2318..1cd42e37 100644 --- a/include/dolphin/gx/GXPriv.h +++ b/include/dolphin/gx/GXPriv.h @@ -1,7 +1,32 @@ #ifndef _DOLPHIN_GXPRIV #define _DOLPHIN_GXPRIV -#include "dolphin/gx/GXVert.h" +#include "dolphin/gx.h" + +#ifdef DEBUG +#define ASSERTLINE(line, cond) \ + ((cond) || (OSPanic(__FILE__, line, "Failed assertion " #cond), 0)) + +#define ASSERTMSGLINE(line, cond, msg) \ + ((cond) || (OSPanic(__FILE__, line, msg), 0)) + +// This is dumb but we dont have a Metrowerks way to do variadic macros in the macro to make this done in a not scrubby way. +#define ASSERTMSG1LINE(line, cond, msg, arg1) \ + ((cond) || (OSPanic(__FILE__, line, msg, arg1), 0)) + +#define ASSERTMSG2LINE(line, cond, msg, arg1, arg2) \ + ((cond) || (OSPanic(__FILE__, line, msg, arg1, arg2), 0)) + +#define ASSERTMSGLINEV(line, cond, ...) \ + ((cond) || (OSPanic(__FILE__, line, __VA_ARGS__), 0)) + +#else +#define ASSERTLINE(line, cond) (void)0 +#define ASSERTMSGLINE(line, cond, msg) (void)0 +#define ASSERTMSG1LINE(line, cond, msg, arg1) (void)0 +#define ASSERTMSG2LINE(line, cond, msg, arg1, arg2) (void)0 +#define ASSERTMSGLINEV(line, cond, ...) (void)0 +#endif typedef struct GXLightObjInt { u32 padding[3]; @@ -26,92 +51,137 @@ typedef struct GXLightObjInt { #define GX_FIFO_ADDR 0xCC008000 #define GX_WRITE_U8(v) (GXWGFifo.u8 = v) +#define GX_WRITE_U16(us) (GXWGFifo.u16 = (u16)(us)) #define GX_WRITE_U32(v) (GXWGFifo.u32 = v) +#define GX_WRITE_F32(f) (GXWGFifo.f32 = (f32)(f)) -typedef struct __GXData_struct { - u16 vNumNot; - u16 bpSentNot; - u16 vNum; - u16 vLim; - u32 cpEnable; - u32 cpStatus; - u32 cpClr; - u32 vcdLo; - u32 vcdHi; - u32 vatA[8]; - u32 vatB[8]; - u32 vatC[8]; - u32 lpSize; - u32 matIdxA; - u32 matIdxB; - u32 indexBase[4]; - u32 indexStride[4]; - u32 ambColor[2]; - u32 matColor[2]; - u32 suTs0[8]; - u32 suTs1[8]; - u32 suScis0; - u32 suScis1; - u32 tref[8]; - u32 iref; - u32 bpMask; - u32 IndTexScale0; - u32 IndTexScale1; - u32 tevc[16]; - u32 teva[16]; - u32 tevKsel[8]; - u32 cmode0; - u32 cmode1; - u32 zmode; - u32 peCtrl; - u32 cpDispSrc; - u32 cpDispSize; - u32 cpDispStride; - u32 cpDisp; - u32 cpTexSrc; - u32 cpTexSize; - u32 cpTexStride; - u32 cpTex; - GXBool cpTexZ; - u32 genMode; - GXTexRegion TexRegions[8]; - GXTexRegion TexRegionsCI[4]; - u32 nextTexRgn; - u32 nextTexRgnCI; - GXTlutRegion TlutRegions[20]; - GXTexRegion* (*texRegionCallback)(GXTexObj*, GXTexMapID); - GXTlutRegion* (*tlutRegionCallback)(u32); - GXAttrType nrmType; - GXBool hasNrms; - GXBool hasBiNrms; - u32 projType; - f32 projMtx[6]; - f32 vpLeft; - f32 vpTop; - f32 vpWd; - f32 vpHt; - f32 vpNearz; - f32 vpFarz; - u8 fgRange; - f32 fgSideX; - u32 tImage0[8]; - u32 tMode0[8]; - u32 texmapId[16]; - u32 tcsManEnab; - u32 tevTcEnab; - GXPerf0 perf0; - GXPerf1 perf1; - u32 perfSel; - GXBool inDispList; - GXBool dlSaveContext; - u8 dirtyVAT; - u32 dirtyState; -} GXData; +#if DEBUG +#define VERIF_XF_REG(addr, value) \ +do { \ + s32 regAddr = (addr); \ + if (regAddr >= 0 && regAddr < 0x50) { \ + __gxVerif->xfRegs[regAddr] = (value); \ + __gxVerif->xfRegsDirty[regAddr] = 1; \ + } \ +} while (0) +#define VERIF_XF_REG_alt(addr, value) \ +do { \ + s32 xfAddr = (addr); \ + if (xfAddr >= 0 && xfAddr < 0x50) { \ + __gxVerif->xfRegs[xfAddr] = (value); \ + __gxVerif->xfRegsDirty[xfAddr] = 1; \ + } \ +} while (0) +#define VERIF_RAS_REG(value) (__gxVerif->rasRegs[((value) & 0xFF000000) >> 24] = value) +#define VERIF_MTXLIGHT(addr, data) \ +do { \ + s32 xfAddr; \ + if (addr < 0x400U) { \ + __gxVerif->xfMtx[addr] = data; \ + __gxVerif->xfMtxDirty[addr] = 1; \ + } else if (addr < 0x500U) { \ + xfAddr = addr - 0x400; \ + __gxVerif->xfNrm[xfAddr] = data; \ + __gxVerif->xfNrmDirty[xfAddr] = 1; \ + } else if (addr < 0x600U) { \ + xfAddr = addr - 0x500; \ + __gxVerif->xfDMtx[xfAddr] = data; \ + __gxVerif->xfDMtxDirty[xfAddr] = 1; \ + } else if (addr < 0x680U) { \ + xfAddr = addr - 0x600; \ + __gxVerif->xfLight[xfAddr] = data; \ + __gxVerif->xfLightDirty[xfAddr] = 1; \ + } else { \ + xfAddr = addr - 0x1000; \ + if ((xfAddr >= 0) && (xfAddr < 0x50)) { \ + __gxVerif->xfRegs[xfAddr] = data; \ + __gxVerif->xfRegsDirty[xfAddr] = 1; \ + } \ + } \ +} while (0) +#else +#define VERIF_XF_REG(addr, value) ((void)0) +#define VERIF_XF_REG_alt(addr, value) ((void)0) +#define VERIF_RAS_REG(value) ((void)0) +#endif -extern GXData* gx; -// #define gx __GXData +#define GX_WRITE_XF_REG(addr, value) \ +do { \ + GX_WRITE_U8(0x10); \ + GX_WRITE_U32(0x1000 + (addr)); \ + GX_WRITE_U32(value); \ + VERIF_XF_REG(addr, value); \ +} while (0) -void __GXInitGX(); +#if DEBUG +#define GX_WRITE_XF_REG_2(addr, value) \ +do { \ + u32 xfData = (value); &xfData; \ + GX_WRITE_U32(value); \ + VERIF_XF_REG_alt(addr, xfData); \ +} while (0) +#define GX_WRITE_XF_REG_F(addr, value) \ +do { \ + f32 xfData = (value); \ + GX_WRITE_F32(value); \ + VERIF_XF_REG_alt(addr, *(u32 *)&xfData); \ +} while (0) +#else +#define GX_WRITE_XF_REG_2(addr, value) \ +do { \ + GX_WRITE_U32(value); \ +} while (0) +#define GX_WRITE_XF_REG_F(addr, value) \ +do { \ + GX_WRITE_F32(value); \ +} while (0) +#endif + +#define GX_WRITE_RAS_REG(value) \ +do { \ + GX_WRITE_U8(0x61); \ + GX_WRITE_U32(value); \ + VERIF_RAS_REG(value); \ +} while (0) + +#define GX_WRITE_SOME_REG2(a, b, c, addr) \ +do { \ + long regAddr; \ + GX_WRITE_U8(a); \ + GX_WRITE_U8(b); \ + GX_WRITE_U32(c); \ + regAddr = addr; \ + if (regAddr >= 0 && regAddr < 4) { \ + gx->indexBase[regAddr] = c; \ + } \ +} while (0) +#define GX_WRITE_SOME_REG3(a, b, c, addr) \ +do { \ + long regAddr; \ + GX_WRITE_U8(a); \ + GX_WRITE_U8(b); \ + GX_WRITE_U32(c); \ + regAddr = addr; \ + if (regAddr >= 0 && regAddr < 4) { \ + gx->indexStride[regAddr] = c; \ + } \ +} while (0) +#define GX_WRITE_SOME_REG4(a, b, c, addr) \ +do { \ + long regAddr; \ + GX_WRITE_U8(a); \ + GX_WRITE_U8(b); \ + GX_WRITE_U32(c); \ + regAddr = addr; \ +} while (0) + +#define GET_REG_FIELD(reg, size, shift) ((int)((reg) >> (shift)) & ((1 << (size)) - 1)) + +#define SET_REG_FIELD(line, reg, size, shift, val) \ +do { \ + ASSERTMSGLINE(line, ((u32)(val) & ~((1 << (size)) - 1)) == 0, "GX Internal: Register field out of range"); \ + (reg) = ((u32)(reg) & ~(((1 << (size)) - 1) << (shift))) | ((u32)(val) << (shift)); \ +} while (0) #define GX_REG_ASSERT(c) ASSERTMSG(c, "GX Internal: Register field out of range") @@ -358,4 +428,223 @@ void __GXInitGX(); #define GX_VAT_REG_B_UNK_SHIFT 31 #define GX_VAT_REG_B_UNK_MASK 0x80000000 +#define GX_GET_MEM_REG(offset) (*(volatile u16*)((volatile u16*)(__memReg) + (offset))) +#define GX_GET_CP_REG(offset) (*(volatile u16*)((volatile u16*)(__cpReg) + (offset))) +#define GX_GET_PE_REG(offset) (*(volatile u16*)((volatile u16*)(__peReg) + (offset))) +#define GX_GET_PI_REG(offset) (*(volatile u32*)((volatile u32*)(__piReg) + (offset))) + +#define GX_SET_MEM_REG(offset, val) (*(volatile u16*)((volatile u16*)(__memReg) + (offset)) = val) +#define GX_SET_CP_REG(offset, val) (*(volatile u16*)((volatile u16*)(__cpReg) + (offset)) = val) +#define GX_SET_PE_REG(offset, val) (*(volatile u16*)((volatile u16*)(__peReg) + (offset)) = val) +#define GX_SET_PI_REG(offset, val) (*(volatile u32*)((volatile u32*)(__piReg) + (offset)) = val) + +#define CHECK_GXBEGIN(line, name) ASSERTMSGLINE(line, !__GXinBegin, "'" name "' is not allowed between GXBegin/GXEnd") + +/* GXAttr.c */ + +void __GXSetVCD(void); +void __GXSetVAT(void); + +/* GXBump.c */ + +void __GXUpdateBPMask(void); +void __GXFlushTextureState(void); + +/* GXFifo.c */ + +// GXFifoObj private data +struct __GXFifoObj { + u8 *base; + u8 *top; + u32 size; + u32 hiWatermark; + u32 loWatermark; + void *rdPtr; + void *wrPtr; + s32 count; + u8 bind_cpu; + u8 bind_gp; +}; + +void __GXSaveCPUFifoAux(struct __GXFifoObj *realFifo); +void __GXFifoInit(void); +void __GXInsaneWatermark(void); +void __GXCleanGPFifo(void); + +/* GXGeometry.c */ + +void __GXSetDirtyState(void); +void __GXSendFlushPrim(void); +void __GXSetGenMode(void); + +/* GXInit.c */ +void __GXInitGX(); +void __GXInitRevisionBits(void); + +typedef struct __GXData_struct { + u16 vNumNot; + u16 bpSentNot; + u16 vNum; + u16 vLim; + u32 cpEnable; + u32 cpStatus; + u32 cpClr; + u32 vcdLo; + u32 vcdHi; + u32 vatA[8]; + u32 vatB[8]; + u32 vatC[8]; + u32 lpSize; + u32 matIdxA; + u32 matIdxB; + u32 indexBase[4]; + u32 indexStride[4]; + u32 ambColor[2]; + u32 matColor[2]; + u32 suTs0[8]; + u32 suTs1[8]; + u32 suScis0; + u32 suScis1; + u32 tref[8]; + u32 iref; + u32 bpMask; + u32 IndTexScale0; + u32 IndTexScale1; + u32 tevc[16]; + u32 teva[16]; + u32 tevKsel[8]; + u32 cmode0; + u32 cmode1; + u32 zmode; + u32 peCtrl; + u32 cpDispSrc; + u32 cpDispSize; + u32 cpDispStride; + u32 cpDisp; + u32 cpTexSrc; + u32 cpTexSize; + u32 cpTexStride; + u32 cpTex; + GXBool cpTexZ; + u32 genMode; + GXTexRegion TexRegions[8]; + GXTexRegion TexRegionsCI[4]; + u32 nextTexRgn; + u32 nextTexRgnCI; + GXTlutRegion TlutRegions[20]; + GXTexRegion* (*texRegionCallback)(GXTexObj*, GXTexMapID); + GXTlutRegion* (*tlutRegionCallback)(u32); + GXAttrType nrmType; + GXBool hasNrms; + GXBool hasBiNrms; + u32 projType; + f32 projMtx[6]; + f32 vpLeft; + f32 vpTop; + f32 vpWd; + f32 vpHt; + f32 vpNearz; + f32 vpFarz; + u8 fgRange; + f32 fgSideX; + u32 tImage0[8]; + u32 tMode0[8]; + u32 texmapId[16]; + u32 tcsManEnab; + u32 tevTcEnab; + GXPerf0 perf0; + GXPerf1 perf1; + u32 perfSel; + GXBool inDispList; + GXBool dlSaveContext; + u8 dirtyVAT; + u32 dirtyState; +} GXData; + +extern GXData* gx; +extern u16 *__memReg; +extern u16 *__peReg; +extern u16 *__cpReg; +extern u32 *__piReg; +// #define gx __GXData + +/* GXMisc.c */ + +void __GXBypass(u32 reg); +u16 __GXReadPEReg(u32 reg); +void __GXPEInit(void); +void __GXAbort(); + +/* GXPerf.c */ +void __GXSetBWDials(u16 cpDial, u16 tcDial, u16 peDial, u16 cpuRdDial, u16 cpuWrDial); + +static inline u32 __GXReadCPCounterU32(u32 regAddrL, u32 regAddrH) { + u32 ctrH0; + u32 ctrH1; + u32 ctrL; + + ctrH0 = GX_GET_CP_REG(regAddrH); + + do { + ctrH1 = ctrH0; + ctrL = GX_GET_CP_REG(regAddrL); + ctrH0 = GX_GET_CP_REG(regAddrH); + } while (ctrH0 != ctrH1); + + return (ctrH0 << 0x10) | ctrL; +} + +static inline u32 __GXReadMEMCounterU32(u32 regAddrL, u32 regAddrH) { + u32 ctrH0; + u32 ctrH1; + u32 ctrL; + + ctrH0 = GX_GET_MEM_REG(regAddrH); + + do { + ctrH1 = ctrH0; + ctrL = GX_GET_MEM_REG(regAddrL); + ctrH0 = GX_GET_MEM_REG(regAddrH); + } while (ctrH0 != ctrH1); + + return (ctrH0 << 0x10) | ctrL; +} + +static inline u32 __GXReadPECounterU32(u32 regAddrL, u32 regAddrH) { + u32 ctrH0; + u32 ctrH1; + u32 ctrL; + + ctrH0 = GX_GET_PE_REG(regAddrH); + + do { + ctrH1 = ctrH0; + ctrL = GX_GET_PE_REG(regAddrL); + ctrH0 = GX_GET_PE_REG(regAddrH); + } while (ctrH0 != ctrH1); + + return (ctrH0 << 0x10) | ctrL; +} + +/* GXSave.c */ + +void __GXShadowDispList(void *list, u32 nbytes); +void __GXShadowIndexState(u32 idx_reg, u32 reg_data); +void __GXPrintShadowState(void); + +/* GXStubs.c */ + +void __GXSetRange(float nearz, float fgSideX); + +/* GXTexture.c */ + +void __GetImageTileCount(GXTexFmt fmt, u16 wd, u16 ht, u32 *rowTiles, u32 *colTiles, u32 *cmpTiles); +void __GXSetSUTexRegs(void); +void __GXGetSUTexSize(GXTexCoordID coord, u16 *width, u16 *height); +void __GXSetTmemConfig(u32 config); + +/* GXTransform.c */ + +void __GXSetMatrixIndex(GXAttr matIdxAttr); + #endif // _DOLPHIN_GXPRIV diff --git a/include/dolphin/gx/GXStruct.h b/include/dolphin/gx/GXStruct.h index 4df23062..8b810140 100644 --- a/include/dolphin/gx/GXStruct.h +++ b/include/dolphin/gx/GXStruct.h @@ -72,6 +72,26 @@ typedef struct _GXTlutRegion { u32 dummy[4]; } GXTlutRegion; +typedef struct _GXFogAdjTable +{ + u16 r[10]; +} GXFogAdjTable; + +typedef enum _GXTlutSize +{ + GX_TLUT_16 = 1, + GX_TLUT_32 = 2, + GX_TLUT_64 = 4, + GX_TLUT_128 = 8, + GX_TLUT_256 = 16, + GX_TLUT_512 = 32, + GX_TLUT_1K = 64, + GX_TLUT_2K = 128, + GX_TLUT_4K = 256, + GX_TLUT_8K = 512, + GX_TLUT_16K = 1024, +} GXTlutSize; + typedef struct _GXVtxAttrFmtList { // total size: 0x10 GXAttr attr; // offset 0x0, size 0x4 diff --git a/include/dolphin/gx/GXTexture.h b/include/dolphin/gx/GXTexture.h index a30b7430..0b569528 100644 --- a/include/dolphin/gx/GXTexture.h +++ b/include/dolphin/gx/GXTexture.h @@ -8,29 +8,35 @@ extern "C" { #endif -typedef GXTexRegion* (*GXTexRegionCallback)(const GXTexObj* obj, GXTexMapID id); +typedef GXTexRegion *(*GXTexRegionCallback)(GXTexObj *t_obj, GXTexMapID id); +typedef GXTlutRegion *(*GXTlutRegionCallback)(u32 idx); -void GXInitTexObj(GXTexObj* obj, const void* data, u16 width, u16 height, u32 format, - GXTexWrapMode wrapS, GXTexWrapMode wrapT, GXBool mipmap); -void GXInitTexObjCI(GXTexObj* obj, const void* data, u16 width, u16 height, GXCITexFmt format, - GXTexWrapMode wrapS, GXTexWrapMode wrapT, GXBool mipmap, u32 tlut); -void GXInitTexObjData(GXTexObj* obj, const void* data); -void GXInitTexObjLOD(GXTexObj* obj, GXTexFilter min_filt, GXTexFilter mag_filt, f32 min_lod, - f32 max_lod, f32 lod_bias, GXBool bias_clamp, GXBool do_edge_lod, - GXAnisotropy max_aniso); -void GXLoadTexObj(GXTexObj* obj, GXTexMapID id); -u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, GXBool mipmap, u8 max_lod); -void GXInvalidateTexAll(); -void GXInitTexObjWrapMode(GXTexObj* obj, GXTexWrapMode s, GXTexWrapMode t); -void GXInitTlutObj(GXTlutObj* obj, void* data, GXTlutFmt format, u16 entries); -void GXLoadTlut(const GXTlutObj* obj, GXTlut idx); -void GXSetTexCoordScaleManually(GXTexCoordID coord, GXBool enable, u16 ss, u16 ts); -void GXInitTexCacheRegion(GXTexRegion* region, GXBool is_32b_mipmap, u32 tmem_even, - GXTexCacheSize size_even, u32 tmem_odd, GXTexCacheSize size_odd); -GXTexRegionCallback GXSetTexRegionCallback(GXTexRegionCallback callback); -void GXInvalidateTexRegion(const GXTexRegion* region); - -void GXSetTexCoordScaleManually(GXTexCoordID coord, GXBool enable, u16 ss, u16 ts); +u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, u8 mipmap, u8 max_lod); +void GXInitTexObj(GXTexObj *obj, void *image_ptr, u16 width, u16 height, GXTexFmt format, GXTexWrapMode wrap_s, GXTexWrapMode wrap_t, u8 mipmap); +void GXInitTexObjCI(GXTexObj *obj, void *image_ptr, u16 width, u16 height, GXCITexFmt format, GXTexWrapMode wrap_s, GXTexWrapMode wrap_t, u8 mipmap, u32 tlut_name); +void GXInitTexObjLOD(GXTexObj *obj, GXTexFilter min_filt, GXTexFilter mag_filt, + f32 min_lod, f32 max_lod, f32 lod_bias, GXBool bias_clamp, + GXBool do_edge_lod, GXAnisotropy max_aniso); +void GXInitTexObjData(GXTexObj *obj, void *image_ptr); +void GXInitTexObjWrapMode(GXTexObj *obj, GXTexWrapMode s, GXTexWrapMode t); +void GXInitTexObjTlut(GXTexObj *obj, u32 tlut_name); +void GXInitTexObjUserData(GXTexObj *obj, void *user_data); +void *GXGetTexObjUserData(const GXTexObj *obj); +void GXLoadTexObjPreLoaded(GXTexObj *obj, GXTexRegion *region, GXTexMapID id); +void GXLoadTexObj(GXTexObj *obj, GXTexMapID id); +void GXInitTlutObj(GXTlutObj *tlut_obj, void *lut, GXTlutFmt fmt, u16 n_entries); +void GXLoadTlut(GXTlutObj *tlut_obj, u32 tlut_name); +void GXInitTexCacheRegion(GXTexRegion *region, u8 is_32b_mipmap, u32 tmem_even, GXTexCacheSize size_even, u32 tmem_odd, GXTexCacheSize size_odd); +void GXInitTexPreLoadRegion(GXTexRegion *region, u32 tmem_even, u32 size_even, u32 tmem_odd, u32 size_odd); +void GXInitTlutRegion(GXTlutRegion *region, u32 tmem_addr, GXTlutSize tlut_size); +void GXInvalidateTexRegion(GXTexRegion *region); +void GXInvalidateTexAll(void); +GXTexRegionCallback GXSetTexRegionCallback(GXTexRegionCallback f); +GXTlutRegionCallback GXSetTlutRegionCallback(GXTlutRegionCallback f); +void GXPreLoadEntireTexture(GXTexObj *tex_obj, GXTexRegion *region); +void GXSetTexCoordScaleManually(GXTexCoordID coord, u8 enable, u16 ss, u16 ts); +void GXSetTexCoordCylWrap(GXTexCoordID coord, u8 s_enable, u8 t_enable); +void GXSetTexCoordBias(GXTexCoordID coord, u8 s_enable, u8 t_enable); #ifdef __cplusplus } #endif diff --git a/src/dolphin/gx/GXAttr.c b/src/dolphin/gx/GXAttr.c new file mode 100644 index 00000000..721027db --- /dev/null +++ b/src/dolphin/gx/GXAttr.c @@ -0,0 +1,586 @@ +#include +#include + +#include + +#define CHECK_ATTRPTR(line, attrPtr) ASSERTMSGLINE(line, (attrPtr) != NULL, "GXSetVtxDescv: attrPtr is NULL") +#define CHECK_ATTRNAME(line, attr) ASSERTMSGLINE(line, (attr) >= GX_VA_PNMTXIDX && (attr) < GX_VA_MAX_ATTR, "GXSetVtxDesc: Invalid vertex attribute name") +#define CHECK_ATTRNAME2(line, attr) ASSERTMSGLINE(line, (attr) >= GX_VA_POS && (attr) <= GX_VA_MAX_ATTR, "GXSetVtxAttrFmt: Invalid vertex attribute name") +#define CHECK_ATTRNAME3(line, attr) ASSERTMSGLINE(line, (attr) >= GX_VA_POS && (attr) <= GX_LIGHT_ARRAY, "GXSetArray: Invalid vertex attribute name") +#define CHECK_ATTRTYPE(line, type) ASSERTMSGLINE(line, (type) >= GX_NONE && (type) <= GX_INDEX16, "GXSetVtxDesc: Invalid vertex attribute type") +#define CHECK_VTXFMT(line, vtxfmt) ASSERTMSGLINE(line, (vtxfmt) < GX_MAX_VTXFMT, "GXSetVtxAttrFmt: Format Index is out of range") +#define CHECK_FRAC(line, frac) ASSERTMSGLINE(line, (frac) < 32, "GXSetVtxAttrFmt: Frac value is >= 32") +#define CHECK_LISTPTR(line, list) ASSERTMSGLINE(line, (list) != NULL, "GXSetVtxAttrFmt: list pointer is NULL") + +static void __GXXfVtxSpecs(void) +{ + u32 nCols = 0; + u32 nNrm; + u32 nTex; + u32 reg; + + nCols = GET_REG_FIELD(gx->vcdLo, 2, 13) ? 1 : 0; + nCols += GET_REG_FIELD(gx->vcdLo, 2, 15) ? 1 : 0; + nNrm = gx->hasBiNrms ? 2 : gx->hasNrms ? 1 : 0; + nTex = 0; + nTex += GET_REG_FIELD(gx->vcdHi, 2, 0) ? 1 : 0; + nTex += GET_REG_FIELD(gx->vcdHi, 2, 2) ? 1 : 0; + nTex += GET_REG_FIELD(gx->vcdHi, 2, 4) ? 1 : 0; + nTex += GET_REG_FIELD(gx->vcdHi, 2, 6) ? 1 : 0; + nTex += GET_REG_FIELD(gx->vcdHi, 2, 8) ? 1 : 0; + nTex += GET_REG_FIELD(gx->vcdHi, 2, 10) ? 1 : 0; + nTex += GET_REG_FIELD(gx->vcdHi, 2, 12) ? 1 : 0; + nTex += GET_REG_FIELD(gx->vcdHi, 2, 14) ? 1 : 0; + reg = (nCols) | (nNrm << 2) | (nTex << 4); + GX_WRITE_XF_REG(8, reg); + gx->bpSentNot = 1; +} + +static inline void SETVCDATTR(GXAttr Attr, GXAttrType Type) +{ + switch (Attr) { + case GX_VA_PNMTXIDX: SET_REG_FIELD(0xD4, gx->vcdLo, 1, 0, Type); break; + case GX_VA_TEX0MTXIDX: SET_REG_FIELD(0xD5, gx->vcdLo, 1, 1, Type); break; + case GX_VA_TEX1MTXIDX: SET_REG_FIELD(0xD6, gx->vcdLo, 1, 2, Type); break; + case GX_VA_TEX2MTXIDX: SET_REG_FIELD(0xD7, gx->vcdLo, 1, 3, Type); break; + case GX_VA_TEX3MTXIDX: SET_REG_FIELD(0xD8, gx->vcdLo, 1, 4, Type); break; + case GX_VA_TEX4MTXIDX: SET_REG_FIELD(0xD9, gx->vcdLo, 1, 5, Type); break; + case GX_VA_TEX5MTXIDX: SET_REG_FIELD(0xDA, gx->vcdLo, 1, 6, Type); break; + case GX_VA_TEX6MTXIDX: SET_REG_FIELD(0xDB, gx->vcdLo, 1, 7, Type); break; + case GX_VA_TEX7MTXIDX: SET_REG_FIELD(0xDC, gx->vcdLo, 1, 8, Type); break; + case GX_VA_POS: SET_REG_FIELD(0xDD, gx->vcdLo, 2, 9, Type); break; + case GX_VA_NRM: + if (Type != GX_NONE) { + gx->hasNrms = 1; + gx->hasBiNrms = 0; + gx->nrmType = Type; + } else { + gx->hasNrms = 0; + } + break; + case GX_VA_NBT: + if (Type != GX_NONE) { + gx->hasBiNrms = 1; + gx->hasNrms = 0; + gx->nrmType = Type; + } else { + gx->hasBiNrms = 0; + } + break; + case GX_VA_CLR0: SET_REG_FIELD(0xF6, gx->vcdLo, 2, 13, Type); break; + case GX_VA_CLR1: SET_REG_FIELD(0xF7, gx->vcdLo, 2, 15, Type); break; + case GX_VA_TEX0: SET_REG_FIELD(0xF8, gx->vcdHi, 2, 0, Type); break; + case GX_VA_TEX1: SET_REG_FIELD(0xF9, gx->vcdHi, 2, 2, Type); break; + case GX_VA_TEX2: SET_REG_FIELD(0xFA, gx->vcdHi, 2, 4, Type); break; + case GX_VA_TEX3: SET_REG_FIELD(0xFB, gx->vcdHi, 2, 6, Type); break; + case GX_VA_TEX4: SET_REG_FIELD(0xFC, gx->vcdHi, 2, 8, Type); break; + case GX_VA_TEX5: SET_REG_FIELD(0xFD, gx->vcdHi, 2, 10, Type); break; + case GX_VA_TEX6: SET_REG_FIELD(0xFE, gx->vcdHi, 2, 12, Type); break; + case GX_VA_TEX7: SET_REG_FIELD(0xFF, gx->vcdHi, 2, 14, Type); break; + } +} + +void GXSetVtxDesc(GXAttr attr, GXAttrType type) +{ + CHECK_GXBEGIN(0xCC, "GXSetVtxDesc"); + CHECK_ATTRNAME(0xCF, attr); + CHECK_ATTRTYPE(0xD1, type); + + SETVCDATTR(attr, type); + if (gx->hasNrms || gx->hasBiNrms) { + SET_REG_FIELD(0xD7, gx->vcdLo, 2, 11, gx->nrmType); + } else { + SET_REG_FIELD(0x00, gx->vcdLo, 2, 11, 0); + } + gx->dirtyState |= 8; +} + +void GXSetVtxDescv(GXVtxDescList *attrPtr) +{ + CHECK_GXBEGIN(0xF5, "GXSetVtxDescv"); + CHECK_ATTRPTR(0xF6, attrPtr); + while (attrPtr->attr != 0xFF) { + CHECK_ATTRNAME(0xFB, attrPtr->attr); + CHECK_ATTRTYPE(0xFE, attrPtr->type); + SETVCDATTR(attrPtr->attr, attrPtr->type); + attrPtr++; + } + if (gx->hasNrms || gx->hasBiNrms) { + SET_REG_FIELD(0x107, gx->vcdLo, 2, 11, gx->nrmType); + } else { + SET_REG_FIELD(0x107, gx->vcdLo, 2, 11, 0); + } + gx->dirtyState |= 8; +} + +void __GXSetVCD(void) +{ + GX_WRITE_SOME_REG4(8, 0x50, gx->vcdLo, -12); + GX_WRITE_SOME_REG4(8, 0x60, gx->vcdHi, -12); + __GXXfVtxSpecs(); +} + +void __GXCalculateVLim() { + static u8 tbl1[] = { 0, 4, 1, 2 }; + static u8 tbl2[] = { 0, 8, 1, 2 }; + static u8 tbl3[] = { 0, 12, 1, 2 }; + + GXCompCnt nc = 0; + unsigned long vlm; + unsigned long b; + unsigned long vl; + unsigned long vh; + unsigned long va; + + if (gx->vNum != 0) { + vl = gx->vcdLo; + vh = gx->vcdHi; + va = gx->vatA[0]; + nc = GET_REG_FIELD(va, 1, 9); + + vlm = GET_REG_FIELD(vl, 1, 0); + vlm += (u8)GET_REG_FIELD(vl, 1, 1); + vlm += (u8)GET_REG_FIELD(vl, 1, 2); + vlm += (u8)GET_REG_FIELD(vl, 1, 3); + vlm += (u8)GET_REG_FIELD(vl, 1, 4); + vlm += (u8)GET_REG_FIELD(vl, 1, 5); + vlm += (u8)GET_REG_FIELD(vl, 1, 6); + vlm += (u8)GET_REG_FIELD(vl, 1, 7); + vlm += (u8)GET_REG_FIELD(vl, 1, 8); + vlm += tbl3[(u8)GET_REG_FIELD(vl, 2, 9)]; + + if (nc == 1) { + b = 3; + } else { + b = 1; + } + + vlm += tbl3[(u8)GET_REG_FIELD(vl, 2, 11)] * b; + vlm += tbl1[(u8)GET_REG_FIELD(vl, 2, 13)]; + vlm += tbl1[(u8)GET_REG_FIELD(vl, 2, 15)]; + vlm += tbl2[(u8)GET_REG_FIELD(vh, 2, 0)]; + vlm += tbl2[(u8)GET_REG_FIELD(vh, 2, 2)]; + vlm += tbl2[(u8)GET_REG_FIELD(vh, 2, 4)]; + vlm += tbl2[(u8)GET_REG_FIELD(vh, 2, 6)]; + vlm += tbl2[(u8)GET_REG_FIELD(vh, 2, 8)]; + vlm += tbl2[(u8)GET_REG_FIELD(vh, 2, 10)]; + vlm += tbl2[(u8)GET_REG_FIELD(vh, 2, 12)]; + vlm += tbl2[(u8)GET_REG_FIELD(vh, 2, 14)]; + gx->vLim = vlm; + } +} + +void GXGetVtxDesc(GXAttr attr, GXAttrType *type) +{ + u32 cpType; + + CHECK_GXBEGIN(0x185, "GXGetVtxDesc"); + CHECK_ATTRNAME(0x187, attr); + + switch (attr) { + case GX_VA_PNMTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 0); break; + case GX_VA_TEX0MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 1); break; + case GX_VA_TEX1MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 2); break; + case GX_VA_TEX2MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 3); break; + case GX_VA_TEX3MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 4); break; + case GX_VA_TEX4MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 5); break; + case GX_VA_TEX5MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 6); break; + case GX_VA_TEX6MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 7); break; + case GX_VA_TEX7MTXIDX: cpType = GET_REG_FIELD(gx->vcdLo, 1, 8); break; + case GX_VA_POS: cpType = GET_REG_FIELD(gx->vcdLo, 2, 9); break; + case GX_VA_NRM: cpType = gx->hasNrms ? GET_REG_FIELD(gx->vcdLo, 2, 11) : 0; break; + case GX_VA_NBT: cpType = gx->hasBiNrms ? GET_REG_FIELD(gx->vcdLo, 2, 11) : 0; break; + case GX_VA_CLR0: cpType = GET_REG_FIELD(gx->vcdLo, 2, 13); break; + case GX_VA_CLR1: cpType = GET_REG_FIELD(gx->vcdLo, 2, 15); break; + case GX_VA_TEX0: cpType = GET_REG_FIELD(gx->vcdHi, 2, 0); break; + case GX_VA_TEX1: cpType = GET_REG_FIELD(gx->vcdHi, 2, 2); break; + case GX_VA_TEX2: cpType = GET_REG_FIELD(gx->vcdHi, 2, 4); break; + case GX_VA_TEX3: cpType = GET_REG_FIELD(gx->vcdHi, 2, 6); break; + case GX_VA_TEX4: cpType = GET_REG_FIELD(gx->vcdHi, 2, 8); break; + case GX_VA_TEX5: cpType = GET_REG_FIELD(gx->vcdHi, 2, 10); break; + case GX_VA_TEX6: cpType = GET_REG_FIELD(gx->vcdHi, 2, 12); break; + case GX_VA_TEX7: cpType = GET_REG_FIELD(gx->vcdHi, 2, 14); break; + default: cpType = 0; break; + } + *type = cpType; +} + +void GXGetVtxDescv(GXVtxDescList *vcd) +{ + GXAttr attr; + + CHECK_GXBEGIN(0x1BA, "GXGetVtxDescv"); + CHECK_ATTRPTR(0x1BC, vcd); + for (attr = 0; attr < GX_VA_MAX_ATTR; attr++) { + vcd[attr].attr = attr; + GXGetVtxDesc(attr, &vcd[attr].type); + } + vcd[attr].attr = 0xFF; +} + +void GXClearVtxDesc(void) +{ + CHECK_GXBEGIN(0x1D3, "GXClearVtxDesc"); + gx->vcdLo = 0; + SET_REG_FIELD(0x00, gx->vcdLo, 2, 9, 1); + gx->vcdHi = 0; + gx->hasNrms = 0; + gx->hasBiNrms = 0; + gx->dirtyState |= 8; +} + +static inline void SETVAT(u32 *va, u32 *vb, u32 *vc, GXAttr attr, GXCompCnt cnt, GXCompType type, u8 shft) +{ + switch (attr) { + case GX_VA_POS: + SET_REG_FIELD(511, *va, 1, 0, cnt); + SET_REG_FIELD(512, *va, 3, 1, type); + SET_REG_FIELD(513, *va, 5, 4, shft); + break; + case GX_VA_NRM: + case GX_VA_NBT: + SET_REG_FIELD(521, *va, 3, 10, type); + if (cnt == GX_NRM_NBT3) { + SET_REG_FIELD(0, *va, 1, 9, 1); + SET_REG_FIELD(0, *va, 1, 31, 1); + } else { + SET_REG_FIELD(527, *va, 1, 9, cnt); + SET_REG_FIELD(528, *va, 1, 31, 0); + } + break; + case GX_VA_CLR0: + SET_REG_FIELD(0x215, *va, 1, 13, cnt); + SET_REG_FIELD(0x216, *va, 3, 14, type); + break; + case GX_VA_CLR1: + SET_REG_FIELD(0x219, *va, 1, 0x11, cnt); + SET_REG_FIELD(0x21A, *va, 3, 18, type); + break; + case GX_VA_TEX0: + SET_REG_FIELD(0x21D, *va, 1, 0x15, cnt); + SET_REG_FIELD(0x21E, *va, 3, 0x16, type); + SET_REG_FIELD(0x21F, *va, 5, 0x19, shft); + break; + case GX_VA_TEX1: + SET_REG_FIELD(0x222, *vb, 1, 0, cnt); + SET_REG_FIELD(0x223, *vb, 3, 1, type); + SET_REG_FIELD(0x224, *vb, 5, 4, shft); + break; + case GX_VA_TEX2: + SET_REG_FIELD(0x227, *vb, 1, 9, cnt); + SET_REG_FIELD(0x228, *vb, 3, 10, type); + SET_REG_FIELD(0x229, *vb, 5, 13, shft); + break; + case GX_VA_TEX3: + SET_REG_FIELD(0x22C, *vb, 1, 18, cnt); + SET_REG_FIELD(0x22D, *vb, 3, 19, type); + SET_REG_FIELD(0x22E, *vb, 5, 22, shft); + break; + case GX_VA_TEX4: + SET_REG_FIELD(0x231, *vb, 1, 27, cnt); + SET_REG_FIELD(0x232, *vb, 3, 28, type); + SET_REG_FIELD(0x233, *vc, 5, 0, shft); + break; + case GX_VA_TEX5: + SET_REG_FIELD(0x236, *vc, 1, 5, cnt); + SET_REG_FIELD(0x237, *vc, 3, 6, type); + SET_REG_FIELD(0x238, *vc, 5, 9, shft); + break; + case GX_VA_TEX6: + SET_REG_FIELD(0x23B, *vc, 1, 14, cnt); + SET_REG_FIELD(0x23C, *vc, 3, 15, type); + SET_REG_FIELD(0x23D, *vc, 5, 18, shft); + break; + case GX_VA_TEX7: + SET_REG_FIELD(0x240, *vc, 1, 23, cnt); + SET_REG_FIELD(0x241, *vc, 3, 24, type); + SET_REG_FIELD(0x242, *vc, 5, 27, shft); + break; + } +} + +void GXSetVtxAttrFmt(GXVtxFmt vtxfmt, GXAttr attr, GXCompCnt cnt, GXCompType type, u8 frac) +{ + u32 *va; + u32 *vb; + u32 *vc; + + CHECK_GXBEGIN(0x252, "GXSetVtxAttrFmt"); + CHECK_VTXFMT(0x253, vtxfmt); + CHECK_ATTRNAME2(0x255, attr); + CHECK_FRAC(0x256, frac); + va = &gx->vatA[vtxfmt]; + vb = &gx->vatB[vtxfmt]; + vc = &gx->vatC[vtxfmt]; + SETVAT(va, vb, vc, attr, cnt, type, frac); + gx->dirtyState |= 0x10; + gx->dirtyVAT |= (u8)(1 << (u8)vtxfmt); +} + +void GXSetVtxAttrFmtv(GXVtxFmt vtxfmt, const GXVtxAttrFmtList *list) +{ + u32 *va; + u32 *vb; + u32 *vc; + + CHECK_GXBEGIN(0x27B, "GXSetVtxAttrFmtv"); + CHECK_LISTPTR(0x27C, list); + CHECK_VTXFMT(0x27D, vtxfmt); + va = &gx->vatA[vtxfmt]; + vb = &gx->vatB[vtxfmt]; + vc = &gx->vatC[vtxfmt]; + while (list->attr != GX_VA_NULL) { + CHECK_ATTRNAME2(0x286, list->attr); + CHECK_FRAC(0x287, list->frac); + SETVAT(va, vb, vc, list->attr, list->cnt, list->type, list->frac); + list++; + } + gx->dirtyState |= 0x10; + gx->dirtyVAT |= (u8)(1 << (u8)vtxfmt); +} + +void __GXSetVAT(void) +{ + u8 i; + + for (i = 0; i < 8; i++) { + if (gx->dirtyVAT & (1 << (u8)i)) { + GX_WRITE_SOME_REG4(8, i | 0x70, gx->vatA[i], i - 12); + GX_WRITE_SOME_REG4(8, i | 0x80, gx->vatB[i], i - 12); + GX_WRITE_SOME_REG4(8, i | 0x90, gx->vatC[i], i - 12); + } + } + gx->dirtyVAT = 0; +} + +void GXGetVtxAttrFmt(GXVtxFmt fmt, GXAttr attr, GXCompCnt *cnt, GXCompType *type, u8 *frac) +{ + u32 *va; + u32 *vb; + u32 *vc; + + CHECK_GXBEGIN(0x2CF, "GXGetVtxAttrFmt"); + CHECK_VTXFMT(0x2D0, fmt); + va = &gx->vatA[fmt]; + vb = &gx->vatB[fmt]; + vc = &gx->vatC[fmt]; + switch (attr) { + case GX_VA_POS: + *cnt = GET_REG_FIELD(*va, 1, 0); + *type = GET_REG_FIELD(*va, 3, 1); + *frac = (u8)(*va >> 4) & 0x1F; // GET_REG_FIELD(*va, 5, 4) + return; + case GX_VA_NRM: + case GX_VA_NBT: + *cnt = GET_REG_FIELD(*va, 1, 9); + if (*cnt == GX_TEX_ST && (u8)(*va >> 0x1F) != 0) { + *cnt = GX_NRM_NBT3; + } + *type = GET_REG_FIELD(*va, 3, 10); + *frac = 0; + return; + case GX_VA_CLR0: + *cnt = GET_REG_FIELD(*va, 1, 13); + *type = GET_REG_FIELD(*va, 3, 14); + *frac = 0; + return; + case GX_VA_CLR1: + *cnt = GET_REG_FIELD(*va, 1, 17); + *type = GET_REG_FIELD(*va, 3, 18); + *frac = 0; + return; + case GX_VA_TEX0: + *cnt = GET_REG_FIELD(*va, 1, 21); + *type = GET_REG_FIELD(*va, 3, 22); + *frac = (u8)(*va >> 0x19U) & 0x1F; + return; + case GX_VA_TEX1: + *cnt = GET_REG_FIELD(*vb, 1, 0); + *type = GET_REG_FIELD(*vb, 3, 1); + *frac = (u8)(*vb >> 4U) & 0x1F; + return; + case GX_VA_TEX2: + *cnt = GET_REG_FIELD(*vb, 1, 9); + *type = GET_REG_FIELD(*vb, 3, 10); + *frac = (u8)(*vb >> 0xDU) & 0x1F; + return; + case GX_VA_TEX3: + *cnt = GET_REG_FIELD(*vb, 1, 18); + *type = GET_REG_FIELD(*vb, 3, 19); + *frac = (u8)(*vb >> 0x16U) & 0x1F; + return; + case GX_VA_TEX4: + *cnt = GET_REG_FIELD(*vb, 1, 27); + *type = GET_REG_FIELD(*vb, 3, 28); + *frac = GET_REG_FIELD(*vc, 5, 0); + return; + case GX_VA_TEX5: + *cnt = GET_REG_FIELD(*vc, 1, 5); + *type = GET_REG_FIELD(*vc, 3, 6); + *frac = (u8)(*vc >> 9U) & 0x1F; + return; + case GX_VA_TEX6: + *cnt = GET_REG_FIELD(*vc, 1, 14); + *type = GET_REG_FIELD(*vc, 3, 15); + *frac = (u8)(*vc >> 0x12) & 0x1F; + return; + case GX_VA_TEX7: + *cnt = GET_REG_FIELD(*vc, 1, 23); + *type = GET_REG_FIELD(*vc, 3, 24); + *frac = (int)(*vc >> 0x1BU); + return; + default: + *cnt = GX_TEX_ST; + *type = GX_RGB565; + *frac = 0; + return; + } +} + +void GXGetVtxAttrFmtv(GXVtxFmt fmt, GXVtxAttrFmtList *vat) +{ + GXAttr attr; + + CHECK_GXBEGIN(0x330, "GXGetVtxAttrFmtv"); + CHECK_LISTPTR(0x331, vat); + CHECK_VTXFMT(0x332, fmt); + for (attr = GX_VA_POS; attr < GX_VA_MAX_ATTR; attr++) { + vat->attr = attr; + GXGetVtxAttrFmt(fmt, attr, &vat->cnt, &vat->type, &vat->frac); + vat++; + } + vat->attr = GX_VA_NULL; +} + +void GXSetArray(GXAttr attr, const void *base_ptr, u8 stride) +{ + GXAttr cpAttr; + unsigned long phyAddr; + + attr; // needed to match + + CHECK_GXBEGIN(0x34F, "GXSetArray"); + if (attr == GX_VA_NBT) { + attr = GX_VA_NRM; + } + CHECK_ATTRNAME3(0x352, attr); + cpAttr = attr - GX_VA_POS; + phyAddr = (u32)base_ptr & 0x3FFFFFFF; + GX_WRITE_SOME_REG2(8, cpAttr | 0xA0, phyAddr, cpAttr - 12); + GX_WRITE_SOME_REG3(8, cpAttr | 0xB0, stride, cpAttr - 12); +} + +void GXInvalidateVtxCache(void) +{ + CHECK_GXBEGIN(0x368, "GXInvalidateVtxCache"); + GX_WRITE_U8(0x48); +} + +void GXSetTexCoordGen2(GXTexCoordID dst_coord, GXTexGenType func, GXTexGenSrc src_param, u32 mtx, GXBool normalize, u32 pt_texmtx) +{ + u32 reg = 0; + u32 row; + u32 bumprow; // unused + u32 form; + GXAttr mtxIdAttr; + + CHECK_GXBEGIN(0x392, "GXSetTexCoordGen"); + ASSERTMSGLINE(0x393, dst_coord < 8, "GXSetTexCoordGen: Invalid coordinate Id"); + form = 0; + row = 5; + switch (src_param) { + case GX_TG_POS: row = 0; form = 1; break; + case GX_TG_NRM: row = 1; form = 1; break; + case GX_TG_BINRM: row = 3; form = 1; break; + case GX_TG_TANGENT: row = 4; form = 1; break; + case GX_TG_COLOR0: row = 2; break; + case GX_TG_COLOR1: row = 2; break; + case GX_TG_TEX0: row = 5; break; + case GX_TG_TEX1: row = 6; break; + case GX_TG_TEX2: row = 7; break; + case GX_TG_TEX3: row = 8; break; + case GX_TG_TEX4: row = 9; break; + case GX_TG_TEX5: row = 10; break; + case GX_TG_TEX6: row = 11; break; + case GX_TG_TEX7: row = 12; break; + case GX_TG_TEXCOORD0: bumprow; break; + case GX_TG_TEXCOORD1: bumprow; break; + case GX_TG_TEXCOORD2: bumprow; break; + case GX_TG_TEXCOORD3: bumprow; break; + case GX_TG_TEXCOORD4: bumprow; break; + case GX_TG_TEXCOORD5: bumprow; break; + case GX_TG_TEXCOORD6: bumprow; break; + default: + ASSERTMSGLINE(0x3AF, 0, "GXSetTexCoordGen: Invalid source parameter"); + break; + } + switch (func) + { + case GX_TG_MTX2x4: + SET_REG_FIELD(0x3B8, reg, 1, 1, 0); + SET_REG_FIELD(0x3B9, reg, 1, 2, form); + SET_REG_FIELD(0x3BA, reg, 3, 4, 0); + SET_REG_FIELD(0x3BB, reg, 5, 7, row); + break; + case GX_TG_MTX3x4: + SET_REG_FIELD(0x3BF, reg, 1, 1, 1); + SET_REG_FIELD(0x3C0, reg, 1, 2, form); + SET_REG_FIELD(0x3C1, reg, 3, 4, 0); + SET_REG_FIELD(0x3C2, reg, 5, 7, row); + break; + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + ASSERTMSGLINE(0x3CF, src_param >= 12 && src_param <= 18, "GXSetTexCoordGen: Bump source texture value is invalid"); + SET_REG_FIELD(0x3D0, reg, 1, 1, 0); + SET_REG_FIELD(0x3D1, reg, 1, 2, form); + SET_REG_FIELD(0x3D2, reg, 3, 4, 1); + SET_REG_FIELD(0x3D3, reg, 5, 7, row); + SET_REG_FIELD(0x3D4, reg, 3, 12, src_param - 12); + SET_REG_FIELD(0x3D5, reg, 3, 15, func - 2); + break; + case GX_TG_SRTG: + SET_REG_FIELD(0x3D9, reg, 1, 1, 0); + SET_REG_FIELD(0x3DA, reg, 1, 2, form); + if (src_param == GX_TG_COLOR0) { + SET_REG_FIELD(0, reg, 3, 4, 2); + } else { + SET_REG_FIELD(0, reg, 3, 4, 3); + } + SET_REG_FIELD(0, reg, 5, 7, 2); + break; + default: + ASSERTMSGLINE(0x3E5, 0, "GXSetTexCoordGen: Invalid function"); + break; + } + GX_WRITE_XF_REG(dst_coord + 0x40, reg); + reg = 0; + SET_REG_FIELD(0x3F8, reg, 6, 0, pt_texmtx - 64); + SET_REG_FIELD(0x3F9, reg, 1, 8, normalize); + GX_WRITE_XF_REG(dst_coord + 0x50, reg); + switch (dst_coord) { + case GX_TEXCOORD0: SET_REG_FIELD(0x402, gx->matIdxA, 6, 6, mtx); break; + case GX_TEXCOORD1: SET_REG_FIELD(0x403, gx->matIdxA, 6, 12, mtx); break; + case GX_TEXCOORD2: SET_REG_FIELD(0x404, gx->matIdxA, 6, 18, mtx); break; + case GX_TEXCOORD3: SET_REG_FIELD(0x405, gx->matIdxA, 6, 24, mtx); break; + case GX_TEXCOORD4: SET_REG_FIELD(0x406, gx->matIdxB, 6, 0, mtx); break; + case GX_TEXCOORD5: SET_REG_FIELD(0x407, gx->matIdxB, 6, 6, mtx); break; + case GX_TEXCOORD6: SET_REG_FIELD(0x408, gx->matIdxB, 6, 12, mtx); break; + default: SET_REG_FIELD(0x409, gx->matIdxB, 6, 18, mtx); break; + } + mtxIdAttr = dst_coord + 1; + __GXSetMatrixIndex(mtxIdAttr); +} + +void GXSetNumTexGens(u8 nTexGens) +{ + CHECK_GXBEGIN(0x41B, "GXSetNumTexGens"); + SET_REG_FIELD(0x41D, gx->genMode, 4, 0, nTexGens); + GX_WRITE_XF_REG(0x3F, nTexGens); + gx->dirtyState |= 4; +} diff --git a/src/dolphin/gx/GXBump.c b/src/dolphin/gx/GXBump.c new file mode 100644 index 00000000..910370d8 --- /dev/null +++ b/src/dolphin/gx/GXBump.c @@ -0,0 +1,335 @@ +#include +#include + +#include + +#if DEBUG +#define GX_WRITE_SOME_REG5(a, b) \ + do { \ + GX_WRITE_U8(a); \ + GX_WRITE_U32(b); \ + __gxVerif->rasRegs[(b >> 24) & 0xFF] = b; \ + } while (0) +#else +#define GX_WRITE_SOME_REG5(a, b) \ + do { \ + GX_WRITE_U8(a); \ + GX_WRITE_U32(b); \ + } while (0) +#endif + +void GXSetTevIndirect(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXIndTexFormat format, GXIndTexBiasSel bias_sel, GXIndTexMtxID matrix_sel, + GXIndTexWrap wrap_s, GXIndTexWrap wrap_t, GXBool add_prev, GXBool utc_lod, GXIndTexAlphaSel alpha_sel) +{ + u32 reg; + + CHECK_GXBEGIN(0x92, "GXInitIndTexture"); + reg = 0; + SET_REG_FIELD(0x81, reg, 2, 0, ind_stage); + SET_REG_FIELD(0x82, reg, 2, 2, format); + SET_REG_FIELD(0x83, reg, 3, 4, bias_sel); + SET_REG_FIELD(0x84, reg, 2, 7, alpha_sel); + SET_REG_FIELD(0x85, reg, 4, 9, matrix_sel); + SET_REG_FIELD(0x86, reg, 3, 13, wrap_s); + SET_REG_FIELD(0x87, reg, 3, 16, wrap_t); + SET_REG_FIELD(0x88, reg, 1, 19, utc_lod); + SET_REG_FIELD(0x89, reg, 1, 20, add_prev); + SET_REG_FIELD(0x8A, reg, 8, 24, tev_stage + 16); + GX_WRITE_SOME_REG5(0x61, reg); + gx->bpSentNot = 0; +} + +void GXSetIndTexMtx(GXIndTexMtxID mtx_id, f32 offset[2][3], s8 scale_exp) +{ + s32 mtx[6]; + u32 reg; + u32 id; + + CHECK_GXBEGIN(0xBA, "GXSetIndTexMtx"); + + switch (mtx_id) { + case GX_ITM_0: + case GX_ITM_1: + case GX_ITM_2: + id = mtx_id - 1; + break; + case GX_ITM_S0: + case GX_ITM_S1: + case GX_ITM_S2: + id = mtx_id - 5; + break; + case GX_ITM_T0: + case GX_ITM_T1: + case GX_ITM_T2: + id = mtx_id - 9; + break; + default: + id = 0; + break; + } + + mtx[0] = (int)(1024.0f * offset[0][0]) & 0x7FF; + mtx[1] = (int)(1024.0f * offset[1][0]) & 0x7FF; + scale_exp += 0x11; + reg = 0; + SET_REG_FIELD(0xBD, reg, 11, 0, mtx[0]); + SET_REG_FIELD(0xBE, reg, 11, 11, mtx[1]); + SET_REG_FIELD(0xBF, reg, 2, 22, scale_exp & 3); + SET_REG_FIELD(0xC0, reg, 8, 24, id * 3 + 6); + GX_WRITE_SOME_REG5(0x61, reg); + + mtx[2] = (int)(1024.0f * offset[0][1]) & 0x7FF; + mtx[3] = (int)(1024.0f * offset[1][1]) & 0x7FF; + reg = 0; + SET_REG_FIELD(0xC6, reg, 11, 0, mtx[2]); + SET_REG_FIELD(0xC7, reg, 11, 11, mtx[3]); + SET_REG_FIELD(0xC8, reg, 2, 22, (scale_exp >> 2) & 3); + SET_REG_FIELD(0xC9, reg, 8, 24, id * 3 + 7); + GX_WRITE_SOME_REG5(0x61, reg); + + mtx[4] = (int)(1024.0f * offset[0][2]) & 0x7FF; + mtx[5] = (int)(1024.0f * offset[1][2]) & 0x7FF; + reg = 0; + SET_REG_FIELD(0xCF, reg, 11, 0, mtx[4]); + SET_REG_FIELD(0xD0, reg, 11, 11, mtx[5]); + SET_REG_FIELD(0xD1, reg, 2, 22, (scale_exp >> 4) & 3); + SET_REG_FIELD(0xD2, reg, 8, 24, id * 3 + 8); + GX_WRITE_SOME_REG5(0x61, reg); + + gx->bpSentNot = 0; +} + +void GXSetIndTexCoordScale(GXIndTexStageID ind_state, GXIndTexScale scale_s, GXIndTexScale scale_t) +{ + CHECK_GXBEGIN(0xF9, "GXSetIndTexScale"); + + switch (ind_state) { + case GX_INDTEXSTAGE0: + SET_REG_FIELD(0xEA, gx->IndTexScale0, 4, 0, scale_s); + SET_REG_FIELD(0xEB, gx->IndTexScale0, 4, 4, scale_t); + SET_REG_FIELD(0xEC, gx->IndTexScale0, 8, 24, 0x25); + GX_WRITE_SOME_REG5(0x61, gx->IndTexScale0); + break; + case GX_INDTEXSTAGE1: + SET_REG_FIELD(0xF0, gx->IndTexScale0, 4, 8, scale_s); + SET_REG_FIELD(0xF1, gx->IndTexScale0, 4, 12, scale_t); + SET_REG_FIELD(0xF2, gx->IndTexScale0, 8, 24, 0x25); + GX_WRITE_SOME_REG5(0x61, gx->IndTexScale0); + break; + case GX_INDTEXSTAGE2: + SET_REG_FIELD(0xF6, gx->IndTexScale1, 4, 0, scale_s); + SET_REG_FIELD(0xF7, gx->IndTexScale1, 4, 4, scale_t); + SET_REG_FIELD(0xF8, gx->IndTexScale1, 8, 24, 0x26); + GX_WRITE_SOME_REG5(0x61, gx->IndTexScale1); + break; + case GX_INDTEXSTAGE3: + SET_REG_FIELD(0xFC, gx->IndTexScale1, 4, 8, scale_s); + SET_REG_FIELD(0xFD, gx->IndTexScale1, 4, 12, scale_t); + SET_REG_FIELD(0xFE, gx->IndTexScale1, 8, 24, 0x26); + GX_WRITE_SOME_REG5(0x61, gx->IndTexScale1); + break; + default: + ASSERTMSGLINE(0x115, 0, "GXSetIndTexCoordScale: Invalid Indirect Stage Id"); + break; + } + gx->bpSentNot = 0; +} + +void GXSetIndTexOrder(GXIndTexStageID ind_stage, GXTexCoordID tex_coord, GXTexMapID tex_map) +{ + CHECK_GXBEGIN(0x12E, "GXSetIndTexOrder"); + + ASSERTMSGLINE(0x11D, tex_map < 8, "GXSetIndTexOrder: Invalid direct texture Id"); + ASSERTMSGLINE(0x11E, tex_coord < 8, "GXSetIndTexOrder: Invalid texture coord"); + switch (ind_stage) { + case GX_INDTEXSTAGE0: + SET_REG_FIELD(0x122, gx->iref, 3, 0, tex_map); + SET_REG_FIELD(0x123, gx->iref, 3, 3, tex_coord); + break; + case GX_INDTEXSTAGE1: + SET_REG_FIELD(0x126, gx->iref, 3, 6, tex_map); + SET_REG_FIELD(0x127, gx->iref, 3, 9, tex_coord); + break; + case GX_INDTEXSTAGE2: + SET_REG_FIELD(0x12A, gx->iref, 3, 12, tex_map); + SET_REG_FIELD(0x12B, gx->iref, 3, 15, tex_coord); + break; + case GX_INDTEXSTAGE3: + SET_REG_FIELD(0x12E, gx->iref, 3, 18, tex_map); + SET_REG_FIELD(0x12F, gx->iref, 3, 21, tex_coord); + break; + default: + ASSERTMSGLINE(0x132, 0, "GXSetIndTexOrder: Invalid Indirect Stage Id"); + break; + } + GX_WRITE_SOME_REG5(0x61, gx->iref); + gx->dirtyState |= 3; + gx->bpSentNot = 0; +} + +void GXSetNumIndStages(u8 nIndStages) +{ + CHECK_GXBEGIN(0x144, "GXSetNumIndStages"); + ASSERTMSGLINE(0x146, nIndStages <= 4, "GXSetNumIndStages: Exceeds max. number of indirect texture stages"); + SET_REG_FIELD(0x147, gx->genMode, 3, 16, nIndStages); + gx->dirtyState |= 6; +} + +#pragma dont_inline on +void GXSetTevDirect(GXTevStageID tev_stage) +{ + CHECK_GXBEGIN(0x158, "GXSetTevDirect"); + GXSetTevIndirect(tev_stage, GX_INDTEXSTAGE0, GX_ITF_8, GX_ITB_NONE, GX_ITM_OFF, GX_ITW_OFF, GX_ITW_OFF, 0U, 0, 0); +} + +void GXSetTevIndWarp(GXTevStageID tev_stage, GXIndTexStageID ind_stage, u8 signed_offset, u8 replace_mode, GXIndTexMtxID matrix_sel) +{ + GXIndTexWrap wrap = (replace_mode != 0) ? GX_ITW_0 : GX_ITW_OFF; + + CHECK_GXBEGIN(0x16E, "GXSetTevIndWarp"); + GXSetTevIndirect(tev_stage, ind_stage, GX_ITF_8, (signed_offset != 0) ? GX_ITB_STU : GX_ITB_NONE, matrix_sel, wrap, wrap, 0U, 0, 0); +} + +void GXSetTevIndTile(GXTevStageID tev_stage, GXIndTexStageID ind_stage, u16 tilesize_s, u16 tilesize_t, u16 tilespacing_s, u16 tilespacing_t, + GXIndTexFormat format, GXIndTexMtxID matrix_sel, GXIndTexBiasSel bias_sel, GXIndTexAlphaSel alpha_sel) +{ + GXIndTexWrap wrap_s; + GXIndTexWrap wrap_t; + f32 mtx[2][3]; + + CHECK_GXBEGIN(0x190, "GXSetTevIndTile"); + ASSERTMSGLINE(0x191, tev_stage < 16, "GXSetTevIndTile: Invalid tev stage id"); + ASSERTMSGLINE(0x192, ind_stage < 4, "GXSetTevIndTile: Invalid indirect stage id"); + switch (tilesize_s) { + case 256: + wrap_s = GX_ITW_256; + break; + case 128: + wrap_s = GX_ITW_128; + break; + case 64: + wrap_s = GX_ITW_64; + break; + case 32: + wrap_s = GX_ITW_32; + break; + case 16: + wrap_s = GX_ITW_16; + break; + default: + ASSERTMSGLINE(0x19B, 0, "GXSetTevIndTile: Invalid tilesize for S coordinate"); + wrap_s = GX_ITW_OFF; + break; + } + switch (tilesize_t) { + case 256: + wrap_t = GX_ITW_256; + break; + case 128: + wrap_t = GX_ITW_128; + break; + case 64: + wrap_t = GX_ITW_64; + break; + case 32: + wrap_t = GX_ITW_32; + break; + case 16: + wrap_t = GX_ITW_16; + break; + default: + ASSERTMSGLINE(0x1A7, 0, "GXSetTevIndTile: Invalid tilesize for T coordinate"); + wrap_t = GX_ITW_OFF; + break; + } + mtx[0][0] = tilespacing_s / 1024.0f; + mtx[0][1] = mtx[0][2] = 0.0f; + mtx[1][1] = tilespacing_t / 1024.0f; + mtx[1][0] = mtx[1][2] = 0.0f; + GXSetIndTexMtx(matrix_sel, mtx, 0xA); + GXSetTevIndirect(tev_stage, ind_stage, format, bias_sel, matrix_sel, wrap_s, wrap_t, 0U, 1, alpha_sel); +} +#pragma dont_inline off + +void GXSetTevIndBumpST(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXIndTexMtxID matrix_sel) +{ + GXIndTexMtxID sm; + GXIndTexMtxID tm; + + CHECK_GXBEGIN(0x1CF, "GXSetTevIndBumpST"); + switch (matrix_sel) { + case GX_ITM_0: + sm = GX_ITM_S0; + tm = GX_ITM_T0; + break; + case GX_ITM_1: + sm = GX_ITM_S1; + tm = GX_ITM_T1; + break; + case GX_ITM_2: + sm = GX_ITM_S2; + tm = GX_ITM_T2; + break; + default: + ASSERTMSGLINE(0x1E0, 0, "GXSetTevIndBumpST: Invalid matrix selection"); + break; + } + GXSetTevIndirect(tev_stage, ind_stage, GX_ITF_8, GX_ITB_ST, sm, GX_ITW_0, GX_ITW_0, 0U, 0, 0); + GXSetTevIndirect(tev_stage + 1, ind_stage, GX_ITF_8, GX_ITB_ST, tm, GX_ITW_0, GX_ITW_0, 1U, 0, 0); + GXSetTevIndirect(tev_stage + 2, ind_stage, GX_ITF_8, GX_ITB_NONE, GX_ITM_OFF, GX_ITW_OFF, GX_ITW_OFF, 1U, 0, 0); +} + +void GXSetTevIndBumpXYZ(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXIndTexMtxID matrix_sel) +{ + CHECK_GXBEGIN(0x214, "GXSetTevIndBumpXYZ"); + GXSetTevIndirect(tev_stage, ind_stage, GX_ITF_8, GX_ITB_STU, matrix_sel, GX_ITW_OFF, GX_ITW_OFF, 0U, 0, 0); +} + +void GXSetTevIndRepeat(GXTevStageID tev_stage) +{ + CHECK_GXBEGIN(0x231, "GXSetTevIndRepeat"); + GXSetTevIndirect(tev_stage, GX_INDTEXSTAGE0, GX_ITF_8, GX_ITB_NONE, GX_ITM_OFF, GX_ITW_0, GX_ITW_0, 1U, 0, 0); +} + +void __GXUpdateBPMask(void) +{ + u32 nIndStages; + u32 i; + u32 tmap; + u32 new_imask; + u32 nStages; + u32 new_dmask; + + new_imask = 0; + new_dmask = 0; + nIndStages = GET_REG_FIELD(gx->genMode, 3, 16); + for (i = 0; i < nIndStages; i++) { + switch (i) { + case 0: + tmap = GET_REG_FIELD(gx->iref, 3, 0); + break; + case 1: + tmap = GET_REG_FIELD(gx->iref, 3, 6); + break; + case 2: + tmap = GET_REG_FIELD(gx->iref, 3, 12); + break; + case 3: + tmap = GET_REG_FIELD(gx->iref, 3, 18); + break; + } + new_imask |= 1 << tmap; + } + + if ((u8)gx->bpMask != new_imask) { + SET_REG_FIELD(0x26E, gx->bpMask, 8, 0, new_imask); + GX_WRITE_SOME_REG5(0x61, gx->bpMask); + gx->bpSentNot = 0; + } +} + +void __GXFlushTextureState(void) +{ + GX_WRITE_SOME_REG5(0x61, gx->bpMask); + gx->bpSentNot = 0; +} diff --git a/src/dolphin/gx/GXDisplayList.c b/src/dolphin/gx/GXDisplayList.c new file mode 100644 index 00000000..cc751606 --- /dev/null +++ b/src/dolphin/gx/GXDisplayList.c @@ -0,0 +1,83 @@ +#include + +#include +#include + +#include + +static struct __GXFifoObj DisplayListFifo; +static volatile struct __GXFifoObj *OldCPUFifo; +static struct __GXData_struct __savedGXdata; + +void GXBeginDisplayList(void *list, u32 size) +{ + struct __GXFifoObj *CPUFifo = (struct __GXFifoObj *)GXGetCPUFifo(); + + CHECK_GXBEGIN(0x89, "GXBeginDisplayList"); + ASSERTMSGLINE(0x8A, !__GXData->inDispList, "GXBeginDisplayList: display list already in progress"); + ASSERTMSGLINE(0x8B, (size & 0x1F) == 0, "GXBeginDisplayList: size is not 32 byte aligned"); + ASSERTMSGLINE(0x8C, ((u32)list & 0x1F) == 0, "GXBeginDisplayList: list is not 32 byte aligned"); + if (gx->dirtyState != 0) { + __GXSetDirtyState(); + } + if (gx->dlSaveContext != 0) { + memcpy(&__savedGXdata, gx, sizeof(__savedGXdata)); + } + DisplayListFifo.base = (u8 *)list; + DisplayListFifo.top = (u8 *)list + size - 4; + DisplayListFifo.size = size; + DisplayListFifo.count = 0; + DisplayListFifo.rdPtr = list; + DisplayListFifo.wrPtr = list; + gx->inDispList = 1; + GXSaveCPUFifo((GXFifoObj *)CPUFifo); + OldCPUFifo = CPUFifo; + GXSetCPUFifo((GXFifoObj *)&DisplayListFifo); +} + +unsigned long GXEndDisplayList(void) +{ + u32 ov; + BOOL enabled; + u32 cpenable; + + CHECK_GXBEGIN(0xB5, "GXEndDisplayList"); + ASSERTMSGLINE(0xB6, gx->inDispList == TRUE, "GXEndDisplayList: no display list in progress"); + if (gx->dirtyState != 0) { + __GXSetDirtyState(); + } + ov = (__piReg[5] >> 26) & 1; + __GXSaveCPUFifoAux(&DisplayListFifo); + ASSERTMSGLINE(0xC3, !ov, "GXEndDisplayList: display list commands overflowed buffer"); + GXSetCPUFifo((GXFifoObj *)OldCPUFifo); + if (gx->dlSaveContext != 0) { + enabled = OSDisableInterrupts(); + cpenable = gx->cpEnable; + memcpy(gx, &__savedGXdata, sizeof(*gx)); + gx->cpEnable = cpenable; + OSRestoreInterrupts(enabled); + } + gx->inDispList = 0; + if (!ov) { + return DisplayListFifo.count; + } + return 0; +} + +void GXCallDisplayList(const void *list, u32 nbytes) +{ + CHECK_GXBEGIN(0xEC, "GXCallDisplayList"); + ASSERTMSGLINE(0xED, !gx->inDispList, "GXCallDisplayList: display list already in progress"); + ASSERTMSGLINE(0xEE, (nbytes & 0x1F) == 0, "GXCallDisplayList: nbytes is not 32 byte aligned"); + ASSERTMSGLINE(0xEF, ((u32)list & 0x1F) == 0, "GXCallDisplayList: list is not 32 byte aligned"); + + if (gx->dirtyState != 0) { + __GXSetDirtyState(); + } + if (*(u32 *)&gx->vNumNot == 0) { // checks both vNum and bpSent + __GXSendFlushPrim(); + } + GX_WRITE_U8(0x40); + GX_WRITE_U32((u32)list); + GX_WRITE_U32(nbytes); +} diff --git a/src/dolphin/gx/GXFifo.c b/src/dolphin/gx/GXFifo.c new file mode 100644 index 00000000..963be184 --- /dev/null +++ b/src/dolphin/gx/GXFifo.c @@ -0,0 +1,559 @@ +#include +#include +#include +#include + + +#include + +static OSThread *__GXCurrentThread; +static GXBool CPGPLinked; +static BOOL GXOverflowSuspendInProgress; +static GXBreakPtCallback BreakPointCB; +static u32 __GXOverflowCount; + +struct __GXFifoObj *CPUFifo; +struct __GXFifoObj *GPFifo; +void *__GXCurrentBP; + +static void __GXFifoReadEnable(void); +static void __GXFifoReadDisable(void); +static void __GXFifoLink(u8 arg0); +static void __GXWriteFifoIntEnable(u8 arg0, u8 arg1); +static void __GXWriteFifoIntReset(u8 arg0, u8 arg1); + +static void GXOverflowHandler(s16 interrupt, OSContext *context) +{ + ASSERTLINE(0x179, !GXOverflowSuspendInProgress); + + __GXOverflowCount++; + __GXWriteFifoIntEnable(0, 1); + __GXWriteFifoIntReset(1, 0); + GXOverflowSuspendInProgress = TRUE; + + OSSuspendThread(__GXCurrentThread); +} + +static void GXUnderflowHandler(s16 interrupt, OSContext *context) +{ + ASSERTLINE(0x1A3, GXOverflowSuspendInProgress); + + OSResumeThread(__GXCurrentThread); + GXOverflowSuspendInProgress = FALSE; + __GXWriteFifoIntReset(1U, 1U); + __GXWriteFifoIntEnable(1U, 0U); +} + +#define SOME_SET_REG_MACRO(reg, size, shift, val) \ + do { \ + (reg) = (u32)__rlwimi((u32)(reg), (val), (shift), (32 - (shift) - (size)), (31 - (shift))); \ + } while (0); + +static void GXBreakPointHandler(s16 interrupt, OSContext *context) +{ + OSContext exceptionContext; + + SOME_SET_REG_MACRO(gx->cpEnable, 1, 5, 0); + GX_SET_CP_REG(1, gx->cpEnable); + if (BreakPointCB != NULL) { + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + BreakPointCB(); + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); + } +} + +static void GXCPInterruptHandler(s16 interrupt, OSContext *context) +{ + gx->cpStatus = GX_GET_CP_REG(0); + if (GET_REG_FIELD(gx->cpEnable, 1, 3) && GET_REG_FIELD(gx->cpStatus, 1, 1)) { + GXUnderflowHandler(interrupt, context); + } + if (GET_REG_FIELD(gx->cpEnable, 1, 2) && GET_REG_FIELD(gx->cpStatus, 1, 0)) { + GXOverflowHandler(interrupt, context); + } + if (GET_REG_FIELD(gx->cpEnable, 1, 5) && GET_REG_FIELD(gx->cpStatus, 1, 4)) { + GXBreakPointHandler(interrupt, context); + } +} + +void GXInitFifoBase(GXFifoObj *fifo, void *base, u32 size) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + + ASSERTMSGLINE(0x21E, realFifo != CPUFifo, "GXInitFifoBase: fifo is attached to CPU"); + ASSERTMSGLINE(0x220, realFifo != GPFifo, "GXInitFifoBase: fifo is attached to GP"); + ASSERTMSGLINE(0x222, ((u32)base & 0x1F) == 0, "GXInitFifoBase: base must be 32B aligned"); + ASSERTMSGLINE(0x224, base != NULL, "GXInitFifoBase: base pointer is NULL"); + ASSERTMSGLINE(0x226, (size & 0x1F) == 0, "GXInitFifoBase: size must be 32B aligned"); + ASSERTMSGLINE(0x228, size >= 0x10000, "GXInitFifoBase: fifo is not large enough"); + + realFifo->base = base; + realFifo->top = (u8 *)base + size - 4; + realFifo->size = size; + realFifo->count = 0; + GXInitFifoLimits(fifo, size - 0x4000, (size >> 1) & ~0x1F); + GXInitFifoPtrs(fifo, base, base); +} + +void GXInitFifoPtrs(GXFifoObj *fifo, void *readPtr, void *writePtr) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + BOOL enabled; + + ASSERTMSGLINE(0x250, realFifo != CPUFifo, "GXInitFifoPtrs: fifo is attached to CPU"); + ASSERTMSGLINE(0x252, realFifo != GPFifo, "GXInitFifoPtrs: fifo is attached to GP"); + ASSERTMSGLINE(0x254, ((u32)readPtr & 0x1F) == 0, "GXInitFifoPtrs: readPtr not 32B aligned"); + ASSERTMSGLINE(0x256, ((u32)writePtr & 0x1F) == 0, "GXInitFifoPtrs: writePtr not 32B aligned"); + ASSERTMSGLINE(0x259, realFifo->base <= readPtr && readPtr < realFifo->top, "GXInitFifoPtrs: readPtr not in fifo range"); + ASSERTMSGLINE(0x25C, realFifo->base <= writePtr && writePtr < realFifo->top, "GXInitFifoPtrs: writePtr not in fifo range"); + + enabled = OSDisableInterrupts(); + realFifo->rdPtr = readPtr; + realFifo->wrPtr = writePtr; + realFifo->count = (u8 *)writePtr - (u8 *)readPtr; + if (realFifo->count < 0) { + realFifo->count += realFifo->size; + } + OSRestoreInterrupts(enabled); +} + +void GXInitFifoLimits(GXFifoObj *fifo, u32 hiWatermark, u32 loWatermark) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + + ASSERTMSGLINE(0x281, realFifo != GPFifo, "GXInitFifoLimits: fifo is attached to GP"); + ASSERTMSGLINE(0x283, (hiWatermark & 0x1F) == 0, "GXInitFifoLimits: hiWatermark not 32B aligned"); + ASSERTMSGLINE(0x285, (loWatermark & 0x1F) == 0, "GXInitFifoLimits: loWatermark not 32B aligned"); + ASSERTMSGLINE(0x287, hiWatermark < realFifo->top - realFifo->base, "GXInitFifoLimits: hiWatermark too large"); + ASSERTMSGLINE(0x289, loWatermark < hiWatermark, "GXInitFifoLimits: hiWatermark below lo watermark"); + + realFifo->hiWatermark = hiWatermark; + realFifo->loWatermark = loWatermark; +} + +void GXSetCPUFifo(GXFifoObj *fifo) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + BOOL enabled = OSDisableInterrupts(); + + CPUFifo = realFifo; + if (CPUFifo == GPFifo) + { + u32 reg = 0; + + __piReg[3] = (u32)realFifo->base & 0x3FFFFFFF; + __piReg[4] = (u32)realFifo->top & 0x3FFFFFFF; + SET_REG_FIELD(0x294, reg, 21, 5, ((u32)realFifo->wrPtr & 0x3FFFFFFF) >> 5); + SET_REG_FIELD(0x295, reg, 1, 26, 0); + __piReg[5] = reg; + CPGPLinked = GX_TRUE; + __GXWriteFifoIntReset(1, 1); + __GXWriteFifoIntEnable(1, 0); + __GXFifoLink(1); + } + else + { + u32 reg; + + if (CPGPLinked) + { + __GXFifoLink(0); + CPGPLinked = GX_FALSE; + } + __GXWriteFifoIntEnable(0, 0); + reg = 0; + __piReg[3] = (u32)realFifo->base & 0x3FFFFFFF; + __piReg[4] = (u32)realFifo->top & 0x3FFFFFFF; + SET_REG_FIELD(0x2B7, reg, 21, 5, ((u32)realFifo->wrPtr & 0x3FFFFFFF) >> 5); + SET_REG_FIELD(0x2B8, reg, 1, 26, 0); + __piReg[5] = reg; + } + + __sync(); + + OSRestoreInterrupts(enabled); +} + +void GXSetGPFifo(GXFifoObj *fifo) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + BOOL enabled = OSDisableInterrupts(); + + __GXFifoReadDisable(); + __GXWriteFifoIntEnable(0, 0); + GPFifo = realFifo; + + GX_SET_CP_REG(16, (u32)realFifo->base & 0xFFFF); + GX_SET_CP_REG(18, (u32)realFifo->top & 0xFFFF); + GX_SET_CP_REG(24, realFifo->count & 0xFFFF); + GX_SET_CP_REG(26, (u32)realFifo->wrPtr & 0xFFFF); + GX_SET_CP_REG(28, (u32)realFifo->rdPtr & 0xFFFF); + GX_SET_CP_REG(20, (u32)realFifo->hiWatermark & 0xFFFF); + GX_SET_CP_REG(22, (u32)realFifo->loWatermark & 0xFFFF); + GX_SET_CP_REG(17, ((u32)realFifo->base & 0x3FFFFFFF) >> 16); + GX_SET_CP_REG(19, ((u32)realFifo->top & 0x3FFFFFFF) >> 16); + GX_SET_CP_REG(25, realFifo->count >> 16); + GX_SET_CP_REG(27, ((u32)realFifo->wrPtr & 0x3FFFFFFF) >> 16); + GX_SET_CP_REG(29, ((u32)realFifo->rdPtr & 0x3FFFFFFF) >> 16); + GX_SET_CP_REG(21, (u32)realFifo->hiWatermark >> 16); + GX_SET_CP_REG(23, (u32)realFifo->loWatermark >> 16); + + __sync(); + + if (CPUFifo == GPFifo) { + CPGPLinked = GX_TRUE; + __GXWriteFifoIntEnable(1, 0); + __GXFifoLink(1); + } + else { + CPGPLinked = GX_FALSE; + __GXWriteFifoIntEnable(0, 0); + __GXFifoLink(0); + } + __GXWriteFifoIntReset(1, 1); + __GXFifoReadEnable(); + OSRestoreInterrupts(enabled); +} + +void GXSaveCPUFifo(GXFifoObj *fifo) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + ASSERTMSGLINE(0x343, realFifo == CPUFifo, "GXSaveCPUFifo: fifo is not attached to CPU"); + __GXSaveCPUFifoAux(realFifo); +} + +#define SOME_MACRO1(fifo) \ + do { \ + u32 temp = GX_GET_CP_REG(29) << 16; \ + temp |= GX_GET_CP_REG(28); \ + fifo->rdPtr = OSPhysicalToCached(temp); \ + } while (0) + +#define SOME_MACRO2(fifo) \ + do { \ + u32 temp = GX_GET_CP_REG(25) << 16; \ + temp |= GX_GET_CP_REG(24); \ + fifo->count = temp; \ + } while (0) + +void __GXSaveCPUFifoAux(struct __GXFifoObj *realFifo) +{ + BOOL enabled = OSDisableInterrupts(); + + GXFlush(); + realFifo->base = OSPhysicalToCached(__piReg[3]); + realFifo->top = OSPhysicalToCached(__piReg[4]); + realFifo->wrPtr = OSPhysicalToCached(__piReg[5] & 0xFBFFFFFF); + if (CPGPLinked) { + SOME_MACRO1(realFifo); + SOME_MACRO2(realFifo); + } else { + realFifo->count = (u8 *)realFifo->wrPtr - (u8 *)realFifo->rdPtr; + if (realFifo->count < 0) + realFifo->count += realFifo->size; + } + OSRestoreInterrupts(enabled); +} + +void GXSaveGPFifo(GXFifoObj *fifo) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + unsigned long cpStatus; + unsigned char readIdle; + unsigned long temp; + + ASSERTMSGLINE(0x38C, realFifo == GPFifo, "GXSaveGPFifo: fifo is not attached to GP"); + cpStatus = GX_GET_CP_REG(0); + readIdle = GET_REG_FIELD(cpStatus, 1, 2); + ASSERTMSGLINE(0x393, readIdle, "GXSaveGPFifo: GP is not idle"); + + SOME_MACRO1(realFifo); + SOME_MACRO2(realFifo); +} + +void GXGetGPStatus(GXBool *overhi, GXBool *underlow, GXBool *readIdle, GXBool *cmdIdle, GXBool *brkpt) +{ + gx->cpStatus = GX_GET_CP_REG(0); + *overhi = GET_REG_FIELD(gx->cpStatus, 1, 0); + *underlow = (int)GET_REG_FIELD(gx->cpStatus, 1, 1); + *readIdle = (int)GET_REG_FIELD(gx->cpStatus, 1, 2); + *cmdIdle = (int)GET_REG_FIELD(gx->cpStatus, 1, 3); + *brkpt = (int)GET_REG_FIELD(gx->cpStatus, 1, 4); +} + +void GXGetFifoStatus(GXFifoObj *fifo, GXBool *overhi, GXBool *underflow, u32 *fifoCount, GXBool *cpuWrite, GXBool *gpRead, GXBool *fifowrap) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + + *underflow = GX_FALSE; + *overhi = GX_FALSE; + *fifoCount = 0; + *fifowrap = GX_FALSE; + if (realFifo == GPFifo) { + SOME_MACRO1(realFifo); + SOME_MACRO2(realFifo); + } + if (realFifo == CPUFifo) { + GXFlush(); + __GXSaveCPUFifoAux(realFifo); + *fifowrap = (int)GET_REG_FIELD(GX_GET_PI_REG(5), 1, 26); + } + *overhi = (realFifo->count > realFifo->hiWatermark); + *underflow = (realFifo->count < realFifo->loWatermark); + *fifoCount = (realFifo->count); + *cpuWrite = (CPUFifo == realFifo); + *gpRead = (GPFifo == realFifo); +} + +void GXGetFifoPtrs(GXFifoObj *fifo, void **readPtr, void **writePtr) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + + if (realFifo == CPUFifo) { + realFifo->wrPtr = OSPhysicalToCached(GX_GET_PI_REG(5) & 0xFBFFFFFF); + } + if (realFifo == GPFifo) { + SOME_MACRO1(realFifo); + SOME_MACRO2(realFifo); + } + else { + realFifo->count = (u8 *)realFifo->wrPtr - (u8 *)realFifo->rdPtr; + if (realFifo->count < 0) { + realFifo->count += realFifo->size; + } + } + *readPtr = realFifo->rdPtr; + *writePtr = realFifo->wrPtr; +} + +void *GXGetFifoBase(const GXFifoObj *fifo) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + + return realFifo->base; +} + +u32 GXGetFifoSize(const GXFifoObj *fifo) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + + return realFifo->size; +} + +void GXGetFifoLimits(const GXFifoObj *fifo, u32 *hi, u32 *lo) +{ + struct __GXFifoObj *realFifo = (struct __GXFifoObj *)fifo; + + *hi = realFifo->hiWatermark; + *lo = realFifo->loWatermark; +} + +GXBreakPtCallback GXSetBreakPtCallback(GXBreakPtCallback cb) +{ + GXBreakPtCallback oldcb = BreakPointCB; + BOOL enabled = OSDisableInterrupts(); + + BreakPointCB = cb; + OSRestoreInterrupts(enabled); + return oldcb; +} + +void *__GXCurrentBP; + +void GXEnableBreakPt(void *break_pt) +{ + BOOL enabled = OSDisableInterrupts(); + + __GXFifoReadDisable(); + GX_SET_CP_REG(30, (u32)break_pt); + GX_SET_CP_REG(31, ((u32)break_pt >> 16) & 0x3FFF); + SOME_SET_REG_MACRO(gx->cpEnable, 1, 1, 1); + SOME_SET_REG_MACRO(gx->cpEnable, 1, 5, 1); + GX_SET_CP_REG(1, gx->cpEnable); + __GXCurrentBP = break_pt; + __GXFifoReadEnable(); + OSRestoreInterrupts(enabled); +} + +void GXDisableBreakPt(void) +{ + BOOL enabled = OSDisableInterrupts(); + + SOME_SET_REG_MACRO(gx->cpEnable, 1, 1, 0); + SOME_SET_REG_MACRO(gx->cpEnable, 1, 5, 0); + GX_SET_CP_REG(1, gx->cpEnable); + __GXCurrentBP = NULL; + OSRestoreInterrupts(enabled); +} + +void __GXFifoInit(void) +{ + __OSSetInterruptHandler(0x11, GXCPInterruptHandler); + __OSUnmaskInterrupts(0x4000); + __GXCurrentThread = OSGetCurrentThread(); + GXOverflowSuspendInProgress = FALSE; + CPUFifo = NULL; + GPFifo = NULL; +} + +static void __GXFifoReadEnable(void) +{ + SET_REG_FIELD(0, gx->cpEnable, 1, 0, 1); + GX_SET_CP_REG(1, gx->cpEnable); +} + +static void __GXFifoReadDisable(void) +{ + SET_REG_FIELD(0, gx->cpEnable, 1, 0, 0); + GX_SET_CP_REG(1, gx->cpEnable); +} + +static void __GXFifoLink(u8 en) +{ + SET_REG_FIELD(0x4DA, gx->cpEnable, 1, 4, (en != 0) ? 1 : 0); + GX_SET_CP_REG(1, gx->cpEnable); +} + +static void __GXWriteFifoIntEnable(u8 hiWatermarkEn, u8 loWatermarkEn) +{ + SET_REG_FIELD(0x4F0, gx->cpEnable, 1, 2, hiWatermarkEn); + SET_REG_FIELD(0x4F1, gx->cpEnable, 1, 3, loWatermarkEn); + GX_SET_CP_REG(1, gx->cpEnable); +} + +static void __GXWriteFifoIntReset(u8 hiWatermarkClr, u8 loWatermarkClr) +{ + SET_REG_FIELD(0x508, gx->cpClr, 1, 0, hiWatermarkClr); + SET_REG_FIELD(0x509, gx->cpClr, 1, 1, loWatermarkClr); + GX_SET_CP_REG(2, gx->cpClr); +} + +void __GXInsaneWatermark(void) +{ + struct __GXFifoObj *realFifo = GPFifo; + + realFifo->hiWatermark = realFifo->loWatermark + 512; + GX_SET_CP_REG(20, (realFifo->hiWatermark & 0x3FFFFFFF) & 0xFFFF); + GX_SET_CP_REG(21, (realFifo->hiWatermark & 0x3FFFFFFF) >> 16); +} + +void __GXCleanGPFifo(void) +{ + GXFifoObj dummyFifo; + GXFifoObj *gpFifo = GXGetGPFifo(); + GXFifoObj *cpuFifo = GXGetCPUFifo(); + void *base = GXGetFifoBase(gpFifo); + + dummyFifo = *gpFifo; + GXInitFifoPtrs(&dummyFifo, base, base); + GXSetGPFifo(&dummyFifo); + if (cpuFifo == gpFifo) { + GXSetCPUFifo(&dummyFifo); + } + GXInitFifoPtrs(gpFifo, base, base); + GXSetGPFifo(gpFifo); + if (cpuFifo == gpFifo) { + GXSetCPUFifo(cpuFifo); + } +} + +OSThread *GXSetCurrentGXThread(void) +{ + BOOL enabled; + struct OSThread *prev; + + enabled = OSDisableInterrupts(); + prev = __GXCurrentThread; + ASSERTMSGLINE(0x561, !GXOverflowSuspendInProgress, "GXSetCurrentGXThread: Two threads cannot generate GX commands at the same time!"); + __GXCurrentThread = OSGetCurrentThread(); + OSRestoreInterrupts(enabled); + return prev; +} + +OSThread *GXGetCurrentGXThread(void) +{ + return __GXCurrentThread; +} + +GXFifoObj *GXGetCPUFifo(void) +{ + return (GXFifoObj *)CPUFifo; +} + +GXFifoObj *GXGetGPFifo(void) +{ + return (GXFifoObj *)GPFifo; +} + +u32 GXGetOverflowCount(void) +{ + return __GXOverflowCount; +} + +u32 GXResetOverflowCount(void) +{ + u32 oldcount; + + oldcount = __GXOverflowCount; + __GXOverflowCount = 0; + return oldcount; +} + +// NONMATCHING +volatile void *GXRedirectWriteGatherPipe(void *ptr) +{ + u32 reg = 0; + BOOL enabled = OSDisableInterrupts(); + + CHECK_GXBEGIN(0x5D5, "GXRedirectWriteGatherPipe"); + ASSERTLINE(0x5D6, OFFSET(ptr, 32) == 0); + ASSERTLINE(0x5D8, !IsWGPipeRedirected); + + GXFlush(); + while (PPCMfwpar() & 1) { } + PPCMtwpar((u32)OSUncachedToPhysical((void *)GXFIFO_ADDR)); + if (CPGPLinked) { + __GXFifoLink(0); + __GXWriteFifoIntEnable(0, 0); + } + CPUFifo->wrPtr = OSPhysicalToCached(GX_GET_PI_REG(5) & 0xFBFFFFFF); + GX_SET_PI_REG(3, 0); + GX_SET_PI_REG(4, 0x04000000); + SET_REG_FIELD(0x5F7, reg, 21, 5, ((u32)ptr & 0x3FFFFFFF) >> 5); + reg &= 0xFBFFFFFF; + GX_SET_PI_REG(5, reg); + PPCSync(); + OSRestoreInterrupts(enabled); + return (volatile void *)GXFIFO_ADDR; +} + +// NONMATCHING +void GXRestoreWriteGatherPipe(void) +{ + u32 reg = 0; // r31 + u32 i; // r29 + BOOL enabled; // r28 + + ASSERTLINE(0x610, IsWGPipeRedirected); + enabled = OSDisableInterrupts(); + for (i = 0; i < 31; i++) { + GXWGFifo.u8 = 0; + } + PPCSync(); + while (PPCMfwpar() & 1) { } + PPCMtwpar((u32)OSUncachedToPhysical((void *)GXFIFO_ADDR)); + GX_SET_PI_REG(3, (u32)CPUFifo->base & 0x3FFFFFFF); + GX_SET_PI_REG(4, (u32)CPUFifo->top & 0x3FFFFFFF); + SET_REG_FIELD(0x62A, reg, 21, 5, ((u32)CPUFifo->wrPtr & 0x3FFFFFFF) >> 5); + reg &= 0xFBFFFFFF; + GX_SET_PI_REG(5, reg); + if (CPGPLinked) { + __GXWriteFifoIntReset(1, 1); + __GXWriteFifoIntEnable(1, 0); + __GXFifoLink(1); + } + PPCSync(); + OSRestoreInterrupts(enabled); +} diff --git a/src/dolphin/gx/GXFrameBuf.c b/src/dolphin/gx/GXFrameBuf.c new file mode 100644 index 00000000..4c04abab --- /dev/null +++ b/src/dolphin/gx/GXFrameBuf.c @@ -0,0 +1,604 @@ +#include +#include + +#include + +GXRenderModeObj GXNtsc240Ds = { 1, 640, 240, 240, 40, 0, 640, 480, 0, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; + +GXRenderModeObj GXNtsc240DsAa = { 1, 640, 240, 240, 40, 0, 640, 480, 0, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 0, 0, 21, 22, 21, 0, 0 } }; + +GXRenderModeObj GXNtsc240Int = { 0, 640, 240, 240, 40, 0, 640, 480, 0, 1, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; + +GXRenderModeObj GXNtsc240IntAa = { 0, 640, 240, 240, 40, 0, 640, 480, 0, 1, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 0, 0, 21, 22, 21, 0, 0 } }; + +GXRenderModeObj GXNtsc480IntDf = { 0, 640, 480, 480, 40, 0, 640, 480, 1, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 8, 8, 10, 12, 10, 8, 8 } }; + +GXRenderModeObj GXNtsc480Int = { 0, 640, 480, 480, 40, 0, 640, 480, 1, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; + +GXRenderModeObj GXNtsc480IntAa = { 0, 640, 242, 480, 40, 0, 640, 480, 1, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 4, 8, 12, 16, 12, 8, 4 } }; + +GXRenderModeObj GXNtsc480Prog = { 2, 640, 480, 480, 40, 0, 640, 480, 0, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; + +GXRenderModeObj GXNtsc480ProgSoft = { 2, 640, 480, 480, 40, 0, 640, 480, 0, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 8, 8, 10, 12, 10, 8, 8 } }; + +GXRenderModeObj GXNtsc480ProgAa = { 2, 640, 242, 480, 40, 0, 640, 480, 0, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 4, 8, 12, 16, 12, 8, 4 } }; + +GXRenderModeObj GXMpal240Ds = { 9, 640, 240, 240, 40, 0, 640, 480, 0, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXMpal240DsAa = { 9, 640, 240, 240, 40, 0, 640, 480, 0, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXMpal240Int = { 8, 640, 240, 240, 40, 0, 640, 480, 0, 1, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXMpal240IntAa = { 8, 640, 240, 240, 40, 0, 640, 480, 0, 1, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXMpal480IntDf = { 8, 640, 480, 480, 40, 0, 640, 480, 1, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 8, 8, 10, 12, 10, 8, 8 } }; +GXRenderModeObj GXMpal480Int = { 8, 640, 480, 480, 40, 0, 640, 480, 1, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXMpal480IntAa = { 8, 640, 242, 480, 40, 0, 640, 480, 1, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 4, 8, 12, 16, 12, 8, 4 } }; +GXRenderModeObj GXPal264Ds = { 5, 640, 264, 264, 40, 11, 640, 528, 0, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXPal264DsAa = { 5, 640, 264, 264, 40, 11, 640, 528, 0, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXPal264Int = { 4, 640, 264, 264, 40, 23, 640, 528, 0, 1, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXPal264IntAa = { 4, 640, 264, 264, 40, 23, 640, 528, 0, 1, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXPal528IntDf = { 4, 640, 528, 528, 40, 23, 640, 528, 1, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 8, 8, 10, 12, 10, 8, 8 } }; +GXRenderModeObj GXPal528Int = { 4, 640, 528, 528, 40, 23, 640, 528, 1, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXPal524IntAa = { 4, 640, 264, 524, 40, 23, 640, 524, 1, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 4, 8, 12, 16, 12, 8, 4 } }; +GXRenderModeObj GXEurgb60Hz240Ds = { 21, 640, 240, 240, 40, 0, 640, 480, 0, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXEurgb60Hz240DsAa = { 21, 640, 240, 240, 40, 0, 640, 480, 0, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXEurgb60Hz240Int = { 20, 640, 240, 240, 40, 0, 640, 480, 0, 1, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXEurgb60Hz240IntAa = { 20, 640, 240, 240, 40, 0, 640, 480, 0, 1, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXEurgb60Hz480IntDf = { 20, 640, 480, 480, 40, 0, 640, 480, 1, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 8, 8, 10, 12, 10, 8, 8 } }; +GXRenderModeObj GXEurgb60Hz480Int = { 20, 640, 480, 480, 40, 0, 640, 480, 1, 0, 0, + { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, { 0, 0, 21, 22, 21, 0, 0 } }; +GXRenderModeObj GXEurgb60Hz480IntAa = { 20, 640, 242, 480, 40, 0, 640, 480, 1, 0, 1, + { 3, 2, 9, 6, 3, 10, 3, 2, 9, 6, 3, 10, 9, 2, 3, 6, 9, 10, 9, 2, 3, 6, 9, 10 }, { 4, 8, 12, 16, 12, 8, 4 } }; +GXRenderModeObj GXRmHW = { 1, 320, 240, 240, 40, 0, 640, 480, 0, 0, 0, { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 }, + { 0, 0, 21, 22, 21, 0, 0 } }; + +void GXAdjustForOverscan(GXRenderModeObj *rmin, GXRenderModeObj *rmout, u16 hor, u16 ver) +{ + u16 hor2 = hor * 2; + u16 ver2 = ver * 2; + u32 verf; + u32 mode; + + if (rmin != rmout) { + *rmout = *rmin; + } + + mode = rmin->viTVmode & 3; + rmout->fbWidth = rmin->fbWidth - hor2; + verf = (ver2 * rmin->efbHeight) / (u32)rmin->xfbHeight; + rmout->efbHeight = rmin->efbHeight - verf; + if (rmin->xFBmode == VI_XFBMODE_SF && ((rmin->viTVmode & 2) != 2)) { + rmout->xfbHeight = rmin->xfbHeight - ver; + } + else { + rmout->xfbHeight = rmin->xfbHeight - ver2; + } + + rmout->viWidth = rmin->viWidth - hor2; + rmout->viHeight = rmin->viHeight - ver2; + rmout->viXOrigin = rmin->viXOrigin + hor; + rmout->viYOrigin = rmin->viYOrigin + ver; +} + +void GXSetDispCopySrc(u16 left, u16 top, u16 wd, u16 ht) +{ + CHECK_GXBEGIN(0x4D3, "GXSetDispCopySrc"); + + gx->cpDispSrc = 0; + SET_REG_FIELD(0x4D6, gx->cpDispSrc, 10, 0, left); + SET_REG_FIELD(0x4D7, gx->cpDispSrc, 10, 10, top); + SET_REG_FIELD(0x4D7, gx->cpDispSrc, 8, 24, 0x49); + + gx->cpDispSize = 0; + SET_REG_FIELD(0x4DB, gx->cpDispSize, 10, 0, wd - 1); + SET_REG_FIELD(0x4DC, gx->cpDispSize, 10, 10, ht - 1); + SET_REG_FIELD(0x4DC, gx->cpDispSize, 8, 24, 0x4A); +} + +void GXSetTexCopySrc(u16 left, u16 top, u16 wd, u16 ht) +{ + CHECK_GXBEGIN(0x4EF, "GXSetTexCopySrc"); + + gx->cpTexSrc = 0; + SET_REG_FIELD(0x4F2, gx->cpTexSrc, 10, 0, left); + SET_REG_FIELD(0x4F3, gx->cpTexSrc, 10, 10, top); + SET_REG_FIELD(0x4F3, gx->cpTexSrc, 8, 24, 0x49); + + gx->cpTexSize = 0; + SET_REG_FIELD(0x4F7, gx->cpTexSize, 10, 0, wd - 1); + SET_REG_FIELD(0x4F8, gx->cpTexSize, 10, 10, ht - 1); + SET_REG_FIELD(0x4F8, gx->cpTexSize, 8, 24, 0x4A); +} + +void GXSetDispCopyDst(u16 wd, u16 ht) +{ + u16 stride; + + ASSERTMSGLINE(0x50D, (wd & 0xF) == 0, "GXSetDispCopyDst: Width must be a multiple of 16"); + CHECK_GXBEGIN(0x50E, "GXSetDispCopyDst"); + + stride = (int)wd * 2; + gx->cpDispStride = 0; + SET_REG_FIELD(0x514, gx->cpDispStride, 10, 0, (stride >> 5)); + SET_REG_FIELD(0x514, gx->cpDispStride, 8, 24, 0x4D); +} + +void GXSetTexCopyDst(u16 wd, u16 ht, GXTexFmt fmt, GXBool mipmap) +{ + u32 rowTiles; + u32 colTiles; + u32 cmpTiles; + u32 peTexFmt; + u32 peTexFmtH; + + CHECK_GXBEGIN(0x52F, "GXSetTexCopyDst"); + + gx->cpTexZ = 0; + peTexFmt = fmt & 0xF; + ASSERTMSGLINEV(0x54E, peTexFmt < 13, "%s: invalid texture format", "GXSetTexCopyDst"); + + if (fmt == GX_TF_Z16) { + peTexFmt = 0xB; + } + switch (fmt) { + case GX_TF_I4: + case GX_TF_I8: + case GX_TF_IA4: + case GX_TF_IA8: + case GX_CTF_YUVA8: + SET_REG_FIELD(0, gx->cpTex, 2, 15, 3); + break; + default: + SET_REG_FIELD(0, gx->cpTex, 2, 15, 2); + break; + } + + gx->cpTexZ = (fmt & _GX_TF_ZTF) == _GX_TF_ZTF; + peTexFmtH = (peTexFmt >> 3) & 1; + !peTexFmt; + SET_REG_FIELD(0x565, gx->cpTex, 1, 3, peTexFmtH); + peTexFmt = peTexFmt & 7; + __GetImageTileCount(fmt, wd, ht, &rowTiles, &colTiles, &cmpTiles); + + gx->cpTexStride = 0; + SET_REG_FIELD(0x56E, gx->cpTexStride, 10, 0, rowTiles * cmpTiles); + SET_REG_FIELD(0x570, gx->cpTexStride, 8, 24, 0x4D); + SET_REG_FIELD(0x570, gx->cpTex, 1, 9, mipmap); + SET_REG_FIELD(0x571, gx->cpTex, 3, 4, peTexFmt); +} + +void GXSetDispCopyFrame2Field(GXCopyMode mode) +{ + CHECK_GXBEGIN(0x582, "GXSetDispCopyFrame2Field"); + SET_REG_FIELD(0x583, gx->cpDisp, 2, 12, mode); + SET_REG_FIELD(0x583, gx->cpTex, 2, 12, 0); +} + +void GXSetCopyClamp(GXFBClamp clamp) +{ + u8 clmpB; + u8 clmpT; + + CHECK_GXBEGIN(0x597, "GXSetCopyClamp"); + + clmpT = (clamp & 1) == 1; + clmpB = (clamp & 2) == 2; + + SET_REG_FIELD(0x59B, gx->cpDisp, 1, 0, clmpT); + SET_REG_FIELD(0x59C, gx->cpDisp, 1, 1, clmpB); + + SET_REG_FIELD(0x59E, gx->cpTex, 1, 0, clmpT); + SET_REG_FIELD(0x59F, gx->cpTex, 1, 1, clmpB); +} + +static u32 __GXGetNumXfbLines(u32 efbHt, u32 iScale) +{ + u32 count; + u32 realHt; + u32 iScaleD; + + count = (efbHt - 1) * 0x100; + realHt = (count / iScale) + 1; + + iScaleD = iScale; + + if (iScaleD > 0x80 && iScaleD < 0x100) { + while (iScaleD % 2 == 0) { + iScaleD /= 2; + } + + if (efbHt % iScaleD == 0) { + realHt++; + } + } + + if (realHt > 0x400) { + realHt = 0x400; + } + + return realHt; +} + +u16 GXGetNumXfbLines(u16 efbHeight, f32 yScale) +{ + u32 iScale; + ASSERTMSGLINE(0x5CE, yScale >= 1.0f, "GXGetNumXfbLines: Vertical scale must be >= 1.0"); + + iScale = (u32)(256.0f / yScale) & 0x1FF; + return __GXGetNumXfbLines(efbHeight, iScale); +} + +f32 GXGetYScaleFactor(u16 efbHeight, u16 xfbHeight) +{ + f32 fScale; + f32 yScale; + u32 iScale; + u32 tgtHt; + u32 realHt; + + ASSERTMSGLINE(0x5E6, xfbHeight <= 1024, "GXGetYScaleFactor: Display copy only supports up to 1024 lines.\n"); + ASSERTMSGLINE(0x5E8, efbHeight <= xfbHeight, "GXGetYScaleFactor: EFB height should not be greater than XFB height.\n"); + + tgtHt = xfbHeight; + yScale = (f32)xfbHeight / (f32)efbHeight; + iScale = (u32)(256.0f / yScale) & 0x1FF; + realHt = __GXGetNumXfbLines(efbHeight, iScale); + + while (realHt > xfbHeight) { + tgtHt--; + yScale = (f32)tgtHt / (f32)efbHeight; + iScale = (u32)(256.0f / yScale) & 0x1FF; + realHt = __GXGetNumXfbLines(efbHeight, iScale); + } + + fScale = yScale; + while (realHt < xfbHeight) { + fScale = yScale; + tgtHt++; + yScale = (f32)tgtHt / (f32)efbHeight; + iScale = (u32)(256.0f / yScale) & 0x1FF; + realHt = __GXGetNumXfbLines(efbHeight, iScale); + } + + return fScale; +} + +u32 GXSetDispCopyYScale(f32 vscale) +{ + u8 enable; + u32 iScale; + u32 ht; + u32 reg; + + CHECK_GXBEGIN(0x615, "GXSetDispCopyYScale"); + + ASSERTMSGLINE(0x617, vscale >= 1.0f, "GXSetDispCopyYScale: Vertical scale must be >= 1.0"); + + iScale = (u32)(256.0f / vscale) & 0x1FF; + enable = (iScale != 256); + + reg = 0; + SET_REG_FIELD(0x61E, reg, 9, 0, iScale); + SET_REG_FIELD(0x61E, reg, 8, 24, 0x4E); + GX_WRITE_RAS_REG(reg); + gx->bpSentNot = 0; + SET_REG_FIELD(0x623, gx->cpDisp, 1, 10, enable); + ht = GET_REG_FIELD(gx->cpDispSize, 10, 10) + 1; + return __GXGetNumXfbLines(ht, iScale); +} + +void GXSetCopyClear(GXColor clear_clr, u32 clear_z) +{ + u32 reg; + + CHECK_GXBEGIN(0x63C, "GXSetCopyClear"); + ASSERTMSGLINE(0x63E, clear_z <= 0xFFFFFF, "GXSetCopyClear: Z clear value is out of range"); + + reg = 0; + SET_REG_FIELD(0x641, reg, 8, 0, clear_clr.r); + SET_REG_FIELD(0x642, reg, 8, 8, clear_clr.a); + SET_REG_FIELD(0x642, reg, 8, 24, 0x4F); + GX_WRITE_RAS_REG(reg); + + reg = 0; + SET_REG_FIELD(0x647, reg, 8, 0, clear_clr.b); + SET_REG_FIELD(0x648, reg, 8, 8, clear_clr.g); + SET_REG_FIELD(0x648, reg, 8, 24, 0x50); + GX_WRITE_RAS_REG(reg); + + reg = 0; + SET_REG_FIELD(0x64D, reg, 24, 0, clear_z); + SET_REG_FIELD(0x64D, reg, 8, 24, 0x51); + GX_WRITE_RAS_REG(reg); + gx->bpSentNot = 0; +} + +void GXSetCopyFilter(GXBool aa, u8 sample_pattern[12][2], GXBool vf, u8 vfilter[7]) +{ + u32 msLoc[4]; + u32 coeff0; + u32 coeff1; + + CHECK_GXBEGIN(0x669, "GXSetCopyFilter"); + + if (aa != 0) { + msLoc[0] = 0; + SET_REG_FIELD(0x66D, msLoc[0], 4, 0, sample_pattern[0][0]); + SET_REG_FIELD(0x66E, msLoc[0], 4, 4, sample_pattern[0][1]); + SET_REG_FIELD(0x66F, msLoc[0], 4, 8, sample_pattern[1][0]); + SET_REG_FIELD(0x670, msLoc[0], 4, 12, sample_pattern[1][1]); + SET_REG_FIELD(0x671, msLoc[0], 4, 16, sample_pattern[2][0]); + SET_REG_FIELD(0x672, msLoc[0], 4, 20, sample_pattern[2][1]); + SET_REG_FIELD(0x673, msLoc[0], 8, 24, 1); + + msLoc[1] = 0; + SET_REG_FIELD(0x676, msLoc[1], 4, 0, sample_pattern[3][0]); + SET_REG_FIELD(0x677, msLoc[1], 4, 4, sample_pattern[3][1]); + SET_REG_FIELD(0x678, msLoc[1], 4, 8, sample_pattern[4][0]); + SET_REG_FIELD(0x679, msLoc[1], 4, 12, sample_pattern[4][1]); + SET_REG_FIELD(0x67A, msLoc[1], 4, 16, sample_pattern[5][0]); + SET_REG_FIELD(0x67B, msLoc[1], 4, 20, sample_pattern[5][1]); + SET_REG_FIELD(0x67C, msLoc[1], 8, 24, 2); + + msLoc[2] = 0; + SET_REG_FIELD(0x67F, msLoc[2], 4, 0, sample_pattern[6][0]); + SET_REG_FIELD(0x680, msLoc[2], 4, 4, sample_pattern[6][1]); + SET_REG_FIELD(0x681, msLoc[2], 4, 8, sample_pattern[7][0]); + SET_REG_FIELD(0x682, msLoc[2], 4, 12, sample_pattern[7][1]); + SET_REG_FIELD(0x683, msLoc[2], 4, 16, sample_pattern[8][0]); + SET_REG_FIELD(0x684, msLoc[2], 4, 20, sample_pattern[8][1]); + SET_REG_FIELD(0x685, msLoc[2], 8, 24, 3); + + msLoc[3] = 0; + SET_REG_FIELD(0x688, msLoc[3], 4, 0, sample_pattern[9][0]); + SET_REG_FIELD(0x689, msLoc[3], 4, 4, sample_pattern[9][1]); + SET_REG_FIELD(0x68A, msLoc[3], 4, 8, sample_pattern[10][0]); + SET_REG_FIELD(0x68B, msLoc[3], 4, 12, sample_pattern[10][1]); + SET_REG_FIELD(0x68C, msLoc[3], 4, 16, sample_pattern[11][0]); + SET_REG_FIELD(0x68D, msLoc[3], 4, 20, sample_pattern[11][1]); + SET_REG_FIELD(0x68E, msLoc[3], 8, 24, 4); + } + else { + msLoc[0] = 0x01666666; + msLoc[1] = 0x02666666; + msLoc[2] = 0x03666666; + msLoc[3] = 0x04666666; + } + GX_WRITE_RAS_REG(msLoc[0]); + GX_WRITE_RAS_REG(msLoc[1]); + GX_WRITE_RAS_REG(msLoc[2]); + GX_WRITE_RAS_REG(msLoc[3]); + + coeff0 = 0; + SET_REG_FIELD(0, coeff0, 8, 24, 0x53); + coeff1 = 0; + SET_REG_FIELD(0, coeff1, 8, 24, 0x54); + if (vf != 0) { + SET_REG_FIELD(0x6A6, coeff0, 6, 0, vfilter[0]); + SET_REG_FIELD(0x6A7, coeff0, 6, 6, vfilter[1]); + SET_REG_FIELD(0x6A8, coeff0, 6, 12, vfilter[2]); + SET_REG_FIELD(0x6A9, coeff0, 6, 18, vfilter[3]); + SET_REG_FIELD(0x6AA, coeff1, 6, 0, vfilter[4]); + SET_REG_FIELD(0x6AB, coeff1, 6, 6, vfilter[5]); + SET_REG_FIELD(0x6AC, coeff1, 6, 12, vfilter[6]); + } + else { + SET_REG_FIELD(0, coeff0, 6, 0, 0); + SET_REG_FIELD(0, coeff0, 6, 6, 0); + SET_REG_FIELD(0, coeff0, 6, 12, 21); + SET_REG_FIELD(0, coeff0, 6, 18, 22); + SET_REG_FIELD(0, coeff1, 6, 0, 21); + SET_REG_FIELD(0, coeff1, 6, 6, 0); + SET_REG_FIELD(0, coeff1, 6, 12, 0); + } + GX_WRITE_RAS_REG(coeff0); + GX_WRITE_RAS_REG(coeff1); + gx->bpSentNot = 0; +} + +void GXSetDispCopyGamma(GXGamma gamma) +{ + CHECK_GXBEGIN(0x6CD, "GXSetDispCopyGamma"); + SET_REG_FIELD(0x6CE, gx->cpDisp, 2, 7, gamma); +} + +#if DEBUG +static void __GXVerifCopy(void *dest, u8 clear) +{ + u8 clmpT; + u8 clmpB; + u32 x0; + u32 y0; + u32 dx; + u32 dy; + + CHECK_GXBEGIN(0x6E2, "GXCopyDisp"); + + clmpT = GET_REG_FIELD(gx->cpDisp, 1, 0); + clmpB = (u32)GET_REG_FIELD(gx->cpDisp, 1, 1); + x0 = GET_REG_FIELD(gx->cpDispSrc, 10, 0); + dx = GET_REG_FIELD(gx->cpDispSize, 10, 0) + 1; + y0 = GET_REG_FIELD(gx->cpDispSrc, 10, 10); + dy = GET_REG_FIELD(gx->cpDispSize, 10, 10) + 1; + + ASSERTMSGLINE(0x6EC, clmpT || y0 != 0, "GXCopy: Have to set GX_CLAMP_TOP if source top == 0"); + ASSERTMSGLINE(0x6EE, clmpB || y0 + dy <= 528, "GXCopy: Have to set GX_CLAMP_BOTTOM if source bottom > 528"); + ASSERTMSGLINE(0x6F3, (gx->peCtrl & 7) != 3 || clear == 0, "GXCopy: Can not do clear while pixel type is Z"); + if ((u32)(gx->peCtrl & 7) == 5) { + ASSERTMSGLINE(0x6F9, clear == 0, "GXCopy: Can not clear YUV framebuffer"); + ASSERTMSGLINE(0x6FB, (x0 & 3) == 0, "GXCopy: Source x is not multiple of 4 for YUV copy"); + ASSERTMSGLINE(0x6FD, (y0 & 3) == 0, "GXCopy: Source y is not multiple of 4 for YUV copy"); + ASSERTMSGLINE(0x6FF, (dx & 3) == 0, "GXCopy: Source width is not multiple of 4 for YUV copy"); + ASSERTMSGLINE(0x701, (dy & 3) == 0, "GXCopy: Source height is not multiple of 4 for YUV copy"); + } + else { + ASSERTMSGLINE(0x705, (x0 & 1) == 0, "GXCopy: Source x is not multiple of 2 for RGB copy"); + ASSERTMSGLINE(0x707, (y0 & 1) == 0, "GXCopy: Source y is not multiple of 2 for RGB copy"); + ASSERTMSGLINE(0x709, (dx & 1) == 0, "GXCopy: Source width is not multiple of 2 for RGB copy"); + ASSERTMSGLINE(0x70B, (dy & 1) == 0, "GXCopy: Source height is not multiple of 2 for RGB copy"); + } + ASSERTMSGLINE(0x70F, ((u32)dest & 0x1F) == 0, "GXCopy: Display destination address not 32B aligned"); +} +#endif + +void GXCopyDisp(void *dest, GXBool clear) +{ + u32 reg; + u32 tempPeCtrl; + u32 phyAddr; + u8 changePeCtrl; + + CHECK_GXBEGIN(0x729, "GXCopyDisp"); + +#if DEBUG + __GXVerifCopy(dest, clear); +#endif + if (clear) { + reg = gx->zmode; + SET_REG_FIELD(0, reg, 1, 0, 1); + SET_REG_FIELD(0, reg, 3, 1, 7); + GX_WRITE_RAS_REG(reg); + + reg = gx->cmode0; + SET_REG_FIELD(0, reg, 1, 0, 0); + SET_REG_FIELD(0, reg, 1, 1, 0); + GX_WRITE_RAS_REG(reg); + } + changePeCtrl = FALSE; + if ((clear || (u32)GET_REG_FIELD(gx->peCtrl, 3, 0) == 3) && (u32)GET_REG_FIELD(gx->peCtrl, 1, 6) == 1) { + changePeCtrl = TRUE; + tempPeCtrl = gx->peCtrl; + SET_REG_FIELD(0, tempPeCtrl, 1, 6, 0); + GX_WRITE_RAS_REG(tempPeCtrl); + } + GX_WRITE_RAS_REG(gx->cpDispSrc); + GX_WRITE_RAS_REG(gx->cpDispSize); + GX_WRITE_RAS_REG(gx->cpDispStride); + + phyAddr = (u32)dest & 0x3FFFFFFF; + reg = 0; + SET_REG_FIELD(0x750, reg, 21, 0, phyAddr >> 5); + SET_REG_FIELD(0x754, reg, 8, 24, 0x4B); + GX_WRITE_RAS_REG(reg); + + SET_REG_FIELD(0x754, gx->cpDisp, 1, 11, clear); + SET_REG_FIELD(0x754, gx->cpDisp, 1, 14, 1); + SET_REG_FIELD(0x754, gx->cpDisp, 8, 24, 0x52); + GX_WRITE_RAS_REG(gx->cpDisp); + + if (clear) { + GX_WRITE_RAS_REG(gx->zmode); + GX_WRITE_RAS_REG(gx->cmode0); + } + if (changePeCtrl) { + GX_WRITE_RAS_REG(gx->peCtrl); + } + gx->bpSentNot = 0; +} + +void GXCopyTex(void *dest, GXBool clear) +{ + u32 reg; + u32 tempPeCtrl; + u32 phyAddr; + u8 changePeCtrl; + + CHECK_GXBEGIN(0x77C, "GXCopyTex"); + +#if DEBUG + __GXVerifCopy(dest, clear); +#endif + if (clear) { + reg = gx->zmode; + SET_REG_FIELD(0, reg, 1, 0, 1); + SET_REG_FIELD(0, reg, 3, 1, 7); + GX_WRITE_RAS_REG(reg); + + reg = gx->cmode0; + SET_REG_FIELD(0, reg, 1, 0, 0); + SET_REG_FIELD(0, reg, 1, 1, 0); + GX_WRITE_RAS_REG(reg); + } + changePeCtrl = 0; + tempPeCtrl = gx->peCtrl; + if (gx->cpTexZ && ((tempPeCtrl & 7) != 3)) { + changePeCtrl = 1; + SET_REG_FIELD(0, tempPeCtrl, 3, 0, 3); + } + if (((clear != 0) || ((u32)(tempPeCtrl & 7) == 3)) && ((u32)((tempPeCtrl >> 6U) & 1) == 1)) { + changePeCtrl = 1; + SET_REG_FIELD(0, tempPeCtrl, 1, 6, 0); + } + if (changePeCtrl) { + GX_WRITE_RAS_REG(tempPeCtrl); + } + GX_WRITE_RAS_REG(gx->cpTexSrc); + GX_WRITE_RAS_REG(gx->cpTexSize); + GX_WRITE_RAS_REG(gx->cpTexStride); + + phyAddr = (u32)dest & 0x3FFFFFFF; + reg = 0; + SET_REG_FIELD(0x7AD, reg, 21, 0, phyAddr >> 5); + SET_REG_FIELD(0x7AD, reg, 8, 24, 0x4B); + GX_WRITE_RAS_REG(reg); + + SET_REG_FIELD(0x7B1, gx->cpTex, 1, 11, clear); + SET_REG_FIELD(0x7B1, gx->cpTex, 1, 14, 0); + SET_REG_FIELD(0x7B1, gx->cpTex, 8, 24, 0x52); + GX_WRITE_RAS_REG(gx->cpTex); + + if (clear != 0) { + GX_WRITE_RAS_REG(gx->zmode); + GX_WRITE_RAS_REG(gx->cmode0); + } + if (changePeCtrl) { + GX_WRITE_RAS_REG(gx->peCtrl); + } + gx->bpSentNot = 0; +} + +void GXClearBoundingBox(void) +{ + u32 reg; + + CHECK_GXBEGIN(0x7D3, "GXClearBoundingBox"); + reg = 0x550003FF; + GX_WRITE_RAS_REG(reg); + reg = 0x560003FF; + GX_WRITE_RAS_REG(reg); + gx->bpSentNot = 0; +} + +void GXReadBoundingBox(u16 *left, u16 *top, u16 *right, u16 *bottom) +{ + *left = GX_GET_PE_REG(8); + *top = GX_GET_PE_REG(10); + *right = GX_GET_PE_REG(9); + *bottom = GX_GET_PE_REG(11); +} diff --git a/src/dolphin/gx/GXGeometry.c b/src/dolphin/gx/GXGeometry.c new file mode 100644 index 00000000..853e2989 --- /dev/null +++ b/src/dolphin/gx/GXGeometry.c @@ -0,0 +1,146 @@ +#include +#include +#include + +#include + +void __GXSetDirtyState(void) +{ + if (gx->dirtyState & 1) { + __GXSetSUTexRegs(); + } + if (gx->dirtyState & 2) { + __GXUpdateBPMask(); + } + if (gx->dirtyState & 4) { + __GXSetGenMode(); + } + if (gx->dirtyState & 8) { + __GXSetVCD(); + } + if (gx->dirtyState & 0x10) { + __GXSetVAT(); + } + if (gx->dirtyState & 0x18) { + __GXCalculateVLim(); + } + gx->dirtyState = 0; +} + +void GXBegin(GXPrimitive type, GXVtxFmt vtxfmt, u16 nverts) +{ + ASSERTMSGLINE(0x167, vtxfmt < 8, "GXBegin: Format Index is out of range"); + ASSERTMSGLINE(0x168, !__GXinBegin, "GXBegin: called inside another GXBegin/GXEnd"); + + if (gx->dirtyState != 0) { + __GXSetDirtyState(); + } + if (*(u32 *)&gx->vNumNot == 0) { // checks both vNum and bpSentNot + __GXSendFlushPrim(); + } + GX_WRITE_U8(vtxfmt | type); + GX_WRITE_U16(nverts); +} + +void __GXSendFlushPrim(void) +{ + u32 i; + u32 numD = gx->vNum * gx->vLim; + + GX_WRITE_U8(0x98); + GX_WRITE_U16(gx->vNum); + for (i = 0; i < numD; i += 4) { + GX_WRITE_U32(0); + } + gx->bpSentNot = 1; +} + +void GXSetLineWidth(u8 width, GXTexOffset texOffsets) +{ + CHECK_GXBEGIN(0x1B8, "GXSetLineWidth"); + SET_REG_FIELD(0x1B9, gx->lpSize, 8, 0, width); + SET_REG_FIELD(0x1BA, gx->lpSize, 3, 16, texOffsets); + GX_WRITE_RAS_REG(gx->lpSize); + gx->bpSentNot = 0; +} + +void GXGetLineWidth(u8 *width, GXTexOffset *texOffsets) +{ + ASSERTMSGLINE(0x1CF, width != NULL && texOffsets != NULL, "GXGet*: invalid null pointer"); + + *width = GET_REG_FIELD(gx->lpSize, 8, 0); + *texOffsets = GET_REG_FIELD(gx->lpSize, 3, 16); +} + +void GXSetPointSize(u8 pointSize, GXTexOffset texOffsets) +{ + CHECK_GXBEGIN(0x1E4, "GXSetPointSize"); + SET_REG_FIELD(0x1E5, gx->lpSize, 8, 8, pointSize); + SET_REG_FIELD(0x1E6, gx->lpSize, 3, 19, texOffsets); + GX_WRITE_RAS_REG(gx->lpSize); + gx->bpSentNot = 0; +} + +void GXGetPointSize(u8 *pointSize, GXTexOffset *texOffsets) +{ + ASSERTMSGLINE(0x1FB, pointSize != NULL && texOffsets != NULL, "GXGet*: invalid null pointer"); + + *pointSize = (int)GET_REG_FIELD(gx->lpSize, 8, 8); + *texOffsets = GET_REG_FIELD(gx->lpSize, 3, 19); +} + +void GXEnableTexOffsets(GXTexCoordID coord, u8 line_enable, u8 point_enable) +{ + CHECK_GXBEGIN(0x211, "GXEnableTexOffsets"); + + ASSERTMSGLINE(0x213, coord < 8, "GXEnableTexOffsets: Invalid coordinate Id"); + + SET_REG_FIELD(0x215, gx->suTs0[coord], 1, 18, line_enable); + SET_REG_FIELD(0x216, gx->suTs0[coord], 1, 19, point_enable); + GX_WRITE_RAS_REG(gx->suTs0[coord]); + gx->bpSentNot = 0; +} + +void GXSetCullMode(GXCullMode mode) +{ + GXCullMode hwMode; + + CHECK_GXBEGIN(0x21D, "GXSetCullMode"); + switch (mode) { + case GX_CULL_FRONT: + hwMode = GX_CULL_BACK; + break; + case GX_CULL_BACK: + hwMode = GX_CULL_FRONT; + break; + default: + hwMode = mode; + break; + } + SET_REG_FIELD(0x225, gx->genMode, 2, 14, hwMode); + gx->dirtyState |= 4; +} + +void GXGetCullMode(GXCullMode *mode) +{ + GXCullMode hwMode = gx->genMode; + *mode = ((hwMode >> 0xD) & 0x2) | (((((int)hwMode >> 0xE) & 0x2) >> 0x1)); +} + +void GXSetCoPlanar(GXBool enable) +{ + u32 reg; + + CHECK_GXBEGIN(0x265, "GXSetCoPlanar"); + + SET_REG_FIELD(0x267, gx->genMode, 1, 19, enable); + reg = 0xFE080000; + GX_WRITE_RAS_REG(reg); + GX_WRITE_RAS_REG(gx->genMode); +} + +void __GXSetGenMode(void) +{ + GX_WRITE_RAS_REG(gx->genMode); + gx->bpSentNot = 0; +} diff --git a/src/dolphin/gx/GXInit.c b/src/dolphin/gx/GXInit.c new file mode 100644 index 00000000..82874fab --- /dev/null +++ b/src/dolphin/gx/GXInit.c @@ -0,0 +1,372 @@ +#include + +#include +#include +#include +#include + +#include + +void __GXInitGX(); + +static struct __GXData_struct gxData; +struct __GXData_struct *gx = &gxData; +// DWARF info lists all of these as "void *", but these types make more sense. +u16 *__memReg; +u16 *__peReg; +u16 *__cpReg; +u32 *__piReg; + +// clang-format off +asm BOOL IsWriteGatherBufferEmpty(void) +{ + sync + mfspr r3, WPAR + andi. r3, r3, 1 +} +// clang-format on + +static void EnableWriteGatherPipe(void) +{ + u32 hid2 = PPCMfhid2(); + + PPCMtwpar(OSUncachedToPhysical((void *)GXFIFO_ADDR)); + hid2 |= 0x40000000; + PPCMthid2(hid2); +} + +static void DisableWriteGatherPipe(void) +{ + u32 hid2 = PPCMfhid2(); + + hid2 &= ~0x40000000; + PPCMthid2(hid2); +} + +static GXTexRegion *__GXDefaultTexRegionCallback(GXTexObj *t_obj, GXTexMapID unused) +{ + GXTexFmt fmt = GXGetTexObjFmt(t_obj); + + if (fmt != GX_TF_C4 && fmt != GX_TF_C8 && fmt != GX_TF_C14X2) { + return &gx->TexRegions[gx->nextTexRgn++ & 7]; + } + else { + return &gx->TexRegionsCI[gx->nextTexRgnCI++ & 3]; + } +} + +static GXTlutRegion *__GXDefaultTlutRegionCallback(u32 idx) +{ + if (idx >= 0x14U) { + return NULL; + } + return &gx->TlutRegions[idx]; +} + +GXFifoObj FifoObj; + +GXFifoObj *GXInit(void *base, u32 size) +{ + u32 i; + u32 reg; + u32 freqBase; + + // OSRegisterVersion(__GXVersion); + + gx->inDispList = FALSE; + gx->dlSaveContext = TRUE; + // gx->abtWaitPECopy = 1; +#if DEBUG + __GXinBegin = FALSE; +#endif + gx->tcsManEnab = FALSE; + gx->tevTcEnab = FALSE; + + GXSetMisc(GX_MT_XF_FLUSH, 0); + + __piReg = OSPhysicalToUncached(0xC003000); + __cpReg = OSPhysicalToUncached(0xC000000); + __peReg = OSPhysicalToUncached(0xC001000); + __memReg = OSPhysicalToUncached(0xC004000); + // __GXFifoInit(); + // GXInitFifoBase(&FifoObj, base, size); + // GXSetCPUFifo(&FifoObj); + // GXSetGPFifo(&FifoObj); + + // if (!resetFuncRegistered) { + // OSRegisterResetFunction(&GXResetFuncInfo); + // resetFuncRegistered = 1; + // } + + // __GXPEInit(); + // EnableWriteGatherPipe(); + + gx->genMode = 0; + SET_REG_FIELD(0, gx->genMode, 8, 24, 0); + gx->bpMask = 255; + SET_REG_FIELD(0, gx->bpMask, 8, 24, 0x0F); + gx->lpSize = 0; + SET_REG_FIELD(0, gx->lpSize, 8, 24, 0x22); + for (i = 0; i < 16; ++i) { + gx->tevc[i] = 0; + gx->teva[i] = 0; + gx->tref[i / 2] = 0; + gx->texmapId[i] = GX_TEXMAP_NULL; + SET_REG_FIELD(0x46A, gx->tevc[i], 8, 24, 0xC0 + i * 2); + SET_REG_FIELD(0x46B, gx->teva[i], 8, 24, 0xC1 + i * 2); + SET_REG_FIELD(0x46D, gx->tevKsel[i / 2], 8, 24, 0xF6 + i / 2); + SET_REG_FIELD(0x46F, gx->tref[i / 2], 8, 24, 0x28 + i / 2); + } + gx->iref = 0; + SET_REG_FIELD(0, gx->iref, 8, 24, 0x27); + for (i = 0; i < 8; ++i) { + gx->suTs0[i] = 0; + gx->suTs1[i] = 0; + SET_REG_FIELD(0x478, gx->suTs0[i], 8, 24, 0x30 + i * 2); + SET_REG_FIELD(0x479, gx->suTs1[i], 8, 24, 0x31 + i * 2); + } + SET_REG_FIELD(0, gx->suScis0, 8, 24, 0x20); + SET_REG_FIELD(0, gx->suScis1, 8, 24, 0x21); + SET_REG_FIELD(0, gx->cmode0, 8, 24, 0x41); + SET_REG_FIELD(0, gx->cmode1, 8, 24, 0x42); + SET_REG_FIELD(0, gx->zmode, 8, 24, 0x40); + SET_REG_FIELD(0, gx->peCtrl, 8, 24, 0x43); + SET_REG_FIELD(0, gx->cpTex, 2, 7, 0); + + // gx->zScale = 1.6777216E7f; + // gx->zOffset = 0.0f; + gx->dirtyState = 0; + gx->dirtyVAT = FALSE; +#if DEBUG + __gxVerif->verifyLevel = GX_WARN_NONE; + GXSetVerifyCallback((GXVerifyCallback)__GXDefaultVerifyCallback); + for (i = 0; i < 256; i++) { + SET_REG_FIELD(0, __gxVerif->rasRegs[i], 8, 24, 0xFF); + } + memset(__gxVerif->xfRegsDirty, 0, 0x50); + memset(__gxVerif->xfMtxDirty, 0, 0x100); + memset(__gxVerif->xfNrmDirty, 0, 0x60); + memset(__gxVerif->xfLightDirty, 0, 0x80); +#endif + freqBase = __OSBusClock / 500; + // __GXFlushTextureState(); + reg = (freqBase >> 11) | 0x400 | 0x69000000; + GX_WRITE_RAS_REG(reg); + + // __GXFlushTextureState(); + reg = (freqBase / 0x1080) | 0x200 | 0x46000000; + GX_WRITE_RAS_REG(reg); + + // __GXInitRevisionBits(); + + // for (i = 0; i < 8; i++) { + // GXInitTexCacheRegion(&gx->TexRegions0[i], GX_FALSE, GXTexRegionAddrTable[i], + // GX_TEXCACHE_32K, GXTexRegionAddrTable[i + 8], GX_TEXCACHE_32K); + // GXInitTexCacheRegion(&gx->TexRegions1[i], GX_FALSE, GXTexRegionAddrTable[i + 16], + // GX_TEXCACHE_32K, GXTexRegionAddrTable[i + 24], GX_TEXCACHE_32K); + // GXInitTexCacheRegion(&gx->TexRegions2[i], GX_TRUE, GXTexRegionAddrTable[i + 32], + // GX_TEXCACHE_32K, GXTexRegionAddrTable[i + 40], GX_TEXCACHE_32K); + // } + + // for (i = 0; i < 16; i++) { + // GXInitTlutRegion(&gx->TlutRegions[i], 0xC0000 + 0x2000 * i, GX_TLUT_256); + // } + + // for (i = 0; i < 4; i++) { + // GXInitTlutRegion(&gx->TlutRegions[i + 16], 0xE0000 + 0x8000 * i, GX_TLUT_1K); + // } + + { + u32 reg = 0; +#if DEBUG + s32 regAddr; +#endif + GX_SET_CP_REG(3, reg); + + SET_REG_FIELD(0, gx->perfSel, 4, 4, 0); + GX_WRITE_U8(0x8); + GX_WRITE_U8(0x20); + GX_WRITE_U32(gx->perfSel); +#if DEBUG + regAddr = -12; +#endif + + reg = 0; + GX_WRITE_XF_REG(6, reg); + + reg = 0x23000000; + GX_WRITE_RAS_REG(reg); + + reg = 0x24000000; + GX_WRITE_RAS_REG(reg); + + reg = 0x67000000; + GX_WRITE_RAS_REG(reg); + } + + __GXSetIndirectMask(0); + __GXSetTmemConfig(2); + __GXInitGX(); + + return &FifoObj; +} + +void __GXInitGX() +{ + GXRenderModeObj *rmode; + GXAttr var_r30; + f32 identity_mtx[3][4]; + GXColor clear = { 64, 64, 64, 255 }; + GXColor black = { 0, 0, 0, 0 }; + GXColor white = { 255, 255, 255, 255 }; + u32 i; + + switch (VIGetTvFormat()) { + case 0: + rmode = &GXNtsc480IntDf; + break; + case 1: + rmode = &GXPal528IntDf; + break; + case 5: + rmode = &GXEurgb60Hz480IntDf; + break; + case 2: + rmode = &GXMpal480IntDf; + break; + default: + rmode = &GXNtsc480IntDf; + break; + } + + GXSetCopyClear(clear, 0xFFFFFF); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3CU); + GXSetTexCoordGen(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX1, 0x3CU); + GXSetTexCoordGen(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX2, 0x3CU); + GXSetTexCoordGen(GX_TEXCOORD3, GX_TG_MTX2x4, GX_TG_TEX3, 0x3CU); + GXSetTexCoordGen(GX_TEXCOORD4, GX_TG_MTX2x4, GX_TG_TEX4, 0x3CU); + GXSetTexCoordGen(GX_TEXCOORD5, GX_TG_MTX2x4, GX_TG_TEX5, 0x3CU); + GXSetTexCoordGen(GX_TEXCOORD6, GX_TG_MTX2x4, GX_TG_TEX6, 0x3CU); + GXSetTexCoordGen(GX_TEXCOORD7, GX_TG_MTX2x4, GX_TG_TEX7, 0x3CU); + GXSetNumTexGens(1); + GXClearVtxDesc(); + GXInvalidateVtxCache(); + for (var_r30 = GX_VA_POS; (u32)var_r30 <= 0x18; var_r30++) { + GXSetArray(var_r30, gx, 0); + } + GXSetLineWidth(6, 0); + GXSetPointSize(6, 0); + GXEnableTexOffsets(0, 0, 0); + GXEnableTexOffsets(1, 0, 0); + GXEnableTexOffsets(2, 0, 0); + GXEnableTexOffsets(3, 0, 0); + GXEnableTexOffsets(4, 0, 0); + GXEnableTexOffsets(5, 0, 0); + GXEnableTexOffsets(6, 0, 0); + GXEnableTexOffsets(7, 0, 0); + identity_mtx[0][0] = 1.0f; + identity_mtx[0][1] = 0.0f; + identity_mtx[0][2] = 0.0f; + identity_mtx[0][3] = 0.0f; + identity_mtx[1][0] = 0.0f; + identity_mtx[1][1] = 1.0f; + identity_mtx[1][2] = 0.0f; + identity_mtx[1][3] = 0.0f; + identity_mtx[2][0] = 0.0f; + identity_mtx[2][1] = 0.0f; + identity_mtx[2][2] = 1.0f; + identity_mtx[2][3] = 0.0f; + GXLoadPosMtxImm(identity_mtx, GX_PNMTX0); + GXLoadNrmMtxImm(identity_mtx, GX_PNMTX0); + GXSetCurrentMtx(GX_PNMTX0); + GXLoadTexMtxImm(identity_mtx, GX_IDENTITY, GX_MTX3x4); + GXLoadTexMtxImm(identity_mtx, GX_PTIDENTITY, GX_MTX3x4); + GXSetViewport(0.0f, 0.0f, rmode->fbWidth, rmode->xfbHeight, 0.0f, 1.0f); + GXSetCoPlanar(GX_DISABLE); + GXSetCullMode(GX_CULL_BACK); + GXSetClipMode(GX_CLIP_ENABLE); + GXSetScissor(0, 0, rmode->fbWidth, rmode->efbHeight); + GXSetScissorBoxOffset(0, 0); + GXSetNumChans(0); + GXSetChanCtrl(GX_COLOR0A0, GX_DISABLE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE, GX_AF_NONE); + GXSetChanAmbColor(GX_COLOR0A0, black); + GXSetChanMatColor(GX_COLOR0A0, white); + GXSetChanCtrl(GX_COLOR1A1, GX_DISABLE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE, GX_AF_NONE); + GXSetChanAmbColor(GX_COLOR1A1, black); + GXSetChanMatColor(GX_COLOR1A1, white); + GXInvalidateTexAll(); + gx->nextTexRgnCI = gx->nextTexRgn = i = GX_TEVSTAGE0; + GXSetTexRegionCallback((void *)__GXDefaultTexRegionCallback); + GXSetTlutRegionCallback(__GXDefaultTlutRegionCallback); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD2, GX_TEXMAP2, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE3, GX_TEXCOORD3, GX_TEXMAP3, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE4, GX_TEXCOORD4, GX_TEXMAP4, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE5, GX_TEXCOORD5, GX_TEXMAP5, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE6, GX_TEXCOORD6, GX_TEXMAP6, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE7, GX_TEXCOORD7, GX_TEXMAP7, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE8, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE9, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE10, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE11, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE12, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE13, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE14, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE15, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + + GXSetNumTevStages(1); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXSetZTexture(GX_ZT_DISABLE, GX_TF_Z8, 0); + for (; i < GX_MAX_TEVSTAGE; i++) { + GXSetTevKColorSel((GXTevStageID)i, GX_TEV_KCSEL_1_4); + GXSetTevKAlphaSel((GXTevStageID)i, GX_TEV_KASEL_1); + GXSetTevSwapMode((GXTevStageID)i, GX_TEV_SWAP0, GX_TEV_SWAP0); + } + GXSetTevSwapModeTable(GX_TEV_SWAP0, GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA); + GXSetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_RED, GX_CH_RED, GX_CH_ALPHA); + GXSetTevSwapModeTable(GX_TEV_SWAP2, GX_CH_GREEN, GX_CH_GREEN, GX_CH_GREEN, GX_CH_ALPHA); + GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA); + + for (i = GX_TEVSTAGE0; i < GX_MAX_TEVSTAGE; i++) + GXSetTevDirect((GXTevStageID)i); + GXSetNumIndStages(0); + GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); + GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); + GXSetIndTexCoordScale(GX_INDTEXSTAGE2, GX_ITS_1, GX_ITS_1); + GXSetIndTexCoordScale(GX_INDTEXSTAGE3, GX_ITS_1, GX_ITS_1); + + GXSetFog(GX_FOG_NONE, 0.0f, 1.0f, 0.1f, 1.0f, black); + GXSetFogRangeAdj(GX_DISABLE, 0, 0); + GXSetBlendMode(GX_BM_NONE, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_CLEAR); + GXSetColorUpdate(GX_ENABLE); + GXSetAlphaUpdate(GX_ENABLE); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetZCompLoc(GX_TRUE); + GXSetDither(GX_ENABLE); + GXSetDstAlpha(GX_DISABLE, 0); + GXSetPixelFmt(GX_PF_RGB8_Z24, GX_ZC_LINEAR); + GXSetFieldMask(GX_ENABLE, GX_ENABLE); + GXSetFieldMode(rmode->field_rendering, ((rmode->viHeight == 2 * rmode->xfbHeight) ? GX_ENABLE : GX_DISABLE)); + + GXSetDispCopySrc(0, 0, rmode->fbWidth, rmode->efbHeight); + GXSetDispCopyDst(rmode->fbWidth, rmode->efbHeight); + GXSetDispCopyYScale((f32)(rmode->xfbHeight) / (f32)(rmode->efbHeight)); + GXSetCopyClamp((GXFBClamp)(GX_CLAMP_TOP | GX_CLAMP_BOTTOM)); + GXSetCopyFilter(rmode->aa, rmode->sample_pattern, GX_TRUE, rmode->vfilter); + GXSetDispCopyGamma(GX_GM_1_0); + GXSetDispCopyFrame2Field(GX_COPY_PROGRESSIVE); + GXClearBoundingBox(); + + GXPokeColorUpdate(GX_TRUE); + GXPokeAlphaUpdate(GX_TRUE); + GXPokeDither(GX_FALSE); + GXPokeBlendMode(GX_BM_NONE, GX_BL_ZERO, GX_BL_ONE, GX_LO_SET); + GXPokeAlphaMode(GX_ALWAYS, 0); + GXPokeAlphaRead(GX_READ_FF); + GXPokeDstAlpha(GX_DISABLE, 0); + GXPokeZMode(GX_TRUE, GX_ALWAYS, GX_TRUE); + GXSetGPMetric(GX_PERF0_NONE, GX_PERF1_NONE); + GXClearGPMetric(); +} diff --git a/src/dolphin/gx/GXLight.c b/src/dolphin/gx/GXLight.c new file mode 100644 index 00000000..a084fd84 --- /dev/null +++ b/src/dolphin/gx/GXLight.c @@ -0,0 +1,620 @@ +#include +#include + +#include + +float cosf(float x); +inline float sqrtf(float x) +{ + static const double _half = .5; + static const double _three = 3.0; + volatile float y; + if (x > 0.0f) + { + double guess = __frsqrte((double)x); // returns an approximation to + guess = _half*guess*(_three - guess*guess*x); // now have 12 sig bits + guess = _half*guess*(_three - guess*guess*x); // now have 24 sig bits + guess = _half*guess*(_three - guess*guess*x); // now have 32 sig bits + y = (float)(x*guess); + return y ; + } + return x; +} + +// GXLightObj private data +struct __GXLightObjInt_struct { + u32 reserved[3]; + u32 Color; + f32 a[3]; + f32 k[3]; + f32 lpos[3]; + f32 ldir[3]; +}; + +void GXInitLightAttn(GXLightObj *lt_obj, f32 a0, f32 a1, f32 a2, f32 k0, f32 k1, f32 k2) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x62, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x63, "GXInitLightAttn"); + obj->a[0] = a0; + obj->a[1] = a1; + obj->a[2] = a2; + obj->k[0] = k0; + obj->k[1] = k1; + obj->k[2] = k2; +} + +void GXInitLightAttnA(GXLightObj *lt_obj, f32 a0, f32 a1, f32 a2) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x70, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x71, "GXInitLightAttnA"); + obj->a[0] = a0; + obj->a[1] = a1; + obj->a[2] = a2; +} + +void GXGetLightAttnA(GXLightObj *lt_obj, f32 *a0, f32 *a1, f32 *a2) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x7A, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x7B, "GXGetLightAttnA"); + *a0 = obj->a[0]; + *a1 = obj->a[1]; + *a2 = obj->a[2]; +} + +void GXInitLightAttnK(GXLightObj *lt_obj, f32 k0, f32 k1, f32 k2) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x84, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x85, "GXInitLightAttnK"); + obj->k[0] = k0; + obj->k[1] = k1; + obj->k[2] = k2; +} + +void GXGetLightAttnK(GXLightObj *lt_obj, f32 *k0, f32 *k1, f32 *k2) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x8E, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x8F, "GXGetLightAttnK"); + *k0 = obj->k[0]; + *k1 = obj->k[1]; + *k2 = obj->k[2]; +} + +void GXInitLightSpot(GXLightObj *lt_obj, f32 cutoff, GXSpotFn spot_func) +{ + float a0, a1, a2; + float d; + float cr; + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0xA7, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0xA9, "GXInitLightSpot"); + + if (cutoff <= 0.0f || cutoff > 90.0f) + spot_func = GX_SP_OFF; + + cr = cosf((3.1415927f * cutoff) / 180.0f); + switch (spot_func) { + case GX_SP_FLAT: + a0 = -1000.0f * cr; + a1 = 1000.0f; + a2 = 0.0f; + break; + case GX_SP_COS: + a0 = -cr / (1.0f - cr); + a1 = 1.0f / (1.0f - cr); + a2 = 0.0f; + break; + case GX_SP_COS2: + a0 = 0.0f; + a1 = -cr / (1.0f - cr); + a2 = 1.0f / (1.0f - cr); + break; + case GX_SP_SHARP: + d = (1.0f - cr) * (1.0f - cr); + a0 = (cr * (cr - 2.0f)) / d; + a1 = 2.0f / d; + a2 = -1.0f / d; + break; + case GX_SP_RING1: + d = (1.0f - cr) * (1.0f - cr); + a0 = (-4.0f * cr) / d; + a1 = (4.0f * (1.0f + cr)) / d; + a2 = -4.0f / d; + break; + case GX_SP_RING2: + d = (1.0f - cr) * (1.0f - cr); + a0 = 1.0f - ((2.0f * cr * cr) / d); + a1 = (4.0f * cr) / d; + a2 = -2.0f / d; + break; + case GX_SP_OFF: + default: + a0 = 1.0f; + a1 = 0.0f; + a2 = 0.0f; + break; + } + obj->a[0] = a0; + obj->a[1] = a1; + obj->a[2] = a2; +} + +void GXInitLightDistAttn(GXLightObj *lt_obj, f32 ref_dist, f32 ref_br, GXDistAttnFn dist_func) +{ + f32 k0, k1, k2; + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0xF2, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0xF4, "GXInitLightDistAttn"); + + if (ref_dist < 0.0f) + dist_func = GX_DA_OFF; + if (ref_br <= 0.0f || ref_br >= 1.0f) + dist_func = GX_DA_OFF; + + switch (dist_func) { + case GX_DA_GENTLE: + k0 = 1.0f; + k1 = (1.0f - ref_br) / (ref_br * ref_dist); + k2 = 0.0f; + break; + case GX_DA_MEDIUM: + k0 = 1.0f; + k1 = (0.5f * (1.0f - ref_br)) / (ref_br * ref_dist); + k2 = (0.5f * (1.0f - ref_br)) / (ref_br * ref_dist * ref_dist); + break; + case GX_DA_STEEP: + k0 = 1.0f; + k1 = 0.0f; + k2 = (1.0f - ref_br) / (ref_br * ref_dist * ref_dist); + break; + case GX_DA_OFF: + default: + k0 = 1.0f; + k1 = 0.0f; + k2 = 0.0f; + break; + } + + obj->k[0] = k0; + obj->k[1] = k1; + obj->k[2] = k2; +} + +void GXInitLightPos(GXLightObj *lt_obj, f32 x, f32 y, f32 z) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x129, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x12B, "GXInitLightPos"); + + obj->lpos[0] = x; + obj->lpos[1] = y; + obj->lpos[2] = z; +} + +void GXGetLightPos(const GXLightObj *lt_obj, f32 *x, f32 *y, f32 *z) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x134, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x136, "GXGetLightPos"); + + *x = obj->lpos[0]; + *y = obj->lpos[1]; + *z = obj->lpos[2]; +} + +void GXInitLightDir(GXLightObj *lt_obj, f32 nx, f32 ny, f32 nz) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x149, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + + obj->ldir[0] = -nx; + obj->ldir[1] = -ny; + obj->ldir[2] = -nz; +} + +void GXGetLightDir(GXLightObj *lt_obj, f32 *nx, f32 *ny, f32 *nz) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x155, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + + *nx = -obj->ldir[0]; + *ny = -obj->ldir[1]; + *nz = -obj->ldir[2]; +} + +void GXInitSpecularDir(GXLightObj *lt_obj, f32 nx, f32 ny, f32 nz) +{ + float mag; + float vx; + float vy; + float vz; + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x16F, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x170, "GXInitSpecularDir"); + + vx = -nx; + vy = -ny; + vz = -nz + 1.0f; + mag = 1.0f / sqrtf((vx * vx) + (vy * vy) + (vz * vz)); + obj->ldir[0] = vx * mag; + obj->ldir[1] = vy * mag; + obj->ldir[2] = vz * mag; + obj->lpos[0] = -nx * 1048576.0f; + obj->lpos[1] = -ny * 1048576.0f; + obj->lpos[2] = -nz * 1048576.0f; +} + +void GXInitSpecularDirHA(GXLightObj *lt_obj, f32 nx, f32 ny, f32 nz, f32 hx, f32 hy, f32 hz) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x18E, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x18F, "GXInitSpecularHA"); + + obj->ldir[0] = hx; + obj->ldir[1] = hy; + obj->ldir[2] = hz; + obj->lpos[0] = -nx * 1048576.0f; + obj->lpos[1] = -ny * 1048576.0f; + obj->lpos[2] = -nz * 1048576.0f; +} + +void GXInitLightColor(GXLightObj *lt_obj, GXColor color) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x1A8, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x1A9, "GXInitLightColor"); + + obj->Color = (color.r << 24) | (color.g << 16) | (color.b << 8) | color.a; +} + +void GXGetLightColor(const GXLightObj *lt_obj, GXColor *color) +{ + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x1B2, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x1B3, "GXGetLightColor"); + + color->r = (obj->Color >> 24) & 0xFF; + color->g = (obj->Color >> 16) & 0xFF; + color->b = (obj->Color >> 8) & 0xFF; + color->a = obj->Color & 0xFF; +} + +#if DEBUG +#define WRITE_SOME_LIGHT_REG1(val, addr) \ + do { \ + u32 xfData = val; \ + GX_WRITE_U32(val); \ + VERIF_MTXLIGHT(addr, xfData); \ + } while (0) + +#define WRITE_SOME_LIGHT_REG2(val, addr) \ + do { \ + f32 xfData = val; \ + GX_WRITE_F32(val); \ + VERIF_MTXLIGHT(addr, *(u32 *)&xfData); \ + } while (0) +#else +#define WRITE_SOME_LIGHT_REG1(val, addr) GX_WRITE_U32(val) +#define WRITE_SOME_LIGHT_REG2(val, addr) GX_WRITE_F32(val) +#endif + +void GXLoadLightObjImm(GXLightObj *lt_obj, GXLightID light) +{ + unsigned long addr; + unsigned long idx; + struct __GXLightObjInt_struct *obj; + + ASSERTMSGLINE(0x1C9, lt_obj != NULL, "Light Object Pointer is null"); + obj = (struct __GXLightObjInt_struct *)lt_obj; + CHECK_GXBEGIN(0x1CA, "GXLoadLightObjImm"); + + switch (light) { + case GX_LIGHT0: + idx = 0; + break; + case GX_LIGHT1: + idx = 1; + break; + case GX_LIGHT2: + idx = 2; + break; + case GX_LIGHT3: + idx = 3; + break; + case GX_LIGHT4: + idx = 4; + break; + case GX_LIGHT5: + idx = 5; + break; + case GX_LIGHT6: + idx = 6; + break; + case GX_LIGHT7: + idx = 7; + break; + default: + idx = 0; + ASSERTMSGLINE(0x1DA, 0, "GXLoadLightStateImm: Invalid Light Id"); + break; + } + + addr = idx * 0x10 + 0x600; + GX_WRITE_U8(0x10); + GX_WRITE_U32(addr | 0xF0000); + + WRITE_SOME_LIGHT_REG1(0, addr); + WRITE_SOME_LIGHT_REG1(0, addr + 1); + WRITE_SOME_LIGHT_REG1(0, addr + 2); + WRITE_SOME_LIGHT_REG1(obj->Color, addr + 3); + WRITE_SOME_LIGHT_REG2(obj->a[0], addr + 4); + WRITE_SOME_LIGHT_REG2(obj->a[1], addr + 5); + WRITE_SOME_LIGHT_REG2(obj->a[2], addr + 6); + WRITE_SOME_LIGHT_REG2(obj->k[0], addr + 7); + WRITE_SOME_LIGHT_REG2(obj->k[1], addr + 8); + WRITE_SOME_LIGHT_REG2(obj->k[2], addr + 9); + WRITE_SOME_LIGHT_REG2(obj->lpos[0], addr + 10); + WRITE_SOME_LIGHT_REG2(obj->lpos[1], addr + 11); + WRITE_SOME_LIGHT_REG2(obj->lpos[2], addr + 12); + WRITE_SOME_LIGHT_REG2(obj->ldir[0], addr + 13); + WRITE_SOME_LIGHT_REG2(obj->ldir[1], addr + 14); + WRITE_SOME_LIGHT_REG2(obj->ldir[2], addr + 15); + + gx->bpSentNot = 1; +} + +void GXLoadLightObjIndx(u32 lt_obj_indx, GXLightID light) +{ + unsigned long reg; + unsigned long addr; + unsigned long idx; + + CHECK_GXBEGIN(0x209, "GXLoadLightObjIndx"); + + switch (light) { + case GX_LIGHT0: + idx = 0; + break; + case GX_LIGHT1: + idx = 1; + break; + case GX_LIGHT2: + idx = 2; + break; + case GX_LIGHT3: + idx = 3; + break; + case GX_LIGHT4: + idx = 4; + break; + case GX_LIGHT5: + idx = 5; + break; + case GX_LIGHT6: + idx = 6; + break; + case GX_LIGHT7: + idx = 7; + break; + default: + idx = 0; + ASSERTMSGLINE(0x216, 0, "GXLoadLightObjIndx: Invalid Light Id"); + break; + } + + addr = idx * 0x10 + 0x600; + reg = 0; + SET_REG_FIELD(0x21C, reg, 12, 0, addr); + SET_REG_FIELD(0x21D, reg, 4, 12, 0xF); + SET_REG_FIELD(0x21E, reg, 16, 16, lt_obj_indx); + GX_WRITE_U8(0x38); + GX_WRITE_U32(reg); +#if DEBUG + __GXShadowIndexState(7, reg); +#endif + gx->bpSentNot = 1; +} + +void GXSetChanAmbColor(GXChannelID chan, GXColor amb_color) +{ + u32 reg = 0; + u32 colIdx; + u32 alpha; + + CHECK_GXBEGIN(0x239, "GXSetChanAmbColor"); + + switch (chan) { + case GX_COLOR0: + alpha = gx->ambColor[0] & 0xFF; + SET_REG_FIELD(0x23E, reg, 8, 0, alpha); + SET_REG_FIELD(0x23F, reg, 8, 8, amb_color.b); + SET_REG_FIELD(0x240, reg, 8, 16, amb_color.g); + SET_REG_FIELD(0x241, reg, 8, 24, amb_color.r); + colIdx = 0; + break; + case GX_COLOR1: + alpha = gx->ambColor[1] & 0xFF; + SET_REG_FIELD(0x247, reg, 8, 0, alpha); + SET_REG_FIELD(0x248, reg, 8, 8, amb_color.b); + SET_REG_FIELD(0x249, reg, 8, 16, amb_color.g); + SET_REG_FIELD(0x24A, reg, 8, 24, amb_color.r); + colIdx = 1; + break; + case GX_ALPHA0: + reg = gx->ambColor[0]; + SET_REG_FIELD(0x250, reg, 8, 0, amb_color.a); + colIdx = 0; + break; + case GX_ALPHA1: + reg = gx->ambColor[1]; + SET_REG_FIELD(0x256, reg, 8, 0, amb_color.a); + colIdx = 1; + break; + case GX_COLOR0A0: + SET_REG_FIELD(0x25B, reg, 8, 0, amb_color.a); + SET_REG_FIELD(0x25C, reg, 8, 8, amb_color.b); + SET_REG_FIELD(0x25D, reg, 8, 16, amb_color.g); + SET_REG_FIELD(0x25E, reg, 8, 24, amb_color.r); + colIdx = 0; + break; + case GX_COLOR1A1: + SET_REG_FIELD(0x263, reg, 8, 0, amb_color.a); + SET_REG_FIELD(0x264, reg, 8, 8, amb_color.b); + SET_REG_FIELD(0x265, reg, 8, 16, amb_color.g); + SET_REG_FIELD(0x266, reg, 8, 24, amb_color.r); + colIdx = 1; + break; + default: + ASSERTMSGLINE(0x26B, 0, "GXSetChanAmbColor: Invalid Channel Id"); + return; + } + + GX_WRITE_XF_REG(colIdx + 10, reg); + gx->bpSentNot = 1; + gx->ambColor[colIdx] = reg; +} + +void GXSetChanMatColor(GXChannelID chan, GXColor mat_color) +{ + u32 reg = 0; + u32 alpha; + u32 colIdx; + + CHECK_GXBEGIN(0x28A, "GXSetChanMatColor"); + + switch (chan) { + case GX_COLOR0: + alpha = gx->matColor[0] & 0xFF; + SET_REG_FIELD(0x28F, reg, 8, 0, alpha); + SET_REG_FIELD(0x290, reg, 8, 8, mat_color.b); + SET_REG_FIELD(0x291, reg, 8, 16, mat_color.g); + SET_REG_FIELD(0x292, reg, 8, 24, mat_color.r); + colIdx = 0; + break; + case GX_COLOR1: + alpha = gx->matColor[1] & 0xFF; + SET_REG_FIELD(0x298, reg, 8, 0, alpha); + SET_REG_FIELD(0x299, reg, 8, 8, mat_color.b); + SET_REG_FIELD(0x29A, reg, 8, 16, mat_color.g); + SET_REG_FIELD(0x29B, reg, 8, 24, mat_color.r); + colIdx = 1; + break; + case GX_ALPHA0: + reg = gx->matColor[0]; + SET_REG_FIELD(0x2A1, reg, 8, 0, mat_color.a); + colIdx = 0; + break; + case GX_ALPHA1: + reg = gx->matColor[1]; + SET_REG_FIELD(0x2A7, reg, 8, 0, mat_color.a); + colIdx = 1; + break; + case GX_COLOR0A0: + SET_REG_FIELD(0x2AC, reg, 8, 0, mat_color.a); + SET_REG_FIELD(0x2AD, reg, 8, 8, mat_color.b); + SET_REG_FIELD(0x2AE, reg, 8, 16, mat_color.g); + SET_REG_FIELD(0x2AF, reg, 8, 24, mat_color.r); + colIdx = 0; + break; + case GX_COLOR1A1: + SET_REG_FIELD(0x2B4, reg, 8, 0, mat_color.a); + SET_REG_FIELD(0x2B5, reg, 8, 8, mat_color.b); + SET_REG_FIELD(0x2B6, reg, 8, 16, mat_color.g); + SET_REG_FIELD(0x2B7, reg, 8, 24, mat_color.r); + colIdx = 1; + break; + default: + ASSERTMSGLINE(0x2BC, 0, "GXSetChanMatColor: Invalid Channel Id"); + return; + } + + GX_WRITE_XF_REG(colIdx + 12, reg); + gx->bpSentNot = 1; + gx->matColor[colIdx] = reg; +} + +void GXSetNumChans(u8 nChans) +{ + CHECK_GXBEGIN(0x2D5, "GXSetNumChans"); + ASSERTMSGLINE(0x2D6, nChans <= 2, "GXSetNumChans: nChans > 2"); + + SET_REG_FIELD(0x2D8, gx->genMode, 3, 4, nChans); + GX_WRITE_XF_REG(9, nChans); + gx->dirtyState |= 4; +} + +void GXSetChanCtrl(GXChannelID chan, GXBool enable, GXColorSrc amb_src, GXColorSrc mat_src, u32 light_mask, GXDiffuseFn diff_fn, GXAttnFn attn_fn) +{ + u32 reg; // r31 + u32 idx; // r26 + + CHECK_GXBEGIN(0x2F8, "GXSetChanCtrl"); + + ASSERTMSGLINE(0x2FB, chan >= 0 && chan <= 5, "GXSetChanCtrl: Invalid Channel Id"); + + if (chan == 4) + idx = 0; + else if (chan == 5) + idx = 1; + else + idx = chan; + + reg = 0; + SET_REG_FIELD(0x302, reg, 1, 1, enable); + SET_REG_FIELD(0x303, reg, 1, 0, mat_src); + SET_REG_FIELD(0x304, reg, 1, 6, amb_src); + SET_REG_FIELD(0x305, reg, 1, 2, (light_mask & GX_LIGHT0) != 0); + SET_REG_FIELD(0x306, reg, 1, 3, (light_mask & GX_LIGHT1) != 0); + SET_REG_FIELD(0x307, reg, 1, 4, (light_mask & GX_LIGHT2) != 0); + SET_REG_FIELD(0x308, reg, 1, 5, (light_mask & GX_LIGHT3) != 0); + SET_REG_FIELD(0x309, reg, 1, 11, (light_mask & GX_LIGHT4) != 0); + SET_REG_FIELD(0x30A, reg, 1, 12, (light_mask & GX_LIGHT5) != 0); + SET_REG_FIELD(0x30B, reg, 1, 13, (light_mask & GX_LIGHT6) != 0); + SET_REG_FIELD(0x30C, reg, 1, 14, (light_mask & GX_LIGHT7) != 0); + SET_REG_FIELD(0x30E, reg, 2, 7, (attn_fn == 0) ? 0 : diff_fn); + SET_REG_FIELD(0x30F, reg, 1, 9, (attn_fn != 2)); + SET_REG_FIELD(0x310, reg, 1, 10, (attn_fn != 0)); + + GX_WRITE_XF_REG(idx + 14, reg); + gx->bpSentNot = 1; + if (chan == GX_COLOR0A0) { + GX_WRITE_XF_REG(16, reg); + } + else if (chan == GX_COLOR1A1) { + GX_WRITE_XF_REG(17, reg); + } +} diff --git a/src/dolphin/gx/GXMisc.c b/src/dolphin/gx/GXMisc.c new file mode 100644 index 00000000..1b7bea94 --- /dev/null +++ b/src/dolphin/gx/GXMisc.c @@ -0,0 +1,485 @@ +#include +#include +#include +#include + + +#include + +static GXDrawSyncCallback TokenCB; +static GXDrawDoneCallback DrawDoneCB; +static u8 DrawDone; +static OSThreadQueue FinishQueue; + +void GXSetMisc(GXMiscToken token, u32 val) +{ + switch (token) { + case GX_MT_XF_FLUSH: + gx->vNum = val; + gx->vNumNot = !gx->vNum; + gx->bpSentNot = 1; + if (gx->vNum != 0) { + gx->dirtyState |= 8; + } + break; + case GX_MT_DL_SAVE_CONTEXT: + ASSERTMSGLINE(0xC4, !gx->inDispList, "GXSetMisc: Cannot change DL context setting while making a display list"); + gx->dlSaveContext = (val > 0); + break; + case GX_MT_NULL: + break; + default: + break; + } +} + +void GXFlush(void) +{ + CHECK_GXBEGIN(0x10E, "GXFlush"); + if (gx->dirtyState) { + __GXSetDirtyState(); + } + + GX_WRITE_U32(0); + GX_WRITE_U32(0); + GX_WRITE_U32(0); + GX_WRITE_U32(0); + GX_WRITE_U32(0); + GX_WRITE_U32(0); + GX_WRITE_U32(0); + GX_WRITE_U32(0); + + PPCSync(); +} + +void GXResetWriteGatherPipe(void) +{ + while (PPCMfwpar() & 1) { } + PPCMtwpar(OSUncachedToPhysical((void *)GXFIFO_ADDR)); +} + +static inline void __GXAbortWait(u32 clocks) +{ + OSTime time0; + OSTime time1; + + time0 = OSGetTime(); + do { + time1 = OSGetTime(); + } while (time1 - time0 <= (clocks / 4)); +} + +void __GXAbortWaitPECopyDone(void) +{ + __piReg[6] = 1; + __GXAbortWait(0xC8U); + __piReg[6] = 0; + __GXAbortWait(0x14U); + __GXCleanGPFifo(); +} + +void GXSetDrawSync(u16 token) +{ + BOOL enabled; + u32 reg; + + CHECK_GXBEGIN(0x162, "GXSetDrawSync"); + + enabled = OSDisableInterrupts(); + reg = token | 0x48000000; + GX_WRITE_RAS_REG(reg); + SET_REG_FIELD(0x16F, reg, 16, 0, token); + SET_REG_FIELD(0x170, reg, 8, 24, 0x47); + GX_WRITE_RAS_REG(reg); + GXFlush(); + OSRestoreInterrupts(enabled); + gx->bpSentNot = 0; +} + +u16 GXReadDrawSync(void) +{ + u16 token = __peReg[7]; + return token; +} + +void GXSetDrawDone(void) +{ + u32 reg; + BOOL enabled; + + CHECK_GXBEGIN(0x19C, "GXSetDrawDone"); + enabled = OSDisableInterrupts(); + reg = 0x45000002; + GX_WRITE_RAS_REG(reg); + GXFlush(); + DrawDone = 0; + OSRestoreInterrupts(enabled); +} + +void GXWaitDrawDone(void) +{ + BOOL enabled; + + CHECK_GXBEGIN(0x1CA, "GXWaitDrawDone"); + + enabled = OSDisableInterrupts(); + while (!DrawDone) { + OSSleepThread(&FinishQueue); + } + OSRestoreInterrupts(enabled); +} + +void GXDrawDone(void) +{ + CHECK_GXBEGIN(0x1EA, "GXDrawDone"); + GXSetDrawDone(); + GXWaitDrawDone(); +} + +void GXPixModeSync(void) +{ + CHECK_GXBEGIN(0x20D, "GXPixModeSync"); + GX_WRITE_RAS_REG(gx->peCtrl); + gx->bpSentNot = 0; +} + +void GXTexModeSync(void) +{ + u32 reg; + + CHECK_GXBEGIN(0x225, "GXTexModeSync"); + reg = 0x63000000; + GX_WRITE_RAS_REG(reg); + gx->bpSentNot = 0; +} + +void GXPokeAlphaMode(GXCompare func, u8 threshold) +{ + u32 reg; + + CHECK_GXBEGIN(0x25F, "GXPokeAlphaMode"); + reg = (func << 8) | threshold; + __peReg[3] = reg; +} + +void GXPokeAlphaRead(GXAlphaReadMode mode) +{ + u32 reg; + + CHECK_GXBEGIN(0x26A, "GXPokeAlphaRead"); + reg = 0; + SET_REG_FIELD(0x26D, reg, 2, 0, mode); + SET_REG_FIELD(0x26E, reg, 1, 2, 1); + __peReg[4] = reg; +} + +void GXPokeAlphaUpdate(GXBool update_enable) +{ + u32 reg; + + CHECK_GXBEGIN(0x277, "GXPokeAlphaUpdate"); + reg = __peReg[1]; + SET_REG_FIELD(0x27A, reg, 1, 4, update_enable); + __peReg[1] = reg; +} + +void GXPokeBlendMode(GXBlendMode type, GXBlendFactor src_factor, GXBlendFactor dst_factor, GXLogicOp op) +{ + u32 reg; + + CHECK_GXBEGIN(0x284, "GXPokeBlendUpdate"); + reg = __peReg[1]; + SET_REG_FIELD(0x28C, reg, 1, 0, (type == GX_BM_BLEND) || (type == GX_BM_SUBTRACT)); + SET_REG_FIELD(0x28D, reg, 1, 11, (type == GX_BM_SUBTRACT)); + SET_REG_FIELD(0x28F, reg, 1, 1, (type == GX_BM_LOGIC)); + SET_REG_FIELD(0x290, reg, 4, 12, op); + SET_REG_FIELD(0x291, reg, 3, 8, src_factor); + SET_REG_FIELD(0x292, reg, 3, 5, dst_factor); + SET_REG_FIELD(0x293, reg, 8, 24, 0x41); + __peReg[1] = reg; +} + +void GXPokeColorUpdate(GXBool update_enable) +{ + u32 reg; + + CHECK_GXBEGIN(0x29D, "GXPokeColorUpdate"); + reg = __peReg[1]; + SET_REG_FIELD(0x2A0, reg, 1, 3, update_enable); + __peReg[1] = reg; +} + +void GXPokeDstAlpha(GXBool enable, u8 alpha) +{ + u32 reg = 0; + + CHECK_GXBEGIN(0x2A9, "GXPokeDstAlpha"); + SET_REG_FIELD(0x2AB, reg, 8, 0, alpha); + SET_REG_FIELD(0x2AC, reg, 1, 8, enable); + __peReg[2] = reg; +} + +void GXPokeDither(GXBool dither) +{ + u32 reg; + + CHECK_GXBEGIN(0x2B5, "GXPokeDither"); + reg = __peReg[1]; + SET_REG_FIELD(0x2B8, reg, 1, 2, dither); + __peReg[1] = reg; +} + +void GXPokeZMode(GXBool compare_enable, GXCompare func, GXBool update_enable) +{ + u32 reg = 0; + + CHECK_GXBEGIN(0x2C1, "GXPokeZMode"); + + SET_REG_FIELD(0x2C3, reg, 1, 0, compare_enable); + SET_REG_FIELD(0x2C4, reg, 3, 1, func); + SET_REG_FIELD(0x2C5, reg, 1, 4, update_enable); + __peReg[0] = reg; +} + +void GXPeekARGB(u16 x, u16 y, u32 *color) +{ + u32 addr = (u32)OSPhysicalToUncached(0x08000000); + + SET_REG_FIELD(0x2DC, addr, 10, 2, x); + SET_REG_FIELD(0x2DD, addr, 10, 12, y); + SET_REG_FIELD(0x2DE, addr, 2, 22, 0); + *color = *(u32 *)addr; +} + +void GXPokeARGB(u16 x, u16 y, u32 color) +{ + u32 addr = (u32)OSPhysicalToUncached(0x08000000); + + SET_REG_FIELD(0x2E6, addr, 10, 2, x); + SET_REG_FIELD(0x2E7, addr, 10, 12, y); + SET_REG_FIELD(0x2E8, addr, 2, 22, 0); + *(u32 *)addr = color; +} + +void GXPeekZ(u16 x, u16 y, u32 *z) +{ + u32 addr = (u32)OSPhysicalToUncached(0x08000000); + + SET_REG_FIELD(0x2F0, addr, 10, 2, x); + SET_REG_FIELD(0x2F1, addr, 10, 12, y); + SET_REG_FIELD(0x2F2, addr, 2, 22, 1); + *z = *(u32 *)addr; +} + +void GXPokeZ(u16 x, u16 y, u32 z) +{ + u32 addr = (u32)OSPhysicalToUncached(0x08000000); + + SET_REG_FIELD(0x2FA, addr, 10, 2, x); + SET_REG_FIELD(0x2FB, addr, 10, 12, y); + SET_REG_FIELD(0x2FC, addr, 2, 22, 1); + *(u32 *)addr = z; +} + +GXDrawSyncCallback GXSetDrawSyncCallback(GXDrawSyncCallback cb) +{ + GXDrawSyncCallback oldcb; + BOOL enabled; + + oldcb = TokenCB; + enabled = OSDisableInterrupts(); + TokenCB = cb; + OSRestoreInterrupts(enabled); + return oldcb; +} + +static void GXTokenInterruptHandler(__OSInterrupt interrupt, OSContext *context) +{ + u16 token; + OSContext exceptionContext; + u32 reg; + + token = __peReg[7]; + if (TokenCB != NULL) { + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + TokenCB(token); + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); + } + reg = __peReg[5]; + SET_REG_FIELD(0, reg, 1, 2, 1); + __peReg[5] = reg; +} + +GXDrawDoneCallback GXSetDrawDoneCallback(GXDrawDoneCallback cb) +{ + GXDrawDoneCallback oldcb; + BOOL enabled; + + oldcb = DrawDoneCB; + enabled = OSDisableInterrupts(); + DrawDoneCB = cb; + OSRestoreInterrupts(enabled); + return oldcb; +} + +static void GXFinishInterruptHandler(__OSInterrupt interrupt, OSContext *context) +{ + OSContext exceptionContext; + u32 reg; + + reg = __peReg[5]; + SET_REG_FIELD(0, reg, 1, 3, 1); + __peReg[5] = reg; + DrawDone = 1; + if (DrawDoneCB != NULL) { + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + DrawDoneCB(); + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); + } + OSWakeupThread(&FinishQueue); +} + +void __GXPEInit(void) +{ + u32 reg; + __OSSetInterruptHandler(0x12, GXTokenInterruptHandler); + __OSSetInterruptHandler(0x13, GXFinishInterruptHandler); + OSInitThreadQueue(&FinishQueue); + __OSUnmaskInterrupts(0x2000); + __OSUnmaskInterrupts(0x1000); + reg = __peReg[5]; + SET_REG_FIELD(0, reg, 1, 2, 1); + SET_REG_FIELD(0, reg, 1, 3, 1); + SET_REG_FIELD(0, reg, 1, 0, 1); + SET_REG_FIELD(0, reg, 1, 1, 1); + __peReg[5] = reg; +} + +u32 GXCompressZ16(u32 z24, GXZFmt16 zfmt) +{ + u32 z16; + u32 z24n; + s32 exp; + s32 shift; + s32 temp; + u8 unused[4]; + + z24n = ~(z24 << 8); + temp = __cntlzw(z24n); + switch (zfmt) { + case GX_ZC_LINEAR: + z16 = (z24 >> 8) & 0xFFFF; + break; + case GX_ZC_NEAR: + if (temp > 3) { + exp = 3; + } + else { + exp = temp; + } + if (exp == 3) { + shift = 7; + } + else { + shift = 9 - exp; + } + z16 = ((z24 >> shift) & 0x3FFF & ~0xFFFFC000) | (exp << 14); + break; + case GX_ZC_MID: + if (temp > 7) { + exp = 7; + } + else { + exp = temp; + } + if (exp == 7) { + shift = 4; + } + else { + shift = 10 - exp; + } + z16 = ((z24 >> shift) & 0x1FFF & ~0xFFFFE000) | (exp << 13); + break; + case GX_ZC_FAR: + if (temp > 12) { + exp = 12; + } + else { + exp = temp; + } + if (exp == 12) { + shift = 0; + } + else { + shift = 11 - exp; + } + z16 = ((z24 >> shift) & 0xFFF & ~0xFFFFF000) | (exp << 12); + break; + default: + OSPanic(__FILE__, 0x3B0, "GXCompressZ16: Invalid Z format\n"); + break; + } + return z16; +} + +u32 GXDecompressZ16(u32 z16, GXZFmt16 zfmt) +{ + u32 z24; + u32 cb1; + long exp; + long shift; + + cb1; + cb1; + cb1; + z16; + z16; + z16; // needed to match + + switch (zfmt) { + case GX_ZC_LINEAR: + z24 = (z16 << 8) & 0xFFFF00; + break; + case GX_ZC_NEAR: + exp = (z16 >> 14) & 3; + if (exp == 3) { + shift = 7; + } + else { + shift = 9 - exp; + } + cb1 = -1 << (24 - exp); + z24 = (cb1 | ((z16 & 0x3FFF) << shift)) & 0xFFFFFF; + break; + case GX_ZC_MID: + exp = (z16 >> 13) & 7; + if (exp == 7) { + shift = 4; + } + else { + shift = 10 - exp; + } + cb1 = -1 << (24 - exp); + z24 = (cb1 | ((z16 & 0x1FFF) << shift)) & 0xFFFFFF; + break; + case GX_ZC_FAR: + exp = (z16 >> 12) & 0xF; + if (exp == 12) { + shift = 0; + } + else { + shift = 11 - exp; + } + cb1 = -1 << (24 - exp); + z24 = (cb1 | ((z16 & 0xFFF) << shift)) & 0xFFFFFF; + break; + default: + OSPanic(__FILE__, 0x3E2, "GXDecompressZ16: Invalid Z format\n"); + break; + } + return z24; +} diff --git a/src/dolphin/gx/GXPerf.c b/src/dolphin/gx/GXPerf.c new file mode 100644 index 00000000..34b4d0ae --- /dev/null +++ b/src/dolphin/gx/GXPerf.c @@ -0,0 +1,577 @@ +#include +#include + +#include + +void GXSetGPMetric(GXPerf0 perf0, GXPerf1 perf1) +{ + u32 reg; + + CHECK_GXBEGIN(0x6A, "GXSetGPMetric"); + + switch (gx->perf0) { + case GX_PERF0_VERTICES: + case GX_PERF0_CLIP_VTX: + case GX_PERF0_CLIP_CLKS: + case GX_PERF0_XF_WAIT_IN: + case GX_PERF0_XF_WAIT_OUT: + case GX_PERF0_XF_XFRM_CLKS: + case GX_PERF0_XF_LIT_CLKS: + case GX_PERF0_XF_BOT_CLKS: + case GX_PERF0_XF_REGLD_CLKS: + case GX_PERF0_XF_REGRD_CLKS: + case GX_PERF0_CLIP_RATIO: + case GX_PERF0_CLOCKS: + reg = 0; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_TRIANGLES: + case GX_PERF0_TRIANGLES_CULLED: + case GX_PERF0_TRIANGLES_PASSED: + case GX_PERF0_TRIANGLES_SCISSORED: + case GX_PERF0_TRIANGLES_0TEX: + case GX_PERF0_TRIANGLES_1TEX: + case GX_PERF0_TRIANGLES_2TEX: + case GX_PERF0_TRIANGLES_3TEX: + case GX_PERF0_TRIANGLES_4TEX: + case GX_PERF0_TRIANGLES_5TEX: + case GX_PERF0_TRIANGLES_6TEX: + case GX_PERF0_TRIANGLES_7TEX: + case GX_PERF0_TRIANGLES_8TEX: + case GX_PERF0_TRIANGLES_0CLR: + case GX_PERF0_TRIANGLES_1CLR: + case GX_PERF0_TRIANGLES_2CLR: + reg = 0x23000000; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_QUAD_0CVG: + case GX_PERF0_QUAD_NON0CVG: + case GX_PERF0_QUAD_1CVG: + case GX_PERF0_QUAD_2CVG: + case GX_PERF0_QUAD_3CVG: + case GX_PERF0_QUAD_4CVG: + case GX_PERF0_AVG_QUAD_CNT: + reg = 0x24000000; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_NONE: + break; + default: + ASSERTMSGLINE(0xA6, 0, "GXSetGPMetric: Invalid GXPerf0 metric name"); + break; + } + + switch (gx->perf1) { + case GX_PERF1_TEXELS: + case GX_PERF1_TX_IDLE: + case GX_PERF1_TX_REGS: + case GX_PERF1_TX_MEMSTALL: + case GX_PERF1_TC_CHECK1_2: + case GX_PERF1_TC_CHECK3_4: + case GX_PERF1_TC_CHECK5_6: + case GX_PERF1_TC_CHECK7_8: + case GX_PERF1_TC_MISS: + case GX_PERF1_CLOCKS: + reg = 0x67000000; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_VC_ELEMQ_FULL: + case GX_PERF1_VC_MISSQ_FULL: + case GX_PERF1_VC_MEMREQ_FULL: + case GX_PERF1_VC_STATUS7: + case GX_PERF1_VC_MISSREP_FULL: + case GX_PERF1_VC_STREAMBUF_LOW: + case GX_PERF1_VC_ALL_STALLS: + case GX_PERF1_VERTICES: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 0); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_FIFO_REQ: + case GX_PERF1_CALL_REQ: + case GX_PERF1_VC_MISS_REQ: + case GX_PERF1_CP_ALL_REQ: + reg = 0; + GX_SET_CP_REG(3, reg); + break; + case GX_PERF1_NONE: + break; + default: + ASSERTMSGLINE(0xD8, 0, "GXSetGPMetric: Invalid GXPerf1 metric name"); + break; + } + + gx->perf0 = perf0; + switch (gx->perf0) { + case GX_PERF0_VERTICES: + reg = 0x273; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_CLIP_VTX: + reg = 0x14A; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_CLIP_CLKS: + reg = 0x16B; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_XF_WAIT_IN: + reg = 0x84; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_XF_WAIT_OUT: + reg = 0xC6; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_XF_XFRM_CLKS: + reg = 0x210; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_XF_LIT_CLKS: + reg = 0x252; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_XF_BOT_CLKS: + reg = 0x231; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_XF_REGLD_CLKS: + reg = 0x1AD; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_XF_REGRD_CLKS: + reg = 0x1CE; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_CLOCKS: + reg = 0x21; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_CLIP_RATIO: + reg = 0x153; + GX_WRITE_XF_REG(6, reg); + break; + case GX_PERF0_TRIANGLES: + reg = 0x2300AE7F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_CULLED: + reg = 0x23008E7F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_PASSED: + reg = 0x23009E7F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_SCISSORED: + reg = 0x23001E7F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_0TEX: + reg = 0x2300AC3F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_1TEX: + reg = 0x2300AC7F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_2TEX: + reg = 0x2300ACBF; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_3TEX: + reg = 0x2300ACFF; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_4TEX: + reg = 0x2300AD3F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_5TEX: + reg = 0x2300AD7F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_6TEX: + reg = 0x2300ADBF; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_7TEX: + reg = 0x2300ADFF; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_8TEX: + reg = 0x2300AE3F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_0CLR: + reg = 0x2300A27F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_1CLR: + reg = 0x2300A67F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_TRIANGLES_2CLR: + reg = 0x2300AA7F; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_QUAD_0CVG: + reg = 0x2402C0C6; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_QUAD_NON0CVG: + reg = 0x2402C16B; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_QUAD_1CVG: + reg = 0x2402C0E7; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_QUAD_2CVG: + reg = 0x2402C108; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_QUAD_3CVG: + reg = 0x2402C129; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_QUAD_4CVG: + reg = 0x2402C14A; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_AVG_QUAD_CNT: + reg = 0x2402C1AD; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF0_NONE: + break; + default: + ASSERTMSGLINE(0x1DA, 0, "GXSetGPMetric: Invalid GXPerf0 metric name"); + break; + } + + gx->perf1 = perf1; + switch (gx->perf1) { + case GX_PERF1_TEXELS: + reg = 0x67000042; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_TX_IDLE: + reg = 0x67000084; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_TX_REGS: + reg = 0x67000063; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_TX_MEMSTALL: + reg = 0x67000129; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_TC_MISS: + reg = 0x67000252; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_CLOCKS: + reg = 0x67000021; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_TC_CHECK1_2: + reg = 0x6700014B; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_TC_CHECK3_4: + reg = 0x6700018D; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_TC_CHECK5_6: + reg = 0x670001CF; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_TC_CHECK7_8: + reg = 0x67000211; + GX_WRITE_RAS_REG(reg); + break; + case GX_PERF1_VC_ELEMQ_FULL: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 2); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_VC_MISSQ_FULL: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 3); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_VC_MEMREQ_FULL: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 4); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_VC_STATUS7: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 5); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_VC_MISSREP_FULL: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 6); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_VC_STREAMBUF_LOW: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 7); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_VC_ALL_STALLS: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 9); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_VERTICES: + SET_REG_FIELD(0, gx->perfSel, 4, 4, 8); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + break; + case GX_PERF1_FIFO_REQ: + reg = 2; + GX_SET_CP_REG(3, reg); + break; + case GX_PERF1_CALL_REQ: + reg = 3; + GX_SET_CP_REG(3, reg); + break; + case GX_PERF1_VC_MISS_REQ: + reg = 4; + GX_SET_CP_REG(3, reg); + break; + case GX_PERF1_CP_ALL_REQ: + reg = 5; + GX_SET_CP_REG(3, reg); + break; + case GX_PERF1_NONE: + break; + default: + ASSERTMSGLINE(0x26B, 0, "GXSetGPMetric: Invalid GXPerf1 metric name"); + break; + } + + gx->bpSentNot = 0; +} + +#pragma scheduling off +void GXReadGPMetric(u32 *cnt0, u32 *cnt1) +{ + u32 cpCtr0, cpCtr1, cpCtr2, cpCtr3; + + ASSERTMSGLINE(0x286, !gx->inDispList, "GXReadGPMetric: don't use in a display list"); + + cpCtr0 = __GXReadCPCounterU32(32, 33); + cpCtr1 = __GXReadCPCounterU32(34, 35); + cpCtr2 = __GXReadCPCounterU32(36, 37); + cpCtr3 = __GXReadCPCounterU32(38, 39); + + switch (gx->perf0) { + case GX_PERF0_CLIP_RATIO: + *cnt0 = cpCtr1 * 0x3E8 / cpCtr0; + break; + case GX_PERF0_VERTICES: + case GX_PERF0_CLIP_VTX: + case GX_PERF0_CLIP_CLKS: + case GX_PERF0_XF_WAIT_IN: + case GX_PERF0_XF_WAIT_OUT: + case GX_PERF0_XF_XFRM_CLKS: + case GX_PERF0_XF_LIT_CLKS: + case GX_PERF0_XF_BOT_CLKS: + case GX_PERF0_XF_REGLD_CLKS: + case GX_PERF0_XF_REGRD_CLKS: + case GX_PERF0_TRIANGLES: + case GX_PERF0_TRIANGLES_CULLED: + case GX_PERF0_TRIANGLES_PASSED: + case GX_PERF0_TRIANGLES_SCISSORED: + case GX_PERF0_TRIANGLES_0TEX: + case GX_PERF0_TRIANGLES_1TEX: + case GX_PERF0_TRIANGLES_2TEX: + case GX_PERF0_TRIANGLES_3TEX: + case GX_PERF0_TRIANGLES_4TEX: + case GX_PERF0_TRIANGLES_5TEX: + case GX_PERF0_TRIANGLES_6TEX: + case GX_PERF0_TRIANGLES_7TEX: + case GX_PERF0_TRIANGLES_8TEX: + case GX_PERF0_TRIANGLES_0CLR: + case GX_PERF0_TRIANGLES_1CLR: + case GX_PERF0_TRIANGLES_2CLR: + case GX_PERF0_QUAD_0CVG: + case GX_PERF0_QUAD_NON0CVG: + case GX_PERF0_QUAD_1CVG: + case GX_PERF0_QUAD_2CVG: + case GX_PERF0_QUAD_3CVG: + case GX_PERF0_QUAD_4CVG: + case GX_PERF0_AVG_QUAD_CNT: + case GX_PERF0_CLOCKS: + *cnt0 = cpCtr0; + break; + case GX_PERF0_NONE: + *cnt0 = 0; + break; + default: + ASSERTMSGLINE(0x2CF, 0, "GXReadGPMetric: Invalid GXPerf0 metric name"); + *cnt0 = 0; + break; + } + + switch (gx->perf1) { + case GX_PERF1_TEXELS: + *cnt1 = cpCtr3 * 4; + break; + case GX_PERF1_TC_CHECK1_2: + *cnt1 = cpCtr2 + (cpCtr3 * 2); + break; + case GX_PERF1_TC_CHECK3_4: + *cnt1 = (cpCtr2 * 3) + (cpCtr3 * 4); + break; + case GX_PERF1_TC_CHECK5_6: + *cnt1 = (cpCtr2 * 5) + (cpCtr3 * 6); + break; + case GX_PERF1_TC_CHECK7_8: + *cnt1 = (cpCtr2 * 7) + (cpCtr3 * 8); + break; + case GX_PERF1_TX_IDLE: + case GX_PERF1_TX_REGS: + case GX_PERF1_TX_MEMSTALL: + case GX_PERF1_TC_MISS: + case GX_PERF1_VC_ELEMQ_FULL: + case GX_PERF1_VC_MISSQ_FULL: + case GX_PERF1_VC_MEMREQ_FULL: + case GX_PERF1_VC_STATUS7: + case GX_PERF1_VC_MISSREP_FULL: + case GX_PERF1_VC_STREAMBUF_LOW: + case GX_PERF1_VC_ALL_STALLS: + case GX_PERF1_VERTICES: + case GX_PERF1_CLOCKS: + *cnt1 = cpCtr3; + break; + case GX_PERF1_FIFO_REQ: + case GX_PERF1_CALL_REQ: + case GX_PERF1_VC_MISS_REQ: + case GX_PERF1_CP_ALL_REQ: + *cnt1 = cpCtr2; + break; + case GX_PERF1_NONE: + *cnt1 = 0; + break; + default: + ASSERTMSGLINE(0x30A, 0, "GXReadGPMetric: Invalid GXPerf1 metric name"); + *cnt1 = 0; + break; + } +} +#pragma scheduling reset + +void GXClearGPMetric(void) +{ + u32 reg; + + ASSERTMSGLINE(0x322, !gx->inDispList, "GXClearGPMetric: don't use in a display list"); + reg = 4; + __cpReg[2] = reg; +} + +u32 GXReadGP0Metric(void) +{ + u32 cnt0, cnt1; + + GXReadGPMetric(&cnt0, &cnt1); + return cnt0; +} + +u32 GXReadGP1Metric(void) +{ + u32 cnt0, cnt1; + + GXReadGPMetric(&cnt0, &cnt1); + return cnt1; +} + +#pragma scheduling off +void GXReadMemMetric( + u32 *cp_req, u32 *tc_req, u32 *cpu_rd_req, u32 *cpu_wr_req, u32 *dsp_req, u32 *io_req, u32 *vi_req, u32 *pe_req, u32 *rf_req, u32 *fi_req) +{ + ASSERTMSGLINE(0x380, !gx->inDispList, "GXReadMemMetric: don't use in a display list"); + + *cp_req = __GXReadMEMCounterU32(26, 25); + *tc_req = __GXReadMEMCounterU32(28, 27); + *cpu_rd_req = __GXReadMEMCounterU32(30, 29); + *cpu_wr_req = __GXReadMEMCounterU32(32, 31); + *dsp_req = __GXReadMEMCounterU32(34, 33); + *io_req = __GXReadMEMCounterU32(36, 35); + *vi_req = __GXReadMEMCounterU32(38, 37); + *pe_req = __GXReadMEMCounterU32(40, 39); + *rf_req = __GXReadMEMCounterU32(42, 41); + *fi_req = __GXReadMEMCounterU32(44, 43); +} +#pragma scheduling reset + +void GXClearMemMetric(void) +{ + ASSERTMSGLINE(0x3B9, !gx->inDispList, "GXClearMemMetric: don't use in a display list"); + + GX_SET_MEM_REG(25, 0); + GX_SET_MEM_REG(26, 0); + GX_SET_MEM_REG(27, 0); + GX_SET_MEM_REG(28, 0); + GX_SET_MEM_REG(30, 0); + GX_SET_MEM_REG(29, 0); + GX_SET_MEM_REG(32, 0); + GX_SET_MEM_REG(31, 0); + GX_SET_MEM_REG(34, 0); + GX_SET_MEM_REG(33, 0); + GX_SET_MEM_REG(36, 0); + GX_SET_MEM_REG(35, 0); + GX_SET_MEM_REG(38, 0); + GX_SET_MEM_REG(37, 0); + GX_SET_MEM_REG(40, 0); + GX_SET_MEM_REG(39, 0); + GX_SET_MEM_REG(42, 0); + GX_SET_MEM_REG(41, 0); + GX_SET_MEM_REG(44, 0); + GX_SET_MEM_REG(43, 0); +} + +#pragma scheduling off +void GXReadPixMetric(u32 *top_pixels_in, u32 *top_pixels_out, u32 *bot_pixels_in, u32 *bot_pixels_out, u32 *clr_pixels_in, u32 *copy_clks) +{ + *top_pixels_in = __GXReadPECounterU32(12, 13) * 4; + *top_pixels_out = __GXReadPECounterU32(14, 15) * 4; + *bot_pixels_in = __GXReadPECounterU32(16, 17) * 4; + *bot_pixels_out = __GXReadPECounterU32(18, 19) * 4; + *clr_pixels_in = __GXReadPECounterU32(20, 21) * 4; + *copy_clks = __GXReadPECounterU32(22, 23); +} +#pragma scheduling reset + +void GXClearPixMetric(void) +{ + u32 reg; + + CHECK_GXBEGIN(0x48B, "GXClearPixMetric"); + reg = 0x57000000; + GX_WRITE_RAS_REG(reg); + reg = 0x57000AAA; + GX_WRITE_RAS_REG(reg); + gx->bpSentNot = 0; +} + +void GXSetVCacheMetric(GXVCachePerf attr) +{ + u32 reg; + + SET_REG_FIELD(0x43C, gx->perfSel, 4, 0, attr); + GX_WRITE_SOME_REG4(8, 0x20, gx->perfSel, -12); + reg = 1; + GX_WRITE_SOME_REG4(8, 0x10, reg, -12); +} + +#pragma scheduling off +void GXReadVCacheMetric(u32 *check, u32 *miss, u32 *stall) +{ + *check = __GXReadCPCounterU32(40, 41); + *miss = __GXReadCPCounterU32(42, 43); + *stall = __GXReadCPCounterU32(44, 45); +} +#pragma scheduling on + +void GXClearVCacheMetric(void) +{ + GX_WRITE_SOME_REG4(8, 0, 0, -12); +} diff --git a/src/dolphin/gx/GXPixel.c b/src/dolphin/gx/GXPixel.c new file mode 100644 index 00000000..5460b4b6 --- /dev/null +++ b/src/dolphin/gx/GXPixel.c @@ -0,0 +1,290 @@ +#include +#include +#include + +#include + +void GXSetFog(GXFogType type, f32 startz, f32 endz, f32 nearz, f32 farz, GXColor color) +{ + u32 fogclr; + u32 fog0; + u32 fog1; + u32 fog2; + u32 fog3; + f32 A; + f32 B; + f32 B_mant; + f32 C; + f32 a; + f32 c; + u32 B_expn; + u32 b_m; + u32 b_s; + u32 a_hex; + u32 c_hex; + + CHECK_GXBEGIN(0x8A, "GXSetFog"); + + ASSERTMSGLINE(0x8C, farz >= 0.0f, "GXSetFog: The farz should be positive value"); + ASSERTMSGLINE(0x8D, farz >= nearz, "GXSetFog: The farz should be larger than nearz"); + + if (farz == nearz || endz == startz) { + A = 0.0f; + B = 0.5f; + C = 0.0f; + } + else { + A = (farz * nearz) / ((farz - nearz) * (endz - startz)); + B = farz / (farz - nearz); + C = startz / (endz - startz); + } + + B_mant = B; + B_expn = 0; + while (B_mant > 1.0) { + B_mant *= 0.5f; + B_expn++; + } + while (B_mant > 0.0f && B_mant < 0.5) { + B_mant *= 2.0f; + B_expn--; + } + + a = A / (f32)(1 << (B_expn + 1)); + b_m = 8.388638e6f * B_mant; + b_s = B_expn + 1; + c = C; + + fog1 = 0; + SET_REG_FIELD(0x94, fog1, 24, 0, b_m); + SET_REG_FIELD(0x95, fog1, 8, 24, 0xEF); + + fog2 = 0; + SET_REG_FIELD(0x98, fog2, 5, 0, b_s); + SET_REG_FIELD(0x99, fog2, 8, 24, 0xF0); + + a_hex = *(u32 *)&a; + c_hex = *(u32 *)&c; + + fog0 = 0; + SET_REG_FIELD(0xA0, fog0, 11, 0, (a_hex >> 12) & 0x7FF); + SET_REG_FIELD(0xA1, fog0, 8, 11, (a_hex >> 23) & 0xFF); + SET_REG_FIELD(0xA2, fog0, 1, 19, (a_hex >> 31)); + SET_REG_FIELD(0xA3, fog0, 8, 24, 0xEE); + + fog3 = 0; + SET_REG_FIELD(0xA6, fog3, 11, 0, (c_hex >> 12) & 0x7FF); + SET_REG_FIELD(0xA7, fog3, 8, 11, (c_hex >> 23) & 0xFF); + SET_REG_FIELD(0xA8, fog3, 1, 19, (c_hex >> 31)); + SET_REG_FIELD(0xA9, fog3, 1, 20, 0); + SET_REG_FIELD(0xAA, fog3, 3, 21, type); + SET_REG_FIELD(0xAB, fog3, 8, 24, 0xF1); + + fogclr = 0; + SET_REG_FIELD(0xAE, fogclr, 8, 0, color.b); + SET_REG_FIELD(0xAF, fogclr, 8, 8, color.g); + SET_REG_FIELD(0xB0, fogclr, 8, 16, color.r); + SET_REG_FIELD(0xB1, fogclr, 8, 24, 0xF2); + + GX_WRITE_RAS_REG(fog0); + GX_WRITE_RAS_REG(fog1); + GX_WRITE_RAS_REG(fog2); + GX_WRITE_RAS_REG(fog3); + GX_WRITE_RAS_REG(fogclr); + gx->bpSentNot = 0; +} + +void GXSetFogColor(GXColor color) +{ + unsigned long rgba; + unsigned long fogclr = 0xF2000000; + + rgba = *(u32 *)&color; + SET_REG_FIELD(0xFA, fogclr, 24, 0, rgba >> 8); + GX_WRITE_RAS_REG(fogclr); + gx->bpSentNot = 0; +} + +void GXInitFogAdjTable(GXFogAdjTable *table, u16 width, const f32 projmtx[4][4]) +{ + f32 xi; + f32 iw; + f32 rangeVal; + f32 nearZ; + f32 sideX; + u32 i; + + CHECK_GXBEGIN(0x113, "GXInitFogAdjTable"); + ASSERTMSGLINE(0x114, table != NULL, "GXInitFogAdjTable: table pointer is null"); + ASSERTMSGLINE(0x115, width <= 640, "GXInitFogAdjTable: invalid width value"); + + if (0.0 == projmtx[3][3]) { + nearZ = projmtx[2][3] / (projmtx[2][2] - 1.0f); + sideX = nearZ / projmtx[0][0]; + } + else { + sideX = 1.0f / projmtx[0][0]; + nearZ = 1.73205f * sideX; + } + + iw = 2.0f / width; + for (i = 0; i < 10; i++) { + xi = (i + 1) << 5; + xi *= iw; + xi *= sideX; + rangeVal = sqrtf(1.0f + ((xi * xi) / (nearZ * nearZ))); + table->r[i] = (u32)(256.0f * rangeVal) & 0xFFF; + } +} + +void GXSetFogRangeAdj(GXBool enable, u16 center, const GXFogAdjTable *table) +{ + u32 i; + u32 range_adj; + u32 range_c; + + CHECK_GXBEGIN(0x14B, "GXSetFogRangeAdj"); + + if (enable) { + ASSERTMSGLINE(0x14E, table != NULL, "GXSetFogRangeAdj: table pointer is null"); + for (i = 0; i < 10; i += 2) { + range_adj = 0; + SET_REG_FIELD(0x152, range_adj, 12, 0, table->r[i]); + SET_REG_FIELD(0x153, range_adj, 12, 12, table->r[i + 1]); + SET_REG_FIELD(0x154, range_adj, 8, 24, (i >> 1) + 0xE9); + GX_WRITE_RAS_REG(range_adj); + } + } + range_c = 0; + SET_REG_FIELD(0x15A, range_c, 10, 0, center + 342); + SET_REG_FIELD(0x15B, range_c, 1, 10, enable); + SET_REG_FIELD(0x15C, range_c, 8, 24, 0xE8); + GX_WRITE_RAS_REG(range_c); + gx->bpSentNot = 0; +} + +void GXSetBlendMode(GXBlendMode type, GXBlendFactor src_factor, GXBlendFactor dst_factor, GXLogicOp op) +{ + CHECK_GXBEGIN(0x177, "GXSetBlendMode"); + + SET_REG_FIELD(0x135, gx->cmode0, 1, 0, (type == GX_BM_BLEND || type == GX_BM_SUBTRACT)); + SET_REG_FIELD(0x136, gx->cmode0, 1, 11, (type == GX_BM_SUBTRACT)); + SET_REG_FIELD(0x138, gx->cmode0, 1, 1, (type == GX_BM_LOGIC)); + SET_REG_FIELD(0x139, gx->cmode0, 4, 12, op); + SET_REG_FIELD(0x13A, gx->cmode0, 3, 8, src_factor); + SET_REG_FIELD(0x13B, gx->cmode0, 3, 5, dst_factor); + SET_REG_FIELD(0x13C, gx->cmode0, 8, 24, 0x41); + GX_WRITE_RAS_REG(gx->cmode0); + gx->bpSentNot = 0; +} + +void GXSetColorUpdate(GXBool update_enable) +{ + CHECK_GXBEGIN(0x1A3, "GXSetColorUpdate"); + + SET_REG_FIELD(0x150, gx->cmode0, 1, 3, update_enable); + GX_WRITE_RAS_REG(gx->cmode0); + gx->bpSentNot = 0; +} + +void GXSetAlphaUpdate(GXBool update_enable) +{ + CHECK_GXBEGIN(0x1B0, "GXSetAlphaUpdate"); + + SET_REG_FIELD(0x159, gx->cmode0, 1, 4, update_enable); + GX_WRITE_RAS_REG(gx->cmode0); + gx->bpSentNot = 0; +} + +void GXSetZMode(GXBool compare_enable, GXCompare func, GXBool update_enable) +{ + CHECK_GXBEGIN(0x1CB, "GXSetZMode"); + + SET_REG_FIELD(0x171, gx->zmode, 1, 0, compare_enable); + SET_REG_FIELD(0x172, gx->zmode, 3, 1, func); + SET_REG_FIELD(0x173, gx->zmode, 1, 4, update_enable); + GX_WRITE_RAS_REG(gx->zmode); + gx->bpSentNot = 0; +} + +void GXSetZCompLoc(GXBool before_tex) +{ + CHECK_GXBEGIN(0x1DA, "GXSetZCompLoc"); + + SET_REG_FIELD(0x1DB, gx->peCtrl, 1, 6, before_tex); + GX_WRITE_RAS_REG(gx->peCtrl); + gx->bpSentNot = 0; +} + +void GXSetPixelFmt(GXPixelFmt pix_fmt, GXZFmt16 z_fmt) +{ + u32 oldPeCtrl; + u8 aa; + static u32 p2f[8] = { 0, 1, 2, 3, 4, 4, 4, 5 }; + + CHECK_GXBEGIN(0x1FF, "GXSetPixelFmt"); + oldPeCtrl = gx->peCtrl; + ASSERTMSGLINE(0x203, pix_fmt >= 0 && pix_fmt <= 7, "Invalid Pixel format"); + SET_REG_FIELD(0x205, gx->peCtrl, 3, 0, p2f[pix_fmt]); + SET_REG_FIELD(0x206, gx->peCtrl, 3, 3, z_fmt); + if (oldPeCtrl != gx->peCtrl) { + GX_WRITE_RAS_REG(gx->peCtrl); + if (pix_fmt == GX_PF_RGB565_Z16) + aa = 1; + else + aa = 0; + SET_REG_FIELD(0x20F, gx->genMode, 1, 9, aa); + gx->dirtyState |= 4; + } + if (p2f[pix_fmt] == 4) { + SET_REG_FIELD(0x216, gx->cmode1, 2, 9, (pix_fmt - 4) & 0x3); + SET_REG_FIELD(0x216, gx->cmode1, 8, 24, 0x42); + GX_WRITE_RAS_REG(gx->cmode1); + } + gx->bpSentNot = 0; +} + +void GXSetDither(GXBool dither) +{ + CHECK_GXBEGIN(0x22C, "GXSetDither"); + + SET_REG_FIELD(0x1CE, gx->cmode0, 1, 2, dither); + GX_WRITE_RAS_REG(gx->cmode0); + gx->bpSentNot = 0; +} + +void GXSetDstAlpha(GXBool enable, u8 alpha) +{ + CHECK_GXBEGIN(0x245, "GXSetDstAlpha"); + + SET_REG_FIELD(0x1E2, gx->cmode1, 8, 0, alpha); + SET_REG_FIELD(0x1E3, gx->cmode1, 1, 8, enable); + GX_WRITE_RAS_REG(gx->cmode1); + gx->bpSentNot = 0; +} + +void GXSetFieldMask(GXBool odd_mask, GXBool even_mask) +{ + u32 reg; + + CHECK_GXBEGIN(0x260, "GXSetFieldMask"); + reg = 0; + SET_REG_FIELD(0x262, reg, 1, 0, even_mask); + SET_REG_FIELD(0x263, reg, 1, 1, odd_mask); + SET_REG_FIELD(0x263, reg, 8, 24, 0x44); + GX_WRITE_RAS_REG(reg); + gx->bpSentNot = 0; +} + +void GXSetFieldMode(GXBool field_mode, GXBool half_aspect_ratio) +{ + u32 reg; + + CHECK_GXBEGIN(0x27D, "GXSetFieldMode"); + SET_REG_FIELD(0x281, gx->lpSize, 1, 22, half_aspect_ratio); + GX_WRITE_RAS_REG(gx->lpSize); + __GXFlushTextureState(); + reg = field_mode | 0x68000000; + GX_WRITE_RAS_REG(reg); + __GXFlushTextureState(); +} diff --git a/src/dolphin/gx/GXStubs.c b/src/dolphin/gx/GXStubs.c new file mode 100644 index 00000000..85f05a89 --- /dev/null +++ b/src/dolphin/gx/GXStubs.c @@ -0,0 +1,5 @@ +#include + +#include + +void __GXSetRange(float nearz, float fgSideX) {} diff --git a/src/dolphin/gx/GXTev.c b/src/dolphin/gx/GXTev.c new file mode 100644 index 00000000..c2f6d67a --- /dev/null +++ b/src/dolphin/gx/GXTev.c @@ -0,0 +1,403 @@ +#include +#include + +#include + +void GXSetTevOp(GXTevStageID id, GXTevMode mode) +{ + GXTevColorArg carg = GX_CC_RASC; + GXTevAlphaArg aarg = GX_CA_RASA; + + CHECK_GXBEGIN(0x1A4, "GXSetTevOp"); + ASSERTMSGLINE(0x1A5, id < 16, "GXSetTevColor*: Invalid Tev Stage Index"); + ASSERTMSGLINE(0x1A6, mode <= 4, "GXSetTevOp: Invalid Tev Mode"); + + if (id != GX_TEVSTAGE0) { + carg = GX_CC_CPREV; + aarg = GX_CA_APREV; + } + + switch (mode) { + case GX_MODULATE: + GXSetTevColorIn(id, GX_CC_ZERO, GX_CC_TEXC, carg, GX_CC_ZERO); + GXSetTevAlphaIn(id, GX_CA_ZERO, GX_CA_TEXA, aarg, GX_CA_ZERO); + break; + case GX_DECAL: + GXSetTevColorIn(id, carg, GX_CC_TEXC, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevAlphaIn(id, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, aarg); + break; + case GX_BLEND: + GXSetTevColorIn(id, carg, GX_CC_ONE, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevAlphaIn(id, GX_CA_ZERO, GX_CA_TEXA, aarg, GX_CA_ZERO); + break; + case GX_REPLACE: + GXSetTevColorIn(id, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevAlphaIn(id, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + break; + case GX_PASSCLR: + GXSetTevColorIn(id, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, carg); + GXSetTevAlphaIn(id, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, aarg); + break; + } + GXSetTevColorOp(id, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaOp(id, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); +} + +void GXSetTevColorIn(GXTevStageID stage, GXTevColorArg a, GXTevColorArg b, GXTevColorArg c, GXTevColorArg d) +{ + u32 *pTevReg; + + CHECK_GXBEGIN(0x242, "GXSetTevColorIn"); + ASSERTMSGLINE(0x243, stage < 16, "GXSetTevColor*: Invalid Tev Stage Index"); + ASSERTMSGLINE(0x244, a <= 15, "GXSetTev*In: A/B/C/D argument out of range"); + ASSERTMSGLINE(0x245, b <= 15, "GXSetTev*In: A/B/C/D argument out of range"); + ASSERTMSGLINE(0x246, c <= 15, "GXSetTev*In: A/B/C/D argument out of range"); + ASSERTMSGLINE(0x247, d <= 15, "GXSetTev*In: A/B/C/D argument out of range"); + + pTevReg = &gx->tevc[stage]; + SET_REG_FIELD(0xED, *pTevReg, 4, 12, a); + SET_REG_FIELD(0xEE, *pTevReg, 4, 8, b); + SET_REG_FIELD(0xEF, *pTevReg, 4, 4, c); + SET_REG_FIELD(0xF0, *pTevReg, 4, 0, d); + + GX_WRITE_RAS_REG(*pTevReg); + gx->bpSentNot = 0; +} + +void GXSetTevAlphaIn(GXTevStageID stage, GXTevAlphaArg a, GXTevAlphaArg b, GXTevAlphaArg c, GXTevAlphaArg d) +{ + u32 *pTevReg; + + CHECK_GXBEGIN(0x266, "GXSetTevAlphaIn"); + ASSERTMSGLINE(0x267, stage < 16, "GXSetTevAlpha*: Invalid Tev Stage Index"); + ASSERTMSGLINE(0x268, a <= 7, "GXSetTev*In: A/B/C/D argument out of range"); + ASSERTMSGLINE(0x269, b <= 7, "GXSetTev*In: A/B/C/D argument out of range"); + ASSERTMSGLINE(0x26A, c <= 7, "GXSetTev*In: A/B/C/D argument out of range"); + ASSERTMSGLINE(0x26B, d <= 7, "GXSetTev*In: A/B/C/D argument out of range"); + + pTevReg = &gx->teva[stage]; + SET_REG_FIELD(0x110, *pTevReg, 3, 13, a); + SET_REG_FIELD(0x111, *pTevReg, 3, 10, b); + SET_REG_FIELD(0x112, *pTevReg, 3, 7, c); + SET_REG_FIELD(0x113, *pTevReg, 3, 4, d); + + GX_WRITE_RAS_REG(*pTevReg); + gx->bpSentNot = 0; +} + +void GXSetTevColorOp(GXTevStageID stage, GXTevOp op, GXTevBias bias, GXTevScale scale, GXBool clamp, GXTevRegID out_reg) +{ + u32 *pTevReg; + + CHECK_GXBEGIN(0x28D, "GXSetTevColorOp"); + ASSERTMSGLINE(0x28E, stage < 16, "GXSetTevColor*: Invalid Tev Stage Index"); + + pTevReg = &gx->tevc[stage]; + SET_REG_FIELD(0x137, *pTevReg, 1, 18, op & 1); + if (op <= 1) { + SET_REG_FIELD(0x139, *pTevReg, 2, 20, scale); + SET_REG_FIELD(0x13A, *pTevReg, 2, 16, bias); + } + else { + SET_REG_FIELD(0x13C, *pTevReg, 2, 20, (op >> 1) & 3); + SET_REG_FIELD(0x13D, *pTevReg, 2, 16, 3); + } + SET_REG_FIELD(0x140, *pTevReg, 1, 19, clamp & 0xFF); + SET_REG_FIELD(0x141, *pTevReg, 2, 22, out_reg); + + GX_WRITE_RAS_REG(*pTevReg); + gx->bpSentNot = 0; +} + +void GXSetTevAlphaOp(GXTevStageID stage, GXTevOp op, GXTevBias bias, GXTevScale scale, GXBool clamp, GXTevRegID out_reg) +{ + u32 *pTevReg; + + CHECK_GXBEGIN(0x2BB, "GXSetTevAlphaOp"); + ASSERTMSGLINE(0x2BC, stage < 16, "GXSetTevAlpha*: Invalid Tev Stage Index"); + + pTevReg = &gx->teva[stage]; + SET_REG_FIELD(0x163, *pTevReg, 1, 18, op & 1); + if (op <= 1) { + SET_REG_FIELD(0x165, *pTevReg, 2, 20, scale); + SET_REG_FIELD(0x166, *pTevReg, 2, 16, bias); + } + else { + SET_REG_FIELD(0x168, *pTevReg, 2, 20, (op >> 1) & 3); + SET_REG_FIELD(0x169, *pTevReg, 2, 16, 3); + } + SET_REG_FIELD(0x16C, *pTevReg, 1, 19, clamp & 0xFF); + SET_REG_FIELD(0x16D, *pTevReg, 2, 22, out_reg); + + GX_WRITE_RAS_REG(*pTevReg); + gx->bpSentNot = 0; +} + +void GXSetTevColor(GXTevRegID id, GXColor color) +{ + u32 regRA; + u32 regBG; + + CHECK_GXBEGIN(0x2E4, "GXSetTevColor"); + regRA = 0; + SET_REG_FIELD(0x185, regRA, 11, 0, color.r); + SET_REG_FIELD(0x186, regRA, 11, 12, color.a); + SET_REG_FIELD(0x187, regRA, 8, 24, 224 + id * 2); + + regBG = 0; + SET_REG_FIELD(0x18A, regBG, 11, 0, color.b); + SET_REG_FIELD(0x18B, regBG, 11, 12, color.g); + SET_REG_FIELD(0x18C, regBG, 8, 24, 225 + id * 2); + + GX_WRITE_RAS_REG(regRA); + GX_WRITE_RAS_REG(regBG); + GX_WRITE_RAS_REG(regBG); + GX_WRITE_RAS_REG(regBG); + gx->bpSentNot = 0; +} + +void GXSetTevColorS10(GXTevRegID id, GXColorS10 color) +{ + u32 regRA; + u32 regBG; + + ASSERTMSGLINE(0x309, color.r >= -1024 && color.r < 1024, "GXSetTevColorS10: Color not in range -1024 to +1023"); + ASSERTMSGLINE(0x30A, color.g >= -1024 && color.g < 1024, "GXSetTevColorS10: Color not in range -1024 to +1023"); + ASSERTMSGLINE(0x30B, color.b >= -1024 && color.b < 1024, "GXSetTevColorS10: Color not in range -1024 to +1023"); + ASSERTMSGLINE(0x30C, color.a >= -1024 && color.a < 1024, "GXSetTevColorS10: Color not in range -1024 to +1023"); + + CHECK_GXBEGIN(0x30E, "GXSetTevColorS10"); + regRA = 0; + SET_REG_FIELD(0x1AF, regRA, 11, 0, color.r & 0x7FF); + SET_REG_FIELD(0x1B0, regRA, 11, 12, color.a & 0x7FF); + SET_REG_FIELD(0x1B1, regRA, 8, 24, 224 + id * 2); + + regBG = 0; + SET_REG_FIELD(0x1B4, regBG, 11, 0, color.b & 0x7FF); + SET_REG_FIELD(0x1B5, regBG, 11, 12, color.g & 0x7FF); + SET_REG_FIELD(0x1B6, regBG, 8, 24, 225 + id * 2); + + GX_WRITE_RAS_REG(regRA); + GX_WRITE_RAS_REG(regBG); + GX_WRITE_RAS_REG(regBG); + GX_WRITE_RAS_REG(regBG); + gx->bpSentNot = 0; +} + +void GXSetTevKColor(GXTevKColorID id, GXColor color) +{ + u32 regRA; + u32 regBG; + + CHECK_GXBEGIN(0x341, "GXSetTevKColor"); + regRA = 0; + SET_REG_FIELD(0x1E0, regRA, 8, 0, color.r); + SET_REG_FIELD(0x1E1, regRA, 8, 12, color.a); + SET_REG_FIELD(0x1E2, regRA, 4, 20, 8); + SET_REG_FIELD(0x1E3, regRA, 8, 24, 224 + id * 2); + + regBG = 0; + SET_REG_FIELD(0x1E6, regBG, 8, 0, color.b); + SET_REG_FIELD(0x1E7, regBG, 8, 12, color.g); + SET_REG_FIELD(0x1E8, regBG, 4, 20, 8); + SET_REG_FIELD(0x1E9, regBG, 8, 24, 225 + id * 2); + + GX_WRITE_RAS_REG(regRA); + GX_WRITE_RAS_REG(regBG); + gx->bpSentNot = 0; +} + +void GXSetTevKColorSel(GXTevStageID stage, GXTevKColorSel sel) +{ + u32 *Kreg; + + CHECK_GXBEGIN(0x368, "GXSetTevKColorSel"); + ASSERTMSGLINE(0x369, stage < 16, "GXSetTevKColor*: Invalid Tev Stage Index"); + + Kreg = &gx->tevKsel[stage >> 1]; + if (stage & 1) { + SET_REG_FIELD(0x20A, *Kreg, 5, 14, sel); + } + else { + SET_REG_FIELD(0x20C, *Kreg, 5, 4, sel); + } + + GX_WRITE_RAS_REG(*Kreg); + gx->bpSentNot = 0; +} + +void GXSetTevKAlphaSel(GXTevStageID stage, GXTevKAlphaSel sel) +{ + u32 *Kreg; + + CHECK_GXBEGIN(0x389, "GXSetTevKAlphaSel"); + ASSERTMSGLINE(0x38A, stage < 16, "GXSetTevKColor*: Invalid Tev Stage Index"); + + Kreg = &gx->tevKsel[stage >> 1]; + if (stage & 1) { + SET_REG_FIELD(0x22B, *Kreg, 5, 19, sel); + } + else { + SET_REG_FIELD(0x22D, *Kreg, 5, 9, sel); + } + + GX_WRITE_RAS_REG(*Kreg); + gx->bpSentNot = 0; +} + +void GXSetTevSwapMode(GXTevStageID stage, GXTevSwapSel ras_sel, GXTevSwapSel tex_sel) +{ + u32 *pTevReg; + + CHECK_GXBEGIN(0x3AE, "GXSetTevSwapMode"); + ASSERTMSGLINE(0x3AF, stage < 16, "GXSetTevSwapMode: Invalid Tev Stage Index"); + + pTevReg = &gx->teva[stage]; + SET_REG_FIELD(0x24E, *pTevReg, 2, 0, ras_sel); + SET_REG_FIELD(0x24F, *pTevReg, 2, 2, tex_sel); + + GX_WRITE_RAS_REG(*pTevReg); + gx->bpSentNot = 0; +} + +void GXSetTevSwapModeTable(GXTevSwapSel table, GXTevColorChan red, GXTevColorChan green, GXTevColorChan blue, GXTevColorChan alpha) +{ + u32 *Kreg; +#if !DEBUG + // not a real variable, but needed to match release + int index = table * 2; +#endif + + CHECK_GXBEGIN(0x3D2, "GXSetTevSwapModeTable"); + ASSERTMSGLINE(0x3D3, table < 4, "GXSetTevSwapModeTable: Invalid Swap Selection Index"); + +#if DEBUG + Kreg = &gx->tevKsel[table * 2]; +#else + Kreg = &gx->tevKsel[index]; +#endif + SET_REG_FIELD(0x272, *Kreg, 2, 0, red); + SET_REG_FIELD(0x273, *Kreg, 2, 2, green); + + GX_WRITE_RAS_REG(*Kreg); + + Kreg = &gx->tevKsel[table * 2 + 1]; + SET_REG_FIELD(0x277, *Kreg, 2, 0, blue); + SET_REG_FIELD(0x278, *Kreg, 2, 2, alpha); + + GX_WRITE_RAS_REG(*Kreg); + gx->bpSentNot = 0; +} + +void GXSetTevClampMode(void) +{ + ASSERTMSGLINE(0x3F4, 0, "GXSetTevClampMode: not available on this hardware"); +} + +void GXSetAlphaCompare(GXCompare comp0, u8 ref0, GXAlphaOp op, GXCompare comp1, u8 ref1) +{ + u32 reg = 0; + + CHECK_GXBEGIN(0x416, "GXSetAlphaCompare"); + SET_REG_FIELD(0x2B4, reg, 8, 0, ref0); + SET_REG_FIELD(0x2B5, reg, 8, 8, ref1); + SET_REG_FIELD(0x2B6, reg, 3, 16, comp0); + SET_REG_FIELD(0x2B7, reg, 3, 19, comp1); + SET_REG_FIELD(0x2B8, reg, 2, 22, op); + SET_REG_FIELD(0x2B9, reg, 8, 24, 0xF3); + + GX_WRITE_RAS_REG(reg); + gx->bpSentNot = 0; +} + +void GXSetZTexture(GXZTexOp op, GXTexFmt fmt, u32 bias) +{ + u32 zenv0; + u32 zenv1; + u32 type; + + CHECK_GXBEGIN(0x435, "GXSetZTexture"); + + zenv0 = 0; + SET_REG_FIELD(0x2D4, zenv0, 24, 0, bias); + SET_REG_FIELD(0x2D5, zenv0, 8, 24, 0xF4); + + zenv1 = 0; + switch (fmt) { + case GX_TF_Z8: + type = 0; + break; + case GX_TF_Z16: + type = 1; + break; + case GX_TF_Z24X8: + type = 2; + break; + default: + ASSERTMSGLINE(0x441, 0, "GXSetZTexture: Invalid z-texture format"); + type = 2; + break; + } + SET_REG_FIELD(0x2E0, zenv1, 2, 0, type); + SET_REG_FIELD(0x2E1, zenv1, 2, 2, op); + SET_REG_FIELD(0x2E2, zenv1, 8, 24, 0xF5); + + GX_WRITE_RAS_REG(zenv0); + GX_WRITE_RAS_REG(zenv1); + gx->bpSentNot = 0; +} + +void GXSetTevOrder(GXTevStageID stage, GXTexCoordID coord, GXTexMapID map, GXChannelID color) +{ + u32 *ptref; + u32 tmap; + u32 tcoord; + static int c2r[] = { 0, 1, 0, 1, 0, 1, 7, 5, 6 }; + + CHECK_GXBEGIN(0x46B, "GXSetTevOrder"); + ASSERTMSGLINE(0x46C, stage < 16, "GXSetTevOrder: Invalid Tev Stage Index"); + ASSERTMSGLINE(0x46E, coord < 8 || coord == 0xFF, "GXSetTevOrder: Invalid Texcoord"); + ASSERTMSGLINE(0x470, (map & ~0x100) < 8 || map == 0xFF, "GXSetTevOrder: Invalid Tex Map"); + ASSERTMSGLINE(0x472, color >= 4 && color <= 0xFF, "GXSetTevOrder: Invalid Color Channel ID"); + + ptref = &gx->tref[stage / 2]; + gx->texmapId[stage] = map; + + tmap = map & ~0x100; + tmap = (tmap >= GX_MAX_TEXMAP) ? GX_TEXMAP0 : tmap; + + if (coord >= GX_MAX_TEXCOORD) { + tcoord = GX_TEXCOORD0; + gx->tevTcEnab = gx->tevTcEnab & ~(1 << stage); + } + else { + tcoord = coord; + gx->tevTcEnab = gx->tevTcEnab | (1 << stage); + } + + if (stage & 1) { + SET_REG_FIELD(0x486, *ptref, 3, 12, tmap); + SET_REG_FIELD(0x487, *ptref, 3, 15, tcoord); + SET_REG_FIELD(0x489, *ptref, 3, 19, (color == GX_COLOR_NULL) ? 7 : c2r[color]); + SET_REG_FIELD(0x48B, *ptref, 1, 18, (map != GX_TEXMAP_NULL && !(map & 0x100))); + } + else { + SET_REG_FIELD(0x48E, *ptref, 3, 0, tmap); + SET_REG_FIELD(0x48F, *ptref, 3, 3, tcoord); + SET_REG_FIELD(0x491, *ptref, 3, 7, (color == GX_COLOR_NULL) ? 7 : c2r[color]); + SET_REG_FIELD(0x493, *ptref, 1, 6, (map != GX_TEXMAP_NULL && !(map & 0x100))); + } + + GX_WRITE_RAS_REG(*ptref); + gx->bpSentNot = 0; + gx->dirtyState |= 1; +} + +void GXSetNumTevStages(u8 nStages) +{ + CHECK_GXBEGIN(0x4A3, "GXSetNumTevStages"); + + ASSERTMSGLINE(0x4A5, nStages != 0 && nStages <= 16, "GXSetNumTevStages: Exceed max number of tex stages"); + SET_REG_FIELD(0x334, gx->genMode, 4, 10, nStages - 1); + gx->dirtyState |= 4; +} diff --git a/src/dolphin/gx/GXTexture.c b/src/dolphin/gx/GXTexture.c new file mode 100644 index 00000000..ec67f795 --- /dev/null +++ b/src/dolphin/gx/GXTexture.c @@ -0,0 +1,1269 @@ +#include +#include + +#include + +// GXTexObj internal data +typedef struct __GXTexObjInt_struct { + u32 mode0; + u32 mode1; + u32 image0; + u32 image3; + void *userData; + GXTexFmt fmt; + u32 tlutName; + u16 loadCnt; + u8 loadFmt; + u8 flags; +} __GXTexObjInt; + +// GXTexRegion internal data +typedef struct __GXTexRegionInt_struct { + u32 image1; + u32 image2; + u16 sizeEven; + u16 sizeOdd; + u8 is32bMipmap; + u8 isCached; +} __GXTexRegionInt; + +// GXTlutObj internal data +typedef struct __GXTlutObjInt_struct { + u32 tlut; + u32 loadTlut0; + u16 numEntries; +} __GXTlutObjInt; + +// GXTlutRegion internal data +typedef struct __GXTlutRegionInt_struct { + u32 loadTlut1; + __GXTlutObjInt tlutObj; +} __GXTlutRegionInt; + +u8 GXTexMode0Ids[8] = { 0x80, 0x81, 0x82, 0x83, 0xA0, 0xA1, 0xA2, 0xA3 }; +u8 GXTexMode1Ids[8] = { 0x84, 0x85, 0x86, 0x87, 0xA4, 0xA5, 0xA6, 0xA7 }; +u8 GXTexImage0Ids[8] = { 0x88, 0x89, 0x8A, 0x8B, 0xA8, 0xA9, 0xAA, 0xAB }; +u8 GXTexImage1Ids[8] = { 0x8C, 0x8D, 0x8E, 0x8F, 0xAC, 0xAD, 0xAE, 0xAF }; +u8 GXTexImage2Ids[8] = { 0x90, 0x91, 0x92, 0x93, 0xB0, 0xB1, 0xB2, 0xB3 }; +u8 GXTexImage3Ids[8] = { 0x94, 0x95, 0x96, 0x97, 0xB4, 0xB5, 0xB6, 0xB7 }; +u8 GXTexTlutIds[8] = { 0x98, 0x99, 0x9A, 0x9B, 0xB8, 0xB9, 0xBA, 0xBB }; +static u8 GX2HWFiltConv[6] = { 0x00, 0x04, 0x01, 0x05, 0x02, 0x06 }; +static u8 HW2GXFiltConv[8] = { 0x00, 0x02, 0x04, 0x00, 0x01, 0x03, 0x05, 0x00 }; + +static void __GXGetTexTileShift(GXTexFmt fmt, u32 *rowTileS, u32 *colTileS) +{ + switch (fmt) { + case GX_TF_I4: + case 0x8: + case GX_TF_CMPR: + case GX_CTF_R4: + case GX_CTF_Z4: + *rowTileS = 3; + *colTileS = 3; + break; + case GX_TF_I8: + case GX_TF_IA4: + case 0x9: + case GX_TF_Z8: + case GX_CTF_RA4: + case GX_TF_A8: + case GX_CTF_R8: + case GX_CTF_G8: + case GX_CTF_B8: + case GX_CTF_Z8M: + case GX_CTF_Z8L: + *rowTileS = 3; + *colTileS = 2; + break; + case GX_TF_IA8: + case GX_TF_RGB565: + case GX_TF_RGB5A3: + case GX_TF_RGBA8: + case 0xA: + case GX_TF_Z16: + case GX_TF_Z24X8: + case GX_CTF_RA8: + case GX_CTF_RG8: + case GX_CTF_GB8: + case GX_CTF_Z16L: + *rowTileS = 2; + *colTileS = 2; + break; + default: + *rowTileS = *colTileS = 0; + ASSERTMSGLINEV(0x1BC, 0, "%s: invalid texture format", "GX"); + break; + } +} + +u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, u8 mipmap, u8 max_lod) +{ + u32 tileShiftX; + u32 tileShiftY; + u32 tileBytes; + u32 bufferSize; + u32 nx; + u32 ny; + u32 level; + + ASSERTMSGLINEV(0x1CC, width <= 1024, "%s: width too large", "GXGetTexBufferSize"); + ASSERTMSGLINEV(0x1CD, height <= 1024, "%s: height too large", "GXGetTexBufferSize"); + + __GXGetTexTileShift(format, &tileShiftX, &tileShiftY); + if (format == GX_TF_RGBA8 || format == GX_TF_Z24X8) { + tileBytes = 64; + } + else { + tileBytes = 32; + } + if (mipmap == 1) { + nx = 1 << (31 - __cntlzw(width)); + ASSERTMSGLINEV(0x1DF, width == nx, "%s: width must be a power of 2", "GXGetTexBufferSize"); + ny = 1 << (31 - __cntlzw(height)); + ASSERTMSGLINEV(0x1E2, height == ny, "%s: height must be a power of 2", "GXGetTexBufferSize"); + + bufferSize = 0; + for (level = 0; level < max_lod; level++) { + nx = (width + (1 << tileShiftX) - 1) >> tileShiftX; + ny = (height + (1 << tileShiftY) - 1) >> tileShiftY; + bufferSize += tileBytes * (nx * ny); + if (width == 1 && height == 1) { + break; + } + width = (width > 1) ? width >> 1 : 1; + height = (height > 1) ? height >> 1 : 1; + } + } + else { + nx = (width + (1 << tileShiftX) - 1) >> tileShiftX; + ny = (height + (1 << tileShiftY) - 1) >> tileShiftY; + bufferSize = nx * ny * tileBytes; + } + return bufferSize; +} + +void __GetImageTileCount(GXTexFmt fmt, u16 wd, u16 ht, u32 *rowTiles, u32 *colTiles, u32 *cmpTiles) +{ + u32 texRowShift; + u32 texColShift; + + __GXGetTexTileShift(fmt, &texRowShift, &texColShift); + if (wd == 0) { + wd = 1; + } + if (ht == 0) { + ht = 1; + } + *rowTiles = (wd + (1 << texRowShift) - 1) >> texRowShift; + *colTiles = (ht + (1 << texColShift) - 1) >> texColShift; + *cmpTiles = (fmt == GX_TF_RGBA8 || fmt == GX_TF_Z24X8) ? 2 : 1; +} + +#define SOME_SET_REG_MACRO(reg, val) \ + do { \ + (reg) = (u32)__rlwinm((u32)(reg), 0, 27, 23) | val; \ + } while (0); + +void GXInitTexObj(GXTexObj *obj, void *image_ptr, u16 width, u16 height, GXTexFmt format, GXTexWrapMode wrap_s, GXTexWrapMode wrap_t, u8 mipmap) +{ + u32 imageBase; + u32 maxLOD; + u16 rowT; + u16 colT; + u32 rowC; + u32 colC; + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x235, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x237, "GXInitTexObj"); + ASSERTMSGLINEV(0x238, width <= 1024, "%s: width too large", "GXInitTexObj"); + ASSERTMSGLINEV(0x239, height <= 1024, "%s: height too large", "GXInitTexObj"); + ASSERTMSGLINEV(0x23B, !(format & 0x20), "%s: invalid texture format", "GXInitTexObj"); + memset(t, 0, 0x20); + SET_REG_FIELD(0x258, t->mode0, 2, 0, wrap_s); + SET_REG_FIELD(0x259, t->mode0, 2, 2, wrap_t); + SET_REG_FIELD(0x25A, t->mode0, 1, 4, 1); + if (mipmap != 0) { + u8 lmax; + t->flags |= 1; + + if (format == 8 || format == 9 || format == 10) { + SOME_SET_REG_MACRO(t->mode0, 0xa0); + } + else { + SOME_SET_REG_MACRO(t->mode0, 0xc0); + } + + if (width > height) { + maxLOD = 31 - __cntlzw(width); + } + else { + maxLOD = 31 - __cntlzw(height); + } + lmax = 16.0f * maxLOD; + SET_REG_FIELD(0x278, t->mode1, 8, 8, lmax); + } + else { + SOME_SET_REG_MACRO(t->mode0, 0x80); + } + t->fmt = format; + SET_REG_FIELD(0x286, t->image0, 10, 0, width - 1); + SET_REG_FIELD(0x287, t->image0, 10, 10, height - 1); + SET_REG_FIELD(0x288, t->image0, 4, 20, format & 0xF); + ASSERTMSGLINEV(0x28E, ((u32)image_ptr & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTexObj", "image"); + imageBase = (u32)((u32)image_ptr >> 5) & 0x01FFFFFF; + SET_REG_FIELD(0x290, t->image3, 21, 0, imageBase); + switch (format & 0xF) { + case 0: + case 8: + t->loadFmt = 1; + rowT = 3; + colT = 3; + break; + case 1: + case 2: + case 9: + t->loadFmt = 2; + rowT = 3; + colT = 2; + break; + case 3: + case 4: + case 5: + case 10: + t->loadFmt = 2; + rowT = 2; + colT = 2; + break; + case 6: + t->loadFmt = 3; + rowT = 2; + colT = 2; + break; + case 14: + t->loadFmt = 0; + rowT = 3; + colT = 3; + break; + default: + ASSERTMSGLINEV(0x2BB, 0, "%s: invalid texture format", "GXPreLoadEntireTexture"); + t->loadFmt = 2; + rowT = 2; + colT = 2; + break; + } + rowC = (width + (1 << rowT) - 1) >> rowT; + colC = (height + (1 << colT) - 1) >> colT; + t->loadCnt = (rowC * colC) & 0x7FFF; + t->flags |= 2; +} + +void GXInitTexObjCI( + GXTexObj *obj, void *image_ptr, u16 width, u16 height, GXCITexFmt format, GXTexWrapMode wrap_s, GXTexWrapMode wrap_t, u8 mipmap, u32 tlut_name) +{ + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x2E1, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x2E3, "GXInitTexObjCI"); + GXInitTexObj(obj, image_ptr, width, height, format, wrap_s, wrap_t, mipmap); + t->flags &= 0xFFFFFFFD; + t->tlutName = tlut_name; +} + +void GXInitTexObjLOD(GXTexObj *obj, GXTexFilter min_filt, GXTexFilter mag_filt, f32 min_lod, f32 max_lod, f32 lod_bias, u8 bias_clamp, u8 do_edge_lod, + GXAnisotropy max_aniso) +{ + u8 lbias; + u8 lmin; + u8 lmax; + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x308, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x30A, "GXInitTexObjLOD"); + + if (lod_bias < -4.0f) { + lod_bias = -4.0f; + } + else if (lod_bias >= 4.0f) { + lod_bias = 3.99f; + } + lbias = 32.0f * lod_bias; + SET_REG_FIELD(0x314, t->mode0, 8, 9, lbias); + ASSERTMSG1LINE(0x317, (u32)mag_filt <= 1, "%s: invalid mag_filt value", "GXInitTexObjLOD"); + SET_REG_FIELD(0x318, t->mode0, 1, 4, (mag_filt == GX_LINEAR) ? 1 : 0); + ASSERTMSG1LINE(0x31B, (u32)min_filt <= 5, "%s: invalid min_filt value", "GXInitTexObjLOD"); + SET_REG_FIELD(0x31C, t->mode0, 3, 5, GX2HWFiltConv[min_filt]); + SET_REG_FIELD(0x31E, t->mode0, 1, 8, do_edge_lod ? 0 : 1); + SET_REG_FIELD(0x321, t->mode0, 1, 17, 0); + SET_REG_FIELD(0x321, t->mode0, 1, 18, 0); + SET_REG_FIELD(0x321, t->mode0, 2, 19, max_aniso); + SET_REG_FIELD(0x322, t->mode0, 1, 21, bias_clamp); + + if (min_lod < 0.0f) { + min_lod = 0.0f; + } + else if (min_lod > 10.0f) { + min_lod = 10.0f; + } + lmin = 16.0f * min_lod; + if (max_lod < 0.0f) { + max_lod = 0.0f; + } + else if (max_lod > 10.0f) { + max_lod = 10.0f; + } + lmax = 16.0f * max_lod; + SET_REG_FIELD(0x330, t->mode1, 8, 0, lmin); + SET_REG_FIELD(0x331, t->mode1, 8, 8, lmax); +} + +void GXInitTexObjData(GXTexObj *obj, void *image_ptr) +{ + u32 imageBase; + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x343, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x345, "GXInitTexObjData"); + ASSERTMSGLINEV(0x348, ((u32)image_ptr & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTexObjData", "image"); + imageBase = ((u32)image_ptr >> 5) & 0x01FFFFFF; + SET_REG_FIELD(0x34B, t->image3, 21, 0, imageBase); +} + +void GXInitTexObjWrapMode(GXTexObj *obj, GXTexWrapMode sm, GXTexWrapMode tm) +{ + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x35C, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x35E, "GXInitTexObjWrapMode"); + SET_REG_FIELD(0x360, t->mode0, 2, 0, sm); + SET_REG_FIELD(0x361, t->mode0, 2, 2, tm); +} + +void GXInitTexObjTlut(GXTexObj *obj, u32 tlut_name) +{ + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x371, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x373, "GXInitTexObjTlut"); + t->tlutName = tlut_name; +} + +void GXInitTexObjFilter(GXTexObj *obj, GXTexFilter min_filt, GXTexFilter mag_filt) +{ + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x386, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x388, "GXInitTexObjFilter"); + + ASSERTMSG1LINE(0x38B, (u32)mag_filt <= 1, "%s: invalid mag_filt value", "GXInitTexObjFilter"); + SET_REG_FIELD(0x38C, t->mode0, 1, 4, mag_filt == 1 ? 1 : 0); + + ASSERTMSG1LINE(0x38F, (u32)min_filt <= 5, "%s: invalid min_filt value", "GXInitTexObjFilter"); + SET_REG_FIELD(0x390, t->mode0, 3, 5, GX2HWFiltConv[min_filt]); +} + +void GXInitTexObjMaxLOD(GXTexObj *obj, f32 max_lod) +{ + u8 lmax; + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x3A2, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x3A4, "GXInitTexObjMaxLOD"); + + if (max_lod < 0.0f) { + max_lod = 0.0f; + } + else if (max_lod > 10.0f) { + max_lod = 10.0f; + } + lmax = 16.0f * max_lod; + SET_REG_FIELD(0x3AA, t->mode1, 8, 8, lmax); +} + +void GXInitTexObjMinLOD(GXTexObj *obj, f32 min_lod) +{ + u8 lmin; + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x3BC, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x3BE, "GXInitTexObjMinLOD"); + + if (min_lod < 0.0f) { + min_lod = 0.0f; + } + else if (min_lod > 10.0f) { + min_lod = 10.0f; + } + lmin = 16.0f * min_lod; + SET_REG_FIELD(0x3C4, t->mode1, 8, 0, lmin); +} + +void GXInitTexObjLODBias(GXTexObj *obj, f32 lod_bias) +{ + u8 lbias; // r30 + __GXTexObjInt *t = (__GXTexObjInt *)obj; // r29 + + ASSERTMSGLINE(0x3D6, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x3D8, "GXInitTexObjLODBias"); + + if (lod_bias < -4.0f) { + lod_bias = -4.0f; + } + else if (lod_bias >= 4.0f) { + lod_bias = 3.99f; + } + lbias = 32.0f * lod_bias; + SET_REG_FIELD(0x3DF, t->mode0, 8, 9, lbias); +} + +void GXInitTexObjBiasClamp(GXTexObj *obj, u8 bias_clamp) +{ + __GXTexObjInt *t = (__GXTexObjInt *)obj; // r30 + + ASSERTMSGLINE(0x3EF, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x3F1, "GXInitTexObjBiasClamp"); + + SET_REG_FIELD(0x3F3, t->mode0, 1, 21, bias_clamp); +} + +void GXInitTexObjEdgeLOD(GXTexObj *obj, u8 do_edge_lod) +{ + __GXTexObjInt *t = (__GXTexObjInt *)obj; // r30 + + ASSERTMSGLINE(0x403, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x405, "GXInitTexObjEdgeLOD"); + + SET_REG_FIELD(0x407, t->mode0, 1, 8, do_edge_lod ? 0 : 1); +} + +void GXInitTexObjMaxAniso(GXTexObj *obj, GXAnisotropy max_aniso) +{ + __GXTexObjInt *t = (__GXTexObjInt *)obj; // r30 + + ASSERTMSGLINE(0x417, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x419, "GXInitTexObjMaxAniso"); + + SET_REG_FIELD(0x41B, t->mode0, 2, 19, max_aniso); +} + +void GXInitTexObjUserData(GXTexObj *obj, void *user_data) +{ + __GXTexObjInt *t = (__GXTexObjInt *)obj; + + ASSERTMSGLINE(0x42C, obj, "Texture Object Pointer is null"); + CHECK_GXBEGIN(0x42D, "GXInitTexObjUserData"); + t->userData = user_data; +} + +void *GXGetTexObjUserData(const GXTexObj *obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)obj; + + ASSERTMSGLINE(0x433, obj, "Texture Object Pointer is null"); + return t->userData; +} + +void GXGetTexObjAll( + const GXTexObj *obj, void **image_ptr, u16 *width, u16 *height, GXTexFmt *format, GXTexWrapMode *wrap_s, GXTexWrapMode *wrap_t, u8 *mipmap) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)obj; + + ASSERTMSGLINE(0x447, obj, "Texture Object Pointer is null"); + *image_ptr = (void *)(GET_REG_FIELD(t->image3, 21, 0) << 5); + *width = (u32)GET_REG_FIELD(t->image0, 10, 0) + 1; + *height = (u32)GET_REG_FIELD(t->image0, 10, 10) + 1; + *format = t->fmt; + *wrap_s = GET_REG_FIELD(t->mode0, 2, 0); + *wrap_t = GET_REG_FIELD(t->mode0, 2, 2); + *mipmap = (t->flags & 1) == 1; +} + +void *GXGetTexObjData(const GXTexObj *to) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)to; + + ASSERTMSGLINE(0x454, to, "Texture Object Pointer is null"); + return (void *)(GET_REG_FIELD(t->image3, 21, 0) << 5); +} + +u16 GXGetTexObjWidth(const GXTexObj *to) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)to; + + ASSERTMSGLINE(0x45A, to, "Texture Object Pointer is null"); + return (u32)GET_REG_FIELD(t->image0, 10, 0) + 1; +} + +u16 GXGetTexObjHeight(const GXTexObj *to) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)to; + + ASSERTMSGLINE(0x460, to, "Texture Object Pointer is null"); + return (u32)GET_REG_FIELD(t->image0, 10, 10) + 1; +} + +GXTexFmt GXGetTexObjFmt(const GXTexObj *to) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)to; + + ASSERTMSGLINE(0x466, to, "Texture Object Pointer is null"); + return t->fmt; +} + +GXTexWrapMode GXGetTexObjWrapS(const GXTexObj *to) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)to; + + ASSERTMSGLINE(0x46C, to, "Texture Object Pointer is null"); + return GET_REG_FIELD(t->mode0, 2, 0); +} + +GXTexWrapMode GXGetTexObjWrapT(const GXTexObj *to) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)to; + + ASSERTMSGLINE(0x472, to, "Texture Object Pointer is null"); + return GET_REG_FIELD(t->mode0, 2, 2); +} + +GXBool GXGetTexObjMipMap(const GXTexObj *to) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)to; + + ASSERTMSGLINE(0x478, to, "Texture Object Pointer is null"); + return (t->flags & 1) == 1; +} + +// NONMATCHING +void GXGetTexObjLODAll(const GXTexObj *tex_obj, GXTexFilter *min_filt, GXTexFilter *mag_filt, f32 *min_lod, f32 *max_lod, f32 *lod_bias, + u8 *bias_clamp, u8 *do_edge_lod, GXAnisotropy *max_aniso) +{ + s16 tmp; // r30 + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x48E, tex_obj, "Texture Object Pointer is null"); + *min_filt = HW2GXFiltConv[GET_REG_FIELD(t->mode0, 3, 5)]; + *mag_filt = GET_REG_FIELD(t->mode0, 1, 4); + *min_lod = (u8)t->mode1 / 16.0f; + *max_lod = (u32)GET_REG_FIELD(t->mode1, 8, 8) / 16.0f; + tmp = (s32)GET_REG_FIELD(t->mode0, 8, 9); + *lod_bias = (s8)tmp * 0.03125f; + *bias_clamp = (u32)GET_REG_FIELD(t->mode0, 1, 21); + *do_edge_lod = !GET_REG_FIELD(t->mode0, 1, 8); + *max_aniso = GET_REG_FIELD(t->mode0, 2, 19); +} + +GXTexFilter GXGetTexObjMinFilt(const GXTexObj *tex_obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x49E, tex_obj, "Texture Object Pointer is null"); + return HW2GXFiltConv[GET_REG_FIELD(t->mode0, 3, 5)]; +} + +GXTexFilter GXGetTexObjMagFilt(const GXTexObj *tex_obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x4A5, tex_obj, "Texture Object Pointer is null"); + return GET_REG_FIELD(t->mode0, 1, 4); +} + +f32 GXGetTexObjMinLOD(const GXTexObj *tex_obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x4AB, tex_obj, "Texture Object Pointer is null"); + return (u32)GET_REG_FIELD(t->mode1, 8, 0) / 16.0f; +} + +f32 GXGetTexObjMaxLOD(const GXTexObj *tex_obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x4B1, tex_obj, "Texture Object Pointer is null"); + return (u32)GET_REG_FIELD(t->mode1, 8, 8) / 16.0f; +} + +// NONMATCHING +f32 GXGetTexObjLODBias(const GXTexObj *tex_obj) +{ + s16 tmp; + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x4B8, tex_obj, "Texture Object Pointer is null"); + tmp = (s32)GET_REG_FIELD(t->mode0, 8, 9); + return (s8)tmp * 0.03125f; +} + +GXBool GXGetTexObjBiasClamp(const GXTexObj *tex_obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x4BF, tex_obj, "Texture Object Pointer is null"); + return (u32)GET_REG_FIELD(t->mode0, 1, 21); +} + +GXBool GXGetTexObjEdgeLOD(const GXTexObj *tex_obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x4C5, tex_obj, "Texture Object Pointer is null"); + return !GET_REG_FIELD(t->mode0, 1, 8); +} + +GXAnisotropy GXGetTexObjMaxAniso(const GXTexObj *tex_obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x4CB, tex_obj, "Texture Object Pointer is null"); + return GET_REG_FIELD(t->mode0, 2, 19); +} + +u32 GXGetTexObjTlut(const GXTexObj *tex_obj) +{ + const __GXTexObjInt *t = (const __GXTexObjInt *)tex_obj; + + ASSERTMSGLINE(0x4D1, tex_obj, "Texture Object Pointer is null"); + return t->tlutName; +} + +void GXLoadTexObjPreLoaded(GXTexObj *obj, GXTexRegion *region, GXTexMapID id) +{ + __GXTlutRegionInt *tlr; + __GXTexObjInt *t = (__GXTexObjInt *)obj; + __GXTexRegionInt *r = (__GXTexRegionInt *)region; + + ASSERTMSGLINE(0x4E9, obj, "Texture Object Pointer is null"); + ASSERTMSGLINE(0x4E9, region, "TexRegion Object Pointer is null"); + CHECK_GXBEGIN(0x4EB, "GXLoadTexObjPreLoaded"); + ASSERTMSGLINEV(0x4EC, id < 8, "%s: invalid texture map ID", "GXLoadTexObj"); + + SET_REG_FIELD(0x4F7, t->mode0, 8, 24, GXTexMode0Ids[id]); + SET_REG_FIELD(0x4F8, t->mode1, 8, 24, GXTexMode1Ids[id]); + SET_REG_FIELD(0x4F9, t->image0, 8, 24, GXTexImage0Ids[id]); + SET_REG_FIELD(0x4FA, r->image1, 8, 24, GXTexImage1Ids[id]); + SET_REG_FIELD(0x4FB, r->image2, 8, 24, GXTexImage2Ids[id]); + SET_REG_FIELD(0x4FC, t->image3, 8, 24, GXTexImage3Ids[id]); + + GX_WRITE_RAS_REG(t->mode0); + GX_WRITE_RAS_REG(t->mode1); + GX_WRITE_RAS_REG(t->image0); + GX_WRITE_RAS_REG(r->image1); + GX_WRITE_RAS_REG(r->image2); + GX_WRITE_RAS_REG(t->image3); + + if (!(t->flags & 2)) { + ASSERTMSGLINEV(0x507, gx->tlutRegionCallback, "%s: Tex/Tlut Region Callback not set", "GXLoadTexObj/PreLoaded"); + tlr = (__GXTlutRegionInt *)gx->tlutRegionCallback(t->tlutName); + ASSERTMSGLINEV(0x509, tlr, "%s: Tex/Tlut Region Callback returns NULL", "GXLoadTexObj/PreLoaded"); + + SET_REG_FIELD(0x50B, tlr->tlutObj.tlut, 8, 24, GXTexTlutIds[id]); + GX_WRITE_RAS_REG(tlr->tlutObj.tlut); + } + gx->tImage0[id] = t->image0; + gx->tMode0[id] = t->mode0; + gx->dirtyState |= 1; + gx->bpSentNot = 0; +} + +void GXLoadTexObj(GXTexObj *obj, GXTexMapID id) +{ + GXTexRegion *r; + + CHECK_GXBEGIN(0x526, "GXLoadTexObj"); + ASSERTMSGLINEV(0x527, id < 8, "%s: invalid texture map ID", "GXLoadTexObj"); + ASSERTMSGLINEV(0x52C, gx->texRegionCallback, "%s: Tex/Tlut Region Callback not set", "GXLoadTexObj"); + r = gx->texRegionCallback(obj, id); + ASSERTMSGLINEV(0x52E, r, "%s: Tex/Tlut Region Callback returns NULL", "GXLoadTexObj"); + GXLoadTexObjPreLoaded(obj, r, id); +} + +void GXInitTlutObj(GXTlutObj *tlut_obj, void *lut, GXTlutFmt fmt, u16 n_entries) +{ + __GXTlutObjInt *t = (__GXTlutObjInt *)tlut_obj; + + ASSERTMSGLINE(0x546, tlut_obj, "TLut Object Pointer is null"); + CHECK_GXBEGIN(0x547, "GXInitTlutObj"); + ASSERTMSGLINEV(0x54A, n_entries <= 0x4000, "%s: number of entries exceeds maximum", "GXInitTlutObj"); + ASSERTMSGLINEV(0x54C, ((u32)lut & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTlutObj", "Tlut"); + t->tlut = 0; + SET_REG_FIELD(0x54F, t->tlut, 2, 10, fmt); + SET_REG_FIELD(0x550, t->loadTlut0, 21, 0, ((u32)lut & 0x3FFFFFFF) >> 5); + SET_REG_FIELD(0x551, t->loadTlut0, 8, 24, 0x64); + t->numEntries = n_entries; +} + +void GXGetTlutObjAll(const GXTlutObj *tlut_obj, void **data, GXTlutFmt *format, u16 *numEntries) +{ + const __GXTlutObjInt *t = (const __GXTlutObjInt *)tlut_obj; + + ASSERTMSGLINE(0x566, tlut_obj, "TLut Object Pointer is null"); + *data = (void *)(GET_REG_FIELD(t->loadTlut0, 21, 0) << 5); + *format = GET_REG_FIELD(t->tlut, 2, 10); + *numEntries = t->numEntries; +} + +void *GXGetTlutObjData(const GXTlutObj *tlut_obj) +{ + const __GXTlutObjInt *t = (const __GXTlutObjInt *)tlut_obj; + + ASSERTMSGLINE(0x56F, tlut_obj, "TLut Object Pointer is null"); + return (void *)(GET_REG_FIELD(t->loadTlut0, 21, 0) << 5); +} + +GXTlutFmt GXGetTlutObjFmt(const GXTlutObj *tlut_obj) +{ + const __GXTlutObjInt *t = (const __GXTlutObjInt *)tlut_obj; + + ASSERTMSGLINE(0x576, tlut_obj, "TLut Object Pointer is null"); + return GET_REG_FIELD(t->tlut, 2, 10); +} + +u16 GXGetTlutObjNumEntries(const GXTlutObj *tlut_obj) +{ + const __GXTlutObjInt *t = (const __GXTlutObjInt *)tlut_obj; + + ASSERTMSGLINE(0x57D, tlut_obj, "TLut Object Pointer is null"); + return t->numEntries; +} + +void GXLoadTlut(GXTlutObj *tlut_obj, u32 tlut_name) +{ + __GXTlutRegionInt *r; + u32 tlut_offset; + __GXTlutObjInt *t = (__GXTlutObjInt *)tlut_obj; + + ASSERTMSGLINE(0x598, tlut_obj, "TLut Object Pointer is null"); + CHECK_GXBEGIN(0x59A, "GXLoadTlut"); + ASSERTMSGLINEV(0x59B, gx->tlutRegionCallback, "%s: Tex/Tlut Region Callback not set", "GXLoadTlut"); + r = (__GXTlutRegionInt *)gx->tlutRegionCallback(tlut_name); + ASSERTMSGLINEV(0x59D, r, "%s: Tex/Tlut Region Callback returns NULL", "GXLoadTlut"); + __GXFlushTextureState(); + GX_WRITE_RAS_REG(t->loadTlut0); + GX_WRITE_RAS_REG(r->loadTlut1); + __GXFlushTextureState(); + tlut_offset = r->loadTlut1 & 0x3FF; + SET_REG_FIELD(0x5AD, t->tlut, 10, 0, tlut_offset); + r->tlutObj = *t; +} + +void GXInitTexCacheRegion(GXTexRegion *region, u8 is_32b_mipmap, u32 tmem_even, GXTexCacheSize size_even, u32 tmem_odd, GXTexCacheSize size_odd) +{ + u32 WidthExp2; + __GXTexRegionInt *t = (__GXTexRegionInt *)region; + + ASSERTMSGLINE(0x5CC, region, "TexRegion Object Pointer is null"); + CHECK_GXBEGIN(0x5CE, "GXInitTexCacheRegion"); + ASSERTMSGLINEV(0x5D0, (tmem_even & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTexCacheRegion", "tmem even"); + ASSERTMSGLINEV(0x5D2, (tmem_odd & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTexCacheRegion", "tmem odd"); + switch (size_even) { + case GX_TEXCACHE_32K: + WidthExp2 = 3; + break; + case GX_TEXCACHE_128K: + WidthExp2 = 4; + break; + case GX_TEXCACHE_512K: + WidthExp2 = 5; + break; + default: + ASSERTMSGLINEV(0x5DA, 0, "%s: Invalid %s size", "GXInitTexCacheRegion", "tmem even"); + break; + } + t->image1 = 0; + SET_REG_FIELD(0x5DF, t->image1, 15, 0, tmem_even >> 5); + SET_REG_FIELD(0x5E0, t->image1, 3, 15, WidthExp2); + SET_REG_FIELD(0x5E1, t->image1, 3, 18, WidthExp2); + SET_REG_FIELD(0x5E2, t->image1, 1, 21, 0); + + switch (size_odd) { + case GX_TEXCACHE_32K: + WidthExp2 = 3; + break; + case GX_TEXCACHE_128K: + WidthExp2 = 4; + break; + case GX_TEXCACHE_512K: + WidthExp2 = 5; + break; + case GX_TEXCACHE_NONE: + WidthExp2 = 0; + break; + default: + ASSERTMSGLINEV(0x5EA, 0, "%s: Invalid %s size", "GXInitTexCacheRegion", "tmem odd"); + break; + } + t->image2 = 0; + SET_REG_FIELD(0x5EF, t->image2, 15, 0, tmem_odd >> 5); + SET_REG_FIELD(0x5F0, t->image2, 3, 15, WidthExp2); + SET_REG_FIELD(0x5F1, t->image2, 3, 18, WidthExp2); + t->is32bMipmap = is_32b_mipmap; + t->isCached = 1; +} + +void GXInitTexPreLoadRegion(GXTexRegion *region, u32 tmem_even, u32 size_even, u32 tmem_odd, u32 size_odd) +{ + __GXTexRegionInt *t = (__GXTexRegionInt *)region; + + ASSERTMSGLINE(0x60E, region, "TexRegion Object Pointer is null"); + CHECK_GXBEGIN(0x610, "GXInitTexPreLoadRegion"); + ASSERTMSGLINEV(0x612, (tmem_even & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTexPreLoadRegion", "tmem even"); + ASSERTMSGLINEV(0x614, (tmem_odd & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTexPreLoadRegion", "tmem odd"); + ASSERTMSGLINEV(0x616, (size_even & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTexPreLoadRegion", "size even"); + ASSERTMSGLINEV(0x618, (size_odd & 0x1F) == 0, "%s: %s pointer not aligned to 32B", "GXInitTexPreLoadRegion", "size odd"); + + t->image1 = 0; + SET_REG_FIELD(0x61C, t->image1, 15, 0, tmem_even >> 5); + SET_REG_FIELD(0x61D, t->image1, 3, 15, 0); + SET_REG_FIELD(0x61E, t->image1, 3, 18, 0); + SET_REG_FIELD(0x61F, t->image1, 1, 21, 1); + + t->image2 = 0; + SET_REG_FIELD(0x622, t->image2, 15, 0, tmem_odd >> 5); + SET_REG_FIELD(0x623, t->image2, 3, 15, 0); + SET_REG_FIELD(0x624, t->image2, 3, 18, 0); + t->is32bMipmap = 0; + t->isCached = 0; + t->sizeEven = (u16)(size_even >> 5U); + t->sizeOdd = (u16)(size_odd >> 5U); +} + +void GXGetTexRegionAll(const GXTexRegion *region, u8 *is_cached, u8 *is_32b_mipmap, u32 *tmem_even, u32 *size_even, u32 *tmem_odd, u32 *size_odd) +{ + const __GXTexRegionInt *t = (const __GXTexRegionInt *)region; + + ASSERTMSGLINE(0x641, region, "TexRegion Object Pointer is null"); + *tmem_even = GET_REG_FIELD(t->image1, 15, 0) << 5; + *tmem_odd = GET_REG_FIELD(t->image2, 15, 0) << 5; + if (t->isCached) { + switch (GET_REG_FIELD(t->image1, 3, 15)) { + case 3: + *size_even = 0x8000; + break; + case 4: + *size_even = 0x20000; + break; + case 5: + *size_even = 0x80000; + break; + default: + *size_even = 0; + break; + } + switch (GET_REG_FIELD(t->image2, 3, 15)) { + case 3: + *size_odd = 0x8000; + break; + case 4: + *size_odd = 0x20000; + break; + case 5: + *size_odd = 0x80000; + break; + default: + *size_odd = 0; + break; + } + } + else { + *size_even = t->sizeEven << 5; + *size_odd = t->sizeOdd << 5; + } + *is_32b_mipmap = t->is32bMipmap; + *is_cached = t->isCached; +} + +void GXInitTlutRegion(GXTlutRegion *region, u32 tmem_addr, GXTlutSize tlut_size) +{ + __GXTlutRegionInt *t = (__GXTlutRegionInt *)region; + + ASSERTMSGLINE(0x674, region, "TLutRegion Object Pointer is null"); + CHECK_GXBEGIN(0x676, "GXInitTlutRegion"); + ASSERTMSGLINEV(0x677, (tmem_addr & 0x1FF) == 0, "%s: tmem pointer is not aligned to 512B", "GXInitTlutRegion"); + ASSERTMSGLINEV(0x678, tlut_size <= 0x400, "%s: tlut size exceeds 16K", "GXInitTlutRegion"); + t->loadTlut1 = 0; + tmem_addr -= 0x80000; + SET_REG_FIELD(0x67C, t->loadTlut1, 10, 0, tmem_addr >> 9); + SET_REG_FIELD(0x67D, t->loadTlut1, 11, 10, tlut_size); + SET_REG_FIELD(0x67E, t->loadTlut1, 8, 24, 0x65); +} + +void GXGetTlutRegionAll(const GXTlutRegion *region, u32 *tmem_addr, GXTlutSize *tlut_size) +{ + const __GXTlutRegionInt *t = (const __GXTlutRegionInt *)region; + + ASSERTMSGLINE(0x692, region, "TLutRegion Object Pointer is null"); + *tmem_addr = (GET_REG_FIELD(t->loadTlut1, 10, 0) << 9) + 0x80000; + *tlut_size = GET_REG_FIELD(t->loadTlut1, 11, 10); +} + +void GXInvalidateTexRegion(GXTexRegion *region) +{ + s32 wle; + s32 hle; + s32 wlo; + s32 hlo; + s32 count; + u32 reg0; + u32 reg1; + __GXTexRegionInt *r = (__GXTexRegionInt *)region; + + ASSERTMSGLINE(0x6A9, region, "TexRegion Object Pointer is null"); + CHECK_GXBEGIN(0x6AB, "GXInvalidateTexRegion"); + + wle = GET_REG_FIELD(r->image1, 3, 15) - 1; + hle = GET_REG_FIELD(r->image1, 3, 18) - 1; + wlo = GET_REG_FIELD(r->image2, 3, 15) - 1; + hlo = GET_REG_FIELD(r->image2, 3, 18) - 1; + if (wle < 0) { + wle = 0; + } + if (hle < 0) { + hle = 0; + } + if (wlo < 0) { + wlo = 0; + } + if (hlo < 0) { + hlo = 0; + } + count = wle + hle; + if (r->is32bMipmap) { + count = wlo + hlo - 2 + count; + } + reg0 = 0; + SET_REG_FIELD(0x6BC, reg0, 9, 0, GET_REG_FIELD(r->image1, 9, 6)); + SET_REG_FIELD(0x6BD, reg0, 4, 9, count); + SET_REG_FIELD(0x6BC, reg0, 8, 24, 0x66); + if (wlo != 0) { + count = wlo + hlo; + if (r->is32bMipmap) { + count = wle + hle - 2 + count; + } + reg1 = 0; + SET_REG_FIELD(0x6C8, reg1, 9, 0, GET_REG_FIELD(r->image2, 9, 6)); + SET_REG_FIELD(0x6C9, reg1, 4, 9, count); + SET_REG_FIELD(0x6CA, reg1, 8, 24, 0x66); + } + __GXFlushTextureState(); + GX_WRITE_RAS_REG(reg0); + if (wlo != 0) { + GX_WRITE_RAS_REG(reg1); + } + __GXFlushTextureState(); + + reg0; + reg1; + r; // needed to match +} + +void GXInvalidateTexAll(void) +{ + u32 reg0; + u32 reg1; + + CHECK_GXBEGIN(0x6DB, "GXInvalidateTexAll"); + reg0 = 0x66001000; + reg1 = 0x66001100; + __GXFlushTextureState(); + GX_WRITE_RAS_REG(reg0); + GX_WRITE_RAS_REG(reg1); + __GXFlushTextureState(); +} + +GXTexRegionCallback GXSetTexRegionCallback(GXTexRegionCallback f) +{ + GXTexRegionCallback oldcb = gx->texRegionCallback; + + gx->texRegionCallback = f; + return oldcb; +} + +GXTlutRegionCallback GXSetTlutRegionCallback(GXTlutRegionCallback f) +{ + GXTlutRegionCallback oldcb = gx->tlutRegionCallback; + + gx->tlutRegionCallback = f; + return oldcb; +} + +void GXPreLoadEntireTexture(GXTexObj *tex_obj, GXTexRegion *region) +{ + u8 isMipMap; + u8 is32bit; + u32 wd; + u32 ht; + u32 maxLevelIndex; + u32 loadImage0; + u32 loadImage1; + u32 loadImage2; + u32 loadImage3; + u32 base; + u32 tmem1; + u32 tmem2; + u32 tmemAR; + u32 tmemGB; + u32 nTiles; + u32 rowTiles; + u32 colTiles; + u32 cmpTiles; + u32 i; + __GXTexObjInt *t = (__GXTexObjInt *)tex_obj; + __GXTexRegionInt *r = (__GXTexRegionInt *)region; + + ASSERTMSGLINE(0x71C, tex_obj, "Texture Object Pointer is null"); + ASSERTMSGLINE(0x71C, region, "TexRegion Object Pointer is null"); + CHECK_GXBEGIN(0x71E, "GXPreLoadEntireTexture"); + isMipMap = (t->flags & 1) == 1; + is32bit = GET_REG_FIELD(t->image0, 4, 20) == 6; + + loadImage0 = 0; + SET_REG_FIELD(0, loadImage0, 8, 24, 0x60); + base = t->image3 & 0x1FFFFF; + SET_REG_FIELD(0x727, loadImage0, 21, 0, base); + + loadImage1 = 0; + SET_REG_FIELD(0, loadImage1, 8, 24, 0x61); + tmem1 = r->image1 & 0x7FFF; + SET_REG_FIELD(0x72D, loadImage1, 15, 0, tmem1); + + loadImage2 = 0; + SET_REG_FIELD(0, loadImage2, 8, 24, 0x62); + tmem2 = r->image2 & 0x7FFF; + SET_REG_FIELD(0x733, loadImage2, 15, 0, tmem2); + + loadImage3 = 0; + SET_REG_FIELD(0, loadImage3, 8, 24, 0x63); + SET_REG_FIELD(0x738, loadImage3, 15, 0, t->loadCnt); + SET_REG_FIELD(0x739, loadImage3, 2, 15, t->loadFmt); + maxLevelIndex = 0; + nTiles = t->loadCnt; + if (isMipMap != 0) { + wd = GET_REG_FIELD(t->image0, 10, 0) + 1; + ht = GET_REG_FIELD(t->image0, 10, 10) + 1; + if (wd > ht) { + maxLevelIndex = (u16)(31 - __cntlzw(wd)); + } + else { + maxLevelIndex = (u16)(31 - __cntlzw(ht)); + } + } + __GXFlushTextureState(); + GX_WRITE_RAS_REG(loadImage0); + GX_WRITE_RAS_REG(loadImage1); + GX_WRITE_RAS_REG(loadImage2); + GX_WRITE_RAS_REG(loadImage3); + if (maxLevelIndex != 0) { + tmemAR = tmem1; + tmemGB = tmem2; + for (i = 0; i < maxLevelIndex; i++) { + if (is32bit != 0) { + base += nTiles * 2; + tmemAR += nTiles; + tmemGB += nTiles; + } + else { + base += nTiles; + if (i & 1) { + tmemGB += nTiles; + } + else { + tmemAR += nTiles; + } + } + tmem1 = (i & 1) ? tmemAR : tmemGB; + tmem2 = (i & 1) ? tmemGB : tmemAR; + __GetImageTileCount(t->fmt, (u16)(wd >> (i + 1)), (u16)(ht >> (i + 1)), &rowTiles, &colTiles, &cmpTiles); + nTiles = rowTiles * colTiles; + SET_REG_FIELD(0x7A5, loadImage0, 21, 0, base); + SET_REG_FIELD(0x7A6, loadImage1, 15, 0, tmem1); + SET_REG_FIELD(0x7A7, loadImage2, 15, 0, tmem2); + SET_REG_FIELD(0x7A8, loadImage3, 15, 0, nTiles); + GX_WRITE_RAS_REG(loadImage0); + GX_WRITE_RAS_REG(loadImage1); + GX_WRITE_RAS_REG(loadImage2); + GX_WRITE_RAS_REG(loadImage3); + } + } + __GXFlushTextureState(); +} + +void GXSetTexCoordScaleManually(GXTexCoordID coord, u8 enable, u16 ss, u16 ts) +{ + CHECK_GXBEGIN(0x7C5, "GXSetTexCoordScaleManually"); + ASSERTMSGLINEV(0x7C7, coord < 8, "%s: bad texcoord specified", "GXSetTexCoordScaleManually"); + gx->tcsManEnab = (gx->tcsManEnab & ~(1 << coord)) | (enable << coord); + if (enable != 0) { + SET_REG_FIELD(0x7CD, gx->suTs0[coord], 16, 0, (u16)(ss - 1)); + SET_REG_FIELD(0x7CE, gx->suTs1[coord], 16, 0, (u16)(ts - 1)); + GX_WRITE_RAS_REG(gx->suTs0[coord]); + GX_WRITE_RAS_REG(gx->suTs1[coord]); + gx->bpSentNot = 0; + } +} + +void GXSetTexCoordCylWrap(GXTexCoordID coord, u8 s_enable, u8 t_enable) +{ + CHECK_GXBEGIN(0x7E7, "GXSetTexCoordCylWrap"); + ASSERTMSGLINEV(0x7E9, coord < 8, "%s: bad texcoord specified", "GXSetTexCoordCylWrap"); + SET_REG_FIELD(0x7EB, gx->suTs0[coord], 1, 17, s_enable); + SET_REG_FIELD(0x7EC, gx->suTs1[coord], 1, 17, t_enable); + if (gx->tcsManEnab & (1 << coord)) { + GX_WRITE_RAS_REG(gx->suTs0[coord]); + GX_WRITE_RAS_REG(gx->suTs1[coord]); + gx->bpSentNot = 0; + } +} + +void GXSetTexCoordBias(GXTexCoordID coord, u8 s_enable, u8 t_enable) +{ + CHECK_GXBEGIN(0x806, "GXSetTexCoordBias"); + ASSERTMSGLINEV(0x808, coord < 8, "%s: bad texcoord specified", "GXSetTexCoordBias"); + SET_REG_FIELD(0x80A, gx->suTs0[coord], 1, 16, s_enable); + SET_REG_FIELD(0x80B, gx->suTs1[coord], 1, 16, t_enable); + if (gx->tcsManEnab & (1 << coord)) { + GX_WRITE_RAS_REG(gx->suTs0[coord]); + GX_WRITE_RAS_REG(gx->suTs1[coord]); + gx->bpSentNot = 0; + } +} + +static void __SetSURegs(u32 tmap, u32 tcoord) +{ + u32 w; + u32 h; + u8 s_bias; + u8 t_bias; + + w = GET_REG_FIELD(gx->tImage0[tmap], 10, 0); + h = GET_REG_FIELD(gx->tImage0[tmap], 10, 10); + SET_REG_FIELD(0x829, gx->suTs0[tcoord], 16, 0, w); + SET_REG_FIELD(0x82A, gx->suTs1[tcoord], 16, 0, h); + s_bias = GET_REG_FIELD(gx->tMode0[tmap], 2, 0) == 1; + t_bias = GET_REG_FIELD(gx->tMode0[tmap], 2, 2) == 1; + SET_REG_FIELD(0x830, gx->suTs0[tcoord], 1, 16, s_bias); + SET_REG_FIELD(0x831, gx->suTs1[tcoord], 1, 16, t_bias); + GX_WRITE_RAS_REG(gx->suTs0[tcoord]); + GX_WRITE_RAS_REG(gx->suTs1[tcoord]); + gx->bpSentNot = 0; +} + +void __GXSetSUTexRegs(void) +{ + u32 nStages; + u32 nIndStages; + u32 i; + u32 map; + u32 tmap; + u32 coord; + u32 *ptref; + + if (gx->tcsManEnab != 0xFF) { + nStages = GET_REG_FIELD(gx->genMode, 4, 10) + 1; + nIndStages = GET_REG_FIELD(gx->genMode, 3, 16); + for (i = 0; i < nIndStages; i++) { + switch (i) { + case 0: + tmap = GET_REG_FIELD(gx->iref, 3, 0); + coord = GET_REG_FIELD(gx->iref, 3, 3); + break; + case 1: + tmap = GET_REG_FIELD(gx->iref, 3, 6); + coord = GET_REG_FIELD(gx->iref, 3, 9); + break; + case 2: + tmap = GET_REG_FIELD(gx->iref, 3, 12); + coord = GET_REG_FIELD(gx->iref, 3, 15); + break; + case 3: + tmap = GET_REG_FIELD(gx->iref, 3, 18); + coord = GET_REG_FIELD(gx->iref, 3, 21); + break; + } + if (!(gx->tcsManEnab & (1 << coord))) { + __SetSURegs(tmap, coord); + } + } + i = 0; + for (i = 0; i < nStages; i++) { + ptref = &gx->tref[i / 2]; + map = gx->texmapId[i]; + tmap = map & 0xFFFFFEFF; + if (i & 1) { + coord = GET_REG_FIELD(*ptref, 3, 15); + } + else { + coord = GET_REG_FIELD(*ptref, 3, 3); + } + if ((tmap != 0xFF) && !(gx->tcsManEnab & (1 << coord)) && (gx->tevTcEnab & (1 << i))) { + __SetSURegs(tmap, coord); + } + } + } +} + +void __GXGetSUTexSize(GXTexCoordID coord, u16 *width, u16 *height) +{ + *width = (u16)gx->suTs0[coord] + 1; + *height = (u16)gx->suTs1[coord] + 1; +} + +void __GXSetTmemConfig(u32 config) +{ + switch (config) { + case 1: + GX_WRITE_RAS_REG(0x8c0d8000); + GX_WRITE_RAS_REG(0x900dc000); + + GX_WRITE_RAS_REG(0x8d0d8800); + GX_WRITE_RAS_REG(0x910dc800); + + GX_WRITE_RAS_REG(0x8e0d9000); + GX_WRITE_RAS_REG(0x920dd000); + + GX_WRITE_RAS_REG(0x8f0d9800); + GX_WRITE_RAS_REG(0x930dd800); + + GX_WRITE_RAS_REG(0xac0da000); + GX_WRITE_RAS_REG(0xb00de000); + + GX_WRITE_RAS_REG(0xad0da800); + GX_WRITE_RAS_REG(0xb10de800); + + GX_WRITE_RAS_REG(0xae0db000); + GX_WRITE_RAS_REG(0xb20df000); + + GX_WRITE_RAS_REG(0xaf0db800); + GX_WRITE_RAS_REG(0xb30df800); + + break; + case 0: + default: + GX_WRITE_RAS_REG(0x8c0d8000); + GX_WRITE_RAS_REG(0x900dc000); + + GX_WRITE_RAS_REG(0x8d0d8400); + GX_WRITE_RAS_REG(0x910dc400); + + GX_WRITE_RAS_REG(0x8e0d8800); + GX_WRITE_RAS_REG(0x920dc800); + + GX_WRITE_RAS_REG(0x8f0d8c00); + GX_WRITE_RAS_REG(0x930dcc00); + + GX_WRITE_RAS_REG(0xac0d9000); + GX_WRITE_RAS_REG(0xb00dd000); + + GX_WRITE_RAS_REG(0xad0d9400); + GX_WRITE_RAS_REG(0xb10dd400); + + GX_WRITE_RAS_REG(0xae0d9800); + GX_WRITE_RAS_REG(0xb20dd800); + + GX_WRITE_RAS_REG(0xaf0d9c00); + GX_WRITE_RAS_REG(0xb30ddc00); + + break; + } +} diff --git a/src/dolphin/gx/GXTransform.c b/src/dolphin/gx/GXTransform.c new file mode 100644 index 00000000..dbe9d5d1 --- /dev/null +++ b/src/dolphin/gx/GXTransform.c @@ -0,0 +1,372 @@ +#include +#include +#include + +#include + +void GXProject(f32 x, f32 y, f32 z, const f32 mtx[3][4], const f32 *pm, const f32 *vp, f32 *sx, f32 *sy, f32 *sz) +{ + Vec peye; + f32 xc; + f32 yc; + f32 zc; + f32 wc; + + ASSERTMSGLINE(0xA8, pm && vp && sx && sy && sz, "GXGet*: invalid null pointer"); + + peye.x = mtx[0][3] + ((mtx[0][2] * z) + ((mtx[0][0] * x) + (mtx[0][1] * y))); + peye.y = mtx[1][3] + ((mtx[1][2] * z) + ((mtx[1][0] * x) + (mtx[1][1] * y))); + peye.z = mtx[2][3] + ((mtx[2][2] * z) + ((mtx[2][0] * x) + (mtx[2][1] * y))); + if (pm[0] == 0.0f) { + xc = (peye.x * pm[1]) + (peye.z * pm[2]); + yc = (peye.y * pm[3]) + (peye.z * pm[4]); + zc = pm[6] + (peye.z * pm[5]); + wc = 1.0f / -peye.z; + } + else { + xc = pm[2] + (peye.x * pm[1]); + yc = pm[4] + (peye.y * pm[3]); + zc = pm[6] + (peye.z * pm[5]); + wc = 1.0f; + } + *sx = (vp[2] / 2.0f) + (vp[0] + (wc * (xc * vp[2] / 2.0f))); + *sy = (vp[3] / 2.0f) + (vp[1] + (wc * (-yc * vp[3] / 2.0f))); + *sz = vp[5] + (wc * (zc * (vp[5] - vp[4]))); +} + +static void WriteProjPS(const register f32 proj[6], register volatile void *dest) +{ + register f32 p01, p23, p45; + + asm { + psq_l p01, 0(proj), 0, 0 + psq_l p23, 8(proj), 0, 0 + psq_l p45, 16(proj), 0, 0 + psq_st p01, 0(dest), 0, 0 + psq_st p23, 0(dest), 0, 0 + psq_st p45, 0(dest), 0, 0 + } +} + +static void __GXSetProjection(void) +{ + u32 reg = 0x00061020; + GX_WRITE_U8(0x10); + GX_WRITE_U32(reg); + GX_WRITE_XF_REG_F(32, gx->projMtx[0]); + GX_WRITE_XF_REG_F(33, gx->projMtx[1]); + GX_WRITE_XF_REG_F(34, gx->projMtx[2]); + GX_WRITE_XF_REG_F(35, gx->projMtx[3]); + GX_WRITE_XF_REG_F(36, gx->projMtx[4]); + GX_WRITE_XF_REG_F(37, gx->projMtx[5]); + GX_WRITE_XF_REG_2(38, gx->projType); +} + +void GXSetProjection(f32 mtx[4][4], GXProjectionType type) +{ + CHECK_GXBEGIN(0x127, "GXSetProjection"); + + gx->projType = type; + gx->projMtx[0] = mtx[0][0]; + gx->projMtx[2] = mtx[1][1]; + gx->projMtx[4] = mtx[2][2]; + gx->projMtx[5] = mtx[2][3]; + if (type == GX_ORTHOGRAPHIC) { + gx->projMtx[1] = mtx[0][3]; + gx->projMtx[3] = mtx[1][3]; + } + else { + gx->projMtx[1] = mtx[0][2]; + gx->projMtx[3] = mtx[1][2]; + } + + __GXSetProjection(); + gx->bpSentNot = 1; +} + +#define qr0 0 + +void GXGetProjectionv(f32 *ptr) +{ + ASSERTMSGLINE(0x172, ptr, "GXGet*: invalid null pointer"); + + ptr[0] = gx->projType; + + ptr[1] = gx->projMtx[0]; + ptr[2] = gx->projMtx[1]; + ptr[3] = gx->projMtx[2]; + ptr[4] = gx->projMtx[3]; + ptr[5] = gx->projMtx[4]; + ptr[6] = gx->projMtx[5]; +} + +static void WriteMTXPS4x3(const register f32 mtx[3][4], register volatile f32 *dest) +{ + register f32 a00_a01; + register f32 a02_a03; + register f32 a10_a11; + register f32 a12_a13; + register f32 a20_a21; + register f32 a22_a23; + + asm { + psq_l a00_a01, 0x00(mtx), 0, qr0 + psq_l a02_a03, 0x08(mtx), 0, qr0 + psq_l a10_a11, 0x10(mtx), 0, qr0 + psq_l a12_a13, 0x18(mtx), 0, qr0 + psq_l a20_a21, 0x20(mtx), 0, qr0 + psq_l a22_a23, 0x28(mtx), 0, qr0 + psq_st a00_a01, 0(dest), 0, qr0 + psq_st a02_a03, 0(dest), 0, qr0 + psq_st a10_a11, 0(dest), 0, qr0 + psq_st a12_a13, 0(dest), 0, qr0 + psq_st a20_a21, 0(dest), 0, qr0 + psq_st a22_a23, 0(dest), 0, qr0 + } +} + +static void WriteMTXPS3x3from3x4(register f32 mtx[3][4], register volatile f32 *dest) +{ + register f32 a00_a01; + register f32 a02_a03; + register f32 a10_a11; + register f32 a12_a13; + register f32 a20_a21; + register f32 a22_a23; + + asm { + psq_l a00_a01, 0x00(mtx), 0, qr0 + lfs a02_a03, 0x08(mtx) + psq_l a10_a11, 0x10(mtx), 0, qr0 + lfs a12_a13, 0x18(mtx) + psq_l a20_a21, 0x20(mtx), 0, qr0 + lfs a22_a23, 0x28(mtx) + psq_st a00_a01, 0(dest), 0, qr0 + stfs a02_a03, 0(dest) + psq_st a10_a11, 0(dest), 0, qr0 + stfs a12_a13, 0(dest) + psq_st a20_a21, 0(dest), 0, qr0 + stfs a22_a23, 0(dest) + } +} + +static void WriteMTXPS4x2(const register f32 mtx[2][4], register volatile f32 *dest) +{ + register f32 a00_a01; + register f32 a02_a03; + register f32 a10_a11; + register f32 a12_a13; + + asm { + psq_l a00_a01, 0x00(mtx), 0, qr0 + psq_l a02_a03, 0x08(mtx), 0, qr0 + psq_l a10_a11, 0x10(mtx), 0, qr0 + psq_l a12_a13, 0x18(mtx), 0, qr0 + psq_st a00_a01, 0(dest), 0, qr0 + psq_st a02_a03, 0(dest), 0, qr0 + psq_st a10_a11, 0(dest), 0, qr0 + psq_st a12_a13, 0(dest), 0, qr0 + } +} + +#pragma peephole off +#pragma dont_inline on +void GXLoadPosMtxImm(f32 mtx[3][4], u32 id) +{ + u32 reg; + u32 addr; + + CHECK_GXBEGIN(0x1FB, "GXLoadPosMtxImm"); + + addr = id * 4; + reg = addr | 0xB0000; + + GX_WRITE_U8(0x10); + GX_WRITE_U32(reg); + WriteMTXPS4x3(mtx, &GXWGFifo.f32); +} + +void GXLoadNrmMtxImm(f32 mtx[3][4], u32 id) +{ + u32 reg; + u32 addr; + + CHECK_GXBEGIN(0x24C, "GXLoadNrmMtxImm"); + + addr = id * 3 + 0x400; + reg = addr | 0x80000; + + GX_WRITE_U8(0x10); + GX_WRITE_U32(reg); + WriteMTXPS3x3from3x4((void *)mtx, &GXWGFifo.f32); +} + +void GXSetCurrentMtx(u32 id) +{ + CHECK_GXBEGIN(0x2C4, "GXSetCurrentMtx"); + SET_REG_FIELD(0x2C8, gx->matIdxA, 6, 0, id); + __GXSetMatrixIndex(GX_VA_PNMTXIDX); +} + +void GXLoadTexMtxImm(f32 mtx[][4], u32 id, GXTexMtxType type) +{ + u32 reg; + u32 addr; + u32 count; + + CHECK_GXBEGIN(0x2E5, "GXLoadTexMtxImm"); + + if (id >= GX_PTTEXMTX0) { + addr = (id - GX_PTTEXMTX0) * 4 + 0x500; + ASSERTMSGLINE(0x2EF, type == GX_MTX3x4, "GXLoadTexMtx: Invalid matrix type"); + } + else { + addr = id * 4; + } + count = (type == GX_MTX2x4) ? 8 : 12; + reg = addr | ((count - 1) << 16); + + GX_WRITE_U8(0x10); + GX_WRITE_U32(reg); + if (type == GX_MTX3x4) { + WriteMTXPS4x3(mtx, &GXWGFifo.f32); + } + else { + WriteMTXPS4x2(mtx, &GXWGFifo.f32); + } +} +#pragma dont_inline reset + +void GXSetViewportJitter(f32 left, f32 top, f32 wd, f32 ht, f32 nearz, f32 farz, u32 field) +{ + f32 sx; + f32 sy; + f32 sz; + f32 ox; + f32 oy; + f32 oz; + f32 zmin; + f32 zmax; + u32 reg; + + CHECK_GXBEGIN(0x387, "GXSetViewport"); // not the correct function name + + if (field == 0) { + top -= 0.5f; + } + sx = wd / 2.0f; + sy = -ht / 2.0f; + ox = 342.0f + (left + (wd / 2.0f)); + oy = 342.0f + (top + (ht / 2.0f)); + zmin = 1.6777215e7f * nearz; + zmax = 1.6777215e7f * farz; + sz = zmax - zmin; + oz = zmax; + gx->vpLeft = left; + gx->vpTop = top; + gx->vpWd = wd; + gx->vpHt = ht; + gx->vpNearz = nearz; + gx->vpFarz = farz; + if (gx->fgRange != 0) { + __GXSetRange(nearz, gx->fgSideX); + } + reg = 0x5101A; + GX_WRITE_U8(0x10); + GX_WRITE_U32(reg); + GX_WRITE_XF_REG_F(26, sx); + GX_WRITE_XF_REG_F(27, sy); + GX_WRITE_XF_REG_F(28, sz); + GX_WRITE_XF_REG_F(29, ox); + GX_WRITE_XF_REG_F(30, oy); + GX_WRITE_XF_REG_F(31, oz); + gx->bpSentNot = 1; +} + +void GXSetViewport(f32 left, f32 top, f32 wd, f32 ht, f32 nearz, f32 farz) +{ + GXSetViewportJitter(left, top, wd, ht, nearz, farz, 1U); +} + +void GXGetViewportv(f32 *vp) +{ + ASSERTMSGLINE(0x3C8, vp, "GXGet*: invalid null pointer"); + + vp[0] = gx->vpLeft; + vp[1] = gx->vpTop; + vp[2] = gx->vpWd; + vp[3] = gx->vpHt; + vp[4] = gx->vpNearz; + vp[5] = gx->vpFarz; +} + +// maybe get it from melee? +void GXSetScissor(u32 left, u32 top, u32 wd, u32 ht) +{ + u32 tp; + u32 lf; + u32 bm; + u32 rt; + + CHECK_GXBEGIN(0x418, "GXSetScissor"); + ASSERTMSGLINE(0x419, left < 1706, "GXSetScissor: Left origin > 1708"); + ASSERTMSGLINE(0x41A, top < 1706, "GXSetScissor: top origin > 1708"); + ASSERTMSGLINE(0x41B, left + wd < 1706, "GXSetScissor: right edge > 1708"); + ASSERTMSGLINE(0x41C, top + ht < 1706, "GXSetScissor: bottom edge > 1708"); + + tp = top + 342; + lf = left + 342; + bm = tp + ht - 1; + rt = lf + wd - 1; + + SET_REG_FIELD(0x423, gx->suScis0, 11, 0, tp); + SET_REG_FIELD(0x424, gx->suScis0, 11, 12, lf); + SET_REG_FIELD(0x426, gx->suScis1, 11, 0, bm); + SET_REG_FIELD(0x427, gx->suScis1, 11, 12, rt); + + GX_WRITE_RAS_REG(gx->suScis0); + GX_WRITE_RAS_REG(gx->suScis1); + gx->bpSentNot = 0; +} + +void GXSetScissorBoxOffset(s32 x_off, s32 y_off) +{ + u32 reg = 0; + u32 hx; + u32 hy; + + CHECK_GXBEGIN(0x45F, "GXSetScissorBoxOffset"); + + ASSERTMSGLINE(0x462, (u32)(x_off + 342) < 2048, "GXSetScissorBoxOffset: Invalid X offset"); + ASSERTMSGLINE(0x464, (u32)(y_off + 342) < 2048, "GXSetScissorBoxOffset: Invalid Y offset"); + + hx = (u32)(x_off + 342) >> 1; + hy = (u32)(y_off + 342) >> 1; + + SET_REG_FIELD(0x469, reg, 10, 0, hx); + SET_REG_FIELD(0x46A, reg, 10, 10, hy); + SET_REG_FIELD(0x46B, reg, 8, 24, 0x59); + GX_WRITE_RAS_REG(reg); + gx->bpSentNot = 0; +} +#pragma peephole on + +void GXSetClipMode(GXClipMode mode) +{ + CHECK_GXBEGIN(0x47F, "GXSetClipMode"); + GX_WRITE_XF_REG(5, mode); + gx->bpSentNot = 1; +} + +void __GXSetMatrixIndex(GXAttr matIdxAttr) +{ + if (matIdxAttr < GX_VA_TEX4MTXIDX) { + GX_WRITE_SOME_REG4(8, 0x30, gx->matIdxA, -12); + GX_WRITE_XF_REG(24, gx->matIdxA); + } + else { + GX_WRITE_SOME_REG4(8, 0x40, gx->matIdxB, -12); + GX_WRITE_XF_REG(25, gx->matIdxB); + } + gx->bpSentNot = 1; +} diff --git a/src/game/kerent.c b/src/game/kerent.c index e872e2ad..f97ccdce 100644 --- a/src/game/kerent.c +++ b/src/game/kerent.c @@ -27,7 +27,7 @@ void PSQUATNormalize(void); void OSTicksToCalendarTime(void); void GXWaitDrawDone(void); void GXProject(void); -void GXSetProjectionv(void); +void GXGetProjectionv(void); void GXGetViewportv(void); void GXPixModeSync(void); void GXSetIndTexOrder(void); @@ -1044,7 +1044,7 @@ extern void _kerjmp_PSQUATNormalize(void); extern void _kerjmp_OSTicksToCalendarTime(void); extern void _kerjmp_GXWaitDrawDone(void); extern void _kerjmp_GXProject(void); -extern void _kerjmp_GXSetProjectionv(void); +extern void _kerjmp_GXGetProjectionv(void); extern void _kerjmp_GXGetViewportv(void); extern void _kerjmp_GXPixModeSync(void); extern void _kerjmp_GXSetIndTexOrder(void); @@ -2093,8 +2093,8 @@ asm void _kerent(void) { b GXWaitDrawDone entry _kerjmp_GXProject b GXProject - entry _kerjmp_GXSetProjectionv - b GXSetProjectionv + entry _kerjmp_GXGetProjectionv + b GXGetProjectionv entry _kerjmp_GXGetViewportv b GXGetViewportv entry _kerjmp_GXPixModeSync From 647465d7a08c79bbe80a300412febda27c3e03b0 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Tue, 31 Dec 2024 01:09:52 -0500 Subject: [PATCH 222/311] complete m424/main --- config/GMPE01_00/rels/m424Dll/splits.txt | 3 +- config/GMPE01_00/rels/m424Dll/symbols.txt | 322 +++++++++--------- configure.py | 2 +- src/REL/m424Dll/main.c | 388 +++++++++++++++++++++- 4 files changed, 551 insertions(+), 164 deletions(-) diff --git a/config/GMPE01_00/rels/m424Dll/splits.txt b/config/GMPE01_00/rels/m424Dll/splits.txt index 464ddcb7..8a0d8259 100644 --- a/config/GMPE01_00/rels/m424Dll/splits.txt +++ b/config/GMPE01_00/rels/m424Dll/splits.txt @@ -12,12 +12,13 @@ REL/executor.c: REL/m424Dll/main.c: .text start:0x000000A0 end:0x00001AB8 .rodata start:0x00000000 end:0x00000090 - .data start:0x00000000 end:0x00000150 + .data start:0x00000000 end:0x000000E0 .bss start:0x00000000 end:0x00000050 REL/m424Dll/map.c: .text start:0x00001AB8 end:0x00002720 .rodata start:0x00000090 end:0x000000F8 + .data start:0x000000E0 end:0x00000150 .bss start:0x00000050 end:0x00000058 REL/m424Dll/ball.c: diff --git a/config/GMPE01_00/rels/m424Dll/symbols.txt b/config/GMPE01_00/rels/m424Dll/symbols.txt index 987485bc..05b78c80 100644 --- a/config/GMPE01_00/rels/m424Dll/symbols.txt +++ b/config/GMPE01_00/rels/m424Dll/symbols.txt @@ -97,168 +97,168 @@ fn_1_CF80 = .text:0x0000CF80; // type:function size:0x90 fn_1_D010 = .text:0x0000D010; // type:function size:0x64 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC data:4byte -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float lbl_1_data_54 = .data:0x00000054; // type:object size:0xC lbl_1_data_60 = .data:0x00000060; // type:object size:0xC lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC -lbl_1_data_78 = .data:0x00000078; // type:object size:0x23 data:string +lbl_1_data_78 = .data:0x00000078; // type:object size:0x23 scope:local data:string lbl_1_data_9C = .data:0x0000009C; // type:object size:0xC lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xC lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4 @@ -286,7 +286,8 @@ lbl_1_data_36C = .data:0x0000036C; // type:object size:0x20 lbl_1_data_38C = .data:0x0000038C; // type:object size:0x20 lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x19 data:string lbl_1_data_3C5 = .data:0x000003C5; // type:object size:0x5 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 scope:local data:float lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte @@ -295,7 +296,8 @@ lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x8 data:2byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x8 data:2byte lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:4byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 1dd001d7..fc1e350b 100644 --- a/configure.py +++ b/configure.py @@ -1043,7 +1043,7 @@ config.libs = [ Rel( "m424Dll", # Blame it on the Crane objects={ - Object(NonMatching, "REL/m424Dll/main.c"), + Object(MatchingFor("GMPE01_00"), "REL/m424Dll/main.c"), Object(NonMatching, "REL/m424Dll/map.c"), Object(NonMatching, "REL/m424Dll/ball.c"), Object(NonMatching, "REL/m424Dll/claw.c"), diff --git a/src/REL/m424Dll/main.c b/src/REL/m424Dll/main.c index 3402c8e2..ad94798d 100644 --- a/src/REL/m424Dll/main.c +++ b/src/REL/m424Dll/main.c @@ -1,9 +1,19 @@ #include "REL/m424Dll.h" +#include "ext_math.h" +#include "game/audio.h" #include "game/hsfman.h" +#include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" -#include "game/audio.h" +#include "game/wipe.h" + +// STRUCT +typedef struct _M424DllMainStruct { + Vec rot; + Vec center; + f32 zoom; +} M424DllMainStruct; // BSS Process* lbl_1_bss_4C; @@ -11,20 +21,61 @@ s32 lbl_1_bss_48; s32 lbl_1_bss_44; s32 lbl_1_bss_40; s32 lbl_1_bss_3C; +s32 lbl_1_bss_38; // UNUSED s32 lbl_1_bss_34; +s32 lbl_1_bss_30; s32 lbl_1_bss_2C; s16 lbl_1_bss_24[4]; s16 lbl_1_bss_1C[4]; omObjData* lbl_1_bss_18; +omObjData* lbl_1_bss_14; +s32 lbl_1_bss_10; +s32 lbl_1_bss_C; +f32 lbl_1_bss_4[2]; // UNUSED +f32 lbl_1_bss_0; // data +M424DllMainStruct lbl_1_data_0[3] = { + { + { 320.0f, 0.0f, 0.0f }, + { 201.0f, 175.0f, 72.0f }, + 2025.0f + }, + { + { 320.0f, 0.0f, 0.0f }, + { 0.0f, 225.0f, -72.0f }, + 550.0f + }, + { + { 320.0f, 0.0f, 0.0f }, + { 401.0f, 175.0f, 72.0f }, + 625.0f + } +}; Vec lbl_1_data_54 = { 1000.0f, 2000.0f, 1000.0f }; Vec lbl_1_data_60 = { 0.0f, 1.0f, 0.0f }; Vec lbl_1_data_6C = { 0.0f, 0.0f, -450.0f }; // PROTO void fn_1_264(omObjData* object); +void fn_1_41C(omObjData* object); +void fn_1_EE0(omObjData* object); +void fn_1_F40(omObjData* object); void fn_1_FF0(void); +void fn_1_11EC(omObjData* object); +void fn_1_1204(s32, s32, f32); +f32 fn_1_16C0(f32, f32, f32); +void fn_1_1B8C(void); +void fn_1_1AB8(Process*); +f32 fn_1_213C(void); +void fn_1_2720(Process*); +void fn_1_2880(void); +s32 fn_1_8A2C(void); +void fn_1_93F0(Process*); +void fn_1_94A4(void); +s32 fn_1_B888(void); +s32 fn_1_B8AC(void); +s32 fn_1_B924(void); /// FUNCTIONS /// @@ -33,7 +84,7 @@ void ObjectSetup(void) { Process* var_r30; CameraData* var_r29; - OSReport("******* M424ObjectSetup *********"); + OSReport("******* M424ObjectSetup *********\n"); var_r30 = omInitObjMan(0x32, 0x2000); lbl_1_bss_4C = var_r30; omGameSysInit(var_r30); @@ -59,3 +110,336 @@ void ObjectSetup(void) { Hu3DShadowPosSet(&lbl_1_data_54, &lbl_1_data_60, &lbl_1_data_6C); Hu3DBGColorSet(0xFFU, 0xFFU, 0xFFU); } + +Vec lbl_1_data_9C = { 0.0f, 0.0f, 0.0f }; +Vec lbl_1_data_A8 = { -1.0f, -2.0f, -1.0f }; +GXColor lbl_1_data_B4 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +void fn_1_264(omObjData* object) { + s32 var_r31; + s32 var_r30; + s32 var_r29; + + var_r29 = Hu3DGLightCreateV(&lbl_1_data_9C, &lbl_1_data_A8, &lbl_1_data_B4); + Hu3DGLightStaticSet(var_r29, 1); + Hu3DGLightInfinitytSet(var_r29); + + for (var_r31 = 0, var_r30 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[var_r31].group == 0) { + lbl_1_bss_24[3] = var_r31; + lbl_1_bss_1C[3] = GWPlayerCfg[var_r31].character; + } else { + lbl_1_bss_24[var_r30] = var_r31; + lbl_1_bss_1C[var_r30] = GWPlayerCfg[var_r31].character; + var_r30++; + } + } + if (var_r30 >= 4) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_24[var_r31] = var_r31; + lbl_1_bss_1C[var_r31] = GWPlayerCfg[var_r31].character; + } + } + fn_1_1AB8(lbl_1_bss_4C); + fn_1_2720(lbl_1_bss_4C); + fn_1_93F0(lbl_1_bss_4C); + object->func = fn_1_41C; +} + +void fn_1_41C(omObjData* object) { + s16 sp16; + s16 sp12; + s16 spE; + s16 spA; + f32 var_f31; + s32 var_r31; + s32 var_r30; + CameraData* var_r29; + + switch (lbl_1_bss_40) { + case 0: + lbl_1_bss_0 += fn_1_213C(); + fn_1_1204(2, 2, var_f31); + if (lbl_1_bss_0 >= 360.0f) { + WipeCreate(1, 0, 0x3C); + var_r29 = &Hu3DCamera[0]; + var_r29->fov = 45.0f; + lbl_1_bss_40 = 1; + lbl_1_bss_3C = 0; + } + break; + case 1: + if (WipeStatGet() == 0) { + lbl_1_bss_40 = 2; + lbl_1_bss_3C = 0; + } + break; + case 2: + if (++lbl_1_bss_3C >= 120.0f) { + lbl_1_bss_48 = MGSeqCreate(3, 0); + lbl_1_bss_40 = 3; + lbl_1_bss_3C = 0; + lbl_1_bss_34 = 0; + } + break; + case 3: + lbl_1_bss_34++; + var_f31 = lbl_1_bss_34 / 60.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + var_f31 = sind((90.0f * (var_f31 * var_f31))); + fn_1_1204(2, 0, var_f31); + if (lbl_1_bss_48 != -1) { + var_r31 = MGSeqStatGet(lbl_1_bss_48); + if (((var_r31 & 0x10) != 0) && (lbl_1_bss_2C == -1)) { + lbl_1_bss_2C = HuAudSeqPlay(0x48); + } + } else { + var_r31 = 0; + } + if ((lbl_1_bss_48 == -1) || (var_r31 == 0)) { + if (lbl_1_bss_34 >= 60.0f) { + lbl_1_bss_48 = -1; + lbl_1_bss_40 = 4; + lbl_1_bss_3C = 0; + lbl_1_bss_34 = 0xE10; + lbl_1_bss_44 = MGSeqCreate(1, lbl_1_bss_34 / 60, -1, -1); + } + } + break; + case 4: + var_r30 = (lbl_1_bss_34 + 0x3B) / 60; + if (var_r30 < 0) { + var_r30 = 0; + } + MGSeqParamSet(lbl_1_bss_44, 1, var_r30); + if ((--lbl_1_bss_34 < -1) || (fn_1_B888() != 0)) { + MGSeqParamSet(lbl_1_bss_44, 2, -1); + lbl_1_bss_44 = -1; + lbl_1_bss_48 = MGSeqCreate(3, 1); + if (lbl_1_bss_2C != -1) { + HuAudSeqFadeOut(lbl_1_bss_2C, 0x64); + } + lbl_1_bss_40 = 5; + lbl_1_bss_3C = 0; + } + break; + case 5: + if ((lbl_1_bss_48 == -1) || ((MGSeqStatGet(lbl_1_bss_48) == 0) && (fn_1_B8AC() != 0) && (fn_1_8A2C() != 0) && (fn_1_213C() <= 0.0f))) { + if (fn_1_B888() != 0) { + lbl_1_bss_30 = 0; + } else { + lbl_1_bss_30 = 1; + } + HuAudAllStop(); + lbl_1_bss_40 = 6; + lbl_1_bss_3C = 0; + } + break; + case 6: + if (lbl_1_bss_30 == 0) { + if (fn_1_B924() != 0) { + lbl_1_bss_40 = 7; + lbl_1_bss_3C = 0; + } + } else { + if (++lbl_1_bss_3C >= 120.0f) { + lbl_1_bss_40 = 7; + lbl_1_bss_3C = 0; + } + } + break; + case 7: + if (lbl_1_bss_30 != 0) { + lbl_1_bss_48 = MGSeqCreate(5, 3, lbl_1_bss_1C[0], lbl_1_bss_1C[1], lbl_1_bss_1C[2], -1); + GWPlayerCoinWinSet(lbl_1_bss_24[0], GWPlayerCoinWinGet(lbl_1_bss_24[0]) + 10); + GWPlayerCoinWinSet(lbl_1_bss_24[1], GWPlayerCoinWinGet(lbl_1_bss_24[1]) + 10); + GWPlayerCoinWinSet(lbl_1_bss_24[2], GWPlayerCoinWinGet(lbl_1_bss_24[2]) + 10); + HuAudSStreamPlay(1); + lbl_1_bss_40 = 8; + lbl_1_bss_34 = 0; + } else { + lbl_1_bss_48 = MGSeqCreate(5, 3, lbl_1_bss_1C[3], -1, -1, -1); + GWPlayerCoinWinSet(lbl_1_bss_24[3], GWPlayerCoinWinGet(lbl_1_bss_24[3]) + 10); + HuAudSStreamPlay(1); + lbl_1_bss_40 = 8; + lbl_1_bss_34 = 0; + } + break; + case 8: + if (lbl_1_bss_30 == 0) { + var_f31 = lbl_1_bss_34 / 60.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + var_f31 = sind(90.0f * (var_f31 * var_f31)); + fn_1_1204(0, 1, var_f31); + } + if (++lbl_1_bss_34 >= 210.0f) { + lbl_1_bss_48 = -1; + lbl_1_bss_40 = 9; + lbl_1_bss_34 = 0; + } + break; + case 9: + WipeCreate(2, 0, 0x3C); + object->func = fn_1_EE0; + break; + } + fn_1_F40(object); +} + +void fn_1_EE0(omObjData* object) { + if (WipeStatGet() == 0) { + Hu3DBGColorSet(0U, 0U, 0U); + fn_1_1B8C(); + fn_1_2880(); + fn_1_94A4(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_F40(omObjData* object) { + s32 var_r30; + + var_r30 = 0; + if ((WipeStatGet() != 0) || (object->func == fn_1_EE0)) { + return; + } + if (omSysExitReq != 0) { + var_r30 = 1; + } + if (var_r30 != 0) { + WipeCreate(2, 0, 0x3C); + HuAudStreamFadeOut(0x1E); + object->func = fn_1_EE0; + } +} + +s32 fn_1_FE0(void) { + return lbl_1_bss_40; +} + +void fn_1_FF0(void) { + omObjData* var_r31; + + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 45.0f, 50.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x280, 0x1E0); + var_r31 = lbl_1_bss_14 = omAddObjEx(lbl_1_bss_4C, 0x7FDA, 0, 0, -1, omOutView); + var_r31->work[0] = 1; + CRot.x = lbl_1_data_0[0].rot.x; + CRot.y = lbl_1_data_0[0].rot.y; + CRot.z = lbl_1_data_0[0].rot.z; + Center.x = lbl_1_data_0[0].center.x; + Center.y = lbl_1_data_0[0].center.y; + Center.z = lbl_1_data_0[0].center.z; + CZoom = lbl_1_data_0[0].zoom; + lbl_1_bss_C = 0; + lbl_1_bss_10 = -1; + omAddObjEx(lbl_1_bss_4C, 0xFF, 0, 0, -1, fn_1_11EC); +} + +void fn_1_11EC(omObjData* object) {} +void fn_1_11F0(void) {} + +s32 fn_1_11F4(void) { + return lbl_1_bss_C; +} + +void fn_1_1204(s32 arg0, s32 arg1, f32 arg2) { + M424DllMainStruct* temp_r30; + M424DllMainStruct* temp_r31; + + temp_r31 = &lbl_1_data_0[arg0]; + temp_r30 = &lbl_1_data_0[arg1]; + CRot.x = fn_1_16C0(arg2, temp_r31->rot.x, temp_r30->rot.x); + CRot.y = fn_1_16C0(arg2, temp_r31->rot.y, temp_r30->rot.y); + CRot.z = fn_1_16C0(arg2, temp_r31->rot.z, temp_r30->rot.z); + Center.x = temp_r31->center.x + (arg2 * (temp_r30->center.x - temp_r31->center.x)); + Center.y = temp_r31->center.y + (arg2 * (temp_r30->center.y - temp_r31->center.y)); + Center.z = temp_r31->center.z + (arg2 * (temp_r30->center.z - temp_r31->center.z)); + CZoom = temp_r31->zoom + (arg2 * (temp_r30->zoom - temp_r31->zoom)); +} + +f32 fn_1_1358(f32 arg8, f32 arg9) { + f32 var_f31; + + if (arg8 >= 360.0f) { + arg8 -= 360.0f; + } else if (arg8 < 0.0f) { + arg8 += 360.0f; + } + if (arg9 >= 360.0f) { + arg9 -= 360.0f; + } else if (arg9 < 0.0f) { + arg9 += 360.0f; + } + var_f31 = arg8 - arg9; + if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } else { + if (var_f31 >= 180.0f) { + var_f31 -= 360.0f; + } + } + return var_f31; +} + +f32 fn_1_1470(f32 arg8, f32 arg9, f32 argA) { + f32 var_f30; + f32 var_f31; + + if (arg8 >= 360.0) { + arg8 -= 360.0; + } else if (arg8 < 0.0) { + arg8 += 360.0; + } + if (arg9 >= 360.0) { + arg9 -= 360.0; + } else if (arg9 < 0.0) { + arg9 += 360.0; + } + var_f30 = (360.0 + (arg8 - arg9)); + if (fabs(var_f30) >= 360.0) { + var_f30 = fmod(var_f30, 360.0); + } + if (var_f30 < 180.0) { + if (var_f30 <= argA) { + var_f31 = var_f30; + } else { + var_f31 = argA; + } + } else { + if ((360.0 - var_f30) <= argA) { + var_f31 = -(360.0 - var_f30); + } else { + var_f31 = -argA; + } + } + var_f31 = var_f31 + arg9; + if (var_f31 >= 360.0) { + var_f31 -= 360.0; + } else if (var_f31 < 0.0) { + var_f31 += 360.0; + } + return var_f31; +} + +f32 fn_1_16C0(f32 arg0, f32 arg1, f32 arg2) { + f32 temp_f24; + f32 var_f23; + + var_f23 = fn_1_1358(arg2, arg1); + temp_f24 = fabs(var_f23 * arg0); + return fn_1_1470(arg2, arg1, temp_f24); +} + +// // @todo move to map.c? +// Vec lbl_1_data_E0 = { 0.0f, 3000.0f, 1.0f }; +// Vec lbl_1_data_EC = { 0.0f, 1.0f, 0.0f }; +// Vec lbl_1_data_F8 = { 0.0f, 0.0f, 0.0f }; From af59d1527b7e1cae85dd7dbb1edcb3c15cdbb9b7 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Tue, 31 Dec 2024 13:15:36 -0500 Subject: [PATCH 223/311] match m424/map --- config/GMPE01_00/rels/m424Dll/symbols.txt | 5 +- configure.py | 2 +- include/REL/m424Dll.h | 21 ++ src/REL/m424Dll/main.c | 24 -- src/REL/m424Dll/map.c | 283 ++++++++++++++++++++++ 5 files changed, 309 insertions(+), 26 deletions(-) create mode 100644 src/REL/m424Dll/map.c diff --git a/config/GMPE01_00/rels/m424Dll/symbols.txt b/config/GMPE01_00/rels/m424Dll/symbols.txt index 05b78c80..ffdf249f 100644 --- a/config/GMPE01_00/rels/m424Dll/symbols.txt +++ b/config/GMPE01_00/rels/m424Dll/symbols.txt @@ -267,7 +267,10 @@ lbl_1_data_E0 = .data:0x000000E0; // type:object size:0xC lbl_1_data_EC = .data:0x000000EC; // type:object size:0xC lbl_1_data_F8 = .data:0x000000F8; // type:object size:0xC lbl_1_data_104 = .data:0x00000104; // type:object size:0x7 data:string -lbl_1_data_10C = .data:0x0000010C; // type:object size:0x44 +lbl_1_data_10C = .data:0x0000010C; // type:object size:0x1C +lbl_1_data_128 = .data:0x00000128; // type:object size:0x4 data:byte +lbl_1_data_12C = .data:0x0000012C; // type:object size:0x1C +lbl_1_data_148 = .data:0x00000148; // type:object size:0x8 lbl_1_data_150 = .data:0x00000150; // type:object size:0x2C lbl_1_data_17C = .data:0x0000017C; // type:object size:0x30 jumptable_1_data_1AC = .data:0x000001AC; // type:object size:0x2C scope:local diff --git a/configure.py b/configure.py index f49cd131..126114bd 100644 --- a/configure.py +++ b/configure.py @@ -1044,7 +1044,7 @@ config.libs = [ "m424Dll", # Blame it on the Crane objects={ Object(MatchingFor("GMPE01_00"), "REL/m424Dll/main.c"), - Object(NonMatching, "REL/m424Dll/map.c"), + Object(MatchingFor("GMPE01_00"), "REL/m424Dll/map.c"), Object(NonMatching, "REL/m424Dll/ball.c"), Object(NonMatching, "REL/m424Dll/claw.c"), }, diff --git a/include/REL/m424Dll.h b/include/REL/m424Dll.h index 2739a911..885af5eb 100644 --- a/include/REL/m424Dll.h +++ b/include/REL/m424Dll.h @@ -1 +1,22 @@ #include "dolphin.h" + +#include "game/object.h" + +typedef struct _M424DllMainStruct { + Vec rot; + Vec center; + f32 zoom; +} M424DllMainStruct; // sizeof 1C + +omObjData* fn_1_1AB8(Process*); +void fn_1_1B8C(void); +f32 fn_1_213C(void); +void fn_1_2720(Process*); +void fn_1_2880(void); +s32 fn_1_8A2C(void); +void fn_1_93F0(Process*); +void fn_1_94A4(void); +s32 fn_1_B804(void); +s32 fn_1_B888(void); +s32 fn_1_B8AC(void); +s32 fn_1_B924(void); diff --git a/src/REL/m424Dll/main.c b/src/REL/m424Dll/main.c index ad94798d..00db5d94 100644 --- a/src/REL/m424Dll/main.c +++ b/src/REL/m424Dll/main.c @@ -4,17 +4,9 @@ #include "game/audio.h" #include "game/hsfman.h" #include "game/minigame_seq.h" -#include "game/object.h" #include "game/objsub.h" #include "game/wipe.h" -// STRUCT -typedef struct _M424DllMainStruct { - Vec rot; - Vec center; - f32 zoom; -} M424DllMainStruct; - // BSS Process* lbl_1_bss_4C; s32 lbl_1_bss_48; @@ -65,17 +57,6 @@ void fn_1_FF0(void); void fn_1_11EC(omObjData* object); void fn_1_1204(s32, s32, f32); f32 fn_1_16C0(f32, f32, f32); -void fn_1_1B8C(void); -void fn_1_1AB8(Process*); -f32 fn_1_213C(void); -void fn_1_2720(Process*); -void fn_1_2880(void); -s32 fn_1_8A2C(void); -void fn_1_93F0(Process*); -void fn_1_94A4(void); -s32 fn_1_B888(void); -s32 fn_1_B8AC(void); -s32 fn_1_B924(void); /// FUNCTIONS /// @@ -438,8 +419,3 @@ f32 fn_1_16C0(f32 arg0, f32 arg1, f32 arg2) { temp_f24 = fabs(var_f23 * arg0); return fn_1_1470(arg2, arg1, temp_f24); } - -// // @todo move to map.c? -// Vec lbl_1_data_E0 = { 0.0f, 3000.0f, 1.0f }; -// Vec lbl_1_data_EC = { 0.0f, 1.0f, 0.0f }; -// Vec lbl_1_data_F8 = { 0.0f, 0.0f, 0.0f }; diff --git a/src/REL/m424Dll/map.c b/src/REL/m424Dll/map.c new file mode 100644 index 00000000..7215c532 --- /dev/null +++ b/src/REL/m424Dll/map.c @@ -0,0 +1,283 @@ +#include "REL/m424Dll.h" + +#include "math.h" +#include "game/audio.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" + +// STRUCT +typedef struct _M424DllMapStruct { + f32 unk0; + f32 unk4; + Mtx unk8; + s32 unk38; + f32 unk3C; + s32 unk40; + s32 unk44; + s32 unk48; + s32 unk4C; + s32 unk50; +} M424DllMapStruct; // sizeof 0x54 + +// BSS +Process* lbl_1_bss_54; +omObjData* lbl_1_bss_50; + +// DATA +Vec lbl_1_data_E0 = { 0.0f, 3000.0f, 1.0f }; +Vec lbl_1_data_EC = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_F8 = { 0.0f, 0.0f, 0.0f }; + +// PROTO +void fn_1_1BB8(omObjData*); +void fn_1_1E1C(omObjData*); +void fn_1_2130(omObjData*); +void fn_1_2438(f32); + +omObjData* fn_1_1AB8(Process* arg0) { + lbl_1_bss_54 = arg0; + lbl_1_bss_50 = omAddObjEx(arg0, 0x7F, 6, 0, -1, fn_1_1BB8); + lbl_1_bss_50->data = NULL; + Hu3DShadowCreate(45.0f, 1000.0f, 250000.0f); + Hu3DShadowTPLvlSet(0.3f); + Hu3DShadowPosSet(&lbl_1_data_E0, &lbl_1_data_EC, &lbl_1_data_F8); + return lbl_1_bss_50; +} + +void fn_1_1B8C(void) { + fn_1_2130(lbl_1_bss_50); +} + +void fn_1_1BB8(omObjData* arg0) { + M424DllMapStruct* var_r30; + + var_r30 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, 0x10000000); + memset(var_r30, 0, 0x54); + var_r30->unk0 = 0.0f; + var_r30->unk4 = 0.0f; + var_r30->unk38 = -1; + var_r30->unk3C = 0.0f; + var_r30->unk40 = 0; + var_r30->unk44 = -1; + var_r30->unk48 = 0; + var_r30->unk4C = 0; + var_r30->unk50 = -1; + arg0->model[0] = Hu3DModelCreateFile(0x370017); + arg0->model[1] = Hu3DModelCreateFile(0x370018); + arg0->model[2] = Hu3DModelCreateFile(0x370019); + arg0->model[3] = Hu3DModelCreateFile(0x37001A); + arg0->model[4] = Hu3DModelCreateFile(0x37001B); + arg0->model[5] = Hu3DModelCreateFile(0x37001C); + Hu3DModelAttrSet(arg0->model[4], 1); + Hu3DMotionSpeedSet(arg0->model[1], var_r30->unk0); + Hu3DModelAttrSet(arg0->model[1], 0x40000001); + Hu3DMotionSpeedSet(arg0->model[0], 0.15f); + Hu3DModelAttrSet(arg0->model[0], 0x40000001); + Hu3DModelPosSet(arg0->model[2], 847.135f, 0.0f, 424.56f); + Hu3DMotionSpeedSet(arg0->model[4], 2.0f); + Hu3DModelAttrSet(arg0->model[4], 0x40000001); + Hu3DModelShadowMapSet(arg0->model[0]); + Hu3DModelShadowMapSet(arg0->model[1]); + Hu3DModelShadowMapSet(arg0->model[2]); + arg0->func = fn_1_1E1C; +} + +void fn_1_1E1C(omObjData* arg0) { + f32 temp_f31; + M424DllMapStruct* temp_r31; + + temp_r31 = arg0->data; + if (temp_r31->unk40 > 0) { + fn_1_2438(temp_r31->unk3C); + if ((--temp_r31->unk40 <= 0) && (temp_r31->unk44 != -1)) { + HuAudFXStop(temp_r31->unk44); + temp_r31->unk44 = -1; + } + } + switch (fn_1_FE0()) { + case 0: + temp_r31->unk0 = 0.5f; + break; + case 1: + case 2: + temp_r31->unk0 = 0.0f; + break; + case 3: + case 4: + temp_r31->unk0 += 0.001f; + if (temp_r31->unk0 > 0.04f) { + temp_r31->unk0 = 0.04f; + } + if (temp_r31->unk38 != -1) break; + + temp_r31->unk38 = HuAudFXPlay(0x626); + break; + default: + if ((fn_1_B804() == 0) && (fn_1_8A2C() != 0)) { + temp_r31->unk0 *= 0.9f; + if (temp_r31->unk0 < 0.01f) { + temp_r31->unk0 = 0.0f; + } + temp_f31 = temp_r31->unk0 / 0.04f; + if (temp_r31->unk38 != -1) { + HuAudFXVolSet(temp_r31->unk38, (s16) (-8191.0f * (1.0f - temp_f31))); + HuAudFXPitchSet(temp_r31->unk38, (s16) (127.0f * temp_f31)); + if (temp_f31 <= 0.0f) { + HuAudFXStop(temp_r31->unk38); + temp_r31->unk38 = -1; + } + } + } + break; + } + + if (temp_r31->unk48 != 0) { + if (temp_r31->unk4C != 0) { + temp_r31->unk4C = (temp_r31->unk4C - 1); + } else { + temp_r31->unk48 = (temp_r31->unk48 - 1); + if (temp_r31->unk48 != 0) { + Hu3DModelAttrReset(arg0->model[4], 1); + Hu3DModelAttrSet(arg0->model[5], 1); + } else { + Hu3DModelAttrSet(arg0->model[4], 1); + Hu3DModelAttrReset(arg0->model[5], 1); + if (temp_r31->unk50 != -1) { + HuAudFXStop(temp_r31->unk50); + temp_r31->unk50 = -1; + } + } + } + } + temp_r31->unk4 = (20.0f * temp_r31->unk0); + PSMTXRotRad(temp_r31->unk8, 0x59, MTXDegToRad(temp_r31->unk4)); + Hu3DMotionSpeedSet(arg0->model[1], temp_r31->unk0); +} + +void fn_1_2130(omObjData* arg0) { + arg0->func = NULL; +} + +f32 fn_1_213C(void) { + M424DllMapStruct* var_r31; + if (!lbl_1_bss_50) { + return 0.0f; + } + if (!lbl_1_bss_50->data) { + return 0.0f; + } + var_r31 = lbl_1_bss_50->data; + return var_r31->unk4; +} + +void fn_1_21B0(Mtx arg0) { + M424DllMapStruct* var_r31; + if (lbl_1_bss_50 && lbl_1_bss_50->data) { + var_r31 = lbl_1_bss_50->data; + PSMTXCopy(var_r31->unk8, *(Mtx*)&arg0); + } +} + +void fn_1_2220(Vec* arg0, Vec* arg1) { + Vec spC; + M424DllMapStruct* temp_r30; + + if (lbl_1_bss_50 && lbl_1_bss_50->data) { + temp_r30 = lbl_1_bss_50->data; + if (sqrtf((arg0->x * arg0->x) + (arg0->z * arg0->z)) < 700.0f) { + spC.x = (temp_r30->unk8[0][0] * arg0->x) + (temp_r30->unk8[0][2] * arg0->z); + spC.z = (temp_r30->unk8[2][0] * arg0->x) + (temp_r30->unk8[2][2] * arg0->z); + spC.y = arg0->y; + } else { + spC = *arg0; + } + PSVECSubtract(&spC, arg0, &spC); + *arg1 = spC; + } +} + +void fn_1_2438(f32 arg0) { + M424DllMapStruct* spC; + HsfAttribute* var_r31; + ModelData* temp_r30; + HsfData* temp_r29; + s32 var_r28; + HsfBitmap* var_r27; + omObjData* var_r26; + + if (lbl_1_bss_50 && lbl_1_bss_50->data) { + var_r26 = lbl_1_bss_50; + spC = lbl_1_bss_50->data; + temp_r30 = &Hu3DData[var_r26->model[2]]; + temp_r29 = temp_r30->hsfData; + var_r31 = temp_r30->hsfData->attribute; + for (var_r28 = 0; var_r28 < temp_r29->attributeCnt; var_r28++, var_r31++) { + var_r27 = var_r31->bitmap; + if (strcmp("cr_dk2", var_r27->name) == 0) break; + } + if (var_r28 < temp_r29->attributeCnt) { + var_r31->unk30 += arg0; + } + } +} + +void fn_1_252C(f32 arg8, s32 arg0) { + omObjData* sp10; + M424DllMapStruct* temp_r31; + + if (lbl_1_bss_50 && lbl_1_bss_50->data) { + sp10 = lbl_1_bss_50; + temp_r31 = lbl_1_bss_50->data; + temp_r31->unk44 = HuAudFXPlay(0x627); + temp_r31->unk3C = arg8; + temp_r31->unk40 = arg0; + } +} + +f32 fn_1_25C0(void) { + omObjData* sp8; + M424DllMapStruct* temp_r31; + + if (!lbl_1_bss_50) { + return 0.0f; + } + if (!lbl_1_bss_50->data) { + return 0.0f; + } + sp8 = lbl_1_bss_50; + temp_r31 = lbl_1_bss_50->data; + if (temp_r31->unk40 != 0) { + return 250.0f * temp_r31->unk3C; + } + return 0.0f; +} + +void fn_1_2670(s32 arg0, s32 arg1) { + omObjData* temp_r30; + M424DllMapStruct* temp_r31; + + if (lbl_1_bss_50 && lbl_1_bss_50->data) { + temp_r30 = lbl_1_bss_50; + temp_r31 = lbl_1_bss_50->data; + temp_r31->unk50 = HuAudFXPlay(0x629); + temp_r31->unk48 = arg0; + temp_r31->unk4C = arg1; + Hu3DMotionTimeSet(temp_r30->model[4], 0.0f); + } +} + +// UNUSED (guessing types) +M424DllMainStruct lbl_1_data_10C = { + { 0.0f, 0.0f, 5500.0f }, + { -3950.0f, 0.0f, -0.7f }, + 0.6f +}; + +GXColor lbl_1_data_128 = { 0xFF, 0xFF, 0xFF, 0xFF }; +M424DllMainStruct lbl_1_data_12C = { + { 0.0f, 5500.0f, -3950.0f }, + { 0.0f, 1.0f, 0.0f }, + 0.0f +}; + +s32 lbl_1_data_148[2] = {0}; From 15173884ac54d5f12afbf1565baa7f84c66ca573 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Tue, 31 Dec 2024 17:41:31 -0800 Subject: [PATCH 224/311] Matched most of m457Dll (1 function left) --- config/GMPE01_00/rels/m457Dll/symbols.txt | 22 +- src/REL/m457Dll/main.c | 1665 +++++++++++++++++++++ 2 files changed, 1676 insertions(+), 11 deletions(-) create mode 100755 src/REL/m457Dll/main.c diff --git a/config/GMPE01_00/rels/m457Dll/symbols.txt b/config/GMPE01_00/rels/m457Dll/symbols.txt index 02f3cb11..05be3e42 100644 --- a/config/GMPE01_00/rels/m457Dll/symbols.txt +++ b/config/GMPE01_00/rels/m457Dll/symbols.txt @@ -52,8 +52,8 @@ lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:4byte -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x90 +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x90 data:float lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double @@ -104,9 +104,9 @@ lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x5C lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0xC data:4byte -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0xC data:4byte -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x1 data:byte +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0xC data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0xC data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:byte lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float @@ -126,11 +126,11 @@ lbl_1_data_5C = .data:0x0000005C; // type:object size:0x5C data:4byte lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x30 lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x30 lbl_1_data_118 = .data:0x00000118; // type:object size:0x30 -lbl_1_data_148 = .data:0x00000148; // type:object size:0xC +lbl_1_data_148 = .data:0x00000148; // type:object size:0xC data:byte lbl_1_data_154 = .data:0x00000154; // type:object size:0x30 lbl_1_data_184 = .data:0x00000184; // type:object size:0x30 -lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x6C -lbl_1_data_220 = .data:0x00000220; // type:object size:0x6C +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x6C data:float +lbl_1_data_220 = .data:0x00000220; // type:object size:0x6C data:float lbl_1_data_28C = .data:0x0000028C; // type:object size:0x18 data:float lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x2 data:2byte lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x2 data:2byte @@ -152,7 +152,7 @@ jumptable_1_data_36C = .data:0x0000036C; // type:object size:0x2C scope:local lbl_1_data_398 = .data:0x00000398; // type:object size:0x12 data:string lbl_1_data_3AA = .data:0x000003AA; // type:object size:0x19 data:string lbl_1_data_3C3 = .data:0x000003C3; // type:object size:0x24 data:string -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte @@ -162,14 +162,14 @@ lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte diff --git a/src/REL/m457Dll/main.c b/src/REL/m457Dll/main.c new file mode 100755 index 00000000..ee748d30 --- /dev/null +++ b/src/REL/m457Dll/main.c @@ -0,0 +1,1665 @@ +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/process.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "ext_math.h" + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ s32 unk28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s32 unk30; + /* 0x34 */ s32 unk34; + /* 0x38 */ s32 unk38; + /* 0x3C */ s32 unk3C; + /* 0x40 */ s32 unk40; + /* 0x44 */ s32 unk44; + /* 0x48 */ float unk48; + /* 0x4C */ s32 unk4C; +} StructBss68Data; // Size 0x50 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ float unk04[3]; +} StructBss78; // Size 0x10 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ float unk08; + /* 0x0C */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; +} StructData28C; // Size 0x18 + +void fn_1_7AE4(omObjData* arg0); + +StructBss78 lbl_1_bss_78[5]; +omObjData* lbl_1_bss_74; +omObjData* lbl_1_bss_70; +omObjData* lbl_1_bss_68[2]; +omObjData* lbl_1_bss_64; +s32 lbl_1_bss_60; +s32 lbl_1_bss_5C; +char lbl_1_bss_58[4]; // unused +s32 lbl_1_bss_54; +s32 lbl_1_bss_50; +Process* lbl_1_bss_4C; +s32 lbl_1_bss_48; +s32 lbl_1_bss_44; +s32 lbl_1_bss_40; +s32 lbl_1_bss_3C; +char lbl_1_bss_38[4]; // unused +float lbl_1_bss_34; +float lbl_1_bss_30; +float lbl_1_bss_2C; +float lbl_1_bss_28; +s32 lbl_1_bss_24; +s32 lbl_1_bss_20; +s32 lbl_1_bss_1C; +s32 lbl_1_bss_18; +s32 lbl_1_bss_14; +s32 lbl_1_bss_10; +char lbl_1_bss_8[8]; // unused +s32 lbl_1_bss_4; +char lbl_1_bss_0[4]; // unused + +s32 lbl_1_data_0[] = { + DATA_MAKE_NUM(DATADIR_M457, 23), + DATA_MAKE_NUM(DATADIR_M457, 22), + DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_MGCONST, 0), + DATA_MAKE_NUM(DATADIR_M457, 23), + DATA_MAKE_NUM(DATADIR_M457, 22), + DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_MGCONST, 0), + DATA_MAKE_NUM(DATADIR_M457, 27), + DATA_MAKE_NUM(DATADIR_M457, 28), + DATA_MAKE_NUM(DATADIR_M457, 25), + DATA_MAKE_NUM(DATADIR_M457, 25), + DATA_MAKE_NUM(DATADIR_M457, 25), + DATA_MAKE_NUM(DATADIR_M457, 25), + DATA_MAKE_NUM(DATADIR_M457, 25) +}; + +s32 lbl_1_data_5C[23] = { 0 }; + +s32 lbl_1_data_B8[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 5), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 112), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 111), + DATA_MAKE_NUM(DATADIR_M457, 8), + DATA_MAKE_NUM(DATADIR_M457, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 12), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 13), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 21), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) +}; + +u32 lbl_1_data_E8[] = { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 }; + +u32 lbl_1_data_118[] = { + DATA_MAKE_NUM(DATADIR_BKOOPA, 8), + DATA_MAKE_NUM(DATADIR_BKOOPA, 10), + 0, + DATA_MAKE_NUM(DATADIR_M457, 31), + DATA_MAKE_NUM(DATADIR_M457, 32), + DATA_MAKE_NUM(DATADIR_M457, 33), + DATA_MAKE_NUM(DATADIR_M457, 34), + DATA_MAKE_NUM(DATADIR_M457, 35), + DATA_MAKE_NUM(DATADIR_M457, 36), + DATA_MAKE_NUM(DATADIR_M457, 37), + DATA_MAKE_NUM(DATADIR_M457, 29), + DATA_MAKE_NUM(DATADIR_M457, 30) +}; + +u8 lbl_1_data_148[12] = { 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1 }; +s32 lbl_1_data_154[12] = { 8, 0, 0, 8, 5, 8, 4, 2, 2, 8, 8, 8 }; +s32 lbl_1_data_184[12] = { 0 }; + +float lbl_1_data_1B4[][3] = { + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, + { 20.0f, 60.0f, 20.0f }, + { 20.0f, 70.0f, 20.0f }, + { 20.0f, 20.0f, 20.0f }, + { 50.0f, -70.0f, 0.0f }, + { 20.0f, 60.0f, 20.0f }, + { 100.0f, 0.0f, 50.0f }, + { -70.0f, -70.0f, -70.0f } +}; + +float lbl_1_data_220[][3] = { + { 1.5f, 45.0f, 270.0f }, + { 1.7f, 45.0f, 270.0f }, + { 1.8f, 45.0f, 270.0f }, + { 1.6f, 45.0f, 270.0f }, + { 1.7f, 5.0f, 270.0f }, + { 2.0f, -85.0f, 295.0f }, + { 1.8f, 45.0f, 270.0f }, + { 2.0f, 40.0f, 330.0f }, + { 2.25f, -30.0f, 300.0f } +}; + +StructData28C lbl_1_data_28C = { 0 }; + +s16 lbl_1_data_2A4 = -1; +s16 lbl_1_data_2A6 = -1; +s32 lbl_1_data_2A8 = -1; +s32 lbl_1_data_2AC = -1; +s16 lbl_1_data_2B0 = -1; +s32 lbl_1_data_2B4 = -1; +s32 lbl_1_data_2B8 = 600; + +void fn_1_A0(void) { + Center.x += 10.0 * (((HuPadBtn[0] & PAD_BUTTON_RIGHT) != 0) - ((HuPadBtn[0] & PAD_BUTTON_LEFT) != 0)); + Center.z -= 10.0 * (((HuPadBtn[0] & PAD_BUTTON_UP) != 0) - ((HuPadBtn[0] & PAD_BUTTON_DOWN) != 0)); + Center.y += 10.0 * (((HuPadBtn[0] & PAD_BUTTON_Y) != 0) - ((HuPadBtn[0] & PAD_BUTTON_X) != 0)); + CZoom += 25.0 * (((HuPadBtn[0] & PAD_BUTTON_X) != 0) - ((HuPadBtn[0] & PAD_BUTTON_Y) != 0)); + CRot.y += HuPadSubStkX[0] / 16.0; + CRot.x += HuPadSubStkY[0] / -16.0; + print8(64, 392, 1.0f, "%f,%f,%f", Center.x, Center.y, Center.z); + print8(64, 408, 1.0f, "%f,%f,%f", CRot.x, CRot.y, CRot.z); + print8(64, 424, 1.0f, "%f", CZoom); +} + +void fn_1_46C(omObjData* arg0) { + s16 var_r29; + s16 var_r26; + s16 var_r22; + s32 var_r20; + s32 var_r25; + s32 var_r24; + Vec sp104; + float spFC[2]; + float spE8; + float spE4; + float spE0; + float temp_f31; + s32 spDC; + s32 spD8; + s32 sp20; + s32 temp_r19; + s32 temp_r21; + char* var_r18; + StructBss68Data* temp_r31; + StructBss68Data* temp_r28; + ModelData* spD4; + s32 i; + + temp_r31 = arg0->data; + temp_r28 = lbl_1_bss_68[1 - arg0->work[0]]->data; + spE8 = 0.0f; + spE4 = 0.0f; + spE0 = 0.0f; + spDC = 0; + var_r29 = -1; + var_r26 = -1; + var_r22 = -1; + var_r20 = (temp_r31->unk0C == -1) ? 0 + : ((HuPadBtnDown[temp_r31->unk0C] & 0x100) > 0); + var_r25 = (temp_r31->unk0C == -1) ? 0 + : ((HuPadBtnDown[temp_r31->unk0C] & 0x20) > 0); + var_r24 = (temp_r31->unk0C == -1) ? 0 + : ((HuPadBtnDown[temp_r31->unk0C] & 0x40) > 0); + if (temp_r31->unk0C == -1) { + temp_r31->unk3C--; + if (temp_r31->unk3C <= 0) { + if (temp_r31->unk14 == 1) { + var_r20 = 1; + } else { + var_r25 = var_r24 = 1; + } + if (temp_r31->unk14 >= 8 || (temp_r31->unk14 >= 3 && temp_r31->unk18 >= 10)) { + switch (temp_r31->unk10) { + case 0: + temp_r31->unk3C = rand8() % 14 + 4 + + (temp_r31->unk14 != 8 ? 28 - temp_r31->unk18 : 0); + break; + case 1: + temp_r31->unk3C = rand8() % 9 + 4 + + (temp_r31->unk14 != 8 ? 28 - temp_r31->unk18 : 0); + break; + case 2: + temp_r31->unk3C = rand8() % 10 + 12 + + ((temp_r31->unk14 != 8 && temp_r31->unk18 >= 9 && temp_r31->unk18 <= 13) ? 13 - temp_r31->unk18 : 0); + break; + case 3: + temp_r31->unk3C = rand8() % 5 + 4 + + ((temp_r31->unk14 != 8 && temp_r31->unk18 >= 2 && temp_r31->unk18 <= 17) ? 17 - temp_r31->unk18 : 0); + if (temp_r28->unk1C > 0 || temp_r31->unk14 == 7) { + var_r24 = var_r25 = 0; + } + break; + } + } + } + } + if (temp_r31->unk38 == 0) { + var_r24 = 0; + } + if (temp_r31->unk38 == 1) { + var_r25 = 0; + } + if (temp_r31->unk20 > 0) { + var_r20 = 0; + temp_r31->unk20--; + } else if (var_r20 != 0) { + temp_r31->unk20 = 20; + } + if (temp_r31->unk24 > 0) { + var_r24 = 0; + temp_r31->unk24--; + } else if (var_r24 != 0) { + temp_r31->unk24 = 6; + } + if (temp_r31->unk28 > 0) { + var_r25 = 0; + temp_r31->unk28--; + } else if (var_r25 != 0) { + temp_r31->unk28 = 6; + } + if (lbl_1_bss_5C == 1008 && temp_r31->unk14 >= 8 && temp_r31->unk14 <= 14) { + spD8 = temp_r31->unk30; + if (var_r24 != 0) { + temp_r31->unk30 -= 7; + } + if (var_r25 != 0) { + temp_r31->unk30 -= 7; + } + if (spD8 > 0 && temp_r31->unk30 <= 0) { + temp_r31->unk30 = -1; + temp_r31->unk4C = 1; + } + } + if (lbl_1_bss_20 == 0 && lbl_1_bss_5C == 1008 && temp_r31->unk14 >= 7 && temp_r31->unk14 <= 14 && (var_r24 != 0 || var_r25 != 0)) { + temp_r31->unk38 = (var_r24 != 0) ? 0 + : (var_r25 != 0) ? 1 : 0; + } + if (temp_r31->unk00 == 0) { + lbl_1_bss_68[0]->trans.x -= temp_r31->unk48; + lbl_1_bss_68[1]->trans.x -= temp_r28->unk48; + } + switch (lbl_1_bss_5C) { + case 1001: + if (lbl_1_bss_60 == 0) { + Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); + } + if (lbl_1_bss_60 <= 30) { + if (temp_r31->unk08 == -1) { + Hu3DMotionTimeSet(arg0->model[0], 138.0f); + } + arg0->trans.y = 2400.0 * (1.0 - lbl_1_bss_60 / 30.0); + } + if (temp_r31->unk08 != -1 && lbl_1_bss_60 == 30) { + var_r29 = 2; + } + if (lbl_1_bss_60 == 40 && temp_r31->unk08 != -1) { + var_r29 = 0; + } + if (lbl_1_bss_60 == 45 && temp_r31->unk08 == -1) { + var_r29 = 0; + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r29], lbl_1_data_184[var_r29], 35.0f, HU3D_MOTATTR_LOOP); + temp_r31->unk40 = var_r29; + } + if (lbl_1_bss_60 == 30) { + lbl_1_data_28C.unk04 += 50; + } + if (lbl_1_bss_60 == 30) { + HuAudFXPlay(0x33D); + } + break; + case 1005: + if (lbl_1_bss_60 == 0) { + var_r29 = 3; + } + if (lbl_1_bss_60 == 70) { + var_r29 = 4; + } + break; + case 1006: + if (lbl_1_bss_60 == 5) { + var_r29 = 5; + } + break; + case 1010: + if (lbl_1_bss_44 == temp_r31->unk00 && lbl_1_bss_60 >= 15) { + if (lbl_1_bss_60 == 15) { + temp_r31->unk14 = 0; + temp_r31->unk18 = 0; + if (temp_r31->unk08 == -1) { + HuAudFXPlay(0x3A); + } + } + var_r29 = 10; + if (arg0->rot.y > 180.0f) { + arg0->rot.y -= 360.0f; + } + arg0->rot.y *= 0.9; + } + if (lbl_1_bss_44 == 2 && lbl_1_bss_60 >= 15) { + if (lbl_1_bss_60 == 15) { + temp_r31->unk14 = 0; + temp_r31->unk18 = 0; + } + var_r29 = 11; + if (arg0->rot.y > 180.0f) { + arg0->rot.y -= 360.0f; + } + arg0->rot.y *= 0.9; + } + break; + } + temp_r31->unk18 += (temp_r31->unk18 < 0x10000); + if (temp_r31->unk14 == 3 || temp_r31->unk14 == 5) { + if (temp_r31->unk18 == 1 && lbl_1_data_2B0 != -1) { + HuWinExCleanup(lbl_1_data_2B0); + lbl_1_data_2B0 = -1; + } + if ((temp_r31->unk14 == 3 && temp_r31->unk18 == 23) || (temp_r31->unk14 == 5 && temp_r31->unk18 == 15)) { + HuWinMesMaxSizeGet(1, spFC, MAKE_MESSID(48, 35)); + if (lbl_1_data_2B0 == -1) { + lbl_1_data_2B0 = HuWinCreate(-10000.0f, 400.0f, spFC[0], spFC[1], 1); + } + HuWinBGTPLvlSet(lbl_1_data_2B0, 0.0f); + HuWinMesSpeedSet(lbl_1_data_2B0, 0); + HuWinMesSet(lbl_1_data_2B0, MAKE_MESSID(48, 35)); + } + } + switch (temp_r31->unk14) { + case 0: + if (lbl_1_bss_5C == 1008) { + temp_r31->unk14 = 1; + temp_r31->unk18 = 0; + } + break; + case 1: + if (temp_r31->unk18 == 1 && temp_r31->unk0C == -1) { + switch (temp_r31->unk10) { + case 0: + temp_r31->unk3C = rand8() % 5 + 15; + break; + case 1: + temp_r31->unk3C = rand8() % 5 + 12; + break; + case 2: + temp_r31->unk3C = rand8() % 5 + 10; + break; + case 3: + temp_r31->unk3C = rand8() % 4 + 9; + break; + } + } + if (var_r20 != 0) { + temp_r31->unk14 = 2; + temp_r31->unk18 = 0; + var_r29 = 6; + arg0->trans.x += (temp_r31->unk00 == 0) ? ((rand8() % 2) * 2 - 1) : 0; + } + break; + case 2: + arg0->trans.x += 8.695652f * (temp_r31->unk00 == 0 ? 1 : -1); + break; + case 3: + arg0->trans.x += 4.347826f * (temp_r31->unk00 == 0 ? 1 : -1); + if (temp_r31->unk18 >= 23) { + temp_r31->unk14 = 8; + temp_r31->unk18 = 0; + var_r29 = 4; + } + break; + case 4: + if (temp_r31->unk18 == 1) { + var_r29 = 7; + } + arg0->trans.x += -4.347826f * (temp_r31->unk00 == 0 ? 1 : -1); + if (temp_r31->unk18 >= 23) { + temp_r31->unk14 = 8; + temp_r31->unk18 = 0; + var_r29 = 4; + } + break; + case 5: + arg0->trans.x += 8.695652f * (temp_r31->unk00 == 0 ? 1 : -1); + if (temp_r31->unk18 >= 15) { + temp_r31->unk14 = 8; + temp_r31->unk18 = 0; + var_r29 = 4; + } + break; + case 6: + if (temp_r31->unk18 == 1) { + var_r29 = 8; + } + arg0->trans.x += -8.695652f * (temp_r31->unk00 == 0 ? 1 : -1); + if (temp_r31->unk18 >= 7) { + temp_r31->unk14 = 8; + temp_r31->unk18 = 0; + var_r26 = 7; + var_r29 = 4; + } + if (temp_r31->unk18 >= 15) { + temp_r31->unk14 = 8; + temp_r31->unk18 = 0; + } + break; + case 8: + if (temp_r31->unk30 == 0) { + var_r26 = 0; + temp_r31->unk14 = 7; + temp_r31->unk18 = 1; + temp_r31->unk34 = 0; + } else { + if (var_r24 == 0 && var_r25 == 0) { + break; + } + temp_r31->unk14 = 9; + temp_r31->unk18 = 0; + var_r26 = 3; + var_r22 = (temp_r31->unk38 == 0 ? 0 : 11) + 5; + var_r29 = 6; + if (lbl_1_bss_20 == 1) { + temp_r31->unk38 = (var_r24 != 0) ? 0 + : (var_r25 != 0) ? 1 : 0; + } + break; + } + /* fallthrough */ + case 7: + if (temp_r31->unk18 == 1) { + s32 sp1B4[] = { + 0x12A, 0x16A, 0x1AA, + 0x1EA, 0x22A, 0x26A, + 0x2AA, 0x2EA, 0x03B + }; + HuAudFXPlay(sp1B4[temp_r31->unk08 == -1 ? 8 : temp_r31->unk08]); + var_r29 = 9; + temp_r31->unk4C = 0; + } + if (temp_r31->unk30 > 0) { + temp_r31->unk14 = 8; + temp_r31->unk18 = 0; + var_r29 = 4; + } + break; + case 9: + arg0->trans.x += 8.695652f * (temp_r31->unk00 == 0 ? 1 : -1); + if (temp_r31->unk18 >= 23) { + temp_r31->unk14 = 8; + temp_r31->unk18 = 0; + var_r29 = 4; + } + break; + case 12: + if (temp_r31->unk18 == 7) { + var_r26 = 0; + var_r22 = 7; + var_r29 = 7; + } + if (temp_r31->unk18 == 15) { + var_r26 = 5; + var_r29 = 4; + } + if (temp_r31->unk18 >= 20) { + temp_r31->unk14 = 8; + temp_r31->unk18 = 0; + var_r29 = 4; + } + break; + case 10: + arg0->trans.x += 4.347826f * (temp_r31->unk00 == 0 ? 1 : -1); + if (temp_r31->unk18 >= 23) { + temp_r31->unk14 = 8; + temp_r31->unk18 = 0; + var_r29 = 4; + } + break; + case 11: + arg0->trans.x += -4.347826f * (temp_r31->unk00 == 0 ? 1 : -1); + if (temp_r31->unk18 == 1) { + var_r29 = 7; + } + if (temp_r31->unk18 >= 23) { + temp_r31->unk14 = 8; + temp_r31->unk18 = 0; + var_r29 = 4; + } + break; + case 13: + arg0->trans.x += 8.695652f * (temp_r31->unk00 == 0 ? 1 : -1); + if (temp_r31->unk18 >= 23) { + temp_r31->unk14 = 8; + temp_r31->unk18 = 0; + var_r29 = 4; + } + break; + case 14: + arg0->trans.x += -8.695652f * (temp_r31->unk00 == 0 ? 1 : -1); + if (temp_r31->unk18 == 1) { + var_r29 = 8; + } + if (temp_r31->unk18 == 11) { + var_r26 = 11; + var_r29 = 4; + } + if (temp_r31->unk18 >= 23) { + temp_r31->unk14 = 8; + temp_r31->unk18 = 0; + } + if (temp_r31->unk34 < 8) { + temp_r31->unk34 = 8; + } + break; + case 15: + if (temp_r31->unk18 == 1 && temp_r31->unk1C > 4) { + temp_r31->unk1C = 4; + } + if (temp_r31->unk18 == 1 && lbl_1_data_2B0 != -1) { + HuWinExCleanup(lbl_1_data_2B0); + lbl_1_data_2B0 = -1; + } + if (temp_r31->unk18 == 7) { + var_r29 = 4; + var_r26 = 20; + } + if (temp_r31->unk18 == 60) { + lbl_1_bss_44 = temp_r31->unk00; + temp_r31->unk1C = 0; + } + break; + case 16: + arg0->trans.x += -39.130432f * (temp_r31->unk00 == 0 ? 1 : -1); + arg0->trans.y += 39.130432f; + if (temp_r31->unk18 == 1) { + s32 sp190[] = { + 0x123, 0x163, 0x1A3, + 0x1E3, 0x223, 0x263, + 0x2A3, 0x2E3, 0x03C + }; + + HuAudFXPlay(sp190[temp_r31->unk08 == -1 ? 8 : temp_r31->unk08]); + var_r29 = 8; + var_r26 = 0; + var_r22 = 6; + } + arg0->rot.z = (temp_r31->unk00 == 0) ? -20 : 20; + break; + case 17: + if (temp_r31->unk18 == 1 && temp_r31->unk1C > 4) { + temp_r31->unk1C = 4; + } + if (temp_r31->unk18 == 1 && lbl_1_data_2B0 != -1) { + HuWinExCleanup(lbl_1_data_2B0); + lbl_1_data_2B0 = -1; + } + if (temp_r31->unk18 == 7) { + var_r29 = 0; + var_r26 = 10; + } + if (temp_r31->unk18 >= 7 && temp_r31->unk18 < 17) { + arg0->trans.x += (temp_r31->unk00 == 0 ? -1 : 1) * 2; + } + if (temp_r31->unk18 == 60) { + lbl_1_bss_44 = 2; + temp_r31->unk1C = 0; + } + break; + } + switch (temp_r31->unk14) { + case 12: + if (temp_r31->unk00 == 0) { + break; + } + /* fallthrough */ + case 3: + case 5: + case 10: + case 13: + temp_r19 = Hu3DMotionTimeGet(arg0->model[0]); + if ((temp_r28->unk14 != 4 && temp_r28->unk14 != 6) || temp_r28->unk18 != 1) { + if ((temp_r19 + 1) % 11 != 0 || (temp_r31->unk14 == 12 && temp_r19 + 1 > 11)) { + break; + } + } + temp_r21 = ((temp_r19 + 1) / 11 - 1) % 2; + { + char sp1D8[][50] = { + "g000mN-itemhook_R", + "g000mN-itemhook_L" + }; + + if (temp_r31->unk08 != -1) { + var_r18 = CharModelHookNameGet(temp_r31->unk08, 1, (temp_r21 % 2 == 0) ? 0 : 1); + } else { + var_r18 = (temp_r21 % 2 == 0) ? sp1D8[0] : sp1D8[1]; + } + } + Hu3DModelObjPosGet(arg0->model[0], var_r18, &sp104); + Hu3DModelPosSet(lbl_1_bss_64->model[temp_r21 + 7], sp104.x + (temp_r31->unk00 == 0 ? 1 : -1) * 50, sp104.y, 75.0f + sp104.z); + Hu3DMotionTimeSet(lbl_1_bss_64->model[temp_r21 + 7], 2.0f); + Hu3DModelAttrReset(lbl_1_bss_64->model[temp_r21 + 7], 1); + if (lbl_1_bss_78[temp_r31->unk08 == -1 ? 1 : 0].unk00 < 3) { + lbl_1_bss_78[temp_r31->unk08 == -1 ? 1 : 0].unk04[lbl_1_bss_78[temp_r31->unk08 == -1 ? 1 : 0].unk00] = 0.0f; + lbl_1_bss_78[temp_r31->unk08 == -1 ? 1 : 0].unk00++; + } + if (fabs(lbl_1_bss_68[1 - temp_r31->unk00]->trans.x) >= 800.0 && (temp_r28->unk14 == 11 || temp_r28->unk14 == 14)) { + temp_r31->unk14 = 15; + temp_r28->unk14 = 16; + temp_r31->unk18 = temp_r28->unk18 = 0; + if (lbl_1_bss_78[4].unk00 < 3) { + lbl_1_bss_78[4].unk04[lbl_1_bss_78[4].unk00] = 0.0f; + lbl_1_bss_78[4].unk00++; + } + if (lbl_1_data_2A8 != -1) { + HuAudSeqFadeOut(lbl_1_data_2A8, 100); + lbl_1_data_2A8 = -1; + } + } + break; + } + temp_r31->unk34++; + if (temp_r31->unk14 != 16 && temp_r31->unk14 != 15 && temp_r31->unk14 != 17 && lbl_1_bss_5C == 1008 && temp_r31->unk34 >= 30 && (temp_r31->unk34 - 30) % 30 == 0) { + temp_r31->unk30 += (temp_r31->unk4C == 0 || temp_r31->unk14 == 7) ? 10 : 0; + } + temp_r31->unk30 = (temp_r31->unk1C > 0 || temp_r31->unk30 >= 100) ? 100 + : (temp_r31->unk30 < 0) ? 0 + : temp_r31->unk30; + for (i = 0; i < 5; i++) { + temp_f31 = (temp_r31->unk30 >= i * 20 + 20) ? 1.0 + : (temp_r31->unk30 <= i * 20) ? 0.0 + : (temp_r31->unk30 - i * 20) / 20.0; + espScaleSet(lbl_1_data_5C[i + (temp_r31->unk00 == 0 ? 2 : 10)], temp_f31, temp_f31); + if (temp_r31->unk1C > 0) { + s32 spF4[] = { 106, 469 }; + s32 spEC[] = { 78, 78 }; + s32 sp150[] = { + 0, 0, -33, -9, 15, 39, 63, -68, + 0, 0, -33, -9, 15, 39, 63, -68 + }; + s32 sp110[] = { + 0, 0, -1, -1, -1, -1, -1, -2, + 0, 0, -1, -1, -1, -1, -1, -2 + }; + + espPosSet(lbl_1_data_5C[i + 18], spF4[temp_r31->unk00] + sp150[i + 2], spEC[temp_r31->unk00] + sp110[i + 2]); + espScaleSet(lbl_1_data_5C[i + 18], + (temp_r31->unk1C % 4 == 0) ? 1.1 : 1.0, + (temp_r31->unk1C % 4 == 0) ? 1.1 : 1.0); + espTPLvlSet(lbl_1_data_5C[i + 18], + (temp_r31->unk1C % 4 < 2) ? 1.0 + : (var_r22 % 4 == 2) ? 0.5 : 0.0); + espDispOn(lbl_1_data_5C[i + 18]); + } else if (temp_r28->unk1C == 0) { + espDispOff(lbl_1_data_5C[i + 18]); + } + } + if (temp_r31->unk1C > 0) { + sp20 = (temp_r31->unk08 != -1) ? temp_r31->unk08 : 8; + Hu3DModelPosSet(lbl_1_bss_64->model[3], + arg0->trans.x + lbl_1_data_220[sp20][1] * (temp_r31->unk00 == 0 ? 1 : -1), + arg0->trans.y + lbl_1_data_220[sp20][2], + 150.0f + arg0->trans.z); + Hu3DModelScaleSet(lbl_1_bss_64->model[3], + 0.75 * lbl_1_data_220[sp20][0], + 0.75 * lbl_1_data_220[sp20][0], + 0.75 * lbl_1_data_220[sp20][0]); + Hu3DModelAttrReset(lbl_1_bss_64->model[3], 1); + Hu3DModelAttrSet(lbl_1_bss_64->model[3], HU3D_ATTR_ZCMP_OFF); + Hu3DModelPosSet(lbl_1_bss_64->model[4], + arg0->trans.x + lbl_1_data_220[sp20][1] * (temp_r31->unk00 == 0 ? 1 : -1), + arg0->trans.y + lbl_1_data_220[sp20][2], + 150.0f + arg0->trans.z); + Hu3DModelScaleSet(lbl_1_bss_64->model[4], + 0.75 * lbl_1_data_220[sp20][0], + 0.75 * lbl_1_data_220[sp20][0], + 0.75 * lbl_1_data_220[sp20][0]); + Hu3DModelAttrReset(lbl_1_bss_64->model[4], 1); + Hu3DModelAttrSet(lbl_1_bss_64->model[4], HU3D_ATTR_ZCMP_OFF); + temp_r31->unk1C--; + if (temp_r31->unk1C == 0) { + HuAudFXStop(lbl_1_data_2B4); + } + } else if (temp_r28->unk1C == 0) { + Hu3DModelAttrSet(lbl_1_bss_64->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_64->model[4], HU3D_ATTR_DISPOFF); + } + if (temp_r31->unk44 >= 0) { + var_r29 = temp_r31->unk44; + } + if (var_r29 >= 0 && var_r29 != temp_r31->unk40) { + if (var_r26 == 0) { + Hu3DMotionSet(arg0->model[0], arg0->motion[var_r29]); + Hu3DMotionTimeSet(arg0->model[0], (var_r22 == -1) ? 0 : var_r22); + } else { + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r29], + (var_r22 != -1) ? var_r22 : lbl_1_data_184[var_r29], + (var_r26 != -1) ? var_r26 : lbl_1_data_154[var_r29], + lbl_1_data_148[var_r29] ? HU3D_MOTATTR_NONE : HU3D_MOTATTR_LOOP); + } + temp_r31->unk40 = var_r29; + } + if (temp_r31->unk00 == 1) { + spD4 = &Hu3DData[arg0->model[0]]; + } +} + +s32 lbl_1_data_33C = -1; +float lbl_1_data_340 = 3500.0f; +float lbl_1_data_344 = 100.0f; +float lbl_1_data_348 = -59.0f; + +void fn_1_2CC4(omObjData* arg0) { + StructBss68Data* sp158[2]; + omObjData* sp150[2]; + StructBss68Data* sp148[2]; + s32 sp140[2]; + omObjData* sp138[2]; + StructBss68Data* sp130[2]; + ModelData* temp_r24; + ModelData* temp_r27; + ModelData* temp_r28; + ModelData* temp_r29; + float spAC; + float spA8; + float spA4; + float temp_f20; + float var_f19; + float temp_f24; + float temp_f23; + float temp_f22; + float var_f21; + float temp_f27; + float temp_f26; + float temp_f25; + float temp_f28; + float temp_f29; + float var_f31; + s32 var_r23; + s32 var_r26; + s32 var_r25; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + s32 i; + + for (i = 0; i < 2; i++) { + sp158[i] = lbl_1_bss_68[i]->data; + } + lbl_1_bss_4++; + switch (lbl_1_bss_5C) { + case 1003: + temp_f27 = 1800.0 * (1.0 - lbl_1_bss_60 / 30.0); + temp_f27 = (temp_f27 < 0.0f) ? 0.0f : temp_f27; + Hu3DModelPosSet(lbl_1_bss_64->model[5], 0.0f, temp_f27, 0.0f); + Hu3DModelAttrReset(lbl_1_bss_64->model[5], HU3D_ATTR_DISPOFF); + if (lbl_1_bss_60 == 31) { + HuAudFXPlay(0x5B); + } + if (lbl_1_bss_60 >= 31 && lbl_1_bss_60 <= 38) { + temp_f24 = 1.0 - (lbl_1_bss_60 - 31) / 7.0; + Hu3DModelRotSet(arg0->model[5], 25.0 * (temp_f24 * 0.5 + temp_f24 * temp_f24 * 0.5), 0.0f, 0.0f); + } + break; + case 1002: + if (lbl_1_bss_60 == 0) { + lbl_1_bss_3C = 0; + } + if (lbl_1_bss_60 == 20) { + espAttrReset(lbl_1_data_5C[16], HU3D_ATTR_SHADOW); + } + if ((lbl_1_bss_60 >= 20 && lbl_1_bss_60 <= 50) || (lbl_1_bss_60 >= 180 && lbl_1_bss_60 <= 210)) { + spAC = (lbl_1_bss_60 <= 120) + ? (lbl_1_bss_60 - 20) / 30.0 + : (1.0 - (lbl_1_bss_60 - 180) / 30.0); + espTPLvlSet(lbl_1_data_5C[16], spAC); + } + if (lbl_1_bss_60 == 210) { + espAttrSet(lbl_1_data_5C[16], HU3D_ATTR_SHADOW); + } + break; + case 1006: + if (lbl_1_bss_60 == 0) { + Hu3DMotionSet(arg0->model[5], arg0->motion[2]); + Hu3DModelAttrReset(arg0->model[5], HU3D_MOTATTR_LOOP); + } + if (lbl_1_bss_60 == 15) { + Hu3DModelAttrSet(arg0->model[5], HU3D_MOTATTR_PAUSE); + } + break; + case 1008: + if (lbl_1_bss_60 == 1) { + Hu3DModelAttrReset(arg0->model[5], HU3D_MOTATTR_PAUSE); + for (i = 0; i < 16; i++) { + espDispOn(lbl_1_data_5C[i]); + } + } + if (lbl_1_bss_60 <= 25) { + temp_f28 = lbl_1_bss_60 / 25.0; + temp_f26 = 1.0f - (1.0f - temp_f28) * (1.0f - temp_f28) * (1.0f - temp_f28); + temp_f26 = 0.25 + 1.375 * temp_f26; + temp_f23 = 1.0f - (1.0f - temp_f28) * (1.0f - temp_f28); + temp_f23 = 2.0f * (1.0f - temp_f28); + espAttrReset(lbl_1_data_5C[17], HU3D_ATTR_SHADOW); + espScaleSet(lbl_1_data_5C[17], 0.85 * temp_f26, 0.85 * temp_f26); + espTPLvlSet(lbl_1_data_5C[17], (temp_f23 > 1.0f) ? 1.0f : temp_f23); + } else { + espAttrSet(lbl_1_data_5C[17], HU3D_ATTR_SHADOW); + } + for (i = 0; i < 2; i++) { + sp150[i] = lbl_1_bss_68[i]; + sp148[i] = lbl_1_bss_68[i]->data; + } + for (i = 0; i < 2; i++) { + sp140[i] = (sp148[1 - i]->unk1C > 0) ? 2 + : (sp148[i]->unk14 == 8) ? 2 + : (sp148[i]->unk14 == 1) ? 1 + : (sp148[i]->unk14 == 9) ? (sp148[i]->unk18 >= 0 ? 3 : 2) + : (sp148[i]->unk14 == 2) ? 4 + : (sp148[i]->unk14 == 7) ? 0 : -1; + } + if (sp140[0] >= 0 && sp140[1] >= 0 && fabs(sp150[0]->trans.x - sp150[1]->trans.x) < 300.0) { + sp150[0]->trans.x = (sp148[0]->unk1C > 0) ? sp150[0]->trans.x + : (sp148[1]->unk1C > 0) ? (sp150[1]->trans.x - 300.0f) + : ((sp150[0]->trans.x + sp150[1]->trans.x) / 2.0 - 150.0); + sp150[0]->trans.x = (sp150[0]->trans.x >= 650.0) ? 650.0 + : (sp150[0]->trans.x <= -950.0) ? -950.0 + : sp150[0]->trans.x; + sp150[1]->trans.x = sp150[0]->trans.x + 300.0f; + if (sp140[0] >= 3 || sp140[1] >= 3) { + var_r26 = (sp140[0] >= 3) ? 0 : 1; + var_r25 = 1 - var_r26; + switch (sp140[var_r25]) { + case 4: + if (sp150[var_r26]->trans.x * (var_r26 == 0 ? 1 : -1) < sp150[var_r25]->trans.x * (var_r25 == 0 ? 1 : -1)) { + var_r26 = 1 - var_r26; + var_r25 = 1 - var_r25; + } + sp148[var_r26]->unk14 = 3; + sp148[var_r25]->unk14 = 4; + break; + case 1: + sp148[var_r26]->unk14 = 5; + sp148[var_r25]->unk14 = 6; + break; + case 3: + sp148[var_r26]->unk14 = 12; + sp148[var_r25]->unk14 = 12; + break; + case 2: + sp148[var_r26]->unk14 = 10; + sp148[var_r25]->unk14 = 11; + break; + case 0: + sp148[var_r26]->unk14 = 13; + sp148[var_r25]->unk14 = 14; + break; + } + sp148[0]->unk18 = sp148[1]->unk18 = 0; + } + } + /* fallthrough */ + case 1009: + if (lbl_1_bss_5C != 1008 && lbl_1_bss_40 == 0) { + break; + } + for (i = 0; i < 2; i++) { + sp138[i] = lbl_1_bss_68[i]; + sp130[i] = lbl_1_bss_68[i]->data; + } + switch (lbl_1_bss_18) { + case 0: + if (lbl_1_bss_40 == 0 && lbl_1_bss_18 == 0 && (sp138[0]->trans.x > -150.0f || sp138[1]->trans.x < 150.0f)) { + lbl_1_bss_18 = (-sp138[0]->trans.x < sp138[1]->trans.x ? 1 : 2); + Hu3DModelPosSet(lbl_1_bss_64->model[9], 0.0f, 100.0f, 0.0f); + Hu3DMotionTimeSet(lbl_1_bss_64->model[9], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_64->model[9], HU3D_ATTR_DISPOFF); + if (lbl_1_bss_78[4].unk00 < 3) { + lbl_1_bss_78[4].unk04[lbl_1_bss_78[4].unk00] = 0.0f; + lbl_1_bss_78[4].unk00++; + } + } + if (lbl_1_bss_18 == 0) { + break; + } + /* fallthrough */ + case 1: + case 2: + temp_r27 = &Hu3DData[arg0->model[5]]; + temp_r27->rot.y += (lbl_1_bss_18 == 1 ? 18 : -18); + temp_r27->rot.z = (lbl_1_bss_18 == 1 ? -20 : 20); + temp_r27->pos.x += 5.130000000000001 * (lbl_1_bss_18 == 1 ? 1 : -1); + temp_r27->pos.y += 47.0; + temp_r27->pos.z += -20.0f; + if (temp_r27->pos.y > 1800.0f) { + lbl_1_bss_18 += 2; + } + break; + } + switch (lbl_1_bss_1C) { + case 0: + case 2: + lbl_1_data_2B8 -= (lbl_1_bss_18 >= 3 && sp130[0]->unk14 < 16 && sp130[1]->unk14 < 16); + if (lbl_1_data_2B8 != 0) { + break; + } + Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(arg0->model[2], + (lbl_1_bss_1C == 0) ? 0.0 : (2.0 * ((rand8() % 256) / 255.0 - 0.5) * 400.0), + 1500.0f, 0.0f); + lbl_1_bss_1C = 1; + /* fallthrough */ + case 1: + temp_r28 = &Hu3DData[arg0->model[2]]; + temp_r28->pos.y -= 10.0f; + if (temp_r28->pos.y <= 225.0f) { + float sp128[] = { 100000000.0f, 100000000.0f }; + + temp_r28->pos.y = (temp_r28->pos.y < 100.0f) ? 100.0f : temp_r28->pos.y; + for (i = 0; i < 2; i++) { + if (fabs(sp138[i]->trans.x + (i == 0 ? 40 : -40) - temp_r28->pos.x) < 180.0) { + sp128[i] = fabs(sp138[i]->trans.x + (i == 0 ? 40 : -40) - temp_r28->pos.x); + } + } + if (sp128[0] != sp128[1]) { + var_r23 = (sp128[0] < sp128[1]) ? 0 : 1; + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + lbl_1_bss_1C = 2; + lbl_1_data_2B8 = 600; + sp130[var_r23]->unk1C = 300; + sp130[var_r23]->unk4C = 0; + if (lbl_1_bss_78[3].unk00 < 3) { + lbl_1_bss_78[3].unk04[lbl_1_bss_78[3].unk00] = 0.0f; + lbl_1_bss_78[3].unk00++; + } + lbl_1_data_2B4 = HuAudFXPlay(0x7E6); + } + } + if (sp130[0]->unk14 >= 16 || sp130[1]->unk14 >= 16 || lbl_1_bss_40 != 0) { + lbl_1_bss_1C = 3; + lbl_1_data_2B8 = 0; + } + if (lbl_1_bss_1C == 1) { + break; + } + /* fallthrough */ + case 3: + lbl_1_data_2B8++; + if (lbl_1_data_2B8 < 60 && lbl_1_data_2B8 % 2 == 0) { + Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); + } else { + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + } + break; + } + break; + } + switch (lbl_1_bss_5C) { + case 1009: + if (lbl_1_bss_40 == 0) { + if (lbl_1_bss_60 <= 30) { + Hu3DModelPosSet(lbl_1_bss_64->model[5], 0.0f, (30 - lbl_1_bss_60) * 50 * 0.94, 0.0f); + Hu3DModelRotSet(lbl_1_bss_64->model[5], 0.0f, 0.0f, lbl_1_bss_18 == 3 ? -20 : 20); + Hu3DModelAttrReset(lbl_1_bss_64->model[5], HU3D_ATTR_DISPOFF); + } + if (lbl_1_bss_60 == 30) { + Hu3DMotionSet(arg0->model[5], arg0->motion[0]); + Hu3DModelAttrReset(arg0->model[5], HU3D_MOTATTR_LOOP); + } + if (lbl_1_bss_60 == 30) { + HuAudFXPlay(0x5B); + } + if (lbl_1_bss_60 >= 30 && lbl_1_bss_60 <= 37) { + temp_f22 = 1.0 - (lbl_1_bss_60 - 30) / 7.0; + Hu3DModelRotSet(arg0->model[5], 25.0 * (temp_f22 * 0.5 + temp_f22 * temp_f22 * 0.5), 0.0f, 0.0f); + } + } else if (lbl_1_bss_18 == 0) { + Hu3DMotionSet(lbl_1_bss_64->model[5], arg0->motion[0]); + Hu3DModelAttrReset(lbl_1_bss_64->model[5], HU3D_MOTATTR_LOOP); + } + break; + case 1010: + if (lbl_1_bss_40 == 0) { + if (lbl_1_bss_60 == 1) { + Hu3DMotionSet(arg0->model[5], arg0->motion[3]); + Hu3DModelAttrReset(arg0->model[5], HU3D_MOTATTR_LOOP); + } + temp_r24 = &Hu3DData[arg0->model[5]]; + temp_f20 = (lbl_1_bss_68[lbl_1_bss_44]->trans.x < 0.0f) ? -90 : 90; + temp_r24->rot.y = temp_f20 + 0.8 * (temp_r24->rot.y - temp_f20); + } + break; + } + var_r22 = lbl_1_data_33C; + { + float sp160[][6] = { + { 3500.0f, 0.0f, 100.0f, 0.0f, -59.0f, 0.0f }, + { 3200.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, + { 2100.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, + { 2000.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, + { 800.0f, 0.0f, 200.0f, 0.0f, -89.0f, 0.0f }, + { 1800.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f } + }; + + if (lbl_1_bss_44 != -1 && lbl_1_bss_40 == 0) { + sp160[2][1] = lbl_1_bss_68[lbl_1_bss_44]->trans.x; + } + if (lbl_1_data_33C == -1) { + lbl_1_data_33C = 0; + lbl_1_bss_24 = 1; + lbl_1_bss_28 = 1.0f; + } + if (lbl_1_data_33C == 0) { + lbl_1_data_33C = 1; + lbl_1_bss_24 = 1; + lbl_1_bss_28 = 0.5f; + } + if (lbl_1_bss_5C == 1010 && lbl_1_bss_44 != 2 && lbl_1_bss_60 >= 15 && lbl_1_data_33C == 1) { + lbl_1_data_33C = 2; + lbl_1_bss_24 = 0; + lbl_1_bss_28 = 0.0f; + } + if (var_r22 != lbl_1_data_33C && var_r22 != -1) { + lbl_1_data_340 = CZoom; + lbl_1_data_344 = Center.y; + lbl_1_bss_30 = Center.z; + lbl_1_data_348 = CRot.x; + lbl_1_bss_34 = CRot.y; + } + if (lbl_1_bss_28 <= 1.0f) { + if (lbl_1_bss_24 == 0) { + lbl_1_bss_28 = 1.0 - 0.95 * (1.0f - lbl_1_bss_28); + var_f31 = lbl_1_bss_28; + } else { + lbl_1_bss_28 += 0.008333333333333333; + lbl_1_bss_28 = (lbl_1_bss_28 > 1.0f) ? 1.0f : lbl_1_bss_28; + var_f31 = 0.5 + -0.5 * cosd(180.0f * lbl_1_bss_28); + } + lbl_1_bss_28 = (lbl_1_bss_28 > 1.0f) ? 1.0f : lbl_1_bss_28; + CZoom = var_f31 * sp160[lbl_1_data_33C][0] + lbl_1_data_340 * (1.0f - var_f31); + Center.x = var_f31 * sp160[lbl_1_data_33C][1] + lbl_1_bss_2C * (1.0f - var_f31); + Center.y = var_f31 * sp160[lbl_1_data_33C][2] + lbl_1_data_344 * (1.0f - var_f31); + Center.z = var_f31 * sp160[lbl_1_data_33C][3] + lbl_1_bss_30 * (1.0f - var_f31); + CRot.x = var_f31 * sp160[lbl_1_data_33C][4] + lbl_1_data_348 * (1.0f - var_f31); + CRot.y = var_f31 * sp160[lbl_1_data_33C][5] + lbl_1_bss_34 * (1.0f - var_f31); + } + } + if (lbl_1_bss_5C == 1001) { + var_f21 = 0.0f; + temp_f25 = 0.0f; + if (lbl_1_data_28C.unk00 % 2 >= 0) { + lbl_1_data_28C.unk08 = lbl_1_data_28C.unk10; + lbl_1_data_28C.unk0C = lbl_1_data_28C.unk14; + do { + lbl_1_data_28C.unk10 = 2.0 * (rand8() / 255.0) - 1.0; + lbl_1_data_28C.unk14 = 2.0 * (rand8() / 255.0) - 1.0; + lbl_1_data_28C.unk10 = 0.0f; + temp_f29 = (lbl_1_data_28C.unk10 - lbl_1_data_28C.unk08) * (lbl_1_data_28C.unk10 - lbl_1_data_28C.unk08) + (lbl_1_data_28C.unk14 - lbl_1_data_28C.unk0C) * (lbl_1_data_28C.unk14 - lbl_1_data_28C.unk0C); + } while (sqrtf(temp_f29) < 0.75); + } + var_f21 = lbl_1_data_28C.unk08; + temp_f25 = lbl_1_data_28C.unk0C; + var_f21 *= lbl_1_data_28C.unk04 * 2; + temp_f25 *= lbl_1_data_28C.unk04 * 2; + lbl_1_data_28C.unk00 = lbl_1_data_28C.unk00 == 0; + lbl_1_data_28C.unk04 = (lbl_1_data_28C.unk04 > 24) ? 23 + : (lbl_1_data_28C.unk04 - 1 > 0) ? (lbl_1_data_28C.unk04 - 1) : 0; + Center.x = 0.0f; + Center.y = 100.0f + temp_f25; + } + if (lbl_1_bss_5C >= 1008) { + for (i = 0; i < 2; i++) { + temp_r29 = &Hu3DData[lbl_1_bss_68[i]->model[0]]; + var_r21 = (sp158[i]->unk08 != -1) ? sp158[i]->unk08 : 8; + var_r20 = (temp_r29->unk_08 == lbl_1_bss_68[i]->motion[4]) ? 0 + : (temp_r29->unk_08 == lbl_1_bss_68[i]->motion[6]) ? 1 + : (temp_r29->unk_08 == lbl_1_bss_68[i]->motion[7]) ? 2 : -1; + var_r19 = (temp_r29->unk_0C == lbl_1_bss_68[i]->motion[4]) ? 0 + : (temp_r29->unk_0C == lbl_1_bss_68[i]->motion[6]) ? 1 + : (temp_r29->unk_0C == lbl_1_bss_68[i]->motion[7]) ? 2 : -1; + spA8 = (var_r20 == -1) ? 0.0f : lbl_1_data_1B4[var_r21][var_r20]; + spA4 = (var_r19 == -1) ? 0.0f : lbl_1_data_1B4[var_r21][var_r19]; + var_f19 = (temp_r29->unk_0C == -1) ? 0.0f + : (temp_r29->unk_80 == 0.0f) ? 1.0f + : (temp_r29->unk_7C / temp_r29->unk_80); + sp158[i]->unk48 = (i == 0 ? 1 : -1) * (spA8 * (1.0f - var_f19) + spA4 * var_f19); + lbl_1_bss_68[i]->trans.x += sp158[i]->unk48; + Hu3DModelPosSet(lbl_1_bss_68[i]->model[0], lbl_1_bss_68[i]->trans.x, lbl_1_bss_68[i]->trans.y, lbl_1_bss_68[i]->trans.z); + } + } +} + +void fn_1_5500(void) { + StructBss68Data* spC[2]; + s16 sp8; + s16 temp_r31; + s32 i; + + sp8 = 0; + for (i = 0; i < 2; i++) { + spC[i] = lbl_1_bss_68[i]->data; + } + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); + HuWinComKeyReset(); + temp_r31 = HuWinExCreateStyled(36.0f, 344.0f, 504, 96, 6, 0); + HuWinBGTPLvlSet(temp_r31, 0.8f); + HuWinMesSpeedSet(temp_r31, 1); + HuWinExAnimIn(temp_r31); + HuWinDisablePlayerSet(temp_r31, 0xF + & ((spC[0]->unk0C != -1) ? ~(1 << spC[0]->unk0C) : 0xF) + & ((spC[1]->unk0C != -1) ? ~(1 << spC[1]->unk0C) : 0xF)); + HuWinMesSet(temp_r31, MAKE_MESSID(48, 31)); + if ((spC[0]->unk0C == -1 || spC[0]->unk08 == -1) && (spC[1]->unk0C == -1 || spC[1]->unk08 == -1)) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); + } + HuWinMesWait(temp_r31); + HuWinExAnimOut(temp_r31); + HuWinExCleanup(temp_r31); + lbl_1_bss_10 = 0; + HuPrcEnd(); +} + +void fn_1_5720(void) { + float var_f31; + StructBss68Data* spC[2]; + WindowData* temp_r30; + s16 sp8; + s16 temp_r31; + s32 var_r28; + s32 i; + + sp8 = 0; + for (i = 0; i < 2; i++) { + spC[i] = lbl_1_bss_68[i]->data; + } + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); + HuWinComKeyReset(); + temp_r31 = HuWinCreate(215.0f, 100.0f, 130, 37, 1); + HuSprColorSet(winData[temp_r31].group, 0, 0xFF, 0xFF, 0xCC); + HuWinBGTPLvlSet(temp_r31, 0.9f); + temp_r30 = &winData[temp_r31]; + temp_r30->mess_color = 0; + temp_r30->mess_shadow_color = 9; + temp_r30->attr |= 0x80; + for (var_r28 = 15, var_f31 = 0.0f; var_r28 != 0; var_r28--, var_f31 += 0.06666667f) { + HuWinScaleSet(temp_r31, 1.0f, 1.0 * (1.0f - (1.0f - var_f31) * (1.0f - var_f31))); + HuWinPosSet(temp_r31, 215.0f, 100.0 + 37.0 * (1.0f - (1.0f - var_f31) * (1.0f - var_f31)) / -4.0); + HuPrcVSleep(); + } + HuWinScaleSet(temp_r31, 1.0f, 1.0f); + HuWinMesSet(temp_r31, MAKE_MESSID(48, 32)); + HuPrcSleep(60); + HuWinExAnimOut(temp_r31); + HuWinExCleanup(temp_r31); + lbl_1_bss_10 = 0; + HuPrcEnd(); +} + +void fn_1_59BC(omObjData* arg0) { + StructBss68Data* sp14[2]; + float spC[2]; + s32 sp8; + s32 i; + + for (i = 0; i < 5; i++) { + s32 sp1C[] = { 0x7E1, 0x7E2, 0x7E3, 0x7E4, 0x7E5 }; + + if (lbl_1_bss_78[i].unk00 > 3) { + lbl_1_bss_78[i].unk00 = 3; + } + if (lbl_1_bss_78[i].unk00 > 0) { + sp8 = HuAudFXPlay(sp1C[i]); + lbl_1_bss_78[i].unk00--; + } + } + for (i = 0; i < 2; i++) { + sp14[i] = lbl_1_bss_68[i]->data; + } + if (omSysExitReq != 0 && WipeStatGet() == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_7AE4; + } + switch (lbl_1_bss_5C) { + case 1000: + if (WipeStatGet() == 0) { + lbl_1_bss_5C++; + lbl_1_bss_60 = 0; + } + break; + case 1001: + lbl_1_bss_60++; + if (lbl_1_bss_60 == 60) { + lbl_1_bss_5C = (lbl_1_bss_14 != 0 ? 1002 : 1003); + lbl_1_bss_60 = 0; + } + break; + case 1002: + lbl_1_bss_60++; + if (lbl_1_bss_60 > 210) { + lbl_1_bss_5C++; + lbl_1_bss_60 = 0; + } + break; + case 1003: + lbl_1_bss_60++; + if (lbl_1_bss_60 == 60) { + lbl_1_bss_5C = (lbl_1_bss_14 != 0 ? 1004 : 1005); + lbl_1_bss_60 = 0; + } + break; + case 1004: + if (lbl_1_bss_60 == 0) { + HuPrcChildCreate(fn_1_5500, 100, 0x2000, 0, HuPrcCurrentGet()); + lbl_1_bss_10 = 1; + lbl_1_bss_60++; + } else if (lbl_1_bss_10 == 0) { + lbl_1_bss_60++; + if (sp14[0]->unk14 == 0) { + lbl_1_bss_5C++; + lbl_1_bss_60 = 0; + } + } + break; + case 1005: + lbl_1_bss_60++; + if (lbl_1_bss_60 == 180) { + lbl_1_bss_5C++; + lbl_1_bss_60 = 0; + } + break; + case 1006: + if (lbl_1_bss_60 == 0) { + HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(48, 34)); + lbl_1_data_2B0 = HuWinCreate(-10000.0f, 400.0f, spC[0], spC[1], 1); + HuWinBGTPLvlSet(lbl_1_data_2B0, 0.0f); + HuWinMesSpeedSet(lbl_1_data_2B0, 0); + HuWinMesSet(lbl_1_data_2B0, MAKE_MESSID(48, 34)); + HuPrcChildCreate(fn_1_5720, 100, 0x2000, 0, HuPrcCurrentGet()); + lbl_1_bss_10 = 1; + lbl_1_bss_60++; + } else if (lbl_1_bss_10 == 0) { + lbl_1_bss_60++; + if (sp14[0]->unk14 == 0) { + lbl_1_bss_5C++; + lbl_1_bss_60 = rand8() * 30 % 5 + 60; + } + } else { + lbl_1_bss_60++; + } + break; + case 1007: + lbl_1_bss_60 -= 1; + if (lbl_1_bss_60 <= 0) { + lbl_1_bss_5C++; + lbl_1_bss_60 = 0; + HuAudFXPlay(0x3E); + } + break; + case 1008: + lbl_1_bss_60++; + if (lbl_1_bss_44 != -1) { + lbl_1_bss_5C = 1009; + lbl_1_bss_60 = 0; + break; + } + if (lbl_1_data_2A6 == -1 && lbl_1_bss_60 >= 16200 && sp14[0]->unk14 < 16 && sp14[1]->unk14 < 16) { + lbl_1_data_2A6 = MGSeqTimerCreate(30); + } + if (lbl_1_data_2A6 == -1) { + break; + } + if (sp14[0]->unk14 < 16 && sp14[1]->unk14 < 16) { + MGSeqParamSet(lbl_1_data_2A6, 1, (18059 - lbl_1_bss_60) / 60); + if (lbl_1_bss_60 > 18000) { + MGSeqParamSet(lbl_1_data_2A6, 2, -1); + lbl_1_data_2A6 = -1; + } + } + if (lbl_1_bss_60 > 18000 && sp14[0]->unk14 < 16 && sp14[1]->unk14 < 16) { + lbl_1_bss_5C = 1009; + lbl_1_bss_60 = 0; + lbl_1_bss_40 = 1; + sp14[0]->unk14 = sp14[1]->unk14 = 17; + sp14[0]->unk18 = sp14[1]->unk18 = 0; + MGSeqFinishCreate(); + if (lbl_1_data_2A8 != -1) { + HuAudSeqFadeOut(lbl_1_data_2A8, 100); + lbl_1_data_2A8 = -1; + } + } + break; + case 1009: + if (lbl_1_bss_60 == 1 && lbl_1_data_2A6 != -1) { + MGSeqParamSet(lbl_1_data_2A6, 2, -1); + lbl_1_data_2A6 = -1; + } + lbl_1_bss_60++; + if (lbl_1_bss_60 >= 120) { + lbl_1_bss_5C++; + lbl_1_bss_60 = 0; + } + break; + case 1010: + lbl_1_bss_60++; + if (lbl_1_bss_60 == 15) { + if (lbl_1_bss_44 != 2) { + if (sp14[lbl_1_bss_44]->unk08 != -1) { + HuAudSStreamPlay(1); + } else { + HuAudSStreamPlay(3); + } + if (lbl_1_bss_14 != 0) { + if (lbl_1_bss_44 == 0) { + _SetFlag(FLAG_ID_MAKE(1, 7)); + } + } else { + GWPlayerCoinWinSet(sp14[lbl_1_bss_44]->unk04, 10); + } + } else if (lbl_1_bss_44 == 2) { + HuAudSStreamPlay(4); + } + } + if (225.0f < lbl_1_bss_60) { + if (lbl_1_data_2AC != -1) { + HuAudFXStop(lbl_1_data_2AC); + lbl_1_data_2AC = -1; + } + lbl_1_data_2A4 = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_7AE4; + } + break; + } +} + +void fn_1_64F8(omObjData* arg0) { + StructBss68Data* sp18[2]; + StructBss68Data* temp_r29; + s32 i; + + for (i = 0; i < 2; i++) { + sp18[i] = lbl_1_bss_68[i]->data; + } + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_BKOOPA, 14)); + Hu3DModelAttrSet(arg0->model[5], HU3D_MOTATTR_LOOP); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 38)); + Hu3DModelAttrSet(arg0->model[6], HU3D_MOTATTR_LOOP); + Hu3DModelHookSet(arg0->model[5], "g007m0-itemhook_r", arg0->model[6]); + Hu3DModelPosSet(arg0->model[5], 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(arg0->model[5], 15.0f, 0.0f, 0.0f); + arg0->motion[0] = Hu3DJointMotionFile(arg0->model[5], DATA_MAKE_NUM(DATADIR_M457, 39)); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[5], DATA_MAKE_NUM(DATADIR_M457, 40)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[5], DATA_MAKE_NUM(DATADIR_M457, 41)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[5], DATA_MAKE_NUM(DATADIR_M457, 42)); + Hu3DMotionSet(arg0->model[5], arg0->motion[0]); + Hu3DModelLayerSet(arg0->model[6], 2); + Hu3DModelLayerSet(arg0->model[5], 2); + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelShadowSet(arg0->model[6]); + Hu3DModelShadowSet(arg0->model[5]); + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 16)); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(arg0->model[0], 0.1f); + Hu3DModelLayerSet(arg0->model[0], 1); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 17)); + Hu3DModelAttrSet(arg0->model[1], HU3D_MOTATTR_LOOP); + Hu3DModelShadowMapSet(arg0->model[1]); + Hu3DModelLayerSet(arg0->model[1], 1); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 21)); + Hu3DModelAttrSet(arg0->model[2], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(arg0->model[2], 2); + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 19)); + Hu3DModelAttrSet(arg0->model[3], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(arg0->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(arg0->model[3], 2); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 20)); + Hu3DModelAttrSet(arg0->model[4], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(arg0->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(arg0->model[4], 4); + for (i = 0; i < 3; i++) { + arg0->model[i + 7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 18)); + Hu3DModelLayerSet(arg0->model[i + 7], 4); + Hu3DModelAttrSet(arg0->model[i + 7], HU3D_ATTR_DISPOFF); + } + for (i = 0; i < 16; i++) { + s32 sp10[] = { 106, 469 }; + s32 sp8[] = { 78, 78 }; + s32 sp60[] = { + 0, 0, -33, -9, 15, 39, 63, -68, + 0, 0, -33, -9, 15, 39, 63, -68 + }; + s32 sp20[] = { + 0, 0, -1, -1, -1, -1, -1, -2, + 0, 0, -1, -1, -1, -1, -1, -2 + }; + + if (lbl_1_data_0[i] == DATA_MAKE_NUM(DATADIR_MGCONST, 0)) { + temp_r29 = lbl_1_bss_68[i == 7 ? 0 : 1]->data; + lbl_1_data_5C[i] = espEntry((temp_r29->unk08 == -1) ? DATA_MAKE_NUM(DATADIR_M457, 26) : (lbl_1_data_0[i] + temp_r29->unk08), 0, 0); + } else { + lbl_1_data_5C[i] = espEntry(lbl_1_data_0[i], 0, 0); + } + espDrawNoSet(lbl_1_data_5C[i], 0); + espDispOff(lbl_1_data_5C[i]); + espAttrSet(lbl_1_data_5C[i], HU3D_ATTR_DISPOFF); + espBankSet(lbl_1_data_5C[i], 0); + espPriSet(lbl_1_data_5C[i], 128 - i); + espPosSet(lbl_1_data_5C[i], sp60[i] + sp10[i < 8 ? 0 : 1], sp20[i] + sp8[i < 8 ? 0 : 1]); + if ((i >= 8 ? i - 8 : i) != 0) { + (void) 1; // Required to match. + } else { + espTPLvlSet(lbl_1_data_5C[i], 0.5f); + espColorSet(lbl_1_data_5C[i], 0, 0, 0); + } + } + for (i = 16; i < 23; i++) { + s32 temp_r28 = i - 16; + s32 spFC[23] = { 288, 288 }; + s32 spA0[23] = { 240, 240 }; + + lbl_1_data_5C[i] = espEntry(lbl_1_data_0[i], 0, 0); + espDrawNoSet(lbl_1_data_5C[i], 0); + espAttrSet(lbl_1_data_5C[i], HU3D_ATTR_DISPOFF | HU3D_ATTR_SHADOW); + espBankSet(lbl_1_data_5C[i], 0); + espPriSet(lbl_1_data_5C[i], 128 - i); + espPosSet(lbl_1_data_5C[i], spFC[temp_r28], spA0[temp_r28]); + espTPLvlSet(lbl_1_data_5C[i], 1.0f); + } + arg0->func = fn_1_2CC4; +} + +void fn_1_6FB0(omObjData* arg0) { + s32 sp14; + StructBss68Data* temp_r31; + StructBss68Data* sp10; + s32 i; + + temp_r31 = arg0->data; + sp10 = lbl_1_bss_68[1 - arg0->work[0]]->data; + memset(temp_r31, 0, sizeof(*temp_r31)); + temp_r31->unk00 = arg0->work[0]; + temp_r31->unk04 = (GWPlayerCfg[0].group == temp_r31->unk00) ? 0 + : (GWPlayerCfg[1].group == temp_r31->unk00) ? 1 + : (GWPlayerCfg[2].group == temp_r31->unk00) ? 2 + : (GWPlayerCfg[3].group == temp_r31->unk00) ? 3 : 4; + sp14 = (GWPlayerCfg[0].group == 1 - temp_r31->unk00) ? 0 + : (GWPlayerCfg[1].group == 1 - temp_r31->unk00) ? 1 + : (GWPlayerCfg[2].group == 1 - temp_r31->unk00) ? 2 + : (GWPlayerCfg[3].group == 1 - temp_r31->unk00) ? 3 : 4; + if (temp_r31->unk04 == 4) { + OSReport("m457:wrong player group\n"); + temp_r31->unk04 = temp_r31->unk00; + } + if (temp_r31->unk00 == 1 && lbl_1_bss_14 != 0) { + temp_r31->unk08 = -1; + temp_r31->unk0C = -1; + temp_r31->unk04 = -1; + temp_r31->unk10 = 1; + } else { + temp_r31->unk08 = GWPlayerCfg[temp_r31->unk04].character; + temp_r31->unk0C = (temp_r31->unk08 == -1 || GWPlayerCfg[temp_r31->unk04].iscom) ? -1 : GWPlayerCfg[temp_r31->unk04].pad_idx; + temp_r31->unk10 = (temp_r31->unk0C != -1) ? 0 : GWPlayerCfg[temp_r31->unk04].diff; + } + temp_r31->unk14 = 0; + temp_r31->unk30 = 100; + temp_r31->unk34 = 0; + temp_r31->unk38 = -1; + temp_r31->unk2C = -1; + temp_r31->unk3C = 10000; + temp_r31->unk40 = 1; + temp_r31->unk44 = -1; + if (temp_r31->unk08 != -1) { + arg0->model[0] = CharModelCreate(temp_r31->unk08, 1); + } else { + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_BKOOPA, 7)); + } + omSetTra(arg0, 0.0f, temp_r31->unk00 == 0 ? 0 : 300, 0.0f); + if (temp_r31->unk08 != -1) { + omSetSca(arg0, 2.5f, 2.5f, 2.5f); + } else { + omSetSca(arg0, 2.0f, 2.0f, 2.0f); + } + for (i = 0; i < 12; i++) { + if (temp_r31->unk08 != -1) { + arg0->motion[i] = CharModelMotionCreate(temp_r31->unk08, lbl_1_data_B8[i] + (lbl_1_data_E8[i] != 0 ? temp_r31->unk08 : 0)); + } else if (lbl_1_data_118[i] != 0) { + arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_118[i]); + } + } + Hu3DMotionSet(arg0->model[0], arg0->motion[temp_r31->unk40]); + Hu3DMotionTimeSet(arg0->model[0], 10.0f); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(arg0->model[0]); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(arg0->model[0], 3); + CharModelLayerSetAll2(4); + arg0->rot.y = temp_r31->unk00 * 180 + 90; + arg0->trans.x = (temp_r31->unk00 == 0 ? -1 : 1) * 300; + arg0->func = fn_1_46C; +} + +void fn_1_75A4(omObjData* arg0) { + lbl_1_bss_5C = 1000; + lbl_1_bss_60 = 0; + lbl_1_bss_54 = 0; + lbl_1_bss_50 = 0; + if (lbl_1_data_2A8 == -1) { + lbl_1_data_2A8 = HuAudSeqPlay(0x4D); + } + lbl_1_data_2AC = HuAudFXPlay(0x6D7); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_59BC; +} + +void ObjectSetup(void) { + omObjData* var_r30; + s32 i; + + OSReport("******* M457 ObjectSetup *********\n"); + lbl_1_bss_4C = omInitObjMan(600, 0x2000); + omGameSysInit(lbl_1_bss_4C); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 25000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + CZoom = 3200.0f; + Center.x = 0.0f; + Center.y = 0.0f; + Center.z = -100.0f; + CRot.x = -30.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + { + Vec sp3C = { 0.0f, 0.0f, 0.0f }; + Vec sp30 = { 0.25f, -0.75f, -0.45f }; + GXColor sp8 = { 0xFF, 0xFF, 0xFF, 0xFF }; + + lbl_1_bss_48 = Hu3DGLightCreateV(&sp3C, &sp30, &sp8); + } + Hu3DGLightStaticSet(lbl_1_bss_48, 1); + Hu3DGLightInfinitytSet(lbl_1_bss_48); + { + Vec sp24; + Vec sp18; + Vec spC; + + sp24.x = 0.0f; + sp24.y = 10000.0f; + sp24.z = 0.0f; + sp18.x = 0.0f; + sp18.y = 1.0f; + sp18.z = 0.0f; + spC.x = 0.0f; + spC.y = 0.0f; + spC.z = 0.5f; + Hu3DShadowCreate(12.0f, 9000.0f, 10010.0f); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&sp24, &sp18, &spC); + } + Hu3DShadowSizeSet(224); + lbl_1_data_2A4 = -1; + lbl_1_bss_44 = -1; + lbl_1_bss_14 = (_CheckFlag(FLAG_ID_MAKE(1, 0)) != 0); + HuWinInit(1); + lbl_1_bss_64 = omAddObjEx(lbl_1_bss_4C, 101, 10, 4, 1, fn_1_64F8); + for (i = 0; i < 2; i++) { + var_r30 = lbl_1_bss_68[i] = omAddObjEx(lbl_1_bss_4C, 100, 1, 12, 0, fn_1_6FB0); + var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(StructBss68Data), MEMORY_DEFAULT_NUM); + var_r30->work[0] = i; + } + lbl_1_bss_70 = omAddObjEx(lbl_1_bss_4C, 0x7FDA, 0, 0, -1, omOutView); + lbl_1_bss_74 = omAddObjEx(lbl_1_bss_4C, 103, 0, 0, -1, fn_1_75A4); +} + +void fn_1_7AE4(omObjData* arg0) { + StructBss68Data* sp8; + s32 i; + + if (WipeStatGet() == 0) { + for (i = 0; i < 2; i++) { + sp8 = lbl_1_bss_68[i]->data; + } + if (lbl_1_data_2A4 >= 0) { + MGSeqKill(lbl_1_data_2A4); + } + MGSeqKillAll(); + HuAudAllStop(); + omOvlReturnEx(1, 1); + } +} From fce8e6636f5b80aa35bbd63aa38716ffcd7e23e8 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Wed, 1 Jan 2025 18:59:23 +0100 Subject: [PATCH 225/311] Match most of m458Dll --- config/GMPE01_00/rels/m458Dll/symbols.txt | 228 +-- configure.py | 6 +- src/OdemuExi2/DebuggerDriver.c | 3 +- src/REL/m458Dll/main.c | 1615 +++++++++++++++++++++ 4 files changed, 1735 insertions(+), 117 deletions(-) create mode 100644 src/REL/m458Dll/main.c diff --git a/config/GMPE01_00/rels/m458Dll/symbols.txt b/config/GMPE01_00/rels/m458Dll/symbols.txt index 0a2dc8ab..fda69ac1 100644 --- a/config/GMPE01_00/rels/m458Dll/symbols.txt +++ b/config/GMPE01_00/rels/m458Dll/symbols.txt @@ -13,113 +13,113 @@ ObjectSetup = .text:0x0000691C; // type:function size:0x480 fn_1_6D9C = .text:0x00006D9C; // type:function size:0xD0 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC data:4byte -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:4byte -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x94 -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x50 -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:4byte -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x70 -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:4byte -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:4byte -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0xC data:4byte -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0xC data:4byte -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x94 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 scope:local data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x50 scope:local data:4byte +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x70 scope:local +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0xC scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0xC scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 lbl_1_data_8 = .data:0x00000008; // type:object size:0x8 data:4byte lbl_1_data_10 = .data:0x00000010; // type:object size:0x28 lbl_1_data_38 = .data:0x00000038; // type:object size:0x28 lbl_1_data_60 = .data:0x00000060; // type:object size:0x28 -lbl_1_data_88 = .data:0x00000088; // type:object size:0xA -lbl_1_data_92 = .data:0x00000092; // type:object size:0xA +lbl_1_data_88 = .data:0x00000088; // type:object size:0xA data:byte +lbl_1_data_92 = .data:0x00000092; // type:object size:0xA data:byte lbl_1_data_9C = .data:0x0000009C; // type:object size:0x28 lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x28 lbl_1_data_EC = .data:0x000000EC; // type:object size:0x28 @@ -130,22 +130,23 @@ lbl_1_data_130 = .data:0x00000130; // type:object size:0x4 data:4byte lbl_1_data_134 = .data:0x00000134; // type:object size:0x4 data:4byte lbl_1_data_138 = .data:0x00000138; // type:object size:0x24 data:2byte lbl_1_data_15C = .data:0x0000015C; // type:object size:0x4 data:4byte -lbl_1_data_160 = .data:0x00000160; // type:object size:0x9 data:string -lbl_1_data_169 = .data:0x00000169; // type:object size:0x3 data:string +lbl_1_data_160 = .data:0x00000160; // type:object size:0x9 scope:local data:string +lbl_1_data_169 = .data:0x00000169; // type:object size:0x3 scope:local data:string lbl_1_data_16C = .data:0x0000016C; // type:object size:0x4 data:4byte jumptable_1_data_170 = .data:0x00000170; // type:object size:0x30 scope:local lbl_1_data_1A0 = .data:0x000001A0; // type:object size:0x4 data:4byte lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x4 data:float lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x4 data:float lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x4 data:float -lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x4 data:string +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x4 scope:local data:string jumptable_1_data_1B4 = .data:0x000001B4; // type:object size:0x34 scope:local lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0x2C -lbl_1_data_214 = .data:0x00000214; // type:object size:0x8 data:string -lbl_1_data_21C = .data:0x0000021C; // type:object size:0x19 data:string -lbl_1_data_235 = .data:0x00000235; // type:object size:0x24 data:string +lbl_1_data_214 = .data:0x00000214; // type:object size:0x8 scope:local data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x19 scope:local data:string +lbl_1_data_235 = .data:0x00000235; // type:object size:0x24 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte @@ -156,7 +157,8 @@ lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:float lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x50 lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x4 data:4byte @@ -165,11 +167,13 @@ lbl_1_bss_98 = .bss:0x00000098; // type:object size:0x4 data:4byte lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x4 data:4byte lbl_1_bss_A0 = .bss:0x000000A0; // type:object size:0x4 data:4byte lbl_1_bss_A4 = .bss:0x000000A4; // type:object size:0x4 data:4byte -lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x8 data:4byte +lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte +lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:4byte lbl_1_bss_B0 = .bss:0x000000B0; // type:object size:0x4 data:4byte lbl_1_bss_B4 = .bss:0x000000B4; // type:object size:0x4 data:4byte lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte -lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x8 data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x4 data:4byte lbl_1_bss_C4 = .bss:0x000000C4; // type:object size:0x4 data:4byte lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x1C0 data:4byte diff --git a/configure.py b/configure.py index 126114bd..9d07dc00 100644 --- a/configure.py +++ b/configure.py @@ -1043,8 +1043,8 @@ config.libs = [ Rel( "m424Dll", # Blame it on the Crane objects={ - Object(MatchingFor("GMPE01_00"), "REL/m424Dll/main.c"), - Object(MatchingFor("GMPE01_00"), "REL/m424Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m424Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m424Dll/map.c"), Object(NonMatching, "REL/m424Dll/ball.c"), Object(NonMatching, "REL/m424Dll/claw.c"), }, @@ -1146,7 +1146,7 @@ config.libs = [ Rel( "m438Dll", # Chain Chomp Fever objects={ - Object(MatchingFor("GMPE01_00"), "REL/m438Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m438Dll/main.c"), Object(NonMatching, "REL/m438Dll/map.c"), Object(NonMatching, "REL/m438Dll/fire.c"), }, diff --git a/src/OdemuExi2/DebuggerDriver.c b/src/OdemuExi2/DebuggerDriver.c index e01a42e4..eb1415a9 100644 --- a/src/OdemuExi2/DebuggerDriver.c +++ b/src/OdemuExi2/DebuggerDriver.c @@ -100,7 +100,6 @@ static BOOL DBGWriteMailbox(u32 p1) } #pragma dont_inline on - static BOOL DBGReadMailbox(u32 *p1) { BOOL total = FALSE; @@ -119,7 +118,7 @@ static BOOL DBGReadMailbox(u32 *p1) return IS_FALSE(total); } -#pragma dont_inline off +#pragma dont_inline reset static BOOL DBGRead(u32 count, u32 *buffer, s32 param3) { diff --git a/src/REL/m458Dll/main.c b/src/REL/m458Dll/main.c new file mode 100644 index 00000000..f59e3649 --- /dev/null +++ b/src/REL/m458Dll/main.c @@ -0,0 +1,1615 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "game/frand.h" + +extern s32 rand8(void); + +typedef struct UnkCameraStruct { + /* 0x00 */ float unk_00; + /* 0x04 */ float unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ float unk_10; + /* 0x14 */ float unk_14; +} UnkCameraStruct; /* size = 0x18 */ + +typedef struct UnkBssCCStruct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ float unk_04[3]; +} UnkBssCCStruct; /* size = 0x10 */ + +typedef struct UnkBss28CStruct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ s32 unk_0C; +} UnkBss28CStruct; /* size = 0x10 */ + +typedef struct UnkData114Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ float unk_10; + /* 0x14 */ float unk_14; +} UnkData114Struct; /* size = 0x18 */ + +typedef struct M458DllWork { + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + s32 unk_14; + s32 unk_18; + s32 unk_1C; + s32 unk_20; + s32 unk_24; + float unk_28; + float unk_2C; + char unk30[4]; + float unk_34; + s32 unk_38; + s32 unk_3C; + s32 unk_40; +} M458DllWork; /* size = 0x44 */ + +s16 fn_1_4BE8(); +void fn_1_6D9C(omObjData *arg0); + +s32 lbl_1_data_0[2] = { 0x570025, 0x570026 }; +s32 lbl_1_data_8[2] = { 0, 0 }; +s32 lbl_1_data_10[0xA] = { + 0x5F0000, + 0x5F0002, + 0x5F0003, + 0x5F0005, + 0x5F0006, + 0x5F0036, + 0x5F002F, + 0x5F001A, + 0x570000, + 0x5F0017, +}; +u32 lbl_1_data_38[0xA] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }; +u32 lbl_1_data_60[0xA] = { 0x30008, 0, 0, 0x3000A, 0, 0, 0x57002A, 0x570028, 0x570029, 0x570027 }; +u8 lbl_1_data_88[0xA] = { 0, 0, 0, 1, 1, 1, 1, 0, 1, 1 }; +u8 lbl_1_data_92[0xA] = { 0, 0, 0, 1, 1, 1, 1, 0, 1, 1 }; +s32 lbl_1_data_9C[0xA] = { 8, 8, 8, 0, 0, 0, 8, 8, 8, 8 }; +s32 lbl_1_data_C4[0xA] = { 0, 0, 0, 0, 3, 0, 0, 0, 0, 0 }; +s32 lbl_1_data_EC[0xA] = { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }; +UnkData114Struct lbl_1_data_114 = { 0, 0, 0.0f, 0.0f, 0.0f, 0.0f }; +s16 lbl_1_data_12C = -1; +s16 lbl_1_data_12E = -1; +s32 lbl_1_data_130 = -1; +s32 lbl_1_data_134 = -1; +s16 lbl_1_data_138[0x12] = { + -1, + 0, + -0x3D4C, + 0, + 0, + 0, + 0x4403, + 0x4000, + 0x4334, + 0, + 0x42B4, + 0, + 0, + 0, + 0x4403, + 0x4000, + 0x4334, + 0, +}; +s32 lbl_1_data_15C = -1; + +UnkBss28CStruct lbl_1_bss_28C[9]; +UnkBssCCStruct lbl_1_bss_CC[0x1C]; +omObjData *lbl_1_bss_C8; +omObjData *lbl_1_bss_C4; +omObjData *lbl_1_bss_C0; +omObjData *lbl_1_bss_BC; +omObjData *lbl_1_bss_B8; +s32 lbl_1_bss_B4; +s32 lbl_1_bss_B0; +s32 lbl_1_bss_AC; +s32 lbl_1_bss_A8; +s32 lbl_1_bss_A4; +Process *lbl_1_bss_A0; +s32 lbl_1_bss_9C; +s32 lbl_1_bss_98; +s32 lbl_1_bss_94; +s32 lbl_1_bss_90; +s32 lbl_1_bss_8C; +HsfanimStruct00 lbl_1_bss_3C; +float lbl_1_bss_38; +float lbl_1_bss_34; +float lbl_1_bss_30; +float lbl_1_bss_2C; +float lbl_1_bss_28; +s32 lbl_1_bss_24; +s32 lbl_1_bss_20; +s32 lbl_1_bss_1C; +s32 lbl_1_bss_18; +s32 lbl_1_bss_14; +s32 lbl_1_bss_10; +s16 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +s32 lbl_1_bss_0; + +void fn_1_A0(void) +{ + if ((HuPadBtnDown[0] & PAD_BUTTON_B) != 0) { + Center.x = lbl_1_bss_BC->trans.x; + Center.y = lbl_1_bss_BC->trans.y; + Center.z = lbl_1_bss_BC->trans.z; + } + Center.x += 10.0 * (((HuPadBtn[0] & PAD_BUTTON_RIGHT) != 0) - ((HuPadBtn[0] & PAD_BUTTON_LEFT) != 0)); + Center.z -= 10.0 * (((HuPadBtn[0] & PAD_BUTTON_UP) != 0) - ((HuPadBtn[0] & PAD_BUTTON_DOWN) != 0)); + Center.y += (30.0 * ((HuPadTrigL[0] - HuPadTrigR[0]) / 128.0)); + CZoom += 25.0 * (((HuPadBtn[0] & PAD_BUTTON_X) != 0) - ((HuPadBtn[0] & PAD_BUTTON_Y) != 0)); + CRot.y += HuPadSubStkX[0] / 16.0; + CRot.x += HuPadSubStkY[0] / -16.0; + print8(0x40, 0x188, 1.0f, "%f,%f,%f", Center.x, Center.y, Center.z); + print8(0x40, 0x198, 1.0f, "%f,%f,%f", CRot.x, CRot.y, CRot.z); + print8(0x40, 0x1A8, 1.0f, "%f", CZoom); +} + +s32 lbl_1_data_16C = -1; + +// https://decomp.me/scratch/QQLCN r17 issues +void fn_1_4C8(omObjData *object) +{ + Mtx sp1E0; + float sp1A8[2]; + float sp1A0[2]; + s32 spD0; + s32 spCC; + s32 spC8; + s32 spC4; + s32 spC0; + float spBC; + s32 spB8; + ModelData *spB4; + float spB0; + float spAC; + s32 spA8; + s32 spA4; + float var_f31; + float var_f30; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + + M458DllWork *var_r31; + ModelData *var_r29; + s16 var_r28; + M458DllWork *var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + ModelData *var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + s32 var_r18; + s32 var_r17; + + var_r31 = object->data; + var_r27 = (&lbl_1_bss_BC)[1 - object->work[0]]->data; + var_f23 = 0.0f; + var_f22 = 0.0f; + var_f28 = 0.0f; + var_r22 = 0; + var_r28 = -1; + var_r31->unk_2C = var_r31->unk_34 = 0.0f; + if ((lbl_1_bss_B0 == (var_r31->unk_00 == 0 ? 0x3F1 : 0x3F2)) && (var_r31->unk_18 == 3) && (var_r31->unk_1C >= 0x168)) { + if (var_r31->unk_1C == 0x168) { + var_r31->unk_14 = rand8() % 15; + } + if (var_r31->unk_0C != -1) { + var_r22 = (HuPadBtnDown[var_r31->unk_0C] & 0x100) != 0 ? 1 : 0; + } + else { + var_r31->unk_14 += var_r31->unk_14 < 0x10000; + if (var_r31->unk_14 == 0x1E) { + var_r22 = 1; + } + } + } + if (lbl_1_bss_B0 == (var_r31->unk_00 == 0 ? 0x3ED : 0x3EF)) { + var_r25 = 0; + var_r24 = 0; + if (var_r31->unk_0C != -1) { + var_r25 = HuPadStkX[var_r31->unk_0C] < -0x14 ? -1 : (HuPadStkX[var_r31->unk_0C] > 0x14 ? 1 : 0); + var_r24 = -HuPadStkY[var_r31->unk_0C] < -0x14 ? -1 : (-HuPadStkY[var_r31->unk_0C] > 0x14 ? 1 : 0); + var_r22 = (HuPadBtnDown[var_r31->unk_0C] & 0x100) != 0 ? 1 : 0; + } + else { + var_r31->unk_14 += var_r31->unk_14 < 0x10000; + if (var_r31->unk_14 == 0x1E) { + lbl_1_bss_94 = rand8() % (var_r31->unk_00 + 2); + lbl_1_bss_90 = rand8() % (var_r31->unk_00 + 2); + } + if (fabs((500.0 * var_r31->unk_3C) - object->trans.x) < 10.0) { + var_r25 = lbl_1_bss_94 > 0 ? (var_r31->unk_00 == 0 ? (((rand8() % 2) * 2) - 1) : -1) : 0; + lbl_1_bss_94 -= lbl_1_bss_94 > 0; + } + if (fabs((500.0 * var_r31->unk_40) - object->trans.z) < 10.0) { + var_r24 = lbl_1_bss_90 > 0 ? (var_r31->unk_00 == 0 ? (((rand8() % 2) * 2) - 1) : -1) : 0; + lbl_1_bss_90 -= lbl_1_bss_90 > 0; + } + if ((var_r31->unk_14 >= 0x2D) && ((var_r31->unk_14 % 30) == 0xF) && (lbl_1_bss_94 == 0) && (lbl_1_bss_90 == 0)) { + var_r22 = 1; + } + } + if (lbl_1_bss_B4 >= 0x32) { + var_r25 = var_r24 = 0; + } + if (var_r31->unk_00 == 1) { + spC4 = 0; + spC0 = 0; + if (fabs((500.0 * var_r31->unk_3C) - object->trans.x) < 10.0) { + var_r17 = object->trans.x < -250.0 ? -1 : (object->trans.x > 250.0 ? 1 : 0); + spD0 = var_r17; + } + else { + var_r17 = (object->trans.x < 0.0f ? -1 : 0); + spD0 = var_r17 + 1; + } + if (fabs((500.0 * var_r31->unk_40) - object->trans.z) < 10.0) { + spCC = spC8 = object->trans.z < -250.0 ? -1 : (object->trans.z > 250.0 ? 1 : 0); + } + else { + spCC = object->trans.z < 0.0f ? -1 : 0; + spC8 = spCC + 1; + } + for (var_r21 = var_r17; var_r21 <= spD0; var_r21++) { + for (var_r20 = spCC; var_r20 <= spC8; var_r20++) { + if (var_r27->unk_38 == 1 + var_r21 + var_r25 + (1 + var_r20 + var_r24) * 3) { + var_r25 = var_r24 = 0; + } + if (var_r27->unk_38 == 1 + var_r21 + var_r25 + (var_r20 + 1) * 3) { + var_r25 = 0; + } + if (var_r27->unk_38 == 1 + var_r21 + (1 + var_r20 + var_r24) * 3) { + var_r24 = 0; + } + } + } + } + if ((var_r25 * ((500.0 * var_r31->unk_3C) - object->trans.x)) < 0.0) { + var_r31->unk_3C = var_r31->unk_3C + var_r25; + } + if ((fabs((500.0 * var_r31->unk_3C) - object->trans.x) < 10.0) && (var_r25 != 0) && ((var_r31->unk_3C + var_r25) >= -1) + && ((var_r31->unk_3C + var_r25) <= 1)) { + var_r31->unk_3C = var_r31->unk_3C + var_r25; + } + var_f23 = (((500.0 * var_r31->unk_3C) - object->trans.x) / 0.25) / 1.75; + if ((var_r24 * ((500.0 * var_r31->unk_40) - object->trans.z)) < 0.0) { + var_r31->unk_40 = var_r31->unk_40 + var_r24; + } + if ((fabs((500.0 * var_r31->unk_40) - object->trans.z) < 10.0) && (var_r24 != 0) && ((var_r31->unk_40 + var_r24) >= -1) + && ((var_r31->unk_40 + var_r24) <= 1)) { + var_r31->unk_40 = var_r31->unk_40 + var_r24; + } + var_f22 = (((500.0 * var_r31->unk_40) - object->trans.z) / -0.25) / 1.75; + } + if (((var_r31->unk_00 != 1) || (var_r31->unk_08 != -1)) && (var_r31->unk_18 == 0)) { + if ((lbl_1_bss_B0 > (var_r31->unk_00 == 0 ? 0x3E9 : 0x3EE)) && (lbl_1_bss_B0 < 0x3F3)) { + var_f31 = 0.25 * var_f23; + var_f30 = 0.25 * -var_f22; + { + Vec sp1B0 = { 0.0f, 0.0f, 0.0f }; + sp1B0.x = var_f31; + sp1B0.z = var_f30; + PSMTXRotRad(sp1E0, 0x79, 0.017453292f * CRot.y); + PSMTXMultVec(sp1E0, &sp1B0, &sp1B0); + var_f31 = sp1B0.x; + var_f30 = sp1B0.z; + } + var_f28 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f28 >= 0.5f) { + if (var_f28 < 10.0f) { + var_r31->unk_2C = var_f31; + var_r31->unk_34 += var_f30; + } + else { + var_f31 = var_f31 / var_f28; + var_f30 = var_f30 / var_f28; + var_f28 = 10.0f; + var_r31->unk_2C = var_f31 * var_f28; + var_r31->unk_34 = var_f30 * var_f28; + } + var_r31->unk_28 = var_f28; + object->rot.y = atan2d(var_r31->unk_2C, var_r31->unk_34); + if (var_r31->unk_28 >= 8.0f) { + var_r28 = 2; + } + else { + var_r28 = 2; + } + } + else { + var_r28 = 0; + } + } + } + object->trans.x += 1.75f * var_r31->unk_2C; + object->trans.z += 1.75f * var_r31->unk_34; + switch (lbl_1_bss_B0) { + case 0x3E9: + case 0x3EE: + if (lbl_1_bss_B0 == (var_r31->unk_00 == 0 ? 0x3E9 : 0x3EE)) { + if (lbl_1_bss_B4 == 0) { + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + if (var_r31->unk_00 == 0) { + object->trans.x = 0.0f; + object->trans.z = 0.0f; + } + else if (var_r31->unk_08 != -1) { + var_r31->unk_3C = -2; + for (var_r18 = 2; var_r18 >= 0; var_r18--) { + for (var_r19 = 2; var_r19 >= 0; var_r19--) { + if (var_r27->unk_38 != (var_r18 + (var_r19 * 3))) { + var_r31->unk_3C = var_r19 - 1; + var_r31->unk_40 = var_r18 - 1; + object->trans.x = 500.0 * var_r31->unk_3C; + object->trans.z = 500.0 * var_r31->unk_40; + break; + } + } + if (var_r31->unk_3C != -2) { + break; + } + } + } + else { + do { + var_r31->unk_38 = rand8() % 9; + } while (var_r27->unk_38 == var_r31->unk_38); + var_r31->unk_3C = (var_r31->unk_38 % 3) - 1; + var_r31->unk_40 = (var_r31->unk_38 / 3) - 1; + object->trans.x = 500.0 * var_r31->unk_3C; + object->trans.z = 500.0 * var_r31->unk_40; + } + } + if (lbl_1_bss_B4 <= 0x1E) { + if (var_r31->unk_08 == -1) { + Hu3DMotionTimeSet(object->model[0], 138.0f); + } + object->trans.y = 2400.0 * (1.0 - (lbl_1_bss_B4 / 30.0)); + } + if ((var_r31->unk_08 != -1) && (lbl_1_bss_B4 == 0x1E)) { + var_r28 = 4; + } + if (lbl_1_bss_B4 == ((var_r31->unk_08 != -1 ? 0xA : 0x3C) + 0x1E)) { + var_r28 = 0; + } + if (lbl_1_bss_B4 == 0x1E) { + lbl_1_data_114.unk_04 += 0x32; + } + if (lbl_1_bss_B4 == 0x1E) { + HuAudFXPlay(0x33D); + } + } + break; + case 0x3EB: + if ((lbl_1_bss_B4 == 0) && (var_r31->unk_00 == 0)) { + var_r31->unk_18 = 1; + var_r31->unk_1C = 0; + } + break; + case 0x3ED: + case 0x3EF: + if (lbl_1_bss_B0 == (var_r31->unk_00 == 0 ? 0x3ED : 0x3EF)) { + if (lbl_1_bss_B4 == 0) { + lbl_1_bss_0 = 0x12C; + lbl_1_data_12E = MGSeqCreate(1, 0xA, -1, -1); + HuWinMesMaxSizeGet(1, sp1A8, 0x280019); + lbl_1_bss_C = HuWinCreate(-10000.0f, 400.0f, sp1A8[0], sp1A8[1], 1); + HuWinBGTPLvlSet(lbl_1_bss_C, 0.0f); + HuWinMesSpeedSet(lbl_1_bss_C, 0); + HuWinMesSet(lbl_1_bss_C, 0x280019); + } + if (lbl_1_data_12E != -1) { + MGSeqParamSet(lbl_1_data_12E, 1, (lbl_1_bss_0 + 0x3A) / 60); + } + lbl_1_bss_0--; + if ((var_r22 != 0) || (lbl_1_bss_0 == 0)) { + lbl_1_bss_B4 = 0x32; + MGSeqKill(lbl_1_data_12E); + lbl_1_data_12E = -1; + HuWinExCleanup(lbl_1_bss_C); + } + if (lbl_1_bss_B4 == 0x32) { + if (fabs((500.0 * var_r31->unk_3C) - object->trans.x) < 1.0) { + if (fabs((500.0 * var_r31->unk_40) - object->trans.z) < 1.0) { + lbl_1_bss_B4 = 0x3C; + object->rot.y = 0.0f; + var_r31->unk_38 = 1 + var_r31->unk_3C + ((var_r31->unk_40 + 1) * 3); + } + } + } + } + break; + case 0x3F1: + case 0x3F2: + if ((lbl_1_bss_B0 == (var_r31->unk_00 == 0 ? 0x3F1 : 0x3F2)) && (lbl_1_bss_B4 == 0) && (var_r31->unk_08 != -1)) { + HuWinMesMaxSizeGet(1, sp1A0, 0x300025); + lbl_1_bss_C = HuWinCreate(-10000.0f, 400.0f, sp1A0[0], sp1A0[1], 1); + HuWinBGTPLvlSet(lbl_1_bss_C, 0.0f); + HuWinMesSpeedSet(lbl_1_bss_C, 0); + HuWinMesSet(lbl_1_bss_C, 0x300025); + } + break; + case 0x3F3: + if (lbl_1_bss_98 != var_r31->unk_00) { + if (lbl_1_bss_B4 == 1) { + var_r28 = 7; + } + if (lbl_1_bss_B4 == 0x78) { + Hu3DModelAttrReset(lbl_1_bss_B8->model[var_r31->unk_38 + 4], HU3D_MOTATTR_PAUSE); + if (lbl_1_bss_CC[0].unk_00 < 3) { + lbl_1_bss_CC[0].unk_04[lbl_1_bss_CC[0].unk_00] = 0.0f; + lbl_1_bss_CC[0].unk_00++; + } + } + if (lbl_1_bss_B4 == 0x99) { + Hu3DModelAttrSet(lbl_1_bss_B8->model[var_r31->unk_38 + 4], HU3D_MOTATTR_PAUSE); + } + if (lbl_1_bss_B4 == 0xB7) { + Hu3DModelAttrReset(lbl_1_bss_B8->model[var_r31->unk_38 + 4], HU3D_MOTATTR_PAUSE); + } + if ((lbl_1_bss_B4 == 0xBC) && (lbl_1_bss_CC[1].unk_00 < 3)) { + lbl_1_bss_CC[1].unk_04[lbl_1_bss_CC[1].unk_00] = 0.0f; + lbl_1_bss_CC[1].unk_00++; + } + if (lbl_1_bss_B4 == 0xD2) { + var_r28 = 8; + espAttrReset(lbl_1_data_8[1], HUSPR_ATTR_DISPOFF); + if (lbl_1_bss_CC[(var_r31->unk_08 != -1 ? var_r31->unk_08 : 8) + 2].unk_00 < 3) { + lbl_1_bss_CC[(var_r31->unk_08 != -1 ? var_r31->unk_08 : 8) + 2] + .unk_04[lbl_1_bss_CC[(var_r31->unk_08 != -1 ? var_r31->unk_08 : 8) + 2].unk_00] + = 0.0f; + lbl_1_bss_CC[(var_r31->unk_08 != -1 ? var_r31->unk_08 : 8) + 2].unk_00++; + } + if (lbl_1_data_130 != -1) { + HuAudSeqFadeOut(lbl_1_data_130, 0x64); + lbl_1_data_130 = -1; + } + } + if ((lbl_1_bss_B4 >= 0xD2) && (lbl_1_bss_B4 <= 0xD6)) { + s32 sp1BC[9] = { 0, -12, -36, 0, 0, -12, -36, -48, 0 }; + spBC = (lbl_1_bss_B4 - 0xD2) / 4.0; + var_f26 = (lbl_1_bss_B4 - 0xD2) / 4.0; + var_f26 = var_f26 > 1.0f ? 1.0f : var_f26; + espPosSet(lbl_1_data_8[1], 290.0f, (64.0f * (1.0f - spBC)) + (sp1BC[(var_r31->unk_08 != -1 ? var_r31->unk_08 : 8)] + 0x8C)); + espScaleSet(lbl_1_data_8[1], var_f26, var_f26); + } + if (lbl_1_bss_B4 == 0x10E) { + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + espAttrSet(lbl_1_data_8[1], HUSPR_ATTR_DISPOFF); + } + if (lbl_1_bss_B4 == 0x122) { + // TODO remove temporary? + spB8 = HuAudFXPlay((var_r31->unk_08 != -1 ? var_r31->unk_08 : 8) + 0x800); + HuAudFXFadeOut(spB8, 0x9C4); + } + if (lbl_1_bss_B4 >= 0x13B) { + object->trans.y -= 77.0f; + } + } + else if ((lbl_1_bss_B4 == 0x3C) && (lbl_1_data_138[0] != -1)) { + Hu3DParManKill(lbl_1_data_138[0]); + lbl_1_data_138[0] = -1; + } + break; + case 0x3F4: + if (var_r31->unk_00 == lbl_1_bss_98) { + if ((lbl_1_bss_B4 == 1) && (var_r31->unk_08 == -1)) { + HuAudFXPlay(0x3A); + } + var_r28 = 9; + } + break; + } + switch (var_r31->unk_18) { + case 0: + var_r31->unk_1C++; + break; + case 1: + var_r31->unk_1C++; + if (var_r31->unk_1C <= 0x3C) { + var_r28 = 5; + object->rot.y = -180.0 * (var_r31->unk_1C / 60.0); + } + else { + Hu3DMotionTimeSet(object->model[0], 120.0f); + var_r28 = 0; + var_r31->unk_18 = 0; + var_r31->unk_1C = 0; + } + break; + case 2: + var_r31->unk_1C++; + break; + case 3: + if (var_r31->unk_1C == 0) { + lbl_1_data_15C = 6; + } + if (var_r31->unk_1C < 0x168) { + var_r23 = &Hu3DData[lbl_1_bss_B8->model[3]]; + if (var_r31->unk_1C == 0) { + Hu3DModelAttrReset(lbl_1_bss_B8->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(lbl_1_bss_B8->model[3], object->trans.x, 625.0f + object->trans.y, object->trans.z); + Hu3DModelScaleSet(lbl_1_bss_B8->model[3], 0.1f, 0.1f, 0.1f); + Hu3DModelTPLvlSet(lbl_1_bss_B8->model[3], 1.0f); + lbl_1_bss_1C = 0; + HuAudFXPlay(0x7F4); + lbl_1_data_16C = HuAudFXPlay(0x7F3); + } + var_r23->rot.y = lbl_1_bss_1C % 360; + lbl_1_bss_1C += 0x19; + if (var_r31->unk_1C < 0xB4) { + var_f20 = 0.0f; + var_f21 = 1.0f; + } + else { + var_f20 = 1.0f; + var_f21 = 1.0f; + } + var_r23->scale.x = var_f20 + (var_f21 * sind((float)(var_r31->unk_1C % 180))); + var_r23->scale.y = var_r23->scale.z = var_r23->scale.x; + if (var_r31->unk_1C < 0xB4) { + var_r31->unk_1C += 6; + } + else { + var_r31->unk_1C = var_r31->unk_1C + 0x12; + } + if (var_r31->unk_1C >= 0x168) { + var_r31->unk_1C = 0x168; + Hu3DModelRotSet(lbl_1_bss_B8->model[3], 0.0f, 0.0f, 0.0f); + } + } + else { + spB4 = &Hu3DData[lbl_1_bss_B8->model[3]]; + var_r31->unk_1C = var_r31->unk_1C + 4; + if (var_r31->unk_1C > 0x2D0) { + var_r31->unk_1C -= 0x168; + } + spB4->pos.y += (0.20000000298023224 * sind((var_r31->unk_1C - 0x168))); + if (var_r22 != 0) { + lbl_1_bss_B4 = 0x32; + var_r31->unk_18 = 4; + var_r31->unk_1C = 0; + var_r28 = 6; + } + } + break; + case 4: + var_r31->unk_1C++; + if (var_r31->unk_1C >= 0x1B) { + var_r29 = &Hu3DData[lbl_1_bss_B8->model[3]]; + var_r26 = var_r31->unk_1C - 0x1B; + if (var_r26 == 0) { + if (var_r31->unk_04 != -1) { + omVibrate(var_r31->unk_04, 0xC, 4, 2); + } + HuWinExCleanup(lbl_1_bss_C); + lbl_1_data_15C = -1; + if (lbl_1_data_16C != -1) { + HuAudFXStop(lbl_1_data_16C); + lbl_1_data_16C = -1; + } + HuAudFXPlay(0x7F5); + } + if (var_r26 == 8) { + if (lbl_1_data_138[0] == -1) { + lbl_1_data_138[0] = fn_1_4BE8(); + Hu3DParManPosSet(lbl_1_data_138[0], var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); + } + Hu3DModelAttrSet(lbl_1_bss_B8->model[3], HU3D_ATTR_DISPOFF); + } + else if (var_r26 > 8) { + if (var_r31->unk_20 == 6) { + if (Hu3DMotionTimeGet(object->model[0]) >= Hu3DMotionMaxTimeGet(object->model[0])) { + var_r28 = 0; + } + } + if (var_r26 <= 0x1C) { + var_f27 = (var_r26 - 8) / 10.0; + spB0 = ((var_r26 - 8) * 0x12); + var_f27 = var_f27 > 1.0f ? 2.5 : 2.5 * var_f27; + Hu3DModelAttrReset(lbl_1_bss_B8->model[lbl_1_bss_18 + 0xD], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(lbl_1_bss_B8->model[lbl_1_bss_18 + 0xD], var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); + Hu3DModelScaleSet(lbl_1_bss_B8->model[lbl_1_bss_18 + 0xD], var_f27, var_f27, var_f27); + } + if ((var_r26 >= 0x2D) && (var_r26 <= 0x41)) { + var_f25 = (var_r26 - 0x2D) / 5.0; + spAC = (var_r26 - 0x2D) * 0x12; + var_f25 = var_f25 > 1.0f ? 1.0f : var_f25; + var_f25 = 0.0; + Hu3DModelAttrReset(lbl_1_bss_B8->model[lbl_1_bss_18 + 0xD], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(lbl_1_bss_B8->model[lbl_1_bss_18 + 0xD], var_r29->pos.x, var_r29->pos.y - (30.0f * var_f25), var_r29->pos.z); + var_r31->unk_1C += 5; + } + if (var_r26 == 0x62) { + Hu3DModelAttrSet(lbl_1_bss_B8->model[lbl_1_bss_18 + 0xD], HU3D_ATTR_DISPOFF); + lbl_1_bss_18 = lbl_1_bss_18 >= 9 ? var_r27->unk_38 : lbl_1_bss_18; + if (lbl_1_bss_18 == var_r27->unk_38) { + lbl_1_bss_98 = var_r31->unk_00; + } + else if (lbl_1_bss_18 == var_r31->unk_38) { + lbl_1_bss_98 = var_r27->unk_00; + } + var_r31->unk_18 = lbl_1_bss_98 == -1 ? 5 : 0; + var_r31->unk_1C = 0; + } + } + else { + if (var_r26 < 4) { + var_r29->pos.y += 10.0f + (0.5f * var_r26); + var_r29->scale.x += 0.10000000149011612 * sind((4.0f * var_r26)); + var_r29->scale.y = var_r29->scale.z = var_r29->scale.x; + } + else { + var_f24 = (0xFF - (var_r26 << 5)); + var_f24 = var_f24 * 0.003921569f; // 1 / 255 + Hu3DModelTPLvlSet(lbl_1_bss_B8->model[3], var_f24); + } + var_r29->pos.y += -0.49f * var_r26 * var_r26; + } + } + break; + case 5: + if (var_r31->unk_1C == 0) { + Hu3DModelAttrReset(lbl_1_bss_B8->model[lbl_1_bss_18 + 4], HU3D_MOTATTR_PAUSE); + lbl_1_bss_28C[lbl_1_bss_18].unk_0C = 0; + if (lbl_1_bss_CC[0].unk_00 < 3) { + lbl_1_bss_CC[0].unk_04[lbl_1_bss_CC->unk_00] = 0.0f; + lbl_1_bss_CC[0].unk_00++; + } + } + var_r31->unk_1C++; + if ((var_r31->unk_1C == 0x3C) && (*lbl_1_data_138 != -1)) { + Hu3DParManKill(*lbl_1_data_138); + lbl_1_data_138[0] = -1; + } + if (var_r31->unk_1C == 0x21) { + Hu3DModelAttrSet(lbl_1_bss_B8->model[lbl_1_bss_18 + 4], HU3D_MOTATTR_PAUSE); + } + if (var_r31->unk_1C == 0x3F) { + Hu3DModelAttrReset(lbl_1_bss_B8->model[lbl_1_bss_18 + 4], HU3D_MOTATTR_PAUSE); + } + if ((var_r31->unk_1C == 0x44) && (lbl_1_bss_CC[1].unk_00 < 3)) { + lbl_1_bss_CC[1].unk_04[lbl_1_bss_CC[1].unk_00] = 0.0f; + lbl_1_bss_CC[1].unk_00++; + } + if (var_r31->unk_1C == 0x82) { + var_r31->unk_18 = 0; + var_r31->unk_1C = 0; + } + break; + } + if (((var_r31->unk_18 == 3) || (var_r31->unk_18 == 4)) && (lbl_1_data_15C >= 0)) { + lbl_1_data_15C++; + if (lbl_1_data_15C >= 6) { + spA4 = lbl_1_bss_18; + for (spA8 = 0; spA8 < 0x32; spA8++) { + loop_344: + lbl_1_bss_18 = rand8() % 11; + if (lbl_1_bss_18 >= 9) { + if (lbl_1_bss_18 == (var_r31->unk_00 + 9)) { + goto loop_344; + } + } + if ((lbl_1_bss_18 < 9) && (lbl_1_bss_28C[lbl_1_bss_18].unk_0C == 0)) { + goto loop_344; + } + if (spA4 != lbl_1_bss_18) { + break; + } + } + spA4 = lbl_1_bss_18 >= 9 ? (var_r27->unk_08 == -1 ? 0x11 : (var_r27->unk_08 + 9)) : lbl_1_bss_18; + lbl_1_data_15C = 0; + Hu3DMotionTimeSet(lbl_1_bss_B8->model[3], 0.5 + spA4); + } + } + if (var_r31->unk_24 >= 0) { + var_r28 = var_r31->unk_24; + } + if ((var_r28 >= 0) && (var_r28 != var_r31->unk_20)) { + Hu3DMotionShiftSet(object->model[0], object->motion[var_r28], lbl_1_data_C4[var_r28], + (var_r31->unk_08 != -1 ? lbl_1_data_9C[var_r28] : lbl_1_data_EC[var_r28]), + (var_r28 == 8 ? 0x40000002 + : (var_r31->unk_08 != -1 ? lbl_1_data_88[var_r28] : lbl_1_data_92[var_r28]) != 0 ? 0 + : 0x40000001)); + var_r31->unk_20 = var_r28; + } +} + +s32 lbl_1_data_1A0 = -1; +float lbl_1_data_1A4 = 3500.0f; +float lbl_1_data_1A8 = 100.0f; +float lbl_1_data_1AC = -59.0f; + +void fn_1_350C(omObjData *var_r27) +{ + M458DllWork *spC[2]; + float var_f31; + float var_f29; + float var_f27; + float var_f26; + float var_f25; + float var_f19; + + s32 var_r31; + s32 var_r30; + ModelData *var_r29; + ModelData *var_r28; + ModelData *var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + for (var_r31 = 0; var_r31 < 2; var_r31++) { + spC[var_r31] = (&lbl_1_bss_BC)[var_r31]->data; + } + lbl_1_bss_4++; + switch (lbl_1_bss_B0) { + case 0x3EA: + if (lbl_1_bss_B4 <= 0x77) { + var_f27 = lbl_1_bss_B4 / 119.0; + var_f27 = var_f27 > 1.0f ? 1.0f : var_f27; + Hu3DModelPosSet(lbl_1_bss_B8->model[2], 0.0f, 100.0f + (-1500.0f * (1.0f - var_f27)), -950.0f); + Hu3DModelAttrReset(lbl_1_bss_B8->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_B8->model[2], HU3D_ATTR_DISPOFF); + } + break; + case 0x3EB: + if (lbl_1_bss_B4 == 0) { + lbl_1_bss_8C = 0; + } + if (lbl_1_bss_B4 == 0x14) { + espAttrReset(lbl_1_data_8[0], HUSPR_ATTR_DISPOFF); + } + if (((lbl_1_bss_B4 >= 0x14) && (lbl_1_bss_B4 <= 0x32)) || ((lbl_1_bss_B4 >= 0xB4) && (lbl_1_bss_B4 <= 0xD2))) { + var_f19 = lbl_1_bss_B4 <= 0x78 ? ((lbl_1_bss_B4 - 0x14) / 30.0) : (1.0 - ((lbl_1_bss_B4 - 0xB4) / 30.0)); + espTPLvlSet(lbl_1_data_8[0], var_f19); + } + if (lbl_1_bss_B4 == 0xD2) { + espAttrSet(lbl_1_data_8[0], HUSPR_ATTR_DISPOFF); + } + case 0x3EC: + case 0x3ED: + lbl_1_bss_8C++; + lbl_1_bss_8C %= 0x168; + if (lbl_1_bss_14 != 0) { + Hu3DModelPosSet(lbl_1_bss_B8->model[2], 0.0f, 100.0 + (25.0 * sind((360.0 * ((lbl_1_bss_8C % 360) / 360.0)))), -950.0f); + } + break; + case 0x3EE: + if (lbl_1_bss_14 != 0) { + var_r26 = &Hu3DData[lbl_1_bss_B8->model[2]]; + if (lbl_1_bss_B4 >= 7) { + var_r26->pos.y += 12.5; + } + if (lbl_1_bss_B4 == 0) { + Hu3DMotionShiftSet(var_r27->model[1], var_r27->motion[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + } + else { + var_r29 = &Hu3DData[lbl_1_bss_B8->model[spC[0]->unk_38 + 4]]; + if (lbl_1_bss_20 == 0) { + lbl_1_bss_20 = 1; + HuAudFXPlay(0x7F6); + } + if (lbl_1_bss_B4 == 1) { + lbl_1_bss_28C[spC[0]->unk_38].unk_08 = 83.333336f; + } + var_r29->pos.y = (0.9 * var_r29->pos.y) + (0.1 * lbl_1_bss_28C[spC[0]->unk_38].unk_08); + lbl_1_bss_BC->trans.y = var_r29->pos.y - -16.666666666666668; + } + break; + case 0x3F0: + Hu3DModelAttrSet(lbl_1_bss_B8->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_B8->model[2], HU3D_ATTR_DISPOFF); + if (lbl_1_bss_B4 <= 0x3C) { + var_f29 = lbl_1_bss_B4 / 60.0; + var_f29 = var_f29; + var_f29 = 1.0f - ((1.0f - var_f29) * (1.0f - var_f29)); + if (lbl_1_bss_B4 == 0) { + lbl_1_bss_28C[spC[0]->unk_38].unk_08 = -16.666666f; + } + for (var_r31 = 0; var_r31 < 9; var_r31++) { + var_r28 = &Hu3DData[lbl_1_bss_B8->model[var_r31 + 4]]; + Hu3DModelPosSet(lbl_1_bss_B8->model[var_r31 + 4], (500.0 + (200.0f * var_f29)) * (lbl_1_bss_28C[var_r31].unk_00 - 1), + (0.9 * var_r28->pos.y) + (0.1 * lbl_1_bss_28C[spC[0]->unk_38].unk_08), + (500.0 + (200.0f * var_f29)) * (lbl_1_bss_28C[var_r31].unk_04 - 1)); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + if (var_r31 == spC[var_r30]->unk_38) { + (&lbl_1_bss_BC)[var_r30]->trans.x = (500.0 + (200.0f * var_f29)) * (lbl_1_bss_28C[var_r31].unk_00 - 1); + (&lbl_1_bss_BC)[var_r30]->trans.y = var_r28->pos.y - -16.666666666666668; + (&lbl_1_bss_BC)[var_r30]->trans.z = (500.0 + (200.0f * var_f29)) * (lbl_1_bss_28C[var_r31].unk_04 - 1); + } + } + } + } + break; + } + var_r25 = lbl_1_data_1A0; + { + UnkCameraStruct sp14[6] = { + { 3500.0f, 0.0f, 100.0f, 0.0f, -59.0f, 0.0f }, + { 3200.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, + { 3800.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, + { 2000.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, + { 800.0f, 0.0f, 200.0f, 0.0f, -89.0f, 0.0f }, + { 1800.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, + }; + + if (lbl_1_bss_98 != -1) { + sp14[3].unk_04 = (&lbl_1_bss_BC)[1 - lbl_1_bss_98]->trans.x; + sp14[3].unk_0C = (&lbl_1_bss_BC)[1 - lbl_1_bss_98]->trans.z; + sp14[4].unk_04 = (&lbl_1_bss_BC)[1 - lbl_1_bss_98]->trans.x; + sp14[4].unk_0C = (&lbl_1_bss_BC)[1 - lbl_1_bss_98]->trans.z; + sp14[5].unk_04 = (&lbl_1_bss_BC)[lbl_1_bss_98]->trans.x; + sp14[5].unk_0C = (&lbl_1_bss_BC)[lbl_1_bss_98]->trans.z; + } + if (lbl_1_data_1A0 == -1) { + lbl_1_data_1A0 = 0; + lbl_1_bss_24 = 1; + lbl_1_bss_28 = 1.0f; + } + if (lbl_1_data_1A0 == 0) { + lbl_1_data_1A0 = 1; + lbl_1_bss_24 = 1; + lbl_1_bss_28 = 0.5f; + } + if ((lbl_1_bss_B0 == 0x3F0) && (lbl_1_bss_B4 >= 1) && (lbl_1_data_1A0 == 1)) { + lbl_1_data_1A0 = 2; + lbl_1_bss_24 = 0; + lbl_1_bss_28 = 0.0f; + } + if ((lbl_1_bss_B0 == 0x3F3) && (lbl_1_data_1A0 == 2)) { + lbl_1_data_1A0 = 3; + lbl_1_bss_24 = 0; + lbl_1_bss_28 = 0.0f; + } + if ((lbl_1_bss_B0 == 0x3F3) && (lbl_1_bss_B4 >= 0x12C) && (lbl_1_data_1A0 == 3)) { + lbl_1_data_1A0 = 4; + lbl_1_bss_24 = 1; + lbl_1_bss_28 = 1.0f; + } + if ((lbl_1_bss_B0 == 0x3F4) && (lbl_1_data_1A0 == 4)) { + lbl_1_data_1A0 = 5; + lbl_1_bss_24 = 0; + lbl_1_bss_28 = 0.0f; + } + if ((var_r25 != lbl_1_data_1A0) && (var_r25 != -1)) { + lbl_1_data_1A4 = CZoom; + lbl_1_data_1A8 = Center.y; + lbl_1_bss_30 = Center.z; + lbl_1_data_1AC = CRot.x; + lbl_1_bss_34 = CRot.y; + } + if (lbl_1_bss_28 <= 1.0f) { + if (lbl_1_bss_24 == 0) { + lbl_1_bss_28 = 1.0 - (0.95 * (1.0f - lbl_1_bss_28)); + var_f31 = lbl_1_bss_28; + } + else { + lbl_1_bss_28 += 0.008333333333333333; + lbl_1_bss_28 = lbl_1_bss_28 > 1.0f ? 1.0f : lbl_1_bss_28; + var_f31 = 0.5 + (-0.5 * cosd((180.0f * lbl_1_bss_28))); + var_f31 = var_f31; + } + lbl_1_bss_28 = lbl_1_bss_28 > 1.0f ? 1.0f : lbl_1_bss_28; + CZoom = (var_f31 * sp14[lbl_1_data_1A0].unk_00) + (lbl_1_data_1A4 * (1.0f - var_f31)); + Center.x = (var_f31 * sp14[lbl_1_data_1A0].unk_04) + (lbl_1_bss_2C * (1.0f - var_f31)); + Center.y = (var_f31 * sp14[lbl_1_data_1A0].unk_08) + (lbl_1_data_1A8 * (1.0f - var_f31)); + Center.z = (var_f31 * sp14[lbl_1_data_1A0].unk_0C) + (lbl_1_bss_30 * (1.0f - var_f31)); + CRot.x = (var_f31 * sp14[lbl_1_data_1A0].unk_10) + (lbl_1_data_1AC * (1.0f - var_f31)); + CRot.y = (var_f31 * sp14[lbl_1_data_1A0].unk_14) + (lbl_1_bss_34 * (1.0f - var_f31)); + } + } + if ((lbl_1_bss_B0 == 0x3E9) || (lbl_1_bss_B0 == 0x3EE)) { + var_f25 = 0.0f; + var_f26 = 0.0f; + if ((lbl_1_data_114.unk_00 % 2) >= 0) { + lbl_1_data_114.unk_08 = lbl_1_data_114.unk_10; + lbl_1_data_114.unk_0C = lbl_1_data_114.unk_14; + do { + lbl_1_data_114.unk_10 = 2.0 * (rand8() / 255.0) - 1.0; + lbl_1_data_114.unk_14 = (2.0 * (rand8() / 255.0)) - 1.0; + lbl_1_data_114.unk_10 = 0.0f; + } while (sqrtf(((lbl_1_data_114.unk_10 - lbl_1_data_114.unk_08) * (lbl_1_data_114.unk_10 - lbl_1_data_114.unk_08)) + + ((lbl_1_data_114.unk_14 - lbl_1_data_114.unk_0C) * (lbl_1_data_114.unk_14 - lbl_1_data_114.unk_0C))) + < 0.75); + } + var_f25 = lbl_1_data_114.unk_08; + var_f26 = lbl_1_data_114.unk_0C; + var_f25 *= lbl_1_data_114.unk_04 * 2; + var_f26 *= lbl_1_data_114.unk_04 * 2; + lbl_1_data_114.unk_00 = !lbl_1_data_114.unk_00; + if (lbl_1_data_114.unk_04 > 0x18) { + var_r24 = 0x17; + } + else { + if ((lbl_1_data_114.unk_04 - 1) > 0) { + var_r23 = lbl_1_data_114.unk_04 - 1; + } + else { + var_r23 = 0; + } + var_r24 = var_r23; + } + lbl_1_data_114.unk_04 = var_r24; + Center.x = 0.0f; + Center.y = 100.0f + var_f26; + } +} + +const HsfanimStruct00 lbl_1_rodata_2A0 = { + 0x0096, + { 0x00, 0x00 }, + 50.0f, + 0.0f, + 65.0f, + { 0.0f, -0.195f, 0.0f }, + 100.0f, + 0.99f, + 40.0f, + 0.999f, + 4, + { + { 0xFF, 0xFF, 0x20, 0xFF }, + { 0xFF, 0xFF, 0x00, 0xFF }, + { 0xFF, 0xFF, 0x80, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF }, + }, + { + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + }, +}; + +s16 fn_1_4BE8(void) +{ + s16 var_r31; + s16 var_r30; + AnimData *var_r29; + void *var_r28; + + HsfanimStruct00 sp8 = lbl_1_rodata_2A0; + lbl_1_bss_3C = sp8; + var_r28 = HuDataSelHeapReadNum(0x7006B, MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r29 = HuSprAnimRead(var_r28); + var_r31 = Hu3DParManCreate(var_r29, 0x64, &lbl_1_bss_3C); + Hu3DParManAttrSet(var_r31, 0x108); + Hu3DParManRotSet(var_r31, 0.0f, 0.0f, 0.0f); + Hu3DParManVecSet(var_r31, 0.0f, 0.4f, 0.2f); + var_r30 = Hu3DParManModelIDGet(var_r31); + Hu3DModelLayerSet(var_r30, 2); + Hu3DParticleBlendModeSet(var_r30, 0); + return var_r31; +} + +void fn_1_4D44(void) +{ + M458DllWork *spC[2]; + s16 sp8; + s16 var_r31; + s32 var_r30; + WindowData *var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + + sp8 = 0; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + spC[var_r30] = (&lbl_1_bss_BC)[var_r30]->data; + } + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 0x3C); + HuWinComKeyReset(); + var_r31 = HuWinExCreateStyled(36.0f, 344.0f, 0x1F8, 0x60, 6, 0); + var_r29 = &winData[var_r31]; + if (spC[1]->unk_0C != -1) { + var_r28 = 1 << spC[1]->unk_0C; + } + else { + if (spC[1]->unk_08 != -1) { + var_r27 = 1 << GWPlayerCfg[spC[1]->unk_04].pad_idx; + } + else { + var_r27 = 0; + } + var_r28 = var_r27; + } + if (spC[0]->unk_0C != -1) { + var_r26 = 1 << spC[0]->unk_0C; + } + else { + if (spC[0]->unk_08 != -1) { + var_r25 = 1 << GWPlayerCfg[spC[0]->unk_04].pad_idx; + } + else { + var_r25 = 0; + } + var_r26 = var_r25; + } + var_r29->active_pad = var_r26 | var_r28; + OSReport("%d\n", var_r29->active_pad); + HuWinBGTPLvlSet(var_r31, 0.8f); + HuWinMesSpeedSet(var_r31, 1); + HuWinExAnimIn(var_r31); + HuWinMesSet(var_r31, 0x300024); + if (((spC[0]->unk_0C == -1) || (spC[0]->unk_08 == -1)) && ((spC[1]->unk_0C == -1) || (spC[1]->unk_08 == -1))) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 0x3C); + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 0x3C); + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 0x3C); + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 0x3C); + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 0x3C); + } + HuWinMesWait(var_r31); + HuWinExAnimOut(var_r31); + HuWinExCleanup(var_r31); + lbl_1_bss_10 = 0; + HuPrcEnd(); +} + +void fn_1_5014(omObjData *var_r30) +{ + M458DllWork *spC[2]; + s32 sp8; + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x1C; var_r31++) { + s32 sp14[] = { + 0x7F1, + 0x7F2, + 0x7F7, + 0x7F8, + 0x7F9, + 0x7FA, + 0x7FB, + 0x7FC, + 0x7FD, + 0x7FE, + 0x7FF, + 0x800, + 0x801, + 0x802, + 0x803, + 0x804, + 0x7FB, + 0x7FC, + 0x7FD, + 0x7FE, + 0x7FF, + 0x800, + 0x801, + 0x802, + 0x803, + 0x804, + 0x7FB, + 0x7FC, + }; + if (lbl_1_bss_CC[var_r31].unk_00 > 3) { + lbl_1_bss_CC[var_r31].unk_00 = 3; + } + if (lbl_1_bss_CC[var_r31].unk_00 > 0) { + sp8 = HuAudFXPlay(sp14[var_r31]); + lbl_1_bss_CC[var_r31].unk_00--; + } + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + spC[var_r31] = (&lbl_1_bss_BC)[var_r31]->data; + } + if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + var_r30->func = fn_1_6D9C; + } + switch (lbl_1_bss_B0) { + case 0x3E8: + if (WipeStatGet() == 0) { + lbl_1_bss_B0++; + lbl_1_bss_B4 = 0.0f; + if (lbl_1_data_138[0] != -1) { + Hu3DParManKill(*lbl_1_data_138); + lbl_1_data_138[0] = -1; + } + } + default: + break; + case 0x3E9: + lbl_1_bss_B4++; + if (lbl_1_bss_B4 == ((lbl_1_bss_14 == 0 ? 0x1E : 0) + 0x3C)) { + lbl_1_bss_B0 = lbl_1_bss_14 != 0 ? 0x3EA : 0x3ED; + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3EA: + lbl_1_bss_B4++; + if (lbl_1_bss_B4 == 0x78) { + lbl_1_bss_B0++; + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3EB: + lbl_1_bss_B4++; + if (lbl_1_bss_B4 > 0xD2) { + lbl_1_bss_B0++; + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3EC: + if (lbl_1_bss_B4 == 0) { + HuPrcChildCreate(fn_1_4D44, 0x64, 0x2000, 0, HuPrcCurrentGet()); + lbl_1_bss_10 = 1; + lbl_1_bss_B4++; + break; + } + if (lbl_1_bss_10 == 0) { + lbl_1_bss_B4++; + if (spC[0]->unk_18 == 0) { + lbl_1_bss_B0++; + lbl_1_bss_B4 = 0.0f; + } + } + break; + case 0x3ED: + lbl_1_bss_B4 += lbl_1_bss_B4 < 0x1E; + if (lbl_1_bss_B4 >= 0x3C) { + lbl_1_bss_B0++; + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3EE: + lbl_1_bss_B4++; + if (lbl_1_bss_B4 == ((spC[1]->unk_08 == -1 ? 0x78 : 0x3C) + (lbl_1_bss_14 == 0 ? 0x1E : 0))) { + lbl_1_bss_B0++; + if (spC[1]->unk_08 == -1) { + lbl_1_bss_B0++; + } + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3EF: + lbl_1_bss_B4 += lbl_1_bss_B4 < 0x1E; + if (lbl_1_bss_B4 >= 0x3C) { + lbl_1_bss_B0++; + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3F0: + lbl_1_bss_B4++; + if (lbl_1_bss_B4 == 0x5A) { + lbl_1_bss_B0++; + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3F1: + case 0x3F2: + if (lbl_1_bss_B4 == 0) { + spC[lbl_1_bss_B0 == 0x3F1 ? 0 : 1]->unk_18 = 3; + spC[lbl_1_bss_B0 == 0x3F1 ? 0 : 1]->unk_1C = 0; + } + lbl_1_bss_B4++; + if (spC[lbl_1_bss_B0 == 0x3F1 ? 0 : 1]->unk_18 == 0) { + if (lbl_1_bss_98 != -1) { + lbl_1_bss_B0 = 0x3F3; + } + else { + lbl_1_bss_B0 = lbl_1_bss_B0 == 0x3F1 ? 0x3F2 : 0x3F1; + } + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3F3: + lbl_1_bss_B4++; + if (lbl_1_bss_B4 >= 0x1E0) { + lbl_1_bss_B0++; + lbl_1_bss_B4 = 0.0f; + } + break; + case 0x3F4: + lbl_1_bss_B4++; + if (lbl_1_bss_B4 == 1) { + if (lbl_1_bss_98 != 4) { + if (spC[lbl_1_bss_98]->unk_08 != -1) { + HuAudSStreamPlay(1); + } + else { + HuAudSStreamPlay(3); + } + if (lbl_1_bss_14 != 0) { + if (lbl_1_bss_98 == 0) { + _SetFlag(0x10007); + } + } + else { + GWPlayerCoinWinSet(spC[lbl_1_bss_98]->unk_04, 10); + } + } + else { + lbl_1_bss_98 == 4; + } + } + if (210.0f < lbl_1_bss_B4) { + if (lbl_1_data_134 != -1) { + HuAudFXStop(lbl_1_data_134); + lbl_1_data_134 = -1; + } + lbl_1_data_12C = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); + var_r30->func = fn_1_6D9C; + } + break; + } +} + +s32 lbl_1_data_1E8[0xB] = { + 0x570013, + 0x570014, + 0x570015, + 0x570016, + 0x570017, + 0x570018, + 0x570019, + 0x57001A, + 0x57001B, + 0x57001C, + 0x57001D, +}; + +void fn_1_59DC(omObjData *object) +{ + M458DllWork *sp18[2]; + + s32 var_r30; + s16 var_r29; + s16 var_r28; + s32 var_r27; + void *var_r26; + AnimData *var_r25; + s16 var_r24; + s16 var_r23; + + for (var_r30 = 0; var_r30 < 2; var_r30++) { + sp18[var_r30] = (&lbl_1_bss_BC)[var_r30]->data; + } + object->model[1] = Hu3DModelCreateFile(0x3000E); + Hu3DModelAttrSet(object->model[1], HU3D_MOTATTR_LOOP); + object->model[2] = Hu3DModelCreateFile(0x30000); + Hu3DModelAttrSet(object->model[2], HU3D_MOTATTR_LOOP); + Hu3DModelHookSet(object->model[2], "minik01", object->model[1]); + Hu3DModelPosSet(object->model[2], 0.0f, -750.0f, -700.0f); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + object->motion[0] = Hu3DJointMotionFile(object->model[1], 0x3000F); + object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x30012); + Hu3DMotionSet(object->model[1], object->motion[0]); + Hu3DModelLayerSet(object->model[2], 1); + Hu3DModelLayerSet(object->model[1], 1); + object->model[0] = Hu3DModelCreateFile(0x570008); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(object->model[0], 0.1f); + object->model[3] = Hu3DModelCreateFile(0x570009); + Hu3DModelAttrSet(object->model[3], HU3D_MOTATTR_LOOP); + Hu3DModelPosSet(object->model[3], 0.0f, 400.0f, 0.0f); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(object->model[3], 1); + Hu3DMotionSpeedSet(object->model[3], 0.0f); + for (var_r30 = 0; var_r30 < 9; var_r30++) { + object->model[var_r30 + 4] = Hu3DModelCreateFile(var_r30 + 0x57000A); + lbl_1_bss_28C[var_r30].unk_00 = var_r30 % 3; + lbl_1_bss_28C[var_r30].unk_04 = var_r30 / 3; + lbl_1_bss_28C[var_r30].unk_08 = 0.0f; + lbl_1_bss_28C[var_r30].unk_0C = 1; + Hu3DModelPosSet( + lbl_1_bss_B8->model[var_r30 + 4], 500.0 * (lbl_1_bss_28C[var_r30].unk_00 - 1), -16.666666f, 500.0 * (lbl_1_bss_28C[var_r30].unk_04 - 1)); + Hu3DModelScaleSet(lbl_1_bss_B8->model[var_r30 + 4], 1.6666666f, 1.6666666f, 1.6666666f); + Hu3DModelAttrSet(object->model[var_r30 + 4], HU3D_MOTATTR_PAUSE); + Hu3DModelShadowMapSet(object->model[var_r30 + 4]); + Hu3DModelLayerSet(object->model[var_r30 + 4], 1); + } + for (var_r30 = 0; var_r30 < 0xB; var_r30++) { + if ((var_r30 == 9) || (var_r30 == 0xA)) { + if (sp18[var_r30 - 9]->unk_08 != -1) { + var_r27 = sp18[var_r30 - 9]->unk_08 + 0x57001C; + } + else { + var_r27 = 0x570024; + } + lbl_1_data_1E8[var_r30] = var_r27; + } + object->model[var_r30 + 0xD] = Hu3DModelCreateFile(lbl_1_data_1E8[var_r30]); + Hu3DMotionTimeSet(object->model[var_r30 + 0xD], 10.0f); + Hu3DMotionSpeedSet(object->model[var_r30 + 0xD], 0.0f); + Hu3DModelAttrSet(object->model[var_r30 + 0xD], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(object->model[var_r30 + 0xD], 1); + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + s32 sp10[2] = { 0x120, 0x122 }; + s32 sp8[2] = { 0xF0, 0x8C }; + lbl_1_data_8[var_r30] = espEntry(lbl_1_data_0[var_r30], 0, 0); + espDrawNoSet(lbl_1_data_8[var_r30], 0); + espAttrSet(lbl_1_data_8[var_r30], HUSPR_ATTR_NOANIM | HUSPR_ATTR_DISPOFF); + espBankSet(lbl_1_data_8[var_r30], 0); + espPriSet(lbl_1_data_8[var_r30], 0x80 - var_r30); + espPosSet(lbl_1_data_8[var_r30], sp10[var_r30], sp8[var_r30]); + espTPLvlSet(lbl_1_data_8[var_r30], 1.0f); + } + { + HsfanimStruct00 sp20 = lbl_1_rodata_2A0; + lbl_1_bss_3C = sp20; + } + var_r26 = HuDataSelHeapReadNum(0x7006B, MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r25 = HuSprAnimRead(var_r26); + var_r29 = Hu3DParManCreate(var_r25, 0x64, &lbl_1_bss_3C); + Hu3DParManAttrSet(var_r29, 0x108); + Hu3DParManRotSet(var_r29, 0.0f, 0.0f, 0.0f); + Hu3DParManVecSet(var_r29, 0.0f, 0.4f, 0.2f); + var_r28 = Hu3DParManModelIDGet(var_r29); + Hu3DModelLayerSet(var_r28, 2); + Hu3DParticleBlendModeSet(var_r28, 0); + var_r24 = var_r29; + var_r23 = var_r24; + lbl_1_data_138[0] = var_r23; + Hu3DParManPosSet(lbl_1_data_138[0], 10000.0f, -10000.0f, 10000.0f); + object->func = fn_1_350C; +} + +void fn_1_6314(omObjData *object) +{ + s32 sp10; + void *spC; + s32 sp8; + M458DllWork *var_r31; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + s32 var_r18; + s32 var_r17; + + var_r31 = object->data; + spC = (&lbl_1_bss_BC)[1 - object->work[0]]->data; + memset(var_r31, 0, 0x44); + var_r31->unk_00 = object->work[0]; + // probably ternary, but it causes regswaps + if (GWPlayerCfg->group == var_r31->unk_00) { + var_r28 = 0; + } + else { + if (GWPlayerCfg[1].group == var_r31->unk_00) { + var_r27 = 1; + } + else { + if (GWPlayerCfg[2].group == var_r31->unk_00) { + var_r26 = 2; + } + else { + if (GWPlayerCfg[3].group == var_r31->unk_00) { + var_r25 = 3; + } + else { + var_r25 = 4; + } + var_r26 = var_r25; + } + var_r27 = var_r26; + } + var_r28 = var_r27; + } + var_r31->unk_04 = var_r28; + if (GWPlayerCfg->group == (1 - var_r31->unk_00)) { + var_r24 = 0; + } + else { + if (GWPlayerCfg[1].group == (1 - var_r31->unk_00)) { + var_r23 = 1; + } + else { + if (GWPlayerCfg[2].group == (1 - var_r31->unk_00)) { + var_r22 = 2; + } + else { + if (GWPlayerCfg[3].group == (1 - var_r31->unk_00)) { + var_r21 = 3; + } + else { + var_r21 = 4; + } + var_r22 = var_r21; + } + var_r23 = var_r22; + } + var_r24 = var_r23; + } + sp10 = var_r24; + if (var_r31->unk_04 == 4) { + OSReport("m458:wrong player group\n"); + var_r31->unk_04 = var_r31->unk_00; + } + if ((var_r31->unk_00 == 1) && (lbl_1_bss_14 != 0)) { + var_r31->unk_08 = -1; + var_r31->unk_0C = -1; + var_r31->unk_04 = -1; + var_r31->unk_10 = 0; + } + else { + var_r31->unk_08 = GWPlayerCfg[var_r31->unk_04].character; + var_r20 = 1; + if ((var_r31->unk_08 != -1) && (GWPlayerCfg[var_r31->unk_04].iscom == 0)) { + var_r20 = 0; + } + var_r31->unk_0C = var_r20 != 0 ? -1 : GWPlayerCfg[var_r31->unk_04].pad_idx; + var_r31->unk_10 = var_r31->unk_0C != -1 ? 0 : GWPlayerCfg[var_r31->unk_04].diff; + } + var_r31->unk_18 = 0; + var_r31->unk_20 = 3; + var_r31->unk_24 = -1; + if (var_r31->unk_08 != -1) { + object->model[0] = CharModelCreate(var_r31->unk_08, 1); + } + else { + object->model[0] = Hu3DModelCreateFile(0x30007); + } + omSetTra(object, 0.0f, var_r31->unk_00 == 0 ? 0 : 0x12C, 0.0f); + if (var_r31->unk_08 != -1) { + omSetSca(object, 2.5f, 2.5f, 2.5f); + } + else { + omSetSca(object, 2.0f, 2.0f, 2.0f); + } + for (var_r29 = 0; var_r29 < 0xA; var_r29++) { + if (var_r31->unk_08 != -1) { + object->motion[var_r29] + = CharModelMotionCreate(var_r31->unk_08, lbl_1_data_10[var_r29] + (lbl_1_data_38[var_r29] != 0 ? var_r31->unk_08 : 0)); + } + else if (lbl_1_data_60[var_r29] != 0) { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], lbl_1_data_60[var_r29]); + } + } + Hu3DMotionSet(object->model[0], object->motion[var_r31->unk_20]); + Hu3DMotionTimeSet(object->model[0], 10.0f); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(object->model[0]); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(object->model[0], 1); + CharModelLayerSetAll2(1); + object->func = fn_1_4C8; +} + +void fn_1_685C(omObjData *object) +{ + lbl_1_bss_B0 = 0x3E8; + lbl_1_bss_B4 = 0.0f; + lbl_1_bss_A8 = 0; + lbl_1_bss_A4 = 0; + if (lbl_1_data_130 == -1) { + lbl_1_data_130 = HuAudSeqPlay(0x4D); + } + lbl_1_data_134 = HuAudFXPlay(0x6D7); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_5014; +} + +void ObjectSetup(void) +{ + s32 i; + omObjData *object; + + OSReport("******* M458 ObjectSetup *********\n"); + lbl_1_bss_A0 = omInitObjMan(0x258, 0x2000); + omGameSysInit(lbl_1_bss_A0); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 25000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + CZoom = 3200.0f; + Center.x = 0.0f; + Center.y = 0.0f; + Center.z = -100.0f; + CRot.x = -30.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + { + Vec sp3C = { 0.0f, 0.0f, 0.0f }; + Vec sp30 = { 0.25f, -0.75f, -0.45f }; + GXColor sp8 = { 255, 255, 255, 255 }; + lbl_1_bss_9C = Hu3DGLightCreateV(&sp3C, &sp30, &sp8); + Hu3DGLightStaticSet(lbl_1_bss_9C, 1); + Hu3DGLightInfinitytSet(lbl_1_bss_9C); + } + { + Vec sp24; + Vec sp18; + Vec spC; + + sp24.x = 0.0f; + sp24.y = 10000.0f; + sp24.z = 0.0f; + sp18.x = 0.0f; + sp18.y = 1.0f; + sp18.z = 0.0f; + spC.x = 0.0f; + spC.y = 0.0f; + spC.z = 0.5f; + Hu3DShadowCreate(12.0f, 9000.0f, 10010.0f); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&sp24, &sp18, &spC); + } + Hu3DShadowSizeSet(0xE0); + lbl_1_data_12C = -1; + lbl_1_bss_98 = -1; + lbl_1_bss_14 = _CheckFlag(0x10000) != 0; + HuWinInit(1); + lbl_1_bss_B8 = omAddObjEx(lbl_1_bss_A0, 0x65, 0x18, 2, 1, fn_1_59DC); + for (i = 0; i < 2; i++) { + object = (&lbl_1_bss_BC)[i] = omAddObjEx(lbl_1_bss_A0, 0x64, 0xB, 0xA, 0, fn_1_6314); + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M458DllWork), MEMORY_DEFAULT_NUM); + object->work[0] = i; + } + lbl_1_bss_C4 = omAddObjEx(lbl_1_bss_A0, 0x7FDA, 0, 0, -1, omOutView); + lbl_1_bss_C8 = omAddObjEx(lbl_1_bss_A0, 0x67, 0, 0, -1, fn_1_685C); +} + +void fn_1_6D9C(omObjData *object) +{ + if (lbl_1_data_138[0] != -1) { + Hu3DParManKill(lbl_1_data_138[0]); + lbl_1_data_138[0] = -1; + } + if (WipeStatGet() == 0) { + s32 i; + for (i = 0; i < 2; i++) { + void *sp8 = (&lbl_1_bss_BC)[i]->data; + } + if (lbl_1_data_12C >= 0) { + MGSeqKill(lbl_1_data_12C); + } + MGSeqKillAll(); + HuAudAllStop(); + omOvlReturnEx(1, 1); + } +} From 9a079616c9da5ec10c49be390436454502c1fcf7 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Thu, 2 Jan 2025 22:16:47 +0100 Subject: [PATCH 226/311] Matched m449Dll --- config/GMPE01_00/rels/m449Dll/symbols.txt | 319 ++-- include/ext_math.h | 1 + include/math.h | 94 +- src/REL/m449Dll/main.c | 2034 +++++++++++++++++++++ 4 files changed, 2272 insertions(+), 176 deletions(-) create mode 100644 src/REL/m449Dll/main.c diff --git a/config/GMPE01_00/rels/m449Dll/symbols.txt b/config/GMPE01_00/rels/m449Dll/symbols.txt index 2a91efc3..07d61d06 100644 --- a/config/GMPE01_00/rels/m449Dll/symbols.txt +++ b/config/GMPE01_00/rels/m449Dll/symbols.txt @@ -18,183 +18,187 @@ ObjectSetup = .text:0x000095D8; // type:function size:0x460 fn_1_9A38 = .text:0x00009A38; // type:function size:0x9C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x10 -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC0 -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0xC0 -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC0 -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x20 data:4byte -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:double -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x60 -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 data:double -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x18 data:4byte -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float -lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x30 data:4byte -lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 data:double -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float -lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 data:double -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x20 data:4byte -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x8 data:4byte -lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x48 -lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x48 -lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float -lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float -lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 data:float -lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 data:float -lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 data:float -lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 data:float -lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0xC data:4byte -lbl_1_rodata_6FC = .rodata:0x000006FC; // type:object size:0xC data:4byte -lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x1 data:byte -lbl_1_rodata_70C = .rodata:0x0000070C; // type:object size:0x4 data:float -lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x4 data:float -lbl_1_rodata_714 = .rodata:0x00000714; // type:object size:0x4 data:float -lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 data:float -lbl_1_rodata_71C = .rodata:0x0000071C; // type:object size:0x4 data:float -lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x4 data:float -lbl_1_rodata_724 = .rodata:0x00000724; // type:object size:0x4 data:float -lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float -lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float -lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float -lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x10 scope:local +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC0 scope:local +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0xC0 scope:local +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0xC0 scope:local +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 scope:local data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 scope:local data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 scope:local data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 scope:local data:double +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 scope:local data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 scope:local data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 scope:local data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 scope:local data:double +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 scope:local data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x60 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x8 scope:local data:double +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 scope:local data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 scope:local data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 scope:local data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x8 scope:local data:double +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x48 scope:local +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x48 scope:local +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_6FC = .rodata:0x000006FC; // type:object size:0xC scope:local data:float +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_70C = .rodata:0x0000070C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x4 scope:local data:float +lbl_1_rodata_714 = .rodata:0x00000714; // type:object size:0x4 scope:local data:float +lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 scope:local data:float +lbl_1_rodata_71C = .rodata:0x0000071C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x4 scope:local data:float +lbl_1_rodata_724 = .rodata:0x00000724; // type:object size:0x4 scope:local data:float +lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 scope:local data:float +lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 scope:local data:float +lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x48 lbl_1_data_48 = .data:0x00000048; // type:object size:0x48 lbl_1_data_90 = .data:0x00000090; // type:object size:0x10 lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x10 -lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x38 -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x50 -lbl_1_data_138 = .data:0x00000138; // type:object size:0x50 -lbl_1_data_188 = .data:0x00000188; // type:object size:0x50 -lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x50 +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x38 data:byte +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x50 data:string +lbl_1_data_138 = .data:0x00000138; // type:object size:0x50 data:string +lbl_1_data_188 = .data:0x00000188; // type:object size:0x50 data:string +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x50 data:string lbl_1_data_228 = .data:0x00000228; // type:object size:0x2 data:2byte lbl_1_data_22A = .data:0x0000022A; // type:object size:0x2 data:2byte lbl_1_data_22C = .data:0x0000022C; // type:object size:0x4 data:4byte lbl_1_data_230 = .data:0x00000230; // type:object size:0xC data:4byte lbl_1_data_23C = .data:0x0000023C; // type:object size:0x28 data:4byte -lbl_1_data_264 = .data:0x00000264; // type:object size:0x20 +lbl_1_data_264 = .data:0x00000264; // type:object size:0x20 scope:local data:string lbl_1_data_284 = .data:0x00000284; // type:object size:0x4 data:4byte lbl_1_data_288 = .data:0x00000288; // type:object size:0x4 data:float lbl_1_data_28C = .data:0x0000028C; // type:object size:0x4 data:float lbl_1_data_290 = .data:0x00000290; // type:object size:0x4 data:float lbl_1_data_294 = .data:0x00000294; // type:object size:0x4 data:float jumptable_1_data_298 = .data:0x00000298; // type:object size:0x1C scope:local -lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x19 data:string -lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x24 data:string -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x19 scope:local data:string +lbl_1_data_2CD = .data:0x000002CD; // type:object size:0x24 scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:float lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x8 data:float +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte @@ -204,7 +208,8 @@ lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x90 data:4byte diff --git a/include/ext_math.h b/include/ext_math.h index e9a608a6..7ff5edbf 100644 --- a/include/ext_math.h +++ b/include/ext_math.h @@ -29,6 +29,7 @@ typedef struct vec2f { #define sind(x) sin(M_PI*(x)/180.0) #define cosd(x) cos(M_PI*(x)/180.0) +#define asind(x) (180.0*(asinf((x)) / M_PI)) #define atan2d(y, x) (180.0*(atan2((y), (x)) / M_PI)) #endif diff --git a/include/math.h b/include/math.h index 389629df..5ac49892 100644 --- a/include/math.h +++ b/include/math.h @@ -7,24 +7,50 @@ #define _MATH_INLINE static inline #endif +extern int __float_nan[]; +extern int __float_huge[]; +extern int __double_huge[]; + +#define INFINITY (*(float *)__float_huge) +#define NAN (*(float *)__float_nan) +#define HUGE_VAL (*(double *)__double_huge) + #ifdef __MWERKS__ +extern inline double sqrt(double x) +{ + if (x > 0.0) { + double guess = __frsqrte(x); /* returns an approximation to */ + guess = .5 * guess * (3.0 - guess * guess * x); /* now have 8 sig bits */ + guess = .5 * guess * (3.0 - guess * guess * x); /* now have 16 sig bits */ + guess = .5 * guess * (3.0 - guess * guess * x); /* now have 32 sig bits */ + guess = .5 * guess * (3.0 - guess * guess * x); /* now have > 53 sig bits */ + return x * guess; + } + else if (x == 0) + return 0; + else if (x) + return NAN; + + return INFINITY; +} + extern inline float sqrtf(float x) { static const double _half = .5; static const double _three = 3.0; volatile float y; - if (x > 0.0f) - { - double guess = __frsqrte((double)x); // returns an approximation to - guess = _half*guess*(_three - guess*guess*x); // now have 12 sig bits - guess = _half*guess*(_three - guess*guess*x); // now have 24 sig bits - guess = _half*guess*(_three - guess*guess*x); // now have 32 sig bits - y = (float)(x*guess); - return y ; + if (x > 0.0f) { + double guess = __frsqrte((double)x); // returns an approximation to + guess = _half * guess * (_three - guess * guess * x); // now have 12 sig bits + guess = _half * guess * (_three - guess * guess * x); // now have 24 sig bits + guess = _half * guess * (_three - guess * guess * x); // now have 32 sig bits + y = (float)(x * guess); + return y; } return x; } #else +double sqrt(double x); float sqrtf(float x); #endif @@ -48,24 +74,54 @@ float tanf(float x); #ifdef __MWERKS__ extern inline double fabs(double x) { - return __fabs(x); + return __fabs(x); } #else double fabs(double x); #endif -_MATH_INLINE float fabsf(float x) { return (float)fabs((double)x); } -_MATH_INLINE float sinf(float x) { return (float)sin((double)x); } -_MATH_INLINE float cosf(float x) { return (float)cos((double)x); } -_MATH_INLINE float atan2f(float y, float x) { return (float)atan2((double)y, (double)x); } -_MATH_INLINE float atanf(float x) { return (float)atan((double)x); } -_MATH_INLINE float asinf(float x) { return (float)asin((double)x); } -_MATH_INLINE float acosf(float x) { return (float)acos((double)x); } +_MATH_INLINE float fabsf(float x) +{ + return (float)fabs((double)x); +} +_MATH_INLINE float sinf(float x) +{ + return (float)sin((double)x); +} +_MATH_INLINE float cosf(float x) +{ + return (float)cos((double)x); +} +_MATH_INLINE float atan2f(float y, float x) +{ + return (float)atan2((double)y, (double)x); +} +_MATH_INLINE float atanf(float x) +{ + return (float)atan((double)x); +} +_MATH_INLINE float asinf(float x) +{ + return (float)asin((double)x); +} +_MATH_INLINE float acosf(float x) +{ + return (float)acos((double)x); +} -_MATH_INLINE float fmodf(float x, float m) { return (float)fmod((double)x, (double)m); } +_MATH_INLINE float fmodf(float x, float m) +{ + return (float)fmod((double)x, (double)m); +} -_MATH_INLINE float floorf(float x) { return floor(x); } +_MATH_INLINE float floorf(float x) +{ + return floor(x); +} -_MATH_INLINE float powf(float __x, float __y) { return pow(__x, __y); } +_MATH_INLINE float powf(float __x, float __y) +{ + return pow(__x, __y); +} #endif diff --git a/src/REL/m449Dll/main.c b/src/REL/m449Dll/main.c new file mode 100644 index 00000000..17209e39 --- /dev/null +++ b/src/REL/m449Dll/main.c @@ -0,0 +1,2034 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "dolphin/pad.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#ifndef __MWERKS__ +#include "game/hsfex.h" +#endif + +s32 rand8(void); + +typedef struct UnkCameraStruct { + /* 0x00 */ float unk_00; + /* 0x04 */ float unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ float unk_10; + /* 0x14 */ float unk_14; +} UnkCameraStruct; /* size = 0x18 */ + +typedef struct M449DllUnkStruct { + /* 0x00 */ s32 unk_00[4]; + /* 0x10 */ s32 unk_10[4]; +} M449DllUnkStruct; /* size = 0x20 */ + +typedef struct M449DllWork { + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + s32 unk_14; + s32 unk_18; + s32 unk_1C; + float unk_20; + float unk_24; + float unk_28; + float unk_2C; + s32 unk_30; + s32 unk_34; + s32 unk_38; + float unk_3C; + float unk_40; + s32 unk_44; + s32 unk_48; + s32 unk_4C; + s32 unk_50; + s32 unk_54; + float unk_58; + float unk_5C; + float unk_60[4]; + float unk_70[4]; + float unk_80[4]; + float unk_90[4]; + float unk_A0[4]; + float unk_B0[4]; + float unk_C0[4]; + float unk_D0[4]; + float unk_E0[4]; + s32 unk_F0[4]; + s32 unk_100[4]; + s32 unk_110[4]; + s32 unk_120[4]; + s32 unk_130[4]; + s32 unk_140[4]; + s32 unk_150[4]; + float unk_160[4]; + float unk_170[4]; + s32 unk_180[4]; + s32 unk_190; + float unk_194[4]; + float unk_1A4[4]; + s32 unk_1B4[4]; + s32 unk_1C4[4]; + char unk1D4[0x30]; + s32 unk_204; + s32 unk_208; + s32 unk_20C; + s32 unk_210; + s32 unk_214; +} M449DllWork; /* size = 0x218 */ + +typedef struct UnkBss64Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ float unk_04[2]; +} UnkBss64Struct; /* size = 0x0C */ + +void fn_1_9A38(omObjData *arg0); + +s32 lbl_1_data_0[0x12] = { + 0x50001A, + 0x500019, + 0x500016, + 0x500016, + 0x500016, + 0x500017, + 0x500017, + 0x500017, + 0x610000, + 0x50001A, + 0x500019, + 0x500016, + 0x500016, + 0x500016, + 0x500017, + 0x500017, + 0x500017, + 0x610000, +}; +s32 lbl_1_data_48[0x12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +s32 lbl_1_data_90[4] = { 0x5F0000, 0x500000, 0x5F0017, 0x5F0085 }; +s32 lbl_1_data_A0[4] = { 0x50001C, 0x50001E, 0x50001D, 0x50001F }; +u8 lbl_1_data_B0[0x38] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08 + +}; +char lbl_1_data_E8[4][20] = { + "m432_00-a00", + "m432_00-b00", + "m432_00-player00", + "m432_00-player01", +}; +char lbl_1_data_138[4][20] = { + "m449_01a-a00", + "m449_01a-a1", + "m449_01a-a2", + "m449_01a-a3", +}; +char lbl_1_data_188[4][20] = { + "m449_01a-b00", + "m449_01a-b1", + "m449_01a-b2", + "m449_01a-b3", +}; +char lbl_1_data_1D8[4][20] = { + "m449_01a-c00", + "m449_01a-c1", + "m449_01a-c2", + "m449_01a-c3", +}; +s16 lbl_1_data_228 = -1; +s16 lbl_1_data_22A = -1; +s32 lbl_1_data_22C = -1; +s32 lbl_1_data_230[3] = { -1, -1, -1 }; +s32 lbl_1_data_23C[0xA] = { + 0, + 1, + 0xC2B40000, + 0, + 0x44034000, + 0x43340000, + 0x42B40000, + 0, + 0x44034000, + 0x43340000, +}; + +UnkBss64Struct lbl_1_bss_64[12]; +omObjData *lbl_1_bss_60; +omObjData *lbl_1_bss_5C; +omObjData *lbl_1_bss_58; +omObjData *lbl_1_bss_54; +omObjData *lbl_1_bss_50; +s32 lbl_1_bss_4C; +s32 lbl_1_bss_48; +s32 lbl_1_bss_44; +s32 lbl_1_bss_40; +s32 lbl_1_bss_3C; +Process *lbl_1_bss_38; +s32 lbl_1_bss_34; +s32 lbl_1_bss_30; +s32 lbl_1_bss_2C; +float lbl_1_bss_28; +float lbl_1_bss_24; +float lbl_1_bss_20; +s32 lbl_1_bss_1C; +float lbl_1_bss_18; +s32 lbl_1_bss_14; +s32 lbl_1_bss_10; +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +s32 lbl_1_bss_0; + +static const s32 lbl_1_rodata_10[4] = { 0x8C, 0x6E, 0x3C, 0 }; + +void fn_1_A0(void) +{ + if ((HuPadBtnDown[0] & PAD_BUTTON_B) != 0) { + Center.x = lbl_1_bss_54->trans.x; + Center.y = lbl_1_bss_54->trans.y; + Center.z = lbl_1_bss_54->trans.z; + } + Center.x += 10.0 * (((HuPadBtn[0] & PAD_BUTTON_RIGHT) != 0) - ((HuPadBtn[0] & PAD_BUTTON_LEFT) != 0)); + Center.z -= 10.0 * (((HuPadBtn[0] & PAD_BUTTON_UP) != 0) - ((HuPadBtn[0] & PAD_BUTTON_DOWN) != 0)); + Center.y += (30.0 * ((HuPadTrigL[0] - HuPadTrigR[0]) / 128.0)); + CZoom += 25.0 * (((HuPadBtn[0] & PAD_BUTTON_X) != 0) - ((HuPadBtn[0] & PAD_BUTTON_Y) != 0)); + CRot.y += HuPadSubStkX[0] / 16.0; + CRot.x += HuPadSubStkY[0] / -16.0; +} + +void fn_1_3F8(s32 arg0, Mtx sp8) +{ + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + + GXLoadPosMtxImm(sp8, 0); + GXSetNumTevStages(1); + GXSetNumTexGens(0); + GXSetZMode(1, GX_LEQUAL, 1); + GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + GXBegin(GX_TRIANGLEFAN, GX_VTXFMT0, 0x12); + GXPosition3f32(0.0f, 0.0f, 0.0f); + GXColor4u8(0xFF, 0xFF, 0x00, 0xFF); + for (var_r31 = 0; var_r31 < 0x11; var_r31++) { + var_f30 = (var_r30 == 0 ? 1 : -1) * (75.0 * cosd((360.0 * (var_r31 / 16.0)))); + var_f31 = 75.0 * sind((360.0 * (var_r31 / 16.0))); + GXPosition3f32(var_f31, var_r30 * 10, var_f30); + GXColor4u8(0xFF, 0xFF, 0x00, 0xFF); + } + } +} + +void fn_1_758(omObjData *var_r29) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + float var_f19; + float var_f18; + + M449DllWork *var_r31; + s32 var_r30; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + ModelData *var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + ModelData *var_r19; + s32 var_r18; + s32 var_r17; + + Vec sp3C4[3]; + Vec sp394[4]; + Mtx sp364; + Mtx sp334; + Mtx sp304; + Vec sp2D8; + Vec sp2CC; + Vec sp2C0; + Vec sp2B4; + Vec sp2A8; + void *sp238; + s32 sp234; + s32 sp230; + float sp22C; + float sp228; + float sp224; + s32 sp220; + float sp21C; + float sp218; + s32 sp214; + float sp210; + float sp20C; + float sp208; + s32 sp204; + s32 sp200; + s32 sp1FC; + float sp1F8; + s32 sp1F4; + float sp1F0; + float sp1EC; + float sp1E8; + float sp1E4; + float sp1E0; + float sp1DC; + float sp1D8; + float sp1D4; + float sp1D0; + float sp1CC; + float sp1C8; + float sp1C4; + float sp1C0; + float sp1BC; + float sp1B8; + float sp1B4; + float sp1B0; + float sp1AC; + float sp1A8; + float sp1A4; + float sp1A0; + float sp19C; + float sp198; + float sp194; + float sp190; + float sp18C; + float sp188; + float sp184; + float sp180; + float sp17C; + float sp178; + float sp174; + float sp170; + float sp16C; + float sp168; + float sp164; + s32 sp160; + float sp15C; + float sp158; + s32 sp154; + float sp150; + float sp14C; + float sp148; + float sp144; + float sp140; + float sp13C; + float sp138; + float sp134; + float sp130; + float sp12C; + float sp128; + float sp124; + + { + s32 sp568[4][4][3] = { + { + { 2, 5, 5 }, + { 2, 7, 11 }, + { 0, 4, 7 }, + { 0, 7, 8 }, + }, + { + { 1, 6, 3 }, + { 1, 1, 2 }, + { 8, 2, 3 }, + { 8, 12, 16 }, + }, + { + { 3, 5, 5 }, + { 1, 6, 13 }, + { 1, 3, 4 }, + { 3, 8, 12 }, + }, + { + { 2, 3, 4 }, + { 1, 2, 3 }, + { 0, 1, 3 }, + { 2, 3, 3 }, + }, + }; + s32 sp4A8[4][4][3] = { + { + { 0, 44, 23 }, + { 32, -64, -29 }, + { 0, 52, -60 }, + { 0, -51, 56 }, + }, + { + { -29, 28, -52 }, + { 32, 31, -22 }, + { 0, 20, -49 }, + { 0, 0, 0 }, + }, + { + { 56, 59, -37 }, + { -36, 33, 47 }, + { 27, 39, 28 }, + { 55, -31, 0 }, + }, + { + { -52, -61, 31 }, + { 42, -55, 30 }, + { 0, 22, -24 }, + { -48, 25, 61 }, + }, + }; + + s32 sp3E8[4][4][3] = { + { + { 0, -44, 23 }, + { -32, 64, 29 }, + { 0, -52, -60 }, + { 0, -51, -56 }, + }, + { + { -29, 28, 52 }, + { 32, -31, -22 }, + { 0, 20, 49 }, + { 0, 0, 0 }, + }, + { + { -56, 59, -37 }, + { 36, 33, -47 }, + { -27, 39, -28 }, + { -55, -31, 0 }, + }, + { + { 52, -61, -31 }, + { -42, 55, -30 }, + { 0, -22, -24 }, + { 48, 25, -61 }, + }, + }; + var_r31 = var_r29->data; + sp238 = (&lbl_1_bss_54)[1 - var_r29->work[0]]->data; + var_f29 = 0.0f; + var_f28 = 0.0f; + Hu3DModelObjPosGet(lbl_1_bss_50->model[1], lbl_1_data_E8[var_r31->unk_00], &sp2D8); + for (var_r30 = 0; var_r30 < (lbl_1_data_230[var_r31->unk_190] == 2 ? 2 : 3); var_r30++) { + Hu3DModelObjPosGet(var_r29->model[var_r31->unk_190 + 4], lbl_1_data_188[var_r30], &sp3C4[var_r30]); + sp3C4[var_r30].x -= sp2D8.x; + sp3C4[var_r30].y -= sp2D8.y; + sp3C4[var_r30].z -= sp2D8.z; + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + Hu3DModelObjPosGet(var_r29->model[var_r31->unk_190 + 4], lbl_1_data_1D8[var_r30], &sp394[var_r30]); + sp394[var_r30].x -= sp2D8.x; + sp394[var_r30].y -= sp2D8.y; + sp394[var_r30].z -= sp2D8.z; + } + switch (var_r31->unk_4C) { + case 0: + if (lbl_1_bss_48 == 0x3EC) { + var_r31->unk_4C = 1; + var_r31->unk_14 = var_r31->unk_204 % 4; + var_r31->unk_14 = var_r31->unk_1C = var_r31->unk_30 = var_r31->unk_34 = var_r31->unk_38 = 0; + var_r31->unk_18 = -1; + var_r31->unk_3C = var_r31->unk_40 = var_r31->unk_44 = var_r31->unk_48 = 0; + var_r31->unk_208 = var_r31->unk_0C == -1 ? 1 : 0; + if (var_r31->unk_0C == -1) { + var_r17 = lbl_1_data_23C[var_r31->unk_00]; + var_r31->unk_204 = sp568[lbl_1_data_230[var_r31->unk_190]][var_r31->unk_10][var_r17]; + var_r31->unk_20C = sp4A8[lbl_1_data_230[var_r31->unk_190]][var_r31->unk_10][var_r17]; + var_r31->unk_210 = sp3E8[lbl_1_data_230[var_r31->unk_190]][var_r31->unk_10][var_r17]; + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r31->unk_90[var_r30] = var_r31->unk_A0[var_r30] = var_r31->unk_B0[var_r30] = var_r31->unk_D0[var_r30] + = var_r31->unk_E0[var_r30] = 0.0f; + var_r31->unk_F0[var_r30] = var_r31->unk_100[var_r30] = var_r31->unk_110[var_r30] = var_r31->unk_120[var_r30] + = var_r31->unk_130[var_r30] = var_r31->unk_140[var_r30] = 0; + var_r31->unk_160[var_r30] = var_r31->unk_170[var_r30] = var_r31->unk_150[var_r30] = 0; + } + } + break; + case 1: + if (lbl_1_bss_30 != -1) { + var_r31->unk_4C = 3; + if ((lbl_1_bss_30 == var_r31->unk_00) && (var_r31->unk_F0[0] != 0) && (var_r31->unk_F0[1] != 0) && (var_r31->unk_F0[2] != 0) + && (var_r31->unk_F0[3] != 0)) { + var_r31->unk_54 = 0x1E; + HuAudFXPlay(9); + } + } + else if ((var_r31->unk_190 < 2) && (var_r31->unk_F0[0] != 0) && (var_r31->unk_F0[1] != 0) && (var_r31->unk_F0[2] != 0) + && (var_r31->unk_F0[3] != 0)) { + if (lbl_1_bss_64[3].unk_00 < 2) { + lbl_1_bss_64[3].unk_04[lbl_1_bss_64[3].unk_00] = 0.0f; + lbl_1_bss_64[3].unk_00++; + } + var_r31->unk_4C = 2; + var_r31->unk_50 = 0; + Hu3DMotionSpeedSet(var_r29->model[var_r31->unk_190 + 1], -1.0f); + var_r31->unk_14 = var_r31->unk_1C = var_r31->unk_30 = var_r31->unk_34 = var_r31->unk_38 = 0; + var_r31->unk_18 = -1; + var_r31->unk_3C = var_r31->unk_40 = var_r31->unk_44 = var_r31->unk_48 = 0; + var_r31->unk_208 = var_r31->unk_0C == -1 ? 1 : 0; + if (var_r31->unk_0C == -1) { + sp234 = (var_r31->unk_190 + lbl_1_data_23C[var_r31->unk_00] + 1) % 3; + var_r31->unk_204 = sp568[lbl_1_data_230[var_r31->unk_190 + 1]][var_r31->unk_10][sp234]; + var_r31->unk_20C = sp4A8[lbl_1_data_230[var_r31->unk_190 + 1]][var_r31->unk_10][sp234]; + var_r31->unk_210 = sp3E8[lbl_1_data_230[var_r31->unk_190 + 1]][var_r31->unk_10][sp234]; + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r31->unk_90[var_r30] = var_r31->unk_A0[var_r30] = var_r31->unk_B0[var_r30] = var_r31->unk_D0[var_r30] + = var_r31->unk_E0[var_r30] = 0.0f; + var_r31->unk_F0[var_r30] = var_r31->unk_100[var_r30] = var_r31->unk_110[var_r30] = var_r31->unk_120[var_r30] + = var_r31->unk_130[var_r30] = var_r31->unk_140[var_r30] = 0; + var_r31->unk_160[var_r30] = var_r31->unk_170[var_r30] = var_r31->unk_150[var_r30] = 0; + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + sp230 = -1; + sp22C = 10000.0f; + Hu3DModelObjPosGet(var_r29->model[4], lbl_1_data_138[var_r30], &sp2CC); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + sp228 = sp2CC.x - var_r31->unk_60[var_r28]; + sp224 = sp2CC.z - var_r31->unk_80[var_r28]; + if ((var_r31->unk_F0[var_r28] == 0) && (sqrtf((sp228 * sp228) + (sp224 * sp224)) < sp22C)) { + sp230 = var_r28; + sp22C = sqrtf((sp228 * sp228) + (sp224 * sp224)); + } + } + var_r31->unk_1B4[sp230] = var_r30; + var_r31->unk_F0[sp230] = 1; + var_r31->unk_194[var_r30] = var_r31->unk_60[var_r30]; + var_r31->unk_1A4[var_r30] = var_r31->unk_80[var_r30]; + } + var_r31->unk_F0[0] = var_r31->unk_F0[1] = var_r31->unk_F0[2] = var_r31->unk_F0[3] = 0; + for (var_r30 = 0; var_r30 < 4; var_r30++) { + sp220 = var_r30 + 7; + var_r19 = &Hu3DData[var_r29->model[var_r30 + 0xC]]; + Hu3DModelPosSet(var_r29->model[sp220], var_r19->pos.x, 0.0f, var_r19->pos.z); + Hu3DModelAttrReset(var_r29->model[sp220], HU3D_ATTR_DISPOFF); + Hu3DParticleCntSet(var_r29->model[sp220], 0); + } + if (lbl_1_bss_30 == -1) { + var_r31->unk_54 = 0x1E; + HuAudFXPlay(9); + } + } + break; + case 2: + var_r31->unk_50++; + if (var_r31->unk_50 == 0xA) { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + Hu3DModelAttrSet(var_r29->model[var_r30 + 0xC], HU3D_ATTR_DISPOFF); + } + } + if (var_r31->unk_50 <= 0x3C) { + sp21C = var_r31->unk_50 / 60.0; + for (var_r30 = 0; var_r30 < 4; var_r30++) { } + } + var_r31->unk_50 == 0x3C; + if ((var_r31->unk_50 >= 0) && (var_r31->unk_50 <= 0x3C)) { + sp218 = var_r31->unk_50 / 60.0; + var_f21 = 0.5 + (-0.5 * cosd((180.0f * sp218))); + var_f21 = sp218 < 0.75 ? 0 : 1; + for (var_r30 = 0; var_r30 < 4; var_r30++) { + Hu3DModelObjPosGet(var_r29->model[var_r31->unk_190 + 5], lbl_1_data_138[var_r30], &sp2C0); + var_r31->unk_60[var_r30] = (var_f21 * (sp2C0.x - sp2D8.x)) + (var_r31->unk_194[var_r30] * (1.0f - var_f21)); + var_r31->unk_80[var_r30] = (var_f21 * (sp2C0.z - sp2D8.z)) + (var_r31->unk_1A4[var_r30] * (1.0f - var_f21)); + var_r31->unk_70[var_r30] = 300.0 * sind((180.0f * sp218)); + var_r31->unk_70[var_r30] = -25.0f * (1.0f - var_f21); + } + } + if (var_r31->unk_50 == 0x3C) { + Hu3DMotionSpeedSet(var_r29->model[var_r31->unk_190 + 1], 1.0f); + Hu3DModelAttrSet(var_r29->model[var_r31->unk_190 + 1], HU3D_ATTR_DISPOFF); + var_r31->unk_190++; + Hu3DModelAttrReset(var_r29->model[var_r31->unk_190 + 1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r29->model[var_r31->unk_190 + 1], HU3D_MOTATTR_LOOP); + Hu3DMotionTimeSet(var_r29->model[var_r31->unk_190 + 1], 0.0f); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + sp214 = var_r30 + 7; + var_r24 = &Hu3DData[var_r29->model[var_r30 + 0xC]]; + Hu3DModelPosSet(var_r29->model[sp214], var_r24->pos.x, var_r24->pos.y, var_r24->pos.z); + Hu3DModelAttrReset(var_r29->model[sp214], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r29->model[var_r30 + 0xC], HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(var_r29->model[var_r30 + 0xC], 0.0f, 0.0f, 0.0f); + Hu3DParticleCntSet(var_r29->model[sp214], 0); + } + } + if ((var_r31->unk_50 >= 0x3E) && (var_r31->unk_50 <= 0x78)) { + sp210 = (var_r31->unk_50 - 0x3E) / 58.0; + sp20C = sp210 < 0.25 ? (sp210 / 0.25) : 1.0; + sp20C = var_r31->unk_50 < 0x46 ? 0 : 1; + for (var_r30 = 0; var_r30 < 4; var_r30++) { + Hu3DModelScaleSet(var_r29->model[var_r30 + 0xC], sp20C, sp20C, sp20C); + } + } + if (var_r31->unk_50 == 0x78) { + var_r31->unk_4C = 1; + var_r31->unk_50 = 0; + } + break; + case 3: + break; + } + if (var_r31->unk_54 > 0) { + var_f26 = 1.0 - ((var_r31->unk_54 - 1) / 30.0); + sp204 = var_r31->unk_190 + 5 + (var_r31->unk_00 * 9); + var_f26 = (0.5 * var_f26) + (0.5 * (1.0f - ((1.0f - var_f26) * (1.0f - var_f26)))); + sp208 = var_f26 < 0.75 ? (var_f26 / 0.75) : 1.0; + var_f26 = 1.0f - ((1.0f - var_f26) * (1.0f - var_f26)); + sp208 = 1.0f - ((1.0f - sp208) * (1.0f - sp208)); + if (var_r31->unk_54 == 0x1E) { + espDispOn(lbl_1_data_48[sp204]); + espDispOff(lbl_1_data_48[var_r31->unk_190 + 2 + (var_r31->unk_00 * 9)]); + } + espTPLvlSet(lbl_1_data_48[sp204], sp208); + espScaleSet(lbl_1_data_48[sp204], 4.0f - (3.0f * var_f26), 4.0f - (3.0f * var_f26)); + var_r31->unk_54--; + } + if (var_r31->unk_4C == 1) { + if (var_r31->unk_0C != -1) { + var_f29 = HuPadStkX[var_r31->unk_0C]; + var_f28 = HuPadStkY[var_r31->unk_0C]; + var_f29 /= 40.0f; + var_f28 /= 40.0f; + } + else if (var_r31->unk_208 != 0) { + var_f29 = 3.0f * -var_r31->unk_58; + var_f28 = -3.0f * -var_r31->unk_5C; + } + else if ((var_r31->unk_0C == -1) && ((var_r31->unk_20C != 0) || (var_r31->unk_210 != 0))) { + var_f29 = var_r31->unk_20C < 0 ? -1 : (var_r31->unk_20C > 0 ? 1 : 0); + var_f28 = var_r31->unk_210 < 0 ? -1 : (var_r31->unk_210 > 0 ? 1 : 0); + var_r31->unk_20C = var_r31->unk_20C + (var_r31->unk_20C < 0 ? 1 : (var_r31->unk_20C > 0 ? -1 : 0)); + var_r31->unk_210 = var_r31->unk_210 + (var_r31->unk_210 < 0 ? 1 : (var_r31->unk_210 > 0 ? -1 : 0)); + } + else if ((var_r31->unk_F0[0] == 0) || (var_r31->unk_F0[1] == 0) || (((var_r31->unk_F0[2] == 0) != 0)) || (var_r31->unk_F0[3] == 0)) { + if (var_r31->unk_F0[var_r31->unk_14] != 0) { + var_r23 = -1; + sp1FC = var_r31->unk_F0[3] + (var_r31->unk_F0[0] + var_r31->unk_F0[1] + var_r31->unk_F0[2]); + for (sp200 = 0; sp200 <= (sp1FC == 1 ? ((var_r31->unk_204 / 4) % 3) : (sp1FC == 2 ? (((var_r31->unk_204 / 4) / 3) % 2) : 0)); + sp200++) { + for (var_r23++; var_r31->unk_F0[var_r23] != 0; var_r23++) { } + } + var_r31->unk_14 = var_r23; + } + var_r25 = var_r31->unk_14; + if (var_r25 != -1) { + var_f30 = var_r31->unk_60[var_r25] + var_r31->unk_90[var_r25]; + var_f31 = var_r31->unk_80[var_r25] + var_r31->unk_B0[var_r25]; + var_r22 = -1; + sp1F8 = -1.0f; + sp1F4 = var_r31->unk_1C; + if (var_r31->unk_100[var_r31->unk_18] != 0) { + var_r31->unk_1C = 0; + var_r31->unk_18 = -1; + } + if (var_r31->unk_1C != 0) { + for (var_r26 = 0; var_r26 < 4; var_r26++) { + sp1F0 = var_r31->unk_60[var_r26] + var_r31->unk_90[var_r26]; + sp1EC = var_r31->unk_80[var_r26] + var_r31->unk_B0[var_r26]; + if (var_r31->unk_F0[var_r26] == 0) { + if (var_r31->unk_28 != 0.0f) { + if (var_r31->unk_28 < 0.0f ? (sp1F0 < var_r31->unk_20) : (sp1F0 > var_r31->unk_20)) { + goto block_169; + } + } + else { + block_169: + if (var_r31->unk_2C != 0.0f) { + if (var_r31->unk_2C < 0.0f ? (sp1EC < var_r31->unk_24) : (sp1EC > var_r31->unk_24)) { + goto block_174; + } + } + else { + block_174: + var_r31->unk_1C = 0; + var_r31->unk_14 = var_r26; + var_r25 = var_r26; + var_f30 = sp1F0; + var_f31 = sp1EC; + } + } + } + } + } + switch (lbl_1_data_230[var_r31->unk_190]) { + case 0: + if ((var_r31->unk_100[0] != 0) && (var_r31->unk_18 == 1) && (var_f31 > 0.0f) && (var_f30 < 0.0f)) { + var_r31->unk_1C = 1; + var_r31->unk_20 = 150.0f; + var_r31->unk_24 = 150.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_r31->unk_100[0] != 0) && (var_r31->unk_18 == 1) && (var_f31 > 100.0f) && (var_f30 < 150.0f)) { + var_r31->unk_1C = 1; + var_r31->unk_20 = 150.0f; + var_r31->unk_24 = 150.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_r31->unk_100[0] != 0) && (var_r31->unk_1C == 0) && (sp1F4 == 1)) { + var_r31->unk_1C = 2; + var_r31->unk_24 = -50.0f; + var_r31->unk_28 = 0.0f; + var_r31->unk_2C = -1.0f; + } + if ((var_r31->unk_100[0] != 0) && (var_r31->unk_18 >= 2) && (var_f30 < -100.0f) && (var_f31 < -120.0f)) { + var_r31->unk_1C = 3; + var_r31->unk_24 = -120.0f; + var_r31->unk_28 = 0.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_r31->unk_100[0] != 0) && (var_r31->unk_18 >= 2) && (var_r31->unk_1C == 0) && (var_f30 < 0.0f) + && (var_f31 < 0.0f)) { + var_r31->unk_1C = 4; + var_r31->unk_20 = 0.0f; + var_r31->unk_24 = -120.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_r31->unk_100[0] != 0) && (var_r31->unk_18 >= 2) && (var_r31->unk_1C == 0) && (sp1F4 == 3)) { + var_r31->unk_1C = 5; + var_r31->unk_20 = 190.0f; + var_r31->unk_24 = 190.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_r31->unk_100[0] != 0) && (var_r31->unk_1C == 0) && (sp1F4 == 5) && (var_r31->unk_18 == 3)) { + var_r31->unk_1C = 6; + var_r31->unk_20 = 0.0f; + var_r31->unk_28 = -1.0f; + var_r31->unk_2C = 0.0f; + } + break; + case 1: + if ((var_r31->unk_18 == 3) && (var_f31 > 75.0f) && ((var_f30 < -150.0f) || (var_f30 > 150.0f))) { + var_r31->unk_1C = 1; + var_r31->unk_24 = 75.0f; + var_r31->unk_28 = 0.0f; + var_r31->unk_2C = -1.0f; + } + if ((var_r31->unk_100[1] != 0) && (var_f31 < -120.0f) && (var_f30 > 100.0f)) { + var_r31->unk_1C = 2; + var_r31->unk_24 = -120.0f; + var_r31->unk_28 = 0.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_r31->unk_18 == 2) && (var_r31->unk_100[0] != 0) && (var_f31 < -120.0f) && (var_f30 < -120.0f)) { + var_r31->unk_1C = 3; + if (var_f30 < var_f31) { + var_r31->unk_20 = -150.0f; + var_r31->unk_24 = -80.0f; + var_r31->unk_28 = -1.0f; + var_r31->unk_2C = 1.0f; + } + else { + var_r31->unk_24 = -150.0f; + var_r31->unk_20 = -80.0f; + var_r31->unk_2C = -1.0f; + var_r31->unk_28 = 1.0f; + } + } + break; + case 2: + if ((var_r31->unk_100[3] != 0) && (var_f31 > 100.0f) && (var_f30 < -75.0f)) { + var_r31->unk_1C = 1; + var_r31->unk_20 = -75.0f; + var_r31->unk_24 = 175.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_r31->unk_100[3] != 0) && (var_f31 < -50.0f) && (var_f30 < -150.0f)) { + var_r31->unk_1C = 2; + var_r31->unk_20 = -200.0f; + var_r31->unk_24 = -25.0f; + var_r31->unk_28 = -1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_r31->unk_18 == 2) && (var_r31->unk_100[2] != 0) && ((var_f30 + var_f31) > 300.0f)) { + var_r31->unk_1C = 3; + if (var_f30 > var_f31) { + var_r31->unk_20 = 200.0f; + var_r31->unk_24 = 80.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = -1.0f; + } + else { + var_r31->unk_24 = 200.0f; + var_r31->unk_20 = 80.0f; + var_r31->unk_2C = 1.0f; + var_r31->unk_28 = -1.0f; + } + } + if ((var_r31->unk_18 == 1) && (var_r31->unk_100[2] != 0) && ((var_f30 - var_f31) > 300.0f)) { + var_r31->unk_1C = 4; + if (var_f30 > -var_f31) { + var_r31->unk_20 = 200.0f; + var_r31->unk_24 = -80.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + else { + var_r31->unk_24 = -200.0f; + var_r31->unk_20 = 80.0f; + var_r31->unk_2C = -1.0f; + var_r31->unk_28 = -1.0f; + } + } + break; + case 3: + if ((var_f31 > 200.0f) && (var_f30 > 200.0f) && (var_r31->unk_18 != 3)) { + var_r31->unk_1C = 2; + if (var_r31->unk_18 == 2) { + var_r31->unk_20 = -150.0f; + var_r31->unk_24 = 150.0f; + var_r31->unk_28 = -1.0f; + var_r31->unk_2C = 1.0f; + } + else { + var_r31->unk_20 = 150.0f; + var_r31->unk_24 = -150.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = -1.0f; + } + } + if ((var_f31 > 0.0f) && (var_f30 > 0.0f) && (!(var_f30 < 100.0f) || !(var_f31 < 100.0f)) && (var_r31->unk_18 != 3) + && (var_r31->unk_1C == 0)) { + var_r31->unk_1C = 1; + var_r31->unk_20 = 200.0f; + var_r31->unk_24 = 200.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_f31 > 200.0f) && (var_f30 < -200.0f) && (var_r31->unk_18 != 2)) { + var_r31->unk_1C = 4; + if (var_r31->unk_18 == 3) { + var_r31->unk_20 = 150.0f; + var_r31->unk_24 = 150.0f; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + else { + var_r31->unk_20 = -150.0f; + var_r31->unk_24 = -150.0f; + var_r31->unk_28 = -1.0f; + var_r31->unk_2C = -1.0f; + } + } + if ((var_f31 > 0.0f) && (var_f30 < 0.0f) && (var_r31->unk_18 != 2) && (var_r31->unk_1C == 0) + && ((var_r31->unk_100[0] != 0) || (var_r31->unk_18 == 3))) { + var_r31->unk_1C = 3; + var_r31->unk_20 = -200.0f; + var_r31->unk_24 = 200.0f; + var_r31->unk_28 = -1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_f31 < -200.0f) && (var_f30 > 200.0f) && (var_r31->unk_18 == 3) && (var_r31->unk_1C == 0)) { + var_r31->unk_1C = 9; + var_r31->unk_20 = 200.0f; + var_r31->unk_24 = 0.0; + var_r31->unk_28 = 1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_f31 < -200.0f) && (var_f30 < -200.0f) && (var_r31->unk_18 == 2) && (var_r31->unk_1C == 0)) { + var_r31->unk_1C = 8; + var_r31->unk_20 = -200.0f; + var_r31->unk_24 = 0.0f; + var_r31->unk_28 = -1.0f; + var_r31->unk_2C = 1.0f; + } + if ((var_f31 < -200.0f) && (var_r31->unk_18 >= 2) && (var_r31->unk_1C == 0)) { + var_r31->unk_1C = 7; + var_r31->unk_24 = -200.0f; + var_r31->unk_2C = -1.0f; + if (var_r31->unk_18 == 3) { + var_r31->unk_20 = 200.0f; + var_r31->unk_28 = 1.0f; + } + else { + var_r31->unk_20 = -200.0f; + var_r31->unk_28 = -1.0f; + } + } + if ((var_f31 < 0.0f) && (var_r31->unk_18 >= 2) && (var_r31->unk_1C == 0)) { + var_r31->unk_1C = 6; + var_r31->unk_24 = -200.0f; + var_r31->unk_28 = 0.0; + var_r31->unk_2C = -1.0f; + } + if ((var_f31 < -175.0f) && (var_f30 > 175.0f) && ((var_r31->unk_18 == 0) || (var_r31->unk_18 == 2)) + && (var_r31->unk_1C == 0)) { + var_r31->unk_1C = 0xA; + var_r31->unk_20 = 0.0f; + var_r31->unk_24 = -200.0f; + var_r31->unk_28 = -1.0f; + var_r31->unk_2C = -1.0f; + } + break; + } + if (var_r31->unk_18 == -1) { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if ((var_r31->unk_100[var_r30] == 0) + && ((sp1E8 = sp394[var_r30].x - var_r31->unk_60[var_r25], sp1E4 = sp394[var_r30].z - var_r31->unk_80[var_r25], + ((var_r22 == -1) != 0)) + || (((sp1E8 * sp1E8) + (sp1E4 * sp1E4)) < sp1F8))) { + var_r22 = var_r30; + sp1F8 = (sp1E8 * sp1E8) + (sp1E4 * sp1E4); + } + } + if (var_r22 != -1) { + var_r31->unk_18 = var_r22; + } + } + else { + var_r22 = var_r31->unk_18; + } + if ((var_r31->unk_18 != -1) && (var_r31->unk_1C == 0)) { + if (((var_r31->unk_58 < -0.95) || (var_r31->unk_58 > 0.95)) && ((var_r31->unk_5C < -0.95) || (var_r31->unk_5C > 0.95)) + && (var_r31->unk_34 > 0xF) && (var_r31->unk_38 < 0x3C)) { + var_f29 = var_f30 < sp394[var_r31->unk_18].x ? 1 : (var_f30 > sp394[var_r31->unk_18].x ? -1 : 0); + var_f28 = var_f31 < sp394[var_r31->unk_18].z ? 1 : (var_f31 > sp394[var_r31->unk_18].z ? -1 : 0); + } + else { + var_f29 = var_f30 < sp394[var_r31->unk_18].x ? 1 : (var_f30 > sp394[var_r31->unk_18].x ? -1 : 0); + var_f28 = var_f31 < sp394[var_r31->unk_18].z ? 1 : (var_f31 > sp394[var_r31->unk_18].z ? -1 : 0); + } + } + else if (var_r31->unk_1C != 0) { + if (var_r31->unk_28 != 0.0f) { + if (!(var_r31->unk_28 < 0.0f ? (var_f30 < var_r31->unk_20) : (var_f30 > var_r31->unk_20))) { + var_f29 = var_r31->unk_28 < 0.0f ? (var_f30 > var_r31->unk_20 ? -1 : 0) : (var_f30 < var_r31->unk_20 ? 1 : 0); + } + else { + goto block_368; + } + } + else { + block_368: + var_f29 = var_r31->unk_58 < -0.1 ? 1.0f : (var_r31->unk_58 > 0.1 ? -1.0f : (-10.0f * var_r31->unk_58)); + } + if (var_r31->unk_2C != 0.0f) { + if ((var_r31->unk_2C < 0.0f ? (var_f31 < var_r31->unk_24) : (var_f31 > var_r31->unk_24)) == 0) { + var_f28 = var_r31->unk_2C < 0.0f ? (var_f31 > var_r31->unk_24 ? -1 : 0) : (var_f31 < var_r31->unk_24 ? 1 : 0); + } + else { + goto block_390; + } + } + else { + block_390: + var_f28 = var_r31->unk_5C < -0.1 ? 1.0f : (var_r31->unk_5C > 0.1 ? -1.0f : (-10.0f * var_r31->unk_5C)); + } + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + sp1E0 = var_r31->unk_60[var_r30] - var_r31->unk_160[var_r30]; + sp1DC = var_r31->unk_80[var_r30] - var_r31->unk_170[var_r30]; + if (((sp1E0 * sp1E0) + (sp1DC * sp1DC)) < 9.0f) { + var_r31->unk_150[var_r30]++; + } + else { + var_r31->unk_160[var_r30] = var_r31->unk_60[var_r30]; + var_r31->unk_170[var_r30] = var_r31->unk_80[var_r30]; + var_r31->unk_150[var_r30] = 0; + } + } + if (var_r31->unk_44 <= 0) { + var_r31->unk_3C = var_f29; + var_r31->unk_40 = var_f28; + var_r31->unk_44 = var_r31->unk_48; + var_r31->unk_48 -= (var_r31->unk_48 >= (var_r31->unk_48 / 10) ? (var_r31->unk_48 / 10) : 0); + } + else { + var_f29 = var_r31->unk_3C; + var_f28 = var_r31->unk_40; + var_r31->unk_44--; + } + var_f29 *= 0.5; + var_f28 *= -0.5; + } + } + if (((var_f29 * var_f29) + (var_f28 * var_f28)) > 1.0f) { + sp1D8 = sqrt((var_f29 * var_f29) + (var_f28 * var_f28)); + var_f29 *= 1.0f / sp1D8; + var_f28 *= 1.0f / sp1D8; + } + if ((((var_f29 * var_f29) + (var_f28 * var_f28)) < 0.0625) && (var_r31->unk_208 == 0)) { + var_f29 = 0.0f; + var_f28 = 0.0f; + } + } + sp1D4 = var_r31->unk_58; + sp1D0 = var_r31->unk_5C; + var_r31->unk_58 = var_r31->unk_58 + (var_f29 / 3.0f); + var_r31->unk_58 = var_r31->unk_58 < -1.0f ? -1.0f : (var_r31->unk_58 > 1.0f ? 1.0f : var_r31->unk_58); + var_r31->unk_5C = var_r31->unk_5C + (-var_f28 / 3.0f); + var_r31->unk_5C = var_r31->unk_5C < -1.0f ? -1.0f : (var_r31->unk_5C > 1.0f ? 1.0f : var_r31->unk_5C); + var_r31->unk_208 = ((var_r31->unk_58 == 0.0f) && (var_r31->unk_5C == 0.0f)) ? 0 : var_r31->unk_208; + if ((lbl_1_bss_48 == 0x3EC) && ((sp1D4 != var_r31->unk_58) || (sp1D0 != var_r31->unk_5C))) { + if (var_r31->unk_214 == -1) { + var_r31->unk_214 = HuAudFXPlay(0x7A6); + } + } + else { + if (var_r31->unk_214 != -1) { + HuAudFXStop(var_r31->unk_214); + } + var_r31->unk_214 = -1; + } + if (lbl_1_bss_48 >= 0x3ED) { + sp1CC = 0.666f; + sp1C8 = 0.9f; + var_r31->unk_5C = var_r31->unk_5C > sp1CC + ? ((var_r31->unk_5C * sp1C8) + (sp1CC * (1.0f - sp1C8))) + : (var_r31->unk_5C < -sp1CC ? ((var_r31->unk_5C * sp1C8) - (sp1CC * (1.0f - sp1C8))) : var_r31->unk_5C); + } + if (var_r31->unk_4C != 2) { + for (var_r18 = 0; var_r18 < 2; var_r18++) { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r31->unk_110[var_r30] = var_r31->unk_120[var_r30] = var_r31->unk_130[var_r30] = var_r31->unk_140[var_r30] = 0; + if (var_r31->unk_F0[var_r30] == 0) { + var_r31->unk_90[var_r30] += 0.13888888888888887 * var_r31->unk_58 * (var_r31->unk_208 != 0 ? 0 : 1) + * (var_r31->unk_70[var_r30] >= 0.0f ? 1.0f : (1.0f - (var_r31->unk_70[var_r30] / -25.0f))); + var_r31->unk_B0[var_r30] += 0.13888888888888887 * var_r31->unk_5C * (var_r31->unk_208 != 0 ? 0 : 1) + * (var_r31->unk_70[var_r30] >= 0.0f ? 1.0f : (1.0f - (var_r31->unk_70[var_r30] / -25.0f))); + var_r31->unk_70[var_r30] += var_r31->unk_A0[var_r30]; + var_r31->unk_38 += var_r31->unk_38 < 0x8000; + var_f27 + = sqrtf((var_r31->unk_90[var_r30] * var_r31->unk_90[var_r30]) + (var_r31->unk_B0[var_r30] * var_r31->unk_B0[var_r30])); + sp1C4 = var_r31->unk_90[var_r30]; + sp1C0 = var_r31->unk_B0[var_r30]; + if (var_f27 > 0.0f) { + if (var_f27 > 7.59375) { + var_r31->unk_90[var_r30] *= 7.5 / var_f27; + var_r31->unk_B0[var_r30] *= 7.5 / var_f27; + } + else { + var_r31->unk_90[var_r30] *= (var_f27 < 0.09375 ? 0.0 : (var_f27 - 0.09375)) / var_f27; + var_r31->unk_B0[var_r30] *= (var_f27 < 0.09375 ? 0.0 : (var_f27 - 0.09375)) / var_f27; + } + } + var_r31->unk_60[var_r30] += var_r31->unk_90[var_r30]; + var_r31->unk_80[var_r30] += var_r31->unk_B0[var_r30]; + var_f27 + = sqrtf((var_r31->unk_90[var_r30] * var_r31->unk_90[var_r30]) + (var_r31->unk_B0[var_r30] * var_r31->unk_B0[var_r30])); + for (var_r28 = 0; var_r28 < 4; var_r28++) { + sp1BC = var_r31->unk_60[var_r30] - var_r31->unk_60[var_r28]; + sp1B8 = var_r31->unk_80[var_r30] - var_r31->unk_80[var_r28]; + var_f24 = sqrtf((sp1BC * sp1BC) + (sp1B8 * sp1B8)); + if ((var_r30 != var_r28) && (var_r31->unk_F0[var_r28] == 0) && (var_f24 > 0.0f) && (var_f24 < 62.5)) { + var_f20 = sp1BC / var_f24; + var_f19 = sp1B8 / var_f24; + sp1B4 = var_r31->unk_90[var_r30]; + sp1B0 = var_r31->unk_B0[var_r30]; + var_f18 = (var_r31->unk_90[var_r30] + var_r31->unk_90[var_r28]) / 2.0; + sp1A4 = (var_r31->unk_B0[var_r30] + var_r31->unk_B0[var_r28]) / 2.0; + sp1AC = (var_f20 * -(var_r31->unk_90[var_r30] - var_f18)) - (var_f19 * (var_r31->unk_B0[var_r30] - sp1A4)); + sp1A8 = (-var_f20 * -(var_r31->unk_90[var_r28] - var_f18)) - (-var_f19 * (var_r31->unk_B0[var_r28] - sp1A4)); + var_r31->unk_60[var_r30] += var_f20 * (0.1 + (62.5 - var_f24)) / 2.0; + var_r31->unk_80[var_r30] += var_f19 * (0.1 + (62.5 - var_f24)) / 2.0; + var_r31->unk_60[var_r28] -= var_f20 * (0.1 + (62.5 - var_f24)) / 2.0; + var_r31->unk_80[var_r28] -= var_f19 * (0.1 + (62.5 - var_f24)) / 2.0; + var_r31->unk_90[var_r30] = var_f18 + (0.75 * ((var_r31->unk_90[var_r30] - var_f18) + (2.0f * var_f20 * sp1AC))); + var_r31->unk_B0[var_r30] = sp1A4 + (0.75 * ((var_r31->unk_B0[var_r30] - sp1A4) + (2.0f * var_f19 * sp1AC))); + var_r31->unk_90[var_r28] = var_f18 + (0.75 * ((var_r31->unk_90[var_r28] - var_f18) + (2.0f * -var_f20 * sp1A8))); + var_r31->unk_B0[var_r28] = sp1A4 + (0.75 * ((var_r31->unk_B0[var_r28] - sp1A4) + (2.0f * -var_f19 * sp1A8))); + var_r31->unk_110[var_r30] = 1 << var_r28; + if (((var_r31->unk_90[var_r30] + var_r31->unk_B0[var_r30]) > 0.0) && (var_r31->unk_1C4[var_r30] > 0xF) + && (var_r31->unk_1C4[var_r28] > 0xF) && (lbl_1_bss_64[1].unk_00 < 2)) { + lbl_1_bss_64[1].unk_04[lbl_1_bss_64[1].unk_00] = 0.0f; + lbl_1_bss_64[1].unk_00++; + } + var_r31->unk_1C4[var_r30] = 0; + var_r31->unk_1C4[var_r28] = 0; + } + } + for (var_r28 = 0; var_r28 < 4; var_r28++) { + sp1A0 = var_r31->unk_60[var_r30] - var_r31->unk_60[var_r28]; + sp19C = var_r31->unk_80[var_r30] - var_r31->unk_80[var_r28]; + sp198 = sqrtf((sp1A0 * sp1A0) + (sp19C * sp19C)); + if ((var_r31->unk_F0[var_r28] != 0) && (var_f27 > 0.0f)) { + if (sp198 < 62.5) { + sp194 = sp1A0 / sp198; + sp190 = sp19C / sp198; + sp18C = var_r31->unk_90[var_r30]; + sp188 = var_r31->unk_B0[var_r30]; + sp184 = (-sp18C * sp194) - (sp188 * sp190); + var_r31->unk_60[var_r30] += sp194 * (0.1 + (62.5 - sp198)); + var_r31->unk_80[var_r30] += sp190 * (0.1 + (62.5 - sp198)); + var_r31->unk_90[var_r30] = 0.75 * (sp18C + (2.0f * sp194 * sp184)); + var_r31->unk_B0[var_r30] = 0.75 * (sp188 + (2.0f * sp190 * sp184)); + var_r31->unk_60[var_r30] += var_r31->unk_90[var_r30]; + var_r31->unk_80[var_r30] += var_r31->unk_B0[var_r30]; + var_r31->unk_34 = var_r31->unk_30 == (var_r28 + 1) ? (var_r31->unk_34 + 1) : 1; + var_r31->unk_30 = var_r28 + 1; + var_r31->unk_38 = 0; + var_r31->unk_120[var_r30] = 1 << var_r28; + if (((var_r31->unk_90[var_r30] + var_r31->unk_B0[var_r30]) > 0.0) && (var_r31->unk_1C4[var_r30] > 0xF) + && (var_r31->unk_1C4[var_r28] > 0xF) && (lbl_1_bss_64[1].unk_00 < 2)) { + lbl_1_bss_64[1].unk_04[lbl_1_bss_64[1].unk_00] = 0.0f; + lbl_1_bss_64[1].unk_00++; + } + var_r31->unk_1C4[var_r30] = 0; + var_r31->unk_1C4[var_r28] = 0; + } + } + } + for (var_r28 = 0; var_r28 < (lbl_1_data_230[var_r31->unk_190] == 2 ? 2 : 3); var_r28++) { + sp180 = var_r31->unk_60[var_r30] - sp3C4[var_r28].x; + sp17C = var_r31->unk_80[var_r30] - sp3C4[var_r28].z; + sp178 = sqrtf((sp180 * sp180) + (sp17C * sp17C)); + if ((sp178 > 0.0f) && (sp178 < 62.5)) { + sp174 = sp180 / sp178; + sp170 = sp17C / sp178; + sp16C = var_r31->unk_90[var_r30]; + sp168 = var_r31->unk_B0[var_r30]; + sp164 = (-sp16C * sp174) - (sp168 * sp170); + var_r31->unk_60[var_r30] += sp174 * (0.1 + (62.5 - sp178)); + var_r31->unk_80[var_r30] += sp170 * (0.1 + (62.5 - sp178)); + var_r31->unk_90[var_r30] = 0.75 * (sp16C + (2.0f * sp174 * sp164)); + var_r31->unk_B0[var_r30] = 0.75 * (sp168 + (2.0f * sp170 * sp164)); + var_r31->unk_60[var_r30] += var_r31->unk_90[var_r30]; + var_r31->unk_80[var_r30] += var_r31->unk_B0[var_r30]; + var_r31->unk_34 = var_r31->unk_30 == (var_r28 + 5) ? (var_r31->unk_34 + 1) : 1; + var_r31->unk_30 = var_r28 + 5; + var_r31->unk_38 = 0; + var_r31->unk_130[var_r30] = 1 << var_r28; + if (((var_r31->unk_90[var_r30] + var_r31->unk_B0[var_r30]) > 0.0) && (var_r31->unk_1C4[var_r30] > 0xF) + && (lbl_1_bss_64[1].unk_00 < 2)) { + lbl_1_bss_64[1].unk_04[lbl_1_bss_64[1].unk_00] = 0.0f; + lbl_1_bss_64[1].unk_00++; + } + var_r31->unk_1C4[var_r30] = 0; + } + } + if (((var_r31->unk_60[var_r30] - 37.5) < -250.0) || ((37.5 + var_r31->unk_60[var_r30]) > 250.0)) { + var_r31->unk_60[var_r30] = (var_r31->unk_60[var_r30] - 37.5) < -250.0 ? -212.5 : 212.5; + var_r31->unk_90[var_r30] *= -0.75; + var_r31->unk_60[var_r30] += var_r31->unk_90[var_r30]; + if (((var_r31->unk_90[var_r30] + var_r31->unk_B0[var_r30]) > 0.0) && (var_r31->unk_1C4[var_r30] > 0xF) + && (lbl_1_bss_64[1].unk_00 < 2)) { + lbl_1_bss_64[1].unk_04[lbl_1_bss_64[1].unk_00] = 0.0f; + lbl_1_bss_64[1].unk_00++; + } + var_r31->unk_1C4[var_r30] = 0; + } + if (((var_r31->unk_80[var_r30] - 37.5) < -250.0) || ((37.5 + var_r31->unk_80[var_r30]) > 250.0)) { + var_r31->unk_80[var_r30] = (var_r31->unk_80[var_r30] - 37.5) < -250.0 ? -212.5 : 212.5; + var_r31->unk_B0[var_r30] *= -0.75; + var_r31->unk_80[var_r30] += var_r31->unk_B0[var_r30]; + if (((var_r31->unk_90[var_r30] + var_r31->unk_B0[var_r30]) > 0.0) && (var_r31->unk_1C4[var_r30] > 0xF) + && (lbl_1_bss_64[1].unk_00 < 2)) { + lbl_1_bss_64[1].unk_04[lbl_1_bss_64[1].unk_00] = 0.0f; + lbl_1_bss_64[1].unk_00++; + } + var_r31->unk_1C4[var_r30] = 0; + } + var_r21 = 0; + for (var_r21 = 0; var_r21 < 0x10; var_r21++) { + var_r31->unk_1C4[var_r21]++; + } + sp160 = 0; + for (var_r28 = 0; var_r28 < 4; var_r28++) { + sp15C = var_r31->unk_60[var_r30] - sp394[var_r28].x; + sp158 = ((sp15C == 0.0f) && (var_r31->unk_80[var_r30] == sp394[var_r28].z)) + ? 1e-10 + : (var_r31->unk_80[var_r30] - sp394[var_r28].z); + var_f23 = sqrtf((sp15C * sp15C) + (sp158 * sp158)); + sp154 = 0; + for (var_r20 = 0; var_r20 < 4; var_r20++) { + if (((var_r31->unk_110[var_r30] & (1 << var_r20)) != 0) && (var_r31->unk_130[var_r20] != 0)) { + sp154 = 1; + } + } + if ((var_r31->unk_0C != -1) && (lbl_1_data_230[var_r31->unk_190] == 1) && (var_r28 == 3)) { + if (var_r31->unk_180[var_r30] > 0) { + var_f23 = 1000.0f; + var_r31->unk_180[var_r30]--; + } + for (var_r27 = 0; var_r27 < 4; var_r27++) { + if ((var_r31->unk_00 == 0) && ((HuPadBtn[0] & PAD_BUTTON_B) != 0)) { + OSReport("%d | %d\n%d | %d\n%f,%f\n%f,%f\n", var_r31->unk_110[var_r30], 1 << var_r27, + var_r31->unk_110[var_r27], 1 << var_r30, var_r31->unk_60[var_r30], var_r31->unk_80[var_r30], + var_r31->unk_60[var_r27], var_r31->unk_80[var_r27]); + } + if ((((var_r31->unk_110[var_r30] & (1 << var_r27)) != 0) || ((var_r31->unk_110[var_r27] & (1 << var_r30)) != 0)) + && (var_r31->unk_80[var_r27] > var_r31->unk_80[var_r30]) && (var_r31->unk_60[var_r30] < 100.0f) + && (var_r31->unk_60[var_r30] > -100.0f) && (var_r31->unk_80[var_r30] > 150.0f) + && (var_r31->unk_60[var_r27] < 100.0f) && (var_r31->unk_60[var_r27] > -100.0f) + && (var_r31->unk_80[var_r27] > 150.0f)) { + var_f23 = 1000.0f; + var_r31->unk_180[var_r30] = 3; + } + } + } + if ((sp154 == 0) && (var_f23 < 37.5)) { + sp150 = sp15C / var_f23; + sp14C = sp158 / var_f23; + sp148 = 37.5 * sind((90.0 * (-var_r31->unk_70[var_r30] / 37.5))); + sp144 = var_r31->unk_70[var_r30] <= -37.5 ? 90.0 : (asind(1.0 + (var_r31->unk_70[var_r30] / 37.5))); + var_r31->unk_140[var_r30] = 1 << var_r28; + sp140 = sqrtf((var_r31->unk_B0[var_r30] * var_r31->unk_B0[var_r30]) + + ((var_r31->unk_90[var_r30] * var_r31->unk_90[var_r30]) + + (var_r31->unk_A0[var_r30] * var_r31->unk_A0[var_r30]))); + sp13C = sqrtf( + (var_r31->unk_90[var_r30] * var_r31->unk_90[var_r30]) + (var_r31->unk_B0[var_r30] * var_r31->unk_B0[var_r30])); + sp138 = atan2d(var_r31->unk_A0[var_r30], sp13C); + var_r31->unk_90[var_r30] -= 0.375 * sp150; + var_r31->unk_B0[var_r30] -= 0.375 * sp14C; + var_r31->unk_60[var_r30] -= 0.375 * sp150; + var_r31->unk_80[var_r30] -= 0.375 * sp14C; + if (var_r31->unk_70[var_r30] < (-25.0 * sind((90.0 * (1.0 - (var_f23 / 37.5)))))) { + var_r31->unk_70[var_r30] = -25.0 * sind((90.0 * (1.0 - (var_f23 / 37.5)))); + } + if ((var_r31->unk_70[var_r30] <= -24.5) && (var_f23 < 0.75)) { + var_r31->unk_70[var_r30] = -25.0f; + var_r31->unk_A0[var_r30] = 0.0f; + var_r31->unk_F0[var_r30] = 1; + var_r31->unk_100[var_r28] = 1; + var_r31->unk_48 = lbl_1_rodata_10[var_r31->unk_10]; + if (lbl_1_bss_64[2].unk_00 < 2) { + lbl_1_bss_64[2].unk_04[lbl_1_bss_64[2].unk_00] = 0.0f; + lbl_1_bss_64[2].unk_00++; + } + omVibrate(var_r31->unk_04, 0xC, 6, 6); + } + } + else { + sp160++; + } + if (var_r28 == 3) { + if ((sp160 == 4) && (var_r31->unk_70[var_r30] < 0.0f)) { + var_r31->unk_70[var_r30] = 0.0f; + var_r31->unk_A0[var_r30] *= -0.0; + } + else { + var_r31->unk_A0[var_r30] += -0.1875; + } + } + } + sp134 = atan2d(sp1C4, sp1C0); + sp130 = atan2d(var_r31->unk_90[var_r30], var_r31->unk_B0[var_r30]); + var_f22 + = sqrtf((var_r31->unk_90[var_r30] * var_r31->unk_90[var_r30]) + (var_r31->unk_B0[var_r30] * var_r31->unk_B0[var_r30])); + var_f25 = sp130 - sp134; + var_f25 += var_f25 < -180.0f ? 0x168 : (var_f25 > 180.0f ? -0x168 : 0); + var_f25 += var_f25 < -180.0f ? 0x168 : (var_f25 > 180.0f ? -0x168 : 0); + var_f22 = var_f22 <= (1.03125 * sqrt(0.03858024691358024)) ? 0.0f : var_f22; + var_r31->unk_D0[var_r30] + -= (2.625 * ((var_f22 * (var_f25 < -90.0f ? -1.0 : (var_f25 > 90.0f ? 1.0 : (var_f25 / 90.0)))) / 3.75)); + var_r31->unk_D0[var_r30] = var_r31->unk_D0[var_r30] >= 7.875 ? 7.875 : var_r31->unk_D0[var_r30]; + var_r31->unk_C0[var_r30] += var_r31->unk_D0[var_r30]; + var_r31->unk_C0[var_r30] += var_r31->unk_C0[var_r30] < -180.0f ? 0xB4 : (var_r31->unk_C0[var_r30] > 180.0f ? -0xB4 : 0); + if (fabs(var_f22) < fabs(var_r31->unk_E0[var_r30])) { + var_r31->unk_D0[var_r30] + = var_r31->unk_E0[var_r30] == 0.0f ? 0.0f : ((var_r31->unk_D0[var_r30] * var_f22) / var_r31->unk_E0[var_r30]); + } + var_r31->unk_E0[var_r30] = var_f22; + } + } + } + } + Hu3DModelRotSet(var_r29->model[var_r31->unk_190 + 1], 10.0f * var_r31->unk_5C, 0.0f, 10.0f * -var_r31->unk_58); + Hu3DModelRotSet(var_r29->model[11], 10.0f * var_r31->unk_5C, 0.0f, 10.0f * -(var_r31->unk_58)); + if (lbl_1_bss_48 == 0x3EB) { + sp12C = var_r29->rot.y; + sp128 = 180.0 + ((8.0f * var_r31->unk_58) * (0.125 + ((0.6 + var_r31->unk_5C) / 0.875))); + var_r29->rot.y = (3.0f + sp12C) < sp128 ? (3.0f + sp12C) : ((sp12C - 3.0f) > sp128 ? (sp12C - 3.0f) : sp128); + if (lbl_1_bss_4C == 0xA) { + Hu3DMotionShiftSet(var_r29->model[0], var_r29->motion[1], 39.0 * (0.5 + (0.5 * var_r31->unk_5C)), 20.0f, HU3D_MOTATTR_PAUSE); + } + } + else if (lbl_1_bss_48 == 0x3EC) { + omSetRot(var_r29, 0.0f, 180.0 + ((8.0f * var_r31->unk_58) * (0.125 + ((0.6 + var_r31->unk_5C) / 0.875))), 0.0f); + Hu3DMotionTimeSet(var_r29->model[0], 39.0 * (0.5 + (0.5 * var_r31->unk_5C))); + } + else if (lbl_1_bss_48 == 0x3ED) { + if (lbl_1_bss_4C == 1) { + Hu3DModelAttrReset(var_r29->model[0], HU3D_MOTATTR_PAUSE); + Hu3DMotionShiftSet(var_r29->model[0], var_r29->motion[0], 0.0f, 12.0f, HU3D_MOTATTR_LOOP); + } + if (lbl_1_bss_4C >= 0x19) { + var_r29->rot.y *= 0.8; + } + } + else if (lbl_1_bss_48 >= 0x3EE) { + var_r29->rot.y = 0.0f; + if ((lbl_1_bss_4C == 1) && (lbl_1_bss_48 == 0x3EE)) { + if ((var_r31->unk_00 != lbl_1_bss_30) && (var_r31->unk_08 != -1)) { + s32 sp2E4[8] = { 0x121, 0x161, 0x1A1, 0x1E1, 0x221, 0x261, 0x2A1, 0x2E1 }; + HuAudFXPlay(sp2E4[var_r31->unk_08]); + } + Hu3DMotionShiftSet(var_r29->model[0], var_r29->motion[var_r31->unk_00 == lbl_1_bss_30 ? 2 : 3], 0.0f, 8.0f, + ((var_r31->unk_00 == lbl_1_bss_30) && (var_r31->unk_08 == -1)) ? 0x40000001 : 0); + } + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + lbl_1_bss_18 = var_r31->unk_C0[var_r30]; + lbl_1_bss_18 = lbl_1_bss_18 < -180.0f ? (360.0f + lbl_1_bss_18) : (lbl_1_bss_18 > 180.0f ? (lbl_1_bss_18 - 360.0f) : lbl_1_bss_18); + sp124 = ((-90.175 <= lbl_1_bss_18) && (lbl_1_bss_18 <= -90.0f)) != 0 + ? -90.175 + : ((-90.0f <= lbl_1_bss_18) && (lbl_1_bss_18 <= -89.825) ? -89.825 : lbl_1_bss_18); + PSMTXRotRad(sp304, 0x78, 0.017453292f * (10.0f * var_r31->unk_5C)); + PSMTXRotRad(sp364, 0x7A, 0.017453292f * (10.0f * -var_r31->unk_58)); + PSMTXConcat(sp364, sp304, sp364); + PSMTXRotRad(sp304, 0x79, 0.017453292f * sp124); + PSMTXRotRad(sp334, 0x78, 0.017453292f * (15.0f * var_r31->unk_5C)); + PSMTXConcat(sp334, sp304, sp334); + PSMTXRotRad(sp304, 0x7A, 0.017453292f * (15.0f * -var_r31->unk_58)); + PSMTXConcat(sp304, sp334, sp334); + Hu3DMtxRotGet(sp334, &sp2A8); + sp2B4.x = var_r31->unk_60[var_r30]; + sp2B4.y = var_r31->unk_70[var_r30]; + sp2B4.z = var_r31->unk_80[var_r30]; + PSMTXMultVec(sp364, &sp2B4, &sp2B4); + Hu3DModelPosSet(var_r29->model[var_r30 + 0xC], sp2D8.x + sp2B4.x, sp2D8.y + sp2B4.y, sp2D8.z + sp2B4.z); + Hu3DModelRotSet(var_r29->model[var_r30 + 0xC], 10.0f * var_r31->unk_5C, 0.0f, 10.0f * -var_r31->unk_58); + Hu3DModelRotSet(var_r29->model[var_r30 + 0xC], sp2A8.x, sp2A8.y, sp2A8.z); + } + } +} + +s32 lbl_1_data_284 = -1; +float lbl_1_data_288 = 700.0f; +float lbl_1_data_28C = 314.0f; +float lbl_1_data_290 = -100.0f; +float lbl_1_data_294 = -30.0f; + +void fn_1_6850(omObjData *object) +{ + M449DllWork *sp20[2]; + s32 sp1C; + s32 sp18; + s32 sp14; + s32 sp10; + s32 spC; + s32 sp8; + float var_f31; + float var_f30; + float var_f29; + + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + + for (var_r31 = 0; var_r31 < 2; var_r31++) { + sp20[var_r31] = (&lbl_1_bss_54)[var_r31]->data; + } + lbl_1_bss_4++; + if (lbl_1_bss_48 == 0x3EC) { + lbl_1_bss_14++; + } + var_r27 = 0; + var_r26 = 0; + var_r25 = 0; + var_r24 = 0; + if ((sp20[0]->unk_190 == 2) && (sp20[0]->unk_F0[0] != 0)) { + var_r24 = 1; + } + if ((var_r24 != 0) && (sp20[0]->unk_F0[1] != 0)) { + var_r25 = 1; + } + if ((var_r25 != 0) && (sp20[0]->unk_F0[2] != 0)) { + var_r26 = 1; + } + if ((var_r26 != 0) && (sp20[0]->unk_F0[3] != 0)) { + var_r27 = 1; + } + var_r30 = var_r27; + var_r23 = 0; + var_r22 = 0; + var_r21 = 0; + var_r20 = 0; + if ((sp20[1]->unk_190 == 2) && (sp20[1]->unk_F0[0] != 0)) { + var_r20 = 1; + } + if ((var_r20 != 0) && (sp20[1]->unk_F0[1] != 0)) { + var_r21 = 1; + } + if ((var_r21 != 0) && (sp20[1]->unk_F0[2] != 0)) { + var_r22 = 1; + } + if ((var_r22 != 0) && (sp20[1]->unk_F0[3] != 0)) { + var_r23 = 1; + } + var_r29 = var_r23; + lbl_1_bss_30 = lbl_1_bss_30 == -1 ? ((var_r30 != 0) && (var_r29 != 0) ? (rand8() % 2) : (var_r30 != 0 ? 0 : (var_r29 != 0 ? 1 : lbl_1_bss_30))) + : lbl_1_bss_30; + lbl_1_bss_30 = ((lbl_1_bss_30 == -1) && (lbl_1_bss_14 >= 0x4650)) != 0 + ? (sp20[0]->unk_190 > sp20[1]->unk_190 ? 0 : (sp20[0]->unk_190 < sp20[1]->unk_190 ? 1 : 4)) + : lbl_1_bss_30; + var_r28 = lbl_1_data_284; + { + UnkCameraStruct sp28[4] = { + { 2500.0f, 0.0f, 0.0f, -100.0f, -40.0f, 0.0f }, + { 700.0f, 0.0f, 0.0f, -750.0f, -30.0f, 0.0f }, + { 775.0f, -350.0f, -27.0f, 400.0f, -25.0f, -7.0f }, + { 775.0f, 350.0f, -27.0f, 400.0f, -25.0f, 7.0f }, + }; + if (lbl_1_data_284 == -1) { + lbl_1_data_284 = 1; + lbl_1_bss_1C = 1; + lbl_1_bss_20 = 1.0f; + } + if ((lbl_1_bss_48 == 0x3E9) && (lbl_1_data_284 == 1)) { + lbl_1_data_284 = 0; + lbl_1_bss_1C = 1; + lbl_1_bss_20 = 0.0f; + } + if ((lbl_1_bss_48 == 0x3EE) && (lbl_1_bss_4C == 1) && (lbl_1_bss_30 == 0)) { + lbl_1_data_284 = 2; + lbl_1_bss_1C = 0; + lbl_1_bss_20 = 0.0f; + } + if ((lbl_1_bss_48 == 0x3EE) && (lbl_1_bss_4C == 1) && (lbl_1_bss_30 == 1) && (sp20[1]->unk_08 != -1)) { + lbl_1_data_284 = 3; + lbl_1_bss_1C = 0; + lbl_1_bss_20 = 0.0f; + } + if ((var_r28 != lbl_1_data_284) && (var_r28 != -1)) { + lbl_1_data_288 = CZoom; + lbl_1_data_28C = Center.y; + lbl_1_data_290 = Center.z; + lbl_1_data_294 = CRot.x; + } + if (lbl_1_bss_20 <= 1.0f) { + if (lbl_1_bss_1C == 0) { + lbl_1_bss_20 = 1.0 - (0.95 * (1.0f - lbl_1_bss_20)); + var_f31 = lbl_1_bss_20; + } + else { + lbl_1_bss_20 += 0.008333333333333333; + lbl_1_bss_20 = lbl_1_bss_20 > 1.0f ? 1.0f : lbl_1_bss_20; + var_f31 = 0.5 + (-0.5 * cosd((180.0f * lbl_1_bss_20))); + } + lbl_1_bss_20 = lbl_1_bss_20 > 1.0f ? 1.0f : lbl_1_bss_20; + CZoom = (var_f31 * sp28[lbl_1_data_284].unk_00) + (lbl_1_data_288 * (1.0f - var_f31)); + Center.x = (var_f31 * sp28[lbl_1_data_284].unk_04) + (lbl_1_bss_24 * (1.0f - var_f31)); + Center.y = (var_f31 * sp28[lbl_1_data_284].unk_08) + (lbl_1_data_28C * (1.0f - var_f31)); + Center.z = (var_f31 * sp28[lbl_1_data_284].unk_0C) + (lbl_1_data_290 * (1.0f - var_f31)); + CRot.x = (var_f31 * sp28[lbl_1_data_284].unk_10) + (lbl_1_data_294 * (1.0f - var_f31)); + CRot.y = (var_f31 * sp28[lbl_1_data_284].unk_14) + (lbl_1_bss_28 * (1.0f - var_f31)); + } + } +} + +static const u32 lbl_1_rodata_580[6] = { 0x2C0003, 0x2C0004, 0x2C0005, 0x2C0006, 0x2C0007, 0 }; + +void fn_1_71A8(void) +{ + M449DllWork *sp8[2]; + + s16 var_r31; + s32 var_r30; + s16 var_r29; + s32 var_r28; + s32 var_r27; + u32 var_r26; + + var_r29 = 0; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + sp8[var_r30] = (&lbl_1_bss_54)[var_r30]->data; + } + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 0x3C); + HuWinComKeyReset(); + var_r31 = HuWinExCreateStyled(-10000.0f, 60.0f, 0x118, 0x78, -1, 1); + HuWinExAnimIn(var_r31); + HuWinBGTPLvlSet(var_r31, 0.8f); + HuWinMesSpeedSet(var_r31, 1); + HuWinDisablePlayerSet( + var_r31, 0xF & ((sp8[0]->unk_0C != -1) ? ~(1 << sp8[0]->unk_0C) : 0xF) & ((sp8[1]->unk_0C != -1) ? ~(1 << sp8[1]->unk_0C) : 0xF)); + HuWinMesColSet(var_r31, 0); + HuWinMesSet(var_r31, 0x2C0001); + if (((sp8[0]->unk_0C == -1) || (sp8[0]->unk_08 == -1)) && ((sp8[1]->unk_0C == -1) || (sp8[1]->unk_08 == -1))) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 0x3C); + } + HuWinMesWait(var_r31); + if ((sp8[0]->unk_0C != -1) || (sp8[1]->unk_0C != -1)) { + HuWinMesColSet(var_r31, 0); + HuWinMesSet(var_r31, 0x2C0002); + if ((sp8[0]->unk_0C == -1) && (sp8[1]->unk_0C == -1)) { + HuPrcSleep(0x3C); + var_r29 = 1; + } + else { + var_r29 = HuWinChoiceGet(var_r31, 0); + } + } + else { + var_r29 = 1; + } + if (var_r29 == 0) { + var_r30 = 0; + while ((var_r26 = lbl_1_rodata_580[var_r30++]) != 0) { + HuWinMesColSet(var_r31, 0); + HuWinMesSet(var_r31, var_r26); + if ((sp8[0]->unk_0C == -1 || sp8[0]->unk_08 == -1) && (sp8[1]->unk_0C == -1 || sp8[1]->unk_08 == -1)) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); + } + HuWinMesWait(var_r31); + } + } + else { + HuWinMesColSet(var_r31, 0); + HuWinMesSet(var_r31, 0x2C0008); + if (((sp8[0]->unk_0C == -1) || (sp8[0]->unk_08 == -1)) && ((sp8[1]->unk_0C == -1) || (sp8[1]->unk_08 == -1))) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); + } + HuWinMesWait(var_r31); + } + HuWinExAnimOut(var_r31); + HuWinExCleanup(var_r31); + lbl_1_bss_10 = 0; + HuPrcEnd(); +} + +void fn_1_7544(omObjData *var_r29) +{ + M449DllWork *spC[2]; + s32 sp8; + + s32 var_r31; + s32 var_r30; + + for (var_r31 = 0; var_r31 < 0xC; var_r31++) { + s32 sp14[12] = { 0x7A2, 0x7A3, 0x7A4, 0x7A5, 0, 0, 0, 0, 0, 0, 0, 0 }; + if (lbl_1_bss_64[var_r31].unk_00 > 3) { + lbl_1_bss_64[var_r31].unk_00 = 3; + } + if ((lbl_1_bss_64[var_r31].unk_00 > 0) && (var_r31 != 1)) { + sp8 = HuAudFXPlay(sp14[var_r31]); + lbl_1_bss_64[var_r31].unk_00--; + } + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + spC[var_r31] = (&lbl_1_bss_54)[var_r31]->data; + } + if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + var_r29->func = fn_1_9A38; + } + switch (lbl_1_bss_48) { + case 0x3E8: + if (WipeStatGet() == 0) { + lbl_1_bss_48++; + lbl_1_bss_4C = 0; + return; + } + break; + case 0x3E9: + lbl_1_bss_4C++; + if (lbl_1_bss_4C > 0x78) { + lbl_1_bss_48++; + if ((spC[0]->unk_08 != -1) && (spC[1]->unk_08 != -1)) { + lbl_1_bss_48++; + } + lbl_1_bss_44 = 0; + lbl_1_bss_4C = 0; + return; + } + break; + case 0x3EA: + lbl_1_bss_4C++; + if (lbl_1_bss_4C == 1) { + HuPrcChildCreate(fn_1_71A8, 0x64, 0x2000, 0, HuPrcCurrentGet()); + lbl_1_bss_10 = 1; + if (lbl_1_data_22C == -1) { + lbl_1_data_22C = HuAudSeqPlay(0x3D); + return; + } + } + else if (lbl_1_bss_10 == 0) { + lbl_1_bss_48++; + if (lbl_1_data_22C != -1) { + HuAudSeqFadeOut(lbl_1_data_22C, 0x3E8); + lbl_1_data_22C = -1; + } + lbl_1_bss_4C = 0; + return; + } + break; + case 0x3EB: + lbl_1_bss_4C++; + if ((lbl_1_bss_4C == 5) && (lbl_1_data_228 < 0)) { + lbl_1_data_228 = MGSeqCreate(3, 0); + } + if ((lbl_1_bss_4C >= 5) && (lbl_1_data_22C == -1) && ((MGSeqStatGet(lbl_1_data_228) & 0x10) != 0)) { + lbl_1_data_22C = HuAudSeqPlay(0x3E); + } + if ((lbl_1_bss_4C >= 5) && (MGSeqStatGet(lbl_1_data_228) == 0) && (lbl_1_data_228 >= 0)) { + for (var_r30 = 0; var_r30 < 0x12; var_r30++) { + if (((var_r30 % 9) < 5) || ((var_r30 % 9) > 7)) { + espDispOn(lbl_1_data_48[var_r30]); + } + } + lbl_1_bss_48++; + lbl_1_data_228 = -1; + lbl_1_bss_4C = 0; + return; + } + break; + case 0x3EC: + lbl_1_bss_4C++; + if (lbl_1_bss_14 == 0x3F48) { + lbl_1_data_22A = MGSeqCreate(1, 0x1E, -1, -1); + } + if (lbl_1_data_22A != -1) { + MGSeqParamSet(lbl_1_data_22A, 1, (0x468B - lbl_1_bss_14) / 60); + } + if (lbl_1_bss_30 != -1) { + lbl_1_bss_48 = 0x3ED; + lbl_1_bss_4C = 0; + return; + } + break; + case 0x3ED: + lbl_1_bss_4C++; + if ((lbl_1_data_228 < 0) && (lbl_1_bss_4C == 1)) { + if (lbl_1_data_22A != -1) { + MGSeqParamSet(lbl_1_data_22A, 2, -1); + } + lbl_1_data_228 = MGSeqCreate(3, 1); + if (lbl_1_data_22C != -1) { + HuAudSeqFadeOut(lbl_1_data_22C, 0x64); + lbl_1_data_22C = -1; + return; + } + } + else if (MGSeqStatGet(lbl_1_data_228) == 0) { + lbl_1_bss_48++; + lbl_1_bss_4C = 0; + if (lbl_1_bss_30 == 4) { + lbl_1_bss_30 = spC[0]->unk_08 == -1 ? 0 : (spC[1]->unk_08 == -1 ? 1 : lbl_1_bss_30); + return; + } + } + break; + case 0x3EE: + lbl_1_bss_4C++; + if (lbl_1_bss_4C == 1) { + if (lbl_1_bss_30 != 4) { + if (spC[lbl_1_bss_30]->unk_08 != -1) { + HuAudSStreamPlay(1); + } + else { + HuAudSStreamPlay(3); + } + GWPlayerCoinWinSet(spC[lbl_1_bss_30]->unk_04, 10); + } + else if (lbl_1_bss_30 == 4) { + HuAudSStreamPlay(4); + } + } + if ((210.0f + (lbl_1_bss_30 == 4 ? 0x1E : 0)) < lbl_1_bss_4C) { + lbl_1_data_228 = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); + var_r29->func = fn_1_9A38; + } + break; + } +} + +void fn_1_7ECC(omObjData *var_r31) +{ + var_r31->model[0] = Hu3DModelCreateFile(0x500008); + Hu3DModelAttrSet(var_r31->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelShadowMapSet(var_r31->model[0]); + var_r31->model[1] = Hu3DModelCreateFile(0x500009); + var_r31->model[2] = Hu3DModelCreateFile(0x50000A); + Hu3DModelAttrSet(var_r31->model[2], HU3D_MOTATTR_LOOP); + var_r31->func = fn_1_6850; +} + +void fn_1_7F94(ModelData *model, ParticleData *particle, Mtx matrix) +{ + float var_f31; + float var_f30; + float var_f29; + + HsfanimStruct01 *var_r31; + s16 var_r29; + + if (particle->unk_34 == 0) { + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + var_r31->unk00 = 0; + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + } + if (particle->unk_34 >= 0xFF) { + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + var_r31->unk00 = 0xFF; + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + } + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (!var_r31->unk2C) { + break; + } + } + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00_s16 == 1) { + var_f31 = ((frand() & 0xFF) * 0x168) >> 8; + var_f30 = 0.5 + (1.5 * (rand8() / 256.0)); + var_r31->unk08.x = 2.5 * (var_f30 * sind(var_f31)); + var_r31->unk08.y = 4.5 * (var_f30 * cosd(var_f31)); + var_r31->unk08.y *= var_r31->unk08.y < 0.0f ? -0.5 : 1.0; + var_r31->unk08.x = (12.0 * (rand8() / 255.0)) - 6.0; + var_r31->unk08.y = 12.0 * (rand8() / 255.0); + var_r31->unk08.z = (rand8() / 255.0) - 0.5; + var_r31->unk34.x = 2.0f * var_r31->unk08.x; + var_r31->unk34.y = 10.0f + (2.0f * var_r31->unk08.y); + var_r31->unk34.z = 50.0f + (2.0f * var_r31->unk08.z); + var_r31->unk40.r = 0xFF; + var_r31->unk40.g = 0xFF; + var_r31->unk40.b = 0xFF; + var_r31->unk40.a = 0xFF; + var_r31->unk2C = 50.0f; + } + if (var_r31->unk00_s16 < 0xF0) { + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + var_r31->unk08.x *= 0.9f; + var_r31->unk08.z *= 0.9f; + var_r31->unk08.y *= 0.9f; + var_r31->unk40.a = (var_r31->unk40.a * 0xB) / 12; + var_r31->unk2C += 1.01f; + if (var_r31->unk2C <= 0.0f) { + var_r31->unk2C = 0.0f; + } + if (var_r31->unk40.a == 0) { + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + } + var_r31->unk00_s16 += var_r31->unk00_s16 < 0x8000; + if (var_r31->unk00_s16 >= 0xF0) { + var_r31->unk40.a = 0; + var_r31->unk2C = 0.0f; + } + } +} + +void fn_1_8538(omObjData *var_r30) +{ + Vec sp60; + Vec sp54; + void *sp48; + + M449DllWork *var_r31; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + M449DllWork *var_r25; + s32 var_r24; + s32 var_r23; + + var_r26 = -1; + var_r24 = -1; + var_r31 = var_r30->data; + sp48 = (&lbl_1_bss_54)[1 - var_r30->work[0]]->data; + memset(var_r31, 0, sizeof(M449DllWork)); + var_r31->unk_00 = var_r30->work[0]; + if ((GWPlayerCfg->character == 0xC) || (GWPlayerCfg[1].character == 0xC) || (GWPlayerCfg[2].character == 0xC) + || (GWPlayerCfg[3].character == 0xC)) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (GWPlayerCfg[var_r29].character == 0xC) { + var_r26 = var_r29; + } + } + var_r24 = GWPlayerCfg[var_r26].group == 0 ? 1 : 0; + if (var_r31->unk_00 == 0) { + var_r31->unk_04 = var_r24; + var_r23 = var_r26; + } + else { + var_r31->unk_04 = var_r26; + var_r23 = var_r24; + } + } + else { + var_r31->unk_04 = GWPlayerCfg[0].group == var_r31->unk_00 + ? 0 + : (GWPlayerCfg[1].group == var_r31->unk_00 + ? 1 + : (GWPlayerCfg[2].group == var_r31->unk_00 ? 2 : (GWPlayerCfg[3].group == var_r31->unk_00 ? 3 : 4))); + var_r23 = GWPlayerCfg->group == (1 - var_r31->unk_00) + ? 0 + : (GWPlayerCfg[1].group == (1 - var_r31->unk_00) + ? 1 + : (GWPlayerCfg[2].group == (1 - var_r31->unk_00) ? 2 : (GWPlayerCfg[3].group == (1 - var_r31->unk_00) ? 3 : 4))); + } + if (var_r31->unk_04 == 4) { + OSReport("m448:wrong player group\n"); + var_r31->unk_04 = var_r31->unk_00; + } + var_r31->unk_08 = ((var_r26 != -1) && (var_r31->unk_00 == 1)) != 0 ? -1 : GWPlayerCfg[var_r31->unk_04].character; + var_r31->unk_0C = ((var_r31->unk_08 == -1) || (GWPlayerCfg[var_r31->unk_04].iscom != 0)) != 0 ? -1 : GWPlayerCfg[var_r31->unk_04].pad_idx; + var_r31->unk_10 = var_r31->unk_0C != -1 ? 0 : GWPlayerCfg[var_r31->unk_04].diff; + var_r31->unk_18 = -1; + var_r31->unk_1C = 0; + var_r31->unk_48 = lbl_1_rodata_10[var_r31->unk_10]; + var_r31->unk_4C = 0; + var_r31->unk_214 = -1; + if (var_r31->unk_08 != -1) { + var_r30->model[0] = CharModelCreate(var_r31->unk_08, 1); + } + else { + var_r30->model[0] = Hu3DModelCreateFile(0x50001B); + } + Hu3DModelObjPosGet(lbl_1_bss_50->model[1], lbl_1_data_E8[var_r31->unk_00 + 2], &sp54); + omSetTra(var_r30, sp54.x, sp54.y, sp54.z); + if (var_r30->trans.x == -360.0f) { + var_r30->trans.x = -350.0f; + } + omSetRot(var_r30, 0.0f, (var_r31->unk_00 * 0xB4) + 0x5A, 0.0f); + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r31->unk_08 != -1) { + var_r30->motion[var_r29] + = CharModelMotionCreate(var_r31->unk_08, lbl_1_data_90[var_r29] + (lbl_1_data_B0[var_r29] != 0 ? var_r31->unk_08 : 0)); + } + else { + var_r30->motion[var_r29] = Hu3DJointMotionFile(var_r30->model[0], lbl_1_data_A0[var_r29]); + } + } + Hu3DMotionSet(var_r30->model[0], var_r30->motion[0]); + Hu3DMotionTimeSet(var_r30->model[0], 20.0f); + Hu3DModelAttrSet(var_r30->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30->model[0]); + CharModelVoiceEnableSet(var_r31->unk_08, var_r30->motion[3], 0); + lbl_1_data_23C[var_r31->unk_00] = var_r31->unk_00 == 0 ? (rand8() % 3) : ((lbl_1_data_23C[0] + ((rand8() % 2)) + 1) % 3); + if (var_r31->unk_00 == 0) { + for (var_r29 = 0; var_r29 < 3; var_r29++) { + M449DllUnkStruct sp6C = { + { 0x0050000B, 0x0050000D, 0x0050000F, 0x00500011 }, + { 0x0050000C, 0x0050000E, 0x00500010, 0x00500012 }, + }; + do { + while (TRUE) { + var_r27 = rand8() % 4; + if (lbl_1_data_230[0] == var_r27) { + continue; + } + if (lbl_1_data_230[1] == var_r27) { + continue; + } + break; + } + } while (lbl_1_data_230[2] == var_r27); + lbl_1_data_230[var_r29] = var_r27; + var_r30->model[var_r29 + 1] = Hu3DModelCreateFile(sp6C.unk_00[var_r27]); + var_r30->model[var_r29 + 4] = Hu3DModelCreateFile(sp6C.unk_10[var_r27]); + } + var_r30->model[11] = Hu3DModelCreateFile(0x500013); + } + else { + for (var_r29 = 0; var_r29 < 3; var_r29++) { + var_r30->model[var_r29 + 1] = Hu3DModelLink(lbl_1_bss_54->model[var_r29 + 1]); + var_r30->model[var_r29 + 4] = Hu3DModelLink(lbl_1_bss_54->model[var_r29 + 4]); + } + var_r30->model[11] = Hu3DModelLink(lbl_1_bss_54->model[11]); + } + Hu3DModelObjPosGet(lbl_1_bss_50->model[1], lbl_1_data_E8[var_r31->unk_00], &sp54); + for (var_r29 = 0; var_r29 < 3; var_r29++) { + if (var_r29 != 0) { + Hu3DModelAttrSet(var_r30->model[var_r29 + 1], HU3D_ATTR_DISPOFF); + } + Hu3DModelPosSet(var_r30->model[var_r29 + 1], sp54.x, sp54.y, sp54.z); + Hu3DModelPosSet(var_r30->model[var_r29 + 4], sp54.x, sp54.y, sp54.z); + Hu3DModelShadowSet(var_r30->model[var_r29 + 1]); + } + Hu3DModelPosSet(var_r30->model[11], sp54.x, sp54.y, sp54.z); + Hu3DModelShadowSet(var_r30->model[11]); + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r29 == 0) { + var_r30->model[var_r29 + 0xC] = Hu3DModelCreateFile(var_r31->unk_00 == 0 ? 0x500014 : 0x500015); + } + else { + var_r30->model[var_r29 + 0xC] = Hu3DModelLink(var_r30->model[12]); + } + Hu3DModelObjPosGet(lbl_1_bss_50->model[1], lbl_1_data_E8[var_r31->unk_00], &sp54); + Hu3DModelObjPosGet(var_r30->model[4], lbl_1_data_138[var_r29], &sp60); + var_r31->unk_60[var_r29] = sp60.x - sp54.x; + var_r31->unk_80[var_r29] = sp60.z - sp54.z; + var_r31->unk_90[var_r29] = var_r31->unk_B0[var_r29] = 0.0f; + Hu3DModelPosSet(var_r30->model[var_r29 + 0xC], sp60.x, sp60.y, sp60.z); + } + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r28 = var_r29 + 7; + Hu3DModelObjPosGet(var_r30->model[4], lbl_1_data_138[var_r29], &sp60); + var_r30->model[var_r28] = Hu3DParticleCreate(HuSprAnimRead(HuDataReadNum(0x120003, 0x10000000)), 0x32); + Hu3DModelPosSet(var_r30->model[var_r28], 2000.0f, -2000.0f, -2000.0f); + Hu3DModelScaleSet(var_r30->model[var_r28], 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(var_r30->model[var_r28], 3); + Hu3DModelAttrReset(var_r30->model[var_r28], HU3D_ATTR_DISPOFF); + Hu3DParticleColSet(var_r30->model[var_r28], 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(var_r30->model[var_r28], 5.0f); + Hu3DParticleHookSet(var_r30->model[var_r28], fn_1_7F94); + Hu3DParticleCntSet(var_r30->model[var_r28], 0xFF); + } + if (var_r31->unk_00 == 1) { + for (var_r29 = 0; var_r29 < 0x12; var_r29++) { + s32 sp4C[2] = { 0x64, 0x1E5 }; + s32 spD4[0x12] = { 0, 0, -14, 16, 46, -14, 16, 46, -50, 0, 0, -14, 16, 46, -14, 16, 46, -50 }; + s32 sp8C[0x12] = { 0, 0, -2, -2, -2, -2, -2, -2, 0, 0, 0, -2, -2, -2, -2, -2, -2, 0 }; + if ((lbl_1_data_0[var_r29] + 0xFF9F0000) == 0) { + var_r25 = (&lbl_1_bss_54)[var_r29 == 8 ? 0 : (var_r29 == 0x11 ? 1 : 0)]->data; + lbl_1_data_48[var_r29] = espEntry(var_r25->unk_08 == -1 ? 0x500018 : (var_r25->unk_08 + lbl_1_data_0[var_r29]), 0, 0); + } + else { + lbl_1_data_48[var_r29] = espEntry(lbl_1_data_0[var_r29], 0, 0); + } + espDrawNoSet(lbl_1_data_48[var_r29], 0); + espAttrSet(lbl_1_data_48[var_r29], HUSPR_ATTR_NOANIM | HUSPR_ATTR_DISPOFF); + espBankSet(lbl_1_data_48[var_r29], 0); + espPriSet(lbl_1_data_48[var_r29], 0x80 - var_r29); + espPosSet(lbl_1_data_48[var_r29], spD4[var_r29] + sp4C[var_r29 < 9 ? 0 : 1], sp8C[var_r29] + 0x46); + if ((var_r29 >= 9 ? (var_r29 - 9) : var_r29) != 0) { + (void)var_r29; + continue; + } + else { + espTPLvlSet(lbl_1_data_48[var_r29], 0.5f); + espColorSet(lbl_1_data_48[var_r29], 0, 0, 0); + } + } + } + var_r30->func = fn_1_758; +} + +void fn_1_94F8(omObjData *var_r31) +{ + lbl_1_bss_48 = 0x3E8; + lbl_1_bss_4C = 0; + lbl_1_bss_40 = 0; + lbl_1_bss_3C = 0; + if (lbl_1_bss_64[0].unk_00 < 2) { + lbl_1_bss_64[0].unk_04[lbl_1_bss_64[0].unk_00] = 0.0f; + lbl_1_bss_64[0].unk_00++; + } + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + var_r31->func = fn_1_7544; +} + +void ObjectSetup(void) +{ + s32 var_r31; + omObjData *var_r30; + + OSReport("******* M449 ObjectSetup *********\n"); + lbl_1_bss_38 = omInitObjMan(0x258, 0x2000); + omGameSysInit(lbl_1_bss_38); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 25000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + CZoom = 2500.0f; + Center.x = 0.0f; + Center.y = 0.0f; + Center.z = -100.0f; + CRot.x = -40.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + { + Vec sp3C = { 0.0f, 0.0f, 0.0f }; + Vec sp30 = { -0.5850064f, -0.788462f, 0.1545085f }; + Vec sp24; + Vec sp18; + Vec spC; + GXColor sp8 = { 0xFF, 0xFF, 0xFF, 0xFF }; + lbl_1_bss_34 = Hu3DGLightCreateV(&sp3C, &sp30, &sp8); + Hu3DGLightStaticSet(lbl_1_bss_34, 1); + Hu3DGLightInfinitytSet(lbl_1_bss_34); + sp24.x = 0.0f; + sp24.y = 10000.0f; + sp24.z = 0.0f; + sp18.x = 0.0f; + sp18.y = 1.0f; + sp18.z = 0.0f; + spC.x = 0.0f; + spC.y = 0.0f; + spC.z = 0.5f; + Hu3DShadowCreate(6.0f, 9000.0f, 11500.0f); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&sp24, &sp18, &spC); + } + Hu3DShadowSizeSet(0xE0); + lbl_1_data_228 = -1; + lbl_1_bss_30 = -1; + HuWinInit(1); + lbl_1_bss_50 = omAddObjEx(lbl_1_bss_38, 0x64, 3, 0, 1, fn_1_7ECC); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30 = (&lbl_1_bss_54)[var_r31] = omAddObjEx(lbl_1_bss_38, 0x65, 0x14, 4, 0, fn_1_8538); + var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M449DllWork), MEMORY_DEFAULT_NUM); + var_r30->work[0] = var_r31; + } + lbl_1_bss_5C = omAddObjEx(lbl_1_bss_38, 0x7FDA, 0, 0, -1, omOutView); + lbl_1_bss_60 = omAddObjEx(lbl_1_bss_38, 0x67, 0, 0, -1, fn_1_94F8); +} + +void fn_1_9A38(omObjData *arg0) +{ + void *sp8; + s32 var_r31; + + if (WipeStatGet() == 0) { + for (var_r31 = 0; var_r31 < 2; var_r31++) { + sp8 = (&lbl_1_bss_54)[var_r31]->data; + } + if (lbl_1_data_228 >= 0) { + MGSeqKill(lbl_1_data_228); + } + MGSeqKillAll(); + HuAudAllStop(); + omOvlReturnEx(1, 1); + } +} From aa7583ad7238c32dad0d1d9098f43e4a6233faea Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Thu, 2 Jan 2025 22:34:57 +0100 Subject: [PATCH 227/311] Set m449Dll to matching --- configure.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.py b/configure.py index 9d07dc00..de9495b7 100644 --- a/configure.py +++ b/configure.py @@ -1233,7 +1233,7 @@ config.libs = [ Rel( "m449Dll", # Kareening Koopa objects={ - Object(NonMatching, "REL/m449Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m449Dll/main.c"), }, ), Rel( From 37e9989b96b1c4d36239d2e21f3543bf078c4a78 Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Thu, 2 Jan 2025 18:19:06 -0500 Subject: [PATCH 228/311] match m424Dll/ball.c (#503) * get halfway through m424/ball * get halfway through m424/ball * get halfway through m424/ball * complete m424/ball * fix merge errors * Revert "complete m424/ball" This reverts commit acbc3196c585acc5e6328e53f4aaf31e1b52db73. --- .vscode/settings.json | 4 +- src/REL/m424Dll/ball.c | 1734 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1737 insertions(+), 1 deletion(-) create mode 100644 src/REL/m424Dll/ball.c diff --git a/.vscode/settings.json b/.vscode/settings.json index 5343bec3..a155f802 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -34,7 +34,9 @@ "corecrt_math.h": "c", "corecrt.h": "c", "vcruntime.h": "c", - "hsfmotion.h": "c" + "hsfmotion.h": "c", + "m424dll.h": "c", + "chrman.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { diff --git a/src/REL/m424Dll/ball.c b/src/REL/m424Dll/ball.c new file mode 100644 index 00000000..5deb34fc --- /dev/null +++ b/src/REL/m424Dll/ball.c @@ -0,0 +1,1734 @@ +#include "REL/m424Dll.h" + +#include "ext_math.h" +#include "string.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/pad.h" +#include "game/sprite.h" + +// STRUCT +typedef struct _M424DllBallStruct { + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; + u8 unk8; + u8 unk9; + u8 unkA; + char unkB[0x1]; + u8 unkC; + u8 unkD; + u8 unkE; + s16 unk10; + s16 unk12; + s16 unk14; + s16 unk16; + s16 unk18; + s16 unk1A; + f32 unk1C; + f32 unk20; + f32 unk24; + f32 unk28; + f32 unk2C; + f32 unk30; + Vec unk34; + Vec unk40; + Vec unk4C; + Vec unk58; + void* unk64; // sizeof 0x40 + char unk68[0x3C]; + u8 unkA4; + void* unkA8; // sizeof 0x40 + char unkAC[0x3C]; + s32 unkE8; + s32 unkEC; +} M424DllBallStruct; // sizeof 0xF0 + +typedef struct _M424DllBallStruct2 { + omObjData* unk0; + u8 unk4; + u8 unk5; + u8 unk6; + u16 unk8; + u16 unkA; + Mtx unkC; + Vec unk3C; + Vec unk48; + Vec unk54; + Vec unk60; + Vec unk6C; + Vec unk78; + Vec unk84; + u8 unk90; + u8 unk91; +} M424DllBallStruct2; // sizeof 0x94 + +typedef struct _M424DllBallStruct3 { + u8 unk0; + M424DllBallStruct2* unk4; + M424DllBallStruct2* unk8; +} M424DllBallStruct3; + +typedef struct _M424BallStruct4 { + f32 unk0; + f32 unk4; + f32 unk8; + char unkC[0x8]; + f32 unk14; + f32 unk18; + char unk1C[0x8]; + f32 unk24; + f32 unk28; +} M424BallStruct4; + +// BSS +void* lbl_1_bss_5BC[0x20]; +omObjData* lbl_1_bss_5AC[4]; +omObjData* lbl_1_bss_594[6]; +M424DllBallStruct2 lbl_1_bss_60[9]; +s32 lbl_1_bss_5C; +u8 lbl_1_bss_58; + +// PROTO +f32 fn_1_25C0(void); +void fn_1_28A0(omObjData* object); +void fn_1_2E3C(omObjData* object); +void fn_1_31C0(omObjData* object); +void fn_1_37FC(omObjData* object); +void fn_1_4220(omObjData* object); +void fn_1_469C(omObjData* object); +u8 fn_1_48D0(omObjData* object, u8, u8); +void fn_1_4A90(s16); +void fn_1_6038(void); +void* fn_1_6078(s32); +void fn_1_61AC(void); +s32 fn_1_627C(void); +void fn_1_6230(s16, Mtx); +void fn_1_62D0(s32, u32*); +f32 fn_1_640C(f32, f32, f32); +f32 fn_1_6D10(Vec, Vec, f32, Vec, Vec, f32); +f32 fn_1_709C(Vec, Vec, f32, f32); +f32 fn_1_7420(Vec, Vec, f32, f32); +void fn_1_77C4(Vec, Vec, Vec, f32, Vec*, Vec*); +void fn_1_79FC(Vec*, Vec*, f32, Vec*, Vec*, f32, f32); +void fn_1_7CA0(Vec, Vec, f32, Vec*); +void fn_1_8924(u8, u8); +void fn_1_8AA8(s32, s32); +s32 fn_1_8C78(s32, s32); +s32 fn_1_907C(Vec*, Vec*); + + +void fn_1_2720(Process* arg0) { + u32 sp8[10]; + omObjData* var_r30; + s32 temp_r28; + s32 var_r29; + s32 var_r31; + + temp_r28 = frand() & 0x1F; + for (var_r31 = 0; var_r31 < temp_r28; var_r31++) { + fn_1_627C(); + } + fn_1_62D0(8, sp8); + sp8[8] = 8; + + for (var_r31 = 0, var_r29 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[var_r31].group != 0) { + var_r30 = omAddObjEx(arg0, 0x3E, 3, 11, 0, fn_1_28A0); + lbl_1_bss_5AC[var_r29] = var_r30; + var_r30->work[0] = var_r31; + var_r30->work[1] = sp8[var_r29]; + var_r29++; + } + } + + for (var_r31 = 0; var_r31 < 6; var_r29++, var_r31++) { + var_r30 = omAddObjEx(arg0, 0x3F, 2U, 5U, 0, fn_1_4220); + lbl_1_bss_594[var_r31] = var_r30; + var_r30->work[0] = var_r31; + var_r30->work[1] = sp8[var_r29]; + } + Hu3DLayerHookSet(7, fn_1_4A90); + fn_1_6038(); +} + +void fn_1_2880(void) { + fn_1_61AC(); +} + +u32 lbl_1_data_150[11] = { + 0, 2, 3, 8, 10, + 9, 20, 22, 23, 24, + 0x370021 +}; +Vec lbl_1_data_17C[4] = { + { -100.0f, 200.0f, -100.0f }, + { 300.0f, 200.0f, -100.0f }, + { -300.0f, 200.0f, 300.0f }, + { 300.0f, 200.0f, 0.0f } +}; + +void fn_1_28A0(omObjData* object) { + Vec sp8; + f32 temp_f31; + f32 temp_f30; + M424DllBallStruct* var_r31; + s32 var_r29; + s32 temp_r28; + s32 var_r27; + + object->data = var_r31 = fn_1_6078(0xF0); + memset(var_r31, 0, 0xF0); + var_r31->unk0 = object->work[0]; + var_r31->unk1 = GWPlayerCfg[var_r31->unk0].character; + var_r31->unk2 = GWPlayerCfg[var_r31->unk0].group; + var_r31->unk3 = 0; + var_r31->unk4 = GWPlayerCfg[var_r31->unk0].pad_idx; + var_r31->unk5 = GWPlayerCfg[var_r31->unk0].iscom; + var_r31->unk6 = GWPlayerCfg[var_r31->unk0].diff; + var_r31->unk18 = var_r31->unk1A = 0; + var_r31->unk30 = 1.0f; + var_r31->unk7 = 1; + var_r31->unkC = 1; + var_r31->unkD = 0; + var_r31->unkA = 0; + var_r31->unkA4 = 0; + var_r31->unkE = 0; + memset(&var_r31->unk64, 0, 0x40); + var_r31->unkE8 = 0; + var_r31->unkEC = -1; + temp_r28 = object->work[1]; + temp_f31 = 40.0f; + temp_f31 = (temp_f31 * temp_r28) + (temp_f31 * (fn_1_627C() / 65536.0f)) + 105.0f; + temp_f30 = 125.0f; + temp_f30 = (temp_f30 * (temp_r28 & 1)) + (100.0f + (250.0f + (temp_f30 * (fn_1_627C() / 65536.0f)))); + sp8.x = temp_f30 * sind(temp_f31); + sp8.y = 200.0f; + sp8.z = temp_f30 * cosd(temp_f31); + var_r31->unk34 = sp8; + var_r31->unk4C.x = var_r31->unk4C.y = var_r31->unk4C.z = 0.0f; + var_r31->unk40.x = var_r31->unk40.y = var_r31->unk40.z = 0.0f; + var_r31->unk1C = 0.8f; + var_r31->unk24 = var_r31->unk40.y; + var_r31->unk2C = 1.0f; + var_r31->unk28 = 0.0f; + var_r31->unk20 = 0.0f; + memset(&var_r31->unkA8, 0, 0x40); + object->model[0] = var_r27 = CharModelCreate(var_r31->unk1, 8); + Hu3DModelAttrSet(var_r27, 0x40000001); + CharModelStepTypeSet(var_r31->unk1, 1); + CharModelLayerSetAll(2); + for (var_r29 = 0; var_r29 < 11; var_r29++) { + if (lbl_1_data_150[var_r29] + 0xFFC90000 != 0x21) { + object->motion[var_r29] = CharModelMotionCreate(var_r31->unk1, lbl_1_data_150[var_r29]); + } else if (var_r31->unk1 == 5) { + object->motion[var_r29] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(var_r31->unk1 + lbl_1_data_150[var_r29], 0x10000000, HEAP_DATA)); + } else { + object->motion[var_r29] = object->motion[0]; + } + if (lbl_1_data_150[var_r29] == 0x16 || lbl_1_data_150[var_r29] == 0x14) { + CharModelVoiceEnableSet(var_r31->unk1, object->motion[var_r29], 0); + } + } + CharModelMotionDataClose(var_r31->unk1); + CharModelMotionSet(var_r31->unk1, object->motion[var_r31->unk18]); + omSetTra(object, var_r31->unk34.x, var_r31->unk34.y, var_r31->unk34.z); + omSetRot(object, var_r31->unk40.x, var_r31->unk40.y, var_r31->unk40.z); + omSetSca(object, var_r31->unk1C, var_r31->unk1C, var_r31->unk1C); + object->model[1] = fn_1_48D0(object, var_r31->unk1, 1); + object->func = fn_1_2E3C; +} + +void fn_1_2E38(void) {} + +void fn_1_2E3C(omObjData* object) { + s32 temp_r29; + M424DllBallStruct* temp_r31; + + temp_r29 = object->model[0]; + temp_r31 = object->data; + if (temp_r31->unk7 != 0) { + if ((fn_1_FE0() == 4) && ((temp_r31->unk7 & 2) == 0)) { + if (temp_r31->unk5 != 0) { + fn_1_31C0(object); + } else { + temp_r31->unk10 = HuPadStkX[temp_r31->unk4]; + temp_r31->unk12 = HuPadStkY[temp_r31->unk4]; + temp_r31->unk14 = HuPadBtnDown[temp_r31->unk4]; + temp_r31->unk16 = HuPadBtn[temp_r31->unk4]; + } + } else { + temp_r31->unk10 = temp_r31->unk12 = 0; + temp_r31->unk14 = temp_r31->unk16 = 0; + } + switch (temp_r31->unk8) { + case 1: + temp_r31->unkC = 1; + if (fn_1_FE0() == 6) { + fn_1_8924(object->model[1], 5); + } + break; + case 5: + temp_r31->unkC = 0; + temp_r31->unk1C *= 1.1f; + if (temp_r31->unk1C >= 1.0f) { + temp_r31->unk1C = 1.0f; + } + temp_r31->unk40.y = fn_1_640C(temp_r31->unk40.y, 0.0f, 0.9f); + if (temp_r31->unk34.y <= 200.0f) { + temp_r31->unk34.y = 200.0f; + temp_r31->unkC = 1; + } + Hu3DModelShadowSet(temp_r29); + break; + case 4: + temp_r31->unk20 = 0.0f; + temp_r31->unk4C.y = 0.0f; + temp_r31->unk7 |= 2; + break; + case 6: + temp_r31->unk10 = temp_r31->unk12 = 0; + temp_r31->unk14 = temp_r31->unk16 = 0; + temp_r31->unk1C = 1.0f; + temp_r31->unk40.y = temp_r31->unk24 = 0.0f; + if (temp_r31->unk34.y <= 50.0f) { + temp_r31->unkC = 1; + temp_r31->unk20 = 0.0f; + temp_r31->unk4C.y = 0.0f; + temp_r31->unk18 = 7; + temp_r31->unk34.x += fn_1_25C0(); + temp_r31->unk34.y = 50.0f; + } else { + temp_r31->unkC = 0; + temp_r31->unk20 += 3.0f; + temp_r31->unk4C.y += -1.46f; + if (temp_r31->unk1 != 5) { + temp_r31->unk18 = 6; + } else { + temp_r31->unk18 = 0xA; + } + } + break; + } + if ((fn_1_FE0() == 7) && ((temp_r31->unk7 & 2) == 0)) { + temp_r31->unk18 = 8; + } + fn_1_37FC(object); + } +} + +void fn_1_31C0(omObjData* object) { + Vec sp10; + s32 spC; + s16 sp8; + f32 temp_f31; + f32 temp_f30; + M424DllBallStruct* temp_r31; + s16 temp_r30; + s16 var_r29; + s16 var_r28; + s16 var_r26; + s16 var_r25; + + temp_r31 = object->data; + spC = object->model[0]; + sp8 = temp_r31->unk18; + temp_r30 = temp_r31->unk6; + + var_r29 = var_r28 = var_r26 = var_r25 = 0; + switch (temp_r31->unk8) { + case 2: + break; + case 1: + if ((fn_1_627C() & 0x1F) == 0) { + temp_f31 = atan2d(temp_r31->unk34.x, temp_r31->unk34.z); + temp_f31 += ((30.0f - (5.0f * temp_r30)) * ((fn_1_627C() - 0x8000) / 32768.0f)); + sp10.x = sind(temp_f31); + sp10.z = cosd(temp_f31); + temp_f30 = fn_1_213C(); + if ((temp_f31 > 70.0f) && (temp_f31 < 100.0f)) { + if (temp_f30 < 0.0f) { + var_r29 = (-sp10.z * (48.0f + (6.0f * temp_r30))); + var_r28 = (-sp10.x * (48.0f + (6.0f * temp_r30))); + } else { + var_r29 = (sp10.z * (48.0f + (6.0f * temp_r30))); + var_r28 = (sp10.x * (48.0f + (6.0f * temp_r30))); + } + } else if (temp_f30 < 0.0f) { + var_r29 = (sp10.z * (48.0f + (6.0f * temp_r30))); + var_r28 = (sp10.x * (48.0f + (6.0f * temp_r30))); + } else { + var_r29 = (-sp10.z * (48.0f + (6.0f * temp_r30))); + var_r28 = (-sp10.x * (48.0f + (6.0f * temp_r30))); + } + } else { + var_r29 = temp_r31->unk10; + var_r28 = temp_r31->unk12; + } + break; + case 3: + if ((fn_1_627C() & 0x1F) == 0) { + temp_f31 = 180.0f * ((fn_1_627C() - 0x8000) / 32768.0f); + sp10.x = sind(temp_f31); + sp10.z = cosd(temp_f31); + var_r29 = (48.0f * sp10.x); + var_r28 = (48.0f * sp10.z); + } else { + var_r29 = temp_r31->unk10; + var_r28 = temp_r31->unk12; + } + break; + } + temp_r31->unk10 = var_r29; + temp_r31->unk12 = var_r28; + temp_r31->unk14 = var_r26; + temp_r31->unk16 = var_r25; +} + +void fn_1_37FC(omObjData* object) { + s16 spA; + s16 sp8; + f32 var_f30; + f32 var_f28; + f32 temp_f27; + M424DllBallStruct* temp_r31; + s16 temp_r30; + s16 temp_r29; + s16 var_r28; + s16 var_r27; + s32 temp_r25; + + var_f30 = 1.0f; + temp_r31 = object->data; + temp_r25 = object->model[0]; + var_r28 = temp_r31->unk18; + temp_r31->unk58 = temp_r31->unk34; + temp_r30 = temp_r31->unk10; + temp_r29 = temp_r31->unk12; + spA = temp_r31->unk14; + sp8 = temp_r31->unk16; + switch (temp_r31->unk18) { + case 0: + case 1: + case 2: + temp_r31->unk20 = (0.025f * sqrtf((temp_r30 * temp_r30) + (temp_r29 * temp_r29))); + if (temp_r31->unk20 > 0.01f) { + if (temp_r31->unk20 >= 6.0f) { + var_r28 = 2; + var_r27 = 1; + } else { + var_r28 = 1; + var_r27 = 1; + } + var_f28 = atan2d(temp_r30, -temp_r29); + temp_r31->unk40.y = fn_1_640C(temp_r31->unk40.y, var_f28, 0.5f); + temp_r31->unk24 = temp_r31->unk40.y; + temp_r31->unk28++; + if (temp_r31->unk28 >= (0.5f * temp_r31->unk2C)) { + temp_r31->unk28 -= 0.5f * temp_r31->unk2C; + } + temp_r31->unk20 *= 1.0 + 0.25 * cosd(90.0f * (temp_r31->unk28 / (0.5f * temp_r31->unk2C))); + } else { + temp_r31->unk28 = 0.0f; + temp_r31->unk20 = 0.0f; + var_r28 = 0; + var_r27 = 1; + } + if (temp_r31->unkC != 0) { + temp_r31->unk4C.y = -2.4333334f; + } else { + temp_r31->unk4C.y += -2.4333334f; + } + break; + case 3: + var_r27 = 0; + if ((Hu3DData[temp_r25].unk_0C == -1) && (CharModelMotionEndCheck(temp_r31->unk1) != 0)) { + temp_r31->unk4C.y += -2.4333334f; + } else { + temp_r31->unk4C.y = 0.0f; + } + if (temp_r31->unkC != 0) { + if (temp_r31->unkD != 0) { + temp_r31->unk4C.y = 0.0f; + temp_r31->unkD = 0U; + var_r28 = 5; + var_r27 = 0; + } else { + temp_r31->unk4C.y *= -0.1f; + temp_r31->unkC = 0U; + var_r28 = 4; + var_r27 = 0; + } + } + break; + case 4: + temp_r31->unk4C.y += -2.4333334f; + if ((temp_r31->unkC != 0) && (CharModelMotionEndCheck(temp_r31->unk1) != 0)) { + var_r28 = 5; + var_r27 = 0; + } + break; + case 5: + if (CharModelMotionEndCheck(temp_r31->unk1) != 0) { + var_r28 = 0; + var_r27 = 1; + } + break; + case 6: + var_r28 = 6; + var_r27 = 0; + if (temp_r31->unk1 == 7) { + var_f30 = 0.85f; + temp_r31->unk30 = 0.9f; + } + break; + case 7: + var_r28 = 7; + var_r27 = 1; + if (temp_r31->unkE8 == 1) { + temp_r31->unkEC = HuAudCharVoicePlay(temp_r31->unk1, 0x11A); + } else if ((temp_r31->unkE8 > 90.0f) && (temp_r31->unkEC != -1)) { + HuAudFXStop(temp_r31->unkEC); + temp_r31->unkEC = -1; + } + temp_r31->unkE8++; + break; + case 8: + case 9: + var_r27 = 0; + temp_r31->unk4C.y = -2.4333334f; + break; + case 10: + var_r28 = 10; + var_r27 = 4; + var_f30 = 0.8f; + temp_r31->unk30 = 0.85f; + if ((var_r28 == temp_r31->unk18) && (Hu3DMotionShiftIDGet(temp_r25) != -1)) { + temp_f27 = Hu3DMotionMaxTimeGet(temp_r25); + if (Hu3DMotionTimeGet(temp_r25) >= temp_f27) { + var_r28 = 7; + var_r27 = 1; + } + } + break; + } + if ((temp_r31->unk7 & 4) != 0) { + if ((temp_r31->unkA & 2) != 0) { + Hu3DModelAttrSet(temp_r25, 1); + } else { + Hu3DModelAttrReset(temp_r25, 1); + } + if (--temp_r31->unkA == 0) { + temp_r31->unk7 &= ~4; + } + } + temp_r31->unk4C.x = temp_r31->unk20 * sind(temp_r31->unk24); + temp_r31->unk4C.z = temp_r31->unk20 * cosd(temp_r31->unk24); + temp_r31->unk34.x += temp_r31->unk4C.x; + if (temp_r31->unkC == 0) { + temp_r31->unk34.y += temp_r31->unk4C.y; + } + temp_r31->unk34.z += temp_r31->unk4C.z; + if (var_r28 != temp_r31->unk1A) { + temp_r31->unk1A = var_r28; + temp_r31->unk18 = var_r28; + CharModelMotionShiftSet(temp_r31->unk1, object->motion[temp_r31->unk18], 0.0f, 8.0f, var_r27); + temp_r31->unk2C = CharModelMotionMaxTimeGet(temp_r31->unk1); + } + if (temp_r31->unk30 != var_f30) { + if (var_f30 > temp_r31->unk30) { + if ((temp_r31->unk30 += 0.05f) > var_f30) { + temp_r31->unk30 = var_f30; + } + } + if (var_f30 < temp_r31->unk30) { + if ((temp_r31->unk30 -= 0.05f) < var_f30) { + temp_r31->unk30 = var_f30; + } + } + temp_r31->unk1C = temp_r31->unk30; + } + omSetTra(object, temp_r31->unk34.x, temp_r31->unk34.y, temp_r31->unk34.z); + omSetRot(object, temp_r31->unk40.x, temp_r31->unk40.y, temp_r31->unk40.z); + omSetSca(object, temp_r31->unk1C, temp_r31->unk1C, temp_r31->unk1C); +} + +void fn_1_4220(omObjData* object) { + s32 sp14[3] = { 0x370013, 0x370014, 0x370015 }; + Vec sp8; + f32 temp_f31; + f32 temp_f30; + M424DllBallStruct* var_r31; + s32 var_r29; + s32 temp_r28; + s32 var_r27; + + object->model[0] = var_r27 = Hu3DModelCreateFile(0x370012); + + for (var_r29 = 0; var_r29 < 3; var_r29++) { + object->motion[var_r29] = Hu3DJointMotion(var_r27, HuDataSelHeapReadNum(sp14[var_r29], 0x10000000, HEAP_DATA)); + } + Hu3DMotionSet(var_r27, object->motion[0]); + Hu3DModelAttrSet(var_r27, 0x40000001); + var_r31 = fn_1_6078(0xF0); + object->data = var_r31; + memset(var_r31, 0, 0xF0); + var_r31->unk0 = object->work[0]; + var_r31->unk1 = 0xFF; + var_r31->unk2 = 0xFF; + var_r31->unk3 = 0; + var_r31->unk4 = 0xFF; + var_r31->unk5 = 0xFF; + var_r31->unk6 = 0xFF; + var_r31->unk18 = var_r31->unk1A = 0; + var_r31->unk7 = 1; + var_r31->unkC = 1; + var_r31->unkD = 0; + var_r31->unkA = 0; + var_r31->unkA4 = 0; + var_r31->unkE = 0; + memset(&var_r31->unk64, 0, 0x40); + temp_r28 = object->work[1]; + if (temp_r28 == 8) { + sp8.x = 350.0f; + sp8.y = 200.0f; + sp8.z = 50.0f; + } else { + temp_f31 = 40.0f; + temp_f31 = 105.0f + ((temp_f31 * temp_r28) + (temp_f31 * (fn_1_627C() / 65536.0f))); + temp_f30 = 125.0f; + temp_f30 = (temp_f30 * (temp_r28 & 1)) + (100.0f + (250.0f + (temp_f30 * (fn_1_627C() / 65536.0f)))); + sp8.x = temp_f30 * sind(temp_f31); + sp8.y = 200.0f; + sp8.z = temp_f30 * cosd(temp_f31); + } + var_r31->unk34 = sp8; + var_r31->unk4C.x = var_r31->unk4C.y = var_r31->unk4C.z = 0.0f; + var_r31->unk40.x = var_r31->unk40.y = var_r31->unk40.z = 0.0f; + var_r31->unk24 = var_r31->unk40.y; + var_r31->unk2C = 1.0f; + var_r31->unk28 = 0.0f; + var_r31->unk20 = 0.0f; + memset(&var_r31->unkA8, 0, 0x40); + omSetTra(object, var_r31->unk34.x, var_r31->unk34.y, var_r31->unk34.z); + omSetRot(object, var_r31->unk40.x, var_r31->unk40.y, var_r31->unk40.z); + omSetSca(object, 0.8f, 0.8f, 0.8f); + object->model[1] = fn_1_48D0(object, 8, 0); + object->func = fn_1_469C; +} + +fn_1_4698(void) {} + +void fn_1_469C(omObjData* object) { + s32 temp_r27; + s16 var_r28; + s16 var_r30; + M424DllBallStruct* temp_r31; + + temp_r31 = object->data; + temp_r27 = object->model[0]; + var_r30 = temp_r31->unk18; + temp_r31->unk58 = temp_r31->unk34; + + temp_r31->unk4C.x = temp_r31->unk4C.z = 0.0f; + switch (temp_r31->unk8) { /* irregular */ + case 3: + var_r30 = 2; + var_r28 = 1; + temp_r31->unk4C.y = -2.4333334f; + if ((fn_1_627C() & 0xF) == 0) { + temp_r31->unk24 = (180.0f * ((fn_1_627C() - 0x8000) / 32768.0f)); + } + break; + case 1: + var_r30 = 1; + var_r28 = 1; + temp_r31->unk4C.y = -2.4333334f; + if ((fn_1_627C() & 0x3F) == 0) { + temp_r31->unk24 = (180.0f * ((fn_1_627C() - 0x8000) / 32768.0f)); + } + break; + case 2: + var_r30 = 0; + var_r28 = 1; + + temp_r31->unk4C.x = temp_r31->unk4C.z = 0.0f; + temp_r31->unk4C.y += -0.97333336f; + break; + } + temp_r31->unk40.y = fn_1_640C(temp_r31->unk40.y, temp_r31->unk24, 0.95f); + if (var_r30 != temp_r31->unk1A) { + temp_r31->unk1A = var_r30; + temp_r31->unk18 = var_r30; + Hu3DMotionShiftSet(temp_r27, object->motion[temp_r31->unk18], 0.0f, 8.0f, (u32) var_r28); + temp_r31->unk2C = Hu3DMotionMaxTimeGet(temp_r31->unk1); + } +} + +u8 fn_1_48D0(omObjData* object, u8 arg1, u8 arg2) { + M424DllBallStruct2* temp_r31; + s32 var_r30; + s32 var_r28; + + var_r28 = lbl_1_bss_58; + lbl_1_bss_58++; + temp_r31 = &lbl_1_bss_60[var_r28]; + memset(temp_r31, 0, 0x94); + temp_r31->unk0 = object; + var_r30 = Hu3DModelCreate(HuDataSelHeapReadNum((arg1 * 2) + 0x370000, 0x10000000, HEAP_DATA)); + temp_r31->unk8 = var_r30; + Hu3DModelLayerSet(var_r30, 2); + Hu3DModelShadowMapSet(var_r30); + Hu3DModelAttrSet(var_r30, 0x20000U); + Hu3DModelHiliteMapSet(var_r30, HuSprAnimRead(HuDataReadNum(0x370016, 0x10000000))); + var_r30 = Hu3DModelCreate(HuDataSelHeapReadNum((arg1 * 2) + 0x370001, 0x10000000, HEAP_DATA)); + temp_r31->unkA = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelShadowSet(var_r30); + PSMTXIdentity(temp_r31->unkC); + temp_r31->unk3C.x = object->trans.x; + temp_r31->unk3C.y = 100.0f + object->trans.y; + temp_r31->unk3C.z = object->trans.z; + temp_r31->unk54 = temp_r31->unk3C; + temp_r31->unk6C.x = temp_r31->unk6C.y = temp_r31->unk6C.z = 0.0f; + temp_r31->unk5 = arg2; + temp_r31->unk4 = 2; + temp_r31->unk6 = 0; + if (arg2 != 0) { + temp_r31->unk91 = arg1; + } else { + temp_r31->unk91 = 0xFFU; + } + return var_r28; +} + +void fn_1_4A90(s16 arg0) { + Mtx sp50; + Mtx sp20; + Vec sp14; + Vec sp8; + f32 var_f31; + f32 var_f30; + M424DllBallStruct2* var_r31; + M424DllBallStruct* temp_r30; + s32 var_r29; + + if (omPauseChk() == 0) { + var_r31 = lbl_1_bss_60; + var_f31 = fn_1_213C(); + mtxRot(sp20, 0.0f, var_f31, 0.0f); + + for (var_r29 = 0; var_r29 < lbl_1_bss_58; var_r29++, var_r31++) { + temp_r30 = var_r31->unk0->data; + var_r31->unk48 = var_r31->unk54; + var_r31->unk60 = var_r31->unk48; + var_r31->unk78.x = var_r31->unk78.y = var_r31->unk78.z = 0.0f; + switch (var_r31->unk4) { + case 1: + PSMTXTrans(sp50, var_r31->unk3C.x, var_r31->unk3C.y, var_r31->unk3C.z); + PSMTXConcat(sp20, sp50, sp50); + var_r31->unk48.x = sp50[0][3]; + var_r31->unk48.y = sp50[1][3]; + var_r31->unk48.z = sp50[2][3]; + PSVECSubtract(&var_r31->unk48, &var_r31->unk3C, &var_r31->unk78); + PSVECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); + PSVECAdd(&temp_r30->unk4C, &sp14, &var_r31->unk84); + PSVECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); + var_r31->unk84.y = 0.0f; + var_r31->unk4 = 2; + break; + case 3: + PSVECSubtract(&var_r31->unk3C, &var_r31->unk60, &var_r31->unk6C); + var_r31->unk84 = var_r31->unk6C; + break; + case 4: + var_r31->unk6C.y += -2.4333334f; + var_r31->unk6C.x = var_r31->unk6C.z = 0.0f; + var_r31->unk84 = var_r31->unk6C; + break; + case 2: + var_r31->unk6C.y = 0.0f; + var_r31->unk6C.x = var_r31->unk6C.z = 0.0f; + PSVECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); + PSVECAdd(&temp_r30->unk4C, &sp14, &var_r31->unk84); + var_r31->unk6C = var_r31->unk84; + break; + case 5: + if ((var_r31->unk6 & 2) != 0) { + Hu3DModelAttrSet(var_r31->unk8, 1); + Hu3DModelAttrSet(var_r31->unkA, 1); + } else { + Hu3DModelAttrReset(var_r31->unk8, 1); + Hu3DModelAttrReset(var_r31->unkA, 1); + } + if (++var_r31->unk6 >= 0x3C) { + var_r31->unk4 = 6; + } + break; + default: + var_r31->unk6C.x = var_r31->unk6C.y = var_r31->unk6C.z = 0.0f; + break; + } + } + fn_1_8AA8(0x20, 1); + var_r31 = lbl_1_bss_60; + for (var_r29 = 0; var_r29 < lbl_1_bss_58; var_r29++, var_r31++) { + if (var_r31->unk4 != 6) { + if (var_r31->unk4 == 1) { + PSVECSubtract(&var_r31->unk3C, &var_r31->unk48, &sp14); + sp8.x = sp14.z; + sp8.y = 0.0f; + sp8.z = -sp14.x; + var_f30 = PSVECMag(&sp8); + if (var_f30 > 0.01f) { + PSMTXRotAxisRad(sp50, &sp8, MTXDegToRad(var_f30)); + PSMTXConcat(sp20, sp50, sp50); + } else { + PSMTXCopy(sp20, sp50); + } + PSMTXConcat(sp50, var_r31->unkC, var_r31->unkC); + fn_1_6230(var_r31->unk8, var_r31->unkC); + fn_1_6230(var_r31->unkA, var_r31->unkC); + } + if (var_r31->unk3C.y < 250.0f) { + var_r31->unk3C.y = 250.0f; + var_r31->unk4 = 6; + Hu3DModelAttrSet(var_r31->unk8, 1); + Hu3DModelAttrSet(var_r31->unkA, 1); + } + Hu3DModelPosSet(var_r31->unk8, var_r31->unk3C.x, var_r31->unk3C.y, var_r31->unk3C.z); + Hu3DModelPosSet(var_r31->unkA, var_r31->unk3C.x, var_r31->unk3C.y, var_r31->unk3C.z); + PSVECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); + var_r31->unk6C = sp14; + var_r31->unk54 = var_r31->unk3C; + temp_r30 = var_r31->unk0->data; + temp_r30->unk8 = var_r31->unk4; + temp_r30->unk40.y += var_f31; + if (var_r31->unk4 != 5) { + temp_r30->unk34 = var_r31->unk3C; + temp_r30->unk34.y -= 80.0f; + omSetTra(var_r31->unk0, temp_r30->unk34.x, temp_r30->unk34.y, temp_r30->unk34.z); + omSetRot(var_r31->unk0, temp_r30->unk40.x, temp_r30->unk40.y, temp_r30->unk40.z); + } + } + } + } +} + +void fn_1_5018(void) { + M424DllBallStruct3 sp27C[32]; + Vec sp270; + Vec sp264; + Vec sp258; + Vec sp24C; + Vec sp240; + Vec sp234; + Vec sp228; + f32 var_f31; + f32 var_f30; + f32 var_f29; + f32 temp_f28; + M424DllBallStruct2* var_r31; + M424DllBallStruct2* var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + + var_r31 = &lbl_1_bss_60[0]; + for (var_r28 = 0; var_r28 < lbl_1_bss_58; var_r28++, var_r31++) { + var_r31->unk90 = 1; + } + + for (var_r26 = 0, var_f29 = 1.0f; var_r26 < 0x80; var_f29 -= var_f30, var_r26++) { + var_r29 = 0; + var_f30 = var_f29; + var_r31 = &lbl_1_bss_60[0]; + for (var_r28 = 0; var_r28 < lbl_1_bss_58; var_r28++, var_r31++) { + if ((var_r31->unk90 != 0) && (var_r31->unk4 < 4U)) { + var_r31->unk90 = 0; + if (var_r31->unk4 < 3) { + if (var_r31->unk6C.y < 0.0f) { + var_f31 = (200.0f - (var_r31->unk60.y - 100.0f)) / var_r31->unk6C.y; + if (var_f31 <= var_f29) { + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + var_r31->unk90 = 1; + if (var_f31 <= var_f30) { + if (var_f31 < var_f30) { + var_r29 = 0; + } + sp27C[var_r29].unk0 = 0; + sp27C[var_r29].unk4 = var_r31; + sp27C[var_r29].unk8 = 0; + var_r29++; + var_f30 = var_f31; + } + } + } + if (var_r31->unk4 == 1) { + var_f31 = fn_1_7420(var_r31->unk60, var_r31->unk84, 100.0f, 700.0f); + } else { + var_f31 = fn_1_7420(var_r31->unk60, var_r31->unk6C, 100.0f, 700.0f); + } + if (var_f31 >= 0.0f && var_f31 <= var_f29) { + var_r31->unk90 = 1; + if (var_f31 <= var_f30) { + if (var_f31 < var_f30) { + var_r29 = 0; + } + sp27C[var_r29].unk0 = 1; + sp27C[var_r29].unk4 = var_r31; + sp27C[var_r29].unk8 = 0; + var_r29++; + var_f30 = var_f31; + } + } + if (var_r31->unk4 == 1) { + var_f31 = fn_1_709C(var_r31->unk60, var_r31->unk84, 100.0f, 250.0f); + } else { + var_f31 = fn_1_709C(var_r31->unk60, var_r31->unk6C, 100.0f, 250.0f); + } + if (var_f31 >= 0.0f && var_f31 <= var_f29) { + var_r31->unk90 = 1; + if (var_f31 <= var_f30) { + if (var_f31 < var_f30) { + var_r29 = 0; + } + sp27C[var_r29].unk0 = 2; + sp27C[var_r29].unk4 = var_r31; + sp27C[var_r29].unk8 = 0; + var_r29++; + var_f30 = var_f31; + } + } + } + + var_r30 = lbl_1_bss_60; + for (var_r25 = 0; var_r25 < lbl_1_bss_58; var_r25++, var_r30++) { + if ((var_r31 != var_r30) && (var_r30->unk4 < 4)) { + if ((var_r31->unk4 == 1) && (var_r30->unk4 == 1)) { + var_f31 = fn_1_6D10(var_r31->unk60, var_r31->unk84, 100.0f, var_r30->unk60, var_r30->unk84, 100.0f); + } else { + var_f31 = fn_1_6D10(var_r31->unk60, var_r31->unk6C, 100.0f, var_r30->unk60, var_r30->unk6C, 100.0f); + } + if ((var_f31 < 0.0f) || (var_f31 > var_f29)) continue; + var_r31->unk90 = 1; + var_r30->unk90 = 1; + if (var_f31 > var_f30) continue; + if (var_f31 < var_f30) { + var_r29 = 0; + } else { + for (var_r27 = 0; var_r27 < var_r29; var_r27++) { + if ((sp27C[var_r27].unk4 == var_r30) && (sp27C[var_r27].unk8 == var_r31)) break; + } + if (var_r27 < var_r29) continue; + } + sp27C[var_r29].unk0 = 3; + sp27C[var_r29].unk4 = var_r31; + sp27C[var_r29].unk8 = var_r30; + var_r29++; + var_f30 = var_f31; + } + } + } + } + if (var_r29 == 0) break; + var_r31 = lbl_1_bss_60; + for (var_r28 = 0; var_r28 < lbl_1_bss_58; var_r28++, var_r31++) { + var_r31->unk60.x += var_r31->unk6C.x * var_f30; + var_r31->unk60.y += var_r31->unk6C.y * var_f30; + var_r31->unk60.z += var_r31->unk6C.z * var_f30; + } + for (var_r28 = 0; var_r28 < var_r29; var_r28++) { + switch (sp27C[var_r28].unk0) { + case 0: + var_r31 = sp27C[var_r28].unk4; + var_r31->unk4 = 1; + sp234.y = 300.0f - var_r31->unk60.y; + var_r31->unk60.y = 300.0f; + var_r31->unk6C.y = sp234.y; + var_r31->unk84.y = sp234.y; + break; + case 1: + var_r31 = sp27C[var_r28].unk4; + sp240 = var_r31->unk60; + sp240.y = 0.0f; + PSVECNormalize(&sp240, &sp228); + sp228.x = -sp228.x; + sp228.y = 0.0f; + sp228.z = -sp228.z; + temp_f28 = PSVECMag(&sp240); + temp_f28 -= 600.0f; + var_r31->unk60.x += temp_f28 * sp228.x; + var_r31->unk60.z += temp_f28 * sp228.z; + sp240 = var_r31->unk60; + sp240.y = 0.0f; + if (var_r31->unk4 == 1) { + fn_1_7CA0(var_r31->unk84, sp228, 0.8f, &sp24C); + var_r31->unk84 = sp24C; + PSVECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); + } else { + fn_1_7CA0(var_r31->unk6C, sp228, 0.8f, &sp24C); + var_r31->unk6C = sp24C; + var_r31->unk84 = var_r31->unk6C; + } + break; + case 2: + var_r31 = sp27C[var_r28].unk4; + sp240 = var_r31->unk60; + sp240.y = 0.0f; + PSVECNormalize(&sp240, &sp228); + temp_f28 = PSVECMag(&sp240); + temp_f28 = 350.0f; + var_r31->unk60.x = temp_f28 * sp228.x; + var_r31->unk60.z = temp_f28 * sp228.z; + sp240 = var_r31->unk60; + sp240.y = 0.0f; + if (var_r31->unk4 == 1) { + fn_1_7CA0(var_r31->unk84, sp228, 0.8f, &sp24C); + var_r31->unk84 = sp24C; + PSVECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); + } else { + fn_1_7CA0(var_r31->unk6C, sp228, 0.8f, &sp24C); + var_r31->unk6C = sp24C; + var_r31->unk84 = var_r31->unk6C; + } + break; + case 3: + var_r31 = sp27C[var_r28].unk4; + var_r30 = sp27C[var_r28].unk8; + if (var_r31->unk4 == 3) { + fn_1_79FC(&var_r30->unk3C, &var_r30->unk6C, 100.0f, &var_r31->unk3C, &var_r31->unk6C, 100.0f, 0.8f); + var_r31->unk84 = var_r31->unk6C; + var_r30->unk84 = var_r30->unk6C; + } else if (var_r30->unk4 == 3) { + fn_1_79FC(&var_r31->unk3C, &var_r31->unk6C, 100.0f, &var_r30->unk3C, &var_r30->unk6C, 100.0f, 0.8f); + var_r31->unk84 = var_r31->unk6C; + var_r30->unk84 = var_r30->unk6C; + } else if ((var_r31->unk4 == 1) && (var_r30->unk4 == 1)) { + fn_1_77C4(var_r31->unk60, var_r31->unk84, var_r30->unk60, 0.8f, &sp24C, &sp258); + fn_1_77C4(var_r30->unk60, var_r30->unk84, var_r31->unk60, 0.8f, &sp270, &sp264); + PSVECAdd(&sp24C, &sp264, &var_r31->unk84); + PSVECAdd(&sp258, &sp270, &var_r30->unk84); + PSVECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); + PSVECAdd(&var_r30->unk84, &var_r30->unk78, &var_r30->unk6C); + } else { + fn_1_77C4(var_r31->unk60, var_r31->unk6C, var_r30->unk60, 0.8f, &sp24C, &sp258); + fn_1_77C4(var_r30->unk60, var_r30->unk6C, var_r31->unk60, 0.8f, &sp270, &sp264); + PSVECAdd(&sp24C, &sp264, &var_r31->unk6C); + PSVECAdd(&sp258, &sp270, &var_r30->unk6C); + var_r31->unk84 = var_r31->unk6C; + var_r30->unk84 = var_r30->unk6C; + } + break; + } + } + } + var_r31 = lbl_1_bss_60; + for (var_r28 = 0; var_r28 < lbl_1_bss_58; var_r28++, var_r31++) { + var_r31->unk3C.x = var_r31->unk60.x + (var_r31->unk6C.x * var_f29); + var_r31->unk3C.y = var_r31->unk60.y + (var_r31->unk6C.y * var_f29); + var_r31->unk3C.z = var_r31->unk60.z + (var_r31->unk6C.z * var_f29); + } +} + +void fn_1_6038(void) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + lbl_1_bss_5BC[var_r31] = 0; + } +} + +void* fn_1_6078(s32 arg0) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + if (lbl_1_bss_5BC[var_r31] == 0) break; + } + if (var_r31 == 0x20) { + return NULL; + } + lbl_1_bss_5BC[var_r31] = HuMemDirectMallocNum(HEAP_SYSTEM, arg0, 0x10000000); + return lbl_1_bss_5BC[var_r31]; +} + +void fn_1_6118(void* arg0) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + if (lbl_1_bss_5BC[var_r31] == arg0) break; + } + if (var_r31 != 0x20) { + HuMemDirectFree(lbl_1_bss_5BC[var_r31]); + lbl_1_bss_5BC[var_r31] = NULL; + } +} + +void fn_1_61AC(void) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + if (lbl_1_bss_5BC[var_r31]) { + HuMemDirectFree(lbl_1_bss_5BC[var_r31]); + lbl_1_bss_5BC[var_r31] = NULL; + } + } +} + +void fn_1_6230(s16 arg0, Mtx arg1) { + ModelData* var_r31; + + var_r31 = &Hu3DData[arg0]; + PSMTXCopy(arg1, var_r31->unk_F0); +} + +u32 lbl_1_data_1D8 = 0x41C64E6D; + +s32 fn_1_627C(void) { + lbl_1_data_1D8 *= 0x41C64E6D; + lbl_1_data_1D8 += 0x3039; + return lbl_1_data_1D8 >> 0x10; +} + +void fn_1_62D0(s32 arg0, u32* arg1) { + s32 var_r31; + s32 temp_r30; + u32 temp_r29; + + for (var_r31 = 0; var_r31 < arg0; var_r31++) { + arg1[var_r31] = var_r31; + } + + for (var_r31 = 0; var_r31 < arg0 - 1; var_r31++) { + temp_r30 = (arg0 * (fn_1_627C() / 65536.0f)); + temp_r29 = arg1[var_r31]; + arg1[var_r31] = arg1[temp_r30]; + arg1[temp_r30] = temp_r29; + } +} + +f32 fn_1_640C(f32 arg0, f32 arg1, f32 arg2) { + f32 var_f31; + + if (arg0 > 180.0f) { + arg0 -= 360.0f; + } else { + if (arg0 <= -180.0f) { + arg0 += 360.0f; + } + } + if (arg1 > 180.0f) { + arg1 -= 360.0f; + } else { + if (arg1 <= -180.0f) { + arg1 += 360.0f; + } + } + var_f31 = arg0 - arg1; + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } else { + if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } + } + arg0 = arg1 + (var_f31 * arg2); + if (arg0 > 180.0f) { + return arg0 - 360.0f; + } + if (arg0 <= -180.0f) { + arg0 += 360.0f; + } + return arg0; +} + +void fn_1_6574(Mtx arg0, f32 arg8, f32 arg9, f32 argA) { + Mtx sp38; + Mtx sp8; + + if (argA != 0.0f) { + PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + } else { + PSMTXIdentity(arg0); + } + if (arg8 != 0.0f) { + PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + PSMTXConcat(sp38, arg0, arg0); + } + if (arg9 != 0.0f) { + PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + PSMTXConcat(sp8, arg0, arg0); + } +} + +void fn_1_6694(M424BallStruct4* arg0, Vec* arg1) { + f32 temp_f29; + f32 var_f28; + + arg1->x = atan2d(arg0->unk18, arg0->unk28); + if (arg1->x < 0.0f) { + arg1->x += 360.0f; + } + arg1->z = atan2d(arg0->unk4, arg0->unk0); + if (arg1->z < 0.0f) { + arg1->z += 360.0f; + } + temp_f29 = -arg0->unk8; + var_f28 = sqrtf(ABS(1.0 - (temp_f29 * temp_f29))); + if ((arg1->x > 90.0f) && (arg1->x < 270.0f) && (arg1->z > 90.0f) && (arg1->z < 270.0f)) { + arg1->x = fmod((180.0f + arg1->x), 360.0); + arg1->z = fmod((180.0f + arg1->z), 360.0); + var_f28 = -var_f28; + } + arg1->y = atan2d(temp_f29, var_f28); + if (arg1->y < 0.0f) { + arg1->y += 360.0f; + } +} + +void fn_1_6A30(M424BallStruct4* arg0, Vec* arg1) { + f32 temp_f29; + f32 var_f27; + + arg1->z = atan2d(arg0->unk4, arg0->unk14); + if (arg1->z < 0.0f) { + arg1->z += 360.0f; + } + arg1->y = atan2d(arg0->unk8, arg0->unk28); + if (arg1->y < 0.0f) { + arg1->y += 360.0f; + } + temp_f29 = -arg0->unk24; + var_f27 = sqrtf(ABS(1.0 - (temp_f29 * temp_f29))); + arg1->x = atan2d(temp_f29, var_f27); + if (arg1->x < 0.0f) { + arg1->x += 360.0f; + } +} + +f32 fn_1_6D10(Vec arg0, Vec arg1, f32 arg2, Vec arg3, Vec arg4, f32 arg5) { + f32 temp_f30; + f32 temp_f29; + f32 temp_f28; + f32 temp_f27; + f32 temp_f26; + f32 temp_f25; + f32 var_f23; + + PSVECSubtract(&arg3, &arg0, &arg3); + PSVECSubtract(&arg4, &arg1, &arg4); + temp_f29 = arg2 + arg5; + if (PSVECMag(&arg3) > temp_f29 + PSVECMag(&arg4)) { + return -1.0f; + } + temp_f29 *= temp_f29; + temp_f27 = (arg4.z * arg4.z) + ((arg4.x * arg4.x) + (arg4.y * arg4.y)); + temp_f26 = 2.0f * ((arg4.z * arg3.z) + ((arg4.x * arg3.x) + (arg4.y * arg3.y))); + var_f23 = ((arg3.z * arg3.z) + ((arg3.x * arg3.x) + (arg3.y * arg3.y))) - temp_f29; + if (temp_f27 == 0.0f) { + return -1.0f; + } + temp_f30 = (temp_f26 * temp_f26) - (4.0f * temp_f27 * var_f23); + if (temp_f30 <= 0.0f) { + return -1.0f; + } + temp_f30 = sqrtf(temp_f30); + temp_f25 = (-temp_f26 + temp_f30) / (2.0f * temp_f27); + temp_f28 = (-temp_f26 - temp_f30) / (2.0f * temp_f27); + if (((temp_f25 * temp_f28) < 0.0f) && (temp_f28 < 0.0f) && (temp_f25 > fabs(temp_f28))) { + return 0.0f; + } + return temp_f28; +} + +f32 fn_1_709C(Vec arg0, Vec arg1, f32 arg2, f32 arg3) { + Vec sp20; + Vec sp14; + f32 temp_f30; + f32 temp_f29; + f32 temp_f28; + f32 temp_f27; + f32 temp_f26; + f32 temp_f25; + f32 var_f23; + + sp20 = arg0; + sp20.y = 0.0f; + sp14 = arg1; + sp14.y = 0.0f; + temp_f29 = arg3 + arg2; + if (PSVECMag(&sp20) > temp_f29 + PSVECMag(&sp14)) { + return -1.0f; + } + temp_f29 *= temp_f29; + temp_f27 = (arg1.x * arg1.x) + (arg1.z * arg1.z); + temp_f26 = 2.0f * ((arg1.x * arg0.x) + (arg1.z * arg0.z)); + var_f23 = (((arg0.x * arg0.x) + (arg0.z * arg0.z)) - temp_f29); + if (0.0f == temp_f27) { + return -1.0f; + } + temp_f30 = (temp_f26 * temp_f26) - (4.0f * temp_f27 * var_f23); + if (temp_f30 <= 0.0f) { + return -1.0f; + } + temp_f30 = sqrtf(temp_f30); + temp_f25 = (-temp_f26 + temp_f30) / (2.0f * temp_f27); + temp_f28 = (-temp_f26 - temp_f30) / (2.0f * temp_f27); + if (((temp_f25 * temp_f28) < 0.0f) && (temp_f28 < 0.0f) && (temp_f25 > fabs(temp_f28))) { + return 0.0f; + } + return temp_f28; +} + +f32 fn_1_7420(Vec arg0, Vec arg1, f32 arg2, f32 arg3) { + Vec sp20; + Vec sp14; + f32 temp_f30; + f32 temp_f29; + f32 temp_f28; + f32 temp_f27; + f32 temp_f26; + f32 temp_f25; + f32 var_f23; + + sp20 = arg0; + sp20.y = 0.0f; + sp14 = arg1; + sp14.y = 0.0f; + temp_f29 = arg3 - arg2; + if (PSVECMag(&sp20) > temp_f29) { + return 0.0f; + } + if (PSVECMag(&sp20) > temp_f29 + PSVECMag(&sp14)) { + return -1.0f; + } + temp_f29 *= temp_f29; + temp_f27 = (arg1.x * arg1.x) + (arg1.z * arg1.z); + temp_f26 = 2.0f * ((arg1.x * arg0.x) + (arg1.z * arg0.z)); + var_f23 = (arg0.x * arg0.x) + (arg0.z * arg0.z) - temp_f29; + if (0.0f == temp_f27) { + return -1.0f; + } + temp_f30 = (temp_f26 * temp_f26) - (4.0f * temp_f27 * var_f23); + if (temp_f30 <= 0.0f) { + return -1.0f; + } + temp_f30 = sqrtf(temp_f30); + temp_f25 = (-temp_f26 - temp_f30) / (2.0f * temp_f27); + temp_f28 = (-temp_f26 + temp_f30) / (2.0f * temp_f27); + if (((temp_f25 * temp_f28) < 0.0f) && (temp_f28 < 0.0f) && (temp_f25 > fabs(temp_f28))) { + return 0.0f; + } + return temp_f28; +} + +void fn_1_77C4(Vec arg0, Vec arg1, Vec arg2, f32 arg3, Vec* arg4, Vec* arg5) { + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + f32 var_f31; + f32 temp_f30; + f32 temp_f29; + f32 var_f28; + + sp38 = arg1; + var_f31 = PSVECMag(&sp38); + if (var_f31 < 0.01f) { + arg4->x = arg4->y = arg4->z = 0.0f; + arg5->x = arg5->y = arg5->z = 0.0f; + return; + } + PSVECNormalize(&sp38, &sp38); + var_f31 = var_f31 * arg3; + PSVECSubtract(&arg2, &arg0, &sp2C); + PSVECNormalize(&sp2C, &sp2C); + var_f28 = PSVECDotProduct(&sp38, &sp2C); + if (var_f28 < 0.0f) { + arg4->x = arg1.x; + arg4->y = arg1.y; + arg4->z = arg1.z; + arg5->x = arg5->y = arg5->z = 0.0f; + return; + } + temp_f29 = var_f31 * var_f28; + temp_f30 = var_f31 - temp_f29; + if (temp_f30 < 0.01f) { + arg4->x = arg4->y = arg4->z = 0.0f; + } else { + PSVECCrossProduct(&sp38, &sp2C, &sp14); + PSVECNormalize(&sp14, &sp14); + PSVECCrossProduct(&sp2C, &sp14, &sp20); + PSVECNormalize(&sp20, &sp20); + arg4->x = sp20.x * temp_f30; + arg4->y = sp20.y * temp_f30; + arg4->z = sp20.z * temp_f30; + } + arg5->x = sp2C.x * temp_f29; + arg5->y = sp2C.y * temp_f29; + arg5->z = sp2C.z * temp_f29; +} + +void fn_1_79FC(Vec* arg0, Vec* arg1, f32 arg2, Vec* arg3, Vec* arg4, f32 arg5, f32 arg6) { + Vec sp38; + Vec sp2C; + f32 temp_f31; + f32 var_f30; + f32 var_f29; + + arg1->x *= arg6; + arg1->y *= arg6; + arg1->z *= arg6; + PSVECSubtract(arg0, arg3, &sp38); + PSVECNormalize(&sp38, &sp2C); + temp_f31 = (arg2 + arg5) - PSVECMag(&sp38); + if (temp_f31 > 0.01f) { + PSVECSubtract(arg1, arg4, &sp38); + if (PSVECMag(&sp38) < 0.01f) { + arg0->x += sp2C.x * temp_f31; + arg0->y += sp2C.y * temp_f31; + arg0->z += sp2C.z * temp_f31; + } else { + PSVECNormalize(&sp38, &sp38); + arg0->x -= sp38.x * temp_f31; + arg0->y -= sp38.y * temp_f31; + arg0->z -= sp38.z * temp_f31; + } + } + fn_1_7CA0(*arg1, sp2C, 1.0f, arg1); + PSVECSubtract(arg4, arg1, &sp38); + var_f30 = PSVECMag(&sp38); + if (var_f30 < 0.01f) return; + PSVECNormalize(&sp38, &sp38); + var_f29 = PSVECDotProduct(&sp2C, &sp38); + if (var_f29 > 0.0f) { + arg1->x += var_f30 * (sp2C.x * var_f29); + arg1->y += var_f30 * (sp2C.y * var_f29); + arg1->z += var_f30 * (sp2C.z * var_f29); + } +} + +void fn_1_7CA0(Vec arg0, Vec arg1, f32 arg2, Point3d* arg3) { + f32 var_f31; + + *arg3 = arg0; + arg3->x *= arg2; + arg3->y *= arg2; + arg3->z *= arg2; + var_f31 = PSVECDotProduct(&arg1, arg3); + if (var_f31 < 0.0f) { + arg3->x -= 2.0f * arg1.x * var_f31; + arg3->y -= 2.0f * arg1.y * var_f31; + arg3->z -= 2.0f * arg1.z * var_f31; + } +} + +f32 fn_1_7DD0(Vec* arg0) { + f32 temp_f30; + f32 temp_f29; + + temp_f30 = (arg0->x * arg0->x) + (arg0->y * arg0->y) + (arg0->z * arg0->z); + temp_f30 = sqrtf(temp_f30); + if (temp_f30 != 0.0f) { + temp_f29 = 1.0f / temp_f30; + arg0->x *= temp_f29; + arg0->y *= temp_f29; + arg0->z *= temp_f29; + } else { + arg0->x = arg0->y = arg0->z = 0.0f; + } + return temp_f30; +} + +f32 fn_1_7F68(Vec arg0, Vec arg1, Vec* arg2, f32 arg8) { + if (arg8 <= 0.0f) { + arg2->x = arg0.x; + arg2->y = arg0.y; + arg2->z = arg0.z; + arg8 = 0.0f; + } else if (arg8 >= 1.0f) { + arg2->x = (arg0.x + arg1.x); + arg2->y = (arg0.y + arg1.y); + arg2->z = (arg0.z + arg1.z); + arg8 = 1.0f; + } else { + arg2->x = (arg0.x + (arg8 * arg1.x)); + arg2->y = (arg0.y + (arg8 * arg1.y)); + arg2->z = (arg0.z + (arg8 * arg1.z)); + } + return arg8; +} + +f32 fn_1_8040(Vec arg0, Vec arg1, Vec arg2) { + f32 temp_f30; + f32 var_f31; + + var_f31 = (arg2.z * (arg1.z - arg0.z)) + ((arg2.x * (arg1.x - arg0.x)) + (arg2.y * (arg1.y - arg0.y))); + temp_f30 = -((arg2.z * arg2.z) + ((arg2.x * arg2.x) + (arg2.y * arg2.y))); + if (temp_f30 != 0.0f) { + var_f31 /= temp_f30; + } + return var_f31; +} + +f32 fn_1_80FC(Vec* arg0, Vec* arg1, Vec* arg2) { + Vec sp44; + f32 var_f30; + + if (0.0f == (arg2->x * arg2->x) + (arg2->y * arg2->y) + (arg2->z * arg2->z)) { + return ((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y)) + ((arg0->z - arg1->z) * (arg0->z - arg1->z)); + } + var_f30 = fn_1_8040(*arg0, *arg1, *arg2); + fn_1_7F68(*arg1, *arg2, &sp44, var_f30); + return ((arg0->x - sp44.x) * (arg0->x - sp44.x)) + ((arg0->y - sp44.y) * (arg0->y - sp44.y)) + ((arg0->z - sp44.z) * (arg0->z - sp44.z)); +} + +f32 fn_1_8438(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { + f32 var_f27; + + if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + } + var_f27 = fn_1_8040(*arg0, *arg1, *arg2); + fn_1_7F68(*arg1, *arg2, arg3, var_f27); + arg4->x = arg0->x - arg3->x; + arg4->y = arg0->y - arg3->y; + arg4->z = arg0->z - arg3->z; + return fn_1_7DD0(arg4); +} + +void fn_1_88E8(u8 arg0, f32 arg8, f32 arg9, f32 argA) { + M424DllBallStruct2* temp_r31; + + temp_r31 = &lbl_1_bss_60[arg0]; + temp_r31->unk4 = 3; + temp_r31->unk3C.x = arg8; + temp_r31->unk3C.y = arg9; + temp_r31->unk3C.z = argA; +} + +void fn_1_8924(u8 arg0, u8 arg1) { + M424DllBallStruct2* temp_r31; + + temp_r31 = &lbl_1_bss_60[arg0]; + temp_r31->unk4 = arg1; +} + +u8 fn_1_8950(u8 arg0) { + M424DllBallStruct2* temp_r31; + + temp_r31 = &lbl_1_bss_60[arg0]; + return temp_r31->unk4; +} + +u8 fn_1_897C(u8 arg0) { + M424DllBallStruct2* temp_r31; + + temp_r31 = &lbl_1_bss_60[arg0]; + return temp_r31->unk5; +} + +u8 fn_1_89A8(u8 arg0) { + M424DllBallStruct2* temp_r31; + + temp_r31 = &lbl_1_bss_60[arg0]; + return temp_r31->unk91; +} + +Vec* fn_1_89D4(u8 arg0) { + M424DllBallStruct2* temp_r31; + + temp_r31 = &lbl_1_bss_60[arg0]; + return &temp_r31->unk3C; +} + +Vec* fn_1_8A00(u8 arg0) { + M424DllBallStruct2* temp_r31; + + temp_r31 = &lbl_1_bss_60[arg0]; + return &temp_r31->unk6C; +} + +s32 fn_1_8A2C(void) { + M424DllBallStruct2* var_r31; + M424DllBallStruct* temp_r30; + s32 var_r29; + + var_r31 = lbl_1_bss_60; + for (var_r29 = 0; var_r29 < lbl_1_bss_58; var_r29++, var_r31++) { + temp_r30 = var_r31->unk0->data; + if ((temp_r30->unk8 == 3) || (temp_r30->unk8 == 2)) { + return 0; + } + } + return 1; +} + +void fn_1_8AA8(s32 arg0, s32 arg1) { + Vec spC; + M424DllBallStruct2* temp_r31; + s32 var_r27; + s32 var_r29; + s32 var_r30; + + if (arg1 != 0) { + for (var_r30 = 0; var_r30 < lbl_1_bss_58; var_r30++) { + temp_r31 = &lbl_1_bss_60[var_r30]; + if (temp_r31->unk4 != 6) { + PSVECAdd(&temp_r31->unk60, &temp_r31->unk6C, &temp_r31->unk3C); + if ((temp_r31->unk4 < 3) && (fn_1_907C(&temp_r31->unk3C, &spC) != 0)) { + temp_r31->unk3C = spC; + } + if ((temp_r31->unk6C.y < 0.0f) && (temp_r31->unk4 != 4) && (temp_r31->unk4 != 6) && (temp_r31->unk3C.y < 300.0f)) { + temp_r31->unk3C.y = 300.0f; + if (temp_r31->unk4 == 2) { + temp_r31->unk4 = 1; + } + } + } + } + } + + for (var_r30 = 0, var_r29 = arg0; var_r30 < lbl_1_bss_58; var_r30++) { + temp_r31 = &lbl_1_bss_60[var_r30]; + var_r27 = 0; + if (fn_1_8950(var_r30) < 4) { + if (fn_1_8C78(var_r30, arg0) < arg0) { + var_r27 = 1; + } + if ((var_r27 != 0) && (var_r29 > 0)) { + var_r29 -= 1; + var_r30 -= 1; + } else { + var_r29 = arg0; + } + } + } + fn_1_C2E0(0); +} + +s32 fn_1_8C78(s32 arg0, s32 arg1) { + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec* sp10; + f32 temp_f31; + f32 var_f30; + s32 var_r31; + M424DllBallStruct2* temp_r30; + M424DllBallStruct2* temp_r29; + Vec* var_r28; + Vec* var_r27; + M424DllBallStruct* temp_r26; + M424DllBallStruct* temp_r25; + + temp_r30 = &lbl_1_bss_60[arg0]; + temp_r26 = temp_r30->unk0->data; + var_r28 = fn_1_89D4(arg0); + sp38 = *var_r28; + + for (var_r31 = 0; var_r31 < lbl_1_bss_58; var_r31++) { + if (var_r31 != arg0) { + if (fn_1_8950(var_r31) < 3) { + temp_r29 = &lbl_1_bss_60[var_r31]; + temp_r25 = temp_r29->unk0->data; + var_r27 = fn_1_89D4(var_r31); + sp2C = *var_r27; + PSVECSubtract(&sp2C, &sp38, &sp20); + var_f30 = PSVECMag(&sp20); + if (var_f30 < 200.0f) { + if (var_f30 > 0.0f) { + temp_f31 = 1.0f / var_f30; + sp20.x *= temp_f31; + sp20.y *= temp_f31; + sp20.z *= temp_f31; + } else { + sp20.x = 0.0f; + sp20.y = 0.0f; + sp20.z = 1.0f; + } + temp_f31 = 1.0f + (0.5f * (200.0f - var_f30)); + if (temp_f31 > 0.0f) { + PSVECScale(&sp20, &sp20, temp_f31); + PSVECAdd(&sp2C, &sp20, &sp2C); + *var_r27 = sp2C; + if ((temp_r29->unk4 < 3) && (fn_1_907C(&sp2C, &sp14) != 0)) { + sp2C = sp14; + *var_r27 = sp14; + } + if ((temp_r29->unk4 == 2) && (temp_r25->unk4C.y < 0.0f)) { + temp_r25->unk4C.y += 0.1f * temp_f31; + } + } + if (temp_f31 > 0.0f) { + PSVECScale(&sp20, &sp20, -1.0f); + PSVECAdd(&sp38, &sp20, &sp38); + *var_r28 = sp38; + if ((temp_r30->unk4 < 3) && (fn_1_907C(&sp38, &sp14) != 0)) { + sp38 = sp14; + *var_r28 = sp14; + } + if ((temp_r30->unk4 == 2) && (temp_r26->unk4C.y < 0.0f)) { + temp_r26->unk4C.y += 0.1f * temp_f31; + } + } + if (arg1 > 0) { + arg1--; + fn_1_8C78(var_r31, arg1); + } + } + } + } + } + return arg1; +} + +s32 fn_1_907C(Vec* arg0, Vec* arg1) { + Vec sp10; + f32 temp_f29; + f32 temp_f28; + f32 var_f27; + f32 temp_f26; + + sp10 = *arg0; + *arg1 = *arg0; + temp_f29 = (sp10.x * sp10.x) + (sp10.z * sp10.z); + var_f27 = sqrtf(temp_f29); + if (var_f27 < 350.0f) { + if (var_f27 > 0.0f) { + temp_f26 = 1.0f / var_f27; + sp10.x *= temp_f26; + sp10.z *= temp_f26; + } else { + sp10.x = 1.0f; + sp10.z = 0.0f; + } + arg1->x = 350.0f * sp10.x; + arg1->z = 350.0f * sp10.z; + } + temp_f28 = (sp10.x * sp10.x) + (sp10.z * sp10.z); + var_f27 = sqrtf(temp_f28); + if (var_f27 > 600.0f) { + temp_f26 = 1.0f / var_f27; + sp10.x *= temp_f26; + sp10.z *= temp_f26; + arg1->x = 600.0f * sp10.x; + arg1->z = 600.0f * sp10.z; + } + return (s32)arg0; +} From 78ab52081344c2d7893651c592fed6603acaadc8 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Fri, 3 Jan 2025 07:52:10 -0800 Subject: [PATCH 229/311] Matched m462Dll (US); applying some sprite macros (#504) --- config/GMPE01_00/rels/m462Dll/symbols.txt | 180 +-- configure.py | 2 +- src/REL/E3setupDLL/mgselect.c | 6 +- src/REL/m411Dll/main.c | 2 +- src/REL/m414Dll/main.c | 10 +- src/REL/m445Dll/main.c | 6 +- src/REL/m451Dll/m451.c | 4 +- src/REL/m462Dll/main.c | 1662 +++++++++++++++++++++ src/REL/mentDll/main.c | 292 ++-- src/REL/modeseldll/filesel.c | 8 +- src/game/board/battle.c | 14 +- src/game/board/char_wheel.c | 6 +- src/game/board/mg_setup.c | 24 +- src/game/board/pause.c | 32 +- src/game/board/player.c | 10 +- src/game/board/ui.c | 20 +- src/game/board/view.c | 8 +- src/game/thpmain.c | 2 +- 18 files changed, 1975 insertions(+), 313 deletions(-) create mode 100755 src/REL/m462Dll/main.c diff --git a/config/GMPE01_00/rels/m462Dll/symbols.txt b/config/GMPE01_00/rels/m462Dll/symbols.txt index d702b245..0af8810d 100644 --- a/config/GMPE01_00/rels/m462Dll/symbols.txt +++ b/config/GMPE01_00/rels/m462Dll/symbols.txt @@ -34,101 +34,101 @@ fn_1_7D40 = .text:0x00007D40; // type:function size:0x60 fn_1_7DA0 = .text:0x00007DA0; // type:function size:0x3BC _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x20 lbl_1_data_20 = .data:0x00000020; // type:object size:0x10 -lbl_1_data_30 = .data:0x00000030; // type:object size:0x60 +lbl_1_data_30 = .data:0x00000030; // type:object size:0x60 data:float lbl_1_data_90 = .data:0x00000090; // type:object size:0x30 data:float lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x3C lbl_1_data_FC = .data:0x000000FC; // type:object size:0x14 data:float -lbl_1_data_110 = .data:0x00000110; // type:object size:0xB data:string +lbl_1_data_110 = .data:0x00000110; // type:object size:0xB scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:float lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:float lbl_1_bss_18 = .bss:0x00000018; // type:object size:0xC data:float diff --git a/configure.py b/configure.py index de9495b7..fc0d2325 100644 --- a/configure.py +++ b/configure.py @@ -1306,7 +1306,7 @@ config.libs = [ Rel( "m462Dll", # Goomba Stomp objects={ - Object(NonMatching, "REL/m462Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m462Dll/main.c"), }, ), Rel( diff --git a/src/REL/E3setupDLL/mgselect.c b/src/REL/E3setupDLL/mgselect.c index d87c662f..3c8bb026 100644 --- a/src/REL/E3setupDLL/mgselect.c +++ b/src/REL/E3setupDLL/mgselect.c @@ -413,8 +413,8 @@ static void UpdateMGPic(omObjData *object) if (object->work[1] != object->work[0]) { temp_r29 = temp_r30->unk_40; - HuSprAttrSet(temp_r29, object->work[1], 4); - HuSprAttrReset(temp_r29, object->work[0], 4); + HuSprAttrSet(temp_r29, object->work[1], HUSPR_ATTR_DISPOFF); + HuSprAttrReset(temp_r29, object->work[0], HUSPR_ATTR_DISPOFF); object->work[1] = object->work[0]; } } @@ -453,7 +453,7 @@ static void CreateMGPic(omObjData *object) HuSprTPLvlSet(temp_r3, index2, 0.7f); index2++; object->work[1] = object->work[0]; - HuSprAttrReset(temp_r3, object->work[1], 4); + HuSprAttrReset(temp_r3, object->work[1], HUSPR_ATTR_DISPOFF); object->func = UpdateMGPic; } diff --git a/src/REL/m411Dll/main.c b/src/REL/m411Dll/main.c index d4a6acef..c99ccbca 100755 --- a/src/REL/m411Dll/main.c +++ b/src/REL/m411Dll/main.c @@ -2255,7 +2255,7 @@ void fn_1_7738(void) temp_r28->unk00 = 20.0f + temp_r30->unk00; temp_r28->unk04 = -20.0f + temp_r30->unk04; m411InlineFunc(temp_r31, temp_r30); - HuSprAttrReset(temp_r31->unk0C, 0, 4); + HuSprAttrReset(temp_r31->unk0C, 0, HUSPR_ATTR_DISPOFF); } temp_r30->unk08 = 50.0f; temp_r28->unk08 = temp_r30->unk08 - 5.0f; diff --git a/src/REL/m414Dll/main.c b/src/REL/m414Dll/main.c index 3341eb5b..8e7bc1f0 100644 --- a/src/REL/m414Dll/main.c +++ b/src/REL/m414Dll/main.c @@ -1005,12 +1005,12 @@ void fn_1_3D48(s32 arg0, s32 arg1) var_r29->user_data = var_r31; var_r31->unk_5C = var_r30; } - HuSprAttrSet(var_r31->unk_2E, (var_r30 * 2) + 2, 4); - HuSprAttrReset(var_r31->unk_2E, (var_r30 * 2) + 3, 4); + HuSprAttrSet(var_r31->unk_2E, (var_r30 * 2) + 2, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r31->unk_2E, (var_r30 * 2) + 3, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrReset(var_r31->unk_2E, (var_r30 * 2) + 2, 4); - HuSprAttrSet(var_r31->unk_2E, (var_r30 * 2) + 3, 4); + HuSprAttrReset(var_r31->unk_2E, (var_r30 * 2) + 2, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r31->unk_2E, (var_r30 * 2) + 3, HUSPR_ATTR_DISPOFF); } } } @@ -2047,7 +2047,7 @@ void fn_1_79A8(void) var_r28 = &lbl_1_bss_F0[var_r30]; var_r27 = HuPrcChildCreate(fn_1_76F4, 8192, 8192, 0, HuPrcCurrentGet()); var_r27->user_data = var_r28; - HuSprAttrReset(var_r28->unk_2C, 0, 4); + HuSprAttrReset(var_r28->unk_2C, 0, HUSPR_ATTR_DISPOFF); } for (var_r29 = 0, var_f27 = 0.0f; var_r29 < 15; var_r29++) { var_f27 += 0.06666667f; diff --git a/src/REL/m445Dll/main.c b/src/REL/m445Dll/main.c index 67dbe9d3..831d1e69 100755 --- a/src/REL/m445Dll/main.c +++ b/src/REL/m445Dll/main.c @@ -1408,7 +1408,7 @@ void fn_1_557C(void) for (i = 0; i < 2; i++) { for (j = 0; j < 5; j++) { - HuSprAttrReset(lbl_1_bss_588[i].unk04, j, 4); + HuSprAttrReset(lbl_1_bss_588[i].unk04, j, HUSPR_ATTR_DISPOFF); } } } @@ -1420,7 +1420,7 @@ void fn_1_55F0(void) for (i = 0; i < 2; i++) { for (j = 0; j < 5; j++) { - HuSprAttrSet(lbl_1_bss_588[i].unk04, j, 4); + HuSprAttrSet(lbl_1_bss_588[i].unk04, j, HUSPR_ATTR_DISPOFF); } } } @@ -1429,7 +1429,7 @@ void fn_1_5664(UnkM445Struct_02 *arg0, s32 arg1) { HuSprBankSet(arg0->unk04, 3, arg1 % 10); HuSprBankSet(arg0->unk04, 4, arg1 / 10); - HuSprAttrReset(arg0->unk04, 4, 4); + HuSprAttrReset(arg0->unk04, 4, HUSPR_ATTR_DISPOFF); } void fn_1_5700(UnkM445Struct_02 *arg0) diff --git a/src/REL/m451Dll/m451.c b/src/REL/m451Dll/m451.c index 05d6adaa..4f55107a 100644 --- a/src/REL/m451Dll/m451.c +++ b/src/REL/m451Dll/m451.c @@ -872,11 +872,11 @@ void fn_1_2A34(Bss348Data *arg0, s32 arg1, s32 arg2) temp_r30->scale.y = temp_r31->scale.y; temp_r30->scale.z = 0.8f * temp_r31->scale.z; if (arg2 == 0) { - HuSprAttrReset(arg0->unkA, 0, 1); + HuSprAttrReset(arg0->unkA, 0, HUSPR_ATTR_NOANIM); HuSprGrpScaleSet(arg0->unkA, 1, 1); } else { - HuSprAttrReset(arg0->unkA, 0, 64); + HuSprAttrReset(arg0->unkA, 0, HUSPR_ATTR_REVERSE); } } diff --git a/src/REL/m462Dll/main.c b/src/REL/m462Dll/main.c new file mode 100755 index 00000000..7efd0602 --- /dev/null +++ b/src/REL/m462Dll/main.c @@ -0,0 +1,1662 @@ +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/frand.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/process.h" +#include "game/sprite.h" +#include "game/wipe.h" + +#include "dolphin.h" +#include "ext_math.h" + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04; + /* 0x06 */ s16 unk06[8]; + /* 0x16 */ s16 unk16[4]; + /* 0x1E */ s16 unk1E; + /* 0x20 */ s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ s32 unk28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s32 unk30; + /* 0x34 */ s32 unk34; + /* 0x38 */ char unk38[4]; + /* 0x3C */ s32 unk3C; + /* 0x40 */ char unk40[4]; + /* 0x44 */ s32 unk44; + /* 0x48 */ s32 unk48; + /* 0x4C */ Vec unk4C; + /* 0x58 */ float unk58; + /* 0x5C */ float unk5C; + /* 0x60 */ Vec unk60; + /* 0x6C */ float unk6C; + /* 0x70 */ float unk70; + /* 0x74 */ float unk74; + /* 0x78 */ Vec unk78; + /* 0x84 */ float unk84; + /* 0x88 */ float unk88; + /* 0x8C */ float unk8C; + /* 0x90 */ float unk90; + /* 0x94 */ float unk94; +} StructBss340; // Size 0x98 + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s16 unk04[3]; + /* 0x0A */ char unk0A[2]; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ Vec unk14; + /* 0x20 */ float unk20; + /* 0x24 */ float unk24; + /* 0x28 */ float unk28; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ s32 unk38; + /* 0x3C */ s32 unk3C; + /* 0x40 */ float unk40; + /* 0x44 */ float unk44; +} StructBss70; // Size 0x48 + +void fn_1_4A0(void); +float fn_1_14B4(float arg0); +void fn_1_174C(void); +void fn_1_17A0(s32 arg0, s32 arg1); +void fn_1_44D8(void); +void fn_1_4BC4(void); +void fn_1_69C0(void); +void fn_1_7D40(void); +void fn_1_545C(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_594C(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_5DE4(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_7DA0(void); +s32 fn_1_1880(float arg0, float arg1, float arg2, s32 arg3, s32 arg4); + +s16 lbl_1_bss_3EA; +s16 lbl_1_bss_3E8; +s32 lbl_1_bss_3E4; +s32 lbl_1_bss_3E0; +s32 lbl_1_bss_3DC; +s32 lbl_1_bss_3D8; +StructBss340 lbl_1_bss_340[1]; +StructBss70 lbl_1_bss_70[10]; +StructBss70 lbl_1_bss_28; +omObjData* lbl_1_bss_24; +Vec lbl_1_bss_18; +Vec lbl_1_bss_C; +Vec lbl_1_bss_0; + +s32 lbl_1_data_0[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; + +s32 lbl_1_data_20[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 79), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 22) +}; + +Vec lbl_1_data_30[] = { + { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f } +}; + +Vec lbl_1_data_90[] = { + { -900.0f, 143.0f, -1020.0f }, + { -677.0f, 143.0f, -1020.0f }, + { 900.0f, 0.0f, -1150.0f }, + { -307.0f, 182.0f, -1575.0f } +}; + +s32 lbl_1_data_C0[][5] = { + { 50, 80, 90, 95, 100 }, + { 5, 55, 85, 95, 100 }, + { 0, 5, 55, 90, 100 } +}; + +float lbl_1_data_FC[] = { 0.3f, 0.5f, 0.7f, 0.9f, 1.0f }; + +void ObjectSetup(void) { + Process* temp_r3; + + temp_r3 = omInitObjMan(50, 0x2000); + omGameSysInit(temp_r3); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 10000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 640, 480); + lbl_1_bss_24 = omAddObjEx(temp_r3, 0x7FDA, 0, 0, -1, omOutViewMulti); + lbl_1_bss_24->work[0] = 1; + CRotM->x = -26.0f; + CRotM->y = 0.0f; + CRotM->z = 0.0f; + CenterM->x = 0.0f; + CenterM->y = 0.0f; + CenterM->z = -295.0f; + CZoomM[0] = 3030.0f; + Hu3DLighInit(); + lbl_1_bss_3EA = Hu3DGLightCreate(10000.0f, 0.0f, 10000.0f, -1.0f, 0.0f, -1.0f, 255, 50, 0); + Hu3DGLightPosAimSet(lbl_1_bss_3EA, -2500.0f, 3535.5f, 2500.0f, 0.0f, 0.0f, 0.0f); + Hu3DGLightInfinitytSet(lbl_1_bss_3EA); + lbl_1_bss_18.x = -2500.0f; + lbl_1_bss_18.y = 3535.5f; + lbl_1_bss_18.z = 2500.0f; + lbl_1_bss_C.x = lbl_1_bss_C.z = 0.0f; + lbl_1_bss_C.y = 1.0f; + lbl_1_bss_0.x = 0.0f; + lbl_1_bss_0.y = 0.0f; + lbl_1_bss_0.z = 0.0f; + Hu3DShadowCreate(30.0f, 20.0f, 10000.0f); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowPosSet(&lbl_1_bss_18, &lbl_1_bss_C, &lbl_1_bss_0); + Hu3DBGColorSet(0, 0, 0); + fn_1_4A0(); + HuPrcChildCreate(fn_1_7DA0, 0x1000, 0x2000, 0, HuPrcCurrentGet()); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); +} + +void fn_1_4A0(void) { + float temp_f31; + float temp_f30; + void* var_r27; + StructBss340* temp_r31; + StructBss70* temp_r29; + Process* var_r25; + AnimData* var_r24; + AnimData* spC[4]; + s16 var_r30; + s16 var_r23; + s16 sp8; + s32 i; + s32 j; + + lbl_1_bss_3E0 = 0; + lbl_1_bss_3D8 = 0; + HuAudSndGrpSet(0x2C); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 0), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r27); + lbl_1_bss_3E8 = var_r30; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelShadowMapSet(var_r30); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + i = 0; + temp_r31 = &lbl_1_bss_340[i]; + temp_r31->unk20 = i; + temp_r31->unk24 = i; + temp_r31->unk28 = GWPlayerCfg[i].pad_idx; + temp_r31->unk02 = CharModelCreate(lbl_1_data_0[GWPlayerCfg[i].character], 2); + Hu3DModelLayerSet(temp_r31->unk00, 1); + CharModelLayerSetAll(2); + temp_r31->unk78.x = lbl_1_data_30[GWPlayerCfg[i].character].x; + temp_r31->unk78.y = lbl_1_data_30[GWPlayerCfg[i].character].y; + temp_r31->unk78.z = lbl_1_data_30[GWPlayerCfg[i].character].z; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk78.x, temp_r31->unk78.y, temp_r31->unk78.z); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 1), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk00 = Hu3DModelCreate(var_r27); + Hu3DModelLayerSet(temp_r31->unk00, 1); + temp_r31->unk60.x = temp_r31->unk60.z = 0.0f; + temp_r31->unk60.y = 180.0f; + temp_r31->unk4C.x = 0.0f; + temp_r31->unk4C.y = 0.0f; + temp_r31->unk4C.z = 0.0f; + temp_r31->unk60.y = fn_1_14B4(temp_r31->unk60.y + 180.0f); + temp_r31->unk94 = temp_r31->unk60.y; + temp_r31->unk84 = 200.0f; + temp_r31->unk88 = 6.75f; + temp_r31->unk8C = 1.0f; + temp_r31->unk90 = 1.0f; + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk60.x, temp_r31->unk60.y, temp_r31->unk60.z); + Hu3DModelShadowSet(temp_r31->unk00); + Hu3DModelHookSet(temp_r31->unk00, "itemhook_c", temp_r31->unk02); + for (j = 0; j < 4; j++) { + temp_r31->unk16[j] = CharModelMotionCreate(lbl_1_data_0[GWPlayerCfg[i].character], lbl_1_data_20[j]); + } + CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[i].character], temp_r31->unk16[0]); + CharModelMotionTimeSet(lbl_1_data_0[GWPlayerCfg[i].character], 60.0f); + CharModelVoiceEnableSet(lbl_1_data_0[GWPlayerCfg[i].character], temp_r31->unk16[2], 0); + for (j = 0; j < 8; j++) { + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 2 + j), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk06[j] = Hu3DJointMotion(temp_r31->unk00, var_r27); + } + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[0]); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 1.0f); + Hu3DMotionSpeedSet(temp_r31->unk00, 1.0f); + Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_LOOP); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 10), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r31->unk04 = Hu3DModelCreate(var_r27); + Hu3DModelLayerSet(temp_r31->unk04, 1); + Hu3DModelAttrSet(temp_r31->unk04, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(temp_r31->unk04, HU3D_MOTATTR_PAUSE); + CharModelMotionDataClose(lbl_1_data_0[GWPlayerCfg[i].character]); + var_r25 = HuPrcChildCreate(fn_1_69C0, 0x2000, 0x3000, 0, HuPrcCurrentGet()); + var_r25->user_data = temp_r31; + var_r24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 2), MEMORY_DEFAULT_NUM)); + var_r30 = Hu3DParticleCreate(var_r24, 50); + Hu3DModelPosSet(var_r30, 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(var_r30, 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(var_r30, 3); + Hu3DParticleColSet(var_r30, 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(var_r30, 0.0f); + Hu3DParticleHookSet(var_r30, fn_1_545C); + var_r24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 2), MEMORY_DEFAULT_NUM)); + var_r30 = Hu3DParticleCreate(var_r24, 50); + Hu3DModelPosSet(var_r30, 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(var_r30, 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(var_r30, 3); + Hu3DParticleColSet(var_r30, 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(var_r30, 0.0f); + Hu3DParticleHookSet(var_r30, fn_1_594C); + var_r24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_EFFECT, 2), MEMORY_DEFAULT_NUM)); + var_r30 = Hu3DParticleCreate(var_r24, 50); + Hu3DModelPosSet(var_r30, 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(var_r30, 1.0f, 1.0f, 1.0f); + Hu3DModelLayerSet(var_r30, 3); + Hu3DParticleColSet(var_r30, 0xFF, 0xFF, 0xFF); + Hu3DParticleScaleSet(var_r30, 0.0f); + Hu3DParticleHookSet(var_r30, fn_1_5DE4); + HuDataDirClose(DATADIR_EFFECT); + for (i = 0; i < 10; i++) { + temp_r29 = &lbl_1_bss_70[i]; + temp_r29->unk30 = 50.0f; + do { + temp_f31 = 1380.0f * frandf() - 690.0f; + temp_f30 = 1380.0f * frandf() - 690.0f; + } while (fn_1_1880(temp_f31, temp_f30, 50.0f, i, -1) != 0); + temp_r29->unk24 = temp_f31; + temp_r29->unk14.x = temp_f31; + temp_r29->unk14.y = 0.0f; + temp_r29->unk28 = temp_f30; + temp_r29->unk14.z = temp_f30; + } + for (i = 0; i < 10; i++) { + temp_r29 = &lbl_1_bss_70[i]; + if (i == 0) { + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 12), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r27); + var_r23 = var_r30; + } else { + var_r30 = Hu3DModelLink(var_r23); + } + temp_r29->unk00 = var_r30; + temp_r29->unk0C = i; + temp_r29->unk30 = 50.0f; + temp_r29->unk10 = 0; + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelShadowSet(var_r30); + Hu3DModelPosSet(var_r30, temp_r29->unk14.x, temp_r29->unk14.y, temp_r29->unk14.z); + temp_r29->unk20 = 0.0f; + temp_r29->unk34 = 6.75f * lbl_1_data_FC[0]; + for (j = 0; j < 3; j++) { + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 13 + j), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r29->unk04[j] = Hu3DJointMotion(var_r30, var_r27); + } + Hu3DMotionSet(var_r30, temp_r29->unk04[1]); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 11), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r30 = Hu3DModelCreate(var_r27); + sp8 = var_r30; + temp_r29->unk02 = var_r30; + Hu3DModelAttrSet(var_r30, HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(var_r30, 3); + var_r25 = HuPrcChildCreate(fn_1_4BC4, 0x1000, 0x3000, 0, HuPrcCurrentGet()); + var_r25->user_data = temp_r29; + } + for (i = 0; i < 2; i++) { + var_r30 = Hu3DModelLink(var_r23); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 16), MEMORY_DEFAULT_NUM, HEAP_DATA); + Hu3DMotionSet(var_r30, Hu3DJointMotion(var_r30, var_r27)); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30); + Hu3DModelPosSet(var_r30, lbl_1_data_90[i].x, lbl_1_data_90[i].y, lbl_1_data_90[i].z); + if (i != 0) { + Hu3DMotionTimeSet(var_r30, Hu3DMotionMaxTimeGet(var_r30) / 2.0f); + } + } + var_r30 = Hu3DModelLink(var_r23); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 19), MEMORY_DEFAULT_NUM, HEAP_DATA); + Hu3DMotionSet(var_r30, Hu3DJointMotion(var_r30, var_r27)); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30); + Hu3DModelPosSet(var_r30, lbl_1_data_90[3].x, lbl_1_data_90[3].y, lbl_1_data_90[3].z); + Hu3DMotionSpeedSet(var_r30, 0.7f); + temp_r29 = &lbl_1_bss_28; + var_r30 = Hu3DModelLink(var_r23); + temp_r29->unk00 = var_r30; + for (j = 0; j < 2; j++) { + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 17 + j), MEMORY_DEFAULT_NUM, HEAP_DATA); + temp_r29->unk04[j] = Hu3DJointMotion(var_r30, var_r27); + } + Hu3DMotionSet(var_r30, temp_r29->unk04[0]); + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(var_r30); + temp_r29->unk14.x = lbl_1_data_90[2].x; + temp_r29->unk14.y = lbl_1_data_90[2].y; + temp_r29->unk14.z = lbl_1_data_90[2].z; + Hu3DModelPosSet(var_r30, temp_r29->unk14.x, temp_r29->unk14.y, temp_r29->unk14.z); + var_r25 = HuPrcChildCreate(fn_1_44D8, 0x1000, 0x2000, 0, HuPrcCurrentGet()); + var_r25->user_data = temp_r29; + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 44), MEMORY_DEFAULT_NUM, HEAP_DATA); + spC[0] = HuSprAnimRead(var_r27); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 55), MEMORY_DEFAULT_NUM, HEAP_DATA); + spC[1] = HuSprAnimRead(var_r27); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 48), MEMORY_DEFAULT_NUM, HEAP_DATA); + spC[2] = HuSprAnimRead(var_r27); + var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_MGCONST, 49), MEMORY_DEFAULT_NUM, HEAP_DATA); + spC[3] = HuSprAnimRead(var_r27); + lbl_1_bss_3DC = HuSprGrpCreate(6); + var_r30 = HuSprCreate(spC[0], 0x4000, 0); + HuSprGrpMemberSet(lbl_1_bss_3DC, 0, var_r30); + HuSprPosSet(lbl_1_bss_3DC, 0, 0.0f, 0.0f); + HuSprTPLvlSet(lbl_1_bss_3DC, 0, 0.5f); + HuSprColorSet(lbl_1_bss_3DC, 0, 0, 0, 0); + var_r30 = HuSprCreate(spC[1], 0x4000, 0); + HuSprGrpMemberSet(lbl_1_bss_3DC, 1, var_r30); + HuSprPosSet(lbl_1_bss_3DC, 1, -19.0f, -9.0f); + var_r30 = HuSprCreate(spC[2], 0x4000, 0); + HuSprGrpMemberSet(lbl_1_bss_3DC, 2, var_r30); + HuSprPosSet(lbl_1_bss_3DC, 2, 20.0f, -8.0f); + var_r30 = HuSprCreate(spC[2], 0x4000, 0); + HuSprGrpMemberSet(lbl_1_bss_3DC, 3, var_r30); + HuSprPosSet(lbl_1_bss_3DC, 3, 2.0f, -8.0f); + var_r30 = HuSprCreate(spC[3], 0x4000, 0); + HuSprGrpMemberSet(lbl_1_bss_3DC, 4, var_r30); + HuSprPosSet(lbl_1_bss_3DC, 4, 20.0f, 8.0f); + var_r30 = HuSprCreate(spC[3], 0x4000, 0); + HuSprGrpMemberSet(lbl_1_bss_3DC, 5, var_r30); + HuSprPosSet(lbl_1_bss_3DC, 5, 2.0f, 8.0f); + HuSprGrpPosSet(lbl_1_bss_3DC, 511.0f, 61.0f); + fn_1_17A0(lbl_1_bss_3D8, 0); + fn_1_17A0(GWMGRecordGet(14), 1); + fn_1_174C(); + HuPrcChildCreate(fn_1_7D40, 0x1000, 0x1000, 0, HuPrcCurrentGet()); +} + +float fn_1_14B4(float arg0) { + while (arg0 >= 360.0f || arg0 < 0.0f) { + if (arg0 >= 360.0f) { + arg0 -= 360.0f; + } + if (arg0 < 0.0f) { + arg0 += 360.0f; + } + } + return arg0; +} + +float fn_1_1534(float arg0, float arg1) { + float var_f31; + + if (arg0 > 750.0f - arg1) { + var_f31 = 750.0f; + } else if (arg0 < -(750.0f - arg1)) { + var_f31 = 750.0f; + } else { + var_f31 = 750.0f; + } + return var_f31; +} + +float fn_1_15B4(float arg0, float arg1) { + return fn_1_1534(arg0, arg1); +} + +void fn_1_1634(void) { + float var_f31; + float temp_f30; + s32 i; + + var_f31 = 0.0f; + while (TRUE) { + var_f31 += 16.0f; + temp_f30 = 1.0 + 0.2f * sind(var_f31); + for (i = 0; i < 3; i++) { + HuSprScaleSet(lbl_1_bss_3DC, i + 1, temp_f30, temp_f30); + } + HuPrcVSleep(); + } +} + +void fn_1_16F8(void) { + s32 i; + + for (i = 0; i < 6; i++) { + HuSprAttrReset(lbl_1_bss_3DC, i, HUSPR_ATTR_DISPOFF); + } +} + +void fn_1_174C(void) { + s32 i; + + for (i = 0; i < 6; i++) { + HuSprAttrSet(lbl_1_bss_3DC, i, HUSPR_ATTR_DISPOFF); + } +} + +void fn_1_17A0(s32 arg0, s32 arg1) { + s32 var_r31; + + if (arg1 != 0) { + var_r31 = 2; + } else { + var_r31 = 4; + } + HuSprBankSet(lbl_1_bss_3DC, var_r31, arg0 % 10); + HuSprBankSet(lbl_1_bss_3DC, var_r31 + 1, arg0 / 10); + HuSprAttrReset(lbl_1_bss_3DC, var_r31 + 1, HUSPR_ATTR_DISPOFF); +} + +s32 fn_1_1880(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) { + Vec sp34; + Vec sp28; + Vec sp1C; + s32 i; + StructBss70* temp_r30; + StructBss340* var_r29; + + if (arg3 > 10) { + arg3 = 10; + } + HuSetVecF(&sp34, arg0, 0.0, arg1); + for (i = 0; i < arg3; i++) { + if (arg4 == i) { + continue; + } + temp_r30 = &lbl_1_bss_70[i]; + HuSetVecF(&sp28, temp_r30->unk14.x, 0.0, temp_r30->unk14.z); + HuSubVecF(&sp1C, &sp34, &sp28); + if (VECMagXZ(&sp1C) < temp_r30->unk30 + arg2) { + break; + } + } + if (i < arg3) { + return 1; + } + var_r29 = &lbl_1_bss_340[0]; + HuSetVecF(&sp28, var_r29->unk4C.x, 0.0, var_r29->unk4C.z); + HuSubVecF(&sp1C, &sp34, &sp28); + if (VECMagXZ(&sp1C) < var_r29->unk84 + arg2) { + return 1; + } + return 0; +} + +s32 fn_1_1BD4(StructBss70* arg0) { + float var_f31; + float var_f30; + s32 var_r31; + + var_r31 = 0; + var_f31 = fn_1_1534(arg0->unk14.z, arg0->unk30); + var_f30 = fn_1_1534(arg0->unk14.x, arg0->unk30); + if (arg0->unk14.x > var_f31 - arg0->unk30) { + var_r31 = 1; + arg0->unk14.x = var_f31 - arg0->unk30; + } + if (arg0->unk14.x < -(var_f31 - arg0->unk30)) { + var_r31 = 1; + arg0->unk14.x = -(var_f31 - arg0->unk30); + } + if (arg0->unk14.z > var_f30 - arg0->unk30) { + var_r31 = 1; + arg0->unk14.z = var_f30 - arg0->unk30; + } + if (arg0->unk14.z < -(var_f30 - arg0->unk30)) { + var_r31 = 1; + arg0->unk14.z = -(var_f30 - arg0->unk30); + } + return var_r31; +} + +void fn_1_1E10(StructBss70* arg0) { + Vec sp104; + Vec spF8; + Vec spEC; + float temp_f21; + float temp_f20; + float var_f19; + float var_f26; + float spC4; + float spC0; + float spBC; + float spB8; + float spB4; + float spB0; + float spAC; + float spA0; + StructBss70* var_r30; + StructBss70* temp_r28; + s32 temp_r19; + s32 var_r21; + s32 i; + + if (fn_1_1880(arg0->unk14.x, arg0->unk14.z, 50.0f, 10, arg0->unk0C) == 0) { + return; + } + var_f19 = fn_1_14B4(atan2d(arg0->unk14.x - arg0->unk24, arg0->unk14.z - arg0->unk28)); + temp_f21 = spB8 = arg0->unk24; + temp_f20 = spB4 = arg0->unk28; + spAC = 1.0f; + for (var_r21 = 1.0f + arg0->unk34 / spAC; var_r21 != 0; var_r21--) { + temp_f21 += spAC * sind(var_f19); + temp_f20 += spAC * cosd(var_f19); + HuSetVecF(&sp104, temp_f21, arg0->unk14.y, temp_f20); + for (i = 0; i < 10; i++) { + if (i == arg0->unk0C) { + continue; + } + var_r30 = &lbl_1_bss_70[i]; + HuSetVecF(&spF8, var_r30->unk14.x, var_r30->unk14.y, var_r30->unk14.z); + HuSubVecF(&spEC, &sp104, &spF8); + if (VECMagXYZ(&spEC) < arg0->unk30 + var_r30->unk30) { + break; + } + } + if (i < 10) { + break; + } + if (fn_1_1BD4(arg0)) { + goto block_end; + } + spB8 = temp_f21; + spB4 = temp_f20; + } + var_f19 = fn_1_14B4(atan2d(arg0->unk14.x - arg0->unk24, arg0->unk14.z - arg0->unk28)); + var_f26 = fn_1_14B4(atan2d(var_r30->unk14.x - arg0->unk24, var_r30->unk14.z - arg0->unk28)); + spC0 = var_f19 - var_f26; + if (spC0 > 0.0f) { + spBC = -0.5f; + } else { + spBC = 0.5f; + } + if (ABS_INV(var_f19 - var_f26) > 180.0f) { + spBC = -spBC; + } + var_f26 = fn_1_14B4(atan2d(arg0->unk24 - var_r30->unk14.x, arg0->unk28 - var_r30->unk14.z)); + spB0 = 0.8f * arg0->unk34; + temp_r19 = var_r30->unk0C; + spC4 = arg0->unk30 + var_r30->unk30 + 1.0f; + while (TRUE) { + temp_f21 = var_r30->unk14.x + spC4 * sind(var_f26); + temp_f20 = var_r30->unk14.z + spC4 * cosd(var_f26); + HuSetVecF(&sp104, temp_f21, 0.0, temp_f20); + for (i = 0; i < 10; i++) { + if (i == arg0->unk0C || i == temp_r19) { + continue; + } + temp_r28 = &lbl_1_bss_70[i]; + HuSetVecF(&spF8, temp_r28->unk14.x, 0.0, temp_r28->unk14.z); + HuSubVecF(&spEC, &sp104, &spF8); + if (VECMagXZ(&spEC) < arg0->unk30 + temp_r28->unk30) { + break; + } + } + if (i < 10 || fn_1_1BD4(arg0)) { + break; + } + spB8 = temp_f21; + spB4 = temp_f20; + HuSetVecF(&sp104, arg0->unk24, 0.0, arg0->unk28); + HuSetVecF(&spF8, temp_f21, 0.0, temp_f20); + HuSubVecF(&spEC, &sp104, &spF8); + if (VECMagXZ(&spEC) > spB0) { + break; + } + var_f26 += spBC; + } +block_end: + arg0->unk14.x = spB8; + arg0->unk14.z = spB4; +} + +void fn_1_2FDC(StructBss70* arg0) { + Vec spF0; + Vec spE4; + Vec spD8; + s32 i; + StructBss340* var_r30; + StructBss70* temp_r25; + float var_f31; + s32 var_r23; + s32 var_r20; + s32 spAC[2]; + + var_r30 = &lbl_1_bss_340[0]; + arg0->unk24 = arg0->unk14.x; + arg0->unk28 = arg0->unk14.z; + switch (arg0->unk38) { + case 0: + var_r20 = 0; + HuSetVecF(&spF0, var_r30->unk4C.x, 0.0, var_r30->unk4C.z); + HuSetVecF(&spE4, arg0->unk14.x, 0.0, arg0->unk14.z); + HuSubVecF(&spD8, &spF0, &spE4); + if (VECMagXZ(&spD8) < var_r30->unk84 + arg0->unk30 + 100.0f) { + var_r20 = 80; + } + if (frandmod(100) < var_r20) { + var_f31 = fn_1_14B4(atan2d(arg0->unk14.x - var_r30->unk4C.x, arg0->unk14.z - var_r30->unk4C.z)); + var_f31 += 30.0f * frandf() - 60.0f; + var_f31 = fn_1_14B4(var_f31); + arg0->unk20 = var_f31; + } else if (ABS_INV(arg0->unk14.x) > 550.0f) { + var_f31 = fn_1_14B4(180.0 + atan2d(arg0->unk14.x, 0.0)); + var_f31 += 10.0f * frandf() - 20.0f; + var_f31 = fn_1_14B4(var_f31); + arg0->unk20 = var_f31; + } else if (frandmod(3) != 0) { + for (i = 0, var_r23 = 0; i < 10; i++) { + if (i == arg0->unk0C) { + continue; + } + temp_r25 = &lbl_1_bss_70[i]; + HuSetVecF(&spF0, temp_r25->unk14.x, 0.0, temp_r25->unk14.z); + HuSetVecF(&spE4, arg0->unk14.x, 0.0, arg0->unk14.z); + HuSubVecF(&spD8, &spF0, &spE4); + if (VECMagXZ(&spD8) < 150.0f) { + spAC[var_r23++] = arg0->unk0C; + if (var_r23 >= 2) { + break; + } + } + } + if (var_r23 == 1 && ABS_INV(var_r30->unk4C.x) < 650.0f) { + temp_r25 = &lbl_1_bss_70[spAC[0]]; + var_f31 = fn_1_14B4(atan2d(arg0->unk40 - arg0->unk14.x, arg0->unk44 - arg0->unk14.z)); + } else { + var_f31 = fn_1_14B4(180.0 + atan2d(arg0->unk14.x, arg0->unk14.z)); + var_f31 += 30.0f * frandf() - 60.0f; + var_f31 = fn_1_14B4(var_f31); + arg0->unk20 = var_f31; + } + } else { + var_f31 = 360.0f * frandf(); + arg0->unk20 = var_f31; + } + arg0->unk40 = arg0->unk14.x + 100.0 * sind(var_f31); + arg0->unk44 = arg0->unk14.z + 100.0 * cosd(var_f31); + arg0->unk38 = 10; + arg0->unk3C = 60; + break; + case 10: + if (arg0->unk3C-- == 0) { + arg0->unk38 = 0; + } + if (arg0->unk3C < 50) { + HuSetVecF(&spF0, var_r30->unk4C.x, 0.0, var_r30->unk4C.z); + HuSetVecF(&spE4, arg0->unk14.x, 0.0, arg0->unk14.z); + HuSubVecF(&spD8, &spF0, &spE4); + if (VECMagXZ(&spD8) < var_r30->unk84 + arg0->unk30 + 100.0f) { + arg0->unk38 = 0; + } + } + HuSetVecF(&spF0, arg0->unk40, 0.0, arg0->unk44); + HuSetVecF(&spE4, arg0->unk14.x, 0.0, arg0->unk14.z); + HuSubVecF(&spD8, &spF0, &spE4); + if (VECMagXZ(&spD8) > 10.0f) { + var_f31 = fn_1_14B4(atan2d(arg0->unk40 - arg0->unk14.x, arg0->unk44 - arg0->unk14.z)); + arg0->unk14.x += arg0->unk34 * sind(var_f31); + arg0->unk14.z += arg0->unk34 * cosd(var_f31); + if (fn_1_1BD4(arg0)) { + } + if (fn_1_1880(arg0->unk14.x, arg0->unk14.z, 50.0f, 10, arg0->unk0C) != 0) { + arg0->unk14.x = arg0->unk24; + arg0->unk14.z = arg0->unk28; + arg0->unk38 = 100; + arg0->unk3C = 0; + } + } else { + arg0->unk38 = 100; + arg0->unk3C = 0; + } + break; + case 100: + if (arg0->unk3C == 0) { + arg0->unk38 = 0; + } + arg0->unk3C--; + break; + } +} + +void fn_1_44D8(void) { + StructBss70* temp_r31; + float temp_f30; + float var_f31; + s32 i; + + temp_r31 = HuPrcCurrentGet()->user_data; + temp_f30 = temp_r31->unk14.x; + while (TRUE) { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04[0]); + for (i = 0, var_f31 = 0.0f; i < 60; i++) { + temp_r31->unk14.x = temp_f30 - 300.0 * sind(var_f31); + var_f31 += 1.5f; + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14.x, temp_r31->unk14.y, temp_r31->unk14.z); + HuPrcVSleep(); + } + HuPrcSleep(30); + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04[1]); + for (i = 0, var_f31 = 90.0f; i < 60; i++) { + temp_r31->unk14.x = temp_f30 - 300.0 * sind(var_f31); + var_f31 -= 1.5f; + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14.x, temp_r31->unk14.y, temp_r31->unk14.z); + HuPrcVSleep(); + } + HuPrcSleep(30); + } +} + +void fn_1_4644(StructBss70* arg0) { + float temp_f26; + float temp_f25; + float var_f27; + float var_f24; + float temp_f23; + s32 i; + + do { + temp_f26 = 5.0f; + if (frandmod(2) != 0) { + arg0->unk14.x = -700.0f + temp_f26; + arg0->unk20 = 90.0f; + var_f27 = -700.0f + temp_f26 - 500.0f; + var_f24 = 8.333333f; + } else { + arg0->unk14.x = 700.0f - temp_f26; + arg0->unk20 = 270.0f; + var_f27 = 700.0f - temp_f26 + 500.0f; + var_f24 = -8.333333f; + } + arg0->unk14.y = 0.0f; + temp_f23 = 550.0f; + temp_f25 = temp_f23 * frandf() * 2.0f - temp_f23; + arg0->unk14.z = temp_f25; + arg0->unk24 = arg0->unk14.x; + arg0->unk28 = arg0->unk14.z; + } while (fn_1_1880(arg0->unk14.x, arg0->unk14.z, 50.0f, 10, arg0->unk0C) != 0); + Hu3DMotionSet(arg0->unk00, arg0->unk04[2]); + Hu3DModelRotSet(arg0->unk00, 0.0f, arg0->unk20, 0.0f); + for (i = 0; i < 60; i++) { + var_f27 += var_f24; + Hu3DModelPosSet(arg0->unk00, var_f27, 0.0f, temp_f25); + if (lbl_1_bss_3E4 >= 4) { + break; + } + HuPrcVSleep(); + } + if (lbl_1_bss_3E4 >= 4) { + arg0->unk14.x = var_f27; + arg0->unk14.z = temp_f25; + } + Hu3DModelPosSet(arg0->unk00, arg0->unk14.x, 0.0f, arg0->unk14.z); +} + +void fn_1_4BC4(void) { + s32 spC; + float sp8; + float temp_f23; + float var_f27; + float var_f28; + float var_f30; + float var_f29; + StructBss70* temp_r31; + StructBss340* var_r28; + StructBss340* var_r30; + s32 temp_r27; + s32 temp_r24; + s32 var_r26; + s32 var_r25; + s32 i; + + temp_r31 = HuPrcCurrentGet()->user_data; + temp_r31->unk10 = 0; +loop_1: + temp_r27 = lbl_1_bss_3E0 / 60; + var_r25 = 0; + if (temp_r27 > 10) { + var_r25 = 1; + } + if (temp_r27 > 20) { + var_r25 = 2; + } + temp_r27 = frandmod(100); + for (i = 0; i < 5; i++) { + if (lbl_1_data_C0[var_r25][i] > temp_r27) { + break; + } + } + if (i > 4) { + while (TRUE); + } + temp_r31->unk34 = 6.75f * lbl_1_data_FC[i]; + temp_r31->unk38 = 0; + while (TRUE) { + switch (temp_r31->unk10) { + case 2: + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04[1]); + fn_1_4644(temp_r31); + temp_r31->unk10 = 0; + if (FALSE) { + default: + fn_1_2FDC(temp_r31); + } + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14.x, temp_r31->unk14.y, temp_r31->unk14.z); + Hu3DModelRotSet(temp_r31->unk00, 0.0f, temp_r31->unk20, 0.0f); + if (lbl_1_bss_3E4 < 4) { + HuPrcVSleep(); + break; + } + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04[0]); + HuPrcSleep(60); + var_r28 = &lbl_1_bss_340[0]; + if (ABS_INV(var_r28->unk4C.z - temp_r31->unk14.z) > 250.0f) { + if (temp_r31->unk14.x > 0.0f) { + var_f30 = 10.0f; + } else { + var_f30 = -10.0f; + } + } else { + if (var_r28->unk4C.x > temp_r31->unk14.x) { + var_f30 = -10.0f; + } else { + var_f30 = 10.0f; + } + } + if (var_f30 > 0.0f) { + Hu3DModelRotSet(temp_r31->unk00, 0.0f, 90.0f, 0.0f); + } else { + Hu3DModelRotSet(temp_r31->unk00, 0.0f, 270.0f, 0.0f); + } + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04[1]); + while (ABS_INV(temp_r31->unk14.x) < 1500.0f) { + temp_r31->unk14.x += var_f30; + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14.x, temp_r31->unk14.y, temp_r31->unk14.z); + HuPrcVSleep(); + } + while (TRUE) { + HuPrcVSleep(); + } + break; + case 3: + lbl_1_bss_3D8++; + if (lbl_1_bss_3D8 > 99) { + lbl_1_bss_3D8 = 99; + } + temp_r24 = lbl_1_bss_3D8; + var_r26 = 4; + HuSprBankSet(lbl_1_bss_3DC, var_r26, temp_r24 % 10); + HuSprBankSet(lbl_1_bss_3DC, var_r26 + 1, temp_r24 / 10); + HuSprAttrReset(lbl_1_bss_3DC, var_r26 + 1, HUSPR_ATTR_DISPOFF); + omVibrate(0, 12, 6, 6); + HuAudFXPlay(0x45); + HuAudFXPlay(0x5EE); + var_r30 = &lbl_1_bss_340[0]; + temp_r31->unk2C = fn_1_14B4(atan2d(temp_r31->unk14.x - var_r30->unk4C.x, temp_r31->unk14.z - var_r30->unk4C.z)); + Hu3DMotionTimeSet(temp_r31->unk02, 0.0f); + Hu3DModelAttrReset(temp_r31->unk02, HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(temp_r31->unk02, var_r30->unk4C.x + var_r30->unk84 * sind(temp_r31->unk2C), temp_r31->unk14.y + 50.0f, var_r30->unk4C.z + var_r30->unk84 * cosd(temp_r31->unk2C)); + i = 0; + var_f29 = temp_r31->unk14.x; + var_f28 = temp_r31->unk14.z; + while (TRUE) { + var_f29 += 30.0 * sind(var_r30->unk94); + var_f28 += 30.0 * cosd(var_r30->unk94); + if (ABS_INV(var_f29) > 1500.0f || var_f28 > 1300.0f || var_f28 < -2000.0f) { + break; + } + i++; + } + sp8 = temp_r31->unk14.y; + var_f27 = 0.0f; + temp_f23 = 180.0f / i; + spC = 0; + for (; i != 0; i--) { + temp_r31->unk14.x += 30.0 * sind(temp_r31->unk2C); + temp_r31->unk14.y = 400.0 * sind(var_f27); + temp_r31->unk14.z += 30.0 * cosd(temp_r31->unk2C); + var_f27 += temp_f23; + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14.x, temp_r31->unk14.y, temp_r31->unk14.z); + HuPrcVSleep(); + } + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14.x, -1000.0f, temp_r31->unk14.z); + temp_r31->unk10 = 2; + Hu3DModelAttrSet(temp_r31->unk02, HU3D_ATTR_DISPOFF); + goto loop_1; + } + } +} + +void fn_1_545C(ModelData* model, ParticleData* particle, Mtx matrix) { + HsfanimStruct01* var_r31; + StructBss340* temp_r28; + float var_f30; + float var_f31; + float temp_f29; + s32 var_r27; + s16 i; + s16 j; + s16 k; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + var_r31->unk14.x = var_r31->unk2C = 0.0f; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < 1; i++) { + temp_r28 = &lbl_1_bss_340[i]; + if (!(temp_r28->unk30 & 1)) { + continue; + } + for (j = 0, var_f30 = 0.0f; j < 16; j++, var_f30 += 22.5f) { + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk14.x == 0.0f) { + break; + } + } + if (k == particle->unk_30) { + break; + } + var_f31 = var_f30; + temp_f29 = 125.0f + 70.0f * frandf(); + var_r31->unk34.x = temp_r28->unk6C + temp_f29 * sind(var_f31); + var_r31->unk34.y = temp_r28->unk70 + 50.0f * frandf(); + var_r31->unk34.z = temp_r28->unk74 + temp_f29 * cosd(var_f31); + var_r31->unk08.x = 5.0 * sind(var_f31); + var_r31->unk08.y = 9.0f + 2.0f * frandf(); + var_r31->unk08.z = 5.0 * cosd(var_f31); + var_r31->unk14.x = 30.0f; + var_r31->unk2C = 80.0f + 20.0f * frandf(); + var_r31->unk14.y = 15.0f; + var_r31->unk40.a = 0xC8; + var_r31->unk14.z = 17.0f; + } + temp_r28->unk30 &= ~1; + } + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk14.x == 0.0f) { + continue; + } + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + var_r31->unk08.x *= 0.95f; + var_r31->unk08.z *= 0.95f; + if (var_r31->unk08.y > 0.1f) { + var_r31->unk08.y -= 0.2f; + } + if (var_r31->unk08.y < 0.0f) { + var_r31->unk08.y = 0.0f; + } + var_r31->unk2C += var_r31->unk14.y; + if (var_r31->unk14.y > 2.0f) { + var_r31->unk14.y -= 1.5f; + } + var_r27 = var_r31->unk40.a; + var_r27 -= var_r31->unk14.z; + if (var_r31->unk14.z > 3.0f) { + var_r31->unk14.z -= 1.0f; + } + if (var_r27 < 0) { + var_r27 = 0; + var_r31->unk14.x = 0.0f; + } + var_r31->unk40.a = var_r27; + if (var_r31->unk14.x == 0.0f) { + var_r31->unk2C = 0.0f; + } + } +} + +void fn_1_594C(ModelData* model, ParticleData* particle, Mtx matrix) { + HsfanimStruct01* var_r31; + StructBss340* temp_r28; + float temp_f31; + float temp_f30; + s32 var_r27; + s16 i; + s16 j; + s16 k; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + var_r31->unk14.x = var_r31->unk2C = 0.0f; + var_r31->unk20 = -1.0f; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < 1; i++) { + temp_r28 = &lbl_1_bss_340[i]; + if (!(temp_r28->unk30 & 2)) { + continue; + } + for (j = 0; j < 10; j++) { + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk14.x == 0.0f) { + break; + } + } + if (k == particle->unk_30) { + break; + } + temp_f31 = 400.0f * frandf() - 200.0f; + temp_f30 = 400.0f * frandf() - 200.0f; + var_r31->unk34.x = temp_r28->unk6C + temp_f31; + var_r31->unk34.y = temp_r28->unk70 + 50.0f; + var_r31->unk34.z = temp_r28->unk74 + temp_f30; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 7.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20 = frandmod(10); + var_r31->unk24 = 0.0f; + var_r31->unk14.x = 100.0f; + var_r31->unk2C = 0.0f; + var_r31->unk14.y = 7.0f; + var_r31->unk40.a = 0xFF; + var_r31->unk14.z = 10.0f; + } + temp_r28->unk30 &= ~2; + } + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk20 > 0.0f) { + var_r31->unk20 -= 1.0f; + } + if (var_r31->unk20 == 0.0f) { + var_r31->unk24 = 1.0f; + var_r31->unk2C = 100.0f + 100.0f * frandf(); + var_r31->unk20 = -1.0f; + } + if (var_r31->unk14.x == 0.0f || var_r31->unk24 == 0.0f) { + continue; + } + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + if (var_r31->unk08.y > 1.0f) { + var_r31->unk08.y -= 0.3f; + } + var_r31->unk2C += var_r31->unk14.y; + if (var_r31->unk14.y > 2.0f) { + var_r31->unk14.y -= 0.4f; + } + var_r27 = var_r31->unk40.a; + var_r27 -= var_r31->unk14.z; + if (var_r31->unk14.z > 3.0f) { + var_r31->unk14.z -= 1.0f; + } + if (var_r27 < 0) { + var_r27 = 0; + var_r31->unk14.x = 0.0f; + } + var_r31->unk40.a = var_r27; + if (var_r31->unk14.x == 0.0f) { + var_r31->unk2C = 0.0f; + } + } +} + +void fn_1_5DE4(ModelData* model, ParticleData* particle, Mtx matrix) { + HsfanimStruct01* var_r31; + StructBss340* temp_r28; + float temp_f31; + float temp_f30; + s32 var_r27; + s16 i; + s16 j; + s16 k; + + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + var_r31->unk14.x = var_r31->unk2C = 0.0f; + var_r31->unk20 = -1.0f; + } + } + var_r31 = particle->unk_48; + for (i = 0; i < 1; i++) { + temp_r28 = &lbl_1_bss_340[i]; + if (!(temp_r28->unk30 & 4)) { + continue; + } + for (j = 0; j < 10; j++) { + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk14.x == 0.0f) { + break; + } + } + if (k == particle->unk_30) { + break; + } + temp_f31 = 400.0f * frandf() - 200.0f; + temp_f30 = 400.0f * frandf() - 200.0f; + var_r31->unk34.x = temp_r28->unk6C + temp_f31; + var_r31->unk34.y = temp_r28->unk70 + 50.0f; + var_r31->unk34.z = temp_r28->unk74 + temp_f30; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 7.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20 = frandmod(10); + var_r31->unk24 = 0.0f; + var_r31->unk14.x = 100.0f; + var_r31->unk2C = 0.0f; + var_r31->unk14.y = 7.0f; + var_r31->unk40.a = 0xFF; + var_r31->unk14.z = 10.0f; + } + temp_r28->unk30 &= ~4; + } + var_r31 = particle->unk_48; + for (k = 0; k < particle->unk_30; k++, var_r31++) { + if (var_r31->unk20 > 0.0f) { + var_r31->unk20 -= 1.0f; + } + if (var_r31->unk20 == 0.0f) { + var_r31->unk24 = 1.0f; + var_r31->unk2C = 100.0f + 100.0f * frandf(); + var_r31->unk20 = -1.0f; + } + if (var_r31->unk14.x == 0.0f || var_r31->unk24 == 0.0f) { + continue; + } + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + if (var_r31->unk08.y > 1.0f) { + var_r31->unk08.y -= 0.3f; + } + var_r31->unk2C += var_r31->unk14.y; + if (var_r31->unk14.y > 2.0f) { + var_r31->unk14.y -= 0.4f; + } + var_r27 = var_r31->unk40.a; + var_r27 -= var_r31->unk14.z; + if (var_r31->unk14.z > 3.0f) { + var_r31->unk14.z -= 1.0f; + } + if (var_r27 < 0) { + var_r27 = 0; + var_r31->unk14.x = 0.0f; + } + var_r31->unk40.a = var_r27; + if (var_r31->unk14.x == 0.0f) { + var_r31->unk2C = 0.0f; + } + } +} + +s8 fn_1_627C(s32 arg0, s32 arg1) { + StructBss340* temp_r31; + s8 var_r30; + + temp_r31 = &lbl_1_bss_340[arg0]; + (arg1 != 0) ? (var_r30 = HuPadStkY[temp_r31->unk28]) : (var_r30 = HuPadStkX[temp_r31->unk28]); + return var_r30; +} + +u8 fn_1_62F0(s32 arg0, s32 arg1) { + StructBss340* temp_r31; + s8 var_r30; + + temp_r31 = &lbl_1_bss_340[arg0]; + (arg1 != 0) ? (var_r30 = HuPadTrigR[temp_r31->unk28]) : (var_r30 = HuPadTrigL[temp_r31->unk28]); + return var_r30; +} + +u16 fn_1_636C(s32 arg0) { + StructBss340* temp_r31; + u16 var_r30; + + temp_r31 = &lbl_1_bss_340[arg0]; + var_r30 = HuPadBtnDown[temp_r31->unk28]; + return var_r30; +} + +u16 fn_1_63B4(s32 arg0) { + StructBss340* temp_r31; + u16 var_r30; + + temp_r31 = &lbl_1_bss_340[arg0]; + var_r30 = HuPadBtn[temp_r31->unk28]; + return var_r30; +} + +s32 fn_1_63FC(StructBss340* arg0) { + Vec sp24; + Vec sp18; + Vec spC; + StructBss70* temp_r31; + s32 var_r28; + s32 i; + + var_r28 = -1; + HuSetVecF(&sp24, arg0->unk4C.x, arg0->unk4C.y, arg0->unk4C.z); + for (i = 0; i < 10; i++) { + temp_r31 = &lbl_1_bss_70[i]; + HuSetVecF(&sp18, temp_r31->unk14.x, temp_r31->unk14.y, temp_r31->unk14.z); + HuSubVecF(&spC, &sp24, &sp18); + if (VECMagXYZ(&spC) < arg0->unk84 + temp_r31->unk30) { + temp_r31->unk10 = 3; + var_r28 = i; + } + } + return var_r28; +} + +s32 fn_1_65D0(StructBss340* arg0) { + float var_f31; + float var_f30; + s32 sp8; + + var_f31 = fn_1_1534(arg0->unk4C.z, arg0->unk84); + var_f30 = fn_1_1534(arg0->unk4C.x, arg0->unk84); + if (arg0->unk4C.x > var_f31 - arg0->unk84) { + arg0->unk4C.x = var_f31 - arg0->unk84; + } + if (arg0->unk4C.x < -(var_f31 - arg0->unk84)) { + arg0->unk4C.x = -(var_f31 - arg0->unk84); + } + if (arg0->unk4C.z > var_f30 - arg0->unk84) { + arg0->unk4C.z = var_f30 - arg0->unk84; + } + if (arg0->unk4C.z < -(var_f30 - arg0->unk84)) { + arg0->unk4C.z = -(var_f30 - arg0->unk84); + } + return sp8; +} + +float fn_1_67F0(float arg0, float arg1, float arg2) { + float var_f30; + float var_f31; + + var_f31 = fmod(arg1 - arg0, 360.0); + if (0.0f > var_f31) { + var_f31 += 360.0f; + } + if (180.0f < var_f31) { + var_f31 -= 360.0f; + } + var_f30 = fmod(arg0 + var_f31 * arg2, 360.0); + if (0.0f > var_f30) { + var_f30 += 360.0f; + } + return var_f30; +} + +void fn_1_68F4(void) { + StructBss340* temp_r31; + s32 i; + + temp_r31 = HuPrcCurrentGet()->user_data; + for (i = 0; i < 20; i++) { + temp_r31->unk78.z -= 4.0f; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk78.x, temp_r31->unk78.y, temp_r31->unk78.z); + HuPrcVSleep(); + } + HuPrcKill(HuPrcCurrentGet()); + while (TRUE) { + HuPrcVSleep(); + } +} + +s32 fn_1_6964(StructBss340* arg0) { + return (arg0->unk2C == 4 || arg0->unk2C == 5 || arg0->unk2C == 6); +} + +void fn_1_69C0(void) { + float var_f23; + float var_f27; + float var_f26; + StructBss340* temp_r31; + s16 var_r29; + s32 var_r24; + s32 var_r23; + Process* var_r22; + s32 var_r26; + s32 var_r25; + s32 var_r28; + s32 spA4; + + temp_r31 = HuPrcCurrentGet()->user_data; + temp_r31->unk2C = 0; + temp_r31->unk48 = 0; + temp_r31->unk30 = 0; + while (lbl_1_bss_3E4 == 0) { + HuPrcVSleep(); + } + lbl_1_bss_3E4 = 2; + while (lbl_1_bss_3E4 == 2) { + HuPrcVSleep(); + } + var_r29 = -1; + while (TRUE) { + temp_r31->unk58 = temp_r31->unk4C.x; + temp_r31->unk5C = temp_r31->unk4C.z; + if (temp_r31->unk16[4] != 0) { + break; + } + switch (temp_r31->unk2C) { + case 8: + if (temp_r31->unk3C != 0) { + temp_r31->unk3C--; + } else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + temp_r31->unk2C = 0; + } + break; + case 4: + omVibrate(temp_r31->unk20, 12, 4, 2); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + temp_r31->unk3C = 90; + temp_r31->unk44 = 30; + temp_r31->unk2C = 5; + break; + case 5: + if (temp_r31->unk44-- == 0) { + temp_r31->unk6C = temp_r31->unk4C.x; + temp_r31->unk70 = temp_r31->unk4C.y; + temp_r31->unk74 = temp_r31->unk4C.z; + temp_r31->unk30 |= 1; + } + if (temp_r31->unk3C != 0) { + temp_r31->unk3C--; + } else { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[5]); + Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); + temp_r31->unk2C = 6; + } + break; + case 6: + if (Hu3DMotionEndCheck(temp_r31->unk00) == TRUE) { + Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[0]); + temp_r31->unk2C = 0; + } + break; + default: + if (fn_1_627C(temp_r31->unk20, 0) > 20) { + temp_r31->unk94 -= temp_r31->unk90; + if (temp_r31->unk94 < 0.0f) { + temp_r31->unk94 += 360.0f; + } + temp_r31->unk60.y = temp_r31->unk94; + } + if (fn_1_627C(temp_r31->unk20, 0) < -20) { + temp_r31->unk94 += temp_r31->unk90; + if (temp_r31->unk94 > 360.0f) { + temp_r31->unk94 -= 360.0f; + } + temp_r31->unk60.y = temp_r31->unk94; + } + if (fn_1_63B4(temp_r31->unk20) & PAD_BUTTON_A) { + temp_r31->unk4C.x += temp_r31->unk88 * sind(temp_r31->unk94); + temp_r31->unk4C.z += temp_r31->unk88 * cosd(temp_r31->unk94); + } + if (fn_1_63B4(temp_r31->unk20) & PAD_BUTTON_B) { + temp_r31->unk4C.x -= temp_r31->unk88 * sind(temp_r31->unk94); + temp_r31->unk4C.z -= temp_r31->unk88 * cosd(temp_r31->unk94); + } + if (fn_1_63B4(temp_r31->unk20) & (PAD_BUTTON_A | PAD_BUTTON_B)) { + if (temp_r31->unk34 != 1) { + if (temp_r31->unk2C != 2) { + temp_r31->unk2C = 2; + if (fn_1_63B4(temp_r31->unk20) & PAD_BUTTON_A) { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } + if (var_r29 != -1) { + HuAudFXStop(var_r29); + } + } + } else { + if (temp_r31->unk2C != 3) { + temp_r31->unk2C = 3; + temp_r31->unk48 = 0; + if (fn_1_63B4(temp_r31->unk20) & PAD_BUTTON_A) { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } else { + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); + } + if (var_r29 != -1) { + HuAudFXStop(var_r29); + } + } + } + if (temp_r31->unk34 != 1) { + var_r24 = 8; + var_r23 = 32; + } else { + var_r24 = 7; + var_r23 = 22; + } + if (temp_r31->unk48 == var_r24) { + HuAudFXPlay(0x5E0); + } + if (temp_r31->unk48 == var_r23) { + HuAudFXPlay(0x5E0); + } + temp_r31->unk48++; + if (temp_r31->unk34 != 1) { + if (temp_r31->unk48 >= 50) { + temp_r31->unk48 -= 50; + } + } else { + if (temp_r31->unk48 >= 30) { + temp_r31->unk48 -= 30; + } + } + } else { + if (ABS_INV(fn_1_627C(temp_r31->unk20, 0)) <= 20) { + if (temp_r31->unk2C != 0) { + temp_r31->unk2C = 0; + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + if (var_r29 != -1) { + HuAudFXStop(var_r29); + } + } + } else { + if (temp_r31->unk2C != 1) { + temp_r31->unk2C = 1; + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSpeedSet(temp_r31->unk00, 1.5f); + var_r29 = HuAudFXPlay(0x5EB); + } + } + } + if (fn_1_63FC(temp_r31) != -1) { + } + if ((spA4 = fn_1_65D0(temp_r31)) != -1) { + } + break; + } + Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk60.x, temp_r31->unk60.y, temp_r31->unk60.z); + HuPrcVSleep(); + } + if (var_r29 != -1) { + HuAudFXStop(var_r29); + } + if (lbl_1_bss_3D8 == 0) { + HuAudFXPlay(0x5EA); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); + HuPrcSleep(90); + Hu3DModelAttrReset(temp_r31->unk04, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(temp_r31->unk04, HU3D_MOTATTR_PAUSE); + Hu3DModelPosSet(temp_r31->unk04, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[7], 0.0f, 5.0f, HU3D_MOTATTR_NONE); + HuAudFXPlay(0x5E3); + HuPrcSleep(15); + HuPrcSleep(30); + temp_r31->unk6C = temp_r31->unk4C.x; + temp_r31->unk70 = temp_r31->unk4C.y; + temp_r31->unk74 = temp_r31->unk4C.z; + temp_r31->unk30 |= 2; + while (!Hu3DMotionEndCheck(temp_r31->unk00)) { + HuPrcVSleep(); + } + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk20].character], temp_r31->unk16[3], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + Hu3DModelHookReset(temp_r31->unk00); + Hu3DModelShadowSet(temp_r31->unk02); + var_f27 = 50.0f; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk4C.x, temp_r31->unk4C.y + var_f27, temp_r31->unk4C.z); + HuPrcSleep(60); + for (var_r26 = 0, var_r25 = 0; var_r26 < 90; var_r26++) { + if (var_r25 & 1) { + Hu3DModelAttrReset(temp_r31->unk00, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(temp_r31->unk04, HU3D_ATTR_DISPOFF); + } else { + Hu3DModelAttrSet(temp_r31->unk00, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(temp_r31->unk04, HU3D_ATTR_DISPOFF); + } + var_r25++; + HuPrcVSleep(); + } + Hu3DModelAttrSet(temp_r31->unk04, HU3D_ATTR_DISPOFF); + for (var_r28 = 0, var_f23 = 1.0f; var_r28 < 30; var_r28++) { + var_f23 -= 0.033333335f; + Hu3DModelTPLvlSet(temp_r31->unk00, var_f23); + if (var_f27 > 0.0f) { + var_f27 -= 5.0f; + Hu3DModelPosSet(temp_r31->unk02, temp_r31->unk4C.x, temp_r31->unk4C.y + var_f27, temp_r31->unk4C.z); + } + HuPrcVSleep(); + } + Hu3DModelAttrSet(temp_r31->unk00, HU3D_ATTR_DISPOFF); + HuAudSStreamPlay(4); + HuPrcSleep(180); + } else { + var_f26 = temp_r31->unk90; + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); + if (fn_1_14B4(temp_r31->unk60.y) != 0.0f) { + var_r28 = (360.0f - fn_1_14B4(temp_r31->unk60.y)) / var_f26; + if (temp_r31->unk60.y < 180.0f) { + var_r28 = temp_r31->unk60.y / var_f26; + var_f26 = -var_f26; + } + for (; var_r28 != 0; var_r28--) { + temp_r31->unk60.y += var_f26; + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk60.x, temp_r31->unk60.y, temp_r31->unk60.z); + HuPrcVSleep(); + } + Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk60.x, 0.0f, temp_r31->unk60.z); + } + Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); + while (lbl_1_bss_3E4 < 5) { + HuPrcVSleep(); + } + HuAudSStreamPlay(1); + var_r22 = HuPrcChildCreate(fn_1_68F4, 0x2000, 0x1000, 0, HuPrcCurrentGet()); + var_r22->user_data = temp_r31; + HuAudPlayerVoicePlay(temp_r31->unk20, 0x122); + CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk20].character], temp_r31->unk16[2], 0.0f, 2.0f, HU3D_MOTATTR_NONE); + temp_r31->unk2C = 10; + HuPrcSleep(180); + } + lbl_1_bss_3E4 = 6; + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_7D3C(void) { +} + +void fn_1_7D40(void) { + while (TRUE) { + if (omSysExitReq == 1) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuAudFadeOut(1000); + HuPrcSleep(60); + MGSeqKillAll(); + omOvlReturnEx(1, 1); + while (TRUE) { + HuPrcVSleep(); + } + } + HuPrcVSleep(); + } +} + +void fn_1_7DA0(void) { + s16 temp_r31; + s16 var_r30; + s16 temp_r26; + s32 var_r24; + s32 i; + + lbl_1_bss_3E4 = 0; + lbl_1_bss_3E4 = 1; + while (lbl_1_bss_3E4 == 1) { + HuPrcVSleep(); + } + var_r24 = HuAudSeqPlay(0x46); + temp_r31 = MGSeqStartCreate(); + while (MGSeqStatGet(temp_r31) != 0) { + HuPrcVSleep(); + } + fn_1_16F8(); + var_r30 = 1859; + temp_r26 = MGSeqTimerCreate(var_r30 / 60); + lbl_1_bss_3E4 = 3; + while (TRUE) { + if (var_r30 < 59) { + break; + } + MGSeqParamSet(temp_r26, 1, var_r30-- / 60); + lbl_1_bss_3E0++; + HuPrcVSleep(); + } + for (i = 0; i < 1; i++) { + lbl_1_bss_340[i].unk1E = 1; + } + lbl_1_bss_3E4 = 4; + HuAudSeqFadeOut(var_r24, 6); + MGSeqParamSet(temp_r26, 2, -1); + temp_r31 = MGSeqFinishCreate(); + while (MGSeqStatGet(temp_r31) != 0) { + HuPrcVSleep(); + } + mgRecordExtra = lbl_1_bss_3D8; + if (GWMGRecordGet(14) < lbl_1_bss_3D8) { + GWMGRecordSet(14, lbl_1_bss_3D8); + temp_r31 = MGSeqRecordCreate(lbl_1_bss_3D8); + HuPrcChildCreate(fn_1_1634, 0x1000, 0x1000, 0, HuPrcCurrentGet()); + fn_1_17A0(lbl_1_bss_3D8, 1); + while (MGSeqStatGet(temp_r31) != 0) { + HuPrcVSleep(); + } + lbl_1_bss_3E4 = 5; + } else { + lbl_1_bss_3E4 = 5; + } + while (lbl_1_bss_3E4 < 6) { + HuPrcVSleep(); + } + HuPrcSleep(30); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + HuPrcSleep(60); + HuAudFadeOut(1); + MGSeqKillAll(); + omOvlReturnEx(1, 1); + while (TRUE) { + HuPrcVSleep(); + } +} diff --git a/src/REL/mentDll/main.c b/src/REL/mentDll/main.c index 847ac234..03f49eb0 100644 --- a/src/REL/mentDll/main.c +++ b/src/REL/mentDll/main.c @@ -3739,19 +3739,19 @@ void fn_1_14BA8(void) s32 var_r30; var_r30 = lbl_1_bss_35BC[0].unk_30; for (var_r31 = 0; var_r31 < 0x35; var_r31++) { - HuSprAttrSet(var_r30, var_r31, 4); + HuSprAttrSet(var_r30, var_r31, HUSPR_ATTR_DISPOFF); } for (var_r31 = 0; var_r31 < 8; var_r31++) { HuSprBankSet(var_r30, var_r31, 0); - HuSprAttrReset(var_r30, var_r31, 4); - HuSprAttrReset(var_r30, var_r31 + 8, 4); + HuSprAttrReset(var_r30, var_r31, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 8, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, 0x28, 4); + HuSprAttrReset(var_r30, 0x28, HUSPR_ATTR_DISPOFF); for (var_r31 = 0; var_r31 < 4; var_r31++) { HuSprBankSet(var_r30, var_r31 + 0x10, 0); HuSprBankSet(var_r30, var_r31 + 0x14, 0); - HuSprAttrReset(var_r30, var_r31 + 0x29, 4); - HuSprAttrReset(var_r30, var_r31 + 0x2D, 4); + HuSprAttrReset(var_r30, var_r31 + 0x29, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 0x2D, HUSPR_ATTR_DISPOFF); } HuSprGrpPosSet(var_r30, 0.0f, -500.0f); } @@ -3809,19 +3809,19 @@ void fn_1_14CE0(void) var_r30 = lbl_1_bss_35BC[0].unk_30; for (var_r31 = 0; var_r31 < 4; var_r31++) { if (lbl_1_bss_3114[var_r31].unk_60 != 0) { - HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x10, 4); - HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x14, 4); + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x10, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x14, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x10, 4); - HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x14, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x10, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x14, HUSPR_ATTR_DISPOFF); } HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x10, lbl_1_data_57C[lbl_1_bss_3114[var_r31].unk_68 % 4][0], lbl_1_data_57C[lbl_1_bss_3114[var_r31].unk_68 / 4][1]); HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x14, lbl_1_data_57C[lbl_1_bss_3114[var_r31].unk_68 % 4][0], lbl_1_data_57C[lbl_1_bss_3114[var_r31].unk_68 / 4][1]); } - for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + for (var_r31 = 0; var_r31 <= 60; var_r31++) { fn_1_4D8(); if (var_r31 <= 0x32) { var_f31 = fn_1_32C(-500.0f, 10.0f, var_r31, 50.0f); @@ -3918,19 +3918,19 @@ void fn_1_151B8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) } var_r27 = lbl_1_bss_35BC[0].unk_30; for (var_r28 = 0; var_r28 < 0x35; var_r28++) { - HuSprAttrSet(var_r27, var_r28, 4); + HuSprAttrSet(var_r27, var_r28, HUSPR_ATTR_DISPOFF); } for (var_r28 = 0; var_r28 < 8; var_r28++) { HuSprBankSet(var_r27, var_r28, 0); - HuSprAttrReset(var_r27, var_r28, 4); - HuSprAttrReset(var_r27, var_r28 + 8, 4); + HuSprAttrReset(var_r27, var_r28, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r27, var_r28 + 8, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r27, 0x28, 4); + HuSprAttrReset(var_r27, 0x28, HUSPR_ATTR_DISPOFF); for (var_r28 = 0; var_r28 < 4; var_r28++) { HuSprBankSet(var_r27, var_r28 + 0x10, 0); HuSprBankSet(var_r27, var_r28 + 0x14, 0); - HuSprAttrReset(var_r27, var_r28 + 0x29, 4); - HuSprAttrReset(var_r27, var_r28 + 0x2D, 4); + HuSprAttrReset(var_r27, var_r28 + 0x29, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r27, var_r28 + 0x2D, HUSPR_ATTR_DISPOFF); } HuSprGrpPosSet(var_r27, 0.0f, -500.0f); } @@ -4093,8 +4093,8 @@ void fn_1_162A0(MentDllUnkBss3114Struct *arg0) HuSprBankSet(var_r30, arg0->unk_58 + 0x20, arg0->unk_64); HuSprPosSet(var_r30, arg0->unk_58 + 0x20, lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x23); HuSprPosSet(var_r30, arg0->unk_58 + 0x24, lbl_1_data_57C[arg0->unk_68 % 4][0] + 1, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); - HuSprAttrReset(var_r30, arg0->unk_58 + 0x20, 4); - HuSprAttrReset(var_r30, arg0->unk_58 + 0x24, 4); + HuSprAttrReset(var_r30, arg0->unk_58 + 0x20, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, arg0->unk_58 + 0x24, HUSPR_ATTR_DISPOFF); } s32 fn_1_1648C(MentDllUnkBss3114Struct *arg0) @@ -4174,8 +4174,8 @@ s32 fn_1_1648C(MentDllUnkBss3114Struct *arg0) if (var_r27 == 1) { HuSprPosSet(var_r29, arg0->unk_58 + 49, lbl_1_data_57C[arg0->unk_68 % 4][0], lbl_1_data_57C[arg0->unk_68 / 4][1] + 35); HuSprBankSet(var_r29, arg0->unk_58 + 49, arg0->unk_64); - HuSprAttrReset(var_r29, arg0->unk_58 + 49, 4); - HuSprAttrSet(var_r29, arg0->unk_58 + 32, 4); + HuSprAttrReset(var_r29, arg0->unk_58 + 49, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r29, arg0->unk_58 + 32, HUSPR_ATTR_DISPOFF); } return var_r27; @@ -4327,11 +4327,11 @@ void fn_1_173FC(MentDllUnkBss3114Struct *arg0) HuSprPosSet(var_r30, arg0->unk_58 + 0x24, lbl_1_data_57C[arg0->unk_68 % 4][0] + 1, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); HuSprPosSet(var_r30, arg0->unk_58 + 0x31, lbl_1_data_57C[arg0->unk_68 % 4][0] + 1, lbl_1_data_57C[arg0->unk_68 / 4][1] + 0x25); arg0->unk_70[2] = 0; - HuSprAttrReset(var_r30, arg0->unk_58 + 0x18, 4); - HuSprAttrReset(var_r30, arg0->unk_58 + 0x1C, 4); - HuSprAttrSet(var_r30, arg0->unk_58 + 0x20, 4); - HuSprAttrSet(var_r30, arg0->unk_58 + 0x24, 4); - HuSprAttrSet(var_r30, arg0->unk_58 + 0x31, 4); + HuSprAttrReset(var_r30, arg0->unk_58 + 0x18, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, arg0->unk_58 + 0x1C, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x20, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x24, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, arg0->unk_58 + 0x31, HUSPR_ATTR_DISPOFF); } void fn_1_17914(MentDllUnkBss3114Struct *arg0) @@ -4355,24 +4355,24 @@ void fn_1_179DC(void) var_r30 = lbl_1_bss_35BC[0].unk_34; for (var_r29 = 0; var_r29 < 0x11; var_r29++) { - HuSprAttrSet(var_r30, var_r29, 4); + HuSprAttrSet(var_r30, var_r29, HUSPR_ATTR_DISPOFF); } for (var_r29 = 0; var_r29 < 4; var_r29++) { var_r31 = &lbl_1_bss_3114[var_r29]; HuSprPosSet(var_r30, var_r31->unk_68, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1]); - HuSprAttrReset(var_r30, var_r31->unk_68, 4); + HuSprAttrReset(var_r30, var_r31->unk_68, HUSPR_ATTR_DISPOFF); if (var_r31->unk_60 == 0) { HuSprBankSet(var_r30, var_r31->unk_58 + 8, var_r31->unk_58); HuSprPosSet(var_r30, var_r31->unk_58 + 8, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); - HuSprAttrReset(var_r30, var_r31->unk_58 + 8, 4); + HuSprAttrReset(var_r30, var_r31->unk_58 + 8, HUSPR_ATTR_DISPOFF); } else { HuSprBankSet(var_r30, var_r31->unk_58 + 0xC, var_r31->unk_64); HuSprPosSet(var_r30, var_r31->unk_58 + 0xC, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); - HuSprAttrReset(var_r30, var_r31->unk_58 + 0xC, 4); + HuSprAttrReset(var_r30, var_r31->unk_58 + 0xC, HUSPR_ATTR_DISPOFF); } } - HuSprAttrReset(var_r30, 0x10, 4); + HuSprAttrReset(var_r30, 0x10, HUSPR_ATTR_DISPOFF); HuSprGrpPosSet(var_r30, 16.0f, -500.0f); } @@ -4407,24 +4407,24 @@ void fn_1_17CC8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) HuSprPosSet(var_r26, 0x10, 96.0f, 32.0f); var_r29 = lbl_1_bss_35BC[0].unk_34; for (var_r28 = 0; var_r28 < 0x11; var_r28++) { - HuSprAttrSet(var_r29, var_r28, 4); + HuSprAttrSet(var_r29, var_r28, HUSPR_ATTR_DISPOFF); } for (var_r28 = 0; var_r28 < 4; var_r28++) { var_r31 = &lbl_1_bss_3114[var_r28]; HuSprPosSet(var_r29, var_r31->unk_68, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1]); - HuSprAttrReset(var_r29, var_r31->unk_68, 4); + HuSprAttrReset(var_r29, var_r31->unk_68, HUSPR_ATTR_DISPOFF); if (var_r31->unk_60 == 0) { HuSprBankSet(var_r29, var_r31->unk_58 + 8, var_r31->unk_58); HuSprPosSet(var_r29, var_r31->unk_58 + 8, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); - HuSprAttrReset(var_r29, var_r31->unk_58 + 8, 4); + HuSprAttrReset(var_r29, var_r31->unk_58 + 8, HUSPR_ATTR_DISPOFF); } else { HuSprBankSet(var_r29, var_r31->unk_58 + 0xC, var_r31->unk_64); HuSprPosSet(var_r29, var_r31->unk_58 + 0xC, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); - HuSprAttrReset(var_r29, var_r31->unk_58 + 0xC, 4); + HuSprAttrReset(var_r29, var_r31->unk_58 + 0xC, HUSPR_ATTR_DISPOFF); } } - HuSprAttrReset(var_r29, 0x10, 4); + HuSprAttrReset(var_r29, 0x10, HUSPR_ATTR_DISPOFF); HuSprGrpPosSet(var_r29, 16.0f, -500.0f); } @@ -4438,24 +4438,24 @@ void fn_1_1811C(void) var_r30 = lbl_1_bss_35BC[0].unk_34; for (var_r29 = 0; var_r29 < 0x11; var_r29++) { - HuSprAttrSet(var_r30, var_r29, 4); + HuSprAttrSet(var_r30, var_r29, HUSPR_ATTR_DISPOFF); } for (var_r29 = 0; var_r29 < 4; var_r29++) { var_r31 = &lbl_1_bss_3114[var_r29]; HuSprPosSet(var_r30, var_r31->unk_68, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1]); - HuSprAttrReset(var_r30, var_r31->unk_68, 4); + HuSprAttrReset(var_r30, var_r31->unk_68, HUSPR_ATTR_DISPOFF); if (var_r31->unk_60 == 0) { HuSprBankSet(var_r30, var_r31->unk_58 + 8, var_r31->unk_58); HuSprPosSet(var_r30, var_r31->unk_58 + 8, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); - HuSprAttrReset(var_r30, var_r31->unk_58 + 8, 4); + HuSprAttrReset(var_r30, var_r31->unk_58 + 8, HUSPR_ATTR_DISPOFF); } else { HuSprBankSet(var_r30, var_r31->unk_58 + 0xC, var_r31->unk_64); HuSprPosSet(var_r30, var_r31->unk_58 + 0xC, lbl_1_data_5BC[var_r31->unk_58][0], lbl_1_data_5BC[var_r31->unk_58][1] + 0x19); - HuSprAttrReset(var_r30, var_r31->unk_58 + 0xC, 4); + HuSprAttrReset(var_r30, var_r31->unk_58 + 0xC, HUSPR_ATTR_DISPOFF); } } - HuSprAttrReset(var_r30, 0x10, 4); + HuSprAttrReset(var_r30, 0x10, HUSPR_ATTR_DISPOFF); HuSprGrpPosSet(var_r30, 16.0f, -500.0f); for (var_r28 = 0; var_r28 <= 0x3C; var_r28++) { fn_1_4D8(); @@ -4551,18 +4551,18 @@ void fn_1_18A54(s32 arg0) if (arg0 != 5) { HuSprBankSet(var_r31, 0, arg0); HuSprBankSet(var_r31, 1, arg0); - HuSprAttrSet(var_r31, 2, 4); - HuSprAttrSet(var_r31, 3, 4); - HuSprAttrReset(var_r31, 0, 4); - HuSprAttrReset(var_r31, 1, 4); + HuSprAttrSet(var_r31, 2, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r31, 3, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r31, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r31, 1, HUSPR_ATTR_DISPOFF); if (lbl_1_bss_A8[0] != 0) { if ((arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2)) != 0) || (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3)) != 0) || (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4)) != 0) || (arg0 == 3 && (_CheckFlag(FLAG_ID_MAKE(0, 5)) != 0)) || (arg0 == 4 && (_CheckFlag(FLAG_ID_MAKE(0, 6)) != 0))) { - HuSprAttrReset(var_r31, 4, 4); - HuSprAttrReset(var_r31, 5, 4); + HuSprAttrReset(var_r31, 4, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r31, 5, HUSPR_ATTR_DISPOFF); HuSprTPLvlSet(var_r31, 5, 0.8f); - HuSprAttrReset(var_r31, 6, 4); + HuSprAttrReset(var_r31, 6, HUSPR_ATTR_DISPOFF); HuSprTPLvlSet(var_r31, 6, 0.5f); } else { @@ -4573,10 +4573,10 @@ void fn_1_18A54(s32 arg0) } } else { - HuSprAttrSet(var_r31, 0, 4); - HuSprAttrSet(var_r31, 1, 4); - HuSprAttrReset(var_r31, 2, 4); - HuSprAttrReset(var_r31, 3, 4); + HuSprAttrSet(var_r31, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r31, 1, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r31, 2, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r31, 3, HUSPR_ATTR_DISPOFF); } lbl_1_bss_35BC[0].unk_08[0] = arg0; lbl_1_bss_35BC[0].unk_1C[1] = (rand8() % 10) * 0x24; @@ -4664,47 +4664,47 @@ void fn_1_190E8(void) var_r30 = lbl_1_bss_35BC[0].unk_3C; for (var_r31 = 0; var_r31 < 0x5B; var_r31++) { - HuSprAttrSet(var_r30, var_r31, 4); + HuSprAttrSet(var_r30, var_r31, HUSPR_ATTR_DISPOFF); } if (lbl_1_bss_A8[2] != 5) { HuSprBankSet(var_r30, 0, lbl_1_bss_A8[2]); - HuSprAttrReset(var_r30, 0, 4); + HuSprAttrReset(var_r30, 0, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrReset(var_r30, 1, 4); + HuSprAttrReset(var_r30, 1, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, 2, 4); + HuSprAttrReset(var_r30, 2, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, 2, 288.0f, lbl_1_data_5DC[0][1]); HuSprScaleSet(var_r30, 2, 1.0f, lbl_1_data_5DC[0][2]); for (var_r31 = 0; var_r31 < 2; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 3, 4); + HuSprAttrReset(var_r30, var_r31 + 3, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, var_r31 + 3, lbl_1_data_5DC[0][var_r31 + 3], lbl_1_data_5DC[0][1]); } for (var_r31 = 0; var_r31 < 4; var_r31++) { - HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 7, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 7, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 7, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], lbl_1_data_5DC[0][1]); - HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0xF, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0xF, HUSPR_ATTR_DISPOFF); HuSprPosSet( var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0xF, 1.0f + lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 2.0f + lbl_1_data_5DC[0][1]); - HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 0x1F, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 0x1F, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 0x1F, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], lbl_1_data_5DC[4][1] - 9.0f); - HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x27, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x27, HUSPR_ATTR_DISPOFF); HuSprPosSet( var_r30, lbl_1_bss_3114[var_r31].unk_58 + 0x27, 1.0f + lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], lbl_1_data_5DC[4][1] - 7.0f); if (lbl_1_bss_3114[var_r31].unk_60 != 0) { - HuSprAttrReset(var_r30, var_r31 + 0x1B, 4); + HuSprAttrReset(var_r30, var_r31 + 0x1B, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, var_r31 + 0x1B, lbl_1_bss_3114[var_r31].unk_64); HuSprPosSet(var_r30, var_r31 + 0x1B, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 21.0f + lbl_1_data_5DC[0][1]); } else { - HuSprAttrReset(var_r30, var_r31 + 0x17, 4); + HuSprAttrReset(var_r30, var_r31 + 0x17, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, var_r31 + 0x17, lbl_1_bss_3114[var_r31].unk_58); HuSprPosSet(var_r30, var_r31 + 0x17, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0] - 8.0f, lbl_1_data_5DC[0][1] - 21.0f); } HuSprPosSet(var_r30, var_r31 + 0x2F, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 20.0f + lbl_1_data_5DC[4][1]); - HuSprAttrReset(var_r30, var_r31 + 0x2F, 4); + HuSprAttrReset(var_r30, var_r31 + 0x2F, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, var_r31 + 0x33, 10.0f + lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 21.0f + lbl_1_data_5DC[4][1]); - HuSprAttrReset(var_r30, var_r31 + 0x33, 4); + HuSprAttrReset(var_r30, var_r31 + 0x33, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, var_r31 + 0x33, 0); HuSprPosSet(var_r30, lbl_1_bss_3114[var_r31].unk_68 + 0x37, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], lbl_1_data_5DC[4][1] - 7.0f); HuSprPosSet(var_r30, var_r31 + 0x3F, lbl_1_data_5DC[lbl_1_bss_3114[var_r31].unk_58][0], 23.0f + lbl_1_data_5DC[4][1]); @@ -4713,37 +4713,37 @@ void fn_1_190E8(void) } HuSprPosSet(var_r30, 0x47, 340.0f, lbl_1_data_5DC[0][1]); HuSprScaleSet(var_r30, 0x47, 0.0f, 0.0f); - HuSprAttrReset(var_r30, 0x47, 4); + HuSprAttrReset(var_r30, 0x47, HUSPR_ATTR_DISPOFF); #if VERSION_NTSC - HuSprAttrReset(var_r30, 0x48, 4); + HuSprAttrReset(var_r30, 0x48, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, 0x48, 366.0f, lbl_1_data_5DC[1][1]); - HuSprAttrReset(var_r30, 0x49, 4); + HuSprAttrReset(var_r30, 0x49, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, 0x49, 367.0f, 2.0f + lbl_1_data_5DC[1][1]); #endif for (var_r31 = 0; var_r31 < 2; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 0x4A, 4); + HuSprAttrReset(var_r30, var_r31 + 0x4A, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, var_r31 + 0x4A, POSX1 - (var_r31 * (POSX1-POSX2)), lbl_1_data_5DC[1][1]); HuSprBankSet(var_r30, var_r31 + 0x4A, var_r31); - HuSprAttrReset(var_r30, var_r31 + 0x4C, 4); + HuSprAttrReset(var_r30, var_r31 + 0x4C, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, var_r31 + 0x4C, POSX1+1 - (var_r31 * (POSX1-POSX2)), 2.0f + lbl_1_data_5DC[1][1]); HuSprBankSet(var_r30, var_r31 + 0x4C, var_r31); } - HuSprAttrReset(var_r30, 0x4E, 4); + HuSprAttrReset(var_r30, 0x4E, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, 0x4E, 340.0f, lbl_1_data_5DC[2][1]); HuSprBankSet(var_r30, 0x4E, 0); - HuSprAttrReset(var_r30, 0x4F, 4); + HuSprAttrReset(var_r30, 0x4F, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, 0x4F, 341.0f, 2.0f + lbl_1_data_5DC[2][1]); HuSprBankSet(var_r30, 0x4F, 0); - HuSprAttrReset(var_r30, 0x50, 4); + HuSprAttrReset(var_r30, 0x50, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, 0x50, 340.0f, lbl_1_data_5DC[3][1]); HuSprBankSet(var_r30, 0x50, 0); - HuSprAttrReset(var_r30, 0x51, 4); + HuSprAttrReset(var_r30, 0x51, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r30, 0x51, 341.0f, 2.0f + lbl_1_data_5DC[3][1]); HuSprBankSet(var_r30, 0x51, 0); - HuSprAttrReset(var_r30, 0x52, 4); + HuSprAttrReset(var_r30, 0x52, HUSPR_ATTR_DISPOFF); for (var_r31 = 0; var_r31 < 4; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 0x53, 4); - HuSprAttrReset(var_r30, var_r31 + 0x57, 4); + HuSprAttrReset(var_r30, var_r31 + 0x53, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 0x57, HUSPR_ATTR_DISPOFF); } for (var_r31 = 0; var_r31 < 5; var_r31++) { HuWinPosSet(lbl_1_bss_35BC[0].unk_44[var_r31], 100.0f, -500.0f + (lbl_1_data_5DC[var_r31][1] - 21.0f)); @@ -5052,13 +5052,13 @@ void fn_1_19C98(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) HuSprPosSet(var_r30, 6, var_f31, 49.0f + lbl_1_data_5DC[4][1]); if (var_r29 == 3) { for (var_r28 = 0; var_r28 < 4; var_r28++) { - HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r28].unk_68 + 0x37, 4); - HuSprAttrSet(var_r30, var_r28 + 0x3F, 4); - HuSprAttrSet(var_r30, var_r28 + 0x43, 4); + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r28].unk_68 + 0x37, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, var_r28 + 0x3F, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, var_r28 + 0x43, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, lbl_1_bss_3114[arg1->unk_1C[4]].unk_68 + 0x37, 4); - HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x3F, 4); - HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x43, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[arg1->unk_1C[4]].unk_68 + 0x37, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x3F, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x43, HUSPR_ATTR_DISPOFF); } break; } @@ -5101,9 +5101,9 @@ void fn_1_19C98(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) HuSprPosSet(var_r30, 5, lbl_1_data_5DC[arg1->unk_1C[4]][0], (lbl_1_data_5DC[4][1] - var_f29) - 48.0f); HuSprPosSet(var_r30, 6, lbl_1_data_5DC[arg1->unk_1C[4]][0], 49.0f + (lbl_1_data_5DC[4][1] + var_f29)); for (var_r28 = 0; var_r28 < 4; var_r28++) { - HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r28].unk_68 + 0x37, 4); - HuSprAttrSet(var_r30, var_r28 + 0x3F, 4); - HuSprAttrSet(var_r30, var_r28 + 0x43, 4); + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r28].unk_68 + 0x37, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, var_r28 + 0x3F, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, var_r28 + 0x43, HUSPR_ATTR_DISPOFF); } } else { @@ -5111,8 +5111,8 @@ void fn_1_19C98(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) HuSprPosSet(var_r30, 3, var_f31, var_f29); var_f31 = fn_1_32C(sp8[1], 33.0f + lbl_1_data_5DC[arg1->unk_1C[4]][0], var_r29, 10.0f); HuSprPosSet(var_r30, 4, var_f31, var_f29); - HuSprAttrReset(var_r30, 5, 4); - HuSprAttrReset(var_r30, 6, 4); + HuSprAttrReset(var_r30, 5, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, 6, HUSPR_ATTR_DISPOFF); var_f30 = fn_1_32C(0.0f, 1.0f, var_r29, 10.0f); HuSprTPLvlSet(var_r30, 5, var_f30); HuSprTPLvlSet(var_r30, 6, var_f30); @@ -5120,15 +5120,15 @@ void fn_1_19C98(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) HuSprPosSet(var_r30, 5, lbl_1_data_5DC[arg1->unk_1C[4]][0], (lbl_1_data_5DC[4][1] - var_f29) - 48.0f); HuSprPosSet(var_r30, 6, lbl_1_data_5DC[arg1->unk_1C[4]][0], 49.0f + (lbl_1_data_5DC[4][1] + var_f29)); if (var_r29 == 3) { - HuSprAttrReset(var_r30, lbl_1_bss_3114[arg1->unk_1C[4]].unk_68 + 0x37, 4); - HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x3F, 4); - HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x43, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[arg1->unk_1C[4]].unk_68 + 0x37, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x3F, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, arg1->unk_1C[4] + 0x43, HUSPR_ATTR_DISPOFF); } } } if (arg1->unk_08[0] != 4) { - HuSprAttrSet(var_r30, 5, 4); - HuSprAttrSet(var_r30, 6, 4); + HuSprAttrSet(var_r30, 5, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, 6, HUSPR_ATTR_DISPOFF); } } lbl_1_bss_35BC[0].unk_08[3] = 0; @@ -5266,18 +5266,18 @@ void fn_1_1C554(void) var_r30 = lbl_1_bss_35BC[0].unk_3C; var_r29 = &lbl_1_bss_35BC[1]; - HuSprAttrReset(var_r30, 2, 4); + HuSprAttrReset(var_r30, 2, HUSPR_ATTR_DISPOFF); if (lbl_1_bss_35BC[1].unk_08[0] == 4) { for (var_r31 = 0; var_r31 < 4; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 3, 4); + HuSprAttrReset(var_r30, var_r31 + 3, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r29->unk_1C[4]].unk_68 + 0x37, 4); - HuSprAttrReset(var_r30, var_r29->unk_1C[4] + 0x3F, 4); - HuSprAttrReset(var_r30, var_r29->unk_1C[4] + 0x43, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114[var_r29->unk_1C[4]].unk_68 + 0x37, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r29->unk_1C[4] + 0x3F, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r29->unk_1C[4] + 0x43, HUSPR_ATTR_DISPOFF); return; } for (var_r31 = 0; var_r31 < 2; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 3, 4); + HuSprAttrReset(var_r30, var_r31 + 3, HUSPR_ATTR_DISPOFF); } } @@ -5289,13 +5289,13 @@ void fn_1_1C674(void) var_r30 = lbl_1_bss_35BC[0].unk_3C; var_r31 = &lbl_1_bss_35BC[1]; - HuSprAttrSet(var_r30, 2, 4); + HuSprAttrSet(var_r30, 2, HUSPR_ATTR_DISPOFF); for (var_r29 = 0; var_r29 < 4; var_r29++) { - HuSprAttrSet(var_r30, var_r29 + 3, 4); + HuSprAttrSet(var_r30, var_r29 + 3, HUSPR_ATTR_DISPOFF); } - HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31->unk_1C[4]].unk_68 + 0x37, 4); - HuSprAttrSet(var_r30, var_r31->unk_1C[4] + 0x3F, 4); - HuSprAttrSet(var_r30, var_r31->unk_1C[4] + 0x43, 4); + HuSprAttrSet(var_r30, lbl_1_bss_3114[var_r31->unk_1C[4]].unk_68 + 0x37, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, var_r31->unk_1C[4] + 0x3F, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(var_r30, var_r31->unk_1C[4] + 0x43, HUSPR_ATTR_DISPOFF); } void fn_1_1C754(void) @@ -5317,7 +5317,7 @@ void fn_1_1C754(void) HuSprAttrSet(var_r28, lbl_1_bss_3114[var_r30->unk_1C[4]].unk_68 + 0x37, 4); HuSprAttrSet(var_r28, var_r30->unk_1C[4] + 0x3F, 4); HuSprAttrSet(var_r28, var_r30->unk_1C[4] + 0x43, 4); - for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { + for (var_r31 = 0; var_r31 <= 60; var_r31++) { fn_1_4D8(); if (var_r31 <= 0x32) { var_f31 = fn_1_32C(-500.0f, 10.0f, var_r31, 50.0f); @@ -5372,12 +5372,12 @@ void fn_1_1CBC8(void) var_r30 = lbl_1_bss_35BC[0].unk_30; for (var_r31 = 0; var_r31 < 0x22; var_r31++) { - HuSprAttrSet(var_r30, var_r31, 4); + HuSprAttrSet(var_r30, var_r31, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, 0, 4); + HuSprAttrReset(var_r30, 0, HUSPR_ATTR_DISPOFF); for (var_r31 = 0; var_r31 < 4; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 1, 4); - HuSprAttrReset(var_r30, var_r31 + 5, 4); + HuSprAttrReset(var_r30, var_r31 + 1, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 5, HUSPR_ATTR_DISPOFF); } HuSprPosSet(var_r30, 0x1B, 288.0f, lbl_1_data_640[1][2]); HuSprScaleSet(var_r30, 0x1B, 1.0f, 0.75f); @@ -5385,19 +5385,19 @@ void fn_1_1CBC8(void) HuSprPosSet(var_r30, 0x1D, lbl_1_data_640[1][4], lbl_1_data_640[1][2]); for (var_r31 = 0; var_r31 < 8; var_r31++) { HuSprBankSet(var_r30, var_r31 + 9, 0); - HuSprAttrReset(var_r30, var_r31 + 9, 4); - HuSprAttrReset(var_r30, var_r31 + 0x11, 4); + HuSprAttrReset(var_r30, var_r31 + 9, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 0x11, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, 0x19, 4); - HuSprAttrReset(var_r30, 0x1A, 4); + HuSprAttrReset(var_r30, 0x19, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, 0x1A, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, 0x1E, 0); - HuSprAttrReset(var_r30, 0x1E, 4); + HuSprAttrReset(var_r30, 0x1E, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, 0x1F, 0); - HuSprAttrReset(var_r30, 0x1F, 4); + HuSprAttrReset(var_r30, 0x1F, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, 0x20, 0); - HuSprAttrReset(var_r30, 0x20, 4); + HuSprAttrReset(var_r30, 0x20, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, 0x21, 0); - HuSprAttrReset(var_r30, 0x21, 4); + HuSprAttrReset(var_r30, 0x21, HUSPR_ATTR_DISPOFF); for (var_r31 = 0; var_r31 < 3; var_r31++) { HuWinPosSet(lbl_1_bss_35BC->unk_44[var_r31], 100.0f, lbl_1_data_640[var_r31][2] - 0x209); } @@ -5548,9 +5548,9 @@ void fn_1_1DED8() s32 var_r31; var_r30 = lbl_1_bss_35BC[0].unk_30; - HuSprAttrReset(var_r30, 0x1B, 4); + HuSprAttrReset(var_r30, 0x1B, HUSPR_ATTR_DISPOFF); for (var_r31 = 0; var_r31 < 2; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 0x1C, 4); + HuSprAttrReset(var_r30, var_r31 + 0x1C, HUSPR_ATTR_DISPOFF); } } @@ -5907,11 +5907,11 @@ void fn_1_1F5F0(void) var_r31 = lbl_1_bss_35BC[0].unk_34; for (var_r30 = 0; var_r30 < 9; var_r30++) { - HuSprAttrSet(var_r31, var_r30, 4); + HuSprAttrSet(var_r31, var_r30, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r31, 0, 4); + HuSprAttrReset(var_r31, 0, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r31, 0, lbl_1_bss_35BC[0].unk_1C[0]); - HuSprAttrReset(var_r31, lbl_1_bss_3114->unk_68 + 1, 4); + HuSprAttrReset(var_r31, lbl_1_bss_3114->unk_68 + 1, HUSPR_ATTR_DISPOFF); HuSprGrpPosSet(var_r31, 16.0f, -500.0f); } @@ -5937,9 +5937,9 @@ void fn_1_1F6B8(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) for (var_r28 = 0; var_r28 < 9; var_r28++) { HuSprAttrSet(var_r30, var_r28, 4); } - HuSprAttrReset(var_r30, 0, 4); + HuSprAttrReset(var_r30, 0, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, 0, lbl_1_bss_35BC[0].unk_1C[0]); - HuSprAttrReset(var_r30, lbl_1_bss_3114->unk_68 + 1, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114->unk_68 + 1, HUSPR_ATTR_DISPOFF); HuSprGrpPosSet(var_r30, 16.0f, -500.0f); } @@ -5952,11 +5952,11 @@ void fn_1_1F868(void) var_r30 = lbl_1_bss_35BC[0].unk_34; for (var_r29 = 0; var_r29 < 9; var_r29++) { - HuSprAttrSet(var_r30, var_r29, 4); + HuSprAttrSet(var_r30, var_r29, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, 0, 4); + HuSprAttrReset(var_r30, 0, HUSPR_ATTR_DISPOFF); HuSprBankSet(var_r30, 0, lbl_1_bss_35BC[0].unk_1C[0]); - HuSprAttrReset(var_r30, lbl_1_bss_3114->unk_68 + 1, 4); + HuSprAttrReset(var_r30, lbl_1_bss_3114->unk_68 + 1, HUSPR_ATTR_DISPOFF); HuSprGrpPosSet(var_r30, 16.0f, -500.0f); for (var_r31 = 0; var_r31 <= 0x3C; var_r31++) { fn_1_4D8(); @@ -6023,13 +6023,13 @@ void fn_1_1FE08(void) for (var_r31 = 0; var_r31 < 4; var_r31++) { HuSprBankSet(var_r30, var_r31, 0); lbl_1_bss_3114[var_r31].unk_70[3] = lbl_1_bss_3114[var_r31].unk_60 = 0; - HuSprAttrReset(var_r30, var_r31, 4); - HuSprAttrReset(var_r30, var_r31 + 4, 4); + HuSprAttrReset(var_r30, var_r31, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 4, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, 0xA, 4); + HuSprAttrReset(var_r30, 0xA, HUSPR_ATTR_DISPOFF); for (var_r31 = 0; var_r31 < 4; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 0xB, 4); - HuSprAttrReset(var_r30, var_r31 + 0xF, 4); + HuSprAttrReset(var_r30, var_r31 + 0xB, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 0xF, HUSPR_ATTR_DISPOFF); } HuSprGrpPosSet(var_r30, 0.0f, -500.0f); } @@ -6153,18 +6153,18 @@ void fn_1_2055C(s32 arg0) spC = 0; var_r30 = lbl_1_bss_35BC[0].unk_40; for (var_r31 = 0; var_r31 < 0x13; var_r31++) { - HuSprAttrSet(var_r30, var_r31, 4); + HuSprAttrSet(var_r30, var_r31, HUSPR_ATTR_DISPOFF); } for (var_r31 = 0; var_r31 < 4; var_r31++) { HuSprBankSet(var_r30, var_r31, 0); lbl_1_bss_3114[var_r31].unk_70[3] = lbl_1_bss_3114[var_r31].unk_60 = 0; - HuSprAttrReset(var_r30, var_r31, 4); - HuSprAttrReset(var_r30, var_r31 + 4, 4); + HuSprAttrReset(var_r30, var_r31, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 4, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r30, 0xA, 4); + HuSprAttrReset(var_r30, 0xA, HUSPR_ATTR_DISPOFF); for (var_r31 = 0; var_r31 < 4; var_r31++) { - HuSprAttrReset(var_r30, var_r31 + 0xB, 4); - HuSprAttrReset(var_r30, var_r31 + 0xF, 4); + HuSprAttrReset(var_r30, var_r31 + 0xB, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r30, var_r31 + 0xF, HUSPR_ATTR_DISPOFF); } HuSprGrpPosSet(var_r30, 0.0f, -500.0f); } @@ -6208,9 +6208,9 @@ void fn_1_208F4(void) s32 var_r31; var_r31 = lbl_1_bss_35BC[0].unk_40; - HuSprAttrReset(var_r31, 8, 4); + HuSprAttrReset(var_r31, 8, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r31, 8, lbl_1_data_690[0][0] - 0x32, lbl_1_data_690[0][1]); - HuSprAttrReset(var_r31, 9, 4); + HuSprAttrReset(var_r31, 9, HUSPR_ATTR_DISPOFF); HuSprPosSet(var_r31, 9, lbl_1_data_690[3][0] + 0x32, lbl_1_data_690[0][1]); } @@ -6274,18 +6274,18 @@ void fn_1_20B54(MentDllUnkBss35BCStruct *arg0, s32 arg1, s32 arg2, s32 arg3) sp8 = 0; var_r27 = lbl_1_bss_35BC[0].unk_40; for (var_r30 = 0; var_r30 < 0x13; var_r30++) { - HuSprAttrSet(var_r27, var_r30, 4); + HuSprAttrSet(var_r27, var_r30, HUSPR_ATTR_DISPOFF); } for (var_r30 = 0; var_r30 < 4; var_r30++) { HuSprBankSet(var_r27, var_r30, 0); lbl_1_bss_3114[var_r30].unk_70[3] = lbl_1_bss_3114[var_r30].unk_60 = 0; - HuSprAttrReset(var_r27, var_r30, 4); - HuSprAttrReset(var_r27, var_r30 + 4, 4); + HuSprAttrReset(var_r27, var_r30, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r27, var_r30 + 4, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(var_r27, 0xA, 4); + HuSprAttrReset(var_r27, 0xA, HUSPR_ATTR_DISPOFF); for (var_r30 = 0; var_r30 < 4; var_r30++) { - HuSprAttrReset(var_r27, var_r30 + 0xB, 4); - HuSprAttrReset(var_r27, var_r30 + 0xF, 4); + HuSprAttrReset(var_r27, var_r30 + 0xB, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(var_r27, var_r30 + 0xF, HUSPR_ATTR_DISPOFF); } HuSprGrpPosSet(var_r27, 0.0f, -500.0f); } diff --git a/src/REL/modeseldll/filesel.c b/src/REL/modeseldll/filesel.c index 7394daa6..93fc856d 100644 --- a/src/REL/modeseldll/filesel.c +++ b/src/REL/modeseldll/filesel.c @@ -1977,15 +1977,15 @@ void fn_1_AAB8(void) HuSprGrpScaleSet(lbl_1_bss_116[temp_r30], temp_f31, temp_f31); if (lbl_1_bss_EE[temp_r30] > 9999) { for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { - HuSprAttrSet(lbl_1_bss_116[temp_r30], temp_r28 + 1, 4); + HuSprAttrSet(lbl_1_bss_116[temp_r30], temp_r28 + 1, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(lbl_1_bss_116[temp_r30], 5, 4); + HuSprAttrReset(lbl_1_bss_116[temp_r30], 5, HUSPR_ATTR_DISPOFF); } else { for (temp_r28 = 0; temp_r28 < 4; temp_r28++) { - HuSprAttrReset(lbl_1_bss_116[temp_r30], temp_r28 + 1, 4); + HuSprAttrReset(lbl_1_bss_116[temp_r30], temp_r28 + 1, HUSPR_ATTR_DISPOFF); } - HuSprAttrSet(lbl_1_bss_116[temp_r30], 5, 4); + HuSprAttrSet(lbl_1_bss_116[temp_r30], 5, HUSPR_ATTR_DISPOFF); temp_r29 = lbl_1_bss_EE[temp_r30]; HuSprBankSet(lbl_1_bss_116[temp_r30], 1, temp_r29 / 1000); temp_r29 -= (temp_r29 / 1000) * 1000; diff --git a/src/game/board/battle.c b/src/game/board/battle.c index 2f17e557..2ba67445 100755 --- a/src/game/board/battle.c +++ b/src/game/board/battle.c @@ -619,7 +619,7 @@ static void ShowBattleGame(BattleWork *arg0, omObjData *arg1) { arg0->unk01 = 1; arg1->trans.z = 0.01f; arg1->trans.y = 0.0f; - HuSprAttrReset(arg0->unk08, 0, 4); + HuSprAttrReset(arg0->unk08, 0, HUSPR_ATTR_DISPOFF); HuSprPosSet(arg0->unk08, 0, 0.0f, 0.0f); } else { return; @@ -682,8 +682,8 @@ static void UpdateBattleCoin(BattleWork *arg0, omObjData *arg1) { HuSprBankSet(arg0->unk08, 1, temp_r28); return; } - HuSprAttrReset(arg0->unk08, 2, 4); - HuSprAttrReset(arg0->unk08, 1, 5); + HuSprAttrReset(arg0->unk08, 2, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(arg0->unk08, 1, HUSPR_ATTR_NOANIM | HUSPR_ATTR_DISPOFF); HuSprPosSet(arg0->unk08, 2, 0.0f, 40.0f); HuSprPosSet(arg0->unk08, 1, 34.0f, 40.0f); HuSprScaleSet(arg0->unk08, 1, 0.9f, 0.9f); @@ -726,10 +726,10 @@ static void InitBattleGameSpr(BattleWork *arg0, omObjData *arg1) { temp_r30 = battleMGIdx[0]; temp_r29 = battleMGIdx[1]; - HuSprAttrReset(arg0->unk08, 3, 4); - HuSprAttrReset(arg0->unk08, 4, 4); - HuSprAttrReset(arg0->unk08, temp_r30 + 5, 4); - HuSprAttrReset(arg0->unk08, temp_r29 + 5, 4); + HuSprAttrReset(arg0->unk08, 3, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(arg0->unk08, 4, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(arg0->unk08, temp_r30 + 5, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(arg0->unk08, temp_r29 + 5, HUSPR_ATTR_DISPOFF); HuSprPosSet(arg0->unk08, 3, sp8[0][0], sp8[0][1]); HuSprPosSet(arg0->unk08, 4, sp8[1][0], sp8[1][1]); HuSprPosSet(arg0->unk08, temp_r30 + 5, sp8[0][0], sp8[0][1]); diff --git a/src/game/board/char_wheel.c b/src/game/board/char_wheel.c index 13e4664f..bb33564a 100755 --- a/src/game/board/char_wheel.c +++ b/src/game/board/char_wheel.c @@ -368,14 +368,14 @@ static void StopCharWheel(CharWheelWork *arg0) { } var_r30 = arg0->unk03 % 6; if (var_r30 < 3) { - HuSprAttrSet(wheelSprGrp, wheelPos + 10, 4); + HuSprAttrSet(wheelSprGrp, wheelPos + 10, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrReset(wheelSprGrp, wheelPos + 10, 4); + HuSprAttrReset(wheelSprGrp, wheelPos + 10, HUSPR_ATTR_DISPOFF); } if (arg0->unk03 < 90) { arg0->unk03++; } else { - HuSprAttrReset(wheelSprGrp, wheelPos + 10, 4); + HuSprAttrReset(wheelSprGrp, wheelPos + 10, HUSPR_ATTR_DISPOFF); arg0->unk00_field3 = 4; } } diff --git a/src/game/board/mg_setup.c b/src/game/board/mg_setup.c index 1bca487c..4613826f 100644 --- a/src/game/board/mg_setup.c +++ b/src/game/board/mg_setup.c @@ -787,7 +787,7 @@ static void PopupVS(bitcopy* arg0, omObjData* arg1) { temp_r29 = arg0->unk_0C; if (arg0->unk_02 == 0) { - HuSprAttrReset(temp_r29->unk_00[0], 0, 4); + HuSprAttrReset(temp_r29->unk_00[0], 0, HUSPR_ATTR_DISPOFF); HuSprAttrSet(temp_r29->unk_00[0], 0, 8); HuSprScaleSet(temp_r29->unk_00[0], 0, 0.001f, 0.001f); HuSprPosSet(temp_r29->unk_00[0], 0, 0.0f, 64.0f); @@ -832,7 +832,7 @@ static void FallMGType(bitcopy* arg0, omObjData* arg1) { temp_r31 = arg0->unk_0C; temp_r30 = sp8[mgType]; if (arg0->unk_02 == 0) { - HuSprAttrReset(temp_r31->unk_00[0], temp_r30, 4); + HuSprAttrReset(temp_r31->unk_00[0], temp_r30, HUSPR_ATTR_DISPOFF); temp_r31->unk_1C[0][temp_r30].y = -284.0f; temp_r31->unk_1C[1][temp_r30].y = -128.0f; arg0->unk_02 = 1; @@ -872,7 +872,7 @@ static void LuckyMGFall(bitcopy* arg0, omObjData* arg1) { temp_r27 = &temp_r29->unk_1C[0][temp_r24]; switch (arg0->unk_02) { case 0: - HuSprAttrReset(temp_r29->unk_00[0], 4, 4); + HuSprAttrReset(temp_r29->unk_00[0], 4, HUSPR_ATTR_DISPOFF); temp_r28->y = -284.0f; temp_r25->y = -128.0f; arg0->unk_02 = 1; @@ -889,7 +889,7 @@ static void LuckyMGFall(bitcopy* arg0, omObjData* arg1) { case 2: temp_r27->y += 10.0f; if (328.0f < temp_r27->y) { - HuSprAttrReset(temp_r29->unk_00[0], temp_r24, 4); + HuSprAttrReset(temp_r29->unk_00[0], temp_r24, HUSPR_ATTR_DISPOFF); temp_r26 = (bitcopy*) mgSetupObj->work; temp_r26->field00_bit1 = 7; temp_r26->unk_02 = 0; @@ -935,8 +935,8 @@ static void UpdateLuckyValue(bitcopy* arg0, omObjData* arg1) { temp_r27 = arg0->unk_0C; switch (arg0->unk_02) { case 0: - HuSprAttrReset(temp_r27->unk_00[0], 8, 4); - HuSprAttrReset(temp_r27->unk_00[0], 9, 4); + HuSprAttrReset(temp_r27->unk_00[0], 8, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(temp_r27->unk_00[0], 9, HUSPR_ATTR_DISPOFF); HuSprAttrSet(temp_r27->unk_00[0], 8, 8); HuSprAttrSet(temp_r27->unk_00[0], 9, 8); HuSprPosSet(temp_r27->unk_00[0], 8, 0.0f, 0.0f); @@ -1042,10 +1042,10 @@ static void UpdateMGList(bitcopy* arg0, omObjData* arg1) { temp_r24 = arg0->unk_0C; temp_r22 = mgType + 5; - switch (arg0->unk_02) { /* irregular */ + switch (arg0->unk_02) { case 0: HuSprAttrSet(temp_r24->unk_00[0], temp_r22, 8); - HuSprAttrReset(temp_r24->unk_00[0], temp_r22, 4); + HuSprAttrReset(temp_r24->unk_00[0], temp_r22, HUSPR_ATTR_DISPOFF); HuSprPosSet(temp_r24->unk_00[0], temp_r22, 0.0f, 32.0f); HuSprScaleSet(temp_r24->unk_00[0], temp_r22, 0.001f, 0.001f); arg0->unk_04 = 0; @@ -1084,11 +1084,11 @@ static void UpdateMGList(bitcopy* arg0, omObjData* arg1) { for (var_r23 = 0; var_r23 < arg0->field01_bit0; var_r23++) { HuWinDispOn(activeMG[var_r23].unk_00); } - HuSprAttrReset(temp_r24->unk_00[0], 0xA, 4); + HuSprAttrReset(temp_r24->unk_00[0], 0xA, HUSPR_ATTR_DISPOFF); HuSprAttrSet(temp_r24->unk_00[0], 0xA, 8); HuSprPosSet(temp_r24->unk_00[0], 0xA, -148.0f, cursorYTbl[0]); temp_r18 = &hiliteColTbl[mgType]; - HuSprAttrReset(temp_r24->unk_00[0], 0xC, 4); + HuSprAttrReset(temp_r24->unk_00[0], 0xC, HUSPR_ATTR_DISPOFF); HuSprPosSet(temp_r24->unk_00[0], 0xC, 0.0f, hiliteYTbl[0]); HuSprTPLvlSet(temp_r24->unk_00[0], 0xC, 0.7f); HuSprScaleSet(temp_r24->unk_00[0], 0xC, 32.0f, 3.5f); @@ -1158,10 +1158,10 @@ static void UpdateMGList(bitcopy* arg0, omObjData* arg1) { hiliteTimer = 0; } if (hiliteShowF != 0) { - HuSprAttrReset(temp_r24->unk_00[0], 0xC, 4); + HuSprAttrReset(temp_r24->unk_00[0], 0xC, HUSPR_ATTR_DISPOFF); return; } - HuSprAttrSet(temp_r24->unk_00[0], 0xC, 4); + HuSprAttrSet(temp_r24->unk_00[0], 0xC, HUSPR_ATTR_DISPOFF); return; case 5: if (arg0->unk_03 < 0x5A) { diff --git a/src/game/board/pause.c b/src/game/board/pause.c index 4b5d5401..34fcc55d 100755 --- a/src/game/board/pause.c +++ b/src/game/board/pause.c @@ -717,9 +717,9 @@ static void InitPauseQuit(omObjData *arg0, ConfigWork *arg1) { SetBoxVisible(1); var_f31 = 0.5f; BoardModelScaleSet(boxModelID[7], var_f31, var_f31, var_f31); - HuSprAttrReset(pauseCursorPos, 0, 4); + HuSprAttrReset(pauseCursorPos, 0, HUSPR_ATTR_DISPOFF); if (GWPartyGet() == 0) { - HuSprAttrReset(pauseCursorPos, 1, 4); + HuSprAttrReset(pauseCursorPos, 1, HUSPR_ATTR_DISPOFF); } break; } @@ -822,7 +822,7 @@ static void ScrollInPadConfig(omObjData *arg0, ConfigWork *arg1) { s32 i; if (arg1->unk07 == 0) { - HuSprAttrReset(pauseCursorPos, 0, 4); + HuSprAttrReset(pauseCursorPos, 0, HUSPR_ATTR_DISPOFF); if (arg1->unk00_field2 != 0) { for (i = 0; i < 8; i++) { if (i != 0) { @@ -1332,8 +1332,8 @@ static s32 WaitPauseInput(void) { } HuWinDispOn(controlWin); SetBoxVisible(0); - HuSprAttrReset(pauseSprGrp, 0, 4); - HuSprAttrSet(pauseCursorPos, 0, 4); + HuSprAttrReset(pauseSprGrp, 0, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(pauseCursorPos, 0, HUSPR_ATTR_DISPOFF); PauseCreateNumber(0, GWSystem.turn); PauseCreateNumber(1, GWSystem.max_turn); HuPrcSleep(4); @@ -1376,15 +1376,15 @@ static void ShowPauseConfig(void) { HuWinDispOn(settingsControlWin); HuWinDispOn(settingsWin); SetBoxVisible(1); - HuSprAttrReset(pauseCursorPos, 0, 4); + HuSprAttrReset(pauseCursorPos, 0, HUSPR_ATTR_DISPOFF); BoardModelVisibilitySet(hostMdl, 1); if (GWPartyGet() == 0) { var_f31 = boxPosTbl[0][0]; var_f30 = boxPosTbl[0][1]; HuSprPosSet(pauseCursorPos, 1, var_f31, var_f30); - HuSprAttrReset(pauseCursorPos, 1, 4); + HuSprAttrReset(pauseCursorPos, 1, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrSet(pauseCursorPos, 1, 4); + HuSprAttrSet(pauseCursorPos, 1, HUSPR_ATTR_DISPOFF); } while (configObj) { HuPrcVSleep(); @@ -1434,19 +1434,19 @@ static void ShowPadConfigSprite(s32 arg0) { for (i = 0; i < 4; i++) { temp_r31 = GWPlayer[i].port; if (arg0 != 0) { - HuSprAttrReset(padConfigSprGrp, temp_r31, 4); - HuSprAttrReset(padConfigSprGrp, temp_r31 + 4, 4); - HuSprAttrReset(padConfigSprGrp, temp_r31 + 8, 4); + HuSprAttrReset(padConfigSprGrp, temp_r31, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(padConfigSprGrp, temp_r31 + 4, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(padConfigSprGrp, temp_r31 + 8, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrSet(padConfigSprGrp, temp_r31, 4); - HuSprAttrSet(padConfigSprGrp, temp_r31 + 4, 4); - HuSprAttrSet(padConfigSprGrp, temp_r31 + 8, 4); + HuSprAttrSet(padConfigSprGrp, temp_r31, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(padConfigSprGrp, temp_r31 + 4, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(padConfigSprGrp, temp_r31 + 8, HUSPR_ATTR_DISPOFF); } } if (arg0 != 0) { - HuSprAttrReset(padConfigSprGrp, 12, 4); + HuSprAttrReset(padConfigSprGrp, 12, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrSet(padConfigSprGrp, 12, 4); + HuSprAttrSet(padConfigSprGrp, 12, HUSPR_ATTR_DISPOFF); } } diff --git a/src/game/board/player.c b/src/game/board/player.c index c54b318e..96722477 100644 --- a/src/game/board/player.c +++ b/src/game/board/player.c @@ -2127,15 +2127,15 @@ void BoardRollDispSet(s32 arg0) if (arg0 != 0) { temp_r31->field00_bit1 = 1; if ((var_r30 == 1) && (GWPlayer[temp_r31->unk_02].roll / 10 == 0)) { - HuSprAttrSet(temp_r31->unk_04, var_r30, 4); + HuSprAttrSet(temp_r31->unk_04, var_r30, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrReset(temp_r31->unk_04, var_r30, 4); + HuSprAttrReset(temp_r31->unk_04, var_r30, HUSPR_ATTR_DISPOFF); } } else { temp_r31->field00_bit1 = 0; - HuSprAttrSet(temp_r31->unk_04, var_r30, 4); + HuSprAttrSet(temp_r31->unk_04, var_r30, HUSPR_ATTR_DISPOFF); } } UpdateRollSprite(rollObj); @@ -2163,7 +2163,7 @@ static void UpdateRollSprite(omObjData *arg0) for (var_r30 = 0; var_r30 < 2; var_r30++) { if (((var_r30 == 1) && (sp14[1] == 0)) || (temp_r31->field00_bit1 == 0)) { - HuSprAttrSet(temp_r31->unk_04, var_r30, 4); + HuSprAttrSet(temp_r31->unk_04, var_r30, HUSPR_ATTR_DISPOFF); } else { if ((sp14[1] == 0) && (var_r30 == 0)) { @@ -2173,7 +2173,7 @@ static void UpdateRollSprite(omObjData *arg0) sp1C.x = spC[var_r30]; } sp1C.y = (HU_DISP_HEIGHTF * 176) / 480; - HuSprAttrReset(temp_r31->unk_04, var_r30, 4); + HuSprAttrReset(temp_r31->unk_04, var_r30, HUSPR_ATTR_DISPOFF); HuSprBankSet(temp_r31->unk_04, var_r30, sp14[var_r30]); HuSprPosSet(temp_r31->unk_04, var_r30, sp1C.x, sp1C.y); } diff --git a/src/game/board/ui.c b/src/game/board/ui.c index 4259f29d..ff2a9066 100755 --- a/src/game/board/ui.c +++ b/src/game/board/ui.c @@ -453,10 +453,10 @@ void BoardStatusHammerShowSet(s32 arg0, s32 arg1) { if (temp_r31->unk00_bit6) { if (arg1 != 0) { - HuSprAttrSet(temp_r31->unk02, 0x10, 2); + HuSprAttrSet(temp_r31->unk02, 0x10, HUSPR_ATTR_LOOP); } else { - HuSprAttrReset(temp_r31->unk02, 0x10, 2); - HuSprAttrSet(temp_r31->unk02, 0x10, 1); + HuSprAttrReset(temp_r31->unk02, 0x10, HUSPR_ATTR_LOOP); + HuSprAttrSet(temp_r31->unk02, 0x10, HUSPR_ATTR_NOANIM); } } } @@ -618,15 +618,15 @@ static s32 UpdateBoardStatus(void) { temp_r27 = GWPlayer[i].items[j]; if (temp_r27 != -1 && temp_r31->unk00_bit5) { UpdateStatusItem(temp_r31, j, temp_r27); - HuSprAttrReset(temp_r31->unk02, j + 0xD, 4); + HuSprAttrReset(temp_r31->unk02, j + 0xD, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrSet(temp_r31->unk02, j + 0xD, 4); + HuSprAttrSet(temp_r31->unk02, j + 0xD, HUSPR_ATTR_DISPOFF); } } if (GWPlayer[i].com) { - HuSprAttrReset(temp_r31->unk02, 0xC, 4); + HuSprAttrReset(temp_r31->unk02, 0xC, HUSPR_ATTR_DISPOFF); } else { - HuSprAttrSet(temp_r31->unk02, 0xC, 4); + HuSprAttrSet(temp_r31->unk02, 0xC, HUSPR_ATTR_DISPOFF); } temp_r28 = statusColTbl[GWPlayer[i].color]; HuSprColorSet(temp_r31->unk02, 0, temp_r28[0], temp_r28[1], temp_r28[2]); @@ -685,7 +685,7 @@ void BoardSpriteDigitUpdate(s16 arg0, s16 arg1, s32 arg2) { } else { HuSprBankSet(arg0, arg1 + 1, temp_r28); HuSprBankSet(arg0, arg1, temp_r27); - HuSprAttrReset(arg0, arg1, 4); + HuSprAttrReset(arg0, arg1, HUSPR_ATTR_DISPOFF); } } @@ -1616,8 +1616,8 @@ static void UpdateItemPickGfx(omObjData *arg0) { if (!temp_r30->unk00_bit7) { temp_r30->unk00_bit3 = 1; HuSprBankSet(temp_r30->unk04, 0, 1); - HuSprAttrSet(temp_r30->unk04, 0, 2); - HuSprAttrReset(temp_r30->unk04, 0, 1); + HuSprAttrSet(temp_r30->unk04, 0, HUSPR_ATTR_LOOP); + HuSprAttrReset(temp_r30->unk04, 0, HUSPR_ATTR_NOANIM); arg0->func = UpdateItemPickup; HuWinDispOff(temp_r30->unk06); } else { diff --git a/src/game/board/view.c b/src/game/board/view.c index 72d5b4b3..29118967 100755 --- a/src/game/board/view.c +++ b/src/game/board/view.c @@ -577,15 +577,15 @@ static void UpdateOverheadView(omObjData *arg0) { BoardModelVisibilitySet(temp_r31->unk04, 0); } else if (temp_r31->unk01 != 0) { if (i != 4) { - HuSprAttrReset(temp_r31->unk02, i, 4); + HuSprAttrReset(temp_r31->unk02, i, HUSPR_ATTR_DISPOFF); } - HuSprAttrReset(temp_r31->unk02, var_r28, 4); + HuSprAttrReset(temp_r31->unk02, var_r28, HUSPR_ATTR_DISPOFF); BoardModelVisibilitySet(temp_r31->unk04, 1); } else { if (i != 4) { - HuSprAttrSet(temp_r31->unk02, i, 4); + HuSprAttrSet(temp_r31->unk02, i, HUSPR_ATTR_DISPOFF); } - HuSprAttrSet(temp_r31->unk02, var_r28, 4); + HuSprAttrSet(temp_r31->unk02, var_r28, HUSPR_ATTR_DISPOFF); BoardModelVisibilitySet(temp_r31->unk04, 0); } } diff --git a/src/game/thpmain.c b/src/game/thpmain.c index 721558ba..d31d4639 100755 --- a/src/game/thpmain.c +++ b/src/game/thpmain.c @@ -161,7 +161,7 @@ static void THPTestProc(void) Hu3DModelAttrReset(SimpleControl.unk19E, HU3D_ATTR_DISPOFF); } else { - HuSprAttrReset(SimpleControl.unk19E, 0, 4); + HuSprAttrReset(SimpleControl.unk19E, 0, HUSPR_ATTR_DISPOFF); } while (1) { if (THPStat == 2) { From 03d811cbedf0c44592906d498327afa8a980344a Mon Sep 17 00:00:00 2001 From: mrshigure Date: Sat, 4 Jan 2025 01:12:54 -0800 Subject: [PATCH 230/311] Matched last function in m457Dll --- config/GMPE01_00/rels/m457Dll/symbols.txt | 226 +++++++++++----------- configure.py | 2 +- src/REL/m457Dll/main.c | 2 +- src/REL/m458Dll/main.c | 17 +- 4 files changed, 117 insertions(+), 130 deletions(-) diff --git a/config/GMPE01_00/rels/m457Dll/symbols.txt b/config/GMPE01_00/rels/m457Dll/symbols.txt index 05be3e42..08eeab17 100644 --- a/config/GMPE01_00/rels/m457Dll/symbols.txt +++ b/config/GMPE01_00/rels/m457Dll/symbols.txt @@ -13,114 +13,114 @@ ObjectSetup = .text:0x00007664; // type:function size:0x480 fn_1_7AE4 = .text:0x00007AE4; // type:function size:0x9C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x24 data:4byte -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 data:4byte -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x64 -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x8 data:4byte -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x8 data:4byte -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x40 data:4byte -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x40 data:4byte -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x90 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 data:double -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x14 data:4byte -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:4byte -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:4byte -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x40 data:4byte -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x40 data:4byte -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x5C -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x5C -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0xC data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0xC data:float -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:byte -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float -lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float -lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float -lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float -lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x64 scope:local +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x90 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 scope:local data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 scope:local data:double +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x5C scope:local +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x5C scope:local +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0xC scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0xC scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 scope:local data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 scope:local data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 scope:local data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 scope:local data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x5C lbl_1_data_5C = .data:0x0000005C; // type:object size:0x5C data:4byte lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x30 @@ -139,8 +139,8 @@ lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x4 data:4byte lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x2 data:2byte lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x4 data:4byte lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x4 data:4byte -lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x9 data:string -lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0x3 data:string +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x9 scope:local data:string +lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0x3 scope:local data:string jumptable_1_data_2C8 = .data:0x000002C8; // type:object size:0x2C scope:local jumptable_1_data_2F4 = .data:0x000002F4; // type:object size:0x48 scope:local lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 data:4byte @@ -149,9 +149,9 @@ lbl_1_data_344 = .data:0x00000344; // type:object size:0x4 data:float lbl_1_data_348 = .data:0x00000348; // type:object size:0x4 data:float jumptable_1_data_34C = .data:0x0000034C; // type:object size:0x20 scope:local jumptable_1_data_36C = .data:0x0000036C; // type:object size:0x2C scope:local -lbl_1_data_398 = .data:0x00000398; // type:object size:0x12 data:string -lbl_1_data_3AA = .data:0x000003AA; // type:object size:0x19 data:string -lbl_1_data_3C3 = .data:0x000003C3; // type:object size:0x24 data:string +lbl_1_data_398 = .data:0x00000398; // type:object size:0x12 scope:local data:string +lbl_1_data_3AA = .data:0x000003AA; // type:object size:0x19 scope:local data:string +lbl_1_data_3C3 = .data:0x000003C3; // type:object size:0x24 scope:local data:string lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index fc0d2325..d02c2cb0 100644 --- a/configure.py +++ b/configure.py @@ -1273,7 +1273,7 @@ config.libs = [ Rel( "m457Dll", # Bowser Wrestling objects={ - Object(NonMatching, "REL/m457Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m457Dll/main.c"), }, ), Rel( diff --git a/src/REL/m457Dll/main.c b/src/REL/m457Dll/main.c index ee748d30..69ecd523 100755 --- a/src/REL/m457Dll/main.c +++ b/src/REL/m457Dll/main.c @@ -1134,7 +1134,7 @@ void fn_1_2CC4(omObjData* arg0) { temp_f25 = lbl_1_data_28C.unk0C; var_f21 *= lbl_1_data_28C.unk04 * 2; temp_f25 *= lbl_1_data_28C.unk04 * 2; - lbl_1_data_28C.unk00 = lbl_1_data_28C.unk00 == 0; + lbl_1_data_28C.unk00 = !lbl_1_data_28C.unk00; lbl_1_data_28C.unk04 = (lbl_1_data_28C.unk04 > 24) ? 23 : (lbl_1_data_28C.unk04 - 1 > 0) ? (lbl_1_data_28C.unk04 - 1) : 0; Center.x = 0.0f; diff --git a/src/REL/m458Dll/main.c b/src/REL/m458Dll/main.c index f59e3649..a813647a 100644 --- a/src/REL/m458Dll/main.c +++ b/src/REL/m458Dll/main.c @@ -777,8 +777,6 @@ void fn_1_350C(omObjData *var_r27) ModelData *var_r28; ModelData *var_r26; s32 var_r25; - s32 var_r24; - s32 var_r23; for (var_r31 = 0; var_r31 < 2; var_r31++) { spC[var_r31] = (&lbl_1_bss_BC)[var_r31]->data; @@ -960,19 +958,8 @@ void fn_1_350C(omObjData *var_r27) var_f25 *= lbl_1_data_114.unk_04 * 2; var_f26 *= lbl_1_data_114.unk_04 * 2; lbl_1_data_114.unk_00 = !lbl_1_data_114.unk_00; - if (lbl_1_data_114.unk_04 > 0x18) { - var_r24 = 0x17; - } - else { - if ((lbl_1_data_114.unk_04 - 1) > 0) { - var_r23 = lbl_1_data_114.unk_04 - 1; - } - else { - var_r23 = 0; - } - var_r24 = var_r23; - } - lbl_1_data_114.unk_04 = var_r24; + lbl_1_data_114.unk_04 = (lbl_1_data_114.unk_04 > 24) ? 23 + : (lbl_1_data_114.unk_04 - 1 > 0) ? (lbl_1_data_114.unk_04 - 1) : 0; Center.x = 0.0f; Center.y = 100.0f + var_f26; } From d95b1af697d56bf4e913619684fbd505c9747922 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Sat, 4 Jan 2025 18:52:39 -0800 Subject: [PATCH 231/311] Matched m463Dll (US); applying some ext_math macros (#506) --- config/GMPE01_00/rels/m463Dll/splits.txt | 5 +- config/GMPE01_00/rels/m463Dll/symbols.txt | 218 ++-- configure.py | 2 +- include/game/hsfanim.h | 2 +- src/REL/m409Dll/player.c | 18 +- src/REL/m463Dll/main.c | 1423 +++++++++++++++++++++ src/game/board/last5.c | 6 +- src/game/board/player.c | 24 +- src/game/board/space.c | 12 +- src/game/board/view.c | 10 +- src/game/minigame_seq.c | 124 +- 11 files changed, 1637 insertions(+), 207 deletions(-) create mode 100755 src/REL/m463Dll/main.c diff --git a/config/GMPE01_00/rels/m463Dll/splits.txt b/config/GMPE01_00/rels/m463Dll/splits.txt index ceb93b07..f1310070 100644 --- a/config/GMPE01_00/rels/m463Dll/splits.txt +++ b/config/GMPE01_00/rels/m463Dll/splits.txt @@ -6,8 +6,11 @@ Sections: .data type:data align:8 .bss type:bss align:8 +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + REL/m463Dll/main.c: - .text start:0x00000000 end:0x000066B8 + .text start:0x000000A0 end:0x000066B8 .rodata start:0x00000000 end:0x00000414 .data start:0x00000000 end:0x0000024D .bss start:0x00000000 end:0x000005AC diff --git a/config/GMPE01_00/rels/m463Dll/symbols.txt b/config/GMPE01_00/rels/m463Dll/symbols.txt index 87b16e8f..351f689b 100644 --- a/config/GMPE01_00/rels/m463Dll/symbols.txt +++ b/config/GMPE01_00/rels/m463Dll/symbols.txt @@ -8,123 +8,123 @@ fn_1_45F8 = .text:0x000045F8; // type:function size:0xDA8 fn_1_53A0 = .text:0x000053A0; // type:function size:0x4B0 fn_1_5850 = .text:0x00005850; // type:function size:0x854 fn_1_60A4 = .text:0x000060A4; // type:function size:0x98 -fn_1_613C = .text:0x0000613C; // type:function size:0x460 +ObjectSetup = .text:0x0000613C; // type:function size:0x460 fn_1_659C = .text:0x0000659C; // type:function size:0x11C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC data:4byte -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC data:4byte -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:4byte -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x94 -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:4byte -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x50 -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x70 -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x24 data:4byte -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x24 data:4byte -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x10 data:4byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0xC data:4byte -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0xC data:4byte -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x1 data:byte -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x90 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x50 scope:local +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x70 scope:local +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0xC scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0xC scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 lbl_1_data_24 = .data:0x00000024; // type:object size:0x24 lbl_1_data_48 = .data:0x00000048; // type:object size:0x24 lbl_1_data_6C = .data:0x0000006C; // type:object size:0x24 lbl_1_data_90 = .data:0x00000090; // type:object size:0x24 -lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x9 -lbl_1_data_BD = .data:0x000000BD; // type:object size:0xB +lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x9 data:byte +lbl_1_data_BD = .data:0x000000BD; // type:object size:0x9 data:byte lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x24 lbl_1_data_EC = .data:0x000000EC; // type:object size:0x24 lbl_1_data_110 = .data:0x00000110; // type:object size:0x24 -lbl_1_data_134 = .data:0x00000134; // type:object size:0x18 data:float +lbl_1_data_134 = .data:0x00000134; // type:object size:0x18 data:4byte lbl_1_data_14C = .data:0x0000014C; // type:object size:0x2 data:2byte lbl_1_data_14E = .data:0x0000014E; // type:object size:0x2 data:2byte lbl_1_data_150 = .data:0x00000150; // type:object size:0x4 data:4byte -lbl_1_data_154 = .data:0x00000154; // type:object size:0x24 data:4byte -lbl_1_data_178 = .data:0x00000178; // type:object size:0x9 data:string -lbl_1_data_181 = .data:0x00000181; // type:object size:0x3 data:string +lbl_1_data_154 = .data:0x00000154; // type:object size:0x4 data:4byte +lbl_1_data_178 = .data:0x00000178; // type:object size:0x9 scope:local data:string +lbl_1_data_181 = .data:0x00000181; // type:object size:0x3 scope:local data:string lbl_1_data_184 = .data:0x00000184; // type:object size:0x4 data:4byte jumptable_1_data_188 = .data:0x00000188; // type:object size:0x1C scope:local lbl_1_data_1A4 = .data:0x000001A4; // type:object size:0x10 @@ -134,24 +134,24 @@ lbl_1_data_1BC = .data:0x000001BC; // type:object size:0x4 data:float lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x4 data:float jumptable_1_data_1C4 = .data:0x000001C4; // type:object size:0x20 scope:local lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x2C -lbl_1_data_210 = .data:0x00000210; // type:object size:0x19 data:string -lbl_1_data_229 = .data:0x00000229; // type:object size:0x24 data:string +lbl_1_data_210 = .data:0x00000210; // type:object size:0x19 scope:local data:string +lbl_1_data_229 = .data:0x00000229; // type:object size:0x24 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x8 data:2byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x2 data:2byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:float lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:float lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x8 data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x4 data:4byte lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x8 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index d02c2cb0..755bf193 100644 --- a/configure.py +++ b/configure.py @@ -1312,7 +1312,7 @@ config.libs = [ Rel( "m463Dll", # Panel Panic 9 Player objects={ - Object(NonMatching, "REL/m463Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m463Dll/main.c"), }, ), Rel( diff --git a/include/game/hsfanim.h b/include/game/hsfanim.h index db94ac1e..198a4fc6 100644 --- a/include/game/hsfanim.h +++ b/include/game/hsfanim.h @@ -69,7 +69,7 @@ typedef struct { /* 0x2C */ s16 unk2C; /* 0x2E */ GXColor unk2E[4]; /* 0x3E */ GXColor unk3E[4]; -} HsfanimStruct00; // Size unknown +} HsfanimStruct00; // Size (min:0x4E, max:0x50) typedef struct { /* 0x00 */ u16 unk00; diff --git a/src/REL/m409Dll/player.c b/src/REL/m409Dll/player.c index fcf6a8c1..26330990 100644 --- a/src/REL/m409Dll/player.c +++ b/src/REL/m409Dll/player.c @@ -7,7 +7,7 @@ #include "game/hsfmotion.h" #include "game/pad.h" #include "game/sprite.h" -#include "math.h" +#include "ext_math.h" // bss omObjData *lbl_1_bss_3A0[4]; @@ -254,8 +254,8 @@ void fn_1_7344(omObjData *arg0) lbl_1_bss_104 = temp_r31->unk0 + 1; } if (temp_r31->unk60 == 0) { - temp_f29 = (180.0 * (atan2((temp_r30->unk0.x - temp_r31->unk24.x), (temp_r30->unk0.z - temp_r31->unk24.z)) / M_PI)); - temp_f30 = (180.0 * (atan2((temp_r31->unk24.y - temp_r30->unk0.y), (temp_r31->unk24.z - temp_r30->unk0.z)) / M_PI)); + temp_f29 = atan2d(temp_r30->unk0.x - temp_r31->unk24.x, temp_r30->unk0.z - temp_r31->unk24.z); + temp_f30 = atan2d(temp_r31->unk24.y - temp_r30->unk0.y, temp_r31->unk24.z - temp_r30->unk0.z); temp_f30 *= (1.0f - (0.015f * ABS(temp_f30))); temp_r31->unk3C.x = fn_1_AD40(temp_r31->unk3C.x, temp_f30, 0.5f); temp_r31->unk3C.y = fn_1_AD40(temp_r31->unk3C.y, temp_f29, 0.5f); @@ -524,7 +524,7 @@ void fn_1_8838(unkStruct8 *arg0) if (temp_r31->unk74 > 90.0f) { temp_r31->unk74 = 90.0f; } - temp_f31 = sin((M_PI * temp_r31->unk74) / 180.0); + temp_f31 = sind(temp_r31->unk74); temp_f30 = cosd(temp_r31->unk74); sp18.x = temp_r30->unk0.x - temp_r31->unk58.x; sp18.y = temp_r30->unk0.y - temp_r31->unk58.y; @@ -558,7 +558,7 @@ void fn_1_8838(unkStruct8 *arg0) if (temp_r31->unk74 > 90.0f) { temp_r31->unk74 = 90.0f; } - temp_f31 = sin((M_PI * temp_r31->unk74) / 180.0); + temp_f31 = sind(temp_r31->unk74); sp18.x = temp_r29->unkC.x - temp_r31->unk58.x; sp18.y = temp_r29->unkC.y - temp_r31->unk58.y; sp18.z = temp_r29->unkC.z - temp_r31->unk58.z; @@ -925,10 +925,10 @@ void fn_1_962C(omObjData *arg0) fn_1_A584(var_r31); Hu3DModelPosSet(var_r31->unk0, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); - var_f31 = sin((var_r31->unk4C * M_PI) / 180.0); + var_f31 = sind(var_r31->unk4C); var_r31->unk4C += 3.0f; Hu3DModelRotSet( - var_r31->unk0, 8.0 * sin((var_r31->unk4C * 0.3 * M_PI) / 180.0), var_r31->unk4C * 0.05f, (-var_r31->unk18.z * 0.25f) + (var_f31 * 8.0f)); + var_r31->unk0, 8.0 * sind(var_r31->unk4C * 0.3), var_r31->unk4C * 0.05f, (-var_r31->unk18.z * 0.25f) + (var_f31 * 8.0f)); } if (lbl_1_bss_108 == 2 && var_r27 >= arg0->work[0]) { @@ -977,7 +977,7 @@ s32 fn_1_A584(unkStruct10 *arg0) arg0->unkC.x += sp14.x; arg0->unkC.y += sp14.y; arg0->unkC.z += sp14.z; - var_f31 = (180.0 * (atan2(sp14.x, sp14.y) / M_PI)); + var_f31 = atan2d(sp14.x, sp14.y); if (var_f31 > 180.0f) { var_f31 -= 360.0f; } @@ -1000,7 +1000,7 @@ s32 fn_1_A584(unkStruct10 *arg0) var_r31->unkC.x += sp8.x * (temp_f29 - temp_f30); var_r31->unkC.y += sp8.y * (temp_f29 - temp_f30); var_r31->unkC.z += sp8.z * (temp_f29 - temp_f30); - var_f31 = (180.0 * (atan2(sp8.x, sp8.y) / M_PI)); + var_f31 = atan2d(sp8.x, sp8.y); if (var_f31 > 180.0f) { var_f31 -= 360.0f; } diff --git a/src/REL/m463Dll/main.c b/src/REL/m463Dll/main.c new file mode 100755 index 00000000..a964b9ca --- /dev/null +++ b/src/REL/m463Dll/main.c @@ -0,0 +1,1423 @@ +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "ext_math.h" + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ float unk08; + /* 0x0C */ s32 unk0C; +} StructBss51C; // Size 0x10 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ float unk04[3]; +} StructBss35C; // Size 0x10 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x00 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ float unk28; + /* 0x2C */ float unk2C; + /* 0x30 */ char unk30[4]; + /* 0x34 */ float unk34; + /* 0x38 */ s32 unk38; + /* 0x3C */ s32 unk3C; + /* 0x40 */ s32 unk40; + /* 0x44 */ s32 unk44; + /* 0x48 */ s32 unk48; + /* 0x48 */ s32 unk4C; + /* 0x50 */ s32 unk50; + /* 0x54 */ s16 unk54; + /* 0x56 */ char unk56[2]; + /* 0x58 */ s32 unk58; + /* 0x5C */ s32 unk5C; +} StructBss330Data; // Size 0x60 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ float unk08; + /* 0x0C */ float unk0C; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; +} StructData134; // Size 0x18 + +s16 fn_1_4474(void); +void fn_1_659C(omObjData* arg0); + +StructBss51C lbl_1_bss_51C[9]; +StructBss35C lbl_1_bss_35C[28]; +omObjData* lbl_1_bss_358; +omObjData* lbl_1_bss_354; +omObjData* lbl_1_bss_330[9]; +omObjData* lbl_1_bss_32C; +HsfanimStruct00 lbl_1_bss_5C[9]; +s32 lbl_1_bss_58; +s32 lbl_1_bss_54; +s32 lbl_1_bss_50; +char lbl_1_bss_4C[4]; // unused +s32 lbl_1_bss_48; +s32 lbl_1_bss_44; +Process* lbl_1_bss_40; +s32 lbl_1_bss_3C; +s32 lbl_1_bss_38; +s32 lbl_1_bss_34; +char lbl_1_bss_30[4]; // unused +float lbl_1_bss_2C; +float lbl_1_bss_28; +float lbl_1_bss_24; +float lbl_1_bss_20; +s32 lbl_1_bss_1C; +s32 lbl_1_bss_18; +s32 lbl_1_bss_14; +char lbl_1_bss_E[6]; // unused +s16 lbl_1_bss_C; +char lbl_1_bss_8[4]; // unused +s32 lbl_1_bss_4; +s32 lbl_1_bss_0; + +s32 lbl_1_data_0[9] = { + DATA_MAKE_NUM(DATADIR_M458, 38), + DATA_MAKE_NUM(DATADIR_M458, 38), + DATA_MAKE_NUM(DATADIR_M458, 38), + DATA_MAKE_NUM(DATADIR_M458, 38), + DATA_MAKE_NUM(DATADIR_M458, 38), + DATA_MAKE_NUM(DATADIR_M458, 38), + DATA_MAKE_NUM(DATADIR_M458, 38), + DATA_MAKE_NUM(DATADIR_M458, 38), + DATA_MAKE_NUM(DATADIR_M458, 38) +}; + +s32 lbl_1_data_24[9] = { 0 }; + +s32 lbl_1_data_48[9] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 5), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 47), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 26), + DATA_MAKE_NUM(DATADIR_M458, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), +}; + +u32 lbl_1_data_6C[9] = { 0, 0, 0, 0, 0, 0, 0, 1, 0 }; + +u32 lbl_1_data_90[] = { + DATA_MAKE_NUM(DATADIR_BKOOPA, 8), + 0, + 0, + DATA_MAKE_NUM(DATADIR_BKOOPA, 10), + 0, + DATA_MAKE_NUM(DATADIR_M458, 42), + DATA_MAKE_NUM(DATADIR_M458, 40), + DATA_MAKE_NUM(DATADIR_M458, 41), + DATA_MAKE_NUM(DATADIR_M458, 39) +}; + +u8 lbl_1_data_B4[9] = { 0, 0, 0, 1, 1, 1, 0, 1, 1 }; +u8 lbl_1_data_BD[9] = { 0, 0, 0, 1, 1, 1, 0, 1, 1 }; +s32 lbl_1_data_C8[9] = { 8, 8, 8, 0, 0, 8, 8, 8, 8 }; +s32 lbl_1_data_EC[9] = { 0, 0, 0, 0, 3, 0, 0, 0, 0 }; +s32 lbl_1_data_110[9] = { 8, 8, 8, 8, 8, 8, 8, 8, 8 }; + +StructData134 lbl_1_data_134 = { 0 }; + +s16 lbl_1_data_14C = -1; +s16 lbl_1_data_14E = -1; +s32 lbl_1_data_150 = -1; +s32 lbl_1_data_154 = -1; + +// unused +float lbl_1_data_158[] = { -90.0f, 0.0f, 525.0f, 180.0f, 90.0f, 0.0f, 525.0f, 180.0f }; + +void fn_1_A0(void) { + if (HuPadBtnDown[0] & PAD_BUTTON_B) { + Center.x = lbl_1_bss_330[0]->trans.x; + Center.y = lbl_1_bss_330[0]->trans.y; + Center.z = lbl_1_bss_330[0]->trans.z; + } + Center.x += 10.0 * (((HuPadBtn[0] & PAD_BUTTON_RIGHT) != 0) - ((HuPadBtn[0] & PAD_BUTTON_LEFT) != 0)); + Center.z -= 10.0 * (((HuPadBtn[0] & PAD_BUTTON_UP) != 0) - ((HuPadBtn[0] & PAD_BUTTON_DOWN) != 0)); + Center.y += 30.0 * ((HuPadTrigL[0] - HuPadTrigR[0]) / 128.0); + CZoom += 25.0 * (((HuPadBtn[0] & PAD_BUTTON_X) != 0) - ((HuPadBtn[0] & PAD_BUTTON_Y) != 0)); + CRot.y += HuPadSubStkX[0] / 16.0; + CRot.x += HuPadSubStkY[0] / -16.0; + print8(64, 392, 1.0f, "%f,%f,%f", Center.x, Center.y, Center.z); + print8(64, 408, 1.0f, "%f,%f,%f", CRot.x, CRot.y, CRot.z); + print8(64, 424, 1.0f, "%f", CZoom); +} + +s32 lbl_1_data_184 = -1; + +void fn_1_4C8(omObjData* arg0) { + ModelData* temp_r24; + ModelData* temp_r29; + float temp_f31; + float temp_f30; + float var_f28; + float temp_f27; + float temp_f26; + float temp_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + StructBss330Data* temp_r31; + s16 var_r28; + s32 temp_r27; + s32 var_r26; + s32 var_r25; + s32 var_r23; + s32 var_r22; + StructBss330Data* temp_r21; + s32 var_r20; + s32 var_r19; + StructBss330Data* temp_r18; + s32 var_r17; + float sp180[2]; + s32 spE0; + s32 spDC; + s32 spD8; + s32 spD4; + s32 spD0; + s32 spCC; + s32 spC8; + StructBss330Data* spC4; + s32 spC0; + s32 spBC; + StructBss330Data* spB8; + s32 spB4; + u32 spB0; + float spAC; + s32 spA8; + s32 spA4; + s32 spA0; + StructBss330Data* sp9C; + ModelData* sp98; + float sp94; + float sp90; + s32 sp8C; + s32 sp88; + + temp_r31 = arg0->data; + var_f23 = 0.0f; + var_f22 = 0.0f; + var_f28 = 0.0f; + var_r22 = 0; + var_r28 = -1; + temp_r31->unk2C = temp_r31->unk34 = 0.0f; + if (lbl_1_bss_50 == 1005 && temp_r31->unk18 == 3 && temp_r31->unk1C >= 360) { + if (temp_r31->unk1C == 360) { + temp_r31->unk14 = rand8() % 15; + } + if (temp_r31->unk0C != -1) { + var_r22 = (HuPadBtnDown[temp_r31->unk0C] & PAD_BUTTON_A) ? 1 : 0; + } else { + temp_r31->unk14 += (temp_r31->unk14 < 0x10000); + if (temp_r31->unk14 == 30) { + var_r22 = 1; + } + } + } + if (temp_r31->unk00 < 4 && lbl_1_bss_50 == 1002) { + var_r26 = 0; + var_r25 = 0; + if (temp_r31->unk0C != -1) { + var_r26 = (HuPadStkX[temp_r31->unk0C] < -20) ? -1 + : (HuPadStkX[temp_r31->unk0C] > 20) ? 1 : 0; + var_r25 = (-HuPadStkY[temp_r31->unk0C] < -20) ? -1 + : (-HuPadStkY[temp_r31->unk0C] > 20) ? 1 : 0; + var_r22 = (HuPadBtnDown[temp_r31->unk0C] & PAD_BUTTON_A) ? 1 : 0; + } else { + if (lbl_1_bss_54 == 1) { + temp_r31->unk14 = rand8() % 64 + 30; + } + temp_r31->unk14 -= (temp_r31->unk14 > 0); + if (temp_r31->unk14 == 1) { + var_r26 = (temp_r31->unk3C > 0 ? -1 : 1) * (rand8() % 2); + var_r25 = (temp_r31->unk40 > 0 ? -1 : 1) * (rand8() % 2); + } + if (temp_r31->unk14 == 0) { + var_r22 = (rand8() % 64 == 1) ? 1 : 0; + } + } + if (lbl_1_bss_54 >= 50 || temp_r31->unk50 != 0) { + var_r26 = var_r25 = 0; + } + for (var_r17 = 0; var_r17 < 4; var_r17++) { + temp_r21 = lbl_1_bss_330[var_r17]->data; + spD0 = 0; + spCC = 0; + if (var_r17 != temp_r31->unk00) { + if (fabs(500.0 * temp_r31->unk3C - arg0->trans.x) < 10.0) { + spE0 = spDC = (arg0->trans.x < -250.0) ? -1 + : (arg0->trans.x > 250.0) ? 1 : 0; + } else { + spE0 = (arg0->trans.x < 0.0f) ? -1 : 0; + spDC = spE0 + 1; + } + if (fabs(500.0 * temp_r31->unk40 - arg0->trans.z) < 10.0) { + spD8 = spD4 = (arg0->trans.z < -250.0) ? -1 + : (arg0->trans.z > 250.0) ? 1 : 0; + } else { + spD8 = (arg0->trans.z < 0.0f) ? -1 : 0; + spD4 = spD8 + 1; + } + for (var_r20 = spE0; var_r20 <= spDC; var_r20++) { + for (var_r19 = spD8; var_r19 <= spD4; var_r19++) { + if (temp_r21->unk38 == (1 + var_r20 + var_r26) + (1 + var_r19 + var_r25) * 3) { + var_r26 = var_r25 = 0; + } + if (temp_r21->unk38 == (1 + var_r20 + var_r26) + (1 + var_r19) * 3) { + var_r26 = 0; + } + if (temp_r21->unk38 == (1 + var_r20) + (1 + var_r19 + var_r25) * 3) { + var_r25 = 0; + } + } + } + } + } + if (var_r26 * (500.0 * temp_r31->unk3C - arg0->trans.x) < 0.0) { + temp_r31->unk3C += var_r26; + } + if (fabs(500.0 * temp_r31->unk3C - arg0->trans.x) < 10.0 && var_r26 != 0 && temp_r31->unk3C + var_r26 >= -1 && temp_r31->unk3C + var_r26 <= 1) { + temp_r31->unk3C += var_r26; + } + var_f23 = ((500.0 * temp_r31->unk3C - arg0->trans.x) / 0.25) / 1.75; + if (var_r25 * (500.0 * temp_r31->unk40 - arg0->trans.z) < 0.0) { + temp_r31->unk40 += var_r25; + } + if (fabs(500.0 * temp_r31->unk40 - arg0->trans.z) < 10.0 && var_r25 != 0 && temp_r31->unk40 + var_r25 >= -1 && temp_r31->unk40 + var_r25 <= 1) { + temp_r31->unk40 += var_r25; + } + var_f22 = ((500.0 * temp_r31->unk40 - arg0->trans.z) / -0.25) / 1.75; + temp_r31->unk38 = (temp_r31->unk3C + 1) + (temp_r31->unk40 + 1) * 3; + } + if (temp_r31->unk18 == 0) { + if (lbl_1_bss_50 > (temp_r31->unk00 < 4 ? 1001 : 1003) && lbl_1_bss_50 < 1006) { + temp_f31 = 0.25 * var_f23; + temp_f30 = 0.25 * -var_f22; + { + Vec sp1A0 = { 0.0f, 0.0f, 0.0f }; + Mtx sp1D0; + + sp1A0.x = temp_f31; + sp1A0.z = temp_f30; + PSMTXRotRad(sp1D0, 'y', MTXDegToRad(CRot.y)); + PSMTXMultVec(sp1D0, &sp1A0, &sp1A0); + temp_f31 = sp1A0.x; + temp_f30 = sp1A0.z; + var_f28 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30); + if (var_f28 >= 0.5f) { + if (var_f28 < 10.0f) { + temp_r31->unk2C = temp_f31; + temp_r31->unk34 += temp_f30; + } else { + temp_f31 /= var_f28; + temp_f30 /= var_f28; + var_f28 = 10.0f; + temp_r31->unk2C = temp_f31 * var_f28; + temp_r31->unk34 = temp_f30 * var_f28; + } + temp_r31->unk28 = var_f28; + arg0->rot.y = atan2d(temp_r31->unk2C, temp_r31->unk34); + if (temp_r31->unk28 >= 8.0f) { + var_r28 = 2; + } else { + var_r28 = 2; + } + } else { + var_r28 = 0; + } + } + } + } + arg0->trans.x += 1.75f * temp_r31->unk2C; + arg0->trans.z += 1.75f * temp_r31->unk34; + switch (lbl_1_bss_50) { + case 1001: + case 1003: + if (lbl_1_bss_50 != (temp_r31->unk00 < 4 ? 1001 : 1003)) { + break; + } + if (lbl_1_bss_54 == 0) { + Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); + if (temp_r31->unk00 < 4) { + temp_r31->unk38 = (temp_r31->unk00 == 0) ? 0 + : (temp_r31->unk00 == 1) ? 2 + : (temp_r31->unk00 == 2) ? 6 : 8; + temp_r31->unk3C = temp_r31->unk38 % 3 - 1; + temp_r31->unk40 = temp_r31->unk38 / 3 - 1; + arg0->trans.x = 500.0 * temp_r31->unk3C; + arg0->trans.z = 500.0 * temp_r31->unk40; + } else { + do { + temp_r31->unk38 = rand8() % 9; + for (spC8 = 0; spC8 < temp_r31->unk00; spC8++) { + spC4 = lbl_1_bss_330[spC8]->data; + if (temp_r31->unk38 == spC4->unk38) { + break; + } + } + } while (spC8 != temp_r31->unk00); + temp_r31->unk3C = temp_r31->unk38 % 3 - 1; + temp_r31->unk40 = temp_r31->unk38 / 3 - 1; + arg0->trans.x = 500.0 * temp_r31->unk3C; + arg0->trans.z = 500.0 * temp_r31->unk40; + } + } + if (lbl_1_bss_54 <= 30) { + if (temp_r31->unk08 == -1) { + Hu3DMotionTimeSet(arg0->model[0], 138.0f); + } + arg0->trans.y = 2400.0 * (1.0 - lbl_1_bss_54 / 30.0); + } + if (temp_r31->unk08 != -1 && lbl_1_bss_54 == 30) { + var_r28 = 4; + } + if (lbl_1_bss_54 == (temp_r31->unk08 != -1 ? 10 : 60) + 30) { + var_r28 = 0; + } + if (lbl_1_bss_54 == 30) { + lbl_1_data_134.unk04 += 50; + } + if (lbl_1_bss_54 == 30 && (temp_r31->unk00 == 0 || temp_r31->unk00 == 4)) { + HuAudFXPlay(0x33D); + } + break; + case 1002: + if (lbl_1_bss_54 != 0 && temp_r31->unk00 < 4 && (var_r22 != 0 || lbl_1_bss_0 == 0) && temp_r31->unk50 == 0) { + temp_r31->unk50 = 1; + lbl_1_bss_14++; + lbl_1_bss_51C[temp_r31->unk38].unk08 = 83.333336f; + } + if (temp_r31->unk00 != 0) { + break; + } + if (lbl_1_bss_54 == 0) { + lbl_1_bss_0 = 300; + lbl_1_data_14E = MGSeqTimerCreate(10); + HuWinMesMaxSizeGet(1, sp180, MAKE_MESSID(40, 25)); + lbl_1_bss_C = HuWinCreate(-10000.0f, 400.0f, sp180[0], sp180[1], 1); + HuWinBGTPLvlSet(lbl_1_bss_C, 0.0f); + HuWinMesSpeedSet(lbl_1_bss_C, 0); + HuWinMesSet(lbl_1_bss_C, MAKE_MESSID(40, 25)); + } + lbl_1_bss_0--; + if (lbl_1_data_14E != -1) { + MGSeqParamSet(lbl_1_data_14E, 1, (lbl_1_bss_0 + 59) / 60); + } + if (lbl_1_bss_14 >= 4) { + lbl_1_bss_54 = 50; + MGSeqParamSet(lbl_1_data_14E, 2, -1); + lbl_1_data_14E = -1; + HuWinExCleanup(lbl_1_bss_C); + } + if (lbl_1_bss_54 == 50) { + for (var_r23 = 0; var_r23 < 4; var_r23++) { + temp_r18 = lbl_1_bss_330[var_r23]->data; + if (!(fabs(500.0 * temp_r18->unk3C - lbl_1_bss_330[var_r23]->trans.x) < 1.0) + || !(fabs(500.0 * temp_r18->unk40 - lbl_1_bss_330[var_r23]->trans.z) < 1.0) + || temp_r18->unk20 != 0) + { + break; + } + } + if (var_r23 == 4) { + lbl_1_bss_54 = 60; + } + } + break; + case 1005: + if (temp_r31->unk5C != 0) { + if (arg0->trans.y < -15000.0f) { + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); + } else { + arg0->trans.y -= 77.0f; + } + } + break; + case 1006: + if (lbl_1_bss_54 <= 1) { + Hu3DModelAttrSet(arg0->model[temp_r31->unk44 + 2], HU3D_ATTR_DISPOFF); + lbl_1_bss_51C[temp_r31->unk44].unk0C = 0; + } + if (lbl_1_bss_51C[temp_r31->unk38].unk0C != 0 || temp_r31->unk5C != 0) { + break; + } + if (lbl_1_bss_54 == 120) { + Hu3DModelAttrReset(lbl_1_bss_32C->model[temp_r31->unk38 + 1], HU3D_MOTATTR_PAUSE); + } + if (lbl_1_bss_54 == 153) { + Hu3DModelAttrSet(lbl_1_bss_32C->model[temp_r31->unk38 + 1], HU3D_MOTATTR_PAUSE); + } + if (lbl_1_bss_54 == 183) { + Hu3DModelAttrReset(lbl_1_bss_32C->model[temp_r31->unk38 + 1], HU3D_MOTATTR_PAUSE); + } + if (lbl_1_bss_54 == 210) { + spBC = 0; + for (spC0 = 0; spC0 < 9; spC0++) { + spB8 = lbl_1_bss_330[spC0]->data; + spBC += (lbl_1_bss_51C[spB8->unk38].unk0C == 0 && spB8->unk5C == 0); + } + var_r28 = 7; + HuAudFXPlayVol(0x7F7 + (temp_r31->unk08 != -1 ? temp_r31->unk08 : 8), 1651 / (spBC + 12)); + } + if (lbl_1_bss_54 >= 210 && lbl_1_bss_54 <= 214) { + s32 sp1AC[] = { 0, -12, -36, 0, 0, -12, -36, -48, 0 }; + float sp194[] = { 150.0f, 175.0f, 205.0f }; + float sp188[] = { 100.0f, 170.0f, 260.0f }; + + spB4 = temp_r31->unk38 % 3 - 1; + spB0 = temp_r31->unk38 / 3; + spAC = (lbl_1_bss_54 - 210) / 4.0; + temp_f26 = (lbl_1_bss_54 - 210) / 4.0; + temp_f26 = (temp_f26 > 1.0f) ? 1.0f : temp_f26; + espAttrReset(lbl_1_data_24[temp_r31->unk38], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_data_24[temp_r31->unk38], + 290.0f + spB4 * sp194[spB0], + sp188[spB0] + 0.5 * (64.0f * (1.0f - spAC) * 0.5 + sp1AC[temp_r31->unk08 != -1 ? temp_r31->unk08 : 8])); + espScaleSet(lbl_1_data_24[temp_r31->unk38], 0.5 * temp_f26, 0.5 * temp_f26); + } + if (lbl_1_bss_54 == 270) { + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_PAUSE); + espAttrSet(lbl_1_data_24[temp_r31->unk38], HUSPR_ATTR_DISPOFF); + } + if (lbl_1_bss_54 == 290) { + spA0 = 0; + for (spA4 = 0; spA4 < 9; spA4++) { + sp9C = lbl_1_bss_330[spA4]->data; + spA0 += (lbl_1_bss_51C[sp9C->unk38].unk0C == 0 && sp9C->unk5C == 0); + } + spA8 = HuAudFXPlayVol(0x800 + (temp_r31->unk08 != -1 ? temp_r31->unk08 : 8), 1651 / (spA0 + 12)); + HuAudFXFadeOut(spA8, 0x9C4); + } + if (lbl_1_bss_54 >= 315) { + arg0->trans.y -= 77.0f; + } + break; + case 1007: + if (temp_r31->unk00 == lbl_1_bss_38) { + var_r28 = 8; + if (temp_r31->unk00 >= 4 && temp_r31->unk08 != -1 && lbl_1_bss_54 == 1) { + HuAudFXPlay(0x809 + temp_r31->unk08); + } + if (temp_r31->unk08 == -1 && lbl_1_bss_54 == 1) { + HuAudFXPlay(0x3A); + } + } else if (arg0->trans.y < -40000.0f) { + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); + } else { + arg0->trans.y -= 77.0f; + } + break; + } + switch (temp_r31->unk18) { + case 0: + temp_r31->unk1C++; + break; + case 1: + temp_r31->unk1C++; + if (temp_r31->unk1C <= 60) { + arg0->rot.y = -180.0 * (temp_r31->unk1C / 60.0); + } else { + Hu3DMotionTimeSet(arg0->model[0], 120.0f); + var_r28 = 0; + temp_r31->unk18 = 0; + temp_r31->unk1C = 0; + } + break; + case 2: + temp_r31->unk1C++; + break; + case 3: + if (temp_r31->unk1C == 0) { + temp_r31->unk48 = 6; + temp_r31->unk4C = 0; + } + if (temp_r31->unk1C < 360) { + temp_r24 = &Hu3DData[arg0->model[1]]; + if (temp_r31->unk1C == 0) { + Hu3DModelAttrReset(arg0->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(arg0->model[1], arg0->trans.x, arg0->trans.y + 625.0f, arg0->trans.z); + Hu3DModelScaleSet(arg0->model[1], 0.1f, 0.1f, 0.1f); + Hu3DModelTPLvlSet(arg0->model[1], 1.0f); + temp_r31->unk4C = 0; + if (lbl_1_bss_18 == 0) { + HuAudFXPlay(0x7F4); + lbl_1_data_184 = HuAudFXPlay(0x7F3); + } + lbl_1_bss_18++; + } + temp_r24->rot.y = temp_r31->unk4C % 360; + temp_r31->unk4C += 25; + if (temp_r31->unk1C < 180) { + var_f20 = 0.0f; + var_f21 = 1.0f; + } else { + var_f20 = 1.0f; + var_f21 = 0.5f; + } + temp_r24->scale.x = var_f20 + var_f21 * sind((float) (temp_r31->unk1C % 180)); + temp_r24->scale.y = temp_r24->scale.z = temp_r24->scale.x; + if (temp_r31->unk1C < 180) { + temp_r31->unk1C += 6; + } else { + temp_r31->unk1C += 18; + } + if (temp_r31->unk1C >= 360) { + temp_r31->unk1C = 360; + Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); + } + } else { + sp98 = &Hu3DData[arg0->model[1]]; + temp_r31->unk1C += 4; + if (temp_r31->unk1C > 720) { + temp_r31->unk1C -= 360; + } + sp98->pos.y += 0.2f * sind(temp_r31->unk1C - 360); + if (var_r22 != 0 || lbl_1_bss_0 == 0) { + lbl_1_bss_54 = 50; + temp_r31->unk18 = 4; + temp_r31->unk1C = 0; + var_r28 = 5; + } + } + break; + case 4: + temp_r31->unk1C++; + if (temp_r31->unk1C < 27) { + break; + } + temp_r29 = &Hu3DData[arg0->model[1]]; + temp_r27 = temp_r31->unk1C - 27; + if (temp_r27 == 0) { + if (temp_r31->unk04 != -1) { + omVibrate(temp_r31->unk04, 12, 4, 2); + } + temp_r31->unk48 = -1; + lbl_1_bss_18--; + if (lbl_1_bss_18 == 0 && lbl_1_data_184 != -1) { + HuAudFXStop(lbl_1_data_184); + lbl_1_data_184 = -1; + } + HuAudFXPlay(0x7F5); + } + if (temp_r27 == 8) { + if (temp_r31->unk54 == -1) { + lbl_1_bss_58 = temp_r31->unk00; + temp_r31->unk54 = fn_1_4474(); + Hu3DParManPosSet(temp_r31->unk54, temp_r29->pos.x, temp_r29->pos.y, temp_r29->pos.z); + temp_r31->unk58 = 150; + } + Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); + } else if (temp_r27 > 8) { + if (temp_r31->unk20 == 5) { + if (Hu3DMotionTimeGet(arg0->model[0]) >= Hu3DMotionMaxTimeGet(arg0->model[0])) { + var_r28 = 0; + } + } + if (temp_r27 <= 28) { + temp_f27 = (temp_r27 - 8) / 10.0; + sp94 = (temp_r27 - 8) * 18; + temp_f27 = (temp_f27 > 1.0f) ? 2.5 : (2.5 * temp_f27); + Hu3DModelAttrReset(arg0->model[temp_r31->unk44 + 2], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(arg0->model[temp_r31->unk44 + 2], temp_r29->pos.x, temp_r29->pos.y, temp_r29->pos.z); + Hu3DModelScaleSet(arg0->model[temp_r31->unk44 + 2], temp_f27, temp_f27, temp_f27); + } + if (temp_r27 >= 45 && temp_r27 <= 65) { + temp_f25 = (temp_r27 - 45) / 5.0; + sp90 = (temp_r27 - 45) * 18; + temp_f25 = (temp_f25 > 1.0f) ? 1.0f : temp_f25; + temp_f25 = 0.0f; + Hu3DModelAttrReset(arg0->model[temp_r31->unk44 + 2], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(arg0->model[temp_r31->unk44 + 2], temp_r29->pos.x, temp_r29->pos.y - 30.0f * temp_f25, temp_r29->pos.z); + temp_r31->unk1C += 5; + } + if (temp_r27 == 158) { + temp_r31->unk18 = 0; + temp_r31->unk1C = 0; + } + } else { + if (temp_r27 < 4) { + temp_r29->pos.y += 10.0f + 0.5f * temp_r27; + temp_r29->scale.x += 0.1f * sind(4.0f * temp_r27); + temp_r29->scale.y = temp_r29->scale.z = temp_r29->scale.x; + } else { + var_f24 = 255 - (temp_r27 << 5); + var_f24 = var_f24 * (1.0f / 255); + Hu3DModelTPLvlSet(arg0->model[1], var_f24); + } + temp_r29->pos.y += -0.49f * temp_r27 * temp_r27; + } + break; + case 5: + if (temp_r31->unk1C == 0) { + Hu3DModelAttrReset(lbl_1_bss_32C->model[temp_r31->unk44 + 1], HU3D_MOTATTR_PAUSE); + lbl_1_bss_51C[temp_r31->unk44].unk0C = 0; + if (lbl_1_bss_35C->unk00 < 3) { + lbl_1_bss_35C->unk04[lbl_1_bss_35C->unk00] = 0.0f; + lbl_1_bss_35C->unk00++; + } + } + temp_r31->unk1C++; + if (temp_r31->unk1C == 60 && temp_r31->unk54 != -1) { + Hu3DParManKill(temp_r31->unk54); + temp_r31->unk54 = -1; + } + if (temp_r31->unk1C == 33) { + Hu3DModelAttrSet(lbl_1_bss_32C->model[temp_r31->unk44 + 1], HU3D_MOTATTR_PAUSE); + } + if (temp_r31->unk1C == 63) { + Hu3DModelAttrReset(lbl_1_bss_32C->model[temp_r31->unk44 + 1], HU3D_MOTATTR_PAUSE); + } + if (temp_r31->unk1C == 68 && lbl_1_bss_35C[1].unk00 < 3) { + lbl_1_bss_35C[1].unk04[lbl_1_bss_35C[1].unk00] = 0.0f; + lbl_1_bss_35C[1].unk00++; + } + if (temp_r31->unk1C == 130) { + temp_r31->unk18 = 0; + temp_r31->unk1C = 0; + } + break; + } + if ((temp_r31->unk18 == 3 || temp_r31->unk18 == 4) && temp_r31->unk48 >= 0) { + temp_r31->unk48++; + if (temp_r31->unk48 >= 6) { + sp88 = temp_r31->unk44; + for (sp8C = 0; sp8C < 50; sp8C++) { + do { + temp_r31->unk44 = rand8() % 9; + if (temp_r31->unk44 >= 9) { + break; + } + } while (lbl_1_bss_51C[temp_r31->unk44].unk0C == 0); + if (sp88 != temp_r31->unk44) { + break; + } + } + sp88 = temp_r31->unk44; + temp_r31->unk48 = 0; + Hu3DMotionTimeSet(arg0->model[1], 0.5 + sp88); + } + } + if (temp_r31->unk24 >= 0) { + var_r28 = temp_r31->unk24; + } + if (var_r28 >= 0 && var_r28 != temp_r31->unk20) { + Hu3DMotionShiftSet(arg0->model[0], + arg0->motion[var_r28], + lbl_1_data_EC[var_r28], + (temp_r31->unk08 != -1) ? lbl_1_data_C8[var_r28] : lbl_1_data_110[var_r28], + (var_r28 == 7) ? HU3D_MOTATTR_PAUSE + : (temp_r31->unk08 != -1 ? lbl_1_data_B4[var_r28] : lbl_1_data_BD[var_r28]) ? 0 + : HU3D_MOTATTR_LOOP); + temp_r31->unk20 = var_r28; + } + temp_r31->unk58 -= (temp_r31->unk58 > -1); + if (temp_r31->unk58 == 0) { + if (temp_r31->unk54 != -1) { + Hu3DParManKill(temp_r31->unk54); + temp_r31->unk54 = -1; + } + temp_r31->unk58 = -1; + } +} + +s32 lbl_1_data_1A4[4] = { 0 }; +s32 lbl_1_data_1B4 = -1; +float lbl_1_data_1B8 = 3500.0f; +float lbl_1_data_1BC = 100.0f; +float lbl_1_data_1C0 = -59.0f; + +void fn_1_3264(omObjData* arg0) { + float temp_f29; + float var_f31; + float temp_f26; + float temp_f27; + float temp_f28; + StructBss330Data* spC[9]; + ModelData* temp_r29; + ModelData* temp_r28; + s32 var_r27; + s32 i; + s32 j; + + for (i = 0; i < 9; i++) { + spC[i] = lbl_1_bss_330[i]->data; + } + lbl_1_bss_4++; + switch (lbl_1_bss_50) { + case 1002: + lbl_1_bss_34++; + lbl_1_bss_34 %= 360; + /* fallthrough */ + case 1003: + var_r27 = 0; + for (i = 0; i < 4; i++) { + if (spC[i]->unk50 == 0 || spC[i]->unk20 != 0) { + continue; + } + temp_r29 = &Hu3DData[lbl_1_bss_32C->model[spC[i]->unk38 + 1]]; + if (var_r27 == 0 && lbl_1_data_1A4[i] == 0) { + lbl_1_data_1A4[i] = 1; + var_r27 = 1; + HuAudFXPlay(0x7F6); + } + temp_r29->pos.y = 0.9 * temp_r29->pos.y + 0.1 * lbl_1_bss_51C[spC[i]->unk38].unk08; + lbl_1_bss_330[i]->trans.y = temp_r29->pos.y - -16.666666666666668; + lbl_1_bss_330[i]->rot.y = 0.0f; + } + break; + case 1004: + if (lbl_1_bss_54 <= 60) { + temp_f29 = lbl_1_bss_54 / 60.0; + temp_f29 = 1.0f - (1.0f - temp_f29) * (1.0f - temp_f29); + if (lbl_1_bss_54 == 0) { + lbl_1_bss_51C[spC[0]->unk38].unk08 = -16.666666f; + } + for (i = 0; i < 9; i++) { + temp_r28 = &Hu3DData[lbl_1_bss_32C->model[i + 1]]; + Hu3DModelPosSet(lbl_1_bss_32C->model[i + 1], + (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk00 - 1), + 0.9 * temp_r28->pos.y + 0.1 * lbl_1_bss_51C[spC[0]->unk38].unk08, + (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk04 - 1)); + for (j = 0; j < 9; j++) { + if (i == spC[j]->unk38) { + lbl_1_bss_330[j]->trans.x = (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk00 - 1); + lbl_1_bss_330[j]->trans.y = temp_r28->pos.y - -16.666666666666668; + lbl_1_bss_330[j]->trans.z = (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk04 - 1); + } + } + } + } + break; + } + { + s32 var_r26 = lbl_1_data_1B4; + float sp30[][6] = { + { 3500.0f, 0.0f, 100.0f, 0.0f, -59.0f, 0.0f }, + { 3200.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, + { 3800.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, + { 2000.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, + { 4000.0f, 0.0f, 200.0f, 0.0f, -89.0f, 0.0f }, + { 2700.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f } + }; + + if (lbl_1_bss_38 != -1 && lbl_1_bss_38 != 9) { + sp30[5][1] = lbl_1_bss_330[lbl_1_bss_38]->trans.x; + sp30[5][3] = lbl_1_bss_330[lbl_1_bss_38]->trans.z; + } + if (lbl_1_data_1B4 == -1) { + lbl_1_data_1B4 = 0; + lbl_1_bss_1C = 1; + lbl_1_bss_20 = 1.0f; + } + if (lbl_1_data_1B4 == 0) { + lbl_1_data_1B4 = 1; + lbl_1_bss_1C = 1; + lbl_1_bss_20 = 0.5f; + } + if (lbl_1_bss_50 == 1004 && lbl_1_bss_54 >= 1 && lbl_1_data_1B4 == 1) { + lbl_1_data_1B4 = 2; + lbl_1_bss_1C = 0; + lbl_1_bss_20 = 0.0f; + } + if (lbl_1_bss_50 == 1006 && lbl_1_bss_54 >= 270 && lbl_1_data_1B4 == 2) { + lbl_1_data_1B4 = 4; + lbl_1_bss_1C = 1; + lbl_1_bss_20 = 1.0f; + } + if (lbl_1_bss_50 == 1005 && lbl_1_data_1B4 == 4) { + lbl_1_data_1B4 = 2; + lbl_1_bss_1C = 0; + lbl_1_bss_20 = 0.0f; + } + if (lbl_1_bss_50 == 1007 && lbl_1_bss_38 != 9 && lbl_1_data_1B4 == 4) { + lbl_1_data_1B4 = 5; + lbl_1_bss_1C = 0; + lbl_1_bss_20 = 0.0f; + } + if (var_r26 != lbl_1_data_1B4 && var_r26 != -1) { + lbl_1_data_1B8 = CZoom; + lbl_1_data_1BC = Center.y; + lbl_1_bss_28 = Center.z; + lbl_1_data_1C0 = CRot.x; + lbl_1_bss_2C = CRot.y; + } + if (lbl_1_bss_20 <= 1.0f) { + if (lbl_1_bss_1C == 0) { + lbl_1_bss_20 = 1.0 - 0.95 * (1.0f - lbl_1_bss_20); + var_f31 = lbl_1_bss_20; + } else { + lbl_1_bss_20 += 0.008333333333333333; + lbl_1_bss_20 = (lbl_1_bss_20 > 1.0f) ? 1.0f : lbl_1_bss_20; + var_f31 = 0.5 + -0.5 * cosd(180.0f * lbl_1_bss_20); + } + lbl_1_bss_20 = (lbl_1_bss_20 > 1.0f) ? 1.0f : lbl_1_bss_20; + CZoom = var_f31 * sp30[lbl_1_data_1B4][0] + lbl_1_data_1B8 * (1.0f - var_f31); + Center.x = var_f31 * sp30[lbl_1_data_1B4][1] + lbl_1_bss_24 * (1.0f - var_f31); + Center.y = var_f31 * sp30[lbl_1_data_1B4][2] + lbl_1_data_1BC * (1.0f - var_f31); + Center.z = var_f31 * sp30[lbl_1_data_1B4][3] + lbl_1_bss_28 * (1.0f - var_f31); + CRot.x = var_f31 * sp30[lbl_1_data_1B4][4] + lbl_1_data_1C0 * (1.0f - var_f31); + CRot.y = var_f31 * sp30[lbl_1_data_1B4][5] + lbl_1_bss_2C * (1.0f - var_f31); + } + } + if (lbl_1_bss_50 == 1001 || lbl_1_bss_50 == 1003) { + temp_f26 = 0.0f; + temp_f27 = 0.0f; + if (lbl_1_data_134.unk00 % 2 >= 0) { + lbl_1_data_134.unk08 = lbl_1_data_134.unk10; + lbl_1_data_134.unk0C = lbl_1_data_134.unk14; + do { + lbl_1_data_134.unk10 = 2.0 * (rand8() / 255.0) - 1.0; + lbl_1_data_134.unk14 = 2.0 * (rand8() / 255.0) - 1.0; + lbl_1_data_134.unk10 = 0.0f; + temp_f28 = (lbl_1_data_134.unk10 - lbl_1_data_134.unk08) * (lbl_1_data_134.unk10 - lbl_1_data_134.unk08) + (lbl_1_data_134.unk14 - lbl_1_data_134.unk0C) * (lbl_1_data_134.unk14 - lbl_1_data_134.unk0C); + } while (sqrtf(temp_f28) < 0.75); + } + lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 24 + : (lbl_1_data_134.unk04 > 0) ? lbl_1_data_134.unk04 : 0; + temp_f26 = lbl_1_data_134.unk08; + temp_f27 = lbl_1_data_134.unk0C; + temp_f26 *= lbl_1_data_134.unk04 * 2; + temp_f27 *= lbl_1_data_134.unk04 * 2; + lbl_1_data_134.unk00 = !lbl_1_data_134.unk00; + lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 23 + : (lbl_1_data_134.unk04 - 1 > 0) ? (lbl_1_data_134.unk04 - 1) : 0; + Center.x = 0.0f; + Center.y = 100.0f + temp_f27; + } +} + +s16 fn_1_4474(void) { + AnimData* var_r29; + void* var_r28; + s16 var_r31; + s16 var_r30; + HsfanimStruct00 sp8 = { + 0x96, + { 0x00, 0x00 }, + 50.0f, + 0.0f, + 65.0f, + { 0.0f, -0.195f, 0.0f }, + 80.0f, + 0.99f, + 40.0f, + 0.999f, + 4, + { + { 0xFF, 0xFF, 0x20, 0xFF }, + { 0xFF, 0xFF, 0x00, 0xFF }, + { 0xFF, 0xFF, 0x80, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF } + }, + { + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 } + } + }; + + lbl_1_bss_5C[lbl_1_bss_58] = sp8; + var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_BOARD, 107), MEMORY_DEFAULT_NUM, HEAP_DATA); + var_r29 = HuSprAnimRead(var_r28); + var_r31 = Hu3DParManCreate(var_r29, 40, &lbl_1_bss_5C[lbl_1_bss_58]); + Hu3DParManAttrSet(var_r31, 8 | 0x100); + Hu3DParManRotSet(var_r31, 0.0f, 0.0f, 0.0f); + Hu3DParManVecSet(var_r31, 0.0f, 0.4f, 0.2f); + var_r30 = Hu3DParManModelIDGet(var_r31); + Hu3DModelLayerSet(var_r30, 2); + Hu3DParticleBlendModeSet(var_r30, 0); + return var_r31; +} + +void fn_1_45F8(omObjData* arg0) { + StructBss330Data* sp14[9]; + float spC[2]; + s32 sp8; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r30; + s32 i; + + for (i = 0; i < 28; i++) { + s32 sp38[] = { + 0x7F1, 0x7F2, 0x7F7, 0x7F8, + 0x7F9, 0x7FA, 0x7FB, 0x7FC, + 0x7FD, 0x7FE, 0x7FF, 0x800, + 0x801, 0x802, 0x803, 0x804, + 0x7FB, 0x7FC, 0x7FD, 0x7FE, + 0x7FF, 0x800, 0x801, 0x802, + 0x803, 0x804, 0x7FB, 0x7FC + }; + + if (lbl_1_bss_35C[i].unk00 > 3) { + lbl_1_bss_35C[i].unk00 = 3; + } + if (lbl_1_bss_35C[i].unk00 > 0) { + sp8 = HuAudFXPlay(sp38[i]); + lbl_1_bss_35C[i].unk00--; + } + } + for (i = 0; i < 9; i++) { + sp14[i] = lbl_1_bss_330[i]->data; + } + if (omSysExitReq != 0 && WipeStatGet() == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_659C; + } + switch (lbl_1_bss_50) { + case 1000: + if (WipeStatGet() != 0) { + break; + } + lbl_1_bss_50++; + lbl_1_bss_54 = 0; + for (i = 0; i < 9; i++) { + if (sp14[i]->unk54 != -1) { + Hu3DParManKill(sp14[i]->unk54); + sp14[i]->unk54 = -1; + } + } + break; + case 1001: + lbl_1_bss_54++; + if (lbl_1_bss_54 == 90 && lbl_1_data_14C < 0) { + lbl_1_data_14C = MGSeqStartCreate(); + } + if (lbl_1_bss_54 >= 90 && lbl_1_data_150 == -1 && (MGSeqStatGet(lbl_1_data_14C) & 0x10)) { + lbl_1_data_150 = HuAudSeqPlay(0x49); + } + if (lbl_1_bss_54 >= 90 && MGSeqStatGet(lbl_1_data_14C) == 0 && lbl_1_data_14C >= 0) { + lbl_1_bss_50 = 1002; + lbl_1_bss_54 = 0; + } + break; + case 1002: + lbl_1_bss_54 += (lbl_1_bss_54 < 30); + if (lbl_1_bss_54 >= 60) { + lbl_1_bss_50++; + lbl_1_bss_54 = 0; + } + break; + case 1003: + lbl_1_bss_54++; + if (lbl_1_bss_54 == (sp14[1]->unk08 == -1 ? 120 : 60) + 30) { + lbl_1_bss_50++; + if (sp14[1]->unk08 == -1) { + lbl_1_bss_50++; + } + lbl_1_bss_54 = 0; + } + break; + case 1004: + lbl_1_bss_54++; + if (lbl_1_bss_54 == 90) { + lbl_1_bss_50++; + lbl_1_bss_54 = 0; + } + break; + case 1005: + if (lbl_1_bss_54 == 0) { + for (i = 0; i < 9; i++) { + if (lbl_1_bss_51C[sp14[i]->unk38].unk0C != 0) { + sp14[i]->unk18 = 3; + sp14[i]->unk1C = 0; + } else { + sp14[i]->unk5C = 1; + } + } + HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(48, 37)); + lbl_1_bss_C = HuWinCreate(-10000.0f, 400.0f, spC[0], spC[1], 1); + HuWinBGTPLvlSet(lbl_1_bss_C, 0.0f); + HuWinMesSpeedSet(lbl_1_bss_C, 0); + HuWinMesSet(lbl_1_bss_C, MAKE_MESSID(48, 37)); + lbl_1_bss_0 = 180; + } + lbl_1_bss_54++; + if (lbl_1_bss_54 == 30) { + lbl_1_data_14E = MGSeqTimerCreate(10); + MGSeqPosSet(lbl_1_data_14E, 489.6f, 64.0f); + } + if (lbl_1_bss_54 >= 30 && lbl_1_data_14E != -1) { + var_r29 = 0; + for (i = 0; i < 9; i++) { + if (lbl_1_bss_51C[sp14[i]->unk38].unk0C == 0 || sp14[i]->unk18 == 4 || sp14[i]->unk18 == 0) { + var_r29++; + } + } + if (var_r29 >= 9 || lbl_1_bss_0 == 0) { + MGSeqParamSet(lbl_1_data_14E, 2, -1); + lbl_1_data_14E = -1; + } else { + lbl_1_bss_0 -= (lbl_1_bss_0 > 0); + MGSeqParamSet(lbl_1_data_14E, 1, (lbl_1_bss_0 + 59) / 60); + } + } + var_r28 = 0; + for (i = 0; i < 9; i++) { + if (lbl_1_bss_51C[sp14[i]->unk38].unk0C == 0 || sp14[i]->unk18 == 0) { + var_r28++; + } + } + if (var_r28 >= 9) { + lbl_1_bss_50++; + lbl_1_bss_54 = 0; + } + break; + case 1006: + if (lbl_1_bss_54 == 1) { + HuWinExCleanup(lbl_1_bss_C); + } + lbl_1_bss_54++; + if (lbl_1_bss_54 == 3) { + lbl_1_bss_54 = 118; + } + if (lbl_1_bss_54 == 223) { + lbl_1_bss_54 = 233; + } + if (lbl_1_bss_54 == 120 && lbl_1_bss_35C->unk00 < 3) { + lbl_1_bss_35C->unk04[lbl_1_bss_35C->unk00] = 0.0f; + lbl_1_bss_35C->unk00++; + } + if (lbl_1_bss_54 == 188 && lbl_1_bss_35C[1].unk00 < 3) { + lbl_1_bss_35C[1].unk04[lbl_1_bss_35C[1].unk00] = 0.0f; + lbl_1_bss_35C[1].unk00++; + } + if (lbl_1_bss_54 == 360) { + var_r30 = 0; + var_r27 = -1; + for (i = 0; i < 9; i++) { + var_r30 += lbl_1_bss_51C[i].unk0C; + var_r27 = (lbl_1_bss_51C[sp14[i]->unk38].unk0C != 0) ? i : var_r27; + } + if (var_r30 <= 1) { + lbl_1_bss_38 = (var_r30 == 0) ? 9 : var_r27; + } + if (lbl_1_bss_38 != -1) { + lbl_1_data_14C = MGSeqFinishCreate(); + if (lbl_1_data_150 != -1) { + HuAudSeqFadeOut(lbl_1_data_150, 100); + } + } + } + if (lbl_1_bss_54 >= 480) { + if (lbl_1_bss_38 != -1) { + if (MGSeqStatGet(lbl_1_data_14C) == 0 && lbl_1_bss_54 >= 510) { + lbl_1_bss_50 = 1007; + lbl_1_bss_54 = 0; + } + } else { + lbl_1_bss_50 = 1005; + lbl_1_bss_54 = 0; + } + } + break; + case 1007: + lbl_1_bss_54++; + if (lbl_1_bss_54 == 1) { + if (lbl_1_bss_38 != 9) { + if (lbl_1_bss_38 < 9) { + HuAudSStreamPlay(1); + } else { + HuAudSStreamPlay(1); + } + if (lbl_1_bss_38 < 4 && sp14[lbl_1_bss_38]->unk04 != -1) { + GWPlayerCoinWinSet(sp14[lbl_1_bss_38]->unk04, 10); + } + } else if (lbl_1_bss_38 == 9) { + HuAudSStreamPlay(4); + } + } + if (210.0f + (lbl_1_bss_38 == 9 ? 60 : 0) < lbl_1_bss_54) { + if (lbl_1_data_154 != -1) { + HuAudFXStop(lbl_1_data_154); + lbl_1_data_154 = -1; + } + lbl_1_data_14C = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_659C; + } + break; + } +} + +void fn_1_53A0(omObjData* arg0) { + StructBss330Data* sp50[9]; + s32 i; + + for (i = 0; i < 9; i++) { + sp50[i] = lbl_1_bss_330[i]->data; + } + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M458, 8)); + Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(arg0->model[0], 0.1f); + for (i = 0; i < 9; i++) { + arg0->model[i + 1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M458, 10 + i)); + lbl_1_bss_51C[i].unk00 = i % 3; + lbl_1_bss_51C[i].unk04 = i / 3; + lbl_1_bss_51C[i].unk08 = 0.0f; + lbl_1_bss_51C[i].unk0C = 1; + Hu3DModelPosSet(lbl_1_bss_32C->model[i + 1], + 500.0 * (lbl_1_bss_51C[i].unk00 - 1), + -16.666666f, + 500.0 * (lbl_1_bss_51C[i].unk04 - 1)); + Hu3DModelScaleSet(lbl_1_bss_32C->model[i + 1], 1.6666666f, 1.6666666f, 1.6666666f); + Hu3DModelAttrSet(arg0->model[i + 1], HU3D_MOTATTR_PAUSE); + Hu3DModelShadowMapSet(arg0->model[i + 1]); + Hu3DModelLayerSet(arg0->model[i + 1], 1); + } + for (i = 0; i < 9; i++) { + s32 sp2C[9] = { 288, 290 }; + s32 sp8[9] = { 240, 140 }; + + lbl_1_data_24[i] = espEntry(lbl_1_data_0[i], 0, 0); + espDrawNoSet(lbl_1_data_24[i], 0); + espAttrSet(lbl_1_data_24[i], HUSPR_ATTR_NOANIM | HUSPR_ATTR_DISPOFF); + espBankSet(lbl_1_data_24[i], 0); + espPriSet(lbl_1_data_24[i], 0x80 - i); + espPosSet(lbl_1_data_24[i], 290.0f, 140.0f); + espTPLvlSet(lbl_1_data_24[i], 1.0f); + } + arg0->func = fn_1_3264; +} + +s32 lbl_1_data_1E4[] = { + DATA_MAKE_NUM(DATADIR_M458, 19), + DATA_MAKE_NUM(DATADIR_M458, 20), + DATA_MAKE_NUM(DATADIR_M458, 21), + DATA_MAKE_NUM(DATADIR_M458, 22), + DATA_MAKE_NUM(DATADIR_M458, 23), + DATA_MAKE_NUM(DATADIR_M458, 24), + DATA_MAKE_NUM(DATADIR_M458, 25), + DATA_MAKE_NUM(DATADIR_M458, 26), + DATA_MAKE_NUM(DATADIR_M458, 27), + DATA_MAKE_NUM(DATADIR_M458, 28), + DATA_MAKE_NUM(DATADIR_M458, 29) +}; + +void fn_1_5850(omObjData* arg0) { + StructBss330Data* temp_r31; + s32 sp10[] = { 0, 1, 2, 3 }; + s32 var_r25; + s32 var_r28; + s32 i; + s32 j; + + var_r25 = 0; + temp_r31 = arg0->data; + memset(temp_r31, 0, sizeof(*temp_r31)); + temp_r31->unk00 = arg0->work[0]; + if (temp_r31->unk00 >= 4) { + var_r28 = -1; + for (i = 0; i <= temp_r31->unk00 - 4; i++) { + do { + var_r28++; + } while (GWPlayerCfg[0].character == var_r28 || GWPlayerCfg[1].character == var_r28 || GWPlayerCfg[2].character == var_r28 || GWPlayerCfg[3].character == var_r28); + } + temp_r31->unk08 = (var_r28 == 8) ? -1 : var_r28; + temp_r31->unk0C = -1; + temp_r31->unk04 = -1; + temp_r31->unk10 = 0; + } else { + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + if (i == GWPlayerCfg[j].group) { + sp10[var_r25] = j; + var_r25++; + } + } + } + temp_r31->unk00 = arg0->work[0]; + temp_r31->unk04 = sp10[temp_r31->unk00]; + if (temp_r31->unk04 == 4) { + OSReport("m463:wrong player group\n"); + temp_r31->unk04 = temp_r31->unk00; + } + temp_r31->unk08 = GWPlayerCfg[temp_r31->unk04].character; + temp_r31->unk0C = (temp_r31->unk08 == -1 || GWPlayerCfg[temp_r31->unk04].iscom) ? -1 : GWPlayerCfg[temp_r31->unk04].pad_idx; + temp_r31->unk10 = (temp_r31->unk0C != -1) ? 0 : GWPlayerCfg[temp_r31->unk04].diff; + } + temp_r31->unk18 = 0; + temp_r31->unk20 = 3; + temp_r31->unk24 = -1; + temp_r31->unk48 = -1; + if (temp_r31->unk08 != -1) { + arg0->model[0] = CharModelCreate(temp_r31->unk08, 4); + } else { + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_BKOOPA, 7)); + } + omSetTra(arg0, 0.0f, temp_r31->unk00 == 0 ? 0 : 300, 0.0f); + if (temp_r31->unk08 != -1) { + omSetSca(arg0, 2.5f, 2.5f, 2.5f); + } else { + omSetSca(arg0, 2.0f, 2.0f, 2.0f); + } + for (i = 0; i < 9; i++) { + if (temp_r31->unk08 != -1) { + if (temp_r31->unk00 < 4 || (i != 1 && i != 2)) { + arg0->motion[i] = CharModelMotionCreate(temp_r31->unk08, lbl_1_data_48[i] + (lbl_1_data_6C[i] ? temp_r31->unk08 : 0)); + } + } else if (lbl_1_data_90[i] != 0) { + arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_90[i]); + } + } + Hu3DMotionSet(arg0->model[0], arg0->motion[temp_r31->unk20]); + Hu3DMotionTimeSet(arg0->model[0], 10.0f); + Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(arg0->model[0]); + Hu3DModelAttrSet(arg0->model[0], 1U); + Hu3DModelLayerSet(arg0->model[0], 1); + CharModelLayerSetAll2(1); + if (temp_r31->unk08 != -1) { + CharModelDataClose(temp_r31->unk08); + } + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M458, 9)); + Hu3DModelAttrSet(arg0->model[1], HU3D_MOTATTR_LOOP); + Hu3DModelPosSet(arg0->model[1], 0.0f, 400.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(arg0->model[1], 1); + Hu3DMotionSpeedSet(arg0->model[1], 0.0f); + for (i = 0; i < 9; i++) { + if (temp_r31->unk00 == 0) { + arg0->model[i + 2] = Hu3DModelCreateFile(lbl_1_data_1E4[i]); + } else { + arg0->model[i + 2] = Hu3DModelLink(lbl_1_bss_330[0]->model[i + 2]); + } + Hu3DMotionTimeSet(arg0->model[i + 2], 10.0f); + Hu3DMotionSpeedSet(arg0->model[i + 2], 0.0f); + Hu3DModelAttrSet(arg0->model[i + 2], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(arg0->model[i + 2], 1); + } + lbl_1_bss_58 = temp_r31->unk00; + temp_r31->unk54 = fn_1_4474(); + Hu3DParManPosSet(temp_r31->unk54, 10000.0f, -10000.0f, 10000.0f); + arg0->func = fn_1_4C8; +} + +void fn_1_60A4(omObjData* arg0) { + lbl_1_bss_50 = 1000; + lbl_1_bss_54 = 0; + lbl_1_bss_48 = 0; + lbl_1_bss_44 = 0; + lbl_1_data_154 = HuAudFXPlay(0x6D7); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + arg0->func = fn_1_45F8; +} + +void ObjectSetup(void) { + omObjData* var_r30; + s32 i; + + OSReport("******* M463 ObjectSetup *********\n"); + lbl_1_bss_40 = omInitObjMan(600, 0x2000); + omGameSysInit(lbl_1_bss_40); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 25000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + CZoom = 3200.0f; + Center.x = 0.0f; + Center.y = 0.0f; + Center.z = -100.0f; + CRot.x = -30.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + { + Vec sp3C = { 0.0f, 0.0f, 0.0f }; + Vec sp30 = { 0.25f, -0.75f, -0.45f }; + GXColor sp8 = { 0xFF, 0xFF, 0xFF, 0xFF }; + + lbl_1_bss_3C = Hu3DGLightCreateV(&sp3C, &sp30, &sp8); + } + Hu3DGLightStaticSet(lbl_1_bss_3C, 1); + Hu3DGLightInfinitytSet(lbl_1_bss_3C); + { + Vec sp24; + Vec sp18; + Vec spC; + + sp24.x = 0.0f; + sp24.y = 10000.0f; + sp24.z = 0.0f; + sp18.x = 0.0f; + sp18.y = 1.0f; + sp18.z = 0.0f; + spC.x = 0.0f; + spC.y = 0.0f; + spC.z = 0.5f; + Hu3DShadowCreate(12.0f, 9000.0f, 10010.0f); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&sp24, &sp18, &spC); + } + Hu3DShadowSizeSet(0xE0); + lbl_1_data_14C = -1; + lbl_1_bss_38 = -1; + HuWinInit(1); + lbl_1_bss_32C = omAddObjEx(lbl_1_bss_40, 0x65, 10, 0, 1, fn_1_53A0); + for (i = 0; i < 9; i++) { + var_r30 = lbl_1_bss_330[i] = omAddObjEx(lbl_1_bss_40, 100, 11, 9, 0, fn_1_5850); + var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(StructBss330Data), MEMORY_DEFAULT_NUM); + var_r30->work[0] = i; + } + lbl_1_bss_354 = omAddObjEx(lbl_1_bss_40, 0x7FDA, 0, 0, -1, omOutView); + lbl_1_bss_358 = omAddObjEx(lbl_1_bss_40, 103, 0, 0, -1, fn_1_60A4); +} + +void fn_1_659C(omObjData* arg0) { + StructBss330Data* spC[9]; + void* sp8; + s32 var_r31; + s32 var_r30; + + for (var_r31 = 0; var_r31 < 9; var_r31++) { + spC[var_r31] = lbl_1_bss_330[var_r31]->data; + if (spC[var_r31]->unk54 != -1) { + Hu3DParManKill(spC[var_r31]->unk54); + spC[var_r31]->unk54 = -1; + } + } + if (WipeStatGet() == 0) { + for (var_r30 = 0; var_r30 < 9; var_r30++) { + sp8 = lbl_1_bss_330[var_r30]->data; + } + if (lbl_1_data_14C >= 0) { + MGSeqKill(lbl_1_data_14C); + } + MGSeqKillAll(); + HuAudAllStop(); + omOvlReturnEx(1, 1); + } +} diff --git a/src/game/board/last5.c b/src/game/board/last5.c index 9860861c..8b9261c9 100644 --- a/src/game/board/last5.c +++ b/src/game/board/last5.c @@ -13,6 +13,8 @@ #include "game/data.h" #include "game/wipe.h" +#include "ext_math.h" + static s16 stopWin = -1; static s16 wheelMdl = -1; s16 lbl_801D3854 = -1; @@ -1330,7 +1332,7 @@ static void UpdateLotteryTicket(omObjData *object) switch(work->state) { case 2: if(work->angle < 540) { - float scale = 0.4f+(0.1f*sin(M_PI*(float)(work->angle%180)/180.0)); + float scale = 0.4f+(0.1f*sind((float)(work->angle%180))); HuSprGrpScaleSet(work->group, scale, scale); work->angle += 9; } else { @@ -1511,7 +1513,7 @@ static void StartHostMove(Vec *from, Vec *to, s16 time) omSetTra(object, from->x, from->y, from->z); omSetRot(object, (to->x-from->x)/duration, 0.0f, (to->z-from->z)/duration); omSetSca(object, to->x, to->y, to->z); - angle = 180.0*(atan2(object->rot.x, object->rot.z)/M_PI); + angle = atan2d(object->rot.x, object->rot.z); work->angle = 0; OSf32tos16(&angle, &work->angle_end); BoardModelMotionShiftSet(hostMdl, hostMot[0], 0, 8, HU3D_MOTATTR_LOOP); diff --git a/src/game/board/player.c b/src/game/board/player.c index 96722477..046aafea 100644 --- a/src/game/board/player.c +++ b/src/game/board/player.c @@ -18,7 +18,7 @@ #include "game/objsub.h" #include "game/pad.h" -#include "math.h" +#include "ext_math.h" #include "stdlib.h" static void InitJunction(s32, s32, f32); @@ -1152,7 +1152,7 @@ static void InitJunction(s32 arg0, s32 arg1, f32 arg8) VECSubtract(&sp50, &sp68, &sp44); VECNormalize(&sp44, &sp44); - angle = (180.0 * (atan2(sp44.x, sp44.z) / M_PI)); + angle = atan2d(sp44.x, sp44.z); if (angle < 0.0f) { angle += 360.0f; } @@ -1174,7 +1174,7 @@ static void InitJunction(s32 arg0, s32 arg1, f32 arg8) temp_r29->unk_06[var_r27] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0), NULL, 1); BoardModelRotSet(temp_r29->unk_06[var_r27], 0.0f, angle, 0.0f); BoardModelLayerSet(temp_r29->unk_06[var_r27], 6); - sp5C.x = sp68.x + (100.0 * sin((M_PI * angle) / 180.0)); + sp5C.x = sp68.x + 100.0 * sind(angle); sp5C.y = 300.0f + sp68.y; sp5C.z = (var_f29 + (sp68.z + (100.0 * cosd(angle)))); BoardModelPosSetV(temp_r29->unk_06[var_r27], &sp5C); @@ -1219,7 +1219,7 @@ static void UpdateJunctionGfx(omObjData *arg0) temp_r30->unk_02 -= 0xB4; } OSs16tof32(&temp_r30->unk_02, &arg0->scale.x); - arg0->scale.x = 3.0 + sin((M_PI * arg0->scale.x) / 180.0); + arg0->scale.x = 3.0 + sind(arg0->scale.x); arg0->scale.y = arg0->scale.x; arg0->scale.z = arg0->scale.x; BoardModelScaleSet(temp_r30->unk_06[temp_r30->field00_bit5], arg0->scale.x, arg0->scale.y, arg0->scale.z); @@ -1355,7 +1355,7 @@ static s32 DoDebugMove(s32 arg0, s16 *arg1) } else { VECSubtract(&sp5C->pos, &sp88, &sp94); - var_f30 = 90.0 - (180.0 * (atan2(sp94.z, sp94.x) / M_PI)); + var_f30 = 90.0 - atan2d(sp94.z, sp94.x); OSf32tos16(&var_f30, &var_r26); if (var_r26 < 0) { var_r26 += 0x168; @@ -1394,7 +1394,7 @@ static s32 DoDebugMove(s32 arg0, s16 *arg1) goto loop_21; } if ((0.0f != spA0.x) || (0.0f != spA0.z)) { - var_f30 = (90.0 + (180.0 * (atan2(spA0.z, spA0.x) / M_PI))); + var_f30 = 90.0 + atan2d(spA0.z, spA0.x); if (var_f30 < 0.0f) { var_f30 += 360.0f; } @@ -1404,7 +1404,7 @@ static s32 DoDebugMove(s32 arg0, s16 *arg1) RestoreJunction(var_f30, 1); sp50 = &boardCamera; VECSubtract(&sp50->target, &sp50->pos, &sp7C); - var_f30 = (var_f30 + (90.0 - (180.0 * (atan2(-sp7C.z, -sp7C.x) / M_PI)))); + var_f30 += 90.0 - atan2d(-sp7C.z, -sp7C.x); if (var_f30 < 0.0f) { var_f30 += 360.0f; } @@ -1535,7 +1535,7 @@ static s32 ExecJunction(s32 arg0, s16 *arg1) } else { VECSubtract(&sp88->pos, &spAC, &spB8); - var_f29 = (90.0 - (180.0 * (atan2(spB8.z, spB8.x) / M_PI))); + var_f29 = 90.0 - atan2d(spB8.z, spB8.x); if (var_f29 < 0.0f) { var_f29 += 360.0f; } @@ -1611,7 +1611,7 @@ static s32 ExecJunction(s32 arg0, s16 *arg1) } else { if ((0.0f != spC4.x) || (0.0f != spC4.z)) { - var_f29 = (90.0 + (180.0 * (atan2(spC4.z, spC4.x) / M_PI))); + var_f29 = 90.0 + atan2d(spC4.z, spC4.x); if (var_f29 < 0.0f) { var_f29 += 360.0f; } @@ -1729,7 +1729,7 @@ void BoardPlayerPosLerpStart(s32 arg0, Vec *arg1, Vec *arg2, s16 arg3) } VECSubtract(arg2, arg1, &sp18); VECNormalize(&sp18, &sp18); - var_f26 = 90.0 - (180.0 * (atan2(sp18.z, sp18.x) / M_PI)); + var_f26 = 90.0 - atan2d(sp18.z, sp18.x); var_f30 = var_f26; if (var_f30 < 0.0f) { var_f30 += 360.0f; @@ -2896,7 +2896,7 @@ static s32 MegaPlayerPassFunc(s32 player, s32 space) VECSubtract(&spC4, &spB8, &spAC); spAC.x /= 60.0f; spAC.z /= 60.0f; - BoardPlayerRotYSet(player, 90.0 - (180.0 * (atan2(spAC.z, spAC.x) / M_PI))); + BoardPlayerRotYSet(player, 90.0 - atan2d(spAC.z, spAC.x)); sp98[1] = BoardVecDistXZCalc(&spC4, &spB8); BoardPlayerMotionShiftSet(player, 4, 0, 8, HU3D_MOTATTR_NONE); HuPrcSleep(8); @@ -2998,7 +2998,7 @@ static s32 MegaExecJump(s32 player, s32 space) VECSubtract(&spC4, &spB8, &spAC); spAC.x /= 60.0f; spAC.z /= 60.0f; - BoardPlayerRotYSet(player, 90.0 - (180.0 * (atan2(spAC.z, spAC.x) / M_PI))); + BoardPlayerRotYSet(player, 90.0 - atan2d(spAC.z, spAC.x)); BoardPlayerIdleSet(player); HuPrcSleep(10); sp90[1] = BoardVecDistXZCalc(&spC4, &spB8); diff --git a/src/game/board/space.c b/src/game/board/space.c index 052f2bca..d092af1e 100644 --- a/src/game/board/space.c +++ b/src/game/board/space.c @@ -14,7 +14,7 @@ #include "game/objsub.h" #include "game/sprite.h" -#include "math.h" +#include "ext_math.h" #include "string.h" static BoardSpace spaceData[2][256]; @@ -156,10 +156,10 @@ void BoardSpaceCornerPosGet(s32 index, s32 corner, Vec *pos) corner_ofs.x = corner_pos[corner][0] * 80.0f; corner_ofs.y = 0; corner_ofs.z = corner_pos[corner][1] * 80.0f; - corner_ofs.x = (cos((M_PI * rot.z) / 180) * corner_ofs.x) + (sin((M_PI * rot.z) / 180) * corner_ofs.y); - corner_ofs.y = (cos((M_PI * rot.x) / 180) * cos((M_PI * rot.z) / 180) * corner_ofs.y) + (sin((M_PI * rot.z) / 180) * corner_ofs.x) - + (sin((M_PI * -rot.x) / 180) * corner_ofs.z); - corner_ofs.z = (sin((M_PI * rot.x) / 180) * corner_ofs.y) + (cos((M_PI * rot.x) / 180) * corner_ofs.z); + corner_ofs.x = (cosd(rot.z) * corner_ofs.x) + (sind(rot.z) * corner_ofs.y); + corner_ofs.y = (cosd(rot.x) * cosd(rot.z) * corner_ofs.y) + (sind(rot.z) * corner_ofs.x) + + (sind(-rot.x) * corner_ofs.z); + corner_ofs.z = (sind(rot.x) * corner_ofs.y) + (cosd(rot.x) * corner_ofs.z); pos->x += corner_ofs.x; pos->y += corner_ofs.y; pos->z += corner_ofs.z; @@ -724,7 +724,7 @@ static s32 ExecPipeSpace(s32 player, s32 space) BoardSpacePosGet(0, space_ptr->link[0], &pos_link); VECSubtract(&pos_link, &pos, &dir); VECNormalize(&dir, &dir); - BoardPlayerRotYSet(player, 90 - ((atan2(dir.z, dir.x) / M_PI) * 180)); + BoardPlayerRotYSet(player, 90 - atan2d(dir.z, dir.x)); radius = 0.75f * BoardVecDistXZCalc(&pos_link, &pos); BoardPlayerMotionStart(player, 4, 0); y_vel = 0; diff --git a/src/game/board/view.c b/src/game/board/view.c index 29118967..38a6157c 100755 --- a/src/game/board/view.c +++ b/src/game/board/view.c @@ -15,6 +15,8 @@ #include "game/board/space.h" #include "game/board/ui.h" +#include "ext_math.h" + typedef struct { struct { u8 unk00_field0 : 1; @@ -247,9 +249,9 @@ static void ExecMapView(void) { if (sp9 != 0 || sp8 != 0) { OSs8tof32(&sp9, &spC.x); OSs8tof32(&sp8, &spC.z); - temp_f28 = 180.0 * (atan2(spC.x, -spC.z) / M_PI); - spC.x = var_f29 * sin(temp_f28 * M_PI / 180.0); - spC.z = var_f29 * cos(temp_f28 * M_PI / 180.0); + temp_f28 = atan2d(spC.x, -spC.z); + spC.x = var_f29 * sind(temp_f28); + spC.z = var_f29 * cosd(temp_f28); } VECAdd(&spC, &focusPos, &focusPos); if (focusPos.x < temp_f26) { @@ -563,7 +565,7 @@ static void UpdateOverheadView(omObjData *arg0) { sp14.y -= 240.0f; VECSubtract(&sp20, &sp14, &sp8); sp8.z = 0.0f; - temp_f30 = BoardDAngleCalc(180.0 * (atan2(sp8.y, sp8.x) / M_PI) - 90.0); + temp_f30 = BoardDAngleCalc(atan2d(sp8.y, sp8.x) - 90.0); temp_f31 = VECMag(&sp8) / 32; if (i != 4) { var_r28 = i + 4; diff --git a/src/game/minigame_seq.c b/src/game/minigame_seq.c index 1bdf7b50..f74d4bf4 100644 --- a/src/game/minigame_seq.c +++ b/src/game/minigame_seq.c @@ -12,7 +12,7 @@ #include "game/minigame_seq.h" -#include "math.h" +#include "ext_math.h" #include "stdarg.h" #include "version.h" @@ -484,7 +484,7 @@ s32 MGSeqUpdateTimer(SeqWork *work) switch (work->state) { case 2: { float scale_x, scale_y; - scale = fabs(((sin((work->angle * M_PI) / 180) * 5.0f) + 1.0f) - (sin((130 * M_PI) / 180) * 5.0f)); + scale = fabs(((sind(work->angle) * 5.0f) + 1.0f) - (sind(130) * 5.0f)); scale_x = work->scale_x * scale; scale_y = work->scale_y * scale; work->angle += seqSpeed * 5.0f; @@ -496,8 +496,8 @@ s32 MGSeqUpdateTimer(SeqWork *work) } break; case 3: { - scale = sin((work->angle * M_PI) / 180) + 1.0; - tp_lvl = 1.0 - (sin((work->angle * M_PI) / 180) * 0.5); + scale = sind(work->angle) + 1.0; + tp_lvl = 1.0 - (sind(work->angle) * 0.5); work->angle += seqSpeed * 18.0f; if (work->angle > 180.0f) { work->state = 0; @@ -1045,7 +1045,7 @@ s32 MGSeqUpdateMGBasic(SeqWork *work) HuSprZRotSet(work->spr_grp[0], i, 0.0f); } else { - HuSprPosSet(work->spr_grp[0], i, pos_x - (((1.0 - sin(((time * 4.5f) * M_PI) / 180.0)) * (work->word_len * 56 * 2))), + HuSprPosSet(work->spr_grp[0], i, pos_x - (((1.0 - sind(time * 4.5f)) * (work->word_len * 56 * 2))), work->y); HuSprZRotSet(work->spr_grp[0], i, (time / 20.0f) * 390.0f); } @@ -1053,11 +1053,11 @@ s32 MGSeqUpdateMGBasic(SeqWork *work) } else { time = work->time - 40; - scale = work->scale_x + (0.5 * sin(((time * 9.0f) * M_PI) / 180.0)); + scale = work->scale_x + (0.5 * sind(time * 9.0f)); for (i = 0; i < work->word_len; i++) { pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (i * 56)); HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], i, scale, work->scale_y + sin(((time * 9.0f) * M_PI) / 180.0)); + HuSprScaleSet(work->spr_grp[0], i, scale, work->scale_y + sind(time * 9.0f)); } } if (work->time == 40) { @@ -1085,13 +1085,13 @@ s32 MGSeqUpdateMGBasic(SeqWork *work) } if (work->time <= 20) { time = work->time; - scale = work->scale_x + (0.5 * sin(((time * 9.0f) * M_PI) / 180.0)); + scale = work->scale_x + (0.5 * sind(time * 9.0f)); for (i = 0; i < work->word_len; i++) { HuSprAttrReset(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (i * 56)); HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], i, work->scale_x + sin(((time * 9.0f) * M_PI) / 180.0), - work->scale_y + sin(((time * 9.0f) * M_PI) / 180.0)); + HuSprScaleSet(work->spr_grp[0], i, work->scale_x + sind(time * 9.0f), + work->scale_y + sind(time * 9.0f)); } if (time == 20.0f) { for (i = 0; i < work->word_len; i++) { @@ -1112,7 +1112,7 @@ s32 MGSeqUpdateMGBasic(SeqWork *work) } else { HuSprPosSet(work->spr_grp[0], i, - pos_x + ((1.0 - cos(((time * 4.5f) * M_PI) / 180.0f)) * (work->word_len * 56 * 2)), work->y); + pos_x + ((1.0 - cosd(time * 4.5f)) * (work->word_len * 56 * 2)), work->y); HuSprZRotSet(work->spr_grp[0], i, (time / 20.0f) * 390.0f); } } @@ -1337,7 +1337,7 @@ s32 MGSeqUpdateMGBattle(SeqWork *work) y += ofs_y; } HuSprPosSet(work->spr_grp[i], j, x, y); - HuSprScaleSet(work->spr_grp[i], j, work->scale_x * cos((M_PI * scale_ang) / 180.0), work->scale_y); + HuSprScaleSet(work->spr_grp[i], j, work->scale_x * cosd(scale_ang), work->scale_y); HuSprZRotSet(work->spr_grp[i], j, zrot); } } @@ -1346,7 +1346,7 @@ s32 MGSeqUpdateMGBattle(SeqWork *work) else { if (work->time > 60) { time = work->time - 60; - scale = 0.5 * sin((M_PI * (time * 9.0f)) / 180.0); + scale = 0.5 * sind(time * 9.0f); for (j = 0; j < work->word_len; j++) { pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + ((j * 56) * (scale + work->scale_x)); @@ -1385,13 +1385,13 @@ s32 MGSeqUpdateMGBattle(SeqWork *work) } } time = work->time; - scale = work->scale_x + (0.5 * sin((M_PI * (time * 9.0f)) / 180.0)); + scale = work->scale_x + (0.5 * sind(time * 9.0f)); for (j = 0; j < work->word_len; j++) { HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (j * 56)); HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x + (sin((M_PI * (time * 9.0f)) / 180.0)), - work->scale_y + (sin((M_PI * (time * 9.0f)) / 180.0))); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + (sind(time * 9.0f)), + work->scale_y + (sind(time * 9.0f))); } if (time == 20.0f) { for (j = 0; j < work->word_len; j++) { @@ -1405,7 +1405,7 @@ s32 MGSeqUpdateMGBattle(SeqWork *work) for (j = 0; j < work->word_len; j++) { pos_x = (28.0f + (work->x - (0.5f * (work->word_len * 56)))) + (j * 56); HuSprPosSet( - work->spr_grp[0], j, pos_x + ((HU_DISP_CENTERX - pos_x) * (1.0 - cos((M_PI * (time * 6.0)) / 180.0))), work->y); + work->spr_grp[0], j, pos_x + ((HU_DISP_CENTERX - pos_x) * (1.0 - cosd(time * 6.0))), work->y); } if (time == 15.0f) { for (j = 0; j < work->word_len; j++) { @@ -1530,9 +1530,9 @@ s32 MGSeqUpdateMG1vs3(SeqWork *work) scale_x = 0.3 * work->scale_x; scale_y = 0.3 * work->scale_y; pos_x = ((28.0f * scale_x) + (work->x - (0.5f * (scale_x * (work->word_len * 56))))) + (scale_x * (idx * 56)); - pos_y = work->y - (150.0 * sin((M_PI * (((16.0f / 3.0f) * time) + 20.0f)) / 180.0)); + pos_y = work->y - 150.0 * sind((16.0f / 3.0f) * time + 20.0f); HuSprPosSet(work->spr_grp[0], idx, pos_x, pos_y); - HuSprScaleSet(work->spr_grp[0], idx, scale_x, scale_y * cos(M_PI * (12.0f * time) / 180.0)); + HuSprScaleSet(work->spr_grp[0], idx, scale_x, scale_y * cosd(12.0f * time)); HuSprTPLvlSet(work->spr_grp[0], idx, scale); } } @@ -1549,13 +1549,13 @@ s32 MGSeqUpdateMG1vs3(SeqWork *work) continue; } } - scale = 0.3 + (0.7 * (1.0 - cos((M_PI * (time * 3.0f)) / 180.0))); + scale = 0.3 + 0.7 * (1.0 - cosd(time * 3.0f)); scale_x = work->scale_x * scale; scale_y = work->scale_y * scale; pos_x = ((28.0f * scale_x) + (work->x - (0.5f * (scale_x * (work->word_len * 56))))) + (scale_x * (idx * 56)); - pos_y = work->y - (150.0 * sin((M_PI * (((16.0f / 3.0f) * time) + 20.0f)) / 180.0)); + pos_y = work->y - 150.0 * sind((16.0f / 3.0f) * time + 20.0f); HuSprPosSet(work->spr_grp[i], idx, pos_x, pos_y); - HuSprScaleSet(work->spr_grp[i], idx, scale_x, scale_y * cos(M_PI * (12.0f * time) / 180.0)); + HuSprScaleSet(work->spr_grp[i], idx, scale_x, scale_y * cosd(12.0f * time)); } } if (work->time == 60) { @@ -1569,7 +1569,7 @@ s32 MGSeqUpdateMG1vs3(SeqWork *work) else { if (work->time > 70) { time = work->time - 70; - scale = 0.5 * sin((M_PI * (time * 9.0f)) / 180.0); + scale = 0.5 * sind(time * 9.0f); for (j = 0; j < work->word_len; j++) { pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + ((j * 56) * (scale + work->scale_x)); @@ -1609,13 +1609,13 @@ s32 MGSeqUpdateMG1vs3(SeqWork *work) } } time = work->time; - scale = work->scale_x + (0.5 * sin((M_PI * (time * 9.0f)) / 180.0)); + scale = work->scale_x + (0.5 * sind(time * 9.0f)); for (j = 0; j < work->word_len; j++) { HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (j * 56)); HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x + (sin((M_PI * (time * 9.0f)) / 180.0)), - work->scale_y + (sin((M_PI * (time * 9.0f)) / 180.0))); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + (sind(time * 9.0f)), + work->scale_y + (sind(time * 9.0f))); } if (time == 20.0f) { for (i = 1; i < 4; i++) { @@ -1767,7 +1767,7 @@ s32 MGSeqUpdateMGStory(SeqWork *work) else { if (work->time > 55) { time = work->time - 55; - scale = 0.5 * sin(M_PI * (9.0f * time) / 180.0); + scale = 0.5 * sind(9.0f * time); for (j = 0; j < work->word_len; j++) { pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + ((j * 56) * (scale + work->scale_x)); @@ -1807,13 +1807,13 @@ s32 MGSeqUpdateMGStory(SeqWork *work) } } time = work->time; - scale = work->scale_x + (0.5 * sin((M_PI * (time * 9.0f)) / 180.0)); + scale = work->scale_x + (0.5 * sind(time * 9.0f)); for (j = 0; j < work->word_len; j++) { HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (j * 56)); HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x + (sin((M_PI * (time * 9.0f)) / 180.0)), - work->scale_y + (sin((M_PI * (time * 9.0f)) / 180.0))); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + (sind(time * 9.0f)), + work->scale_y + (sind(time * 9.0f))); } if (time == 20.0f) { for (i = 1; i < 4; i++) { @@ -1960,7 +1960,7 @@ s32 MGSeqUpdateMG2vs2(SeqWork *work) else { if (work->time > 40 && work->time <= 60) { time = work->time - 40; - scale = 0.5 * sin(((time * 9.0f) * M_PI) / 180.0); + scale = 0.5 * sind(time * 9.0f); for (j = 0; j < work->word_len; j++) { pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + ((j * 56) * (scale + work->scale_x)); @@ -1999,13 +1999,13 @@ s32 MGSeqUpdateMG2vs2(SeqWork *work) } } time = work->time; - scale = work->scale_x + (0.5 * sin((M_PI * (time * 9.0f)) / 180.0)); + scale = work->scale_x + (0.5 * sind(time * 9.0f)); for (j = 0; j < work->word_len; j++) { HuSprAttrReset(work->spr_grp[0], j, HUSPR_ATTR_DISPOFF); pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (j * 56)); HuSprPosSet(work->spr_grp[0], j, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], j, work->scale_x + (sin((M_PI * (time * 9.0f)) / 180.0)), - work->scale_y + (sin((M_PI * (time * 9.0f)) / 180.0))); + HuSprScaleSet(work->spr_grp[0], j, work->scale_x + (sind(time * 9.0f)), + work->scale_y + (sind(time * 9.0f))); } if (time == 20.0f) { for (i = 1; i < 4; i++) { @@ -2023,8 +2023,8 @@ s32 MGSeqUpdateMG2vs2(SeqWork *work) float angle = (1.0f + (1.0f - (ABS(radius) / 320.0f))) * 720.0f; float new_scale; radius *= 1.0 - (time / 60.0f); - HuSprPosSet(work->spr_grp[0], idx, (radius * sin(M_PI * (((time / 60.0f) * angle) + 90.0f) / 180.0)) + work->x, - (radius * cos(M_PI * (((time / 60.0f) * angle) + 90.0f) / 180.0)) + work->y); + HuSprPosSet(work->spr_grp[0], idx, (radius * sind((time / 60.0f) * angle + 90.0f)) + work->x, + (radius * cosd((time / 60.0f) * angle + 90.0f)) + work->y); HuSprZRotSet(work->spr_grp[0], idx, -(time / 60.0f) * 720.0f); new_scale = 0.5 + (0.5 * (1.0f - (time / 60.0f))); HuSprScaleSet(work->spr_grp[0], idx, new_scale, new_scale); @@ -2214,21 +2214,21 @@ s32 MGSeqUpdateFlip(SeqWork *work) time = work->time - 10; if (time <= 10) { for (idx = 0; idx < work->alt_word_len; idx++) { - HuSprScaleSet(work->spr_grp[0], idx, cos(M_PI * ((time / 10.0f) * 90.0f) / 180.0), 1.0f); + HuSprScaleSet(work->spr_grp[0], idx, cosd((time / 10.0f) * 90.0f), 1.0f); } } else { time -= 10.0f; for (idx = 0; idx < work->word_len; idx++) { HuSprTPLvlSet(work->spr_grp[1], idx, 1.0f); - HuSprScaleSet(work->spr_grp[1], idx, sin(M_PI * ((time / 10.0f) * 90.0f) / 180.0), 1.0f); + HuSprScaleSet(work->spr_grp[1], idx, sind((time / 10.0f) * 90.0f), 1.0f); } } } else { if (work->time > 35 && work->time <= 55) { time = work->time - 35; - scale = 0.5 * sin(((time * 9.0f) * M_PI) / 180.0); + scale = 0.5 * sind(time * 9.0f); for (i = 0; i < work->word_len; i++) { pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + ((i * 56) * (scale + work->scale_x)); @@ -2263,7 +2263,7 @@ s32 MGSeqUpdateFlip(SeqWork *work) } if (work->time <= 20) { time = work->time; - scale = 0.5 * sin(M_PI * (9.0f * time) / 180.0); + scale = 0.5 * sind(9.0f * time); for (i = 0; i < work->word_len; i++) { HuSprTPLvlSet(work->spr_grp[1], i, 1.0f); pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) @@ -2280,7 +2280,7 @@ s32 MGSeqUpdateFlip(SeqWork *work) if (scale < 0 || scale > 15.0f) { continue; } - HuSprScaleSet(work->spr_grp[1], idx, cos(M_PI * ((scale / 15.0f) * 90.0f) / 180.0), 1.0f); + HuSprScaleSet(work->spr_grp[1], idx, cosd((scale / 15.0f) * 90.0f), 1.0f); } for (idx = 0; idx < work->alt_word_len; idx++) { scale = (time - 15.0f) - (idx * 2); @@ -2288,7 +2288,7 @@ s32 MGSeqUpdateFlip(SeqWork *work) continue; } HuSprTPLvlSet(work->spr_grp[0], idx, 1.0f); - HuSprScaleSet(work->spr_grp[0], idx, sin(M_PI * ((scale / 30.0f) * 180.0f) / 180.0), 1.0f); + HuSprScaleSet(work->spr_grp[0], idx, sind((scale / 30.0f) * 180.0f), 1.0f); } } } @@ -2400,13 +2400,13 @@ s32 MGSeqUpdateMGBowser(SeqWork *work) } time_angle = 540.0 * (1.0f - (time / 50.0f)); pos_x = (28.0f + (0.5f * -(work->word_len * 56))) + (idx * 56); - angle = 180.0 * (atan2(pos_x, center_x) / M_PI); - pos_x = work->x + (center_x * sin(M_PI * (angle + time_angle) / 180.0)); + angle = atan2d(pos_x, center_x); + pos_x = work->x + (center_x * sind(angle + time_angle)); pos_y = work->y - (HU_DISP_CENTERY * (1.0 - (time / 50.0f))); HuSprPosSet(work->spr_grp[0], idx, pos_x, pos_y); - temp_f25 = 0.9 + (0.1 * cos(M_PI * (angle + time_angle) / 180.0)); - HuSprScaleSet(work->spr_grp[0], idx, temp_f25 * cos(M_PI * (angle + time_angle) / 180.0), temp_f25); - scale_arr[idx] = cos(M_PI * (angle + time_angle) / 180.0); + temp_f25 = 0.9 + (0.1 * cosd(angle + time_angle)); + HuSprScaleSet(work->spr_grp[0], idx, temp_f25 * cosd(angle + time_angle), temp_f25); + scale_arr[idx] = cosd(angle + time_angle); spr_idx[idx] = idx; } } @@ -2429,7 +2429,7 @@ s32 MGSeqUpdateMGBowser(SeqWork *work) else { if (work->time > 60 && work->time <= 80) { time = work->time - 60; - scale = 0.5 * sin(((time * 9.0f) * M_PI) / 180.0); + scale = 0.5 * sind(time * 9.0f); for (i = 0; i < work->word_len; i++) { pos_x = (28.0f * (scale + work->scale_x)) + (work->x - (0.5f * ((work->word_len * 56) * (scale + work->scale_x)))) + ((i * 56) * (scale + work->scale_x)); @@ -2468,13 +2468,13 @@ s32 MGSeqUpdateMGBowser(SeqWork *work) } } time = work->time; - scale = work->scale_x + (0.5 * sin(((time * 9.0f) * M_PI) / 180.0)); + scale = work->scale_x + (0.5 * sind(time * 9.0f)); for (i = 0; i < work->word_len; i++) { HuSprAttrReset(work->spr_grp[0], i, HUSPR_ATTR_DISPOFF); pos_x = ((28.0f * scale) + (work->x - (0.5f * (scale * (work->word_len * 56))))) + (scale * (i * 56)); HuSprPosSet(work->spr_grp[0], i, pos_x, work->y); - HuSprScaleSet(work->spr_grp[0], i, work->scale_x + (sin((M_PI * (time * 9.0f)) / 180.0)), - work->scale_y + (sin((M_PI * (time * 9.0f)) / 180.0))); + HuSprScaleSet(work->spr_grp[0], i, work->scale_x + (sind(time * 9.0f)), + work->scale_y + sind(time * 9.0f)); } if (time == 20.0f) { for (j = 1; j < 4; j++) { @@ -2632,14 +2632,14 @@ s32 MGSeqUpdateDraw(SeqWork *work) if (work->time <= 20) { time = work->time; zrot = 365.0f * (time / 20.0f); - scale = 1.3f * sin(M_PI * (90.0f * (time / 20.0f)) / 180.0); + scale = 1.3f * sind(90.0f * (time / 20.0f)); HuSprGrpScaleSet(group, scale, scale); HuSprGrpZRotSet(group, zrot); } if (work->time > 20 && work->time <= 25) { HuSprGrpZRotSet(group, 0.0f); time = work->time - 20; - scale = 1.0 + (0.3 * cos(M_PI * (90.0f * (time / 5.0f)) / 180.0)); + scale = 1.0 + (0.3 * cosd(90.0f * (time / 5.0f))); HuSprGrpScaleSet(group, scale, scale); } if (work->time == 5) { @@ -2971,10 +2971,10 @@ s32 MGSeqUpdateWin(SeqWork *work) if (work->time <= 20) { time = work->time; zrot = 365.0f * (time / 20.0f); - scale = sin(M_PI * (90.0f * (time / 20.0f)) / 180.0); + scale = sind(90.0f * (time / 20.0f)); HuSprGrpScaleSet(work->spr_grp[0], scale, scale); HuSprGrpZRotSet(work->spr_grp[0], zrot); - scale = 1.0 + (5.0 * cos(M_PI * (90.0f * (time / 20.0f)) / 180.0)); + scale = 1.0 + (5.0 * cosd(90.0f * (time / 20.0f))); tp_lvl = time / 20.0f; for (idx = 1; idx < work->word_len; idx++) { HuSprGrpTPLvlSet(work->spr_grp[idx], tp_lvl); @@ -3300,7 +3300,7 @@ static void PauseProc(void) mg = omMgIndexGet(omcurovl); if (mgInfoTbl[mg].inst_mess[1] == 0 && mgInfoTbl[mg].inst_mess[2] == 0) { for (i = 1; i <= 20; i++) { - ratio = sin(M_PI * (i * 4.5f) / 180.0); + ratio = sind(i * 4.5f); HuSprGrpPosSet(work.spr_grp[0], HU_DISP_CENTERX, (ratio * 290) - 50.0f); HuPrcVSleep(); } @@ -3334,7 +3334,7 @@ static void PauseProc(void) } } for (i = 1; i <= 20; i++) { - ratio = sin(M_PI * (i * 4.5f) / 180.0); + ratio = sind(i * 4.5f); HuSprGrpPosSet(work.spr_grp[0], HU_DISP_CENTERX, (ratio * 150) - 50.0f); HuWinPosSet(window[0], (PAUSE_WIN_DIST + PAUSE_WIN_X) * ratio - PAUSE_WIN_DIST, HU_DISP_CENTERY - 100); HuWinPosSet(window[1], -(PAUSE_WIN_DIST - PAUSE_WIN_X) * ratio + PAUSE_WIN_DIST, HU_DISP_CENTERY + 32); @@ -3351,7 +3351,7 @@ static void PauseProc(void) HuWinMesSpeedSet(window[0], 0); HuWinMesSet(window[0], mgInfoTbl[mg].inst_mess[1]); for (i = 1; i <= 20; i++) { - ratio = sin(M_PI * (i * 4.5f) / 180.0); + ratio = sind(i * 4.5f); HuSprGrpPosSet(work.spr_grp[0], HU_DISP_CENTERX, (ratio * 150) - 50.0f); HuWinPosSet(window[0], (PAUSE_WIN_DIST + PAUSE_WIN_X) * ratio - PAUSE_WIN_DIST, HU_DISP_CENTERY - 70); if (window[2] != -1) { @@ -3369,7 +3369,7 @@ static void PauseProc(void) pauseWaitF = 0; if (window[0] == -1 && window[1] == -1) { for (i = 1; i <= 10; i++) { - ratio = cos(M_PI * (i * 9.0f) / 180.0); + ratio = cosd(i * 9.0f); HuSprGrpPosSet(work.spr_grp[0], HU_DISP_CENTERX, (ratio * 290) - 50.0f); HuPrcVSleep(); } @@ -3377,7 +3377,7 @@ static void PauseProc(void) else { if (window[1] != -1) { for (i = 1; i <= 10; i++) { - ratio = cos(M_PI * (i * 9.0f) / 180.0); + ratio = cosd(i * 9.0f); HuSprGrpPosSet(work.spr_grp[0], HU_DISP_CENTERX, (ratio * 150) - 50.0f); HuWinPosSet(window[0], (PAUSE_WIN_DIST + PAUSE_WIN_X) * ratio - PAUSE_WIN_DIST, HU_DISP_CENTERY - 100); HuWinPosSet(window[1], -(PAUSE_WIN_DIST - PAUSE_WIN_X) * ratio + PAUSE_WIN_DIST, HU_DISP_CENTERY + 32); @@ -3389,7 +3389,7 @@ static void PauseProc(void) } else { for (i = 1; i <= 10; i++) { - ratio = cos(M_PI * (i * 9.0f) / 180.0); + ratio = cosd(i * 9.0f); HuSprGrpPosSet(work.spr_grp[0], HU_DISP_CENTERX, (ratio * 150) - 50.0f); HuWinPosSet(window[0], (PAUSE_WIN_DIST + PAUSE_WIN_X) * ratio - PAUSE_WIN_DIST, HU_DISP_CENTERY - 70); if (window[2] != -1) { @@ -3582,7 +3582,7 @@ static void PracticeProc(void) if (i != 4) { break; } - HuSprTPLvlSet(group, 0, fabs(sin(M_PI * time / 180.0))); + HuSprTPLvlSet(group, 0, fabs(sind(time))); time += 2.0f; HuPrcVSleep(); } while (1); From d7cb16e6cc7ec267e2dc13c87fbae2b3d372fc90 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Sat, 4 Jan 2025 23:01:04 -0800 Subject: [PATCH 232/311] Matched last function in m413Dll (#507) --- config/GMPE01_00/rels/m413Dll/symbols.txt | 30 +++++++++++------------ configure.py | 2 +- src/REL/m413Dll/main.c | 5 ++-- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/config/GMPE01_00/rels/m413Dll/symbols.txt b/config/GMPE01_00/rels/m413Dll/symbols.txt index 69d55a26..22b18c0f 100644 --- a/config/GMPE01_00/rels/m413Dll/symbols.txt +++ b/config/GMPE01_00/rels/m413Dll/symbols.txt @@ -177,21 +177,21 @@ lbl_1_data_0 = .data:0x00000000; // type:object size:0x4 data:4byte lbl_1_data_4 = .data:0x00000004; // type:object size:0x8 data:4byte lbl_1_data_C = .data:0x0000000C; // type:object size:0x10 data:4byte lbl_1_data_1C = .data:0x0000001C; // type:object size:0x1C data:float -lbl_1_data_38 = .data:0x00000038; // type:object size:0x9 data:string -lbl_1_data_41 = .data:0x00000041; // type:object size:0x19 data:string -lbl_1_data_5A = .data:0x0000005A; // type:object size:0x1B data:string -lbl_1_data_75 = .data:0x00000075; // type:object size:0x10 data:string -lbl_1_data_85 = .data:0x00000085; // type:object size:0x10 data:string -lbl_1_data_95 = .data:0x00000095; // type:object size:0x10 data:string -lbl_1_data_A5 = .data:0x000000A5; // type:object size:0x10 data:string -lbl_1_data_B5 = .data:0x000000B5; // type:object size:0x11 data:string -lbl_1_data_C6 = .data:0x000000C6; // type:object size:0x11 data:string -lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x12 data:string -lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x12 data:string -lbl_1_data_FB = .data:0x000000FB; // type:object size:0x12 data:string -lbl_1_data_10D = .data:0x0000010D; // type:object size:0xF data:string -lbl_1_data_11C = .data:0x0000011C; // type:object size:0x19 data:string -lbl_1_data_135 = .data:0x00000135; // type:object size:0x24 data:string +lbl_1_data_38 = .data:0x00000038; // type:object size:0x9 scope:local data:string +lbl_1_data_41 = .data:0x00000041; // type:object size:0x19 scope:local data:string +lbl_1_data_5A = .data:0x0000005A; // type:object size:0x1B scope:local data:string +lbl_1_data_75 = .data:0x00000075; // type:object size:0x10 scope:local data:string +lbl_1_data_85 = .data:0x00000085; // type:object size:0x10 scope:local data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0x10 scope:local data:string +lbl_1_data_A5 = .data:0x000000A5; // type:object size:0x10 scope:local data:string +lbl_1_data_B5 = .data:0x000000B5; // type:object size:0x11 scope:local data:string +lbl_1_data_C6 = .data:0x000000C6; // type:object size:0x11 scope:local data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x12 scope:local data:string +lbl_1_data_E9 = .data:0x000000E9; // type:object size:0x12 scope:local data:string +lbl_1_data_FB = .data:0x000000FB; // type:object size:0x12 scope:local data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0xF scope:local data:string +lbl_1_data_11C = .data:0x0000011C; // type:object size:0x19 scope:local data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0x24 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x8 data:4byte diff --git a/configure.py b/configure.py index 755bf193..845a2f45 100644 --- a/configure.py +++ b/configure.py @@ -965,7 +965,7 @@ config.libs = [ Rel( "m413Dll", # Bob-omb Breakers objects={ - Object(NonMatching, "REL/m413Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m413Dll/main.c"), }, ), Rel( diff --git a/src/REL/m413Dll/main.c b/src/REL/m413Dll/main.c index ee218503..bcf73c18 100644 --- a/src/REL/m413Dll/main.c +++ b/src/REL/m413Dll/main.c @@ -781,7 +781,7 @@ void fn_1_19C8(omObjData *object) temp_r26 = (temp_r26 >= 4) ? (temp_r26 - 4) : ((temp_r26 < 0) ? (temp_r26 + 4) : temp_r26); temp_r31->unk74++; if (temp_r31->unk1C == -1) { - s32 sp20C[4] = { 120, 50, 25, 2 }; + s32 sp20C[4] = { 120, 60, 25, 2 }; s32 sp200[3] = { 60, 45, 25 }; temp_r31->unk90 = (temp_r31->unk8C == temp_r31->unk48[0]->unk18 && temp_r31->unk8C != temp_r31->unk7C) ? (temp_r31->unk90 + 1) : 0; temp_r31->unk8C = temp_r31->unk48[0]->unk18; @@ -1466,7 +1466,6 @@ void fn_1_8AC8(StructBss2A6C *arg0, StructSp14C8 *arg1) } } -// decomp.me link is https://decomp.me/scratch/PbkiW void fn_1_8C10(omObjData *object) { s32 temp_r31; @@ -1672,7 +1671,7 @@ void fn_1_8C10(omObjData *object) temp_f26 = lbl_1_bss_B8.unkC.x; temp_f27 *= lbl_1_bss_B8.unk4 * 2; temp_f26 *= lbl_1_bss_B8.unk4 * 2; - lbl_1_bss_B8.unk0 = lbl_1_bss_B8.unk0 == 0; + lbl_1_bss_B8.unk0 = !lbl_1_bss_B8.unk0; lbl_1_bss_B8.unk4 = (lbl_1_bss_B8.unk4 > 24) ? 23 : ((lbl_1_bss_B8.unk4 - 1 > 0) ? lbl_1_bss_B8.unk4 - 1 : 0); Hu3DCameraPosSet(1, temp_f27, 37.139069 + temp_f26, 2599.7346f, 0, 1, 0, temp_f27, 50.0f + temp_f26, 0); } From b347ee8bd02ede639436f370a873bc8ae2879887 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Sun, 5 Jan 2025 05:59:51 -0800 Subject: [PATCH 233/311] Matched last function in m426Dll (#508) --- configure.py | 2 +- src/REL/m426Dll/main.c | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/configure.py b/configure.py index 845a2f45..b0884088 100644 --- a/configure.py +++ b/configure.py @@ -1059,7 +1059,7 @@ config.libs = [ Rel( "m426Dll", # Revers-a-Bomb objects={ - Object(NonMatching, "REL/m426Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m426Dll/main.c"), }, ), Rel( diff --git a/src/REL/m426Dll/main.c b/src/REL/m426Dll/main.c index 7066b831..e91e3258 100644 --- a/src/REL/m426Dll/main.c +++ b/src/REL/m426Dll/main.c @@ -780,7 +780,6 @@ void fn_1_125C(omObjData *object) object->func = NULL; } -// TODO https://decomp.me/scratch/1aZdv void fn_1_16F8(omObjData *object) { s32 spA8[3]; @@ -813,7 +812,7 @@ void fn_1_16F8(omObjData *object) s32 var_r24; s32 var_r23; s32 var_r22; - s32 var_r21; // this is weird, used as a temporary + s32 var_r21; sp18 = 0; sp14 = 0; @@ -827,7 +826,7 @@ void fn_1_16F8(omObjData *object) } if (var_r31->unk_14) { sp20 = sp1C = 0.0f; - sp10 = 0; + var_r21 = sp10 = 0; fn_1_2F5C(object, &sp20, &sp1C, &sp10); } else { @@ -850,8 +849,7 @@ void fn_1_16F8(omObjData *object) else { if (!lbl_1_bss_40) { sp20 = sp1C = 0.0f; - - sp10 = 0; + var_r21 = sp10 = 0; } if (fabs(sp20) > 8.0) { var_f30 = 0.25f * sp20; From 05a2e87763417c1e77505144bf7bba9ac1109296 Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Sun, 5 Jan 2025 22:31:32 +0100 Subject: [PATCH 234/311] Port m402Dll and m404Dll to PAL and finish m458Dll (#509) * Ported m404Dll to PAL and misc changes * Port m402Dll to PAL * Cleaned up some ternaries in m458Dll * Finish m458Dll with the help of Shigure --- config/GMPE01_00/rels/m404Dll/symbols.txt | 2 +- config/GMPE01_00/rels/m449Dll/symbols.txt | 2 +- config/GMPE01_00/rels/resultDll/symbols.txt | 4 +- config/GMPJ01_00/rels/m444dll/symbols.txt | 382 +++++++++---------- config/GMPP01_00/rels/m402Dll/splits.txt | 6 + config/GMPP01_00/rels/m402Dll/symbols.txt | 402 ++++++++++---------- config/GMPP01_00/rels/m404Dll/splits.txt | 9 + config/GMPP01_00/rels/m404Dll/symbols.txt | 130 +++---- configure.py | 6 +- include/REL/modeseldll.h | 4 +- src/REL/m402Dll/main.c | 24 +- src/REL/m404Dll/main.c | 39 +- src/REL/m449Dll/main.c | 35 +- src/REL/m457Dll/main.c | 4 + src/REL/m458Dll/main.c | 179 +++------ src/REL/modeseldll/modesel.c | 5 + src/REL/option/record.c | 25 +- src/REL/present/present.c | 10 +- 18 files changed, 604 insertions(+), 664 deletions(-) diff --git a/config/GMPE01_00/rels/m404Dll/symbols.txt b/config/GMPE01_00/rels/m404Dll/symbols.txt index dd934235..e6bb9e5a 100644 --- a/config/GMPE01_00/rels/m404Dll/symbols.txt +++ b/config/GMPE01_00/rels/m404Dll/symbols.txt @@ -60,7 +60,7 @@ lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:f lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:2byte +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x6 scope:local data:2byte lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float diff --git a/config/GMPE01_00/rels/m449Dll/symbols.txt b/config/GMPE01_00/rels/m449Dll/symbols.txt index 07d61d06..bfe80246 100644 --- a/config/GMPE01_00/rels/m449Dll/symbols.txt +++ b/config/GMPE01_00/rels/m449Dll/symbols.txt @@ -178,7 +178,7 @@ lbl_1_data_22A = .data:0x0000022A; // type:object size:0x2 data:2byte lbl_1_data_22C = .data:0x0000022C; // type:object size:0x4 data:4byte lbl_1_data_230 = .data:0x00000230; // type:object size:0xC data:4byte lbl_1_data_23C = .data:0x0000023C; // type:object size:0x28 data:4byte -lbl_1_data_264 = .data:0x00000264; // type:object size:0x20 scope:local data:string +lbl_1_data_264 = .data:0x00000264; // type:object size:0x1D scope:local data:string lbl_1_data_284 = .data:0x00000284; // type:object size:0x4 data:4byte lbl_1_data_288 = .data:0x00000288; // type:object size:0x4 data:float lbl_1_data_28C = .data:0x0000028C; // type:object size:0x4 data:float diff --git a/config/GMPE01_00/rels/resultDll/symbols.txt b/config/GMPE01_00/rels/resultDll/symbols.txt index b0b7a9af..14dbe624 100644 --- a/config/GMPE01_00/rels/resultDll/symbols.txt +++ b/config/GMPE01_00/rels/resultDll/symbols.txt @@ -94,7 +94,7 @@ lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data: lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float @@ -144,7 +144,7 @@ lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x20 lbl_1_data_3F8 = .data:0x000003F8; // type:object size:0x10 lbl_1_data_408 = .data:0x00000408; // type:object size:0x30 lbl_1_data_438 = .data:0x00000438; // type:object size:0x10 -lbl_1_data_448 = .data:0x00000448; // type:object size:0x8 scope:local +lbl_1_data_448 = .data:0x00000448; // type:object size:0x5 scope:local data:string lbl_1_data_450 = .data:0x00000450; // type:object size:0x18 lbl_1_data_468 = .data:0x00000468; // type:object size:0x20 lbl_1_data_488 = .data:0x00000488; // type:object size:0x30 diff --git a/config/GMPJ01_00/rels/m444dll/symbols.txt b/config/GMPJ01_00/rels/m444dll/symbols.txt index 88d2d388..a6bc53d3 100644 --- a/config/GMPJ01_00/rels/m444dll/symbols.txt +++ b/config/GMPJ01_00/rels/m444dll/symbols.txt @@ -38,197 +38,197 @@ fn_1_D9C8 = .text:0x0000D9D8; // type:function size:0x2C fn_1_D9F4 = .text:0x0000DA04; // type:function size:0x42C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0xC data:4byte -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 data:double -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 scope:local data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 scope:local data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 scope:local data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 scope:local data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x118 lbl_1_data_118 = .data:0x00000118; // type:object size:0x28 lbl_1_data_140 = .data:0x00000140; // type:object size:0x54 data:float diff --git a/config/GMPP01_00/rels/m402Dll/splits.txt b/config/GMPP01_00/rels/m402Dll/splits.txt index 531cd645..61b6a88d 100644 --- a/config/GMPP01_00/rels/m402Dll/splits.txt +++ b/config/GMPP01_00/rels/m402Dll/splits.txt @@ -5,3 +5,9 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/m402Dll/main.c: + .text start:0x00000000 end:0x00009B6C + .rodata start:0x00000000 end:0x00000194 + .data start:0x00000000 end:0x000004C6 + .bss start:0x00000000 end:0x00000210 diff --git a/config/GMPP01_00/rels/m402Dll/symbols.txt b/config/GMPP01_00/rels/m402Dll/symbols.txt index c3491cd9..d31e3908 100644 --- a/config/GMPP01_00/rels/m402Dll/symbols.txt +++ b/config/GMPP01_00/rels/m402Dll/symbols.txt @@ -1,206 +1,206 @@ -fn_1_0 = .text:0x00000000; // type:function size:0x24 -fn_1_24 = .text:0x00000024; // type:function size:0x88 -fn_1_AC = .text:0x000000AC; // type:function size:0xA4 -fn_1_150 = .text:0x00000150; // type:function size:0x24 -fn_1_174 = .text:0x00000174; // type:function size:0x164 -fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C -fn_1_414 = .text:0x00000414; // type:function size:0x58 -fn_1_46C = .text:0x0000046C; // type:function size:0x114 -fn_1_580 = .text:0x00000580; // type:function size:0x204 -fn_1_784 = .text:0x00000784; // type:function size:0x240 -fn_1_9C4 = .text:0x000009C4; // type:function size:0x54 -fn_1_A18 = .text:0x00000A18; // type:function size:0x10C -fn_1_B24 = .text:0x00000B24; // type:function size:0x680 -fn_1_11A4 = .text:0x000011A4; // type:function size:0x15C -fn_1_1300 = .text:0x00001300; // type:function size:0x8C -fn_1_138C = .text:0x0000138C; // type:function size:0x334 -fn_1_16C0 = .text:0x000016C0; // type:function size:0x350 -fn_1_1A10 = .text:0x00001A10; // type:function size:0x2B8 -fn_1_1CC8 = .text:0x00001CC8; // type:function size:0x58 -fn_1_1D20 = .text:0x00001D20; // type:function size:0xB0 -fn_1_1DD0 = .text:0x00001DD0; // type:function size:0x104 -fn_1_1ED4 = .text:0x00001ED4; // type:function size:0x34 -fn_1_1F08 = .text:0x00001F08; // type:function size:0x6C -fn_1_1F74 = .text:0x00001F74; // type:function size:0x3F0 +fn_1_0 = .text:0x00000000; // type:function size:0x24 scope:local +fn_1_24 = .text:0x00000024; // type:function size:0x88 scope:local +fn_1_AC = .text:0x000000AC; // type:function size:0xA4 scope:local +fn_1_150 = .text:0x00000150; // type:function size:0x24 scope:local +fn_1_174 = .text:0x00000174; // type:function size:0x164 scope:local +fn_1_2D8 = .text:0x000002D8; // type:function size:0x13C scope:local +fn_1_414 = .text:0x00000414; // type:function size:0x58 scope:local +fn_1_46C = .text:0x0000046C; // type:function size:0x114 scope:local +fn_1_580 = .text:0x00000580; // type:function size:0x204 scope:local +fn_1_798 = .text:0x00000784; // type:function size:0x240 scope:local +fn_1_9EC = .text:0x000009C4; // type:function size:0x54 scope:local +fn_1_A40 = .text:0x00000A18; // type:function size:0x10C scope:local +fn_1_B4C = .text:0x00000B24; // type:function size:0x680 scope:local +fn_1_11F4 = .text:0x000011A4; // type:function size:0x15C scope:local +fn_1_1350 = .text:0x00001300; // type:function size:0x8C scope:local +fn_1_13DC = .text:0x0000138C; // type:function size:0x334 scope:local +fn_1_1710 = .text:0x000016C0; // type:function size:0x350 scope:local +fn_1_1A60 = .text:0x00001A10; // type:function size:0x2B8 scope:local +fn_1_1D18 = .text:0x00001CC8; // type:function size:0x58 scope:local +fn_1_1D70 = .text:0x00001D20; // type:function size:0xB0 scope:local +fn_1_1E20 = .text:0x00001DD0; // type:function size:0x104 scope:local +fn_1_1F24 = .text:0x00001ED4; // type:function size:0x34 scope:local +fn_1_1F58 = .text:0x00001F08; // type:function size:0x6C scope:local +fn_1_1FC4 = .text:0x00001F74; // type:function size:0x3F0 scope:local _prolog = .text:0x00002364; // type:function size:0x54 scope:global _epilog = .text:0x000023B8; // type:function size:0x4C scope:global -fn_1_2404 = .text:0x00002404; // type:function size:0x2F0 -fn_1_26F4 = .text:0x000026F4; // type:function size:0x64 -fn_1_2758 = .text:0x00002758; // type:function size:0xD8 -fn_1_2830 = .text:0x00002830; // type:function size:0xF0 -fn_1_2920 = .text:0x00002920; // type:function size:0x1C0 -fn_1_2AE0 = .text:0x00002AE0; // type:function size:0x28C -fn_1_2D6C = .text:0x00002D6C; // type:function size:0x380 -fn_1_30EC = .text:0x000030EC; // type:function size:0xC8 -fn_1_31B4 = .text:0x000031B4; // type:function size:0xF8C -fn_1_4140 = .text:0x00004140; // type:function size:0xF4 -fn_1_4234 = .text:0x00004234; // type:function size:0x154 -fn_1_4388 = .text:0x00004388; // type:function size:0x1FF0 -fn_1_6378 = .text:0x00006378; // type:function size:0x490 -fn_1_6808 = .text:0x00006808; // type:function size:0x4 -fn_1_680C = .text:0x0000680C; // type:function size:0x258 -fn_1_6A64 = .text:0x00006A64; // type:function size:0x3B0 -fn_1_6E14 = .text:0x00006E14; // type:function size:0x1BC -fn_1_6FD0 = .text:0x00006FD0; // type:function size:0xC4 -fn_1_7094 = .text:0x00007094; // type:function size:0x86C -fn_1_7900 = .text:0x00007900; // type:function size:0x19C -fn_1_7A9C = .text:0x00007A9C; // type:function size:0x25C -fn_1_7CF8 = .text:0x00007CF8; // type:function size:0x4 -fn_1_7CFC = .text:0x00007CFC; // type:function size:0x134 -fn_1_7E30 = .text:0x00007E30; // type:function size:0x4 -fn_1_7E34 = .text:0x00007E34; // type:function size:0x1C4 -fn_1_7FF8 = .text:0x00007FF8; // type:function size:0x1D0 -fn_1_81C8 = .text:0x000081C8; // type:function size:0xE38 -fn_1_9000 = .text:0x00009000; // type:function size:0x1EC -fn_1_91EC = .text:0x000091EC; // type:function size:0x8B0 -fn_1_9A9C = .text:0x00009A9C; // type:function size:0xD0 +fn_1_2454 = .text:0x00002404; // type:function size:0x2F0 scope:local +fn_1_2744 = .text:0x000026F4; // type:function size:0x64 scope:local +fn_1_27A8 = .text:0x00002758; // type:function size:0xD8 scope:local +fn_1_2880 = .text:0x00002830; // type:function size:0xF0 scope:local +fn_1_2970 = .text:0x00002920; // type:function size:0x1C0 scope:local +fn_1_2B30 = .text:0x00002AE0; // type:function size:0x28C scope:local +fn_1_2DBC = .text:0x00002D6C; // type:function size:0x380 scope:local +fn_1_313C = .text:0x000030EC; // type:function size:0xC8 scope:local +fn_1_3204 = .text:0x000031B4; // type:function size:0xF8C scope:local +fn_1_4190 = .text:0x00004140; // type:function size:0xF4 scope:local +fn_1_4284 = .text:0x00004234; // type:function size:0x154 scope:local +fn_1_43D8 = .text:0x00004388; // type:function size:0x1FF0 scope:local +fn_1_63C8 = .text:0x00006378; // type:function size:0x490 scope:local +fn_1_6858 = .text:0x00006808; // type:function size:0x4 scope:local +fn_1_685C = .text:0x0000680C; // type:function size:0x258 scope:local +fn_1_6AB4 = .text:0x00006A64; // type:function size:0x3B0 scope:local +fn_1_6E64 = .text:0x00006E14; // type:function size:0x1BC scope:local +fn_1_7020 = .text:0x00006FD0; // type:function size:0xC4 scope:local +fn_1_70E4 = .text:0x00007094; // type:function size:0x86C scope:local +fn_1_7950 = .text:0x00007900; // type:function size:0x19C scope:local +fn_1_7AEC = .text:0x00007A9C; // type:function size:0x25C scope:local +fn_1_7D48 = .text:0x00007CF8; // type:function size:0x4 scope:local +fn_1_7D4C = .text:0x00007CFC; // type:function size:0x134 scope:local +fn_1_7E80 = .text:0x00007E30; // type:function size:0x4 scope:local +fn_1_7E84 = .text:0x00007E34; // type:function size:0x1C4 scope:local +fn_1_8048 = .text:0x00007FF8; // type:function size:0x1D0 scope:local +fn_1_8218 = .text:0x000081C8; // type:function size:0xE38 scope:local +fn_1_9058 = .text:0x00009000; // type:function size:0x1EC scope:local +ObjectSetup = .text:0x000091EC; // type:function size:0x8B0 +fn_1_9AF4 = .text:0x00009A9C; // type:function size:0xD0 scope:local _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 -lbl_1_data_10 = .data:0x00000010; // type:object size:0xC data:4byte -lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC -lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:4byte -lbl_1_data_34 = .data:0x00000034; // type:object size:0xC -lbl_1_data_40 = .data:0x00000040; // type:object size:0xC -lbl_1_data_4C = .data:0x0000004C; // type:object size:0x14 -lbl_1_data_60 = .data:0x00000060; // type:object size:0xC -lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC -lbl_1_data_78 = .data:0x00000078; // type:object size:0x160 -lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x10 -lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0xC -lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x4 data:4byte -lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x8 -lbl_1_data_200 = .data:0x00000200; // type:object size:0x18 -lbl_1_data_218 = .data:0x00000218; // type:object size:0x1C -lbl_1_data_234 = .data:0x00000234; // type:object size:0x190 -lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x14 -lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x1A data:string -lbl_1_data_3F2 = .data:0x000003F2; // type:object size:0x9 data:string -lbl_1_data_3FB = .data:0x000003FB; // type:object size:0x6 data:string -lbl_1_data_401 = .data:0x00000401; // type:object size:0x10 data:string -lbl_1_data_411 = .data:0x00000411; // type:object size:0x1F +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0x10 scope:local +lbl_1_data_10 = .data:0x00000010; // type:object size:0xC scope:local data:4byte +lbl_1_data_1C = .data:0x0000001C; // type:object size:0xC scope:local +lbl_1_data_28 = .data:0x00000028; // type:object size:0xC scope:local data:4byte +lbl_1_data_34 = .data:0x00000034; // type:object size:0xC scope:local +lbl_1_data_40 = .data:0x00000040; // type:object size:0xC scope:local +lbl_1_data_4C = .data:0x0000004C; // type:object size:0x14 scope:local +lbl_1_data_60 = .data:0x00000060; // type:object size:0xC scope:local +lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC scope:local +lbl_1_data_78 = .data:0x00000078; // type:object size:0x160 scope:local +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x10 scope:local +lbl_1_data_1E8 = .data:0x000001E8; // type:object size:0xC scope:local +lbl_1_data_1F4 = .data:0x000001F4; // type:object size:0x4 scope:local data:4byte +lbl_1_data_1F8 = .data:0x000001F8; // type:object size:0x8 scope:local +lbl_1_data_200 = .data:0x00000200; // type:object size:0x18 scope:local +lbl_1_data_218 = .data:0x00000218; // type:object size:0x1C scope:local +lbl_1_data_234 = .data:0x00000234; // type:object size:0x190 scope:local +lbl_1_data_3C4 = .data:0x000003C4; // type:object size:0x14 scope:local +lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x1A scope:local data:string +lbl_1_data_3F2 = .data:0x000003F2; // type:object size:0x9 scope:local data:string +lbl_1_data_3FB = .data:0x000003FB; // type:object size:0x6 scope:local data:string +lbl_1_data_401 = .data:0x00000401; // type:object size:0x10 scope:local data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x1F scope:local jumptable_1_data_430 = .data:0x00000430; // type:object size:0x40 scope:local -lbl_1_data_470 = .data:0x00000470; // type:object size:0x17 data:string -lbl_1_data_487 = .data:0x00000487; // type:object size:0x1B data:string -lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x24 data:string -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte -lbl_1_bss_16 = .bss:0x00000016; // type:object size:0xE -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte -lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 data:2byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float -lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 data:float -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte -lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x100 -lbl_1_bss_15C = .bss:0x0000015C; // type:object size:0x40 data:4byte -lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x4 data:float -lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 data:4byte -lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 data:4byte -lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x2 data:2byte -lbl_1_bss_1AA = .bss:0x000001AA; // type:object size:0x2 data:2byte -lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 data:4byte -lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x4 data:4byte -lbl_1_bss_1B4 = .bss:0x000001B4; // type:object size:0x4 data:4byte -lbl_1_bss_1B8 = .bss:0x000001B8; // type:object size:0xC data:4byte -lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0xC data:4byte -lbl_1_bss_1D0 = .bss:0x000001D0; // type:object size:0xC data:4byte -lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0xC data:4byte -lbl_1_bss_1E8 = .bss:0x000001E8; // type:object size:0x4 data:4byte -lbl_1_bss_1EC = .bss:0x000001EC; // type:object size:0x18 data:4byte -lbl_1_bss_204 = .bss:0x00000204; // type:object size:0xC data:4byte +lbl_1_data_470 = .data:0x00000470; // type:object size:0x17 scope:local data:string +lbl_1_data_487 = .data:0x00000487; // type:object size:0x1B scope:local data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x24 scope:local data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 scope:local data:float +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 scope:local data:float +lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 scope:local data:float +lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0xE scope:local +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x8 scope:local data:float +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x100 scope:local +lbl_1_bss_15C = .bss:0x0000015C; // type:object size:0x40 scope:local data:4byte +lbl_1_bss_19C = .bss:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_bss_1A0 = .bss:0x000001A0; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1A4 = .bss:0x000001A4; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1A8 = .bss:0x000001A8; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_1AA = .bss:0x000001AA; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_1AC = .bss:0x000001AC; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1B0 = .bss:0x000001B0; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1B4 = .bss:0x000001B4; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1B8 = .bss:0x000001B8; // type:object size:0xC scope:local data:4byte +lbl_1_bss_1C4 = .bss:0x000001C4; // type:object size:0xC scope:local data:4byte +lbl_1_bss_1D0 = .bss:0x000001D0; // type:object size:0xC scope:local data:4byte +lbl_1_bss_1DC = .bss:0x000001DC; // type:object size:0xC scope:local data:4byte +lbl_1_bss_1E8 = .bss:0x000001E8; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1EC = .bss:0x000001EC; // type:object size:0x18 scope:local data:4byte +lbl_1_bss_204 = .bss:0x00000204; // type:object size:0xC scope:local data:4byte diff --git a/config/GMPP01_00/rels/m404Dll/splits.txt b/config/GMPP01_00/rels/m404Dll/splits.txt index 531cd645..a69fcd5d 100644 --- a/config/GMPP01_00/rels/m404Dll/splits.txt +++ b/config/GMPP01_00/rels/m404Dll/splits.txt @@ -5,3 +5,12 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m404Dll/main.c: + .text start:0x000000A0 end:0x00006C88 + .rodata start:0x00000000 end:0x00000148 + .data start:0x00000000 end:0x00000A0C + .bss start:0x00000000 end:0x0000005C diff --git a/config/GMPP01_00/rels/m404Dll/symbols.txt b/config/GMPP01_00/rels/m404Dll/symbols.txt index 3f46d237..9a309233 100644 --- a/config/GMPP01_00/rels/m404Dll/symbols.txt +++ b/config/GMPP01_00/rels/m404Dll/symbols.txt @@ -1,6 +1,6 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x2DC +ObjectSetup = .text:0x000000A0; // type:function size:0x2DC fn_1_37C = .text:0x0000037C; // type:function size:0x10 fn_1_38C = .text:0x0000038C; // type:function size:0x10 fn_1_39C = .text:0x0000039C; // type:function size:0x64 @@ -46,63 +46,63 @@ fn_1_648C = .text:0x0000648C; // type:function size:0x250 fn_1_66DC = .text:0x000066DC; // type:function size:0x5AC _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:2byte -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x20 data:byte -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x1 data:byte -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x1 data:byte -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x6 scope:local data:2byte +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x20 scope:local data:byte +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x248 lbl_1_data_248 = .data:0x00000248; // type:object size:0x260 lbl_1_data_4A8 = .data:0x000004A8; // type:object size:0x290 @@ -112,10 +112,10 @@ lbl_1_data_77C = .data:0x0000077C; // type:object size:0xC data:float lbl_1_data_788 = .data:0x00000788; // type:object size:0x4 lbl_1_data_78C = .data:0x0000078C; // type:object size:0xC lbl_1_data_798 = .data:0x00000798; // type:object size:0xC -lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x24 +lbl_1_data_7A4 = .data:0x000007A4; // type:object size:0x23 scope:local data:string lbl_1_data_7C8 = .data:0x000007C8; // type:object size:0x4 data:4byte jumptable_1_data_7CC = .data:0x000007CC; // type:object size:0x28 scope:local -lbl_1_data_7F4 = .data:0x000007F4; // type:object size:0x1C data:string +lbl_1_data_7F4 = .data:0x000007F4; // type:object size:0x1C scope:local data:string lbl_1_data_810 = .data:0x00000810; // type:object size:0xC lbl_1_data_81C = .data:0x0000081C; // type:object size:0x30 lbl_1_data_84C = .data:0x0000084C; // type:object size:0x20 @@ -127,13 +127,13 @@ lbl_1_data_8D8 = .data:0x000008D8; // type:object size:0x10 lbl_1_data_8E8 = .data:0x000008E8; // type:object size:0xC lbl_1_data_8F4 = .data:0x000008F4; // type:object size:0x8 data:wstring lbl_1_data_8FC = .data:0x000008FC; // type:object size:0x18 -lbl_1_data_914 = .data:0x00000914; // type:object size:0x1C +lbl_1_data_914 = .data:0x00000914; // type:object size:0x19 scope:local data:string lbl_1_data_930 = .data:0x00000930; // type:object size:0x20 lbl_1_data_950 = .data:0x00000950; // type:object size:0x20 -lbl_1_data_970 = .data:0x00000970; // type:object size:0x7 data:string -lbl_1_data_977 = .data:0x00000977; // type:object size:0x7 data:string -lbl_1_data_97E = .data:0x0000097E; // type:object size:0x7 data:string -lbl_1_data_985 = .data:0x00000985; // type:object size:0x7 data:string +lbl_1_data_970 = .data:0x00000970; // type:object size:0x7 scope:local data:string +lbl_1_data_977 = .data:0x00000977; // type:object size:0x7 scope:local data:string +lbl_1_data_97E = .data:0x0000097E; // type:object size:0x7 scope:local data:string +lbl_1_data_985 = .data:0x00000985; // type:object size:0x7 scope:local data:string lbl_1_data_98C = .data:0x0000098C; // type:object size:0x10 lbl_1_data_99C = .data:0x0000099C; // type:object size:0x10 lbl_1_data_9AC = .data:0x000009AC; // type:object size:0x30 diff --git a/configure.py b/configure.py index b0884088..27092f4c 100644 --- a/configure.py +++ b/configure.py @@ -881,7 +881,7 @@ config.libs = [ Rel( "m402Dll", # Slime Time objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m402Dll/main.c"), + Object(Matching, "REL/m402Dll/main.c"), }, ), Rel( @@ -894,7 +894,7 @@ config.libs = [ Rel( "m404Dll", # Trace Race objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m404Dll/main.c"), + Object(Matching, "REL/m404Dll/main.c"), }, ), Rel( @@ -1279,7 +1279,7 @@ config.libs = [ Rel( "m458Dll", # Panels of Doom objects={ - Object(NonMatching, "REL/m458Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m458Dll/main.c"), }, ), Rel( diff --git a/include/REL/modeseldll.h b/include/REL/modeseldll.h index db80185b..4100ea20 100644 --- a/include/REL/modeseldll.h +++ b/include/REL/modeseldll.h @@ -27,6 +27,8 @@ typedef struct datalist_sprite { GXColor color; } DataListSprite; +// void fn_1_1EC0(s16 view); + s32 fn_1_2490(void); s32 fn_1_37DC(void); @@ -42,4 +44,4 @@ extern s16 lbl_1_data_100; extern DataListModel lbl_1_data_428[]; extern DataListSprite lbl_1_data_93C[]; -#endif \ No newline at end of file +#endif diff --git a/src/REL/m402Dll/main.c b/src/REL/m402Dll/main.c index 53a17274..d604cf04 100755 --- a/src/REL/m402Dll/main.c +++ b/src/REL/m402Dll/main.c @@ -778,7 +778,7 @@ static void fn_1_2970(UnkFn27A8Struct *arg0, omObjData *arg1, u8 arg2) static void fn_1_2B30(UnkFn27A8Struct *arg0, omObjData *arg1, omObjData *arg2) { arg0->unk50 = 0; - arg0->unk20 = (770.0f - arg0->unk1C) / 18.0f; + arg0->unk20 = (770.0f - arg0->unk1C) / (REFRESH_RATE * 0.3f); arg0->unk0C = Hu3DMotionTimeGet(arg2->model[0]); Hu3DMotionTimeSet(lbl_1_bss_54[arg0->unk54]->model[0], 0.0f); Hu3DMotionSpeedSet(arg1->model[0], 1.0f); @@ -795,13 +795,13 @@ static u8 fn_1_2DBC(UnkFn27A8Struct *arg0, omObjData *arg1) float var_f29; arg0->unk50++; - var_f30 = 90.0f * (arg0->unk50 / 18.0f); + var_f30 = 90.0f * (arg0->unk50 / (VERSION_NTSC ? 18.0f : 15.000001f)); var_f29 = arg0->unk0C * (1.0 - sind(var_f30)); Hu3DMotionTimeSet(arg1->model[0], var_f29); fn_1_1D18(arg1->model[0], "motionC-stretch", &sp20); arg0->unk28 = sp20.y - arg0->unk14 + 388.0f; arg0->unk1C += arg0->unk20; - if (18.0f < arg0->unk50) { + if ((REFRESH_RATE * 0.3f) < arg0->unk50) { arg0->unk20 = (670.0f - arg0->unk1C) / 20.0f; Hu3DModelAttrReset(arg1->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DMotionSet(arg1->model[0], arg1->motion[2]); @@ -927,7 +927,7 @@ static void fn_1_3204(omObjData *arg0) } } } - if (60.0f <= temp_r31->unk30) { + if (1.0f * REFRESH_RATE <= temp_r31->unk30) { temp_r31->unk4C = 2017; fn_1_2B30(temp_r31, arg0, temp_r29); } @@ -950,7 +950,7 @@ static void fn_1_3204(omObjData *arg0) case 2017: if (fn_1_2DBC(temp_r31, temp_r29) != 0) { temp_r31->unk4C = 2018; - temp_r31->unk50 = 120; + temp_r31->unk50 = 2 * REFRESH_RATE; } break; case 2018: @@ -1125,7 +1125,7 @@ static void fn_1_43D8(omObjData *arg0) case 2008: if (fn_1_2DBC(temp_r31, temp_r30) != 0) { temp_r31->unk4C++; - temp_r31->unk50 = 120; + temp_r31->unk50 = 2 * REFRESH_RATE; } break; case 2009: @@ -1195,7 +1195,7 @@ static void fn_1_43D8(omObjData *arg0) case 2014: if (fn_1_2DBC(temp_r31, temp_r30) != 0) { temp_r31->unk4C++; - temp_r31->unk50 = 120; + temp_r31->unk50 = 2 * REFRESH_RATE; } break; case 2015: @@ -1665,8 +1665,8 @@ static void fn_1_8218(omObjData *arg0) } if (MGSeqStatGet(lbl_1_bss_1AA) == 0) { arg0->work[0]++; - lbl_1_bss_1B0 = 1800; - lbl_1_bss_1A8 = MGSeqCreate(1, lbl_1_bss_1B0 / 60, -1, -1); + lbl_1_bss_1B0 = 30 * REFRESH_RATE; + lbl_1_bss_1A8 = MGSeqCreate(1, lbl_1_bss_1B0 / REFRESH_RATE, -1, -1); lbl_1_bss_1AA = -1; } } @@ -1675,7 +1675,7 @@ static void fn_1_8218(omObjData *arg0) MGSeqParamSet(lbl_1_bss_1A8, 1, (lbl_1_bss_1B0 + REFRESH_RATE - 1) / REFRESH_RATE); lbl_1_bss_1B0--; if (lbl_1_bss_1B0 < 0 || lbl_1_bss_26 >= 0) { - lbl_1_bss_1B0 = 1800; + lbl_1_bss_1B0 = 30 * REFRESH_RATE; lbl_1_bss_2C = 0.0f; arg0->work[0] = 1007; } @@ -1698,8 +1698,8 @@ static void fn_1_8218(omObjData *arg0) } else { lbl_1_bss_2C += 1.0f; - if (90.0f >= lbl_1_bss_2C) { - fn_1_13DC(lbl_1_bss_2C / 90.0f, &lbl_1_data_1C); + if (1.5f * REFRESH_RATE >= lbl_1_bss_2C) { + fn_1_13DC(lbl_1_bss_2C / (1.5f * REFRESH_RATE), &lbl_1_data_1C); } if (MGSeqStatGet(lbl_1_bss_1AA) == 0) { arg0->work[0]++; diff --git a/src/REL/m404Dll/main.c b/src/REL/m404Dll/main.c index 6b790aee..e331d72f 100644 --- a/src/REL/m404Dll/main.c +++ b/src/REL/m404Dll/main.c @@ -12,6 +12,7 @@ #include "game/wipe.h" #include "string.h" +#include "version.h" typedef struct UnkM404Struct { s16 unk_00; @@ -281,7 +282,7 @@ s32 fn_1_38C(void) void fn_1_39C(omObjData *object) { fn_1_37C(0); - lbl_1_bss_24 = 60; + lbl_1_bss_24 = REFRESH_RATE; WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); object->func = fn_1_400; } @@ -294,7 +295,7 @@ void fn_1_400(omObjData *object) break; } fn_1_37C(1); - lbl_1_bss_24 = 180; + lbl_1_bss_24 = 3 * REFRESH_RATE; break; case 1: if (--lbl_1_bss_24) { @@ -327,22 +328,22 @@ void fn_1_400(omObjData *object) if (!MGSeqStatGet(lbl_1_bss_C)) { fn_1_37C(5); WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - lbl_1_bss_24 = 60; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, REFRESH_RATE / 2); + lbl_1_bss_24 = REFRESH_RATE; } case 5: if (--lbl_1_bss_24) { break; } fn_1_37C(6); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, REFRESH_RATE); break; case 6: if (WipeStatGet()) { break; } fn_1_37C(7); - lbl_1_bss_24 = 180; + lbl_1_bss_24 = 3 * REFRESH_RATE; break; case 7: if (--lbl_1_bss_24) { @@ -356,7 +357,7 @@ void fn_1_400(omObjData *object) else { HuAudSStreamPlay(4); } - lbl_1_bss_24 = 210; + lbl_1_bss_24 = 3.5 * REFRESH_RATE; break; case 8: break; @@ -740,7 +741,7 @@ void fn_1_1344(omObjData *object) DCFlushRangeNoSync(var_r31->unk_50->bmp->data, (var_r31->unk_50->bmp->pixSize * (var_r31->unk_50->bmp->sizeX * var_r31->unk_50->bmp->sizeY)) / 8); Hu3DMotionOverlaySet(object->model[0], object->motion[2]); object->trans.y = 1500.0f; - var_r31->unk_38 = var_r31->unk_02 * 60 / 2; + var_r31->unk_38 = var_r31->unk_02 * REFRESH_RATE / 2; CharModelDataClose(var_r31->unk_0C); if (GWPlayerCfg[var_r31->unk_02].iscom == 1) { var_r28 = lbl_1_data_8E8[lbl_1_bss_1C]; @@ -782,7 +783,7 @@ void fn_1_1AFC(omObjData *object) } } if (object->trans.y > 0.0f) { - var_r31->unk_24 = var_r31->unk_24 - 1.0000001f; + var_r31->unk_24 = var_r31->unk_24 - (VERSION_NTSC ? 1.0000001f : 1.2f); object->trans.y += var_r31->unk_24; if (object->trans.y < 0.0f) { object->trans.y = 0.0f; @@ -799,7 +800,7 @@ void fn_1_1AFC(omObjData *object) } if (var_r31->unk_38 == 0) { var_r31->unk_00_field2 = 1; - var_r31->unk_38 = 30; + var_r31->unk_38 = REFRESH_RATE / 2; return; } var_r31->unk_38--; @@ -950,13 +951,13 @@ void fn_1_3F30(omObjData *object) var_r31 = object->data; if (var_r31->unk_5E < (var_r31->unk_6C - 1)) { - if ((3.0f + var_r31->unk_64) >= var_r31->unk_68) { - var_r31->unk_64 = 3.0f - (var_r31->unk_68 - var_r31->unk_64); + if ((180.0f / REFRESH_RATE + var_r31->unk_64) >= var_r31->unk_68) { + var_r31->unk_64 = 180.0f / REFRESH_RATE - (var_r31->unk_68 - var_r31->unk_64); var_r31->unk_5E += 3; var_r31->unk_68 = fn_1_2EBC(var_r31->unk_70[var_r31->unk_5E], 1.0f); } else { - var_r31->unk_64 += 3.0f; + var_r31->unk_64 += 180.0f / REFRESH_RATE; } var_r31->unk_60 = fn_1_3A38(var_r31->unk_70[var_r31->unk_5E], var_r31->unk_60, var_r31->unk_64); var_r30 = var_r31->unk_70[var_r31->unk_5E]; @@ -1012,8 +1013,8 @@ void fn_1_44A0(omObjData *object) } if (((var_r31->unk_06 * var_r31->unk_06) + (var_r31->unk_07 * var_r31->unk_07)) > 16.0f) { var_f31 = atan2d(var_r31->unk_06, -var_r31->unk_07); - var_r31->unk_20 = 3.0f * sind(var_f31); - var_r31->unk_28 = 3.0f * cosd(var_f31); + var_r31->unk_20 = (VERSION_NTSC ? 3.0 : 3.5999999046325684) * sind(var_f31); + var_r31->unk_28 = (VERSION_NTSC ? 3.0 : 3.5999999046325684) * cosd(var_f31); var_r28 = 1; if (var_r31->unk_20 > 0.0f) { CharModelMotionSpeedSet(var_r31->unk_0C, 0.5f); @@ -1090,7 +1091,7 @@ void fn_1_44A0(omObjData *object) break; case 1: var_r28 = 1; - object->trans.x += 4.0000005f; + object->trans.x += VERSION_NTSC ? 4.0000005f : 4.8f; if (object->trans.x >= 3200.0f) { var_r31->unk_12++; var_r31->unk_38 = 0x3C; @@ -1468,14 +1469,14 @@ void fn_1_66DC(omObjData *object) case 1: fn_1_648C(0, 1, 1.0 - cosd(90.0f * lbl_1_bss_4)); if (lbl_1_bss_4 < 1.0f) { - lbl_1_bss_4 += 0.007999999f; + lbl_1_bss_4 += VERSION_NTSC ? 0.007999999f : 0.0095999995f; if (lbl_1_bss_4 > 1.0f) { lbl_1_bss_4 = 1.0f; } } break; case 3: - Center.x += 2.0000002f; + Center.x += VERSION_NTSC ? 2.0000002f : 2.4f; Hu3DShadowData.unk_14.x = 1000.0f + var_r31->pos.x; Hu3DShadowData.unk_20.x = Hu3DShadowData.unk_14.x - 1500.0f; break; @@ -1484,7 +1485,7 @@ void fn_1_66DC(omObjData *object) break; case 7: if (Center.x < 3000.0f) { - Center.x += 25.0f; + Center.x += VERSION_NTSC ? 25.0f : 30.0f; } default: break; diff --git a/src/REL/m449Dll/main.c b/src/REL/m449Dll/main.c index 17209e39..e2ee45d9 100644 --- a/src/REL/m449Dll/main.c +++ b/src/REL/m449Dll/main.c @@ -667,20 +667,11 @@ void fn_1_758(omObjData *var_r29) sp1F0 = var_r31->unk_60[var_r26] + var_r31->unk_90[var_r26]; sp1EC = var_r31->unk_80[var_r26] + var_r31->unk_B0[var_r26]; if (var_r31->unk_F0[var_r26] == 0) { - if (var_r31->unk_28 != 0.0f) { - if (var_r31->unk_28 < 0.0f ? (sp1F0 < var_r31->unk_20) : (sp1F0 > var_r31->unk_20)) { - goto block_169; - } - } + if (var_r31->unk_28 != 0.0f && !(var_r31->unk_28 < 0.0f ? (sp1F0 < var_r31->unk_20) : (sp1F0 > var_r31->unk_20))) { } else { - block_169: - if (var_r31->unk_2C != 0.0f) { - if (var_r31->unk_2C < 0.0f ? (sp1EC < var_r31->unk_24) : (sp1EC > var_r31->unk_24)) { - goto block_174; - } - } + if (var_r31->unk_2C != 0.0f + && !(var_r31->unk_2C < 0.0f ? (sp1EC < var_r31->unk_24) : (sp1EC > var_r31->unk_24))) { } else { - block_174: var_r31->unk_1C = 0; var_r31->unk_14 = var_r26; var_r25 = var_r26; @@ -935,28 +926,16 @@ void fn_1_758(omObjData *var_r29) } } else if (var_r31->unk_1C != 0) { - if (var_r31->unk_28 != 0.0f) { - if (!(var_r31->unk_28 < 0.0f ? (var_f30 < var_r31->unk_20) : (var_f30 > var_r31->unk_20))) { - var_f29 = var_r31->unk_28 < 0.0f ? (var_f30 > var_r31->unk_20 ? -1 : 0) : (var_f30 < var_r31->unk_20 ? 1 : 0); - } - else { - goto block_368; - } + if (var_r31->unk_28 != 0.0f && !(var_r31->unk_28 < 0.0f ? (var_f30 < var_r31->unk_20) : (var_f30 > var_r31->unk_20))) { + var_f29 = var_r31->unk_28 < 0.0f ? (var_f30 > var_r31->unk_20 ? -1 : 0) : (var_f30 < var_r31->unk_20 ? 1 : 0); } else { - block_368: var_f29 = var_r31->unk_58 < -0.1 ? 1.0f : (var_r31->unk_58 > 0.1 ? -1.0f : (-10.0f * var_r31->unk_58)); } - if (var_r31->unk_2C != 0.0f) { - if ((var_r31->unk_2C < 0.0f ? (var_f31 < var_r31->unk_24) : (var_f31 > var_r31->unk_24)) == 0) { - var_f28 = var_r31->unk_2C < 0.0f ? (var_f31 > var_r31->unk_24 ? -1 : 0) : (var_f31 < var_r31->unk_24 ? 1 : 0); - } - else { - goto block_390; - } + if (var_r31->unk_2C != 0.0f && (var_r31->unk_2C < 0.0f ? (var_f31 < var_r31->unk_24) : (var_f31 > var_r31->unk_24)) == 0) { + var_f28 = var_r31->unk_2C < 0.0f ? (var_f31 > var_r31->unk_24 ? -1 : 0) : (var_f31 < var_r31->unk_24 ? 1 : 0); } else { - block_390: var_f28 = var_r31->unk_5C < -0.1 ? 1.0f : (var_r31->unk_5C > 0.1 ? -1.0f : (-10.0f * var_r31->unk_5C)); } } diff --git a/src/REL/m457Dll/main.c b/src/REL/m457Dll/main.c index 69ecd523..484b27b6 100755 --- a/src/REL/m457Dll/main.c +++ b/src/REL/m457Dll/main.c @@ -1,6 +1,7 @@ #include "game/audio.h" #include "game/chrman.h" #include "game/data.h" +#include "game/sprite.h" #include "game/esprite.h" #include "game/gamework_data.h" #include "game/hsfdraw.h" @@ -14,9 +15,12 @@ #include "game/process.h" #include "game/window.h" #include "game/wipe.h" +#include "string.h" #include "ext_math.h" +s32 rand8(void); + typedef struct { /* 0x00 */ s32 unk00; /* 0x04 */ s32 unk04; diff --git a/src/REL/m458Dll/main.c b/src/REL/m458Dll/main.c index a813647a..1e95123b 100644 --- a/src/REL/m458Dll/main.c +++ b/src/REL/m458Dll/main.c @@ -177,24 +177,8 @@ void fn_1_A0(void) s32 lbl_1_data_16C = -1; -// https://decomp.me/scratch/QQLCN r17 issues void fn_1_4C8(omObjData *object) { - Mtx sp1E0; - float sp1A8[2]; - float sp1A0[2]; - s32 spD0; - s32 spCC; - s32 spC8; - s32 spC4; - s32 spC0; - float spBC; - s32 spB8; - ModelData *spB4; - float spB0; - float spAC; - s32 spA8; - s32 spA4; float var_f31; float var_f30; float var_f28; @@ -222,6 +206,22 @@ void fn_1_4C8(omObjData *object) s32 var_r18; s32 var_r17; + Mtx sp1E0; + float sp1A8[2]; + float sp1A0[2]; + s32 spD0; + s32 spCC; + s32 spC8; + s32 spC4; + s32 spC0; + float spBC; + s32 spB8; + ModelData *spB4; + float spB0; + float spAC; + s32 spA8; + s32 spA4; + var_r31 = object->data; var_r27 = (&lbl_1_bss_BC)[1 - object->work[0]]->data; var_f23 = 0.0f; @@ -277,8 +277,7 @@ void fn_1_4C8(omObjData *object) spC4 = 0; spC0 = 0; if (fabs((500.0 * var_r31->unk_3C) - object->trans.x) < 10.0) { - var_r17 = object->trans.x < -250.0 ? -1 : (object->trans.x > 250.0 ? 1 : 0); - spD0 = var_r17; + var_r17 = spD0 = object->trans.x < -250.0 ? -1 : (object->trans.x > 250.0 ? 1 : 0); } else { var_r17 = (object->trans.x < 0.0f ? -1 : 0); @@ -519,7 +518,6 @@ void fn_1_4C8(omObjData *object) espAttrSet(lbl_1_data_8[1], HUSPR_ATTR_DISPOFF); } if (lbl_1_bss_B4 == 0x122) { - // TODO remove temporary? spB8 = HuAudFXPlay((var_r31->unk_08 != -1 ? var_r31->unk_08 : 8) + 0x800); HuAudFXFadeOut(spB8, 0x9C4); } @@ -584,7 +582,7 @@ void fn_1_4C8(omObjData *object) } else { var_f20 = 1.0f; - var_f21 = 1.0f; + var_f21 = 0.5f; } var_r23->scale.x = var_f20 + (var_f21 * sind((float)(var_r31->unk_1C % 180))); var_r23->scale.y = var_r23->scale.z = var_r23->scale.x; @@ -724,16 +722,9 @@ void fn_1_4C8(omObjData *object) if (lbl_1_data_15C >= 6) { spA4 = lbl_1_bss_18; for (spA8 = 0; spA8 < 0x32; spA8++) { - loop_344: - lbl_1_bss_18 = rand8() % 11; - if (lbl_1_bss_18 >= 9) { - if (lbl_1_bss_18 == (var_r31->unk_00 + 9)) { - goto loop_344; - } - } - if ((lbl_1_bss_18 < 9) && (lbl_1_bss_28C[lbl_1_bss_18].unk_0C == 0)) { - goto loop_344; - } + do { + lbl_1_bss_18 = rand8() % 11; + } while ((lbl_1_bss_18 >= 9 && lbl_1_bss_18 == var_r31->unk_00 + 9) || (lbl_1_bss_18 < 9 && lbl_1_bss_28C[lbl_1_bss_18].unk_0C == 0)); if (spA4 != lbl_1_bss_18) { break; } @@ -958,8 +949,7 @@ void fn_1_350C(omObjData *var_r27) var_f25 *= lbl_1_data_114.unk_04 * 2; var_f26 *= lbl_1_data_114.unk_04 * 2; lbl_1_data_114.unk_00 = !lbl_1_data_114.unk_00; - lbl_1_data_114.unk_04 = (lbl_1_data_114.unk_04 > 24) ? 23 - : (lbl_1_data_114.unk_04 - 1 > 0) ? (lbl_1_data_114.unk_04 - 1) : 0; + lbl_1_data_114.unk_04 = (lbl_1_data_114.unk_04 > 24) ? 23 : (lbl_1_data_114.unk_04 - 1 > 0) ? (lbl_1_data_114.unk_04 - 1) : 0; Center.x = 0.0f; Center.y = 100.0f + var_f26; } @@ -1383,122 +1373,61 @@ void fn_1_6314(omObjData *object) { s32 sp10; void *spC; - s32 sp8; - M458DllWork *var_r31; + M458DllWork *work; s32 var_r29; - s32 var_r28; - s32 var_r27; - s32 var_r26; - s32 var_r25; - s32 var_r24; - s32 var_r23; - s32 var_r22; - s32 var_r21; - s32 var_r20; - s32 var_r19; - s32 var_r18; - s32 var_r17; - var_r31 = object->data; + work = object->data; spC = (&lbl_1_bss_BC)[1 - object->work[0]]->data; - memset(var_r31, 0, 0x44); - var_r31->unk_00 = object->work[0]; - // probably ternary, but it causes regswaps - if (GWPlayerCfg->group == var_r31->unk_00) { - var_r28 = 0; - } - else { - if (GWPlayerCfg[1].group == var_r31->unk_00) { - var_r27 = 1; - } - else { - if (GWPlayerCfg[2].group == var_r31->unk_00) { - var_r26 = 2; - } - else { - if (GWPlayerCfg[3].group == var_r31->unk_00) { - var_r25 = 3; - } - else { - var_r25 = 4; - } - var_r26 = var_r25; - } - var_r27 = var_r26; - } - var_r28 = var_r27; - } - var_r31->unk_04 = var_r28; - if (GWPlayerCfg->group == (1 - var_r31->unk_00)) { - var_r24 = 0; - } - else { - if (GWPlayerCfg[1].group == (1 - var_r31->unk_00)) { - var_r23 = 1; - } - else { - if (GWPlayerCfg[2].group == (1 - var_r31->unk_00)) { - var_r22 = 2; - } - else { - if (GWPlayerCfg[3].group == (1 - var_r31->unk_00)) { - var_r21 = 3; - } - else { - var_r21 = 4; - } - var_r22 = var_r21; - } - var_r23 = var_r22; - } - var_r24 = var_r23; - } - sp10 = var_r24; - if (var_r31->unk_04 == 4) { + memset(work, 0, sizeof(M458DllWork)); + work->unk_00 = object->work[0]; + work->unk_04 = GWPlayerCfg->group == work->unk_00 + ? 0 + : (GWPlayerCfg[1].group == work->unk_00 ? 1 : (GWPlayerCfg[2].group == work->unk_00 ? 2 : (GWPlayerCfg[3].group == work->unk_00 ? 3 : 4))); + sp10 = GWPlayerCfg->group == (1 - work->unk_00) + ? 0 + : (GWPlayerCfg[1].group == (1 - work->unk_00) + ? 1 + : (GWPlayerCfg[2].group == (1 - work->unk_00) ? 2 : (GWPlayerCfg[3].group == (1 - work->unk_00) ? 3 : 4))); + if (work->unk_04 == 4) { OSReport("m458:wrong player group\n"); - var_r31->unk_04 = var_r31->unk_00; + work->unk_04 = work->unk_00; } - if ((var_r31->unk_00 == 1) && (lbl_1_bss_14 != 0)) { - var_r31->unk_08 = -1; - var_r31->unk_0C = -1; - var_r31->unk_04 = -1; - var_r31->unk_10 = 0; + if ((work->unk_00 == 1) && (lbl_1_bss_14 != 0)) { + work->unk_08 = -1; + work->unk_0C = -1; + work->unk_04 = -1; + work->unk_10 = 0; } else { - var_r31->unk_08 = GWPlayerCfg[var_r31->unk_04].character; - var_r20 = 1; - if ((var_r31->unk_08 != -1) && (GWPlayerCfg[var_r31->unk_04].iscom == 0)) { - var_r20 = 0; - } - var_r31->unk_0C = var_r20 != 0 ? -1 : GWPlayerCfg[var_r31->unk_04].pad_idx; - var_r31->unk_10 = var_r31->unk_0C != -1 ? 0 : GWPlayerCfg[var_r31->unk_04].diff; + work->unk_08 = GWPlayerCfg[work->unk_04].character; + work->unk_0C = ((work->unk_08 == -1) || (GWPlayerCfg[work->unk_04].iscom != 0)) ? -1 : GWPlayerCfg[work->unk_04].pad_idx; + work->unk_10 = work->unk_0C != -1 ? 0 : GWPlayerCfg[work->unk_04].diff; } - var_r31->unk_18 = 0; - var_r31->unk_20 = 3; - var_r31->unk_24 = -1; - if (var_r31->unk_08 != -1) { - object->model[0] = CharModelCreate(var_r31->unk_08, 1); + work->unk_18 = 0; + work->unk_20 = 3; + work->unk_24 = -1; + if (work->unk_08 != -1) { + object->model[0] = CharModelCreate(work->unk_08, 1); } else { object->model[0] = Hu3DModelCreateFile(0x30007); } - omSetTra(object, 0.0f, var_r31->unk_00 == 0 ? 0 : 0x12C, 0.0f); - if (var_r31->unk_08 != -1) { + omSetTra(object, 0.0f, work->unk_00 == 0 ? 0 : 0x12C, 0.0f); + if (work->unk_08 != -1) { omSetSca(object, 2.5f, 2.5f, 2.5f); } else { omSetSca(object, 2.0f, 2.0f, 2.0f); } for (var_r29 = 0; var_r29 < 0xA; var_r29++) { - if (var_r31->unk_08 != -1) { - object->motion[var_r29] - = CharModelMotionCreate(var_r31->unk_08, lbl_1_data_10[var_r29] + (lbl_1_data_38[var_r29] != 0 ? var_r31->unk_08 : 0)); + if (work->unk_08 != -1) { + object->motion[var_r29] = CharModelMotionCreate(work->unk_08, lbl_1_data_10[var_r29] + (lbl_1_data_38[var_r29] != 0 ? work->unk_08 : 0)); } else if (lbl_1_data_60[var_r29] != 0) { object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], lbl_1_data_60[var_r29]); } } - Hu3DMotionSet(object->model[0], object->motion[var_r31->unk_20]); + Hu3DMotionSet(object->model[0], object->motion[work->unk_20]); Hu3DMotionTimeSet(object->model[0], 10.0f); Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); Hu3DModelShadowSet(object->model[0]); diff --git a/src/REL/modeseldll/modesel.c b/src/REL/modeseldll/modesel.c index 7f9d1ae9..8054a966 100644 --- a/src/REL/modeseldll/modesel.c +++ b/src/REL/modeseldll/modesel.c @@ -12,6 +12,11 @@ #include "REL/modeseldll.h" #include "ext_math.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#include "game/thpmain.h" +#endif + s16 lbl_1_data_80[] = { 16, 17, 18, 19, 20, 21 }; s32 lbl_1_data_8C[] = { DATA_MAKE_NUM(DATADIR_MODESEL, 0x30), DATA_MAKE_NUM(DATADIR_MODESEL, 0x32), DATA_MAKE_NUM(DATADIR_MODESEL, 0x34), diff --git a/src/REL/option/record.c b/src/REL/option/record.c index fb16ee2e..c255cdbe 100755 --- a/src/REL/option/record.c +++ b/src/REL/option/record.c @@ -6,17 +6,22 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/memory.h" +#include "game/sprite.h" #include "game/window.h" #include "dolphin.h" #include "math.h" #include "version.h" +#ifndef __MWERKS__ +#include "game/gamework.h" +#endif + #define RECORD_TYPE_BOARD 0 #define RECORD_TYPE_MG 1 -#define NUM_CHARACTERS 8 -#define NUM_BOARDS 6 +#define CHARACTERS_MAX 8 +#define BOARDS_MAX 6 #define PLAY_COUNT_NUM_DIGITS 4 #define WIN_COUNT_NUM_DIGITS 3 @@ -92,15 +97,15 @@ omObjData *OptionRecordCreate(void) object = omAddObjEx(optionObjMan, 1003, 0, 0, 1, NULL); work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(RecordWork), MEMORY_DEFAULT_NUM); object->data = work; - for (i = 0; i < NUM_BOARDS; i++) { + for (i = 0; i < BOARDS_MAX; i++) { work->boardRecord[i].playCount = GWBoardPlayCountGet(i); work->boardRecord[i].maxStars = GWBoardMaxStarsGet(i); work->boardRecord[i].maxCoins = GWBoardMaxCoinsGet(i); - for (character = 0; character < NUM_CHARACTERS; character++) { + for (character = 0; character < CHARACTERS_MAX; character++) { work->boardRecord[i].winCount[character] = GWBoardWinCountGet(character, i); } } - for (i = 0; i < 6; i++) { + for (i = 0; i < BOARDS_MAX; i++) { work->mgRecord[i] = GWMGRecordGet(mgRecordIdxTbl[i]); } work->board = 0; @@ -608,7 +613,7 @@ static void ShowBoard(omObjData *object, s32 board) #if VERSION_NTSC espPosSet(work->sprList[10], 456.0f, 312.0f); #endif - for (i = 0; i < NUM_CHARACTERS; i++) { + for (i = 0; i < CHARACTERS_MAX; i++) { espPosSet(work->sprList[i + 49], 92.0f + 50.0f * i, 200.0f); for (j = 0; j < WIN_COUNT_NUM_DIGITS; j++) { espPosSet(work->sprList[i * 3 + 23 + j], 80.0f + 50.0f * i + 12.0f * j, 230.0f); @@ -634,7 +639,7 @@ static void ShowBoard(omObjData *object, s32 board) espDispOn(work->sprList[i + 19]); } espDispOn(work->sprList[10]); - for (i = 0; i < NUM_CHARACTERS; i++) { + for (i = 0; i < CHARACTERS_MAX; i++) { espDispOn(work->sprList[i + 49]); for (j = 0; j < WIN_COUNT_NUM_DIGITS; j++) { espDispOn(work->sprList[i * 3 + 23 + j]); @@ -679,9 +684,9 @@ static void ShowTotal(omObjData *object) s32 j; espPosSet(work->sprList[6], 275.0f, 72.0f); - for (i = 0; i < NUM_CHARACTERS; i++) { + for (i = 0; i < CHARACTERS_MAX; i++) { espPosSet(work->sprList[i + 57], 148.0f + 80.0f * (i % 4), 172.0f + 104.0f * (i / 4)); - for (j = 0, winCount = 0; j < NUM_BOARDS; j++) { + for (j = 0, winCount = 0; j < BOARDS_MAX; j++) { winCount += work->boardRecord[j].winCount[i]; } for (j = 0; j < WIN_COUNT_NUM_DIGITS; j++) { @@ -690,7 +695,7 @@ static void ShowTotal(omObjData *object) } } espDispOn(work->sprList[6]); - for (i = 0; i < NUM_CHARACTERS; i++) { + for (i = 0; i < CHARACTERS_MAX; i++) { espDispOn(work->sprList[i + 57]); for (j = 0; j < 3; j++) { espDispOn(work->sprList[i * 3 + 65 + j]); diff --git a/src/REL/present/present.c b/src/REL/present/present.c index 263194b5..b30abfbc 100644 --- a/src/REL/present/present.c +++ b/src/REL/present/present.c @@ -9,7 +9,7 @@ #include "REL/present.h" -#define NUM_CHARACTERS 8 +#define CHARACTERS_MAX 8 #define PRESENT_MDL_MAX 134 #define PRESENT_MAX 60 @@ -445,7 +445,7 @@ s32 PresentExecModeGet(omObjData *object) return work->execMode; } -static const s32 roomIdxTbl[NUM_CHARACTERS] = { +static const s32 roomIdxTbl[CHARACTERS_MAX] = { ROOM_MARIO, ROOM_LUIGI, ROOM_PEACH, @@ -869,7 +869,7 @@ static BOOL CameraRotationDoneCheck(omObjData *object) return work->timeRot < 1.0f; } -s32 roomIdxTbl2[NUM_CHARACTERS] = { +s32 roomIdxTbl2[CHARACTERS_MAX] = { ROOM_MARIO, ROOM_LUIGI, ROOM_PEACH, @@ -888,7 +888,7 @@ static void ShowHidePresents(omObjData *object) Hu3DModelAttrReset(work->object[0]->model[0], HU3D_ATTR_DISPOFF); - for (character = 0; character < NUM_CHARACTERS; character++) { + for (character = 0; character < CHARACTERS_MAX; character++) { s32 j; if (UnlockedPresents(object, roomIdxTbl2[character]) > 0) { Hu3DModelAttrReset(work->object[character + 109]->model[0], HU3D_ATTR_DISPOFF); @@ -916,7 +916,7 @@ static void ShowHidePresents(omObjData *object) if (PresentUnlocked(object, ROOM_TROPHY, 0)) { Hu3DModelAttrReset(work->object[1]->model[0], HU3D_ATTR_DISPOFF); } - for (i = 0; i < NUM_CHARACTERS; i++) { + for (i = 0; i < CHARACTERS_MAX; i++) { if (PresentUnlocked(object, roomIdxTbl2[i], PRESENT_CONSTELLATION)) { Hu3DModelAttrReset(work->object[i + 126]->model[0], HU3D_ATTR_DISPOFF); } From 47e4b48254a06f439e13cdade4b44323677023f5 Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Sun, 5 Jan 2025 18:40:35 -0500 Subject: [PATCH 235/311] Match m424Dll (#510) * get halfway through m424/ball * get halfway through m424/ball * get halfway through m424/ball * complete m424/ball * fix merge errors * Revert "complete m424/ball" This reverts commit acbc3196c585acc5e6328e53f4aaf31e1b52db73. * fix up ball, start claw * get halfway through m424/ball * complete m424/ball * Revert "complete m424/ball" This reverts commit acbc3196c585acc5e6328e53f4aaf31e1b52db73. * fix up ball, start claw * complete m424Dll --- config/GMPE01_00/rels/m424Dll/symbols.txt | 5 +- configure.py | 4 +- include/REL/m424Dll.h | 30 +- src/REL/m424Dll/ball.c | 29 +- src/REL/m424Dll/claw.c | 1357 +++++++++++++++++++++ 5 files changed, 1396 insertions(+), 29 deletions(-) create mode 100644 src/REL/m424Dll/claw.c diff --git a/config/GMPE01_00/rels/m424Dll/symbols.txt b/config/GMPE01_00/rels/m424Dll/symbols.txt index ffdf249f..8d4a83df 100644 --- a/config/GMPE01_00/rels/m424Dll/symbols.txt +++ b/config/GMPE01_00/rels/m424Dll/symbols.txt @@ -266,7 +266,7 @@ jumptable_1_data_B8 = .data:0x000000B8; // type:object size:0x28 scope:local lbl_1_data_E0 = .data:0x000000E0; // type:object size:0xC lbl_1_data_EC = .data:0x000000EC; // type:object size:0xC lbl_1_data_F8 = .data:0x000000F8; // type:object size:0xC -lbl_1_data_104 = .data:0x00000104; // type:object size:0x7 data:string +lbl_1_data_104 = .data:0x00000104; // type:object size:0x7 scope:local data:string lbl_1_data_10C = .data:0x0000010C; // type:object size:0x1C lbl_1_data_128 = .data:0x00000128; // type:object size:0x4 data:byte lbl_1_data_12C = .data:0x0000012C; // type:object size:0x1C @@ -317,6 +317,7 @@ lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x80 data:4byte lbl_1_bss_6C0 = .bss:0x000006C0; // type:object size:0x4 data:4byte lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x4 data:4byte lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x4 data:4byte -lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0xC data:4byte +lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0x4 data:4byte +lbl_1_bss_6D0 = .bss:0x000006D0; // type:object size:0x8 data:4byte lbl_1_bss_6D8 = .bss:0x000006D8; // type:object size:0x4 data:4byte lbl_1_bss_6DC = .bss:0x000006DC; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 27092f4c..afd42860 100644 --- a/configure.py +++ b/configure.py @@ -1045,8 +1045,8 @@ config.libs = [ objects={ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m424Dll/main.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m424Dll/map.c"), - Object(NonMatching, "REL/m424Dll/ball.c"), - Object(NonMatching, "REL/m424Dll/claw.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m424Dll/ball.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m424Dll/claw.c"), }, ), Rel( diff --git a/include/REL/m424Dll.h b/include/REL/m424Dll.h index 885af5eb..5b3dfaa8 100644 --- a/include/REL/m424Dll.h +++ b/include/REL/m424Dll.h @@ -8,13 +8,41 @@ typedef struct _M424DllMainStruct { f32 zoom; } M424DllMainStruct; // sizeof 1C +typedef struct _M424DllBallStruct2 { + omObjData* unk0; + u8 unk4; + u8 unk5; + u8 unk6; + u16 unk8; + u16 unkA; + Mtx unkC; + Vec unk3C; + Vec unk48; + Vec unk54; + Vec unk60; + Vec unk6C; + Vec unk78; + Vec unk84; + u8 unk90; + u8 unk91; +} M424DllBallStruct2; // sizeof 0x94 + +extern M424DllBallStruct2 lbl_1_bss_60[9]; +extern u8 lbl_1_bss_58; +extern s16 lbl_1_bss_24[4]; + +f32 fn_1_1358(f32, f32); +f32 fn_1_1470(f32, f32, f32); omObjData* fn_1_1AB8(Process*); void fn_1_1B8C(void); f32 fn_1_213C(void); +void fn_1_252C(f32, s32); +void fn_1_2670(s32, s32); void fn_1_2720(Process*); void fn_1_2880(void); +Vec* fn_1_8A00(u8); s32 fn_1_8A2C(void); -void fn_1_93F0(Process*); +omObjData* fn_1_93F0(Process*); void fn_1_94A4(void); s32 fn_1_B804(void); s32 fn_1_B888(void); diff --git a/src/REL/m424Dll/ball.c b/src/REL/m424Dll/ball.c index 5deb34fc..800f1775 100644 --- a/src/REL/m424Dll/ball.c +++ b/src/REL/m424Dll/ball.c @@ -54,25 +54,6 @@ typedef struct _M424DllBallStruct { s32 unkEC; } M424DllBallStruct; // sizeof 0xF0 -typedef struct _M424DllBallStruct2 { - omObjData* unk0; - u8 unk4; - u8 unk5; - u8 unk6; - u16 unk8; - u16 unkA; - Mtx unkC; - Vec unk3C; - Vec unk48; - Vec unk54; - Vec unk60; - Vec unk6C; - Vec unk78; - Vec unk84; - u8 unk90; - u8 unk91; -} M424DllBallStruct2; // sizeof 0x94 - typedef struct _M424DllBallStruct3 { u8 unk0; M424DllBallStruct2* unk4; @@ -153,7 +134,7 @@ void fn_1_2720(Process* arg0) { } for (var_r31 = 0; var_r31 < 6; var_r29++, var_r31++) { - var_r30 = omAddObjEx(arg0, 0x3F, 2U, 5U, 0, fn_1_4220); + var_r30 = omAddObjEx(arg0, 0x3F, 2, 5, 0, fn_1_4220); lbl_1_bss_594[var_r31] = var_r30; var_r30->work[0] = var_r31; var_r30->work[1] = sp8[var_r29]; @@ -460,12 +441,12 @@ void fn_1_37FC(omObjData* object) { if (temp_r31->unkC != 0) { if (temp_r31->unkD != 0) { temp_r31->unk4C.y = 0.0f; - temp_r31->unkD = 0U; + temp_r31->unkD = 0; var_r28 = 5; var_r27 = 0; } else { temp_r31->unk4C.y *= -0.1f; - temp_r31->unkC = 0U; + temp_r31->unkC = 0; var_r28 = 4; var_r27 = 0; } @@ -689,7 +670,7 @@ u8 fn_1_48D0(omObjData* object, u8 arg1, u8 arg2) { temp_r31->unk8 = var_r30; Hu3DModelLayerSet(var_r30, 2); Hu3DModelShadowMapSet(var_r30); - Hu3DModelAttrSet(var_r30, 0x20000U); + Hu3DModelAttrSet(var_r30, 0x20000); Hu3DModelHiliteMapSet(var_r30, HuSprAnimRead(HuDataReadNum(0x370016, 0x10000000))); var_r30 = Hu3DModelCreate(HuDataSelHeapReadNum((arg1 * 2) + 0x370001, 0x10000000, HEAP_DATA)); temp_r31->unkA = var_r30; @@ -856,7 +837,7 @@ void fn_1_5018(void) { var_f30 = var_f29; var_r31 = &lbl_1_bss_60[0]; for (var_r28 = 0; var_r28 < lbl_1_bss_58; var_r28++, var_r31++) { - if ((var_r31->unk90 != 0) && (var_r31->unk4 < 4U)) { + if ((var_r31->unk90 != 0) && (var_r31->unk4 < 4)) { var_r31->unk90 = 0; if (var_r31->unk4 < 3) { if (var_r31->unk6C.y < 0.0f) { diff --git a/src/REL/m424Dll/claw.c b/src/REL/m424Dll/claw.c new file mode 100644 index 00000000..578750ce --- /dev/null +++ b/src/REL/m424Dll/claw.c @@ -0,0 +1,1357 @@ +#include "REL/m424Dll.h" + +#include "math.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/pad.h" + +// STRUCT +typedef struct _M424DllClawStruct { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; + s16 unk8; + s16 unkA; + s16 unkC; + s16 unkE; + s16 unk10; + s16 unk12; + s16 unk14; + s16 unk16; + s16 unk18; + f32 unk1C; + f32 unk20; + f32 unk24; + f32 unk28; + f32 unk2C; + Vec unk30; + Vec unk3C[12]; + Vec unkCC[12]; + s32 unk15C; + s32 unk160; + s32 unk164; + s32 unk168; + s32 unk16C; + s32 unk170; + Vec unk174; + f32 unk180; + s32 unk184; + s32 unk188; + s32 unk18C; + s32 unk190; + s32 unk194; + s32 unk198; + s32 unk19C; + s32 unk1A0; + s32 unk1A4; + f32 unk1A8; + s32 unk1AC; +} M424DllClawStruct; // sizeof 0x1B0 + +typedef struct _M424DllClawStruct2 { + s32 unk0; + f32 unk4; + f32 unk8; + f32 unkC; +} M424DllClawStruct2; // sizeof 0x10 + +typedef struct _M424DllClawStruct3 { + s32 unk0; + s32 unk4; +} M424DllClawStruct3; // sizeof 0x8 + +// BSS +Process* lbl_1_bss_6DC; +omObjData* lbl_1_bss_6D8; +s32 lbl_1_bss_6D0[2]; +s32 lbl_1_bss_6CC; +s32 lbl_1_bss_6C8; +s32 lbl_1_bss_6C4; +s32 lbl_1_bss_6C0; +M424DllClawStruct3 lbl_1_bss_640[0x10]; + +// DATA +Vec lbl_1_data_1E0[4] = { + { 950.0f, 275.0f, 0.0f }, + { 900.0f, 360.0f, 320.0f }, +{ 494.99996f, 220.0f, 494.99996f }, + { 0.0f, 225.0f, 0.0f }, +}; +f32 lbl_1_data_210[3] = { 12.0f, 11.0f, 17.5f }; +char lbl_1_data_21C[12][0x10] = { + "tsume10", "tsume11", "tsume12", + "tsume20", "tsume21", "tsume22", + "tsume30", "tsume31", "tsume32", + "tsume40", "tsume41", "tsume42", +}; +u8 lbl_1_data_2DC[12] = { + 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 +}; +s32 lbl_1_data_2E8[9] = { + 0x5F0000, 0x5F0002, 0x5F0003, 0x5F0005, 0x5F0006, + 0x5F0042, 0x5F0008, 0x5F0017, 0x5F0018 +}; +Vec lbl_1_data_30C = { 0.0f, 0.0f, 0.0f }; + +// PROTO +void fn_1_88E8(u8, f32, f32, f32); +void fn_1_8924(u8, s32); +u8 fn_1_8950(u8); +u8 fn_1_897C(u8); +u8 fn_1_89A8(u8); +Vec* fn_1_89D4(u8); +void fn_1_94D0(omObjData*); +void fn_1_9A64(omObjData*); +void fn_1_AE58(omObjData*); +void fn_1_AE64(omObjData*); +u16 fn_1_B79C(f32, f32, f32); +s32 fn_1_B9E0(Vec* arg0, Vec* arg1, f32 arg8, Vec* arg2, s32 arg3); +void fn_1_C604(s32, s32); +s32 fn_1_C878(s16, const char*, Mtx, s32); +void fn_1_C99C(HsfObject*, Mtx, const char*, Mtx); +void fn_1_CE74(s32); +void fn_1_CF00(Process*); +void fn_1_CF80(omObjData*); +s32 fn_1_D010(s32, s32); + +omObjData* fn_1_93F0(Process* arg0) { + lbl_1_bss_6DC = arg0; + lbl_1_bss_6D8 = omAddObjEx(arg0, 0x40, 5, 9, -1, fn_1_94D0); + lbl_1_bss_6CC = 0; + lbl_1_bss_6C8 = 0; + lbl_1_bss_6C4 = 0; + lbl_1_bss_6C0 = 0; + fn_1_CF00(arg0); + return lbl_1_bss_6D8; +} + +void fn_1_94A4(void) { + fn_1_AE58(lbl_1_bss_6D8); +} + +void fn_1_94D0(omObjData* arg0) { + s32 var_r29; + M424DllClawStruct* var_r31; + + var_r31 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1B0, 0x10000000); + memset(var_r31, 0, 0x1B0); + var_r31->unk0 = lbl_1_bss_24[3]; + var_r31->unk2 = GWPlayerCfg[var_r31->unk0].character; + var_r31->unk4 = GWPlayerCfg[var_r31->unk0].pad_idx; + var_r31->unk6 = GWPlayerCfg[var_r31->unk0].iscom; + var_r31->unk8 = GWPlayerCfg[var_r31->unk0].diff; + var_r31->unkA = var_r31->unkC = 0; + var_r31->unk10 = 0; + var_r31->unk12 = 0; + var_r31->unk14 = 0; + var_r31->unk16 = 0; + var_r31->unk18 = 0; + var_r31->unk1C = 0.0f; + var_r31->unk20 = 1.0f; + var_r31->unk24 = 0.0f; + var_r31->unk28 = 0.0f; + var_r31->unk2C = 1.0f; + var_r31->unk15C = 0; + var_r31->unk160 = 0; + var_r31->unk164 = 0; + var_r31->unk168 = -1; + var_r31->unk16C = -1; + var_r31->unk170 = -1; + var_r31->unk174 = lbl_1_data_30C; + // @todo how did this happen + var_r31->unk180 = (180.0 * (atan2(-102.864990234375, 424.559997558593750) / M_PI)); + if (var_r31->unk180 < 0.0f) { + var_r31->unk180 += 360.0f; + } + var_r31->unk184 = -1; + var_r31->unk30 = lbl_1_data_30C; + + for (var_r29 = 0; var_r29 < 0xC; var_r29++) { + var_r31->unk3C[var_r29] = lbl_1_data_30C; + var_r31->unkCC[var_r29] = lbl_1_data_30C; + } + var_r31->unk188 = 0; + var_r31->unk18C = -1; + var_r31->unk190 = 0; + var_r31->unk194 = 0; + var_r31->unk198 = 0; + var_r31->unk19C = 0; + var_r31->unk1A0 = 0; + var_r31->unk1A4 = 0; + var_r31->unk1A8 = 0.0f; + var_r31->unk1AC = 0; + arg0->model[0] = CharModelCreate(var_r31->unk2, 1); + Hu3DModelShadowSet(arg0->model[0]); + CharModelStepTypeSet(var_r31->unk2, 1); + for (var_r29 = 0; var_r29 < 9; var_r29++) { + arg0->motion[var_r29] = CharModelMotionCreate(var_r31->unk2, lbl_1_data_2E8[var_r29]); + } + var_r31->unkE = 5; + CharModelMotionSet(var_r31->unk2, arg0->motion[var_r31->unkE]); + arg0->model[1] = Hu3DModelCreateFile(0x37001D); + Hu3DModelShadowSet(arg0->model[1]); + arg0->model[2] = Hu3DModelCreateFile(0x37001E); + Hu3DModelShadowSet(arg0->model[2]); + arg0->model[3] = Hu3DModelCreateFile(0x37001F); + Hu3DModelShadowSet(arg0->model[3]); + arg0->model[4] = Hu3DModelCreateFile(0x370020); + Hu3DModelShadowSet(arg0->model[4]); + Hu3DModelScaleSet(arg0->model[4], 0.9f, 0.9f, 0.9f); + Hu3DModelHookSet(arg0->model[1], "hook1", arg0->model[2]); + Hu3DModelHookSet(arg0->model[2], "hook2", arg0->model[3]); + Hu3DModelHookSet(arg0->model[3], "hook3", arg0->model[4]); + Hu3DModelPosSet(arg0->model[1], 950.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[2], 0x40000002); + Hu3DModelAttrSet(arg0->model[4], 0x40000002); + arg0->trans.x = 950.0f; + arg0->trans.y = 275.0f; + arg0->trans.z = 0.0f; + arg0->rot.y = 270.0f; + var_r31->unk10 = 3; + var_r31->unk24 = 0.45f; + var_r31->unk12 = 0; + arg0->func = fn_1_9A64; +} + +void fn_1_9A64(omObjData* arg0) { + Mtx sp74; + Mtx sp44; + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + f32 var_f31; + f32 temp_f30; + M424DllClawStruct* temp_r31; + s32 var_r29; + s32 temp_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + + temp_r31 = arg0->data; + if (fn_1_FE0() == 4) { + temp_r31->unkC = HuPadBtn[temp_r31->unk4]; + temp_r31->unkA = HuPadBtnDown[temp_r31->unk4]; + if (temp_r31->unk6 != 0) { + fn_1_AE64(arg0); + } + } else { + temp_r31->unkC = 0; + temp_r31->unkA = 0; + } + if (fn_1_FE0() <= 1) { + var_r25 = -1; + } else { + var_r25 = temp_r31->unk10; + } + switch (var_r25) { + case 0: + if (fn_1_FE0() >= 4) { + temp_r31->unk10 = 1; + temp_r31->unk12 = 0; + } + break; + case 1: + if (fn_1_FE0() > 4) { + temp_r31->unk10 = 10; + temp_r31->unk12 = 0; + } else if ((temp_r31->unkA & 0x100) != 0) { + HuAudFXPlay(0x62A); + temp_r31->unk184 = HuAudFXPlay(0x621); + temp_r31->unk10 = 2; + temp_r31->unk12 = 0; + } + break; + case 2: + temp_r31->unk12++; + temp_r31->unk24 += ((1.0f / 60.0f) * temp_r31->unk20); + if (temp_r31->unk24 >= 1.0f) { + temp_r31->unk24 = 1.0f; + temp_r31->unk20 = -1.0f; + } else { + if (temp_r31->unk24 <= 0.0f) { + temp_r31->unk24 = 0.0f; + temp_r31->unk20 = 1.0f; + } + } + if (fn_1_FE0() > 4) { + if (temp_r31->unk184 != -1) { + HuAudFXStop(temp_r31->unk184); + temp_r31->unk184 = -1; + } + HuAudFXPlay(0x622); + temp_r31->unk10 = 10; + temp_r31->unk12 = 0; + } else if (((temp_r31->unkC & 0x100) == 0) || (temp_r31->unk12 >= 360.0f)) { + if (temp_r31->unk184 != -1) { + HuAudFXStop(temp_r31->unk184); + temp_r31->unk184 = -1; + } + HuAudFXPlay(0x622); + temp_r31->unk184 = HuAudFXPlay(0x62C); + temp_r31->unk168 = -1; + temp_r31->unk16C = -1; + temp_r31->unk10 = 3; + temp_r31->unk12 = 0; + } + break; + case 3: + temp_r31->unk12++; + if (temp_r31->unk15C == 0) { + temp_r31->unk28 += (1.0f / 60.0f); + } + if (temp_r31->unk28 > 1.0f) { + temp_r31->unk28 = 1.0f; + } + if (temp_r31->unk12 >= 0x3C) { + if (temp_r31->unk184 != -1) { + HuAudFXStop(temp_r31->unk184); + temp_r31->unk184 = -1; + } + HuAudFXPlay(0x62D); + HuAudFXPlay(0x625); + temp_r31->unk10 = 4; + temp_r31->unk12 = 0; + } + temp_r31->unk15C = 0; + break; + case 4: + temp_r31->unk12++; + if (temp_r31->unk160 == 0) { + temp_r31->unk2C -= (1.0f / 60.0f); + } + if (temp_r31->unk2C < 0.0f) { + temp_r31->unk2C = 0.0f; + } + if (temp_r31->unk12 >= 0x3C) { + temp_r31->unk10 = 5; + temp_r31->unk12 = 0; + } + temp_r31->unk160 = 0; + break; + case 5: + temp_r31->unk12++; + if (temp_r31->unk12 >= 6.0f) { + temp_r31->unk184 = HuAudFXPlay(0x62C); + if ((temp_r31->unk168 != -1)) { + var_r27 = fn_1_897C(temp_r31->unk168); + if (var_r27 != 0) { + var_r26 = fn_1_89A8(temp_r31->unk168); + HuAudCharVoicePlay(var_r26, 0x128); + } + } + temp_r31->unk10 = 6; + temp_r31->unk12 = 0; + } + break; + case 6: + temp_r31->unk12++; + temp_r31->unk28 -= (1.0f / 45.0f); + if (temp_r31->unk28 <= 0.0f) { + if (temp_r31->unk184 != -1) { + HuAudFXStop(temp_r31->unk184); + temp_r31->unk184 = -1; + } + HuAudFXPlay(0x62D); + temp_r31->unk28 = 0.0f; + if (temp_r31->unk168 != -1) { + var_r27 = fn_1_897C(temp_r31->unk168); + } else { + var_r27 = -1; + } + if (temp_r31->unk168 == -1) { + if (fn_1_FE0() > 4) { + temp_r31->unk10 = 10; + temp_r31->unk12 = 0; + } else { + temp_r31->unk10 = 8; + temp_r31->unk12 = 0; + HuAudFXPlay(0x625); + } + } else if (var_r27 == 0) { + temp_r31->unk10 = 8; + temp_r31->unk12 = 0; + HuAudFXPlay(0x625); + } else { + if (temp_r31->unk168 != -1) { + fn_1_252C(-0.01f, 0x3C); + fn_1_2670(0x75, 0); + } + HuAudFXPlay(0x62B); + temp_r31->unk184 = HuAudFXPlay(0x623); + temp_r31->unk10 = 7; + temp_r31->unk12 = 0; + } + } + break; + case 7: + if (arg0->rot.y < temp_r31->unk180) { + arg0->rot.y += 1.25f; + } else if (arg0->rot.y > temp_r31->unk180) { + arg0->rot.y = temp_r31->unk180; + } + var_f31 = 0.35f - temp_r31->unk24; + if (var_f31 > 0.0125f) { + temp_r31->unk24 += 0.0125f; + } else if (var_f31 < -0.0125f) { + temp_r31->unk24 -= 0.0125f; + } else { + temp_r31->unk24 = 0.35f; + } + if ((arg0->rot.y == temp_r31->unk180) && (0.35f == temp_r31->unk24)) { + if (temp_r31->unk184 != -1) { + HuAudFXStop(temp_r31->unk184); + temp_r31->unk184 = -1; + } + HuAudFXPlay(0x624); + HuAudFXPlay(0x625); + temp_r31->unk10 = 8; + temp_r31->unk12 = 0; + } + break; + case 8: + if ((temp_r31->unk12 == 0) && (temp_r31->unk168 != -1)) { + if (fn_1_897C(temp_r31->unk168) != 0) { + fn_1_8924(temp_r31->unk168, 4); + var_r26 = fn_1_89A8(temp_r31->unk168); + HuAudCharVoicePlay(var_r26, 0x123); + fn_1_D010(0x628, 30); + } else { + fn_1_8924(temp_r31->unk168, 2); + } + temp_r31->unk16C = temp_r31->unk168; + temp_r31->unk168 = -1; + } + temp_r31->unk12++; + temp_r31->unk2C += 0.033333335f; + if (temp_r31->unk2C > 1.0f) { + temp_r31->unk2C = 1.0f; + } + if (temp_r31->unk2C >= 1.0f) { + if (arg0->rot.y == temp_r31->unk180) { + temp_r31->unk184 = HuAudFXPlay(0x623); + } + if (temp_r31->unk16C != -1) { + if (fn_1_897C(temp_r31->unk16C) != 0) { + lbl_1_bss_6CC++; + } + } + temp_r31->unk10 = 9; + temp_r31->unk12 = 0; + } + break; + case 9: + temp_r31->unk12++; + if (arg0->rot.y > 270.0f) { + arg0->rot.y -= 1.25f; + } else if (arg0->rot.y < 270.0f) { + arg0->rot.y = 270.0f; + } + if (temp_r31->unk24 > 0.025f) { + temp_r31->unk24 -= 0.025f; + } else if (temp_r31->unk24 < 0.05f) { + temp_r31->unk24 = 0.0f; + } + if ((270.0f == arg0->rot.y) && (0.0f == temp_r31->unk24)) { + if (temp_r31->unk184 != -1) { + HuAudFXStop(temp_r31->unk184); + temp_r31->unk184 = -1; + HuAudFXPlay(0x624); + } + temp_r31->unk20 = 1.0f; + temp_r31->unk10 = 1; + temp_r31->unk12 = 0; + } + break; + case 10: + if (fn_1_B888() != 0) { + temp_r31->unkE = 5; + CharModelMotionSet(temp_r31->unk2, arg0->motion[temp_r31->unkE]); + temp_r31->unkE = 3; + CharModelMotionShiftSet(temp_r31->unk2, arg0->motion[temp_r31->unkE], 0.0f, 8.0f, 0U); + temp_r31->unk16 = 0; + temp_r31->unk14 = 0; + temp_r31->unk1C = lbl_1_data_210[0]; + temp_r31->unk18 = fn_1_B79C(lbl_1_data_1E0[0].y, lbl_1_data_1E0[1].y, temp_r31->unk1C); + temp_r31->unk10 = 11; + temp_r31->unk12 = 0; + } else { + temp_r31->unk10 = 13; + temp_r31->unk12 = 0; + } + break; + case 11: + var_r29 = temp_r31->unk14; + if (var_r29 > 2) { + var_r29 = 2; + } + if (temp_r31->unk16 == 0) { + temp_r31->unk12++; + sp14 = lbl_1_data_1E0[var_r29]; + sp8 = lbl_1_data_1E0[var_r29 + 1]; + arg0->rot.y = fn_1_1470(atan2d((sp8.x - arg0->trans.x), (sp8.z - arg0->trans.z)), arg0->rot.y, 10.0f); + var_f31 = (f32)temp_r31->unk12 / temp_r31->unk18; + arg0->trans.x = sp14.x + (var_f31 * (sp8.x - sp14.x)); + arg0->trans.z = sp14.z + (var_f31 * (sp8.z - sp14.z)); + arg0->trans.y += temp_r31->unk1C; + temp_r31->unk1C -= 0.65333337f; + if (temp_r31->unk14 == 2) { + if ((temp_r31->unk12 >= (0.4f * temp_r31->unk18)) && (temp_r31->unkE != 6) && (CharModelMotionShiftIDGet(temp_r31->unk2) == -1)) { + temp_r31->unkE = 6; + CharModelMotionShiftSet(temp_r31->unk2, arg0->motion[temp_r31->unkE], 0.0f, 8.0f, 0); + } + } + if (temp_r31->unk12 >= temp_r31->unk18) { + arg0->trans.x = sp8.x; + arg0->trans.y = sp8.y; + arg0->trans.z = sp8.z; + temp_r31->unkE = 4; + CharModelMotionShiftSet(temp_r31->unk2, arg0->motion[temp_r31->unkE], 0.0f, 8.0f, 0U); + temp_r31->unk12 = 0; + temp_r31->unk16 ^= 1; + if (++temp_r31->unk14 >= 3) { + temp_r31->unk10 = 0xC; + } + } + } else { + sp14 = lbl_1_data_1E0[var_r29]; + sp8 = lbl_1_data_1E0[var_r29 + 1]; + var_f31 = atan2d((sp8.x - arg0->trans.x), (sp8.z - arg0->trans.z)); + arg0->rot.y = fn_1_1470(var_f31, arg0->rot.y, 10.0f); + if ((fn_1_1358(var_f31, arg0->rot.y) < 1.0f) && (CharModelMotionShiftIDGet(temp_r31->unk2) == -1)) { + temp_r31->unkE = 3; + CharModelMotionShiftSet(temp_r31->unk2, arg0->motion[temp_r31->unkE], 0.0f, 8.0f, 0); + temp_r31->unk1C = lbl_1_data_210[var_r29]; + temp_r31->unk18 = fn_1_B79C(sp14.y, sp8.y, temp_r31->unk1C); + temp_r31->unk12 = 0; + temp_r31->unk16 ^= 1; + } + } + break; + case 12: + if ((temp_r31->unkE != 0) && (CharModelMotionShiftIDGet(temp_r31->unk2) == -1)) { + temp_r31->unkE = 0; + CharModelMotionShiftSet(temp_r31->unk2, arg0->motion[temp_r31->unkE], 0.0f, 8.0f, 0x40000008); + } + arg0->rot.y = fn_1_1470(0.0f, arg0->rot.y, 10.0f); + if ((fn_1_1358(0.0f, arg0->rot.y) < 1.0f) && (temp_r31->unkE == 0)) { + temp_r31->unk10 = 0xD; + temp_r31->unk12 = 0; + } + break; + case 13: + if (fn_1_FE0() >= 7) { + if (fn_1_B888() != 0) { + temp_r31->unk10 = 14; + temp_r31->unk12 = 0; + } else { + temp_r31->unk10 = 15; + temp_r31->unk12 = 0; + } + } + break; + case 14: + if ((temp_r31->unkE != 7) && (CharModelMotionShiftIDGet(temp_r31->unk2) == -1)) { + temp_r31->unkE = 7; + CharModelMotionShiftSet(temp_r31->unk2, arg0->motion[temp_r31->unkE], 0.0f, 8.0f, 0); + } + break; + case 15: + break; + } + if (temp_r31->unk10 <= 9) { + Hu3DModelRotSet(arg0->model[1], 0.0f, 90.0f + arg0->rot.y, 0.0f); + } + temp_r28 = arg0->model[2]; + Hu3DMotionTimeSet(temp_r28, temp_r31->unk24 * Hu3DMotionMaxTimeGet(temp_r28)); + fn_1_CE74(temp_r28); + temp_f30 = 0.2f + (0.8f * temp_r31->unk28); + Hu3DModelScaleSet(arg0->model[3], 1.0f, temp_f30, 1.0f); + Hu3DModelScaleSet(arg0->model[4], 1.0f, 1.0f / temp_f30, 1.0f); + temp_r28 = arg0->model[4]; + Hu3DMotionTimeSet(temp_r28, temp_r31->unk2C * Hu3DMotionMaxTimeGet(temp_r28)); + fn_1_CE74(temp_r28); + fn_1_C878(arg0->model[1], "hook1", sp74, 0); + fn_1_C878(arg0->model[2], "hook2", sp74, 1); + fn_1_C878(arg0->model[3], "hook3", sp74, 1); + PSMTXCopy(sp74, sp44); + temp_r31->unk30.x = sp74[0][3]; + temp_r31->unk30.y = sp74[1][3]; + temp_r31->unk30.z = sp74[2][3]; + + for (var_r29 = 0; var_r29 < 0xC; var_r29++) { + PSMTXCopy(sp44, sp74); + fn_1_C878(arg0->model[4], lbl_1_data_21C[var_r29], sp74, 1); + temp_r31->unkCC[var_r29] = temp_r31->unk3C[var_r29]; + temp_r31->unk3C[var_r29].x = sp74[0][3]; + temp_r31->unk3C[var_r29].y = sp74[1][3]; + temp_r31->unk3C[var_r29].z = sp74[2][3]; + } + if ((temp_r31->unk168 != -1) && (temp_r31->unk10 >= 6)) { + sp2C.x = 0.0f; + sp2C.y = temp_r31->unk174.y; + sp2C.z = 0.0f; + PSVECSubtract(&temp_r31->unk174, &sp2C, &sp20); + var_f31 = PSVECMag(&sp20); + if (var_f31 != 0.0f) { + PSVECNormalize(&sp20, &sp20); + PSVECScale(&sp20, &sp20, 0.9f * var_f31); + PSVECAdd(&sp2C, &sp20, &temp_r31->unk174); + } + PSVECAdd(&temp_r31->unk30, &temp_r31->unk174, &sp38); + fn_1_88E8(temp_r31->unk168, sp38.x, sp38.y, sp38.z); + } + temp_r31->unk164 = 1; +} + +void fn_1_AE58(omObjData* arg0) { + arg0->func = NULL; +} + +f32 lbl_1_data_36C[4][2] = { + 30.0f, 24.0f, + 24.0f, 18.0f, + 12.0f, 6.0f, + 6.0f, 0.0f +}; + +f32 lbl_1_data_38C[4][2] = { + 0.2f, 0.15f, + 0.15f, 0.1f, + 0.1f, 0.05f, + 0.05f, 0.0f +}; + +void fn_1_AE64(omObjData* arg0) { + M424DllClawStruct2 sp20[8]; + M424DllClawStruct2 sp10; + s32 spC; + f32 var_f31; + f32 var_f29; + f32 temp_f28; + f32 temp_f27; + f32 temp_f26; + f32 var_f25; + f32 var_f24; + s32 temp_r24; + s32 temp_r23; + M424DllClawStruct* temp_r31; + Vec* var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + M424DllBallStruct2* var_r26; + s32 var_r25; + + spC = 0; + temp_r31 = arg0->data; + var_r26 = &lbl_1_bss_60[0]; + if (var_r26) { + temp_r31->unkC = 0; + temp_r31->unkA = 0; + switch (temp_r31->unk10) { + case 1: + if (temp_r31->unk188 == 0) { + temp_r31->unk188 = 1; + temp_r31->unk18C = -1; + temp_r31->unk190 = 0; + temp_r31->unk194 = 0; + temp_r31->unk198 = 0; + temp_r31->unk19C = 0; + temp_r31->unk1A0 = 0; + temp_r31->unk1A4 = 0; + temp_r31->unk1A8 = 0.0f; + } + if (temp_r31->unk18C == -1) { + for (var_r29 = 0, var_r28 = 0; var_r29 < lbl_1_bss_58; var_r29++, var_r26++) { + if ((fn_1_897C(var_r29) != 0) && (fn_1_8950(var_r29) <= 2)) { + var_r30 = fn_1_89D4(var_r29); + var_f31 = atan2d(var_r30->x, var_r30->z); + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + if (var_r28 < 8) { + if (var_f31 >= -90.0f) { + if (var_f31 <= 45.0f) { + sp20[var_r28].unk0 = var_r29; + sp20[var_r28].unkC = var_f31; + sp20[var_r28].unk4 = var_r30->x; + sp20[var_r28].unk8 = var_r30->z; + var_r28++; + } + } + } + } + } + if (var_r28 != 0) { + for (var_r29 = 0; var_r29 < (var_r28 - 1); var_r29++) { + var_r27 = var_r29 + 1; + for (;var_r27 < var_r28; var_r27++) { + if (sp20[var_r29].unkC < sp20[var_r27].unkC) { + sp10 = sp20[var_r29]; + sp20[var_r29] = sp20[var_r27]; + sp20[var_r27] = sp10; + } + } + } + temp_r31->unk18C = sp20[0].unk0; + temp_r31->unk1A8 = sp20[0].unkC; + temp_r31->unk19C = 0; + temp_r31->unk1A0 = 0; + temp_r31->unk1A4 = 0; + temp_r31->unk1AC = 0; + } + } + if (temp_r31->unk18C != -1) { + var_r30 = fn_1_89D4(temp_r31->unk18C); + var_f31 = atan2d(var_r30->x, var_r30->z); + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + if (var_f31 >= 30.0f) { + if (temp_r31->unk19C != 0) { + temp_f27 = lbl_1_data_36C[temp_r31->unk8][0]; + temp_f26 = lbl_1_data_36C[temp_r31->unk8][1]; + temp_r24 = ((temp_f26 - temp_f27) * (temp_f27 * (0.007874016f * (frand() & 0x7F)))); + temp_f27 = lbl_1_data_38C[temp_r31->unk8][0]; + temp_f26 = lbl_1_data_38C[temp_r31->unk8][1]; + temp_r23 = ((temp_f26 - temp_f27) * (temp_f27 * (0.007874016f * (frand() & 0x7F)))); + temp_r31->unk190 = ((3.0f * temp_r31->unk1A4) + temp_r24); + temp_f28 = (var_r30->x * var_r30->x) + (var_r30->z * var_r30->z); + var_f29 = sqrtf(temp_f28); + var_f29 = (var_f29 - 350.0f) / 250.0f + temp_r23; + if (var_f29 < 0.0f) { + var_f29 = 0.0f; + } else if (var_f29 > 1.0f) { + var_f29 = 1.0f; + } + temp_r31->unk194 = (60.0f * (1.0f - var_f29)); + var_f25 = (1.5f + (-1.5f * var_f29)); + temp_r31->unk190 -= (s32)(60.0f * var_f25); + var_f25 = (1.0f + (-1.1f * var_f29)); + temp_r31->unk198 = (60.0f * var_f25); + temp_r31->unk19C = 0; + temp_r31->unk1A0 = 0; + temp_r31->unk1AC = 0; + temp_r31->unk1AC = (temp_r31->unk1AC + (60.0f * (1.0f - var_f29))); + } + if (++temp_r31->unk1AC >= (temp_r31->unk190 - temp_r31->unk198)) { + temp_r31->unkA |= 0x100; + temp_r31->unkC |= 0x100; + temp_r31->unk1AC = 0; + return; + } + } else { + if (var_f31 >= (15.0f + temp_r31->unk1A8)) { + temp_r31->unk1A0++; + temp_r31->unk1A8 = var_f31; + temp_r31->unk1A4 = (temp_r31->unk19C / temp_r31->unk1A0); + return; + } + temp_r31->unk19C++; + return; + } + } + break; + case 2: + if (temp_r31->unk18C != -1) { + var_r25 = 1; + if (++temp_r31->unk1AC >= temp_r31->unk194) { + var_r25 = 0; + } + } else { + var_r25 = 0; + } + if (var_r25 != 0) { + temp_r31->unkC |= 0x100; + } + temp_r31->unk188 = 0; + break; + } + } +} + +u16 fn_1_B79C(f32 arg0, f32 arg1, f32 arg2) { + f32 var_f31; + f32 var_f3; + u16 var_r31; + + var_r31 = 0; + for (var_f31 = arg0; arg2 > 0.0f || var_f31 > arg1; var_r31++) { + var_f31 += arg2; + arg2 -= 0.65333337f; + } + return var_r31; +} + +s32 fn_1_B804(void) { + M424DllClawStruct* temp_r31; + + if (!lbl_1_bss_6D8) { + return 0; + } + if (!lbl_1_bss_6D8->data) { + return 0; + } + temp_r31 = lbl_1_bss_6D8->data; + if ((temp_r31->unk10 >= 1) && (temp_r31->unk10 < 6)) { + return 1; + } + return 0; +} + +s32 fn_1_B888(void) { + if (lbl_1_bss_6CC >= 3) { + return 1; + } else { + return 0; + } +} + +s32 fn_1_B8AC(void) { + M424DllClawStruct* temp_r31; + + if (!lbl_1_bss_6D8) { + return 0; + } + if (!lbl_1_bss_6D8->data) { + return 0; + } + + temp_r31 = lbl_1_bss_6D8->data; + if (temp_r31->unk10 >= 10) { + return 1; + } + return 0; +} + +s32 fn_1_B924(void) { + M424DllClawStruct* temp_r31; + + if (!lbl_1_bss_6D8) { + return 0; + } + if (!lbl_1_bss_6D8->data) { + return 0; + } + + temp_r31 = lbl_1_bss_6D8->data; + if (temp_r31->unk10 >= 13) { + return 1; + } + return 0; +} + +void fn_1_B99C(Vec* arg0, Vec* arg1, f32 arg8, Vec* arg2) { + fn_1_B9E0(arg0, arg1, arg8, arg2, 0x10); +} + +s32 fn_1_B9E0(Vec* arg0, Vec* arg1, f32 arg8, Vec* arg2, s32 arg3) { + Vec sp60; + Vec sp54; + Vec sp48; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + f32 temp_f30; + f32 var_f29; + f32 temp_f28; + f32 temp_f27; + f32 temp_f26; + f32 var_f25; + f32 var_f24; + f32 var_f23; + M424DllClawStruct* temp_r31; + s32 var_r29; + s32 var_r28; + s32 var_r26; + omObjData* var_r24; + s32 var_r23; + + var_r23 = 1; + var_r28 = 0; + var_r24 = lbl_1_bss_6D8; + temp_r31 = var_r24->data; + PSVECAdd(arg0, arg1, &sp24); + spC = *arg1; + *arg2 = *arg0; + temp_f30 = 5.0f + arg8; + if (temp_r31->unk164 == 0) { + return 0; + } + switch (temp_r31->unk10) { + case 3: + for (var_r29 = 0; var_r29 < 0xC; var_r29++) { + if (var_r28 != 0) { + sp24 = *arg2; + PSVECSubtract(&sp24, arg0, &spC); + } + PSVECSubtract(&sp24, &temp_r31->unk3C[var_r29], &sp18); + var_f29 = PSVECMag(&sp18); + if (var_f29 < temp_f30) { + if (0.0f == var_f29) { + var_f29 = temp_f30; + sp18.x = 0.0f; + sp18.y = 0.0f; + sp18.z = 1.0f; + } + var_f23 = sqrtf((sp18.x * sp18.x) + (sp18.z * sp18.z)); + if ((temp_r31->unk3C[var_r29].y > sp24.y) && (var_f23 < 17.599999999999998)) { + temp_r31->unk15C = 1; + } else { + PSVECNormalize(&sp18, &sp18); + PSVECScale(&sp18, &sp18, temp_f30); + PSVECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); + } + var_r28 = 1; + } + } + break; + default: + for (var_r29 = 0; var_r29 < 0xC; var_r29++) { + if (var_r28 != 0) { + sp24 = *arg2; + PSVECSubtract(&sp24, arg0, &spC); + } + var_r26 = 0; + sp60 = temp_r31->unk3C[var_r29]; + PSVECAdd(&temp_r31->unkCC[var_r29], &spC, &sp54); + PSVECSubtract(&sp60, &sp54, &sp18); + PSVECSubtract(&sp24, &sp54, &sp48); + temp_f26 = (sp18.z * sp18.z) + ((sp18.x * sp18.x) + (sp18.y * sp18.y)); + if (temp_f26 != 0.0f) { + var_f24 = (sp18.x * sp48.x) + (sp18.y * sp48.y) + (sp18.z * sp48.z); + temp_f27 = var_f24 / temp_f26; + if (temp_f27 >= 0.0f) { + if (temp_f27 <= 1.0f) { + PSVECScale(&sp18, &sp18, temp_f27); + PSVECAdd(&sp54, &sp18, &sp3C); + PSVECSubtract(&sp24, &sp3C, &sp30); + var_f29 = PSVECMag(&sp30); + if (var_f29 == 0.0f) { + if (PSVECMag(&sp18) <= 0.0f) { + sp18.x = sp18.y = 0.0f; + sp18.z = 1.0f; + } + PSVECNormalize(&sp18, &sp30); + PSVECScale(&sp30, &sp30, temp_f30); + PSVECAdd(&sp60, &sp30, arg2); + var_r28 = 1; + var_r26 = 1; + } else if (var_f29 < temp_f30) { + if (PSVECMag(&sp30) <= 0.0f) { + + sp30.x = sp30.y = 0.0f; + sp30.z = 1.0f; + } + PSVECNormalize(&sp30, &sp30); + PSVECScale(&sp30, &sp30, temp_f30); + PSVECAdd(&sp3C, &sp30, arg2); + var_r28 = 1; + var_r26 = 1; + } + } + } + } + if (var_r26 == 0) { + PSVECSubtract(&sp24, &sp60, &sp18); + var_f29 = PSVECMag(&sp18); + if (var_f29 < temp_f30) { + if (var_f29 <= 0.0f) { + sp18.x = sp18.y = 0.0f; + sp18.z = 1.0f; + } + PSVECNormalize(&sp18, &sp18); + PSVECScale(&sp18, &sp18, temp_f30); + PSVECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); + var_r28 = 1; + var_r26 = 1; + } + } + if (var_r26 == 0) { + PSVECSubtract(&sp24, &sp54, &sp18); + var_f29 = PSVECMag(&sp18); + if (var_f29 < temp_f30) { + if (var_f29 <= 0.0f) { + sp18.x = sp18.y = 0.0f; + sp18.z = 1.0f; + } + PSVECNormalize(&sp18, &sp18); + PSVECScale(&sp18, &sp18, temp_f30); + PSVECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); + var_r28 = 1; + var_r26 = 1; + } + } + if ((lbl_1_data_2DC[var_r29] != 0) && (var_r26 == 0)) { + var_r23 = 0; + } + } + if ((temp_r31->unk10 == 4) && (var_r23 != 0)) { + arg2->x = temp_r31->unk30.x; + arg2->y = arg0->y; + arg2->z = temp_r31->unk30.z; + arg3 = 0; + temp_r31->unk160 = 1; + } + break; + case 0: + case 1: + case 2: + case 9: + break; + } + if (var_r28 != 0) { + if (--arg3 > 0) { + sp24 = *arg2; + PSVECSubtract(&sp24, arg0, &spC); + if (fn_1_B9E0(arg0, &spC, arg8, &sp24, arg3) != 0) { + *arg2 = sp24; + } + } + } + + (void)temp_f30; // @todo fix + (void)temp_f30; + return var_r28; +} + +s32 fn_1_C210(Vec* arg0) { + Vec sp1C; + Vec sp10; + f32 spC; + M424DllClawStruct* temp_r31; + omObjData* var_r30; + s32 var_r29; + + var_r29 = 0; + var_r30 = lbl_1_bss_6D8; + temp_r31 = var_r30->data; + if (temp_r31->unk164 == 0) { + return 0; + } + switch (temp_r31->unk10) { + case 5: + sp1C.x = temp_r31->unk30.x; + sp1C.y = -120.00001f + temp_r31->unk30.y; + sp1C.z = temp_r31->unk30.z; + PSVECSubtract(arg0, &sp1C, &sp10); + if ((spC = PSVECMag(&sp10)) < 50.0f) { + var_r29 = 1; + } + } + return var_r29; +} + +void fn_1_C2E0(s32 arg0) { + Vec sp4C; + Vec sp40; + Vec sp34; + Vec sp28; + Vec* spC; + M424DllBallStruct2* temp_r27; + Vec* temp_r28; + M424DllClawStruct* temp_r31; + s32 var_r30; + s32 var_r26; + omObjData* var_r25; + + if ((u8)omPauseChk() != 0U) return; + + var_r25 = lbl_1_bss_6D8; + if (lbl_1_bss_6D8) { + temp_r31 = var_r25->data; + if (temp_r31 && (temp_r31->unk164 != 0)) { + temp_r27 = &lbl_1_bss_60[0]; + if (temp_r27) { + var_r26 = 0x10; + + for (var_r30 = 0; var_r30 < lbl_1_bss_58; var_r30++) { + temp_r27 = &lbl_1_bss_60[var_r30]; + if ((fn_1_8950(var_r30) == 3) || (fn_1_8950(var_r30) == 4)) continue; + temp_r28 = fn_1_89D4(var_r30); + spC = fn_1_8A00(var_r30); + sp28 = *temp_r28; + sp4C = temp_r27->unk60; + PSVECSubtract(temp_r28, &sp4C, &sp40); + if (fn_1_B9E0(&sp4C, &sp40, 100.0f, &sp34, 0x10) != 0) { + *temp_r28 = sp34; + sp4C = sp34; + if ((temp_r27->unk4 < 3) && (fn_1_907C(&sp4C, &sp34) != 0)) { + *temp_r28 = sp34; + sp4C = sp34; + } + fn_1_C604(var_r30, 0x20); + if ((sp28.y != sp4C.y) && (var_r30 != temp_r31->unk168) && (var_r30 != temp_r31->unk16C)) { + temp_r28->y = sp28.y; + sp4C.y = sp28.y; + if (var_r26 > 0) { + var_r30--; + var_r26--; + continue; + } + } + } + if (temp_r31->unk168 == -1) { + if (fn_1_C210(&sp4C) != 0) { + temp_r31->unk168 = var_r30; + temp_r31->unk170 = fn_1_897C(var_r30); + PSVECSubtract(&sp4C, &temp_r31->unk30, &temp_r31->unk174); + fn_1_88E8(temp_r31->unk168, sp4C.x, sp4C.y, sp4C.z); + } + } + var_r26 = 0x10; + } + } + } + } +} + +void fn_1_C604(s32 arg0, s32 arg1) { + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + M424DllBallStruct2* sp8; + Vec* var_r31; + f32 temp_f31; + f32 var_f30; + s32 var_r30; + M424DllBallStruct2* var_r28; + Vec* var_r27; + + sp8 = &lbl_1_bss_60[var_r30]; + var_r27 = fn_1_89D4(arg0); + sp30 = *var_r27; + for (var_r30 = 0; var_r30 < lbl_1_bss_58; var_r30++) { + if ((var_r30 != arg0) && (fn_1_8950(var_r30) < 3)) { + var_r28 = &lbl_1_bss_60[var_r30]; + var_r31 = fn_1_89D4(var_r30); + sp24 = *var_r31; + PSVECSubtract(&sp24, &sp30, &sp18); + var_f30 = PSVECMag(&sp18); + if (var_f30 < 200.0f) { + if (var_f30 > 0.0f) { + temp_f31 = 1.0f / var_f30; + sp18.x *= temp_f31; + sp18.y *= temp_f31; + sp18.z *= temp_f31; + } else { + sp18.x = 0.0f; + sp18.y = 0.0f; + sp18.z = 1.0f; + } + temp_f31 = 1.0f + (200.0f - var_f30); + sp24.x += (sp18.x * temp_f31); + sp24.z += (sp18.z * temp_f31); + var_r31->x = sp24.x; + var_r31->z = sp24.z; + if ((var_r28->unk4 < 3) && (fn_1_907C(&sp24, &spC) != 0)) { + var_r31->x = sp24.x = spC.x; + var_r31->z = sp24.z = spC.z; + } + if (arg1 > 0) { + arg1--; + fn_1_C604(var_r30, arg1); + } + } + } + } +} + +void fn_1_C854(void) { + fn_1_C2E0(0); +} + +s32 fn_1_C878(s16 arg0, const char* arg1, Mtx arg2, s32 arg3) { + Mtx sp44; + Mtx sp14; + HsfData* temp_r30; + ModelData* temp_r31; + + temp_r31 = &Hu3DData[arg0]; + temp_r30 = temp_r31->hsfData; + lbl_1_bss_6C8 = 0; + if (temp_r31->unk_08 != -1) { + lbl_1_bss_6C4 = 1; + } else { + lbl_1_bss_6C4 = 0; + } + mtxRot(sp14, temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z); + PSMTXScale(sp44, temp_r31->scale.x, temp_r31->scale.y, temp_r31->scale.z); + PSMTXConcat(sp14, sp44, sp44); + mtxTransCat(sp44, temp_r31->pos.x, temp_r31->pos.y, temp_r31->pos.z); + if (arg3 != 0) { + PSMTXConcat(arg2, sp44, sp44); + } + fn_1_C99C(temp_r30->root, sp44, arg1, arg2); + return lbl_1_bss_6C8; +} + +void fn_1_C99C(HsfObject* arg0, Mtx arg1, const char* arg2, Mtx arg3) { + Mtx spF8; + Mtx spC8; + Mtx sp98; + Mtx sp68; + Mtx sp38; + Mtx sp8; + HsfTransform* var_r31; + HsfTransform* var_r30; + HsfTransform* var_r29; + HsfObject* temp_r28; + HsfObject* temp_r27; + u32 var_r25; + u32 var_r24; + u32 var_r23; + + if (lbl_1_bss_6C8 == 0) { + if (lbl_1_bss_6C4 != 0) { + var_r31 = &arg0->data.curr; + } else { + var_r31 = &arg0->data.base; + } + if ((var_r31->scale.x <= 0.0f) && (var_r31->scale.y <= 0.0f) && (var_r31->scale.z <= 0.0f)) { + PSMTXCopy(arg1, spF8); + OSReport("OBJ MTX CHECK ERROR %s \n", arg0->name); + } else { + mtxRot(spC8, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); + PSMTXScale(spF8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + PSMTXConcat(spC8, spF8, spF8); + mtxTransCat(spF8, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); + PSMTXConcat(arg1, spF8, spF8); + } + if (lbl_1_bss_6C0 != 0) { + OSReport("%s \n", arg0->name); + } + if (strcmp(arg2, arg0->name) == 0) { + PSMTXCopy(spF8, arg3); + lbl_1_bss_6C8 = 1; + } + for (var_r25 = 0; var_r25 < arg0->data.childrenCount; var_r25++) { + temp_r28 = arg0->data.children[var_r25]; + if (lbl_1_bss_6C8 == 0) { + if (lbl_1_bss_6C4 != 0) { + var_r30 = &temp_r28->data.curr; + } else { + var_r30 = &temp_r28->data.base; + } + if ((var_r30->scale.x <= 0.0f) && (var_r30->scale.y <= 0.0f) && (var_r30->scale.z <= 0.0f)) { + PSMTXCopy(spF8, sp68); + OSReport("OBJ MTX CHECK ERROR %s \n", temp_r28->name); + } else { + mtxRot(sp98, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); + PSMTXScale(sp68, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); + PSMTXConcat(sp98, sp68, sp68); + mtxTransCat(sp68, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); + PSMTXConcat(spF8, sp68, sp68); + } + if (lbl_1_bss_6C0 != 0) { + OSReport("%s \n", temp_r28->name); + } + if (strcmp(arg2, temp_r28->name) == 0) { + PSMTXCopy(sp68, arg3); + lbl_1_bss_6C8 = 1; + } + for (var_r24 = 0; var_r24 < temp_r28->data.childrenCount; var_r24++) { + temp_r27 = temp_r28->data.children[var_r24]; + if (lbl_1_bss_6C8 == 0) { + if (lbl_1_bss_6C4 != 0) { + var_r29 = &temp_r27->data.curr; + } else { + var_r29 = &temp_r27->data.base; + } + if ((var_r29->scale.x <= 0.0f) && (var_r29->scale.y <= 0.0f) && (var_r29->scale.z <= 0.0f)) { + PSMTXCopy(sp68, sp8); + OSReport("OBJ MTX CHECK ERROR %s \n", temp_r27->name); + } else { + mtxRot(sp38, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z); + PSMTXScale(sp8, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z); + PSMTXConcat(sp38, sp8, sp8); + mtxTransCat(sp8, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); + PSMTXConcat(sp68, sp8, sp8); + } + if (lbl_1_bss_6C0 != 0) { + OSReport("%s \n", temp_r27->name); + } + if (strcmp(arg2, temp_r27->name) == 0) { + PSMTXCopy(sp8, arg3); + lbl_1_bss_6C8 = 1; + } + for (var_r23 = 0; var_r23 < temp_r27->data.childrenCount; var_r23++) { + fn_1_C99C(temp_r27->data.children[var_r23], sp8, arg2, arg3); + } + } + } + } + } + } +} + +void fn_1_CE74(s32 arg0) { + ModelData* temp_r31; + + temp_r31 = &Hu3DData[arg0]; + if (temp_r31->unk_08 != -1) { + Hu3DMotionExec(arg0, temp_r31->unk_08, temp_r31->unk_64, 0); + } + if (temp_r31->unk_0C != -1) { + Hu3DSubMotionExec(arg0); + } + if (temp_r31->hsfData->cenvCnt != 0) { + EnvelopeProc(temp_r31->hsfData); + } +} + +void fn_1_CF00(Process* arg0) { + M424DllClawStruct3* var_r31; + s32 var_r30; + + omAddObjEx(arg0, 0x40, 0, 0, -1, fn_1_CF80); + var_r31 = &lbl_1_bss_640[0]; + + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + var_r31->unk0 = -1; + var_r31->unk4 = -1; + } +} + +void fn_1_CF80(omObjData* arg0) { + M424DllClawStruct3* var_r31; + s32 var_r30; + + var_r31 = &lbl_1_bss_640[0]; + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if ((var_r31->unk0 >= 0) && (var_r31->unk4 > 0)) { + if (--var_r31->unk4 <= 0) { + HuAudFXPlay(var_r31->unk0); + var_r31->unk0 = -1; + var_r31->unk4 = -1; + } + } + } +} + +s32 fn_1_D010(s32 arg0, s32 arg1) { + M424DllClawStruct3* var_r31; + s32 var_r30; + + var_r31 = &lbl_1_bss_640[0]; + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if (var_r31->unk0 == -1) break; + } + if (var_r30 >= 0x10) { + return -1; + } + var_r31->unk0 = arg0; + var_r31->unk4 = arg1; + return var_r30; +} From 2121a31f1d4e354a6ad75284cff7be3293e1bec9 Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Tue, 7 Jan 2025 17:17:38 +0100 Subject: [PATCH 236/311] Match m425Dll except for one function with an inline (#511) --- config/GMPE01_00/rels/m425Dll/symbols.txt | 387 +-- include/REL/m425Dll.h | 15 + src/REL/m425Dll/main.c | 1685 +++++++++++++ src/REL/m425Dll/thwomp.c | 2768 +++++++++++++++++++++ 4 files changed, 4662 insertions(+), 193 deletions(-) create mode 100644 include/REL/m425Dll.h create mode 100644 src/REL/m425Dll/main.c create mode 100644 src/REL/m425Dll/thwomp.c diff --git a/config/GMPE01_00/rels/m425Dll/symbols.txt b/config/GMPE01_00/rels/m425Dll/symbols.txt index cae3368f..627df9e1 100644 --- a/config/GMPE01_00/rels/m425Dll/symbols.txt +++ b/config/GMPE01_00/rels/m425Dll/symbols.txt @@ -65,211 +65,212 @@ fn_1_11A74 = .text:0x00011A74; // type:function size:0x46C fn_1_11EE0 = .text:0x00011EE0; // type:function size:0x7B4 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x10 data:4byte -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC0 -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x10 data:4byte -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x10 data:4byte -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x20 data:4byte -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:double -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 data:double -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC0 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x10 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x10 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 scope:local data:double +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x20 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 scope:local data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 scope:local data:double +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 scope:local data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 scope:local data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte lbl_1_data_4 = .data:0x00000004; // type:object size:0xC lbl_1_data_10 = .data:0x00000010; // type:object size:0xC -lbl_1_data_1C = .data:0x0000001C; // type:object size:0x24 +lbl_1_data_1C = .data:0x0000001C; // type:object size:0x24 data:float lbl_1_data_40 = .data:0x00000040; // type:object size:0x4 -lbl_1_data_44 = .data:0x00000044; // type:object size:0x23 data:string +lbl_1_data_44 = .data:0x00000044; // type:object size:0x23 scope:local data:string lbl_1_data_68 = .data:0x00000068; // type:object size:0x4 data:4byte lbl_1_data_6C = .data:0x0000006C; // type:object size:0x28 lbl_1_data_94 = .data:0x00000094; // type:object size:0x30 jumptable_1_data_C4 = .data:0x000000C4; // type:object size:0x28 scope:local jumptable_1_data_EC = .data:0x000000EC; // type:object size:0x28 scope:local lbl_1_data_114 = .data:0x00000114; // type:object size:0x4 data:4byte -lbl_1_data_118 = .data:0x00000118; // type:object size:0x18 -lbl_1_data_130 = .data:0x00000130; // type:object size:0x1F data:string +lbl_1_data_118 = .data:0x00000118; // type:object size:0x18 data:float +lbl_1_data_130 = .data:0x00000130; // type:object size:0x1F scope:local data:string lbl_1_data_150 = .data:0x00000150; // type:object size:0x18 lbl_1_data_168 = .data:0x00000168; // type:object size:0x4 data:byte -lbl_1_data_16C = .data:0x0000016C; // type:object size:0x30 -lbl_1_data_19C = .data:0x0000019C; // type:object size:0x30 +lbl_1_data_16C = .data:0x0000016C; // type:object size:0x30 data:float +lbl_1_data_19C = .data:0x0000019C; // type:object size:0x30 data:float lbl_1_data_1CC = .data:0x000001CC; // type:object size:0x20 +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:float lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:float lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float @@ -287,7 +288,7 @@ lbl_1_bss_668 = .bss:0x00000668; // type:object size:0x4 data:4byte lbl_1_bss_670 = .bss:0x00000670; // type:object size:0xC data:float lbl_1_bss_67C = .bss:0x0000067C; // type:object size:0xC data:float lbl_1_bss_688 = .bss:0x00000688; // type:object size:0x40 -lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x1 data:byte +lbl_1_bss_6C8 = .bss:0x000006C8; // type:object size:0x4 data:byte lbl_1_bss_6CC = .bss:0x000006CC; // type:object size:0x4 data:4byte lbl_1_bss_6D0 = .bss:0x000006D0; // type:object size:0x1 data:byte lbl_1_bss_6D4 = .bss:0x000006D4; // type:object size:0x4 data:4byte diff --git a/include/REL/m425Dll.h b/include/REL/m425Dll.h new file mode 100644 index 00000000..413e47c3 --- /dev/null +++ b/include/REL/m425Dll.h @@ -0,0 +1,15 @@ +#ifndef M425DLL_H +#define M425DLL_H + +#include "game/object.h" + +omObjData *fn_1_6A0C(Process *process, s32 arg1); +void fn_1_6C08(void); +void fn_1_6CD0(s32 arg0, Vec *arg1); +s32 fn_1_109EC(s32 arg0, s32 arg1, Vec *arg2, Vec *arg3, Vec *arg4, s32 arg5); +float fn_1_10CF4(s32 arg0); +void fn_1_10DB4(s32 arg0); +void fn_1_10E3C(s32 arg0); +float fn_1_10EF8(s32 arg0, s32 arg1, float arg8, float arg9); + +#endif diff --git a/src/REL/m425Dll/main.c b/src/REL/m425Dll/main.c new file mode 100644 index 00000000..ae214b28 --- /dev/null +++ b/src/REL/m425Dll/main.c @@ -0,0 +1,1685 @@ +#define HUSPR_USE_OLD_DEFS +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "math.h" +#include "string.h" + +#include "REL/m425Dll.h" + +extern u8 texMtxTbl[]; // TODO maybe put in hsfdraw.h? + +typedef struct M425DllWork { + u8 unk_00; + u8 unk_01; + u8 unk_02; + u8 unk_03; + u8 unk_04; + u8 unk_05; + u8 unk_06; + char unk07[2]; + u8 unk_09; + u8 unk_0A; + u8 unk_0B; + u8 unk_0C; + char unk0D; + s16 unk_0E; + float unk_10; + float unk_14; + Vec unk_18; + Vec unk_24; + Vec unk_30; + float unk_3C[8]; + s32 unk_5C; + float unk_60; + s32 unk_64; + s32 unk_68; +} M425DllWork; /* size = 0x6C */ + +typedef struct M425DllWork2 { + char unk00[4]; + Vec unk_04; + Vec unk_10; + Vec unk_1C; + Vec unk_28; + float unk_34; + float unk_38; + float unk_3C; + float unk_40; + float unk_44; + float unk_48; + char unk4C[0x18]; + float unk_64; + float unk_68; + float unk_6C; + char unk70[4]; + s16 unk_74; + s16 unk_76; +} M425DllWork2; /* size = 0x78 */ + +typedef struct M425DllUnkStruct { + s16 unk_00; + s16 unk_02; + s16 unk_04; + char unk06[0x42]; +} M425DllUnkStruct; /* size = 0x48 */ + +typedef struct M425DllUnkStruct2 { + AnimData *unk_00; + s16 unk_04; + Vec unk_08; + Mtx unk_14; + Vec2f *unk_44; + s16 unk_48; +} M425DllUnkStruct2; /* size = 0x4C */ + +typedef struct M425DllUnkStruct3 { + char unk00[0xC]; + s16 unk_0C; + void *unk_10; + Vec *unk_14; + GXColor *unk_18; + Vec *unk_1C; + GXColor unk_20; + GXColor unk_24; + s16 unk_28; + s16 unk_2A; + M425DllUnkStruct2 *unk_2C; +} M425DllUnkStruct3; /* size = 0x30 */ + +typedef struct M425DllUnkBss10Struct { + /* 0x00 */ u8 unk_00; + /* 0x01 */ char pad_01[1]; + /* 0x02 */ u8 unk_02; + /* 0x03 */ u8 unk_03; + /* 0x04 */ float unk_04; + /* 0x08 */ Vec unk_08; + /* 0x14 */ float unk_14; + /* 0x18 */ float unk_18; + /* 0x1C */ float unk_1C; + /* 0x20 */ float unk_20; + /* 0x24 */ float unk_24; + /* 0x28 */ float unk_28; + /* 0x2C */ float unk_2C; + /* 0x30 */ float unk_30; + /* 0x34 */ float unk_34; + /* 0x38 */ float unk_38; + /* 0x3C */ float unk_3C; + /* 0x40 */ float unk_40; + union { + /* 0x44 */ s16 unk_44[0x20]; + struct { + float unk_44f; + float unk_48; + char unk4C[4]; + float unk_50; + char unk54[0x30]; + }; + }; +} M425DllUnkBss10Struct; /* size = 0x84 */ + +void fn_1_1B40(omObjData *object); +void fn_1_2784(omObjData *object); +void fn_1_2870(omObjData *object); +void fn_1_2A94(s16 arg0, Vec *arg1, Vec *arg2, float arg8); +void fn_1_2B2C(omObjData *object); +void fn_1_2E78(omObjData *object); +void fn_1_33E0(omObjData *object); +void fn_1_3764(omObjData *object); +s16 fn_1_3ED0(s32 arg0, s16 arg1, ParticleHook arg2); +void fn_1_3F80(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_460(omObjData *object); +void fn_1_480(omObjData *object); +void fn_1_4A88(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_5044(s16 arg0); +void fn_1_573C(Vec2f **arg0, s16 arg1, Vec2f *arg2); +void fn_1_57D4(ModelData *model, Mtx matrix); +void fn_1_5C20(ModelData *model, Mtx matrix); +s32 fn_1_64D4(void); +void fn_1_8E4(omObjData *object); +void fn_1_F48(omObjData *object); +void fn_1_FA8(omObjData *object); + +s16 lbl_1_data_0 = -1; +Vec lbl_1_data_4 = { -200.0f, 2500.0f, 1200.0f }; +Vec lbl_1_data_10 = { 0.2f, -0.8f, -0.2f }; +float lbl_1_data_1C[9] = { 0.0f, 2500.0f, 1500.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f }; +GXColor lbl_1_data_40 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +omObjData *lbl_1_bss_668; +omObjData *lbl_1_bss_664; +// M425DllWork2 +omObjData *lbl_1_bss_660; +omObjData *lbl_1_bss_65C; +// M425DllWork +omObjData *lbl_1_bss_64C[4]; +u16 lbl_1_bss_648; +s16 lbl_1_bss_646; +s16 lbl_1_bss_644; +s16 lbl_1_bss_642; +s16 lbl_1_bss_640; +M425DllUnkBss10Struct lbl_1_bss_10[0xC]; +float lbl_1_bss_C; +float lbl_1_bss_8; +float lbl_1_bss_4; +char lbl_1_bss_0[4]; + +void ObjectSetup(void) +{ + s32 var_r31; + Process *process; + omObjData *object; + s32 var_r28; + LightData *var_r27; + CameraData *var_r26; + s32 var_r25; + s32 var_r24; + s32 sp8[4] = { 0, 0, 0, 0 }; + + OSReport("******* M425ObjectSetup *********\n"); + Hu3DLighInit(); + var_r24 = Hu3DGLightCreateV(&lbl_1_data_4, &lbl_1_data_10, &lbl_1_data_40); + Hu3DGLightInfinitytSet(var_r24); + var_r27 = Hu3DGlobalLight; + var_r27->unk_00 |= 0x8000; + process = omInitObjMan(0x32, 0x2000); + var_r25 = frand() & 0x1F; + for (var_r31 = 0; var_r31 < var_r25; var_r31++) { + fn_1_64D4(); + } + CRot.x = 8.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + Center.x = 0.0f; + Center.y = 430.0f; + Center.z = -400.0f; + CZoom = 1650.0f; + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 45.0f, 100.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + lbl_1_bss_664 = omAddObjEx(process, 0x7FDA, 0, 0, -1, omOutView); + var_r26 = Hu3DCamera; + var_r26->fov = -1.0f; + lbl_1_bss_668 = omAddObjEx(process, 0x10, 8, 0, -1, fn_1_460); + lbl_1_bss_65C = omAddObjEx(process, 0x20, 0x10, 0, -1, fn_1_FA8); + lbl_1_bss_660 = omAddObjEx(process, 0x50, 0x10, 0, -1, fn_1_2784); + fn_1_6A0C(process, 0x40); + omMakeGroupEx(process, 0, 4); + omGetGroupMemberListEx(process, 0); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + object = omAddObjEx(process, 0x30, 2, 0xA, 0, fn_1_2B2C); + lbl_1_bss_64C[var_r31] = object; + object->work[0] = var_r31; + object->work[1] = GWPlayerCfg[var_r31].group; + for (var_r28 = object->work[1] * 2; var_r28 < 4; var_r28++) { + if (sp8[var_r28] == 0) { + object->work[1] = var_r28; + sp8[var_r28]++; + break; + } + } + } + omGameSysInit(process); + HuAudSndGrpSet(0x32); +} + +void fn_1_460(omObjData *object) +{ + lbl_1_bss_648 = 0; + object->func = fn_1_480; +} + +void fn_1_480(omObjData *object) +{ + Vec sp14; + Vec sp8; + float var_f31; + CameraData *var_r30; + + switch (lbl_1_bss_648) { + case 0: + sp14.x = -250.0f; + sp14.y = 225.0f; + sp14.z = 200.0f; + sp8.x = 22.0f; + sp8.y = 10.0f; + sp8.z = 0.0f; + var_f31 = 500.0f; + fn_1_2A94(1, &sp14, &sp8, var_f31); + lbl_1_bss_C = -4.866667f; + lbl_1_bss_8 = 600.0f; + sp14.x = -300.0f; + sp14.y = lbl_1_bss_8; + sp14.z = 0.0f; + fn_1_6CD0(0, &sp14); + sp14.x = 300.0f; + fn_1_6CD0(1, &sp14); + var_r30 = Hu3DCamera; + var_r30->fov = 45.0f; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_648++; + break; + case 1: + lbl_1_bss_8 += lbl_1_bss_C; + lbl_1_bss_C += -2.4333334f; + if (lbl_1_bss_8 < 0.0f) { + lbl_1_bss_8 = 0.0f; + lbl_1_bss_648++; + lbl_1_bss_640 = 0x3C; + fn_1_10DB4(0); + fn_1_10DB4(1); + fn_1_10E3C(0); + } + sp14.x = -300.0f; + sp14.y = lbl_1_bss_8; + sp14.z = 0.0f; + fn_1_6CD0(0, &sp14); + sp14.x = 300.0f; + fn_1_6CD0(1, &sp14); + break; + case 2: + if (--lbl_1_bss_640 == 0) { + sp14.x = 0.0f; + sp14.y = 430.0f; + sp14.z = -400.0f; + sp8.x = 8.0f; + sp8.y = 0.0f; + sp8.z = 0.0f; + var_f31 = 1650.0f; + lbl_1_bss_640 = 0x48; + fn_1_2A94(0x3C, &sp14, &sp8, var_f31); + lbl_1_bss_648++; + } + break; + case 3: + if (--lbl_1_bss_640 == 0) { + lbl_1_bss_648 = 4; + object->func = fn_1_8E4; + lbl_1_bss_646 = lbl_1_bss_644 = -1; + } + break; + } + if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_F48; + } +} + +s32 lbl_1_data_68 = -1; +s32 lbl_1_data_6C[0xA] = { 0, 2, 3, 5, 6, 8, 0xA, 9, 0x17, 0x18 }; +Vec lbl_1_data_94[4] = { + { -350.0f, 800.0f, 100.0f }, + { -200.0f, 1000.0f, 0.0f }, + { 200.0f, 1200.0f, 0.0f }, + { 350.0f, 1400.0f, 100.0f }, +}; + +void fn_1_8E4(omObjData *object) +{ + s16 sp8[2]; + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s16 var_r26; + s16 var_r25; + + switch (lbl_1_bss_648) { + case 4: + if (lbl_1_bss_644 == -1) { + lbl_1_bss_642 = 0x708; + lbl_1_bss_644 = MGSeqCreate(3, 0); + MGSeqPosSet(lbl_1_bss_644, 320.0f, 240.0f); + } + else { + if (MGSeqStatGet(lbl_1_bss_644) == 0) { + lbl_1_bss_644 = -1; + lbl_1_bss_648++; + lbl_1_bss_646 = MGSeqCreate(1, lbl_1_bss_642 / 60, -1, -1); + } + } + if ((lbl_1_data_68 == -1) && ((MGSeqStatGet(lbl_1_bss_644) & 0x10) != 0)) { + lbl_1_data_68 = HuAudSeqPlay(0x48); + } + break; + case 5: + var_r30 = 0; + lbl_1_bss_642--; + var_r28 = (lbl_1_bss_642 + 0x3B) / 60; + if (var_r28 < 0) { + var_r28 = 0; + } + MGSeqParamSet(lbl_1_bss_646, 1, var_r28); + if (lbl_1_bss_642 < -1) { + var_r30++; + if ((fn_1_10CF4(0) == 1000.0f) && (fn_1_10CF4(1) == 1000.0f)) { + lbl_1_data_0 = -1; + } + else { + var_f31 = fn_1_10CF4(1); + if (fn_1_10CF4(0) <= var_f31) { + lbl_1_data_0 = 0; + } + else { + lbl_1_data_0 = 1; + } + } + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (!(fn_1_10CF4(var_r31) > 0.0f)) { + lbl_1_data_0 = var_r31; + var_r30++; + } + } + if (var_r30 != 0) { + lbl_1_bss_648++; + } + break; + case 6: + if (lbl_1_bss_644 == -1) { + lbl_1_bss_644 = MGSeqCreate(3, 1); + MGSeqPosSet(lbl_1_bss_644, 320.0f, 240.0f); + MGSeqParamSet(lbl_1_bss_646, 2, -1); + HuAudSeqFadeOut(lbl_1_data_68, 0x64); + } + else if (MGSeqStatGet(lbl_1_bss_644) == 0) { + lbl_1_bss_644 = -1; + lbl_1_bss_640 = 1; + lbl_1_bss_648++; + } + break; + case 7: + if (--lbl_1_bss_640 <= 0) { + lbl_1_bss_644 = -1; + lbl_1_bss_648++; + } + break; + case 8: + if (lbl_1_data_0 != -1) { + for (var_r31 = 0, var_r29 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_data_0 == OM_GET_DATA_PTR(lbl_1_bss_64C[var_r31], M425DllWork)->unk_02) { + sp8[var_r29] = OM_GET_DATA_PTR(lbl_1_bss_64C[var_r31], M425DllWork)->unk_01; + var_r29++; + GWPlayerCoinWinAdd(var_r31, 10); + } + } + lbl_1_bss_644 = MGSeqCreate(5, 3, sp8[0], sp8[1], -1, -1); + HuAudSStreamPlay(1); + } + else { + lbl_1_bss_644 = MGSeqCreate(3, 2); + HuAudSStreamPlay(4); + } + lbl_1_bss_640 = 0xD2; + lbl_1_bss_648++; + break; + case 9: + if (--lbl_1_bss_640 <= 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_F48; + } + break; + } + if ((omSysExitReq != 0) && (WipeStatGet() == 0)) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + object->func = fn_1_F48; + } +} + +void fn_1_F48(omObjData *object) +{ + if (WipeStatGet() == 0) { + CharModelKill(-1); + MGSeqKill(lbl_1_bss_646); + MGSeqKillAll(); + fn_1_6C08(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_FA8(omObjData *object) +{ + M425DllUnkBss10Struct *var_r31; + s32 var_ctr; + void *var_r4; + s32 temp_r3; + s32 var_r30; + s16 *var_r28; + s32 var_r27; + s32 var_r26; + Vec sp8[] = { + { 475.0f, 800.0f, -1400.0f }, + { -300.0f, 900.0f, -1400.0f }, + { 300.0f, 875.0f, -1450.0f }, + { -575.0f, 850.0f, -1550.0f }, + { 350.0f, 750.0f, -1500.0f }, + { -450.0f, 775.0f, -1550.0f }, + { 325.0f, 725.0f, -1450.0f }, + { -525.0f, 725.0f, -1500.0f }, + { 575.0f, 850.0f, -1550.0f }, + { -350.0f, 750.0f, -1500.0f }, + { 450.0f, 775.0f, -1550.0f }, + { -325.0f, 725.0f, -1450.0f }, + { 525.0f, 725.0f, -1500.0f }, + { -475.0f, 800.0f, -1400.0f }, + { 300.0f, 900.0f, -1400.0f }, + { -300.0f, 875.0f, -1450.0f }, + }; + + var_r30 = Hu3DModelCreateFile(0x380000); + object->model[0] = var_r30; + var_r30 = Hu3DModelCreateFile(0x380001); + object->model[1] = var_r30; + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + var_r30 = Hu3DHookFuncCreate(fn_1_57D4); + object->model[2] = var_r30; + fn_1_5044(var_r30); + var_r30 = fn_1_3ED0(0x1E0020, 0xC8, fn_1_4A88); + object->model[3] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + var_r30 = fn_1_3ED0(0x380005, 1, fn_1_3F80); + object->model[5] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 6); + var_r28 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_1C; + var_r28[1] = 0; + var_r30 = fn_1_3ED0(0x380008, 0xA, fn_1_3F80); + object->model[6] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 6); + var_r28 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_1C; + var_r28[1] = 1; + var_r30 = fn_1_3ED0(0x380007, 4, fn_1_3F80); + object->model[7] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 6); + var_r28 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_1C; + var_r28[1] = 2; + var_r30 = fn_1_3ED0(0x380006, 6, fn_1_3F80); + object->model[8] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 6); + var_r28 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_1C; + var_r28[1] = 3; + for (var_r27 = 0; var_r27 < 0xC; var_r27++) { + var_r31 = &lbl_1_bss_10[var_r27]; + var_r30 = Hu3DModelCreateFile(0x380002); + var_r31->unk_00 = var_r30; + var_r31->unk_08.x = sp8[var_r27].x; + var_r31->unk_08.y = sp8[var_r27].y; + var_r31->unk_08.z = sp8[var_r27].z; + Hu3DModelPosSet(var_r30, var_r31->unk_08.x, var_r31->unk_08.y, var_r31->unk_08.z); + Hu3DMotionSpeedSet(var_r30, 6.0f); + var_r31->unk_02 = var_r31->unk_03 = 0; + var_r31->unk_14 = var_r31->unk_18 = var_r31->unk_1C = 0.0f; + var_r31->unk_20 = var_r31->unk_24 = var_r31->unk_28 = 1.0f; + var_r31->unk_38 = var_r31->unk_3C = var_r31->unk_40 = 0.0f; + var_r31->unk_2C = var_r31->unk_08.x; + var_r31->unk_30 = var_r31->unk_08.y; + var_r31->unk_34 = var_r31->unk_08.z; + if ((var_r27 & 1) != 0) { + var_r31->unk_18 = 90.0f; + var_r31->unk_08.y += 650.0; + var_r31->unk_08.x -= 1400.0; + } + else { + var_r31->unk_18 = 90.0f; + } + var_r31->unk_18 += 10.0 * (3.0517578125e-05 * (float)((u16)frand() - 0x8000)); + var_r31->unk_08.z -= 400.0; + var_r31->unk_04 = 100.0 * (0.10000000149011612 + (0.019999999552965164 * (1.52587890625e-05 * (float)(s32)(u16)frand()))); + for (var_r26 = 0; var_r26 < 0x20; var_r26++) { + var_r31->unk_44[var_r26] = 0; + } + var_r31->unk_50 = var_r31->unk_04; + } + HuAudFXPlay(0x633); + HuAudFXPlay(0x635); + object->func = fn_1_1B40; +} + +void fn_1_14CC(Mtx arg0, float arg8, float arg9, float argA) +{ + Mtx sp38; + Mtx sp8; + if (argA != 0.0f) { + PSMTXRotRad(arg0, 0x5A, 0.017453292f * argA); + } + else { + PSMTXIdentity(arg0); + } + if (arg8 != 0.0f) { + PSMTXRotRad(sp38, 0x58, 0.017453292f * arg8); + PSMTXConcat(sp38, arg0, arg0); + } + if (arg9 != 0.0f) { + PSMTXRotRad(sp8, 0x59, 0.017453292f * arg9); + PSMTXConcat(sp8, arg0, arg0); + } +} + +float fn_1_15EC(float arg8, float arg9) +{ + float var_f31; + float var_f30; + + var_f30 = 360.0f; + var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI); + if (var_f31 < 0.0f) { + var_f31 += var_f30; + } + else if (var_f31 >= var_f30) { + var_f31 -= var_f30; + } + return var_f31; +} + +void fn_1_16B0(Mtx var_r30, Vec *var_r31) +{ + float var_f29; + float var_f25; + + var_r31->x = fn_1_15EC(var_r30[2][2], var_r30[1][2]); + var_r31->z = fn_1_15EC(var_r30[0][0], var_r30[0][1]); + var_f29 = -var_r30[0][2]; + var_f25 = sqrtf((1.0 - (var_f29 * var_f29)) < 0.0 ? (-1.0 - (var_f29 * var_f29)) : (1.0 - (var_f29 * var_f29))); + if ((var_r31->x > 90.0f) && (var_r31->x < 270.0f) && (var_r31->z > 90.0f) && (var_r31->z < 270.0f)) { + var_r31->x = fmod(180.0f + var_r31->x, 360.0); + var_r31->z = fmod(180.0f + var_r31->z, 360.0); + var_f25 = -var_f25; + } + var_r31->y = fn_1_15EC(var_f25, var_f29); +} + +static inline float fn_1_1B40_inline(omObjData *object, s32 arg1, s32 arg2, float arg8, float arg9) +{ + float var_f31; + float var_f30; + + var_f30 = sqrtf(arg8); + var_f31 = arg9 + arg8; + if (var_f31 < 0.0f) { + var_f31 += var_f30 + arg2 + arg1; + } + else if (var_f31 >= var_f30) { + var_f31 -= var_f30 + object->group; + } + return var_f31; +} + +// TODO get a working stripped out inline https://decomp.me/scratch/2IbZG +void fn_1_1B40(omObjData *object) +{ + Mtx spCC; + Mtx sp9C; + Mtx sp6C; + Vec sp60; + M425DllUnkBss10Struct *var_r31; + s32 var_r27; + + for (var_r27 = 0; var_r27 < 0xC; var_r27++) { + var_r31 = &lbl_1_bss_10[var_r27]; + switch (var_r31->unk_03) { + case 0: + if (var_r31->unk_04 < var_r31->unk_50) { + var_r31->unk_04 += 0.4f; + } + if ((s32)(64.0 * (1.52587890625e-05 * (float)fn_1_64D4())) == 0) { + Hu3DMotionTimeSet(var_r31->unk_00, 0.0f); + } + if (Hu3DMotionEndCheck(var_r31->unk_00) != 0) { + var_r31->unk_3C = -2.92f; + } + else { + var_r31->unk_3C = -0.48666668f; + } + var_r31->unk_44f += 0.10000000149011612 * (3.0517578125e-05 * (float)((u16)frand() - 0x8000)); + var_r31->unk_48 += var_r31->unk_44f; + if (var_r31->unk_48 > 180.0f) { + var_r31->unk_48 -= 180.0f; + } + if (var_r31->unk_48 < -180.0f) { + var_r31->unk_48 += 180.0f; + } + var_r31->unk_14 = -30.0 * sind(var_r31->unk_48) * sind(var_r31->unk_18); + var_r31->unk_1C = -30.0 * sind(var_r31->unk_48) * cosd(var_r31->unk_18); + if ((var_r31->unk_08.y <= 700.0f) || (fabs(var_r31->unk_08.x) > 2000.0)) { + var_r31->unk_3C = 0.0f; + var_r31->unk_44[6] = (s32)(20.0 * (3.0517578125e-05 * (float)(fn_1_64D4() - 0x8000))) + 0xB4; + var_r31->unk_04 *= 0.75f; + var_r31->unk_03++; + } + break; + case 1: + var_r31->unk_18 += 1.0f; + var_r31->unk_14 = 0.0f; + var_r31->unk_1C = 60.0 * sind(var_r31->unk_44[6]) * cosd(var_r31->unk_18); + if (--var_r31->unk_44[6] == 0) { + Hu3DModelAttrSet(var_r31->unk_00, HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(var_r31->unk_00, 6.0f); + var_r31->unk_3C = 5.3533335f; + var_r31->unk_03++; + } + break; + case 2: + if (var_r31->unk_04 > 4.0f) { + var_r31->unk_04 -= 0.1f; + var_r31->unk_3C += 0.73f; + } + var_r31->unk_3C += -0.5475f; + if (var_r31->unk_3C < 0.0f) { + Hu3DModelAttrReset(var_r31->unk_00, HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(var_r31->unk_00, 2.0f); + var_r31->unk_50 = 100.0 * (0.10000000149011612 + (0.019999999552965164 * (1.52587890625e-05 * (float)(s32)(u16)frand()))); + var_r31->unk_03 = 0; + } + break; + } + if (0) { + fn_1_1B40_inline(object, 1, 2, 0.0f, 0.0f); + fn_1_1B40_inline(object, 1, 2, 0.0f, 0.0f); + } + var_r31->unk_38 = var_r31->unk_04 * sind(var_r31->unk_18); + var_r31->unk_40 = var_r31->unk_04 * cosd(var_r31->unk_18); + var_r31->unk_08.x += var_r31->unk_38; + var_r31->unk_08.y += var_r31->unk_3C; + var_r31->unk_08.z += var_r31->unk_40; + Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_08.x, var_r31->unk_08.y, var_r31->unk_08.z); + fn_1_14CC(spCC, var_r31->unk_14, -var_r31->unk_18, var_r31->unk_1C); + fn_1_16B0(spCC, &sp60); + Hu3DModelRotSetV(var_r31->unk_00, &sp60); + } +} + +void fn_1_2784(omObjData *object) +{ + M425DllWork2 *work = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M425DllWork2), MEMORY_DEFAULT_NUM); + object->data = work; + work->unk_76 = work->unk_74 = 0; + work->unk_10.x = work->unk_28.x = 8.0f; + work->unk_10.y = work->unk_28.y = 0.0f; + work->unk_10.z = work->unk_28.z = 0.0f; + work->unk_04.x = work->unk_1C.x = 0.0f; + work->unk_04.y = work->unk_1C.y = 430.0f; + work->unk_04.z = work->unk_1C.z = -400.0f; + work->unk_64 = work->unk_68 = 1650.0f; + object->func = fn_1_2870; +} + +void fn_1_2870(omObjData *object) +{ + float var_f31; + M425DllWork2 *work; + + work = object->data; + if (work->unk_76 != 0) { + work->unk_76--; + var_f31 = (float)(work->unk_74 - work->unk_76) / work->unk_74; + var_f31 = sind((90.0f * var_f31)); + work->unk_04.x = work->unk_1C.x + (var_f31 * (work->unk_34 - work->unk_1C.x)); + work->unk_04.y = work->unk_1C.y + (var_f31 * (work->unk_38 - work->unk_1C.y)); + work->unk_04.z = work->unk_1C.z + (var_f31 * (work->unk_3C - work->unk_1C.z)); + work->unk_10.x = work->unk_28.x + (var_f31 * (work->unk_40 - work->unk_28.x)); + work->unk_10.y = work->unk_28.y + (var_f31 * (work->unk_44 - work->unk_28.y)); + work->unk_10.z = work->unk_28.z + (var_f31 * (work->unk_48 - work->unk_28.z)); + work->unk_64 = work->unk_68 + (var_f31 * (work->unk_6C - work->unk_68)); + } + CRot.x = work->unk_10.x; + CRot.y = work->unk_10.y; + CRot.z = work->unk_10.z; + Center.x = work->unk_04.x; + Center.y = work->unk_04.y; + Center.z = work->unk_04.z; + CZoom = work->unk_64; +} + +void fn_1_2A94(s16 arg0, Vec *arg1, Vec *arg2, float arg8) +{ + M425DllWork2 *work = lbl_1_bss_660->data; + work->unk_74 = arg0; + work->unk_76 = arg0; + work->unk_1C = work->unk_04; + work->unk_34 = arg1->x; + work->unk_38 = arg1->y; + work->unk_3C = arg1->z; + work->unk_28 = work->unk_10; + work->unk_40 = arg2->x; + work->unk_44 = arg2->y; + work->unk_48 = arg2->z; + work->unk_68 = work->unk_64; + work->unk_6C = arg8; +} + +void fn_1_2B2C(omObjData *object) +{ + s32 sp8; + M425DllWork *var_r31; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M425DllWork), MEMORY_DEFAULT_NUM); + object->data = var_r31; + var_r31->unk_00 = object->work[0]; + var_r31->unk_01 = GWPlayerCfg[var_r31->unk_00].character; + var_r31->unk_02 = GWPlayerCfg[var_r31->unk_00].group; + var_r31->unk_03 = object->work[1] & 1; + var_r31->unk_04 = GWPlayerCfg[var_r31->unk_00].pad_idx; + var_r31->unk_05 = GWPlayerCfg[var_r31->unk_00].iscom; + var_r31->unk_06 = GWPlayerCfg[var_r31->unk_00].diff; + var_r31->unk_0E = 0; + var_r31->unk_0B = 1; + var_r31->unk_0C = 0; + memset(var_r31->unk_3C, 0, sizeof(var_r31->unk_3C)); + var_r31->unk_5C = 0; + var_r31->unk_60 = 1.0f; + var_r31->unk_64 = 0; + var_r31->unk_68 = 0; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if ((var_r29 != var_r31->unk_00) && (var_r31->unk_02 == GWPlayerCfg[var_r29].group)) { + var_r31->unk_09 = var_r29; + break; + } + } + var_r27 = object->work[1]; + var_r31->unk_18.x = lbl_1_data_94[var_r27].x; + var_r31->unk_18.y = lbl_1_data_94[var_r27].y; + var_r31->unk_18.z = lbl_1_data_94[var_r27].z; + var_r31->unk_24.x = var_r31->unk_24.y = var_r31->unk_24.z = 0.0f; + if (var_r31->unk_02 == 0) { + var_r31->unk_10 = 30.0f; + } + else { + var_r31->unk_10 = -30.0f; + } + var_r28 = CharModelCreate(var_r31->unk_01, 4); + object->model[0] = var_r28; + Hu3DModelAttrSet(var_r28, HU3D_MOTATTR_LOOP); + CharModelStepTypeSet(var_r31->unk_01, 1); + for (var_r29 = 0; var_r29 < 0xA; var_r29++) { + object->motion[var_r29] = CharModelMotionCreate(var_r31->unk_01, lbl_1_data_6C[var_r29]); + if (var_r29 == 5) { + CharModelVoiceEnableSet(var_r31->unk_01, object->motion[var_r29], 0); + } + } + CharModelMotionDataClose(var_r31->unk_01); + CharModelMotionSet(var_r31->unk_01, object->motion[var_r31->unk_0E]); + omSetTra(object, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); + Hu3DModelPosSet(var_r28, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); + Hu3DModelRotSet(var_r28, 0.0f, 30.0f, 0.0f); + HuDataDirClose(sp8); + object->func = fn_1_2E78; +} + +void fn_1_2E78(omObjData *object) +{ + float spC[8]; + s32 sp8; + M425DllWork *var_r31; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + var_r26 = 0; + sp8 = object->model[0]; + var_r31 = object->data; + var_r31->unk_30 = var_r31->unk_18; + if ((lbl_1_bss_648 == 5) && (var_r31->unk_05 != 0)) { + fn_1_33E0(object); + } + fn_1_3764(object); + switch (lbl_1_bss_648) { + case 2: + if (lbl_1_bss_640 == 1) { + var_r31->unk_0E = 5; + CharModelMotionShiftSet(var_r31->unk_01, object->motion[var_r31->unk_0E], 0.0f, 8.0f, 0); + var_r31->unk_24.y = 0.0f; + var_r31->unk_0B = 0; + } + var_r31->unk_68 = 0; + break; + case 3: + if (var_r31->unk_64 != 0) { + var_r31->unk_18.y = fn_1_10EF8(var_r31->unk_02, var_r31->unk_03, var_r31->unk_18.x, var_r31->unk_18.z); + var_r31->unk_18.y -= 10.0f; + } + else if (fn_1_109EC(var_r31->unk_02, var_r31->unk_03, &var_r31->unk_30, &var_r31->unk_24, &var_r31->unk_18, 0) != 0) { + if (var_r31->unk_0B == 0) { + HuAudFXPlay(0x62F); + } + CharModelVoiceEnableSet(var_r31->unk_01, object->motion[5], 1); + var_r31->unk_0B = 1; + } + break; + case 5: + if ((var_r31->unk_0E == 5) && (var_r31->unk_0C == 0)) { + var_r26 = 1; + } + + case 4: + case 6: + case 7: + if (var_r31->unk_64 != 0) { + var_r31->unk_18.y = fn_1_10EF8(var_r31->unk_02, var_r31->unk_03, var_r31->unk_18.x, var_r31->unk_18.z); + var_r31->unk_18.y -= 10.0f; + } + else if (fn_1_109EC(var_r31->unk_02, var_r31->unk_03, &var_r31->unk_30, &var_r31->unk_24, &var_r31->unk_18, var_r26) != 0) { + var_r31->unk_0B = 1; + } + break; + case 8: + if (var_r31->unk_64 != 0) { + var_r31->unk_18.y = fn_1_10EF8(var_r31->unk_02, var_r31->unk_03, var_r31->unk_18.x, var_r31->unk_18.z); + var_r31->unk_18.y -= 10.0f; + var_r31->unk_0B = 1; + } + else if (fn_1_109EC(var_r31->unk_02, var_r31->unk_03, &var_r31->unk_30, &var_r31->unk_24, &var_r31->unk_18, 0) != 0) { + var_r31->unk_0B = 1; + } + if ((var_r31->unk_0B != 0) && (var_r31->unk_0E != 8) && (var_r31->unk_0E != 9)) { + if (var_r31->unk_02 == lbl_1_data_0) { + var_r31->unk_0E = 8; + } + else { + var_r31->unk_0E = 9; + } + CharModelMotionShiftSet(var_r31->unk_01, object->motion[var_r31->unk_0E], 0.0f, 8.0f, 0); + } + break; + case 9: + if (var_r31->unk_64 != 0) { + var_r31->unk_18.y = fn_1_10EF8(var_r31->unk_02, var_r31->unk_03, var_r31->unk_18.x, var_r31->unk_18.z); + var_r31->unk_18.y -= 10.0f; + } + else if (fn_1_109EC(var_r31->unk_02, var_r31->unk_03, &var_r31->unk_30, &var_r31->unk_24, &var_r31->unk_18, 0) != 0) { + var_r31->unk_0B = 1; + } + break; + } + if (var_r31->unk_18.y < 0.0f) { + var_r31->unk_18.y = 0.0f; + var_r31->unk_0B = 1; + } + var_r27 = var_r31->unk_5C % 8; + var_r31->unk_3C[var_r27] = var_r31->unk_18.y; + if (++var_r31->unk_5C > 8) { + for (var_r29 = 0; var_r29 < 8; var_r29++) { + var_r28 = var_r27 - var_r29; + if (var_r28 < 0) { + var_r28 += 8; + } + spC[var_r29] = var_r31->unk_3C[var_r28]; + } + for (var_r29 = 1; var_r29 < 8; var_r29++) { + if (fabs(spC[var_r29] - spC[0]) > 25.0) { + break; + } + } + if (((var_r31->unk_0E == 0) || (var_r31->unk_0E == 8) || (var_r31->unk_0E == 9)) && (var_r29 >= 8)) { + var_r31->unk_60 = var_r31->unk_60 - 0.05f; + if (var_r31->unk_60 < 0.75f) { + var_r31->unk_60 = 0.75f; + } + } + else { + var_r31->unk_60 = 1.0f; + } + } + omSetTra(object, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); +} + +void fn_1_33E0(omObjData *object) +{ + s32 spC; + s16 sp8; + M425DllWork *var_r31; + M425DllWork *var_r30; + + var_r31 = object->data; + var_r30 = lbl_1_bss_64C[var_r31->unk_09]->data; + spC = object->model[0]; + sp8 = var_r31->unk_0E; + switch (var_r31->unk_0E) { + case 4: + case 7: + case 0: + if (var_r30->unk_0E == 3) { + if ((var_r30->unk_05 == 0) || ((s32)((0x18 - (var_r31->unk_06 * 3)) * (1.52587890625e-05 * (float)fn_1_64D4())) == 0)) { + HuPadBtnDown[var_r31->unk_04] |= 0x100; + break; + } + } + else { + if ((s32)((0x30 - (var_r31->unk_06 * 4)) * (1.52587890625e-05 * (float)fn_1_64D4())) == 0) { + HuPadBtnDown[var_r31->unk_04] |= 0x100; + break; + } + break; + } + break; + case 3: + if ((s32)(4.0 * (1.52587890625e-05 * (float)fn_1_64D4())) != 0) { + HuPadBtn[var_r31->unk_04] |= 0x100; + } + if ((var_r30->unk_05 == 0) && (var_r30->unk_0E == 5)) { + HuPadBtnDown[var_r31->unk_04] |= 0x100; + break; + } + if ((var_r31->unk_24.y < 5.353333473205566) && ((s32)((0xE - (var_r31->unk_06 * 2)) * (1.52587890625e-05 * (float)fn_1_64D4())) == 0)) { + HuPadBtnDown[var_r31->unk_04] |= 0x100; + } + break; + } +} + +void fn_1_3764(omObjData *object) +{ + float var_f30; + float var_f29; + + M425DllWork *var_r31; + s16 var_r30; + s16 var_r29; + s16 var_r27; + s16 var_r26; + s16 var_r25; + s16 var_r24; + s32 var_r23; + + var_r31 = object->data; + var_r23 = object->model[0]; + var_r30 = var_r31->unk_0E; + if (lbl_1_bss_648 == 5) { + var_r26 = 0; + var_r25 = 0; + var_r27 = HuPadBtnDown[var_r31->unk_04]; + var_r24 = HuPadBtn[var_r31->unk_04]; + } + else { + var_r26 = 0; + var_r25 = 0; + var_r27 = 0; + var_r24 = 0; + } + var_r31->unk_64 = 0; + switch (var_r31->unk_0E) { + case 4: + case 7: + if (CharModelMotionEndCheck(var_r31->unk_01) != 0) { + var_r30 = 0; + var_r29 = 1; + } + + case 0: + case 1: + case 2: + var_r31->unk_24.x = 0.25f * var_r26; + var_r31->unk_24.z = 0.25f * -var_r25; + var_r31->unk_14 = sqrtf((var_r31->unk_24.x * var_r31->unk_24.x) + (var_r31->unk_24.z * var_r31->unk_24.z)); + var_r31->unk_64 = 1; + if (var_r31->unk_14 > 0.1f) { + if (var_r31->unk_14 >= 8.0f) { + var_r30 = 2; + var_r29 = 1; + } + else { + var_r30 = 1; + var_r29 = 1; + } + var_f30 = atan2d(var_r31->unk_24.x, var_r31->unk_24.z); + if (var_f30 >= 180.0f) { + var_f30 = var_f30 - 360.0f; + } + else if (var_f30 < -180.0f) { + var_f30 += 360.0f; + } + var_f29 = var_r31->unk_10 - var_f30; + if (var_f29 >= 180.0f) { + var_f29 -= 360.0f; + } + else if (var_f29 < -180.0f) { + var_f29 += 360.0f; + } + var_r31->unk_10 = var_f30 + (0.5f * var_f29); + if (var_r31->unk_10 >= 180.0f) { + var_r31->unk_10 = var_r31->unk_10 - 360.0f; + } + else if (var_r31->unk_10 < -180.0f) { + var_r31->unk_10 += 360.0f; + } + } + else { + var_r30 = 0; + var_r29 = 1; + } + var_r31->unk_24.y = 0.0f; + var_r31->unk_24.y += -2.4333334f * var_r31->unk_60; + if ((var_r27 & 0x100) != 0) { + var_r31->unk_0B = 0; + var_r31->unk_0A = 1; + var_r31->unk_24.y = 26.766666f; + var_r30 = 3; + var_r29 = 0; + } + break; + case 3: + if (var_r31->unk_0A != 0) { + if ((var_r24 & 0x100) != 0) { + if (++var_r31->unk_0A > 4) { + var_r31->unk_0A = 0; + } + else { + var_r31->unk_24.y += 4.866667f; + } + } + else { + var_r31->unk_0A = 0; + } + } + var_r31->unk_24.y += -2.4333334f; + if (var_r31->unk_0B != 0) { + var_r31->unk_0B = 1; + var_r30 = 4; + var_r29 = 0; + var_r31->unk_24.y = 0.0f; + } + if (((var_r27 & 0x100) != 0) || ((var_r27 & 0x40) != 0)) { + var_r31->unk_24.y = 0.0f; + var_r31->unk_0C = 0; + var_r30 = 5; + var_r29 = 0; + } + break; + case 5: + if ((Hu3DData[var_r23].unk_0C == -1) && (CharModelMotionEndCheck(var_r31->unk_01) != 0)) { + var_r31->unk_24.y += -2.4333334f; + } + else { + var_r31->unk_24.y = 0.0f; + } + if (var_r31->unk_0B != 0) { + if (var_r31->unk_0C != 0) { + var_r31->unk_24.y = 0.0f; + var_r31->unk_0C = 0; + var_r30 = 7; + var_r29 = 0; + } + else { + var_r31->unk_24.y = 9.733334f; + var_r31->unk_0B = 0; + var_r30 = 6; + var_r29 = 0; + } + } + break; + case 6: + var_r31->unk_24.y += -2.4333334f; + if ((var_r31->unk_0B != 0) && (CharModelMotionEndCheck(var_r31->unk_01) != 0)) { + var_r30 = 7; + var_r29 = 0; + } + break; + case 8: + case 9: + var_r31->unk_24.y = -2.4333334f * var_r31->unk_60; + var_r31->unk_64 = 1; + break; + } + var_r31->unk_18.x += var_r31->unk_24.x; + if (var_r31->unk_0B == 0) { + var_r31->unk_18.y += var_r31->unk_24.y; + } + var_r31->unk_18.z += var_r31->unk_24.z; + if (var_r30 != var_r31->unk_0E) { + var_r31->unk_0E = var_r30; + CharModelMotionShiftSet(var_r31->unk_01, object->motion[var_r31->unk_0E], 0.0f, 8.0f, var_r29); + } + omSetTra(object, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); + omSetRot(object, 0.0f, var_r31->unk_10, 0.0f); +} + +s16 fn_1_3ED0(s32 arg0, s16 arg1, ParticleHook arg2) +{ + s32 var_r31; + M425DllUnkStruct *var_r30; + ParticleData *var_r29; + AnimData *var_r28; + + var_r28 = HuSprAnimRead(HuDataReadNum(arg0, MEMORY_DEFAULT_NUM)); + var_r31 = Hu3DParticleCreate(var_r28, arg1); + Hu3DParticleHookSet(var_r31, arg2); + var_r29 = Hu3DData[var_r31].unk_120; + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M425DllUnkStruct), MEMORY_DEFAULT_NUM); + var_r29->unk_1C = var_r30; + var_r30->unk_04 = 0; + return var_r31; +} + +void fn_1_3F80(ModelData *model, ParticleData *particle, Mtx matrix) +{ + float var_f29; + float var_f28; + float var_f26; + float var_f25; + float var_f24; + + HsfanimStruct01 *var_r31; + M425DllUnkStruct *var_r29; + s32 var_r28; + + float sp54[4] = { 1000.0f, 200.0f, 600.0f, 1200.0f }; + float sp44[4] = { 1.0f, 0.6f, 0.3f, 0.425f }; + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + s16 sp8 = 0; + + var_r29 = particle->unk_1C; + switch (var_r29->unk_04) { + case 0: + var_r31 = particle->unk_48; + if (var_r29->unk_02 != 0) { + sp14.x = 0.0f; + sp14.y = -3600.0f; + sp14.z = 6250.0f; + var_f28 = (sp14.z * sp14.z) + ((sp14.x * sp14.x) + (sp14.y * sp14.y)); + var_f29 = 1.0f / sqrtf(var_f28); + sp14.x *= var_f29; + sp14.y *= var_f29; + sp14.z *= var_f29; + var_f24 = 6000.0f / particle->unk_30; + for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + var_f26 = 500.0 + ((var_f24 * var_r28) + ((0.25f * var_f24) * (1.52587890625e-05 * (float)(s32)(u16)frand()))); + var_f25 = var_f26 / 6000.0f; + var_r31->unk14.x = var_f26; + var_r31->unk34.x = var_f26 * sp14.x; + var_r31->unk34.y = 4000.0f + (var_f26 * sp14.y); + var_r31->unk34.z = -6750.0f + (var_f26 * sp14.z); + var_r31->unk2C = (0.3f + (0.7f * (var_f25 * var_f25))) + * (sp54[var_r29->unk_02] * (0.699999988079071 + (0.30000001192092896 * (1.52587890625e-05 * (float)(s32)(u16)frand())))); + var_r31->unk40.r = (s32)(160.0 * (1.52587890625e-05 * (float)fn_1_64D4())) + 0x20; + var_r31->unk40.g = (s32)(96.0 * (1.52587890625e-05 * (float)fn_1_64D4())) + 0x20; + var_r31->unk40.b = (s32)(128.0 * (1.52587890625e-05 * (float)fn_1_64D4())) + 0x20; + var_r31->unk40.a + = ((1.0 - (0.4 * var_f25)) * (255.0f * sp44[var_r29->unk_02])) - (s32)(16.0 * (1.52587890625e-05 * (float)fn_1_64D4())); + } + var_r29->unk_04++; + } + else { + var_r31->unk34.x = 0.0f; + var_r31->unk34.y = 4000.0f; + var_r31->unk34.z = -6750.0f; + var_r31->unk2C = 1000.0f; + } + break; + case 1: + sp38.x = sind(CRot.y) * cosd(CRot.x); + sp38.y = -sind(CRot.x); + sp38.z = cosd(CRot.y) * cosd(CRot.x); + sp2C.x = -(Center.x + (1.25f * (sp38.x * CZoom))); + sp2C.y = 4000.0f - (Center.y + (sp38.y * CZoom)); + sp2C.z = -6750.0f - (Center.z + (1.25f * (sp38.z * CZoom))); + var_f29 = 1.0f / sqrtf((sp2C.z * sp2C.z) + ((sp2C.x * sp2C.x) + (sp2C.y * sp2C.y))); + sp2C.x *= var_f29; + sp2C.y *= var_f29; + sp2C.z *= var_f29; + var_f29 = -((-sp2C.z * -sp38.z) + ((-sp2C.x * -sp38.x) + (-sp2C.y * -sp38.y))); + sp20.x = -sp38.x + (-2.0f * sp2C.x * var_f29); + sp20.y = -sp38.y + (-2.0f * sp2C.y * var_f29); + sp20.z = -sp38.z + (-2.0f * sp2C.z * var_f29); + for (var_r31 = particle->unk_48, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + var_r31->unk34.x = sp20.x * var_r31->unk14.x; + var_r31->unk34.y = 4000.0f + (sp20.y * var_r31->unk14.x); + var_r31->unk34.z = -6750.0f + (sp20.z * var_r31->unk14.x); + } + break; + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); +} + +void fn_1_4A88(ModelData *model, ParticleData *particle, Mtx matrix) +{ + float var_f31; + HsfanimStruct01 *var_r31; + M425DllUnkStruct *var_r29; + s32 var_r28; + s16 var_r27; + + var_r27 = 0; + var_r29 = particle->unk_1C; + switch (var_r29->unk_04) { + case 0: + for (var_r31 = particle->unk_48, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + var_r31->unk00_s16 = var_r31->unk02 = 0; + } + var_r29->unk_04++; + break; + case 1: + for (var_r31 = particle->unk_48, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + if (var_r31->unk00_s16 != 0) { + var_r31->unk00_s16--; + } + else { + if (var_r31->unk02 == 0) { + var_f31 = 180.0 * (1.52587890625e-05 * (float)(s32)(u16)frand()); + var_f31 = var_f31; + if ((s32)(4.0 * (1.52587890625e-05 * (float)fn_1_64D4())) != 0) { + var_r31->unk34.x = 100.0 * (4.0 * (1.52587890625e-05 * (float)(s32)(u16)frand())) * cosd(var_f31); + } + else { + var_r31->unk34.x = 100.0 * (2.0 * (1.52587890625e-05 * (float)(s32)(u16)frand())) * cosd(var_f31); + } + var_r31->unk34.y = -10.0f; + var_r31->unk34.z = -7000.0 + (100.0 * (40.0 * (1.52587890625e-05 * (float)(s32)(u16)frand())) * sind(var_f31)); + var_r31->unk30 = 1.5707964f; + var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = var_r31->unk40.a = 0xC0; + var_r31->unk40.b = 0xA0; + var_r31->unk2C = 0.0f; + var_r31->unk00_s16 = (s32)(90.0 * (1.52587890625e-05 * (float)fn_1_64D4())); + var_r31->unk02 = 0x3C; + var_r31->unk40.r = 0xC0; + var_r31->unk40.g = 0xE0; + var_r31->unk40.b = 0xE0; + var_r31->unk08.z = 0.01f * (0.05f * (3000.0f + -var_r31->unk34.z)); + var_r31->unk08.z *= var_r31->unk08.z; + var_r31->unk08.z *= 0.125f; + } + var_r31->unk40.a = 248.0 * sind((var_r31->unk02 * 3)); + var_r31->unk2C = (30.0f * var_r31->unk08.z) * sind((var_r31->unk02 * 3)); + var_r31->unk02--; + } + } + if (particle->unk_30 == var_r27) { + Hu3DModelAttrReset(var_r29->unk_00, HU3D_ATTR_PARTICLE_KILL); + Hu3DModelKill(var_r29->unk_00); + return; + } + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); +} + +void fn_1_5044(s16 sp8) +{ + M425DllUnkStruct3 *var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + ModelData *var_r27; + void *var_r26; + + Vec2f spC[4] = { { 0.0f, 0.0f }, { 1.0f, 0.0f }, { 1.0f, 1.0f }, { 0.0f, 1.0f } }; + var_r27 = &Hu3DData[sp8]; + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M425DllUnkStruct3), MEMORY_DEFAULT_NUM); + var_r27->unk_120 = var_r31; + var_r31->unk_2A = 1; + var_r31->unk_20.r = var_r31->unk_20.g = var_r31->unk_20.b = 0x40; + var_r31->unk_20.a = 0xFF; + var_r31->unk_24.a = var_r31->unk_24.g = var_r31->unk_24.b = 0xFF; + var_r31->unk_24.r = var_r31->unk_24.b = 0; + // maybe Mtx? + var_r31->unk_14 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_2A * (4 * sizeof(Vec)), MEMORY_DEFAULT_NUM); + var_r31->unk_14[0].x = -4500.0f; + var_r31->unk_14[0].y = 0.0f; + var_r31->unk_14[0].z = -7000.0f; + var_r31->unk_14[1].x = 4500.0f; + var_r31->unk_14[1].y = 0.0f; + var_r31->unk_14[1].z = -7000.0f; + var_r31->unk_14[2].x = 3000.0f; + var_r31->unk_14[2].y = -200.0f; + var_r31->unk_14[2].z = 0.0f; + var_r31->unk_14[3].x = -3000.0f; + var_r31->unk_14[3].y = -200.0f; + var_r31->unk_14[3].z = 0.0f; + var_r31->unk_18 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_2A * (4 * sizeof(GXColor)), MEMORY_DEFAULT_NUM); + var_r31->unk_18[0].r = 0xFF; + var_r31->unk_18[0].g = 0xFF; + var_r31->unk_18[0].b = 0xFF; + var_r31->unk_18[0].a = 0xFF; + var_r31->unk_18[1].r = 0xFF; + var_r31->unk_18[1].g = 0xFF; + var_r31->unk_18[1].b = 0xFF; + var_r31->unk_18[1].a = 0xFF; + var_r31->unk_18[2].r = 0xFF; + var_r31->unk_18[2].g = 0xFF; + var_r31->unk_18[2].b = 0xFF; + var_r31->unk_18[2].a = 0xFF; + var_r31->unk_18[3].r = 0xFF; + var_r31->unk_18[3].g = 0xFF; + var_r31->unk_18[3].b = 0xFF; + var_r31->unk_18[3].a = 0xFF; + var_r31->unk_1C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_2A * sizeof(Vec), MEMORY_DEFAULT_NUM); + var_r31->unk_1C->x = 0.0f; + var_r31->unk_1C->y = 1.0f; + var_r31->unk_1C->z = 0.0f; + var_r31->unk_28 = 2; + var_r31->unk_2C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_2A * (var_r31->unk_28 * sizeof(M425DllUnkStruct2)), MEMORY_DEFAULT_NUM); + var_r31->unk_2C[0].unk_00 = HuSprAnimReadFile(0x380003); + var_r31->unk_2C[0].unk_04 = 0; + var_r31->unk_2C[1].unk_00 = HuSprAnimReadFile(0x380004); + var_r31->unk_2C[1].unk_04 = 0; + var_r31->unk_2C[1].unk_48 = 0x80; + for (var_r30 = 0; var_r30 < (var_r31->unk_28 * var_r31->unk_2A); var_r30++) { + PSMTXIdentity(var_r31->unk_2C[var_r30].unk_14); + var_r31->unk_2C[var_r30].unk_08.x = var_r31->unk_2C[var_r30].unk_08.y = var_r31->unk_2C[var_r30].unk_08.z = 0.0f; + } + for (var_r30 = 0; var_r30 < var_r31->unk_28; var_r30++) { + fn_1_573C(&var_r31->unk_2C[var_r30].unk_44, var_r31->unk_2A, spC); + } + var_r26 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x20000, MEMORY_DEFAULT_NUM); + var_r31->unk_10 = var_r26; + DCFlushRange(var_r31->unk_10, 0x20000); + GXBeginDisplayList(var_r26, 0x20000); + GXBegin(GX_QUADS, GX_VTXFMT0, var_r31->unk_2A * 4); + for (var_r30 = 0; var_r30 < var_r31->unk_2A; var_r30++) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + GXUnknownu16(var_r29 + (var_r30 * 4)); + GXUnknownu16(var_r30); + GXUnknownu16(var_r29 + (var_r30 * 4)); + for (var_r28 = 0; var_r28 < var_r31->unk_28; var_r28++) { + GXUnknownu16(var_r29 + (var_r30 * 4)); + } + } + } + var_r31->unk_0C = GXEndDisplayList(); +} + +void fn_1_5568(Vec **arg0, s16 arg1, Vec *arg2) +{ + Vec *var_r31; + s32 var_r29; + s32 var_r28; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (4 * sizeof(Vec)), MEMORY_DEFAULT_NUM); + for (var_r29 = 0; var_r29 < arg1; var_r29++) { + for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { + var_r31->x = arg2->x; + var_r31->y = arg2->y; + var_r31->z = arg2->z; + } + } +} + +void fn_1_5608(GXColor **arg0, s16 arg1, GXColor *arg2) +{ + GXColor *var_r31; + s32 var_r29; + s32 var_r28; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (4 * sizeof(GXColor)), 0x10000000); + for (var_r29 = 0; var_r29 < arg1; var_r29++) { + for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { + var_r31->r = arg2->r; + var_r31->g = arg2->g; + var_r31->b = arg2->b; + var_r31->a = arg2->a; + } + } +} + +void fn_1_56B0(Vec **arg0, s16 arg1, Vec *arg2) +{ + Vec *var_r31; + s32 var_r29; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), MEMORY_DEFAULT_NUM); + for (var_r29 = 0; var_r29 < arg1; var_r31++, arg2++, var_r29++) { + var_r31->x = arg2->x; + var_r31->y = arg2->y; + var_r31->z = arg2->z; + } +} + +void fn_1_573C(Vec2f **arg0, s16 arg1, Vec2f *arg2) +{ + Vec2f *var_r31; + s32 var_r29; + s32 var_r28; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (4 * sizeof(Vec2f)), MEMORY_DEFAULT_NUM); + for (var_r29 = 0; var_r29 < arg1; var_r29++) { + for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { + var_r31->x = arg2->x; + var_r31->y = arg2->y; + } + } +} + +void fn_1_57D4(ModelData *model, Mtx matrix) +{ + float var_f31; + float var_f30; + s32 var_r31; + M425DllUnkStruct3 *var_r30; + + var_r30 = model->unk_120; + var_r30->unk_2C[1].unk_08.y -= 0.0005f; + var_f31 = sind(lbl_1_bss_4); + var_f30 = cosd(lbl_1_bss_4); + for (var_r31 = 0; var_r31 < 1; var_r31++) { + var_r30->unk_2C[var_r31].unk_44[0].x = 0.005f * var_f31 * (var_r31 != 0 ? 10.0f : -1.0f); + var_r30->unk_2C[var_r31].unk_44[0].y = 0.005f * var_f30 * (var_r31 != 0 ? 1.0f : -1.0f); + var_r30->unk_2C[var_r31].unk_44[1].x = 1.0f + (0.005f * var_f30 * (var_r31 != 0 ? 10.0f : -1.0f)); + var_r30->unk_2C[var_r31].unk_44[1].y = 0.005f * var_f31 * (var_r31 != 0 ? 1.0f : -1.0f); + var_r30->unk_2C[var_r31].unk_44[2].x = 1.0f + (0.005f * var_f31 * (var_r31 != 0 ? 10.0f : -1.0f)); + var_r30->unk_2C[var_r31].unk_44[2].y = 1.0f + (0.005f * var_f30 * (var_r31 != 0 ? 1.0f : -1.0f)); + var_r30->unk_2C[var_r31].unk_44[3].x = 0.005f * var_f30 * (var_r31 != 0 ? 10.0f : -1.0f); + var_r30->unk_2C[var_r31].unk_44[3].y = 1.0f + (0.005f * var_f31 * (var_r31 != 0 ? 1.0f : -1.0f)); + } + lbl_1_bss_4 += 1.0f; + fn_1_5C20(model, matrix); +} + +void fn_1_5C20(ModelData *var_r27, Mtx sp8) +{ + Mtx sp5C; + Mtx sp2C; + GXColor sp26; + s16 spC; + GXTexMapID var_r29; + M425DllUnkStruct3 *var_r31; + s16 var_r30; + s16 var_r28; + s16 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + var_r31 = var_r27->unk_120; + GXSetChanAmbColor(GX_COLOR0A0, var_r31->unk_20); + GXSetChanMatColor(GX_COLOR0A0, var_r31->unk_24); + GXLoadPosMtxImm(sp8, 0); + PSMTXInverse(sp8, sp5C); + PSMTXTranspose(sp5C, sp2C); + GXLoadNrmMtxImm(sp2C, 0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXSetZMode(1, GX_LEQUAL, 1); + var_r30 = 0; + var_r28 = 0; + spC = 0; + for (var_r29 = GX_TEXMAP0; var_r29 < var_r31->unk_28; var_r29++) { + PSMTXRotRad(var_r31->unk_2C[var_r29].unk_14, 0x5A, 0.0f); + mtxTransCat( + var_r31->unk_2C[var_r29].unk_14, var_r31->unk_2C[var_r29].unk_08.x, var_r31->unk_2C[var_r29].unk_08.y, var_r31->unk_2C[var_r29].unk_08.z); + switch (var_r31->unk_2C[var_r29].unk_04) { + case 0: + GXLoadTexMtxImm(var_r31->unk_2C[var_r29].unk_14, texMtxTbl[var_r28], GX_MTX2x4); + var_r25 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX2x4, var_r29 + 4, var_r25, GX_FALSE, 0x7D); + GXSetTevOrder(var_r30, var_r28, var_r29, GX_COLOR0A0); + if (var_r29 == GX_TEXMAP0) { + GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + GXSetTevAlphaIn(var_r30, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + } + else { + sp26.a = var_r31->unk_2C[var_r29].unk_48; + GXSetTevColor(GX_TEVREG2, sp26); + GXSetTevColorIn(var_r30, GX_CC_CPREV, GX_CC_TEXC, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevAlphaIn(var_r30, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); + } + GXSetTevColorOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + break; + case 1: + GXLoadTexMtxImm(var_r31->unk_2C[var_r29].unk_14, texMtxTbl[var_r28], GX_MTX2x4); + var_r24 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX2x4, var_r29 + 4, var_r24, GX_FALSE, 0x7D); + GXSetTevOrder(var_r30, var_r28, var_r29, GX_COLOR0A0); + GXSetTevColor(GX_TEVREG2, sp26); + GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_CPREV, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevAlphaIn(var_r30, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); + GXSetTevColorOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + break; + case 2: + sp26.a = 0xE0; + GXSetTevColor(GX_TEVREG1, sp26); + GXSetTexCoordGen2(var_r28 + 1, GX_TG_BUMP0, var_r28, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(var_r30, var_r28, var_r29, GX_COLOR0A0); + GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_RASC); + GXSetTevColorOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(var_r30, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + var_r30++; + GXSetTevOrder(var_r30, var_r28 + 1, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_CPREV); + GXSetTevColorOp(var_r30, GX_TEV_SUB, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(var_r30, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV); + break; + case 3: + var_r28--; + GXLoadTexMtxImm(var_r31->unk_2C[var_r29].unk_14, texMtxTbl[var_r28], GX_MTX2x4); + var_r23 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX2x4, var_r29 + 4, var_r23, 0, 0x7D); + GXSetTevOrder(var_r30, var_r28, var_r29, GX_COLOR0A0); + GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_CPREV, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevColorOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(var_r30, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + GXSetTevAlphaOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + var_r28++; + break; + } + var_r30++; + var_r28++; + HuSprTexLoad(var_r31->unk_2C[var_r29].unk_00, 0, var_r29, GX_REPEAT, GX_REPEAT, GX_LINEAR); + } + sp26.a = var_r31->unk_24.a; + GXSetTevColor(GX_TEVREG0, sp26); + GXSetTevOrder(var_r30, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_CPREV, GX_CC_RASC, GX_CC_ZERO); + GXSetTevColorOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(var_r30, GX_CA_ZERO, GX_CA_APREV, GX_CA_A0, GX_CA_KONST); + GXSetTevAlphaOp(var_r30, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + var_r30++; + GXSetNumTevStages((s32)var_r30); + GXSetNumTexGens((s32)var_r28); + var_r26 = Hu3DLightSet(var_r27, &Hu3DCameraMtx, &Hu3DCameraMtxXPose, 0.0f); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_VTX, var_r26, GX_DF_CLAMP, GX_AF_SPOT); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, var_r31->unk_14, 0xC); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, var_r31->unk_18, 4); + for (var_r29 = GX_TEXMAP0; var_r29 < (var_r31->unk_28 * var_r31->unk_2A); var_r29++) { + GXSetVtxDesc(var_r29 + 0xD, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, var_r29 + 0xD, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(var_r29 + 0xD, var_r31->unk_2C[var_r29].unk_44, 8); + } + GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_TEX_S, GX_RGBA6, 0); + GXSetArray(GX_VA_NRM, var_r31->unk_1C, 0xC); + GXCallDisplayList(var_r31->unk_10, var_r31->unk_0C); +} + +u32 lbl_1_data_114 = 0x41C64E6D; + +s32 fn_1_64D4(void) +{ + lbl_1_data_114 *= 0x41C64E6D; + lbl_1_data_114 += 0x3039; + return lbl_1_data_114 >> 0x10; +} + +float fn_1_6528(float arg8, float arg9, float argA, float argB) +{ + float var_f31 = 1.0 - arg8; + float var_f30 = (argB * (arg8 * arg8)) + ((arg9 * (var_f31 * var_f31)) + (2.0 * (argA * (var_f31 * arg8)))); + return var_f30; +} + +void fn_1_65A0(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *arg3++ = fn_1_6528(arg8, *arg0++, *arg1++, *arg2++); + } +} + +float fn_1_66BC(float arg8, float arg9, float argA, float argB) +{ + float var_f31 = 2.0 * ((arg8 * argB) + (((arg8 - 1.0) * arg9) + ((1.0 - (2.0 * arg8)) * argA))); + return var_f31; +} + +void fn_1_6734(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) +{ + float spC[3]; + float sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + spC[var_r31] = fn_1_66BC(arg8, *arg0++, *arg1++, *arg2++); + } + + var_f29 = sqrtf((spC[2] * spC[2]) + ((spC[0] * spC[0]) + (spC[1] * spC[1]))); + if (var_f29) { + var_f29 = 1.0 / var_f29; + var_f29 = var_f29; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *arg3++ = var_f29 * spC[var_r31]; + } + return; + } + *arg3++ = 0.0f; + *arg3++ = 0.0f; + *arg3++ = 1.0f; +} diff --git a/src/REL/m425Dll/thwomp.c b/src/REL/m425Dll/thwomp.c new file mode 100644 index 00000000..0a320286 --- /dev/null +++ b/src/REL/m425Dll/thwomp.c @@ -0,0 +1,2768 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "dolphin/mtx/GeoTypes.h" +#include "ext_math.h" +#include "game/animdata.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m425Dll.h" + +extern u32 GlobalCounter; +extern LightData Hu3DLocalLight[0x20]; + +typedef struct M425DllUnkStruct4 { + s16 unk_00; + s16 unk_02; + s16 unk_04; + s16 unk_06; + float unk_08; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + float unk_20; + float unk_24; + s32 unk_28; + s32 unk_2C; + float unk_30; + s32 unk_34; + s32 unk_38; + s32 unk_3C[5]; + s32 unk_50; + float unk_54[6]; + s32 unk_6C[6]; + s32 unk_84[6]; + float unk_9C[6]; + s32 unk_B4[6]; + Vec unk_CC; + float unk_D8; + float unk_DC; + float unk_E0; + float unk_E4; + float unk_E8; + float unk_EC; + s32 unk_F0[3]; + float unk_FC; + float unk_100; + char unk104[0x8]; + s16 unk_10C; + s16 unk_10E; + s16 unk_110; + s16 unk_112[0x19]; + s16 unk_144[0x1A]; + s16 *unk_178; + Vec *unk_17C; + Vec *unk_180; + Vec2f *unk_184; + Vec *unk_188; + Vec *unk_18C; + s16 (*unk_190)[3]; + Vec *unk_194; + Vec *unk_198; + s32 unk_19C; + u8 *unk_1A0; + s16 *unk_1A4[0x19]; + s16 unk_208[0x19]; + GXColor unk_23A; + s32 unk_240; + u32 unk_244[0x19]; + void *unk_2A8[0x19]; +} M425DllUnkStruct4; /* size = 0x30C */ + +typedef struct M425DllUnkStruct5 { + char unk00[4]; + Vec unk_04; + Vec unk_10; + float unk_1C; + char unk20[8]; + float unk_28; + float unk_2C; + Vec unk_30; + GXColor unk_3C; + s32 unk_40; +} M425DllUnkStruct5; /* size = 0x44 */ + +typedef void (*UnkHook)(ModelData *model, struct M425DllUnkStruct6 *particle, Mtx matrix); + +typedef struct M425DllUnkStruct6 { + s16 unk_00; + s16 unk_02; + char unk04[0x1C]; + u8 unk_20; + u8 unk_21; + char unk22[2]; + s16 unk_24; + s32 unk_28; + s32 unk_2C; + u32 unk_30; + u32 unk_34; + AnimData *unk_38; + M425DllUnkStruct5 *unk_3C; + Vec *unk_40; + Vec2f *unk_44; + void *unk_48; + UnkHook unk_4C; +} M425DllUnkStruct6; /* size = 0x50 */ + +void fn_1_6BD8(omObjData *object); +s32 fn_1_6EC4(float arg8, float arg9, s16 arg0, s16 arg1); +void fn_1_6DFC(s32 arg0, float arg8); +void fn_1_E210(s32 arg0); +void fn_1_E914(ModelData *arg0, Mtx matrix); +void fn_1_D9A8(M425DllUnkStruct4 *var_r31, ModelData *var_r24, s32 var_r30, s32 var_r26, s32 var_r25); +void fn_1_DB44(M425DllUnkStruct4 *arg0, ModelData *model); +void fn_1_DE3C(M425DllUnkStruct4 *arg0, ModelData *model); +void fn_1_101C4(ModelData *model, Mtx matrix); +void fn_1_11284(void); +void fn_1_112FC(void); +void fn_1_11418(void); +s32 fn_1_11454(Vec *arg0, Vec *arg1, float arg8, float arg9); +s16 fn_1_115D4(ModelData *arg0, Mtx arg1, Mtx arg2, float arg8); +void fn_1_116E4(ModelData *arg1, LightData *arg2, s16 arg3, Mtx arg4, Mtx arg5, float arg8); +s16 fn_1_11A74(AnimData *arg0, s16 arg1); +void fn_1_11EE0(ModelData *model, Mtx matrix); + +Vec lbl_1_data_118[2] = { + { -300.0f, 1.0f, 0.0f }, + { 300.0f, 1.0f, 0.0f }, +}; + +Process *lbl_1_bss_6F0; +omObjData *lbl_1_bss_6EC; +s32 lbl_1_bss_6E8; +u8 *lbl_1_bss_6E4; +AnimData *lbl_1_bss_6E0; +AnimData *lbl_1_bss_6DC; +AnimData *lbl_1_bss_6D8; +// M425DllUnkStruct6 +s32 lbl_1_bss_6D4; +u8 lbl_1_bss_6D0; +s32 lbl_1_bss_6CC; +GXColor lbl_1_bss_6C8; +GXLightObj lbl_1_bss_688; +Vec lbl_1_bss_67C; +Vec lbl_1_bss_670; + +omObjData *fn_1_6A0C(Process *process, s32 sp8) +{ + omObjData *object; + + lbl_1_bss_6F0 = process; + object = omAddObjEx(process, sp8, 6, 0, -1, fn_1_6BD8); + lbl_1_bss_6EC = object; + object->stat |= 0x100; + lbl_1_bss_6E8 = 0; + lbl_1_bss_6D0 = 0x40; + lbl_1_bss_6CC = 0; + object->model[0] = fn_1_6EC4(350.0f, 350.0f, 0x10, 0x10); + object->model[1] = fn_1_6EC4(350.0f, 350.0f, 0x10, 0x10); + fn_1_6CD0(0, &lbl_1_data_118[0]); + fn_1_6CD0(1, &lbl_1_data_118[1]); + fn_1_6DFC(0, 30.0f); + fn_1_6DFC(1, -30.0f); + lbl_1_bss_6E4 = HuDataReadNum(0x38000A, MEMORY_DEFAULT_NUM); + lbl_1_bss_6E0 = HuSprAnimRead(HuDataReadNum(0x38000B, MEMORY_DEFAULT_NUM)); + lbl_1_bss_6DC = HuSprAnimRead(HuDataReadNum(0x38000C, MEMORY_DEFAULT_NUM)); + fn_1_11284(); + return lbl_1_bss_6EC; +} + +void fn_1_6BD8(omObjData *object) +{ + fn_1_E210(0); + fn_1_E210(1); + fn_1_112FC(); +} + +void fn_1_6C08(void) +{ + omObjData *object = lbl_1_bss_6EC; + if (object) { + HuMemDirectFree(lbl_1_bss_6E4); + lbl_1_bss_6E4 = NULL; + HuSprAnimKill(lbl_1_bss_6E0); + lbl_1_bss_6E0 = NULL; + HuSprAnimKill(lbl_1_bss_6DC); + lbl_1_bss_6DC = NULL; + fn_1_11418(); + lbl_1_bss_6EC = NULL; + object->func = NULL; + omDelObjEx(lbl_1_bss_6F0, object); + } +} + +void fn_1_6CD0(s32 arg0, Vec *arg1) +{ + M425DllUnkStruct4 *var_r30; + s32 var_r29; + ModelData *var_r28; + + if (lbl_1_bss_6EC) { + var_r28 = &Hu3DData[lbl_1_bss_6EC->model[arg0]]; + var_r30 = var_r28->unk_120; + var_r30->unk_CC.x = arg1->x; + var_r30->unk_CC.y = arg1->y; + var_r30->unk_CC.z = arg1->z; + Hu3DModelPosSet(lbl_1_bss_6EC->model[arg0], arg1->x, arg1->y, arg1->z); + if ((lbl_1_bss_6CC == 0) && (arg0 == 0) && (arg1->y <= 0.0f)) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + omVibrate(0, 0xC, 6, 6); + } + HuAudFXPlay(0x62E); + lbl_1_bss_6CC = 1; + } + } +} + +void fn_1_6DFC(s32 arg0, float arg8) +{ + ModelData *var_r31; + M425DllUnkStruct4 *var_r30; + + if (lbl_1_bss_6EC) { + var_r31 = &Hu3DData[lbl_1_bss_6EC->model[arg0]]; + var_r30 = var_r31->unk_120; + var_r30->unk_D8 = arg8; + Hu3DModelRotSet(lbl_1_bss_6EC->model[arg0], 0.0f, arg8, 0.0f); + } +} + +s32 fn_1_6EC4(float var_f24, float sp8, s16 var_r22, s16 var_r24) +{ + float sp24; + float sp20; + float sp1C; + float sp18; + float sp14; + float sp10; + void *spC; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + float var_f19; + float var_f18; + + M425DllUnkStruct4 *var_r31; + s32 var_r30; + Vec *var_r29; + Vec2f *var_r28; + s32 var_r27; + Vec *var_r26; + s16 *var_r25; + ModelData *var_r23; + s32 var_r21; + s16 *var_r20; + s32 var_r19; + s16 var_r18; + void *var_r17; + + var_r19 = Hu3DHookFuncCreate(fn_1_101C4); + var_r23 = &Hu3DData[var_r19]; + Hu3DModelLayerSet(var_r19, 5); + var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M425DllUnkStruct4), var_r23->unk_48); + var_r23->unk_120 = var_r31; + memset(var_r31, 0, sizeof(M425DllUnkStruct4)); + var_r31->unk_00 = lbl_1_bss_6E8; + lbl_1_bss_6E8++; + var_r31->unk_02 = 0; + var_r31->unk_04 = Hu3DModelCreateFile(0x38000D); + Hu3DModelLayerSet(var_r31->unk_04, 6); + var_r31->unk_06 = 0; + var_r31->unk_08 = 1000.0f; + var_r31->unk_0C = 1000.0f; + var_r31->unk_10 = 1000.0f; + var_r31->unk_14 = 0.0f; + var_r31->unk_18 = 0.0f; + var_r31->unk_1C = 0.0f; + var_r31->unk_20 = 0.0f; + var_r31->unk_24 = sp8; + var_r31->unk_FC = var_f24; + var_r31->unk_100 = sp8; + var_r31->unk_28 = 0; + var_r31->unk_2C = 0; + var_r31->unk_30 = 0.0f; + for (var_r30 = 0; var_r30 < 6; var_r30++) { + var_r31->unk_3C[var_r30] = -1; + var_r31->unk_54[var_r30] = 0.0f; + var_r31->unk_84[var_r30] = -1; + var_r31->unk_9C[var_r30] = 0.0f; + } + var_r31->unk_CC.x = var_r31->unk_CC.y = var_r31->unk_CC.z = 0.0f; + var_r31->unk_D8 = 0.0f; + var_r31->unk_DC = 1.0f; + var_r31->unk_F0[0] = -1; + var_r31->unk_F0[1] = -1; + var_r31->unk_F0[2] = -1; + lbl_1_bss_6EC->model[var_r31->unk_00 + 2] = var_r31->unk_04; + if (var_r31->unk_00 == 0) { + var_r31->unk_E0 = var_f22 = 302.0f; + var_r31->unk_E4 = var_f27 = 193.0f; + } + else { + var_r31->unk_E0 = var_f22 = 302.0f; + var_r31->unk_E4 = var_f27 = 150.0f; + } + var_r31->unk_E8 = var_r31->unk_EC = 0.0f; + var_f30 = sind(var_f27) * cosd(var_f22); + var_f26 = cosd(var_f27) * cosd(var_f22); + var_f28 = sind(var_f22); + sp24 = sqrtf((var_f26 * var_f26) + ((var_f30 * var_f30) + (var_f28 * var_f28))); + if (sp24 != 0.0f) { + sp24 = 1.0f / sp24; + } + else { + sp24 = 0.0f; + } + var_f30 *= sp24; + var_f28 *= sp24; + var_f26 *= sp24; + var_r30 = Hu3DLLightCreate(var_r19, 1000.0f * var_f30, 1000.0f * var_f28, 1000.0f * var_f26, var_f30, var_f28, var_f26, 0xFF, 0xFF, 0xFF); + Hu3DLLightInfinitytSet(var_r19, var_r30); + Hu3DLLightStaticSet(var_r19, var_r30, 1); + var_r22++; + var_r24++; + sp14 = var_f24 - 50.0f; + sp10 = sp8 - 50.0f; + var_r31->unk_112[0] = var_r24 * var_r24; + var_r31->unk_144[0] = 0; + var_r31->unk_112[1] = var_r22 * var_r24; + var_r31->unk_144[1] = var_r31->unk_144[0] + var_r31->unk_112[0]; + if (var_r31->unk_00 != 0) { + var_r31->unk_112[2] = 0; + } + else { + var_r31->unk_112[2] = var_r22 * var_r24; + } + var_r31->unk_144[2] = var_r31->unk_144[1] + var_r31->unk_112[1]; + if (var_r31->unk_00 == 0) { + var_r31->unk_112[3] = 0; + } + else { + var_r31->unk_112[3] = var_r22 * var_r24; + } + var_r31->unk_144[3] = var_r31->unk_144[2] + var_r31->unk_112[2]; + var_r31->unk_112[4] = var_r24 * 5; + var_r31->unk_144[4] = var_r31->unk_144[3] + var_r31->unk_112[3]; + var_r31->unk_112[5] = var_r24 * 5; + var_r31->unk_144[5] = var_r31->unk_144[4] + var_r31->unk_112[4]; + var_r31->unk_112[6] = var_r22 * 5; + var_r31->unk_144[6] = var_r31->unk_144[5] + var_r31->unk_112[5]; + var_r31->unk_112[7] = var_r22 * 5; + var_r31->unk_144[7] = var_r31->unk_144[6] + var_r31->unk_112[6]; + var_r31->unk_112[8] = var_r24 * 5; + var_r31->unk_144[8] = var_r31->unk_144[7] + var_r31->unk_112[7]; + var_r31->unk_112[9] = var_r24 * 5; + var_r31->unk_144[9] = var_r31->unk_144[8] + var_r31->unk_112[8]; + var_r31->unk_112[10] = var_r24 * 5; + var_r31->unk_144[10] = var_r31->unk_144[9] + var_r31->unk_112[9]; + var_r31->unk_112[11] = var_r24 * 5; + var_r31->unk_144[11] = var_r31->unk_144[10] + var_r31->unk_112[10]; + var_r31->unk_112[12] = var_r24 * 5; + var_r31->unk_144[12] = var_r31->unk_144[11] + var_r31->unk_112[11]; + var_r31->unk_112[13] = var_r24 * 5; + var_r31->unk_144[13] = var_r31->unk_144[12] + var_r31->unk_112[12]; + if (var_r31->unk_00 == 0) { + var_r31->unk_112[14] = 0; + } + else { + var_r31->unk_112[14] = var_r22 * 5; + } + var_r31->unk_144[14] = var_r31->unk_144[13] + var_r31->unk_112[13]; + if (var_r31->unk_00 != 0) { + var_r31->unk_112[15] = 0; + } + else { + var_r31->unk_112[15] = var_r22 * 5; + } + var_r31->unk_144[15] = var_r31->unk_144[14] + var_r31->unk_112[14]; + var_r31->unk_112[16] = 0x19; + var_r31->unk_144[16] = var_r31->unk_144[15] + var_r31->unk_112[15]; + var_r31->unk_112[17] = 0x19; + var_r31->unk_144[17] = var_r31->unk_144[16] + var_r31->unk_112[16]; + var_r31->unk_112[18] = 0x19; + var_r31->unk_144[18] = var_r31->unk_144[17] + var_r31->unk_112[17]; + var_r31->unk_112[19] = 0x19; + var_r31->unk_144[19] = var_r31->unk_144[18] + var_r31->unk_112[18]; + var_r31->unk_112[20] = 0x19; + var_r31->unk_144[20] = var_r31->unk_144[19] + var_r31->unk_112[19]; + var_r31->unk_112[21] = 0x19; + var_r31->unk_144[21] = var_r31->unk_144[20] + var_r31->unk_112[20]; + var_r31->unk_112[22] = 0x19; + var_r31->unk_144[22] = var_r31->unk_144[21] + var_r31->unk_112[21]; + var_r31->unk_112[23] = 0x19; + var_r31->unk_144[23] = var_r31->unk_144[22] + var_r31->unk_112[22]; + var_r31->unk_112[24] = var_r24 * var_r24; + var_r31->unk_144[24] = var_r31->unk_144[23] + var_r31->unk_112[23]; + if (var_r31->unk_00 == 0) { + var_r31->unk_06 = var_r31->unk_144[17] + (var_r31->unk_112[17] / 2) + 1; + } + else { + var_r31->unk_06 = var_r31->unk_144[16] + (var_r31->unk_112[16] / 2) - 1; + } + var_r31->unk_10C = var_r22; + var_r31->unk_10E = var_r24; + var_r31->unk_110 = var_r31->unk_144[24] + var_r31->unk_112[24]; + var_r31->unk_240 = 0x19; + var_r31->unk_178 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 2, var_r23->unk_48); + memset(var_r31->unk_178, 0, var_r31->unk_110 * 2); + var_r31->unk_17C = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48); + memset(var_r31->unk_17C, 0, var_r31->unk_110 * 0xC); + var_r31->unk_180 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48); + memset(var_r31->unk_180, 0, var_r31->unk_110 * 0xC); + var_r31->unk_184 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 8, var_r23->unk_48); + memset(var_r31->unk_184, 0, var_r31->unk_110 * 8); + var_r31->unk_188 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48); + memset(var_r31->unk_188, 0, var_r31->unk_110 * 0xC); + var_r31->unk_18C = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48); + memset(var_r31->unk_18C, 0, var_r31->unk_110 * 0xC); + var_r31->unk_190 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 6, var_r23->unk_48); + memset(var_r31->unk_190, 0, var_r31->unk_110 * 6); + var_r31->unk_194 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110 * 0xC, var_r23->unk_48); + memset(var_r31->unk_194, 0, var_r31->unk_110 * 0xC); + var_r31->unk_198 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_112[0] * 0xC, var_r23->unk_48); + memset(var_r31->unk_198, 0, var_r31->unk_112[0] * 0xC); + var_r31->unk_1A0 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_110, var_r23->unk_48); + memset(var_r31->unk_1A0, 0, var_r31->unk_110); + for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) { + if (((var_r31->unk_112[0] > 0) && (var_r30 >= var_r31->unk_144[0]) && (var_r30 < (var_r31->unk_144[0] + var_r31->unk_112[0]))) + || ((var_r31->unk_112[4] > 0) && (var_r30 >= var_r31->unk_144[4]) && (var_r30 < (var_r31->unk_144[4] + var_r31->unk_112[4]))) + || ((var_r31->unk_112[8] > 0) && (var_r30 >= var_r31->unk_144[8]) && (var_r30 < (var_r31->unk_144[8] + var_r31->unk_112[8]))) + || ((var_r31->unk_112[10] > 0) && (var_r30 >= var_r31->unk_144[10]) && (var_r30 < (var_r31->unk_144[10] + var_r31->unk_112[10]))) + || ((var_r31->unk_112[12] > 0) && (var_r30 >= var_r31->unk_144[12]) && (var_r30 < (var_r31->unk_144[12] + var_r31->unk_112[12]))) + || ((var_r31->unk_112[16] > 0) && (var_r30 >= var_r31->unk_144[16]) && (var_r30 < (var_r31->unk_144[16] + var_r31->unk_112[16]))) + || ((var_r31->unk_112[17] > 0) && (var_r30 >= var_r31->unk_144[17]) && (var_r30 < (var_r31->unk_144[17] + var_r31->unk_112[17]))) + || ((var_r31->unk_112[20] > 0) && (var_r30 >= var_r31->unk_144[20]) && (var_r30 < (var_r31->unk_144[20] + var_r31->unk_112[20]))) + || ((var_r31->unk_112[21] > 0) && (var_r30 >= var_r31->unk_144[21]) && (var_r30 < (var_r31->unk_144[21] + var_r31->unk_112[21])))) { + var_r31->unk_1A0[var_r30] = 1; + } + else { + var_r31->unk_1A0[var_r30] = 0; + } + } + var_r31->unk_23A.r = 0; + var_r31->unk_23A.g = 0; + var_r31->unk_23A.b = 0xFF; + var_r31->unk_23A.a = 0x40; + var_r29 = &var_r31->unk_17C[var_r31->unk_144[0]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[0]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[0]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[0]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = sp8; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp14 / (var_r24 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[0] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10E; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_r29->x = var_f30; + var_r29->y = var_f28; + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f26 = var_f26 + var_f23; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0, var_r24 - 1, var_r24 - 1); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[1]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[1]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[1]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[1]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = 0.5f * var_f24; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[1] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10E; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_r29->x = var_f30; + var_r29->y = var_f28; + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 1, var_r24 - 1, var_r22 - 1); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[2]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[2]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[2]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[2]]; + var_f25 = var_f30 = -(0.5f * var_f24); + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[2] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10E; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_r29->x = var_f30; + var_r29->y = var_f28; + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f26 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f26 = sp1C; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 2, var_r24 - 1, var_r22 - 1); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[3]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[3]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[3]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[3]]; + var_f25 = var_f30 = 0.5f * var_f24; + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[3] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10E; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_r29->x = var_f30; + var_r29->y = var_f28; + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f26 -= var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f26 = sp1C; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 3, var_r24 - 1, var_r22 - 1); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[4]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[4]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[4]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[4]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = sp8; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[4] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_f27 = 90.0f * (var_r30 / 4.0f); + var_r29->x = var_f30; + var_r29->y = sp20 + (25.0 * (cosd(var_f27) - 1.0)); + var_r29->z = sp1C + (25.0 * sind(var_f27)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 4, var_r24 - 1, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[5]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[5]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[5]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[5]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[5] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_f27 = 90.0f + (90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f30; + var_r29->y = sp20 + (25.0 * cosd(var_f27)); + var_r29->z = sp1C + (25.0 * sind(var_f27)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 5, var_r24 - 1, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[6]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[6]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[6]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[6]]; + var_f25 = var_f30 = -(0.5f * var_f24); + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[6] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10C; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 90.0f * (var_r27 / 4.0f); + var_r29->x = var_f25 - (25.0 * (cosd(var_f27) - 1.0)); + var_r29->y = var_f28; + var_r29->z = sp1C + (25.0 * sind(var_f27)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 6, 4, var_r22 - 1); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[7]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[7]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[7]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[7]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = 0.5f * var_f24; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[7] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10C; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 90.0f - (90.0f * (var_r27 / 4.0f)); + var_r29->x = var_f25 + (25.0 * cosd(var_f27)); + var_r29->y = var_f28; + var_r29->z = sp1C + (25.0 * (sind(var_f27) - 1.0)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 7, 4, var_r22 - 1); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[8]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[8]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[8]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[8]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[8] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_f27 = 90.0f + (90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f25 + 25.0 * cosd(var_f27); + var_r29->y = sp20 + (25.0 * sind(var_f27)); + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f26 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f26 = sp1C; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 8, var_r24 - 1, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[9]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[9]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[9]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[9]]; + var_f25 = var_f30 = -(0.5f * var_f24 - 25.0f); + sp20 = var_f28 = 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[9] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_f27 = 180.0f + (90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f25 + (25.0 * cosd(var_f27)); + var_r29->y = sp20 + (25.0 * sind(var_f27)); + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f26 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f26 = sp1C; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 9, var_r24 - 1, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[10]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[10]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[10]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[10]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[10] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_f27 = 90.0f - (90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f25 + (25.0 * cosd(var_f27)); + var_r29->y = sp20 + (25.0 * sind(var_f27)); + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f26 -= var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f26 = sp1C; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0xA, var_r24 - 1, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[11]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[11]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[11]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[11]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[11] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_f27 = -(90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f25 + (25.0 * cosd(var_f27)); + var_r29->y = sp20 + (25.0 * sind(var_f27)); + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f26 -= var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f26 = sp1C; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0xB, var_r24 - 1, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[12]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[12]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[12]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[12]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[12] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_f27 = 90.0f + (90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f30; + var_r29->y = sp20 + (25.0 * sind(var_f27)); + var_r29->z = sp1C + (25.0 * cosd(var_f27)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 -= var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0xC, var_r24 - 1, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[13]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[13]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[13]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[13]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[13] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_f27 = 180.0f + (90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f30; + var_r29->y = sp20 + (25.0 * sind(var_f27)); + var_r29->z = sp1C + (25.0 * cosd(var_f27)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 -= var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0xD, var_r24 - 1, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[14]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[14]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[14]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[14]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[14] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10C; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = -(90.0f * (var_r27 / 4.0f)); + var_r29->x = var_f25 + (25.0 * cosd(var_f27)); + var_r29->y = var_f28; + var_r29->z = sp1C + (25.0 * sind(var_f27)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0xE, 4, var_r22 - 1); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[15]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[15]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[15]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[15]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[15] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10C; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = -90.0f - (90.0f * (var_r27 / 4.0f)); + var_r29->x = var_f25 + (25.0 * cosd(var_f27)); + var_r29->y = var_f28; + var_r29->z = sp1C + (25.0 * sind(var_f27)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0xF, 4, var_r22 - 1); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[16]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[16]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[16]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[16]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[16] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 90.0f * (var_r27 / 4.0f); + var_f22 = 90.0f * (var_r30 / 4.0f); + var_r29->x = var_f25 - (25.0 * cosd(var_f27) * sind(var_f22)); + var_r29->y = sp20 + (25.0 * cosd(var_f22)); + var_r29->z = sp1C + (25.0 * sind(var_f27) * sind(var_f22)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x10, 4, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[17]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[17]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[17]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[17]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[17] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 90.0f - (90.0f * (var_r27 / 4.0f)); + var_f22 = -(90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f25 + (25.0 * cosd(var_f27) * -sind(var_f22)); + var_r29->y = sp20 + (25.0 * cosd(var_f22)); + var_r29->z = sp1C + (25.0 * sind(var_f27) * -sind(var_f22)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x11, 4, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[18]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[18]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[18]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[18]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[18] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 90.0f * (var_r27 / 4.0f); + var_f22 = 90.0f + (90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f25 - (25.0 * cosd(var_f27) * sind(var_f22)); + var_r29->y = sp20 + (25.0 * cosd(var_f22)); + var_r29->z = sp1C + (25.0 * sind(var_f27) * sind(var_f22)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x12, 4, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[19]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[19]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[19]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[19]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = 25.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[19] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 90.0f * (var_r27 / 4.0f); + var_f22 = 90.0f * (var_r30 / 4.0f); + var_r29->x = var_f25 + (25.0 * cosd(var_f27) * sind(var_f22)); + var_r29->y = sp20 - (25.0 * cosd(var_f22)); + var_r29->z = sp1C + (25.0 * sind(var_f27) * sind(var_f22)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x13, 4, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[20]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[20]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[20]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[20]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[20] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 180.0f + (90.0f * (var_r27 / 4.0f)); + var_f22 = 90.0f * (var_r30 / 4.0f); + var_r29->x = var_f25 - (25.0 * cosd(var_f27) * sind(var_f22)); + var_r29->y = sp20 + (25.0 * cosd(var_f22)); + var_r29->z = sp1C + (25.0 * sind(var_f27) * sind(var_f22)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x14, 4, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[21]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[21]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[21]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[21]]; + var_f25 = var_f30 = -(0.5f * var_f24 - 25.0f); + sp20 = var_f28 = sp8 - 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[21] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 270.0f - (90.0f * (var_r27 / 4.0f)); + var_f22 = -(90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f25 + (cosd(var_f27) * 25.0 * -sind(var_f22)); + var_r29->y = sp20 + 25.0 * cosd(var_f22); + var_r29->z = sp1C + (25.0 * sind(var_f27) * -sind(var_f22)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x15, 4, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[22]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[22]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[22]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[22]]; + var_f25 = var_f30 = (0.5f * var_f24) - 25.0f; + sp20 = var_f28 = 25.0f; + sp1C = var_f26 = -((0.5f * var_f24) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[22] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 180.0f + (90.0f * (var_r27 / 4.0f)); + var_f22 = 90.0f + (90.0f * (var_r30 / 4.0f)); + var_r29->x = var_f25 - (25.0 * cosd(var_f27) * sind(var_f22)); + var_r29->y = sp20 + (25.0 * cosd(var_f22)); + var_r29->z = sp1C + (25.0 * sind(var_f27) * sind(var_f22)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x16, 4, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[23]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[23]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[23]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[23]]; + var_f25 = var_f30 = -((var_f24 * 0.5f) - 25.0f); + sp20 = var_f28 = 25.0f; + sp1C = var_f26 = -((var_f24 * 0.5f) - 25.0f); + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp10 / (var_r22 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[23] != 0) { + for (var_r30 = 0; var_r30 < 5; var_r30++) { + for (var_r27 = 0; var_r27 < 5; var_r27++) { + var_f27 = 180.0f + (90.0f * (var_r27 / 4.0f)); + var_f22 = 90.0f * (var_r30 / 4.0f); + var_r29->x = var_f25 + (25.0 * cosd(var_f27) * sind(var_f22)); + var_r29->y = sp20 - (25.0 * cosd(var_f22)); + var_r29->z = sp1C + (25.0 * sind(var_f27) * sind(var_f22)); + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f28 -= var_f18; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x17, 4, 4); + } + var_r29 = &var_r31->unk_17C[var_r31->unk_144[24]]; + var_r26 = &var_r31->unk_188[var_r31->unk_144[24]]; + var_r28 = &var_r31->unk_184[var_r31->unk_144[24]]; + var_r25 = &var_r31->unk_178[var_r31->unk_144[24]]; + var_f25 = var_f30 = -((0.5f * var_f24) - 25.0f); + sp20 = var_f28 = 0.0f; + sp1C = var_f26 = (0.5f * var_f24) - 25.0f; + var_f19 = var_f31 = 0.0f; + sp18 = var_f29 = 0.0f; + var_f23 = sp14 / (var_r24 - 1); + var_f18 = sp14 / (var_r24 - 1); + var_f21 = 1.0f / (var_r31->unk_10E - 1); + var_f20 = 1.0f / (var_r31->unk_10E - 1); + if (var_r31->unk_112[0x18] != 0) { + for (var_r30 = 0; var_r30 < var_r31->unk_10E; var_r30++) { + for (var_r27 = 0; var_r27 < var_r31->unk_10E; var_r27++) { + var_r29->x = var_f30; + var_r29->y = var_f28; + var_r29->z = var_f26; + var_r28->x = var_f31; + var_r28->y = var_f29; + var_f30 += var_f23; + var_f31 += var_f21; + var_r29++; + var_r26++; + var_r28++; + var_r25++; + } + var_f30 = var_f25; + var_f31 = var_f19; + var_f26 = var_f26 - var_f23; + var_f29 += var_f20; + } + fn_1_D9A8(var_r31, var_r23, 0x18, var_r24 - 1, var_r24 - 1); + } + for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) { + for (var_r27 = 0; var_r27 < var_r30; var_r27++) { + var_f30 = var_r31->unk_17C[var_r30].x - var_r31->unk_17C[var_r27].x; + var_f28 = var_r31->unk_17C[var_r30].y - var_r31->unk_17C[var_r27].y; + var_f26 = var_r31->unk_17C[var_r30].z - var_r31->unk_17C[var_r27].z; + sp24 = (var_f26 * var_f26) + ((var_f30 * var_f30) + (var_f28 * var_f28)); + if (sp24 < 10.0f) { + var_r31->unk_178[var_r30] = var_r27; + if (var_r31->unk_178[var_r27] != -1) { + var_r31->unk_178[var_r30] = var_r31->unk_178[var_r27]; + } + break; + } + } + if (var_r27 >= var_r30) { + var_r31->unk_178[var_r30] = -1; + } + } + memcpy(var_r31->unk_180, var_r31->unk_17C, var_r31->unk_110 * 0xC); + memcpy(var_r31->unk_198, &var_r31->unk_180[var_r31->unk_144[0]], var_r31->unk_112[0] * 0xC); + var_r31->unk_19C = 0; + fn_1_DB44(var_r31, var_r23); + fn_1_DE3C(var_r31, var_r23); + var_f31 = sqrtf((0.5f * sp8 * (0.5f * sp8)) + ((0.5f * var_f24 * (0.5f * var_f24)) + (0.5f * var_f24 * (0.5f * var_f24)))); + for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) { + var_f30 = var_r31->unk_17C[var_r30].x; + var_f28 = var_r31->unk_17C[var_r30].y - (0.5f * sp8); + var_f26 = var_r31->unk_17C[var_r30].z; + sp24 = sqrtf((var_f26 * var_f26) + ((var_f30 * var_f30) + (var_f28 * var_f28))); + var_f27 = sp24; + sp24 = 1.0f - (sp24 / var_f31); + if (var_f27 != 0.0f) { + var_f22 = 1.0f / var_f27; + } + else { + var_f22 = 0.0; + } + var_r31->unk_194[var_r30].x = sp24 * (var_f22 * var_r31->unk_17C[var_r30].x); + var_r31->unk_194[var_r30].y = sp24 * (var_f22 * var_r31->unk_17C[var_r30].y); + var_r31->unk_194[var_r30].z = sp24 * (var_f22 * var_r31->unk_17C[var_r30].z); + } + for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) { + if ((((var_r31->unk_112[6] <= 0) || (var_r30 < var_r31->unk_144[6]) || (var_r30 >= (var_r31->unk_144[6] + var_r31->unk_112[6]))) + && ((var_r31->unk_112[7] <= 0) || (var_r30 < var_r31->unk_144[7]) || (var_r30 >= (var_r31->unk_144[7] + var_r31->unk_112[7]))) + && ((var_r31->unk_112[0xE] <= 0) || (var_r30 < var_r31->unk_144[0xE]) || (var_r30 >= (var_r31->unk_144[0xE] + var_r31->unk_112[0xE]))) + && ((var_r31->unk_112[0xF] <= 0) || (var_r30 < var_r31->unk_144[0xF]) || (var_r30 >= (var_r31->unk_144[0xF] + var_r31->unk_112[0xF]))) + && ((var_r31->unk_112[4] <= 0) || (var_r30 < var_r31->unk_144[4]) || (var_r30 >= (var_r31->unk_144[4] + var_r31->unk_112[4]))) + && ((var_r31->unk_112[8] <= 0) || (var_r30 < var_r31->unk_144[8]) || (var_r30 >= (var_r31->unk_144[8] + var_r31->unk_112[8]))) + && ((var_r31->unk_112[0xA] <= 0) || (var_r30 < var_r31->unk_144[0xA]) || (var_r30 >= (var_r31->unk_144[0xA] + var_r31->unk_112[0xA]))) + && ((var_r31->unk_112[0xC] <= 0) || (var_r30 < var_r31->unk_144[0xC]) || (var_r30 >= (var_r31->unk_144[0xC] + var_r31->unk_112[0xC]))) + && ((var_r31->unk_112[0x10] <= 0) || (var_r30 < var_r31->unk_144[0x10]) + || (var_r30 >= (var_r31->unk_144[0x10] + var_r31->unk_112[0x10]))) + && ((var_r31->unk_112[0x11] <= 0) || (var_r30 < var_r31->unk_144[0x11]) + || (var_r30 >= (var_r31->unk_144[0x11] + var_r31->unk_112[0x11]))) + && ((var_r31->unk_112[0x14] <= 0) || (var_r30 < var_r31->unk_144[0x14]) + || (var_r30 >= (var_r31->unk_144[0x14] + var_r31->unk_112[0x14]))) + && ((var_r31->unk_112[0x15] <= 0) || (var_r30 < var_r31->unk_144[0x15]) + || (var_r30 >= (var_r31->unk_144[0x15] + var_r31->unk_112[0x15]))) + && (var_r30 >= var_r31->unk_144[4])) + || (var_r31->unk_178[var_r30] != -1)) { + var_r31->unk_18C[var_r30].x = var_r31->unk_18C[var_r30].y = var_r31->unk_18C[var_r30].z = 0.0; + var_r31->unk_190[var_r30][0] = var_r31->unk_190[var_r30][1] = 0; + var_r31->unk_190[var_r30][2] = 0; + } + else if (((var_r31->unk_112[0] > 0) && (var_r30 >= var_r31->unk_144[0]) && (var_r30 < (var_r31->unk_144[0] + var_r31->unk_112[0]))) + || ((var_r31->unk_112[4] > 0) && (var_r30 >= var_r31->unk_144[4]) && (var_r30 < (var_r31->unk_144[4] + var_r31->unk_112[4]))) + || ((var_r31->unk_112[8] > 0) && (var_r30 >= var_r31->unk_144[8]) && (var_r30 < (var_r31->unk_144[8] + var_r31->unk_112[8]))) + || ((var_r31->unk_112[0xA] > 0) && (var_r30 >= var_r31->unk_144[0xA]) && (var_r30 < (var_r31->unk_144[0xA] + var_r31->unk_112[0xA]))) + || ((var_r31->unk_112[0xC] > 0) && (var_r30 >= var_r31->unk_144[0xC]) && (var_r30 < (var_r31->unk_144[0xC] + var_r31->unk_112[0xC]))) + || ((var_r31->unk_112[0x10] > 0) && (var_r30 >= var_r31->unk_144[0x10]) && (var_r30 < (var_r31->unk_144[0x10] + var_r31->unk_112[0x10]))) + || ((var_r31->unk_112[0x11] > 0) && (var_r30 >= var_r31->unk_144[0x11]) && (var_r30 < (var_r31->unk_144[0x11] + var_r31->unk_112[0x11]))) + || ((var_r31->unk_112[0x14] > 0) && (var_r30 >= var_r31->unk_144[0x14]) && (var_r30 < (var_r31->unk_144[0x14] + var_r31->unk_112[0x14]))) + || ((var_r31->unk_112[0x15] > 0) && (var_r30 >= var_r31->unk_144[0x15]) + && (var_r30 < (var_r31->unk_144[0x15] + var_r31->unk_112[0x15])))) { + *var_r31->unk_190[var_r30] = var_r31->unk_190[var_r30][1] = 0; + sp24 = sqrtf((var_r31->unk_17C[var_r30].x * var_r31->unk_17C[var_r30].x) + (var_r31->unk_17C[var_r30].z * var_r31->unk_17C[var_r30].z)); + var_f27 = sp24; + sp24 = 1.0f - (sp24 / sqrtf(var_f24 * var_f24)); + var_r31->unk_18C[var_r30].y = -(180.0f * sp24); + var_f27 = sqrtf(var_f27); + if (var_f27 != 0.0f) { + var_f22 = 1.0f / var_f27; + } + else { + var_f22 = 0.0; + } + var_r31->unk_18C[var_r30].x = sind((180.0f * (var_f22 * var_r31->unk_17C[var_r30].x))); + var_r31->unk_18C[var_r30].z = sind((180.0f * (var_f22 * var_r31->unk_17C[var_r30].z))); + var_r31->unk_18C[var_r30].x *= 20.0f * -(1.0f - sp24); + var_r31->unk_18C[var_r30].z *= (20.0f * -(1.0f - sp24)); + var_r31->unk_190[var_r30][2] = 1; + } + else { + sp24 = sqrtf((var_r31->unk_17C[var_r30].x * var_r31->unk_17C[var_r30].x) + (var_r31->unk_17C[var_r30].z * var_r31->unk_17C[var_r30].z)); + if (sp24 != 0.0f) { + sp24 = 1.0f / sp24; + } + else { + sp24 = 0.0f; + } + var_r31->unk_18C[var_r30].x = -(sp24 * var_r31->unk_17C[var_r30].x); + var_r31->unk_18C[var_r30].z = -(sp24 * var_r31->unk_17C[var_r30].z); + var_r31->unk_18C[var_r30].y = 0.0; + var_f27 = 180.0 + (180.0 * (atan2(var_r31->unk_17C[var_r30].x, var_r31->unk_17C[var_r30].z) / 3.141592653589793)); + if (var_f27 > 360.0f) { + var_f27 = fmod(var_f27, 360.0); + } + else if (var_f27 < 0.0f) { + var_f27 += 360.0f; + } + var_f27 = 255.0f * (0.0027777778f * var_f27); + if (var_f27 >= 255.0f) { + var_f27 = 255.0f; + } + else if (var_f27 < 0.0f) { + var_f27 = 0.0; + } + var_f22 = 64.0f * (var_r31->unk_17C[var_r30].y / sp8); + if (var_f22 >= 63.0f) { + var_f22 = 63.0f; + } + else if (var_f22 < 0.0f) { + var_f22 = 0.0; + } + var_r31->unk_190[var_r30][0] = var_f27; + var_r31->unk_190[var_r30][1] = var_f22; + var_r31->unk_190[var_r30][2] = 2; + } + } + DCFlushRangeNoSync(var_r31->unk_180, var_r31->unk_110 * 0xC); + DCFlushRangeNoSync(var_r31->unk_17C, var_r31->unk_110 * 0xC); + DCFlushRangeNoSync(var_r31->unk_188, var_r31->unk_110 * 0xC); + DCFlushRangeNoSync(var_r31->unk_184, var_r31->unk_110 * 8); + DCFlushRangeNoSync(var_r31->unk_178, var_r31->unk_110 * 2); + PPCSync(); + for (var_r21 = 0; var_r21 < 0x19; var_r21++) { + if ((var_r31->unk_208[var_r21] != 0) && var_r31->unk_1A4[var_r21] && (var_r31->unk_112[var_r21] != 0)) { + var_r17 = HuMemDirectMallocNum(HEAP_DATA, 0x4000, var_r23->unk_48); + spC = var_r17; + (void)var_r18; + DCFlushRange(var_r17, 0x4000); + GXBeginDisplayList(spC, 0x4000); + GXBegin(GX_QUADS, GX_VTXFMT0, var_r31->unk_208[var_r21] * 4); + var_r20 = var_r31->unk_1A4[var_r21]; + for (var_r30 = 0; var_r30 < var_r31->unk_208[var_r21]; var_r30++) { + for (var_r27 = 0; var_r27 < 4; var_r27++) { + if (var_r31->unk_178[var_r20[var_r27]] == -1) { + var_r18 = var_r20[var_r27]; + } + else { + var_r18 = var_r31->unk_178[var_r20[var_r27]]; + } + GXPosition1x16(var_r18); + GXNormal1x16(var_r18); + GXColor1x16(0); + GXTexCoord1x16(var_r20[var_r27]); + } + var_r20 += 5; + } + var_r31->unk_244[var_r21] = GXEndDisplayList(); + if (var_r31->unk_244[var_r21] >= 0x4000) { + OSReport("ERROR! GList test size over! \n"); + } + var_r31->unk_2A8[var_r21] = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_244[var_r21], var_r23->unk_48); + memcpy(var_r31->unk_2A8[var_r21], var_r17, var_r31->unk_244[var_r21]); + DCFlushRange(var_r31->unk_2A8[var_r21], var_r31->unk_244[var_r21]); + HuMemDirectFree(var_r17); + } + } + return var_r19; +} + +void fn_1_D9A8(M425DllUnkStruct4 *var_r31, ModelData *var_r24, s32 var_r30, s32 var_r26, s32 var_r25) +{ + s16 *var_r29; + s32 var_r28; + s32 var_r27; + + var_r31->unk_208[var_r30] = var_r26 * var_r25; + var_r31->unk_1A4[var_r30] = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_208[var_r30] * 0xA, var_r24->unk_48); + memset(var_r31->unk_1A4[var_r30], 0, var_r31->unk_208[var_r30] * 0xA); + var_r29 = var_r31->unk_1A4[var_r30]; + for (var_r28 = 0; var_r28 < var_r25; var_r28++) { + for (var_r27 = 0; var_r27 < var_r26; var_r27++) { + var_r29[0] = var_r31->unk_144[var_r30] + (var_r26 + 1) * var_r28 + var_r27; + var_r29[1] = var_r31->unk_144[var_r30] + (var_r26 + 1) * var_r28 + (var_r27 + 1); + var_r29[2] = var_r31->unk_144[var_r30] + (var_r26 + 1) * (var_r28 + 1) + (var_r27 + 1); + var_r29[3] = var_r31->unk_144[var_r30] + (var_r26 + 1) * (var_r28 + 1) + var_r27; + var_r29 += 5; + } + } + DCFlushRangeNoSync(var_r31->unk_1A4[var_r30], var_r31->unk_208[var_r30] * 0xA); + PPCSync(); +} + +void fn_1_DB44(M425DllUnkStruct4 *arg0, ModelData *model) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + s16 *var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + for (var_r30 = 0; var_r30 < 0x19; var_r30++) { + if ((arg0->unk_208[var_r30] != 0) && arg0->unk_1A4[var_r30]) { + for (var_r31 = arg0->unk_1A4[var_r30], var_r29 = 0; var_r29 < arg0->unk_208[var_r30]; var_r29++, var_r31 += 0x5) { + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if (arg0->unk_178[var_r31[var_r28]] != -1) { + var_r31[var_r28] = arg0->unk_178[var_r31[var_r28]]; + } + } + } + } + } + for (var_r30 = 0; var_r30 < 0x19; var_r30++) { + if ((arg0->unk_208[var_r30] != 0) && arg0->unk_1A4[var_r30]) { + for (var_r31 = arg0->unk_1A4[var_r30], var_r29 = 0; var_r29 < arg0->unk_208[var_r30]; var_r29++, var_r31 += 0x5) { + var_f31 = arg0->unk_17C[var_r31[0]].x - arg0->unk_17C[var_r31[1]].x; + var_f30 = arg0->unk_17C[var_r31[0]].y - arg0->unk_17C[var_r31[1]].y; + var_f29 = arg0->unk_17C[var_r31[0]].z - arg0->unk_17C[var_r31[1]].z; + var_f28 = (var_f29 * var_f29) + ((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f28 < 10.0f) { + var_r31[4] = 1; + } + else { + var_f31 = arg0->unk_17C[var_r31[0]].x - arg0->unk_17C[var_r31[2]].x; + var_f30 = arg0->unk_17C[var_r31[0]].y - arg0->unk_17C[var_r31[2]].y; + var_f29 = arg0->unk_17C[var_r31[0]].z - arg0->unk_17C[var_r31[2]].z; + var_f28 = (var_f29 * var_f29) + ((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f28 < 10.0f) { + var_r31[4] = 2; + } + else { + var_r31[4] = 0; + } + } + } + } + } +} + +void fn_1_DE3C(M425DllUnkStruct4 *arg0, ModelData *model) +{ + Vec sp20; + Vec sp14; + Vec sp8; + s32 var_r30; + s32 var_r29; + s16 *var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + memset(arg0->unk_188, 0, arg0->unk_110 * sizeof(Vec)); + for (var_r30 = 0; var_r30 < arg0->unk_240; var_r30++) { + if ((arg0->unk_208[var_r30] != 0) && arg0->unk_1A4[var_r30]) { + for (var_r28 = arg0->unk_1A4[var_r30], var_r24 = 0; var_r24 < arg0->unk_208[var_r30]; var_r24++, var_r28 += 5) { + switch (var_r28[4]) { + case 1: + var_r27 = 0; + var_r29 = 2; + var_r26 = 3; + var_r25 = 1; + break; + case 2: + var_r27 = 0; + var_r29 = 1; + var_r26 = 3; + var_r25 = 2; + break; + default: + var_r27 = 0; + var_r29 = 1; + var_r26 = 2; + var_r25 = 3; + break; + } + var_r27 = var_r28[var_r27]; + var_r29 = var_r28[var_r29]; + var_r26 = var_r28[var_r26]; + var_r25 = var_r28[var_r25]; + sp14.x = arg0->unk_180[var_r29].x - arg0->unk_180[var_r27].x; + sp14.y = arg0->unk_180[var_r29].y - arg0->unk_180[var_r27].y; + sp14.z = arg0->unk_180[var_r29].z - arg0->unk_180[var_r27].z; + sp8.x = arg0->unk_180[var_r26].x - arg0->unk_180[var_r29].x; + sp8.y = arg0->unk_180[var_r26].y - arg0->unk_180[var_r29].y; + sp8.z = arg0->unk_180[var_r26].z - arg0->unk_180[var_r29].z; + PSVECCrossProduct(&sp14, &sp8, &sp20); + sp20.x *= -1.0f; + sp20.y *= -1.0f; + sp20.z *= -1.0f; + arg0->unk_188[var_r27].x += sp20.x; + arg0->unk_188[var_r27].y += sp20.y; + arg0->unk_188[var_r27].z += sp20.z; + arg0->unk_188[var_r29].x += sp20.x; + arg0->unk_188[var_r29].y += sp20.y; + arg0->unk_188[var_r29].z += sp20.z; + arg0->unk_188[var_r26].x += sp20.x; + arg0->unk_188[var_r26].y += sp20.y; + arg0->unk_188[var_r26].z += sp20.z; + arg0->unk_188[var_r25].x += sp20.x; + arg0->unk_188[var_r25].y += sp20.y; + arg0->unk_188[var_r25].z += sp20.z; + } + } + } + for (var_r30 = 0; var_r30 < arg0->unk_110; var_r30++) { + PSVECNormalize(&arg0->unk_188[var_r30], &arg0->unk_188[var_r30]); + } +} + +s32 lbl_1_data_150[3][2] = { { 0x638, 0x63B }, { 0x639, 0x63C }, { 0x63A, 0x63D } }; +GXColor lbl_1_data_168 = { 255, 255, 255, 255 }; +Mtx lbl_1_data_16C = { + { 0.5f, 0.0f, 0.0f, -0.5f }, + { 0.0f, 0.5f, 0.0f, -0.5f }, + { 0.0f, 0.0f, 0.5f, -0.5f }, +}; +Vec lbl_1_data_19C[4] = { + { -0.5f, 0.5f, 0.0f }, + { 0.5f, 0.5f, 0.0f }, + { 0.5f, -0.5f, 0.0f }, + { -0.5f, -0.5f, 0.0f }, +}; +Vec2f lbl_1_data_1CC[4] = { + { 0.0f, 0.0f }, + { 0.25f, 0.0f }, + { 0.25f, 0.25f }, + { 0.0f, 0.25f }, +}; + +void fn_1_E210(s32 arg0) +{ + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + M425DllUnkStruct4 *var_r31; + s32 var_r30; + s32 var_r29; + LightData *var_r28; + ModelData *var_r27; + s32 var_r26; + + if (lbl_1_bss_6EC) { + var_r27 = &Hu3DData[lbl_1_bss_6EC->model[arg0]]; + var_r31 = var_r27->unk_120; + for (var_r30 = 0, var_f31 = 0.0f; var_r30 < 6; var_r30++) { + if ((var_r31->unk_84[var_r30] == -1) || (var_r31->unk_9C[var_r30] < 0.0f)) { + var_r31->unk_84[var_r30] = -1; + var_r31->unk_9C[var_r30] = 0.0f; + } + else { + var_f31 += var_r31->unk_9C[var_r30]; + for (var_r29 = 0; var_r29 < 5; var_r29++) { + if (var_r31->unk_3C[var_r29] == var_r31->unk_84[var_r30]) { + break; + } + } + if (var_r29 >= 5) { + for (var_r29 = 0; var_r29 < 5; var_r29++) { + if ((var_r31->unk_3C[var_r29] == -1) && (var_r31->unk_54[var_r29] <= 0.0f)) { + break; + } + } + } + if ((var_r29 < 5) && (var_r31->unk_54[var_r29] < var_r31->unk_9C[var_r30])) { + var_r31->unk_3C[var_r29] = var_r31->unk_84[var_r30]; + var_r31->unk_54[var_r29] = var_r31->unk_9C[var_r30]; + var_r31->unk_6C[var_r29] = var_r31->unk_B4[var_r30]; + } + var_r31->unk_84[var_r30] = -1; + var_r31->unk_9C[var_r30] = 0.0f; + var_r31->unk_B4[var_r30] = 0; + } + } + for (var_r30 = 0, var_r29 = 0, var_r31->unk_14 = 0.0f; var_r30 < 6; var_r30++) { + if ((var_r31->unk_3C[var_r30] != -1) && (var_r31->unk_54[var_r30] > 0.0f)) { + var_r31->unk_14 += 0.8f * var_r31->unk_54[var_r30]; + var_r29++; + } + } + + for (var_r30 = 0, var_r29 = 0, var_r31->unk_20 = 0.0f; var_r30 < 6; var_r30++) { + if ((var_r31->unk_3C[var_r30] != -1) && (var_r31->unk_54[var_r30] > 0.0f) && (var_r31->unk_6C[var_r30] != 0)) { + var_r31->unk_20 += 0.8f * var_r31->unk_54[var_r30]; + var_r29++; + } + } + if (var_r29 != 0) { + var_r31->unk_18 = 20.0f * (var_r31->unk_20 * var_r31->unk_20); + var_r31->unk_08 -= var_r31->unk_18; + if (var_r31->unk_08 < 0.0f) { + var_r31->unk_08 = 0.0f; + } + if ((var_r31->unk_18 > var_r31->unk_1C) && (var_r31->unk_18 >= 0.0f)) { + if (var_r31->unk_18 >= 13.200000000000001) { + var_r26 = HuAudFXPlay(lbl_1_data_150[2][arg0]); + } + else if (var_r31->unk_18 >= 6.6000000000000005) { + var_r26 = HuAudFXPlay(lbl_1_data_150[1][arg0]); + } + else { + var_r26 = HuAudFXPlay(lbl_1_data_150[0][arg0]); + } + var_f30 = var_r31->unk_08 / 1000.0f; + if (var_r26 != -1) { + HuAudFXPitchSet(var_r26, (s32)(8191.0f * (1.0f - var_f30))); + } + } + } + else { + var_r31->unk_18 = 0.0f; + } + var_r31->unk_1C = var_r31->unk_18; + if (var_r31->unk_2C != 0) { + if (++var_r31->unk_28 >= var_r31->unk_2C) { + var_r31->unk_2C = var_r31->unk_28 = 0; + var_r31->unk_30 = 0.0f; + } + } + if ((var_r31->unk_E0 != var_r31->unk_E8) || (var_r31->unk_E4 != var_r31->unk_EC)) { + sp8.x = sind(var_r31->unk_E4) * cosd(var_r31->unk_E0); + sp8.z = cosd(var_r31->unk_E4) * cosd(var_r31->unk_E0); + sp8.y = sind(var_r31->unk_E0); + PSVECNormalize(&sp8, &sp8); + var_r28 = &Hu3DLocalLight[var_r27->unk_38[0]]; + var_r28->unk_1C.x = 1000.0f * sp8.x; + var_r28->unk_1C.y = 1000.0f * sp8.y; + var_r28->unk_1C.z = 1000.0f * sp8.z; + var_r28->unk_28.x = sp8.x; + var_r28->unk_28.y = sp8.y; + var_r28->unk_28.z = sp8.z; + var_r31->unk_E8 = var_r31->unk_E0; + var_r31->unk_EC = var_r31->unk_E4; + } + var_r31->unk_20 = 0.0f; + } +} + +void fn_1_E914(ModelData *var_r27, Mtx matrix) +{ + s32 spB4; + s32 spB0; + Mtx sp70; + Vec sp64; + Vec sp58; + float sp48; + float sp44; + float sp40; + float sp3C; + float sp38; + float sp34; + float sp30; + float sp2C; + float sp28; + + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f19; + float var_f18; + + M425DllUnkStruct4 *var_r31; + s32 var_r30; + s32 var_r29; + s16 var_r28; + s32 var_r26; + + var_r31 = var_r27->unk_120; + if (var_r31->unk_2C != 0) { + var_f24 = (float)var_r31->unk_28 / var_r31->unk_2C; + var_r31->unk_30 = 0.30000001192092896 * cosd((90.0f * var_f24)); + sp40 = var_r31->unk_30 * (0.5 * sind((720.0f * var_f24))); + } + else { + sp40 = 0.0f; + } + if (var_r31->unk_0C != 0.0f) { + var_f19 = var_r31->unk_08 / var_r31->unk_0C; + } + else { + var_f19 = 1.0f; + } + var_r27->scale.y = var_r31->unk_DC = (0.100000024f + (0.9f * var_f19)) - sp40; + if (var_r31->unk_DC > 0.3f) { + sp3C = 1.0f - (-0.39999998f * ((var_r31->unk_DC - 0.3f) / 0.7f)); + } + else { + sp3C = 0.6f * (var_r31->unk_DC / 0.3f); + } + if (var_r31->unk_DC != 0.0f) { + sp3C /= var_r31->unk_DC; + } + else { + sp3C = 0.0f; + } + if (var_r31->unk_08 < 0.0f) { + sp3C = 0.0f; + } + if (var_f19 <= 0.3f) { + var_f24 = var_f19 / 0.3f; + var_r31->unk_E0 = 222.0f + (80.0f * var_f24); + } + var_f18 = 100.0f * var_r31->unk_14; + if (var_f19 > 0.85f) { + var_f18 += 100.0f * (4.0f * (var_f19 - 0.85f)); + } + if (var_f18 > 150.0f) { + var_f18 = 150.0f; + } + sp38 = 1.0f - var_f19; + if (var_f18 >= 0.0f) { + for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) { + if (var_r31->unk_178[var_r30] == -1) { + var_r31->unk_180[var_r30].x = var_r31->unk_17C[var_r30].x + (var_f18 * var_r31->unk_194[var_r30].x); + var_r31->unk_180[var_r30].y = var_r31->unk_17C[var_r30].y + (var_f18 * var_r31->unk_194[var_r30].y); + var_r31->unk_180[var_r30].z = var_r31->unk_17C[var_r30].z + (var_f18 * var_r31->unk_194[var_r30].z); + } + } + } + else { + memcpy(var_r31->unk_180, var_r31->unk_17C, var_r31->unk_110 * 0xC); + } + var_r31->unk_14 = 0.0f; + for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) { + if (!(var_f19 >= 1.0f) && (var_r31->unk_190[var_r30][2] != 0)) { + switch (var_r31->unk_190[var_r30][2]) { + case 1: + var_r31->unk_180[var_r30].x += sp38 * var_r31->unk_18C[var_r30].x; + var_r31->unk_180[var_r30].y += sp38 * var_r31->unk_18C[var_r30].y; + var_r31->unk_180[var_r30].z += sp38 * var_r31->unk_18C[var_r30].z; + break; + case 2: + var_f24 = lbl_1_bss_6E4[var_r31->unk_190[var_r30][0] + (var_r31->unk_190[var_r30][1] << 8)]; + var_f24 = 80.0f * (0.003921569f * (255.0f - var_f24) * sp38); + var_r31->unk_180[var_r30].x += var_f24 * var_r31->unk_18C[var_r30].x; + var_r31->unk_180[var_r30].y += var_f24 * var_r31->unk_18C[var_r30].y; + var_r31->unk_180[var_r30].z += var_f24 * var_r31->unk_18C[var_r30].z; + break; + } + } + } + for (var_r29 = 0, var_r28 = 0, var_f27 = var_f26 = var_f25 = 0.0f; var_r29 < 6; var_r29++) { + if ((var_r31->unk_54[var_r29] > 0.0f) || (var_r31->unk_3C[var_r29] != -1)) { + var_f27 += var_r31->unk_180[var_r31->unk_3C[var_r29]].x; + var_f25 += var_r31->unk_180[var_r31->unk_3C[var_r29]].z; + var_f26 += var_r31->unk_54[var_r29]; + var_r28++; + } + } + if (var_r28 >= 2) { + var_f27 /= var_r28; + var_f25 /= var_r28; + var_f26 /= var_r28; + mtxRot(sp70, 0.0f, var_r31->unk_D8, 0.0f); + var_f30 = var_r31->unk_CC.x + ((sp70[0][0] * var_f27) + (sp70[0][2] * var_f25)); + var_f31 = var_r31->unk_CC.z + ((sp70[2][0] * var_f27) + (sp70[2][2] * var_f25)); + fn_1_10EF8(var_r31->unk_00, 2, var_f30, var_f31); + var_r31->unk_50 = var_r31->unk_34; + var_r31->unk_54[5] = var_f26; + var_r31->unk_6C[5] = 0; + } + else { + var_r31->unk_50 = -1; + var_r31->unk_54[5] = 0.0f; + var_r31->unk_6C[5] = 0; + } + for (var_r29 = 0; var_r29 < 6; var_r29++) { + if ((var_r31->unk_54[var_r29] <= 0.0f) || (var_r31->unk_3C[var_r29] == -1)) { + var_r31->unk_3C[var_r29] = -1; + var_r31->unk_54[var_r29] = 0.0f; + var_r31->unk_6C[var_r29] = 0; + } + else { + var_f24 = 150.0f * var_r31->unk_54[var_r29] * sp3C; + sp44 = 50.0f * var_r31->unk_54[var_r29]; + if (sp44 > 15.000001f) { + sp44 = 15.000001f; + } + var_f27 = var_r31->unk_180[var_r31->unk_3C[var_r29]].x; + var_f26 = var_r31->unk_180[var_r31->unk_3C[var_r29]].y; + var_f25 = var_r31->unk_180[var_r31->unk_3C[var_r29]].z; + if (var_r29 != 5) { + for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) { + if (var_r31->unk_178[var_r30] == -1) { + var_f30 = var_r31->unk_180[var_r30].x - var_f27; + var_f29 = var_r31->unk_DC * (var_r31->unk_180[var_r30].y - var_f26); + var_f31 = 0.425f * (var_r31->unk_180[var_r30].z - var_f25); + var_f28 = (var_f31 * var_f31) + ((var_f30 * var_f30) + (var_f29 * var_f29)); + if (var_f28 < 10000.0f) { + var_f28 = sqrtf((var_f31 * var_f31) + ((var_f30 * var_f30) + (var_f29 * var_f29))); + var_f28 = var_f28 * 0.01f; + var_r31->unk_180[var_r30].y -= (1.0f - var_f28) * var_f24; + if (var_r31->unk_180[var_r30].y < 1.0f) { + var_r31->unk_180[var_r30].y = 1.0f; + } + } + if (var_r31->unk_1A0[var_r30] != 0) { + var_f31 = var_r31->unk_180[var_r30].z - var_f25; + if (!(fabs(var_f31) > 100.0)) { + var_f28 = sqrtf((var_f30 * var_f30) + (var_f31 * var_f31)); + if (var_f28 < 200.0f) { + var_f28 = var_f28 * 0.005f; + var_r31->unk_180[var_r30].y += (sp44 * sind((90.0f * var_f28))); // is this right? + } + else if (var_f28 < 400.0f) { + var_f28 -= 200.0f; + var_f28 = var_f28 * 0.005f; + var_r31->unk_180[var_r30].y += (sp44 * cosd((90.0f * var_f28))); + } + } + } + } + } + } + else { + for (var_r30 = 0; var_r30 < var_r31->unk_110; var_r30++) { + if ((var_r31->unk_178[var_r30] == -1) && ((var_r31->unk_F0[0] != var_r30) || (var_r31->unk_F0[1] != var_r30))) { + var_f30 = var_r31->unk_180[var_r30].x - var_f27; + var_f29 = var_r31->unk_DC * (var_r31->unk_180[var_r30].y - var_f26); + var_f31 = 0.425f * (var_r31->unk_180[var_r30].z - var_f25); + var_f28 = (var_f31 * var_f31) + ((var_f30 * var_f30) + (var_f29 * var_f29)); + if (var_f28 < 10000.0f) { + var_f28 = sqrtf((var_f31 * var_f31) + ((var_f30 * var_f30) + (var_f29 * var_f29))); + var_f28 = var_f28 * 0.01f; + var_r31->unk_180[var_r30].y -= (1.0f - var_f28) * var_f24; + if (var_r31->unk_180[var_r30].y < 1.0f) { + var_r31->unk_180[var_r30].y = 1.0f; + } + } + } + } + } + if (var_r29 < 5) { + if ((var_r31->unk_54[var_r29] -= 0.075f) <= 0.0f) { + var_r31->unk_54[var_r29] = 0.0f; + var_r31->unk_3C[var_r29] = -1; + var_r31->unk_6C[var_r29] = 0; + } + } + else { + var_r31->unk_54[var_r29] = 0.0f; + var_r31->unk_3C[var_r29] = -1; + var_r31->unk_6C[var_r29] = 0; + } + } + } + var_r31->unk_38 = 0; + memcpy(var_r31->unk_198, &var_r31->unk_180[var_r31->unk_144[0]], var_r31->unk_112[0] * 0xC); + var_r31->unk_19C = 0; + fn_1_DE3C(var_r31, var_r27); + if ((var_r31->unk_04 != -1) && (var_r31->unk_06 != -1)) { + mtxRot(sp70, 0.0f, var_r31->unk_D8, 0.0f); + sp70[1][0] *= var_r31->unk_DC; + sp70[1][1] *= var_r31->unk_DC; + sp70[1][2] *= var_r31->unk_DC; + var_f30 = var_r31->unk_180[var_r31->unk_06].x; + var_f29 = var_r31->unk_180[var_r31->unk_06].y; + var_f31 = var_r31->unk_180[var_r31->unk_06].z; + var_f27 = var_r31->unk_CC.x + ((sp70[0][2] * var_f31) + ((sp70[0][0] * var_f30) + (sp70[0][1] * var_f29))); + var_f26 = var_r31->unk_CC.y + ((sp70[1][2] * var_f31) + ((sp70[1][0] * var_f30) + (sp70[1][1] * var_f29))); + var_f25 = var_r31->unk_CC.z + ((sp70[2][2] * var_f31) + ((sp70[2][0] * var_f30) + (sp70[2][1] * var_f29))); + Hu3DModelPosSet(var_r31->unk_04, var_f27, var_f26, var_f25); + var_f30 = var_r31->unk_188[var_r31->unk_06].x; + var_f29 = var_r31->unk_188[var_r31->unk_06].y; + var_f31 = var_r31->unk_188[var_r31->unk_06].z; + sp64.x = var_f27 + (20.0f * var_f30); + sp64.y = var_f26 + (20.0f * var_f29); + sp64.z = var_f25 + (20.0f * var_f31); + sp48 = sqrtf((var_f30 * var_f30) + (var_f31 * var_f31)); + var_f27 = sp34 = atan2d(sp48, var_f29); + var_f26 = sp30 = atan2d(var_f30, var_f31); + var_f25 = sp2C = 0.0f; + Hu3DModelRotSet(var_r31->unk_04, var_f27, var_f26, var_f25); + var_r30 = (s32)(10.0f * var_r31->unk_18) / 40; + if (var_r30 > 0x10) { + var_r30 = 0x10; + } + for (var_r26 = 0; var_r26 < var_r30; var_r26++) { + var_f27 = sp34; + var_f26 = sp30; + var_f25 = sp2C; + var_f27 += 0.5f * ((s32)frand() % 48); + var_f30 = sind(var_f26) * sind(var_f27); + var_f31 = cosd(var_f26) * sind(var_f27); + var_f29 = cosd(var_f27); + sp28 = 12.0f - ((s32)frand() % 6); + sp58.x = var_f30; + sp58.y = var_f29; + sp58.z = var_f31; + fn_1_11454(&sp64, &sp58, 50.0f + (5.0f * var_r30), sp28); + } + } + DCFlushRangeNoSync(var_r31->unk_180, var_r31->unk_110 * 0xC); + DCFlushRangeNoSync(var_r31->unk_188, var_r31->unk_110 * 0xC); + PPCSync(); +} + +void fn_1_101C4(ModelData *var_r29, Mtx var_r28) +{ + Mtx sp50; + ROMtx sp20; + GXColor sp1C; + M425DllUnkStruct4 *var_r31; + s32 var_r30; + s16 var_r27; + + var_r31 = var_r29->unk_120; + GXLoadPosMtxImm(var_r28, 0); + PSMTXInvXpose(var_r28, sp50); + GXLoadNrmMtxImm(sp50, 0); + var_r27 = fn_1_115D4(var_r29, Hu3DCameraMtx, Hu3DCameraMtxXPose, 4.0f); + if (omPauseChk() == 0) { + fn_1_E914(var_r29, var_r28); + } + var_r29->scale.y = var_r31->unk_DC; + memcpy(sp50, lbl_1_data_16C, sizeof(lbl_1_data_16C)); + mtxRotCat(&sp50[0], CRot.x, CRot.y + var_r31->unk_D8, 180.0f); + GXLoadTexMtxImm(sp50, 0x36, GX_MTX2x4); + sp1C.a = lbl_1_bss_6D0; + GXSetTevColor(GX_TEVREG2, sp1C); + HuSprTexLoad(lbl_1_bss_6E0, 0, 0, GX_CLAMP, GX_CLAMP, GX_LINEAR); + HuSprTexLoad(lbl_1_bss_6DC, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetNumChans(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_NRM, 0x36, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_RASC, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_RASA, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + lbl_1_bss_6C8.r = var_r31->unk_23A.r; + lbl_1_bss_6C8.g = var_r31->unk_23A.g; + lbl_1_bss_6C8.b = var_r31->unk_23A.b; + lbl_1_bss_6C8.a = var_r31->unk_23A.a; + GXSetChanAmbColor(GX_COLOR0A0, lbl_1_bss_6C8); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_168); + GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_REG, var_r27, GX_DF_CLAMP, GX_AF_SPEC); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZMode(1, GX_LEQUAL, GX_FALSE); + GXSetZCompLoc(0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + if (HmfInverseMtxF3X3(var_r28, sp50) == 0) { + PSMTXIdentity(sp50); + } + PSMTXReorder(sp50, sp20); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, var_r31->unk_180, 0xC); + GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, var_r31->unk_188, 0xC); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &var_r31->unk_23A, 4); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGBA6, 0); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetArray(GX_VA_TEX0, var_r31->unk_184, 8); + for (var_r30 = 0; var_r30 < var_r31->unk_240; var_r30++) { + if (var_r31->unk_2A8[var_r30] && var_r31->unk_244[var_r30] != 0 && var_r30 != 1) { + GXCallDisplayList(var_r31->unk_2A8[var_r30], var_r31->unk_244[var_r30]); + } + } + GXSetNumTevStages(2); + GXSetNumTexGens(2); + GXSetNumChans(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_NRM, 0x36, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_RASC, GX_CC_TEXC, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_RASA, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevOp(GX_TEVSTAGE1, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_APREV, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + lbl_1_bss_6C8.r = var_r31->unk_23A.r; + lbl_1_bss_6C8.g = var_r31->unk_23A.g; + lbl_1_bss_6C8.b = var_r31->unk_23A.b; + lbl_1_bss_6C8.a = var_r31->unk_23A.a; + GXSetChanAmbColor(GX_COLOR0A0, lbl_1_bss_6C8); + GXSetChanMatColor(GX_COLOR0A0, lbl_1_data_168); + GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_REG, var_r27, GX_DF_CLAMP, GX_AF_SPEC); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXSetZCompLoc(0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXClearVtxDesc(); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetArray(GX_VA_POS, var_r31->unk_180, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_TEX_S, GX_RGBA6, 0); + GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); + GXSetArray(GX_VA_NRM, var_r31->unk_188, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetArray(GX_VA_CLR0, &var_r31->unk_23A, 4); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetArray(GX_VA_TEX0, var_r31->unk_184, 8); + if (var_r31->unk_2A8[1] && (var_r31->unk_244[1] != 0)) { + GXCallDisplayList(var_r31->unk_2A8[1], var_r31->unk_244[1]); + } +} + +s32 fn_1_109EC(s32 arg0, s32 arg1, Vec *arg2, Vec *arg3, Vec *arg4, s32 arg5) +{ + float var_f31; + float var_f30; + M425DllUnkStruct4 *var_r31; + s32 var_r29; + ModelData *var_r26; + + if (!lbl_1_bss_6EC) { + return; + } + var_r26 = &Hu3DData[lbl_1_bss_6EC->model[arg0]]; + var_r31 = var_r26->unk_120; + if (var_r31->unk_0C != 0.0f) { + var_f30 = var_r31->unk_08 / var_r31->unk_0C; + } + else { + var_f30 = 1.0f; + } + var_r31->unk_24 = fn_1_10EF8(arg0, arg1, arg2->x, arg2->z); + arg4->x = arg2->x + arg3->x; + arg4->y = arg2->y + arg3->y; + arg4->z = arg2->z + arg3->z; + if ((arg4->y < var_r31->unk_24) && (arg3->y < 0.0f) && (var_r31->unk_34 >= 0)) { + var_f31 = -arg3->y; + if (var_f31 > 50.0f) { + var_f31 = 50.0f; + } + else if (var_f31 < 10.0f) { + var_f31 = 0.0f; + } + if ((var_f31 > 0.0f) && (arg5 != 0)) { + var_f31 = (var_f31 - 10.0f) / 40.0f; + var_r31->unk_20 += var_f31; + } + var_f31 = -arg3->y; + var_f31 = var_f31 * 0.02f; + if (var_r31->unk_34 >= 0) { + for (var_r29 = 0; var_r29 < var_r31->unk_38; var_r29++) { + if (var_r31->unk_84[var_r29] == var_r31->unk_34) { + break; + } + } + if (var_r29 >= var_r31->unk_38) { + var_r29 = var_r31->unk_38; + } + if (var_r29 < 6) { + var_r31->unk_84[var_r29] = var_r31->unk_34; + if (var_r31->unk_9C[var_r29] < var_f31) { + var_r31->unk_9C[var_r29] = var_f31; + var_r31->unk_B4[var_r29] = arg5; + } + var_r31->unk_38++; + } + } + arg4->y = var_r31->unk_24 - (150.0f * (var_f30 * var_f31)); + if (arg4->y < 1.0f) { + arg4->y = 1.0f; + } + return 1; + } + if (arg4->y < var_r31->unk_24) { + arg4->y = var_r31->unk_24; + } + return 0; +} + +float fn_1_10CF4(s32 arg0) +{ + ModelData *var_r31; + M425DllUnkStruct4 *var_r30; + + if (!lbl_1_bss_6EC) { + return; + } + var_r31 = &Hu3DData[lbl_1_bss_6EC->model[arg0]]; + var_r30 = var_r31->unk_120; + return var_r30->unk_08; +} + +void fn_1_10D54(s32 arg0, float arg8) +{ + ModelData *var_r31; + M425DllUnkStruct4 *var_r30; + + if (lbl_1_bss_6EC) { + var_r31 = &Hu3DData[lbl_1_bss_6EC->model[arg0]]; + var_r30 = var_r31->unk_120; + var_r30->unk_08 = arg8; + } +} + +void fn_1_10DB4(s32 arg0) +{ + M425DllUnkStruct4 *var_r31; + ModelData *var_r30; + + if (lbl_1_bss_6EC) { + var_r30 = &Hu3DData[lbl_1_bss_6EC->model[arg0]]; + var_r31 = var_r30->unk_120; + if (var_r31->unk_2C == 0) { + var_r31->unk_28 = 0; + var_r31->unk_2C = 0x28; + var_r31->unk_30 = 0.3f; + } + } +} + +void fn_1_10E3C(s32 arg0) +{ + M425DllUnkStruct4 *var_r31; + s32 var_r30; + ModelData *var_r29; + + if (lbl_1_bss_6EC) { + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r29 = &Hu3DData[lbl_1_bss_6EC->model[var_r30]]; + var_r31 = var_r29->unk_120; + if (arg0 != 0) { + var_r31->unk_110 = var_r31->unk_144[0x18] + var_r31->unk_112[24]; + var_r31->unk_240 = 0x19; + } + else { + var_r31->unk_110 = var_r31->unk_144[0x17] + var_r31->unk_112[23]; + var_r31->unk_240 = 0x18; + } + } + } +} + +float fn_1_10EF8(s32 arg0, s32 arg1, float arg8, float arg9) +{ + Mtx spC; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f25; + M425DllUnkStruct4 *var_r31; + Vec *var_r30; + s32 var_r29; + s32 var_r28; + ModelData *var_r26; + + if (!lbl_1_bss_6EC) { + return 0.0f; + } + var_r26 = &Hu3DData[lbl_1_bss_6EC->model[arg0]]; + var_r31 = var_r26->unk_120; + if ((arg1 >= 0) && (arg1 <= 2) && (var_r31->unk_F0[arg1] != -1)) { + var_r28 = var_r31->unk_F0[arg1]; + var_r31->unk_34 = var_r28; + if (var_r31->unk_19C == 0) { + return var_r31->unk_DC * var_r31->unk_198[var_r28].y; + } + return var_r31->unk_198[var_r28].y; + } + if (var_r31->unk_19C == 0) { + mtxRot(spC, 0.0f, var_r31->unk_D8, 0.0f); + spC[1][0] *= var_r31->unk_DC; + spC[1][1] *= var_r31->unk_DC; + spC[1][2] *= var_r31->unk_DC; + for (var_r29 = 0, var_r30 = var_r31->unk_198; var_r29 < var_r31->unk_112[0]; var_r29++, var_r30++) { + var_f31 = (spC[0][2] * var_r30->z) + ((spC[0][0] * var_r30->x) + (spC[0][1] * var_r30->y)); + var_f25 = (spC[1][2] * var_r30->z) + ((spC[1][0] * var_r30->x) + (spC[1][1] * var_r30->y)); + var_f30 = (spC[2][2] * var_r30->z) + ((spC[2][0] * var_r30->x) + (spC[2][1] * var_r30->y)); + var_r30->x = var_f31; + var_r30->y = var_f25; + var_r30->z = var_f30; + } + var_r31->unk_19C = 1; + } + arg8 -= var_r31->unk_CC.x; + arg9 -= var_r31->unk_CC.z; + var_f28 = 10000.0f; + var_r28 = -1; + for (var_r29 = 0, var_r30 = var_r31->unk_198; var_r29 < var_r31->unk_112[0]; var_r29++, var_r30++) { + var_f31 = arg8 - var_r30->x; + var_f30 = arg9 - var_r30->z; + if (!(fabs(var_f31) > 100.0)) { + if (!(fabs(var_f30) > 100.0)) { + var_f29 = (var_f31 * var_f31) + (var_f30 * var_f30); + if (var_f29 < var_f28) { + var_r28 = var_r29; + var_f28 = var_f29; + } + } + } + } + (void)var_r29; + var_r31->unk_34 = var_r28; + if ((arg1 >= 0) && (arg1 <= 2)) { + var_r31->unk_F0[arg1] = var_r28; + } + if (var_r28 >= 0) { + return var_r31->unk_198[var_r28].y; + } + return 0.0f; +} + +void fn_1_11284(void) +{ + lbl_1_bss_6D8 = HuSprAnimRead(HuDataReadNum(0x38000E, 0x10000000)); + lbl_1_bss_6D4 = fn_1_11A74(lbl_1_bss_6D8, 0x40); + Hu3DModelLayerSet(lbl_1_bss_6D4, 6); +} + +void fn_1_112FC(void) +{ + M425DllUnkStruct5 *var_r31; + M425DllUnkStruct6 *var_r30; + s32 var_r29; + ModelData *var_r28; + + var_r28 = &Hu3DData[lbl_1_bss_6D4]; + var_r30 = var_r28->unk_120; + for (var_r31 = var_r30->unk_3C, var_r29 = 0; var_r29 < var_r30->unk_24; var_r29++, var_r31++) { + if (!(var_r31->unk_28 <= 0.0f)) { + var_r31->unk_04.x = var_r31->unk_10.x * var_r31->unk_1C; + var_r31->unk_04.y = var_r31->unk_10.y * var_r31->unk_1C; + var_r31->unk_04.z = var_r31->unk_10.z * var_r31->unk_1C; + var_r31->unk_1C *= 0.95f; + PSVECAdd(&var_r31->unk_30, &var_r31->unk_04, &var_r31->unk_30); + if (++var_r31->unk_40 >= 0xF) { + var_r31->unk_40 = 0; + var_r31->unk_28 = 0.0f; + } + } + } +} + +void fn_1_11418(void) +{ + HuSprAnimKill(lbl_1_bss_6D8); + lbl_1_bss_6D8 = NULL; +} + +s32 fn_1_11454(Vec *arg0, Vec *arg1, float arg8, float arg9) +{ + M425DllUnkStruct5 *var_r31; + M425DllUnkStruct6 *var_r29; + s32 var_r28; + ModelData *var_r26; + + var_r26 = &Hu3DData[lbl_1_bss_6D4]; + var_r29 = var_r26->unk_120; + for (var_r31 = var_r29->unk_3C, var_r28 = 0; var_r28 < var_r29->unk_24; var_r28++, var_r31++) { + if (var_r31->unk_28 <= 0.0f) { + break; + } + } + if (var_r28 >= var_r29->unk_24) { + return -1; + } + var_r31->unk_30.x = arg0->x; + var_r31->unk_30.y = arg0->y; + var_r31->unk_30.z = arg0->z; + var_r31->unk_10.x = arg1->x; + var_r31->unk_10.y = arg1->y; + var_r31->unk_10.z = arg1->z; + var_r31->unk_04.x = arg1->x * arg9; + var_r31->unk_04.y = arg1->y * arg9; + var_r31->unk_04.z = arg1->z * arg9; + var_r31->unk_1C = arg9; + var_r31->unk_28 = arg8; + var_r31->unk_2C = (s32)frand() % 360; + var_r31->unk_3C.a = 0x40; + var_r31->unk_40 = 0; + return var_r28; +} + +s16 fn_1_115D4(ModelData *arg0, Mtx arg1, Mtx arg2, float arg8) +{ + s16 var_r31; + s16 var_r30; + LightData *var_r29; + s16 var_r27; + + var_r27 = 0; + var_r30 = 1; + for (var_r29 = Hu3DGlobalLight, var_r31 = 0; var_r31 < 8; var_r31++, var_r29++) { + if (var_r29->unk_00 != -1) { + var_r30 <<= 1; + } + } + if ((arg0->attr & 0x1000) != 0) { + for (var_r31 = 0; var_r31 < 8; var_r31++) { + if (arg0->unk_38[var_r31] != -1) { + var_r29 = &Hu3DLocalLight[arg0->unk_38[var_r31]]; + fn_1_116E4(arg0, var_r29, var_r30, arg2, arg1, arg8); + var_r27 |= var_r30; + var_r30 <<= 1; + } + } + } + return var_r27; +} + +void fn_1_116E4(ModelData *arg1, LightData *var_r31, s16 sp8, Mtx spC, Mtx sp10, float var_f31) +{ + switch ((u8)var_r31->unk_00) { + case 0: + GXInitLightAttn(&lbl_1_bss_688, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f); + GXInitLightSpot(&lbl_1_bss_688, var_r31->unk_04, var_r31->unk_02); + break; + case 1: + GXInitLightAttn(&lbl_1_bss_688, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f); + PSVECScale(&var_r31->unk_28, &var_r31->unk_1C, -100000.0f); + break; + case 2: + GXInitLightAttn(&lbl_1_bss_688, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); + GXInitLightDistAttn(&lbl_1_bss_688, var_r31->unk_04, var_r31->unk_08, var_r31->unk_02); + break; + } + if ((var_r31->unk_00 & 0x8000) != 0) { + PSMTXMultVec(spC, &var_r31->unk_28, &lbl_1_bss_67C); + PSMTXMultVec(sp10, &var_r31->unk_1C, &lbl_1_bss_670); + GXInitLightPos(&lbl_1_bss_688, lbl_1_bss_670.x, lbl_1_bss_670.y, lbl_1_bss_670.z); + } + else { + GXInitLightPos(&lbl_1_bss_688, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z); + lbl_1_bss_67C = var_r31->unk_28; + } + if (var_f31 == 0.0f) { + GXInitLightDir(&lbl_1_bss_688, lbl_1_bss_67C.x, lbl_1_bss_67C.y, lbl_1_bss_67C.z); + } + else { + GXInitSpecularDir(&lbl_1_bss_688, lbl_1_bss_67C.x, lbl_1_bss_67C.y, lbl_1_bss_67C.z); + GXInitLightAttn(&lbl_1_bss_688, 0.0f, 0.0f, 1.0f, var_f31 / 2, 0.0f, 1.0f - (var_f31 / 2)); + } + GXInitLightColor(&lbl_1_bss_688, var_r31->color); + GXLoadLightObjImm(&lbl_1_bss_688, sp8); +} + +s16 fn_1_11A74(AnimData *arg0, s16 arg1) +{ + M425DllUnkStruct6 *var_r31; + s16 var_r30; + Vec2f *var_r29; + M425DllUnkStruct5 *var_r28; + ModelData *var_r27; + Vec *var_r26; + void *var_r24; + s16 var_r23; + void *var_r21; + + var_r23 = Hu3DHookFuncCreate(fn_1_11EE0); + var_r27 = &Hu3DData[var_r23]; + var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M425DllUnkStruct6), var_r27->unk_48); + var_r27->unk_120 = var_r31; + var_r31->unk_38 = arg0; + arg0->useNum++; + var_r31->unk_24 = arg1; + var_r31->unk_20 = 0; + var_r31->unk_4C = 0; + var_r31->unk_28 = 0; + var_r31->unk_21 = 0; + var_r31->unk_30 = 0; + var_r31->unk_00 = var_r31->unk_02 = 0; + var_r28 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(M425DllUnkStruct5), var_r27->unk_48); + var_r31->unk_3C = var_r28; + for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r28++) { + var_r28->unk_28 = 0.0f; + var_r28->unk_2C = 0.0f; + var_r28->unk_30.x = (s32)((frand() & 0x7F) - 0x40) * 0x14; + var_r28->unk_30.y = (s32)((frand() & 0x7F) - 0x40) * 0x1E; + var_r28->unk_30.z = (s32)((frand() & 0x7F) - 0x40) * 0x14; + var_r28->unk_3C.r = var_r28->unk_3C.g = var_r28->unk_3C.b = var_r28->unk_3C.a = 0xFF; + var_r28->unk_40 = 0; + } + var_r26 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec) * 4, var_r27->unk_48); + var_r31->unk_40 = var_r26; + for (var_r30 = 0; var_r30 < (arg1 * 4); var_r30++, var_r26++) { + var_r26->x = var_r26->y = var_r26->z = 0.0f; + } + var_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec2f) * 4, var_r27->unk_48); + var_r31->unk_44 = var_r29; + for (var_r30 = 0; var_r30 < arg1; var_r30++) { + var_r29->x = 0.0f; + var_r29->y = 0.0f; + var_r29++; + var_r29->x = 1.0f; + var_r29->y = 0.0f; + var_r29++; + var_r29->x = 1.0f; + var_r29->y = 1.0f; + var_r29++; + var_r29->x = 0.0f; + var_r29->y = 1.0f; + var_r29++; + } + var_r24 = HuMemDirectMallocNum(HEAP_DATA, 0x4000, var_r27->unk_48); + var_r21 = var_r24; + DCFlushRange(var_r24, 0x4000); + GXBeginDisplayList(var_r21, 0x4000); + GXBegin(GX_QUADS, GX_VTXFMT0, arg1 * 4); + for (var_r30 = 0; var_r30 < arg1; var_r30++) { + GXUnknownu16(var_r30 * 4); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4); + GXUnknownu16(var_r30 * 4 + 1); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4 + 1); + GXUnknownu16(var_r30 * 4 + 2); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4 + 2); + GXUnknownu16(var_r30 * 4 + 3); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4 + 3); + } + var_r31->unk_34 = GXEndDisplayList(); + var_r31->unk_48 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_34, var_r27->unk_48); + memcpy(var_r31->unk_48, var_r24, var_r31->unk_34); + DCFlushRange(var_r31->unk_48, var_r31->unk_34); + HuMemDirectFree(var_r24); + return var_r23; +} + +void fn_1_11EE0(ModelData *var_r24, Mtx var_r21) +{ + Mtx sp128; + Mtx spF8; + Mtx spC8; + Vec sp98[4]; + Vec sp68[4]; + Vec sp38[4]; + ROMtx sp8; + M425DllUnkStruct6 *var_r31; + Vec *var_r30; + M425DllUnkStruct5 *var_r29; + Vec *var_r28; + Vec *var_r27; + Vec2f *var_r26; + s16 var_r25; + s16 var_r23; + s16 var_r22; + s16 var_r20; + s16 var_r19; + UnkHook var_r18; + + var_r31 = var_r24->unk_120; + if ((var_r31->unk_2C != GlobalCounter) || (shadowModelDrawF != 0)) { + GXLoadPosMtxImm(var_r21, 0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + if (shadowModelDrawF != 0) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ONE, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetZMode(0, GX_LEQUAL, 0); + } + else { + var_r22 = var_r31->unk_38->bmp->dataFmt & 0xF; + if ((var_r22 == 7) || (var_r22 == 8)) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); + } + else { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + } + if ((var_r24->attr & 2) != 0) { + GXSetZMode(1, GX_LEQUAL, GX_TRUE); + } + else { + GXSetZMode(1, GX_LEQUAL, GX_FALSE); + } + } + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + HuSprTexLoad(var_r31->unk_38, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(0); + switch (var_r31->unk_20) { + case 0: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + break; + case 1: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + break; + case 2: + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + break; + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, var_r31->unk_40, 0xC); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, 0x44); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8); + if (HmfInverseMtxF3X3(var_r21, sp128) == 0) { + PSMTXIdentity(sp128); + } + PSMTXReorder(sp128, &sp8[0]); + if (var_r31->unk_4C) { + var_r18 = var_r31->unk_4C; + var_r18(var_r24, var_r31, var_r21); + } + var_r29 = var_r31->unk_3C; + var_r30 = var_r31->unk_40; + var_r26 = var_r31->unk_44; + PSMTXROMultVecArray(sp8, lbl_1_data_19C, &sp38[0], 4); + for (var_r23 = 0; var_r23 < var_r31->unk_24; var_r23++, var_r29++) { + if (!var_r29->unk_28) { + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + } + else { + if (!var_r29->unk_2C) { + var_r28 = &sp98[0]; + var_r27 = &sp38[0]; + PSVECScale(var_r27++, var_r28, var_r29->unk_28); + PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); + PSVECScale(var_r27++, var_r28, var_r29->unk_28); + PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); + PSVECScale(var_r27++, var_r28, var_r29->unk_28); + PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); + PSVECScale(var_r27++, var_r28, var_r29->unk_28); + PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); + } + else { + PSVECScale(lbl_1_data_19C, &sp98[0], var_r29->unk_28); + PSVECScale(&lbl_1_data_19C[1], &sp98[1], var_r29->unk_28); + PSVECScale(&lbl_1_data_19C[2], &sp98[2], var_r29->unk_28); + PSVECScale(&lbl_1_data_19C[3], &sp98[3], var_r29->unk_28); + PSMTXRotRad(spC8, 0x5A, var_r29->unk_2C); + PSMTXConcat(sp128, spC8, spF8); + PSMTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); + PSVECAdd(&sp68[0], &var_r29->unk_30, var_r30++); + PSVECAdd(&sp68[1], &var_r29->unk_30, var_r30++); + PSVECAdd(&sp68[2], &var_r29->unk_30, var_r30++); + PSVECAdd(&sp68[3], &var_r29->unk_30, var_r30++); + } + var_r20 = var_r29->unk_40 & 3; + var_r19 = (var_r29->unk_40 >> 2) & 3; + for (var_r25 = 0; var_r25 < 4; var_r25++, var_r26++) { + var_r26->x = (0.25f * var_r20) + lbl_1_data_1CC[var_r25].x; + var_r26->y = (0.25f * var_r19) + lbl_1_data_1CC[var_r25].y; + } + } + } + DCFlushRangeNoSync(var_r31->unk_40, var_r31->unk_24 * 0xC * 4); + DCFlushRangeNoSync(var_r31->unk_44, var_r31->unk_24 * 8 * 4); + PPCSync(); + GXCallDisplayList(var_r31->unk_48, var_r31->unk_34); + if (shadowModelDrawF == 0) { + if ((var_r31->unk_21 & 2) == 0) { + var_r31->unk_28++; + } + if ((var_r31->unk_30 != 0) && (var_r31->unk_30 <= var_r31->unk_28)) { + if ((var_r31->unk_21 & 1) != 0) { + var_r31->unk_28 = 0; + } + var_r31->unk_28 = var_r31->unk_30; + } + var_r31->unk_2C = GlobalCounter; + } + } +} From 496c8544e585c992bfc9c1c21750c1dea8a653ff Mon Sep 17 00:00:00 2001 From: mrshigure Date: Wed, 8 Jan 2025 15:19:36 -0800 Subject: [PATCH 237/311] Matched mstoryDll (US) (#512) --- config/GMPE01_00/rels/mstoryDll/splits.txt | 4 +- config/GMPE01_00/rels/mstoryDll/symbols.txt | 530 +++++----- configure.py | 12 +- include/REL/mstoryDll.h | 96 ++ include/game/gamework_data.h | 5 + src/REL/mstoryDll/board_clear.c | 622 ++++++++++++ src/REL/mstoryDll/board_miss.c | 817 +++++++++++++++ src/REL/mstoryDll/main.c | 1012 +++++++++++++++++++ src/REL/mstoryDll/mg_clear.c | 691 +++++++++++++ src/REL/mstoryDll/mg_miss.c | 446 ++++++++ src/REL/mstoryDll/save.c | 116 +++ 11 files changed, 4078 insertions(+), 273 deletions(-) create mode 100755 include/REL/mstoryDll.h create mode 100755 src/REL/mstoryDll/board_clear.c create mode 100755 src/REL/mstoryDll/board_miss.c create mode 100755 src/REL/mstoryDll/main.c create mode 100755 src/REL/mstoryDll/mg_clear.c create mode 100755 src/REL/mstoryDll/mg_miss.c create mode 100755 src/REL/mstoryDll/save.c diff --git a/config/GMPE01_00/rels/mstoryDll/splits.txt b/config/GMPE01_00/rels/mstoryDll/splits.txt index 1c6cb09d..14c897fa 100644 --- a/config/GMPE01_00/rels/mstoryDll/splits.txt +++ b/config/GMPE01_00/rels/mstoryDll/splits.txt @@ -10,13 +10,13 @@ REL/mstoryDll/main.c: .text start:0x00000000 end:0x00007090 .rodata start:0x00000000 end:0x00000108 .data start:0x00000000 end:0x00000190 - .bss start:0x00000000 end:0x00000058 + .bss start:0x00000000 end:0x000000A8 REL/mstoryDll/board_clear.c: .text start:0x00007090 end:0x0000A830 .rodata start:0x00000108 end:0x00000268 .data start:0x00000190 end:0x00000388 - .bss start:0x00000058 end:0x000002C8 + .bss start:0x000000A8 end:0x000002C8 REL/mstoryDll/board_miss.c: .text start:0x0000A830 end:0x0000E710 diff --git a/config/GMPE01_00/rels/mstoryDll/symbols.txt b/config/GMPE01_00/rels/mstoryDll/symbols.txt index 9bc5210b..92563350 100644 --- a/config/GMPE01_00/rels/mstoryDll/symbols.txt +++ b/config/GMPE01_00/rels/mstoryDll/symbols.txt @@ -4,7 +4,7 @@ fn_1_A4 = .text:0x000000A4; // type:function size:0x344 _prolog = .text:0x000003E8; // type:function size:0x54 scope:global _epilog = .text:0x0000043C; // type:function size:0x4C scope:global fn_1_488 = .text:0x00000488; // type:function size:0x1D0 -fn_1_658 = .text:0x00000658; // type:function size:0x1D0 +ObjectSetup = .text:0x00000658; // type:function size:0x1D0 fn_1_828 = .text:0x00000828; // type:function size:0x28 fn_1_850 = .text:0x00000850; // type:function size:0x20 fn_1_870 = .text:0x00000870; // type:function size:0xD8 @@ -189,281 +189,281 @@ fn_1_13E2C = .text:0x00013E2C; // type:function size:0x324 fn_1_14150 = .text:0x00014150; // type:function size:0x50 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC data:4byte -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC data:4byte -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC data:4byte -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 data:byte -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC data:2byte -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 data:4byte -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC data:4byte -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 data:4byte -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 data:4byte -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC data:4byte -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C data:4byte -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:byte -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 data:4byte -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 data:4byte -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC data:4byte -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC data:4byte -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC data:4byte -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC data:4byte -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 data:4byte -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 data:4byte -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 data:4byte -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 data:byte -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 data:4byte -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 data:4byte -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C data:4byte -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float -lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:float -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xA scope:local data:2byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 scope:local +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 scope:local +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 scope:local +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 -lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 data:string -lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 data:string -lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A data:string -lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 data:string +lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 scope:local data:string +lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 scope:local data:string +lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A scope:local data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 scope:local data:string lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 -lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 data:string -lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 data:string -lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 data:string -lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A data:string -lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A data:string -lbl_1_data_17F = .data:0x0000017F; // type:object size:0xE data:string +lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 scope:local data:string +lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 scope:local data:string +lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 scope:local data:string +lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A scope:local data:string +lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A scope:local data:string +lbl_1_data_17F = .data:0x0000017F; // type:object size:0xE scope:local data:string lbl_1_data_190 = .data:0x00000190; // type:object size:0x50 lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C -lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 data:string -lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 data:string -lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 data:string -lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 data:string -lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 data:string -lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 data:string -lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 data:string -lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 data:string -lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF data:string -lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C data:string -lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D data:string -lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 data:string -lbl_1_data_329 = .data:0x00000329; // type:object size:0xF data:string -lbl_1_data_338 = .data:0x00000338; // type:object size:0x1A data:string -lbl_1_data_354 = .data:0x00000354; // type:object size:0x30 +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 scope:local data:string +lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 scope:local data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 scope:local data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 scope:local data:string +lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 scope:local data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 scope:local data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 scope:local data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 scope:local data:string +lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF scope:local data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C scope:local data:string +lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D scope:local data:string +lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0xF scope:local data:string +lbl_1_data_338 = .data:0x00000338; // type:object size:0x1A scope:local data:string +lbl_1_data_354 = .data:0x00000354; // type:object size:0x30 data:float lbl_1_data_388 = .data:0x00000388; // type:object size:0x50 lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C -lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 data:string -lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 data:string -lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 data:string -lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 data:string -lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 data:string -lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 data:string -lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 data:string -lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 data:string -lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA data:string -lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C data:string -lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D data:string -lbl_1_data_505 = .data:0x00000505; // type:object size:0xF data:string -lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B data:string -lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 data:string -lbl_1_data_537 = .data:0x00000537; // type:object size:0x8 data:string -lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 +lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 scope:local data:string +lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 scope:local data:string +lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 scope:local data:string +lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 scope:local data:string +lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 scope:local data:string +lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 scope:local data:string +lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 scope:local data:string +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA scope:local data:string +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C scope:local data:string +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D scope:local data:string +lbl_1_data_505 = .data:0x00000505; // type:object size:0xF scope:local data:string +lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B scope:local data:string +lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 scope:local data:string +lbl_1_data_537 = .data:0x00000537; // type:object size:0x8 scope:local data:string +lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 data:float lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0 lbl_1_data_930 = .data:0x00000930; // type:object size:0x50 -lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 data:string -lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 data:string -lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 data:string -lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 data:string -lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 data:string -lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 data:string -lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 data:string -lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 data:string -lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF data:string -lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C data:string -lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D data:string -lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C data:string -lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 data:string -lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF data:string -lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 data:string -lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA data:string -lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 data:string -lbl_1_data_AED = .data:0x00000AED; // type:object size:0x7 data:string +lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 scope:local data:string +lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 scope:local data:string +lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 scope:local data:string +lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 scope:local data:string +lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 scope:local data:string +lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 scope:local data:string +lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 scope:local data:string +lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 scope:local data:string +lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF scope:local data:string +lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C scope:local data:string +lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D scope:local data:string +lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C scope:local data:string +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 scope:local data:string +lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF scope:local data:string +lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 scope:local data:string +lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA scope:local data:string +lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 scope:local data:string +lbl_1_data_AED = .data:0x00000AED; // type:object size:0x7 scope:local data:string lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C -lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 data:string -lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 data:string -lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 data:string -lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 data:string -lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 data:string -lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 data:string -lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 data:string -lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 data:string -lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF data:string -lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C data:string -lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D data:string -lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF data:string -lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x1A data:string -lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 data:string +lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 scope:local data:string +lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 scope:local data:string +lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 scope:local data:string +lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 scope:local data:string +lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 scope:local data:string +lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 scope:local data:string +lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 scope:local data:string +lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 scope:local data:string +lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF scope:local data:string +lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C scope:local data:string +lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D scope:local data:string +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF scope:local data:string +lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x1A scope:local data:string +lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0xC data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:4byte lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index afd42860..a4d446ec 100644 --- a/configure.py +++ b/configure.py @@ -1398,12 +1398,12 @@ config.libs = [ Rel( "mstoryDll", objects={ - Object(NonMatching, "REL/mstoryDll/main.c"), - Object(NonMatching, "REL/mstoryDll/board_clear.c"), - Object(NonMatching, "REL/mstoryDll/board_miss.c"), - Object(NonMatching, "REL/mstoryDll/mg_clear.c"), - Object(NonMatching, "REL/mstoryDll/mg_miss.c"), - Object(NonMatching, "REL/mstoryDll/save.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/main.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/board_clear.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/board_miss.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/mg_clear.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/mg_miss.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/save.c"), }, ), Rel( diff --git a/include/REL/mstoryDll.h b/include/REL/mstoryDll.h new file mode 100755 index 00000000..b948d6ff --- /dev/null +++ b/include/REL/mstoryDll.h @@ -0,0 +1,96 @@ +#ifndef MSTORYDLL_H +#define MSTORYDLL_H + +#include "game/object.h" +#include "game/process.h" + +#include "dolphin/types.h" + +typedef struct { + /* 0x00 */ void (*unk00)(void); + /* 0x04 */ void (*unk04)(void); + /* 0x08 */ Vec unk08; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ Vec unk20; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ float unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ s32 unk40; +} StructBss4; // Size 0x44 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ char unk1C[0x18]; +} StructFn352C; // Size 0x34 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ void (*unk04)(omObjData*, ...); + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ char unk10[0x18]; +} StructBss19C; // Size 0x28 + +// main.c +float fn_1_828(float arg0, float arg1, float arg2, float arg3); +float fn_1_870(float arg0, float arg1, float arg2, float arg3); +float fn_1_948(float arg0, float arg1, float arg2, float arg3); +float fn_1_ACC(float arg0, float arg1, float arg2, float arg3); +void fn_1_B8C(void); +void fn_1_BAC(s32 arg0); +void fn_1_BF4(void); +s32 fn_1_1834(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_1A64(s32 arg0); +void fn_1_1ACC(s32 arg0, s32 arg1); +BOOL fn_1_1B78(s32 arg0, s32 arg1); +BOOL fn_1_1C34(s32 arg0); +void fn_1_1CE8(s32 arg0, s32 arg1); +void fn_1_1D1C(s32 arg0, s32 arg1, s32 arg2); +void fn_1_1DCC(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_2224(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_2710(void (*arg0)(void)); +void fn_1_27E8(Process* arg0, void (*arg1)(void)); +void fn_1_2908(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5); +void fn_1_2CB0(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5); +void fn_1_352C(StructFn352C* arg0, s32 arg1); +s32 fn_1_3618(s32 arg0); +void fn_1_3704(void); +void fn_1_3804(StructBss4* arg0); +void fn_1_3ABC(StructBss4* arg0, float arg1); +void fn_1_51D0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4); +void fn_1_61E8(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4); +void fn_1_6C1C(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +s32 fn_1_6EB8(s32 arg0, s32 arg1); +void fn_1_7028(s32 arg0); + +// board_clear.c +void fn_1_79B8(Process* arg0, s32 arg1, s32 arg2); + +// board_miss.c +void fn_1_ACFC(Process* arg0, s32 arg1, s32 arg2); + +// mg_clear.c +void fn_1_E710(Process* arg0, s32 arg1, s32 arg2); + +// mg_miss.c +void fn_1_11624(Process* arg0, s32 arg1, s32 arg2); + +// save.c +void fn_1_14150(Process* arg0); + +extern s32 lbl_1_bss_68; +extern s32 lbl_1_bss_58[]; +extern StructBss4 lbl_1_bss_4; +extern s32 lbl_1_data_0[][4]; + +#endif diff --git a/include/game/gamework_data.h b/include/game/gamework_data.h index 08b3e075..330e0f86 100644 --- a/include/game/gamework_data.h +++ b/include/game/gamework_data.h @@ -314,6 +314,11 @@ static inline s32 GWPlayerCurrGet(void) return GWSystem.player_curr; } +static inline s32 GWUnkB1Get(void) +{ + return GWSystem.unk0B[1]; +} + static inline s32 GWPlayerTeamGet(s32 player) { return GWPlayer[player].team; diff --git a/src/REL/mstoryDll/board_clear.c b/src/REL/mstoryDll/board_clear.c new file mode 100755 index 00000000..e5e5612b --- /dev/null +++ b/src/REL/mstoryDll/board_clear.c @@ -0,0 +1,622 @@ +#include "REL/mstoryDll.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/printfunc.h" +#include "game/window.h" +#include "game/wipe.h" + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ char unk0C[4]; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ char unk18[0x1C]; + /* 0x34 */ StructFn352C unk34[4]; +} StructBss1C4; // Size 0x104 + +void fn_1_8A44(void); +void fn_1_8DC0(omObjData* arg0, StructBss19C* arg1); +void fn_1_8E6C(omObjData* arg0, StructBss19C* arg1); +void fn_1_8F68(void); +void fn_1_92D4(s32 arg0); +void fn_1_9718(omObjData* arg0, StructBss19C* arg1); +void fn_1_98A4(omObjData* arg0, StructBss19C* arg1); +void fn_1_992C(void); +void fn_1_A008(omObjData* arg0, StructBss19C* arg1); +void fn_1_A0EC(void); +void fn_1_A478(void); +void fn_1_A504(void); +void fn_1_A5F4(void); + +StructBss1C4 lbl_1_bss_1C4; +StructBss19C lbl_1_bss_19C; +StructBss19C lbl_1_bss_174; +StructBss19C lbl_1_bss_D4[4]; +StructBss19C lbl_1_bss_AC; +Process* lbl_1_bss_A8; + +s32 lbl_1_data_190[][4] = { + { MAKE_MESSID(30, 17), MAKE_MESSID(30, 23), MAKE_MESSID(30, 62), MAKE_MESSID(30, 63) }, + { MAKE_MESSID(30, 18), MAKE_MESSID(30, 24), MAKE_MESSID(30, 64), MAKE_MESSID(30, 65) }, + { MAKE_MESSID(30, 19), MAKE_MESSID(30, 25), MAKE_MESSID(30, 66), MAKE_MESSID(30, 67) }, + { MAKE_MESSID(30, 20), MAKE_MESSID(30, 26), MAKE_MESSID(30, 68), MAKE_MESSID(30, 69) }, + { MAKE_MESSID(30, 21), MAKE_MESSID(30, 27), MAKE_MESSID(30, 70), MAKE_MESSID(30, 71) } +}; + +s32 lbl_1_data_1E0[][3] = { + { MAKE_MESSID(30, 101), MAKE_MESSID(30, 102), MAKE_MESSID(30, 103) }, + { MAKE_MESSID(30, 104), MAKE_MESSID(30, 105), MAKE_MESSID(30, 106) }, + { MAKE_MESSID(30, 107), MAKE_MESSID(30, 108), MAKE_MESSID(30, 109) }, + { MAKE_MESSID(30, 110), MAKE_MESSID(30, 111), MAKE_MESSID(30, 112) }, + { MAKE_MESSID(30, 113), MAKE_MESSID(30, 114), MAKE_MESSID(30, 115) } +}; + +void fn_1_7090(s32 arg0, StructBss19C* arg1) { + fn_1_BAC(10); + fn_1_1DCC(lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk00, 1, 5, 15, 0); + fn_1_BAC(5); + HuAudCharVoicePlay(lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk10, 0x128); + fn_1_BAC(25); + arg1->unk04 = 0; +} + +void fn_1_7134(s32 arg0, StructBss19C* arg1) { + float temp_f31; + float temp_f30; + float temp_f29; + s32 i; + + temp_f29 = Hu3DData[lbl_1_bss_174.unk00->model[7]].pos.y; + for (i = 0; i <= 30; i++) { + fn_1_B8C(); + temp_f31 = fn_1_870(temp_f29, 1000.0f, i, 30.0f); + temp_f30 = fn_1_870(0.0f, 1800.0f, i, 30.0f); + Hu3DModelPosSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f31, 800.0f); + Hu3DModelRotSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f30, 0.0f); + Hu3DModelPosSet(lbl_1_bss_174.unk00->model[8], 0.0f, temp_f31 + 15.0f, 775.0f); + } + arg1->unk04 = 0; +} + +void fn_1_731C(s32 arg0) { + float temp_f31; + float temp_f30; + s32 var_r30; + s32 i; + + var_r30 = arg0; + Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[6], HU3D_ATTR_DISPOFF); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1C4.unk34[i].unk00 != lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk00) { + Hu3DModelAttrSet(lbl_1_bss_D4[i].unk00->model[1], HU3D_ATTR_DISPOFF); + } + Hu3DModelAttrSet(lbl_1_bss_D4[i].unk00->model[2], HU3D_ATTR_DISPOFF); + } + lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_1E0[var_r30][0]); + fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4)); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1); + fn_1_1A64(lbl_1_bss_1C4.unk08); + Hu3DModelPosSet(lbl_1_bss_174.unk00->model[7], 0.0f, 1000.0f, 640.0f); + Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[7], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[8], HU3D_ATTR_DISPOFF); + for (i = 0; i <= 180; i++) { + fn_1_B8C(); + temp_f31 = fn_1_948(1000.0f, 150.0f, i, 180.0f); + temp_f30 = fn_1_948(1800.0f, 0.0f, i, 180.0f); + Hu3DModelPosSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f31, 800.0f); + Hu3DModelRotSet(lbl_1_bss_174.unk00->model[7], 0.0f, temp_f30, 0.0f); + Hu3DModelPosSet(lbl_1_bss_174.unk00->model[8], 0.0f, temp_f31 + 15.0f, 775.0f); + } + lbl_1_bss_174.unk04 = (void*) fn_1_8E6C; + fn_1_1DCC(lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk00, 1, 6, 15, 0); + lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_98A4; + fn_1_BAC(40); + HuAudSeqFadeOut(lbl_1_bss_58[0], 1000); + fn_1_BAC(50); + lbl_1_bss_58[1] = HuAudSeqPlay(0x35); + lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_1E0[var_r30][1]); + fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4)); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1); + fn_1_1A64(lbl_1_bss_1C4.unk08); + fn_1_BAC(30); + fn_1_1DCC(lbl_1_bss_174.unk00, 2, 3, 0, 0); + lbl_1_bss_174.unk04 = (void*) fn_1_8DC0; + fn_1_BAC(30); + lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_7090; + fn_1_BAC(90); + lbl_1_bss_AC.unk04 = (void*) fn_1_7134; + lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 5, 15, 1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_1E0[lbl_1_bss_1C4.unk00][2]); + fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4)); + fn_1_1A64(lbl_1_bss_1C4.unk08); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1C4.unk00][3]); +} + +void fn_1_79B8(Process* arg0, s32 arg1, s32 arg2) { + s32 i; + + lbl_1_bss_A8 = arg0; + lbl_1_bss_1C4.unk00 = arg1; + lbl_1_bss_1C4.unk10 = arg2; + fn_1_BF4(); + fn_1_3618(0xFF); + fn_1_27E8(lbl_1_bss_A8, fn_1_A478); + fn_1_3704(); + fn_1_92D4(arg2); + HuPrcChildCreate(fn_1_8F68, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_A0EC, 100, 0x2000, 0, HuPrcCurrentGet()); + for (i = 0; i < 4; i++) { + HuPrcChildCreate(fn_1_992C, 100, 0x2000, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_8A44, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +void fn_1_7AE0(void) { + s32 var_r30 = 16; + s32 var_r29 = 40; + GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; + s32 i; + + while (TRUE) { + fn_1_B8C(); + fontcolor = FONT_COLOR_WHITE; + printWin(var_r30, var_r29, 220, 150, &sp10); + if (lbl_1_bss_19C.unk04 == NULL) { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE"); + } else { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_174.unk04 == NULL) { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE"); + } else { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE"); + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_D4[i].unk04 == NULL) { + print8(var_r30, i * 10 + (var_r29 + 20), 1.0f, "PROC_PLAYER%d -> FALSE", i); + } else { + print8(var_r30, i * 10 + (var_r29 + 20), 1.0f, "PROC_PLAYER%d -> TRUE", i); + } + } + if (lbl_1_bss_AC.unk04 == NULL) { + print8(var_r30, var_r29 + 60, 1.0f, "PROC_SUB -> FALSE"); + } else { + print8(var_r30, var_r29 + 60, 1.0f, "PROC_SUB -> TRUE"); + } + print8(var_r30, var_r29 + 80, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_1C4.unk00, lbl_1_bss_1C4.unk04, lbl_1_bss_1C4.unk10); + print8(var_r30, var_r29 + 100, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(var_r30, var_r29 + 110 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, + lbl_1_bss_1C4.unk34[i].unk00, lbl_1_bss_1C4.unk34[i].unk04, lbl_1_bss_1C4.unk34[i].unk08, + lbl_1_bss_1C4.unk34[i].unk0C, lbl_1_bss_1C4.unk34[i].unk14, lbl_1_bss_1C4.unk34[i].unk10); + } + } +} + +void fn_1_7E70(void) { + lbl_1_bss_58[0] = HuAudSeqPlay(0x33); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + fn_1_BAC(60); +} + +void fn_1_7ECC(void) { + s32 spC = 0; + s32 sp8 = 0; + + lbl_1_bss_1C4.unk08 = fn_1_1834(0, 0, 21, 2, lbl_1_bss_1C4.unk10); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1); + fn_1_1D1C(lbl_1_bss_1C4.unk08, lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk10, 0); + fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_190[lbl_1_bss_1C4.unk00][0]); + fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4)); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1); + fn_1_1A64(lbl_1_bss_1C4.unk08); + lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_9718; + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_A504); + do { + fn_1_B8C(); + } while (lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 != NULL); + do { + fn_1_B8C(); + } while (lbl_1_bss_AC.unk04 != NULL); +} + +void fn_1_8090(void) { + lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 3, 15, 1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_190[lbl_1_bss_1C4.unk00][2]); + fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 1, 15, 1); + fn_1_1A64(lbl_1_bss_1C4.unk08); + fn_1_1DCC(lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk00, 1, 6, 15, 0); + lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_98A4; + Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_174.unk00->model[6], HU3D_ATTR_DISPOFF); + fn_1_BAC(180); + HuAudSeqFadeOut(lbl_1_bss_58[0], 1000); + fn_1_1DCC(lbl_1_bss_174.unk00, 2, 3, 0, 0); + fn_1_BAC(75); + lbl_1_bss_58[1] = HuAudSeqPlay(0x35); + lbl_1_bss_1C4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_1C4.unk10); + fn_1_1DCC(lbl_1_bss_AC.unk00, 1, 4, 15, 1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, lbl_1_data_190[lbl_1_bss_1C4.unk00][3]); + lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = NULL; + lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 = (void*) fn_1_7090; + fn_1_1ACC(lbl_1_bss_1C4.unk08, -1); + fn_1_1CE8(lbl_1_bss_1C4.unk08, MAKE_MESSID(37, 4)); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1C4.unk00][3]); + fn_1_1A64(lbl_1_bss_1C4.unk08); + do { + fn_1_B8C(); + } while (lbl_1_bss_D4[lbl_1_bss_1C4.unk04].unk04 != NULL); +} + +void fn_1_83B0(void) { + fn_1_BAC(60); + HuAudSeqFadeOut(lbl_1_bss_58[1], 3000); + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_A5F4); + fn_1_BAC(150); +} + +void fn_1_8408(void) { + omOvlHisData* var_r30; + u16 sp8[] = { 53, 56, 55, 54, 57 }; + s32 sp14[] = { 9, 14, 10, 11, 12 }; + s32 var_r29; + s32 var_r28; + s32 i; + + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + CharModelKill(-1); + MGSeqKillAll(); + var_r29 = lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk10; + var_r28 = lbl_1_bss_1C4.unk34[lbl_1_bss_1C4.unk04].unk14; + GWPlayerCfg[lbl_1_bss_1C4.unk04].character = GWPlayerCfg->character; + GWPlayerCfg[lbl_1_bss_1C4.unk04].pad_idx = GWPlayerCfg->pad_idx; + GWPlayerCfg[lbl_1_bss_1C4.unk04].group = GWPlayerCfg->group; + GWPlayerCfg[lbl_1_bss_1C4.unk04].iscom = GWPlayerCfg->iscom; + GWPlayerCfg->character = var_r29; + GWPlayerCfg->pad_idx = var_r28; + GWPlayerCfg->group = 0; + GWPlayerCfg->iscom = 0; + for (i = 0; i < 4; i++) { + GWPlayer[i].character = GWPlayerCfg[i].character; + GWPlayer[i].port = GWPlayerCfg[i].pad_idx; + GWPlayer[i].com = GWPlayerCfg[i].iscom; + GWPlayer[i].team = GWPlayerCfg[i].group; + } + GWPlayerCfg[1].character = sp14[GWSystem.board]; + for (i = 1; i < 4; i++) { + GWPlayerCfg[i].iscom = GWPlayerCfg[i].group = 1; + } + var_r30 = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY, 2, var_r30->stat); + OSReport("########## dllno - %d\n", sp8[GWSystem.board], GWSystem.board); + HuAudSeqAllFadeOut(1000); + HuAudSStreamAllFadeOut(1000); + omOvlCallEx(sp8[GWSystem.board], 1, 0, 0); + while (TRUE) { + fn_1_B8C(); + } +} + +void fn_1_87DC(s32 arg0, StructBss19C* arg1) { + fn_1_7E70(); + fn_1_7ECC(); + fn_1_731C(lbl_1_bss_1C4.unk00); + fn_1_83B0(); + fn_1_8408(); + arg1->unk04 = NULL; +} + +void fn_1_8A44(void) { + omObjData* var_r31; + + var_r31 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_19C.unk00 = var_r31; + lbl_1_bss_19C.unk04 = (void*) fn_1_87DC; + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_19C.unk04 != NULL) { + lbl_1_bss_19C.unk04(var_r31, &lbl_1_bss_19C); + } + } +} + +void fn_1_8AE0(omObjData* arg0) { + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 56)); + arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 0, 0, 2); + Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base"); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 59)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 60)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 61)); + fn_1_1DCC(arg0, 2, 2, 0, 2); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 57)); + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 76 + lbl_1_bss_1C4.unk00)); + arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]); + Hu3DModelPosSet(arg0->model[5], 0.0f, 80.0f, 460.0f); + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelShadowSet(arg0->model[5]); + fn_1_1DCC(arg0, 5, 5, 0, 2); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 75)); + arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]); + Hu3DModelHookSet(arg0->model[5], "stargbox_fix-effect_fook1", arg0->model[6]); + Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF); + fn_1_1DCC(arg0, 6, 6, 0, 2); + arg0->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 81)); + Hu3DModelAttrSet(arg0->model[7], HU3D_ATTR_DISPOFF); + arg0->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 96)); + arg0->motion[8] = Hu3DMotionIDGet(arg0->model[8]); + Hu3DModelAttrSet(arg0->model[8], HU3D_ATTR_DISPOFF); + fn_1_1DCC(arg0, 8, 8, 0, 1); +} + +void fn_1_8DC0(omObjData* arg0, StructBss19C* arg1) { + Hu3DData[arg0->model[5]].pos.y = fn_1_ACC(80.0f, 90.0f, arg0->work[0]++, 360.0f); + if (arg0->work[0] >= 360) { + arg0->work[0] = 0; + } +} + +void fn_1_8E6C(omObjData* arg0, StructBss19C* arg1) { + Hu3DData[arg0->model[7]].pos.y += fn_1_ACC(0.0f, 0.25f, arg0->work[0]++, 360.0f); + Hu3DData[arg0->model[8]].pos.y = Hu3DData[arg0->model[7]].pos.y + 15.0f; + if (arg0->work[0] >= 360) { + arg0->work[0] = 0; + } +} + +void fn_1_8F68(void) { + omObjData* temp_r31; + + temp_r31 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_174.unk00 = temp_r31; + lbl_1_bss_174.unk04 = (void*) fn_1_8DC0; + lbl_1_bss_174.unk00->data = &lbl_1_bss_174; + fn_1_8AE0(temp_r31); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_174.unk04 != NULL) { + lbl_1_bss_174.unk04(temp_r31, &lbl_1_bss_174); + } + } +} + +void fn_1_92D4(s32 arg0) { + s32 spC[4]; + s32 i; + + spC[0] = 0; + for (i = 1; i < 4; i++) { + spC[i] = spC[i - 1] + 1; + if (spC[i] >= 4) { + spC[i] = 0; + } + if (arg0 == spC[i]) { + lbl_1_bss_1C4.unk04 = i; + } + } + for (i = 0; i < 4; i++) { + fn_1_352C(&lbl_1_bss_1C4.unk34[i], spC[i]); + } + for (i = 0; i < 4; i++) { + lbl_1_bss_1C4.unk34[i].unk18 = GWPlayer[spC[i]].rank + 1; + } +} + +Vec lbl_1_data_354[] = { + { -300.0f, 0.0f, 460.0f }, + { -100.0f, -30.0f, 460.0f }, + { 100.0f, -60.0f, 460.0f }, + { 300.0f, -90.0f, 460.0f } +}; + +void fn_1_9408(omObjData* arg0, s32 arg1) { + s32 var_r30; + s32 temp_r29; + + var_r30 = arg1; + temp_r29 = lbl_1_bss_1C4.unk34[var_r30].unk10; + arg0->model[1] = CharModelCreate(temp_r29, 4); + arg0->motion[1] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + arg0->motion[2] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 3)); + arg0->motion[3] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 5)); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 48 + temp_r29)); + arg0->motion[5] = CharModelMotionCreate(temp_r29, DATA_MAKE_NUM(DATADIR_MARIOMOT, 109)); + arg0->motion[6] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 40 + temp_r29)); + CharModelMotionDataClose(temp_r29); + Hu3DModelPosSet(arg0->model[1], lbl_1_data_354[var_r30].x, lbl_1_data_354[lbl_1_bss_1C4.unk34[var_r30].unk18 - 1].y + 90.0f, lbl_1_data_354[var_r30].z - 15.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 1, 0, 1); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 62)); + Hu3DModelPosSet(arg0->model[2], lbl_1_data_354[var_r30].x, lbl_1_data_354[lbl_1_bss_1C4.unk34[var_r30].unk18 - 1].y, lbl_1_data_354[var_r30].z); + if (lbl_1_bss_1C4.unk34[var_r30].unk18 == 4) { + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + } + Hu3DModelShadowMapSet(arg0->model[2]); + Hu3DModelScaleSet(arg0->model[2], 1.5f, 1.0f, 1.5f); +} + +void fn_1_9718(omObjData* arg0, StructBss19C* arg1) { + Vec sp20 = { 120.0f, 0.0f, 670.0f }; + + fn_1_2908(arg0, 1, sp20, -1.0f, 30.0f, 10.0f); + lbl_1_bss_AC.unk04 = (void*) fn_1_A008; + fn_1_1DCC(lbl_1_bss_174.unk00, 2, 2, 0, 0); + fn_1_1DCC(arg0, 1, 2, 15, 1); + fn_1_2CB0(arg0, 1, sp20, -45.0f, 30.0f, 10.0f); + fn_1_1DCC(arg0, 1, 1, 15, 1); + fn_1_2224(lbl_1_bss_174.unk00, 2, 2, 0); + arg1->unk04 = 0; +} + +void fn_1_98A4(omObjData* arg0, StructBss19C* arg1) { + if (arg0->motion[6] == Hu3DMotionIDGet(arg0->model[1]) && Hu3DMotionEndCheck(arg0->model[1])) { + fn_1_1DCC(arg0, 1, 4, 15, 1); + arg1->unk04 = 0; + } +} + +void fn_1_992C(void) { + omObjData* temp_r3; + s32 temp_r30; + + temp_r30 = lbl_1_bss_1C4.unk14++; + temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_D4[temp_r30].unk00 = temp_r3; + lbl_1_bss_D4[temp_r30].unk04 = NULL; + lbl_1_bss_D4[temp_r30].unk00->data = &lbl_1_bss_D4[temp_r30]; + fn_1_9408(temp_r3, temp_r30); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_D4[temp_r30].unk04 != NULL) { + lbl_1_bss_D4[temp_r30].unk04(temp_r3, &lbl_1_bss_D4[temp_r30]); + } + } +} + +void fn_1_9D08(omObjData* arg0, s32 arg1) { + s32 sp1C[] = { + DATA_MAKE_NUM(DATADIR_MSTORY, 97), + DATA_MAKE_NUM(DATADIR_MSTORY, 108), + DATA_MAKE_NUM(DATADIR_MSTORY, 116), + DATA_MAKE_NUM(DATADIR_MSTORY, 124), + DATA_MAKE_NUM(DATADIR_MSTORY, 131) + }; + s32 sp30[][5] = { + { DATA_MAKE_NUM(DATADIR_MSTORY, 98), DATA_MAKE_NUM(DATADIR_MSTORY, 100), DATA_MAKE_NUM(DATADIR_MSTORY, 101), DATA_MAKE_NUM(DATADIR_MSTORY, 103), DATA_MAKE_NUM(DATADIR_MSTORY, 104) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 109), DATA_MAKE_NUM(DATADIR_MSTORY, 111), DATA_MAKE_NUM(DATADIR_MSTORY, 112), DATA_MAKE_NUM(DATADIR_MSTORY, 114), DATA_MAKE_NUM(DATADIR_MSTORY, 115) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 117), DATA_MAKE_NUM(DATADIR_MSTORY, 119), DATA_MAKE_NUM(DATADIR_MSTORY, 120), DATA_MAKE_NUM(DATADIR_MSTORY, 122), DATA_MAKE_NUM(DATADIR_MSTORY, 123) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 125), DATA_MAKE_NUM(DATADIR_MSTORY, 126), DATA_MAKE_NUM(DATADIR_MSTORY, 127), DATA_MAKE_NUM(DATADIR_MSTORY, 129), DATA_MAKE_NUM(DATADIR_MSTORY, 130) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 132), DATA_MAKE_NUM(DATADIR_MSTORY, 134), DATA_MAKE_NUM(DATADIR_MSTORY, 135), DATA_MAKE_NUM(DATADIR_MSTORY, 137), DATA_MAKE_NUM(DATADIR_MSTORY, 138) } + }; + + arg0->model[1] = Hu3DModelCreateFile(sp1C[arg1]); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][0]); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][1]); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][2]); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][3]); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][4]); + Hu3DModelPosSet(arg0->model[1], -300.0f, 0.0f, 890.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 30.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + if (arg1 == 3) { + Hu3DData[arg0->model[1]].pos.y = 50.0f; + } + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 5, 0, 1); + { + s32 sp8[] = { 9, 14, 10, 11, 12 }; + + if (arg1 != 3) { + CharModelEffectNpcInit(arg0->model[1], arg0->motion[2], 1, sp8[arg1]); + } + } +} + +void fn_1_A008(omObjData* arg0, StructBss19C* arg1) { + Vec sp14 = { -120.0f, 0.0f, 670.0f }; + + fn_1_1DCC(arg0, 1, 2, 15, 1); + fn_1_2CB0(arg0, 1, sp14, 45.0f, 60.0f, 10.0f); + fn_1_1DCC(arg0, 1, 1, 15, 1); + arg1->unk04 = 0; +} + +void fn_1_A0EC(void) { + omObjData* temp_r3; + s32 temp_r30; + + temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_AC.unk00 = temp_r3; + lbl_1_bss_AC.unk04 = NULL; + lbl_1_bss_AC.unk00->data = &lbl_1_bss_AC; + temp_r30 = lbl_1_bss_1C4.unk00; + fn_1_9D08(temp_r3, temp_r30); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_AC.unk04 != NULL) { + lbl_1_bss_AC.unk04(temp_r3, &lbl_1_bss_AC); + } + } +} + +void fn_1_A478(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 170.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20.x = -5.0f; + var_r31->unk20.y = 0.0f; + var_r31->unk20.z = 0.0f; + var_r31->unk38 = 1700.0f; +} + +void fn_1_A504(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 125.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1750.0f; + fn_1_51D0(var_r31, &sp8, var_r31->unk40++, 60.0f, 30.0f); +} + +void fn_1_A5F4(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + if (var_r31->unk40 == 50) { + fn_1_1DCC(lbl_1_bss_174.unk00, 5, 5, 0, 0); + fn_1_1DCC(lbl_1_bss_174.unk00, 6, 6, 0, 0); + HuAudFXPlay(0xA1); + } + sp8.unk08.x = 0.0f; + sp8.unk08.y = 130.0f; + sp8.unk08.z = 460.0f; + sp8.unk20.x = 0.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 150.0f; + fn_1_51D0(var_r31, &sp8, var_r31->unk40, 180.0f, 10.0f); + if (var_r31->unk40++ >= 90) { + if (var_r31->unk40 == 91) { + lbl_1_bss_68 = HuAudFXPlay(0x21); + } + var_r31->unk20.x = fn_1_828(var_r31->unk20.x, -45.0f, var_r31->unk40 - 90, 90.0f); + Hu3DData[lbl_1_bss_174.unk00->model[5]].rot.x = fn_1_828(0.0f, 45.0f, var_r31->unk40 - 90, 90.0f); + } +} diff --git a/src/REL/mstoryDll/board_miss.c b/src/REL/mstoryDll/board_miss.c new file mode 100755 index 00000000..04c63c30 --- /dev/null +++ b/src/REL/mstoryDll/board_miss.c @@ -0,0 +1,817 @@ +#include "REL/mstoryDll.h" +#include "game/armem.h" +#include "game/audio.h" +#include "game/board/main.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ char unk18[0x1C]; + /* 0x034 */ StructFn352C unk34[4]; + /* 0x104 */ float unk104; +} StructBss450; // Size 0x108 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ char unk0C[4]; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; +} StructBss2D0; // Size 0x18 + +void fn_1_C360(void); +void fn_1_C7C4(void); +void fn_1_CE48(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_CEF4(omObjData* arg0, StructBss19C* arg1); +void fn_1_D180(void); +void fn_1_D57C(s32 arg0); +void fn_1_DAA4(omObjData* arg0, StructBss19C* arg1); +void fn_1_DC08(omObjData* arg0, StructBss19C* arg1); +void fn_1_DD20(omObjData* arg0, StructBss19C* arg1); +void fn_1_DE04(void); +void fn_1_E228(void); +void fn_1_E2B4(void); +void fn_1_E3E4(void); +void fn_1_E620(void); + +StructBss450 lbl_1_bss_450; +StructBss19C lbl_1_bss_428; +StructBss19C lbl_1_bss_400; +StructBss19C lbl_1_bss_3D8; +StructBss19C lbl_1_bss_338[4]; +AnimData* lbl_1_bss_330[2]; +StructBss2D0 lbl_1_bss_2D0[4]; +s32 lbl_1_bss_2CC; +Process* lbl_1_bss_2C8; + +s32 lbl_1_data_388[][4] = { + { MAKE_MESSID(30, 28), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) }, + { MAKE_MESSID(30, 29), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) }, + { MAKE_MESSID(30, 30), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) }, + { MAKE_MESSID(30, 31), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) }, + { MAKE_MESSID(30, 32), MAKE_MESSID(30, 33), MAKE_MESSID(30, 34), MAKE_MESSID(30, 5) } +}; + +s32 lbl_1_data_3D8[] = { + DATADIR_W01, + DATADIR_W02, + DATADIR_W03, + DATADIR_W04, + DATADIR_W05, + DATADIR_W06, + DATADIR_W10, + DATADIR_MARIOMDL1, + DATADIR_LUIGIMDL1, + DATADIR_PEACHMDL1, + DATADIR_YOSHIMDL1, + DATADIR_WARIOMDL1, + DATADIR_DONKEYMDL1, + DATADIR_DAISYMDL1, + DATADIR_WALUIGIMDL1 +}; + +void fn_1_A830(void) { + s32 temp_r3; + + temp_r3 = HuDataDirReadAsync(DATADIR_BOARD); + if (temp_r3 != -1) { + while (HuDataGetAsyncStat(temp_r3) == 0) { + HuPrcVSleep(); + } + } + HuAR_MRAMtoARAM(DATADIR_BOARD); + while (HuARDMACheck()) { + HuPrcVSleep(); + } + HuDataDirClose(DATADIR_BOARD); + temp_r3 = HuDataDirReadAsync(lbl_1_data_3D8[GWSystem.board]); + if (temp_r3 != -1) { + while (HuDataGetAsyncStat(temp_r3) == 0) { + HuPrcVSleep(); + } + } + lbl_1_bss_2CC = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_A8F8(void) { + s32 i; + s32 j; + + lbl_1_bss_2D0[0].unk00 = 0; + lbl_1_bss_2D0[0].unk04 = 0; + lbl_1_bss_2D0[0].unk10 = lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk10; + lbl_1_bss_2D0[0].unk14 = lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk14; + lbl_1_bss_2D0[0].unk08 = 0; + for (i = 1; i < 4; i++) { + lbl_1_bss_2D0[i].unk10 = -1; + lbl_1_bss_2D0[i].unk14 = i; + lbl_1_bss_2D0[i].unk08 = 1; + } + for (i = 1; i < 4; i++) { + do { + lbl_1_bss_2D0[i].unk10 = rand8() % 8; + for (j = 0; j < 4; j++) { + if (i != j && lbl_1_bss_2D0[j].unk10 != -1 && lbl_1_bss_2D0[i].unk10 == lbl_1_bss_2D0[j].unk10) { + break; + } + } + } while (j != 4); + } + for (i = 0; i < 4; i++) { + GWPlayerCfg[i].character = lbl_1_bss_2D0[i].unk10; + GWPlayerCfg[i].pad_idx = lbl_1_bss_2D0[i].unk14; + GWPlayerCfg[i].group = 0; + GWPlayerCfg[i].iscom = lbl_1_bss_2D0[i].unk08; + } + BoardSaveInit(GWSystem.board); + CharKill(-1); + HuDataDirClose(DATADIR_MSTORY); + HuPrcChildCreate(fn_1_A830, 100, 0x3000, 0, lbl_1_bss_2C8); +} + +void fn_1_ABAC(void) { + omOvlHisData* var_r30; + s32 sp8[] = { OVL_W01, OVL_W02, OVL_W03, OVL_W04, OVL_W05, OVL_W06, OVL_W10 }; + + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (WipeStatGet() != 0) { + fn_1_B8C(); + } + CharModelKill(-1); + MGSeqKillAll(); + var_r30 = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY3, 0, var_r30->stat); + do { + fn_1_B8C(); + } while (lbl_1_bss_2CC != 1); + CharARAMOpen(GWPlayerCfg[0].character); + CharARAMOpen(GWPlayerCfg[1].character); + CharARAMOpen(GWPlayerCfg[2].character); + CharARAMOpen(GWPlayerCfg[3].character); + HuAudSeqAllFadeOut(1000); + HuAudSStreamAllFadeOut(1000); + omOvlCallEx(sp8[GWSystem.board], 1, 0, 0); + while (TRUE) { + fn_1_B8C(); + } +} + +void fn_1_ACFC(Process* arg0, s32 arg1, s32 arg2) { + s32 i; + + lbl_1_bss_2C8 = arg0; + lbl_1_bss_450.unk04 = arg2; + lbl_1_bss_450.unk10 = arg2; + lbl_1_bss_450.unk00 = arg1; + fn_1_BF4(); + fn_1_3618(0xFF); + fn_1_27E8(lbl_1_bss_2C8, fn_1_E228); + fn_1_3704(); + fn_1_D57C(arg2); + HuPrcChildCreate(fn_1_C7C4, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_D180, 100, 0x2000, 0, HuPrcCurrentGet()); + for (i = 0; i < 4; i++) { + HuPrcChildCreate(fn_1_DE04, 100, 0x2000, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_C360, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +void fn_1_AE30(omObjData* arg0) { + if (arg0->work[2] != 0) { + arg0->work[2]--; + return; + } + if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[1])) { + fn_1_1DCC(arg0, 1, arg0->work[1], 15, 1); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + } +} + +void fn_1_AEBC(void) { + s32 var_r30 = 16; + s32 var_r29 = 40; + GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; + s32 i; + + while (TRUE) { + fn_1_B8C(); + printWin(var_r30, var_r29, 220, 160, &sp10); + if (lbl_1_bss_428.unk04 == NULL) { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE"); + } else { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_400.unk04 == NULL) { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE"); + } else { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_3D8.unk04 == NULL) { + print8(var_r30, var_r29 + 30, 1.0f, "PROC_MKOOPA -> FALSE"); + } else { + print8(var_r30, var_r29 + 30, 1.0f, "PROC_MKOOPA -> TRUE"); + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_338[i].unk04 == NULL) { + print8(var_r30, i * 10 + (var_r29 + 40), 1.0f, "PROC_PLAYER%d -> FALSE", i); + } else { + print8(var_r30, i * 10 + (var_r29 + 40), 1.0f, "PROC_PLAYER%d -> TRUE", i); + } + } + print8(var_r30, var_r29 + 90, 1.0f, "P:%d W:%d", lbl_1_bss_450.unk04, lbl_1_bss_450.unk10); + print8(var_r30, var_r29 + 110, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(var_r30, var_r29 + 120 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, + lbl_1_bss_450.unk34[i].unk00, lbl_1_bss_450.unk34[i].unk04, lbl_1_bss_450.unk34[i].unk08, + lbl_1_bss_450.unk34[i].unk0C, lbl_1_bss_450.unk34[i].unk14, lbl_1_bss_450.unk34[i].unk10); + } + } +} + +void fn_1_B230(void) { + lbl_1_bss_58[0] = HuAudSeqPlay(0x34); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + fn_1_BAC(60); +} + +void fn_1_B28C(void) { + s32 i; + + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_450.unk00][1]); + lbl_1_bss_450.unk08 = fn_1_1834(0, 0, 21, 2, lbl_1_bss_450.unk10); + fn_1_CE48(3, -1, 15, 1, 0); + fn_1_1CE8(lbl_1_bss_450.unk08, lbl_1_data_388[lbl_1_bss_450.unk00][0]); + fn_1_1ACC(lbl_1_bss_450.unk08, -1); + fn_1_1CE8(lbl_1_bss_450.unk08, MAKE_MESSID(37, 4)); + fn_1_CE48(1, -1, 15, 1, 0); + fn_1_1A64(lbl_1_bss_450.unk08); + for (i = 0; i < 4; i++) { + lbl_1_bss_338[i].unk04 = (void*) fn_1_DAA4; + } + do { + fn_1_B8C(); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_338[i].unk04 != NULL) { + break; + } + } + } while (i != 4); + lbl_1_bss_338[lbl_1_bss_450.unk04].unk04 = (void*) fn_1_DC08; + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_E2B4); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_338[lbl_1_bss_450.unk04].unk04 == NULL) { + break; + } + } + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_3D8.unk04 == NULL) { + break; + } + } + fn_1_BAC(30); +} + +BOOL fn_1_B4A0(void) { + BOOL temp_r31 = FALSE; + + fn_1_1CE8(lbl_1_bss_450.unk08, lbl_1_data_388[lbl_1_bss_450.unk00][1]); + fn_1_1ACC(lbl_1_bss_450.unk08, 5); + lbl_1_bss_450.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_450.unk10); + fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(30, 53)); + temp_r31 = fn_1_1C34(lbl_1_bss_450.unk0C); + fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(37, 4)); + fn_1_7028(lbl_1_bss_450.unk0C); + return temp_r31; +} + +BOOL fn_1_B588(void) { + BOOL temp_r31 = FALSE; + + fn_1_1CE8(lbl_1_bss_450.unk08, lbl_1_data_388[lbl_1_bss_450.unk00][2]); + fn_1_1ACC(lbl_1_bss_450.unk08, 5); + lbl_1_bss_450.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_450.unk10); + fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(30, 53)); + temp_r31 = fn_1_1C34(lbl_1_bss_450.unk0C); + fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(37, 4)); + fn_1_7028(lbl_1_bss_450.unk0C); + return temp_r31; +} + +BOOL fn_1_B670(void) { + BOOL temp_r31 = FALSE; + + fn_1_CE48(3, -1, 15, 1, 0); + fn_1_1CE8(lbl_1_bss_450.unk08, lbl_1_data_388[lbl_1_bss_450.unk00][3]); + fn_1_1ACC(lbl_1_bss_450.unk08, 5); + fn_1_CE48(1, -1, 15, 1, 0); + lbl_1_bss_450.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_450.unk10); + fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(30, 53)); + temp_r31 = fn_1_1B78(lbl_1_bss_450.unk0C, 1); + fn_1_1CE8(lbl_1_bss_450.unk0C, MAKE_MESSID(37, 4)); + fn_1_7028(lbl_1_bss_450.unk0C); + return temp_r31; +} + +void fn_1_B78C(void) { + fn_1_BAC(60); + fn_1_A8F8(); + Hu3DModelAttrReset(lbl_1_bss_400.unk00->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_400.unk00->model[6], HU3D_ATTR_DISPOFF); + fn_1_1DCC(lbl_1_bss_400.unk00, 2, 3, 0, 0); + fn_1_BAC(30); + fn_1_1DCC(lbl_1_bss_3D8.unk00, 1, 4, 15, 0); + fn_1_BAC(30); + fn_1_1DCC(lbl_1_bss_338[lbl_1_bss_450.unk04].unk00, 1, 3, 15, 0); + fn_1_2224(lbl_1_bss_400.unk00, 2, 3, 0); + fn_1_BAC(60); + HuAudSeqFadeOut(lbl_1_bss_58[0], 3000); + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_E3E4); + fn_1_BAC(150); +} + +void fn_1_B8C8(void) { +} + +void fn_1_B8CC(void) { + fn_1_1DCC(lbl_1_bss_400.unk00, 2, 3, 0, 0); + fn_1_2224(lbl_1_bss_400.unk00, 2, 3, 0); + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_E620); + lbl_1_bss_3D8.unk04 = (void*) fn_1_CEF4; + lbl_1_bss_338[lbl_1_bss_450.unk04].unk04 = (void*) fn_1_DD20; + do { + fn_1_B8C(); + } while (lbl_1_bss_3D8.unk04 != NULL); + fn_1_1DCC(lbl_1_bss_400.unk00, 2, 2, 0, 0); + fn_1_2224(lbl_1_bss_400.unk00, 2, 2, 0); +} + +void fn_1_B9D0(s32 arg0) { + s32 i; + + fn_1_BAC(60); + HuAudSeqFadeOut(lbl_1_bss_58[0], 1000); + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + fn_1_B8C(); + if (WipeStatGet() == 0) { + break; + } + } + CharModelKill(-1); + HuAudFadeOut(1); + if (arg0 == 1) { + omOvlReturnEx(1, 1); + } else { + GWPlayerCfg->group = 0; + GWPlayerCfg->character = lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk10; + GWPlayerCfg->pad_idx = lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk14; + GWPlayerCfg->iscom = 0; + for (i = 0; i < 4; i++) { + GWPlayer[i].character = GWPlayerCfg[i].character; + GWPlayer[i].port = GWPlayerCfg[i].pad_idx; + GWPlayer[i].com = GWPlayerCfg[i].iscom; + GWPlayer[i].team = GWPlayerCfg[i].group; + } + omOvlGotoEx(OVL_MENT, 1, 10, 0); + } + while (TRUE) { + fn_1_B8C(); + } +} + +void fn_1_BBD8(s32 arg0, StructBss19C* arg1) { + s32 i; + s32 var_r30 = 0; + + fn_1_B230(); + fn_1_B28C(); + lbl_1_bss_450.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_450.unk10); + while (TRUE) { + fn_1_B8C(); + if (fn_1_B4A0()) { + var_r30 = 0; + break; + } + if (fn_1_B588()) { + var_r30 = 2; + break; + } + if (fn_1_B670()) { + var_r30 = 1; + break; + } + } + fn_1_1A64(lbl_1_bss_450.unk08); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_450.unk34[i].unk00 != lbl_1_bss_450.unk34[lbl_1_bss_450.unk04].unk00) { + Hu3DModelAttrSet(lbl_1_bss_338[i].unk00->model[1], HU3D_ATTR_DISPOFF); + } + Hu3DModelAttrSet(lbl_1_bss_338[i].unk00->model[2], HU3D_ATTR_DISPOFF); + } + switch (var_r30) { + case 1: + fn_1_B8C8(); + break; + case 0: + fn_1_B78C(); + break; + case 2: + fn_1_B8CC(); + break; + } + switch (var_r30) { + case 0: + fn_1_ABAC(); + break; + case 1: + case 2: + fn_1_B9D0(var_r30); + /* fallthrough */ + default: + arg1->unk04 = 0; + break; + } +} + +void fn_1_C360(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_2C8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_428.unk00 = temp_r3; + lbl_1_bss_428.unk04 = (void*) fn_1_BBD8; + lbl_1_bss_428.unk00->data = &lbl_1_bss_428; + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_428.unk04 != NULL) { + lbl_1_bss_428.unk04(temp_r3, &lbl_1_bss_428); + } + } +} + +void fn_1_C414(omObjData* arg0, s32 arg1) { + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 56)); + arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 0, 0, 2); + Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base"); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 59)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 60)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 61)); + fn_1_1DCC(arg0, 2, 2, 0, 2); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 57)); + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 63)); + arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]); + Hu3DModelPosSet(arg0->model[5], 0.0f, 80.0f, 460.0f); + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelShadowSet(arg0->model[5]); + fn_1_1DCC(arg0, 5, 5, 0, 2); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 64)); + arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]); + Hu3DModelHookSet(arg0->model[5], "partybox_fix2-effect_fook1", arg0->model[6]); + Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF); + fn_1_1DCC(arg0, 6, 6, 0, 2); + lbl_1_bss_330[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY, 65 + arg1 * 2), MEMORY_DEFAULT_NUM)); + lbl_1_bss_330[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY, 66 + arg1 * 2), MEMORY_DEFAULT_NUM)); + Hu3DAnimCreate(lbl_1_bss_330[0], lbl_1_bss_400.unk00->model[5], "ys26_p0"); + Hu3DAnimCreate(lbl_1_bss_330[1], lbl_1_bss_400.unk00->model[5], "ys26_p1"); +} + +void fn_1_C708(omObjData* arg0, StructBss19C* arg1) { + Hu3DData[arg0->model[5]].pos.y = fn_1_ACC(80.0f, 90.0f, arg1->unk08++, 360.0f); + if (arg1->unk08 >= 360) { + arg1->unk08 = 0; + } +} + +void fn_1_C7C4(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_2C8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_400.unk00 = temp_r3; + lbl_1_bss_400.unk04 = (void*) fn_1_C708; + lbl_1_bss_400.unk00->data = &lbl_1_bss_400; + fn_1_C414(temp_r3, lbl_1_bss_450.unk00); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_400.unk04 != NULL) { + lbl_1_bss_400.unk04(temp_r3, &lbl_1_bss_400); + } + } +} + +void fn_1_CB48(omObjData* arg0, s32 arg1) { + s32 sp1C[] = { + DATA_MAKE_NUM(DATADIR_MSTORY, 0x61), + DATA_MAKE_NUM(DATADIR_MSTORY, 0x6C), + DATA_MAKE_NUM(DATADIR_MSTORY, 0x74), + DATA_MAKE_NUM(DATADIR_MSTORY, 0x7C), + DATA_MAKE_NUM(DATADIR_MSTORY, 0x83) + }; + s32 sp30[][5] = { + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x62), DATA_MAKE_NUM(DATADIR_MSTORY, 0x64), DATA_MAKE_NUM(DATADIR_MSTORY, 0x65), DATA_MAKE_NUM(DATADIR_MSTORY, 0x67), DATA_MAKE_NUM(DATADIR_MSTORY, 0x68) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x6D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x6F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x70), DATA_MAKE_NUM(DATADIR_MSTORY, 0x72), DATA_MAKE_NUM(DATADIR_MSTORY, 0x73) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x75), DATA_MAKE_NUM(DATADIR_MSTORY, 0x77), DATA_MAKE_NUM(DATADIR_MSTORY, 0x78), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7A), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7B) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x7D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7E), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x81), DATA_MAKE_NUM(DATADIR_MSTORY, 0x82) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x84), DATA_MAKE_NUM(DATADIR_MSTORY, 0x86), DATA_MAKE_NUM(DATADIR_MSTORY, 0x87), DATA_MAKE_NUM(DATADIR_MSTORY, 0x89), DATA_MAKE_NUM(DATADIR_MSTORY, 0x8A) } + }; + + arg0->model[1] = Hu3DModelCreateFile(sp1C[arg1]); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][0]); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][1]); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][2]); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][3]); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][4]); + Hu3DModelPosSet(arg0->model[1], -300.0f, 0.0f, 890.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 30.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + if (arg1 == 3) { + Hu3DData[arg0->model[1]].pos.y = 50.0f; + } + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 1, 0, 1); + { + s32 sp8[] = { 9, 14, 10, 11, 12 }; + + if (arg1 != 3) { + CharModelEffectNpcInit(arg0->model[1], arg0->motion[2], 1, sp8[arg1]); + } + } +} + +void fn_1_CE48(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + fn_1_1DCC(lbl_1_bss_3D8.unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_3D8.unk00->work[0] = arg4; + lbl_1_bss_3D8.unk00->work[1] = arg1; + lbl_1_bss_3D8.unk00->work[2] = arg2 + 1; +} + +void fn_1_CEF4(omObjData* arg0, StructBss19C* arg1) { + Vec sp14 = { 0.0f, 0.0f, 460.0f }; + + fn_1_1DCC(arg0, 1, 2, 15, 1); + fn_1_2CB0(arg0, 1, sp14, 0.0f, 60.0f, 10.0f); + fn_1_1DCC(arg0, 1, 1, 15, 1); + arg1->unk04 = 0; +} + +void fn_1_CFD8(omObjData* arg0, StructBss19C* arg1) { + s32 i; + + for (i = 0; i < 15; i++) { + fn_1_B8C(); + Hu3DData[arg0->model[1]].rot.y = fn_1_828(0.0f, 135.0f, i, 15.0f); + } + arg1->unk04 = 0; +} + +void fn_1_D09C(omObjData* arg0, StructBss19C* arg1) { + Vec sp14 = { -120.0f, 0.0f, 670.0f }; + + fn_1_1DCC(arg0, 1, 2, 15, 1); + fn_1_2CB0(arg0, 1, sp14, 45.0f, 60.0f, 10.0f); + fn_1_1DCC(arg0, 1, 1, 15, 1); + arg1->unk04 = 0; +} + +void fn_1_D180(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_2C8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_3D8.unk00 = temp_r3; + lbl_1_bss_3D8.unk04 = NULL; + lbl_1_bss_3D8.unk00->data = &lbl_1_bss_3D8; + fn_1_CB48(temp_r3, lbl_1_bss_450.unk00); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_3D8.unk04 != NULL) { + lbl_1_bss_3D8.unk04(temp_r3, &lbl_1_bss_3D8); + } + if (temp_r3->work[0] != 0) { + fn_1_AE30(temp_r3); + } + } +} + +void fn_1_D57C(s32 arg0) { + s32 spC[4]; + s32 i; + + spC[0] = 0; + for (i = 1; i < 4; i++) { + spC[i] = spC[i - 1] + 1; + if (spC[i] >= 4) { + spC[i] = 0; + } + if (arg0 == spC[i]) { + lbl_1_bss_450.unk04 = i; + } + } + for (i = 0; i < 4; i++) { + fn_1_352C(&lbl_1_bss_450.unk34[i], spC[i]); + } + for (i = 0; i < 4; i++) { + lbl_1_bss_450.unk34[i].unk18 = GWPlayer[spC[i]].rank + 1; + } +} + +Vec lbl_1_data_540[] = { + { -300.0f, 0.0f, 460.0f }, + { -100.0f, -30.0f, 460.0f }, + { 100.0f, -60.0f, 460.0f }, + { 300.0f, -90.0f, 460.0f } +}; + +void fn_1_D6B0(omObjData* arg0, s32 arg1) { + s32 var_r30; + s32 temp_r28; + + var_r30 = arg1; + temp_r28 = lbl_1_bss_450.unk34[var_r30].unk10; + arg0->model[1] = CharModelCreate(lbl_1_bss_450.unk34[arg1].unk10, 4); + arg0->motion[1] = CharModelMotionCreate(lbl_1_bss_450.unk34[arg1].unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + arg0->motion[2] = CharModelMotionCreate(lbl_1_bss_450.unk34[arg1].unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 3)); + arg0->motion[3] = CharModelMotionCreate(lbl_1_bss_450.unk34[arg1].unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 109)); + CharModelMotionDataClose(temp_r28); + Hu3DModelPosSet(arg0->model[1], lbl_1_data_540[var_r30].x, 90.0f + lbl_1_data_540[lbl_1_bss_450.unk34[var_r30].unk18 - 1].y, lbl_1_data_540[var_r30].z - 15.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 1, 0, 1); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 62)); + Hu3DModelPosSet(arg0->model[2], lbl_1_data_540[var_r30].x, lbl_1_data_540[lbl_1_bss_450.unk34[var_r30].unk18 - 1].y, lbl_1_data_540[var_r30].z); + if (lbl_1_bss_450.unk34[var_r30].unk18 == 4) { + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + } + Hu3DModelScaleSet(arg0->model[2], 1.5f, 1.0f, 1.5f); + Hu3DModelShadowMapSet(arg0->model[2]); +} + +void fn_1_D9A8(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + fn_1_1DCC(lbl_1_bss_338[lbl_1_bss_450.unk04].unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_338[lbl_1_bss_450.unk04].unk00->work[0] = arg4; + lbl_1_bss_338[lbl_1_bss_450.unk04].unk00->work[1] = arg1; + lbl_1_bss_338[lbl_1_bss_450.unk04].unk00->work[2] = arg2 + 1; +} + +void fn_1_DAA4(omObjData* arg0, StructBss19C* arg1) { + float temp_f31; + s32 i; + + temp_f31 = Hu3DData[arg0->model[1]].pos.y; + for (i = 0; i < 60; i++) { + fn_1_B8C(); + Hu3DData[arg0->model[1]].pos.y = fn_1_948(temp_f31, 0.0f, i, 60.0f); + Hu3DData[arg0->model[2]].pos.y = fn_1_948(temp_f31 - 90.0f, -90.0f, i, 60.0f); + } + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + arg1->unk04 = 0; +} + +void fn_1_DC08(omObjData* arg0, StructBss19C* arg1) { + Vec sp14 = { 120.0f, 0.0f, 670.0f }; + + lbl_1_bss_3D8.unk04 = (void*) fn_1_D09C; + fn_1_1DCC(lbl_1_bss_400.unk00, 2, 2, 0, 0); + fn_1_1DCC(arg0, 1, 2, 15, 1); + fn_1_2CB0(arg0, 1, sp14, -45.0f, 30.0f, 10.0f); + fn_1_1DCC(arg0, 1, 1, 15, 1); + arg1->unk04 = 0; +} + +void fn_1_DD20(omObjData* arg0, StructBss19C* arg1) { + Vec sp14 = { 600.0f, 0.0f, 700.0f }; + + fn_1_1DCC(arg0, 1, 2, 15, 1); + fn_1_2CB0(arg0, 1, sp14, -45.0f, 30.0f, 10.0f); + fn_1_1DCC(arg0, 1, 1, 15, 1); + arg1->unk04 = 0; +} + +void fn_1_DE04(void) { + omObjData* temp_r3; + s32 temp_r30; + + temp_r30 = lbl_1_bss_450.unk14++; + temp_r3 = omAddObjEx(lbl_1_bss_2C8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_338[temp_r30].unk00 = temp_r3; + lbl_1_bss_338[temp_r30].unk04 = NULL; + lbl_1_bss_338[temp_r30].unk00->data = lbl_1_bss_338; + fn_1_D6B0(temp_r3, temp_r30); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_338[temp_r30].unk04 != NULL) { + lbl_1_bss_338[temp_r30].unk04(temp_r3, &lbl_1_bss_338[temp_r30]); + } + if (temp_r3->work[0] != 0) { + fn_1_AE30(temp_r3); + } + } +} + +void fn_1_E228(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 170.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20.x = -5.0f; + var_r31->unk20.y = 0.0f; + var_r31->unk20.z = 0.0f; + var_r31->unk38 = 1700.0f; +} + +void fn_1_E2B4(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 125.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1750.0f; + fn_1_51D0(var_r31, &sp8, var_r31->unk40++, 60.0f, 30.0f); + if (lbl_1_bss_450.unk104 != 0.0f) { + var_r31->unk08.y = 125.0f + lbl_1_bss_450.unk104; + } +} + +void fn_1_E3E4(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + if (var_r31->unk40 == 50) { + fn_1_1DCC(lbl_1_bss_400.unk00, 5, 5, 0, 0); + fn_1_1DCC(lbl_1_bss_400.unk00, 6, 6, 0, 0); + HuAudFXPlay(0xA1); + } + sp8.unk08.x = 0.0f; + sp8.unk08.y = 100.0f; + sp8.unk08.z = 460.0f; + sp8.unk20.x = 0.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 125.0f; + fn_1_51D0(var_r31, &sp8, var_r31->unk40, 180.0f, 10.0f); + if (var_r31->unk40++ >= 90) { + if (var_r31->unk40 == 91) { + lbl_1_bss_68 = HuAudFXPlay(0x21); + } + var_r31->unk20.x = fn_1_828(var_r31->unk20.x, -45.0f, var_r31->unk40 - 90, 90.0f); + Hu3DData[lbl_1_bss_400.unk00->model[5]].rot.x = fn_1_828(0.0f, 45.0f, var_r31->unk40 - 90, 90.0f); + } +} + +void fn_1_E620(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 220.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = 0.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1600.0f; + fn_1_51D0(var_r31, &sp8, var_r31->unk40++, 60.0f, 30.0f); +} diff --git a/src/REL/mstoryDll/main.c b/src/REL/mstoryDll/main.c new file mode 100755 index 00000000..f9eb62d1 --- /dev/null +++ b/src/REL/mstoryDll/main.c @@ -0,0 +1,1012 @@ +#include "REL/mstoryDll.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "ext_math.h" + +char lbl_1_bss_6C[0x3C]; // unused +s32 lbl_1_bss_68; +s32 lbl_1_bss_58[4]; +char lbl_1_bss_48[0x10]; // unused +StructBss4 lbl_1_bss_4; +Process* lbl_1_bss_0; + +s32 lbl_1_data_0[][4] = { + { 0x37, 0x38, 0x36, 0x39 }, + { 0x43, 0x45, 0x44, 0x43 }, + { 0x40, 0x42, 0x41, 0x40 }, + { 0x4B, 0x4D, 0x4C, 0x4B }, + { 0x46, 0x48, 0x47, 0x46 }, + { 0x3E, 0x3F, 0x3E, 0x3E } +}; + +char* lbl_1_data_100[] = { + "S-2 : NORMAL STORY - BOARD CLEAR EVENT", + "S-3 : NORMAL STORY - BOARD MISS EVENT", + "S-4 : NORMAL STORY - MINIGAME CLEAR EVENT", + "S-5 : NORMAL STORY - MINIGAME MISS EVENT" +}; + +void fn_1_0(omObjData* arg0) { + if (WipeStatGet() == 0) { + arg0->func = NULL; + omOvlReturnEx(1, 1); + } +} + +void fn_1_4C(omObjData* arg0) { + if (omSysExitReq != 0) { + arg0->func = fn_1_0; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + } +} + +void fn_1_A4(void) { + s32 sp14; + s32 var_r30; + s32 var_r31; + s32 sp10; + s32 spC; + s32 sp8; + s32 i; + + sp14 = 0; + var_r30 = 0; + var_r31 = 0; + sp10 = 1; + spC = 1; + sp8 = 1; + omAddObjEx(lbl_1_bss_0, 0x2000, 0, 0, -1, fn_1_4C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_B8C(); + } + while (TRUE) { + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + break; + } + if ((HuPadBtnDown[0] & PAD_BUTTON_DOWN) || HuPadStkY[0] >= 30) { + var_r30++; + if (var_r30 >= 4) { + var_r30 = 0; + } + fn_1_BAC(5); + } + if ((HuPadBtnDown[0] & PAD_BUTTON_UP) || HuPadStkY[0] <= -30) { + var_r30--; + if (var_r30 < 0) { + var_r30 = 3; + } + fn_1_BAC(5); + } + if (HuPadBtnDown[0] & PAD_BUTTON_RIGHT) { + var_r31++; + if (var_r31 > 4) { + var_r31 = 0; + } + } + if (HuPadBtnDown[0] & PAD_BUTTON_LEFT) { + var_r31--; + if (var_r31 < 0) { + var_r31 = 4; + } + } + fontcolor = FONT_COLOR_WHITE; + print8(24, 100, 1.5f, ">>>>> MPGC STORY 1 - EVENT SELECT <<<<<"); + print8(24, 130, 1.5f, "MAP NUMBER : %d", var_r31 + 1); + for (i = 0; i < 4; i++) { + fontcolor = FONT_COLOR_WHITE; + if (var_r30 == i) { + fontcolor = FONT_COLOR_CYAN; + } + print8(24, 160 + i * 15, 1.5f, "%s", lbl_1_data_100[i]); + } + fn_1_B8C(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_B8C(); + } + GWSystem.board = var_r31; + switch (var_r30) { + case 0: + fn_1_79B8(lbl_1_bss_0, var_r31, 0); + break; + case 1: + fn_1_ACFC(lbl_1_bss_0, var_r31, 0); + break; + case 2: + fn_1_E710(lbl_1_bss_0, var_r31, 0); + break; + case 3: + fn_1_11624(lbl_1_bss_0, var_r31, 0); + break; + } + while (TRUE) { + fn_1_B8C(); + } +} + +#include "src/REL/executor.c" + +void fn_1_488(void) { + s32 i; + + lbl_1_bss_0 = omInitObjMan(62, 0x2000); + switch (omovlevtno) { + case 0: + for (i = 0; i < 4; i++) { + if (GWPlayerCfg[i].character == GWUnkB1Get()) { + break; + } + } + fn_1_79B8(lbl_1_bss_0, GWSystem.board, i); + break; + case 1: + for (i = 0; i < 4; i++) { + if (GWPlayerCfg[i].character == GWUnkB1Get()) { + break; + } + } + fn_1_ACFC(lbl_1_bss_0, GWSystem.board, i); + break; + case 2: + if (GWPlayerCoinWinGet(0) >= 10) { + fn_1_E710(lbl_1_bss_0, GWSystem.board, 0); + } else { + fn_1_11624(lbl_1_bss_0, GWSystem.board, 0); + } + break; + case 20: + fn_1_14150(lbl_1_bss_0); + break; + } +} + +void ObjectSetup(void) { + fn_1_488(); +} + +float fn_1_828(float arg0, float arg1, float arg2, float arg3) { + if (arg3 <= arg2) { + return arg1; + } + return arg0 + (arg2 / arg3) * (arg1 - arg0); +} + +float fn_1_850(float arg0, float arg1, float arg2) { + return (arg1 + arg0 * (arg2 - 1.0f)) / arg2; +} + +float fn_1_870(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * (1.0 - cosd((90.0f / arg3) * arg2)); +} + +float fn_1_948(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * sind((90.0f / arg3) * arg2); +} + +float fn_1_A10(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg0; + } + return arg0 + (arg1 - arg0) * sind((180.0f / arg3) * arg2); +} + +float fn_1_ACC(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg0; + } + return arg0 + (arg1 - arg0) * sind((360.0f / arg3) * arg2); +} + +void fn_1_B88(void) { +} + +void fn_1_B8C(void) { + HuPrcVSleep(); +} + +void fn_1_BAC(s32 arg0) { + HuPrcSleep(arg0); +} + +void fn_1_BD4(void) { + HuPrcEnd(); +} + +void fn_1_BF4(void) { + HuWinInit(1); +} + +void fn_1_C18(void) { + HuWinAllKill(); +} + +void fn_1_C38(s32 arg0, float arg1, float arg2, s32 arg3) { + WindowData* temp_r29; + float temp_f29; + float temp_f28; + float temp_f25; + float temp_f24; + float temp_f31; + float temp_f27; + float temp_f30; + float temp_f26; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + s32 i; + + temp_r29 = &winData[arg0]; + temp_f29 = temp_r29->pos_x; + temp_f28 = temp_r29->pos_y; + temp_f25 = temp_r29->w; + temp_f24 = temp_r29->h; + temp_f31 = temp_f29 + temp_f25 * arg1; + temp_f27 = 4.0f / temp_f25; + if (temp_f31 + 4.0f - (temp_f29 + temp_f25) >= 0.0f) { + temp_f31 = (temp_f29 + temp_f25) - 4.0f; + } else if (temp_f29 - (temp_f31 - 2.0f) >= 0.0f) { + temp_f31 = temp_f29; + } else { + temp_f31 -= 2.0f; + } + temp_f30 = temp_f28 + temp_f24 * arg2; + temp_f26 = 4.0f / temp_f24; + if (temp_f30 + 4.0f - (temp_f28 + temp_f24) >= 0.0f) { + temp_f30 = (temp_f28 + temp_f24) - 4.0f; + } else if (temp_f28 - (temp_f30 - 2.0f) >= 0.0f) { + temp_f30 = temp_f28; + } else { + temp_f30 -= 2.0f; + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f31, temp_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + var_f23 = temp_f31; + var_f21 = temp_f27; + var_f22 = temp_f30; + var_f20 = temp_f26; + } else { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + var_f23 = temp_f29; + var_f21 = 1.0f; + var_f22 = temp_f28; + var_f20 = 1.0f; + } + HuWinDispOn(arg0); + for (i = 0; i <= 15; i++) { + HuPrcVSleep(); + if (arg3 != 0) { + if (i <= 10) { + var_f23 = fn_1_948(temp_f31, temp_f29, i, 10.0f); + var_f21 = fn_1_948(temp_f27, 1.0f, i, 10.0f);; + } else { + var_f22 = fn_1_948(temp_f30, temp_f28, i - 10, 5.0f); + var_f20 = fn_1_948(temp_f26, 1.0f, i - 10, 5.0f); + } + } else { + if (i <= 10) { + var_f22 = fn_1_948(temp_f28, temp_f30, i, 10.0f); + var_f20 = fn_1_948(1.0f, temp_f26, i, 10.0f); + } else { + var_f23 = fn_1_948(temp_f29, temp_f31, i - 10, 5.0f); + var_f21 = fn_1_948(1.0f, temp_f27, i - 10, 5.0f); + } + } + HuWinPosSet(arg0, var_f23, var_f22); + HuWinScaleSet(arg0, var_f21, var_f20); + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + } else { + HuWinPosSet(arg0, temp_f31, temp_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + } + HuPrcVSleep(); +} + +s32 fn_1_1680(s32 arg0, s32 arg1, s32 arg2, s32 arg3, float arg4, float arg5, s32 arg6) { + s32 temp_r31; + + arg2 = arg2 * 21 + 16; + arg3 = arg3 * 26 + 16; + if (arg0 == 0) { + arg0 = 550 - arg2; + } else { + arg0 = 1.0f + (576.0f - arg2) / 2.0f; + } + if (arg1 == 0) { + arg1 = 430 - arg3; + } + temp_r31 = HuWinExCreateStyled(arg0, arg1, arg2, arg3, -1, 1); + if (arg6 != -1) { + arg6 = GWPlayerCfg[arg6].pad_idx; + winData[temp_r31].active_pad = 1; + } else { + winData[temp_r31].active_pad = 0xF; + } + HuWinMesPalSet(temp_r31, 7, 0, 0, 0); + fn_1_C38(temp_r31, arg4, arg5, 1); + return temp_r31; +} + +s32 fn_1_1834(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + return fn_1_1680(arg0, arg1, arg2, arg3, 0.5f, 0.5f, arg4); +} + +void fn_1_1A04(s32 arg0, float arg1, float arg2) { + HuWinMesSet(arg0, MAKE_MESSID(37, 4)); + HuPrcVSleep(); + fn_1_C38(arg0, arg1, arg2, 0); + HuWinExCleanup(arg0); +} + +void fn_1_1A64(s32 arg0) { + fn_1_1A04(arg0, 0.5f, 0.5f); +} + +void fn_1_1ACC(s32 arg0, s32 arg1) { + s32 i; + + if (arg1 > 0) { + HuPrcSleep(arg1); + return; + } + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesWait(arg0); + HuWinComKeyReset(); +} + +BOOL fn_1_1B78(s32 arg0, s32 arg1) { + s32 var_r31; + s32 i; + + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + var_r31 = HuWinChoiceGet(arg0, arg1); + HuWinComKeyReset(); + if (var_r31 != 0) { + var_r31 = FALSE; + } else { + var_r31 = TRUE; + } + return var_r31; +} + +BOOL fn_1_1C34(s32 arg0) { + return fn_1_1B78(arg0, 0); +} + +void fn_1_1CE8(s32 arg0, s32 arg1) { + HuWinMesSet(arg0, arg1); +} + +void fn_1_1D1C(s32 arg0, s32 arg1, s32 arg2) { + HuWinInsertMesSet(arg0, arg1, arg2); +} + +void fn_1_1D5C(s16 arg0) { + ModelData* var_r28; + HsfMaterial* var_r31; + HsfData* temp_r30; + s16 var_r27; + s32 i; + + var_r28 = &Hu3DData[arg0]; + temp_r30 = var_r28->hsfData; + var_r27 = temp_r30->materialCnt; + var_r31 = temp_r30->material; + for (i = 0; i < var_r27; var_r31++, i++) { + var_r31->vtxMode = 1; + } +} + +void fn_1_1DCC(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + switch (arg4) { + case 0: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_NONE); + break; + case 1: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_LOOP); + break; + case 2: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_PAUSE); + break; + } +} + +void fn_1_1F44(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg0->motion[arg2] == Hu3DMotionIDGet(arg0->model[arg1])) { + return; + } + if (arg0->motion[arg2] == Hu3DMotionShiftIDGet(arg0->model[arg1])) { + return; + } + fn_1_1F44(arg0, arg1, arg2, arg3, arg4); +} + +void fn_1_2224(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3) { + HuPrcSleep(arg3 + 1); + do { + HuPrcVSleep(); + } while (arg0->motion[arg2] != Hu3DMotionIDGet(arg0->model[arg1]) || !Hu3DMotionEndCheck(arg0->model[arg1])); +} + +s32 fn_1_22B4(s32 arg0) { + s32 i; + + for (i = 0; i < 4; i++) { + if (arg0 == GWPlayerCfg[i].group) { + break; + } + } + return i; +} + +void fn_1_22FC(s32 arg0, s32 arg1) { + while (TRUE) { + if (arg1 & HuPadBtnDown[arg0]) { + break; + } + HuPrcVSleep(); + } +} + +void fn_1_2350(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + if (HuPadBtn[0] & PAD_BUTTON_B) { + if (HuPadBtn[0] & PAD_TRIGGER_R) { + var_r31->unk08.z -= HuPadStkY[0] / 10.0f; + } else { + var_r31->unk08.x += HuPadStkX[0] / 10.0f; + var_r31->unk08.y += HuPadStkY[0] / 10.0f; + } + } + if (HuPadBtn[0] & PAD_BUTTON_Y) { + var_r31->unk20.x -= HuPadStkY[0] / 100.0f; + var_r31->unk20.y += HuPadStkX[0] / 100.0f; + if (var_r31->unk20.x < 0.0f) { + var_r31->unk20.x += 360.0f; + } + if (var_r31->unk20.x >= 360.0f) { + var_r31->unk20.x -= 360.0f; + } + if (var_r31->unk20.y < 0.0f) { + var_r31->unk20.y += 360.0f; + } + if (var_r31->unk20.y >= 360.0f) { + var_r31->unk20.y -= 360.0f; + } + } + if (HuPadBtn[0] & PAD_BUTTON_X) { + var_r31->unk38 -= HuPadStkY[0] / 10.0f; + } + print8(24, 40, 1.5f, "CENTER : %.2f, %.2f, %.2f", var_r31->unk08.x, var_r31->unk08.y, var_r31->unk08.z); + print8(24, 55, 1.5f, "ROT : %.2f, %.2f, %.2f", var_r31->unk20.x, var_r31->unk20.y, var_r31->unk20.z); + print8(24, 70, 1.5f, "ZOOM : %.2f", var_r31->unk38); +} + +void fn_1_2710(void (*arg0)(void)) { + lbl_1_bss_4.unk00 = arg0; +} + +void fn_1_2720(void (*arg0)(void)) { + lbl_1_bss_4.unk04 = arg0; +} + +void fn_1_2730(omObjData* arg0) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + if (var_r31->unk00 != NULL) { + var_r31->unk00(); + } + Center.x = var_r31->unk08.x; + Center.y = var_r31->unk08.y; + Center.z = var_r31->unk08.z; + CRot.x = var_r31->unk20.x; + CRot.y = var_r31->unk20.y; + CRot.z = var_r31->unk20.z; + CZoom = var_r31->unk38; +} + +void fn_1_27E8(Process* arg0, void (*arg1)(void)) { + Hu3DCameraCreate(1); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 42.0f, 0.1f, 10000.0f, 1.2f); + lbl_1_bss_4.unk00 = arg1; + lbl_1_bss_4.unk04 = fn_1_2350; + omAddObjEx(arg0, 0x7FDA, 0, 0, -1, omOutView); + omAddObjEx(arg0, 0x7FD9, 0, 0, -1, fn_1_2730); +} + +void fn_1_2908(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5) { + Vec sp4C; + Vec sp40; + Vec sp34; + Vec sp28; + float sp24; + float sp20; + float sp1C; + s32 sp18; + s32 sp14; + float var_f31; + + sp40.x = Hu3DData[arg0->model[arg1]].pos.x; + sp4C.y = sp40.y = Hu3DData[arg0->model[arg1]].pos.y; + sp40.z = Hu3DData[arg0->model[arg1]].pos.z; + sp34.x = arg2.x; + sp34.y = arg2.y; + sp34.z = arg2.z; + sp18 = arg4; + sp28.x = Hu3DData[arg0->model[arg1]].rot.x; + sp28.y = Hu3DData[arg0->model[arg1]].rot.y; + sp28.z = Hu3DData[arg0->model[arg1]].rot.z; + sp1C = 0.0f; + sp20 = arg3; + sp24 = 0.0f; + sp14 = arg5; + var_f31 = -1.1025f; + Hu3DMotionShiftSet(arg0->model[1], arg0->motion[3], 0.0f, 5.0f, 0U); + HuPrcSleep(10); + while (TRUE) { + if (var_f31 >= 1.7f) { + var_f31 = 1.7f; + } + sp4C.y += var_f31 * var_f31 * (var_f31 >= 0.0f ? -17.5f : 17.5f); + if (sp4C.y <= 0.0f && var_f31 > 0.0f) { + sp4C.y = 0.0f; + } + sp4C.x = sp40.x += 6.0 * sind(sp28.y); + sp4C.z = sp40.z += 6.0 * cosd(sp28.y); + Hu3DModelPosSet(arg0->model[1], sp4C.x, sp4C.y, sp4C.z); + Hu3DModelRotSet(arg0->model[1], sp28.x, sp28.y, sp28.z); + HuPrcVSleep(); + if (sp4C.y <= arg2.y && var_f31 > 0.0f) { + break; + } + var_f31 += 0.11f; + } +} + +void fn_1_2CB0(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5) { + Vec sp54; + Vec sp48; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + s32 sp14; + s32 temp_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 i; + + var_r26 = 0; + var_r25 = 0; + sp48.x = Hu3DData[arg0->model[arg1]].pos.x; + sp48.y = Hu3DData[arg0->model[arg1]].pos.y; + sp48.z = Hu3DData[arg0->model[arg1]].pos.z; + sp3C.x = arg2.x; + sp3C.y = arg2.y; + sp3C.z = arg2.z; + sp14 = arg4; + sp24.x = Hu3DData[arg0->model[arg1]].rot.x; + sp24.y = Hu3DData[arg0->model[arg1]].rot.y; + sp24.z = Hu3DData[arg0->model[arg1]].rot.z; + sp18.x = 0.0f; + sp18.y = arg3; + sp18.z = 0.0f; + if (sp3C.x - sp48.x >= 0.0f) { + var_r24 = 1; + } else { + var_r24 = 0; + } + if (sp3C.z - sp48.z >= 0.0f) { + var_r23 = 1; + } else { + var_r23 = 0; + } + temp_r27 = arg5; + do { + sp30.y = -(atan2d(sp3C.z - sp48.z, sp3C.x - sp48.x) - 90.0); + if (sp30.y < 0.0f) { + sp30.y += 360.0f; + } else if (sp30.y >= 360.0f) { + sp30.y -= 360.0f; + } + if (sp30.y >= 180.0f) { + if (sp24.y - sp30.y >= 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp30.y < -180.0f) { + sp24.y += 360.0f; + } + } else { + if (sp24.y - sp30.y > 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp30.y <= -180.0f) { + sp24.y += 360.0f; + } + } + sp54.x = sp48.x += 6.0 * sind(sp30.y); + sp54.z = sp48.z += 6.0 * cosd(sp30.y); + if (var_r24 != 0) { + if (sp48.x >= sp3C.x) { + sp54.x = sp48.x = sp3C.x; + var_r26 = 1; + } + } else { + if (sp48.x <= sp3C.x) { + sp54.x = sp48.x = sp3C.x; + var_r26 = 1; + } + } + if (var_r23 != 0) { + if (sp48.z >= sp3C.z) { + sp54.z = sp48.z = sp3C.z; + var_r25 = 1; + } + } else { + if (sp48.z <= sp3C.z) { + sp54.z = sp48.z = sp3C.z; + var_r25 = 1; + } + } + sp24.y = fn_1_850(sp24.y, sp30.y, 10.0f); + Hu3DModelPosSet(arg0->model[1], sp54.x, sp48.y, sp54.z); + Hu3DModelRotSet(arg0->model[1], sp24.x, sp24.y, sp24.z); + HuPrcVSleep(); + } while (var_r25 != 1 || var_r26 != 1); + sp24.y = Hu3DData[arg0->model[arg1]].rot.y; + for (i = 0; i <= temp_r27; i++) { + if (sp18.y >= 180.0f) { + if (sp24.y - sp18.y >= 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp18.y < -180.0f) { + sp24.y += 360.0f; + } + } else { + if (sp24.y - sp18.y > 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp18.y <= -180.0f) { + sp24.y += 360.0f; + } + } + sp24.y = fn_1_828(sp24.y, sp18.y, i, temp_r27); + Hu3DModelRotSet(arg0->model[1], sp24.x, sp24.y, sp24.z); + HuPrcVSleep(); + } +} + +void fn_1_34A4(s16 arg0) { + ModelData* var_r28; + HsfData* temp_r30; + HsfMaterial* var_r31; + s16 var_r27; + s32 i; + + var_r28 = &Hu3DData[arg0]; + temp_r30 = var_r28->hsfData; + var_r27 = temp_r30->materialCnt; + var_r31 = temp_r30->material; + for (i = 0; i < var_r27; var_r31++, i++) { + var_r31->vtxMode = 1; + var_r31->litColor[0] = 0xFF; + var_r31->litColor[1] = 0xFF; + var_r31->litColor[2] = 0xFF; + } +} + +void fn_1_352C(StructFn352C* arg0, s32 arg1) { + arg0->unk00 = arg1; + arg0->unk04 = GWPlayerCfg[arg0->unk00].group; + arg0->unk08 = GWPlayerCfg[arg0->unk00].iscom; + arg0->unk0C = GWPlayerCfg[arg0->unk00].diff; + arg0->unk10 = GWPlayerCfg[arg0->unk00].character; + arg0->unk14 = GWPlayerCfg[arg0->unk00].pad_idx; +} + +s32 fn_1_35C0(void) { + s32 i; + + for (i = 0; i < 4; i++) { + if (!GWPlayerCfg[i].iscom) { + break; + } + } + if (i == 4) { + return -1; + } + return i; +} + +s32 fn_1_3618(s32 arg0) { + s32 temp_r3 = 0; + + temp_r3 = Hu3DGLightCreate(0.0f, 700.0f, 1200.0f, 0.0f, -1.0f, 0.0f, arg0, arg0, arg0); + Hu3DGLightPosAimSet(temp_r3, 0.0f, 700.0f, 1200.0f, 0.0f, 0.0f, 640.0f); + Hu3DGLightInfinitytSet(temp_r3); + return temp_r3; +} + +void fn_1_3704(void) { + Vec sp20 = { 0.0f, 3000.0f, 800.0f }; + Vec sp14 = { 0.0f, 0.0f, 640.0f }; + Vec sp8 = { 0.0f, 1.0f, 0.0f }; + + Hu3DShadowCreate(45.0f, 2000.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.8f); + Hu3DShadowPosSet(&sp20, &sp8, &sp14); +} + +void fn_1_37C8(StructBss4* arg0) { + arg0->unk08.x = arg0->unk14; + arg0->unk08.y = arg0->unk18; + arg0->unk08.z = arg0->unk1C; + arg0->unk20.x = arg0->unk2C; + arg0->unk20.y = arg0->unk30; + arg0->unk20.z = arg0->unk34; + arg0->unk38 = arg0->unk3C; +} + +void fn_1_3804(StructBss4* arg0) { + arg0->unk40 = 0; + arg0->unk14 = arg0->unk08.x; + arg0->unk18 = arg0->unk08.y; + arg0->unk1C = arg0->unk08.z; + arg0->unk2C = arg0->unk20.x; + arg0->unk30 = arg0->unk20.y; + arg0->unk34 = arg0->unk20.z; + arg0->unk3C = arg0->unk38; +} + +void fn_1_3848(StructBss4* arg0, StructBss4* arg1, s32 arg2, float arg3) { + arg0->unk08.x = fn_1_850(arg0->unk08.x, arg1->unk14, arg3); + arg0->unk08.y = fn_1_850(arg0->unk08.y, arg1->unk18, arg3); + arg0->unk08.z = fn_1_850(arg0->unk08.z, arg1->unk1C, arg3); + arg0->unk20.x = fn_1_850(arg0->unk20.x, arg1->unk2C, arg3); + arg0->unk20.y = fn_1_850(arg0->unk20.y, arg1->unk30, arg3); + arg0->unk20.z = fn_1_850(arg0->unk20.z, arg1->unk34, arg3); + if (arg2 != 0) { + arg0->unk38 = fn_1_850(arg0->unk38, arg1->unk3C, arg3); + } +} + +void fn_1_3ABC(StructBss4* arg0, float arg1) { + fn_1_3848(arg0, arg0, 1, arg1); +} + +void fn_1_3D28(StructBss4* arg0, float arg1) { + fn_1_3848(arg0, arg0, 0, arg1); +} + +void fn_1_3F54(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_828(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_828(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_828(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_828(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_828(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_828(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_828(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_41D0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + fn_1_3F54(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_4484(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4) { + fn_1_3F54(arg0, arg1, arg2, arg3); + fn_1_3848(arg0, arg1, 1, arg4); +} + +void fn_1_48F0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_948(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_948(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_948(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_948(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_948(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_948(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_948(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_4D44(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + fn_1_48F0(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_51D0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4) { + fn_1_48F0(arg0, arg1, arg2, arg3); + fn_1_3848(arg0, arg1, 1, arg4); +} + +void fn_1_5828(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_870(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_870(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_870(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_870(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_870(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_870(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_870(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_5CEC(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + fn_1_5828(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_61E8(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4) { + fn_1_5828(arg0, arg1, arg2, arg3); + fn_1_3848(arg0, arg1, 1, arg4); +} + +void fn_1_68B0(omObjData* arg0) { + s32 var_r30; + + if (arg0->work[0] == 0 && arg0->work[2] != 0) { + arg0->work[2]--; + return; + } + if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[1])) { + var_r30 = arg0->work[1]; + Hu3DMotionShiftSet(arg0->model[1], arg0->motion[var_r30], 0.0f, 15.0f, 0x40000001U); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + } +} + +void fn_1_6974(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + fn_1_1DCC(arg0, 1, arg1, arg3, arg4); + if (arg4 == 0) { + arg0->work[0] = 1; + arg0->work[1] = arg2; + arg0->work[2] = arg3 + 1; + } +} + +void fn_1_6AFC(s32 arg0, s32 arg1) { + HuWinMesSet(arg0, arg1); +} + +void fn_1_6B30(s32 arg0, s32 arg1, s32 arg2) { + HuWinInsertMesSet(arg0, arg1, arg2); +} + +void fn_1_6B70(s32 arg0, s32 arg1) { + fn_1_1ACC(arg0, arg1); +} + +void fn_1_6C1C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + s32 temp_r28 = 0; + s32 var_r29 = 0; + s32 i; + + temp_r28 = HuWinKeyWaitNumGet(arg1); + if (arg2 == -1 || arg2 >= temp_r28 - 1) { + arg2 = temp_r28 - 1; + } + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesSet(arg0, arg1); + for (i = 0; i < temp_r28; i++) { + var_r29 = 0; + do { + HuPrcVSleep(); + } while (HuWinStatGet(arg0) != 1); + if (i == arg2) { + HuWinAttrSet(arg0, 0x400); + var_r29 = 1; + } + while (TRUE) { + HuPrcVSleep(); + if (var_r29 != 0) { + if (var_r29 == 1 && HuWinStatGet(arg0) != 1) { + var_r29 = 2; + } else if (var_r29 == 2) { + HuPrcSleep(arg3); + HuWinAttrReset(arg0, 0x400); + HuWinKeyWaitEntry(arg0); + break; + } + } else if (HuWinStatGet(arg0) != 1) { + break; + } + } + } + fn_1_1ACC(arg0, 0); + HuWinMesSet(arg0, MAKE_MESSID(37, 4)); + HuWinComKeyReset(); +} + +BOOL fn_1_6E04(s32 arg0) { + return fn_1_1B78(arg0, 0); +} + +s32 fn_1_6EB8(s32 arg0, s32 arg1) { + float spC[2]; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + s32 var_r31; + + HuWinMesMaxSizeGet(1, spC, arg0); + var_f31 = spC[0]; + var_f30 = spC[1]; + var_f29 = 550.0f - var_f31; + var_f28 = 430.0f - var_f30; + var_r31 = HuWinExCreateStyled(var_f29, var_f28, var_f31, var_f30, -1, 1); + if (arg1 != -1) { + arg1 = GWPlayerCfg[arg1].pad_idx; + winData[var_r31].active_pad = 1; + } else { + winData[var_r31].active_pad = 0xF; + } + HuWinMesPalSet(var_r31, 7, 0, 0, 0); + fn_1_C38(var_r31, 0.5f, 0.5f, 1); + return var_r31; +} + +void fn_1_7028(s32 arg0) { + fn_1_1A04(arg0, 0.5f, 0.5f); +} diff --git a/src/REL/mstoryDll/mg_clear.c b/src/REL/mstoryDll/mg_clear.c new file mode 100755 index 00000000..48fb2dc4 --- /dev/null +++ b/src/REL/mstoryDll/mg_clear.c @@ -0,0 +1,691 @@ +#include "REL/mstoryDll.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/flag.h" +#include "game/gamework.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/objsub.h" +#include "game/printfunc.h" +#include "game/saveload.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ char unk0C[4]; + /* 0x010 */ s32 unk10; + /* 0x014 */ char unk14[0x20]; + /* 0x034 */ StructFn352C unk34[4]; + /* 0x104 */ s32 unk104; +} StructBss608; // Size 0x108 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; +} StructData570; // Size 0x14 + +void fn_1_FD1C(void); +void fn_1_10298(omObjData* arg0, StructBss19C* arg1); +void fn_1_10384(omObjData* arg0, StructBss19C* arg1); +void fn_1_10450(omObjData* arg0, StructBss19C* arg1); +void fn_1_1054C(void); +void fn_1_108F8(void); +void fn_1_10C6C(s32 arg0); +void fn_1_10FD0(void); +void fn_1_112A0(void); +void fn_1_1132C(void); +void fn_1_1141C(void); +void fn_1_11534(void); + +StructBss608 lbl_1_bss_608; +StructBss19C lbl_1_bss_5E0; +StructBss19C lbl_1_bss_5B8; +StructBss19C lbl_1_bss_590; +StructBss19C lbl_1_bss_568; +AnimData* lbl_1_bss_560[2]; +s32 lbl_1_bss_55C; +Process* lbl_1_bss_558; + +StructData570 lbl_1_data_570[] = { + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x00), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x01), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x02), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x03), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x04), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x05), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x06), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x07), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x08), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x09), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0E), 1, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0F), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x10), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x11), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x12), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x13), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x14), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x15), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x16), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x17), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x18), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x19), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1E), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1F), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x20), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x21), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x22), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x23), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x24), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x25), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x26), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x27), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x28), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x29), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2E), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2F), 0, 0, 0, 1 } +}; + +s32 lbl_1_data_930[][4] = { + { MAKE_MESSID(30, 72), MAKE_MESSID(30, 73) }, + { MAKE_MESSID(30, 74), MAKE_MESSID(30, 75) }, + { MAKE_MESSID(30, 76), MAKE_MESSID(30, 77) }, + { MAKE_MESSID(30, 78), MAKE_MESSID(30, 79) }, + { MAKE_MESSID(30, 80), MAKE_MESSID(30, 81) } +}; + +void fn_1_E710(Process* arg0, s32 arg1, s32 arg2) { + lbl_1_bss_558 = arg0; + lbl_1_bss_608.unk00 = arg1; + lbl_1_bss_608.unk10 = arg2; + fn_1_BF4(); + lbl_1_bss_608.unk104 = fn_1_3618(0xFF); + fn_1_27E8(lbl_1_bss_558, fn_1_112A0); + fn_1_3704(); + fn_1_10C6C(arg2); + HuPrcChildCreate(fn_1_1054C, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_108F8, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_10FD0, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_FD1C, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +void fn_1_E828(omObjData* arg0) { + if (arg0->work[2] != 0) { + arg0->work[2]--; + return; + } + if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[1])) { + fn_1_1DCC(arg0, 1, arg0->work[1], 15, 1); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + } +} + +void fn_1_E8B4(void) { + s32 var_r30 = 16; + s32 var_r29 = 40; + GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; + s32 i; + + while (TRUE) { + fn_1_B8C(); + printWin(var_r30, var_r29, 220, 130, &sp10); + if (lbl_1_bss_5E0.unk04 == NULL) { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE"); + } else { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_5B8.unk04 == NULL) { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE"); + } else { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_590.unk04 == NULL) { + print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> FALSE"); + } else { + print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> TRUE"); + } + if (lbl_1_bss_568.unk04 == NULL) { + print8(var_r30, var_r29 + 30, 1.0f, "PROC_PLAYER -> FALSE"); + } else { + print8(var_r30, var_r29 + 30, 1.0f, "PROC_PLAYER -> TRUE"); + } + print8(var_r30, var_r29 + 60, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_608.unk00, lbl_1_bss_608.unk04, lbl_1_bss_608.unk10); + print8(var_r30, var_r29 + 80, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(var_r30, var_r29 + 90 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, + lbl_1_bss_608.unk34[i].unk00, lbl_1_bss_608.unk34[i].unk04, lbl_1_bss_608.unk34[i].unk08, + lbl_1_bss_608.unk34[i].unk0C, lbl_1_bss_608.unk34[i].unk14, lbl_1_bss_608.unk34[i].unk10); + } + } +} + +void fn_1_EC00(void) { + lbl_1_bss_58[0] = HuAudSeqPlay(0x36); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + fn_1_BAC(60); +} + +void fn_1_EC5C(void) { + lbl_1_bss_608.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_608.unk10); + fn_1_1D1C(lbl_1_bss_608.unk08, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10, 0); + fn_1_1CE8(lbl_1_bss_608.unk08, lbl_1_data_930[lbl_1_bss_608.unk00][0]); + fn_1_1ACC(lbl_1_bss_608.unk08, -1); + fn_1_1DCC(lbl_1_bss_590.unk00, 1, 1, 15, 1); + fn_1_1A64(lbl_1_bss_608.unk08); + fn_1_1DCC(lbl_1_bss_5B8.unk00, 2, 2, 0, 0); + fn_1_BAC(90); + fn_1_1DCC(lbl_1_bss_590.unk00, 1, 4, 15, 0); + fn_1_BAC(30); + fn_1_1DCC(lbl_1_bss_568.unk00, 1, 4, 15, 0); + fn_1_2224(lbl_1_bss_5B8.unk00, 2, 2, 0); + fn_1_BAC(60); + fn_1_1DCC(lbl_1_bss_568.unk00, 1, 1, 84, 1); + fn_1_1DCC(lbl_1_bss_590.unk00, 1, 1, 84, 1); + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_1132C); + lbl_1_bss_5B8.unk04 = (void*) fn_1_10450; + do { + fn_1_B8C(); + } while (lbl_1_bss_5B8.unk04 != NULL); + fn_1_BAC(10); + lbl_1_bss_608.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_608.unk10); + fn_1_1DCC(lbl_1_bss_590.unk00, 1, 3, 15, 1); + if (lbl_1_bss_608.unk00 == 0) { + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_608.unk00][2]); + } else { + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_608.unk00][0]); + } + fn_1_1D1C(lbl_1_bss_608.unk08, MAKE_MESSID(50, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + 5) + lbl_1_bss_608.unk00, 2); + fn_1_1CE8(lbl_1_bss_608.unk08, lbl_1_data_930[lbl_1_bss_608.unk00][1]); + fn_1_1ACC(lbl_1_bss_608.unk08, -1); + fn_1_1DCC(lbl_1_bss_590.unk00, 1, 1, 15, 1); + fn_1_1A64(lbl_1_bss_608.unk08); +} + +void fn_1_EFE0(s32 arg0, StructBss19C* arg1) { + s32 temp_r31; + + temp_r31 = HuAudSStreamPlay(7); + do { + fn_1_B8C(); + } while (HuAudSStreamStatGet(temp_r31) != 0); + HuAudSeqPause(lbl_1_bss_58[0], 0, 1000); + arg1->unk04 = 0; +} + +void fn_1_F050(omObjData* arg0, StructBss19C* arg1) { + s32 temp_r31; + + temp_r31 = lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00; + fn_1_BAC(150); + OSReport("########## PRESENT_SE : %d\n", temp_r31); + HuAudFXPlay(0x8D4 + temp_r31); + if (lbl_1_data_570[lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00].unk04 == 1) { + fn_1_1DCC(lbl_1_bss_5B8.unk00, 7, 7, 0, 0); + fn_1_BAC(60); + fn_1_1DCC(lbl_1_bss_5B8.unk00, 7, 12, 0, 1); + } else { + fn_1_1DCC(lbl_1_bss_5B8.unk00, 7, 7, 1, 0); + } + arg1->unk04 = 0; +} + +void fn_1_F19C(void) { + s32 i; + + fn_1_1DCC(lbl_1_bss_568.unk00, 1, 2, 15, 1); + for (i = 0; i < 30; i++) { + fn_1_B8C(); + if (lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 != 5) { + Hu3DData[lbl_1_bss_568.unk00->model[1]].pos.x = fn_1_828(120.0f, 80.0f, i, 30.0f); + } + Hu3DData[lbl_1_bss_568.unk00->model[1]].rot.y = fn_1_828(-60.0f, -90.0f, i, 30.0f); + } + fn_1_1DCC(lbl_1_bss_568.unk00, 1, 5, 5, 0); + while (TRUE) { + fn_1_B8C(); + if (Hu3DMotionTimeGet(lbl_1_bss_568.unk00->model[1]) >= 35.0f) { + break; + } + } + Hu3DModelPosSet(lbl_1_bss_5B8.unk00->model[5], 0.0f, 0.0f, 0.0f); + Hu3DModelHookReset(lbl_1_bss_5B8.unk00->model[9]); + Hu3DModelHookSet(lbl_1_bss_568.unk00->model[1], CharModelHookNameGet(lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10, 1, 1), lbl_1_bss_5B8.unk00->model[5]); + fn_1_BAC(60); + lbl_1_bss_5B8.unk04 = (void*) fn_1_10298; + HuAudFXPlay(0xA3); + HuAudCharVoicePlay(lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10, 0x128); + fn_1_1DCC(lbl_1_bss_5B8.unk00, 6, 6, 0, 0); + Hu3DModelAttrReset(lbl_1_bss_5B8.unk00->model[6], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_5B8.unk00->model[5], HU3D_ATTR_DISPOFF); + fn_1_1DCC(lbl_1_bss_568.unk00, 1, 6, 5, 0); + HuAudSeqPause(lbl_1_bss_58[0], 1, 1000); + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + Hu3DMotionSpeedSet(lbl_1_bss_568.unk00->model[1], 0.0f); + Hu3DMotionTimeSet(lbl_1_bss_568.unk00->model[1], 50.0f); + Hu3DModelAttrReset(lbl_1_bss_5B8.unk00->model[7], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(lbl_1_bss_5B8.unk00->model[8], HU3D_ATTR_DISPOFF); + fn_1_1DCC(lbl_1_bss_5B8.unk00, 8, 8, 0, 1); + fn_1_BAC(30); + HuAudFXPlay(0xA9); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_11534); + fn_1_BAC(60); + lbl_1_bss_568.unk04 = (void*) fn_1_F050; + lbl_1_bss_608.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_608.unk10); + lbl_1_bss_590.unk04 = (void*) fn_1_EFE0; + fn_1_1D1C(lbl_1_bss_608.unk08, MAKE_MESSID(50, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + 6) + lbl_1_bss_608.unk00, 0); + fn_1_6C1C(lbl_1_bss_608.unk08, MAKE_MESSID(50, 134), 0, 300); + fn_1_1CE8(lbl_1_bss_608.unk08, MAKE_MESSID(37, 4)); + fn_1_1A64(lbl_1_bss_608.unk08); + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_1141C); + lbl_1_bss_5B8.unk04 = (void*) fn_1_10384; + fn_1_BAC(30); + Hu3DMotionSpeedSet(lbl_1_bss_568.unk00->model[1], 0.1f); + fn_1_BAC(180); + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); +} + +s32 fn_1_F780(s32 arg0) { + if (arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2))) { + return 1; + } + if (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3))) { + return 1; + } + if (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4))) { + return 1; + } + if (arg0 == 3 && _CheckFlag(FLAG_ID_MAKE(0, 5))) { + return 1; + } + if (arg0 == 4 && _CheckFlag(FLAG_ID_MAKE(0, 6))) { + return 1; + } + if (arg0 == 5 && _CheckFlag(FLAG_ID_MAKE(0, 7))) { + return 1; + } + return 0; +} + +void fn_1_F86C(void) { + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + fn_1_BAC(60); + SLCommonSet(); + SLSaveBoardStory(); + if (SLSaveFlagGet() == 1) { + SLSave(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_55C = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_F910(void) { + omOvlHisData* var_r31; + + msmSeStopAll(FALSE, 1000); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + fn_1_BAC(60); + CharModelKill(-1); + HuAudFXAllStop(); + HuAudSStreamAllStop(); + { + s32 sp8[] = { 53, 56, 55, 54, 57 }; + + GWMGAvailSet(omMgIndexGet(sp8[lbl_1_bss_608.unk00]) + 0x191); + } + GWGameStat.present[lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00] = 1; + OSReport("########## PRESENTFLG CHR:%d, MAP:%d, PRESENT:%d\n", lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10, lbl_1_bss_608.unk00, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00); + var_r31 = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY, 20, var_r31->stat); + omOvlCallEx(OVL_PRESENT, 1, lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10 * 6 + lbl_1_bss_608.unk00 + 1, 0); +} + +void fn_1_FAE4(omObjData* arg0, StructBss19C* arg1) { + s32 sp8 = 0; + + lbl_1_bss_58[0] = HuAudSeqPlay(0x36); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + fn_1_BAC(60); + fn_1_EC5C(); + fn_1_F19C(); + fn_1_F910(); + arg1->unk04 = 0; +} + +void fn_1_FD1C(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_558, 0x100, 16, 16, -1, NULL); + lbl_1_bss_5E0.unk00 = temp_r3; + lbl_1_bss_5E0.unk04 = (void*) fn_1_FAE4; + lbl_1_bss_5E0.unk00->data = &lbl_1_bss_5E0; + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_5E0.unk04 != NULL) { + lbl_1_bss_5E0.unk04(temp_r3, &lbl_1_bss_5E0); + } + } +} + +void fn_1_FDD0(omObjData* arg0, s32 arg1) { + s32 temp_r29; + + temp_r29 = lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10; + arg0->model[7] = Hu3DModelCreateFile(lbl_1_data_570[temp_r29 * 6 + arg1].unk00); + arg0->motion[7] = Hu3DMotionIDGet(arg0->model[7]); + if (lbl_1_data_570[temp_r29 * 6 + arg1].unk04 == 1) { + arg0->motion[12] = Hu3DJointMotionFile(arg0->model[7], DATA_MAKE_NUM(DATADIR_MSTORY4, 48)); + } + Hu3DModelPosSet(arg0->model[7], 0.0f, 180.0f, 825.0f); + Hu3DModelAttrSet(arg0->model[7], HU3D_ATTR_DISPOFF); + Hu3DModelShadowSet(arg0->model[7]); + fn_1_1DCC(arg0, 7, 7, 0, 2); + HuDataDirClose(DATADIR_MSTORY4); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 56)); + arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 0, 0, 2); + Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base"); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 59)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 60)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 61)); + fn_1_1DCC(arg0, 2, 2, 0, 2); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 57)); + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 81)); + Hu3DModelShadowSet(arg0->model[5]); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 83)); + arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]); + Hu3DModelPosSet(arg0->model[6], 25.0f, 125.0f, 900.0f); + Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF); + fn_1_1DCC(arg0, 6, 6, 0, 2); + arg0->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 96)); + arg0->motion[8] = Hu3DMotionIDGet(arg0->model[8]); + Hu3DModelAttrSet(arg0->model[8], HU3D_ATTR_DISPOFF); + fn_1_1DCC(arg0, 8, 8, 0, 2); + arg0->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 84)); + arg0->motion[9] = Hu3DMotionIDGet(arg0->model[9]); + Hu3DModelPosSet(arg0->model[9], 0.0f, 0.0f, 460.0f); + Hu3DModelShadowSet(arg0->model[9]); + fn_1_1DCC(arg0, 9, 9, 0, 2); + Hu3DModelHookSet(arg0->model[9], "carrier2-target0", arg0->model[5]); + lbl_1_bss_560[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY, 85 + arg1 * 2), MEMORY_DEFAULT_NUM)); + lbl_1_bss_560[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY, 86 + arg1 * 2), MEMORY_DEFAULT_NUM)); + Hu3DAnimCreate(lbl_1_bss_560[0], lbl_1_bss_5B8.unk00->model[5], "cylinder3"); + Hu3DAnimCreate(lbl_1_bss_560[1], lbl_1_bss_5B8.unk00->model[5], "wakuwaku"); +} + +void fn_1_10298(omObjData* arg0, StructBss19C* arg1) { + Mtx sp8; + + Hu3DData[arg0->model[7]].pos.y = fn_1_ACC(180.0f, 185.0f, arg1->unk08++, 360.0f); + Hu3DModelObjMtxGet(arg0->model[7], "effect", sp8); + Hu3DModelPosSet(arg0->model[8], sp8[0][3], sp8[1][3], sp8[2][3]); + if (arg1->unk08 >= 360) { + arg1->unk08 = 0; + } +} + +void fn_1_10384(omObjData* arg0, StructBss19C* arg1) { + Mtx sp8; + + Hu3DData[arg0->model[7]].pos.y += arg1->unk0C / 100.0f; + Hu3DModelObjMtxGet(arg0->model[7], "effect", sp8); + Hu3DModelPosSet(arg0->model[8], sp8[0][3], sp8[1][3], sp8[2][3]); + arg1->unk0C += 2; +} + +void fn_1_10450(omObjData* arg0, StructBss19C* arg1) { + fn_1_1DCC(arg0, 9, 9, 0, 1); + while (TRUE) { + fn_1_B8C(); + Hu3DData[arg0->model[9]].pos.z += 2.5f; + if (Hu3DData[arg0->model[9]].pos.z >= 670.0f) { + break; + } + } + Hu3DData[arg0->model[9]].pos.z = 670.0f; + Hu3DMotionSpeedSet(arg0->model[9], 0.0f); + arg1->unk04 = 0; +} + +void fn_1_1054C(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_558, 0x100, 16, 16, -1, NULL); + lbl_1_bss_5B8.unk00 = temp_r3; + lbl_1_bss_5B8.unk04 = NULL; + fn_1_FDD0(temp_r3, lbl_1_bss_608.unk00); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_5B8.unk04 != NULL) { + lbl_1_bss_5B8.unk04(temp_r3, &lbl_1_bss_5B8); + } + } +} + +void fn_1_105F8(omObjData* arg0, s32 arg1) { + s32 sp1C[] = { + DATA_MAKE_NUM(DATADIR_MSTORY, 0x0061), + DATA_MAKE_NUM(DATADIR_MSTORY, 0x006C), + DATA_MAKE_NUM(DATADIR_MSTORY, 0x0074), + DATA_MAKE_NUM(DATADIR_MSTORY, 0x007C), + DATA_MAKE_NUM(DATADIR_MSTORY, 0x0083) + }; + s32 sp30[][5] = { + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x0062), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0064), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0065), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0067), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0068) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x006D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x006F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0070), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0072), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0073) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x0075), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0077), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0078), DATA_MAKE_NUM(DATADIR_MSTORY, 0x007A), DATA_MAKE_NUM(DATADIR_MSTORY, 0x007B) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x007D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x007E), DATA_MAKE_NUM(DATADIR_MSTORY, 0x007F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0081), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0082) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x0084), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0086), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0087), DATA_MAKE_NUM(DATADIR_MSTORY, 0x0089), DATA_MAKE_NUM(DATADIR_MSTORY, 0x008A) } + }; + + arg0->model[1] = Hu3DModelCreateFile(sp1C[arg1]); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][0]); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][1]); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][2]); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][3]); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], sp30[arg1][4]); + Hu3DModelPosSet(arg0->model[1], -120.0f, 0.0f, 670.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 30.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + if (arg1 == 3) { + Hu3DData[arg0->model[1]].pos.y = 50.0f; + } + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 5, 0, 1); + { + s32 sp8[] = { 9, 14, 10, 11, 12 }; + + if (arg1 != 3) { + CharModelEffectNpcInit(arg0->model[1], arg0->motion[2], 1, sp8[arg1]); + } + } +} + +void fn_1_108F8(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_558, 0x100, 16, 16, -1, NULL); + lbl_1_bss_590.unk00 = temp_r3; + lbl_1_bss_590.unk04 = NULL; + fn_1_105F8(temp_r3, lbl_1_bss_608.unk00); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_590.unk04 != NULL) { + lbl_1_bss_590.unk04(temp_r3, &lbl_1_bss_590); + } + } +} + +void fn_1_10C6C(s32 arg0) { + s32 spC[4]; + s32 i; + + spC[0] = 0; + for (i = 1; i < 4; i++) { + spC[i] = spC[i - 1] + 1; + if (spC[i] >= 4) { + spC[i] = 0; + } + if (arg0 == spC[i]) { + lbl_1_bss_608.unk04 = i; + } + } + for (i = 0; i < 4; i++) { + fn_1_352C(&lbl_1_bss_608.unk34[i], spC[i]); + } +} + +void fn_1_10D50(omObjData* arg0, s32 arg1) { + s32 temp_r30; + + temp_r30 = lbl_1_bss_608.unk34[lbl_1_bss_608.unk04].unk10; + arg0->model[1] = CharModelCreate(temp_r30, 1); + arg0->motion[1] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + arg0->motion[2] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 2)); + arg0->motion[3] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 53)); + arg0->motion[4] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 109)); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 24 + temp_r30)); + arg0->motion[6] = Hu3DJointMotionFile(arg0->model[1], DATA_MAKE_NUM(DATADIR_MSTORY, 32 + temp_r30)); + CharModelMotionDataClose(temp_r30); + Hu3DModelPosSet(arg0->model[1], 120.0f, 0.0f, 670.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, -60.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 1, 0, 1); +} + +void fn_1_10F24(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + fn_1_1DCC(lbl_1_bss_568.unk00, 1, arg0, arg2, arg3); + if (arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_568.unk00->work[0] = arg4; + lbl_1_bss_568.unk00->work[1] = arg1; + lbl_1_bss_568.unk00->work[2] = arg2 + 1; +} + +void fn_1_10FD0(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_558, 0x100, 16, 16, -1, NULL); + lbl_1_bss_568.unk00 = temp_r3; + lbl_1_bss_568.unk04 = NULL; + lbl_1_bss_568.unk00->data = &lbl_1_bss_568; + fn_1_10D50(temp_r3, lbl_1_bss_608.unk04); // Second argument required to match. + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_568.unk04 != NULL) { + lbl_1_bss_568.unk04(temp_r3, &lbl_1_bss_568); + } + if (temp_r3->work[0] != 0) { + fn_1_E828(temp_r3); + } + } +} + +void fn_1_112A0(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 125.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20.x = -5.0f; + var_r31->unk20.y = 0.0f; + var_r31->unk20.z = 0.0f; + var_r31->unk38 = 1750.0f; +} + +void fn_1_1132C(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 100.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = 0.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1400.0f; + fn_1_51D0(var_r31, &sp8, var_r31->unk40++, 120.0f, 10.0f); +} + +void fn_1_1141C(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + var_r31->unk14 = 0.0f; + var_r31->unk18 = Hu3DData[lbl_1_bss_5B8.unk00->model[7]].pos.y; + var_r31->unk1C = 0.0f; + var_r31->unk2C = 0.0f; + var_r31->unk30 = 0.0f; + var_r31->unk34 = 0.0f; + var_r31->unk3C = fn_1_828(1100.0f, 1400.0f, var_r31->unk40++, 240.0f); + fn_1_3ABC(var_r31, 30.0f); +} + +void fn_1_11534(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 160.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = 0.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1100.0f; + fn_1_61E8(var_r31, &sp8, var_r31->unk40++, 10.0f, 5.0f); +} diff --git a/src/REL/mstoryDll/mg_miss.c b/src/REL/mstoryDll/mg_miss.c new file mode 100755 index 00000000..2bfd5f70 --- /dev/null +++ b/src/REL/mstoryDll/mg_miss.c @@ -0,0 +1,446 @@ +#include "REL/mstoryDll.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/printfunc.h" +#include "game/window.h" +#include "game/wipe.h" + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ char unk14[0x20]; + /* 0x34 */ StructFn352C unk34[4]; +} StructBss7B4; // Size 0x104 + +void fn_1_12630(void); +void fn_1_129D4(void); +void fn_1_12C94(s32 arg0); +void fn_1_12F20(omObjData* arg0, StructBss19C* arg1); +void fn_1_12FA8(omObjData*, StructBss19C* arg1); +void fn_1_130C0(void); +void fn_1_13570(void); +void fn_1_13880(void); +void fn_1_1390C(void); + +StructBss7B4 lbl_1_bss_7B4; +StructBss19C lbl_1_bss_78C; +StructBss19C lbl_1_bss_764; +StructBss19C lbl_1_bss_73C; +StructBss19C lbl_1_bss_714; +Process* lbl_1_bss_710; + +s32 lbl_1_data_AF8[][3] = { + { MAKE_MESSID(30, 40), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) }, + { MAKE_MESSID(30, 41), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) }, + { MAKE_MESSID(30, 42), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) }, + { MAKE_MESSID(30, 43), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) }, + { MAKE_MESSID(30, 44), MAKE_MESSID(30, 45), MAKE_MESSID(30, 5) } +}; + +void fn_1_11624(Process* arg0, s32 arg1, s32 arg2) { + lbl_1_bss_710 = arg0; + lbl_1_bss_7B4.unk00 = arg1; + lbl_1_bss_7B4.unk10 = arg2; + fn_1_BF4(); + fn_1_3618(0xFF); + fn_1_27E8(lbl_1_bss_710, fn_1_13880); + fn_1_3704(); + fn_1_12C94(arg2); + HuPrcChildCreate(fn_1_129D4, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_130C0, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_13570, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_12630, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +void fn_1_11730(void) { + s32 var_r31 = 16; + s32 var_r30 = 40; + GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; + s32 i; + + while (TRUE) { + fn_1_B8C(); + fontcolor = FONT_COLOR_WHITE; + printWin(var_r31, var_r30, 220, 120, &sp10); + if (lbl_1_bss_78C.unk04 == NULL) { + print8(var_r31, var_r30, 1.0f, "PROC_MAIN -> FALSE"); + } else { + print8(var_r31, var_r30, 1.0f, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_764.unk04 == NULL) { + print8(var_r31, var_r30 + 10, 1.0f, "PROC_MAP -> FALSE"); + } else { + print8(var_r31, var_r30 + 10, 1.0f, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_73C.unk04 == NULL) { + print8(var_r31, var_r30 + 20, 1.0f, "PROC_PLAYER -> FALSE"); + } else { + print8(var_r31, var_r30 + 20, 1.0f, "PROC_PLAYER -> TRUE"); + } + if (lbl_1_bss_714.unk04 == NULL) { + print8(var_r31, var_r30 + 30, 1.0f, "PROC_SUB -> FALSE"); + } else { + print8(var_r31, var_r30 + 30, 1.0f, "PROC_SUB -> TRUE"); + } + print8(var_r31, var_r30 + 50, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_7B4.unk00, lbl_1_bss_7B4.unk04, lbl_1_bss_7B4.unk10); + print8(var_r31, var_r30 + 70, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(var_r31, var_r30 + 80 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, + lbl_1_bss_7B4.unk34[i].unk00, lbl_1_bss_7B4.unk34[i].unk04, lbl_1_bss_7B4.unk34[i].unk08, + lbl_1_bss_7B4.unk34[i].unk0C, lbl_1_bss_7B4.unk34[i].unk14, lbl_1_bss_7B4.unk34[i].unk10); + } + } +} + +void fn_1_11A8C(void) { + lbl_1_bss_58[0] = HuAudSeqPlay(0x34); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + fn_1_BAC(60); +} + +void fn_1_11AE8(void) { + s32 spC = 0; + s32 sp8 = 0; + + fn_1_1DCC(lbl_1_bss_73C.unk00, 1, 2, 15, 0); + lbl_1_bss_73C.unk04 = (void*) fn_1_12F20; + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_7B4.unk00][1]); + HuAudCharVoicePlay(lbl_1_bss_7B4.unk34[lbl_1_bss_7B4.unk04].unk10, 0x12E); + lbl_1_bss_7B4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_7B4.unk10); + fn_1_1DCC(lbl_1_bss_714.unk00, 1, 2, 15, 1); + fn_1_1CE8(lbl_1_bss_7B4.unk08, lbl_1_data_AF8[lbl_1_bss_7B4.unk00][0]); + fn_1_1ACC(lbl_1_bss_7B4.unk08, -1); + fn_1_1CE8(lbl_1_bss_7B4.unk08, MAKE_MESSID(37, 4)); + fn_1_1DCC(lbl_1_bss_714.unk00, 1, 1, 15, 1); + fn_1_1A64(lbl_1_bss_7B4.unk08); +} + +BOOL fn_1_11C6C(void) { + BOOL temp_r31 = FALSE; + + HuWinInsertMesSet(lbl_1_bss_7B4.unk08, MAKE_MESSID(30, 54) + lbl_1_bss_7B4.unk00, 3); + fn_1_1CE8(lbl_1_bss_7B4.unk08, lbl_1_data_AF8[lbl_1_bss_7B4.unk00][1]); + fn_1_1ACC(lbl_1_bss_7B4.unk08, 5); + lbl_1_bss_7B4.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_7B4.unk10); + fn_1_1CE8(lbl_1_bss_7B4.unk0C, MAKE_MESSID(30, 53)); + temp_r31 = fn_1_1C34(lbl_1_bss_7B4.unk0C); + fn_1_1CE8(lbl_1_bss_7B4.unk0C, MAKE_MESSID(37, 4)); + fn_1_7028(lbl_1_bss_7B4.unk0C); + if (temp_r31) { + fn_1_1DCC(lbl_1_bss_73C.unk00, 1, 4, 15, 0); + lbl_1_bss_73C.unk04 = NULL; + fn_1_1DCC(lbl_1_bss_714.unk00, 1, 3, 15, 1); + } + return temp_r31; +} + +BOOL fn_1_11DD8(void) { + s32 temp_r31 = FALSE; + + fn_1_1CE8(lbl_1_bss_7B4.unk08, lbl_1_data_AF8[lbl_1_bss_7B4.unk00][2]); + fn_1_1ACC(lbl_1_bss_7B4.unk08, 5); + lbl_1_bss_7B4.unk0C = fn_1_6EB8(MAKE_MESSID(30, 53), lbl_1_bss_7B4.unk10); + fn_1_1CE8(lbl_1_bss_7B4.unk0C, MAKE_MESSID(30, 53)); + temp_r31 = fn_1_1B78(lbl_1_bss_7B4.unk0C, 1); + fn_1_1CE8(lbl_1_bss_7B4.unk0C, MAKE_MESSID(37, 4)); + fn_1_7028(lbl_1_bss_7B4.unk0C); + return temp_r31; +} + +void fn_1_11EC4(void) { + lbl_1_bss_73C.unk04 = (void*) fn_1_12FA8; + HuAudSeqFadeOut(lbl_1_bss_58[0], 3000); + fn_1_3804(&lbl_1_bss_4); + fn_1_2710(fn_1_1390C); + fn_1_BAC(150); +} + +void fn_1_11F28(void) { +} + +void fn_1_11F2C(s32 arg0) { + omOvlHisData* var_r30; + OverlayID sp8[] = { OVL_M445, OVL_M448, OVL_M447, OVL_M446, OVL_M449 }; + + if (arg0 != 0) { + fn_1_BAC(60); + HuAudSeqFadeOut(lbl_1_bss_58[0], 1000); + } + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + do { + fn_1_B8C(); + } while (WipeStatGet() != 0); + fn_1_BAC(60); + CharModelKill(-1); + var_r30 = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY, 2, var_r30->stat); + if (arg0 == 0) { + HuAudSeqAllFadeOut(1000); + HuAudSStreamAllFadeOut(1000); + omOvlCallEx(sp8[GWSystem.board], 1, 0, 0); + } else { + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_12070(omObjData* arg0, StructBss19C* arg1) { + s32 var_r31; + + fn_1_11A8C(); + fn_1_11AE8(); + lbl_1_bss_7B4.unk08 = fn_1_1834(1, 0, 21, 2, lbl_1_bss_7B4.unk10); + while (TRUE) { + fn_1_B8C(); + if (fn_1_11C6C()) { + var_r31 = 0; + break; + } + if (fn_1_11DD8()) { + var_r31 = 1; + break; + } + } + fn_1_1A64(lbl_1_bss_7B4.unk08); + fn_1_BAC(60); + switch (var_r31) { + case 0: + fn_1_11EC4(); + break; + case 1: + fn_1_11F28(); + break; + } + fn_1_11F2C(var_r31); + arg1->unk04 = NULL; +} + +void fn_1_12630(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_710, 0x100, 16, 16, -1, NULL); + lbl_1_bss_78C.unk00 = temp_r3; + lbl_1_bss_78C.unk04 = (void*) fn_1_12070; + lbl_1_bss_78C.unk00->data = &lbl_1_bss_78C; + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_78C.unk04 != NULL) { + lbl_1_bss_78C.unk04(temp_r3, &lbl_1_bss_78C); + } + } +} + +void fn_1_126E4(omObjData* arg0) { + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 56)); + arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 0, 0, 2); + Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base"); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 59)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 60)); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY, 61)); + fn_1_1DCC(arg0, 2, 2, 0, 2); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 57)); + arg0->model[5] = Hu3DModelCreateFile(lbl_1_bss_7B4.unk00 + DATA_MAKE_NUM(DATADIR_MSTORY, 76)); + arg0->motion[5] = Hu3DMotionIDGet(arg0->model[5]); + Hu3DModelPosSet(arg0->model[5], 0.0f, 80.0f, 460.0f); + Hu3DModelShadowSet(arg0->model[5]); + fn_1_1DCC(arg0, 5, 5, 0, 2); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY, 75)); + arg0->motion[6] = Hu3DMotionIDGet(arg0->model[6]); + Hu3DModelHookSet(arg0->model[5], "stargbox_fix-effect_fook1", arg0->model[6]); + fn_1_1DCC(arg0, 6, 6, 0, 2); +} + +void fn_1_12918(omObjData* arg0, StructBss19C* arg1) { + Hu3DData[arg0->model[5]].pos.y = fn_1_ACC(80.0f, 90.0f, arg1->unk08++, 360.0f); + if (arg1->unk08 >= 360) { + arg1->unk08 = 0; + } +} + +void fn_1_129D4(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_710, 0x100, 16, 16, -1, NULL); + lbl_1_bss_764.unk00 = temp_r3; + lbl_1_bss_764.unk04 = (void*) fn_1_12918; + lbl_1_bss_764.unk00->data = &lbl_1_bss_764; + fn_1_126E4(temp_r3); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_764.unk04 != NULL) { + lbl_1_bss_764.unk04(temp_r3, &lbl_1_bss_764); + } + } +} + +void fn_1_12C94(s32 arg0) { + s32 spC[4]; + s32 i; + + spC[0] = 0; + for (i = 1; i < 4; i++) { + spC[i] = spC[i - 1] + 1; + if (spC[i] >= 4) { + spC[i] = 0; + } + if (arg0 == spC[i]) { + lbl_1_bss_7B4.unk04 = i; + } + } + for (i = 0; i < 4; i++) { + fn_1_352C(&lbl_1_bss_7B4.unk34[i], spC[i]); + } +} + +void fn_1_12D78(omObjData* arg0) { + s32 temp_r30; + + temp_r30 = lbl_1_bss_7B4.unk34[lbl_1_bss_7B4.unk04].unk10; + arg0->model[1] = CharModelCreate(temp_r30, 1); + arg0->motion[1] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + arg0->motion[2] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 24)); + arg0->motion[3] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 52)); + arg0->motion[4] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 72)); + arg0->motion[5] = CharModelMotionCreate(temp_r30, DATA_MAKE_NUM(DATADIR_MARIOMOT, 53)); + CharModelVoiceEnableSet(temp_r30, arg0->motion[2], 0); + CharModelMotionDataClose(temp_r30); + Hu3DModelPosSet(arg0->model[1], 120.0f, 0.0f, 670.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, -45.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 1, 0, 1); +} + +void fn_1_12F20(omObjData* arg0, StructBss19C* arg1) { + if (arg0->motion[2] == Hu3DMotionIDGet(arg0->model[1]) && Hu3DMotionEndCheck(arg0->model[1])) { + fn_1_1DCC(arg0, 1, 3, 15, 1); + arg1->unk04 = 0; + } +} + +void fn_1_12FA8(omObjData* arg0, StructBss19C* arg1) { + s32 i; + + fn_1_BAC(10); + fn_1_1DCC(arg0, 1, 5, 15, 0); + fn_1_B8C(); + Hu3DMotionTimeSet(arg0->model[1], 60.0f); + for (i = 0; i < 50; i++) { + fn_1_B8C(); + Hu3DData[arg0->model[1]].rot.y = fn_1_828(-60.0f, -120.0f, i, 60.0f); + } + fn_1_1DCC(arg0, 1, 1, 15, 1); + arg1->unk04 = 0; +} + +void fn_1_130C0(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_710, 0x100, 16, 16, -1, NULL); + lbl_1_bss_73C.unk00 = temp_r3; + lbl_1_bss_73C.unk04 = NULL; + lbl_1_bss_73C.unk00->data = &lbl_1_bss_73C; + fn_1_12D78(temp_r3); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_73C.unk04 != NULL) { + lbl_1_bss_73C.unk04(temp_r3, &lbl_1_bss_73C); + } + } +} + +void fn_1_132EC(omObjData* arg0, s32 arg1) { + s32 sp8[] = { + DATA_MAKE_NUM(DATADIR_MSTORY, 97), + DATA_MAKE_NUM(DATADIR_MSTORY, 108), + DATA_MAKE_NUM(DATADIR_MSTORY, 116), + DATA_MAKE_NUM(DATADIR_MSTORY, 124), + DATA_MAKE_NUM(DATADIR_MSTORY, 131) + }; + s32 sp1C[][3] = { + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x62), DATA_MAKE_NUM(DATADIR_MSTORY, 0x65), DATA_MAKE_NUM(DATADIR_MSTORY, 0x67) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x6D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x70), DATA_MAKE_NUM(DATADIR_MSTORY, 0x72) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x75), DATA_MAKE_NUM(DATADIR_MSTORY, 0x78), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7A) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x7D), DATA_MAKE_NUM(DATADIR_MSTORY, 0x7F), DATA_MAKE_NUM(DATADIR_MSTORY, 0x81) }, + { DATA_MAKE_NUM(DATADIR_MSTORY, 0x84), DATA_MAKE_NUM(DATADIR_MSTORY, 0x87), DATA_MAKE_NUM(DATADIR_MSTORY, 0x89) } + }; + + arg0->model[1] = Hu3DModelCreateFile(sp8[arg1]); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp1C[arg1][0]); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp1C[arg1][1]); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp1C[arg1][2]); + Hu3DModelPosSet(arg0->model[1], -120.0f, 0.0f, 670.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 45.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + if (arg1 == 3) { + Hu3DData[arg0->model[1]].pos.y = 50.0f; + } + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1DCC(arg0, 1, 1, 0, 1); +} + +void fn_1_13570(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_710, 0x100, 16, 16, -1, NULL); + lbl_1_bss_714.unk00 = temp_r3; + lbl_1_bss_714.unk04 = NULL; + lbl_1_bss_714.unk00->data = &lbl_1_bss_714; + fn_1_132EC(temp_r3, lbl_1_bss_7B4.unk00); + while (TRUE) { + fn_1_B8C(); + if (lbl_1_bss_714.unk04 != NULL) { + lbl_1_bss_714.unk04(temp_r3, &lbl_1_bss_714); + } + } +} + +void fn_1_13880(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 125.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20.x = -5.0f; + var_r31->unk20.y = 0.0f; + var_r31->unk20.z = 0.0f; + var_r31->unk38 = 1750.0f; +} + +void fn_1_1390C(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + if (var_r31->unk40 == 50) { + fn_1_1DCC(lbl_1_bss_764.unk00, 5, 5, 0, 0); + fn_1_1DCC(lbl_1_bss_764.unk00, 6, 6, 0, 0); + HuAudFXPlay(0xA1); + } + sp8.unk08.x = 0.0f; + sp8.unk08.y = 130.0f; + sp8.unk08.z = 460.0f; + sp8.unk20.x = 0.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 150.0f; + fn_1_51D0(var_r31, &sp8, var_r31->unk40, 180.0f, 10.0f); + if (var_r31->unk40++ >= 90) { + if (var_r31->unk40 == 91) { + lbl_1_bss_68 = HuAudFXPlay(0x21); + } + var_r31->unk20.x = fn_1_828(var_r31->unk20.x, -45.0f, var_r31->unk40 - 90, 90.0f); + Hu3DData[lbl_1_bss_764.unk00->model[5]].rot.x = fn_1_828(0.0f, 45.0f, var_r31->unk40 - 90, 90.0f); + } +} diff --git a/src/REL/mstoryDll/save.c b/src/REL/mstoryDll/save.c new file mode 100755 index 00000000..cde06d88 --- /dev/null +++ b/src/REL/mstoryDll/save.c @@ -0,0 +1,116 @@ +#include "REL/mstoryDll.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/hsfman.h" +#include "game/saveload.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +s32 lbl_1_bss_8BC; +Process* lbl_1_bss_8B8; + +s32 fn_1_13B48(s32 arg0) { + if (arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2))) { + return 1; + } + if (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3))) { + return 1; + } + if (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4))) { + return 1; + } + if (arg0 == 3 && _CheckFlag(FLAG_ID_MAKE(0, 5))) { + return 1; + } + if (arg0 == 4 && _CheckFlag(FLAG_ID_MAKE(0, 6))) { + return 1; + } + if (arg0 == 5 && _CheckFlag(FLAG_ID_MAKE(0, 7))) { + return 1; + } + return 0; +} + +void fn_1_13C34(void) { + float sp8[2]; + s32 temp_r30; + s32 var_r29; + s32 var_r31; + + temp_r30 = 1; + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + if (SLSaveFlagGet() == 0) { + lbl_1_bss_8BC = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } + } + espInit(); + HuPrcVSleep(); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 32), 5000, 0); + espPosSet(var_r29, 288.0f, 240.0f); + espAttrReset(var_r29, 4); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + if (SLSaveFlagGet() == 1) { + HuWinInit(1); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(30, 22)); + var_r31 = HuWinExCreateStyled(-10000.0f, 150.0f, sp8[0], sp8[1], -1, 2); + winData[var_r31].active_pad = 1; + HuWinAttrSet(var_r31, 0x10); + HuWinExAnimIn(var_r31); + HuWinMesSet(var_r31, MAKE_MESSID(30, 22)); + temp_r30 = HuWinChoiceGet(var_r31, 0); + HuWinExAnimOut(var_r31); + HuWinExCleanup(var_r31); + if (SLSaveFlagGet() == 1 && temp_r30 == 0) { + SLCommonSet(); + SLSaveBoardStory(); + SLSave(); + } + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_8BC = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_13E2C(void) { + _SetFlag(9); + if (_CheckFlag(FLAG_ID_MAKE(0, 2)) && _CheckFlag(FLAG_ID_MAKE(0, 3)) && _CheckFlag(FLAG_ID_MAKE(0, 4)) && _CheckFlag(FLAG_ID_MAKE(0, 5)) && _CheckFlag(FLAG_ID_MAKE(0, 6))) { + OSReport("########## Next to MapSelect Event 11 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_13B48(GWSystem.board), _CheckFlag(9)); + HuPrcChildCreate(fn_1_13C34, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_B8C(); + } while (lbl_1_bss_8BC != 1); + omOvlGotoEx(OVL_MSTORY2, 1, 0, 0); + } else { + OSReport("########## Next to MapSelect Event 11 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_13B48(GWSystem.board), _CheckFlag(9)); + HuPrcChildCreate(fn_1_13C34, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_B8C(); + } while (lbl_1_bss_8BC != 1); + omOvlGotoEx(OVL_MENT, 1, 10, 0); + } + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_14150(Process* arg0) { + lbl_1_bss_8B8 = arg0; + HuPrcChildCreate(fn_1_13E2C, 100, 0x2000, 0, HuPrcCurrentGet()); +} From 806ec24c4eaec3eaa4663f7052229c34fbd9d215 Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Thu, 9 Jan 2025 01:00:25 +0100 Subject: [PATCH 238/311] Apply macros and port mstoryDll to every version (#513) * Apply MTXDegToRad macros * Port mstoryDll to every version --- config/GMPE01_00/rels/mstoryDll/symbols.txt | 3 +- config/GMPE01_01/rels/mstoryDll/splits.txt | 4 +- config/GMPE01_01/rels/mstoryDll/symbols.txt | 529 ++++++++++---------- config/GMPJ01_00/rels/mstoryDll/splits.txt | 36 ++ config/GMPJ01_00/rels/mstoryDll/symbols.txt | 520 +++++++++---------- config/GMPP01_00/rels/mstoryDll/splits.txt | 36 ++ config/GMPP01_00/rels/mstoryDll/symbols.txt | 520 +++++++++---------- config/GMPP01_02/rels/mstoryDll/splits.txt | 36 ++ config/GMPP01_02/rels/mstoryDll/symbols.txt | 522 +++++++++---------- configure.py | 12 +- src/REL/m425Dll/main.c | 29 +- src/REL/mstoryDll/save.c | 32 +- 12 files changed, 1196 insertions(+), 1083 deletions(-) diff --git a/config/GMPE01_00/rels/mstoryDll/symbols.txt b/config/GMPE01_00/rels/mstoryDll/symbols.txt index 92563350..93875bb3 100644 --- a/config/GMPE01_00/rels/mstoryDll/symbols.txt +++ b/config/GMPE01_00/rels/mstoryDll/symbols.txt @@ -465,7 +465,8 @@ lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:4byte lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:4byte lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x3C data:4byte lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x28 data:4byte lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0xA0 diff --git a/config/GMPE01_01/rels/mstoryDll/splits.txt b/config/GMPE01_01/rels/mstoryDll/splits.txt index dc2d5f55..7378f74e 100644 --- a/config/GMPE01_01/rels/mstoryDll/splits.txt +++ b/config/GMPE01_01/rels/mstoryDll/splits.txt @@ -10,13 +10,13 @@ REL/mstoryDll/main.c: .text start:0x00000000 end:0x00007090 .rodata start:0x00000000 end:0x00000108 .data start:0x00000000 end:0x00000190 - .bss start:0x00000000 end:0x00000058 + .bss start:0x00000000 end:0x000000A8 REL/mstoryDll/board_clear.c: .text start:0x00007090 end:0x0000A830 .rodata start:0x00000108 end:0x00000268 .data start:0x00000190 end:0x00000388 - .bss start:0x00000058 end:0x000002C8 + .bss start:0x000000A8 end:0x000002C8 REL/mstoryDll/board_miss.c: .text start:0x0000A830 end:0x0000E710 diff --git a/config/GMPE01_01/rels/mstoryDll/symbols.txt b/config/GMPE01_01/rels/mstoryDll/symbols.txt index 5dd7edd6..225344ab 100644 --- a/config/GMPE01_01/rels/mstoryDll/symbols.txt +++ b/config/GMPE01_01/rels/mstoryDll/symbols.txt @@ -4,7 +4,7 @@ fn_1_A4 = .text:0x000000A4; // type:function size:0x344 _prolog = .text:0x000003E8; // type:function size:0x54 scope:global _epilog = .text:0x0000043C; // type:function size:0x4C scope:global fn_1_488 = .text:0x00000488; // type:function size:0x1D0 -fn_1_658 = .text:0x00000658; // type:function size:0x1D0 +ObjectSetup = .text:0x00000658; // type:function size:0x1D0 fn_1_828 = .text:0x00000828; // type:function size:0x28 fn_1_850 = .text:0x00000850; // type:function size:0x20 fn_1_870 = .text:0x00000870; // type:function size:0xD8 @@ -189,283 +189,284 @@ fn_1_13E2C = .text:0x00013E44; // type:function size:0x324 fn_1_14150 = .text:0x00014168; // type:function size:0x50 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC data:4byte -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC data:4byte -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC data:4byte -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 data:byte -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC data:2byte -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 data:4byte -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC data:4byte -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 data:4byte -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 data:4byte -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC data:4byte -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C data:4byte -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:byte -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 data:4byte -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 data:4byte -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC data:4byte -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC data:4byte -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC data:4byte -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC data:4byte -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 data:4byte -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 data:4byte -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 data:4byte -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 data:byte -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 data:4byte -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 data:4byte -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C data:4byte -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float -lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:float -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 scope:local +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 scope:local +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 scope:local +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 -lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 data:string -lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 data:string -lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A data:string -lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 data:string +lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 scope:local data:string +lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 scope:local data:string +lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A scope:local data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 scope:local data:string lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 -lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 data:string -lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 data:string -lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 data:string -lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A data:string -lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A data:string -lbl_1_data_17F = .data:0x0000017F; // type:object size:0xE data:string +lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 scope:local data:string +lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 scope:local data:string +lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 scope:local data:string +lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A scope:local data:string +lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A scope:local data:string +lbl_1_data_17F = .data:0x0000017F; // type:object size:0xE scope:local data:string lbl_1_data_190 = .data:0x00000190; // type:object size:0x50 lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C -lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 data:string -lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 data:string -lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 data:string -lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 data:string -lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 data:string -lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 data:string -lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 data:string -lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 data:string -lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF data:string -lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C data:string -lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D data:string -lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 data:string -lbl_1_data_329 = .data:0x00000329; // type:object size:0xF data:string -lbl_1_data_338 = .data:0x00000338; // type:object size:0x1A data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 scope:local data:string +lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 scope:local data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 scope:local data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 scope:local data:string +lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 scope:local data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 scope:local data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 scope:local data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 scope:local data:string +lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF scope:local data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C scope:local data:string +lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D scope:local data:string +lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0xF scope:local data:string +lbl_1_data_338 = .data:0x00000338; // type:object size:0x1A scope:local data:string lbl_1_data_354 = .data:0x00000354; // type:object size:0x30 lbl_1_data_388 = .data:0x00000388; // type:object size:0x50 lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C -lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 data:string -lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 data:string -lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 data:string -lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 data:string -lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 data:string -lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 data:string -lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 data:string -lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 data:string -lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA data:string -lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C data:string -lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D data:string -lbl_1_data_505 = .data:0x00000505; // type:object size:0xF data:string -lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B data:string -lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 data:string -lbl_1_data_537 = .data:0x00000537; // type:object size:0x8 data:string +lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 scope:local data:string +lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 scope:local data:string +lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 scope:local data:string +lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 scope:local data:string +lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 scope:local data:string +lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 scope:local data:string +lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 scope:local data:string +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA scope:local data:string +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C scope:local data:string +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D scope:local data:string +lbl_1_data_505 = .data:0x00000505; // type:object size:0xF scope:local data:string +lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B scope:local data:string +lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 scope:local data:string +lbl_1_data_537 = .data:0x00000537; // type:object size:0x8 scope:local data:string lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0 lbl_1_data_930 = .data:0x00000930; // type:object size:0x50 -lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 data:string -lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 data:string -lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 data:string -lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 data:string -lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 data:string -lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 data:string -lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 data:string -lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 data:string -lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF data:string -lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C data:string -lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D data:string -lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C data:string -lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 data:string -lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF data:string -lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 data:string -lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA data:string -lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 data:string -lbl_1_data_AED = .data:0x00000AED; // type:object size:0x7 data:string +lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 scope:local data:string +lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 scope:local data:string +lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 scope:local data:string +lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 scope:local data:string +lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 scope:local data:string +lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 scope:local data:string +lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 scope:local data:string +lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 scope:local data:string +lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF scope:local data:string +lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C scope:local data:string +lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D scope:local data:string +lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C scope:local data:string +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 scope:local data:string +lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF scope:local data:string +lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 scope:local data:string +lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA scope:local data:string +lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 scope:local data:string +lbl_1_data_AED = .data:0x00000AED; // type:object size:0x7 scope:local data:string lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C -lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 data:string -lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 data:string -lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 data:string -lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 data:string -lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 data:string -lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 data:string -lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 data:string -lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 data:string -lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF data:string -lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C data:string -lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D data:string -lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF data:string -lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x1A data:string -lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 data:string +lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 scope:local data:string +lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 scope:local data:string +lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 scope:local data:string +lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 scope:local data:string +lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 scope:local data:string +lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 scope:local data:string +lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 scope:local data:string +lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 scope:local data:string +lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF scope:local data:string +lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C scope:local data:string +lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D scope:local data:string +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF scope:local data:string +lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x1A scope:local data:string +lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0xC data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:4byte lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x3C lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x28 data:4byte lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0xA0 diff --git a/config/GMPJ01_00/rels/mstoryDll/splits.txt b/config/GMPJ01_00/rels/mstoryDll/splits.txt index 531cd645..14c897fa 100644 --- a/config/GMPJ01_00/rels/mstoryDll/splits.txt +++ b/config/GMPJ01_00/rels/mstoryDll/splits.txt @@ -5,3 +5,39 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/mstoryDll/main.c: + .text start:0x00000000 end:0x00007090 + .rodata start:0x00000000 end:0x00000108 + .data start:0x00000000 end:0x00000190 + .bss start:0x00000000 end:0x000000A8 + +REL/mstoryDll/board_clear.c: + .text start:0x00007090 end:0x0000A830 + .rodata start:0x00000108 end:0x00000268 + .data start:0x00000190 end:0x00000388 + .bss start:0x000000A8 end:0x000002C8 + +REL/mstoryDll/board_miss.c: + .text start:0x0000A830 end:0x0000E710 + .rodata start:0x00000268 end:0x000003B8 + .data start:0x00000388 end:0x00000570 + .bss start:0x000002C8 end:0x00000558 + +REL/mstoryDll/mg_clear.c: + .text start:0x0000E710 end:0x00011624 + .rodata start:0x000003B8 end:0x000004E0 + .data start:0x00000570 end:0x00000AF8 + .bss start:0x00000558 end:0x00000710 + +REL/mstoryDll/mg_miss.c: + .text start:0x00011624 end:0x00013B48 + .rodata start:0x000004E0 end:0x000005A8 + .data start:0x00000AF8 end:0x00000C50 + .bss start:0x00000710 end:0x000008B8 + +REL/mstoryDll/save.c: + .text start:0x00013B48 end:0x000141A0 + .rodata start:0x000005A8 end:0x000005B8 + .data start:0x00000C50 end:0x00000C98 + .bss start:0x000008B8 end:0x000008C0 diff --git a/config/GMPJ01_00/rels/mstoryDll/symbols.txt b/config/GMPJ01_00/rels/mstoryDll/symbols.txt index e9076690..56357717 100644 --- a/config/GMPJ01_00/rels/mstoryDll/symbols.txt +++ b/config/GMPJ01_00/rels/mstoryDll/symbols.txt @@ -4,7 +4,7 @@ fn_1_A4 = .text:0x000000A4; // type:function size:0x344 _prolog = .text:0x000003E8; // type:function size:0x54 scope:global _epilog = .text:0x0000043C; // type:function size:0x4C scope:global fn_1_488 = .text:0x00000488; // type:function size:0x1D0 -fn_1_658 = .text:0x00000658; // type:function size:0x1D0 +ObjectSetup = .text:0x00000658; // type:function size:0x1D0 fn_1_828 = .text:0x00000828; // type:function size:0x28 fn_1_850 = .text:0x00000850; // type:function size:0x20 fn_1_870 = .text:0x00000870; // type:function size:0xD8 @@ -189,282 +189,284 @@ fn_1_13E2C = .text:0x00013E2C; // type:function size:0x324 fn_1_14150 = .text:0x00014150; // type:function size:0x50 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC data:4byte -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC data:4byte -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC data:4byte -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 data:byte -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC data:2byte -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 data:4byte -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC data:4byte -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 data:4byte -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 data:4byte -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC data:4byte -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C data:4byte -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x1 data:byte -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 data:4byte -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 data:4byte -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC data:4byte -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC data:4byte -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC data:4byte -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC data:4byte -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 data:4byte -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 data:4byte -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 data:4byte -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 data:byte -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 data:4byte -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 data:4byte -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C data:4byte -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float -lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:float -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 scope:local +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 scope:local +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 scope:local +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 -lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 data:string -lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 data:string -lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A data:string -lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 data:string +lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 scope:local data:string +lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 scope:local data:string +lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A scope:local data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 scope:local data:string lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 -lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 data:string -lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 data:string -lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 data:string -lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A data:string -lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A data:string +lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 scope:local data:string +lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 scope:local data:string +lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 scope:local data:string +lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A scope:local data:string +lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A scope:local data:string lbl_1_data_17F = .data:0x0000017F; // type:object size:0x11 lbl_1_data_190 = .data:0x00000190; // type:object size:0x50 lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C -lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 data:string -lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 data:string -lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 data:string -lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 data:string -lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 data:string -lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 data:string -lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 data:string -lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 data:string -lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF data:string -lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C data:string -lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D data:string -lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 data:string -lbl_1_data_329 = .data:0x00000329; // type:object size:0xF data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 scope:local data:string +lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 scope:local data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 scope:local data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 scope:local data:string +lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 scope:local data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 scope:local data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 scope:local data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 scope:local data:string +lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF scope:local data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C scope:local data:string +lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D scope:local data:string +lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0xF scope:local data:string lbl_1_data_338 = .data:0x00000338; // type:object size:0x1C lbl_1_data_354 = .data:0x00000354; // type:object size:0x34 lbl_1_data_388 = .data:0x00000388; // type:object size:0x50 lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C -lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 data:string -lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 data:string -lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 data:string -lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 data:string -lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 data:string -lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 data:string -lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 data:string -lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 data:string -lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA data:string -lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C data:string -lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D data:string -lbl_1_data_505 = .data:0x00000505; // type:object size:0xF data:string -lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B data:string -lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 data:string +lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 scope:local data:string +lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 scope:local data:string +lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 scope:local data:string +lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 scope:local data:string +lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 scope:local data:string +lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 scope:local data:string +lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 scope:local data:string +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA scope:local data:string +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C scope:local data:string +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D scope:local data:string +lbl_1_data_505 = .data:0x00000505; // type:object size:0xF scope:local data:string +lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B scope:local data:string +lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 scope:local data:string lbl_1_data_537 = .data:0x00000537; // type:object size:0x9 lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0 lbl_1_data_930 = .data:0x00000930; // type:object size:0x50 -lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 data:string -lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 data:string -lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 data:string -lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 data:string -lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 data:string -lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 data:string -lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 data:string -lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 data:string -lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF data:string -lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C data:string -lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D data:string -lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C data:string -lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 data:string -lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF data:string -lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 data:string -lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA data:string -lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 data:string +lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 scope:local data:string +lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 scope:local data:string +lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 scope:local data:string +lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 scope:local data:string +lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 scope:local data:string +lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 scope:local data:string +lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 scope:local data:string +lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 scope:local data:string +lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF scope:local data:string +lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C scope:local data:string +lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D scope:local data:string +lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C scope:local data:string +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 scope:local data:string +lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF scope:local data:string +lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 scope:local data:string +lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA scope:local data:string +lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 scope:local data:string lbl_1_data_AED = .data:0x00000AED; // type:object size:0xB lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C -lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 data:string -lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 data:string -lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 data:string -lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 data:string -lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 data:string -lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 data:string -lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 data:string -lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 data:string -lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF data:string -lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C data:string -lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D data:string -lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF data:string +lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 scope:local data:string +lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 scope:local data:string +lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 scope:local data:string +lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 scope:local data:string +lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 scope:local data:string +lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 scope:local data:string +lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 scope:local data:string +lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 scope:local data:string +lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF scope:local data:string +lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C scope:local data:string +lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D scope:local data:string +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF scope:local data:string lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x21 -lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 data:string +lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x54 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:4byte lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x3C lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x28 data:4byte lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0xA0 diff --git a/config/GMPP01_00/rels/mstoryDll/splits.txt b/config/GMPP01_00/rels/mstoryDll/splits.txt index 531cd645..14c897fa 100644 --- a/config/GMPP01_00/rels/mstoryDll/splits.txt +++ b/config/GMPP01_00/rels/mstoryDll/splits.txt @@ -5,3 +5,39 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/mstoryDll/main.c: + .text start:0x00000000 end:0x00007090 + .rodata start:0x00000000 end:0x00000108 + .data start:0x00000000 end:0x00000190 + .bss start:0x00000000 end:0x000000A8 + +REL/mstoryDll/board_clear.c: + .text start:0x00007090 end:0x0000A830 + .rodata start:0x00000108 end:0x00000268 + .data start:0x00000190 end:0x00000388 + .bss start:0x000000A8 end:0x000002C8 + +REL/mstoryDll/board_miss.c: + .text start:0x0000A830 end:0x0000E710 + .rodata start:0x00000268 end:0x000003B8 + .data start:0x00000388 end:0x00000570 + .bss start:0x000002C8 end:0x00000558 + +REL/mstoryDll/mg_clear.c: + .text start:0x0000E710 end:0x00011624 + .rodata start:0x000003B8 end:0x000004E0 + .data start:0x00000570 end:0x00000AF8 + .bss start:0x00000558 end:0x00000710 + +REL/mstoryDll/mg_miss.c: + .text start:0x00011624 end:0x00013B48 + .rodata start:0x000004E0 end:0x000005A8 + .data start:0x00000AF8 end:0x00000C50 + .bss start:0x00000710 end:0x000008B8 + +REL/mstoryDll/save.c: + .text start:0x00013B48 end:0x000141A0 + .rodata start:0x000005A8 end:0x000005B8 + .data start:0x00000C50 end:0x00000C98 + .bss start:0x000008B8 end:0x000008C0 diff --git a/config/GMPP01_00/rels/mstoryDll/symbols.txt b/config/GMPP01_00/rels/mstoryDll/symbols.txt index e9076690..0956831b 100644 --- a/config/GMPP01_00/rels/mstoryDll/symbols.txt +++ b/config/GMPP01_00/rels/mstoryDll/symbols.txt @@ -4,7 +4,7 @@ fn_1_A4 = .text:0x000000A4; // type:function size:0x344 _prolog = .text:0x000003E8; // type:function size:0x54 scope:global _epilog = .text:0x0000043C; // type:function size:0x4C scope:global fn_1_488 = .text:0x00000488; // type:function size:0x1D0 -fn_1_658 = .text:0x00000658; // type:function size:0x1D0 +ObjectSetup = .text:0x00000658; // type:function size:0x1D0 fn_1_828 = .text:0x00000828; // type:function size:0x28 fn_1_850 = .text:0x00000850; // type:function size:0x20 fn_1_870 = .text:0x00000870; // type:function size:0xD8 @@ -189,282 +189,284 @@ fn_1_13E2C = .text:0x00013E2C; // type:function size:0x324 fn_1_14150 = .text:0x00014150; // type:function size:0x50 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC data:4byte -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC data:4byte -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC data:4byte -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 data:byte -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC data:2byte -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 data:4byte -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC data:4byte -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 data:4byte -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 data:4byte -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC data:4byte -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C data:4byte -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x1 data:byte -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 data:4byte -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 data:4byte -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC data:4byte -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC data:4byte -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC data:4byte -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC data:4byte -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 data:4byte -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 data:4byte -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 data:4byte -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 data:byte -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 data:4byte -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 data:4byte -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C data:4byte -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float -lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:float -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 scope:local +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 scope:local +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 scope:local +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 -lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 data:string -lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 data:string -lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A data:string -lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 data:string +lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 scope:local data:string +lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 scope:local data:string +lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A scope:local data:string +lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 scope:local data:string lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 -lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 data:string -lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 data:string -lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 data:string -lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A data:string -lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A data:string +lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 scope:local data:string +lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 scope:local data:string +lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 scope:local data:string +lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A scope:local data:string +lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A scope:local data:string lbl_1_data_17F = .data:0x0000017F; // type:object size:0x11 lbl_1_data_190 = .data:0x00000190; // type:object size:0x50 lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C -lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 data:string -lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 data:string -lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 data:string -lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 data:string -lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 data:string -lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 data:string -lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 data:string -lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 data:string -lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF data:string -lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C data:string -lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D data:string -lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 data:string -lbl_1_data_329 = .data:0x00000329; // type:object size:0xF data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 scope:local data:string +lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 scope:local data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 scope:local data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 scope:local data:string +lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 scope:local data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 scope:local data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 scope:local data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 scope:local data:string +lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF scope:local data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C scope:local data:string +lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D scope:local data:string +lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0xF scope:local data:string lbl_1_data_338 = .data:0x00000338; // type:object size:0x1C lbl_1_data_354 = .data:0x00000354; // type:object size:0x34 lbl_1_data_388 = .data:0x00000388; // type:object size:0x50 lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C -lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 data:string -lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 data:string -lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 data:string -lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 data:string -lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 data:string -lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 data:string -lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 data:string -lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 data:string -lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA data:string -lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C data:string -lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D data:string -lbl_1_data_505 = .data:0x00000505; // type:object size:0xF data:string -lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B data:string -lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 data:string +lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 scope:local data:string +lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 scope:local data:string +lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 scope:local data:string +lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 scope:local data:string +lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 scope:local data:string +lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 scope:local data:string +lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 scope:local data:string +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA scope:local data:string +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C scope:local data:string +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D scope:local data:string +lbl_1_data_505 = .data:0x00000505; // type:object size:0xF scope:local data:string +lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B scope:local data:string +lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 scope:local data:string lbl_1_data_537 = .data:0x00000537; // type:object size:0x9 lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0 lbl_1_data_930 = .data:0x00000930; // type:object size:0x50 -lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 data:string -lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 data:string -lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 data:string -lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 data:string -lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 data:string -lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 data:string -lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 data:string -lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 data:string -lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF data:string -lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C data:string -lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D data:string -lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C data:string -lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 data:string -lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF data:string -lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 data:string -lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA data:string -lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 data:string +lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 scope:local data:string +lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 scope:local data:string +lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 scope:local data:string +lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 scope:local data:string +lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 scope:local data:string +lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 scope:local data:string +lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 scope:local data:string +lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 scope:local data:string +lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF scope:local data:string +lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C scope:local data:string +lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D scope:local data:string +lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C scope:local data:string +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 scope:local data:string +lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF scope:local data:string +lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 scope:local data:string +lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA scope:local data:string +lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 scope:local data:string lbl_1_data_AED = .data:0x00000AED; // type:object size:0xB lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C -lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 data:string -lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 data:string -lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 data:string -lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 data:string -lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 data:string -lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 data:string -lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 data:string -lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 data:string -lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF data:string -lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C data:string -lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D data:string -lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF data:string +lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 scope:local data:string +lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 scope:local data:string +lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 scope:local data:string +lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 scope:local data:string +lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 scope:local data:string +lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 scope:local data:string +lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 scope:local data:string +lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 scope:local data:string +lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF scope:local data:string +lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C scope:local data:string +lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D scope:local data:string +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF scope:local data:string lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x21 -lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 data:string +lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x54 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:4byte lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x3C data:4byte lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x28 data:4byte lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0xA0 diff --git a/config/GMPP01_02/rels/mstoryDll/splits.txt b/config/GMPP01_02/rels/mstoryDll/splits.txt index 531cd645..7378f74e 100644 --- a/config/GMPP01_02/rels/mstoryDll/splits.txt +++ b/config/GMPP01_02/rels/mstoryDll/splits.txt @@ -5,3 +5,39 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/mstoryDll/main.c: + .text start:0x00000000 end:0x00007090 + .rodata start:0x00000000 end:0x00000108 + .data start:0x00000000 end:0x00000190 + .bss start:0x00000000 end:0x000000A8 + +REL/mstoryDll/board_clear.c: + .text start:0x00007090 end:0x0000A830 + .rodata start:0x00000108 end:0x00000268 + .data start:0x00000190 end:0x00000388 + .bss start:0x000000A8 end:0x000002C8 + +REL/mstoryDll/board_miss.c: + .text start:0x0000A830 end:0x0000E710 + .rodata start:0x00000268 end:0x000003B8 + .data start:0x00000388 end:0x00000570 + .bss start:0x000002C8 end:0x00000558 + +REL/mstoryDll/mg_clear.c: + .text start:0x0000E710 end:0x00011624 + .rodata start:0x000003B8 end:0x000004E0 + .data start:0x00000570 end:0x00000AF8 + .bss start:0x00000558 end:0x00000710 + +REL/mstoryDll/mg_miss.c: + .text start:0x00011624 end:0x00013B48 + .rodata start:0x000004E0 end:0x000005A8 + .data start:0x00000AF8 end:0x00000C50 + .bss start:0x00000710 end:0x000008B8 + +REL/mstoryDll/save.c: + .text start:0x00013B48 end:0x000141B8 + .rodata start:0x000005A8 end:0x000005B8 + .data start:0x00000C50 end:0x00000C98 + .bss start:0x000008B8 end:0x000008C0 diff --git a/config/GMPP01_02/rels/mstoryDll/symbols.txt b/config/GMPP01_02/rels/mstoryDll/symbols.txt index 293cb82c..d7aca560 100644 --- a/config/GMPP01_02/rels/mstoryDll/symbols.txt +++ b/config/GMPP01_02/rels/mstoryDll/symbols.txt @@ -4,7 +4,7 @@ fn_1_A4 = .text:0x000000A4; // type:function size:0x344 _prolog = .text:0x000003E8; // type:function size:0x54 scope:global _epilog = .text:0x0000043C; // type:function size:0x4C scope:global fn_1_488 = .text:0x00000488; // type:function size:0x1D0 -fn_1_658 = .text:0x00000658; // type:function size:0x1D0 +ObjectSetup = .text:0x00000658; // type:function size:0x1D0 fn_1_828 = .text:0x00000828; // type:function size:0x28 fn_1_850 = .text:0x00000850; // type:function size:0x20 fn_1_870 = .text:0x00000870; // type:function size:0xD8 @@ -185,286 +185,288 @@ fn_1_13880 = .text:0x00013880; // type:function size:0x8C fn_1_1390C = .text:0x0001390C; // type:function size:0x23C fn_1_13B48 = .text:0x00013B48; // type:function size:0xEC fn_1_13C34 = .text:0x00013C34; // type:function size:0x210 -fn_1_13E44 = .text:0x00013E44; // type:function size:0x324 -fn_1_14168 = .text:0x00014168; // type:function size:0x50 +fn_1_13E2C = .text:0x00013E44; // type:function size:0x324 +fn_1_14150 = .text:0x00014168; // type:function size:0x50 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC data:4byte -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC data:4byte -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC data:4byte -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 data:byte -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC data:2byte -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 data:4byte -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC data:4byte -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 data:4byte -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 data:4byte -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC data:4byte -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C data:4byte -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x1 data:byte -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 data:4byte -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 data:4byte -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC data:4byte -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC data:4byte -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC data:4byte -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC data:4byte -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 data:4byte -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 data:4byte -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 data:4byte -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 data:byte -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 data:4byte -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 data:4byte -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C data:4byte -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float -lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:float -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x64 scope:local +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x64 scope:local +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x64 scope:local +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x60 -lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 data:string -lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 data:string -lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A data:string +lbl_1_data_60 = .data:0x00000060; // type:object size:0x27 scope:local data:string +lbl_1_data_87 = .data:0x00000087; // type:object size:0x26 scope:local data:string +lbl_1_data_AD = .data:0x000000AD; // type:object size:0x2A scope:local data:string lbl_1_data_D7 = .data:0x000000D7; // type:object size:0x29 data:string lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 -lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 data:string -lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 data:string -lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 data:string -lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A data:string -lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A data:string +lbl_1_data_110 = .data:0x00000110; // type:object size:0x28 scope:local data:string +lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 scope:local data:string +lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 scope:local data:string +lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A scope:local data:string +lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A scope:local data:string lbl_1_data_17F = .data:0x0000017F; // type:object size:0x11 lbl_1_data_190 = .data:0x00000190; // type:object size:0x50 lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C -lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 data:string -lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 data:string -lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 data:string -lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 data:string -lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 data:string -lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 data:string -lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 data:string -lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 data:string -lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF data:string -lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C data:string -lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D data:string -lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 data:string -lbl_1_data_329 = .data:0x00000329; // type:object size:0xF data:string +lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 scope:local data:string +lbl_1_data_232 = .data:0x00000232; // type:object size:0x15 scope:local data:string +lbl_1_data_247 = .data:0x00000247; // type:object size:0x16 scope:local data:string +lbl_1_data_25D = .data:0x0000025D; // type:object size:0x15 scope:local data:string +lbl_1_data_272 = .data:0x00000272; // type:object size:0x17 scope:local data:string +lbl_1_data_289 = .data:0x00000289; // type:object size:0x16 scope:local data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x16 scope:local data:string +lbl_1_data_2B5 = .data:0x000002B5; // type:object size:0x15 scope:local data:string +lbl_1_data_2CA = .data:0x000002CA; // type:object size:0xF scope:local data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C scope:local data:string +lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D scope:local data:string +lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0xF scope:local data:string lbl_1_data_338 = .data:0x00000338; // type:object size:0x1C lbl_1_data_354 = .data:0x00000354; // type:object size:0x34 lbl_1_data_388 = .data:0x00000388; // type:object size:0x50 lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C -lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 data:string -lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 data:string -lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 data:string -lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 data:string -lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 data:string -lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 data:string -lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 data:string -lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 data:string -lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA data:string -lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C data:string -lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D data:string -lbl_1_data_505 = .data:0x00000505; // type:object size:0xF data:string -lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B data:string -lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 data:string +lbl_1_data_414 = .data:0x00000414; // type:object size:0x16 scope:local data:string +lbl_1_data_42A = .data:0x0000042A; // type:object size:0x15 scope:local data:string +lbl_1_data_43F = .data:0x0000043F; // type:object size:0x16 scope:local data:string +lbl_1_data_455 = .data:0x00000455; // type:object size:0x15 scope:local data:string +lbl_1_data_46A = .data:0x0000046A; // type:object size:0x16 scope:local data:string +lbl_1_data_480 = .data:0x00000480; // type:object size:0x15 scope:local data:string +lbl_1_data_495 = .data:0x00000495; // type:object size:0x17 scope:local data:string +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x16 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0xA scope:local data:string +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x1C scope:local data:string +lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D scope:local data:string +lbl_1_data_505 = .data:0x00000505; // type:object size:0xF scope:local data:string +lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B scope:local data:string +lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 scope:local data:string lbl_1_data_537 = .data:0x00000537; // type:object size:0x9 lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0 lbl_1_data_930 = .data:0x00000930; // type:object size:0x50 -lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 data:string -lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 data:string -lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 data:string -lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 data:string -lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 data:string -lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 data:string -lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 data:string -lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 data:string -lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF data:string -lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C data:string -lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D data:string -lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C data:string -lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 data:string -lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF data:string -lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 data:string -lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA data:string -lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 data:string +lbl_1_data_980 = .data:0x00000980; // type:object size:0x15 scope:local data:string +lbl_1_data_995 = .data:0x00000995; // type:object size:0x14 scope:local data:string +lbl_1_data_9A9 = .data:0x000009A9; // type:object size:0x15 scope:local data:string +lbl_1_data_9BE = .data:0x000009BE; // type:object size:0x14 scope:local data:string +lbl_1_data_9D2 = .data:0x000009D2; // type:object size:0x15 scope:local data:string +lbl_1_data_9E7 = .data:0x000009E7; // type:object size:0x14 scope:local data:string +lbl_1_data_9FB = .data:0x000009FB; // type:object size:0x15 scope:local data:string +lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x14 scope:local data:string +lbl_1_data_A24 = .data:0x00000A24; // type:object size:0xF scope:local data:string +lbl_1_data_A33 = .data:0x00000A33; // type:object size:0x1C scope:local data:string +lbl_1_data_A4F = .data:0x00000A4F; // type:object size:0x1D scope:local data:string +lbl_1_data_A6C = .data:0x00000A6C; // type:object size:0x1C scope:local data:string +lbl_1_data_A88 = .data:0x00000A88; // type:object size:0x32 scope:local data:string +lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF scope:local data:string +lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 scope:local data:string +lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA scope:local data:string +lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 scope:local data:string lbl_1_data_AED = .data:0x00000AED; // type:object size:0xB lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C -lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 data:string -lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 data:string -lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 data:string -lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 data:string -lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 data:string -lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 data:string -lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 data:string -lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 data:string -lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF data:string -lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C data:string -lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D data:string -lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF data:string +lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 scope:local data:string +lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 scope:local data:string +lbl_1_data_B5D = .data:0x00000B5D; // type:object size:0x15 scope:local data:string +lbl_1_data_B72 = .data:0x00000B72; // type:object size:0x14 scope:local data:string +lbl_1_data_B86 = .data:0x00000B86; // type:object size:0x15 scope:local data:string +lbl_1_data_B9B = .data:0x00000B9B; // type:object size:0x14 scope:local data:string +lbl_1_data_BAF = .data:0x00000BAF; // type:object size:0x15 scope:local data:string +lbl_1_data_BC4 = .data:0x00000BC4; // type:object size:0x14 scope:local data:string +lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF scope:local data:string +lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C scope:local data:string +lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D scope:local data:string +lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF scope:local data:string lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x21 -lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 data:string +lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x54 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:4byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:4byte lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte +lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x4 data:4byte +lbl_1_bss_6C = .bss:0x0000006C; // type:object size:0x3C data:4byte lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x28 data:4byte lbl_1_bss_D4 = .bss:0x000000D4; // type:object size:0xA0 diff --git a/configure.py b/configure.py index a4d446ec..d2b126c7 100644 --- a/configure.py +++ b/configure.py @@ -1398,12 +1398,12 @@ config.libs = [ Rel( "mstoryDll", objects={ - Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/main.c"), - Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/board_clear.c"), - Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/board_miss.c"), - Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/mg_clear.c"), - Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/mg_miss.c"), - Object(MatchingFor("GMPE01_00"), "REL/mstoryDll/save.c"), + Object(Matching, "REL/mstoryDll/main.c"), + Object(Matching, "REL/mstoryDll/board_clear.c"), + Object(Matching, "REL/mstoryDll/board_miss.c"), + Object(Matching, "REL/mstoryDll/mg_clear.c"), + Object(Matching, "REL/mstoryDll/mg_miss.c"), + Object(Matching, "REL/mstoryDll/save.c"), }, ), Rel( diff --git a/src/REL/m425Dll/main.c b/src/REL/m425Dll/main.c index ae214b28..9fc806f3 100644 --- a/src/REL/m425Dll/main.c +++ b/src/REL/m425Dll/main.c @@ -565,17 +565,17 @@ void fn_1_14CC(Mtx arg0, float arg8, float arg9, float argA) Mtx sp38; Mtx sp8; if (argA != 0.0f) { - PSMTXRotRad(arg0, 0x5A, 0.017453292f * argA); + PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); } else { PSMTXIdentity(arg0); } if (arg8 != 0.0f) { - PSMTXRotRad(sp38, 0x58, 0.017453292f * arg8); + PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); PSMTXConcat(sp38, arg0, arg0); } if (arg9 != 0.0f) { - PSMTXRotRad(sp8, 0x59, 0.017453292f * arg9); + PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); PSMTXConcat(sp8, arg0, arg0); } } @@ -613,23 +613,6 @@ void fn_1_16B0(Mtx var_r30, Vec *var_r31) var_r31->y = fn_1_15EC(var_f25, var_f29); } -static inline float fn_1_1B40_inline(omObjData *object, s32 arg1, s32 arg2, float arg8, float arg9) -{ - float var_f31; - float var_f30; - - var_f30 = sqrtf(arg8); - var_f31 = arg9 + arg8; - if (var_f31 < 0.0f) { - var_f31 += var_f30 + arg2 + arg1; - } - else if (var_f31 >= var_f30) { - var_f31 -= var_f30 + object->group; - } - return var_f31; -} - -// TODO get a working stripped out inline https://decomp.me/scratch/2IbZG void fn_1_1B40(omObjData *object) { Mtx spCC; @@ -698,8 +681,10 @@ void fn_1_1B40(omObjData *object) break; } if (0) { - fn_1_1B40_inline(object, 1, 2, 0.0f, 0.0f); - fn_1_1B40_inline(object, 1, 2, 0.0f, 0.0f); + int x = 12; + int y = 24; + char *str = "%f"; + print8(x, y, 1.5f, str, sqrtf(fn_1_15EC(object->trans.x, object->trans.y))); } var_r31->unk_38 = var_r31->unk_04 * sind(var_r31->unk_18); var_r31->unk_40 = var_r31->unk_04 * cosd(var_r31->unk_18); diff --git a/src/REL/mstoryDll/save.c b/src/REL/mstoryDll/save.c index cde06d88..eb848ba1 100755 --- a/src/REL/mstoryDll/save.c +++ b/src/REL/mstoryDll/save.c @@ -2,6 +2,7 @@ #include "game/data.h" #include "game/esprite.h" #include "game/flag.h" +#include "game/gamework_data.h" #include "game/hsfman.h" #include "game/saveload.h" #include "game/sprite.h" @@ -9,11 +10,12 @@ #include "game/wipe.h" s32 lbl_1_bss_8BC; -Process* lbl_1_bss_8B8; +Process *lbl_1_bss_8B8; -s32 fn_1_13B48(s32 arg0) { +s32 fn_1_13B48(s32 arg0) +{ if (arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2))) { - return 1; + return 1; } if (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3))) { return 1; @@ -33,7 +35,8 @@ s32 fn_1_13B48(s32 arg0) { return 0; } -void fn_1_13C34(void) { +void fn_1_13C34(void) +{ float sp8[2]; s32 temp_r30; s32 var_r29; @@ -71,6 +74,9 @@ void fn_1_13C34(void) { HuWinExAnimOut(var_r31); HuWinExCleanup(var_r31); if (SLSaveFlagGet() == 1 && temp_r30 == 0) { +#if VERSION_REV1 + GWGameStat.story_continue = 1; +#endif SLCommonSet(); SLSaveBoardStory(); SLSave(); @@ -87,17 +93,22 @@ void fn_1_13C34(void) { } } -void fn_1_13E2C(void) { +void fn_1_13E2C(void) +{ _SetFlag(9); - if (_CheckFlag(FLAG_ID_MAKE(0, 2)) && _CheckFlag(FLAG_ID_MAKE(0, 3)) && _CheckFlag(FLAG_ID_MAKE(0, 4)) && _CheckFlag(FLAG_ID_MAKE(0, 5)) && _CheckFlag(FLAG_ID_MAKE(0, 6))) { - OSReport("########## Next to MapSelect Event 11 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_13B48(GWSystem.board), _CheckFlag(9)); + if (_CheckFlag(FLAG_ID_MAKE(0, 2)) && _CheckFlag(FLAG_ID_MAKE(0, 3)) && _CheckFlag(FLAG_ID_MAKE(0, 4)) && _CheckFlag(FLAG_ID_MAKE(0, 5)) + && _CheckFlag(FLAG_ID_MAKE(0, 6))) { + OSReport( + "########## Next to MapSelect Event 11 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_13B48(GWSystem.board), _CheckFlag(9)); HuPrcChildCreate(fn_1_13C34, 100, 0x2000, 0, HuPrcCurrentGet()); do { fn_1_B8C(); } while (lbl_1_bss_8BC != 1); omOvlGotoEx(OVL_MSTORY2, 1, 0, 0); - } else { - OSReport("########## Next to MapSelect Event 11 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_13B48(GWSystem.board), _CheckFlag(9)); + } + else { + OSReport( + "########## Next to MapSelect Event 11 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_13B48(GWSystem.board), _CheckFlag(9)); HuPrcChildCreate(fn_1_13C34, 100, 0x2000, 0, HuPrcCurrentGet()); do { fn_1_B8C(); @@ -110,7 +121,8 @@ void fn_1_13E2C(void) { } } -void fn_1_14150(Process* arg0) { +void fn_1_14150(Process *arg0) +{ lbl_1_bss_8B8 = arg0; HuPrcChildCreate(fn_1_13E2C, 100, 0x2000, 0, HuPrcCurrentGet()); } From 49696ac31b789106eb8cc365d5d48e74582be657 Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Thu, 9 Jan 2025 03:51:14 +0100 Subject: [PATCH 239/311] Match m430Dll/main.c (#514) --- config/GMPE01_00/rels/m430Dll/symbols.txt | 616 +++++++++++----------- configure.py | 2 +- include/REL/m430Dll.h | 26 + src/REL/m430Dll/main.c | 569 ++++++++++++++++++++ 4 files changed, 904 insertions(+), 309 deletions(-) create mode 100644 include/REL/m430Dll.h create mode 100644 src/REL/m430Dll/main.c diff --git a/config/GMPE01_00/rels/m430Dll/symbols.txt b/config/GMPE01_00/rels/m430Dll/symbols.txt index b27b88e7..df73f081 100644 --- a/config/GMPE01_00/rels/m430Dll/symbols.txt +++ b/config/GMPE01_00/rels/m430Dll/symbols.txt @@ -115,313 +115,313 @@ fn_1_133A4 = .text:0x000133A4; // type:function size:0x38 fn_1_133DC = .text:0x000133DC; // type:function size:0xB4 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:4byte -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 data:4byte -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x10 data:4byte -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x10 data:4byte -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x10 data:4byte -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:4byte -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x18 data:4byte -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:4byte -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0xC data:4byte -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC data:4byte -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0xC data:4byte -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC data:4byte -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x18 data:4byte -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x30 data:4byte -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x18 data:4byte -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x8 data:4byte -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x8 data:4byte -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x20 data:4byte -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x14 data:4byte -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x10 data:4byte -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x10 data:4byte -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x1 data:byte -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x1 data:byte -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x1 data:byte -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x1 data:byte -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x1 data:byte -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x1 data:byte -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x1 data:byte -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x1 data:byte -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x1 data:byte -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:4byte -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0xC data:4byte -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:double -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x8 data:double -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:double -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float -lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:double -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 data:double -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float -lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float -lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:double -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float -lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 data:double -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float -lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float -lbl_1_rodata_5FC = .rodata:0x000005FC; // type:object size:0x4 data:float -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float -lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 data:float -lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 data:float -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float -lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x8 data:double -lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x8 data:double -lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 data:float -lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 data:float -lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 data:float -lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 data:float -lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float -lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float -lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x8 data:double -lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 data:double -lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 data:float -lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x8 data:double -lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x4 data:float -lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 data:double -lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x8 data:double -lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x8 data:double -lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float -lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 data:float -lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 data:double -lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x4 data:float -lbl_1_rodata_6BC = .rodata:0x000006BC; // type:object size:0x4 data:float -lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x8 data:double -lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x8 data:double -lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x8 data:double -lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float -lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float -lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0xC scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0xC scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x18 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x30 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x18 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 scope:local data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 scope:local data:double +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x8 scope:local data:double +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 scope:local data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 scope:local data:double +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 scope:local data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 scope:local data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 scope:local data:double +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 scope:local data:double +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5FC = .rodata:0x000005FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 scope:local data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 scope:local data:float +lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 scope:local data:float +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 scope:local data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 scope:local data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x8 scope:local data:double +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x8 scope:local data:double +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 scope:local data:float +lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 scope:local data:float +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 scope:local data:float +lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 scope:local data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 scope:local data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x8 scope:local data:double +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 scope:local data:double +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 scope:local data:float +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x8 scope:local data:double +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x4 scope:local data:float +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 scope:local data:double +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x8 scope:local data:double +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_6B8 = .rodata:0x000006B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6BC = .rodata:0x000006BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_6C8 = .rodata:0x000006C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_6D0 = .rodata:0x000006D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float @@ -461,7 +461,7 @@ lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x2 data:2byte lbl_1_bss_22 = .bss:0x00000022; // type:object size:0x2 data:2byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 data:2byte -lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x6 data:2byte +lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 data:2byte lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x2 data:2byte lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index d2b126c7..23ff3deb 100644 --- a/configure.py +++ b/configure.py @@ -1087,7 +1087,7 @@ config.libs = [ Rel( "m430Dll", # Pair-a-sailing objects={ - Object(NonMatching, "REL/m430Dll/main.c"), + Object(Matching, "REL/m430Dll/main.c"), Object(NonMatching, "REL/m430Dll/water.c"), Object(NonMatching, "REL/m430Dll/player.c"), }, diff --git a/include/REL/m430Dll.h b/include/REL/m430Dll.h new file mode 100644 index 00000000..f6a826a0 --- /dev/null +++ b/include/REL/m430Dll.h @@ -0,0 +1,26 @@ +#ifndef M430DLL_H +#define M430DLL_H + +#include "game/object.h" + +s32 fn_1_4030(void); +u32 fn_1_4058(void); +u32 fn_1_4070(void); +u32 fn_1_4088(void); +void fn_1_40D0(s32 arg0); +void fn_1_4100(s32 arg0); +float fn_1_4130(void); +float fn_1_48B0(float arg8, float arg9, float argA); + +void fn_1_4A80(Process *process); +void fn_1_4C48(void); +float fn_1_7FBC(s32 arg0); +void fn_1_7FFC(s32 arg0, float arg8); +void fn_1_AEE0(s32 arg0, Vec *arg1, float arg8, float arg9); +void fn_1_B570(s32 arg0, Vec *arg1, float arg8, float arg9); +void fn_1_BB98(u32 arg0); + +void fn_1_BBC4(Process *process); +void fn_1_C00C(void); + +#endif diff --git a/src/REL/m430Dll/main.c b/src/REL/m430Dll/main.c new file mode 100644 index 00000000..bf93c2c6 --- /dev/null +++ b/src/REL/m430Dll/main.c @@ -0,0 +1,569 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/flag.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m430Dll.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + +typedef struct M430DllMainWork { + u32 unk_00; + s32 unk_04; + s32 unk_08; + u32 unk_0C; + s32 unk_10; + u32 unk_14; + s32 unk_18; + s32 unk_1C; + s32 unk_20; + u32 unk_24; + u32 unk_28; + s32 unk_2C; + u32 unk_30; + s32 unk_34; +} M430DllMainWork; /* size = 0x38 */ + +void fn_1_10FC(omObjData *object); +void fn_1_168C(omObjData *object); +void fn_1_1B04(omObjData *object); +void fn_1_21E4(omObjData *object); +void fn_1_2710(omObjData *object); +omObjFunc fn_1_2D48(Process *process, omObjData *object); +void fn_1_2E80(omObjData *object); +omObjFunc fn_1_369C(Process *arg1, omObjData *object); +void fn_1_3768(omObjData *object); +s32 fn_1_4030(void); +void fn_1_65C(omObjData *object); +void fn_1_A54(omObjData *arg0); +void fn_1_B98(omObjData *object); + +Vec lbl_1_data_0 = { 100.0f, 800.0f, -100.0f }; +Vec lbl_1_data_C = { 0.3f, -0.8f, 0.3f }; +Vec lbl_1_data_18 = { 10.0f, 45.0f, 3500.0f }; +GXColor lbl_1_data_24 = { 0xFF, 0xFF, 0xFF, 0xFF }; +Vec lbl_1_data_28 = { 50.0f, 150000.0f, 50.0f }; +Vec lbl_1_data_34 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_40 = { 0.0f, 0.0f, 0.0f }; + +Process *lbl_1_bss_38; +omObjData *lbl_1_bss_34; +omObjData *lbl_1_bss_30; +s16 lbl_1_bss_2C; +char lbl_1_bss_28[4]; +s16 lbl_1_bss_26; +s16 lbl_1_bss_24; +s16 lbl_1_bss_22; +s16 lbl_1_bss_20; +s32 lbl_1_bss_1C; +s32 lbl_1_bss_18; +s32 lbl_1_bss_14; +s16 lbl_1_bss_10; +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +s32 lbl_1_bss_0; + +void ObjectSetup(void) +{ + Mtx sp20; + Vec sp14; + Vec sp8; + Process *var_r31; + LightData *var_r30; + + HuAudSndGrpSet(0x37); + lbl_1_bss_C = lbl_1_bss_8 = -1; + lbl_1_bss_4 = lbl_1_bss_0 = -1; + lbl_1_bss_2C = -1; + lbl_1_bss_14 = 1; + lbl_1_data_28.x = 200.0f; + lbl_1_data_28.y = 1200.0f; + lbl_1_data_28.z = 160.0f; + lbl_1_data_34.x = 0.0f; + lbl_1_data_34.y = 1.0f; + lbl_1_data_34.z = 0.0f; + lbl_1_data_40.x = 0.0f; + lbl_1_data_40.y = 0.0f; + lbl_1_data_40.z = 0.0f; + Hu3DShadowCreate(30.0f, 20.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); + lbl_1_bss_26 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24); + Hu3DGLightInfinitytSet(lbl_1_bss_26); + var_r30 = &Hu3DGlobalLight[lbl_1_bss_26]; + var_r30->unk_00 |= 0x8000; + lbl_1_data_18.x = 34.75f; + lbl_1_data_18.y = -24.75f; + lbl_1_data_18.z = 3500.0f; + sp14.x = sp14.y = sp14.z = 0.0f; + sp8.x = sp8.z = 0.0f; + sp8.y = lbl_1_data_18.z; + mtxRot(sp20, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); + PSMTXMultVec(sp20, &sp8, &sp8); + Hu3DGLightPosAimSetV(lbl_1_bss_26, &sp8, &sp14); + Hu3DShadowPosSet(&sp8, &lbl_1_data_34, &sp14); + lbl_1_bss_24 = lbl_1_bss_22 = lbl_1_bss_20 = -1; + lbl_1_bss_1C = 1; + lbl_1_bss_18 = 1; + var_r31 = omInitObjMan(0x32, 0x2000); + lbl_1_bss_38 = var_r31; + omGameSysInit(var_r31); + Hu3DCameraCreate(3); + Hu3DCameraPerspectiveSet(1, -1.0f, 5.0f, 25000.0f, 0.6f); + Hu3DCameraPerspectiveSet(2, -1.0f, 5.0f, 25000.0f, 0.6f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraViewportSet(2, 320.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x140, 0x1E0); + Hu3DCameraScissorSet(2, 0x140, 0, 0x140, 0x1E0); + lbl_1_bss_30 = omAddObjEx(var_r31, 0x7FDA, 0, 0, -1, omOutViewMulti); + lbl_1_bss_30->work[0] = 2; + lbl_1_bss_34 = omAddObjEx(var_r31, 0xA, 0, 0, -1, fn_1_65C); + fn_1_4A80(var_r31); + fn_1_BBC4(var_r31); + lbl_1_bss_10 = espEntry(0x3D001B, 0x64, 0); + espPosSet(lbl_1_bss_10, 288.0, 240.0); + espScaleSet(lbl_1_bss_10, 0.22499999403953552, 60.0); + espDispOff(lbl_1_bss_10); +} + +void fn_1_65C(omObjData *object) +{ + M430DllMainWork *work; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M430DllMainWork), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M430DllMainWork)); + work->unk_00 = 0; + work->unk_04 = 0; + work->unk_0C = 0; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0; + work->unk_24 = 0; + work->unk_28 = 0; + work->unk_08 = 0; + work->unk_2C = 0; + work->unk_30 = 0; + work->unk_34 = 0; + object->func = fn_1_B98; +} + +void fn_1_720(omObjData *object) +{ + M430DllMainWork *work = object->data; + work->unk_04++; + work->unk_10++; + work->unk_18++; + work->unk_28++; + if ((omSysExitReq != 0) && (work->unk_00 != 5)) { + work->unk_00 = 4; + fn_1_A54(object); + } + if (lbl_1_bss_18 == 0) { + if (fn_1_4030() != 0) { + if ((Hu3DCamera->fov < 0.0f) || (Hu3DCamera[1].fov < 0.0f)) { + Hu3DCameraPerspectiveSet(1, 41.5f, 5.0f, 25000.0f, 0.6f); + Hu3DCameraPerspectiveSet(2, 41.5f, 5.0f, 25000.0f, 0.6f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraViewportSet(2, 320.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x140, 0x1E0); + Hu3DCameraScissorSet(2, 0x140, 0, 0x140, 0x1E0); + } + } + else if ((Hu3DCamera->fov < 0.0f) || (Hu3DCamera[1].fov >= 0.0f)) { + Hu3DCamera[1].fov = -1.0f; + Hu3DCameraPerspectiveSet(1, 41.5f, 5.0f, 25000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x280, 0x1E0); + } + } +} + +void fn_1_A54(omObjData *object) +{ + M430DllMainWork *work = object->data; + if (work->unk_08 == 0) { + switch (work->unk_00) { + case 0: + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_18 = 0; + work->unk_00 = 1; + work->unk_10 = 0; + object->func = fn_1_2D48(lbl_1_bss_38, object); + break; + case 1: + work->unk_00 = 2; + work->unk_18 = 0; + object->func = fn_1_1B04; + break; + case 2: + work->unk_00 = 3; + work->unk_28 = 0; + object->func = fn_1_369C(lbl_1_bss_38, object); + break; + case 3: + case 4: + work->unk_08 = 1; + work->unk_00 = 5; + object->func = fn_1_10FC; + break; + case 5: + default: + work->unk_00 = 5; + object->func = fn_1_168C; + break; + } + work->unk_04 = 0; + } +} + +void fn_1_B98(omObjData *object) +{ + fn_1_720(object); + fn_1_A54(object); +} + +void fn_1_10FC(omObjData *object) +{ + M430DllMainWork *work = object->data; + fn_1_720(object); + + if (WipeStatGet() == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_14 = 1; + work->unk_08 = 0; + fn_1_A54(object); + } +} + +void fn_1_168C(omObjData *object) +{ + fn_1_720(object); + if (WipeStatGet() == 0) { + fn_1_C00C(); + fn_1_4C48(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_1B04(omObjData *object) +{ + M430DllMainWork *work = object->data; + fn_1_720(object); + switch (work->unk_14) { + case 0: + lbl_1_bss_1C = 1; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + lbl_1_bss_14 = 0; + espDispOn(lbl_1_bss_10); + work->unk_1C = 0x2D; + work->unk_20 = 0x3C; + CenterM->x = -450.0f; + CenterM[1].x = 450.0f; + CenterM->y = CenterM[1].y = 300.0f; + CenterM->z = CenterM[1].z = 950.0f; + CRotM->x = CRotM[1].x = -5.0f; + CRotM->y = CRotM[1].y = 0.0f; + CZoomM[0] = CZoomM[1] = 700.0f; + work->unk_14 = 1; + work->unk_18 = 0; + object->work[0] = 0; + return; + case 1: + if (object->work[0] == 0) { + if (WipeStatGet() == 0) { + lbl_1_bss_24 = MGSeqCreate(3, 0); + MGSeqPosSet(lbl_1_bss_24, 320.0f, 240.0f); + object->work[0]++; + } + } + else { + if ((lbl_1_bss_4 < 0) && ((MGSeqStatGet(lbl_1_bss_24) & 0x10) != 0)) { + lbl_1_bss_4 = HuAudSeqPlay(0x4A); + } + if ((MGSeqStatGet(lbl_1_bss_24) == 0) && (work->unk_08 == 0)) { + lbl_1_bss_2C = MGSeqCreate(1, work->unk_1C, -1, -1); + work->unk_14 = 2; + work->unk_18 = 0; + object->func = fn_1_21E4; + } + } + break; + } +} + +void fn_1_21E4(omObjData *object) +{ + M430DllMainWork *work = object->data; + s32 var_r27 = 0; + fn_1_720(object); + if (--work->unk_20 == 0) { + work->unk_20 = 0x3C; + work->unk_1C--; + if (work->unk_1C <= 0) { + var_r27 = 1; + } + } + if (var_r27 != 0) { + lbl_1_bss_22 = MGSeqCreate(3, 1); + MGSeqPosSet(lbl_1_bss_22, 320.0f, 240.0f); + HuAudSeqFadeOut(lbl_1_bss_4, 0x64); + object->work[1] = 0; + work->unk_14 = 3; + work->unk_18 = 0; + if (work->unk_08 == 0) { + object->func = fn_1_2710; + } + } + MGSeqParamSet(lbl_1_bss_2C, 1, work->unk_1C); +} + +void fn_1_2710(omObjData *object) +{ + M430DllMainWork *work = object->data; + if (lbl_1_bss_2C >= 0) { + MGSeqParamSet(lbl_1_bss_2C, 2, -1); + lbl_1_bss_2C = -1; + } + fn_1_720(object); + if (object->work[1] == 0) { + if (MGSeqStatGet(lbl_1_bss_22) == 0) { + if (work->unk_08 == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + lbl_1_bss_14 = 1; + } + object->work[1]++; + HuAudFXFadeOut(lbl_1_bss_C, 0x1E); + } + } + else if ((WipeStatGet() == 0) && (work->unk_30 == 0x1111)) { + work->unk_14 = 4; + work->unk_18 = 0; + fn_1_A54(object); + } +} + +omObjFunc fn_1_2D48(Process *process, omObjData *object) +{ + CenterM->x = CenterM[1].x = 0.0f; + CenterM->y = CenterM[1].y = 300.0f; + CenterM->z = CenterM[1].z = 950.0f; + CRotM->x = CRotM[1].x = -5.0f; + CRotM->y = CRotM[1].y = 0.0f; + CZoomM[0] = CZoomM[1] = 700.0f; + object->work[0] = object->work[1] = 0; + lbl_1_bss_1C = 0; + lbl_1_bss_C = HuAudFXPlay(0x674); + return fn_1_2E80; +} + +void fn_1_2E80(omObjData *object) +{ + M430DllMainWork *work = object->data; + fn_1_720(object); + work->unk_0C = 1; + object->work[0]++; + switch (object->work[1]) { + case 0: + if (object->work[0] > 180.0f) { + if (work->unk_08 == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + lbl_1_bss_14 = 1; + } + object->work[1]++; + object->work[0] = 0; + } + break; + case 1: + if (WipeStatGet() == 0) { + object->work[0] = 0; + work->unk_0C = 2; + fn_1_A54(object); + } + break; + } +} + +omObjFunc fn_1_369C(Process *arg0, omObjData *object) +{ + M430DllMainWork *work = object->data; + s32 spC = 0; + s32 sp8 = 1; + lbl_1_bss_1C = 0; + espDispOff(lbl_1_bss_10); + fn_1_BB98(1); + if (work->unk_08 == 0) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + lbl_1_bss_14 = 0; + } + CenterM->x = 0.0f; + lbl_1_bss_8 = HuAudFXPlay(0x679); + return fn_1_3768; +} + +void fn_1_3768(omObjData *object) +{ + M430DllMainWork *work = object->data; + + fn_1_720(object); + if (WipeStatGet() == 0) { + work->unk_24 = 1; + if (work->unk_28 >= 210.0f) { + work->unk_24 = 2; + fn_1_A54(object); + } + } + else { + work->unk_28 = 0; + } +} + +s32 fn_1_4030(void) +{ + return lbl_1_bss_1C; +} + +u32 fn_1_4040(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_34, M430DllMainWork)->unk_00; +} + +u32 fn_1_4058(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_34, M430DllMainWork)->unk_0C; +} + +u32 fn_1_4070(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_34, M430DllMainWork)->unk_14; +} + +u32 fn_1_4088(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_34, M430DllMainWork)->unk_24; +} + +void fn_1_40A0(s32 arg0) +{ + OM_GET_DATA_PTR(lbl_1_bss_34, M430DllMainWork)->unk_2C = arg0; +} + +s32 fn_1_40B8(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_34, M430DllMainWork)->unk_2C; +} + +void fn_1_40D0(s32 arg0) +{ + + OM_GET_DATA_PTR(lbl_1_bss_34, M430DllMainWork)->unk_30 |= (1 << ((arg0 & 3) * 4)); +} + +void fn_1_4100(s32 arg0) +{ + OM_GET_DATA_PTR(lbl_1_bss_34, M430DllMainWork)->unk_34 |= (1 << ((arg0 & 3) * 4)); +} + +float fn_1_4130(void) +{ + M430DllMainWork *work = lbl_1_bss_34->data; + float var_f31 = work->unk_1C - 1; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + var_f31 += 0.016666668f * work->unk_20; + return var_f31; +} + +void fn_1_41F0(Vec *arg0, Vec *arg1) +{ + Vec sp10; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + + sp10.x = arg1->x - arg0->x; + sp10.y = arg1->y - arg0->y; + sp10.z = arg1->z - arg0->z; + Center.x = arg1->x; + Center.y = arg1->y; + Center.z = arg1->z; + CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z))); + CRot.y = atan2d(-sp10.x, -sp10.z); + CRot.z = 0.0f; + CZoom = sqrtf((sp10.z * sp10.z) + ((sp10.x * sp10.x) + (sp10.y * sp10.y))); +} + +void fn_1_4538(float sp8, float spC, float sp10, float sp14, float sp18, float sp1C) +{ + Vec sp40; + Vec sp34; + sp40.x = sp8; + sp40.y = spC; + sp40.z = sp10; + + sp34.x = sp14; + sp34.y = sp18; + sp34.z = sp1C; + fn_1_41F0(&sp40, &sp34); +} + +float fn_1_48B0(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + float var_f29; + + var_f30 = fmod(arg9 - arg8, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + var_f29 = fmod(arg8 + (argA * var_f31), 360.0); + var_f31 = var_f29; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + return var_f31; +} + +float fn_1_49CC(float arg0, float arg1) +{ + float var_f31; + float var_f30; + + var_f30 = fmod(arg1 - arg0, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} From e9e3683871d6f5e3300a9305db245967d324d2cb Mon Sep 17 00:00:00 2001 From: Liam Coleman Date: Wed, 8 Jan 2025 22:40:16 -0600 Subject: [PATCH 240/311] Match first mstory2 TU (#515) --- config/GMPE01_00/rels/mstory2Dll/symbols.txt | 5 +- configure.py | 2 +- include/REL/mstory2Dll.h | 107 ++ src/REL/mstory2Dll/main.c | 1238 ++++++++++++++++++ 4 files changed, 1349 insertions(+), 3 deletions(-) create mode 100644 include/REL/mstory2Dll.h create mode 100644 src/REL/mstory2Dll/main.c diff --git a/config/GMPE01_00/rels/mstory2Dll/symbols.txt b/config/GMPE01_00/rels/mstory2Dll/symbols.txt index de1259ef..2043c77f 100644 --- a/config/GMPE01_00/rels/mstory2Dll/symbols.txt +++ b/config/GMPE01_00/rels/mstory2Dll/symbols.txt @@ -5,7 +5,7 @@ _prolog = .text:0x00000344; // type:function size:0x54 scope:global _epilog = .text:0x00000398; // type:function size:0x4C scope:global fn_1_3E4 = .text:0x000003E4; // type:function size:0x110 fn_1_4F4 = .text:0x000004F4; // type:function size:0x1B8 -fn_1_6AC = .text:0x000006AC; // type:function size:0x1B8 +ObjectSetup = .text:0x000006AC; // type:function size:0x1B8 fn_1_864 = .text:0x00000864; // type:function size:0x28 fn_1_88C = .text:0x0000088C; // type:function size:0x20 fn_1_8AC = .text:0x000008AC; // type:function size:0xD8 @@ -535,7 +535,8 @@ lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 data:string lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 data:string lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 lbl_1_data_308 = .data:0x00000308; // type:object size:0x20 -lbl_1_data_328 = .data:0x00000328; // type:object size:0x60 +lbl_1_data_328 = .data:0x00000328; // type:object size:0x40 +lbl_1_data_368 = .data:0x00000368; // type:object size:0x20 data:float lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 data:string lbl_1_data_399 = .data:0x00000399; // type:object size:0x2 data:string lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x2C diff --git a/configure.py b/configure.py index 23ff3deb..e0f1746d 100644 --- a/configure.py +++ b/configure.py @@ -1370,7 +1370,7 @@ config.libs = [ Rel( "mstory2Dll", objects={ - Object(NonMatching, "REL/mstory2Dll/main.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/main.c"), Object(NonMatching, "REL/mstory2Dll/board_entrance.c"), Object(NonMatching, "REL/mstory2Dll/board_clear.c"), Object(NonMatching, "REL/mstory2Dll/board_miss.c"), diff --git a/include/REL/mstory2Dll.h b/include/REL/mstory2Dll.h new file mode 100644 index 00000000..839c576d --- /dev/null +++ b/include/REL/mstory2Dll.h @@ -0,0 +1,107 @@ +#ifndef MSTORY2DLL_H +#define MSTORY2DLL_H + +#include "game/object.h" +#include "game/process.h" + +#include "dolphin/types.h" + +typedef struct { + /* 0x00 */ void (*unk00)(void); + /* 0x04 */ void (*unk04)(void); + /* 0x08 */ Vec unk08; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ Vec unk20; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ float unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ s32 unk40; +} StructBss24; // Size 0x44 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ char unk1C[0x18]; +} StructFn357C; // Size 0x34 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ void (*unk04)(omObjData*, ...); + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ char unk10[0x18]; +} StructBss19C; // Size 0x28 + +// main.c +float fn_1_864(float arg0, float arg1, float arg2, float arg3); +float fn_1_8AC(float arg0, float arg1, float arg2, float arg3); +float fn_1_984(float arg0, float arg1, float arg2, float arg3); +float fn_1_B08(float arg0, float arg1, float arg2, float arg3); +void fn_1_BC8(void); +void fn_1_BE8(s32 arg0); +void fn_1_C30(void); +s32 fn_1_185C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_1A94(s32 arg0); +void fn_1_1AFC(s32 arg0, s32 arg1); +BOOL fn_1_1BA8(s32 arg0, s32 arg1); +BOOL fn_1_1C64(s32 arg0); +void fn_1_1D18(s32 arg0, s32 arg1); +void fn_1_1D4C(s32 arg0, s32 arg1, s32 arg2); +void fn_1_1DFC(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_2264(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_2750(void (*arg0)(void)); +void fn_1_2828(Process* arg0, void (*arg1)(void)); +void fn_1_2948(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5); +void fn_1_2D00(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5); +void fn_1_357C(StructFn357C* arg0, s32 arg1); +s32 fn_1_3668(s32 arg0); +void fn_1_3754(void); +void fn_1_3854(StructBss24* arg0); +void fn_1_3B04(StructBss24* arg0, float arg1); +void fn_1_4FEC(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3, float arg4); +void fn_1_6004(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3, float arg4); +int fn_1_66CC(int modelId); + +void fn_1_6704(omObjData* arg0); +void fn_1_6A90(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_6D78(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +s32 fn_1_7064(s32 arg0, s32 arg1); +void fn_1_71DC(s32 arg0); +void fn_1_7244(s16 modelId, char *objName, u32 constAttr, float ofs); +void fn_1_7384(int modelId, int charNo, float ofs, s32 maxTime, BOOL flag); + +// board_clear.c +void fn_1_7F54(Process* arg0, s32 arg1); + +// board_clear.c +void fn_1_B3E4(Process* arg0, s32 arg1); + +// board_miss.c +void fn_1_EA2C(Process* arg0, s32 arg1); + +// mg_clear.c +void fn_1_1256C(Process* arg0, s32 arg1); + +// mg_miss.c +void fn_1_16060(Process* arg0, s32 arg1); + +// ending.c +void fn_1_188F0(Process* arg0, s32 arg1); + +// ending.c +void fn_1_1B90C(Process* arg0); + +extern s32 lbl_1_bss_68[]; +extern StructBss24 lbl_1_bss_24; +extern s32 lbl_1_data_0[][4]; + +#endif diff --git a/src/REL/mstory2Dll/main.c b/src/REL/mstory2Dll/main.c new file mode 100644 index 00000000..058b2e4e --- /dev/null +++ b/src/REL/mstory2Dll/main.c @@ -0,0 +1,1238 @@ +#include "REL/mstory2Dll.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/hsfdraw.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/window.h" +#include "game/wipe.h" +#include "game/sprite.h" + +#include "ext_math.h" + +s32 lbl_1_bss_68[3]; // unused +StructBss24 lbl_1_bss_24; +s32 lbl_1_bss_4[8]; +Process* lbl_1_bss_0; + +s32 lbl_1_data_0[][4] = { + { 0x37, 0x38, 0x36, 0x39 }, + { 0x43, 0x45, 0x44, 0x43 }, + { 0x40, 0x42, 0x41, 0x40 }, + { 0x4B, 0x4D, 0x4C, 0x4B }, + { 0x46, 0x48, 0x47, 0x46 }, + { 0x3E, 0x3F, 0x3E, 0x3E }, + {0x3A, 0x3B, 0x3C, 0xFFFFFFFF} +}; + +char* lbl_1_data_144[] = { + "K-1 : KOOPA STORY - BOARD ENTRANCE EVENT", + "K-3 : KOOPA STORY - BOARD CLEAR EVENT", + "K-4 : KOOPA STORY - BOARD MISS EVENT", + "K-5 : KOOPA STORY - MINIGAME CLEAR EVENT", + "K-6 : KOOPA STORY - MINIGAME MISS EVENT", + "--- : ENDING" +}; + +void fn_1_0(omObjData* arg0) { + if (WipeStatGet() == 0) { + arg0->func = NULL; + omOvlReturnEx(1, 1); + } +} + +void fn_1_4C(omObjData* arg0) { + if (omSysExitReq != 0) { + arg0->func = fn_1_0; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + } +} + +void fn_1_A4(void) { + s32 sp14; + s32 var_r30; + s32 var_r31; + s32 sp10; + s32 spC; + s32 sp8; + s32 i; + + var_r30 = 0; + omAddObjEx(lbl_1_bss_0, 0x2000, 0, 0, -1, fn_1_4C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_BC8(); + } + while (TRUE) { + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + break; + } + if (HuPadStkY[0] <= -30) { + fn_1_BE8(5); + var_r30++; + if (var_r30 >= 6) { + var_r30 = 0; + } + + } + if (HuPadStkY[0] >= 30) { + fn_1_BE8(5); + var_r30--; + if (var_r30 < 0) { + var_r30 = 5; + } + } + fontcolor = FONT_COLOR_WHITE; + print8(24, 100, 1.5f, ">>>>> MPGC STORY 2 - EVENT SELECT <<<<<"); + for (i = 0; i < 6; i++) { + fontcolor = FONT_COLOR_WHITE; + if (var_r30 == i) { + fontcolor = FONT_COLOR_CYAN; + } + print8(24, 130 + i * 15, 1.5f, "%s", lbl_1_data_144[i]); + } + fn_1_BC8(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_BC8(); + } + GWSystem.board = 5; + switch (var_r30) { + case 0: + fn_1_7F54(lbl_1_bss_0, 0); + break; + case 1: + fn_1_B3E4(lbl_1_bss_0, 0); + break; + case 2: + fn_1_EA2C(lbl_1_bss_0, 0); + break; + case 3: + fn_1_1256C(lbl_1_bss_0, 0); + break; + case 4: + fn_1_16060(lbl_1_bss_0, 0); + break; + case 5: + fn_1_188F0(lbl_1_bss_0, 0); + break; + } + while (TRUE) { + fn_1_BC8(); + } +} + +#include "src/REL/executor.c" + +void fn_1_3E4(void) +{ + int gid = HuSprGrpCreate(1); + int sprid = HuTHPSprCreate("movie/endmov_ma0.thp", FALSE, 10); + HuSprGrpMemberSet(gid, 0, sprid); + HuSprPosSet(gid, 0, 288, 240); + HuPrcSleep(5); + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); + while(WipeStatGet()) { + HuPrcVSleep(); + } + while(!HuTHPEndCheck()) { + HuPrcVSleep(); + } + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while(WipeStatGet()) { + HuPrcVSleep(); + } + HuTHPClose(); + HuPrcVSleep(); + HuSprGrpKill(gid); + while(1) { + fn_1_BC8(); + } +} + +void fn_1_4F4(void) { + s32 i; + + lbl_1_bss_0 = omInitObjMan(62, 0x2000); + switch (omovlevtno) { + case 0: + fn_1_7F54(lbl_1_bss_0, 0); + break; + + case 1: + for (i = 0; i < 4; i++) { + if (GWPlayerCfg[i].character == GWUnkB1Get()) { + break; + } + } + fn_1_B3E4(lbl_1_bss_0, i); + break; + case 2: + for (i = 0; i < 4; i++) { + if (GWPlayerCfg[i].character == GWUnkB1Get()) { + break; + } + } + fn_1_EA2C(lbl_1_bss_0, i); + break; + case 3: + if (GWPlayerCoinWinGet(0) >= 10) { + fn_1_1256C(lbl_1_bss_0, 0); + } else { + fn_1_16060(lbl_1_bss_0, 0); + } + break; + case 4: + fn_1_188F0(lbl_1_bss_0, 0); + break; + + case 20: + fn_1_1B90C(lbl_1_bss_0); + break; + } +} + +void ObjectSetup(void) { + fn_1_4F4(); +} + +float fn_1_864(float arg0, float arg1, float arg2, float arg3) { + if (arg3 <= arg2) { + return arg1; + } + return arg0 + (arg2 / arg3) * (arg1 - arg0); +} + +float fn_1_88C(float arg0, float arg1, float arg2) { + return (arg1 + arg0 * (arg2 - 1.0f)) / arg2; +} + +float fn_1_8AC(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * (1.0 - cosd((90.0f / arg3) * arg2)); +} + +float fn_1_984(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * sind((90.0f / arg3) * arg2); +} + +float fn_1_A4C(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg0; + } + return arg0 + (arg1 - arg0) * sind((180.0f / arg3) * arg2); +} + +float fn_1_B08(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg0; + } + return arg0 + (arg1 - arg0) * sind((360.0f / arg3) * arg2); +} + +void fn_1_BC4(void) { +} + +void fn_1_BC8(void) { + HuPrcVSleep(); +} + +void fn_1_BE8(s32 arg0) { + HuPrcSleep(arg0); +} + +void fn_1_C10(void) { + HuPrcEnd(); +} + +void fn_1_C30(void) { + HuWinInit(1); +} + +void fn_1_C54(void) { +} + +void fn_1_C58(s32 arg0, float arg1, float arg2, s32 arg3) { + WindowData* temp_r29; + float temp_f29; + float temp_f28; + float temp_f25; + float temp_f24; + float temp_f31; + float temp_f27; + float temp_f30; + float temp_f26; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + s32 i; + + temp_r29 = &winData[arg0]; + temp_f29 = temp_r29->pos_x; + temp_f28 = temp_r29->pos_y; + temp_f25 = temp_r29->w; + temp_f24 = temp_r29->h; + temp_f31 = temp_f29 + temp_f25 * arg1; + temp_f27 = 4.0f / temp_f25; + if (temp_f31 + 4.0f - (temp_f29 + temp_f25) >= 0.0f) { + temp_f31 = (temp_f29 + temp_f25) - 4.0f; + } else if (temp_f29 - (temp_f31 - 2.0f) >= 0.0f) { + temp_f31 = temp_f29; + } else { + temp_f31 -= 2.0f; + } + temp_f30 = temp_f28 + temp_f24 * arg2; + temp_f26 = 4.0f / temp_f24; + if (temp_f30 + 4.0f - (temp_f28 + temp_f24) >= 0.0f) { + temp_f30 = (temp_f28 + temp_f24) - 4.0f; + } else if (temp_f28 - (temp_f30 - 2.0f) >= 0.0f) { + temp_f30 = temp_f28; + } else { + temp_f30 -= 2.0f; + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f31, temp_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + var_f23 = temp_f31; + var_f21 = temp_f27; + var_f22 = temp_f30; + var_f20 = temp_f26; + } else { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + var_f23 = temp_f29; + var_f21 = 1.0f; + var_f22 = temp_f28; + var_f20 = 1.0f; + } + HuWinDispOn(arg0); + for (i = 0; i <= 15; i++) { + HuPrcVSleep(); + if (arg3 != 0) { + if (i <= 10) { + var_f23 = fn_1_984(temp_f31, temp_f29, i, 10.0f); + var_f21 = fn_1_984(temp_f27, 1.0f, i, 10.0f);; + } else { + var_f22 = fn_1_984(temp_f30, temp_f28, i - 10, 5.0f); + var_f20 = fn_1_984(temp_f26, 1.0f, i - 10, 5.0f); + } + } else { + if (i <= 10) { + var_f22 = fn_1_984(temp_f28, temp_f30, i, 10.0f); + var_f20 = fn_1_984(1.0f, temp_f26, i, 10.0f); + } else { + var_f23 = fn_1_984(temp_f29, temp_f31, i - 10, 5.0f); + var_f21 = fn_1_984(1.0f, temp_f27, i - 10, 5.0f); + } + } + HuWinPosSet(arg0, var_f23, var_f22); + HuWinScaleSet(arg0, var_f21, var_f20); + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + } else { + HuWinPosSet(arg0, temp_f31, temp_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + } + HuPrcVSleep(); +} + +s32 fn_1_16A0(s32 arg0, s32 arg1, s32 arg2, s32 arg3, float arg4, float arg5, s32 arg6) { + s32 temp_r31; + + arg2 = arg2 * 21 + 16; + arg3 = arg3 * 26 + 16; + if (arg0 == 0) { + arg0 = 550 - arg2; + } else { + arg0 = 1.0f + (576.0f - arg2) / 2.0f; + } + if (arg1 == 0) { + arg1 = 430 - arg3; + } + temp_r31 = HuWinExCreateStyled(arg0, arg1, arg2, arg3, -1, 1); + HuWinMesPalSet(temp_r31, 7, 0, 0, 0); + if (arg6 != -1) { + arg6 = GWPlayerCfg[arg6].pad_idx; + winData[temp_r31].active_pad = (1 << arg6); + } else { + winData[temp_r31].active_pad = 0xF; + } + + fn_1_C58(temp_r31, arg4, arg5, 1); + return temp_r31; +} + +s32 fn_1_185C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + return fn_1_16A0(arg0, arg1, arg2, arg3, 0.5f, 0.5f, arg4); +} + +void fn_1_1A34(s32 arg0, float arg1, float arg2) { + HuWinMesSet(arg0, MAKE_MESSID(37, 4)); + HuPrcVSleep(); + fn_1_C58(arg0, arg1, arg2, 0); + HuWinExCleanup(arg0); +} + +void fn_1_1A94(s32 arg0) { + fn_1_1A34(arg0, 0.5f, 0.5f); +} + +void fn_1_1AFC(s32 arg0, s32 arg1) { + s32 i; + + if (arg1 > 0) { + HuPrcSleep(arg1); + return; + } + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesWait(arg0); + HuWinComKeyReset(); +} + +BOOL fn_1_1BA8(s32 arg0, s32 arg1) { + s32 var_r31; + s32 i; + + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + var_r31 = HuWinChoiceGet(arg0, arg1); + HuWinComKeyReset(); + if (var_r31 != 0) { + var_r31 = FALSE; + } else { + var_r31 = TRUE; + } + return var_r31; +} + +BOOL fn_1_1C64(s32 arg0) { + return fn_1_1BA8(arg0, 0); +} + +void fn_1_1D18(s32 arg0, s32 arg1) { + HuWinMesSet(arg0, arg1); +} + +void fn_1_1D4C(s32 arg0, s32 arg1, s32 arg2) { + HuWinInsertMesSet(arg0, arg1, arg2); +} + +void fn_1_1D8C(s16 arg0) { + ModelData* var_r28; + HsfMaterial* var_r31; + HsfData* temp_r30; + s16 var_r27; + s32 i; + + var_r28 = &Hu3DData[arg0]; + temp_r30 = var_r28->hsfData; + var_r27 = temp_r30->materialCnt; + var_r31 = temp_r30->material; + for (i = 0; i < var_r27; var_r31++, i++) { + var_r31->vtxMode = 1; + } +} + +void fn_1_1DFC(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + switch (arg4) { + case 0: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_NONE); + break; + case 1: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_LOOP); + break; + case 2: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_PAUSE); + break; + } + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; +} + +void fn_1_1F84(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg0->motion[arg2] == Hu3DMotionIDGet(arg0->model[arg1])) { + return; + } + if (arg0->motion[arg2] == Hu3DMotionShiftIDGet(arg0->model[arg1])) { + return; + } + fn_1_1F84(arg0, arg1, arg2, arg3, arg4); +} + +void fn_1_2264(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3) { + HuPrcSleep(arg3 + 1); + do { + HuPrcVSleep(); + } while (arg0->motion[arg2] != Hu3DMotionIDGet(arg0->model[arg1]) || !Hu3DMotionEndCheck(arg0->model[arg1])); +} + +s32 fn_1_22F4(s32 arg0) { + s32 i; + + for (i = 0; i < 4; i++) { + if (arg0 == GWPlayerCfg[i].group) { + break; + } + } + return i; +} + +void fn_1_233C(s32 arg0, s32 arg1) { + while (TRUE) { + if (arg1 & HuPadBtnDown[arg0]) { + break; + } + HuPrcVSleep(); + } +} + +void fn_1_2390(void) { + StructBss24* var_r31; + + var_r31 = &lbl_1_bss_24; + if (HuPadBtn[0] & PAD_BUTTON_B) { + if (HuPadBtn[0] & PAD_TRIGGER_R) { + var_r31->unk08.z -= HuPadStkY[0] / 10.0f; + } else { + var_r31->unk08.x += HuPadStkX[0] / 10.0f; + var_r31->unk08.y += HuPadStkY[0] / 10.0f; + } + } + if (HuPadBtn[0] & PAD_BUTTON_Y) { + var_r31->unk20.x -= HuPadStkY[0] / 100.0f; + var_r31->unk20.y += HuPadStkX[0] / 100.0f; + if (var_r31->unk20.x < 0.0f) { + var_r31->unk20.x += 360.0f; + } + if (var_r31->unk20.x >= 360.0f) { + var_r31->unk20.x -= 360.0f; + } + if (var_r31->unk20.y < 0.0f) { + var_r31->unk20.y += 360.0f; + } + if (var_r31->unk20.y >= 360.0f) { + var_r31->unk20.y -= 360.0f; + } + } + if (HuPadBtn[0] & PAD_BUTTON_X) { + var_r31->unk38 -= HuPadStkY[0] / 10.0f; + } + print8(24, 40, 1.5f, "CENTER : %.2f, %.2f, %.2f", var_r31->unk08.x, var_r31->unk08.y, var_r31->unk08.z); + print8(24, 55, 1.5f, "ROT : %.2f, %.2f, %.2f", var_r31->unk20.x, var_r31->unk20.y, var_r31->unk20.z); + print8(24, 70, 1.5f, "ZOOM : %.2f", var_r31->unk38); +} + +void fn_1_2750(void (*arg0)(void)) { + lbl_1_bss_24.unk00 = arg0; +} + +void fn_1_2760(void (*arg0)(void)) { + lbl_1_bss_24.unk04 = arg0; +} + +void fn_1_2770(omObjData* arg0) { + StructBss24* var_r31; + + var_r31 = &lbl_1_bss_24; + if (var_r31->unk00 != NULL) { + var_r31->unk00(); + } + Center.x = var_r31->unk08.x; + Center.y = var_r31->unk08.y; + Center.z = var_r31->unk08.z; + CRot.x = var_r31->unk20.x; + CRot.y = var_r31->unk20.y; + CRot.z = var_r31->unk20.z; + CZoom = var_r31->unk38; +} + +void fn_1_2828(Process* arg0, void (*arg1)(void)) { + Hu3DCameraCreate(1); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 42.0f, 0.1f, 10000.0f, 1.2f); + lbl_1_bss_24.unk00 = arg1; + lbl_1_bss_24.unk04 = fn_1_2390; + omAddObjEx(arg0, 0x7FDA, 0, 0, -1, omOutView); + omAddObjEx(arg0, 0x7FD9, 0, 0, -1, fn_1_2770); +} + +void fn_1_2948(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5) { + Vec sp4C; + Vec sp40; + Vec sp34; + Vec sp28; + float sp24; + float sp20; + float sp1C; + s32 sp18; + s32 sp14; + float var_f31; + + sp40.x = Hu3DData[arg0->model[arg1]].pos.x; + sp4C.y = sp40.y = Hu3DData[arg0->model[arg1]].pos.y; + sp40.z = Hu3DData[arg0->model[arg1]].pos.z; + sp34.x = arg2.x; + sp34.y = arg2.y; + sp34.z = arg2.z; + sp18 = arg4; + sp28.x = Hu3DData[arg0->model[arg1]].rot.x; + sp28.y = Hu3DData[arg0->model[arg1]].rot.y; + sp28.z = Hu3DData[arg0->model[arg1]].rot.z; + sp1C = 0.0f; + sp20 = arg3; + sp24 = 0.0f; + sp14 = arg5; + var_f31 = -1.1025f; + Hu3DMotionShiftSet(arg0->model[1], arg0->motion[3], 0.0f, 5.0f, 0U); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + HuPrcSleep(10); + while (TRUE) { + if (var_f31 >= 1.7f) { + var_f31 = 1.7f; + } + sp4C.y += var_f31 * var_f31 * (var_f31 >= 0.0f ? -17.5f : 17.5f); + if (sp4C.y <= 0.0f && var_f31 > 0.0f) { + sp4C.y = 0.0f; + } + sp4C.x = sp40.x += 6.0 * sind(sp28.y); + sp4C.z = sp40.z += 6.0 * cosd(sp28.y); + Hu3DModelPosSet(arg0->model[1], sp4C.x, sp4C.y, sp4C.z); + Hu3DModelRotSet(arg0->model[1], sp28.x, sp28.y, sp28.z); + HuPrcVSleep(); + if (sp4C.y <= arg2.y && var_f31 > 0.0f) { + break; + } + var_f31 += 0.11f; + } +} + +void fn_1_2D00(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5) { + Vec sp54; + Vec sp48; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + s32 sp14; + s32 temp_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 i; + + var_r26 = 0; + var_r25 = 0; + sp48.x = Hu3DData[arg0->model[arg1]].pos.x; + sp48.y = Hu3DData[arg0->model[arg1]].pos.y; + sp48.z = Hu3DData[arg0->model[arg1]].pos.z; + sp3C.x = arg2.x; + sp3C.y = arg2.y; + sp3C.z = arg2.z; + sp14 = arg4; + sp24.x = Hu3DData[arg0->model[arg1]].rot.x; + sp24.y = Hu3DData[arg0->model[arg1]].rot.y; + sp24.z = Hu3DData[arg0->model[arg1]].rot.z; + sp18.x = 0.0f; + sp18.y = arg3; + sp18.z = 0.0f; + if (sp3C.x - sp48.x >= 0.0f) { + var_r24 = 1; + } else { + var_r24 = 0; + } + if (sp3C.z - sp48.z >= 0.0f) { + var_r23 = 1; + } else { + var_r23 = 0; + } + temp_r27 = arg5; + do { + sp30.y = -(atan2d(sp3C.z - sp48.z, sp3C.x - sp48.x) - 90.0); + if (sp30.y < 0.0f) { + sp30.y += 360.0f; + } else if (sp30.y >= 360.0f) { + sp30.y -= 360.0f; + } + if (sp30.y >= 180.0f) { + if (sp24.y - sp30.y >= 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp30.y < -180.0f) { + sp24.y += 360.0f; + } + } else { + if (sp24.y - sp30.y > 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp30.y <= -180.0f) { + sp24.y += 360.0f; + } + } + sp54.x = sp48.x += 6.0 * sind(sp30.y); + sp54.z = sp48.z += 6.0 * cosd(sp30.y); + if (var_r24 != 0) { + if (sp48.x >= sp3C.x) { + sp54.x = sp48.x = sp3C.x; + var_r26 = 1; + } + } else { + if (sp48.x <= sp3C.x) { + sp54.x = sp48.x = sp3C.x; + var_r26 = 1; + } + } + if (var_r23 != 0) { + if (sp48.z >= sp3C.z) { + sp54.z = sp48.z = sp3C.z; + var_r25 = 1; + } + } else { + if (sp48.z <= sp3C.z) { + sp54.z = sp48.z = sp3C.z; + var_r25 = 1; + } + } + sp24.y = fn_1_88C(sp24.y, sp30.y, 10.0f); + Hu3DModelPosSet(arg0->model[1], sp54.x, sp48.y, sp54.z); + Hu3DModelRotSet(arg0->model[1], sp24.x, sp24.y, sp24.z); + HuPrcVSleep(); + } while (var_r25 != 1 || var_r26 != 1); + sp24.y = Hu3DData[arg0->model[arg1]].rot.y; + for (i = 0; i <= temp_r27; i++) { + if (sp18.y >= 180.0f) { + if (sp24.y - sp18.y >= 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp18.y < -180.0f) { + sp24.y += 360.0f; + } + } else { + if (sp24.y - sp18.y > 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp18.y <= -180.0f) { + sp24.y += 360.0f; + } + } + sp24.y = fn_1_864(sp24.y, sp18.y, i, temp_r27); + Hu3DModelRotSet(arg0->model[1], sp24.x, sp24.y, sp24.z); + HuPrcVSleep(); + } +} + +void fn_1_34F4(s16 arg0) { + ModelData* var_r28; + HsfData* temp_r30; + HsfMaterial* var_r31; + s16 var_r27; + s32 i; + + var_r28 = &Hu3DData[arg0]; + temp_r30 = var_r28->hsfData; + var_r27 = temp_r30->materialCnt; + var_r31 = temp_r30->material; + for (i = 0; i < var_r27; var_r31++, i++) { + var_r31->vtxMode = 1; + var_r31->litColor[0] = 0xFF; + var_r31->litColor[1] = 0xFF; + var_r31->litColor[2] = 0xFF; + } +} + +void fn_1_357C(StructFn357C* arg0, s32 arg1) { + arg0->unk00 = arg1; + arg0->unk04 = GWPlayerCfg[arg0->unk00].group; + arg0->unk08 = GWPlayerCfg[arg0->unk00].iscom; + arg0->unk0C = GWPlayerCfg[arg0->unk00].diff; + arg0->unk10 = GWPlayerCfg[arg0->unk00].character; + arg0->unk14 = GWPlayerCfg[arg0->unk00].pad_idx; +} + +s32 fn_1_3610(void) { + s32 i; + + for (i = 0; i < 4; i++) { + if (!GWPlayerCfg[i].iscom) { + break; + } + } + if (i == 4) { + return -1; + } + return i; +} + +s32 fn_1_3668(s32 arg0) { + s32 temp_r3 = 0; + + temp_r3 = Hu3DGLightCreate(0.0f, 700.0f, 1200.0f, 0.0f, -1.0f, 0.0f, arg0, arg0, arg0); + Hu3DGLightPosAimSet(temp_r3, 0.0f, 700.0f, 1200.0f, 0.0f, 0.0f, 640.0f); + Hu3DGLightInfinitytSet(temp_r3); + return temp_r3; +} + +void fn_1_3754(void) { + Vec sp20 = { 0.0f, 3000.0f, 800.0f }; + Vec sp14 = { 0.0f, 0.0f, 640.0f }; + Vec sp8 = { 0.0f, 1.0f, 0.0f }; + + Hu3DShadowCreate(45.0f, 2000.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.8f); + Hu3DShadowPosSet(&sp20, &sp8, &sp14); +} + +void fn_1_3818(StructBss24* arg0) { + arg0->unk08.x = arg0->unk14; + arg0->unk08.y = arg0->unk18; + arg0->unk08.z = arg0->unk1C; + arg0->unk20.x = arg0->unk2C; + arg0->unk20.y = arg0->unk30; + arg0->unk20.z = arg0->unk34; + arg0->unk38 = arg0->unk3C; +} + +void fn_1_3854(StructBss24* arg0) { + arg0->unk40 = 0; + arg0->unk14 = arg0->unk08.x; + arg0->unk18 = arg0->unk08.y; + arg0->unk1C = arg0->unk08.z; + arg0->unk2C = arg0->unk20.x; + arg0->unk30 = arg0->unk20.y; + arg0->unk34 = arg0->unk20.z; + arg0->unk3C = arg0->unk38; +} + +void fn_1_3898(StructBss24* arg0, StructBss24* arg1, float arg3) { + arg0->unk08.x = fn_1_88C(arg0->unk08.x, arg1->unk14, arg3); + arg0->unk08.y = fn_1_88C(arg0->unk08.y, arg1->unk18, arg3); + arg0->unk08.z = fn_1_88C(arg0->unk08.z, arg1->unk1C, arg3); + arg0->unk20.x = fn_1_88C(arg0->unk20.x, arg1->unk2C, arg3); + arg0->unk20.y = fn_1_88C(arg0->unk20.y, arg1->unk30, arg3); + arg0->unk20.z = fn_1_88C(arg0->unk20.z, arg1->unk34, arg3); + arg0->unk38 = fn_1_88C(arg0->unk38, arg1->unk3C, arg3); +} + +void fn_1_3B04(StructBss24* arg0, float arg1) { + fn_1_3898(arg0, arg0, arg1); +} + +void fn_1_3D70(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_864(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_864(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_864(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_864(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_864(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_864(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_864(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_3FEC(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3) { + fn_1_3D70(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_42A0(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3, float arg4) { + fn_1_3D70(arg0, arg1, arg2, arg3); + fn_1_3898(arg0, arg1, arg4); +} + +void fn_1_470C(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_984(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_984(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_984(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_984(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_984(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_984(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_984(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_4B60(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3) { + fn_1_470C(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_4FEC(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3, float arg4) { + fn_1_470C(arg0, arg1, arg2, arg3); + fn_1_3898(arg0, arg1, arg4); +} + +void fn_1_5644(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_8AC(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_8AC(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_8AC(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_8AC(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_8AC(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_8AC(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_8AC(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_5B08(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3) { + fn_1_5644(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_6004(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3, float arg4) { + fn_1_5644(arg0, arg1, arg2, arg3); + fn_1_3898(arg0, arg1, arg4); +} + +int fn_1_66CC(int modelId) +{ + return Hu3DMotionMaxTimeGet(modelId); +} + +void fn_1_6704(omObjData* arg0) { + s32 var_r30; + if(arg0->work[0] == 0) { + return; + } + if (arg0->work[2] != 0) { + arg0->work[2]--; + return; + } + if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[1])) { + var_r30 = arg0->work[1]; + Hu3DMotionShiftSet(arg0->model[1], arg0->motion[var_r30], 0.0f, 15.0f, 0x40000001U); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + } +} + +void fn_1_67D8(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + fn_1_1DFC(arg0, 1, arg1, arg3, arg4); + if (arg4 == 0) { + arg0->work[0] = 1; + arg0->work[1] = arg2; + arg0->work[2] = arg3 + 1; + } +} + +void fn_1_6970(s32 arg0, s32 arg1) { + HuWinMesSet(arg0, arg1); +} + +void fn_1_69A4(s32 arg0, s32 arg1, s32 arg2) { + HuWinInsertMesSet(arg0, arg1, arg2); +} + +void fn_1_69E4(s32 arg0, s32 arg1) { + fn_1_1AFC(arg0, arg1); +} + +void fn_1_6A90(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + s32 var_r27 = 0; + s32 var_r29 = 0; + s32 var_r23 = 0; + s32 var_r26; + s32 i; + if(arg2 == -1) { + var_r23 = 1; + arg2 = 0; + } + HuWinMesSet(arg0, arg1); + var_r27 = HuWinKeyWaitNumGet(arg1); + if (arg2 == -1 || arg2 >= var_r27 - 1) { + arg2 = var_r27 - 1; + } + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesSet(arg0, arg1); + for (i = 0; i < var_r27; i++) { + var_r29 = 0; + do { + HuPrcVSleep(); + } while (HuWinStatGet(arg0) != 1); + + if (i == arg2) { + HuWinAttrSet(arg0, 0x400); + var_r29 = 1; + } + while (TRUE) { + HuPrcVSleep(); + if (var_r29 != 0) { + if (var_r29 == 1 && HuWinStatGet(arg0) != 1) { + var_r29 = 2; + } else if (var_r29 == 2) { + if(arg3 != -1) { + if(arg4 != -1) { + i=0; + do { + HuPrcVSleep(); + if(i++ == 25) { + HuAudFXPlay(lbl_1_data_0[6][0]); + } + } while(!Hu3DMotionEndCheck(arg3)); + Hu3DMotionShiftSet(arg3, arg4, 0, 1, 0); + HuPrcSleep(15); + } + var_r26 = fn_1_66CC(arg3)-15; + if(var_r23 == 1) { + for(i=0; i 0) { + HuPrcSleep(var_r26); + } + } + } else { + HuPrcSleep(60); + } + HuWinAttrReset(arg0, 0x400); + HuWinKeyWaitEntry(arg0); + break; + } + } else if (HuWinStatGet(arg0) != 1) { + break; + } + } + } + fn_1_1AFC(arg0, 0); + HuWinMesSet(arg0, MAKE_MESSID(37, 4)); + HuWinComKeyReset(); +} + +void fn_1_6D78(s32 arg0, s32 arg1, s32 arg2, s32 arg3) +{ + fn_1_6A90(arg0, arg1, arg2, arg3, -1); +} + +void fn_1_6DBC(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + s32 temp_r28 = 0; + s32 var_r29 = 0; + s32 i; + + HuWinMesSet(arg0, arg1); + temp_r28 = HuWinKeyWaitNumGet(arg1); + if (arg2 == -1 || arg2 >= temp_r28 - 1) { + arg2 = temp_r28 - 1; + } + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesSet(arg0, arg1); + for (i = 0; i < temp_r28; i++) { + var_r29 = 0; + do { + HuPrcVSleep(); + } while (HuWinStatGet(arg0) != 1); + if (i == arg2) { + HuWinAttrSet(arg0, 0x400); + var_r29 = 1; + } + while (TRUE) { + HuPrcVSleep(); + if (var_r29 != 0) { + if (var_r29 == 1 && HuWinStatGet(arg0) != 1) { + var_r29 = 2; + } else if (var_r29 == 2) { + HuPrcSleep(arg3); + HuWinAttrReset(arg0, 0x400); + HuWinKeyWaitEntry(arg0); + break; + } + } else if (HuWinStatGet(arg0) != 1) { + break; + } + } + } + fn_1_1AFC(arg0, 0); + HuWinMesSet(arg0, MAKE_MESSID(37, 4)); + HuWinComKeyReset(); +} + +BOOL fn_1_6FB0(s32 arg0) { + return fn_1_1BA8(arg0, 0); +} + +s32 fn_1_7064(s32 arg0, s32 arg1) { + float spC[2]; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + s32 var_r31; + + HuWinMesMaxSizeGet(1, spC, arg0); + var_f31 = spC[0]; + var_f30 = spC[1]; + var_f29 = 550.0f - var_f31; + var_f28 = 430.0f - var_f30; + var_r31 = HuWinExCreateStyled(var_f29, var_f28, var_f31, var_f30, -1, 1); + if (arg1 != -1) { + arg1 = GWPlayerCfg[arg1].pad_idx; + winData[var_r31].active_pad = (1 << arg1); + } else { + winData[var_r31].active_pad = 0xF; + } + HuWinMesPalSet(var_r31, 7, 0, 0, 0); + fn_1_C58(var_r31, 0.5f, 0.5f, 1); + return var_r31; +} + +void fn_1_71DC(s32 arg0) { + fn_1_1A34(arg0, 0.5f, 0.5f); +} + +char *lbl_1_data_308[8] = { + "c000m1-ske_head", + "c001m1-ske_head", + "c002m1-ske_head", + "c003m1-ske_head", + "c004m1-ske_head", + "c005m1-ske_head", + "c006m1-ske_head", + "c007m1-ske_head" +}; + +s32 lbl_1_data_328[8][2] = { + 0x200, 0, + 0x200, 0, + 0x200, 0, + 0x200, 0, + 0x200, 0, + 0x200, 0, + 0x200, 0, + 0x200, 0, +}; + +float lbl_1_data_368[8] = { + 194, + 191, + 87.2, + 50.1, + 72, + 83.5, + 87.2, + 64.5 +}; + +void fn_1_7244(s16 modelId, char *objName, u32 constFlags, float ofs) +{ + HsfObject *obj = Hu3DModelObjPtrGet(modelId, objName); + HsfConstData *constData; + if(!obj->constData) { + constData = ObjConstantMake(obj, Hu3DData[modelId].unk_48); + } else { + constData = obj->constData; + } + constData->flags |= constFlags; + if(constFlags & 0x10) { + obj->data.curr.pos.x += ofs; + } + if(constFlags & 0x20) { + obj->data.curr.pos.y += ofs; + } + if(constFlags & 0x40) { + obj->data.curr.pos.z += ofs; + } + if(constFlags & 0x80) { + obj->data.curr.rot.x += ofs; + } + if(constFlags & 0x100) { + obj->data.curr.rot.y += ofs; + } + if(constFlags & 0x200) { + obj->data.curr.rot.z += ofs; + } +} + +void fn_1_7384(int modelId, int charNo, float ofs, s32 maxTime, BOOL flag) +{ + float var_f31 = 0; + float var_f30 = ofs; + s32 i; + if(charNo == 7) { + var_f30 *= 2.5f; + } + if(lbl_1_data_328[charNo][1] == 0) { + var_f30 *= -1; + } + if(flag) { + for(i=0; i Date: Thu, 9 Jan 2025 05:48:18 +0100 Subject: [PATCH 241/311] Match m430Dll/water.c (#516) --- config/GMPE01_00/rels/m430Dll/symbols.txt | 32 +- configure.py | 4 +- include/REL/m430Dll.h | 2 +- src/REL/m430Dll/water.c | 1818 +++++++++++++++++++++ 4 files changed, 1837 insertions(+), 19 deletions(-) create mode 100644 src/REL/m430Dll/water.c diff --git a/config/GMPE01_00/rels/m430Dll/symbols.txt b/config/GMPE01_00/rels/m430Dll/symbols.txt index df73f081..a4b72fe6 100644 --- a/config/GMPE01_00/rels/m430Dll/symbols.txt +++ b/config/GMPE01_00/rels/m430Dll/symbols.txt @@ -252,11 +252,11 @@ lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data: lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x14 scope:local data:4byte lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x10 scope:local data:4byte lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x10 scope:local data:4byte -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x1 scope:local data:byte -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x1 scope:local data:byte -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x1 scope:local data:byte -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x1 scope:local data:byte -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:byte lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float @@ -270,13 +270,13 @@ lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data: lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:byte lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:byte lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x1 scope:local data:byte -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:byte lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float @@ -300,11 +300,11 @@ lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data: lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 scope:local data:double lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:float lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0xC scope:local data:float lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 scope:local data:double lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float @@ -429,12 +429,12 @@ lbl_1_data_24 = .data:0x00000024; // type:object size:0x4 lbl_1_data_28 = .data:0x00000028; // type:object size:0xC data:float lbl_1_data_34 = .data:0x00000034; // type:object size:0xC data:float lbl_1_data_40 = .data:0x00000040; // type:object size:0xC data:float -lbl_1_data_50 = .data:0x00000050; // type:object size:0x7 data:string -lbl_1_data_57 = .data:0x00000057; // type:object size:0x7 data:string -lbl_1_data_60 = .data:0x00000060; // type:object size:0x48 +lbl_1_data_50 = .data:0x00000050; // type:object size:0x7 scope:local data:string +lbl_1_data_57 = .data:0x00000057; // type:object size:0x7 scope:local data:string +lbl_1_data_60 = .data:0x00000060; // type:object size:0x48 data:float lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x18 -lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x60 -lbl_1_data_120 = .data:0x00000120; // type:object size:0x48 +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x60 data:float +lbl_1_data_120 = .data:0x00000120; // type:object size:0x48 data:float lbl_1_data_168 = .data:0x00000168; // type:object size:0x8 lbl_1_data_170 = .data:0x00000170; // type:object size:0x38 lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x20 diff --git a/configure.py b/configure.py index e0f1746d..ce78fe3b 100644 --- a/configure.py +++ b/configure.py @@ -1087,8 +1087,8 @@ config.libs = [ Rel( "m430Dll", # Pair-a-sailing objects={ - Object(Matching, "REL/m430Dll/main.c"), - Object(NonMatching, "REL/m430Dll/water.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m430Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m430Dll/water.c"), Object(NonMatching, "REL/m430Dll/player.c"), }, ), diff --git a/include/REL/m430Dll.h b/include/REL/m430Dll.h index f6a826a0..e1a47014 100644 --- a/include/REL/m430Dll.h +++ b/include/REL/m430Dll.h @@ -17,7 +17,7 @@ void fn_1_4C48(void); float fn_1_7FBC(s32 arg0); void fn_1_7FFC(s32 arg0, float arg8); void fn_1_AEE0(s32 arg0, Vec *arg1, float arg8, float arg9); -void fn_1_B570(s32 arg0, Vec *arg1, float arg8, float arg9); +void fn_1_B570(s32 arg0, Vec *arg1, float arg8, float arg9, Vec *arg2); void fn_1_BB98(u32 arg0); void fn_1_BBC4(Process *process); diff --git a/src/REL/m430Dll/water.c b/src/REL/m430Dll/water.c new file mode 100644 index 00000000..1d295c95 --- /dev/null +++ b/src/REL/m430Dll/water.c @@ -0,0 +1,1818 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/flag.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m430Dll.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#include "game/frand.h" + +void GXSetTevIndWarp(GXTevStageID tev_stage, GXIndTexStageID ind_stage, GXBool signed_offsets, GXBool replace_mode, GXIndTexMtxID matrix_sel); +#endif + +inline double fabs2(double x) +{ + return (double)fabs(x); +} + +typedef struct M430DllUnkStruct2 { + s32 unk_00; + s16 unk_04; + char unk06[2]; + s16 unk_08; + s16 unk_0A; + Vec unk_0C; + Vec unk_18; + float unk_24; + float unk_28; + float unk_2C; + float unk_30; + float unk_34; + float unk_38; +} M430DllUnkStruct2; /* size 0x3C */ + +typedef struct M430DllWork { + s32 unk_00; + Vec unk_04; + s32 unk_10; + s32 unk_14; + s16 unk_18; + s16 unk_1A; + s16 unk_1C; + s16 unk_1E; + float unk_20; + s16 unk_24[0xC]; + s32 unk_3C; + s16 unk_40[0xA]; + s16 unk_54[0xA]; + s16 unk_68[0xA]; + s32 unk_7C; + s16 unk_80[6]; + s16 unk_8C[6]; + s16 unk_98[6]; + s32 unk_A4[6]; + s32 unk_BC; + M430DllUnkStruct2 *unk_C0; +} M430DllWork; /* size 0xC4 */ + +typedef struct M430DllWork2 { + s16 unk_00; + char unk02[4]; + s16 unk_06; + Vec unk_08; + Vec unk_14; + float unk_20; + float unk_24; + float unk_28; + float unk_2C; + float unk_30; + float unk_34; + float unk_38; + float unk_3C; +} M430DllWork2; /* size 0x40 */ + +typedef struct M430DllBss60Struct { + /* 0x00 */ u32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ s32 unk_18; + /* 0x1C */ u32 unk_1C; + /* 0x20 */ s32 unk_20; + /* 0x24 */ float unk_24; + /* 0x28 */ float unk_28; + /* 0x2C */ Vec *unk_2C; + /* 0x30 */ Vec *unk_30; + /* 0x34 */ void *unk_34; + /* 0x38 */ void *unk_38; + /* 0x3C */ char pad_3C[4]; + /* 0x40 */ s32 unk_40; + /* 0x44 */ Vec *unk_44[2]; + /* 0x4C */ char pad_4C[8]; + /* 0x54 */ GXColor *unk_54[2]; + /* 0x5C */ s32 unk_5C; + /* 0x60 */ void *unk_60; + /* 0x64 */ u32 unk_64; + /* 0x68 */ u32 unk_68; + /* 0x6C */ void *unk_6C; +} M430DllBss60Struct; /* size = 0x70 */ + +void fn_1_4CB4(omObjData *object); +void fn_1_5DF8(omObjData *object); +void fn_1_6180(M430DllWork *arg0); +void fn_1_6540(M430DllWork *arg0); +void fn_1_6754(M430DllWork *arg0); +void fn_1_6DC8(M430DllWork *arg0); +M430DllUnkStruct2 *fn_1_70AC(omObjData *arg0, s32 arg1, s16 arg2); +void fn_1_732C(omObjData *object, M430DllUnkStruct2 *arg1); +void fn_1_76D8(omObjData *object, M430DllUnkStruct2 *arg1); +void fn_1_7848(omObjData *object); +void fn_1_7CAC(omObjData *object); +void fn_1_7EAC(omObjData *object, M430DllWork2 *arg1); +void fn_1_803C(omObjData *object); +void fn_1_8264(omObjData *object); +void fn_1_82F4(omObjData *object, M430DllBss60Struct *arg1); +void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1); +void fn_1_8B5C(omObjData *object, M430DllBss60Struct *arg1); +void fn_1_8CE0(ModelData *model, Mtx matrix); +void fn_1_963C(ModelData *model, Mtx matrix, u32 arg2); +void fn_1_9C90(ModelData *model, Mtx matrix); +void fn_1_A3A8(ModelData *model, Mtx matrix); +void fn_1_AB98(ModelData *model, Mtx matrix); +void fn_1_AC84(ModelData *model, Mtx matrix); +void fn_1_AD04(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_B394(ModelData *model, ParticleData *particle, Mtx matrix); +float fn_1_BB54(u32 arg0); + +AnimData *lbl_1_bss_150; +AnimData *lbl_1_bss_14C; +AnimData *lbl_1_bss_148; +AnimData *lbl_1_bss_144; +AnimData *lbl_1_bss_140; +M430DllBss60Struct lbl_1_bss_60[2]; +s32 lbl_1_bss_5C; +omObjData *lbl_1_bss_58; +omObjData *lbl_1_bss_54; +omObjData *lbl_1_bss_50; +float lbl_1_bss_4C; +float lbl_1_bss_48; +s32 lbl_1_bss_44; +s32 lbl_1_bss_40; + +void fn_1_4A80(Process *process) +{ + omObjData *object; + + lbl_1_bss_150 = HuSprAnimRead(HuDataReadNum(0x3D0019, 0x10000000)); + lbl_1_bss_14C = HuSprAnimRead(HuDataReadNum(0x3D001A, 0x10000000)); + lbl_1_bss_148 = HuSprAnimRead(HuDataReadNum(0x3D0014, 0x10000000)); + lbl_1_bss_144 = HuSprAnimRead(HuDataReadNum(0x3D0017, 0x10000000)); + lbl_1_bss_140 = HuSprAnimRead(HuDataReadNum(0x3D0018, 0x10000000)); + object = lbl_1_bss_58 = omAddObjEx(process, 0x1E, 0x68, 0, -1, fn_1_4CB4); + object->work[0] = 0; + object = lbl_1_bss_54 = omAddObjEx(process, 0x1E, 7, 0, -1, fn_1_803C); + object->work[0] = 0; + object = lbl_1_bss_50 = omAddObjEx(process, 0x1E, 0, 0, -1, fn_1_7848); + object->work[0] = 0; + lbl_1_bss_5C = 0; + lbl_1_bss_44 = lbl_1_bss_40 = 0; + lbl_1_bss_4C = lbl_1_bss_48 = 0.0f; +} + +void fn_1_4C48(void) +{ + HuSprAnimKill(lbl_1_bss_150); + HuSprAnimKill(lbl_1_bss_14C); + HuSprAnimKill(lbl_1_bss_148); + HuSprAnimKill(lbl_1_bss_144); + HuSprAnimKill(lbl_1_bss_140); +} + +void fn_1_4CB4(omObjData *object) +{ + s32 var_r31; + M430DllWork *var_r30; + s32 var_r28; + s32 var_r27; + HsfData *var_r26; + s32 var_r25; + M430DllWork *work; + + u32 spC[1] = { 0x3D0001 }; + s32 sp8[1]; + u32 sp90[4] = { 0x003D000B, 0x003D000C, 0x003D000D, 0x003D000E }; + u32 sp80[4] = { 0x003D0002, 0x003D0002, 0x003D0003, 0x003D0003 }; + u32 sp70[4] = { 0x003D0004, 0x003D0004, 0x00000000, 0x00000000 }; + u32 sp60[4] = { 0x003D0006, 0x003D0007, 0x003D0008, 0x003D0009 }; + s32 sp50[4]; + s32 sp40[4]; + s32 sp30[4]; + s32 sp20[4]; + s32 sp18[2] = { 1, 2 }; + s32 sp10[2]; + s32 spA0[6] = { 0, 3, 2, 1, 2, 3 }; + + object->stat |= 0x100; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(M430DllWork), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, 2 * sizeof(M430DllWork)); + for (var_r30 = work, var_r31 = 0; var_r31 < 2; var_r31++, var_r30++) { + var_r30->unk_00 = var_r31; + var_r30->unk_04.x = var_r30->unk_04.y = var_r30->unk_04.z = 0.0f; + var_r30->unk_3C = 0; + var_r30->unk_7C = 0; + var_r30->unk_BC = 0; + } + var_r30 = work; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + object->model[var_r31] = Hu3DModelCreateFile(0x3D0000); + var_r30[var_r31].unk_18 = object->model[var_r31]; + Hu3DModelLayerSet(var_r30[var_r31].unk_18, 0); + Hu3DModelScaleSet(var_r30[var_r31].unk_18, 1.15f, 1.15f, 1.15f); + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x3D000A), 1); + var_r30[var_r31].unk_1A = var_r27; + Hu3DModelLayerSet(var_r27, 1); + *((s16 *)Hu3DData[var_r27].unk_120) = 1; + var_r30[var_r31].unk_1C = Hu3DTexScrollCreate(var_r30[var_r31].unk_18, "pa_sk2"); + var_r30[var_r31].unk_1E = Hu3DTexScrollCreate(var_r30[var_r31].unk_18, "pa_sk3"); + Hu3DTexScrollPosMoveSet(var_r30[var_r31].unk_1C, -0.00009166667f, 0.0f, 0.0f); + Hu3DTexScrollPosMoveSet(var_r30[var_r31].unk_1E, -0.00020000001f, 0.0f, 0.0f); + var_r30[var_r31].unk_20 = 50000.0f; + var_r26 = Hu3DData[var_r30[var_r31].unk_18].hsfData; + for (var_r28 = 0; var_r28 < var_r26->materialCnt; var_r28++) { + var_r26->material[var_r28].flags &= 0xFFFFFDFF; + var_r26->material[var_r28].pass = 1; + var_r26->material[var_r28].invAlpha = 0.001f; + } + } + object->model[2] = Hu3DModelCreateFile(0x3D000F); + Hu3DModelLayerSet(object->model[2], 1); + Hu3DModelScaleSet(object->model[2], 1.5f, 1.5f, 1.5f); + object->model[3] = Hu3DModelCreateFile(0x3D0010); + Hu3DModelLayerSet(object->model[3], 2); + Hu3DModelScaleSet(object->model[3], 1.5f, 1.5f, 1.5f); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x3D0015), 0x64); + object->model[var_r31 + 4] = var_r27; + var_r30[var_r31].unk_10 = var_r27; + Hu3DModelLayerSet(var_r27, 2); + Hu3DParticleColSet(var_r27, 0xFF, 0xFF, 0xFF); + Hu3DParticleHookSet(var_r27, fn_1_AD04); + Hu3DModelPosSet(var_r27, 0.0f, 0.0f, 0.0f); + *((s16 *)Hu3DData[var_r27].unk_120) = 0; + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x3D0015), 0x64); + object->model[var_r31 + 6] = var_r27; + var_r30[var_r31].unk_14 = var_r27; + Hu3DModelLayerSet(var_r27, 1); + Hu3DParticleColSet(var_r27, 0xFF, 0xFF, 0xFF); + Hu3DParticleHookSet(var_r27, fn_1_B394); + Hu3DModelPosSet(var_r27, 0.0f, 0.0f, 0.0f); + *((s16 *)Hu3DData[var_r27].unk_120) = 0; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + sp20[var_r31] = Hu3DModelCreateFile(sp90[var_r31]); + } + for (var_r31 = 0; var_r31 < 0xC; var_r31++) { + var_r27 = sp20[var_r31 % 4]; + object->model[var_r31 + 8] = Hu3DModelLink(var_r27); + object->model[var_r31 + 0x14] = Hu3DModelLink(var_r27); + var_r30[0].unk_24[var_r31] = object->model[var_r31 + 8]; + var_r30[1].unk_24[var_r31] = object->model[var_r31 + 0x14]; + Hu3DModelLayerSet(var_r30[0].unk_24[var_r31], 1); + Hu3DModelLayerSet(var_r30[1].unk_24[var_r31], 1); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + sp50[var_r31] = Hu3DModelCreateFile(sp80[var_r31]); + sp40[var_r31] = -1; + sp30[var_r31] = -1; + if (sp70[var_r31] != 0) { + sp40[var_r31] = Hu3DModelCreateFile(sp70[var_r31]); + } + } + for (var_r31 = 0; var_r31 < 6; var_r31++) { + s32 sp10[2] = { 0x5C, 0x62 }; + var_r25 = spA0[var_r31]; + var_r27 = sp50[var_r25]; + for (var_r28 = 0; var_r28 < 2; var_r28++) { + object->model[var_r31 + sp10[var_r28]] = Hu3DModelLink(var_r27); + var_r30[var_r28].unk_80[var_r31] = object->model[var_r31 + sp10[var_r28]]; + Hu3DModelLayerSet(var_r30[var_r28].unk_80[var_r31], 1); + } + for (var_r28 = 0; var_r28 < 2; var_r28++) { + var_r30[var_r28].unk_8C[var_r31] = -1; + var_r30[var_r28].unk_98[var_r31] = -1; + } + if (sp40[var_r25] >= 0) { + var_r27 = sp40[var_r25]; + for (var_r28 = 0; var_r28 < 2; var_r28++) { + var_r30[var_r28].unk_8C[var_r31] = Hu3DModelLink(var_r27); + Hu3DModelLayerSet(var_r30[var_r28].unk_8C[var_r31], 4); + Hu3DModelAttrSet(var_r30[var_r28].unk_8C[var_r31], HU3D_ATTR_ZWRITE_OFF); + } + } + if (sp60[var_r25] != 0) { + for (var_r28 = 0; var_r28 < 2; var_r28++) { + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(sp60[var_r25]), 1); + var_r30[var_r28].unk_98[var_r31] = var_r27; + Hu3DModelLayerSet(var_r27, 5); + Hu3DParticleColSet(var_r27, 0xFF, 0xFF, 0xFF); + Hu3DModelPosSet(var_r27, 0.0f, 0.0f, 0.0f); + *((s16 *)Hu3DData[var_r27].unk_120) = 1; + } + } + } + for (var_r31 = 0; var_r31 < 1; var_r31++) { + sp8[var_r31] = Hu3DModelCreateFile(spC[var_r31]); + } + for (var_r31 = 0; var_r31 < 0x1E; var_r31 += 3) { + var_r27 = sp8[frandmod(1)]; + object->model[var_r31 + 0x20] = Hu3DModelLink(var_r27); + object->model[var_r31 + 0x21] = Hu3DModelLink(var_r27); + object->model[var_r31 + 0x22] = Hu3DModelLink(var_r27); + object->model[var_r31 + 0x3E] = Hu3DModelLink(var_r27); + object->model[var_r31 + 0x3F] = Hu3DModelLink(var_r27); + object->model[var_r31 + 0x40] = Hu3DModelLink(var_r27); + var_r30->unk_40[var_r31 / 3] = object->model[var_r31 + 0x20]; + var_r30->unk_54[var_r31 / 3] = object->model[var_r31 + 0x21]; + var_r30->unk_68[var_r31 / 3] = object->model[var_r31 + 0x22]; + var_r30[1].unk_40[var_r31 / 3] = object->model[var_r31 + 0x3E]; + var_r30[1].unk_54[var_r31 / 3] = object->model[var_r31 + 0x3F]; + var_r30[1].unk_68[var_r31 / 3] = object->model[var_r31 + 0x40]; + Hu3DModelLayerSet(var_r30->unk_40[var_r31 / 3], 1); + Hu3DModelLayerSet(var_r30->unk_54[var_r31 / 3], 1); + Hu3DModelLayerSet(var_r30->unk_68[var_r31 / 3], 1); + Hu3DModelLayerSet(var_r30[1].unk_40[var_r31 / 3], 1); + Hu3DModelLayerSet(var_r30[1].unk_54[var_r31 / 3], 1); + Hu3DModelLayerSet(var_r30[1].unk_68[var_r31 / 3], 1); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30[var_r31].unk_C0 = fn_1_70AC(object, var_r31, 8); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + Hu3DModelKill(sp20[var_r31]); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + Hu3DModelKill(sp50[var_r31]); + if (sp40[var_r31] >= 0) { + Hu3DModelKill(sp40[var_r31]); + } + if (sp30[var_r31] >= 0) { + Hu3DModelKill(sp30[var_r31]); + } + } + for (var_r31 = 0; var_r31 < 1; var_r31++) { + Hu3DModelKill(sp8[var_r31]); + } + for (var_r30 = work, var_r31 = 0; var_r31 < 2; var_r31++, var_r30++) { + Hu3DModelCameraSet(var_r30->unk_18, sp18[var_r31]); + Hu3DModelCameraSet(var_r30->unk_1A, sp18[var_r31]); + Hu3DModelCameraSet(var_r30->unk_10, sp18[var_r31]); + Hu3DModelCameraSet(var_r30->unk_14, sp18[var_r31]); + for (var_r28 = 0; var_r28 < 0xC; var_r28++) { + Hu3DModelCameraSet(var_r30->unk_24[var_r28], sp18[var_r31]); + } + for (var_r28 = 0; var_r28 < 6; var_r28++) { + Hu3DModelCameraSet(var_r30->unk_80[var_r28], sp18[var_r31]); + Hu3DModelAttrSet(var_r30->unk_80[var_r28], HU3D_ATTR_DISPOFF); + if (var_r30->unk_8C[var_r28] >= 0) { + Hu3DModelCameraSet(var_r30->unk_8C[var_r28], sp18[var_r31]); + Hu3DModelAttrSet(var_r30->unk_8C[var_r28], HU3D_ATTR_DISPOFF); + } + if (var_r30->unk_98[var_r28] >= 0) { + Hu3DModelCameraSet(var_r30->unk_98[var_r28], sp18[var_r31]); + Hu3DModelAttrSet(var_r30->unk_98[var_r28], HU3D_ATTR_DISPOFF); + } + } + for (var_r28 = 0; var_r28 < 0xA; var_r28++) { + Hu3DModelCameraSet(var_r30->unk_40[var_r28], sp18[var_r31]); + Hu3DModelCameraSet(var_r30->unk_54[var_r28], sp18[var_r31]); + Hu3DModelCameraSet(var_r30->unk_68[var_r28], sp18[var_r31]); + Hu3DModelAttrSet(var_r30->unk_40[var_r28], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r30->unk_54[var_r28], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r30->unk_68[var_r28], HU3D_ATTR_DISPOFF); + } + } + Hu3DModelCameraSet(object->model[2], sp18[0]); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelCameraSet(object->model[3], sp18[0]); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); + object->func = fn_1_5DF8; +} + +void fn_1_5DF8(omObjData *object) +{ + M430DllWork *var_r31; + s32 var_r29; + M430DllWork *work; + + work = object->data; + if ((fn_1_4070() >= 2) && (fn_1_4030() != 0)) { + var_r31 = work; + if ((lbl_1_bss_44 == 0) && (fn_1_4130() < 5.0f)) { + lbl_1_bss_4C = var_r31[0].unk_04.x; + if (lbl_1_bss_4C > var_r31[1].unk_04.x) { + lbl_1_bss_4C = var_r31[1].unk_04.x; + } + lbl_1_bss_44 = 1; + } + if ((lbl_1_bss_40 == 0) && (fn_1_4130() < 1.8f)) { + lbl_1_bss_48 = var_r31[0].unk_04.x; + if (lbl_1_bss_48 > var_r31[1].unk_04.x) { + lbl_1_bss_48 = var_r31[1].unk_04.x; + } + lbl_1_bss_40 = 1; + } + } + for (var_r31 = work, var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) { + var_r31->unk_04.z = var_r31->unk_04.x; + var_r31->unk_04.x = var_r31->unk_04.y; + fn_1_6180(var_r31); + fn_1_6540(var_r31); + fn_1_6DC8(var_r31); + fn_1_6754(var_r31); + fn_1_732C(object, var_r31->unk_C0); + fn_1_76D8(object, var_r31->unk_C0); + if (var_r29 != 0) { + if (fn_1_4030() != 0) { + Hu3DModelCameraSet(var_r31->unk_10, 2); + Hu3DModelCameraSet(var_r31->unk_14, 2); + } + else { + Hu3DModelCameraSet(var_r31->unk_10, 1); + Hu3DModelCameraSet(var_r31->unk_14, 1); + } + } + } + if (lbl_1_bss_5C != 0) { + Vec sp20 = { 0.0f, 3000.0f, 0.0f }; + Vec sp14 = { 0.0f, 0.0f, 0.0f }; + Vec sp8 = { 0.0f, 1.0f, 0.0f }; + + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelShadowMapSet(object->model[2]); + Hu3DModelPosSet(object->model[2], 0.0f, 0.0f, fn_1_7FBC(0) - 400.0f); + Hu3DModelAttrReset(object->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(object->model[3], 0.0f, 0.0f, fn_1_7FBC(0) - 400.0f); + sp20.z = sp14.z = fn_1_7FBC(0) - 400.0f; + sp20.z += 100.0f; + Hu3DShadowPosSet(&sp20, &sp8, &sp14); + return; + } + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); +} + +void fn_1_6180(M430DllWork *work) +{ + Vec sp28; + Vec sp1C; + Vec sp10; + HsfanimStruct01 *var_r30; + s32 var_r29; + + float sp8[2] = { -450.0f, 450.0f }; + sp1C.x = CenterM[work->unk_00].x; + sp1C.y = CenterM[work->unk_00].y + (CZoomM[work->unk_00] * sind(-CRotM[work->unk_00].x)); + sp1C.z = CenterM[work->unk_00].z + (CZoomM[work->unk_00] * cosd(-CRotM[work->unk_00].x)); + sp28.x = sp1C.x; + sp28.y = 0.0f; + sp28.z = sp1C.z - 450000.0f; + PSVECSubtract(&sp28, &sp1C, &sp10); + PSVECNormalize(&sp10, &sp10); + PSVECScale(&sp10, &sp10, 6000.0f); + PSVECAdd(&sp1C, &sp10, &sp28); + Hu3DModelPosSetV(work->unk_18, &sp28); + if ((fn_1_4070() >= 2) && (fn_1_4030() != 0)) { + if ((lbl_1_bss_40 != 0) && (lbl_1_bss_48 >= work->unk_04.x)) { + if (work->unk_20 > 0.0f) { + work->unk_20 = fn_1_7FBC(work->unk_00) - 23000.0f; + } + sp28.x = 0.0f; + sp28.y = 0.0f; + sp28.z = work->unk_20 - fn_1_7FBC(work->unk_00); + PSVECSubtract(&sp28, &sp1C, &sp10); + PSVECNormalize(&sp10, &sp10); + PSVECScale(&sp10, &sp10, 5000.0f); + PSVECAdd(&sp1C, &sp10, &sp28); + sp28.y += 237.5f; + Hu3DModelPosSet(work->unk_1A, 0.0f, 593.75f, work->unk_20); + var_r30 = ((ParticleData *)Hu3DData[work->unk_1A].unk_120)->unk_48; + var_r30->unk34.x = var_r30->unk34.y = var_r30->unk34.z = 0.0f; + var_r30->unk2C = 2000.0f; + var_r29 = var_r30->unk40.a; + var_r29 += 2; + if (var_r29 > 0xFF) { + var_r29 = 0xFF; + } + var_r30->unk40.a = var_r29; + } + } + else { + var_r30 = ((ParticleData *)Hu3DData[work->unk_1A].unk_120)->unk_48; + var_r30->unk2C = 0.0f; + var_r30->unk40.a = 0; + } + DCStoreRange(var_r30, sizeof(HsfanimStruct01)); +} + +void fn_1_6540(M430DllWork *work) +{ + float var_f31; + float var_f30; + float var_f29; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = 1; + var_f29 = work->unk_04.x; + work->unk_3C = (s32)(fabs2(var_f29) / 1000.0) % 12; + var_r30 = work->unk_3C; + var_f31 = 1000.0f * (s32)(work->unk_04.x / 1000.0f); + var_f30 = 4000.0f; + for (var_r29 = 0; var_r29 < 0xC; var_r29++) { + if (var_r28 != 0) { + Hu3DModelAttrReset(work->unk_24[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(work->unk_24[var_r30], 0.0f, 0.0f, var_f31); + var_f31 -= 1000.0f; + var_f30 -= 1000.0f; + if (var_f30 < 0.0f) { + var_r28 = 0; + } + } + else { + Hu3DModelAttrSet(work->unk_24[var_r30], HU3D_ATTR_DISPOFF); + } + var_r30 = (var_r30 + 1) % 12; + } +} + +void fn_1_6754(M430DllWork *work) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + s32 var_r30; + HsfanimStruct01 *var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + + var_r27 = 1; + { + float sp20[6] = { -1800.0f, 2000.0f, -1800.0f, 2000.0f, -1800.0f, 2000.0f }; + Vec2f sp38[6] = { + { -130.0f, 500.0f }, + { 180.0f, 70.0f }, + { 100.0f, 50.0f }, + { -30.000002f, 500.0f }, + { 100.0f, 50.0f }, + { 180.0f, 70.0f }, + }; + float sp8[6] = { 2750.0f, 1550.0f, 1450.0f, 2750.0f, 1450.0f, 1550.0f }; + if (lbl_1_bss_5C != 0) { + var_r27 = 0; + } + if ((fn_1_4070() == 0) || (fn_1_4030() == 0) || (lbl_1_bss_44 == 0) || !(lbl_1_bss_4C > work->unk_04.x)) { + for (var_r28 = 0; var_r28 < 6; var_r28++) { + work->unk_A4[var_r28] = 1; + } + } + var_f26 = work->unk_04.x; + work->unk_BC = (s32)(fabs2(var_f26) / 5000.0) % 6; + var_r30 = work->unk_BC; + var_f31 = 1000.0f + (5000.0f * (s32)(work->unk_04.x / 5000.0f)); + var_f28 = (1000.0f + work->unk_04.x) - 9000.0f; + var_f27 = (1000.0f + work->unk_04.x) - 20000.0f; + for (var_r28 = 0; var_r28 < 6; var_r28++) { + var_r25 = var_r24 = var_r23 = 1; + if ((var_r27 != 0) && (work->unk_A4[var_r30] != 0)) { + if ((var_f31 > var_f28) || ((work->unk_98[var_r30] >= 0) && (var_f31 > var_f27))) { + if (var_f31 > var_f28) { + Hu3DModelAttrReset(work->unk_80[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(work->unk_80[var_r30], sp20[var_r30], 0.0f, var_f31); + if (work->unk_8C[var_r30] >= 0) { + Hu3DModelAttrReset(work->unk_8C[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(work->unk_8C[var_r30], sp20[var_r30], 0.0f, var_f31); + } + var_r25 = var_r24 = 0; + } + if ((work->unk_98[var_r30] >= 0) && (var_f31 > var_f27) && (var_f31 < (1000.0f + var_f28))) { + var_r26 = work->unk_98[var_r30]; + Hu3DModelAttrReset(var_r26, HU3D_ATTR_DISPOFF); + var_r29 = ((ParticleData *)Hu3DData[var_r26].unk_120)->unk_48; + Hu3DModelPosSet(work->unk_98[var_r30], sp20[var_r30] + sp38[var_r30].x, sp38[var_r30].y, var_f31); + var_r29->unk34.x = var_r29->unk34.y = var_r29->unk34.z = 0.0f; + var_r29->unk2C = sp8[var_r30]; + var_r29->unk40.a = -1; + var_f30 = fabs(var_f27 - var_f31); + var_f29 = 1000.0f - (var_f31 - var_f28); + if (var_f30 < 2000.0f) { + var_f30 *= 0.0005f; + var_r29->unk40.a = 255.0f * var_f30; + } + else if (var_f29 < 1000.0f) { + var_f29 *= 0.001f; + var_r29->unk40.a = 255.0f * var_f29; + } + DCStoreRange(var_r29, sizeof(HsfanimStruct01)); + var_r23 = 0; + } + } + } + else { + work->unk_A4[var_r30] = 0; + } + if (var_r25 != 0) { + Hu3DModelAttrSet(work->unk_80[var_r30], HU3D_ATTR_DISPOFF); + } + if ((var_r24 != 0) && (work->unk_8C[var_r30] >= 0)) { + Hu3DModelAttrSet(work->unk_8C[var_r30], HU3D_ATTR_DISPOFF); + } + if ((var_r23 != 0) && (work->unk_98[var_r30] >= 0)) { + Hu3DModelAttrSet(work->unk_98[var_r30], HU3D_ATTR_DISPOFF); + } + var_f31 -= 5000.0f; + if (var_f31 < var_f27) { + var_r27 = 0; + } + var_r30 = (var_r30 + 1) % 6; + } + } +} + +void fn_1_6DC8(M430DllWork *work) +{ + float var_f31; + float var_f30; + float var_f29; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = 1; + if (lbl_1_bss_5C != 0) { + var_r28 = 0; + } + var_f29 = work->unk_04.x; + work->unk_7C = (s32)(fabs2(var_f29) / 1000.0) % 10; + var_r30 = work->unk_7C; + var_f31 = 1000.0f + (1000.0f * (s32)(work->unk_04.x / 1000.0f)); + var_f30 = 8000.0f; + for (var_r29 = 0; var_r29 < 0xA; var_r29++) { + if (var_r28 != 0) { + Hu3DModelAttrReset(work->unk_40[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(work->unk_54[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(work->unk_68[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(work->unk_40[var_r30], -920.0f, 0.0f, var_f31); + Hu3DModelPosSet(work->unk_54[var_r30], 0.0f, 0.0f, var_f31); + Hu3DModelPosSet(work->unk_68[var_r30], 920.0f, 0.0f, var_f31); + var_f31 -= 1000.0f; + var_f30 -= 1000.0f; + if (var_f30 < 0.0f) { + var_r28 = 0; + } + } + else { + Hu3DModelAttrSet(work->unk_40[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(work->unk_54[var_r30], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(work->unk_68[var_r30], HU3D_ATTR_DISPOFF); + } + var_r30 = (var_r30 + 1) % 10; + } +} + +M430DllUnkStruct2 *fn_1_70AC(omObjData *arg0, s32 var_r27, s16 var_r28) +{ + float var_f31; + float var_f30; + float var_f29; + M430DllUnkStruct2 *var_r31; + s32 var_r30; + M430DllUnkStruct2 *var_r29; + + u32 sp10[2] = { 0x003D0011, 0x003D0012 }; + s32 sp8[2] = { 1, 2 }; + var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r28 * sizeof(M430DllUnkStruct2), MEMORY_DEFAULT_NUM); + memset(var_r29, 0, var_r28 * 0x3C); + var_f31 = -90.0f; + for (var_r31 = var_r29, var_r30 = 0; var_r30 < var_r28; var_r30++, var_r31++) { + var_r31->unk_00 = var_r27; + var_r31->unk_04 = Hu3DModelCreateFile(sp10[var_r30 & 1]); + Hu3DModelLayerSet(var_r31->unk_04, 1); + Hu3DModelCameraSet(var_r31->unk_04, sp8[var_r31->unk_00]); + var_f30 = frandmod(0x168); + var_f29 = frandmod(0x118); + var_r31->unk_0C.x = var_f29 * sind(var_f30) + fn_1_BB54(var_r27); + var_r31->unk_0C.y = var_f31; + var_r31->unk_0C.z = var_f29 * cosd(var_f30); + var_r31->unk_2C = frandmod(0x168); + var_r31->unk_34 = 1.0f; + var_r31->unk_38 = 0.0f; + var_f31 -= 10.0f; + var_r31->unk_0A = var_r28; + } + return var_r29; +} + +void fn_1_732C(omObjData *object, M430DllUnkStruct2 *arg1) +{ + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = arg1->unk_0A; + for (var_r30 = 0; var_r30 < var_r28; var_r30++, arg1++) { + var_r29 = 0; + if (arg1->unk_34 > arg1->unk_38) { + var_r29 = 1; + } + else { + PSVECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8); + var_f31 = PSVECMag(&sp8); + if (var_f31 < 50.0f) { + var_r29 = 1; + } + } + if (var_r29 != 0) { + var_f31 = frandmod(0x168); + var_f30 = 400.0f + frandmod(0x15E); + arg1->unk_18.x = var_f30 * sind(var_f31) + fn_1_BB54(arg1->unk_00); + arg1->unk_18.z = 2.0 * (var_f30 * cosd(var_f31)); + arg1->unk_18.y = arg1->unk_0C.y; + arg1->unk_34 = 0.0f; + arg1->unk_38 = 200.0f + frandmod(0x258); + arg1->unk_28 = 400.0f; + } + PSVECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8); + arg1->unk_30 = atan2d(sp8.x, sp8.z); + arg1->unk_2C = fn_1_48B0(arg1->unk_2C, arg1->unk_30, 0.08f); + arg1->unk_28 += 0.05f * (300.0f - arg1->unk_28); + arg1->unk_24 += 0.2f * (arg1->unk_28 - arg1->unk_24); + arg1->unk_0C.x = arg1->unk_0C.x + ((0.016666668f * arg1->unk_24) * sind(arg1->unk_2C)); + arg1->unk_0C.z = arg1->unk_0C.z + ((0.016666668f * arg1->unk_24) * cosd(arg1->unk_2C)); + arg1->unk_34 += 0.016666668f * arg1->unk_24; + } +} + +void fn_1_76D8(omObjData *object, M430DllUnkStruct2 *arg1) +{ + float var_f31; + s32 var_r30; + s32 var_r29; + + var_r29 = arg1->unk_0A; + if (lbl_1_bss_5C != 0) { + for (var_r30 = 0; var_r30 < var_r29; var_r30++, arg1++) { + Hu3DModelAttrSet(arg1->unk_04, HU3D_ATTR_DISPOFF); + } + return; + } + var_f31 = (s32)(0.00011111111f * (1000.0f + fn_1_7FBC(arg1->unk_00))); + var_f31 = (100.0f * (90.0f * var_f31)) - 5000.0f; + for (var_r30 = 0; var_r30 < var_r29; var_r30++, arg1++) { + Hu3DModelPosSet(arg1->unk_04, arg1->unk_0C.x, arg1->unk_0C.y, arg1->unk_0C.z + var_f31); + Hu3DModelRotSet(arg1->unk_04, 0.0f, arg1->unk_2C, 0.0f); + Hu3DModelAttrReset(arg1->unk_04, HU3D_ATTR_DISPOFF); + } +} + +void fn_1_7848(omObjData *object) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + M430DllWork2 *var_r31; + s16 var_r30; + s32 var_r29; + M430DllWork2 *work; + s32 var_r26; + + var_r30 = 0x20; + work = HuMemDirectMallocNum(HEAP_SYSTEM, var_r30 * sizeof(M430DllWork2), MEMORY_DEFAULT_NUM); + object->data = work; + memset(work, 0, var_r30 * sizeof(M430DllWork2)); + var_r26 = Hu3DModelCreateFile(0x3D0013); + var_f29 = 1000.0f; + for (var_r31 = work, var_r29 = 0; var_r29 < var_r30; var_r29++, var_r31++) { + var_r31->unk_00 = Hu3DModelLink(var_r26); + Hu3DModelLayerSet(var_r31->unk_00, 1); + Hu3DModelCameraSet(var_r31->unk_00, 1); + Hu3DModelAttrSet(var_r31->unk_00, HU3D_ATTR_DISPOFF); + var_r31->unk_14.x = (2.8f * frandmod(0x3E8)) - 1400.0f; + var_r31->unk_14.z = 0.7f * frandmod(0x3E8) - 350.0f; + var_r31->unk_14.y = 300.0f + (0.8f * frandmod(0x3E8)); + var_f30 = frandmod(0x168); + var_f31 = 200.0f + frandmod(0xAF); + var_r31->unk_08.x = var_f31 * sind(var_f30); + var_r31->unk_08.y = 0.0f; + var_r31->unk_08.z = var_f31 * cosd(var_f30); + PSVECAdd(&var_r31->unk_14, &var_r31->unk_08, &var_r31->unk_08); + var_r31->unk_38 = 60.0f - (0.13483146f * var_f31); + var_r31->unk_28 = frandmod(0x168); + if (frandmod(0x3E8) < 0x1F4) { + var_f28 = -70.0f + (0.1f * frandmod(0x32)); + } + else { + var_f28 = 70.0f - (0.1f * frandmod(0x32)); + } + var_r31->unk_3C = var_f28; + if (var_r31->unk_3C < 0.0f) { + var_r31->unk_38 = -var_r31->unk_38; + } + var_r31->unk_30 = 1.0f; + var_r31->unk_34 = 0.0f; + var_f29 -= 50.0f; + var_r31->unk_06 = var_r30; + } + (void)var_r29; + (void)object; + Hu3DModelKill(var_r26); + object->func = fn_1_7CAC; +} + +void fn_1_7CAC(omObjData *object) +{ + Vec spC; + s32 sp8; + s32 var_r29; + + M430DllWork2 *work = object->data; + s32 var_r28 = work->unk_06; + if (fn_1_4070() >= 4) { + for (var_r29 = 0; var_r29 < var_r28; var_r29++, work++) { + sp8 = 0; + PSVECSubtract(&work->unk_14, &work->unk_08, &spC); + work->unk_2C = atan2d(spC.x, spC.z); + work->unk_28 = fn_1_48B0(work->unk_28, work->unk_2C + work->unk_3C, 0.08f); + work->unk_24 += (0.05f * (600.0f - work->unk_24)); + work->unk_20 += (0.2f * (work->unk_24 - work->unk_20)); + work->unk_08.x += ((0.016666668f * work->unk_20) * sind(work->unk_28)); + work->unk_08.z += ((0.016666668f * work->unk_20) * cosd(work->unk_28)); + work->unk_30 += (0.016666668f * work->unk_20); + } + fn_1_7EAC(object, object->data); + } +} + +void fn_1_7EAC(omObjData *object, M430DllWork2 *var_r31) +{ + Mtx sp8; + float var_f31; + s32 var_r30; + Mtx *var_r29; + s32 var_r28; + + var_r28 = var_r31->unk_06; + var_f31 = fn_1_7FBC(0) - 2000.0f; + for (var_r30 = 0; var_r30 < var_r28; var_r30++, var_r31++) { + Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_08.x, var_r31->unk_08.y, var_r31->unk_08.z + var_f31); + var_r29 = &Hu3DData[var_r31->unk_00].unk_F0; + PSMTXRotRad(*var_r29, 0x59, 0.017453292f * var_r31->unk_28); + PSMTXRotRad(sp8, 0x5A, 0.017453292f * var_r31->unk_38); + PSMTXConcat(*var_r29, sp8, *var_r29); + Hu3DModelAttrReset(var_r31->unk_00, HU3D_ATTR_DISPOFF); + } +} + +float fn_1_7FBC(s32 arg0) +{ + M430DllWork *var_r31; + M430DllWork *var_r30; + + var_r30 = lbl_1_bss_58->data; + arg0 &= 1; + var_r31 = var_r30; + return var_r31[arg0].unk_04.x; +} + +void fn_1_7FFC(s32 arg0, float arg8) +{ + M430DllWork *var_r31; + M430DllWork *var_r30; + + var_r30 = lbl_1_bss_58->data; + arg0 &= 1; + var_r31 = var_r30; + var_r31[arg0].unk_04.y = arg8; +} + +void fn_1_803C(omObjData *var_r31) +{ + var_r31->stat |= 0x100; + omSetStatBit(var_r31, 0xA0); + var_r31->model[0] = Hu3DHookFuncCreate(fn_1_8CE0); + Hu3DModelLayerSet(var_r31->model[0], 4); + Hu3DModelCameraSet(var_r31->model[0], 1); + var_r31->model[1] = Hu3DHookFuncCreate(fn_1_8CE0); + Hu3DModelLayerSet(var_r31->model[1], 4); + Hu3DModelCameraSet(var_r31->model[1], 2); + var_r31->model[2] = Hu3DHookFuncCreate(fn_1_9C90); + Hu3DModelLayerSet(var_r31->model[2], 0); + Hu3DModelCameraSet(var_r31->model[2], 1); + var_r31->model[3] = Hu3DHookFuncCreate(fn_1_9C90); + Hu3DModelLayerSet(var_r31->model[3], 0); + Hu3DModelCameraSet(var_r31->model[3], 2); + var_r31->model[4] = Hu3DHookFuncCreate(fn_1_A3A8); + Hu3DModelLayerSet(var_r31->model[4], 1); + Hu3DModelCameraSet(var_r31->model[4], 3); + var_r31->model[5] = Hu3DHookFuncCreate(fn_1_AB98); + Hu3DModelLayerSet(var_r31->model[5], 3); + Hu3DModelCameraSet(var_r31->model[5], 3); + var_r31->model[6] = Hu3DHookFuncCreate(fn_1_AC84); + Hu3DModelLayerSet(var_r31->model[6], 7); + Hu3DModelCameraSet(var_r31->model[6], 3); + lbl_1_bss_60->unk_00 = 0; + lbl_1_bss_60->unk_04 = var_r31->model[0]; + fn_1_82F4(var_r31, lbl_1_bss_60); + lbl_1_bss_60[1].unk_00 = 1; + lbl_1_bss_60[1].unk_04 = var_r31->model[1]; + fn_1_82F4(var_r31, &lbl_1_bss_60[1]); + var_r31->func = fn_1_8264; +} + +void fn_1_8264(omObjData *object) +{ + lbl_1_bss_60[0].unk_08 = lbl_1_bss_60[1].unk_08 = 0; + lbl_1_bss_60[0].unk_0C = lbl_1_bss_60[1].unk_0C = 0; + lbl_1_bss_60[0].unk_10 = lbl_1_bss_60[1].unk_10 = 0; + lbl_1_bss_60[0].unk_14 = lbl_1_bss_60[1].unk_14 = 0; + lbl_1_bss_60[0].unk_18 = lbl_1_bss_60[1].unk_18 = 0; +} + +void fn_1_82F4(omObjData *object, M430DllBss60Struct *var_r31) +{ + float var_f31; + float var_f30; + s32 var_r30; + Vec *var_r29; + GXColor *var_r28; + s32 var_r27; + + s32 sp8[8] = { 0, 0x16, 1, 0x17, 1, 0, 0x17, 0x16 }; + + var_r31->unk_2C = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1B8 * sizeof(Vec), MEMORY_DEFAULT_NUM); + var_r31->unk_30 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1B8 * sizeof(Vec), MEMORY_DEFAULT_NUM); + var_r31->unk_34 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x14A0, MEMORY_DEFAULT_NUM); + var_r31->unk_38 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x6E0, MEMORY_DEFAULT_NUM); + var_r31->unk_40 = 0; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r31->unk_44[var_r30] = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1B8 * sizeof(Vec), MEMORY_DEFAULT_NUM); + var_r31->unk_54[var_r30] = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1B8 * sizeof(GXColor), MEMORY_DEFAULT_NUM); + } + var_r31->unk_5C = 0x12D0; + var_r31->unk_60 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_5C, MEMORY_DEFAULT_NUM); + DCFlushRange(var_r31->unk_60, var_r31->unk_5C); + var_r31->unk_64 = 0; + var_r31->unk_68 = GXGetTexBufferSize(0x140, 0x1E0, 5, 0, 0); + if (var_r31->unk_00 == 0) { + var_r31->unk_68 *= 2; + } + var_r31->unk_6C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_68, MEMORY_DEFAULT_NUM); + DCFlushRange(var_r31->unk_6C, var_r31->unk_68); + var_r31->unk_1C = 0; + var_r31->unk_20 = 0; + var_r31->unk_24 = 0.0f; + var_r31->unk_28 = 0.0f; + var_r29 = var_r31->unk_2C; + var_f31 = 0.0f; + var_f30 = -2000.0f; + for (var_r30 = 0; var_r30 < 0x14; var_r30++) { + var_f31 = 65.47619f - var_f31; + for (var_r27 = 0; var_r27 < 0x16; var_r27++) { + var_r29->x = ((130.95238f * var_r27) - 1375.0f) + var_f31; + var_r29->y = 0.0f; + var_r29->z = var_f30; + var_r29++; + } + var_f30 += 210.52632f; + } + memset(var_r31->unk_30, 0, 0x1B8 * sizeof(Vec)); + for (var_r29 = var_r31->unk_30, var_r30 = 0; var_r30 < 0x1B8; var_r30++, var_r29++) { + var_r29->y = (0.05f * frandmod(0x3E8)) - 20.0f; + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + memcpy(var_r31->unk_44[var_r30], var_r31->unk_2C, 0x1B8 * sizeof(Vec)); + for (var_r28 = var_r31->unk_54[var_r30], var_r27 = 0; var_r27 < 0x1B8; var_r27++, var_r28++) { + var_r28->r = 0x32; + var_r28->g = 0x8C; + var_r28->b = 0xB4; + var_r28->a = 0; + } + } + fn_1_86B4(object, var_r31); + fn_1_8B5C(object, var_r31); +} + +void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1) +{ + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + GXColor *var_r30; + s32 var_r29; + Vec *var_r28; + Vec *var_r27; + Vec *var_r26; + u32 var_r25; + s32 var_r24; + s32 var_r23; + M430DllWork *var_r22; + M430DllWork *var_r21; + + if (omPauseChk() == 0) { + arg1->unk_1C++; + } + arg1->unk_40 = 1 - arg1->unk_40; + var_r25 = arg1->unk_00; + var_r21 = lbl_1_bss_58->data; + var_r25 &= 1; + var_r22 = var_r21; + var_f29 = var_r22[var_r25].unk_04.x; + var_f28 = var_f29; + var_f30 = var_f28; + var_r24 = 0.002375f * var_f30; + arg1->unk_28 = 421.05264f * var_r24; + arg1->unk_24 = var_f30 - arg1->unk_28; + arg1->unk_20 = (var_r24 * 2) % 20; + var_r23 = (arg1->unk_20 + 0x14) % 20; + Hu3DModelPosSet(arg1->unk_04, fn_1_BB54(arg1->unk_00), 0.0f, arg1->unk_28 - 500.0f); + var_r28 = arg1->unk_2C; + var_r30 = arg1->unk_54[arg1->unk_40]; + sp14.x = 0.0f; + sp14.y = 0.0f; + sp14.z = 2000.0f + arg1->unk_24; + if (lbl_1_bss_5C != 0) { + for (var_r29 = 0; var_r29 < 0x1B8; var_r29++) { + PSVECSubtract(var_r28, &sp14, &sp8); + var_f31 = 0.00025f * PSVECMag(&sp8); + if (var_f31 < 0.3f) { + var_r30->a = -1; + } + else if (var_f31 > 0.75f) { + var_r30->a = 0; + } + else { + var_f31 = 255.0f - (566.6667f * (var_f31 - 0.3f)); + var_r30->a = var_f31; + } + var_r28++; + var_r30++; + } + } + else { + for (var_r29 = 0; var_r29 < 0x1B8; var_r29++) { + PSVECSubtract(var_r28, &sp14, &sp8); + var_f31 = 0.00025f * PSVECMag(&sp8); + if (var_f31 < 0.25f) { + var_r30->a = -0x1A; + } + else if (var_f31 > 0.85f) { + var_r30->a = 0; + } + else { + var_f31 = 230.0f - (383.3333f * (var_f31 - 0.25f)); + var_r30->a = var_f31; + } + var_r28++; + var_r30++; + } + } + if (lbl_1_bss_5C != 0) { + memcpy(arg1->unk_44[arg1->unk_40], arg1->unk_2C, 0x1B8 * sizeof(Vec)); + } + else { + var_r28 = arg1->unk_2C; + var_r26 = arg1->unk_44[arg1->unk_40]; + var_r29 = (0x14 - var_r23) * 0x16; + var_r27 = &arg1->unk_30[0x1B8 - var_r29]; + while (var_r29-- != 0) { + PSVECAdd(var_r28, var_r27, var_r26); + var_r28++; + var_r27++; + var_r26++; + } + var_r29 = var_r23 * 0x16; + var_r27 = arg1->unk_30; + while (var_r29-- != 0) { + PSVECAdd(var_r28, var_r27, var_r26); + var_r28++; + var_r27++; + var_r26++; + } + memcpy(arg1->unk_44[arg1->unk_40], arg1->unk_2C, 0x16 * sizeof(Vec)); + } + DCStoreRangeNoSync(arg1->unk_44[arg1->unk_40], 0x1B8 * sizeof(Vec)); + DCStoreRangeNoSync(arg1->unk_54[arg1->unk_40], 0x1B8 * sizeof(GXColor)); + PPCSync(); +} + +void fn_1_8B5C(omObjData *object, M430DllBss60Struct *var_r30) +{ + s32 var_r31; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + s32 sp28[5] = { 0, 0, 0, 1, 1 }; + s32 sp18[4] = { 1, 0, 0, 0 }; + s32 sp8[4] = { 0, 0, 1, 2 }; + GXBeginDisplayList(var_r30->unk_60, var_r30->unk_5C); + var_r26 = 0; + var_r31 = 0; + for (var_r29 = 0; var_r29 < 0x13; var_r29++) { + var_r24 = 0x2B - (((var_r26 * 2) + sp8[var_r31]) * 2); + var_r27 = sp18[var_r31]; + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, var_r24); + for (var_r28 = 0; var_r28 < var_r24; var_r28++) { + var_r25 = (var_r28 >> 1) + ((var_r29 + var_r27) * 0x16) + (var_r26 + sp28[var_r31 + var_r27]); + GXUnknownu16(var_r25); + GXUnknownu16(var_r25); + var_r27 = 1 - var_r27; + } + var_r31++; + if (var_r31 >= 4) { + var_r31 = 0; + var_r26++; + } + } + var_r30->unk_64 = GXEndDisplayList(); +} + +void fn_1_8CE0(ModelData *model, Mtx matrix) +{ + Mtx sp194; + Mtx sp164; + Mtx sp134; + Mtx sp104; + Mtx spD4; + Mtx spA4; + Mtx sp74; + Mtx sp44; + GXTexObj sp24; + float var_f31; + float var_f30; + M430DllBss60Struct *var_r31; + + GXColor sp20 = { 0xFF, 0xFF, 0xFF, 0xFF }; + GXColor sp1C = { 0x08, 0x08, 0x08, 0xFF }; + GXColor sp18 = { 0x00, 0x00, 0x00, 0x80 }; + GXColor sp14 = { 0xCC, 0xBF, 0xB2, 0x33 }; + GXColor sp10 = { 0xE0, 0xD8, 0xF4, 0x08 }; + var_r31 = lbl_1_bss_60; + if (var_r31->unk_10 != 0) { + var_r31 = &var_r31[1]; + } + var_r31->unk_10 = 1; + fn_1_963C(model, matrix, var_r31->unk_00); + PSMTXCopy(matrix, sp134); + if (fn_1_4030() != 0) { + var_f30 = 1.0f; + var_f31 = fn_1_BB54(var_r31->unk_00); + } + else { + var_f30 = 1.5f; + var_f31 = 0.0f; + } + PSMTXTrans(sp164, var_f31 - fn_1_BB54(var_r31->unk_00), 0.0f, 0.0f); + PSMTXConcat(sp134, sp164, sp134); + PSMTXScale(sp194, var_f30, 1.0f, 1.0f); + PSMTXConcat(sp134, sp194, sp134); + GXLoadPosMtxImm(sp134, 0); + PSMTXInvXpose(sp134, sp194); + GXLoadNrmMtxImm(sp194, 0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + if ((fn_1_4030() == 0) && (var_r31->unk_00 == 0)) { + GXInitTexObj(&sp24, var_r31->unk_6C, 0x280, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0); + } + else { + GXInitTexObj(&sp24, var_r31->unk_6C, 0x140, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0); + } + GXInitTexObjLOD(&sp24, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXLoadTexObj(&sp24, GX_TEXMAP0); + HuSprTexLoad(lbl_1_bss_150, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + HuSprTexLoad(lbl_1_bss_148, 0, 2, GX_CLAMP, GX_CLAMP, GX_LINEAR); + GXSetNumTexGens(3); + if (fn_1_4030() != 0) { + C_MTXLightPerspective(sp104, 41.5f, 0.6f, 0.5f, -0.5f, 0.5f, 0.5f); + } + else { + C_MTXLightPerspective(sp104, 41.5f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + } + PSMTXInverse(Hu3DCameraMtx, spD4); + PSMTXConcat(spD4, sp134, spD4); + PSMTXConcat(sp104, Hu3DCameraMtx, spA4); + PSMTXConcat(spA4, spD4, spD4); + GXLoadTexMtxImm(spD4, 0x1E, GX_MTX3x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); + C_MTXLightPerspective(sp104, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f); + PSMTXInverse(Hu3DCameraMtx, sp74); + PSMTXConcat(sp74, sp134, sp74); + PSMTXConcat(sp104, Hu3DCameraMtx, sp44); + PSMTXConcat(sp44, sp74, sp74); + GXLoadTexMtxImm(sp74, 0x24, GX_MTX3x4); + GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX3x4, GX_TG_POS, 0x24, GX_FALSE, 0x7D); + PSMTXRotRad(sp164, 0x58, 1.5707964f); + var_f31 = 0.00075f * var_f30; + PSMTXScale(sp194, var_f31, -0.003f, 0.00075f); + PSMTXConcat(sp164, sp194, sp164); + PSMTXTrans(sp194, (var_r31->unk_1C & 0x3FF) / (1024.0f * var_f31), 0.0f, (0.7f * var_r31->unk_28) - (0.3f * var_r31->unk_24)); + PSMTXConcat(sp164, sp194, sp164); + sp164[0][1] = -0.001f; + GXLoadTexMtxImm(sp164, 0x21, GX_MTX2x4); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); + GXSetNumIndStages(2); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1); + GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); + GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 1); + PSMTXScale(sp164, -0.25f, -0.5f, 0.5f); + GXSetIndTexMtx(GX_ITM_0, (float(*)[3])sp164, -4); + GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD1, GX_TEXMAP1); + GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); + GXSetTevIndWarp(1, 1, GX_TRUE, GX_FALSE, 2); + PSMTXScale(sp164, 0.4f, 0.5f, 0.5f); + GXSetIndTexMtx(GX_ITM_1, (float(*)[3])sp164, -1); + GXSetNumTevStages(2); + GXSetTevColor(GX_TEVREG0, sp14); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_RASC, GX_CC_TEXC, GX_CC_RASA, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_A0, GX_CA_ZERO, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD2, GX_TEXMAP2, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A0, GX_CC_CPREV); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetBlendMode(GX_BM_NONE, GX_BL_ONE, GX_BL_ZERO, GX_LO_SET); + GXSetZMode(1, GX_LEQUAL, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_POS, var_r31->unk_44[var_r31->unk_40], sizeof(Vec)); + GXSetArray(GX_VA_CLR0, var_r31->unk_54[var_r31->unk_40], sizeof(GXColor)); + GXSetCullMode(GX_CULL_NONE); + GXCallDisplayList(var_r31->unk_60, var_r31->unk_64); + GXSetCullMode(GX_CULL_BACK); + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); + GXSetTevDirect(GX_TEVSTAGE1); +} + +Vec lbl_1_data_60[6] = { + { -2750.0f, 0.0f, -2500.0f }, + { 2750.0f, 0.0f, -2500.0f }, + { -2750.0f, 0.0f, 0.0f }, + { 2750.0f, 0.0f, 0.0f }, + { -1375.0f, 0.0f, 2500.0f }, + { 1375.0f, 0.0f, 2500.0f }, +}; +GXColor lbl_1_data_A8[6] = { + { 5, 0x38, 0xA2, 0 }, + { 5, 0x38, 0xA2, 0xFF }, + { 0x14, 0x54, 0xAB, 0xFF }, + { 0x1E, 0x6D, 0xB0, 0xFF }, + { 0x2A, 0x7E, 0xB4, 0xFF }, + { 0x32, 0x8C, 0xB4, 0xFF }, +}; + +void fn_1_963C(ModelData *model, Mtx matrix, u32 var_r31) +{ + Mtx sp100; + Mtx spD0; + Mtx spA0; + Mtx sp70; + Mtx sp40; + Mtx sp10; + float var_f31; + float var_f30; + + GXColor spC = { 0x32, 0x8C, 0xB4, 0x33 }; + if (fn_1_4030() != 0) { + var_f30 = 1.0f; + var_f31 = fn_1_BB54(var_r31); + } + else { + var_f30 = 1.5f; + var_f31 = 0.0f; + } + PSMTXTrans(spD0, var_f31, 0.0f, ((lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24) - 2500.0f) - 2000.0f); + PSMTXScale(sp100, var_f30, 1.0f, 1.0f); + PSMTXConcat(spD0, sp100, spD0); + PSMTXConcat(Hu3DCameraMtx, spD0, spA0); + GXLoadPosMtxImm(spA0, 0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + HuSprTexLoad(lbl_1_bss_14C, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + HuSprTexLoad(lbl_1_bss_148, 0, 1, GX_CLAMP, GX_CLAMP, GX_LINEAR); + GXSetNumTexGens(2); + C_MTXLightPerspective(sp70, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f); + PSMTXInverse(Hu3DCameraMtx, sp40); + PSMTXConcat(sp40, spA0, sp40); + PSMTXConcat(sp70, Hu3DCameraMtx, sp10); + PSMTXConcat(sp10, sp40, sp40); + GXLoadTexMtxImm(sp40, 0x21, GX_MTX3x4); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); + PSMTXRotRad(spD0, 0x58, 1.5707964f); + var_f31 = 0.00075f * var_f30; + PSMTXScale(sp100, var_f31, -0.003f, 0.00075f); + PSMTXConcat(spD0, sp100, spD0); + PSMTXTrans(sp100, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f31), 0.0f, + 0.3f * (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24)); + PSMTXConcat(spD0, sp100, spD0); + GXLoadTexMtxImm(spD0, 0x1E, GX_MTX2x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); + GXSetNumIndStages(1); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0); + GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); + GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 1); + PSMTXScale(spD0, 0.5f, 0.6f, 0.6f); + GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spD0, -1); + GXSetNumTevStages(1); + GXSetTevColor(GX_TEVREG0, spC); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A0, GX_CC_RASC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_RASA); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetBlendMode(GX_BM_NONE, GX_BL_ONE, GX_BL_ZERO, GX_LO_SET); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_POS, lbl_1_data_60, sizeof(Vec)); + GXSetArray(GX_VA_CLR0, lbl_1_data_A8, sizeof(GXColor)); + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6); + GXPosition1x8(0); + GXColor1x8(3); + GXPosition1x8(1); + GXColor1x8(3); + GXPosition1x8(2); + GXColor1x8(4); + GXPosition1x8(3); + GXColor1x8(4); + GXPosition1x8(4); + GXColor1x8(5); + GXPosition1x8(5); + GXColor1x8(5); + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); +} + +Vec lbl_1_data_C0[8] = { + { -2750.0f, 20.0f, 0.0f }, + { 2750.0f, 20.0f, 0.0f }, + { -2750.0f, -20.0f, 0.0f }, + { 2750.0f, -20.0f, 0.0f }, + { -2750.0f, -160.0f, 0.0f }, + { 2750.0f, -160.0f, 0.0f }, + { -2750.0f, -340.0f, 0.0f }, + { 2750.0f, -340.0f, 0.0f }, +}; +Vec lbl_1_data_120[6] = { + { -700.0f, 0.0f, -1750.0f }, + { 700.0f, 0.0f, -1750.0f }, + { -700.0f, 0.0f, -1400.0f }, + { 700.0f, 0.0f, -1400.0f }, + { -700.0f, 0.0f, 700.0f }, + { 700.0f, 0.0f, 700.0f }, +}; + +void fn_1_9C90(ModelData *model, Mtx matrix) +{ + Mtx sp124; + Mtx spF4; + Mtx spC4; + Mtx sp94; + Mtx sp64; + Mtx sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r30; + + GXColor spC = { 0x32, 0x8C, 0xB4, 0x33 }; + var_r31 = 0; + if (lbl_1_bss_60[var_r31].unk_14 != 0) { + var_r31++; + } + lbl_1_bss_60[var_r31].unk_14 = 1; + sp1C.x = CenterM[var_r31].x; + sp1C.y = CenterM[var_r31].y + (CZoomM[var_r31] * sind(-CRotM[var_r31].x)); + sp1C.z = CenterM[var_r31].z + (CZoomM[var_r31] * cosd(-CRotM[var_r31].x)); + sp28.x = sp1C.x; + sp28.y = 0.0f; + sp28.z = sp1C.z - 450000.0f; + PSVECSubtract(&sp28, &sp1C, &sp10); + PSVECNormalize(&sp10, &sp10); + PSVECScale(&sp10, &sp10, 8000.0f); + PSVECAdd(&sp1C, &sp10, &sp28); + PSMTXTrans(spF4, sp28.x, sp28.y, sp28.z); + var_f31 = 1.0f; + if (fn_1_4030() == 0) { + var_f31 = 1.5f; + PSMTXScale(sp124, var_f31, 1.0f, 1.0f); + PSMTXConcat(spF4, sp124, spF4); + } + PSMTXConcat(Hu3DCameraMtx, spF4, spC4); + GXLoadPosMtxImm(spC4, 0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + HuSprTexLoad(lbl_1_bss_14C, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + HuSprTexLoad(lbl_1_bss_148, 0, 1, GX_CLAMP, GX_CLAMP, GX_LINEAR); + GXSetNumTexGens(2); + C_MTXLightPerspective(sp94, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f); + PSMTXInverse(Hu3DCameraMtx, sp64); + PSMTXConcat(sp64, spC4, sp64); + PSMTXConcat(sp94, Hu3DCameraMtx, sp34); + PSMTXConcat(sp34, sp64, sp64); + GXLoadTexMtxImm(sp64, 0x21, GX_MTX3x4); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); + var_f30 = 0.00075f * var_f31; + PSMTXScale(spF4, var_f30, -0.005f, 0.00075f); + PSMTXTrans(sp124, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f30), + 0.03f * -(lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24), 0.0f); + PSMTXConcat(spF4, sp124, spF4); + GXLoadTexMtxImm(spF4, 0x1E, GX_MTX2x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); + GXSetNumIndStages(1); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0); + GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); + GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 1); + PSMTXScale(spF4, 0.5f, 0.6f, 0.6f); + GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spF4, -1); + GXSetNumTevStages(1); + GXSetTevColor(GX_TEVREG0, spC); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A0, GX_CC_RASC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_RASA); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_SET); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_POS, lbl_1_data_C0, 0xC); + GXSetArray(GX_VA_CLR0, lbl_1_data_A8, 4); + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 8); + for (var_r30 = 0; var_r30 < 8; var_r30++) { + GXPosition1x8(var_r30); + GXColor1x8(var_r30 >> 1); + } + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); +} + +GXColor lbl_1_data_168[2] = { { 0xFF, 0xFF, 0xFF, 0 }, { 0xFF, 0xFF, 0xFF, 0xFF } }; + +void fn_1_A3A8(ModelData *model, Mtx matrix) +{ + Mtx sp48; + Mtx sp18; + float var_f31; + float var_f30; + u8 *var_r30; + u8 *var_r29; + + GXColor sp14 = { 0xFF, 0xA5, 0x59, 0xB2 }; + GXColor sp10 = { 0x99, 0x72, 0x59, 0xB2 }; + s32 var_r31 = 0; + if (lbl_1_bss_60[var_r31].unk_0C != 0) { + var_r31++; + } + lbl_1_bss_60[var_r31].unk_0C = 1; + if (fn_1_4030() != 0) { + var_f30 = 1.0f; + var_f31 = fn_1_BB54(var_r31); + } + else { + var_f30 = 1.5f; + var_f31 = 0.0f; + } + if (lbl_1_bss_5C != 0) { + PSMTXTrans(sp18, var_f31, 0.0f, 300.0f + (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24)); + GXSetTevColor(GX_TEVREG0, sp10); + } + else { + PSMTXTrans(sp18, var_f31, -150.0f, lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24); + GXSetTevColor(GX_TEVREG0, sp14); + } + PSMTXScale(sp48, var_f30, 1.0f, 1.0f); + PSMTXConcat(sp18, sp48, sp18); + PSMTXConcat(Hu3DCameraMtx, sp18, sp18); + GXLoadPosMtxImm(sp18, 0); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + HuSprTexLoad(lbl_1_bss_144, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + HuSprTexLoad(lbl_1_bss_140, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetNumTexGens(2); + PSMTXRotRad(sp18, 0x58, 1.5707964f); + var_f31 = 0.004f * var_f30; + PSMTXScale(sp48, var_f31, -0.004f, 0.004f); + PSMTXConcat(sp18, sp48, sp18); + PSMTXTrans(sp48, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (512.0f * var_f31), 0.0f, + (1.2499999f * (lbl_1_bss_60[var_r31].unk_1C % 400)) + (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24)); + PSMTXConcat(sp18, sp48, sp18); + GXLoadTexMtxImm(sp18, 0x1E, GX_MTX2x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); + PSMTXRotRad(sp18, 0x58, 1.5707964f); + var_f31 = 0.004f * var_f30; + PSMTXScale(sp48, var_f31, -0.004f, 0.004f); + PSMTXConcat(sp18, sp48, sp18); + PSMTXTrans(sp48, (lbl_1_bss_60[var_r31].unk_1C % 300) / (150.0f * var_f31), 0.0f, lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24); + PSMTXConcat(sp18, sp48, sp18); + GXLoadTexMtxImm(sp18, 0x21, GX_MTX2x4); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); + GXSetNumTevStages(2); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_CPREV); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_SET); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_POS, lbl_1_data_120, 0xC); + GXSetArray(GX_VA_CLR0, lbl_1_data_168, 4); + GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 6); + GXPosition1x8(0); + GXColor1x8(0); + GXPosition1x8(1); + GXColor1x8(0); + GXPosition1x8(2); + GXColor1x8(1); + GXPosition1x8(3); + GXColor1x8(1); + GXPosition1x8(4); + GXColor1x8(1); + GXPosition1x8(5); + GXColor1x8(1); +} + +void fn_1_AB98(ModelData *model, Mtx matrix) +{ + s32 var_r31 = 0; + if (lbl_1_bss_60[var_r31].unk_08 != 0) { + var_r31++; + } + if ((fn_1_4030() == 0) && (var_r31 == 0)) { + GXSetTexCopySrc(0, 0, 0x280, 0x1E0); + GXSetTexCopyDst(0x280, 0x1E0, GX_TF_RGB5A3, 0); + } + else { + GXSetTexCopySrc(var_r31 * 0x140, 0, 0x140, 0x1E0); + GXSetTexCopyDst(0x140, 0x1E0, GX_TF_RGB5A3, 0); + } + GXCopyTex(lbl_1_bss_60[var_r31].unk_6C, 0); + GXPixModeSync(); + lbl_1_bss_60[var_r31].unk_08 = 1; +} + +void fn_1_AC84(ModelData *model, Mtx matrix) +{ + s32 var_r31 = 0; + if (lbl_1_bss_60[var_r31].unk_18 != 0) { + var_r31++; + } + lbl_1_bss_60[var_r31].unk_18 = 1; + fn_1_86B4(lbl_1_bss_54, &lbl_1_bss_60[var_r31]); +} + +void fn_1_AD04(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + s32 var_r29; + + if ((particle->unk_00 == 0) || (lbl_1_bss_5C != 0)) { + particle->unk_00++; + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + var_r31->unk00 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + return; + } + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00_s16 != 0) { + PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + PSVECScale(&var_r31->unk08, &var_r31->unk08, 0.97f); + if (var_r31->unk00_s16 < 24.0f) { + var_r31->unk40.a = 0.9f * var_r31->unk40.a; + } + var_r31->unk2C += 1.5f; + if (--var_r31->unk00_s16 == 0) { + var_r31->unk00_s16 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); +} + +void fn_1_AEE0(s32 arg0, Vec *arg1, float arg8, float arg9) +{ + Vec sp10; + float var_f31; + float var_f30; + float var_f28; + HsfanimStruct01 *var_r31; + ParticleData *var_r30; + s32 var_r29; + M430DllWork *var_r28; + u32 var_r27; + void *var_r26; + + var_r26 = lbl_1_bss_58->data; + var_r28 = var_r26; + var_r30 = Hu3DData[var_r28[arg0].unk_10].unk_120; + if (var_r30->unk_00 != 0) { + var_r31 = var_r30->unk_48; + if (!(frandmod(0x3E8) > (1200.0f * arg9))) { + var_r27 = 1; + var_f28 = 30.0f; + for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00_s16 == 0) { + var_r31->unk00 = 60.0f * (0.5f + (0.0005f * frandmod(0x3E8))); + var_f30 = (0.002f * frandmod(0x3E8)) - 1.0f; + var_f30 = arg8 + (var_f30 * var_f28); + sp10.x = sind(var_f30); + sp10.y = 0.0f; + sp10.z = cosd(var_f30); + var_r31->unk34 = *arg1; + var_r31->unk34.y = -20.0f; + var_f31 = 5.0f + arg9 * (1.6666667f * (2.0f * (0.001f * frandmod(0x3E8)))); + var_r31->unk08.x = sp10.x * var_f31; + var_r31->unk08.y = -0.2f * var_f31; + var_r31->unk08.z = sp10.z * var_f31; + var_f31 = 0.001f * frandmod(0x3E8); + var_f31 += (1.0f - var_f31) * (0.5f * arg9); + var_r31->unk30 = frandmod(0x168); + var_r31->unk2C = 80.0f + frandmod(0x46); + var_r31->unk40.a = frandmod(0x64) + 0x64; + var_r31->unk40.r = 150.0f + (95.0f * var_f31); + var_r31->unk40.g = 160.0f + (80.0f * var_f31); + var_r31->unk40.b = 166.0f + (60.0f * var_f31); + if (--var_r27 == 0) { + break; + } + } + } + } + } +} + +void fn_1_B394(ModelData *model, ParticleData *var_r30, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + s32 var_r29; + + if ((var_r30->unk_00 == 0) || (lbl_1_bss_5C != 0)) { + var_r30->unk_00++; + for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { + var_r31->unk00_s16 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + return; + } + for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00_s16 != 0) { + var_r31->unk00_s16--; + PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + var_r31->unk2C += 0.5f; + if (var_r31->unk00_s16 < 30.0) { + var_r31->unk40.a = 0.98f * var_r31->unk40.a; + } + if ((var_r31->unk34.y < -40.0f) || (var_r31->unk00_s16 == 0)) { + var_r31->unk00_s16 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + } + } + DCStoreRange(var_r30->unk_48, var_r30->unk_30 * sizeof(HsfanimStruct01)); +} + +void fn_1_B570(s32 arg0, Vec *arg1, float arg8, float arg9, Vec *arg2) +{ + Vec sp28; + Vec sp1C; + s32 sp18; + float var_f31; + float var_f30; + float var_f28; + HsfanimStruct01 *var_r31; + ParticleData *var_r30; + s32 var_r29; + M430DllWork *var_r28; + u32 var_r27; + M430DllWork *var_r26; + + var_r26 = lbl_1_bss_58->data; + { + float sp14[2] = { -100.0f, 100.0f }; + var_r28 = var_r26; + var_r30 = Hu3DData[var_r28[arg0].unk_14].unk_120; + if (var_r30->unk_00 != 0) { + var_r31 = var_r30->unk_48; + if (!(frandmod(0x3E8) > (1000.0f * arg9))) { + var_r27 = 2; + var_f28 = 40.0f; + PSVECScale(arg2, &sp1C, 0.2f); + sp1C.x = 0.0f; + for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00_s16 == 0) { + var_r31->unk00_s16 = 60.0f * (0.5f + (0.0005f * frandmod(0x3E8))); + var_f30 = (0.002f * frandmod(0x3E8)) - 1.0f; + var_f30 = arg8 + sp14[var_r29 & 1] + (var_f30 * var_f28); + sp28.x = sind(var_f30); + sp28.y = 0.0f; + sp28.z = cosd(var_f30); + var_r31->unk34 = *arg1; + var_r31->unk34.x = var_r31->unk34.x + ((0.05f * frandmod(0x3E8)) - 25.0f); + var_r31->unk34.z = var_r31->unk34.z + ((0.05f * frandmod(0x3E8)) - 25.0f); + var_r31->unk34.y = 40.0f; + var_f31 = 1.6666667f + (arg9 * (0.0016666667f * frandmod(0x3E8))); + var_r31->unk08.x = sp28.x * var_f31; + var_r31->unk08.z = sp28.z * var_f31; + var_r31->unk08.y = 0.0f; + PSVECAdd(&var_r31->unk08, &sp1C, &var_r31->unk08); + var_f31 = 0.001f * frandmod(0x3E8); + var_f31 += (1.0f - var_f31) * (0.3f * arg9); + var_r31->unk30 = frandmod(0x168); + var_r31->unk2C = 60.0f + frandmod(0x50); + var_r31->unk40.a = (60.0f * arg9) + frandmod(0x50); + var_r31->unk40.r = 150.0f + (95.0f * var_f31); + var_r31->unk40.g = 160.0f + (80.0f * var_f31); + var_r31->unk40.b = 166.0f + (60.0f * var_f31); + if (--var_r27 == 0) { + break; + } + } + } + } + } + } +} + +float fn_1_BB54(u32 arg0) +{ + float sp8[2] = { -450.0f, 450.0f }; + + return sp8[arg0 & 1]; +} + +float fn_1_BB88(void) +{ + return 0.0f; +} + +void fn_1_BB98(u32 arg0) +{ + lbl_1_bss_5C = 0; + if (arg0 != 0) { + lbl_1_bss_5C = 1; + } +} From d6f065e127fa5737e9ec32299c5702770e3f4aae Mon Sep 17 00:00:00 2001 From: Liam Coleman Date: Fri, 10 Jan 2025 10:00:49 -0600 Subject: [PATCH 242/311] Complete mstory2 board_clear and board_entrance (#517) * Match first mstory2 TU * Complete mstory2 board_clear and board_entrance --- config/GMPE01_00/rels/mstory2Dll/symbols.txt | 2 +- configure.py | 4 +- include/REL/mstory2Dll.h | 7 +- src/REL/mstory2Dll/board_clear.c | 619 ++++++++++++++++++ src/REL/mstory2Dll/board_entrance.c | 644 +++++++++++++++++++ 5 files changed, 1272 insertions(+), 4 deletions(-) create mode 100644 src/REL/mstory2Dll/board_clear.c create mode 100644 src/REL/mstory2Dll/board_entrance.c diff --git a/config/GMPE01_00/rels/mstory2Dll/symbols.txt b/config/GMPE01_00/rels/mstory2Dll/symbols.txt index 2043c77f..351e9c5d 100644 --- a/config/GMPE01_00/rels/mstory2Dll/symbols.txt +++ b/config/GMPE01_00/rels/mstory2Dll/symbols.txt @@ -573,7 +573,7 @@ lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C data:string lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D data:string lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 data:string lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C data:string -lbl_1_data_668 = .data:0x00000668; // type:object size:0x30 +lbl_1_data_668 = .data:0x00000668; // type:object size:0x30 data:float lbl_1_data_698 = .data:0x00000698; // type:object size:0x1C lbl_1_data_6B4 = .data:0x000006B4; // type:object size:0x20 lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 data:string diff --git a/configure.py b/configure.py index ce78fe3b..9c510762 100644 --- a/configure.py +++ b/configure.py @@ -1371,8 +1371,8 @@ config.libs = [ "mstory2Dll", objects={ Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/main.c"), - Object(NonMatching, "REL/mstory2Dll/board_entrance.c"), - Object(NonMatching, "REL/mstory2Dll/board_clear.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/board_entrance.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/board_clear.c"), Object(NonMatching, "REL/mstory2Dll/board_miss.c"), Object(NonMatching, "REL/mstory2Dll/mg_clear.c"), Object(NonMatching, "REL/mstory2Dll/mg_miss.c"), diff --git a/include/REL/mstory2Dll.h b/include/REL/mstory2Dll.h index 839c576d..b170640e 100644 --- a/include/REL/mstory2Dll.h +++ b/include/REL/mstory2Dll.h @@ -39,10 +39,11 @@ typedef struct { /* 0x08 */ s32 unk08; /* 0x0C */ s32 unk0C; /* 0x10 */ char unk10[0x18]; -} StructBss19C; // Size 0x28 +} StructBss16C; // Size 0x28 // main.c float fn_1_864(float arg0, float arg1, float arg2, float arg3); +float fn_1_88C(float arg0, float arg1, float arg2); float fn_1_8AC(float arg0, float arg1, float arg2, float arg3); float fn_1_984(float arg0, float arg1, float arg2, float arg3); float fn_1_B08(float arg0, float arg1, float arg2, float arg3); @@ -63,6 +64,7 @@ void fn_1_2828(Process* arg0, void (*arg1)(void)); void fn_1_2948(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5); void fn_1_2D00(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5); void fn_1_357C(StructFn357C* arg0, s32 arg1); +void fn_1_42A0(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3, float arg4); s32 fn_1_3668(s32 arg0); void fn_1_3754(void); void fn_1_3854(StructBss24* arg0); @@ -72,6 +74,7 @@ void fn_1_6004(StructBss24* arg0, StructBss24* arg1, float arg2, float arg3, flo int fn_1_66CC(int modelId); void fn_1_6704(omObjData* arg0); +void fn_1_67D8(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); void fn_1_6A90(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); void fn_1_6D78(s32 arg0, s32 arg1, s32 arg2, s32 arg3); s32 fn_1_7064(s32 arg0, s32 arg1); @@ -100,6 +103,8 @@ void fn_1_188F0(Process* arg0, s32 arg1); // ending.c void fn_1_1B90C(Process* arg0); +extern s32 lbl_1_bss_88[16]; +extern s32 lbl_1_bss_78[4]; extern s32 lbl_1_bss_68[]; extern StructBss24 lbl_1_bss_24; extern s32 lbl_1_data_0[][4]; diff --git a/src/REL/mstory2Dll/board_clear.c b/src/REL/mstory2Dll/board_clear.c new file mode 100644 index 00000000..206854e1 --- /dev/null +++ b/src/REL/mstory2Dll/board_clear.c @@ -0,0 +1,619 @@ +#include "REL/mstory2Dll.h" +#include "game/armem.h" +#include "game/audio.h" +#include "game/board/main.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "game/pad.h" +#include "game/objsub.h" + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ char unk18[0x18]; + /* 0x030 */ StructFn357C unk30[4]; + /* 0x100 */ float unk100; +} StructBss3DC; // Size 0x104 + +StructBss3DC lbl_1_bss_3DC; +StructBss16C lbl_1_bss_3B4; +StructBss16C lbl_1_bss_38C; +StructBss16C lbl_1_bss_364; +StructBss16C lbl_1_bss_33C; +StructBss16C lbl_1_bss_29C[4]; +Process *lbl_1_bss_298; + +void fn_1_C4C0(void); +void fn_1_C858(void); +void fn_1_CCCC(int arg0, int arg1, int arg2, int arg3, int arg4); +void fn_1_CD78(void); +void fn_1_D224(int arg0, int arg1, int arg2, int arg3, int arg4); +void fn_1_D2D0(omObjData* arg0, StructBss16C* arg1); +void fn_1_D478(void); +void fn_1_D764(int arg0); +void fn_1_DB58(int arg0, int arg1, int arg2, int arg3, int arg4); +void fn_1_DC54(omObjData* arg0, StructBss16C* arg1); +void fn_1_DDC4(void); +void fn_1_E1B8(void); +void fn_1_E244(void); +void fn_1_E334(void); + +void fn_1_B37C(omObjData* arg0, StructBss16C* arg1) +{ + fn_1_BE8(30); + fn_1_DB58(4, -1, 15, 1, 0); + fn_1_D224(4, -1, 15, 1, 0); + arg1->unk04 = NULL; +} + +void fn_1_B3E4(Process* arg0, s32 arg1) +{ + int i; + lbl_1_bss_298 = arg0; + lbl_1_bss_3DC.unk0C = arg1; + fn_1_C30(); + fn_1_3668(255); + fn_1_2828(lbl_1_bss_298, fn_1_E1B8); + fn_1_3754(); + fn_1_D764(arg1); + HuPrcChildCreate(fn_1_C858, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_CD78, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_D478, 100, 8192, 0, HuPrcCurrentGet()); + for(i=0; i<4; i++) { + HuPrcChildCreate(fn_1_DDC4, 100, 8192, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_C4C0, 100, 8192, 0, HuPrcCurrentGet()); + +} + +void fn_1_B518(omObjData *object) +{ + if(object->work[2]) { + object->work[2]--; + return; + } + if(object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + fn_1_1DFC(object, 1, object->work[1], 15, 1); + object->work[0] = object->work[1] = object->work[2] = 0; + } +} + +void fn_1_B5A4(void) +{ + int posX = 16; + int posY = 40; + GXColor winColor = { 0, 0, 128, 128 }; + int i; + while(1) { + fn_1_BC8(); + printWin(posX, posY, 220, 160, &winColor); + if(lbl_1_bss_3B4.unk04 == NULL) { + print8(posX, posY, 1, "PROC_MAIN -> FALSE"); + } else { + print8(posX, posY, 1, "PROC_MAIN -> TRUE"); + } + if(lbl_1_bss_38C.unk04 == NULL) { + print8(posX, posY+10, 1, "PROC_MAP -> FALSE"); + } else { + print8(posX, posY+10, 1, "PROC_MAP -> TRUE"); + } + if(lbl_1_bss_364.unk04 == NULL) { + print8(posX, posY+20, 1, "PROC_KOOPA -> FALSE"); + } else { + print8(posX, posY+20, 1, "PROC_KOOPA -> TRUE"); + } + if(lbl_1_bss_33C.unk04 == NULL) { + print8(posX, posY+30, 1, "PROC_MKOOPA -> FALSE"); + } else { + print8(posX, posY+30, 1, "PROC_MKOOPA -> TRUE"); + } + for(i=0; i<4; i++) { + if(lbl_1_bss_29C[i].unk04 == NULL) { + print8(posX, posY+40+(i*10), 1, "PROC_PLAYER%d -> FALSE", i); + } else { + print8(posX, posY+40+(i*10), 1, "PROC_PLAYER%d -> TRUE", i); + } + } + print8(posX, posY+90, 1, "P:%d W:%d", lbl_1_bss_3DC.unk00, lbl_1_bss_3DC.unk0C); + print8(posX, posY+110, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for(i=0; i<4; i++) { + print8(posX, posY+120+(i*10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_3DC.unk30[i].unk00, lbl_1_bss_3DC.unk30[i].unk04, lbl_1_bss_3DC.unk30[i].unk08, lbl_1_bss_3DC.unk30[i].unk0C, lbl_1_bss_3DC.unk30[i].unk14, lbl_1_bss_3DC.unk30[i].unk10); + } + + } +} + +void fn_1_B984(void) +{ + lbl_1_bss_78[0] = HuAudSeqPlay(51); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + fn_1_BE8(60); +} + +void fn_1_B9E0(void) +{ + lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk04 = (void *)fn_1_DC54; + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_E244); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk04 == NULL) { + break; + } + } + while(1) { + fn_1_BC8(); + if(lbl_1_bss_33C.unk04 == NULL) { + break; + } + } + fn_1_BE8(30); +} + +void fn_1_BA90(void) +{ + int i; + lbl_1_bss_3DC.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_3DC.unk0C); + HuAudFXPlay(lbl_1_data_0[5][0]); + fn_1_D224(3, -1, 15, 1, 0); + fn_1_1D4C(lbl_1_bss_3DC.unk04, lbl_1_bss_3DC.unk30[lbl_1_bss_3DC.unk00].unk10, 0); + fn_1_1D18(lbl_1_bss_3DC.unk04, 0x1F000C); + fn_1_1AFC(lbl_1_bss_3DC.unk04, -1); + fn_1_1D18(lbl_1_bss_3DC.unk04, 0x250004); + fn_1_D224(1, -1, 15, 1, 0); + fn_1_1A94(lbl_1_bss_3DC.unk04); + HuAudSeqFadeOut(lbl_1_bss_78[0], 1000); + fn_1_BE8(60); + for(i=0; i<4; i++) { + if(lbl_1_bss_3DC.unk30[i].unk00 != lbl_1_bss_3DC.unk30[lbl_1_bss_3DC.unk00].unk00) { + Hu3DModelAttrSet(lbl_1_bss_29C[i].unk00->model[1], 1); + } + Hu3DModelAttrSet(lbl_1_bss_29C[i].unk00->model[2], 1); + } + Hu3DModelAttrReset(lbl_1_bss_364.unk00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_38C.unk00->model[5], 1); + Hu3DModelAttrReset(lbl_1_bss_38C.unk00->model[6], 1); + lbl_1_bss_3DC.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_3DC.unk0C); + HuAudFXPlay(lbl_1_data_0[6][0]); + lbl_1_bss_78[1] = HuAudSeqPlay(55); + lbl_1_bss_33C.unk04 = (void *)fn_1_B37C; + fn_1_1D18(lbl_1_bss_3DC.unk04, 0x1F000D); + fn_1_1AFC(lbl_1_bss_3DC.unk04, -1); + fn_1_1D18(lbl_1_bss_3DC.unk04, 0x250004); + fn_1_1A94(lbl_1_bss_3DC.unk04); + fn_1_1DFC(lbl_1_bss_38C.unk00, 2, 3, 0, 0); + fn_1_BE8(60); + lbl_1_bss_33C.unk04 = (void *)fn_1_D2D0; + fn_1_DB58(5, -1, 15, 0, 0); + fn_1_D224(5, 1, 0, 0, 1); + fn_1_2264(lbl_1_bss_38C.unk00, 2, 3, 0); +} + +void fn_1_BDF0(void) +{ + lbl_1_bss_3DC.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_3DC.unk0C); + HuAudFXPlay(lbl_1_data_0[6][1]); + fn_1_CCCC(3, -1, 15, 1, 0); + fn_1_1D18(lbl_1_bss_3DC.unk04, 0x1F000E); + fn_1_1AFC(lbl_1_bss_3DC.unk04, -1); + fn_1_1D18(lbl_1_bss_3DC.unk04, 0x250004); + fn_1_CCCC(1, -1, 15, 1, 0); + fn_1_1A94(lbl_1_bss_3DC.unk04); + fn_1_CCCC(2, -1, 15, 0, 0); + fn_1_BE8(45); + HuAudFXPlay(lbl_1_data_0[6][0]); + fn_1_BE8(15); + HuAudSeqFadeOut(lbl_1_bss_78[1], 3000); + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_E334); + fn_1_BE8(30); + fn_1_BE8(45); + fn_1_BE8(75); +} + +void fn_1_BF48(void) +{ + int i; + omOvlHisData *his; + int charNo; + int padNo; + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while(1) { + fn_1_BC8(); + if(!WipeStatGet()) { + break; + } + } + CharModelKill(-1); + charNo = lbl_1_bss_3DC.unk30[lbl_1_bss_3DC.unk00].unk10; + padNo = lbl_1_bss_3DC.unk30[lbl_1_bss_3DC.unk00].unk14; + GWPlayerCfg[lbl_1_bss_3DC.unk00].character = GWPlayerCfg[0].character; + GWPlayerCfg[lbl_1_bss_3DC.unk00].pad_idx = GWPlayerCfg[0].pad_idx; + GWPlayerCfg[lbl_1_bss_3DC.unk00].group = GWPlayerCfg[0].group; + GWPlayerCfg[lbl_1_bss_3DC.unk00].iscom = GWPlayerCfg[0].iscom; + GWPlayerCfg[0].character = charNo; + GWPlayerCfg[0].pad_idx = padNo; + GWPlayerCfg[0].group = 0; + GWPlayerCfg[0].iscom = FALSE; + for(i=0; i<4; i++) { + GWPlayer[i].character = GWPlayerCfg[i].character; + GWPlayer[i].port = GWPlayerCfg[i].pad_idx; + GWPlayer[i].com = GWPlayerCfg[i].iscom; + GWPlayer[i].team = GWPlayerCfg[i].group; + } + GWPlayerCfg[1].character = 8; + for(i=1; i<4; i++) { + GWPlayerCfg[i].iscom = GWPlayerCfg[i].group = 1; + } + his = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY2, 3, his->stat); + HuAudSeqAllFadeOut(1000); + HuAudSStreamAllFadeOut(1000); + GWSystem.mg_type = -1; + GWMGAvailSet(450); + GWSystem.mg_next = 450-401; + omOvlCallEx(OVL_M450, 1, 0, 0); + while(1) { + fn_1_BC8(); + } +} + +void fn_1_C270(omObjData* arg0, StructBss16C* arg1) +{ + int temp = 0; + fn_1_B984(); + fn_1_B9E0(); + fn_1_BA90(); + fn_1_BDF0(); + fn_1_BF48(); + arg1->unk04 = NULL; +} + +void fn_1_C4C0(void) +{ + omObjData *obj; + lbl_1_bss_3B4.unk00 = obj = omAddObjEx(lbl_1_bss_298, 256, 16, 16, -1, NULL); + lbl_1_bss_3B4.unk04 = (void *)fn_1_C270; + lbl_1_bss_3B4.unk00->data = &lbl_1_bss_3B4; + while(1) { + fn_1_BC8(); + if(lbl_1_bss_3B4.unk04 != NULL) { + lbl_1_bss_3B4.unk04(obj, &lbl_1_bss_3B4); + } + } +} + +void fn_1_C574(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(0x660052); + object->motion[1] = Hu3DMotionIDGet(object->model[1]); + Hu3DModelShadowMapObjSet(object->model[1], "base_story-base"); + fn_1_1DFC(object, 1, 1, 0, 1); + object->model[2] = Hu3DModelCreateFile(0x660053); + object->motion[2] = Hu3DJointMotionFile(object->model[2], 0x660054); + object->motion[3] = Hu3DJointMotionFile(object->model[2], 0x660055); + fn_1_1DFC(object, 2, 2, 0, 2); + object->model[5] = Hu3DModelCreateFile(0x660059); + object->motion[5] = Hu3DMotionIDGet(object->model[5]); + Hu3DModelPosSet(object->model[5], 0, 80, 460); + Hu3DModelAttrSet(object->model[5], 1); + Hu3DModelShadowSet(object->model[5]); + fn_1_1DFC(object, 5, 5, 0, 2); + object->model[6] = Hu3DModelCreateFile(0x66005A); + object->motion[6] = Hu3DMotionIDGet(object->model[6]); + Hu3DModelHookSet(object->model[5], "koopasgbox_fix-effect_fook2", object->model[6]); + Hu3DModelAttrSet(object->model[6], 1); + fn_1_1DFC(object, 6, 6, 0, 2); +} + +void fn_1_C79C(omObjData* arg0, StructBss16C* arg1) +{ + Hu3DData[arg0->model[5]].pos.y = fn_1_B08(80, 90, arg1->unk08++, 360); + if(arg1->unk08 >= 360) { + arg1->unk08 = 0; + } +} + +void fn_1_C858(void) +{ + omObjData *obj; + lbl_1_bss_38C.unk00 = obj = omAddObjEx(lbl_1_bss_298, 256, 16, 16, -1, NULL); + lbl_1_bss_38C.unk04 = (void *)fn_1_C79C; + lbl_1_bss_38C.unk00->data = &lbl_1_bss_38C; + fn_1_C574(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_38C.unk04 != NULL) { + lbl_1_bss_38C.unk04(obj, &lbl_1_bss_38C); + } + } +} + +void fn_1_CB0C(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(0x660062); + object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660063); + object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660066); + object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660069); + Hu3DModelPosSet(object->model[1], 0, 0, 150); + Hu3DModelRotSet(object->model[1], 0, 0, 0); + Hu3DModelScaleSet(object->model[1], 1.25f, 1.25f, 1.25f); + Hu3DModelScaleSet(object->model[1], 1.6f, 1.6f, 1.6f); + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); +} + +void fn_1_CCCC(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_364.unk00, 1, arg0, arg2, arg3); + if(arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_364.unk00->work[0] = arg4; + lbl_1_bss_364.unk00->work[1] = arg1; + lbl_1_bss_364.unk00->work[2] = arg2+1; +} + +void fn_1_CD78(void) +{ + omObjData *obj; + lbl_1_bss_364.unk00 = obj = omAddObjEx(lbl_1_bss_298, 256, 16, 16, -1, NULL); + lbl_1_bss_364.unk04 = NULL; + lbl_1_bss_364.unk00->data = &lbl_1_bss_38C; + fn_1_CB0C(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_364.unk04 != NULL) { + lbl_1_bss_364.unk04(obj, &lbl_1_bss_364); + } + if(obj->work[0]) { + if(obj->work[2]) { + obj->work[2]--; + } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_D030(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(0x66007D); + object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x66007E); + object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660080); + object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660081); + object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660084); + object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x660085); + Hu3DModelPosSet(object->model[1], -300, 0, 890); + Hu3DModelRotSet(object->model[1], 0, 30, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); + CharModelEffectNpcInit(object->model[1], object->motion[2], 1, 13); +} + +void fn_1_D224(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_33C.unk00, 1, arg0, arg2, arg3); + if(arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_33C.unk00->work[0] = arg4; + lbl_1_bss_33C.unk00->work[1] = arg1; + lbl_1_bss_33C.unk00->work[2] = arg2+1; +} + +void fn_1_D2D0(omObjData* arg0, StructBss16C* arg1) +{ + int i; + for(i=0; i<15; i++) { + fn_1_BC8(); + Hu3DData[arg0->model[1]].rot.y = fn_1_864(0, 135, i, 15); + } + arg1->unk04 = NULL; +} + +void fn_1_D394(omObjData* arg0, StructBss16C* arg1) +{ + Vec pos = { -120, 0, 800 }; + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, 60, 60, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_D478(void) +{ + omObjData *obj; + lbl_1_bss_33C.unk00 = obj = omAddObjEx(lbl_1_bss_298, 256, 16, 16, -1, NULL); + lbl_1_bss_33C.unk04 = NULL; + lbl_1_bss_33C.unk00->data = &lbl_1_bss_33C; + fn_1_D030(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_33C.unk04 != NULL) { + lbl_1_bss_33C.unk04(obj, &lbl_1_bss_33C); + } + if(obj->work[0]) { + if(obj->work[2]) { + obj->work[2]--; + } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_D764(int arg0) +{ + int i; + int order[4]; + order[0] = 0; + for(i=1; i<4; i++) { + order[i] = order[i-1]+1; + if(order[i] >= 4) { + order[i] = 0; + } + if(arg0 == order[i]) { + lbl_1_bss_3DC.unk00 = i; + } + } + for(i=0; i<4; i++) { + fn_1_357C(&lbl_1_bss_3DC.unk30[i], order[i]); + } + for(i=0; i<4; i++) { + lbl_1_bss_3DC.unk30[i].unk18 = GWPlayer[order[i]].rank+1; + } +} + +Vec lbl_1_data_668[4] = { + { -300, 0, 460 }, + { -100, -30, 460 }, + { 100, -60, 460 }, + { 300, -90, 460 }, +}; + +void fn_1_D898(omObjData *object, int player) +{ + int playerNo = player; + int charNo = lbl_1_bss_3DC.unk30[playerNo].unk10; + object->model[1] = CharModelCreate(charNo, 4); + object->motion[1] = CharModelMotionCreate(charNo, 0x5F0000); + object->motion[2] = CharModelMotionCreate(charNo, 0x5F0003); + object->motion[3] = CharModelMotionCreate(charNo, 0x5F0005); + object->motion[4] = CharModelMotionCreate(charNo, 0x5F001A); + object->motion[5] = CharModelMotionCreate(charNo, 0x5F006D); + CharModelMotionDataClose(charNo); + Hu3DModelPosSet(object->model[1], lbl_1_data_668[playerNo].x, lbl_1_data_668[lbl_1_bss_3DC.unk30[playerNo].unk18-1].y+90, lbl_1_data_668[playerNo].z); + Hu3DModelRotSet(object->model[1], 0, 0, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); + object->model[2] = Hu3DModelCreateFile(0x660056); + Hu3DModelPosSet(object->model[2], lbl_1_data_668[playerNo].x, lbl_1_data_668[lbl_1_bss_3DC.unk30[playerNo].unk18-1].y, lbl_1_data_668[playerNo].z); + if(lbl_1_bss_3DC.unk30[playerNo].unk18 == 4) { + Hu3DModelAttrSet(object->model[2], 1); + } + Hu3DModelScaleSet(object->model[2], 1.5, 1, 1.5); + Hu3DModelShadowMapSet(object->model[2]); +} + +void fn_1_DB58(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk00, 1, arg0, arg2, arg3); + if(arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk00->work[0] = arg4; + lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk00->work[1] = arg1; + lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk00->work[2] = arg2+1; +} + +void fn_1_DC54(omObjData* arg0, StructBss16C* arg1) +{ + Vec pos = { 120, 0, 800 }; + fn_1_2948(arg0, 1, pos, -1, 30, 10); + lbl_1_bss_33C.unk04 = (void *)fn_1_D394; + fn_1_1DFC(lbl_1_bss_38C.unk00, 2, 2, 0, 0); + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, -60, 30, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_DDC4(void) +{ + omObjData *obj; + int playerNo = lbl_1_bss_3DC.unk10++; + lbl_1_bss_29C[playerNo].unk00 = obj = omAddObjEx(lbl_1_bss_298, 256, 16, 16, -1, NULL); + lbl_1_bss_29C[playerNo].unk04 = NULL; + lbl_1_bss_29C[playerNo].unk00->data = &lbl_1_bss_29C[0]; + fn_1_D898(obj, playerNo); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_29C[playerNo].unk04 != NULL) { + lbl_1_bss_29C[playerNo].unk04(obj, &lbl_1_bss_29C[playerNo]); + } + if(obj->work[0]) { + if(obj->work[2]) { + obj->work[2]--; + } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_E1B8(void) +{ + StructBss24 *work = &lbl_1_bss_24; + work->unk08.x = 0; + work->unk08.y = 170; + work->unk08.z = -20; + work->unk20.x = -5; + work->unk20.y = 0; + work->unk20.z = 0; + work->unk38 = 1700; +} + +void fn_1_E244(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + temp.unk08.x = 0; + temp.unk08.y = 125; + temp.unk08.z = -20; + temp.unk20.x = -5; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 1750; + fn_1_4FEC(work, &temp, work->unk40++, 60, 30); +} + +void fn_1_E334(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + if(work->unk40 == 50) { + fn_1_1DFC(lbl_1_bss_38C.unk00, 5, 5, 0, 0); + fn_1_1DFC(lbl_1_bss_38C.unk00, 6, 6, 0, 0); + HuAudFXPlay(161); + } + temp.unk08.x = 0; + temp.unk08.y = 130; + temp.unk08.z = 460; + temp.unk20.x = 0; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 150; + fn_1_4FEC(work, &temp, work->unk40, 180, 10); + if(work->unk40++ >= 90) { + if(work->unk40 == 91) { + lbl_1_bss_88[0] = HuAudFXPlay(32); + } + work->unk20.x = fn_1_864(work->unk20.x, -45, work->unk40-90, 90); + Hu3DData[lbl_1_bss_38C.unk00->model[5]].rot.x = fn_1_864(0, 45, work->unk40-90, 90); + } +} \ No newline at end of file diff --git a/src/REL/mstory2Dll/board_entrance.c b/src/REL/mstory2Dll/board_entrance.c new file mode 100644 index 00000000..d1ac7abb --- /dev/null +++ b/src/REL/mstory2Dll/board_entrance.c @@ -0,0 +1,644 @@ +#include "REL/mstory2Dll.h" +#include "game/armem.h" +#include "game/audio.h" +#include "game/board/main.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "game/pad.h" +#include "game/objsub.h" + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ char unk18[0x18]; + /* 0x030 */ StructFn357C unk30[4]; + /* 0x100 */ float unk100; +} StructBss194; // Size 0x104 + +StructBss194 lbl_1_bss_194; +StructBss16C lbl_1_bss_16C; +StructBss16C lbl_1_bss_144; +StructBss16C lbl_1_bss_11C; +StructBss16C lbl_1_bss_F4; +StructBss16C lbl_1_bss_CC; +Process *lbl_1_bss_C8; +s32 lbl_1_bss_88[16]; +s32 lbl_1_bss_78[4]; + +u32 lbl_1_data_3A0[11] = { + 0x00250000, + 0x00250000, + 0x00250000, + 0x00250000, + 0x00250000, + 0x00250000, + 0x00250000, + 0x00250000, + 0x00250000, + 0x00250000, + 0x00250000 +}; + +s32 lbl_1_data_3CC[2][2] = { + 20, + 70, + 1, + 1 +}; + +s32 lbl_1_data_3DC = -1; +s32 lbl_1_data_3E0[2] = { -1, -1 }; + +void fn_1_9768(void); +void fn_1_9A10(void); +void fn_1_9BD4(s32 arg0); +void fn_1_9ECC(omObjData* arg0, StructBss16C* arg1); +void fn_1_9FDC(void); +void fn_1_A4A8(omObjData* arg0, StructBss16C* arg1); +void fn_1_A58C(void); +void fn_1_AB10(omObjData* arg0, StructBss16C* arg1); + +void fn_1_AE5C(void); +void fn_1_B1C0(void); +void fn_1_B24C(void); + +void fn_1_7DB0(void) +{ + int i; + while(1) { + do { + HuPrcVSleep(); + } while(lbl_1_data_3DC == -1 || lbl_1_data_3E0[0] == -1 || lbl_1_data_3E0[1] == -1 || lbl_1_data_3E0[0] != Hu3DMotionIDGet(lbl_1_data_3DC)); + for(i=0; i<2; i++) { + if(lbl_1_data_3CC[1][i] != -1) { + if(Hu3DMotionTimeGet(lbl_1_data_3DC) >= lbl_1_data_3CC[0][i]) { + OSReport("KE-System TIME:%d\n", lbl_1_data_3CC[0][i]); + HuAudFXPlay(81); + lbl_1_data_3CC[1][i] = -1; + } + } + } + if(Hu3DMotionTimeGet(lbl_1_data_3DC) <= 10) { + for(i=0; i<2; i++) { + lbl_1_data_3CC[1][i] = 1; + } + } + + } + +} + +void fn_1_7F54(Process* arg0, s32 arg1) +{ + lbl_1_bss_C8 = arg0; + lbl_1_bss_194.unk0C = arg1; + fn_1_C30(); + fn_1_3668(255); + fn_1_2828(lbl_1_bss_C8, fn_1_B1C0); + fn_1_3754(); + fn_1_9BD4(arg1); + HuPrcChildCreate(fn_1_9FDC, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_9A10, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_A58C, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_AE5C, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_9768, 100, 8192, 0, HuPrcCurrentGet()); +} + +void fn_1_806C(omObjData *object) +{ + if(object->work[2]) { + object->work[2]--; + return; + } + if(object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + fn_1_1DFC(object, 1, object->work[1], 15, 1); + object->work[0] = object->work[1] = object->work[2] = 0; + } +} + +void fn_1_80F8(void) +{ + int posX = 16; + int posY = 40; + GXColor winColor = { 0, 0, 128, 128 }; + int i; + while(1) { + fn_1_BC8(); + fontcolor = FONT_COLOR_WHITE; + printWin(posX, posY, 220, 130, &winColor); + if(lbl_1_bss_16C.unk04 == NULL) { + print8(posX, posY, 1, "PROC_MAIN -> FALSE"); + } else { + print8(posX, posY, 1, "PROC_MAIN -> TRUE"); + } + if(lbl_1_bss_144.unk04 == NULL) { + print8(posX, posY+10, 1, "PROC_MAP -> FALSE"); + } else { + print8(posX, posY+10, 1, "PROC_MAP -> TRUE"); + } + if(lbl_1_bss_11C.unk04 == NULL) { + print8(posX, posY+20, 1, "PROC_PLAYER -> FALSE"); + } else { + print8(posX, posY+20, 1, "PROC_PLAYER -> TRUE"); + } + if(lbl_1_bss_F4.unk04 == NULL) { + print8(posX, posY+30, 1, "PROC_SUB -> FALSE"); + } else { + print8(posX, posY+30, 1, "PROC_SUB -> TRUE"); + } + if(lbl_1_bss_CC.unk04 == NULL) { + print8(posX, posY+40, 1, "PROC_KOOPA -> FALSE"); + } else { + print8(posX, posY+40, 1, "PROC_KOOPA -> TRUE"); + } + + print8(posX, posY+60, 1, "P:%d W:%d", lbl_1_bss_194.unk00, lbl_1_bss_194.unk0C); + print8(posX, posY+80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for(i=0; i<4; i++) { + print8(posX, posY+90+(i*10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_194.unk30[i].unk00, lbl_1_bss_194.unk30[i].unk04, lbl_1_bss_194.unk30[i].unk08, lbl_1_bss_194.unk30[i].unk0C, lbl_1_bss_194.unk30[i].unk14, lbl_1_bss_194.unk30[i].unk10); + } + if(HuPadBtnDown[0] & PAD_BUTTON_X) { + fn_1_7384(lbl_1_bss_11C.unk00->model[1], lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk10, 30, 120, TRUE); + } else if(HuPadBtnDown[0] & PAD_BUTTON_Y) { + fn_1_7384(lbl_1_bss_11C.unk00->model[1], lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk10, 30, 120, FALSE); + } + } +} + +void fn_1_8580(void) +{ + lbl_1_bss_78[0] = HuAudSeqPlay(51); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + fn_1_BE8(60); +} + +void fn_1_85DC(void) +{ + fn_1_1DFC(lbl_1_bss_144.unk00, 2, 3, 0, 0); + fn_1_2264(lbl_1_bss_144.unk00, 2, 3, 0); + lbl_1_bss_11C.unk04 = (void *)fn_1_9ECC; + lbl_1_bss_F4.unk04 = (void *)fn_1_A4A8; + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_B24C); + fn_1_BE8(30); + fn_1_1DFC(lbl_1_bss_144.unk00, 2, 2, 0, 0); + do { + fn_1_BC8(); + } while(lbl_1_bss_11C.unk04 != NULL); + do { + fn_1_BC8(); + } while(lbl_1_bss_F4.unk04 != NULL); + lbl_1_bss_194.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_194.unk0C); + HuAudFXPlay(lbl_1_data_0[0][2]); + fn_1_1DFC(lbl_1_bss_F4.unk00, 1, 3, 5, 1); + fn_1_1D18(lbl_1_bss_194.unk04, 0x1F0000); + fn_1_1AFC(lbl_1_bss_194.unk04, -1); + fn_1_1D18(lbl_1_bss_194.unk04, 0x1F0001); + fn_1_1AFC(lbl_1_bss_194.unk04, -1); + fn_1_1D18(lbl_1_bss_194.unk04, 0x250004); + fn_1_1DFC(lbl_1_bss_F4.unk00, 1, 1, 5, 1); + fn_1_1A94(lbl_1_bss_194.unk04); + fn_1_BE8(15); +} + +void fn_1_87D4(void) +{ + int i; + float speed; + HuAudSeqFadeOut(lbl_1_bss_78[0], 500); + HuAudFXPlay(153); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 2, 0, 0); + fn_1_BC8(); + Hu3DMotionTimeSet(lbl_1_bss_CC.unk00->model[1], 100); + Hu3DModelAttrReset(lbl_1_bss_CC.unk00->model[1], 1); + while(1) { + fn_1_BC8(); + if(Hu3DMotionTimeGet(lbl_1_bss_CC.unk00->model[1]) >= 132) { + break; + } + } + fn_1_1DFC(lbl_1_bss_F4.unk00, 1, 4, 0, 0); + fn_1_BC8(); + while(1) { + fn_1_BC8(); + if(Hu3DMotionTimeGet(lbl_1_bss_F4.unk00->model[1]) >= 5) { + break; + } + } + Hu3DMotionSpeedSet(lbl_1_bss_F4.unk00->model[1], 0); + Hu3DData[lbl_1_bss_F4.unk00->model[1]].rot.y = 0; + fn_1_67D8(lbl_1_bss_11C.unk00, 3, 1, 5, 0); + HuAudFXPlay(156); + omVibrate(lbl_1_bss_194.unk0C, 45, 12, 0); + speed = 50; + for(i=0; i<60; i++) { + float weight = fn_1_B08(0, speed, i%15, 15); + speed = fn_1_88C(speed, 0, 30); + lbl_1_bss_194.unk100 = fn_1_88C(lbl_1_bss_194.unk100, weight, 5); + fn_1_BC8(); + } + lbl_1_bss_194.unk100 = 0; +} + +void fn_1_8ABC(void) +{ + fn_1_7384(lbl_1_bss_11C.unk00->model[1], lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk10, 1, 20, 1); + lbl_1_bss_78[1] = HuAudSeqPlay(6); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 3, 10, 0); + fn_1_BE8(30); + lbl_1_bss_194.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_194.unk0C); + HuAudFXPlay(lbl_1_data_0[6][0]); + HuWinAttrSet(lbl_1_bss_194.unk04, 0x400); + HuWinMesSet(lbl_1_bss_194.unk04, 0x1F0002); + fn_1_2264(lbl_1_bss_CC.unk00, 1, 3, 10); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 3, 10, 0); + fn_1_BE8(45); + HuAudFXPlay(lbl_1_data_0[6][0]); + fn_1_2264(lbl_1_bss_CC.unk00, 1, 3, 10); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 1, 10, 1); + HuWinAttrReset(lbl_1_bss_194.unk04, 0x400); + HuWinKeyWaitEntry(lbl_1_bss_194.unk04); + fn_1_BC8(); + fn_1_1AFC(lbl_1_bss_194.unk04, -1); + HuAudFXPlay(lbl_1_data_0[6][2]); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 4, 10, 1); + fn_1_1D18(lbl_1_bss_194.unk04, 0x1F0003); + fn_1_1AFC(lbl_1_bss_194.unk04, -1); + fn_1_1D18(lbl_1_bss_194.unk04, 0x250004); + fn_1_1A94(lbl_1_bss_194.unk04); + fn_1_BE8(30); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 1, 30, 1); + fn_1_BE8(60); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 5, 10, 0); + fn_1_BE8(25); + HuAudFXPlay(81); + fn_1_BE8(20); + lbl_1_bss_194.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_194.unk0C); + HuAudFXPlay(lbl_1_data_0[6][2]); + fn_1_1D4C(lbl_1_bss_194.unk04, lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk10, 0); + fn_1_1D18(lbl_1_bss_194.unk04, 0x1F0004); + fn_1_1AFC(lbl_1_bss_194.unk04, -1); + fn_1_1D18(lbl_1_bss_194.unk04, 0x1F0005); + fn_1_1AFC(lbl_1_bss_194.unk04, -1); + fn_1_1D18(lbl_1_bss_194.unk04, 0x250004); + fn_1_1A94(lbl_1_bss_194.unk04); + fn_1_67D8(lbl_1_bss_11C.unk00, 7, 8, 10, 0); + fn_1_7384(lbl_1_bss_11C.unk00->model[1], lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk10, 3, 5, 0); + fn_1_BE8(90); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 3, 30, 0); + fn_1_BE8(30); + lbl_1_bss_194.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_194.unk0C); + HuAudFXPlay(lbl_1_data_0[6][0]); + HuWinAttrSet(lbl_1_bss_194.unk04, 0x400); + HuWinMesSet(lbl_1_bss_194.unk04, 0x1F0002); + fn_1_2264(lbl_1_bss_CC.unk00, 1, 3, 10); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 1, 10, 1); + HuWinAttrReset(lbl_1_bss_194.unk04, 0x400); + HuWinKeyWaitEntry(lbl_1_bss_194.unk04); + fn_1_BC8(); + fn_1_1AFC(lbl_1_bss_194.unk04, -1); + fn_1_1D18(lbl_1_bss_194.unk04, 0x250004); + fn_1_1A94(lbl_1_bss_194.unk04); +} + +void fn_1_9034(void) +{ + fn_1_BE8(60); + lbl_1_bss_CC.unk04 = (void *)fn_1_AB10; + lbl_1_bss_194.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_194.unk0C); + HuAudFXPlay(lbl_1_data_0[6][1]); + fn_1_1D18(lbl_1_bss_194.unk04, 0x1F0007); + fn_1_1AFC(lbl_1_bss_194.unk04, -1); + fn_1_1A94(lbl_1_bss_194.unk04); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_CC.unk04 == NULL) { + break; + } + } + HuAudFXPlay(149); + Hu3DMotionSpeedSet(lbl_1_bss_F4.unk00->model[1], 1); + fn_1_BC8(); + fn_1_2264(lbl_1_bss_F4.unk00, 1, 4, 0); + lbl_1_bss_88[0] = HuAudFXPlay(98); + HuAudFXPlay(lbl_1_data_0[0][1]); + fn_1_1DFC(lbl_1_bss_F4.unk00, 1, 5, 15, 1); + fn_1_BE8(60); +} + +void fn_1_9198(void) +{ + fn_1_BE8(60); + HuAudSeqFadeOut(lbl_1_bss_78[0], 1000); + HuAudFXFadeOut(lbl_1_bss_88[0], 1000); + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while(1) { + fn_1_BC8(); + if(!WipeStatGet()) { + break; + } + } + CharModelKill(-1); + HuAudFadeOut(1); + GWPlayerCfg[0].group = 0; + GWPlayerCfg[0].character = lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk10; + GWPlayerCfg[0].pad_idx = lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk14; + GWPlayerCfg[0].iscom = FALSE; + omOvlGotoEx(OVL_MENT, 1, 11, 0); +} + +void fn_1_92BC(omObjData* arg0, StructBss16C* arg1) +{ + int temp = 0; + fn_1_8580(); + fn_1_85DC(); + fn_1_87D4(); + fn_1_8ABC(); + fn_1_9034(); + fn_1_9198(); + arg1->unk04 = NULL; +} + +void fn_1_9768(void) +{ + omObjData *obj; + lbl_1_bss_16C.unk00 = obj = omAddObjEx(lbl_1_bss_C8, 256, 16, 16, -1, NULL); + lbl_1_bss_16C.unk04 = (void *)fn_1_92BC; + lbl_1_bss_16C.unk00->data = &lbl_1_bss_16C; + while(1) { + fn_1_BC8(); + if(lbl_1_bss_16C.unk04 != NULL) { + lbl_1_bss_16C.unk04(obj, &lbl_1_bss_16C); + } + } +} + +void fn_1_981C(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(0x660050); + object->motion[0] = Hu3DMotionIDGet(object->model[1]); + fn_1_1DFC(object, 1, 0, 0, 2); + Hu3DModelShadowMapObjSet(object->model[1], "base_fix9-base"); + object->model[2] = Hu3DModelCreateFile(0x660053); + object->motion[2] = Hu3DJointMotionFile(object->model[2], 0x660054); + object->motion[3] = Hu3DJointMotionFile(object->model[2], 0x660055); + fn_1_1DFC(object, 2, 3, 0, 2); + object->model[4] = Hu3DModelCreateFile(0x660051); +} + +void fn_1_9954(omObjData* arg0, StructBss16C* arg1) +{ + Hu3DData[arg0->model[5]].pos.y = fn_1_B08(125, 130, arg1->unk08++, 360); + if(arg1->unk08 >= 360) { + arg1->unk08 = 0; + } +} + +void fn_1_9A10(void) +{ + omObjData *obj; + lbl_1_bss_144.unk00 = obj = omAddObjEx(lbl_1_bss_C8, 256, 16, 16, -1, NULL); + lbl_1_bss_144.unk04 = (void *)fn_1_9954; + lbl_1_bss_144.unk00->data = &lbl_1_bss_144; + fn_1_981C(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_144.unk04 != NULL) { + lbl_1_bss_144.unk04(obj, &lbl_1_bss_144); + } + } +} + +void fn_1_9BD4(s32 arg0) +{ + int i; + int order[4]; + order[0] = 0; + for(i=1; i<4; i++) { + order[i] = order[i-1]+1; + if(order[i] >= 4) { + order[i] = 0; + } + if(arg0 == order[i]) { + lbl_1_bss_194.unk00 = i; + } + } + for(i=0; i<4; i++) { + fn_1_357C(&lbl_1_bss_194.unk30[i], order[i]); + } +} + +void fn_1_9CB8(omObjData *object) +{ + int charNo = lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk10; + object->model[1] = CharModelCreate(charNo, 1); + object->motion[1] = CharModelMotionCreate(charNo, 0x5F0000); + object->motion[2] = CharModelMotionCreate(charNo, 0x5F0035); + object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660018+charNo); + object->motion[7] = Hu3DJointMotionFile(object->model[1], 0x660048+charNo); + object->motion[8] = Hu3DJointMotionFile(object->model[1], 0x660040+charNo); + object->motion[9] = Hu3DJointMotionFile(object->model[1], 0x660020+charNo); + object->motion[10] = CharModelMotionCreate(charNo, 0x5F0012); + CharModelMotionDataClose(charNo); + Hu3DModelPosSet(object->model[1], 120, 0, 800); + Hu3DModelRotSet(object->model[1], 0, -135, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); +} + +void fn_1_9ECC(omObjData* arg0, StructBss16C* arg1) +{ + int i; + fn_1_1DFC(arg0, 1, 2, 0, 0); + fn_1_BC8(); + Hu3DMotionTimeSet(arg0->model[1], 60); + for(i=0; i<60; i++) { + fn_1_BC8(); + Hu3DData[arg0->model[1]].rot.y = fn_1_864(-135, -90, i, 60); + } + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_9FDC(void) +{ + omObjData *obj; + lbl_1_bss_11C.unk00 = obj = omAddObjEx(lbl_1_bss_C8, 256, 16, 16, -1, NULL); + lbl_1_bss_11C.unk04 = NULL; + lbl_1_bss_11C.unk00->data = &lbl_1_bss_11C; + fn_1_9CB8(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_11C.unk04 != NULL) { + lbl_1_bss_11C.unk04(obj, &lbl_1_bss_11C); + } + if(obj->work[0]) { + fn_1_6704(obj); + } + } +} + +void fn_1_A288(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(0x660072); + object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660073); + object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660075); + object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660076); + object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x66007A); + object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x66007B); + object->motion[6] = Hu3DJointMotionFile(object->model[1], 0x660079); + Hu3DModelPosSet(object->model[1], 0, 0, 460); + Hu3DModelRotSet(object->model[1], 0, 0, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 6, 0, 1); + CharModelEffectNpcInit(object->model[1], object->motion[2], 1, 9); +} + +void fn_1_A4A8(omObjData* arg0, StructBss16C* arg1) +{ + Vec pos = { -120, 0, 800 }; + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, 90, 45, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_A58C(void) +{ + omObjData *obj; + lbl_1_bss_F4.unk00 = obj = omAddObjEx(lbl_1_bss_C8, 256, 16, 16, -1, NULL); + lbl_1_bss_F4.unk04 = NULL; + lbl_1_bss_F4.unk00->data = &lbl_1_bss_F4; + fn_1_A288(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_F4.unk04 != NULL) { + lbl_1_bss_F4.unk04(obj, &lbl_1_bss_F4); + } + if(obj->work[0]) { + fn_1_6704(obj); + } + } +} + +void fn_1_A848(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(0x660062); + object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660063); + object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660065); + object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660066); + object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660069); + object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x660068); + object->motion[6] = Hu3DJointMotionFile(object->model[1], 0x66006C); + object->motion[7] = Hu3DJointMotionFile(object->model[1], 0x66006D); + object->motion[8] = Hu3DJointMotionFile(object->model[1], 0x660064); + Hu3DModelPosSet(object->model[1], -120, 0, 800); + Hu3DModelRotSet(object->model[1], 0, 90, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); + lbl_1_data_3DC = object->model[1]; + lbl_1_data_3E0[0] = object->motion[7]; + lbl_1_data_3E0[1] = object->motion[8]; + HuPrcChildCreate(fn_1_7DB0, 100, 8192, 0, HuPrcCurrentGet()); +} + +void fn_1_AB10(omObjData* arg0, StructBss16C* arg1) +{ + int i; + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 8, 15, 1); + for(i=0; i<30; i++) { + fn_1_BC8(); + Hu3DData[lbl_1_bss_CC.unk00->model[1]].pos.x = fn_1_864(-120, -60, i, 30); + } + fn_1_1DFC(lbl_1_bss_11C.unk00, 1, 9, 15, 0); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 6, 15, 0); + fn_1_2264(lbl_1_bss_CC.unk00, 1, 6, 15); + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 7, 15, 1); + fn_1_1DFC(lbl_1_bss_11C.unk00, 1, 10, 15, 1); + for(i=0; i<240; i++) { + fn_1_BC8(); + Hu3DData[lbl_1_bss_CC.unk00->model[1]].pos.x = fn_1_864(-60, 540, i, 180); + Hu3DData[lbl_1_bss_11C.unk00->model[1]].pos.x = fn_1_864(120, 840, i, 180); + } + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_ADB0(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_CC.unk00, 1, arg0, arg2, arg3); + if(arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_CC.unk00->work[0] = arg4; + lbl_1_bss_CC.unk00->work[1] = arg1; + lbl_1_bss_CC.unk00->work[2] = arg2+1; +} + +void fn_1_AE5C(void) +{ + omObjData *obj; + lbl_1_bss_CC.unk00 = obj = omAddObjEx(lbl_1_bss_C8, 256, 16, 16, -1, NULL); + lbl_1_bss_CC.unk04 = NULL; + lbl_1_bss_CC.unk00->data = &lbl_1_bss_CC; + fn_1_A848(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_CC.unk04 != NULL) { + lbl_1_bss_CC.unk04(obj, &lbl_1_bss_CC); + } + if(obj->work[0]) { + fn_1_6704(obj); + } + } +} + +void fn_1_B1C0(void) +{ + StructBss24 *work = &lbl_1_bss_24; + work->unk08.x = 0; + work->unk08.y = 125; + work->unk08.z = 0; + work->unk20.x = -4.9f; + work->unk20.y = 0; + work->unk20.z = 0; + work->unk38 = 1750; +} + +void fn_1_B24C(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + temp.unk08.x = 0; + temp.unk08.y = 100; + temp.unk08.z = 0; + temp.unk20.x = 0; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 1400; + fn_1_42A0(work, &temp, work->unk40++, 60, 10); + if(0.0f != lbl_1_bss_194.unk100) { + work->unk08.y = 100+lbl_1_bss_194.unk100; + } +} \ No newline at end of file From 40da624fe7e6c914154c1b7a58372f7c6a717b0e Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Sat, 11 Jan 2025 00:44:35 +0100 Subject: [PATCH 243/311] Completely match m430Dll (#519) --- config/GMPE01_00/rels/m430Dll/symbols.txt | 2 +- configure.py | 2 +- include/game/gamework_data.h | 2 +- src/REL/m430Dll/player.c | 2427 +++++++++++++++++++++ 4 files changed, 2430 insertions(+), 3 deletions(-) create mode 100644 src/REL/m430Dll/player.c diff --git a/config/GMPE01_00/rels/m430Dll/symbols.txt b/config/GMPE01_00/rels/m430Dll/symbols.txt index a4b72fe6..50779d4f 100644 --- a/config/GMPE01_00/rels/m430Dll/symbols.txt +++ b/config/GMPE01_00/rels/m430Dll/symbols.txt @@ -445,7 +445,7 @@ lbl_1_data_258 = .data:0x00000258; // type:object size:0x20 lbl_1_data_278 = .data:0x00000278; // type:object size:0x8 lbl_1_data_280 = .data:0x00000280; // type:object size:0x8 lbl_1_data_288 = .data:0x00000288; // type:object size:0x8 -lbl_1_data_290 = .data:0x00000290; // type:object size:0x14 +lbl_1_data_290 = .data:0x00000290; // type:object size:0x12 scope:local data:string lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x8 lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x54 lbl_1_data_300 = .data:0x00000300; // type:object size:0x8 data:4byte diff --git a/configure.py b/configure.py index 9c510762..212bef75 100644 --- a/configure.py +++ b/configure.py @@ -1089,7 +1089,7 @@ config.libs = [ objects={ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m430Dll/main.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m430Dll/water.c"), - Object(NonMatching, "REL/m430Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m430Dll/player.c"), }, ), Rel( diff --git a/include/game/gamework_data.h b/include/game/gamework_data.h index 330e0f86..8d98cad0 100644 --- a/include/game/gamework_data.h +++ b/include/game/gamework_data.h @@ -362,6 +362,6 @@ static inline void GWPlayerCoinWinSet(s32 player, s16 value) } #define GWPlayerCoinWinAdd(player, value) GWPlayerCoinWinSet((player), GWPlayerCoinWinGet((player))+(value)) -#define GWPlayerCoinCollectAdd(player, value) GWPlayerCoinCollectSet((player), GWPlayerCoinCollectGet((player))+(value)) +#define GWPlayerCoinCollectAdd(player, value) GWPlayerCoinCollectSet((player), (s32)GWPlayerCoinCollectGet((player))+(value)) #endif diff --git a/src/REL/m430Dll/player.c b/src/REL/m430Dll/player.c new file mode 100644 index 00000000..981602dc --- /dev/null +++ b/src/REL/m430Dll/player.c @@ -0,0 +1,2427 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/flag.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m430Dll.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#include "game/frand.h" +#endif + +inline double fabs2(double x) +{ + return (double)fabs(x); +} + +typedef struct M430PlayerData170Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; +} M430PlayerData170Struct; /* size = 0x08 */ + +typedef struct M430PlayerBss160Struct { + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10[6]; + s32 unk_28[6][3]; + s32 unk_70[6][3]; + s32 unk_B8; + s32 unk_BC; +} M430PlayerBss160Struct; /* size = 0xC0 */ + +typedef struct M430PlayerBss164Struct { + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + AnimData *unk_14; + Vec unk_18; + Vec unk_24; + Vec unk_30; +} M430PlayerBss164Struct; /* size = 0x3C */ + +typedef struct M430PlayerBss168Struct { + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + Vec unk_14; + Vec unk_20; + Vec unk_2C; +} M430PlayerBss168Struct; /* size = 0x38 */ + +typedef struct M430PlayerBss16CStruct { + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + s32 unk_14; + float unk_18; + Vec unk_1C; + float unk_28; + float unk_2C; + float unk_30; + float unk_34; + float unk_38; + float unk_3C; +} M430PlayerBss16CStruct; /* size = 0x40 */ + +typedef struct M430PlayerBss170Struct { + s32 unk_00; + s32 unk_04; + s32 unk_08; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + float unk_20; + float unk_24; + float unk_28; + float unk_2C; + float unk_30; + float unk_34; + float unk_38; + float unk_3C; + float unk_40; + float unk_44; + float unk_48; + Vec *unk_4C; + Vec *unk_50; + Vec2f *unk_54; + s32 unk_58; + u32 unk_5C; + void *unk_60; +} M430PlayerBss170Struct; /* size = 0x64 */ + +typedef struct M430PlayerBss174Struct { + s32 unk_00[2]; + s32 unk_08; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + s32 unk_20; +} M430PlayerBss174Struct; /* size = 0x24 */ + +typedef struct M430PlayerWork { + u32 unk_00; + u16 unk_04; + u16 unk_06; + u16 unk_08; + u16 unk_0A; + u16 unk_0C; + u16 unk_0E; + u16 unk_10; + u16 unk_12; + u16 unk_14; + u16 unk_16; + float unk_18; + float unk_1C; + float unk_20; + float unk_24; + float unk_28; + float unk_2C; + float unk_30; + s32 unk_34; + s32 unk_38; + char unk3C[4]; + s32 unk_40; + u32 unk_44; + float unk_48; + float unk_4C; + float unk_50; + float unk_54; + s32 unk_58; + s32 unk_5C; + s32 unk_60; + s32 unk_64; + s32 unk_68; + s32 unk_6C; + float unk_70; + s32 unk_74; + s32 unk_78; + float unk_7C; +} M430PlayerWork; /* size = 0x80 */ + +void fn_1_100A0(void); +void fn_1_1033C(void); +void fn_1_1053C(void); +void fn_1_10540(s32 arg0, s32 arg1, float arg8, float arg9, float argA); +void fn_1_1058C(s32 arg0, float arg8); +void fn_1_105B8(s32 arg0); +void fn_1_1061C(M430PlayerBss170Struct *arg0); +void fn_1_10948(ModelData *model, Mtx matrix); +void fn_1_10B88(void); +void fn_1_10D1C(void); +void fn_1_10F20(void); +s32 fn_1_10F24(s32 arg0, float arg8, float arg9, float argA); +s32 fn_1_110A8(s32 arg0, float arg8, float arg9, float argA, s32 arg1); +s32 fn_1_111BC(s32 arg0, float arg8, Vec *arg1); +void fn_1_11314(s32 arg0); +void fn_1_113AC(void); +void fn_1_114F0(void); +void fn_1_11644(void); +s32 fn_1_11648(s32 arg0, float arg8, float arg9, float argA); +s32 fn_1_117A4(s32 arg0, float arg8, float arg9, float argA, s32 arg1); +s32 fn_1_11A1C(s32 arg0, float arg8, Vec *arg1); +M430PlayerBss168Struct *fn_1_11B64(s32 arg0); +void fn_1_11B94(s32 arg0); +void fn_1_11C1C(void); +void fn_1_11D70(void); +void fn_1_11F60(void); +s32 fn_1_11F90(s32 arg0, float arg8, float arg9, float argA); +void fn_1_12550(s32 arg0); +void fn_1_125C4(void); +void fn_1_129CC(void); +void fn_1_12D74(void); +void fn_1_12DF0(s32 arg0); +void fn_1_12F20(float arg8, float *arg0, float *arg1, float *arg2, float *arg3); +float fn_1_1303C(float arg8, float arg9); +float fn_1_13154(float arg8, float arg9, float argA); +void fn_1_133A4(AnimData *arg0); +void fn_1_133DC(Mtx arg0, Vec *arg1); +void fn_1_BE24(omObjData *object); +void fn_1_C040(void); +void fn_1_C1E4(omObjData *object); +void fn_1_CA3C(omObjData *object); +void fn_1_D2D0(omObjData *object); +void fn_1_D828(omObjData *object); +void fn_1_E8FC(omObjData *object); +void fn_1_F0D8(omObjData *object); +s32 fn_1_F62C(omObjData *object); +void fn_1_F6A0(omObjData *object); +void fn_1_FC9C(omObjData *object); + +M430PlayerData170Struct lbl_1_data_170[7] = { + { 0x5F0042, -1 }, + { 0, 1 }, + { 0, 2 }, + { 0, 3 }, + { 0, -1 }, + { 0x5F0017, -1 }, + { 0x5F0018, -1 }, +}; +M430PlayerData170Struct lbl_1_data_1A8[4] = { + { 0, 4 }, + { 0x5F0000, -1 }, + { 0x5F0017, -1 }, + { 0x5F0018, -1 }, +}; +s32 lbl_1_data_1C8[5] = { 0, 0x3D0031, 0x3D0039, 0x3D0041, 0x3D0049 }; +float lbl_1_data_1DC[7] = { -262.5f, -173.25f, -86.625f, 0.0f, 86.625f, 173.25f, 262.5f }; +Vec lbl_1_data_1F8[8] = { + { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 160.0f }, + { 60.000004f, 0.0f, 0.0f }, + { -60.000004f, 0.0f, 0.0f }, + { 50.0f, 0.0f, 100.0f }, + { -50.0f, 0.0f, 100.0f }, + { 60.000004f, 0.0f, -120.00001f }, + { -60.000004f, 0.0f, -120.00001f }, +}; +float lbl_1_data_258[8] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 25.0f, 0.0f, 25.0f }; +s32 lbl_1_data_278[2] = { 0x3D001C, 0x3D001D }; +s32 lbl_1_data_280[2] = { 0x3D001E, 0x3D001F }; +s32 lbl_1_data_288[2] = { 0x3D0020, 0x3D0021 }; + +s32 lbl_1_bss_17C; +Process *lbl_1_bss_178; +M430PlayerBss174Struct *lbl_1_bss_174; +M430PlayerBss170Struct *lbl_1_bss_170; +M430PlayerBss16CStruct *lbl_1_bss_16C; +M430PlayerBss168Struct *lbl_1_bss_168; +M430PlayerBss164Struct *lbl_1_bss_164; +M430PlayerBss160Struct *lbl_1_bss_160; +s32 lbl_1_bss_15C; +s32 lbl_1_bss_158; + +void fn_1_BBC4(Process *process) +{ + Vec sp14; + Vec sp8; + + lbl_1_bss_178 = process; + fn_1_C040(); + fn_1_100A0(); + fn_1_10B88(); + fn_1_113AC(); + fn_1_11C1C(); + fn_1_125C4(); + omAddObjEx(process, 0x2D, 0, 0, -1, fn_1_BE24); + sp14.x = CenterM[0].x + (CZoomM[0] * (sind(CRotM[0].y) * cosd(CRotM[0].x))); + sp14.y = CenterM[0].y + (CZoomM[0] * -sind(CRotM[0].x)); + sp14.z = CenterM[0].z + (CZoomM[0] * (cosd(CRotM[0].y) * cosd(CRotM[0].x))); + PSVECSubtract(CenterM, &sp14, &sp8); + PSVECNormalize(&sp8, &sp8); + HuAudFXListnerSetEX(&sp14, &sp8, 100000.0f, 566.6667f, 0.0f, 300.0f, 300.0f); +} + +void fn_1_BE24(omObjData *object) +{ + Vec sp14; + Vec sp8; + + fn_1_1033C(); + fn_1_10D1C(); + fn_1_114F0(); + fn_1_11D70(); + fn_1_129CC(); + sp14.x = CenterM[0].x + (CZoomM[0] * (sind(CRotM[0].y) * cosd(CRotM[0].x))); + sp14.y = CenterM[0].y + (CZoomM[0] * -sind(CRotM[0].x)); + sp14.z = CenterM[0].z + (CZoomM[0] * (cosd(CRotM[0].y) * cosd(CRotM[0].x))); + PSVECSubtract(CenterM, &sp14, &sp8); + PSVECNormalize(&sp8, &sp8); + HuAudFXListnerUpdate(&sp14, &sp8); +} + +void fn_1_C00C(void) +{ + HuAudFXListnerKill(); + fn_1_1053C(); + fn_1_10F20(); + fn_1_11644(); + fn_1_11F60(); + fn_1_12D74(); +} + +void fn_1_C040(void) +{ + s8 spC[4]; + s32 sp8; + s32 var_r31; + omObjData *var_r30; + s32 var_r29; + s32 var_r28; + + sp8 = 0; + lbl_1_bss_17C = 1; + omMakeGroupEx(lbl_1_bss_178, 0, 4); + omGetGroupMemberListEx(lbl_1_bss_178, 0); + lbl_1_bss_174 = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(M430PlayerBss174Struct), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_174, 0, 2 * sizeof(M430PlayerBss174Struct)); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + spC[var_r31] = -1; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r29 = GWPlayerCfg[var_r31].group; + if (spC[var_r29] == -1) { + spC[var_r29] = var_r31; + } + else { + break; + } + } + if (var_r31 < 4) { + spC[0] = 0; + spC[1] = 1; + spC[2] = 2; + spC[3] = 3; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r30 = omAddObjEx(lbl_1_bss_178, 0x28, 3, 7, 0, fn_1_C1E4); + var_r28 = spC[var_r31]; + var_r30->work[0] = var_r28; + var_r30->work[1] = var_r31 >> 1; + var_r30->work[2] = var_r31 & 1; + } +} + +void fn_1_C1E4(omObjData *object) +{ + M430PlayerWork *work; + s32 var_r29; + M430PlayerBss174Struct *var_r28; + u32 var_r27; + HsfData *var_r26; + HsfMaterial *var_r25; + ModelData *var_r24; + s32 var_r23; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M430PlayerWork), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M430PlayerWork)); + var_r27 = object->work[0]; + var_r23 = GWPlayerCfg[var_r27].character; + work->unk_38 = var_r23; + work->unk_00 = var_r27; + work->unk_04 = object->work[1]; + work->unk_06 = GWPlayerCfg[var_r27].pad_idx; + work->unk_08 = GWPlayerCfg[var_r27].iscom; + work->unk_0A = GWPlayerCfg[var_r27].diff; + work->unk_0C = object->work[2]; + work->unk_0E = 0; + work->unk_10 = 0; + work->unk_12 = 0; + work->unk_14 = 0; + work->unk_16 = 0; + if (work->unk_04 == 0) { + work->unk_18 = 450.0f; + } + else { + work->unk_18 = -450.0f; + } + work->unk_34 = 1; + work->unk_24 = 12.500001f; + work->unk_28 = 0.0f; + work->unk_1C = 180.0f; + work->unk_2C = 0.0f; + work->unk_30 = 0.0f; + work->unk_20 = 0.0f; + work->unk_40 = work->unk_44 = 0; + work->unk_48 = work->unk_4C = 0.0f; + work->unk_50 = 0.0f; + work->unk_54 = 0.0f; + work->unk_74 = 0; + work->unk_78 = -1; + work->unk_7C = 0.0f; + work->unk_60 = -1; + work->unk_64 = -1; + work->unk_68 = -1; + work->unk_6C = -1; + work->unk_70 = lbl_1_data_258[var_r23]; + object->model[0] = CharModelCreate(work->unk_38, 4); + Hu3DModelCameraSet(object->model[0], 3); + Hu3DModelLayerSet(object->model[0], 6); + CharModelStepTypeSet(work->unk_38, 3); + if (work->unk_0C == 0) { + for (var_r29 = 0; var_r29 < 7; var_r29++) { + if ((lbl_1_data_170[var_r29].unk_04) == 0xFFFFFFFF) { + object->motion[var_r29] = CharModelMotionCreate(work->unk_38, lbl_1_data_170[var_r29].unk_00); + } + else { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], work->unk_38 + lbl_1_data_1C8[lbl_1_data_170[var_r29].unk_04]); + } + if (var_r29 == 5) { + CharModelVoiceEnableSet(work->unk_38, object->motion[var_r29], 0); + } + } + work->unk_58 = 0; + CharModelMotionSet(work->unk_38, object->motion[work->unk_58]); + object->model[1] = Hu3DModelCreateFile(lbl_1_data_278[work->unk_04]); + Hu3DModelLayerSet(object->model[1], 2); + Hu3DModelCameraSet(object->model[1], 3); + Hu3DModelScaleSet(object->model[1], 1.2f, 1.2f, 1.2f); + object->model[2] = Hu3DModelCreateFile(0x3D0025); + Hu3DModelLayerSet(object->model[2], 1); + Hu3DModelCameraSet(object->model[2], 3); + work->unk_60 = HuAudFXPlay(0x67A); + work->unk_68 = 0x50; + if (work->unk_60 != -1) { + HuAudFXVolSet(work->unk_60, work->unk_68); + } + if (work->unk_04 == 0) { + work->unk_64 = HuAudFXPlay(0x675); + } + else { + work->unk_64 = HuAudFXPlay(0x676); + } + if (work->unk_64 != -1) { + HuAudFXPitchSet(work->unk_64, 0); + } + } + else { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (lbl_1_data_1A8[var_r29].unk_04 == 0xFFFFFFFF) { + object->motion[var_r29] = CharModelMotionCreate(work->unk_38, lbl_1_data_1A8[var_r29].unk_00); + } + else { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], work->unk_38 + lbl_1_data_1C8[lbl_1_data_1A8[var_r29].unk_04]); + } + if (var_r29 == 2) { + CharModelVoiceEnableSet(work->unk_38, object->motion[var_r29], 0); + } + } + work->unk_58 = 0; + CharModelMotionSet(work->unk_38, object->motion[work->unk_58]); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + object->model[1] = Hu3DModelCreateFile(lbl_1_data_280[work->unk_04]); + Hu3DModelLayerSet(object->model[1], 7); + Hu3DModelCameraSet(object->model[1], 3); + Hu3DModelAttrSet(object->model[1], HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(object->model[1], 2.0f); + object->model[2] = Hu3DModelCreateFile(lbl_1_data_288[work->unk_04]); + Hu3DModelLayerSet(object->model[2], 6); + Hu3DModelCameraSet(object->model[2], 3); + } + CharModelMotionDataClose(work->unk_38); + object->trans.x = work->unk_18; + if (work->unk_0C == 0) { + object->trans.y = 0.0f; + } + else { + object->trans.y = 200.0f; + } + if (work->unk_04 == 0) { + object->trans.z = -100000.0f; + } + else { + object->trans.z = -101000.0f; + } + object->rot.y = 180.0f; + work->unk_20 = object->trans.y; + var_r28 = &lbl_1_bss_174[work->unk_04]; + if (work->unk_0C == 0) { + var_r28->unk_00[work->unk_0C] = work->unk_00; + if (work->unk_08 != 0) { + var_r23 = var_r28->unk_08 | 1; + var_r28->unk_08 = var_r23; + } + var_r28->unk_0C = object->trans.x; + var_r28->unk_10 = 0.0f; + var_r28->unk_14 = object->trans.z; + var_r28->unk_18 = object->trans.z; + var_r28->unk_1C = work->unk_24; + var_r28->unk_20 = 0; + lbl_1_bss_158 = 1; + } + else { + var_r28->unk_00[work->unk_0C] = work->unk_00; + if (work->unk_08 != 0) { + var_r28->unk_08 = var_r28->unk_08 | 2; + } + } + if (work->unk_0C != 0) { + var_r24 = &Hu3DData[object->model[1]]; + var_r26 = var_r24->hsfData; + for (var_r25 = var_r26->material, var_r29 = 0; var_r29 < var_r26->materialCnt; var_r29++, var_r25++) { + var_r25->flags |= 2; + } + } + object->func = fn_1_CA3C; + (void)var_r24; + (void)var_r24; +} + +void fn_1_CA3C(omObjData *object) +{ + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + M430PlayerWork *work; + s32 var_r29; + M430PlayerBss174Struct *var_r28; + HsfData *var_r27; + HsfMaterial *var_r26; + ModelData *var_r25; + + work = object->data; + var_r28 = &lbl_1_bss_174[work->unk_04]; + work->unk_40 = 0; + work->unk_44 = 0; + work->unk_48 = 0.0f; + work->unk_4C = 0.0f; + if (work->unk_0C == 0) { + work->unk_34 = 3; + work->unk_24 = -41.000004f; + object->rot.y = 0.0f; + object->rot.z = 0.0f; + object->trans.z -= work->unk_30; + fn_1_D828(object); + if (work->unk_60 != -1) { + HuAudFXVolSet(work->unk_60, work->unk_68); + } + if (work->unk_64 != -1) { + HuAudFXPitchSet(work->unk_64, (s32)(8192.0f * (work->unk_68 / 127.0f))); + } + object->rot.y = object->rot.z = 0.0f; + if (++work->unk_10 > (60.0f * (1.5f + (0.5f * work->unk_04)))) { + work->unk_30 += 30.000002f; + var_r28->unk_18 = object->trans.z = object->trans.z + work->unk_30; + work->unk_68 += 3; + if (work->unk_68 > 0x7F) { + work->unk_68 = 0x7F; + } + } + else { + var_r28->unk_18 = object->trans.z; + } + var_f30 = work->unk_70 * sind(object->rot.y); + var_f29 = work->unk_70 * cosd(object->rot.y); + Hu3DModelPosSet(object->model[1], object->trans.x + var_f30, object->trans.y, object->trans.z + var_f29); + Hu3DModelRotSet(object->model[1], object->rot.x, object->rot.y, object->rot.z); + Hu3DModelPosSet(object->model[2], object->trans.x + var_f30, object->trans.y - 150.0f, object->trans.z + var_f29); + Hu3DModelRotSet(object->model[2], object->rot.x, 180.0f + object->rot.y, object->rot.z); + fn_1_10540(work->unk_04, 0, object->trans.x, 25.0f + object->trans.y, object->trans.z - 100.0f); + if (work->unk_10 > 30.0f) { + var_f31 = 0.016666668f * (work->unk_10 - 30.0f); + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + var_f31 = sind((90.0f * var_f31)); + var_f31 *= var_f31; + } + else { + var_f31 = 0.0f; + } + CenterM[work->unk_04].x = work->unk_18 - (var_f31 * work->unk_18); + CenterM[work->unk_04].z = (950.0f * (0.5f + (0.5f * var_f31))) + fn_1_7FBC(work->unk_04); + } + else { + work->unk_1C = 0.0f; + object->rot.y = 0.0f; + object->rot.z = 0.0f; + fn_1_E8FC(object); + work->unk_1C = 0.0f; + object->rot.y = 0.0f; + object->rot.z = 0.0f; + object->trans.y = 200.0f; + object->trans.z = var_r28->unk_18 - 300.0f; + object->rot.z = 0.0f; + for (var_r29 = 0; var_r29 < 2; var_r29++) { + Hu3DModelPosSet(object->model[var_r29 + 1], object->trans.x, 150.0f + object->trans.y, 50.0f + object->trans.z); + Hu3DModelRotSet(object->model[var_r29 + 1], object->rot.x, object->rot.y, object->rot.z); + } + fn_1_10540(work->unk_04, 1, object->trans.x, 150.0f + object->trans.y, 50.0f + object->trans.z); + if (work->unk_6C == -1) { + sp8.x = object->trans.x; + sp8.y = object->trans.y; + sp8.z = object->trans.z; + work->unk_6C = HuAudFXEmiterPlay(0x67B, &sp8); + } + else { + sp8.x = object->trans.x; + sp8.y = object->trans.y; + sp8.z = object->trans.z; + HuAudFXEmiterUpDate(work->unk_6C, &sp8); + } + } + if (fn_1_4058() == 2) { + if (work->unk_0C == 0) { + work->unk_34 = 1; + work->unk_24 = 12.500001f; + work->unk_28 = 0.0f; + work->unk_68 = 0x50; + object->trans.y = 0.0f; + } + else { + var_r25 = &Hu3DData[object->model[1]]; + var_r27 = var_r25->hsfData; + for (var_r26 = var_r27->material, var_r29 = 0; var_r29 < var_r27->materialCnt; var_r29++, var_r26++) { + var_r26->flags &= 0xFFFFFFFD; + } + if (work->unk_6C != -1) { + HuAudFXStop(work->unk_6C); + } + work->unk_6C = -1; + if (work->unk_04 == 0) { + work->unk_6C = HuAudFXPlay(0x67C); + } + else { + work->unk_6C = HuAudFXPlay(0x67D); + } + if (work->unk_6C != -1) { + HuAudFXPitchSet(work->unk_6C, -0x2000); + } + work->unk_28 = 0.0f; + object->trans.y = 200.0f; + object->rot.z = 180.0f; + } + object->trans.x *= -1.0f; + work->unk_18 *= -1.0f; + object->trans.x = work->unk_18; + object->trans.z = 0.0f; + object->rot.x = 0.0f; + object->rot.y = 180.0f; + work->unk_1C = 180.0f; + work->unk_20 = object->trans.y; + lbl_1_bss_158 = 0; + object->func = fn_1_D2D0; + } +} + +void fn_1_D2D0(omObjData *object) +{ + s32 spC; + s32 sp8; + float var_f31; + M430PlayerWork *work; + s32 var_r29; + M430PlayerBss174Struct *var_r28; + + work = object->data; + spC = 0; + sp8 = -1; + var_r28 = &lbl_1_bss_174[work->unk_04]; + if ((lbl_1_bss_15C == 0) && (fn_1_4070() >= 2)) { + fn_1_12DF0(1); + } + if (lbl_1_bss_17C != 0) { + Hu3DModelCameraSet(object->model[0], 3); + Hu3DModelCameraSet(object->model[1], 3); + if (object->model[2] != -1) { + Hu3DModelCameraSet(object->model[2], 3); + } + } + else { + if (work->unk_04 == 0) { + var_r29 = 1; + } + else { + var_r29 = 2; + } + Hu3DModelCameraSet(object->model[0], var_r29); + Hu3DModelCameraSet(object->model[1], var_r29); + if (object->model[2] != -1) { + Hu3DModelCameraSet(object->model[2], var_r29); + } + } + if (fn_1_4070() == 2) { + work->unk_40 = HuPadBtn[work->unk_06]; + work->unk_44 = HuPadBtnDown[work->unk_06]; + work->unk_48 = HuPadStkX[work->unk_06]; + work->unk_4C = HuPadStkY[work->unk_06]; + } + else { + work->unk_40 = 0; + work->unk_44 = 0; + work->unk_48 = 0.0f; + work->unk_4C = 0.0f; + } + if (fn_1_4070() < 2) { + work->unk_1C = 180.0f; + work->unk_28 = 0.0f; + object->trans.x = work->unk_18; + object->rot.y = 180.0f; + } + if (work->unk_0C == 0) { + fn_1_D828(object); + var_f31 = (work->unk_24 - 12.500001f) / 28.500004f; + work->unk_68 = 80.0f + (47.0f * var_f31); + if (work->unk_60 != -1) { + HuAudFXVolSet(work->unk_60, work->unk_68); + } + if (work->unk_64 != -1) { + HuAudFXPitchSet(work->unk_64, (s32)(8192.0f * (work->unk_68 / 127.0f))); + } + } + else { + fn_1_E8FC(object); + var_f31 = (var_r28->unk_1C - 12.500001f) / 28.500004f; + var_f31 = 8192.0f + (-16384.0f * (1.0f - var_f31)); + if (work->unk_6C != -1) { + HuAudFXPitchSet(work->unk_6C, var_f31); + } + } + if (fn_1_4070() == 3) { + fn_1_40D0(work->unk_00); + work->unk_5C = 0; + return; + } + if (fn_1_4070() == 4) { + work->unk_0E = 2; + work->unk_10 = 0; + if (work->unk_0C == 0) { + work->unk_58 = 4; + } + else { + work->unk_58 = 1; + } + CharModelMotionSet(work->unk_38, object->motion[work->unk_58]); + Hu3DModelCameraSet(object->model[0], 1); + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + if ((object->model[1] != -1) && (work->unk_0C != 0)) { + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + } + if (work->unk_60 != -1) { + HuAudFXStop(work->unk_60); + } + if (work->unk_64 != -1) { + HuAudFXStop(work->unk_64); + } + work->unk_60 = work->unk_64 = -1; + if (work->unk_6C != -1) { + HuAudFXStop(work->unk_6C); + } + if (object->model[2] != -1) { + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + } + fn_1_105B8(work->unk_04); + fn_1_11314(work->unk_04); + fn_1_11B94(work->unk_04); + fn_1_12550(work->unk_04); + object->func = fn_1_F0D8; + } +} + +void fn_1_D828(omObjData *var_r30) +{ + Mtx sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + float var_f19; + float var_f18; + M430PlayerWork *var_r31; + M430PlayerBss174Struct *var_r29; + s32 var_r28; + s32 var_r27; + + var_r31 = var_r30->data; + var_r27 = -1; + var_r29 = &lbl_1_bss_174[var_r31->unk_04]; + if ((fn_1_4070() == 2) && (var_r31->unk_08 != 0)) { + fn_1_F6A0(var_r30); + } + mtxRot(sp20, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); + sp20[1][0] *= var_r30->scale.y; + sp20[1][1] *= var_r30->scale.y; + sp20[1][2] *= var_r30->scale.z; + var_r30->trans.y = 0.3f * (100.0f * (var_r31->unk_24 / 41.000004f)); + if (var_r30->trans.y < 0.0f) { + var_r30->trans.y *= -0.5f; + } + var_f27 = 15.0f * (var_r31->unk_24 / 41.000004f); + if (var_r31->unk_24 < 0.0f) { + var_f27 *= -0.5f; + } + switch (var_r31->unk_0E) { + case 0: + var_r31->unk_12 = var_r31->unk_34 + (frand() & 7) + var_r31->unk_12; + var_r31->unk_14 = var_r31->unk_34 + (frand() & 7) + var_r31->unk_14; + var_r30->rot.x = (2.5 * sind(var_r31->unk_12)) - var_f27; + var_r30->rot.z = 2.0 * cosd(var_r31->unk_14); + for (var_r28 = 0; var_r28 < 8; var_r28++) { + sp14.x = lbl_1_data_1F8[var_r28].x; + sp14.y = lbl_1_data_1F8[var_r28].y; + sp14.z = lbl_1_data_1F8[var_r28].z; + fn_1_133DC(&sp20[0], &sp14); + var_f31 = var_r31->unk_70 * sind(var_r30->rot.y); + var_f29 = var_r31->unk_70 * cosd(var_r30->rot.y); + if (fn_1_110A8( + var_r31->unk_04, var_f31 + (sp14.x + var_r30->trans.x), sp14.y + var_r30->trans.y, var_f29 + (sp14.z + var_r30->trans.z), 1) + != 0) { + break; + } + } + if (var_r28 < 8) { + var_r31->unk_58 = 3; + CharModelMotionShiftSet(var_r31->unk_38, var_r30->motion[var_r31->unk_58], 0.0f, 10.0f, 0); + var_r31->unk_0E = 1; + var_r31->unk_10 = 0; + if (var_r31->unk_04 == 0) { + HuAudFXPlay(0x678); + } + else { + HuAudFXPlay(0x67E); + } + HuAudCharVoicePlay(var_r31->unk_38, 0x123); + omVibrate(var_r31->unk_00, 0xC, 4, 2); + var_r31->unk_2C = 5.0f; + var_r31->unk_16 = frand() & 3; + } + break; + case 1: + var_r31->unk_34 = 1; + var_r31->unk_44 = 0; + var_r31->unk_48 = 0.0f; + var_r31->unk_12 = var_r31->unk_34 + (frand() & 7) + var_r31->unk_12; + var_r31->unk_14 = var_r31->unk_34 + (frand() & 7) + var_r31->unk_14; + var_r30->rot.x = (2.5 * sind(var_r31->unk_12)) - var_f27; + var_r30->rot.z = 2.0 * cosd(var_r31->unk_14); + var_r31->unk_2C = 5.0f - (5.0f * (0.011111111f * var_r31->unk_10)); + var_f25 = 7.0 * (var_r31->unk_2C * sind((10.0f * var_r31->unk_10))); + if ((var_r31->unk_16 & 1) != 0) { + var_r30->rot.x += var_f25; + } + else { + var_r30->rot.x -= var_f25; + } + if ((var_r31->unk_16 & 2) != 0) { + var_r30->rot.z += var_f25; + } + else { + var_r30->rot.z -= var_f25; + } + if ((var_r31->unk_10 & 1) != 0) { + Hu3DModelAttrSet(var_r30->model[0], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrReset(var_r30->model[0], HU3D_ATTR_DISPOFF); + } + if (++var_r31->unk_10 >= 90.0f) { + var_r31->unk_0E = 0; + var_r31->unk_10 = 0; + Hu3DModelAttrReset(var_r30->model[0], HU3D_ATTR_DISPOFF); + } + break; + } + var_f24 = var_r31->unk_48; + var_f23 = var_f24; + if (fabs2(var_f23) < 8.0) { + var_f24 = 0.0f; + } + var_r31->unk_28 *= 0.98f; + var_r31->unk_28 += 0.0017499999f * var_f24; + if (var_r31->unk_28 < -8.75f) { + var_r31->unk_28 = -8.75f; + } + else if (var_r31->unk_28 > 8.75f) { + var_r31->unk_28 = 8.75f; + } + var_r30->trans.x += var_r31->unk_28; + var_f26 = 180.0f - (30.0f * (0.015625f * var_f24)); + var_r31->unk_1C = fn_1_13154(var_f26, var_r31->unk_1C, 1.0f); + var_r30->rot.y = var_r31->unk_1C; + if (var_r30->trans.x > (350.0f + var_r31->unk_18)) { + var_r30->trans.x = 350.0f + var_r31->unk_18; + } + else if (var_r30->trans.x < (var_r31->unk_18 - 350.0f)) { + var_r30->trans.x = var_r31->unk_18 - 350.0f; + } + if (var_r31->unk_0E == 0) { + if ((var_r31->unk_48 > 8.0f) && (var_r30->rot.y < 170.0f)) { + var_r27 = 1; + } + else if ((var_r31->unk_48 < -8.0f) && (var_r30->rot.y > 190.0f)) { + var_r27 = 2; + } + else { + var_r27 = 0; + } + if ((var_r27 != -1) && (var_r31->unk_58 != var_r27) && (CharModelMotionShiftIDGet(var_r31->unk_38) < 0)) { + var_r31->unk_58 = var_r27; + CharModelMotionShiftSet(var_r31->unk_38, var_r30->motion[var_r31->unk_58], 0.0f, 10.0f, 0); + } + } + if ((var_r31->unk_44 & 0x100) != 0) { + var_r31->unk_34++; + } + else if ((var_r31->unk_44 & 0x200) != 0) { + var_r31->unk_34--; + } + if (var_r31->unk_34 < 1) { + var_r31->unk_34 = 1; + } + else if (var_r31->unk_34 > 3) { + var_r31->unk_34 = 3; + } + switch (var_r31->unk_34) { + case 1: + var_f30 = 12.500001f; + (void)var_f30; + break; + case 2: + var_f30 = 27.916668f; + (void)var_f30; + break; + default: + var_f30 = 41.000004f; + break; + } + if (fabs(var_f30 - var_r31->unk_24) < 1.6666667461395264) { + var_r31->unk_24 = var_f30; + } + else if (var_f30 > var_r31->unk_24) { + var_r31->unk_24 += 1.6666667f; + } + else { + var_r31->unk_24 -= 1.6666667f; + } + var_r30->trans.z -= var_r31->unk_24; + if (fn_1_4070() >= 1) { + if ((var_r31->unk_50 -= var_r31->unk_24) < 0.0f) { + var_r31->unk_50 = 4500.0f - (500.0f * ((frand() & 0x8F) / 128.0f)); + var_f31 = var_r31->unk_18 + lbl_1_data_1DC[frand() & 7]; + fn_1_10F24(var_r31->unk_04, var_f31, var_r30->trans.y - 100.0f, -6000.0f + var_r30->trans.z); + } + if ((var_r31->unk_54 -= var_r31->unk_24) < 0.0f) { + var_r31->unk_54 = 2000.0f; + var_f31 = var_r31->unk_18 + lbl_1_data_1DC[frand() & 7]; + if ((frand() & 1) != 0) { + var_f26 = 350.0f; + } + else { + var_f26 = 500.0f; + } + if (fn_1_4070() == 2) { + fn_1_11648(var_r31->unk_04, var_f31, 50.0f + var_f26, -6000.0f + var_r30->trans.z); + } + } + } + var_r29->unk_10 = var_r30->trans.x - var_r29->unk_0C; + var_r29->unk_0C = var_r30->trans.x; + var_r29->unk_14 = var_r30->trans.z; + if (lbl_1_bss_158 == 0) { + var_r29->unk_18 = var_r30->trans.z; + } + var_r29->unk_1C = var_r31->unk_24; + fn_1_7FFC(var_r31->unk_04, var_r30->trans.z); + CenterM[var_r31->unk_04].x = var_r31->unk_18 + (0.5f * (var_r30->trans.x - var_r31->unk_18)); + CenterM[var_r31->unk_04].z = 950.0f + fn_1_7FBC(var_r31->unk_04); + var_f31 = var_r31->unk_70 * sind(var_r30->rot.y); + var_f31 = var_f31; + var_f29 = var_r31->unk_70 * cosd(var_r30->rot.y); + var_f29 = var_f29; + if (var_r31->unk_00 == 0) { + OSReport("X>%3.3f Z>%3.3f \n", var_f31, var_f29); + } + Hu3DModelPosSet(var_r30->model[1], var_r30->trans.x + var_f31, var_r30->trans.y, var_r30->trans.z + var_f29); + Hu3DModelRotSet(var_r30->model[1], var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); + Hu3DModelPosSet(var_r30->model[2], var_r30->trans.x + var_f31, var_r30->trans.y - 150.0f, var_r30->trans.z + var_f29); + Hu3DModelRotSet(var_r30->model[2], var_r30->rot.x, 180.0f + var_r30->rot.y, var_r30->rot.z); + sp14.x = 0.0f; + sp14.y = 25.0f; + sp14.z = -100.0f; + fn_1_133DC(sp20, &sp14); + sp14.x += var_r30->trans.x; + sp14.y += var_r30->trans.y; + sp14.z += var_r29->unk_18; + fn_1_10540(var_r31->unk_04, 0, sp14.x, sp14.y, sp14.z); + var_f28 = var_r31->unk_24 / 41.000004f; + if (var_f28 < 0.0) { + var_f28 *= -1.0f; + } + fn_1_AEE0(var_r31->unk_04, &sp14, 180.0f + var_r30->rot.y, var_f28); + sp8.x = var_r31->unk_28; + sp8.y = 0.0f; + sp8.z = -var_r31->unk_24; + sp14.x = 0.0f; + sp14.y = 0.0f; + sp14.z = 160.0f; + fn_1_133DC(&sp20[0], &sp14); + sp14.x += var_r30->trans.x; + sp14.y += var_r30->trans.y; + sp14.z += var_r29->unk_18; + fn_1_B570(var_r31->unk_04, &sp14, var_r30->rot.y, var_f28, &sp8); +} + +s32 lbl_1_data_2A4[2] = { 1, 2 }; +Vec lbl_1_data_2AC[7] = { + { -300.0f, 30.000002f, -150.0f }, + { -150.0f, 30.000002f, 0.0f }, + { 150.0f, 30.000002f, 0.0f }, + { 300.0f, 30.000002f, -150.0f }, + { -400.0f, 0.0f, 250.0f }, + { 380.0f, 0.0f, 300.0f }, + { 0.0f, 1.0f, 0.0f }, +}; +Vec2f lbl_1_data_300 = { 0.0f, 0.0f }; +s32 lbl_1_data_308 = 0xFFA040FF; + +void fn_1_E8FC(omObjData *object) +{ + Mtx sp3C; + Vec sp30; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + M430PlayerWork *work; + M430PlayerBss174Struct *var_r29; + s32 var_r28; + + work = object->data; + var_f27 = 180.0f; + var_f31 = 0.0f; + var_f29 = 0.0f; + var_r29 = &lbl_1_bss_174[work->unk_04]; + if ((fn_1_4070() == 2) && (work->unk_08 != 0)) { + fn_1_FC9C(object); + } + if ((s32)work->unk_0E != 0) { + (void)object; + } + else if ((fn_1_4070() == 2) && (fn_1_117A4(work->unk_04, object->trans.x, 50.0f + object->trans.y, object->trans.z, 1) != -1)) { + HuAudFXPlay(7); + var_r29->unk_20++; + } + if (fabs(var_f28 = work->unk_48) < 8.0) { + var_f28 = 0.0f; + } + work->unk_28 *= 0.98f; + work->unk_28 += 0.002625f * var_f28; + if (work->unk_28 < -8.75f) { + work->unk_28 = -8.75f; + } + else if (work->unk_28 > 8.75f) { + work->unk_28 = 8.75f; + } + var_f26 = object->trans.x; + object->trans.x += work->unk_28; + if (object->trans.x > (350.0f + work->unk_18)) { + object->trans.x = 350.0f + work->unk_18; + } + else if (object->trans.x < (work->unk_18 - 350.0f)) { + object->trans.x = work->unk_18 - 350.0f; + } + var_f30 = fabs(0.0033333334f * (object->trans.y - 200.0f)); + var_f31 = 245.0f + (-105.0f * var_f30); + if (object->trans.x > (var_r29->unk_0C + var_f31)) { + object->trans.x = var_r29->unk_0C + var_f31; + } + else if (object->trans.x < (var_r29->unk_0C - var_f31)) { + object->trans.x = var_r29->unk_0C - var_f31; + } + var_f27 = 180.0f; + work->unk_1C = var_f27 - (30.0f * (0.114285715f * (object->trans.x - var_f26))); + object->rot.y = fn_1_13154(work->unk_1C, object->rot.y, 2.5f); + if (fabs(fn_1_1303C(object->rot.y, 180.0f)) < 90.0) { + object->rot.z = 0.5f * (object->rot.y - 180.0f); + } + else { + object->rot.z = 0.5f * object->rot.y; + } + object->trans.z = 300.0f + var_r29->unk_18; + if (var_r29->unk_1C < 18.75f) { + var_f29 = 200.0f; + } + else if (var_r29->unk_1C < 33.333336f) { + var_f29 = 350.0f; + } + else { + var_f29 = 500.0f; + } + var_f30 = work->unk_20 - var_f29; + if (fabs(var_f30) < 1.6666667461395264) { + work->unk_20 = var_f29; + } + else if (var_f30 > 0.0f) { + work->unk_20 -= 1.6666667f; + } + else if (var_f30 < 0.0f) { + work->unk_20 += 1.6666667f; + } + work->unk_10 += (frand() & 3) + 1; + object->trans.y = work->unk_20 + (0.10000000149011612 * (100.0 * sind(work->unk_10))); + mtxRot(&sp3C[0], object->rot.x, object->rot.y, object->rot.z); + sp3C[1][0] *= object->scale.y; + sp3C[1][1] *= object->scale.y; + sp3C[1][2] *= object->scale.z; + sp30.x = 0.0f; + sp30.y = 150.0f; + sp30.z = 50.0f; + fn_1_133DC(&sp3C[0], &sp30); + for (var_r28 = 0; var_r28 < 2; var_r28++) { + Hu3DModelPosSet(object->model[lbl_1_data_2A4[var_r28]], object->trans.x + sp30.x, object->trans.y + sp30.y, object->trans.z + sp30.z); + Hu3DModelRotSet(object->model[lbl_1_data_2A4[var_r28]], object->rot.x, object->rot.y, object->rot.z); + } + sp30.x = 0.0f; + sp30.y = 150.0f; + sp30.z = 50.0f; + fn_1_133DC(&sp3C[0], &sp30); + fn_1_10540(work->unk_04, 1, object->trans.x + sp30.x, object->trans.y + sp30.y, object->trans.z + sp30.z); + fn_1_1058C(work->unk_04, 1.0 - fabs((object->trans.x - var_r29->unk_0C) / var_f31)); +} + +void fn_1_F0D8(omObjData *object) +{ + float var_f31; + float var_f30; + M430PlayerWork *work; + s32 var_r29; + M430PlayerBss174Struct *var_r28; + s32 var_r27; + M430PlayerBss174Struct *var_r26; + + work = object->data; + var_r28 = &lbl_1_bss_174[work->unk_04]; + var_r26 = &lbl_1_bss_174[work->unk_04 ^ 1]; + switch (work->unk_5C) { + case 0: + var_r27 = work->unk_0C + (work->unk_04 * 2); + object->trans.x = lbl_1_data_2AC[var_r27].x; + object->trans.y = lbl_1_data_2AC[var_r27].y; + object->trans.z = lbl_1_data_2AC[var_r27].z + fn_1_7FBC(0); + object->rot.x = object->rot.y = object->rot.z = 0.0f; + object->scale.x = object->scale.y = object->scale.z = 1.0f; + CenterM[0].x = 0.0f; + CenterM[0].z = 750.0f + object->trans.z; + if (work->unk_0C == 0) { + work->unk_58 = 4; + } + else { + work->unk_58 = 1; + } + CharModelMotionSet(work->unk_38, object->motion[work->unk_58]); + Hu3DModelShadowSet(object->model[0]); + if (work->unk_0C == 0) { + Hu3DModelCameraSet(object->model[1], 3); + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelCameraSet(object->model[2], 3); + Hu3DModelAttrReset(object->model[2], HU3D_ATTR_DISPOFF); + work->unk_1C = (180.0f + (40.0f * (0.007874016f * (frand() & 0x7F)))) - 20.0f; + if (work->unk_04 == 0) { + var_r29 = 4; + } + else { + var_r29 = 5; + } + Hu3DModelPosSet(object->model[1], lbl_1_data_2AC[var_r29].x, lbl_1_data_2AC[var_r29].y, lbl_1_data_2AC[var_r29].z + fn_1_7FBC(0)); + Hu3DModelPosSet( + object->model[2], lbl_1_data_2AC[var_r29].x, lbl_1_data_2AC[var_r29].y - 150.0f, lbl_1_data_2AC[var_r29].z + fn_1_7FBC(0)); + Hu3DModelAttrSet(object->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelShadowSet(object->model[1]); + } + if (var_r28->unk_20 > 0) { + work->unk_0E = 3; + } + else { + work->unk_0E = 4; + } + GWPlayerCoinCollectAdd(work->unk_00, var_r28->unk_20); + work->unk_5C++; + break; + case 1: + if (fn_1_4088() == 1) { + if (work->unk_00 == 0) { + if ((var_r28->unk_20 == 0) && (var_r26->unk_20 == 0)) { + HuAudSStreamPlay(4); + } + else { + HuAudSStreamPlay(1); + } + } + if (work->unk_0C == 0) { + if (work->unk_0E == 3) { + work->unk_58 = 5; + } + else { + work->unk_58 = 6; + } + } + else if (work->unk_0E == 3) { + work->unk_58 = 2; + } + else { + work->unk_58 = 3; + } + CharModelMotionShiftSet(work->unk_38, object->motion[work->unk_58], 0.0f, 8.0f, 0); + if (work->unk_0E == 3) { + HuAudCharVoicePlay(work->unk_38, 0x122); + } + work->unk_10 = 0; + work->unk_5C++; + } + break; + case 2: + if (fn_1_F62C(object) != 0) { + fn_1_4100(work->unk_00); + work->unk_5C++; + } + break; + } + if (work->unk_0C == 0) { + var_f31 = -10.0f; + var_f30 = 0.0f; + Hu3DModelRotSet(object->model[1], var_f31, work->unk_1C, var_f30); + Hu3DModelRotSet(object->model[2], var_f31, work->unk_1C, var_f30); + } +} + +s32 fn_1_F62C(omObjData *object) +{ + M430PlayerWork *work = object->data; + s32 var_r30 = 0; + if ((CharModelMotionEndCheck(work->unk_38) != 0) && (CharModelMotionShiftIDGet(work->unk_38) < 0)) { + var_r30 = 1; + } + return var_r30; +} + +void fn_1_F6A0(omObjData *object) +{ + Vec sp38; + float sp30; + float sp28; + float sp20; + float sp18; + float sp10; + float sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + float var_f19; + float var_f18; + M430PlayerWork *work; + s32 var_r29; + s32 var_r28; + M430PlayerBss168Struct *var_r27; + M430PlayerBss174Struct *var_r26; + s32 var_r25; + s32 var_r24; + + work = object->data; + var_r28 = 3; + var_r26 = &lbl_1_bss_174[work->unk_04]; + if (var_r26->unk_08 != 3) { + work->unk_0A = 3; + } + if (--work->unk_74 < 0) { + work->unk_7C = 150.0f * (3 - work->unk_0A) * ((frand() & 0x7F) / 127.0f); + if ((frand() & 1) != 0) { + work->unk_7C *= -1.0f; + } + work->unk_74 = 0x1E + (frand() % 30) + (4 - work->unk_0A) * 0x3C; + } + switch (work->unk_34) { + case 1: + var_f27 = 500.0f; + break; + case 2: + var_f27 = 1500.0f; + break; + default: + var_f27 = 3000.0f; + break; + } + var_r25 = fn_1_111BC(work->unk_04, object->trans.z, &sp38); + var_f30 = sp38.x; + var_f25 = sp38.z; + var_r29 = fn_1_11A1C(work->unk_04, object->trans.z, &sp38); + var_f29 = sp38.x; + var_f28 = sp38.z; + if (var_r29 == work->unk_78) { + var_r29 = fn_1_11A1C(work->unk_04, 100.0f + var_f28, &sp38); + var_f29 = sp38.x; + var_f28 = sp38.z; + } + else if (work->unk_78 == -1) { + var_r24 = fn_1_11A1C(work->unk_04, 100.0f + var_f28, &sp38); + var_f26 = sp38.x; + if (work->unk_0A >= 2) { + if (fabs(var_f29 - object->trans.x) > 300.0) { + if (fabs(var_f26 - object->trans.x) < 300.0) { + if ((fabs(var_f28 - object->trans.z) < 1800.0) && (work->unk_34 == 3)) { + work->unk_78 = var_r29; + var_r29 = var_r24; + var_f29 = var_f26; + } + } + } + } + } + else { + work->unk_78 = -1; + } + if (fabs(var_f25 - object->trans.z) < var_f27) { + if (var_f30 > object->trans.x) { + var_f31 = var_f30 - 200.0f; + } + else { + var_f31 = 200.0f + var_f30; + } + } + else { + if ((fabs(var_f30 - var_f29) > 200.0) || (var_r25 == -1)) { + var_f31 = var_f29; + } + else if ((var_f30 > var_f29) || (var_f30 > (250.0f + work->unk_18))) { + var_f31 = var_f30 - 200.0f; + } + else { + var_f31 = 200.0f + var_f30; + } + } + var_f31 += work->unk_7C; + if (var_f31 > (350.0f + work->unk_18)) { + var_f31 = 350.0f + work->unk_18; + } + else if (var_f31 < (work->unk_18 - 350.0f)) { + var_f31 = work->unk_18 - 350.0f; + } + if (var_r29 != -1) { + var_f31 -= object->trans.x; + if (var_f31 > 30.000002f) { + work->unk_48 = 64.0f; + } + else if (var_f31 < -30.000002f) { + work->unk_48 = -64.0f; + } + var_r27 = fn_1_11B64(var_r29); + if (var_r27 != NULL) { + if (var_r27->unk_14.y > 450.0f) { + var_r28 = 3; + } + else { + var_r28 = 2; + } + } + if (var_r28 > work->unk_34) { + work->unk_44 |= 0x100; + return; + } + if (var_r28 < work->unk_34) { + work->unk_44 |= 0x200; + } + } + else if (var_r28 > work->unk_34) { + work->unk_44 |= 0x100; + } +} + +void fn_1_FC9C(omObjData *object) +{ + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + M430PlayerWork *work; + s32 var_r29; + M430PlayerBss174Struct *var_r28; + s32 var_r27; + + work = object->data; + var_r28 = &lbl_1_bss_174[work->unk_04]; + if (var_r28->unk_08 != 3) { + work->unk_0A = 3; + } + if (--work->unk_74 < 0) { + work->unk_7C = 75.0f * (3 - work->unk_0A) * ((frand() & 0x7F) / 127.0f); + if ((frand() & 1) != 0) { + work->unk_7C *= -1.0f; + } + work->unk_74 = 0x1E + (frand() % 60) + (4 - work->unk_0A) * 0x3C; + } + var_r29 = fn_1_11A1C(work->unk_04, object->trans.z, &sp8); + var_f31 = sp8.x; + var_f30 = sp8.z; + if (var_r29 == work->unk_78) { + var_r29 = fn_1_11A1C(work->unk_04, 100.0f + var_f30, &sp8); + var_f31 = sp8.x; + var_f30 = sp8.z; + } + else if (work->unk_78 == -1) { + var_r27 = fn_1_11A1C(work->unk_04, 100.0f + var_f30, &sp8); + var_f29 = sp8.x; + if (work->unk_0A >= 2) { + if (fabs(var_f31 - object->trans.x) > 300.0) { + if (fabs(var_f29 - object->trans.x) < 300.0) { + if ((fabs(var_f30 - object->trans.z) < 1800.0) && (work->unk_34 == 3)) { + work->unk_78 = var_r29; + var_r29 = var_r27; + var_f31 = var_f29; + } + } + } + } + } + else { + work->unk_78 = -1; + } + var_f31 += work->unk_7C; + if (var_f31 > (350.0f + work->unk_18)) { + var_f31 = 350.0f + work->unk_18; + } + else if (var_f31 < (work->unk_18 - 350.0f)) { + var_f31 = work->unk_18 - 350.0f; + } + if (var_r29 != -1) { + var_f31 -= object->trans.x; + if (var_f31 > 30.000002f) { + work->unk_48 = 64.0f; + return; + } + if (var_f31 < -30.000002f) { + work->unk_48 = -64.0f; + } + } +} + +void fn_1_100A0(void) +{ + M430PlayerBss170Struct *var_r31; + ModelData *var_r30; + s32 var_r29; + s32 var_r28; + void *var_r27; + void *var_r26; + + var_r31 = lbl_1_bss_170 = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(M430PlayerBss170Struct), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, 2 * sizeof(M430PlayerBss170Struct)); + for (var_r28 = 0; var_r28 < 2; var_r31++) { + var_r31->unk_00 = var_r28; + var_r31->unk_04 = Hu3DHookFuncCreate(fn_1_10948); + Hu3DModelLayerSet(var_r31->unk_04, 6); + Hu3DModelCameraSet(var_r31->unk_04, 3); + var_r30 = &Hu3DData[var_r31->unk_04]; + var_r30->unk_120 = var_r31; + var_r31->unk_08 = 1; + var_r31->unk_0C = 0.0f; + var_r31->unk_10 = var_r31->unk_14 = var_r31->unk_18 = 0.0f; + var_r31->unk_1C = var_r31->unk_20 = var_r31->unk_24 = 500.0f; + var_r31->unk_28 = var_r31->unk_2C = var_r31->unk_30 = 1000.0f; + var_r31->unk_34 = var_r31->unk_38 = var_r31->unk_3C = 0.0f; + var_r31->unk_40 = var_r31->unk_44 = var_r31->unk_48 = 1000.0f; + var_r31->unk_58 = 0; + var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC0, MEMORY_DEFAULT_NUM); + memset(var_r31->unk_4C, 0, 0xC0); + var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xC0, MEMORY_DEFAULT_NUM); + memset(var_r31->unk_50, 0, 0xC0); + var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x80, MEMORY_DEFAULT_NUM); + memset(var_r31->unk_54, 0, 0x80); + var_r30 = &Hu3DData[var_r31->unk_04]; + var_r27 = HuMemDirectMallocNum(HEAP_DATA, 0x200, var_r30->unk_48); + var_r26 = var_r27; + DCFlushRange(var_r27, 0x200); + GXBeginDisplayList(var_r26, 0x200); + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0x10); + for (var_r29 = 0; var_r29 < 0x10; var_r29++) { + GXUnknownu16(var_r29); + GXUnknownu16(0); + GXUnknownu16(var_r29); + } + var_r31->unk_5C = GXEndDisplayList(); + var_r31->unk_60 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_5C, var_r30->unk_48); + memcpy(var_r31->unk_60, var_r27, var_r31->unk_5C); + DCFlushRange(var_r31->unk_60, var_r31->unk_5C); + HuMemDirectFree(var_r27); + fn_1_1061C(var_r31); + var_r28++; + } +} + +void fn_1_1033C(void) +{ + float var_f31; + M430PlayerBss170Struct *var_r31; + s32 var_r30; + s32 var_r29; + + for (var_r31 = lbl_1_bss_170, var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) { + if (var_r31->unk_08 != 0) { + var_r31->unk_34 = var_r31->unk_38 = var_r31->unk_3C = 0.0f; + var_r31->unk_40 = var_r31->unk_28 - var_r31->unk_10; + var_r31->unk_44 = var_r31->unk_2C - var_r31->unk_14; + var_r31->unk_48 = var_r31->unk_30 - var_r31->unk_18; + var_f31 = 0.5f * (var_r31->unk_34 + var_r31->unk_40); + var_r31->unk_1C = var_f31 + (var_r31->unk_0C * (var_r31->unk_40 - var_f31)); + var_f31 = 0.5f * (var_r31->unk_38 + var_r31->unk_44); + var_r31->unk_20 = var_f31 + (var_r31->unk_0C * (var_r31->unk_38 - var_f31)); + var_f31 = 0.5f * (var_r31->unk_3C + var_r31->unk_48); + var_r31->unk_24 = var_f31 + (var_r31->unk_0C * (var_r31->unk_3C - var_f31)); + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + var_f31 = var_r30 / 15.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + fn_1_12F20(var_f31, &var_r31->unk_34, &var_r31->unk_1C, &var_r31->unk_40, (float *)&var_r31->unk_4C[var_r30]); + } + fn_1_1061C(var_r31); + Hu3DModelPosSet(var_r31->unk_04, var_r31->unk_10, var_r31->unk_14, var_r31->unk_18); + } + } +} + +void fn_1_1053C(void) { } + +void fn_1_10540(s32 arg0, s32 arg1, float arg8, float arg9, float argA) +{ + M430PlayerBss170Struct *var_r31 = &lbl_1_bss_170[arg0]; + if (arg1 == 0) { + var_r31->unk_10 = arg8; + var_r31->unk_14 = arg9; + var_r31->unk_18 = argA; + return; + } + var_r31->unk_28 = arg8; + var_r31->unk_2C = arg9; + var_r31->unk_30 = argA; +} + +void fn_1_1058C(s32 arg0, float arg8) +{ + M430PlayerBss170Struct *var_r31 = &lbl_1_bss_170[arg0]; + var_r31->unk_0C = arg8; +} + +void fn_1_105B8(s32 arg0) +{ + M430PlayerBss170Struct *var_r31 = &lbl_1_bss_170[arg0]; + if (var_r31->unk_08 != 0) { + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + } + var_r31->unk_08 = 0; +} + +void fn_1_1061C(M430PlayerBss170Struct *var_r31) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f27; + float var_f25; + s32 var_r30; + + var_f27 = 0.0f; + for (var_r30 = 0xF; var_r30 >= 0; var_r30--) { + var_r31->unk_50[var_r30] = var_r31->unk_4C[var_r30]; + var_r31->unk_54[var_r30] = lbl_1_data_300; + if (var_r30 == 0) { + var_f27 = 0.0f; + var_r31->unk_54[var_r30].y = var_f27; + } + else { + var_f31 = var_r31->unk_4C[var_r30 - 1].x - var_r31->unk_4C[var_r30].x; + var_f30 = var_r31->unk_4C[var_r30 - 1].y - var_r31->unk_4C[var_r30].y; + var_f29 = var_r31->unk_4C[var_r30 - 1].z - var_r31->unk_4C[var_r30].z; + var_f25 = sqrtf((var_f29 * var_f29) + ((var_f31 * var_f31) + (var_f30 * var_f30))); + var_f27 -= 0.01f * var_f25; + var_r31->unk_54[var_r30].y = var_f27; + } + } + DCFlushRangeNoSync(var_r31->unk_50, 0xC0); + DCFlushRangeNoSync(var_r31->unk_54, 0x80); + PPCSync(); +} + +void fn_1_10948(ModelData *var_r29, Mtx var_r30) +{ + Mtx sp8; + M430PlayerBss170Struct *var_r31 = var_r29->unk_120; + GXLoadPosMtxImm(var_r30, 0); + PSMTXInvXpose(var_r30, sp8); + GXLoadNrmMtxImm(sp8, 0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetNumChans(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, 0, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_RASC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVREG0); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVREG0); + GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_VTX, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_SPEC); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXSetZCompLoc(0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_ONE, GX_BL_ZERO, GX_LO_NOOP); + GXSetLineWidth(0x10, GX_TO_ZERO); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, var_r31->unk_50, 0xC); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &lbl_1_data_308, 4); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_TEX0, var_r31->unk_54, 8); + GXCallDisplayList(var_r31->unk_60, var_r31->unk_5C); +} + +void fn_1_10B88(void) +{ + M430PlayerBss16CStruct *var_r31; + s32 var_r30; + + var_r31 = lbl_1_bss_16C = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10 * sizeof(M430PlayerBss16CStruct), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, 0x10 * sizeof(M430PlayerBss16CStruct)); + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + var_r31->unk_00 = var_r30; + if (var_r30 == 0) { + var_r31->unk_04 = Hu3DModelCreateFile(0x3D0023); + } + else { + var_r31->unk_04 = Hu3DModelLink(lbl_1_bss_16C[0].unk_04); + } + Hu3DModelLayerSet(var_r31->unk_04, 2); + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + var_r31->unk_08 = Hu3DModelCreateFile(0x3D0024); + Hu3DModelLayerSet(var_r31->unk_08, 2); + Hu3DModelAttrSet(var_r31->unk_08, HU3D_ATTR_DISPOFF); + var_r31->unk_0C = 0; + var_r31->unk_10 = 0; + var_r31->unk_14 = 0; + var_r31->unk_18 = 0.0f; + var_r31->unk_1C.x = var_r31->unk_1C.y = var_r31->unk_1C.z = 0.0f; + var_r31->unk_28 = var_r31->unk_2C = var_r31->unk_30 = 0.0f; + var_r31->unk_34 = var_r31->unk_38 = var_r31->unk_3C = 1.0f; + } +} + +void fn_1_10D1C(void) +{ + M430PlayerBss16CStruct *var_r31; + s32 var_r30; + M430PlayerBss174Struct *var_r29; + + for (var_r31 = lbl_1_bss_16C, var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if (var_r31->unk_10 != 0) { + var_r29 = &lbl_1_bss_174[var_r31->unk_0C]; + switch (var_r31->unk_10) { + case 1: + if (var_r31->unk_1C.y < 0.0f) { + var_r31->unk_1C.y += 1.0f; + } + break; + case 2: + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->unk_08, HU3D_ATTR_DISPOFF); + Hu3DMotionTimeSet(var_r31->unk_08, 0.0f); + Hu3DMotionSpeedSet(var_r31->unk_08, 1.0f); + var_r31->unk_10 = 3; + break; + case 3: + break; + } + if (var_r31->unk_1C.z > (1000.0f + var_r29->unk_14)) { + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk_08, HU3D_ATTR_DISPOFF); + var_r31->unk_10 = 0; + } + Hu3DModelPosSet(var_r31->unk_04, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z); + Hu3DModelRotSet(var_r31->unk_04, var_r31->unk_28, var_r31->unk_2C, var_r31->unk_30); + Hu3DModelScaleSet(var_r31->unk_04, var_r31->unk_34, var_r31->unk_38, var_r31->unk_3C); + Hu3DModelPosSet(var_r31->unk_08, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z); + Hu3DModelRotSet(var_r31->unk_08, var_r31->unk_28, var_r31->unk_2C, var_r31->unk_30); + Hu3DModelScaleSet(var_r31->unk_08, var_r31->unk_34, var_r31->unk_38, var_r31->unk_3C); + } + } +} + +void fn_1_10F20(void) { } + +s32 fn_1_10F24(s32 var_r29, float sp8, float spC, float sp10) +{ + M430PlayerBss16CStruct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_16C, var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if (var_r31->unk_10 == 0) { + break; + } + } + if (var_r30 >= 0x10) { + return -1; + } + if (var_r29 == 0) { + Hu3DModelCameraSet(var_r31->unk_04, 1); + Hu3DModelCameraSet(var_r31->unk_08, 1); + } + else { + Hu3DModelCameraSet(var_r31->unk_04, 2); + Hu3DModelCameraSet(var_r31->unk_08, 2); + } + Hu3DModelAttrReset(var_r31->unk_04, HU3D_ATTR_DISPOFF); + var_r31->unk_0C = var_r29; + var_r31->unk_10 = 1; + var_r31->unk_14 = 0; + var_r31->unk_1C.x = sp8; + var_r31->unk_1C.y = spC; + var_r31->unk_1C.z = sp10; + var_r31->unk_28 = var_r31->unk_2C = var_r31->unk_30 = 0.0f; + var_r31->unk_34 = var_r31->unk_38 = var_r31->unk_3C = 1.0f; + Hu3DModelPosSet(var_r31->unk_04, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z); + Hu3DModelRotSet(var_r31->unk_04, var_r31->unk_28, var_r31->unk_2C, var_r31->unk_30); + Hu3DModelScaleSet(var_r31->unk_04, var_r31->unk_34, var_r31->unk_38, var_r31->unk_3C); +} + +s32 fn_1_110A8(s32 arg0, float arg8, float arg9, float argA, s32 arg1) +{ + float var_f31; + float var_f30; + M430PlayerBss16CStruct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_16C, var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + if ((var_r31->unk_10 == 1) && (var_r31->unk_0C == arg0)) { + var_f31 = arg8 - var_r31->unk_1C.x; + var_f30 = argA - var_r31->unk_1C.z; + if ((fabs(var_f31) < 50.0) && (fabs(var_f30) < 50.0)) { + break; + } + } + } + if (var_r30 >= 0x20) { + return 0; + } + if (arg1 != 0) { + var_r31->unk_18 = 50.0f; + var_r31->unk_10 = 2; + var_r31->unk_14 = 0; + } + return 1; +} + +s32 fn_1_111BC(s32 arg0, float arg8, Vec *arg1) +{ + float var_f31; + float var_f30; + M430PlayerBss16CStruct *var_r31; + s32 var_r30; + s32 var_r29; + + var_r31 = lbl_1_bss_16C; + var_r29 = -1; + var_f31 = 10000.0f; + arg1->x = arg1->y = arg1->z = 0.0f; + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if ((var_r31->unk_10 == 1) && (var_r31->unk_0C == arg0) && !(var_r31->unk_1C.z > arg8)) { + var_f30 = fabs(var_r31->unk_1C.z - (arg8 - 100.0f)); + if (var_f30 < var_f31) { + var_f31 = var_f30; + var_r29 = var_r30; + } + } + } + if (var_r29 == -1) { + return -1; + } + var_r31 = &lbl_1_bss_16C[var_r29]; + *arg1 = var_r31->unk_1C; + return var_r29; +} + +void fn_1_11314(s32 arg0) +{ + M430PlayerBss16CStruct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_16C, var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if ((var_r31->unk_10 != 0) && (var_r31->unk_0C == arg0)) { + var_r31->unk_10 = 0; + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk_08, HU3D_ATTR_DISPOFF); + } + } +} + +void fn_1_113AC(void) +{ + M430PlayerBss168Struct *var_r31; + s32 var_r30; + + var_r31 = lbl_1_bss_168 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x20 * sizeof(M430PlayerBss168Struct), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, 0x20 * sizeof(M430PlayerBss168Struct)); + for (var_r30 = 0; var_r30 < 0x20; var_r31++) { + var_r31->unk_00 = var_r30; + if (var_r30 == 0) { + var_r31->unk_04 = Hu3DModelCreateFile(0x3D0022); + } + else { + var_r31->unk_04 = Hu3DModelLink(lbl_1_bss_168[0].unk_04); + } + Hu3DModelLayerSet(var_r31->unk_04, 7); + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + var_r31->unk_08 = 0; + var_r31->unk_0C = 0; + var_r31->unk_10 = 0; + var_r31->unk_14.x = var_r31->unk_14.y = var_r31->unk_14.z = 0.0f; + var_r31->unk_20.x = var_r31->unk_20.y = var_r31->unk_20.z = 0.0f; + var_r31->unk_2C.x = var_r31->unk_2C.y = var_r31->unk_2C.z = 1.0f; + var_r30++; + } +} + +void fn_1_114F0(void) +{ + M430PlayerBss168Struct *var_r31; + s32 var_r30; + M430PlayerBss174Struct *var_r29; + + for (var_r31 = lbl_1_bss_168, var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + if (var_r31->unk_0C != 0) { + switch (var_r31->unk_0C) { + case 1: + var_r31->unk_20.y += 7.5; + break; + case 2: + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + var_r31->unk_0C = 0; + break; + } + var_r29 = &lbl_1_bss_174[var_r31->unk_08]; + if (var_r31->unk_14.z > (1000.0f + var_r29->unk_14)) { + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + var_r31->unk_0C = 0; + } + else { + Hu3DModelPosSet(var_r31->unk_04, var_r31->unk_14.x, var_r31->unk_14.y, var_r31->unk_14.z); + Hu3DModelRotSet(var_r31->unk_04, var_r31->unk_20.x, var_r31->unk_20.y, var_r31->unk_20.z); + Hu3DModelScaleSet(var_r31->unk_04, var_r31->unk_2C.x, var_r31->unk_2C.y, var_r31->unk_2C.z); + } + } + } +} + +void fn_1_11644(void) { } + +s32 fn_1_11648(s32 arg0, float arg1, float arg8, float arg9) +{ + M430PlayerBss168Struct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_168, var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + if (var_r31->unk_0C == 0) { + break; + } + } + if (var_r30 >= 0x20) { + return -1; + } + if (arg0 == 0) { + Hu3DModelCameraSet(var_r31->unk_04, 1); + } + else { + Hu3DModelCameraSet(var_r31->unk_04, 2); + } + Hu3DModelAttrReset(var_r31->unk_04, HU3D_ATTR_DISPOFF); + var_r31->unk_08 = arg0; + var_r31->unk_0C = 1; + var_r31->unk_14.x = arg1; + var_r31->unk_14.y = arg8; + var_r31->unk_14.z = arg9; + var_r31->unk_20.x = var_r31->unk_20.y = var_r31->unk_20.z = 0.0f; + var_r31->unk_2C.x = var_r31->unk_2C.y = var_r31->unk_2C.z = 1.0f; + Hu3DModelPosSet(var_r31->unk_04, var_r31->unk_14.x, var_r31->unk_14.y, var_r31->unk_14.z); + Hu3DModelRotSet(var_r31->unk_04, var_r31->unk_20.x, var_r31->unk_20.y, var_r31->unk_20.z); + Hu3DModelScaleSet(var_r31->unk_04, var_r31->unk_2C.x, var_r31->unk_2C.y, var_r31->unk_2C.z); +} + +s32 fn_1_117A4(s32 arg0, float arg8, float arg9, float argA, s32 arg1) +{ + float var_f31; + float var_f30; + float var_f27; + M430PlayerBss168Struct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_168, var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + if ((var_r31->unk_0C == 1) && (var_r31->unk_08 == arg0)) { + var_f31 = var_r31->unk_14.x - arg8; + var_f27 = var_r31->unk_14.y - arg9; + var_f30 = var_r31->unk_14.z - argA; + if ((fabs(var_f27) < 100.0) && (sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)) < 100.0f)) { + break; + } + } + } + if (var_r30 >= 0x20) { + return -1; + } + if (arg1 != 0) { + fn_1_11F90(var_r31->unk_08, var_r31->unk_14.x, var_r31->unk_14.y, var_r31->unk_14.z); + var_r31->unk_0C = 2; + var_r31->unk_10 = 0; + } + return 1; +} + +s32 fn_1_11A1C(s32 arg0, float arg8, Vec *arg1) +{ + float var_f31; + float var_f30; + M430PlayerBss168Struct *var_r31; + s32 var_r30; + s32 var_r29; + + var_r31 = lbl_1_bss_168; + var_r29 = -1; + var_f31 = 10000.0f; + arg1->x = arg1->y = arg1->z = 0.0f; + for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + if ((var_r31->unk_0C == 1) && (var_r31->unk_08 == arg0) && !(var_r31->unk_14.z > arg8)) { + var_f30 = fabs(var_r31->unk_14.z - arg8); + if (var_f30 < var_f31) { + var_f31 = var_f30; + var_r29 = var_r30; + } + } + } + if (var_r29 == -1) { + return -1; + } + var_r31 = &lbl_1_bss_168[var_r29]; + *arg1 = var_r31->unk_14; + return var_r29; +} + +M430PlayerBss168Struct *fn_1_11B64(s32 arg0) +{ + if ((arg0 < 0) || (arg0 >= 0x20)) { + return NULL; + } + return &lbl_1_bss_168[arg0]; +} + +void fn_1_11B94(s32 arg0) +{ + M430PlayerBss168Struct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_168, var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + if ((var_r31->unk_0C != 0) && (var_r31->unk_08 == arg0)) { + var_r31->unk_0C = 0; + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + } + } +} + +void fn_1_11C1C(void) +{ + M430PlayerBss164Struct *var_r31; + s32 var_r30; + + var_r31 = lbl_1_bss_164 = HuMemDirectMallocNum(HEAP_SYSTEM, 8 * sizeof(M430PlayerBss164Struct), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, 8 * sizeof(M430PlayerBss164Struct)); + for (var_r30 = 0; var_r30 < 8; var_r30++, var_r31++) { + if (var_r30 == 0) { + var_r31->unk_14 = HuSprAnimRead(HuDataReadNum(0x3D0026, MEMORY_DEFAULT_NUM)); + } + else { + var_r31->unk_14 = lbl_1_bss_164[0].unk_14; + } + var_r31->unk_00 = var_r30; + var_r31->unk_04 = Hu3DParticleCreate(var_r31[0].unk_14, 0x20); + Hu3DModelLayerSet(var_r31->unk_04, 7); + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r31->unk_04, HU3D_ATTR_PARTICLE_KILL); + var_r31->unk_08 = 0; + var_r31->unk_0C = 0; + var_r31->unk_10 = 0; + + var_r31->unk_18.x = var_r31->unk_18.y = var_r31->unk_18.z = 0.0f; + var_r31->unk_24.x = var_r31->unk_24.y = var_r31->unk_24.z = 0.0f; + var_r31->unk_30.x = var_r31->unk_30.y = var_r31->unk_30.z = 1.0f; + } +} + +void fn_1_11D70(void) +{ + M430PlayerBss164Struct *var_r31; + HsfanimStruct01 *var_r30; + ParticleData *var_r29; + s32 var_r28; + s32 var_r27; + M430PlayerBss174Struct *var_r26; + ModelData *var_r25; + s32 var_r24; + + for (var_r31 = lbl_1_bss_164, var_r28 = 0; var_r28 < 8; var_r28++, var_r31++) { + if (var_r31->unk_0C != 0) { + if (var_r31->unk_10 > 1) { + var_r25 = &Hu3DData[var_r31->unk_04]; + var_r29 = var_r25->unk_120; + for (var_r30 = var_r29->unk_48, var_r27 = 0; var_r27 < var_r29->unk_30; var_r27++, var_r30++) { + if (++var_r30->unk00_s16 > var_r30->unk02) { + var_r24 = var_r30->unk40.a - 9; + if (var_r24 < 0) { + var_r30->unk2C = 0.0f; + } + else { + var_r30->unk40.a = var_r24; + } + } + var_r30->unk2C *= 0.975; + var_r30->unk34.x += var_r30->unk08.x; + var_r30->unk34.y += var_r30->unk08.y; + var_r30->unk34.z += var_r30->unk08.z; + var_r30->unk08.y -= 0.3103333379576603; + } + } + var_r26 = &lbl_1_bss_174[var_r31->unk_08]; + var_r31->unk_18.z -= var_r26->unk_1C; + if (++var_r31->unk_10 > 0x78) { + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + var_r31->unk_0C = 0; + } + else { + Hu3DModelPosSet(var_r31->unk_04, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); + Hu3DModelRotSet(var_r31->unk_04, var_r31->unk_24.x, var_r31->unk_24.y, var_r31->unk_24.z); + Hu3DModelScaleSet(var_r31->unk_04, var_r31->unk_30.x, var_r31->unk_30.y, var_r31->unk_30.z); + } + } + } +} + +void fn_1_11F60(void) +{ + fn_1_133A4(lbl_1_bss_164[0].unk_14); +} + +s32 fn_1_11F90(s32 arg0, float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + M430PlayerBss164Struct *var_r31; + HsfanimStruct01 *var_r30; + s32 var_r29; + ParticleData *var_r28; + ModelData *var_r27; + + for (var_r31 = lbl_1_bss_164, var_r29 = 0; var_r29 < 8; var_r29++, var_r31++) { + if (var_r31->unk_0C == 0) { + break; + } + } + if (var_r29 >= 8) { + return -1; + } + if (arg0 == 0) { + Hu3DModelCameraSet(var_r31->unk_04, 1); + } + else { + Hu3DModelCameraSet(var_r31->unk_04, 2); + } + Hu3DModelAttrReset(var_r31->unk_04, HU3D_ATTR_DISPOFF); + var_r31->unk_08 = arg0; + var_r31->unk_0C = 1; + var_r31->unk_10 = 0; + var_r27 = &Hu3DData[var_r31->unk_04]; + var_r28 = var_r27->unk_120; + var_r28->unk_2C = 1; + for (var_r30 = var_r28->unk_48, var_r29 = 0; var_r29 < var_r28->unk_30; var_r29++, var_r30++) { + var_f30 = (frand() % 30) + 0x4B; + var_f29 = frand() % 360; + var_f27 = sind(var_f30); + var_f28 = cosd(var_f30); + var_f26 = 0.8f + (0.3f * (0.007874016f * (frand() % 255))); + var_f31 = 0.35f; + var_r30->unk08.x = var_f31 * (0.6499999761581421 * (50.0 * (var_f28 * sind(var_f29)))); + var_r30->unk08.y = var_f31 * (50.0f * var_f27 * var_f26); + var_r30->unk08.z = var_f31 * (0.6499999761581421 * (50.0 * (var_f28 * cosd(var_f29)))); + var_r30->unk00 = 0; + var_r30->unk02 = (frand() % 7) + 0xA; + var_r30->unk2C = 45.0f; + var_r30->unk34.x = 0.25f * ((frand() & 0x7F) - 0x40); + var_r30->unk34.y = 0.25f * ((frand() & 0x7F) - 0x40); + var_r30->unk34.z = 0.25f * ((frand() & 0x7F) - 0x40); + var_r30->unk40.r = (frand() % 64) + 0xC0; + var_r30->unk40.g = (frand() % 64) + 0xC0; + var_r30->unk40.b = (frand() % 64) + 0xC0; + var_r30->unk40.a = 0xFF; + } + var_r31->unk_18.x = arg8; + var_r31->unk_18.y = arg9; + var_r31->unk_18.z = argA; + var_r31->unk_24.x = var_r31->unk_24.y = var_r31->unk_24.z = 0.0f; + var_r31->unk_30.x = var_r31->unk_30.y = var_r31->unk_30.z = 1.0f; + Hu3DModelPosSet(var_r31->unk_04, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); + Hu3DModelRotSet(var_r31->unk_04, var_r31->unk_24.x, var_r31->unk_24.y, var_r31->unk_24.z); + Hu3DModelScaleSet(var_r31->unk_04, var_r31->unk_30.x, var_r31->unk_30.y, var_r31->unk_30.z); +} + +void fn_1_12550(s32 arg0) +{ + M430PlayerBss164Struct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_164, var_r30 = 0; var_r30 < 8; var_r30++, var_r31++) { + if (var_r31->unk_0C != 0) { + var_r31->unk_0C = 0; + Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); + } + } +} + +void fn_1_125C4(void) +{ + M430PlayerBss160Struct *var_r31; + s32 var_r30; + s32 var_r29; + + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(M430PlayerBss160Struct), MEMORY_DEFAULT_NUM); + lbl_1_bss_160 = var_r31; + for (var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) { + if (var_r29 == 0) { + var_r31->unk_00 = 0x90; + } + else { + var_r31->unk_00 = 0x1B0; + } + var_r31->unk_04 = 0x198; + var_r31->unk_08 = 0; + var_r31->unk_0C = 0; + var_r31->unk_B8 = 0x15; + var_r31->unk_BC = 0; + for (var_r30 = 0; var_r30 < 6; var_r30++) { + switch (var_r30) { + case 0: + case 1: + var_r31->unk_10[var_r30] = espEntry(0x610033, 1, 0); + espPriSet(var_r31->unk_10[var_r30], 0x40); + var_r31->unk_28[var_r30][0] = (var_r30 * 0x14) + 0xB; + var_r31->unk_28[var_r30][1] = 0; + var_r31->unk_70[var_r30][0] = var_r31->unk_28[var_r30][0] - var_r31->unk_B8; + var_r31->unk_70[var_r30][1] = var_r31->unk_28[var_r30][1] - var_r31->unk_BC; + break; + case 2: + if (var_r29 == 0) { + var_r31->unk_10[var_r30] = espEntry(0x61001B, 1, 0); + } + else { + var_r31->unk_10[var_r30] = espEntry(0x61001C, 1, 0); + } + espPriSet(var_r31->unk_10[var_r30], 0xFF); + var_r31->unk_28[var_r30][0] = 0; + var_r31->unk_28[var_r30][1] = 0; + break; + case 3: + var_r31->unk_10[var_r30] = espEntry(0x61001D, 1, 0); + espPriSet(var_r31->unk_10[var_r30], 0x100); + espTPLvlSet(var_r31->unk_10[var_r30], 0.6000000238418579); + espColorSet(var_r31->unk_10[var_r30], 0, 0, 0); + var_r31->unk_28[var_r30][0] = 0; + var_r31->unk_28[var_r30][1] = 0; + break; + case 4: + var_r31->unk_10[var_r30] = espEntry(0x610008, 1, 0); + espPriSet(var_r31->unk_10[var_r30], 0x80); + var_r31->unk_28[var_r30][0] = -0x21; + var_r31->unk_28[var_r30][1] = 0; + break; + case 5: + var_r31->unk_10[var_r30] = espEntry(0x3D0028, 1, 0); + espPriSet(var_r31->unk_10[var_r30], 0x80); + espZRotSet(var_r31->unk_10[var_r30], 45.0); + var_r31->unk_28[var_r30][0] = -0xA; + var_r31->unk_28[var_r30][1] = 0; + break; + } + espDispOn(var_r31->unk_10[var_r30]); + espDrawNoSet(var_r31->unk_10[var_r30], 0); + espAttrSet(var_r31->unk_10[var_r30], HUSPR_ATTR_NOANIM); + espPosSet(var_r31->unk_10[var_r30], var_r31->unk_00 + var_r31->unk_28[var_r30][0], var_r31->unk_04 + var_r31->unk_28[var_r30][1]); + espBankSet(var_r31->unk_10[var_r30], 0); + } + } + lbl_1_bss_15C = 1; + fn_1_12DF0(0); +} + +void fn_1_129CC(void) +{ + s32 sp8[4]; + float var_f31; + float var_f30; + float var_f29; + M430PlayerBss160Struct *var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + for (var_r31 = lbl_1_bss_160, var_r28 = 0; var_r28 < 2; var_r28++, var_r31++) { + var_r29 = lbl_1_bss_174[var_r28].unk_20; + if (lbl_1_bss_15C != 0) { + if (var_r29 != var_r31->unk_08) { + var_r31->unk_08 = var_r29; + var_r31->unk_0C = 0x14; + } + if (var_r31->unk_0C != 0) { + var_f31 = 1.0 + (0.800000011920929 * sind((180.0f * (var_r31->unk_0C / 20.0f)))); + var_r31->unk_0C--; + } + else { + var_f31 = 1.0f; + } + if ((sp8[0] = var_r29 / 10) > 9) { + sp8[0] = 9; + } + var_r29 -= sp8[0] * 0xA; + sp8[1] = var_r29; + if (var_r29 > 9) { + sp8[1] = 9; + } + for (var_r30 = 0; var_r30 < 6; var_r30++) { + if (var_r30 < 2) { + var_f30 = (var_r31->unk_00 + var_r31->unk_B8) + (var_r31->unk_70[var_r30][0] * var_f31); + var_f29 = (var_r31->unk_04 + var_r31->unk_BC) + (var_r31->unk_70[var_r30][1] * var_f31); + espBankSet(var_r31->unk_10[var_r30], sp8[var_r30]); + espScaleSet(var_r31->unk_10[var_r30], var_f31, var_f31); + } + else { + var_f30 = var_r31->unk_00 + var_r31->unk_28[var_r30][0]; + var_f29 = var_r31->unk_04 + var_r31->unk_28[var_r30][1]; + } + if (sp8[var_r30] < 0) { + sp8[var_r30] = 0; + } + espPosSet(var_r31->unk_10[var_r30], var_f30, var_f29); + } + } + } +} + +void fn_1_12D74(void) +{ + M430PlayerBss160Struct *var_r31; + s32 var_r30; + s32 var_r29; + + for (var_r31 = lbl_1_bss_160, var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) { + for (var_r30 = 0; var_r30 < 6; var_r30++) { + espKill(var_r31->unk_10[var_r30]); + } + } +} + +void fn_1_12DF0(s32 arg0) +{ + M430PlayerBss160Struct *var_r31; + s32 var_r30; + s32 var_r29; + + var_r31 = lbl_1_bss_160; + lbl_1_bss_15C = arg0; + for (var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) { + for (var_r30 = 0; var_r30 < 6; var_r30++) { + if (arg0 != 0) { + espAttrReset(var_r31->unk_10[var_r30], HUSPR_ATTR_DISPOFF); + } + else { + espAttrSet(var_r31->unk_10[var_r30], HUSPR_ATTR_DISPOFF); + } + } + } +} + +float fn_1_12EA8(float arg8, float arg9, float argA, float argB) +{ + float var_f31; + float var_f30; + + var_f31 = 1.0 - arg8; + var_f30 = (argB * (arg8 * arg8)) + ((arg9 * (var_f31 * var_f31)) + (2.0 * (argA * (var_f31 * arg8)))); + return var_f30; +} + +void fn_1_12F20(float arg8, float *var_r3, float *var_r4, float *var_r5, float *var_r6) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *var_r6++ = fn_1_12EA8(arg8, *var_r3++, *var_r4++, *var_r5++); + } +} + +float fn_1_1303C(float arg8, float arg9) +{ + float var_f31; + + if (arg8 >= 360.0f) { + arg8 -= 360.0f; + } + else if (arg8 < 0.0f) { + arg8 += 360.0f; + } + if (arg9 >= 360.0f) { + arg9 -= 360.0f; + } + else if (arg9 < 0.0f) { + arg9 += 360.0f; + } + var_f31 = arg8 - arg9; + if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } + else if (var_f31 >= 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} + +float fn_1_13154(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + float var_f26; + + if (arg8 >= 360.0) { + arg8 -= 360.0; + } + else if (arg8 < 0.0) { + arg8 += 360.0; + } + if (arg9 >= 360.0) { + arg9 -= 360.0; + } + else if (arg9 < 0.0) { + arg9 += 360.0; + } + var_f30 = 360.0 + (arg8 - arg9); + if (fabs(var_f30) >= 360.0) { + var_f30 = fmod(var_f30, 360.0); + } + if (var_f30 < 180.0) { + if (var_f30 <= argA) { + var_f31 = var_f30; + } + else { + var_f31 = argA; + } + } + else if ((360.0 - var_f30) <= argA) { + var_f31 = -(360.0 - var_f30); + } + else { + var_f31 = -argA; + } + var_f31 += arg9; + if (var_f31 >= 360.0) { + var_f31 -= 360.0; + } + else if (var_f31 < 0.0) { + var_f31 += 360.0; + } + return var_f31; +} + +void fn_1_133A4(AnimData *arg0) +{ + arg0->useNum = 0; + HuSprAnimKill(arg0); +} + +void fn_1_133DC(Mtx arg0, Vec *arg1) +{ + Vec sp8; + + sp8.x = (arg0[0][2] * arg1->z) + ((arg0[0][0] * arg1->x) + (arg0[0][1] * arg1->y)); + sp8.y = (arg0[1][2] * arg1->z) + ((arg0[1][0] * arg1->x) + (arg0[1][1] * arg1->y)); + sp8.z = (arg0[2][2] * arg1->z) + ((arg0[2][0] * arg1->x) + (arg0[2][1] * arg1->y)); + *arg1 = sp8; +} From 2455408432817ab0f47dbb9af47aec382a4b3f35 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Fri, 10 Jan 2025 16:20:22 -0800 Subject: [PATCH 244/311] Applying sind/cosd/atan2d macros across the board (#518) --- config/GMPE01_00/rels/m424Dll/symbols.txt | 10 +- include/REL/modeltestDll.h | 5 +- src/REL/instDll/main.c | 4 +- src/REL/m407dll/camera.c | 8 +- src/REL/m407dll/player.c | 6 +- src/REL/m409Dll/main.c | 26 +- src/REL/m412Dll/main.c | 4 +- src/REL/m414Dll/main.c | 6 +- src/REL/m417Dll/player.c | 2 +- src/REL/m417Dll/water.c | 2 +- src/REL/m424Dll/claw.c | 2 +- src/REL/m425Dll/thwomp.c | 2 +- src/REL/m440Dll/main.c | 22 +- src/REL/m440Dll/object.c | 14 +- src/REL/m443Dll/player.c | 4 +- src/REL/m444dll/shadow.c | 4 +- src/REL/m446Dll/camera.c | 4 +- src/REL/m446Dll/card.c | 8 +- src/REL/m446Dll/cursor.c | 4 +- src/REL/m446Dll/player.c | 6 +- src/REL/mentDll/common.c | 6 +- src/REL/modeltestDll/main.c | 46 +- src/REL/modeltestDll/modeltest00.c | 42 +- src/REL/modeseldll/filesel.c | 52 +- src/REL/modeseldll/main.c | 44 +- src/REL/option/record.c | 6 +- src/REL/resultDll/battle.c | 4 +- src/REL/resultDll/main.c | 46 +- src/REL/w03Dll/condor.c | 24 +- src/REL/w03Dll/mg_coin.c | 18 +- src/REL/w03Dll/mg_item.c | 10 +- src/REL/w03Dll/river.c | 8 +- src/REL/w03Dll/statue.c | 7 +- src/REL/w05Dll/dolphin.c | 18 +- src/REL/w05Dll/hotel.c | 10 +- src/REL/w05Dll/mg_coin.c | 7 +- src/REL/w05Dll/mg_item.c | 10 +- src/game/board/basic_space.c | 8 +- src/game/board/block.c | 6 +- src/game/board/bowser.c | 2907 +++++++++--------- src/game/board/main.c | 3340 ++++++++++----------- src/game/board/mg_setup.c | 16 +- src/game/board/mushroom.c | 2 +- src/game/board/start.c | 13 +- src/game/board/warp.c | 6 +- src/game/hsfex.c | 18 +- src/game/objsysobj.c | 28 +- 47 files changed, 3431 insertions(+), 3414 deletions(-) diff --git a/config/GMPE01_00/rels/m424Dll/symbols.txt b/config/GMPE01_00/rels/m424Dll/symbols.txt index 8d4a83df..8320af0c 100644 --- a/config/GMPE01_00/rels/m424Dll/symbols.txt +++ b/config/GMPE01_00/rels/m424Dll/symbols.txt @@ -281,14 +281,14 @@ lbl_1_data_21C = .data:0x0000021C; // type:object size:0xC0 lbl_1_data_2DC = .data:0x000002DC; // type:object size:0xC lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x24 lbl_1_data_30C = .data:0x0000030C; // type:object size:0xC data:4byte -lbl_1_data_318 = .data:0x00000318; // type:object size:0x6 data:string -lbl_1_data_31E = .data:0x0000031E; // type:object size:0x6 data:string -lbl_1_data_324 = .data:0x00000324; // type:object size:0x6 data:string +lbl_1_data_318 = .data:0x00000318; // type:object size:0x6 scope:local data:string +lbl_1_data_31E = .data:0x0000031E; // type:object size:0x6 scope:local data:string +lbl_1_data_324 = .data:0x00000324; // type:object size:0x6 scope:local data:string jumptable_1_data_32C = .data:0x0000032C; // type:object size:0x40 scope:local lbl_1_data_36C = .data:0x0000036C; // type:object size:0x20 lbl_1_data_38C = .data:0x0000038C; // type:object size:0x20 -lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x19 data:string -lbl_1_data_3C5 = .data:0x000003C5; // type:object size:0x5 data:string +lbl_1_data_3AC = .data:0x000003AC; // type:object size:0x19 scope:local data:string +lbl_1_data_3C5 = .data:0x000003C5; // type:object size:0x5 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 scope:local data:float lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte diff --git a/include/REL/modeltestDll.h b/include/REL/modeltestDll.h index d0b4ccc3..f2dd081e 100644 --- a/include/REL/modeltestDll.h +++ b/include/REL/modeltestDll.h @@ -5,12 +5,13 @@ #include "game/objsub.h" #include "game/object.h" +#include "ext_math.h" + // -------------------------------------------------------------------------- // #define US_PER_60TH_SEC (1000000.0f / 60.0f) #define US_TO_60TH_SEC(us) ((us) / US_PER_60TH_SEC) #define FB_SIZE(width, height) width * height * 2 -#define ABS(x) ((x) < 0 ? -(x) : (x)) // -------------------------------------------------------------------------- // @@ -44,4 +45,4 @@ omObjFunc2 fn_1_F9C; #endif -// -------------------------------------------------------------------------- // \ No newline at end of file +// -------------------------------------------------------------------------- // diff --git a/src/REL/instDll/main.c b/src/REL/instDll/main.c index 45308b70..5bfac016 100644 --- a/src/REL/instDll/main.c +++ b/src/REL/instDll/main.c @@ -495,7 +495,7 @@ static void fn_1_17E4(void) CharModelMotionShiftSet(char_tbl[j], mot_tbl[j][0], 0, 10, HU3D_MOTATTR_LOOP); } if (time <= 20) { - Hu3DModelPosSet(player_mdl[j], player_pos[j].x, player_pos[j].y + (1000.0 * cos(M_PI * (time * 4.5f) / 180.0)), player_pos[j].z); + Hu3DModelPosSet(player_mdl[j], player_pos[j].x, player_pos[j].y + 1000.0 * cosd(time * 4.5f), player_pos[j].z); time -= 10; if (time >= 0) { tplvl = 0.1 * time; @@ -1081,7 +1081,7 @@ static void fn_1_50B0(ModelData *model, Mtx mtx) target.y = 415.0f; pos.x = (sind(lbl_1_bss_40[0].y) * cosd(lbl_1_bss_40[0].x) * lbl_1_bss_20[0]) + lbl_1_bss_28[0].x; pos.y = (-sind(lbl_1_bss_40[0].x) * lbl_1_bss_20[0]) + lbl_1_bss_28[0].y; - pos.z = (cos(M_PI * lbl_1_bss_40[0].y / 180.0) * cosd(lbl_1_bss_40[0].x) * lbl_1_bss_20[0]) + lbl_1_bss_28[0].z; + pos.z = (cosd(lbl_1_bss_40[0].y) * cosd(lbl_1_bss_40[0].x) * lbl_1_bss_20[0]) + lbl_1_bss_28[0].z; up.x = -sind(lbl_1_bss_40[0].y); up.z = -cosd(lbl_1_bss_40[0].y); up.y = 0; diff --git a/src/REL/m407dll/camera.c b/src/REL/m407dll/camera.c index 20d3d4db..69d04b85 100644 --- a/src/REL/m407dll/camera.c +++ b/src/REL/m407dll/camera.c @@ -1,7 +1,7 @@ #include "game/process.h" #include "game/object.h" #include "game/hsfdraw.h" -#include "math.h" +#include "ext_math.h" typedef struct unkDominationData2 { /* 0x00 */ s32 unk_00; @@ -128,16 +128,16 @@ void fn_1_2024(omObjData* arg0) { } break; case 2: - var_f31 = sin((M_PI * (90.0f * temp_r31->unk_44)) / 180.0); + var_f31 = sind(90.0f * temp_r31->unk_44); break; case 3: - var_f31 = sin((M_PI * (90.0f * temp_r31->unk_44)) / 180.0); + var_f31 = sind(90.0f * temp_r31->unk_44); if (temp_r31->unk_48 > 0.5) { temp_r31->unk_00 = 4; } break; case 4: - var_f31 = sin((M_PI * (90.0f * temp_r31->unk_44)) / 180.0); + var_f31 = sind(90.0f * temp_r31->unk_44); var_f31 *= var_f31; break; } diff --git a/src/REL/m407dll/player.c b/src/REL/m407dll/player.c index 395fb157..725f71bd 100644 --- a/src/REL/m407dll/player.c +++ b/src/REL/m407dll/player.c @@ -467,8 +467,8 @@ void fn_1_DB4(omObjData *arg0) temp_r31->unk_20++; } - temp_f31 = (32.0f * sin(1.0471975511965976)) - (9.8f * temp_r31->unk_24); - temp_f30 = 22.0f * cos(1.0471975511965976); + temp_f31 = 32.0f * sin(M_PI / 3) - 9.8f * temp_r31->unk_24; + temp_f30 = 22.0f * cos(M_PI / 3); temp_r31->unk_18 = temp_r31->unk_18 + temp_f30; temp_r31->unk_14 = temp_r31->unk_14 + temp_f31; temp_r31->unk_24 += 0.3f; @@ -514,7 +514,7 @@ void fn_1_1074(omObjData *arg0) temp_r31->unk_20 = 1; } - temp_r31->unk_14 = (temp_r31->unk_14 + ((80.0 * sin(1.5707963267948966)) - (9.8 * temp_r31->unk_24))); + temp_r31->unk_14 += 80.0 * sin(M_PI / 2) - 9.8 * temp_r31->unk_24; temp_r31->unk_24 += 0.3f; if (!(temp_r31->unk_14 < 1000.0f)) { diff --git a/src/REL/m409Dll/main.c b/src/REL/m409Dll/main.c index 3e51e855..a1ee937d 100644 --- a/src/REL/m409Dll/main.c +++ b/src/REL/m409Dll/main.c @@ -132,7 +132,7 @@ s8 fn_1_524(void) var_r30 = 1; } var_f30 = lbl_1_bss_2 / 300.0f; - temp_f31 = (sin((M_PI * (90.0f * var_f30)) / 180.0) * sin((M_PI * (90.0f * var_f30)) / 180.0)); + temp_f31 = sind(90.0f * var_f30) * sind(90.0f * var_f30); CZoom = fn_1_4120(var_r31[0].zoom, var_r31[1].zoom, var_r31[2].zoom, temp_f31); Center.x = fn_1_4120(var_r31[0].center.x, var_r31[1].center.x, var_r31[2].center.x, temp_f31); Center.y = fn_1_4120(var_r31[0].center.y, var_r31[1].center.y, var_r31[2].center.y, temp_f31); @@ -157,8 +157,8 @@ s8 fn_1_524(void) Hu3DTexScrollPosMoveSet(lbl_1_bss_24.unkC, -0.0001f - (0.005f * temp_f31), 0.0f, 0.0f); Hu3DTexScrollPosMoveSet(lbl_1_bss_24.unkE, -0.0002f - (0.005f * temp_f31), 0.0f, 0.0f); Hu3DTexScrollPosMoveSet(lbl_1_bss_24.unk10, -0.0003f - (0.005f * temp_f31), 0.0f, 0.0f); - sp8.x = -(sin((M_PI * CRot.y) / 180.0) * cosd(CRot.x)); - sp8.y = sin((M_PI * CRot.x) / 180.0); + sp8.x = -(sind(CRot.y) * cosd(CRot.x)); + sp8.y = sind(CRot.x); sp8.z = -(cosd(CRot.y) * cosd(CRot.x)); HuAudFXListnerUpdate(&Hu3DCamera->pos, &sp8); return var_r30; @@ -178,7 +178,7 @@ s8 fn_1_B80(void) var_r30 = 1; } temp_f30 = lbl_1_bss_4 / 60.0f; - temp_f31 = (sin((M_PI * (90.0f * temp_f30)) / 180.0) * sin((M_PI * (90.0f * temp_f30)) / 180.0)); + temp_f31 = sind(90.0f * temp_f30) * sind(90.0f * temp_f30); CZoom = var_r31[0].zoom + (temp_f31 * (var_r31[1].zoom - var_r31[0].zoom)); Center.x = var_r31[0].center.x + (temp_f31 * (var_r31[1].center.x - var_r31[0].center.x)); Center.y = var_r31[0].center.y + (temp_f31 * (var_r31[1].center.y - var_r31[0].center.y)); @@ -300,20 +300,20 @@ s8 fn_1_10E8(omObjData *object) else if (lbl_1_bss_C > 0.2f) { lbl_1_bss_A = 1; } - var_f31 = sin((M_PI * (90.0f * lbl_1_bss_C)) / 180.0); + var_f31 = sind(90.0f * lbl_1_bss_C); var_f27 = 1520.0f; var_f26 = -1030.0f; temp_f30 = var_f27 + (var_f31 * (var_f26 - var_f27)); Hu3DModelPosSet(lbl_1_bss_DC->model[4], temp_f30, 0.0f, -1200.0f); Hu3DModelPosSet(lbl_1_bss_DC->model[1], temp_f30, 0.0f, -1200.0f); - if ((lbl_1_data_BC + 0x10000) != 0xFFFF) { + if (lbl_1_data_BC != ~0) { sp8.x = temp_f30; sp8.y = 0.0f; sp8.z = -1200.0f; HuAudFXEmiterUpDate(lbl_1_data_BC, &sp8); } var_f31 = 1.2f * lbl_1_bss_C; - if ((var_f31 >= 1.0f) && ((lbl_1_data_BC + 0x10000) != 0xFFFF)) { + if ((var_f31 >= 1.0f) && lbl_1_data_BC != ~0) { HuAudFXEmiterPlay(0x555, &sp8); sp8.x += 200.0f; HuAudFXEmiterPlay(0x55E, &sp8); @@ -324,7 +324,7 @@ s8 fn_1_10E8(omObjData *object) var_f31 = 0.0f; } else { - var_f31 = sin((M_PI * (90.0f + (90.0f * var_f31))) / 180.0); + var_f31 = sind(90.0f + 90.0f * var_f31); } Hu3DMotionSpeedSet(lbl_1_bss_DC->model[4], 2.0f * var_f31); if (lbl_1_bss_C > 0.5f) { @@ -455,7 +455,7 @@ void fn_1_2098(omObjData *object) Hu3DModelAttrSet(lbl_1_bss_DC->model[4], HU3D_ATTR_DISPOFF); lbl_1_bss_18 = 1.0f; } - var_f31 = sin((M_PI * (90.0f * lbl_1_bss_18)) / 180.0); + var_f31 = sind(90.0f * lbl_1_bss_18); var_f29 = -1030.0f; var_f28 = -1880.0f; var_f30 = var_f29 + (var_f31 * (var_f28 - var_f29)); @@ -684,7 +684,7 @@ void fn_1_2DCC(omObjData *object) Hu3DModelAttrReset(var_r31->unk6, HU3D_ATTR_DISPOFF); } var_r31->unk10 += var_f30; - var_f31 = sin((M_PI * (90.0f * var_r31->unk10)) / 180.0); + var_f31 = sind(90.0f * var_r31->unk10); if (var_r31->unk10 >= 1.0f) { var_f31 = 1.0f; var_r31->unk10 = var_f31; @@ -728,7 +728,7 @@ void fn_1_2DCC(omObjData *object) } Hu3DModelPosSet(var_r31->unk6, 70.0f + temp_r30->pos.x, 290.0f, -1200.0f); Hu3DData[var_r31->unk4].pos.x = temp_r30->pos.x; - var_f31 = (0.800000011920929 * sin((M_PI * (180.0f * var_r31->unk10)) / 180.0)); + var_f31 = 0.8f * sind(180.0f * var_r31->unk10); Hu3DMotionSpeedSet(var_r31->unk2, var_f31); } } @@ -948,7 +948,7 @@ void fn_1_44F0(s16 arg0, f32 arg8, f32 arg9, f32 argA, s8 arg1, s16 arg2) return; temp_f31 = (((rand8() << 8) | rand8()) % 361); - var_r31->unk0.x = (2.0 + (3.0 * sin((M_PI * temp_f31) / 180.0))); + var_r31->unk0.x = 2.0 + (3.0 * sind(temp_f31)); var_r31->unk0.y = (0.1f * ((((rand8() << 8) | rand8()) % 31) + 40)); var_r31->unk0.z = (3.5 * cosd(temp_f31)); var_r31->unk28 = 0; @@ -1012,7 +1012,7 @@ void fn_1_4FFC(s16 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) temp_f31 = ((((rand8() << 8) | rand8()) % 81) - 40); temp_r31->unk0.x = (13.0 * cosd(temp_f31)); temp_r31->unk0.y = 0.1f * ((((rand8() << 8) | rand8()) % 21) + 20); - temp_r31->unk0.z = (9.0 * sin((M_PI * temp_f31) / 180.0)); + temp_r31->unk0.z = (9.0 * sind(temp_f31)); temp_r31->unkC.x = (0.05f * temp_r31->unk0.x); temp_r31->unkC.z = (0.05f * temp_r31->unk0.z); temp_r31->unk18 = 500.0f; diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c index 1cad6746..d71592b2 100644 --- a/src/REL/m412Dll/main.c +++ b/src/REL/m412Dll/main.c @@ -81,8 +81,8 @@ void ObjectSetup(void) temp_f29 = lbl_1_bss_268.y; temp_f31 = lbl_1_bss_268.z; lbl_1_bss_774 = sqrtf((temp_f31 * temp_f31) + ((temp_f30 * temp_f30) + (temp_f29 * temp_f29))); - lbl_1_bss_778 = fn_1_1D08((180.0 * (atan2(temp_f30, temp_f31) / M_PI))); - lbl_1_bss_77C = fn_1_1D08((180.0 * (atan2(temp_f29, temp_f31) / M_PI))); + lbl_1_bss_778 = fn_1_1D08(atan2d(temp_f30, temp_f31)); + lbl_1_bss_77C = fn_1_1D08(atan2d(temp_f29, temp_f31)); lbl_1_bss_77C = 50.0f; Hu3DLighInit(); lbl_1_bss_7A0 = Hu3DGLightCreate(10000.0f, 0.0f, 10000.0f, -1.0f, 0.0f, -1.0f, 0xFFU, 0xFFU, 0xFFU); diff --git a/src/REL/m414Dll/main.c b/src/REL/m414Dll/main.c index 8e7bc1f0..8ca555e6 100644 --- a/src/REL/m414Dll/main.c +++ b/src/REL/m414Dll/main.c @@ -1156,9 +1156,9 @@ void fn_1_42AC(void) var_f23 = -200.0 * (cos(0.0) * cosd(lbl_1_bss_920[var_r27])); } else { - var_f24 = -200.0 * (sind(lbl_1_bss_920[var_r27]) * cos(0.3490658503988659)); - var_f26 = 150.0 + (-200.0 * sin(-0.3490658503988659)); - var_f23 = -200.0 * (cos(-0.3490658503988659) * cosd(lbl_1_bss_920[var_r27])); + var_f24 = -200.0 * (sind(lbl_1_bss_920[var_r27]) * cosd(20)); + var_f26 = 150.0 + -200.0 * sind(-20); + var_f23 = -200.0 * (cosd(-20) * cosd(lbl_1_bss_920[var_r27])); } if (!lbl_1_bss_938[var_r30->unk_04]) { var_f26 += 70.0f; diff --git a/src/REL/m417Dll/player.c b/src/REL/m417Dll/player.c index cc740d0e..ca8f7206 100644 --- a/src/REL/m417Dll/player.c +++ b/src/REL/m417Dll/player.c @@ -856,7 +856,7 @@ void fn_1_9C14(omObjData *object) return; } PSQUATNormalize(&var_r31->unk_194, &sp28); - if (sp28.w < cos(0.4363323129985824)) { + if (sp28.w < cosd(25)) { var_r31->unk_3C = 1; } } diff --git a/src/REL/m417Dll/water.c b/src/REL/m417Dll/water.c index 7f7bd933..4313fa29 100644 --- a/src/REL/m417Dll/water.c +++ b/src/REL/m417Dll/water.c @@ -326,7 +326,7 @@ void fn_1_3D58(omObjData *object) var_r28->y = 0.0f; var_r28->z = var_f29; } - var_f29 += (var_f28 * sin(1.0471975511965976)); + var_f29 += var_f28 * sind(60); } var_r28 = lbl_1_bss_178.unk_2C; var_r30 = 0; diff --git a/src/REL/m424Dll/claw.c b/src/REL/m424Dll/claw.c index 578750ce..752b4afb 100644 --- a/src/REL/m424Dll/claw.c +++ b/src/REL/m424Dll/claw.c @@ -164,7 +164,7 @@ void fn_1_94D0(omObjData* arg0) { var_r31->unk170 = -1; var_r31->unk174 = lbl_1_data_30C; // @todo how did this happen - var_r31->unk180 = (180.0 * (atan2(-102.864990234375, 424.559997558593750) / M_PI)); + var_r31->unk180 = atan2d(-102.864990234375, 424.559997558593750); if (var_r31->unk180 < 0.0f) { var_r31->unk180 += 360.0f; } diff --git a/src/REL/m425Dll/thwomp.c b/src/REL/m425Dll/thwomp.c index 0a320286..a47e9bd9 100644 --- a/src/REL/m425Dll/thwomp.c +++ b/src/REL/m425Dll/thwomp.c @@ -1477,7 +1477,7 @@ s32 fn_1_6EC4(float var_f24, float sp8, s16 var_r22, s16 var_r24) var_r31->unk_18C[var_r30].x = -(sp24 * var_r31->unk_17C[var_r30].x); var_r31->unk_18C[var_r30].z = -(sp24 * var_r31->unk_17C[var_r30].z); var_r31->unk_18C[var_r30].y = 0.0; - var_f27 = 180.0 + (180.0 * (atan2(var_r31->unk_17C[var_r30].x, var_r31->unk_17C[var_r30].z) / 3.141592653589793)); + var_f27 = 180.0 + atan2d(var_r31->unk_17C[var_r30].x, var_r31->unk_17C[var_r30].z); if (var_f27 > 360.0f) { var_f27 = fmod(var_f27, 360.0); } diff --git a/src/REL/m440Dll/main.c b/src/REL/m440Dll/main.c index e6c29642..d7653b96 100644 --- a/src/REL/m440Dll/main.c +++ b/src/REL/m440Dll/main.c @@ -125,7 +125,7 @@ s32 fn_1_4A4(void) var_r30 = 1; } - var_f31 = (sin((M_PI * (90.0f * var_f31)) / 180.0) * sin((M_PI * (90.0f * var_f31)) / 180.0)); + var_f31 = sind(90.0f * var_f31) * sind(90.0f * var_f31); CZoom = fn_1_93C0(var_r31[0].zoom, var_r31[1].zoom, var_f31); Center.x = fn_1_93C0(var_r31[0].center.x, var_r31[1].center.x, var_f31); Center.y = fn_1_93C0(var_r31[0].center.y, var_r31[1].center.y, var_f31); @@ -152,7 +152,7 @@ s32 fn_1_6C8(void) var_r30 = 1; } - var_f31 = (sin((M_PI * (90.0f * var_f31)) / 180.0) * sin((M_PI * (90.0f * var_f31)) / 180.0)); + var_f31 = (sind(90.0f * var_f31) * sind(90.0f * var_f31)); CZoom = fn_1_93C0(var_r31[0].zoom, var_r31[1].zoom, var_f31); Center.x = fn_1_93C0(var_r31[0].center.x, var_r31[1].center.x, var_f31); Center.y = fn_1_93C0(var_r31[0].center.y, var_r31[1].center.y, var_f31); @@ -282,7 +282,7 @@ u8 fn_1_E14(omObjData *arg0) var_f31 = 1.0f; var_r30 = 1; } - var_f31 = (sin((M_PI * (90.0f * var_f31)) / 180.0) * sin((M_PI * (90.0f * var_f31)) / 180.0)); + var_f31 = (sind(90.0f * var_f31) * sind(90.0f * var_f31)); CZoom = fn_1_93C0(var_r31[0].zoom, var_r31[1].zoom, var_f31); Center.x = fn_1_93C0(var_r31[0].center.x, var_r31[1].center.x, var_f31); Center.y = fn_1_93C0(var_r31[0].center.y, var_r31[1].center.y, var_f31); @@ -338,7 +338,7 @@ u8 fn_1_1138(omObjData *object) var_f31 = 1.0f; var_r28 = 1; } - var_f31 = (sin((M_PI * (90.0f * var_f31)) / 180.0) * sin((M_PI * (90.0f * var_f31)) / 180.0)); + var_f31 = (sind(90.0f * var_f31) * sind(90.0f * var_f31)); CZoom = fn_1_93C0(var_r31[0].zoom, var_r31[1].zoom, var_f31); Center.x = fn_1_93C0(var_r31[0].center.x, var_r31[1].center.x, var_f31); Center.y = fn_1_93C0(var_r31[0].center.y, var_r31[1].center.y, var_f31); @@ -628,8 +628,8 @@ void fn_1_2470(omObjData *arg0) Hu3DModelShadowMapSet(arg0->model[0]); for (var_r30 = 0; var_r30 < 5; var_r30++) { - temp_f31 = (450.0 * cos(M_PI * lbl_1_data_0[var_r30] / 180.0)); - var_f29 = (450.0 * sin(M_PI * lbl_1_data_0[var_r30] / 180.0)); + temp_f31 = 450.0 * cosd(lbl_1_data_0[var_r30]); + var_f29 = 450.0 * sind(lbl_1_data_0[var_r30]); Hu3DModelPosSet(arg0->model[var_r30 + 4], temp_f31, 0.0f, var_f29); var_f30 = 90.0f - lbl_1_data_0[var_r30]; Hu3DModelRotSet(arg0->model[var_r30 + 4], 0.0f, var_f30, 0.0f); @@ -705,7 +705,7 @@ void fn_1_2B04(omObjData *object) fn_1_4EEC(0x20, 0); return; } - temp_f31 = sin((M_PI * (90.0f * temp_f31)) / 180.0); + temp_f31 = sind(90.0f * temp_f31); temp_r31->center.y = (250.0f + (1750.0f * temp_f31)); } Hu3DModelPosSet(object->model[3], temp_r31->center.x, temp_r31->center.y, temp_r31->center.z); @@ -764,7 +764,7 @@ void fn_1_2D28(omObjData *object) if ((11 * REFRESH_RATE_F / 6) == lbl_1_data_F0[0]) { HuAudFXPlay(0x70A); } - var_f31 = sin((M_PI * (90.0f * var_f31)) / 180.0); + var_f31 = sind(90.0f * var_f31); temp_r31->center.y = (2000.0f + (-1750.0f * var_f31)); break; case 0x2: @@ -811,7 +811,7 @@ void fn_1_2D28(omObjData *object) fn_1_4EEC(7, 2); return; } - var_f31 = sin((M_PI * (90.0f * var_f31)) / 180.0); + var_f31 = sind(90.0f * var_f31); temp_r31->center.y = (250.0f + (1750.0f * var_f31)); break; case 0x63: @@ -1030,7 +1030,7 @@ void fn_1_46E0(omObjData *object) fn_1_4EEC(0x18, 0x10); HuAudFXPlay(0x70F); } - var_f31 = sin((M_PI * (90.0f * var_f31)) / 180.0); + var_f31 = sind(90.0f * var_f31); temp_r31->unk24 = (150.0f * var_f31); break; case 0x63: @@ -1090,7 +1090,7 @@ void fn_1_4B44(omObjData *object) lbl_1_data_108[0] = 0; lbl_1_data_104[0]++; } - var_f31 = sin((M_PI * (90.0f * var_f31)) / 180.0); + var_f31 = sind(90.0f * var_f31); temp_r31->unk24 = (150.0f + (-150.0f * var_f31)); break; case 1: diff --git a/src/REL/m440Dll/object.c b/src/REL/m440Dll/object.c index 941f1463..00d59251 100644 --- a/src/REL/m440Dll/object.c +++ b/src/REL/m440Dll/object.c @@ -255,7 +255,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1) arg1->unk18.z = (700.0 * sind(lbl_1_data_250)); var_f29 = (arg1->unk18.x - arg1->unk24.x); var_f28 = (arg1->unk18.z - arg1->unk24.z); - var_f30 = (180.0 * (atan2(var_f29, var_f28) / M_PI)); + var_f30 = atan2d(var_f29, var_f28); if (var_f30 < 0.0f) { var_f30 += 360.0f; } @@ -310,7 +310,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1) arg1->unk18.z = (arg1->unk5C * sind(lbl_1_data_250)); var_f29 = (arg1->unk18.x - arg1->unk24.x); var_f28 = (arg1->unk18.z - arg1->unk24.z); - var_f30 = (180.0 * (atan2(var_f29, var_f28) / M_PI)); + var_f30 = atan2d(var_f29, var_f28); if (var_f30 < 0.0f) { var_f30 += 360.0f; } @@ -551,7 +551,7 @@ void fn_1_C944(omObjData *arg0, unkObjStruct *arg1) arg1->unk48 = arg1->unk48 & ~4; var_f26 = (arg1->unk18.x - arg1->unk24.x); var_f25 = (arg1->unk18.z - arg1->unk24.z); - var_f29 = (180.0 * (atan2(var_f26, var_f25) / M_PI)); + var_f29 = atan2d(var_f26, var_f25); if (var_f29 < 0.0f) { var_f29 += 360.0f; } @@ -920,7 +920,7 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1) arg1->unk18.z = (arg1->unk5C * sind(lbl_1_bss_84)); var_f29 = (arg1->unk18.x - arg1->unk24.x); var_f28 = (arg1->unk18.z - arg1->unk24.z); - var_f30 = (180.0 * (atan2(var_f29, var_f28) / M_PI)); + var_f30 = atan2d(var_f29, var_f28); if (var_f30 < 0.0f) { var_f30 += 360.0f; } @@ -949,8 +949,8 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1) arg1->unk60++; } var_f29 = arg1->unk5C + ((700.0f - arg1->unk5C) * var_f31); - arg1->unk18.x = (var_f29 * cos(2.356194490192345)); // atan2(1.0, -1.0) - arg1->unk18.z = (var_f29 * sin(2.356194490192345)); + arg1->unk18.x = var_f29 * cosd(135); + arg1->unk18.z = var_f29 * sind(135); var_f29 = 0.3f; var_f28 = 0.6f; if (var_f31 >= var_f29) { @@ -978,7 +978,7 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1) arg1->unk18.z = (700.0 * sind(lbl_1_bss_84)); var_f29 = (arg1->unk18.x - arg1->unk24.x); var_f28 = (arg1->unk18.z - arg1->unk24.z); - var_f30 = (180.0 * (atan2(var_f29, var_f28) / M_PI)); + var_f30 = atan2d(var_f29, var_f28); if (var_f30 < 0.0f) { var_f30 += 360.0f; } diff --git a/src/REL/m443Dll/player.c b/src/REL/m443Dll/player.c index a55b2d0c..ee7e5237 100644 --- a/src/REL/m443Dll/player.c +++ b/src/REL/m443Dll/player.c @@ -355,8 +355,8 @@ void fn_1_5BD4(omObjData *object) var_f30 = 0.0f; } var_f30 = var_f30 * var_f30; - sp8.x = 320.0 + (160.0 * (var_f31 * cos(M_PI * ((450.0f * var_f31) + (90.0f * object->work[0])) / 180.0))); - sp8.y = 240.0 + (120.0 * (var_f31 * sin(M_PI * ((450.0f * var_f31) + (90.0f * object->work[0])) / 180.0))); + sp8.x = 320.0 + 160.0 * (var_f31 * cosd(450.0f * var_f31 + 90.0f * object->work[0])); + sp8.y = 240.0 + 120.0 * (var_f31 * sind(450.0f * var_f31 + 90.0f * object->work[0])); temp_r31->unk100->unk_44 = sp8.x + (var_f30 * (temp_r31->unk100->unk_78 - sp8.x)); temp_r31->unk100->unk_48 = sp8.y + (var_f30 * (temp_r31->unk100->unk_7C - sp8.y)); temp_r31->unk100->unk_40 = 0.01f + ((temp_r31->unk100->unk_80 - 0.01f) * var_f31); diff --git a/src/REL/m444dll/shadow.c b/src/REL/m444dll/shadow.c index 676458bf..9351f3e6 100644 --- a/src/REL/m444dll/shadow.c +++ b/src/REL/m444dll/shadow.c @@ -49,8 +49,8 @@ void fn_1_D9F4(s16 arg0) sp10.y = 1.0f; C_MTXLookAt(sp34, &sp28, &sp10, &sp1C); GXLoadPosMtxImm(sp34, 0); - sp28.x = 1.2000000476837158 * (10000.0 * -sin(var_r31->fov / 2)); - sp28.y = 0.8333333134651184 * (10000.0 * -sin(var_r31->fov / 2)); + sp28.x = 1.2f * (10000.0 * -sin(var_r31->fov / 2)); + sp28.y = (2.5f / 3) * (10000.0 * -sin(var_r31->fov / 2)); GXBegin(GX_QUADS, GX_VTXFMT0, 4); GXPosition3f32(-sp28.x, -sp28.y, -10000.0f); GXPosition3f32(sp28.x, -sp28.y, -10000.0f); diff --git a/src/REL/m446Dll/camera.c b/src/REL/m446Dll/camera.c index ef322bf3..8a49a82f 100644 --- a/src/REL/m446Dll/camera.c +++ b/src/REL/m446Dll/camera.c @@ -51,7 +51,7 @@ void fn_1_68DC(void) { f32 temp_f31; if (lbl_1_bss_38 != 0) { - temp_f31 = sin((M_PI * (90.0f * lbl_1_bss_40)) / 180.0); + temp_f31 = sind(90.0f * lbl_1_bss_40); temp_f31 *= temp_f31; lbl_1_bss_8C.x = lbl_1_bss_54.x + (temp_f31 * (lbl_1_bss_70.x - lbl_1_bss_54.x)); lbl_1_bss_8C.y = lbl_1_bss_54.y + (temp_f31 * (lbl_1_bss_70.y - lbl_1_bss_54.y)); @@ -138,4 +138,4 @@ void fn_1_709C(void) { print8(0x20, 0x84, 1.5f, "LOOKAT : x=%.2f y=%.2f z=%.2f", lbl_1_bss_8C.x, lbl_1_bss_8C.y, lbl_1_bss_8C.z); print8(0x20, 0x94, 1.5f, "ANGLE : x=%.2f y=%.2f z=%.2f", lbl_1_bss_80.x, lbl_1_bss_80.y, lbl_1_bss_80.z); print8(0x20, 0xA4, 1.5f, "ZOOM : %.2f", lbl_1_bss_7C); -} \ No newline at end of file +} diff --git a/src/REL/m446Dll/card.c b/src/REL/m446Dll/card.c index 28b943a1..fa45170f 100644 --- a/src/REL/m446Dll/card.c +++ b/src/REL/m446Dll/card.c @@ -1,7 +1,7 @@ #include "REL/m446Dll.h" #include "game/hsfman.h" -#include "math.h" +#include "ext_math.h" // data m446Func4 lbl_1_data_150[3] = { NULL, fn_1_2AA8, fn_1_2DA8 }; @@ -229,7 +229,7 @@ void fn_1_20D4(void) temp_r31->unk7C--; } else { - temp_f31 = sin((M_PI * (90.0f * temp_r31->unk80)) / 180.0); + temp_f31 = sind(90.0f * temp_r31->unk80); temp_r31->unk10.x = temp_r31->unk1C.x + (temp_f31 * (temp_r31->unk28.x - temp_r31->unk1C.x)); temp_r31->unk10.y = temp_r31->unk1C.y + (temp_f31 * (temp_r31->unk28.y - temp_r31->unk1C.y)); temp_r31->unk10.z = temp_r31->unk1C.z + (temp_f31 * (temp_r31->unk28.z - temp_r31->unk1C.z)); @@ -243,7 +243,7 @@ void fn_1_20D4(void) } } if (temp_r31->unk74 != 0) { - temp_f31 = sin((M_PI * (90.0f * temp_r31->unk88)) / 180.0); + temp_f31 = sind(90.0f * temp_r31->unk88); temp_r31->unk34.x = (temp_r31->unk40.x + (temp_f31 * (temp_r31->unk4C.x - temp_r31->unk40.x))); temp_r31->unk34.y = (temp_r31->unk40.y + (temp_f31 * (temp_r31->unk4C.y - temp_r31->unk40.y))); temp_r31->unk34.z = (temp_r31->unk40.z + (temp_f31 * (temp_r31->unk4C.z - temp_r31->unk40.z))); @@ -256,7 +256,7 @@ void fn_1_20D4(void) } } if (temp_r31->unk78 != 0) { - temp_f31 = sin((M_PI * (90.0f * temp_r31->unk90)) / 180.0); + temp_f31 = sind(90.0f * temp_r31->unk90); temp_r31->unk58 = (temp_r31->unk5C + (temp_f31 * (temp_r31->unk60 - temp_r31->unk5C))); temp_r31->unk90 = (temp_r31->unk90 + temp_r31->unk94); if (temp_r31->unk90 >= 1.0f) { diff --git a/src/REL/m446Dll/cursor.c b/src/REL/m446Dll/cursor.c index 088e6f9f..c57da258 100644 --- a/src/REL/m446Dll/cursor.c +++ b/src/REL/m446Dll/cursor.c @@ -2,7 +2,7 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" -#include "math.h" +#include "ext_math.h" // bss unkStruct3 *lbl_1_bss_98; @@ -42,7 +42,7 @@ void fn_1_7350(void) do { temp_r31 = var_r30->unk0; if (temp_r31->field00_bit1 != 0) { - temp_f31 = sin((M_PI * (90.0f * temp_r31->unk4C)) / 180.0); + temp_f31 = sind(90.0f * temp_r31->unk4C); temp_f31 *= temp_f31; temp_r31->unk20.x = (temp_r31->unk2C.x + (temp_f31 * (temp_r31->unk38.x - temp_r31->unk2C.x))); temp_r31->unk20.y = (temp_r31->unk2C.y + (temp_f31 * (temp_r31->unk38.y - temp_r31->unk2C.y))); diff --git a/src/REL/m446Dll/player.c b/src/REL/m446Dll/player.c index 619176ae..ecf62fa9 100644 --- a/src/REL/m446Dll/player.c +++ b/src/REL/m446Dll/player.c @@ -6,7 +6,7 @@ #include "game/hsfmotion.h" #include "game/objsub.h" #include "game/pad.h" -#include "math.h" +#include "ext_math.h" // cursor.c extern unkStruct7 *m446CursorCreate(s32); @@ -122,7 +122,7 @@ void fn_1_487C(void) lbl_1_data_2DC[temp_r31->unk18](temp_r31); } if (temp_r31->unkB4 != 0) { - temp_f31 = sin((M_PI * (90.0f * temp_r31->unkC0)) / 180.0); + temp_f31 = sind(90.0f * temp_r31->unkC0); temp_f31 *= temp_f31; temp_r31->unk48.x = (temp_r31->unk9C.x + (temp_f31 * (temp_r31->unkA8.x - temp_r31->unk9C.x))); temp_r31->unk48.y = (temp_r31->unk9C.y + (temp_f31 * (temp_r31->unkA8.y - temp_r31->unk9C.y))); @@ -136,7 +136,7 @@ void fn_1_487C(void) } } if (temp_r31->unk98 != 0) { - temp_f31 = sin((M_PI * (90.0f * temp_r31->unkB8)) / 180.0); + temp_f31 = sind(90.0f * temp_r31->unkB8); temp_f31 *= temp_f31; temp_r31->unk54.x = (temp_r31->unk80.x + (temp_f31 * (temp_r31->unk8C.x - temp_r31->unk80.x))); temp_r31->unk54.y = (temp_r31->unk80.y + (temp_f31 * (temp_r31->unk8C.y - temp_r31->unk80.y))); diff --git a/src/REL/mentDll/common.c b/src/REL/mentDll/common.c index 82910c62..77e82ced 100644 --- a/src/REL/mentDll/common.c +++ b/src/REL/mentDll/common.c @@ -109,7 +109,7 @@ f32 fn_1_254(f32 arg8, f32 arg9, f32 argA, f32 argB) if (argA >= argB) { return arg9; } - return (arg8 + ((arg9 - arg8) * (1.0 - cos((M_PI * ((90.0f / argB) * argA)) / 180.0)))); + return (arg8 + ((arg9 - arg8) * (1.0 - cosd((90.0f / argB) * argA)))); } // fn_1_32C @@ -118,7 +118,7 @@ f32 fn_1_32C(f32 arg8, f32 arg9, f32 argA, f32 argB) if (argA >= argB) { return arg9; } - return (arg8 + ((arg9 - arg8) * sin((M_PI * ((90.0f / argB) * argA)) / 180.0))); + return arg8 + (arg9 - arg8) * sind((90.0f / argB) * argA); } f32 fn_1_3F4(f32 arg8, f32 arg9, f32 argA, f32 argB) @@ -126,7 +126,7 @@ f32 fn_1_3F4(f32 arg8, f32 arg9, f32 argA, f32 argB) if (argA >= argB) { return arg8; } - return (arg8 + ((arg9 - arg8) * sin((M_PI * ((360.0f / argB) * argA)) / 180.0))); + return (arg8 + ((arg9 - arg8) * sind((360.0f / argB) * argA))); } void fn_1_4B0(s32 arg0) diff --git a/src/REL/modeltestDll/main.c b/src/REL/modeltestDll/main.c index 7c8dc93a..b2887739 100644 --- a/src/REL/modeltestDll/main.c +++ b/src/REL/modeltestDll/main.c @@ -11,10 +11,8 @@ #include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" -#include "math.h" #include "REL/modeltestDll.h" -#include "math.h" // -------------------------------------------------------------------------- // @@ -311,7 +309,7 @@ void fn_1_29C(omObjData *arg0) Hu3DParManAttrSet(lbl_1_bss_864[var_r31], 0x864); Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_864[var_r31]), 1U); Hu3DParManPosSet( - lbl_1_bss_864[var_r31], (100.0 * sin((M_PI * (36.0f * var_r31)) / 180.0)), 0.0f, 100.0 * cos((M_PI * (36.0f * var_r31)) / 180.0)); + lbl_1_bss_864[var_r31], (100.0 * sind(36.0f * var_r31)), 0.0f, 100.0 * cosd(36.0f * var_r31)); Hu3DParManRotSet(lbl_1_bss_864[var_r31], -90.0f, 0.0f, 0.0f); } @@ -465,28 +463,28 @@ void fn_1_F9C(struct om_obj_data *omData) } } - sp3C.x = Center.x + (CZoom * (sin((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0))); - sp3C.y = (Center.y + (CZoom * -sin((M_PI * CRot.x) / 180.0))); - sp3C.z = (Center.z + (CZoom * (cos((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0)))); + sp3C.x = Center.x + CZoom * (sind(CRot.y) * cosd(CRot.x)); + sp3C.y = Center.y + CZoom * -sind(CRot.x); + sp3C.z = Center.z + CZoom * (cosd(CRot.y) * cosd(CRot.x)); sp30.x = Center.x - sp3C.x; sp30.y = Center.y - sp3C.y; sp30.z = Center.z - sp3C.z; - sp24.x = (sin((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); - sp24.y = cos((M_PI * CRot.x) / 180.0); - sp24.z = (cos((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); + sp24.x = sind(CRot.y) * sind(CRot.x); + sp24.y = cosd(CRot.x); + sp24.z = cosd(CRot.y) * sind(CRot.x); temp_f31 = CRot.z; - sp18.x = sp24.x * (sp30.x * sp30.x + (1.0f - sp30.x * sp30.x) * cos((M_PI * temp_f31) / 180.0)) - + sp24.y * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.z * sin((M_PI * temp_f31) / 180.0)) - + sp24.z * (sp30.x * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.y * sin((M_PI * temp_f31) / 180.0)); + sp18.x = sp24.x * (sp30.x * sp30.x + (1.0f - sp30.x * sp30.x) * cosd(temp_f31)) + + sp24.y * (sp30.x * sp30.y * (1.0f - cosd(temp_f31)) - sp30.z * sind(temp_f31)) + + sp24.z * (sp30.x * sp30.z * (1.0f - cosd(temp_f31)) + sp30.y * sind(temp_f31)); - sp18.y = sp24.y * (sp30.y * sp30.y + (1.0f - sp30.y * sp30.y) * cos((M_PI * temp_f31) / 180.0)) - + sp24.x * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.z * sin((M_PI * temp_f31) / 180.0)) - + sp24.z * (sp30.y * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.x * sin((M_PI * temp_f31) / 180.0)); + sp18.y = sp24.y * (sp30.y * sp30.y + (1.0f - sp30.y * sp30.y) * cosd(temp_f31)) + + sp24.x * (sp30.x * sp30.y * (1.0f - cosd(temp_f31)) + sp30.z * sind(temp_f31)) + + sp24.z * (sp30.y * sp30.z * (1.0f - cosd(temp_f31)) - sp30.x * sind(temp_f31)); - sp18.z = sp24.z * (sp30.z * sp30.z + (1.0f - sp30.z * sp30.z) * cos((M_PI * temp_f31) / 180.0)) - + (sp24.x * (sp30.x * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) - sp30.y * sin((M_PI * temp_f31) / 180.0)) - + sp24.y * (sp30.y * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) + sp30.x * sin((M_PI * temp_f31) / 180.0))); + sp18.z = sp24.z * (sp30.z * sp30.z + (1.0f - sp30.z * sp30.z) * cosd(temp_f31)) + + (sp24.x * (sp30.x * sp30.z * (1.0 - cosd(temp_f31)) - sp30.y * sind(temp_f31)) + + sp24.y * (sp30.y * sp30.z * (1.0 - cosd(temp_f31)) + sp30.x * sind(temp_f31))); VECCrossProduct(&sp24, &sp30, &sp30); VECNormalize(&sp30, &sp30); @@ -603,11 +601,11 @@ void fn_1_20F4(void) Hu3DMtxTransGet(spC0, &sp18); PSMTXMultVec(sp60, &sp18, &sp18); - temp_f27 = 180.0 * (atan2(sp18.z, sp18.x) / M_PI); + temp_f27 = atan2d(sp18.z, sp18.x); temp_r31 = &lbl_1_bss_40[var_r29 * 2]; - temp_r31->obj->data.curr.rot.x = temp_r31->rot.x + (var_f29 * (2.0 * (sin((M_PI * temp_f27) / 180.0) * sin((M_PI * var_r27) / 180.0)))); + temp_r31->obj->data.curr.rot.x = temp_r31->rot.x + (var_f29 * (2.0 * (sind(temp_f27) * sind(var_r27)))); temp_r31->obj->data.curr.rot.y = temp_r31->rot.y; - temp_r31->obj->data.curr.rot.z = temp_r31->rot.z + (var_f29 * cos((M_PI * var_r27) / 180.0)); + temp_r31->obj->data.curr.rot.z = temp_r31->rot.z + (var_f29 * cosd(var_r27)); Hu3DModelObjMtxGet(temp_r3, lbl_1_data_D8[(var_r29 * 2) + 1], spC0); Hu3DMtxTransGet(spC0, &sp24); @@ -632,7 +630,7 @@ void fn_1_20F4(void) var_f29 = 0.0f; } else { - var_r27 = 180.0 * (atan2(HuPadSubStkX[1], HuPadSubStkY[1]) / M_PI); + var_r27 = atan2d(HuPadSubStkX[1], HuPadSubStkY[1]); temp_f30 = (HuPadSubStkX[1] * HuPadSubStkX[1]) + (HuPadSubStkY[1] * HuPadSubStkY[1]); var_f29 = sqrtf(temp_f30); if (var_f29 > 80.0f) { @@ -658,8 +656,8 @@ void fn_1_28F8(Point3d *arg0, Point3d *arg1) C_MTXLookAt(sp18, &cam->pos, &cam->up, &cam->target); PSMTXMultVec(sp18, arg0, &spC); - temp_f31 = (1.2f * (spC.z * (sin((M_PI * (cam->fov / 2)) / 180.0) / (cos((M_PI * (cam->fov / 2)) / 180.0))))); - temp_f30 = (spC.z * (sin((M_PI * (cam->fov / 2)) / 180.0) / (cos((M_PI * (cam->fov / 2)) / 180.0)))); + temp_f31 = (1.2f * (spC.z * (sind(cam->fov / 2) / (cosd(cam->fov / 2))))); + temp_f30 = (spC.z * (sind(cam->fov / 2) / (cosd(cam->fov / 2)))); arg1->x = 288.0f + (spC.x * (288.0f / -temp_f31)); arg1->y = 240.0f + (spC.y * (240.0f / temp_f30)); } diff --git a/src/REL/modeltestDll/modeltest00.c b/src/REL/modeltestDll/modeltest00.c index 36d9596b..c687e5df 100644 --- a/src/REL/modeltestDll/modeltest00.c +++ b/src/REL/modeltestDll/modeltest00.c @@ -103,28 +103,28 @@ void fn_1_37DC(omObjData *) CZoom += HuPadTrigL[0] / 2; CZoom -= HuPadTrigR[0] / 2; - sp3C.x = Center.x + (CZoom * (sin((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0))); - sp3C.y = (Center.y + (CZoom * -sin((M_PI * CRot.x) / 180.0))); - sp3C.z = (Center.z + (CZoom * (cos((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0)))); + sp3C.x = Center.x + CZoom * (sind(CRot.y) * cosd(CRot.x)); + sp3C.y = Center.y + CZoom * -sind(CRot.x); + sp3C.z = Center.z + CZoom * (cosd(CRot.y) * cosd(CRot.x)); sp30.x = Center.x - sp3C.x; sp30.y = Center.y - sp3C.y; sp30.z = Center.z - sp3C.z; - sp24.x = (sin((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); - sp24.y = cos((M_PI * CRot.x) / 180.0); - sp24.z = (cos((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); + sp24.x = sind(CRot.y) * sind(CRot.x); + sp24.y = cosd(CRot.x); + sp24.z = cosd(CRot.y) * sind(CRot.x); temp_f31 = CRot.z; - sp18.x = sp24.x * (sp30.x * sp30.x + (1.0f - sp30.x * sp30.x) * cos((M_PI * temp_f31) / 180.0)) - + sp24.y * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.z * sin((M_PI * temp_f31) / 180.0)) - + sp24.z * (sp30.x * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.y * sin((M_PI * temp_f31) / 180.0)); + sp18.x = sp24.x * (sp30.x * sp30.x + (1.0f - sp30.x * sp30.x) * cosd(temp_f31)) + + sp24.y * (sp30.x * sp30.y * (1.0f - cosd(temp_f31)) - sp30.z * sind(temp_f31)) + + sp24.z * (sp30.x * sp30.z * (1.0f - cosd(temp_f31)) + sp30.y * sind(temp_f31)); - sp18.y = sp24.y * (sp30.y * sp30.y + (1.0f - sp30.y * sp30.y) * cos((M_PI * temp_f31) / 180.0)) - + sp24.x * (sp30.x * sp30.y * (1.0f - cos((M_PI * temp_f31) / 180.0)) + sp30.z * sin((M_PI * temp_f31) / 180.0)) - + sp24.z * (sp30.y * sp30.z * (1.0f - cos((M_PI * temp_f31) / 180.0)) - sp30.x * sin((M_PI * temp_f31) / 180.0)); + sp18.y = sp24.y * (sp30.y * sp30.y + (1.0f - sp30.y * sp30.y) * cosd(temp_f31)) + + sp24.x * (sp30.x * sp30.y * (1.0f - cosd(temp_f31)) + sp30.z * sind(temp_f31)) + + sp24.z * (sp30.y * sp30.z * (1.0f - cosd(temp_f31)) - sp30.x * sind(temp_f31)); - sp18.z = sp24.z * (sp30.z * sp30.z + (1.0f - sp30.z * sp30.z) * cos((M_PI * temp_f31) / 180.0)) - + (sp24.x * (sp30.x * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) - sp30.y * sin((M_PI * temp_f31) / 180.0)) - + sp24.y * (sp30.y * sp30.z * (1.0 - cos((M_PI * temp_f31) / 180.0)) + sp30.x * sin((M_PI * temp_f31) / 180.0))); + sp18.z = sp24.z * (sp30.z * sp30.z + (1.0f - sp30.z * sp30.z) * cosd(temp_f31)) + + (sp24.x * (sp30.x * sp30.z * (1.0 - cosd(temp_f31)) - sp30.y * sind(temp_f31)) + + sp24.y * (sp30.y * sp30.z * (1.0 - cosd(temp_f31)) + sp30.x * sind(temp_f31))); VECCrossProduct(&sp24, &sp30, &sp30); VECNormalize(&sp30, &sp30); @@ -148,17 +148,17 @@ void fn_1_439C(omObjData * ) temp_f31 = CRot.x; temp_f30 = CRot.y + (var_r31 * 90); sp10 = CRot.z; - sp2C.x = Center.x + (CZoom * (sin((M_PI * temp_f30) / 180.0) * (cos((M_PI * temp_f31) / 180.0)))); - sp2C.y = Center.y + (CZoom * -sin((M_PI * temp_f31) / 180.0)); - sp2C.z = Center.z + (CZoom * (cos((M_PI * temp_f30) / 180.0) * (cos((M_PI * temp_f31) / 180.0)))); + sp2C.x = Center.x + CZoom * (sind(temp_f30) * (cosd(temp_f31))); + sp2C.y = Center.y + CZoom * -sind(temp_f31); + sp2C.z = Center.z + CZoom * (cosd(temp_f30) * (cosd(temp_f31))); sp20.x = Center.x; sp20.y = Center.y; sp20.z = Center.z; - sp14.x = sin((M_PI * temp_f30) / 180.0) * (sin((M_PI * temp_f31) / 180.0)); - sp14.y = cos((M_PI * temp_f31) / 180.0); - sp14.z = cos((M_PI * temp_f30) / 180.0) * (sin((M_PI * temp_f31) / 180.0)); + sp14.x = sind(temp_f30) * (sind(temp_f31)); + sp14.y = cosd(temp_f31); + sp14.z = cosd(temp_f30) * (sind(temp_f31)); Hu3DCameraPosSet(lbl_1_data_358[var_r31], sp2C.x, sp2C.y, sp2C.z, sp14.x, sp14.y, sp14.z, sp20.x, sp20.y, sp20.z); } diff --git a/src/REL/modeseldll/filesel.c b/src/REL/modeseldll/filesel.c index 93fc856d..53a1d962 100644 --- a/src/REL/modeseldll/filesel.c +++ b/src/REL/modeseldll/filesel.c @@ -10,7 +10,7 @@ #include "game/window.h" #include "game/wipe.h" -#include "math.h" +#include "ext_math.h" #include "REL/modeseldll.h" @@ -203,7 +203,7 @@ repeat: fn_1_5C38(); for (temp_r30 = 0; temp_r30 <= 20; temp_r30++) { temp_f31 = temp_r30 / 20.0; - temp_f31 = sin(M_PI * (90.0f * temp_f31) / 180.0); + temp_f31 = sind(90.0f * temp_f31); Hu3DModelScaleSet(lbl_1_bss_19A[0], temp_f31, temp_f31, temp_f31); Hu3DModelScaleSet(lbl_1_bss_19A[1], temp_f31, temp_f31, temp_f31); Hu3DModelScaleSet(lbl_1_bss_19A[2], temp_f31, temp_f31, temp_f31); @@ -377,8 +377,8 @@ loop_exit: for (temp_r30 = 0; temp_r30 <= 40; temp_r30++) { if (temp_r30 <= 30) { temp_f31 = temp_r30 / 30.0f; - sp28.x = 288.0 + (GET_ZEROSIGN(temp_r26) * (100.0 + (250.0 * sin(M_PI * (90.0f * temp_f31) / 180.0)))); - sp28.y = 250.0 - (100.0 * sin(M_PI * (180.0f * temp_f31) / 180.0)); + sp28.x = 288.0 + (GET_ZEROSIGN(temp_r26) * (100.0 + (250.0 * sind(90.0f * temp_f31)))); + sp28.y = 250.0 - (100.0 * sind(180.0f * temp_f31)); sp28.z = (temp_r30 * 100) + 600; Hu3D2Dto3D(&sp28, 1, &sp1C); Hu3DModelPosSetV(lbl_1_bss_19A[temp_r26 + 2], &sp1C); @@ -390,11 +390,11 @@ loop_exit: temp_f31 = (temp_r30 - 20) / 20.0f; if (temp_r29) { sp28.x = 288.0f + ((1.0 - temp_f31) * (100 * GET_ZEROSIGN(temp_r31))); - sp28.y = 250.0 - (100.0 * sin(M_PI * (180.0f * temp_f31) / 180.0)); + sp28.y = 250.0 - (100.0 * sind(180.0f * temp_f31)); sp28.z = 600.0f; Hu3D2Dto3D(&sp28, 1, &sp1C); Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); - temp_f31 = (0.5 * sin(M_PI * (90.0f * temp_f31) / 180.0)) + 1.0; + temp_f31 = (0.5 * sind(90.0f * temp_f31)) + 1.0; Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); } else { @@ -407,14 +407,14 @@ loop_exit: sp28.z = 600; Hu3D2Dto3D(&sp28, 1, &sp10); VECSubtract(&sp10, &sp1C, &sp28); - sp28.x *= sin(M_PI * (90.0f * temp_f31) / 180.0); - sp28.y *= 1.0 - cos(M_PI * (90.0f * temp_f31) / 180.0); + sp28.x *= sind(90.0f * temp_f31); + sp28.y *= 1.0 - cosd(90.0f * temp_f31); sp28.z = 0; VECAdd(&sp28, &sp1C, &sp1C); Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); - lbl_1_bss_108[temp_r31] *= cos(M_PI * (90.0f * temp_f31) / 180.0); + lbl_1_bss_108[temp_r31] *= cosd(90.0f * temp_f31); lbl_1_bss_100[temp_r31] = 1.0 - temp_f31; - temp_f31 = 1.0 + (0.3 * cos(M_PI * (90.0f * temp_f31) / 180.0)); + temp_f31 = 1.0 + (0.3 * cosd(90.0f * temp_f31)); Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); } } @@ -525,7 +525,7 @@ cleanup: for (temp_r30 = 0; temp_r30 <= 20; temp_r30++) { temp_f31 = temp_r30 / 20.0f; if (temp_r29) { - temp_f31 = 1.5 * cos(M_PI * (90.0f * temp_f31) / 180.0); + temp_f31 = 1.5 * cosd(90.0f * temp_f31); Hu3DModelScaleSet(lbl_1_bss_19A[0], temp_f31, temp_f31, temp_f31); Hu3DModelScaleSet(lbl_1_bss_19A[1], temp_f31, temp_f31, temp_f31); Hu3DModelScaleSet(lbl_1_bss_19A[2], 0.7 * temp_f31, 0.7 * temp_f31, 0.7 * temp_f31); @@ -544,14 +544,14 @@ cleanup: sp28.z = 600; Hu3D2Dto3D(&sp28, 1, &sp10); VECSubtract(&sp10, &sp1C, &sp28); - sp28.x *= sin(M_PI * (90.0f * temp_f31) / 180.0); - sp28.y *= 1.0 - cos(M_PI * (90.0f * temp_f31) / 180.0); + sp28.x *= sind(90.0f * temp_f31); + sp28.y *= 1.0 - cosd(90.0f * temp_f31); sp28.z = 0.0f; VECAdd(&sp28, &sp1C, &sp1C); Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31], &sp1C); - lbl_1_bss_108[temp_r31] *= cos(M_PI * (90.0f * temp_f31) / 180.0); + lbl_1_bss_108[temp_r31] *= cosd(90.0f * temp_f31); lbl_1_bss_100[temp_r31] = 1.0 - temp_f31; - temp_f31 = 1.0 + (0.5 * cos(M_PI * (90.0f * temp_f31) / 180.0)); + temp_f31 = 1.0 + (0.5 * cosd(90.0f * temp_f31)); Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31], temp_f31, temp_f31, temp_f31); } HuPrcVSleep(); @@ -636,10 +636,10 @@ void fn_1_5850(void) float scale; float time = i / 10.0; if (param) { - scale = 1.0 + (0.3 * sin(M_PI * (90.0f * time) / 180.0)); + scale = 1.0 + (0.3 * sind(90.0f * time)); } else { - scale = 1.0 + (0.3 * cos(M_PI * (90.0f * time) / 180.0)); + scale = 1.0 + (0.3 * cosd(90.0f * time)); } Hu3DModelScaleSet(lbl_1_bss_19A[index + 2], scale, scale, scale); Hu3DModelScaleSet(lbl_1_bss_19A[index + 4], scale, scale, scale); @@ -800,7 +800,7 @@ s32 fn_1_61B4(void) lbl_1_bss_120[0] = lbl_1_bss_120[1] = lbl_1_bss_120[2] = 1; UnMountCnt = 0; for (temp_r29 = 0; temp_r29 <= 20; temp_r29++) { - temp_f31 = sin(M_PI * (90.0f * (temp_r29 / 20.0f)) / 180.0); + temp_f31 = sind(90.0f * (temp_r29 / 20.0f)); for (temp_r28 = 0; temp_r28 < 3; temp_r28++) { Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 8], temp_f31, temp_f31, temp_f31); Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 11], temp_f31, temp_f31, temp_f31); @@ -1076,7 +1076,7 @@ s32 fn_1_61B4(void) } HuWinDispOff(lbl_1_bss_146); for (temp_r29 = 0; temp_r29 <= 20; temp_r29++) { - temp_f31 = cos(M_PI * (90.0 * (temp_r29 / 20.0)) / 180.0); + temp_f31 = cosd(90.0 * (temp_r29 / 20.0)); Hu3DModelScaleSet(lbl_1_bss_19A[curSlotNo], temp_f31, temp_f31, temp_f31); for (temp_r28 = 0; temp_r28 < 3; temp_r28++) { Hu3DModelScaleSet(lbl_1_bss_19A[temp_r28 + 8], temp_f31, temp_f31, temp_f31); @@ -1115,10 +1115,10 @@ void fn_1_72DC(void) Vec pos_2d; Vec pos_3d; if (param) { - scale = sin(M_PI * (90.0f * (i / 10.0f)) / 180.0); + scale = sind(90.0f * (i / 10.0f)); } else { - scale = cos(M_PI * (90.0f * (i / 10.0f)) / 180.0); + scale = cosd(90.0f * (i / 10.0f)); } pos_2d.x = 158.0f + (index * 130); pos_2d.y = 230; @@ -1476,7 +1476,7 @@ s32 fn_1_8540(s16 boxno) return 0; } for (time = 0; time <= 10; time++) { - scale = cos(M_PI * (90.0 * (time / 10.0)) / 180.0); + scale = cosd(90.0 * (time / 10.0)); Hu3DModelScaleSet(lbl_1_bss_19A[boxno + 8], scale, scale, scale); HuPrcVSleep(); } @@ -1490,7 +1490,7 @@ s32 fn_1_8540(s16 boxno) Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno + 8], 0.6f); Hu3DModelTPLvlSet(lbl_1_bss_19A[boxno + 11], 0.3f); for (time = 0; time <= 20; time++) { - scale = sin(M_PI * (90.0 * (time / 20.0)) / 180.0); + scale = sind(90.0 * (time / 20.0)); Hu3DModelScaleSet(lbl_1_bss_19A[boxno + 8], scale, scale, scale); HuPrcVSleep(); } @@ -1661,7 +1661,7 @@ s32 fn_1_8C30(s16 boxno) else { fn_1_9E14(); for (temp_r30 = 0; temp_r30 <= 10; temp_r30++) { - temp_f31 = cos(M_PI * (90.0 * (temp_r30 / 10.0)) / 180.0); + temp_f31 = cosd(90.0 * (temp_r30 / 10.0)); Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 8], temp_f31, temp_f31, temp_f31); HuPrcVSleep(); } @@ -1709,7 +1709,7 @@ s32 fn_1_8C30(s16 boxno) temp_f31 = temp_r30 / 30.0; sp60.x = sp3C.x * temp_f31; sp60.y = sp3C.y * temp_f31; - sp60.z = (sp3C.z * temp_f31) + (-300 * sin(M_PI * (180.0f * temp_f31) / 180.0)); + sp60.z = (sp3C.z * temp_f31) + (-300 * sind(180.0f * temp_f31)); VECAdd(&sp60, &sp54, &sp60); Hu3DModelPosSetV(lbl_1_bss_19A[temp_r31 + 11], &sp60); HuPrcVSleep(); @@ -1730,7 +1730,7 @@ s32 fn_1_8C30(s16 boxno) Hu3DModelAttrSet(lbl_1_bss_19A[23], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(lbl_1_bss_19A[boxno + 8], HU3D_ATTR_DISPOFF); for (temp_r30 = 0; temp_r30 <= 10; temp_r30++) { - temp_f31 = sin(M_PI * (90.0 * (temp_r30 / 10.0)) / 180.0); + temp_f31 = sind(90.0 * (temp_r30 / 10.0)); Hu3DModelScaleSet(lbl_1_bss_19A[temp_r31 + 8], temp_f31, temp_f31, temp_f31); HuPrcVSleep(); } diff --git a/src/REL/modeseldll/main.c b/src/REL/modeseldll/main.c index f1d9be9b..7505272f 100644 --- a/src/REL/modeseldll/main.c +++ b/src/REL/modeseldll/main.c @@ -8,7 +8,7 @@ #include "game/process.h" #include "game/window.h" #include "game/wipe.h" -#include "math.h" +#include "ext_math.h" typedef struct camera_view_params { Vec rot; @@ -233,15 +233,15 @@ void fn_1_B8C(omObjData *object) y = lbl_1_bss_24[i].y; z = lbl_1_bss_24[i].z; - pos.x = (((sin((M_PI * y) / 180.0) * cos((M_PI * x) / 180.0)) * lbl_1_bss_4[i]) + lbl_1_bss_C[i].x); - pos.y = (-sin((M_PI * x) / 180.0) * lbl_1_bss_4[i]) + lbl_1_bss_C[i].y; - pos.z = ((cos((M_PI * y) / 180.0) * cos((M_PI * x) / 180.0)) * lbl_1_bss_4[i]) + lbl_1_bss_C[i].z; + pos.x = (((sind(y) * cosd(x)) * lbl_1_bss_4[i]) + lbl_1_bss_C[i].x); + pos.y = (-sind(x) * lbl_1_bss_4[i]) + lbl_1_bss_C[i].y; + pos.z = ((cosd(y) * cosd(x)) * lbl_1_bss_4[i]) + lbl_1_bss_C[i].z; target.x = lbl_1_bss_C[i].x; target.y = lbl_1_bss_C[i].y; target.z = lbl_1_bss_C[i].z; - up.x = sin((M_PI * y) / 180.0) * sin((M_PI * x) / 180.0); - up.y = cos((M_PI * x) / 180.0); - up.z = cos((M_PI * y) / 180.0) * sin((M_PI * x) / 180.0); + up.x = sind(y) * sind(x); + up.y = cosd(x); + up.z = cosd(y) * sind(x); Hu3DCameraPosSet(lbl_1_data_6E[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); } } @@ -272,27 +272,27 @@ void fn_1_F40(omObjData *object) if (lbl_1_bss_4[0] < 100.0f) { lbl_1_bss_4[0] = 100.0f; } - pos.x = lbl_1_bss_C[0].x + (lbl_1_bss_4[0] * (sin((M_PI * lbl_1_bss_24[0].y) / 180.0) * cos((M_PI * lbl_1_bss_24[0].x) / 180.0))); - pos.y = (lbl_1_bss_C[0].y + (lbl_1_bss_4[0] * -sin((M_PI * lbl_1_bss_24[0].x) / 180.0))); - pos.z = (lbl_1_bss_C[0].z + (lbl_1_bss_4[0] * (cos((M_PI * lbl_1_bss_24[0].y) / 180.0) * cos((M_PI * lbl_1_bss_24[0].x) / 180.0)))); + pos.x = lbl_1_bss_C[0].x + (lbl_1_bss_4[0] * (sind(lbl_1_bss_24[0].y) * cosd(lbl_1_bss_24[0].x))); + pos.y = (lbl_1_bss_C[0].y + (lbl_1_bss_4[0] * -sind(lbl_1_bss_24[0].x))); + pos.z = (lbl_1_bss_C[0].z + (lbl_1_bss_4[0] * (cosd(lbl_1_bss_24[0].y) * cosd(lbl_1_bss_24[0].x)))); offset.x = lbl_1_bss_C[0].x - pos.x; offset.y = lbl_1_bss_C[0].y - pos.y; offset.z = lbl_1_bss_C[0].z - pos.z; - dir.x = (sin((M_PI * lbl_1_bss_24[0].y) / 180.0) * sin((M_PI * lbl_1_bss_24[0].x) / 180.0)); - dir.y = cos((M_PI * lbl_1_bss_24[0].x) / 180.0); - dir.z = (cos((M_PI * lbl_1_bss_24[0].y) / 180.0) * sin((M_PI * lbl_1_bss_24[0].x) / 180.0)); + dir.x = (sind(lbl_1_bss_24[0].y) * sind(lbl_1_bss_24[0].x)); + dir.y = cosd(lbl_1_bss_24[0].x); + dir.z = (cosd(lbl_1_bss_24[0].y) * sind(lbl_1_bss_24[0].x)); z_rot = lbl_1_bss_24[0].z; - y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cos((M_PI * z_rot) / 180.0)) - + dir.y * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.z * sin((M_PI * z_rot) / 180.0)) - + dir.z * (offset.x * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.y * sin((M_PI * z_rot) / 180.0)); + y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot)) + + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) + + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); - y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cos((M_PI * z_rot) / 180.0)) - + dir.x * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.z * sin((M_PI * z_rot) / 180.0)) - + dir.z * (offset.y * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.x * sin((M_PI * z_rot) / 180.0)); + y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot)) + + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) + + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); - y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cos((M_PI * z_rot) / 180.0)) - + (dir.x * (offset.x * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) - offset.y * sin((M_PI * z_rot) / 180.0)) - + dir.y * (offset.y * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) + offset.x * sin((M_PI * z_rot) / 180.0))); + y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot)) + + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) + + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); VECCrossProduct(&dir, &offset, &offset); VECNormalize(&offset, &offset); diff --git a/src/REL/option/record.c b/src/REL/option/record.c index c255cdbe..763bc418 100755 --- a/src/REL/option/record.c +++ b/src/REL/option/record.c @@ -10,7 +10,7 @@ #include "game/window.h" #include "dolphin.h" -#include "math.h" +#include "ext_math.h" #include "version.h" #ifndef __MWERKS__ @@ -208,8 +208,8 @@ static void ExecRecord(omObjData *object) Hu3DModelAttrReset(work->hand->model[0], HU3D_ATTR_DISPOFF); work->cameraDoneF = TRUE; } - pos.x = 505.0 * -sin(305 * M_PI / 180.0); - pos.z = 505.0 * cos(305 * M_PI / 180.0); + pos.x = 505.0 * -sind(305); + pos.z = 505.0 * cosd(305); pos.y = 144.0f - 14.0f * work->recordType; omSetTra(work->hand, pos.x, pos.y, pos.z); object->unk10 = 3; diff --git a/src/REL/resultDll/battle.c b/src/REL/resultDll/battle.c index c9441385..8818f975 100644 --- a/src/REL/resultDll/battle.c +++ b/src/REL/resultDll/battle.c @@ -1,5 +1,5 @@ #include "dolphin.h" -#include "math.h" +#include "ext_math.h" #include "game/armem.h" #include "game/audio.h" @@ -503,7 +503,7 @@ void fn_1_7F98(void) } delay = (lbl_1_bss_174) ? 3 : 10; for (time = 0; time <= delay; time++) { - float scale = sin(M_PI * ((90.0 / delay) * time) / 180.0); + float scale = sind((90.0 / delay) * time); for (i = 0; i < 4; i++) { HuSprGrpScaleSet(lbl_1_bss_19E0[i], scale, scale); } diff --git a/src/REL/resultDll/main.c b/src/REL/resultDll/main.c index 66c26486..bda3b255 100644 --- a/src/REL/resultDll/main.c +++ b/src/REL/resultDll/main.c @@ -14,7 +14,7 @@ #include "game/window.h" #include "game/wipe.h" -#include "math.h" +#include "ext_math.h" #include "REL/resultdll.h" @@ -498,7 +498,7 @@ void fn_1_1F4C(void) } temp_r29 = (lbl_1_bss_174) ? 3 : 10; for (temp_r30 = 0; temp_r30 <= temp_r29; temp_r30++) { - temp_f31 = sin(M_PI * ((90.0 / temp_r29) * temp_r30) / 180.0); + temp_f31 = sind((90.0 / temp_r29) * temp_r30); for (i = 0; i < 4; i++) { HuSprGrpScaleSet(lbl_1_bss_3A[i], temp_f31, temp_f31); } @@ -512,8 +512,8 @@ void fn_1_1F4C(void) if (GWPlayerCoinWinGet(lbl_1_bss_4A[i]) >= 10) { HuSprAttrReset(lbl_1_bss_9C, i, 4); } - HuSprScaleSet(lbl_1_bss_9C, i, sin(M_PI * ((120.0f / 14.0f) * temp_r28) / 180.0) * (0.8 * (1.0 / sin((M_PI * 2) / 3))), - 0.8 * (sin(M_PI * ((120.0f / 14.0f) * temp_r28) / 180.0) * (1.0 / sin((M_PI * 2) / 3)))); + HuSprScaleSet(lbl_1_bss_9C, i, sind((120.0f / 14.0f) * temp_r28) * (0.8 * (1.0 / sin((M_PI * 2) / 3))), + 0.8 * (sind((120.0f / 14.0f) * temp_r28) * (1.0 / sin((M_PI * 2) / 3)))); } temp_r28 += (lbl_1_bss_174) ? 2 : 1; HuPrcVSleep(); @@ -603,7 +603,7 @@ void fn_1_1F4C(void) } temp_r29 = (lbl_1_bss_174) ? 3 : 10; for (temp_r30 = 0; temp_r30 <= temp_r29; temp_r30++) { - temp_f31 = cos(M_PI * ((90.0 / temp_r29) * temp_r30) / 180.0); + temp_f31 = cosd((90.0 / temp_r29) * temp_r30); for (i = 0; i < 4; i++) { HuSprGrpScaleSet(lbl_1_bss_3A[i], temp_f31, temp_f31); } @@ -686,12 +686,12 @@ void fn_1_2ADC(void) temp_r27 = temp_r28 - (i * 20); if (temp_r27 <= 20) { if (temp_r27 <= 10) { - HuSprScaleSet(lbl_1_bss_52, i, 1.0f, cos(M_PI * (9.0f * temp_r27) / 180.0)); + HuSprScaleSet(lbl_1_bss_52, i, 1.0f, cosd(9.0f * temp_r27)); } else { HuSprAttrSet(lbl_1_bss_52, i, 4); HuSprAttrReset(lbl_1_data_380, i, 4); - HuSprScaleSet(lbl_1_data_380, i, 1.0f, sin(M_PI * (9.0f * (temp_r27 - 10)) / 180.0)); + HuSprScaleSet(lbl_1_data_380, i, 1.0f, sind(9.0f * (temp_r27 - 10))); } temp_f31 = temp_r27 / 20.0f; temp_r29 = GWStarsGet(sp28[i]) + (temp_f31 * (GWStarsGet(lbl_1_bss_4A[i]) - GWStarsGet(sp28[i]))); @@ -741,7 +741,7 @@ void fn_1_2ADC(void) } if (temp_r28 <= 10) { for (i = 0; i < 4; i++) { - HuSprScaleSet(lbl_1_bss_9C, i, cos(M_PI * (9.0f * temp_r28) / 180.0), cos(M_PI * (9.0f * temp_r28) / 180.0)); + HuSprScaleSet(lbl_1_bss_9C, i, cosd(9.0f * temp_r28), cosd(9.0f * temp_r28)); } } else { @@ -1264,27 +1264,27 @@ void fn_1_5880(omObjData *object) CZoom += HuPadTrigL[0] / 2; CZoom -= HuPadTrigR[0] / 2; - pos.x = Center.x + (CZoom * (sin((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0))); - pos.y = (Center.y + (CZoom * -sin((M_PI * CRot.x) / 180.0))); - pos.z = (Center.z + (CZoom * (cos((M_PI * CRot.y) / 180.0) * cos((M_PI * CRot.x) / 180.0)))); + pos.x = Center.x + CZoom * (sind(CRot.y) * cosd(CRot.x)); + pos.y = Center.y + CZoom * -sind(CRot.x); + pos.z = Center.z + CZoom * (cosd(CRot.y) * cosd(CRot.x)); offset.x = Center.x - pos.x; offset.y = Center.y - pos.y; offset.z = Center.z - pos.z; - dir.x = (sin((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); - dir.y = cos((M_PI * CRot.x) / 180.0); - dir.z = (cos((M_PI * CRot.y) / 180.0) * sin((M_PI * CRot.x) / 180.0)); + dir.x = (sind(CRot.y) * sind(CRot.x)); + dir.y = cosd(CRot.x); + dir.z = (cosd(CRot.y) * sind(CRot.x)); z_rot = CRot.z; - y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cos((M_PI * z_rot) / 180.0)) - + dir.y * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.z * sin((M_PI * z_rot) / 180.0)) - + dir.z * (offset.x * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.y * sin((M_PI * z_rot) / 180.0)); + y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot)) + + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) + + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); - y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cos((M_PI * z_rot) / 180.0)) - + dir.x * (offset.x * offset.y * (1.0f - cos((M_PI * z_rot) / 180.0)) + offset.z * sin((M_PI * z_rot) / 180.0)) - + dir.z * (offset.y * offset.z * (1.0f - cos((M_PI * z_rot) / 180.0)) - offset.x * sin((M_PI * z_rot) / 180.0)); + y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot)) + + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) + + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); - y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cos((M_PI * z_rot) / 180.0)) - + (dir.x * (offset.x * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) - offset.y * sin((M_PI * z_rot) / 180.0)) - + dir.y * (offset.y * offset.z * (1.0 - cos((M_PI * z_rot) / 180.0)) + offset.x * sin((M_PI * z_rot) / 180.0))); + y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot)) + + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) + + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); VECCrossProduct(&dir, &offset, &offset); VECNormalize(&offset, &offset); diff --git a/src/REL/w03Dll/condor.c b/src/REL/w03Dll/condor.c index 15ea43a8..4c8327dd 100644 --- a/src/REL/w03Dll/condor.c +++ b/src/REL/w03Dll/condor.c @@ -12,6 +12,8 @@ #include "game/pad.h" #include "game/wipe.h" +#include "ext_math.h" + // structs typedef struct w03UnkStruct5 { @@ -172,8 +174,8 @@ void fn_1_3304(void) var_r31 = BoardSpaceLinkFlagSearch(0, var_r31, 0x02000000); BoardSpacePosGet(0, var_r31, &sp8); temp_f31 = 0.0f; - sp8.x = sp8.x + (-300.0 * sin((M_PI * temp_f31) / 180.0)); - sp8.z = sp8.z + (-300.0 * cos((M_PI * temp_f31) / 180.0)); + sp8.x += -300.0 * sind(temp_f31); + sp8.z += -300.0 * cosd(temp_f31); sp8.y = 45.0f + sp8.y; BoardModelPosSetV(lbl_1_data_310, &sp8); BoardModelMotionStart(lbl_1_data_310, 2, 0x40000001); @@ -211,7 +213,7 @@ s32 fn_1_3478(s32 arg0) temp = BoardSpaceLinkFlagSearch(0, temp_r28, 0x02000000); BoardSpacePosGet(0, temp, &sp38); VECSubtract(&sp38, &sp2C, &sp20); - float_temp = atan2(sp20.x, sp20.z) / M_PI * 180.0f; + float_temp = atan2d(sp20.x, sp20.z); BoardPlayerMotBlendSet(arg0, (float_temp), 0xF); while (BoardPlayerMotBlendCheck(arg0) == 0) { @@ -473,8 +475,8 @@ void fn_1_3F5C(s32 arg0) var_r31 = BoardSpaceLinkFlagSearch(0, var_r31, 0x02000000); BoardSpacePosGet(0, var_r31, &sp8); temp_f31 = 0.0f; - sp8.x = (sp8.x + (-300.0 * sin((M_PI * temp_f31) / 180.0f))); - sp8.z = (sp8.z + (-300.0 * cos((M_PI * temp_f31) / 180.0f))); + sp8.x += -300.0 * sind(temp_f31); + sp8.z += -300.0 * cosd(temp_f31); sp8.y = 45.0f + sp8.y; BoardModelPosSetV(lbl_1_data_310, &sp8); BoardModelMotionStart(lbl_1_data_310, 2, 0x40000001); @@ -589,7 +591,7 @@ void fn_1_4424(w03StructUnk2 *arg0) VECSubtract(&sp60, &sp6C, &sp3C); } - sp10_2 = 180.0f * (atan2(-sp3C.x, -sp3C.z) / M_PI); + sp10_2 = atan2d(-sp3C.x, -sp3C.z); BoardModelMotionStart(lbl_1_data_314, 0, 0U); BoardModelMotionSpeedSet(lbl_1_data_314, 8.0f); HuPrcSleep(1); @@ -604,7 +606,7 @@ void fn_1_4424(w03StructUnk2 *arg0) for (i = var_r25 = 0; i < 20;) { Hu3DMotionExec(temp_r23, temp_r28->unk_08, temp_r28->unk_64, 0); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_314), temp_r22, &sp54); - temp_r28->unk_64 = (f32)(temp_r28->unk_64 + temp_r28->unk_68); + temp_r28->unk_64 += temp_r28->unk_68; if (temp_r28->unk_64 > 400.0f) { break; @@ -770,9 +772,9 @@ void fn_1_4D60(w03StructUnk2 *arg0) temp_r31->unk_00 = 1; temp_f31 = 360.0f * BoardRandFloat(); temp_f30 = 5.0f * BoardRandFloat(); - temp_r31->unk_14.x = temp_f30 * sin((M_PI * temp_f31) / 180.0); + temp_r31->unk_14.x = temp_f30 * sind(temp_f31); temp_r31->unk_14.y = 50.0f + (20.0f * BoardRandFloat()); - temp_r31->unk_14.z = temp_f30 * cos((M_PI * temp_f31) / 180.0); + temp_r31->unk_14.z = temp_f30 * cosd(temp_f31); temp_r31->unk_08.x = sp8.x; temp_r31->unk_08.y = sp8.y; temp_r31->unk_08.z = sp8.z; @@ -1084,11 +1086,11 @@ void fn_1_5C5C(omObjData *arg0, w03UnkStruct5 *arg1) PSMTXTrans(sp80, sp44.x, sp44.y, sp44.z); PSMTXConcat(sp80, sp50, sp80); Hu3DMtxTransGet(sp80, &sp44); - MTXRotDeg(spB0, 'y', (180.0 * (atan2(-sp2C.x, -sp2C.z) / M_PI))); + MTXRotDeg(spB0, 'y', atan2d(-sp2C.x, -sp2C.z)); PSMTXConcat(spB0, spE0, sp110); BoardModelMtxSet(lbl_1_data_310, &sp110); BoardModelPosSetV(lbl_1_data_310, &sp44); - BoardCameraRotSet(-20.0f, (180.0 * (atan2(sp2C.x, sp2C.z) / M_PI))); + BoardCameraRotSet(-20.0f, atan2d(sp2C.x, sp2C.z)); } void fn_1_602C(omObjData *arg0, w03UnkStruct5 *arg1) diff --git a/src/REL/w03Dll/mg_coin.c b/src/REL/w03Dll/mg_coin.c index 0d0e6f64..b577ffc1 100644 --- a/src/REL/w03Dll/mg_coin.c +++ b/src/REL/w03Dll/mg_coin.c @@ -10,6 +10,8 @@ #include "game/object.h" #include "game/pad.h" +#include "ext_math.h" + // structs typedef struct someBits3 { // make sure this is defined correctly /* 0x00 */ struct { @@ -175,7 +177,7 @@ s32 fn_1_7D18(s32 arg0) BoardSpacePosGet(0, temp_r28, &sp38); VECSubtract(&sp38, &sp2C, &sp20); VECNormalize(&sp20, &sp20); - BoardPlayerRotYSet(arg0, 180.0 * (atan2(-sp20.x, -sp20.z) / M_PI)); + BoardPlayerRotYSet(arg0, atan2d(-sp20.x, -sp20.z)); HuPrcSleep(0x1E); model = BoardModelIDGet(lbl_1_bss_C[7]); Hu3DModelObjPosGet(model, "phei", &sp38); @@ -187,8 +189,8 @@ s32 fn_1_7D18(s32 arg0) var_f31 = 39.0f; } - sp38.x = sp38.x + (var_f31 * sin((M_PI * (180.0f + BoardModelRotYGet(lbl_1_data_456))) / 180.0)); - sp38.z = sp38.z + (var_f31 * cos((M_PI * (180.0f + BoardModelRotYGet(lbl_1_data_456))) / 180.0)); + sp38.x += var_f31 * sind(180.0f + BoardModelRotYGet(lbl_1_data_456)); + sp38.z += var_f31 * cosd(180.0f + BoardModelRotYGet(lbl_1_data_456)); BoardPlayerPosGet(arg0, &sp2C); BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 0x14); @@ -197,7 +199,7 @@ s32 fn_1_7D18(s32 arg0) BoardModelPosGet(lbl_1_bss_C[10], &sp2C); BoardPlayerPosGet(arg0, &sp38); VECSubtract(&sp38, &sp2C, &sp20); - arctan = atan2(sp20.x, sp20.z) / M_PI * 180.0; + arctan = atan2d(sp20.x, sp20.z); BoardModelRotYSet(lbl_1_bss_C[10], arctan); HuPrcVSleep(); } @@ -589,7 +591,7 @@ void fn_1_9044(omObjData *arg0, someBits3 *arg1) } } - sp8.z = arg0->trans.x * sin((M_PI * arg0->trans.y) / 180.0); + sp8.z = arg0->trans.x * sind(arg0->trans.y); BoardModelRotSetV(lbl_1_data_456, &sp8); } @@ -626,7 +628,7 @@ void fn_1_9230(s32 arg0) BoardModelPosGet(lbl_1_bss_C[10], &sp20); BoardPlayerPosGet(arg0, &sp14); VECSubtract(&sp14, &sp20, &sp8); - rotY = atan2(sp8.x, sp8.z) / M_PI * 180.0; + rotY = atan2d(sp8.x, sp8.z); BoardModelRotYSet(lbl_1_bss_C[10], rotY); HuPrcVSleep(); } @@ -773,8 +775,8 @@ void fn_1_97F8(s32 arg0) } temp_r31 = &temp_r30->unk_0C[i]; temp_r31->unk0 = 1; - temp_r31->unk8.x = sp8.x + (50.0f * sin((M_PI * var_f31) / 180.0)); - temp_r31->unk8.z = sp8.z + (50.0f * cos((M_PI * var_f31) / 180.0)); + temp_r31->unk8.x = sp8.x + (50.0f * sind(var_f31)); + temp_r31->unk8.z = sp8.z + (50.0f * cosd(var_f31)); temp_r31->unk8.y = 600.0f + sp8.y + (500.0f * BoardRandFloat()); temp_r31->unk1 = 0; temp_r31->unk4 = BoardRandFloat() * 360.0f; diff --git a/src/REL/w03Dll/mg_item.c b/src/REL/w03Dll/mg_item.c index 24d08ad3..18332aa2 100644 --- a/src/REL/w03Dll/mg_item.c +++ b/src/REL/w03Dll/mg_item.c @@ -255,7 +255,7 @@ s32 fn_1_9CF4(s32 arg0) BoardSpacePosGet(0, temp_r29, &sp38); VECSubtract(&sp38, &sp2C, &sp20); VECNormalize(&sp20, &sp20); - BoardPlayerRotYSet(arg0, (f32)(180.0 * (atan2(-sp20.x, -sp20.z) / M_PI))); + BoardPlayerRotYSet(arg0, atan2d(-sp20.x, -sp20.z)); BoardPlayerPosLerpStart(arg0, &sp2C, &sp38, 0x14); while (GWPlayer[arg0].moving != 0) { @@ -288,11 +288,11 @@ void fn_1_9FE4(void) f32 var_f31; BoardModelPosGet(lbl_1_bss_C[11], &sp24); - sp18.x = (-3179.800048828125 + (200.0 * sin(0.0))); - sp18.z = (-907.7000122070313 + 200.0 * cos(0.0)); + sp18.x = -3179.8f + 200.0 * sin(0.0); + sp18.z = -907.7f + 200.0 * cos(0.0); sp18.y = sp24.y; VECSubtract(&sp18, &sp24, &spC); - temp_f30 = (atan2(spC.z, spC.x) / M_PI * 180.0); + temp_f30 = atan2d(spC.z, spC.x); sp8 = BoardModelRotYGet(lbl_1_bss_C[11]); BoardModelMotionShiftSet(lbl_1_bss_C[11], lbl_1_data_4DA, 0.0f, 10.0, HU3D_MOTATTR_LOOP); @@ -861,7 +861,7 @@ void fn_1_B748(omObjData *arg0, someBits2 *arg1) BoardModelPosSetV(temp_r29, &sp8); BoardModelRotYSet(temp_r29, 8.0f + BoardModelRotYGet(temp_r29)); BoardModelScaleGet(temp_r29, &sp14); - sp14.x = sp14.y = sp14.z = cos(M_PI * temp_f0 / 180.0); + sp14.x = sp14.y = sp14.z = cosd(temp_f0); BoardModelScaleSetV(temp_r29, &sp14); arg1->unk1 += 4; return; diff --git a/src/REL/w03Dll/river.c b/src/REL/w03Dll/river.c index 98423294..7736b6f2 100644 --- a/src/REL/w03Dll/river.c +++ b/src/REL/w03Dll/river.c @@ -6,6 +6,8 @@ #include "game/board/player.h" #include "game/hsfdraw.h" +#include "ext_math.h" + //BSS char lbl_1_bss_130[8]; omObjData* lbl_1_bss_12C; @@ -167,7 +169,7 @@ s32 fn_1_6898(s32 arg0) { Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), "hei01", &sp20); BoardPlayerPosGet(arg0, &sp14); VECSubtract(&sp20, &sp14, &sp8); - temp_f31 = 180.0 * (atan2(sp8.x, sp8.z) / M_PI); + temp_f31 = atan2d(sp8.x, sp8.z); BoardCameraTargetModelSet(lbl_1_data_388); BoardPlayerMotBlendSet(arg0, temp_f31, 15); @@ -456,10 +458,10 @@ void fn_1_767C(omObjData* arg0) { if ((lbl_1_data_388 != -1) && (lbl_1_bss_124 == 0)) { temp_r31->unk_04 += 3.0f; if (temp_r31->unk_04 >= 360.0f) { - temp_r31->unk_04 = (f32) (temp_r31->unk_04 - 360.0f); + temp_r31->unk_04 -= 360.0f; } BoardModelPosGet(lbl_1_data_388, &sp8); - sp8.y = (f32) ((f64) sp8.y + (0.25 * (2.0 * sin((M_PI * (f64) temp_r31->unk_04) / 180.0)))); + sp8.y += 0.25 * (2.0 * sind(temp_r31->unk_04)); BoardModelPosSetV(lbl_1_data_388, &sp8); } } diff --git a/src/REL/w03Dll/statue.c b/src/REL/w03Dll/statue.c index 914ee853..de10197b 100644 --- a/src/REL/w03Dll/statue.c +++ b/src/REL/w03Dll/statue.c @@ -13,6 +13,8 @@ #include "game/board/main.h" #include "game/objsub.h" +#include "ext_math.h" + void fn_1_1358(void); void fn_1_152C(void); s32 fn_1_15E8(void); @@ -26,7 +28,6 @@ void fn_1_2AC0(void); void fn_1_2818(void); void fn_1_2A40(void); void fn_1_2B44(void); -double atan2(double y, double x); //data s16 lbl_1_data_280 = -1; @@ -155,7 +156,7 @@ s32 fn_1_1650(s32 arg0) { BoardSpacePosGet(0, temp2, &sp38); BoardPlayerPosGet(arg0, &sp2C); VECSubtract(&sp38, &sp2C, &sp20); - temp = (atan2(-sp20.x, -sp20.z) / M_PI) * 180.0f; + temp = atan2d(-sp20.x, -sp20.z); BoardPlayerRotYSet(arg0, temp); sp14.x = 0.0f; sp14.y = 100.0f; @@ -539,7 +540,7 @@ void fn_1_26E0(s32 arg0) { BoardPlayerPosGet(arg0, &sp14); VECSubtract(&sp20, &sp14, &sp8); VECNormalize(&sp8, &sp8); - temp = (180.0f * (atan2(-sp8.x, -sp8.z) / M_PI)); + temp = atan2d(-sp8.x, -sp8.z); BoardPlayerRotYSet(arg0, temp); BoardCameraViewSet(1); BoardCameraTargetPlayerSet(arg0); diff --git a/src/REL/w05Dll/dolphin.c b/src/REL/w05Dll/dolphin.c index 6870e9c0..46cc5a9e 100644 --- a/src/REL/w05Dll/dolphin.c +++ b/src/REL/w05Dll/dolphin.c @@ -11,6 +11,8 @@ #include "game/board/player.h" #include "game/board/window.h" +#include "ext_math.h" + // bss s16 lbl_1_bss_72[2]; s16 lbl_1_bss_6C[3]; @@ -179,7 +181,7 @@ void fn_1_4034(s32 arg0) var_r27 = arg0 + 1; } Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_118), lbl_1_data_22C[var_r27], &sp34); - temp_f25 = (180.0 * (atan2((sp34.x - sp40.x), (sp34.z - sp40.z)) / M_PI)); + temp_f25 = atan2d(sp34.x - sp40.x, sp34.z - sp40.z); BoardModelMotionShiftSet(lbl_1_bss_64, 2, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); while (fn_1_1208(lbl_1_bss_64, temp_f25, 10.0f) == 0) { @@ -236,7 +238,7 @@ loop_37: } BoardModelPosGet(lbl_1_bss_64, &sp40); BoardPlayerPosGet(lbl_1_bss_68, &sp28); - var_f27 = 180.0 * (atan2((sp40.x - sp28.x), (sp40.z - sp28.z)) / M_PI); + var_f27 = atan2d(sp40.x - sp28.x, sp40.z - sp28.z); BoardPlayerMotBlendSet(lbl_1_bss_68, var_f27, 0xF); while (BoardPlayerMotBlendCheck(lbl_1_bss_68) == 0) { @@ -352,7 +354,7 @@ void fn_1_4EB4(s32 arg1, s32 arg2, Vec *arg3) BoardPlayerIdleSet(lbl_1_bss_68); HuPrcSleep(8); BoardSpacePosGet(0, arg2, &sp3C); - var_f28 = 180.0 * (atan2((sp3C.x - sp30.x), (sp3C.z - sp30.z)) / M_PI); + var_f28 = atan2d(sp3C.x - sp30.x, sp3C.z - sp30.z); BoardPlayerMotBlendSet(lbl_1_bss_68, var_f28, 0xF); while (BoardPlayerMotBlendCheck(lbl_1_bss_68) == 0) { @@ -486,7 +488,7 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec *arg2) VECAdd(&sp58, &sp40, &sp58); sp64 = sp58; if (var_r29 == 0) { - sp58.y += 250.0 * sin((M_PI * var_f28) / 180.0); + sp58.y += 250.0 * sind(var_f28); var_f28 -= 2.5f; if (var_f28 < -540.0f) { var_f28 = -540.0f; @@ -521,7 +523,7 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec *arg2) var_r29--; } BoardModelPosSetV(lbl_1_bss_64, &sp58); - sp28.x = sp34.x = (45.0 * -sin((M_PI * var_f28) / 180.0)); + sp28.x = sp34.x = 45.0 * -sind(var_f28); BoardModelRotSetV(lbl_1_bss_64, &sp34); BoardPlayerRotSetV(lbl_1_bss_68, &sp28); sp4C = sp58; @@ -540,7 +542,7 @@ void fn_1_5794(s32 arg0, s32 arg1, Vec *arg2) BoardPlayerIdleSet(lbl_1_bss_68); HuPrcSleep(8); BoardSpacePosGet(0, arg1, &sp58); - var_f27 = (180.0 * (atan2((sp58.x - sp4C.x), (sp58.z - sp4C.z)) / M_PI)); + var_f27 = atan2d(sp58.x - sp4C.x, sp58.z - sp4C.z); BoardPlayerMotBlendSet(lbl_1_bss_68, var_f27, 0xF); while (BoardPlayerMotBlendCheck(lbl_1_bss_68) == 0) { @@ -599,8 +601,8 @@ void fn_1_62AC(s32 arg0, Vec *arg1) sp1C = sp28; sp10 = sp28; VECScale(&sp1C, &sp1C, sp8[arg0]); - sp1C.y += (250.0 * sin((M_PI * var_f31) / 180.0)); - var_f30 = (250.0 * -cos((M_PI * var_f31) / 180.0)); + sp1C.y += 250.0 * sind(var_f31); + var_f30 = 250.0 * -cosd(var_f31); VECScale(&sp10, &sp10, var_f30); VECAdd(&sp10, &sp1C, &sp1C); VECAdd(&sp1C, &sp34, &sp1C); diff --git a/src/REL/w05Dll/hotel.c b/src/REL/w05Dll/hotel.c index d05260b2..bebb63c7 100644 --- a/src/REL/w05Dll/hotel.c +++ b/src/REL/w05Dll/hotel.c @@ -10,6 +10,8 @@ #include "game/board/player.h" #include "game/board/window.h" +#include "ext_math.h" + // data s32 lbl_1_data_150[5] = { DATA_MAKE_NUM(DATADIR_W05, 0x21), DATA_MAKE_NUM(DATADIR_W05, 0x22), DATA_MAKE_NUM(DATADIR_W05, 0x23), @@ -75,7 +77,7 @@ void fn_1_155C(void) { temp_f30 = BoardPlayerRotYGet(lbl_1_bss_28); BoardPlayerPosGet(lbl_1_bss_28, &sp58); Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_118), "hotel1", &sp64); - temp_f31 = 180.0 * (atan2((sp64.x - sp58.x), (sp64.z - sp58.z)) / M_PI); + temp_f31 = atan2d(sp64.x - sp58.x, sp64.z - sp58.z); BoardPlayerMotBlendSet(lbl_1_bss_28, temp_f31, 0xF); BoardCameraViewSet(2); @@ -103,7 +105,7 @@ void fn_1_155C(void) { HuPrcVSleep(); } BoardModelPosSetV(lbl_1_bss_14[4], &sp28); - temp_f31 = (180.0 * (atan2((sp58.x - sp28.x), (sp58.z - sp28.z)) / M_PI)); + temp_f31 = atan2d(sp58.x - sp28.x, sp58.z - sp28.z); while (fn_1_1208(lbl_1_bss_14[4], temp_f31, 10.0f) == 0) { HuPrcVSleep(); @@ -266,13 +268,13 @@ void fn_1_1E44(void) { HuPrcVSleep(); } BoardModelPosSetV(lbl_1_bss_14[4], &sp2C); - temp_f31 = (180.0 * (atan2((sp50.x - sp2C.x), (sp50.z - sp2C.z)) / M_PI)); + temp_f31 = atan2d(sp50.x - sp2C.x, sp50.z - sp2C.z); while (fn_1_1208(lbl_1_bss_14[4], temp_f31, 10.0f) == 0) { HuPrcVSleep(); } BoardModelMotionShiftSet(lbl_1_bss_14[4], 0, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); - temp_f31 = 180.0 * (atan2((sp2C.x - sp50.x), (sp2C.z - sp50.z)) / M_PI); + temp_f31 = atan2d(sp2C.x - sp50.x, sp2C.z - sp50.z); BoardPlayerMotBlendSet(lbl_1_bss_28, temp_f31, 0xF); while (BoardPlayerMotBlendCheck(lbl_1_bss_28) == 0) { diff --git a/src/REL/w05Dll/mg_coin.c b/src/REL/w05Dll/mg_coin.c index 36c2269a..c2f8d938 100644 --- a/src/REL/w05Dll/mg_coin.c +++ b/src/REL/w05Dll/mg_coin.c @@ -14,6 +14,9 @@ #include "game/board/window.h" +#include "ext_math.h" + + s16 lbl_1_bss_102[3]; s16 lbl_1_bss_100; s16 lbl_1_bss_FE; @@ -226,7 +229,7 @@ void fn_1_9F24(omObjData *arg0) temp_r31->unk_08++; } sp18 = temp_r31->unk_0C[temp_r31->unk_08]; - var_f31 = (180.0 * (atan2((sp18.x - sp24.x), (sp18.z - sp24.z)) / M_PI)); + var_f31 = atan2d(sp18.x - sp24.x, sp18.z - sp24.z); BoardPlayerRotYSet(lbl_1_bss_C0, var_f31); spC = temp_r31->unk_0C[temp_r31->unk_08]; spC.y += 50.0f; @@ -387,7 +390,7 @@ void fn_1_AB24(void) spC = temp_r30->data; BoardPlayerPosGet(lbl_1_bss_C0, &sp28); BoardModelPosGet(lbl_1_bss_14[5], &sp1C); - var_f30 = (180.0 * (atan2((sp1C.z - sp28.z), (sp1C.x - sp28.x)) / M_PI)); + var_f30 = atan2d(sp1C.z - sp28.z, sp1C.x - sp28.x); BoardPlayerMotBlendSet(lbl_1_bss_C0, var_f30, 0xF); while (BoardPlayerMotBlendCheck(lbl_1_bss_C0) == 0) { diff --git a/src/REL/w05Dll/mg_item.c b/src/REL/w05Dll/mg_item.c index 0a596430..0e942bef 100644 --- a/src/REL/w05Dll/mg_item.c +++ b/src/REL/w05Dll/mg_item.c @@ -12,6 +12,8 @@ #include "game/board/model.h" #include "game/board/window.h" +#include "ext_math.h" + // data s32 lbl_1_data_310[2] = { 0x79, 0x7A }; char *lbl_1_data_330[3] = { "suika1", "suika2", "suika3" }; @@ -459,7 +461,7 @@ void fn_1_80D8(omObjData *arg0) } if ((spC != 0) || (sp10 != 0)) { var_r29 = -1; - var_f31 = (180.0 * (atan2(spC, sp10) / M_PI)); + var_f31 = atan2d(spC, sp10); if (var_f31 < 0.0f) { var_f31 += 360.0f; } @@ -695,7 +697,7 @@ void fn_1_896C(void) var_r29 = (1 << var_r31); if ((temp_r30 & var_r29) != 0) { BoardModelPosGet(lbl_1_bss_A4[var_r31], &sp18); - sp18.y = (sp18.y + (0.25 * sin((M_PI * var_f30) / 180.0))); + sp18.y += 0.25 * sind(var_f30); BoardModelPosSetV(lbl_1_bss_A4[var_r31], &sp18); } } @@ -810,8 +812,8 @@ void fn_1_9268(ModelData *model, ParticleData *particle, f32 (*matrix)[4]) if (var_r28 != particle->unk_30) { temp_f30 = 360.0f * (0.003921569f * (s32)(frand() & 0xFF)); temp_f29 = temp_f31 * (20.0f + (60.0f * (0.003921569f * (s32)(frand() & 0xFF)))); - var_r31->unk34.x = sp8.x + (temp_f29 * sin((M_PI * temp_f30) / 180.0)); - var_r31->unk34.z = sp8.z + (temp_f29 * cos((M_PI * temp_f30) / 180.0)); + var_r31->unk34.x = sp8.x + temp_f29 * sind(temp_f30); + var_r31->unk34.z = sp8.z + temp_f29 * cosd(temp_f30); var_r31->unk34.y = sp8.y + (temp_f31 * (-30.0f + (40.0f * (0.003921569f * (s32)(frand() & 0xFF))))); var_r31->unk08.x = 0.5f + (3.0f * (0.003921569f * (s32)(frand() & 0xFF))); var_r31->unk08.y = 0.3f + (2.0f * (0.003921569f * (s32)(frand() & 0xFF))); diff --git a/src/game/board/basic_space.c b/src/game/board/basic_space.c index 70df8cf9..d7624381 100644 --- a/src/game/board/basic_space.c +++ b/src/game/board/basic_space.c @@ -302,7 +302,7 @@ static void CoinChgAppear(omObjData *object, coinChg *coin_chg) { f32 angle; OSu16tof32(&coin_chg->angle, &angle); - angle = sin(M_PI * angle / 180.0); + angle = sind(angle); scale = angle; object->rot.x = 405.0f * angle; BoardModelScaleSet(coin_chg->coin_model, scale, scale, scale); @@ -342,8 +342,8 @@ static void CoinChgSeparate(omObjData *object, coinChg *coin_chg) { } else { spacing = 105.0f; } - y_offset = (200.0 * sin((M_PI * (2.0f * x_scale)) / 180.0)); - x_scale = sin((M_PI * x_scale) / 180.0); + y_offset = 200.0 * sind(2.0f * x_scale); + x_scale = sind(x_scale); object->rot.x = 45.0f + (315.0f * x_scale); if (coin_chg->tens != 0) { coin_x = object->trans.x + (x_scale * -spacing); @@ -379,7 +379,7 @@ static void CoinChgShow(omObjData* object, coinChg* coin_chg) { f32 y_pos; OSu16tof32(&coin_chg->angle, &angle); - angle = (f32) sin((M_PI * angle) / 180.0); + angle = sind(angle); if (coin_chg->minus != 0) { y_pos = (-50.0f * angle) + object->trans.y; } else { diff --git a/src/game/board/block.c b/src/game/board/block.c index 8a70b5c9..b830314f 100644 --- a/src/game/board/block.c +++ b/src/game/board/block.c @@ -6,7 +6,7 @@ #include "game/flag.h" #include "game/objsub.h" #include "game/process.h" -#include "math.h" +#include "ext_math.h" #define BLOCK_SPAWN 0 #define BLOCK_HIT 2 @@ -312,7 +312,7 @@ static void SpawnBlock(BlockWork *arg0, omObjData *arg1) } arg1->rot.y = rotY; - arg1->scale.x = arg1->scale.y = arg1->scale.z = sin(M_PI * scaleAngle / 180.0); + arg1->scale.x = arg1->scale.y = arg1->scale.z = sind(scaleAngle); } static void HitBlock(BlockWork *arg0, omObjData *arg1) @@ -325,7 +325,7 @@ static void HitBlock(BlockWork *arg0, omObjData *arg1) } OSs16tof32(&arg0->hit_y_velocity, &var_f30); - arg1->trans.y += 0.2f * sin((M_PI * var_f30) / 180.0); + arg1->trans.y += 0.2f * sind(var_f30); } static void OpenBlock(BlockWork *arg0, omObjData *arg1) diff --git a/src/game/board/bowser.c b/src/game/board/bowser.c index fe5af9e3..bcbe7133 100644 --- a/src/game/board/bowser.c +++ b/src/game/board/bowser.c @@ -12,30 +12,29 @@ #include "game/wipe.h" #include "game/gamework.h" +#include "ext_math.h" #include "string.h" -#define ABS(x) ((x) < 0 ? -(x) : (x)) - typedef struct bowser_event_data { - s16 sprite[3]; - s16 delay[3]; - s16 angle[3]; - s16 group; - s16 model; + s16 sprite[3]; + s16 delay[3]; + s16 angle[3]; + s16 group; + s16 model; } BowserEventData; static BowserEventData bowserEvent; static Vec playerPosTemp[4]; static s32 scareFxTbl[] = { - 0x128, - 0x168, - 0x1A8, - 0x1E8, - 0x228, - 0x268, - 0x2A8, - 0x2E8 + 0x128, + 0x168, + 0x1A8, + 0x1E8, + 0x228, + 0x268, + 0x2A8, + 0x2E8 }; @@ -102,701 +101,701 @@ static s32 ExecMiniBowserEvent(void); s32 BoardBowserExec(s32 player, s32 space) { - if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { - HuAudFXPlay(841); - BoardCameraViewSet(2); - BoardPlayerMotBlendSet(player, 0, 15); - while(!BoardPlayerMotBlendCheck(player)) { - HuPrcVSleep(); - } - BoardCameraMotionWait(); - BoardTutorialHookExec(12, 0); - GWPlayer[player].color = 2; - } else { - eventPlayer = player; - eventSpace = space; - playerMot[0] = playerMot[1] = playerMot[2] = playerMot[3] = -1; - bowserProc = HuPrcChildCreate(ExecBowser, 8196, 14336, 0, boardMainProc); - HuPrcDestructorSet2(bowserProc, DestroyBowser); - while(bowserProc) { - HuPrcVSleep(); - } - GWPlayer[player].color = 2; - } + if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { + HuAudFXPlay(841); + BoardCameraViewSet(2); + BoardPlayerMotBlendSet(player, 0, 15); + while(!BoardPlayerMotBlendCheck(player)) { + HuPrcVSleep(); + } + BoardCameraMotionWait(); + BoardTutorialHookExec(12, 0); + GWPlayer[player].color = 2; + } else { + eventPlayer = player; + eventSpace = space; + playerMot[0] = playerMot[1] = playerMot[2] = playerMot[3] = -1; + bowserProc = HuPrcChildCreate(ExecBowser, 8196, 14336, 0, boardMainProc); + HuPrcDestructorSet2(bowserProc, DestroyBowser); + while(bowserProc) { + HuPrcVSleep(); + } + GWPlayer[player].color = 2; + } } typedef struct bowser_work { - u8 kill : 1; - u8 state : 3; - u8 mot_active : 1; - u8 fall_done : 1; - u8 jump_done : 1; - u8 jump_state; - u8 idle_timer; + u8 kill : 1; + u8 state : 3; + u8 mot_active : 1; + u8 fall_done : 1; + u8 jump_done : 1; + u8 jump_state; + u8 idle_timer; } BowserWork; typedef struct mini_bowser_work { - u8 kill : 1; - s16 group; - s16 sprite; - s16 angle; + u8 kill : 1; + s16 group; + s16 sprite; + s16 angle; } MiniBowserWork; typedef struct bowser_event_work { - u8 kill : 1; - s8 state; - s16 timer; + u8 kill : 1; + s8 state; + s16 timer; } BowserEventWork; static void ExecBowser(void) { - #define BOWSER_EVENT 0 - #define MINI_BOWSER_EVENT 1 + #define BOWSER_EVENT 0 + #define MINI_BOWSER_EVENT 1 - s32 i; - s32 status; - if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { - HuAudFXPlay(841); - omVibrate(eventPlayer, 12, 4, 2); - if(GWBoardGet() == BOARD_ID_MAIN6 && boardBowserHook) { - boardBowserHook(1); - } - BoardAudSeqPause(0, 1, 1000); - //20% of bowser, 80% chance of koopa kid - if(BoardRandMod(100) < 20) { - eventType = BOWSER_EVENT; - } else { - eventType = MINI_BOWSER_EVENT; - } - } else { - BoardMusStart(1, 6, 127, 0); - } - status = BoardDataDirReadAsync(DATADIR_BKOOPA); - BoardDataAsyncWait(status); - CreatePlayerMot(); - if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { - ExecBowserMain(); - } else { - ExecMGReturn(); - } - for(i=0; i<4; i++) { - if(eventSpace == GWPlayer[i].space_curr) { - BoardPlayerMotionSpeedSet(i, 1.0f); - } - } - BoardAudSeqPause(0, 0, 1000); - if(bowserObj) { - OM_GET_WORK_PTR(bowserObj, BowserWork)->kill = 1; - } - if(miniBowserObj) { - OM_GET_WORK_PTR(miniBowserObj, MiniBowserWork)->kill = 1; - } - if(bowserEventObj) { - OM_GET_WORK_PTR(bowserEventObj, BowserEventWork)->kill = 1; - } - GWPlayer[eventPlayer].show_next = 1; - BoardCameraMotionStartEx(-1, NULL, NULL, 2100.0f, -1.0f, 21); - HuPrcSleep(30); - for(i=0; i<4; i++) { - BoardPlayerIdleSet(i); - } - BoardCameraMotionWait(); - if(GWBoardGet() == BOARD_ID_MAIN6 && boardBowserHook) { - boardBowserHook(0); - } else { - HuPrcSleep(30); - } - HuPrcEnd(); + s32 i; + s32 status; + if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { + HuAudFXPlay(841); + omVibrate(eventPlayer, 12, 4, 2); + if(GWBoardGet() == BOARD_ID_MAIN6 && boardBowserHook) { + boardBowserHook(1); + } + BoardAudSeqPause(0, 1, 1000); + //20% of bowser, 80% chance of koopa kid + if(BoardRandMod(100) < 20) { + eventType = BOWSER_EVENT; + } else { + eventType = MINI_BOWSER_EVENT; + } + } else { + BoardMusStart(1, 6, 127, 0); + } + status = BoardDataDirReadAsync(DATADIR_BKOOPA); + BoardDataAsyncWait(status); + CreatePlayerMot(); + if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { + ExecBowserMain(); + } else { + ExecMGReturn(); + } + for(i=0; i<4; i++) { + if(eventSpace == GWPlayer[i].space_curr) { + BoardPlayerMotionSpeedSet(i, 1.0f); + } + } + BoardAudSeqPause(0, 0, 1000); + if(bowserObj) { + OM_GET_WORK_PTR(bowserObj, BowserWork)->kill = 1; + } + if(miniBowserObj) { + OM_GET_WORK_PTR(miniBowserObj, MiniBowserWork)->kill = 1; + } + if(bowserEventObj) { + OM_GET_WORK_PTR(bowserEventObj, BowserEventWork)->kill = 1; + } + GWPlayer[eventPlayer].show_next = 1; + BoardCameraMotionStartEx(-1, NULL, NULL, 2100.0f, -1.0f, 21); + HuPrcSleep(30); + for(i=0; i<4; i++) { + BoardPlayerIdleSet(i); + } + BoardCameraMotionWait(); + if(GWBoardGet() == BOARD_ID_MAIN6 && boardBowserHook) { + boardBowserHook(0); + } else { + HuPrcSleep(30); + } + HuPrcEnd(); } static void ExecBowserMain(void) { - s32 result = 0; - BoardPlayerMotBlendSet(eventPlayer, 0, 15); - while(!BoardPlayerMotBlendCheck(eventPlayer)) { - HuPrcVSleep(); - } - BoardMusStart(1, 5, 127, 0); - BoardCameraViewSet(3); - BoardFilterFadeInit(30, 160); - BoardCameraMotionWait(); - BoardPlayerMotionShiftSet(eventPlayer, jumpMot, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); - BoardPlayerMotionSpeedSet(eventPlayer, 2.0f); - HuPrcSleep(120); - ConfigBowserEvent(); - HuAudFXPlay(scareFxTbl[GWPlayer[eventPlayer].character]); - BoardPlayerMotionShiftSet(eventPlayer, scareMot, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - CreateMiniBowser(); - while(!CheckMiniBowser()) { - HuPrcVSleep(); - } - BoardPlayerIdleSet(eventPlayer); - if(eventType) { - result = ExecMiniBowserEvent(); - if(!result) { - return; - } - BoardAudSeqFadeOut(1, 1000); - BoardFilterFadeInit(30, 160); - HuPrcSleep(30); - } - ExecBowserSpecial(); - BoardModelMotionShiftSet(bowserMdl, 3, 0.0f, 8.0f, HU3D_MOTATTR_NONE); - HuPrcSleep(8); - HuAudFXPlay(58); - BoardWinCreate(2, MAKE_MESSID(3, 11), 5); - BoardWinWait(); - BoardWinKill(); - BoardAudSeqFadeOut(1, 1000); - while(!BoardModelMotionEndCheck(bowserMdl)) { - HuPrcVSleep(); - } - SetBowserState(6); - while(!CheckBowserIdle()) { - HuPrcVSleep(); - } - BoardFilterFadeOut(30); + s32 result = 0; + BoardPlayerMotBlendSet(eventPlayer, 0, 15); + while(!BoardPlayerMotBlendCheck(eventPlayer)) { + HuPrcVSleep(); + } + BoardMusStart(1, 5, 127, 0); + BoardCameraViewSet(3); + BoardFilterFadeInit(30, 160); + BoardCameraMotionWait(); + BoardPlayerMotionShiftSet(eventPlayer, jumpMot, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + BoardPlayerMotionSpeedSet(eventPlayer, 2.0f); + HuPrcSleep(120); + ConfigBowserEvent(); + HuAudFXPlay(scareFxTbl[GWPlayer[eventPlayer].character]); + BoardPlayerMotionShiftSet(eventPlayer, scareMot, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + CreateMiniBowser(); + while(!CheckMiniBowser()) { + HuPrcVSleep(); + } + BoardPlayerIdleSet(eventPlayer); + if(eventType) { + result = ExecMiniBowserEvent(); + if(!result) { + return; + } + BoardAudSeqFadeOut(1, 1000); + BoardFilterFadeInit(30, 160); + HuPrcSleep(30); + } + ExecBowserSpecial(); + BoardModelMotionShiftSet(bowserMdl, 3, 0.0f, 8.0f, HU3D_MOTATTR_NONE); + HuPrcSleep(8); + HuAudFXPlay(58); + BoardWinCreate(2, MAKE_MESSID(3, 11), 5); + BoardWinWait(); + BoardWinKill(); + BoardAudSeqFadeOut(1, 1000); + while(!BoardModelMotionEndCheck(bowserMdl)) { + HuPrcVSleep(); + } + SetBowserState(6); + while(!CheckBowserIdle()) { + HuPrcVSleep(); + } + BoardFilterFadeOut(30); } static void ExecMGReturn(void) { - s32 i; - s32 player; - BoardStatusItemSet(1); - for(i=0; i<4; i++) { - BoardPlayerPosSetV(i, &playerPosTemp[i]); - } - BoardCameraMoveSet(0); - BoardCameraTargetPlayerSet(eventPlayer); - BoardCameraViewSet(2); - BoardCameraMotionWait(); - CreateBowserObj(); - SquishPlayers(); - BoardPlayerMotBlendSet(eventPlayer, 0, 15); - BoardCameraViewSet(3); - BoardFilterFadeInit(30, 160); - BoardStatusItemSet(0); - BoardCameraMotionWait(); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21); - while(WipeStatGet()) { - HuPrcVSleep(); - } - _ClearFlag(0x1001C); - BoardCameraMoveSet(1); - player = GWSystem.player_curr; - GWSystem.player_curr = -1; - DoMGReturnEffect(); - GWSystem.player_curr = player; - BoardStatusShowSetAll(1); - BoardModelMotionShiftSet(bowserMdl, 3, 0.0f, 8.0f, HU3D_MOTATTR_NONE); - HuPrcSleep(8); - HuAudFXPlay(58); - BoardWinCreate(2, MAKE_MESSID(3, 11), 5); - BoardWinWait(); - BoardWinKill(); - while(!BoardStatusStopCheck(0)) { - HuPrcVSleep(); - } - BoardAudSeqFadeOut(1, 1000); - while(!BoardModelMotionEndCheck(bowserMdl)) { - HuPrcVSleep(); - } - SetBowserState(6); - while(!CheckBowserIdle()) { - HuPrcVSleep(); - } - BoardFilterFadeOut(30); - BoardMusStartBoard(); + s32 i; + s32 player; + BoardStatusItemSet(1); + for(i=0; i<4; i++) { + BoardPlayerPosSetV(i, &playerPosTemp[i]); + } + BoardCameraMoveSet(0); + BoardCameraTargetPlayerSet(eventPlayer); + BoardCameraViewSet(2); + BoardCameraMotionWait(); + CreateBowserObj(); + SquishPlayers(); + BoardPlayerMotBlendSet(eventPlayer, 0, 15); + BoardCameraViewSet(3); + BoardFilterFadeInit(30, 160); + BoardStatusItemSet(0); + BoardCameraMotionWait(); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21); + while(WipeStatGet()) { + HuPrcVSleep(); + } + _ClearFlag(0x1001C); + BoardCameraMoveSet(1); + player = GWSystem.player_curr; + GWSystem.player_curr = -1; + DoMGReturnEffect(); + GWSystem.player_curr = player; + BoardStatusShowSetAll(1); + BoardModelMotionShiftSet(bowserMdl, 3, 0.0f, 8.0f, HU3D_MOTATTR_NONE); + HuPrcSleep(8); + HuAudFXPlay(58); + BoardWinCreate(2, MAKE_MESSID(3, 11), 5); + BoardWinWait(); + BoardWinKill(); + while(!BoardStatusStopCheck(0)) { + HuPrcVSleep(); + } + BoardAudSeqFadeOut(1, 1000); + while(!BoardModelMotionEndCheck(bowserMdl)) { + HuPrcVSleep(); + } + SetBowserState(6); + while(!CheckBowserIdle()) { + HuPrcVSleep(); + } + BoardFilterFadeOut(30); + BoardMusStartBoard(); } static void DestroyBowser(void) { - KillPlayerMot(); - HuDataDirClose(DATADIR_BKOOPA); - bowserProc = NULL; + KillPlayerMot(); + HuDataDirClose(DATADIR_BKOOPA); + bowserProc = NULL; } static void SquishPlayers(void) { - Vec pos; - Vec pos_space; - s32 i; - BoardPlayerPosGet(eventPlayer, &pos); - if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { - HuAudFXPlay(798); - } - pos.y += 6.0f; - BoardPlayerPosSetV(eventPlayer, &pos); - GWPlayer[eventPlayer].show_next = 0; - BoardPlayerMotionSpeedSet(eventPlayer, 0.0f); - for(i=0; i<4; i++) { - if(eventSpace == GWPlayer[i].space_curr) { - BoardPlayerPosGet(i, &pos); - BoardSpacePosGet(0, eventSpace, &pos_space); - pos.y = pos_space.y+2.5f; - BoardPlayerPosSetV(i, &pos); - BoardPlayerMotionStart(i, playerMot[i], 0); - BoardPlayerMotionTimeSet(i, 50.0f); - BoardPlayerMotionSpeedSet(i, 0.0f); - } - } + Vec pos; + Vec pos_space; + s32 i; + BoardPlayerPosGet(eventPlayer, &pos); + if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { + HuAudFXPlay(798); + } + pos.y += 6.0f; + BoardPlayerPosSetV(eventPlayer, &pos); + GWPlayer[eventPlayer].show_next = 0; + BoardPlayerMotionSpeedSet(eventPlayer, 0.0f); + for(i=0; i<4; i++) { + if(eventSpace == GWPlayer[i].space_curr) { + BoardPlayerPosGet(i, &pos); + BoardSpacePosGet(0, eventSpace, &pos_space); + pos.y = pos_space.y+2.5f; + BoardPlayerPosSetV(i, &pos); + BoardPlayerMotionStart(i, playerMot[i], 0); + BoardPlayerMotionTimeSet(i, 50.0f); + BoardPlayerMotionSpeedSet(i, 0.0f); + } + } } static void ExecBowserSpecial(void) { - s32 i; - CreateBowserObj(); - while(!CheckBowserIdle()) { - HuPrcVSleep(); - } - SetBowserState(2); - HuAudFXPlay(58); - BoardMusStart(1, 6, 127, 0); - HuPrcSleep(120); - BoardWinCreate(2, MAKE_MESSID(3, 7), 5); - BoardWinWait(); - BoardWinKill(); - HuAudFXPlay(857); - BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - for(i=0; i<4; i++) { - omVibrate(i, 12, 12, 0); - } - HuPrcSleep(11); - while(!BoardModelMotionEndCheck(bowserMdl)) { - HuPrcVSleep(); - } - CreateBowserEvent(); - HuAudFXPlay(831); - HuAudFXPlay(60); - while(!CheckBowserEvent()) { - HuPrcVSleep(); - } - HuPrcSleep(60); - BoardModelAttrSet(bowserMdl, 0x40000004); - while(!BoardModelMotionEndCheck(bowserMdl)) { - HuPrcVSleep(); - } - BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - StopBowserEvent(); - switch(GWSystem.bowser_event) { - case 0: - ExecBowserGame(); - break; - - case 2: - ExecBowserRevo(); - break; - - case 1: - ExecBowserShuffle(); - break; - - case 3: - ExecBowserSuit(); - break; - } + s32 i; + CreateBowserObj(); + while(!CheckBowserIdle()) { + HuPrcVSleep(); + } + SetBowserState(2); + HuAudFXPlay(58); + BoardMusStart(1, 6, 127, 0); + HuPrcSleep(120); + BoardWinCreate(2, MAKE_MESSID(3, 7), 5); + BoardWinWait(); + BoardWinKill(); + HuAudFXPlay(857); + BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + for(i=0; i<4; i++) { + omVibrate(i, 12, 12, 0); + } + HuPrcSleep(11); + while(!BoardModelMotionEndCheck(bowserMdl)) { + HuPrcVSleep(); + } + CreateBowserEvent(); + HuAudFXPlay(831); + HuAudFXPlay(60); + while(!CheckBowserEvent()) { + HuPrcVSleep(); + } + HuPrcSleep(60); + BoardModelAttrSet(bowserMdl, 0x40000004); + while(!BoardModelMotionEndCheck(bowserMdl)) { + HuPrcVSleep(); + } + BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + StopBowserEvent(); + switch(GWSystem.bowser_event) { + case 0: + ExecBowserGame(); + break; + + case 2: + ExecBowserRevo(); + break; + + case 1: + ExecBowserShuffle(); + break; + + case 3: + ExecBowserSuit(); + break; + } } static void ExecBowserGame(void) { - s32 i; - s16 mgTbl[3] = { - 435, - 436, - 437 - }; - s32 messLoss[3] = { - MAKE_MESSID(3, 9), - MAKE_MESSID(3, 12), - MAKE_MESSID(3, 14) - }; - s32 mg; - s32 mess; - s32 fx_stat; - for(i=0; i<4; i++) { - BoardPlayerPosGet(i, &playerPosTemp[i]); - } - BoardWinCreate(2, MAKE_MESSID(3, 8), 5); - BoardWinWait(); - mess = messLoss[GWSystem.bowser_loss]; - BoardWinCreate(2, mess, 5); - BoardWinWait(); - BoardWinKill(); - BoardModelMotionShiftSet(bowserMdl, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); - HuPrcSleep(8); - while(BoardModelMotionTimeGet(bowserMdl) < 80.0f) { - HuPrcVSleep(); - } - fx_stat = HuAudFXPlay(846); - InitBowserFire(); - while(BoardModelMotionTimeGet(bowserMdl) < 200.0f) { - HuPrcVSleep(); - } - BoardAudSeqFadeOut(1, 1000); - BoardMusVolPanSet(0, 0, 1); - BoardAudSeqPause(0, 0, 1); - _SetFlag(0x1000E); - HuAudFXFadeOut(fx_stat, 500); - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); - while(WipeStatGet()) { - HuPrcVSleep(); - } - HuAudFXAllStop(); - _SetFlag(0x1001C); - KillBowserFire(); - HuPrcSleep(60); - BoardModelMotionStart(bowserMdl, 1, 0); - mg = (s16)mgTbl[BoardRandMod(3)]; - GWMGAvailSet(mg); - GWSystem.mg_next = mg-401; - _SetFlag(0x10003); - BoardNextOvlSet(OVL_INST); - BoardFilterFadeOut(30); - HuPrcEnd(); + s32 i; + s16 mgTbl[3] = { + 435, + 436, + 437 + }; + s32 messLoss[3] = { + MAKE_MESSID(3, 9), + MAKE_MESSID(3, 12), + MAKE_MESSID(3, 14) + }; + s32 mg; + s32 mess; + s32 fx_stat; + for(i=0; i<4; i++) { + BoardPlayerPosGet(i, &playerPosTemp[i]); + } + BoardWinCreate(2, MAKE_MESSID(3, 8), 5); + BoardWinWait(); + mess = messLoss[GWSystem.bowser_loss]; + BoardWinCreate(2, mess, 5); + BoardWinWait(); + BoardWinKill(); + BoardModelMotionShiftSet(bowserMdl, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); + HuPrcSleep(8); + while(BoardModelMotionTimeGet(bowserMdl) < 80.0f) { + HuPrcVSleep(); + } + fx_stat = HuAudFXPlay(846); + InitBowserFire(); + while(BoardModelMotionTimeGet(bowserMdl) < 200.0f) { + HuPrcVSleep(); + } + BoardAudSeqFadeOut(1, 1000); + BoardMusVolPanSet(0, 0, 1); + BoardAudSeqPause(0, 0, 1); + _SetFlag(0x1000E); + HuAudFXFadeOut(fx_stat, 500); + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while(WipeStatGet()) { + HuPrcVSleep(); + } + HuAudFXAllStop(); + _SetFlag(0x1001C); + KillBowserFire(); + HuPrcSleep(60); + BoardModelMotionStart(bowserMdl, 1, 0); + mg = (s16)mgTbl[BoardRandMod(3)]; + GWMGAvailSet(mg); + GWSystem.mg_next = mg-401; + _SetFlag(0x10003); + BoardNextOvlSet(OVL_INST); + BoardFilterFadeOut(30); + HuPrcEnd(); } static void DoMGReturnEffect(void) { - s32 messTbl[3] = { - MAKE_MESSID(3, 10), - MAKE_MESSID(3, 13), - MAKE_MESSID(3, 15) - }; - s32 player; - s32 coin; - s32 item; - s32 delay; - s32 item_cnt; - s32 mess; - s32 mess_char; - for(player=0; player<4; player++) { - if(GWPlayerCoinWinGet(player) == 1) { - break; - } - } - mess = messTbl[GWSystem.bowser_loss]; - mess_char = BoardPlayerGetCharMess(player); - BoardStatusShowSetForce(player); - BoardStatusShowSet(player, 1); - BoardWinCreate(2, mess, 5); - BoardWinInsertMesSet(mess_char, 1); - BoardWinWait(); - while(!BoardStatusStopCheck(player)) { - HuPrcVSleep(); - } - omVibrate(player, 12, 4, 2); - if(GWSystem.bowser_loss == 2) { - item_cnt = BoardPlayerItemCount(player); - for(item=0; item> 1); - } - if(coin >= 50 ) { - delay = 1; - } else if(coin >= 20) { - delay = 3; - } else { - delay = 6; - } - while(coin != 0 && BoardPlayerCoinsGet(player) != 0) { - BoardPlayerCoinsAdd(player, -1); - HuAudFXPlay(14); - HuPrcSleep(delay); - coin--; - } - HuAudFXPlay(15); - } - BoardStatusShowSet(player, 0); - while(!BoardStatusStopCheck(player)) { - HuPrcVSleep(); - } + s32 messTbl[3] = { + MAKE_MESSID(3, 10), + MAKE_MESSID(3, 13), + MAKE_MESSID(3, 15) + }; + s32 player; + s32 coin; + s32 item; + s32 delay; + s32 item_cnt; + s32 mess; + s32 mess_char; + for(player=0; player<4; player++) { + if(GWPlayerCoinWinGet(player) == 1) { + break; + } + } + mess = messTbl[GWSystem.bowser_loss]; + mess_char = BoardPlayerGetCharMess(player); + BoardStatusShowSetForce(player); + BoardStatusShowSet(player, 1); + BoardWinCreate(2, mess, 5); + BoardWinInsertMesSet(mess_char, 1); + BoardWinWait(); + while(!BoardStatusStopCheck(player)) { + HuPrcVSleep(); + } + omVibrate(player, 12, 4, 2); + if(GWSystem.bowser_loss == 2) { + item_cnt = BoardPlayerItemCount(player); + for(item=0; item> 1); + } + if(coin >= 50 ) { + delay = 1; + } else if(coin >= 20) { + delay = 3; + } else { + delay = 6; + } + while(coin != 0 && BoardPlayerCoinsGet(player) != 0) { + BoardPlayerCoinsAdd(player, -1); + HuAudFXPlay(14); + HuPrcSleep(delay); + coin--; + } + HuAudFXPlay(15); + } + BoardStatusShowSet(player, 0); + while(!BoardStatusStopCheck(player)) { + HuPrcVSleep(); + } } static void ExecBowserShuffle(void) { - Vec pos; - Vec target; - s16 space_old[4]; - s16 space[4]; - s32 i; - s32 player; - s32 player_new; - s32 reset_cam; - BoardWinCreate(2, MAKE_MESSID(3, 16), 5); - BoardWinWait(); - BoardWinKill(); - for(i=0; i<4; i++) { - space_old[i] = GWPlayer[i].space_curr; - } - player=0; - while(player<4) { - player_new = BoardRandMod(4); - if(player_new == player || space_old[player_new] == -1) { - continue; - } - space[player] = space_old[player_new]; - space_old[player_new] = -1; - player++; - } - HuAudFXPlay(857); - BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - while(!BoardModelMotionEndCheck(bowserMdl)) { - HuPrcVSleep(); - } - SetBowserState(3); - HuPrcSleep(60); - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); - while(WipeStatGet()) { - HuPrcVSleep(); - } - reset_cam = 0; - for(i=0; i<4; i++) { - GWPlayer[i].space_curr = space[i]; - if(eventSpace == space[i]) { - BoardPlayerMotionStart(i, playerMot[i], 0); - BoardPlayerMotionTimeSet(i, 50.0f); - BoardPlayerMotionSpeedSet(i, 0.0f); - reset_cam = 1; - } else { - BoardPlayerIdleSet(i); - } - BoardPlayerMoveAwayStart(i, GWPlayer[i].space_curr, 1); - } - if(reset_cam) { - BoardCameraTargetGet(&target); - BoardCameraPosGet(&pos); - BoardCameraTargetModelSet(-1); - BoardCameraTargetSet(target.x, target.y, target.z); - BoardCameraPosSet(pos.x, pos.y, pos.z); - } - SetBowserState(4); - HuPrcSleep(60); - BoardModelMotionStart(bowserMdl, 1, 0x40000001); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); - while(WipeStatGet()) { - HuPrcVSleep(); - } + Vec pos; + Vec target; + s16 space_old[4]; + s16 space[4]; + s32 i; + s32 player; + s32 player_new; + s32 reset_cam; + BoardWinCreate(2, MAKE_MESSID(3, 16), 5); + BoardWinWait(); + BoardWinKill(); + for(i=0; i<4; i++) { + space_old[i] = GWPlayer[i].space_curr; + } + player=0; + while(player<4) { + player_new = BoardRandMod(4); + if(player_new == player || space_old[player_new] == -1) { + continue; + } + space[player] = space_old[player_new]; + space_old[player_new] = -1; + player++; + } + HuAudFXPlay(857); + BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + while(!BoardModelMotionEndCheck(bowserMdl)) { + HuPrcVSleep(); + } + SetBowserState(3); + HuPrcSleep(60); + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while(WipeStatGet()) { + HuPrcVSleep(); + } + reset_cam = 0; + for(i=0; i<4; i++) { + GWPlayer[i].space_curr = space[i]; + if(eventSpace == space[i]) { + BoardPlayerMotionStart(i, playerMot[i], 0); + BoardPlayerMotionTimeSet(i, 50.0f); + BoardPlayerMotionSpeedSet(i, 0.0f); + reset_cam = 1; + } else { + BoardPlayerIdleSet(i); + } + BoardPlayerMoveAwayStart(i, GWPlayer[i].space_curr, 1); + } + if(reset_cam) { + BoardCameraTargetGet(&target); + BoardCameraPosGet(&pos); + BoardCameraTargetModelSet(-1); + BoardCameraTargetSet(target.x, target.y, target.z); + BoardCameraPosSet(pos.x, pos.y, pos.z); + } + SetBowserState(4); + HuPrcSleep(60); + BoardModelMotionStart(bowserMdl, 1, 0x40000001); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + while(WipeStatGet()) { + HuPrcVSleep(); + } } static void ExecBowserRevo(void) { - s32 i; - s32 coin; - BoardWinCreate(2, MAKE_MESSID(3, 17), 5); - BoardWinWait(); - BoardWinKill(); - for(coin=i=0; i<4; i++) { - coin += BoardPlayerCoinsGet(i); - } - coin /= 4; - HuAudFXPlay(857); - BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - while(!BoardModelMotionEndCheck(bowserMdl)) { - HuPrcVSleep(); - } - SetBowserState(3); - HuPrcSleep(60); - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); - while(WipeStatGet()) { - HuPrcVSleep(); - } - SetBowserState(4); - for(i=0; i<4; i++) { - BoardPlayerCoinsSet(i, coin); - } - HuPrcSleep(60); - BoardModelMotionStart(bowserMdl, 1, 0x40000001); - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); - while(WipeStatGet()) { - HuPrcVSleep(); - } + s32 i; + s32 coin; + BoardWinCreate(2, MAKE_MESSID(3, 17), 5); + BoardWinWait(); + BoardWinKill(); + for(coin=i=0; i<4; i++) { + coin += BoardPlayerCoinsGet(i); + } + coin /= 4; + HuAudFXPlay(857); + BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + while(!BoardModelMotionEndCheck(bowserMdl)) { + HuPrcVSleep(); + } + SetBowserState(3); + HuPrcSleep(60); + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while(WipeStatGet()) { + HuPrcVSleep(); + } + SetBowserState(4); + for(i=0; i<4; i++) { + BoardPlayerCoinsSet(i, coin); + } + HuPrcSleep(60); + BoardModelMotionStart(bowserMdl, 1, 0x40000001); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + while(WipeStatGet()) { + HuPrcVSleep(); + } } static void ExecBowserSuit(void) { - BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - BoardWinCreate(2, MAKE_MESSID(3, 18), 5); - BoardWinWait(); - HuAudFXPlay(857); - BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - HuPrcSleep(10); - StartSuitGive(); - while(!CheckSuitGive()) { - HuPrcVSleep(); - } - BoardWinKill(); - BoardModelAttrSet(bowserMdl, 0x40000004); - while(!BoardModelMotionEndCheck(bowserMdl)) { - HuPrcVSleep(); - } + BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + BoardWinCreate(2, MAKE_MESSID(3, 18), 5); + BoardWinWait(); + HuAudFXPlay(857); + BoardModelMotionShiftSet(bowserMdl, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + HuPrcSleep(10); + StartSuitGive(); + while(!CheckSuitGive()) { + HuPrcVSleep(); + } + BoardWinKill(); + BoardModelAttrSet(bowserMdl, 0x40000004); + while(!BoardModelMotionEndCheck(bowserMdl)) { + HuPrcVSleep(); + } } typedef struct suit_give_work { - u8 kill : 1; - u8 state; - u8 timer; - u8 idle_timer; - s16 model; + u8 kill : 1; + u8 state; + u8 timer; + u8 idle_timer; + s16 model; } SuitGiveWork; static s32 CheckSuitGive(void) { - if(!suitGiveObj) { - return 1; - } else { - return 0; - } + if(!suitGiveObj) { + return 1; + } else { + return 0; + } } static void StartSuitGive(void) { - omObjData *object; - SuitGiveWork *work; - Vec pos; - object = omAddObjEx(boardObjMan, 258, 0, 0, -1, SuitGiveMain); - suitGiveObj = object; - work = OM_GET_WORK_PTR(suitGiveObj, SuitGiveWork); - work->kill = 0; - work->state = 0; - work->idle_timer = 0; - work->timer = 30; - work->model = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 120), NULL, 0); - BoardModelLayerSet(work->model, 7); - BoardModelScaleSet(work->model, 0.16f, 0.16f, 0.16f); - object->trans.x = 288.0f; - object->trans.y = -64.0f; - pos.x = 288.0f; - pos.y = 240.0f; - object->rot.x = (pos.x-object->trans.x)/30.0f; - object->rot.y = (pos.y-object->trans.y)/30.0f; - object->scale.x = 300.0f; - pos.x = object->trans.x; - pos.y = object->trans.y; - pos.z = object->scale.x; - Hu3D2Dto3D(&pos, 1, &pos); - BoardModelPosSetV(work->model, &pos); + omObjData *object; + SuitGiveWork *work; + Vec pos; + object = omAddObjEx(boardObjMan, 258, 0, 0, -1, SuitGiveMain); + suitGiveObj = object; + work = OM_GET_WORK_PTR(suitGiveObj, SuitGiveWork); + work->kill = 0; + work->state = 0; + work->idle_timer = 0; + work->timer = 30; + work->model = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 120), NULL, 0); + BoardModelLayerSet(work->model, 7); + BoardModelScaleSet(work->model, 0.16f, 0.16f, 0.16f); + object->trans.x = 288.0f; + object->trans.y = -64.0f; + pos.x = 288.0f; + pos.y = 240.0f; + object->rot.x = (pos.x-object->trans.x)/30.0f; + object->rot.y = (pos.y-object->trans.y)/30.0f; + object->scale.x = 300.0f; + pos.x = object->trans.x; + pos.y = object->trans.y; + pos.z = object->scale.x; + Hu3D2Dto3D(&pos, 1, &pos); + BoardModelPosSetV(work->model, &pos); } static void SuitGiveMain(omObjData *object) { - SuitGiveWork *work = OM_GET_WORK_PTR(object, SuitGiveWork); - s32 effect_active; - Vec pos; - if(work->kill || BoardIsKill()) { - BoardModelKill(work->model); - suitGiveObj = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - if(work->idle_timer) { - work->idle_timer--; - return; - } - - effect_active = 0; - switch(work->state) { - case 0: - if(work->timer == 0) { - work->state = 1; - work->idle_timer = 30; - work->timer = 30; - BoardStatusPosGet(eventPlayer, &pos); - object->rot.x = (pos.x-object->trans.x)/30.0f; - object->rot.y = (pos.y-object->trans.y)/30.0f; - } else { - work->timer--; - } - break; - - case 1: - if(work->timer == 0) { - work->state = 2; - work->idle_timer = 6; - effect_active = 1; - } else { - work->timer--; - } - break; - - case 2: - BoardPlayerItemAdd(eventPlayer, 10); - BoardModelVisibilitySet(work->model, 0); - work->kill = 1; - return; - - default: - break; - } - object->trans.x += object->rot.x; - object->trans.y += object->rot.y; - pos.x = object->trans.x; - pos.y = object->trans.y; - pos.z = object->scale.x; - Hu3D2Dto3D(&pos, 1, &pos); - BoardModelPosSetV(work->model, &pos); - if(effect_active) { - CharModelLayerSetAll(6); - CharModelEffectCreate(1, &pos); - } + SuitGiveWork *work = OM_GET_WORK_PTR(object, SuitGiveWork); + s32 effect_active; + Vec pos; + if(work->kill || BoardIsKill()) { + BoardModelKill(work->model); + suitGiveObj = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + if(work->idle_timer) { + work->idle_timer--; + return; + } + + effect_active = 0; + switch(work->state) { + case 0: + if(work->timer == 0) { + work->state = 1; + work->idle_timer = 30; + work->timer = 30; + BoardStatusPosGet(eventPlayer, &pos); + object->rot.x = (pos.x-object->trans.x)/30.0f; + object->rot.y = (pos.y-object->trans.y)/30.0f; + } else { + work->timer--; + } + break; + + case 1: + if(work->timer == 0) { + work->state = 2; + work->idle_timer = 6; + effect_active = 1; + } else { + work->timer--; + } + break; + + case 2: + BoardPlayerItemAdd(eventPlayer, 10); + BoardModelVisibilitySet(work->model, 0); + work->kill = 1; + return; + + default: + break; + } + object->trans.x += object->rot.x; + object->trans.y += object->rot.y; + pos.x = object->trans.x; + pos.y = object->trans.y; + pos.z = object->scale.x; + Hu3D2Dto3D(&pos, 1, &pos); + BoardModelPosSetV(work->model, &pos); + if(effect_active) { + CharModelLayerSetAll(6); + CharModelEffectCreate(1, &pos); + } } static const s32 bowserMotTbl[] = { - DATA_MAKE_NUM(DATADIR_BKOOPA, 8), - DATA_MAKE_NUM(DATADIR_BKOOPA, 10), - DATA_MAKE_NUM(DATADIR_BKOOPA, 11), - DATA_MAKE_NUM(DATADIR_BKOOPA, 12), - DATA_MAKE_NUM(DATADIR_BKOOPA, 13), - DATA_NUM_LISTEND + DATA_MAKE_NUM(DATADIR_BKOOPA, 8), + DATA_MAKE_NUM(DATADIR_BKOOPA, 10), + DATA_MAKE_NUM(DATADIR_BKOOPA, 11), + DATA_MAKE_NUM(DATADIR_BKOOPA, 12), + DATA_MAKE_NUM(DATADIR_BKOOPA, 13), + DATA_NUM_LISTEND }; static void CreateBowserObj(void) { - BowserWork *work; - Vec pos; - bowserObj = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecBowserObj); - work = OM_GET_WORK_PTR(bowserObj, BowserWork); - work->kill = 0; - work->jump_state = 0; - work->idle_timer = 0; - work->mot_active = 0; - work->fall_done = 0; - work->jump_done = 0; - if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { - work->state = 1; - } else { - work->state = 0; - } - bowserMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BKOOPA, 7), (s32 *)bowserMotTbl, 0); - BoardModelVisibilitySet(bowserMdl, 0); - BoardModelScaleSet(bowserMdl, 2.0f, 2.0f, 2.0f); - BoardPlayerPosGet(eventPlayer, &pos); - BoardModelLayerSet(bowserMdl, 2); - bowserObj->trans.x = pos.x; - bowserObj->trans.y = pos.y; - bowserObj->trans.z = pos.z; - if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { - suitItemMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 99), NULL, 0); - BoardModelLayerSet(suitItemMdl, 2); - BoardModelVisibilitySet(suitItemMdl, 0); - } else { - s32 space = GWPlayer[eventPlayer].space_curr; - BoardSpacePosGet(0, space, &pos); - bowserObj->trans.x = pos.x; - bowserObj->trans.y = pos.y; - bowserObj->trans.z = pos.z; - BoardModelPosSetV(bowserMdl, &pos); - BoardCameraTargetSpaceSet(space); - BoardModelMotionStart(bowserMdl, 1, 0x40000001); - BoardModelVisibilitySet(bowserMdl, 1); - } + BowserWork *work; + Vec pos; + bowserObj = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecBowserObj); + work = OM_GET_WORK_PTR(bowserObj, BowserWork); + work->kill = 0; + work->jump_state = 0; + work->idle_timer = 0; + work->mot_active = 0; + work->fall_done = 0; + work->jump_done = 0; + if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { + work->state = 1; + } else { + work->state = 0; + } + bowserMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BKOOPA, 7), (s32 *)bowserMotTbl, 0); + BoardModelVisibilitySet(bowserMdl, 0); + BoardModelScaleSet(bowserMdl, 2.0f, 2.0f, 2.0f); + BoardPlayerPosGet(eventPlayer, &pos); + BoardModelLayerSet(bowserMdl, 2); + bowserObj->trans.x = pos.x; + bowserObj->trans.y = pos.y; + bowserObj->trans.z = pos.z; + if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { + suitItemMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 99), NULL, 0); + BoardModelLayerSet(suitItemMdl, 2); + BoardModelVisibilitySet(suitItemMdl, 0); + } else { + s32 space = GWPlayer[eventPlayer].space_curr; + BoardSpacePosGet(0, space, &pos); + bowserObj->trans.x = pos.x; + bowserObj->trans.y = pos.y; + bowserObj->trans.z = pos.z; + BoardModelPosSetV(bowserMdl, &pos); + BoardCameraTargetSpaceSet(space); + BoardModelMotionStart(bowserMdl, 1, 0x40000001); + BoardModelVisibilitySet(bowserMdl, 1); + } } static void ExecBowserFall(BowserWork *work, omObjData *object); @@ -807,316 +806,316 @@ static void ExecBowserJump(BowserWork *work, omObjData *object); static void ExecBowserObj(omObjData *object) { - BowserWork *work = OM_GET_WORK_PTR(bowserObj, BowserWork); - Vec pos; - Vec rot; - - if(work->kill || BoardIsKill()) { - BoardModelKill(bowserMdl); - bowserMdl = -1; - BoardModelKill(suitItemMdl); - suitItemMdl = -1; - omDelObjEx(HuPrcCurrentGet(), object); - bowserObj = NULL; - return; - } - if(work->idle_timer) { - work->idle_timer--; - return; - } - if(work->mot_active && BoardModelMotionEndCheck(bowserMdl)) { - work->mot_active = 0; - BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); - } - switch(work->state) { - case 1: - ExecBowserFall(work, object); - break; - - case 2: - ExecBowserLaugh(work, object); - break; - - case 3: - ExecBowserPowerUp(work, object); - break; - - case 5: - ExecBowserFire(work, object); - break; - - case 6: - ExecBowserJump(work, object); - break; - - case 4: - BoardModelVisibilitySet(suitItemMdl, 0); - work->state = 0; - break; - - case 0: - break; - } - BoardModelPosSet(bowserMdl, object->trans.x, object->trans.y, object->trans.z); - BoardCameraRotGet(&rot); - pos.x = object->trans.x+(-100.0f*sin(M_PI*BoardModelRotYGet(bowserMdl)/180.0)); - pos.z = object->trans.z+(-100.0f*cos(M_PI*BoardModelRotYGet(bowserMdl)/180.0)); - pos.y = object->trans.y+250.0f; - BoardModelPosSetV(suitItemMdl, &pos); + BowserWork *work = OM_GET_WORK_PTR(bowserObj, BowserWork); + Vec pos; + Vec rot; + + if(work->kill || BoardIsKill()) { + BoardModelKill(bowserMdl); + bowserMdl = -1; + BoardModelKill(suitItemMdl); + suitItemMdl = -1; + omDelObjEx(HuPrcCurrentGet(), object); + bowserObj = NULL; + return; + } + if(work->idle_timer) { + work->idle_timer--; + return; + } + if(work->mot_active && BoardModelMotionEndCheck(bowserMdl)) { + work->mot_active = 0; + BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + } + switch(work->state) { + case 1: + ExecBowserFall(work, object); + break; + + case 2: + ExecBowserLaugh(work, object); + break; + + case 3: + ExecBowserPowerUp(work, object); + break; + + case 5: + ExecBowserFire(work, object); + break; + + case 6: + ExecBowserJump(work, object); + break; + + case 4: + BoardModelVisibilitySet(suitItemMdl, 0); + work->state = 0; + break; + + case 0: + break; + } + BoardModelPosSet(bowserMdl, object->trans.x, object->trans.y, object->trans.z); + BoardCameraRotGet(&rot); + pos.x = object->trans.x+(-100.0f*sind(BoardModelRotYGet(bowserMdl))); + pos.z = object->trans.z+(-100.0f*cosd(BoardModelRotYGet(bowserMdl))); + pos.y = object->trans.y+250.0f; + BoardModelPosSetV(suitItemMdl, &pos); } static void ExecBowserFall(BowserWork *work, omObjData *object) { - Vec pos; - Vec pos_space; - Vec pos_player; - s32 i; - if(!work->jump_state) { - BoardModelVisibilitySet(bowserMdl, 1); - BoardModelMotionStart(bowserMdl, 2, 0); - BoardModelMotionTimeSet(bowserMdl, 100.0f); - work->jump_state = 1; - return; - } - if(BoardModelMotionEndCheck(bowserMdl)) { - work->state = 0; - BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); - return; - } - if(!work->fall_done && !(BoardModelMotionTimeGet(bowserMdl) < 140.0f)) { - BoardPlayerPosGet(eventPlayer, &pos); - HuAudFXPlay(829); - BoardCameraQuakeSet(60, 100.0f); - object->trans.y = pos.y; - BoardPlayerPosGet(eventPlayer, &pos_player); - if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { - HuAudFXPlay(798); - } - pos_player.y += 6.0f; - BoardPlayerPosSetV(eventPlayer, &pos_player); - GWPlayer[eventPlayer].show_next = 0; - BoardPlayerMotionSpeedSet(eventPlayer, 0.0f); - for(i=0; i<4; i++) { - if(eventSpace != GWPlayer[i].space_curr) { - continue; - } - BoardPlayerPosGet(i, &pos_player); - BoardSpacePosGet(0, eventSpace, &pos_space); - pos_player.y = 2.5f+pos_space.y; - BoardPlayerPosSetV(i, &pos_player); - BoardPlayerMotionStart(i, playerMot[i], 0); - BoardPlayerMotionTimeSet(i, 50.0f); - BoardPlayerMotionSpeedSet(i, 0.0f); - } - if(!work->fall_done) { - work->fall_done = 1; - omVibrate(eventPlayer, 12, 4, 2); - } - } - + Vec pos; + Vec pos_space; + Vec pos_player; + s32 i; + if(!work->jump_state) { + BoardModelVisibilitySet(bowserMdl, 1); + BoardModelMotionStart(bowserMdl, 2, 0); + BoardModelMotionTimeSet(bowserMdl, 100.0f); + work->jump_state = 1; + return; + } + if(BoardModelMotionEndCheck(bowserMdl)) { + work->state = 0; + BoardModelMotionShiftSet(bowserMdl, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + return; + } + if(!work->fall_done && !(BoardModelMotionTimeGet(bowserMdl) < 140.0f)) { + BoardPlayerPosGet(eventPlayer, &pos); + HuAudFXPlay(829); + BoardCameraQuakeSet(60, 100.0f); + object->trans.y = pos.y; + BoardPlayerPosGet(eventPlayer, &pos_player); + if(!_CheckFlag(FLAG_ID_MAKE(1, 3))) { + HuAudFXPlay(798); + } + pos_player.y += 6.0f; + BoardPlayerPosSetV(eventPlayer, &pos_player); + GWPlayer[eventPlayer].show_next = 0; + BoardPlayerMotionSpeedSet(eventPlayer, 0.0f); + for(i=0; i<4; i++) { + if(eventSpace != GWPlayer[i].space_curr) { + continue; + } + BoardPlayerPosGet(i, &pos_player); + BoardSpacePosGet(0, eventSpace, &pos_space); + pos_player.y = 2.5f+pos_space.y; + BoardPlayerPosSetV(i, &pos_player); + BoardPlayerMotionStart(i, playerMot[i], 0); + BoardPlayerMotionTimeSet(i, 50.0f); + BoardPlayerMotionSpeedSet(i, 0.0f); + } + if(!work->fall_done) { + work->fall_done = 1; + omVibrate(eventPlayer, 12, 4, 2); + } + } + } static void ExecBowserLaugh(BowserWork *work, omObjData *object) { - BoardModelMotionStart(bowserMdl, 3, 0); - work->mot_active = 1; - work->state = 0; + BoardModelMotionStart(bowserMdl, 3, 0); + work->mot_active = 1; + work->state = 0; } static void ExecBowserFire(BowserWork *work, omObjData *object) { - BoardModelMotionStart(bowserMdl, 5, 0); - work->state = 0; + BoardModelMotionStart(bowserMdl, 5, 0); + work->state = 0; } static void ExecBowserJump(BowserWork *work, omObjData *object) { - switch(work->jump_state) { - case 0: - BoardModelMotionShiftSet(bowserMdl, 2, 0.0f, 4.0f, HU3D_MOTATTR_NONE); - work->jump_state = 1; - break; - - case 1: - { - s16 model_id = BoardModelIDGet(bowserMdl); - if(Hu3DMotionShiftIDGet(model_id) == -1) { - work->jump_state = 2; - } - } - break; - - case 2: - { - float time = BoardModelMotionTimeGet(bowserMdl); - if(time < 60.0f) { - break; - } - if(!work->jump_done) { - omVibrate(eventPlayer, 12, 12, 0); - HuAudFXPlay(61); - work->jump_done = 1; - } - if(time >= 100.0f) { - BoardModelVisibilitySet(bowserMdl, 0); - work->state = 0; - work->kill = 1; - } - } - break; - } + switch(work->jump_state) { + case 0: + BoardModelMotionShiftSet(bowserMdl, 2, 0.0f, 4.0f, HU3D_MOTATTR_NONE); + work->jump_state = 1; + break; + + case 1: + { + s16 model_id = BoardModelIDGet(bowserMdl); + if(Hu3DMotionShiftIDGet(model_id) == -1) { + work->jump_state = 2; + } + } + break; + + case 2: + { + float time = BoardModelMotionTimeGet(bowserMdl); + if(time < 60.0f) { + break; + } + if(!work->jump_done) { + omVibrate(eventPlayer, 12, 12, 0); + HuAudFXPlay(61); + work->jump_done = 1; + } + if(time >= 100.0f) { + BoardModelVisibilitySet(bowserMdl, 0); + work->state = 0; + work->kill = 1; + } + } + break; + } } static void ExecBowserPowerUp(BowserWork *work, omObjData *object) { - Vec pos; - if(work->jump_state == 0) { - BoardModelVisibilitySet(suitItemMdl, 1); - BoardModelMotionStart(suitItemMdl, 0, 0); - BoardModelScaleSet(suitItemMdl, 10.0f, 10.0f, 10.0f); - pos.x = object->trans.x+(-100.0f*sin(M_PI*BoardModelRotYGet(bowserMdl)/180.0)); - pos.z = object->trans.z+(-100.0f*cos(M_PI*BoardModelRotYGet(bowserMdl)/180.0)); - pos.y = object->trans.y+250.0f; - BoardModelPosSetV(suitItemMdl, &pos); - HuAudFXPlay(850); - } else { - if(work->jump_state >= 100) { - work->state = 0; - } - } - work->jump_state++; + Vec pos; + if(work->jump_state == 0) { + BoardModelVisibilitySet(suitItemMdl, 1); + BoardModelMotionStart(suitItemMdl, 0, 0); + BoardModelScaleSet(suitItemMdl, 10.0f, 10.0f, 10.0f); + pos.x = object->trans.x+(-100.0f*sind(BoardModelRotYGet(bowserMdl))); + pos.z = object->trans.z+(-100.0f*cosd(BoardModelRotYGet(bowserMdl))); + pos.y = object->trans.y+250.0f; + BoardModelPosSetV(suitItemMdl, &pos); + HuAudFXPlay(850); + } else { + if(work->jump_state >= 100) { + work->state = 0; + } + } + work->jump_state++; } static void SetBowserState(s32 state) { - BowserWork *work = OM_GET_WORK_PTR(bowserObj, BowserWork); - work->state = state; - work->jump_state = 0; + BowserWork *work = OM_GET_WORK_PTR(bowserObj, BowserWork); + work->state = state; + work->jump_state = 0; } static s32 CheckBowserIdle(void) { - BowserWork *work; - if(!bowserObj) { - return 1; - } - work = OM_GET_WORK_PTR(bowserObj, BowserWork); - if(work->state != 0 || work->idle_timer != 0) { - return 0; - } else { - return 1; - } + BowserWork *work; + if(!bowserObj) { + return 1; + } + work = OM_GET_WORK_PTR(bowserObj, BowserWork); + if(work->state != 0 || work->idle_timer != 0) { + return 0; + } else { + return 1; + } } static void CreateMiniBowser(void) { - omObjData *object; - MiniBowserWork *work; - object = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecMiniBowser); - miniBowserObj = object; - work = OM_GET_WORK_PTR(object, MiniBowserWork); - work->kill = 0; - work->angle = 0; - work->group = HuSprGrpCreate(1); - BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BKOOPA, 5), 100, NULL, &work->sprite); - HuSprGrpMemberSet(work->group, 0, work->sprite); - HuSprAttrSet(work->group, 0, HUSPR_ATTR_LINEAR); - HuSprGrpPosSet(work->group, 288.0f, 240.0f); - HuSprGrpScaleSet(work->group, 4.0f, 4.0f); + omObjData *object; + MiniBowserWork *work; + object = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecMiniBowser); + miniBowserObj = object; + work = OM_GET_WORK_PTR(object, MiniBowserWork); + work->kill = 0; + work->angle = 0; + work->group = HuSprGrpCreate(1); + BoardSpriteCreate(DATA_MAKE_NUM(DATADIR_BKOOPA, 5), 100, NULL, &work->sprite); + HuSprGrpMemberSet(work->group, 0, work->sprite); + HuSprAttrSet(work->group, 0, HUSPR_ATTR_LINEAR); + HuSprGrpPosSet(work->group, 288.0f, 240.0f); + HuSprGrpScaleSet(work->group, 4.0f, 4.0f); } static s32 CheckMiniBowser(void) { - if(miniBowserObj) { - return 0; - } else { - return 1; - } + if(miniBowserObj) { + return 0; + } else { + return 1; + } } static void ExecMiniBowser(omObjData *object) { - MiniBowserWork *work = OM_GET_WORK_PTR(object, MiniBowserWork); - float alpha; - if(work->kill || BoardIsKill()) { - HuSprGrpKill(work->group); - miniBowserObj = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - OSs16tof32(&work->angle, &alpha); - alpha = sin(M_PI*BoardDAngleCalc(alpha)/180.0); - HuSprTPLvlSet(work->group, 0, ABS(alpha)); - if(work->angle == 60) { - HuAudFXPlay(807); - } - work->angle += 2; - if(work->angle == 90 || work->angle == 270 || work->angle == 450) { - omVibrate(eventPlayer, 12, 4, 2); - } - if(work->angle >= 540) { - work->kill = 1; - } + MiniBowserWork *work = OM_GET_WORK_PTR(object, MiniBowserWork); + float alpha; + if(work->kill || BoardIsKill()) { + HuSprGrpKill(work->group); + miniBowserObj = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + OSs16tof32(&work->angle, &alpha); + alpha = sind(BoardDAngleCalc(alpha)); + HuSprTPLvlSet(work->group, 0, ABS(alpha)); + if(work->angle == 60) { + HuAudFXPlay(807); + } + work->angle += 2; + if(work->angle == 90 || work->angle == 270 || work->angle == 450) { + omVibrate(eventPlayer, 12, 4, 2); + } + if(work->angle >= 540) { + work->kill = 1; + } } static void CreateBowserEvent(void) { - Vec pos_2d; - Vec pos_3d; - s32 eventSpr[] = { - DATA_MAKE_NUM(DATADIR_BKOOPA, 1), - DATA_MAKE_NUM(DATADIR_BKOOPA, 2), - DATA_MAKE_NUM(DATADIR_BKOOPA, 3), - DATA_MAKE_NUM(DATADIR_BKOOPA, 4), - }; - - - BowserEventData *data; - s32 i; - BowserEventWork *work; - s32 sprite; - bowserEventObj = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecBowserEvent); - work = OM_GET_WORK_PTR(bowserEventObj, BowserEventWork); - work->kill = 0; - work->state = 0; - work->timer = 0; - memset(&bowserEvent, 0, sizeof(BowserEventData)); - data = &bowserEvent; - data->group = HuSprGrpCreate(3); - sprite = eventSpr[GWSystem.bowser_event]; - for(i=0; i<3; i++) { - BoardSpriteCreate(sprite, 100, NULL, &data->sprite[i]); - HuSprGrpMemberSet(data->group, i, data->sprite[i]); - HuSprTPLvlSet(data->group, i, 0.0f); - HuSprPosSet(data->group, i, 0.0f, 0.0f); - data->delay[i] = i*2; - } - HuSprGrpPosSet(data->group, 288.0f, 240.0f); - data->model = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 101), NULL, 0); - pos_2d.x = 288.0f; - pos_2d.y = 240.0f; - pos_2d.z = 1000.0f; - Hu3D2Dto3D(&pos_2d, 1, &pos_3d); - BoardModelMotionStart(data->model, 0, 0x40000001); - BoardModelPosSetV(data->model, &pos_3d); - BoardModelLayerSet(data->model, 2); + Vec pos_2d; + Vec pos_3d; + s32 eventSpr[] = { + DATA_MAKE_NUM(DATADIR_BKOOPA, 1), + DATA_MAKE_NUM(DATADIR_BKOOPA, 2), + DATA_MAKE_NUM(DATADIR_BKOOPA, 3), + DATA_MAKE_NUM(DATADIR_BKOOPA, 4), + }; + + + BowserEventData *data; + s32 i; + BowserEventWork *work; + s32 sprite; + bowserEventObj = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecBowserEvent); + work = OM_GET_WORK_PTR(bowserEventObj, BowserEventWork); + work->kill = 0; + work->state = 0; + work->timer = 0; + memset(&bowserEvent, 0, sizeof(BowserEventData)); + data = &bowserEvent; + data->group = HuSprGrpCreate(3); + sprite = eventSpr[GWSystem.bowser_event]; + for(i=0; i<3; i++) { + BoardSpriteCreate(sprite, 100, NULL, &data->sprite[i]); + HuSprGrpMemberSet(data->group, i, data->sprite[i]); + HuSprTPLvlSet(data->group, i, 0.0f); + HuSprPosSet(data->group, i, 0.0f, 0.0f); + data->delay[i] = i*2; + } + HuSprGrpPosSet(data->group, 288.0f, 240.0f); + data->model = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 101), NULL, 0); + pos_2d.x = 288.0f; + pos_2d.y = 240.0f; + pos_2d.z = 1000.0f; + Hu3D2Dto3D(&pos_2d, 1, &pos_3d); + BoardModelMotionStart(data->model, 0, 0x40000001); + BoardModelPosSetV(data->model, &pos_3d); + BoardModelLayerSet(data->model, 2); } static s32 CheckBowserEvent(void) { - BowserEventWork *work = OM_GET_WORK_PTR(bowserEventObj, BowserEventWork); - - if(work->state != 2) { - return 0; - } else { - return 1; - } + BowserEventWork *work = OM_GET_WORK_PTR(bowserEventObj, BowserEventWork); + + if(work->state != 2) { + return 0; + } else { + return 1; + } } static void StopBowserEvent(void) { - BowserEventWork *work = OM_GET_WORK_PTR(bowserEventObj, BowserEventWork); - work->state = 1; + BowserEventWork *work = OM_GET_WORK_PTR(bowserEventObj, BowserEventWork); + work->state = 1; } static void ShowBowserEvent(BowserEventWork *work, omObjData *object); @@ -1124,187 +1123,187 @@ static void HideBowserEvent(BowserEventWork *work, omObjData *object); static void ExecBowserEvent(omObjData *object) { - BowserEventWork *work = OM_GET_WORK_PTR(object, BowserEventWork); - BowserEventData *data = &bowserEvent; - if(work->kill || BoardIsKill()) { - HuSprGrpKill(data->group); - BoardModelKill(data->model); - bowserEventObj = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - if(work->timer) { - work->timer--; - return; - } - switch(work->state) { - case 0: - ShowBowserEvent(work, object); - break; - - case 1: - HideBowserEvent(work, object); - break; - - case 2: - break; - } + BowserEventWork *work = OM_GET_WORK_PTR(object, BowserEventWork); + BowserEventData *data = &bowserEvent; + if(work->kill || BoardIsKill()) { + HuSprGrpKill(data->group); + BoardModelKill(data->model); + bowserEventObj = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + if(work->timer) { + work->timer--; + return; + } + switch(work->state) { + case 0: + ShowBowserEvent(work, object); + break; + + case 1: + HideBowserEvent(work, object); + break; + + case 2: + break; + } } static void ShowBowserEvent(BowserEventWork *work, omObjData *object) { - BowserEventData *data; - s32 i; - s32 count; - float angle; - float tplvl; - float scale; - data = &bowserEvent; - for(count=i=0; i<3; i++) { - if(data->delay[i]) { - data->delay[i]--; - } else { - if(data->angle[i] > 90) { - count++; - continue; - } - OSs16tof32(&data->angle[i], &angle); - tplvl = sin(M_PI*angle/180.0); - scale = sin(M_PI*angle/180.0); - HuSprTPLvlSet(data->group, i, tplvl); - HuSprScaleSet(data->group, i, scale, scale); - BoardModelAlphaSet(data->model, 255.0f*tplvl); - data->angle[i] += 9; - if(data->angle[i] > 90 && i != 0) { - HuSprAttrSet(data->group, i, HUSPR_ATTR_DISPOFF); - } - } - } - if(count == 3) { - work->state = 2; - work->timer = 60; - } + BowserEventData *data; + s32 i; + s32 count; + float angle; + float tplvl; + float scale; + data = &bowserEvent; + for(count=i=0; i<3; i++) { + if(data->delay[i]) { + data->delay[i]--; + } else { + if(data->angle[i] > 90) { + count++; + continue; + } + OSs16tof32(&data->angle[i], &angle); + tplvl = sind(angle); + scale = sind(angle); + HuSprTPLvlSet(data->group, i, tplvl); + HuSprScaleSet(data->group, i, scale, scale); + BoardModelAlphaSet(data->model, 255.0f*tplvl); + data->angle[i] += 9; + if(data->angle[i] > 90 && i != 0) { + HuSprAttrSet(data->group, i, HUSPR_ATTR_DISPOFF); + } + } + } + if(count == 3) { + work->state = 2; + work->timer = 60; + } } static void HideBowserEvent(BowserEventWork *work, omObjData *object) { - BowserEventData *data = &bowserEvent; - float angle; - float tplvl; - OSs16tof32(&data->angle[0], &angle); - tplvl = sin(M_PI*angle/180.0); - HuSprTPLvlSet(data->group, 0, tplvl); - BoardModelAlphaSet(data->model, 255.0f*tplvl); - data->angle[0] -= 10; - if(data->angle[0] < 0) { - work->kill = 1; - HuSprAttrSet(data->group, 0, HUSPR_ATTR_DISPOFF); - } + BowserEventData *data = &bowserEvent; + float angle; + float tplvl; + OSs16tof32(&data->angle[0], &angle); + tplvl = sind(angle); + HuSprTPLvlSet(data->group, 0, tplvl); + BoardModelAlphaSet(data->model, 255.0f*tplvl); + data->angle[0] -= 10; + if(data->angle[0] < 0) { + work->kill = 1; + HuSprAttrSet(data->group, 0, HUSPR_ATTR_DISPOFF); + } } static void ConfigBowserEvent(void) { - s32 i; - s32 chance; - s32 coins; - s32 item_full; - item_full = 0; - if(BoardPlayerItemCount(eventPlayer) == 3) { - item_full = 1; - } - for(coins=i=0; i<4; i++) { - coins += BoardPlayerCoinsGet(i); - } - retry: - while(1) { - chance = BoardRandMod(100); - if(chance >= 95) { - if(item_full) { - continue; - } - if(GWSystem.max_turn-GWSystem.turn == 0) { - continue; - } - GWSystem.bowser_event = 3; - break; - } else if(chance >= 85) { - GWSystem.bowser_event = 2; - break; - } else if(chance >= 70) { - GWSystem.bowser_event = 1; - break; - } else { - if(coins == 0) { - continue; - } - GWSystem.bowser_event = 0; - GWSystem.bowser_loss = BoardRandMod(3); - break; - } - } + s32 i; + s32 chance; + s32 coins; + s32 item_full; + item_full = 0; + if(BoardPlayerItemCount(eventPlayer) == 3) { + item_full = 1; + } + for(coins=i=0; i<4; i++) { + coins += BoardPlayerCoinsGet(i); + } + retry: + while(1) { + chance = BoardRandMod(100); + if(chance >= 95) { + if(item_full) { + continue; + } + if(GWSystem.max_turn-GWSystem.turn == 0) { + continue; + } + GWSystem.bowser_event = 3; + break; + } else if(chance >= 85) { + GWSystem.bowser_event = 2; + break; + } else if(chance >= 70) { + GWSystem.bowser_event = 1; + break; + } else { + if(coins == 0) { + continue; + } + GWSystem.bowser_event = 0; + GWSystem.bowser_loss = BoardRandMod(3); + break; + } + } } static void CreatePlayerMot(void) { - s32 scareMotTbl[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 27), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 27), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 27), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 27), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 27), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 27), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 27), - }; - s32 jumpMotTbl[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 26), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 26), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 26), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 26), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 26), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 26), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 26), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 26), - }; - s32 playerMotTbl[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 31), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 31), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 31), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 31), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 31), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 31), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 31), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 31), - }; - s32 i; - s32 character; - character = GWPlayer[eventPlayer].character; - scareMot = BoardPlayerMotionCreate(eventPlayer, scareMotTbl[character]); - jumpMot = BoardPlayerMotionCreate(eventPlayer, jumpMotTbl[character]); - for(i=0; i<4; i++) { - character = GWPlayer[i].character; - playerMot[i] = BoardPlayerMotionCreate(i, playerMotTbl[character]); - } + s32 scareMotTbl[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 27), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 27), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 27), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 27), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 27), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 27), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 27), + }; + s32 jumpMotTbl[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 26), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 26), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 26), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 26), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 26), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 26), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 26), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 26), + }; + s32 playerMotTbl[] = { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 31), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 31), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 31), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 31), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 31), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 31), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 31), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 31), + }; + s32 i; + s32 character; + character = GWPlayer[eventPlayer].character; + scareMot = BoardPlayerMotionCreate(eventPlayer, scareMotTbl[character]); + jumpMot = BoardPlayerMotionCreate(eventPlayer, jumpMotTbl[character]); + for(i=0; i<4; i++) { + character = GWPlayer[i].character; + playerMot[i] = BoardPlayerMotionCreate(i, playerMotTbl[character]); + } } static void KillPlayerMot(void) { - s32 i; - if(scareMot > 0) { - BoardPlayerMotionKill(eventPlayer, scareMot); - scareMot = -1; - } - if(jumpMot > 0) { - BoardPlayerMotionKill(eventPlayer, jumpMot); - jumpMot = -1; - } - for(i=0; i<4; i++) { - if(playerMot[i] > 0) { - BoardPlayerMotionKill(i, playerMot[i]); - playerMot[i] = -1; - } - } + s32 i; + if(scareMot > 0) { + BoardPlayerMotionKill(eventPlayer, scareMot); + scareMot = -1; + } + if(jumpMot > 0) { + BoardPlayerMotionKill(eventPlayer, jumpMot); + jumpMot = -1; + } + for(i=0; i<4; i++) { + if(playerMot[i] > 0) { + BoardPlayerMotionKill(i, playerMot[i]); + playerMot[i] = -1; + } + } } static void BowserFireHook(ModelData *model, ParticleData *particle, Mtx matrix); @@ -1314,103 +1313,103 @@ static s32 CheckBowserFire(HsfanimStruct01 *arg0); static void InitBowserFire(void) { - fireAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_BOARD, 106)); - fireParMan = Hu3DParticleCreate(fireAnim, 30); - Hu3DParticleColSet(fireParMan, 255, 255, 255); - Hu3DParticleScaleSet(fireParMan, 10.0f); - Hu3DParticleHookSet(fireParMan, BowserFireHook); - Hu3DParticleBlendModeSet(fireParMan, 1); - Hu3DModelLayerSet(fireParMan, 2); + fireAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_BOARD, 106)); + fireParMan = Hu3DParticleCreate(fireAnim, 30); + Hu3DParticleColSet(fireParMan, 255, 255, 255); + Hu3DParticleScaleSet(fireParMan, 10.0f); + Hu3DParticleHookSet(fireParMan, BowserFireHook); + Hu3DParticleBlendModeSet(fireParMan, 1); + Hu3DModelLayerSet(fireParMan, 2); } static void BowserFireHook(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01* var_r30; - s32 i; - s32 var_r28; - Vec pos; - Hu3DModelObjPosGet(BoardModelIDGet(bowserMdl), "itemhook_M_1", &pos); - if (particle->unk_34 == 0) { - var_r30 = particle->unk_48; + HsfanimStruct01* var_r30; + s32 i; + s32 var_r28; + Vec pos; + Hu3DModelObjPosGet(BoardModelIDGet(bowserMdl), "itemhook_M_1", &pos); + if (particle->unk_34 == 0) { + var_r30 = particle->unk_48; for (i = 0; i < particle->unk_30; i++, var_r30++) { - var_r30->unk2C = 0.0f; - } - particle->unk_34 = 1; - particle->unk_00 = 0; - } - if((particle->unk_34 & 0x3) == 0) { - var_r30 = particle->unk_48; - for(var_r28=0; var_r28unk_30; var_r28++, var_r30++) { - if(var_r30->unk2C == 0.0f) { - break; - } - } - if(var_r28 != particle->unk_30) { - var_r30->unk34 = pos; - particle->unk_00++; - SpawnBowserFire(var_r30); - } - } - var_r30 = particle->unk_48; - for (i = 0; i < particle->unk_30; i++, var_r30++) { - if(var_r30->unk2C != 0.0f && CheckBowserFire(var_r30)) { - particle->unk_00--; - } - } + var_r30->unk2C = 0.0f; + } + particle->unk_34 = 1; + particle->unk_00 = 0; + } + if((particle->unk_34 & 0x3) == 0) { + var_r30 = particle->unk_48; + for(var_r28=0; var_r28unk_30; var_r28++, var_r30++) { + if(var_r30->unk2C == 0.0f) { + break; + } + } + if(var_r28 != particle->unk_30) { + var_r30->unk34 = pos; + particle->unk_00++; + SpawnBowserFire(var_r30); + } + } + var_r30 = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, var_r30++) { + if(var_r30->unk2C != 0.0f && CheckBowserFire(var_r30)) { + particle->unk_00--; + } + } } static void SpawnBowserFire(HsfanimStruct01 *arg0) { - Vec dir; - BoardCameraDirGet(&dir); - arg0->unk08.x = 0.0f; - arg0->unk08.y = 0.0f; - arg0->unk08.z = 0.0f; - arg0->unk14.x = -dir.x*((0.5f*BoardRandFloat())+0.5f); - arg0->unk14.y = -dir.y*((0.5f*BoardRandFloat())+0.5f); - arg0->unk14.z = -dir.z*((0.5f*BoardRandFloat())+0.5f); - arg0->unk24 = 1.025f; - arg0->unk40.a = 254; - arg0->unk40.r = 255; - arg0->unk40.g = 255; - arg0->unk40.b = 255; - arg0->unk2C = 100.0f; + Vec dir; + BoardCameraDirGet(&dir); + arg0->unk08.x = 0.0f; + arg0->unk08.y = 0.0f; + arg0->unk08.z = 0.0f; + arg0->unk14.x = -dir.x*((0.5f*BoardRandFloat())+0.5f); + arg0->unk14.y = -dir.y*((0.5f*BoardRandFloat())+0.5f); + arg0->unk14.z = -dir.z*((0.5f*BoardRandFloat())+0.5f); + arg0->unk24 = 1.025f; + arg0->unk40.a = 254; + arg0->unk40.r = 255; + arg0->unk40.g = 255; + arg0->unk40.b = 255; + arg0->unk2C = 100.0f; } static s32 CheckBowserFire(HsfanimStruct01 *arg0) { - arg0->unk34.x += arg0->unk08.x; - arg0->unk34.y += arg0->unk08.y; - arg0->unk34.z += arg0->unk08.z; - arg0->unk08.x += arg0->unk14.x; - arg0->unk08.y += arg0->unk14.y; - arg0->unk08.z += arg0->unk14.z; - arg0->unk40.a -= 8; - arg0->unk2C *= arg0->unk24; - if(arg0->unk40.a == 0.0f) { - arg0->unk40.a = 0; - arg0->unk2C = 0.0f; - return 1; - } - return 0; + arg0->unk34.x += arg0->unk08.x; + arg0->unk34.y += arg0->unk08.y; + arg0->unk34.z += arg0->unk08.z; + arg0->unk08.x += arg0->unk14.x; + arg0->unk08.y += arg0->unk14.y; + arg0->unk08.z += arg0->unk14.z; + arg0->unk40.a -= 8; + arg0->unk2C *= arg0->unk24; + if(arg0->unk40.a == 0.0f) { + arg0->unk40.a = 0; + arg0->unk2C = 0.0f; + return 1; + } + return 0; } static void KillBowserFire(void) { - if(fireParMan != -1) { - Hu3DModelKill(fireParMan); - fireParMan = -1; - fireAnim = NULL; - } + if(fireParMan != -1) { + Hu3DModelKill(fireParMan); + fireParMan = -1; + fireAnim = NULL; + } } typedef struct mini_bowser_balloon_work { - u8 kill : 1; - u8 state; - u16 timer; - s16 angle; - float offset; - s16 *models; + u8 kill : 1; + u8 state; + u16 timer; + s16 angle; + float offset; + s16 *models; } MiniBowserBalloonWork; static void MiniBowserTake(void); @@ -1433,384 +1432,384 @@ static void WaitMiniBowserMotion(void); static s32 ExecMiniBowserEvent(void) { - s32 doneF = 0; - CreateMiniBowserBalloon(); - SetMiniBowserBalloonState(0); - while(GetMiniBowserBalloonState() != 2) { - HuPrcVSleep(); - } - BoardFilterFadeOut(30); - BoardAudSeqFadeOut(1, 1000); - HuPrcSleep(30); - BoardAudSeqFadeOutFast(1); - BoardMusStart(1, 11, 127, 0); - HuAudFXPlay(62); - BoardWinCreate(2, MAKE_MESSID(3, 0), 6); - BoardWinWait(); - if(BoardRandMod(100) < 70) { - MiniBowserTake(); - } else { - MiniBowserTakeAll(); - } - //5% chance bowser will appear after baby bowser - if(BoardRandMod(100) < 5) { - doneF = 1; - } - if(doneF) { - HuPrcSleep(60); - BoardWinCreate(2, MAKE_MESSID(3, 6), 6); - BoardWinWait(); - BoardWinKill(); - HuAudFXPlay(62); - SetMiniBowserMotion(6, 10, 1); - HuPrcSleep(60); - } else { - HuAudFXPlay(62); - BoardWinCreate(2, MAKE_MESSID(3, 2), 6); - BoardWinWait(); - BoardWinKill(); - BoardAudSeqFadeOut(1, 1000); - SetMiniBowserMotion(4, 10, 1); - HuPrcSleep(30); - } - SetMiniBowserBalloonState(1); - while(GetMiniBowserBalloonState() != 2) { - HuPrcVSleep(); - } - MiniBowserBalloonStop(); - return doneF; + s32 doneF = 0; + CreateMiniBowserBalloon(); + SetMiniBowserBalloonState(0); + while(GetMiniBowserBalloonState() != 2) { + HuPrcVSleep(); + } + BoardFilterFadeOut(30); + BoardAudSeqFadeOut(1, 1000); + HuPrcSleep(30); + BoardAudSeqFadeOutFast(1); + BoardMusStart(1, 11, 127, 0); + HuAudFXPlay(62); + BoardWinCreate(2, MAKE_MESSID(3, 0), 6); + BoardWinWait(); + if(BoardRandMod(100) < 70) { + MiniBowserTake(); + } else { + MiniBowserTakeAll(); + } + //5% chance bowser will appear after baby bowser + if(BoardRandMod(100) < 5) { + doneF = 1; + } + if(doneF) { + HuPrcSleep(60); + BoardWinCreate(2, MAKE_MESSID(3, 6), 6); + BoardWinWait(); + BoardWinKill(); + HuAudFXPlay(62); + SetMiniBowserMotion(6, 10, 1); + HuPrcSleep(60); + } else { + HuAudFXPlay(62); + BoardWinCreate(2, MAKE_MESSID(3, 2), 6); + BoardWinWait(); + BoardWinKill(); + BoardAudSeqFadeOut(1, 1000); + SetMiniBowserMotion(4, 10, 1); + HuPrcSleep(30); + } + SetMiniBowserBalloonState(1); + while(GetMiniBowserBalloonState() != 2) { + HuPrcVSleep(); + } + MiniBowserBalloonStop(); + return doneF; } static void MiniBowserTake(void) { - u8 coinSteal[][3] = { - 20, 20, 30, - 20, 20, 30, - 10, 15, 20, - 10, 15, 20 - }; - s32 coin_inc; - s32 game_part; - u8 steal; - s32 i; - u32 mess; - s32 delay; - s32 turn; - s32 turn_max; - turn = GWSystem.turn-1; - turn_max = GWSystem.max_turn; - game_part = turn/(turn_max/3); - if(game_part >= 3) { - game_part = 2; - } - steal = (u8)coinSteal[GWPlayer[eventPlayer].rank][game_part]; - sprintf(coinStealStrAll, "%d", steal); - SetMiniBowserMotion(2, 10, 0); - if(steal >= 20) { - delay = 3; - } else { - delay = 6; - } - if(BoardPlayerCoinsGet(eventPlayer) != 0) { - mess = MAKE_MESSID(3, 1); - coin_inc = -1; - } else { - mess = MAKE_MESSID(3, 3); - steal = 10; - coin_inc = 1; - } - HuAudFXPlay(62); - BoardWinCreate(2, mess, 6); - BoardWinInsertMesSet(MAKE_MESSID_PTR(coinStealStrAll), 0); - BoardWinWait(); - if(coin_inc > 0) { - SetMiniBowserMotion(5, 10, 0); - } else { - SetMiniBowserMotion(3, 10, 1); - } - if(coin_inc < 0) { - omVibrate(eventPlayer, 12, 6, 6); - } - if(coin_inc < 0) { - BoardPlayerMotionShiftSet(eventPlayer, 13, 0.0f, 4.0f, HU3D_MOTATTR_NONE); - } else { - BoardPlayerMotionShiftSet(eventPlayer, 12, 0.0f, 4.0f, HU3D_MOTATTR_NONE); - } - for(i=0; i= 3) { + game_part = 2; + } + steal = (u8)coinSteal[GWPlayer[eventPlayer].rank][game_part]; + sprintf(coinStealStrAll, "%d", steal); + SetMiniBowserMotion(2, 10, 0); + if(steal >= 20) { + delay = 3; + } else { + delay = 6; + } + if(BoardPlayerCoinsGet(eventPlayer) != 0) { + mess = MAKE_MESSID(3, 1); + coin_inc = -1; + } else { + mess = MAKE_MESSID(3, 3); + steal = 10; + coin_inc = 1; + } + HuAudFXPlay(62); + BoardWinCreate(2, mess, 6); + BoardWinInsertMesSet(MAKE_MESSID_PTR(coinStealStrAll), 0); + BoardWinWait(); + if(coin_inc > 0) { + SetMiniBowserMotion(5, 10, 0); + } else { + SetMiniBowserMotion(3, 10, 1); + } + if(coin_inc < 0) { + omVibrate(eventPlayer, 12, 6, 6); + } + if(coin_inc < 0) { + BoardPlayerMotionShiftSet(eventPlayer, 13, 0.0f, 4.0f, HU3D_MOTATTR_NONE); + } else { + BoardPlayerMotionShiftSet(eventPlayer, 12, 0.0f, 4.0f, HU3D_MOTATTR_NONE); + } + for(i=0; i= 3) { - game_part = 2; - } - steal = (u8)coinSteal[game_part]; - sprintf(coinStealStr, "%d", steal); - SetMiniBowserMotion(2, 10, 0); - for(coin_total=j=0; j<4; j++) { - coin_total += BoardPlayerCoinsGet(j); - } - if(coin_total != 0) { - mess = MAKE_MESSID(3, 4); - coin_inc = -1; - } else { - mess = MAKE_MESSID(3, 5); - steal = 10; - coin_inc = 1; - } - HuAudFXPlay(62); - BoardWinCreate(2, mess, 6); - BoardWinInsertMesSet(MAKE_MESSID_PTR(coinStealStr), 0); - BoardWinWait(); - if(coin_inc > 0) { - SetMiniBowserMotion(5, 10, 0); - } else { - SetMiniBowserMotion(3, 10, 1); - } - if(coin_inc < 0) { - for(i=0; i<4; i++) { - omVibrate(i, 12, 6, 6); - } - } - for(i=0; i<4; i++) { - if(coin_inc < 0) { - BoardPlayerMotionShiftSet(i, 13, 0.0f, 4.0f, HU3D_MOTATTR_NONE); - } else { - BoardPlayerMotionShiftSet(i, 12, 0.0f, 4.0f, HU3D_MOTATTR_NONE); - } - } - if(steal >= 20) { - delay = 3; - } else { - delay = 6; - } - for(i=0; i= 3) { + game_part = 2; + } + steal = (u8)coinSteal[game_part]; + sprintf(coinStealStr, "%d", steal); + SetMiniBowserMotion(2, 10, 0); + for(coin_total=j=0; j<4; j++) { + coin_total += BoardPlayerCoinsGet(j); + } + if(coin_total != 0) { + mess = MAKE_MESSID(3, 4); + coin_inc = -1; + } else { + mess = MAKE_MESSID(3, 5); + steal = 10; + coin_inc = 1; + } + HuAudFXPlay(62); + BoardWinCreate(2, mess, 6); + BoardWinInsertMesSet(MAKE_MESSID_PTR(coinStealStr), 0); + BoardWinWait(); + if(coin_inc > 0) { + SetMiniBowserMotion(5, 10, 0); + } else { + SetMiniBowserMotion(3, 10, 1); + } + if(coin_inc < 0) { + for(i=0; i<4; i++) { + omVibrate(i, 12, 6, 6); + } + } + for(i=0; i<4; i++) { + if(coin_inc < 0) { + BoardPlayerMotionShiftSet(i, 13, 0.0f, 4.0f, HU3D_MOTATTR_NONE); + } else { + BoardPlayerMotionShiftSet(i, 12, 0.0f, 4.0f, HU3D_MOTATTR_NONE); + } + } + if(steal >= 20) { + delay = 3; + } else { + delay = 6; + } + for(i=0; ikill = 1; - } + if(miniBowserBalloonObj) { + OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork)->kill = 1; + } } static s32 GetMiniBowserBalloonState(void) { - return OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork)->state; + return OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork)->state; } static void SetMiniBowserBalloonState(s32 state) { - OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork)->state = state; + OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork)->state = state; } static void CreateMiniBowserBalloon(void) { - MiniBowserBalloonWork *work; - s16 *models; - Vec pos; - miniBowserBalloonObj = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecMiniBowserBalloon); - work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); - work->kill = 0; - work->state = 0; - work->timer = 0; - work->offset = 0; - work->angle = 0; - work->models = HuMemDirectMallocNum(HEAP_SYSTEM, 9*sizeof(s16), MEMORY_DEFAULT_NUM); - models = work->models; - models[0] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BKOOPA, 14), (s32 *)miniBowserMotTbl, 0); - models[1] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BKOOPA, 0), NULL, 0); - BoardPlayerPosGet(eventPlayer, &pos); - miniBowserBalloonObj->trans.x = pos.x; - miniBowserBalloonObj->trans.y = pos.y+800.0f; - miniBowserBalloonObj->trans.z = pos.z; - BoardModelHookSet(models[1], "minik01", models[0]); - BoardModelPosSet(models[1], miniBowserBalloonObj->trans.x, - miniBowserBalloonObj->trans.y, - miniBowserBalloonObj->trans.z); - SetMiniBowserMotion(1, 0, 1); + MiniBowserBalloonWork *work; + s16 *models; + Vec pos; + miniBowserBalloonObj = omAddObjEx(boardObjMan, 257, 0, 0, -1, ExecMiniBowserBalloon); + work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); + work->kill = 0; + work->state = 0; + work->timer = 0; + work->offset = 0; + work->angle = 0; + work->models = HuMemDirectMallocNum(HEAP_SYSTEM, 9*sizeof(s16), MEMORY_DEFAULT_NUM); + models = work->models; + models[0] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BKOOPA, 14), (s32 *)miniBowserMotTbl, 0); + models[1] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BKOOPA, 0), NULL, 0); + BoardPlayerPosGet(eventPlayer, &pos); + miniBowserBalloonObj->trans.x = pos.x; + miniBowserBalloonObj->trans.y = pos.y+800.0f; + miniBowserBalloonObj->trans.z = pos.z; + BoardModelHookSet(models[1], "minik01", models[0]); + BoardModelPosSet(models[1], miniBowserBalloonObj->trans.x, + miniBowserBalloonObj->trans.y, + miniBowserBalloonObj->trans.z); + SetMiniBowserMotion(1, 0, 1); } static void ExecMiniBowserBalloon(omObjData *object) { - MiniBowserBalloonWork *work; - s16 *models; - work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); - models = work->models; - if(work->kill || BoardIsKill()) { - BoardModelKill(models[0]); - BoardModelKill(models[1]); - HuMemDirectFree(work->models); - miniBowserBalloonObj = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - if(work->timer) { - work->timer--; - } else { - switch(work->state) { - case 0: - MiniBowserBalloonFall(work, object); - break; - - case 1: - MiniBowserBalloonRaise(work, object); - break; - - case 2: - MiniBowserBalloonHover(work, object); - break; - } - } - BoardModelPosSet(models[1], object->trans.x, object->trans.y+work->offset, object->trans.z); + MiniBowserBalloonWork *work; + s16 *models; + work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); + models = work->models; + if(work->kill || BoardIsKill()) { + BoardModelKill(models[0]); + BoardModelKill(models[1]); + HuMemDirectFree(work->models); + miniBowserBalloonObj = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + if(work->timer) { + work->timer--; + } else { + switch(work->state) { + case 0: + MiniBowserBalloonFall(work, object); + break; + + case 1: + MiniBowserBalloonRaise(work, object); + break; + + case 2: + MiniBowserBalloonHover(work, object); + break; + } + } + BoardModelPosSet(models[1], object->trans.x, object->trans.y+work->offset, object->trans.z); } static void MiniBowserBalloonHover(MiniBowserBalloonWork *work, omObjData *object) { - float angle; - work->angle++; - if(work->angle >= 360) { - work->angle = 0; - } - OSs16tof32(&work->angle, &angle); - work->offset = 10.0*sin(M_PI*angle/180.0); + float angle; + work->angle++; + if(work->angle >= 360) { + work->angle = 0; + } + OSs16tof32(&work->angle, &angle); + work->offset = 10.0*sind(angle); } static void MiniBowserBalloonFall(MiniBowserBalloonWork *work, omObjData *object) { - Vec pos; - BoardPlayerPosGet(eventPlayer, &pos); - pos.y += 250.0f; - if(object->trans.y < pos.y) { - object->trans.y = pos.y; - work->state = 2; - } else { - object->trans.y += -10.0f; - } + Vec pos; + BoardPlayerPosGet(eventPlayer, &pos); + pos.y += 250.0f; + if(object->trans.y < pos.y) { + object->trans.y = pos.y; + work->state = 2; + } else { + object->trans.y += -10.0f; + } } static void MiniBowserBalloonRaise(MiniBowserBalloonWork *work, omObjData *object) { - Vec pos; - BoardPlayerPosGet(eventPlayer, &pos); - pos.y += 800.0f; - if(object->trans.y > pos.y) { - work->state = 2; - } else { - object->trans.y += 10.0f; - } + Vec pos; + BoardPlayerPosGet(eventPlayer, &pos); + pos.y += 800.0f; + if(object->trans.y > pos.y) { + work->state = 2; + } else { + object->trans.y += 10.0f; + } } static void SetMiniBowserMotion(s32 mot, u8 end, s32 pause) { - s16 *models; - u32 attr; - float shift_end; - MiniBowserBalloonWork *work; - work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); - models = work->models; - if(pause) { - attr = HU3D_MOTATTR_LOOP; - } else { - attr = HU3D_MOTATTR_NONE; - } - if(end) { - OSu8tof32(&end, &shift_end); - BoardModelMotionShiftSet(models[0], mot, 0, shift_end, attr); - } else { - BoardModelMotionStart(models[0], mot, attr); - } + s16 *models; + u32 attr; + float shift_end; + MiniBowserBalloonWork *work; + work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); + models = work->models; + if(pause) { + attr = HU3D_MOTATTR_LOOP; + } else { + attr = HU3D_MOTATTR_NONE; + } + if(end) { + OSu8tof32(&end, &shift_end); + BoardModelMotionShiftSet(models[0], mot, 0, shift_end, attr); + } else { + BoardModelMotionStart(models[0], mot, attr); + } } static void SetMiniBowserMotionPause(s32 flag) { - s16 *models; - MiniBowserBalloonWork *work; - work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); - models = work->models; - if(flag) { - BoardModelAttrSet(models[0], 0x40000001); - } else { - BoardModelAttrReset(models[0], 0x40000001); - } + s16 *models; + MiniBowserBalloonWork *work; + work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); + models = work->models; + if(flag) { + BoardModelAttrSet(models[0], 0x40000001); + } else { + BoardModelAttrReset(models[0], 0x40000001); + } } static void WaitMiniBowserMotion(void) { - s16 *models; - MiniBowserBalloonWork *work; - work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); - models = work->models; - BoardModelAttrReset(models[0], 0x40000001); - while(!BoardModelMotionEndCheck(models[0])) { - HuPrcVSleep(); - } + s16 *models; + MiniBowserBalloonWork *work; + work = OM_GET_WORK_PTR(miniBowserBalloonObj, MiniBowserBalloonWork); + models = work->models; + BoardModelAttrReset(models[0], 0x40000001); + while(!BoardModelMotionEndCheck(models[0])) { + HuPrcVSleep(); + } } diff --git a/src/game/board/main.c b/src/game/board/main.c index 119780c2..68440f98 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -1,5 +1,5 @@ #include "game/gamework_data.h" -#include "math.h" +#include "ext_math.h" #include "game/object.h" #include "game/flag.h" #include "game/data.h" @@ -23,9 +23,9 @@ #include "game/msm.h" typedef struct camera_view { - s16 x_rot; - s16 zoom; - s16 fov; + s16 x_rot; + s16 zoom; + s16 fov; } CameraView; omObjData *boardMainObj; @@ -54,12 +54,12 @@ static BoardCameraData cameraBackup; static OverlayID nextOvl = OVL_INVALID; static CameraView camViewTbl[] = { - { 0, 0, 25 }, - { -33, 3200, 25 }, - { -33, 2100, 25 }, - { -33, 1800, 25 }, - { -33, 12640, 25 }, - { -33, 3200, 25 }, + { 0, 0, 25 }, + { -33, 3200, 25 }, + { -33, 2100, 25 }, + { -33, 1800, 25 }, + { -33, 12640, 25 }, + { -33, 3200, 25 }, }; @@ -83,1181 +83,1181 @@ static void DestroyBoard(void); void BoardObjectSetup(BoardFunc create, BoardFunc destroy) { - omSysPauseEnable(FALSE); - if(!_CheckFlag(FLAG_ID_MAKE(1, 0))) { - _SetFlag(FLAG_ID_MAKE(1, 0)); - _ClearFlag(FLAG_ID_MAKE(2, 1)); - _ClearFlag(FLAG_ID_MAKE(2, 3)); - _ClearFlag(FLAG_ID_MAKE(2, 0)); - _ClearFlag(FLAG_ID_MAKE(2, 2)); - _ClearFlag(FLAG_ID_MAKE(2, 4)); - _ClearFlag(FLAG_ID_MAKE(2, 5)); - _ClearFlag(FLAG_ID_MAKE(1, 6)); - _ClearFlag(FLAG_ID_MAKE(1, 9)); - _ClearFlag(FLAG_ID_MAKE(0, 8)); - _ClearFlag(FLAG_ID_MAKE(0, 10)); - BoardMGSetupPlayClear(); - } - - nextOvl = OVL_INVALID; - _SetFlag(FLAG_ID_MAKE(1, 28)); - _SetFlag(FLAG_ID_MAKE(1, 14)); - _ClearFlag(FLAG_ID_MAKE(1, 16)); - _ClearFlag(FLAG_ID_MAKE(1, 17)); - _ClearFlag(FLAG_ID_MAKE(1, 18)); - _ClearFlag(FLAG_ID_MAKE(1, 19)); - _ClearFlag(FLAG_ID_MAKE(1, 20)); - _ClearFlag(FLAG_ID_MAKE(1, 21)); - _ClearFlag(FLAG_ID_MAKE(1, 23)); - _ClearFlag(FLAG_ID_MAKE(1, 24)); - _ClearFlag(FLAG_ID_MAKE(1, 25)); - _ClearFlag(FLAG_ID_MAKE(1, 27)); - createFunc = create; - destroyFunc = destroy; - boardTurnFunc = NULL; - boardStarShowNextHook = NULL; - boardBowserHook = NULL; - boardStarGiveHook = NULL; - boardTurnStartFunc = NULL; - boardObjMan = omInitObjMan(64, 8192); - omSystemKeyCheckSetup(boardObjMan); - boardMainObj = omAddObjEx(boardObjMan, 0, 0, 0, -1, InitBoardFunc); - switch(omcurovl) { - case OVL_W01: - GWSystem.board = BOARD_ID_MAIN1; - break; - - case OVL_W02: - GWSystem.board = BOARD_ID_MAIN2; - break; - - case OVL_W03: - GWSystem.board = BOARD_ID_MAIN3; - break; - - case OVL_W04: - GWSystem.board = BOARD_ID_MAIN4; - break; - - case OVL_W05: - GWSystem.board = BOARD_ID_MAIN5; - break; - - case OVL_W06: - GWSystem.board = BOARD_ID_MAIN6; - break; - - case OVL_W10: - GWSystem.board = BOARD_ID_TUTORIAL; - break; - - case OVL_W20: - GWSystem.board = BOARD_ID_EXTRA1; - break; - - case OVL_W21: - GWSystem.board = BOARD_ID_EXTRA2; - break; - } + omSysPauseEnable(FALSE); + if(!_CheckFlag(FLAG_ID_MAKE(1, 0))) { + _SetFlag(FLAG_ID_MAKE(1, 0)); + _ClearFlag(FLAG_ID_MAKE(2, 1)); + _ClearFlag(FLAG_ID_MAKE(2, 3)); + _ClearFlag(FLAG_ID_MAKE(2, 0)); + _ClearFlag(FLAG_ID_MAKE(2, 2)); + _ClearFlag(FLAG_ID_MAKE(2, 4)); + _ClearFlag(FLAG_ID_MAKE(2, 5)); + _ClearFlag(FLAG_ID_MAKE(1, 6)); + _ClearFlag(FLAG_ID_MAKE(1, 9)); + _ClearFlag(FLAG_ID_MAKE(0, 8)); + _ClearFlag(FLAG_ID_MAKE(0, 10)); + BoardMGSetupPlayClear(); + } + + nextOvl = OVL_INVALID; + _SetFlag(FLAG_ID_MAKE(1, 28)); + _SetFlag(FLAG_ID_MAKE(1, 14)); + _ClearFlag(FLAG_ID_MAKE(1, 16)); + _ClearFlag(FLAG_ID_MAKE(1, 17)); + _ClearFlag(FLAG_ID_MAKE(1, 18)); + _ClearFlag(FLAG_ID_MAKE(1, 19)); + _ClearFlag(FLAG_ID_MAKE(1, 20)); + _ClearFlag(FLAG_ID_MAKE(1, 21)); + _ClearFlag(FLAG_ID_MAKE(1, 23)); + _ClearFlag(FLAG_ID_MAKE(1, 24)); + _ClearFlag(FLAG_ID_MAKE(1, 25)); + _ClearFlag(FLAG_ID_MAKE(1, 27)); + createFunc = create; + destroyFunc = destroy; + boardTurnFunc = NULL; + boardStarShowNextHook = NULL; + boardBowserHook = NULL; + boardStarGiveHook = NULL; + boardTurnStartFunc = NULL; + boardObjMan = omInitObjMan(64, 8192); + omSystemKeyCheckSetup(boardObjMan); + boardMainObj = omAddObjEx(boardObjMan, 0, 0, 0, -1, InitBoardFunc); + switch(omcurovl) { + case OVL_W01: + GWSystem.board = BOARD_ID_MAIN1; + break; + + case OVL_W02: + GWSystem.board = BOARD_ID_MAIN2; + break; + + case OVL_W03: + GWSystem.board = BOARD_ID_MAIN3; + break; + + case OVL_W04: + GWSystem.board = BOARD_ID_MAIN4; + break; + + case OVL_W05: + GWSystem.board = BOARD_ID_MAIN5; + break; + + case OVL_W06: + GWSystem.board = BOARD_ID_MAIN6; + break; + + case OVL_W10: + GWSystem.board = BOARD_ID_TUTORIAL; + break; + + case OVL_W20: + GWSystem.board = BOARD_ID_EXTRA1; + break; + + case OVL_W21: + GWSystem.board = BOARD_ID_EXTRA2; + break; + } } static void InitBoardFunc(omObjData *object) { - boardMainProc = HuPrcChildCreate(MainFunc, 8194, 0x6000, 0, boardObjMan); - HuPrcDestructorSet2(boardMainProc, DestroyMainFunc); - object->func = ExecBoardFunc; + boardMainProc = HuPrcChildCreate(MainFunc, 8194, 0x6000, 0, boardObjMan); + HuPrcDestructorSet2(boardMainProc, DestroyMainFunc); + object->func = ExecBoardFunc; } static void ExecBoardFunc(omObjData *object) { - if(!_CheckFlag(FLAG_ID_MAKE(1, 16))) { - return; - } - if(!_CheckFlag(FLAG_ID_MAKE(1, 17))) { - if(omSysExitReq) { - BoardKill(); - } else { - if(BoardPauseReqCheck()) { - BoardPauseStart(); - } else { - return; - } - } - } else { - if(boardMainProc) { - HuPrcKill(boardMainProc); - } - object->func = KillBoardFunc; - } + if(!_CheckFlag(FLAG_ID_MAKE(1, 16))) { + return; + } + if(!_CheckFlag(FLAG_ID_MAKE(1, 17))) { + if(omSysExitReq) { + BoardKill(); + } else { + if(BoardPauseReqCheck()) { + BoardPauseStart(); + } else { + return; + } + } + } else { + if(boardMainProc) { + HuPrcKill(boardMainProc); + } + object->func = KillBoardFunc; + } } static void KillBoardFunc(omObjData *object) { - if(boardMainProc) { - return; - } - if(WipeStatGet()) { - return; - return_alt: - return; - } else { - if(HuARDMACheck()) { - goto return_alt; - } - if(nextOvl != OVL_INVALID) { - omOvlCallEx(nextOvl, 1, 0, 0); - } else { - if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { - BoardTutorialKill(); - BoardTutorialWorkRestore(); - } - _ClearFlag(FLAG_ID_MAKE(1, 0)); - HuARDirFree(DATADIR_BOARD); - if(_CheckFlag(FLAG_ID_MAKE(1, 27))) { - omOvlReturnEx(2, 1); - } else { - omOvlReturnEx(1, 1); - } - } - } + if(boardMainProc) { + return; + } + if(WipeStatGet()) { + return; + return_alt: + return; + } else { + if(HuARDMACheck()) { + goto return_alt; + } + if(nextOvl != OVL_INVALID) { + omOvlCallEx(nextOvl, 1, 0, 0); + } else { + if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { + BoardTutorialKill(); + BoardTutorialWorkRestore(); + } + _ClearFlag(FLAG_ID_MAKE(1, 0)); + HuARDirFree(DATADIR_BOARD); + if(_CheckFlag(FLAG_ID_MAKE(1, 27))) { + omOvlReturnEx(2, 1); + } else { + omOvlReturnEx(1, 1); + } + } + } } void BoardKill(void) { - _SetFlag(FLAG_ID_MAKE(1, 28)); - _SetFlag(FLAG_ID_MAKE(1, 14)); - if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { - BoardTutorialHookExec(29, 0); - } - HuAudFXAllStop(); - if(!BoardStartCheck()) { - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); - boardTutorialF = 1; - while(WipeStatGet()) { - HuPrcVSleep(); - } - } - _SetFlag(FLAG_ID_MAKE(1, 17)); - HuPrcKill(boardMainProc); - DestroyBoard(); + _SetFlag(FLAG_ID_MAKE(1, 28)); + _SetFlag(FLAG_ID_MAKE(1, 14)); + if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { + BoardTutorialHookExec(29, 0); + } + HuAudFXAllStop(); + if(!BoardStartCheck()) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + boardTutorialF = 1; + while(WipeStatGet()) { + HuPrcVSleep(); + } + } + _SetFlag(FLAG_ID_MAKE(1, 17)); + HuPrcKill(boardMainProc); + DestroyBoard(); } s32 BoardIsKill(void) { - return (_CheckFlag(FLAG_ID_MAKE(1, 17))) ? 1 : 0; + return (_CheckFlag(FLAG_ID_MAKE(1, 17))) ? 1 : 0; } void BoardPauseDisableSet(s32 value) { - if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { - _SetFlag(FLAG_ID_MAKE(1, 25)); - omSysPauseEnable(FALSE); - } else { - if(value) { - _SetFlag(FLAG_ID_MAKE(1, 25)); - } else { - _ClearFlag(FLAG_ID_MAKE(1, 25)); - } - } + if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { + _SetFlag(FLAG_ID_MAKE(1, 25)); + omSysPauseEnable(FALSE); + } else { + if(value) { + _SetFlag(FLAG_ID_MAKE(1, 25)); + } else { + _ClearFlag(FLAG_ID_MAKE(1, 25)); + } + } } s32 BoardPauseDisableGet() { - return (_CheckFlag(FLAG_ID_MAKE(1, 25))) ? 1 : 0; + return (_CheckFlag(FLAG_ID_MAKE(1, 25))) ? 1 : 0; } void BoardSaveInit(s32 board) { - s32 i; - GWSystem.board = board; - _ClearFlag(FLAG_ID_MAKE(1, 0)); - _ClearFlag(FLAG_ID_MAKE(1, 1)); - _ClearFlag(FLAG_ID_MAKE(1, 5)); - _ClearFlag(FLAG_ID_MAKE(1, 4)); - _ClearFlag(FLAG_ID_MAKE(1, 6)); - _ClearFlag(FLAG_ID_MAKE(1, 2)); - _ClearFlag(FLAG_ID_MAKE(1, 9)); - _ClearFlag(FLAG_ID_MAKE(1, 7)); - _ClearFlag(FLAG_ID_MAKE(1, 8)); - _ClearFlag(FLAG_ID_MAKE(0, 8)); - _ClearFlag(FLAG_ID_MAKE(1, 12)); - _ClearFlag(FLAG_ID_MAKE(1, 3)); - GWSystem.turn = 1; - GWSystem.star_flag = 0; - GWSystem.star_pos = 0; - GWSystem.star_total = 1; - GWSystem.last5_effect = 0; - GWSystem.player_curr = -1; - GWSystem.bowser_loss = 0; - GWSystem.bowser_event = 0; - GWSystem.lucky_value = 1; - GWSystem.mg_next = 0; - GWMGTypeSet(0); - GWSystem.unk_38 = 0; - GWSystem.block_pos = 0; - memset(GWSystem.board_data, 0, sizeof(GWSystem.board_data)); - for(i=0; i<4; i++) { - s32 party_flag; - BoardPlayerAutoSizeSet(i, 0); - GWPlayer[i].draw_ticket = 0; - GWPlayer[i].color = 0; - GWPlayer[i].bowser_suit = 0; - GWPlayer[i].jump = 0; - GWPlayer[i].space_shock = 0; - GWPlayer[i].spark = 0; - GWPlayer[i].show_next = 1; - BoardPlayerCoinsSet(i, 0); - if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { - GWSystem.team = 0; - } - GWPlayer[i].blue_count = 0; - GWPlayer[i].red_count = 0; - GWPlayer[i].question_count = 0; - GWPlayer[i].fortune_count = 0; - GWPlayer[i].bowser_count = 0; - GWPlayer[i].battle_count = 0; - GWPlayer[i].mushroom_count = 0; - GWPlayer[i].warp_count = 0; - GWPlayer[i].coins_mg = 0; - GWPlayer[i].coins_total = 0; - GWPlayer[i].coins_max = 0; - GWPlayer[i].stars_max = 0; - GWPlayer[i].coins_battle = 0; - GWPlayer[i].coin_collect = 0; - GWPlayer[i].coin_win = 0; - GWPlayer[i].items[0] = -1; - GWPlayer[i].items[1] = -1; - GWPlayer[i].items[2] = -1; - if(GWPartyGet() == 0 || _CheckFlag(FLAG_ID_MAKE(1, 11))) { - GWStarsSet(i, 0); - } else { - GWStarsSet(i, BoardPlayerHandicapGet(i)); - } - } + s32 i; + GWSystem.board = board; + _ClearFlag(FLAG_ID_MAKE(1, 0)); + _ClearFlag(FLAG_ID_MAKE(1, 1)); + _ClearFlag(FLAG_ID_MAKE(1, 5)); + _ClearFlag(FLAG_ID_MAKE(1, 4)); + _ClearFlag(FLAG_ID_MAKE(1, 6)); + _ClearFlag(FLAG_ID_MAKE(1, 2)); + _ClearFlag(FLAG_ID_MAKE(1, 9)); + _ClearFlag(FLAG_ID_MAKE(1, 7)); + _ClearFlag(FLAG_ID_MAKE(1, 8)); + _ClearFlag(FLAG_ID_MAKE(0, 8)); + _ClearFlag(FLAG_ID_MAKE(1, 12)); + _ClearFlag(FLAG_ID_MAKE(1, 3)); + GWSystem.turn = 1; + GWSystem.star_flag = 0; + GWSystem.star_pos = 0; + GWSystem.star_total = 1; + GWSystem.last5_effect = 0; + GWSystem.player_curr = -1; + GWSystem.bowser_loss = 0; + GWSystem.bowser_event = 0; + GWSystem.lucky_value = 1; + GWSystem.mg_next = 0; + GWMGTypeSet(0); + GWSystem.unk_38 = 0; + GWSystem.block_pos = 0; + memset(GWSystem.board_data, 0, sizeof(GWSystem.board_data)); + for(i=0; i<4; i++) { + s32 party_flag; + BoardPlayerAutoSizeSet(i, 0); + GWPlayer[i].draw_ticket = 0; + GWPlayer[i].color = 0; + GWPlayer[i].bowser_suit = 0; + GWPlayer[i].jump = 0; + GWPlayer[i].space_shock = 0; + GWPlayer[i].spark = 0; + GWPlayer[i].show_next = 1; + BoardPlayerCoinsSet(i, 0); + if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { + GWSystem.team = 0; + } + GWPlayer[i].blue_count = 0; + GWPlayer[i].red_count = 0; + GWPlayer[i].question_count = 0; + GWPlayer[i].fortune_count = 0; + GWPlayer[i].bowser_count = 0; + GWPlayer[i].battle_count = 0; + GWPlayer[i].mushroom_count = 0; + GWPlayer[i].warp_count = 0; + GWPlayer[i].coins_mg = 0; + GWPlayer[i].coins_total = 0; + GWPlayer[i].coins_max = 0; + GWPlayer[i].stars_max = 0; + GWPlayer[i].coins_battle = 0; + GWPlayer[i].coin_collect = 0; + GWPlayer[i].coin_win = 0; + GWPlayer[i].items[0] = -1; + GWPlayer[i].items[1] = -1; + GWPlayer[i].items[2] = -1; + if(GWPartyGet() == 0 || _CheckFlag(FLAG_ID_MAKE(1, 11))) { + GWStarsSet(i, 0); + } else { + GWStarsSet(i, BoardPlayerHandicapGet(i)); + } + } } void BoardStoryConfigSet(s32 mg_list, s32 diff_story) { - GWSystem.party = 0; - GWSystem.team = 0; - GWSystem.diff_story = diff_story; - GWSystem.bonus_star = 0; - GWMGListSet(mg_list); - GWPlayer[0].handicap = 0; - GWPlayer[1].handicap = 0; - GWPlayer[2].handicap = 0; - GWPlayer[3].handicap = 0; - GWSystem.max_turn = 15; - memset(GWPlayer, 0, 4*sizeof(PlayerState)); - _ClearFlag(FLAG_ID_MAKE(0, 2)); - _ClearFlag(FLAG_ID_MAKE(0, 3)); - _ClearFlag(FLAG_ID_MAKE(0, 4)); - _ClearFlag(FLAG_ID_MAKE(0, 5)); - _ClearFlag(FLAG_ID_MAKE(0, 6)); - _ClearFlag(FLAG_ID_MAKE(0, 7)); - _ClearFlag(FLAG_ID_MAKE(1, 11)); - _SetFlag(FLAG_ID_MAKE(0, 11)); - _SetFlag(FLAG_ID_MAKE(1, 10)); + GWSystem.party = 0; + GWSystem.team = 0; + GWSystem.diff_story = diff_story; + GWSystem.bonus_star = 0; + GWMGListSet(mg_list); + GWPlayer[0].handicap = 0; + GWPlayer[1].handicap = 0; + GWPlayer[2].handicap = 0; + GWPlayer[3].handicap = 0; + GWSystem.max_turn = 15; + memset(GWPlayer, 0, 4*sizeof(PlayerState)); + _ClearFlag(FLAG_ID_MAKE(0, 2)); + _ClearFlag(FLAG_ID_MAKE(0, 3)); + _ClearFlag(FLAG_ID_MAKE(0, 4)); + _ClearFlag(FLAG_ID_MAKE(0, 5)); + _ClearFlag(FLAG_ID_MAKE(0, 6)); + _ClearFlag(FLAG_ID_MAKE(0, 7)); + _ClearFlag(FLAG_ID_MAKE(1, 11)); + _SetFlag(FLAG_ID_MAKE(0, 11)); + _SetFlag(FLAG_ID_MAKE(1, 10)); } void BoardPartyConfigSet(s32 team, s32 bonus_star, s32 mg_list, s32 max_turn, s32 p1_handicap, s32 p2_handicap, s32 p3_handicap, s32 p4_handicap) { - GWSystem.party = 1; - GWSystem.team = team; - GWSystem.diff_story = 0; - GWSystem.bonus_star = bonus_star; - GWMGListSet(mg_list); - GWSystem.max_turn = max_turn; - memset(GWPlayer, 0, 4*sizeof(PlayerState)); - GWPlayer[0].handicap = p1_handicap; - GWPlayer[1].handicap = p2_handicap; - GWPlayer[2].handicap = p3_handicap; - GWPlayer[3].handicap = p4_handicap; - _ClearFlag(FLAG_ID_MAKE(1, 11)); - _SetFlag(FLAG_ID_MAKE(0, 11)); - _SetFlag(FLAG_ID_MAKE(1, 10)); + GWSystem.party = 1; + GWSystem.team = team; + GWSystem.diff_story = 0; + GWSystem.bonus_star = bonus_star; + GWMGListSet(mg_list); + GWSystem.max_turn = max_turn; + memset(GWPlayer, 0, 4*sizeof(PlayerState)); + GWPlayer[0].handicap = p1_handicap; + GWPlayer[1].handicap = p2_handicap; + GWPlayer[2].handicap = p3_handicap; + GWPlayer[3].handicap = p4_handicap; + _ClearFlag(FLAG_ID_MAKE(1, 11)); + _SetFlag(FLAG_ID_MAKE(0, 11)); + _SetFlag(FLAG_ID_MAKE(1, 10)); } static void DestroyMainFunc(void) { - boardMainProc = NULL; + boardMainProc = NULL; } #define CHECK_LAST5_TURN() ((s32)(GWSystem.max_turn-GWSystem.turn) < 5) static void MainFunc(void) { - s32 i; - s32 fade_enable, turn_cont, fade_type; - fade_enable = 0; - turn_cont = 0; - BoardPauseDisableSet(1); - if(_CheckFlag(FLAG_ID_MAKE(0, 10))) { - _ClearFlag(FLAG_ID_MAKE(0, 10)); - _SetFlag(FLAG_ID_MAKE(1, 16)); - BoardKill(); - HuPrcSleep(-1); - } - _ClearFlag(FLAG_ID_MAKE(0, 10)); - BoardTutorialInit(); - if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { - BoardTutorialWorkSave(); - BoardTutorialPlayerInit(); - #if VERSION_PAL - GWMessSpeedSet(3); - #else - GWMessSpeedSet(1); - #endif - } - CreateBoard(); - if(!_CheckFlag(FLAG_ID_MAKE(1, 1))) { - GWSystem.player_curr = -1; - BoardStartExec(); - GWSystem.player_curr = 0; - fade_enable = 1; - _SetFlag(FLAG_ID_MAKE(1, 1)); - } else { - fade_enable = 0; - } - if(ExecTurnStart()) { - turn_cont = 1; - } - if(CHECK_LAST5_TURN() && GWSystem.player_curr == 0 && !turn_cont) { - if(!_CheckFlag(FLAG_ID_MAKE(0, 8))) { - BoardLast5Exec(); - _SetFlag(FLAG_ID_MAKE(0, 8)); - } else { - BoardLast5GfxInit(); - } - } - if(!turn_cont) { - fade_type = 1; - } else { - fade_type = 0; - } - _ClearFlag(FLAG_ID_MAKE(1, 28)); - do { - BoardStatusShowSetAll(1); - if(GWBoardGet() == BOARD_ID_MAIN6 && GWSystem.player_curr == 0 && !turn_cont && boardTurnFunc) { - GWSystem.player_curr = -1; - boardTurnFunc(); - GWSystem.player_curr = 0; - } - BoardMusStartBoard(); - for(i=GWSystem.player_curr; i<4; i++) { - if(GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { - if(CHECK_LAST5_TURN() && i == 0 && !turn_cont) { - BoardLast5GfxInit(); - _SetFlag(FLAG_ID_MAKE(0, 8)); - } - } - if(_CheckFlag(FLAG_ID_MAKE(1, 6))) { - BoardPlayerTurnExec(i); - } else { - if(!turn_cont) { - BoardCameraMoveSet(0); - GWSystem.player_curr = i; - BoardCameraTargetPlayerSet(i); - BoardCameraMotionWait(); - { - Vec pos; - BoardSpacePosGet(0, GWPlayer[i].space_curr, &pos); - BoardPlayerPosSetV(i, &pos); - } - while(WipeStatGet()) { - HuPrcVSleep(); - } - if(!fade_enable) { - if(!fade_type) { - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_CROSS, 30); - while(WipeStatGet()) { - HuPrcVSleep(); - } - } else { - fade_type = 0; - WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21); - while(WipeStatGet()) { - HuPrcVSleep(); - } - } - } else { - fade_enable = 0; - } - BoardPlayerTurnExec(i); - } - } - turn_cont = 0; - if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { - BoardTutorialHookExec(9, 0); - } - if(i != 3 || _CheckFlag(FLAG_ID_MAKE(1, 11))) { - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1); - while(WipeStatGet()) { - HuPrcVSleep(); - } - BoardPlayerMoveAwayStartCurr(GWPlayer[i].space_curr, 1); - fade_type = 0; - } else { - if(GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { - if(GWSystem.turn != GWSystem.max_turn) { - WipeColorSet(255, 255, 255); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1); - while(WipeStatGet()) { - HuPrcVSleep(); - } - BoardPlayerMoveAwayStartCurr(GWPlayer[i].space_curr, 1); - fade_type = 0; - } - } else { - WipeColorSet(0, 0, 0); - WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 21); - while(WipeStatGet()) { - HuPrcVSleep(); - } - } - } - BoardPlayerPostTurnHookExec(i); - } - if(GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { - GWSystem.player_curr = 0; - if(BoardTurnNext()) { - BoardAudSeqFadeOut(0, 500); - BoardKill(); - HuPrcEnd(); - HuPrcSleep(-1); - } - } else { - _SetFlag(FLAG_ID_MAKE(1, 28)); - _SetFlag(FLAG_ID_MAKE(1, 14)); - BoardPauseDisableSet(1); - _ClearFlag(FLAG_ID_MAKE(1, 9)); - if(_CheckFlag(FLAG_ID_MAKE(2, 0)) || _CheckFlag(FLAG_ID_MAKE(1, 11)) ) { - for(i=0; i<4; i++) { - GWPlayer[i].color = 0; - } - GWSystem.player_curr = (GWSystem.player_curr+1)&3; - } else { - BoardMGSetupExec(); - HuPrcSleep(-1); - } - } - } while(1); + s32 i; + s32 fade_enable, turn_cont, fade_type; + fade_enable = 0; + turn_cont = 0; + BoardPauseDisableSet(1); + if(_CheckFlag(FLAG_ID_MAKE(0, 10))) { + _ClearFlag(FLAG_ID_MAKE(0, 10)); + _SetFlag(FLAG_ID_MAKE(1, 16)); + BoardKill(); + HuPrcSleep(-1); + } + _ClearFlag(FLAG_ID_MAKE(0, 10)); + BoardTutorialInit(); + if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { + BoardTutorialWorkSave(); + BoardTutorialPlayerInit(); + #if VERSION_PAL + GWMessSpeedSet(3); + #else + GWMessSpeedSet(1); + #endif + } + CreateBoard(); + if(!_CheckFlag(FLAG_ID_MAKE(1, 1))) { + GWSystem.player_curr = -1; + BoardStartExec(); + GWSystem.player_curr = 0; + fade_enable = 1; + _SetFlag(FLAG_ID_MAKE(1, 1)); + } else { + fade_enable = 0; + } + if(ExecTurnStart()) { + turn_cont = 1; + } + if(CHECK_LAST5_TURN() && GWSystem.player_curr == 0 && !turn_cont) { + if(!_CheckFlag(FLAG_ID_MAKE(0, 8))) { + BoardLast5Exec(); + _SetFlag(FLAG_ID_MAKE(0, 8)); + } else { + BoardLast5GfxInit(); + } + } + if(!turn_cont) { + fade_type = 1; + } else { + fade_type = 0; + } + _ClearFlag(FLAG_ID_MAKE(1, 28)); + do { + BoardStatusShowSetAll(1); + if(GWBoardGet() == BOARD_ID_MAIN6 && GWSystem.player_curr == 0 && !turn_cont && boardTurnFunc) { + GWSystem.player_curr = -1; + boardTurnFunc(); + GWSystem.player_curr = 0; + } + BoardMusStartBoard(); + for(i=GWSystem.player_curr; i<4; i++) { + if(GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { + if(CHECK_LAST5_TURN() && i == 0 && !turn_cont) { + BoardLast5GfxInit(); + _SetFlag(FLAG_ID_MAKE(0, 8)); + } + } + if(_CheckFlag(FLAG_ID_MAKE(1, 6))) { + BoardPlayerTurnExec(i); + } else { + if(!turn_cont) { + BoardCameraMoveSet(0); + GWSystem.player_curr = i; + BoardCameraTargetPlayerSet(i); + BoardCameraMotionWait(); + { + Vec pos; + BoardSpacePosGet(0, GWPlayer[i].space_curr, &pos); + BoardPlayerPosSetV(i, &pos); + } + while(WipeStatGet()) { + HuPrcVSleep(); + } + if(!fade_enable) { + if(!fade_type) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_CROSS, 30); + while(WipeStatGet()) { + HuPrcVSleep(); + } + } else { + fade_type = 0; + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 21); + while(WipeStatGet()) { + HuPrcVSleep(); + } + } + } else { + fade_enable = 0; + } + BoardPlayerTurnExec(i); + } + } + turn_cont = 0; + if(_CheckFlag(FLAG_ID_MAKE(1, 11))) { + BoardTutorialHookExec(9, 0); + } + if(i != 3 || _CheckFlag(FLAG_ID_MAKE(1, 11))) { + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1); + while(WipeStatGet()) { + HuPrcVSleep(); + } + BoardPlayerMoveAwayStartCurr(GWPlayer[i].space_curr, 1); + fade_type = 0; + } else { + if(GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { + if(GWSystem.turn != GWSystem.max_turn) { + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1); + while(WipeStatGet()) { + HuPrcVSleep(); + } + BoardPlayerMoveAwayStartCurr(GWPlayer[i].space_curr, 1); + fade_type = 0; + } + } else { + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 21); + while(WipeStatGet()) { + HuPrcVSleep(); + } + } + } + BoardPlayerPostTurnHookExec(i); + } + if(GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { + GWSystem.player_curr = 0; + if(BoardTurnNext()) { + BoardAudSeqFadeOut(0, 500); + BoardKill(); + HuPrcEnd(); + HuPrcSleep(-1); + } + } else { + _SetFlag(FLAG_ID_MAKE(1, 28)); + _SetFlag(FLAG_ID_MAKE(1, 14)); + BoardPauseDisableSet(1); + _ClearFlag(FLAG_ID_MAKE(1, 9)); + if(_CheckFlag(FLAG_ID_MAKE(2, 0)) || _CheckFlag(FLAG_ID_MAKE(1, 11)) ) { + for(i=0; i<4; i++) { + GWPlayer[i].color = 0; + } + GWSystem.player_curr = (GWSystem.player_curr+1)&3; + } else { + BoardMGSetupExec(); + HuPrcSleep(-1); + } + } + } while(1); } s32 BoardTurnNext(void) { - s32 i; - for(i=0; i<4; i++) { - GWPlayer[i].color = 0; - } - GWSystem.turn++; - if(GWSystem.turn > GWSystem.max_turn) { - return 1; - } else { - return 0; - } + s32 i; + for(i=0; i<4; i++) { + GWPlayer[i].color = 0; + } + GWSystem.turn++; + if(GWSystem.turn > GWSystem.max_turn) { + return 1; + } else { + return 0; + } } static s32 ExecTurnStart(void) { - s32 player; - s32 space; - if(!BoardStartCheck()) { - return 0; - } - player = GWSystem.player_curr; - space = GWPlayer[player].space_curr; - if(_CheckFlag(FLAG_ID_MAKE(1, 5))) { - BoardFortuneExec(player, space); - _ClearFlag(FLAG_ID_MAKE(1, 5)); - } else if(_CheckFlag(FLAG_ID_MAKE(1, 4))) { - BoardMusStartBoard(); - BoardBattleExec(player, space); - _ClearFlag(FLAG_ID_MAKE(1, 4)); - } else if(_CheckFlag(FLAG_ID_MAKE(1, 3))) { - BoardBowserExec(player, space); - _ClearFlag(FLAG_ID_MAKE(1, 3)); - } else if(_CheckFlag(FLAG_ID_MAKE(1, 2))) { - s32 turn_end = 0; - BoardCameraMoveSet(0); - BoardCameraViewSet(2); - BoardCameraMotionWait(); - turn_end = BoardTurnNext(); - if(turn_end) { - BoardKill(); - HuPrcEnd(); - } - _ClearFlag(FLAG_ID_MAKE(1, 2)); - return 0; - } else if(_CheckFlag(FLAG_ID_MAKE(1, 6))) { - boardTurnStartFunc(player, space); - return 1; - } - BoardPlayerZoomRestore(player); - return 1; + s32 player; + s32 space; + if(!BoardStartCheck()) { + return 0; + } + player = GWSystem.player_curr; + space = GWPlayer[player].space_curr; + if(_CheckFlag(FLAG_ID_MAKE(1, 5))) { + BoardFortuneExec(player, space); + _ClearFlag(FLAG_ID_MAKE(1, 5)); + } else if(_CheckFlag(FLAG_ID_MAKE(1, 4))) { + BoardMusStartBoard(); + BoardBattleExec(player, space); + _ClearFlag(FLAG_ID_MAKE(1, 4)); + } else if(_CheckFlag(FLAG_ID_MAKE(1, 3))) { + BoardBowserExec(player, space); + _ClearFlag(FLAG_ID_MAKE(1, 3)); + } else if(_CheckFlag(FLAG_ID_MAKE(1, 2))) { + s32 turn_end = 0; + BoardCameraMoveSet(0); + BoardCameraViewSet(2); + BoardCameraMotionWait(); + turn_end = BoardTurnNext(); + if(turn_end) { + BoardKill(); + HuPrcEnd(); + } + _ClearFlag(FLAG_ID_MAKE(1, 2)); + return 0; + } else if(_CheckFlag(FLAG_ID_MAKE(1, 6))) { + boardTurnStartFunc(player, space); + return 1; + } + BoardPlayerZoomRestore(player); + return 1; } void BoardNextOvlSet(OverlayID overlay) { - nextOvl = overlay; - BoardAudSeqFadeOut(0, 1000); - BoardKill(); + nextOvl = overlay; + BoardAudSeqFadeOut(0, 1000); + BoardKill(); } s32 BoardStartCheck(void) { - if(_CheckFlag(FLAG_ID_MAKE(1, 2)) || _CheckFlag(FLAG_ID_MAKE(1, 3)) || _CheckFlag(FLAG_ID_MAKE(1, 4)) || _CheckFlag(FLAG_ID_MAKE(1, 5)) || _CheckFlag(FLAG_ID_MAKE(1, 6))) { - return 1; - } else { - return 0; - } + if(_CheckFlag(FLAG_ID_MAKE(1, 2)) || _CheckFlag(FLAG_ID_MAKE(1, 3)) || _CheckFlag(FLAG_ID_MAKE(1, 4)) || _CheckFlag(FLAG_ID_MAKE(1, 5)) || _CheckFlag(FLAG_ID_MAKE(1, 6))) { + return 1; + } else { + return 0; + } } static void CreateBoard(void) { - s32 guest_status; - - GWSystem.mg_next = -1; - if(!GWGameStat.field10E_bit5 && GWMGListGet() == 2) { - GWMGListSet(0); - } - GWMessSpeedSet(GWMessSpeedGet()); - if(GWMGExplainGet()) { - _SetFlag(FLAG_ID_MAKE(0, 11)); - } else { - _ClearFlag(FLAG_ID_MAKE(0, 11)); - } - if(!BoardStartCheck()) { - _ClearFlag(FLAG_ID_MAKE(1, 2)); - _ClearFlag(FLAG_ID_MAKE(1, 3)); - _ClearFlag(FLAG_ID_MAKE(1, 4)); - _ClearFlag(FLAG_ID_MAKE(1, 5)); - _ClearFlag(FLAG_ID_MAKE(1, 6)); - } - _ClearFlag(FLAG_ID_MAKE(1, 8)); - if(!BoardStartCheck()) { - GWSystem.lucky_value = 1; - } - guest_status = BoardDataDirReadAsync(DATADIR_BGUEST); - if(guest_status != -1) { - BoardDataAsyncWait(guest_status); - } - BoardAudSeqClear(); - BoardModelInit(); - BoardRandInit(); - BoardWinInit(); - BoardPlayerModelInit(); - createFunc(); - BoardLightSetExec(); - BoardLotteryInit(); - BoardShopInit(); - BoardBooHouseCreate(); - BoardCameraInit(); - BoardStatusCreate(); - CharModelDataClose(-1); - BoardPlayerInit(); - if(GWSystem.last5_effect == 2) { - BoardSpaceTypeForce(2, 3); - } - if(GWSystem.last5_effect == 3) { - BoardSpaceTypeForce(2, 7); - } - BoardCameraMoveSet(0); - BoardCameraTargetPlayerSet(0); - BoardCameraViewSet(2); - BoardCameraMotionWait(); - BoardTauntInit(); - _SetFlag(FLAG_ID_MAKE(1, 14)); - HuDataDirClose(DATADIR_BKOOPASUIT); - HuDataDirClose(DATADIR_BBATTLE); - HuDataDirClose(DATADIR_BKOOPA); - HuDataDirClose(DATADIR_BKUJIYA); - HuDataDirClose(DATADIR_BYOKODORI); - HuDataDirClose(DATADIR_BPAUSE); - HuDataDirClose(DATADIR_BLAST5); - HuDataDirClose(DATADIR_EFFECT); - _SetFlag(FLAG_ID_MAKE(1, 16)); + s32 guest_status; + + GWSystem.mg_next = -1; + if(!GWGameStat.field10E_bit5 && GWMGListGet() == 2) { + GWMGListSet(0); + } + GWMessSpeedSet(GWMessSpeedGet()); + if(GWMGExplainGet()) { + _SetFlag(FLAG_ID_MAKE(0, 11)); + } else { + _ClearFlag(FLAG_ID_MAKE(0, 11)); + } + if(!BoardStartCheck()) { + _ClearFlag(FLAG_ID_MAKE(1, 2)); + _ClearFlag(FLAG_ID_MAKE(1, 3)); + _ClearFlag(FLAG_ID_MAKE(1, 4)); + _ClearFlag(FLAG_ID_MAKE(1, 5)); + _ClearFlag(FLAG_ID_MAKE(1, 6)); + } + _ClearFlag(FLAG_ID_MAKE(1, 8)); + if(!BoardStartCheck()) { + GWSystem.lucky_value = 1; + } + guest_status = BoardDataDirReadAsync(DATADIR_BGUEST); + if(guest_status != -1) { + BoardDataAsyncWait(guest_status); + } + BoardAudSeqClear(); + BoardModelInit(); + BoardRandInit(); + BoardWinInit(); + BoardPlayerModelInit(); + createFunc(); + BoardLightSetExec(); + BoardLotteryInit(); + BoardShopInit(); + BoardBooHouseCreate(); + BoardCameraInit(); + BoardStatusCreate(); + CharModelDataClose(-1); + BoardPlayerInit(); + if(GWSystem.last5_effect == 2) { + BoardSpaceTypeForce(2, 3); + } + if(GWSystem.last5_effect == 3) { + BoardSpaceTypeForce(2, 7); + } + BoardCameraMoveSet(0); + BoardCameraTargetPlayerSet(0); + BoardCameraViewSet(2); + BoardCameraMotionWait(); + BoardTauntInit(); + _SetFlag(FLAG_ID_MAKE(1, 14)); + HuDataDirClose(DATADIR_BKOOPASUIT); + HuDataDirClose(DATADIR_BBATTLE); + HuDataDirClose(DATADIR_BKOOPA); + HuDataDirClose(DATADIR_BKUJIYA); + HuDataDirClose(DATADIR_BYOKODORI); + HuDataDirClose(DATADIR_BPAUSE); + HuDataDirClose(DATADIR_BLAST5); + HuDataDirClose(DATADIR_EFFECT); + _SetFlag(FLAG_ID_MAKE(1, 16)); } static void DestroyBoard(void) { - s32 dir_table[] = { - DATADIR_W01, - DATADIR_W02, - DATADIR_W03, - DATADIR_W04, - DATADIR_W05, - DATADIR_W06, - DATADIR_W10, - DATADIR_W20, - DATADIR_W21 - }; - BoardTauntKill(); - BoardAudSeqFadeOutAll(); - HuAudAllStop(); - BoardRollKill(); - BoardStatusKill(); - BoardBooHouseKill(); - BoardShopKill(); - BoardLotteryKill(); - BoardSpaceDestroy(); - BoardPlayerModelKill(); - if(destroyFunc) { - destroyFunc(); - } - BoardModelKillAll(); - BoardWinKillAll(); - HuDataDirClose(dir_table[GWBoardGet()]); - HuDataDirClose(DATADIR_EFFECT); - HuDataDirClose(DATADIR_BGUEST); - HuDataDirClose(DATADIR_BKOOPASUIT); - HuDataDirClose(DATADIR_BBATTLE); - HuDataDirClose(DATADIR_BKOOPA); - HuDataDirClose(DATADIR_BKUJIYA); - HuDataDirClose(DATADIR_BYOKODORI); - HuDataDirClose(DATADIR_BOARD); - createFunc = destroyFunc = NULL; + s32 dir_table[] = { + DATADIR_W01, + DATADIR_W02, + DATADIR_W03, + DATADIR_W04, + DATADIR_W05, + DATADIR_W06, + DATADIR_W10, + DATADIR_W20, + DATADIR_W21 + }; + BoardTauntKill(); + BoardAudSeqFadeOutAll(); + HuAudAllStop(); + BoardRollKill(); + BoardStatusKill(); + BoardBooHouseKill(); + BoardShopKill(); + BoardLotteryKill(); + BoardSpaceDestroy(); + BoardPlayerModelKill(); + if(destroyFunc) { + destroyFunc(); + } + BoardModelKillAll(); + BoardWinKillAll(); + HuDataDirClose(dir_table[GWBoardGet()]); + HuDataDirClose(DATADIR_EFFECT); + HuDataDirClose(DATADIR_BGUEST); + HuDataDirClose(DATADIR_BKOOPASUIT); + HuDataDirClose(DATADIR_BBATTLE); + HuDataDirClose(DATADIR_BKOOPA); + HuDataDirClose(DATADIR_BKUJIYA); + HuDataDirClose(DATADIR_BYOKODORI); + HuDataDirClose(DATADIR_BOARD); + createFunc = destroyFunc = NULL; } void BoardLightHookSet(BoardLightHook set, BoardLightHook reset) { - boardLightSetHook = set; - boardLightResetHook = reset; + boardLightSetHook = set; + boardLightResetHook = reset; } void BoardLightSetExec(void) { - Hu3DBGColorSet(0, 0, 0); - if(boardLightSetHook) { - boardLightSetHook(); - } + Hu3DBGColorSet(0, 0, 0); + if(boardLightSetHook) { + boardLightSetHook(); + } } void BoardLightResetExec(void) { - if(boardLightResetHook) { - boardLightResetHook(); - } - Hu3DBGColorSet(0, 0, 0); - Hu3DFogClear(); - Hu3DReflectNoSet(0); + if(boardLightResetHook) { + boardLightResetHook(); + } + Hu3DBGColorSet(0, 0, 0); + Hu3DFogClear(); + Hu3DReflectNoSet(0); } //Fixes order of boardCamera and cameraBackup static BoardCameraData *BoardCameraGet(void) { - return &boardCamera; + return &boardCamera; } void BoardCameraBackup(void) { - cameraUseBackup = TRUE; - memcpy(&cameraBackup, &boardCamera, sizeof(BoardCameraData)); + cameraUseBackup = TRUE; + memcpy(&cameraBackup, &boardCamera, sizeof(BoardCameraData)); } void BoardCameraRestore(void) { - if(cameraUseBackup) { - memcpy(&boardCamera, &cameraBackup, sizeof(BoardCameraData)); - cameraUseBackup = FALSE; - } + if(cameraUseBackup) { + memcpy(&boardCamera, &cameraBackup, sizeof(BoardCameraData)); + cameraUseBackup = FALSE; + } } void BoardCameraScissorSet(s32 x, s32 y, s32 w, s32 h) { - BoardCameraData *camera = &boardCamera; - Hu3DCameraScissorSet(camera->mask, x, y, w, h); + BoardCameraData *camera = &boardCamera; + Hu3DCameraScissorSet(camera->mask, x, y, w, h); } void BoardCameraViewSet(s32 type) { - BoardCameraData *camera = &boardCamera; - BoardFocusData *focus; - float size; - if(!cameraObj) { - return; - } - focus = &camera->focus; - if(type == 0) { - focus->view_type = 0; - return; - } - OSs16tof32(&camViewTbl[type].fov, &focus->fov_end); - focus->fov_start = camera->fov; - OSs16tof32(&camViewTbl[type].zoom, &focus->zoom_end); - focus->zoom_start = camera->zoom; - OSs16tof32(&camViewTbl[type].x_rot, &focus->rot_end.x); - focus->rot_end.y = 0; - focus->rot_end.z = 0; - focus->rot_start = camera->rot; - focus->target_start = camera->target; - if(BoardPlayerSizeGet(GWSystem.player_curr) == 2 || GWPlayer[GWSystem.player_curr].bowser_suit) { - focus->zoom_end += 400.0f; - size = 2.5f; - } else { - size = 1.0f; - } - BoardCameraTargetModelSet(BoardPlayerModelGet(GWSystem.player_curr)); - BoardPlayerPosGet(GWSystem.player_curr, &focus->target_end); - BoardCameraOffsetSet(0.0f, 100.0f*size, 0.0f); - focus->target_end.y += 100.0f*size; - _SetFlag(FLAG_ID_MAKE(1, 21)); - focus->view_type = type; - focus->time = 0; - if(camera->moving) { - focus->max_time = 21; - } else { - focus->max_time = 1; - } + BoardCameraData *camera = &boardCamera; + BoardFocusData *focus; + float size; + if(!cameraObj) { + return; + } + focus = &camera->focus; + if(type == 0) { + focus->view_type = 0; + return; + } + OSs16tof32(&camViewTbl[type].fov, &focus->fov_end); + focus->fov_start = camera->fov; + OSs16tof32(&camViewTbl[type].zoom, &focus->zoom_end); + focus->zoom_start = camera->zoom; + OSs16tof32(&camViewTbl[type].x_rot, &focus->rot_end.x); + focus->rot_end.y = 0; + focus->rot_end.z = 0; + focus->rot_start = camera->rot; + focus->target_start = camera->target; + if(BoardPlayerSizeGet(GWSystem.player_curr) == 2 || GWPlayer[GWSystem.player_curr].bowser_suit) { + focus->zoom_end += 400.0f; + size = 2.5f; + } else { + size = 1.0f; + } + BoardCameraTargetModelSet(BoardPlayerModelGet(GWSystem.player_curr)); + BoardPlayerPosGet(GWSystem.player_curr, &focus->target_end); + BoardCameraOffsetSet(0.0f, 100.0f*size, 0.0f); + focus->target_end.y += 100.0f*size; + _SetFlag(FLAG_ID_MAKE(1, 21)); + focus->view_type = type; + focus->time = 0; + if(camera->moving) { + focus->max_time = 21; + } else { + focus->max_time = 1; + } } s32 BoardCameraPosGet(Vec *dst) { - BoardCameraData *camera; - if(!dst) { - return -1; - } - camera = &boardCamera; - *dst = camera->pos; - return 0; + BoardCameraData *camera; + if(!dst) { + return -1; + } + camera = &boardCamera; + *dst = camera->pos; + return 0; } s32 BoardCameraTargetGet(Vec *dst) { - BoardCameraData *camera; - if(!dst) { - return -1; - } - camera = &boardCamera; - *dst = camera->target; - return 0; + BoardCameraData *camera; + if(!dst) { + return -1; + } + camera = &boardCamera; + *dst = camera->target; + return 0; } s32 BoardCameraRotGet(Vec *dst) { - BoardCameraData *camera; - if(!dst) { - return -1; - } - camera = &boardCamera; - *dst = camera->rot; - return 0; + BoardCameraData *camera; + if(!dst) { + return -1; + } + camera = &boardCamera; + *dst = camera->rot; + return 0; } float BoardCameraZoomGet() { - BoardCameraData *camera; - camera = &boardCamera; - return camera->zoom; + BoardCameraData *camera; + camera = &boardCamera; + return camera->zoom; } s32 BoardCameraDirGet(Vec *dst) { - BoardCameraData *camera; - if(!dst) { - return -1; - } - camera = &boardCamera; - if(!camera) { - return -1; - } - VECSubtract(&camera->target, &camera->pos, dst); - if(dst->x != 0 || dst->y != 0 || dst->z != 0) { - VECNormalize(dst, dst); - } - return 0; + BoardCameraData *camera; + if(!dst) { + return -1; + } + camera = &boardCamera; + if(!camera) { + return -1; + } + VECSubtract(&camera->target, &camera->pos, dst); + if(dst->x != 0 || dst->y != 0 || dst->z != 0) { + VECNormalize(dst, dst); + } + return 0; } s32 BoardCameraPointDirGet(Vec *point, Vec *dst) { - BoardCameraData *camera; - if(!dst || !point) { - return -1; - } - camera = &boardCamera; - if(!camera) { - return -1; - } - VECSubtract(point, &camera->pos, dst); - if(dst->x != 0 || dst->y != 0 || dst->z != 0) { - VECNormalize(dst, dst); - } - return 0; + BoardCameraData *camera; + if(!dst || !point) { + return -1; + } + camera = &boardCamera; + if(!camera) { + return -1; + } + VECSubtract(point, &camera->pos, dst); + if(dst->x != 0 || dst->y != 0 || dst->z != 0) { + VECNormalize(dst, dst); + } + return 0; } void BoardCameraMaskSet(u16 mask) { - BoardCameraData *camera = &boardCamera; - if(!camera) { - return; - } - camera->mask = mask; + BoardCameraData *camera = &boardCamera; + if(!camera) { + return; + } + camera->mask = mask; } void BoardCameraMoveSet(s32 move) { - BoardCameraData *camera = &boardCamera; - if(!camera) { - return; - } - if(!move) { - camera->moving = 0; - } else { - camera->moving = 1; - } + BoardCameraData *camera = &boardCamera; + if(!camera) { + return; + } + if(!move) { + camera->moving = 0; + } else { + camera->moving = 1; + } } void BoardCameraOffsetSet(float x, float y, float z) { - BoardCameraData *camera = &boardCamera; - if(!camera) { - return; - } - camera->offset.x = x; - camera->offset.y = y; - camera->offset.z = z; + BoardCameraData *camera = &boardCamera; + if(!camera) { + return; + } + camera->offset.x = x; + camera->offset.y = y; + camera->offset.z = z; } void BoardCameraTargetPlayerSet(s32 player) { - PlayerState *player_ptr = BoardPlayerGet(player); - if(!player_ptr) { - BoardCameraTargetModelSet(-1); - return; - } - BoardCameraTargetModelSet(BoardPlayerModelGet(player)); - BoardCameraOffsetSet(0, 100, 0); + PlayerState *player_ptr = BoardPlayerGet(player); + if(!player_ptr) { + BoardCameraTargetModelSet(-1); + return; + } + BoardCameraTargetModelSet(BoardPlayerModelGet(player)); + BoardCameraOffsetSet(0, 100, 0); } void BoardCameraTargetModelSet(s16 model) { - BoardCameraData *camera = &boardCamera; - if(!camera) { - return; - } - camera->target_mdl = model; - camera->target_space = -1; - camera->offset.x = camera->offset.y = camera->offset.z = 0; + BoardCameraData *camera = &boardCamera; + if(!camera) { + return; + } + camera->target_mdl = model; + camera->target_space = -1; + camera->offset.x = camera->offset.y = camera->offset.z = 0; } void BoardCameraTargetSpaceSet(s32 space) { - BoardCameraData *camera = &boardCamera; - if(!camera) { - return; - } - camera->target_mdl = -1; - camera->target_space = space; - camera->offset.x = camera->offset.y = camera->offset.z = 0; + BoardCameraData *camera = &boardCamera; + if(!camera) { + return; + } + camera->target_mdl = -1; + camera->target_space = space; + camera->offset.x = camera->offset.y = camera->offset.z = 0; } void BoardCameraPosCalcFuncSet(BoardCameraPosCalcFunc func) { - BoardCameraData *camera = &boardCamera; - if(!camera) { - return; - } - camera->pos_calc = func; + BoardCameraData *camera = &boardCamera; + if(!camera) { + return; + } + camera->pos_calc = func; } void BoardCameraQuakeSet(s32 duration, float strength) { - BoardCameraData *camera = &boardCamera; - if(!camera) { - return; - } - camera->quaking = 1; - camera->quake_strength = strength; - camera->quake_timer = duration; + BoardCameraData *camera = &boardCamera; + if(!camera) { + return; + } + camera->quaking = 1; + camera->quake_strength = strength; + camera->quake_timer = duration; } void BoardCameraQuakeReset() { - BoardCameraData *camera = &boardCamera; - camera->quaking = 0; - camera->quake_strength = 0; - camera->quake_timer = 0; + BoardCameraData *camera = &boardCamera; + camera->quaking = 0; + camera->quake_strength = 0; + camera->quake_timer = 0; } void BoardCameraTargetSet(float x, float y, float z) { - BoardCameraData *camera = &boardCamera; - camera->target.x = x; - camera->target.y = y; - camera->target.z = z; + BoardCameraData *camera = &boardCamera; + camera->target.x = x; + camera->target.y = y; + camera->target.z = z; } void BoardCameraPosSet(float x, float y, float z) { - BoardCameraData *camera = &boardCamera; - camera->pos.x = x; - camera->pos.y = y; - camera->pos.z = z; + BoardCameraData *camera = &boardCamera; + camera->pos.x = x; + camera->pos.y = y; + camera->pos.z = z; } void BoardCameraXRotZoomSet(float zoom, float x_rot) { - BoardCameraData *camera = &boardCamera; - camera->zoom = zoom; - camera->rot.x = x_rot; + BoardCameraData *camera = &boardCamera; + camera->zoom = zoom; + camera->rot.x = x_rot; } void BoardCameraZoomSet(float zoom) { - BoardCameraData *camera = &boardCamera; - camera->zoom = zoom; + BoardCameraData *camera = &boardCamera; + camera->zoom = zoom; } void BoardCameraRotSet(float x, float y) { - BoardCameraData *camera = &boardCamera; - camera->rot.x = x; - camera->rot.y = y; + BoardCameraData *camera = &boardCamera; + camera->rot.x = x; + camera->rot.y = y; } void BoardCameraNearFarSet(float near, float far) { - BoardCameraData *camera = &boardCamera; - camera->near = near; - camera->far = far; + BoardCameraData *camera = &boardCamera; + camera->near = near; + camera->far = far; } void BoardCameraNearFarGet(float *near, float *far) { - BoardCameraData *camera = &boardCamera; - if(near) { - *near = camera->near; - } - if(far) { - *far = camera->far; - } + BoardCameraData *camera = &boardCamera; + if(near) { + *near = camera->near; + } + if(far) { + *far = camera->far; + } } void BoardCameraMotionStart(s16 model_target, Vec *rot_target, float zoom_target, float fov_target) { - BoardCameraMotionStartEx(model_target, rot_target, NULL, zoom_target, fov_target, 21); + BoardCameraMotionStartEx(model_target, rot_target, NULL, zoom_target, fov_target, 21); } void BoardCameraMotionStartEx(s16 model_target, Vec *rot_target, Vec *offset_end, float zoom_target, float fov_target, s16 max_time) { - BoardCameraData *camera = &boardCamera; - BoardFocusData *focus; - if(!cameraObj) { - return; - } - focus = &camera->focus; - focus->fov_start = camera->fov; - focus->zoom_start = camera->zoom; - focus->rot_start = camera->rot; - focus->target_start = camera->target; - if(fov_target == -1) { - focus->fov_end = focus->fov_start; - } else { - focus->fov_end = fov_target; - } - if(zoom_target == -1) { - focus->zoom_end = focus->zoom_start; - } else { - focus->zoom_end = zoom_target; - } - if(!rot_target) { - focus->rot_end = focus->rot_start; - } else { - focus->rot_end = *rot_target; - } - if(model_target == -1) { - focus->target_end = focus->target_start; - } else { - BoardCameraTargetModelSet(model_target); - BoardModelPosGet(model_target, &focus->target_end); - } - if(offset_end) { - BoardCameraOffsetSet(offset_end->x, offset_end->y, offset_end->z); - VECAdd(offset_end, &focus->target_end, &focus->target_end); - } - _SetFlag(FLAG_ID_MAKE(1, 21)); - focus->view_type = 5; - focus->time = 0; - if(max_time < 0) { - max_time = 1; - } - focus->max_time = max_time; + BoardCameraData *camera = &boardCamera; + BoardFocusData *focus; + if(!cameraObj) { + return; + } + focus = &camera->focus; + focus->fov_start = camera->fov; + focus->zoom_start = camera->zoom; + focus->rot_start = camera->rot; + focus->target_start = camera->target; + if(fov_target == -1) { + focus->fov_end = focus->fov_start; + } else { + focus->fov_end = fov_target; + } + if(zoom_target == -1) { + focus->zoom_end = focus->zoom_start; + } else { + focus->zoom_end = zoom_target; + } + if(!rot_target) { + focus->rot_end = focus->rot_start; + } else { + focus->rot_end = *rot_target; + } + if(model_target == -1) { + focus->target_end = focus->target_start; + } else { + BoardCameraTargetModelSet(model_target); + BoardModelPosGet(model_target, &focus->target_end); + } + if(offset_end) { + BoardCameraOffsetSet(offset_end->x, offset_end->y, offset_end->z); + VECAdd(offset_end, &focus->target_end, &focus->target_end); + } + _SetFlag(FLAG_ID_MAKE(1, 21)); + focus->view_type = 5; + focus->time = 0; + if(max_time < 0) { + max_time = 1; + } + focus->max_time = max_time; } void BoardCameraFovSet(float fov) { - BoardCameraData *camera = &boardCamera; - camera->fov = fov; + BoardCameraData *camera = &boardCamera; + camera->fov = fov; } s32 BoardCameraCullCheck(Vec *point, float radius) { - Vec dir; - Vec pos; - float dist; - float dot; - BoardCameraData *camera = &boardCamera; - if(!camera->hide_all) { - return 0; - } - BoardCameraDirGet(&dir); - VECSubtract(point, &camera->pos, &pos); - dist = sqrtf((pos.x*pos.x)+(pos.y*pos.y)+(pos.z*pos.z)); - if(25000 < dist-(radius*2.0f)) { - return 0; - } - BoardCameraPointDirGet(point, &pos); - dot = VECDotProduct(&dir, &pos); - if(BOARD_FABS(dot) < cos((camera->fov*M_PI)/180)) { - return 0; - } else { - return 1; - } + Vec dir; + Vec pos; + float dist; + float dot; + BoardCameraData *camera = &boardCamera; + if(!camera->hide_all) { + return 0; + } + BoardCameraDirGet(&dir); + VECSubtract(point, &camera->pos, &pos); + dist = sqrtf((pos.x*pos.x)+(pos.y*pos.y)+(pos.z*pos.z)); + if(25000 < dist-(radius*2.0f)) { + return 0; + } + BoardCameraPointDirGet(point, &pos); + dot = VECDotProduct(&dir, &pos); + if(BOARD_FABS(dot) < cosd(camera->fov)) { + return 0; + } else { + return 1; + } } s32 BoardCameraMotionIsDone(void) { - return (_CheckFlag(FLAG_ID_MAKE(1, 21))) ? 0 : 1; + return (_CheckFlag(FLAG_ID_MAKE(1, 21))) ? 0 : 1; } void BoardCameraMotionWait(void) { - while(!BoardCameraMotionIsDone()) { - HuPrcVSleep(); - } - HuPrcVSleep(); + while(!BoardCameraMotionIsDone()) { + HuPrcVSleep(); + } + HuPrcVSleep(); } void BoardCameraInit(void) { - BoardCameraData *camera; - cameraUseBackup = FALSE; - memset(&cameraBackup, 0, sizeof(BoardCameraData)); - memset(&boardCamera, 0, sizeof(BoardCameraData)); - camera = &boardCamera; - camera->fov = 25; - camera->near = 100; - camera->far = 13000; - camera->aspect = HU_DISP_ASPECT; - camera->viewport_x = 0; - camera->viewport_y = 0; - camera->viewport_h = 480; - camera->viewport_w = 640; - camera->viewport_near = 0; - camera->viewport_far = 1; - camera->up.y = 1; - camera->moving = 0; - camera->quaking = 0; - camera->quake_timer = 0; - camera->pos.x = 0; - camera->pos.y = 5000; - camera->pos.z = 5000; - camera->offset.x = 0; - camera->offset.y = 0; - camera->offset.z = 0; - camera->pos_calc = NULL; - BoardSpaceFlagPosGet(0, 0x80000000, &camera->target); - camera->rot.x = camViewTbl[1].x_rot; - camera->zoom = camViewTbl[1].zoom; - camera->hide_all = 1; - camera->mask = 1; - Hu3DCameraCreate(1); - Hu3DCameraScissorSet(1, camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h); - Hu3DCameraScissorSet(2, 0, 0, 0, 0); - Hu3DCameraPerspectiveSet(2, -1, 100, 13000, 1.2); - cameraObj = omAddObjEx(boardObjMan, 32258, 0, 0, -1, UpdateCamera); + BoardCameraData *camera; + cameraUseBackup = FALSE; + memset(&cameraBackup, 0, sizeof(BoardCameraData)); + memset(&boardCamera, 0, sizeof(BoardCameraData)); + camera = &boardCamera; + camera->fov = 25; + camera->near = 100; + camera->far = 13000; + camera->aspect = HU_DISP_ASPECT; + camera->viewport_x = 0; + camera->viewport_y = 0; + camera->viewport_h = 480; + camera->viewport_w = 640; + camera->viewport_near = 0; + camera->viewport_far = 1; + camera->up.y = 1; + camera->moving = 0; + camera->quaking = 0; + camera->quake_timer = 0; + camera->pos.x = 0; + camera->pos.y = 5000; + camera->pos.z = 5000; + camera->offset.x = 0; + camera->offset.y = 0; + camera->offset.z = 0; + camera->pos_calc = NULL; + BoardSpaceFlagPosGet(0, 0x80000000, &camera->target); + camera->rot.x = camViewTbl[1].x_rot; + camera->zoom = camViewTbl[1].zoom; + camera->hide_all = 1; + camera->mask = 1; + Hu3DCameraCreate(1); + Hu3DCameraScissorSet(1, camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h); + Hu3DCameraScissorSet(2, 0, 0, 0, 0); + Hu3DCameraPerspectiveSet(2, -1, 100, 13000, 1.2); + cameraObj = omAddObjEx(boardObjMan, 32258, 0, 0, -1, UpdateCamera); } static inline void CalcCameraView(void) { - BoardCameraData *camera = &boardCamera; - CalcCameraTarget(camera); - CalcCameraPos(camera); + BoardCameraData *camera = &boardCamera; + CalcCameraTarget(camera); + CalcCameraPos(camera); } static void UpdateCamera(omObjData *object) { - BoardCameraData *camera; - Vec *target; - float x, y, z; - if(BoardIsKill()) { - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - CalcCameraView(); - camera = &boardCamera; - Hu3DCameraPerspectiveSet(camera->mask, camera->fov, camera->near, camera->far, camera->aspect); - Hu3DCameraViewportSet(camera->mask, camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h, camera->viewport_near, camera->viewport_far); - target = &camera->target; - if(camera->pos_calc) { - camera->pos_calc(camera); - } else { - - x = camera->rot.x; - y = camera->rot.y; - camera->pos.x = target->x+(sin((y*M_PI)/180.0)*cos((x*M_PI)/180.0)*camera->zoom); - camera->pos.y = target->y+(-sin((x*M_PI)/180.0)*camera->zoom); - camera->pos.z = target->z+(cos((y*M_PI)/180.0)*cos((x*M_PI)/180.0)*camera->zoom); - camera->up.x = sin((y*M_PI)/180.0)*sin((x*M_PI)/180.0); - camera->up.y = cos((x*M_PI)/180.0); - camera->up.z = cos((y*M_PI)/180.0)*sin((x*M_PI)/180.0); - if(camera->quaking) { - x = BoardRandFloat(); - y = BoardRandFloat(); - z = BoardRandFloat(); - camera->pos.x += (x-0.5f)*camera->quake_strength; - camera->pos.y += (y-0.5f)*camera->quake_strength; - camera->pos.z += (z-0.5f)*camera->quake_strength; - if(--camera->quake_timer <= 0) { - camera->quaking = 0; - camera->quake_timer = 0; - camera->quake_strength = 0; - } - } - } - Hu3DCameraPosSetV(camera->mask, &camera->pos, &camera->up, target); + BoardCameraData *camera; + Vec *target; + float x, y, z; + if(BoardIsKill()) { + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + CalcCameraView(); + camera = &boardCamera; + Hu3DCameraPerspectiveSet(camera->mask, camera->fov, camera->near, camera->far, camera->aspect); + Hu3DCameraViewportSet(camera->mask, camera->viewport_x, camera->viewport_y, camera->viewport_w, camera->viewport_h, camera->viewport_near, camera->viewport_far); + target = &camera->target; + if(camera->pos_calc) { + camera->pos_calc(camera); + } else { + + x = camera->rot.x; + y = camera->rot.y; + camera->pos.x = target->x+(sind(y)*cosd(x)*camera->zoom); + camera->pos.y = target->y+(-sind(x)*camera->zoom); + camera->pos.z = target->z+(cosd(y)*cosd(x)*camera->zoom); + camera->up.x = sind(y)*sind(x); + camera->up.y = cosd(x); + camera->up.z = cosd(y)*sind(x); + if(camera->quaking) { + x = BoardRandFloat(); + y = BoardRandFloat(); + z = BoardRandFloat(); + camera->pos.x += (x-0.5f)*camera->quake_strength; + camera->pos.y += (y-0.5f)*camera->quake_strength; + camera->pos.z += (z-0.5f)*camera->quake_strength; + if(--camera->quake_timer <= 0) { + camera->quaking = 0; + camera->quake_timer = 0; + camera->quake_strength = 0; + } + } + } + Hu3DCameraPosSetV(camera->mask, &camera->pos, &camera->up, target); } static void CalcCameraTarget(BoardCameraData *camera) { - Vec offset; - Vec pos = { 0, 0, 0 }; - BoardFocusData *focus = &camera->focus; - if(camera->target_mdl != -1) { - BoardModelPosGet(camera->target_mdl, &pos); - } else { - if(camera->target_space != -1) { - BoardSpacePosGet(0, camera->target_space, &pos); - } else { - return; - } - } - VECAdd(&camera->offset, &pos, &pos); - VECSubtract(&pos, &camera->target, &offset); - if(camera->moving) { - VECScale(&offset, &offset, 0.15f); - } - VECAdd(&offset, &camera->target, &camera->target); + Vec offset; + Vec pos = { 0, 0, 0 }; + BoardFocusData *focus = &camera->focus; + if(camera->target_mdl != -1) { + BoardModelPosGet(camera->target_mdl, &pos); + } else { + if(camera->target_space != -1) { + BoardSpacePosGet(0, camera->target_space, &pos); + } else { + return; + } + } + VECAdd(&camera->offset, &pos, &pos); + VECSubtract(&pos, &camera->target, &offset); + if(camera->moving) { + VECScale(&offset, &offset, 0.15f); + } + VECAdd(&offset, &camera->target, &camera->target); } #define CAM_LERP(t, x1, x2, out) \ { \ - float result; \ - float offset; \ - float unit_scale; \ - float lerp_t; \ - lerp_x2 = x2; \ - lerp_x1 = x1; \ - lerp_t = t; \ - if(lerp_t2 == lerp_t1) { \ - result = lerp_x2; \ - } else { \ - unit_scale = (lerp_x1-lerp_x2)/((float)lerp_t1-(float)lerp_t2); \ - offset = lerp_x2-(unit_scale*lerp_t2); \ - result = offset+(unit_scale*lerp_t); \ - } \ - out = result; \ + float result; \ + float offset; \ + float unit_scale; \ + float lerp_t; \ + lerp_x2 = x2; \ + lerp_x1 = x1; \ + lerp_t = t; \ + if(lerp_t2 == lerp_t1) { \ + result = lerp_x2; \ + } else { \ + unit_scale = (lerp_x1-lerp_x2)/((float)lerp_t1-(float)lerp_t2); \ + offset = lerp_x2-(unit_scale*lerp_t2); \ + result = offset+(unit_scale*lerp_t); \ + } \ + out = result; \ } #define CAM_LERP_VEC(t, x1, x2, out) \ @@ -1267,270 +1267,270 @@ CAM_LERP(t, (x1).z, (x2).z, (out).z) static void CalcCameraPos(BoardCameraData *camera) { - //These variables must be volatile to match - volatile u32 lerp_t1, lerp_t2; - volatile float lerp_x1, lerp_x2; - float time; - - BoardFocusData *focus = &camera->focus; - if(focus->time > focus->max_time) { - focus->view_type = 0; - _ClearFlag(FLAG_ID_MAKE(1, 21)); - return; - } - OSs16tof32(&focus->time, &time); - focus->time++; - lerp_t2 = focus->max_time; - lerp_t1 = 0; - CAM_LERP(time, focus->zoom_start, focus->zoom_end, camera->zoom) - CAM_LERP_VEC(time, focus->rot_start, focus->rot_end, camera->rot) - CAM_LERP(time, focus->fov_start, focus->fov_end, camera->fov) - CAM_LERP_VEC(time, focus->target_start, focus->target_end, camera->target) + //These variables must be volatile to match + volatile u32 lerp_t1, lerp_t2; + volatile float lerp_x1, lerp_x2; + float time; + + BoardFocusData *focus = &camera->focus; + if(focus->time > focus->max_time) { + focus->view_type = 0; + _ClearFlag(FLAG_ID_MAKE(1, 21)); + return; + } + OSs16tof32(&focus->time, &time); + focus->time++; + lerp_t2 = focus->max_time; + lerp_t1 = 0; + CAM_LERP(time, focus->zoom_start, focus->zoom_end, camera->zoom) + CAM_LERP_VEC(time, focus->rot_start, focus->rot_end, camera->rot) + CAM_LERP(time, focus->fov_start, focus->fov_end, camera->fov) + CAM_LERP_VEC(time, focus->target_start, focus->target_end, camera->target) } void BoardMGDoneFlagSet(s32 flag) { - if(flag) { - _SetFlag(FLAG_ID_MAKE(1, 20)); - } else { - _ClearFlag(FLAG_ID_MAKE(1, 20)); - } + if(flag) { + _SetFlag(FLAG_ID_MAKE(1, 20)); + } else { + _ClearFlag(FLAG_ID_MAKE(1, 20)); + } } s32 BoardMGDoneFlagGet() { - return (_CheckFlag(FLAG_ID_MAKE(1, 20))) ? 1 : 0; + return (_CheckFlag(FLAG_ID_MAKE(1, 20))) ? 1 : 0; } void BoardMGExit(void) { - s32 player = GWSystem.player_curr; - BoardPlayerMoveToAsync(player, GWPlayer[GWSystem.player_curr].space_curr); - BoardCameraTargetPlayerSet(player); - BoardCameraMoveSet(1); - BoardCameraViewSet(1); - _ClearFlag(FLAG_ID_MAKE(1, 19)); + s32 player = GWSystem.player_curr; + BoardPlayerMoveToAsync(player, GWPlayer[GWSystem.player_curr].space_curr); + BoardCameraTargetPlayerSet(player); + BoardCameraMoveSet(1); + BoardCameraViewSet(1); + _ClearFlag(FLAG_ID_MAKE(1, 19)); } static void KillBoardMG(omObjData *object) { - if(!BoardMGDoneFlagGet()) { - BoardEventFlagReset(); - omDelObjEx(HuPrcCurrentGet(), object); - } + if(!BoardMGDoneFlagGet()) { + BoardEventFlagReset(); + omDelObjEx(HuPrcCurrentGet(), object); + } } static void ExecBoardMG(omObjData *object) { - if(_CheckFlag(FLAG_ID_MAKE(1, 19))) { - return; - } - if(GWPlayer[GWSystem.player_curr].moving == 0) { - BoardPlayerMotionShiftSet(GWSystem.player_curr, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); - if(!_CheckFlag(FLAG_ID_MAKE(1, 21))) { - _SetFlag(FLAG_ID_MAKE(1, 20)); - object->func = KillBoardMG; - } - } + if(_CheckFlag(FLAG_ID_MAKE(1, 19))) { + return; + } + if(GWPlayer[GWSystem.player_curr].moving == 0) { + BoardPlayerMotionShiftSet(GWSystem.player_curr, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + if(!_CheckFlag(FLAG_ID_MAKE(1, 21))) { + _SetFlag(FLAG_ID_MAKE(1, 20)); + object->func = KillBoardMG; + } + } } void BoardMGCreate(s32 arg0) { - _SetFlag(FLAG_ID_MAKE(1, 19)); - _ClearFlag(FLAG_ID_MAKE(1, 20)); - GWSystem.unk_38 = arg0; - omAddObjEx(boardObjMan, 0x201, 0, 0, -1, ExecBoardMG); - BoardEventFlagSet(); - BoardSpaceWalkMiniEventExec(); + _SetFlag(FLAG_ID_MAKE(1, 19)); + _ClearFlag(FLAG_ID_MAKE(1, 20)); + GWSystem.unk_38 = arg0; + omAddObjEx(boardObjMan, 0x201, 0, 0, -1, ExecBoardMG); + BoardEventFlagSet(); + BoardSpaceWalkMiniEventExec(); } void BoardEventFlagSet(void) { - _SetFlag(FLAG_ID_MAKE(1, 18)); + _SetFlag(FLAG_ID_MAKE(1, 18)); } void BoardEventFlagReset(void) { - _ClearFlag(FLAG_ID_MAKE(1, 18)); + _ClearFlag(FLAG_ID_MAKE(1, 18)); } s32 BoardEventFlagGet(void) { - return _CheckFlag(FLAG_ID_MAKE(1, 18)) ? 1 : 0; + return _CheckFlag(FLAG_ID_MAKE(1, 18)) ? 1 : 0; } void BoardMTXCalcLookAt(Mtx dest, Vec *eye, Vec *up, Vec *target) { - Vec f, u, s; - f.x = eye->x-target->x; - f.y = eye->y-target->y; - f.z = eye->z-target->z; - VECNormalize(&f, &f); - VECCrossProduct(up, &f, &u); - VECNormalize(&u, &u); - VECCrossProduct(&f, &u, &s); - dest[0][0] = u.x; - dest[0][1] = u.y; - dest[0][2] = u.z; - dest[0][3] = 0; - dest[1][0] = s.x; - dest[1][1] = s.y; - dest[1][2] = s.z; - dest[1][3] = 0; - dest[2][0] = f.x; - dest[2][1] = f.y; - dest[2][2] = f.z; - dest[2][3] = 0; + Vec f, u, s; + f.x = eye->x-target->x; + f.y = eye->y-target->y; + f.z = eye->z-target->z; + VECNormalize(&f, &f); + VECCrossProduct(up, &f, &u); + VECNormalize(&u, &u); + VECCrossProduct(&f, &u, &s); + dest[0][0] = u.x; + dest[0][1] = u.y; + dest[0][2] = u.z; + dest[0][3] = 0; + dest[1][0] = s.x; + dest[1][1] = s.y; + dest[1][2] = s.z; + dest[1][3] = 0; + dest[2][0] = f.x; + dest[2][1] = f.y; + dest[2][2] = f.z; + dest[2][3] = 0; } float BoardArcSin(float value) { - float result; - s32 sign; - if(value < 0) { - sign = 1; - value = BOARD_FABS(value); - } else { - sign = 0; - } - if(value > 1.0f) { - return 0; - } - if(value <= (float)(M_PI/2)) { - result = atanf(value/sqrtf(1-(value*value))); - } else { - result = (float)(M_PI/2)-atanf(sqrtf(1-(value*value))/value); - } - if(sign) { - result = BOARD_FABS(result); - } - return result; + float result; + s32 sign; + if(value < 0) { + sign = 1; + value = BOARD_FABS(value); + } else { + sign = 0; + } + if(value > 1.0f) { + return 0; + } + if(value <= (float)(M_PI/2)) { + result = atanf(value/sqrtf(1-(value*value))); + } else { + result = (float)(M_PI/2)-atanf(sqrtf(1-(value*value))/value); + } + if(sign) { + result = BOARD_FABS(result); + } + return result; } float BoardArcCos(float value) { - if(BOARD_FABS(value) > 1) { - return 0; - } - return (float)(M_PI/2)-BoardArcSin(value); + if(BOARD_FABS(value) > 1) { + return 0; + } + return (float)(M_PI/2)-BoardArcSin(value); } void BoardRandInit(void) { - boardRandSeed = OSGetTime(); + boardRandSeed = OSGetTime(); } u32 BoardRand(void) { - boardRandSeed = (boardRandSeed*0x19660D)+(0x3C6EF35F); - return boardRandSeed; + boardRandSeed = (boardRandSeed*0x19660D)+(0x3C6EF35F); + return boardRandSeed; } u32 BoardRandMod(u32 value) { - return (BoardRand() & 0x7FFFFFFF)%value; + return (BoardRand() & 0x7FFFFFFF)%value; } float BoardRandFloat(void) { - float value; - *((u32 *)&value) = (BoardRand() & 0x7FFFFF)|0x3F800000; //Generate float from 1.0f to 2.0f - return value-1.0f; + float value; + *((u32 *)&value) = (BoardRand() & 0x7FFFFF)|0x3F800000; //Generate float from 1.0f to 2.0f + return value-1.0f; } float BoardVecDistXZCalc(Vec *vec1, Vec *vec2) { - float dx = vec1->x-vec2->x; - float dz = vec1->z-vec2->z; - return sqrtf((dx*dx)+(dz*dz)); + float dx = vec1->x-vec2->x; + float dz = vec1->z-vec2->z; + return sqrtf((dx*dx)+(dz*dz)); } s32 BoardVecMaxDistXZCheck(Vec *vec1, Vec *vec2, float max_dist) { - float dz = vec1->z-vec2->z; - float dx = vec1->x-vec2->x; - float dist = sqrtf((dx*dx)+(dz*dz)); - if(dist <= max_dist) { - return 1; - } else { - return 0; - } + float dz = vec1->z-vec2->z; + float dx = vec1->x-vec2->x; + float dist = sqrtf((dx*dx)+(dz*dz)); + if(dist <= max_dist) { + return 1; + } else { + return 0; + } } void BoardDAngleCalcVec(Vec *vec1) { - s32 i; - float *data = &vec1->x; - for(i=0; i<3; i++) { - while(*data > 180.0f) { - *data -= 360.0f; - } - while(*data < -180.0f) { - *data += 360.0f; - } - data++; - } + s32 i; + float *data = &vec1->x; + for(i=0; i<3; i++) { + while(*data > 180.0f) { + *data -= 360.0f; + } + while(*data < -180.0f) { + *data += 360.0f; + } + data++; + } } float BoardDAngleCalc(float value) { - while(value > 180.0f) { - value -= 360.0f; - } - while(value < -180.0f) { - value += 360.0f; - } - return value; + while(value > 180.0f) { + value -= 360.0f; + } + while(value < -180.0f) { + value += 360.0f; + } + return value; } s32 BoardDAngleCalcRange(float *value, float min, float range) { - float diff = min-(*value); - if(diff >= 180.0f) { - min -= 360.0f; - } - if(diff <= -180.0f) { - min += 360.0f; - } - if(min > *value) { - *value += range; - if(*value >= min) { - *value = BoardDAngleCalc(min); - return 1; - } - } else { - *value -= range; - if(*value <= min) { - *value = BoardDAngleCalc(min); - return 1; - } - } - *value = BoardDAngleCalc(*value); - return 0; + float diff = min-(*value); + if(diff >= 180.0f) { + min -= 360.0f; + } + if(diff <= -180.0f) { + min += 360.0f; + } + if(min > *value) { + *value += range; + if(*value >= min) { + *value = BoardDAngleCalc(min); + return 1; + } + } else { + *value -= range; + if(*value <= min) { + *value = BoardDAngleCalc(min); + return 1; + } + } + *value = BoardDAngleCalc(*value); + return 0; } s32 BoardVecMinDistCheck(Vec *vec1, Vec *vec2, float min_dist) { - Vec temp; - VECSubtract(vec1, vec2, &temp); - if(VECSquareMag(&temp) >= (min_dist*min_dist)) { - return 0; - } else { - return 1; - } + Vec temp; + VECSubtract(vec1, vec2, &temp); + if(VECSquareMag(&temp) >= (min_dist*min_dist)) { + return 0; + } else { + return 1; + } } typedef struct filter_work { - struct { - u8 kill : 1; - u8 paused : 1; - }; - u8 max_alpha; - s16 time; - s16 len; - s16 model; - GXColor color; - float speed; + struct { + u8 kill : 1; + u8 paused : 1; + }; + u8 max_alpha; + s16 time; + s16 len; + s16 model; + GXColor color; + float speed; } FilterWork; static void UpdateFilter(omObjData *object); @@ -1538,168 +1538,168 @@ static void DrawFilter(ModelData *model, Mtx matrix); void BoardFilterFadeOut(s16 len) { - FilterWork *work; - float speed; - if(!filterObj) { - return; - } - if(len <= 0) { - len = 1; - } - work = OM_GET_WORK_PTR(filterObj, FilterWork); - work->len = len; - OSs16tof32(&len, &speed); - work->speed = -(work->color.a)/speed; - work->paused = 0; - work->time = work->len; + FilterWork *work; + float speed; + if(!filterObj) { + return; + } + if(len <= 0) { + len = 1; + } + work = OM_GET_WORK_PTR(filterObj, FilterWork); + work->len = len; + OSs16tof32(&len, &speed); + work->speed = -(work->color.a)/speed; + work->paused = 0; + work->time = work->len; } void BoardFilterFadeInit(s16 len, u8 max_alpha) { - FilterWork *work; - if(filterObj) { - work = OM_GET_WORK_PTR(filterObj, FilterWork); - work->kill = 1; - while(filterObj) { - HuPrcVSleep(); - } - } - filterObj = omAddObjEx(boardObjMan, 32000, 0, 0, -1, UpdateFilter); - omSetStatBit(filterObj, OM_STAT_NOPAUSE|0x80); - if(len <= 0) { - len = 1; - } - work = OM_GET_WORK_PTR(filterObj, FilterWork); - work->kill = 0; - work->paused = 0; - work->color.r = 0; - work->color.g = 0; - work->color.b = 0; - work->color.a = 0; - work->max_alpha = max_alpha; - work->speed = (float)(max_alpha-work->color.a)/(float)len; - work->time = len; - work->len = len; - work->model = Hu3DHookFuncCreate(DrawFilter); - Hu3DModelLayerSet(work->model, 1); + FilterWork *work; + if(filterObj) { + work = OM_GET_WORK_PTR(filterObj, FilterWork); + work->kill = 1; + while(filterObj) { + HuPrcVSleep(); + } + } + filterObj = omAddObjEx(boardObjMan, 32000, 0, 0, -1, UpdateFilter); + omSetStatBit(filterObj, OM_STAT_NOPAUSE|0x80); + if(len <= 0) { + len = 1; + } + work = OM_GET_WORK_PTR(filterObj, FilterWork); + work->kill = 0; + work->paused = 0; + work->color.r = 0; + work->color.g = 0; + work->color.b = 0; + work->color.a = 0; + work->max_alpha = max_alpha; + work->speed = (float)(max_alpha-work->color.a)/(float)len; + work->time = len; + work->len = len; + work->model = Hu3DHookFuncCreate(DrawFilter); + Hu3DModelLayerSet(work->model, 1); } s32 BoardFilterFadePauseCheck(void) { - FilterWork *work; - if(!filterObj) { - return 1; - } - work = OM_GET_WORK_PTR(filterObj, FilterWork); - return (work->paused) ? 1 : 0; + FilterWork *work; + if(!filterObj) { + return 1; + } + work = OM_GET_WORK_PTR(filterObj, FilterWork); + return (work->paused) ? 1 : 0; } s32 BoardFilterFadeCheck(void) { - return (filterObj != NULL) ? 0 : 1; + return (filterObj != NULL) ? 0 : 1; } static void UpdateFilter(omObjData *object) { - float alpha; - FilterWork *work = OM_GET_WORK_PTR(object, FilterWork); - if(work->kill || BoardIsKill()) { - if(work->model != -1) { - Hu3DModelKill(work->model); - } - filterObj = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - if(work->paused) { - return; - } - OSu8tof32(&work->color.a, &alpha); - alpha += work->speed; - OSf32tou8(&alpha, &work->color.a); - if(work->time > 0) { - work->time--; - return; - } - if(work->speed > 0) { - work->paused = 1; - work->color.a = work->max_alpha; - } else { - work->kill = 1; - } + float alpha; + FilterWork *work = OM_GET_WORK_PTR(object, FilterWork); + if(work->kill || BoardIsKill()) { + if(work->model != -1) { + Hu3DModelKill(work->model); + } + filterObj = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + if(work->paused) { + return; + } + OSu8tof32(&work->color.a, &alpha); + alpha += work->speed; + OSf32tou8(&alpha, &work->color.a); + if(work->time > 0) { + work->time--; + return; + } + if(work->speed > 0) { + work->paused = 1; + work->color.a = work->max_alpha; + } else { + work->kill = 1; + } } static void DrawFilter(ModelData *model, Mtx matrix) { - static GXColor colorN = { 0xFF, 0xFF, 0xFF, 0xFF }; - Mtx44 proj; - Mtx modelview; - - float x1, x2, y1, y2; - FilterWork *work; - if(!filterObj) { - return; - } - work = OM_GET_WORK_PTR(filterObj, FilterWork); - x1 = 0.0f; - x2 = HU_FB_WIDTH; - y1 = 0.0f; - y2 = HU_FB_HEIGHT; - MTXOrtho(proj, y1, y2, x1, x2, 0, 10); - GXSetProjection(proj, GX_ORTHOGRAPHIC); - MTXIdentity(modelview); - GXLoadPosMtxImm(modelview, GX_PNMTX0); - GXSetCurrentMtx(GX_PNMTX0); - GXSetViewport(0, 0, x2, 1.0f+y2, 0, 1); - GXSetScissor(0, 0, x2, 1.0f+y2); - GXClearVtxDesc(); - GXSetChanMatColor(GX_COLOR0A0, work->color); - GXSetNumChans(1); - GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_NONE, GX_AF_NONE); - GXSetChanCtrl(GX_COLOR1A1, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_NONE, GX_AF_NONE); - GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); - GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); - GXSetNumTexGens(0); - GXSetNumTevStages(1); - GXSetVtxDesc(GX_VA_POS, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_U16, 0); - GXSetZMode(GX_TRUE, GX_ALWAYS, GX_FALSE); - GXSetAlphaUpdate(GX_FALSE); - GXSetColorUpdate(GX_TRUE); - GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); - GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); - GXBegin(GX_QUADS, GX_VTXFMT0, 4); - GXPosition2u16(x1, y1); - GXPosition2u16(x2, y1); - GXPosition2u16(x2, y2); - GXPosition2u16(x1, y2); - GXEnd(); - GXSetChanMatColor(GX_COLOR0A0, colorN); - + static GXColor colorN = { 0xFF, 0xFF, 0xFF, 0xFF }; + Mtx44 proj; + Mtx modelview; + + float x1, x2, y1, y2; + FilterWork *work; + if(!filterObj) { + return; + } + work = OM_GET_WORK_PTR(filterObj, FilterWork); + x1 = 0.0f; + x2 = HU_FB_WIDTH; + y1 = 0.0f; + y2 = HU_FB_HEIGHT; + MTXOrtho(proj, y1, y2, x1, x2, 0, 10); + GXSetProjection(proj, GX_ORTHOGRAPHIC); + MTXIdentity(modelview); + GXLoadPosMtxImm(modelview, GX_PNMTX0); + GXSetCurrentMtx(GX_PNMTX0); + GXSetViewport(0, 0, x2, 1.0f+y2, 0, 1); + GXSetScissor(0, 0, x2, 1.0f+y2); + GXClearVtxDesc(); + GXSetChanMatColor(GX_COLOR0A0, work->color); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_NONE, GX_AF_NONE); + GXSetChanCtrl(GX_COLOR1A1, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_NONE, GX_AF_NONE); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_PASSCLR); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_U16, 0); + GXSetZMode(GX_TRUE, GX_ALWAYS, GX_FALSE); + GXSetAlphaUpdate(GX_FALSE); + GXSetColorUpdate(GX_TRUE); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition2u16(x1, y1); + GXPosition2u16(x2, y1); + GXPosition2u16(x2, y2); + GXPosition2u16(x1, y2); + GXEnd(); + GXSetChanMatColor(GX_COLOR0A0, colorN); + } typedef struct confetti_particle { - s16 time; - u8 alpha; - u8 light_col; - Vec pos; - Vec rot; - Vec pos_vel; - Vec rot_vel; + s16 time; + u8 alpha; + u8 light_col; + Vec pos; + Vec rot; + Vec pos_vel; + Vec rot_vel; } ConfettiParticle; typedef struct confetti_work { - struct { - u8 kill : 1; - u8 paused : 1; - }; - s8 spawn_speed; - s8 time; - s8 delay; - s16 count; - s16 gfx_mdl; - s16 draw_mdl; - ConfettiParticle *data; + struct { + u8 kill : 1; + u8 paused : 1; + }; + s8 spawn_speed; + s8 time; + s8 delay; + s16 count; + s16 gfx_mdl; + s16 draw_mdl; + ConfettiParticle *data; } ConfettiWork; static void UpdateConfetti(omObjData *object); @@ -1710,501 +1710,501 @@ static void DrawConfetti(ModelData *model, Mtx matrix); void BoardConfettiCreate(Vec *pos, s16 count, float range) { - omObjData *object; - ConfettiWork *work; - if(confettiObj) { - BoardConfettiStop(); - HuPrcSleep(17); - } - object = omAddObjEx(boardObjMan, 257, 0, 0, -1, UpdateConfetti); - confettiObj = object; - work = OM_GET_WORK_PTR(object, ConfettiWork); - work->kill = 0; - work->paused = 0; - work->count = count; - work->spawn_speed = 1; - work->time = 0; - work->delay = 10; - work->draw_mdl = Hu3DHookFuncCreate(DrawConfetti); - work->data = HuMemDirectMallocNum(HEAP_SYSTEM, work->count*sizeof(ConfettiParticle), MEMORY_DEFAULT_NUM); - object->trans.x = pos->x; - object->trans.y = pos->y; - object->trans.z = pos->z; - object->rot.x = range; - work->gfx_mdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 7), NULL, 0); - BoardModelLayerSet(work->gfx_mdl, 2); - BoardModelVisibilitySet(work->gfx_mdl, 0); - { - ConfettiParticle *particle; - s32 i; - particle = work->data; - for(i=0; icount; i++, particle++) { - particle->time = -1; - } - } - HuAudFXPlay(774); + omObjData *object; + ConfettiWork *work; + if(confettiObj) { + BoardConfettiStop(); + HuPrcSleep(17); + } + object = omAddObjEx(boardObjMan, 257, 0, 0, -1, UpdateConfetti); + confettiObj = object; + work = OM_GET_WORK_PTR(object, ConfettiWork); + work->kill = 0; + work->paused = 0; + work->count = count; + work->spawn_speed = 1; + work->time = 0; + work->delay = 10; + work->draw_mdl = Hu3DHookFuncCreate(DrawConfetti); + work->data = HuMemDirectMallocNum(HEAP_SYSTEM, work->count*sizeof(ConfettiParticle), MEMORY_DEFAULT_NUM); + object->trans.x = pos->x; + object->trans.y = pos->y; + object->trans.z = pos->z; + object->rot.x = range; + work->gfx_mdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 7), NULL, 0); + BoardModelLayerSet(work->gfx_mdl, 2); + BoardModelVisibilitySet(work->gfx_mdl, 0); + { + ConfettiParticle *particle; + s32 i; + particle = work->data; + for(i=0; icount; i++, particle++) { + particle->time = -1; + } + } + HuAudFXPlay(774); } void BoardConfettiKill(void) { - if(confettiObj) { - OM_GET_WORK_PTR(confettiObj, ConfettiWork)->kill = 1; - } + if(confettiObj) { + OM_GET_WORK_PTR(confettiObj, ConfettiWork)->kill = 1; + } } void BoardConfettiStop(void) { - if(confettiObj) { - s32 i; - ConfettiParticle *particle; - ConfettiWork *work = OM_GET_WORK_PTR(confettiObj, ConfettiWork); - work->paused = 1; - particle = work->data; - for(i=0; icount; i++, particle++) { - if(particle->time != -1) { - if(particle->time > 16) { - particle->time = 16; - } - } - } - } + if(confettiObj) { + s32 i; + ConfettiParticle *particle; + ConfettiWork *work = OM_GET_WORK_PTR(confettiObj, ConfettiWork); + work->paused = 1; + particle = work->data; + for(i=0; icount; i++, particle++) { + if(particle->time != -1) { + if(particle->time > 16) { + particle->time = 16; + } + } + } + } } static void UpdateConfetti(omObjData *object) { - ConfettiWork *work = OM_GET_WORK_PTR(object, ConfettiWork); - if(work->kill || BoardIsKill()) { - BoardModelKill(work->gfx_mdl); - Hu3DModelKill(work->draw_mdl); - HuMemDirectFree(work->data); - confettiObj = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - } else { - SpawnConfetti(object); - MoveConfetti(object); - } + ConfettiWork *work = OM_GET_WORK_PTR(object, ConfettiWork); + if(work->kill || BoardIsKill()) { + BoardModelKill(work->gfx_mdl); + Hu3DModelKill(work->draw_mdl); + HuMemDirectFree(work->data); + confettiObj = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + } else { + SpawnConfetti(object); + MoveConfetti(object); + } } static void SpawnConfetti(omObjData *object) { - ConfettiWork *work = OM_GET_WORK_PTR(object, ConfettiWork); - s32 i; - if(work->paused) { - return; - } - if(work->spawn_speed < 5) { - if(work->time++ > work->delay) { - work->time = 0; - work->spawn_speed++; - } - } - for(i=0; ispawn_speed; i++) { - ConfettiParticle *particle; - float angle; - s32 j; - particle = work->data; - for(j=0; jcount; j++, particle++) { - if(particle->time == -1) { - break; - } - } - if(j == work->count) { - break; - } - particle->time = BoardRandMod(60)+120; - angle = BoardRandFloat()*360.0f; - particle->pos.x = (sin((angle*M_PI)/180.0)*object->rot.x)+object->trans.x; - particle->pos.y = object->trans.y; - particle->pos.z = (cos((angle*M_PI)/180.0)*object->rot.x)+object->trans.z; - particle->pos_vel.x = 2.0f*(BoardRandFloat()-0.5f); - particle->pos_vel.y = (-98.00001f/15.0f)*BoardRandFloat(); - particle->pos_vel.z = 2.0f*(BoardRandFloat()-0.5f); - particle->rot_vel.x = 8.0f+((BoardRandFloat()-0.5f)*20.0f); - particle->rot_vel.y = 8.0f+((BoardRandFloat()-0.5f)*20.0f); - particle->rot_vel.z = 8.0f+((BoardRandFloat()-0.5f)*20.0f); - particle->rot.x = 0; - particle->rot.y = 0; - particle->rot.z = 0; - particle->alpha = 255; - particle->light_col = BoardRandMod(6); - } + ConfettiWork *work = OM_GET_WORK_PTR(object, ConfettiWork); + s32 i; + if(work->paused) { + return; + } + if(work->spawn_speed < 5) { + if(work->time++ > work->delay) { + work->time = 0; + work->spawn_speed++; + } + } + for(i=0; ispawn_speed; i++) { + ConfettiParticle *particle; + float angle; + s32 j; + particle = work->data; + for(j=0; jcount; j++, particle++) { + if(particle->time == -1) { + break; + } + } + if(j == work->count) { + break; + } + particle->time = BoardRandMod(60)+120; + angle = BoardRandFloat()*360.0f; + particle->pos.x = (sind(angle)*object->rot.x)+object->trans.x; + particle->pos.y = object->trans.y; + particle->pos.z = (cosd(angle)*object->rot.x)+object->trans.z; + particle->pos_vel.x = 2.0f*(BoardRandFloat()-0.5f); + particle->pos_vel.y = (-98.00001f/15.0f)*BoardRandFloat(); + particle->pos_vel.z = 2.0f*(BoardRandFloat()-0.5f); + particle->rot_vel.x = 8.0f+((BoardRandFloat()-0.5f)*20.0f); + particle->rot_vel.y = 8.0f+((BoardRandFloat()-0.5f)*20.0f); + particle->rot_vel.z = 8.0f+((BoardRandFloat()-0.5f)*20.0f); + particle->rot.x = 0; + particle->rot.y = 0; + particle->rot.z = 0; + particle->alpha = 255; + particle->light_col = BoardRandMod(6); + } } static void MoveConfetti(omObjData *object) { - ConfettiWork *work = OM_GET_WORK_PTR(object, ConfettiWork); - s32 i; - s32 existF; - ConfettiParticle *particle; - - existF = 0; - particle = work->data; - - for(i=0; icount; i++, particle++) { - if(particle->time == -1) { - continue; - } - if(particle->time <= 0) { - particle->time = -1; - continue; - } - particle->time--; - particle->pos.x += particle->pos_vel.x; - particle->pos.y += particle->pos_vel.y; - particle->pos.z += particle->pos_vel.z; - particle->rot.x += particle->rot_vel.x; - particle->rot.y += particle->rot_vel.y; - particle->rot.z += particle->rot_vel.z; - if(particle->time < 16) { - if(particle->alpha >= 15) { - particle->alpha -= 15; - } else { - particle->alpha = 0; - } - } - if(!existF) { - existF = 1; - } - } - if(existF == 0 && work->paused) { - work->kill = 1; - } + ConfettiWork *work = OM_GET_WORK_PTR(object, ConfettiWork); + s32 i; + s32 existF; + ConfettiParticle *particle; + + existF = 0; + particle = work->data; + + for(i=0; icount; i++, particle++) { + if(particle->time == -1) { + continue; + } + if(particle->time <= 0) { + particle->time = -1; + continue; + } + particle->time--; + particle->pos.x += particle->pos_vel.x; + particle->pos.y += particle->pos_vel.y; + particle->pos.z += particle->pos_vel.z; + particle->rot.x += particle->rot_vel.x; + particle->rot.y += particle->rot_vel.y; + particle->rot.z += particle->rot_vel.z; + if(particle->time < 16) { + if(particle->alpha >= 15) { + particle->alpha -= 15; + } else { + particle->alpha = 0; + } + } + if(!existF) { + existF = 1; + } + } + if(existF == 0 && work->paused) { + work->kill = 1; + } } static Vec confettiLightTbl[6] = { - { 0.1, 0.4, 1 }, - { 0.2, 1, 0.1 }, - { 0.3, 1, 1 }, - { 1, 0.2, 0.1 }, - { 1, 0.2, 0.8 }, - { 1, 8, 0.3 } + { 0.1, 0.4, 1 }, + { 0.2, 1, 0.1 }, + { 0.3, 1, 1 }, + { 1, 0.2, 0.1 }, + { 1, 0.2, 0.8 }, + { 1, 8, 0.3 } }; static void DrawConfetti(ModelData *model, Mtx matrix) { - if(!confettiObj || BoardIsKill()) { - return; - } else { - ConfettiWork *work = OM_GET_WORK_PTR(confettiObj, ConfettiWork); - ModelData *model = &Hu3DData[work->gfx_mdl]; - ConfettiParticle *particle; - s32 i; - if(!model->hsfData) { - return; - } - particle = work->data; - for(i=0; icount; i++, particle++) { - Mtx result, temp; - float r, g, b, a; - if(particle->time == -1) { - continue; - } - MTXRotDeg(temp, 'z', particle->rot.z); - MTXRotDeg(result, 'x', particle->rot.x); - MTXConcat(temp, result, result); - MTXRotDeg(temp, 'y', particle->rot.y); - MTXConcat(temp, result, result); - MTXTrans(temp, particle->pos.x, particle->pos.y, particle->pos.z); - MTXConcat(temp, result, result); - MTXConcat(matrix, result, result); - r = confettiLightTbl[particle->light_col].x; - g = confettiLightTbl[particle->light_col].y; - b = confettiLightTbl[particle->light_col].z; - OSu8tof32(&particle->alpha, &a); - a = a*(1.0f/255.0f); - Hu3DModelTPLvlSet(BoardModelIDGet(work->gfx_mdl), a); - Hu3DModelAmbSet(BoardModelIDGet(work->gfx_mdl), r, g, b); - Hu3DModelObjDraw(BoardModelIDGet(work->gfx_mdl), "grid2", result); - } - } + if(!confettiObj || BoardIsKill()) { + return; + } else { + ConfettiWork *work = OM_GET_WORK_PTR(confettiObj, ConfettiWork); + ModelData *model = &Hu3DData[work->gfx_mdl]; + ConfettiParticle *particle; + s32 i; + if(!model->hsfData) { + return; + } + particle = work->data; + for(i=0; icount; i++, particle++) { + Mtx result, temp; + float r, g, b, a; + if(particle->time == -1) { + continue; + } + MTXRotDeg(temp, 'z', particle->rot.z); + MTXRotDeg(result, 'x', particle->rot.x); + MTXConcat(temp, result, result); + MTXRotDeg(temp, 'y', particle->rot.y); + MTXConcat(temp, result, result); + MTXTrans(temp, particle->pos.x, particle->pos.y, particle->pos.z); + MTXConcat(temp, result, result); + MTXConcat(matrix, result, result); + r = confettiLightTbl[particle->light_col].x; + g = confettiLightTbl[particle->light_col].y; + b = confettiLightTbl[particle->light_col].z; + OSu8tof32(&particle->alpha, &a); + a = a*(1.0f/255.0f); + Hu3DModelTPLvlSet(BoardModelIDGet(work->gfx_mdl), a); + Hu3DModelAmbSet(BoardModelIDGet(work->gfx_mdl), r, g, b); + Hu3DModelObjDraw(BoardModelIDGet(work->gfx_mdl), "grid2", result); + } + } } typedef struct last5_gfx_work { - struct { - u8 kill : 1; - u8 state : 3; - u8 is_last : 1; - u8 : 4; - }; - u8 stop_time; - s16 time; - s16 group; - s16 sprites[3]; + struct { + u8 kill : 1; + u8 state : 3; + u8 is_last : 1; + u8 : 4; + }; + u8 stop_time; + s16 time; + s16 group; + s16 sprites[3]; } Last5GfxWork; static s32 last5GfxSprTbl[3] = { - DATA_MAKE_NUM(DATADIR_BOARD, 95), - DATA_MAKE_NUM(DATADIR_BOARD, 97), - DATA_MAKE_NUM(DATADIR_BOARD, 96), + DATA_MAKE_NUM(DATADIR_BOARD, 95), + DATA_MAKE_NUM(DATADIR_BOARD, 97), + DATA_MAKE_NUM(DATADIR_BOARD, 96), }; static float last5GfxPosTbl[2][3][2] = { - { - { -80, 0 }, - { 0, 0 }, - { 80, 0 } - }, - { - { -52, 0 }, - { 0, 0 }, - { 52, 0 } - } + { + { -80, 0 }, + { 0, 0 }, + { 80, 0 } + }, + { + { -52, 0 }, + { 0, 0 }, + { 52, 0 } + } }; static void UpdateLast5Gfx(omObjData *object); void BoardLast5GfxInit(void) { - Last5GfxWork *work; - omObjData *object; - s32 turn_remain; - s32 lastF; - turn_remain = GWSystem.max_turn-GWSystem.turn; - if(turn_remain > 4 || turn_remain < 0) { - return; - } else { - s32 i; - turn_remain = 4-turn_remain; - object = omAddObjEx(boardObjMan, 0, 0, 0, -1, UpdateLast5Gfx); - last5GfxObj = object; - work = OM_GET_WORK_PTR(object, Last5GfxWork); - work->kill = 0; - work->stop_time = 0; - work->time = 0; - work->group = HuSprGrpCreate(3); - if((s32)(GWSystem.max_turn-GWSystem.turn) == 0) { - work->is_last = 1; - lastF = 1; - } else { - work->is_last = 0; - lastF = 0; - } - for(i=0; i<3; i++) { - s32 prio; - s32 spr_file; - - if(i == 1) { - prio = 1000; - } else { - prio = 1400; - } + Last5GfxWork *work; + omObjData *object; + s32 turn_remain; + s32 lastF; + turn_remain = GWSystem.max_turn-GWSystem.turn; + if(turn_remain > 4 || turn_remain < 0) { + return; + } else { + s32 i; + turn_remain = 4-turn_remain; + object = omAddObjEx(boardObjMan, 0, 0, 0, -1, UpdateLast5Gfx); + last5GfxObj = object; + work = OM_GET_WORK_PTR(object, Last5GfxWork); + work->kill = 0; + work->stop_time = 0; + work->time = 0; + work->group = HuSprGrpCreate(3); + if((s32)(GWSystem.max_turn-GWSystem.turn) == 0) { + work->is_last = 1; + lastF = 1; + } else { + work->is_last = 0; + lastF = 0; + } + for(i=0; i<3; i++) { + s32 prio; + s32 spr_file; + + if(i == 1) { + prio = 1000; + } else { + prio = 1400; + } #if !VERSION_JP - spr_file = last5GfxSprTbl[i]; - if(i == 2 && work->is_last && GWLanguageGet() != 0) { - spr_file = DATA_MAKE_NUM(DATADIR_BOARD, 98); - } - BoardSpriteCreate(spr_file, prio, NULL, &work->sprites[i]); + spr_file = last5GfxSprTbl[i]; + if(i == 2 && work->is_last && GWLanguageGet() != 0) { + spr_file = DATA_MAKE_NUM(DATADIR_BOARD, 98); + } + BoardSpriteCreate(spr_file, prio, NULL, &work->sprites[i]); #else - BoardSpriteCreate(last5GfxSprTbl[i], prio, NULL, &work->sprites[i]); + BoardSpriteCreate(last5GfxSprTbl[i], prio, NULL, &work->sprites[i]); #endif - HuSprGrpMemberSet(work->group, i, work->sprites[i]); - HuSprAttrSet(work->group, i, HUSPR_ATTR_LINEAR); - HuSprPosSet(work->group, i, last5GfxPosTbl[lastF][i][0], last5GfxPosTbl[lastF][i][1]); - } - if(!work->is_last) { - HuSprite *sprite = &HuSprData[HuSprGrpData[work->group].members[1]]; - HuSprBankSet(work->group, 1, 0); - sprite->frame = turn_remain; - } else { - HuSprAttrSet(work->group, 1, HUSPR_ATTR_DISPOFF); - } - HuSprAttrSet(work->group, 1, HUSPR_ATTR_NOANIM); - object->trans.x = 0.0f; - HuSprGrpTPLvlSet(work->group, object->trans.x); - HuSprGrpPosSet(work->group, HU_DISP_CENTERX, 72); - HuAudFXPlay(838); - work->time = 0; - } + HuSprGrpMemberSet(work->group, i, work->sprites[i]); + HuSprAttrSet(work->group, i, HUSPR_ATTR_LINEAR); + HuSprPosSet(work->group, i, last5GfxPosTbl[lastF][i][0], last5GfxPosTbl[lastF][i][1]); + } + if(!work->is_last) { + HuSprite *sprite = &HuSprData[HuSprGrpData[work->group].members[1]]; + HuSprBankSet(work->group, 1, 0); + sprite->frame = turn_remain; + } else { + HuSprAttrSet(work->group, 1, HUSPR_ATTR_DISPOFF); + } + HuSprAttrSet(work->group, 1, HUSPR_ATTR_NOANIM); + object->trans.x = 0.0f; + HuSprGrpTPLvlSet(work->group, object->trans.x); + HuSprGrpPosSet(work->group, HU_DISP_CENTERX, 72); + HuAudFXPlay(838); + work->time = 0; + } } static void UpdateLast5Gfx(omObjData *object) { - Last5GfxWork *work = OM_GET_WORK_PTR(object, Last5GfxWork); - if(work->kill || BoardIsKill()) { - HuSprGrpKill(work->group); - last5GfxObj = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - if(work->stop_time != 0) { - work->stop_time--; - return; - } - switch(work->state) { - case 0: - object->trans.x += 1.0f/30.0f; - if(object->trans.x > 1.0f) { - object->trans.x = 1.0f; - work->state = 1; - } - HuSprGrpTPLvlSet(work->group, object->trans.x); - break; - - case 1: - if(work->time >= 720) { - work->state = 2; - work->stop_time = 90; - if(work->is_last) { - HuSprGrpScaleSet(work->group, 1.0f, 1.0f); - } else { - HuSprScaleSet(work->group, 1, 1.0f, 1.0f); - } - } else { - s16 angle; - angle = work->time%180; - OSs16tof32(&angle, &object->trans.y); - object->trans.y = sin((object->trans.y*M_PI)/180.0)+0.5; - if(work->is_last) { - HuSprGrpScaleSet(work->group, object->trans.y, object->trans.y); - } else { - HuSprScaleSet(work->group, 1, object->trans.y, object->trans.y); - } - work->time += 9; - } - break; - - case 2: - object->trans.x -= 1.0f/30.0f; - if(object->trans.x < 0.0f) { - object->trans.x = 0.0f; - work->kill = 1; - } - HuSprGrpTPLvlSet(work->group, object->trans.x); - break; - } + Last5GfxWork *work = OM_GET_WORK_PTR(object, Last5GfxWork); + if(work->kill || BoardIsKill()) { + HuSprGrpKill(work->group); + last5GfxObj = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + if(work->stop_time != 0) { + work->stop_time--; + return; + } + switch(work->state) { + case 0: + object->trans.x += 1.0f/30.0f; + if(object->trans.x > 1.0f) { + object->trans.x = 1.0f; + work->state = 1; + } + HuSprGrpTPLvlSet(work->group, object->trans.x); + break; + + case 1: + if(work->time >= 720) { + work->state = 2; + work->stop_time = 90; + if(work->is_last) { + HuSprGrpScaleSet(work->group, 1.0f, 1.0f); + } else { + HuSprScaleSet(work->group, 1, 1.0f, 1.0f); + } + } else { + s16 angle; + angle = work->time%180; + OSs16tof32(&angle, &object->trans.y); + object->trans.y = sind(object->trans.y)+0.5; + if(work->is_last) { + HuSprGrpScaleSet(work->group, object->trans.y, object->trans.y); + } else { + HuSprScaleSet(work->group, 1, object->trans.y, object->trans.y); + } + work->time += 9; + } + break; + + case 2: + object->trans.x -= 1.0f/30.0f; + if(object->trans.x < 0.0f) { + object->trans.x = 0.0f; + work->kill = 1; + } + HuSprGrpTPLvlSet(work->group, object->trans.x); + break; + } } void BoardLast5GfxShowSet(s32 show) { - s32 i; - Last5GfxWork *work; - if(!last5GfxObj) { - return; - } - - work = OM_GET_WORK_PTR(last5GfxObj, Last5GfxWork); - for(i=0; i<3; i++) { - if(show) { - HuSprAttrReset(work->group, i, HUSPR_ATTR_DISPOFF); - } else { - HuSprAttrSet(work->group, i, HUSPR_ATTR_DISPOFF); - } - if(work->is_last) { - HuSprAttrSet(work->group, 1, HUSPR_ATTR_DISPOFF); - } - } + s32 i; + Last5GfxWork *work; + if(!last5GfxObj) { + return; + } + + work = OM_GET_WORK_PTR(last5GfxObj, Last5GfxWork); + for(i=0; i<3; i++) { + if(show) { + HuSprAttrReset(work->group, i, HUSPR_ATTR_DISPOFF); + } else { + HuSprAttrSet(work->group, i, HUSPR_ATTR_DISPOFF); + } + if(work->is_last) { + HuSprAttrSet(work->group, 1, HUSPR_ATTR_DISPOFF); + } + } } static s32 tauntActiveFXTbl[4] = { -1, -1, -1, -1 }; static s32 tauntFXTbl[8] = { - 294, - 358, - 422, - 486, - 550, - 614, - 678, - 742 + 294, + 358, + 422, + 486, + 550, + 614, + 678, + 742 }; typedef struct taunt_work { - u8 kill : 1; + u8 kill : 1; } TauntWork; static void TauntUpdate(omObjData *object); void BoardTauntInit(void) { - s32 i; - tauntObj = omAddObjEx(boardObjMan, 32258, 0, 0, -1, TauntUpdate); - for(i=0; i<4; i++) { - tauntActiveFXTbl[i] = -1; - } - _SetFlag(FLAG_ID_MAKE(1, 14)); + s32 i; + tauntObj = omAddObjEx(boardObjMan, 32258, 0, 0, -1, TauntUpdate); + for(i=0; i<4; i++) { + tauntActiveFXTbl[i] = -1; + } + _SetFlag(FLAG_ID_MAKE(1, 14)); } void BoardTauntKill(void) { - TauntWork *work; - if(!tauntObj) { - return; - } - work = OM_GET_WORK_PTR(tauntObj, TauntWork); - work->kill = 1; - _SetFlag(FLAG_ID_MAKE(1, 14)); + TauntWork *work; + if(!tauntObj) { + return; + } + work = OM_GET_WORK_PTR(tauntObj, TauntWork); + work->kill = 1; + _SetFlag(FLAG_ID_MAKE(1, 14)); } static void TauntUpdate(omObjData *object) { - s32 i; - s32 port; - s32 character; - TauntWork *work; - work = OM_GET_WORK_PTR(object, TauntWork); - if(work->kill || BoardIsKill()) { - for(i=0; i<4; i++) { - if(tauntActiveFXTbl[i] >= 0) { - HuAudFXStop(tauntActiveFXTbl[i]); - tauntActiveFXTbl[i] = -1; - } - } - tauntObj = NULL; - omDelObjEx(HuPrcCurrentGet(), object); - return; - } - for(i=0; i<4; i++) { - if(tauntActiveFXTbl[i] >= 0 && HuAudFXStatusGet(tauntActiveFXTbl[i]) == 0) { - tauntActiveFXTbl[i] = -1; - } - } - if(BoardPauseActiveCheck()) { - return; - } - if(_CheckFlag(FLAG_ID_MAKE(1, 14))) { - return; - } - if(WipeStatGet()) { - return; - } - if(GWSystem.player_curr == -1) { - return; - } - for(i=0; i<4; i++) { - if(i == GWSystem.player_curr || GWPlayer[i].com) { - continue; - } - port = GWPlayer[i].port & 0x3; - character = GWPlayer[i].character & 0x7; - if(tauntActiveFXTbl[port] >= 0) { - MSM_SEPARAM param; - float vol, pan; - vol = (64.0f*(HuPadSubStkX[port]/59.0f))+64.0f; - pan = 8191.0f*(HuPadSubStkY[port]/59.0f); - memset(¶m, 0, sizeof(MSM_SEPARAM)); - param.flag = MSM_SEPARAM_PITCH|MSM_SEPARAM_PAN; - OSf32tos8(&vol, ¶m.pan); - OSf32tos16(&pan, ¶m.pitch); - msmSeSetParam(tauntActiveFXTbl[port], ¶m); - } else { - if(HuPadBtnDown[port] & PAD_TRIGGER_L) { - tauntActiveFXTbl[port] = HuAudFXPlay(tauntFXTbl[character]); - } - } - } + s32 i; + s32 port; + s32 character; + TauntWork *work; + work = OM_GET_WORK_PTR(object, TauntWork); + if(work->kill || BoardIsKill()) { + for(i=0; i<4; i++) { + if(tauntActiveFXTbl[i] >= 0) { + HuAudFXStop(tauntActiveFXTbl[i]); + tauntActiveFXTbl[i] = -1; + } + } + tauntObj = NULL; + omDelObjEx(HuPrcCurrentGet(), object); + return; + } + for(i=0; i<4; i++) { + if(tauntActiveFXTbl[i] >= 0 && HuAudFXStatusGet(tauntActiveFXTbl[i]) == 0) { + tauntActiveFXTbl[i] = -1; + } + } + if(BoardPauseActiveCheck()) { + return; + } + if(_CheckFlag(FLAG_ID_MAKE(1, 14))) { + return; + } + if(WipeStatGet()) { + return; + } + if(GWSystem.player_curr == -1) { + return; + } + for(i=0; i<4; i++) { + if(i == GWSystem.player_curr || GWPlayer[i].com) { + continue; + } + port = GWPlayer[i].port & 0x3; + character = GWPlayer[i].character & 0x7; + if(tauntActiveFXTbl[port] >= 0) { + MSM_SEPARAM param; + float vol, pan; + vol = (64.0f*(HuPadSubStkX[port]/59.0f))+64.0f; + pan = 8191.0f*(HuPadSubStkY[port]/59.0f); + memset(¶m, 0, sizeof(MSM_SEPARAM)); + param.flag = MSM_SEPARAM_PITCH|MSM_SEPARAM_PAN; + OSf32tos8(&vol, ¶m.pan); + OSf32tos16(&pan, ¶m.pitch); + msmSeSetParam(tauntActiveFXTbl[port], ¶m); + } else { + if(HuPadBtnDown[port] & PAD_TRIGGER_L) { + tauntActiveFXTbl[port] = HuAudFXPlay(tauntFXTbl[character]); + } + } + } } s32 BoardDataDirReadAsync(s32 data_num) { - s32 status = HuDataDirReadAsync(data_num); - return status; + s32 status = HuDataDirReadAsync(data_num); + return status; } void BoardDataAsyncWait(s32 status) { - if(status == -1) { - return; - } - while(!HuDataGetAsyncStat(status)) { - HuPrcVSleep(); - } + if(status == -1) { + return; + } + while(!HuDataGetAsyncStat(status)) { + HuPrcVSleep(); + } } diff --git a/src/game/board/mg_setup.c b/src/game/board/mg_setup.c index 4613826f..ec5ac7a4 100644 --- a/src/game/board/mg_setup.c +++ b/src/game/board/mg_setup.c @@ -12,6 +12,8 @@ #include "game/board/tutorial.h" #include "game/board/window.h" +#include "ext_math.h" + // structs typedef struct structActiveMG { s16 unk_00; @@ -767,7 +769,7 @@ static void SeparateStatus(bitcopy* arg0, omObjData* arg1) { return; } OSu8tof32((u8*)&arg0->unk_03, &temp_f29); - temp_f30 = sin((temp_f29 * M_PI) / 180.0) * 4.0 + 1.0; + temp_f30 = sind(temp_f29) * 4.0 + 1.0; arg0->unk_03 += 6; if (arg0->unk_03 > 0x5A) { arg0->unk_03 = 0x5A; @@ -797,9 +799,9 @@ static void PopupVS(bitcopy* arg0, omObjData* arg1) { } OSs16tof32(&arg0->unk_04, &temp_f31); if (arg0->unk_04 < 0x5A) { - var_f30 = 2.0 * sin((M_PI * temp_f31) / 180.0); + var_f30 = 2.0 * sind(temp_f31); } else { - var_f30 = 1.0 + sin((M_PI * temp_f31) / 180.0); + var_f30 = 1.0 + sind(temp_f31); if (arg0->unk_04 >= 0xB4) { var_f30 = 1.0f; temp_r28 = (bitcopy*) mgSetupObj->work; @@ -958,7 +960,7 @@ static void UpdateLuckyValue(bitcopy* arg0, omObjData* arg1) { case 1: if (arg0->unk_03 < 0x5A) { OSu8tof32((u8*) &arg0->unk_03, &temp_f28); - temp_f29 = sin((M_PI * temp_f28) / 180.0); + temp_f29 = sind(temp_f28); HuSprScaleSet(temp_r27->unk_00[0], 8, temp_f29, temp_f29); HuSprScaleSet(temp_r27->unk_00[0], 9, temp_f29, temp_f29); arg0->unk_03 += 2; @@ -1006,7 +1008,7 @@ static void UpdateLuckyValue(bitcopy* arg0, omObjData* arg1) { return; } temp_f28 = (arg0->unk_04 % 360); - temp_f29 = (1.0 + (0.5 * sin((M_PI * temp_f28) / 180.0))); + temp_f29 = (1.0 + (0.5 * sind(temp_f28))); HuSprScaleSet(temp_r27->unk_00[0], 8, temp_f29, temp_f29); HuSprScaleSet(temp_r27->unk_00[0], 9, temp_f29, temp_f29); break; @@ -1075,7 +1077,7 @@ static void UpdateMGList(bitcopy* arg0, omObjData* arg1) { case 1: if (arg0->unk_03 < 0x5A) { OSu8tof32((u8*) &arg0->unk_03, &var_f26); - temp_f27 = sin((M_PI * var_f26) / 180.0); + temp_f27 = sind(var_f26); arg0->unk_03 += 3; HuSprScaleSet(temp_r24->unk_00[0], temp_r22, temp_f27, temp_f27); return; @@ -1166,7 +1168,7 @@ static void UpdateMGList(bitcopy* arg0, omObjData* arg1) { case 5: if (arg0->unk_03 < 0x5A) { OSu8tof32((u8*) &arg0->unk_03, &var_f26); - temp_f27 = (1.0 + (2.0 * sin((M_PI * var_f26) / 180.0))); + temp_f27 = (1.0 + (2.0 * sind(var_f26))); arg0->unk_03 += 4; if (arg0->unk_03 > 0x5A) { arg0->unk_03 = 0x5A; diff --git a/src/game/board/mushroom.c b/src/game/board/mushroom.c index 328fc1fe..1b0c57b6 100644 --- a/src/game/board/mushroom.c +++ b/src/game/board/mushroom.c @@ -300,7 +300,7 @@ static void ExitBox(ItemGiveWork2* arg0, omObjData* arg1) { } arg1->trans.y = spC.y + (700.0f * cosd(arg0->unk_08)); - arg1->rot.y = sin((M_PI * temp) / 180.0); + arg1->rot.y = sind(temp); arg0->unk_08 -= 1.5f; arg0->unk_06 -= 30; } diff --git a/src/game/board/start.c b/src/game/board/start.c index 0cb9e8bc..61b854db 100755 --- a/src/game/board/start.c +++ b/src/game/board/start.c @@ -20,6 +20,7 @@ #include "game/board/window.h" #include "dolphin.h" +#include "ext_math.h" #include "string.h" typedef struct { @@ -238,7 +239,7 @@ static void ShowLogo(void) { HuSprGrpPosSet(logoSprGrp, 288.0f, 240.0f); for (spA = 0; spA < 90; spA += 4) { OSs16tof32(&spA, &var_f27); - temp_f28 = sin(var_f27 * M_PI / 180.0); + temp_f28 = sind(var_f27); HuSprScaleSet(logoSprGrp, 0, temp_f28, temp_f28); HuPrcVSleep(); } @@ -246,7 +247,7 @@ static void ShowLogo(void) { for (spA = 0; spA < 540; spA += 4) { sp8 = spA % 180; OSs16tof32(&sp8, &var_f27); - temp_f28 = 1.0 + 0.699999988079071 * sin(var_f27 * M_PI / 180.0); + temp_f28 = 1.0 + 0.7f * sind(var_f27); HuSprScaleSet(logoSprGrp, 0, temp_f28, temp_f28); HuPrcVSleep(); } @@ -254,7 +255,7 @@ static void ShowLogo(void) { HuPrcSleep(0x78); for (spA = 0; spA < 90; spA += 4) { OSs16tof32(&spA, &var_f27); - temp_f28 = cos(var_f27 * M_PI / 180.0); + temp_f28 = cosd(var_f27); HuSprScaleSet(logoSprGrp, 0, temp_f28, temp_f28); HuPrcVSleep(); } @@ -586,7 +587,7 @@ static void PlayerDiceNumHide(omObjData *arg0, PlayerStartWork *arg1) { arg1->unk02 = 2; } OSs16tof32(&arg1->unk06, &var_f28); - arg0->rot.x = 1.0 + 1.2999999523162842 * sin(var_f28 * M_PI / 180.0); + arg0->rot.x = 1.0 + 1.3f * sind(var_f28); break; case 2: arg1->unk06 += 9; @@ -595,8 +596,8 @@ static void PlayerDiceNumHide(omObjData *arg0, PlayerStartWork *arg1) { arg1->unk02 = 3; } OSs16tof32(&arg1->unk06, &var_f28); - arg0->rot.x = cos(0.5f * var_f28 * M_PI / 180.0); - arg0->rot.y = 1.0 + 1.2999999523162842 * sin(var_f28 * M_PI / 180.0); + arg0->rot.x = cosd(0.5f * var_f28); + arg0->rot.y = 1.0 + 1.3f * sind(var_f28); break; case 3: BoardModelVisibilitySet(arg1->unk0A, 0); diff --git a/src/game/board/warp.c b/src/game/board/warp.c index ddc92315..c25a8511 100644 --- a/src/game/board/warp.c +++ b/src/game/board/warp.c @@ -12,7 +12,7 @@ #include "game/objsub.h" #include "game/disp.h" -#include "math.h" +#include "ext_math.h" static void WarpInit(s32); static void WarpLaunch(s32); @@ -234,7 +234,7 @@ static void WarpImpact(s32 player) { speed = 4.0f; for (angle = 0.0f, temp = angle; angle < 180.0f; angle += speed) { - temp_f30 = sin((M_PI * angle) / 180.0); + temp_f30 = sind(angle); BoardModelScaleSet(warpImpactMdl, 0.5f + temp_f30, 0.5f + temp_f30, 0.5f + temp_f30); HuPrcVSleep(); } @@ -245,4 +245,4 @@ static void WarpImpact(s32 player) { BoardPlayerIdleSet(warpImpactPlayer[i]); } warpState = 6; -} \ No newline at end of file +} diff --git a/src/game/hsfex.c b/src/game/hsfex.c index 63f3745e..490e19e3 100644 --- a/src/game/hsfex.c +++ b/src/game/hsfex.c @@ -3,7 +3,7 @@ #include "game/hsfmotion.h" #include "game/disp.h" -#include "math.h" +#include "ext_math.h" #define DISP_HALF_W (HU_DISP_WIDTH/2.0f) #define DISP_HALF_H (HU_DISP_HEIGHT/2.0f) @@ -129,10 +129,10 @@ void CamMotionEx(s16 arg0, s16 arg1, Vec *arg2, Vec *arg3, Vec *arg4, float arg5 var_f30 = var_f31; break; case 1: - var_f30 = arg5 * sin(90.0f * (var_f31 / arg5) * M_PI / 180.0); + var_f30 = arg5 * sind(90.0f * (var_f31 / arg5)); break; case 2: - var_f30 = arg5 * (1.0 - cos(90.0f * (var_f31 / arg5) * M_PI / 180.0)); + var_f30 = arg5 * (1.0 - cosd(90.0f * (var_f31 / arg5))); break; } var_r31 = temp_r21; @@ -346,9 +346,9 @@ static void SetObjCamMotion(s16 arg0, HsfTrack *arg1, float arg2, HsfexStruct02 case 14: VECSubtract(&arg3->unk08, &arg3->unk20, &spC); VECNormalize(&spC, &spC); - sp18.x = spC.x * spC.y * (1.0 - cos(M_PI * arg2 / 180.0)) - spC.z * sin(M_PI * arg2 / 180.0); - sp18.y = spC.y * spC.y + (1.0f - spC.y * spC.y) * cos(M_PI * arg2 / 180.0); - sp18.z = spC.y * spC.z * (1.0 - cos(M_PI * arg2 / 180.0)) + spC.x * sin(M_PI * arg2 / 180.0); + sp18.x = spC.x * spC.y * (1.0 - cosd(arg2)) - spC.z * sind(arg2); + sp18.y = spC.y * spC.y + (1.0f - spC.y * spC.y) * cosd(arg2); + sp18.z = spC.y * spC.z * (1.0 - cosd(arg2)) + spC.x * sind(arg2); VECNormalize(&sp18, &arg3->unk14); break; } @@ -432,7 +432,7 @@ void Hu3D2Dto3D(Vec *arg0, s16 arg1, Vec *arg2) { } } temp_r31 = &Hu3DCamera[i]; - temp_f30 = sin((temp_r31->fov / 2) * M_PI / 180.0) / cos((temp_r31->fov / 2) * M_PI / 180.0); + temp_f30 = sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2); temp_f31 = temp_f30 * arg0->z * 2.0f; temp_f29 = temp_f31 * HU_DISP_ASPECT; temp_f28 = arg0->x / HU_DISP_WIDTH; @@ -461,8 +461,8 @@ void Hu3D3Dto2D(Vec *arg0, s16 arg1, Vec *arg2) { temp_r31 = &Hu3DCamera[i]; C_MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target); PSMTXMultVec(sp1C, arg0, &sp10); - temp_f31 = (sin((temp_r31->fov / 2) * M_PI / 180.0) / cos((temp_r31->fov / 2) * M_PI / 180.0)) * sp10.z * HU_DISP_ASPECT; - temp_f30 = (sin((temp_r31->fov / 2) * M_PI / 180.0) / cos((temp_r31->fov / 2) * M_PI / 180.0)) * sp10.z; + temp_f31 = (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)) * sp10.z * HU_DISP_ASPECT; + temp_f30 = (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)) * sp10.z; arg2->x = DISP_HALF_W + sp10.x * (DISP_HALF_W / -temp_f31); arg2->y = DISP_HALF_H + sp10.y * (DISP_HALF_H / temp_f30); arg2->z = 0.0f; diff --git a/src/game/objsysobj.c b/src/game/objsysobj.c index 3e6b56f3..210bdbfd 100644 --- a/src/game/objsysobj.c +++ b/src/game/objsysobj.c @@ -6,7 +6,7 @@ #include "game/sprite.h" #include "game/hsfman.h" #include "game/audio.h" -#include "math.h" +#include "ext_math.h" Vec CRot; Vec Center; @@ -23,15 +23,15 @@ void omOutView(omObjData *object) float rot_x = CRot.x; float rot_y = CRot.y; float rot_z = CRot.z; - pos.x = (sin(M_PI*rot_y/180.0)*cos(M_PI*rot_x/180.0)*CZoom)+Center.x; - pos.y = (-sin(M_PI*rot_x/180.0)*CZoom)+Center.y; - pos.z = (cos(M_PI*rot_y/180.0)*cos(M_PI*rot_x/180.0)*CZoom)+Center.z; + pos.x = (sind(rot_y)*cosd(rot_x)*CZoom)+Center.x; + pos.y = (-sind(rot_x)*CZoom)+Center.y; + pos.z = (cosd(rot_y)*cosd(rot_x)*CZoom)+Center.z; target.x = Center.x; target.y = Center.y; target.z = Center.z; - up.x = sin(M_PI*rot_y/180.0)*sin(M_PI*rot_x/180.0); - up.y = cos(M_PI*rot_x/180.0); - up.z = cos(M_PI*rot_y/180.0)*sin(M_PI*rot_x/180.0); + up.x = sind(rot_y)*sind(rot_x); + up.y = cosd(rot_x); + up.z = cosd(rot_y)*sind(rot_x); Hu3DCameraPosSet(1, pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); } @@ -43,15 +43,15 @@ void omOutViewMulti(omObjData *object) float rot_x = CRotM[i].x; float rot_y = CRotM[i].y; float rot_z = CRotM[i].z; - pos.x = (sin(M_PI*rot_y/180.0)*cos(M_PI*rot_x/180.0)*CZoomM[i])+CenterM[i].x; - pos.y = (-sin(M_PI*rot_x/180.0)*CZoomM[i])+CenterM[i].y; - pos.z = (cos(M_PI*rot_y/180.0)*cos(M_PI*rot_x/180.0)*CZoomM[i])+CenterM[i].z; + pos.x = (sind(rot_y)*cosd(rot_x)*CZoomM[i])+CenterM[i].x; + pos.y = (-sind(rot_x)*CZoomM[i])+CenterM[i].y; + pos.z = (cosd(rot_y)*cosd(rot_x)*CZoomM[i])+CenterM[i].z; target.x = CenterM[i].x; target.y = CenterM[i].y; target.z = CenterM[i].z; - up.x = sin(M_PI*rot_y/180.0)*sin(M_PI*rot_x/180.0); - up.y = cos(M_PI*rot_x/180.0); - up.z = cos(M_PI*rot_y/180.0)*sin(M_PI*rot_x/180.0); + up.x = sind(rot_y)*sind(rot_x); + up.y = cosd(rot_x); + up.z = cosd(rot_y)*sind(rot_x); Hu3DCameraPosSetV((1 << i), &pos, &up, &target); } } @@ -145,4 +145,4 @@ void omSysPauseCtrl(s16 flag) } else { omDBGSysKeyObj->work[0] |= 0x100; } -} \ No newline at end of file +} From 98a95407ffb4ccd48eed15f8d773ba430a9d1398 Mon Sep 17 00:00:00 2001 From: Liam Coleman Date: Fri, 10 Jan 2025 18:22:38 -0600 Subject: [PATCH 245/311] mstory2 board_miss (#520) * Match first mstory2 TU * Complete mstory2 board_clear and board_entrance * Complete mstory2 board miss --- config/GMPE01_00/rels/mstory2Dll/splits.txt | 4 +- config/GMPE01_01/rels/mstory2Dll/splits.txt | 4 +- configure.py | 2 +- src/REL/mstory2Dll/board_miss.c | 855 ++++++++++++++++++++ 4 files changed, 860 insertions(+), 5 deletions(-) create mode 100644 src/REL/mstory2Dll/board_miss.c diff --git a/config/GMPE01_00/rels/mstory2Dll/splits.txt b/config/GMPE01_00/rels/mstory2Dll/splits.txt index 43465253..080a347f 100644 --- a/config/GMPE01_00/rels/mstory2Dll/splits.txt +++ b/config/GMPE01_00/rels/mstory2Dll/splits.txt @@ -27,13 +27,13 @@ REL/mstory2Dll/board_clear.c: REL/mstory2Dll/board_miss.c: .text start:0x0000E570 end:0x000123C8 .rodata start:0x00000248 end:0x00000310 - .data start:0x00000698 end:0x00000D50 + .data start:0x00000698 end:0x00000850 .bss start:0x000004E0 end:0x00000790 REL/mstory2Dll/mg_clear.c: .text start:0x000123C8 end:0x00016060 .rodata start:0x00000310 end:0x000003D0 - .data start:0x00000D50 end:0x00000DB8 + .data start:0x00000850 end:0x00000DB8 .bss start:0x00000790 end:0x00000968 REL/mstory2Dll/mg_miss.c: diff --git a/config/GMPE01_01/rels/mstory2Dll/splits.txt b/config/GMPE01_01/rels/mstory2Dll/splits.txt index 3e202379..2d36e6e7 100644 --- a/config/GMPE01_01/rels/mstory2Dll/splits.txt +++ b/config/GMPE01_01/rels/mstory2Dll/splits.txt @@ -27,13 +27,13 @@ REL/mstory2Dll/board_clear.c: REL/mstory2Dll/board_miss.c: .text start:0x0000E570 end:0x000123C8 .rodata start:0x00000248 end:0x00000310 - .data start:0x00000698 end:0x00000D50 + .data start:0x00000698 end:0x00000850 .bss start:0x000004E0 end:0x00000790 REL/mstory2Dll/mg_clear.c: .text start:0x000123C8 end:0x00016060 .rodata start:0x00000310 end:0x000003D0 - .data start:0x00000D50 end:0x00000DB8 + .data start:0x00000850 end:0x00000DB8 .bss start:0x00000790 end:0x00000968 REL/mstory2Dll/mg_miss.c: diff --git a/configure.py b/configure.py index 212bef75..dc0c82ab 100644 --- a/configure.py +++ b/configure.py @@ -1373,7 +1373,7 @@ config.libs = [ Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/main.c"), Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/board_entrance.c"), Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/board_clear.c"), - Object(NonMatching, "REL/mstory2Dll/board_miss.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/board_miss.c"), Object(NonMatching, "REL/mstory2Dll/mg_clear.c"), Object(NonMatching, "REL/mstory2Dll/mg_miss.c"), Object(NonMatching, "REL/mstory2Dll/ending.c"), diff --git a/src/REL/mstory2Dll/board_miss.c b/src/REL/mstory2Dll/board_miss.c new file mode 100644 index 00000000..45b05479 --- /dev/null +++ b/src/REL/mstory2Dll/board_miss.c @@ -0,0 +1,855 @@ +#include "REL/mstory2Dll.h" +#include "game/armem.h" +#include "game/audio.h" +#include "game/board/main.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "game/pad.h" +#include "game/objsub.h" +#include "game/board/main.h" + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ char unk18[0x18]; + /* 0x030 */ StructFn357C unk30[4]; + /* 0x100 */ float unk100; +} StructBss688; // Size 0x104 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ char unk0C[4]; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; +} StructBss4E8; // Size 0x18 + +StructBss688 lbl_1_bss_688; +StructBss16C lbl_1_bss_660; +StructBss16C lbl_1_bss_638; +StructBss16C lbl_1_bss_610; +StructBss16C lbl_1_bss_5E8; +StructBss16C lbl_1_bss_548[4]; +StructBss4E8 lbl_1_bss_4E8[4]; +BOOL lbl_1_bss_4E4; +Process *lbl_1_bss_4E0; + +s32 lbl_1_data_698[7] = { + DATADIR_W01, + DATADIR_W02, + DATADIR_W03, + DATADIR_W04, + DATADIR_W05, + DATADIR_W06, + DATADIR_W10, +}; + +s32 lbl_1_data_6B4[8] = { + DATADIR_MARIOMDL1, + DATADIR_LUIGIMDL1, + DATADIR_PEACHMDL1, + DATADIR_YOSHIMDL1, + DATADIR_WARIOMDL1, + DATADIR_DONKEYMDL1, + DATADIR_DAISYMDL1, + DATADIR_WALUIGIMDL1 +}; + +void fn_1_FDFC(void); +void fn_1_10194(void); +void fn_1_106B0(omObjData* arg0, StructBss16C* arg1); +void fn_1_1094C(void); +void fn_1_10DF4(int arg0, int arg1, int arg2, int arg3, int arg4); +void fn_1_10EA0(omObjData* arg0, StructBss16C* arg1); +void fn_1_1112C(void); +void fn_1_11418(int arg0); +void fn_1_11934(omObjData* arg0, StructBss16C* arg1); +void fn_1_11A98(omObjData* arg0, StructBss16C* arg1); +void fn_1_11BB0(void); +void fn_1_11FD0(void); +void fn_1_1205C(void); +void fn_1_1218C(void); + +void fn_1_E570(void) +{ + int statId = HuDataDirReadAsync(DATADIR_BOARD); + if(statId != -1) { + while(!HuDataGetAsyncStat(statId)) { + HuPrcVSleep(); + } + } + HuAR_MRAMtoARAM(DATADIR_BOARD); + while(HuARDMACheck()) { + HuPrcVSleep(); + } + HuDataDirClose(DATADIR_BOARD); + statId = HuDataDirReadAsync(lbl_1_data_698[GWSystem.board]); + if(statId != -1) { + while(!HuDataGetAsyncStat(statId)) { + HuPrcVSleep(); + } + } + lbl_1_bss_4E4 = TRUE; + HuPrcEnd(); + while(1) { + HuPrcVSleep(); + } +} + +void fn_1_E638(void) +{ + int i, j; + lbl_1_bss_4E8[0].unk00 = 0; + lbl_1_bss_4E8[0].unk04 = 0; + lbl_1_bss_4E8[0].unk10 = lbl_1_bss_688.unk30[lbl_1_bss_688.unk00].unk10; + lbl_1_bss_4E8[0].unk14 = lbl_1_bss_688.unk30[lbl_1_bss_688.unk00].unk14; + lbl_1_bss_4E8[0].unk08 = 0; + for(i=1; i<4; i++) { + lbl_1_bss_4E8[i].unk10 = -1; + lbl_1_bss_4E8[i].unk14 = i; + lbl_1_bss_4E8[i].unk08 = 1; + } + for(i=1; i<4; i++) { + do { + lbl_1_bss_4E8[i].unk10 = rand8()%8; + for(j=0; j<4; j++) { + if(i != j && lbl_1_bss_4E8[j].unk10 != -1 && lbl_1_bss_4E8[i].unk10 == lbl_1_bss_4E8[j].unk10) { + break; + } + } + } while(j != 4); + } + for(i=0; i<4; i++) { + GWPlayerCfg[i].character = lbl_1_bss_4E8[i].unk10; + GWPlayerCfg[i].pad_idx = lbl_1_bss_4E8[i].unk14; + GWPlayerCfg[i].group = 0; + GWPlayerCfg[i].iscom = lbl_1_bss_4E8[i].unk08; + } + BoardSaveInit(GWSystem.board); + CharKill(-1); + HuDataDirClose(DATADIR_MSTORY2); + HuPrcChildCreate(fn_1_E570, 100, 12288, 0, lbl_1_bss_4E0); +} + +void fn_1_E8EC(void) +{ + int ovlTbl[7] = { + OVL_W01, + OVL_W02, + OVL_W03, + OVL_W04, + OVL_W05, + OVL_W06, + OVL_W10 + }; + omOvlHisData *his; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (WipeStatGet()) { + fn_1_BC8(); + } + CharModelKill(-1); + MGSeqKillAll(); + his = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY3, 0, his->stat); + do { + fn_1_BC8(); + } while(lbl_1_bss_4E4 != 1); + CharARAMOpen(GWPlayerCfg[0].character); + CharARAMOpen(GWPlayerCfg[1].character); + CharARAMOpen(GWPlayerCfg[2].character); + CharARAMOpen(GWPlayerCfg[3].character); + HuAudSeqAllFadeOut(1000); + HuAudSStreamAllFadeOut(1000); + omOvlCallEx(ovlTbl[GWSystem.board], 1, 0, 0); + while(1) { + fn_1_BC8(); + } +} + +void fn_1_EA2C(Process* arg0, s32 arg1) +{ + int i; + lbl_1_bss_4E0 = arg0; + lbl_1_bss_688.unk0C = arg1; + fn_1_C30(); + fn_1_3668(255); + fn_1_2828(lbl_1_bss_4E0, fn_1_11FD0); + fn_1_3754(); + fn_1_11418(arg1); + HuPrcChildCreate(fn_1_10194, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_1094C, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_1112C, 100, 8192, 0, HuPrcCurrentGet()); + for(i=0; i<4; i++) { + HuPrcChildCreate(fn_1_11BB0, 100, 8192, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_FDFC, 100, 8192, 0, HuPrcCurrentGet()); +} + +void fn_1_EB60(omObjData *object) +{ + if(object->work[2]) { + object->work[2]--; + return; + } + if(object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + fn_1_1DFC(object, 1, object->work[1], 15, 1); + object->work[0] = object->work[1] = object->work[2] = 0; + } +} + +void fn_1_EBEC(void) +{ + int posX = 16; + int posY = 40; + GXColor winColor = { 0, 0, 128, 128 }; + int i; + while(1) { + fn_1_BC8(); + printWin(posX, posY, 220, 160, &winColor); + if(lbl_1_bss_660.unk04 == NULL) { + print8(posX, posY, 1, "PROC_MAIN -> FALSE"); + } else { + print8(posX, posY, 1, "PROC_MAIN -> TRUE"); + } + if(lbl_1_bss_638.unk04 == NULL) { + print8(posX, posY+10, 1, "PROC_MAP -> FALSE"); + } else { + print8(posX, posY+10, 1, "PROC_MAP -> TRUE"); + } + if(lbl_1_bss_610.unk04 == NULL) { + print8(posX, posY+20, 1, "PROC_KOOPA -> FALSE"); + } else { + print8(posX, posY+20, 1, "PROC_KOOPA -> TRUE"); + } + if(lbl_1_bss_5E8.unk04 == NULL) { + print8(posX, posY+30, 1, "PROC_MKOOPA -> FALSE"); + } else { + print8(posX, posY+30, 1, "PROC_MKOOPA -> TRUE"); + } + for(i=0; i<4; i++) { + if(lbl_1_bss_548[i].unk04 == NULL) { + print8(posX, posY+40+(i*10), 1, "PROC_PLAYER%d -> FALSE", i); + } else { + print8(posX, posY+40+(i*10), 1, "PROC_PLAYER%d -> TRUE", i); + } + } + print8(posX, posY+90, 1, "P:%d W:%d", lbl_1_bss_688.unk00, lbl_1_bss_688.unk0C); + print8(posX, posY+110, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for(i=0; i<4; i++) { + print8(posX, posY+120+(i*10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_688.unk30[i].unk00, lbl_1_bss_688.unk30[i].unk04, lbl_1_bss_688.unk30[i].unk08, lbl_1_bss_688.unk30[i].unk0C, lbl_1_bss_688.unk30[i].unk14, lbl_1_bss_688.unk30[i].unk10); + } + } +} + +void fn_1_EFCC(void) +{ + lbl_1_bss_78[0] = HuAudSeqPlay(52); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + fn_1_BE8(60); +} + +void fn_1_F028(void) +{ + int i; + for(i=0; i<4; i++) { + lbl_1_bss_548[i].unk04 = (void *)fn_1_11934; + } + do { + fn_1_BC8(); + for(i=0; i<4; i++) { + if(lbl_1_bss_548[i].unk04 != NULL) { + break; + } + } + } while(i != 4); + lbl_1_bss_548[lbl_1_bss_688.unk00].unk04 = (void *)fn_1_11A98; + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_1205C); + do { + fn_1_BC8(); + } while(lbl_1_bss_548[lbl_1_bss_688.unk00].unk04 != NULL); + do { + fn_1_BC8(); + } while(lbl_1_bss_5E8.unk04 != NULL); + fn_1_BE8(30); + if(0) { + //Dummy code to stop this function from inlining + do { + fn_1_BC8(); + for(i=0; i<4; i++) { + if(lbl_1_bss_548[i].unk04 != NULL) { + break; + } + } + } while(i != 4); + lbl_1_bss_548[lbl_1_bss_688.unk00].unk04 = (void *)fn_1_11A98; + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_1205C); + do { + fn_1_BC8(); + } while(lbl_1_bss_548[lbl_1_bss_688.unk00].unk04 != NULL); + do { + fn_1_BC8(); + } while(lbl_1_bss_5E8.unk04 != NULL); + fn_1_BE8(30); + } +} + +void fn_1_F150(void) +{ + lbl_1_bss_688.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_688.unk0C); + HuAudFXPlay(lbl_1_data_0[5][0]); + fn_1_10DF4(3, -1, 15, 1, 0); + fn_1_1D18(lbl_1_bss_688.unk04, 0x1F0009); + fn_1_1AFC(lbl_1_bss_688.unk04, -1); + fn_1_1D18(lbl_1_bss_688.unk04, 0x250004); + fn_1_10DF4(1, -1, 15, 1, 0); + fn_1_1A94(lbl_1_bss_688.unk04); +} + +int fn_1_F22C(void) +{ + int result = 0; + fn_1_1D18(lbl_1_bss_688.unk04, 0x1E0021); + fn_1_1AFC(lbl_1_bss_688.unk04, 5); + lbl_1_bss_688.unk08 = fn_1_7064(0x1E0035, lbl_1_bss_688.unk0C); + fn_1_1D18(lbl_1_bss_688.unk08, 0x1E0035); + result = fn_1_1C64(lbl_1_bss_688.unk08); + fn_1_1D18(lbl_1_bss_688.unk08, 0x250004); + fn_1_71DC(lbl_1_bss_688.unk08); + return result; +} + +int fn_1_F2FC(void) +{ + int result = 0; + fn_1_1D18(lbl_1_bss_688.unk04, 0x1E0005); + fn_1_1AFC(lbl_1_bss_688.unk04, 5); + lbl_1_bss_688.unk08 = fn_1_7064(0x1E0035, lbl_1_bss_688.unk0C); + fn_1_1D18(lbl_1_bss_688.unk08, 0x1E0035); + result = fn_1_1BA8(lbl_1_bss_688.unk08, 1); + fn_1_1D18(lbl_1_bss_688.unk08, 0x250004); + fn_1_71DC(lbl_1_bss_688.unk08); + return result; +} + +void fn_1_F3D0(void) +{ + lbl_1_bss_5E8.unk04 = (void *)fn_1_10EA0; + lbl_1_bss_688.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_688.unk0C); + HuAudFXPlay(lbl_1_data_0[5][0]); + fn_1_1D18(lbl_1_bss_688.unk04, 0x1F000A); + fn_1_1AFC(lbl_1_bss_688.unk04, -1); + fn_1_1D18(lbl_1_bss_688.unk04, 0x250004); + fn_1_1A94(lbl_1_bss_688.unk04); + HuAudSeqFadeOut(lbl_1_bss_78[0], 1000); + do { + fn_1_BC8(); + } while(lbl_1_bss_5E8.unk04 != NULL); + lbl_1_bss_610.unk04 = (void *)fn_1_106B0; + do { + fn_1_BC8(); + } while(lbl_1_bss_610.unk04 != NULL); + fn_1_7384(lbl_1_bss_548[lbl_1_bss_688.unk00].unk00->model[1], lbl_1_bss_688.unk30[lbl_1_bss_688.unk00].unk10, 1, 20, 1); + lbl_1_bss_78[1] = HuAudSeqPlay(6); + fn_1_BE8(30); + fn_1_1DFC(lbl_1_bss_610.unk00, 1, 4, 30, 0); + fn_1_BE8(30); + lbl_1_bss_688.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_688.unk0C); + HuAudFXPlay(lbl_1_data_0[6][0]); + HuWinAttrSet(lbl_1_bss_688.unk04, 0x400); + HuWinMesSet(lbl_1_bss_688.unk04, 0x1F000B); + fn_1_2264(lbl_1_bss_610.unk00, 1, 4, 10); + fn_1_1DFC(lbl_1_bss_610.unk00, 1, 1, 10, 1); + HuWinAttrReset(lbl_1_bss_688.unk04, 0x400); + HuWinKeyWaitEntry(lbl_1_bss_688.unk04); + fn_1_BC8(); + fn_1_1AFC(lbl_1_bss_688.unk04, -1); + fn_1_1D18(lbl_1_bss_688.unk04, 0x250004); + fn_1_1A94(lbl_1_bss_688.unk04); + fn_1_BE8(60); + fn_1_E638(); + Hu3DModelAttrReset(lbl_1_bss_638.unk00->model[5], 1); + Hu3DModelAttrReset(lbl_1_bss_638.unk00->model[6], 1); + fn_1_1DFC(lbl_1_bss_610.unk00, 1, 4, 15, 1); + fn_1_1DFC(lbl_1_bss_638.unk00, 2, 3, 0, 0); + fn_1_BE8(45); + HuAudFXPlay(lbl_1_data_0[6][0]); + fn_1_BE8(15); + fn_1_1DFC(lbl_1_bss_548[lbl_1_bss_688.unk00].unk00, 1, 5, 0, 0); + fn_1_BC8(); + fn_1_7384(lbl_1_bss_548[lbl_1_bss_688.unk00].unk00->model[1], lbl_1_bss_688.unk30[lbl_1_bss_688.unk00].unk10, 1, 10, 0); + fn_1_2264(lbl_1_bss_638.unk00, 2, 3, 0); + HuAudSeqFadeOut(lbl_1_bss_78[1], 3000); + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_1218C); + fn_1_BE8(150); +} + +void fn_1_F838(void) +{ + +} + +void fn_1_F83C(void) +{ + fn_1_BE8(60); + HuAudSeqFadeOut(lbl_1_bss_78[0], 1000); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + CharModelKill(-1); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); +} + +void fn_1_F8B4(omObjData* arg0, StructBss16C* arg1) +{ + int mode = 0; + int i; + fn_1_EFCC(); + fn_1_F028(); + fn_1_F150(); + lbl_1_bss_688.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_688.unk0C); + while(1) { + fn_1_BC8(); + if(fn_1_F22C()) { + mode = 0; + break; + } else if(fn_1_F2FC()) { + mode = 1; + break; + } + } + + fn_1_1A94(lbl_1_bss_688.unk04); + for(i=0; i<4; i++) { + if(lbl_1_bss_688.unk30[i].unk00 != lbl_1_bss_688.unk30[lbl_1_bss_688.unk00].unk00) { + Hu3DModelAttrSet(lbl_1_bss_548[i].unk00->model[1], 1); + } + Hu3DModelAttrSet(lbl_1_bss_548[i].unk00->model[2], 1); + } + switch(mode) { + case 0: + fn_1_F3D0(); + break; + case 1: + break; + } + switch(mode) { + case 0: + fn_1_E8EC(); + break; + + case 1: + fn_1_F83C(); + break; + } + arg1->unk04 = NULL; +} + +void fn_1_FDFC(void) +{ + omObjData *obj; + lbl_1_bss_660.unk00 = obj = omAddObjEx(lbl_1_bss_4E0, 256, 16, 16, -1, NULL); + lbl_1_bss_660.unk04 = (void *)fn_1_F8B4; + lbl_1_bss_660.unk00->data = &lbl_1_bss_660; + while(1) { + fn_1_BC8(); + if(lbl_1_bss_660.unk04 != NULL) { + lbl_1_bss_660.unk04(obj, &lbl_1_bss_660); + } + } +} + +void fn_1_FEB0(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(0x660052); + object->motion[1] = Hu3DMotionIDGet(object->model[1]); + Hu3DModelShadowMapObjSet(object->model[1], "base_story-base"); + fn_1_1DFC(object, 1, 1, 0, 1); + object->model[2] = Hu3DModelCreateFile(0x660053); + object->motion[2] = Hu3DJointMotionFile(object->model[2], 0x660054); + object->motion[3] = Hu3DJointMotionFile(object->model[2], 0x660055); + fn_1_1DFC(object, 2, 2, 0, 2); + object->model[5] = Hu3DModelCreateFile(0x660057); + object->motion[5] = Hu3DMotionIDGet(object->model[5]); + Hu3DModelPosSet(object->model[5], 0, 80, 460); + Hu3DModelAttrSet(object->model[5], 1); + Hu3DModelShadowSet(object->model[5]); + fn_1_1DFC(object, 5, 5, 0, 2); + object->model[6] = Hu3DModelCreateFile(0x660058); + object->motion[6] = Hu3DMotionIDGet(object->model[6]); + Hu3DModelHookSet(object->model[5], "koopabox_fix-effect_fook2", object->model[6]); + Hu3DModelAttrSet(object->model[6], 1); + fn_1_1DFC(object, 6, 6, 0, 2); +} + +void fn_1_100D8(omObjData* arg0, StructBss16C* arg1) +{ + Hu3DData[arg0->model[5]].pos.y = fn_1_B08(80, 90, arg1->unk08++, 360); + if(arg1->unk08 >= 360) { + arg1->unk08 = 0; + } +} + +void fn_1_10194(void) +{ + omObjData *obj; + lbl_1_bss_638.unk00 = obj = omAddObjEx(lbl_1_bss_4E0, 256, 16, 16, -1, NULL); + lbl_1_bss_638.unk04 = (void *)fn_1_100D8; + lbl_1_bss_638.unk00->data = &lbl_1_bss_638; + fn_1_FEB0(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_638.unk04 != NULL) { + lbl_1_bss_638.unk04(obj, &lbl_1_bss_638); + } + } +} + +void fn_1_10448(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(0x660062); + object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660063); + object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660065); + object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660069); + object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660066); + Hu3DModelPosSet(object->model[1], -180, 0, 800); + Hu3DModelRotSet(object->model[1], 0, 60, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); +} + +void fn_1_10604(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_610.unk00, 1, arg0, arg2, arg3); + if(arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_610.unk00->work[0] = arg4; + lbl_1_bss_610.unk00->work[1] = arg1; + lbl_1_bss_610.unk00->work[2] = arg2+1; +} + +void fn_1_106B0(omObjData* arg0, StructBss16C* arg1) +{ + int i = 0; + float speed = 50; + + HuAudFXPlay(153); + fn_1_10604(2, 1, 0, 0, 1); + fn_1_BE8(5); + Hu3DMotionTimeSet(lbl_1_bss_610.unk00->model[1], 100); + fn_1_BC8(); + Hu3DModelAttrReset(arg0->model[1], 1); + while(1) { + fn_1_BC8(); + if(Hu3DMotionTimeGet(lbl_1_bss_610.unk00->model[1]) >= 137) { + break; + } + } + HuAudFXPlay(156); + omVibrate(lbl_1_bss_688.unk0C, 45, 12, 0); + fn_1_67D8(lbl_1_bss_548[lbl_1_bss_688.unk00].unk00, 6, 1, 5, 0); + for(i=0; i<60; i++) { + float posY; + fn_1_BC8(); + posY = fn_1_B08(0, speed, i%15, 15); + speed = fn_1_88C(speed, 0, 30); + lbl_1_bss_688.unk100 = fn_1_88C(lbl_1_bss_688.unk100, posY, 5); + } + lbl_1_bss_688.unk100 = 0; + arg1->unk04 = NULL; +} + +void fn_1_1094C(void) +{ + omObjData *obj; + lbl_1_bss_610.unk00 = obj = omAddObjEx(lbl_1_bss_4E0, 256, 16, 16, -1, NULL); + lbl_1_bss_610.unk04 = NULL; + lbl_1_bss_610.unk00->data = &lbl_1_bss_638; + fn_1_10448(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_610.unk04 != NULL) { + lbl_1_bss_610.unk04(obj, &lbl_1_bss_610); + } + if(obj->work[0]) { + if(obj->work[2]) { + obj->work[2]--; + } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_10C00(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(0x66007D); + object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x66007E); + object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660080); + object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660081); + object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660084); + object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x660085); + Hu3DModelPosSet(object->model[1], -300, 0, 890); + Hu3DModelRotSet(object->model[1], 0, 30, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); + CharModelEffectNpcInit(object->model[1], object->motion[2], 1, 13); +} + +void fn_1_10DF4(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_5E8.unk00, 1, arg0, arg2, arg3); + if(arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_5E8.unk00->work[0] = arg4; + lbl_1_bss_5E8.unk00->work[1] = arg1; + lbl_1_bss_5E8.unk00->work[2] = arg2+1; +} + +void fn_1_10EA0(omObjData* arg0, StructBss16C* arg1) +{ + Vec pos = { -600, 0, 800 }; + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, -90, 60, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_10F84(omObjData* arg0, StructBss16C* arg1) +{ + int i; + for(i=0; i<15; i++) { + fn_1_BC8(); + Hu3DData[arg0->model[1]].rot.y = fn_1_864(0, 135, i, 15); + } + arg1->unk04 = NULL; +} + +void fn_1_11048(omObjData* arg0, StructBss16C* arg1) +{ + Vec pos = { -120, 0, 800 }; + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, 60, 60, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_1112C(void) +{ + omObjData *obj; + lbl_1_bss_5E8.unk00 = obj = omAddObjEx(lbl_1_bss_4E0, 256, 16, 16, -1, NULL); + lbl_1_bss_5E8.unk04 = NULL; + lbl_1_bss_5E8.unk00->data = &lbl_1_bss_5E8; + fn_1_10C00(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_5E8.unk04 != NULL) { + lbl_1_bss_5E8.unk04(obj, &lbl_1_bss_5E8); + } + if(obj->work[0]) { + if(obj->work[2]) { + obj->work[2]--; + } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_11418(int arg0) +{ + int i; + int order[4]; + order[0] = 0; + for(i=1; i<4; i++) { + order[i] = order[i-1]+1; + if(order[i] >= 4) { + order[i] = 0; + } + if(arg0 == order[i]) { + lbl_1_bss_688.unk00 = i; + } + } + for(i=0; i<4; i++) { + fn_1_357C(&lbl_1_bss_688.unk30[i], order[i]); + } + for(i=0; i<4; i++) { + lbl_1_bss_688.unk30[i].unk18 = GWPlayer[order[i]].rank+1; + } +} + +Vec lbl_1_data_81C[4] = { + { -300, 0, 460 }, + { -100, -30, 460 }, + { 100, -60, 460 }, + { 300, -90, 460 }, +}; + +void fn_1_1154C(omObjData *object, int player) +{ + int playerNo = player; + int charNo = lbl_1_bss_688.unk30[playerNo].unk10; + object->model[1] = CharModelCreate(charNo, 4); + object->motion[1] = CharModelMotionCreate(charNo, 0x5F0000); + object->motion[2] = CharModelMotionCreate(charNo, 0x5F0003); + object->motion[3] = CharModelMotionCreate(charNo, 0x5F0005); + object->motion[4] = CharModelMotionCreate(charNo, 0x5F001A); + object->motion[5] = CharModelMotionCreate(charNo, 0x5F006D); + object->motion[6] = Hu3DJointMotionFile(object->model[1], 0x660018+charNo); + CharModelMotionDataClose(charNo); + Hu3DModelPosSet(object->model[1], lbl_1_data_81C[playerNo].x, lbl_1_data_81C[lbl_1_bss_688.unk30[playerNo].unk18-1].y+90, lbl_1_data_81C[playerNo].z); + Hu3DModelRotSet(object->model[1], 0, 0, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); + object->model[2] = Hu3DModelCreateFile(0x660056); + Hu3DModelPosSet(object->model[2], lbl_1_data_81C[playerNo].x, lbl_1_data_81C[lbl_1_bss_688.unk30[playerNo].unk18-1].y, lbl_1_data_81C[playerNo].z); + if(lbl_1_bss_688.unk30[playerNo].unk18 == 4) { + Hu3DModelAttrSet(object->model[2], 1); + } + Hu3DModelScaleSet(object->model[2], 1.5, 1, 1.5); + Hu3DModelShadowMapSet(object->model[2]); +} + +void fn_1_11838(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_548[lbl_1_bss_688.unk00].unk00, 1, arg0, arg2, arg3); + if(arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_548[lbl_1_bss_688.unk00].unk00->work[0] = arg4; + lbl_1_bss_548[lbl_1_bss_688.unk00].unk00->work[1] = arg1; + lbl_1_bss_548[lbl_1_bss_688.unk00].unk00->work[2] = arg2+1; +} + +void fn_1_11934(omObjData* arg0, StructBss16C* arg1) +{ + float posY = Hu3DData[arg0->model[1]].pos.y; + int i; + for(i=0; i<60; i++) { + fn_1_BC8(); + Hu3DData[arg0->model[1]].pos.y = fn_1_984(posY, 0, i, 60); + Hu3DData[arg0->model[2]].pos.y = fn_1_984(posY-90, -90, i, 60); + } + Hu3DModelAttrSet(arg0->model[2], 1); + arg1->unk04 = NULL; +} + +void fn_1_11A98(omObjData* arg0, StructBss16C* arg1) +{ + Vec pos = { 120, 0, 800 }; + lbl_1_bss_5E8.unk04 = (void *)fn_1_11048; + fn_1_1DFC(lbl_1_bss_638.unk00, 2, 2, 0, 0); + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, -60, 30, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_11BB0(void) +{ + omObjData *obj; + int playerNo = lbl_1_bss_688.unk10++; + lbl_1_bss_548[playerNo].unk00 = obj = omAddObjEx(lbl_1_bss_4E0, 256, 16, 16, -1, NULL); + lbl_1_bss_548[playerNo].unk04 = NULL; + lbl_1_bss_548[playerNo].unk00->data = &lbl_1_bss_548[0]; + fn_1_1154C(obj, playerNo); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_548[playerNo].unk04 != NULL) { + lbl_1_bss_548[playerNo].unk04(obj, &lbl_1_bss_548[playerNo]); + } + if(obj->work[0]) { + if(obj->work[2]) { + obj->work[2]--; + } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_11FD0(void) +{ + StructBss24 *work = &lbl_1_bss_24; + work->unk08.x = 0; + work->unk08.y = 170; + work->unk08.z = 0; + work->unk20.x = -5; + work->unk20.y = 0; + work->unk20.z = 0; + work->unk38 = 1700; +} + +void fn_1_1205C(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + temp.unk08.x = 0; + temp.unk08.y = 125; + temp.unk08.z = 0; + temp.unk20.x = -5; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 1750; + fn_1_4FEC(work, &temp, work->unk40++, 60, 30); + if(0.0f != lbl_1_bss_688.unk100) { + work->unk08.y = lbl_1_bss_688.unk100+125; + } +} + +void fn_1_1218C(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + if(work->unk40 == 50) { + fn_1_1DFC(lbl_1_bss_638.unk00, 5, 5, 0, 0); + fn_1_1DFC(lbl_1_bss_638.unk00, 6, 6, 0, 0); + HuAudFXPlay(161); + } + temp.unk08.x = 0; + temp.unk08.y = 100; + temp.unk08.z = 460; + temp.unk20.x = 0; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 125; + fn_1_4FEC(work, &temp, work->unk40, 180, 10); + if(work->unk40++ >= 90) { + if(work->unk40 == 91) { + lbl_1_bss_88[0] = HuAudFXPlay(32); + } + work->unk20.x = fn_1_864(work->unk20.x, -45, work->unk40-90, 90); + Hu3DData[lbl_1_bss_638.unk00->model[5]].rot.x = fn_1_864(0, 45, work->unk40-90, 90); + } +} \ No newline at end of file From f28e9d19aa20f800ed7cbc8d457f380bee3c015b Mon Sep 17 00:00:00 2001 From: Liam Coleman Date: Sat, 11 Jan 2025 00:04:16 -0600 Subject: [PATCH 246/311] Match rest of mstory2 (#521) --- config/GMPE01_00/rels/mstory2Dll/splits.txt | 4 +- config/GMPE01_01/rels/mstory2Dll/splits.txt | 4 +- configure.py | 8 +- include/REL/mstory2Dll.h | 2 + include/game/gamework_data.h | 5 +- src/REL/mentDll/main.c | 2 +- src/REL/modeseldll/filesel.c | 2 +- src/REL/mstory2Dll/ending.c | 676 ++++++++++++++++ src/REL/mstory2Dll/mg_clear.c | 831 ++++++++++++++++++++ src/REL/mstory2Dll/mg_miss.c | 501 ++++++++++++ src/REL/mstory2Dll/save.c | 118 +++ src/REL/mstory4Dll/main.c | 2 +- 12 files changed, 2142 insertions(+), 13 deletions(-) create mode 100644 src/REL/mstory2Dll/ending.c create mode 100644 src/REL/mstory2Dll/mg_clear.c create mode 100644 src/REL/mstory2Dll/mg_miss.c create mode 100644 src/REL/mstory2Dll/save.c diff --git a/config/GMPE01_00/rels/mstory2Dll/splits.txt b/config/GMPE01_00/rels/mstory2Dll/splits.txt index 080a347f..aa6bd0d5 100644 --- a/config/GMPE01_00/rels/mstory2Dll/splits.txt +++ b/config/GMPE01_00/rels/mstory2Dll/splits.txt @@ -38,13 +38,13 @@ REL/mstory2Dll/mg_clear.c: REL/mstory2Dll/mg_miss.c: .text start:0x00016060 end:0x000186D0 - .rodata start:0x000003D0 end:0x00000440 + .rodata start:0x000003D0 end:0x00000438 .data start:0x00000DB8 end:0x00000EF8 .bss start:0x00000968 end:0x00000B38 REL/mstory2Dll/ending.c: .text start:0x000186D0 end:0x0001B560 - .rodata start:0x00000440 end:0x000004B8 + .rodata start:0x00000438 end:0x000004B8 .data start:0x00000EF8 end:0x00001113 .bss start:0x00000B38 end:0x00000D10 diff --git a/config/GMPE01_01/rels/mstory2Dll/splits.txt b/config/GMPE01_01/rels/mstory2Dll/splits.txt index 2d36e6e7..efd06f61 100644 --- a/config/GMPE01_01/rels/mstory2Dll/splits.txt +++ b/config/GMPE01_01/rels/mstory2Dll/splits.txt @@ -38,13 +38,13 @@ REL/mstory2Dll/mg_clear.c: REL/mstory2Dll/mg_miss.c: .text start:0x00016060 end:0x000186D0 - .rodata start:0x000003D0 end:0x00000440 + .rodata start:0x000003D0 end:0x00000438 .data start:0x00000DB8 end:0x00000EF8 .bss start:0x00000968 end:0x00000B38 REL/mstory2Dll/ending.c: .text start:0x000186D0 end:0x0001B560 - .rodata start:0x00000440 end:0x000004B8 + .rodata start:0x00000438 end:0x000004B8 .data start:0x00000EF8 end:0x00001113 .bss start:0x00000B38 end:0x00000D10 diff --git a/configure.py b/configure.py index dc0c82ab..015fa960 100644 --- a/configure.py +++ b/configure.py @@ -1374,10 +1374,10 @@ config.libs = [ Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/board_entrance.c"), Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/board_clear.c"), Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/board_miss.c"), - Object(NonMatching, "REL/mstory2Dll/mg_clear.c"), - Object(NonMatching, "REL/mstory2Dll/mg_miss.c"), - Object(NonMatching, "REL/mstory2Dll/ending.c"), - Object(NonMatching, "REL/mstory2Dll/save.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/mg_clear.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/mg_miss.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/ending.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/save.c"), }, ), Rel( diff --git a/include/REL/mstory2Dll.h b/include/REL/mstory2Dll.h index b170640e..7998a490 100644 --- a/include/REL/mstory2Dll.h +++ b/include/REL/mstory2Dll.h @@ -46,6 +46,7 @@ float fn_1_864(float arg0, float arg1, float arg2, float arg3); float fn_1_88C(float arg0, float arg1, float arg2); float fn_1_8AC(float arg0, float arg1, float arg2, float arg3); float fn_1_984(float arg0, float arg1, float arg2, float arg3); +float fn_1_A4C(float arg0, float arg1, float arg2, float arg3); float fn_1_B08(float arg0, float arg1, float arg2, float arg3); void fn_1_BC8(void); void fn_1_BE8(s32 arg0); @@ -77,6 +78,7 @@ void fn_1_6704(omObjData* arg0); void fn_1_67D8(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); void fn_1_6A90(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); void fn_1_6D78(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_6DBC(s32 arg0, s32 arg1, s32 arg2, s32 arg3); s32 fn_1_7064(s32 arg0, s32 arg1); void fn_1_71DC(s32 arg0); void fn_1_7244(s16 modelId, char *objName, u32 constAttr, float ofs); diff --git a/include/game/gamework_data.h b/include/game/gamework_data.h index 8d98cad0..0e2c8254 100644 --- a/include/game/gamework_data.h +++ b/include/game/gamework_data.h @@ -40,7 +40,8 @@ typedef struct system_state { }; /* 0x09 */ s8 last5_effect; /* 0x0A */ s8 player_curr; -/* 0x0B */ s8 unk0B[3]; +/* 0x0B */ u8 unk0B; +/* 0x0C */ s8 unk0C; /* 0x0E */ s16 block_pos; /* 0x10 */ u8 ATTRIBUTE_ALIGN(4) board_data[32]; /* 0x30 */ u8 mess_delay; @@ -316,7 +317,7 @@ static inline s32 GWPlayerCurrGet(void) static inline s32 GWUnkB1Get(void) { - return GWSystem.unk0B[1]; + return GWSystem.unk0C; } static inline s32 GWPlayerTeamGet(s32 player) diff --git a/src/REL/mentDll/main.c b/src/REL/mentDll/main.c index 03f49eb0..3888ccf4 100644 --- a/src/REL/mentDll/main.c +++ b/src/REL/mentDll/main.c @@ -2696,7 +2696,7 @@ void fn_1_E71C(s32 arg0) inline void fn_1_E874_inline(void) { s32 sp18 = lbl_1_bss_3114[0].unk_68; - GWSystem.unk0B[1] = sp18; + GWSystem.unk0C = sp18; } void fn_1_E874(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) diff --git a/src/REL/modeseldll/filesel.c b/src/REL/modeseldll/filesel.c index 53a1d962..ef0bc58f 100644 --- a/src/REL/modeseldll/filesel.c +++ b/src/REL/modeseldll/filesel.c @@ -1859,7 +1859,7 @@ void fn_1_A8C0(s16 boxno) SLLoadBoardStory(); lbl_1_bss_EE[boxno] = GWGameStat.total_stars; lbl_1_bss_D0[boxno] = GWGameStat.create_time; - lbl_1_bss_E8[boxno] = GWSystem.unk0B[1]; + lbl_1_bss_E8[boxno] = GWSystem.unk0C; lbl_1_bss_C4[boxno] = GWGameStat.story_continue; lbl_1_bss_B8[boxno] = GWGameStat.party_continue; if (GWGameStat.story_continue) { diff --git a/src/REL/mstory2Dll/ending.c b/src/REL/mstory2Dll/ending.c new file mode 100644 index 00000000..c0c09595 --- /dev/null +++ b/src/REL/mstory2Dll/ending.c @@ -0,0 +1,676 @@ +#include "REL/mstory2Dll.h" +#include "game/armem.h" +#include "game/board/main.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "game/pad.h" +#include "game/objsub.h" +#include "game/esprite.h" + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ char unk18[0x18]; + /* 0x030 */ StructFn357C unk30[4]; + /* 0x100 */ float unk100; +} StructBssC0C; // Size 0x104 + +StructBssC0C lbl_1_bss_C0C; +StructBss16C lbl_1_bss_BE4; +StructBss16C lbl_1_bss_BBC; +StructBss16C lbl_1_bss_B94; +StructBss16C lbl_1_bss_B6C; +StructBss16C lbl_1_bss_B44; +BOOL lbl_1_bss_B40; +BOOL lbl_1_bss_B3C; +Process *lbl_1_bss_B38; + +s32 lbl_1_data_EF8[2][2] = { 20, 70, 1, 1 }; +s32 lbl_1_data_F08 = -1; +s32 lbl_1_data_F0C[2] = { -1, -1 }; +s32 lbl_1_data_F14 = 127; + +void fn_1_19F14(void); +void fn_1_1A160(void); +void fn_1_1A538(omObjData* arg0, StructBss16C* arg1); +void fn_1_1A578(void); +void fn_1_1A9D0(omObjData* arg0, StructBss16C* arg1); +void fn_1_1AAB4(void); +void fn_1_1AFD4(omObjData* arg0, StructBss16C* arg1); +void fn_1_1B0E4(void); +void fn_1_1AD3C(int arg0); +void fn_1_1B318(void); +void fn_1_1B3A4(void); +void fn_1_1B430(void); + +void fn_1_186D0(void) +{ + int i; + while(1) { + HuPrcVSleep(); + if(lbl_1_data_F08 != -1 && lbl_1_data_F0C[0] != -1 && lbl_1_data_F0C[1] != -1 && lbl_1_data_F0C[0] == Hu3DMotionIDGet(lbl_1_data_F08)) { + for(i=0; i<2; i++) { + if(lbl_1_data_EF8[1][i] != -1) { + if(Hu3DMotionTimeGet(lbl_1_data_F08) >= lbl_1_data_EF8[0][i]) { + OSReport("KE-System TIME:%d\n", lbl_1_data_EF8[0][i]); + HuAudFXPlayVol(81, lbl_1_data_F14); + lbl_1_data_EF8[1][i] = -1; + } + } + } + if(Hu3DMotionTimeGet(lbl_1_data_F08) <= 10) { + for(i=0; i<2; i++) { + lbl_1_data_EF8[1][i] = 1; + } + } + } + if(lbl_1_bss_B3C == 1) { + lbl_1_data_F14--; + if(lbl_1_data_F14 <= 0) { + lbl_1_data_F14 = 0; + } + } + if(lbl_1_bss_B3C == 2) { + break; + } + } + HuPrcEnd(); + while(1) { + HuPrcVSleep(); + } +} + +void fn_1_188F0(Process* arg0, s32 arg1) +{ + lbl_1_bss_B38 = arg0; + if(GWSystem.diff_story == 2) { + GWGameStat.field10E_bit4 = TRUE; + } + lbl_1_bss_C0C.unk0C = arg1; + fn_1_C30(); + fn_1_3668(255); + fn_1_2828(lbl_1_bss_B38, fn_1_1B318); + fn_1_3754(); + fn_1_1AD3C(arg1); + HuPrcChildCreate(fn_1_1B0E4, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_1A160, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_1AAB4, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_1A578, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_19F14, 100, 12288, 0, HuPrcCurrentGet()); +} + +void fn_1_18A34(omObjData *object) +{ + if(object->work[2]) { + object->work[2]--; + return; + } + if(object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + fn_1_1DFC(object, 1, object->work[1], 15, 1); + object->work[0] = object->work[1] = object->work[2] = 0; + } +} + +void fn_1_18AC0(void) +{ + int posX = 16; + int posY = 40; + GXColor winColor = { 0, 0, 128, 128 }; + int i; + while(1) { + fn_1_BC8(); + fontcolor = FONT_COLOR_WHITE; + printWin(posX, posY, 220, 130, &winColor); + if(lbl_1_bss_BE4.unk04 == NULL) { + print8(posX, posY, 1, "PROC_MAIN -> FALSE"); + } else { + print8(posX, posY, 1, "PROC_MAIN -> TRUE"); + } + if(lbl_1_bss_BBC.unk04 == NULL) { + print8(posX, posY+10, 1, "PROC_MAP -> FALSE"); + } else { + print8(posX, posY+10, 1, "PROC_MAP -> TRUE"); + } + if(lbl_1_bss_B94.unk04 == NULL) { + print8(posX, posY+20, 1, "PROC_PLAYER -> FALSE"); + } else { + print8(posX, posY+20, 1, "PROC_PLAYER -> TRUE"); + } + if(lbl_1_bss_B6C.unk04 == NULL) { + print8(posX, posY+30, 1, "PROC_SUB -> FALSE"); + } else { + print8(posX, posY+30, 1, "PROC_SUB -> TRUE"); + } + if(lbl_1_bss_B44.unk04 == NULL) { + print8(posX, posY+40, 1, "PROC_KOOPA -> FALSE"); + } else { + print8(posX, posY+40, 1, "PROC_KOOPA -> TRUE"); + } + + print8(posX, posY+60, 1, "P:%d W:%d", lbl_1_bss_C0C.unk00, lbl_1_bss_C0C.unk0C); + print8(posX, posY+80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for(i=0; i<4; i++) { + print8(posX, posY+90+(i*10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_C0C.unk30[i].unk00, lbl_1_bss_C0C.unk30[i].unk04, lbl_1_bss_C0C.unk30[i].unk08, lbl_1_bss_C0C.unk30[i].unk0C, lbl_1_bss_C0C.unk30[i].unk14, lbl_1_bss_C0C.unk30[i].unk10); + } + } +} + +void fn_1_18E7C(void) +{ + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + fn_1_BE8(60); +} + +void fn_1_18EC4(void) +{ + lbl_1_bss_C0C.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_C0C.unk0C); + HuAudFXPlay(lbl_1_data_0[6][1]); + fn_1_1D18(lbl_1_bss_C0C.unk04, 0x1F001E); + fn_1_1AFC(lbl_1_bss_C0C.unk04, -1); + fn_1_1D18(lbl_1_bss_C0C.unk04, 0x250004); + fn_1_1A94(lbl_1_bss_C0C.unk04); + lbl_1_bss_B44.unk04 = (void *)fn_1_1A538; + lbl_1_bss_B3C = 1; + fn_1_BE8(60); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + fn_1_BE8(60); + lbl_1_bss_B44.unk04 = NULL; + lbl_1_bss_B3C = 2; + fn_1_1DFC(lbl_1_bss_B44.unk00, 1, 1, 0, 1); + fn_1_2750(fn_1_1B3A4); + Hu3DModelAttrReset(lbl_1_bss_BBC.unk00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_BBC.unk00->model[2], 1); + Hu3DModelAttrReset(lbl_1_bss_BBC.unk00->model[4], 1); + Hu3DModelAttrReset(lbl_1_bss_B6C.unk00->model[1], 1); + Hu3DModelAttrReset(lbl_1_bss_B94.unk00->model[1], 1); + Hu3DModelAttrSet(lbl_1_bss_B44.unk00->model[1], 1); + Hu3DModelPosSet(lbl_1_bss_BBC.unk00->model[1], 0, 0, 0); + fn_1_BE8(60); + lbl_1_bss_78[0] = HuAudSeqPlay(56); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + if(0) { + fn_1_BC8(); + } +} + +void fn_1_19138(void) +{ + fn_1_1DFC(lbl_1_bss_BBC.unk00, 2, 3, 0, 0); + fn_1_2264(lbl_1_bss_BBC.unk00, 2, 3, 0); + lbl_1_bss_B94.unk04 = (void *)fn_1_1AFD4; + lbl_1_bss_B6C.unk04 = (void *)fn_1_1A9D0; + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_1B430); + fn_1_BE8(30); + fn_1_1DFC(lbl_1_bss_BBC.unk00, 2, 2, 0, 0); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_B94.unk04 == NULL) { + break; + } + } + while(1) { + fn_1_BC8(); + if(lbl_1_bss_B6C.unk04 == NULL) { + break; + } + } + lbl_1_bss_C0C.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_C0C.unk0C); + HuAudFXPlay(lbl_1_data_0[0][2]); + fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 3, 15, 1); + fn_1_1D18(lbl_1_bss_C0C.unk04, 0x1F001F); + fn_1_1AFC(lbl_1_bss_C0C.unk04, -1); + fn_1_1D18(lbl_1_bss_C0C.unk04, 0x1F0020); + fn_1_1AFC(lbl_1_bss_C0C.unk04, -1); + fn_1_1D18(lbl_1_bss_C0C.unk04, 0x250004); + fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 1, 15, 1); + fn_1_1A94(lbl_1_bss_C0C.unk04); + fn_1_BE8(60); +} + +char *lbl_1_data_10E4[8] = { + "movie/endmov_ma0.thp", + "movie/endmov_lu0.thp", + "movie/endmov_pe0.thp", + "movie/endmov_yo0.thp", + "movie/endmov_wa0.thp", + "movie/endmov_do0.thp", + "movie/endmov_da0.thp", + "movie/endmov_wl0.thp" +}; + +void fn_1_19334(void) +{ + lbl_1_bss_C0C.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_C0C.unk0C); + HuAudFXPlay(lbl_1_data_0[0][2]); + fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 3, 0, 1); + fn_1_1D4C(lbl_1_bss_C0C.unk04, lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10, 0); + fn_1_1D18(lbl_1_bss_C0C.unk04, 0x1F0024); + fn_1_1AFC(lbl_1_bss_C0C.unk04, -1); + fn_1_1D18(lbl_1_bss_C0C.unk04, 0x250004); + fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 1, 0, 1); + fn_1_1A94(lbl_1_bss_C0C.unk04); + fn_1_1DFC(lbl_1_bss_B94.unk00, 1, 4, 15, 0); + fn_1_2264(lbl_1_bss_B94.unk00, 1, 4, 15); + fn_1_1DFC(lbl_1_bss_B94.unk00, 1, 3, 15, 1); + fn_1_BE8(60); + lbl_1_bss_C0C.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_C0C.unk0C); + fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 3, 0, 1); + fn_1_6D78(lbl_1_bss_C0C.unk04, 0x1F0023, 0, -1); + fn_1_1D18(lbl_1_bss_C0C.unk04, 0x250004); + fn_1_1DFC(lbl_1_bss_B6C.unk00, 1, 1, 0, 1); + HuAudFXPlay(lbl_1_data_0[0][3]); + fn_1_1A94(lbl_1_bss_C0C.unk04); + fn_1_BE8(60); + HuAudFXPlay(152); + Hu3DModelAttrSet(lbl_1_bss_BBC.unk00->model[1], 1); + Hu3DModelAttrSet(lbl_1_bss_BBC.unk00->model[2], 1); + Hu3DModelAttrSet(lbl_1_bss_BBC.unk00->model[4], 1); + Hu3DModelAttrSet(lbl_1_bss_B6C.unk00->model[1], 1); + Hu3DModelAttrSet(lbl_1_bss_B94.unk00->model[1], 1); + HuAudSeqFadeOut(lbl_1_bss_78[0], 100); + lbl_1_bss_B3C = 2; + GWGameStat.field10E_bit6 = TRUE; + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (WipeStatGet()) { + HuPrcVSleep(); + } + lbl_1_bss_BBC.unk04 = NULL; + lbl_1_bss_B94.unk04 = NULL; + lbl_1_bss_B44.unk04 = NULL; + lbl_1_bss_B6C.unk04 = NULL; + + CharModelKill(-1); + Hu3DAllKill(); + fn_1_BE8(60); + { + int time = 0; + int gid = HuSprGrpCreate(3); + int sprid = HuTHPSprCreate(lbl_1_data_10E4[lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10], FALSE, 1000); + HuSprGrpMemberSet(gid, 0, sprid); + HuSprPosSet(gid, 0, 288, 240); + sprid = HuSprCreate(HuSprAnimRead(HuDataReadNum(0x660060, 0x10000000)), 950, 0); + HuSprGrpMemberSet(gid, 1, sprid); + HuSprPosSet(gid, 1, 288, 226); + HuSprAttrSet(gid, 1, HUSPR_ATTR_DISPOFF); + sprid = HuSprCreate(HuSprAnimRead(HuDataReadNum(0x660061, 0x10000000)), 950, 0); + HuSprGrpMemberSet(gid, 2, sprid); + HuSprBankSet(gid, 2, lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10); + if(GWLanguageGet() == 0 && lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10 == 5) { + HuSprBankSet(gid, 2, 8); + } + HuSprPosSet(gid, 2, 288, 254); + HuSprAttrSet(gid, 2, HUSPR_ATTR_DISPOFF); + HuPrcSleep(5); + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); + while(WipeStatGet()) { + HuPrcVSleep(); + } + while(!HuTHPEndCheck()) { + if(time >= 3300) { + HuSprAttrReset(gid, 1, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(gid, 2, HUSPR_ATTR_DISPOFF); + } else { + time++; + } + HuPrcVSleep(); + } + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + while(WipeStatGet()) { + HuPrcVSleep(); + } + HuTHPClose(); + HuPrcVSleep(); + HuSprGrpKill(gid); + } + +} + +void fn_1_199A0(void) +{ + float sp8[2]; + s32 temp_r30; + s32 var_r29; + s32 var_r31; + s32 var_r28; + temp_r30 = 1; + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + if (SLSaveFlagGet() == 0) { + lbl_1_bss_B40 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } + } + espInit(); + HuPrcVSleep(); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 32), 5000, 0); + espPosSet(var_r29, 288.0f, 240.0f); + espAttrReset(var_r29, 4); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + fn_1_BE8(60); + var_r28 = GWUnkB1Get(); + GWSystem.unk0B |= 1 << var_r28; + if (SLSaveFlagGet() == 1) { + HuWinInit(1); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(30, 22)); + var_r31 = HuWinExCreateStyled(-10000.0f, 150.0f, sp8[0], sp8[1], -1, 2); + winData[var_r31].active_pad = 1; + HuWinAttrSet(var_r31, 0x10); + HuWinExAnimIn(var_r31); + HuWinMesSet(var_r31, MAKE_MESSID(30, 22)); + temp_r30 = HuWinChoiceGet(var_r31, 0); + HuWinExAnimOut(var_r31); + HuWinExCleanup(var_r31); + if (SLSaveFlagGet() == 1 && temp_r30 == 0) { + GWGameStat.story_continue = FALSE; + SLCommonSet(); + SLSaveBoardStory(); + SLSave(); + } + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_B40 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_19BE8(void) +{ + omOvlHisData *his; + fn_1_BE8(120); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + CharModelKill(-1); + HuAudFadeOut(1); + his = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY2, 20, 1); + omOvlCallEx(OVL_STAFF, 1, 0, 0); + while(1) { + fn_1_BC8(); + } +} + +void fn_1_19C6C(omObjData* arg0, StructBss16C* arg1) +{ + int temp = 0; + fn_1_18E7C(); + fn_1_18EC4(); + fn_1_19138(); + fn_1_19334(); + fn_1_19BE8(); + arg1->unk04 = NULL; +} + +void fn_1_19F14(void) +{ + omObjData *obj; + lbl_1_bss_BE4.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL); + lbl_1_bss_BE4.unk04 = (void *)fn_1_19C6C; + lbl_1_bss_BE4.unk00->data = &lbl_1_bss_BE4; + while(1) { + fn_1_BC8(); + if(lbl_1_bss_BE4.unk04 != NULL) { + lbl_1_bss_BE4.unk04(obj, &lbl_1_bss_BE4); + } + } +} + +void fn_1_19FC8(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(0x660050); + object->motion[0] = Hu3DMotionIDGet(object->model[1]); + fn_1_1DFC(object, 1, 0, 0, 2); + Hu3DModelShadowMapObjSet(object->model[1], "base_fix9-base"); + Hu3DModelAttrSet(object->model[1], 1); + object->model[2] = Hu3DModelCreateFile(0x660053); + object->motion[2] = Hu3DJointMotionFile(object->model[2], 0x660054); + object->motion[3] = Hu3DJointMotionFile(object->model[2], 0x660055); + Hu3DModelAttrSet(object->model[2], 1); + fn_1_1DFC(object, 2, 3, 0, 2); + object->model[4] = Hu3DModelCreateFile(0x660051); + Hu3DModelAttrSet(object->model[4], 1); + Hu3DModelPosSet(object->model[1], 0, -1000, 0); +} + +void fn_1_1A160(void) +{ + omObjData *obj; + lbl_1_bss_BBC.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL); + lbl_1_bss_BBC.unk04 = NULL; + fn_1_19FC8(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_BBC.unk04 != NULL) { + lbl_1_bss_BBC.unk04(obj, &lbl_1_bss_BBC); + } + } +} + +void fn_1_1A368(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(0x660062); + object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660063); + object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660070); + object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660071); + Hu3DModelPosSet(object->model[1], 0, 0, 600); + Hu3DModelRotSet(object->model[1], 0, 180, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + fn_1_1DFC(object, 1, 3, 0, 1); + lbl_1_data_F08 = object->model[1]; + lbl_1_data_F0C[0] = object->motion[3]; + lbl_1_data_F0C[1] = object->motion[3]; + HuPrcChildCreate(fn_1_186D0, 100, 8192, 0, HuPrcCurrentGet()); +} + +void fn_1_1A538(omObjData* arg0, StructBss16C* arg1) +{ + Hu3DData[lbl_1_bss_B44.unk00->model[1]].pos.z -= 2.5f; +} + +void fn_1_1A578(void) +{ + omObjData *obj; + lbl_1_bss_B44.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL); + lbl_1_bss_B44.unk04 = NULL; + fn_1_1A368(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_B44.unk04 != NULL) { + lbl_1_bss_B44.unk04(obj, &lbl_1_bss_B44); + } + if(obj->work[0]) { + fn_1_6704(obj); + } + } +} + +void fn_1_1A7CC(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(0x660072); + object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660073); + object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660075); + object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660076); + object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x66007C); + object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x660079); + Hu3DModelPosSet(object->model[1], 0, 0, 460); + Hu3DModelRotSet(object->model[1], 0, 0, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 5, 0, 1); + CharModelEffectNpcInit(object->model[1], object->motion[2], 1, 9); +} + + +void fn_1_1A9D0(omObjData* arg0, StructBss16C* arg1) +{ + Vec pos = { -120, 0, 800 }; + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, 90, 60, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_1AAB4(void) +{ + omObjData *obj; + lbl_1_bss_B6C.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL); + lbl_1_bss_B6C.unk04 = NULL; + fn_1_1A7CC(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_B6C.unk04 != NULL) { + lbl_1_bss_B6C.unk04(obj, &lbl_1_bss_B6C); + } + if(obj->work[0]) { + fn_1_6704(obj); + } + } +} + +void fn_1_1AD3C(int arg0) +{ + int i; + int order[4]; + order[0] = 0; + for(i=1; i<4; i++) { + order[i] = order[i-1]+1; + if(order[i] >= 4) { + order[i] = 0; + } + if(arg0 == order[i]) { + lbl_1_bss_C0C.unk00 = i; + } + } + for(i=0; i<4; i++) { + fn_1_357C(&lbl_1_bss_C0C.unk30[i], order[i]); + } +} + +void fn_1_1AE20(omObjData *object) +{ + int charNo = lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10; + object->model[1] = CharModelCreate(charNo, 1); + object->motion[1] = CharModelMotionCreate(charNo, 0x5F0000); + object->motion[2] = CharModelMotionCreate(charNo, 0x5F0035); + object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660010+charNo); + object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660008+charNo); + CharModelMotionDataClose(charNo); + Hu3DModelPosSet(object->model[1], 120, 0, 800); + Hu3DModelRotSet(object->model[1], 0, -135, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelAttrSet(object->model[1], 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); +} + +void fn_1_1AFD4(omObjData* arg0, StructBss16C* arg1) +{ + int i; + fn_1_1DFC(arg0, 1, 2, 0, 0); + fn_1_BC8(); + Hu3DMotionTimeSet(arg0->model[1], 60); + for(i=0; i<60; i++) { + fn_1_BC8(); + Hu3DData[arg0->model[1]].rot.y = fn_1_864(-135, -90, i, 60); + } + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_1B0E4(void) +{ + omObjData *obj; + lbl_1_bss_B94.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL); + lbl_1_bss_B94.unk04 = NULL; + fn_1_1AE20(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_B94.unk04 != NULL) { + lbl_1_bss_B94.unk04(obj, &lbl_1_bss_B94); + } + if(obj->work[0]) { + fn_1_6704(obj); + } + } +} + +void fn_1_1B318(void) +{ + StructBss24 *work = &lbl_1_bss_24; + work->unk08.x = 0; + work->unk08.y = 120; + work->unk08.z = 0; + work->unk20.x = 0; + work->unk20.y = 0; + work->unk20.z = 0; + work->unk38 = 1400; +} + +void fn_1_1B3A4(void) +{ + StructBss24 *work = &lbl_1_bss_24; + work->unk08.x = 0; + work->unk08.y = 125; + work->unk08.z = 0; + work->unk20.x = -4.9f; + work->unk20.y = 0; + work->unk20.z = 0; + work->unk38 = 1750; +} + +void fn_1_1B430(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + temp.unk08.x = 0; + temp.unk08.y = 100; + temp.unk08.z = 0; + temp.unk20.x = 0; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 1400; + fn_1_42A0(work, &temp, work->unk40++, 60, 10); + if(0.0f != lbl_1_bss_C0C.unk100) { + work->unk08.y = 125+lbl_1_bss_C0C.unk100; + } +} \ No newline at end of file diff --git a/src/REL/mstory2Dll/mg_clear.c b/src/REL/mstory2Dll/mg_clear.c new file mode 100644 index 00000000..ddeded43 --- /dev/null +++ b/src/REL/mstory2Dll/mg_clear.c @@ -0,0 +1,831 @@ +#include "REL/mstory2Dll.h" +#include "game/armem.h" +#include "game/board/main.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "game/pad.h" +#include "game/objsub.h" + +typedef struct struct_data850 { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; +} StructData850; + +StructData850 lbl_1_data_850[] = { + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x00), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x01), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x02), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x03), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x04), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x05), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x06), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x07), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x08), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x09), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0E), 1, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0F), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x10), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x11), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x12), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x13), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x14), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x15), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x16), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x17), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x18), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x19), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1E), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1F), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x20), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x21), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x22), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x23), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x24), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x25), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x26), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x27), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x28), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x29), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2E), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2F), 0, 0, 0, 1 }, +}; + +s32 lbl_1_data_C10[2][2] = { 20, 70, 1, 1 }; +s32 lbl_1_data_C20 = -1; +s32 lbl_1_data_C24[2] = { -1, -1 }; + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ char unk18[0x18]; + /* 0x030 */ StructFn357C unk30[4]; + /* 0x100 */ s32 unk100; +} StructBss860; // Size 0x104 + +StructBss860 lbl_1_bss_860; +StructBss16C lbl_1_bss_838; +StructBss16C lbl_1_bss_810; +StructBss16C lbl_1_bss_7E8; +StructBss16C lbl_1_bss_7C0; +StructBss16C lbl_1_bss_798; +BOOL lbl_1_bss_794; +Process *lbl_1_bss_790; + +void fn_1_13BB8(void); +void fn_1_13FB4(omObjData* arg0, StructBss16C* arg1); +void fn_1_140A0(omObjData* arg0, StructBss16C* arg1); +void fn_1_1449C(void); +void fn_1_14A9C(int arg0, int arg1, int arg2, int arg3, int arg4); +void fn_1_14B48(omObjData* arg0, StructBss16C* arg1); +void fn_1_14C40(void); +void fn_1_15134(int arg0, int arg1, int arg2, int arg3, int arg4); +void fn_1_151E0(omObjData* arg0, StructBss16C* arg1); +void fn_1_152C4(omObjData* arg0, StructBss16C* arg1); +void fn_1_153A8(void); +void fn_1_15668(int arg0); +void fn_1_159F0(void); +void fn_1_15CDC(void); +void fn_1_15D68(void); +void fn_1_15E58(void); +void fn_1_15F70(void); + +void fn_1_123C8(void) +{ + int i; + while(1) { + do { + HuPrcVSleep(); + } while(lbl_1_data_C20 == -1 || lbl_1_data_C24[0] == -1 || lbl_1_data_C24[1] == -1 || lbl_1_data_C24[0] != Hu3DMotionIDGet(lbl_1_data_C20)); + for(i=0; i<2; i++) { + if(lbl_1_data_C10[1][i] != -1) { + if(Hu3DMotionTimeGet(lbl_1_data_C20) >= lbl_1_data_C10[0][i]) { + OSReport("KE-System TIME:%d\n", lbl_1_data_C10[0][i]); + HuAudFXPlay(81); + lbl_1_data_C10[1][i] = -1; + } + } + } + if(Hu3DMotionTimeGet(lbl_1_data_C20) <= 10) { + for(i=0; i<2; i++) { + lbl_1_data_C10[1][i] = 1; + } + } + } +} + +void fn_1_1256C(Process* arg0, s32 arg1) +{ + lbl_1_bss_790 = arg0; + lbl_1_bss_860.unk0C = arg1; + fn_1_C30(); + lbl_1_bss_860.unk100 = fn_1_3668(255); + fn_1_2828(lbl_1_bss_790, fn_1_15CDC); + fn_1_3754(); + fn_1_15668(arg1); + HuPrcChildCreate(fn_1_1449C, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_14C40, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_153A8, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_159F0, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_13BB8, 100, 8192, 0, HuPrcCurrentGet()); +} + +void fn_1_12690(omObjData *object) +{ + if(object->work[2]) { + object->work[2]--; + return; + } + if(object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + fn_1_1DFC(object, 1, object->work[1], 15, 1); + object->work[0] = object->work[1] = object->work[2] = 0; + } +} + +void fn_1_1271C(void) +{ + int posX = 16; + int posY = 40; + GXColor winColor = { 0, 0, 128, 128 }; + int i; + while(1) { + fn_1_BC8(); + printWin(posX, posY, 220, 130, &winColor); + if(lbl_1_bss_838.unk04 == NULL) { + print8(posX, posY, 1, "PROC_MAIN -> FALSE"); + } else { + print8(posX, posY, 1, "PROC_MAIN -> TRUE"); + } + if(lbl_1_bss_810.unk04 == NULL) { + print8(posX, posY+10, 1, "PROC_MAP -> FALSE"); + } else { + print8(posX, posY+10, 1, "PROC_MAP -> TRUE"); + } + if(lbl_1_bss_7E8.unk04 == NULL) { + print8(posX, posY+20, 1, "PROC_KOOPA -> FALSE"); + } else { + print8(posX, posY+20, 1, "PROC_KOOPA -> TRUE"); + } + if(lbl_1_bss_7C0.unk04 == NULL) { + print8(posX, posY+30, 1, "PROC_MKOOPA -> FALSE"); + } else { + print8(posX, posY+30, 1, "PROC_MKOOPA -> TRUE"); + } + if(lbl_1_bss_798.unk04 == NULL) { + print8(posX, posY+40, 1, "PROC_PLAYER -> FALSE"); + } else { + print8(posX, posY+40, 1, "PROC_PLAYER -> TRUE"); + } + print8(posX, posY+60, 1, "P:%d W:%d", lbl_1_bss_860.unk00, lbl_1_bss_860.unk0C); + print8(posX, posY+80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for(i=0; i<4; i++) { + print8(posX, posY+90+(i*10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_860.unk30[i].unk00, lbl_1_bss_860.unk30[i].unk04, lbl_1_bss_860.unk30[i].unk08, lbl_1_bss_860.unk30[i].unk0C, lbl_1_bss_860.unk30[i].unk14, lbl_1_bss_860.unk30[i].unk10); + } + } +} + +void fn_1_12AC8(void) +{ + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + fn_1_BE8(30); +} + +void fn_1_12B10(void) +{ + lbl_1_bss_860.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_860.unk0C); + HuAudFXPlay(lbl_1_data_0[6][1]); + fn_1_14A9C(4, 1, 15, 0, 1); + fn_1_1D4C(lbl_1_bss_860.unk04, lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, 0); + fn_1_6D78(lbl_1_bss_860.unk04, 0x1F0014, 0, lbl_1_bss_7E8.unk00->model[1]); + HuAudFXPlay(lbl_1_data_0[6][2]); + fn_1_1DFC(lbl_1_bss_7E8.unk00, 1, 5, 10, 1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x1F0015); + fn_1_1AFC(lbl_1_bss_860.unk04, -1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x250004); + fn_1_15134(1, -1, 15, 1, 0); + fn_1_1A94(lbl_1_bss_860.unk04); + lbl_1_bss_7E8.unk04 = (void *)fn_1_14B48; + fn_1_BE8(60); + fn_1_1DFC(lbl_1_bss_798.unk00, 1, 4, 15, 0); + fn_1_BE8(16); + while(1) { + fn_1_BC8(); + if(Hu3DMotionTimeGet(lbl_1_bss_798.unk00->model[1]) >= 20) { + break; + } + } + Hu3DMotionSpeedSet(lbl_1_bss_798.unk00->model[1], 0); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_7E8.unk04 == NULL) { + break; + } + } + fn_1_BE8(30); + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_15D68); + lbl_1_bss_7C0.unk04 = (void *)fn_1_152C4; + fn_1_BE8(80); + Hu3DMotionSpeedSet(lbl_1_bss_798.unk00->model[1], 1); + fn_1_1DFC(lbl_1_bss_798.unk00, 1, 1, 15, 1); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_7C0.unk04 == NULL) { + break; + } + } +} + +void fn_1_12DD4(void) +{ + lbl_1_bss_860.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_860.unk0C); + lbl_1_bss_78[0] = HuAudSeqPlay(56); + HuAudFXPlay(lbl_1_data_0[5][0]); + fn_1_1DFC(lbl_1_bss_7C0.unk00, 1, 4, 15, 0); + fn_1_1D18(lbl_1_bss_860.unk04, 0x1F0016); + fn_1_1AFC(lbl_1_bss_860.unk04, -1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x250004); + HuAudFXPlay(lbl_1_data_0[5][0]); + fn_1_1DFC(lbl_1_bss_7C0.unk00, 1, 3, 15, 1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x1F0017); + fn_1_1AFC(lbl_1_bss_860.unk04, -1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x250004); + HuAudFXPlay(lbl_1_data_0[5][0]); + fn_1_1D18(lbl_1_bss_860.unk04, 0x1F0018); + fn_1_1AFC(lbl_1_bss_860.unk04, -1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x250004); + fn_1_1DFC(lbl_1_bss_7C0.unk00, 1, 1, 15, 1); + fn_1_1A94(lbl_1_bss_860.unk04); + fn_1_BE8(60); + lbl_1_bss_860.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_860.unk0C); + HuAudFXPlay(lbl_1_data_0[5][0]); + fn_1_1DFC(lbl_1_bss_7C0.unk00, 1, 3, 15, 1); + fn_1_1D4C(lbl_1_bss_860.unk04, lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, 0); + fn_1_1D18(lbl_1_bss_860.unk04, 0x1F0019); + fn_1_1AFC(lbl_1_bss_860.unk04, -1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x250004); + HuAudFXPlay(lbl_1_data_0[5][1]); + fn_1_1D18(lbl_1_bss_860.unk04, 0x1F001A); + fn_1_1AFC(lbl_1_bss_860.unk04, -1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x250004); + lbl_1_bss_7C0.unk04 = (void *)fn_1_151E0; + fn_1_1D18(lbl_1_bss_860.unk04, 0x1F001B); + fn_1_1AFC(lbl_1_bss_860.unk04, -1); + fn_1_1D18(lbl_1_bss_860.unk04, 0x250004); + fn_1_1A94(lbl_1_bss_860.unk04); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_7C0.unk04 == NULL) { + break; + } + } +} + +void fn_1_13150(omObjData* arg0, StructBss16C* arg1) +{ + int streamNo = HuAudSStreamPlay(7); + while(1) { + fn_1_BC8(); + if(HuAudSStreamStatGet(streamNo) == 0) { + break; + } + } + HuAudSeqPause(lbl_1_bss_78[0], 0, 1000); + arg1->unk04 = NULL; +} + +void fn_1_131C0(omObjData* arg0, StructBss16C* arg1) +{ + int presentSe = (lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10*6)+5; + fn_1_BE8(150); + OSReport("########## PRESENT_SE : %d\n", presentSe); + HuAudFXPlay(presentSe+2260); + fn_1_1DFC(lbl_1_bss_810.unk00, 7, 7, 1, 0); + arg1->unk04 = NULL; +} + +void fn_1_13264(void) +{ + int i; + fn_1_1DFC(lbl_1_bss_798.unk00, 1, 2, 15, 1); + for(i=0; i<30; i++) { + fn_1_BC8(); + if(lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 != 5) { + Hu3DData[lbl_1_bss_798.unk00->model[1]].pos.x = fn_1_864(120, 80, i, 30); + } + Hu3DData[lbl_1_bss_798.unk00->model[1]].rot.y = fn_1_864(-60, -90, i, 30); + } + fn_1_1DFC(lbl_1_bss_798.unk00, 1, 5, 5, 0); + fn_1_BE8(10); + while(1) { + fn_1_BC8(); + if(Hu3DMotionTimeGet(lbl_1_bss_798.unk00->model[1]) >= 30) { + break; + } + } + Hu3DModelPosSet(lbl_1_bss_810.unk00->model[5], 0, 0, 0); + Hu3DModelHookSet(lbl_1_bss_798.unk00->model[1], CharModelHookNameGet(lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, 1, 1), lbl_1_bss_810.unk00->model[5]); + fn_1_BE8(60); + lbl_1_bss_810.unk04 = (void *)fn_1_13FB4; + HuAudFXPlay(163); + HuAudCharVoicePlay(lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, 296); + fn_1_1DFC(lbl_1_bss_810.unk00, 6, 6, 0, 0); + Hu3DModelAttrReset(lbl_1_bss_810.unk00->model[6], 1); + Hu3DModelAttrSet(lbl_1_bss_810.unk00->model[5], 1); + fn_1_1DFC(lbl_1_bss_798.unk00, 1, 6, 5, 0); + HuAudSeqPause(lbl_1_bss_78[0], 1, 1000); + WipeColorSet(255, 255, 255); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + while(1) { + fn_1_BC8(); + if(!WipeStatGet()) { + break; + } + } + Hu3DMotionSpeedSet(lbl_1_bss_798.unk00->model[1], 0); + Hu3DMotionTimeSet(lbl_1_bss_798.unk00->model[1], 50); + Hu3DModelAttrReset(lbl_1_bss_810.unk00->model[7], 1); + Hu3DModelAttrReset(lbl_1_bss_810.unk00->model[8], 1); + fn_1_1DFC(lbl_1_bss_810.unk00, 8, 8, 0, 1); + fn_1_BE8(30); + HuAudFXPlay(169); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + while(1) { + fn_1_BC8(); + if(!WipeStatGet()) { + break; + } + } + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_15F70); + fn_1_BE8(60); + lbl_1_bss_798.unk04 = (void *)fn_1_131C0; + lbl_1_bss_860.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_860.unk0C); + lbl_1_bss_7C0.unk04 = (void *)fn_1_13150; + fn_1_1D4C(lbl_1_bss_860.unk04, (lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10*6)+0x32000B, 0); + fn_1_6DBC(lbl_1_bss_860.unk04, 0x320086, 0, 300); + fn_1_1D18(lbl_1_bss_860.unk04,0x250004); + fn_1_1A94(lbl_1_bss_860.unk04); + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_15E58); + lbl_1_bss_810.unk04 = (void *)fn_1_140A0; + fn_1_BE8(30); + Hu3DMotionSpeedSet(lbl_1_bss_798.unk00->model[1], 0.1f); + fn_1_BE8(180); + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); +} + +void fn_1_13828(void) +{ + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + fn_1_BE8(60); + SLCommonSet(); + SLSaveBoardStory(); + if (SLSaveFlagGet() == 1) { + SLSave(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_794 = TRUE; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_138CC(void) +{ + omOvlHisData* var_r31; + + msmSeStopAll(FALSE, 1000); + do { + fn_1_BC8(); + } while (WipeStatGet() != 0); + CharModelKill(-1); + HuAudFXAllStop(); + HuAudSStreamAllStop(); + GWMGAvailSet(omMgIndexGet(58)+401); + GWGameStat.present[lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 * 6 + 5] = 1; + OSReport("########## PRESENTFLG CHR:%d, MAP:5, PRESENT:%d\n", lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 * 6 + 5); + var_r31 = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY2, 20, var_r31->stat); + omOvlCallEx(OVL_PRESENT, 1, lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 * 6 + 5 + 1, 0); +} + +void fn_1_13A18(omObjData* arg0, StructBss16C* arg1) +{ + int temp = 0; + fn_1_12AC8(); + fn_1_12B10(); + fn_1_12DD4(); + fn_1_13264(); + fn_1_138CC(); + arg1->unk04 = 0; +} + +void fn_1_13BB8(void) +{ + omObjData *obj; + lbl_1_bss_838.unk00 = obj = omAddObjEx(lbl_1_bss_790, 256, 16, 16, -1, NULL); + lbl_1_bss_838.unk04 = (void *)fn_1_13A18; + lbl_1_bss_838.unk00->data = &lbl_1_bss_838; + while(1) { + fn_1_BC8(); + if(lbl_1_bss_838.unk04 != NULL) { + lbl_1_bss_838.unk04(obj, &lbl_1_bss_838); + } + } +} + +void fn_1_13C6C(omObjData* object) +{ + s32 charNo; + charNo = lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10; + object->model[7] = Hu3DModelCreateFile(lbl_1_data_850[charNo * 6 + 5].unk0); + object->motion[7] = Hu3DMotionIDGet(object->model[7]); + Hu3DModelPosSet(object->model[7], 0, 180, 825); + Hu3DModelAttrSet(object->model[7], 1); + Hu3DModelShadowSet(object->model[7]); + fn_1_1DFC(object, 7, 7, 0, 2); + HuDataDirClose(DATADIR_MSTORY4); + object->model[1] = Hu3DModelCreateFile(0x660052); + object->motion[1] = Hu3DMotionIDGet(object->model[1]); + Hu3DModelShadowMapObjSet(object->model[1], "base_story-base"); + fn_1_1DFC(object, 1, 1, 0, 1); + object->model[2] = Hu3DModelCreateFile(0x660053); + object->motion[2] = Hu3DJointMotionFile(object->model[2], 0x660054); + object->motion[3] = Hu3DJointMotionFile(object->model[2], 0x660055); + fn_1_1DFC(object, 2, 3, 0, 2); + object->model[5] = Hu3DModelCreateFile(0x66005B); + Hu3DModelPosSet(object->model[5], 0, 125, 800); + Hu3DModelAttrSet(object->model[5], 1); + Hu3DModelShadowSet(object->model[5]); + object->model[6] = Hu3DModelCreateFile(0x66005D); + object->motion[6] = Hu3DMotionIDGet(object->model[6]); + Hu3DModelPosSet(object->model[6], 25, 125, 900); + Hu3DModelAttrSet(object->model[6], 1); + fn_1_1DFC(object, 6, 6, 0, 2); + object->model[8] = Hu3DModelCreateFile(0x66005F); + object->motion[8] = Hu3DMotionIDGet(object->model[8]); + Hu3DModelAttrSet(object->model[8], 1); + fn_1_1DFC(object, 8, 8, 0, 1); +} + + +void fn_1_13FB4(omObjData* arg0, StructBss16C* arg1) +{ + Mtx matrix; + Hu3DData[arg0->model[7]].pos.y = fn_1_B08(180, 185, arg1->unk08++, 360); + Hu3DModelObjMtxGet(arg0->model[7], "effect", matrix); + Hu3DModelPosSet(arg0->model[8], matrix[0][3], matrix[1][3], matrix[2][3]); + if(arg1->unk08 >= 360) { + arg1->unk08 = 0; + } +} + +void fn_1_140A0(omObjData* arg0, StructBss16C* arg1) +{ + Mtx matrix; + Hu3DData[arg0->model[7]].pos.y += arg1->unk0C/100.0f; + Hu3DModelObjMtxGet(arg0->model[7], "effect", matrix); + Hu3DModelPosSet(arg0->model[8], matrix[0][3], matrix[1][3], matrix[2][3]); + arg1->unk0C += 2; +} + +void fn_1_1416C(omObjData* arg0, StructBss16C* arg1) +{ + int i; + Vec pos; + float rotY; + Hu3DModelPosSet(arg0->model[5], -180, 100, 800); + Hu3DModelRotSet(arg0->model[5], 0, 0, 0); + Hu3DModelAttrReset(arg0->model[5], 1); + for(i=0; i<60; i++) { + fn_1_BC8(); + if(i == 30) { + HuAudFXPlay(151); + } + if(i <= 30) { + pos.y = fn_1_A4C(0, 100, i+30, 60); + pos.x = fn_1_864(-180, -45, i, 30); + rotY = fn_1_984(0, -90, i, 30); + } else { + pos.x = fn_1_864(-45, 0, i-30, 30); + pos.y = fn_1_A4C(0, 25, i-30, 30); + rotY = fn_1_984(-90, -360, i-30, 30); + } + Hu3DModelPosSet(arg0->model[5], pos.x, pos.y, 800); + Hu3DModelRotSet(arg0->model[5], 0, rotY, 0); + } + arg1->unk04 = NULL; +} + +void fn_1_1449C(void) +{ + omObjData *obj; + lbl_1_bss_810.unk00 = obj = omAddObjEx(lbl_1_bss_790, 256, 16, 16, -1, NULL); + lbl_1_bss_810.unk04 = NULL; + lbl_1_bss_810.unk00->data = &lbl_1_bss_810; + fn_1_13C6C(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_810.unk04 != NULL) { + lbl_1_bss_810.unk04(obj, &lbl_1_bss_810); + } + } +} + +void fn_1_14868(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(0x660062); + object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660063); + object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660064); + object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x66006E); + object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x66006F); + object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x660069); + Hu3DModelPosSet(object->model[1], -180, 0, 800); + Hu3DModelRotSet(object->model[1], 0, 60, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 3, 0, 1); + lbl_1_data_C20 = object->model[1]; + lbl_1_data_C24[0] = object->motion[2]; + lbl_1_data_C24[1] = object->motion[2]; + HuPrcChildCreate(fn_1_123C8, 100, 8192, 0, HuPrcCurrentGet()); +} + +void fn_1_14A9C(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_7E8.unk00, 1, arg0, arg2, arg3); + if(arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_7E8.unk00->work[0] = arg4; + lbl_1_bss_7E8.unk00->work[1] = arg1; + lbl_1_bss_7E8.unk00->work[2] = arg2+1; +} + +void fn_1_14B48(omObjData* arg0, StructBss16C* arg1) +{ + Vec pos = { -1000, 0, 810 }; + lbl_1_bss_810.unk04 = (void *)fn_1_1416C; + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, -1, 45, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_14C40(void) +{ + omObjData *obj; + lbl_1_bss_7E8.unk00 = obj = omAddObjEx(lbl_1_bss_790, 256, 16, 16, -1, NULL); + lbl_1_bss_7E8.unk04 = NULL; + lbl_1_bss_7E8.unk00->data = &lbl_1_bss_810; + fn_1_14868(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_7E8.unk04 != NULL) { + lbl_1_bss_7E8.unk04(obj, &lbl_1_bss_7E8); + } + if(obj->work[0]) { + if(obj->work[2]) { + obj->work[2]--; + } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_14F6C(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(0x66007D); + object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x66007E); + object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660080); + object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660081); + object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660086); + Hu3DModelPosSet(object->model[1], -600, 0, 800); + Hu3DModelRotSet(object->model[1], 0, 60, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); + CharModelEffectNpcInit(object->model[1], object->motion[2], 1, 13); +} + +void fn_1_15134(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_7C0.unk00, 1, arg0, arg2, arg3); + if(arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_7C0.unk00->work[0] = arg4; + lbl_1_bss_7C0.unk00->work[1] = arg1; + lbl_1_bss_7C0.unk00->work[2] = arg2+1; +} + +void fn_1_151E0(omObjData* arg0, StructBss16C* arg1) +{ + Vec pos = { -800, 0, 800 }; + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, 60, 60, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_152C4(omObjData* arg0, StructBss16C* arg1) +{ + Vec pos = { -120, 0, 800 }; + fn_1_1DFC(arg0, 1, 2, 15, 1); + fn_1_2D00(arg0, 1, pos, 60, 60, 10); + fn_1_1DFC(arg0, 1, 1, 15, 1); + arg1->unk04 = NULL; +} + +void fn_1_153A8(void) +{ + omObjData *obj; + lbl_1_bss_7C0.unk00 = obj = omAddObjEx(lbl_1_bss_790, 256, 16, 16, -1, NULL); + lbl_1_bss_7C0.unk04 = NULL; + lbl_1_bss_7C0.unk00->data = &lbl_1_bss_7C0; + fn_1_14F6C(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_7C0.unk04 != NULL) { + lbl_1_bss_7C0.unk04(obj, &lbl_1_bss_7C0); + } + if(obj->work[0]) { + if(obj->work[2]) { + obj->work[2]--; + } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_15668(int arg0) +{ + int i; + int order[4]; + order[0] = 0; + for(i=1; i<4; i++) { + order[i] = order[i-1]+1; + if(order[i] >= 4) { + order[i] = 0; + } + if(arg0 == order[i]) { + lbl_1_bss_860.unk00 = i; + } + } + for(i=0; i<4; i++) { + fn_1_357C(&lbl_1_bss_860.unk30[i], order[i]); + } +} + +void fn_1_1574C(omObjData *object) +{ + int charNo = lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10; + object->model[1] = CharModelCreate(charNo, 1); + object->motion[1] = CharModelMotionCreate(charNo, 0x5F0000); + object->motion[2] = CharModelMotionCreate(charNo, 0x5F0002); + object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660028+charNo); + object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660030+charNo); + object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x660038+charNo); + object->motion[6] = Hu3DJointMotionFile(object->model[1], 0x660000+charNo); + CharModelMotionDataClose(charNo); + Hu3DModelPosSet(object->model[1], 120, 0, 800); + Hu3DModelRotSet(object->model[1], 0, -60, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 3, 0, 1); +} + +void fn_1_15944(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_798.unk00, 1, arg0, arg2, arg3); + if(arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_798.unk00->work[0] = arg4; + lbl_1_bss_798.unk00->work[1] = arg1; + lbl_1_bss_798.unk00->work[2] = arg2+1; +} + +void fn_1_159F0(void) +{ + omObjData *obj; + lbl_1_bss_798.unk00 = obj = omAddObjEx(lbl_1_bss_790, 256, 16, 16, -1, NULL); + lbl_1_bss_798.unk04 = NULL; + lbl_1_bss_798.unk00->data = &lbl_1_bss_798; + fn_1_1574C(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_798.unk04 != NULL) { + lbl_1_bss_798.unk04(obj, &lbl_1_bss_798); + } + if(obj->work[0]) { + if(obj->work[2]) { + obj->work[2]--; + } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_15CDC(void) +{ + StructBss24 *work = &lbl_1_bss_24; + work->unk08.x = 0; + work->unk08.y = 125; + work->unk08.z = 0; + work->unk20.x = -5; + work->unk20.y = 0; + work->unk20.z = 0; + work->unk38 = 1750; +} + +void fn_1_15D68(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + temp.unk08.x = 0; + temp.unk08.y = 100; + temp.unk08.z = 0; + temp.unk20.x = 0; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 1400; + fn_1_4FEC(work, &temp, work->unk40++, 120, 10); + +} + +void fn_1_15E58(void) +{ + StructBss24 *work = &lbl_1_bss_24; + work->unk14 = 0; + work->unk18 = Hu3DData[lbl_1_bss_810.unk00->model[7]].pos.y; + work->unk1C = 0; + work->unk2C = 0; + work->unk30 = 0; + work->unk34 = 0; + work->unk3C = fn_1_864(1200, 1400, work->unk40++, 240); + fn_1_3B04(work, 30); +} + +void fn_1_15F70(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + temp.unk08.x = 0; + temp.unk08.y = 160; + temp.unk08.z = 0; + temp.unk20.x = 0; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 1200; + fn_1_6004(work, &temp, work->unk40++, 10, 5); +} \ No newline at end of file diff --git a/src/REL/mstory2Dll/mg_miss.c b/src/REL/mstory2Dll/mg_miss.c new file mode 100644 index 00000000..6a9232ab --- /dev/null +++ b/src/REL/mstory2Dll/mg_miss.c @@ -0,0 +1,501 @@ +#include "REL/mstory2Dll.h" +#include "game/armem.h" +#include "game/board/main.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "game/pad.h" +#include "game/objsub.h" + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ char unk18[0x18]; + /* 0x030 */ StructFn357C unk30[4]; + /* 0x100 */ s32 unk100; +} StructBssA34; // Size 0x104 + +StructBssA34 lbl_1_bss_A34; +StructBss16C lbl_1_bss_A0C; +StructBss16C lbl_1_bss_9E4; +StructBss16C lbl_1_bss_9BC; +StructBss16C lbl_1_bss_994; +StructBss16C lbl_1_bss_96C; +Process *lbl_1_bss_968; + +void fn_1_16FC0(void); +void fn_1_17338(void); +void fn_1_1774C(int arg0, int arg1, int arg2, int arg3, int arg4); +void fn_1_177F8(void); +void fn_1_17C44(void); +void fn_1_17E64(s32 arg0); +void fn_1_180D8(int arg0, int arg1, int arg2, int arg3, int arg4); +void fn_1_18184(void); +void fn_1_18408(void); +void fn_1_18494(void); + +void fn_1_16060(Process* arg0, s32 arg1) +{ + lbl_1_bss_968 = arg0; + lbl_1_bss_A34.unk0C = arg1; + fn_1_C30(); + fn_1_3668(255); + fn_1_2828(lbl_1_bss_968, fn_1_18408); + fn_1_3754(); + fn_1_17E64(arg1); + HuPrcChildCreate(fn_1_17338, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_177F8, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_17C44, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_18184, 100, 8192, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_16FC0, 100, 8192, 0, HuPrcCurrentGet()); +} + +void fn_1_16178(omObjData *object) +{ + if(object->work[2]) { + object->work[2]--; + return; + } + if(object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + fn_1_1DFC(object, 1, object->work[1], 15, 1); + object->work[0] = object->work[1] = object->work[2] = 0; + } +} + +void fn_1_16204(void) +{ + int posX = 16; + int posY = 40; + GXColor winColor = { 0, 0, 128, 128 }; + int i; + while(1) { + fn_1_BC8(); + printWin(posX, posY, 220, 130, &winColor); + if(lbl_1_bss_A0C.unk04 == NULL) { + print8(posX, posY, 1, "PROC_MAIN -> FALSE"); + } else { + print8(posX, posY, 1, "PROC_MAIN -> TRUE"); + } + if(lbl_1_bss_9E4.unk04 == NULL) { + print8(posX, posY+10, 1, "PROC_MAP -> FALSE"); + } else { + print8(posX, posY+10, 1, "PROC_MAP -> TRUE"); + } + if(lbl_1_bss_9BC.unk04 == NULL) { + print8(posX, posY+20, 1, "PROC_KOOPA -> FALSE"); + } else { + print8(posX, posY+20, 1, "PROC_KOOPA -> TRUE"); + } + if(lbl_1_bss_994.unk04 == NULL) { + print8(posX, posY+30, 1, "PROC_MKOOPA -> FALSE"); + } else { + print8(posX, posY+30, 1, "PROC_MKOOPA -> TRUE"); + } + if(lbl_1_bss_96C.unk04 == NULL) { + print8(posX, posY+40, 1, "PROC_PLAYER -> FALSE"); + } else { + print8(posX, posY+40, 1, "PROC_PLAYER -> TRUE"); + } + print8(posX, posY+60, 1, "P:%d W:%d", lbl_1_bss_A34.unk00, lbl_1_bss_A34.unk0C); + print8(posX, posY+80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for(i=0; i<4; i++) { + print8(posX, posY+90+(i*10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_A34.unk30[i].unk00, lbl_1_bss_A34.unk30[i].unk04, lbl_1_bss_A34.unk30[i].unk08, lbl_1_bss_A34.unk30[i].unk0C, lbl_1_bss_A34.unk30[i].unk14, lbl_1_bss_A34.unk30[i].unk10); + } + } +} + +void fn_1_165B0(void) +{ + lbl_1_bss_78[0] = HuAudSeqPlay(52); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet()); + fn_1_BE8(60); +} + +void fn_1_1661C(void) +{ + lbl_1_bss_A34.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_A34.unk0C); + fn_1_1774C(2, 1, 15, 0, 1); + fn_1_180D8(2, 3, 15, 0, 1); + HuAudCharVoicePlay(lbl_1_bss_A34.unk30[lbl_1_bss_A34.unk00].unk10, 302); + fn_1_6D78(lbl_1_bss_A34.unk04, 0x1F0010, -1, lbl_1_bss_9BC.unk00->model[1]); + fn_1_1D18(lbl_1_bss_A34.unk04, 0x250004); + fn_1_1774C(1, -1, 15, 1, 0); + fn_1_1A94(lbl_1_bss_A34.unk04); +} + +int fn_1_1670C(void) +{ + int result = 0; + HuWinInsertMesSet(lbl_1_bss_A34.unk04, 0x1E003C, 3); + fn_1_1D18(lbl_1_bss_A34.unk04, 0x1E002D); + fn_1_1AFC(lbl_1_bss_A34.unk04, 5); + lbl_1_bss_A34.unk08 = fn_1_7064(0x1E0035, lbl_1_bss_A34.unk0C); + fn_1_1D18(lbl_1_bss_A34.unk08, 0x1E0035); + result = fn_1_1C64(lbl_1_bss_A34.unk08); + fn_1_1D18(lbl_1_bss_A34.unk08, 0x250004); + fn_1_71DC(lbl_1_bss_A34.unk08); + if(result) { + HuAudFXPlay(lbl_1_data_0[6][2]); + fn_1_1774C(3, 1, 15, 1, 0); + fn_1_1D18(lbl_1_bss_A34.unk04, 0x1F0012); + fn_1_1AFC(lbl_1_bss_A34.unk04, -1); + fn_1_1D18(lbl_1_bss_A34.unk04, 0x250004); + fn_1_1774C(1, -1, 15, 1, 0); + fn_1_180D8(4, 1, 15, 0, 1); + } + return result; +} + +int fn_1_168B0(void) +{ + int result = 0; + fn_1_1D18(lbl_1_bss_A34.unk04, 0x1E0005); + fn_1_1AFC(lbl_1_bss_A34.unk04, 5); + lbl_1_bss_A34.unk08 = fn_1_7064(0x1E0035, lbl_1_bss_A34.unk0C); + fn_1_1D18(lbl_1_bss_A34.unk08, 0x1E0035); + result = fn_1_1BA8(lbl_1_bss_A34.unk08, 1); + fn_1_1D18(lbl_1_bss_A34.unk08, 0x250004); + fn_1_71DC(lbl_1_bss_A34.unk08); + return result; +} + +void fn_1_16984(void) +{ + HuAudSeqFadeOut(lbl_1_bss_78[0], 3000); + fn_1_3854(&lbl_1_bss_24); + fn_1_2750(fn_1_18494); + fn_1_BE8(150); +} + +void fn_1_169D4(void) +{ + +} + +void fn_1_169D8(int arg0) +{ + omOvlHisData* his; + + if (arg0 != 0) { + HuAudSeqFadeOut(lbl_1_bss_78[0], 1000); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + do { + fn_1_BC8(); + } while (WipeStatGet() != 0); + CharModelKill(-1); + his = omOvlHisGet(0); + omOvlHisChg(0, OVL_MSTORY2, 3, his->stat); + if (arg0 == 0) { + HuAudSeqAllFadeOut(1000); + HuAudSStreamAllFadeOut(1000); + GWMGAvailSet(450); + GWSystem.mg_next = 450-401; + omOvlCallEx(OVL_M450, 1, 0, 0); + } else { + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_16ACC(omObjData* arg0, StructBss16C* arg1) +{ + int mode = 0; + fn_1_165B0(); + fn_1_1661C(); + lbl_1_bss_A34.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_A34.unk0C); + while(1) { + fn_1_BC8(); + if(fn_1_1670C()) { + mode = 0; + break; + } else if(fn_1_168B0()) { + mode = 1; + break; + } + } + fn_1_1A94(lbl_1_bss_A34.unk04); + switch(mode) { + case 0: + fn_1_16984(); + break; + case 1: + break; + } + fn_1_169D8(mode); + arg1->unk04 = NULL; +} + +void fn_1_16FC0(void) +{ + omObjData *obj; + lbl_1_bss_A0C.unk00 = obj = omAddObjEx(lbl_1_bss_968, 256, 16, 16, -1, NULL); + lbl_1_bss_A0C.unk04 = (void *)fn_1_16ACC; + lbl_1_bss_A0C.unk00->data = &lbl_1_bss_A0C; + while(1) { + fn_1_BC8(); + if(lbl_1_bss_A0C.unk04 != NULL) { + lbl_1_bss_A0C.unk04(obj, &lbl_1_bss_A0C); + } + } +} + +void fn_1_17074(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(0x660052); + object->motion[1] = Hu3DMotionIDGet(object->model[1]); + Hu3DModelShadowMapObjSet(object->model[1], "base_story-base"); + fn_1_1DFC(object, 1, 1, 0, 1); + object->model[2] = Hu3DModelCreateFile(0x660053); + object->motion[2] = Hu3DJointMotionFile(object->model[2], 0x660054); + object->motion[3] = Hu3DJointMotionFile(object->model[2], 0x660055); + fn_1_1DFC(object, 2, 2, 0, 2); + object->model[5] = Hu3DModelCreateFile(0x660059); + object->motion[5] = Hu3DMotionIDGet(object->model[5]); + Hu3DModelPosSet(object->model[5], 0, 80, 460); + Hu3DModelShadowSet(object->model[5]); + fn_1_1DFC(object, 5, 5, 0, 2); + object->model[6] = Hu3DModelCreateFile(0x66005A); + object->motion[6] = Hu3DMotionIDGet(object->model[6]); + Hu3DModelHookSet(object->model[5], "koopasgbox_fix-effect_fook2", object->model[6]); + fn_1_1DFC(object, 6, 6, 0, 2); +} + +void fn_1_1727C(omObjData* arg0, StructBss16C* arg1) +{ + Hu3DData[arg0->model[5]].pos.y = fn_1_B08(80, 90, arg1->unk08++, 360); + if(arg1->unk08 >= 360) { + arg1->unk08 = 0; + } +} + +void fn_1_17338(void) +{ + omObjData *obj; + lbl_1_bss_9E4.unk00 = obj = omAddObjEx(lbl_1_bss_968, 256, 16, 16, -1, NULL); + lbl_1_bss_9E4.unk04 = (void *)fn_1_1727C; + lbl_1_bss_9E4.unk00->data = &lbl_1_bss_9E4; + fn_1_17074(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_9E4.unk04 != NULL) { + lbl_1_bss_9E4.unk04(obj, &lbl_1_bss_9E4); + } + } +} + +void fn_1_175CC(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(0x660062); + object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660063); + object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660066); + object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660069); + Hu3DModelPosSet(object->model[1], 0, 0, 200); + Hu3DModelRotSet(object->model[1], 0, 0, 0); + Hu3DModelScaleSet(object->model[1], 1.6f, 1.6f, 1.6f); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); +} + +void fn_1_1774C(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_9BC.unk00, 1, arg0, arg2, arg3); + if(arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_9BC.unk00->work[0] = arg4; + lbl_1_bss_9BC.unk00->work[1] = arg1; + lbl_1_bss_9BC.unk00->work[2] = arg2+1; +} + +void fn_1_177F8(void) +{ + omObjData *obj; + lbl_1_bss_9BC.unk00 = obj = omAddObjEx(lbl_1_bss_968, 256, 16, 16, -1, NULL); + lbl_1_bss_9BC.unk04 = NULL; + lbl_1_bss_9BC.unk00->data = &lbl_1_bss_9E4; + fn_1_175CC(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_9BC.unk04 != NULL) { + lbl_1_bss_9BC.unk04(obj, &lbl_1_bss_9BC); + } + if(obj->work[0]) { + if(obj->work[2]) { + obj->work[2]--; + } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_17A70(omObjData *object) +{ + object->model[1] = Hu3DModelCreateFile(0x66007D); + object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x66007E); + Hu3DModelPosSet(object->model[1], -120, 0, 800); + Hu3DModelRotSet(object->model[1], 0, 135, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); +} + +void fn_1_17B98(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_994.unk00, 1, arg0, arg2, arg3); + if(arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_994.unk00->work[0] = arg4; + lbl_1_bss_994.unk00->work[1] = arg1; + lbl_1_bss_994.unk00->work[2] = arg2+1; +} + +void fn_1_17C44(void) +{ + omObjData *obj; + lbl_1_bss_994.unk00 = obj = omAddObjEx(lbl_1_bss_968, 256, 16, 16, -1, NULL); + lbl_1_bss_994.unk04 = NULL; + lbl_1_bss_994.unk00->data = &lbl_1_bss_994; + fn_1_17A70(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_994.unk04 != NULL) { + lbl_1_bss_994.unk04(obj, &lbl_1_bss_994); + } + if(obj->work[0]) { + if(obj->work[2]) { + obj->work[2]--; + } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_17E64(s32 arg0) +{ + int i; + int order[4]; + order[0] = 0; + for(i=1; i<4; i++) { + order[i] = order[i-1]+1; + if(order[i] >= 4) { + order[i] = 0; + } + if(arg0 == order[i]) { + lbl_1_bss_A34.unk00 = i; + } + } + for(i=0; i<4; i++) { + fn_1_357C(&lbl_1_bss_A34.unk30[i], order[i]); + } +} + +void fn_1_17F48(omObjData *object) +{ + int charNo = lbl_1_bss_A34.unk30[lbl_1_bss_A34.unk00].unk10; + object->model[1] = CharModelCreate(charNo, 1); + object->motion[1] = CharModelMotionCreate(charNo, 0x5F0000); + object->motion[2] = CharModelMotionCreate(charNo, 0x5F0018); + object->motion[3] = CharModelMotionCreate(charNo, 0x5F0034); + object->motion[4] = CharModelMotionCreate(charNo, 0x5F0048); + CharModelVoiceEnableSet(charNo, object->motion[2], FALSE); + CharModelMotionDataClose(charNo); + Hu3DModelPosSet(object->model[1], 120, 0, 800); + Hu3DModelRotSet(object->model[1], 0, -135, 0); + Hu3DModelScaleSet(object->model[1], 1, 1, 1); + Hu3DModelShadowSet(object->model[1]); + fn_1_1DFC(object, 1, 1, 0, 1); +} + +void fn_1_180D8(int arg0, int arg1, int arg2, int arg3, int arg4) +{ + fn_1_1DFC(lbl_1_bss_96C.unk00, 1, arg0, arg2, arg3); + if(arg3 == 1) { + arg4 = 0; + } + lbl_1_bss_96C.unk00->work[0] = arg4; + lbl_1_bss_96C.unk00->work[1] = arg1; + lbl_1_bss_96C.unk00->work[2] = arg2+1; +} + +void fn_1_18184(void) +{ + omObjData *obj; + lbl_1_bss_96C.unk00 = obj = omAddObjEx(lbl_1_bss_968, 256, 16, 16, -1, NULL); + lbl_1_bss_96C.unk04 = NULL; + lbl_1_bss_96C.unk00->data = &lbl_1_bss_96C; + fn_1_17F48(obj); + while(1) { + fn_1_BC8(); + if(lbl_1_bss_96C.unk04 != NULL) { + lbl_1_bss_96C.unk04(obj, &lbl_1_bss_96C); + } + if(obj->work[0]) { + if(obj->work[2]) { + obj->work[2]--; + } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + fn_1_1DFC(obj, 1, obj->work[1], 15, 1); + obj->work[0] = obj->work[1] = obj->work[2] = 0; + } + } + } +} + +void fn_1_18408(void) +{ + StructBss24 *work = &lbl_1_bss_24; + work->unk08.x = 0; + work->unk08.y = 125; + work->unk08.z = 0; + work->unk20.x = -5; + work->unk20.y = 0; + work->unk20.z = 0; + work->unk38 = 1750; +} + +void fn_1_18494(void) +{ + StructBss24 *work = &lbl_1_bss_24; + StructBss24 temp; + if(work->unk40 == 50) { + fn_1_1DFC(lbl_1_bss_9E4.unk00, 5, 5, 0, 0); + fn_1_1DFC(lbl_1_bss_9E4.unk00, 6, 6, 0, 0); + HuAudFXPlay(161); + } + temp.unk08.x = 0; + temp.unk08.y = 130; + temp.unk08.z = 460; + temp.unk20.x = 0; + temp.unk20.y = 0; + temp.unk20.z = 0; + temp.unk38 = 150; + fn_1_4FEC(work, &temp, work->unk40, 180, 10); + if(work->unk40++ >= 90) { + if(work->unk40 == 91) { + lbl_1_bss_88[0] = HuAudFXPlay(32); + } + work->unk20.x = fn_1_864(work->unk20.x, -45, work->unk40-90, 90); + Hu3DData[lbl_1_bss_9E4.unk00->model[5]].rot.x = fn_1_864(0, 45, work->unk40-90, 90); + } +} \ No newline at end of file diff --git a/src/REL/mstory2Dll/save.c b/src/REL/mstory2Dll/save.c new file mode 100644 index 00000000..8bdf3535 --- /dev/null +++ b/src/REL/mstory2Dll/save.c @@ -0,0 +1,118 @@ +#include "REL/mstoryDll.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/saveload.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +s32 lbl_1_bss_D14; +Process *lbl_1_bss_D10; + +s32 fn_1_1B560(s32 arg0) +{ + if (arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2))) { + return 1; + } + if (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3))) { + return 1; + } + if (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4))) { + return 1; + } + if (arg0 == 3 && _CheckFlag(FLAG_ID_MAKE(0, 5))) { + return 1; + } + if (arg0 == 4 && _CheckFlag(FLAG_ID_MAKE(0, 6))) { + return 1; + } + if (arg0 == 5 && _CheckFlag(FLAG_ID_MAKE(0, 7))) { + return 1; + } + return 0; +} + +void fn_1_1B64C(void) +{ + float sp8[2]; + s32 temp_r30; + s32 var_r29; + s32 var_r31; + + temp_r30 = 1; + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + if (SLSaveFlagGet() == 0) { + lbl_1_bss_D14 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } + } + espInit(); + HuPrcVSleep(); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 32), 5000, 0); + espPosSet(var_r29, 288.0f, 240.0f); + espAttrReset(var_r29, 4); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + if (SLSaveFlagGet() == 1) { + HuWinInit(1); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(30, 22)); + var_r31 = HuWinExCreateStyled(-10000.0f, 150.0f, sp8[0], sp8[1], -1, 2); + winData[var_r31].active_pad = 1; + HuWinAttrSet(var_r31, 0x10); + HuWinExAnimIn(var_r31); + HuWinMesSet(var_r31, MAKE_MESSID(30, 22)); + temp_r30 = HuWinChoiceGet(var_r31, 0); + HuWinExAnimOut(var_r31); + HuWinExCleanup(var_r31); + if (SLSaveFlagGet() == 1 && temp_r30 == 0) { + if(omovlstat) { + GWGameStat.story_continue = 0; + } + SLCommonSet(); + SLSaveBoardStory(); + SLSave(); + } + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_D14 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_1B870(void) +{ + _SetFlag(9); + HuPrcChildCreate(fn_1_1B64C, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_BC8(); + } while (lbl_1_bss_D14 != 1); + if(omovlstat == 0) { + omOvlGotoEx(OVL_MSTORY2, 1, 4, 0); + } else { + omOvlReturnEx(omovlhisidx, 1); + } + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_1B90C(Process *arg0) +{ + lbl_1_bss_D10 = arg0; + HuPrcChildCreate(fn_1_1B870, 100, 0x2000, 0, HuPrcCurrentGet()); +} diff --git a/src/REL/mstory4Dll/main.c b/src/REL/mstory4Dll/main.c index 1bb809d0..e5fce452 100644 --- a/src/REL/mstory4Dll/main.c +++ b/src/REL/mstory4Dll/main.c @@ -583,7 +583,7 @@ void fn_1_13A0(void) } } character = GWPlayerCfg[0].character; - GWSystem.unk0B[1] = character; + GWSystem.unk0C = character; GWPlayer[0].character = GWPlayerCfg[0].character; GWPlayer[1].character = GWPlayerCfg[1].character; GWPlayer[2].character = GWPlayerCfg[2].character; From f79a3f88b184bc2b23c6ef5d6f23d03142107f89 Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Sat, 11 Jan 2025 15:50:52 +0100 Subject: [PATCH 247/311] Fix mstory2 data locality and apply DATA_MAKE_NUM macros (#522) * Make rodata and strings local in mstory2 * use DATA_MAKE_NUM macros --- config/GMPE01_00/rels/mstory2Dll/symbols.txt | 736 +++++------ src/REL/m418Dll/main.c | 1149 ++++++++++-------- src/REL/m420dll/player.c | 113 +- src/REL/m424Dll/claw.c | 330 ++--- src/REL/m430Dll/main.c | 2 +- src/REL/m430Dll/player.c | 43 +- src/REL/m430Dll/water.c | 36 +- src/REL/m449Dll/main.c | 3 +- src/REL/m455Dll/main.c | 8 +- src/REL/m456Dll/main.c | 22 +- src/REL/m458Dll/main.c | 18 +- src/REL/m461Dll/main.c | 979 +++++++-------- src/REL/mstory2Dll/board_clear.c | 210 ++-- src/REL/mstory2Dll/board_entrance.c | 216 ++-- src/REL/mstory2Dll/board_miss.c | 319 +++-- src/REL/mstory2Dll/ending.c | 200 ++- src/REL/mstory2Dll/mg_clear.c | 367 +++--- src/REL/mstory2Dll/mg_miss.c | 175 +-- 18 files changed, 2589 insertions(+), 2337 deletions(-) diff --git a/config/GMPE01_00/rels/mstory2Dll/symbols.txt b/config/GMPE01_00/rels/mstory2Dll/symbols.txt index 351e9c5d..f0c05621 100644 --- a/config/GMPE01_00/rels/mstory2Dll/symbols.txt +++ b/config/GMPE01_00/rels/mstory2Dll/symbols.txt @@ -265,398 +265,398 @@ fn_1_1B870 = .text:0x0001B870; // type:function size:0x9C fn_1_1B90C = .text:0x0001B90C; // type:function size:0x50 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC data:4byte -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC data:4byte -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC data:4byte -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 data:byte -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC data:4byte -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC data:4byte -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC data:4byte -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C data:4byte -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 data:byte -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC data:4byte -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC data:4byte -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 data:byte -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC data:4byte -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC data:4byte -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC data:4byte -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 data:byte -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 data:byte -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC data:4byte -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte -lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 data:string -lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 data:string -lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 data:string -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 data:string -lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 data:string -lbl_1_data_135 = .data:0x00000135; // type:object size:0xF +lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 scope:local data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 scope:local data:string +lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 scope:local data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 scope:local data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0xF scope:local lbl_1_data_144 = .data:0x00000144; // type:object size:0x18 -lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 data:string -lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 data:string -lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 data:string +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 scope:local data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 scope:local data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 scope:local data:string jumptable_1_data_19C = .data:0x0000019C; // type:object size:0x54 scope:local jumptable_1_data_1F0 = .data:0x000001F0; // type:object size:0x54 scope:local -lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A data:string -lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A data:string -lbl_1_data_278 = .data:0x00000278; // type:object size:0xE data:string -lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 data:string -lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 data:string -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 data:string -lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 data:string -lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 data:string -lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 data:string -lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 data:string -lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 +lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A scope:local data:string +lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A scope:local data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0xE scope:local data:string +lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 scope:local data:string +lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 scope:local data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 scope:local data:string +lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 scope:local data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 scope:local data:string +lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 scope:local data:string +lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 scope:local lbl_1_data_308 = .data:0x00000308; // type:object size:0x20 lbl_1_data_328 = .data:0x00000328; // type:object size:0x40 lbl_1_data_368 = .data:0x00000368; // type:object size:0x20 data:float -lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 data:string -lbl_1_data_399 = .data:0x00000399; // type:object size:0x2 data:string +lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 scope:local data:string +lbl_1_data_399 = .data:0x00000399; // type:object size:0x2 scope:local data:string lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x2C lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x10 lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x4 data:4byte lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x8 data:4byte -lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 data:string -lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 data:string -lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 data:string -lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 data:string -lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 data:string -lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 data:string -lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 data:string -lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 data:string -lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 data:string -lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 data:string -lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 data:string -lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA data:string -lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C data:string -lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D data:string -lbl_1_data_50C = .data:0x0000050C; // type:object size:0xF data:string -lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 data:string -lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 data:string -lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 data:string -lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 data:string -lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 data:string -lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 data:string -lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 data:string -lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 data:string -lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 data:string -lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 data:string -lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA data:string -lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C data:string -lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D data:string -lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 data:string -lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C data:string +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 scope:local data:string +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 scope:local data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 scope:local data:string +lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 scope:local data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 scope:local data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 scope:local data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 scope:local data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 scope:local data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 scope:local data:string +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 scope:local data:string +lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 scope:local data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA scope:local data:string +lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C scope:local data:string +lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D scope:local data:string +lbl_1_data_50C = .data:0x0000050C; // type:object size:0xF scope:local data:string +lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 scope:local data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 scope:local data:string +lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 scope:local data:string +lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 scope:local data:string +lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 scope:local data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 scope:local data:string +lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 scope:local data:string +lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 scope:local data:string +lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 scope:local data:string +lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 scope:local data:string +lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA scope:local data:string +lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C scope:local data:string +lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D scope:local data:string +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 scope:local data:string +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C scope:local data:string lbl_1_data_668 = .data:0x00000668; // type:object size:0x30 data:float lbl_1_data_698 = .data:0x00000698; // type:object size:0x1C lbl_1_data_6B4 = .data:0x000006B4; // type:object size:0x20 -lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 data:string -lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 data:string -lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 data:string -lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 data:string -lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 data:string -lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 data:string -lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 data:string -lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 data:string -lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 data:string -lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 data:string -lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA data:string -lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C data:string -lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D data:string -lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 data:string -lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 scope:local data:string +lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 scope:local data:string +lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 scope:local data:string +lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 scope:local data:string +lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 scope:local data:string +lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 scope:local data:string +lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 scope:local data:string +lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 scope:local data:string +lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 scope:local data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 scope:local data:string +lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA scope:local data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C scope:local data:string +lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D scope:local data:string +lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 scope:local data:string +lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C scope:local lbl_1_data_81C = .data:0x0000081C; // type:object size:0x30 lbl_1_data_850 = .data:0x00000850; // type:object size:0x3C0 lbl_1_data_C10 = .data:0x00000C10; // type:object size:0x10 lbl_1_data_C20 = .data:0x00000C20; // type:object size:0x4 data:4byte lbl_1_data_C24 = .data:0x00000C24; // type:object size:0x8 data:4byte -lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 data:string -lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 data:string -lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 data:string -lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 data:string -lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 data:string -lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 data:string -lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 data:string -lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 data:string -lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 data:string -lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 data:string -lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 data:string -lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA data:string -lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C data:string -lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D data:string -lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C data:string -lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 data:string -lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 data:string -lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0x7 data:string -lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 data:string -lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 data:string -lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 data:string -lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 data:string -lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 data:string -lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 data:string -lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 data:string -lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 data:string -lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 data:string -lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 data:string -lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA data:string -lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C data:string -lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D data:string -lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 data:string -lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x1C data:string +lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 scope:local data:string +lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 scope:local data:string +lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 scope:local data:string +lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 scope:local data:string +lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 scope:local data:string +lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 scope:local data:string +lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 scope:local data:string +lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 scope:local data:string +lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 scope:local data:string +lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 scope:local data:string +lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 scope:local data:string +lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA scope:local data:string +lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C scope:local data:string +lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D scope:local data:string +lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C scope:local data:string +lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 scope:local data:string +lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 scope:local data:string +lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0x7 scope:local data:string +lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 scope:local data:string +lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 scope:local data:string +lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 scope:local data:string +lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 scope:local data:string +lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 scope:local data:string +lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 scope:local data:string +lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 scope:local data:string +lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 scope:local data:string +lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 scope:local data:string +lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 scope:local data:string +lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA scope:local data:string +lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C scope:local data:string +lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D scope:local data:string +lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 scope:local data:string +lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x1C scope:local data:string lbl_1_data_EF8 = .data:0x00000EF8; // type:object size:0x10 lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x4 data:4byte lbl_1_data_F0C = .data:0x00000F0C; // type:object size:0x8 data:4byte lbl_1_data_F14 = .data:0x00000F14; // type:object size:0x4 data:4byte -lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 data:string -lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 data:string -lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 data:string -lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 data:string -lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 data:string -lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 data:string -lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 data:string -lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 data:string -lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 data:string -lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 data:string -lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 data:string -lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA data:string -lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C data:string -lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D data:string -lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 data:string -lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 data:string -lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 data:string -lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 data:string -lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 data:string -lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 data:string -lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 data:string -lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 data:string +lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 scope:local data:string +lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 scope:local data:string +lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 scope:local data:string +lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 scope:local data:string +lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 scope:local data:string +lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 scope:local data:string +lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 scope:local data:string +lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 scope:local data:string +lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 scope:local data:string +lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 scope:local data:string +lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 scope:local data:string +lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA scope:local data:string +lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C scope:local data:string +lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D scope:local data:string +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 scope:local data:string +lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 scope:local data:string +lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 scope:local data:string +lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 scope:local data:string +lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 scope:local data:string +lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 scope:local data:string +lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 scope:local data:string +lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 scope:local data:string lbl_1_data_10E4 = .data:0x000010E4; // type:object size:0x20 -lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF data:string +lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x20 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x44 data:float diff --git a/src/REL/m418Dll/main.c b/src/REL/m418Dll/main.c index c2794f39..38b547ca 100644 --- a/src/REL/m418Dll/main.c +++ b/src/REL/m418Dll/main.c @@ -1,4 +1,3 @@ -#include "math.h" #include "ext_math.h" #include "game/chrman.h" #include "game/hsfman.h" @@ -6,17 +5,18 @@ #include "game/objsub.h" #include "game/pad.h" #include "game/wipe.h" +#include "math.h" #include "REL/m418Dll.h" // types typedef struct M418DllUnkStruct2 { - omObjData* unk0; + omObjData *unk0; s32 unk4[4]; } M418DllUnkStruct2; // sizeof 0x14 typedef struct M418DllUnkStruct3 { - omObjData* unk0; + omObjData *unk0; s32 unk4; s32 unk8; s32 unkC; @@ -41,7 +41,7 @@ typedef struct M418DllUnkStruct3 { } M418DllUnkStruct3; // sizeof 0x60 typedef struct M418DllUnkStruct4 { - omObjData* unk0; + omObjData *unk0; f32 unk4; f32 unk8; s32 unkC; @@ -69,7 +69,7 @@ typedef struct M418DllUnkStruct6 { } M418DllUnkStruct6; // sizeof 0x44 typedef struct M418DllWorkStruct { - omObjData* unk0; + omObjData *unk0; Vec unk4; Vec unk10[10]; s32 unk88; @@ -95,18 +95,20 @@ s32 lbl_1_bss_10; s32 lbl_1_bss_C; s32 lbl_1_bss_8; s32 lbl_1_bss_4; -Process* lbl_1_bss_0; +Process *lbl_1_bss_0; // data s32 lbl_1_data_0[2] = { -1, -1 }; s32 lbl_1_data_8 = -1; -void fn_1_0(void) { +void fn_1_0(void) +{ Hu3DGLightCreate(-2500.0f, 5000.0f, 5000.0f, 0.0f, -1.0f, -1.0f, 0xFF, 0xD8, 0xA0); } -void fn_1_74(void) { - M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; +void fn_1_74(void) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; Vec sp2C = { 0.0f, 1100.0f, 1800.0f }; Vec sp20 = { 0.0f, 600.0f, 600.0f }; @@ -115,15 +117,17 @@ void fn_1_74(void) { var_r31->rot.x++; } -void fn_1_158(s32 arg0, f32 arg8) { - M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; - +void fn_1_158(s32 arg0, f32 arg8) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + var_r31->unk3C[arg0] = arg8; } -f32 fn_1_180(s32 arg0) { - M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; - +f32 fn_1_180(s32 arg0) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + if (var_r31->unk3C[arg0] != 0.0f) { var_r31->unk3C[arg0] *= -0.9f; if (var_r31->unk3C[arg0] >= -0.5f) { @@ -135,19 +139,21 @@ f32 fn_1_180(s32 arg0) { return var_r31->unk3C[arg0]; } -void fn_1_248(M418DllFunc arg0) { - M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; - +void fn_1_248(M418DllFunc arg0) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + var_r31->unk0 = arg0; } -void fn_1_268(omObjData* object) { - M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; - +void fn_1_268(omObjData *object) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + if (var_r31->unk0 != NULL) { var_r31->unk0(); } - + Center.x = var_r31->center.x + fn_1_180(0); Center.y = var_r31->center.y + fn_1_180(1); Center.z = var_r31->center.z + fn_1_180(2); @@ -157,8 +163,9 @@ void fn_1_268(omObjData* object) { CZoom = var_r31->zoom; } -void fn_1_500(void) { - M418DllUnkStruct* var_r31; +void fn_1_500(void) +{ + M418DllUnkStruct *var_r31; Hu3DCameraCreate(1); Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); Hu3DCameraPerspectiveSet(1, 40.0f, 0.1f, 17500.0f, 1.2f); @@ -168,7 +175,8 @@ void fn_1_500(void) { omAddObjEx(lbl_1_bss_0, 0x7FD9, 0, 0, -1, fn_1_268); } -void fn_1_618(void) { +void fn_1_618(void) +{ Vec sp20 = { -1500.0f, 2500.0f, 1000.0f }; Vec sp14 = { 0.0f, 0.0f, 0.0f }; Vec sp8 = { 0.0f, 1.0f, 0.0f }; @@ -178,30 +186,34 @@ void fn_1_618(void) { Hu3DShadowPosSet(&sp20, &sp8, &sp14); } -void fn_1_6DC(s32 arg0) { +void fn_1_6DC(s32 arg0) +{ if (lbl_1_bss_8 == 0) { lbl_1_bss_8 = 1; lbl_1_bss_4 = arg0 * 0x3C; } } -s32 fn_1_714(void) { +s32 fn_1_714(void) +{ s32 var_r31 = 0; - + if (lbl_1_bss_8 == 3) { var_r31 = 1; } return var_r31; } -void fn_1_748(void) { +void fn_1_748(void) +{ if (lbl_1_bss_8 == 2) { lbl_1_bss_8 = 3; lbl_1_bss_4 = 30; } } -void fn_1_780(omObjData* object) { +void fn_1_780(omObjData *object) +{ switch (lbl_1_bss_8) { case 1: if (lbl_1_data_8 == -1) { @@ -230,18 +242,21 @@ void fn_1_780(omObjData* object) { } } -s32 fn_1_950(s32 arg0) { - +s32 fn_1_950(s32 arg0) +{ + if ((rand8() % arg0) == 0) { return 1; - } else { + } + else { return 0; } } -void fn_1_998(omObjData* object) { +void fn_1_998(omObjData *object) +{ s32 var_r31; - M418DllUnkStruct2* var_r30 = &lbl_1_bss_1E0; + M418DllUnkStruct2 *var_r30 = &lbl_1_bss_1E0; for (var_r31 = 0; var_r31 < 3; var_r31++) { switch (var_r30->unk4[var_r31]) { @@ -262,9 +277,10 @@ void fn_1_998(omObjData* object) { } } -void fn_1_AA8(omObjData* object) { +void fn_1_AA8(omObjData *object) +{ Mtx sp10; - char* sp8[2] = { "scene02-dai1_null", "scene02-dai2_null1" }; + char *sp8[2] = { "scene02-dai1_null", "scene02-dai2_null1" }; s32 var_r31; for (var_r31 = 0; var_r31 < 2; var_r31++) { @@ -274,13 +290,14 @@ void fn_1_AA8(omObjData* object) { object->func = fn_1_998; } -void fn_1_B4C(omObjData* object) { +void fn_1_B4C(omObjData *object) +{ s32 sp8[3] = { 0x310021, 0x310022, 0x310023 }; s32 var_r30; object->model[0] = Hu3DModelCreateFile(0x310011); Hu3DModelShadowMapSet(object->model[0]); - + for (var_r30 = 1; var_r30 < 4; var_r30++) { object->model[var_r30] = Hu3DModelCreateFile(sp8[var_r30 - 1]); object->motion[var_r30] = Hu3DMotionIDGet(object->model[var_r30]); @@ -290,7 +307,7 @@ void fn_1_B4C(omObjData* object) { } object->model[4] = Hu3DModelCreateFile(0x310016); object->model[5] = Hu3DModelCreateFile(0x310018); - + for (var_r30 = 6; var_r30 < 8; var_r30++) { object->model[var_r30] = Hu3DModelCreateFile(0x310026); object->motion[var_r30] = Hu3DMotionIDGet(object->model[var_r30]); @@ -298,7 +315,7 @@ void fn_1_B4C(omObjData* object) { Hu3DModelLayerSet(object->model[var_r30], 1); fn_1_ABC4(object, var_r30, var_r30, 0, 1); } - + for (var_r30 = 8; var_r30 < 11; var_r30++) { object->model[var_r30] = Hu3DModelCreateFile(0x31002A); object->motion[var_r30] = Hu3DJointMotion(object->model[var_r30], HuDataSelHeapReadNum(0x31002E, MEMORY_DEFAULT_NUM, HEAP_DATA)); @@ -308,24 +325,26 @@ void fn_1_B4C(omObjData* object) { object->func = fn_1_AA8; } -void fn_1_E74(omObjData* object) { +void fn_1_E74(omObjData *object) +{ Mtx sp18; f32 var_f31; - M418DllUnkStruct4* temp_r30; - M418DllUnkStruct4* temp_r29; - M418DllUnkStruct3* temp_r28; - M418DllUnkStruct4* temp_r27; - M418DllUnkStruct6* temp_r26; - HsfObject* temp_r25; - ModelData* temp_r24; + M418DllUnkStruct4 *temp_r30; + M418DllUnkStruct4 *temp_r29; + M418DllUnkStruct3 *temp_r28; + M418DllUnkStruct4 *temp_r27; + M418DllUnkStruct6 *temp_r26; + HsfObject *temp_r25; + ModelData *temp_r24; temp_r26 = &lbl_1_bss_3EC; temp_r28 = &lbl_1_bss_26C[temp_r26->unk0]; temp_r30 = &lbl_1_bss_170[object->work[0]]; if (object->work[1] == 0) { fn_1_ABC4(object, 2, 2, 0, 2); - } else if (object->work[1] == 1) { + } + else if (object->work[1] == 1) { Hu3DModelAttrReset(object->model[3], 1); Hu3DModelAttrReset(object->model[4], 1); Hu3DModelAttrReset(object->model[5], 1); @@ -335,14 +354,16 @@ void fn_1_E74(omObjData* object) { fn_1_ABC4(object, 4, 4, 0, 1); object->work[1] = 2; lbl_1_bss_240[5] = HuAudFXPlay(0x5D6); - } else if (object->work[1] == 2) { + } + else if (object->work[1] == 2) { if (Hu3DMotionEndCheck(object->model[3]) != 0) { object->work[1] = 3; object->work[2] = 0; temp_r30->unkC = 1; HuAudFXFadeOut(lbl_1_bss_240[5], 0x3E8); } - } else if (object->work[1] == 3) { + } + else if (object->work[1] == 3) { temp_r29 = &lbl_1_bss_170[object->work[0]]; temp_r29->unkC = 2; temp_r29->unk4 += 1.0f; @@ -353,7 +374,8 @@ void fn_1_E74(omObjData* object) { if (temp_r29->unk10 == 1) { object->work[1] = 5; temp_r29->unk8 = 0.0f; - } else { + } + else { HuAudFXPlay(0x5D2); object->work[1] = 4; Hu3DModelObjMtxGet(object->model[0], "taihou-null4", sp18); @@ -363,21 +385,24 @@ void fn_1_E74(omObjData* object) { } temp_r29->unkC = 3; } - } else if (object->work[1] == 4) { - if ((Hu3DMotionEndCheck(object->model[5]) != 0) || (temp_r30->unk10 == 1)) { - object->work[1] = 99; - Hu3DModelAttrSet(object->model[3], 1); - Hu3DModelAttrSet(object->model[4], 1); - Hu3DModelAttrSet(object->model[5], 1); - } - } else if (object->work[1] == 5 || object->work[1] == 6) { + } + else if (object->work[1] == 4) { + if ((Hu3DMotionEndCheck(object->model[5]) != 0) || (temp_r30->unk10 == 1)) { + object->work[1] = 99; + Hu3DModelAttrSet(object->model[3], 1); + Hu3DModelAttrSet(object->model[4], 1); + Hu3DModelAttrSet(object->model[5], 1); + } + } + else if (object->work[1] == 5 || object->work[1] == 6) { if (temp_r30->unk8 > 1.7f) { temp_r30->unk8 = 1.7f; } if (object->work[1] == 5) { var_f31 = temp_r30->unk8 * temp_r30->unk8 * (temp_r30->unk8 >= 0.0f ? -3.5f : 3.5f); temp_r30->unk4 += var_f31; - } else { + } + else { var_f31 = temp_r30->unk8 * temp_r30->unk8 * (temp_r30->unk8 >= 0.0f ? -1.25f : 1.25f); temp_r30->unk4 += var_f31; } @@ -388,7 +413,8 @@ void fn_1_E74(omObjData* object) { fn_1_158(1, 4.0f); omVibrate(temp_r28->unk4, 0xC, 6, 6); HuAudFXPlay(0x5DA); - } else { + } + else { if ((temp_r30->unk4 <= 0.0f) && (object->work[1] == 6)) { Hu3DModelObjMtxGet(object->model[0], "taihou-null4", sp18); Hu3DModelPosSet(object->model[6], sp18[0][3], sp18[1][3], sp18[2][3]); @@ -405,7 +431,7 @@ void fn_1_E74(omObjData* object) { temp_r30->unk8 += 0.11f; } if (object->work[1] != 0) { - const char* sp8[4] = { "doukasen-null_B", "doukasen-null_A", "doukasen-null_X", "doukasen-null_Y" }; + const char *sp8[4] = { "doukasen-null_B", "doukasen-null_A", "doukasen-null_X", "doukasen-null_Y" }; Hu3DModelObjMtxGet(object->model[3], sp8[object->work[0]], sp18); Hu3DModelPosSet(object->model[4], sp18[0][3], sp18[1][3], sp18[2][3]); } @@ -416,12 +442,13 @@ void fn_1_E74(omObjData* object) { temp_r24->rot.x = temp_r27->unk4; } -void fn_1_14F0(omObjData* arg0) { +void fn_1_14F0(omObjData *arg0) +{ s32 var_r30 = arg0->work[0]; s32 sp28[4] = { 0x310012, 0x310013, 0x310015, 0x310014 }; s32 sp18[4] = { 0x310019, 0x31001A, 0x31001B, 0x31001C }; s32 sp8[4] = { 0x31001D, 0x31001E, 0x31001F, 0x310020 }; - + arg0->model[0] = Hu3DModelCreateFile(0x310010); omSetTra(arg0, -540.0f + (360.0f * var_r30), 115.0f, -900.0f); arg0->model[1] = Hu3DModelCreateFile(sp28[var_r30]); @@ -449,8 +476,9 @@ void fn_1_14F0(omObjData* arg0) { arg0->func = fn_1_E74; } -void fn_1_18AC(omObjData* object) { - M418DllUnkStruct4* var_r31; +void fn_1_18AC(omObjData *object) +{ + M418DllUnkStruct4 *var_r31; var_r31 = &lbl_1_bss_11C[object->work[0]]; if (var_r31->unk14 == 0.0f) { @@ -458,8 +486,9 @@ void fn_1_18AC(omObjData* object) { } } -s32 fn_1_18FC(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { - M418DllUnkStruct4* temp_r30; +s32 fn_1_18FC(omObjData *object, Vec arg1, f32 arg8, f32 arg9) +{ + M418DllUnkStruct4 *temp_r30; s32 var_r28; f32 var_f31; f32 var_f30; @@ -476,7 +505,8 @@ s32 fn_1_18FC(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { var_f27 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); if (var_f27 <= 15.0f) { var_f31 = var_f30 = 0.0f; - } else { + } + else { var_f31 = 55.0f * (var_f31 / var_f27); var_f30 = 55.0f * (var_f30 / var_f27); } @@ -486,7 +516,8 @@ s32 fn_1_18FC(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { var_f27 = arg9 * (sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)) / 72.0f); if (var_f27 >= arg9) { var_f27 = arg9; - } else if (var_f27 <= 1.0f) { + } + else if (var_f27 <= 1.0f) { var_f31 = var_f30 = var_f27 = 0.0f; var_r28 = 1; } @@ -501,7 +532,8 @@ s32 fn_1_18FC(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { if (object->rot.y - var_f26 < -180.0f) { object->rot.y += 360.0f; } - } else { + } + else { if (object->rot.y - var_f26 > 180.0f) { object->rot.y -= 360.0f; } @@ -529,32 +561,27 @@ s32 fn_1_18FC(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { } if (var_f27 > 0.0f) { fn_1_AD14(object, 0, 1, 10, 1); - } else { + } + else { fn_1_AD14(object, 0, 0, 10, 1); } return var_r28; } -s32 fn_1_20B0(omObjData* object, Vec arg1, f32 arg8, f32 arg9, s32 arg2) { - if (arg2 == 1) fn_1_18AC(object); +s32 fn_1_20B0(omObjData *object, Vec arg1, f32 arg8, f32 arg9, s32 arg2) +{ + if (arg2 == 1) + fn_1_18AC(object); return fn_1_18FC(object, arg1, arg9, arg8); } -Vec lbl_1_data_8C[9] = { - { 140.0f, 0.0f, -90.0f }, - { -200.0f, 0.0f, 50.0f }, - { -300.0f, 0.0f, -150.0f }, - { -250.0f, 0.0f, -500.0f }, - { 0.0f, 0.0f, 150.0f }, - { 700.0f, 0.0f, 50.0f }, - { 1000.0f, -50.0f, 500.0f }, - { 1000.0f, -100.0f, 500.0f }, - { 1000.0f, -150.0f, 500.0f } -}; +Vec lbl_1_data_8C[9] = { { 140.0f, 0.0f, -90.0f }, { -200.0f, 0.0f, 50.0f }, { -300.0f, 0.0f, -150.0f }, { -250.0f, 0.0f, -500.0f }, + { 0.0f, 0.0f, 150.0f }, { 700.0f, 0.0f, 50.0f }, { 1000.0f, -50.0f, 500.0f }, { 1000.0f, -100.0f, 500.0f }, { 1000.0f, -150.0f, 500.0f } }; -s32 fn_1_2178(omObjData* object) { +s32 fn_1_2178(omObjData *object) +{ s32 var_r30; - + switch (object->work[1]) { case 1: object->work[2] = 0; @@ -580,7 +607,7 @@ s32 fn_1_2178(omObjData* object) { object->work[2] = 0; } break; - + case 2: object->work[2] = 0; object->work[1] = 0x14; @@ -646,10 +673,11 @@ s32 fn_1_2178(omObjData* object) { } } -void fn_1_2894(omObjData* object) { +void fn_1_2894(omObjData *object) +{ Mtx sp3C; Mtx spC; - M418DllUnkStruct6* sp8; + M418DllUnkStruct6 *sp8; f32 temp_f31; sp8 = &lbl_1_bss_3EC; @@ -661,7 +689,8 @@ void fn_1_2894(omObjData* object) { fn_1_2178(object); } -void fn_1_29A0(omObjData* object) { +void fn_1_29A0(omObjData *object) +{ u32 temp_r30; temp_r30 = object->work[0]; @@ -683,8 +712,9 @@ void fn_1_29A0(omObjData* object) { object->func = fn_1_2894; } -void fn_1_2BC4(Vec arg0) { - M418DllWorkStruct* var_r31 = &lbl_1_bss_68; +void fn_1_2BC4(Vec arg0) +{ + M418DllWorkStruct *var_r31 = &lbl_1_bss_68; var_r31->unk4.x = arg0.x; var_r31->unk4.y = arg0.y; var_r31->unk4.z = arg0.z; @@ -692,9 +722,10 @@ void fn_1_2BC4(Vec arg0) { var_r31->unk0->work[0] = 1; } -void fn_1_2C0C(omObjData* object) { - ModelData* temp_r28; - M418DllWorkStruct* var_r31 = &lbl_1_bss_68; +void fn_1_2C0C(omObjData *object) +{ + ModelData *temp_r28; + M418DllWorkStruct *var_r31 = &lbl_1_bss_68; s32 var_r30; switch (object->work[0]) { @@ -726,7 +757,8 @@ void fn_1_2C0C(omObjData* object) { } } -void fn_1_3054(omObjData* object) { +void fn_1_3054(omObjData *object) +{ s32 var_r30; for (var_r30 = 1; var_r30 < 11; var_r30++) { @@ -738,8 +770,9 @@ void fn_1_3054(omObjData* object) { object->func = fn_1_2C0C; } -void fn_1_3138(void) { - M418DllUnkStruct3* temp_r31; +void fn_1_3138(void) +{ + M418DllUnkStruct3 *temp_r31; s32 var_r30; for (var_r30 = 0; var_r30 < 4; var_r30++) { @@ -748,13 +781,15 @@ void fn_1_3138(void) { temp_r31->unk8 = GWPlayerCfg[temp_r31->unk4].group; if (temp_r31->unk8 == 0) { temp_r31->unk8 = 0; - } else { + } + else { temp_r31->unk8 = 1; } temp_r31->unkC = GWPlayerCfg[temp_r31->unk4].iscom; if (temp_r31->unkC != 0) { temp_r31->unk10 = GWPlayerCfg[temp_r31->unk4].diff; - } else { + } + else { temp_r31->unk10 = 0; } temp_r31->unk14 = GWPlayerCfg[temp_r31->unk4].character; @@ -762,23 +797,16 @@ void fn_1_3138(void) { } } -char* lbl_1_data_1C0[8] = { - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r", - "test11_tex_we-itemhook-r" -}; +char *lbl_1_data_1C0[8] = { "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", + "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r", "test11_tex_we-itemhook-r" }; -void fn_1_3240(omObjData* object) { +void fn_1_3240(omObjData *object) +{ Mtx sp14; Vec sp8; - M418DllUnkStruct3* temp_r28; - ModelData* temp_r30; - M418DllWorkStruct* var_r29; + M418DllUnkStruct3 *temp_r28; + ModelData *temp_r30; + M418DllWorkStruct *var_r29; temp_r30 = &Hu3DData[object->model[11]]; temp_r28 = &lbl_1_bss_26C[object->work[0]]; @@ -801,12 +829,13 @@ void fn_1_3240(omObjData* object) { Hu3DModelAttrSet(object->model[11], 1); object->work[1] = object->work[2] = 0; } - break; + break; } } -void fn_1_3408(omObjData* object) { - M418DllUnkStruct3* temp_r31; +void fn_1_3408(omObjData *object) +{ + M418DllUnkStruct3 *temp_r31; temp_r31 = &lbl_1_bss_26C[object->work[0]]; if (temp_r31->unk1C == 0) { @@ -814,14 +843,15 @@ void fn_1_3408(omObjData* object) { } } -void fn_1_3444(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { +void fn_1_3444(omObjData *object, Vec arg1, f32 arg8, f32 arg9) +{ s32 sp24; f32 sp20; f32 sp1C; f32 sp18; - M418DllUnkStruct3* temp_r28; - M418DllUnkStruct3* temp_r30; - + M418DllUnkStruct3 *temp_r28; + M418DllUnkStruct3 *temp_r30; + f32 var_f31; f32 var_f30; f32 temp_f29; @@ -842,7 +872,8 @@ void fn_1_3444(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { var_f24 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); if (var_f24 <= 30.0f) { var_f31 = var_f30 = 0.0f; - } else { + } + else { var_f31 = 55.0f * (var_f31 / var_f24); var_f30 = 55.0f * (var_f30 / var_f24); } @@ -852,7 +883,8 @@ void fn_1_3444(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { var_f24 = arg9 * (sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)) / 72.0f); if (var_f24 >= arg9) { var_f24 = arg9; - } else if (var_f24 <= 1.0f) { + } + else if (var_f24 <= 1.0f) { var_f31 = var_f30 = var_f24 = 0.0f; } if (var_f31 != 0.0f || var_f30 != 0.0f || arg8 >= 0.0f) { @@ -866,7 +898,8 @@ void fn_1_3444(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { if (object->rot.y - var_f23 < -180.0f) { object->rot.y += 360.0f; } - } else { + } + else { if (object->rot.y - var_f23 > 180.0f) { object->rot.y -= 360.0f; } @@ -881,7 +914,8 @@ void fn_1_3444(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { sp18 = object->trans.z - (50.0 * sind(object->rot.y - 90.0f)); for (var_r29 = 0; var_r29 < 4; var_r29++) { - if (var_r29 == object->work[0]) continue; + if (var_r29 == object->work[0]) + continue; temp_r28 = &lbl_1_bss_26C[var_r29]; temp_f29 = temp_r28->unk0->trans.x; temp_f28 = temp_r28->unk0->trans.z; @@ -925,8 +959,9 @@ void fn_1_3444(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { fn_1_AD14(object, 0, 0, 10, 1); } -void fn_1_3EB0(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { - M418DllUnkStruct3* temp_r30; +void fn_1_3EB0(omObjData *object, Vec arg1, f32 arg8, f32 arg9) +{ + M418DllUnkStruct3 *temp_r30; s32 sp10; f32 var_f31; f32 var_f30; @@ -943,7 +978,8 @@ void fn_1_3EB0(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { var_f27 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); if (var_f27 <= 30.0f) { var_f31 = var_f30 = 0.0f; - } else { + } + else { var_f31 = 55.0f * (var_f31 / var_f27); var_f30 = 55.0f * (var_f30 / var_f27); } @@ -953,7 +989,8 @@ void fn_1_3EB0(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { var_f27 = arg9 * (sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)) / 72.0f); if (var_f27 >= arg9) { var_f27 = arg9; - } else if (var_f27 <= 1.0f) { + } + else if (var_f27 <= 1.0f) { var_f31 = var_f30 = var_f27 = 0.0f; } if (var_f31 != 0.0f || var_f30 != 0.0f || arg8 >= 0.0f) { @@ -967,7 +1004,8 @@ void fn_1_3EB0(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { if (object->rot.y - var_f26 < -180.0f) { object->rot.y += 360.0f; } - } else { + } + else { if (object->rot.y - var_f26 > 180.0f) { object->rot.y -= 360.0f; } @@ -995,29 +1033,28 @@ void fn_1_3EB0(omObjData* object, Vec arg1, f32 arg8, f32 arg9) { } if (temp_r30->unk1C != 0) { fn_1_AD14(object, 0, 3, 10, 0); - } else if (var_f27 >= 6.75f) { + } + else if (var_f27 >= 6.75f) { fn_1_AD14(object, 0, 2, 10, 1); - } else if (var_f27 > 0.0f) { + } + else if (var_f27 > 0.0f) { fn_1_AD14(object, 0, 1, 10, 1); - } else { + } + else { fn_1_AD14(object, 0, 0, 10, 1); } } -s32 lbl_1_data_1E0[4][2] = { - { -1, 127 }, - { -1, 127 }, - { -1, 127 }, - { -1, 127 } -}; +s32 lbl_1_data_1E0[4][2] = { { -1, 127 }, { -1, 127 }, { -1, 127 }, { -1, 127 } }; -void fn_1_46C4(omObjData* object) { +void fn_1_46C4(omObjData *object) +{ s32 sp8; - M418DllUnkStruct3* temp_r31; + M418DllUnkStruct3 *temp_r31; sp8 = 0; temp_r31 = &lbl_1_bss_26C[object->work[0]]; - + switch (temp_r31->unk24) { case 0: temp_r31->unk2C = object->scale.x; @@ -1090,15 +1127,16 @@ void fn_1_46C4(omObjData* object) { } } -void fn_1_4C84(omObjData* object) { +void fn_1_4C84(omObjData *object) +{ Mtx sp14; Vec sp8; f32 var_f31; - M418DllUnkStruct3* temp_r26; - M418DllWorkStruct* var_r27; - M418DllUnkStruct3* temp_r30; - ModelData* temp_r28; - ModelData* temp_r29; + M418DllUnkStruct3 *temp_r26; + M418DllWorkStruct *var_r27; + M418DllUnkStruct3 *temp_r30; + ModelData *temp_r28; + ModelData *temp_r29; s32 temp_r0; u32 temp_r3; @@ -1108,7 +1146,8 @@ void fn_1_4C84(omObjData* object) { temp_r29 = &Hu3DData[object->model[12]]; if ((temp_r30->unk14 == 7) || (temp_r30->unk14 == 5)) { temp_r29->rot.y = -object->rot.y - 360.0f; - } else { + } + else { temp_r29->rot.y = -object->rot.y - 90.0f; } temp_r29->scale.x = 0.35f * temp_r30->unk3C; @@ -1119,20 +1158,21 @@ void fn_1_4C84(omObjData* object) { fn_1_46C4(object); } -void fn_1_4F60(omObjData* object) { - M418DllUnkStruct3* temp_r30; +void fn_1_4F60(omObjData *object) +{ + M418DllUnkStruct3 *temp_r30; temp_r30 = &lbl_1_bss_26C[object->work[0]]; object->model[0] = CharModelCreate(temp_r30->unk14, 2); - object->motion[0] = CharModelMotionCreate(temp_r30->unk14, 0x5F0000); - object->motion[1] = CharModelMotionCreate(temp_r30->unk14, 0x5F0002); - object->motion[2] = CharModelMotionCreate(temp_r30->unk14, 0x5F0003); - object->motion[3] = CharModelMotionCreate(temp_r30->unk14, 0x5F0073); - object->motion[4] = CharModelMotionCreate(temp_r30->unk14, 0x5F0074); - object->motion[5] = CharModelMotionCreate(temp_r30->unk14, 0x5F0017); - object->motion[6] = CharModelMotionCreate(temp_r30->unk14, 0x5F0018); - object->motion[7] = CharModelMotionCreate(temp_r30->unk14, 0x5F001B); - object->motion[8] = CharModelMotionCreate(temp_r30->unk14, 0x5F002A); + object->motion[0] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + object->motion[1] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); + object->motion[2] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03)); + object->motion[3] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x73)); + object->motion[4] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x74)); + object->motion[5] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17)); + object->motion[6] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18)); + object->motion[7] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1B)); + object->motion[8] = CharModelMotionCreate(temp_r30->unk14, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x2A)); object->motion[9] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(temp_r30->unk14 + 0x310000, 0x10000000, HEAP_DATA)); object->motion[10] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(temp_r30->unk14 + 0x310008, 0x10000000, HEAP_DATA)); object->model[1] = Hu3DModelCreateFile(0x310017); @@ -1161,8 +1201,9 @@ void fn_1_4F60(omObjData* object) { object->func = fn_1_4C84; } -void fn_1_5358(void) { - M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; +void fn_1_5358(void) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; Vec sp2C = { 0.0f, 1100.0f, 1800.0f }; Vec sp20 = { 0.0f, 600.0f, 600.0f }; @@ -1171,13 +1212,13 @@ void fn_1_5358(void) { var_r31->rot.x++; } -void fn_1_543C(void) { +void fn_1_543C(void) +{ M418DllUnkStruct sp38; - M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; - Vec sp2C = { -180.0f, 500.0f, 440.0f }; + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + Vec sp2C = { -180.0f, 500.0f, 440.0f }; Vec sp20 = { -180.0f, 330.0f, -760.0f }; - fn_1_B104(&sp38, sp2C, sp20); fn_1_B41C(&sp38); sp38.center.x = 0.0f; @@ -1187,11 +1228,12 @@ void fn_1_543C(void) { fn_1_DC10(var_r31, &sp38, var_r31->unk48++, 30.0f, 10.0f); } -void fn_1_558C(void) { +void fn_1_558C(void) +{ M418DllUnkStruct sp38; - M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; Vec sp2C = { 0.0f, 1100.0f, 1800.0f }; - Vec sp20 = { 0.0f, 600.0f, 600.0f }; + Vec sp20 = { 0.0f, 600.0f, 600.0f }; fn_1_B104(&sp38, sp2C, sp20); fn_1_B41C(&sp38); @@ -1199,8 +1241,9 @@ void fn_1_558C(void) { fn_1_CBF8(var_r31, &sp38, var_r31->unk48++, 30.0f, 10.0f); } -void fn_1_56AC(s32 arg0) { - M418DllUnkStruct* var_r28 = &lbl_1_bss_1F4; +void fn_1_56AC(s32 arg0) +{ + M418DllUnkStruct *var_r28 = &lbl_1_bss_1F4; fn_1_B458(var_r28); switch (arg0) { case 0: @@ -1215,11 +1258,12 @@ void fn_1_56AC(s32 arg0) { } } -void fn_1_5768(s32 arg0) { +void fn_1_5768(s32 arg0) +{ s32 var_r31; - M418DllUnkStruct4* var_r30; - M418DllUnkStruct* var_r26; - + M418DllUnkStruct4 *var_r30; + M418DllUnkStruct *var_r26; + for (var_r31 = 0; var_r31 < 3; var_r31++) { var_r30 = &lbl_1_bss_170[var_r31]; var_r30->unkC = 0; @@ -1228,9 +1272,10 @@ void fn_1_5768(s32 arg0) { fn_1_56AC(0); } -s32 fn_1_57E4(s32 arg0) { - M418DllUnkStruct4* temp_r31; - M418DllUnkStruct* var_r25; +s32 fn_1_57E4(s32 arg0) +{ + M418DllUnkStruct4 *temp_r31; + M418DllUnkStruct *var_r25; s32 var_r29; s32 var_r30; @@ -1240,14 +1285,16 @@ s32 fn_1_57E4(s32 arg0) { if (temp_r31->unkC == 0) { if ((rand8() % 5) == 0) { var_r29 = 1; - } else { + } + else { var_r29 = 0; } if (var_r29 || (fn_1_B0C8(&lbl_1_bss_50, 0) >= 0x41)) { HuAudFXPlay(0x5D3); temp_r31->unkC = 1; } - } else { + } + else { temp_r31->unk4 += 5.0f; if (temp_r31->unk4 >= 90.0f) { temp_r31->unk4 = 90.0f; @@ -1260,28 +1307,26 @@ s32 fn_1_57E4(s32 arg0) { } if (fn_1_B0C8(&lbl_1_bss_50, 1) != 0) { return fn_1_AF38(&lbl_1_bss_50); - } else { + } + else { return 0; } } -s32 lbl_1_data_200[16] = { - 0x310000, 0x310001, 0x310002, 0x310003, - 0x310004, 0x310005, 0x310006, 0x310007, - 0x310008, 0x310009, 0x31000A, 0x31000B, - 0x31000C, 0x31000D, 0x31000E, 0x31000F -}; +s32 lbl_1_data_200[16] = { 0x310000, 0x310001, 0x310002, 0x310003, 0x310004, 0x310005, 0x310006, 0x310007, 0x310008, 0x310009, 0x31000A, 0x31000B, + 0x31000C, 0x31000D, 0x31000E, 0x31000F }; Vec lbl_1_data_240[3] = { { -540.0f, 225.0f, -900.0f }, { -180.0f, 225.0f, -900.0f }, - { 180.0f, 225.0f, -900.0f }, + { 180.0f, 225.0f, -900.0f }, }; -void fn_1_5970(s32 arg0) { - M418DllUnkStruct3* temp_r30; - M418DllUnkStruct6* temp_r29; - M418DllUnkStruct4* temp_r28; +void fn_1_5970(s32 arg0) +{ + M418DllUnkStruct3 *temp_r30; + M418DllUnkStruct6 *temp_r29; + M418DllUnkStruct4 *temp_r28; s32 var_r31; temp_r29 = &lbl_1_bss_3EC; @@ -1291,7 +1336,7 @@ void fn_1_5970(s32 arg0) { omSetTra(temp_r30->unk0, lbl_1_data_240[var_r31].x, lbl_1_data_240[var_r31].y, lbl_1_data_240[var_r31].z - 50.0f); temp_r30->unk4C = 0; } - + for (var_r31 = 0; var_r31 < 3; var_r31++) { temp_r28 = &lbl_1_bss_170[var_r31]; temp_r28->unkC = 0; @@ -1300,28 +1345,30 @@ void fn_1_5970(s32 arg0) { Vec lbl_1_data_264[4] = { { -355.0f, 0.0f, -680.0f }, - { 5.0f, 0.0f, -680.0f }, - { 365.0f, 0.0f, -680.0f }, + { 5.0f, 0.0f, -680.0f }, + { 365.0f, 0.0f, -680.0f }, }; -s32 fn_1_5A6C(s32 arg0) { +s32 fn_1_5A6C(s32 arg0) +{ s32 var_r31; - M418DllUnkStruct3* temp_r30; - M418DllUnkStruct4* temp_r29; - M418DllUnkStruct3* temp_r28; - M418DllUnkStruct6* temp_r27; + M418DllUnkStruct3 *temp_r30; + M418DllUnkStruct4 *temp_r29; + M418DllUnkStruct3 *temp_r28; + M418DllUnkStruct6 *temp_r27; s32 var_r26; - omObjData* temp_r25; + omObjData *temp_r25; s32 var_r24; - M418DllUnkStruct* temp_r20; + M418DllUnkStruct *temp_r20; - temp_r27 = &lbl_1_bss_3EC; + temp_r27 = &lbl_1_bss_3EC; for (var_r31 = 0; var_r31 < 3; var_r31++) { temp_r30 = &lbl_1_bss_26C[temp_r27->unk4[var_r31]]; if (temp_r30->unk4C == 0) { if ((rand8() % 5) == 0) { var_r26 = 1; - } else { + } + else { var_r26 = 0; } if (var_r26 || (fn_1_B0C8(&lbl_1_bss_50, 0) >= 5)) { @@ -1333,25 +1380,28 @@ s32 fn_1_5A6C(s32 arg0) { } HuAudCharVoicePlay(temp_r30->unk14, 0x122); } - } else { + } + else { fn_1_3EB0(temp_r30->unk0, lbl_1_data_264[var_r31], 0.0f, 9.0f); } } if (fn_1_B0C8(&lbl_1_bss_50, 0) >= 0x3C) { - + for (var_r31 = 0; var_r31 < 3; var_r31++) { temp_r29 = &lbl_1_bss_170[var_r31]; if (temp_r29->unkC == 0) { if ((rand8() % 5) == 0) { var_r24 = 1; - } else { + } + else { var_r24 = 0; } if ((var_r24 != 0) || (fn_1_B0C8(&lbl_1_bss_50, 0) >= 0x41)) { HuAudFXPlay(0x5D3); temp_r29->unkC = 1; } - } else { + } + else { temp_r29->unk4 -= 2.5f; if (temp_r29->unk4 <= 0.0f) { temp_r29->unk4 = 0.0f; @@ -1368,17 +1418,15 @@ s32 fn_1_5A6C(s32 arg0) { return 0; } -M418DllUnkStruct8 lbl_1_data_294[3] = { - { fn_1_5768, fn_1_57E4, 0x5A }, - { fn_1_5970, fn_1_5A6C, 0xB4 }, - { NULL, NULL, -1 } -}; +M418DllUnkStruct8 lbl_1_data_294[3] = { { fn_1_5768, fn_1_57E4, 0x5A }, { fn_1_5970, fn_1_5A6C, 0xB4 }, { NULL, NULL, -1 } }; -void fn_1_5D28(void) { +void fn_1_5D28(void) +{ fn_1_AEDC(&lbl_1_bss_50, &lbl_1_data_294[0]); } -s32 fn_1_5D58(void) { +s32 fn_1_5D58(void) +{ s32 var_r31; var_r31 = 0; @@ -1392,8 +1440,9 @@ s32 fn_1_5D58(void) { return var_r31; } -s32 fn_1_5DF0(omObjData* object, s32 arg1) { - M418DllUnkStruct3* temp_r31; +s32 fn_1_5DF0(omObjData *object, s32 arg1) +{ + M418DllUnkStruct3 *temp_r31; s32 var_r30; temp_r31 = &lbl_1_bss_26C[object->work[0]]; @@ -1421,7 +1470,8 @@ s32 fn_1_5DF0(omObjData* object, s32 arg1) { } break; } - } else { + } + else { if ((HuPadBtnDown[temp_r31->unk18] & PAD_BUTTON_A) != 0) { var_r30 = 1; } @@ -1438,11 +1488,12 @@ s32 fn_1_5DF0(omObjData* object, s32 arg1) { return var_r30; } -s32 fn_1_6038(omObjData* object, s32 arg1) { - M418DllUnkStruct3* temp_r30; - M418DllUnkStruct4* temp_r28; - M418DllUnkStruct4* temp_r27; - M418DllUnkStruct4* temp_r26; +s32 fn_1_6038(omObjData *object, s32 arg1) +{ + M418DllUnkStruct3 *temp_r30; + M418DllUnkStruct4 *temp_r28; + M418DllUnkStruct4 *temp_r27; + M418DllUnkStruct4 *temp_r26; s32 var_r29; s32 var_r31; @@ -1482,11 +1533,13 @@ s32 fn_1_6038(omObjData* object, s32 arg1) { break; } } - } else { + } + else { temp_r28->unk18s = 1; } } - } else { + } + else { if ((HuPadBtnDown[temp_r30->unk18] & PAD_BUTTON_A) != 0) { var_r31 = 1; } @@ -1503,7 +1556,8 @@ s32 fn_1_6038(omObjData* object, s32 arg1) { temp_r26 = &lbl_1_bss_170[var_r31]; if (temp_r26->unk18s == 1) { var_r31 = -1; - } else { + } + else { temp_r26->unk18s = 1; } } @@ -1511,8 +1565,9 @@ s32 fn_1_6038(omObjData* object, s32 arg1) { return var_r31; } -void fn_1_6314(void) { - M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; +void fn_1_6314(void) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; Vec sp2C = { 0.0f, 1100.0f, 1800.0f }; Vec sp20 = { 0.0f, 600.0f, 600.0f }; @@ -1521,8 +1576,9 @@ void fn_1_6314(void) { var_r31->rot.x++; } -void fn_1_63F8(void) { - M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; +void fn_1_63F8(void) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; M418DllUnkStruct sp38; Vec sp2C = { 0.0f, 1800.0f, 480.0f }; Vec sp20 = { 0.0f, 600.0f, 250.0f }; @@ -1533,33 +1589,27 @@ void fn_1_63F8(void) { fn_1_BEAC(var_r31, &sp38, var_r31->unk48++, 120.0f, 10.0f); } -void fn_1_6510(void) { - M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; +void fn_1_6510(void) +{ + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; M418DllUnkStruct sp38; Vec sp2C = { 0.0f, 980.0f, 1330.0f }; Vec sp20 = { 0.0f, 480.0f, 130.0f }; - + fn_1_B104(&sp38, sp2C, sp20); fn_1_B41C(&sp38); fn_1_BEAC(var_r31, &sp38, var_r31->unk48++, 30.0f, 10.0f); } -Vec lbl_1_data_2B8[8] = { - { -540.0f, 225.0f, -900.0f }, - { -180.0f, 225.0f, -900.0f }, - { 180.0f, 225.0f, -900.0f }, - { 540.0f, 225.0f, -900.0f }, - { -360.0f, 0.0f, -680.0f }, - { 0.0f, 0.0f, -680.0f }, - { 360.0f, 0.0f, -680.0f }, - { 0.0f, 0.0f, 0.0f } -}; +Vec lbl_1_data_2B8[8] = { { -540.0f, 225.0f, -900.0f }, { -180.0f, 225.0f, -900.0f }, { 180.0f, 225.0f, -900.0f }, { 540.0f, 225.0f, -900.0f }, + { -360.0f, 0.0f, -680.0f }, { 0.0f, 0.0f, -680.0f }, { 360.0f, 0.0f, -680.0f }, { 0.0f, 0.0f, 0.0f } }; -void fn_1_6618(void) { +void fn_1_6618(void) +{ M418DllUnkStruct sp8; - M418DllUnkStruct3* temp_r31; - M418DllUnkStruct* var_r30; - M418DllUnkStruct6* var_r29; + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct *var_r30; + M418DllUnkStruct6 *var_r29; var_r29 = &lbl_1_bss_3EC; temp_r31 = &lbl_1_bss_26C[var_r29->unk0]; @@ -1574,9 +1624,10 @@ void fn_1_6618(void) { fn_1_CBF8(var_r30, &sp8, var_r30->unk48++, 30.0f, 5.0f); } -void fn_1_6740(s32 arg0) { - M418DllUnkStruct* var_r27 = &lbl_1_bss_1F4; - +void fn_1_6740(s32 arg0) +{ + M418DllUnkStruct *var_r27 = &lbl_1_bss_1F4; + fn_1_B458(var_r27); switch (arg0) { case 0: @@ -1594,20 +1645,21 @@ void fn_1_6740(s32 arg0) { } } -void fn_1_6808(s32 arg0) { +void fn_1_6808(s32 arg0) +{ s32 var_r31; - M418DllUnkStruct6* var_r30 = &lbl_1_bss_3EC; - M418DllUnkStruct3* var_r29; - M418DllUnkStruct4* var_r28; - M418DllUnkStruct* var_r23; + M418DllUnkStruct6 *var_r30 = &lbl_1_bss_3EC; + M418DllUnkStruct3 *var_r29; + M418DllUnkStruct4 *var_r28; + M418DllUnkStruct *var_r23; HuAudAUXVolSet(0x40, 0x40); - + for (var_r31 = 0; var_r31 < 3; var_r31++) { var_r29 = &lbl_1_bss_26C[var_r30->unk4[var_r31]]; var_r29->unk4C = -1; } - + for (var_r31 = 0; var_r31 < 3; var_r31++) { var_r28 = &lbl_1_bss_11C[var_r31]; fn_1_ABC4(var_r28->unk0, 0, 3, 30, 1); @@ -1616,29 +1668,25 @@ void fn_1_6808(s32 arg0) { lbl_1_bss_8 = 1; lbl_1_bss_4 = 0x12C; } - + fn_1_6740(0); } -Vec lbl_1_data_318[4] = { - { -540.0f, 115.0f, -700.0f }, - { -180.0f, 115.0f, -700.0f }, - { 180.0f, 115.0f, -700.0f }, - { 540.0f, 115.0f, -700.0f } -}; +Vec lbl_1_data_318[4] = { { -540.0f, 115.0f, -700.0f }, { -180.0f, 115.0f, -700.0f }, { 180.0f, 115.0f, -700.0f }, { 540.0f, 115.0f, -700.0f } }; -s32 fn_1_6914(s32 arg0) { +s32 fn_1_6914(s32 arg0) +{ Vec sp14; - M418DllUnkStruct3* temp_r31; - M418DllUnkStruct3* temp_r30; + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct3 *temp_r30; s32 var_r29; s32 temp_r27; - M418DllUnkStruct6* var_r26; - M418DllUnkStruct4* var_r25; - M418DllUnkStruct* var_r18; + M418DllUnkStruct6 *var_r26; + M418DllUnkStruct4 *var_r25; + M418DllUnkStruct *var_r18; var_r26 = &lbl_1_bss_3EC; - + for (var_r29 = 0; var_r29 < 3; var_r29++) { temp_r31 = &lbl_1_bss_26C[var_r26->unk4[var_r29]]; temp_r27 = fn_1_B0C8(&lbl_1_bss_38, 0); @@ -1660,7 +1708,7 @@ s32 fn_1_6914(s32 arg0) { } } } - + for (var_r29 = 0; var_r29 < 3; var_r29++) { var_r25 = &lbl_1_bss_11C[var_r29]; var_r25->unk0->rot.y += 1.2f; @@ -1674,10 +1722,11 @@ s32 fn_1_6914(s32 arg0) { return 0; } -void fn_1_6DCC(s32 arg0) { +void fn_1_6DCC(s32 arg0) +{ s32 var_r31; - M418DllUnkStruct4* temp_r30; - + M418DllUnkStruct4 *temp_r30; + for (var_r31 = 0; var_r31 < 3; var_r31++) { temp_r30 = &lbl_1_bss_11C[var_r31]; temp_r30->unk0->rot.y = 0.0f; @@ -1686,20 +1735,22 @@ void fn_1_6DCC(s32 arg0) { fn_1_6740(2); } -s32 fn_1_6E6C(s32 arg0) { +s32 fn_1_6E6C(s32 arg0) +{ if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { return fn_1_AF38(&lbl_1_bss_38); } return 0; } -void fn_1_6EB4(s32 arg0) { - M418DllUnkStruct6* var_r31 = &lbl_1_bss_3EC; +void fn_1_6EB4(s32 arg0) +{ + M418DllUnkStruct6 *var_r31 = &lbl_1_bss_3EC; s32 var_r30; - M418DllUnkStruct3* temp_r29; + M418DllUnkStruct3 *temp_r29; var_r31->unk34 = 0; - + for (var_r30 = 0; var_r30 < 3; var_r30++) { temp_r29 = &lbl_1_bss_26C[var_r31->unk4[var_r30]]; if (temp_r29->unk4C == -1) { @@ -1709,12 +1760,13 @@ void fn_1_6EB4(s32 arg0) { } } -s32 fn_1_6F38(s32 arg0) { - M418DllUnkStruct3* temp_r31; - M418DllUnkStruct2* temp_r29; - M418DllUnkStruct6* temp_r28; - M418DllUnkStruct2* temp_r27; - +s32 fn_1_6F38(s32 arg0) +{ + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct2 *temp_r29; + M418DllUnkStruct6 *temp_r28; + M418DllUnkStruct2 *temp_r27; + s32 var_r26; s32 var_r30; f32 var_f31; @@ -1725,14 +1777,15 @@ s32 fn_1_6F38(s32 arg0) { if (temp_r28->unk34 == 0) { return fn_1_B034(&lbl_1_bss_38, 9); } - + for (var_r30 = 0; var_r30 < 3; var_r30++) { temp_r31 = &lbl_1_bss_26C[temp_r28->unk4[var_r30]]; if (temp_r31->unk4C == -1) { if (temp_r29->unk4[var_r30] == 0) { if ((rand8() % 10) == 0) { var_r26 = 1; - } else { + } + else { var_r26 = 0; } if ((var_r26 != 0) || (fn_1_B0C8(&lbl_1_bss_38, 0) >= 10)) { @@ -1744,17 +1797,13 @@ s32 fn_1_6F38(s32 arg0) { temp_r31->unk50 = fn_1_B0C8(&lbl_1_bss_38, 0); omVibrate(temp_r31->unk4, 0xC, 6, 6); } - } else if (fn_1_B0C8(&lbl_1_bss_38, 0) >= (temp_r31->unk50 + 0x1E)) { + } + else if (fn_1_B0C8(&lbl_1_bss_38, 0) >= (temp_r31->unk50 + 0x1E)) { temp_r31->unk0->trans.y -= 15.0f; } if (fn_1_B0C8(&lbl_1_bss_38, 0) >= (temp_r31->unk50 + 0x3C)) { var_f31 = fn_1_AA30(-200.0f, -110.0f, fn_1_B0C8(&lbl_1_bss_38, 0) - (temp_r31->unk50 + 0x3C), 90.0f); - Hu3DModelPosSet( - temp_r29->unk0->model[var_r30 + 8], - -350.0f + (360.0f * var_r30), - var_f31, - -660.0f - ); + Hu3DModelPosSet(temp_r29->unk0->model[var_r30 + 8], -350.0f + (360.0f * var_r30), var_f31, -660.0f); Hu3DModelRotSet(temp_r29->unk0->model[var_r30 + 8], 0.0f, 0.0f, 20.0f); } } @@ -1766,17 +1815,19 @@ s32 fn_1_6F38(s32 arg0) { return 1; } return fn_1_B034(&lbl_1_bss_38, 9); - } else { + } + else { return 0; } } -void fn_1_7294(s32 arg0) {} +void fn_1_7294(s32 arg0) { } -s32 fn_1_7298(s32 arg0) { - M418DllUnkStruct3* temp_r31; - M418DllUnkStruct4* temp_r30; - M418DllUnkStruct6* temp_r29; +s32 fn_1_7298(s32 arg0) +{ + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct4 *temp_r30; + M418DllUnkStruct6 *temp_r29; temp_r29 = &lbl_1_bss_3EC; temp_r31 = &lbl_1_bss_26C[temp_r29->unk0]; @@ -1794,33 +1845,38 @@ s32 fn_1_7298(s32 arg0) { temp_r30->unk0->rot.y = -50.0f; } } - } else if (fn_1_B0C8(&lbl_1_bss_38, 0) == 0x3C) { + } + else if (fn_1_B0C8(&lbl_1_bss_38, 0) == 0x3C) { HuAudFXPlay(0x40); fn_1_ABC4(temp_r30->unk0, 0, 2, 0xA, 0); fn_1_AD14(temp_r31->unk0, 0, 0, 0xA, 1); Hu3DMotionOverlaySet(temp_r31->unk0->model[0], temp_r31->unk0->motion[9]); Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], 1.0f); lbl_1_bss_240[8] = HuAudFXPlay(0x5D9); - } else if (fn_1_B0C8(&lbl_1_bss_38, 0) <= 0xAA) { + } + else if (fn_1_B0C8(&lbl_1_bss_38, 0) <= 0xAA) { if (fn_1_B0C8(&lbl_1_bss_38, 0) >= 0x5A) { temp_r31->unk3C += 0.025f; if (temp_r31->unk3C >= 1.0f) { temp_r31->unk3C = 1.0f; } } - } else { + } + else { Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], -1.0f); } if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { return fn_1_AF38(&lbl_1_bss_38); - } else { + } + else { return 0; } } -void fn_1_7570(s32 arg0) { - M418DllUnkStruct6* var_r31 = &lbl_1_bss_3EC; - M418DllUnkStruct3* var_r30 = &lbl_1_bss_26C[var_r31->unk0]; +void fn_1_7570(s32 arg0) +{ + M418DllUnkStruct6 *var_r31 = &lbl_1_bss_3EC; + M418DllUnkStruct3 *var_r30 = &lbl_1_bss_26C[var_r31->unk0]; var_r30->unk4C = -1; if (lbl_1_bss_8 == 0) { lbl_1_bss_8 = 1; @@ -1828,11 +1884,12 @@ void fn_1_7570(s32 arg0) { } } -s32 fn_1_75E4(s32 arg0) { +s32 fn_1_75E4(s32 arg0) +{ Mtx sp38; Mtx sp8; - M418DllUnkStruct3* temp_r31; - M418DllUnkStruct6* var_r30; + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct6 *var_r30; s32 var_r29; var_r30 = &lbl_1_bss_3EC; @@ -1860,14 +1917,16 @@ s32 fn_1_75E4(s32 arg0) { Hu3DMotionSpeedSet(temp_r31->unk0->model[13], 2.0f); fn_1_ABC4(temp_r31->unk0, 0xD, 0xD, 0, 0); return fn_1_AF38(&lbl_1_bss_38); - } else { + } + else { return 0; } } -void fn_1_77F8(s32 arg0) { - M418DllUnkStruct6* var_r31; - M418DllUnkStruct3* var_r30; +void fn_1_77F8(s32 arg0) +{ + M418DllUnkStruct6 *var_r31; + M418DllUnkStruct3 *var_r30; var_r31 = &lbl_1_bss_3EC; var_r30 = &lbl_1_bss_26C[var_r31->unk0]; @@ -1876,9 +1935,10 @@ void fn_1_77F8(s32 arg0) { } } -s32 fn_1_7860(s32 arg0) { - M418DllUnkStruct3* temp_r31; - M418DllUnkStruct6* temp_r30; +s32 fn_1_7860(s32 arg0) +{ + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct6 *temp_r30; temp_r30 = &lbl_1_bss_3EC; temp_r31 = &lbl_1_bss_26C[temp_r30->unk0]; @@ -1890,11 +1950,9 @@ s32 fn_1_7860(s32 arg0) { if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { return fn_1_AF38(&lbl_1_bss_38); } - } else { - temp_r31->unk0->rot.y = fn_1_A940( - 180.0f, 200.0f - (10.0f * temp_r31->unk4C), - fn_1_B0C8(&lbl_1_bss_38, 0), 10.0f - ); + } + else { + temp_r31->unk0->rot.y = fn_1_A940(180.0f, 200.0f - (10.0f * temp_r31->unk4C), fn_1_B0C8(&lbl_1_bss_38, 0), 10.0f); if (fn_1_B0C8(&lbl_1_bss_38, 0) == 0xA) { Hu3DMotionOverlaySet(temp_r31->unk0->model[0], temp_r31->unk0->motion[10]); Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], 1.0f); @@ -1909,12 +1967,13 @@ s32 fn_1_7860(s32 arg0) { return 0; } -void fn_1_7A68(s32 arg0) { - M418DllUnkStruct6* temp_r31; - M418DllUnkStruct3* temp_r30; - M418DllUnkStruct4* temp_r29; +void fn_1_7A68(s32 arg0) +{ + M418DllUnkStruct6 *temp_r31; + M418DllUnkStruct3 *temp_r30; + M418DllUnkStruct4 *temp_r29; s32 var_r28; - M418DllUnkStruct3* temp_r27; + M418DllUnkStruct3 *temp_r27; s32 var_r26; var_r26 = 0; @@ -1922,7 +1981,7 @@ void fn_1_7A68(s32 arg0) { temp_r30 = &lbl_1_bss_26C[temp_r31->unk0]; if (temp_r30->unk4C != -1) { temp_r31->unk10[0] = temp_r31->unk10[1] = temp_r31->unk10[2] = -1; - + for (var_r28 = 0; var_r28 < 3; var_r28++) { temp_r27 = &lbl_1_bss_26C[temp_r31->unk4[var_r28]]; if (temp_r30->unk4C == temp_r27->unk4C) { @@ -1938,15 +1997,16 @@ void fn_1_7A68(s32 arg0) { } } -s32 fn_1_7B68(s32 arg0) { +s32 fn_1_7B68(s32 arg0) +{ Mtx sp8; - M418DllUnkStruct3* temp_r31; - M418DllUnkStruct6* temp_r30; - M418DllUnkStruct3* temp_r29; - M418DllUnkStruct4* temp_r28; + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct6 *temp_r30; + M418DllUnkStruct3 *temp_r29; + M418DllUnkStruct4 *temp_r28; s32 var_r27; s32 var_r26; - M418DllUnkStruct* temp_r21; + M418DllUnkStruct *temp_r21; var_r26 = -1; temp_r30 = &lbl_1_bss_3EC; @@ -1959,11 +2019,11 @@ s32 fn_1_7B68(s32 arg0) { fn_1_6740(3); } if (temp_r28->unkC == 3) { - + for (var_r27 = 0; var_r27 < 3; var_r27++) { if (temp_r30->unk10[var_r27] != -1) { temp_r31 = &lbl_1_bss_26C[temp_r30->unk10[var_r27]]; - Hu3DModelObjMtxGet(*temp_r28->unk0->model, "taihou-null4", (f32 (*)[4]) &sp8[0]); + Hu3DModelObjMtxGet(*temp_r28->unk0->model, "taihou-null4", (f32(*)[4]) & sp8[0]); omSetTra(temp_r31->unk0, sp8[0][3], sp8[1][3] - 25.0f, 50.0f + sp8[2][3]); omSetRot(temp_r31->unk0, 0.0f, 180.0f, 0.0f); fn_1_AD14(temp_r31->unk0, 0, 8, 0, 2); @@ -1974,7 +2034,7 @@ s32 fn_1_7B68(s32 arg0) { } temp_r31->unk30 = var_r26++; temp_r31->unk28 = 0.0f; - omVibrate((s16) temp_r29->unk4, 0xC, 4, 2); + omVibrate((s16)temp_r29->unk4, 0xC, 4, 2); } } return fn_1_AF38(&lbl_1_bss_38); @@ -1982,31 +2042,33 @@ s32 fn_1_7B68(s32 arg0) { return 0; } -void fn_1_7D80(s32 arg0) { +void fn_1_7D80(s32 arg0) +{ s32 var_r31; - M418DllUnkStruct3* temp_r30; - M418DllUnkStruct6* temp_r29; - M418DllUnkStruct4* temp_r28; + M418DllUnkStruct3 *temp_r30; + M418DllUnkStruct6 *temp_r29; + M418DllUnkStruct4 *temp_r28; temp_r29 = &lbl_1_bss_3EC; temp_r30 = &lbl_1_bss_26C[temp_r29->unk0]; temp_r30->unk0->rot.y = 180.0f; temp_r30->unk3C = 0.0f; - + for (var_r31 = 0; var_r31 < 3; var_r31++) { temp_r28 = &lbl_1_bss_11C[var_r31]; temp_r28->unk0->rot.y = 0.0f; } } -s32 fn_1_7E24(s32 arg0) { - M418DllUnkStruct6* var_r31; +s32 fn_1_7E24(s32 arg0) +{ + M418DllUnkStruct6 *var_r31; s32 var_r30; s32 var_r29; - M418DllUnkStruct4* var_r28; - M418DllUnkStruct4* var_r27; - M418DllUnkStruct4* var_r26; - M418DllUnkStruct3* var_r25; + M418DllUnkStruct4 *var_r28; + M418DllUnkStruct4 *var_r27; + M418DllUnkStruct4 *var_r26; + M418DllUnkStruct3 *var_r25; var_r29 = 0; var_r31 = &lbl_1_bss_3EC; @@ -2020,7 +2082,7 @@ s32 fn_1_7E24(s32 arg0) { return 1; } var_r31->unk38++; - + for (var_r30 = 0; var_r30 < 3; var_r30++) { var_r25 = &lbl_1_bss_26C[var_r31->unk4[var_r30]]; if (var_r25->unk4C != -1) { @@ -2029,36 +2091,40 @@ s32 fn_1_7E24(s32 arg0) { } if (var_r29 == 0) { return 1; - } else { + } + else { return fn_1_AF38(&lbl_1_bss_38); } } -void fn_1_7F1C(s32 arg0) { - M418DllUnkStruct6* var_r31; - M418DllUnkStruct4* var_r30; - M418DllUnkStruct4* var_r29; - M418DllUnkStruct4* var_r28; +void fn_1_7F1C(s32 arg0) +{ + M418DllUnkStruct6 *var_r31; + M418DllUnkStruct4 *var_r30; + M418DllUnkStruct4 *var_r29; + M418DllUnkStruct4 *var_r28; var_r31 = &lbl_1_bss_3EC; var_r30 = &lbl_1_bss_11C[0]; var_r29 = &lbl_1_bss_11C[1]; var_r28 = &lbl_1_bss_11C[2]; if (var_r31->unk38 == 1) { - var_r30->unk0->work[1] = 3; - var_r29->unk0->work[1] = 2; - var_r28->unk0->work[1] = 1; - } else if (var_r31->unk38 == 2) { - var_r30->unk0->work[1] = 0; - var_r29->unk0->work[1] = 3; - var_r28->unk0->work[1] = 2; + var_r30->unk0->work[1] = 3; + var_r29->unk0->work[1] = 2; + var_r28->unk0->work[1] = 1; + } + else if (var_r31->unk38 == 2) { + var_r30->unk0->work[1] = 0; + var_r29->unk0->work[1] = 3; + var_r28->unk0->work[1] = 2; } } -s32 fn_1_7FD4(s32 arg0) { - M418DllUnkStruct3* temp_r31; - M418DllUnkStruct6* temp_r30; - M418DllUnkStruct4* temp_r29; +s32 fn_1_7FD4(s32 arg0) +{ + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct6 *temp_r30; + M418DllUnkStruct4 *temp_r29; temp_r30 = &lbl_1_bss_3EC; temp_r31 = &lbl_1_bss_26C[temp_r30->unk0]; @@ -2069,7 +2135,8 @@ s32 fn_1_7FD4(s32 arg0) { if (fn_1_B0C8(&lbl_1_bss_38, 0) == 120) { return fn_1_B034(&lbl_1_bss_38, 9); } - } else { + } + else { temp_r29 = &lbl_1_bss_170[temp_r31->unk4C]; if (temp_r29->unk10 != 0) { if (fn_1_B0C8(&lbl_1_bss_38, 0) == 210) { @@ -2078,7 +2145,8 @@ s32 fn_1_7FD4(s32 arg0) { if (fn_1_B0C8(&lbl_1_bss_38, 0) == 300) { return fn_1_B034(&lbl_1_bss_38, 9); } - } else { + } + else { if (fn_1_B0C8(&lbl_1_bss_38, 0) == 30) { fn_1_6740(2); } @@ -2091,12 +2159,13 @@ s32 fn_1_7FD4(s32 arg0) { return 0; } -void fn_1_81A0(s32 arg0) {} +void fn_1_81A0(s32 arg0) { } -s32 fn_1_81A4(s32 arg0) { - M418DllUnkStruct3* temp_r31; - M418DllUnkStruct4* temp_r30; - M418DllUnkStruct6* temp_r29; +s32 fn_1_81A4(s32 arg0) +{ + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct4 *temp_r30; + M418DllUnkStruct6 *temp_r29; temp_r29 = &lbl_1_bss_3EC; temp_r31 = &lbl_1_bss_26C[temp_r29->unk0]; @@ -2114,49 +2183,45 @@ s32 fn_1_81A4(s32 arg0) { temp_r30->unk0->rot.y = -50.0f; } } - } else if (fn_1_B0C8(&lbl_1_bss_38, 0) == 0x3C) { + } + else if (fn_1_B0C8(&lbl_1_bss_38, 0) == 0x3C) { HuAudFXPlay(0x40); fn_1_ABC4(temp_r30->unk0, 0, 2, 0xA, 0); fn_1_AD14(temp_r31->unk0, 0, 0, 0xA, 1); Hu3DMotionOverlaySet(temp_r31->unk0->model[0], temp_r31->unk0->motion[9]); Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], 1.0f); lbl_1_bss_240[8] = HuAudFXPlay(0x5D9); - } else if (fn_1_B0C8(&lbl_1_bss_38, 0) <= 0xAA) { + } + else if (fn_1_B0C8(&lbl_1_bss_38, 0) <= 0xAA) { if (fn_1_B0C8(&lbl_1_bss_38, 0) >= 0x5A) { temp_r31->unk3C += 0.025f; if (temp_r31->unk3C >= 1.0f) { temp_r31->unk3C = 1.0f; } } - } else { + } + else { Hu3DMotionOverlaySpeedSet(temp_r31->unk0->model[0], -1.0f); } if (fn_1_B0C8(&lbl_1_bss_38, 1) != 0) { return fn_1_B034(&lbl_1_bss_38, 4); - } else { + } + else { return 0; } } -M418DllUnkStruct8 lbl_1_data_348[11] = { - { fn_1_6808, fn_1_6914, 300 }, - { fn_1_6DCC, fn_1_6E6C, 60 }, - { fn_1_6EB4, fn_1_6F38, 180 }, - { fn_1_7294, fn_1_7298, 300 }, - { fn_1_7570, fn_1_75E4, 300 }, - { fn_1_77F8, fn_1_7860, 60 }, - { fn_1_7A68, fn_1_7B68, 180 }, - { fn_1_7D80, fn_1_7E24, -1 }, - { fn_1_7F1C, fn_1_7FD4, 300 }, - { fn_1_81A0, fn_1_81A4, 240 }, - { NULL, NULL, -1 } -}; +M418DllUnkStruct8 lbl_1_data_348[11] = { { fn_1_6808, fn_1_6914, 300 }, { fn_1_6DCC, fn_1_6E6C, 60 }, { fn_1_6EB4, fn_1_6F38, 180 }, + { fn_1_7294, fn_1_7298, 300 }, { fn_1_7570, fn_1_75E4, 300 }, { fn_1_77F8, fn_1_7860, 60 }, { fn_1_7A68, fn_1_7B68, 180 }, + { fn_1_7D80, fn_1_7E24, -1 }, { fn_1_7F1C, fn_1_7FD4, 300 }, { fn_1_81A0, fn_1_81A4, 240 }, { NULL, NULL, -1 } }; -void fn_1_8480(void) { +void fn_1_8480(void) +{ fn_1_AEDC(&lbl_1_bss_38, &lbl_1_data_348[0]); } -s32 fn_1_84B0(void) { +s32 fn_1_84B0(void) +{ s32 var_r31; var_r31 = 0; @@ -2170,9 +2235,10 @@ s32 fn_1_84B0(void) { return var_r31; } -void fn_1_8548(void) { +void fn_1_8548(void) +{ M418DllUnkStruct sp38; - M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; Vec sp2C = { 0.0f, 1100.0f, 1800.0f }; Vec sp20 = { 0.0f, 600.0f, 600.0f }; @@ -2182,12 +2248,13 @@ void fn_1_8548(void) { fn_1_CBF8(var_r31, &sp38, var_r31->unk48++, 60.0f, 10.0f); } -void fn_1_8668(void) { +void fn_1_8668(void) +{ M418DllUnkStruct sp8; f32 temp_f1; - M418DllUnkStruct* var_r31 = &lbl_1_bss_1F4; - + M418DllUnkStruct *var_r31 = &lbl_1_bss_1F4; + sp8.center.x = sp8.center.y = 0.0f; sp8.center.z = -500.0f; sp8.rot.x = -20.0f; @@ -2196,9 +2263,10 @@ void fn_1_8668(void) { fn_1_CBF8(var_r31, &sp8, var_r31->unk48++, 10.0f, 5.0f); } -void fn_1_8728(void) { +void fn_1_8728(void) +{ M418DllUnkStruct sp8; - M418DllUnkStruct* var_r31; + M418DllUnkStruct *var_r31; var_r31 = &lbl_1_bss_1F4; @@ -2212,43 +2280,46 @@ void fn_1_8728(void) { fn_1_CBF8(var_r31, &sp8, var_r31->unk48++, 10.0f, 5.0f); } -void fn_1_87D0(s32 arg0) { - M418DllUnkStruct* var_r31; +void fn_1_87D0(s32 arg0) +{ + M418DllUnkStruct *var_r31; var_r31 = &lbl_1_bss_1F4; - + fn_1_B458(var_r31); switch (arg0) { - case 0: - fn_1_248(fn_1_8548); - break; - case 1: - fn_1_248(fn_1_8668); - break; - case 2: - fn_1_248(fn_1_8728); - break; + case 0: + fn_1_248(fn_1_8548); + break; + case 1: + fn_1_248(fn_1_8668); + break; + case 2: + fn_1_248(fn_1_8728); + break; } } -void fn_1_888C(s32 arg0) { +void fn_1_888C(s32 arg0) +{ HuAudAUXVolSet(-1, -1); } -s32 fn_1_88B4(s32 arg0) { +s32 fn_1_88B4(s32 arg0) +{ s32 var_r31; - M418DllUnkStruct6* var_r30; + M418DllUnkStruct6 *var_r30; s32 var_r29; - M418DllUnkStruct3* var_r28; - M418DllUnkStruct3* var_r27; - M418DllUnkStruct* var_r23; + M418DllUnkStruct3 *var_r28; + M418DllUnkStruct3 *var_r27; + M418DllUnkStruct *var_r23; var_r29 = 5; var_r30 = &lbl_1_bss_3EC; - + fn_1_87D0(0); lbl_1_bss_10 = 0; - + for (var_r31 = 0; var_r31 < 3; var_r31++) { var_r28 = &lbl_1_bss_26C[var_r30->unk4[var_r31]]; if (var_r28->unk4C != -1) { @@ -2263,12 +2334,13 @@ s32 fn_1_88B4(s32 arg0) { fn_1_B034(&lbl_1_bss_20, var_r29); } -void fn_1_89B0(s32 arg0) { - M418DllUnkStruct6* var_r31; +void fn_1_89B0(s32 arg0) +{ + M418DllUnkStruct6 *var_r31; s32 var_r30; s32 var_r29; - M418DllUnkStruct3* temp_r28; - M418DllUnkStruct4* temp_r27; + M418DllUnkStruct3 *temp_r28; + M418DllUnkStruct4 *temp_r27; var_r29 = 0; var_r31 = &lbl_1_bss_3EC; @@ -2279,7 +2351,7 @@ void fn_1_89B0(s32 arg0) { var_r29++; } } - switch (var_r29) { /* irregular */ + switch (var_r29) { /* irregular */ case 1: var_r31->unk1C[0] = 3; break; @@ -2302,17 +2374,18 @@ void fn_1_89B0(s32 arg0) { if (var_r31->unk28[1] == var_r31->unk28[2]) { var_r31->unk28[2] = -1; } - + for (var_r30 = 0; var_r30 < 4; var_r30++) { temp_r27 = &lbl_1_bss_170[var_r30]; temp_r27->unkC = 0; } } -s32 fn_1_8B14(s32 arg0) { - M418DllUnkStruct4* temp_r31; +s32 fn_1_8B14(s32 arg0) +{ + M418DllUnkStruct4 *temp_r31; s32 var_r30; - M418DllUnkStruct6* var_r29; + M418DllUnkStruct6 *var_r29; s32 var_r28; var_r29 = &lbl_1_bss_3EC; @@ -2322,14 +2395,16 @@ s32 fn_1_8B14(s32 arg0) { if (temp_r31->unkC == 0) { if ((rand8() % 5) == 0) { var_r28 = 1; - } else { + } + else { var_r28 = 0; } if ((var_r28 != 0) || (fn_1_B0C8(&lbl_1_bss_20, 0) >= 5)) { temp_r31->unkC = 1; HuAudFXPlay(0x5D3); } - } else { + } + else { temp_r31->unk4 += 5.0f; if (temp_r31->unk4 >= 90.0f) { temp_r31->unk4 = 90.0f; @@ -2339,16 +2414,18 @@ s32 fn_1_8B14(s32 arg0) { } if (fn_1_B0C8(&lbl_1_bss_20, 1) != 0) { return fn_1_AF38(&lbl_1_bss_20); - } else { + } + else { return 0; } } -void fn_1_8C84(s32 arg0) { - M418DllUnkStruct3* temp_r31; +void fn_1_8C84(s32 arg0) +{ + M418DllUnkStruct3 *temp_r31; s32 var_r30; - M418DllUnkStruct6* temp_r29; - M418DllUnkStruct3* temp_r28; + M418DllUnkStruct6 *temp_r29; + M418DllUnkStruct3 *temp_r28; s32 var_r27; s32 temp_r0; @@ -2368,51 +2445,43 @@ void fn_1_8C84(s32 arg0) { temp_r28->unk0->work[1] = 1; } -Vec lbl_1_data_3CC[4] = { - { -540.0f, 225.0f, -900.0f }, - { -180.0f, 225.0f, -900.0f }, - { 180.0f, 225.0f, -900.0f }, - { 540.0f, 225.0f, -900.0f } -}; +Vec lbl_1_data_3CC[4] = { { -540.0f, 225.0f, -900.0f }, { -180.0f, 225.0f, -900.0f }, { 180.0f, 225.0f, -900.0f }, { 540.0f, 225.0f, -900.0f } }; -Vec lbl_1_data_3FC[6] = { - { -200.0f, 0.0f, -450.0f }, - { 0.0f, 0.0f, -400.0f }, - { 200.0f, 0.0f, -450.0f }, - { 0.0f, 0.0f, -400.0f }, - { -100.0f, 0.0f, -425.0f }, - { 100.0f, 0.0f, -425.0f } -}; +Vec lbl_1_data_3FC[6] = { { -200.0f, 0.0f, -450.0f }, { 0.0f, 0.0f, -400.0f }, { 200.0f, 0.0f, -450.0f }, { 0.0f, 0.0f, -400.0f }, + { -100.0f, 0.0f, -425.0f }, { 100.0f, 0.0f, -425.0f } }; -s32 fn_1_8D70(s32 arg0) { +s32 fn_1_8D70(s32 arg0) +{ s32 sp10; s32 spC; s32 sp8; - M418DllUnkStruct3* temp_r31; - M418DllUnkStruct6* temp_r30; + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct6 *temp_r30; s32 var_r29; - M418DllUnkStruct3* temp_r28; - M418DllUnkStruct3* temp_r27; - omObjData* var_r26; + M418DllUnkStruct3 *temp_r28; + M418DllUnkStruct3 *temp_r27; + omObjData *var_r26; s32 temp_r3; - void* temp_r4; + void *temp_r4; temp_r30 = &lbl_1_bss_3EC; - + for (var_r29 = 0; var_r29 < 3; var_r29++) { temp_r31 = &lbl_1_bss_26C[temp_r30->unk4[var_r29]]; if (temp_r31->unk4C != -1) { if (temp_r31->unk54 == 0) { if (temp_r31->unk50++ == 0) { temp_r31->unk54 = 1; - omSetTra(temp_r31->unk0, lbl_1_data_3CC[temp_r31->unk4C].x, lbl_1_data_3CC[temp_r31->unk4C].y, lbl_1_data_3CC[temp_r31->unk4C].z - 50.0f); + omSetTra(temp_r31->unk0, lbl_1_data_3CC[temp_r31->unk4C].x, lbl_1_data_3CC[temp_r31->unk4C].y, + lbl_1_data_3CC[temp_r31->unk4C].z - 50.0f); var_r26 = temp_r31->unk0; temp_r28 = &lbl_1_bss_26C[var_r26->work[0]]; if (temp_r28->unk1C == 0) { temp_r28->unk1C = 1; } } - } else if (temp_r31->unk54 == 1) { + } + else if (temp_r31->unk54 == 1) { fn_1_3EB0(temp_r31->unk0, lbl_1_data_3FC[temp_r30->unk1C[temp_r31->unk58]], 0.0f, 12.0f); } } @@ -2423,17 +2492,19 @@ s32 fn_1_8D70(s32 arg0) { } if (fn_1_B0C8(&lbl_1_bss_20, 1) != 0) { return fn_1_AF38(&lbl_1_bss_20); - } else { + } + else { return 0; } } -void fn_1_8F74(s32 arg0) { +void fn_1_8F74(s32 arg0) +{ s32 sp8[3]; - M418DllUnkStruct3* temp_r31; + M418DllUnkStruct3 *temp_r31; s32 var_r30; - M418DllUnkStruct6* var_r29; - M418DllUnkStruct3* temp_r28; + M418DllUnkStruct6 *var_r29; + M418DllUnkStruct3 *temp_r28; var_r29 = &lbl_1_bss_3EC; for (var_r30 = 0; var_r30 < 3; var_r30++) { @@ -2450,17 +2521,20 @@ void fn_1_8F74(s32 arg0) { HuAudSStreamPlay(1); } -s32 fn_1_9094(s32 arg0) { +s32 fn_1_9094(s32 arg0) +{ if (fn_1_B0C8(&lbl_1_bss_20, 1) != 0) { return fn_1_AF38(&lbl_1_bss_20); - } else { + } + else { return 0; } } -void fn_1_90DC(s32 arg0) { - M418DllUnkStruct3* temp_r31; - M418DllUnkStruct6* temp_r30; +void fn_1_90DC(s32 arg0) +{ + M418DllUnkStruct3 *temp_r31; + M418DllUnkStruct6 *temp_r30; temp_r30 = &lbl_1_bss_3EC; temp_r31 = &lbl_1_bss_26C[temp_r30->unk0]; @@ -2468,9 +2542,10 @@ void fn_1_90DC(s32 arg0) { temp_r31->unk0->work[1] = 1; } -s32 fn_1_9140(s32 arg0) { - M418DllUnkStruct6* temp_r31; - M418DllUnkStruct3* temp_r30; +s32 fn_1_9140(s32 arg0) +{ + M418DllUnkStruct6 *temp_r31; + M418DllUnkStruct3 *temp_r30; temp_r31 = &lbl_1_bss_3EC; @@ -2480,22 +2555,24 @@ s32 fn_1_9140(s32 arg0) { } if (fn_1_B0C8(&lbl_1_bss_20, 1) != 0) { return fn_1_AF38(&lbl_1_bss_20); - } else { + } + else { return 0; } } -void fn_1_91E4(s32 arg0) { - M418DllUnkStruct3* temp_r31; +void fn_1_91E4(s32 arg0) +{ + M418DllUnkStruct3 *temp_r31; s32 var_r30; - M418DllUnkStruct6* temp_r29; - M418DllUnkStruct4* temp_r28; + M418DllUnkStruct6 *temp_r29; + M418DllUnkStruct4 *temp_r28; temp_r29 = &lbl_1_bss_3EC; temp_r31 = &lbl_1_bss_26C[temp_r29->unk0]; Hu3DMotionOverlayReset(temp_r31->unk0->model[0]); fn_1_ABC4(temp_r31->unk0, 0, 5, 10, 0); - + for (var_r30 = 0; var_r30 < 3; var_r30++) { temp_r28 = &lbl_1_bss_11C[var_r30]; fn_1_ABC4(temp_r28->unk0, 0, 3, 10, 1); @@ -2505,30 +2582,26 @@ void fn_1_91E4(s32 arg0) { HuAudSStreamPlay(1); } -s32 fn_1_92EC(s32 arg0) { +s32 fn_1_92EC(s32 arg0) +{ if (fn_1_B0C8(&lbl_1_bss_20, 1) != 0) { return fn_1_AF38(&lbl_1_bss_20); - } else { + } + else { return 0; } } -M418DllUnkStruct8 lbl_1_data_444[8] = { - { fn_1_888C, fn_1_88B4, -1 }, - { fn_1_89B0, fn_1_8B14, 90 }, - { fn_1_8C84, fn_1_8D70, 180 }, - { fn_1_8F74, fn_1_9094, 210 }, - { NULL, NULL, -1 }, - { fn_1_90DC, fn_1_9140, 180 }, - { fn_1_91E4, fn_1_92EC, 240 }, - { NULL, NULL, -1 } -}; +M418DllUnkStruct8 lbl_1_data_444[8] = { { fn_1_888C, fn_1_88B4, -1 }, { fn_1_89B0, fn_1_8B14, 90 }, { fn_1_8C84, fn_1_8D70, 180 }, + { fn_1_8F74, fn_1_9094, 210 }, { NULL, NULL, -1 }, { fn_1_90DC, fn_1_9140, 180 }, { fn_1_91E4, fn_1_92EC, 240 }, { NULL, NULL, -1 } }; -void fn_1_9334(void) { +void fn_1_9334(void) +{ fn_1_AEDC(&lbl_1_bss_20, &lbl_1_data_444[0]); } -s32 fn_1_9364(void) { +s32 fn_1_9364(void) +{ s32 var_r31; var_r31 = 0; @@ -2542,14 +2615,15 @@ s32 fn_1_9364(void) { return var_r31; } -void fn_1_93FC(omObjData* object) { +void fn_1_93FC(omObjData *object) +{ s32 var_r31; - M418DllUnkStruct6* var_r30; - M418DllUnkStruct3* var_r29; - M418DllUnkStruct3* var_r28; + M418DllUnkStruct6 *var_r30; + M418DllUnkStruct3 *var_r29; + M418DllUnkStruct3 *var_r28; s32 temp_r27; s32 temp_r26; - + if (WipeStatGet() == 0) { var_r30 = &lbl_1_bss_3EC; if (lbl_1_bss_10 != 0) { @@ -2560,7 +2634,8 @@ void fn_1_93FC(omObjData* object) { GWPlayer[temp_r27].coin_win = 10; } } - } else { + } + else { var_r28 = &lbl_1_bss_26C[var_r30->unk0]; temp_r26 = var_r28->unk4; if (_CheckFlag(0x1000CU) == 0) { @@ -2576,7 +2651,8 @@ void fn_1_93FC(omObjData* object) { } } -void fn_1_952C(omObjData* object) { +void fn_1_952C(omObjData *object) +{ if (omSysExitReq == 1) { HuAudSeqAllFadeOut(0xFA); WipeCreate(2, 0, -1); @@ -2584,14 +2660,15 @@ void fn_1_952C(omObjData* object) { } } -void fn_1_958C(void) { - M418DllUnkStruct3* temp_r31; +void fn_1_958C(void) +{ + M418DllUnkStruct3 *temp_r31; s32 var_r30; - M418DllUnkStruct6* temp_r29; - M418DllUnkStruct2* temp_r28; - M418DllUnkStruct4* temp_r27; - M418DllUnkStruct4* temp_r26; - M418DllUnkStruct3* temp_r25; + M418DllUnkStruct6 *temp_r29; + M418DllUnkStruct2 *temp_r28; + M418DllUnkStruct4 *temp_r27; + M418DllUnkStruct4 *temp_r26; + M418DllUnkStruct3 *temp_r25; s32 temp_r0; s32 var_r24; @@ -2600,22 +2677,22 @@ void fn_1_958C(void) { for (var_r30 = 1; var_r30 < 4; var_r30++) { fn_1_ABC4(temp_r28->unk0, var_r30, var_r30, 0, 2); } - + for (var_r30 = 8; var_r30 < 11; var_r30++) { fn_1_ABC4(temp_r28->unk0, var_r30, var_r30, 0, 1); Hu3DModelPosSet(temp_r28->unk0->model[var_r30 + 8], -360.0f + (360.0f * (var_r30 - 8)), -200.0f, -660.0f); Hu3DModelRotSet(temp_r28->unk0->model[var_r30], 0.0f, 0.0f, 20.0f); } - + temp_r28->unk4[0] = temp_r28->unk4[1] = temp_r28->unk4[2] = temp_r28->unk4[3] = 0; - + for (var_r30 = 0; var_r30 < 4; var_r30++) { temp_r27 = &lbl_1_bss_170[var_r30]; temp_r27->unk0->work[1] = temp_r27->unk0->work[2] = 0; temp_r27->unk4 = 0.0f; temp_r27->unkC = temp_r27->unk10 = temp_r27->unk14s = temp_r27->unk18s = 0; } - + for (var_r30 = 0; var_r30 < 3; var_r30++) { temp_r26 = &lbl_1_bss_11C[var_r30]; omSetTra(temp_r26->unk0, lbl_1_data_8C[var_r30].x, lbl_1_data_8C[var_r30].y, lbl_1_data_8C[var_r30].z); @@ -2624,12 +2701,13 @@ void fn_1_958C(void) { fn_1_AD14(temp_r26->unk0, 0, 0, 10, 1); temp_r26->unk0->work[1] = -1U; } - + for (var_r30 = 0; var_r30 < 4; var_r30++) { temp_r31 = &lbl_1_bss_26C[var_r30]; if (temp_r31->unk8 != 0) { omSetTra(temp_r31->unk0, 0.0f, -5000.0f, 0.0f); - } else { + } + else { omSetTra(temp_r31->unk0, 0.0f, 0.0f, 0.0f); } omSetRot(temp_r31->unk0, 0.0f, 0.0f, 0.0f); @@ -2654,21 +2732,22 @@ void fn_1_958C(void) { temp_r25 = &lbl_1_bss_26C[var_r30]; if (temp_r25->unk8 != 0) { temp_r29->unk4[var_r24++] = temp_r25->unk4; - } else { + } + else { temp_r29->unk0 = temp_r25->unk4; } } - + for (var_r30 = 0; var_r30 < 3; var_r30++) { temp_r29->unk1C[var_r30] = temp_r29->unk28[var_r30] = -1; temp_r29->unk10[var_r30] = -1; } - + temp_r29->unk34 = temp_r29->unk38 = temp_r29->unk3C = temp_r29->unk40 = 0; fn_1_5D28(); fn_1_8480(); fn_1_9334(); - + for (var_r30 = 0; var_r30 < 10; var_r30++) { lbl_1_bss_240[var_r30] = -1; } @@ -2676,7 +2755,8 @@ void fn_1_958C(void) { lbl_1_bss_240[7] = HuAudFXPlay(0x5D8); } -void fn_1_9BA4(omObjData* object) { +void fn_1_9BA4(omObjData *object) +{ switch (lbl_1_bss_18) { case 0: fn_1_958C(); @@ -2741,35 +2821,36 @@ void fn_1_9BA4(omObjData* object) { } } -void fn_1_9F94(omObjData* object) { +void fn_1_9F94(omObjData *object) +{ s32 var_r31; - M418DllUnkStruct4* temp_r30; - M418DllUnkStruct4* temp_r29; - M418DllUnkStruct3* temp_r28; - M418DllUnkStruct2* temp_r27; - M418DllWorkStruct* temp_r26; + M418DllUnkStruct4 *temp_r30; + M418DllUnkStruct4 *temp_r29; + M418DllUnkStruct3 *temp_r28; + M418DllUnkStruct2 *temp_r27; + M418DllWorkStruct *temp_r26; temp_r27 = &lbl_1_bss_1E0; temp_r27->unk0 = omAddObjEx(lbl_1_bss_0, 0x100, 0x14U, 0x14U, -1, fn_1_B4C); - + for (var_r31 = 0; var_r31 < 4; var_r31++) { temp_r30 = &lbl_1_bss_170[var_r31]; temp_r30->unk0 = omAddObjEx(lbl_1_bss_0, 0x200, 0x14U, 0x14U, -1, fn_1_14F0); temp_r30->unk0->work[0] = var_r31; } - + for (var_r31 = 0; var_r31 < 3; var_r31++) { temp_r29 = &lbl_1_bss_11C[var_r31]; temp_r29->unk0 = omAddObjEx(lbl_1_bss_0, 0x300, 0x14U, 0x14U, -1, fn_1_29A0); temp_r29->unk0->work[0] = var_r31; } - + for (var_r31 = 0; var_r31 < 4; var_r31++) { temp_r28 = &lbl_1_bss_26C[var_r31]; temp_r28->unk0 = omAddObjEx(lbl_1_bss_0, 0x400, 0x14U, 0x14U, -1, fn_1_4F60); temp_r28->unk0->work[0] = var_r31; } - + temp_r26 = &lbl_1_bss_68; temp_r26->unk0 = omAddObjEx(lbl_1_bss_0, 0x500, 0xBU, 0xBU, -1, fn_1_3054); WipeCreate(1, 0, -1); @@ -2778,7 +2859,8 @@ void fn_1_9F94(omObjData* object) { #include "src/REL/executor.c" -void fn_1_A1F0(void) { +void fn_1_A1F0(void) +{ lbl_1_bss_0 = omInitObjMan(0x3E, 0x2000); omGameSysInit(lbl_1_bss_0); HuAudAUXVolSet(-1, -1); @@ -2790,6 +2872,7 @@ void fn_1_A1F0(void) { omAddObjEx(lbl_1_bss_0, 0x2000, 0U, 0U, -1, fn_1_780); } -void ObjectSetup(void) { +void ObjectSetup(void) +{ fn_1_A1F0(); } diff --git a/src/REL/m420dll/player.c b/src/REL/m420dll/player.c index 6b424066..5bdb79f2 100644 --- a/src/REL/m420dll/player.c +++ b/src/REL/m420dll/player.c @@ -59,16 +59,111 @@ M420DllUnkStruct2 lbl_1_data_50[4] = { { 0x19, 0x01, 0x14, 0x04, 0x0A, 0x08, 0x01, 0x01 }, }; -// TODO MAKE_NUM static const s32 lbl_1_rodata_F8[8][0xB] = { - { 0x5F0000, 0x5F0017, 0x5F0018, 0x5F0068, 0x5F0069, 0x5F006A, 0x5F0035, 0x5F006B, 0x5F006E, 0x5F0049, 0x33001B }, - { 0x1A0000, 0x1A0017, 0x1A0018, 0x1A0068, 0x1A0069, 0x1A006A, 0x1A0035, 0x1A006B, 0x1A006E, 0x1A0049, 0x33001C }, - { 0x6D0000, 0x6D0017, 0x6D0018, 0x6D0068, 0x6D0069, 0x6D006A, 0x6D0035, 0x6D006B, 0x6D006E, 0x6D0049, 0x33001D }, - { 0x8A0000, 0x8A0017, 0x8A0018, 0x8A0068, 0x8A0069, 0x8A006A, 0x8A0035, 0x8A006B, 0x8A006E, 0x8A0049, 0x33001E }, - { 0x850000, 0x850017, 0x850018, 0x850068, 0x850069, 0x85006A, 0x850035, 0x85006B, 0x85006E, 0x850049, 0x33001F }, - { 0x110000, 0x110017, 0x110018, 0x110068, 0x110069, 0x11006A, 0x110035, 0x11006B, 0x11006E, 0x110049, 0x330020 }, - { 0x0D0000, 0x0D0017, 0x0D0018, 0x0D0068, 0x0D0069, 0x0D006A, 0x0D0035, 0x0D006B, 0x0D006E, 0x0D0049, 0x330021 }, - { 0x810000, 0x810017, 0x810018, 0x810068, 0x810069, 0x81006A, 0x810035, 0x81006B, 0x81006E, 0x810049, 0x330022 }, + { + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x68), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x69), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x35), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x6B), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x6E), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49), + 0x33001B, + }, + { + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x18), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x68), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x69), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x35), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x6B), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x6E), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x49), + 0x33001C, + }, + { + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x17), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x18), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x68), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x69), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x35), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x6B), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x6E), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x49), + 0x33001D, + }, + { + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x18), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x68), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x69), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x35), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x6B), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x6E), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x49), + 0x33001E, + }, + { + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x18), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x68), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x69), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x35), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x6B), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x6E), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x49), + 0x33001F, + }, + { + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x18), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x68), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x69), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x35), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x6B), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x6E), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x49), + 0x330020, + }, + { + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x18), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x68), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x69), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x35), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x6B), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x6E), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x49), + 0x330021, + }, + { + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x18), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x68), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x69), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x6A), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x35), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x6B), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x6E), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x49), + 0x330022, + }, }; static const Vec lbl_1_rodata_258[4][2] = { { { -372.0f, 300.0f, -220.0f }, { 0.0f, 50.0f, 0.0f } }, diff --git a/src/REL/m424Dll/claw.c b/src/REL/m424Dll/claw.c index 752b4afb..2e6b061f 100644 --- a/src/REL/m424Dll/claw.c +++ b/src/REL/m424Dll/claw.c @@ -1,6 +1,5 @@ #include "REL/m424Dll.h" -#include "math.h" #include "ext_math.h" #include "game/audio.h" #include "game/chrman.h" @@ -8,6 +7,8 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/pad.h" +#include "math.h" + // STRUCT typedef struct _M424DllClawStruct { @@ -66,8 +67,8 @@ typedef struct _M424DllClawStruct3 { } M424DllClawStruct3; // sizeof 0x8 // BSS -Process* lbl_1_bss_6DC; -omObjData* lbl_1_bss_6D8; +Process *lbl_1_bss_6DC; +omObjData *lbl_1_bss_6D8; s32 lbl_1_bss_6D0[2]; s32 lbl_1_bss_6CC; s32 lbl_1_bss_6C8; @@ -77,25 +78,30 @@ M424DllClawStruct3 lbl_1_bss_640[0x10]; // DATA Vec lbl_1_data_1E0[4] = { - { 950.0f, 275.0f, 0.0f }, + { 950.0f, 275.0f, 0.0f }, { 900.0f, 360.0f, 320.0f }, -{ 494.99996f, 220.0f, 494.99996f }, - { 0.0f, 225.0f, 0.0f }, + { 494.99996f, 220.0f, 494.99996f }, + { 0.0f, 225.0f, 0.0f }, }; f32 lbl_1_data_210[3] = { 12.0f, 11.0f, 17.5f }; char lbl_1_data_21C[12][0x10] = { - "tsume10", "tsume11", "tsume12", - "tsume20", "tsume21", "tsume22", - "tsume30", "tsume31", "tsume32", - "tsume40", "tsume41", "tsume42", -}; -u8 lbl_1_data_2DC[12] = { - 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 -}; -s32 lbl_1_data_2E8[9] = { - 0x5F0000, 0x5F0002, 0x5F0003, 0x5F0005, 0x5F0006, - 0x5F0042, 0x5F0008, 0x5F0017, 0x5F0018 + "tsume10", + "tsume11", + "tsume12", + "tsume20", + "tsume21", + "tsume22", + "tsume30", + "tsume31", + "tsume32", + "tsume40", + "tsume41", + "tsume42", }; +u8 lbl_1_data_2DC[12] = { 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 }; +s32 lbl_1_data_2E8[9] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x42), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x08), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18) }; Vec lbl_1_data_30C = { 0.0f, 0.0f, 0.0f }; // PROTO @@ -104,22 +110,23 @@ void fn_1_8924(u8, s32); u8 fn_1_8950(u8); u8 fn_1_897C(u8); u8 fn_1_89A8(u8); -Vec* fn_1_89D4(u8); -void fn_1_94D0(omObjData*); -void fn_1_9A64(omObjData*); -void fn_1_AE58(omObjData*); -void fn_1_AE64(omObjData*); +Vec *fn_1_89D4(u8); +void fn_1_94D0(omObjData *); +void fn_1_9A64(omObjData *); +void fn_1_AE58(omObjData *); +void fn_1_AE64(omObjData *); u16 fn_1_B79C(f32, f32, f32); -s32 fn_1_B9E0(Vec* arg0, Vec* arg1, f32 arg8, Vec* arg2, s32 arg3); +s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3); void fn_1_C604(s32, s32); -s32 fn_1_C878(s16, const char*, Mtx, s32); -void fn_1_C99C(HsfObject*, Mtx, const char*, Mtx); +s32 fn_1_C878(s16, const char *, Mtx, s32); +void fn_1_C99C(HsfObject *, Mtx, const char *, Mtx); void fn_1_CE74(s32); -void fn_1_CF00(Process*); -void fn_1_CF80(omObjData*); +void fn_1_CF00(Process *); +void fn_1_CF80(omObjData *); s32 fn_1_D010(s32, s32); -omObjData* fn_1_93F0(Process* arg0) { +omObjData *fn_1_93F0(Process *arg0) +{ lbl_1_bss_6DC = arg0; lbl_1_bss_6D8 = omAddObjEx(arg0, 0x40, 5, 9, -1, fn_1_94D0); lbl_1_bss_6CC = 0; @@ -130,13 +137,15 @@ omObjData* fn_1_93F0(Process* arg0) { return lbl_1_bss_6D8; } -void fn_1_94A4(void) { +void fn_1_94A4(void) +{ fn_1_AE58(lbl_1_bss_6D8); } -void fn_1_94D0(omObjData* arg0) { +void fn_1_94D0(omObjData *arg0) +{ s32 var_r29; - M424DllClawStruct* var_r31; + M424DllClawStruct *var_r31; var_r31 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1B0, 0x10000000); memset(var_r31, 0, 0x1B0); @@ -170,7 +179,7 @@ void fn_1_94D0(omObjData* arg0) { } var_r31->unk184 = -1; var_r31->unk30 = lbl_1_data_30C; - + for (var_r29 = 0; var_r29 < 0xC; var_r29++) { var_r31->unk3C[var_r29] = lbl_1_data_30C; var_r31->unkCC[var_r29] = lbl_1_data_30C; @@ -218,7 +227,8 @@ void fn_1_94D0(omObjData* arg0) { arg0->func = fn_1_9A64; } -void fn_1_9A64(omObjData* arg0) { +void fn_1_9A64(omObjData *arg0) +{ Mtx sp74; Mtx sp44; Vec sp38; @@ -228,7 +238,7 @@ void fn_1_9A64(omObjData* arg0) { Vec sp8; f32 var_f31; f32 temp_f30; - M424DllClawStruct* temp_r31; + M424DllClawStruct *temp_r31; s32 var_r29; s32 temp_r28; s32 var_r27; @@ -242,13 +252,15 @@ void fn_1_9A64(omObjData* arg0) { if (temp_r31->unk6 != 0) { fn_1_AE64(arg0); } - } else { + } + else { temp_r31->unkC = 0; temp_r31->unkA = 0; } if (fn_1_FE0() <= 1) { var_r25 = -1; - } else { + } + else { var_r25 = temp_r31->unk10; } switch (var_r25) { @@ -262,7 +274,8 @@ void fn_1_9A64(omObjData* arg0) { if (fn_1_FE0() > 4) { temp_r31->unk10 = 10; temp_r31->unk12 = 0; - } else if ((temp_r31->unkA & 0x100) != 0) { + } + else if ((temp_r31->unkA & 0x100) != 0) { HuAudFXPlay(0x62A); temp_r31->unk184 = HuAudFXPlay(0x621); temp_r31->unk10 = 2; @@ -275,7 +288,8 @@ void fn_1_9A64(omObjData* arg0) { if (temp_r31->unk24 >= 1.0f) { temp_r31->unk24 = 1.0f; temp_r31->unk20 = -1.0f; - } else { + } + else { if (temp_r31->unk24 <= 0.0f) { temp_r31->unk24 = 0.0f; temp_r31->unk20 = 1.0f; @@ -289,7 +303,8 @@ void fn_1_9A64(omObjData* arg0) { HuAudFXPlay(0x622); temp_r31->unk10 = 10; temp_r31->unk12 = 0; - } else if (((temp_r31->unkC & 0x100) == 0) || (temp_r31->unk12 >= 360.0f)) { + } + else if (((temp_r31->unkC & 0x100) == 0) || (temp_r31->unk12 >= 360.0f)) { if (temp_r31->unk184 != -1) { HuAudFXStop(temp_r31->unk184); temp_r31->unk184 = -1; @@ -363,23 +378,27 @@ void fn_1_9A64(omObjData* arg0) { temp_r31->unk28 = 0.0f; if (temp_r31->unk168 != -1) { var_r27 = fn_1_897C(temp_r31->unk168); - } else { + } + else { var_r27 = -1; } if (temp_r31->unk168 == -1) { if (fn_1_FE0() > 4) { temp_r31->unk10 = 10; temp_r31->unk12 = 0; - } else { + } + else { temp_r31->unk10 = 8; temp_r31->unk12 = 0; HuAudFXPlay(0x625); } - } else if (var_r27 == 0) { + } + else if (var_r27 == 0) { temp_r31->unk10 = 8; temp_r31->unk12 = 0; HuAudFXPlay(0x625); - } else { + } + else { if (temp_r31->unk168 != -1) { fn_1_252C(-0.01f, 0x3C); fn_1_2670(0x75, 0); @@ -394,15 +413,18 @@ void fn_1_9A64(omObjData* arg0) { case 7: if (arg0->rot.y < temp_r31->unk180) { arg0->rot.y += 1.25f; - } else if (arg0->rot.y > temp_r31->unk180) { + } + else if (arg0->rot.y > temp_r31->unk180) { arg0->rot.y = temp_r31->unk180; } var_f31 = 0.35f - temp_r31->unk24; if (var_f31 > 0.0125f) { temp_r31->unk24 += 0.0125f; - } else if (var_f31 < -0.0125f) { + } + else if (var_f31 < -0.0125f) { temp_r31->unk24 -= 0.0125f; - } else { + } + else { temp_r31->unk24 = 0.35f; } if ((arg0->rot.y == temp_r31->unk180) && (0.35f == temp_r31->unk24)) { @@ -423,7 +445,8 @@ void fn_1_9A64(omObjData* arg0) { var_r26 = fn_1_89A8(temp_r31->unk168); HuAudCharVoicePlay(var_r26, 0x123); fn_1_D010(0x628, 30); - } else { + } + else { fn_1_8924(temp_r31->unk168, 2); } temp_r31->unk16C = temp_r31->unk168; @@ -451,12 +474,14 @@ void fn_1_9A64(omObjData* arg0) { temp_r31->unk12++; if (arg0->rot.y > 270.0f) { arg0->rot.y -= 1.25f; - } else if (arg0->rot.y < 270.0f) { + } + else if (arg0->rot.y < 270.0f) { arg0->rot.y = 270.0f; } if (temp_r31->unk24 > 0.025f) { temp_r31->unk24 -= 0.025f; - } else if (temp_r31->unk24 < 0.05f) { + } + else if (temp_r31->unk24 < 0.05f) { temp_r31->unk24 = 0.0f; } if ((270.0f == arg0->rot.y) && (0.0f == temp_r31->unk24)) { @@ -482,7 +507,8 @@ void fn_1_9A64(omObjData* arg0) { temp_r31->unk18 = fn_1_B79C(lbl_1_data_1E0[0].y, lbl_1_data_1E0[1].y, temp_r31->unk1C); temp_r31->unk10 = 11; temp_r31->unk12 = 0; - } else { + } + else { temp_r31->unk10 = 13; temp_r31->unk12 = 0; } @@ -520,7 +546,8 @@ void fn_1_9A64(omObjData* arg0) { temp_r31->unk10 = 0xC; } } - } else { + } + else { sp14 = lbl_1_data_1E0[var_r29]; sp8 = lbl_1_data_1E0[var_r29 + 1]; var_f31 = atan2d((sp8.x - arg0->trans.x), (sp8.z - arg0->trans.z)); @@ -551,7 +578,8 @@ void fn_1_9A64(omObjData* arg0) { if (fn_1_B888() != 0) { temp_r31->unk10 = 14; temp_r31->unk12 = 0; - } else { + } + else { temp_r31->unk10 = 15; temp_r31->unk12 = 0; } @@ -585,7 +613,7 @@ void fn_1_9A64(omObjData* arg0) { temp_r31->unk30.x = sp74[0][3]; temp_r31->unk30.y = sp74[1][3]; temp_r31->unk30.z = sp74[2][3]; - + for (var_r29 = 0; var_r29 < 0xC; var_r29++) { PSMTXCopy(sp44, sp74); fn_1_C878(arg0->model[4], lbl_1_data_21C[var_r29], sp74, 1); @@ -611,25 +639,17 @@ void fn_1_9A64(omObjData* arg0) { temp_r31->unk164 = 1; } -void fn_1_AE58(omObjData* arg0) { +void fn_1_AE58(omObjData *arg0) +{ arg0->func = NULL; } -f32 lbl_1_data_36C[4][2] = { - 30.0f, 24.0f, - 24.0f, 18.0f, - 12.0f, 6.0f, - 6.0f, 0.0f -}; +f32 lbl_1_data_36C[4][2] = { 30.0f, 24.0f, 24.0f, 18.0f, 12.0f, 6.0f, 6.0f, 0.0f }; -f32 lbl_1_data_38C[4][2] = { - 0.2f, 0.15f, - 0.15f, 0.1f, - 0.1f, 0.05f, - 0.05f, 0.0f -}; +f32 lbl_1_data_38C[4][2] = { 0.2f, 0.15f, 0.15f, 0.1f, 0.1f, 0.05f, 0.05f, 0.0f }; -void fn_1_AE64(omObjData* arg0) { +void fn_1_AE64(omObjData *arg0) +{ M424DllClawStruct2 sp20[8]; M424DllClawStruct2 sp10; s32 spC; @@ -642,12 +662,12 @@ void fn_1_AE64(omObjData* arg0) { f32 var_f24; s32 temp_r24; s32 temp_r23; - M424DllClawStruct* temp_r31; - Vec* var_r30; + M424DllClawStruct *temp_r31; + Vec *var_r30; s32 var_r29; s32 var_r28; s32 var_r27; - M424DllBallStruct2* var_r26; + M424DllBallStruct2 *var_r26; s32 var_r25; spC = 0; @@ -693,7 +713,7 @@ void fn_1_AE64(omObjData* arg0) { if (var_r28 != 0) { for (var_r29 = 0; var_r29 < (var_r28 - 1); var_r29++) { var_r27 = var_r29 + 1; - for (;var_r27 < var_r28; var_r27++) { + for (; var_r27 < var_r28; var_r27++) { if (sp20[var_r29].unkC < sp20[var_r27].unkC) { sp10 = sp20[var_r29]; sp20[var_r29] = sp20[var_r27]; @@ -729,7 +749,8 @@ void fn_1_AE64(omObjData* arg0) { var_f29 = (var_f29 - 350.0f) / 250.0f + temp_r23; if (var_f29 < 0.0f) { var_f29 = 0.0f; - } else if (var_f29 > 1.0f) { + } + else if (var_f29 > 1.0f) { var_f29 = 1.0f; } temp_r31->unk194 = (60.0f * (1.0f - var_f29)); @@ -748,7 +769,8 @@ void fn_1_AE64(omObjData* arg0) { temp_r31->unk1AC = 0; return; } - } else { + } + else { if (var_f31 >= (15.0f + temp_r31->unk1A8)) { temp_r31->unk1A0++; temp_r31->unk1A8 = var_f31; @@ -766,7 +788,8 @@ void fn_1_AE64(omObjData* arg0) { if (++temp_r31->unk1AC >= temp_r31->unk194) { var_r25 = 0; } - } else { + } + else { var_r25 = 0; } if (var_r25 != 0) { @@ -778,7 +801,8 @@ void fn_1_AE64(omObjData* arg0) { } } -u16 fn_1_B79C(f32 arg0, f32 arg1, f32 arg2) { +u16 fn_1_B79C(f32 arg0, f32 arg1, f32 arg2) +{ f32 var_f31; f32 var_f3; u16 var_r31; @@ -791,8 +815,9 @@ u16 fn_1_B79C(f32 arg0, f32 arg1, f32 arg2) { return var_r31; } -s32 fn_1_B804(void) { - M424DllClawStruct* temp_r31; +s32 fn_1_B804(void) +{ + M424DllClawStruct *temp_r31; if (!lbl_1_bss_6D8) { return 0; @@ -807,17 +832,20 @@ s32 fn_1_B804(void) { return 0; } -s32 fn_1_B888(void) { +s32 fn_1_B888(void) +{ if (lbl_1_bss_6CC >= 3) { return 1; - } else { + } + else { return 0; } } -s32 fn_1_B8AC(void) { - M424DllClawStruct* temp_r31; - +s32 fn_1_B8AC(void) +{ + M424DllClawStruct *temp_r31; + if (!lbl_1_bss_6D8) { return 0; } @@ -832,9 +860,10 @@ s32 fn_1_B8AC(void) { return 0; } -s32 fn_1_B924(void) { - M424DllClawStruct* temp_r31; - +s32 fn_1_B924(void) +{ + M424DllClawStruct *temp_r31; + if (!lbl_1_bss_6D8) { return 0; } @@ -849,11 +878,13 @@ s32 fn_1_B924(void) { return 0; } -void fn_1_B99C(Vec* arg0, Vec* arg1, f32 arg8, Vec* arg2) { +void fn_1_B99C(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2) +{ fn_1_B9E0(arg0, arg1, arg8, arg2, 0x10); } -s32 fn_1_B9E0(Vec* arg0, Vec* arg1, f32 arg8, Vec* arg2, s32 arg3) { +s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3) +{ Vec sp60; Vec sp54; Vec sp48; @@ -870,11 +901,11 @@ s32 fn_1_B9E0(Vec* arg0, Vec* arg1, f32 arg8, Vec* arg2, s32 arg3) { f32 var_f25; f32 var_f24; f32 var_f23; - M424DllClawStruct* temp_r31; + M424DllClawStruct *temp_r31; s32 var_r29; s32 var_r28; s32 var_r26; - omObjData* var_r24; + omObjData *var_r24; s32 var_r23; var_r23 = 1; @@ -907,7 +938,8 @@ s32 fn_1_B9E0(Vec* arg0, Vec* arg1, f32 arg8, Vec* arg2, s32 arg3) { var_f23 = sqrtf((sp18.x * sp18.x) + (sp18.z * sp18.z)); if ((temp_r31->unk3C[var_r29].y > sp24.y) && (var_f23 < 17.599999999999998)) { temp_r31->unk15C = 1; - } else { + } + else { PSVECNormalize(&sp18, &sp18); PSVECScale(&sp18, &sp18, temp_f30); PSVECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); @@ -947,9 +979,10 @@ s32 fn_1_B9E0(Vec* arg0, Vec* arg1, f32 arg8, Vec* arg2, s32 arg3) { PSVECAdd(&sp60, &sp30, arg2); var_r28 = 1; var_r26 = 1; - } else if (var_f29 < temp_f30) { + } + else if (var_f29 < temp_f30) { if (PSVECMag(&sp30) <= 0.0f) { - + sp30.x = sp30.y = 0.0f; sp30.z = 1.0f; } @@ -1025,12 +1058,13 @@ s32 fn_1_B9E0(Vec* arg0, Vec* arg1, f32 arg8, Vec* arg2, s32 arg3) { return var_r28; } -s32 fn_1_C210(Vec* arg0) { +s32 fn_1_C210(Vec *arg0) +{ Vec sp1C; Vec sp10; f32 spC; - M424DllClawStruct* temp_r31; - omObjData* var_r30; + M424DllClawStruct *temp_r31; + omObjData *var_r30; s32 var_r29; var_r29 = 0; @@ -1052,21 +1086,23 @@ s32 fn_1_C210(Vec* arg0) { return var_r29; } -void fn_1_C2E0(s32 arg0) { +void fn_1_C2E0(s32 arg0) +{ Vec sp4C; Vec sp40; Vec sp34; Vec sp28; - Vec* spC; - M424DllBallStruct2* temp_r27; - Vec* temp_r28; - M424DllClawStruct* temp_r31; + Vec *spC; + M424DllBallStruct2 *temp_r27; + Vec *temp_r28; + M424DllClawStruct *temp_r31; s32 var_r30; s32 var_r26; - omObjData* var_r25; + omObjData *var_r25; + + if ((u8)omPauseChk() != 0U) + return; - if ((u8)omPauseChk() != 0U) return; - var_r25 = lbl_1_bss_6D8; if (lbl_1_bss_6D8) { temp_r31 = var_r25->data; @@ -1074,10 +1110,11 @@ void fn_1_C2E0(s32 arg0) { temp_r27 = &lbl_1_bss_60[0]; if (temp_r27) { var_r26 = 0x10; - + for (var_r30 = 0; var_r30 < lbl_1_bss_58; var_r30++) { temp_r27 = &lbl_1_bss_60[var_r30]; - if ((fn_1_8950(var_r30) == 3) || (fn_1_8950(var_r30) == 4)) continue; + if ((fn_1_8950(var_r30) == 3) || (fn_1_8950(var_r30) == 4)) + continue; temp_r28 = fn_1_89D4(var_r30); spC = fn_1_8A00(var_r30); sp28 = *temp_r28; @@ -1116,18 +1153,19 @@ void fn_1_C2E0(s32 arg0) { } } -void fn_1_C604(s32 arg0, s32 arg1) { +void fn_1_C604(s32 arg0, s32 arg1) +{ Vec sp30; Vec sp24; Vec sp18; Vec spC; - M424DllBallStruct2* sp8; - Vec* var_r31; + M424DllBallStruct2 *sp8; + Vec *var_r31; f32 temp_f31; f32 var_f30; s32 var_r30; - M424DllBallStruct2* var_r28; - Vec* var_r27; + M424DllBallStruct2 *var_r28; + Vec *var_r27; sp8 = &lbl_1_bss_60[var_r30]; var_r27 = fn_1_89D4(arg0); @@ -1145,7 +1183,8 @@ void fn_1_C604(s32 arg0, s32 arg1) { sp18.x *= temp_f31; sp18.y *= temp_f31; sp18.z *= temp_f31; - } else { + } + else { sp18.x = 0.0f; sp18.y = 0.0f; sp18.z = 1.0f; @@ -1168,22 +1207,25 @@ void fn_1_C604(s32 arg0, s32 arg1) { } } -void fn_1_C854(void) { +void fn_1_C854(void) +{ fn_1_C2E0(0); } -s32 fn_1_C878(s16 arg0, const char* arg1, Mtx arg2, s32 arg3) { +s32 fn_1_C878(s16 arg0, const char *arg1, Mtx arg2, s32 arg3) +{ Mtx sp44; Mtx sp14; - HsfData* temp_r30; - ModelData* temp_r31; + HsfData *temp_r30; + ModelData *temp_r31; temp_r31 = &Hu3DData[arg0]; temp_r30 = temp_r31->hsfData; lbl_1_bss_6C8 = 0; if (temp_r31->unk_08 != -1) { lbl_1_bss_6C4 = 1; - } else { + } + else { lbl_1_bss_6C4 = 0; } mtxRot(sp14, temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z); @@ -1197,18 +1239,19 @@ s32 fn_1_C878(s16 arg0, const char* arg1, Mtx arg2, s32 arg3) { return lbl_1_bss_6C8; } -void fn_1_C99C(HsfObject* arg0, Mtx arg1, const char* arg2, Mtx arg3) { +void fn_1_C99C(HsfObject *arg0, Mtx arg1, const char *arg2, Mtx arg3) +{ Mtx spF8; Mtx spC8; Mtx sp98; Mtx sp68; Mtx sp38; Mtx sp8; - HsfTransform* var_r31; - HsfTransform* var_r30; - HsfTransform* var_r29; - HsfObject* temp_r28; - HsfObject* temp_r27; + HsfTransform *var_r31; + HsfTransform *var_r30; + HsfTransform *var_r29; + HsfObject *temp_r28; + HsfObject *temp_r27; u32 var_r25; u32 var_r24; u32 var_r23; @@ -1216,13 +1259,15 @@ void fn_1_C99C(HsfObject* arg0, Mtx arg1, const char* arg2, Mtx arg3) { if (lbl_1_bss_6C8 == 0) { if (lbl_1_bss_6C4 != 0) { var_r31 = &arg0->data.curr; - } else { + } + else { var_r31 = &arg0->data.base; } if ((var_r31->scale.x <= 0.0f) && (var_r31->scale.y <= 0.0f) && (var_r31->scale.z <= 0.0f)) { PSMTXCopy(arg1, spF8); OSReport("OBJ MTX CHECK ERROR %s \n", arg0->name); - } else { + } + else { mtxRot(spC8, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); PSMTXScale(spF8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); PSMTXConcat(spC8, spF8, spF8); @@ -1241,13 +1286,15 @@ void fn_1_C99C(HsfObject* arg0, Mtx arg1, const char* arg2, Mtx arg3) { if (lbl_1_bss_6C8 == 0) { if (lbl_1_bss_6C4 != 0) { var_r30 = &temp_r28->data.curr; - } else { + } + else { var_r30 = &temp_r28->data.base; } if ((var_r30->scale.x <= 0.0f) && (var_r30->scale.y <= 0.0f) && (var_r30->scale.z <= 0.0f)) { PSMTXCopy(spF8, sp68); OSReport("OBJ MTX CHECK ERROR %s \n", temp_r28->name); - } else { + } + else { mtxRot(sp98, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); PSMTXScale(sp68, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); PSMTXConcat(sp98, sp68, sp68); @@ -1266,13 +1313,15 @@ void fn_1_C99C(HsfObject* arg0, Mtx arg1, const char* arg2, Mtx arg3) { if (lbl_1_bss_6C8 == 0) { if (lbl_1_bss_6C4 != 0) { var_r29 = &temp_r27->data.curr; - } else { + } + else { var_r29 = &temp_r27->data.base; } if ((var_r29->scale.x <= 0.0f) && (var_r29->scale.y <= 0.0f) && (var_r29->scale.z <= 0.0f)) { PSMTXCopy(sp68, sp8); OSReport("OBJ MTX CHECK ERROR %s \n", temp_r27->name); - } else { + } + else { mtxRot(sp38, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z); PSMTXScale(sp8, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z); PSMTXConcat(sp38, sp8, sp8); @@ -1296,8 +1345,9 @@ void fn_1_C99C(HsfObject* arg0, Mtx arg1, const char* arg2, Mtx arg3) { } } -void fn_1_CE74(s32 arg0) { - ModelData* temp_r31; +void fn_1_CE74(s32 arg0) +{ + ModelData *temp_r31; temp_r31 = &Hu3DData[arg0]; if (temp_r31->unk_08 != -1) { @@ -1311,21 +1361,23 @@ void fn_1_CE74(s32 arg0) { } } -void fn_1_CF00(Process* arg0) { - M424DllClawStruct3* var_r31; +void fn_1_CF00(Process *arg0) +{ + M424DllClawStruct3 *var_r31; s32 var_r30; omAddObjEx(arg0, 0x40, 0, 0, -1, fn_1_CF80); var_r31 = &lbl_1_bss_640[0]; - + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { var_r31->unk0 = -1; var_r31->unk4 = -1; } } -void fn_1_CF80(omObjData* arg0) { - M424DllClawStruct3* var_r31; +void fn_1_CF80(omObjData *arg0) +{ + M424DllClawStruct3 *var_r31; s32 var_r30; var_r31 = &lbl_1_bss_640[0]; @@ -1340,13 +1392,15 @@ void fn_1_CF80(omObjData* arg0) { } } -s32 fn_1_D010(s32 arg0, s32 arg1) { - M424DllClawStruct3* var_r31; +s32 fn_1_D010(s32 arg0, s32 arg1) +{ + M424DllClawStruct3 *var_r31; s32 var_r30; var_r31 = &lbl_1_bss_640[0]; for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { - if (var_r31->unk0 == -1) break; + if (var_r31->unk0 == -1) + break; } if (var_r30 >= 0x10) { return -1; diff --git a/src/REL/m430Dll/main.c b/src/REL/m430Dll/main.c index bf93c2c6..f7320e52 100644 --- a/src/REL/m430Dll/main.c +++ b/src/REL/m430Dll/main.c @@ -139,7 +139,7 @@ void ObjectSetup(void) lbl_1_bss_34 = omAddObjEx(var_r31, 0xA, 0, 0, -1, fn_1_65C); fn_1_4A80(var_r31); fn_1_BBC4(var_r31); - lbl_1_bss_10 = espEntry(0x3D001B, 0x64, 0); + lbl_1_bss_10 = espEntry(DATA_MAKE_NUM(DATADIR_M430, 0x1B), 0x64, 0); espPosSet(lbl_1_bss_10, 288.0, 240.0); espScaleSet(lbl_1_bss_10, 0.22499999403953552, 60.0); espDispOff(lbl_1_bss_10); diff --git a/src/REL/m430Dll/player.c b/src/REL/m430Dll/player.c index 981602dc..e42fbd99 100644 --- a/src/REL/m430Dll/player.c +++ b/src/REL/m430Dll/player.c @@ -219,21 +219,22 @@ void fn_1_F6A0(omObjData *object); void fn_1_FC9C(omObjData *object); M430PlayerData170Struct lbl_1_data_170[7] = { - { 0x5F0042, -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x42), -1 }, { 0, 1 }, { 0, 2 }, { 0, 3 }, { 0, -1 }, - { 0x5F0017, -1 }, - { 0x5F0018, -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), -1 }, }; M430PlayerData170Struct lbl_1_data_1A8[4] = { { 0, 4 }, - { 0x5F0000, -1 }, - { 0x5F0017, -1 }, - { 0x5F0018, -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), -1 }, }; -s32 lbl_1_data_1C8[5] = { 0, 0x3D0031, 0x3D0039, 0x3D0041, 0x3D0049 }; +s32 lbl_1_data_1C8[5] = { 0, DATA_MAKE_NUM(DATADIR_M430, 0x31), DATA_MAKE_NUM(DATADIR_M430, 0x39), DATA_MAKE_NUM(DATADIR_M430, 0x41), + DATA_MAKE_NUM(DATADIR_M430, 0x49) }; float lbl_1_data_1DC[7] = { -262.5f, -173.25f, -86.625f, 0.0f, 86.625f, 173.25f, 262.5f }; Vec lbl_1_data_1F8[8] = { { 0.0f, 0.0f, 0.0f }, @@ -246,9 +247,9 @@ Vec lbl_1_data_1F8[8] = { { -60.000004f, 0.0f, -120.00001f }, }; float lbl_1_data_258[8] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 25.0f, 0.0f, 25.0f }; -s32 lbl_1_data_278[2] = { 0x3D001C, 0x3D001D }; -s32 lbl_1_data_280[2] = { 0x3D001E, 0x3D001F }; -s32 lbl_1_data_288[2] = { 0x3D0020, 0x3D0021 }; +s32 lbl_1_data_278[2] = { DATA_MAKE_NUM(DATADIR_M430, 0x1C), DATA_MAKE_NUM(DATADIR_M430, 0x1D) }; +s32 lbl_1_data_280[2] = { DATA_MAKE_NUM(DATADIR_M430, 0x1E), DATA_MAKE_NUM(DATADIR_M430, 0x1F) }; +s32 lbl_1_data_288[2] = { DATA_MAKE_NUM(DATADIR_M430, 0x20), DATA_MAKE_NUM(DATADIR_M430, 0x21) }; s32 lbl_1_bss_17C; Process *lbl_1_bss_178; @@ -427,7 +428,7 @@ void fn_1_C1E4(omObjData *object) Hu3DModelLayerSet(object->model[1], 2); Hu3DModelCameraSet(object->model[1], 3); Hu3DModelScaleSet(object->model[1], 1.2f, 1.2f, 1.2f); - object->model[2] = Hu3DModelCreateFile(0x3D0025); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x25)); Hu3DModelLayerSet(object->model[2], 1); Hu3DModelCameraSet(object->model[2], 3); work->unk_60 = HuAudFXPlay(0x67A); @@ -1659,14 +1660,14 @@ void fn_1_10B88(void) for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { var_r31->unk_00 = var_r30; if (var_r30 == 0) { - var_r31->unk_04 = Hu3DModelCreateFile(0x3D0023); + var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x23)); } else { var_r31->unk_04 = Hu3DModelLink(lbl_1_bss_16C[0].unk_04); } Hu3DModelLayerSet(var_r31->unk_04, 2); Hu3DModelAttrSet(var_r31->unk_04, HU3D_ATTR_DISPOFF); - var_r31->unk_08 = Hu3DModelCreateFile(0x3D0024); + var_r31->unk_08 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x24)); Hu3DModelLayerSet(var_r31->unk_08, 2); Hu3DModelAttrSet(var_r31->unk_08, HU3D_ATTR_DISPOFF); var_r31->unk_0C = 0; @@ -1836,7 +1837,7 @@ void fn_1_113AC(void) for (var_r30 = 0; var_r30 < 0x20; var_r31++) { var_r31->unk_00 = var_r30; if (var_r30 == 0) { - var_r31->unk_04 = Hu3DModelCreateFile(0x3D0022); + var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x22)); } else { var_r31->unk_04 = Hu3DModelLink(lbl_1_bss_168[0].unk_04); @@ -2006,7 +2007,7 @@ void fn_1_11C1C(void) memset(var_r31, 0, 8 * sizeof(M430PlayerBss164Struct)); for (var_r30 = 0; var_r30 < 8; var_r30++, var_r31++) { if (var_r30 == 0) { - var_r31->unk_14 = HuSprAnimRead(HuDataReadNum(0x3D0026, MEMORY_DEFAULT_NUM)); + var_r31->unk_14 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M430, 0x26), MEMORY_DEFAULT_NUM)); } else { var_r31->unk_14 = lbl_1_bss_164[0].unk_14; @@ -2182,7 +2183,7 @@ void fn_1_125C4(void) switch (var_r30) { case 0: case 1: - var_r31->unk_10[var_r30] = espEntry(0x610033, 1, 0); + var_r31->unk_10[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x33), 1, 0); espPriSet(var_r31->unk_10[var_r30], 0x40); var_r31->unk_28[var_r30][0] = (var_r30 * 0x14) + 0xB; var_r31->unk_28[var_r30][1] = 0; @@ -2191,17 +2192,17 @@ void fn_1_125C4(void) break; case 2: if (var_r29 == 0) { - var_r31->unk_10[var_r30] = espEntry(0x61001B, 1, 0); + var_r31->unk_10[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x1B), 1, 0); } else { - var_r31->unk_10[var_r30] = espEntry(0x61001C, 1, 0); + var_r31->unk_10[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x1C), 1, 0); } espPriSet(var_r31->unk_10[var_r30], 0xFF); var_r31->unk_28[var_r30][0] = 0; var_r31->unk_28[var_r30][1] = 0; break; case 3: - var_r31->unk_10[var_r30] = espEntry(0x61001D, 1, 0); + var_r31->unk_10[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x1D), 1, 0); espPriSet(var_r31->unk_10[var_r30], 0x100); espTPLvlSet(var_r31->unk_10[var_r30], 0.6000000238418579); espColorSet(var_r31->unk_10[var_r30], 0, 0, 0); @@ -2209,13 +2210,13 @@ void fn_1_125C4(void) var_r31->unk_28[var_r30][1] = 0; break; case 4: - var_r31->unk_10[var_r30] = espEntry(0x610008, 1, 0); + var_r31->unk_10[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_MGCONST, 0x08), 1, 0); espPriSet(var_r31->unk_10[var_r30], 0x80); var_r31->unk_28[var_r30][0] = -0x21; var_r31->unk_28[var_r30][1] = 0; break; case 5: - var_r31->unk_10[var_r30] = espEntry(0x3D0028, 1, 0); + var_r31->unk_10[var_r30] = espEntry(DATA_MAKE_NUM(DATADIR_M430, 0x28), 1, 0); espPriSet(var_r31->unk_10[var_r30], 0x80); espZRotSet(var_r31->unk_10[var_r30], 45.0); var_r31->unk_28[var_r30][0] = -0xA; diff --git a/src/REL/m430Dll/water.c b/src/REL/m430Dll/water.c index 1d295c95..f9b938a2 100644 --- a/src/REL/m430Dll/water.c +++ b/src/REL/m430Dll/water.c @@ -165,11 +165,11 @@ void fn_1_4A80(Process *process) { omObjData *object; - lbl_1_bss_150 = HuSprAnimRead(HuDataReadNum(0x3D0019, 0x10000000)); - lbl_1_bss_14C = HuSprAnimRead(HuDataReadNum(0x3D001A, 0x10000000)); - lbl_1_bss_148 = HuSprAnimRead(HuDataReadNum(0x3D0014, 0x10000000)); - lbl_1_bss_144 = HuSprAnimRead(HuDataReadNum(0x3D0017, 0x10000000)); - lbl_1_bss_140 = HuSprAnimRead(HuDataReadNum(0x3D0018, 0x10000000)); + lbl_1_bss_150 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M430, 0x19), MEMORY_DEFAULT_NUM)); + lbl_1_bss_14C = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M430, 0x1A), MEMORY_DEFAULT_NUM)); + lbl_1_bss_148 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M430, 0x14), MEMORY_DEFAULT_NUM)); + lbl_1_bss_144 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M430, 0x17), MEMORY_DEFAULT_NUM)); + lbl_1_bss_140 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M430, 0x18), MEMORY_DEFAULT_NUM)); object = lbl_1_bss_58 = omAddObjEx(process, 0x1E, 0x68, 0, -1, fn_1_4CB4); object->work[0] = 0; object = lbl_1_bss_54 = omAddObjEx(process, 0x1E, 7, 0, -1, fn_1_803C); @@ -200,12 +200,12 @@ void fn_1_4CB4(omObjData *object) s32 var_r25; M430DllWork *work; - u32 spC[1] = { 0x3D0001 }; + u32 spC[1] = { DATA_MAKE_NUM(DATADIR_M430, 0x01) }; s32 sp8[1]; - u32 sp90[4] = { 0x003D000B, 0x003D000C, 0x003D000D, 0x003D000E }; - u32 sp80[4] = { 0x003D0002, 0x003D0002, 0x003D0003, 0x003D0003 }; - u32 sp70[4] = { 0x003D0004, 0x003D0004, 0x00000000, 0x00000000 }; - u32 sp60[4] = { 0x003D0006, 0x003D0007, 0x003D0008, 0x003D0009 }; + u32 sp90[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x0B), DATA_MAKE_NUM(DATADIR_M430, 0x0C), DATA_MAKE_NUM(DATADIR_M430, 0x0D), DATA_MAKE_NUM(DATADIR_M430, 0x0E) }; + u32 sp80[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x02), DATA_MAKE_NUM(DATADIR_M430, 0x02), DATA_MAKE_NUM(DATADIR_M430, 0x03), DATA_MAKE_NUM(DATADIR_M430, 0x03) }; + u32 sp70[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x04), DATA_MAKE_NUM(DATADIR_M430, 0x04), 0, 0 }; + u32 sp60[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x06), DATA_MAKE_NUM(DATADIR_M430, 0x07), DATA_MAKE_NUM(DATADIR_M430, 0x08), DATA_MAKE_NUM(DATADIR_M430, 0x09) }; s32 sp50[4]; s32 sp40[4]; s32 sp30[4]; @@ -227,11 +227,11 @@ void fn_1_4CB4(omObjData *object) } var_r30 = work; for (var_r31 = 0; var_r31 < 2; var_r31++) { - object->model[var_r31] = Hu3DModelCreateFile(0x3D0000); + object->model[var_r31] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x00)); var_r30[var_r31].unk_18 = object->model[var_r31]; Hu3DModelLayerSet(var_r30[var_r31].unk_18, 0); Hu3DModelScaleSet(var_r30[var_r31].unk_18, 1.15f, 1.15f, 1.15f); - var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x3D000A), 1); + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M430, 0x0A)), 1); var_r30[var_r31].unk_1A = var_r27; Hu3DModelLayerSet(var_r27, 1); *((s16 *)Hu3DData[var_r27].unk_120) = 1; @@ -247,14 +247,14 @@ void fn_1_4CB4(omObjData *object) var_r26->material[var_r28].invAlpha = 0.001f; } } - object->model[2] = Hu3DModelCreateFile(0x3D000F); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x0F)); Hu3DModelLayerSet(object->model[2], 1); Hu3DModelScaleSet(object->model[2], 1.5f, 1.5f, 1.5f); - object->model[3] = Hu3DModelCreateFile(0x3D0010); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x10)); Hu3DModelLayerSet(object->model[3], 2); Hu3DModelScaleSet(object->model[3], 1.5f, 1.5f, 1.5f); for (var_r31 = 0; var_r31 < 2; var_r31++) { - var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x3D0015), 0x64); + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M430, 0x15)), 0x64); object->model[var_r31 + 4] = var_r27; var_r30[var_r31].unk_10 = var_r27; Hu3DModelLayerSet(var_r27, 2); @@ -264,7 +264,7 @@ void fn_1_4CB4(omObjData *object) *((s16 *)Hu3DData[var_r27].unk_120) = 0; } for (var_r31 = 0; var_r31 < 2; var_r31++) { - var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x3D0015), 0x64); + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M430, 0x15)), 0x64); object->model[var_r31 + 6] = var_r27; var_r30[var_r31].unk_14 = var_r27; Hu3DModelLayerSet(var_r27, 1); @@ -701,7 +701,7 @@ M430DllUnkStruct2 *fn_1_70AC(omObjData *arg0, s32 var_r27, s16 var_r28) s32 var_r30; M430DllUnkStruct2 *var_r29; - u32 sp10[2] = { 0x003D0011, 0x003D0012 }; + u32 sp10[2] = { DATA_MAKE_NUM(DATADIR_M430, 0x11), DATA_MAKE_NUM(DATADIR_M430, 0x12) }; s32 sp8[2] = { 1, 2 }; var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r28 * sizeof(M430DllUnkStruct2), MEMORY_DEFAULT_NUM); memset(var_r29, 0, var_r28 * 0x3C); @@ -807,7 +807,7 @@ void fn_1_7848(omObjData *object) work = HuMemDirectMallocNum(HEAP_SYSTEM, var_r30 * sizeof(M430DllWork2), MEMORY_DEFAULT_NUM); object->data = work; memset(work, 0, var_r30 * sizeof(M430DllWork2)); - var_r26 = Hu3DModelCreateFile(0x3D0013); + var_r26 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M430, 0x13)); var_f29 = 1000.0f; for (var_r31 = work, var_r29 = 0; var_r29 < var_r30; var_r29++, var_r31++) { var_r31->unk_00 = Hu3DModelLink(var_r26); diff --git a/src/REL/m449Dll/main.c b/src/REL/m449Dll/main.c index e2ee45d9..be72261b 100644 --- a/src/REL/m449Dll/main.c +++ b/src/REL/m449Dll/main.c @@ -127,7 +127,8 @@ s32 lbl_1_data_0[0x12] = { 0x610000, }; s32 lbl_1_data_48[0x12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -s32 lbl_1_data_90[4] = { 0x5F0000, 0x500000, 0x5F0017, 0x5F0085 }; +s32 lbl_1_data_90[4] + = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0x500000, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x85) }; s32 lbl_1_data_A0[4] = { 0x50001C, 0x50001E, 0x50001D, 0x50001F }; u8 lbl_1_data_B0[0x38] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, diff --git a/src/REL/m455Dll/main.c b/src/REL/m455Dll/main.c index 2a2c634a..fa1c4b5b 100644 --- a/src/REL/m455Dll/main.c +++ b/src/REL/m455Dll/main.c @@ -3,7 +3,6 @@ #include "game/object.h" #include "game/objsub.h" - #include "game/hsfmotion.h" #include "game/pad.h" @@ -15,7 +14,6 @@ #include "game/minigame_seq.h" #include "game/wipe.h" - #include "ext_math.h" #include "math.h" @@ -329,15 +327,15 @@ s32 fn_1_C90(void) s32 fn_1_3214(void); u32 lbl_1_data_E0[5][2] = { - 0x5F0000, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0, 0x540024, 1, 0x54001C, 1, - 0x5F0017, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), 0, - 0x5F0018, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), 0, }; diff --git a/src/REL/m456Dll/main.c b/src/REL/m456Dll/main.c index 8604098f..9c760c47 100644 --- a/src/REL/m456Dll/main.c +++ b/src/REL/m456Dll/main.c @@ -436,16 +436,16 @@ s32 fn_1_F4C(void) } M456DllDataE4Struct lbl_1_data_E4[0xA] = { - { 0x5F0000, 0 }, - { 0x55001C, 1 }, - { 0x550024, 1 }, - { 0x55002C, 1 }, - { 0x550034, 1 }, - { 0x5F002A, 0 }, - { 0x5F0005, 0 }, - { 0x5F0017, 0 }, - { 0x5F0018, 0 }, - { 0x55003C, 1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), 0 }, + { DATA_MAKE_NUM(DATADIR_M456, 0x1C), 1 }, + { DATA_MAKE_NUM(DATADIR_M456, 0x24), 1 }, + { DATA_MAKE_NUM(DATADIR_M456, 0x2C), 1 }, + { DATA_MAKE_NUM(DATADIR_M456, 0x34), 1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x2A), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), 0 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18), 0 }, + { DATA_MAKE_NUM(DATADIR_M456, 0x3C), 1 }, }; Vec lbl_1_data_134[4] = { { -300.0f, 0.0f, 0.0f }, @@ -826,7 +826,7 @@ void fn_1_2448(omObjData *object) } M456DllData1B0Struct lbl_1_data_1B0[0x10] = { - { 0x550044, 0x10E }, + { DATA_MAKE_NUM(DATADIR_M456, 0x44), 0x10E }, { 0x610037, 0xFA }, { 0x610030, 0xFA }, { 0x610030, 0xFA }, diff --git a/src/REL/m458Dll/main.c b/src/REL/m458Dll/main.c index 1e95123b..f7242c46 100644 --- a/src/REL/m458Dll/main.c +++ b/src/REL/m458Dll/main.c @@ -77,16 +77,16 @@ void fn_1_6D9C(omObjData *arg0); s32 lbl_1_data_0[2] = { 0x570025, 0x570026 }; s32 lbl_1_data_8[2] = { 0, 0 }; s32 lbl_1_data_10[0xA] = { - 0x5F0000, - 0x5F0002, - 0x5F0003, - 0x5F0005, - 0x5F0006, - 0x5F0036, - 0x5F002F, - 0x5F001A, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x06), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x36), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x2F), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1A), 0x570000, - 0x5F0017, + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), }; u32 lbl_1_data_38[0xA] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }; u32 lbl_1_data_60[0xA] = { 0x30008, 0, 0, 0x3000A, 0, 0, 0x57002A, 0x570028, 0x570029, 0x570027 }; diff --git a/src/REL/m461Dll/main.c b/src/REL/m461Dll/main.c index d24bdfd7..2c18e8cd 100644 --- a/src/REL/m461Dll/main.c +++ b/src/REL/m461Dll/main.c @@ -1,11 +1,11 @@ #include "REL/executor.h" #include "game/chrman.h" #include "game/frand.h" +#include "game/gamework.h" #include "game/minigame_seq.h" #include "game/object.h" #include "game/objsub.h" #include "game/wipe.h" -#include "game/gamework.h" #include "game/gamework_data.h" @@ -544,27 +544,19 @@ float lbl_1_bss_8; float lbl_1_bss_4; float lbl_1_bss_0; -s16 lbl_1_data_0[8] = { - 0, 1, 2, 3, 4, 5, 6, 7 -}; +s16 lbl_1_data_0[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; -s32 lbl_1_data_10[8] = { - 0, 1, 2, 3, 4, 5, 6, 7 -}; +s32 lbl_1_data_10[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; -float lbl_1_data_30[10] = { - 70, 70, 70, 70, 70, 70, 70, 70, 70, 100 -}; +float lbl_1_data_30[10] = { 70, 70, 70, 70, 70, 70, 70, 70, 70, 100 }; -float lbl_1_data_58[10] = { - 150, 170, 190, 170, 160, 150, 180, 200, 150, 200 -}; +float lbl_1_data_58[10] = { 150, 170, 190, 170, 160, 150, 180, 200, 150, 200 }; void fn_1_23B4(WorkPlayerOld *player) { s32 i; - for(i=0; i<8; i++) { - if(player->unk44 == player->unk14[i]) { + for (i = 0; i < 8; i++) { + if (player->unk44 == player->unk14[i]) { player->unk40 = lbl_1_data_10[i]; return; } @@ -580,7 +572,7 @@ void fn_1_2418(float *minDist, s32 *state, s32 stateNew, Vec *posA, float aYOfs, pointA.y += aYOfs; pointB.y += bYOfs; dist = VECDistance(&pointA, &pointB); - if(*minDist > dist) { + if (*minDist > dist) { *minDist = dist; *state = stateNew; } @@ -588,11 +580,11 @@ void fn_1_2418(float *minDist, s32 *state, s32 stateNew, Vec *posA, float aYOfs, void fn_1_24F8(WorkPlayerOld *player1, WorkPlayerOld *player2, float *minDist, s32 *state) { - *minDist = 10*(player1->unkBC+player2->unkBC); + *minDist = 10 * (player1->unkBC + player2->unkBC); fn_1_2418(minDist, state, 0, &player1->unk6C, player1->unkBC, &player2->unk6C, player2->unkBC); - fn_1_2418(minDist, state, 1, &player1->unk6C, player1->unkC0-player1->unkBC, &player2->unk6C, player2->unkC0-player2->unkBC); - fn_1_2418(minDist, state, 2, &player1->unk6C, player1->unkBC, &player2->unk6C, player2->unkC0-player2->unkBC); - fn_1_2418(minDist, state, 3, &player1->unk6C, player1->unkC0-player1->unkBC, &player2->unk6C, player2->unkBC); + fn_1_2418(minDist, state, 1, &player1->unk6C, player1->unkC0 - player1->unkBC, &player2->unk6C, player2->unkC0 - player2->unkBC); + fn_1_2418(minDist, state, 2, &player1->unk6C, player1->unkBC, &player2->unk6C, player2->unkC0 - player2->unkBC); + fn_1_2418(minDist, state, 3, &player1->unk6C, player1->unkC0 - player1->unkBC, &player2->unk6C, player2->unkBC); } s32 fn_1_2824(WorkPlayerOld *player, WorkPlayerOld *player2) @@ -600,29 +592,30 @@ s32 fn_1_2824(WorkPlayerOld *player, WorkPlayerOld *player2) Vec dir; Vec dir2; float dist; - + player->unk3C |= 0x1; - player->unk90.x = player->unk20/4.0f; - player->unk90.z = -(float)player->unk24/4.0f; - if(player->unk90.x != 0.0f || player->unk90.z != 0.0f) { + player->unk90.x = player->unk20 / 4.0f; + player->unk90.z = -(float)player->unk24 / 4.0f; + if (player->unk90.x != 0.0f || player->unk90.z != 0.0f) { return; } VECSubtract(&player->unk6C, &player2->unk6C, &dir); dist = VECMagXZ(&dir); - if(0.0f == dist) { + if (0.0f == dist) { dir.x = 0; dir.z = -1; - } else { + } + else { dir.x /= dist; dir.z /= dist; } VECSubtract(&player->unk6C, &player->unk78, &dir2); dist = VECMagXZ(&dir2); - if(5 > dist) { + if (5 > dist) { dist = 5; } - player->unk90.x = dir.x*dist; - player->unk90.z = dir.z*dist; + player->unk90.x = dir.x * dist; + player->unk90.z = dir.z * dist; } void fn_1_2BD0(WorkPlayerOld *player, float arg1, float arg2) @@ -630,7 +623,7 @@ void fn_1_2BD0(WorkPlayerOld *player, float arg1, float arg2) player->unk38 = 1; player->unk84.y = arg1; player->unkA4 = arg2; - if(player->unk3C & 0x2) { + if (player->unk3C & 0x2) { player->unk3C &= ~0x2; } } @@ -709,45 +702,46 @@ void fn_1_2E34(WorkPlayerOld *player) BOOL addTime; s32 i; player->unk3C &= ~0x100; - if(player->unk3C & 0x8) { + if (player->unk3C & 0x8) { return; } - if(NULL == lbl_1_bss_A8) { + if (NULL == lbl_1_bss_A8) { return; } addTime = FALSE; - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { WorkPlayerOld *player2 = lbl_1_bss_A8(i); BOOL fixPos; float minDist; s32 state; - if(player == player2) { - continue; + if (player == player2) { + continue; } - if(player2->unk3C & 0x8) { + if (player2->unk3C & 0x8) { continue; } fixPos = FALSE; fn_1_24F8(player, player2, &minDist, &state); - if(minDist < player->unkBC+player2->unkBC) { - if(state < 2) { + if (minDist < player->unkBC + player2->unkBC) { + if (state < 2) { fixPos = TRUE; - if(player->unk38 == 1) { + if (player->unk38 == 1) { fn_1_2824(player, player2); } - } else { - if(state == 2 && player->unk38 == 1) { + } + else { + if (state == 2 && player->unk38 == 1) { fn_1_2824(player, player2); player->unk3C |= 0x100; player->unkA4 = 0; - if(!(player2->unk3C & 0x100)) { + if (!(player2->unk3C & 0x100)) { player->unk84.y = 26.766666f; } } - if(state == 3) { + if (state == 3) { fixPos = TRUE; - if(player->unk38 == 1) { - if(0.0f < player->unk84.y) { + if (player->unk38 == 1) { + if (0.0f < player->unk84.y) { player->unk84.y = 0.0f; } player->unkA4 = 0; @@ -755,24 +749,26 @@ void fn_1_2E34(WorkPlayerOld *player) } } } - if(fixPos) { + if (fixPos) { Vec dir; addTime = TRUE; VECSubtract(&player->unk6C, &player2->unk6C, &dir); - if(0.0f == minDist) { + if (0.0f == minDist) { dir.x = 0; dir.z = -1; - } else { + } + else { dir.x /= minDist; dir.z /= minDist; } - player->unk6C.x = player2->unk6C.x+(dir.x*(player->unkBC+player2->unkBC)); - player->unk6C.z = player2->unk6C.z+(dir.z*(player->unkBC+player2->unkBC)); + player->unk6C.x = player2->unk6C.x + (dir.x * (player->unkBC + player2->unkBC)); + player->unk6C.z = player2->unk6C.z + (dir.z * (player->unkBC + player2->unkBC)); } } - if(addTime) { + if (addTime) { player->unk4C++; - } else { + } + else { player->unk4C = 0; } } @@ -783,62 +779,63 @@ float fn_1_39C4(WorkPlayerOld *player, float arg2) s32 i; AddX = 0; AddZ = 0; - if(NULL != player->unk68) { - for(pos=player->unk68, i=0; iunk64; i++, pos += 2) { + if (NULL != player->unk68) { + for (pos = player->unk68, i = 0; i < player->unk64; i++, pos += 2) { int num = 0; - if(pos[0].x == pos[1].x || pos[0].x > player->unk6C.x || pos[1].x < player->unk6C.x) { + if (pos[0].x == pos[1].x || pos[0].x > player->unk6C.x || pos[1].x < player->unk6C.x) { num++; } - if(pos[0].y == pos[1].y || pos[0].y > player->unk6C.y || pos[1].y < player->unk6C.y) { + if (pos[0].y == pos[1].y || pos[0].y > player->unk6C.y || pos[1].y < player->unk6C.y) { num++; } - if(pos[0].z == pos[1].z || pos[0].z > player->unk6C.z || pos[1].z < player->unk6C.z) { + if (pos[0].z == pos[1].z || pos[0].z > player->unk6C.z || pos[1].z < player->unk6C.z) { num++; } - if(num == 3) { - if(pos[0].x != pos[1].x) { - if(pos[0].x > player->unk6C.x) { - player->unk6C.x = pos[0].x+player->unkBC; + if (num == 3) { + if (pos[0].x != pos[1].x) { + if (pos[0].x > player->unk6C.x) { + player->unk6C.x = pos[0].x + player->unkBC; } - if(pos[1].x < player->unk6C.x) { - player->unk6C.x = pos[1].x-player->unkBC; + if (pos[1].x < player->unk6C.x) { + player->unk6C.x = pos[1].x - player->unkBC; } } - if(pos[0].y != pos[1].y) { - if(pos[0].y > player->unk6C.y) { + if (pos[0].y != pos[1].y) { + if (pos[0].y > player->unk6C.y) { player->unk6C.y = pos[0].y; } - if(pos[1].y < player->unk6C.y) { + if (pos[1].y < player->unk6C.y) { player->unk6C.y = pos[1].y; } } - if(pos[0].z != pos[1].z) { - if(pos[0].z > player->unk6C.z) { - player->unk6C.z = pos[0].z+player->unkBC; + if (pos[0].z != pos[1].z) { + if (pos[0].z > player->unk6C.z) { + player->unk6C.z = pos[0].z + player->unkBC; } - if(pos[1].z < player->unk6C.z) { - player->unk6C.z = pos[1].z-player->unkBC; + if (pos[1].z < player->unk6C.z) { + player->unk6C.z = pos[1].z - player->unkBC; } } } } } - return ABS(AddX)+ABS(AddZ); + return ABS(AddX) + ABS(AddZ); } void fn_1_3C74(WorkPlayerOld *player, s32 *state, u32 *motAttr) { *motAttr = HU3D_MOTATTR_LOOP; *state = 0; - if(0.5f <= player->unkA0) { - if(7.0f <= player->unkA0) { + if (0.5f <= player->unkA0) { + if (7.0f <= player->unkA0) { *state = 2; - } else { + } + else { *state = 1; } } - - if(player->unk14[3] >= 0 && (player->unk28 & 0x100)) { + + if (player->unk14[3] >= 0 && (player->unk28 & 0x100)) { fn_1_2BD0(player, 26.766666f, 1.0f); *motAttr = HU3D_MOTATTR_NONE; *state = 3; @@ -847,20 +844,22 @@ void fn_1_3C74(WorkPlayerOld *player, s32 *state, u32 *motAttr) void fn_1_3D4C(WorkPlayerOld *player, s32 *state, u32 *motAttr) { - if(0.0f < player->unkA4) { - if(player->unk2C & 0x100) { + if (0.0f < player->unkA4) { + if (player->unk2C & 0x100) { player->unkA4++; - if(4.0f < player->unkA4) { + if (4.0f < player->unkA4) { player->unkA4 = 0; - } else { + } + else { player->unk84.y += 3.65f; } - } else { + } + else { player->unkA4 = 0; } } player->unk84.y += -2.4333334f; - if(player->unk14[5] >= 0 && (player->unk28 & 0x140)) { + if (player->unk14[5] >= 0 && (player->unk28 & 0x140)) { player->unk38 = 3; player->unk84.y = 0.0f; player->unk3C &= ~0x3; @@ -872,13 +871,14 @@ void fn_1_3D4C(WorkPlayerOld *player, s32 *state, u32 *motAttr) void fn_1_3E60(WorkPlayerOld *player, s32 *state, u32 *motAttr) { - if((player->unk3C & 0x1000) || Hu3DMotionEndCheck(player->unk0->model[0])) { + if ((player->unk3C & 0x1000) || Hu3DMotionEndCheck(player->unk0->model[0])) { player->unk3C &= ~0x3; - if(player->unk40 == 6) { + if (player->unk40 == 6) { player->unk38 = 4; *motAttr = HU3D_MOTATTR_NONE; *state = 7; - } else { + } + else { player->unk38 = 0; *motAttr = HU3D_MOTATTR_LOOP; *state = 0; @@ -888,15 +888,14 @@ void fn_1_3E60(WorkPlayerOld *player, s32 *state, u32 *motAttr) void fn_1_3F18(WorkPlayerOld *player, s32 *state, u32 *motAttr) { - if(Hu3DMotionShiftIDGet(player->unk0->model[0]) < 0 && Hu3DMotionEndCheck(player->unk0->model[0])) { + if (Hu3DMotionShiftIDGet(player->unk0->model[0]) < 0 && Hu3DMotionEndCheck(player->unk0->model[0])) { fn_1_2BD0(player, 0.0f, 0.0f); } } - void fn_1_3FB8(WorkPlayerOld *player, s32 *state, u32 *motAttr) { - if(Hu3DMotionShiftIDGet(player->unk0->model[0]) < 0 && Hu3DMotionEndCheck(player->unk0->model[0])) { + if (Hu3DMotionShiftIDGet(player->unk0->model[0]) < 0 && Hu3DMotionEndCheck(player->unk0->model[0])) { player->unk3C &= ~0x4; player->unk38 = 0; *motAttr = HU3D_MOTATTR_LOOP; @@ -913,17 +912,18 @@ void fn_1_4054(WorkPlayerOld *player) float temp_f22; Vec *pos; BOOL temp_r27; - if(player->unk3C & 0x1) { + if (player->unk3C & 0x1) { player->unk84.x = player->unk90.x; player->unk84.z = player->unk90.z; - } else { - player->unk84.x = player->unk20/4.0f; - player->unk84.z = -(float)player->unk24/4.0f; - if(player->unk38 == 1 && 0.0f == player->unk84.x && 0.0f == player->unk84.z) { - player->unk84.x = 0.98f*(player->unk6C.x-player->unk78.x); - player->unk84.z = 0.98f*(player->unk6C.z-player->unk78.z); + } + else { + player->unk84.x = player->unk20 / 4.0f; + player->unk84.z = -(float)player->unk24 / 4.0f; + if (player->unk38 == 1 && 0.0f == player->unk84.x && 0.0f == player->unk84.z) { + player->unk84.x = 0.98f * (player->unk6C.x - player->unk78.x); + player->unk84.z = 0.98f * (player->unk6C.z - player->unk78.z); } - if(player->unk3C & 0x14) { + if (player->unk3C & 0x14) { player->unk84.x = 0; player->unk84.z = 0; player->unk28 = 0; @@ -931,15 +931,16 @@ void fn_1_4054(WorkPlayerOld *player) } player->unk78 = player->unk6C; player->unkA0 = VECMagXZ(&player->unk84); - if(0.5f <= player->unkA0) { - if(10.0f <= player->unkA0) { + if (0.5f <= player->unkA0) { + if (10.0f <= player->unkA0) { player->unk84.x /= player->unkA0; player->unk84.z /= player->unkA0; player->unkA0 = 10; - player->unk84.x = 10*player->unk84.x; - player->unk84.z = 10*player->unk84.z; + player->unk84.x = 10 * player->unk84.x; + player->unk84.z = 10 * player->unk84.z; } - } else { + } + else { player->unk84.x = 0; player->unk84.z = 0; player->unkA0 = 0; @@ -947,134 +948,137 @@ void fn_1_4054(WorkPlayerOld *player) player->unk84.x *= player->unkB8; player->unk84.z *= player->unkB8; player->unkA0 *= player->unkB8; - if(player->unk3C & 0x800) { + if (player->unk3C & 0x800) { player->unk28 |= 0x100; player->unk2C |= 0x100; - if(player->unk38 == 1) { - if(0.0f == player->unkA4) { + if (player->unk38 == 1) { + if (0.0f == player->unkA4) { player->unk3C &= ~0x800; } } } - switch(player->unk38) { + switch (player->unk38) { case 0: fn_1_3C74(player, &state, &motAttr); break; - + case 1: fn_1_3D4C(player, &state, &motAttr); break; - + case 2: fn_1_3E60(player, &state, &motAttr); break; - + case 3: fn_1_3F18(player, &state, &motAttr); break; - + case 4: fn_1_3FB8(player, &state, &motAttr); break; - + default: OSReport("*** player action error(%d)!!\n", player->unk38); break; } - if(player->unk3C & 0x2000) { + if (player->unk3C & 0x2000) { player->unk84.y = 0; } temp_f28 = 0; - if(50.0f < ABS(player->unk84.y)) { - player->unk84.y = 50.0f*((0.0f > player->unk84.y) ? -1 : 1); + if (50.0f < ABS(player->unk84.y)) { + player->unk84.y = 50.0f * ((0.0f > player->unk84.y) ? -1 : 1); } - if(player->unk3C & 0x2) { + if (player->unk3C & 0x2) { Mtx rotMtx; - MTXRotDeg(rotMtx, 'y', player->unk50[2].x-player->unk60); + MTXRotDeg(rotMtx, 'y', player->unk50[2].x - player->unk60); MTXMultVec(rotMtx, &player->unk54, &player->unk54); VECAdd(&player->unk54, &player->unk50[0], &player->unk6C); - player->unk9C += player->unk50[2].x-player->unk60; + player->unk9C += player->unk50[2].x - player->unk60; } temp_f22 = player->unk6C.y; VECAdd(&player->unk6C, &player->unk84, &player->unk6C); - if((player->unk3C & 0x1) == 0 && (0.0f != player->unk84.x || 0.0f != player->unk84.z)) { - player->unk9C = fn_1_1E20(player->unk9C, atan2d(player->unk84.x, player->unk84.z), 0.4f*player->unkB8); + if ((player->unk3C & 0x1) == 0 && (0.0f != player->unk84.x || 0.0f != player->unk84.z)) { + player->unk9C = fn_1_1E20(player->unk9C, atan2d(player->unk84.x, player->unk84.z), 0.4f * player->unkB8); } temp_f28 += fn_1_39C4(player, temp_f22); - if(nMap == 0) { + if (nMap == 0) { player->unkA8 = lbl_1_bss_A4; - } else { + } + else { player->unkA8 = MapPos(player->unk6C.x, player->unk6C.y, player->unk6C.z, player->unkC0, &player->unkAC); } temp_r27 = FALSE; - if(NULL != player->unk8) { + if (NULL != player->unk8) { pos = player->unk8(player->unk0); - if(NULL != pos) { - if(player->unkA8 < pos[1].y) { + if (NULL != pos) { + if (player->unkA8 < pos[1].y) { temp_r27 = TRUE; player->unk50 = pos; player->unkA8 = pos[1].y; } } } - if(!temp_r27 && (player->unk3C & 0x2)) { + if (!temp_r27 && (player->unk3C & 0x2)) { player->unk3C &= ~0x2; } - if(player->unk38 == 1 && player->unkA8 >= player->unk6C.y) { + if (player->unk38 == 1 && player->unkA8 >= player->unk6C.y) { player->unk38 = 2; player->unk3C &= ~0x3; player->unk6C.y = player->unkA8; player->unk84.y = 0; motAttr = HU3D_MOTATTR_NONE; state = 4; - if(player->unk40 == 5) { + if (player->unk40 == 5) { state = 6; - if(NULL != player->unk10) { + if (NULL != player->unk10) { player->unk10(player->unk0); } - if(player->unk18 < 4) { + if (player->unk18 < 4) { omVibrate(player->unk18, 12, 4, 2); } } - if(player->unk3C & 0x200) { + if (player->unk3C & 0x200) { state = -1; - if(NULL != player->unkC) { + if (NULL != player->unkC) { player->unkC(player->unk0); } } - if(temp_r27) { + if (temp_r27) { player->unk3C |= 0x2; } } - temp_f23 = player->unk6C.y-player->unkA8; - if(player->unk38 == 0 && 10.0f < temp_f23) { - if(!(player->unk3C & 0x2000) && (player->unk3C & 0x400)) { + temp_f23 = player->unk6C.y - player->unkA8; + if (player->unk38 == 0 && 10.0f < temp_f23) { + if (!(player->unk3C & 0x2000) && (player->unk3C & 0x400)) { player->unk3C |= 0x800; } - } else if(temp_r27) { - if(!(player->unk3C & 0x2)) { + } + else if (temp_r27) { + if (!(player->unk3C & 0x2)) { player->unk6C.y = player->unkA8; player->unk3C |= 0x2; } } fn_1_2E34(player); - if(NULL != player->unk4) { + if (NULL != player->unk4) { player->unk4(player->unk0); } temp_f28 += fn_1_39C4(player, player->unk6C.y); - if(player->unk3C & 0x2) { + if (player->unk3C & 0x2) { player->unk60 = player->unk50[2].x; VECSubtract(&player->unk6C, &player->unk50[0], &player->unk54); } - if(0.0f != temp_f28) { + if (0.0f != temp_f28) { player->unk48++; - } else { + } + else { player->unk48 = 0; } - if(state >= 0 && player->unk40 != state) { + if (state >= 0 && player->unk40 != state) { player->unk40 = state; player->unk44 = player->unk14[player->unk40]; - if(player->unk44 >= 0 && !(player->unk3C & 0x20)) { + if (player->unk44 >= 0 && !(player->unk3C & 0x20)) { Hu3DMotionShiftSet(player->unk0->model[0], player->unk0->motion[player->unk44], 0, 8, motAttr); } } @@ -1091,17 +1095,19 @@ void fn_1_4E1C(WorkPlayerOld *player, s32 motNo) player->unk84.y = 0; player->unk84.z = 0; fn_1_23B4(player); - if(player->unk40 == 3) { - Hu3DModelAttrReset(player->unk0->model[0], HU3D_MOTATTR_LOOP|HU3D_MOTATTR_PAUSE); + if (player->unk40 == 3) { + Hu3DModelAttrReset(player->unk0->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DMotionSet(player->unk0->model[0], player->unk0->motion[player->unk44]); - Hu3DMotionTimeSet(player->unk0->model[0], Hu3DMotionMaxTimeGet(player->unk0->model[0])-1); - } else if(player->unk40 == 5) { + Hu3DMotionTimeSet(player->unk0->model[0], Hu3DMotionMaxTimeGet(player->unk0->model[0]) - 1); + } + else if (player->unk40 == 5) { player->unk38 = 3; player->unk3C |= 0x4; - Hu3DModelAttrReset(player->unk0->model[0], HU3D_MOTATTR_LOOP|HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(player->unk0->model[0], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); Hu3DMotionSet(player->unk0->model[0], player->unk0->motion[player->unk44]); - Hu3DMotionTimeSet(player->unk0->model[0], Hu3DMotionMaxTimeGet(player->unk0->model[0])-1); - } else { + Hu3DMotionTimeSet(player->unk0->model[0], Hu3DMotionMaxTimeGet(player->unk0->model[0]) - 1); + } + else { Hu3DModelAttrReset(player->unk0->model[0], HU3D_MOTATTR_PAUSE); Hu3DMotionShiftSet(player->unk0->model[0], player->unk0->motion[player->unk44], 0, 8, HU3D_MOTATTR_LOOP); } @@ -1131,93 +1137,82 @@ Vec lbl_1_data_E8 = { -1500, 4000, 1500 }; Vec lbl_1_data_F4 = { 1.5, -4, -1.5 }; GXColor lbl_1_data_100 = { 255, 255, 255, 255 }; - Vec lbl_1_data_104 = { -1500, 4000, 1500 }; Vec lbl_1_data_110 = { 0, 0, 0 }; Vec lbl_1_data_11C = { 0, 1, 0 }; s32 lbl_1_data_128[8][5] = { - 0x005F0000, 0x005F0002, 0x005F0003, 0x005F0014, 0x005F0017, - 0x001A0000, 0x001A0002, 0x001A0003, 0x001A0014, 0x001A0017, - 0x006D0000, 0x006D0002, 0x006D0003, 0x006D0014, 0x006D0017, - 0x008A0000, 0x008A0002, 0x008A0003, 0x008A0014, 0x008A0017, - 0x00850000, 0x00850002, 0x00850003, 0x00850014, 0x00850017, - 0x00110000, 0x00110002, 0x00110003, 0x00110014, 0x00110017, - 0x000D0000, 0x000D0002, 0x000D0003, 0x000D0014, 0x000D0017, - 0x00810000, 0x00810002, 0x00810003, 0x00810014, 0x00810017 + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x14), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x14), + DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x02), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x03), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x14), + DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x17), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x14), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x02), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x03), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x14), + DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x02), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x03), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x14), + DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x00), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x02), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x03), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x14), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x17), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x00), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x02), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x03), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x14), + DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x17), }; -s32 lbl_1_data_1C8[3] = { - 0x005A0002, - 0x005A0003, - 0x005A0008 -}; +s32 lbl_1_data_1C8[3] = { DATA_MAKE_NUM(DATADIR_M461, 0x02), DATA_MAKE_NUM(DATADIR_M461, 0x03), DATA_MAKE_NUM(DATADIR_M461, 0x08) }; -s32 lbl_1_data_1D4[4] = { - 0x005A0004, - 0x005A0005, - 0x005A0006, - 0x005A0007 -}; +s32 lbl_1_data_1D4[4] = { DATA_MAKE_NUM(DATADIR_M461, 0x04), DATA_MAKE_NUM(DATADIR_M461, 0x05), DATA_MAKE_NUM(DATADIR_M461, 0x06), DATA_MAKE_NUM(DATADIR_M461, 0x07) }; -float lbl_1_data_1E4[3] = { - 0.3f, - 0.5f, - 0.9f -}; +float lbl_1_data_1E4[3] = { 0.3f, 0.5f, 0.9f }; -float lbl_1_data_1F0[10][2] = { - 0, 60, - 1860, 60, - 3660, 50, - 5460, 50, - 7260, 40, - 9060, 40, - 10860, 30, - 12660, 20, - 14460, 10, - -1, 10 -}; +float lbl_1_data_1F0[10][2] = { 0, 60, 1860, 60, 3660, 50, 5460, 50, 7260, 40, 9060, 40, 10860, 30, 12660, 20, 14460, 10, -1, 10 }; -Vec lbl_1_data_240[3] = { - { 0, 0, 2800 }, - { 2800, 0, 0 }, - { -2800, 0, 0 } -}; +Vec lbl_1_data_240[3] = { { 0, 0, 2800 }, { 2800, 0, 0 }, { -2800, 0, 0 } }; -s32 lbl_1_data_264[3] = { - 70, 30, 0 -}; +s32 lbl_1_data_264[3] = { 70, 30, 0 }; typedef struct data270_struct { Vec unk0; float unkC; } Data270Struct; -Data270Struct lbl_1_data_270[8] = { - {{ 200, 0, 1400 }, 180 }, - {{ -200, 0, 1400 }, 180 }, - {{ 200, 0, -1400 }, 0 }, - {{ -200, 0, -1400 }, 0 }, - {{ 1400, 0, 200 }, 270 }, - {{ 1400, 0, -200 }, 270 }, - {{ -1400, 0, 200 }, 90 }, - {{ -1400, 0, -200}, 90 } -}; +Data270Struct lbl_1_data_270[8] = { { { 200, 0, 1400 }, 180 }, { { -200, 0, 1400 }, 180 }, { { 200, 0, -1400 }, 0 }, { { -200, 0, -1400 }, 0 }, + { { 1400, 0, 200 }, 270 }, { { 1400, 0, -200 }, 270 }, { { -1400, 0, 200 }, 90 }, { { -1400, 0, -200 }, 90 } }; -Vec lbl_1_data_2F0[4] = { - { 600, 0, 600 }, - { 600, 0, -600 }, - { -600, 0, 600 }, - { -600, 0, -600 } -}; +Vec lbl_1_data_2F0[4] = { { 600, 0, 600 }, { 600, 0, -600 }, { -600, 0, 600 }, { -600, 0, -600 } }; void fn_1_512C(void) { - if(HuPadBtn[0] & PAD_BUTTON_X) { + if (HuPadBtn[0] & PAD_BUTTON_X) { lbl_1_bss_200 = 35999; } - print8(24, 32, 1.5f, "COUNT:%d MODE:%d MES:%d %d/%d %02x", lbl_1_bss_204, lbl_1_bss_A0->work[0], lbl_1_bss_1FA, lbl_1_bss_20, lbl_1_bss_24, lbl_1_bss_28); + print8(24, 32, 1.5f, "COUNT:%d MODE:%d MES:%d %d/%d %02x", lbl_1_bss_204, lbl_1_bss_A0->work[0], lbl_1_bss_1FA, lbl_1_bss_20, lbl_1_bss_24, + lbl_1_bss_28); print8(24, 48, 1.5f, "%f %f %f", lbl_1_bss_0, lbl_1_bss_8, lbl_1_bss_4); print8(24, 64, 1.5f, "%x %x", HuMemHeapSizeGet(HEAP_SYSTEM) - HuMemUsedMallocSizeGet(HEAP_SYSTEM), HuMemHeapSizeGet(HEAP_DATA) - HuMemUsedMallocSizeGet(HEAP_DATA)); @@ -1257,14 +1252,16 @@ typedef struct work_bomhei { void fn_1_5438(Vec *pos) { float dist = VECDistance(pos, &((WorkPlayer *)lbl_1_bss_9C->data)->unk0); - if(2000 < dist) { + if (2000 < dist) { return; } - if(1000 < dist) { + if (1000 < dist) { omVibrate(lbl_1_bss_18, 12, 6, 6); - } else if(300 < dist) { + } + else if (300 < dist) { omVibrate(lbl_1_bss_18, 12, 4, 2); - } else { + } + else { omVibrate(lbl_1_bss_18, 12, 12, 0); } } @@ -1272,40 +1269,40 @@ void fn_1_5438(Vec *pos) BOOL fn_1_5528(Vec *pos, float offset) { BOOL result = FALSE; - float ofs = 700-offset; + float ofs = 700 - offset; Mtx rotMtx; - - if(ofs < pos->x) { + + if (ofs < pos->x) { pos->x = ofs; } - if(ofs < pos->z) { + if (ofs < pos->z) { pos->z = ofs; } - if(-ofs > pos->x) { + if (-ofs > pos->x) { pos->x = -ofs; } - if(-ofs > pos->z) { + if (-ofs > pos->z) { pos->z = -ofs; } - if(ofs == ABS(pos->x) || ofs == ABS(pos->z)) { + if (ofs == ABS(pos->x) || ofs == ABS(pos->z)) { result = TRUE; } MTXRotDeg(rotMtx, 'Y', 45); MTXMultVec(rotMtx, pos, pos); - ofs = (550*sqrtf(2))-offset; - if(ofs < pos->x) { + ofs = (550 * sqrtf(2)) - offset; + if (ofs < pos->x) { pos->x = ofs; } - if(ofs < pos->z) { + if (ofs < pos->z) { pos->z = ofs; } - if(-ofs > pos->x) { + if (-ofs > pos->x) { pos->x = -ofs; } - if(-ofs > pos->z) { + if (-ofs > pos->z) { pos->z = -ofs; } - if(ofs == ABS(pos->x) || ofs == ABS(pos->z)) { + if (ofs == ABS(pos->x) || ofs == ABS(pos->z)) { result = TRUE; } MTXRotDeg(rotMtx, 'Y', -45); @@ -1315,19 +1312,20 @@ BOOL fn_1_5528(Vec *pos, float offset) void fn_1_5894(Vec *pos1, Vec *pos2, float radius1, float radius2) { - float dx = pos1->x-pos2->x; - float dz = pos1->z-pos2->z; - float dist = sqrtf((dx*dx)+(dz*dz)); - if(radius1+radius2 > dist) { - if(0.0f == dist) { + float dx = pos1->x - pos2->x; + float dz = pos1->z - pos2->z; + float dist = sqrtf((dx * dx) + (dz * dz)); + if (radius1 + radius2 > dist) { + if (0.0f == dist) { dx = 0; dz = -1; - } else { + } + else { dx /= dist; dz /= dist; } - pos1->x = pos2->x+(dx*(radius1+radius2)); - pos1->z = pos2->z+(dz*(radius1+radius2)); + pos1->x = pos2->x + (dx * (radius1 + radius2)); + pos1->z = pos2->z + (dz * (radius1 + radius2)); } } @@ -1338,9 +1336,9 @@ void fn_1_5A7C(WorkPlayer *player, omObjData *obj) player->unk58 = 2002; Hu3DMotionShiftSet(obj->model[0], obj->motion[3], 0, 8, HU3D_MOTATTR_NONE); distMin = 100000; - for(i=0; i<3; i++) { + for (i = 0; i < 3; i++) { float dist = VECDistance(&lbl_1_data_240[i], &player->unk0); - if(distMin > dist) { + if (distMin > dist) { distMin = dist; player->unk3C = lbl_1_data_240[i]; } @@ -1359,45 +1357,47 @@ void fn_1_5BF4(WorkPlayer *player, omObjData *obj) player->unkC.x = 0; player->unkC.y = 0; player->unkC.z = 0; - player->unkC.x = player->unk4C/4.0f; - player->unkC.z = -(float)player->unk50/4.0f; + player->unkC.x = player->unk4C / 4.0f; + player->unkC.z = -(float)player->unk50 / 4.0f; action = 0; player->unk18.z = VECMagXZ(&player->unkC); - if(0.5f <= player->unk18.z) { - if(10.0f <= player->unk18.z) { + if (0.5f <= player->unk18.z) { + if (10.0f <= player->unk18.z) { player->unkC.x /= player->unk18.z; player->unkC.z /= player->unk18.z; player->unk18.z = 10; - player->unkC.x = 10*player->unkC.x; - player->unkC.z = 10*player->unkC.z; + player->unkC.x = 10 * player->unkC.x; + player->unkC.z = 10 * player->unkC.z; } player->unk18.y = fn_1_1E20(player->unk18.y, atan2d(player->unkC.x, player->unkC.z), 0.4f); - if(7.0f <= player->unk18.z) { + if (7.0f <= player->unk18.z) { action = 2; - } else { + } + else { action = 1; } } VECAdd(&player->unk0, &player->unkC, &player->unk0); fn_1_5528(&player->unk0, 70); - for(i=0; i<20; i++) { + for (i = 0; i < 20; i++) { WorkBomhei *bomhei; - if(NULL == lbl_1_bss_4C[i]) { + if (NULL == lbl_1_bss_4C[i]) { continue; } bomhei = lbl_1_bss_4C[i]->data; - if(bomhei->unk34 == 3004 && 30 > Hu3DMotionTimeGet(lbl_1_bss_4C[i]->model[2])) { - float dx = player->unk0.x-bomhei->unk0.x; - float dz = player->unk0.z-bomhei->unk0.z; - if(200 > sqrtf((dx*dx)+(dz*dz))) { + if (bomhei->unk34 == 3004 && 30 > Hu3DMotionTimeGet(lbl_1_bss_4C[i]->model[2])) { + float dx = player->unk0.x - bomhei->unk0.x; + float dz = player->unk0.z - bomhei->unk0.z; + if (200 > sqrtf((dx * dx) + (dz * dz))) { lbl_1_bss_14 = 1; } - } else { + } + else { fn_1_5894(&player->unk0, &bomhei->unk0, 70, 70); } } fn_1_5528(&player->unk0, 70); - if(player->unk54 != action) { + if (player->unk54 != action) { player->unk54 = action; Hu3DMotionShiftSet(obj->model[0], obj->motion[player->unk54], 0, 8, HU3D_MOTATTR_LOOP); } @@ -1409,73 +1409,74 @@ void fn_1_6A00(omObjData *obj) float dx; float dz; float dist; - switch(player->unk58) { + switch (player->unk58) { case 2000: - if(lbl_1_bss_A0->work[0] >= 1004) { + if (lbl_1_bss_A0->work[0] >= 1004) { player->unk58++; } break; - + case 2001: player->unk4C = HuPadStkX[player->unk60]; player->unk50 = HuPadStkY[player->unk60]; fn_1_5BF4(player, obj); - if(lbl_1_bss_A0->work[0] >= 1005) { - if(lbl_1_bss_14) { + if (lbl_1_bss_A0->work[0] >= 1005) { + if (lbl_1_bss_14) { fn_1_5A7C(player, obj); - } else { + } + else { player->unk58 = 2003; Hu3DMotionShiftSet(obj->model[0], obj->motion[0], 0, 8, HU3D_MOTATTR_LOOP); } } break; - + case 2002: - dx = player->unk3C.x-player->unk0.x; - dz = player->unk3C.z-player->unk0.z; - dist = sqrtf((dx*dx)+(dz*dz)); - if(player->unk48 < dist) { - dx = player->unk48*(dx/dist); - dz = player->unk48*(dz/dist); + dx = player->unk3C.x - player->unk0.x; + dz = player->unk3C.z - player->unk0.z; + dist = sqrtf((dx * dx) + (dz * dz)); + if (player->unk48 < dist) { + dx = player->unk48 * (dx / dist); + dz = player->unk48 * (dz / dist); } player->unk18.x -= player->unk48; - if(0.0f > player->unk18.x) { + if (0.0f > player->unk18.x) { player->unk18.x += 360; } - player->unk18.y = fn_1_1E20(player->unk18.y, atan2d(dx, dz)+180.0, 0.4f); + player->unk18.y = fn_1_1E20(player->unk18.y, atan2d(dx, dz) + 180.0, 0.4f); player->unk0.x += dx; player->unk0.z += dz; - dist = VECDistance(&player->unk3C, &player->unk0)/VECDistance(&player->unk3C, &player->unk30); - player->unk0.y = 500*sind(dist*180); + dist = VECDistance(&player->unk3C, &player->unk0) / VECDistance(&player->unk3C, &player->unk30); + player->unk0.y = 500 * sind(dist * 180); player->unk48 *= 1.05f; - if(lbl_1_bss_10 >= 0) { + if (lbl_1_bss_10 >= 0) { HuAudFXEmiterUpDate(lbl_1_bss_10, &player->unk0); } - if(lbl_1_bss_C >= 0) { + if (lbl_1_bss_C >= 0) { HuAudFXEmiterUpDate(lbl_1_bss_C, &player->unk0); } fn_1_5438(&player->unk24); - if(lbl_1_bss_A0->work[0] >= 1007) { + if (lbl_1_bss_A0->work[0] >= 1007) { player->unk58 = 2005; HuAudSStreamPlay(4); } break; - + case 2003: - if(lbl_1_bss_A0->work[0] >= 1007) { + if (lbl_1_bss_A0->work[0] >= 1007) { player->unk58 = 2004; HuAudSStreamPlay(1); Hu3DMotionShiftSet(obj->model[0], obj->motion[4], 0, 8, HU3D_MOTATTR_NONE); } break; - + case 2004: player->unk18.y = fn_1_1E20(player->unk18.y, 0, 0.4f); break; - + case 2005: break; - + default: OSReport("*** player mode error(%d)!!\n", player->unk58); break; @@ -1496,7 +1497,7 @@ void fn_1_7328(omObjData *obj) player->unk54 = 0; obj->model[0] = CharModelCreate(lbl_1_data_0[player->unk5C], 2); CharModelStepTypeSet(lbl_1_data_0[player->unk5C], 0); - for(i=0; i<5; i++) { + for (i = 0; i < 5; i++) { obj->motion[i] = CharModelMotionCreate(lbl_1_data_0[player->unk5C], lbl_1_data_128[player->unk5C][i]); CharModelMotionSet(lbl_1_data_0[player->unk5C], obj->motion[i]); } @@ -1523,8 +1524,8 @@ void fn_1_75B0(WorkBomhei *bomhei, omObjData *obj) float *data1F0; bomhei->unk34 = 3003; bomhei->unk24 = 10; - for(data1F0=&lbl_1_data_1F0[0][0]; 0.0f<=data1F0[0]; data1F0 += 2) { - if(data1F0[0] <= lbl_1_bss_200) { + for (data1F0 = &lbl_1_data_1F0[0][0]; 0.0f <= data1F0[0]; data1F0 += 2) { + if (data1F0[0] <= lbl_1_bss_200) { bomhei->unk24 = data1F0[1]; } } @@ -1537,20 +1538,20 @@ void fn_1_75B0(WorkBomhei *bomhei, omObjData *obj) BOOL fn_1_76CC(WorkBomhei *bomhei) { - if(bomhei->unk34 == 3002) { - if(fn_1_5528(&bomhei->unk0, 70)) { + if (bomhei->unk34 == 3002) { + if (fn_1_5528(&bomhei->unk0, 70)) { return TRUE; } - } else { - float ofs = 700-70; - - if(ofs > bomhei->unk0.x && -ofs < bomhei->unk0.x) { - if(ofs > bomhei->unk0.z && -ofs < bomhei->unk0.z) { - if(bomhei->unk28 >= 0) { + } + else { + float ofs = 700 - 70; + + if (ofs > bomhei->unk0.x && -ofs < bomhei->unk0.x) { + if (ofs > bomhei->unk0.z && -ofs < bomhei->unk0.z) { + if (bomhei->unk28 >= 0) { lbl_1_bss_28 = lbl_1_bss_28 & ~(u32)(1 << bomhei->unk28); bomhei->unk28 = -1; } - } } } @@ -1559,35 +1560,36 @@ BOOL fn_1_76CC(WorkBomhei *bomhei) void fn_1_7AD8(WorkBomhei *bomhei, omObjData *obj) { - float radius = 10*lbl_1_data_1E4[bomhei->unk30]; + float radius = 10 * lbl_1_data_1E4[bomhei->unk30]; Vec playerOfs; Vec angle; - + s32 i; s32 state; BOOL temp_r25; - + angle.x = bomhei->unkC.y; - if(bomhei->unk34 == 3002) { - switch(bomhei->unk30) { + if (bomhei->unk34 == 3002) { + switch (bomhei->unk30) { case 0: bomhei->unk18.x--; - if(0.0f > bomhei->unk18.x) { + if (0.0f > bomhei->unk18.x) { radius = 0; - if(-bomhei->unk18.y > bomhei->unk18.x) { - bomhei->unk18.y = frandmod(120)+120; - bomhei->unk18.x = frandmod(120)+120; + if (-bomhei->unk18.y > bomhei->unk18.x) { + bomhei->unk18.y = frandmod(120) + 120; + bomhei->unk18.x = frandmod(120) + 120; } - } else { + } + else { bomhei->unk18.z--; - if(0.0f > bomhei->unk18.z) { - bomhei->unk18.z = frandmod(120)+120; - bomhei->unkC.z = frandf()*360; + if (0.0f > bomhei->unk18.z) { + bomhei->unk18.z = frandmod(120) + 120; + bomhei->unkC.z = frandf() * 360; } } angle.x = bomhei->unkC.z; break; - + case 1: case 2: VECSubtract(&((WorkPlayer *)lbl_1_bss_9C->data)->unk0, &bomhei->unk0, &playerOfs); @@ -1596,49 +1598,50 @@ void fn_1_7AD8(WorkBomhei *bomhei, omObjData *obj) } } bomhei->unkC.y = fn_1_1E20(bomhei->unkC.y, angle.x, 0.05f); - angle.z = radius*sind(bomhei->unkC.y); - angle.y = radius*cosd(bomhei->unkC.y); + angle.z = radius * sind(bomhei->unkC.y); + angle.y = radius * cosd(bomhei->unkC.y); bomhei->unk0.x += angle.z; bomhei->unk0.z += angle.y; - if(0.0f < radius) { + if (0.0f < radius) { bomhei->unkC.x = fn_1_1E20(bomhei->unkC.x, atan2d(angle.z, angle.y), 0.2f); } state = 0; - if(0.5f <= radius) { - if(7.0f <= radius) { + if (0.5f <= radius) { + if (7.0f <= radius) { state = 2; - } else { + } + else { state = 1; } } temp_r25 = FALSE; - if(fn_1_76CC(bomhei)) { + if (fn_1_76CC(bomhei)) { temp_r25 = TRUE; } fn_1_5894(&bomhei->unk0, &((WorkPlayer *)lbl_1_bss_9C->data)->unk0, 70, 70); - for(i=0; i<20; i++) { + for (i = 0; i < 20; i++) { WorkBomhei *bomhei2; - if(NULL == lbl_1_bss_4C[i]) { + if (NULL == lbl_1_bss_4C[i]) { continue; } - if(obj == lbl_1_bss_4C[i]) { + if (obj == lbl_1_bss_4C[i]) { continue; } bomhei2 = lbl_1_bss_4C[i]->data; - if(bomhei2->unk34 != 3004) { + if (bomhei2->unk34 != 3004) { fn_1_5894(&bomhei->unk0, &bomhei2->unk0, 70, 70); } } - if(fn_1_76CC(bomhei)) { + if (fn_1_76CC(bomhei)) { temp_r25 = TRUE; } - if(temp_r25 && bomhei->unk30 == 0) { - float radius = frandf()*350; - float angle2 = frandf()*360; - bomhei->unkC.z = atan2d((radius*sind(angle2))-bomhei->unk0.x, (radius*cosd(angle2))-bomhei->unk0.z); - bomhei->unk18.z = frandmod(120)+120; + if (temp_r25 && bomhei->unk30 == 0) { + float radius = frandf() * 350; + float angle2 = frandf() * 360; + bomhei->unkC.z = atan2d((radius * sind(angle2)) - bomhei->unk0.x, (radius * cosd(angle2)) - bomhei->unk0.z); + bomhei->unk18.z = frandmod(120) + 120; } - if(bomhei->unk2C != state) { + if (bomhei->unk2C != state) { bomhei->unk2C = state; Hu3DMotionShiftSet(obj->model[0], obj->motion[bomhei->unk2C], 0, 8, HU3D_MOTATTR_LOOP); } @@ -1650,61 +1653,61 @@ void fn_1_8D08(omObjData *obj) { WorkBomhei *bomhei = obj->data; s32 i; - switch(bomhei->unk34) { + switch (bomhei->unk34) { case 3000: - if(lbl_1_bss_A0->work[0] >= 1004) { + if (lbl_1_bss_A0->work[0] >= 1004) { bomhei->unk34 = 3002; } break; - + case 3001: fn_1_7AD8(bomhei, obj); - if(bomhei->unk28 < 0) { + if (bomhei->unk28 < 0) { bomhei->unk34 = 3002; } break; - + case 3002: fn_1_7AD8(bomhei, obj); bomhei->unk24--; - if(0.0f > bomhei->unk24) { + if (0.0f > bomhei->unk24) { fn_1_75B0(bomhei, obj); } break; - + case 3003: bomhei->unk24--; - if(0.0f > bomhei->unk24) { + if (0.0f > bomhei->unk24) { bomhei->unk34++; Hu3DModelAttrSet(obj->model[1], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(obj->model[2], HU3D_MOTATTR_PAUSE|HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(obj->model[2], HU3D_MOTATTR_PAUSE | HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(obj->model[2], HU3D_ATTR_DISPOFF); HuAudFXEmiterPlay(2082, &bomhei->unk0); fn_1_5438(&bomhei->unk0); } break; - + case 3004: - if(Hu3DMotionEndCheck(obj->model[2])) { + if (Hu3DMotionEndCheck(obj->model[2])) { fn_1_9724(obj); return; } break; - + case 3005: break; - + default: OSReport("*** bomhei mode error(%d)!!\n", bomhei->unk34); break; } - if(bomhei->unk34 != 3004 && lbl_1_bss_A0->work[0] >= 1005) { + if (bomhei->unk34 != 3004 && lbl_1_bss_A0->work[0] >= 1005) { bomhei->unk34 = 3005; Hu3DMotionShiftSet(obj->model[0], obj->motion[0], 0, 8, HU3D_MOTATTR_LOOP); } omSetTra(obj, bomhei->unk0.x, bomhei->unk0.y, bomhei->unk0.z); omSetRot(obj, 0, bomhei->unkC.x, 0); - for(i=0; i<3; i++) { + for (i = 0; i < 3; i++) { Hu3DModelPosSet(obj->model[i], bomhei->unk0.x, bomhei->unk0.y, bomhei->unk0.z); Hu3DModelRotSet(obj->model[i], 0, bomhei->unkC.x, 0); } @@ -1718,27 +1721,30 @@ void fn_1_9164(omObjData *obj) omSetTra(obj, bomhei->unk0.x, bomhei->unk0.y, bomhei->unk0.z); omSetRot(obj, 0, bomhei->unkC.x, 0); modelId = fn_1_AC(0x1000); - if(modelId < 0) { + if (modelId < 0) { obj->model[0] = Hu3DModelLink(lbl_1_bss_3C[0]); - } else { + } + else { obj->model[0] = modelId; } modelId = fn_1_AC(0x2000); - if(modelId < 0) { + if (modelId < 0) { obj->model[1] = Hu3DModelLink(lbl_1_bss_3C[1]); - } else { + } + else { obj->model[1] = modelId; } modelId = fn_1_AC(0x3000); - if(modelId < 0) { + if (modelId < 0) { obj->model[2] = Hu3DModelLink(lbl_1_bss_3C[2]); - } else { + } + else { obj->model[2] = modelId; } - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { obj->motion[i] = lbl_1_bss_2C[i]; } - for(i=0; i<3; i++) { + for (i = 0; i < 3; i++) { Hu3DModelAttrSet(obj->model[i], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(obj->model[i], HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(obj->model[i], HU3D_MOTATTR_PAUSE); @@ -1750,8 +1756,8 @@ void fn_1_9164(omObjData *obj) Hu3DModelLayerSet(obj->model[2], 4); Hu3DModelShadowSet(obj->model[0]); Hu3DModelShadowSet(obj->model[1]); - for(i=0; i<20; i++) { - if(NULL == lbl_1_bss_4C[i]) { + for (i = 0; i < 20; i++) { + if (NULL == lbl_1_bss_4C[i]) { lbl_1_bss_4C[i] = obj; break; } @@ -1777,10 +1783,10 @@ void fn_1_956C(Vec *pos, float rotY, s32 type, s32 mode, s32 time) bomhei->unk28 = time; bomhei->unkC.y = bomhei->unkC.x; bomhei->unkC.z = bomhei->unkC.x; - bomhei->unk18.x = frandmod(120)+120; - bomhei->unk18.y = frandmod(120)+120; - bomhei->unk18.z = frandmod(120)+120; - bomhei->unk24 = frandmod(300)+180; + bomhei->unk18.x = frandmod(120) + 120; + bomhei->unk18.y = frandmod(120) + 120; + bomhei->unk18.z = frandmod(120) + 120; + bomhei->unk24 = frandmod(300) + 180; bomhei->unk2C = 0; } @@ -1788,15 +1794,15 @@ void fn_1_9724(omObjData *obj) { s32 i; lbl_1_bss_20--; - for(i=0; i<20; i++) { - if(obj == lbl_1_bss_4C[i]) { + for (i = 0; i < 20; i++) { + if (obj == lbl_1_bss_4C[i]) { lbl_1_bss_4C[i] = NULL; break; } } - for(i=0; i<3; i++) { + for (i = 0; i < 3; i++) { Hu3DModelAttrSet(obj->model[i], HU3D_ATTR_DISPOFF); - fn_1_24((i*4096)+4096, obj->model[i]); + fn_1_24((i * 4096) + 4096, obj->model[i]); } omDelObjEx(lbl_1_bss_238, obj); } @@ -1819,50 +1825,50 @@ typedef struct work_bomhei2 { void fn_1_9854(void) { - if(lbl_1_bss_200 % 900 == 0) { - if(++lbl_1_bss_24 >= 20) { + if (lbl_1_bss_200 % 900 == 0) { + if (++lbl_1_bss_24 >= 20) { lbl_1_bss_24 = 20; } } - if(lbl_1_bss_200 % 1800 == 0) { - if(lbl_1_data_264[2] < 40) { + if (lbl_1_bss_200 % 1800 == 0) { + if (lbl_1_data_264[2] < 40) { lbl_1_data_264[2] += 10; - if(lbl_1_data_264[2] > 100) { + if (lbl_1_data_264[2] > 100) { lbl_1_data_264[2] = 100; } lbl_1_data_264[1] -= 5; - if(lbl_1_data_264[1] < 0) { + if (lbl_1_data_264[1] < 0) { lbl_1_data_264[1] = 0; lbl_1_data_264[0] -= 5; } lbl_1_data_264[0] -= 5; - if(lbl_1_data_264[0] < 0) { + if (lbl_1_data_264[0] < 0) { lbl_1_data_264[0] = 0; } } } - if(lbl_1_bss_24 > lbl_1_bss_20) { + if (lbl_1_bss_24 > lbl_1_bss_20) { Data270Struct *data270 = NULL; s32 bitNum = frandmod(8); s32 i; - for(i=0; i<8; i++) { - if(((1 << bitNum) & lbl_1_bss_28) == 0) { + for (i = 0; i < 8; i++) { + if (((1 << bitNum) & lbl_1_bss_28) == 0) { data270 = &lbl_1_data_270[bitNum]; lbl_1_bss_28 |= (1 << bitNum); (void)i; break; } bitNum++; - if(bitNum >= 8) { + if (bitNum >= 8) { bitNum -= 8; } } - if(NULL != data270) { + if (NULL != data270) { s32 type = 2; s32 chance = frandmod(100); Vec pos; - for(i=0; i<3; i++) { - if(lbl_1_data_264[i] > chance) { + for (i = 0; i < 3; i++) { + if (lbl_1_data_264[i] > chance) { type = i; break; } @@ -1893,12 +1899,13 @@ WorkBomhei2 *fn_1_9CAC(omObjFunc func, s32 prio) bomhei->unk8.y = 10; bomhei->unk8.z = 0; modelId = fn_1_AC(0x1000); - if(modelId < 0) { + if (modelId < 0) { obj->model[0] = Hu3DModelLink(lbl_1_bss_3C[0]); - } else { + } + else { obj->model[0] = modelId; } - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { obj->motion[i] = lbl_1_bss_2C[i]; } omSetTra(obj, bomhei->unk8.x, bomhei->unk8.y, bomhei->unk8.z); @@ -1920,27 +1927,27 @@ void fn_1_9EF4(omObjData *obj) float vel = 3; float dx; float dz; - + s32 state; - switch(bomhei->unk44) { + switch (bomhei->unk44) { case 0: - if(bomhei->unk3C != 1) { + if (bomhei->unk3C != 1) { bomhei->unk3C = 1; Hu3DMotionShiftSet(obj->model[0], obj->motion[bomhei->unk3C], 0, 8, HU3D_MOTATTR_LOOP); } - dx = bomhei->unk14.x-bomhei->unk8.x; - dz = bomhei->unk14.z-bomhei->unk8.z; - dist = sqrtf((dx*dx)+(dz*dz)); - if(vel < dist) { - dx = vel*(dx/dist); - dz = vel*(dz/dist); + dx = bomhei->unk14.x - bomhei->unk8.x; + dz = bomhei->unk14.z - bomhei->unk8.z; + dist = sqrtf((dx * dx) + (dz * dz)); + if (vel < dist) { + dx = vel * (dx / dist); + dz = vel * (dz / dist); } bomhei->unk8.x += dx; bomhei->unk8.z += dz; bomhei->unk2C = fn_1_1E20(bomhei->unk2C, atan2d(dx, dz), 0.4f); bomhei->unk30 = bomhei->unk2C; - if(vel > dist) { - switch(bomhei->unk40) { + if (vel > dist) { + switch (bomhei->unk40) { case 1: case 2: bomhei->unk44 = 1; @@ -1948,30 +1955,29 @@ void fn_1_9EF4(omObjData *obj) bomhei->unk3C = 0; Hu3DMotionShiftSet(obj->model[0], obj->motion[bomhei->unk3C], 0, 8, HU3D_MOTATTR_LOOP); break; - + default: bomhei->unk44 = 3; break; } } break; - + case 1: - bomhei->unk2C = fn_1_1E20(bomhei->unk2C, atan2d(parent->unk8.x-bomhei->unk8.x, parent->unk8.z-bomhei->unk8.z), 0.05f); + bomhei->unk2C = fn_1_1E20(bomhei->unk2C, atan2d(parent->unk8.x - bomhei->unk8.x, parent->unk8.z - bomhei->unk8.z), 0.05f); bomhei->unk30 = bomhei->unk2C; - parent->unk2C = fn_1_1E20(parent->unk2C, atan2d(bomhei->unk8.x-parent->unk8.x, bomhei->unk8.z-parent->unk8.z), 0.05f); + parent->unk2C = fn_1_1E20(parent->unk2C, atan2d(bomhei->unk8.x - parent->unk8.x, bomhei->unk8.z - parent->unk8.z), 0.05f); parent->unk30 = parent->unk2C; bomhei->unk34++; - if(180.0f < bomhei->unk34) { + if (180.0f < bomhei->unk34) { bomhei->unk44 = 3; - if(bomhei->unk40 == 2) { + if (bomhei->unk40 == 2) { bomhei->unk44 = 2; } } break; - - case 2: - { + + case 2: { Vec temp = parent->unk8; float tempAngle = parent->unk2C; parent->unk20 = parent->unk8; @@ -1982,40 +1988,39 @@ void fn_1_9EF4(omObjData *obj) bomhei->unk30 = tempAngle; bomhei->unk34 = 0; bomhei->unk44 = 3; - } - break; - + } break; + case 3: - bomhei->unk30 = fn_1_1E20(bomhei->unk30, atan2d(bomhei->unk20.x-bomhei->unk14.x, bomhei->unk20.z-bomhei->unk14.z), 0.2f); + bomhei->unk30 = fn_1_1E20(bomhei->unk30, atan2d(bomhei->unk20.x - bomhei->unk14.x, bomhei->unk20.z - bomhei->unk14.z), 0.2f); bomhei->unk2C = bomhei->unk30; - bomhei->unk8.x += vel*sind(bomhei->unk30); - bomhei->unk8.z += vel*cosd(bomhei->unk30); - if(bomhei->unk3C != 1) { + bomhei->unk8.x += vel * sind(bomhei->unk30); + bomhei->unk8.z += vel * cosd(bomhei->unk30); + if (bomhei->unk3C != 1) { bomhei->unk3C = 1; Hu3DMotionShiftSet(obj->model[0], obj->motion[bomhei->unk3C], 0, 8, HU3D_MOTATTR_LOOP); } parent->unk2C = fn_1_1E20(parent->unk2C, atan2d(-parent->unk8.x, -parent->unk8.z), 0.05f); bomhei->unk34++; - if(bomhei->unk40 == 2 && 60.0f < bomhei->unk34) { - dx = parent->unk20.x-parent->unk8.x; - dz = parent->unk20.z-parent->unk8.z; - dist = sqrtf((dx*dx)+(dz*dz)); - if(vel < dist) { - dx = vel*(dx/dist); - dz = vel*(dz/dist); + if (bomhei->unk40 == 2 && 60.0f < bomhei->unk34) { + dx = parent->unk20.x - parent->unk8.x; + dz = parent->unk20.z - parent->unk8.z; + dist = sqrtf((dx * dx) + (dz * dz)); + if (vel < dist) { + dx = vel * (dx / dist); + dz = vel * (dz / dist); } parent->unk8.x += dx; parent->unk8.z += dz; state = 0; - if(0.0f < dist) { + if (0.0f < dist) { state = 1; } - if(state != parent->unk3C) { + if (state != parent->unk3C) { parent->unk3C = state; Hu3DMotionShiftSet(parent->unk0->model[0], parent->unk0->motion[parent->unk3C], 0, 8, HU3D_MOTATTR_LOOP); } } - if(1750 < VECMagXZ(&bomhei->unk8)) { + if (1750 < VECMagXZ(&bomhei->unk8)) { parent->unk4 = NULL; Hu3DModelAttrSet(obj->model[0], HU3D_ATTR_DISPOFF); fn_1_24(0x1000, obj->model[0]); @@ -2026,9 +2031,9 @@ void fn_1_9EF4(omObjData *obj) } omSetTra(obj, bomhei->unk8.x, bomhei->unk8.y, bomhei->unk8.z); omSetRot(obj, 0, bomhei->unk2C, 0); - if(bomhei->unk38) { + if (bomhei->unk38) { bomhei->unk38 = 0; - Hu3DMotionTimeSet(obj->model[0], Hu3DMotionMaxTimeGet(obj->model[0])*frandf()); + Hu3DMotionTimeSet(obj->model[0], Hu3DMotionMaxTimeGet(obj->model[0]) * frandf()); Hu3DModelAttrReset(obj->model[0], HU3D_ATTR_DISPOFF); } } @@ -2037,43 +2042,44 @@ s32 fn_1_ADDC(WorkBomhei2 *parent, WorkBomhei2 *bomhei) { parent->unk4 = bomhei->unk0; bomhei->unk4 = parent->unk0; - bomhei->unk40 = frandmod(3); + bomhei->unk40 = frandmod(3); bomhei->unk44 = 0; - bomhei->unk14.x = 750.0f*((0 > parent->unk8.x) ? -1 : 1); - bomhei->unk14.z = 750.0f*((0 > parent->unk8.z) ? -1 : 1); - if(lbl_1_bss_204 & 0x1) { - bomhei->unk8.x = 1400.0f*((0 > parent->unk8.x) ? -1 : 1); - bomhei->unk8.z = 750.0f*((0 > parent->unk8.z) ? -1 : 1); - bomhei->unk20.x = 750.0f*((0 > parent->unk8.x) ? -1 : 1); - bomhei->unk20.z = 1400.0f*((0 > parent->unk8.z) ? -1 : 1); - } else { - bomhei->unk8.x = 750.0f*((0 > parent->unk8.x) ? -1 : 1); - bomhei->unk8.z = 1400.0f*((0 > parent->unk8.z) ? -1 : 1); - bomhei->unk20.x = 1400.0f*((0 > parent->unk8.x) ? -1 : 1); - bomhei->unk20.z = 750.0f*((0 > parent->unk8.z) ? -1 : 1); + bomhei->unk14.x = 750.0f * ((0 > parent->unk8.x) ? -1 : 1); + bomhei->unk14.z = 750.0f * ((0 > parent->unk8.z) ? -1 : 1); + if (lbl_1_bss_204 & 0x1) { + bomhei->unk8.x = 1400.0f * ((0 > parent->unk8.x) ? -1 : 1); + bomhei->unk8.z = 750.0f * ((0 > parent->unk8.z) ? -1 : 1); + bomhei->unk20.x = 750.0f * ((0 > parent->unk8.x) ? -1 : 1); + bomhei->unk20.z = 1400.0f * ((0 > parent->unk8.z) ? -1 : 1); } - bomhei->unk2C = atan2d(bomhei->unk14.x-bomhei->unk8.x, bomhei->unk14.z-bomhei->unk8.z); + else { + bomhei->unk8.x = 750.0f * ((0 > parent->unk8.x) ? -1 : 1); + bomhei->unk8.z = 1400.0f * ((0 > parent->unk8.z) ? -1 : 1); + bomhei->unk20.x = 1400.0f * ((0 > parent->unk8.x) ? -1 : 1); + bomhei->unk20.z = 750.0f * ((0 > parent->unk8.z) ? -1 : 1); + } + bomhei->unk2C = atan2d(bomhei->unk14.x - bomhei->unk8.x, bomhei->unk14.z - bomhei->unk8.z); bomhei->unk30 = bomhei->unk2C; } void fn_1_B234(omObjData *obj) { WorkBomhei2 *bomhei = obj->data; - if(NULL == bomhei->unk4) { + if (NULL == bomhei->unk4) { bomhei->unk2C = atan2d(-bomhei->unk8.x, -bomhei->unk8.z); bomhei->unk48--; - if(0.0f > bomhei->unk48) { + if (0.0f > bomhei->unk48) { WorkBomhei2 *bomheiNew; - bomhei->unk48 = frandmod(1200)+300; + bomhei->unk48 = frandmod(1200) + 300; bomheiNew = fn_1_9CAC(fn_1_9EF4, 102); fn_1_ADDC(bomhei, bomheiNew); } } omSetTra(obj, bomhei->unk8.x, bomhei->unk8.y, bomhei->unk8.z); omSetRot(obj, 0, bomhei->unk2C, 0); - if(bomhei->unk38) { + if (bomhei->unk38) { bomhei->unk38 = 0; - Hu3DMotionTimeSet(obj->model[0], Hu3DMotionMaxTimeGet(obj->model[0])*frandf()); + Hu3DMotionTimeSet(obj->model[0], Hu3DMotionMaxTimeGet(obj->model[0]) * frandf()); Hu3DModelAttrReset(obj->model[0], HU3D_ATTR_DISPOFF); } } @@ -2082,15 +2088,15 @@ void fn_1_D70C(omObjData *obj); void fn_1_BA2C(omObjData *obj) { - if(omSysExitReq) { + if (omSysExitReq) { fn_1_1F58(-1); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); obj->func = fn_1_D70C; } lbl_1_bss_204++; - switch(obj->work[0]) { + switch (obj->work[0]) { case 1000: - if(!WipeStatGet()) { + if (!WipeStatGet()) { Vec dir; obj->work[0]++; lbl_1_bss_1C = 0; @@ -2100,61 +2106,63 @@ void fn_1_BA2C(omObjData *obj) VECNormalize(&dir, &dir); HuAudFXListnerSetEX(&lbl_1_bss_220, &dir, 14000.0, 36000.0, 1000.0, 300.0, 300.0); } - + break; - + case 1001: lbl_1_bss_1C++; - if(30.0f < lbl_1_bss_1C) { + if (30.0f < lbl_1_bss_1C) { obj->work[0]++; lbl_1_bss_1C = 0; } break; - + case 1002: lbl_1_bss_1C++; - fn_1_13DC(lbl_1_bss_1C/120, &lbl_1_data_D0); - if(120.0f <= lbl_1_bss_1C) { + fn_1_13DC(lbl_1_bss_1C / 120, &lbl_1_data_D0); + if (120.0f <= lbl_1_bss_1C) { obj->work[0]++; lbl_1_bss_1C = 0; fn_1_1350(&lbl_1_data_C4, &lbl_1_data_D0, &lbl_1_data_DC); } break; - + case 1003: - if(lbl_1_bss_1FA < 0) { + if (lbl_1_bss_1FA < 0) { lbl_1_bss_1FA = MGSeqStartCreate(); - } else { - if(lbl_1_bss_1F4 < 0 && (MGSeqStatGet(lbl_1_bss_1FA) & 0x10)) { + } + else { + if (lbl_1_bss_1F4 < 0 && (MGSeqStatGet(lbl_1_bss_1FA) & 0x10)) { fn_1_1F24(70); } - if(MGSeqStatGet(lbl_1_bss_1FA) == 0) { + if (MGSeqStatGet(lbl_1_bss_1FA) == 0) { obj->work[0]++; lbl_1_bss_1FA = -1; } } break; - + case 1004: lbl_1_bss_200++; fn_1_580(lbl_1_bss_1AC, 0, lbl_1_bss_200); - if(lbl_1_bss_14 || 35999 <= lbl_1_bss_200) { + if (lbl_1_bss_14 || 35999 <= lbl_1_bss_200) { obj->work[0] = 1005; lbl_1_bss_1C = 0; } fn_1_9854(); break; - + case 1005: - if(lbl_1_bss_1FA < 0) { + if (lbl_1_bss_1FA < 0) { lbl_1_bss_1FA = MGSeqFinishCreate(); fn_1_1F58(100); mgRecordExtra = lbl_1_bss_200; - } else { + } + else { lbl_1_bss_1C++; - if(60.0f < lbl_1_bss_1C && !MGSeqStatGet(lbl_1_bss_1FA)) { + if (60.0f < lbl_1_bss_1C && !MGSeqStatGet(lbl_1_bss_1FA)) { obj->work[0] = 1007; - if(lbl_1_bss_1FC < lbl_1_bss_200) { + if (lbl_1_bss_1FC < lbl_1_bss_200) { obj->work[0] = 1006; fn_1_798(13); } @@ -2163,29 +2171,30 @@ void fn_1_BA2C(omObjData *obj) } } break; - + case 1006: - if(lbl_1_bss_1FA < 0) { + if (lbl_1_bss_1FA < 0) { lbl_1_bss_1FA = MGSeqRecordCreate(lbl_1_bss_1FC); - } else { - if(!MGSeqStatGet(lbl_1_bss_1FA)) { + } + else { + if (!MGSeqStatGet(lbl_1_bss_1FA)) { obj->work[0]++; lbl_1_bss_1C = 0; lbl_1_bss_1FA = -1; } } break; - + case 1007: lbl_1_bss_1C++; - if(210.0f < lbl_1_bss_1C) { + if (210.0f < lbl_1_bss_1C) { fn_1_1F58(-1); lbl_1_bss_1FA = -1; WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); obj->func = fn_1_D70C; } break; - + default: OSReport("*** main mode error(%d)!!\n", obj->work[0]); break; @@ -2196,23 +2205,23 @@ void fn_1_BA2C(omObjData *obj) void fn_1_C970(omObjData *obj) { s32 i; - obj->model[0] = Hu3DModelCreateFile(0x5A0000); - Hu3DModelAttrSet(obj->model[0], HU3D_ATTR_NOCULL|HU3D_ATTR_DISPOFF); + obj->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M461, 0x00)); + Hu3DModelAttrSet(obj->model[0], HU3D_ATTR_NOCULL | HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(obj->model[0], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(obj->model[0], 0); Hu3DModelShadowMapSet(obj->model[0]); omSetTra(obj, 0, 0, 0); omSetRot(obj, 0, 0, 0); - obj->model[1] = Hu3DModelCreateFile(0x5A0001); - Hu3DModelAttrSet(obj->model[1], HU3D_ATTR_NOCULL|HU3D_ATTR_DISPOFF); + obj->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M461, 0x01)); + Hu3DModelAttrSet(obj->model[1], HU3D_ATTR_NOCULL | HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(obj->model[1], HU3D_MOTATTR_PAUSE); Hu3DModelLayerSet(obj->model[1], 1); Hu3DModelShadowSet(obj->model[1]); Hu3DModelPosSet(obj->model[1], 0, 0, 0); Hu3DModelRotSet(obj->model[1], 0, 0, 0); - fn_1_B4C(64, 0x5A0009); + fn_1_B4C(64, DATA_MAKE_NUM(DATADIR_M461, 0x09)); fn_1_9EC(); - for(i=0; i<2; i++) { + for (i = 0; i < 2; i++) { Hu3DModelAttrReset(obj->model[i], HU3D_ATTR_DISPOFF); } HuAudFXPlay(2085); @@ -2254,45 +2263,45 @@ void ObjectSetup(void) Hu3DShadowTPLvlSet(0.5f); Hu3DShadowPosSet(&lbl_1_data_104, &lbl_1_data_11C, &lbl_1_data_110); fn_1_0(); - for(i=0; i<20; i++) { + for (i = 0; i < 20; i++) { s32 modelId; lbl_1_bss_4C[i] = NULL; - modelId = Hu3DModelCreateFile(0x5A0008); + modelId = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M461, 0x08)); Hu3DModelAttrSet(modelId, HU3D_ATTR_DISPOFF); fn_1_24(12288, modelId); } - for(i=0; i<3; i++) { + for (i = 0; i < 3; i++) { lbl_1_bss_3C[i] = Hu3DModelCreateFile(lbl_1_data_1C8[i]); - Hu3DModelAttrSet(lbl_1_bss_3C[i], HU3D_ATTR_NOCULL|HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(lbl_1_bss_3C[i], HU3D_ATTR_NOCULL | HU3D_ATTR_DISPOFF); } - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { lbl_1_bss_2C[i] = Hu3DJointMotionFile(lbl_1_bss_3C[0], lbl_1_data_1D4[i]); } lbl_1_bss_28 = 0; lbl_1_bss_20 = 0; lbl_1_bss_24 = 10; - angle = 360.0f*frandf(); + angle = 360.0f * frandf(); radiusPrev = -1; - for(i=0; iunk8 = lbl_1_data_2F0[i]; bomhei2->unk2C = atan2d(-bomhei2->unk8.x, -bomhei2->unk8.z); - bomhei2->unk48 = frandmod(1200)+300; + bomhei2->unk48 = frandmod(1200) + 300; } lbl_1_bss_9C = omAddObjEx(lbl_1_bss_238, 100, 1, 5, -1, fn_1_7328); lbl_1_bss_A0 = omAddObjEx(lbl_1_bss_238, 104, 2, 0, -1, fn_1_C970); @@ -2303,18 +2312,18 @@ void ObjectSetup(void) void fn_1_D70C(omObjData *obj) { s32 i; - if(WipeStatGet()) { + if (WipeStatGet()) { return; } - if(lbl_1_bss_1FA >= 0) { + if (lbl_1_bss_1FA >= 0) { MGSeqKill(lbl_1_bss_1FA); } - if(lbl_1_bss_1F8 >= 0) { + if (lbl_1_bss_1F8 >= 0) { MGSeqKill(lbl_1_bss_1F8); } MGSeqKillAll(); HuAudAllStop(); - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { CharModelKill(lbl_1_data_0[GWPlayerCfg[i].character]); } omOvlReturnEx(1, 1); diff --git a/src/REL/mstory2Dll/board_clear.c b/src/REL/mstory2Dll/board_clear.c index 206854e1..b4013800 100644 --- a/src/REL/mstory2Dll/board_clear.c +++ b/src/REL/mstory2Dll/board_clear.c @@ -10,12 +10,13 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" #include "game/printfunc.h" #include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" -#include "game/pad.h" -#include "game/objsub.h" + typedef struct { /* 0x000 */ s32 unk00; @@ -42,17 +43,17 @@ void fn_1_C858(void); void fn_1_CCCC(int arg0, int arg1, int arg2, int arg3, int arg4); void fn_1_CD78(void); void fn_1_D224(int arg0, int arg1, int arg2, int arg3, int arg4); -void fn_1_D2D0(omObjData* arg0, StructBss16C* arg1); +void fn_1_D2D0(omObjData *arg0, StructBss16C *arg1); void fn_1_D478(void); void fn_1_D764(int arg0); void fn_1_DB58(int arg0, int arg1, int arg2, int arg3, int arg4); -void fn_1_DC54(omObjData* arg0, StructBss16C* arg1); +void fn_1_DC54(omObjData *arg0, StructBss16C *arg1); void fn_1_DDC4(void); void fn_1_E1B8(void); void fn_1_E244(void); void fn_1_E334(void); -void fn_1_B37C(omObjData* arg0, StructBss16C* arg1) +void fn_1_B37C(omObjData *arg0, StructBss16C *arg1) { fn_1_BE8(30); fn_1_DB58(4, -1, 15, 1, 0); @@ -60,7 +61,7 @@ void fn_1_B37C(omObjData* arg0, StructBss16C* arg1) arg1->unk04 = NULL; } -void fn_1_B3E4(Process* arg0, s32 arg1) +void fn_1_B3E4(Process *arg0, s32 arg1) { int i; lbl_1_bss_298 = arg0; @@ -73,20 +74,19 @@ void fn_1_B3E4(Process* arg0, s32 arg1) HuPrcChildCreate(fn_1_C858, 100, 8192, 0, HuPrcCurrentGet()); HuPrcChildCreate(fn_1_CD78, 100, 8192, 0, HuPrcCurrentGet()); HuPrcChildCreate(fn_1_D478, 100, 8192, 0, HuPrcCurrentGet()); - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { HuPrcChildCreate(fn_1_DDC4, 100, 8192, 0, HuPrcCurrentGet()); } HuPrcChildCreate(fn_1_C4C0, 100, 8192, 0, HuPrcCurrentGet()); - } void fn_1_B518(omObjData *object) { - if(object->work[2]) { + if (object->work[2]) { object->work[2]--; return; } - if(object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + if (object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { fn_1_1DFC(object, 1, object->work[1], 15, 1); object->work[0] = object->work[1] = object->work[2] = 0; } @@ -98,42 +98,47 @@ void fn_1_B5A4(void) int posY = 40; GXColor winColor = { 0, 0, 128, 128 }; int i; - while(1) { + while (1) { fn_1_BC8(); printWin(posX, posY, 220, 160, &winColor); - if(lbl_1_bss_3B4.unk04 == NULL) { + if (lbl_1_bss_3B4.unk04 == NULL) { print8(posX, posY, 1, "PROC_MAIN -> FALSE"); - } else { + } + else { print8(posX, posY, 1, "PROC_MAIN -> TRUE"); } - if(lbl_1_bss_38C.unk04 == NULL) { - print8(posX, posY+10, 1, "PROC_MAP -> FALSE"); - } else { - print8(posX, posY+10, 1, "PROC_MAP -> TRUE"); + if (lbl_1_bss_38C.unk04 == NULL) { + print8(posX, posY + 10, 1, "PROC_MAP -> FALSE"); } - if(lbl_1_bss_364.unk04 == NULL) { - print8(posX, posY+20, 1, "PROC_KOOPA -> FALSE"); - } else { - print8(posX, posY+20, 1, "PROC_KOOPA -> TRUE"); + else { + print8(posX, posY + 10, 1, "PROC_MAP -> TRUE"); } - if(lbl_1_bss_33C.unk04 == NULL) { - print8(posX, posY+30, 1, "PROC_MKOOPA -> FALSE"); - } else { - print8(posX, posY+30, 1, "PROC_MKOOPA -> TRUE"); + if (lbl_1_bss_364.unk04 == NULL) { + print8(posX, posY + 20, 1, "PROC_KOOPA -> FALSE"); } - for(i=0; i<4; i++) { - if(lbl_1_bss_29C[i].unk04 == NULL) { - print8(posX, posY+40+(i*10), 1, "PROC_PLAYER%d -> FALSE", i); - } else { - print8(posX, posY+40+(i*10), 1, "PROC_PLAYER%d -> TRUE", i); + else { + print8(posX, posY + 20, 1, "PROC_KOOPA -> TRUE"); + } + if (lbl_1_bss_33C.unk04 == NULL) { + print8(posX, posY + 30, 1, "PROC_MKOOPA -> FALSE"); + } + else { + print8(posX, posY + 30, 1, "PROC_MKOOPA -> TRUE"); + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_29C[i].unk04 == NULL) { + print8(posX, posY + 40 + (i * 10), 1, "PROC_PLAYER%d -> FALSE", i); + } + else { + print8(posX, posY + 40 + (i * 10), 1, "PROC_PLAYER%d -> TRUE", i); } } - print8(posX, posY+90, 1, "P:%d W:%d", lbl_1_bss_3DC.unk00, lbl_1_bss_3DC.unk0C); - print8(posX, posY+110, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); - for(i=0; i<4; i++) { - print8(posX, posY+120+(i*10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_3DC.unk30[i].unk00, lbl_1_bss_3DC.unk30[i].unk04, lbl_1_bss_3DC.unk30[i].unk08, lbl_1_bss_3DC.unk30[i].unk0C, lbl_1_bss_3DC.unk30[i].unk14, lbl_1_bss_3DC.unk30[i].unk10); + print8(posX, posY + 90, 1, "P:%d W:%d", lbl_1_bss_3DC.unk00, lbl_1_bss_3DC.unk0C); + print8(posX, posY + 110, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(posX, posY + 120 + (i * 10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_3DC.unk30[i].unk00, lbl_1_bss_3DC.unk30[i].unk04, + lbl_1_bss_3DC.unk30[i].unk08, lbl_1_bss_3DC.unk30[i].unk0C, lbl_1_bss_3DC.unk30[i].unk14, lbl_1_bss_3DC.unk30[i].unk10); } - } } @@ -152,15 +157,15 @@ void fn_1_B9E0(void) lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk04 = (void *)fn_1_DC54; fn_1_3854(&lbl_1_bss_24); fn_1_2750(fn_1_E244); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk04 == NULL) { + if (lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk04 == NULL) { break; } } - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_33C.unk04 == NULL) { + if (lbl_1_bss_33C.unk04 == NULL) { break; } } @@ -181,8 +186,8 @@ void fn_1_BA90(void) fn_1_1A94(lbl_1_bss_3DC.unk04); HuAudSeqFadeOut(lbl_1_bss_78[0], 1000); fn_1_BE8(60); - for(i=0; i<4; i++) { - if(lbl_1_bss_3DC.unk30[i].unk00 != lbl_1_bss_3DC.unk30[lbl_1_bss_3DC.unk00].unk00) { + for (i = 0; i < 4; i++) { + if (lbl_1_bss_3DC.unk30[i].unk00 != lbl_1_bss_3DC.unk30[lbl_1_bss_3DC.unk00].unk00) { Hu3DModelAttrSet(lbl_1_bss_29C[i].unk00->model[1], 1); } Hu3DModelAttrSet(lbl_1_bss_29C[i].unk00->model[2], 1); @@ -236,9 +241,9 @@ void fn_1_BF48(void) int padNo; WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); - while(1) { + while (1) { fn_1_BC8(); - if(!WipeStatGet()) { + if (!WipeStatGet()) { break; } } @@ -253,14 +258,14 @@ void fn_1_BF48(void) GWPlayerCfg[0].pad_idx = padNo; GWPlayerCfg[0].group = 0; GWPlayerCfg[0].iscom = FALSE; - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { GWPlayer[i].character = GWPlayerCfg[i].character; GWPlayer[i].port = GWPlayerCfg[i].pad_idx; GWPlayer[i].com = GWPlayerCfg[i].iscom; GWPlayer[i].team = GWPlayerCfg[i].group; } GWPlayerCfg[1].character = 8; - for(i=1; i<4; i++) { + for (i = 1; i < 4; i++) { GWPlayerCfg[i].iscom = GWPlayerCfg[i].group = 1; } his = omOvlHisGet(0); @@ -269,14 +274,14 @@ void fn_1_BF48(void) HuAudSStreamAllFadeOut(1000); GWSystem.mg_type = -1; GWMGAvailSet(450); - GWSystem.mg_next = 450-401; + GWSystem.mg_next = 450 - 401; omOvlCallEx(OVL_M450, 1, 0, 0); - while(1) { + while (1) { fn_1_BC8(); } } -void fn_1_C270(omObjData* arg0, StructBss16C* arg1) +void fn_1_C270(omObjData *arg0, StructBss16C *arg1) { int temp = 0; fn_1_B984(); @@ -293,9 +298,9 @@ void fn_1_C4C0(void) lbl_1_bss_3B4.unk00 = obj = omAddObjEx(lbl_1_bss_298, 256, 16, 16, -1, NULL); lbl_1_bss_3B4.unk04 = (void *)fn_1_C270; lbl_1_bss_3B4.unk00->data = &lbl_1_bss_3B4; - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_3B4.unk04 != NULL) { + if (lbl_1_bss_3B4.unk04 != NULL) { lbl_1_bss_3B4.unk04(obj, &lbl_1_bss_3B4); } } @@ -324,10 +329,10 @@ void fn_1_C574(omObjData *object) fn_1_1DFC(object, 6, 6, 0, 2); } -void fn_1_C79C(omObjData* arg0, StructBss16C* arg1) +void fn_1_C79C(omObjData *arg0, StructBss16C *arg1) { Hu3DData[arg0->model[5]].pos.y = fn_1_B08(80, 90, arg1->unk08++, 360); - if(arg1->unk08 >= 360) { + if (arg1->unk08 >= 360) { arg1->unk08 = 0; } } @@ -339,9 +344,9 @@ void fn_1_C858(void) lbl_1_bss_38C.unk04 = (void *)fn_1_C79C; lbl_1_bss_38C.unk00->data = &lbl_1_bss_38C; fn_1_C574(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_38C.unk04 != NULL) { + if (lbl_1_bss_38C.unk04 != NULL) { lbl_1_bss_38C.unk04(obj, &lbl_1_bss_38C); } } @@ -365,12 +370,12 @@ void fn_1_CB0C(omObjData *object) void fn_1_CCCC(int arg0, int arg1, int arg2, int arg3, int arg4) { fn_1_1DFC(lbl_1_bss_364.unk00, 1, arg0, arg2, arg3); - if(arg3 == 1) { + if (arg3 == 1) { arg4 = 0; } lbl_1_bss_364.unk00->work[0] = arg4; lbl_1_bss_364.unk00->work[1] = arg1; - lbl_1_bss_364.unk00->work[2] = arg2+1; + lbl_1_bss_364.unk00->work[2] = arg2 + 1; } void fn_1_CD78(void) @@ -380,15 +385,16 @@ void fn_1_CD78(void) lbl_1_bss_364.unk04 = NULL; lbl_1_bss_364.unk00->data = &lbl_1_bss_38C; fn_1_CB0C(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_364.unk04 != NULL) { + if (lbl_1_bss_364.unk04 != NULL) { lbl_1_bss_364.unk04(obj, &lbl_1_bss_364); } - if(obj->work[0]) { - if(obj->work[2]) { + if (obj->work[0]) { + if (obj->work[2]) { obj->work[2]--; - } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { fn_1_1DFC(obj, 1, obj->work[1], 15, 1); obj->work[0] = obj->work[1] = obj->work[2] = 0; } @@ -415,25 +421,25 @@ void fn_1_D030(omObjData *object) void fn_1_D224(int arg0, int arg1, int arg2, int arg3, int arg4) { fn_1_1DFC(lbl_1_bss_33C.unk00, 1, arg0, arg2, arg3); - if(arg3 == 1) { + if (arg3 == 1) { arg4 = 0; } lbl_1_bss_33C.unk00->work[0] = arg4; lbl_1_bss_33C.unk00->work[1] = arg1; - lbl_1_bss_33C.unk00->work[2] = arg2+1; + lbl_1_bss_33C.unk00->work[2] = arg2 + 1; } -void fn_1_D2D0(omObjData* arg0, StructBss16C* arg1) +void fn_1_D2D0(omObjData *arg0, StructBss16C *arg1) { int i; - for(i=0; i<15; i++) { + for (i = 0; i < 15; i++) { fn_1_BC8(); Hu3DData[arg0->model[1]].rot.y = fn_1_864(0, 135, i, 15); } arg1->unk04 = NULL; } -void fn_1_D394(omObjData* arg0, StructBss16C* arg1) +void fn_1_D394(omObjData *arg0, StructBss16C *arg1) { Vec pos = { -120, 0, 800 }; fn_1_1DFC(arg0, 1, 2, 15, 1); @@ -449,15 +455,16 @@ void fn_1_D478(void) lbl_1_bss_33C.unk04 = NULL; lbl_1_bss_33C.unk00->data = &lbl_1_bss_33C; fn_1_D030(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_33C.unk04 != NULL) { + if (lbl_1_bss_33C.unk04 != NULL) { lbl_1_bss_33C.unk04(obj, &lbl_1_bss_33C); } - if(obj->work[0]) { - if(obj->work[2]) { + if (obj->work[0]) { + if (obj->work[2]) { obj->work[2]--; - } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { fn_1_1DFC(obj, 1, obj->work[1], 15, 1); obj->work[0] = obj->work[1] = obj->work[2] = 0; } @@ -470,20 +477,20 @@ void fn_1_D764(int arg0) int i; int order[4]; order[0] = 0; - for(i=1; i<4; i++) { - order[i] = order[i-1]+1; - if(order[i] >= 4) { + for (i = 1; i < 4; i++) { + order[i] = order[i - 1] + 1; + if (order[i] >= 4) { order[i] = 0; } - if(arg0 == order[i]) { + if (arg0 == order[i]) { lbl_1_bss_3DC.unk00 = i; } } - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { fn_1_357C(&lbl_1_bss_3DC.unk30[i], order[i]); } - for(i=0; i<4; i++) { - lbl_1_bss_3DC.unk30[i].unk18 = GWPlayer[order[i]].rank+1; + for (i = 0; i < 4; i++) { + lbl_1_bss_3DC.unk30[i].unk18 = GWPlayer[order[i]].rank + 1; } } @@ -499,20 +506,22 @@ void fn_1_D898(omObjData *object, int player) int playerNo = player; int charNo = lbl_1_bss_3DC.unk30[playerNo].unk10; object->model[1] = CharModelCreate(charNo, 4); - object->motion[1] = CharModelMotionCreate(charNo, 0x5F0000); - object->motion[2] = CharModelMotionCreate(charNo, 0x5F0003); - object->motion[3] = CharModelMotionCreate(charNo, 0x5F0005); - object->motion[4] = CharModelMotionCreate(charNo, 0x5F001A); - object->motion[5] = CharModelMotionCreate(charNo, 0x5F006D); + object->motion[1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + object->motion[2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03)); + object->motion[3] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05)); + object->motion[4] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1A)); + object->motion[5] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x6D)); CharModelMotionDataClose(charNo); - Hu3DModelPosSet(object->model[1], lbl_1_data_668[playerNo].x, lbl_1_data_668[lbl_1_bss_3DC.unk30[playerNo].unk18-1].y+90, lbl_1_data_668[playerNo].z); + Hu3DModelPosSet( + object->model[1], lbl_1_data_668[playerNo].x, lbl_1_data_668[lbl_1_bss_3DC.unk30[playerNo].unk18 - 1].y + 90, lbl_1_data_668[playerNo].z); Hu3DModelRotSet(object->model[1], 0, 0, 0); Hu3DModelScaleSet(object->model[1], 1, 1, 1); Hu3DModelShadowSet(object->model[1]); fn_1_1DFC(object, 1, 1, 0, 1); object->model[2] = Hu3DModelCreateFile(0x660056); - Hu3DModelPosSet(object->model[2], lbl_1_data_668[playerNo].x, lbl_1_data_668[lbl_1_bss_3DC.unk30[playerNo].unk18-1].y, lbl_1_data_668[playerNo].z); - if(lbl_1_bss_3DC.unk30[playerNo].unk18 == 4) { + Hu3DModelPosSet( + object->model[2], lbl_1_data_668[playerNo].x, lbl_1_data_668[lbl_1_bss_3DC.unk30[playerNo].unk18 - 1].y, lbl_1_data_668[playerNo].z); + if (lbl_1_bss_3DC.unk30[playerNo].unk18 == 4) { Hu3DModelAttrSet(object->model[2], 1); } Hu3DModelScaleSet(object->model[2], 1.5, 1, 1.5); @@ -522,15 +531,15 @@ void fn_1_D898(omObjData *object, int player) void fn_1_DB58(int arg0, int arg1, int arg2, int arg3, int arg4) { fn_1_1DFC(lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk00, 1, arg0, arg2, arg3); - if(arg3 == 1) { + if (arg3 == 1) { arg4 = 0; } lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk00->work[0] = arg4; lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk00->work[1] = arg1; - lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk00->work[2] = arg2+1; + lbl_1_bss_29C[lbl_1_bss_3DC.unk00].unk00->work[2] = arg2 + 1; } -void fn_1_DC54(omObjData* arg0, StructBss16C* arg1) +void fn_1_DC54(omObjData *arg0, StructBss16C *arg1) { Vec pos = { 120, 0, 800 }; fn_1_2948(arg0, 1, pos, -1, 30, 10); @@ -550,15 +559,16 @@ void fn_1_DDC4(void) lbl_1_bss_29C[playerNo].unk04 = NULL; lbl_1_bss_29C[playerNo].unk00->data = &lbl_1_bss_29C[0]; fn_1_D898(obj, playerNo); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_29C[playerNo].unk04 != NULL) { + if (lbl_1_bss_29C[playerNo].unk04 != NULL) { lbl_1_bss_29C[playerNo].unk04(obj, &lbl_1_bss_29C[playerNo]); } - if(obj->work[0]) { - if(obj->work[2]) { + if (obj->work[0]) { + if (obj->work[2]) { obj->work[2]--; - } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { fn_1_1DFC(obj, 1, obj->work[1], 15, 1); obj->work[0] = obj->work[1] = obj->work[2] = 0; } @@ -596,7 +606,7 @@ void fn_1_E334(void) { StructBss24 *work = &lbl_1_bss_24; StructBss24 temp; - if(work->unk40 == 50) { + if (work->unk40 == 50) { fn_1_1DFC(lbl_1_bss_38C.unk00, 5, 5, 0, 0); fn_1_1DFC(lbl_1_bss_38C.unk00, 6, 6, 0, 0); HuAudFXPlay(161); @@ -609,11 +619,11 @@ void fn_1_E334(void) temp.unk20.z = 0; temp.unk38 = 150; fn_1_4FEC(work, &temp, work->unk40, 180, 10); - if(work->unk40++ >= 90) { - if(work->unk40 == 91) { + if (work->unk40++ >= 90) { + if (work->unk40 == 91) { lbl_1_bss_88[0] = HuAudFXPlay(32); } - work->unk20.x = fn_1_864(work->unk20.x, -45, work->unk40-90, 90); - Hu3DData[lbl_1_bss_38C.unk00->model[5]].rot.x = fn_1_864(0, 45, work->unk40-90, 90); + work->unk20.x = fn_1_864(work->unk20.x, -45, work->unk40 - 90, 90); + Hu3DData[lbl_1_bss_38C.unk00->model[5]].rot.x = fn_1_864(0, 45, work->unk40 - 90, 90); } -} \ No newline at end of file +} diff --git a/src/REL/mstory2Dll/board_entrance.c b/src/REL/mstory2Dll/board_entrance.c index d1ac7abb..c1b93643 100644 --- a/src/REL/mstory2Dll/board_entrance.c +++ b/src/REL/mstory2Dll/board_entrance.c @@ -9,12 +9,13 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" #include "game/printfunc.h" #include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" -#include "game/pad.h" -#include "game/objsub.h" + typedef struct { /* 0x000 */ s32 unk00; @@ -38,26 +39,10 @@ Process *lbl_1_bss_C8; s32 lbl_1_bss_88[16]; s32 lbl_1_bss_78[4]; -u32 lbl_1_data_3A0[11] = { - 0x00250000, - 0x00250000, - 0x00250000, - 0x00250000, - 0x00250000, - 0x00250000, - 0x00250000, - 0x00250000, - 0x00250000, - 0x00250000, - 0x00250000 -}; +u32 lbl_1_data_3A0[11] + = { 0x00250000, 0x00250000, 0x00250000, 0x00250000, 0x00250000, 0x00250000, 0x00250000, 0x00250000, 0x00250000, 0x00250000, 0x00250000 }; -s32 lbl_1_data_3CC[2][2] = { - 20, - 70, - 1, - 1 -}; +s32 lbl_1_data_3CC[2][2] = { 20, 70, 1, 1 }; s32 lbl_1_data_3DC = -1; s32 lbl_1_data_3E0[2] = { -1, -1 }; @@ -65,11 +50,11 @@ s32 lbl_1_data_3E0[2] = { -1, -1 }; void fn_1_9768(void); void fn_1_9A10(void); void fn_1_9BD4(s32 arg0); -void fn_1_9ECC(omObjData* arg0, StructBss16C* arg1); +void fn_1_9ECC(omObjData *arg0, StructBss16C *arg1); void fn_1_9FDC(void); -void fn_1_A4A8(omObjData* arg0, StructBss16C* arg1); +void fn_1_A4A8(omObjData *arg0, StructBss16C *arg1); void fn_1_A58C(void); -void fn_1_AB10(omObjData* arg0, StructBss16C* arg1); +void fn_1_AB10(omObjData *arg0, StructBss16C *arg1); void fn_1_AE5C(void); void fn_1_B1C0(void); @@ -78,30 +63,28 @@ void fn_1_B24C(void); void fn_1_7DB0(void) { int i; - while(1) { + while (1) { do { HuPrcVSleep(); - } while(lbl_1_data_3DC == -1 || lbl_1_data_3E0[0] == -1 || lbl_1_data_3E0[1] == -1 || lbl_1_data_3E0[0] != Hu3DMotionIDGet(lbl_1_data_3DC)); - for(i=0; i<2; i++) { - if(lbl_1_data_3CC[1][i] != -1) { - if(Hu3DMotionTimeGet(lbl_1_data_3DC) >= lbl_1_data_3CC[0][i]) { + } while (lbl_1_data_3DC == -1 || lbl_1_data_3E0[0] == -1 || lbl_1_data_3E0[1] == -1 || lbl_1_data_3E0[0] != Hu3DMotionIDGet(lbl_1_data_3DC)); + for (i = 0; i < 2; i++) { + if (lbl_1_data_3CC[1][i] != -1) { + if (Hu3DMotionTimeGet(lbl_1_data_3DC) >= lbl_1_data_3CC[0][i]) { OSReport("KE-System TIME:%d\n", lbl_1_data_3CC[0][i]); HuAudFXPlay(81); lbl_1_data_3CC[1][i] = -1; } } } - if(Hu3DMotionTimeGet(lbl_1_data_3DC) <= 10) { - for(i=0; i<2; i++) { + if (Hu3DMotionTimeGet(lbl_1_data_3DC) <= 10) { + for (i = 0; i < 2; i++) { lbl_1_data_3CC[1][i] = 1; } } - } - } -void fn_1_7F54(Process* arg0, s32 arg1) +void fn_1_7F54(Process *arg0, s32 arg1) { lbl_1_bss_C8 = arg0; lbl_1_bss_194.unk0C = arg1; @@ -119,11 +102,11 @@ void fn_1_7F54(Process* arg0, s32 arg1) void fn_1_806C(omObjData *object) { - if(object->work[2]) { + if (object->work[2]) { object->work[2]--; return; } - if(object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + if (object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { fn_1_1DFC(object, 1, object->work[1], 15, 1); object->work[0] = object->work[1] = object->work[2] = 0; } @@ -135,44 +118,51 @@ void fn_1_80F8(void) int posY = 40; GXColor winColor = { 0, 0, 128, 128 }; int i; - while(1) { + while (1) { fn_1_BC8(); fontcolor = FONT_COLOR_WHITE; printWin(posX, posY, 220, 130, &winColor); - if(lbl_1_bss_16C.unk04 == NULL) { + if (lbl_1_bss_16C.unk04 == NULL) { print8(posX, posY, 1, "PROC_MAIN -> FALSE"); - } else { + } + else { print8(posX, posY, 1, "PROC_MAIN -> TRUE"); } - if(lbl_1_bss_144.unk04 == NULL) { - print8(posX, posY+10, 1, "PROC_MAP -> FALSE"); - } else { - print8(posX, posY+10, 1, "PROC_MAP -> TRUE"); + if (lbl_1_bss_144.unk04 == NULL) { + print8(posX, posY + 10, 1, "PROC_MAP -> FALSE"); } - if(lbl_1_bss_11C.unk04 == NULL) { - print8(posX, posY+20, 1, "PROC_PLAYER -> FALSE"); - } else { - print8(posX, posY+20, 1, "PROC_PLAYER -> TRUE"); + else { + print8(posX, posY + 10, 1, "PROC_MAP -> TRUE"); } - if(lbl_1_bss_F4.unk04 == NULL) { - print8(posX, posY+30, 1, "PROC_SUB -> FALSE"); - } else { - print8(posX, posY+30, 1, "PROC_SUB -> TRUE"); + if (lbl_1_bss_11C.unk04 == NULL) { + print8(posX, posY + 20, 1, "PROC_PLAYER -> FALSE"); } - if(lbl_1_bss_CC.unk04 == NULL) { - print8(posX, posY+40, 1, "PROC_KOOPA -> FALSE"); - } else { - print8(posX, posY+40, 1, "PROC_KOOPA -> TRUE"); + else { + print8(posX, posY + 20, 1, "PROC_PLAYER -> TRUE"); } - - print8(posX, posY+60, 1, "P:%d W:%d", lbl_1_bss_194.unk00, lbl_1_bss_194.unk0C); - print8(posX, posY+80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); - for(i=0; i<4; i++) { - print8(posX, posY+90+(i*10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_194.unk30[i].unk00, lbl_1_bss_194.unk30[i].unk04, lbl_1_bss_194.unk30[i].unk08, lbl_1_bss_194.unk30[i].unk0C, lbl_1_bss_194.unk30[i].unk14, lbl_1_bss_194.unk30[i].unk10); + if (lbl_1_bss_F4.unk04 == NULL) { + print8(posX, posY + 30, 1, "PROC_SUB -> FALSE"); } - if(HuPadBtnDown[0] & PAD_BUTTON_X) { + else { + print8(posX, posY + 30, 1, "PROC_SUB -> TRUE"); + } + if (lbl_1_bss_CC.unk04 == NULL) { + print8(posX, posY + 40, 1, "PROC_KOOPA -> FALSE"); + } + else { + print8(posX, posY + 40, 1, "PROC_KOOPA -> TRUE"); + } + + print8(posX, posY + 60, 1, "P:%d W:%d", lbl_1_bss_194.unk00, lbl_1_bss_194.unk0C); + print8(posX, posY + 80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(posX, posY + 90 + (i * 10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_194.unk30[i].unk00, lbl_1_bss_194.unk30[i].unk04, + lbl_1_bss_194.unk30[i].unk08, lbl_1_bss_194.unk30[i].unk0C, lbl_1_bss_194.unk30[i].unk14, lbl_1_bss_194.unk30[i].unk10); + } + if (HuPadBtnDown[0] & PAD_BUTTON_X) { fn_1_7384(lbl_1_bss_11C.unk00->model[1], lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk10, 30, 120, TRUE); - } else if(HuPadBtnDown[0] & PAD_BUTTON_Y) { + } + else if (HuPadBtnDown[0] & PAD_BUTTON_Y) { fn_1_7384(lbl_1_bss_11C.unk00->model[1], lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk10, 30, 120, FALSE); } } @@ -200,10 +190,10 @@ void fn_1_85DC(void) fn_1_1DFC(lbl_1_bss_144.unk00, 2, 2, 0, 0); do { fn_1_BC8(); - } while(lbl_1_bss_11C.unk04 != NULL); + } while (lbl_1_bss_11C.unk04 != NULL); do { fn_1_BC8(); - } while(lbl_1_bss_F4.unk04 != NULL); + } while (lbl_1_bss_F4.unk04 != NULL); lbl_1_bss_194.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_194.unk0C); HuAudFXPlay(lbl_1_data_0[0][2]); fn_1_1DFC(lbl_1_bss_F4.unk00, 1, 3, 5, 1); @@ -227,17 +217,17 @@ void fn_1_87D4(void) fn_1_BC8(); Hu3DMotionTimeSet(lbl_1_bss_CC.unk00->model[1], 100); Hu3DModelAttrReset(lbl_1_bss_CC.unk00->model[1], 1); - while(1) { + while (1) { fn_1_BC8(); - if(Hu3DMotionTimeGet(lbl_1_bss_CC.unk00->model[1]) >= 132) { + if (Hu3DMotionTimeGet(lbl_1_bss_CC.unk00->model[1]) >= 132) { break; } } fn_1_1DFC(lbl_1_bss_F4.unk00, 1, 4, 0, 0); fn_1_BC8(); - while(1) { + while (1) { fn_1_BC8(); - if(Hu3DMotionTimeGet(lbl_1_bss_F4.unk00->model[1]) >= 5) { + if (Hu3DMotionTimeGet(lbl_1_bss_F4.unk00->model[1]) >= 5) { break; } } @@ -247,8 +237,8 @@ void fn_1_87D4(void) HuAudFXPlay(156); omVibrate(lbl_1_bss_194.unk0C, 45, 12, 0); speed = 50; - for(i=0; i<60; i++) { - float weight = fn_1_B08(0, speed, i%15, 15); + for (i = 0; i < 60; i++) { + float weight = fn_1_B08(0, speed, i % 15, 15); speed = fn_1_88C(speed, 0, 30); lbl_1_bss_194.unk100 = fn_1_88C(lbl_1_bss_194.unk100, weight, 5); fn_1_BC8(); @@ -326,9 +316,9 @@ void fn_1_9034(void) fn_1_1D18(lbl_1_bss_194.unk04, 0x1F0007); fn_1_1AFC(lbl_1_bss_194.unk04, -1); fn_1_1A94(lbl_1_bss_194.unk04); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_CC.unk04 == NULL) { + if (lbl_1_bss_CC.unk04 == NULL) { break; } } @@ -349,9 +339,9 @@ void fn_1_9198(void) HuAudFXFadeOut(lbl_1_bss_88[0], 1000); WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); - while(1) { + while (1) { fn_1_BC8(); - if(!WipeStatGet()) { + if (!WipeStatGet()) { break; } } @@ -364,7 +354,7 @@ void fn_1_9198(void) omOvlGotoEx(OVL_MENT, 1, 11, 0); } -void fn_1_92BC(omObjData* arg0, StructBss16C* arg1) +void fn_1_92BC(omObjData *arg0, StructBss16C *arg1) { int temp = 0; fn_1_8580(); @@ -382,9 +372,9 @@ void fn_1_9768(void) lbl_1_bss_16C.unk00 = obj = omAddObjEx(lbl_1_bss_C8, 256, 16, 16, -1, NULL); lbl_1_bss_16C.unk04 = (void *)fn_1_92BC; lbl_1_bss_16C.unk00->data = &lbl_1_bss_16C; - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_16C.unk04 != NULL) { + if (lbl_1_bss_16C.unk04 != NULL) { lbl_1_bss_16C.unk04(obj, &lbl_1_bss_16C); } } @@ -403,10 +393,10 @@ void fn_1_981C(omObjData *object) object->model[4] = Hu3DModelCreateFile(0x660051); } -void fn_1_9954(omObjData* arg0, StructBss16C* arg1) +void fn_1_9954(omObjData *arg0, StructBss16C *arg1) { Hu3DData[arg0->model[5]].pos.y = fn_1_B08(125, 130, arg1->unk08++, 360); - if(arg1->unk08 >= 360) { + if (arg1->unk08 >= 360) { arg1->unk08 = 0; } } @@ -418,9 +408,9 @@ void fn_1_9A10(void) lbl_1_bss_144.unk04 = (void *)fn_1_9954; lbl_1_bss_144.unk00->data = &lbl_1_bss_144; fn_1_981C(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_144.unk04 != NULL) { + if (lbl_1_bss_144.unk04 != NULL) { lbl_1_bss_144.unk04(obj, &lbl_1_bss_144); } } @@ -431,16 +421,16 @@ void fn_1_9BD4(s32 arg0) int i; int order[4]; order[0] = 0; - for(i=1; i<4; i++) { - order[i] = order[i-1]+1; - if(order[i] >= 4) { + for (i = 1; i < 4; i++) { + order[i] = order[i - 1] + 1; + if (order[i] >= 4) { order[i] = 0; } - if(arg0 == order[i]) { + if (arg0 == order[i]) { lbl_1_bss_194.unk00 = i; } } - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { fn_1_357C(&lbl_1_bss_194.unk30[i], order[i]); } } @@ -449,13 +439,13 @@ void fn_1_9CB8(omObjData *object) { int charNo = lbl_1_bss_194.unk30[lbl_1_bss_194.unk00].unk10; object->model[1] = CharModelCreate(charNo, 1); - object->motion[1] = CharModelMotionCreate(charNo, 0x5F0000); - object->motion[2] = CharModelMotionCreate(charNo, 0x5F0035); - object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660018+charNo); - object->motion[7] = Hu3DJointMotionFile(object->model[1], 0x660048+charNo); - object->motion[8] = Hu3DJointMotionFile(object->model[1], 0x660040+charNo); - object->motion[9] = Hu3DJointMotionFile(object->model[1], 0x660020+charNo); - object->motion[10] = CharModelMotionCreate(charNo, 0x5F0012); + object->motion[1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + object->motion[2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x35)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660018 + charNo); + object->motion[7] = Hu3DJointMotionFile(object->model[1], 0x660048 + charNo); + object->motion[8] = Hu3DJointMotionFile(object->model[1], 0x660040 + charNo); + object->motion[9] = Hu3DJointMotionFile(object->model[1], 0x660020 + charNo); + object->motion[10] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x12)); CharModelMotionDataClose(charNo); Hu3DModelPosSet(object->model[1], 120, 0, 800); Hu3DModelRotSet(object->model[1], 0, -135, 0); @@ -464,13 +454,13 @@ void fn_1_9CB8(omObjData *object) fn_1_1DFC(object, 1, 1, 0, 1); } -void fn_1_9ECC(omObjData* arg0, StructBss16C* arg1) +void fn_1_9ECC(omObjData *arg0, StructBss16C *arg1) { int i; fn_1_1DFC(arg0, 1, 2, 0, 0); fn_1_BC8(); Hu3DMotionTimeSet(arg0->model[1], 60); - for(i=0; i<60; i++) { + for (i = 0; i < 60; i++) { fn_1_BC8(); Hu3DData[arg0->model[1]].rot.y = fn_1_864(-135, -90, i, 60); } @@ -485,12 +475,12 @@ void fn_1_9FDC(void) lbl_1_bss_11C.unk04 = NULL; lbl_1_bss_11C.unk00->data = &lbl_1_bss_11C; fn_1_9CB8(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_11C.unk04 != NULL) { + if (lbl_1_bss_11C.unk04 != NULL) { lbl_1_bss_11C.unk04(obj, &lbl_1_bss_11C); } - if(obj->work[0]) { + if (obj->work[0]) { fn_1_6704(obj); } } @@ -513,7 +503,7 @@ void fn_1_A288(omObjData *object) CharModelEffectNpcInit(object->model[1], object->motion[2], 1, 9); } -void fn_1_A4A8(omObjData* arg0, StructBss16C* arg1) +void fn_1_A4A8(omObjData *arg0, StructBss16C *arg1) { Vec pos = { -120, 0, 800 }; fn_1_1DFC(arg0, 1, 2, 15, 1); @@ -529,12 +519,12 @@ void fn_1_A58C(void) lbl_1_bss_F4.unk04 = NULL; lbl_1_bss_F4.unk00->data = &lbl_1_bss_F4; fn_1_A288(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_F4.unk04 != NULL) { + if (lbl_1_bss_F4.unk04 != NULL) { lbl_1_bss_F4.unk04(obj, &lbl_1_bss_F4); } - if(obj->work[0]) { + if (obj->work[0]) { fn_1_6704(obj); } } @@ -563,11 +553,11 @@ void fn_1_A848(omObjData *object) HuPrcChildCreate(fn_1_7DB0, 100, 8192, 0, HuPrcCurrentGet()); } -void fn_1_AB10(omObjData* arg0, StructBss16C* arg1) +void fn_1_AB10(omObjData *arg0, StructBss16C *arg1) { int i; fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 8, 15, 1); - for(i=0; i<30; i++) { + for (i = 0; i < 30; i++) { fn_1_BC8(); Hu3DData[lbl_1_bss_CC.unk00->model[1]].pos.x = fn_1_864(-120, -60, i, 30); } @@ -576,7 +566,7 @@ void fn_1_AB10(omObjData* arg0, StructBss16C* arg1) fn_1_2264(lbl_1_bss_CC.unk00, 1, 6, 15); fn_1_1DFC(lbl_1_bss_CC.unk00, 1, 7, 15, 1); fn_1_1DFC(lbl_1_bss_11C.unk00, 1, 10, 15, 1); - for(i=0; i<240; i++) { + for (i = 0; i < 240; i++) { fn_1_BC8(); Hu3DData[lbl_1_bss_CC.unk00->model[1]].pos.x = fn_1_864(-60, 540, i, 180); Hu3DData[lbl_1_bss_11C.unk00->model[1]].pos.x = fn_1_864(120, 840, i, 180); @@ -588,12 +578,12 @@ void fn_1_AB10(omObjData* arg0, StructBss16C* arg1) void fn_1_ADB0(int arg0, int arg1, int arg2, int arg3, int arg4) { fn_1_1DFC(lbl_1_bss_CC.unk00, 1, arg0, arg2, arg3); - if(arg3 == 1) { + if (arg3 == 1) { arg4 = 0; } lbl_1_bss_CC.unk00->work[0] = arg4; lbl_1_bss_CC.unk00->work[1] = arg1; - lbl_1_bss_CC.unk00->work[2] = arg2+1; + lbl_1_bss_CC.unk00->work[2] = arg2 + 1; } void fn_1_AE5C(void) @@ -603,12 +593,12 @@ void fn_1_AE5C(void) lbl_1_bss_CC.unk04 = NULL; lbl_1_bss_CC.unk00->data = &lbl_1_bss_CC; fn_1_A848(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_CC.unk04 != NULL) { + if (lbl_1_bss_CC.unk04 != NULL) { lbl_1_bss_CC.unk04(obj, &lbl_1_bss_CC); } - if(obj->work[0]) { + if (obj->work[0]) { fn_1_6704(obj); } } @@ -638,7 +628,7 @@ void fn_1_B24C(void) temp.unk20.z = 0; temp.unk38 = 1400; fn_1_42A0(work, &temp, work->unk40++, 60, 10); - if(0.0f != lbl_1_bss_194.unk100) { - work->unk08.y = 100+lbl_1_bss_194.unk100; + if (0.0f != lbl_1_bss_194.unk100) { + work->unk08.y = 100 + lbl_1_bss_194.unk100; } -} \ No newline at end of file +} diff --git a/src/REL/mstory2Dll/board_miss.c b/src/REL/mstory2Dll/board_miss.c index 45b05479..89c73938 100644 --- a/src/REL/mstory2Dll/board_miss.c +++ b/src/REL/mstory2Dll/board_miss.c @@ -10,13 +10,13 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" #include "game/printfunc.h" #include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" -#include "game/pad.h" -#include "game/objsub.h" -#include "game/board/main.h" + typedef struct { /* 0x000 */ s32 unk00; @@ -59,27 +59,19 @@ s32 lbl_1_data_698[7] = { DATADIR_W10, }; -s32 lbl_1_data_6B4[8] = { - DATADIR_MARIOMDL1, - DATADIR_LUIGIMDL1, - DATADIR_PEACHMDL1, - DATADIR_YOSHIMDL1, - DATADIR_WARIOMDL1, - DATADIR_DONKEYMDL1, - DATADIR_DAISYMDL1, - DATADIR_WALUIGIMDL1 -}; +s32 lbl_1_data_6B4[8] = { DATADIR_MARIOMDL1, DATADIR_LUIGIMDL1, DATADIR_PEACHMDL1, DATADIR_YOSHIMDL1, DATADIR_WARIOMDL1, DATADIR_DONKEYMDL1, + DATADIR_DAISYMDL1, DATADIR_WALUIGIMDL1 }; void fn_1_FDFC(void); void fn_1_10194(void); -void fn_1_106B0(omObjData* arg0, StructBss16C* arg1); +void fn_1_106B0(omObjData *arg0, StructBss16C *arg1); void fn_1_1094C(void); void fn_1_10DF4(int arg0, int arg1, int arg2, int arg3, int arg4); -void fn_1_10EA0(omObjData* arg0, StructBss16C* arg1); +void fn_1_10EA0(omObjData *arg0, StructBss16C *arg1); void fn_1_1112C(void); void fn_1_11418(int arg0); -void fn_1_11934(omObjData* arg0, StructBss16C* arg1); -void fn_1_11A98(omObjData* arg0, StructBss16C* arg1); +void fn_1_11934(omObjData *arg0, StructBss16C *arg1); +void fn_1_11A98(omObjData *arg0, StructBss16C *arg1); void fn_1_11BB0(void); void fn_1_11FD0(void); void fn_1_1205C(void); @@ -88,25 +80,25 @@ void fn_1_1218C(void); void fn_1_E570(void) { int statId = HuDataDirReadAsync(DATADIR_BOARD); - if(statId != -1) { - while(!HuDataGetAsyncStat(statId)) { + if (statId != -1) { + while (!HuDataGetAsyncStat(statId)) { HuPrcVSleep(); } } HuAR_MRAMtoARAM(DATADIR_BOARD); - while(HuARDMACheck()) { + while (HuARDMACheck()) { HuPrcVSleep(); } HuDataDirClose(DATADIR_BOARD); statId = HuDataDirReadAsync(lbl_1_data_698[GWSystem.board]); - if(statId != -1) { - while(!HuDataGetAsyncStat(statId)) { + if (statId != -1) { + while (!HuDataGetAsyncStat(statId)) { HuPrcVSleep(); } } lbl_1_bss_4E4 = TRUE; HuPrcEnd(); - while(1) { + while (1) { HuPrcVSleep(); } } @@ -119,22 +111,22 @@ void fn_1_E638(void) lbl_1_bss_4E8[0].unk10 = lbl_1_bss_688.unk30[lbl_1_bss_688.unk00].unk10; lbl_1_bss_4E8[0].unk14 = lbl_1_bss_688.unk30[lbl_1_bss_688.unk00].unk14; lbl_1_bss_4E8[0].unk08 = 0; - for(i=1; i<4; i++) { + for (i = 1; i < 4; i++) { lbl_1_bss_4E8[i].unk10 = -1; lbl_1_bss_4E8[i].unk14 = i; lbl_1_bss_4E8[i].unk08 = 1; } - for(i=1; i<4; i++) { + for (i = 1; i < 4; i++) { do { - lbl_1_bss_4E8[i].unk10 = rand8()%8; - for(j=0; j<4; j++) { - if(i != j && lbl_1_bss_4E8[j].unk10 != -1 && lbl_1_bss_4E8[i].unk10 == lbl_1_bss_4E8[j].unk10) { + lbl_1_bss_4E8[i].unk10 = rand8() % 8; + for (j = 0; j < 4; j++) { + if (i != j && lbl_1_bss_4E8[j].unk10 != -1 && lbl_1_bss_4E8[i].unk10 == lbl_1_bss_4E8[j].unk10) { break; } } - } while(j != 4); + } while (j != 4); } - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { GWPlayerCfg[i].character = lbl_1_bss_4E8[i].unk10; GWPlayerCfg[i].pad_idx = lbl_1_bss_4E8[i].unk14; GWPlayerCfg[i].group = 0; @@ -148,15 +140,7 @@ void fn_1_E638(void) void fn_1_E8EC(void) { - int ovlTbl[7] = { - OVL_W01, - OVL_W02, - OVL_W03, - OVL_W04, - OVL_W05, - OVL_W06, - OVL_W10 - }; + int ovlTbl[7] = { OVL_W01, OVL_W02, OVL_W03, OVL_W04, OVL_W05, OVL_W06, OVL_W10 }; omOvlHisData *his; WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); while (WipeStatGet()) { @@ -168,7 +152,7 @@ void fn_1_E8EC(void) omOvlHisChg(0, OVL_MSTORY3, 0, his->stat); do { fn_1_BC8(); - } while(lbl_1_bss_4E4 != 1); + } while (lbl_1_bss_4E4 != 1); CharARAMOpen(GWPlayerCfg[0].character); CharARAMOpen(GWPlayerCfg[1].character); CharARAMOpen(GWPlayerCfg[2].character); @@ -176,12 +160,12 @@ void fn_1_E8EC(void) HuAudSeqAllFadeOut(1000); HuAudSStreamAllFadeOut(1000); omOvlCallEx(ovlTbl[GWSystem.board], 1, 0, 0); - while(1) { + while (1) { fn_1_BC8(); } } -void fn_1_EA2C(Process* arg0, s32 arg1) +void fn_1_EA2C(Process *arg0, s32 arg1) { int i; lbl_1_bss_4E0 = arg0; @@ -194,7 +178,7 @@ void fn_1_EA2C(Process* arg0, s32 arg1) HuPrcChildCreate(fn_1_10194, 100, 8192, 0, HuPrcCurrentGet()); HuPrcChildCreate(fn_1_1094C, 100, 8192, 0, HuPrcCurrentGet()); HuPrcChildCreate(fn_1_1112C, 100, 8192, 0, HuPrcCurrentGet()); - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { HuPrcChildCreate(fn_1_11BB0, 100, 8192, 0, HuPrcCurrentGet()); } HuPrcChildCreate(fn_1_FDFC, 100, 8192, 0, HuPrcCurrentGet()); @@ -202,11 +186,11 @@ void fn_1_EA2C(Process* arg0, s32 arg1) void fn_1_EB60(omObjData *object) { - if(object->work[2]) { + if (object->work[2]) { object->work[2]--; return; } - if(object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + if (object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { fn_1_1DFC(object, 1, object->work[1], 15, 1); object->work[0] = object->work[1] = object->work[2] = 0; } @@ -218,40 +202,46 @@ void fn_1_EBEC(void) int posY = 40; GXColor winColor = { 0, 0, 128, 128 }; int i; - while(1) { + while (1) { fn_1_BC8(); printWin(posX, posY, 220, 160, &winColor); - if(lbl_1_bss_660.unk04 == NULL) { + if (lbl_1_bss_660.unk04 == NULL) { print8(posX, posY, 1, "PROC_MAIN -> FALSE"); - } else { + } + else { print8(posX, posY, 1, "PROC_MAIN -> TRUE"); } - if(lbl_1_bss_638.unk04 == NULL) { - print8(posX, posY+10, 1, "PROC_MAP -> FALSE"); - } else { - print8(posX, posY+10, 1, "PROC_MAP -> TRUE"); + if (lbl_1_bss_638.unk04 == NULL) { + print8(posX, posY + 10, 1, "PROC_MAP -> FALSE"); } - if(lbl_1_bss_610.unk04 == NULL) { - print8(posX, posY+20, 1, "PROC_KOOPA -> FALSE"); - } else { - print8(posX, posY+20, 1, "PROC_KOOPA -> TRUE"); + else { + print8(posX, posY + 10, 1, "PROC_MAP -> TRUE"); } - if(lbl_1_bss_5E8.unk04 == NULL) { - print8(posX, posY+30, 1, "PROC_MKOOPA -> FALSE"); - } else { - print8(posX, posY+30, 1, "PROC_MKOOPA -> TRUE"); + if (lbl_1_bss_610.unk04 == NULL) { + print8(posX, posY + 20, 1, "PROC_KOOPA -> FALSE"); } - for(i=0; i<4; i++) { - if(lbl_1_bss_548[i].unk04 == NULL) { - print8(posX, posY+40+(i*10), 1, "PROC_PLAYER%d -> FALSE", i); - } else { - print8(posX, posY+40+(i*10), 1, "PROC_PLAYER%d -> TRUE", i); + else { + print8(posX, posY + 20, 1, "PROC_KOOPA -> TRUE"); + } + if (lbl_1_bss_5E8.unk04 == NULL) { + print8(posX, posY + 30, 1, "PROC_MKOOPA -> FALSE"); + } + else { + print8(posX, posY + 30, 1, "PROC_MKOOPA -> TRUE"); + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_548[i].unk04 == NULL) { + print8(posX, posY + 40 + (i * 10), 1, "PROC_PLAYER%d -> FALSE", i); + } + else { + print8(posX, posY + 40 + (i * 10), 1, "PROC_PLAYER%d -> TRUE", i); } } - print8(posX, posY+90, 1, "P:%d W:%d", lbl_1_bss_688.unk00, lbl_1_bss_688.unk0C); - print8(posX, posY+110, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); - for(i=0; i<4; i++) { - print8(posX, posY+120+(i*10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_688.unk30[i].unk00, lbl_1_bss_688.unk30[i].unk04, lbl_1_bss_688.unk30[i].unk08, lbl_1_bss_688.unk30[i].unk0C, lbl_1_bss_688.unk30[i].unk14, lbl_1_bss_688.unk30[i].unk10); + print8(posX, posY + 90, 1, "P:%d W:%d", lbl_1_bss_688.unk00, lbl_1_bss_688.unk0C); + print8(posX, posY + 110, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(posX, posY + 120 + (i * 10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_688.unk30[i].unk00, lbl_1_bss_688.unk30[i].unk04, + lbl_1_bss_688.unk30[i].unk08, lbl_1_bss_688.unk30[i].unk0C, lbl_1_bss_688.unk30[i].unk14, lbl_1_bss_688.unk30[i].unk10); } } } @@ -269,46 +259,46 @@ void fn_1_EFCC(void) void fn_1_F028(void) { int i; - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { lbl_1_bss_548[i].unk04 = (void *)fn_1_11934; } do { fn_1_BC8(); - for(i=0; i<4; i++) { - if(lbl_1_bss_548[i].unk04 != NULL) { + for (i = 0; i < 4; i++) { + if (lbl_1_bss_548[i].unk04 != NULL) { break; } } - } while(i != 4); + } while (i != 4); lbl_1_bss_548[lbl_1_bss_688.unk00].unk04 = (void *)fn_1_11A98; fn_1_3854(&lbl_1_bss_24); fn_1_2750(fn_1_1205C); do { fn_1_BC8(); - } while(lbl_1_bss_548[lbl_1_bss_688.unk00].unk04 != NULL); + } while (lbl_1_bss_548[lbl_1_bss_688.unk00].unk04 != NULL); do { fn_1_BC8(); - } while(lbl_1_bss_5E8.unk04 != NULL); + } while (lbl_1_bss_5E8.unk04 != NULL); fn_1_BE8(30); - if(0) { - //Dummy code to stop this function from inlining + if (0) { + // Dummy code to stop this function from inlining do { fn_1_BC8(); - for(i=0; i<4; i++) { - if(lbl_1_bss_548[i].unk04 != NULL) { + for (i = 0; i < 4; i++) { + if (lbl_1_bss_548[i].unk04 != NULL) { break; } } - } while(i != 4); + } while (i != 4); lbl_1_bss_548[lbl_1_bss_688.unk00].unk04 = (void *)fn_1_11A98; fn_1_3854(&lbl_1_bss_24); fn_1_2750(fn_1_1205C); do { fn_1_BC8(); - } while(lbl_1_bss_548[lbl_1_bss_688.unk00].unk04 != NULL); + } while (lbl_1_bss_548[lbl_1_bss_688.unk00].unk04 != NULL); do { fn_1_BC8(); - } while(lbl_1_bss_5E8.unk04 != NULL); + } while (lbl_1_bss_5E8.unk04 != NULL); fn_1_BE8(30); } } @@ -363,11 +353,11 @@ void fn_1_F3D0(void) HuAudSeqFadeOut(lbl_1_bss_78[0], 1000); do { fn_1_BC8(); - } while(lbl_1_bss_5E8.unk04 != NULL); + } while (lbl_1_bss_5E8.unk04 != NULL); lbl_1_bss_610.unk04 = (void *)fn_1_106B0; do { fn_1_BC8(); - } while(lbl_1_bss_610.unk04 != NULL); + } while (lbl_1_bss_610.unk04 != NULL); fn_1_7384(lbl_1_bss_548[lbl_1_bss_688.unk00].unk00->model[1], lbl_1_bss_688.unk30[lbl_1_bss_688.unk00].unk10, 1, 20, 1); lbl_1_bss_78[1] = HuAudSeqPlay(6); fn_1_BE8(30); @@ -404,10 +394,7 @@ void fn_1_F3D0(void) fn_1_BE8(150); } -void fn_1_F838(void) -{ - -} +void fn_1_F838(void) { } void fn_1_F83C(void) { @@ -422,7 +409,7 @@ void fn_1_F83C(void) omOvlReturnEx(1, 1); } -void fn_1_F8B4(omObjData* arg0, StructBss16C* arg1) +void fn_1_F8B4(omObjData *arg0, StructBss16C *arg1) { int mode = 0; int i; @@ -430,36 +417,37 @@ void fn_1_F8B4(omObjData* arg0, StructBss16C* arg1) fn_1_F028(); fn_1_F150(); lbl_1_bss_688.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_688.unk0C); - while(1) { + while (1) { fn_1_BC8(); - if(fn_1_F22C()) { + if (fn_1_F22C()) { mode = 0; break; - } else if(fn_1_F2FC()) { + } + else if (fn_1_F2FC()) { mode = 1; break; } } - + fn_1_1A94(lbl_1_bss_688.unk04); - for(i=0; i<4; i++) { - if(lbl_1_bss_688.unk30[i].unk00 != lbl_1_bss_688.unk30[lbl_1_bss_688.unk00].unk00) { + for (i = 0; i < 4; i++) { + if (lbl_1_bss_688.unk30[i].unk00 != lbl_1_bss_688.unk30[lbl_1_bss_688.unk00].unk00) { Hu3DModelAttrSet(lbl_1_bss_548[i].unk00->model[1], 1); } Hu3DModelAttrSet(lbl_1_bss_548[i].unk00->model[2], 1); } - switch(mode) { + switch (mode) { case 0: fn_1_F3D0(); break; case 1: break; } - switch(mode) { + switch (mode) { case 0: fn_1_E8EC(); break; - + case 1: fn_1_F83C(); break; @@ -473,9 +461,9 @@ void fn_1_FDFC(void) lbl_1_bss_660.unk00 = obj = omAddObjEx(lbl_1_bss_4E0, 256, 16, 16, -1, NULL); lbl_1_bss_660.unk04 = (void *)fn_1_F8B4; lbl_1_bss_660.unk00->data = &lbl_1_bss_660; - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_660.unk04 != NULL) { + if (lbl_1_bss_660.unk04 != NULL) { lbl_1_bss_660.unk04(obj, &lbl_1_bss_660); } } @@ -504,10 +492,10 @@ void fn_1_FEB0(omObjData *object) fn_1_1DFC(object, 6, 6, 0, 2); } -void fn_1_100D8(omObjData* arg0, StructBss16C* arg1) +void fn_1_100D8(omObjData *arg0, StructBss16C *arg1) { Hu3DData[arg0->model[5]].pos.y = fn_1_B08(80, 90, arg1->unk08++, 360); - if(arg1->unk08 >= 360) { + if (arg1->unk08 >= 360) { arg1->unk08 = 0; } } @@ -519,9 +507,9 @@ void fn_1_10194(void) lbl_1_bss_638.unk04 = (void *)fn_1_100D8; lbl_1_bss_638.unk00->data = &lbl_1_bss_638; fn_1_FEB0(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_638.unk04 != NULL) { + if (lbl_1_bss_638.unk04 != NULL) { lbl_1_bss_638.unk04(obj, &lbl_1_bss_638); } } @@ -545,38 +533,38 @@ void fn_1_10448(omObjData *object) void fn_1_10604(int arg0, int arg1, int arg2, int arg3, int arg4) { fn_1_1DFC(lbl_1_bss_610.unk00, 1, arg0, arg2, arg3); - if(arg3 == 1) { + if (arg3 == 1) { arg4 = 0; } lbl_1_bss_610.unk00->work[0] = arg4; lbl_1_bss_610.unk00->work[1] = arg1; - lbl_1_bss_610.unk00->work[2] = arg2+1; + lbl_1_bss_610.unk00->work[2] = arg2 + 1; } -void fn_1_106B0(omObjData* arg0, StructBss16C* arg1) +void fn_1_106B0(omObjData *arg0, StructBss16C *arg1) { int i = 0; float speed = 50; - + HuAudFXPlay(153); fn_1_10604(2, 1, 0, 0, 1); fn_1_BE8(5); Hu3DMotionTimeSet(lbl_1_bss_610.unk00->model[1], 100); fn_1_BC8(); Hu3DModelAttrReset(arg0->model[1], 1); - while(1) { + while (1) { fn_1_BC8(); - if(Hu3DMotionTimeGet(lbl_1_bss_610.unk00->model[1]) >= 137) { + if (Hu3DMotionTimeGet(lbl_1_bss_610.unk00->model[1]) >= 137) { break; } } HuAudFXPlay(156); omVibrate(lbl_1_bss_688.unk0C, 45, 12, 0); fn_1_67D8(lbl_1_bss_548[lbl_1_bss_688.unk00].unk00, 6, 1, 5, 0); - for(i=0; i<60; i++) { + for (i = 0; i < 60; i++) { float posY; fn_1_BC8(); - posY = fn_1_B08(0, speed, i%15, 15); + posY = fn_1_B08(0, speed, i % 15, 15); speed = fn_1_88C(speed, 0, 30); lbl_1_bss_688.unk100 = fn_1_88C(lbl_1_bss_688.unk100, posY, 5); } @@ -591,15 +579,16 @@ void fn_1_1094C(void) lbl_1_bss_610.unk04 = NULL; lbl_1_bss_610.unk00->data = &lbl_1_bss_638; fn_1_10448(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_610.unk04 != NULL) { + if (lbl_1_bss_610.unk04 != NULL) { lbl_1_bss_610.unk04(obj, &lbl_1_bss_610); } - if(obj->work[0]) { - if(obj->work[2]) { + if (obj->work[0]) { + if (obj->work[2]) { obj->work[2]--; - } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { fn_1_1DFC(obj, 1, obj->work[1], 15, 1); obj->work[0] = obj->work[1] = obj->work[2] = 0; } @@ -626,15 +615,15 @@ void fn_1_10C00(omObjData *object) void fn_1_10DF4(int arg0, int arg1, int arg2, int arg3, int arg4) { fn_1_1DFC(lbl_1_bss_5E8.unk00, 1, arg0, arg2, arg3); - if(arg3 == 1) { + if (arg3 == 1) { arg4 = 0; } lbl_1_bss_5E8.unk00->work[0] = arg4; lbl_1_bss_5E8.unk00->work[1] = arg1; - lbl_1_bss_5E8.unk00->work[2] = arg2+1; + lbl_1_bss_5E8.unk00->work[2] = arg2 + 1; } -void fn_1_10EA0(omObjData* arg0, StructBss16C* arg1) +void fn_1_10EA0(omObjData *arg0, StructBss16C *arg1) { Vec pos = { -600, 0, 800 }; fn_1_1DFC(arg0, 1, 2, 15, 1); @@ -643,17 +632,17 @@ void fn_1_10EA0(omObjData* arg0, StructBss16C* arg1) arg1->unk04 = NULL; } -void fn_1_10F84(omObjData* arg0, StructBss16C* arg1) +void fn_1_10F84(omObjData *arg0, StructBss16C *arg1) { int i; - for(i=0; i<15; i++) { + for (i = 0; i < 15; i++) { fn_1_BC8(); Hu3DData[arg0->model[1]].rot.y = fn_1_864(0, 135, i, 15); } arg1->unk04 = NULL; } -void fn_1_11048(omObjData* arg0, StructBss16C* arg1) +void fn_1_11048(omObjData *arg0, StructBss16C *arg1) { Vec pos = { -120, 0, 800 }; fn_1_1DFC(arg0, 1, 2, 15, 1); @@ -669,15 +658,16 @@ void fn_1_1112C(void) lbl_1_bss_5E8.unk04 = NULL; lbl_1_bss_5E8.unk00->data = &lbl_1_bss_5E8; fn_1_10C00(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_5E8.unk04 != NULL) { + if (lbl_1_bss_5E8.unk04 != NULL) { lbl_1_bss_5E8.unk04(obj, &lbl_1_bss_5E8); } - if(obj->work[0]) { - if(obj->work[2]) { + if (obj->work[0]) { + if (obj->work[2]) { obj->work[2]--; - } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { fn_1_1DFC(obj, 1, obj->work[1], 15, 1); obj->work[0] = obj->work[1] = obj->work[2] = 0; } @@ -690,20 +680,20 @@ void fn_1_11418(int arg0) int i; int order[4]; order[0] = 0; - for(i=1; i<4; i++) { - order[i] = order[i-1]+1; - if(order[i] >= 4) { + for (i = 1; i < 4; i++) { + order[i] = order[i - 1] + 1; + if (order[i] >= 4) { order[i] = 0; } - if(arg0 == order[i]) { + if (arg0 == order[i]) { lbl_1_bss_688.unk00 = i; } } - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { fn_1_357C(&lbl_1_bss_688.unk30[i], order[i]); } - for(i=0; i<4; i++) { - lbl_1_bss_688.unk30[i].unk18 = GWPlayer[order[i]].rank+1; + for (i = 0; i < 4; i++) { + lbl_1_bss_688.unk30[i].unk18 = GWPlayer[order[i]].rank + 1; } } @@ -719,21 +709,23 @@ void fn_1_1154C(omObjData *object, int player) int playerNo = player; int charNo = lbl_1_bss_688.unk30[playerNo].unk10; object->model[1] = CharModelCreate(charNo, 4); - object->motion[1] = CharModelMotionCreate(charNo, 0x5F0000); - object->motion[2] = CharModelMotionCreate(charNo, 0x5F0003); - object->motion[3] = CharModelMotionCreate(charNo, 0x5F0005); - object->motion[4] = CharModelMotionCreate(charNo, 0x5F001A); - object->motion[5] = CharModelMotionCreate(charNo, 0x5F006D); - object->motion[6] = Hu3DJointMotionFile(object->model[1], 0x660018+charNo); + object->motion[1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + object->motion[2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x03)); + object->motion[3] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05)); + object->motion[4] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1A)); + object->motion[5] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x6D)); + object->motion[6] = Hu3DJointMotionFile(object->model[1], 0x660018 + charNo); CharModelMotionDataClose(charNo); - Hu3DModelPosSet(object->model[1], lbl_1_data_81C[playerNo].x, lbl_1_data_81C[lbl_1_bss_688.unk30[playerNo].unk18-1].y+90, lbl_1_data_81C[playerNo].z); + Hu3DModelPosSet( + object->model[1], lbl_1_data_81C[playerNo].x, lbl_1_data_81C[lbl_1_bss_688.unk30[playerNo].unk18 - 1].y + 90, lbl_1_data_81C[playerNo].z); Hu3DModelRotSet(object->model[1], 0, 0, 0); Hu3DModelScaleSet(object->model[1], 1, 1, 1); Hu3DModelShadowSet(object->model[1]); fn_1_1DFC(object, 1, 1, 0, 1); object->model[2] = Hu3DModelCreateFile(0x660056); - Hu3DModelPosSet(object->model[2], lbl_1_data_81C[playerNo].x, lbl_1_data_81C[lbl_1_bss_688.unk30[playerNo].unk18-1].y, lbl_1_data_81C[playerNo].z); - if(lbl_1_bss_688.unk30[playerNo].unk18 == 4) { + Hu3DModelPosSet( + object->model[2], lbl_1_data_81C[playerNo].x, lbl_1_data_81C[lbl_1_bss_688.unk30[playerNo].unk18 - 1].y, lbl_1_data_81C[playerNo].z); + if (lbl_1_bss_688.unk30[playerNo].unk18 == 4) { Hu3DModelAttrSet(object->model[2], 1); } Hu3DModelScaleSet(object->model[2], 1.5, 1, 1.5); @@ -743,28 +735,28 @@ void fn_1_1154C(omObjData *object, int player) void fn_1_11838(int arg0, int arg1, int arg2, int arg3, int arg4) { fn_1_1DFC(lbl_1_bss_548[lbl_1_bss_688.unk00].unk00, 1, arg0, arg2, arg3); - if(arg3 == 1) { + if (arg3 == 1) { arg4 = 0; } lbl_1_bss_548[lbl_1_bss_688.unk00].unk00->work[0] = arg4; lbl_1_bss_548[lbl_1_bss_688.unk00].unk00->work[1] = arg1; - lbl_1_bss_548[lbl_1_bss_688.unk00].unk00->work[2] = arg2+1; + lbl_1_bss_548[lbl_1_bss_688.unk00].unk00->work[2] = arg2 + 1; } -void fn_1_11934(omObjData* arg0, StructBss16C* arg1) +void fn_1_11934(omObjData *arg0, StructBss16C *arg1) { float posY = Hu3DData[arg0->model[1]].pos.y; int i; - for(i=0; i<60; i++) { + for (i = 0; i < 60; i++) { fn_1_BC8(); Hu3DData[arg0->model[1]].pos.y = fn_1_984(posY, 0, i, 60); - Hu3DData[arg0->model[2]].pos.y = fn_1_984(posY-90, -90, i, 60); + Hu3DData[arg0->model[2]].pos.y = fn_1_984(posY - 90, -90, i, 60); } Hu3DModelAttrSet(arg0->model[2], 1); arg1->unk04 = NULL; } -void fn_1_11A98(omObjData* arg0, StructBss16C* arg1) +void fn_1_11A98(omObjData *arg0, StructBss16C *arg1) { Vec pos = { 120, 0, 800 }; lbl_1_bss_5E8.unk04 = (void *)fn_1_11048; @@ -783,15 +775,16 @@ void fn_1_11BB0(void) lbl_1_bss_548[playerNo].unk04 = NULL; lbl_1_bss_548[playerNo].unk00->data = &lbl_1_bss_548[0]; fn_1_1154C(obj, playerNo); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_548[playerNo].unk04 != NULL) { + if (lbl_1_bss_548[playerNo].unk04 != NULL) { lbl_1_bss_548[playerNo].unk04(obj, &lbl_1_bss_548[playerNo]); } - if(obj->work[0]) { - if(obj->work[2]) { + if (obj->work[0]) { + if (obj->work[2]) { obj->work[2]--; - } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { fn_1_1DFC(obj, 1, obj->work[1], 15, 1); obj->work[0] = obj->work[1] = obj->work[2] = 0; } @@ -823,8 +816,8 @@ void fn_1_1205C(void) temp.unk20.z = 0; temp.unk38 = 1750; fn_1_4FEC(work, &temp, work->unk40++, 60, 30); - if(0.0f != lbl_1_bss_688.unk100) { - work->unk08.y = lbl_1_bss_688.unk100+125; + if (0.0f != lbl_1_bss_688.unk100) { + work->unk08.y = lbl_1_bss_688.unk100 + 125; } } @@ -832,7 +825,7 @@ void fn_1_1218C(void) { StructBss24 *work = &lbl_1_bss_24; StructBss24 temp; - if(work->unk40 == 50) { + if (work->unk40 == 50) { fn_1_1DFC(lbl_1_bss_638.unk00, 5, 5, 0, 0); fn_1_1DFC(lbl_1_bss_638.unk00, 6, 6, 0, 0); HuAudFXPlay(161); @@ -845,11 +838,11 @@ void fn_1_1218C(void) temp.unk20.z = 0; temp.unk38 = 125; fn_1_4FEC(work, &temp, work->unk40, 180, 10); - if(work->unk40++ >= 90) { - if(work->unk40 == 91) { + if (work->unk40++ >= 90) { + if (work->unk40 == 91) { lbl_1_bss_88[0] = HuAudFXPlay(32); } - work->unk20.x = fn_1_864(work->unk20.x, -45, work->unk40-90, 90); - Hu3DData[lbl_1_bss_638.unk00->model[5]].rot.x = fn_1_864(0, 45, work->unk40-90, 90); + work->unk20.x = fn_1_864(work->unk20.x, -45, work->unk40 - 90, 90); + Hu3DData[lbl_1_bss_638.unk00->model[5]].rot.x = fn_1_864(0, 45, work->unk40 - 90, 90); } -} \ No newline at end of file +} diff --git a/src/REL/mstory2Dll/ending.c b/src/REL/mstory2Dll/ending.c index c0c09595..5e1a9b17 100644 --- a/src/REL/mstory2Dll/ending.c +++ b/src/REL/mstory2Dll/ending.c @@ -3,19 +3,20 @@ #include "game/board/main.h" #include "game/chrman.h" #include "game/data.h" +#include "game/esprite.h" #include "game/gamework.h" #include "game/gamework_data.h" #include "game/hsfanim.h" #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" #include "game/printfunc.h" #include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" -#include "game/pad.h" -#include "game/objsub.h" -#include "game/esprite.h" + typedef struct { /* 0x000 */ s32 unk00; @@ -46,11 +47,11 @@ s32 lbl_1_data_F14 = 127; void fn_1_19F14(void); void fn_1_1A160(void); -void fn_1_1A538(omObjData* arg0, StructBss16C* arg1); +void fn_1_1A538(omObjData *arg0, StructBss16C *arg1); void fn_1_1A578(void); -void fn_1_1A9D0(omObjData* arg0, StructBss16C* arg1); +void fn_1_1A9D0(omObjData *arg0, StructBss16C *arg1); void fn_1_1AAB4(void); -void fn_1_1AFD4(omObjData* arg0, StructBss16C* arg1); +void fn_1_1AFD4(omObjData *arg0, StructBss16C *arg1); void fn_1_1B0E4(void); void fn_1_1AD3C(int arg0); void fn_1_1B318(void); @@ -60,44 +61,44 @@ void fn_1_1B430(void); void fn_1_186D0(void) { int i; - while(1) { + while (1) { HuPrcVSleep(); - if(lbl_1_data_F08 != -1 && lbl_1_data_F0C[0] != -1 && lbl_1_data_F0C[1] != -1 && lbl_1_data_F0C[0] == Hu3DMotionIDGet(lbl_1_data_F08)) { - for(i=0; i<2; i++) { - if(lbl_1_data_EF8[1][i] != -1) { - if(Hu3DMotionTimeGet(lbl_1_data_F08) >= lbl_1_data_EF8[0][i]) { + if (lbl_1_data_F08 != -1 && lbl_1_data_F0C[0] != -1 && lbl_1_data_F0C[1] != -1 && lbl_1_data_F0C[0] == Hu3DMotionIDGet(lbl_1_data_F08)) { + for (i = 0; i < 2; i++) { + if (lbl_1_data_EF8[1][i] != -1) { + if (Hu3DMotionTimeGet(lbl_1_data_F08) >= lbl_1_data_EF8[0][i]) { OSReport("KE-System TIME:%d\n", lbl_1_data_EF8[0][i]); HuAudFXPlayVol(81, lbl_1_data_F14); lbl_1_data_EF8[1][i] = -1; } } } - if(Hu3DMotionTimeGet(lbl_1_data_F08) <= 10) { - for(i=0; i<2; i++) { + if (Hu3DMotionTimeGet(lbl_1_data_F08) <= 10) { + for (i = 0; i < 2; i++) { lbl_1_data_EF8[1][i] = 1; } } } - if(lbl_1_bss_B3C == 1) { + if (lbl_1_bss_B3C == 1) { lbl_1_data_F14--; - if(lbl_1_data_F14 <= 0) { + if (lbl_1_data_F14 <= 0) { lbl_1_data_F14 = 0; } } - if(lbl_1_bss_B3C == 2) { + if (lbl_1_bss_B3C == 2) { break; } } HuPrcEnd(); - while(1) { + while (1) { HuPrcVSleep(); } } -void fn_1_188F0(Process* arg0, s32 arg1) +void fn_1_188F0(Process *arg0, s32 arg1) { lbl_1_bss_B38 = arg0; - if(GWSystem.diff_story == 2) { + if (GWSystem.diff_story == 2) { GWGameStat.field10E_bit4 = TRUE; } lbl_1_bss_C0C.unk0C = arg1; @@ -115,11 +116,11 @@ void fn_1_188F0(Process* arg0, s32 arg1) void fn_1_18A34(omObjData *object) { - if(object->work[2]) { + if (object->work[2]) { object->work[2]--; return; } - if(object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + if (object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { fn_1_1DFC(object, 1, object->work[1], 15, 1); object->work[0] = object->work[1] = object->work[2] = 0; } @@ -131,40 +132,46 @@ void fn_1_18AC0(void) int posY = 40; GXColor winColor = { 0, 0, 128, 128 }; int i; - while(1) { + while (1) { fn_1_BC8(); fontcolor = FONT_COLOR_WHITE; printWin(posX, posY, 220, 130, &winColor); - if(lbl_1_bss_BE4.unk04 == NULL) { + if (lbl_1_bss_BE4.unk04 == NULL) { print8(posX, posY, 1, "PROC_MAIN -> FALSE"); - } else { + } + else { print8(posX, posY, 1, "PROC_MAIN -> TRUE"); } - if(lbl_1_bss_BBC.unk04 == NULL) { - print8(posX, posY+10, 1, "PROC_MAP -> FALSE"); - } else { - print8(posX, posY+10, 1, "PROC_MAP -> TRUE"); + if (lbl_1_bss_BBC.unk04 == NULL) { + print8(posX, posY + 10, 1, "PROC_MAP -> FALSE"); } - if(lbl_1_bss_B94.unk04 == NULL) { - print8(posX, posY+20, 1, "PROC_PLAYER -> FALSE"); - } else { - print8(posX, posY+20, 1, "PROC_PLAYER -> TRUE"); + else { + print8(posX, posY + 10, 1, "PROC_MAP -> TRUE"); } - if(lbl_1_bss_B6C.unk04 == NULL) { - print8(posX, posY+30, 1, "PROC_SUB -> FALSE"); - } else { - print8(posX, posY+30, 1, "PROC_SUB -> TRUE"); + if (lbl_1_bss_B94.unk04 == NULL) { + print8(posX, posY + 20, 1, "PROC_PLAYER -> FALSE"); } - if(lbl_1_bss_B44.unk04 == NULL) { - print8(posX, posY+40, 1, "PROC_KOOPA -> FALSE"); - } else { - print8(posX, posY+40, 1, "PROC_KOOPA -> TRUE"); + else { + print8(posX, posY + 20, 1, "PROC_PLAYER -> TRUE"); } - - print8(posX, posY+60, 1, "P:%d W:%d", lbl_1_bss_C0C.unk00, lbl_1_bss_C0C.unk0C); - print8(posX, posY+80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); - for(i=0; i<4; i++) { - print8(posX, posY+90+(i*10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_C0C.unk30[i].unk00, lbl_1_bss_C0C.unk30[i].unk04, lbl_1_bss_C0C.unk30[i].unk08, lbl_1_bss_C0C.unk30[i].unk0C, lbl_1_bss_C0C.unk30[i].unk14, lbl_1_bss_C0C.unk30[i].unk10); + if (lbl_1_bss_B6C.unk04 == NULL) { + print8(posX, posY + 30, 1, "PROC_SUB -> FALSE"); + } + else { + print8(posX, posY + 30, 1, "PROC_SUB -> TRUE"); + } + if (lbl_1_bss_B44.unk04 == NULL) { + print8(posX, posY + 40, 1, "PROC_KOOPA -> FALSE"); + } + else { + print8(posX, posY + 40, 1, "PROC_KOOPA -> TRUE"); + } + + print8(posX, posY + 60, 1, "P:%d W:%d", lbl_1_bss_C0C.unk00, lbl_1_bss_C0C.unk0C); + print8(posX, posY + 80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(posX, posY + 90 + (i * 10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_C0C.unk30[i].unk00, lbl_1_bss_C0C.unk30[i].unk04, + lbl_1_bss_C0C.unk30[i].unk08, lbl_1_bss_C0C.unk30[i].unk0C, lbl_1_bss_C0C.unk30[i].unk14, lbl_1_bss_C0C.unk30[i].unk10); } } } @@ -211,7 +218,7 @@ void fn_1_18EC4(void) do { fn_1_BC8(); } while (WipeStatGet()); - if(0) { + if (0) { fn_1_BC8(); } } @@ -226,15 +233,15 @@ void fn_1_19138(void) fn_1_2750(fn_1_1B430); fn_1_BE8(30); fn_1_1DFC(lbl_1_bss_BBC.unk00, 2, 2, 0, 0); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_B94.unk04 == NULL) { + if (lbl_1_bss_B94.unk04 == NULL) { break; } } - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_B6C.unk04 == NULL) { + if (lbl_1_bss_B6C.unk04 == NULL) { break; } } @@ -251,16 +258,8 @@ void fn_1_19138(void) fn_1_BE8(60); } -char *lbl_1_data_10E4[8] = { - "movie/endmov_ma0.thp", - "movie/endmov_lu0.thp", - "movie/endmov_pe0.thp", - "movie/endmov_yo0.thp", - "movie/endmov_wa0.thp", - "movie/endmov_do0.thp", - "movie/endmov_da0.thp", - "movie/endmov_wl0.thp" -}; +char *lbl_1_data_10E4[8] = { "movie/endmov_ma0.thp", "movie/endmov_lu0.thp", "movie/endmov_pe0.thp", "movie/endmov_yo0.thp", "movie/endmov_wa0.thp", + "movie/endmov_do0.thp", "movie/endmov_da0.thp", "movie/endmov_wl0.thp" }; void fn_1_19334(void) { @@ -303,7 +302,7 @@ void fn_1_19334(void) lbl_1_bss_B94.unk04 = NULL; lbl_1_bss_B44.unk04 = NULL; lbl_1_bss_B6C.unk04 = NULL; - + CharModelKill(-1); Hu3DAllKill(); fn_1_BE8(60); @@ -320,7 +319,7 @@ void fn_1_19334(void) sprid = HuSprCreate(HuSprAnimRead(HuDataReadNum(0x660061, 0x10000000)), 950, 0); HuSprGrpMemberSet(gid, 2, sprid); HuSprBankSet(gid, 2, lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10); - if(GWLanguageGet() == 0 && lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10 == 5) { + if (GWLanguageGet() == 0 && lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10 == 5) { HuSprBankSet(gid, 2, 8); } HuSprPosSet(gid, 2, 288, 254); @@ -328,28 +327,28 @@ void fn_1_19334(void) HuPrcSleep(5); WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); - while(WipeStatGet()) { + while (WipeStatGet()) { HuPrcVSleep(); } - while(!HuTHPEndCheck()) { - if(time >= 3300) { + while (!HuTHPEndCheck()) { + if (time >= 3300) { HuSprAttrReset(gid, 1, HUSPR_ATTR_DISPOFF); HuSprAttrReset(gid, 2, HUSPR_ATTR_DISPOFF); - } else { + } + else { time++; } HuPrcVSleep(); } WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); - while(WipeStatGet()) { + while (WipeStatGet()) { HuPrcVSleep(); } HuTHPClose(); HuPrcVSleep(); HuSprGrpKill(gid); } - } void fn_1_199A0(void) @@ -423,13 +422,13 @@ void fn_1_19BE8(void) HuAudFadeOut(1); his = omOvlHisGet(0); omOvlHisChg(0, OVL_MSTORY2, 20, 1); - omOvlCallEx(OVL_STAFF, 1, 0, 0); - while(1) { + omOvlCallEx(OVL_STAFF, 1, 0, 0); + while (1) { fn_1_BC8(); } } -void fn_1_19C6C(omObjData* arg0, StructBss16C* arg1) +void fn_1_19C6C(omObjData *arg0, StructBss16C *arg1) { int temp = 0; fn_1_18E7C(); @@ -446,9 +445,9 @@ void fn_1_19F14(void) lbl_1_bss_BE4.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL); lbl_1_bss_BE4.unk04 = (void *)fn_1_19C6C; lbl_1_bss_BE4.unk00->data = &lbl_1_bss_BE4; - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_BE4.unk04 != NULL) { + if (lbl_1_bss_BE4.unk04 != NULL) { lbl_1_bss_BE4.unk04(obj, &lbl_1_bss_BE4); } } @@ -477,9 +476,9 @@ void fn_1_1A160(void) lbl_1_bss_BBC.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL); lbl_1_bss_BBC.unk04 = NULL; fn_1_19FC8(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_BBC.unk04 != NULL) { + if (lbl_1_bss_BBC.unk04 != NULL) { lbl_1_bss_BBC.unk04(obj, &lbl_1_bss_BBC); } } @@ -501,7 +500,7 @@ void fn_1_1A368(omObjData *object) HuPrcChildCreate(fn_1_186D0, 100, 8192, 0, HuPrcCurrentGet()); } -void fn_1_1A538(omObjData* arg0, StructBss16C* arg1) +void fn_1_1A538(omObjData *arg0, StructBss16C *arg1) { Hu3DData[lbl_1_bss_B44.unk00->model[1]].pos.z -= 2.5f; } @@ -512,12 +511,12 @@ void fn_1_1A578(void) lbl_1_bss_B44.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL); lbl_1_bss_B44.unk04 = NULL; fn_1_1A368(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_B44.unk04 != NULL) { + if (lbl_1_bss_B44.unk04 != NULL) { lbl_1_bss_B44.unk04(obj, &lbl_1_bss_B44); } - if(obj->work[0]) { + if (obj->work[0]) { fn_1_6704(obj); } } @@ -540,8 +539,7 @@ void fn_1_1A7CC(omObjData *object) CharModelEffectNpcInit(object->model[1], object->motion[2], 1, 9); } - -void fn_1_1A9D0(omObjData* arg0, StructBss16C* arg1) +void fn_1_1A9D0(omObjData *arg0, StructBss16C *arg1) { Vec pos = { -120, 0, 800 }; fn_1_1DFC(arg0, 1, 2, 15, 1); @@ -556,12 +554,12 @@ void fn_1_1AAB4(void) lbl_1_bss_B6C.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL); lbl_1_bss_B6C.unk04 = NULL; fn_1_1A7CC(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_B6C.unk04 != NULL) { + if (lbl_1_bss_B6C.unk04 != NULL) { lbl_1_bss_B6C.unk04(obj, &lbl_1_bss_B6C); } - if(obj->work[0]) { + if (obj->work[0]) { fn_1_6704(obj); } } @@ -572,16 +570,16 @@ void fn_1_1AD3C(int arg0) int i; int order[4]; order[0] = 0; - for(i=1; i<4; i++) { - order[i] = order[i-1]+1; - if(order[i] >= 4) { + for (i = 1; i < 4; i++) { + order[i] = order[i - 1] + 1; + if (order[i] >= 4) { order[i] = 0; } - if(arg0 == order[i]) { + if (arg0 == order[i]) { lbl_1_bss_C0C.unk00 = i; } } - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { fn_1_357C(&lbl_1_bss_C0C.unk30[i], order[i]); } } @@ -590,10 +588,10 @@ void fn_1_1AE20(omObjData *object) { int charNo = lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10; object->model[1] = CharModelCreate(charNo, 1); - object->motion[1] = CharModelMotionCreate(charNo, 0x5F0000); - object->motion[2] = CharModelMotionCreate(charNo, 0x5F0035); - object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660010+charNo); - object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660008+charNo); + object->motion[1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + object->motion[2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x35)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660010 + charNo); + object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660008 + charNo); CharModelMotionDataClose(charNo); Hu3DModelPosSet(object->model[1], 120, 0, 800); Hu3DModelRotSet(object->model[1], 0, -135, 0); @@ -603,13 +601,13 @@ void fn_1_1AE20(omObjData *object) fn_1_1DFC(object, 1, 1, 0, 1); } -void fn_1_1AFD4(omObjData* arg0, StructBss16C* arg1) +void fn_1_1AFD4(omObjData *arg0, StructBss16C *arg1) { int i; fn_1_1DFC(arg0, 1, 2, 0, 0); fn_1_BC8(); Hu3DMotionTimeSet(arg0->model[1], 60); - for(i=0; i<60; i++) { + for (i = 0; i < 60; i++) { fn_1_BC8(); Hu3DData[arg0->model[1]].rot.y = fn_1_864(-135, -90, i, 60); } @@ -623,12 +621,12 @@ void fn_1_1B0E4(void) lbl_1_bss_B94.unk00 = obj = omAddObjEx(lbl_1_bss_B38, 256, 16, 16, -1, NULL); lbl_1_bss_B94.unk04 = NULL; fn_1_1AE20(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_B94.unk04 != NULL) { + if (lbl_1_bss_B94.unk04 != NULL) { lbl_1_bss_B94.unk04(obj, &lbl_1_bss_B94); } - if(obj->work[0]) { + if (obj->work[0]) { fn_1_6704(obj); } } @@ -670,7 +668,7 @@ void fn_1_1B430(void) temp.unk20.z = 0; temp.unk38 = 1400; fn_1_42A0(work, &temp, work->unk40++, 60, 10); - if(0.0f != lbl_1_bss_C0C.unk100) { - work->unk08.y = 125+lbl_1_bss_C0C.unk100; + if (0.0f != lbl_1_bss_C0C.unk100) { + work->unk08.y = 125 + lbl_1_bss_C0C.unk100; } -} \ No newline at end of file +} diff --git a/src/REL/mstory2Dll/mg_clear.c b/src/REL/mstory2Dll/mg_clear.c index ddeded43..524869fe 100644 --- a/src/REL/mstory2Dll/mg_clear.c +++ b/src/REL/mstory2Dll/mg_clear.c @@ -9,70 +9,71 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" #include "game/printfunc.h" #include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" -#include "game/pad.h" -#include "game/objsub.h" + typedef struct struct_data850 { - s32 unk0; - s32 unk4; - s32 unk8; - s32 unkC; - s32 unk10; + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; } StructData850; StructData850 lbl_1_data_850[] = { - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x00), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x01), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x02), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x03), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x04), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x05), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x06), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x07), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x08), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x09), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0A), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0B), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0C), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0D), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0E), 1, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0F), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x10), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x11), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x12), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x13), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x14), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x15), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x16), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x17), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x18), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x19), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1A), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1B), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1C), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1D), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1E), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1F), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x20), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x21), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x22), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x23), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x24), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x25), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x26), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x27), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x28), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x29), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2A), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2B), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2C), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2D), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2E), 0, 0, 0, 1 }, - { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2F), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x00), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x01), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x02), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x03), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x04), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x05), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x06), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x07), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x08), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x09), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0E), 1, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x0F), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x10), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x11), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x12), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x13), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x14), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x15), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x16), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x17), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x18), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x19), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1E), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x1F), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x20), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x21), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x22), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x23), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x24), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x25), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x26), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x27), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x28), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x29), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2A), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2B), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2C), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2D), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2E), 0, 0, 0, 1 }, + { DATA_MAKE_NUM(DATADIR_MSTORY4, 0x2F), 0, 0, 0, 1 }, }; s32 lbl_1_data_C10[2][2] = { 20, 70, 1, 1 }; @@ -101,15 +102,15 @@ BOOL lbl_1_bss_794; Process *lbl_1_bss_790; void fn_1_13BB8(void); -void fn_1_13FB4(omObjData* arg0, StructBss16C* arg1); -void fn_1_140A0(omObjData* arg0, StructBss16C* arg1); +void fn_1_13FB4(omObjData *arg0, StructBss16C *arg1); +void fn_1_140A0(omObjData *arg0, StructBss16C *arg1); void fn_1_1449C(void); void fn_1_14A9C(int arg0, int arg1, int arg2, int arg3, int arg4); -void fn_1_14B48(omObjData* arg0, StructBss16C* arg1); +void fn_1_14B48(omObjData *arg0, StructBss16C *arg1); void fn_1_14C40(void); void fn_1_15134(int arg0, int arg1, int arg2, int arg3, int arg4); -void fn_1_151E0(omObjData* arg0, StructBss16C* arg1); -void fn_1_152C4(omObjData* arg0, StructBss16C* arg1); +void fn_1_151E0(omObjData *arg0, StructBss16C *arg1); +void fn_1_152C4(omObjData *arg0, StructBss16C *arg1); void fn_1_153A8(void); void fn_1_15668(int arg0); void fn_1_159F0(void); @@ -121,28 +122,28 @@ void fn_1_15F70(void); void fn_1_123C8(void) { int i; - while(1) { + while (1) { do { HuPrcVSleep(); - } while(lbl_1_data_C20 == -1 || lbl_1_data_C24[0] == -1 || lbl_1_data_C24[1] == -1 || lbl_1_data_C24[0] != Hu3DMotionIDGet(lbl_1_data_C20)); - for(i=0; i<2; i++) { - if(lbl_1_data_C10[1][i] != -1) { - if(Hu3DMotionTimeGet(lbl_1_data_C20) >= lbl_1_data_C10[0][i]) { + } while (lbl_1_data_C20 == -1 || lbl_1_data_C24[0] == -1 || lbl_1_data_C24[1] == -1 || lbl_1_data_C24[0] != Hu3DMotionIDGet(lbl_1_data_C20)); + for (i = 0; i < 2; i++) { + if (lbl_1_data_C10[1][i] != -1) { + if (Hu3DMotionTimeGet(lbl_1_data_C20) >= lbl_1_data_C10[0][i]) { OSReport("KE-System TIME:%d\n", lbl_1_data_C10[0][i]); HuAudFXPlay(81); lbl_1_data_C10[1][i] = -1; } } } - if(Hu3DMotionTimeGet(lbl_1_data_C20) <= 10) { - for(i=0; i<2; i++) { + if (Hu3DMotionTimeGet(lbl_1_data_C20) <= 10) { + for (i = 0; i < 2; i++) { lbl_1_data_C10[1][i] = 1; } } } } -void fn_1_1256C(Process* arg0, s32 arg1) +void fn_1_1256C(Process *arg0, s32 arg1) { lbl_1_bss_790 = arg0; lbl_1_bss_860.unk0C = arg1; @@ -160,11 +161,11 @@ void fn_1_1256C(Process* arg0, s32 arg1) void fn_1_12690(omObjData *object) { - if(object->work[2]) { + if (object->work[2]) { object->work[2]--; return; } - if(object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + if (object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { fn_1_1DFC(object, 1, object->work[1], 15, 1); object->work[0] = object->work[1] = object->work[2] = 0; } @@ -176,38 +177,44 @@ void fn_1_1271C(void) int posY = 40; GXColor winColor = { 0, 0, 128, 128 }; int i; - while(1) { + while (1) { fn_1_BC8(); printWin(posX, posY, 220, 130, &winColor); - if(lbl_1_bss_838.unk04 == NULL) { + if (lbl_1_bss_838.unk04 == NULL) { print8(posX, posY, 1, "PROC_MAIN -> FALSE"); - } else { + } + else { print8(posX, posY, 1, "PROC_MAIN -> TRUE"); } - if(lbl_1_bss_810.unk04 == NULL) { - print8(posX, posY+10, 1, "PROC_MAP -> FALSE"); - } else { - print8(posX, posY+10, 1, "PROC_MAP -> TRUE"); + if (lbl_1_bss_810.unk04 == NULL) { + print8(posX, posY + 10, 1, "PROC_MAP -> FALSE"); } - if(lbl_1_bss_7E8.unk04 == NULL) { - print8(posX, posY+20, 1, "PROC_KOOPA -> FALSE"); - } else { - print8(posX, posY+20, 1, "PROC_KOOPA -> TRUE"); + else { + print8(posX, posY + 10, 1, "PROC_MAP -> TRUE"); } - if(lbl_1_bss_7C0.unk04 == NULL) { - print8(posX, posY+30, 1, "PROC_MKOOPA -> FALSE"); - } else { - print8(posX, posY+30, 1, "PROC_MKOOPA -> TRUE"); + if (lbl_1_bss_7E8.unk04 == NULL) { + print8(posX, posY + 20, 1, "PROC_KOOPA -> FALSE"); } - if(lbl_1_bss_798.unk04 == NULL) { - print8(posX, posY+40, 1, "PROC_PLAYER -> FALSE"); - } else { - print8(posX, posY+40, 1, "PROC_PLAYER -> TRUE"); + else { + print8(posX, posY + 20, 1, "PROC_KOOPA -> TRUE"); } - print8(posX, posY+60, 1, "P:%d W:%d", lbl_1_bss_860.unk00, lbl_1_bss_860.unk0C); - print8(posX, posY+80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); - for(i=0; i<4; i++) { - print8(posX, posY+90+(i*10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_860.unk30[i].unk00, lbl_1_bss_860.unk30[i].unk04, lbl_1_bss_860.unk30[i].unk08, lbl_1_bss_860.unk30[i].unk0C, lbl_1_bss_860.unk30[i].unk14, lbl_1_bss_860.unk30[i].unk10); + if (lbl_1_bss_7C0.unk04 == NULL) { + print8(posX, posY + 30, 1, "PROC_MKOOPA -> FALSE"); + } + else { + print8(posX, posY + 30, 1, "PROC_MKOOPA -> TRUE"); + } + if (lbl_1_bss_798.unk04 == NULL) { + print8(posX, posY + 40, 1, "PROC_PLAYER -> FALSE"); + } + else { + print8(posX, posY + 40, 1, "PROC_PLAYER -> TRUE"); + } + print8(posX, posY + 60, 1, "P:%d W:%d", lbl_1_bss_860.unk00, lbl_1_bss_860.unk0C); + print8(posX, posY + 80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(posX, posY + 90 + (i * 10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_860.unk30[i].unk00, lbl_1_bss_860.unk30[i].unk04, + lbl_1_bss_860.unk30[i].unk08, lbl_1_bss_860.unk30[i].unk0C, lbl_1_bss_860.unk30[i].unk14, lbl_1_bss_860.unk30[i].unk10); } } } @@ -239,16 +246,16 @@ void fn_1_12B10(void) fn_1_BE8(60); fn_1_1DFC(lbl_1_bss_798.unk00, 1, 4, 15, 0); fn_1_BE8(16); - while(1) { + while (1) { fn_1_BC8(); - if(Hu3DMotionTimeGet(lbl_1_bss_798.unk00->model[1]) >= 20) { + if (Hu3DMotionTimeGet(lbl_1_bss_798.unk00->model[1]) >= 20) { break; } } Hu3DMotionSpeedSet(lbl_1_bss_798.unk00->model[1], 0); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_7E8.unk04 == NULL) { + if (lbl_1_bss_7E8.unk04 == NULL) { break; } } @@ -259,9 +266,9 @@ void fn_1_12B10(void) fn_1_BE8(80); Hu3DMotionSpeedSet(lbl_1_bss_798.unk00->model[1], 1); fn_1_1DFC(lbl_1_bss_798.unk00, 1, 1, 15, 1); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_7C0.unk04 == NULL) { + if (lbl_1_bss_7C0.unk04 == NULL) { break; } } @@ -304,20 +311,20 @@ void fn_1_12DD4(void) fn_1_1AFC(lbl_1_bss_860.unk04, -1); fn_1_1D18(lbl_1_bss_860.unk04, 0x250004); fn_1_1A94(lbl_1_bss_860.unk04); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_7C0.unk04 == NULL) { + if (lbl_1_bss_7C0.unk04 == NULL) { break; } } } -void fn_1_13150(omObjData* arg0, StructBss16C* arg1) +void fn_1_13150(omObjData *arg0, StructBss16C *arg1) { int streamNo = HuAudSStreamPlay(7); - while(1) { + while (1) { fn_1_BC8(); - if(HuAudSStreamStatGet(streamNo) == 0) { + if (HuAudSStreamStatGet(streamNo) == 0) { break; } } @@ -325,12 +332,12 @@ void fn_1_13150(omObjData* arg0, StructBss16C* arg1) arg1->unk04 = NULL; } -void fn_1_131C0(omObjData* arg0, StructBss16C* arg1) +void fn_1_131C0(omObjData *arg0, StructBss16C *arg1) { - int presentSe = (lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10*6)+5; + int presentSe = (lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 * 6) + 5; fn_1_BE8(150); OSReport("########## PRESENT_SE : %d\n", presentSe); - HuAudFXPlay(presentSe+2260); + HuAudFXPlay(presentSe + 2260); fn_1_1DFC(lbl_1_bss_810.unk00, 7, 7, 1, 0); arg1->unk04 = NULL; } @@ -339,23 +346,24 @@ void fn_1_13264(void) { int i; fn_1_1DFC(lbl_1_bss_798.unk00, 1, 2, 15, 1); - for(i=0; i<30; i++) { + for (i = 0; i < 30; i++) { fn_1_BC8(); - if(lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 != 5) { + if (lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 != 5) { Hu3DData[lbl_1_bss_798.unk00->model[1]].pos.x = fn_1_864(120, 80, i, 30); } Hu3DData[lbl_1_bss_798.unk00->model[1]].rot.y = fn_1_864(-60, -90, i, 30); } fn_1_1DFC(lbl_1_bss_798.unk00, 1, 5, 5, 0); fn_1_BE8(10); - while(1) { + while (1) { fn_1_BC8(); - if(Hu3DMotionTimeGet(lbl_1_bss_798.unk00->model[1]) >= 30) { + if (Hu3DMotionTimeGet(lbl_1_bss_798.unk00->model[1]) >= 30) { break; } } Hu3DModelPosSet(lbl_1_bss_810.unk00->model[5], 0, 0, 0); - Hu3DModelHookSet(lbl_1_bss_798.unk00->model[1], CharModelHookNameGet(lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, 1, 1), lbl_1_bss_810.unk00->model[5]); + Hu3DModelHookSet( + lbl_1_bss_798.unk00->model[1], CharModelHookNameGet(lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, 1, 1), lbl_1_bss_810.unk00->model[5]); fn_1_BE8(60); lbl_1_bss_810.unk04 = (void *)fn_1_13FB4; HuAudFXPlay(163); @@ -367,9 +375,9 @@ void fn_1_13264(void) HuAudSeqPause(lbl_1_bss_78[0], 1, 1000); WipeColorSet(255, 255, 255); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - while(1) { + while (1) { fn_1_BC8(); - if(!WipeStatGet()) { + if (!WipeStatGet()) { break; } } @@ -381,9 +389,9 @@ void fn_1_13264(void) fn_1_BE8(30); HuAudFXPlay(169); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - while(1) { + while (1) { fn_1_BC8(); - if(!WipeStatGet()) { + if (!WipeStatGet()) { break; } } @@ -393,9 +401,9 @@ void fn_1_13264(void) lbl_1_bss_798.unk04 = (void *)fn_1_131C0; lbl_1_bss_860.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_860.unk0C); lbl_1_bss_7C0.unk04 = (void *)fn_1_13150; - fn_1_1D4C(lbl_1_bss_860.unk04, (lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10*6)+0x32000B, 0); + fn_1_1D4C(lbl_1_bss_860.unk04, (lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 * 6) + 0x32000B, 0); fn_1_6DBC(lbl_1_bss_860.unk04, 0x320086, 0, 300); - fn_1_1D18(lbl_1_bss_860.unk04,0x250004); + fn_1_1D18(lbl_1_bss_860.unk04, 0x250004); fn_1_1A94(lbl_1_bss_860.unk04); fn_1_3854(&lbl_1_bss_24); fn_1_2750(fn_1_15E58); @@ -435,7 +443,7 @@ void fn_1_13828(void) void fn_1_138CC(void) { - omOvlHisData* var_r31; + omOvlHisData *var_r31; msmSeStopAll(FALSE, 1000); do { @@ -444,15 +452,16 @@ void fn_1_138CC(void) CharModelKill(-1); HuAudFXAllStop(); HuAudSStreamAllStop(); - GWMGAvailSet(omMgIndexGet(58)+401); + GWMGAvailSet(omMgIndexGet(58) + 401); GWGameStat.present[lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 * 6 + 5] = 1; - OSReport("########## PRESENTFLG CHR:%d, MAP:5, PRESENT:%d\n", lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 * 6 + 5); + OSReport("########## PRESENTFLG CHR:%d, MAP:5, PRESENT:%d\n", lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10, + lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 * 6 + 5); var_r31 = omOvlHisGet(0); omOvlHisChg(0, OVL_MSTORY2, 20, var_r31->stat); omOvlCallEx(OVL_PRESENT, 1, lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10 * 6 + 5 + 1, 0); } -void fn_1_13A18(omObjData* arg0, StructBss16C* arg1) +void fn_1_13A18(omObjData *arg0, StructBss16C *arg1) { int temp = 0; fn_1_12AC8(); @@ -469,15 +478,15 @@ void fn_1_13BB8(void) lbl_1_bss_838.unk00 = obj = omAddObjEx(lbl_1_bss_790, 256, 16, 16, -1, NULL); lbl_1_bss_838.unk04 = (void *)fn_1_13A18; lbl_1_bss_838.unk00->data = &lbl_1_bss_838; - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_838.unk04 != NULL) { + if (lbl_1_bss_838.unk04 != NULL) { lbl_1_bss_838.unk04(obj, &lbl_1_bss_838); } } } -void fn_1_13C6C(omObjData* object) +void fn_1_13C6C(omObjData *object) { s32 charNo; charNo = lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10; @@ -511,28 +520,27 @@ void fn_1_13C6C(omObjData* object) fn_1_1DFC(object, 8, 8, 0, 1); } - -void fn_1_13FB4(omObjData* arg0, StructBss16C* arg1) +void fn_1_13FB4(omObjData *arg0, StructBss16C *arg1) { Mtx matrix; Hu3DData[arg0->model[7]].pos.y = fn_1_B08(180, 185, arg1->unk08++, 360); Hu3DModelObjMtxGet(arg0->model[7], "effect", matrix); Hu3DModelPosSet(arg0->model[8], matrix[0][3], matrix[1][3], matrix[2][3]); - if(arg1->unk08 >= 360) { + if (arg1->unk08 >= 360) { arg1->unk08 = 0; } } -void fn_1_140A0(omObjData* arg0, StructBss16C* arg1) +void fn_1_140A0(omObjData *arg0, StructBss16C *arg1) { Mtx matrix; - Hu3DData[arg0->model[7]].pos.y += arg1->unk0C/100.0f; + Hu3DData[arg0->model[7]].pos.y += arg1->unk0C / 100.0f; Hu3DModelObjMtxGet(arg0->model[7], "effect", matrix); Hu3DModelPosSet(arg0->model[8], matrix[0][3], matrix[1][3], matrix[2][3]); arg1->unk0C += 2; } -void fn_1_1416C(omObjData* arg0, StructBss16C* arg1) +void fn_1_1416C(omObjData *arg0, StructBss16C *arg1) { int i; Vec pos; @@ -540,19 +548,20 @@ void fn_1_1416C(omObjData* arg0, StructBss16C* arg1) Hu3DModelPosSet(arg0->model[5], -180, 100, 800); Hu3DModelRotSet(arg0->model[5], 0, 0, 0); Hu3DModelAttrReset(arg0->model[5], 1); - for(i=0; i<60; i++) { + for (i = 0; i < 60; i++) { fn_1_BC8(); - if(i == 30) { + if (i == 30) { HuAudFXPlay(151); } - if(i <= 30) { - pos.y = fn_1_A4C(0, 100, i+30, 60); + if (i <= 30) { + pos.y = fn_1_A4C(0, 100, i + 30, 60); pos.x = fn_1_864(-180, -45, i, 30); rotY = fn_1_984(0, -90, i, 30); - } else { - pos.x = fn_1_864(-45, 0, i-30, 30); - pos.y = fn_1_A4C(0, 25, i-30, 30); - rotY = fn_1_984(-90, -360, i-30, 30); + } + else { + pos.x = fn_1_864(-45, 0, i - 30, 30); + pos.y = fn_1_A4C(0, 25, i - 30, 30); + rotY = fn_1_984(-90, -360, i - 30, 30); } Hu3DModelPosSet(arg0->model[5], pos.x, pos.y, 800); Hu3DModelRotSet(arg0->model[5], 0, rotY, 0); @@ -567,9 +576,9 @@ void fn_1_1449C(void) lbl_1_bss_810.unk04 = NULL; lbl_1_bss_810.unk00->data = &lbl_1_bss_810; fn_1_13C6C(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_810.unk04 != NULL) { + if (lbl_1_bss_810.unk04 != NULL) { lbl_1_bss_810.unk04(obj, &lbl_1_bss_810); } } @@ -597,15 +606,15 @@ void fn_1_14868(omObjData *object) void fn_1_14A9C(int arg0, int arg1, int arg2, int arg3, int arg4) { fn_1_1DFC(lbl_1_bss_7E8.unk00, 1, arg0, arg2, arg3); - if(arg3 == 1) { + if (arg3 == 1) { arg4 = 0; } lbl_1_bss_7E8.unk00->work[0] = arg4; lbl_1_bss_7E8.unk00->work[1] = arg1; - lbl_1_bss_7E8.unk00->work[2] = arg2+1; + lbl_1_bss_7E8.unk00->work[2] = arg2 + 1; } -void fn_1_14B48(omObjData* arg0, StructBss16C* arg1) +void fn_1_14B48(omObjData *arg0, StructBss16C *arg1) { Vec pos = { -1000, 0, 810 }; lbl_1_bss_810.unk04 = (void *)fn_1_1416C; @@ -622,15 +631,16 @@ void fn_1_14C40(void) lbl_1_bss_7E8.unk04 = NULL; lbl_1_bss_7E8.unk00->data = &lbl_1_bss_810; fn_1_14868(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_7E8.unk04 != NULL) { + if (lbl_1_bss_7E8.unk04 != NULL) { lbl_1_bss_7E8.unk04(obj, &lbl_1_bss_7E8); } - if(obj->work[0]) { - if(obj->work[2]) { + if (obj->work[0]) { + if (obj->work[2]) { obj->work[2]--; - } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { fn_1_1DFC(obj, 1, obj->work[1], 15, 1); obj->work[0] = obj->work[1] = obj->work[2] = 0; } @@ -656,15 +666,15 @@ void fn_1_14F6C(omObjData *object) void fn_1_15134(int arg0, int arg1, int arg2, int arg3, int arg4) { fn_1_1DFC(lbl_1_bss_7C0.unk00, 1, arg0, arg2, arg3); - if(arg3 == 1) { + if (arg3 == 1) { arg4 = 0; } lbl_1_bss_7C0.unk00->work[0] = arg4; lbl_1_bss_7C0.unk00->work[1] = arg1; - lbl_1_bss_7C0.unk00->work[2] = arg2+1; + lbl_1_bss_7C0.unk00->work[2] = arg2 + 1; } -void fn_1_151E0(omObjData* arg0, StructBss16C* arg1) +void fn_1_151E0(omObjData *arg0, StructBss16C *arg1) { Vec pos = { -800, 0, 800 }; fn_1_1DFC(arg0, 1, 2, 15, 1); @@ -673,7 +683,7 @@ void fn_1_151E0(omObjData* arg0, StructBss16C* arg1) arg1->unk04 = NULL; } -void fn_1_152C4(omObjData* arg0, StructBss16C* arg1) +void fn_1_152C4(omObjData *arg0, StructBss16C *arg1) { Vec pos = { -120, 0, 800 }; fn_1_1DFC(arg0, 1, 2, 15, 1); @@ -689,15 +699,16 @@ void fn_1_153A8(void) lbl_1_bss_7C0.unk04 = NULL; lbl_1_bss_7C0.unk00->data = &lbl_1_bss_7C0; fn_1_14F6C(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_7C0.unk04 != NULL) { + if (lbl_1_bss_7C0.unk04 != NULL) { lbl_1_bss_7C0.unk04(obj, &lbl_1_bss_7C0); } - if(obj->work[0]) { - if(obj->work[2]) { + if (obj->work[0]) { + if (obj->work[2]) { obj->work[2]--; - } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { fn_1_1DFC(obj, 1, obj->work[1], 15, 1); obj->work[0] = obj->work[1] = obj->work[2] = 0; } @@ -710,16 +721,16 @@ void fn_1_15668(int arg0) int i; int order[4]; order[0] = 0; - for(i=1; i<4; i++) { - order[i] = order[i-1]+1; - if(order[i] >= 4) { + for (i = 1; i < 4; i++) { + order[i] = order[i - 1] + 1; + if (order[i] >= 4) { order[i] = 0; } - if(arg0 == order[i]) { + if (arg0 == order[i]) { lbl_1_bss_860.unk00 = i; } } - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { fn_1_357C(&lbl_1_bss_860.unk30[i], order[i]); } } @@ -728,12 +739,12 @@ void fn_1_1574C(omObjData *object) { int charNo = lbl_1_bss_860.unk30[lbl_1_bss_860.unk00].unk10; object->model[1] = CharModelCreate(charNo, 1); - object->motion[1] = CharModelMotionCreate(charNo, 0x5F0000); - object->motion[2] = CharModelMotionCreate(charNo, 0x5F0002); - object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660028+charNo); - object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660030+charNo); - object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x660038+charNo); - object->motion[6] = Hu3DJointMotionFile(object->model[1], 0x660000+charNo); + object->motion[1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + object->motion[2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660028 + charNo); + object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660030 + charNo); + object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x660038 + charNo); + object->motion[6] = Hu3DJointMotionFile(object->model[1], 0x660000 + charNo); CharModelMotionDataClose(charNo); Hu3DModelPosSet(object->model[1], 120, 0, 800); Hu3DModelRotSet(object->model[1], 0, -60, 0); @@ -745,12 +756,12 @@ void fn_1_1574C(omObjData *object) void fn_1_15944(int arg0, int arg1, int arg2, int arg3, int arg4) { fn_1_1DFC(lbl_1_bss_798.unk00, 1, arg0, arg2, arg3); - if(arg3 == 1) { + if (arg3 == 1) { arg4 = 0; } lbl_1_bss_798.unk00->work[0] = arg4; lbl_1_bss_798.unk00->work[1] = arg1; - lbl_1_bss_798.unk00->work[2] = arg2+1; + lbl_1_bss_798.unk00->work[2] = arg2 + 1; } void fn_1_159F0(void) @@ -760,15 +771,16 @@ void fn_1_159F0(void) lbl_1_bss_798.unk04 = NULL; lbl_1_bss_798.unk00->data = &lbl_1_bss_798; fn_1_1574C(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_798.unk04 != NULL) { + if (lbl_1_bss_798.unk04 != NULL) { lbl_1_bss_798.unk04(obj, &lbl_1_bss_798); } - if(obj->work[0]) { - if(obj->work[2]) { + if (obj->work[0]) { + if (obj->work[2]) { obj->work[2]--; - } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { fn_1_1DFC(obj, 1, obj->work[1], 15, 1); obj->work[0] = obj->work[1] = obj->work[2] = 0; } @@ -800,7 +812,6 @@ void fn_1_15D68(void) temp.unk20.z = 0; temp.unk38 = 1400; fn_1_4FEC(work, &temp, work->unk40++, 120, 10); - } void fn_1_15E58(void) @@ -828,4 +839,4 @@ void fn_1_15F70(void) temp.unk20.z = 0; temp.unk38 = 1200; fn_1_6004(work, &temp, work->unk40++, 10, 5); -} \ No newline at end of file +} diff --git a/src/REL/mstory2Dll/mg_miss.c b/src/REL/mstory2Dll/mg_miss.c index 6a9232ab..cc329a56 100644 --- a/src/REL/mstory2Dll/mg_miss.c +++ b/src/REL/mstory2Dll/mg_miss.c @@ -9,12 +9,13 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/pad.h" #include "game/printfunc.h" #include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" -#include "game/pad.h" -#include "game/objsub.h" + typedef struct { /* 0x000 */ s32 unk00; @@ -47,7 +48,7 @@ void fn_1_18184(void); void fn_1_18408(void); void fn_1_18494(void); -void fn_1_16060(Process* arg0, s32 arg1) +void fn_1_16060(Process *arg0, s32 arg1) { lbl_1_bss_968 = arg0; lbl_1_bss_A34.unk0C = arg1; @@ -65,11 +66,11 @@ void fn_1_16060(Process* arg0, s32 arg1) void fn_1_16178(omObjData *object) { - if(object->work[2]) { + if (object->work[2]) { object->work[2]--; return; } - if(object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { + if (object->work[2] == 0 && Hu3DMotionEndCheck(object->model[1])) { fn_1_1DFC(object, 1, object->work[1], 15, 1); object->work[0] = object->work[1] = object->work[2] = 0; } @@ -81,38 +82,44 @@ void fn_1_16204(void) int posY = 40; GXColor winColor = { 0, 0, 128, 128 }; int i; - while(1) { + while (1) { fn_1_BC8(); printWin(posX, posY, 220, 130, &winColor); - if(lbl_1_bss_A0C.unk04 == NULL) { + if (lbl_1_bss_A0C.unk04 == NULL) { print8(posX, posY, 1, "PROC_MAIN -> FALSE"); - } else { + } + else { print8(posX, posY, 1, "PROC_MAIN -> TRUE"); } - if(lbl_1_bss_9E4.unk04 == NULL) { - print8(posX, posY+10, 1, "PROC_MAP -> FALSE"); - } else { - print8(posX, posY+10, 1, "PROC_MAP -> TRUE"); + if (lbl_1_bss_9E4.unk04 == NULL) { + print8(posX, posY + 10, 1, "PROC_MAP -> FALSE"); } - if(lbl_1_bss_9BC.unk04 == NULL) { - print8(posX, posY+20, 1, "PROC_KOOPA -> FALSE"); - } else { - print8(posX, posY+20, 1, "PROC_KOOPA -> TRUE"); + else { + print8(posX, posY + 10, 1, "PROC_MAP -> TRUE"); } - if(lbl_1_bss_994.unk04 == NULL) { - print8(posX, posY+30, 1, "PROC_MKOOPA -> FALSE"); - } else { - print8(posX, posY+30, 1, "PROC_MKOOPA -> TRUE"); + if (lbl_1_bss_9BC.unk04 == NULL) { + print8(posX, posY + 20, 1, "PROC_KOOPA -> FALSE"); } - if(lbl_1_bss_96C.unk04 == NULL) { - print8(posX, posY+40, 1, "PROC_PLAYER -> FALSE"); - } else { - print8(posX, posY+40, 1, "PROC_PLAYER -> TRUE"); + else { + print8(posX, posY + 20, 1, "PROC_KOOPA -> TRUE"); } - print8(posX, posY+60, 1, "P:%d W:%d", lbl_1_bss_A34.unk00, lbl_1_bss_A34.unk0C); - print8(posX, posY+80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); - for(i=0; i<4; i++) { - print8(posX, posY+90+(i*10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_A34.unk30[i].unk00, lbl_1_bss_A34.unk30[i].unk04, lbl_1_bss_A34.unk30[i].unk08, lbl_1_bss_A34.unk30[i].unk0C, lbl_1_bss_A34.unk30[i].unk14, lbl_1_bss_A34.unk30[i].unk10); + if (lbl_1_bss_994.unk04 == NULL) { + print8(posX, posY + 30, 1, "PROC_MKOOPA -> FALSE"); + } + else { + print8(posX, posY + 30, 1, "PROC_MKOOPA -> TRUE"); + } + if (lbl_1_bss_96C.unk04 == NULL) { + print8(posX, posY + 40, 1, "PROC_PLAYER -> FALSE"); + } + else { + print8(posX, posY + 40, 1, "PROC_PLAYER -> TRUE"); + } + print8(posX, posY + 60, 1, "P:%d W:%d", lbl_1_bss_A34.unk00, lbl_1_bss_A34.unk0C); + print8(posX, posY + 80, 1, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(posX, posY + 90 + (i * 10), 1, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, lbl_1_bss_A34.unk30[i].unk00, lbl_1_bss_A34.unk30[i].unk04, + lbl_1_bss_A34.unk30[i].unk08, lbl_1_bss_A34.unk30[i].unk0C, lbl_1_bss_A34.unk30[i].unk14, lbl_1_bss_A34.unk30[i].unk10); } } } @@ -150,7 +157,7 @@ int fn_1_1670C(void) result = fn_1_1C64(lbl_1_bss_A34.unk08); fn_1_1D18(lbl_1_bss_A34.unk08, 0x250004); fn_1_71DC(lbl_1_bss_A34.unk08); - if(result) { + if (result) { HuAudFXPlay(lbl_1_data_0[6][2]); fn_1_1774C(3, 1, 15, 1, 0); fn_1_1D18(lbl_1_bss_A34.unk04, 0x1F0012); @@ -183,14 +190,11 @@ void fn_1_16984(void) fn_1_BE8(150); } -void fn_1_169D4(void) -{ - -} +void fn_1_169D4(void) { } void fn_1_169D8(int arg0) { - omOvlHisData* his; + omOvlHisData *his; if (arg0 != 0) { HuAudSeqFadeOut(lbl_1_bss_78[0], 1000); @@ -206,32 +210,34 @@ void fn_1_169D8(int arg0) HuAudSeqAllFadeOut(1000); HuAudSStreamAllFadeOut(1000); GWMGAvailSet(450); - GWSystem.mg_next = 450-401; + GWSystem.mg_next = 450 - 401; omOvlCallEx(OVL_M450, 1, 0, 0); - } else { + } + else { HuAudFadeOut(1); omOvlReturnEx(1, 1); } } -void fn_1_16ACC(omObjData* arg0, StructBss16C* arg1) +void fn_1_16ACC(omObjData *arg0, StructBss16C *arg1) { int mode = 0; fn_1_165B0(); fn_1_1661C(); lbl_1_bss_A34.unk04 = fn_1_185C(1, 0, 21, 2, lbl_1_bss_A34.unk0C); - while(1) { + while (1) { fn_1_BC8(); - if(fn_1_1670C()) { + if (fn_1_1670C()) { mode = 0; break; - } else if(fn_1_168B0()) { + } + else if (fn_1_168B0()) { mode = 1; break; } } fn_1_1A94(lbl_1_bss_A34.unk04); - switch(mode) { + switch (mode) { case 0: fn_1_16984(); break; @@ -248,9 +254,9 @@ void fn_1_16FC0(void) lbl_1_bss_A0C.unk00 = obj = omAddObjEx(lbl_1_bss_968, 256, 16, 16, -1, NULL); lbl_1_bss_A0C.unk04 = (void *)fn_1_16ACC; lbl_1_bss_A0C.unk00->data = &lbl_1_bss_A0C; - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_A0C.unk04 != NULL) { + if (lbl_1_bss_A0C.unk04 != NULL) { lbl_1_bss_A0C.unk04(obj, &lbl_1_bss_A0C); } } @@ -277,10 +283,10 @@ void fn_1_17074(omObjData *object) fn_1_1DFC(object, 6, 6, 0, 2); } -void fn_1_1727C(omObjData* arg0, StructBss16C* arg1) +void fn_1_1727C(omObjData *arg0, StructBss16C *arg1) { Hu3DData[arg0->model[5]].pos.y = fn_1_B08(80, 90, arg1->unk08++, 360); - if(arg1->unk08 >= 360) { + if (arg1->unk08 >= 360) { arg1->unk08 = 0; } } @@ -292,9 +298,9 @@ void fn_1_17338(void) lbl_1_bss_9E4.unk04 = (void *)fn_1_1727C; lbl_1_bss_9E4.unk00->data = &lbl_1_bss_9E4; fn_1_17074(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_9E4.unk04 != NULL) { + if (lbl_1_bss_9E4.unk04 != NULL) { lbl_1_bss_9E4.unk04(obj, &lbl_1_bss_9E4); } } @@ -316,12 +322,12 @@ void fn_1_175CC(omObjData *object) void fn_1_1774C(int arg0, int arg1, int arg2, int arg3, int arg4) { fn_1_1DFC(lbl_1_bss_9BC.unk00, 1, arg0, arg2, arg3); - if(arg3 == 1) { + if (arg3 == 1) { arg4 = 0; } lbl_1_bss_9BC.unk00->work[0] = arg4; lbl_1_bss_9BC.unk00->work[1] = arg1; - lbl_1_bss_9BC.unk00->work[2] = arg2+1; + lbl_1_bss_9BC.unk00->work[2] = arg2 + 1; } void fn_1_177F8(void) @@ -331,15 +337,16 @@ void fn_1_177F8(void) lbl_1_bss_9BC.unk04 = NULL; lbl_1_bss_9BC.unk00->data = &lbl_1_bss_9E4; fn_1_175CC(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_9BC.unk04 != NULL) { + if (lbl_1_bss_9BC.unk04 != NULL) { lbl_1_bss_9BC.unk04(obj, &lbl_1_bss_9BC); } - if(obj->work[0]) { - if(obj->work[2]) { + if (obj->work[0]) { + if (obj->work[2]) { obj->work[2]--; - } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { fn_1_1DFC(obj, 1, obj->work[1], 15, 1); obj->work[0] = obj->work[1] = obj->work[2] = 0; } @@ -361,12 +368,12 @@ void fn_1_17A70(omObjData *object) void fn_1_17B98(int arg0, int arg1, int arg2, int arg3, int arg4) { fn_1_1DFC(lbl_1_bss_994.unk00, 1, arg0, arg2, arg3); - if(arg3 == 1) { + if (arg3 == 1) { arg4 = 0; } lbl_1_bss_994.unk00->work[0] = arg4; lbl_1_bss_994.unk00->work[1] = arg1; - lbl_1_bss_994.unk00->work[2] = arg2+1; + lbl_1_bss_994.unk00->work[2] = arg2 + 1; } void fn_1_17C44(void) @@ -376,15 +383,16 @@ void fn_1_17C44(void) lbl_1_bss_994.unk04 = NULL; lbl_1_bss_994.unk00->data = &lbl_1_bss_994; fn_1_17A70(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_994.unk04 != NULL) { + if (lbl_1_bss_994.unk04 != NULL) { lbl_1_bss_994.unk04(obj, &lbl_1_bss_994); } - if(obj->work[0]) { - if(obj->work[2]) { + if (obj->work[0]) { + if (obj->work[2]) { obj->work[2]--; - } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { fn_1_1DFC(obj, 1, obj->work[1], 15, 1); obj->work[0] = obj->work[1] = obj->work[2] = 0; } @@ -397,16 +405,16 @@ void fn_1_17E64(s32 arg0) int i; int order[4]; order[0] = 0; - for(i=1; i<4; i++) { - order[i] = order[i-1]+1; - if(order[i] >= 4) { + for (i = 1; i < 4; i++) { + order[i] = order[i - 1] + 1; + if (order[i] >= 4) { order[i] = 0; } - if(arg0 == order[i]) { + if (arg0 == order[i]) { lbl_1_bss_A34.unk00 = i; } } - for(i=0; i<4; i++) { + for (i = 0; i < 4; i++) { fn_1_357C(&lbl_1_bss_A34.unk30[i], order[i]); } } @@ -415,10 +423,10 @@ void fn_1_17F48(omObjData *object) { int charNo = lbl_1_bss_A34.unk30[lbl_1_bss_A34.unk00].unk10; object->model[1] = CharModelCreate(charNo, 1); - object->motion[1] = CharModelMotionCreate(charNo, 0x5F0000); - object->motion[2] = CharModelMotionCreate(charNo, 0x5F0018); - object->motion[3] = CharModelMotionCreate(charNo, 0x5F0034); - object->motion[4] = CharModelMotionCreate(charNo, 0x5F0048); + object->motion[1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + object->motion[2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x18)); + object->motion[3] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x34)); + object->motion[4] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x48)); CharModelVoiceEnableSet(charNo, object->motion[2], FALSE); CharModelMotionDataClose(charNo); Hu3DModelPosSet(object->model[1], 120, 0, 800); @@ -431,12 +439,12 @@ void fn_1_17F48(omObjData *object) void fn_1_180D8(int arg0, int arg1, int arg2, int arg3, int arg4) { fn_1_1DFC(lbl_1_bss_96C.unk00, 1, arg0, arg2, arg3); - if(arg3 == 1) { + if (arg3 == 1) { arg4 = 0; } lbl_1_bss_96C.unk00->work[0] = arg4; lbl_1_bss_96C.unk00->work[1] = arg1; - lbl_1_bss_96C.unk00->work[2] = arg2+1; + lbl_1_bss_96C.unk00->work[2] = arg2 + 1; } void fn_1_18184(void) @@ -446,15 +454,16 @@ void fn_1_18184(void) lbl_1_bss_96C.unk04 = NULL; lbl_1_bss_96C.unk00->data = &lbl_1_bss_96C; fn_1_17F48(obj); - while(1) { + while (1) { fn_1_BC8(); - if(lbl_1_bss_96C.unk04 != NULL) { + if (lbl_1_bss_96C.unk04 != NULL) { lbl_1_bss_96C.unk04(obj, &lbl_1_bss_96C); } - if(obj->work[0]) { - if(obj->work[2]) { + if (obj->work[0]) { + if (obj->work[2]) { obj->work[2]--; - } else if(obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { + } + else if (obj->work[2] == 0 && Hu3DMotionEndCheck(obj->model[1])) { fn_1_1DFC(obj, 1, obj->work[1], 15, 1); obj->work[0] = obj->work[1] = obj->work[2] = 0; } @@ -478,7 +487,7 @@ void fn_1_18494(void) { StructBss24 *work = &lbl_1_bss_24; StructBss24 temp; - if(work->unk40 == 50) { + if (work->unk40 == 50) { fn_1_1DFC(lbl_1_bss_9E4.unk00, 5, 5, 0, 0); fn_1_1DFC(lbl_1_bss_9E4.unk00, 6, 6, 0, 0); HuAudFXPlay(161); @@ -491,11 +500,11 @@ void fn_1_18494(void) temp.unk20.z = 0; temp.unk38 = 150; fn_1_4FEC(work, &temp, work->unk40, 180, 10); - if(work->unk40++ >= 90) { - if(work->unk40 == 91) { + if (work->unk40++ >= 90) { + if (work->unk40 == 91) { lbl_1_bss_88[0] = HuAudFXPlay(32); } - work->unk20.x = fn_1_864(work->unk20.x, -45, work->unk40-90, 90); - Hu3DData[lbl_1_bss_9E4.unk00->model[5]].rot.x = fn_1_864(0, 45, work->unk40-90, 90); + work->unk20.x = fn_1_864(work->unk20.x, -45, work->unk40 - 90, 90); + Hu3DData[lbl_1_bss_9E4.unk00->model[5]].rot.x = fn_1_864(0, 45, work->unk40 - 90, 90); } -} \ No newline at end of file +} From 090ab1c05f3347259949e7a4e8730d0cf3e561f4 Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Sat, 11 Jan 2025 18:38:53 +0100 Subject: [PATCH 248/311] Fix w06 symbols for PAL and port mstory2Dll to every version (#523) * Fix w06 symbols for PAL * Port mstory2Dll to every version --- config/GMPE01_01/rels/mstory2Dll/symbols.txt | 742 ++++++++--------- config/GMPJ01_00/rels/mstory2Dll/splits.txt | 47 ++ config/GMPJ01_00/rels/mstory2Dll/symbols.txt | 742 ++++++++--------- config/GMPJ01_00/rels/mstoryDll/symbols.txt | 10 +- config/GMPP01_00/rels/mstory2Dll/splits.txt | 47 ++ config/GMPP01_00/rels/mstory2Dll/symbols.txt | 784 +++++++++--------- config/GMPP01_00/rels/w06Dll/symbols.txt | 690 ++++++++-------- config/GMPP01_02/rels/mstory2Dll/splits.txt | 47 ++ config/GMPP01_02/rels/mstory2Dll/symbols.txt | 788 +++++++++---------- configure.py | 16 +- src/REL/mstory2Dll/board_clear.c | 34 +- src/REL/mstory2Dll/board_entrance.c | 51 +- src/REL/mstory2Dll/board_miss.c | 38 +- src/REL/mstory2Dll/ending.c | 67 +- src/REL/mstory2Dll/main.c | 6 +- src/REL/mstory2Dll/mg_clear.c | 44 +- src/REL/mstory2Dll/mg_miss.c | 24 +- src/REL/mstory2Dll/save.c | 10 +- 18 files changed, 2181 insertions(+), 2006 deletions(-) diff --git a/config/GMPE01_01/rels/mstory2Dll/symbols.txt b/config/GMPE01_01/rels/mstory2Dll/symbols.txt index fb773409..8bf47557 100644 --- a/config/GMPE01_01/rels/mstory2Dll/symbols.txt +++ b/config/GMPE01_01/rels/mstory2Dll/symbols.txt @@ -5,7 +5,7 @@ _prolog = .text:0x00000344; // type:function size:0x54 scope:global _epilog = .text:0x00000398; // type:function size:0x4C scope:global fn_1_3E4 = .text:0x000003E4; // type:function size:0x110 fn_1_4F4 = .text:0x000004F4; // type:function size:0x1B8 -fn_1_6AC = .text:0x000006AC; // type:function size:0x1B8 +ObjectSetup = .text:0x000006AC; // type:function size:0x1B8 fn_1_864 = .text:0x00000864; // type:function size:0x28 fn_1_88C = .text:0x0000088C; // type:function size:0x20 fn_1_8AC = .text:0x000008AC; // type:function size:0xD8 @@ -209,8 +209,8 @@ fn_1_16060 = .text:0x00016060; // type:function size:0x118 fn_1_16178 = .text:0x00016178; // type:function size:0x8C fn_1_16204 = .text:0x00016204; // type:function size:0x3AC fn_1_165B0 = .text:0x000165B0; // type:function size:0x5C -fn_1_1660C = .text:0x0001660C; // type:function size:0x110 -fn_1_1671C = .text:0x0001671C; // type:function size:0x194 +fn_1_1661C = .text:0x0001660C; // type:function size:0x110 +fn_1_1670C = .text:0x0001671C; // type:function size:0x194 fn_1_168B0 = .text:0x000168B0; // type:function size:0xD4 fn_1_16984 = .text:0x00016984; // type:function size:0x50 fn_1_169D4 = .text:0x000169D4; // type:function size:0x4 @@ -265,397 +265,397 @@ fn_1_1B870 = .text:0x0001B888; // type:function size:0x9C fn_1_1B90C = .text:0x0001B924; // type:function size:0x50 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC data:4byte -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC data:4byte -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC data:4byte -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 data:byte -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC data:4byte -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC data:4byte -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC data:4byte -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C data:4byte -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 data:byte -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC data:4byte -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC data:4byte -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 data:byte -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC data:4byte -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC data:4byte -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC data:4byte -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 data:byte -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 data:byte -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC data:4byte -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte -lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 data:string -lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 data:string -lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 data:string -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 data:string -lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 data:string -lbl_1_data_135 = .data:0x00000135; // type:object size:0xF +lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 scope:local data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 scope:local data:string +lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 scope:local data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 scope:local data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0xF scope:local lbl_1_data_144 = .data:0x00000144; // type:object size:0x18 -lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 data:string -lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 data:string -lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 data:string +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 scope:local data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 scope:local data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 scope:local data:string jumptable_1_data_19C = .data:0x0000019C; // type:object size:0x54 scope:local jumptable_1_data_1F0 = .data:0x000001F0; // type:object size:0x54 scope:local -lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A data:string -lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A data:string -lbl_1_data_278 = .data:0x00000278; // type:object size:0xE data:string -lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 data:string -lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 data:string -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 data:string -lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 data:string -lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 data:string -lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 data:string -lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 data:string -lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 +lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A scope:local data:string +lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A scope:local data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0xE scope:local data:string +lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 scope:local data:string +lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 scope:local data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 scope:local data:string +lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 scope:local data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 scope:local data:string +lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 scope:local data:string +lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 scope:local lbl_1_data_308 = .data:0x00000308; // type:object size:0x20 lbl_1_data_328 = .data:0x00000328; // type:object size:0x60 -lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 data:string -lbl_1_data_399 = .data:0x00000399; // type:object size:0x2 data:string +lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 scope:local data:string +lbl_1_data_399 = .data:0x00000399; // type:object size:0x2 scope:local data:string lbl_1_data_3A0 = .data:0x000003A0; // type:object size:0x2C lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x10 lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x4 data:4byte lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x8 data:4byte -lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 data:string -lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 data:string -lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 data:string -lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 data:string -lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 data:string -lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 data:string -lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 data:string -lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 data:string -lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 data:string -lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 data:string -lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 data:string -lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA data:string -lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C data:string -lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D data:string -lbl_1_data_50C = .data:0x0000050C; // type:object size:0xF data:string -lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 data:string -lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 data:string -lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 data:string -lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 data:string -lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 data:string -lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 data:string -lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 data:string -lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 data:string -lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 data:string -lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 data:string -lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA data:string -lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C data:string -lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D data:string -lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 data:string -lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C data:string +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 scope:local data:string +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 scope:local data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 scope:local data:string +lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 scope:local data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 scope:local data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 scope:local data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 scope:local data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 scope:local data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 scope:local data:string +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 scope:local data:string +lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 scope:local data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA scope:local data:string +lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C scope:local data:string +lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D scope:local data:string +lbl_1_data_50C = .data:0x0000050C; // type:object size:0xF scope:local data:string +lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 scope:local data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 scope:local data:string +lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 scope:local data:string +lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 scope:local data:string +lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 scope:local data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 scope:local data:string +lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 scope:local data:string +lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 scope:local data:string +lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 scope:local data:string +lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 scope:local data:string +lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA scope:local data:string +lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C scope:local data:string +lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D scope:local data:string +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 scope:local data:string +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C scope:local data:string lbl_1_data_668 = .data:0x00000668; // type:object size:0x30 lbl_1_data_698 = .data:0x00000698; // type:object size:0x1C lbl_1_data_6B4 = .data:0x000006B4; // type:object size:0x20 -lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 data:string -lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 data:string -lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 data:string -lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 data:string -lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 data:string -lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 data:string -lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 data:string -lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 data:string -lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 data:string -lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 data:string -lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA data:string -lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C data:string -lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D data:string -lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 data:string -lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 scope:local data:string +lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 scope:local data:string +lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 scope:local data:string +lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 scope:local data:string +lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 scope:local data:string +lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 scope:local data:string +lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 scope:local data:string +lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 scope:local data:string +lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 scope:local data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 scope:local data:string +lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA scope:local data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C scope:local data:string +lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D scope:local data:string +lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 scope:local data:string +lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C scope:local lbl_1_data_81C = .data:0x0000081C; // type:object size:0x30 lbl_1_data_850 = .data:0x00000850; // type:object size:0x3C0 lbl_1_data_C10 = .data:0x00000C10; // type:object size:0x10 lbl_1_data_C20 = .data:0x00000C20; // type:object size:0x4 data:4byte lbl_1_data_C24 = .data:0x00000C24; // type:object size:0x8 data:4byte -lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 data:string -lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 data:string -lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 data:string -lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 data:string -lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 data:string -lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 data:string -lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 data:string -lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 data:string -lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 data:string -lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 data:string -lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 data:string -lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA data:string -lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C data:string -lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D data:string -lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C data:string -lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 data:string -lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 data:string -lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0x7 data:string -lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 data:string -lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 data:string -lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 data:string -lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 data:string -lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 data:string -lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 data:string -lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 data:string -lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 data:string -lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 data:string -lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 data:string -lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA data:string -lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C data:string -lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D data:string -lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 data:string -lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x1C data:string +lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 scope:local data:string +lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 scope:local data:string +lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 scope:local data:string +lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 scope:local data:string +lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 scope:local data:string +lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 scope:local data:string +lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 scope:local data:string +lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 scope:local data:string +lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 scope:local data:string +lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 scope:local data:string +lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 scope:local data:string +lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA scope:local data:string +lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C scope:local data:string +lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D scope:local data:string +lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C scope:local data:string +lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 scope:local data:string +lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 scope:local data:string +lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0x7 scope:local data:string +lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 scope:local data:string +lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 scope:local data:string +lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 scope:local data:string +lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 scope:local data:string +lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 scope:local data:string +lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 scope:local data:string +lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 scope:local data:string +lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 scope:local data:string +lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 scope:local data:string +lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 scope:local data:string +lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA scope:local data:string +lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C scope:local data:string +lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D scope:local data:string +lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 scope:local data:string +lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x1C scope:local data:string lbl_1_data_EF8 = .data:0x00000EF8; // type:object size:0x10 lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x4 data:4byte lbl_1_data_F0C = .data:0x00000F0C; // type:object size:0x8 data:4byte lbl_1_data_F14 = .data:0x00000F14; // type:object size:0x4 data:4byte -lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 data:string -lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 data:string -lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 data:string -lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 data:string -lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 data:string -lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 data:string -lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 data:string -lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 data:string -lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 data:string -lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 data:string -lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 data:string -lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA data:string -lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C data:string -lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D data:string -lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 data:string -lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 data:string -lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 data:string -lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 data:string -lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 data:string -lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 data:string -lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 data:string -lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 data:string +lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 scope:local data:string +lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 scope:local data:string +lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 scope:local data:string +lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 scope:local data:string +lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 scope:local data:string +lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 scope:local data:string +lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 scope:local data:string +lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 scope:local data:string +lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 scope:local data:string +lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 scope:local data:string +lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 scope:local data:string +lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA scope:local data:string +lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C scope:local data:string +lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D scope:local data:string +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 scope:local data:string +lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 scope:local data:string +lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 scope:local data:string +lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 scope:local data:string +lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 scope:local data:string +lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 scope:local data:string +lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 scope:local data:string +lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 scope:local data:string lbl_1_data_10E4 = .data:0x000010E4; // type:object size:0x20 -lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF data:string +lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x20 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x44 data:float diff --git a/config/GMPJ01_00/rels/mstory2Dll/splits.txt b/config/GMPJ01_00/rels/mstory2Dll/splits.txt index 531cd645..aa6bd0d5 100644 --- a/config/GMPJ01_00/rels/mstory2Dll/splits.txt +++ b/config/GMPJ01_00/rels/mstory2Dll/splits.txt @@ -5,3 +5,50 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/mstory2Dll/main.c: + .text start:0x00000000 end:0x00007DB0 + .rodata start:0x00000000 end:0x00000118 + .data start:0x00000000 end:0x000003A0 + .bss start:0x00000000 end:0x00000078 + +REL/mstory2Dll/board_entrance.c: + .text start:0x00007DB0 end:0x0000B37C + .rodata start:0x00000118 end:0x000001A8 + .data start:0x000003A0 end:0x00000520 + .bss start:0x00000078 end:0x00000298 + +REL/mstory2Dll/board_clear.c: + .text start:0x0000B37C end:0x0000E570 + .rodata start:0x000001A8 end:0x00000248 + .data start:0x00000520 end:0x00000698 + .bss start:0x00000298 end:0x000004E0 + +REL/mstory2Dll/board_miss.c: + .text start:0x0000E570 end:0x000123C8 + .rodata start:0x00000248 end:0x00000310 + .data start:0x00000698 end:0x00000850 + .bss start:0x000004E0 end:0x00000790 + +REL/mstory2Dll/mg_clear.c: + .text start:0x000123C8 end:0x00016060 + .rodata start:0x00000310 end:0x000003D0 + .data start:0x00000850 end:0x00000DB8 + .bss start:0x00000790 end:0x00000968 + +REL/mstory2Dll/mg_miss.c: + .text start:0x00016060 end:0x000186D0 + .rodata start:0x000003D0 end:0x00000438 + .data start:0x00000DB8 end:0x00000EF8 + .bss start:0x00000968 end:0x00000B38 + +REL/mstory2Dll/ending.c: + .text start:0x000186D0 end:0x0001B560 + .rodata start:0x00000438 end:0x000004B8 + .data start:0x00000EF8 end:0x00001113 + .bss start:0x00000B38 end:0x00000D10 + +REL/mstory2Dll/save.c: + .text start:0x0001B560 end:0x0001B95C + .rodata start:0x000004B8 end:0x000004C8 + .bss start:0x00000D10 end:0x00000D18 diff --git a/config/GMPJ01_00/rels/mstory2Dll/symbols.txt b/config/GMPJ01_00/rels/mstory2Dll/symbols.txt index 43271272..c14583cf 100644 --- a/config/GMPJ01_00/rels/mstory2Dll/symbols.txt +++ b/config/GMPJ01_00/rels/mstory2Dll/symbols.txt @@ -5,7 +5,7 @@ _prolog = .text:0x00000344; // type:function size:0x54 scope:global _epilog = .text:0x00000398; // type:function size:0x4C scope:global fn_1_3E4 = .text:0x000003E4; // type:function size:0x110 fn_1_4F4 = .text:0x000004F4; // type:function size:0x1B8 -fn_1_6AC = .text:0x000006AC; // type:function size:0x1B8 +ObjectSetup = .text:0x000006AC; // type:function size:0x1B8 fn_1_864 = .text:0x00000864; // type:function size:0x28 fn_1_88C = .text:0x0000088C; // type:function size:0x20 fn_1_8AC = .text:0x000008AC; // type:function size:0xD8 @@ -209,8 +209,8 @@ fn_1_16060 = .text:0x00016060; // type:function size:0x118 fn_1_16178 = .text:0x00016178; // type:function size:0x8C fn_1_16204 = .text:0x00016204; // type:function size:0x3AC fn_1_165B0 = .text:0x000165B0; // type:function size:0x5C -fn_1_1660C = .text:0x0001660C; // type:function size:0x110 -fn_1_1671C = .text:0x0001671C; // type:function size:0x194 +fn_1_1661C = .text:0x0001660C; // type:function size:0x110 +fn_1_1670C = .text:0x0001671C; // type:function size:0x194 fn_1_168B0 = .text:0x000168B0; // type:function size:0xD4 fn_1_16984 = .text:0x00016984; // type:function size:0x50 fn_1_169D4 = .text:0x000169D4; // type:function size:0x4 @@ -265,395 +265,395 @@ fn_1_1B870 = .text:0x0001B870; // type:function size:0x9C fn_1_1B90C = .text:0x0001B90C; // type:function size:0x50 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC data:4byte -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC data:4byte -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC data:4byte -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 data:byte -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC data:4byte -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC data:4byte -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC data:4byte -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C data:4byte -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 data:byte -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC data:4byte -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC data:4byte -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 data:byte -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC data:4byte -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC data:4byte -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC data:4byte -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 data:byte -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 data:byte -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC data:4byte -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte -lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 data:string -lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 data:string -lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 data:string -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 data:string -lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 data:string -lbl_1_data_135 = .data:0x00000135; // type:object size:0xF +lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 scope:local data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 scope:local data:string +lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 scope:local data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 scope:local data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0xF scope:local lbl_1_data_144 = .data:0x00000144; // type:object size:0x18 -lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 data:string -lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 data:string -lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 data:string +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 scope:local data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 scope:local data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 scope:local data:string jumptable_1_data_19C = .data:0x0000019C; // type:object size:0x54 scope:local jumptable_1_data_1F0 = .data:0x000001F0; // type:object size:0x54 scope:local -lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A data:string -lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A data:string -lbl_1_data_278 = .data:0x00000278; // type:object size:0xE data:string -lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 data:string -lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 data:string -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 data:string -lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 data:string -lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 data:string -lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 data:string -lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 data:string -lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 +lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A scope:local data:string +lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A scope:local data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0xE scope:local data:string +lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 scope:local data:string +lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 scope:local data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 scope:local data:string +lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 scope:local data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 scope:local data:string +lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 scope:local data:string +lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 scope:local lbl_1_data_308 = .data:0x00000308; // type:object size:0x20 lbl_1_data_328 = .data:0x00000328; // type:object size:0x60 -lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 data:string -lbl_1_data_399 = .data:0x00000399; // type:object size:0x33 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 scope:local data:string +lbl_1_data_399 = .data:0x00000399; // type:object size:0x2 scope:local data:string lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x10 lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x4 data:4byte lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x8 data:4byte -lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 data:string -lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 data:string -lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 data:string -lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 data:string -lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 data:string -lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 data:string -lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 data:string -lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 data:string -lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 data:string -lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 data:string -lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 data:string -lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA data:string -lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C data:string -lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D data:string -lbl_1_data_50C = .data:0x0000050C; // type:object size:0x14 -lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 data:string -lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 data:string -lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 data:string -lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 data:string -lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 data:string -lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 data:string -lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 data:string -lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 data:string -lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 data:string -lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 data:string -lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA data:string -lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C data:string -lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D data:string -lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 data:string -lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C data:string +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 scope:local data:string +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 scope:local data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 scope:local data:string +lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 scope:local data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 scope:local data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 scope:local data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 scope:local data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 scope:local data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 scope:local data:string +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 scope:local data:string +lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 scope:local data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA scope:local data:string +lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C scope:local data:string +lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D scope:local data:string +lbl_1_data_50C = .data:0x0000050C; // type:object size:0x14 scope:local +lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 scope:local data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 scope:local data:string +lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 scope:local data:string +lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 scope:local data:string +lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 scope:local data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 scope:local data:string +lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 scope:local data:string +lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 scope:local data:string +lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 scope:local data:string +lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 scope:local data:string +lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA scope:local data:string +lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C scope:local data:string +lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D scope:local data:string +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 scope:local data:string +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C scope:local data:string lbl_1_data_668 = .data:0x00000668; // type:object size:0x30 lbl_1_data_698 = .data:0x00000698; // type:object size:0x3C -lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 data:string -lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 data:string -lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 data:string -lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 data:string -lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 data:string -lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 data:string -lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 data:string -lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 data:string -lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 data:string -lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 data:string -lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA data:string -lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C data:string -lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D data:string -lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 data:string -lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 scope:local data:string +lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 scope:local data:string +lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 scope:local data:string +lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 scope:local data:string +lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 scope:local data:string +lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 scope:local data:string +lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 scope:local data:string +lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 scope:local data:string +lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 scope:local data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 scope:local data:string +lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA scope:local data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C scope:local data:string +lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D scope:local data:string +lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 scope:local data:string +lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C scope:local lbl_1_data_81C = .data:0x0000081C; // type:object size:0x34 lbl_1_data_850 = .data:0x00000850; // type:object size:0x3C0 lbl_1_data_C10 = .data:0x00000C10; // type:object size:0x10 lbl_1_data_C20 = .data:0x00000C20; // type:object size:0x4 data:4byte lbl_1_data_C24 = .data:0x00000C24; // type:object size:0x8 data:4byte -lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 data:string -lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 data:string -lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 data:string -lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 data:string -lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 data:string -lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 data:string -lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 data:string -lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 data:string -lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 data:string -lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 data:string -lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 data:string -lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA data:string -lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C data:string -lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D data:string -lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C data:string -lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 data:string -lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 data:string -lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0xB -lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 data:string -lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 data:string -lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 data:string -lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 data:string -lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 data:string -lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 data:string -lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 data:string -lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 data:string -lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 data:string -lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 data:string -lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA data:string -lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C data:string -lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D data:string -lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 data:string -lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x20 +lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 scope:local data:string +lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 scope:local data:string +lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 scope:local data:string +lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 scope:local data:string +lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 scope:local data:string +lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 scope:local data:string +lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 scope:local data:string +lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 scope:local data:string +lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 scope:local data:string +lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 scope:local data:string +lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 scope:local data:string +lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA scope:local data:string +lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C scope:local data:string +lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D scope:local data:string +lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C scope:local data:string +lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 scope:local data:string +lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 scope:local data:string +lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0xB scope:local +lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 scope:local data:string +lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 scope:local data:string +lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 scope:local data:string +lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 scope:local data:string +lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 scope:local data:string +lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 scope:local data:string +lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 scope:local data:string +lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 scope:local data:string +lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 scope:local data:string +lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 scope:local data:string +lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA scope:local data:string +lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C scope:local data:string +lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D scope:local data:string +lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 scope:local data:string +lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x20 scope:local lbl_1_data_EF8 = .data:0x00000EF8; // type:object size:0x10 lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x4 data:4byte lbl_1_data_F0C = .data:0x00000F0C; // type:object size:0x8 data:4byte lbl_1_data_F14 = .data:0x00000F14; // type:object size:0x4 data:4byte -lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 data:string -lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 data:string -lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 data:string -lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 data:string -lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 data:string -lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 data:string -lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 data:string -lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 data:string -lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 data:string -lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 data:string -lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 data:string -lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA data:string -lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C data:string -lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D data:string -lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 data:string -lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 data:string -lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 data:string -lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 data:string -lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 data:string -lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 data:string -lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 data:string -lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 data:string +lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 scope:local data:string +lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 scope:local data:string +lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 scope:local data:string +lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 scope:local data:string +lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 scope:local data:string +lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 scope:local data:string +lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 scope:local data:string +lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 scope:local data:string +lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 scope:local data:string +lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 scope:local data:string +lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 scope:local data:string +lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA scope:local data:string +lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C scope:local data:string +lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D scope:local data:string +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 scope:local data:string +lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 scope:local data:string +lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 scope:local data:string +lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 scope:local data:string +lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 scope:local data:string +lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 scope:local data:string +lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 scope:local data:string +lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 scope:local data:string lbl_1_data_10E4 = .data:0x000010E4; // type:object size:0x20 -lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF data:string +lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x24 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x54 data:float lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x10 data:4byte diff --git a/config/GMPJ01_00/rels/mstoryDll/symbols.txt b/config/GMPJ01_00/rels/mstoryDll/symbols.txt index 56357717..f9dbaabb 100644 --- a/config/GMPJ01_00/rels/mstoryDll/symbols.txt +++ b/config/GMPJ01_00/rels/mstoryDll/symbols.txt @@ -390,7 +390,7 @@ lbl_1_data_138 = .data:0x00000138; // type:object size:0x10 scope:local data:str lbl_1_data_148 = .data:0x00000148; // type:object size:0x3 scope:local data:string lbl_1_data_14B = .data:0x0000014B; // type:object size:0x1A scope:local data:string lbl_1_data_165 = .data:0x00000165; // type:object size:0x1A scope:local data:string -lbl_1_data_17F = .data:0x0000017F; // type:object size:0x11 +lbl_1_data_17F = .data:0x0000017F; // type:object size:0x11 scope:local lbl_1_data_190 = .data:0x00000190; // type:object size:0x50 lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x3C lbl_1_data_21C = .data:0x0000021C; // type:object size:0x16 scope:local data:string @@ -406,7 +406,7 @@ lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x1C scope:local data:str lbl_1_data_2F5 = .data:0x000002F5; // type:object size:0x1D scope:local data:string lbl_1_data_312 = .data:0x00000312; // type:object size:0x17 scope:local data:string lbl_1_data_329 = .data:0x00000329; // type:object size:0xF scope:local data:string -lbl_1_data_338 = .data:0x00000338; // type:object size:0x1C +lbl_1_data_338 = .data:0x00000338; // type:object size:0x1C scope:local lbl_1_data_354 = .data:0x00000354; // type:object size:0x34 lbl_1_data_388 = .data:0x00000388; // type:object size:0x50 lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x3C @@ -424,7 +424,7 @@ lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x1D scope:local data:str lbl_1_data_505 = .data:0x00000505; // type:object size:0xF scope:local data:string lbl_1_data_514 = .data:0x00000514; // type:object size:0x1B scope:local data:string lbl_1_data_52F = .data:0x0000052F; // type:object size:0x8 scope:local data:string -lbl_1_data_537 = .data:0x00000537; // type:object size:0x9 +lbl_1_data_537 = .data:0x00000537; // type:object size:0x9 scope:local lbl_1_data_540 = .data:0x00000540; // type:object size:0x30 lbl_1_data_570 = .data:0x00000570; // type:object size:0x3C0 lbl_1_data_930 = .data:0x00000930; // type:object size:0x50 @@ -445,7 +445,7 @@ lbl_1_data_ABA = .data:0x00000ABA; // type:object size:0xF scope:local data:stri lbl_1_data_AC9 = .data:0x00000AC9; // type:object size:0x11 scope:local data:string lbl_1_data_ADA = .data:0x00000ADA; // type:object size:0xA scope:local data:string lbl_1_data_AE4 = .data:0x00000AE4; // type:object size:0x9 scope:local data:string -lbl_1_data_AED = .data:0x00000AED; // type:object size:0xB +lbl_1_data_AED = .data:0x00000AED; // type:object size:0xB scope:local lbl_1_data_AF8 = .data:0x00000AF8; // type:object size:0x3C lbl_1_data_B34 = .data:0x00000B34; // type:object size:0x15 scope:local data:string lbl_1_data_B49 = .data:0x00000B49; // type:object size:0x14 scope:local data:string @@ -459,7 +459,7 @@ lbl_1_data_BD8 = .data:0x00000BD8; // type:object size:0xF scope:local data:stri lbl_1_data_BE7 = .data:0x00000BE7; // type:object size:0x1C scope:local data:string lbl_1_data_C03 = .data:0x00000C03; // type:object size:0x1D scope:local data:string lbl_1_data_C20 = .data:0x00000C20; // type:object size:0xF scope:local data:string -lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x21 +lbl_1_data_C2F = .data:0x00000C2F; // type:object size:0x21 scope:local lbl_1_data_C50 = .data:0x00000C50; // type:object size:0x48 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:4byte diff --git a/config/GMPP01_00/rels/mstory2Dll/splits.txt b/config/GMPP01_00/rels/mstory2Dll/splits.txt index 531cd645..cb297417 100644 --- a/config/GMPP01_00/rels/mstory2Dll/splits.txt +++ b/config/GMPP01_00/rels/mstory2Dll/splits.txt @@ -5,3 +5,50 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/mstory2Dll/main.c: + .text start:0x00000000 end:0x00007DB0 + .rodata start:0x00000000 end:0x00000118 + .data start:0x00000000 end:0x000003A0 + .bss start:0x00000000 end:0x00000078 + +REL/mstory2Dll/board_entrance.c: + .text start:0x00007DB0 end:0x0000B37C + .rodata start:0x00000118 end:0x000001A8 + .data start:0x000003A0 end:0x00000520 + .bss start:0x00000078 end:0x00000298 + +REL/mstory2Dll/board_clear.c: + .text start:0x0000B37C end:0x0000E570 + .rodata start:0x000001A8 end:0x00000248 + .data start:0x00000520 end:0x00000698 + .bss start:0x00000298 end:0x000004E0 + +REL/mstory2Dll/board_miss.c: + .text start:0x0000E570 end:0x000123C8 + .rodata start:0x00000248 end:0x00000310 + .data start:0x00000698 end:0x00000850 + .bss start:0x000004E0 end:0x00000790 + +REL/mstory2Dll/mg_clear.c: + .text start:0x000123C8 end:0x00016060 + .rodata start:0x00000310 end:0x000003D0 + .data start:0x00000850 end:0x00000DB8 + .bss start:0x00000790 end:0x00000968 + +REL/mstory2Dll/mg_miss.c: + .text start:0x00016060 end:0x000186D0 + .rodata start:0x000003D0 end:0x00000438 + .data start:0x00000DB8 end:0x00000EF8 + .bss start:0x00000968 end:0x00000B38 + +REL/mstory2Dll/ending.c: + .text start:0x000186D0 end:0x0001B5A4 + .rodata start:0x00000438 end:0x000004B8 + .data start:0x00000EF8 end:0x00001113 + .bss start:0x00000B38 end:0x00000D10 + +REL/mstory2Dll/save.c: + .text start:0x0001B5A4 end:0x0001B9A0 + .rodata start:0x000004B8 end:0x000004C8 + .bss start:0x00000D10 end:0x00000D18 diff --git a/config/GMPP01_00/rels/mstory2Dll/symbols.txt b/config/GMPP01_00/rels/mstory2Dll/symbols.txt index 67aae470..331d554e 100644 --- a/config/GMPP01_00/rels/mstory2Dll/symbols.txt +++ b/config/GMPP01_00/rels/mstory2Dll/symbols.txt @@ -5,7 +5,7 @@ _prolog = .text:0x00000344; // type:function size:0x54 scope:global _epilog = .text:0x00000398; // type:function size:0x4C scope:global fn_1_3E4 = .text:0x000003E4; // type:function size:0x110 fn_1_4F4 = .text:0x000004F4; // type:function size:0x1B8 -fn_1_6AC = .text:0x000006AC; // type:function size:0x1B8 +ObjectSetup = .text:0x000006AC; // type:function size:0x1B8 fn_1_864 = .text:0x00000864; // type:function size:0x28 fn_1_88C = .text:0x0000088C; // type:function size:0x20 fn_1_8AC = .text:0x000008AC; // type:function size:0xD8 @@ -240,420 +240,420 @@ fn_1_18E7C = .text:0x00018E7C; // type:function size:0x48 fn_1_18EC4 = .text:0x00018EC4; // type:function size:0x274 fn_1_19138 = .text:0x00019138; // type:function size:0x1FC fn_1_19334 = .text:0x00019334; // type:function size:0x6B0 -fn_1_199E4 = .text:0x000199E4; // type:function size:0x248 -fn_1_19C2C = .text:0x00019C2C; // type:function size:0x84 -fn_1_19CB0 = .text:0x00019CB0; // type:function size:0x2A8 -fn_1_19F58 = .text:0x00019F58; // type:function size:0xB4 -fn_1_1A00C = .text:0x0001A00C; // type:function size:0x198 -fn_1_1A1A4 = .text:0x0001A1A4; // type:function size:0x208 -fn_1_1A3AC = .text:0x0001A3AC; // type:function size:0x1D0 -fn_1_1A57C = .text:0x0001A57C; // type:function size:0x40 -fn_1_1A5BC = .text:0x0001A5BC; // type:function size:0x254 -fn_1_1A810 = .text:0x0001A810; // type:function size:0x204 -fn_1_1AA14 = .text:0x0001AA14; // type:function size:0xE4 -fn_1_1AAF8 = .text:0x0001AAF8; // type:function size:0x288 -fn_1_1AD80 = .text:0x0001AD80; // type:function size:0xE4 -fn_1_1AE64 = .text:0x0001AE64; // type:function size:0x1B4 -fn_1_1B018 = .text:0x0001B018; // type:function size:0x110 -fn_1_1B128 = .text:0x0001B128; // type:function size:0x234 -fn_1_1B35C = .text:0x0001B35C; // type:function size:0x8C -fn_1_1B3E8 = .text:0x0001B3E8; // type:function size:0x8C -fn_1_1B474 = .text:0x0001B474; // type:function size:0x130 -fn_1_1B5A4 = .text:0x0001B5A4; // type:function size:0xEC -fn_1_1B690 = .text:0x0001B690; // type:function size:0x224 -fn_1_1B8B4 = .text:0x0001B8B4; // type:function size:0x9C -fn_1_1B950 = .text:0x0001B950; // type:function size:0x50 +fn_1_199A0 = .text:0x000199E4; // type:function size:0x248 +fn_1_19BE8 = .text:0x00019C2C; // type:function size:0x84 +fn_1_19C6C = .text:0x00019CB0; // type:function size:0x2A8 +fn_1_19F14 = .text:0x00019F58; // type:function size:0xB4 +fn_1_19FC8 = .text:0x0001A00C; // type:function size:0x198 +fn_1_1A160 = .text:0x0001A1A4; // type:function size:0x208 +fn_1_1A368 = .text:0x0001A3AC; // type:function size:0x1D0 +fn_1_1A538 = .text:0x0001A57C; // type:function size:0x40 +fn_1_1A578 = .text:0x0001A5BC; // type:function size:0x254 +fn_1_1A7CC = .text:0x0001A810; // type:function size:0x204 +fn_1_1A9D0 = .text:0x0001AA14; // type:function size:0xE4 +fn_1_1AAB4 = .text:0x0001AAF8; // type:function size:0x288 +fn_1_1AD3C = .text:0x0001AD80; // type:function size:0xE4 +fn_1_1AE20 = .text:0x0001AE64; // type:function size:0x1B4 +fn_1_1AFD4 = .text:0x0001B018; // type:function size:0x110 +fn_1_1B0E4 = .text:0x0001B128; // type:function size:0x234 +fn_1_1B318 = .text:0x0001B35C; // type:function size:0x8C +fn_1_1B3A4 = .text:0x0001B3E8; // type:function size:0x8C +fn_1_1B430 = .text:0x0001B474; // type:function size:0x130 +fn_1_1B560 = .text:0x0001B5A4; // type:function size:0xEC +fn_1_1B64C = .text:0x0001B690; // type:function size:0x224 +fn_1_1B870 = .text:0x0001B8B4; // type:function size:0x9C +fn_1_1B90C = .text:0x0001B950; // type:function size:0x50 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC data:4byte -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC data:4byte -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC data:4byte -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 data:byte -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC data:4byte -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC data:4byte -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC data:4byte -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C data:4byte -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 data:byte -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC data:4byte -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC data:4byte -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 data:byte -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC data:4byte -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC data:4byte -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC data:4byte -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 data:byte -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 data:byte -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC data:4byte -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte -lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 data:string -lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 data:string -lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 data:string -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 data:string -lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 data:string -lbl_1_data_135 = .data:0x00000135; // type:object size:0xF +lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 scope:local data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 scope:local data:string +lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 scope:local data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 scope:local data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0xF scope:local lbl_1_data_144 = .data:0x00000144; // type:object size:0x18 -lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 data:string -lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 data:string -lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 data:string +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 scope:local data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 scope:local data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 scope:local data:string jumptable_1_data_19C = .data:0x0000019C; // type:object size:0x54 scope:local jumptable_1_data_1F0 = .data:0x000001F0; // type:object size:0x54 scope:local -lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A data:string -lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A data:string -lbl_1_data_278 = .data:0x00000278; // type:object size:0xE data:string -lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 data:string -lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 data:string -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 data:string -lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 data:string -lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 data:string -lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 data:string -lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 data:string -lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 +lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A scope:local data:string +lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A scope:local data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0xE scope:local data:string +lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 scope:local data:string +lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 scope:local data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 scope:local data:string +lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 scope:local data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 scope:local data:string +lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 scope:local data:string +lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 scope:local lbl_1_data_308 = .data:0x00000308; // type:object size:0x20 lbl_1_data_328 = .data:0x00000328; // type:object size:0x60 -lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 data:string -lbl_1_data_399 = .data:0x00000399; // type:object size:0x33 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 scope:local data:string +lbl_1_data_399 = .data:0x00000399; // type:object size:0x2 scope:local data:string lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x10 lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x4 data:4byte lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x8 data:4byte -lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 data:string -lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 data:string -lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 data:string -lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 data:string -lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 data:string -lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 data:string -lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 data:string -lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 data:string -lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 data:string -lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 data:string -lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 data:string -lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA data:string -lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C data:string -lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D data:string -lbl_1_data_50C = .data:0x0000050C; // type:object size:0x14 -lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 data:string -lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 data:string -lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 data:string -lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 data:string -lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 data:string -lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 data:string -lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 data:string -lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 data:string -lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 data:string -lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 data:string -lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA data:string -lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C data:string -lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D data:string -lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 data:string -lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C data:string +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 scope:local data:string +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 scope:local data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 scope:local data:string +lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 scope:local data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 scope:local data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 scope:local data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 scope:local data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 scope:local data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 scope:local data:string +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 scope:local data:string +lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 scope:local data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA scope:local data:string +lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C scope:local data:string +lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D scope:local data:string +lbl_1_data_50C = .data:0x0000050C; // type:object size:0x14 scope:local +lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 scope:local data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 scope:local data:string +lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 scope:local data:string +lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 scope:local data:string +lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 scope:local data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 scope:local data:string +lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 scope:local data:string +lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 scope:local data:string +lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 scope:local data:string +lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 scope:local data:string +lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA scope:local data:string +lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C scope:local data:string +lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D scope:local data:string +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 scope:local data:string +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C scope:local data:string lbl_1_data_668 = .data:0x00000668; // type:object size:0x30 lbl_1_data_698 = .data:0x00000698; // type:object size:0x3C -lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 data:string -lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 data:string -lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 data:string -lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 data:string -lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 data:string -lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 data:string -lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 data:string -lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 data:string -lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 data:string -lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 data:string -lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA data:string -lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C data:string -lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D data:string -lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 data:string -lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 scope:local data:string +lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 scope:local data:string +lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 scope:local data:string +lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 scope:local data:string +lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 scope:local data:string +lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 scope:local data:string +lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 scope:local data:string +lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 scope:local data:string +lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 scope:local data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 scope:local data:string +lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA scope:local data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C scope:local data:string +lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D scope:local data:string +lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 scope:local data:string +lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C scope:local lbl_1_data_81C = .data:0x0000081C; // type:object size:0x34 lbl_1_data_850 = .data:0x00000850; // type:object size:0x3C0 lbl_1_data_C10 = .data:0x00000C10; // type:object size:0x10 lbl_1_data_C20 = .data:0x00000C20; // type:object size:0x4 data:4byte lbl_1_data_C24 = .data:0x00000C24; // type:object size:0x8 data:4byte -lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 data:string -lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 data:string -lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 data:string -lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 data:string -lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 data:string -lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 data:string -lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 data:string -lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 data:string -lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 data:string -lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 data:string -lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 data:string -lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA data:string -lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C data:string -lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D data:string -lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C data:string -lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 data:string -lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 data:string -lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0xB -lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 data:string -lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 data:string -lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 data:string -lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 data:string -lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 data:string -lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 data:string -lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 data:string -lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 data:string -lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 data:string -lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 data:string -lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA data:string -lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C data:string -lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D data:string -lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 data:string -lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x20 +lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 scope:local data:string +lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 scope:local data:string +lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 scope:local data:string +lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 scope:local data:string +lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 scope:local data:string +lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 scope:local data:string +lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 scope:local data:string +lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 scope:local data:string +lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 scope:local data:string +lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 scope:local data:string +lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 scope:local data:string +lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA scope:local data:string +lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C scope:local data:string +lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D scope:local data:string +lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C scope:local data:string +lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 scope:local data:string +lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 scope:local data:string +lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0xB scope:local +lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 scope:local data:string +lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 scope:local data:string +lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 scope:local data:string +lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 scope:local data:string +lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 scope:local data:string +lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 scope:local data:string +lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 scope:local data:string +lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 scope:local data:string +lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 scope:local data:string +lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 scope:local data:string +lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA scope:local data:string +lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C scope:local data:string +lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D scope:local data:string +lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 scope:local data:string +lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x20 scope:local lbl_1_data_EF8 = .data:0x00000EF8; // type:object size:0x10 lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x4 data:4byte lbl_1_data_F0C = .data:0x00000F0C; // type:object size:0x8 data:4byte lbl_1_data_F14 = .data:0x00000F14; // type:object size:0x4 data:4byte -lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 data:string -lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 data:string -lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 data:string -lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 data:string -lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 data:string -lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 data:string -lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 data:string -lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 data:string -lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 data:string -lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 data:string -lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 data:string -lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA data:string -lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C data:string -lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D data:string -lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 data:string -lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 data:string -lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 data:string -lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 data:string -lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 data:string -lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 data:string -lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 data:string -lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 data:string +lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 scope:local data:string +lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 scope:local data:string +lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 scope:local data:string +lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 scope:local data:string +lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 scope:local data:string +lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 scope:local data:string +lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 scope:local data:string +lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 scope:local data:string +lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 scope:local data:string +lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 scope:local data:string +lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 scope:local data:string +lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA scope:local data:string +lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C scope:local data:string +lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D scope:local data:string +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 scope:local data:string +lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 scope:local data:string +lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 scope:local data:string +lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 scope:local data:string +lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 scope:local data:string +lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 scope:local data:string +lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 scope:local data:string +lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 scope:local data:string lbl_1_data_10E4 = .data:0x000010E4; // type:object size:0x20 -lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF data:string +lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x24 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x54 data:float lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x10 data:4byte diff --git a/config/GMPP01_00/rels/w06Dll/symbols.txt b/config/GMPP01_00/rels/w06Dll/symbols.txt index 43936054..aad0e22c 100644 --- a/config/GMPP01_00/rels/w06Dll/symbols.txt +++ b/config/GMPP01_00/rels/w06Dll/symbols.txt @@ -3,371 +3,371 @@ _prolog = .text:0x00000030; // type:function size:0x64 scope:global _epilog = .text:0x00000094; // type:function size:0x4C scope:global BoardCreate = .text:0x000000E0; // type:function size:0x4C4 BoardDestroy = .text:0x000005A4; // type:function size:0x18C -fn_1_730 = .text:0x00000730; // type:function size:0x6C -fn_1_79C = .text:0x0000079C; // type:function size:0x20 -fn_1_7BC = .text:0x000007BC; // type:function size:0x144 -fn_1_900 = .text:0x00000900; // type:function size:0x84 -fn_1_984 = .text:0x00000984; // type:function size:0x3C -fn_1_9C0 = .text:0x000009C0; // type:function size:0x168 -fn_1_B28 = .text:0x00000B28; // type:function size:0x34 -fn_1_B5C = .text:0x00000B5C; // type:function size:0x214 +fn_1_730 = .text:0x00000730; // type:function size:0x6C scope:local +fn_1_79C = .text:0x0000079C; // type:function size:0x20 scope:local +fn_1_7BC = .text:0x000007BC; // type:function size:0x144 scope:local +fn_1_900 = .text:0x00000900; // type:function size:0x84 scope:local +fn_1_984 = .text:0x00000984; // type:function size:0x3C scope:local +fn_1_9C0 = .text:0x000009C0; // type:function size:0x168 scope:local +fn_1_B28 = .text:0x00000B28; // type:function size:0x34 scope:local +fn_1_B5C = .text:0x00000B5C; // type:function size:0x214 scope:local fn_1_D70 = .text:0x00000D70; // type:function size:0x1FC fn_1_F6C = .text:0x00000F6C; // type:function size:0xE8 fn_1_1054 = .text:0x00001054; // type:function size:0x90 -fn_1_10E4 = .text:0x000010E4; // type:function size:0x64 -fn_1_1148 = .text:0x00001148; // type:function size:0x68 -fn_1_11B0 = .text:0x000011B0; // type:function size:0xF0 -fn_1_12A0 = .text:0x000012A0; // type:function size:0x32C -fn_1_15CC = .text:0x000015CC; // type:function size:0x614 -fn_1_1BE0 = .text:0x00001BE0; // type:function size:0xD0 -fn_1_1CB0 = .text:0x00001CB0; // type:function size:0xAC -fn_1_1D5C = .text:0x00001D5C; // type:function size:0xD4 -fn_1_1E30 = .text:0x00001E30; // type:function size:0xD8 -fn_1_1F08 = .text:0x00001F08; // type:function size:0x140 -fn_1_2048 = .text:0x00002048; // type:function size:0x84 -fn_1_20CC = .text:0x000020CC; // type:function size:0xA8 -fn_1_2174 = .text:0x00002174; // type:function size:0x58 -fn_1_21CC = .text:0x000021CC; // type:function size:0x54 -fn_1_2220 = .text:0x00002220; // type:function size:0x21C -fn_1_243C = .text:0x0000243C; // type:function size:0x5E0 -fn_1_2A1C = .text:0x00002A1C; // type:function size:0x144 -fn_1_2B60 = .text:0x00002B60; // type:function size:0xB8 -fn_1_2C18 = .text:0x00002C18; // type:function size:0x178 -fn_1_2D90 = .text:0x00002D90; // type:function size:0x40 -fn_1_2DD0 = .text:0x00002DD0; // type:function size:0x48 -fn_1_2E18 = .text:0x00002E18; // type:function size:0xDC -fn_1_2EF4 = .text:0x00002EF4; // type:function size:0x57C -fn_1_3470 = .text:0x00003470; // type:function size:0xF0 -fn_1_3560 = .text:0x00003560; // type:function size:0x5C -fn_1_35BC = .text:0x000035BC; // type:function size:0x48 -fn_1_3604 = .text:0x00003604; // type:function size:0x94 -fn_1_3698 = .text:0x00003698; // type:function size:0x2DC -fn_1_3974 = .text:0x00003974; // type:function size:0x6FC -fn_1_4070 = .text:0x00004070; // type:function size:0xB4 -fn_1_4124 = .text:0x00004124; // type:function size:0x70 -fn_1_4194 = .text:0x00004194; // type:function size:0x118 -fn_1_42AC = .text:0x000042AC; // type:function size:0x130 -fn_1_43DC = .text:0x000043DC; // type:function size:0x84 -fn_1_4460 = .text:0x00004460; // type:function size:0x418 +fn_1_10E4 = .text:0x000010E4; // type:function size:0x64 scope:local +fn_1_1148 = .text:0x00001148; // type:function size:0x68 scope:local +fn_1_11B0 = .text:0x000011B0; // type:function size:0xF0 scope:local +fn_1_12A0 = .text:0x000012A0; // type:function size:0x32C scope:local +fn_1_15CC = .text:0x000015CC; // type:function size:0x614 scope:local +fn_1_1BE0 = .text:0x00001BE0; // type:function size:0xD0 scope:local +fn_1_1CB0 = .text:0x00001CB0; // type:function size:0xAC scope:local +fn_1_1D5C = .text:0x00001D5C; // type:function size:0xD4 scope:local +fn_1_1E30 = .text:0x00001E30; // type:function size:0xD8 scope:local +fn_1_1F08 = .text:0x00001F08; // type:function size:0x140 scope:local +fn_1_2048 = .text:0x00002048; // type:function size:0x84 scope:local +fn_1_20CC = .text:0x000020CC; // type:function size:0xA8 scope:local +fn_1_2174 = .text:0x00002174; // type:function size:0x58 scope:local +fn_1_21CC = .text:0x000021CC; // type:function size:0x54 scope:local +fn_1_2220 = .text:0x00002220; // type:function size:0x21C scope:local +fn_1_243C = .text:0x0000243C; // type:function size:0x5E0 scope:local +fn_1_2A1C = .text:0x00002A1C; // type:function size:0x144 scope:local +fn_1_2B60 = .text:0x00002B60; // type:function size:0xB8 scope:local +fn_1_2C18 = .text:0x00002C18; // type:function size:0x178 scope:local +fn_1_2D90 = .text:0x00002D90; // type:function size:0x40 scope:local +fn_1_2DD0 = .text:0x00002DD0; // type:function size:0x48 scope:local +fn_1_2E18 = .text:0x00002E18; // type:function size:0xDC scope:local +fn_1_2EF4 = .text:0x00002EF4; // type:function size:0x57C scope:local +fn_1_3470 = .text:0x00003470; // type:function size:0xF0 scope:local +fn_1_3560 = .text:0x00003560; // type:function size:0x5C scope:local +fn_1_35BC = .text:0x000035BC; // type:function size:0x48 scope:local +fn_1_3604 = .text:0x00003604; // type:function size:0x94 scope:local +fn_1_3698 = .text:0x00003698; // type:function size:0x2DC scope:local +fn_1_3974 = .text:0x00003974; // type:function size:0x6FC scope:local +fn_1_4070 = .text:0x00004070; // type:function size:0xB4 scope:local +fn_1_4124 = .text:0x00004124; // type:function size:0x70 scope:local +fn_1_4194 = .text:0x00004194; // type:function size:0x118 scope:local +fn_1_42AC = .text:0x000042AC; // type:function size:0x130 scope:local +fn_1_43DC = .text:0x000043DC; // type:function size:0x84 scope:local +fn_1_4460 = .text:0x00004460; // type:function size:0x418 scope:local fn_1_4878 = .text:0x00004878; // type:function size:0x198 fn_1_4A10 = .text:0x00004A10; // type:function size:0x50 fn_1_4A60 = .text:0x00004A60; // type:function size:0xA0 -fn_1_4B00 = .text:0x00004B00; // type:function size:0xA0 -fn_1_4BA0 = .text:0x00004BA0; // type:function size:0x58 -fn_1_4BF8 = .text:0x00004BF8; // type:function size:0x3C0 -fn_1_4FB8 = .text:0x00004FB8; // type:function size:0x1E4 -fn_1_519C = .text:0x0000519C; // type:function size:0x204 -fn_1_53A0 = .text:0x000053A0; // type:function size:0xF0 -fn_1_5490 = .text:0x00005490; // type:function size:0x23C -fn_1_56CC = .text:0x000056CC; // type:function size:0x110 -fn_1_57DC = .text:0x000057DC; // type:function size:0xA0 -fn_1_587C = .text:0x0000587C; // type:function size:0x80 -fn_1_58FC = .text:0x000058FC; // type:function size:0x6C -fn_1_5968 = .text:0x00005968; // type:function size:0x68 -fn_1_59D0 = .text:0x000059D0; // type:function size:0x13C -fn_1_5B0C = .text:0x00005B0C; // type:function size:0x48 -fn_1_5B54 = .text:0x00005B54; // type:function size:0x190 -fn_1_5CE4 = .text:0x00005CE4; // type:function size:0x1D8 -fn_1_5EBC = .text:0x00005EBC; // type:function size:0x40 -fn_1_5EFC = .text:0x00005EFC; // type:function size:0x5C -fn_1_5F58 = .text:0x00005F58; // type:function size:0x114 -fn_1_606C = .text:0x0000606C; // type:function size:0x9A0 -fn_1_6A0C = .text:0x00006A0C; // type:function size:0x240 -fn_1_6C4C = .text:0x00006C4C; // type:function size:0x244 -fn_1_6E90 = .text:0x00006E90; // type:function size:0x60 +fn_1_4B00 = .text:0x00004B00; // type:function size:0xA0 scope:local +fn_1_4BA0 = .text:0x00004BA0; // type:function size:0x58 scope:local +fn_1_4BF8 = .text:0x00004BF8; // type:function size:0x3C0 scope:local +fn_1_4FB8 = .text:0x00004FB8; // type:function size:0x1E4 scope:local +fn_1_519C = .text:0x0000519C; // type:function size:0x204 scope:local +fn_1_53A0 = .text:0x000053A0; // type:function size:0xF0 scope:local +fn_1_5490 = .text:0x00005490; // type:function size:0x23C scope:local +fn_1_56CC = .text:0x000056CC; // type:function size:0x110 scope:local +fn_1_57DC = .text:0x000057DC; // type:function size:0xA0 scope:local +fn_1_587C = .text:0x0000587C; // type:function size:0x80 scope:local +fn_1_58FC = .text:0x000058FC; // type:function size:0x6C scope:local +fn_1_5968 = .text:0x00005968; // type:function size:0x68 scope:local +fn_1_59D0 = .text:0x000059D0; // type:function size:0x13C scope:local +fn_1_5B0C = .text:0x00005B0C; // type:function size:0x48 scope:local +fn_1_5B54 = .text:0x00005B54; // type:function size:0x190 scope:local +fn_1_5CE4 = .text:0x00005CE4; // type:function size:0x1D8 scope:local +fn_1_5EBC = .text:0x00005EBC; // type:function size:0x40 scope:local +fn_1_5EFC = .text:0x00005EFC; // type:function size:0x5C scope:local +fn_1_5F58 = .text:0x00005F58; // type:function size:0x114 scope:local +fn_1_606C = .text:0x0000606C; // type:function size:0x9A0 scope:local +fn_1_6A0C = .text:0x00006A0C; // type:function size:0x240 scope:local +fn_1_6C4C = .text:0x00006C4C; // type:function size:0x244 scope:local +fn_1_6E90 = .text:0x00006E90; // type:function size:0x60 scope:local fn_1_6EF0 = .text:0x00006EF0; // type:function size:0x90 -fn_1_6F80 = .text:0x00006F80; // type:function size:0x290 -fn_1_7210 = .text:0x00007210; // type:function size:0x94 -fn_1_72A4 = .text:0x000072A4; // type:function size:0x28 -fn_1_72CC = .text:0x000072CC; // type:function size:0x120 -fn_1_73EC = .text:0x000073EC; // type:function size:0xD0 -fn_1_74BC = .text:0x000074BC; // type:function size:0xB8 -fn_1_7574 = .text:0x00007574; // type:function size:0x120 -fn_1_7694 = .text:0x00007694; // type:function size:0xEC -fn_1_7780 = .text:0x00007780; // type:function size:0x1E4 -fn_1_7964 = .text:0x00007964; // type:function size:0x26C +fn_1_6F80 = .text:0x00006F80; // type:function size:0x290 scope:local +fn_1_7210 = .text:0x00007210; // type:function size:0x94 scope:local +fn_1_72A4 = .text:0x000072A4; // type:function size:0x28 scope:local +fn_1_72CC = .text:0x000072CC; // type:function size:0x120 scope:local +fn_1_73EC = .text:0x000073EC; // type:function size:0xD0 scope:local +fn_1_74BC = .text:0x000074BC; // type:function size:0xB8 scope:local +fn_1_7574 = .text:0x00007574; // type:function size:0x120 scope:local +fn_1_7674 = .text:0x00007694; // type:function size:0xEC scope:local +fn_1_7760 = .text:0x00007780; // type:function size:0x1E4 scope:local +fn_1_7944 = .text:0x00007964; // type:function size:0x26C scope:local fn_1_7BB0 = .text:0x00007BD0; // type:function size:0x38C fn_1_7F3C = .text:0x00007F5C; // type:function size:0x68 fn_1_7FA4 = .text:0x00007FC4; // type:function size:0x2C0 fn_1_8264 = .text:0x00008284; // type:function size:0xBC -fn_1_8340 = .text:0x00008340; // type:function size:0x100 -fn_1_8440 = .text:0x00008440; // type:function size:0x70 -fn_1_84B0 = .text:0x000084B0; // type:function size:0x5C8 -fn_1_8A78 = .text:0x00008A78; // type:function size:0x4C8 +fn_1_8320 = .text:0x00008340; // type:function size:0x100 scope:local +fn_1_8420 = .text:0x00008440; // type:function size:0x70 scope:local +fn_1_8490 = .text:0x000084B0; // type:function size:0x5C8 scope:local +fn_1_8A58 = .text:0x00008A78; // type:function size:0x4C8 scope:local fn_1_8F20 = .text:0x00008F40; // type:function size:0x2B8 fn_1_91D8 = .text:0x000091F8; // type:function size:0xBC fn_1_9294 = .text:0x000092B4; // type:function size:0x44 fn_1_92D8 = .text:0x000092F8; // type:function size:0xF0 -fn_1_93E8 = .text:0x000093E8; // type:function size:0x10C -fn_1_94F4 = .text:0x000094F4; // type:function size:0xD8 -fn_1_95CC = .text:0x000095CC; // type:function size:0x8B0 -fn_1_9E7C = .text:0x00009E7C; // type:function size:0x5AC -fn_1_A428 = .text:0x0000A428; // type:function size:0x744 -fn_1_AB6C = .text:0x0000AB6C; // type:function size:0x730 -fn_1_B29C = .text:0x0000B29C; // type:function size:0x424 -fn_1_B6C0 = .text:0x0000B6C0; // type:function size:0x240 -fn_1_B900 = .text:0x0000B900; // type:function size:0x230 -fn_1_BB30 = .text:0x0000BB30; // type:function size:0x1F8 -fn_1_BD28 = .text:0x0000BD28; // type:function size:0x3C -fn_1_BD64 = .text:0x0000BD64; // type:function size:0x48 -fn_1_BDAC = .text:0x0000BDAC; // type:function size:0x37C +fn_1_93C8 = .text:0x000093E8; // type:function size:0x10C scope:local +fn_1_94D4 = .text:0x000094F4; // type:function size:0xD8 scope:local +fn_1_95AC = .text:0x000095CC; // type:function size:0x8B0 scope:local +fn_1_9E5C = .text:0x00009E7C; // type:function size:0x5AC scope:local +fn_1_A408 = .text:0x0000A428; // type:function size:0x744 scope:local +fn_1_AB4C = .text:0x0000AB6C; // type:function size:0x730 scope:local +fn_1_B27C = .text:0x0000B29C; // type:function size:0x424 scope:local +fn_1_B6A0 = .text:0x0000B6C0; // type:function size:0x240 scope:local +fn_1_B8E0 = .text:0x0000B900; // type:function size:0x230 scope:local +fn_1_BB10 = .text:0x0000BB30; // type:function size:0x1F8 scope:local +fn_1_BD08 = .text:0x0000BD28; // type:function size:0x3C scope:local +fn_1_BD44 = .text:0x0000BD64; // type:function size:0x48 scope:local +fn_1_BD8C = .text:0x0000BDAC; // type:function size:0x37C scope:local fn_1_C108 = .text:0x0000C128; // type:function size:0x1AC fn_1_C2B4 = .text:0x0000C2D4; // type:function size:0x158 -fn_1_C42C = .text:0x0000C42C; // type:function size:0x5B0 -fn_1_C9DC = .text:0x0000C9DC; // type:function size:0xD0 -fn_1_CAAC = .text:0x0000CAAC; // type:function size:0x40 -fn_1_CAEC = .text:0x0000CAEC; // type:function size:0x1C4 +fn_1_C40C = .text:0x0000C42C; // type:function size:0x5B0 scope:local +fn_1_C9BC = .text:0x0000C9DC; // type:function size:0xD0 scope:local +fn_1_CA8C = .text:0x0000CAAC; // type:function size:0x40 scope:local +fn_1_CACC = .text:0x0000CAEC; // type:function size:0x1C4 scope:local fn_1_CC90 = .text:0x0000CCB0; // type:function size:0x7C fn_1_CD0C = .text:0x0000CD2C; // type:function size:0x398 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:4byte -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:4byte -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x1 data:byte -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x1 data:byte -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x6 data:2byte -lbl_1_rodata_9A = .rodata:0x0000009A; // type:object size:0x1 data:byte -lbl_1_rodata_9E = .rodata:0x0000009E; // type:object size:0x6 data:2byte -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x5 -lbl_1_rodata_F5 = .rodata:0x000000F5; // type:object size:0x7 -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0xC data:4byte -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0xF0 -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x2 data:2byte -lbl_1_data_F2 = .data:0x000000F2; // type:object size:0x2 data:2byte -lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x2 data:2byte -lbl_1_data_F6 = .data:0x000000F6; // type:object size:0x2 data:2byte -lbl_1_data_F8 = .data:0x000000F8; // type:object size:0x8 -lbl_1_data_100 = .data:0x00000100; // type:object size:0x8 -lbl_1_data_108 = .data:0x00000108; // type:object size:0xA0 -lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x2 data:2byte -lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x1 data:byte -lbl_1_data_1AD = .data:0x000001AD; // type:object size:0x3 -lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2 data:2byte -lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0xC -lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x5 data:string -lbl_1_data_1C5 = .data:0x000001C5; // type:object size:0x13 -lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x2 data:2byte -lbl_1_data_1DA = .data:0x000001DA; // type:object size:0x2 data:2byte -lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x2 data:2byte -lbl_1_data_1DE = .data:0x000001DE; // type:object size:0x6 -lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x24 -lbl_1_data_208 = .data:0x00000208; // type:object size:0x20 -lbl_1_data_228 = .data:0x00000228; // type:object size:0x1 data:byte -lbl_1_data_22A = .data:0x0000022A; // type:object size:0x2 data:2byte -lbl_1_data_22C = .data:0x0000022C; // type:object size:0x2 data:2byte -lbl_1_data_230 = .data:0x00000230; // type:object size:0x38 -lbl_1_data_268 = .data:0x00000268; // type:object size:0x5 data:string -lbl_1_data_26D = .data:0x0000026D; // type:object size:0xE -lbl_1_data_27B = .data:0x0000027B; // type:object size:0x4 -lbl_1_data_27F = .data:0x0000027F; // type:object size:0x8 -lbl_1_data_287 = .data:0x00000287; // type:object size:0x12 data:string -lbl_1_data_299 = .data:0x00000299; // type:object size:0x11 data:string -lbl_1_data_2AA = .data:0x000002AA; // type:object size:0x18 data:string -lbl_1_data_2C2 = .data:0x000002C2; // type:object size:0x17 data:string -lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x16 data:string -lbl_1_data_2EF = .data:0x000002EF; // type:object size:0x10 data:string -lbl_1_data_2FF = .data:0x000002FF; // type:object size:0x10 data:string -lbl_1_data_30F = .data:0x0000030F; // type:object size:0x11 data:string -lbl_1_data_320 = .data:0x00000320; // type:object size:0x15 data:string -lbl_1_data_335 = .data:0x00000335; // type:object size:0x15 data:string -lbl_1_data_34A = .data:0x0000034A; // type:object size:0x10 data:string -lbl_1_data_35A = .data:0x0000035A; // type:object size:0x13 data:string -lbl_1_data_36D = .data:0x0000036D; // type:object size:0x13 data:string -lbl_1_data_380 = .data:0x00000380; // type:object size:0x98 -lbl_1_data_418 = .data:0x00000418; // type:object size:0x2 data:2byte -lbl_1_data_41C = .data:0x0000041C; // type:object size:0x18 -lbl_1_data_434 = .data:0x00000434; // type:object size:0x18 -lbl_1_data_44C = .data:0x0000044C; // type:object size:0xC -lbl_1_data_458 = .data:0x00000458; // type:object size:0x20 -lbl_1_data_478 = .data:0x00000478; // type:object size:0x20 -lbl_1_data_498 = .data:0x00000498; // type:object size:0x2 data:2byte -lbl_1_data_49A = .data:0x0000049A; // type:object size:0x2 data:2byte -lbl_1_data_49C = .data:0x0000049C; // type:object size:0x2 data:2byte -lbl_1_data_49E = .data:0x0000049E; // type:object size:0x2 data:2byte -lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x2 data:2byte -lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x2 data:2byte -lbl_1_data_4A4 = .data:0x000004A4; // type:object size:0x8 -lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x20 -lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x20 -lbl_1_data_4EC = .data:0x000004EC; // type:object size:0x24 -lbl_1_data_510 = .data:0x00000510; // type:object size:0x20 -lbl_1_data_530 = .data:0x00000530; // type:object size:0x6 data:string -lbl_1_data_536 = .data:0x00000536; // type:object size:0xB data:string +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x6 scope:local data:2byte +lbl_1_rodata_9A = .rodata:0x0000009A; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_9E = .rodata:0x0000009E; // type:object size:0x6 scope:local data:2byte +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x5 scope:local +lbl_1_rodata_F5 = .rodata:0x000000F5; // type:object size:0x7 scope:local +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_data_0 = .data:0x00000000; // type:object size:0xF0 scope:local +lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x2 scope:local data:2byte +lbl_1_data_F2 = .data:0x000000F2; // type:object size:0x2 scope:local data:2byte +lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x2 scope:local data:2byte +lbl_1_data_F6 = .data:0x000000F6; // type:object size:0x2 scope:local data:2byte +lbl_1_data_F8 = .data:0x000000F8; // type:object size:0x8 scope:local +lbl_1_data_100 = .data:0x00000100; // type:object size:0x8 scope:local +lbl_1_data_108 = .data:0x00000108; // type:object size:0xA0 scope:local +lbl_1_data_1A8 = .data:0x000001A8; // type:object size:0x2 scope:local data:2byte +lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x1 scope:local data:byte +lbl_1_data_1AD = .data:0x000001AD; // type:object size:0x3 scope:local +lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x2 scope:local data:2byte +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0xC scope:local +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x5 scope:local data:string +lbl_1_data_1C5 = .data:0x000001C5; // type:object size:0x13 scope:local +lbl_1_data_1D8 = .data:0x000001D8; // type:object size:0x2 scope:local data:2byte +lbl_1_data_1DA = .data:0x000001DA; // type:object size:0x2 scope:local data:2byte +lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x2 scope:local data:2byte +lbl_1_data_1DE = .data:0x000001DE; // type:object size:0x6 scope:local +lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x24 scope:local +lbl_1_data_208 = .data:0x00000208; // type:object size:0x20 scope:local +lbl_1_data_228 = .data:0x00000228; // type:object size:0x1 scope:local data:byte +lbl_1_data_22A = .data:0x0000022A; // type:object size:0x2 scope:local data:2byte +lbl_1_data_22C = .data:0x0000022C; // type:object size:0x2 scope:local data:2byte +lbl_1_data_230 = .data:0x00000230; // type:object size:0x38 scope:local +lbl_1_data_268 = .data:0x00000268; // type:object size:0x5 scope:local data:string +lbl_1_data_26D = .data:0x0000026D; // type:object size:0xE scope:local +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x4 scope:local +lbl_1_data_27F = .data:0x0000027F; // type:object size:0x8 scope:local +lbl_1_data_287 = .data:0x00000287; // type:object size:0x12 scope:local data:string +lbl_1_data_299 = .data:0x00000299; // type:object size:0x11 scope:local data:string +lbl_1_data_2AA = .data:0x000002AA; // type:object size:0x18 scope:local data:string +lbl_1_data_2C2 = .data:0x000002C2; // type:object size:0x17 scope:local data:string +lbl_1_data_2D9 = .data:0x000002D9; // type:object size:0x16 scope:local data:string +lbl_1_data_2EF = .data:0x000002EF; // type:object size:0x10 scope:local data:string +lbl_1_data_2FF = .data:0x000002FF; // type:object size:0x10 scope:local data:string +lbl_1_data_30F = .data:0x0000030F; // type:object size:0x11 scope:local data:string +lbl_1_data_320 = .data:0x00000320; // type:object size:0x15 scope:local data:string +lbl_1_data_335 = .data:0x00000335; // type:object size:0x15 scope:local data:string +lbl_1_data_34A = .data:0x0000034A; // type:object size:0x10 scope:local data:string +lbl_1_data_35A = .data:0x0000035A; // type:object size:0x13 scope:local data:string +lbl_1_data_36D = .data:0x0000036D; // type:object size:0x13 scope:local data:string +lbl_1_data_380 = .data:0x00000380; // type:object size:0x98 scope:local +lbl_1_data_418 = .data:0x00000418; // type:object size:0x2 scope:local data:2byte +lbl_1_data_41C = .data:0x0000041C; // type:object size:0x18 scope:local +lbl_1_data_434 = .data:0x00000434; // type:object size:0x18 scope:local +lbl_1_data_44C = .data:0x0000044C; // type:object size:0xC scope:local +lbl_1_data_458 = .data:0x00000458; // type:object size:0x20 scope:local +lbl_1_data_478 = .data:0x00000478; // type:object size:0x20 scope:local +lbl_1_data_498 = .data:0x00000498; // type:object size:0x2 scope:local data:2byte +lbl_1_data_49A = .data:0x0000049A; // type:object size:0x2 scope:local data:2byte +lbl_1_data_49C = .data:0x0000049C; // type:object size:0x2 scope:local data:2byte +lbl_1_data_49E = .data:0x0000049E; // type:object size:0x2 scope:local data:2byte +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x2 scope:local data:2byte +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x2 scope:local data:2byte +lbl_1_data_4A4 = .data:0x000004A4; // type:object size:0x8 scope:local +lbl_1_data_4AC = .data:0x000004AC; // type:object size:0x20 scope:local +lbl_1_data_4CC = .data:0x000004CC; // type:object size:0x20 scope:local +lbl_1_data_4EC = .data:0x000004EC; // type:object size:0x24 scope:local +lbl_1_data_510 = .data:0x00000510; // type:object size:0x20 scope:local +lbl_1_data_530 = .data:0x00000530; // type:object size:0x6 scope:local data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0xB scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 scope:local data:4byte lbl_1_bss_C = .bss:0x0000000C; // type:object size:0xC data:2byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 data:byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x1 data:byte -lbl_1_bss_33 = .bss:0x00000033; // type:object size:0x1 data:byte -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 data:2byte -lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x6 -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC data:2byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x1 data:byte -lbl_1_bss_59 = .bss:0x00000059; // type:object size:0x1 data:byte -lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x1 data:byte -lbl_1_bss_5B = .bss:0x0000005B; // type:object size:0x31 -lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 data:4byte -lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x28 data:4byte -lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 data:4byte -lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 data:4byte -lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x2 data:2byte -lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x4 -lbl_1_bss_C6 = .bss:0x000000C6; // type:object size:0x1 data:byte -lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 data:4byte -lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 data:4byte -lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x6 -lbl_1_bss_D6 = .bss:0x000000D6; // type:object size:0xC -lbl_1_bss_E2 = .bss:0x000000E2; // type:object size:0x2 data:2byte -lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x2 data:2byte -lbl_1_bss_E6 = .bss:0x000000E6; // type:object size:0x1 data:byte -lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x4 data:4byte -lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x4 data:4byte -lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x4 data:4byte -lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x1 data:byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 scope:local data:byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x1 scope:local data:byte +lbl_1_bss_33 = .bss:0x00000033; // type:object size:0x1 scope:local data:byte +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_36 = .bss:0x00000036; // type:object size:0x6 scope:local +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0xC scope:local data:2byte +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x1 scope:local data:byte +lbl_1_bss_59 = .bss:0x00000059; // type:object size:0x1 scope:local data:byte +lbl_1_bss_5A = .bss:0x0000005A; // type:object size:0x1 scope:local data:byte +lbl_1_bss_5B = .bss:0x0000005B; // type:object size:0x31 scope:local +lbl_1_bss_8C = .bss:0x0000008C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_90 = .bss:0x00000090; // type:object size:0x28 scope:local data:4byte +lbl_1_bss_B8 = .bss:0x000000B8; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_BC = .bss:0x000000BC; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_C0 = .bss:0x000000C0; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_C2 = .bss:0x000000C2; // type:object size:0x4 scope:local +lbl_1_bss_C6 = .bss:0x000000C6; // type:object size:0x1 scope:local data:byte +lbl_1_bss_C8 = .bss:0x000000C8; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_CC = .bss:0x000000CC; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_D0 = .bss:0x000000D0; // type:object size:0x6 scope:local +lbl_1_bss_D6 = .bss:0x000000D6; // type:object size:0xC scope:local +lbl_1_bss_E2 = .bss:0x000000E2; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x2 scope:local data:2byte +lbl_1_bss_E6 = .bss:0x000000E6; // type:object size:0x1 scope:local data:byte +lbl_1_bss_E8 = .bss:0x000000E8; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_EC = .bss:0x000000EC; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_F0 = .bss:0x000000F0; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_F4 = .bss:0x000000F4; // type:object size:0x1 scope:local data:byte diff --git a/config/GMPP01_02/rels/mstory2Dll/splits.txt b/config/GMPP01_02/rels/mstory2Dll/splits.txt index 531cd645..4359ae61 100644 --- a/config/GMPP01_02/rels/mstory2Dll/splits.txt +++ b/config/GMPP01_02/rels/mstory2Dll/splits.txt @@ -5,3 +5,50 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/mstory2Dll/main.c: + .text start:0x00000000 end:0x00007DB0 + .rodata start:0x00000000 end:0x00000118 + .data start:0x00000000 end:0x000003A0 + .bss start:0x00000000 end:0x00000078 + +REL/mstory2Dll/board_entrance.c: + .text start:0x00007DB0 end:0x0000B37C + .rodata start:0x00000118 end:0x000001A8 + .data start:0x000003A0 end:0x00000520 + .bss start:0x00000078 end:0x00000298 + +REL/mstory2Dll/board_clear.c: + .text start:0x0000B37C end:0x0000E570 + .rodata start:0x000001A8 end:0x00000248 + .data start:0x00000520 end:0x00000698 + .bss start:0x00000298 end:0x000004E0 + +REL/mstory2Dll/board_miss.c: + .text start:0x0000E570 end:0x000123C8 + .rodata start:0x00000248 end:0x00000310 + .data start:0x00000698 end:0x00000850 + .bss start:0x000004E0 end:0x00000790 + +REL/mstory2Dll/mg_clear.c: + .text start:0x000123C8 end:0x00016060 + .rodata start:0x00000310 end:0x000003D0 + .data start:0x00000850 end:0x00000DB8 + .bss start:0x00000790 end:0x00000968 + +REL/mstory2Dll/mg_miss.c: + .text start:0x00016060 end:0x000186D0 + .rodata start:0x000003D0 end:0x00000438 + .data start:0x00000DB8 end:0x00000EF8 + .bss start:0x00000968 end:0x00000B38 + +REL/mstory2Dll/ending.c: + .text start:0x000186D0 end:0x0001B5A4 + .rodata start:0x00000438 end:0x000004B8 + .data start:0x00000EF8 end:0x00001113 + .bss start:0x00000B38 end:0x00000D10 + +REL/mstory2Dll/save.c: + .text start:0x0001B5A4 end:0x0001B9B8 + .rodata start:0x000004B8 end:0x000004C8 + .bss start:0x00000D10 end:0x00000D18 diff --git a/config/GMPP01_02/rels/mstory2Dll/symbols.txt b/config/GMPP01_02/rels/mstory2Dll/symbols.txt index a43c0850..7c85e645 100644 --- a/config/GMPP01_02/rels/mstory2Dll/symbols.txt +++ b/config/GMPP01_02/rels/mstory2Dll/symbols.txt @@ -5,7 +5,7 @@ _prolog = .text:0x00000344; // type:function size:0x54 scope:global _epilog = .text:0x00000398; // type:function size:0x4C scope:global fn_1_3E4 = .text:0x000003E4; // type:function size:0x110 fn_1_4F4 = .text:0x000004F4; // type:function size:0x1B8 -fn_1_6AC = .text:0x000006AC; // type:function size:0x1B8 +ObjectSetup = .text:0x000006AC; // type:function size:0x1B8 fn_1_864 = .text:0x00000864; // type:function size:0x28 fn_1_88C = .text:0x0000088C; // type:function size:0x20 fn_1_8AC = .text:0x000008AC; // type:function size:0xD8 @@ -209,8 +209,8 @@ fn_1_16060 = .text:0x00016060; // type:function size:0x118 fn_1_16178 = .text:0x00016178; // type:function size:0x8C fn_1_16204 = .text:0x00016204; // type:function size:0x3AC fn_1_165B0 = .text:0x000165B0; // type:function size:0x5C -fn_1_1660C = .text:0x0001660C; // type:function size:0x110 -fn_1_1671C = .text:0x0001671C; // type:function size:0x194 +fn_1_1661C = .text:0x0001660C; // type:function size:0x110 +fn_1_1670C = .text:0x0001671C; // type:function size:0x194 fn_1_168B0 = .text:0x000168B0; // type:function size:0xD4 fn_1_16984 = .text:0x00016984; // type:function size:0x50 fn_1_169D4 = .text:0x000169D4; // type:function size:0x4 @@ -240,420 +240,420 @@ fn_1_18E7C = .text:0x00018E7C; // type:function size:0x48 fn_1_18EC4 = .text:0x00018EC4; // type:function size:0x274 fn_1_19138 = .text:0x00019138; // type:function size:0x1FC fn_1_19334 = .text:0x00019334; // type:function size:0x6B0 -fn_1_199E4 = .text:0x000199E4; // type:function size:0x248 -fn_1_19C2C = .text:0x00019C2C; // type:function size:0x84 -fn_1_19CB0 = .text:0x00019CB0; // type:function size:0x2A8 -fn_1_19F58 = .text:0x00019F58; // type:function size:0xB4 -fn_1_1A00C = .text:0x0001A00C; // type:function size:0x198 -fn_1_1A1A4 = .text:0x0001A1A4; // type:function size:0x208 -fn_1_1A3AC = .text:0x0001A3AC; // type:function size:0x1D0 -fn_1_1A57C = .text:0x0001A57C; // type:function size:0x40 -fn_1_1A5BC = .text:0x0001A5BC; // type:function size:0x254 -fn_1_1A810 = .text:0x0001A810; // type:function size:0x204 -fn_1_1AA14 = .text:0x0001AA14; // type:function size:0xE4 -fn_1_1AAF8 = .text:0x0001AAF8; // type:function size:0x288 -fn_1_1AD80 = .text:0x0001AD80; // type:function size:0xE4 -fn_1_1AE64 = .text:0x0001AE64; // type:function size:0x1B4 -fn_1_1B018 = .text:0x0001B018; // type:function size:0x110 -fn_1_1B128 = .text:0x0001B128; // type:function size:0x234 -fn_1_1B35C = .text:0x0001B35C; // type:function size:0x8C -fn_1_1B3E8 = .text:0x0001B3E8; // type:function size:0x8C -fn_1_1B474 = .text:0x0001B474; // type:function size:0x130 -fn_1_1B5A4 = .text:0x0001B5A4; // type:function size:0xEC -fn_1_1B690 = .text:0x0001B690; // type:function size:0x23C -fn_1_1B8CC = .text:0x0001B8CC; // type:function size:0x9C -fn_1_1B968 = .text:0x0001B968; // type:function size:0x50 +fn_1_199A0 = .text:0x000199E4; // type:function size:0x248 +fn_1_19BE8 = .text:0x00019C2C; // type:function size:0x84 +fn_1_19C6C = .text:0x00019CB0; // type:function size:0x2A8 +fn_1_19F14 = .text:0x00019F58; // type:function size:0xB4 +fn_1_19FC8 = .text:0x0001A00C; // type:function size:0x198 +fn_1_1A160 = .text:0x0001A1A4; // type:function size:0x208 +fn_1_1A368 = .text:0x0001A3AC; // type:function size:0x1D0 +fn_1_1A538 = .text:0x0001A57C; // type:function size:0x40 +fn_1_1A578 = .text:0x0001A5BC; // type:function size:0x254 +fn_1_1A7CC = .text:0x0001A810; // type:function size:0x204 +fn_1_1A9D0 = .text:0x0001AA14; // type:function size:0xE4 +fn_1_1AAB4 = .text:0x0001AAF8; // type:function size:0x288 +fn_1_1AD3C = .text:0x0001AD80; // type:function size:0xE4 +fn_1_1AE20 = .text:0x0001AE64; // type:function size:0x1B4 +fn_1_1AFD4 = .text:0x0001B018; // type:function size:0x110 +fn_1_1B0E4 = .text:0x0001B128; // type:function size:0x234 +fn_1_1B318 = .text:0x0001B35C; // type:function size:0x8C +fn_1_1B3A4 = .text:0x0001B3E8; // type:function size:0x8C +fn_1_1B430 = .text:0x0001B474; // type:function size:0x130 +fn_1_1B560 = .text:0x0001B5A4; // type:function size:0xEC +fn_1_1B64C = .text:0x0001B690; // type:function size:0x23C +fn_1_1B870 = .text:0x0001B8CC; // type:function size:0x9C +fn_1_1B90C = .text:0x0001B968; // type:function size:0x50 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC data:4byte -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC data:4byte -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC data:4byte -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 data:byte -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC data:4byte -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC data:4byte -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC data:4byte -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C data:4byte -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 data:byte -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC data:4byte -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC data:4byte -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 data:byte -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC data:4byte -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC data:4byte -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC data:4byte -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 data:byte -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 data:byte -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC data:4byte -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte -lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 data:string -lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 data:string -lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 data:string -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 data:string -lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 data:string -lbl_1_data_135 = .data:0x00000135; // type:object size:0xF +lbl_1_data_70 = .data:0x00000070; // type:object size:0x29 scope:local data:string +lbl_1_data_99 = .data:0x00000099; // type:object size:0x26 scope:local data:string +lbl_1_data_BF = .data:0x000000BF; // type:object size:0x25 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x29 scope:local data:string +lbl_1_data_10D = .data:0x0000010D; // type:object size:0x28 scope:local data:string +lbl_1_data_135 = .data:0x00000135; // type:object size:0xF scope:local lbl_1_data_144 = .data:0x00000144; // type:object size:0x18 -lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 data:string -lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 data:string -lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 data:string +lbl_1_data_15C = .data:0x0000015C; // type:object size:0x28 scope:local data:string +lbl_1_data_184 = .data:0x00000184; // type:object size:0x3 scope:local data:string +lbl_1_data_187 = .data:0x00000187; // type:object size:0x15 scope:local data:string jumptable_1_data_19C = .data:0x0000019C; // type:object size:0x54 scope:local jumptable_1_data_1F0 = .data:0x000001F0; // type:object size:0x54 scope:local -lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A data:string -lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A data:string -lbl_1_data_278 = .data:0x00000278; // type:object size:0xE data:string -lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 data:string -lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 data:string -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 data:string -lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 data:string -lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 data:string -lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 data:string -lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 data:string -lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 +lbl_1_data_244 = .data:0x00000244; // type:object size:0x1A scope:local data:string +lbl_1_data_25E = .data:0x0000025E; // type:object size:0x1A scope:local data:string +lbl_1_data_278 = .data:0x00000278; // type:object size:0xE scope:local data:string +lbl_1_data_286 = .data:0x00000286; // type:object size:0x10 scope:local data:string +lbl_1_data_296 = .data:0x00000296; // type:object size:0x10 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x10 scope:local data:string +lbl_1_data_2B6 = .data:0x000002B6; // type:object size:0x10 scope:local data:string +lbl_1_data_2C6 = .data:0x000002C6; // type:object size:0x10 scope:local data:string +lbl_1_data_2D6 = .data:0x000002D6; // type:object size:0x10 scope:local data:string +lbl_1_data_2E6 = .data:0x000002E6; // type:object size:0x10 scope:local data:string +lbl_1_data_2F6 = .data:0x000002F6; // type:object size:0x12 scope:local lbl_1_data_308 = .data:0x00000308; // type:object size:0x20 lbl_1_data_328 = .data:0x00000328; // type:object size:0x60 -lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 data:string -lbl_1_data_399 = .data:0x00000399; // type:object size:0x33 +lbl_1_data_388 = .data:0x00000388; // type:object size:0x11 scope:local data:string +lbl_1_data_399 = .data:0x00000399; // type:object size:0x2 scope:local data:string lbl_1_data_3CC = .data:0x000003CC; // type:object size:0x10 lbl_1_data_3DC = .data:0x000003DC; // type:object size:0x4 data:4byte lbl_1_data_3E0 = .data:0x000003E0; // type:object size:0x8 data:4byte -lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 data:string -lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 data:string -lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 data:string -lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 data:string -lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 data:string -lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 data:string -lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 data:string -lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 data:string -lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 data:string -lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 data:string -lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 data:string -lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA data:string -lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C data:string -lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D data:string -lbl_1_data_50C = .data:0x0000050C; // type:object size:0x14 -lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 data:string -lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 data:string -lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 data:string -lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 data:string -lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 data:string -lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 data:string -lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 data:string -lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 data:string -lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 data:string -lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 data:string -lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA data:string -lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C data:string -lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D data:string -lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 data:string -lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C data:string +lbl_1_data_3E8 = .data:0x000003E8; // type:object size:0x14 scope:local data:string +lbl_1_data_3FC = .data:0x000003FC; // type:object size:0x15 scope:local data:string +lbl_1_data_411 = .data:0x00000411; // type:object size:0x14 scope:local data:string +lbl_1_data_425 = .data:0x00000425; // type:object size:0x15 scope:local data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0x14 scope:local data:string +lbl_1_data_44E = .data:0x0000044E; // type:object size:0x15 scope:local data:string +lbl_1_data_463 = .data:0x00000463; // type:object size:0x14 scope:local data:string +lbl_1_data_477 = .data:0x00000477; // type:object size:0x15 scope:local data:string +lbl_1_data_48C = .data:0x0000048C; // type:object size:0x14 scope:local data:string +lbl_1_data_4A0 = .data:0x000004A0; // type:object size:0x15 scope:local data:string +lbl_1_data_4B5 = .data:0x000004B5; // type:object size:0x14 scope:local data:string +lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0xA scope:local data:string +lbl_1_data_4D3 = .data:0x000004D3; // type:object size:0x1C scope:local data:string +lbl_1_data_4EF = .data:0x000004EF; // type:object size:0x1D scope:local data:string +lbl_1_data_50C = .data:0x0000050C; // type:object size:0x14 scope:local +lbl_1_data_520 = .data:0x00000520; // type:object size:0x16 scope:local data:string +lbl_1_data_536 = .data:0x00000536; // type:object size:0x15 scope:local data:string +lbl_1_data_54B = .data:0x0000054B; // type:object size:0x16 scope:local data:string +lbl_1_data_561 = .data:0x00000561; // type:object size:0x15 scope:local data:string +lbl_1_data_576 = .data:0x00000576; // type:object size:0x16 scope:local data:string +lbl_1_data_58C = .data:0x0000058C; // type:object size:0x15 scope:local data:string +lbl_1_data_5A1 = .data:0x000005A1; // type:object size:0x16 scope:local data:string +lbl_1_data_5B7 = .data:0x000005B7; // type:object size:0x15 scope:local data:string +lbl_1_data_5CC = .data:0x000005CC; // type:object size:0x17 scope:local data:string +lbl_1_data_5E3 = .data:0x000005E3; // type:object size:0x16 scope:local data:string +lbl_1_data_5F9 = .data:0x000005F9; // type:object size:0xA scope:local data:string +lbl_1_data_603 = .data:0x00000603; // type:object size:0x1C scope:local data:string +lbl_1_data_61F = .data:0x0000061F; // type:object size:0x1D scope:local data:string +lbl_1_data_63C = .data:0x0000063C; // type:object size:0x10 scope:local data:string +lbl_1_data_64C = .data:0x0000064C; // type:object size:0x1C scope:local data:string lbl_1_data_668 = .data:0x00000668; // type:object size:0x30 lbl_1_data_698 = .data:0x00000698; // type:object size:0x3C -lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 data:string -lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 data:string -lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 data:string -lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 data:string -lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 data:string -lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 data:string -lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 data:string -lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 data:string -lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 data:string -lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 data:string -lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA data:string -lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C data:string -lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D data:string -lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 data:string -lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C +lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x16 scope:local data:string +lbl_1_data_6EA = .data:0x000006EA; // type:object size:0x15 scope:local data:string +lbl_1_data_6FF = .data:0x000006FF; // type:object size:0x16 scope:local data:string +lbl_1_data_715 = .data:0x00000715; // type:object size:0x15 scope:local data:string +lbl_1_data_72A = .data:0x0000072A; // type:object size:0x16 scope:local data:string +lbl_1_data_740 = .data:0x00000740; // type:object size:0x15 scope:local data:string +lbl_1_data_755 = .data:0x00000755; // type:object size:0x16 scope:local data:string +lbl_1_data_76B = .data:0x0000076B; // type:object size:0x15 scope:local data:string +lbl_1_data_780 = .data:0x00000780; // type:object size:0x17 scope:local data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x16 scope:local data:string +lbl_1_data_7AD = .data:0x000007AD; // type:object size:0xA scope:local data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x1C scope:local data:string +lbl_1_data_7D3 = .data:0x000007D3; // type:object size:0x1D scope:local data:string +lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x10 scope:local data:string +lbl_1_data_800 = .data:0x00000800; // type:object size:0x1C scope:local lbl_1_data_81C = .data:0x0000081C; // type:object size:0x34 lbl_1_data_850 = .data:0x00000850; // type:object size:0x3C0 lbl_1_data_C10 = .data:0x00000C10; // type:object size:0x10 lbl_1_data_C20 = .data:0x00000C20; // type:object size:0x4 data:4byte lbl_1_data_C24 = .data:0x00000C24; // type:object size:0x8 data:4byte -lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 data:string -lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 data:string -lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 data:string -lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 data:string -lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 data:string -lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 data:string -lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 data:string -lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 data:string -lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 data:string -lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 data:string -lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 data:string -lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA data:string -lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C data:string -lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D data:string -lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C data:string -lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 data:string -lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 data:string -lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0xB -lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 data:string -lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 data:string -lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 data:string -lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 data:string -lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 data:string -lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 data:string -lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 data:string -lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 data:string -lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 data:string -lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 data:string -lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA data:string -lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C data:string -lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D data:string -lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 data:string -lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x20 +lbl_1_data_C2C = .data:0x00000C2C; // type:object size:0x14 scope:local data:string +lbl_1_data_C40 = .data:0x00000C40; // type:object size:0x15 scope:local data:string +lbl_1_data_C55 = .data:0x00000C55; // type:object size:0x14 scope:local data:string +lbl_1_data_C69 = .data:0x00000C69; // type:object size:0x15 scope:local data:string +lbl_1_data_C7E = .data:0x00000C7E; // type:object size:0x14 scope:local data:string +lbl_1_data_C92 = .data:0x00000C92; // type:object size:0x15 scope:local data:string +lbl_1_data_CA7 = .data:0x00000CA7; // type:object size:0x14 scope:local data:string +lbl_1_data_CBB = .data:0x00000CBB; // type:object size:0x15 scope:local data:string +lbl_1_data_CD0 = .data:0x00000CD0; // type:object size:0x14 scope:local data:string +lbl_1_data_CE4 = .data:0x00000CE4; // type:object size:0x15 scope:local data:string +lbl_1_data_CF9 = .data:0x00000CF9; // type:object size:0x14 scope:local data:string +lbl_1_data_D0D = .data:0x00000D0D; // type:object size:0xA scope:local data:string +lbl_1_data_D17 = .data:0x00000D17; // type:object size:0x1C scope:local data:string +lbl_1_data_D33 = .data:0x00000D33; // type:object size:0x1D scope:local data:string +lbl_1_data_D50 = .data:0x00000D50; // type:object size:0x1C scope:local data:string +lbl_1_data_D6C = .data:0x00000D6C; // type:object size:0x31 scope:local data:string +lbl_1_data_D9D = .data:0x00000D9D; // type:object size:0x10 scope:local data:string +lbl_1_data_DAD = .data:0x00000DAD; // type:object size:0xB scope:local +lbl_1_data_DB8 = .data:0x00000DB8; // type:object size:0x15 scope:local data:string +lbl_1_data_DCD = .data:0x00000DCD; // type:object size:0x14 scope:local data:string +lbl_1_data_DE1 = .data:0x00000DE1; // type:object size:0x15 scope:local data:string +lbl_1_data_DF6 = .data:0x00000DF6; // type:object size:0x14 scope:local data:string +lbl_1_data_E0A = .data:0x00000E0A; // type:object size:0x15 scope:local data:string +lbl_1_data_E1F = .data:0x00000E1F; // type:object size:0x14 scope:local data:string +lbl_1_data_E33 = .data:0x00000E33; // type:object size:0x15 scope:local data:string +lbl_1_data_E48 = .data:0x00000E48; // type:object size:0x14 scope:local data:string +lbl_1_data_E5C = .data:0x00000E5C; // type:object size:0x15 scope:local data:string +lbl_1_data_E71 = .data:0x00000E71; // type:object size:0x14 scope:local data:string +lbl_1_data_E85 = .data:0x00000E85; // type:object size:0xA scope:local data:string +lbl_1_data_E8F = .data:0x00000E8F; // type:object size:0x1C scope:local data:string +lbl_1_data_EAB = .data:0x00000EAB; // type:object size:0x1D scope:local data:string +lbl_1_data_EC8 = .data:0x00000EC8; // type:object size:0x10 scope:local data:string +lbl_1_data_ED8 = .data:0x00000ED8; // type:object size:0x20 scope:local lbl_1_data_EF8 = .data:0x00000EF8; // type:object size:0x10 lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x4 data:4byte lbl_1_data_F0C = .data:0x00000F0C; // type:object size:0x8 data:4byte lbl_1_data_F14 = .data:0x00000F14; // type:object size:0x4 data:4byte -lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 data:string -lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 data:string -lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 data:string -lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 data:string -lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 data:string -lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 data:string -lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 data:string -lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 data:string -lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 data:string -lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 data:string -lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 data:string -lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA data:string -lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C data:string -lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D data:string -lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 data:string -lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 data:string -lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 data:string -lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 data:string -lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 data:string -lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 data:string -lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 data:string -lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 data:string +lbl_1_data_F18 = .data:0x00000F18; // type:object size:0x14 scope:local data:string +lbl_1_data_F2C = .data:0x00000F2C; // type:object size:0x15 scope:local data:string +lbl_1_data_F41 = .data:0x00000F41; // type:object size:0x14 scope:local data:string +lbl_1_data_F55 = .data:0x00000F55; // type:object size:0x15 scope:local data:string +lbl_1_data_F6A = .data:0x00000F6A; // type:object size:0x14 scope:local data:string +lbl_1_data_F7E = .data:0x00000F7E; // type:object size:0x15 scope:local data:string +lbl_1_data_F93 = .data:0x00000F93; // type:object size:0x14 scope:local data:string +lbl_1_data_FA7 = .data:0x00000FA7; // type:object size:0x15 scope:local data:string +lbl_1_data_FBC = .data:0x00000FBC; // type:object size:0x14 scope:local data:string +lbl_1_data_FD0 = .data:0x00000FD0; // type:object size:0x15 scope:local data:string +lbl_1_data_FE5 = .data:0x00000FE5; // type:object size:0x14 scope:local data:string +lbl_1_data_FF9 = .data:0x00000FF9; // type:object size:0xA scope:local data:string +lbl_1_data_1003 = .data:0x00001003; // type:object size:0x1C scope:local data:string +lbl_1_data_101F = .data:0x0000101F; // type:object size:0x1D scope:local data:string +lbl_1_data_103C = .data:0x0000103C; // type:object size:0x15 scope:local data:string +lbl_1_data_1051 = .data:0x00001051; // type:object size:0x15 scope:local data:string +lbl_1_data_1066 = .data:0x00001066; // type:object size:0x15 scope:local data:string +lbl_1_data_107B = .data:0x0000107B; // type:object size:0x15 scope:local data:string +lbl_1_data_1090 = .data:0x00001090; // type:object size:0x15 scope:local data:string +lbl_1_data_10A5 = .data:0x000010A5; // type:object size:0x15 scope:local data:string +lbl_1_data_10BA = .data:0x000010BA; // type:object size:0x15 scope:local data:string +lbl_1_data_10CF = .data:0x000010CF; // type:object size:0x15 scope:local data:string lbl_1_data_10E4 = .data:0x000010E4; // type:object size:0x20 -lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF data:string +lbl_1_data_1104 = .data:0x00001104; // type:object size:0xF scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x24 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x54 data:float lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x10 data:4byte diff --git a/configure.py b/configure.py index 015fa960..73ab159e 100644 --- a/configure.py +++ b/configure.py @@ -1370,14 +1370,14 @@ config.libs = [ Rel( "mstory2Dll", objects={ - Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/main.c"), - Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/board_entrance.c"), - Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/board_clear.c"), - Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/board_miss.c"), - Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/mg_clear.c"), - Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/mg_miss.c"), - Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/ending.c"), - Object(MatchingFor("GMPE01_00"), "REL/mstory2Dll/save.c"), + Object(Matching, "REL/mstory2Dll/main.c"), + Object(Matching, "REL/mstory2Dll/board_entrance.c"), + Object(Matching, "REL/mstory2Dll/board_clear.c"), + Object(Matching, "REL/mstory2Dll/board_miss.c"), + Object(Matching, "REL/mstory2Dll/mg_clear.c"), + Object(Matching, "REL/mstory2Dll/mg_miss.c"), + Object(Matching, "REL/mstory2Dll/ending.c"), + Object(Matching, "REL/mstory2Dll/save.c"), }, ), Rel( diff --git a/src/REL/mstory2Dll/board_clear.c b/src/REL/mstory2Dll/board_clear.c index b4013800..3073e986 100644 --- a/src/REL/mstory2Dll/board_clear.c +++ b/src/REL/mstory2Dll/board_clear.c @@ -308,21 +308,21 @@ void fn_1_C4C0(void) void fn_1_C574(omObjData *object) { - object->model[1] = Hu3DModelCreateFile(0x660052); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x52)); object->motion[1] = Hu3DMotionIDGet(object->model[1]); Hu3DModelShadowMapObjSet(object->model[1], "base_story-base"); fn_1_1DFC(object, 1, 1, 0, 1); - object->model[2] = Hu3DModelCreateFile(0x660053); - object->motion[2] = Hu3DJointMotionFile(object->model[2], 0x660054); - object->motion[3] = Hu3DJointMotionFile(object->model[2], 0x660055); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x53)); + object->motion[2] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x54)); + object->motion[3] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x55)); fn_1_1DFC(object, 2, 2, 0, 2); - object->model[5] = Hu3DModelCreateFile(0x660059); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x59)); object->motion[5] = Hu3DMotionIDGet(object->model[5]); Hu3DModelPosSet(object->model[5], 0, 80, 460); Hu3DModelAttrSet(object->model[5], 1); Hu3DModelShadowSet(object->model[5]); fn_1_1DFC(object, 5, 5, 0, 2); - object->model[6] = Hu3DModelCreateFile(0x66005A); + object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x5A)); object->motion[6] = Hu3DMotionIDGet(object->model[6]); Hu3DModelHookSet(object->model[5], "koopasgbox_fix-effect_fook2", object->model[6]); Hu3DModelAttrSet(object->model[6], 1); @@ -354,10 +354,10 @@ void fn_1_C858(void) void fn_1_CB0C(omObjData *object) { - object->model[1] = Hu3DModelCreateFile(0x660062); - object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660063); - object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660066); - object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660069); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x62 : 0x66)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x63 : 0x67)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x66 : 0x6A)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x69 : 0x6C)); Hu3DModelPosSet(object->model[1], 0, 0, 150); Hu3DModelRotSet(object->model[1], 0, 0, 0); Hu3DModelScaleSet(object->model[1], 1.25f, 1.25f, 1.25f); @@ -404,12 +404,12 @@ void fn_1_CD78(void) void fn_1_D030(omObjData *object) { - object->model[1] = Hu3DModelCreateFile(0x66007D); - object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x66007E); - object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660080); - object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660081); - object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660084); - object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x660085); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7D : 0x7B)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7E : 0x7C)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x80 : 0x7D)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x81 : 0x7E)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x84 : 0x7F)); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x85 : 0x80)); Hu3DModelPosSet(object->model[1], -300, 0, 890); Hu3DModelRotSet(object->model[1], 0, 30, 0); Hu3DModelScaleSet(object->model[1], 1, 1, 1); @@ -518,7 +518,7 @@ void fn_1_D898(omObjData *object, int player) Hu3DModelScaleSet(object->model[1], 1, 1, 1); Hu3DModelShadowSet(object->model[1]); fn_1_1DFC(object, 1, 1, 0, 1); - object->model[2] = Hu3DModelCreateFile(0x660056); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x56)); Hu3DModelPosSet( object->model[2], lbl_1_data_668[playerNo].x, lbl_1_data_668[lbl_1_bss_3DC.unk30[playerNo].unk18 - 1].y, lbl_1_data_668[playerNo].z); if (lbl_1_bss_3DC.unk30[playerNo].unk18 == 4) { diff --git a/src/REL/mstory2Dll/board_entrance.c b/src/REL/mstory2Dll/board_entrance.c index c1b93643..e69abcfd 100644 --- a/src/REL/mstory2Dll/board_entrance.c +++ b/src/REL/mstory2Dll/board_entrance.c @@ -16,7 +16,6 @@ #include "game/window.h" #include "game/wipe.h" - typedef struct { /* 0x000 */ s32 unk00; /* 0x004 */ s32 unk04; @@ -382,15 +381,15 @@ void fn_1_9768(void) void fn_1_981C(omObjData *object) { - object->model[1] = Hu3DModelCreateFile(0x660050); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x50)); object->motion[0] = Hu3DMotionIDGet(object->model[1]); fn_1_1DFC(object, 1, 0, 0, 2); Hu3DModelShadowMapObjSet(object->model[1], "base_fix9-base"); - object->model[2] = Hu3DModelCreateFile(0x660053); - object->motion[2] = Hu3DJointMotionFile(object->model[2], 0x660054); - object->motion[3] = Hu3DJointMotionFile(object->model[2], 0x660055); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x53)); + object->motion[2] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x54)); + object->motion[3] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x55)); fn_1_1DFC(object, 2, 3, 0, 2); - object->model[4] = Hu3DModelCreateFile(0x660051); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x51)); } void fn_1_9954(omObjData *arg0, StructBss16C *arg1) @@ -441,10 +440,10 @@ void fn_1_9CB8(omObjData *object) object->model[1] = CharModelCreate(charNo, 1); object->motion[1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); object->motion[2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x35)); - object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660018 + charNo); - object->motion[7] = Hu3DJointMotionFile(object->model[1], 0x660048 + charNo); - object->motion[8] = Hu3DJointMotionFile(object->model[1], 0x660040 + charNo); - object->motion[9] = Hu3DJointMotionFile(object->model[1], 0x660020 + charNo); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x18) + charNo); + object->motion[7] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x48) + charNo); + object->motion[8] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x40) + charNo); + object->motion[9] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x20) + charNo); object->motion[10] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x12)); CharModelMotionDataClose(charNo); Hu3DModelPosSet(object->model[1], 120, 0, 800); @@ -488,13 +487,13 @@ void fn_1_9FDC(void) void fn_1_A288(omObjData *object) { - object->model[1] = Hu3DModelCreateFile(0x660072); - object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660073); - object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660075); - object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660076); - object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x66007A); - object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x66007B); - object->motion[6] = Hu3DJointMotionFile(object->model[1], 0x660079); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x72 : 0x73)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x73 : 0x74)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x75)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x76)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7A : 0x78)); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7B : 0x79)); + object->motion[6] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x79 : 0x77)); Hu3DModelPosSet(object->model[1], 0, 0, 460); Hu3DModelRotSet(object->model[1], 0, 0, 0); Hu3DModelScaleSet(object->model[1], 1, 1, 1); @@ -532,15 +531,15 @@ void fn_1_A58C(void) void fn_1_A848(omObjData *object) { - object->model[1] = Hu3DModelCreateFile(0x660062); - object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660063); - object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660065); - object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660066); - object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660069); - object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x660068); - object->motion[6] = Hu3DJointMotionFile(object->model[1], 0x66006C); - object->motion[7] = Hu3DJointMotionFile(object->model[1], 0x66006D); - object->motion[8] = Hu3DJointMotionFile(object->model[1], 0x660064); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x62 : 0x66)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x63 : 0x67)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x65 : 0x69)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x66 : 0x6A)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x69 : 0x6C)); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x68 : 0x6B)); + object->motion[6] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x6C : 0x6D)); + object->motion[7] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x6D : 0x6E)); + object->motion[8] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x64 : 0x68)); Hu3DModelPosSet(object->model[1], -120, 0, 800); Hu3DModelRotSet(object->model[1], 0, 90, 0); Hu3DModelScaleSet(object->model[1], 1, 1, 1); diff --git a/src/REL/mstory2Dll/board_miss.c b/src/REL/mstory2Dll/board_miss.c index 89c73938..c509b9d0 100644 --- a/src/REL/mstory2Dll/board_miss.c +++ b/src/REL/mstory2Dll/board_miss.c @@ -471,21 +471,21 @@ void fn_1_FDFC(void) void fn_1_FEB0(omObjData *object) { - object->model[1] = Hu3DModelCreateFile(0x660052); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x52)); object->motion[1] = Hu3DMotionIDGet(object->model[1]); Hu3DModelShadowMapObjSet(object->model[1], "base_story-base"); fn_1_1DFC(object, 1, 1, 0, 1); - object->model[2] = Hu3DModelCreateFile(0x660053); - object->motion[2] = Hu3DJointMotionFile(object->model[2], 0x660054); - object->motion[3] = Hu3DJointMotionFile(object->model[2], 0x660055); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x53)); + object->motion[2] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x54)); + object->motion[3] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x55)); fn_1_1DFC(object, 2, 2, 0, 2); - object->model[5] = Hu3DModelCreateFile(0x660057); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x57)); object->motion[5] = Hu3DMotionIDGet(object->model[5]); Hu3DModelPosSet(object->model[5], 0, 80, 460); Hu3DModelAttrSet(object->model[5], 1); Hu3DModelShadowSet(object->model[5]); fn_1_1DFC(object, 5, 5, 0, 2); - object->model[6] = Hu3DModelCreateFile(0x660058); + object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x58)); object->motion[6] = Hu3DMotionIDGet(object->model[6]); Hu3DModelHookSet(object->model[5], "koopabox_fix-effect_fook2", object->model[6]); Hu3DModelAttrSet(object->model[6], 1); @@ -517,11 +517,11 @@ void fn_1_10194(void) void fn_1_10448(omObjData *object) { - object->model[1] = Hu3DModelCreateFile(0x660062); - object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660063); - object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660065); - object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660069); - object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660066); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x62 : 0x66)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x63 : 0x67)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x65 : 0x69)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x69 : 0x6C)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x66 : 0x6A)); Hu3DModelPosSet(object->model[1], -180, 0, 800); Hu3DModelRotSet(object->model[1], 0, 60, 0); Hu3DModelScaleSet(object->model[1], 1, 1, 1); @@ -598,12 +598,12 @@ void fn_1_1094C(void) void fn_1_10C00(omObjData *object) { - object->model[1] = Hu3DModelCreateFile(0x66007D); - object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x66007E); - object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660080); - object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660081); - object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660084); - object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x660085); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7D : 0x7B)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7E : 0x7C)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x80 : 0x7D)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x81 : 0x7E)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x84 : 0x7F)); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x85 : 0x80)); Hu3DModelPosSet(object->model[1], -300, 0, 890); Hu3DModelRotSet(object->model[1], 0, 30, 0); Hu3DModelScaleSet(object->model[1], 1, 1, 1); @@ -714,7 +714,7 @@ void fn_1_1154C(omObjData *object, int player) object->motion[3] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x05)); object->motion[4] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x1A)); object->motion[5] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x6D)); - object->motion[6] = Hu3DJointMotionFile(object->model[1], 0x660018 + charNo); + object->motion[6] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x18) + charNo); CharModelMotionDataClose(charNo); Hu3DModelPosSet( object->model[1], lbl_1_data_81C[playerNo].x, lbl_1_data_81C[lbl_1_bss_688.unk30[playerNo].unk18 - 1].y + 90, lbl_1_data_81C[playerNo].z); @@ -722,7 +722,7 @@ void fn_1_1154C(omObjData *object, int player) Hu3DModelScaleSet(object->model[1], 1, 1, 1); Hu3DModelShadowSet(object->model[1]); fn_1_1DFC(object, 1, 1, 0, 1); - object->model[2] = Hu3DModelCreateFile(0x660056); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x56)); Hu3DModelPosSet( object->model[2], lbl_1_data_81C[playerNo].x, lbl_1_data_81C[lbl_1_bss_688.unk30[playerNo].unk18 - 1].y, lbl_1_data_81C[playerNo].z); if (lbl_1_bss_688.unk30[playerNo].unk18 == 4) { diff --git a/src/REL/mstory2Dll/ending.c b/src/REL/mstory2Dll/ending.c index 5e1a9b17..c8adbc76 100644 --- a/src/REL/mstory2Dll/ending.c +++ b/src/REL/mstory2Dll/ending.c @@ -9,6 +9,7 @@ #include "game/hsfanim.h" #include "game/hsfman.h" #include "game/hsfmotion.h" +#include "game/memory.h" #include "game/minigame_seq.h" #include "game/objsub.h" #include "game/pad.h" @@ -17,6 +18,11 @@ #include "game/window.h" #include "game/wipe.h" +#ifndef __MWERKS__ +#include "game/audio.h" +#include "game/saveload.h" +#include "game/thpmain.h" +#endif typedef struct { /* 0x000 */ s32 unk00; @@ -308,15 +314,36 @@ void fn_1_19334(void) fn_1_BE8(60); { int time = 0; +#if VERSION_PAL + s32 languageOffset = 0; +#endif int gid = HuSprGrpCreate(3); int sprid = HuTHPSprCreate(lbl_1_data_10E4[lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10], FALSE, 1000); HuSprGrpMemberSet(gid, 0, sprid); HuSprPosSet(gid, 0, 288, 240); - sprid = HuSprCreate(HuSprAnimRead(HuDataReadNum(0x660060, 0x10000000)), 950, 0); +#if VERSION_PAL + switch (GWGameStat.language) { + case 2: + languageOffset = 1; + break; + case 3: + languageOffset = 2; + break; + case 4: + languageOffset = 3; + break; + case 5: + languageOffset = 4; + break; + } + sprid = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x60) + languageOffset, MEMORY_DEFAULT_NUM)), 950, 0); +#else + sprid = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x60), MEMORY_DEFAULT_NUM)), 950, 0); +#endif HuSprGrpMemberSet(gid, 1, sprid); HuSprPosSet(gid, 1, 288, 226); HuSprAttrSet(gid, 1, HUSPR_ATTR_DISPOFF); - sprid = HuSprCreate(HuSprAnimRead(HuDataReadNum(0x660061, 0x10000000)), 950, 0); + sprid = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x61 : 0x65), MEMORY_DEFAULT_NUM)), 950, 0); HuSprGrpMemberSet(gid, 2, sprid); HuSprBankSet(gid, 2, lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10); if (GWLanguageGet() == 0 && lbl_1_bss_C0C.unk30[lbl_1_bss_C0C.unk00].unk10 == 5) { @@ -331,7 +358,7 @@ void fn_1_19334(void) HuPrcVSleep(); } while (!HuTHPEndCheck()) { - if (time >= 3300) { + if (time >= (VERSION_NTSC ? 3300 : 2725)) { HuSprAttrReset(gid, 1, HUSPR_ATTR_DISPOFF); HuSprAttrReset(gid, 2, HUSPR_ATTR_DISPOFF); } @@ -455,17 +482,17 @@ void fn_1_19F14(void) void fn_1_19FC8(omObjData *object) { - object->model[1] = Hu3DModelCreateFile(0x660050); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x50)); object->motion[0] = Hu3DMotionIDGet(object->model[1]); fn_1_1DFC(object, 1, 0, 0, 2); Hu3DModelShadowMapObjSet(object->model[1], "base_fix9-base"); Hu3DModelAttrSet(object->model[1], 1); - object->model[2] = Hu3DModelCreateFile(0x660053); - object->motion[2] = Hu3DJointMotionFile(object->model[2], 0x660054); - object->motion[3] = Hu3DJointMotionFile(object->model[2], 0x660055); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x53)); + object->motion[2] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x54)); + object->motion[3] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x55)); Hu3DModelAttrSet(object->model[2], 1); fn_1_1DFC(object, 2, 3, 0, 2); - object->model[4] = Hu3DModelCreateFile(0x660051); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x51)); Hu3DModelAttrSet(object->model[4], 1); Hu3DModelPosSet(object->model[1], 0, -1000, 0); } @@ -486,10 +513,10 @@ void fn_1_1A160(void) void fn_1_1A368(omObjData *object) { - object->model[1] = Hu3DModelCreateFile(0x660062); - object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660063); - object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660070); - object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660071); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x62 : 0x66)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x63 : 0x67)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x70 : 0x71)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x71 : 0x72)); Hu3DModelPosSet(object->model[1], 0, 0, 600); Hu3DModelRotSet(object->model[1], 0, 180, 0); Hu3DModelScaleSet(object->model[1], 1, 1, 1); @@ -524,12 +551,12 @@ void fn_1_1A578(void) void fn_1_1A7CC(omObjData *object) { - object->model[1] = Hu3DModelCreateFile(0x660072); - object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660073); - object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660075); - object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660076); - object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x66007C); - object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x660079); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x72 : 0x73)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x73 : 0x74)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x75)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x76)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7C : 0x7A)); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x79 : 0x77)); Hu3DModelPosSet(object->model[1], 0, 0, 460); Hu3DModelRotSet(object->model[1], 0, 0, 0); Hu3DModelScaleSet(object->model[1], 1, 1, 1); @@ -590,8 +617,8 @@ void fn_1_1AE20(omObjData *object) object->model[1] = CharModelCreate(charNo, 1); object->motion[1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); object->motion[2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x35)); - object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660010 + charNo); - object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660008 + charNo); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x10) + charNo); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x08) + charNo); CharModelMotionDataClose(charNo); Hu3DModelPosSet(object->model[1], 120, 0, 800); Hu3DModelRotSet(object->model[1], 0, -135, 0); diff --git a/src/REL/mstory2Dll/main.c b/src/REL/mstory2Dll/main.c index 058b2e4e..73dcc832 100644 --- a/src/REL/mstory2Dll/main.c +++ b/src/REL/mstory2Dll/main.c @@ -1235,4 +1235,8 @@ void fn_1_7384(int modelId, int charNo, float ofs, s32 maxTime, BOOL flag) Hu3DMotionNoMotReset(modelId, "c002m1-ske_hair1", lbl_1_data_328[charNo][0]); } } -} \ No newline at end of file +} + +#if VERSION_PAL +// lbl_1_data_399 +#endif diff --git a/src/REL/mstory2Dll/mg_clear.c b/src/REL/mstory2Dll/mg_clear.c index 524869fe..c06762b9 100644 --- a/src/REL/mstory2Dll/mg_clear.c +++ b/src/REL/mstory2Dll/mg_clear.c @@ -497,24 +497,24 @@ void fn_1_13C6C(omObjData *object) Hu3DModelShadowSet(object->model[7]); fn_1_1DFC(object, 7, 7, 0, 2); HuDataDirClose(DATADIR_MSTORY4); - object->model[1] = Hu3DModelCreateFile(0x660052); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x52)); object->motion[1] = Hu3DMotionIDGet(object->model[1]); Hu3DModelShadowMapObjSet(object->model[1], "base_story-base"); fn_1_1DFC(object, 1, 1, 0, 1); - object->model[2] = Hu3DModelCreateFile(0x660053); - object->motion[2] = Hu3DJointMotionFile(object->model[2], 0x660054); - object->motion[3] = Hu3DJointMotionFile(object->model[2], 0x660055); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x53)); + object->motion[2] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x54)); + object->motion[3] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x55)); fn_1_1DFC(object, 2, 3, 0, 2); - object->model[5] = Hu3DModelCreateFile(0x66005B); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x5B)); Hu3DModelPosSet(object->model[5], 0, 125, 800); Hu3DModelAttrSet(object->model[5], 1); Hu3DModelShadowSet(object->model[5]); - object->model[6] = Hu3DModelCreateFile(0x66005D); + object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x5D)); object->motion[6] = Hu3DMotionIDGet(object->model[6]); Hu3DModelPosSet(object->model[6], 25, 125, 900); Hu3DModelAttrSet(object->model[6], 1); fn_1_1DFC(object, 6, 6, 0, 2); - object->model[8] = Hu3DModelCreateFile(0x66005F); + object->model[8] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x5F)); object->motion[8] = Hu3DMotionIDGet(object->model[8]); Hu3DModelAttrSet(object->model[8], 1); fn_1_1DFC(object, 8, 8, 0, 1); @@ -586,12 +586,12 @@ void fn_1_1449C(void) void fn_1_14868(omObjData *object) { - object->model[1] = Hu3DModelCreateFile(0x660062); - object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660063); - object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660064); - object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x66006E); - object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x66006F); - object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x660069); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x62 : 0x66)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x63 : 0x67)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x64 : 0x68)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x6E : 0x6F)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x6F : 0x70)); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x69 : 0x6C)); Hu3DModelPosSet(object->model[1], -180, 0, 800); Hu3DModelRotSet(object->model[1], 0, 60, 0); Hu3DModelScaleSet(object->model[1], 1, 1, 1); @@ -650,11 +650,11 @@ void fn_1_14C40(void) void fn_1_14F6C(omObjData *object) { - object->model[1] = Hu3DModelCreateFile(0x66007D); - object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x66007E); - object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660080); - object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660081); - object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660086); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7D : 0x7B)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7E : 0x7C)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x80 : 0x7D)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x81 : 0x7E)); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x86 : 0x81)); Hu3DModelPosSet(object->model[1], -600, 0, 800); Hu3DModelRotSet(object->model[1], 0, 60, 0); Hu3DModelScaleSet(object->model[1], 1, 1, 1); @@ -741,10 +741,10 @@ void fn_1_1574C(omObjData *object) object->model[1] = CharModelCreate(charNo, 1); object->motion[1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); object->motion[2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x02)); - object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660028 + charNo); - object->motion[4] = Hu3DJointMotionFile(object->model[1], 0x660030 + charNo); - object->motion[5] = Hu3DJointMotionFile(object->model[1], 0x660038 + charNo); - object->motion[6] = Hu3DJointMotionFile(object->model[1], 0x660000 + charNo); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x28) + charNo); + object->motion[4] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x30) + charNo); + object->motion[5] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x38) + charNo); + object->motion[6] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x00) + charNo); CharModelMotionDataClose(charNo); Hu3DModelPosSet(object->model[1], 120, 0, 800); Hu3DModelRotSet(object->model[1], 0, -60, 0); diff --git a/src/REL/mstory2Dll/mg_miss.c b/src/REL/mstory2Dll/mg_miss.c index cc329a56..e7bf2b00 100644 --- a/src/REL/mstory2Dll/mg_miss.c +++ b/src/REL/mstory2Dll/mg_miss.c @@ -264,20 +264,20 @@ void fn_1_16FC0(void) void fn_1_17074(omObjData *object) { - object->model[1] = Hu3DModelCreateFile(0x660052); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x52)); object->motion[1] = Hu3DMotionIDGet(object->model[1]); Hu3DModelShadowMapObjSet(object->model[1], "base_story-base"); fn_1_1DFC(object, 1, 1, 0, 1); - object->model[2] = Hu3DModelCreateFile(0x660053); - object->motion[2] = Hu3DJointMotionFile(object->model[2], 0x660054); - object->motion[3] = Hu3DJointMotionFile(object->model[2], 0x660055); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x53)); + object->motion[2] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x54)); + object->motion[3] = Hu3DJointMotionFile(object->model[2], DATA_MAKE_NUM(DATADIR_MSTORY2, 0x55)); fn_1_1DFC(object, 2, 2, 0, 2); - object->model[5] = Hu3DModelCreateFile(0x660059); + object->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x59)); object->motion[5] = Hu3DMotionIDGet(object->model[5]); Hu3DModelPosSet(object->model[5], 0, 80, 460); Hu3DModelShadowSet(object->model[5]); fn_1_1DFC(object, 5, 5, 0, 2); - object->model[6] = Hu3DModelCreateFile(0x66005A); + object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, 0x5A)); object->motion[6] = Hu3DMotionIDGet(object->model[6]); Hu3DModelHookSet(object->model[5], "koopasgbox_fix-effect_fook2", object->model[6]); fn_1_1DFC(object, 6, 6, 0, 2); @@ -308,10 +308,10 @@ void fn_1_17338(void) void fn_1_175CC(omObjData *object) { - object->model[1] = Hu3DModelCreateFile(0x660062); - object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x660063); - object->motion[2] = Hu3DJointMotionFile(object->model[1], 0x660066); - object->motion[3] = Hu3DJointMotionFile(object->model[1], 0x660069); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x62 : 0x66)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x63 : 0x67)); + object->motion[2] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x66 : 0x6A)); + object->motion[3] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x69 : 0x6C)); Hu3DModelPosSet(object->model[1], 0, 0, 200); Hu3DModelRotSet(object->model[1], 0, 0, 0); Hu3DModelScaleSet(object->model[1], 1.6f, 1.6f, 1.6f); @@ -356,8 +356,8 @@ void fn_1_177F8(void) void fn_1_17A70(omObjData *object) { - object->model[1] = Hu3DModelCreateFile(0x66007D); - object->motion[1] = Hu3DJointMotionFile(object->model[1], 0x66007E); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7D : 0x7B)); + object->motion[1] = Hu3DJointMotionFile(object->model[1], DATA_MAKE_NUM(DATADIR_MSTORY2, VERSION_NTSC ? 0x7E : 0x7C)); Hu3DModelPosSet(object->model[1], -120, 0, 800); Hu3DModelRotSet(object->model[1], 0, 135, 0); Hu3DModelScaleSet(object->model[1], 1, 1, 1); diff --git a/src/REL/mstory2Dll/save.c b/src/REL/mstory2Dll/save.c index 8bdf3535..cc52073c 100644 --- a/src/REL/mstory2Dll/save.c +++ b/src/REL/mstory2Dll/save.c @@ -74,7 +74,10 @@ void fn_1_1B64C(void) HuWinExAnimOut(var_r31); HuWinExCleanup(var_r31); if (SLSaveFlagGet() == 1 && temp_r30 == 0) { - if(omovlstat) { +#if VERSION_REV1 + GWGameStat.story_continue = 1; +#endif + if (omovlstat) { GWGameStat.story_continue = 0; } SLCommonSet(); @@ -100,9 +103,10 @@ void fn_1_1B870(void) do { fn_1_BC8(); } while (lbl_1_bss_D14 != 1); - if(omovlstat == 0) { + if (omovlstat == 0) { omOvlGotoEx(OVL_MSTORY2, 1, 4, 0); - } else { + } + else { omOvlReturnEx(omovlhisidx, 1); } HuPrcEnd(); From a79294aac0d319b07486377a1a9ad82a354bc779 Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Sun, 12 Jan 2025 04:12:01 +0100 Subject: [PATCH 249/311] Match m433Dll main.c and map.c (#524) * Match m433Dll main.c and map.c * Delete accidental lines from mstory2 --- config/GMPE01_00/rels/m433Dll/symbols.txt | 599 ++++++++-------- configure.py | 4 +- include/REL/m433Dll.h | 43 ++ src/REL/m433Dll/main.c | 476 +++++++++++++ src/REL/m433Dll/map.c | 827 ++++++++++++++++++++++ src/REL/mstory2Dll/main.c | 4 - 6 files changed, 1649 insertions(+), 304 deletions(-) create mode 100644 include/REL/m433Dll.h create mode 100644 src/REL/m433Dll/main.c create mode 100644 src/REL/m433Dll/map.c diff --git a/config/GMPE01_00/rels/m433Dll/symbols.txt b/config/GMPE01_00/rels/m433Dll/symbols.txt index 528cefb2..df299b4f 100644 --- a/config/GMPE01_00/rels/m433Dll/symbols.txt +++ b/config/GMPE01_00/rels/m433Dll/symbols.txt @@ -119,287 +119,287 @@ fn_1_11098 = .text:0x00011098; // type:function size:0x98 fn_1_11130 = .text:0x00011130; // type:function size:0x1B0 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x10 data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0xC0 -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x10 data:4byte -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x10 data:4byte -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 data:4byte -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 data:4byte -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x10 data:4byte -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x18 data:4byte -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x18 data:4byte -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 data:double -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x8 data:double -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:4byte -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x8 data:double -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x24 data:4byte -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:4byte -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:4byte -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x8 data:4byte -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float -lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float -lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float -lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x8 data:4byte -lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 data:double -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:4byte -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 data:double -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float -lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float -lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float -lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x4 data:float -lbl_1_rodata_604 = .rodata:0x00000604; // type:object size:0x4 data:float -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 data:float -lbl_1_rodata_60C = .rodata:0x0000060C; // type:object size:0x4 data:float -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float -lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float -lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 data:float -lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 data:float -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float -lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float -lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float -lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 data:float -lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 data:float -lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 data:float -lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 data:float -lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 data:float -lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 data:float -lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 data:float -lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float -lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float -lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 data:float -lbl_1_rodata_66C = .rodata:0x0000066C; // type:object size:0x4 data:float -lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x4 data:float -lbl_1_rodata_674 = .rodata:0x00000674; // type:object size:0x4 data:float -lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 data:float -lbl_1_rodata_67C = .rodata:0x0000067C; // type:object size:0x4 data:float -lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 data:float -lbl_1_rodata_684 = .rodata:0x00000684; // type:object size:0x4 data:float -lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x4 data:float -lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 data:double -lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 data:float -lbl_1_rodata_69C = .rodata:0x0000069C; // type:object size:0x4 data:float -lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x4 data:float -lbl_1_rodata_6A4 = .rodata:0x000006A4; // type:object size:0x4 data:float -lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0xC0 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 scope:local data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 scope:local data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 scope:local data:double +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 scope:local data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 scope:local data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x4 scope:local data:float +lbl_1_rodata_604 = .rodata:0x00000604; // type:object size:0x4 scope:local data:float +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60C = .rodata:0x0000060C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 scope:local data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 scope:local data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 scope:local data:float +lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 scope:local data:float +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 scope:local data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 scope:local data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float +lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 scope:local data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 scope:local data:float +lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 scope:local data:float +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 scope:local data:float +lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 scope:local data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 scope:local data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 scope:local data:float +lbl_1_rodata_66C = .rodata:0x0000066C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x4 scope:local data:float +lbl_1_rodata_674 = .rodata:0x00000674; // type:object size:0x4 scope:local data:float +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 scope:local data:float +lbl_1_rodata_67C = .rodata:0x0000067C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 scope:local data:float +lbl_1_rodata_684 = .rodata:0x00000684; // type:object size:0x4 scope:local data:float +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x4 scope:local data:float +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 scope:local data:double +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 scope:local data:float +lbl_1_rodata_69C = .rodata:0x0000069C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6A4 = .rodata:0x000006A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float @@ -421,26 +421,26 @@ lbl_1_data_1C4 = .data:0x000001C4; // type:object size:0x44 lbl_1_data_208 = .data:0x00000208; // type:object size:0x44 lbl_1_data_24C = .data:0x0000024C; // type:object size:0x1A4 lbl_1_data_3F0 = .data:0x000003F0; // type:object size:0x38 -lbl_1_data_428 = .data:0x00000428; // type:object size:0x9 data:string -lbl_1_data_431 = .data:0x00000431; // type:object size:0x9 data:string -lbl_1_data_43A = .data:0x0000043A; // type:object size:0xB data:string -lbl_1_data_445 = .data:0x00000445; // type:object size:0xB data:string +lbl_1_data_428 = .data:0x00000428; // type:object size:0x9 scope:local data:string +lbl_1_data_431 = .data:0x00000431; // type:object size:0x9 scope:local data:string +lbl_1_data_43A = .data:0x0000043A; // type:object size:0xB scope:local data:string +lbl_1_data_445 = .data:0x00000445; // type:object size:0xB scope:local data:string lbl_1_data_450 = .data:0x00000450; // type:object size:0x18 lbl_1_data_468 = .data:0x00000468; // type:object size:0x24 lbl_1_data_48C = .data:0x0000048C; // type:object size:0x48 lbl_1_data_4D4 = .data:0x000004D4; // type:object size:0x6C lbl_1_data_540 = .data:0x00000540; // type:object size:0x24 -lbl_1_data_564 = .data:0x00000564; // type:object size:0x2 data:string -lbl_1_data_566 = .data:0x00000566; // type:object size:0x15 data:string -lbl_1_data_57B = .data:0x0000057B; // type:object size:0x15 data:string -lbl_1_data_590 = .data:0x00000590; // type:object size:0x15 data:string -lbl_1_data_5A5 = .data:0x000005A5; // type:object size:0x15 data:string -lbl_1_data_5BA = .data:0x000005BA; // type:object size:0x18 data:string -lbl_1_data_5D2 = .data:0x000005D2; // type:object size:0x18 data:string -lbl_1_data_5EA = .data:0x000005EA; // type:object size:0x15 data:string -lbl_1_data_5FF = .data:0x000005FF; // type:object size:0x15 data:string -lbl_1_data_614 = .data:0x00000614; // type:object size:0x15 data:string -lbl_1_data_629 = .data:0x00000629; // type:object size:0x15 data:string +lbl_1_data_564 = .data:0x00000564; // type:object size:0x2 scope:local data:string +lbl_1_data_566 = .data:0x00000566; // type:object size:0x15 scope:local data:string +lbl_1_data_57B = .data:0x0000057B; // type:object size:0x15 scope:local data:string +lbl_1_data_590 = .data:0x00000590; // type:object size:0x15 scope:local data:string +lbl_1_data_5A5 = .data:0x000005A5; // type:object size:0x15 scope:local data:string +lbl_1_data_5BA = .data:0x000005BA; // type:object size:0x18 scope:local data:string +lbl_1_data_5D2 = .data:0x000005D2; // type:object size:0x18 scope:local data:string +lbl_1_data_5EA = .data:0x000005EA; // type:object size:0x15 scope:local data:string +lbl_1_data_5FF = .data:0x000005FF; // type:object size:0x15 scope:local data:string +lbl_1_data_614 = .data:0x00000614; // type:object size:0x15 scope:local data:string +lbl_1_data_629 = .data:0x00000629; // type:object size:0x15 scope:local data:string lbl_1_data_63E = .data:0x0000063E; // type:object size:0x16 jumptable_1_data_654 = .data:0x00000654; // type:object size:0x20 scope:local lbl_1_data_674 = .data:0x00000674; // type:object size:0xC @@ -458,10 +458,13 @@ lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte -lbl_1_bss_16 = .bss:0x00000016; // type:object size:0xA data:2byte +lbl_1_bss_16 = .bss:0x00000016; // type:object size:0x2 data:2byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x8 data:2byte lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0xC data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:4byte +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:4byte +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:4byte lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:4byte lbl_1_bss_38 = .bss:0x00000038; // type:object size:0x6F0 lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x80 diff --git a/configure.py b/configure.py index 73ab159e..545739bb 100644 --- a/configure.py +++ b/configure.py @@ -1108,8 +1108,8 @@ config.libs = [ Rel( "m433Dll", # Beach Volley Folly objects={ - Object(NonMatching, "REL/m433Dll/main.c"), - Object(NonMatching, "REL/m433Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m433Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m433Dll/map.c"), Object(NonMatching, "REL/m433Dll/player.c"), }, ), diff --git a/include/REL/m433Dll.h b/include/REL/m433Dll.h new file mode 100644 index 00000000..e2a18da8 --- /dev/null +++ b/include/REL/m433Dll.h @@ -0,0 +1,43 @@ +#ifndef M4303LL_H +#define M4303LL_H + +#include "game/object.h" + +typedef struct M433DllWork { + u32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + s32 unk_10; + s32 unk_14; + s32 unk_18; + u32 unk_1C; + u32 unk_20; + s32 unk_24; + u32 unk_28; + s32 unk_2C[2]; + u32 unk_34; + s32 unk_38; + s32 unk_3C; +} M433DllWork; /* size = 0x40 */ + +void fn_1_584(omObjData *object); +void fn_1_618(omObjData *object); +s32 fn_1_216C(void); +s32 fn_1_2184(void); +void fn_1_219C(s32 arg0, s32 arg1, s32 arg2); +void fn_1_21E4(s32 arg0); +void fn_1_2214(s32 arg0); +s32 fn_1_2244(void); +float fn_1_26C4(float arg8, float arg9, float argA); + +void fn_1_2894(Process *process); +void fn_1_2984(void); +omObjFunc fn_1_29A4(Process *process, omObjData *object); +void fn_1_58D8(s32); + +void fn_1_5904(Process *process); +void fn_1_5B74(void); +s32 fn_1_10FA4(s32 arg0); + +#endif diff --git a/src/REL/m433Dll/main.c b/src/REL/m433Dll/main.c new file mode 100644 index 00000000..6e8975db --- /dev/null +++ b/src/REL/m433Dll/main.c @@ -0,0 +1,476 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m433Dll.h" + +void fn_1_4C0(omObjData *object); +void fn_1_618(omObjData *object); +void fn_1_798(omObjData *object); +void fn_1_AD4(omObjData *object); +void fn_1_E2C(omObjData *object); +void fn_1_1040(omObjData *object); +void fn_1_13FC(omObjData *object); +void fn_1_16D0(omObjData *object); +omObjFunc fn_1_1A3C(Process *process, omObjData *object); +void fn_1_1A48(omObjData *object); +float fn_1_26C4(float arg8, float arg9, float argA); + +Vec lbl_1_data_0 = { 100.0f, 800.0f, -100.0f }; +Vec lbl_1_data_C = { 0.3f, -0.8f, 0.3f }; +Vec lbl_1_data_18 = { 10.0f, 45.0f, 3500.0f }; +GXColor lbl_1_data_24 = { 0xFF, 0xFF, 0xFF, 0xFF }; +Vec lbl_1_data_28 = { 50.0f, 150000.0f, 50.0f }; +Vec lbl_1_data_34 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_40 = { 0.0f, 0.0f, 0.0f }; +Vec lbl_1_data_4C = { 0.0f, 170.0f, 0.0f }; +Vec lbl_1_data_58 = { 0.0f, -22.0f, 850.0f }; + +char lbl_1_bss_34[0x4]; +char lbl_1_bss_30[0x4]; +char lbl_1_bss_2C[0x4]; +Process *lbl_1_bss_28; +omObjData *lbl_1_bss_24; +omObjData *lbl_1_bss_20; +char lbl_1_bss_18[8]; +s16 lbl_1_bss_16; +s16 lbl_1_bss_14; +s16 lbl_1_bss_12; +s16 lbl_1_bss_10; +s32 lbl_1_bss_C; +s32 lbl_1_bss_8; +s32 lbl_1_bss_4; +s32 lbl_1_bss_0; + +void ObjectSetup(void) +{ + Vec sp14; + Vec sp8; + Process *var_r31; + LightData *var_r30; + + HuAudSndGrpSet(0x3A); + lbl_1_bss_C = lbl_1_bss_8 = -1; + lbl_1_bss_4 = lbl_1_bss_0 = -1; + lbl_1_data_28.x = 200.0f; + lbl_1_data_28.y = 1200.0f; + lbl_1_data_28.z = 160.0f; + lbl_1_data_34.x = 0.0f; + lbl_1_data_34.y = 1.0f; + lbl_1_data_34.z = 0.0f; + lbl_1_data_40.x = 0.0f; + lbl_1_data_40.y = 0.0f; + lbl_1_data_40.z = 0.0f; + Hu3DShadowCreate(30.0f, 20.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.625f); + Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); + lbl_1_bss_16 = Hu3DGLightCreateV(&lbl_1_data_0, &lbl_1_data_C, &lbl_1_data_24); + Hu3DGLightInfinitytSet(lbl_1_bss_16); + var_r30 = &Hu3DGlobalLight[lbl_1_bss_16]; + var_r30->unk_00 |= 0x8000; + lbl_1_data_18.x = 55.74f; + lbl_1_data_18.y = 0.0f; + lbl_1_data_18.z = 3500.0f; + sp14.x = sp14.y = sp14.z = 0.0f; + sp8.x = sp8.z = 0.0f; + sp8.y = lbl_1_data_18.z; + sp8.x = 0.0f; + sp8.y = 3480.0002f; + sp8.z = 900.00006f; + Hu3DGLightPosAimSetV(lbl_1_bss_16, &sp8, &sp14); + Hu3DShadowPosSet(&sp8, &lbl_1_data_34, &sp14); + lbl_1_bss_14 = lbl_1_bss_12 = lbl_1_bss_10 = -1; + var_r31 = omInitObjMan(0x32, 0x2000); + lbl_1_bss_28 = var_r31; + omGameSysInit(var_r31); + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, -1.0f, 10.0f, 10000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + lbl_1_bss_20 = omAddObjEx(var_r31, 0x7FDA, 0, 0, -1, omOutView); + lbl_1_bss_24 = omAddObjEx(var_r31, 0xA, 0, 0, -1, fn_1_4C0); + fn_1_2894(var_r31); + fn_1_5904(var_r31); +} + +void fn_1_4C0(omObjData *object) +{ + M433DllWork *work; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M433DllWork), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M433DllWork)); + work->unk_00 = 0; + work->unk_04 = 0; + work->unk_0C = 0; + work->unk_10 = 0; + work->unk_14 = 0; + work->unk_18 = 0; + work->unk_24 = 0; + work->unk_28 = 0; + work->unk_08 = 0; + work->unk_34 = 2; + work->unk_38 = 0; + work->unk_3C = 0; + object->func = fn_1_798; +} + +void fn_1_584(omObjData *object) +{ + M433DllWork *work = object->data; + work->unk_04++; + work->unk_10++; + work->unk_18++; + work->unk_28++; + if ((omSysExitReq != 0) && (work->unk_00 != 5)) { + work->unk_00 = 4; + fn_1_618(object); + } +} + +void fn_1_618(omObjData *object) +{ + M433DllWork *work = object->data; + if (work->unk_08 == 0) { + switch (work->unk_00) { + case 0: + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + Hu3DCameraPerspectiveSet(1, 41.5f, 10.0f, 10000.0f, 1.2f); + lbl_1_bss_C = HuAudFXPlay(0x6AC); + work->unk_00 = 1; + work->unk_10 = 0; + object->func = fn_1_29A4(lbl_1_bss_28, object); + break; + case 1: + work->unk_00 = 2; + work->unk_18 = 0; + object->func = fn_1_1040; + break; + case 2: + work->unk_00 = 3; + work->unk_28 = 0; + object->func = fn_1_1A3C(lbl_1_bss_28, object); + break; + case 3: + case 4: + work->unk_08 = 1; + work->unk_00 = 5; + object->func = fn_1_AD4; + break; + case 5: + default: + work->unk_00 = 5; + object->func = fn_1_E2C; + break; + } + work->unk_04 = 0; + } +} + +void fn_1_798(omObjData *object) +{ + fn_1_584(object); + fn_1_618(object); +} + +void fn_1_AD4(omObjData *object) +{ + M433DllWork *work = object->data; + + fn_1_584(object); + if (WipeStatGet() == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + work->unk_08 = 0; + fn_1_618(object); + } +} + +void fn_1_E2C(omObjData *object) +{ + fn_1_584(object); + if (WipeStatGet() == 0) { + fn_1_5B74(); + fn_1_2984(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_1040(omObjData *object) +{ + M433DllWork *work = object->data; + fn_1_584(object); + switch (work->unk_14) { + case 0: + HuAudFXFadeOut(lbl_1_bss_C, 0x1E); + work->unk_1C = 0x1E; + work->unk_20 = 0x3C; + lbl_1_bss_14 = MGSeqCreate(3, 0); + MGSeqPosSet(lbl_1_bss_14, 320.0f, 240.0f); + Center.x = 0.0f; + Center.y = 200.0f; + Center.z = 0.0f; + CRot.x = -30.0f; + CRot.y = 0.0f; + CRot.z = 0.0f; + CZoom = 1900.0f; + work->unk_14 = 1; + work->unk_18 = 0; + break; + case 1: + if ((lbl_1_bss_4 < 0) && ((MGSeqStatGet(lbl_1_bss_14) & 0x10) != 0)) { + lbl_1_bss_4 = HuAudSeqPlay(0x47); + } + if ((MGSeqStatGet(lbl_1_bss_14) == 0) && (work->unk_08 == 0)) { + work->unk_14 = 2; + work->unk_18 = 0; + object->func = fn_1_13FC; + } + break; + } +} + +void fn_1_13FC(omObjData *object) +{ + + M433DllWork *work = object->data; + s32 var_r27 = 0; + fn_1_584(object); + work->unk_20++; + if (--work->unk_20 == 0) { + work->unk_20 = 0x3C; + work->unk_1C--; + if (work->unk_1C == 0) { + var_r27 = 1; + } + } + if (work->unk_34 != 2) { + var_r27 = 1; + } + if (var_r27 != 0) { + lbl_1_bss_12 = MGSeqCreate(3, 1); + MGSeqPosSet(lbl_1_bss_12, 320.0f, 240.0f); + HuAudSeqFadeOut(lbl_1_bss_4, 0x64); + work->unk_14 = 3; + work->unk_18 = 0; + if (work->unk_08 == 0) { + object->func = fn_1_16D0; + } + lbl_1_bss_8 = HuAudFXPlay(0x6AC); + } +} + +void fn_1_16D0(omObjData *object) +{ + M433DllWork *work = object->data; + fn_1_584(object); + if ((MGSeqStatGet(lbl_1_bss_12) == 0) && ((work->unk_38 + 0xFFFF0000) == 0x1111)) { + work->unk_14 = 4; + work->unk_18 = 0; + fn_1_618(object); + } +} + +omObjFunc fn_1_1A3C(Process *process, omObjData *object) +{ + return fn_1_1A48; +} + +static inline s32 fn_1_1A48_inline(void) +{ + return GWSystem.mg_type; +} + +void fn_1_1A48(omObjData *object) +{ + M433DllWork *work = object->data; + float var_f31 = lbl_1_data_58.y; + if (fn_1_10FA4(1) != 0) { + var_f31 *= -1.0f; + } + Center.x += 0.15f * (lbl_1_data_4C.x - Center.x); + Center.y += 0.15f * (lbl_1_data_4C.y - Center.y); + Center.z += 0.15f * (lbl_1_data_4C.z - Center.z); + CRot.x = fn_1_26C4(CRot.x, lbl_1_data_58.x, 0.15f); + CRot.y = fn_1_26C4(CRot.y, var_f31, 0.15f); + CZoom += 0.15f * (lbl_1_data_58.z - CZoom); + fn_1_584(object); + work->unk_24 = 1; + if (lbl_1_bss_0 < 0) { + lbl_1_bss_0 = HuAudSStreamPlay(1); + } + if (lbl_1_bss_10 < 0) { + s32 spC[4] = { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }; + s32 var_r26; + s32 var_r25 = 0; + s32 var_r24; + for (var_r26 = 0; var_r26 < 2; var_r26++) { + if (work->unk_2C[var_r26] >= 0) { + spC[var_r25++] = GWPlayerCfg[work->unk_2C[var_r26]].character; + GWPlayerCoinWinAdd(work->unk_2C[var_r26], 10); + } + } + if (spC[0] == -1) { + lbl_1_bss_10 = MGSeqCreate(5, 2); + return; + } + var_r24 = 3; + if (fn_1_1A48_inline() == 0) { + if (fn_1_10FA4(0) != 0) { + var_r24 = 5; + } + } + lbl_1_bss_10 = MGSeqCreate(5, var_r24, spC[0], spC[1], spC[2], spC[3]); + return; + } + if ((MGSeqStatGet(lbl_1_bss_10) == 0) && (work->unk_28 >= 210.0f)) { + HuAudFXFadeOut(lbl_1_bss_8, 0x1E); + work->unk_24 = 2; + fn_1_618(object); + } +} + +s32 fn_1_213C(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_24, M433DllWork)->unk_00; +} + +s32 fn_1_2154(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_24, M433DllWork)->unk_0C; +} + +s32 fn_1_216C(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_24, M433DllWork)->unk_14; +} + +s32 fn_1_2184(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_24, M433DllWork)->unk_24; +} + +void fn_1_219C(s32 arg0, s32 arg1, s32 arg2) +{ + M433DllWork *work = lbl_1_bss_24->data; + work->unk_34 = arg0; + work->unk_2C[0] = arg1; + work->unk_2C[1] = arg2; +} + +s32 fn_1_21CC(void) +{ + return OM_GET_DATA_PTR(lbl_1_bss_24, M433DllWork)->unk_34; +} + +void fn_1_21E4(s32 arg0) +{ + OM_GET_DATA_PTR(lbl_1_bss_24, M433DllWork)->unk_38 |= (1 << ((arg0 & 7) * 4)); +} + +void fn_1_2214(s32 arg0) +{ + OM_GET_DATA_PTR(lbl_1_bss_24, M433DllWork)->unk_3C |= (1 << ((arg0 & 3) * 4)); +} + +s32 fn_1_2244(void) +{ + return MGSeqStatGet(lbl_1_bss_12) == 0; +} + +void fn_1_227C(Vec *arg0, Vec *arg1) +{ + Vec sp10; + + PSVECSubtract(arg1, arg0, &sp10); + Center = *arg1; + CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z))); + CRot.y = atan2d(-sp10.x, -sp10.z); + CRot.z = 0.0f; + CZoom = PSVECMag(&sp10); +} + +void fn_1_2484(float arg8, float arg9, float argA, float argB, float argC, float argD) +{ + Vec sp3C; + Vec sp30; + + sp3C.x = arg8; + sp3C.y = arg9; + sp3C.z = argA; + sp30.x = argB; + sp30.y = argC; + sp30.z = argD; + fn_1_227C(&sp3C, &sp30); +} + +float fn_1_26C4(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + float var_f29; + + var_f30 = fmod(arg9 - arg8, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + var_f29 = fmod(arg8 + (argA * var_f31), 360.0); + var_f31 = var_f29; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + return var_f31; +} + +float fn_1_27E0(float arg8, float arg9) +{ + float var_f31; + float var_f30; + + var_f30 = fmod(arg9 - arg8, 360.0); + var_f31 = var_f30; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} + +s32 lbl_1_data_64[] = { + 0x00000000, + 0x00000000, + 0x45ABE000, + 0xC576E000, + 0x00000000, + 0xBF333333, + 0x3F19999A, + 0xFFFFFFFF, + 0x00000000, + 0x45ABE000, + 0xC576E000, + 0x00000000, + 0x3F800000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, +}; diff --git a/src/REL/m433Dll/map.c b/src/REL/m433Dll/map.c new file mode 100644 index 00000000..57695003 --- /dev/null +++ b/src/REL/m433Dll/map.c @@ -0,0 +1,827 @@ +#include "dolphin/mtx.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/flag.h" +#include "game/frand.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m433Dll.h" + +typedef struct M433DllBss38Struct { + /* 0x00 */ u8 unk_00; + /* 0x01 */ char unk01[2]; + /* 0x03 */ u8 unk_03; + /* 0x04 */ u8 unk_04; + /* 0x05 */ char unk05[3]; + /* 0x08 */ float unk_08; + /* 0x0C */ Vec unk_0C; + /* 0x18 */ Vec unk_18; + /* 0x24 */ Vec unk_24; + /* 0x30 */ Vec unk_30; + /* 0x3C */ char unk3C[0xC]; + /* 0x48 */ Vec unk_48; + union { + struct { + /* 0x54 */ float unk_54; + /* 0x58 */ float unk_58; + char unk5C[4]; + /* 0x60 */ float unk_60; + }; + struct { + /* 0x54 */ s16 unk_54_s16[0x20]; + }; + }; +} M433DllBss38Struct; /* size = 0x94 */ + +typedef struct M433DllMapWork { + char unk00; + u8 unk_01; + u8 unk_02; + char unk03; + u8 unk_04; + char unk08[4]; + Vec unk_0C; + Vec unk_18; + char unk24[0xC]; + Vec unk_30; + Vec unk_3C; + char unk48[0xC]; + s16 unk_54; + char unk56[0x3E]; +} M433DllMapWork; /* size 0x94 */ + +typedef struct M433DllMapWork2 { + u8 unk_00; + Vec unk_04; + Vec unk_10; + Vec unk_1C; + Vec unk_28; + Vec unk_34; + Vec unk_40; + char unk4C[0xE4]; + float unk_130; + float unk_134; + float unk_138; + char unk13C[4]; + float unk_140; + float unk_144; + float unk_148; + float unk_14C[3]; + float unk_158[3]; + float unk_164[3]; + float unk_170[3]; + float unk_17C[3]; + u16 unk_188[3]; +} M433DllMapWork2; /* size 0x190 */ + +typedef struct M433DllUnkStruct { + s16 unk_00; + s16 unk_02; + s16 unk_04; + char unk06[0x42]; +} M433DllUnkStruct; /* size 0x48 */ + +void fn_1_2AC4(omObjData *object); +void fn_1_2CE0(omObjData *object); +void fn_1_32CC(omObjData *object); +void fn_1_39AC(omObjData *object); +void fn_1_3C1C(omObjData *object); +s16 fn_1_3E5C(s32 arg0, s16 arg1, ParticleHook arg2); +void fn_1_3F14(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_4A94(omObjData *object); +void fn_1_4BA0(omObjData *object); +void fn_1_4ED4(float arg8, Vec *arg0, Vec *arg1, float arg9); +void fn_1_5068(void); +void *fn_1_50A8(s32 arg0); +void fn_1_51DC(void); +s32 fn_1_5260(void); +float fn_1_52B4(float arg8, float arg9, float argA); +void fn_1_541C(Mtx arg0, float arg8, float arg9, float argA); +void fn_1_553C(Mtx arg0, Vec *arg1); +extern s32 lbl_1_bss_34; + +omObjData *lbl_1_bss_7B0; +omObjData *lbl_1_bss_7AC; +omObjData *lbl_1_bss_7A8; +void *lbl_1_bss_728[0x20]; +M433DllBss38Struct lbl_1_bss_38[0xC]; + +void fn_1_2894(Process *process) +{ + s32 var_r31; + s32 var_r29; + + lbl_1_bss_34 = 1; + lbl_1_bss_7AC = omAddObjEx(process, 0x1E, 8, 0, -1, fn_1_2CE0); + lbl_1_bss_7A8 = omAddObjEx(process, 0x1F, 3, 6, -1, fn_1_39AC); + lbl_1_bss_7B0 = omAddObjEx(process, 0x1D, 1, 0, -1, fn_1_4A94); + var_r29 = frand() & 0x1F; + for (var_r31 = 0; var_r31 < var_r29; var_r31++) { + fn_1_5260(); + } + fn_1_5068(); +} + +void fn_1_2984(void) +{ + fn_1_51DC(); +} + +omObjFunc fn_1_29A4(Process *process, omObjData *object) +{ + M433DllWork *work = object->data; + CRot.x = 54.3f; + CRot.y = 22.3f; + CRot.z = 0.0f; + Center.x = -130.1f; + Center.y = 885.0f; + Center.z = -900.3f; + CZoom = 1100.0f; + fn_1_4ED4(0.0f, &Center, &CRot, CZoom); + object->work[0] = 0xB4; + work->unk_0C = 1; + return fn_1_2AC4; +} + +void fn_1_2AC4(omObjData *object) +{ + Vec sp14; + Vec sp8; + float var_f31; + M433DllWork *work = object->data; + + fn_1_584(object); + if (object->work[0] == 120.0f) { + sp14.x = 0.0f; + sp14.y = -10.0f; + sp14.z = -207.5f; + sp8.x = -26.5f; + sp8.y = 0.0f; + sp8.z = 0.0f; + var_f31 = 1400.0f; + fn_1_4ED4(90.0f, &sp14, &sp8, var_f31); + } + if (object->work[0] == 48.0f) { + sp14.x = 0.0f; + sp14.y = 200.0f; + sp14.z = 0.0f; + sp8.x = -30.0f; + sp8.y = 0.0f; + sp8.z = 0.0f; + var_f31 = 1900.0f; + fn_1_4ED4(object->work[0], &sp14, &sp8, var_f31); + } + if (--object->work[0] == 0) { + work->unk_0C = 2; + fn_1_618(object); + lbl_1_bss_7B0->func = NULL; + } +} + +void fn_1_2CE0(omObjData *object) +{ + Vec sp8[0x10] = { + { 475.0f, 800.0f, -1400.0f }, + { -300.0f, 700.0f, -1400.0f }, + { 300.0f, 875.0f, -1450.0f }, + { -575.0f, 850.0f, -1550.0f }, + { 350.0f, 750.0f, -1500.0f }, + { -450.0f, 775.0f, -1550.0f }, + { 325.0f, 725.0f, -1450.0f }, + { -525.0f, 725.0f, -1500.0f }, + { 575.0f, 850.0f, -1550.0f }, + { -350.0f, 750.0f, -1500.0f }, + { 450.0f, 775.0f, -1550.0f }, + { -325.0f, 725.0f, -1450.0f }, + { 525.0f, 725.0f, -1500.0f }, + { -475.0f, 800.0f, -1400.0f }, + { 300.0f, 700.0f, -1400.0f }, + { -300.0f, 875.0f, -1450.0f }, + }; + M433DllBss38Struct *var_r31; + s32 var_r30; + M433DllUnkStruct *var_r28; + s32 i; + s32 var_r26; + + var_r30 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 0xCD)); + object->model[0] = var_r30; + var_r30 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 0xCE)); + object->model[1] = var_r30; + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(var_r30, 0.5f); + var_r30 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 0xCF)); + object->model[2] = var_r30; + Hu3DModelAttrSet(var_r30, HU3D_MOTATTR_LOOP); + var_r30 = fn_1_3E5C(DATA_MAKE_NUM(DATADIR_M425, 0x05), 1, fn_1_3F14); + object->model[3] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 6); + var_r28 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_1C; + var_r28->unk_02 = 0; + HuDataDirClose(DATA_MAKE_NUM(DATADIR_M425, 0x05)); + var_r30 = fn_1_3E5C(DATA_MAKE_NUM(DATADIR_M433, 0xD3), 0xA, fn_1_3F14); + object->model[4] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 6); + var_r28 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_1C; + var_r28->unk_02 = 1; + var_r30 = fn_1_3E5C(DATA_MAKE_NUM(DATADIR_M433, 0xD2), 4, fn_1_3F14); + object->model[5] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 6); + var_r28 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_1C; + var_r28->unk_02 = 2; + var_r30 = fn_1_3E5C(DATA_MAKE_NUM(DATADIR_M433, 0xD1), 6, fn_1_3F14); + object->model[6] = var_r30; + Hu3DParticleBlendModeSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 6); + var_r28 = ((ParticleData *)Hu3DData[var_r30].unk_120)->unk_1C; + var_r28->unk_02 = 3; + for (i = 0; i < 0xC; i++) { + var_r31 = &lbl_1_bss_38[i]; + var_r30 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M425, 0x02)); + var_r31->unk_00 = var_r30; + var_r31->unk_0C.x = sp8[i].x; + var_r31->unk_0C.y = sp8[i].y - 300.0f; + var_r31->unk_0C.z = 800.0f + sp8[i].z; + Hu3DModelPosSet(var_r30, var_r31->unk_0C.x, var_r31->unk_0C.y, var_r31->unk_0C.z); + Hu3DMotionSpeedSet(var_r30, 6.0f); + var_r31->unk_03 = var_r31->unk_04 = 0; + var_r31->unk_18.x = var_r31->unk_18.y = var_r31->unk_18.z = 0.0f; + var_r31->unk_24.x = var_r31->unk_24.y = var_r31->unk_24.z = 1.0f; + var_r31->unk_48.x = var_r31->unk_48.y = var_r31->unk_48.z = 0.0f; + var_r31->unk_30.x = var_r31->unk_0C.x; + var_r31->unk_30.y = var_r31->unk_0C.y; + var_r31->unk_30.z = var_r31->unk_0C.z; + if ((i & 1) != 0) { + var_r31->unk_18.y = 90.0f; + var_r31->unk_0C.y += 650.0; + var_r31->unk_0C.x -= 1000.0 + (200.0f * ((fn_1_5260() - 0x8000) / 32768.0f)); + } + else { + var_r31->unk_18.y = 90.0f; + var_r31->unk_0C.x += 200.0f * ((fn_1_5260() - 0x8000) / 32768.0f); + } + var_r31->unk_18.y += 10.0f * ((fn_1_5260() - 0x8000) / 32768.0f); + var_r31->unk_0C.z = var_r31->unk_0C.z - 400.0; + var_r31->unk_08 = 100.0f * (0.1f + (0.02f * (fn_1_5260() / 65536.0f))); + for (var_r26 = 0; var_r26 < 0x20; var_r26++) { + var_r31->unk_54_s16[var_r26] = 0; + } + var_r31->unk_60 = var_r31->unk_08; + } + HuDataDirClose(DATA_MAKE_NUM(DATADIR_M425, 0x02)); + HuAudFXPlayVol(0x6A3, 0x41); + object->func = fn_1_32CC; +} + +void fn_1_32CC(omObjData *object) +{ + Mtx sp14; + Vec sp8; + M433DllBss38Struct *var_r31; + s32 i; + + for (i = 0; i < 0xC; i++) { + var_r31 = &lbl_1_bss_38[i]; + switch (var_r31->unk_04) { + case 0: + if (var_r31->unk_08 < var_r31->unk_60) { + var_r31->unk_08 += 0.4f; + } + if ((s32)(64.0f * (fn_1_5260() / 65536.0f)) == 0) { + Hu3DMotionTimeSet(var_r31->unk_00, 0.0f); + } + if (Hu3DMotionEndCheck(var_r31->unk_00) != 0) { + var_r31->unk_48.y = -3.8933334f; + } + else { + var_r31->unk_48.y = -1.2166667f; + } + var_r31->unk_54 += 0.1f * ((fn_1_5260() - 0x8000) / 32768.0f); + var_r31->unk_58 += var_r31->unk_54; + if (var_r31->unk_58 > 180.0f) { + var_r31->unk_58 -= 180.0f; + } + if (var_r31->unk_58 < -180.0f) { + var_r31->unk_58 += 180.0f; + } + var_r31->unk_18.x = -30.0 * sind(var_r31->unk_58) * sind(var_r31->unk_18.y); + var_r31->unk_18.z = -30.0 * sind(var_r31->unk_58) * cosd(var_r31->unk_18.y); + if (var_r31->unk_0C.y <= 500.0f || fabs(var_r31->unk_0C.x) > 1600.0) { + var_r31->unk_48.y = 0.0f; + var_r31->unk_54_s16[6] = 0xB4; + var_r31->unk_08 *= 0.75f; + var_r31->unk_04++; + } + break; + case 1: + var_r31->unk_18.y += 1.0f; + var_r31->unk_18.x = 0.0f; + var_r31->unk_18.z = 60.0 * sind(var_r31->unk_54_s16[6]) * cosd(var_r31->unk_18.y); + if (--var_r31->unk_54_s16[6] == 0) { + Hu3DModelAttrSet(var_r31->unk_00, HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(var_r31->unk_00, 6.0f); + var_r31->unk_48.y = 4.866667f; + var_r31->unk_04++; + } + break; + case 2: + if (var_r31->unk_08 > 4.0f) { + var_r31->unk_08 -= 0.1f; + var_r31->unk_48.y += 0.73f; + } + var_r31->unk_48.y += -0.5475f; + if (var_r31->unk_48.y < 0.0f) { + Hu3DModelAttrReset(var_r31->unk_00, HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(var_r31->unk_00, 2.0f); + var_r31->unk_60 = 100.0f * (0.1f + (0.02f * (fn_1_5260() / 65536.0f))); + var_r31->unk_04 = 0; + } + break; + } + var_r31->unk_48.x = var_r31->unk_08 * sind(var_r31->unk_18.y); + var_r31->unk_48.z = var_r31->unk_08 * cosd(var_r31->unk_18.y); + var_r31->unk_0C.x += var_r31->unk_48.x; + var_r31->unk_0C.y += var_r31->unk_48.y; + var_r31->unk_0C.z += var_r31->unk_48.z; + if (var_r31->unk_0C.z >= -500.0f) { + var_r31->unk_0C.z = -500.0f; + } + Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_0C.x, var_r31->unk_0C.y, var_r31->unk_0C.z); + fn_1_541C(sp14, var_r31->unk_18.x, -var_r31->unk_18.y, var_r31->unk_18.z); + fn_1_553C(sp14, &sp8); + Hu3DModelRotSetV(var_r31->unk_00, &sp8); + } +} + +void fn_1_39AC(omObjData *object) +{ + s32 var_r29; + s32 var_r28; + + s32 sp18[4] = { 0x004000D4, 0x004000D5, 0x004000D6, 0x004000D7 }; + s32 sp8[4] = { 0x0040000C, 0x00400010, 0x0040000F, 0x0040000E }; + M433DllMapWork *work = fn_1_50A8(sizeof(M433DllMapWork)); + object->data = work; + if (lbl_1_bss_34 != 0) { + var_r28 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 0x0B)); + } + else { + var_r28 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 0x62)); + } + object->model[0] = var_r28; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (lbl_1_bss_34 != 0) { + object->motion[var_r29] = Hu3DJointMotionFile(var_r28, sp8[var_r29]); + } + else { + object->motion[var_r29] = Hu3DJointMotionFile(var_r28, sp18[var_r29]); + } + } + Hu3DMotionSet(var_r28, object->motion[0]); + Hu3DModelAttrSet(var_r28, HU3D_MOTATTR_LOOP); + work->unk_01 = work->unk_02 = 0; + work->unk_04 = 0; + work->unk_54 = 0; + work->unk_0C.x = 0.0f; + work->unk_0C.y = 180.0f; + work->unk_0C.z = -490.0f; + work->unk_30 = work->unk_0C; + work->unk_18.x = work->unk_18.y = work->unk_18.z = 0.0f; + work->unk_3C = work->unk_18; + omSetTra(object, work->unk_0C.x, work->unk_0C.y, work->unk_0C.z); + omSetRot(object, work->unk_18.x, work->unk_18.y, work->unk_18.z); + object->func = fn_1_3C1C; +} + +void fn_1_3C1C(omObjData *object) +{ + M433DllMapWork *work; + s32 var_r29; + s32 var_r28; + + work = object->data; + var_r28 = object->model[0]; + switch (work->unk_04) { + case 0: + work->unk_01 = 0; + var_r29 = 0x40000001; + break; + case 1: + work->unk_3C.y = 0.0f; + work->unk_01 = 1; + var_r29 = 0x40000001; + if (work->unk_54++ >= 0x5A) { + work->unk_54 = 0; + work->unk_04 = 0; + } + break; + case 2: + work->unk_3C.y = 0.0f; + work->unk_01 = 2; + var_r29 = 0; + if (Hu3DMotionEndCheck(var_r28) != 0) { + work->unk_04 = 0; + } + break; + case 3: + work->unk_3C.y = 0.0f; + work->unk_01 = 3; + var_r29 = 0x40000001; + break; + case 4: + work->unk_3C.y = 0.0f; + work->unk_04 = 0; + break; + case 5: + work->unk_3C.y = 50.0f; + work->unk_04 = 0; + break; + case 6: + work->unk_3C.y = -50.0f; + work->unk_04 = 0; + break; + } + if (work->unk_01 != work->unk_02) { + work->unk_02 = work->unk_01; + Hu3DMotionShiftSet(var_r28, object->motion[work->unk_01], 0.0f, 8.0f, var_r29); + switch (work->unk_01) { + case 1: + HuAudFXPlay(0x43); + break; + case 2: + HuAudFXPlay(0x45); + break; + } + } + work->unk_18.y = fn_1_52B4(work->unk_18.y, work->unk_3C.y, 0.9f); + omSetTra(object, work->unk_0C.x, work->unk_0C.y, work->unk_0C.z); + omSetRot(object, work->unk_18.x, work->unk_18.y, work->unk_18.z); +} + +s16 fn_1_3E5C(s32 sp8, s16 spC, ParticleHook sp10) +{ + M433DllUnkStruct *var_r31; + s32 var_r30; + ParticleData *var_r29; + AnimData *var_r28; + + var_r28 = HuSprAnimRead(HuDataReadNum(sp8, MEMORY_DEFAULT_NUM)); + var_r30 = Hu3DParticleCreate(var_r28, spC); + Hu3DParticleHookSet(var_r30, sp10); + var_r29 = Hu3DData[var_r30].unk_120; + var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M433DllUnkStruct), MEMORY_DEFAULT_NUM); + var_r29->unk_1C = var_r31; + var_r31->unk_00 = var_r30; + var_r31->unk_04 = 0; + return var_r30; +} + +void fn_1_3F14(ModelData *model, ParticleData *var_r30, Mtx matrix) +{ + float var_f29; + float var_f26; + float var_f25; + float var_f24; + HsfanimStruct01 *var_r31; + s32 var_r28; + float sp54[4] = { 1000.0f, 200.0f, 600.0f, 1200.0f }; + float sp44[4] = { 1.0f, 0.6f, 0.3f, 0.425f }; + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + s16 sp8 = 0; + M433DllUnkStruct *var_r29 = var_r30->unk_1C; + switch (var_r29->unk_04) { + case 0: + var_r30->unk_00 = 0x54; + var_r31 = var_r30->unk_48; + if (var_r29->unk_02 != 0) { + sp14.x = 0.0f; + sp14.y = -4700.0f; + sp14.z = 4450.0f; + var_f29 = 1.0f / sqrtf((sp14.z * sp14.z) + ((sp14.x * sp14.x) + (sp14.y * sp14.y))); + sp14.x *= var_f29; + sp14.y *= var_f29; + sp14.z *= var_f29; + var_f24 = 4000.0f / var_r30->unk_30; + for (var_r28 = 0; var_r28 < var_r30->unk_30; var_r28++, var_r31++) { + var_f26 = 500.0f + ((var_f24 * var_r28) + (0.25f * var_f24 * (fn_1_5260() / 65536.0f))); + var_f25 = var_f26 / 4000.0f; + var_r31->unk14.x = var_f26; + var_r31->unk34.x = var_f26 * sp14.x; + var_r31->unk34.y = 5500.0f + (var_f26 * sp14.y); + var_r31->unk34.z = -3950.0f + (var_f26 * sp14.z); + var_r31->unk2C = (0.3f + (0.7f * (var_f25 * var_f25))) * (sp54[var_r29->unk_02] * (0.7f + (0.3f * (fn_1_5260() / 65536.0f)))); + var_r31->unk40.r = (s32)(160.0f * (fn_1_5260() / 65536.0f)) + 0x20; + var_r31->unk40.g = (s32)(96.0f * (fn_1_5260() / 65536.0f)) + 0x20; + var_r31->unk40.b = (s32)(128.0f * (fn_1_5260() / 65536.0f)) + 0x20; + var_r31->unk40.a = ((1.0 - (0.4 * var_f25)) * (255.0f * sp44[var_r29->unk_02])) - (s32)(16.0f * (fn_1_5260() / 65536.0f)); + } + var_r29->unk_04++; + } + else { + var_r31->unk34.x = 0.0f; + var_r31->unk34.y = 5500.0f; + var_r31->unk34.z = -3950.0f; + var_r31->unk2C = 1000.0f; + } + break; + case 1: + sp38.x = sind(CRot.y) * cosd(CRot.x); + sp38.y = -sind(CRot.x); + sp38.z = cosd(CRot.y) * cosd(CRot.x); + sp2C.x = -(Center.x + (1.25f * (sp38.x * CZoom))); + sp2C.y = 5500.0f - (Center.y + (sp38.y * CZoom)); + sp2C.z = -3950.0f - (Center.z + (1.25f * (sp38.z * CZoom))); + var_f29 = 1.0f / sqrtf((sp2C.z * sp2C.z) + ((sp2C.x * sp2C.x) + (sp2C.y * sp2C.y))); + sp2C.x *= var_f29; + sp2C.y *= var_f29; + sp2C.z *= var_f29; + var_f29 = -((-sp2C.z * -sp38.z) + ((-sp2C.x * -sp38.x) + (-sp2C.y * -sp38.y))); + sp20.x = -sp38.x + (-2.0f * sp2C.x * var_f29); + sp20.y = -sp38.y + (-2.0f * sp2C.y * var_f29); + sp20.z = -sp38.z + (-2.0f * sp2C.z * var_f29); + for (var_r31 = var_r30->unk_48, var_r28 = 0; var_r28 < var_r30->unk_30; var_r28++, var_r31++) { + var_r31->unk34.x = sp20.x * var_r31->unk14.x; + var_r31->unk34.y = 5500.0f + (sp20.y * var_r31->unk14.x); + var_r31->unk34.z = -3950.0f + (sp20.z * var_r31->unk14.x); + if (var_r30->unk_00 < 0xA) { + var_r31->unk40.a *= 0.8f; + } + } + var_r30->unk_00--; + if (var_r30->unk_00 == 0) { + Hu3DModelAttrReset(var_r29->unk_00, HU3D_ATTR_PARTICLE_KILL); + Hu3DModelKill(var_r29->unk_00); + return; + } + break; + } + DCFlushRange(var_r30->unk_48, var_r30->unk_30 * sizeof(HsfanimStruct01)); +} + +void fn_1_4A94(omObjData *var_r30) +{ + M433DllMapWork2 *work = fn_1_50A8(sizeof(M433DllMapWork2)); + var_r30->data = work; + work->unk_148 = work->unk_144 = 0.0f; + work->unk_140 = 1.0f; + work->unk_10.x = work->unk_28.x = -30.0f; + work->unk_10.y = work->unk_28.y = 0.0f; + work->unk_10.z = work->unk_28.z = 0.0f; + work->unk_04.x = work->unk_1C.x = 0.0f; + work->unk_04.y = work->unk_1C.y = 200.0f; + work->unk_04.z = work->unk_1C.z = 0.0f; + work->unk_130 = work->unk_134 = 1900.0f; + work->unk_188[0] = work->unk_188[1] = work->unk_188[2] = 0; + var_r30->func = fn_1_4BA0; +} + +void fn_1_4BA0(omObjData *object) +{ + float var_f31; + s32 var_r30; + M433DllMapWork2 *work = object->data; + if (work->unk_148 > 0.0f) { + work->unk_148 = work->unk_148 - work->unk_140; + var_f31 = (work->unk_144 - work->unk_148) / work->unk_144; + var_f31 = sind((90.0f * var_f31)); + if (work->unk_00 == 0) { + work->unk_04.x = work->unk_1C.x + (var_f31 * (work->unk_34.x - work->unk_1C.x)); + work->unk_04.y = work->unk_1C.y + (var_f31 * (work->unk_34.y - work->unk_1C.y)); + work->unk_04.z = work->unk_1C.z + (var_f31 * (work->unk_34.z - work->unk_1C.z)); + work->unk_10.x = work->unk_28.x + (var_f31 * (work->unk_40.x - work->unk_28.x)); + work->unk_10.y = work->unk_28.y + (var_f31 * (work->unk_40.y - work->unk_28.y)); + work->unk_10.z = work->unk_28.z + (var_f31 * (work->unk_40.z - work->unk_28.z)); + work->unk_130 = work->unk_134 + (var_f31 * (work->unk_138 - work->unk_134)); + } + } + CRot.x = work->unk_10.x; + CRot.y = work->unk_10.y; + CRot.z = work->unk_10.z; + Center.x = work->unk_04.x; + Center.y = work->unk_04.y; + Center.z = work->unk_04.z; + CZoom = work->unk_130; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + work->unk_17C[var_r30] = 0.0f; + if (work->unk_188[var_r30] != 0) { + work->unk_17C[var_r30] = work->unk_14C[var_r30] * sind(work->unk_164[var_r30]); + work->unk_164[var_r30] += work->unk_170[var_r30]; + work->unk_14C[var_r30] *= work->unk_158[var_r30]; + work->unk_188[var_r30] -= 1; + } + } + Center.x += work->unk_17C[0]; + Center.y += work->unk_17C[1]; + Center.z += work->unk_17C[2]; +} + +void fn_1_4ED4(float arg8, Vec *arg0, Vec *arg1, float arg9) +{ + M433DllMapWork2 *work = lbl_1_bss_7B0->data; + work->unk_00 = 0; + work->unk_144 = arg8; + work->unk_148 = arg8; + if (arg8 == 0.0f) { + work->unk_04.x = arg0->x; + work->unk_04.y = arg0->y; + work->unk_04.z = arg0->z; + work->unk_10.x = arg1->x; + work->unk_10.y = arg1->y; + work->unk_10.z = arg1->z; + work->unk_130 = arg9; + return; + } + work->unk_1C = work->unk_04; + work->unk_34.x = arg0->x; + work->unk_34.y = arg0->y; + work->unk_34.z = arg0->z; + work->unk_28 = work->unk_10; + work->unk_40.x = arg1->x; + work->unk_40.y = arg1->y; + work->unk_40.z = arg1->z; + work->unk_134 = work->unk_130; + work->unk_138 = arg9; +} + +void fn_1_4FC0(float arg8) +{ + M433DllMapWork2 *var_r31 = lbl_1_bss_7B0->data; + var_r31->unk_140 = arg8; +} + +void fn_1_4FE8(u8 arg0, u16 arg1, float arg8, float arg9, float argA) +{ + M433DllMapWork2 *var_r31 = lbl_1_bss_7B0->data; + var_r31->unk_188[arg0] = arg1; + var_r31->unk_14C[arg0] = arg8; + var_r31->unk_158[arg0] = arg9; + var_r31->unk_170[arg0] = argA; + var_r31->unk_164[arg0] = 90.0f; +} + +void fn_1_5068(void) +{ + s32 i; + for (i = 0; i < 0x20; i++) { + lbl_1_bss_728[i] = NULL; + } +} + +void *fn_1_50A8(s32 arg0) +{ + s32 i; + + for (i = 0; i < 0x20; i++) { + if (!lbl_1_bss_728[i]) { + break; + } + } + if (i == 0x20) { + return NULL; + } + lbl_1_bss_728[i] = HuMemDirectMallocNum(HEAP_SYSTEM, arg0, MEMORY_DEFAULT_NUM); + return lbl_1_bss_728[i]; +} + +void fn_1_5148(u32 sp8) +{ + s32 i; + + for (i = 0; i < 0x20; i++) { + if (lbl_1_bss_728[i] == (void *)sp8) { + break; + } + } + if (i != 0x20) { + HuMemDirectFree(lbl_1_bss_728[i]); + lbl_1_bss_728[i] = NULL; + } +} + +void fn_1_51DC(void) +{ + s32 i; + + for (i = 0; i < 0x20; i++) { + if (lbl_1_bss_728[i]) { + HuMemDirectFree(lbl_1_bss_728[i]); + lbl_1_bss_728[i] = NULL; + } + } +} + +u32 lbl_1_data_C4 = 0x41C64E6D; + +s32 fn_1_5260(void) +{ + lbl_1_data_C4 *= 0x41C64E6D; + lbl_1_data_C4 += 0x3039; + return lbl_1_data_C4 >> 0x10; +} + +float fn_1_52B4(float arg8, float arg9, float argA) +{ + float var_f31; + + if (arg8 > 180.0f) { + arg8 -= 360.0f; + } + else if (arg8 <= -180.0f) { + arg8 += 360.0f; + } + if (arg9 > 180.0f) { + arg9 -= 360.0f; + } + else if (arg9 <= -180.0f) { + arg9 += 360.0f; + } + var_f31 = arg8 - arg9; + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + else if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } + arg8 = arg9 + (var_f31 * argA); + if (arg8 > 180.0f) { + return arg8 - 360.0f; + } + if (arg8 <= -180.0f) { + arg8 += 360.0f; + } + return arg8; +} + +void fn_1_541C(Mtx arg0, float arg8, float arg9, float argA) +{ + Mtx sp38; + Mtx sp8; + + if (argA != 0.0f) { + PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + } + else { + PSMTXIdentity(arg0); + } + if (arg8 != 0.0f) { + PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + PSMTXConcat(sp38, arg0, arg0); + } + if (arg9 != 0.0f) { + PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + PSMTXConcat(sp8, arg0, arg0); + } +} + +void fn_1_553C(Mtx arg0, Vec *arg1) +{ + float var_f29; + float var_f28; + + arg1->x = atan2d(arg0[1][2], arg0[2][2]); + if (arg1->x < 0.0f) { + arg1->x += 360.0f; + } + arg1->z = atan2d(arg0[0][1], arg0[0][0]); + if (arg1->z < 0.0f) { + arg1->z += 360.0f; + } + var_f29 = -arg0[0][2]; + var_f28 = sqrtf((1.0 - (var_f29 * var_f29)) < 0.0 ? (-(1.0 - (var_f29 * var_f29))) : (1.0 - (var_f29 * var_f29))); + if ((arg1->x > 90.0f) && (arg1->x < 270.0f) && (arg1->z > 90.0f) && (arg1->z < 270.0f)) { + arg1->x = fmod(180.0f + arg1->x, 360.0); + arg1->z = fmod(180.0f + arg1->z, 360.0); + var_f28 = -var_f28; + } + arg1->y = atan2d(var_f29, var_f28); + if (arg1->y < 0.0f) { + arg1->y += 360.0f; + } +} + +void fn_1_58D8(s32 arg0) +{ + M433DllMapWork *work = lbl_1_bss_7A8->data; + work->unk_04 = arg0; +} diff --git a/src/REL/mstory2Dll/main.c b/src/REL/mstory2Dll/main.c index 73dcc832..c8277e06 100644 --- a/src/REL/mstory2Dll/main.c +++ b/src/REL/mstory2Dll/main.c @@ -1236,7 +1236,3 @@ void fn_1_7384(int modelId, int charNo, float ofs, s32 maxTime, BOOL flag) } } } - -#if VERSION_PAL -// lbl_1_data_399 -#endif From cdb1d1fc37144ce8b15d202dcf40b61409d1eb29 Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Sun, 12 Jan 2025 15:11:23 +0100 Subject: [PATCH 250/311] Import gx, PadClamp, rest of mtx, TRK 2.6 and MSL (#525) * Match mtx and Padclamp.c * Match the rest of GX * Import TRK 2.6 * Import MSL headers and files * Merge some MSL headers into ours --- config/GMPE01_00/splits.txt | 4 +- config/GMPE01_01/splits.txt | 4 +- configure.py | 59 +- include/OdemuExi2/odemuexi/DebuggerDriver.h | 24 + include/PowerPC_EABI_Support/MetroTRK/trk.h | 381 ++++ .../Msl/MSL_C/MSL_Common/FILE_POS.h | 18 + .../Msl/MSL_C/MSL_Common/abort_exit.h | 17 + .../Msl/MSL_C/MSL_Common/alloc.h | 16 + .../Msl/MSL_C/MSL_Common/ansi_files.h | 133 ++ .../Msl/MSL_C/MSL_Common/ansi_fp.h | 36 + .../Msl/MSL_C/MSL_Common/arith.h | 19 + .../Msl/MSL_C/MSL_Common/buffer_io.h | 11 + .../Msl/MSL_C/MSL_Common/char_io.h | 17 + .../Msl/MSL_C/MSL_Common/critical_regions.h | 30 + .../Msl/MSL_C/MSL_Common/ctype.h | 76 + .../Msl/MSL_C/MSL_Common/direct_io.h | 17 + .../Msl/MSL_C/MSL_Common/errno.h | 20 + .../Msl/MSL_C/MSL_Common/extras.h | 15 + .../Msl/MSL_C/MSL_Common/file_io.h | 18 + .../Msl/MSL_C/MSL_Common/float.h | 92 + .../Msl/MSL_C/MSL_Common/limits.h | 93 + .../Msl/MSL_C/MSL_Common/math.h | 106 + .../Msl/MSL_C/MSL_Common/mbstring.h | 16 + .../Msl/MSL_C/MSL_Common/mem_funcs.h | 19 + .../Msl/MSL_C/MSL_Common/misc_io.h | 14 + .../Msl/MSL_C/MSL_Common/printf.h | 22 + .../Msl/MSL_C/MSL_Common/scanf.h | 43 + .../Msl/MSL_C/MSL_Common/signal.h | 16 + .../Msl/MSL_C/MSL_Common/stdio.h | 13 + .../Msl/MSL_C/MSL_Common/stdlib.h | 9 + .../Msl/MSL_C/MSL_Common/strtoul.h | 18 + .../Msl/MSL_C/MSL_Common/wchar_io.h | 12 + .../MSL_C/MSL_Common_Embedded/Math/fdlibm.h | 234 ++ .../PowerPC_EABI_Support/Runtime/MWCPlusLib.h | 44 + .../Runtime/NMWException.h | 43 + include/PowerPC_EABI_Support/Runtime/__mem.h | 17 + .../Runtime/__ppc_eabi_linker.h | 72 + .../MetroTRK/Portable/dispatch.h | 35 + .../MetroTRK/Portable/main_TRK.h | 16 + .../MetroTRK/Portable/mainloop.h | 14 + .../MetroTRK/Portable/mem_TRK.h | 17 + .../MetroTRK/Portable/msg.h | 24 + .../MetroTRK/Portable/msgbuf.h | 50 + .../MetroTRK/Portable/msghndlr.h | 31 + .../MetroTRK/Portable/mutex_TRK.h | 10 + .../MetroTRK/Portable/notify.h | 16 + .../MetroTRK/Portable/nubevent.h | 37 + .../MetroTRK/Portable/nubinit.h | 21 + .../MetroTRK/Portable/serpoll.h | 23 + .../MetroTRK/Portable/support.h | 29 + .../Os/dolphin/dolphin_trk.h | 24 + .../Os/dolphin/dolphin_trk_glue.h | 45 + .../TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.h | 16 + .../TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.h | 14 + .../ppc/Generic/flush_cache.h | 16 + .../ppc/Generic/mpc_7xx_603e.h | 16 + .../TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h | 190 ++ include/amcstubs/AmcExi2Stubs.h | 27 + include/dolphin/math.h | 85 + include/dolphin/mtx.h | 2 +- include/stdarg.h | 42 +- include/stddef.h | 7 +- include/string.h | 19 +- src/MSL_C.PPCEABI.bare.H/abort_exit.c | 55 + src/MSL_C.PPCEABI.bare.H/ansi_files.c | 95 + src/MSL_C.PPCEABI.bare.H/buffer_io.c | 41 + src/MSL_C.PPCEABI.bare.H/ctype.c | 85 + src/MSL_C.PPCEABI.bare.H/direct_io.c | 114 + src/MSL_C.PPCEABI.bare.H/e_asin.c | 3 + src/MSL_C.PPCEABI.bare.H/e_atan2.c | 145 ++ src/MSL_C.PPCEABI.bare.H/errno.c | 3 + src/MSL_C.PPCEABI.bare.H/float.c | 5 + src/MSL_C.PPCEABI.bare.H/mbstring.c | 18 + src/MSL_C.PPCEABI.bare.H/mem.c | 75 + src/MSL_C.PPCEABI.bare.H/mem_funcs.c | 221 ++ src/MSL_C.PPCEABI.bare.H/misc_io.c | 1 + src/MSL_C.PPCEABI.bare.H/printf.c | 1076 +++++++++ src/MSL_C.PPCEABI.bare.H/rand.c | 13 + src/MSL_C.PPCEABI.bare.H/s_atan.c | 148 ++ src/MSL_C.PPCEABI.bare.H/s_frexp.c | 58 + src/MSL_C.PPCEABI.bare.H/scanf.c | 34 + src/MSL_C.PPCEABI.bare.H/string.c | 257 +++ src/MSL_C.PPCEABI.bare.H/strtoul.c | 199 ++ src/MSL_C.PPCEABI.bare.H/w_atan2.c | 39 + src/MSL_C.PPCEABI.bare.H/wchar_io.c | 22 + src/TRK_MINNOW_DOLPHIN/__exception.s | 2018 +++++++++++++++++ src/TRK_MINNOW_DOLPHIN/dispatch.c | 43 + src/TRK_MINNOW_DOLPHIN/dolphin_trk.c | 137 ++ src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c | 116 + src/TRK_MINNOW_DOLPHIN/flush_cache.c | 26 + src/TRK_MINNOW_DOLPHIN/main_TRK.c | 17 + src/TRK_MINNOW_DOLPHIN/mainloop.c | 70 + src/TRK_MINNOW_DOLPHIN/mem_TRK.c | 83 + src/TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c | 248 ++ src/TRK_MINNOW_DOLPHIN/msg.c | 9 + src/TRK_MINNOW_DOLPHIN/msgbuf.c | 359 +++ src/TRK_MINNOW_DOLPHIN/msghndlr.c | 689 ++++++ src/TRK_MINNOW_DOLPHIN/mutex_TRK.c | 7 + src/TRK_MINNOW_DOLPHIN/notify.c | 40 + src/TRK_MINNOW_DOLPHIN/nubevent.c | 72 + src/TRK_MINNOW_DOLPHIN/nubinit.c | 80 + src/TRK_MINNOW_DOLPHIN/serpoll.c | 82 + src/TRK_MINNOW_DOLPHIN/support.c | 177 ++ src/TRK_MINNOW_DOLPHIN/targcont.c | 12 + src/TRK_MINNOW_DOLPHIN/targimpl.c | 1177 ++++++++++ src/TRK_MINNOW_DOLPHIN/usr_put.c | 5 + src/dolphin/gx/GXFifo.c | 36 +- src/dolphin/gx/GXFrameBuf.c | 31 +- src/dolphin/gx/GXInit.c | 254 +-- src/dolphin/mtx/mtx.c | 299 ++- src/dolphin/mtx/quat.c | 130 ++ src/dolphin/mtx/vec.c | 26 +- src/dolphin/pad/Padclamp.c | 39 +- 113 files changed, 11219 insertions(+), 394 deletions(-) create mode 100644 include/OdemuExi2/odemuexi/DebuggerDriver.h create mode 100644 include/PowerPC_EABI_Support/MetroTRK/trk.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/FILE_POS.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/abort_exit.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/alloc.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_fp.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/arith.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/buffer_io.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/char_io.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/critical_regions.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ctype.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/direct_io.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/errno.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/extras.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/file_io.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/float.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/limits.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mbstring.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mem_funcs.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/misc_io.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/printf.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/scanf.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/signal.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdio.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdlib.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/strtoul.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/wchar_io.h create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h create mode 100644 include/PowerPC_EABI_Support/Runtime/MWCPlusLib.h create mode 100644 include/PowerPC_EABI_Support/Runtime/NMWException.h create mode 100644 include/PowerPC_EABI_Support/Runtime/__mem.h create mode 100644 include/PowerPC_EABI_Support/Runtime/__ppc_eabi_linker.h create mode 100644 include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h create mode 100644 include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.h create mode 100644 include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.h create mode 100644 include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.h create mode 100644 include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h create mode 100644 include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h create mode 100644 include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h create mode 100644 include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.h create mode 100644 include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.h create mode 100644 include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h create mode 100644 include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h create mode 100644 include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h create mode 100644 include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.h create mode 100644 include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h create mode 100644 include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h create mode 100644 include/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.h create mode 100644 include/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.h create mode 100644 include/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.h create mode 100644 include/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.h create mode 100644 include/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h create mode 100644 include/amcstubs/AmcExi2Stubs.h create mode 100644 include/dolphin/math.h create mode 100644 src/MSL_C.PPCEABI.bare.H/abort_exit.c create mode 100644 src/MSL_C.PPCEABI.bare.H/ansi_files.c create mode 100644 src/MSL_C.PPCEABI.bare.H/buffer_io.c create mode 100644 src/MSL_C.PPCEABI.bare.H/ctype.c create mode 100644 src/MSL_C.PPCEABI.bare.H/direct_io.c create mode 100644 src/MSL_C.PPCEABI.bare.H/e_asin.c create mode 100644 src/MSL_C.PPCEABI.bare.H/e_atan2.c create mode 100644 src/MSL_C.PPCEABI.bare.H/errno.c create mode 100644 src/MSL_C.PPCEABI.bare.H/float.c create mode 100644 src/MSL_C.PPCEABI.bare.H/mbstring.c create mode 100644 src/MSL_C.PPCEABI.bare.H/mem.c create mode 100644 src/MSL_C.PPCEABI.bare.H/mem_funcs.c create mode 100644 src/MSL_C.PPCEABI.bare.H/misc_io.c create mode 100644 src/MSL_C.PPCEABI.bare.H/printf.c create mode 100644 src/MSL_C.PPCEABI.bare.H/rand.c create mode 100644 src/MSL_C.PPCEABI.bare.H/s_atan.c create mode 100644 src/MSL_C.PPCEABI.bare.H/s_frexp.c create mode 100644 src/MSL_C.PPCEABI.bare.H/scanf.c create mode 100644 src/MSL_C.PPCEABI.bare.H/string.c create mode 100644 src/MSL_C.PPCEABI.bare.H/strtoul.c create mode 100644 src/MSL_C.PPCEABI.bare.H/w_atan2.c create mode 100644 src/MSL_C.PPCEABI.bare.H/wchar_io.c create mode 100644 src/TRK_MINNOW_DOLPHIN/__exception.s create mode 100644 src/TRK_MINNOW_DOLPHIN/dispatch.c create mode 100644 src/TRK_MINNOW_DOLPHIN/dolphin_trk.c create mode 100644 src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c create mode 100644 src/TRK_MINNOW_DOLPHIN/flush_cache.c create mode 100644 src/TRK_MINNOW_DOLPHIN/main_TRK.c create mode 100644 src/TRK_MINNOW_DOLPHIN/mainloop.c create mode 100644 src/TRK_MINNOW_DOLPHIN/mem_TRK.c create mode 100644 src/TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c create mode 100644 src/TRK_MINNOW_DOLPHIN/msg.c create mode 100644 src/TRK_MINNOW_DOLPHIN/msgbuf.c create mode 100644 src/TRK_MINNOW_DOLPHIN/msghndlr.c create mode 100644 src/TRK_MINNOW_DOLPHIN/mutex_TRK.c create mode 100644 src/TRK_MINNOW_DOLPHIN/notify.c create mode 100644 src/TRK_MINNOW_DOLPHIN/nubevent.c create mode 100644 src/TRK_MINNOW_DOLPHIN/nubinit.c create mode 100644 src/TRK_MINNOW_DOLPHIN/serpoll.c create mode 100644 src/TRK_MINNOW_DOLPHIN/support.c create mode 100644 src/TRK_MINNOW_DOLPHIN/targcont.c create mode 100644 src/TRK_MINNOW_DOLPHIN/targimpl.c create mode 100644 src/TRK_MINNOW_DOLPHIN/usr_put.c diff --git a/config/GMPE01_00/splits.txt b/config/GMPE01_00/splits.txt index 6b38187f..fc3ba2b8 100644 --- a/config/GMPE01_00/splits.txt +++ b/config/GMPE01_00/splits.txt @@ -1186,7 +1186,7 @@ TRK_MINNOW_DOLPHIN/serpoll.c: .text start:0x800ECC5C end:0x800ED028 .bss start:0x801A9110 end:0x801A9128 -TRK_MINNOW_DOLPHIN/usrput.c: +TRK_MINNOW_DOLPHIN/usr_put.c: .text start:0x800ED028 end:0x800ED0B4 TRK_MINNOW_DOLPHIN/dispatch.c: @@ -1224,7 +1224,7 @@ TRK_MINNOW_DOLPHIN/targimpl.c: TRK_MINNOW_DOLPHIN/targsupp.c: .text start:0x800F1CF0 end:0x800F1D10 -TRK_MINNOW_DOLPHIN/__exception.c: +TRK_MINNOW_DOLPHIN/__exception.s: .init start:0x80003534 end:0x80005468 TRK_MINNOW_DOLPHIN/dolphin_trk.c: diff --git a/config/GMPE01_01/splits.txt b/config/GMPE01_01/splits.txt index 6b38187f..fc3ba2b8 100644 --- a/config/GMPE01_01/splits.txt +++ b/config/GMPE01_01/splits.txt @@ -1186,7 +1186,7 @@ TRK_MINNOW_DOLPHIN/serpoll.c: .text start:0x800ECC5C end:0x800ED028 .bss start:0x801A9110 end:0x801A9128 -TRK_MINNOW_DOLPHIN/usrput.c: +TRK_MINNOW_DOLPHIN/usr_put.c: .text start:0x800ED028 end:0x800ED0B4 TRK_MINNOW_DOLPHIN/dispatch.c: @@ -1224,7 +1224,7 @@ TRK_MINNOW_DOLPHIN/targimpl.c: TRK_MINNOW_DOLPHIN/targsupp.c: .text start:0x800F1CF0 end:0x800F1D10 -TRK_MINNOW_DOLPHIN/__exception.c: +TRK_MINNOW_DOLPHIN/__exception.s: .init start:0x80003534 end:0x80005468 TRK_MINNOW_DOLPHIN/dolphin_trk.c: diff --git a/configure.py b/configure.py index 545739bb..22c85a12 100644 --- a/configure.py +++ b/configure.py @@ -242,6 +242,9 @@ cflags_trk = [ "-sdata 0", "-sdata2 0", "-inline auto,deferred", + "-pool off", + "-enum min", + "-sdatathreshold 0" ] cflags_odemuexi = [ @@ -344,6 +347,16 @@ def DolphinLib(lib_name, objects): } +def DolphinLibUnpatched(lib_name, objects): + return { + "lib": lib_name, + "mw_version": "GC/1.2.5", + "cflags": cflags_dolphin, + "host": False, + "objects": objects, + } + + def MusyX(objects, mw_version="GC/1.3.2", debug=False, major=1, minor=5, patch=4): cflags = cflags_musyx if not debug else cflags_musyx_debug return { @@ -514,14 +527,14 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/db.c"), ], ), - DolphinLib( + DolphinLibUnpatched( "mtx", [ - Object(NonMatching, "dolphin/mtx/mtx.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/mtx/mtx.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/mtx/mtxvec.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/mtx/mtx44.c"), - Object(NonMatching, "dolphin/mtx/vec.c"), - Object(NonMatching, "dolphin/mtx/quat.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/mtx/vec.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/mtx/quat.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/mtx/psmtx.c"), ], ), @@ -554,7 +567,7 @@ config.libs = [ DolphinLib( "pad", [ - Object(NonMatching, "dolphin/pad/Padclamp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/pad/Padclamp.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/pad/Pad.c"), ], ), @@ -582,12 +595,12 @@ config.libs = [ DolphinLib( "gx", [ - Object(NonMatching, "dolphin/gx/GXInit.c"), - Object(NonMatching, "dolphin/gx/GXFifo.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXInit.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXFifo.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXAttr.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXMisc.c"), - Object(NonMatching, "dolphin/gx/GXGeometry.c"), - Object(NonMatching, "dolphin/gx/GXFrameBuf.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXGeometry.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXFrameBuf.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXLight.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXTexture.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/gx/GXBump.c"), @@ -669,7 +682,7 @@ config.libs = [ "objects": [ Object(NonMatching, "MSL_C.PPCEABI.bare.H/abort_exit.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/alloc.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/errno.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/errno.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/ansi_files.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/ansi_fp.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/arith.c"), @@ -683,7 +696,7 @@ config.libs = [ Object(NonMatching, "MSL_C.PPCEABI.bare.H/mem_funcs.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/misc_io.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/printf.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/float.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/float.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/signal.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/string.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/uart_console_io.c"), @@ -702,14 +715,14 @@ config.libs = [ Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_copysign.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_cos.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_floor.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_frexp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_frexp.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_ldexp.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_modf.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_sin.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_tan.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_acos.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_asin.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_atan2.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/w_atan2.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_fmod.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_pow.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/math_ppc.c"), @@ -721,28 +734,28 @@ config.libs = [ "cflags": cflags_trk, "host": False, "objects": [ - Object(NonMatching, "TRK_MINNOW_DOLPHIN/mainloop.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/nubevent.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/nubinit.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mainloop.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/nubevent.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/nubinit.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/msg.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/msgbuf.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/serpoll.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/usrput.c"), + Object(NonMatching, "TRK_MINNOW_DOLPHIN/usr_put.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/dispatch.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/msghndlr.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/support.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/mutex_TRK.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mutex_TRK.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/notify.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/flush_cache.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/flush_cache.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/mem_TRK.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/targimpl.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/targsupp.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/__exception.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/__exception.s"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/dolphin_trk.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/main_TRK.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/main_TRK.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/targcont.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/targcont.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/target_options.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/mslsupp.c"), ], diff --git a/include/OdemuExi2/odemuexi/DebuggerDriver.h b/include/OdemuExi2/odemuexi/DebuggerDriver.h new file mode 100644 index 00000000..71a27ed3 --- /dev/null +++ b/include/OdemuExi2/odemuexi/DebuggerDriver.h @@ -0,0 +1,24 @@ +#ifndef ODEMUEXI_DEBUGGER_DRIVER_H +#define ODEMUEXI_DEBUGGER_DRIVER_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +int Hu_IsStub(); + +void DBInitComm(volatile u8** param_1, __OSInterruptHandler param_2); +void DBInitInterrupts(void); +u32 DBQueryData(void); +int DBRead(void* data, u32 size); +int DBWrite(const void* data, u32 size); +void DBOpen(void); +void DBClose(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/PowerPC_EABI_Support/MetroTRK/trk.h b/include/PowerPC_EABI_Support/MetroTRK/trk.h new file mode 100644 index 00000000..c8814672 --- /dev/null +++ b/include/PowerPC_EABI_Support/MetroTRK/trk.h @@ -0,0 +1,381 @@ +#ifndef __METROTRK_TRK_H__ +#define __METROTRK_TRK_H__ + +#include "dolphin/types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +//////////// TRK ENUMS ///////////// +// Hardware types. +typedef enum { + HARDWARE_AMC_DDH = 0, + HARDWARE_GDEV = 1, + HARDWARE_BBA = 2, +} HardwareType; + +// DS Error returns. +enum { + DS_NoError = 0x0, + DS_StepError = 0x1, + DS_ParameterError = 0x2, + + DS_EventQueueFull = 0x100, + + DS_NoMessageBufferAvailable = 0x300, + DS_MessageBufferOverflow = 0x301, + DS_MessageBufferReadError = 0x302, + + DS_DispatchError = 0x500, + + DS_InvalidMemory = 0x700, + DS_InvalidRegister = 0x701, + DS_CWDSException = 0x702, + DS_UnsupportedError = 0x703, + DS_InvalidProcessID = 0x704, + DS_InvalidThreadID = 0x705, + DS_OSError = 0x706, + + DS_Error800 = 0x800, +}; + +typedef int DSError; + +// Where to read/write. +typedef enum { + DS_Stdin = 0, + DS_Stdout = 1, + DS_Stderr = 2, +} DSFileHandle; + +// IO returns. +typedef enum { + DS_IONoError = 0, + DS_IOError = 1, + DS_IOEOF = 2, +} DSIOResult; + +// Message command IDs +typedef enum { + DSMSG_Ping = 0x0, + DSMSG_Connect = 0x1, + DSMSG_Disconnect = 0x2, + DSMSG_Reset = 0x3, + DSMSG_Versions = 0x4, + DSMSG_SupportMask = 0x5, + DSMSG_Override = 0x7, + + DSMSG_ReadMemory = 0x10, + DSMSG_WriteMemory = 0x11, + DSMSG_ReadRegisters = 0x12, + DSMSG_WriteRegisters = 0x13, + DSMSG_SetOption = 0x17, + DSMSG_Continue = 0x18, + DSMSG_Step = 0x19, + DSMSG_Stop = 0x1A, + + DSMSG_ReplyACK = 0x80, + + DSMSG_NotifyStopped = 0x90, + DSMSG_NotifyException = 0x91, + + DSMSG_WriteFile = 0xD0, + DSMSG_ReadFile = 0xD1, + DSMSG_OpenFile = 0xD2, + DSMSG_CloseFile = 0xD3, + DSMSG_PositionFile = 0xD4, + + DSMSG_ReplyNAK = 0xFF, +} MessageCommandID; + +// Register commands. +typedef enum { + DSREG_Default = 0, + DSREG_FP = 1, + DSREG_Extended1 = 2, + DSREG_Extended2 = 3, +} DSMessageRegisterOptions; + +// Step commands. +typedef enum { + DSSTEP_IntoCount = 0x0, + DSSTEP_IntoRange = 0x1, + DSSTEP_OverCount = 0x10, + DSSTEP_OverRange = 0x11, +} DSMessageStepOptions; + +typedef enum { + DSREPLY_NoError = 0x0, + DSREPLY_Error = 0x1, + DSREPLY_PacketSizeError = 0x2, + DSREPLY_CWDSError = 0x3, + DSREPLY_EscapeError = 0x4, + DSREPLY_BadFCS = 0x5, + DSREPLY_Overflow = 0x6, + DSREPLY_SequenceMissing = 0x7, + + DSREPLY_UnsupportedCommandError = 0x10, + DSREPLY_ParameterError = 0x11, + DSREPLY_UnsupportedOptionError = 0x12, + DSREPLY_InvalidMemoryRange = 0x13, + DSREPLY_InvalidRegisterRange = 0x14, + DSREPLY_CWDSException = 0x15, + DSREPLY_NotStopped = 0x16, + DSREPLY_BreakpointsFull = 0x17, + DSREPLY_BreakpointConflict = 0x18, + + DSREPLY_OSError = 0x20, + DSREPLY_InvalidProcessID = 0x21, + DSREPLY_InvalidThreadID = 0x22, + DSREPLY_DebugSecurityError = 0x23, +} DSReplyError; + +typedef enum { + DSRECV_Wait = 0, + DSRECV_Found = 1, + DSRECV_InFrame = 2, + DSRECV_FrameOverflow = 3, +} ReceiverState; + +typedef enum { + DSMSGMEMORY_Segmented = 0x01, /* non-flat addr space */ + DSMSGMEMORY_Extended = 0x02, /* > 32-bit data addr */ + DSMSGMEMORY_Protected = 0x04, /* non-user memory */ + DSMSGMEMORY_Userview = 0x08, /* breakpoints are invisible */ + DSMSGMEMORY_Space_program = 0x00, + DSMSGMEMORY_Space_data = 0x40, + DSMSGMEMORY_Space_io = 0x80 +}; + +typedef enum { + NUBEVENT_Null = 0, + NUBEVENT_Shutdown = 1, + NUBEVENT_Request = 2, + NUBEVENT_Breakpoint = 3, + NUBEVENT_Exception = 4, + NUBEVENT_Support = 5, +} NubEventType; + +typedef enum { + VALIDMEM_Readable = 0, + VALIDMEM_Writeable = 1, +} ValidMemoryOptions; + +typedef enum { + MEMACCESS_UserMemory = 0, + MEMACCESS_DebuggerMemory = 1, +} MemoryAccessOptions; + +typedef int UARTError; + +typedef enum { + UART_NoError = 0, + UART_UnknownBaudRate = 1, + UART_ConfigurationError = 2, + UART_BufferOverflow = 3, // specified buffer was too small + UART_NoData = 4, // no data available from polling +} UARTErrorOptions; + +typedef enum { + kBaudHWSet = -1, // use HW settings such as DIP switches + kBaud300 = 300, // valid baud rates + kBaud600 = 600, + kBaud1200 = 1200, + kBaud1800 = 1800, + kBaud2000 = 2000, + kBaud2400 = 2400, + kBaud3600 = 3600, + kBaud4800 = 4800, + kBaud7200 = 7200, + kBaud9600 = 9600, + kBaud19200 = 19200, + kBaud38400 = 38400, + kBaud57600 = 57600, + kBaud115200 = 115200, + kBaud230400 = 230400 +} UARTBaudRate; + +//////////////////////////////////// + +typedef int MessageBufferID; + +#define TRKMSGBUF_SIZE (0x800 + 0x80) + +typedef struct TRKBuffer { + /* 0x00 */ u32 mutex; + /* 0x04 */ BOOL isInUse; + /* 0x08 */ u32 length; + /* 0x0C */ u32 position; + /* 0x10 */ u8 data[TRKMSGBUF_SIZE]; +} TRKBuffer; + +typedef struct TRKFramingState { + MessageBufferID msgBufID; // _00 + TRKBuffer* buffer; // _04 + ReceiverState receiveState; // _08 + BOOL isEscape; // _0C + u8 fcsType; // _10 +} TRKFramingState; + +typedef struct TRKState_PPC { + u32 GPR[32]; // 0x0 + u32 LR; // 0x80 + u32 CTR; // 0x84 + u32 XER; // 0x88 + u32 MSR; // 0x8c + u32 DAR; // 0x90 + u32 DSISR; // 0x94 + BOOL stopped; // 0x98 + BOOL inputActivated; // 0x9c + u8* inputPendingPtr; // 0xA0 +} TRKState_PPC; + +typedef struct CommandReply { + u32 _00; // _00 + union { + u8 b; + MessageCommandID m; + } commandID; // _04, use MessageCommandID enum + union { + u8 b; + DSReplyError r; + } replyError; // _08, use DSReplyError enum - should be enum type? check + // size. + u32 _0C; // _0C + u8 _10[0x30]; // _10, unknown +} CommandReply; + +typedef struct ProcessorRestoreFlags_PPC { + u8 TBR; + u8 DEC; + u8 linker_padding[0x9 - 0x2]; +} ProcessorRestoreFlags_PPC; + +void TRKSaveExtended1Block(); + +#define SPR_XER 1 +#define SPR_LR 8 +#define SPR_CTR 9 +#define SPR_DSISR 18 +#define SPR_DAR 19 +#define SPR_DEC 22 +#define SPR_SDR1 25 +#define SPR_SRR0 26 +#define SPR_SRR1 27 +#define SPR_SPRG0 272 +#define SPR_SPRG1 273 +#define SPR_SPRG2 274 +#define SPR_SPRG3 275 +#define SPR_EAR 282 +#define SPR_TBL 284 +#define SPR_TBU 285 +#define SPR_PVR 287 +#define SPR_IBAT0U 528 +#define SPR_IBAT0L 529 +#define SPR_IBAT1U 530 +#define SPR_IBAT1L 531 +#define SPR_IBAT2U 532 +#define SPR_IBAT2L 533 +#define SPR_IBAT3U 534 +#define SPR_IBAT3L 535 +#define SPR_IBAT4U 560 +#define SPR_IBAT4L 561 +#define SPR_IBAT5U 562 +#define SPR_IBAT5L 563 +#define SPR_IBAT6U 564 +#define SPR_IBAT6L 565 +#define SPR_IBAT7U 566 +#define SPR_IBAT7L 567 +#define SPR_DBAT0U 536 +#define SPR_DBAT0L 537 +#define SPR_DBAT1U 538 +#define SPR_DBAT1L 539 +#define SPR_DBAT2U 540 +#define SPR_DBAT2L 541 +#define SPR_DBAT3U 542 +#define SPR_DBAT3L 543 +#define SPR_DBAT4U 568 +#define SPR_DBAT4L 569 +#define SPR_DBAT5U 570 +#define SPR_DBAT5L 571 +#define SPR_DBAT6U 572 +#define SPR_DBAT6L 573 +#define SPR_DBAT7U 574 +#define SPR_DBAT7L 575 +#define SPR_GQR0 912 +#define SPR_GQR1 913 +#define SPR_GQR2 914 +#define SPR_GQR3 915 +#define SPR_GQR4 916 +#define SPR_GQR5 917 +#define SPR_GQR6 918 +#define SPR_GQR7 919 +#define SPR_HID2 920 +#define SPR_WPAR 921 +#define SPR_DMA_U 922 +#define SPR_DMA_L 923 +#define SPR_UMMCR0 936 +#define SPR_UPMC1 937 +#define SPR_UPMC2 938 +#define SPR_USIA 939 +#define SPR_UMMCR1 940 +#define SPR_UPMC3 941 +#define SPR_UPMC4 942 +#define SPR_USDA 943 +#define SPR_MMCR0 952 +#define SPR_PMC1 953 +#define SPR_PMC2 954 +#define SPR_SIA 955 +#define SPR_MMCR1 956 +#define SPR_PMC3 957 +#define SPR_PMC4 958 +#define SPR_SDA 959 +#define SPR_HID0 1008 +#define SPR_HID1 1009 +#define SPR_IABR 1010 +#define SPR_HID4 1011 +#define SPR_DABR 1013 +#define SPR_L2CR 1017 +#define SPR_ICTC 1019 +#define SPR_THRM1 1020 +#define SPR_THRM2 1021 +#define SPR_FPECR 1022 + +// PPC exceptions +// 0x000 is reserved +#define PPC_SystemReset 0x100 +#define PPC_MachineCheck 0x200 +#define PPC_DataStorage 0x300 +#define PPC_InstructionStorage 0x400 +#define PPC_ExternalInterrupt 0x500 +#define PPC_Alignment 0x600 +#define PPC_Program 0x700 +#define PPC_FloatingPointUnavaiable 0x800 +#define PPC_Decrementer 0x900 +// 0xA00-0xB00 are reserved +#define PPC_SystemCall 0xC00 +#define PPC_Trace 0xD00 +#define PPC_FloatingPointAssist 0xE00 // unimplemented in 750CL +#define PPC_PerformanceMonitor 0xF00 // Dolphin/Broadway specific +// 0x1000-0x1200 are unimplemented in 750CL +#define PPC_InstructionAddressBreakpoint 0x1300 // Dolphin/Broadway specific +// 0x1400-0x2F00 are reserved, but TRK uses some +#define PPC_SystemManagementInterrupt 0x1400 +// 0x1500-0x1600 are unimplemented in 750CL +#define PPC_ThermalManagementInterrupt 0x1700 +#define PPC_1800Exception 0x1800 +#define PPC_1900Exception 0x1900 +#define PPC_1A00Exception 0x1A00 +#define PPC_1B00Exception 0x1B00 +#define PPC_1C00Exception 0x1C00 // Data breakpoint? +#define PPC_1D00Exception 0x1D00 // Instruction breakpoint? +#define PPC_1E00Exception 0x1E00 // Peripheral breakpoint? +#define PPC_1F00Exception 0x1F00 // Non maskable development port? +#define PPC_2000Exception 0x2000 + +#ifdef __cplusplus +} +#endif + +#endif /* __METROTRK_TRK_H__ */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/FILE_POS.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/FILE_POS.h new file mode 100644 index 00000000..046471d5 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/FILE_POS.h @@ -0,0 +1,18 @@ +#ifndef _MSL_COMMON_FILE_POS_H +#define _MSL_COMMON_FILE_POS_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +#ifdef __cplusplus +extern "C" { +#endif + +int fseek(FILE* file, unsigned long offset, int mode); +int _fseek(FILE* file, fpos_t offset, int mode); +long ftell(FILE* file); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_FILE_POS_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/abort_exit.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/abort_exit.h new file mode 100644 index 00000000..7c62fe70 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/abort_exit.h @@ -0,0 +1,17 @@ +#ifndef _MSL_COMMON_ABORT_EXIT_H +#define _MSL_COMMON_ABORT_EXIT_H + +#ifdef __cplusplus +extern "C" { +#endif + +void exit(int status); +void abort(void); + +extern void (*__stdio_exit)(void); + +#ifdef __cplusplus +}; +#endif + +#endif /* _MSL_COMMON_ABORT_EXIT_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/alloc.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/alloc.h new file mode 100644 index 00000000..6b08d6f9 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/alloc.h @@ -0,0 +1,16 @@ +#ifndef _MSL_COMMON_ALLOC_H +#define _MSL_COMMON_ALLOC_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void free(void* ptr); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_ALLOC_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h new file mode 100644 index 00000000..f06c55df --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h @@ -0,0 +1,133 @@ +#ifndef _MSL_COMMON_ANSI_FILES_H +#define _MSL_COMMON_ANSI_FILES_H + +#include "stddef.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define SEEK_SET 0 +#define SEEK_CUR 1 +#define SEEK_END 2 + +typedef unsigned long __file_handle; +typedef unsigned long fpos_t; +#ifndef __cplusplus +typedef unsigned short wchar_t; +#endif + +#define set_error(file) \ + do { \ + (file)->file_state.error = 1; \ + (file)->buffer_length = 0; \ + } while (0) + +enum __file_kinds { + __closed_file, + __disk_file, + __console_file, + __string_file, + __unavailable_file, +}; + +enum __file_orientation { + /* 0x0 */ UNORIENTED, + /* 0x1 */ CHAR_ORIENTED, + /* 0x2 */ WIDE_ORIENTED, +}; + +typedef struct _file_modes { + unsigned int open_mode : 2; + unsigned int io_mode : 3; + unsigned int buffer_mode : 2; + unsigned int file_kind : 3; + unsigned int file_orientation : 2; + unsigned int binary_io : 1; +} file_modes; + +enum __io_modes { + __read = 1, + __write = 2, + __read_write = 3, + __append = 4, +}; + +enum __io_states { + __neutral, + __writing, + __reading, + __rereading, +}; + +enum __io_results { + __no_io_error, + __io_error, + __io_EOF, +}; + +typedef struct _file_states { + unsigned int io_state : 3; + unsigned int free_buffer : 1; + unsigned char eof; + unsigned char error; +} file_states; + +typedef void (*__idle_proc)(void); +typedef int (*__pos_proc)(__file_handle file, fpos_t* position, int mode, + __idle_proc idle_proc); +typedef int (*__io_proc)(__file_handle file, unsigned char* buff, size_t* count, + __idle_proc idle_proc); +typedef int (*__close_proc)(__file_handle file); + +typedef struct _FILE { + __file_handle handle; + file_modes file_mode; + file_states file_state; + + char char_buffer; + char char_buffer_overflow; + char ungetc_buffer[2]; + wchar_t ungetc_wide_buffer[2]; + + unsigned long position; + unsigned char* buffer; + unsigned long buffer_size; + unsigned char* buffer_ptr; + unsigned long buffer_length; + unsigned long buffer_alignment; + unsigned long save_buffer_length; + unsigned long buffer_position; + + __pos_proc position_fn; + __io_proc read_fn; + __io_proc write_fn; + __close_proc close_fn; + __idle_proc idle_fn; +} FILE; + +typedef struct _files { + FILE _stdin; + FILE _stdout; + FILE _stderr; +} files; + +#define _IONBF 0 +#define _IOLBF 1 +#define _IOFBF 2 + +extern files __files; +extern int __close_console(__file_handle file); +extern int __write_console(__file_handle file, unsigned char* buf, + size_t* count, __idle_proc idle_fn); +extern int __read_console(__file_handle file, unsigned char* buf, size_t* count, + __idle_proc idle_fn); + +unsigned int __flush_all(void); +void __close_all(void); + +#ifdef __cplusplus +}; +#endif + +#endif /* _MSL_COMMON_ANSI_FILES_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_fp.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_fp.h new file mode 100644 index 00000000..90ba7acf --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_fp.h @@ -0,0 +1,36 @@ +#ifndef _MSL_COMMON_ANSI_FP_H +#define _MSL_COMMON_ANSI_FP_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/float.h" + +#define SIGDIGLEN 36 + +typedef struct decimal { + char sign; + char unk1; + short exp; + struct { + unsigned char length; + unsigned char text[36]; + unsigned char unk41; + } sig; +} decimal; + +typedef struct decform { + char style; + char unk1; + short digits; +} decform; + +/* void __ull2dec(decimal*, u64); +void __timesdec(decimal*, const decimal*, const decimal*); +void __str2dec(decimal*, const char*, short); +void __two_exp(decimal*, s16); +BOOL __equals_dec(const decimal*, const decimal*); +BOOL __less_dec(const decimal*, const decimal*); +void __minus_dec(decimal*, const decimal*, const decimal*); +void __num2dec_internal(decimal*, f64); +void __num2dec(const decform*, f64, decimal*); +f64 __dec2num(const decimal*); */ + +#endif diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/arith.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/arith.h new file mode 100644 index 00000000..317dfa0d --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/arith.h @@ -0,0 +1,19 @@ +#ifndef _MSL_COMMON_ARITH_H +#define _MSL_COMMON_ARITH_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + int quot; /* quotient */ + int rem; /* remainder */ +} div_t; + +div_t div(int numerator, int denominator); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_ARITH_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/buffer_io.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/buffer_io.h new file mode 100644 index 00000000..85ad160a --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/buffer_io.h @@ -0,0 +1,11 @@ +#ifndef _MSL_COMMON_BUFFER_IO_H +#define _MSL_COMMON_BUFFER_IO_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +enum { __align_buffer, __dont_align_buffer }; + +void __prep_buffer(FILE* file); +int __flush_buffer(FILE* file, size_t* bytes_flushed); + +#endif /* _MSL_COMMON_BUFFER_IO_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/char_io.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/char_io.h new file mode 100644 index 00000000..e3733cf7 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/char_io.h @@ -0,0 +1,17 @@ +#ifndef _MSL_COMMON_CHAR_IO_H +#define _MSL_COMMON_CHAR_IO_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +#ifdef __cplusplus +extern "C" { +#endif + +int fputs(const char* str, FILE* stream); +int __put_char(int c, FILE* stream); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_CHAR_IO_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/critical_regions.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/critical_regions.h new file mode 100644 index 00000000..e4456725 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/critical_regions.h @@ -0,0 +1,30 @@ +#ifndef _MSL_COMMON_CRITICAL_REGIONS_H +#define _MSL_COMMON_CRITICAL_REGIONS_H + +#ifdef __cplusplus +extern "C" { +#endif + +enum critical_regions { + atexit_funcs_access, + malloc_pool_access, + stdin_access, + stdout_access, + stderr_access, + files_access, + console_status_access, + signal_funcs_access, + thread_access, + num_critical_regions +}; + +void __init_critical_regions(void); +void __kill_critical_regions(void); +void __begin_critical_region(int region); +void __end_critical_region(int region); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ctype.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ctype.h new file mode 100644 index 00000000..0bb0356e --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ctype.h @@ -0,0 +1,76 @@ +#ifndef _MSL_COMMON_CTYPE_H +#define _MSL_COMMON_CTYPE_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define EOF -1L + +extern const unsigned char __ctype_map[]; +extern const unsigned char __lower_map[]; +extern const unsigned char __upper_map[]; + +#define __control_char 0x01 +#define __motion_char 0x02 +#define __space_char 0x04 +#define __punctuation 0x08 +#define __digit 0x10 +#define __hex_digit 0x20 +#define __lower_case 0x40 +#define __upper_case 0x80 + +#define __letter (__lower_case | __upper_case) +#define __alphanumeric (__letter | __digit) +#define __graphic (__alphanumeric | __punctuation) +#define __printable (__graphic | __space_char) +#define __whitespace (__motion_char | __space_char) +#define __control (__motion_char | __control_char) +#define __zero_fill(c) ((int)(unsigned char)(c)) + +int tolower(int c); +int toupper(int c); + +inline int isalpha(int c) +{ + return (int)(__ctype_map[(unsigned char)c] & __letter); +} +inline int isdigit(int c) +{ + return (int)(__ctype_map[(unsigned char)c] & __digit); +} +inline int isspace(int c) +{ + return (int)(__ctype_map[(unsigned char)c] & __whitespace); +} +inline int isupper(int c) +{ + return (int)(__ctype_map[(unsigned char)c] & __upper_case); +} +inline int isxdigit(int c) +{ + return (int)(__ctype_map[(unsigned char)c] & __hex_digit); +} + +inline int _tolower(int c) +{ + return (c == -1 ? -1 : (int)__lower_map[(unsigned char)c]); +} + +#ifdef __cplusplus +}; + +namespace std { +inline int tolower(int c) +{ + return (c == -1 ? -1 : (int)__lower_map[(unsigned char)c]); +} +inline int toupper(int c) +{ + return (c == -1 ? -1 : (int)__upper_map[(unsigned char)c]); +} +}; // namespace std + +#endif + +#endif /* _MSL_COMMON_CTYPE_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/direct_io.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/direct_io.h new file mode 100644 index 00000000..7e838551 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/direct_io.h @@ -0,0 +1,17 @@ +#ifndef _MSL_COMMON_DIRECT_IO_H +#define _MSL_COMMON_DIRECT_IO_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +#ifdef __cplusplus +extern "C" { +#endif + +size_t __fwrite(const void* buffer, size_t size, size_t count, FILE* stream); +size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_DIRECT_IO_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/errno.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/errno.h new file mode 100644 index 00000000..269d896d --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/errno.h @@ -0,0 +1,20 @@ +#ifndef MSL_COMMON_SRC_ERRNO_H +#define MSL_COMMON_SRC_ERRNO_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define ENOERR 0 +#define EDOM 33 +#define ERANGE 34 +#define EFPOS 40 +#define ESIGPARM 36 + +extern int errno; + +#ifdef __cplusplus +} +#endif + +#endif /* MSL_COMMON_SRC_ERRNO_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/extras.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/extras.h new file mode 100644 index 00000000..4d8e8b62 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/extras.h @@ -0,0 +1,15 @@ +#ifndef _MSL_COMMON_EXTRAS_H +#define _MSL_COMMON_EXTRAS_H + +#ifdef __cplusplus +extern "C" { +#endif + +int strnicmp(const char* str1, const char* str2, int n); +int stricmp(const char* str1, const char* str2); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_EXTRAS_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/file_io.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/file_io.h new file mode 100644 index 00000000..a06e7cef --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/file_io.h @@ -0,0 +1,18 @@ +#ifndef _MSL_COMMON_FILE_IO_H +#define _MSL_COMMON_FILE_IO_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +#ifdef __cplusplus +extern "C" { +#endif + +int __msl_strnicmp(const char* str1, const char* str2, int n); +int fflush(FILE* file); +int fclose(FILE* file); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_FILE_IO_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/float.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/float.h new file mode 100644 index 00000000..14d34342 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/float.h @@ -0,0 +1,92 @@ +#ifndef _MSL_COMMON_FLOAT_H +#define _MSL_COMMON_FLOAT_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#define FP_SNAN 0 +#define FP_QNAN 1 +#define FP_INFINITE 2 +#define FP_ZERO 3 +#define FP_NORMAL 4 +#define FP_SUBNORMAL 5 + +#define FP_NAN FP_QNAN + +#define fpclassify(x) \ + ((sizeof(x) == sizeof(float)) ? __fpclassifyf(x) : __fpclassifyd(x)) +#define signbit(x) \ + ((sizeof(x) == sizeof(float)) ? __signbitf(x) : __signbitd(x)) +#define isfinite(x) ((fpclassify(x) > 2)) +#define isnan(x) ((fpclassify(x) == FP_NAN)) +#define isinf(x) ((fpclassify(x) == FP_INFINITE)) + +#define __signbitf(x) ((int)(__HI(x) & 0x80000000)) + +// TODO: OK? +#define __signbitd(x) ((int)(__HI(x) & 0x80000000)) + +extern unsigned long __float_nan[]; +extern unsigned long __float_huge[]; +extern unsigned long __float_max[]; +extern unsigned long __float_epsilon[]; + +inline int __fpclassifyf(float __value) +{ + unsigned long integer = *(unsigned long*)&__value; + + switch (integer & 0x7f800000) { + case 0x7f800000: + if ((integer & 0x7fffff) != 0) { + return FP_QNAN; + } + return FP_INFINITE; + + case 0: + if ((integer & 0x7fffff) != 0) { + return FP_SUBNORMAL; + } + return FP_ZERO; + } + + return FP_NORMAL; +} + +inline int __fpclassifyd(double __value) +{ + switch (__HI(__value) & 0x7ff00000) { + case 0x7ff00000: { + if ((__HI(__value) & 0x000fffff) || (__LO(__value) & 0xffffffff)) + return FP_QNAN; + else + return FP_INFINITE; + break; + } + case 0: { + if ((__HI(__value) & 0x000fffff) || (__LO(__value) & 0xffffffff)) + return FP_SUBNORMAL; + else + return FP_ZERO; + break; + } + } + return FP_NORMAL; +} + +#define FLT_MANT_DIG 24 +#define FLT_DIG 6 +#define FLT_MIN_EXP (-125) +#define FLT_MIN_10_EXP (-37) +#define FLT_MAX_EXP 128 +#define FLT_MAX_10_EXP 38 + +#define FLT_MAX 3.40282346638528860e+38f +#define FLT_EPSILON 1.1920928955078125e-07f + +#define DBL_MANT_DIG 53 +#define DBL_DIG 15 +#define DBL_MIN_EXP (-1021) +#define DBL_MIN_10_EXP (-308) +#define DBL_MAX_EXP 1024 +#define DBL_MAX_10_EXP 308 + +#endif /* _MSL_COMMON_FLOAT_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/limits.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/limits.h new file mode 100644 index 00000000..2b8b756f --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/limits.h @@ -0,0 +1,93 @@ +#ifndef _STD_LIMITS_H +#define _STD_LIMITS_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define CHAR_BIT 8 + +#define SCHAR_MIN (-0x7F - 1) +#define SCHAR_MAX 0x7F +#define UCHAR_MAX 0xFF + +#define CHAR_MIN 0 +#define CHAR_MAX SCHAR_MAX + +#define SHRT_MIN (-0x7FFF - 1) +#define SHRT_MAX 0x7FFF +#define USHRT_MAX 0xFFFF + +#define INT_MIN (-0x7FFFFFFF - 1) +#define INT_MAX 0x7FFFFFFF +#define UINT_MAX 0xFFFFFFFF + +#define LONG_MIN (-0x7FFFFFFFL - 1) +#define LONG_MAX 0x7FFFFFFFL +#define ULONG_MAX 0xFFFFFFFFUL + +#define LLONG_MIN (-0x7FFFFFFFFFFFFFFFLL - 1) +#define LLONG_MAX 0x7FFFFFFFFFFFFFFFLL +#define ULLONG_MAX 0xFFFFFFFFFFFFFFFFULL + +#ifdef __cplusplus +} + +namespace std { +template class numeric_limits { +public: + inline static T min(); + inline static T max(); +}; + +template <> class numeric_limits { +public: + inline static char min() { return -0x80; } + inline static char max() { return 0x7F; } +}; + +template <> class numeric_limits { +public: + inline static short min() { return -0x8000; } + inline static short max() { return 0x7FFF; } +}; + +template <> class numeric_limits { +public: + inline static int min() { return -0x80000000; } + inline static int max() { return 0x7FFFFFFF; } +}; + +template <> class numeric_limits { +public: + inline static long min() { return -0x80000000; } + inline static long max() { return 0x7FFFFFFF; } +}; + +template <> class numeric_limits { +public: + inline static unsigned char min() { return 0x0; } + inline static unsigned char max() { return 0xFF; } +}; + +template <> class numeric_limits { +public: + inline static unsigned short min() { return 0x0; } + inline static unsigned short max() { return 0xFFFF; } +}; + +template <> class numeric_limits { +public: + inline static unsigned int min() { return 0x0; } + inline static unsigned int max() { return 0xFFFFFFFF; } +}; + +template <> class numeric_limits { +public: + inline static unsigned long min() { return 0x0; } + inline static unsigned long max() { return 0xFFFFFFFF; } +}; + +} // namespace std +#endif +#endif diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math.h new file mode 100644 index 00000000..e99949cc --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math.h @@ -0,0 +1,106 @@ +#ifndef MSL_MATH_H_ +#define MSL_MATH_H_ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/float.h" + +#define NAN (*(float*)__float_nan) +#define HUGE_VALF (*(float*)__float_huge) + +#define M_PI 3.14159265358979323846f +#define M_SQRT3 1.73205f + +#define DEG_TO_RAD(degrees) (degrees * (M_PI / 180.0f)) +#define RAD_TO_DEG(radians) \ + (radians \ + * (180.0f / M_PI + 0.000005f)) // the 0.000005f is probably a fakematch + +#ifdef __cplusplus +extern "C" { +#endif + +int abs(int); +double acos(double); +float acosf(float); +double asin(double); +double atan(double); +double atan2(double, double); +double ceil(double); +double copysign(double, double); +double cos(double); +float cosf(float); +double exp(double); + +extern double __fabs(double); +extern float __fabsf(float); +inline double fabs(double f) { return __fabs(f); } + +double __frsqrte(double); +float __fres(float); + +double floor(double); +double fmod(double, double); + +double frexp(double, int*); +double ldexp(double, int); +double modf(double, double*); +double pow(double, double); +double sin(double); +float sinf(float); +double tan(double); +float tanf(float); + +extern inline double sqrt(double x) +{ + if (x > 0.0) { + double guess = __frsqrte(x); /* returns an approximation to */ + guess + = .5 * guess * (3.0 - guess * guess * x); /* now have 8 sig bits */ + guess + = .5 * guess * (3.0 - guess * guess * x); /* now have 16 sig bits */ + guess + = .5 * guess * (3.0 - guess * guess * x); /* now have 32 sig bits */ + guess = .5 * guess + * (3.0 - guess * guess * x); /* now have > 53 sig bits */ + return x * guess; + } else if (x == 0) + return 0; + else if (x) + return NAN; + + return HUGE_VALF; +} + +#ifdef __cplusplus +}; + +namespace std { +inline float fabsf(float f) { return fabs(f); } +inline float abs(float f) { return fabsf(f); } +inline float fmodf(float x, float y) { return fmod(x, y); } +inline float atan2f(float y, float x) { return (float)atan2(y, x); } +inline float sinf(float x) { return sin(x); } +inline float cosf(float x) { return cos(x); } +inline float tanf(float x) { return tan(x); } + +extern inline float sqrtf(float x) +{ + const double _half = .5; + const double _three = 3.0; + volatile float y; + if (x > 0.0f) { + double guess = __frsqrte((double)x); // returns an approximation to + guess = _half * guess + * (_three - guess * guess * x); // now have 12 sig bits + guess = _half * guess + * (_three - guess * guess * x); // now have 24 sig bits + guess = _half * guess + * (_three - guess * guess * x); // now have 32 sig bits + y = (float)(x * guess); + return y; + } + return x; +} +}; // namespace std +#endif + +#endif diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mbstring.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mbstring.h new file mode 100644 index 00000000..2aa9f4ea --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mbstring.h @@ -0,0 +1,16 @@ +#ifndef _MSL_COMMON_MBSTRING_H +#define _MSL_COMMON_MBSTRING_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/wchar_io.h" + +#ifdef __cplusplus +extern "C" { +#endif + +size_t wcstombs(char* dst, const wchar_t* src, size_t n); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_MBSTRING_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mem_funcs.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mem_funcs.h new file mode 100644 index 00000000..0e245466 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mem_funcs.h @@ -0,0 +1,19 @@ +#ifndef _MSL_COMMON_MEM_FUNCS_H +#define _MSL_COMMON_MEM_FUNCS_H + +#include "stddef.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void __copy_longs_rev_unaligned(void* dst, const void* src, size_t n); +void __copy_longs_unaligned(void* dst, const void* src, size_t n); +void __copy_longs_rev_aligned(void* dst, const void* src, size_t n); +void __copy_longs_aligned(void* dst, const void* src, size_t n); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_MEM_FUNCS_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/misc_io.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/misc_io.h new file mode 100644 index 00000000..715f282a --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/misc_io.h @@ -0,0 +1,14 @@ +#ifndef _MSL_COMMON_MISC_IO_H +#define _MSL_COMMON_MISC_IO_H + +#ifdef __cplusplus +extern "C" { +#endif + +void __stdio_atexit(void); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_MISC_IO_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/printf.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/printf.h new file mode 100644 index 00000000..e716867f --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/printf.h @@ -0,0 +1,22 @@ +#ifndef _MSL_COMMON_PRINTF_H +#define _MSL_COMMON_PRINTF_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" +#include "stdarg.h" + +#ifdef __cplusplus +extern "C" { +#endif + +int fprintf(FILE* stream, const char* format, ...); +int printf(const char* format, ...); +int sprintf(char* s, const char* format, ...); +int snprintf(char* s, size_t n, const char* format, ...); +int vsnprintf(char* s, size_t n, const char* format, va_list arg); +int vprintf(const char* format, va_list arg); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_PRINTF_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/scanf.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/scanf.h new file mode 100644 index 00000000..c6451e34 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/scanf.h @@ -0,0 +1,43 @@ +#ifndef _MSL_COMMON_SCANF_H +#define _MSL_COMMON_SCANF_H + +#include "stddef.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +#ifdef __cplusplus +extern "C" { +#endif + +enum __ReadProcActions { __GetAChar, __UngetAChar, __TestForError }; + +enum __WReadProcActions { __GetAwChar, __UngetAwChar, __TestForwcsError }; + +typedef struct { + char* CharStr; + size_t MaxCharCount; + size_t CharsWritten; +} __OutStrCtrl; + +typedef struct { + char* NextChar; + int NullCharDetected; +} __InStrCtrl; + +typedef struct { + wchar_t* wCharStr; + size_t MaxCharCount; + size_t CharsWritten; +} __wOutStrCtrl; + +typedef struct { + wchar_t* wNextChar; + int wNullCharDetected; +} __wInStrCtrl; + +int __StringRead(void* str, int ch, int behavior); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_SCANF_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/signal.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/signal.h new file mode 100644 index 00000000..58fc22ab --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/signal.h @@ -0,0 +1,16 @@ +#ifndef _MSL_COMMON_SIGNAL_H +#define _MSL_COMMON_SIGNAL_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void (*__signal_func_ptr)(int); + +int raise(int sig); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_SIGNAL_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdio.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdio.h new file mode 100644 index 00000000..89806588 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdio.h @@ -0,0 +1,13 @@ +#ifndef MSL_STDIO_H_ +#define MSL_STDIO_H_ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/char_io.h" // IWYU pragma: export +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/file_io.h" // IWYU pragma: export +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/printf.h" // IWYU pragma: export +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/extras.h" // IWYU pragma: export + +#define stdin (&__files._stdin) +#define stdout (&__files._stdout) +#define stderr (&__files._stderr) + +#endif diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdlib.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdlib.h new file mode 100644 index 00000000..9df0be5b --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdlib.h @@ -0,0 +1,9 @@ +#ifndef MSL_STDLIB_H_ +#define MSL_STDLIB_H_ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/abort_exit.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/arith.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mbstring.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/strtoul.h" + +#endif diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/strtoul.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/strtoul.h new file mode 100644 index 00000000..843ee863 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/strtoul.h @@ -0,0 +1,18 @@ +#ifndef _MSL_COMMON_STRTOUL_H +#define _MSL_COMMON_STRTOUL_H + +#ifdef __cplusplus +extern "C" { +#endif + +long strtol(const char* str, char** end, int base); +unsigned long strtoul(const char* str, char** end, int base); +unsigned long __strtoul(int base, int max_width, + int (*ReadProc)(void*, int, int), void* ReadProcArg, + int* chars_scanned, int* negative, int* overflow); + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_STRTOUL_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/wchar_io.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/wchar_io.h new file mode 100644 index 00000000..90153f95 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/wchar_io.h @@ -0,0 +1,12 @@ +#ifndef _MSL_COMMON_WCHAR_IO_H +#define _MSL_COMMON_WCHAR_IO_H + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +#ifndef __cplusplus +typedef unsigned short wchar_t; +#endif + +int fwide(FILE* file, int mode); + +#endif /* _MSL_COMMON_WCHAR_IO_H */ diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h new file mode 100644 index 00000000..1f654aa7 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h @@ -0,0 +1,234 @@ +#ifndef _FDLIBM_H +#define _FDLIBM_H + +/* @(#)fdlibm.h 1.5 04/04/22 */ +/** + * ==================================================== + * Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#ifdef __cplusplus +extern "C" { +#endif // ifdef __cplusplus + +/* Sometimes it's necessary to define __LITTLE_ENDIAN explicitly + but these catch some common cases. */ + +#if defined(i386) || defined(i486) || defined(intel) || defined(x86) \ + || defined(i86pc) || defined(__alpha) || defined(__osf__) +#define __LITTLE_ENDIAN +#endif + +#ifdef __LITTLE_ENDIAN +#define __HI(x) *(1 + (int*)&x) +#define __LO(x) *(int*)&x +#define __HIp(x) *(1 + (int*)x) +#define __LOp(x) *(int*)x +#else +#define __HI(x) *(int*)&x +#define __LO(x) *(1 + (int*)&x) +#define __HIp(x) *(int*)x +#define __LOp(x) *(1 + (int*)x) +#endif + +// NOTE: should be enabled according to w_atan2.c +#define _IEEE_LIBM + +// TODO: should __STDC__ actually be defined? +// #ifdef __STDC__ +#define __P(p) p +// #else +// #define __P(p) () +// #endif + +/** + * ANSI/POSIX + */ + +extern int signgam; + +#define MAXFLOAT ((f32)3.40282346638528860e+38) + +enum fdversion { fdlibm_ieee = -1, fdlibm_svid, fdlibm_xopen, fdlibm_posix }; + +#define _LIB_VERSION_TYPE enum fdversion +#define _LIB_VERSION _fdlib_version + +/* if global variable _LIB_VERSION is not desirable, one may + * change the following to be a constant by: + * #define _LIB_VERSION_TYPE const enum version + * In that case, after one initializes the value _LIB_VERSION (see + * s_lib_version.c) during compile time, it cannot be modified + * in the middle of a program + */ +extern _LIB_VERSION_TYPE _LIB_VERSION; + +#define _IEEE_ fdlibm_ieee +#define _SVID_ fdlibm_svid +#define _XOPEN_ fdlibm_xopen +#define _POSIX_ fdlibm_posix + +struct exception { + int type; + char* name; + double arg1; + double arg2; + double retval; +}; + +#define HUGE MAXFLOAT + +/** + * set X_TLOSS = pi*2**52, which is possibly defined in + * (one may replace the following line by "#include ") + */ + +#define X_TLOSS 1.41484755040568800000e+16 + +#define DOMAIN 1 +#define SING 2 +#define OVERFLOW 3 +#define UNDERFLOW 4 +#define TLOSS 5 +#define PLOSS 6 + +/** + * ANSI/POSIX + */ +extern double acos __P((double)); +extern double asin __P((double)); +extern double atan __P((double)); +extern double atan2 __P((double, double)); +extern double cos __P((double)); +extern double sin __P((double)); +extern double tan __P((double)); + +extern double cosh __P((double)); +extern double sinh __P((double)); +extern double tanh __P((double)); + +extern double exp __P((double)); +extern double frexp __P((double, int*)); +extern double ldexp __P((double, int)); +extern double scalbn __P((double, int)); +extern double log __P((double)); +extern double log10 __P((double)); +extern double modf __P((double, double*)); + +extern double pow __P((double, double)); +extern double sqrt __P((double)); + +extern double ceil __P((double)); +extern double fabs __P((double)); +// NOTE: I have no idea how they got it to mangle like this +extern double fabs__Fd(double); +extern double floor __P((double)); +extern double fmod __P((double, double)); + +extern double erf __P((double)); +extern double erfc __P((double)); +extern double gamma __P((double)); +extern double hypot __P((double, double)); +extern int isnan __P((double)); +extern int finite __P((double)); +extern double j0 __P((double)); +extern double j1 __P((double)); +extern double jn __P((int, double)); +extern double lgamma __P((double)); +extern double y0 __P((double)); +extern double y1 __P((double)); +extern double yn __P((int, double)); + +extern double acosh __P((double)); +extern double asinh __P((double)); +extern double atanh __P((double)); +extern double cbrt __P((double)); +extern double logb __P((double)); +extern double nextafter __P((double, double)); +extern double remainder __P((double, double)); +#ifdef _SCALB_INT +extern double scalb __P((double, int)); +#else +extern double scalb __P((double, double)); +#endif + +extern int matherr __P((struct exception*)); + +/** + * IEEE Test Vector + */ +extern double significand __P((double)); + +/** + * Functions callable from C, intended to support IEEE arithmetic. + */ +extern double copysign __P((double, double)); +extern int ilogb __P((double)); +extern double rint __P((double)); +extern double scalbn __P((double, int)); + +/** + * BSD math library entry points + */ +extern double expm1 __P((double)); +extern double log1p __P((double)); + +/** + * Reentrant version of gamma & lgamma; passes signgam back by reference + * as the second argument; user must allocate space for signgam. + */ +#ifdef _REENTRANT +extern double gamma_r __P((double, int*)); +extern double lgamma_r __P((double, int*)); +#endif /* _REENTRANT */ + +/* ieee style elementary functions */ +extern double __ieee754_sqrt __P((double)); +extern double __ieee754_acos __P((double)); +extern double __ieee754_acosh __P((double)); +extern double __ieee754_log __P((double)); +extern double __ieee754_atanh __P((double)); +extern double __ieee754_asin __P((double)); +extern double __ieee754_atan2 __P((double, double)); +extern double __ieee754_exp __P((double)); +extern double __ieee754_cosh __P((double)); +extern double __ieee754_fmod __P((double, double)); +extern double __ieee754_pow __P((double, double)); +extern double __ieee754_lgamma_r __P((double, int*)); +extern double __ieee754_gamma_r __P((double, int*)); +extern double __ieee754_lgamma __P((double)); +extern double __ieee754_gamma __P((double)); +extern double __ieee754_log10 __P((double)); +extern double __ieee754_sinh __P((double)); +extern double __ieee754_hypot __P((double, double)); +extern double __ieee754_j0 __P((double)); +extern double __ieee754_j1 __P((double)); +extern double __ieee754_y0 __P((double)); +extern double __ieee754_y1 __P((double)); +extern double __ieee754_jn __P((int, double)); +extern double __ieee754_yn __P((int, double)); +extern double __ieee754_remainder __P((double, double)); +extern int __ieee754_rem_pio2 __P((double, double*)); +#ifdef _SCALB_INT +extern double __ieee754_scalb __P((double, int)); +#else +extern double __ieee754_scalb __P((double, double)); +#endif + +/* fdlibm kernel function */ +extern double __kernel_standard __P((double, double, int)); +extern double __kernel_sin __P((double, double, int)); +extern double __kernel_cos __P((double, double)); +extern double __kernel_tan __P((double, double, int)); +extern int __kernel_rem_pio2 __P((double*, double*, int, int, int, const int*)); + +#ifdef __cplusplus +}; +#endif // ifdef __cplusplus + +#endif diff --git a/include/PowerPC_EABI_Support/Runtime/MWCPlusLib.h b/include/PowerPC_EABI_Support/Runtime/MWCPlusLib.h new file mode 100644 index 00000000..8d78b551 --- /dev/null +++ b/include/PowerPC_EABI_Support/Runtime/MWCPlusLib.h @@ -0,0 +1,44 @@ +#ifndef _RUNTIME_MWCPLUSLIB_H +#define _RUNTIME_MWCPLUSLIB_H + +#include "stddef.h" + +#define CTORARG_TYPE int +#define CTORARG_PARTIAL (0) +#define CTORARG_COMPLETE (1) + +#define CTORCALL_COMPLETE(ctor, objptr) \ + (((void (*)(void*, CTORARG_TYPE))ctor)(objptr, CTORARG_COMPLETE)) + +#define DTORARG_TYPE int + +#define DTORCALL_COMPLETE(dtor, objptr) \ + (((void (*)(void*, DTORARG_TYPE))dtor)(objptr, -1)) +#define DTORCALL_PARTIAL(dtor, objptr) \ + (((void (*)(void*, DTORARG_TYPE))dtor)(objptr, 0)) + +typedef void* ConstructorDestructor; + +#ifdef __cplusplus +extern "C" { +#endif + +extern void* __copy(char* to, char* from, size_t size); + +extern void __construct_array(void* ptr, ConstructorDestructor ctor, + ConstructorDestructor dtor, size_t size, + size_t n); +extern void __destroy_arr(void* block, ConstructorDestructor* dtor, size_t size, + size_t n); +extern void* __construct_new_array(void* block, ConstructorDestructor ctor, + ConstructorDestructor dtor_arg, size_t size, + size_t n); +extern void __destroy_new_array(void* block, ConstructorDestructor dtor); +extern void __destroy_new_array2(); +extern void __destroy_new_array3(); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/PowerPC_EABI_Support/Runtime/NMWException.h b/include/PowerPC_EABI_Support/Runtime/NMWException.h new file mode 100644 index 00000000..2358f785 --- /dev/null +++ b/include/PowerPC_EABI_Support/Runtime/NMWException.h @@ -0,0 +1,43 @@ +#ifndef _NMWEXCEPTION +#define _NMWEXCEPTION + +typedef short vbase_ctor_arg_type; +typedef char local_cond_type; + +typedef struct CatchInfo { + void* location; + void* typeinfo; + void* dtor; + void* sublocation; + long pointercopy; + void* stacktop; +} CatchInfo; + +typedef struct DestructorChain { + struct DestructorChain* next; + void* destructor; + void* object; +} DestructorChain; + +#ifdef __cplusplus +extern "C" { +#endif + +extern void* __register_global_object(void* object, void* destructor, + void* registration); +extern void __destroy_global_chain(void); + +extern void __end__catch(CatchInfo* catchinfo); +extern void __throw(char* throwtype, void* location, void* dtor); +extern char __throw_catch_compare(const char* throwtype, const char* catchtype, + long* offset_result); +extern void __unexpected(CatchInfo* catchinfo); + +extern int __register_fragment(struct __eti_init_info* info, char* TOC); +extern void __unregister_fragment(int fragmentID); + +#ifdef __cplusplus +} +#endif + +#endif // _NMWEXCEPTION diff --git a/include/PowerPC_EABI_Support/Runtime/__mem.h b/include/PowerPC_EABI_Support/Runtime/__mem.h new file mode 100644 index 00000000..0a885b8f --- /dev/null +++ b/include/PowerPC_EABI_Support/Runtime/__mem.h @@ -0,0 +1,17 @@ +#ifndef _RUNTIME_MEM_H +#define _RUNTIME_MEM_H + +#include "stddef.h" + +#ifdef __cplusplus +extern "C" { +#endif + +__declspec(section ".init") void* memcpy(void* dest, const void* src, size_t n); +__declspec(section ".init") void* memset(void* dest, int val, size_t count); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/PowerPC_EABI_Support/Runtime/__ppc_eabi_linker.h b/include/PowerPC_EABI_Support/Runtime/__ppc_eabi_linker.h new file mode 100644 index 00000000..a2fa3d63 --- /dev/null +++ b/include/PowerPC_EABI_Support/Runtime/__ppc_eabi_linker.h @@ -0,0 +1,72 @@ +#ifndef __PPC_EABI_LINKER +#define __PPC_EABI_LINKER + +__declspec(section ".init") extern char _stack_addr[]; +__declspec(section ".init") extern char _stack_end[]; +__declspec(section ".init") extern char _heap_addr[]; +__declspec(section ".init") extern char _heap_end[]; +__declspec(section ".init") extern const char _fextabindex_rom[]; +__declspec(section ".init") extern char _fextabindex[]; +__declspec(section ".init") extern char _eextabindex[]; + +__declspec(section ".init") extern char _SDA_BASE_[]; + +__declspec(section ".init") extern char _SDA2_BASE_[]; + +typedef struct __rom_copy_info { + char* rom; + char* addr; + unsigned int size; +} __rom_copy_info; + +__declspec(section ".init") extern __rom_copy_info _rom_copy_info[]; + +typedef struct __bss_init_info { + char* addr; + unsigned int size; +} __bss_init_info; + +__declspec(section ".init") extern __bss_init_info _bss_init_info[]; + +typedef struct __eti_init_info { + void* eti_start; + void* eti_end; + void* code_start; + unsigned long code_size; +} __eti_init_info; + +__declspec(section ".init") extern __eti_init_info _eti_init_info[]; +__declspec(section ".init") extern const char _f_init_rom[]; +__declspec(section ".init") extern char _f_init[]; +__declspec(section ".init") extern char _e_init[]; +__declspec(section ".init") extern const char _f_text_rom[]; +__declspec(section ".init") extern char _f_text[]; +__declspec(section ".init") extern char _e_text[]; +__declspec(section ".init") extern const char _f_rodata_rom[]; +__declspec(section ".init") extern char _f_rodata[]; +__declspec(section ".init") extern char _e_rodata[]; +__declspec(section ".init") extern const char _fextab_rom[]; +__declspec(section ".init") extern char _fextab[]; +__declspec(section ".init") extern char _eextab[]; +__declspec(section ".init") extern const char _f_data_rom[]; +__declspec(section ".init") extern char _f_data[]; +__declspec(section ".init") extern char _e_data[]; +__declspec(section ".init") extern char _f_bss[]; +__declspec(section ".init") extern char _e_bss[]; +__declspec(section ".init") extern const char _f_sdata_rom[]; +__declspec(section ".init") extern char _f_sdata[]; +__declspec(section ".init") extern char _e_sdata[]; +__declspec(section ".init") extern char _f_sbss[]; +__declspec(section ".init") extern char _e_sbss[]; +__declspec(section ".init") extern const char _f_sdata2_rom[]; +__declspec(section ".init") extern char _f_sdata2[]; +__declspec(section ".init") extern char _e_sdata2[]; +__declspec(section ".init") extern char _f_sbss2[]; +__declspec(section ".init") extern char _e_sbss2[]; +__declspec(section ".init") extern const char _f_PPC_EMB_sdata0_rom[]; +__declspec(section ".init") extern char _f_PPC_EMB_sdata0[]; +__declspec(section ".init") extern char _e_PPC_EMB_sdata0[]; +__declspec(section ".init") extern char _f_PPC_EMB_sbss0[]; +__declspec(section ".init") extern char _e_PPC_EMB_sbss0[]; + +#endif // __PPC_EABI_LINKER diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h new file mode 100644 index 00000000..0861cde2 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h @@ -0,0 +1,35 @@ +#ifndef METROTRK_PORTABLE_DISPATCH_H +#define METROTRK_PORTABLE_DISPATCH_H + +#include "dolphin/types.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define TRK_DISPATCH_CMD_CONNECT 1 /* Connect to the console */ +#define TRK_DISPATCH_CMD_DISCONNECT 2 /* Disconnect from the console */ +#define TRK_DISPATCH_CMD_RESET 3 /* Reset the debugger */ +#define TRK_DISPATCH_CMD_GETVERSION 4 /* Get debugger version */ +#define TRK_DISPATCH_CMD_GETSUPPORTMASK 5 /* Get Support Mask */ +#define TRK_DISPATCH_CMD_OVERRIDE 7 /* Override? */ +#define TRK_DISPATCH_CMD_READMEM 16 /* Reading from memory */ +#define TRK_DISPATCH_CMD_WRITEMEM 17 /* Writing to memory */ +#define TRK_DISPATCH_CMD_READREGS 18 /* Read a register value */ +#define TRK_DISPATCH_CMD_WRITEREGS 19 /* Set a register */ +#define TRK_DISPATCH_CMD_SETOPTION 23 /* Set an option? */ +#define TRK_DISPATCH_CMD_CONTINUE 24 /* Continue debugging */ +#define TRK_DISPATCH_CMD_STEP 25 /* Step through an instruction */ +#define TRK_DISPATCH_CMD_STOP 26 /* Stop the debugger */ + +typedef struct TRKBuffer TRKBuffer; + +DSError TRKInitializeDispatcher(); +BOOL TRKDispatchMessage(TRKBuffer* buffer); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_DISPATCH_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.h new file mode 100644 index 00000000..9ff3a2da --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.h @@ -0,0 +1,16 @@ +#ifndef METROTRK_PORTABLE_MAIN_TRK_H +#define METROTRK_PORTABLE_MAIN_TRK_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +DSError TRK_main(void); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_MAIN_TRK_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.h new file mode 100644 index 00000000..606a4437 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mainloop.h @@ -0,0 +1,14 @@ +#ifndef METROTRK_PORTABLE_MAINLOOP_H +#define METROTRK_PORTABLE_MAINLOOP_H + +#ifdef __cplusplus +extern "C" { +#endif + +void TRKNubMainLoop(void); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_MAINLOOP_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.h new file mode 100644 index 00000000..aeef9c7d --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.h @@ -0,0 +1,17 @@ +#ifndef METROTRK_PORTABLE_MEM_TRK_H +#define METROTRK_PORTABLE_MEM_TRK_H + +#include "stddef.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void* TRK_memset(void* dst, int val, size_t n); +void* TRK_memcpy(void* dst, const void* src, size_t n); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_MEM_TRK_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h new file mode 100644 index 00000000..8433ef8d --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h @@ -0,0 +1,24 @@ +#ifndef METROTRK_PORTABLE_MSG_H +#define METROTRK_PORTABLE_MSG_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" +#include "dolphin/types.h" + +typedef struct _TRK_Msg { + u8 _00[8]; + u32 m_msgLength; + u32 _0C; + u32 m_msg; +} TRK_Msg; + +#ifdef __cplusplus +extern "C" { +#endif + +DSError TRKMessageSend(TRK_Msg* msg); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_MSG_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h new file mode 100644 index 00000000..770d3886 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h @@ -0,0 +1,50 @@ +#ifndef METROTRK_PORTABLE_MSGBUF_H +#define METROTRK_PORTABLE_MSGBUF_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" +#include "stddef.h" + +#ifdef __cplusplus +extern "C" { +#endif + +DSError TRKInitializeMessageBuffers(void); + +DSError TRKSetBufferPosition(TRKBuffer* msg, u32 pos); +void* TRKGetBuffer(int); +void TRKResetBuffer(TRKBuffer* msg, BOOL keepData); +void* TRKGetBuffer(int idx); +void TRKReleaseBuffer(int idx); +DSError TRKGetFreeBuffer(int* msgID, TRKBuffer** outMsg); + +DSError TRKAppendBuffer(TRKBuffer* msg, const void* data, size_t length); +DSError TRKAppendBuffer1_ui8(TRKBuffer* buffer, const u8 data); +inline DSError TRKAppendBuffer1_ui8(TRKBuffer* buffer, const u8 data) +{ + if (buffer->position >= TRKMSGBUF_SIZE) { + return DS_MessageBufferOverflow; + } + + buffer->data[buffer->position++] = data; + buffer->length++; + return DS_NoError; +} +DSError TRKAppendBuffer1_ui16(TRKBuffer* buffer, const u16 data); +DSError TRKAppendBuffer1_ui32(TRKBuffer* buffer, const u32 data); +DSError TRKAppendBuffer1_ui64(TRKBuffer* buffer, const u64 data); +DSError TRKAppendBuffer_ui8(TRKBuffer* buffer, const u8* data, int count); +DSError TRKAppendBuffer_ui32(TRKBuffer* buffer, const u32* data, int count); + +DSError TRKReadBuffer1_ui8(TRKBuffer* buffer, u8* data); +DSError TRKReadBuffer1_ui16(TRKBuffer* buffer, u16* data); +DSError TRKReadBuffer1_ui32(TRKBuffer* buffer, u32* data); +DSError TRKReadBuffer1_ui64(TRKBuffer* buffer, u64* data); +DSError TRKReadBuffer_ui8(TRKBuffer* buffer, u8* data, int count); +DSError TRKReadBuffer_ui32(TRKBuffer* buffer, u32* data, int count); +DSError TRKReadBuffer(TRKBuffer* msg, void* data, size_t length); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_MSGBUF_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h new file mode 100644 index 00000000..aa8abff5 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h @@ -0,0 +1,31 @@ +#ifndef METROTRK_PORTABLE_MSGHNDLR_H +#define METROTRK_PORTABLE_MSGHNDLR_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +void SetTRKConnected(BOOL); +BOOL GetTRKConnected(void); +DSError TRKDoUnsupported(TRKBuffer*); +DSError TRKDoSetOption(TRKBuffer*); +DSError TRKDoStop(TRKBuffer*); +DSError TRKDoStep(TRKBuffer*); +DSError TRKDoContinue(TRKBuffer*); +DSError TRKDoWriteRegisters(TRKBuffer*); +DSError TRKDoReadRegisters(TRKBuffer*); +DSError TRKDoFlushCache(TRKBuffer*); +DSError TRKDoWriteMemory(TRKBuffer*); +DSError TRKDoReadMemory(TRKBuffer*); +DSError TRKDoSupportMask(TRKBuffer*); +DSError TRKDoVersions(TRKBuffer*); +DSError TRKDoSupportMask(TRKBuffer*); +DSError TRKDoCPUType(TRKBuffer*); +DSError TRKDoOverride(TRKBuffer*); +DSError TRKDoReset(TRKBuffer*); +DSError TRKDoDisconnect(TRKBuffer*); +DSError TRKDoConnect(TRKBuffer*); +DSError TRKStandardACK(TRKBuffer* buffer, MessageCommandID commandID, + DSReplyError replyError); + +void OutputData(void* data, int length); + +#endif /* METROTRK_PORTABLE_MSGHNDLR_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.h new file mode 100644 index 00000000..7297cf18 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.h @@ -0,0 +1,10 @@ +#ifndef METROTRK_PORTABLE_MUTEX_TRK_H +#define METROTRK_PORTABLE_MUTEX_TRK_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +DSError TRKInitializeMutex(void*); +DSError TRKAcquireMutex(void*); +DSError TRKReleaseMutex(void*); + +#endif /* METROTRK_PORTABLE_MUTEX_TRK_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.h new file mode 100644 index 00000000..459830f9 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.h @@ -0,0 +1,16 @@ +#ifndef METROTRK_PORTABLE_NOTIFY_H +#define METROTRK_PORTABLE_NOTIFY_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +DSError TRKDoNotifyStopped(MessageCommandID cmd); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_NOTIFY_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h new file mode 100644 index 00000000..da5a012b --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h @@ -0,0 +1,37 @@ +#ifndef METROTRK_PORTABLE_NUBEVENT_H +#define METROTRK_PORTABLE_NUBEVENT_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef u32 NubEventID; + +typedef struct TRKEvent { + NubEventType eventType; + NubEventID eventID; + MessageBufferID msgBufID; +} TRKEvent; + +typedef struct TRKEventQueue { + int _00; + int count; + int next; + TRKEvent events[2]; + NubEventID eventID; +} TRKEventQueue; +extern TRKEventQueue gTRKEventQueue; + +BOOL TRKGetNextEvent(TRKEvent* event); +void TRKDestructEvent(TRKEvent*); +void TRKConstructEvent(TRKEvent*, NubEventType); +DSError TRKPostEvent(TRKEvent*); +DSError TRKInitializeEventQueue(); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_NUBEVENT_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h new file mode 100644 index 00000000..9f1d4174 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h @@ -0,0 +1,21 @@ +#ifndef METROTRK_PORTABLE_NUBINIT_H +#define METROTRK_PORTABLE_NUBINIT_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void TRKNubWelcome(void); +void TRKNubMainLoop(void); +DSError TRKTerminateNub(void); +DSError TRKInitializeNub(void); + +extern BOOL gTRKBigEndian; + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_NUBINIT_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h new file mode 100644 index 00000000..40636776 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h @@ -0,0 +1,23 @@ +#ifndef METROTRK_PORTABLE_SERPOLL_H +#define METROTRK_PORTABLE_SERPOLL_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +DSError TRKInitializeSerialHandler(void); +DSError TRKTerminateSerialHandler(void); + +void TRKGetInput(void); +MessageBufferID TRKTestForPacket(); +void TRKProcessInput(int bufferIdx); + +extern void* gTRKInputPendingPtr; + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_SERPOLL_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.h new file mode 100644 index 00000000..5f8e9fbc --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.h @@ -0,0 +1,29 @@ +#ifndef METROTRK_PORTABLE_SUPPORT_H +#define METROTRK_PORTABLE_SUPPORT_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" +#include "stddef.h" + +#ifdef __cplusplus +extern "C" { +#endif + +DSError TRKSuppAccessFile(u32 file_handle, u8* data, size_t* count, + DSIOResult* io_result, BOOL need_reply, BOOL read); + +DSError TRKRequestSend(TRKBuffer* msgBuf, int* bufferId, u32 p1, u32 p2, + int p3); + +DSError HandleOpenFileSupportRequest(const char* path, u8 replyError, + u32* param_3, DSIOResult* ioResult); + +DSError HandleCloseFileSupportRequest(int replyError, DSIOResult* ioResult); + +DSError HandlePositionFileSupportRequest(DSReplyError replyErr, u32* param_2, + u8 param_3, DSIOResult* ioResult); + +#ifdef __cplusplus +} +#endif + +#endif /* METROTRK_PORTABLE_SUPPORT_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h new file mode 100644 index 00000000..fa3a575a --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h @@ -0,0 +1,24 @@ +#ifndef OS_DOLPHIN_DOLPHIN_TRK_H +#define OS_DOLPHIN_DOLPHIN_TRK_H + +#include "dolphin/types.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +DSError TRKInitializeTarget(); + +void EnableMetroTRKInterrupts(); +u32 TRKTargetTranslate(u32 param_0); +void TRK__read_aram(register int c, register u32 p2, void* p3); +void TRK__write_aram(register int c, register u32 p2, void* p3); + +void __TRK_copy_vectors(void); + +#ifdef __cplusplus +} +#endif + +#endif /* OS_DOLPHIN_DOLPHIN_TRK_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h new file mode 100644 index 00000000..550454cc --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h @@ -0,0 +1,45 @@ +#ifndef OS_DOLPHIN_DOLPHIN_TRK_GLUE_H +#define OS_DOLPHIN_DOLPHIN_TRK_GLUE_H + +#include "dolphin/os.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" +#include "stddef.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef void (*DBCommFunc)(void); +typedef u32 (*DBPollFunc)(void); +typedef void (*DBCommInitFunc)(volatile u8**, __OSInterruptHandler); +typedef int (*DBCommReadFunc)(void*, size_t); +typedef int (*DBCommWriteFunc)(const void*, size_t); + +typedef struct DBCommTable { + DBCommInitFunc initialize_func; + DBCommFunc init_interrupts_func; + DBPollFunc peek_func; + DBCommReadFunc read_func; + DBCommWriteFunc write_func; + DBCommFunc open_func; + DBCommFunc close_func; +} DBCommTable; + +DSError TRKInitializeIntDrivenUART(u32 param_0, u32 param_1, u32 param_2, + volatile u8** param_3); + +void UnreserveEXI2Port(void); +void ReserveEXI2Port(void); +int TRKPollUART(void); +UARTError TRKReadUARTN(void* bytes, u32 length); +UARTError TRKWriteUARTN(const void* bytes, u32 length); +void TRKLoadContext(OSContext* ctx, u32 r4); +int InitMetroTRKCommTable(int hwId); +void EnableEXI2Interrupts(void); +void TRK_board_display(char* str); + +#ifdef __cplusplus +} +#endif + +#endif /* OS_DOLPHIN_DOLPHIN_TRK_GLUE_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.h b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.h new file mode 100644 index 00000000..1d1c4417 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.h @@ -0,0 +1,16 @@ +#ifndef OS_DOLPHIN_TARGCONT_H +#define OS_DOLPHIN_TARGCONT_H + +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +DSError TRKTargetContinue(void); + +#ifdef __cplusplus +} +#endif + +#endif /* OS_DOLPHIN_TARGCONT_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.h b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.h new file mode 100644 index 00000000..d01cc0b1 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.h @@ -0,0 +1,14 @@ +#ifndef OS_DOLPHIN_USR_PUT_H +#define OS_DOLPHIN_USR_PUT_H + +#ifdef __cplusplus +extern "C" { +#endif + +void usr_put_initialize(void); + +#ifdef __cplusplus +} +#endif + +#endif /* OS_DOLPHIN_USR_PUT_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.h b/include/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.h new file mode 100644 index 00000000..a512aacf --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.h @@ -0,0 +1,16 @@ +#ifndef PPC_GENERIC_FLUSH_CACHE_H +#define PPC_GENERIC_FLUSH_CACHE_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +void TRK_flush_cache(void* param_1, int param_2); + +#ifdef __cplusplus +} +#endif + +#endif /* PPC_GENERIC_FLUSH_CACHE_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.h b/include/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.h new file mode 100644 index 00000000..ec764776 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.h @@ -0,0 +1,16 @@ +#ifndef PPC_GENERIC_MPC_7XX_603E_H +#define PPC_GENERIC_MPC_7XX_603E_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +u32 TRKTargetCPUMinorType(void); + +#ifdef __cplusplus +} +#endif + +#endif /* PPC_GENERIC_MPC_7XX_603E_H */ diff --git a/include/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h b/include/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h new file mode 100644 index 00000000..e7ce7015 --- /dev/null +++ b/include/TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h @@ -0,0 +1,190 @@ +#ifndef PPC_GENERIC_TARGIMPL_H +#define PPC_GENERIC_TARGIMPL_H + +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h" +#include "stddef.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void TRKTargetSetInputPendingPtr(void* ptr); + +void TRKSwapAndGo(); +void TRKTargetSetStopped(unsigned int); +DSError TRKTargetInterrupt(TRKEvent*); +DSError TRKTargetSupportRequest(); +void TRKDestructEvent(TRKEvent*); +DSError TRKTargetFlushCache(u8, void* start, void* end); +BOOL TRKTargetStopped(void); +DSError TRKTargetAddStopInfo(TRKBuffer* b); +DSError TRKTargetAddExceptionInfo(TRKBuffer* b); +DSError TRKTargetAccessARAM(u32 p1, u32 p2, u32* p3, BOOL read); +DSError TRKTargetAccessMemory(void* data, u32 start, size_t* length, + MemoryAccessOptions accessOptions, BOOL read); +DSError TRKTargetAccessDefault(u32 firstRegister, u32 lastRegister, + TRKBuffer* b, size_t* registersLengthPtr, + BOOL read); +DSError TRKTargetAccessFP(u32 firstRegister, u32 lastRegister, TRKBuffer* b, + size_t* registersLengthPtr, BOOL read); +DSError TRKTargetAccessExtended1(u32 firstRegister, u32 lastRegister, + TRKBuffer* b, size_t* registersLengthPtr, + BOOL read); +DSError TRKTargetAccessExtended2(u32 firstRegister, u32 lastRegister, + TRKBuffer* b, size_t* registerStorageSize, + BOOL read); +u32 TRKTargetGetPC(); +DSError TRKTargetSingleStep(u32 count, BOOL stepOver); +DSError TRKTargetStepOutOfRange(u32 rangeStart, u32 rangeEnd, BOOL stepOver); +u32 TRKTargetStop(); +void TRKInterruptHandler(); +void TRKPostInterruptEvent(void); + +typedef struct DSVersions { + u8 kernelMajor; + u8 kernelMinor; + u8 protocolMajor; + u8 protocolMinor; +} DSVersions; + +DSError TRKTargetVersions(DSVersions* versions); +DSError TRKTargetSupportMask(u8 mask[32]); + +typedef struct DSCPUType { + u8 cpuMajor; + u8 cpuMinor; + u8 bigEndian; + u8 defaultTypeSize; + u8 fpTypeSize; + u8 extended1TypeSize; + u8 extended2TypeSize; +} DSCPUType; +DSError TRKTargetCPUType(DSCPUType* cpuType); + +typedef struct Default_PPC { + u32 GPR[32]; + u32 PC; + u32 LR; + u32 CR; + u32 CTR; + u32 XER; +} Default_PPC; + +typedef struct Float_PPC { + u64 FPR[32]; + u64 FPSCR; + u64 FPECR; +} Float_PPC; + +typedef struct Extended1_PPC_6xx_7xx { + u32 SR[16]; + u32 TBL; + u32 TBU; + u32 HID0; + u32 HID1; + u32 MSR; + u32 PVR; + u32 IBAT0U; + u32 IBAT0L; + u32 IBAT1U; + u32 IBAT1L; + u32 IBAT2U; + u32 IBAT2L; + u32 IBAT3U; + u32 IBAT3L; + u32 DBAT0U; + u32 DBAT0L; + u32 DBAT1U; + u32 DBAT1L; + u32 DBAT2U; + u32 DBAT2L; + u32 DBAT3U; + u32 DBAT3L; + u32 DMISS; + u32 DCMP; + u32 HASH1; + u32 HASH2; + u32 IMISS; + u32 ICMP; + u32 RPA; + u32 SDR1; + u32 DAR; + u32 DSISR; + u32 SPRG0; + u32 SPRG1; + u32 SPRG2; + u32 SPRG3; + u32 DEC; + u32 IABR; + u32 EAR; + u32 DABR; + u32 PMC1; + u32 PMC2; + u32 PMC3; + u32 PMC4; + u32 SIA; + u32 MMCR0; + u32 MMCR1; + u32 THRM1; + u32 THRM2; + u32 THRM3; + u32 ICTC; + u32 L2CR; + u32 UMMCR2; + u32 UBAMR; + u32 UMMCR0; + u32 UPMC1; + u32 UPMC2; + u32 USIA; + u32 UMMCR1; + u32 UPMC3; + u32 UPMC4; + u32 USDA; + u32 MMCR2; + u32 BAMR; + u32 SDA; + u32 MSSCR0; + u32 MSSCR1; + u32 PIR; + u32 exceptionID; + u32 GQR[8]; + u32 HID_G; + u32 WPAR; + u32 DMA_U; + u32 DMA_L; +} Extended1_PPC_6xx_7xx; + +typedef struct Extended2_PPC_6xx_7xx { + u32 PSR[32][2]; +} Extended2_PPC_6xx_7xx; + +typedef struct ProcessorState_PPC_6xx_7xx { + Default_PPC Default; + Float_PPC Float; + Extended1_PPC_6xx_7xx Extended1; + Extended2_PPC_6xx_7xx Extended2; + u32 transport_handler_saved_ra; +} ProcessorState_PPC_6xx_7xx; + +typedef ProcessorState_PPC_6xx_7xx ProcessorState_PPC; +extern ProcessorState_PPC gTRKCPUState; + +typedef struct TRKState { + u32 gpr[32]; // _00 + u32 lr; // _80 + u32 ctr; // _84 + u32 xer; // _88 + u32 msr; // _8C + u32 dar; // _90 + u32 dsisr; // _94 + BOOL isStopped; // _98 + BOOL inputActivated; // _9C + void* inputPendingPtr; // _A0 +} TRKState; +extern TRKState gTRKState; + +#ifdef __cplusplus +} +#endif + +#endif /* PPC_GENERIC_TARGIMPL_H */ diff --git a/include/amcstubs/AmcExi2Stubs.h b/include/amcstubs/AmcExi2Stubs.h new file mode 100644 index 00000000..48298c34 --- /dev/null +++ b/include/amcstubs/AmcExi2Stubs.h @@ -0,0 +1,27 @@ +#ifndef AMCEXI2STUBS_H +#define AMCEXI2STUBS_H + +#include "dolphin/os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef __OSInterruptHandler AmcEXICallback; + +typedef enum { AMC_EXI_NO_ERROR = 0, AMC_EXI_UNSELECTED } AmcExiError; + +void EXI2_Init(volatile u8**, AmcEXICallback); +void EXI2_EnableInterrupts(void); +u32 EXI2_Poll(void); +int EXI2_ReadN(void*, u32); +int EXI2_WriteN(const void*, u32); +void EXI2_Reserve(void); +void EXI2_Unreserve(void); +BOOL AMC_IsStub(void); + +#ifdef __cplusplus +}; +#endif + +#endif diff --git a/include/dolphin/math.h b/include/dolphin/math.h new file mode 100644 index 00000000..483d8081 --- /dev/null +++ b/include/dolphin/math.h @@ -0,0 +1,85 @@ +#ifndef _DOLPHIN_MATH +#define _DOLPHIN_MATH + +// this file is necessary to match mtx/quat.c + +#define M_PI 3.141592653589793 + +#ifndef _MATH_INLINE +#define _MATH_INLINE static inline +#endif + +extern int __float_nan[]; +extern int __float_huge[]; +extern int __double_huge[]; + +#define INFINITY (*(float *)__float_huge) +#define NAN (*(float *)__float_nan) +#define HUGE_VAL (*(double *)__double_huge) + +#ifdef __MWERKS__ +extern inline double sqrt(double x) +{ + if (x > 0.0) { + double guess = __frsqrte(x); /* returns an approximation to */ + guess = .5 * guess * (3.0 - guess * guess * x); /* now have 8 sig bits */ + guess = .5 * guess * (3.0 - guess * guess * x); /* now have 16 sig bits */ + guess = .5 * guess * (3.0 - guess * guess * x); /* now have 32 sig bits */ + guess = .5 * guess * (3.0 - guess * guess * x); /* now have > 53 sig bits */ + return x * guess; + } + else if (x == 0) + return 0; + else if (x) + return NAN; + + return INFINITY; +} + +extern inline float sqrtf(float x) +{ + const double _half = .5; + const double _three = 3.0; + volatile float y; + if (x > 0.0f) { + double guess = __frsqrte((double)x); // returns an approximation to + guess = _half * guess * (_three - guess * guess * x); // now have 12 sig bits + guess = _half * guess * (_three - guess * guess * x); // now have 24 sig bits + guess = _half * guess * (_three - guess * guess * x); // now have 32 sig bits + y = (float)(x * guess); + return y; + } + return x; +} +#else +double sqrt(double x); +float sqrtf(float x); +#endif + +double atan(double x); +double copysign(double x, double y); +double cos(double x); +double floor(double x); +double frexp(double x, int *exp); +double ldexp(double x, int exp); +double modf(double x, double *intpart); +double sin(double x); +double tan(double x); +double acos(double x); +double asin(double x); +double atan2(double y, double x); +double fmod(double x, double y); +double log(double x); +double pow(double x, double y); +float tanf(float x); + +#ifdef __MWERKS__ +extern inline double fabs(double x) +{ + return __fabs(x); +} +#else +double fabs(double x); +#endif + +#endif diff --git a/include/dolphin/mtx.h b/include/dolphin/mtx.h index 9aba8f15..49dc1b7e 100644 --- a/include/dolphin/mtx.h +++ b/include/dolphin/mtx.h @@ -118,7 +118,7 @@ void PSMTXScaleApply(const Mtx src, Mtx dst, f32 xS, f32 yS, f32 zS); void PSMTXRotRad(Mtx m, char axis, f32 rad); void PSMTXRotTrig(Mtx m, char axis, f32 sinA, f32 cosA); -void PSMTXRotAxisRad(Mtx m, const Vec* axis, f32 rad); +void PSMTXRotAxisRad(register Mtx m, const Vec* axis, register f32 rad); #endif #ifdef MTX_USE_PS diff --git a/include/stdarg.h b/include/stdarg.h index 1ca0f853..e2cceee7 100644 --- a/include/stdarg.h +++ b/include/stdarg.h @@ -1,19 +1,39 @@ -#ifndef STDARG_H -#define STDARG_H +#ifndef _MSL_COMMON_STDARG_H +#define _MSL_COMMON_STDARG_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __MWERKS__ typedef struct { - char gpr; - char fpr; - char reserved[2]; - char* input_arg_area; - char* reg_save_area; + char gpr; + char fpr; + char reserved[2]; + char* input_arg_area; + char* reg_save_area; } __va_list[1]; typedef __va_list va_list; +#ifndef __MWERKS__ +extern void __builtin_va_info(va_list*); +#endif + void* __va_arg(va_list v_list, unsigned char type); -#define va_start(ap, fmt) ((void) fmt, __builtin_va_info(&ap)) -#define va_arg(ap, t) (*((t*) __va_arg(ap, _var_arg_typeof(t)))) -#define va_end(ap) (void) 0 +#define va_start(ap, fmt) ((void)fmt, __builtin_va_info(&ap)) +#define va_arg(ap, t) (*((t*)__va_arg(ap, _var_arg_typeof(t)))) +#define va_end(ap) (void)0 -#endif \ No newline at end of file +#else +typedef __builtin_va_list va_list; +#define va_start(v, l) __builtin_va_start(v, l) +#define va_end(v) __builtin_va_end(v) +#define va_arg(v, l) __builtin_va_arg(v, l) +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _MSL_COMMON_STDARG_H */ diff --git a/include/stddef.h b/include/stddef.h index 5a133946..71816c2b 100644 --- a/include/stddef.h +++ b/include/stddef.h @@ -10,8 +10,13 @@ extern "C" { /* These break 1.2.5 */ //typedef __typeof__(sizeof(0)) size_t; //typedef __typeof__((char*)0 - (char*)0) ptrdiff_t; +#ifdef __INTELLISENSE__ +typedef unsigned int size_t; +typedef int ptrdiff_t; +#else typedef unsigned long size_t; typedef long ptrdiff_t; +#endif #ifndef NULL #define NULL 0L #endif @@ -20,4 +25,4 @@ typedef long ptrdiff_t; } #endif -#endif \ No newline at end of file +#endif diff --git a/include/string.h b/include/string.h index 583a906d..92f8f122 100644 --- a/include/string.h +++ b/include/string.h @@ -1,11 +1,22 @@ #ifndef _STRING_H_ #define _STRING_H_ -typedef unsigned long size_t; +#include "stddef.h" -void* memcpy(void* dst, const void* src, size_t n); -void* memset(void* dst, int val, size_t n); +#ifdef __MWERKS__ +__declspec(section ".init") void* memcpy(void* dest, const void* src, size_t n); +__declspec(section ".init") void __fill_mem(void* dest, int val, size_t count); +__declspec(section ".init") void* memset(void* dest, int val, size_t count); +#else +void* memcpy(void* dest, const void* src, size_t n); +void __fill_mem(void* dest, int val, size_t count); +void* memset(void* dest, int val, size_t count); +#endif +int memcmp(const void* lhs, const void* rhs, size_t count); +void* __memrchr(const void* ptr, int ch, size_t count); +void* memchr(const void* ptr, int ch, size_t count); +void* memmove(void* dst, const void* src, size_t n); char* strrchr(const char* str, int c); char* strchr(const char* str, int c); int strncmp(const char* str1, const char* str2, size_t n); @@ -15,4 +26,4 @@ char* strncpy(char* dst, const char* src, size_t n); char* strcpy(char* dst, const char* src); size_t strlen(const char* str); -#endif \ No newline at end of file +#endif diff --git a/src/MSL_C.PPCEABI.bare.H/abort_exit.c b/src/MSL_C.PPCEABI.bare.H/abort_exit.c new file mode 100644 index 00000000..1c9ca4d2 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/abort_exit.c @@ -0,0 +1,55 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/abort_exit.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/critical_regions.h" +#include "stddef.h" +#include "PowerPC_EABI_Support/Runtime/NMWException.h" + +void _ExitProcess(); + +extern void (*_dtors[])(void); + +int __aborting = 0; + +static void (*atexit_funcs[64])(void); +static int atexit_curr_func = 0; + +static void (*__atexit_funcs[64])(void); +static int __atexit_curr_func = 0; + +void (*__stdio_exit)(void) = 0; +void (*__console_exit)(void) = 0; + +void abort(void) +{ + // TODO +} + +void exit(int status) +{ + int i; + void (**dtor)(void); + + if (!__aborting) { + __destroy_global_chain(); + + dtor = _dtors; + while (*dtor != NULL) { + (*dtor)(); + dtor++; + } + + if (__stdio_exit != NULL) { + __stdio_exit(); + __stdio_exit = NULL; + } + } + + while (__atexit_curr_func > 0) + __atexit_funcs[--__atexit_curr_func](); + + if (__console_exit != NULL) { + __console_exit(); + __console_exit = NULL; + } + + _ExitProcess(); +} diff --git a/src/MSL_C.PPCEABI.bare.H/ansi_files.c b/src/MSL_C.PPCEABI.bare.H/ansi_files.c new file mode 100644 index 00000000..f0113bf4 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/ansi_files.c @@ -0,0 +1,95 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/file_io.h" + +extern files __files = { + { + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + { 0, 0 }, + { 0, 0 }, + 0, + (unsigned char*)&__files._stdin.char_buffer, + 1, + (unsigned char*)&__files._stdin.char_buffer, + 0, + 0, + 0, + 0, + NULL, + __read_console, + __write_console, + __close_console, + NULL, + }, + { + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + { 0, 0 }, + { 0, 0 }, + 0, + (unsigned char*)&__files._stdout.char_buffer, + 1, + (unsigned char*)&__files._stdout.char_buffer, + 0, + 0, + 0, + 0, + NULL, + __read_console, + __write_console, + __close_console, + NULL, + }, + { + 0, + 0, + 2, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + { 0, 0 }, + { 0, 0 }, + 0, + (unsigned char*)&__files._stderr.char_buffer, + 1, + (unsigned char*)&__files._stderr.char_buffer, + 0, + 0, + 0, + 0, + NULL, + __read_console, + __write_console, + __close_console, + NULL, + }, +}; diff --git a/src/MSL_C.PPCEABI.bare.H/buffer_io.c b/src/MSL_C.PPCEABI.bare.H/buffer_io.c new file mode 100644 index 00000000..5657680d --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/buffer_io.c @@ -0,0 +1,41 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +void __prep_buffer(FILE* file) +{ + file->buffer_ptr = file->buffer; + file->buffer_length = file->buffer_size; + file->buffer_length -= file->position & file->buffer_alignment; + file->buffer_position = file->position; +} + +void __convert_from_newlines(unsigned char* p, size_t* n) { } + +int __flush_buffer(FILE* file, size_t* bytes_flushed) +{ + size_t buffer_len; + int ioresult; + + buffer_len = file->buffer_ptr - file->buffer; + + if (buffer_len) { + file->buffer_length = buffer_len; + + if (!file->file_mode.binary_io) + __convert_from_newlines(file->buffer, &file->buffer_length); + + ioresult = (*file->write_fn)(file->handle, file->buffer, + &file->buffer_length, file->idle_fn); + + if (bytes_flushed) + *bytes_flushed = file->buffer_length; + + if (ioresult) + return ioresult; + + file->position += file->buffer_length; + } + + __prep_buffer(file); + + return __no_io_error; +} diff --git a/src/MSL_C.PPCEABI.bare.H/ctype.c b/src/MSL_C.PPCEABI.bare.H/ctype.c new file mode 100644 index 00000000..e0a797cb --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/ctype.c @@ -0,0 +1,85 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ctype.h" + +#define ctrl __control_char +#define motn __motion_char +#define spac __space_char +#define punc __punctuation +#define digi __digit +#define hexd __hex_digit +#define lowc __lower_case +#define uppc __upper_case +#define dhex (hexd | digi) +#define uhex (hexd | uppc) +#define lhex (hexd | lowc) + +const unsigned char __ctype_map[256] = { + // clang-format off + ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, motn, motn, motn, motn, motn, ctrl, ctrl, + ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, + spac, punc, punc, punc, punc, punc, punc, punc, punc, punc, punc, punc, punc, punc, punc, punc, + dhex, dhex, dhex, dhex, dhex, dhex, dhex, dhex, dhex, dhex, punc, punc, punc, punc, punc, punc, + punc, uhex, uhex, uhex, uhex, uhex, uhex, uppc, uppc, uppc, uppc, uppc, uppc, uppc, uppc, uppc, + uppc, uppc, uppc, uppc, uppc, uppc, uppc, uppc, uppc, uppc, uppc, punc, punc, punc, punc, punc, + punc, lhex, lhex, lhex, lhex, lhex, lhex, lowc, lowc, lowc, lowc, lowc, lowc, lowc, lowc, lowc, + lowc, lowc, lowc, lowc, lowc, lowc, lowc, lowc, lowc, lowc, lowc, punc, punc, punc, punc, ctrl, + // clang-format on +}; + +const unsigned char __lower_map[256] = { + // clang-format off + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, + ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 0x7F, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, + 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, + 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, + // clang-format on +}; + +const unsigned char __upper_map[256] = { + // clang-format off + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, + ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '{', '|', '}', '~', 0x7F, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, + 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, + 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, + 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, + 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, + // clang-format on +}; + +int tolower(int __c) +{ + if (__c == -1) + return -1; + + return __lower_map[__c & 0xff]; +} + +int toupper(int __c) +{ + + if (__c == -1) + return -1; + + return __upper_map[__c & 0xff]; +} diff --git a/src/MSL_C.PPCEABI.bare.H/direct_io.c b/src/MSL_C.PPCEABI.bare.H/direct_io.c new file mode 100644 index 00000000..51184220 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/direct_io.c @@ -0,0 +1,114 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/direct_io.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/buffer_io.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/misc_io.h" +#include "string.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/wchar_io.h" + +size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream) +{ + unsigned char* write_ptr; + size_t num_bytes, bytes_to_go, bytes_written; + int ioresult, always_buffer; + + if (fwide(stream, 0) == 0) + fwide(stream, -1); + + bytes_to_go = size * count; + + if (!bytes_to_go || stream->file_state.error + || stream->file_mode.file_kind == __closed_file) + return 0; + + if ((int)stream->file_mode.file_kind == __console_file) + __stdio_atexit(); + + always_buffer = !stream->file_mode.binary_io + || (int)stream->file_mode.file_kind == __string_file + || stream->file_mode.buffer_mode == _IOFBF + || stream->file_mode.buffer_mode == _IOLBF; + + if (stream->file_state.io_state == __neutral) { + if (stream->file_mode.io_mode & __write) { + stream->file_state.io_state = __writing; + + __prep_buffer(stream); + } + } + + if (stream->file_state.io_state != __writing) { + set_error(stream); + return 0; + } + + write_ptr = (unsigned char*)buffer; + bytes_written = 0; + + if (bytes_to_go + && (stream->buffer_ptr != stream->buffer || always_buffer)) { + stream->buffer_length + = stream->buffer_size - (stream->buffer_ptr - stream->buffer); + + do { + unsigned char* newline = NULL; + + num_bytes = stream->buffer_length; + + if (num_bytes > bytes_to_go) + num_bytes = bytes_to_go; + + if (num_bytes) { + memcpy(stream->buffer_ptr, write_ptr, num_bytes); + + write_ptr += num_bytes; + bytes_written += num_bytes; + bytes_to_go -= num_bytes; + + stream->buffer_ptr += num_bytes; + stream->buffer_length -= num_bytes; + } + + if (!stream->buffer_length + && (int)stream->file_mode.file_kind == __string_file) { + bytes_written += bytes_to_go; + break; + } + + if (!stream->buffer_length || newline != NULL + || (stream->file_mode.buffer_mode == _IONBF)) { + ioresult = __flush_buffer(stream, NULL); + + if (ioresult) { + set_error(stream); + bytes_to_go = 0; + break; + } + } + } while (bytes_to_go && always_buffer); + } + + if (bytes_to_go && !always_buffer) { + unsigned char* save_buffer = stream->buffer; + size_t save_size = stream->buffer_size; + + stream->buffer = write_ptr; + stream->buffer_size = bytes_to_go; + stream->buffer_ptr = write_ptr + bytes_to_go; + + if (__flush_buffer(stream, &num_bytes) != __no_io_error) + set_error(stream); + + bytes_written += num_bytes; + + stream->buffer = save_buffer; + stream->buffer_size = save_size; + + __prep_buffer(stream); + + stream->buffer_length = 0; + } + + if (stream->file_mode.buffer_mode != _IOFBF) + stream->buffer_length = 0; + + return ((bytes_written + size - 1) / size); +} diff --git a/src/MSL_C.PPCEABI.bare.H/e_asin.c b/src/MSL_C.PPCEABI.bare.H/e_asin.c new file mode 100644 index 00000000..bc5754f4 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/e_asin.c @@ -0,0 +1,3 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +double fabs__Fd(double v) { return __fabs(v); } diff --git a/src/MSL_C.PPCEABI.bare.H/e_atan2.c b/src/MSL_C.PPCEABI.bare.H/e_atan2.c new file mode 100644 index 00000000..43b99afd --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/e_atan2.c @@ -0,0 +1,145 @@ + +/* @(#)e_atan2.c 1.3 95/01/18 */ +/** + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* __ieee754_atan2(y,x) + * Method : + * 1. Reduce y to positive by atan2(y,x)=-atan2(-y,x). + * 2. Reduce x to positive by (if x and y are unexceptional): + * ARG (x+iy) = arctan(y/x) ... if x > 0, + * ARG (x+iy) = pi - arctan[y/(-x)] ... if x < 0, + * + * Special cases: + * + * ATAN2((anything), NaN ) is NaN; + * ATAN2(NAN , (anything) ) is NaN; + * ATAN2(+-0, +(anything but NaN)) is +-0 ; + * ATAN2(+-0, -(anything but NaN)) is +-pi ; + * ATAN2(+-(anything but 0 and NaN), 0) is +-pi/2; + * ATAN2(+-(anything but INF and NaN), +INF) is +-0 ; + * ATAN2(+-(anything but INF and NaN), -INF) is +-pi; + * ATAN2(+-INF,+INF ) is +-pi/4 ; + * ATAN2(+-INF,-INF ) is +-3pi/4; + * ATAN2(+-INF, (anything but,0,NaN, and INF)) is +-pi/2; + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const double +#else +static double +#endif + tiny + = 1.0e-300, + zero = 0.0, pi_o_4 = 7.8539816339744827900E-01, /* 0x3FE921FB, 0x54442D18 */ + pi_o_2 = 1.5707963267948965580E+00, /* 0x3FF921FB, 0x54442D18 */ + pi = 3.1415926535897931160E+00, /* 0x400921FB, 0x54442D18 */ + pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */ + +#ifdef __STDC__ +double __ieee754_atan2(double y, double x) +#else +double __ieee754_atan2(y, x) +double y, x; +#endif +{ + double z; + int k, m, hx, hy, ix, iy; + unsigned lx, ly; + + hx = __HI(x); + ix = hx & 0x7fffffff; + lx = __LO(x); + hy = __HI(y); + iy = hy & 0x7fffffff; + ly = __LO(y); + if (((ix | ((lx | -lx) >> 31)) > 0x7ff00000) + || ((iy | ((ly | -ly) >> 31)) > 0x7ff00000)) /* x or y is NaN */ + return x + y; + if ((hx - 0x3ff00000 | lx) == 0) + return atan(y); /* x=1.0 */ + m = ((hy >> 31) & 1) | ((hx >> 30) & 2); /* 2*sign(x)+sign(y) */ + + /* when y = 0 */ + if ((iy | ly) == 0) { + switch (m) { + case 0: + case 1: + return y; /* atan(+-0,+anything)=+-0 */ + case 2: + return pi + tiny; /* atan(+0,-anything) = pi */ + case 3: + return -pi - tiny; /* atan(-0,-anything) =-pi */ + } + } + /* when x = 0 */ + if ((ix | lx) == 0) + return (hy < 0) ? -pi_o_2 - tiny : pi_o_2 + tiny; + + /* when x is INF */ + if (ix == 0x7ff00000) { + if (iy == 0x7ff00000) { + switch (m) { + case 0: + return pi_o_4 + tiny; /* atan(+INF,+INF) */ + case 1: + return -pi_o_4 - tiny; /* atan(-INF,+INF) */ + case 2: + return 3.0 * pi_o_4 + tiny; /*atan(+INF,-INF)*/ + case 3: + return -3.0 * pi_o_4 - tiny; /*atan(-INF,-INF)*/ + } + } else { + switch (m) { + case 0: + return zero; /* atan(+...,+INF) */ + case 1: + return -zero; /* atan(-...,+INF) */ + case 2: + return pi + tiny; /* atan(+...,-INF) */ + case 3: + return -pi - tiny; /* atan(-...,-INF) */ + } + } + } + /* when y is INF */ + if (iy == 0x7ff00000) + return (hy < 0) ? -pi_o_2 - tiny : pi_o_2 + tiny; + + /* compute y/x */ + k = (iy - ix) >> 20; + if (k > 60) + z = pi_o_2 + 0.5 * pi_lo; /* |y/x| > 2**60 */ + else if (hx < 0 && k < -60) + z = 0.0; /* |y|/x < -2**60 */ + else + z = atan(fabs__Fd(y / x)); /* safe to do y/x */ + switch (m) { + case 0: + return z; /* atan(+,+) */ + case 1: + __HI(z) ^= 0x80000000; + return z; /* atan(-,+) */ + case 2: + return pi - (z - pi_lo); /* atan(+,-) */ + default: /* case 3 */ + return (z - pi_lo) - pi; /* atan(-,-) */ + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/errno.c b/src/MSL_C.PPCEABI.bare.H/errno.c new file mode 100644 index 00000000..fb0a2b41 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/errno.c @@ -0,0 +1,3 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/errno.h" + +int errno; diff --git a/src/MSL_C.PPCEABI.bare.H/float.c b/src/MSL_C.PPCEABI.bare.H/float.c new file mode 100644 index 00000000..f07b2812 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/float.c @@ -0,0 +1,5 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/float.h" + +unsigned long __float_nan[] = { 0x7FFFFFFF }; + +unsigned long __float_huge[] = { 0x7F800000 }; diff --git a/src/MSL_C.PPCEABI.bare.H/mbstring.c b/src/MSL_C.PPCEABI.bare.H/mbstring.c new file mode 100644 index 00000000..fa77c660 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/mbstring.c @@ -0,0 +1,18 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mbstring.h" + +size_t wcstombs(char* s, const wchar_t* pwcs, size_t n) +{ + wchar_t next; + size_t chars_written; + int i; + + chars_written = 0; + for (i = 0; i < n; ++i) { + next = *pwcs++; + *s++ = (char)next; + if ((char)next == '\0') + break; + ++chars_written; + } + return chars_written; +} diff --git a/src/MSL_C.PPCEABI.bare.H/mem.c b/src/MSL_C.PPCEABI.bare.H/mem.c new file mode 100644 index 00000000..63a4434f --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/mem.c @@ -0,0 +1,75 @@ +#include "string.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mem_funcs.h" + +void* memmove(void* dst, const void* src, size_t n) +{ + unsigned char* csrc; + unsigned char* cdst; + + int reverse = (unsigned int)src < (unsigned int)dst; + + if (n >= 32) { + if (((unsigned int)dst ^ (unsigned int)src) & 3) { + if (!reverse) { + __copy_longs_unaligned(dst, src, n); + } else { + __copy_longs_rev_unaligned(dst, src, n); + } + } else { + if (!reverse) { + __copy_longs_aligned(dst, src, n); + } else { + __copy_longs_rev_aligned(dst, src, n); + } + } + + return dst; + } else { + if (!reverse) { + csrc = ((unsigned char*)src) - 1; + cdst = ((unsigned char*)dst) - 1; + n++; + + while (--n > 0) { + *++cdst = *++csrc; + } + } else { + csrc = (unsigned char*)src + n; + cdst = (unsigned char*)dst + n; + n++; + + while (--n > 0) { + *--cdst = *--csrc; + } + } + } + + return dst; +} + +void* memchr(const void* ptr, int ch, size_t count) +{ + const unsigned char* p; + + unsigned long v = (ch & 0xff); + + for (p = (unsigned char*)ptr - 1, count++; --count;) + if ((*++p & 0xff) == v) + return (void*)p; + + return NULL; +} + +int memcmp(const void* lhs, const void* rhs, size_t count) +{ + const unsigned char* p1; + const unsigned char* p2; + + for (p1 = (const unsigned char*)lhs - 1, p2 = (const unsigned char*)rhs - 1, + count++; + --count;) + if (*++p1 != *++p2) + return ((*p1 < *p2) ? -1 : +1); + + return 0; +} diff --git a/src/MSL_C.PPCEABI.bare.H/mem_funcs.c b/src/MSL_C.PPCEABI.bare.H/mem_funcs.c new file mode 100644 index 00000000..a22984c4 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/mem_funcs.c @@ -0,0 +1,221 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mem_funcs.h" + +#define cps ((unsigned char*)src) +#define cpd ((unsigned char*)dst) +#define lps ((unsigned long*)src) +#define lpd ((unsigned long*)dst) +#define deref_auto_inc(p) *++(p) + +void __copy_longs_aligned(void* dst, const void* src, size_t n) +{ + unsigned long i; + + i = (-(unsigned long)dst) & 3; + + cps = ((unsigned char*)src) - 1; + cpd = ((unsigned char*)dst) - 1; + + if (i) { + n -= i; + + do + deref_auto_inc(cpd) = deref_auto_inc(cps); + while (--i); + } + + lps = ((unsigned long*)(cps + 1)) - 1; + lpd = ((unsigned long*)(cpd + 1)) - 1; + + i = n >> 5; + + if (i) + do { + deref_auto_inc(lpd) = deref_auto_inc(lps); + deref_auto_inc(lpd) = deref_auto_inc(lps); + deref_auto_inc(lpd) = deref_auto_inc(lps); + deref_auto_inc(lpd) = deref_auto_inc(lps); + deref_auto_inc(lpd) = deref_auto_inc(lps); + deref_auto_inc(lpd) = deref_auto_inc(lps); + deref_auto_inc(lpd) = deref_auto_inc(lps); + deref_auto_inc(lpd) = deref_auto_inc(lps); + } while (--i); + + i = (n & 31) >> 2; + + if (i) + do + deref_auto_inc(lpd) = deref_auto_inc(lps); + while (--i); + + cps = ((unsigned char*)(lps + 1)) - 1; + cpd = ((unsigned char*)(lpd + 1)) - 1; + + n &= 3; + + if (n) + do + deref_auto_inc(cpd) = deref_auto_inc(cps); + while (--n); + + return; +} + +void __copy_longs_rev_aligned(void* dst, const void* src, size_t n) +{ + unsigned long i; + + cps = ((unsigned char*)src) + n; + cpd = ((unsigned char*)dst) + n; + + i = ((unsigned long)cpd) & 3; + + if (i) { + n -= i; + + do + *--cpd = *--cps; + while (--i); + } + + i = n >> 5; + + if (i) + do { + *--lpd = *--lps; + *--lpd = *--lps; + *--lpd = *--lps; + *--lpd = *--lps; + *--lpd = *--lps; + *--lpd = *--lps; + *--lpd = *--lps; + *--lpd = *--lps; + } while (--i); + + i = (n & 31) >> 2; + + if (i) + do + *--lpd = *--lps; + while (--i); + + n &= 3; + + if (n) + do + *--cpd = *--cps; + while (--n); + + return; +} + +void __copy_longs_unaligned(void* dst, const void* src, size_t n) +{ + unsigned long i, v1, v2; + unsigned int src_offset, left_shift, right_shift; + + i = (-(unsigned long)dst) & 3; + + cps = ((unsigned char*)src) - 1; + cpd = ((unsigned char*)dst) - 1; + + if (i) { + n -= i; + + do + deref_auto_inc(cpd) = deref_auto_inc(cps); + while (--i); + } + + src_offset = ((unsigned int)(cps + 1)) & 3; + + left_shift = src_offset << 3; + right_shift = 32 - left_shift; + + cps -= src_offset; + + lps = ((unsigned long*)(cps + 1)) - 1; + lpd = ((unsigned long*)(cpd + 1)) - 1; + + i = n >> 3; + + v1 = deref_auto_inc(lps); + + do { + v2 = deref_auto_inc(lps); + deref_auto_inc(lpd) = (v1 << left_shift) | (v2 >> right_shift); + v1 = deref_auto_inc(lps); + deref_auto_inc(lpd) = (v2 << left_shift) | (v1 >> right_shift); + } while (--i); + + if (n & 4) { + v2 = deref_auto_inc(lps); + deref_auto_inc(lpd) = (v1 << left_shift) | (v2 >> right_shift); + } + + cps = ((unsigned char*)(lps + 1)) - 1; + cpd = ((unsigned char*)(lpd + 1)) - 1; + + n &= 3; + + if (n) { + cps -= 4 - src_offset; + do + deref_auto_inc(cpd) = deref_auto_inc(cps); + while (--n); + } + + return; +} + +void __copy_longs_rev_unaligned(void* dst, const void* src, size_t n) +{ + unsigned long i, v1, v2; + unsigned int src_offset, left_shift, right_shift; + + cps = ((unsigned char*)src) + n; + cpd = ((unsigned char*)dst) + n; + + i = ((unsigned long)cpd) & 3; + + if (i) { + n -= i; + + do + *--cpd = *--cps; + while (--i); + } + + src_offset = ((unsigned int)cps) & 3; + + left_shift = src_offset << 3; + right_shift = 32 - left_shift; + + cps += 4 - src_offset; + + i = n >> 3; + + v1 = *--lps; + + do { + v2 = *--lps; + *--lpd = (v2 << left_shift) | (v1 >> right_shift); + v1 = *--lps; + *--lpd = (v1 << left_shift) | (v2 >> right_shift); + } while (--i); + + if (n & 4) { + v2 = *--lps; + *--lpd = (v2 << left_shift) | (v1 >> right_shift); + } + + n &= 3; + + if (n) { + cps += src_offset; + do + *--cpd = *--cps; + while (--n); + } + + return; +} diff --git a/src/MSL_C.PPCEABI.bare.H/misc_io.c b/src/MSL_C.PPCEABI.bare.H/misc_io.c new file mode 100644 index 00000000..2b6c9913 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/misc_io.c @@ -0,0 +1 @@ +void __stdio_atexit(void) { } diff --git a/src/MSL_C.PPCEABI.bare.H/printf.c b/src/MSL_C.PPCEABI.bare.H/printf.c new file mode 100644 index 00000000..21d248da --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/printf.c @@ -0,0 +1,1076 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/printf.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_fp.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/direct_io.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ctype.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/scanf.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdio.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdlib.h" +#include "string.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/wchar_io.h" +#include "stdarg.h" + +extern void __num2dec(const decform*, double, decimal*); + +#define TARGET_FLOAT_BITS 64 +#define TARGET_FLOAT_BYTES (TARGET_FLOAT_BITS / 8) +#define TARGET_FLOAT_MAX_EXP LDBL_MAX_EXP +#define TARGET_FLOAT_MANT_DIG LDBL_MANT_DIG +#define TARGET_FLOAT_IMPLICIT_J_BIT 1 +#define TARGET_FLOAT_MANT_BITS \ + (TARGET_FLOAT_MANT_DIG - TARGET_FLOAT_IMPLICIT_J_BIT) +#define TARGET_FLOAT_EXP_BITS (TARGET_FLOAT_BITS - TARGET_FLOAT_MANT_BITS - 1) + +enum justification_options { + left_justification, + right_justification, + zero_fill +}; + +enum sign_options { only_minus, sign_always, space_holder }; + +enum argument_options { + normal_argument, + char_argument, + short_argument, + long_argument, + long_long_argument, + long_double_argument, + wchar_argument +}; + +typedef struct { + unsigned char justification_options; + unsigned char sign_options; + unsigned char precision_specified; + unsigned char alternate_form; + unsigned char argument_options; + unsigned char conversion_char; + int field_width; + int precision; +} print_format; + +static const char* parse_format(const char* format_string, va_list* arg, + print_format* format) +{ + print_format f; + const char* s = format_string; + int c; + int flag_found; + f.justification_options = right_justification; + f.sign_options = only_minus; + f.precision_specified = 0; + f.alternate_form = 0; + f.argument_options = normal_argument; + f.field_width = 0; + f.precision = 0; + + if ((c = *++s) == '%') { + f.conversion_char = c; + *format = f; + return ((const char*)s + 1); + } + + for (;;) { + flag_found = 1; + + switch (c) { + case '-': + f.justification_options = left_justification; + break; + case '+': + f.sign_options = sign_always; + break; + case ' ': + if (f.sign_options != sign_always) { + f.sign_options = space_holder; + } + break; + case '#': + f.alternate_form = 1; + break; + case '0': + if (f.justification_options != left_justification) { + f.justification_options = zero_fill; + } + break; + default: + flag_found = 0; + break; + } + + if (flag_found) { + c = *++s; + } else { + break; + } + } + + if (c == '*') { + if ((f.field_width = va_arg(*arg, int)) < 0) { + f.justification_options = left_justification; + f.field_width = -f.field_width; + } + + c = *++s; + } else { + while (isdigit(c)) { + f.field_width = (f.field_width * 10) + (c - '0'); + c = *++s; + } + } + + if (f.field_width > 509) { + f.conversion_char = 0xFF; + *format = f; + return ((const char*)s + 1); + } + + if (c == '.') { + f.precision_specified = 1; + + if ((c = *++s) == '*') { + if ((f.precision = va_arg(*arg, int)) < 0) { + f.precision_specified = 0; + } + + c = *++s; + } else { + while (isdigit(c)) { + f.precision = (f.precision * 10) + (c - '0'); + c = *++s; + } + } + } + + flag_found = 1; + + switch (c) { + case 'h': + f.argument_options = short_argument; + + if (s[1] == 'h') { + f.argument_options = char_argument; + c = *++s; + } + + break; + + case 'l': + f.argument_options = long_argument; + + if (s[1] == 'l') { + f.argument_options = long_long_argument; + c = *++s; + } + + break; + + case 'L': + f.argument_options = long_double_argument; + break; + default: + flag_found = 0; + break; + } + + if (flag_found) { + c = *++s; + } + + f.conversion_char = c; + + switch (c) { + case 'd': + case 'i': + case 'u': + case 'o': + case 'x': + case 'X': + if (f.argument_options == long_double_argument) { + f.conversion_char = 0xFF; + break; + } + + if (!f.precision_specified) { + f.precision = 1; + } else if (f.justification_options == zero_fill) { + f.justification_options = right_justification; + } + break; + + case 'f': + if (f.argument_options == short_argument + || f.argument_options == long_long_argument) { + f.conversion_char = 0xFF; + break; + } + + if (!f.precision_specified) { + f.precision = 6; + } + break; + + case 'g': + case 'G': + if (!f.precision) { + f.precision = 1; + } + + case 'e': + case 'E': + if (f.argument_options == short_argument + || f.argument_options == long_long_argument + || f.argument_options == char_argument) { + f.conversion_char = 0xFF; + break; + } + + if (!f.precision_specified) { + f.precision = 6; + } + break; + + case 'p': + f.conversion_char = 'x'; + f.alternate_form = 1; + f.argument_options = long_argument; + f.precision = 8; + break; + + case 'c': + if (f.argument_options == long_argument) { + f.argument_options = wchar_argument; + } else { + if (f.precision_specified + || f.argument_options != normal_argument) { + f.conversion_char = 0xFF; + } + } + + break; + + case 's': + if (f.argument_options == long_argument) { + f.argument_options = wchar_argument; + } else { + if (f.argument_options != normal_argument) { + f.conversion_char = 0xFF; + } + } + + break; + + case 'n': + if (f.argument_options == long_double_argument) { + f.conversion_char = 0xFF; + } + + break; + + default: + f.conversion_char = 0xFF; + break; + } + + *format = f; + return ((const char*)s + 1); +} + +static char* long2str(signed long num, char* buff, print_format* format) +{ + unsigned long unsigned_num, base; + char* p; + int n, digits; + int minus = 0; + unsigned_num = num; + minus = 0; + + p = buff; + *--p = 0; + digits = 0; + + if (!num && !format->precision + && !(format->alternate_form && format->conversion_char == 'o')) { + return p; + } + + switch (format->conversion_char) { + case 'd': + case 'i': + base = 10; + + if (num < 0) { + unsigned_num = -unsigned_num; + minus = 1; + } + break; + + case 'o': + base = 8; + format->sign_options = only_minus; + break; + + case 'u': + base = 10; + format->sign_options = only_minus; + break; + + case 'x': + case 'X': + base = 16; + format->sign_options = only_minus; + break; + } + + do { + n = unsigned_num % base; + unsigned_num /= base; + + if (n < 10) { + n += '0'; + } else { + n -= 10; + + if (format->conversion_char == 'x') { + n += 'a'; + } else { + n += 'A'; + } + } + + *--p = n; + ++digits; + } while (unsigned_num != 0); + + if (base == 8 && format->alternate_form && *p != '0') { + *--p = '0'; + ++digits; + } + + if (format->justification_options == zero_fill) { + format->precision = format->field_width; + + if (minus || format->sign_options != only_minus) + --format->precision; + + if (base == 16 && format->alternate_form) + format->precision -= 2; + } + + if (buff - p + format->precision > 509) + return (0); + + while (digits < format->precision) { + *--p = '0'; + ++digits; + } + + if (base == 16 && format->alternate_form) { + *--p = format->conversion_char; + *--p = '0'; + } + + if (minus) { + *--p = '-'; + } else if (format->sign_options == sign_always) { + *--p = '+'; + } else if (format->sign_options == space_holder) { + *--p = ' '; + } + + return p; +} + +static char* longlong2str(signed long long num, char* pBuf, print_format* fmt) +{ + unsigned long long unsigned_num, base; + char* p; + int n, digits; + int minus = 0; + unsigned_num = num; + minus = 0; + p = pBuf; + *--p = 0; + digits = 0; + + if (!num && !fmt->precision + && !(fmt->alternate_form && fmt->conversion_char == 'o')) { + return p; + } + + switch (fmt->conversion_char) { + case 'd': + case 'i': + base = 10; + + if (num < 0) { + unsigned_num = -unsigned_num; + minus = 1; + } + break; + case 'o': + base = 8; + fmt->sign_options = only_minus; + break; + case 'u': + base = 10; + fmt->sign_options = only_minus; + break; + case 'x': + case 'X': + base = 16; + fmt->sign_options = only_minus; + break; + } + + do { + n = unsigned_num % base; + unsigned_num /= base; + + if (n < 10) { + n += '0'; + } else { + n -= 10; + if (fmt->conversion_char == 'x') { + n += 'a'; + } else { + n += 'A'; + } + } + + *--p = n; + ++digits; + } while (unsigned_num != 0); + + if (base == 8 && fmt->alternate_form && *p != '0') { + *--p = '0'; + ++digits; + } + + if (fmt->justification_options == zero_fill) { + fmt->precision = fmt->field_width; + + if (minus || fmt->sign_options != only_minus) { + --fmt->precision; + } + + if (base == 16 && fmt->alternate_form) { + fmt->precision -= 2; + } + } + + if (pBuf - p + fmt->precision > 509) { + return 0; + } + + while (digits < fmt->precision) { + *--p = '0'; + ++digits; + } + + if (base == 16 && fmt->alternate_form) { + *--p = fmt->conversion_char; + *--p = '0'; + } + + if (minus) { + *--p = '-'; + } else if (fmt->sign_options == sign_always) { + *--p = '+'; + } else if (fmt->sign_options == space_holder) { + *--p = ' '; + } + + return p; +} + +static void round_decimal(decimal* dec, int new_length) +{ + char c; + char* p; + int carry; + + if (new_length < 0) { + return_zero: + dec->sign = 0; + dec->exp = 0; + dec->sig.length = 1; + *dec->sig.text = '0'; + return; + } + + if (new_length >= dec->sig.length) { + return; + } + + p = (char*)dec->sig.text + new_length + 1; + c = *--p - '0'; + + if (c == 5) { + char* q = &((char*)dec->sig.text)[dec->sig.length]; + + while (--q > p && *q == '0') + ; + carry = (q == p) ? p[-1] & 1 : 1; + } else { + carry = (c > 5); + } + + while (new_length != 0) { + c = *--p - '0' + carry; + + if ((carry = (c > 9)) != 0 || c == 0) { + --new_length; + } else { + *p = c + '0'; + break; + } + } + + if (carry != 0) { + dec->exp += 1; + dec->sig.length = 1; + *dec->sig.text = '1'; + return; + } else if (new_length == 0) { + goto return_zero; + } + + dec->sig.length = new_length; +} + +static char* float2str(va_list arg, char* buff, print_format* format, + int vecIndex) +{ + decimal dec; + decform form; + char* p; + char* q; + int n, digits, sign; + int int_digits, frac_digits; + long double num; + + if (format->argument_options == long_double_argument) { + num = va_arg(arg, long double); + } else { + num = va_arg(arg, double); + } + + if (format->precision > 509) { + return 0; + } + + form.style = 0; + form.digits = 0x20; + __num2dec(&form, num, &dec); + p = (char*)dec.sig.text + dec.sig.length; + + while (dec.sig.length > 1 && *--p == '0') { + --dec.sig.length; + ++dec.exp; + } + + switch (*dec.sig.text) { + case '0': + dec.exp = 0; + break; + case 'I': + if (num < 0) { + p = buff - 5; + strcpy(p, "-Inf"); + } else { + p = buff - 4; + strcpy(p, "Inf"); + } + + return p; + + case 'N': + p = buff - 4; + strcpy(p, "NaN"); + return p; + } + + dec.exp += dec.sig.length - 1; + p = buff; + *--p = 0; + + switch (format->conversion_char) { + case 'g': + case 'G': + + if (dec.sig.length > format->precision) { + round_decimal(&dec, format->precision); + } + + if (dec.exp < -4 || dec.exp >= format->precision) { + if (format->alternate_form) { + --format->precision; + } else { + format->precision = dec.sig.length - 1; + } + + if (format->conversion_char == 'g') { + format->conversion_char = 'e'; + } else { + format->conversion_char = 'E'; + } + + goto e_format; + } + + if (format->alternate_form) { + format->precision -= dec.exp + 1; + } else { + if ((format->precision = dec.sig.length - (dec.exp + 1)) < 0) { + format->precision = 0; + } + } + + goto f_format; + + case 'e': + case 'E': + e_format: + + if (dec.sig.length > format->precision + 1) { + round_decimal(&dec, format->precision + 1); + } + + n = dec.exp; + sign = '+'; + + if (n < 0) { + n = -n; + sign = '-'; + } + + for (digits = 0; n || digits < 2; ++digits) { + *--p = n % 10 + '0'; + n /= 10; + } + + *--p = sign; + *--p = format->conversion_char; + + if (buff - p + format->precision > 509) { + return 0; + } + + if (dec.sig.length < format->precision + 1) { + for (n = format->precision + 1 - dec.sig.length + 1; --n;) { + *--p = '0'; + } + } + + for (n = dec.sig.length, q = (char*)dec.sig.text + dec.sig.length; + --n;) { + *--p = *--q; + } + + if (format->precision || format->alternate_form) { + *--p = '.'; + } + + *--p = *dec.sig.text; + + if (dec.sign) + *--p = '-'; + else if (format->sign_options == sign_always) + *--p = '+'; + else if (format->sign_options == space_holder) + *--p = ' '; + + break; + + case 'f': + f_format: + + if ((frac_digits = -dec.exp + dec.sig.length - 1) < 0) + frac_digits = 0; + + if (frac_digits > format->precision) { + round_decimal(&dec, + dec.sig.length - (frac_digits - format->precision)); + + if ((frac_digits = -dec.exp + dec.sig.length - 1) < 0) + frac_digits = 0; + } + + if ((int_digits = dec.exp + 1) < 0) + int_digits = 0; + + if (int_digits + frac_digits > 509) + return 0; + + q = (char*)dec.sig.text + dec.sig.length; + + for (digits = 0; digits < (format->precision - frac_digits); ++digits) + *--p = '0'; + + for (digits = 0; digits < frac_digits && digits < dec.sig.length; + ++digits) + *--p = *--q; + + for (; digits < frac_digits; ++digits) + *--p = '0'; + + if (format->precision || format->alternate_form) + *--p = '.'; + + if (int_digits) { + for (digits = 0; digits < int_digits - dec.sig.length; ++digits) { + *--p = '0'; + } + + for (; digits < int_digits; ++digits) { + *--p = *--q; + } + } else { + *--p = '0'; + } + + if (dec.sign) { + *--p = '-'; + } else if (format->sign_options == sign_always) { + *--p = '+'; + } else if (format->sign_options == space_holder) { + *--p = ' '; + } + + break; + } + + return p; +} + +static int __pformatter(void* (*WriteProc)(void*, const char*, size_t), + void* WriteProcArg, const char* format_str, va_list arg) +{ + int num_chars, chars_written, field_width; + const char* format_ptr; + const char* curr_format; + print_format format; + signed long long_num; + signed long long long_long_num; + char buff[512]; + char* buff_ptr; + char* string_end; + char fill_char = ' '; + + format_ptr = format_str; + chars_written = 0; + + while (*format_ptr) { + if (!(curr_format = strchr(format_ptr, '%'))) { + num_chars = strlen(format_ptr); + chars_written += num_chars; + + if (num_chars + && !(*WriteProc)(WriteProcArg, format_ptr, num_chars)) { + return -1; + } + + break; + } + + num_chars = curr_format - format_ptr; + chars_written += num_chars; + + if (num_chars && !(*WriteProc)(WriteProcArg, format_ptr, num_chars)) { + return -1; + } + + format_ptr = curr_format; + format_ptr = parse_format(format_ptr, (va_list*)arg, &format); + + switch (format.conversion_char) { + case 'd': + case 'i': + if (format.argument_options == long_argument) { + long_num = va_arg(arg, signed long); + } else if (format.argument_options == long_long_argument) { + long_long_num = va_arg(arg, signed long long); + } else { + long_num = va_arg(arg, int); + } + + if (format.argument_options == short_argument) { + long_num = (signed short)long_num; + } + + if (format.argument_options == char_argument) { + long_num = (signed char)long_num; + } + + if (format.argument_options == long_long_argument) { + if (!(buff_ptr + = longlong2str(long_long_num, buff + 512, &format))) { + goto conversion_error; + } + } else { + if (!(buff_ptr = long2str(long_num, buff + 512, &format))) { + goto conversion_error; + } + } + + num_chars = buff + 512 - 1 - buff_ptr; + break; + + case 'o': + case 'u': + case 'x': + case 'X': + if (format.argument_options == long_argument) { + long_num = va_arg(arg, unsigned long); + } else if (format.argument_options == long_long_argument) { + long_long_num = va_arg(arg, signed long long); + } else { + long_num = va_arg(arg, unsigned int); + } + + if (format.argument_options == short_argument) { + long_num = (unsigned short)long_num; + } + + if (format.argument_options == char_argument) { + long_num = (unsigned char)long_num; + } + + if (format.argument_options == long_long_argument) { + if (!(buff_ptr + = longlong2str(long_long_num, buff + 512, &format))) { + goto conversion_error; + } + } else { + if (!(buff_ptr = long2str(long_num, buff + 512, &format))) { + goto conversion_error; + } + } + + num_chars = buff + 512 - 1 - buff_ptr; + break; + + case 'f': + case 'e': + case 'E': + case 'g': + case 'G': + if (!(buff_ptr = float2str(arg, buff + 512, &format, 0))) { + goto conversion_error; + } + + num_chars = buff + 512 - 1 - buff_ptr; + break; + + case 's': + if (format.argument_options == wchar_argument) { + wchar_t* wcs_ptr = va_arg(arg, wchar_t*); + + if (wcs_ptr == NULL) { + wcs_ptr = L""; + } + + if ((num_chars = wcstombs(buff, wcs_ptr, sizeof(buff))) < 0) { + goto conversion_error; + } + + buff_ptr = &buff[0]; + } else { + buff_ptr = va_arg(arg, char*); + } + + if (buff_ptr == NULL) { + buff_ptr = ""; + } + + if (format.alternate_form) { + num_chars = (unsigned char)*buff_ptr++; + + if (format.precision_specified + && num_chars > format.precision) { + num_chars = format.precision; + } + } else if (format.precision_specified) { + num_chars = format.precision; + + if ((string_end + = (char*)memchr((unsigned char*)buff_ptr, 0, num_chars)) + != 0) { + num_chars = string_end - buff_ptr; + } + } else { + num_chars = strlen(buff_ptr); + } + + break; + + case 'n': + buff_ptr = va_arg(arg, char*); + + switch (format.argument_options) { + case normal_argument: + *(int*)buff_ptr = chars_written; + break; + case short_argument: + *(signed short*)buff_ptr = chars_written; + break; + case long_argument: + *(signed long*)buff_ptr = chars_written; + break; + case long_long_argument: + *(signed long long*)buff_ptr = chars_written; + break; + } + + continue; + + case 'c': + buff_ptr = buff; + *buff_ptr = va_arg(arg, int); + num_chars = 1; + break; + + case '%': + buff_ptr = buff; + *buff_ptr = '%'; + num_chars = 1; + break; + + case 0xFF: + default: + conversion_error: + num_chars = strlen(curr_format); + chars_written += num_chars; + + if (num_chars + && !(*WriteProc)(WriteProcArg, curr_format, num_chars)) { + return -1; + } + + return chars_written; + break; + } + + field_width = num_chars; + + if (format.justification_options != left_justification) { + fill_char = (format.justification_options == zero_fill) ? '0' : ' '; + + if (((*buff_ptr == '+') || (*buff_ptr == '-')) + && (fill_char == '0')) { + if ((*WriteProc)(WriteProcArg, buff_ptr, 1) == 0) { + return -1; + } + + ++buff_ptr; + num_chars--; + } + + while (field_width < format.field_width) { + if ((*WriteProc)(WriteProcArg, &fill_char, 1) == 0) { + return -1; + } + + ++field_width; + } + } + + if (num_chars && !(*WriteProc)(WriteProcArg, buff_ptr, num_chars)) { + return -1; + } + + if (format.justification_options == left_justification) { + while (field_width < format.field_width) { + char blank = ' '; + + if ((*WriteProc)(WriteProcArg, &blank, 1) == 0) { + return -1; + } + + ++field_width; + } + } + + chars_written += field_width; + } + + return chars_written; +} + +static void* __FileWrite(void* pFile, const char* pBuffer, size_t char_num) +{ + return (fwrite(pBuffer, 1, char_num, (FILE*)pFile) == char_num ? pFile : 0); +} + +static void* __StringWrite(void* pCtrl, const char* pBuffer, size_t char_num) +{ + size_t chars; + __OutStrCtrl* ctrl = (__OutStrCtrl*)pCtrl; + void* res; + + chars = ((ctrl->CharsWritten + char_num) <= ctrl->MaxCharCount) + ? char_num + : ctrl->MaxCharCount - ctrl->CharsWritten; + res = memcpy(ctrl->CharStr + ctrl->CharsWritten, pBuffer, chars); + ctrl->CharsWritten += chars; + return res; +} + +int printf(const char* format, ...) +{ + int res; + + if (fwide(stdout, -1) >= 0) { + return -1; + } + + { + va_list args; + va_start(args, format); + res = __pformatter(&__FileWrite, (void*)stdout, format, args); + } + + return res; +} + +int vprintf(const char* format, va_list arg) +{ + int ret; + + if (fwide(stdout, -1) >= 0) { + return -1; + } + + ret = __pformatter(&__FileWrite, (void*)stdout, format, arg); + return ret; +} + +int vsnprintf(char* s, size_t n, const char* format, va_list arg) +{ + int end; + __OutStrCtrl osc; + osc.CharStr = s; + osc.MaxCharCount = n; + osc.CharsWritten = 0; + + end = __pformatter(&__StringWrite, &osc, format, arg); + + s[(end < n) ? end : n - 1] = '\0'; + + return end; +} + +int snprintf(char* s, size_t n, const char* format, ...) +{ + va_list args; + va_start(args, format); + return vsnprintf(s, n, format, args); +} + +int sprintf(char* s, const char* format, ...) +{ + va_list args; + va_start(args, format); + return vsnprintf(s, 0xFFFFFFFF, format, args); +} diff --git a/src/MSL_C.PPCEABI.bare.H/rand.c b/src/MSL_C.PPCEABI.bare.H/rand.c new file mode 100644 index 00000000..4d57c3e5 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/rand.c @@ -0,0 +1,13 @@ +#include "dolphin.h" + +// rand.c from Runtime library + +u32 next = 1; + +u32 rand(void) +{ + next = 0x41C64E6D * next + 12345; + return (next >> 16) & 0x7FFF; +} + +void srand(u32 seed) { next = seed; } diff --git a/src/MSL_C.PPCEABI.bare.H/s_atan.c b/src/MSL_C.PPCEABI.bare.H/s_atan.c new file mode 100644 index 00000000..6d72b440 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/s_atan.c @@ -0,0 +1,148 @@ + +/* @(#)s_atan.c 1.3 95/01/18 */ +/** + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* atan(x) + * Method + * 1. Reduce x to positive by atan(x) = -atan(-x). + * 2. According to the integer k=4t+0.25 chopped, t=x, the argument + * is further reduced to one of the following intervals and the + * arctangent of t is evaluated by the corresponding formula: + * + * [0,7/16] atan(x) = t-t^3*(a1+t^2*(a2+...(a10+t^2*a11)...) + * [7/16,11/16] atan(x) = atan(1/2) + atan( (t-0.5)/(1+t/2) ) + * [11/16.19/16] atan(x) = atan( 1 ) + atan( (t-1)/(1+t) ) + * [19/16,39/16] atan(x) = atan(3/2) + atan( (t-1.5)/(1+1.5t) ) + * [39/16,INF] atan(x) = atan(INF) + atan( -1/t ) + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const double atanhi[] = { +#else +static double atanhi[] = { +#endif + 4.63647609000806093515e-01, /* atan(0.5)hi 0x3FDDAC67, 0x0561BB4F */ + 7.85398163397448278999e-01, /* atan(1.0)hi 0x3FE921FB, 0x54442D18 */ + 9.82793723247329054082e-01, /* atan(1.5)hi 0x3FEF730B, 0xD281F69B */ + 1.57079632679489655800e+00, /* atan(inf)hi 0x3FF921FB, 0x54442D18 */ +}; + +#ifdef __STDC__ +static const double atanlo[] = { +#else +static double atanlo[] = { +#endif + 2.26987774529616870924e-17, /* atan(0.5)lo 0x3C7A2B7F, 0x222F65E2 */ + 3.06161699786838301793e-17, /* atan(1.0)lo 0x3C81A626, 0x33145C07 */ + 1.39033110312309984516e-17, /* atan(1.5)lo 0x3C700788, 0x7AF0CBBD */ + 6.12323399573676603587e-17, /* atan(inf)lo 0x3C91A626, 0x33145C07 */ +}; + +#ifdef __STDC__ +static const double aT[] = { +#else +static double aT[] = { +#endif + 3.33333333333329318027e-01, /* 0x3FD55555, 0x5555550D */ + -1.99999999998764832476e-01, /* 0xBFC99999, 0x9998EBC4 */ + 1.42857142725034663711e-01, /* 0x3FC24924, 0x920083FF */ + -1.11111104054623557880e-01, /* 0xBFBC71C6, 0xFE231671 */ + 9.09088713343650656196e-02, /* 0x3FB745CD, 0xC54C206E */ + -7.69187620504482999495e-02, /* 0xBFB3B0F2, 0xAF749A6D */ + 6.66107313738753120669e-02, /* 0x3FB10D66, 0xA0D03D51 */ + -5.83357013379057348645e-02, /* 0xBFADDE2D, 0x52DEFD9A */ + 4.97687799461593236017e-02, /* 0x3FA97B4B, 0x24760DEB */ + -3.65315727442169155270e-02, /* 0xBFA2B444, 0x2C6A6C2F */ + 1.62858201153657823623e-02, /* 0x3F90AD3A, 0xE322DA11 */ +}; + +#ifdef __STDC__ +static const double +#else +static double +#endif + one + = 1.0, + huge = 1.0e300; + +#ifdef __STDC__ +double atan(double x) +#else +double atan(x) +double x; +#endif +{ + double w, s1, s2, z; + int ix, hx, id; + + hx = __HI(x); + ix = hx & 0x7fffffff; + if (ix >= 0x44100000) { /* if |x| >= 2^66 */ + if (ix > 0x7ff00000 || (ix == 0x7ff00000 && (__LO(x) != 0))) + return x + x; /* NaN */ + if (hx > 0) + return atanhi[3] + atanlo[3]; + else + return -atanhi[3] - atanlo[3]; + } + if (ix < 0x3fdc0000) { /* |x| < 0.4375 */ + if (ix < 0x3e200000) { /* |x| < 2^-29 */ + if (huge + x > one) + return x; /* raise inexact */ + } + id = -1; + } else { + x = fabs__Fd(x); + if (ix < 0x3ff30000) { /* |x| < 1.1875 */ + if (ix < 0x3fe60000) { /* 7/16 <=|x|<11/16 */ + id = 0; + x = (2.0 * x - one) / (2.0 + x); + } else { /* 11/16<=|x|< 19/16 */ + id = 1; + x = (x - one) / (x + one); + } + } else { + if (ix < 0x40038000) { /* |x| < 2.4375 */ + id = 2; + x = (x - 1.5) / (one + 1.5 * x); + } else { /* 2.4375 <= |x| < 2^66 */ + id = 3; + x = -1.0 / x; + } + } + } + /* end of argument reduction */ + z = x * x; + w = z * z; + /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */ + s1 = z + * (aT[0] + + w + * (aT[2] + + w * (aT[4] + w * (aT[6] + w * (aT[8] + w * aT[10]))))); + s2 = w * (aT[1] + w * (aT[3] + w * (aT[5] + w * (aT[7] + w * aT[9])))); + if (id < 0) + return x - x * (s1 + s2); + else { + z = atanhi[id] - ((x * (s1 + s2) - atanlo[id]) - x); + return (hx < 0) ? -z : z; + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/s_frexp.c b/src/MSL_C.PPCEABI.bare.H/s_frexp.c new file mode 100644 index 00000000..a7bb05c4 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/s_frexp.c @@ -0,0 +1,58 @@ +/* @(#)s_frexp.c 1.4 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * for non-zero x + * x = frexp(arg,&exp); + * return a double fp quantity x such that 0.5 <= |x| <1.0 + * and the corresponding binary exponent "exp". That is + * arg = x*2^exp. + * If arg is inf, 0.0, or NaN, then frexp(arg,&exp) returns arg + * with *exp=0. + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const double +#else +static double +#endif + two54 + = 1.80143985094819840000e+16; /* 0x43500000, 0x00000000 */ + +#ifdef __STDC__ +double frexp(double x, int* eptr) +#else +double frexp(x, eptr) +double x; +int* eptr; +#endif +{ + int hx, ix, lx; + hx = __HI(x); + ix = 0x7fffffff & hx; + lx = __LO(x); + *eptr = 0; + if (ix >= 0x7ff00000 || ((ix | lx) == 0)) + return x; /* 0,inf,nan */ + if (ix < 0x00100000) { /* subnormal */ + x *= two54; + hx = __HI(x); + ix = hx & 0x7fffffff; + *eptr = -54; + } + *eptr += (ix >> 20) - 1022; + hx = (hx & 0x800fffff) | 0x3fe00000; + __HI(x) = hx; + return x; +} diff --git a/src/MSL_C.PPCEABI.bare.H/scanf.c b/src/MSL_C.PPCEABI.bare.H/scanf.c new file mode 100644 index 00000000..a8f273ec --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/scanf.c @@ -0,0 +1,34 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/scanf.h" + +int __StringRead(void* pPtr, int ch, int act) +{ + char ret; + __InStrCtrl* Iscp = (__InStrCtrl*)pPtr; + + switch (act) { + case __GetAChar: + ret = *(Iscp->NextChar); + + if (ret == '\0') { + Iscp->NullCharDetected = 1; + return -1; + } else { + Iscp->NextChar++; + return ret; + } + + case __UngetAChar: + if (Iscp->NullCharDetected == 0) { + Iscp->NextChar--; + } else { + Iscp->NullCharDetected = 0; + } + + return ch; + + case __TestForError: + return Iscp->NullCharDetected; + } + + return 0; +} diff --git a/src/MSL_C.PPCEABI.bare.H/string.c b/src/MSL_C.PPCEABI.bare.H/string.c new file mode 100644 index 00000000..833447df --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/string.c @@ -0,0 +1,257 @@ +#include "string.h" + +static int K1 = 0x80808080; +static int K2 = 0xFEFEFEFF; + +size_t strlen(const char* str) +{ + size_t len = -1; + unsigned char* p = (unsigned char*)str - 1; + + do { + len++; + } while (*++p); + + return len; +} + +char* strcpy(char* dst, const char* src) +{ + register unsigned char *destb, *fromb; + register unsigned long w, t, align; + register unsigned int k1; + register unsigned int k2; + + fromb = (unsigned char*)src; + destb = (unsigned char*)dst; + + if ((align = ((int)fromb & 3)) != ((int)destb & 3)) { + goto bytecopy; + } + + if (align) { + if ((*destb = *fromb) == 0) { + return dst; + } + + for (align = 3 - align; align; align--) { + if ((*(++destb) = *(++fromb)) == 0) { + return dst; + } + } + ++destb; + ++fromb; + } + + k1 = K1; + k2 = K2; + + w = *((int*)(fromb)); + + t = w + k2; + + t &= k1; + if (t) { + goto bytecopy; + } + --((int*)(destb)); + + do { + *(++((int*)(destb))) = w; + w = *(++((int*)(fromb))); + + t = w + k2; + t &= k1; + if (t) { + goto adjust; + } + } while (1); + +adjust: + ++((int*)(destb)); + +bytecopy: + if ((*destb = *fromb) == 0) { + return dst; + } + + do { + if ((*(++destb) = *(++fromb)) == 0) { + return dst; + } + } while (1); + + return dst; +} + +char* strncpy(char* dst, const char* src, size_t n) +{ + const unsigned char* p = (const unsigned char*)src - 1; + unsigned char* q = (unsigned char*)dst - 1; + + n++; + while (--n) { + if (!(*++q = *++p)) { + while (--n) { + *++q = 0; + } + break; + } + } + + return dst; +} + +char* strcat(char* dst, const char* src) +{ + const unsigned char* p = (unsigned char*)src - 1; + unsigned char* q = (unsigned char*)dst - 1; + + while (*++q) { } + + q--; + + while (*++q = *++p) { } + + return dst; +} + +int strcmp(const char* str1, const char* str2) +{ + register unsigned char* left = (unsigned char*)str1; + register unsigned char* right = (unsigned char*)str2; + unsigned long align, l1, r1, x; + + l1 = *left; + r1 = *right; + if (l1 - r1) { + return l1 - r1; + } + + if ((align = ((int)left & 3)) != ((int)right & 3)) { + goto bytecopy; + } + + if (align) { + if (l1 == 0) { + return 0; + } + for (align = 3 - align; align; align--) { + l1 = *(++left); + r1 = *(++right); + if (l1 - r1) { + return l1 - r1; + } + if (l1 == 0) { + return 0; + } + } + left++; + right++; + } + + l1 = *(int*)left; + r1 = *(int*)right; + x = l1 + K2; + if (x & K1) { + goto adjust; + } + + while (l1 == r1) { + l1 = *(++((int*)(left))); + r1 = *(++((int*)(right))); + x = l1 + K2; + if (x & K1) { + goto adjust; + } + } + + if (l1 > r1) { + return 1; + } + return -1; + +adjust: + l1 = *left; + r1 = *right; + if (l1 - r1) { + return l1 - r1; + } + +bytecopy: + if (l1 == 0) { + return 0; + } + + do { + l1 = *(++left); + r1 = *(++right); + if (l1 - r1) { + return l1 - r1; + } + if (l1 == 0) { + return 0; + } + } while (1); +} + +char* strchr(const char* str, int c) +{ + const unsigned char* p = (unsigned char*)str - 1; + unsigned long chr = (c & 0xFF); + + unsigned long ch; + while (ch = *++p) { + if (ch == chr) { + return (char*)p; + } + } + + return chr ? NULL : (char*)p; +} + +char* strrchr(const char* str, int c) +{ + const unsigned char* p = (unsigned char*)str - 1; + const unsigned char* q = NULL; + unsigned long chr = (c & 0xFF); + + unsigned long ch; + while (ch = *++p) { + if (ch == chr) { + q = p; + } + } + + if (q != NULL) { + return (char*)q; + } + + return chr ? NULL : (char*)p; +} + +char* strstr(const char* str, const char* pat) +{ + const unsigned char* s1 = (const unsigned char*)str - 1; + const unsigned char* p1 = (const unsigned char*)pat - 1; + unsigned long firstc, c1, c2; + + if ((pat == 0) || (!(firstc = *++p1))) { + return (char*)str; + } + + while (c1 = *++s1) { + if (c1 == firstc) { + const unsigned char* s2 = s1 - 1; + const unsigned char* p2 = p1 - 1; + + while ((c1 = *++s2) == (c2 = *++p2) && c1) + ; + + if (!c2) + return (char*)s1; + } + } + + return NULL; +} diff --git a/src/MSL_C.PPCEABI.bare.H/strtoul.c b/src/MSL_C.PPCEABI.bare.H/strtoul.c new file mode 100644 index 00000000..e40b9fac --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/strtoul.c @@ -0,0 +1,199 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/strtoul.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ctype.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/errno.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/limits.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/scanf.h" + +enum scan_states { + start = 0x01, + check_for_zero = 0x02, + leading_zero = 0x04, + need_digit = 0x08, + digit_loop = 0x10, + finished = 0x20, + failure = 0x40 +}; + +#define final_state(scan_state) (scan_state & (finished | failure)) +#define success(scan_state) \ + (scan_state & (leading_zero | digit_loop | finished)) +#define fetch() (count++, (*ReadProc)(ReadProcArg, 0, __GetAChar)) +#define unfetch(c) (*ReadProc)(ReadProcArg, c, __UngetAChar) + +unsigned long __strtoul(int base, int max_width, + int (*ReadProc)(void*, int, int), void* ReadProcArg, + int* chars_scanned, int* negative, int* overflow) +{ + int scan_state = start; + int count = 0; + unsigned long value = 0; + unsigned long value_max = 0; + int c; + + *negative = *overflow = 0; + + if (base < 0 || base == 1 || base > 36 || max_width < 1) { + scan_state = failure; + } else { + c = fetch(); + } + + if (base != 0) + value_max = ULONG_MAX / base; + + while (count <= max_width && c != -1 && !final_state(scan_state)) { + switch (scan_state) { + case start: + if (isspace(c)) { + c = fetch(); + break; + } + + if (c == '+') { + c = fetch(); + } else if (c == '-') { + c = fetch(); + *negative = 1; + } + + scan_state = check_for_zero; + break; + + case check_for_zero: + if (base == 0 || base == 16) { + if (c == '0') { + scan_state = leading_zero; + c = fetch(); + break; + } + } + + scan_state = need_digit; + break; + + case 4: + if (c == 'X' || c == 'x') { + base = 16; + scan_state = need_digit; + c = fetch(); + break; + } + + if (base == 0) + base = 8; + + scan_state = digit_loop; + break; + + case need_digit: + case digit_loop: + if (base == 0) + base = 10; + + if (!value_max) { + value_max = ULONG_MAX / base; + } + + if (isdigit(c)) { + if ((c -= '0') >= base) { + if (scan_state == digit_loop) + scan_state = finished; + else + scan_state = failure; + + c += '0'; + break; + } + } else if (!isalpha(c) || (toupper(c) - 'A' + 10) >= base) { + if (scan_state == digit_loop) + scan_state = finished; + else + scan_state = failure; + + break; + } else { + c = toupper(c) - 'A' + 10; + } + + if (value > value_max) + *overflow = 1; + + value *= base; + + if (c > (ULONG_MAX - value)) + *overflow = 1; + + value += c; + scan_state = digit_loop; + c = fetch(); + break; + } + } + + if (!success(scan_state)) { + value = 0; + count = 0; + } else { + count--; + } + + *chars_scanned = count; + + unfetch(c); + + return value; +} + +unsigned long strtoul(const char* str, char** end, int base) +{ + unsigned long value; + int count, negative, overflow; + + __InStrCtrl isc; + isc.NextChar = (char*)str; + isc.NullCharDetected = 0; + + value = __strtoul(base, 0x7FFFFFFF, &__StringRead, (void*)&isc, &count, + &negative, &overflow); + + if (end) { + *end = (char*)str + count; + } + + if (overflow) { + value = ULONG_MAX; + errno = 0x22; + } else if (negative) { + value = -value; + } + + return value; +} + +long strtol(const char* str, char** end, int base) +{ + unsigned long uvalue; + long svalue; + int count, negative, overflow; + + __InStrCtrl isc; + isc.NextChar = (char*)str; + isc.NullCharDetected = 0; + + uvalue = __strtoul(base, 0x7FFFFFFF, &__StringRead, (void*)&isc, &count, + &negative, &overflow); + + if (end) { + *end = (char*)str + count; + } + + if (overflow || (!negative && uvalue > LONG_MAX) + || (negative && uvalue > -LONG_MIN)) { + svalue = (negative ? -LONG_MIN : LONG_MAX); + errno = ERANGE; + } else { + svalue = (negative ? (long)-uvalue : (long)uvalue); + } + + return svalue; +} diff --git a/src/MSL_C.PPCEABI.bare.H/w_atan2.c b/src/MSL_C.PPCEABI.bare.H/w_atan2.c new file mode 100644 index 00000000..42f1b297 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/w_atan2.c @@ -0,0 +1,39 @@ +/* @(#)w_atan2.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* + * wrapper atan2(y,x) + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +double atan2(double y, double x) /* wrapper atan2 */ +#else +double atan2(y, x) /* wrapper atan2 */ +double y, x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_atan2(y, x); +#else + double z; + z = __ieee754_atan2(y, x); + if (_LIB_VERSION == _IEEE_ || isnan(x) || isnan(y)) + return z; + if (x == 0.0 && y == 0.0) { + return __kernel_standard(y, x, 3); /* atan2(+-0,+-0) */ + } else + return z; +#endif +} diff --git a/src/MSL_C.PPCEABI.bare.H/wchar_io.c b/src/MSL_C.PPCEABI.bare.H/wchar_io.c new file mode 100644 index 00000000..4d5d32b5 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/wchar_io.c @@ -0,0 +1,22 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/wchar_io.h" + +int fwide(FILE* file, int mode) +{ + if (file->file_mode.file_kind == __closed_file) { + return 0; + } + + switch (file->file_mode.file_orientation) { + case UNORIENTED: + if (mode > 0) { + file->file_mode.file_orientation = WIDE_ORIENTED; + } else if (mode < 0) { + file->file_mode.file_orientation = CHAR_ORIENTED; + } + return mode; + case WIDE_ORIENTED: + return 1; + case CHAR_ORIENTED: + return -1; + } +} diff --git a/src/TRK_MINNOW_DOLPHIN/__exception.s b/src/TRK_MINNOW_DOLPHIN/__exception.s new file mode 100644 index 00000000..a5c63065 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/__exception.s @@ -0,0 +1,2018 @@ +.include "macros.inc" +.file "__exception.s" + +# 0x80003534..0x80005468 | size: 0x1F34 +.section .init, "ax" +.balign 4 +# .init:0x0 | 0x80003534 | size: 0x0 +.sym gTRKInterruptVectorTable, global + +# .init:0x0 | 0x80003534 | size: 0x1F34 +.fn pad_00_80003534_init, local +.4byte 0x4D657472 +xoris r23, r27, 0x6572 +xori r19, r27, 0x2054 +ori r18, r11, 0x6765 +andis. r0, r1, 0x5265 +andi. r9, r27, 0x6465 +xoris r20, r19, 0x204b +oris r18, r11, 0x6e65 +xoris r0, r1, 0x666f +andi. r0, r17, 0x506f +andis. r5, r27, 0x7250 +.L_80003560: + .4byte 0x43000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + b 0x1e34 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mfsrr0 r2 + icbi r0, r2 + mfdar r2 + dcbi r0, r2 + mfsprg r2, 1 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x200 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x300 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 +# .init:0x348 | 0x8000387C | size: 0x0 +.sym lbl_8000387C, global + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 +# .init:0x3AC | 0x800038E0 | size: 0x0 +.sym lbl_800038E0, global + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x400 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x500 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x600 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x700 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x800 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x900 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0xc00 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0xd00 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0xe00 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + b .L_80004488 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0xf20 + rfi +.L_80004488: + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0xf00 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mfcr r2 + mtsprg 2, r2 + mfmsr r2 + andis. r2, r2, 0x2 + beq .L_80004564 + mfmsr r2 + xoris r2, r2, 0x2 + sync + mtmsr r2 + sync + mtsprg 1, r2 +.L_80004564: + mfsprg r2, 2 + mtcrf 255, r2 + mfsprg r2, 1 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1000 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mfcr r2 + mtsprg 2, r2 + mfmsr r2 + andis. r2, r2, 0x2 + beq .L_80004664 + mfmsr r2 + xoris r2, r2, 0x2 + sync + mtmsr r2 + sync + mtsprg 1, r2 +.L_80004664: + mfsprg r2, 2 + mtcrf 255, r2 + mfsprg r2, 1 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1100 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mfcr r2 + mtsprg 2, r2 + mfmsr r2 + andis. r2, r2, 0x2 + beq .L_80004764 + mfmsr r2 + xoris r2, r2, 0x2 + sync + mtmsr r2 + sync + mtsprg 1, r2 +.L_80004764: + mfsprg r2, 2 + mtcrf 255, r2 + mfsprg r2, 1 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1200 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1300 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1400 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1600 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1700 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1c00 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1d00 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1e00 + rfi + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + .4byte 0x00000000 + mtsprg 1, r2 + mtsprg 2, r3 + mtsprg 3, r4 + mfsrr0 r2 + mfsrr1 r4 + mfmsr r3 + ori r3, r3, 0x30 + mtsrr1 r3 + lis r3, 0x800f + ori r3, r3, 0x4a0 + mtsrr0 r3 + li r3, 0x1f00 + rfi +.endfn pad_00_80003534_init diff --git a/src/TRK_MINNOW_DOLPHIN/dispatch.c b/src/TRK_MINNOW_DOLPHIN/dispatch.c new file mode 100644 index 00000000..76014bb6 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/dispatch.c @@ -0,0 +1,43 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h" + +u32 gTRKDispatchTableSize; + +struct DispatchEntry { + int (*fn)(TRKBuffer*); +}; + +struct DispatchEntry gTRKDispatchTable[33] = { + { &TRKDoUnsupported }, { &TRKDoConnect }, { &TRKDoDisconnect }, + { &TRKDoReset }, { &TRKDoVersions }, { &TRKDoSupportMask }, + { &TRKDoCPUType }, { &TRKDoUnsupported }, { &TRKDoUnsupported }, + { &TRKDoUnsupported }, { &TRKDoUnsupported }, { &TRKDoUnsupported }, + { &TRKDoUnsupported }, { &TRKDoUnsupported }, { &TRKDoUnsupported }, + { &TRKDoUnsupported }, { &TRKDoReadMemory }, { &TRKDoWriteMemory }, + { &TRKDoReadRegisters }, { &TRKDoWriteRegisters }, { &TRKDoUnsupported }, + { &TRKDoUnsupported }, { &TRKDoFlushCache }, { &TRKDoUnsupported }, + { &TRKDoContinue }, { &TRKDoStep }, { &TRKDoStop }, + { &TRKDoUnsupported }, { &TRKDoUnsupported }, { &TRKDoUnsupported }, + { &TRKDoUnsupported }, { &TRKDoUnsupported }, +}; + +DSError TRKInitializeDispatcher() +{ + gTRKDispatchTableSize = 32; + return DS_NoError; +} + +DSError TRKDispatchMessage(TRKBuffer* buffer) +{ + DSError error; + u8 command; + + error = DS_DispatchError; + TRKSetBufferPosition(buffer, 0); + TRKReadBuffer1_ui8(buffer, &command); + if (command < gTRKDispatchTableSize) { + error = gTRKDispatchTable[command].fn(buffer); + } + return error; +} diff --git a/src/TRK_MINNOW_DOLPHIN/dolphin_trk.c b/src/TRK_MINNOW_DOLPHIN/dolphin_trk.c new file mode 100644 index 00000000..31153cd6 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/dolphin_trk.c @@ -0,0 +1,137 @@ +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.h" +#include "dolphin/ar.h" +#include "stddef.h" + +#define EXCEPTIONMASK_ADDR 0x80000044 + +static u32 lc_base; + +static u32 TRK_ISR_OFFSETS[15] = { PPC_SystemReset, + PPC_MachineCheck, + PPC_DataStorage, + PPC_InstructionStorage, + PPC_ExternalInterrupt, + PPC_Alignment, + PPC_Program, + PPC_FloatingPointUnavaiable, + PPC_Decrementer, + PPC_SystemCall, + PPC_Trace, + PPC_PerformanceMonitor, + PPC_InstructionAddressBreakpoint, + PPC_SystemManagementInterrupt, + PPC_ThermalManagementInterrupt }; + +__declspec(section ".init") void __TRK_reset(void) { __TRK_copy_vectors(); } + +asm void InitMetroTRK() +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + + addi r1, r1, -4 + stw r3, 0(r1) + lis r3, gTRKCPUState@h + ori r3, r3, gTRKCPUState@l + stmw r0, ProcessorState_PPC.Default.GPR(r3) //Save the gprs + lwz r4, 0(r1) + addi r1, r1, 4 + stw r1, ProcessorState_PPC.Default.GPR[1](r3) + stw r4, ProcessorState_PPC.Default.GPR[3](r3) + mflr r4 + stw r4, ProcessorState_PPC.Default.LR(r3) + stw r4, ProcessorState_PPC.Default.PC(r3) + mfcr r4 + stw r4, ProcessorState_PPC.Default.CR(r3) + //??? + mfmsr r4 + ori r3, r4, (1 << (31 - 16)) + xori r3, r3, (1 << (31 - 16)) + mtmsr r3 + mtsrr1 r4 //Copy msr to srr1 + //Save misc registers to gTRKCPUState + bl TRKSaveExtended1Block + lis r3, gTRKCPUState@h + ori r3, r3, gTRKCPUState@l + lmw r0, ProcessorState_PPC.Default.GPR(r3) //Restore the gprs + //Reset IABR and DABR + li r0, 0 + mtspr 0x3f2, r0 + mtspr 0x3f5, r0 + //Restore stack pointer + lis r1, 0x80426008@h + ori r1, r1, 0x80426008@l + mr r3, r5 + bl InitMetroTRKCommTable //Initialize comm table + /* + If InitMetroTRKCommTable returned 1 (failure), an invalid hardware + id or the id for GDEV was somehow passed. Since only BBA or NDEV + are supported, we return early. Otherwise, we proceed with + starting up TRK. + */ + cmpwi r3, 1 + bne initCommTableSuccess + /* + BUG: The code probably orginally reloaded gTRKCPUState here, but + as is it will read the returned value of InitMetroTRKCommTable + as a TRKCPUState struct pointer, causing the CPU to return to + a garbage code address. + */ + lwz r4, ProcessorState_PPC.Default.LR(r3) + mtlr r4 + lmw r0, ProcessorState_PPC.Default.GPR(r3) //Restore the gprs + blr +initCommTableSuccess: + b TRK_main //Jump to TRK_main +#endif // clang-format on +} + +void EnableMetroTRKInterrupts(void) { EnableEXI2Interrupts(); } + +u32 TRKTargetTranslate(u32 param_0) +{ + if (param_0 >= lc_base) { + if ((param_0 < lc_base + 0x4000) + && ((gTRKCPUState.Extended1.DBAT3U & 3) != 0)) { + return param_0; + } + } + + return param_0 & 0x3FFFFFFF | 0x80000000; +} + +extern u8 gTRKInterruptVectorTable[]; + +void TRK_copy_vector(u32 offset) +{ + void* destPtr = (void*)TRKTargetTranslate(offset); + TRK_memcpy(destPtr, gTRKInterruptVectorTable + offset, 0x100); + TRK_flush_cache(destPtr, 0x100); +} + +void __TRK_copy_vectors(void) +{ + int i; + u32 mask; + + mask = *(u32*)TRKTargetTranslate(0x44); + + for (i = 0; i <= 14; ++i) { + if (mask & (1 << i)) { + TRK_copy_vector(TRK_ISR_OFFSETS[i]); + } + } +} + +DSError TRKInitializeTarget() +{ + gTRKState.isStopped = TRUE; + gTRKState.msr = __TRK_get_MSR(); + lc_base = 0xE0000000; + return DS_NoError; +} diff --git a/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c b/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c new file mode 100644 index 00000000..9a55362b --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c @@ -0,0 +1,116 @@ +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" +#include "OdemuExi2/odemuexi/DebuggerDriver.h" +#include "amcstubs/AmcExi2Stubs.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +DBCommTable gDBCommTable = {}; + +asm void TRKLoadContext(OSContext* ctx, u32) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + lwz r0, OSContext.gpr[0](r3) + lwz r1, OSContext.gpr[1](r3) + lwz r2, OSContext.gpr[2](r3) + lhz r5, OSContext.state(r3) + rlwinm. r6, r5, 0, 0x1e, 0x1e + beq lbl_80371C1C + rlwinm r5, r5, 0, 0x1f, 0x1d + sth r5, OSContext.state(r3) + lmw r5, OSContext.gpr[5](r3) + b lbl_80371C20 +lbl_80371C1C: + lmw r13, OSContext.gpr[13](r3) +lbl_80371C20: + mr r31, r3 + mr r3, r4 + lwz r4, OSContext.cr(r31) + mtcrf 0xff, r4 + lwz r4, OSContext.lr(r31) + mtlr r4 + lwz r4, OSContext.ctr(r31) + mtctr r4 + lwz r4, OSContext.xer(r31) + mtxer r4 + mfmsr r4 + rlwinm r4, r4, 0, 0x11, 0xf //Turn off external exceptions + rlwinm r4, r4, 0, 0x1f, 0x1d //Turn off recoverable exception flag + mtmsr r4 + mtsprg 1, r2 + lwz r4, OSContext.gpr[3](r31) + mtsprg 2, r4 + lwz r4, OSContext.gpr[4](r31) + mtsprg 3, r4 + lwz r2, OSContext.srr0(r31) + lwz r4, OSContext.srr1(r31) + lwz r31, OSContext.gpr[31](r31) + b TRKInterruptHandler +#endif // clang-format on +} + +void TRKEXICallBack(__OSInterrupt param_0, OSContext* ctx) +{ + OSEnableScheduler(); + TRKLoadContext(ctx, 0x500); +} + +int InitMetroTRKCommTable(int hwId) +{ + int result; + + if (hwId == HARDWARE_GDEV) { + result = Hu_IsStub(); + + gDBCommTable.initialize_func = DBInitComm; + gDBCommTable.init_interrupts_func = DBInitInterrupts; + gDBCommTable.peek_func = DBQueryData; + gDBCommTable.read_func = DBRead; + gDBCommTable.write_func = DBWrite; + gDBCommTable.open_func = DBOpen; + gDBCommTable.close_func = DBClose; + } else { + result = AMC_IsStub(); + + gDBCommTable.initialize_func = EXI2_Init; + gDBCommTable.init_interrupts_func = EXI2_EnableInterrupts; + gDBCommTable.peek_func = EXI2_Poll; + gDBCommTable.read_func = EXI2_ReadN; + gDBCommTable.write_func = EXI2_WriteN; + gDBCommTable.open_func = EXI2_Reserve; + gDBCommTable.close_func = EXI2_Unreserve; + } + + return result; +} + +void TRKUARTInterruptHandler() { } + +DSError TRKInitializeIntDrivenUART(u32 param_0, u32 param_1, u32 param_2, + volatile u8** param_3) +{ + gDBCommTable.initialize_func(param_3, TRKEXICallBack); + return DS_NoError; +} + +void EnableEXI2Interrupts(void) { gDBCommTable.init_interrupts_func(); } + +int TRKPollUART(void) { return gDBCommTable.peek_func(); } + +UARTError TRKReadUARTN(void* bytes, u32 length) +{ + int readErr = gDBCommTable.read_func(bytes, length); + return readErr == 0 ? 0 : -1; +} + +UARTError TRKWriteUARTN(const void* bytes, u32 length) +{ + int writeErr = gDBCommTable.write_func(bytes, length); + return writeErr == 0 ? 0 : -1; +} + +void ReserveEXI2Port(void) { gDBCommTable.open_func(); } + +void UnreserveEXI2Port(void) { gDBCommTable.close_func(); } + +void TRK_board_display(char* str) { OSReport(str); } diff --git a/src/TRK_MINNOW_DOLPHIN/flush_cache.c b/src/TRK_MINNOW_DOLPHIN/flush_cache.c new file mode 100644 index 00000000..116d8d72 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/flush_cache.c @@ -0,0 +1,26 @@ +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.h" + +asm void TRK_flush_cache(register void* param_1, register int param_2) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + + lis r5, 0xFFFF + ori r5, r5, 0xFFF1 + and r5, r5, param_1 + subf r3, r5, param_1 + add r4, param_2, r3 + +loop: + dcbst 0, r5 + dcbf 0, r5 + sync + icbi 0, r5 + addic r5, r5, 8 + addic. r4, r4, -8 + bge loop + + isync + blr +#endif // clang-format on +} diff --git a/src/TRK_MINNOW_DOLPHIN/main_TRK.c b/src/TRK_MINNOW_DOLPHIN/main_TRK.c new file mode 100644 index 00000000..0ce137a8 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/main_TRK.c @@ -0,0 +1,17 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/main_TRK.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h" + +static DSError TRK_mainError; + +DSError TRK_main(void) +{ + TRK_mainError = TRKInitializeNub(); + + if (TRK_mainError == DS_NoError) { + TRKNubWelcome(); + TRKNubMainLoop(); + } + + TRK_mainError = TRKTerminateNub(); + return TRK_mainError; +} diff --git a/src/TRK_MINNOW_DOLPHIN/mainloop.c b/src/TRK_MINNOW_DOLPHIN/mainloop.c new file mode 100644 index 00000000..62783f82 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/mainloop.c @@ -0,0 +1,70 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" + +void TRKHandleRequestEvent(TRKEvent* event) +{ + TRKBuffer* buffer = TRKGetBuffer(event->msgBufID); + TRKDispatchMessage(buffer); +} + +void TRKHandleSupportEvent(TRKEvent* event) { TRKTargetSupportRequest(); } + +void TRKIdle() +{ + if (TRKTargetStopped() == FALSE) { + TRKTargetContinue(); + } +} + +void TRKNubMainLoop(void) +{ + void* msg; + TRKEvent event; + BOOL isShutdownRequested; + BOOL isNewInput; + + isShutdownRequested = FALSE; + isNewInput = FALSE; + while (isShutdownRequested == FALSE) { + if (TRKGetNextEvent(&event) != FALSE) { + isNewInput = FALSE; + + switch (event.eventType) { + case NUBEVENT_Null: + break; + + case NUBEVENT_Request: + TRKHandleRequestEvent(&event); + break; + + case NUBEVENT_Shutdown: + isShutdownRequested = TRUE; + break; + + case NUBEVENT_Breakpoint: + case NUBEVENT_Exception: + TRKTargetInterrupt(&event); + break; + + case NUBEVENT_Support: + TRKHandleSupportEvent(&event); + break; + } + + TRKDestructEvent(&event); + continue; + } + + if ((isNewInput == FALSE) || (*(u8*)gTRKInputPendingPtr != '\0')) { + isNewInput = TRUE; + TRKGetInput(); + continue; + } + + TRKIdle(); + isNewInput = FALSE; + } +} diff --git a/src/TRK_MINNOW_DOLPHIN/mem_TRK.c b/src/TRK_MINNOW_DOLPHIN/mem_TRK.c new file mode 100644 index 00000000..b25259fe --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/mem_TRK.c @@ -0,0 +1,83 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.h" +#include "dolphin/types.h" + +void TRK_fill_mem(void *dest, int value, unsigned long length) +{ +#define cDest ((unsigned char *)dest) +#define lDest ((unsigned long *)dest) + unsigned long val = (unsigned char)value; + unsigned long i; + lDest = (unsigned long *)dest; + cDest = (unsigned char *)dest; + + cDest--; + + if (length >= 32) { + i = ~(unsigned long)dest & 3; + + if (i) { + length -= i; + do { + *++cDest = val; + } while (--i); + } + + if (val) { + val |= val << 24 | val << 16 | val << 8; + } + + lDest = (unsigned long *)(cDest + 1) - 1; + + i = length >> 5; + if (i) { + do { + *++lDest = val; + *++lDest = val; + *++lDest = val; + *++lDest = val; + *++lDest = val; + *++lDest = val; + *++lDest = val; + *++lDest = val; + } while (--i); + } + + i = (length & 31) >> 2; + + if (i) { + do { + *++lDest = val; + } while (--i); + } + + cDest = (unsigned char *)(lDest + 1) - 1; + + length &= 3; + } + + if (length) { + do { + *++cDest = val; + } while (--length); + } + +#undef cDest +#undef lDest +} + +__declspec(section ".init") void *TRK_memcpy(void *dst, const void *src, size_t n) +{ + const char *p; + char *q; + + for (p = (const char *)src - 1, q = (char *)dst - 1, n++; --n;) + *++q = *++p; + + return dst; +} + +__declspec(section ".init") void *TRK_memset(void *dst, int val, size_t n) +{ + TRK_fill_mem(dst, val, n); + return dst; +} diff --git a/src/TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c b/src/TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c new file mode 100644 index 00000000..04d4d3a9 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c @@ -0,0 +1,248 @@ +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" + +extern u8 gTRKRestoreFlags[9 + 3 /* padding */]; + +asm void TRKSaveExtended1Block() +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + lis r2, gTRKCPUState@h /* 0x8044F338@h */ + ori r2, r2, gTRKCPUState@l /* 0x8044F338@l */ + mfsr r16, 0 + mfsr r17, 1 + mfsr r18, 2 + mfsr r19, 3 + mfsr r20, 4 + mfsr r21, 5 + mfsr r22, 6 + mfsr r23, 7 + mfsr r24, 8 + mfsr r25, 9 + mfsr r26, 0xa + mfsr r27, 0xb + mfsr r28, 0xc + mfsr r29, 0xd + mfsr r30, 0xe + mfsr r31, 0xf + stmw r16, 0x1a8(r2) + mftb r10, 0x10c + mftbu r11 + mfspr r12, 0x3f0 + mfspr r13, 0x3f1 + mfspr r14, 0x1b + mfpvr r15 + mfibatu r16, 0 + mfibatl r17, 0 + mfibatu r18, 1 + mfibatl r19, 1 + mfibatu r20, 2 + mfibatl r21, 2 + mfibatu r22, 3 + mfibatl r23, 3 + mfdbatu r24, 0 + mfdbatl r25, 0 + mfdbatu r26, 1 + mfdbatl r27, 1 + mfdbatu r28, 2 + mfdbatl r29, 2 + mfdbatu r30, 3 + mfdbatl r31, 3 + stmw r10, 0x1e8(r2) + mfspr r22, 0x19 + mfdar r23 + mfdsisr r24 + mfspr r25, 0x110 + mfspr r26, 0x111 + mfspr r27, 0x112 + mfspr r28, 0x113 + li r29, 0 + mfspr r30, 0x3f2 + mfspr r31, 0x11a + stmw r22, 0x25c(r2) + mfspr r20, 0x390 + mfspr r21, 0x391 + mfspr r22, 0x392 + mfspr r23, 0x393 + mfspr r24, 0x394 + mfspr r25, 0x395 + mfspr r26, 0x396 + mfspr r27, 0x397 + mfspr r28, 0x398 + mfspr r29, 0x399 + mfspr r30, 0x39a + mfspr r31, 0x39b + stmw r20, 0x2fc(r2) + b lbl_80371340 + mfspr r16, 0x3a0 + mfspr r17, 0x3a7 + mfspr r18, 0x3a8 + mfspr r19, 0x3a9 + mfspr r20, 0x3aa + mfspr r21, 0x3ab + mfspr r22, 0x3ac + mfspr r23, 0x3ad + mfspr r24, 0x3ae + mfspr r25, 0x3af + mfspr r26, 0x3b0 + mfspr r27, 0x3b7 + mfspr r28, 0x3bf + mfspr r29, 0x3f6 + mfspr r30, 0x3f7 + mfspr r31, 0x3ff + stmw r16, 0x2b8(r2) + +lbl_80371340: + mfspr r19, 0x3f5 + mfspr r20, 0x3b9 + mfspr r21, 0x3ba + mfspr r22, 0x3bd + mfspr r23, 0x3be + mfspr r24, 0x3bb + mfspr r25, 0x3b8 + mfspr r26, 0x3bc + mfspr r27, 0x3fc + mfspr r28, 0x3fd + mfspr r29, 0x3fe + mfspr r30, 0x3FB + mfspr r31, 0x3f9 + stmw r19, 0x284(r2) + b end + + mfspr r25, 0x3d0 + mfspr r26, 0x3d1 + mfspr r27, 0x3d2 + mfspr r28, 0x3d3 + mfspr r29, 0x3D4 + mfspr r30, 0x3D5 + mfspr r31, 0x3d6 + stmw r25, 0x240(r2) + mfspr r31, 0x16 + stw r31, 0x278(r2) +end: + blr +#endif // clang-format on +} + +asm void TRKRestoreExtended1Block() +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + lis r2, gTRKCPUState@h /* 0x8044F338@h */ + ori r2, r2, gTRKCPUState@l /* 0x8044F338@l */ + lis r5, gTRKRestoreFlags@h /* 0x803D3238@h */ + ori r5, r5, gTRKRestoreFlags@l /* 0x803D3238@l */ + lbz r3, 0(r5) + lbz r6, 1(r5) + li r0, 0 + stb r0, 0(r5) + stb r0, 1(r5) + cmpwi r3, 0 + beq lbl_803713E4 + lwz r24, 0x1e8(r2) + lwz r25, 0x1ec(r2) + mttbl r24 + mttbu r25 +lbl_803713E4: + lmw r20, 0x2fc(r2) + mtspr 0x390, r20 + mtspr 0x391, r21 + mtspr 0x392, r22 + mtspr 0x393, r23 + mtspr 0x394, r24 + mtspr 0x395, r25 + mtspr 0x396, r26 + mtspr 0x397, r27 + mtspr 0x398, r28 + mtspr 0x39a, r30 + mtspr 0x39b, r31 + b lbl_80371430 + lmw r26, 0x2e0(r2) + mtspr 0x3b0, r26 + mtspr 0x3b7, r27 + mtspr 0x3f6, r29 + mtspr 0x3f7, r30 + mtspr 0x3ff, r31 +lbl_80371430: + lmw r19, 0x284(r2) + mtspr 0x3f5, r19 + mtspr 0x3b9, r20 + mtspr 0x3ba, r21 + mtspr 0x3bd, r22 + mtspr 0x3be, r23 + mtspr 0x3bb, r24 + mtspr 0x3b8, r25 + mtspr 0x3bc, r26 + mtspr 0x3fc, r27 + mtspr 0x3fd, r28 + mtspr 0x3fe, r29 + mtspr 0x3FB, r30 + mtspr 0x3f9, r31 + b lbl_8037149C + cmpwi r6, 0 + beq lbl_8037147C + lwz r26, 0x278(r2) + mtspr 0x16, r26 +lbl_8037147C: + lmw r25, 0x240(r2) + mtspr 0x3d0, r25 + mtspr 0x3d1, r26 + mtspr 0x3d2, r27 + mtspr 0x3d3, r28 + mtspr 0x3D4, r29 + mtspr 0x3D5, r30 + mtspr 0x3d6, r31 +lbl_8037149C: + lmw r16, 0x1a8(r2) + mtsr 0, r16 + mtsr 1, r17 + mtsr 2, r18 + mtsr 3, r19 + mtsr 4, r20 + mtsr 5, r21 + mtsr 6, r22 + mtsr 7, r23 + mtsr 8, r24 + mtsr 9, r25 + mtsr 0xa, r26 + mtsr 0xb, r27 + mtsr 0xc, r28 + mtsr 0xd, r29 + mtsr 0xe, r30 + mtsr 0xf, r31 + lmw r12, 0x1f0(r2) + mtspr 0x3f0, r12 + mtspr 0x3f1, r13 + mtspr 0x1b, r14 + mtspr 0x11f, r15 + mtibatu 0, r16 + mtibatl 0, r17 + mtibatu 1, r18 + mtibatl 1, r19 + mtibatu 2, r20 + mtibatl 2, r21 + mtibatu 3, r22 + mtibatl 3, r23 + mtdbatu 0, r24 + mtdbatl 0, r25 + mtdbatu 1, r26 + mtdbatl 1, r27 + mtdbatu 2, r28 + mtdbatl 2, r29 + mtdbatu 3, r30 + mtdbatl 3, r31 + lmw r22, 0x25c(r2) + mtspr 0x19, r22 + mtdar r23 + mtdsisr r24 + mtspr 0x110, r25 + mtspr 0x111, r26 + mtspr 0x112, r27 + mtspr 0x113, r28 + mtspr 0x3f2, r30 + mtspr 0x11a, r31 + blr +#endif // clang-format on +} + +u32 TRKTargetCPUMinorType(void) { return 0x54; } diff --git a/src/TRK_MINNOW_DOLPHIN/msg.c b/src/TRK_MINNOW_DOLPHIN/msg.c new file mode 100644 index 00000000..0ae376eb --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/msg.c @@ -0,0 +1,9 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +DSError TRKMessageSend(TRK_Msg* msg) +{ + DSError write_err = TRKWriteUARTN(&msg->m_msg, msg->m_msgLength); + return DS_NoError; +} diff --git a/src/TRK_MINNOW_DOLPHIN/msgbuf.c b/src/TRK_MINNOW_DOLPHIN/msgbuf.c new file mode 100644 index 00000000..8eb7031c --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/msgbuf.c @@ -0,0 +1,359 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.h" +#include "stddef.h" + +TRKBuffer gTRKMsgBufs[3]; + +void TRKSetBufferUsed(TRKBuffer* msg, BOOL state) { msg->isInUse = state; } + +DSError TRKInitializeMessageBuffers(void) +{ + int i; + for (i = 0; i < 3; i++) { + TRKInitializeMutex(&gTRKMsgBufs[i]); + TRKAcquireMutex(&gTRKMsgBufs[i]); + TRKSetBufferUsed(&gTRKMsgBufs[i], FALSE); + TRKReleaseMutex(&gTRKMsgBufs[i]); + } + + return DS_NoError; +} + +DSError TRKGetFreeBuffer(int* msgID, TRKBuffer** outMsg) +{ + TRKBuffer* buf; + DSError error = DS_NoMessageBufferAvailable; + int i; + + *outMsg = NULL; + + for (i = 0; i < 3; i++) { + buf = TRKGetBuffer(i); + + TRKAcquireMutex(buf); + if (!buf->isInUse) { + TRKResetBuffer(buf, TRUE); + TRKSetBufferUsed(buf, TRUE); + error = DS_NoError; + *outMsg = buf; + *msgID = i; + i = 3; // why not break? weird choice + } + TRKReleaseMutex(buf); + } + + return error; +} + +void* TRKGetBuffer(int idx) +{ + TRKBuffer* buf = NULL; + if (idx >= 0 && idx < 3) { + buf = &gTRKMsgBufs[idx]; + } + + return buf; +} + +void TRKReleaseBuffer(int idx) +{ + TRKBuffer* msg; + if (idx != -1 && idx >= 0 && idx < 3) { + msg = &gTRKMsgBufs[idx]; + TRKAcquireMutex(msg); + TRKSetBufferUsed(msg, FALSE); + TRKReleaseMutex(msg); + } +} + +void TRKResetBuffer(TRKBuffer* msg, BOOL keepData) +{ + msg->length = 0; + msg->position = 0; + + if (!keepData) { + TRK_memset(msg->data, 0, TRKMSGBUF_SIZE); + } +} + +DSError TRKSetBufferPosition(TRKBuffer* msg, u32 pos) +{ + DSError error = DS_NoError; + + if (pos > 0x880) { + error = DS_MessageBufferOverflow; + } else { + msg->position = pos; + // If the new position is past the current length, + // update the length + if (pos > msg->length) { + msg->length = pos; + } + } + + return error; +} + +DSError TRKAppendBuffer(TRKBuffer* msg, const void* data, size_t length) +{ + DSError error = DS_NoError; // r31 + u32 bytesLeft; + + // Return if no bytes to append + if (length == 0) { + return DS_NoError; + } + + bytesLeft = 0x880 - msg->position; + + // If there isn't enough space left in the buffer, change the number + // of bytes to append to the remaning number of bytes + if (bytesLeft < length) { + error = DS_MessageBufferOverflow; + length = bytesLeft; + } + + if (length == 1) { + // If the length of bytes to append is 1, just copy the byte over + msg->data[msg->position] = ((u8*)data)[0]; + } else { + // Otherwise, use memcpy + TRK_memcpy(msg->data + msg->position, data, length); + } + + // Update the position and length + msg->position += length; + msg->length = msg->position; + + return error; +} + +DSError TRKReadBuffer(TRKBuffer* msg, void* data, size_t length) +{ + DSError error = DS_NoError; + unsigned int + bytesLeft; // this has to be unsigned int not u32 to match lmfao. + + // Return if no bytes to read + if (length == 0) { + return DS_NoError; + } + + bytesLeft = msg->length - msg->position; + + // If the number of bytes to read exceeds the buffer length, change + // the length to the remaining number of bytes + if (length > bytesLeft) { + error = DS_MessageBufferReadError; + length = bytesLeft; + } + + TRK_memcpy(data, msg->data + msg->position, length); + msg->position += length; + return error; +} + +DSError TRKAppendBuffer1_ui16(TRKBuffer* buffer, const u16 data) +{ + u8* bigEndianData; + u8* byteData; + u8 swapBuffer[sizeof(data)]; + + if (gTRKBigEndian) { + bigEndianData = (u8*)&data; + } else { + byteData = (u8*)&data; + bigEndianData = swapBuffer; + + bigEndianData[0] = byteData[1]; + bigEndianData[1] = byteData[0]; + } + + return TRKAppendBuffer(buffer, (const void*)bigEndianData, sizeof(data)); +} + +DSError TRKAppendBuffer1_ui32(TRKBuffer* buffer, const u32 data) +{ + u8* bigEndianData; + u8* byteData; + u8 swapBuffer[sizeof(data)]; + + if (gTRKBigEndian) { + bigEndianData = (u8*)&data; + } else { + byteData = (u8*)&data; + bigEndianData = swapBuffer; + + bigEndianData[0] = byteData[3]; + bigEndianData[1] = byteData[2]; + bigEndianData[2] = byteData[1]; + bigEndianData[3] = byteData[0]; + } + + return TRKAppendBuffer(buffer, (const void*)bigEndianData, sizeof(data)); +} + +DSError TRKAppendBuffer1_ui64(TRKBuffer* buffer, const u64 data) +{ + u8* bigEndianData; + u8* byteData; + u8 swapBuffer[sizeof(data)]; + if (gTRKBigEndian) { + bigEndianData = (u8*)&data; + } else { + byteData = (u8*)&data; + bigEndianData = swapBuffer; + + bigEndianData[0] = byteData[7]; + bigEndianData[1] = byteData[6]; + bigEndianData[2] = byteData[5]; + bigEndianData[3] = byteData[4]; + bigEndianData[4] = byteData[3]; + bigEndianData[5] = byteData[2]; + bigEndianData[6] = byteData[1]; + bigEndianData[7] = byteData[0]; + } + + return TRKAppendBuffer(buffer, (const void*)bigEndianData, sizeof(data)); +} + +DSError TRKAppendBuffer_ui8(TRKBuffer* buffer, const u8* data, int count) +{ + DSError err; + int i; + + for (i = 0, err = DS_NoError; err == DS_NoError && i < count; i++) { + err = TRKAppendBuffer1_ui8(buffer, data[i]); + } + + return err; +} + +DSError TRKAppendBuffer_ui32(TRKBuffer* buffer, const u32* data, int count) +{ + DSError err; + int i; + + for (i = 0, err = DS_NoError; err == DS_NoError && i < count; i++) { + err = TRKAppendBuffer1_ui32(buffer, data[i]); + } + + return err; +} + +DSError TRKReadBuffer1_ui8(TRKBuffer* buffer, u8* data) +{ + return TRKReadBuffer(buffer, (void*)data, 1); +} + +DSError TRKReadBuffer1_ui16(TRKBuffer* buffer, u16* data) +{ + DSError err; + + u8* bigEndianData; + u8* byteData; + u8 swapBuffer[sizeof(data)]; + + if (gTRKBigEndian) { + bigEndianData = (u8*)data; + } else { + bigEndianData = swapBuffer; + } + + err = TRKReadBuffer(buffer, (void*)bigEndianData, sizeof(*data)); + + if (!gTRKBigEndian && err == DS_NoError) { + byteData = (u8*)data; + + byteData[0] = bigEndianData[1]; + byteData[1] = bigEndianData[0]; + } + + return err; +} + +DSError TRKReadBuffer1_ui32(TRKBuffer* buffer, u32* data) +{ + DSError err; + + u8* bigEndianData; + u8* byteData; + u8 swapBuffer[sizeof(data)]; + + if (gTRKBigEndian) { + bigEndianData = (u8*)data; + } else { + bigEndianData = swapBuffer; + } + + err = TRKReadBuffer(buffer, (void*)bigEndianData, sizeof(*data)); + + if (!gTRKBigEndian && err == DS_NoError) { + byteData = (u8*)data; + + byteData[0] = bigEndianData[3]; + byteData[1] = bigEndianData[2]; + byteData[2] = bigEndianData[1]; + byteData[3] = bigEndianData[0]; + } + + return err; +} + +DSError TRKReadBuffer1_ui64(TRKBuffer* buffer, u64* data) +{ + DSError err; + + u8* bigEndianData; + u8* byteData; + u8 swapBuffer[sizeof(data)]; + + if (gTRKBigEndian) { + bigEndianData = (u8*)data; + } else { + bigEndianData = swapBuffer; + } + + err = TRKReadBuffer(buffer, (void*)bigEndianData, sizeof(*data)); + + if (!gTRKBigEndian && err == 0) { + byteData = (u8*)data; + + byteData[0] = bigEndianData[7]; + byteData[1] = bigEndianData[6]; + byteData[2] = bigEndianData[5]; + byteData[3] = bigEndianData[4]; + byteData[4] = bigEndianData[3]; + byteData[5] = bigEndianData[2]; + byteData[6] = bigEndianData[1]; + byteData[7] = bigEndianData[0]; + } + + return err; +} + +DSError TRKReadBuffer_ui8(TRKBuffer* buffer, u8* data, int count) +{ + DSError err; + int i; + + for (i = 0, err = DS_NoError; err == DS_NoError && i < count; i++) { + err = TRKReadBuffer1_ui8(buffer, &(data[i])); + } + + return err; +} + +DSError TRKReadBuffer_ui32(TRKBuffer* buffer, u32* data, int count) +{ + DSError err; + s32 i; + + for (i = 0, err = DS_NoError; err == DS_NoError && i < count; i++) { + err = TRKReadBuffer1_ui32(buffer, &(data[i])); + } + + return err; +} diff --git a/src/TRK_MINNOW_DOLPHIN/msghndlr.c b/src/TRK_MINNOW_DOLPHIN/msghndlr.c new file mode 100644 index 00000000..35c91822 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/msghndlr.c @@ -0,0 +1,689 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +BOOL IsTRKConnected; + +BOOL GetTRKConnected() +{ + return IsTRKConnected; +} + +void SetTRKConnected(BOOL connected) +{ + IsTRKConnected = connected; +} + +static void TRKMessageIntoReply(TRKBuffer* buffer, u8 ackCmd, + DSReplyError errSentInAck) +{ + TRKResetBuffer(buffer, 1); + + TRKAppendBuffer1_ui8(buffer, ackCmd); + TRKAppendBuffer1_ui8(buffer, errSentInAck); +} + +DSError TRKSendACK(TRKBuffer* buffer) +{ + DSError err; + int ackTries; + + ackTries = 3; + do { + err = TRKMessageSend((TRK_Msg*)buffer); + --ackTries; + } while (err != DS_NoError && ackTries > 0); + + return err; +} + +DSError TRKStandardACK(TRKBuffer* buffer, MessageCommandID commandID, + DSReplyError replyError) +{ + TRKMessageIntoReply(buffer, commandID, replyError); + TRKSendACK(buffer); + return; +} + +DSError TRKDoUnsupported(TRKBuffer* buffer) +{ + return TRKStandardACK(buffer, DSMSG_ReplyACK, + DSREPLY_UnsupportedCommandError); +} + +DSError TRKDoConnect(TRKBuffer* buffer) +{ + SetTRKConnected(TRUE); + return TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NoError); +} + +DSError TRKDoDisconnect(TRKBuffer* buffer) +{ + DSError error = DS_NoError; + TRKEvent event; + SetTRKConnected(FALSE); + + if ((error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NoError)) + == DS_NoError) { + TRKConstructEvent(&event, 1); + TRKPostEvent(&event); + } + return error; +} + +DSError TRKDoReset(TRKBuffer* buffer) +{ + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + __TRK_reset(); + return DS_NoError; +} + +DSError TRKDoVersions(TRKBuffer* buffer) +{ + DSError error; + DSVersions versions; + + if (buffer->length != 1) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + } else { + TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + error = TRKTargetVersions(&versions); + + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, versions.kernelMajor); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, versions.kernelMinor); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, versions.protocolMajor); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, versions.protocolMinor); + + if (error != DS_NoError) + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_CWDSError); + else + error = TRKSendACK(buffer); + } + return error; +} + +DSError TRKDoSupportMask(TRKBuffer* buffer) +{ + DSError error; + u8 mask[32]; + + if (buffer->length != 1) { + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + } else { + TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + error = TRKTargetSupportMask(mask); + + if (error == DS_NoError) + error = TRKAppendBuffer(buffer, mask, 32); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, 2); + + if (error != DS_NoError) + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_CWDSError); + else + TRKSendACK(buffer); + } +} + +DSError TRKDoCPUType(TRKBuffer* buffer) +{ + DSError error; + DSCPUType cputype; + + if (buffer->length != 1) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + return error; + } + + TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + + error = TRKTargetCPUType(&cputype); + + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, cputype.cpuMajor); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, cputype.cpuMinor); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, cputype.bigEndian); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, cputype.defaultTypeSize); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, cputype.fpTypeSize); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, cputype.extended1TypeSize); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, cputype.extended2TypeSize); + + if (error != DS_NoError) + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_CWDSError); + else + error = TRKSendACK(buffer); + + return error; +} + +DSError TRKDoReadMemory(TRKBuffer* buffer) +{ + DSError error; + DSReplyError replyError; + u8 tempBuf[0x800]; + u32 length; + u32 msg_start; + u16 msg_length; + u8 msg_options; + u8 msg_command; + + if (buffer->length != 8) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + return error; + } + + TRKSetBufferPosition(buffer, DSREPLY_NoError); + error = TRKReadBuffer1_ui8(buffer, &msg_command); + if (error == DS_NoError) + error = TRKReadBuffer1_ui8(buffer, &msg_options); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui16(buffer, &msg_length); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui32(buffer, &msg_start); + + if (msg_options & 2) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, + DSREPLY_UnsupportedOptionError); + return error; + } + + if (msg_length > 0x800) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_ParameterError); + return error; + } + + TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + + if (error == DS_NoError) { + length = (u32)msg_length; + error = TRKTargetAccessMemory( + tempBuf, msg_start, &length, + (msg_options & 8) ? MEMACCESS_UserMemory : MEMACCESS_DebuggerMemory, + 1); + msg_length = (u16)length; + if (error == DS_NoError) + error = TRKAppendBuffer1_ui16(buffer, msg_length); + if (error == DS_NoError) + error = TRKAppendBuffer(buffer, tempBuf, length); + } + + if (error != DS_NoError) { + switch (error) { + case DS_CWDSException: + replyError = DSREPLY_CWDSException; + break; + case DS_InvalidMemory: + replyError = DSREPLY_InvalidMemoryRange; + break; + case DS_InvalidProcessID: + replyError = DSREPLY_InvalidProcessID; + break; + case DS_InvalidThreadID: + replyError = DSREPLY_InvalidThreadID; + break; + case DS_OSError: + replyError = DSREPLY_OSError; + break; + default: + replyError = DSREPLY_CWDSError; + break; + } + error = TRKStandardACK(buffer, DSMSG_ReplyACK, replyError); + } else { + error = TRKSendACK(buffer); + } + + return error; +} + +DSError TRKDoWriteMemory(TRKBuffer* buffer) +{ + DSError error; + DSReplyError replyError; + u8 tmpBuffer[0x800]; + u32 length; + u32 msg_start; + u16 msg_length; + u8 msg_options; + u8 msg_command; + + if (buffer->length <= 8) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + return error; + } + + TRKSetBufferPosition(buffer, DSREPLY_NoError); + error = TRKReadBuffer1_ui8(buffer, &msg_command); + if (error == DS_NoError) + error = TRKReadBuffer1_ui8(buffer, &msg_options); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui16(buffer, &msg_length); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui32(buffer, &msg_start); + + if (msg_options & 2) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, + DSREPLY_UnsupportedOptionError); + return error; + } + + if ((buffer->length != msg_length + 8) || (msg_length > 0x800)) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_ParameterError); + } else { + if (error == DS_NoError) { + length = (u32)msg_length; + error = TRKReadBuffer(buffer, tmpBuffer, length); + if (error == DS_NoError) { + error = TRKTargetAccessMemory(tmpBuffer, msg_start, &length, + (msg_options & 8) + ? MEMACCESS_UserMemory + : MEMACCESS_DebuggerMemory, + FALSE); + } + msg_length = (u16)length; + } + + if (error == DS_NoError) + TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + + if (error == DS_NoError) + error = TRKAppendBuffer1_ui16(buffer, msg_length); + + if (error != DS_NoError) { + switch (error) { + case DS_CWDSException: + replyError = DSREPLY_CWDSException; + break; + case DS_InvalidMemory: + replyError = DSREPLY_InvalidMemoryRange; + break; + case DS_InvalidProcessID: + replyError = DSREPLY_InvalidProcessID; + break; + case DS_InvalidThreadID: + replyError = DSREPLY_InvalidThreadID; + break; + case DS_OSError: + replyError = DSREPLY_OSError; + break; + default: + replyError = DSREPLY_CWDSError; + break; + } + error = TRKStandardACK(buffer, DSMSG_ReplyACK, replyError); + } else { + error = TRKSendACK(buffer); + } + } + + return error; +} + +DSError TRKDoReadRegisters(TRKBuffer* buffer) +{ + DSError error; + DSReplyError replyError; + DSMessageRegisterOptions options; + u32 registerDataLength; + u16 msg_lastRegister; + u16 msg_firstRegister; + u8 msg_options; + u8 msg_command; + + if (buffer->length != 6) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + return error; + } + TRKSetBufferPosition(buffer, DSREPLY_NoError); + error = TRKReadBuffer1_ui8(buffer, &msg_command); + if (error == DS_NoError) + error = TRKReadBuffer1_ui8(buffer, &msg_options); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui16(buffer, &msg_firstRegister); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui16(buffer, &msg_lastRegister); + + if (msg_firstRegister > msg_lastRegister) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, + DSREPLY_InvalidRegisterRange); + return error; + } + + if (error == DS_NoError) + TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + + options = (DSMessageRegisterOptions)msg_options; + switch (options) { + case DSREG_Default: + error = TRKTargetAccessDefault(msg_firstRegister, msg_lastRegister, + buffer, ®isterDataLength, TRUE); + break; + case DSREG_FP: + error = TRKTargetAccessFP(msg_firstRegister, msg_lastRegister, buffer, + ®isterDataLength, TRUE); + break; + case DSREG_Extended1: + error = TRKTargetAccessExtended1(msg_firstRegister, msg_lastRegister, + buffer, ®isterDataLength, TRUE); + break; + case DSREG_Extended2: + error = TRKTargetAccessExtended2(msg_firstRegister, msg_lastRegister, + buffer, ®isterDataLength, TRUE); + break; + default: + error = DS_UnsupportedError; + break; + } + + if (error != DS_NoError) { + switch (error) { + case DS_UnsupportedError: + replyError = DSREPLY_UnsupportedOptionError; + break; + case DS_InvalidRegister: + replyError = DSREPLY_InvalidRegisterRange; + break; + case DS_CWDSException: + replyError = DSREPLY_CWDSException; + break; + case DS_InvalidProcessID: + replyError = DSREPLY_InvalidProcessID; + break; + case DS_InvalidThreadID: + replyError = DSREPLY_InvalidThreadID; + break; + case DS_OSError: + replyError = DSREPLY_OSError; + break; + default: + replyError = DSREPLY_CWDSError; + } + + error = TRKStandardACK(buffer, DSMSG_ReplyACK, replyError); + } else { + error = TRKSendACK(buffer); + } + + return error; +} + +DSError TRKDoWriteRegisters(TRKBuffer* buffer) +{ + DSError error; + DSReplyError replyError; + DSMessageRegisterOptions options; + u32 registerDataLength; + u16 msg_lastRegister; + u16 msg_firstRegister; + u8 msg_options; + u8 msg_command; + + if (buffer->length <= 6) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + return error; + } + TRKSetBufferPosition(buffer, DSREPLY_NoError); + error = TRKReadBuffer1_ui8(buffer, &msg_command); + if (error == DS_NoError) + error = TRKReadBuffer1_ui8(buffer, &msg_options); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui16(buffer, &msg_firstRegister); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui16(buffer, &msg_lastRegister); + + if (msg_firstRegister > msg_lastRegister) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, + DSREPLY_InvalidRegisterRange); + return error; + } + + options = (DSMessageRegisterOptions)msg_options; + switch (options) { + case DSREG_Default: + error = TRKTargetAccessDefault(msg_firstRegister, msg_lastRegister, + buffer, ®isterDataLength, FALSE); + break; + case DSREG_FP: + error = TRKTargetAccessFP(msg_firstRegister, msg_lastRegister, buffer, + ®isterDataLength, FALSE); + break; + case DSREG_Extended1: + error = TRKTargetAccessExtended1(msg_firstRegister, msg_lastRegister, + buffer, ®isterDataLength, FALSE); + break; + case DSREG_Extended2: + error = TRKTargetAccessExtended2(msg_firstRegister, msg_lastRegister, + buffer, ®isterDataLength, FALSE); + break; + default: + error = DS_UnsupportedError; + break; + } + + if (error == DS_NoError) + TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + + if (error != DS_NoError) { + switch (error) { + case DS_UnsupportedError: + replyError = DSREPLY_UnsupportedOptionError; + break; + case DS_InvalidRegister: + replyError = DSREPLY_InvalidRegisterRange; + break; + case DS_MessageBufferReadError: + replyError = DSREPLY_PacketSizeError; + break; + case DS_CWDSException: + replyError = DSREPLY_CWDSException; + break; + case DS_InvalidProcessID: + replyError = DSREPLY_InvalidProcessID; + break; + case DS_InvalidThreadID: + replyError = DSREPLY_InvalidThreadID; + break; + case DS_OSError: + replyError = DSREPLY_OSError; + break; + default: + replyError = DSREPLY_CWDSError; + } + + error = TRKStandardACK(buffer, DSMSG_ReplyACK, replyError); + } else { + error = TRKSendACK(buffer); + } + + return error; +} + +DSError TRKDoFlushCache(TRKBuffer* buffer) +{ + DSError error; + DSReplyError replyErr; + u32 msg_end; + u32 msg_start; + u8 msg_options; + u8 msg_command; + + if (buffer->length != 10) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + return error; + } + + TRKSetBufferPosition(buffer, DSREPLY_NoError); + error = TRKReadBuffer1_ui8(buffer, &msg_command); + if (error == DS_NoError) + error = TRKReadBuffer1_ui8(buffer, &msg_options); + if (error == DS_NoError) + error = TRKReadBuffer1_ui32(buffer, &msg_start); + if (error == DS_NoError) + error = TRKReadBuffer1_ui32(buffer, &msg_end); + + if (msg_start > msg_end) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, + DSREPLY_InvalidMemoryRange); + return error; + } + + if (error == DS_NoError) + error = TRKTargetFlushCache(msg_options, (void*)msg_start, + (void*)msg_end); + + if (error == DS_NoError) + TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + + if (error != DS_NoError) { + switch (error) { + case DS_UnsupportedError: + replyErr = DSREPLY_UnsupportedOptionError; + break; + default: + replyErr = DSREPLY_CWDSError; + break; + } + + error = TRKStandardACK(buffer, DSMSG_ReplyACK, replyErr); + } else { + error = TRKSendACK(buffer); + } + + return error; +} + +DSError TRKDoContinue(TRKBuffer* buffer) +{ + DSError error; + + error = TRKTargetStopped(); + if (error == DS_NoError) { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NotStopped); + return error; + } + + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + if (error == DS_NoError) + error = TRKTargetContinue(); + + return error; +} + +DSError TRKDoStep(TRKBuffer* buffer) +{ + DSError error; + u8 msg_command; + u8 msg_options; + u8 msg_count; + u32 msg_rangeStart; + u32 msg_rangeEnd; + u32 pc; + + if (buffer->length < 3) + return TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + + TRKSetBufferPosition(buffer, DSREPLY_NoError); + + error = TRKReadBuffer1_ui8(buffer, &msg_command); + if (error == DS_NoError) + error = TRKReadBuffer1_ui8(buffer, &msg_options); + + switch (msg_options) { + case DSSTEP_IntoCount: + case DSSTEP_OverCount: + if (error == DS_NoError) + TRKReadBuffer1_ui8(buffer, &msg_count); + if (msg_count >= 1) { + break; + } + return TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_ParameterError); + case DSSTEP_IntoRange: + case DSSTEP_OverRange: + if (buffer->length != 10) + return TRKStandardACK(buffer, DSMSG_ReplyACK, + DSREPLY_PacketSizeError); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui32(buffer, &msg_rangeStart); + if (error == DS_NoError) + error = TRKReadBuffer1_ui32(buffer, &msg_rangeEnd); + + pc = TRKTargetGetPC(); + if (pc >= msg_rangeStart && pc <= msg_rangeEnd) { + break; + } + return TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_ParameterError); + default: + return TRKStandardACK(buffer, DSMSG_ReplyACK, + DSREPLY_UnsupportedOptionError); + } + + if (!TRKTargetStopped()) { + return TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NotStopped); + } else { + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + if (error == DS_NoError) + switch (msg_options) { + case DSSTEP_IntoCount: + case DSSTEP_OverCount: + error = TRKTargetSingleStep(msg_count, + (msg_options == DSSTEP_OverCount)); + break; + case DSSTEP_IntoRange: + case DSSTEP_OverRange: + error = TRKTargetStepOutOfRange( + msg_rangeStart, msg_rangeEnd, + (msg_options == DSSTEP_OverRange)); + break; + } + + return error; + } +} + +DSError TRKDoStop(TRKBuffer* b) +{ + DSReplyError replyError; + + switch (TRKTargetStop()) { + case DS_NoError: + replyError = DSREPLY_NoError; + break; + case DS_InvalidProcessID: + replyError = DSREPLY_InvalidProcessID; + break; + case DS_InvalidThreadID: + replyError = DSREPLY_InvalidThreadID; + break; + case DS_OSError: + replyError = DSREPLY_OSError; + break; + default: + replyError = DSREPLY_Error; + break; + } + + return TRKStandardACK(b, DSMSG_ReplyACK, replyError); +} diff --git a/src/TRK_MINNOW_DOLPHIN/mutex_TRK.c b/src/TRK_MINNOW_DOLPHIN/mutex_TRK.c new file mode 100644 index 00000000..37e09501 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/mutex_TRK.c @@ -0,0 +1,7 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.h" + +DSError TRKInitializeMutex(void*) { return DS_NoError; } + +DSError TRKAcquireMutex(void*) { return DS_NoError; } + +DSError TRKReleaseMutex(void*) { return DS_NoError; } diff --git a/src/TRK_MINNOW_DOLPHIN/notify.c b/src/TRK_MINNOW_DOLPHIN/notify.c new file mode 100644 index 00000000..7dce4537 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/notify.c @@ -0,0 +1,40 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +DSError TRKDoNotifyStopped(MessageCommandID cmd) +{ + DSError err; + int reqIdx; + int bufIdx; + TRKBuffer* msg; + + err = TRKGetFreeBuffer(&bufIdx, &msg); + if (err == DS_NoError) { + if (msg->position >= 0x880) { + err = DS_MessageBufferOverflow; + } else { + msg->data[msg->position++] = cmd; + ++msg->length; + err = 0; + } + + if (err == DS_NoError) { + if (cmd == DSMSG_NotifyStopped) { + TRKTargetAddStopInfo(msg); + } else { + TRKTargetAddExceptionInfo(msg); + } + } + + err = TRKRequestSend(msg, &reqIdx, 2, 3, 1); + if (err == DS_NoError) { + TRKReleaseBuffer(reqIdx); + } + TRKReleaseBuffer(bufIdx); + } + + return err; +} diff --git a/src/TRK_MINNOW_DOLPHIN/nubevent.c b/src/TRK_MINNOW_DOLPHIN/nubevent.c new file mode 100644 index 00000000..a35a43cd --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/nubevent.c @@ -0,0 +1,72 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mutex_TRK.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/mem_TRK.h" + +TRKEventQueue gTRKEventQueue; + +DSError TRKInitializeEventQueue() +{ + TRKInitializeMutex(&gTRKEventQueue); + TRKAcquireMutex(&gTRKEventQueue); + gTRKEventQueue.count = 0; + gTRKEventQueue.next = 0; + gTRKEventQueue.eventID = 0x100; + TRKReleaseMutex(&gTRKEventQueue); + return DS_NoError; +} + +void TRKCopyEvent(TRKEvent* dstEvent, const TRKEvent* srcEvent) +{ + TRK_memcpy(dstEvent, srcEvent, sizeof(TRKEvent)); +} + +BOOL TRKGetNextEvent(TRKEvent* event) +{ + BOOL status = 0; + TRKAcquireMutex(&gTRKEventQueue); + if (0 < gTRKEventQueue.count) { + TRKCopyEvent(event, &gTRKEventQueue.events[gTRKEventQueue.next]); + gTRKEventQueue.count--; + gTRKEventQueue.next++; + if (gTRKEventQueue.next == 2) + gTRKEventQueue.next = 0; + + status = 1; + } + TRKReleaseMutex(&gTRKEventQueue); + return status; +} + +DSError TRKPostEvent(TRKEvent* event) +{ + DSError ret = DS_NoError; + int nextEventID; + + TRKAcquireMutex(&gTRKEventQueue); + + if (gTRKEventQueue.count == 2) { + ret = DS_EventQueueFull; + } else { + nextEventID = (gTRKEventQueue.next + gTRKEventQueue.count) % 2; + TRKCopyEvent(&gTRKEventQueue.events[nextEventID], event); + gTRKEventQueue.events[nextEventID].eventID = gTRKEventQueue.eventID; + gTRKEventQueue.eventID++; + if (gTRKEventQueue.eventID < 0x100) + gTRKEventQueue.eventID = 0x100; + + gTRKEventQueue.count++; + } + + TRKReleaseMutex(&gTRKEventQueue); + return ret; +} + +void TRKConstructEvent(TRKEvent* event, NubEventType eventType) +{ + event->eventType = eventType; + event->eventID = 0; + event->msgBufID = -1; +} + +void TRKDestructEvent(TRKEvent* event) { TRKReleaseBuffer(event->msgBufID); } diff --git a/src/TRK_MINNOW_DOLPHIN/nubinit.c b/src/TRK_MINNOW_DOLPHIN/nubinit.c new file mode 100644 index 00000000..fc08e85e --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/nubinit.c @@ -0,0 +1,80 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubinit.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/dispatch.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" + +BOOL gTRKBigEndian; + +BOOL TRKInitializeEndian(void); + +DSError TRKInitializeNub(void) +{ + DSError ret; + DSError uartErr; + + ret = TRKInitializeEndian(); + + if (ret == DS_NoError) + usr_put_initialize(); + if (ret == DS_NoError) + ret = TRKInitializeEventQueue(); + if (ret == DS_NoError) + ret = TRKInitializeMessageBuffers(); + if (ret == DS_NoError) + ret = TRKInitializeDispatcher(); + + if (ret == DS_NoError) { + uartErr = TRKInitializeIntDrivenUART(0x0000e100, 1, 0, + (volatile u8**)&gTRKInputPendingPtr); + TRKTargetSetInputPendingPtr(gTRKInputPendingPtr); + if (uartErr != DS_NoError) { + ret = uartErr; + } + } + + if (ret == DS_NoError) + ret = TRKInitializeSerialHandler(); + if (ret == DS_NoError) + ret = TRKInitializeTarget(); + + return ret; +} + +DSError TRKTerminateNub(void) +{ + TRKTerminateSerialHandler(); + return DS_NoError; +} + +void TRKNubWelcome(void) +{ + TRK_board_display("MetroTRK for GAMECUBE v0.10"); + return; +} + +BOOL TRKInitializeEndian(void) +{ + u8 bendian[4]; + BOOL result = FALSE; + gTRKBigEndian = TRUE; + + bendian[0] = 0x12; + bendian[1] = 0x34; + bendian[2] = 0x56; + bendian[3] = 0x78; + + if (*(u32*)bendian == 0x12345678) { + gTRKBigEndian = TRUE; + } else if (*(u32*)bendian == 0x78563412) { + gTRKBigEndian = FALSE; + } else { + result = TRUE; + } + return result; +} diff --git a/src/TRK_MINNOW_DOLPHIN/serpoll.c b/src/TRK_MINNOW_DOLPHIN/serpoll.c new file mode 100644 index 00000000..831644fa --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/serpoll.c @@ -0,0 +1,82 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/nubevent.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +static TRKFramingState gTRKFramingState; + +void* gTRKInputPendingPtr; + +MessageBufferID TRKTestForPacket() +{ + int bytes; + int batch; + int err; + TRKBuffer* b; + int id; + + bytes = TRKPollUART(); + if (bytes > 0) { + TRKGetFreeBuffer(&id, &b); + if (bytes > TRKMSGBUF_SIZE) { + for (; bytes > 0; bytes -= batch) { + batch = bytes > TRKMSGBUF_SIZE ? TRKMSGBUF_SIZE : bytes; + TRKReadUARTN(b->data, batch); + } + TRKStandardACK(b, 0xff, 6); + } else { + err = TRKReadUARTN(b->data, bytes); + if (err == 0) { + b->length = bytes; + return id; + } + } + } + if (id != -1) { + TRKReleaseBuffer(id); + } + return -1; +} + +void TRKGetInput(void) +{ + MessageBufferID id; + TRKBuffer* msgBuffer; + u8 command; + + id = TRKTestForPacket(); + if (id == -1) + return; + + msgBuffer = TRKGetBuffer(id); + TRKSetBufferPosition(msgBuffer, 0); + TRKReadBuffer1_ui8(msgBuffer, &command); + if (command < DSMSG_ReplyACK) { + TRKProcessInput(id); + } else { + TRKReleaseBuffer(id); + } +} + +void TRKProcessInput(int bufferIdx) +{ + TRKEvent event; + + TRKConstructEvent(&event, NUBEVENT_Request); + gTRKFramingState.msgBufID = -1; + event.msgBufID = bufferIdx; + TRKPostEvent(&event); +} + +DSError TRKInitializeSerialHandler(void) +{ + gTRKFramingState.msgBufID = -1; + gTRKFramingState.receiveState = DSRECV_Wait; + gTRKFramingState.isEscape = FALSE; + + return DS_NoError; +} + +DSError TRKTerminateSerialHandler(void) { return DS_NoError; } diff --git a/src/TRK_MINNOW_DOLPHIN/support.c b/src/TRK_MINNOW_DOLPHIN/support.c new file mode 100644 index 00000000..0d31ca10 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/support.c @@ -0,0 +1,177 @@ +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/serpoll.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h" +#include "stddef.h" +#include "string.h" + +DSError TRKSuppAccessFile(u32 file_handle, u8* data, size_t* count, + DSIOResult* io_result, BOOL need_reply, BOOL read) +{ + DSError error; + int replyBufferId; + TRKBuffer* replyBuffer; + int bufferId; + TRKBuffer* buffer; + u32 length; + u32 done; + u8 replyIOResult; + u16 replyLength; + BOOL exit; + + if (data == NULL || *count == 0) { + return DS_ParameterError; + } + + exit = FALSE; + *io_result = DS_IONoError; + done = 0; + error = DS_NoError; + while (!exit && done < *count && error == DS_NoError && *io_result == 0) { + if (*count - done > 0x800) { + length = 0x800; + } else { + length = *count - done; + } + + error = TRKGetFreeBuffer(&bufferId, &buffer); + + if (error == DS_NoError) + error = TRKAppendBuffer1_ui8(buffer, read ? DSMSG_ReadFile + : DSMSG_WriteFile); + + if (error == DS_NoError) + error = TRKAppendBuffer1_ui32(buffer, file_handle); + + if (error == DS_NoError) + error = TRKAppendBuffer1_ui16(buffer, length); + + if (!read && error == DS_NoError) + error = TRKAppendBuffer_ui8(buffer, data + done, length); + + if (error == DS_NoError) { + if (need_reply) { + replyLength = 0; + replyIOResult = 0; + + error = TRKRequestSend(buffer, &replyBufferId, read ? 5 : 5, 3, + !(read && file_handle == 0)); + if (error == DS_NoError) { + replyBuffer = (TRKBuffer*)TRKGetBuffer(replyBufferId); + TRKSetBufferPosition(replyBuffer, 2); + } + + if (error == DS_NoError) + error = TRKReadBuffer1_ui8(replyBuffer, &replyIOResult); + + if (error == DS_NoError) + error = TRKReadBuffer1_ui16(replyBuffer, &replyLength); + + if (read && error == DS_NoError) { + if (replyBuffer->length != replyLength + 5) { + replyLength = replyBuffer->length - 5; + if (replyIOResult == 0) + replyIOResult = 1; + } + + if (replyLength <= length) + error = TRKReadBuffer_ui8(replyBuffer, data + done, + replyLength); + } + + if (replyLength != length) { + if ((!read || replyLength >= length) && replyIOResult == 0) + replyIOResult = 1; + length = replyLength; + exit = TRUE; + } + + *io_result = (DSIOResult)replyIOResult; + TRKReleaseBuffer(replyBufferId); + } else { + error = TRKMessageSend((TRK_Msg*)buffer); + } + } + + TRKReleaseBuffer(bufferId); + done += length; + } + + *count = done; + return error; +} + +DSError TRKRequestSend(TRKBuffer* msgBuf, int* bufferId, u32 p1, u32 p2, int p3) +{ + int error = DS_NoError; + TRKBuffer* buffer; + u32 timer; + int tries; + u8 msg_command; + u8 msg_error; + BOOL badReply = TRUE; + + *bufferId = -1; + + for (tries = p2 + 1; tries != 0 && *bufferId == -1 && error == DS_NoError; + tries--) { + error = TRKMessageSend((TRK_Msg*)msgBuf); + if (error == DS_NoError) { + if (p3) { + timer = 0; + } + + while (TRUE) { + do { + *bufferId = TRKTestForPacket(); + if (*bufferId != -1) + break; + } while (!p3 || ++timer < 79999980); + + if (*bufferId == -1) + break; + + badReply = FALSE; + + buffer = TRKGetBuffer(*bufferId); + TRKSetBufferPosition(buffer, 0); + + if ((error = TRKReadBuffer1_ui8(buffer, &msg_command)) + != DS_NoError) + break; + + if (msg_command >= DSMSG_ReplyACK) + break; + + TRKProcessInput(*bufferId); + *bufferId = -1; + } + + if (*bufferId != -1) { + if (buffer->length < p1) { + badReply = TRUE; + } + if (error == DS_NoError && !badReply) { + error = TRKReadBuffer1_ui8(buffer, &msg_error); + } + if (error == DS_NoError && !badReply) { + if (msg_command != DSMSG_ReplyACK + || msg_error != DSREPLY_NoError) { + badReply = TRUE; + } + } + if (error != DS_NoError || badReply) { + TRKReleaseBuffer(*bufferId); + *bufferId = -1; + } + } + } + } + + if (*bufferId == -1) { + error = DS_Error800; + } + + return error; +} diff --git a/src/TRK_MINNOW_DOLPHIN/targcont.c b/src/TRK_MINNOW_DOLPHIN/targcont.c new file mode 100644 index 00000000..1827ae1a --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/targcont.c @@ -0,0 +1,12 @@ +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/targcont.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" + +DSError TRKTargetContinue(void) +{ + TRKTargetSetStopped(0); + UnreserveEXI2Port(); + TRKSwapAndGo(); + ReserveEXI2Port(); + return 0; +} diff --git a/src/TRK_MINNOW_DOLPHIN/targimpl.c b/src/TRK_MINNOW_DOLPHIN/targimpl.c new file mode 100644 index 00000000..858024a5 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/targimpl.c @@ -0,0 +1,1177 @@ +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/flush_cache.h" +#include "TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/notify.h" +#include "stddef.h" +#include "string.h" + +typedef struct memRange { + u8* start; + u8* end; + BOOL readable; + BOOL writeable; +} memRange; + +const memRange gTRKMemMap[1] = { { (u8*)0, (u8*)-1, TRUE, TRUE } }; + +typedef struct StopInfo_PPC { + u32 PC; + u32 PCInstruction; + u16 exceptionID; +} StopInfo_PPC; + +typedef struct TRKExceptionStatus { + StopInfo_PPC exceptionInfo; + u8 inTRK; + u8 exceptionDetected; +} TRKExceptionStatus; + +typedef struct TRKStepStatus { + BOOL active; // 0x0 + DSMessageStepOptions type; // 0x4 + u32 count; // 0x8 + u32 rangeStart; // 0xC + u32 rangeEnd; // 0x10 +} TRKStepStatus; + +ProcessorRestoreFlags_PPC gTRKRestoreFlags = { FALSE, FALSE }; + +static TRKExceptionStatus gTRKExceptionStatus = { { 0, 0, 0 }, TRUE, 0 }; + +static TRKStepStatus gTRKStepStatus = { FALSE, DSSTEP_IntoCount, 0, 0 }; + +static u16 TRK_saved_exceptionID = 0; +ProcessorState_PPC gTRKCPUState; +TRKState gTRKState; + +typedef unsigned char u128[16]; +u128 TRKvalue128_temp; + +Default_PPC gTRKSaveState; + +// Instruction macros +#define INSTR_NOP 0x60000000 +#define INSTR_BLR 0x4E800020 +#define INSTR_PSQ_ST(psr, offset, rDest, w, gqr) \ + (0xF0000000 | (psr << 21) | (rDest << 16) | (w << 15) | (gqr << 12) \ + | offset) +#define INSTR_PSQ_L(psr, offset, rSrc, w, gqr) \ + (0xE0000000 | (psr << 21) | (rSrc << 16) | (w << 15) | (gqr << 12) | offset) +#define INSTR_STW(rSrc, offset, rDest) \ + (0x90000000 | (rSrc << 21) | (rDest << 16) | offset) +#define INSTR_LWZ(rDest, offset, rSrc) \ + (0x80000000 | (rDest << 21) | (rSrc << 16) | offset) +#define INSTR_STFD(fprSrc, offset, rDest) \ + (0xD8000000 | (fprSrc << 21) | (rDest << 16) | offset) +#define INSTR_LFD(fprDest, offset, rSrc) \ + (0xC8000000 | (fprDest << 21) | (rSrc << 16) | offset) +#define INSTR_MFSPR(rDest, spr) \ + (0x7C000000 | (rDest << 21) | ((spr & 0xFE0) << 6) | ((spr & 0x1F) << 16) \ + | 0x2A6) +#define INSTR_MTSPR(spr, rSrc) \ + (0x7C000000 | (rSrc << 21) | ((spr & 0xFE0) << 6) | ((spr & 0x1F) << 16) \ + | 0x3A6) + +#define DSFetch_u32(_p_) (*((u32*)_p_)) +#define DSFetch_u64(_p_) (*((u64*)_p_)) + +DSError TRKPPCAccessSPR(void* value, u32 spr_register_num, BOOL read); +DSError TRKPPCAccessPairedSingleRegister(void* srcDestPtr, u32 psr, BOOL read); +DSError TRKPPCAccessFPRegister(void* srcDestPtr, u32 fpr, BOOL read); +DSError TRKPPCAccessSpecialReg(void* value, u32* access_func, BOOL read); +static void TRKExceptionHandler(u16); +void TRKInterruptHandlerEnableInterrupts(void); +void WriteFPSCR(register f64*); +void ReadFPSCR(register f64*); +void __TRK_set_MSR(u32 msr); +u32 __TRK_get_MSR(); +static void TRK_ppc_memcpy(register void* dest, register const void* src, + register int n, register u32 param_4, + register u32 param_5); + +void TRKRestoreExtended1Block(); +void TRKUARTInterruptHandler(); + +static BOOL TRKTargetCheckStep(); + +asm u32 __TRK_get_MSR() +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + mfmsr r3 + blr +#endif // clang-format on +} + +asm void __TRK_set_MSR(register u32 msr) { +#ifdef __MWERKS__ // clang-format off + nofralloc + mtmsr msr + blr +#endif // clang-format on +} + +DSError TRKValidMemory32(const void* addr, size_t length, + ValidMemoryOptions readWriteable) +{ + DSError err = DS_InvalidMemory; /* assume range is invalid */ + + const u8* start; + const u8* end; + + s32 i; + + /* + ** Get start and end addresses for the memory range and + ** verify that they are reasonable. + */ + + start = (const u8*)addr; + end = ((const u8*)addr + (length - 1)); + + if (end < start) + return DS_InvalidMemory; + + /* + ** Iterate through the gTRKMemMap array to determine if the requested + ** range falls within the valid ranges in the map. + */ + + for (i = 0; (i < (s32)(sizeof(gTRKMemMap) / sizeof(memRange))); i++) { + /* + ** If the requested range is not completely above + ** the valid range AND it is not completely below + ** the valid range then it must overlap somewhere. + ** If the requested range overlaps with one of the + ** valid ranges, do some additional checking. + ** + */ + + if ((start <= (const u8*)gTRKMemMap[i].end) + && (end >= (const u8*)gTRKMemMap[i].start)) { + /* + ** First, verify that the read/write attributes are + ** acceptable. If so, then recursively check any + ** part of the requested range that falls before or + ** after the valid range. + */ + + if (((readWriteable == VALIDMEM_Readable) + && !gTRKMemMap[i].readable) + || ((readWriteable == VALIDMEM_Writeable) + && !gTRKMemMap[i].writeable)) { + err = DS_InvalidMemory; + } else { + err = DS_NoError; + + /* + ** If a portion of the requested range falls before + ** the current valid range, then recursively + ** check it. + */ + + if (start < (const u8*)gTRKMemMap[i].start) + err = TRKValidMemory32( + start, (u32)((const u8*)gTRKMemMap[i].start - start), + readWriteable); + + /* + ** If a portion of the requested range falls after + ** the current valid range, then recursively + ** check it. + ** Note: Only do this step if the previous check + ** did not detect invalid access. + */ + + if ((err == DS_NoError) && (end > (const u8*)gTRKMemMap[i].end)) + err = TRKValidMemory32( + (const u8*)gTRKMemMap[i].end, + (u32)(end - (const u8*)gTRKMemMap[i].end), + readWriteable); + } + + break; + } + } + + return err; +} + +static asm void TRK_ppc_memcpy(register void* dest, register const void* src, + register int n, register u32 param_4, + register u32 param_5) { +#ifdef __MWERKS__ // clang-format off +#define msr r8 +#define byte r9 +#define count r10 + nofralloc + + mfmsr msr + li count, 0 + +top_loop: + cmpw count, n + beq out_loop + + mtmsr param_5 + sync + + lbzx byte, count, src + + mtmsr param_4 + sync + + stbx byte, count, dest + + addi count, count, 1 + + b top_loop +out_loop: + mtmsr msr + sync + + blr +#undef count +#undef byte +#undef msr +#endif // clang-format on +} + +DSError TRKTargetAccessMemory(void* data, u32 start, size_t* length, + MemoryAccessOptions accessOptions, BOOL read) +{ + DSError error; + u32 target_msr; + void* addr; + u32 trk_msr; + TRKExceptionStatus tempExceptionStatus = gTRKExceptionStatus; + gTRKExceptionStatus.exceptionDetected = FALSE; + + addr = (void*)TRKTargetTranslate(start); + error = TRKValidMemory32(addr, *length, + read ? VALIDMEM_Readable : VALIDMEM_Writeable); + + if (error != DS_NoError) { + *length = 0; + } else { + target_msr = __TRK_get_MSR(); + trk_msr = target_msr | gTRKCPUState.Extended1.MSR & 0x10; + + if (read) { + TRK_ppc_memcpy(data, addr, *length, target_msr, trk_msr); + } else { + TRK_ppc_memcpy(addr, data, *length, trk_msr, target_msr); + TRK_flush_cache(addr, *length); + if ((void*)start != addr) { + TRK_flush_cache((void*)start, *length); + } + } + } + + if (gTRKExceptionStatus.exceptionDetected) { + *length = 0; + error = DS_CWDSException; + } + + gTRKExceptionStatus = tempExceptionStatus; + return error; +} + +DSError TRKTargetReadInstruction(void* data, u32 start) +{ + DSError error; + size_t registersLength = 4; + + error = TRKTargetAccessMemory(data, start, ®istersLength, + MEMACCESS_UserMemory, TRUE); + + if (error == DS_NoError && registersLength != 4) { + error = DS_InvalidMemory; + } + + return error; +} + +DSError TRKTargetAccessDefault(u32 firstRegister, u32 lastRegister, + TRKBuffer* b, size_t* registersLengthPtr, + BOOL read) +{ + DSError error; + u32 count; + u32* data; + TRKExceptionStatus tempExceptionStatus; + + if (lastRegister > 0x24) { + return DS_InvalidRegister; + } + + tempExceptionStatus = gTRKExceptionStatus; + + data = gTRKCPUState.Default.GPR + firstRegister; + + count = (lastRegister - firstRegister) + 1; + + gTRKExceptionStatus.exceptionDetected = FALSE; + + *registersLengthPtr = count * sizeof(u32); + + if (read) { + error = TRKAppendBuffer_ui32(b, data, count); + } else { + error = TRKReadBuffer_ui32(b, data, count); + } + + if (gTRKExceptionStatus.exceptionDetected) { + *registersLengthPtr = 0; + error = DS_CWDSException; + } + + gTRKExceptionStatus = tempExceptionStatus; + return error; +} + +DSError TRKTargetAccessFP(u32 firstRegister, u32 lastRegister, TRKBuffer* b, + size_t* registersLengthPtr, BOOL read) +{ + u64 temp; + DSError error; + TRKExceptionStatus tempExceptionStatus; + u32 current; + + if (lastRegister > 0x21) { + return DS_InvalidRegister; + } + + tempExceptionStatus = gTRKExceptionStatus; + gTRKExceptionStatus.exceptionDetected = FALSE; + + __TRK_set_MSR(__TRK_get_MSR() | 0x2000); + + *registersLengthPtr = 0; + error = DS_NoError; + + for (current = firstRegister; + (current <= lastRegister) && (error == DS_NoError); + current++, *registersLengthPtr += sizeof(f64)) { + if (read) { + TRKPPCAccessFPRegister(&temp, current, read); + error = TRKAppendBuffer1_ui64(b, temp); + } else { + TRKReadBuffer1_ui64(b, &temp); + error = TRKPPCAccessFPRegister(&temp, current, read); + } + } + + if (gTRKExceptionStatus.exceptionDetected) { + *registersLengthPtr = 0; + error = DS_CWDSException; + } + + gTRKExceptionStatus = tempExceptionStatus; + return error; +} + +DSError TRKTargetAccessExtended1(u32 firstRegister, u32 lastRegister, + TRKBuffer* b, size_t* registersLengthPtr, + BOOL read) +{ + TRKExceptionStatus tempExceptionStatus; + int error; + u32* data; + int count; + + if (lastRegister > 0x60) { + return DS_InvalidRegister; + } + + tempExceptionStatus = gTRKExceptionStatus; + gTRKExceptionStatus.exceptionDetected = FALSE; + + *registersLengthPtr = 0; + + if (firstRegister <= lastRegister) { + data = (u32*)&gTRKCPUState.Extended1 + firstRegister; + count = lastRegister - firstRegister + 1; + *registersLengthPtr += count * sizeof(u32); + + if (read) { + error = TRKAppendBuffer_ui32(b, data, count); + } else { + if (data <= &gTRKCPUState.Extended1.TBU + && (data + count - 1) >= &gTRKCPUState.Extended1.TBL) { + gTRKRestoreFlags.TBR = 1; + } + + if (data <= &gTRKCPUState.Extended1.DEC + && (data + count - 1) >= &gTRKCPUState.Extended1.DEC) { + gTRKRestoreFlags.DEC = 1; + } + error = TRKReadBuffer_ui32(b, data, count); + } + } + if (gTRKExceptionStatus.exceptionDetected) { + *registersLengthPtr = 0; + error = DS_CWDSException; + } + + gTRKExceptionStatus = tempExceptionStatus; + return error; +} + +DSError TRKTargetAccessExtended2(u32 firstRegister, u32 lastRegister, + TRKBuffer* b, size_t* registerStorageSize, + BOOL read) +{ + TRKExceptionStatus savedException; + u32 i; + u32 value_buf0[1]; + u32 value_buf[2]; + DSError err; + u32 access_func[10]; + + if (lastRegister > 0x1f) + return DS_InvalidRegister; + + /* + ** Save any existing exception status and clear the exception flag. + ** This allows detection of exceptions that occur ONLY within this + ** function. + */ + + savedException = gTRKExceptionStatus; + gTRKExceptionStatus.exceptionDetected = FALSE; + + TRKPPCAccessSPR(value_buf0, SPR_HID2, TRUE); + + value_buf0[0] |= 0xA0000000; + TRKPPCAccessSPR(value_buf0, SPR_HID2, FALSE); + + value_buf0[0] = 0; + TRKPPCAccessSPR(value_buf0, SPR_GQR0, FALSE); + + *registerStorageSize = 0; + err = DS_NoError; + + for (i = firstRegister; (i <= lastRegister) && (err == DS_NoError); i++) { + if (read) { + err = TRKPPCAccessPairedSingleRegister((u64*)value_buf, i, read); + err = TRKAppendBuffer1_ui64(b, *(u64*)value_buf); + } else { + err = TRKReadBuffer1_ui64(b, (u64*)value_buf); + err = TRKPPCAccessPairedSingleRegister((u64*)value_buf, i, read); + } + + *registerStorageSize += sizeof(u64); + } + + if (gTRKExceptionStatus.exceptionDetected) { + *registerStorageSize = 0; + err = DS_CWDSException; + } + + gTRKExceptionStatus = savedException; + + return err; +} + +DSError TRKTargetVersions(DSVersions* versions) +{ + versions->kernelMajor = 0; + versions->kernelMinor = 8; + versions->protocolMajor = 1; + versions->protocolMinor = 10; + return DS_NoError; +} + +DSError TRKTargetSupportMask(u8 mask[32]) +{ + mask[0] = 0x7a; + mask[1] = 0; + mask[2] = 0x4f; + mask[3] = 7; + mask[4] = 0; + mask[5] = 0; + mask[6] = 0; + mask[7] = 0; + mask[8] = 0; + mask[9] = 0; + mask[10] = 0; + mask[0xb] = 0; + mask[0xc] = 0; + mask[0xd] = 0; + mask[0xe] = 0; + mask[0xf] = 0; + mask[0x10] = 1; + mask[0x11] = 0; + mask[0x12] = 3; + mask[0x13] = 0; + mask[0x14] = 0; + mask[0x15] = 0; + mask[0x16] = 0; + mask[0x17] = 0; + mask[0x18] = 0; + mask[0x19] = 0; + mask[0x1a] = 3; + mask[0x1b] = 0; + mask[0x1c] = 0; + mask[0x1d] = 0; + mask[0x1e] = 0; + mask[0x1f] = 0x80; + return DS_NoError; +} + +extern BOOL gTRKBigEndian; + +DSError TRKTargetCPUType(DSCPUType* cpuType) +{ + cpuType->cpuMajor = 0; + cpuType->cpuMinor = TRKTargetCPUMinorType(); + cpuType->bigEndian = gTRKBigEndian; + cpuType->defaultTypeSize = 4; + cpuType->fpTypeSize = 8; + cpuType->extended1TypeSize = 4; + cpuType->extended2TypeSize = 8; + return DS_NoError; +} + +asm void TRKInterruptHandler() +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + mtsrr0 r2 + mtsrr1 r4 + mfsprg r4, 3 + mfcr r2 + mtsprg 3, r2 + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + lwz r2, TRKState_PPC.MSR(r2) + ori r2, r2, 0x8002 + xori r2, r2, 0x8002 + sync + mtmsr r2 + sync + lis r2, TRK_saved_exceptionID@h + ori r2, r2, TRK_saved_exceptionID@l + sth r3, 0(r2) + cmpwi r3, 0x500 + bne L_802CF694 + lis r2, gTRKCPUState@h + ori r2, r2, gTRKCPUState@l + mflr r3 + stw r3, ProcessorState_PPC.transport_handler_saved_ra(r2) + bl TRKUARTInterruptHandler + lis r2, gTRKCPUState@h + ori r2, r2, gTRKCPUState@l + lwz r3, ProcessorState_PPC.transport_handler_saved_ra(r2) + mtlr r3 + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + lwz r2, TRKState_PPC.inputPendingPtr(r2) + lbz r2, TRKState_PPC.GPR[0](r2) + cmpwi r2, 0 + beq L_802CF678 + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + lbz r2, TRKExceptionStatus.inTRK(r2) + cmpwi r2, 1 + beq L_802CF678 + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + li r3, 1 + stb r3, TRKState_PPC.inputActivated(r2) + b L_802CF694 +L_802CF678: + lis r2, gTRKSaveState@h + ori r2, r2, gTRKSaveState@l + lwz r3, Default_PPC.CR(r2) + mtcrf 0xff, r3 + lwz r3, Default_PPC.GPR[3](r2) + lwz r2, Default_PPC.GPR[2](r2) + rfi +L_802CF694: + lis r2, TRK_saved_exceptionID@h + ori r2, r2, TRK_saved_exceptionID@l + lhz r3, 0(r2) + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + lbz r2, TRKExceptionStatus.inTRK(r2) + cmpwi r2, 0 + bne TRKExceptionHandler + lis r2, gTRKCPUState@h + ori r2, r2, gTRKCPUState@l + stw r0, ProcessorState_PPC.Default.GPR[0](r2) + stw r1, ProcessorState_PPC.Default.GPR[1](r2) + mfsprg r0, 1 + stw r0, ProcessorState_PPC.Default.GPR[2](r2) + sth r3, ProcessorState_PPC.Extended1.exceptionID(r2) + sth r3, (ProcessorState_PPC.Extended1.exceptionID + 2)(r2) + mfsprg r0, 2 + stw r0, ProcessorState_PPC.Default.GPR[3](r2) + stmw r4, ProcessorState_PPC.Default.GPR[4](r2) + mfsrr0 r27 + mflr r28 + mfsprg r29, 3 + mfctr r30 + mfxer r31 + stmw r27, ProcessorState_PPC.Default.PC(r2) + bl TRKSaveExtended1Block + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + li r3, 1 + stb r3, TRKExceptionStatus.inTRK(r2) + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + lwz r0, TRKState_PPC.MSR(r2) + sync + mtmsr r0 + sync + lwz r0, TRKState_PPC.LR(r2) + mtlr r0 + lwz r0, TRKState_PPC.CTR(r2) + mtctr r0 + lwz r0, TRKState_PPC.XER(r2) + mtxer r0 + lwz r0, TRKState_PPC.DSISR(r2) + mtdsisr r0 + lwz r0, TRKState_PPC.DAR(r2) + mtdar r0 + lmw r3, TRKState_PPC.GPR[3](r2) + lwz r0, TRKState_PPC.GPR[0](r2) + lwz r1, TRKState_PPC.GPR[1](r2) + lwz r2, TRKState_PPC.GPR[2](r2) + b TRKPostInterruptEvent +#endif // clang-format on +} + +static asm void TRKExceptionHandler(u16) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + sth r3, TRKExceptionStatus.exceptionInfo.exceptionID(r2) + mfsrr0 r3 + stw r3, TRKExceptionStatus.exceptionInfo.PC(r2) + lhz r3, TRKExceptionStatus.exceptionInfo.exceptionID(r2) + cmpwi r3, 0x200 + beq LAB_00010ba4 + cmpwi r3, 0x300 + beq LAB_00010ba4 + cmpwi r3, 0x400 + beq LAB_00010ba4 + cmpwi r3, 0x600 + beq LAB_00010ba4 + cmpwi r3, 0x700 + beq LAB_00010ba4 + cmpwi r3, 0x800 + beq LAB_00010ba4 + cmpwi r3, 0x1000 + beq LAB_00010ba4 + cmpwi r3, 0x1100 + beq LAB_00010ba4 + cmpwi r3, 0x1200 + beq LAB_00010ba4 + cmpwi r3, 0x1300 + beq LAB_00010ba4 + b LAB_00010bb0 +LAB_00010ba4: + mfsrr0 r3 + addi r3, r3, 0x4 + mtsrr0 r3 +LAB_00010bb0: + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + li r3, 0x1 + stb r3, TRKExceptionStatus.exceptionDetected(r2) + mfsprg r3, 3 + mtcrf 0xff, r3 + mfsprg r2, 1 + mfsprg r3, 2 + rfi +#endif // clang-format on +} + +void TRKPostInterruptEvent(void) +{ + NubEventType eventType; + u32 inst; + TRKEvent event; + + if (gTRKState.inputActivated) { + gTRKState.inputActivated = FALSE; + } else { + switch (gTRKCPUState.Extended1.exceptionID & 0xFFFF) { + case 0xd00: + case 0x700: + TRKTargetReadInstruction(&inst, gTRKCPUState.Default.PC); + + if (inst == 0xfe00000) { + eventType = NUBEVENT_Support; + } else { + eventType = NUBEVENT_Breakpoint; + } + break; + default: + eventType = NUBEVENT_Exception; + break; + } + + TRKConstructEvent(&event, eventType); + TRKPostEvent(&event); + } +} + +asm void TRKSwapAndGo() +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + lis r3, gTRKState@h + ori r3, r3, gTRKState@l + stmw r0, TRKState_PPC.GPR[0](r3) + mfmsr r0 + stw r0, TRKState_PPC.MSR(r3) + mflr r0 + stw r0, TRKState_PPC.LR(r3) + mfctr r0 + stw r0, TRKState_PPC.CTR(r3) + mfxer r0 + stw r0, TRKState_PPC.XER(r3) + mfdsisr r0 + stw r0, TRKState_PPC.DSISR(r3) + mfdar r0 + stw r0, TRKState_PPC.DAR(r3) + li r1, -0x7ffe + nor r1, r1, r1 + mfmsr r3 + and r3, r3, r1 + mtmsr r3 + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + lwz r2, TRKState_PPC.inputPendingPtr(r2) + lbz r2, TRKState_PPC.GPR[0](r2) + cmpwi r2, 0 + beq L_802CF930 + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + li r3, 1 + stb r3, TRKState_PPC.inputActivated(r2) + b TRKInterruptHandlerEnableInterrupts +L_802CF930: + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + li r3, 0 + stb r3, 0xc(r2) + bl TRKRestoreExtended1Block + lis r2, gTRKCPUState@h + ori r2, r2, gTRKCPUState@l + lmw r27, ProcessorState_PPC.Default.PC(r2) + mtsrr0 r27 + mtlr r28 + mtcrf 0xff, r29 + mtctr r30 + mtxer r31 + lmw r3, ProcessorState_PPC.Default.GPR[3](r2) + lwz r0, ProcessorState_PPC.Default.GPR[0](r2) + lwz r1, ProcessorState_PPC.Default.GPR[1](r2) + lwz r2, ProcessorState_PPC.Default.GPR[2](r2) + rfi +#endif // clang-format on +} + +asm void TRKInterruptHandlerEnableInterrupts(void) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc; + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + lwz r0, TRKState_PPC.MSR(r2) + sync + mtmsr r0 + sync + lwz r0, TRKState_PPC.LR(r2) + mtlr r0 + lwz r0, TRKState_PPC.CTR(r2) + mtctr r0 + lwz r0, TRKState_PPC.XER(r2) + mtxer r0 + lwz r0, TRKState_PPC.DSISR(r2) + mtdsisr r0 + lwz r0, TRKState_PPC.DAR(r2) + mtdar r0 + lmw r3, TRKState_PPC.GPR[3](r2) + lwz r0, TRKState_PPC.GPR[0](r2) + lwz r1, TRKState_PPC.GPR[1](r2) + lwz r2, TRKState_PPC.GPR[2](r2) + b TRKPostInterruptEvent +#endif // clang-format on +} + +DSError TRKTargetInterrupt(TRKEvent* event) +{ + DSError error = DS_NoError; + switch (event->eventType) { + case NUBEVENT_Breakpoint: + case NUBEVENT_Exception: + if (TRKTargetCheckStep() == FALSE) { + TRKTargetSetStopped(TRUE); + error = TRKDoNotifyStopped(DSMSG_NotifyStopped); + } + break; + default: + break; + } + + return error; +} + +DSError TRKTargetAddStopInfo(TRKBuffer* buffer) +{ + DSError error; + u32 instruction; + + error = TRKAppendBuffer1_ui32(buffer, gTRKCPUState.Default.PC); + if (error == 0) { + error = TRKTargetReadInstruction(&instruction, gTRKCPUState.Default.PC); + } + if (error == 0) + error = TRKAppendBuffer1_ui32(buffer, instruction); + if (error == 0) + error + = TRKAppendBuffer1_ui16(buffer, gTRKCPUState.Extended1.exceptionID); + return error; +} + +DSError TRKTargetAddExceptionInfo(TRKBuffer* buffer) +{ + DSError error; + u32 local_10; + + error = TRKAppendBuffer1_ui32(buffer, gTRKExceptionStatus.exceptionInfo.PC); + if (error == 0) { + error = TRKTargetReadInstruction(&local_10, + gTRKExceptionStatus.exceptionInfo.PC); + } + if (error == 0) { + error = TRKAppendBuffer1_ui32(buffer, local_10); + } + if (error == 0) { + error = TRKAppendBuffer1_ui16( + buffer, gTRKExceptionStatus.exceptionInfo.exceptionID); + } + + return error; +} + +static DSError TRKTargetEnableTrace(BOOL val) +{ + if (val) { + gTRKCPUState.Extended1.MSR = (gTRKCPUState.Extended1.MSR | 0x400); + } else { + gTRKCPUState.Extended1.MSR = (gTRKCPUState.Extended1.MSR & ~0x400); + } + return DS_NoError; +} + +static BOOL TRKTargetStepDone() +{ + BOOL result = TRUE; + + if (gTRKStepStatus.active + && ((u16)gTRKCPUState.Extended1.exceptionID) == PPC_Trace) { + switch (gTRKStepStatus.type) { + case DSSTEP_IntoCount: + if (gTRKStepStatus.count > 0) { + result = FALSE; + } + break; + case DSSTEP_IntoRange: + if (gTRKCPUState.Default.PC >= gTRKStepStatus.rangeStart + && gTRKCPUState.Default.PC <= gTRKStepStatus.rangeEnd) { + result = FALSE; + } + break; + default: + break; + } + } + + return result; +} + +static DSError TRKTargetDoStep() +{ + gTRKStepStatus.active = TRUE; + TRKTargetEnableTrace(TRUE); + + if (gTRKStepStatus.type == DSSTEP_IntoCount + || gTRKStepStatus.type == DSSTEP_OverCount) { + gTRKStepStatus.count--; + } + + TRKTargetSetStopped(FALSE); + return DS_NoError; +} + +static BOOL TRKTargetCheckStep() +{ + if (gTRKStepStatus.active) { + TRKTargetEnableTrace(FALSE); + + if (TRKTargetStepDone()) { + gTRKStepStatus.active = FALSE; + } else { + TRKTargetDoStep(); + } + } + + return gTRKStepStatus.active; +} + +DSError TRKTargetSingleStep(u32 count, BOOL stepOver) +{ + DSError error = DS_NoError; + + if (stepOver) { + error = DS_UnsupportedError; + } else { + gTRKStepStatus.count = count; + gTRKStepStatus.type = DSSTEP_IntoCount; + error = TRKTargetDoStep(); + } + + return error; +} + +DSError TRKTargetStepOutOfRange(u32 rangeStart, u32 rangeEnd, BOOL stepOver) +{ + DSError error = DS_NoError; + + if (stepOver) { + // Stepping over isn't supported for PowerPC + error = DS_UnsupportedError; + } else { + gTRKStepStatus.type = DSSTEP_IntoRange; + // gTRKStepStatus.active = TRUE; + gTRKStepStatus.rangeStart = rangeStart; + gTRKStepStatus.rangeEnd = rangeEnd; + error = TRKTargetDoStep(); + } + + return error; +} + +u32 TRKTargetGetPC() { return gTRKCPUState.Default.PC; } + +DSError TRKTargetSupportRequest() +{ + DSError error; + size_t* length; + DSIOResult ioResult; + MessageCommandID commandId; + TRKEvent event; + + commandId = gTRKCPUState.Default.GPR[3]; + if (commandId != DSMSG_ReadFile && commandId != DSMSG_WriteFile) { + TRKConstructEvent(&event, 4); + TRKPostEvent(&event); + return DS_NoError; + } else { + length = (size_t*)gTRKCPUState.Default.GPR[5]; + error = TRKSuppAccessFile((u8)gTRKCPUState.Default.GPR[4], + (u8*)gTRKCPUState.Default.GPR[6], length, + &ioResult, TRUE, commandId == DSMSG_ReadFile); + + if (ioResult == DS_IONoError && error != DS_NoError) { + ioResult = DS_IOError; + } + + gTRKCPUState.Default.GPR[3] = ioResult; + + if (commandId == DSMSG_ReadFile) { + TRK_flush_cache((void*)gTRKCPUState.Default.GPR[6], *length); + } + } + + gTRKCPUState.Default.PC += 4; + return error; +} + +DSError TRKTargetFlushCache(u8, void* start, void* end) +{ + if (start < end) { + TRK_flush_cache(start, (u8*)end - (u8*)start); + return DS_NoError; + } + + return DS_InvalidMemory; +} + +BOOL TRKTargetStopped() { return gTRKState.isStopped; } + +void TRKTargetSetStopped(unsigned int stopped) +{ + gTRKState.isStopped = stopped; +} + +u32 TRKTargetStop() +{ + TRKTargetSetStopped(1); + return 0; +} + +DSError TRKPPCAccessSPR(void* value, u32 spr_register_num, BOOL read) +{ + /* Initialize instruction array with nop */ + + u32 access_func[5] + = { INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP }; + /* + ** Construct a small assembly function to perform the + ** requested access and call it. The read/write function + ** is in the form: + ** + ** read: + ** mfspr r4, spr_register_num + ** stw r4, 0(r3) + ** blr + ** + ** write: + ** lwz r4, 0(r3) + ** mtspr spr_register_num, r4 + ** blr + ** + */ + + if (read) { + access_func[0] = INSTR_MFSPR(4, spr_register_num); + access_func[1] = (u32)INSTR_STW(4, 0, 3); + } else { + access_func[0] = (u32)INSTR_LWZ(4, 0, 3); + access_func[1] = INSTR_MTSPR(spr_register_num, 4); + } + + return TRKPPCAccessSpecialReg(value, access_func, read); +} + +DSError TRKPPCAccessPairedSingleRegister(void* srcDestPtr, u32 psr, BOOL read) +{ + // all nop by default + u32 instructionData[] + = { INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP }; + + if (read) { + instructionData[0] + = INSTR_PSQ_ST(psr, 0, 3, 0, 0); // psq_st psr, 0(r3), 0, 0 + } else { + instructionData[0] + = INSTR_PSQ_L(psr, 0, 3, 0, 0); // psq_l psr, 0(r3), 0, 0 + } + + return TRKPPCAccessSpecialReg(srcDestPtr, instructionData, read); +} + +DSError TRKPPCAccessFPRegister(void* srcDestPtr, u32 fpr, BOOL read) +{ + DSError error = DS_NoError; + // all nop by default + u32 instructionData1[] + = { INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP }; + + if (fpr < 0x20) { + if (read) { + instructionData1[0] = INSTR_STFD(fpr, 0, 3); // stfd fpr, 0(r3) + } else { + instructionData1[0] = INSTR_LFD(fpr, 0, 3); // lfd fpr, 0(r3) + } + + error = TRKPPCAccessSpecialReg(srcDestPtr, instructionData1, read); + } else if (fpr == 0x20) { + if (read) { + instructionData1[0] = INSTR_STFD(1, 0, 4); // stfd f1, 0(r4) + instructionData1[1] = 0xfc20048e; // mtfsf 0xff, f1 + instructionData1[2] = INSTR_STFD(1, 0, 3); // stfd f1, 0(r3) + instructionData1[3] = INSTR_LFD(1, 0, 4); // lfd f1, 0(r4) + } else { + instructionData1[0] = INSTR_STFD(1, 0, 4); // stfd f1, 0(r4) + instructionData1[1] = INSTR_LFD(1, 0, 3); // lfd f1, 0(r4) + instructionData1[2] = 0xfdfe0d8e; // mtfsf 0xff, f1 + instructionData1[3] = INSTR_LFD(1, 0, 4); // lfd f1, 0(r4) + } + error = TRKPPCAccessSpecialReg(srcDestPtr, instructionData1, read); + *(u64*)srcDestPtr &= 0xFFFFFFFF; + } else if (fpr == 0x21) { + if (!read) { + *(u32*)srcDestPtr = *((u32*)(srcDestPtr) + 1); + } + + error = TRKPPCAccessSPR(srcDestPtr, SPR_FPECR, read); + if (read) { + DSFetch_u64(srcDestPtr) = DSFetch_u32(srcDestPtr) & 0xffffffffLL; + } + } + + return error; +} + +#define DEBUG_VECTORREG_ACCESS 0 + +DSError TRKPPCAccessSpecialReg(void* value, u32* access_func, BOOL read) +{ + typedef void (*asm_access_type)(void*, void*); + + asm_access_type asm_access; + + /* + ** Construct a small assembly function to perform the + ** requested access and call it. The read/write function + ** is in the form: + ** + ** + ** blr + */ + + /* + ** Put blr instruction at the end of access function (it should be + ** a 5-instruction array w/the last one empty). + */ + + access_func[9] = INSTR_BLR; + + /* + ** Now that the instruction array is built, get a function pointer to it. + */ + + asm_access = (asm_access_type)access_func; + +#if DEBUG_VECTORREG_ACCESS + + __puts("\r\nasm_access: "); + __puthex8((u32)asm_access); + __puts(" access_func: "); + __puthex8((u32)access_func); + + for (i = 0; i < 10; i++) { + __puts("\r\ninst["); + __puthex2(i); + __puts("]: "); + __puthex8(access_func[i]); + __puts(" ; "); + __puthex8(*((u32*)asm_access + i)); + } + + __puts("\r\n"); + +#endif + + // Flush cache + TRK_flush_cache(access_func, (sizeof(access_func) * 10)); + (*asm_access)((u32*)value, (void*)&TRKvalue128_temp); + + return DS_NoError; +} + +void TRKTargetSetInputPendingPtr(void* ptr) { gTRKState.inputPendingPtr = ptr; } diff --git a/src/TRK_MINNOW_DOLPHIN/usr_put.c b/src/TRK_MINNOW_DOLPHIN/usr_put.c new file mode 100644 index 00000000..eda11e06 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/usr_put.c @@ -0,0 +1,5 @@ +#include "TRK_MINNOW_DOLPHIN/Os/dolphin/usr_put.h" +#include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h" +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +void usr_put_initialize(void) { } diff --git a/src/dolphin/gx/GXFifo.c b/src/dolphin/gx/GXFifo.c index 963be184..583303a0 100644 --- a/src/dolphin/gx/GXFifo.c +++ b/src/dolphin/gx/GXFifo.c @@ -6,15 +6,15 @@ #include -static OSThread *__GXCurrentThread; +static struct __GXFifoObj* CPUFifo; +static struct __GXFifoObj* GPFifo; +static OSThread* __GXCurrentThread; static GXBool CPGPLinked; static BOOL GXOverflowSuspendInProgress; static GXBreakPtCallback BreakPointCB; static u32 __GXOverflowCount; -struct __GXFifoObj *CPUFifo; -struct __GXFifoObj *GPFifo; -void *__GXCurrentBP; +void* __GXCurrentBP; static void __GXFifoReadEnable(void); static void __GXFifoReadDisable(void); @@ -38,10 +38,10 @@ static void GXUnderflowHandler(s16 interrupt, OSContext *context) { ASSERTLINE(0x1A3, GXOverflowSuspendInProgress); - OSResumeThread(__GXCurrentThread); - GXOverflowSuspendInProgress = FALSE; - __GXWriteFifoIntReset(1U, 1U); - __GXWriteFifoIntEnable(1U, 0U); + OSResumeThread(__GXCurrentThread); + GXOverflowSuspendInProgress = FALSE; + __GXWriteFifoIntReset(1U, 1U); + __GXWriteFifoIntEnable(1U, 0U); } #define SOME_SET_REG_MACRO(reg, size, shift, val) \ @@ -51,17 +51,17 @@ static void GXUnderflowHandler(s16 interrupt, OSContext *context) static void GXBreakPointHandler(s16 interrupt, OSContext *context) { - OSContext exceptionContext; + OSContext exceptionContext; - SOME_SET_REG_MACRO(gx->cpEnable, 1, 5, 0); - GX_SET_CP_REG(1, gx->cpEnable); - if (BreakPointCB != NULL) { - OSClearContext(&exceptionContext); - OSSetCurrentContext(&exceptionContext); - BreakPointCB(); - OSClearContext(&exceptionContext); - OSSetCurrentContext(context); - } + gx->cpEnable = gx->cpEnable & 0xFFFFFFDF; + __cpReg[1] = gx->cpEnable; + if (BreakPointCB != NULL) { + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + BreakPointCB(); + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); + } } static void GXCPInterruptHandler(s16 interrupt, OSContext *context) diff --git a/src/dolphin/gx/GXFrameBuf.c b/src/dolphin/gx/GXFrameBuf.c index 4c04abab..9c12a892 100644 --- a/src/dolphin/gx/GXFrameBuf.c +++ b/src/dolphin/gx/GXFrameBuf.c @@ -291,26 +291,25 @@ f32 GXGetYScaleFactor(u16 efbHeight, u16 xfbHeight) u32 GXSetDispCopyYScale(f32 vscale) { - u8 enable; - u32 iScale; - u32 ht; - u32 reg; + u32 scale; + GXBool check; + u32 height; + u32 reg; - CHECK_GXBEGIN(0x615, "GXSetDispCopyYScale"); + scale = (u32)(256.0f / vscale) & 0x1FF; + check = (scale != 0x100); - ASSERTMSGLINE(0x617, vscale >= 1.0f, "GXSetDispCopyYScale: Vertical scale must be >= 1.0"); + reg = 0; + SET_REG_FIELD(0, reg, 9, 0, scale); + SET_REG_FIELD(0, reg, 8, 24, 0x4E); + GX_WRITE_RAS_REG(reg); + gx->bpSentNot = GX_FALSE; - iScale = (u32)(256.0f / vscale) & 0x1FF; - enable = (iScale != 256); + SET_REG_FIELD(0, gx->cpDisp, 1, 10, check); - reg = 0; - SET_REG_FIELD(0x61E, reg, 9, 0, iScale); - SET_REG_FIELD(0x61E, reg, 8, 24, 0x4E); - GX_WRITE_RAS_REG(reg); - gx->bpSentNot = 0; - SET_REG_FIELD(0x623, gx->cpDisp, 1, 10, enable); - ht = GET_REG_FIELD(gx->cpDispSize, 10, 10) + 1; - return __GXGetNumXfbLines(ht, iScale); + height = (gx->cpDispSize >> 10 & 0x3FF) + 1; + + return __GXGetNumXfbLines(height, scale); } void GXSetCopyClear(GXColor clear_clr, u32 clear_z) diff --git a/src/dolphin/gx/GXInit.c b/src/dolphin/gx/GXInit.c index 82874fab..e6774ba7 100644 --- a/src/dolphin/gx/GXInit.c +++ b/src/dolphin/gx/GXInit.c @@ -65,150 +65,134 @@ static GXTlutRegion *__GXDefaultTlutRegionCallback(u32 idx) GXFifoObj FifoObj; -GXFifoObj *GXInit(void *base, u32 size) +GXFifoObj* GXInit(void* base, u32 size) { - u32 i; - u32 reg; - u32 freqBase; + u32 i; + u32 reg; + u32 freqBase; + char stack_padding[8]; - // OSRegisterVersion(__GXVersion); + gx->inDispList = FALSE; + gx->dlSaveContext = TRUE; - gx->inDispList = FALSE; - gx->dlSaveContext = TRUE; - // gx->abtWaitPECopy = 1; -#if DEBUG - __GXinBegin = FALSE; -#endif - gx->tcsManEnab = FALSE; - gx->tevTcEnab = FALSE; - - GXSetMisc(GX_MT_XF_FLUSH, 0); + gx->tcsManEnab = FALSE; + gx->tevTcEnab = 0; + GXSetMisc(GX_MT_XF_FLUSH, 0); + __piReg = OSPhysicalToUncached(0xC003000); + __cpReg = OSPhysicalToUncached(0xC000000); + __peReg = OSPhysicalToUncached(0xC001000); + __memReg = OSPhysicalToUncached(0xC004000); + __GXFifoInit(); + GXInitFifoBase(&FifoObj, base, size); + GXSetCPUFifo(&FifoObj); + GXSetGPFifo(&FifoObj); + __GXPEInit(); + EnableWriteGatherPipe(); - __piReg = OSPhysicalToUncached(0xC003000); - __cpReg = OSPhysicalToUncached(0xC000000); - __peReg = OSPhysicalToUncached(0xC001000); - __memReg = OSPhysicalToUncached(0xC004000); - // __GXFifoInit(); - // GXInitFifoBase(&FifoObj, base, size); - // GXSetCPUFifo(&FifoObj); - // GXSetGPFifo(&FifoObj); + gx->genMode = 0; + SET_REG_FIELD(0, gx->genMode, 8, 24, 0); + gx->bpMask = 255; + SET_REG_FIELD(0, gx->bpMask, 8, 24, 0x0F); + gx->lpSize = 0; + SET_REG_FIELD(0, gx->lpSize, 8, 24, 0x22); + for (i = 0; i < 16; ++i) { + gx->tevc[i] = 0; + gx->teva[i] = 0; + gx->tref[i / 2] = 0; + gx->texmapId[i] = GX_TEXMAP_NULL; + SET_REG_FIELD(0x2F2, gx->tevc[i], 8, 24, 0xC0 + i * 2); + SET_REG_FIELD(0x2F3, gx->teva[i], 8, 24, 0xC1 + i * 2); + SET_REG_FIELD(0x2F5, gx->tevKsel[i / 2], 8, 24, 0xF6 + i / 2); + SET_REG_FIELD(0x2F7, gx->tref[i / 2], 8, 24, 0x28 + i / 2); + } + gx->iref = 0; + SET_REG_FIELD(0, gx->iref, 8, 24, 0x27); + for (i = 0; i < 8; ++i) { + gx->suTs0[i] = 0; + gx->suTs1[i] = 0; + SET_REG_FIELD(0x300, gx->suTs0[i], 8, 24, 0x30 + i * 2); + SET_REG_FIELD(0x301, gx->suTs1[i], 8, 24, 0x31 + i * 2); + } + SET_REG_FIELD(0, gx->suScis0, 8, 24, 0x20); + SET_REG_FIELD(0, gx->suScis1, 8, 24, 0x21); + SET_REG_FIELD(0, gx->cmode0, 8, 24, 0x41); + SET_REG_FIELD(0, gx->cmode1, 8, 24, 0x42); + SET_REG_FIELD(0, gx->zmode, 8, 24, 0x40); + SET_REG_FIELD(0, gx->peCtrl, 8, 24, 0x43); + SET_REG_FIELD(0, gx->cpTex, 2, 7, 0); + gx->dirtyState = 0; + gx->dirtyVAT = FALSE; - // if (!resetFuncRegistered) { - // OSRegisterResetFunction(&GXResetFuncInfo); - // resetFuncRegistered = 1; - // } + freqBase = __OSBusClock / 500; + __GXFlushTextureState(); + reg = (freqBase >> 11) | 0x400 | 0x69000000; + GX_WRITE_RAS_REG(reg); - // __GXPEInit(); - // EnableWriteGatherPipe(); + __GXFlushTextureState(); + reg = (freqBase / 0x1080) | 0x200 | 0x46000000; + GX_WRITE_RAS_REG(reg); - gx->genMode = 0; - SET_REG_FIELD(0, gx->genMode, 8, 24, 0); - gx->bpMask = 255; - SET_REG_FIELD(0, gx->bpMask, 8, 24, 0x0F); - gx->lpSize = 0; - SET_REG_FIELD(0, gx->lpSize, 8, 24, 0x22); - for (i = 0; i < 16; ++i) { - gx->tevc[i] = 0; - gx->teva[i] = 0; - gx->tref[i / 2] = 0; - gx->texmapId[i] = GX_TEXMAP_NULL; - SET_REG_FIELD(0x46A, gx->tevc[i], 8, 24, 0xC0 + i * 2); - SET_REG_FIELD(0x46B, gx->teva[i], 8, 24, 0xC1 + i * 2); - SET_REG_FIELD(0x46D, gx->tevKsel[i / 2], 8, 24, 0xF6 + i / 2); - SET_REG_FIELD(0x46F, gx->tref[i / 2], 8, 24, 0x28 + i / 2); - } - gx->iref = 0; - SET_REG_FIELD(0, gx->iref, 8, 24, 0x27); - for (i = 0; i < 8; ++i) { - gx->suTs0[i] = 0; - gx->suTs1[i] = 0; - SET_REG_FIELD(0x478, gx->suTs0[i], 8, 24, 0x30 + i * 2); - SET_REG_FIELD(0x479, gx->suTs1[i], 8, 24, 0x31 + i * 2); - } - SET_REG_FIELD(0, gx->suScis0, 8, 24, 0x20); - SET_REG_FIELD(0, gx->suScis1, 8, 24, 0x21); - SET_REG_FIELD(0, gx->cmode0, 8, 24, 0x41); - SET_REG_FIELD(0, gx->cmode1, 8, 24, 0x42); - SET_REG_FIELD(0, gx->zmode, 8, 24, 0x40); - SET_REG_FIELD(0, gx->peCtrl, 8, 24, 0x43); - SET_REG_FIELD(0, gx->cpTex, 2, 7, 0); + for (i = GX_VTXFMT0; i < GX_MAX_VTXFMT; i++) { + SET_REG_FIELD(0, gx->vatA[i], 1, 30, 1); + SET_REG_FIELD(0, gx->vatB[i], 1, 31, 1); + do { + s32 regAddr; + GX_WRITE_U8(GX_LOAD_CP_REG); + GX_WRITE_U8(i | 0x80); + GX_WRITE_U32(gx->vatB[i]); + regAddr = i - 12; + } while (0); + } + { + u32 reg1 = 0; + u32 reg2 = 0; + SET_REG_FIELD(0, reg1, 1, 0, 1); + SET_REG_FIELD(0, reg1, 1, 1, 1); + SET_REG_FIELD(0, reg1, 1, 2, 1); + SET_REG_FIELD(0, reg1, 1, 3, 1); + SET_REG_FIELD(0, reg1, 1, 4, 1); + SET_REG_FIELD(0, reg1, 1, 5, 1); + GX_WRITE_XF_REG(0, reg1); + SET_REG_FIELD(0, reg2, 1, 0, 1); + GX_WRITE_XF_REG(0x12, reg2); + } + { + u32 reg = 0; + SET_REG_FIELD(0, reg, 1, 0, 1); + SET_REG_FIELD(0, reg, 1, 1, 1); + SET_REG_FIELD(0, reg, 1, 2, 1); + SET_REG_FIELD(0, reg, 1, 3, 1); + SET_REG_FIELD(0, reg, 8, 24, 0x58); + GX_WRITE_RAS_REG(reg); + } + for (i = 0; i < 8; i++) + GXInitTexCacheRegion(&gx->TexRegions[i], 0, i * 0x8000, 0, + 0x80000 + i * 0x8000, 0); + for (i = 0; i < 4; i++) + GXInitTexCacheRegion(&gx->TexRegionsCI[i], 0, (i * 2 + 8) * 0x8000, 0, + (i * 2 + 9) * 0x8000, 0); + for (i = 0; i < 16; i++) + GXInitTlutRegion(&gx->TlutRegions[i], 0xC0000 + i * 0x2000, 16); + for (i = 0; i < 4; i++) + GXInitTlutRegion(&gx->TlutRegions[i + 16], 0xE0000 + i * 0x8000, 64); + __cpReg[3] = 0; - // gx->zScale = 1.6777216E7f; - // gx->zOffset = 0.0f; - gx->dirtyState = 0; - gx->dirtyVAT = FALSE; -#if DEBUG - __gxVerif->verifyLevel = GX_WARN_NONE; - GXSetVerifyCallback((GXVerifyCallback)__GXDefaultVerifyCallback); - for (i = 0; i < 256; i++) { - SET_REG_FIELD(0, __gxVerif->rasRegs[i], 8, 24, 0xFF); - } - memset(__gxVerif->xfRegsDirty, 0, 0x50); - memset(__gxVerif->xfMtxDirty, 0, 0x100); - memset(__gxVerif->xfNrmDirty, 0, 0x60); - memset(__gxVerif->xfLightDirty, 0, 0x80); -#endif - freqBase = __OSBusClock / 500; - // __GXFlushTextureState(); - reg = (freqBase >> 11) | 0x400 | 0x69000000; - GX_WRITE_RAS_REG(reg); + { + SET_REG_FIELD(0, gx->perfSel, 4, 4, 0); + GX_WRITE_U8(GX_LOAD_CP_REG); + GX_WRITE_U8(0x20); + GX_WRITE_U32(gx->perfSel); + GX_WRITE_U8(GX_LOAD_XF_REG); + GX_WRITE_U32(0x1006); + GX_WRITE_U32(0); + GX_WRITE_RAS_REG(0x23000000); + GX_WRITE_RAS_REG(0x24000000); + GX_WRITE_RAS_REG(0x67000000); + } - // __GXFlushTextureState(); - reg = (freqBase / 0x1080) | 0x200 | 0x46000000; - GX_WRITE_RAS_REG(reg); - - // __GXInitRevisionBits(); - - // for (i = 0; i < 8; i++) { - // GXInitTexCacheRegion(&gx->TexRegions0[i], GX_FALSE, GXTexRegionAddrTable[i], - // GX_TEXCACHE_32K, GXTexRegionAddrTable[i + 8], GX_TEXCACHE_32K); - // GXInitTexCacheRegion(&gx->TexRegions1[i], GX_FALSE, GXTexRegionAddrTable[i + 16], - // GX_TEXCACHE_32K, GXTexRegionAddrTable[i + 24], GX_TEXCACHE_32K); - // GXInitTexCacheRegion(&gx->TexRegions2[i], GX_TRUE, GXTexRegionAddrTable[i + 32], - // GX_TEXCACHE_32K, GXTexRegionAddrTable[i + 40], GX_TEXCACHE_32K); - // } - - // for (i = 0; i < 16; i++) { - // GXInitTlutRegion(&gx->TlutRegions[i], 0xC0000 + 0x2000 * i, GX_TLUT_256); - // } - - // for (i = 0; i < 4; i++) { - // GXInitTlutRegion(&gx->TlutRegions[i + 16], 0xE0000 + 0x8000 * i, GX_TLUT_1K); - // } - - { - u32 reg = 0; -#if DEBUG - s32 regAddr; -#endif - GX_SET_CP_REG(3, reg); - - SET_REG_FIELD(0, gx->perfSel, 4, 4, 0); - GX_WRITE_U8(0x8); - GX_WRITE_U8(0x20); - GX_WRITE_U32(gx->perfSel); -#if DEBUG - regAddr = -12; -#endif - - reg = 0; - GX_WRITE_XF_REG(6, reg); - - reg = 0x23000000; - GX_WRITE_RAS_REG(reg); - - reg = 0x24000000; - GX_WRITE_RAS_REG(reg); - - reg = 0x67000000; - GX_WRITE_RAS_REG(reg); - } - - __GXSetIndirectMask(0); - __GXSetTmemConfig(2); - __GXInitGX(); - - return &FifoObj; + __GXSetTmemConfig(0); + __GXInitGX(); + return &FifoObj; } void __GXInitGX() diff --git a/src/dolphin/mtx/mtx.c b/src/dolphin/mtx/mtx.c index a8f2bb06..eb16a64f 100644 --- a/src/dolphin/mtx/mtx.c +++ b/src/dolphin/mtx/mtx.c @@ -3,6 +3,8 @@ static f32 Unit01[] = { 0.0f, 1.0f }; extern f32 sinf(f32); +extern f32 cosf(f32); +extern f32 tanf(f32); void C_MTXIdentity(Mtx mtx) { @@ -648,12 +650,12 @@ void C_MTXRotRad(Mtx m, char axis, f32 rad) #ifdef GEKKO void PSMTXRotRad(Mtx m, char axis, f32 rad) { - // f32 sinA, cosA; + f32 sinA, cosA; - // sinA = sinf(rad); - // cosA = cosf(rad); + sinA = sinf(rad); + cosA = cosf(rad); - // PSMTXRotTrig(m, axis, sinA, cosA); + PSMTXRotTrig(m, axis, sinA, cosA); } #endif @@ -717,68 +719,63 @@ void C_MTXRotTrig(Mtx m, char axis, f32 sinA, f32 cosA) #ifdef GEKKO void PSMTXRotTrig(register Mtx m, register char axis, register f32 sinA, register f32 cosA) { -// register f32 fc0, fc1, nsinA; -// register f32 fw0, fw1, fw2, fw3; -// // clang-format off -// asm -// { -// frsp sinA, sinA -// frsp cosA, cosA -// } + register f32 fc0, fc1, nsinA; + register f32 fw0, fw1, fw2, fw3; + // clang-format off -// fc0 = 0.0F; -// fc1 = 1.0F; -// asm -// { -// ori axis, axis, 0x20 -// ps_neg nsinA, sinA -// cmplwi axis, 'x' -// beq _case_x -// cmplwi axis, 'y' -// beq _case_y -// cmplwi axis, 'z' -// beq _case_z -// b _end + fc0 = 0.0F; + fc1 = 1.0F; + asm + { + ori axis, axis, 0x20 + ps_neg nsinA, sinA + cmplwi axis, 'x' + beq _case_x + cmplwi axis, 'y' + beq _case_y + cmplwi axis, 'z' + beq _case_z + b _end -// _case_x: -// psq_st fc1, 0(m), 1, 0 -// psq_st fc0, 4(m), 0, 0 -// ps_merge00 fw0, sinA, cosA -// psq_st fc0, 12(m), 0, 0 -// ps_merge00 fw1, cosA, nsinA -// psq_st fc0, 28(m), 0, 0 -// psq_st fc0, 44(m), 1, 0 -// psq_st fw0, 36(m), 0, 0 -// psq_st fw1, 20(m), 0, 0 -// b _end; +_case_x: + psq_st fc1, 0(m), 1, 0 + psq_st fc0, 4(m), 0, 0 + ps_merge00 fw0, sinA, cosA + psq_st fc0, 12(m), 0, 0 + ps_merge00 fw1, cosA, nsinA + psq_st fc0, 28(m), 0, 0 + psq_st fc0, 44(m), 1, 0 + psq_st fw0, 36(m), 0, 0 + psq_st fw1, 20(m), 0, 0 + b _end; -// _case_y: -// ps_merge00 fw0, cosA, fc0 -// ps_merge00 fw1, fc0, fc1 -// psq_st fc0, 24(m), 0, 0 -// psq_st fw0, 0(m), 0, 0 -// ps_merge00 fw2, nsinA, fc0 -// ps_merge00 fw3, sinA, fc0 -// psq_st fw0, 40(m), 0, 0; -// psq_st fw1, 16(m), 0, 0; -// psq_st fw3, 8(m), 0, 0; -// psq_st fw2, 32(m), 0, 0; -// b _end; +_case_y: + ps_merge00 fw0, cosA, fc0 + ps_merge00 fw1, fc0, fc1 + psq_st fc0, 24(m), 0, 0 + psq_st fw0, 0(m), 0, 0 + ps_merge00 fw2, nsinA, fc0 + ps_merge00 fw3, sinA, fc0 + psq_st fw0, 40(m), 0, 0; + psq_st fw1, 16(m), 0, 0; + psq_st fw3, 8(m), 0, 0; + psq_st fw2, 32(m), 0, 0; + b _end; -// _case_z: -// psq_st fc0, 8(m), 0, 0 -// ps_merge00 fw0, sinA, cosA -// ps_merge00 fw2, cosA, nsinA -// psq_st fc0, 24(m), 0, 0 -// psq_st fc0, 32(m), 0, 0 -// ps_merge00 fw1, fc1, fc0 -// psq_st fw0, 16(m), 0, 0 -// psq_st fw2, 0(m), 0, 0 -// psq_st fw1, 40(m), 0, 0 +_case_z: + psq_st fc0, 8(m), 0, 0 + ps_merge00 fw0, sinA, cosA + ps_merge00 fw2, cosA, nsinA + psq_st fc0, 24(m), 0, 0 + psq_st fc0, 32(m), 0, 0 + ps_merge00 fw1, fc1, fc0 + psq_st fw0, 16(m), 0, 0 + psq_st fw2, 0(m), 0, 0 + psq_st fw1, 40(m), 0, 0 -// _end: -// } -// // clang-format on +_end: + } + // clang-format on } #endif @@ -822,70 +819,58 @@ void C_MTXRotAxisRad(Mtx m, const Vec *axis, f32 rad) } #ifdef GEKKO -static void __PSMTXRotAxisRadInternal(register Mtx m, const register Vec *axis, register f32 sT, register f32 cT) +#define qr0 0 + +void PSMTXRotAxisRad(register Mtx m, const Vec *axis, register f32 rad) { - register f32 tT, fc0; register f32 tmp0, tmp1, tmp2, tmp3, tmp4; register f32 tmp5, tmp6, tmp7, tmp8, tmp9; - tmp9 = 0.5F; - tmp8 = 3.0F; - // clang-format off - asm - { - frsp cT, cT - psq_l tmp0, 0(axis), 0, 0 - frsp sT, sT - lfs tmp1, 8(axis) - ps_mul tmp2, tmp0, tmp0 - fadds tmp7, tmp9, tmp9 - ps_madd tmp3, tmp1, tmp1, tmp2 - fsubs fc0, tmp9, tmp9 - ps_sum0 tmp4, tmp3, tmp1, tmp2 - fsubs tT, tmp7, cT - frsqrte tmp5, tmp4 - fmuls tmp2, tmp5, tmp5 - fmuls tmp3, tmp5, tmp9 - fnmsubs tmp2, tmp2, tmp4, tmp8 - fmuls tmp5, tmp2, tmp3 - ps_merge00 cT, cT, cT - ps_muls0 tmp0, tmp0, tmp5 - ps_muls0 tmp1, tmp1, tmp5 - ps_muls0 tmp4, tmp0, tT - ps_muls0 tmp9, tmp0, sT - ps_muls0 tmp5, tmp1, tT - ps_muls1 tmp3, tmp4, tmp0 - ps_muls0 tmp2, tmp4, tmp0 - ps_muls0 tmp4, tmp4, tmp1 - fnmsubs tmp6, tmp1, sT, tmp3 - fmadds tmp7, tmp1, sT, tmp3 - ps_neg tmp0, tmp9 - ps_sum0 tmp8, tmp4, fc0, tmp9 - ps_sum0 tmp2, tmp2, tmp6, cT - ps_sum1 tmp3, cT, tmp7, tmp3 - ps_sum0 tmp6, tmp0, fc0 ,tmp4 - psq_st tmp8, 8(m), 0, 0 - ps_sum0 tmp0, tmp4, tmp4, tmp0 - psq_st tmp2, 0(m), 0, 0 - ps_muls0 tmp5, tmp5, tmp1 - psq_st tmp3, 16(m), 0, 0 - ps_sum1 tmp4, tmp9, tmp0, tmp4 - psq_st tmp6, 24(m), 0, 0 - ps_sum0 tmp5, tmp5, fc0, cT - psq_st tmp4, 32(m), 0, 0 - psq_st tmp5, 40(m), 0, 0 + register f32 sT; + register f32 cT; + register f32 oneMinusCosT; + register f32 zero; + Vec axisNormalized; + register Vec *axisNormalizedPtr; + + zero = 0.0f; + axisNormalizedPtr = &axisNormalized; + sT = sinf(rad); + cT = cosf(rad); + oneMinusCosT = 1.0f - cT; + + PSVECNormalize(axis, axisNormalizedPtr); + +#ifdef __MWERKS__ // clang-format off + asm { + psq_l rad, 0x0(axisNormalizedPtr), 0, qr0 + lfs tmp1, 0x8(axisNormalizedPtr) + ps_merge00 tmp0, cT, cT + ps_muls0 tmp4, rad, oneMinusCosT + ps_muls0 tmp5, tmp1, oneMinusCosT + ps_muls1 tmp3, tmp4, rad + ps_muls0 tmp2, tmp4, rad + ps_muls0 rad, rad, sT + ps_muls0 tmp4, tmp4, tmp1 + fnmsubs tmp6, tmp1, sT, tmp3 + fmadds tmp7, tmp1, sT, tmp3 + ps_neg tmp9, rad + ps_sum0 tmp8, tmp4, zero, rad + ps_sum0 tmp2, tmp2, tmp6, tmp0 + ps_sum1 tmp3, tmp0, tmp7, tmp3 + ps_sum0 tmp6, tmp9, zero, tmp4 + ps_sum0 tmp9, tmp4, tmp4, tmp9 + psq_st tmp8, 0x8(m), 0, qr0 + ps_muls0 tmp5, tmp5, tmp1 + psq_st tmp2, 0x0(m), 0, qr0 + ps_sum1 tmp4, rad, tmp9, tmp4 + psq_st tmp3, 0x10(m), 0, qr0 + ps_sum0 tmp5, tmp5, zero, tmp0 + psq_st tmp6, 0x18(m), 0, qr0 + psq_st tmp4, 0x20(m), 0, qr0 + psq_st tmp5, 0x28(m), 0, qr0 } - // clang-format on -} - -void PSMTXRotAxisRad(Mtx m, const Vec *axis, f32 rad) -{ - // f32 sinT, cosT; - - // sinT = sinf(rad); - // cosT = cosf(rad); - - // __PSMTXRotAxisRadInternal(m, axis, sinT, cosT); +#endif // clang-format on } #endif @@ -1219,30 +1204,30 @@ void PSMTXReflect(register Mtx m, const register Vec *p, const register Vec *n) void C_MTXLookAt(Mtx m, const Point3d *camPos, const Vec *camUp, const Point3d *target) { - // Vec vLook, vRight, vUp; + Vec vLook, vRight, vUp; - // vLook.x = camPos->x - target->x; - // vLook.y = camPos->y - target->y; - // vLook.z = camPos->z - target->z; - // VECNormalize(&vLook, &vLook); - // VECCrossProduct(camUp, &vLook, &vRight); - // VECNormalize(&vRight, &vRight); - // VECCrossProduct(&vLook, &vRight, &vUp); + vLook.x = camPos->x - target->x; + vLook.y = camPos->y - target->y; + vLook.z = camPos->z - target->z; + VECNormalize(&vLook, &vLook); + VECCrossProduct(camUp, &vLook, &vRight); + VECNormalize(&vRight, &vRight); + VECCrossProduct(&vLook, &vRight, &vUp); - // m[0][0] = vRight.x; - // m[0][1] = vRight.y; - // m[0][2] = vRight.z; - // m[0][3] = -(camPos->x * vRight.x + camPos->y * vRight.y + camPos->z * vRight.z); + m[0][0] = vRight.x; + m[0][1] = vRight.y; + m[0][2] = vRight.z; + m[0][3] = -(camPos->x * vRight.x + camPos->y * vRight.y + camPos->z * vRight.z); - // m[1][0] = vUp.x; - // m[1][1] = vUp.y; - // m[1][2] = vUp.z; - // m[1][3] = -(camPos->x * vUp.x + camPos->y * vUp.y + camPos->z * vUp.z); + m[1][0] = vUp.x; + m[1][1] = vUp.y; + m[1][2] = vUp.z; + m[1][3] = -(camPos->x * vUp.x + camPos->y * vUp.y + camPos->z * vUp.z); - // m[2][0] = vLook.x; - // m[2][1] = vLook.y; - // m[2][2] = vLook.z; - // m[2][3] = -(camPos->x * vLook.x + camPos->y * vLook.y + camPos->z * vLook.z); + m[2][0] = vLook.x; + m[2][1] = vLook.y; + m[2][2] = vLook.z; + m[2][3] = -(camPos->x * vLook.x + camPos->y * vLook.y + camPos->z * vLook.z); } void C_MTXLightFrustum(Mtx m, float t, float b, float l, float r, float n, float scaleS, float scaleT, float transS, float transT) @@ -1269,28 +1254,28 @@ void C_MTXLightFrustum(Mtx m, float t, float b, float l, float r, float n, float void C_MTXLightPerspective(Mtx m, f32 fovY, f32 aspect, float scaleS, float scaleT, float transS, float transT) { - // f32 angle; - // f32 cot; + f32 angle; + f32 cot; - // angle = fovY * 0.5f; - // angle = MTXDegToRad(angle); + angle = fovY * 0.5f; + angle = MTXDegToRad(angle); - // cot = 1.0f / tanf(angle); + cot = 1.0f / tanf(angle); - // m[0][0] = (cot / aspect) * scaleS; - // m[0][1] = 0.0f; - // m[0][2] = -transS; - // m[0][3] = 0.0f; + m[0][0] = (cot / aspect) * scaleS; + m[0][1] = 0.0f; + m[0][2] = -transS; + m[0][3] = 0.0f; - // m[1][0] = 0.0f; - // m[1][1] = cot * scaleT; - // m[1][2] = -transT; - // m[1][3] = 0.0f; + m[1][0] = 0.0f; + m[1][1] = cot * scaleT; + m[1][2] = -transT; + m[1][3] = 0.0f; - // m[2][0] = 0.0f; - // m[2][1] = 0.0f; - // m[2][2] = -1.0f; - // m[2][3] = 0.0f; + m[2][0] = 0.0f; + m[2][1] = 0.0f; + m[2][2] = -1.0f; + m[2][3] = 0.0f; } void C_MTXLightOrtho(Mtx m, f32 t, f32 b, f32 l, f32 r, float scaleS, float scaleT, float transS, float transT) diff --git a/src/dolphin/mtx/quat.c b/src/dolphin/mtx/quat.c index 66964bf0..f3e15a87 100644 --- a/src/dolphin/mtx/quat.c +++ b/src/dolphin/mtx/quat.c @@ -1,3 +1,4 @@ +#include "dolphin/math.h" #include "dolphin/mtx.h" float acosf(float x); @@ -5,6 +6,28 @@ float acosf(float x); float sinf(float x); float cosf(float x); +void C_QUATAdd(const Quaternion *p, const Quaternion *q, Qtrn *r) +{ + r->x = p->x + q->x; + r->y = p->y + q->y; + r->z = p->z + q->z; + r->w = p->w + q->w; +} + +void PSQUATAdd(register const Quaternion *p, register const Quaternion *q, register Quaternion *r) +{ + asm { + psq_l f0, 0x0(r3), 0, 0 + psq_l f1, 0x0(r4), 0, 0 + ps_add f0, f0, f1 + psq_st f0, 0x0(r5), 0, 0 + psq_l f0, 0x8(r3), 0, 0 + psq_l f1, 0x8(r4), 0, 0 + ps_add f0, f0, f1 + psq_st f0, 0x8(r5), 0, 0 + } +} + void PSQUATMultiply(register const Quaternion *a, register const Quaternion *b, register Quaternion *ab) { asm { @@ -33,6 +56,77 @@ void PSQUATMultiply(register const Quaternion *a, register const Quaternion *b, } } +void PSQUATNormalize(const register Quaternion *src, register Quaternion *unit) +{ + // sdata2 + (void)0.00001f; + (void)0.0f; + (void)0.5; + (void)3.0; + (void)1.0f; + (void)0.5f; + (void)3.0f; + { + register f32 vv1, vv2, vv3; + register f32 vv4, vv5, vv6; + register f32 vv7, vv8; + register f32 vv9 = 0.00001f; + register f32 vvA = 0.5F; + register f32 vvB = 3.0F; + asm + { + psq_l vv1, 0(src), 0, 0; + ps_mul vv3, vv1, vv1; + psq_l vv2, 8(src), 0, 0; + ps_sub vv6, vv9, vv9; + ps_madd vv3, vv2, vv2, vv3; + ps_sum0 vv3, vv3, vv3, vv3; + frsqrte vv4, vv3; + ps_sub vv5, vv3, vv9; + fmul vv7, vv4, vv4; + fmul vv8, vv4, vvA; + fnmsub vv7, vv7, vv3, vvB; + fmul vv4, vv7, vv8; + ps_sel vv4, vv5, vv4, vv6; + ps_muls0 vv1, vv1, vv4; + ps_muls0 vv2, vv2, vv4; + psq_st vv1, 0(unit), 0, 0; + psq_st vv2, 8(unit), 0, 0; + } + } +} + +void PSQUATInverse(const register Quaternion *src, register Quaternion *inv) +{ + register f32 vv1, vv2, vv3, vv4; + register f32 vv5, vv6, vv7, vv8, vv9, vvA, vvB; + register f32 vvC = 1.0F; + asm { + psq_l vv1, 0(src), 0, 0; + ps_mul vv5, vv1, vv1; + psq_l vv2, 8(src), 0, 0; + ps_madd vv5, vv2, vv2, vv5; + ps_add vvA, vvC, vvC; + ps_sum0 vv5, vv5, vv5, vv5; + fres vv7, vv5; + ps_neg vv6, vv5; + ps_nmsub vv9, vv5, vv7, vvA; + ps_mul vv7, vv7, vv9; + ps_sel vv7, vv6, vvC, vv7 + b loc1; + loc0: + fmr vv7, vvC; + loc1: + ps_neg vv8, vv7; + ps_muls1 vv4, vv7, vv2; + ps_muls0 vv1, vv1, vv8; + psq_st vv4, 12(inv), 1, 0; + ps_muls0 vv3, vv2, vv8; + psq_st vv1, 0(inv), 0, 0; + psq_st vv3, 8(inv), 1, 0; + } +} + void C_QUATRotAxisRad(Quaternion *q, const Vec *axis, f32 rad) { f32 tmp, tmp2, tmp3; @@ -52,6 +146,42 @@ void C_QUATRotAxisRad(Quaternion *q, const Vec *axis, f32 rad) q->w = tmp3; } +void C_QUATMtx(Quaternion *r, const Mtx m) +{ + f32 vv0, vv1; + s32 i, j, k; + s32 idx[3] = { 1, 2, 0 }; + f32 vec[3]; + vv0 = m[0][0] + m[1][1] + m[2][2]; + if (vv0 > 0.0f) { + vv1 = (f32)sqrtf(vv0 + 1.0f); + r->w = vv1 * 0.5f; + vv1 = 0.5f / vv1; + r->x = (m[2][1] - m[1][2]) * vv1; + r->y = (m[0][2] - m[2][0]) * vv1; + r->z = (m[1][0] - m[0][1]) * vv1; + } + else { + i = 0; + if (m[1][1] > m[0][0]) + i = 1; + if (m[2][2] > m[i][i]) + i = 2; + j = idx[i]; + k = idx[j]; + vv1 = (f32)sqrtf((m[i][i] - (m[j][j] + m[k][k])) + 1.0f); + vec[i] = vv1 * 0.5f; + if (vv1 != 0.0f) + vv1 = 0.5f / vv1; + r->w = (m[k][j] - m[j][k]) * vv1; + vec[j] = (m[i][j] + m[j][i]) * vv1; + vec[k] = (m[i][k] + m[k][i]) * vv1; + r->x = vec[0]; + r->y = vec[1]; + r->z = vec[2]; + } +} + void C_QUATSlerp(const Quaternion *p, const Quaternion *q, Quaternion *r, f32 t) { f32 ratioA, ratioB; diff --git a/src/dolphin/mtx/vec.c b/src/dolphin/mtx/vec.c index 985a6196..de5ad450 100644 --- a/src/dolphin/mtx/vec.c +++ b/src/dolphin/mtx/vec.c @@ -210,23 +210,23 @@ void C_VECHalfAngle(const Vec *a, const Vec *b, Vec *half) void C_VECReflect(const Vec *src, const Vec *normal, Vec *dst) { - // Vec a0; - // Vec b0; - // f32 dot; + Vec a0; + Vec b0; + f32 dot; - // a0.x = -src->x; - // a0.y = -src->y; - // a0.z = -src->z; + a0.x = -src->x; + a0.y = -src->y; + a0.z = -src->z; - // VECNormalize(&a0, &a0); - // VECNormalize(normal, &b0); + VECNormalize(&a0, &a0); + VECNormalize(normal, &b0); - // dot = VECDotProduct(&a0, &b0); - // dst->x = b0.x * 2.0f * dot - a0.x; - // dst->y = b0.y * 2.0f * dot - a0.y; - // dst->z = b0.z * 2.0f * dot - a0.z; + dot = VECDotProduct(&a0, &b0); + dst->x = b0.x * 2.0f * dot - a0.x; + dst->y = b0.y * 2.0f * dot - a0.y; + dst->z = b0.z * 2.0f * dot - a0.z; - // VECNormalize(dst, dst); + VECNormalize(dst, dst); } asm f32 PSVECSquareDistance(register const Vec *a, register const Vec *b) { diff --git a/src/dolphin/pad/Padclamp.c b/src/dolphin/pad/Padclamp.c index a96d75c4..bdc9af39 100644 --- a/src/dolphin/pad/Padclamp.c +++ b/src/dolphin/pad/Padclamp.c @@ -103,17 +103,34 @@ static void ClampTrigger(u8 *trigger, u8 min, u8 max) } } -void PADClamp(PADStatus *status) +void PADClamp(PADStatus* status) { - // int i; - // for (i = 0; i < PAD_CHANMAX; i++, status++) { - // if (status->err != PAD_ERR_NONE) { - // continue; - // } + int i; + for (i = 0; i < PAD_CHANMAX; i++, status++) { + if (status->err != PAD_ERR_NONE) { + continue; + } - // ClampStick(&status->stickX, &status->stickY, ClampRegion.maxStick, ClampRegion.xyStick, ClampRegion.minStick); - // ClampStick(&status->substickX, &status->substickY, ClampRegion.maxSubstick, ClampRegion.xySubstick, ClampRegion.minSubstick); - // ClampTrigger(&status->triggerL, ClampRegion.minTrigger, ClampRegion.maxTrigger); - // ClampTrigger(&status->triggerR, ClampRegion.minTrigger, ClampRegion.maxTrigger); - // } + ClampStick(&status->stickX, &status->stickY, ClampRegion.maxStick, + ClampRegion.xyStick, ClampRegion.minStick); + ClampStick(&status->substickX, &status->substickY, + ClampRegion.maxSubstick, ClampRegion.xySubstick, + ClampRegion.minSubstick); + if (status->triggerL <= ClampRegion.minTrigger) { + status->triggerL = 0; + } else { + if (ClampRegion.maxTrigger < status->triggerL) { + status->triggerL = ClampRegion.maxTrigger; + } + status->triggerL -= ClampRegion.minTrigger; + } + if (status->triggerR <= ClampRegion.minTrigger) { + status->triggerR = 0; + } else { + if (ClampRegion.maxTrigger < status->triggerR) { + status->triggerR = ClampRegion.maxTrigger; + } + status->triggerR -= ClampRegion.minTrigger; + } + } } From f812abd06f3aeeaa79a02271df75c11fbc933f2c Mon Sep 17 00:00:00 2001 From: mrshigure Date: Mon, 13 Jan 2025 06:48:07 -0800 Subject: [PATCH 251/311] Matched most of msmse and msmmus (3 functions left) (#526) * Matched most of msmse (1 function left) * Matched most of msmmus (2 functions left) --- configure.py | 2 +- include/game/msm.h | 10 +- include/msm/msmmus.h | 19 +- include/msm/msmse.h | 21 +- include/msm/msmsys.h | 122 ++++++++++ src/msm/msmmus.c | 342 ++++++++++++++++++++++++++++ src/msm/msmse.c | 514 +++++++++++++++++++++++++++++++++++++++++++ src/msm/msmsys.c | 111 +--------- 8 files changed, 1022 insertions(+), 119 deletions(-) create mode 100755 include/msm/msmsys.h create mode 100755 src/msm/msmmus.c create mode 100755 src/msm/msmse.c diff --git a/configure.py b/configure.py index 22c85a12..5c54e7fc 100644 --- a/configure.py +++ b/configure.py @@ -834,7 +834,7 @@ config.libs = [ }, { "lib": "msm", - "mw_version": "GC/1.2.5n", + "mw_version": "GC/1.2.5", "cflags": cflags_msm, "host": False, "objects": [ diff --git a/include/game/msm.h b/include/game/msm.h index 9ab79e8e..5d7dfa11 100644 --- a/include/game/msm.h +++ b/include/game/msm.h @@ -42,9 +42,11 @@ #define MSM_ERR_INITFAIL -20 #define MSM_ERR_INVALID_AUXPARAM -31 #define MSM_ERR_PLAYFAIL -33 +#define MSM_ERR_22 -34 #define MSM_ERR_STREAMALLOC_FAIL -35 #define MSM_ERR_INSTALLED -36 #define MSM_ERR_GRP_NOTLOADED -103 +#define MSM_ERR_6F -111 #define MSM_ERR_INVALIDID -120 #define MSM_ERR_INVALIDFILE -121 #define MSM_ERR_REMOVEDID -122 @@ -173,7 +175,7 @@ s32 msmSysDelGroupBase(s32 grpNum); s32 msmSeSetParam(int seNo, MSM_SEPARAM *param); int msmSePlay(int seId, MSM_SEPARAM *param); s32 msmSeStop(int seNo, s32 speed); -s32 msmSePauseAll(BOOL pause, s32 speed); +void msmSePauseAll(BOOL pause, s32 speed); s32 msmSePause(int seNo, BOOL pause, s32 speed); void msmSeStopAll(BOOL checkGrp, s32 speed); s32 msmSeSetListener(Vec *pos, Vec *heading, float sndDist, float sndSpeed, MSM_SELISTENER *listener); @@ -181,11 +183,11 @@ s32 msmSeUpdataListener(Vec *pos, Vec *heading); void msmSeDelListener(void); s32 msmSeGetStatus(int seNo); s32 msmSeGetNumPlay(BOOL baseGrp); -s32 msmSeGetEntryID(s16 seId, int *seNo); +s32 msmSeGetEntryID(s32 seId, int *seNo); int msmMusPlay(int musId, MSM_MUSPARAM *musParam); s32 msmMusStop(int musNo, s32 speed); -s32 msmMusPauseAll(BOOL pause, s32 speed); +void msmMusPauseAll(BOOL pause, s32 speed); s32 msmMusPause(int musNo, BOOL pause, s32 speed); s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl); void msmMusStopAll(BOOL checkGrp, s32 speed); @@ -200,4 +202,4 @@ s32 msmStreamPause(int streamNo, BOOL pause, s32 speed); void msmStreamStopAll(s32 speed); s32 msmStreamGetStatus(int streamNo); -#endif \ No newline at end of file +#endif diff --git a/include/msm/msmmus.h b/include/msm/msmmus.h index 8d3554fc..a6951063 100644 --- a/include/msm/msmmus.h +++ b/include/msm/msmmus.h @@ -1,10 +1,23 @@ #ifndef MSMMUS_H #define MSMMUS_H -#include "dolphin.h" -#include "dolphin/types.h" +#include "game/msm.h" +#include "msm/msmsys.h" -s32 msmMusInit(s32 *, DVDFileInfo *); +#include "dolphin.h" + +void msmMusFdoutEnd(void); void msmMusPeriodicProc(void); +s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl); +s32 msmMusGetNumPlay(BOOL baseGrp); +s32 msmMusGetStatus(int musNo); +void msmMusSetMasterVolume(s32 arg0); +s32 msmMusSetParam(s32 arg0, MSM_MUSPARAM* arg1); +void msmMusPauseAll(BOOL pause, s32 speed); +s32 msmMusPause(int musNo, BOOL pause, s32 speed); +void msmMusStopAll(BOOL checkGrp, s32 speed); +s32 msmMusStop(int musNo, s32 speed); +int msmMusPlay(int musId, MSM_MUSPARAM* musParam); +s32 msmMusInit(sysData* arg0, DVDFileInfo* arg1); #endif diff --git a/include/msm/msmse.h b/include/msm/msmse.h index 10242362..e017f67e 100644 --- a/include/msm/msmse.h +++ b/include/msm/msmse.h @@ -1,10 +1,25 @@ #ifndef MSMSE_H #define MSMSE_H -#include "dolphin.h" -#include "dolphin/types.h" +#include "game/msm.h" +#include "msm/msmsys.h" + +#include "dolphin.h" -s32 msmSeInit(s32 *, DVDFileInfo *); void msmSePeriodicProc(void); +MSMSE* msmSeGetIndexPtr(s32 arg0); +void msmSeDelListener(void); +s32 msmSeUpdataListener(Vec* pos, Vec* heading); +s32 msmSeSetListener(Vec* pos, Vec* heading, float sndDist, float sndSpeed, MSM_SELISTENER* listener); +s32 msmSeGetEntryID(s32 seId, int* seNo); +s32 msmSeGetNumPlay(BOOL baseGrp); +s32 msmSeGetStatus(int seNo); +void msmSeSetMasterVolume(s32 arg0); +s32 msmSeSetParam(int seNo, MSM_SEPARAM* param); +void msmSePauseAll(BOOL pause, s32 speed); +void msmSeStopAll(BOOL checkGrp, s32 speed); +s32 msmSeStop(int seNo, s32 speed); +int msmSePlay(int seId, MSM_SEPARAM *param); +s32 msmSeInit(sysData* arg0, DVDFileInfo* arg1); #endif diff --git a/include/msm/msmsys.h b/include/msm/msmsys.h new file mode 100755 index 00000000..fbd36f7e --- /dev/null +++ b/include/msm/msmsys.h @@ -0,0 +1,122 @@ +#ifndef MSMSYS_H +#define MSMSYS_H + +#include "dolphin.h" + +typedef struct _unkSubStruct { + s8 unk0; + union { + f32 unk4f[9]; + s32 unk4s[9]; + }; +} unkSubStruct; + +typedef struct _unkSubStruct2 { + char unk[0x3C]; + s32 unk3C; + s32 unk40; + s32 unk44; + s32 unk48; + s32 unk4C; + s32 unk50; + s32 unk54; + s32 unk58; + s32 unk5C; + char unk60[0x30]; + s32 unk90; + s32 unk94; + s32 unk98; + char unk9C[0xA0]; + u8 unk13C; + f32 unk140; + f32 unk144; + f32 unk148; + f32 unk14C; + f32 unk150; + char unk154[0x70]; + u8 unk1C4; + f32 unk1C8; + f32 unk1CC; + f32 unk1D0; + f32 unk1D4; + f32 unk1D8; + f32 unk1DC; +} unkSubStruct2; // sizeof unk1E0 + +typedef struct _unkSubStruct3 { + char unk[0x4]; + s32 unk4; + char unk8[0x8]; + s32 unk10; // offset + u32 unk14; // length + s32 unk18; // offset + u32 unk1C; // length + char unk20[8]; + s32 unk28; + s32 unk2C; + s32 unk30; + s32 unk34; + s32 unk38; + char unk3C[4]; + s32 unk40; + char unk44[4]; + s32 unk48; + char unk4C[0x14]; +} unkSubStruct3; // sizeof 0x60 + +typedef struct _unkStruct3 { + s32 unk0; + s32 unk4; + s32 unk8; +} unkStruct3; + +typedef struct _sndInitData { + s8 unk0; + s8 unk1; + s8 unk2; + char unk3[1]; + s16 unk4; + s16 unk6; + s8 unk8; + char unk9[5]; + s8 unkE; + s8 unkF; + u32 unk10; + s32 unk14; + char unk18[8]; + s32 unk20; + char unk24[5]; + s8 unk29[10]; // size unknown +} sndInitData; + +typedef struct _sysData { + s32 unk0; + s8 unk4; + s8 unk5; + s8 unk6; + s8 unk7; + s32 unk8; + unkSubStruct3 *unkC; + sndInitData *unk10; + unkSubStruct *unk14; + s8 unk18; + s8 unk19; + s8 unk1A; + s8 unk1B; + unkSubStruct2 unk1C; // userA + unkSubStruct2 unk1FC; // userB + char unk3DC[0x8]; + s32 unk3E4; + s32 unk3E8; + s32 unk3EC; + s32 unk3F0; + s8 unk3F4; + unkStruct3 *unk3F8; + char unk3FC[0xF0]; + s32 unk4EC; + BOOL unk4F0; + AIDCallback unk4F4; + s32 unk4F8; +} sysData; + +#endif diff --git a/src/msm/msmmus.c b/src/msm/msmmus.c new file mode 100755 index 00000000..8f87e7a5 --- /dev/null +++ b/src/msm/msmmus.c @@ -0,0 +1,342 @@ +#include "msm/msmmus.h" + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ s8 unk02; + /* 0x03 */ s8 unk03; + /* 0x04 */ s8 unk04; + /* 0x05 */ s8 unk05; + /* 0x06 */ char unk06[2]; + /* 0x08 */ SND_SEQID unk08; + /* 0x0C */ void* unk0C; + /* 0x10 */ void* unk10; + /* 0x14 */ volatile s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s8 unk1C; + /* 0x1D */ char unk1D[3]; + /* 0x20 */ volatile s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ s8 unk28; + /* 0x29 */ char unk29[3]; + /* 0x2C */ volatile s32 unk2C; + /* 0x30 */ s32 unk30; + /* 0x34 */ char unk34[1]; + /* 0x35 */ volatile s8 unk35; + /* 0x36 */ s8 unk36; + /* 0x37 */ char unk37[1]; + /* 0x38 */ SND_PLAYPARA unk38; +} msmMusStruct00; // Size 0x58 + +typedef struct { + /* 0x00 */ u16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s8 unk0C; + /* 0x0D */ s8 unk0D; + /* 0x0E */ char unk0E[2]; +} msmMusStruct01; // Size 0x10 + +typedef struct { + /* 0x000 */ s16 unk00; + /* 0x002 */ s8 unk02; + /* 0x003 */ s8 unk03; + /* 0x004 */ s8 unk04; + /* 0x005 */ char unk05[3]; + /* 0x008 */ s32 unk08; + /* 0x00C */ msmMusStruct01* unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ void* unk14; + /* 0x018 */ msmMusStruct00 unk18[1]; // unknown length + /* 0x01C */ char unk70[0x108]; +} msmMusStruct02; // Size 0x178 + +static msmMusStruct02 mus; + +static void msmMusPauseSub(msmMusStruct00* arg0, BOOL pause, s32 speed) { + s32 temp_r30; + + temp_r30 = speed / 15; + if (pause) { + if (arg0->unk04 == 2) { + if (temp_r30 != 0) { + arg0->unk24 = temp_r30; + arg0->unk20 = temp_r30; + arg0->unk28 = 0x7F; + } else { + sndSeqPause(arg0->unk08); + arg0->unk28 = 0; + } + arg0->unk04 = 3; + } + } else { + if (arg0->unk04 == 3) { + if (temp_r30 != 0) { + if (arg0->unk20 != 0) { + arg0->unk20 = -temp_r30; + } else { + sndSeqContinue(arg0->unk08); + arg0->unk20 = -temp_r30; + arg0->unk24 = 0; + arg0->unk28 = 0; + } + } else { + sndSeqContinue(arg0->unk08); + arg0->unk28 = 0x7F; + sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0); + } + arg0->unk04 = 2; + } + } +} + +static void msmMusPauseFade(msmMusStruct00* arg0) { + if (arg0->unk20 > 0) { + if (--arg0->unk24 == 0) { + arg0->unk20 = 0; + arg0->unk28 = 0; + sndSeqPause(arg0->unk08); + } else { + arg0->unk28 = arg0->unk24 * 0x7F / arg0->unk20; + sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0); + } + } else if (arg0->unk20 < 0) { + if (++arg0->unk24 >= -arg0->unk20) { + arg0->unk20 = 0; + arg0->unk28 = 0x7F; + } else { + arg0->unk28 = arg0->unk24 * 0x7F / -arg0->unk20; + } + sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0); + } +} + +static void msmMusFade(msmMusStruct00* arg0) { + if (arg0->unk04 != 2) { + return; + } + if (arg0->unk14 > 0) { + if (--arg0->unk18 == 0) { + if (arg0->unk04 != 0) { + arg0->unk14 = 0; + if (arg0->unk14 != 0) { + arg0->unk18 = arg0->unk14; + arg0->unk1C = 0x7F; + } else { + sndSeqStop(arg0->unk08); + arg0->unk04 = 1; + } + } + } else { + arg0->unk1C = arg0->unk18 * 0x7F / arg0->unk14; + sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0); + } + } else if (arg0->unk14 < 0) { + if (++arg0->unk18 >= -arg0->unk14) { + arg0->unk14 = 0; + arg0->unk1C = 0x7F; + } else { + arg0->unk1C = arg0->unk18 * 0x7F / -arg0->unk14; + } + sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0); + } +} + +void msmMusFdoutEnd(void) { +} + +void msmMusPeriodicProc(void) { + s32 var_r26; + msmMusStruct00* temp_r25; + + mus.unk04 = mus.unk03 = 0; + for (var_r26 = 0; var_r26 < mus.unk02; var_r26++) { + temp_r25 = &mus.unk18[var_r26]; + if (temp_r25->unk05 != 0) { + continue; + } + switch (temp_r25->unk04) { + case 1: + case 2: + if (sndSeqGetValid(temp_r25->unk08) == FALSE) { + temp_r25->unk04 = 0; + } + break; + } + if (temp_r25->unk04 == 0) { + continue; + } + if (msmSysCheckBaseGroup(mus.unk0C[temp_r25->unk00].unk00) != 0) { + mus.unk04++; + } else { + mus.unk03++; + } + msmMusPauseFade(temp_r25); + if (temp_r25->unk04 == 2 && temp_r25->unk2C != 0) { + if (++temp_r25->unk30 >= temp_r25->unk2C) { + temp_r25->unk2C = 0; + temp_r25->unk02 = temp_r25->unk36; + } else { + temp_r25->unk02 = temp_r25->unk35 + temp_r25->unk30 * (temp_r25->unk36 - temp_r25->unk35) / temp_r25->unk2C; + } + sndSeqVolume(temp_r25->unk02 * temp_r25->unk03 * temp_r25->unk1C * temp_r25->unk28 / 2048383, 0, temp_r25->unk08, 0); + } + msmMusFade(temp_r25); + } +} + +s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl) { + msmMusStruct00* temp_ptr; + + if (musNo < 0 || musNo >= mus.unk02) { + return MSM_ERR_OUTOFMUS; + } + temp_ptr = &mus.unk18[musNo]; + if (sndSeqGetValid(temp_ptr->unk08) == TRUE) { + return sndSeqGetMidiCtrl(temp_ptr->unk08, channel & 0xF, ctrl); + } + return 0; +} + +s32 msmMusGetNumPlay(BOOL baseGrp) { + msmMusStruct02* mus_ptr = &mus; + + switch (baseGrp) { + case FALSE: + return mus_ptr->unk03 + mus_ptr->unk04; + default: + return mus_ptr->unk03; + } +} + +s32 msmMusGetStatus(int musNo) { + if (musNo < 0 || musNo >= mus.unk02) { + return MSM_ERR_OUTOFMUS; + } + return mus.unk18[musNo].unk04; +} + +void msmMusSetMasterVolume(s32 arg0) { + sndMasterVolume(arg0 & 0x7F, 0, 1, 0); +} + +s32 msmMusSetParam(s32 arg0, MSM_MUSPARAM* arg1) { + msmMusStruct00* temp_r31; + + if (arg0 < 0 || arg0 >= mus.unk02) { + return MSM_ERR_OUTOFMUS; + } + temp_r31 = &mus.unk18[arg0]; + if (arg1->flag & 2) { + temp_r31->unk2C = arg1->fadeSpeed / 15; + if (temp_r31->unk2C != 0) { + temp_r31->unk05 = 1; + temp_r31->unk30 = 0; + temp_r31->unk35 = temp_r31->unk02; + temp_r31->unk36 = arg1->vol & 0x7F; + temp_r31->unk05 = 0; + } else { + temp_r31->unk02 = arg1->vol & 0x7F; + sndSeqVolume(temp_r31->unk02 * temp_r31->unk03 * temp_r31->unk1C * temp_r31->unk28 / 2048383, 0, temp_r31->unk08, 0); + } + } + if (arg1->flag & 0x10) { + sndSeqSpeed(temp_r31->unk08, (arg1->speed << 8) / 100); + } + return 0; +} + +void msmMusPauseAll(BOOL pause, s32 speed) { + s32 var_r27; + msmMusStruct00* temp_r26; + + for (var_r27 = 0; var_r27 < mus.unk02; var_r27++) { + temp_r26 = &mus.unk18[var_r27]; + if (temp_r26->unk04 != 0) { + temp_r26->unk05 = 1; + msmMusPauseSub(temp_r26, pause, speed); + temp_r26->unk05 = 0; + } + } +} + +s32 msmMusPause(int musNo, BOOL pause, s32 speed) { + msmMusStruct00* temp_r31; + + if (musNo < 0 || musNo >= mus.unk02) { + return MSM_ERR_OUTOFMUS; + } + temp_r31 = &mus.unk18[musNo]; + temp_r31->unk05 = 1; + msmMusPauseSub(temp_r31, pause, speed); + temp_r31->unk05 = 0; + return 0; +} + +void msmMusStopAll(BOOL checkGrp, s32 speed) { + s32 var_r28; + msmMusStruct00* temp_r27; + + for (var_r28 = 0; var_r28 < mus.unk02; var_r28++) { + temp_r27 = &mus.unk18[var_r28]; + if (temp_r27->unk04 == 0) { + continue; + } + temp_r27->unk05 = 1; + switch (checkGrp) { + case FALSE: + if (temp_r27->unk04 != 0) { + temp_r27->unk14 = speed / 15; + if (temp_r27->unk14 != 0) { + temp_r27->unk18 = temp_r27->unk14; + temp_r27->unk1C = 0x7F; + } else { + sndSeqStop(temp_r27->unk08); + temp_r27->unk04 = 1; + } + } + break; + default: + if (msmSysCheckBaseGroup(mus.unk0C[temp_r27->unk00].unk00) == 0 && temp_r27->unk04 != 0) { + temp_r27->unk14 = speed / 15; + if (temp_r27->unk14 != 0) { + temp_r27->unk18 = temp_r27->unk14; + temp_r27->unk1C = 0x7F; + } else { + sndSeqStop(temp_r27->unk08); + temp_r27->unk04 = 1; + } + } + break; + } + temp_r27->unk05 = 0; + } +} + +s32 msmMusStop(int musNo, s32 speed) { + msmMusStruct00* temp_r30; + + if (musNo < 0 || musNo >= mus.unk02) { + return MSM_ERR_OUTOFMUS; + } + temp_r30 = &mus.unk18[musNo]; + temp_r30->unk05 = 1; + if (temp_r30->unk04 != 0) { + temp_r30->unk14 = speed / 15; + if (temp_r30->unk14 != 0) { + temp_r30->unk18 = temp_r30->unk14; + temp_r30->unk1C = 0x7F; + } else { + sndSeqStop(temp_r30->unk08); + temp_r30->unk04 = 1; + } + } + temp_r30->unk05 = 0; + return 0; +} + +// TODO: https://decomp.me/scratch/PGpbJ +// msmMusPlay + +// TODO: https://decomp.me/scratch/24daZ +// msmMusInit diff --git a/src/msm/msmse.c b/src/msm/msmse.c new file mode 100755 index 00000000..6582a572 --- /dev/null +++ b/src/msm/msmse.c @@ -0,0 +1,514 @@ +#include "msm/msmse.h" +#include "msm/msmfio.h" +#include "msm/msmmem.h" + +typedef struct { + /* 0x00 */ SND_VOICEID unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s16 unk08; + /* 0x0A */ s8 unk0A; + /* 0x0B */ s8 unk0B; + /* 0x0C */ s8 unk0C; + /* 0x0D */ s8 unk0D; + /* 0x0E */ s16 unk0E; + /* 0x10 */ s8 unk10; + /* 0x11 */ s8 unk11; + /* 0x12 */ s8 unk12; + /* 0x13 */ u8 unk13; + /* 0x14 */ SND_PARAMETER_INFO unk14; + /* 0x1C */ SND_PARAMETER unk1C[5]; + /* 0x30 */ s8 unk30; + /* 0x31 */ s8 unk31; + /* 0x32 */ s16 unk32; + /* 0x34 */ volatile s32 unk34; + /* 0x38 */ s32 unk38; + /* 0x3C */ s8 unk3C; + /* 0x3D */ char unk3D[3]; + /* 0x40 */ volatile s32 unk40; + /* 0x44 */ s32 unk44; + /* 0x48 */ s8 unk48; + /* 0x49 */ char unk49[3]; + /* 0x4C */ SND_EMITTER unk4C; + /* 0x9C */ SND_FVECTOR unk9C; + /* 0xA8 */ SND_FVECTOR unkA8; + /* 0xB4 */ s8 unkB4; + /* 0xB5 */ char unkB5[3]; +} msmSeStruct00; // Size 0xB8 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s8 unk04; + /* 0x05 */ s8 unk05; + /* 0x06 */ s8 unk06; + /* 0x07 */ char unk07[1]; + /* 0x08 */ s32 unk08; + /* 0x0C */ MSMSE* unk0C; + /* 0x10 */ msmSeStruct00* unk10; + /* 0x14 */ SND_LISTENER unk14; + /* 0xA4 */ SND_FVECTOR unkA4; + /* 0xB0 */ SND_FVECTOR unkB0; + /* 0xBC */ SND_FVECTOR unkBC; + /* 0xC8 */ SND_FVECTOR unkC8; + /* 0xD4 */ float unkD4; + /* 0xD8 */ u16 unkD8; + /* 0xDA */ u16 unkDA; +} msmSeStruct02; // Size 0xDC + +msmSeStruct02 se; + +static void msmSeFade(msmSeStruct00* arg0) { + u8 temp_r3; + + if (arg0->unk0A == 3) { + return; + } + if (arg0->unk34 > 0) { + if (--arg0->unk38 == 0) { + arg0->unk34 = 0; + arg0->unk34 = 0; + if (arg0->unk34 != 0) { + arg0->unk38 = arg0->unk34; + arg0->unk3C = 0x7F; + } else { + arg0->unk0A = 1; + if ((arg0->unk13 & 1) && arg0->unkB4 == 1) { + sndRemoveEmitter(&arg0->unk4C); + } else { + sndFXKeyOff(arg0->unk00); + } + } + } else { + arg0->unk3C = arg0->unk38 * 0x7F / arg0->unk34; + temp_r3 = arg0->unk0C * arg0->unk30 * arg0->unk3C * arg0->unk48 / 2048383; + if ((arg0->unk13 & 1) && arg0->unkB4 == 1) { + arg0->unkA8.x = arg0->unkA8.y = arg0->unkA8.z = 0.0f; + sndUpdateEmitter(&arg0->unk4C, &arg0->unk9C, &arg0->unkA8, temp_r3, NULL); + } else { + sndFXVolume(arg0->unk00, temp_r3); + } + } + } else if (arg0->unk34 < 0) { + if (++arg0->unk38 >= -arg0->unk34) { + arg0->unk34 = 0; + arg0->unk3C = 0x7F; + } else { + arg0->unk3C = arg0->unk38 * 0x7F / -arg0->unk34; + } + temp_r3 = arg0->unk0C * arg0->unk30 * arg0->unk3C * arg0->unk48 / 2048383; + if ((arg0->unk13 & 1) && arg0->unkB4 == 1) { + arg0->unkA8.x = arg0->unkA8.y = arg0->unkA8.z = 0.0f; + sndUpdateEmitter(&arg0->unk4C, &arg0->unk9C, &arg0->unkA8, temp_r3, NULL); + } else { + sndFXVolume(arg0->unk00, temp_r3); + } + } +} + +static void msmSePauseSub(msmSeStruct00* arg0, BOOL pause, s32 speed) { + s32 temp_r3; + + temp_r3 = speed / 15; + if (pause) { + if (arg0->unk0A == 2) { + if (temp_r3 != 0) { + arg0->unk40 = arg0->unk44 = temp_r3; + arg0->unk48 = 0x7F; + } else { + arg0->unk48 = 0; + sndFXVolume(arg0->unk00, arg0->unk0C * arg0->unk30 * arg0->unk3C * arg0->unk48 / 2048383); + } + arg0->unk0A = 3; + } + } else { + if (arg0->unk0A == 3) { + if (temp_r3 != 0) { + if (arg0->unk40 != 0) { + arg0->unk40 = -temp_r3; + } else { + arg0->unk40 = -temp_r3; + arg0->unk44 = 0; + arg0->unk48 = 0; + } + } else { + arg0->unk48 = 0x7F; + sndFXVolume(arg0->unk00, arg0->unk0C * arg0->unk30 * arg0->unk3C * arg0->unk48 / 2048383); + } + arg0->unk0A = 2; + } + } +} + +void msmSePeriodicProc(void) { + s32 var_r26; + msmSeStruct00* temp_r3; + u8 temp_r3_3; + + se.unk05 = se.unk06 = 0; + for (var_r26 = 0; var_r26 < se.unk04; var_r26++) { + temp_r3 = &se.unk10[var_r26]; + if (temp_r3->unk0B != 0) { + continue; + } + switch (temp_r3->unk0A) { + case 1: + case 2: + if ((temp_r3->unk13 & 1) && temp_r3->unkB4 == 1) { + if (!sndCheckEmitter(&temp_r3->unk4C)) { + temp_r3->unk0A = 0; + } + } else { + if (sndFXCheck(temp_r3->unk00) == SND_ID_ERROR) { + temp_r3->unk0A = 0; + } + } + break; + } + if (temp_r3->unk0A == 0) { + continue; + } + if (msmSysCheckBaseGroup(se.unk0C[temp_r3->unk08].groupId) != 0) { + se.unk05++; + } else { + se.unk06++; + } + if (temp_r3->unk40 > 0) { + if (--temp_r3->unk44 == 0) { + temp_r3->unk40 = 0; + temp_r3->unk48 = 0; + } else { + temp_r3->unk48 = temp_r3->unk44 * 0x7F / temp_r3->unk40; + } + } else if (temp_r3->unk40 < 0) { + if (++temp_r3->unk44 >= -temp_r3->unk40) { + temp_r3->unk40 = 0; + temp_r3->unk48 = 0x7F; + } else { + temp_r3->unk48 = temp_r3->unk44 * 0x7F / -temp_r3->unk40; + } + } + temp_r3_3 = temp_r3->unk0C * temp_r3->unk30 * temp_r3->unk3C * temp_r3->unk48 / 2048383; + if ((temp_r3->unk13 & 1) && temp_r3->unkB4 == 1) { + temp_r3->unkA8.x = temp_r3->unkA8.y = temp_r3->unkA8.z = 0.0f; + sndUpdateEmitter(&temp_r3->unk4C, &temp_r3->unk9C, &temp_r3->unkA8, temp_r3_3, NULL); + } else { + sndFXVolume(temp_r3->unk00, temp_r3_3); + } + msmSeFade(temp_r3); + } +} + +MSMSE* msmSeGetIndexPtr(s32 arg0) { + if (arg0 < 0 || arg0 >= se.unk00) { + return NULL; + } + return &se.unk0C[arg0]; +} + +void msmSeDelListener(void) { + if (se.unkDA != 0) { + sndRemoveListener(&se.unk14); + se.unkDA = 0; + } +} + +s32 msmSeUpdataListener(Vec* pos, Vec* heading) { + if (se.unkDA == 0) { + return MSM_ERR_22; + } + se.unkB0.x = pos->x - se.unkA4.x; + se.unkB0.y = pos->y - se.unkA4.y; + se.unkB0.z = pos->z - se.unkA4.z; + se.unkA4.x = pos->x; + se.unkA4.y = pos->y; + se.unkA4.z = pos->z; + se.unkBC.x = heading->x; + se.unkBC.y = heading->y; + se.unkBC.z = heading->z; + if (!sndUpdateListener(&se.unk14, &se.unkA4, &se.unkB0, &se.unkBC, &se.unkC8, 0x7F, NULL)) { + return MSM_ERR_22; + } + return 0; +} + +s32 msmSeSetListener(Vec* pos, Vec* heading, float sndDist, float sndSpeed, MSM_SELISTENER* listener) { + msmSeStruct02* se_ptr = &se; + SND_FVECTOR* temp_b0; + SND_FVECTOR* temp_a4; + SND_FVECTOR* temp_c8; + SND_FVECTOR* temp_bc; + s32 var_r3; + float var_f4; + float var_f0; + float var_f0_2; + + temp_a4 = &se_ptr->unkA4; + temp_c8 = &se_ptr->unkC8; + temp_bc = &se_ptr->unkBC; + temp_b0 = &se_ptr->unkB0; + temp_a4->x = pos->x; + temp_a4->y = pos->y; + temp_a4->z = pos->z; + temp_c8->x = temp_c8->z = 0.0f; + temp_c8->y = 1.0f; + temp_bc->x = heading->x; + temp_bc->y = heading->y; + temp_bc->z = heading->z; + temp_b0->x = temp_b0->y = temp_b0->z = 0.0f; + se_ptr->unkD4 = sndDist; + var_r3 = (listener != NULL) ? listener->flag : 0; + var_f4 = (var_r3 & 1) ? listener->startDis : 0.0f; + var_f0 = (var_r3 & 2) ? listener->frontSurDis : (var_f4 + sndDist * 0.25f); + var_f0_2 = (var_r3 & 4) ? listener->backSurDis : (var_f4 + sndDist * 0.25f); + if ((s32) sndAddListenerEx(&se_ptr->unk14, temp_a4, temp_b0, temp_bc, temp_c8, + var_f0, var_f0_2, sndSpeed, -var_f4, 1, 0x7F, NULL) == FALSE) + { + se_ptr->unkDA = 0; + return MSM_ERR_22; + } + se_ptr->unkDA = 1; + return 0; +} + +s32 msmSeGetEntryID(s32 seId, int* seNo) { + msmSeStruct00* temp_r8; + s32 var_r9; + s32 var_r10; + + for (var_r9 = var_r10 = 0; var_r9 < se.unk04; var_r9++) { + temp_r8 = &se.unk10[var_r9]; + if (temp_r8->unk0A != 0 && temp_r8->unk08 == seId) { + if (seNo != NULL) { + seNo[var_r10] = temp_r8->unk04; + } + var_r10++; + } + } + return var_r10; +} + +s32 msmSeGetNumPlay(BOOL baseGrp) { + msmSeStruct02* se_ptr = &se; + + switch (baseGrp) { + case FALSE: + return se_ptr->unk06 + se_ptr->unk05; + default: + return se_ptr->unk06; + } +} + +static inline msmSeStruct00* msmSeGetStatus_inline(s32 seNo) { + msmSeStruct00* var_r4; + s32 var_ctr; + + for (var_ctr = 0; var_ctr < se.unk04; var_ctr++) { + var_r4 = &se.unk10[var_ctr]; + if (var_r4->unk0A != 0 && var_r4->unk04 == seNo) { + return var_r4; + } + } + return NULL; +} + +s32 msmSeGetStatus(int seNo) { + msmSeStruct00* var_r4; + + var_r4 = msmSeGetStatus_inline(seNo); + if (var_r4 == NULL) { + return 0; + } + return var_r4->unk0A; +} + +void msmSeSetMasterVolume(s32 arg0) { + sndMasterVolume(arg0 & 0x7F, 0, 0, 1); +} + +s32 msmSeSetParam(int seNo, MSM_SEPARAM* param) { + msmSeStruct00* var_r31; + s32 temp_r3; + s32 var_r0; + s32 var_r4; + + var_r31 = msmSeGetStatus_inline(seNo); + if (var_r31 == NULL) { + return MSM_ERR_6F; + } + if (param->flag & 1) { + var_r31->unk0B = 1; + var_r31->unk0C = param->vol; + if (!(var_r31->unk13 & 1) || var_r31->unkB4 != 1) { + sndFXVolume(var_r31->unk00, var_r31->unk0C * var_r31->unk30 * var_r31->unk3C * var_r31->unk48 / 2048383); + } + var_r31->unk0B = 0; + } + if (!(var_r31->unk13 & 1)) { + if (param->flag & 2) { + var_r31->unk0D = param->pan; + temp_r3 = var_r31->unk0D + var_r31->unk31 - 0x40; // TODO: inline? + var_r0 = temp_r3; + if (temp_r3 < 0) { + var_r0 = 0; + } + if (var_r0 > 0x7F) { + var_r0 = 0x7F; + } + sndFXPanning(var_r31->unk00, var_r0); + } + if (param->flag & 4) { + var_r31->unk0E = param->pitch; + var_r4 = var_r31->unk0E + var_r31->unk32 + 0x2000; + if (var_r4 < 0) { + var_r4 = 0; + } + if (var_r4 > 0x3FFF) { + var_r4 = 0x3FFF; + } + sndFXPitchBend(var_r31->unk00, var_r4); + } + if (param->flag & 8) { + var_r31->unk10 = param->span; + sndFXSurroundPanning(var_r31->unk00, var_r31->unk10); + } + } else if (var_r31->unkB4 == 1) { + var_r31->unk00 = sndEmitterVoiceID(&var_r31->unk4C); + if (param->flag & 0x40) { + var_r31->unk0B = 1; + var_r31->unkA8.x = param->pos.x - var_r31->unk9C.x; + var_r31->unkA8.y = param->pos.y - var_r31->unk9C.y; + var_r31->unkA8.z = param->pos.z - var_r31->unk9C.z; + var_r31->unk9C.x = param->pos.x; + var_r31->unk9C.y = param->pos.y; + var_r31->unk9C.z = param->pos.z; + sndUpdateEmitter(&var_r31->unk4C, &var_r31->unk9C, &var_r31->unkA8, var_r31->unk0C * var_r31->unk30 * var_r31->unk3C * var_r31->unk48 / 2048383, NULL); + var_r31->unk0B = 0; + } + } + if (param->flag & 0x10) { + var_r31->unk11 = param->auxAVol; + sndFXReverb(var_r31->unk00, var_r31->unk11); + } + if (param->flag & 0x20) { + var_r31->unk12 = param->auxBVol; + sndFXChorus(var_r31->unk00, var_r31->unk12); + } + if (param->flag & 0x80) { + sndSendMessage(var_r31->unk00, param->pad); + } + return 0; +} + +void msmSePauseAll(BOOL pause, s32 speed) { + s32 var_r27; + msmSeStruct00* temp_r26; + + for (var_r27 = 0; var_r27 < se.unk04; var_r27++) { + temp_r26 = &se.unk10[var_r27]; + temp_r26->unk0B = 1; + msmSePauseSub(temp_r26, pause, speed); + temp_r26->unk0B = 0; + } +} + +void msmSeStopAll(BOOL checkGrp, s32 speed) { + msmSeStruct02* se_ptr = &se; + msmSeStruct00* temp_r28; + s32 var_r27; + + for (var_r27 = 0; var_r27 < se_ptr->unk04; var_r27++) { + temp_r28 = &se_ptr->unk10[var_r27]; + if (temp_r28->unk0A == 0) { + continue; + } + temp_r28->unk0B = 1; + switch (checkGrp) { + case FALSE: + temp_r28->unk34 = speed / 15; + if (temp_r28->unk34 != 0) { + temp_r28->unk38 = temp_r28->unk34; + temp_r28->unk3C = 0x7F; + } else { + temp_r28->unk0A = 1; + if ((temp_r28->unk13 & 1) && temp_r28->unkB4 == 1) { + sndRemoveEmitter(&temp_r28->unk4C); + } else { + sndFXKeyOff(temp_r28->unk00); + } + } + break; + default: + if (msmSysCheckBaseGroup(se_ptr->unk0C[temp_r28->unk08].groupId) == 0) { + temp_r28->unk34 = speed / 15; + if (temp_r28->unk34 != 0) { + temp_r28->unk38 = temp_r28->unk34; + temp_r28->unk3C = 0x7F; + } else { + temp_r28->unk0A = 1; + if ((temp_r28->unk13 & 1) && temp_r28->unkB4 == 1) { + sndRemoveEmitter(&temp_r28->unk4C); + } else { + sndFXKeyOff(temp_r28->unk00); + } + } + } + break; + } + temp_r28->unk0B = 0; + } +} + +s32 msmSeStop(int seNo, s32 speed) { + msmSeStruct00* var_r31; + + var_r31 = msmSeGetStatus_inline(seNo); + if (var_r31 == NULL) { + return MSM_ERR_6F; + } + var_r31->unk0B = 1; + // TODO: this pattern could be an inline. + var_r31->unk34 = speed / 15; + if (var_r31->unk34 != 0) { + var_r31->unk38 = var_r31->unk34; + var_r31->unk3C = 0x7F; + } else { + var_r31->unk0A = 1; + if ((var_r31->unk13 & 1) && var_r31->unkB4 == 1) { + sndRemoveEmitter(&var_r31->unk4C); + } else { + sndFXKeyOff(var_r31->unk00); + } + } + var_r31->unk0B = 0; + return 0; +} + +// TODO: https://decomp.me/scratch/uhYSL +// msmSePlay + +s32 msmSeInit(sysData* arg0, DVDFileInfo* arg1) { + s32 temp_r29; + + se.unk04 = 0; + se.unk00 = 0; + se.unk05 = 0; + se.unk06 = 0; + se.unkDA = 0; + if (arg0->unk10->unk6 == 0) { + return 0; + } + if ((se.unk0C = msmMemAlloc(arg0->unkC->unk34)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + if (msmFioRead(arg1, se.unk0C, arg0->unkC->unk34, arg0->unkC->unk30) < 0) { + return MSM_ERR_READFAIL; + } + temp_r29 = arg0->unk10->unk2 * sizeof(*se.unk10); + if ((se.unk10 = msmMemAlloc(temp_r29)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + memset(se.unk10, 0, temp_r29); + se.unk00 = arg0->unk10->unk6; + se.unk04 = arg0->unk10->unk2; + se.unk08 = 1; + return 0; +} diff --git a/src/msm/msmsys.c b/src/msm/msmsys.c index 9c9aedda..b3165461 100644 --- a/src/msm/msmsys.c +++ b/src/msm/msmsys.c @@ -1,5 +1,4 @@ -#include "dolphin.h" -#include "dolphin/ai.h" +#include "msm/msmsys.h" #include "msm/msmfio.h" #include "msm/msmmem.h" #include "msm/msmmus.h" @@ -9,61 +8,6 @@ #include "game/msm.h" // TODO remove, only for decomp -typedef struct _unkSubStruct { - s8 unk0; - union { - f32 unk4f[9]; - s32 unk4s[9]; - }; -} unkSubStruct; - -typedef struct _unkSubStruct2 { - char unk[0x3C]; - s32 unk3C; - s32 unk40; - s32 unk44; - s32 unk48; - s32 unk4C; - s32 unk50; - s32 unk54; - s32 unk58; - s32 unk5C; - char unk60[0x30]; - s32 unk90; - s32 unk94; - s32 unk98; - char unk9C[0xA0]; - u8 unk13C; - f32 unk140; - f32 unk144; - f32 unk148; - f32 unk14C; - f32 unk150; - char unk154[0x70]; - u8 unk1C4; - f32 unk1C8; - f32 unk1CC; - f32 unk1D0; - f32 unk1D4; - f32 unk1D8; - f32 unk1DC; -} unkSubStruct2; // sizeof unk1E0 - -typedef struct _unkSubStruct3 { - char unk[0x4]; - s32 unk4; - char unk8[0x8]; - s32 unk10; // offset - u32 unk14; // length - s32 unk18; // offset - u32 unk1C; // length - char unk20[0x18]; - s32 unk38; - char unk3C[4]; - s32 unk40; - char unk44[0x1C]; -} unkSubStruct3; // sizeof 0x60 - typedef struct _unkStruct2 { char *unk0; s32 unk4; @@ -74,12 +18,6 @@ typedef struct _unkStruct2 { void *unk18; } unkStruct2; -typedef struct _unkStruct3 { - s32 unk0; - s32 unk4; - s32 unk8; -} unkStruct3; - typedef struct _unkStruct4 { SND_GROUPID unk0; s32 unk4; @@ -88,49 +26,6 @@ typedef struct _unkStruct4 { s32 unk10; } unkStruct4; -typedef struct _sndInitData { - s8 unk0; - s8 unk1; - s8 unk2; - char unk3[0xB]; - s8 unkE; - s8 unkF; - u32 unk10; - s32 unk14; - char unk18[0x11]; - s8 unk29[10]; // size unknown -} sndInitData; - -typedef struct _sysData { - s32 unk0; - s8 unk4; - s8 unk5; - s8 unk6; - s8 unk7; - s32 unk8; - unkSubStruct3 *unkC; - sndInitData *unk10; - unkSubStruct *unk14; - s8 unk18; - s8 unk19; - s8 unk1A; - s8 unk1B; - unkSubStruct2 unk1C; // userA - unkSubStruct2 unk1FC; // userB - char unk3DC[0x8]; - s32 unk3E4; - s32 unk3E8; - s32 unk3EC; - s32 unk3F0; - s8 unk3F4; - unkStruct3 *unk3F8; - char unk3FC[0xF0]; - s32 unk4EC; - BOOL unk4F0; - AIDCallback unk4F4; - s32 unk4F8; -} sysData; - static sysData sys; void msmSysServer(void) @@ -372,12 +267,12 @@ s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram) msmFioClose(&sp10); return var_r26; } - var_r26 = msmMusInit(&sys.unk0, &sp10); + var_r26 = msmMusInit(&sys, &sp10); if (var_r26 != 0) { msmFioClose(&sp10); return var_r26; } - var_r26 = msmSeInit(&sys.unk0, &sp10); + var_r26 = msmSeInit(&sys, &sp10); if (var_r26 != 0) { msmFioClose(&sp10); return var_r26; From 6284cb61163c01e675c37b1a3e7b6ceb18595394 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Mon, 13 Jan 2025 20:07:10 -0800 Subject: [PATCH 252/311] Matched most of msmsys (5 functions left) (#528) --- include/game/msm.h | 4 +- include/msm/msmstream.h | 2 +- include/msm/msmsys.h | 141 +++++++---- src/msm/msmsys.c | 512 +++++++++++++++++++++++++++++++--------- 4 files changed, 491 insertions(+), 168 deletions(-) diff --git a/include/game/msm.h b/include/game/msm.h index 5d7dfa11..c99b7eb4 100644 --- a/include/game/msm.h +++ b/include/game/msm.h @@ -40,7 +40,9 @@ #define MSM_ERR_OUTOFMEM -10 #define MSM_ERR_OUTOFAMEM -20 #define MSM_ERR_INITFAIL -20 +#define MSM_ERR_1E -30 #define MSM_ERR_INVALID_AUXPARAM -31 +#define MSM_ERR_20 -32 #define MSM_ERR_PLAYFAIL -33 #define MSM_ERR_22 -34 #define MSM_ERR_STREAMALLOC_FAIL -35 @@ -166,7 +168,7 @@ typedef struct msmStreamParam_s { } MSM_STREAMPARAM; s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram); -void msmSysSetOutputMode(SND_OUTPUTMODE mode); +s32 msmSysSetOutputMode(SND_OUTPUTMODE mode); s32 msmSysDelGroupAll(void); s32 msmSysLoadGroup(s32 grp, void *buf, BOOL flag); s32 msmSysGetSampSize(BOOL baseGrp); diff --git a/include/msm/msmstream.h b/include/msm/msmstream.h index c21347b0..d1818803 100644 --- a/include/msm/msmstream.h +++ b/include/msm/msmstream.h @@ -4,7 +4,7 @@ #include "dolphin/types.h" void msmStreamPeriodicProc(void); -void msmStreamSetOutputMode(s8); +void msmStreamSetOutputMode(s32); void msmStreamAmemFree(void); s32 msmStreamAmemAlloc(void); s32 msmStreamInit(char *); diff --git a/include/msm/msmsys.h b/include/msm/msmsys.h index fbd36f7e..af06396f 100755 --- a/include/msm/msmsys.h +++ b/include/msm/msmsys.h @@ -1,47 +1,47 @@ #ifndef MSMSYS_H #define MSMSYS_H +#include "musyx/musyx.h" + #include "dolphin.h" +typedef struct { + u32 tempDisableFX; + f32 coloration; + f32 mix; + f32 time; + f32 damping; + f32 preDelay; + f32 crosstalk; +} SubStructRev; + +typedef struct { + u32 baseDelay; + u32 variation; + u32 period; +} SubStructCh; + +typedef struct { + u32 delay[3]; + u32 feedback[3]; + u32 output[3]; +} SubDelay; + typedef struct _unkSubStruct { s8 unk0; union { - f32 unk4f[9]; - s32 unk4s[9]; + SubStructRev rev; + SubStructCh ch; + SubDelay delay; }; } unkSubStruct; -typedef struct _unkSubStruct2 { - char unk[0x3C]; - s32 unk3C; - s32 unk40; - s32 unk44; - s32 unk48; - s32 unk4C; - s32 unk50; - s32 unk54; - s32 unk58; - s32 unk5C; - char unk60[0x30]; - s32 unk90; - s32 unk94; - s32 unk98; - char unk9C[0xA0]; - u8 unk13C; - f32 unk140; - f32 unk144; - f32 unk148; - f32 unk14C; - f32 unk150; - char unk154[0x70]; - u8 unk1C4; - f32 unk1C8; - f32 unk1CC; - f32 unk1D0; - f32 unk1D4; - f32 unk1D8; - f32 unk1DC; -} unkSubStruct2; // sizeof unk1E0 +typedef union { + SND_AUX_REVERBHI revHi; + SND_AUX_REVERBSTD revStd; + SND_AUX_CHORUS ch; + SND_AUX_DELAY delay; +} UnkSndAuxUnion; // Size 0x1E0 typedef struct _unkSubStruct3 { char unk[0x4]; @@ -51,7 +51,8 @@ typedef struct _unkSubStruct3 { u32 unk14; // length s32 unk18; // offset u32 unk1C; // length - char unk20[8]; + s32 unk20; + s32 unk24; s32 unk28; s32 unk2C; s32 unk30; @@ -61,7 +62,10 @@ typedef struct _unkSubStruct3 { s32 unk40; char unk44[4]; s32 unk48; - char unk4C[0x14]; + char unk4C[4]; + s32 unk50; + s32 unk54; + char unk58[8]; } unkSubStruct3; // sizeof 0x60 typedef struct _unkStruct3 { @@ -74,21 +78,44 @@ typedef struct _sndInitData { s8 unk0; s8 unk1; s8 unk2; - char unk3[1]; + s8 unk3; s16 unk4; s16 unk6; s8 unk8; - char unk9[5]; + s8 unk9; + s8 unkA; + s8 unkB; + char unkC[2]; s8 unkE; s8 unkF; u32 unk10; s32 unk14; - char unk18[8]; + s32 unk18; + s32 unk1C; s32 unk20; - char unk24[5]; + char unk24[4]; + s8 unk28; s8 unk29[10]; // size unknown } sndInitData; +typedef struct { + /* 0x00 */ s8 unk00; + /* 0x01 */ s8 unk01; + /* 0x02 */ char unk02[2]; + /* 0x04 */ u32 unk04; + /* 0x08 */ void *unk08; +} UnkStructSys43C; // Size 0xC + +typedef struct _unkStruct4 { + SND_GROUPID unk0; + s8 unk2; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + char unk14[0xC]; +} unkStruct4; // Size 0x20 + typedef struct _sysData { s32 unk0; s8 unk4; @@ -99,20 +126,34 @@ typedef struct _sysData { unkSubStruct3 *unkC; sndInitData *unk10; unkSubStruct *unk14; - s8 unk18; - s8 unk19; + s8 unk18[2]; s8 unk1A; s8 unk1B; - unkSubStruct2 unk1C; // userA - unkSubStruct2 unk1FC; // userB - char unk3DC[0x8]; - s32 unk3E4; - s32 unk3E8; - s32 unk3EC; - s32 unk3F0; + UnkSndAuxUnion unk1C[2]; // 0: userA, 1: userB + s8 unk3DC; + char unk3DD[3]; + s32 unk3E0; + u32 unk3E4; + u32 unk3E8; + unkStruct4 *unk3EC; + void *unk3F0; s8 unk3F4; - unkStruct3 *unk3F8; - char unk3FC[0xF0]; + unkStruct3 *unk3F8[1]; // unknown array length + char unk3FC[0x38]; + s8 unk434; + s8 unk435; + s8 unk436; + char unk437[1]; + void *unk438; + UnkStructSys43C unk43C[1]; // unknown array length + char unk448[0x24]; + s8 unk46C; + s8 unk46D; + s8 unk46E; + char unk46F[1]; + void *unk470; + UnkStructSys43C unk474[1]; // unknown array length + char unk480[0x6C]; s32 unk4EC; BOOL unk4F0; AIDCallback unk4F4; diff --git a/src/msm/msmsys.c b/src/msm/msmsys.c index b3165461..2df1b11b 100644 --- a/src/msm/msmsys.c +++ b/src/msm/msmsys.c @@ -4,31 +4,12 @@ #include "msm/msmmus.h" #include "msm/msmse.h" #include "msm/msmstream.h" -#include "musyx/musyx.h" #include "game/msm.h" // TODO remove, only for decomp -typedef struct _unkStruct2 { - char *unk0; - s32 unk4; - void *unk8; - void *unkC; - void *unk10; - u32 unk14; - void *unk18; -} unkStruct2; - -typedef struct _unkStruct4 { - SND_GROUPID unk0; - s32 unk4; - s32 unk8; - s32 unkC; - s32 unk10; -} unkStruct4; - static sysData sys; -void msmSysServer(void) +static void msmSysServer(void) { if (sndIsInstalled() == 1) { if (--sys.unk4F8 == 0) { @@ -41,127 +22,190 @@ void msmSysServer(void) sys.unk4F4(); } -s32 msmSysSetAuxParam(s32 arg0, s32 arg1) +static s32 msmSysSetAuxParam(s32 arg0, s32 arg1) { - SND_AUX_CALLBACK sp24; - SND_AUX_CALLBACK sp20; - void **var_r26; - s32 var_r23; - unkSubStruct2 *temp_r3; - sysData *var_r25; - sysData *var_r27; - unkSubStruct *temp_r5; - u32 var_r0; - u8 temp_r5_2; + s32 unused_1[2]; + SND_AUX_CALLBACK sp20[2]; + s32 unused_2[2]; unkSubStruct *temp_r4_2; + UnkSndAuxUnion *temp_r3; + u32 var_r0; + s32 var_r23; - if ((sys.unk18 != -2) && (arg0 >= 0)) { - sys.unk18 = arg0; + if (sys.unk18[0] != -2 && arg0 >= 0) { + sys.unk18[0] = arg0; } - if ((sys.unk19 != -2) && (arg1 >= 0)) { - temp_r5->unk0 = arg1; + if (sys.unk18[1] != -2 && arg1 >= 0) { + sys.unk18[1] = arg1; } - if ((sys.unk18 < 0) && (temp_r5->unk0 < 0)) { + if (sys.unk18[0] < 0 && sys.unk18[1] < 0) { return 0; } - var_r27 = &sys; - var_r25 = &sys; - var_r26 = &sp20; - - // the for loop first sets sp20 and then sp24 - for (var_r23 = 0; var_r23 < 2; var_r23++, var_r27++, var_r26++, var_r25++) { - if (var_r27->unk18 < 0) { - *var_r26 = NULL; + for (var_r23 = 0; var_r23 < 2; var_r23++) { + if (sys.unk18[var_r23] < 0) { + sp20[var_r23] = NULL; continue; } - temp_r4_2 = &sys.unk14[var_r27->unk18]; - temp_r3 = &var_r25->unk1C; + temp_r4_2 = &sys.unk14[sys.unk18[var_r23]]; + temp_r3 = &sys.unk1C[var_r23]; switch (temp_r4_2->unk0) { case 0: - *var_r26 = &sndAuxCallbackReverbHI; - temp_r3->unk1C4 = temp_r4_2->unk4s[0]; - temp_r3->unk1C8 = temp_r4_2->unk4f[1]; - temp_r3->unk1CC = temp_r4_2->unk4f[2]; - temp_r3->unk1D0 = temp_r4_2->unk4f[3]; - temp_r3->unk1D4 = temp_r4_2->unk4f[4]; - temp_r3->unk1D8 = temp_r4_2->unk4f[5]; - temp_r3->unk1DC = temp_r4_2->unk4f[6]; - // var_r0 = sndAuxCallbackPrepareReverbHI(); + sp20[var_r23] = sndAuxCallbackReverbHI; + temp_r3->revHi.tempDisableFX = temp_r4_2->rev.tempDisableFX; + temp_r3->revHi.coloration = temp_r4_2->rev.coloration; + temp_r3->revHi.mix = temp_r4_2->rev.mix; + temp_r3->revHi.time = temp_r4_2->rev.time; + temp_r3->revHi.damping = temp_r4_2->rev.damping; + temp_r3->revHi.preDelay = temp_r4_2->rev.preDelay; + temp_r3->revHi.crosstalk = temp_r4_2->rev.crosstalk; + var_r0 = sndAuxCallbackPrepareReverbHI(&temp_r3->revHi); break; case 1: - *var_r26 = &sndAuxCallbackReverbSTD; - temp_r3->unk13C = temp_r4_2->unk4s[0]; - temp_r3->unk140 = temp_r4_2->unk4f[1]; - temp_r3->unk144 = temp_r4_2->unk4f[2]; - temp_r3->unk148 = temp_r4_2->unk4f[3]; - temp_r3->unk14C = temp_r4_2->unk4f[4]; - temp_r3->unk150 = temp_r4_2->unk4f[5]; - // var_r0 = sndAuxCallbackPrepareReverbSTD(); + sp20[var_r23] = sndAuxCallbackReverbSTD; + temp_r3->revStd.tempDisableFX = temp_r4_2->rev.tempDisableFX; + temp_r3->revStd.coloration = temp_r4_2->rev.coloration; + temp_r3->revStd.mix = temp_r4_2->rev.mix; + temp_r3->revStd.time = temp_r4_2->rev.time; + temp_r3->revStd.damping = temp_r4_2->rev.damping; + temp_r3->revStd.preDelay = temp_r4_2->rev.preDelay; + var_r0 = sndAuxCallbackPrepareReverbSTD(&temp_r3->revStd); break; case 2: - *var_r26 = &sndAuxCallbackChorus; - temp_r3->unk90 = temp_r4_2->unk4s[0]; - temp_r3->unk94 = temp_r4_2->unk4s[1]; - temp_r3->unk98 = temp_r4_2->unk4s[2]; - // var_r0 = sndAuxCallbackPrepareChorus(); + sp20[var_r23] = sndAuxCallbackChorus; + temp_r3->ch.baseDelay = temp_r4_2->ch.baseDelay; + temp_r3->ch.variation = temp_r4_2->ch.variation; + temp_r3->ch.period = temp_r4_2->ch.period; + var_r0 = sndAuxCallbackPrepareChorus(&temp_r3->ch); break; case 3: - *var_r26 = &sndAuxCallbackDelay; - temp_r3->unk3C = temp_r4_2->unk4s[0]; - temp_r3->unk48 = temp_r4_2->unk4s[3]; - temp_r3->unk54 = temp_r4_2->unk4s[6]; - temp_r3->unk40 = temp_r4_2->unk4s[1]; - temp_r3->unk4C = temp_r4_2->unk4s[4]; - temp_r3->unk58 = temp_r4_2->unk4s[7]; - temp_r3->unk44 = temp_r4_2->unk4s[2]; - temp_r3->unk50 = temp_r4_2->unk4s[5]; - temp_r3->unk5C = temp_r4_2->unk4s[8]; - // var_r0 = sndAuxCallbackPrepareDelay(); + sp20[var_r23] = sndAuxCallbackDelay; + temp_r3->delay.delay[0] = temp_r4_2->delay.delay[0]; + temp_r3->delay.feedback[0] = temp_r4_2->delay.feedback[0]; + temp_r3->delay.output[0] = temp_r4_2->delay.output[0]; + temp_r3->delay.delay[1] = temp_r4_2->delay.delay[1]; + temp_r3->delay.feedback[1] = temp_r4_2->delay.feedback[1]; + temp_r3->delay.output[1] = temp_r4_2->delay.output[1]; + temp_r3->delay.delay[2] = temp_r4_2->delay.delay[2]; + temp_r3->delay.feedback[2] = temp_r4_2->delay.feedback[2]; + temp_r3->delay.output[2] = temp_r4_2->delay.output[2]; + var_r0 = sndAuxCallbackPrepareDelay(&temp_r3->delay); break; } if (var_r0 == 0) { return 1; } } - sndSetAuxProcessingCallbacks(0, sp20, &sys.unk1C, 0xFF, 0, sp24, &sys.unk1FC, 0xFF, 0); + sndSetAuxProcessingCallbacks(0, sp20[0], &sys.unk1C[0], 0xFF, 0, sp20[1], &sys.unk1C[1], 0xFF, 0); return 0; } -s8 msmSysLoadBaseGroup(void *arg0) +static s8 msmSysLoadBaseGroup(void *arg0) { DVDFileInfo spC; - sysData *var_r30; s32 var_r28; unkStruct3 *temp_r27; unkStruct4 *temp_r25; if (msmFioOpen(sys.unk0, &spC) != 1) { - return -1; + return MSM_ERR_OPENFAIL; } - var_r30 = &sys; - for (var_r28 = 0; var_r28 < sys.unk3F4; var_r30 = (sysData *)((s32)var_r30 + 4), var_r28++, sys.unk8 += temp_r25->unk10) { - temp_r27 = var_r30->unk3F8; - temp_r25 = (unkStruct4 *)(sys.unk3EC + (sys.unk10->unk29[var_r28] << 5)); + for (var_r28 = 0; var_r28 < sys.unk3F4; var_r28++) { + temp_r27 = sys.unk3F8[var_r28]; + temp_r25 = &sys.unk3EC[sys.unk10->unk29[var_r28]]; if (msmFioRead(&spC, temp_r27, temp_r25->unk8, temp_r25->unk4 + sys.unkC->unk38) < 0) { msmFioClose(&spC); - return -2; + return MSM_ERR_READFAIL; } if (msmFioRead(&spC, arg0, temp_r25->unk10, temp_r25->unkC + sys.unkC->unk40) < 0) { msmFioClose(&spC); - return -2; + return MSM_ERR_READFAIL; } - if (sndPushGroup((void *)(temp_r27->unk4 + (s32)temp_r27), temp_r25->unk0, arg0, (void *)(temp_r27->unk8 + (s32)temp_r27), - (void *)(temp_r27->unk0 + (s32)temp_r27)) - == 0U) { + if (!sndPushGroup((void*) (temp_r27->unk4 + (u32) temp_r27), temp_r25->unk0, arg0, + (void*) (temp_r27->unk8 + (u32) temp_r27), (void*) (temp_r27->unk0 + (u32) temp_r27))) + { msmFioClose(&spC); - return -0x20; + return MSM_ERR_20; } + sys.unk8 += temp_r25->unk10; } msmFioClose(&spC); return 0; } -s32 msmSysGroupInit(DVDFileInfo *arg0); +// TODO: https://decomp.me/scratch/NWiuL +// msmSysSearchGroupStack + +s32 msmSysGroupInit(DVDFileInfo *arg0) +{ + s32 var_r7; + UnkStructSys43C *temp_43C; + unkStruct4 *temp_r20; + + sys.unk3DC = sys.unk10->unk3; + sys.unk3E0 = 1; + sys.unk3F4 = sys.unk10->unk28; + sys.unk434 = sys.unk10->unk9; + sys.unk435 = 0; + sys.unk436 = 0; + sys.unk46C = sys.unk10->unkA; + sys.unk46D = 0; + sys.unk46E = 0; + if ((sys.unk3EC = msmMemAlloc(sys.unkC->unk24)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + if (msmFioRead(arg0, sys.unk3EC, sys.unkC->unk24, sys.unkC->unk20) < 0) { + return MSM_ERR_READFAIL; + } + if ((sys.unk438 = msmMemAlloc(sys.unk10->unk18 * sys.unk434)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + if ((sys.unk470 = msmMemAlloc(sys.unk10->unk1C * sys.unk46C)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + if (sys.unkC->unk54) { + if ((sys.unk3F0 = msmMemAlloc(sys.unkC->unk54)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + if (msmFioRead(arg0, sys.unk3F0, sys.unkC->unk54, sys.unkC->unk50) < 0) { + return MSM_ERR_READFAIL; + } + } else { + sys.unk3F0 = NULL; + } + for (var_r7 = 0; var_r7 < sys.unk434; var_r7++) { + temp_43C = &sys.unk43C[var_r7]; + temp_43C->unk00 = temp_43C->unk01 = 0; + temp_43C->unk04 = 0; + temp_43C->unk08 = (void*) ((u32) sys.unk438 + sys.unk10->unk18 * var_r7); + } + for (var_r7 = 0; var_r7 < sys.unk46C; var_r7++) { + temp_43C = &sys.unk474[var_r7]; + temp_43C->unk00 = temp_43C->unk01 = 0; + temp_43C->unk04 = 0; + temp_43C->unk08 = (void*) ((u32) sys.unk470 + sys.unk10->unk1C * var_r7); + } + sys.unk3E4 = 0; + for (var_r7 = 0; var_r7 < sys.unk3F4; var_r7++) { + temp_r20 = &sys.unk3EC[sys.unk10->unk29[var_r7]]; + if ((sys.unk3F8[var_r7] = msmMemAlloc(temp_r20->unk8)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + if (sys.unk3E4 < temp_r20->unk10) { + sys.unk3E4 = temp_r20->unk10; + } + temp_r20->unk10 *= -1; + } + sys.unk3E8 = 0; + for (var_r7 = 1; var_r7 < sys.unk3DC; var_r7++) { + temp_r20 = &sys.unk3EC[var_r7]; + if (temp_r20->unk10 < 0) { + temp_r20->unk10 *= -1; + } else if (sys.unk3E8 < temp_r20->unk10) { + sys.unk3E8 = temp_r20->unk10; + } + } + return 0; +} void msmSysIrqDisable(void) { @@ -179,13 +223,138 @@ void msmSysIrqEnable(void) } } -void msmSysRegularProc(void); +BOOL msmSysCheckBaseGroup(s32 arg0) +{ + s32 var_r6; + + for (var_r6 = 0; var_r6 < sys.unk3F4 + sys.unk436 + sys.unk46E; var_r6++) { + if (sys.unk3EC[sys.unk10->unk29[var_r6]].unk0 == arg0) { + return TRUE; + } + } + return FALSE; +} + +void *msmSysGetGroupDataPtr(s32 arg0) +{ + UnkStructSys43C *temp_43C; + s32 var_r6; + + for (var_r6 = 0; var_r6 < sys.unk3F4; var_r6++) { + if (sys.unk10->unk29[var_r6] == arg0) { + return sys.unk3F8[var_r6]; + } + } + for (var_r6 = 0; var_r6 < sys.unk434; var_r6++) { + temp_43C = &sys.unk43C[var_r6]; + if (temp_43C->unk04 != 0 && temp_43C->unk00 == arg0) { + return temp_43C->unk08; + } + } + for (var_r6 = 0; var_r6 < sys.unk46C; var_r6++) { + temp_43C = &sys.unk474[var_r6]; + if (temp_43C->unk04 != 0 && temp_43C->unk00 == arg0) { + return temp_43C->unk08; + } + } + return NULL; +} + +BOOL msmSysCheckLoadGroupID(s32 arg0) +{ + UnkStructSys43C *temp_43C; + s32 var_r6; + + for (var_r6 = 0; var_r6 < sys.unk3F4 + sys.unk436 + sys.unk46E; var_r6++) { + if (sys.unk3EC[sys.unk10->unk29[var_r6]].unk0 == arg0) { + return TRUE; + } + } + for (var_r6 = 0; var_r6 < sys.unk434; var_r6++) { + temp_43C = &sys.unk43C[var_r6]; + if (temp_43C->unk04 != 0 && sys.unk3EC[temp_43C->unk00].unk0 == arg0) { + return TRUE; + } + } + for (var_r6 = 0; var_r6 < sys.unk46C; var_r6++) { + temp_43C = &sys.unk474[var_r6]; + if (temp_43C->unk04 != 0 && sys.unk3EC[temp_43C->unk00].unk0 == arg0) { + return TRUE; + } + } + return FALSE; +} + +void msmSysRegularProc(void) +{ +} s32 msmSysGetOutputMode(void) { return sys.unk4; } +s32 msmSysSetOutputMode(SND_OUTPUTMODE mode) +{ + SND_OUTPUTMODE var_r3; + s32 var_r30; + + var_r30 = 0; + sys.unk4 = mode; + switch (mode) { + case SND_OUTPUTMODE_MONO: + var_r3 = SND_OUTPUTMODE_MONO; + break; + case SND_OUTPUTMODE_SURROUND: + if (sys.unk10->unkB != 0) { + var_r3 = SND_OUTPUTMODE_SURROUND; + } else { + sys.unk4 = SND_OUTPUTMODE_STEREO; + var_r3 = SND_OUTPUTMODE_STEREO; + var_r30 = 1; + } + break; + case SND_OUTPUTMODE_STEREO: + default: + var_r3 = SND_OUTPUTMODE_STEREO; + break; + } + sndOutputMode(var_r3); + msmStreamSetOutputMode(sys.unk4); + OSSetSoundMode((mode != SND_OUTPUTMODE_MONO) ? 1 : 0); + return var_r30; +} + +s32 msmSysSetAux(s32 arg0, s32 arg1) +{ + s32 var_r28; + + sndSetAuxProcessingCallbacks(0, NULL, NULL, 0, 0, NULL, NULL, 0, 0); + for (var_r28 = 1; var_r28 >= 0; var_r28--) { + if (sys.unk18[var_r28] < 0) { + continue; + } + switch (sys.unk14[sys.unk18[var_r28]].unk0) { + case 0: + sndAuxCallbackShutdownReverbHI(&sys.unk1C[var_r28].revHi); + break; + case 1: + sndAuxCallbackShutdownReverbSTD(&sys.unk1C[var_r28].revStd); + break; + case 2: + sndAuxCallbackShutdownChorus(&sys.unk1C[var_r28].ch); + break; + case 3: + sndAuxCallbackShutdownDelay(&sys.unk1C[var_r28].delay); + break; + } + } + if (msmSysSetAuxParam(arg0, arg1) != 0) { + return MSM_ERR_INVALID_AUXPARAM; + } + return 0; +} + s32 msmSysGetSampSize(BOOL baseGrp) { if (baseGrp != 0) { @@ -194,6 +363,118 @@ s32 msmSysGetSampSize(BOOL baseGrp) return sys.unk3E4; } +s32 msmSysDelGroupAll(void) +{ + UnkStructSys43C *temp_r28; + s32 var_r29; + + for (var_r29 = 0; var_r29 < sys.unk46C; var_r29++) { + temp_r28 = &sys.unk474[var_r29]; + if (temp_r28->unk04 != 0 && temp_r28->unk01 == 0) { + temp_r28->unk04 = 0; + sndPopGroup(); + sys.unk8 -= sys.unk3EC[temp_r28->unk00].unk10; + sys.unk46D--; + } + } + for (var_r29 = 0; var_r29 < sys.unk434; var_r29++) { + temp_r28 = &sys.unk43C[var_r29]; + if (temp_r28->unk04 != 0 && temp_r28->unk01 == 0) { + temp_r28->unk04 = 0; + sndPopGroup(); + sys.unk8 -= sys.unk3EC[temp_r28->unk00].unk10; + sys.unk435--; + } + } + return 0; +} + +s32 msmSysDelGroupBase(s32 grpNum) +{ + s32 var_r4; + UnkStructSys43C *temp_r26; + s32 var_r27; + s8 var_r31; + s8 var_r25; + s32 var_r6; + + if (sys.unk436 + sys.unk46E == 0) { + return 0; + } + if (grpNum >= sys.unk436 + sys.unk46E) { + grpNum = 0; + } + if (grpNum != 0) { + msmSysDelGroupAll(); + for (var_r27 = 0; var_r27 < grpNum; var_r27++) { + var_r6 = 0; + for (var_r4 = 0; var_r4 < sys.unk434; var_r4++) { + temp_r26 = &sys.unk43C[var_r4]; + if (temp_r26->unk04 > var_r6) { + var_r6 = temp_r26->unk04; + var_r31 = var_r4; + var_r25 = 0; + } + } + for (var_r4 = 0; var_r4 < sys.unk46C; var_r4++) { + temp_r26 = &sys.unk474[var_r4]; + if (temp_r26->unk04 > var_r6) { + var_r6 = temp_r26->unk04; + var_r31 = var_r4; + var_r25 = 1; + } + } + if (var_r25 == 0) { + temp_r26 = &sys.unk43C[var_r31]; + sys.unk435--; + sys.unk436--; + } else { + temp_r26 = &sys.unk474[var_r31]; + sys.unk46D--; + sys.unk46E--; + } + sndPopGroup(); + sys.unk8 -= sys.unk3EC[temp_r26->unk00].unk10; + temp_r26->unk01 = 0; + temp_r26->unk04 = 0; + } + } else { + for (var_r27 = 0; var_r27 < sys.unk434; var_r27++) { + temp_r26 = &sys.unk43C[var_r27]; + if (temp_r26->unk04 != 0) { + sndPopGroup(); + sys.unk8 -= sys.unk3EC[temp_r26->unk00].unk10; + temp_r26->unk01 = 0; + temp_r26->unk04 = 0; + } + } + for (var_r27 = 0; var_r27 < sys.unk46C; var_r27++) { + temp_r26 = &sys.unk474[var_r27]; + if (temp_r26->unk04 != 0) { + sndPopGroup(); + sys.unk8 -= sys.unk3EC[temp_r26->unk00].unk10; + temp_r26->unk01 = 0; + temp_r26->unk04 = 0; + } + } + sys.unk46E = 0; + sys.unk46D = 0; + sys.unk436 = 0; + sys.unk435 = 0; + } + return 0; +} + +// TODO: https://decomp.me/scratch/zexTY +// msmSysLoadGroupBase + +// msmSysLoadGroupSet + +// msmSysLoadGroupSub + +// TODO: https://decomp.me/scratch/AhvXa +// msmSysLoadGroup + void msmSysCheckInit(void) { sndIsInstalled(); @@ -202,13 +483,12 @@ void msmSysCheckInit(void) s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram) { s32 var_r26; - s32 temp_r3; void *temp_r3_8; SND_HOOKS sp4C = { msmMemAlloc, msmMemFree }; DVDFileInfo sp10; if (sndIsInstalled() == 1) { - return -0x24; + return MSM_ERR_INSTALLED; } var_r26 = 0; // retErr sys.unk4EC = 0; @@ -216,30 +496,30 @@ s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram) msmFioInit(init->open, init->read, init->close); sys.unk0 = DVDConvertPathToEntrynum(init->msmPath); if (sys.unk0 < 0) { - return -1; + return MSM_ERR_OPENFAIL; } if (msmFioOpen(sys.unk0, &sp10) != 1) { - return -1; + return MSM_ERR_OPENFAIL; } if ((sys.unkC = msmMemAlloc(0x60)) == NULL) { msmFioClose(&sp10); - return -0xA; + return MSM_ERR_OUTOFMEM; } if (msmFioRead(&sp10, sys.unkC, 0x60, 0) < 0) { msmFioClose(&sp10); - return -2; + return MSM_ERR_READFAIL; } if (sys.unkC->unk4 != 2) { msmFioClose(&sp10); - return -0x79; + return MSM_ERR_INVALIDFILE; } if ((sys.unk10 = msmMemAlloc(sys.unkC->unk14)) == NULL) { msmFioClose(&sp10); - return -0xA; + return MSM_ERR_OUTOFMEM; } if (msmFioRead(&sp10, sys.unk10, sys.unkC->unk14, sys.unkC->unk10) < 0) { msmFioClose(&sp10); - return -2; + return MSM_ERR_READFAIL; } if (aram != NULL) { if (aram->skipARInit == 0) { @@ -248,14 +528,14 @@ s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram) aram = (MSM_ARAM *)ARAlloc(sys.unk10->unk14); if ((u32)aram != ARGetBaseAddress()) { msmFioClose(&sp10); - return -0x14; + return MSM_ERR_OUTOFAMEM; } sys.unk7 = 0; } else { if ((sys.unk10->unk14 + ARGetBaseAddress()) > aram->aramEnd) { msmFioClose(&sp10); - return -0x14; + return MSM_ERR_OUTOFAMEM; } ARInit(NULL, 0); ARQInit(); @@ -277,18 +557,18 @@ s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram) msmFioClose(&sp10); return var_r26; } - sys.unk18 = sys.unk10->unkE == -2 ? -2 : -1; - sys.unk19 = sys.unk10->unkF == -2 ? -2 : -1; + sys.unk18[0] = sys.unk10->unkE == -2 ? -2 : -1; + sys.unk18[1] = sys.unk10->unkF == -2 ? -2 : -1; if ((s32)sys.unkC->unk1C == 0) { var_r26 = 0; } else { if ((sys.unk14 = msmMemAlloc(sys.unkC->unk1C)) == NULL) { - var_r26 = -0xA; + var_r26 = MSM_ERR_OUTOFMEM; } else { if (msmFioRead(&sp10, sys.unk14, sys.unkC->unk1C, sys.unkC->unk18) < 0) { - var_r26 = -2; + var_r26 = MSM_ERR_READFAIL; } else { var_r26 = 0; @@ -300,14 +580,14 @@ s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram) return var_r26; } msmFioClose(&sp10); - temp_r3 = msmStreamInit(init->pdtPath); - if (temp_r3 < 0) { - return temp_r3; + var_r26 = msmStreamInit(init->pdtPath); + if (var_r26 < 0) { + return var_r26; } AIInit(NULL); sndSetHooks(&sp4C); if (sndInit(sys.unk10->unk0, sys.unk10->unk1, sys.unk10->unk2, 1, 0, sys.unk10->unk14) != 0) { - return -0x1E; + return MSM_ERR_1E; } sys.unk4F4 = AIRegisterDMACallback(msmSysServer); sys.unk4F8 = 1; @@ -322,14 +602,14 @@ s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram) if (temp_r3_8 == NULL) { msmStreamAmemFree(); sndQuit(); - return -0xA; + return MSM_ERR_OUTOFMEM; } msmMemFree(temp_r3_8); } if (msmSysSetAuxParam(sys.unk10->unkE, sys.unk10->unkF) != 0) { msmStreamAmemFree(); sndQuit(); - return -0x1F; + return MSM_ERR_INVALID_AUXPARAM; } msmSysSetOutputMode(OSGetSoundMode() == 0 ? SND_OUTPUTMODE_MONO : SND_OUTPUTMODE_STEREO); sndVolume(0x7F, 0, 0xFF); From 3edd72d33e3577f8c0ed7ae89ba34eba83b625b2 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Tue, 14 Jan 2025 06:44:01 -0800 Subject: [PATCH 253/311] Matched msmsys (#529) --- configure.py | 2 +- include/game/msm.h | 3 +- include/msm/msmsys.h | 13 +- src/msm/msmsys.c | 316 +++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 318 insertions(+), 16 deletions(-) diff --git a/configure.py b/configure.py index 5c54e7fc..fdbbbc1a 100644 --- a/configure.py +++ b/configure.py @@ -838,7 +838,7 @@ config.libs = [ "cflags": cflags_msm, "host": False, "objects": [ - Object(NonMatching, "msm/msmsys.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmsys.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmmem.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmfio.c"), Object(NonMatching, "msm/msmmus.c"), diff --git a/include/game/msm.h b/include/game/msm.h index c99b7eb4..030dd77c 100644 --- a/include/game/msm.h +++ b/include/game/msm.h @@ -47,6 +47,8 @@ #define MSM_ERR_22 -34 #define MSM_ERR_STREAMALLOC_FAIL -35 #define MSM_ERR_INSTALLED -36 +#define MSM_ERR_64 -100 +#define MSM_ERR_65 -101 #define MSM_ERR_GRP_NOTLOADED -103 #define MSM_ERR_6F -111 #define MSM_ERR_INVALIDID -120 @@ -170,7 +172,6 @@ typedef struct msmStreamParam_s { s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram); s32 msmSysSetOutputMode(SND_OUTPUTMODE mode); s32 msmSysDelGroupAll(void); -s32 msmSysLoadGroup(s32 grp, void *buf, BOOL flag); s32 msmSysGetSampSize(BOOL baseGrp); s32 msmSysDelGroupBase(s32 grpNum); diff --git a/include/msm/msmsys.h b/include/msm/msmsys.h index af06396f..ffd86bae 100755 --- a/include/msm/msmsys.h +++ b/include/msm/msmsys.h @@ -109,6 +109,7 @@ typedef struct { typedef struct _unkStruct4 { SND_GROUPID unk0; s8 unk2; + s8 unk3; s32 unk4; s32 unk8; s32 unkC; @@ -116,6 +117,12 @@ typedef struct _unkStruct4 { char unk14[0xC]; } unkStruct4; // Size 0x20 +typedef struct { + /* 0x00 */ s8 unk00; + /* 0x01 */ s8 unk01; + /* 0x02 */ s8 unk02[1]; // unknown array length +} UnkSys3F0Struct; // Size unknown + typedef struct _sysData { s32 unk0; s8 unk4; @@ -136,19 +143,19 @@ typedef struct _sysData { u32 unk3E4; u32 unk3E8; unkStruct4 *unk3EC; - void *unk3F0; + UnkSys3F0Struct *unk3F0; s8 unk3F4; unkStruct3 *unk3F8[1]; // unknown array length char unk3FC[0x38]; s8 unk434; - s8 unk435; + u8 unk435; s8 unk436; char unk437[1]; void *unk438; UnkStructSys43C unk43C[1]; // unknown array length char unk448[0x24]; s8 unk46C; - s8 unk46D; + u8 unk46D; s8 unk46E; char unk46F[1]; void *unk470; diff --git a/src/msm/msmsys.c b/src/msm/msmsys.c index 2df1b11b..726a3a29 100644 --- a/src/msm/msmsys.c +++ b/src/msm/msmsys.c @@ -99,7 +99,7 @@ static s32 msmSysSetAuxParam(s32 arg0, s32 arg1) return 0; } -static s8 msmSysLoadBaseGroup(void *arg0) +static s32 msmSysLoadBaseGroup(void *buf) { DVDFileInfo spC; s32 var_r28; @@ -116,11 +116,11 @@ static s8 msmSysLoadBaseGroup(void *arg0) msmFioClose(&spC); return MSM_ERR_READFAIL; } - if (msmFioRead(&spC, arg0, temp_r25->unk10, temp_r25->unkC + sys.unkC->unk40) < 0) { + if (msmFioRead(&spC, buf, temp_r25->unk10, temp_r25->unkC + sys.unkC->unk40) < 0) { msmFioClose(&spC); return MSM_ERR_READFAIL; } - if (!sndPushGroup((void*) (temp_r27->unk4 + (u32) temp_r27), temp_r25->unk0, arg0, + if (!sndPushGroup((void*) (temp_r27->unk4 + (u32) temp_r27), temp_r25->unk0, buf, (void*) (temp_r27->unk8 + (u32) temp_r27), (void*) (temp_r27->unk0 + (u32) temp_r27))) { msmFioClose(&spC); @@ -132,8 +132,40 @@ static s8 msmSysLoadBaseGroup(void *arg0) return 0; } -// TODO: https://decomp.me/scratch/NWiuL -// msmSysSearchGroupStack +s32 msmSysSearchGroupStack(s32 arg0, s32 arg1) +{ + UnkStructSys43C *var_r3; + u32 var_r5; + s32 var_r6; + s32 var_r7; + s32 var_r8; + s32 var_r9; + s32 var_r0; + + var_r8 = -1; + var_r9 = 0; + if (sys.unk3EC[arg0].unk2 == 0) { + var_r3 = sys.unk43C; + var_r0 = sys.unk434; + } else { + var_r3 = sys.unk474; + var_r0 = sys.unk46C; + } + for (var_r6 = 0; var_r6 < var_r0; var_r3++, var_r6++) { + if (var_r6 == arg1) { + continue; + } + if ((var_r5 = var_r3->unk04) != 0) { + if (var_r3->unk01 == 0 && var_r5 > var_r9) { + var_r9 = var_r5; + var_r7 = -(var_r6 + 1); + } + } else { + var_r8 = var_r6; + } + } + return (var_r8 < 0) ? var_r7 : var_r8; +} s32 msmSysGroupInit(DVDFileInfo *arg0) { @@ -223,6 +255,18 @@ void msmSysIrqEnable(void) } } +static inline BOOL msmSysInline00(s32 arg0) +{ + s32 var_r6; + + for (var_r6 = 0; var_r6 < sys.unk3F4 + sys.unk436 + sys.unk46E; var_r6++) { + if (sys.unk10->unk29[var_r6] == arg0) { + return TRUE; + } + } + return FALSE; +} + BOOL msmSysCheckBaseGroup(s32 arg0) { s32 var_r6; @@ -465,15 +509,265 @@ s32 msmSysDelGroupBase(s32 grpNum) return 0; } -// TODO: https://decomp.me/scratch/zexTY -// msmSysLoadGroupBase +static inline s32 msmSysPushGroup(DVDFileInfo *arg0, void *buf, UnkStructSys43C *arg2, s32 arg3) +{ + unkStruct4 *temp_r30; + unkStruct3 *temp_r7; -// msmSysLoadGroupSet + temp_r30 = &sys.unk3EC[arg3]; + if (msmFioRead(arg0, arg2->unk08, temp_r30->unk8, temp_r30->unk4 + sys.unkC->unk38) < 0) { + return MSM_ERR_READFAIL; + } + if (msmFioRead(arg0, buf, temp_r30->unk10, temp_r30->unkC + sys.unkC->unk40) < 0) { + return MSM_ERR_READFAIL; + } + temp_r7 = arg2->unk08; + if (!sndPushGroup((void*) (temp_r7->unk4 + (u32) temp_r7), temp_r30->unk0, buf, + (void*) (temp_r7->unk8 + (u32) temp_r7), (void*) (temp_r7->unk0 + (u32) temp_r7))) + { + return MSM_ERR_20; + } + sys.unk8 += temp_r30->unk10; + arg2->unk00 = arg3; + arg2->unk04 = sys.unk3E0++; + return 0; +} -// msmSysLoadGroupSub +s32 msmSysLoadGroupBase(s32 arg0, void *arg1) +{ + s32 temp_r29; + s32 temp_r28; + s32 var_r23; + s32 temp_r3_2; + UnkStructSys43C *var_r24; + DVDFileInfo sp10; -// TODO: https://decomp.me/scratch/AhvXa -// msmSysLoadGroup + if (arg0 < 1 || arg0 >= sys.unk3DC) { + return MSM_ERR_64; + } + var_r23 = msmSysDelGroupAll(); + if (var_r23 != 0) { + return var_r23; + } + temp_r29 = sys.unk3F4 + sys.unk436 + sys.unk46E; + if (msmSysInline00(arg0)) { + return 0; + } + if (temp_r29 >= 0xF) { + return MSM_ERR_65; + } + temp_r3_2 = msmSysSearchGroupStack(arg0, -1); + if (temp_r3_2 < 0) { + return MSM_ERR_65; + } + temp_r28 = sys.unk3EC[arg0].unk2; + if (!temp_r28) { + var_r24 = &sys.unk43C[temp_r3_2]; + } else { + var_r24 = &sys.unk474[temp_r3_2]; + } + if (msmFioOpen(sys.unk0, &sp10) != 1) { + return MSM_ERR_OPENFAIL; + } + var_r23 = msmSysPushGroup(&sp10, arg1, var_r24, arg0); + if (var_r23 != 0) { + msmFioClose(&sp10); + return var_r23; + } + msmFioClose(&sp10); + sys.unk10->unk29[temp_r29] = arg0; + var_r24->unk01 = 1; + if (temp_r28 == 0) { + sys.unk436++; + sys.unk435++; + } else { + sys.unk46E++; + sys.unk46D++; + } + return 0; +} + +static inline s32 msmSysInline01(void) +{ + if (sys.unk3F0 != NULL) { + return sys.unk3F0->unk00; + } + return 0; +} + +s32 msmSysLoadGroupSet(s32 arg0, void *arg1) +{ + s8 sp4C[12]; // unknown length (5..12 works) + DVDFileInfo sp10; + s32 temp_r3; + s32 temp_r3_2; + s32 var_r19; + s32 var_r24; + s32 var_r31; + s8 *var_r19_2; + + if (msmSysInline01() == 0) { + return 0; + } + temp_r3 = msmSysDelGroupAll(); + if (temp_r3 != 0) { + return temp_r3; + } + var_r19_2 = &sys.unk3F0->unk02[sys.unk3F0->unk01 * arg0]; + if (msmFioOpen(sys.unk0, &sp10) != TRUE) { + return MSM_ERR_OPENFAIL; + } + sys.unk435 = sys.unk436; + var_r31 = 0; + for (; *var_r19_2 != 0; var_r19_2++) { + if (msmSysInline00(*var_r19_2)) { + continue; + } + if (sys.unk3EC[(s8) *var_r19_2].unk2 == 1) { + sp4C[var_r31++] = *var_r19_2; + } else { + temp_r3_2 = msmSysSearchGroupStack(*var_r19_2, -1); + if (temp_r3_2 < 0) { + msmFioClose(&sp10); + return MSM_ERR_65; + } + var_r19 = msmSysPushGroup(&sp10, arg1, &sys.unk43C[temp_r3_2], *var_r19_2); + if (var_r19 != 0) { + msmFioClose(&sp10); + return var_r19; + } + sys.unk435++; + } + } + sys.unk46D = sys.unk46E; + for (var_r24 = 0; var_r24 < var_r31; var_r24++) { + temp_r3_2 = msmSysSearchGroupStack(sp4C[var_r24], -1); + if (temp_r3_2 < 0) { + msmFioClose(&sp10); + return MSM_ERR_65; + } + var_r19 = msmSysPushGroup(&sp10, arg1, &sys.unk474[temp_r3_2], sp4C[var_r24]); + if (var_r19 != 0) { + msmFioClose(&sp10); + return var_r19; + } + sys.unk46D++; + } + msmFioClose(&sp10); + return 0; +} + +static s32 msmSysLoadGroupSub(DVDFileInfo *arg0, s32 arg1, void *arg2) +{ + s32 var_r30; + s32 var_r18; + s32 var_r19; + s32 var_r3; + u8 *var_r29; + UnkStructSys43C *var_r28; + unkStruct4 *temp_r23; + + var_r30 = 0; + temp_r23 = &sys.unk3EC[arg1]; + if (temp_r23->unk2 == 0) { + var_r28 = sys.unk43C; + var_r29 = &sys.unk435; + } else { + var_r28 = sys.unk474; + var_r29 = &sys.unk46D; + } + if (temp_r23->unk3 != 0) { + if (!msmSysCheckBaseGroup(sys.unk3EC[temp_r23->unk3].unk0)) { + var_r19 = -1; + for (var_r18 = 0; var_r18 < 2; var_r18++) { + var_r19 = msmSysSearchGroupStack(temp_r23->unk3, var_r19); + if (var_r19 < 0) { + var_r19 = -(var_r19 + 1); + (*var_r29)--; + sndPopGroup(); + sys.unk8 -= sys.unk3EC[var_r28[var_r19].unk00].unk10; + var_r30 = var_r28[var_r19].unk00; + var_r28[var_r19].unk04 = 0; + } + } + var_r3 = msmSysPushGroup(arg0, arg2, &var_r28[var_r19], temp_r23->unk3); + if (var_r3 != 0) { + return var_r3; + } + (*var_r29)++; + } + } + var_r19 = msmSysSearchGroupStack(arg1, -1); + if (var_r19 < 0) { + var_r19 = -(var_r19 + 1); + (*var_r29)--; + sndPopGroup(); + sys.unk8 -= sys.unk3EC[var_r28[var_r19].unk00].unk10; + var_r30 = var_r28[var_r19].unk00; + } + var_r3 = msmSysPushGroup(arg0, arg2, &var_r28[var_r19], arg1); + if (var_r3 == 0) { + var_r3 = var_r30; + } + (*var_r29)++; + return var_r3; +} + +static inline void msmSysPopGroup(s32 arg0) +{ + UnkStructSys43C *temp_r23; + + temp_r23 = &sys.unk474[arg0]; + if (temp_r23->unk04 != 0 && temp_r23->unk01 == 0) { + sndPopGroup(); + sys.unk8 -= sys.unk3EC[temp_r23->unk00].unk10; + } +} + +s32 msmSysLoadGroup(s32 grp, void *buf) +{ + UnkStructSys43C *temp_r23; + unkStruct4 *temp_r22; + s32 var_r31; + s32 var_r22; + s32 var_r21; + DVDFileInfo sp14; + s32 unused; + + if (buf == NULL) { + return 0; + } + if (grp == 0) { + return msmSysLoadBaseGroup(buf); + } + temp_r22 = &sys.unk3EC[grp]; + if (msmSysCheckLoadGroupID(temp_r22->unk0)) { + return 0; + } + if (msmFioOpen(sys.unk0, &sp14) != 1) { + return MSM_ERR_OPENFAIL; + } + if (temp_r22->unk2 == 0) { + for (var_r22 = 0; var_r22 < sys.unk46C; var_r22++) { + msmSysPopGroup(var_r22); + } + var_r21 = msmSysLoadGroupSub(&sp14, grp, buf); + for (var_r22 = 0; var_r22 < sys.unk46C; var_r22++) { + temp_r23 = &sys.unk474[var_r22]; + if (temp_r23->unk04 != 0 && temp_r23->unk01 == 0) { + var_r31 = msmSysPushGroup(&sp14, buf, temp_r23, temp_r23->unk00); + if (var_r31 != 0) { + msmFioClose(&sp14); + return var_r31; + } + } + } + } else { + var_r21 = msmSysLoadGroupSub(&sp14, grp, buf); + } + msmFioClose(&sp14); + return var_r21; +} void msmSysCheckInit(void) { From 58925bcf5d6d4a9781ca77dd505781c1980112a3 Mon Sep 17 00:00:00 2001 From: Alberto Mardegan Date: Tue, 14 Jan 2025 21:29:03 +0300 Subject: [PATCH 254/311] Fix vertex attributes (#527) * Use proper enum types for vertex attributes descriptions Positions, normals and texture coordinates are always given in integer or floating point formats, never as RGB. Also replace a couple of constants with sizeof(). * Use proper function names when specifying vertex attributes --- include/dolphin/gx/GXVert.h | 6 ++ src/game/hsfdraw.c | 150 ++++++++++++++++++------------------ 2 files changed, 81 insertions(+), 75 deletions(-) diff --git a/include/dolphin/gx/GXVert.h b/include/dolphin/gx/GXVert.h index 34745aaa..d57943b3 100644 --- a/include/dolphin/gx/GXVert.h +++ b/include/dolphin/gx/GXVert.h @@ -114,6 +114,12 @@ static inline void GXPosition3f32(const f32 x, const f32 y, const f32 z) { GXWGFifo.f32 = z; } +static inline void GXNormal3s16(const s16 x, const s16 y, const s16 z) { + GXWGFifo.s16 = x; + GXWGFifo.s16 = y; + GXWGFifo.s16 = z; +} + static inline void GXNormal3f32(const f32 x, const f32 y, const f32 z) { GXWGFifo.f32 = x; GXWGFifo.f32 = y; diff --git a/src/game/hsfdraw.c b/src/game/hsfdraw.c index 5320607c..fce142dd 100755 --- a/src/game/hsfdraw.c +++ b/src/game/hsfdraw.c @@ -482,15 +482,15 @@ static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) { vtxModeBak = var_r22; GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, temp_r28->data.vertex->data, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r28->data.vertex->data, 3 * sizeof(float)); GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); if (temp_r29->hsfData->cenvCnt == 0) { - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGB8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_S8, 0); GXSetArray(GX_VA_NRM, temp_r28->data.normal->data, 3); } else { - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_NRM, temp_r28->data.normal->data, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, temp_r28->data.normal->data, 3 * sizeof(float)); } if (var_r22 & 4) { GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); @@ -555,24 +555,24 @@ static void FaceDraw(HsfDrawObject *arg0, HsfFace *arg1) { vtxModeBak = var_r22; GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, temp_r28->data.vertex->data, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r28->data.vertex->data, 3 * sizeof(float)); if (var_r22 & 2) { GXSetVtxDesc(GX_VA_NBT, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NBT, GX_NRM_NBT, GX_RGBA4, 8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NBT, GX_NRM_NBT, GX_S16, 8); } else { GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); if (temp_r29->hsfData->cenvCnt == 0) { - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGB8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_S8, 0); GXSetArray(GX_VA_NRM, temp_r28->data.normal->data, 3); } else { - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_NRM, temp_r28->data.normal->data, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, temp_r28->data.normal->data, 3 * sizeof(float)); } } GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); - GXSetArray(GX_VA_TEX0, temp_r28->data.st->data, 8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, temp_r28->data.st->data, 2 * sizeof(float)); if (var_r22 & 4) { GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); @@ -1643,15 +1643,15 @@ static void FaceDrawShadow(HsfDrawObject *arg0, HsfFace *arg1) { vtxModeBak = var_r30; GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, temp_r31->data.vertex->data, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r31->data.vertex->data, 3 * sizeof(float)); GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); if (temp_r28->hsfData->cenvCnt == 0) { - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGB8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_S8, 0); GXSetArray(GX_VA_NRM, temp_r31->data.normal->data, 3); } else { - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_NRM, temp_r31->data.normal->data, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, temp_r31->data.normal->data, 3 * sizeof(float)); } if (var_r30 & 4) { GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); @@ -1676,24 +1676,24 @@ static void FaceDrawShadow(HsfDrawObject *arg0, HsfFace *arg1) { vtxModeBak = var_r30; GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_POS, temp_r31->data.vertex->data, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, temp_r31->data.vertex->data, 3 * sizeof(float)); if (var_r30 & 2) { GXSetVtxDesc(GX_VA_NBT, GX_DIRECT); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NBT, GX_NRM_NBT, GX_RGBA4, 8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NBT, GX_NRM_NBT, GX_S16, 8); } else { GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); if (temp_r28->hsfData->cenvCnt == 0) { GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGB8, 0); GXSetArray(GX_VA_NRM, temp_r31->data.normal->data, 3); } else { - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGBA6, 0); - GXSetArray(GX_VA_NRM, temp_r31->data.normal->data, 0xC); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, temp_r31->data.normal->data, 3 * sizeof(float)); } } GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); - GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); - GXSetArray(GX_VA_TEX0, temp_r31->data.st->data, 8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, temp_r31->data.st->data, 2 * sizeof(float)); if (var_r30 & 4) { GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); @@ -2523,53 +2523,53 @@ static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) { case 2: GXBegin(GX_TRIANGLES, GX_VTXFMT0, faceNumBuf[drawCnt]); for (var_r27 = 0; var_r27 < faceNumBuf[drawCnt] / 3; var_r27++, arg1++) { - GXUnknownu16(arg1->indices[0][0]); + GXPosition1x16(arg1->indices[0][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[0][1]); + GXNormal1x16(arg1->indices[0][1]); } else { MakeCalcNBT(arg0, arg1, 0, 1); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[0][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[0][3]); + GXTexCoord1x16(arg1->indices[0][3]); } - GXUnknownu16(arg1->indices[2][0]); + GXPosition1x16(arg1->indices[2][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[2][1]); + GXNormal1x16(arg1->indices[2][1]); } else { MakeNBT(arg0, arg1, 2, 0); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[2][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[2][3]); + GXTexCoord1x16(arg1->indices[2][3]); } - GXUnknownu16(arg1->indices[1][0]); + GXPosition1x16(arg1->indices[1][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[1][1]); + GXNormal1x16(arg1->indices[1][1]); } else { MakeNBT(arg0, arg1, 1, 2); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[1][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[1][3]); + GXTexCoord1x16(arg1->indices[1][3]); } } faceCnt = faceNumBuf[drawCnt] / 3; @@ -2577,140 +2577,140 @@ static void MDFaceDraw(HsfObject *arg0, HsfFace *arg1) { case 3: GXBegin(GX_QUADS, GX_VTXFMT0, faceNumBuf[drawCnt]); for (var_r27 = 0; var_r27 < faceNumBuf[drawCnt] / 4; var_r27++, arg1++) { - GXUnknownu16(arg1->indices[0][0]); + GXPosition1x16(arg1->indices[0][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[0][1]); + GXNormal1x16(arg1->indices[0][1]); } else { MakeCalcNBT(arg0, arg1, 0, 1); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[0][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[0][3]); + GXTexCoord1x16(arg1->indices[0][3]); } - GXUnknownu16(arg1->indices[2][0]); + GXPosition1x16(arg1->indices[2][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[2][1]); + GXNormal1x16(arg1->indices[2][1]); } else { MakeNBT(arg0, arg1, 2, 0); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[2][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[2][3]); + GXTexCoord1x16(arg1->indices[2][3]); } - GXUnknownu16(arg1->indices[3][0]); + GXPosition1x16(arg1->indices[3][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[3][1]); + GXNormal1x16(arg1->indices[3][1]); } else { MakeNBT(arg0, arg1, 3, 2); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[3][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[3][3]); + GXTexCoord1x16(arg1->indices[3][3]); } - GXUnknownu16(arg1->indices[1][0]); + GXPosition1x16(arg1->indices[1][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[1][1]); + GXNormal1x16(arg1->indices[1][1]); } else { MakeNBT(arg0, arg1, 1, 3); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[1][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[1][3]); + GXTexCoord1x16(arg1->indices[1][3]); } } faceCnt = faceNumBuf[drawCnt] / 4; break; case 4: GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, faceNumBuf[drawCnt]); - GXUnknownu16(arg1->indices[0][0]); + GXPosition1x16(arg1->indices[0][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[0][1]); + GXNormal1x16(arg1->indices[0][1]); } else { MakeCalcNBT(arg0, arg1, 0, 1); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[0][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[0][3]); + GXTexCoord1x16(arg1->indices[0][3]); } - GXUnknownu16(arg1->indices[2][0]); + GXPosition1x16(arg1->indices[2][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[2][1]); + GXNormal1x16(arg1->indices[2][1]); } else { MakeNBT(arg0, arg1, 2, 0); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[2][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[2][3]); + GXTexCoord1x16(arg1->indices[2][3]); } - GXUnknownu16(arg1->indices[1][0]); + GXPosition1x16(arg1->indices[1][0]); if (var_r26 == -1) { - GXUnknownu16(arg1->indices[1][1]); + GXNormal1x16(arg1->indices[1][1]); } else { MakeNBT(arg0, arg1, 1, 2); } if (temp_r30->vtxMode == 5) { temp_r28 = arg1->indices[1][2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(arg1->indices[1][3]); + GXTexCoord1x16(arg1->indices[1][3]); } var_r24 = arg1->strip.data; for (var_r27 = 0; var_r27 < arg1->strip.count; var_r27++, var_r24 += 4) { - GXUnknownu16(var_r24[0]); + GXPosition1x16(var_r24[0]); if (var_r26 == -1) { - GXUnknownu16(var_r24[1]); + GXNormal1x16(var_r24[1]); } else { MakeCalcNBT(arg0, arg1, 0, 1); } if (temp_r30->vtxMode == 5) { temp_r28 = var_r24[2]; - GXUnknownu16(temp_r28); + GXColor1x16(temp_r28); if (((GXColor*) arg0->data.color->data)[temp_r28].a != 0xFF) { Hu3DObjInfoP->flags |= 0x4001; } } if (var_r25 != 0) { - GXUnknownu16(var_r24[3]); + GXTexCoord1x16(var_r24[3]); } } faceCnt = arg1->strip.count + 1; @@ -2755,9 +2755,9 @@ static s32 MakeCalcNBT(HsfObject *arg0, HsfFace *arg1, s16 arg2, s16 arg3) { NBTB.z = temp_r31[temp_r25].z - temp_r31[temp_r24].z; VECNormalize(&NBTB, &NBTB); VECCrossProduct(&NBTB, &sp10, &NBTT); - GXPosition3s16(sp10.x * 256.0f, sp10.y * 256.0f, sp10.z * 256.0f); - GXPosition3s16(NBTB.x * 256.0f, NBTB.y * 256.0f, NBTB.z * 256.0f); - GXPosition3s16(NBTT.x * 256.0f, NBTT.y * 256.0f, NBTT.z * 256.0f); + GXNormal3s16(sp10.x * 256.0f, sp10.y * 256.0f, sp10.z * 256.0f); + GXNormal3s16(NBTB.x * 256.0f, NBTB.y * 256.0f, NBTB.z * 256.0f); + GXNormal3s16(NBTT.x * 256.0f, NBTT.y * 256.0f, NBTT.z * 256.0f); } static s32 MakeNBT(HsfObject *arg0, HsfFace *arg1, s16 arg2, s16 arg3) { @@ -2781,9 +2781,9 @@ static s32 MakeNBT(HsfObject *arg0, HsfFace *arg1, s16 arg2, s16 arg3) { sp10.z = temp_r29[temp_r28][2]; VECNormalize(&sp10, &sp10); } - GXPosition3s16(sp10.x * 256.0f, sp10.y * 256.0f, sp10.z * 256.0f); - GXPosition3s16(NBTB.x * 256.0f, NBTB.y * 256.0f, NBTB.z * 256.0f); - GXPosition3s16(NBTT.x * 256.0f, NBTT.y * 256.0f, NBTT.z * 256.0f); + GXNormal3s16(sp10.x * 256.0f, sp10.y * 256.0f, sp10.z * 256.0f); + GXNormal3s16(NBTB.x * 256.0f, NBTB.y * 256.0f, NBTB.z * 256.0f); + GXNormal3s16(NBTT.x * 256.0f, NBTT.y * 256.0f, NBTT.z * 256.0f); } static void MDFaceCnt(HsfObject *arg0, HsfFace *arg1) { From c621824464d7574ff610227fc0f094eaf80e2f36 Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Tue, 14 Jan 2025 22:36:09 +0100 Subject: [PATCH 255/311] Change back string.c/h, fix m434Dll, work on m433Dll/player.c (#530) * Change back string.h as the change breaks things * Fix m434Dll * Work on m433Dll/player.c --- config/GMPE01_00/rels/m433Dll/symbols.txt | 10 +- config/GMPE01_00/rels/m434Dll/symbols.txt | 6 +- config/GMPP01_00/rels/m434Dll/symbols.txt | 8 +- configure.py | 2 +- include/REL/m433Dll.h | 4 +- include/string.h | 17 +- src/MSL_C.PPCEABI.bare.H/string.c | 1 + src/REL/m433Dll/main.c | 4 +- src/REL/m433Dll/player.c | 4091 +++++++++++++++++++++ src/REL/m434Dll/player.c | 1 + 10 files changed, 4113 insertions(+), 31 deletions(-) create mode 100644 src/REL/m433Dll/player.c diff --git a/config/GMPE01_00/rels/m433Dll/symbols.txt b/config/GMPE01_00/rels/m433Dll/symbols.txt index df299b4f..11a976cf 100644 --- a/config/GMPE01_00/rels/m433Dll/symbols.txt +++ b/config/GMPE01_00/rels/m433Dll/symbols.txt @@ -242,7 +242,7 @@ lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data: lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x10 scope:local data:float lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float @@ -264,8 +264,8 @@ lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data: lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x18 scope:local data:4byte -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x18 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x18 scope:local data:float lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float @@ -311,7 +311,7 @@ lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data: lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 scope:local data:double lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x8 scope:local data:double -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x8 scope:local data:4byte lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x8 scope:local data:double lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 scope:local data:double lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float @@ -441,7 +441,7 @@ lbl_1_data_5EA = .data:0x000005EA; // type:object size:0x15 scope:local data:str lbl_1_data_5FF = .data:0x000005FF; // type:object size:0x15 scope:local data:string lbl_1_data_614 = .data:0x00000614; // type:object size:0x15 scope:local data:string lbl_1_data_629 = .data:0x00000629; // type:object size:0x15 scope:local data:string -lbl_1_data_63E = .data:0x0000063E; // type:object size:0x16 +lbl_1_data_63E = .data:0x0000063E; // type:object size:0x16 data:string jumptable_1_data_654 = .data:0x00000654; // type:object size:0x20 scope:local lbl_1_data_674 = .data:0x00000674; // type:object size:0xC lbl_1_data_680 = .data:0x00000680; // type:object size:0x8 diff --git a/config/GMPE01_00/rels/m434Dll/symbols.txt b/config/GMPE01_00/rels/m434Dll/symbols.txt index 63082c5e..288bd0ad 100644 --- a/config/GMPE01_00/rels/m434Dll/symbols.txt +++ b/config/GMPE01_00/rels/m434Dll/symbols.txt @@ -303,9 +303,9 @@ lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x8 lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x18 lbl_1_data_1FC = .data:0x000001FC; // type:object size:0x28 lbl_1_data_224 = .data:0x00000224; // type:object size:0x90 -lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3 data:string -lbl_1_data_2B7 = .data:0x000002B7; // type:object size:0x3 data:string -lbl_1_data_2BA = .data:0x000002BA; // type:object size:0x3 data:string +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3 scope:local data:string +lbl_1_data_2B7 = .data:0x000002B7; // type:object size:0x3 scope:local data:string +lbl_1_data_2BA = .data:0x000002BA; // type:object size:0x3 scope:local data:string lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0x8 lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m434Dll/symbols.txt b/config/GMPP01_00/rels/m434Dll/symbols.txt index 185c6a51..c3cfd4b9 100644 --- a/config/GMPP01_00/rels/m434Dll/symbols.txt +++ b/config/GMPP01_00/rels/m434Dll/symbols.txt @@ -187,7 +187,7 @@ lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data: lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float @@ -300,9 +300,9 @@ lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x8 lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x18 lbl_1_data_1FC = .data:0x000001FC; // type:object size:0x28 lbl_1_data_224 = .data:0x00000224; // type:object size:0x90 -lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3 data:string -lbl_1_data_2B7 = .data:0x000002B7; // type:object size:0x3 data:string -lbl_1_data_2BA = .data:0x000002BA; // type:object size:0x3 data:string +lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3 scope:local data:string +lbl_1_data_2B7 = .data:0x000002B7; // type:object size:0x3 scope:local data:string +lbl_1_data_2BA = .data:0x000002BA; // type:object size:0x3 scope:local data:string lbl_1_data_2C0 = .data:0x000002C0; // type:object size:0x8 lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:float lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index fdbbbc1a..e6026c86 100644 --- a/configure.py +++ b/configure.py @@ -1131,7 +1131,7 @@ config.libs = [ objects={ Object(Matching, "REL/m434Dll/main.c"), Object(Matching, "REL/m434Dll/map.c"), - Object(NonMatching, "REL/m434Dll/player.c"), + Object(Matching, "REL/m434Dll/player.c"), Object(Matching, "REL/m434Dll/fish.c"), }, ), diff --git a/include/REL/m433Dll.h b/include/REL/m433Dll.h index e2a18da8..5028045a 100644 --- a/include/REL/m433Dll.h +++ b/include/REL/m433Dll.h @@ -23,8 +23,8 @@ typedef struct M433DllWork { void fn_1_584(omObjData *object); void fn_1_618(omObjData *object); -s32 fn_1_216C(void); -s32 fn_1_2184(void); +u32 fn_1_216C(void); +u32 fn_1_2184(void); void fn_1_219C(s32 arg0, s32 arg1, s32 arg2); void fn_1_21E4(s32 arg0); void fn_1_2214(s32 arg0); diff --git a/include/string.h b/include/string.h index 92f8f122..6ba311ed 100644 --- a/include/string.h +++ b/include/string.h @@ -1,22 +1,11 @@ #ifndef _STRING_H_ #define _STRING_H_ -#include "stddef.h" +typedef unsigned long size_t; -#ifdef __MWERKS__ -__declspec(section ".init") void* memcpy(void* dest, const void* src, size_t n); -__declspec(section ".init") void __fill_mem(void* dest, int val, size_t count); -__declspec(section ".init") void* memset(void* dest, int val, size_t count); -#else -void* memcpy(void* dest, const void* src, size_t n); -void __fill_mem(void* dest, int val, size_t count); -void* memset(void* dest, int val, size_t count); -#endif +void* memcpy(void* dst, const void* src, size_t n); +void* memset(void* dst, int val, size_t n); -int memcmp(const void* lhs, const void* rhs, size_t count); -void* __memrchr(const void* ptr, int ch, size_t count); -void* memchr(const void* ptr, int ch, size_t count); -void* memmove(void* dst, const void* src, size_t n); char* strrchr(const char* str, int c); char* strchr(const char* str, int c); int strncmp(const char* str1, const char* str2, size_t n); diff --git a/src/MSL_C.PPCEABI.bare.H/string.c b/src/MSL_C.PPCEABI.bare.H/string.c index 833447df..4fbb776f 100644 --- a/src/MSL_C.PPCEABI.bare.H/string.c +++ b/src/MSL_C.PPCEABI.bare.H/string.c @@ -1,4 +1,5 @@ #include "string.h" +#include "stddef.h" static int K1 = 0x80808080; static int K2 = 0xFEFEFEFF; diff --git a/src/REL/m433Dll/main.c b/src/REL/m433Dll/main.c index 6e8975db..df35b851 100644 --- a/src/REL/m433Dll/main.c +++ b/src/REL/m433Dll/main.c @@ -353,12 +353,12 @@ s32 fn_1_2154(void) return OM_GET_DATA_PTR(lbl_1_bss_24, M433DllWork)->unk_0C; } -s32 fn_1_216C(void) +u32 fn_1_216C(void) { return OM_GET_DATA_PTR(lbl_1_bss_24, M433DllWork)->unk_14; } -s32 fn_1_2184(void) +u32 fn_1_2184(void) { return OM_GET_DATA_PTR(lbl_1_bss_24, M433DllWork)->unk_24; } diff --git a/src/REL/m433Dll/player.c b/src/REL/m433Dll/player.c new file mode 100644 index 00000000..cbe26c9a --- /dev/null +++ b/src/REL/m433Dll/player.c @@ -0,0 +1,4091 @@ +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/flag.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m433Dll.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#include "game/frand.h" +#endif + +typedef struct M433PlayerWork { + s32 unk_00; + s32 unk_04; + s32 unk_08; + s32 unk_0C; + char unk10[4]; + u32 unk_14; + u32 unk_18; + u32 unk_1C; + s32 unk_20; + float unk_24; + float unk_28; + s32 unk_2C; + s32 unk_30; + s32 unk_34; + s32 unk_38; + s32 unk_3C; + s32 unk_40; + s32 unk_44; + s32 unk_48; + s32 unk_4C; + char unk50[4]; + s32 unk_54; + char unk58[4]; + s32 unk_5C; + s32 unk_60; + s32 unk_64; + s32 unk_68; + s32 unk_6C; + s32 unk_70; + u32 unk_74; + u32 unk_78; + u32 unk_7C; + u32 unk_80; + u32 unk_84; + u32 unk_88; + s32 unk_8C; + u32 unk_90; + char unk94[4]; + float unk_98; + s16 unk_9C; + char unk9E[6]; + float unk_A4; + float unk_A8; + float unk_AC; + float unk_B0; + float unk_B4; + float unk_B8; + float unk_BC; + float unk_C0; + char unkC4[0x08]; + u32 unk_CC; + u32 unk_D0; + u32 unk_D4; + u32 unk_D8; + float unk_DC; + float unk_E0; + s32 unk_E4; + s32 unk_E8; + s32 unk_EC; + s32 unk_F0; + s32 unk_F4; + u32 unk_F8; + Vec unk_FC; + Vec unk_108; + Vec unk_114; + float unk_120; + float unk_124; + Vec unk_128; + Vec unk_134; + Vec unk_140; + omObjData *unk_14C; +} M433PlayerWork; /* size = 0x150 */ + +typedef struct M433PlayerWork2 { + char unk00[0x18]; + s16 unk_18; + char unk1A[0x16]; + float unk_30; + float unk_34; + float unk_38; + char unk3C[0x7C]; + float unk_B8; + float unk_BC; + float unk_C0; + float unk_C4; + Mtx unk_C8; + char unkF8[0x44]; +} M433PlayerWork2; /* size = 0x13C */ + +typedef struct M433PlayerWork3SubStruct { + char unk00[2]; + s16 unk_02[5]; +} M433PlayerWork3SubStruct; /* size = 0xC */ + +typedef struct M433PlayerWork3SubStruct2 { + char unk00[0x78]; + s16 unk_78; + s16 unk_7A; + char unk7C[0x28]; + s16 unk_A4; + s16 unk_A6; + char unkA8[0x3E8]; + s32 unk_490[2]; + char unk498[8]; +} M433PlayerWork3SubStruct2; /* size = 0x4A0 */ + +typedef struct M433PlayerWork3 { + s32 unk_00; + s32 unk_04; + s32 unk_08; + char unk0C[0xC]; + s32 unk_18; + s32 unk_1C; + char unk20[0xC]; + s32 unk_2C; + s32 unk_30; + char unk34[0x18]; + M433PlayerWork3SubStruct unk_4C[2]; + M433PlayerWork3SubStruct2 unk_64; +} M433PlayerWork3; /* size = 0x504 */ + +typedef struct M433DllPlayerData24CStruct { + /* 0x00 */ u16 unk_00; + /* 0x04 */ float unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ u32 unk_10; +} M433DllPlayerData24CStruct; /* size = 0x14 */ + +typedef struct M433DllPlayerData6C0Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ char pad_04[0xC]; /* maybe part of unk_00[4]? */ +} M433DllPlayerData6C0Struct; /* size = 0x10 */ + +typedef struct M433DllPlayerData794Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; +} M433DllPlayerData794Struct; /* size = 0x0C */ + +void fn_1_10130(Vec *arg0, u32 arg1); +void fn_1_10260(float arg8, float arg9, u32 arg0, s32 arg1, Vec *arg2); +s32 fn_1_10614(Vec *arg0); +void fn_1_1070C(void); +u32 fn_1_10740(Vec *arg0); +u32 fn_1_107B0(Vec *arg0); +float fn_1_10848(void); +u32 fn_1_108C4(void); +u32 fn_1_10900(void); +float fn_1_10B20(float arg8, Vec *arg0); +s32 fn_1_10D24(Vec *arg0); +u32 fn_1_10EA4(void); +u32 fn_1_10ECC(u32 arg0); +s32 fn_1_10F00(u32 arg0); +u32 fn_1_10F38(u32 arg0); +s32 fn_1_10F6C(u32 arg0); +u32 fn_1_10FDC(void); +s32 fn_1_11004(u32 arg0, s32 arg1); +s32 fn_1_11060(u32 arg0); +float fn_1_11130(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3); +void fn_1_5B98(omObjData *object); +void fn_1_6070(omObjData *object); +void fn_1_60C0(omObjData *object); +void fn_1_682C(omObjData *object); +void fn_1_722C(omObjData *object); +void fn_1_74D4(omObjData *object); +void fn_1_8408(omObjData *object); +void fn_1_873C(omObjData *object); +s32 fn_1_8938(u32 arg0, Vec *arg1); +void fn_1_8BD0(omObjData *object); +void fn_1_8F80(omObjData *object); +void fn_1_9688(omObjData *object); +void fn_1_A618(omObjData *object); +void fn_1_AB88(omObjData *object); +void fn_1_B194(omObjData *object); +void fn_1_B4D4(omObjData *object, u32 arg1); +s32 fn_1_B6E0(omObjData *object); +s32 fn_1_B7AC(omObjData *object); +s32 fn_1_BAE0(omObjData *object, u32 arg1); +void fn_1_BD48(omObjData *object); +void fn_1_C240(omObjData *object); +void fn_1_C6AC(omObjData *object); +s32 fn_1_C6B0(omObjData *object); +void fn_1_CB98(omObjData *object); +void fn_1_CDB8(float *arg0, Vec *arg1, Vec *arg2, u32 arg3, float arg8); +void fn_1_D180(float *arg0); +void fn_1_D338(float *arg0); +s32 fn_1_D4E0(float *arg0, Vec *arg1, Vec *arg2, float arg8); +void fn_1_D6A8(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_D888(Vec *arg0, float arg8); +void fn_1_DD70(Vec *arg0); +void fn_1_DE28(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_DF44(omObjData *object); +void fn_1_E11C(omObjData *object); +void fn_1_E5C0(M433PlayerWork3SubStruct *arg0, M433PlayerWork3SubStruct2 *arg1); +void fn_1_ECFC(void *arg0, void *arg1); +void fn_1_FE64(void *arg0, s32 arg1, s32 arg2, u32 arg3); +void fn_1_FE8C(Vec *arg0, u32 arg1, u32 arg2, s32 arg3); + +float lbl_1_data_E0[0xE] = { + 130.0f, + 130.0f, + 160.0f, + 130.0f, + 130.0f, + 160.0f, + 160.0f, + 180.0f, + 240.00002f, + 100.0f, + 130.0f, + 130.0f, + 120.00001f, + 130.0f, +}; +float lbl_1_data_118[0xE] = { + 50.0f, + 50.0f, + 50.0f, + 50.0f, + 50.0f, + 70.0f, + 50.0f, + 70.0f, + 110.0f, + 50.0f, + 50.0f, + 50.0f, + 50.0f, + 50.0f, +}; +s32 lbl_1_data_150[6][2] = { + { 0x3A, 0x3B }, + { 0x36, 0x38 }, + { 0x40, 0x42 }, + { 0x4B, 0x4D }, + { 0x46, 0x48 }, + { 0x3E, 0x3F }, +}; +s32 lbl_1_data_180[0x11] = { + 0x400061, + 0x400062, + 0x400063, + 0x400064, + 0x400065, + 0x400066, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, +}; +u32 lbl_1_data_1C4[0x11] = { + 0, + 2, + 3, + 0x400011, + 0x400019, + 0x400021, + 0x400029, + 0x400031, + 0x400039, + 0x400041, + 0x400049, + 0x400051, + 0x400059, + 0x17, + 0x18, + 0x48, + 0x49, +}; +s32 lbl_1_data_208[0x11] = { + 0x400067, + 0x40006D, + 0x400073, + 0x400079, + 0x40007F, + 0x400085, + 0x40008B, + 0x400091, + 0x400097, + 0x40009D, + 0x4000A3, + 0x4000A9, + 0x4000AF, + 0x4000B5, + 0x4000C1, + 0x4000BB, + 0x4000C7, +}; +M433DllPlayerData24CStruct lbl_1_data_24C[0x15] = { + { 0, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 1, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 2, 0.2f, 0.0f, -1.0f, 0x40000001 }, + { 3, 0.15f, 0.0f, 0.0f, 0 }, + { 3, 0.02f, 0.0f, -1.0f, 0 }, + { 4, 0.02f, 0.2f, -1.0f, 0 }, + { 5, 0.05f, 0.25f, -1.0f, 0 }, + { 6, 0.1f, 0.0f, -1.0f, 0 }, + { 7, 0.02f, 0.0f, -1.0f, 0 }, + { 0xB, 0.02f, 0.4f, -1.0f, 0 }, + { 0xC, 0.02f, 0.36666667f, -1.0f, 0 }, + { 8, 0.01f, 0.2f, -1.0f, 0 }, + { 9, 0.02f, 0.0f, -1.0f, 0 }, + { 0xA, 0.02f, 0.0f, -1.0f, 0 }, + { 5, 0.08f, 0.0f, 0.25f, 0 }, + { 0xB, 0.2f, 0.0f, 0.4f, 0 }, + { 0xC, 0.08f, 0.0f, 0.3f, 0 }, + { 0xD, 0.2f, 0.0f, -1.0f, 0 }, + { 0xE, 0.2f, 0.0f, -1.0f, 0 }, + { 0xF, 0.2f, 0.0f, -1.0f, 0 }, + { 0x10, 0.2f, 0.0f, -1.0f, 0 }, +}; +u32 lbl_1_data_3F0[0xE] = { + 0x32, + 0x32, + 0x3C, + 0x32, + 0x32, + 0x5A, + 0x32, + 0x3C, + 0x64, + 0x1E, + 0x32, + 0x1E, + 0x28, + 0x32, +}; +char *lbl_1_data_450[6] = { + "itemhook_R", + "itemhook_r", + "itemhook_R", + "itemhook_R", + "itemhook_r", + "itemhook_r", +}; +s32 lbl_1_data_468[9] = { 0, 0, 1, 1, 1, 1, 1, 0, 1 }; +float lbl_1_data_48C[0x12] = { + 0.0f, + 0.6666667f, + 2.1666667f, + 2.0f, + 1.0f, + 7.0000005f, + 1.5000001f, + 1.5000001f, + 3.0000002f, + 0.0f, + 0.0f, + 1e-45f, + 0.0f, + 0.0f, + 1e-45f, + 0.0f, + 0.0f, + 1e-45f, +}; +Vec lbl_1_data_4D4[9] = { + { 0.0f, 0.0f, 1.0f }, + { 0.0f, 1.5f, 1.0f }, + { 236.5f, 0.0f, 1300.0f }, + { 0.0f, 1.5f, 1.0f }, + { 0.0f, 1.8f, 1.0f }, + { 231.0f, 0.0f, 1500.0f }, + { 231.0f, 0.0f, 1000.0f }, + { 0.0f, 1.2f, 1.0f }, + { 0.0f, 0.8f, 1.0f }, +}; +float lbl_1_data_540[9] = { 1.0f, 1.0f, 3.0f, 1.0f, 1.0f, 4.0f, 2.0f, 1.0f, 1.0f }; +s8 lbl_1_data_564 = 0xA; +u16 lbl_1_data_674[6] = { 0, 1, 2, 3, 3, 0 }; +s32 lbl_1_data_680[2] = { 0x61001E, 0x61001F }; +Vec2f lbl_1_data_688[5] = { + { 0.0f, 0.0f }, + { 0.0f, 0.0f }, + { -23.0f, 0.0f }, + { 1.0f, 0.0f }, + { 21.0f, 0.0f }, +}; +Vec2f lbl_1_data_6B0[2] = { { 72.0f, 56.0f }, { 504.0f, 56.0f } }; +M433DllPlayerData6C0Struct lbl_1_data_6C0[0xB] = { + { 0x13000B }, + { 0x13000C }, + { 0x13000D }, + { 0x13000E }, + { 0x13000F }, + { 0x130010 }, + { 0x130011 }, + { 0x130012 }, + { 0x130013 }, + { 0x130014 }, + { 0x130099 }, +}; +s32 lbl_1_data_770[9] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; +M433DllPlayerData794Struct lbl_1_data_794[9] = { + { 0, 0, 0 }, + { 0, 0, 0 }, + { 1, 1, 0 }, + { 1, 0, 1 }, + { 1, 0, 1 }, + { 1, 1, 0 }, + { 1, 1, 0 }, + { 1, 0, 1 }, + { 1, 0, 1 }, +}; +u32 lbl_1_data_800[9] = { 0, 1, 2, 1, 1, 2, 1, 1, 1 }; + +// M433PlayerWork +omObjData *lbl_1_bss_7D0[5]; +// M433PlayerWork2 +omObjData *lbl_1_bss_7CC; +// M433PlayerWork3 +omObjData *lbl_1_bss_7C8; +u32 lbl_1_bss_7B8[4]; + +void fn_1_5904(Process *process) +{ + u32 sp18[4]; + s32 sp8[4]; + + s16 var_r31; + s16 var_r30; + u32 var_r28; + omObjData *var_r27; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + sp18[var_r31] = GWPlayerCfg[var_r31].group; + sp8[var_r31] = var_r31; + } + for (var_r31 = 0; var_r31 < 3; var_r31++) { + for (var_r30 = var_r31 + 1; var_r30 < 4; var_r30++) { + if (sp18[var_r31] > sp18[var_r30]) { + var_r28 = sp18[var_r31]; + sp18[var_r31] = sp18[var_r30]; + sp18[var_r30] = var_r28; + var_r28 = sp8[var_r31]; + sp8[var_r31] = sp8[var_r30]; + sp8[var_r30] = var_r28; + } + } + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_7B8[sp8[var_r31]] = var_r31; + } + lbl_1_bss_7C8 = omAddObjEx(process, 0x14, 0, 0, 0, fn_1_DF44); + lbl_1_bss_7CC = omAddObjEx(process, 0x15, 0x1F, 0, 0, fn_1_BD48); + omMakeGroupEx(process, 0, 4); + omGetGroupMemberListEx(process, 0); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + var_r27 = lbl_1_bss_7D0[var_r31] = omAddObjEx(process, 0x28, 2, 0x11, 0, fn_1_5B98); + var_r27->work[0] = var_r31; + } +} + +void fn_1_5B74(void) +{ + CharModelKill(-1); +} + +void fn_1_5B98(omObjData *object) +{ + s32 sp8; + M433PlayerWork *work; + s16 var_r29; + u32 var_r28; + s32 var_r27; + + float spC[4] = { 0.25f, 0.5f, 0.75f, 1.0f }; + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M433PlayerWork), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M433PlayerWork)); + var_r27 = object->work[0]; + var_r28 = GWPlayerCfg[var_r27].character; + work->unk_00 = var_r28; + work->unk_04 = -1; + if (var_r28 >= 8) { + work->unk_04 = var_r28 - 8; + } + sp8 = work->unk_08 = 0; + work->unk_14 = (lbl_1_bss_7B8[object->work[0]] >> 1) & 1; + work->unk_18 = lbl_1_bss_7B8[object->work[0]] & 1; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if ((var_r29 != object->work[0]) && (work->unk_14 == ((lbl_1_bss_7B8[var_r29] >> 1) & 1))) { + break; + } + } + work->unk_14C = lbl_1_bss_7D0[var_r29]; + work->unk_C0 = spC[GWPlayerCfg[var_r27].diff & 3]; + work->unk_2C = GWPlayerCfg[object->work[0]].iscom; + if (work->unk_04 < 0) { + object->model[0] = CharModelCreate(var_r28, 4); + CharModelStepTypeSet(var_r28, 2); + } + else { + object->model[0] = Hu3DModelCreateFile(lbl_1_data_180[work->unk_04]); + } + Hu3DModelShadowSet(object->model[0]); + object->model[1] = Hu3DModelCreateFile(0x400008); + Hu3DModelLayerSet(object->model[1], 1); + for (var_r29 = 0; var_r29 < 0x11; var_r29++) { + if (work->unk_04 < 0) { + if (lbl_1_data_1C4[var_r29] < 0x10000) { + object->motion[var_r29] = CharModelMotionCreate(var_r28, lbl_1_data_1C4[var_r29]); + } + else { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], var_r28 + lbl_1_data_1C4[var_r29]); + } + } + else { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], work->unk_04 + lbl_1_data_208[var_r29]); + } + } + if (work->unk_04 < 0) { + CharModelVoiceEnableSet(var_r28, object->motion[16], 0); + CharModelMotionDataClose(var_r28); + } + else { + CharModelEffectNpcInitSilent(object->model[0], object->motion[1], 0); + CharModelEffectNpcInitSilent(object->model[0], object->motion[2], 1); + } + object->trans.x = work->unk_128.x = (0.4f * (700.0f * (object->work[0] + 1))) - 700.0f; + object->trans.y = work->unk_128.y = 0.0f; + object->trans.z = work->unk_128.z = 0.0f; + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + work->unk_A4 = work->unk_A8 = 0.0f; + work->unk_AC = 0.0f; + work->unk_B0 = 0.02f; + work->unk_120 = lbl_1_data_118[var_r28]; + work->unk_0C = -1; + work->unk_70 = -1; + fn_1_B4D4(object, 0); + work->unk_74 = 0; + object->func = fn_1_6070; +} + +void fn_1_6070(omObjData *object) +{ + M433PlayerWork *work = object->data; + fn_1_722C(object); + work->unk_74 = 0; + object->func = fn_1_60C0; +} + +void fn_1_60C0(omObjData *object) +{ + Vec spC; + float var_f31; + float var_f30; + + M433PlayerWork *work; + s32 var_r29; + M433PlayerWork *var_r28; + + work = object->data; + var_r29 = 0; + var_r28 = work->unk_14C->data; + work->unk_1C = 0; + work->unk_20 = 0; + work->unk_28 = 0.0f; + work->unk_24 = 0.0f; + if ((work->unk_30 == 0) && (work->unk_70 != fn_1_10ECC(work->unk_14))) { + work->unk_70 = fn_1_10ECC(work->unk_14); + switch (fn_1_10ECC(work->unk_14)) { + case 0: + work->unk_6C = 0; + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + work->unk_74 = 0; + work->unk_38 = 0; + work->unk_3C = work->unk_40 = 0; + work->unk_128.y = 0.0f; + if (work->unk_18 == fn_1_10F38(work->unk_14)) { + if (fn_1_10F00(work->unk_14) != 0) { + work->unk_128.z = 0.0f; + work->unk_128.x = 840.00006f; + work->unk_74 = 1; + work->unk_38 = 1; + } + else { + work->unk_128.z = 140.0f; + work->unk_128.x = 540.2f; + } + } + else { + work->unk_128.z = -140.0f; + work->unk_128.x = 385.1f; + } + work->unk_A4 = work->unk_A8 = -90.0f; + work->unk_AC = 1.0f; + work->unk_B0 = 1.0f; + if (work->unk_14 == 0) { + work->unk_128.x *= -1.0f; + work->unk_A4 = work->unk_A8 = 90.0f; + } + work->unk_0C = -1; + work->unk_34 = 1; + work->unk_88 = work->unk_8C = 0; + work->unk_7C = work->unk_78 = work->unk_80 = 0; + break; + case 1: + case 2: + if (work->unk_74 == 1) { + work->unk_34 = 0; + }; + break; + case 3: + work->unk_74 = 2; + work->unk_7C = work->unk_78 = work->unk_80 = 0; + work->unk_34 = 0; + break; + case 4: + case 5: + work->unk_74 = 3; + break; + case 6: + case 7: + if (fn_1_10F6C(work->unk_14) != 0) { + fn_1_B4D4(object, 0x13); + if (work->unk_04 >= 0) { + HuAudFXPlay(lbl_1_data_150[work->unk_04][0]); + } + PSVECSubtract(&var_r28->unk_128, &work->unk_128, &spC); + work->unk_A8 = atan2d(spC.x, spC.z); + work->unk_AC = 0.15f; + work->unk_B0 = 0.0f; + } + else { + fn_1_B4D4(object, 0x14); + } + work->unk_74 = 4; + break; + default: + break; + } + } + if (fn_1_216C() == 2) { + if (work->unk_2C != 0) { + fn_1_74D4(object); + } + else { + work->unk_20 = HuPadBtn[GWPlayerCfg[object->work[0]].pad_idx]; + work->unk_1C = HuPadBtnDown[GWPlayerCfg[object->work[0]].pad_idx]; + var_f31 = HuPadStkX[GWPlayerCfg[object->work[0]].pad_idx]; + var_f30 = -HuPadStkY[GWPlayerCfg[object->work[0]].pad_idx]; + work->unk_28 = atan2d(var_f31, var_f30); + work->unk_24 = 0.013888889f * sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (work->unk_24 > 1.0f) { + work->unk_24 = 1.0f; + } + } + } + switch (work->unk_74) { + case 0: + fn_1_B4D4(object, 0); + var_r29 = 1; + break; + case 1: + fn_1_8F80(object); + break; + case 2: + fn_1_8BD0(object); + fn_1_AB88(object); + fn_1_9688(object); + break; + case 3: + fn_1_8BD0(object); + fn_1_A618(object); + fn_1_9688(object); + break; + case 4: + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + work->unk_30 = 0; + if (fn_1_B6E0(object) != 0) { + work->unk_30 = 0; + work->unk_74 = 0; + } + break; + } + PSVECAdd(&work->unk_128, &work->unk_134, &work->unk_128); + if (fn_1_10ECC(work->unk_14) >= 2) { + fn_1_B194(object); + } + fn_1_722C(object); + if ((fn_1_216C() == 3) && (var_r29 != 0)) { + work->unk_74 = 0; + object->func = fn_1_682C; + } +} + +void fn_1_682C(omObjData *object) +{ + Vec sp1C; + Vec sp10; + float sp8[2]; + float var_f31; + M433PlayerWork *var_r30; + M433PlayerWork *var_r29; + M433PlayerWork *var_r27; + Vec *var_r26; + s32 var_r25; + M433PlayerWork *var_r24; + s32 var_r23; + + M433PlayerWork *work = object->data; + { + Vec sp40[2] = { { 130.0f, 0.0f, -50.0f }, { 250.0f, 0.0f, 50.0f } }; + Vec sp28[2] = { { 150.0f, 0.0f, 100.0f }, { 300.0f, 0.0f, -100.0f } }; + var_r27 = work->unk_14C->data; + PSVECAdd(&work->unk_128, &work->unk_134, &work->unk_128); + fn_1_B194(object); + fn_1_722C(object); + switch (work->unk_74) { + case 0: + fn_1_B4D4(object, 0); + if (fn_1_2244() != 0) { + if (work->unk_18 == 0) { + var_r23 = 1; + if (work->unk_14 == 0) { + sp40[0].x *= -1.0f; + sp40[1].x *= -1.0f; + sp28[0].x *= -1.0f; + sp28[1].x *= -1.0f; + } + var_r30 = work; + var_r29 = var_r27; + var_r26 = sp40; + work->unk_84 = var_r27->unk_84 = 0; + if (lbl_1_data_3F0[var_r30->unk_00] != lbl_1_data_3F0[var_r29->unk_00]) { + if (lbl_1_data_3F0[var_r30->unk_00] < lbl_1_data_3F0[var_r29->unk_00]) { + var_r24 = var_r30; + var_r30 = var_r29; + var_r29 = var_r24; + } + var_f31 = fn_1_11130(&var_r30->unk_128, &sp40[0], &var_r29->unk_128, &sp40[1]); + sp8[0] = 0.8f * (var_r30->unk_120 + var_r29->unk_120); + if (var_f31 < sp8[0]) { + var_r26 = sp28; + work->unk_84 = var_r27->unk_84 = 1; + OSReport("Escape!\n"); + } + else { + var_r23 = 0; + OSReport("Direct!\n"); + } + } + if (var_r23 != 0) { + var_r30 = work; + var_r29 = var_r27; + for (var_r25 = 0; var_r25 < 2; var_r25++) { + sp8[var_r25] = fn_1_11130(&var_r30->unk_128, &var_r26[var_r25 & 1], &var_r29->unk_128, &var_r26[(var_r25 + 1) & 1]); + } + if (sp8[0] < sp8[1]) { + var_r24 = var_r30; + var_r30 = var_r29; + var_r29 = var_r24; + } + } + var_r30->unk_140 = var_r26[0]; + var_r30->unk_140.z -= var_r30->unk_120; + var_r29->unk_140 = var_r26[1]; + } + work->unk_30 = work->unk_60 = work->unk_34 = 0; + if (work->unk_84 != 0) { + work->unk_74++; + } + else { + work->unk_74 += 2; + } + work->unk_88 = 0; + break; + } + break; + case 1: + if (work->unk_84 == 1) { + PSVECSubtract(&work->unk_140, &work->unk_128, &sp10); + sp10.y = 0.0f; + var_f31 = PSVECMag(&sp10); + if (var_f31 < 20.0f) { + var_f31 = 0.01f; + work->unk_84++; + } + else { + if (PSVECMag(&sp10) >= 100.0f) { + var_f31 = 100.0f; + } + var_f31 = 0.2f + (0.008f * var_f31); + } + work->unk_28 = 180.0 * (atan2(sp10.x, sp10.z) / 3.141592653589793); + work->unk_24 = var_f31; + fn_1_8BD0(object); + } + else if (work->unk_84 == 2) { + fn_1_BAE0(object, 0); + if ((work->unk_18 == 0) && (var_r27->unk_84 != 0)) { + if (work->unk_14 == 0) { + sp40[0].x *= -1.0f; + sp40[1].x *= -1.0f; + } + var_r30 = work; + var_r29 = var_r27; + if (lbl_1_data_3F0[var_r30->unk_00] < lbl_1_data_3F0[var_r29->unk_00]) { + var_r24 = var_r30; + var_r30 = var_r29; + var_r29 = var_r24; + } + var_r30->unk_140 = sp40[0]; + var_r30->unk_140.z -= var_r30->unk_120; + var_r29->unk_140 = sp40[1]; + work->unk_84 = var_r27->unk_84 = 3; + } + } + if (work->unk_84 == 3) { + work->unk_74++; + work->unk_88 = 0; + return; + } + break; + case 2: + PSVECSubtract(&work->unk_140, &work->unk_128, &sp10); + sp10.y = 0.0f; + var_f31 = PSVECMag(&sp10); + if (var_f31 < 10.0f) { + var_f31 = 0.01f; + } + else { + if (PSVECMag(&sp10) >= 100.0f) { + var_f31 = 100.0f; + } + var_f31 = 0.2f + (0.008f * var_f31); + } + work->unk_28 = atan2d(sp10.x, sp10.z); + work->unk_24 = var_f31; + fn_1_8BD0(object); + if ((work->unk_24 < 0.02f) || (work->unk_88 > 300.0f)) { + work->unk_A8 = 0.0f; + work->unk_AC = 0.15f; + work->unk_B0 = 0.0f; + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + fn_1_21E4(object->work[0]); + work->unk_74++; + return; + } + break; + case 3: + if (fn_1_2184() == 1) { + if (fn_1_10FA4(work->unk_14) != 0) { + fn_1_B4D4(object, 0x11); + if (work->unk_04 >= 0) { + HuAudFXPlay(lbl_1_data_150[work->unk_04][0]); + } + } + else { + fn_1_B4D4(object, 0x12); + if (work->unk_04 >= 0) { + HuAudFXPlay(lbl_1_data_150[work->unk_04][1]); + } + } + work->unk_74++; + return; + } + fn_1_BAE0(object, 0); + return; + case 4: + if (fn_1_10FA4(work->unk_14) != 0) { + sp1C.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x))); + sp1C.y = Center.y + (CZoom * -sind(CRot.x)); + sp1C.z = Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x))); + PSVECSubtract(&sp1C, &work->unk_128, &sp10); + work->unk_A8 = atan2d(sp10.x, sp10.z); + } + if (fn_1_B6E0(object) != 0) { + fn_1_2214(object->work[0]); + work->unk_74++; + } + break; + } + } +} + +void fn_1_722C(omObjData *object) +{ + Vec sp8; + + M433PlayerWork *work = object->data; + work->unk_9C++; + work->unk_88++; + object->trans.x = work->unk_128.x; + object->trans.y = work->unk_128.y; + object->trans.z = work->unk_128.z; + work->unk_AC = work->unk_AC + work->unk_B0; + if (work->unk_AC > 0.45f) { + work->unk_AC = 0.45f; + } + work->unk_A4 = fn_1_26C4(work->unk_A4, work->unk_A8, work->unk_AC); + object->rot.y = work->unk_A4; + Hu3DModelPosSet(object->model[1], work->unk_128.x, 11.0f, work->unk_128.z); + work->unk_BC += 3.0000002f; + if (work->unk_BC >= 360.0f) { + work->unk_BC -= 360.0f; + } + Hu3DModelRotSet(object->model[1], 0.0f, work->unk_BC, 0.0f); + work->unk_B8 = 0.0f; + if (fn_1_216C() == 2) { + if (((fn_1_10EA4() == 4) || (fn_1_10EA4() == 3)) && (work->unk_14 == fn_1_10740(&sp8)) && (fn_1_10FDC() != 0) && (fn_1_10FDC() < 3) + && (work->unk_60 == 0) && (fn_1_11004(work->unk_14, work->unk_18) != 0)) { + work->unk_B8 = 1.0f; + } + if (work->unk_74 == 1) { + work->unk_B8 = 1.0f; + } + } + work->unk_B4 += 0.1f * (work->unk_B8 - work->unk_B4); + Hu3DModelScaleSet(object->model[1], work->unk_B4, 1.0f, work->unk_B4); + if ((work->unk_B8 <= 0.0f) && (work->unk_B4 < 0.1f)) { + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + work->unk_B4 = 0.0f; + return; + } + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); +} + +void fn_1_74D4(omObjData *object) +{ + Vec sp1C; + Vec sp10; + M433PlayerWork *spC; + s32 sp8; + float var_f31; + s32 var_r29; + + M433PlayerWork *work = object->data; + var_r29 = 1; + sp8 = 0; + spC = work->unk_14C->data; + switch (work->unk_74) { + case 0: + work->unk_6C = 0; + fn_1_873C(object); + break; + case 1: + if (work->unk_3C != 0) { + work->unk_1C = work->unk_1C | 0x100; + work->unk_DC = frandmod(0x168); + work->unk_E0 = 0.3f + (0.00040000002f * (work->unk_C0 * frandmod(0x3E8))); + work->unk_E4 = 0; + if (frandmod(0x3E8) > (300.0f + (500.0f * work->unk_C0))) { + work->unk_E4 = 1; + } + } + if (fn_1_10614(&sp1C) != 0) { + if (work->unk_E4 != 0) { + if ((fabs(sp1C.z) > 1.100000023841858) || (sp1C.x > 1.1f)) { + work->unk_E0 = 0.0f; + } + } + else { + if ((fabs(sp1C.z) > 0.949999988079071) || (sp1C.x > 0.95f)) { + work->unk_E0 = 0.0f; + } + } + } + work->unk_28 = work->unk_DC; + work->unk_24 = work->unk_E0; + if (work->unk_40 != 0) { + if (work->unk_D0++ >= work->unk_CC) { + work->unk_1C = work->unk_1C | 0x100; + } + } + else if (work->unk_60 != 0) { + work->unk_CC = ((60.0f * (0.35f * work->unk_C0)) / 1000.0f) * frandmod(0x3E8); + work->unk_D0 = 0; + } + fn_1_873C(object); + break; + case 2: + work->unk_F0 = 0; + if (frandmod(0x3E8) < (300.0f * work->unk_C0)) { + work->unk_F0 = 1; + } + fn_1_8408(object); + if (work->unk_F4 != 0) { + if (fn_1_10EA4() == 2) { + work->unk_F4 = 0; + work->unk_F8 = 0; + } + if (work->unk_14 == fn_1_107B0(&sp1C)) { + work->unk_D8++; + } + if ((work->unk_14 == fn_1_107B0(&sp1C)) && (work->unk_F8 == 0)) { + fn_1_10B20(0.9f, &work->unk_108); + work->unk_108.x = 115.0f; + if (work->unk_14 == 0) { + work->unk_108.x *= -1.0f; + } + work->unk_F8++; + } + if (work->unk_F8 == 1) { + if ((work->unk_D8 >= (0.5f * work->unk_D4)) && (fn_1_10D24(&work->unk_108) != 0)) { + work->unk_108.x = 115.0f; + if (work->unk_14 == 0) { + work->unk_108.x *= -1.0f; + } + work->unk_F8++; + } + } + else if ((work->unk_F8 == 2) && ((work->unk_D8 >= work->unk_D4) || (work->unk_14 == fn_1_10740(&sp1C)))) { + work->unk_1C = work->unk_1C | 0x200; + work->unk_F4 = 0; + work->unk_F8 = 0; + } + } + if ((work->unk_14 == fn_1_107B0(&sp1C)) && (fn_1_10900() >= (60.0f * (0.8f - (0.4f * work->unk_C0)))) && (work->unk_6C != 0)) { + PSVECSubtract(&sp1C, &work->unk_128, &sp10); + sp10.y = 0.0f; + var_f31 = PSVECMag(&sp10); + if (PSVECMag(&sp10) >= 20.0f) { + if (var_f31 >= 50.0f) { + var_f31 = 50.0f; + } + work->unk_28 = atan2d(sp10.x, sp10.z); + work->unk_24 = var_f31 / 50.0f; + } + if ((fn_1_10848() < (0.8f - (0.6f * work->unk_C0))) && ((work->unk_44 != 0) || ((work->unk_48 != 0) && (work->unk_EC != 0)))) { + work->unk_1C = work->unk_1C | 0x100; + } + var_r29 = 0; + } + if (work->unk_F8 != 0) { + PSVECSubtract(&work->unk_108, &work->unk_128, &sp10); + sp10.y = 0.0f; + var_f31 = PSVECMag(&sp10); + if (var_f31 >= 10.0f) { + if (var_f31 >= 50.0f) { + var_f31 = 50.0f; + } + work->unk_28 = atan2d(sp10.x, sp10.z); + work->unk_24 = var_f31 / 50.0f; + } + else { + work->unk_28 = 90.0f; + if (work->unk_14 != 0) { + work->unk_28 *= -1.0f; + } + work->unk_24 = 0.01f; + } + var_r29 = 0; + } + if (var_r29 != 0) { + PSVECSubtract(&work->unk_FC, &work->unk_128, &sp10); + sp10.y = 0.0f; + var_f31 = PSVECMag(&sp10); + var_f31 -= 100.0f * (1.25f * (2.0f - work->unk_C0)); + if (var_f31 >= 10.0f) { + if (var_f31 >= 70.0f) { + var_f31 = 70.0f; + } + work->unk_28 = atan2d(sp10.x, sp10.z); + work->unk_24 = var_f31 / 70.0f; + break; + } + work->unk_28 = 90.0f; + if (work->unk_14 != 0) { + work->unk_28 *= -1.0f; + break; + } + } + break; + case 3: + fn_1_8408(object); + fn_1_873C(object); + if (work->unk_14 == fn_1_10740(&sp1C)) { + if (work->unk_68 == 0) { + if (fn_1_11004(work->unk_14, work->unk_18) != 0) { + PSVECSubtract(&sp1C, &work->unk_128, &sp10); + sp10.y = 0.0f; + var_f31 = PSVECMag(&sp10); + if (var_f31 >= 30.000002f) { + if (var_f31 >= 70.0f) { + var_f31 = 70.0f; + } + work->unk_24 = var_f31 / 70.0f; + work->unk_28 = atan2d(sp10.x, sp10.z); + } + } + if ((((work->unk_6C == 0) && (fn_1_10EA4() == 3) && (work->unk_F0 != 0)) || ((work->unk_6C != 0) && (fn_1_10EA4() == 4))) + && (work->unk_5C != 0)) { + work->unk_1C = work->unk_1C | 0x200; + work->unk_E8 = 0; + if (frandmod(0x3E8) < (s32)(300.0f * (work->unk_C0 - 0.4f))) { + work->unk_E8 = fn_1_8938(work->unk_14, &work->unk_114); + work->unk_DC = 0.0f; + work->unk_E0 = 0.0f; + work->unk_E4 = 0; + } + if (work->unk_E8 == 0) { + work->unk_DC = frandmod(0x168); + work->unk_E0 = 0.3f + (0.00040000002f * (work->unk_C0 * frandmod(0x3E8))); + work->unk_E4 = 0; + if (frandmod(0x3E8) > (300.0f + (500.0f * work->unk_C0))) { + work->unk_E4 = 1; + } + } + } + if ((work->unk_4C != 0) || (work->unk_44 != 0) || (work->unk_48 != 0)) { + work->unk_1C = work->unk_1C | 0x100; + break; + } + } + else { + if (fn_1_10614(&sp1C) != 0) { + if (work->unk_E8 != 0) { + PSVECSubtract(&work->unk_114, &sp1C, &sp10); + sp10.y = 0.0f; + var_f31 = PSVECMag(&sp10); + if (var_f31 < 0.05f) { + work->unk_DC = 0.0f; + work->unk_E0 = 0.0f; + } + else { + if (work->unk_14 != 0) { + sp10.x *= -1.0f; + } + work->unk_DC = atan2d(sp10.x, sp10.z); + work->unk_E0 = 1.0f; + } + } + if (work->unk_E4 != 0) { + if ((fabs(sp1C.z) > 1.100000023841858) || (sp1C.x > 1.1f)) { + work->unk_E0 = 0.0f; + } + } + else { + if ((fabs(sp1C.z) > 0.949999988079071) || (sp1C.x > 0.95f)) { + work->unk_E0 = 0.0f; + } + } + } + work->unk_28 = work->unk_DC; + work->unk_24 = work->unk_E0; + if (work->unk_54 != 0) { + if (work->unk_D0++ >= work->unk_CC) { + work->unk_1C |= 0x100; + break; + } + } + else { + work->unk_CC = ((60.0f * (0.35f * work->unk_C0)) / 1000.0f) * frandmod(0x3E8); + work->unk_D0 = 0; + } + } + } + break; + } +} + +void fn_1_8408(omObjData *object) +{ + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + + M433PlayerWork *work = object->data; + M433PlayerWork *var_r30 = work->unk_14C->data; + + if (var_r30->unk_2C == 0) { + var_r30->unk_C0 = work->unk_C0 - 0.1f; + } + if ((work->unk_14 == fn_1_107B0(&sp14)) && (fn_1_108C4() >= 12.0f)) { + if (((var_r30->unk_6C == 0) && (work->unk_6C == 0)) || (fn_1_108C4() < 0x3E8)) { + if ((work->unk_30 == 0) || (var_r30->unk_30 == 0)) { + PSVECSubtract(&sp14, &work->unk_128, &sp8); + sp8.y = 0.0f; + var_f31 = PSVECMag(&sp8) - (100.0f * (2.0f * work->unk_C0)); + PSVECSubtract(&sp14, &var_r30->unk_128, &sp8); + sp8.y = 0.0f; + var_f30 = PSVECMag(&sp8) - (100.0f * (2.0f * var_r30->unk_C0)); + if ((work->unk_30 != 0) || (work->unk_60 != 0)) { + var_f31 = 2000.0f; + } + if ((var_r30->unk_30 != 0) || (var_r30->unk_60 != 0)) { + var_f30 = 2000.0f; + } + if (var_f31 >= 300.0f) { + var_r30->unk_F4 = 0; + } + if (var_f30 >= 300.0f) { + work->unk_F4 = 0; + } + if (work->unk_F4 != 0) { + var_f31 += 300.0f; + } + if (var_r30->unk_F4 != 0) { + var_f30 += 300.0f; + } + var_r30->unk_6C = work->unk_6C = 0; + if (var_f31 <= var_f30) { + work->unk_6C = 1; + work->unk_F4 = 0; + } + else { + var_r30->unk_6C = 1; + var_r30->unk_F4 = 0; + } + if (work->unk_F4 == 0) { + work->unk_F8 = 0; + } + if (var_r30->unk_F4 == 0) { + var_r30->unk_F8 = 0; + } + } + } + else if (fn_1_10FDC() == 1) { + work->unk_6C = fn_1_11004(work->unk_14, work->unk_18) == 0; + var_r30->unk_6C = work->unk_6C == 0; + } + } + else if (work->unk_14 != fn_1_10740(&sp14)) { + var_r30->unk_6C = work->unk_6C = 0; + } +} + +void fn_1_873C(omObjData *object) +{ + M433PlayerWork *work = object->data; + work->unk_EC = 0; + if (frandmod(0x3E8) < (600.0f * work->unk_C0)) { + work->unk_EC = 1; + } + work->unk_F4 = 0; + work->unk_F8 = 0; + if ((work->unk_18 != fn_1_10F38(work->unk_14)) && (work->unk_74 != 0) && (frandmod(0x3E8) < (500.0f * work->unk_C0))) { + work->unk_F4 = 1; + work->unk_D4 = ((60.0f * (0.5f * work->unk_C0)) / 1000.0f) * frandmod(0x3E8); + work->unk_D8 = 0; + } + if (work->unk_18 == fn_1_10F38(work->unk_14)) { + work->unk_FC.z = 140.0f; + work->unk_FC.x = 540.2f; + } + else { + work->unk_FC.z = -140.0f; + work->unk_FC.x = 300.5f; + } + if (work->unk_14 == 0) { + work->unk_FC.x *= -1.0f; + } +} + +s32 fn_1_8938(u32 var_r27, Vec *var_r29) +{ + Vec sp2C[2]; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + u32 var_r31; + u32 var_r30; + M433PlayerWork *work; + + for (var_r31 = 0, var_r30 = 0; (var_r30 < 4) && (var_r31 < 2); var_r30++) { + work = lbl_1_bss_7D0[var_r30]->data; + if (work->unk_14 != var_r27) { + sp2C[var_r31] = work->unk_128; + sp2C[var_r31].y = 0.0f; + var_r31++; + } + } + if (var_r31 < 2) { + return 0; + } + if (var_r27 == 1) { + sp2C[0].x *= -1.0f; + sp2C[1].x *= -1.0f; + } + var_f29 = 47.0f; + var_f28 = 70.0f; + var_f30 = -1.0f; + sp14.z = -350.0f; + sp14.y = 0.0f; + for (var_r30 = 0; var_r30 <= 0xA; var_r30++) { + sp14.x = 230.0f; + for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { + PSVECSubtract(&sp14, &sp2C[0], &sp20); + var_f31 = PSVECMag(&sp20); + PSVECSubtract(&sp14, &sp2C[1], &sp20); + var_f31 *= PSVECMag(&sp20); + if (var_f31 > var_f30) { + var_f30 = var_f31; + sp8 = sp14; + } + sp14.x += var_f29; + } + sp14.z += var_f28; + } + *var_r29 = sp8; + var_r29->x -= 465.0f; + var_r29->x *= 0.004255319f; + var_r29->z *= 0.0028571428f; + return 1; +} + +void fn_1_8BD0(omObjData *object) +{ + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + s32 var_r29; + + M433PlayerWork *work = object->data; + var_r29 = 1; + if ((work->unk_30 == 0) && (work->unk_60 == 0)) { + if ((work->unk_24 > 0.0f) && (work->unk_34 == 0)) { + work->unk_A8 = work->unk_28; + } + if ((work->unk_24 > 0.05f) && (work->unk_34 == 0)) { + work->unk_134.x = 0.01666666753590107 * (550.0 * (work->unk_24 * sind(work->unk_28))); + work->unk_134.z = 0.01666666753590107 * (550.0 * (work->unk_24 * cosd(work->unk_28))); + if (work->unk_2C != 0) { + work->unk_AC = 0.1f; + } + else { + work->unk_AC = 0.2f; + } + work->unk_B0 = 0.0f; + if (fn_1_B7AC(object) != 0) { + var_f30 = 0.5f; + if (work->unk_0C == 2) { + var_f30 = 0.45f; + } + if (work->unk_24 > var_f30) { + fn_1_B4D4(object, 2); + var_f31 = work->unk_24; + } + else { + fn_1_B4D4(object, 1); + var_f31 = work->unk_24 / var_f30; + } + if (work->unk_04 < 0) { + CharModelMotionSpeedSet(work->unk_00, var_f31); + } + else { + Hu3DMotionSpeedSet(object->model[0], var_f31); + } + } + if ((work->unk_24 > 0.5f) && (((work->unk_88 + 0xF) & 0xF) == 0)) { + fn_1_D888(&work->unk_128, 0.2f); + } + } + else { + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + if ((work->unk_5C != 0) && (fn_1_10FDC() >= 2)) { + fn_1_B4D4(object, 0x10); + } + else if (work->unk_4C != 0) { + fn_1_B4D4(object, 0xF); + } + else if (work->unk_44 != 0) { + fn_1_B4D4(object, 0xE); + } + else { + fn_1_BAE0(object, 0); + } + if ((var_r29 != 0) && (work->unk_24 == 0.0f)) { + fn_1_10B20(0.0f, &sp14); + PSVECSubtract(&sp14, &work->unk_128, &sp8); + work->unk_A8 = atan2d(sp8.x, sp8.z); + work->unk_AC = 0.1f; + work->unk_B0 = 0.0f; + } + } + } +} + +void fn_1_8F80(omObjData *object) +{ + Vec sp1C; + Vec sp10; + float var_f31; + float var_f30; + s32 var_r29; + char *var_r28; + + M433PlayerWork *work = object->data; + var_r29 = work->unk_40; + { + s32 sp8[2] = { 0x6A4, 0x6A5 }; + work->unk_3C = 0; + work->unk_40 = 0; + if (work->unk_04 < 0) { + var_r28 = CharModelHookNameGet(work->unk_00, 4, 0); + Hu3DModelObjPosGet(object->model[0], var_r28, &sp10); + } + else { + Hu3DModelObjPosGet(object->model[0], lbl_1_data_450[work->unk_04], &sp10); + } + switch (work->unk_8C) { + case 0: + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + work->unk_8C++; + work->unk_88 = 0; + + case 1: + work->unk_30 = 0; + work->unk_38 = 1; + fn_1_B4D4(object, 3); + fn_1_FE8C(&sp10, 0, work->unk_14, work->unk_18); + if (fn_1_10ECC(work->unk_14) != 1) { + work->unk_88 = 0; + break; + } + if (work->unk_34 == 0) { + work->unk_3C = 1; + if ((work->unk_1C & 0x100) || (work->unk_88 > 300.0f)) { + fn_1_B4D4(object, 4); + work->unk_30 = 1; + work->unk_8C++; + work->unk_88 = 0; + } + } + break; + case 2: + if (work->unk_60 == 0) { + work->unk_134.x = 1.6666667461395264 * (2.0 * sind((10.0f + (4.285714f * work->unk_88)))); + if (work->unk_14 != 0) { + work->unk_134.x *= -1.0f; + } + } + if ((work->unk_88 >= 9.0f) && (work->unk_38 != 0)) { + if (work->unk_14 != 0) { + var_f30 = -1.0f; + } + else { + var_f30 = 1.0f; + } + sp1C.x = object->trans.x + (250.0f * var_f30); + sp1C.y = 80.0f + object->trans.y; + sp1C.z = sp10.z; + fn_1_FE8C(&sp1C, 1, work->unk_14, work->unk_18); + work->unk_38 = 0; + } + else if (work->unk_88 >= 28.0f) { + var_f31 = 0.5f; + work->unk_124 = (2.0f * -(350.0f - lbl_1_data_E0[work->unk_00])) / (var_f31 * var_f31); + work->unk_134.y = 0.016666668f * (-work->unk_124 * var_f31); + work->unk_60 = 1; + work->unk_8C++; + work->unk_88 = 0; + fn_1_D888(&work->unk_128, 0.5f); + } + if (work->unk_38 == 0) { + fn_1_10260(work->unk_28, work->unk_24, work->unk_14, 0, &sp1C); + break; + } + fn_1_FE8C(&sp10, 0, work->unk_14, work->unk_18); + break; + case 3: + work->unk_134.y += 0.016666668f * (0.016666668f * work->unk_124); + if ((work->unk_88 > 27.0f) && (work->unk_88 < 51.0f)) { + work->unk_40 = 1; + } + fn_1_10260(work->unk_28, work->unk_24, work->unk_14, work->unk_40, &sp1C); + if (((work->unk_40 != 0) && ((work->unk_1C & 0x100) != 0)) || ((work->unk_40 == 0) && (var_r29 != 0))) { + fn_1_B4D4(object, 5); + if (work->unk_40 == 0) { + fn_1_1070C(); + } + fn_1_FE8C(&sp1C, 2, work->unk_14, work->unk_18); + work->unk_40 = 0; + work->unk_8C = 5; + work->unk_88 = 0; + HuAudFXPlay(sp8[work->unk_14]); + } + break; + case 4: + if (work->unk_88 >= 12.0f) { + work->unk_60 = 0; + work->unk_8C = 1; + work->unk_88 = 0; + } + break; + case 5: + work->unk_134.y += 0.016666668f * (0.016666668f * work->unk_124); + if (work->unk_128.y <= 0.0f) { + work->unk_60 = 0; + fn_1_D888(&work->unk_128, 0.5f); + work->unk_30 = 0; + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + } + break; + } + } +} + +void fn_1_9688(omObjData *object) +{ + Vec sp2C; + Vec sp20; + s32 sp14; + s32 sp10; + s32 spC; + s32 sp8; + float var_f31; + float var_f30; + float var_f29; + M433PlayerWork *work; + M433PlayerWork *var_r29; + + work = object->data; + { + s32 sp38[3][3] = { { 3, 4, 6 }, { 3, 4, 6 }, { 3, 4, 7 } }; + s32 sp18[2] = { 0x6AD, 0x6AE }; + s32 sp10[2] = { 0x6A6, 0x6A7 }; + s32 sp8[2] = { 0x6AA, 0x6AB }; + var_r29 = work->unk_14C->data; + work->unk_4C = 0; + work->unk_44 = 0; + work->unk_48 = 0; + if (work->unk_60 == 0) { + switch (work->unk_7C) { + case 0: + if ((work->unk_7C == 0) && (work->unk_78 == 0) && (work->unk_80 == 0) + && (work->unk_30 = 0, work->unk_64 = 0, ((work->unk_34 == 0) != 0)) && (work->unk_14 == fn_1_10740(&sp2C)) + && (fn_1_11004(work->unk_14, work->unk_18) != 0) && (fn_1_10FDC() < 3)) { + work->unk_140 = sp2C; + var_f31 = fn_1_10848(); + if ((var_f31 <= 0.8f) && (var_f31 >= 0.02f) && (var_r29->unk_64 == 0)) { + PSVECSubtract(&sp2C, &work->unk_128, &sp20); + sp20.y = 0.0f; + var_f30 = PSVECMag(&sp20); + work->unk_98 = var_f30; + if (var_f30 <= 200.0f) { + if ((var_f31 >= 0.2f) && (var_f30 <= 70.0f) && (var_f31 >= (0.2f + (0.001f * var_f30))) && (fn_1_10FDC() >= 1)) { + work->unk_4C = 1; + } + if ((var_f31 >= 0.02f) && (var_f30 <= 100.0f) && (var_f31 >= (0.02f + (0.001f * var_f30)))) { + work->unk_44 = 1; + } + if ((var_f31 >= 0.1f) && (var_f31 <= 0.3f) && (var_f30 > 100.0f) && (var_f30 <= 200.0f) + && (var_f31 >= (0.1f + (0.0002f * (var_f30 - 100.0f))))) { + work->unk_48 = 1; + } + } + } + if ((work->unk_1C & 0x100) != 0) { + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + if (work->unk_4C != 0) { + work->unk_7C = 1; + var_f31 -= 0.12f; + work->unk_98 *= 0.014285714f; + fn_1_B4D4(object, 0xF); + fn_1_10B20(0.0f, &sp2C); + } + else if (work->unk_44 != 0) { + work->unk_7C = 2; + var_f31 -= 0.03f; + work->unk_98 *= 0.01f; + fn_1_B4D4(object, 0xE); + fn_1_10B20(0.0f, &sp2C); + } + else if (work->unk_48 != 0) { + work->unk_7C = 3; + var_f31 -= 0.03f; + work->unk_98 *= 0.005f; + fn_1_B4D4(object, 7); + fn_1_D888(&work->unk_128, 0.75f); + HuAudFXPlay(sp8[work->unk_14]); + } + else { + if (fn_1_10FDC() >= 1) { + fn_1_B4D4(object, 9); + } + else { + fn_1_B4D4(object, 6); + } + work->unk_7C = 4; + } + if (work->unk_7C < 4) { + work->unk_64 = 1; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + work->unk_90 = 60.0f * var_f31; + } + PSVECSubtract(&sp2C, &work->unk_128, &sp20); + work->unk_A8 = atan2d(sp20.x, sp20.z); + work->unk_AC = 0.2f; + work->unk_B0 = 0.0f; + work->unk_30 = 1; + work->unk_88 = 0; + } + } + break; + case 1: + if (work->unk_88 >= work->unk_90) { + if (work->unk_64 != 0) { + if (fn_1_10FDC() >= 2) { + sp2C.x = 350.0f; + sp2C.y = 11.0f; + sp2C.z = 0.0f; + if (work->unk_14 != 0) { + sp2C.x *= -1.0f; + } + } + else { + sp2C = var_r29->unk_128; + sp2C.y = 11.0f; + sp2C.x *= 0.5f; + } + var_f29 = frandmod(0x168); + var_f30 = 200.0f * work->unk_98; + sp2C.x += var_f30 * sind(var_f29); + sp2C.z += var_f30 * cosd(var_f29); + if (fn_1_10FDC() < 2) { + fn_1_10130(&sp2C, work->unk_14); + } + fn_1_FE8C(&sp2C, sp38[0][fn_1_10FDC()], work->unk_14, work->unk_18); + fn_1_D888(&work->unk_128, 0.0f); + HuAudFXPlay(sp10[work->unk_14]); + } + work->unk_64 = 0; + fn_1_B4D4(object, 9); + PSVECSubtract(&sp2C, &work->unk_128, &sp20); + work->unk_A8 = atan2d(sp20.x, sp20.z); + work->unk_AC = 0.1f; + work->unk_90 = 0x186A0; + work->unk_88 = 0; + break; + } + if (work->unk_90 < 0x2710) { + work->unk_134.x = 0.07f * (work->unk_140.x - work->unk_128.x); + work->unk_134.z = 0.07f * (work->unk_140.z - work->unk_128.z); + if (work->unk_64 == 0) { + work->unk_90 = 0; + } + } + else { + work->unk_134.x *= 0.7f; + work->unk_134.z *= 0.7f; + if (fn_1_B6E0(object) != 0) { + work->unk_7C = 0; + } + } + break; + case 2: + if (work->unk_88 >= work->unk_90) { + if (work->unk_64 != 0) { + switch (fn_1_10FDC()) { + case 0: + sp2C = var_r29->unk_128; + sp2C.y = 11.0f; + break; + case 1: + sp2C = var_r29->unk_128; + sp2C.y = 11.0f; + sp2C.x *= 0.5f; + break; + case 2: + default: + sp2C.x = 350.0f; + sp2C.y = 11.0f; + sp2C.z = 0.0f; + if (work->unk_14 != 0) { + sp2C.x *= -1.0f; + } + break; + } + var_f29 = frandmod(0x168); + var_f30 = 200.0f * work->unk_98; + sp2C.x += var_f30 * sind(var_f29); + sp2C.z += var_f30 * cosd(var_f29); + if (fn_1_10FDC() < 2) { + fn_1_10130(&sp2C, work->unk_14); + } + fn_1_FE8C(&sp2C, sp38[1][fn_1_10FDC()], work->unk_14, work->unk_18); + fn_1_D888(&work->unk_128, 0.0f); + if (fn_1_10FDC() < 1) { + HuAudFXPlay(sp18[work->unk_14]); + } + else { + HuAudFXPlay(sp10[work->unk_14]); + } + } + work->unk_64 = 0; + fn_1_B4D4(object, 6); + PSVECSubtract(&sp2C, &work->unk_128, &sp20); + work->unk_A8 = atan2d(sp20.x, sp20.z); + work->unk_AC = 0.1f; + work->unk_90 = 0x186A0; + work->unk_88 = 0; + break; + } + if (work->unk_90 < 0x2710) { + work->unk_134.x = 0.07f * (work->unk_140.x - work->unk_128.x); + work->unk_134.z = 0.07f * (work->unk_140.z - work->unk_128.z); + if (work->unk_64 == 0) { + work->unk_90 = 0; + break; + } + } + else { + work->unk_134.x *= 0.7f; + work->unk_134.z *= 0.7f; + if (fn_1_B6E0(object) != 0) { + work->unk_7C = 0; + break; + } + } + break; + case 3: + if (work->unk_88 >= work->unk_90) { + if (work->unk_64 != 0) { + sp2C = work->unk_128; + sp2C.y = 11.0f; + PSVECSubtract(&var_r29->unk_128, &work->unk_128, &sp20); + var_f29 = 180.0 + (atan2d(sp20.x, sp20.z)); + var_f29 += frandmod(0xB4) - 90.0f; + var_f30 = 200.0f * work->unk_98; + sp2C.x += var_f30 * sind(var_f29); + sp2C.z += var_f30 * cosd(var_f29); + fn_1_10130(&sp2C, work->unk_14); + fn_1_FE8C(&sp2C, sp38[2][fn_1_10FDC()], work->unk_14, work->unk_18); + if (fn_1_10FDC() < 1) { + HuAudFXPlay(sp18[work->unk_14]); + } + else { + HuAudFXPlay(sp10[work->unk_14]); + } + } + work->unk_64 = 0; + work->unk_90 = 0x186A0; + work->unk_88 = 0; + fn_1_D888(&work->unk_128, 1.3f); + break; + } + if (work->unk_90 < 0x2710) { + work->unk_134.x = 0.15f * (work->unk_140.x - work->unk_128.x); + work->unk_134.z = 0.15f * (work->unk_140.z - work->unk_128.z); + break; + } + work->unk_134.x *= 0.95f; + work->unk_134.z *= 0.95f; + if (fn_1_B6E0(object) != 0) { + fn_1_B4D4(object, 8); + work->unk_7C = 4; + } + break; + case 4: + work->unk_134.x *= 0.95f; + work->unk_134.z *= 0.95f; + if (fn_1_B6E0(object) != 0) { + work->unk_7C = 0; + } + break; + } + } + } +} + +struct _m2c_reg_fn_1_A618 { + M433PlayerWork *var_r31; + M433PlayerWork *sp8; +}; + +void fn_1_A618(omObjData *object) +{ + Vec sp20; + Vec sp14; + M433PlayerWork *sp8; + float var_f31; + float var_f30; + float var_f29; + M433PlayerWork *work = object->data; + { + s32 spC[2] = { 0x6A8, 0x6A9 }; + sp8 = work->unk_14C->data; + work->unk_54 = 0; + work->unk_5C = 0; + switch (work->unk_80) { + case 0: + if ((work->unk_7C == 0) && (work->unk_78 == 0) && (work->unk_80 == 0) + && (work->unk_30 = 0, work->unk_68 = 0, ((work->unk_34 == 0) != 0)) && (fn_1_11004(work->unk_14, work->unk_18) != 0) + && (fn_1_10FDC() < 3) && (work->unk_14 == fn_1_10740(&sp20))) { + PSVECSubtract(&sp20, &work->unk_128, &sp14); + sp14.y = 0.0f; + if (!(PSVECMag(&sp14) > 500.0f)) { + fn_1_10B20(0.5f, &sp20); + sp20.y -= lbl_1_data_E0[work->unk_00]; + PSVECSubtract(&sp20, &work->unk_128, &sp14); + sp14.y = 0.0f; + if ((PSVECMag(&sp14) < 200.0f) && (sp20.y >= 50.0f)) { + work->unk_5C = 1; + } + if (((work->unk_1C & 0x200) != 0) && (work->unk_5C != 0)) { + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + fn_1_B4D4(object, 0xA); + work->unk_80 = 1; + work->unk_88 = 0; + work->unk_30 = 1; + if (work->unk_5C != 0) { + var_f30 = 0.5f; + work->unk_124 = (2.0f * -sp20.y) / (var_f30 * var_f30); + work->unk_134.y = 0.016666668f * (-work->unk_124 * var_f30); + PSVECSubtract(&sp20, &work->unk_128, &sp14); + sp14.y = 0.0f; + work->unk_134.x = 0.016666668f * (sp14.x / 0.5f); + work->unk_134.z = 0.016666668f * (sp14.z / 0.5f); + if (work->unk_14 != 0) { + var_f29 = -90.0f; + } + else { + var_f29 = 90.0f; + } + work->unk_A8 = var_f29; + work->unk_AC = 0.2f; + work->unk_B0 = 0.0f; + work->unk_68 = 1; + } + else { + work->unk_134.y = 14.833334f; + } + work->unk_60 = 1; + fn_1_D888(&work->unk_128, 0.75f); + } + } + } + break; + case 1: + work->unk_134.y += 0.016666668f * (0.016666668f * work->unk_124); + if (work->unk_68 != 0) { + var_f31 = (0.016666668f * work->unk_88) - 0.35f; + if ((var_f31 >= 0.0f) && (var_f31 < 0.4)) { + work->unk_54 = 1; + if ((work->unk_1C & 0x100) != 0) { + fn_1_B4D4(object, 0xB); + fn_1_10260(work->unk_28, work->unk_24, work->unk_14, work->unk_54, &sp20); + fn_1_FE8C(&sp20, 5, work->unk_14, work->unk_18); + work->unk_68 = 0; + work->unk_54 = 0; + HuAudFXPlay(spC[work->unk_14]); + } + } + else if (var_f31 > 0.0f) { + work->unk_68 = 0; + work->unk_54 = 0; + } + fn_1_10260(work->unk_28, work->unk_24, work->unk_14, work->unk_54, &sp20); + } + if (work->unk_128.y <= 0.0f) { + fn_1_D888(&work->unk_128, 0.75f); + work->unk_30 = 0; + work->unk_80 = 0; + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + work->unk_60 = 0; + work->unk_68 = 0; + } + break; + } + } +} + +// void fn_1_AB88(omObjData *object) +// { +// Vec sp1C; /* compiler-managed */ +// Vec sp10; +// s32 spC; +// s32 sp8; +// float var_f31; +// float var_f30; +// float var_f29; +// float var_f28; +// void *var_r31; +// s32 var_r30; +// omObjData *var_r29; +// void *var_r28; +// s32 temp_r0; + +// var_r29 = object; +// var_r31 = var_r29->data; +// var_r30 = 0; +// sp8 = lbl_1_rodata_5A0.unk_00; +// spC = lbl_1_rodata_5A0.unk_04; +// var_r28 = var_r31->unk_14C->unk_5C; +// var_r31->unk_58 = 0; +// temp_r0 = var_r31->unk_78; +// switch (temp_r0) { +// case 0: +// if ((var_r31->unk_7C == 0) && (var_r31->unk_78 == 0) && (var_r31->unk_80 == 0) +// && (var_r31->unk_30 = 0, var_r31->unk_68 = 0, ((var_r31->unk_34 == 0) != 0)) && (var_r31->unk_14 == fn_1_107B0(&sp1C)) +// && (fn_1_11060(var_r31->unk_14) == 0)) { +// var_f31 = var_r31->unk_128; +// if (var_r31->unk_14 == 0) { +// var_f31 *= -1.0f; +// } +// if (!(var_f31 > 230.0f) && (fn_1_10EA4() != 2)) { +// if (fn_1_10D24(&sp1C) != 0) { +// var_r30 = 1; +// } +// if (var_r30 != 0) { +// var_f31 = sp1C.z - var_r31->unk_130; +// if (var_f31 > 100.0f) { +// var_f31 = 100.0f; +// } +// else if (var_f31 < -100.0f) { +// var_f31 = -100.0f; +// } +// else { +// var_r31->unk_58 = 1; +// } +// } +// if ((var_r31->unk_1C & 0x200) != 0) { +// var_r31->unk_13C = 0.0f; +// var_r31->unk_138 = 0.0f; +// var_r31->unk_134 = 0.0f; +// fn_1_B4D4(var_r29, 0xA); +// var_r31->unk_78 = 1; +// var_r31->unk_88 = 0; +// var_r31->unk_30 = 1; +// if (var_r31->unk_14 != 0) { +// var_f28 = -90.0f; +// } +// else { +// var_f28 = 90.0f; +// } +// var_r31->unk_A8 = var_f28; +// var_r31->unk_AC = 0.2f; +// var_r31->unk_B0 = 0.0f; +// fn_1_D888(&var_r31->unk_128, 0.75f); +// var_f30 = 0.5f; +// var_r31->unk_124 = (2.0f * -(350.0f - lbl_1_data_E0[var_r31->unk_00])) / (0.5f * 0.5f); +// var_r31->unk_138 = 0.016666668f * (-var_r31->unk_124 * 0.5f); +// var_r31->unk_134 = 0.016666668f * (-var_r31->unk_128 / 0.75f); +// if (var_r30 != 0) { +// var_r31->unk_13C = 0.016666668f * (var_f31 / 0.5f); +// } +// var_r31->unk_60 = 1; +// var_r31->unk_58 = 0; +// return; +// } +// } +// } +// else { +// return; +// } +// break; +// case 1: +// var_r31->unk_138 = var_r31->unk_138 + (0.016666668f * (0.016666668f * var_r31->unk_124)); +// if ((var_r31->unk_14 == fn_1_10740(&sp1C)) && (fn_1_10FDC() == 0)) { +// fn_1_10B20(0.0f, &sp1C); +// if ((sp1C * var_r31->unk_128) > 0.0f) { +// sp1C.y = var_r31->unk_12C; +// PSVECSubtract(&sp1C, &var_r31->unk_128, &sp10); +// if (PSVECMag(&sp10) < 60.000004f) { +// if (frandmod(0x64) < 0x1E) { +// fn_1_10740(&sp1C); +// sp1C = sp1C * -0.5f; +// fn_1_FE8C(&sp1C, 5, var_r31->unk_14, var_r31->unk_18); +// HuAudFXPlay((&sp8)[var_r31->unk_14]); +// } +// else { +// fn_1_10740(&sp1C); +// var_f29 = frandmod(0x168); +// sp1C = sp1C + (100.0 * (2.0 * sind(var_f29))); +// sp1C.z = sp1C.z + (100.0 * (2.0 * cosd(var_f29))); +// fn_1_10130(&sp1C, var_r31->unk_14); +// fn_1_FE8C(&sp1C, 8, var_r31->unk_14, var_r31->unk_18); +// HuAudFXPlay((&sp8)[var_r31->unk_14]); +// } +// fn_1_B4D4(var_r29, 0xD); +// var_r28->unk_64 = 0; +// } +// } +// } +// if (var_r31->unk_12C <= 0.0f) { +// fn_1_D888(&var_r31->unk_128, 0.75f); +// var_r31->unk_30 = 0; +// var_r31->unk_78 = 0; +// var_r31->unk_13C = 0.0f; +// var_r31->unk_138 = 0.0f; +// var_r31->unk_134 = 0.0f; +// var_r31->unk_60 = 0; +// } +// break; +// } +// } + +// void fn_1_B194(omObjData *object) +// { +// Vec sp8; +// float var_f31; +// void *var_r31; +// void *var_r30; +// s32 var_r29; +// s32 var_r28; +// s32 var_r27; + +// for (var_r27 = 0; var_r27 < 2; var_r27++) { +// for (var_r29 = 0; var_r29 < 4; var_r29++) { +// var_r31 = lbl_1_bss_7D0[var_r29]->data; +// for (var_r28 = 0; var_r28 < 4; var_r28++) { +// if (var_r29 != var_r28) { +// var_r30 = lbl_1_bss_7D0[var_r28]->data; +// PSVECSubtract(&var_r31->unk_128, var_r30 + 0x128, &sp8); +// sp8.y = 0.0f; +// var_f31 = PSVECMag(&sp8); +// if (var_f31 < (var_r31->unk_120 + var_r30->unk_120)) { +// if (var_f31 > 0.0f) { +// var_f31 = 0.5f * ((var_r31->unk_120 + var_r30->unk_120) - var_f31); +// } +// else { +// var_f31 = 0.5f * (var_r31->unk_120 + var_r30->unk_120); +// sp8 = frandmod(0x3E8) - 0x1F4; +// sp8.z = frandmod(0x3E8) - 0x1F4; +// } +// PSVECNormalize(&sp8, &sp8); +// PSVECScale(&sp8, &sp8, var_f31); +// PSVECAdd(&var_r31->unk_128, &sp8, &var_r31->unk_128); +// PSVECSubtract(var_r30 + 0x128, &sp8, var_r30 + 0x128); +// } +// } +// } +// if (var_r31->unk_12C < 0.0f) { +// var_r31->unk_12C = 0.0f; +// } +// if ((var_r31->unk_130 - var_r31->unk_120) < -500.0f) { +// var_r31->unk_130 = -500.0f + var_r31->unk_120; +// } +// else if ((var_r31->unk_130 + var_r31->unk_120) > 500.0f) { +// var_r31->unk_130 = 500.0f - var_r31->unk_120; +// } +// if (var_r31->unk_14 == 0) { +// var_r31->unk_128 = var_r31->unk_128 * -1.0f; +// } +// if ((var_r31->unk_128 - var_r31->unk_120) < 20.0f) { +// var_r31->unk_128 = 20.0f + var_r31->unk_120; +// } +// else if ((60.000004f + var_r31->unk_128) > 800.0f) { +// var_r31->unk_128 = 740.0f; +// } +// if (var_r31->unk_14 == 0) { +// var_r31->unk_128 = var_r31->unk_128 * -1.0f; +// } +// } +// } +// } + +// void fn_1_B4D4(omObjData *object, u32 arg1) +// { +// float var_f31; +// void *var_r31; +// u32 var_r30; +// omObjData *var_r29; + +// var_r29 = object; +// var_r30 = arg1; +// var_r31 = var_r29->data; +// if ((var_r31->unk_0C != var_r30) && (var_r30 < 0x15)) { +// var_f31 = 60.0f * lbl_1_data_24C[var_r30].unk_04; +// if (var_r31->unk_0C < 0) { +// var_f31 = 0.0f; +// } +// var_r31->unk_0C = var_r30; +// if (var_r31->unk_04 < 0) { +// CharModelMotionShiftSet(var_r31->unk_00, var_r29->motion[lbl_1_data_24C[var_r30].unk_00], 60.0f * lbl_1_data_24C[var_r30].unk_08, +// var_f31, +// lbl_1_data_24C[var_r30].unk_10); +// } +// else { +// Hu3DMotionShiftSet(var_r29->model[0], var_r29->motion[lbl_1_data_24C[var_r30].unk_00], 60.0f * lbl_1_data_24C[var_r30].unk_08, var_f31, +// lbl_1_data_24C[var_r30].unk_10); +// } +// if (lbl_1_data_24C[var_r30].unk_0C >= 0.0f) { +// Hu3DMotionShiftStartEndSet(var_r29->model[0], 60.0f * lbl_1_data_24C[var_r30].unk_08, 60.0f * lbl_1_data_24C[var_r30].unk_0C); +// } +// var_r31->unk_10 = 0; +// } +// } + +// s32 fn_1_B6E0(omObjData *object) +// { +// void *var_r31; +// omObjData *var_r30; +// s32 var_r29; + +// var_r30 = object; +// var_r31 = var_r30->data; +// var_r29 = 0; +// if (var_r31->unk_04 < 0) { +// if (((CharModelMotionEndCheck(var_r31->unk_00) != 0) || (var_r31->unk_10 != 0)) && (CharModelMotionShiftIDGet(var_r31->unk_00) < 0)) { +// var_r29 = 1; +// } +// } +// else if (((Hu3DMotionEndCheck(var_r30->model[0]) != 0) || (var_r31->unk_10 != 0)) && (Hu3DMotionShiftIDGet(var_r30->model[0]) < 0)) { +// var_r29 = 1; +// } +// return var_r29; +// } + +// s32 fn_1_B7AC(omObjData *object) +// { +// void *var_r31; +// s32 var_r30; +// omObjData *var_r29; + +// var_r29 = object; +// var_r31 = var_r29->data; +// var_r30 = 0; +// if (var_r31->unk_04 < 0) { +// if (CharModelMotionShiftIDGet(var_r31->unk_00) < 0) { +// var_r30 = 1; +// } +// } +// else if (Hu3DMotionShiftIDGet(var_r29->model[0]) < 0) { +// var_r30 = 1; +// } +// return var_r30; +// } + +// s32 fn_1_B838(void *arg0, u32 arg1) +// { +// float var_f31; +// void *var_r31; +// void *var_r30; +// u32 var_r29; +// void *var_r28; +// s32 var_r27; +// s32 var_r26; + +// var_r31 = arg0; +// var_r29 = arg1; +// var_r26 = 0; +// var_r28 = var_r31->unk_5C; +// var_r27 = 0; +// if (var_r28->unk_04 < 0) { +// if (((CharModelMotionEndCheck(var_r28->unk_00) != 0) || (var_r28->unk_10 != 0)) && (CharModelMotionShiftIDGet(var_r28->unk_00) < 0)) { +// var_r27 = 1; +// } +// } +// else if (((Hu3DMotionEndCheck(*var_r31->unk_40) != 0) || (var_r28->unk_10 != 0)) && (Hu3DMotionShiftIDGet(*var_r31->unk_40) < 0)) { +// var_r27 = 1; +// } +// if (var_r27 != 0) { +// var_r30 = var_r31->unk_5C; +// if ((var_r30->unk_0C != var_r29) && (var_r29 < 0x15)) { +// var_f31 = 60.0f * lbl_1_data_24C[var_r29].unk_04; +// if (var_r30->unk_0C < 0) { +// var_f31 = 0.0f; +// } +// var_r30->unk_0C = var_r29; +// if (var_r30->unk_04 < 0) { +// CharModelMotionShiftSet(var_r30->unk_00, *(var_r31->unk_48 + (lbl_1_data_24C[var_r29].unk_00 * 2)), +// 60.0f * lbl_1_data_24C[var_r29].unk_08, var_f31, lbl_1_data_24C[var_r29].unk_10); +// } +// else { +// Hu3DMotionShiftSet(*var_r31->unk_40, *(var_r31->unk_48 + (lbl_1_data_24C[var_r29].unk_00 * 2)), +// 60.0f * lbl_1_data_24C[var_r29].unk_08, var_f31, lbl_1_data_24C[var_r29].unk_10); +// } +// if (lbl_1_data_24C[var_r29].unk_0C >= 0.0f) { +// Hu3DMotionShiftStartEndSet(*var_r31->unk_40, 60.0f * lbl_1_data_24C[var_r29].unk_08, 60.0f * lbl_1_data_24C[var_r29].unk_0C); +// } +// var_r30->unk_10 = 0; +// } +// var_r26 = 1; +// } +// return var_r26; +// } + +// s32 fn_1_BAE0(omObjData *object, u32 arg1) +// { +// float var_f31; +// omObjData *var_r31; +// void *var_r30; +// u32 var_r29; +// void *var_r28; +// s32 var_r27; +// s32 var_r26; + +// var_r31 = object; +// var_r29 = arg1; +// var_r26 = 0; +// var_r28 = var_r31->data; +// var_r27 = 0; +// if (var_r28->unk_04 < 0) { +// if (CharModelMotionShiftIDGet(var_r28->unk_00) < 0) { +// var_r27 = 1; +// } +// } +// else if (Hu3DMotionShiftIDGet(var_r31->model[0]) < 0) { +// var_r27 = 1; +// } +// if (var_r27 != 0) { +// var_r30 = var_r31->data; +// if ((var_r30->unk_0C != var_r29) && (var_r29 < 0x15)) { +// var_f31 = 60.0f * lbl_1_data_24C[var_r29].unk_04; +// if (var_r30->unk_0C < 0) { +// var_f31 = 0.0f; +// } +// var_r30->unk_0C = var_r29; +// if (var_r30->unk_04 < 0) { +// CharModelMotionShiftSet(var_r30->unk_00, var_r31->motion[lbl_1_data_24C[var_r29].unk_00], 60.0f * lbl_1_data_24C[var_r29].unk_08, +// var_f31, lbl_1_data_24C[var_r29].unk_10); +// } +// else { +// Hu3DMotionShiftSet(var_r31->model[0], var_r31->motion[lbl_1_data_24C[var_r29].unk_00], 60.0f * lbl_1_data_24C[var_r29].unk_08, +// var_f31, lbl_1_data_24C[var_r29].unk_10); +// } +// if (lbl_1_data_24C[var_r29].unk_0C >= 0.0f) { +// Hu3DMotionShiftStartEndSet(var_r31->model[0], 60.0f * lbl_1_data_24C[var_r29].unk_08, 60.0f * lbl_1_data_24C[var_r29].unk_0C); +// } +// var_r30->unk_10 = 0; +// } +// var_r26 = 1; +// } +// return var_r26; +// } + +void fn_1_BD48(omObjData *object) +{ + M433PlayerWork2 *work; + s32 var_r29; + s32 var_r28; + HsfanimStruct01 *var_r27; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M433PlayerWork2), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M433PlayerWork2)); + object->model[0] = Hu3DModelCreateFile(0x400000); + Hu3DModelShadowSet(object->model[0]); + object->model[1] = Hu3DModelCreateFile(0x400004); + Hu3DModelAttrSet(object->model[1], HU3D_MOTATTR_LOOP); + object->model[2] = Hu3DModelCreateFile(0x400004); + Hu3DModelAttrSet(object->model[2], HU3D_MOTATTR_LOOP); + object->model[3] = Hu3DModelCreateFile(0x400003); + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); + object->model[4] = Hu3DModelCreateFile(0x400007); + Hu3DModelAttrSet(object->model[4], HU3D_ATTR_DISPOFF); + object->model[6] = Hu3DModelCreateFile(0x400005); + Hu3DModelAttrSet(object->model[6], HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(object->model[6], 0.75f, 0.75f, 0.75f); + Hu3DModelLayerSet(object->model[6], 2); + object->model[7] = Hu3DModelCreateFile(0x400006); + Hu3DModelAttrSet(object->model[7], HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(object->model[7], 0.75f, 0.75f, 0.75f); + Hu3DModelLayerSet(object->model[7], 2); + var_r28 = Hu3DParticleCreate(HuSprAnimRead(HuDataReadNum(0x120002, 0x10000000)), 1); + object->model[8] = var_r28; + Hu3DModelLayerSet(var_r28, 2); + Hu3DParticleHookSet(var_r28, fn_1_DE28); + Hu3DModelAttrSet(var_r28, HU3D_ATTR_DISPOFF); + var_r28 = Hu3DParticleCreate(HuSprAnimReadFile(0x400009), 0xC8); + object->model[5] = var_r28; + Hu3DModelLayerSet(var_r28, 2); + Hu3DParticleHookSet(var_r28, fn_1_D6A8); + for (var_r27 = ((ParticleData *)Hu3DData[var_r28].unk_120)->unk_48, var_r29 = 0; var_r29 < 0xC8; var_r29++, var_r27++) { + var_r27->unk2C = 0.0f; + var_r27->unk40.a = 0; + var_r27->unk00_s16 = 0; + } + object->model[9] = Hu3DModelCreateFile(0x400002); + Hu3DModelScaleSet(object->model[9], 1.05f, 1.05f, 1.05f); + Hu3DModelAttrSet(object->model[9], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(object->model[9], 1); + Hu3DModelShadowSet(object->model[9]); + for (var_r29 = 1; var_r29 < 0x15; var_r29++) { + if (var_r29 == 0xA) { + object->model[var_r29 + 9] = Hu3DModelCreateFile(0x400001); + } + else { + object->model[var_r29 + 9] = Hu3DModelLink(object->model[9]); + Hu3DModelLayerSet(object->model[var_r29 + 9], 1); + } + Hu3DModelShadowSet(object->model[var_r29 + 9]); + Hu3DModelScaleSet(object->model[var_r29 + 9], 1.05f, 1.05f, 1.05f); + Hu3DModelAttrSet(object->model[var_r29 + 9], HU3D_ATTR_DISPOFF); + } + object->trans.x = work->unk_30 = 0.0f; + object->trans.y = work->unk_34 = 0.0f; + object->trans.z = work->unk_38 = 0.0f; + work->unk_B8 = 0.0f; + work->unk_BC = work->unk_C0 = 0.0f; + work->unk_C4 = 1.0f; + PSMTXIdentity(work->unk_C8); + work->unk_18 = 0; + object->func = fn_1_C240; +} + +// void fn_1_C240(omObjData *object) +// { +// s32 sp8; +// s32 temp_r4; +// void *var_r31; +// omObjData *var_r30; +// s32 var_r29; +// u16 temp_r0; + +// var_r30 = object; +// var_r31 = var_r30->data; +// sp8 = 0; +// var_r31->unk_00 = 0; +// temp_r0 = var_r31->unk_18; +// switch (temp_r0) { +// case 0: +// var_r31->unk_04 = 1; +// break; +// case 1: +// var_r31->unk_B8 = 0.0f; +// var_r31->unk_C0 = 0.0f; +// var_r31->unk_BC = 0.0f; +// var_r31->unk_C4 = 1.0f; +// PSMTXIdentity(var_r31 + 0xC8); +// var_r31->unk_00 = 1; +// break; +// case 10: +// var_r31->unk_00 = 1; +// break; +// } +// var_r31->unk_8C++; +// if (var_r31->unk_90 != 0) { +// var_r31->unk_A0 = 1.0f; +// if (var_r31->unk_94 == 2) { +// var_r31->unk_A4 = var_r31->unk_A4 + 12.000001f; +// if (var_r31->unk_A4 >= 360.0f) { +// var_r31->unk_A4 = var_r31->unk_A4 - 360.0f; +// } +// var_r31->unk_A0 = 1.5f; +// var_r31->unk_A8 = var_r31->unk_A8 + 0.015000001f; +// Hu3DMotionSpeedSet(var_r30->model->unk_06, 2.5f); +// } +// else { +// Hu3DMotionTimeSet(var_r30->model->unk_06, 0.0f); +// Hu3DMotionSpeedSet(var_r30->model->unk_06, 0.0f); +// } +// Hu3DModelRotSet(var_r30->model->unk_06, 0.0f, var_r31->unk_A4, 0.0f); +// Hu3DModelAttrReset(var_r30->model->unk_06, HU3D_ATTR_DISPOFF); +// Hu3DModelPosSet(var_r30->model->unk_06, var_r31->unk_AC, 3.0f + var_r31->unk_B0, var_r31->unk_B4); +// var_r31->unk_98++; +// var_r31->unk_90 = 0; +// } +// else if (var_r31->unk_94 != 0) { +// var_r31->unk_94 = 0; +// var_r31->unk_A0 = 0.0f; +// } +// var_r31->unk_9C = var_r31->unk_9C + (0.2f * (var_r31->unk_A0 - var_r31->unk_9C)); +// Hu3DModelScaleSet(var_r30->model->unk_06, var_r31->unk_9C, 1.0f, var_r31->unk_9C); +// if ((var_r31->unk_A0 <= 0.0f) && (var_r31->unk_9C < 0.1f)) { +// Hu3DModelAttrSet(var_r30->model->unk_06, HU3D_ATTR_DISPOFF); +// var_r31->unk_9C = 0.0f; +// } +// for (var_r29 = 0; var_r29 < 2; var_r29++) { +// temp_r4 = (var_r29 * 4) + 0x7C; +// *(var_r31 + temp_r4) = *(var_r31 + temp_r4) + (0.3f * (*(var_r31 + ((var_r29 * 4) + 0x84)) - *(var_r31 + ((var_r29 * 4) + 0x7C)))); +// if (*(var_r31 + ((var_r29 * 4) + 0x84)) > 0.0f) { +// Hu3DModelAttrReset(var_r30->model[var_r29 + 1], HU3D_ATTR_DISPOFF); +// } +// else if (*(var_r31 + ((var_r29 * 4) + 0x7C)) < 0.1f) { +// Hu3DModelAttrSet(var_r30->model[var_r29 + 1], HU3D_ATTR_DISPOFF); +// } +// Hu3DModelScaleSet(var_r30->model[var_r29 + 1], *(var_r31 + ((var_r29 * 4) + 0x7C)), 1.0f, *(var_r31 + ((var_r29 * 4) + 0x7C))); +// } +// fn_1_C6B0(var_r30); +// fn_1_CB98(var_r30); +// var_r30->trans.x = var_r31->unk_30; +// var_r30->trans.y = var_r31->unk_34; +// var_r30->trans.z = var_r31->unk_38; +// if ((fn_1_216C() >= 3) && (var_r31->unk_04 != 0) && (fn_1_2244() != 0)) { +// fn_1_DD70(var_r31 + 0x30); +// Hu3DModelAttrSet(var_r30->model->unk_00, HU3D_ATTR_DISPOFF); +// var_r30->func = fn_1_C6AC; +// } +// } + +// void fn_1_C6AC(omObjData *object) { } + +// s32 fn_1_C6B0(omObjData *object) +// { +// Vec sp8; +// float var_f31; +// float var_f30; +// float var_f29; +// float var_f28; +// float var_f27; +// float var_f26; +// void *var_r31; +// omObjData *var_r30; +// void *var_r29; +// s32 var_r28; + +// var_r30 = object; +// var_r31 = var_r30->data; +// if ((var_r31->unk_00 == 0) && (var_r31->unk_04 == 0) && (var_r31->unk_08 == 0)) { +// if (var_r31->unk_10 == 0) { +// fn_1_CDB8(var_r31 + 0xF8, var_r31 + 0x30, var_r31 + 0x3C, var_r31->unk_6C, var_r31->unk_A8); +// fn_1_D338(var_r31 + 0xF8); +// fn_1_D180(var_r31 + 0xF8); +// var_r31->unk_B8 = var_r31->unk_A8 * (8.0f * lbl_1_data_48C[var_r31->unk_6C]); +// PSVECSubtract(var_r31 + 0x3C, var_r31 + 0x30, &sp8); +// sp8.y = 0.0f; +// if (PSVECMag(&sp8) <= 0.0f) { +// var_r31->unk_C0 = 0.0f; +// var_r31->unk_BC = 0.0f; +// var_r31->unk_C4 = 1.0f; +// } +// else { +// PSVECNormalize(&sp8, &sp8); +// var_r31->unk_BC = -sp8.z; +// var_r31->unk_C0 = 0.0f; +// var_r31->unk_C4 = sp8; +// } +// var_r31->unk_48 = 0.0f; +// var_r28 = 0; +// if (var_r31->unk_84 > 0.0f) { +// var_r28 = 1; +// } +// Hu3DModelPosSet(var_r30->model[var_r28 + 1], var_r31->unk_130, 3.0f + var_r31->unk_134, var_r31->unk_138); +// if (var_r31->unk_9C <= 0.0f) { +// var_r31->unk_8C = 9; +// } +// if (lbl_1_data_468[var_r31->unk_6C] != 0) { +// *(var_r31 + ((var_r28 * 4) + 0x84)) = 1.0f; +// } +// *(var_r31 + (((1 - var_r28) * 4) + 0x84)) = 0.0f; +// } +// var_r31->unk_10 = 1; +// if (var_r31->unk_B8 != 0.0f) { +// PSMTXRotAxisRad(&sp14[0], var_r31 + 0xBC, 0.017453292f * var_r31->unk_B8); +// PSMTXConcat(&sp14[0], var_r31 + 0xC8, var_r31 + 0xC8); +// PSMTXCopy(var_r31 + 0xC8, Hu3DData[var_r30->model->unk_00].unk_F0[0]); +// } +// var_r31->unk_48 = var_r31->unk_48 + 0.016666668f; +// var_r31->unk_08 = fn_1_D4E0(var_r31 + 0xF8, var_r31 + 0x30, var_r31 + 0x4C, var_r31->unk_48); +// if (var_r31->unk_08 != 0) { +// var_r31->unk_88 = 0.0f; +// var_r31->unk_84 = 0.0f; +// if (var_r31->unk_34 <= 12.0f) { +// var_r29 = lbl_1_bss_7C8->data; +// var_r31->unk_78 = 0; +// Hu3DModelPosSetV(var_r30->model->unk_08, var_r31 + 0x30); +// Hu3DMotionTimeSet(var_r30->model->unk_08, 0.0f); +// if ((var_r31->unk_6C == 5) || (var_r31->unk_6C == 2)) { +// Hu3DMotionSpeedSet(var_r30->model->unk_08, 1.5f); +// fn_1_D888(var_r31 + 0x30, 1.0f); +// } +// else { +// Hu3DMotionSpeedSet(var_r30->model->unk_08, 1.0f); +// fn_1_D888(var_r31 + 0x30, 0.5f); +// var_r31->unk_34 = var_r31->unk_34 + 11.0f; +// } +// var_r31->unk_6C = 0; +// var_r31->unk_04 = 1; +// var_r29->unk_2C = 1; +// var_r29->unk_38 = -1; +// var_f31 = var_r31->unk_38; +// var_f29 = fabs(var_f31); +// var_f28 = var_f29; +// if (var_f28 < 350.0) { +// var_f30 = var_r31->unk_30; +// var_f27 = fabs(var_f30); +// var_f26 = var_f27; +// if (var_f26 < 700.0) { +// var_r29->unk_38 = 0; +// if (var_r31->unk_30 >= 0.0f) { +// var_r29->unk_38 = 1; +// } +// } +// } +// } +// } +// } +// else { +// var_r31->unk_10 = 0; +// } +// return var_r31->unk_08; +// } + +// void fn_1_CB98(omObjData *object) +// { +// Vec sp14; +// Vec sp8; +// float var_f31; +// float var_f30; +// float var_f29; +// float var_f28; +// void *var_r31; +// omObjData *var_r30; +// s32 var_r29; + +// var_r30 = object; +// var_r31 = var_r30->data; +// if (var_r31->unk_78 != 0) { +// Hu3DModelAttrSet(var_r30->model[0], HU3D_ATTR_DISPOFF); +// var_f30 = var_r31->unk_FC; +// var_f29 = var_f30; +// var_f31 = var_f29 - (0.020000001f * var_r31->unk_A8); +// if (var_f31 < 0.0f) { +// var_f31 = 0.0f; +// } +// var_f31 = (var_f30 - var_f31) / 21.0f; +// PSMTXCopy(var_r31 + 0xC8, &sp20[0]); +// var_f28 = (var_r31->unk_B8 * (1.2f * var_r31->unk_A8)) / 21.0f; +// PSMTXRotAxisRad(&sp50[0], var_r31 + 0xBC, 0.017453292f * -var_f28); +// for (var_r29 = 0; var_r29 < 0x15; var_r29++) { +// Hu3DModelAttrReset(var_r30->model[var_r29 + 9], HU3D_ATTR_DISPOFF); +// fn_1_D4E0(var_r31 + 0xF8, &sp14, &sp8, var_f30); +// Hu3DModelPosSetV(var_r30->model[var_r29 + 9], &sp14); +// PSMTXCopy(&sp20[0], Hu3DData[var_r30->model[var_r29 + 9]].unk_F0[0]); +// PSMTXConcat(&sp50[0], &sp20[0], &sp20[0]); +// var_f30 -= var_f31; +// } +// var_r31->unk_FC = var_f29; +// return; +// } +// Hu3DModelAttrReset(var_r30->model[0], HU3D_ATTR_DISPOFF); +// for (var_r29 = 0; var_r29 < 0x15; var_r29++) { +// Hu3DModelAttrSet(var_r30->model[var_r29 + 9], HU3D_ATTR_DISPOFF); +// } +// } + +// void fn_1_CDB8(float *arg0, Vec *arg1, Vec *arg2, u32 arg3, float arg8) +// { +// Vec sp18; +// float sp14; +// float sp10; +// float spC; +// float sp8; +// float var_f31; +// float var_f30; +// float var_f29; +// float var_f28; +// double var_f27; +// double var_f26; +// float *var_r31; +// Vec *var_r30; +// Vec *var_r29; +// u32 var_r28; + +// var_r31 = arg0; +// var_r30 = arg1; +// var_r29 = arg2; +// var_r28 = arg3; +// sp8 = arg8; +// var_r31->unk_0C = 0.0f; +// var_r31->unk_08 = 0.0f; +// var_f31 = lbl_1_data_4D4[var_r28].y; +// var_r31->unk_00 = var_f31; +// if (var_r31->unk_00 <= 0.0f) { +// if (((var_r29->x * var_r30->x) < 0.0f) && (var_r30->x != 0.0f) && (lbl_1_data_4D4[var_r28].x > 0.0f)) { +// var_r31->unk_0C = lbl_1_data_4D4[var_r28].x; +// var_f28 = var_r30->x / (var_r29->x - var_r30->x); +// var_f27 = fabs(var_f28); +// var_f26 = var_f27; +// var_r31->unk_08 = var_f26; +// var_f29 = var_r30->y + (var_r31->unk_08 * (var_r29->y - var_r30->y)); +// if (var_f29 < var_r31->unk_0C) { +// spC = var_r30->x + (var_r31->unk_08 * (var_r29->x - var_r30->x)); +// sp10 = var_r31->unk_0C; +// sp14 = var_r30->z + (var_r31->unk_08 * (var_r29->z - var_r30->z)); +// PSVECSubtract(var_r29, &spC, &sp18); +// var_f30 = PSVECMag(&sp18); +// PSVECSubtract(&spC, var_r30, &sp18); +// var_f30 += PSVECMag(&sp18); +// } +// else { +// PSVECSubtract(var_r29, var_r30, &sp18); +// var_f30 = PSVECMag(&sp18); +// } +// } +// else { +// PSVECSubtract(var_r29, var_r30, &sp18); +// var_f30 = PSVECMag(&sp18); +// } +// var_f31 = var_f30 / (sp8 * lbl_1_data_4D4[var_r28].z); +// var_r31->unk_00 = var_f31; +// } +// var_r31->unk_04 = 0.0f; +// var_r31->unk_2C = var_r30->x; +// var_r31->unk_30 = var_r30->y; +// var_r31->unk_34 = var_r30->z; +// var_r31->unk_38 = var_r29->x; +// var_r31->unk_3C = var_r29->y; +// var_r31->unk_40 = var_r29->z; +// var_r31->unk_1C = var_r29->y - var_r30->y; +// var_r31->unk_24 = -980.0f; +// PSVECSubtract(var_r29, var_r30, &sp18); +// sp18.y = 0.0f; +// var_r31->unk_10 = PSVECMag(&sp18); +// var_r31->unk_18 = 0.0f; +// if (var_f31 > 0.0f) { +// var_r31->unk_20 = (var_r31->unk_1C - (0.5f * (-980.0f * (var_f31 * var_f31)))) / var_f31; +// var_r31->unk_14 = var_r31->unk_10 / var_f31; +// } +// else { +// var_r31->unk_20 = var_r31->unk_1C; +// var_r31->unk_14 = var_r31->unk_10; +// } +// var_r31->unk_28 = lbl_1_data_540[var_r28]; +// } + +// void fn_1_D180(float *arg0) +// { +// float sp8; +// float var_f31; +// float var_f30; +// float var_f29; +// float var_f28; +// float var_f27; +// float var_f26; +// float var_f25; +// s32 var_r31; + +// if (!(arg0->unk_0C <= 0.0f)) { +// var_f31 = arg0->unk_00; +// var_f28 = arg0->unk_00; +// var_f27 = 10.0f * arg0->unk_00; +// for (var_r31 = 0; var_r31 < 0x10; var_r31++) { +// var_f30 = 1.0f / var_f31; +// sp8 = arg0->unk_10 * var_f30; +// var_f26 = (arg0->unk_1C * var_f30) - (0.5f * arg0->unk_24 * var_f31); +// var_f29 = arg0->unk_08 * var_f31; +// var_f25 = arg0->unk_30 + ((var_f29 * (0.5f * arg0->unk_24 * var_f29)) + (var_f26 * var_f29)); +// if (arg0->unk_0C > var_f25) { +// var_f28 = var_f31; +// } +// else { +// var_f27 = var_f31; +// } +// var_f31 = 0.5f * (var_f28 + var_f27); +// } +// var_f30 = 1.0f / var_f31; +// arg0->unk_00 = var_f31; +// arg0->unk_14 = arg0->unk_10 * var_f30; +// arg0->unk_20 = (arg0->unk_1C * var_f30) - (0.5f * arg0->unk_24 * var_f31); +// } +// } + +// void fn_1_D338(float *arg0) +// { +// float sp8; +// float var_f31; +// float var_f30; +// float var_f29; +// float var_f28; +// float var_f27; +// float var_f26; +// float var_f25; +// s32 var_r31; + +// if (!(arg0->unk_0C <= 0.0f)) { +// var_f29 = arg0->unk_08 * arg0->unk_00; +// var_f30 = 1.0f / arg0->unk_00; +// var_f31 = arg0->unk_24; +// var_f28 = arg0->unk_24; +// var_f27 = arg0->unk_24 * arg0->unk_28; +// for (var_r31 = 0; var_r31 < 0x10; var_r31++) { +// sp8 = arg0->unk_10 * var_f30; +// var_f26 = (arg0->unk_1C * var_f30) - (0.5f * var_f31 * arg0->unk_00); +// var_f25 = arg0->unk_30 + ((var_f29 * (0.5f * var_f31 * var_f29)) + (var_f26 * var_f29)); +// if (arg0->unk_0C > var_f25) { +// var_f28 = var_f31; +// } +// else { +// var_f27 = var_f31; +// } +// var_f31 = 0.5f * (var_f28 + var_f27); +// } +// arg0->unk_24 = var_f31; +// arg0->unk_14 = arg0->unk_10 * var_f30; +// arg0->unk_20 = (arg0->unk_1C * var_f30) - (0.5f * arg0->unk_24 * arg0->unk_00); +// } +// } + +// s32 fn_1_D4E0(float *arg0, Vec *arg1, Vec *arg2, float arg8) +// { +// float sp20; +// float sp1C; +// float sp18; +// Vec spC; +// Vec *sp8; +// float var_f31; +// float var_f30; +// float var_f29; +// float *var_r31; +// Vec *var_r30; + +// var_r31 = arg0; +// var_r30 = arg1; +// sp8 = arg2; +// var_f31 = arg8; +// if (var_f31 < 0.0f) { +// var_f31 = 0.0f; +// } +// if (var_f31 > var_r31->unk_00) { +// var_f31 = var_r31->unk_00; +// } +// var_r31->unk_04 = var_f31; +// if (var_r31->unk_10 > 0.0f) { +// PSVECSubtract(var_r31 + 0x38, var_r31 + 0x2C, &spC); +// spC.y = 0.0f; +// PSVECNormalize(&spC, &spC); +// } +// else { +// spC.z = 0.0f; +// spC.y = 0.0f; +// spC = 0.0f; +// } +// sp18 = var_r30->x; +// sp1C = var_r30->y; +// sp20 = var_r30->z; +// var_f30 = (var_f31 * (0.5f * var_r31->unk_18 * var_f31)) + (var_r31->unk_14 * var_f31); +// var_f29 = (var_f31 * (0.5f * var_r31->unk_24 * var_f31)) + (var_r31->unk_20 * var_f31); +// var_r30->x = var_r31->unk_2C + (spC * var_f30); +// var_r30->y = var_r31->unk_30 + var_f29; +// var_r30->z = var_r31->unk_34 + (spC.z * var_f30); +// PSVECSubtract(var_r30, &sp18, sp8); +// if (var_f31 >= var_r31->unk_00) { +// return 1; +// } +// return 0; +// } + +// void fn_1_D6A8(ModelData *model, ParticleData *particle, Mtx matrix) +// { +// HsfanimStruct01 *var_r31; +// ParticleData *var_r30; +// s32 var_r29; +// u16 temp_r0; + +// var_r30 = particle; +// for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r31 < var_r30->unk_30; var_r29++, var_r31 += 0x44) { +// if (var_r31->unk00 != 0) { +// PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); +// var_r31->unk08.x *= 0.92f; +// var_r31->unk08.z *= 0.92f; +// var_r31->unk08.y += -0.27222225f; +// var_r31->unk2C += 2.0f; +// var_r31->unk40.a = var_r31->unk40.a * 0.99f; +// if (var_r31->unk00 < 24.0f) { +// var_r31->unk40.a = 0.9f * var_r31->unk40.a; +// } +// temp_r0 = var_r31->unk00 - 1; +// var_r31->unk00 = temp_r0; +// if (temp_r0 == 0) { +// var_r31->unk00 = 0; +// var_r31->unk2C = 0.0f; +// var_r31->unk40.a = 0; +// } +// } +// } +// DCStoreRange(var_r30->unk_48, var_r30->unk_30 * 0x44); +// } + +// void fn_1_D888(Vec *arg0, float arg8) +// { +// float sp10; +// float spC; +// float sp8; +// float var_f31; +// float var_f30; +// float var_f29; +// void *var_r31; +// Vec *var_r30; +// s32 var_r29; +// u32 var_r28; + +// var_r30 = arg0; +// var_f29 = arg8; +// var_r31 = Hu3DData[lbl_1_bss_7CC->model->unk_0A].unk_120->unk_48; +// var_r28 = 3.0f + (12.0f * var_f29); +// var_r29 = 0; +// loop_4: +// if (var_r29 < 0xC8) { +// if ((var_r31->unk_00 != 0) +// || (var_r31->unk_00 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8))), var_f30 = frandmod(0x168), sp8 = sind(var_f30) / 180.0), +// spC = 0.0f, +// sp10 = cos((3.141592653589793 * var_f30), var_f31 = 0.030000001f * frandmod(0x3E8), var_r31->unk_34 = var_r30->x + (sp8 * var_f31), +// var_r31->unk_38 = 10.0f + (var_r30->y + (0.030000001f * frandmod(0x3E8))), var_r31->unk_3C = var_r30->z + (sp10 * var_f31), +// var_f31 = 0.8333334f + (0.0016666667f * frandmod(0x3E8)), var_f31 *= 1.0f + var_f29, var_r31->unk_08 = sp8 * var_f31, +// var_r31->unk_10 = sp10 * var_f31, var_r31->unk_0C = 0.50000006f + (0.0011666667f * frandmod(0x3E8)), +// var_r31->unk_0C = var_r31->unk_0C * (1.0f + var_f29), var_r31->unk_30 = frandmod(0x168), var_r31->unk_2C = 60.0f + frandmod(0x1E), +// var_r31->unk_43 = frandmod(0x64) + 0x78, var_f31 = 0.001f * frandmod(0x3E8), var_r31->unk_40 = 235.0f + (20.0f * var_f31), +// var_r31->unk_41 = 180.0f + (75.0f * var_f31), var_r31->unk_42 = 155.0f + (100.0f * var_f31), var_r28--, ((var_r28 < 1) == 0))) { +// var_r29++; +// var_r31 += 0x44; +// goto loop_4; +// } +// } +// } + +// void fn_1_DD70(Vec *arg0) +// { +// void *var_r31; +// void *var_r30; +// Vec *var_r29; + +// var_r29 = arg0; +// var_r31 = Hu3DData[lbl_1_bss_7CC->model->unk_10].unk_120; +// Hu3DModelAttrReset(lbl_1_bss_7CC->model->unk_10, HU3D_ATTR_DISPOFF); +// var_r30 = var_r31->unk_48; +// var_r31->unk_00 = 0; +// var_r31->unk_02 = 0x3C; +// var_r30->unk_2C = 100.0f; +// var_r30->unk_34 = var_r29->x; +// var_r30->unk_38 = var_r29->y; +// var_r30->unk_3C = var_r29->z; +// } + +// void fn_1_DE28(ModelData *model, ParticleData *particle, Mtx matrix) +// { +// ParticleData *var_r31; +// HsfanimStruct01 **var_r30; +// s32 var_r29; +// s8 var_r28; +// ModelData *var_r27; +// s16 temp_r0; + +// var_r27 = model; +// var_r31 = particle; +// if (var_r31->unk_00 == 0) { +// var_r31->unk_00 = 1; +// for (var_r30 = &var_r31->unk_48, var_r29 = 0; var_r30 < var_r31->unk_30; var_r29++, var_r30 += 0x44) { +// var_r30->unk_2C = 0.0f; +// } +// } +// var_r28 = 0.016666668f * (var_r31->unk_02 * 0xFF); +// for (var_r30 = var_r31->unk_48, var_r29 = 0; var_r30 < var_r31->unk_30; var_r29++, var_r30 += 0x44) { +// var_r30->unk_43 = var_r28; +// } +// temp_r0 = var_r31->unk_02 - 1; +// var_r31->unk_02 = temp_r0; +// if (temp_r0 == 0) { +// var_r27->attr |= 1; +// } +// DCStoreRange(var_r31->unk_48, var_r31->unk_30 * 0x44); +// } + +void fn_1_DF44(omObjData *var_r30) +{ + M433PlayerWork3 *var_r31; + + var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M433PlayerWork3), MEMORY_DEFAULT_NUM); + var_r31 = var_r30->data; + memset(var_r31, 0, sizeof(M433PlayerWork3)); + var_r31->unk_00 = 0; + var_r31->unk_04 = -1; + var_r31->unk_08 = 0; + var_r31->unk_18 = var_r31->unk_1C = 0; + var_r31->unk_2C = var_r31->unk_30 = 0; + fn_1_E5C0(var_r31->unk_4C, &var_r31->unk_64); + var_r30->func = fn_1_E11C; +} + +// void fn_1_DFE4(void *arg0) +// { +// void *var_r31; +// void *var_r30; + +// var_r30 = arg0; +// var_r31 = var_r30->unk_5C; +// OSReport("\n"); +// OSReport("uGameEvent %d\n", var_r31->unk_00); +// OSReport("sWinGrp %d\n", var_r31->unk_04); +// OSReport("uServeGrp %d\n", var_r31->unk_08); +// OSReport("uPointGrp %d\n", var_r31->unk_0C); +// OSReport("auServeCel[2] %d,%d\n", var_r31->unk_10, var_r31->unk_14); +// OSReport("auEvents[2] %d,%d\n", var_r31->unk_18, var_r31->unk_1C); +// OSReport("uContactCnt %d\n", var_r31->unk_34); +// OSReport("sGroundGrp %d\n", var_r31->unk_38); +// OSReport("uContactGrp %d\n", var_r31->unk_3C); +// OSReport("sContactCel %d\n", var_r31->unk_40); +// OSReport(lbl_1_data_63E, var_r31->unk_44); +// OSReport("\n"); +// } + +// void fn_1_E11C(omObjData *arg0) +// { +// s32 sp8; +// s32 temp_r4; +// void *var_r31; +// u32 var_r30; +// s32 var_r29; +// s32 var_r28; +// s32 var_r27; +// s16 var_r26; +// s16 var_r25; +// omObjData *var_r24; +// u32 temp_r0; +// s32 temp_r0_2; + +// var_r24 = arg0; +// var_r31 = var_r24->data; +// sp8 = 0; +// var_r28 = 0; +// var_r31->unk_28++; +// var_r31->unk_4C = var_r31->unk_20; +// var_r31->unk_58 = var_r31->unk_24; +// if (fn_1_216C() >= 2) { +// fn_1_ECFC(var_r31 + 0x4C, var_r31 + 0x64); +// } +// temp_r0 = var_r31->unk_00; +// switch (temp_r0) { +// case 0: +// var_r31->unk_34 = 0; +// var_r31->unk_40 = -1; +// if (var_r31->unk_28 == 0xC) { +// fn_1_58D8(1); +// } +// if ((var_r31->unk_28 >= 30.0f) && (fn_1_216C() >= 2)) { +// var_r31->unk_00 = 1; +// var_r31->unk_28 = 0; +// var_r31->unk_1C = 1; +// var_r31->unk_18 = 1; +// } +// break; +// case 1: +// if (var_r31->unk_30 != 0) { +// var_r31->unk_48 = 0; +// var_r31->unk_40 = -1; +// var_r31->unk_34 = 0; +// var_r31->unk_00 = 2; +// var_r31->unk_28 = 0; +// var_r31->unk_1C = 3; +// var_r31->unk_18 = 3; +// if (var_r31->unk_44 != 0) { +// var_r26 = 5; +// } +// else { +// var_r26 = 6; +// } +// fn_1_58D8(var_r26); +// } +// break; +// case 2: +// case 5: +// if (var_r31->unk_30 != 0) { +// if (var_r31->unk_34 != 0) { +// var_r31->unk_48++; +// var_r31->unk_00 = 3; +// *(var_r31 + ((var_r31->unk_3C * 4) + 0x18)) = 4; +// if ((var_r31->unk_48 >= 6) && ((var_r31->unk_48 % 3) == 0)) { +// fn_1_58D8(3); +// } +// } +// var_r31->unk_28 = 0; +// } +// var_r28 = 1; +// break; +// case 3: +// case 4: +// if (var_r31->unk_30 != 0) { +// if (var_r31->unk_3C == var_r31->unk_44) { +// var_r31->unk_00 = 4; +// *(var_r31 + ((var_r31->unk_3C * 4) + 0x18)) = 5; +// } +// else { +// var_r31->unk_40 = -1; +// var_r31->unk_34 = 0; +// var_r31->unk_00 = 5; +// *(var_r31 + ((var_r31->unk_3C * 4) + 0x18)) = 3; +// if (var_r31->unk_44 != 0) { +// var_r25 = 5; +// } +// else { +// var_r25 = 6; +// } +// fn_1_58D8(var_r25); +// } +// var_r31->unk_28 = 0; +// } +// var_r28 = 1; +// break; +// case 6: +// if (var_r31->unk_28 >= 120.0f) { +// var_r31->unk_00 = 0; +// var_r31->unk_28 = 0; +// var_r31->unk_1C = 0; +// var_r31->unk_18 = 0; +// } +// break; +// } +// if ((var_r31->unk_2C != 0) && (var_r28 != 0)) { +// if (var_r31->unk_38 >= 0) { +// var_r30 = 1 - var_r31->unk_38; +// fn_1_58D8(1); +// } +// else { +// var_r30 = 1 - var_r31->unk_3C; +// fn_1_58D8(2); +// } +// var_r31->unk_0C = var_r30; +// temp_r4 = (var_r30 * 4) + 0x20; +// *(var_r31 + temp_r4) = *(var_r31 + temp_r4) + 1; +// if (var_r31->unk_08 != var_r30) { +// var_r31->unk_08 = var_r30; +// *(var_r31 + ((var_r31->unk_08 * 4) + 0x10)) = 1 - *(var_r31 + ((var_r31->unk_08 * 4) + 0x10)); +// } +// if (*(var_r31 + ((var_r30 * 4) + 0x20)) >= 5) { +// var_r31->unk_04 = var_r30; +// var_r31->unk_00 = 7; +// var_r31->unk_1C = 7; +// var_r31->unk_18 = 7; +// var_r27 = 0; +// for (var_r29 = 0; var_r29 < 4; var_r29++) { +// spC[var_r29] = -1; +// if (var_r31->unk_04 == lbl_1_bss_7D0[var_r29]->data->unk_14) { +// temp_r0_2 = var_r27; +// var_r27++; +// spC[temp_r0_2] = lbl_1_bss_7D0[var_r29]->work[0]; +// } +// } +// fn_1_219C(1, spC[0], sp10); +// fn_1_21E4(4); +// } +// else { +// var_r31->unk_00 = 6; +// var_r31->unk_1C = 6; +// var_r31->unk_18 = 6; +// fn_1_FE64(var_r31 + 0x64, var_r31->unk_20, var_r31->unk_24, var_r30); +// HuAudFXPlay(0x16); +// } +// var_r31->unk_28 = 0; +// } +// var_r31->unk_2C = 0; +// var_r31->unk_30 = 0; +// } + +void fn_1_E5C0(M433PlayerWork3SubStruct *var_r30, M433PlayerWork3SubStruct2 *var_r29) +{ + u32 var_r31; + s32 var_r28; + s32 var_r27; + + for (var_r28 = 0; var_r28 < 2; var_r28++, var_r30++) { + for (var_r31 = 0; var_r31 < 5; var_r31++) { + switch (lbl_1_data_674[var_r31]) { + case 0: + var_r30->unk_02[var_r31] = espEntry(lbl_1_data_680[var_r28], 1, 0); + espPriSet(var_r30->unk_02[var_r31], 0x100); + break; + case 1: + var_r30->unk_02[var_r31] = espEntry(0x610020, 1, 0); + espPriSet(var_r30->unk_02[var_r31], 0x101); + espColorSet(var_r30->unk_02[var_r31], 0, 0, 0); + espTPLvlSet(var_r30->unk_02[var_r31], 0.5); + break; + case 2: + var_r30->unk_02[var_r31] = espEntry(0x40000A, 1, 0); + espPriSet(var_r30->unk_02[var_r31], 0xFF); + break; + case 3: + var_r30->unk_02[var_r31] = espEntry(0x610033, 1, 0); + espPriSet(var_r30->unk_02[var_r31], 0xFF); + break; + } + espDispOff(var_r30->unk_02[var_r31]); + espDrawNoSet(var_r30->unk_02[var_r31], 0); + espAttrSet(var_r30->unk_02[var_r31], HUSPR_ATTR_NOANIM); + espAttrSet(var_r30->unk_02[var_r31], HUSPR_ATTR_LINEAR); + espPosSet(var_r30->unk_02[var_r31], lbl_1_data_6B0[var_r28].x + lbl_1_data_688[var_r31].x, + lbl_1_data_6B0[var_r28].y + lbl_1_data_688[var_r31].y); + } + } + HuDataDirClose(0x610000); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + for (var_r31 = 0; var_r31 < 0x14; var_r31++) { + for (var_r27 = 0; var_r27 < 2; var_r27++) { + // if (*(&lbl_1_data_6C0[var_r31 % 10] + (var_r27 * 4)) != 0) { + // *(var_r29 + ((var_r28 * 0x140) + (var_r31 * 0x10) + (var_r27 * 4) + 0xD0)) + // = espEntry(*(&lbl_1_data_6C0[var_r31 % 10] + (var_r27 * 4)), 2, 0); + // espAttrSet(*(var_r29 + ((var_r28 * 0x140) + (var_r31 * 0x10) + (var_r27 * 4) + 0xD0)), HUSPR_ATTR_LINEAR); + // espDispOff(*(var_r29 + ((var_r28 * 0x140) + (var_r31 * 0x10) + (var_r27 * 4) + 0xD0))); + // } + // else { + // *(var_r29 + ((var_r28 * 0x140) + (var_r31 * 0x10) + (var_r27 * 4) + 0xD0)) = -1; + // } + } + } + } + for (var_r27 = 0; var_r27 < 2; var_r27++) { + // if ((lbl_1_data_6C0 + (var_r27 * 4))->unk_A0 != 0) { + // var_r29->unk_490[var_r27] = espEntry((lbl_1_data_6C0 + (var_r27 * 4))->unk_A0, 2, 0); + // espAttrSet(var_r29->unk_490[var_r27], HUSPR_ATTR_LINEAR); + // espDispOff(var_r29->unk_490[var_r27]); + // } + // else { + // var_r29->unk_490[var_r27] = -1; + // } + } + for (var_r28 = 0; var_r28 < 2; var_r28++) { + // *(var_r29 + ((var_r28 * 0x2C) + 0x20)) = -1; + // *(var_r29 + ((var_r28 * 0x2C) + 0x22)) = -1; + } + var_r29->unk_78 = -1; + var_r29->unk_7A = -1; + var_r29->unk_A4 = -1; + var_r29->unk_A6 = -1; + HuDataDirClose(lbl_1_data_6C0->unk_00); +} + +// void fn_1_EA8C(void *arg0) +// { +// double var_f31; +// double var_f30; +// void *var_r31; +// s32 var_r30; + +// var_r31 = arg0; +// for (var_r30 = 0; var_r30 < 2; var_r30++) { +// if (*(var_r31 + (var_r30 * 2)) >= 0) { +// espDispOn(*(var_r31 + (var_r30 * 2))); +// var_f31 = (*(var_r31 + ((var_r30 * 4) + 4)) * var_r31->unk_1C) * cosd(var_r31->unk_28); +// var_f31 = var_f31; +// var_f30 = (*(var_r31 + ((var_r30 * 4) + 4)) * var_r31->unk_1C) * sind(var_r31->unk_28); +// var_f30 = var_f30; +// espPosSet(*(var_r31 + (var_r30 * 2)), var_r31->unk_0C + var_f31, var_r31->unk_10 + var_f30); +// espZRotSet(*(var_r31 + (var_r30 * 2)), var_r31->unk_28); +// espScaleSet(*(var_r31 + (var_r30 * 2)), var_r31->unk_1C, var_r31->unk_20); +// espTPLvlSet(*(var_r31 + (var_r30 * 2)), var_r31->unk_24); +// } +// } +// } + +// void fn_1_EBE4(s32 arg0, void *arg1, s32 arg2) +// { +// s32 var_r31; +// u32 var_r30; + +// var_r31 = arg2 % 10; +// var_r30 = arg2 / 10; +// if (var_r30 == 0) { +// arg1->unk_00 = *(arg0 + (var_r31 * 0x10)); +// arg1->unk_02 = -1; +// arg1->unk_04 = 0.0f; +// } +// else { +// arg1->unk_00 = *(arg0 + ((var_r30 + 0xA) * 0x10)); +// arg1->unk_02 = *(arg0 + (var_r31 * 0x10)); +// arg1->unk_04 = -23.039999f; +// arg1->unk_08 = 23.039999f; +// } +// arg1->unk_10 = 0.0f; +// arg1->unk_0C = 0.0f; +// arg1->unk_18 = 0.0f; +// arg1->unk_14 = 0.0f; +// arg1->unk_20 = 1.5f; +// arg1->unk_1C = 1.5f; +// arg1->unk_24 = 1.0f; +// arg1->unk_28 = 0.0f; +// } + +// void fn_1_ECFC(void *arg0, void *arg1) +// { +// s32 sp1C; +// u32 sp18; +// s32 sp14; +// u32 sp10; +// s32 spC; +// s32 sp8; +// float var_f31; +// float var_f30; +// float var_f29; +// float var_f28; +// double var_f27; +// double var_f26; +// double var_f25; +// double var_f24; +// double var_f23; +// double var_f22; +// double var_f21; +// double var_f20; +// void *var_r31; +// void *var_r30; +// void *var_r29; +// s32 var_r28; +// s32 var_r27; +// s32 var_r26; +// s32 var_r25; +// s32 var_r24; +// void *var_r23; +// s32 var_r22; +// u32 var_r21; +// s32 var_r20; +// s32 var_r19; +// u32 var_r18; +// s32 var_r17; +// s32 temp_r0; + +// var_r23 = arg0; +// var_r31 = arg1; +// var_r28 = 0; +// loop_5: +// if (var_r28 < 2) { +// for (var_r22 = 0; var_r22 < 5; var_r22++) { +// espDispOn(*(var_r23 + ((var_r22 * 2) + 2))); +// } +// espBankSet(var_r23->unk_08, var_r23->unk_00 / 10); +// espBankSet(var_r23->unk_0A, var_r23->unk_00 % 10); +// var_r28++; +// var_r23 += 0xC; +// goto loop_5; +// } +// var_f28 = 2.88f; +// if (var_r31->unk_1C == 0) { +// var_r30 = var_r31 + 0x20; +// } +// else { +// var_r30 = var_r31 + 0x4C; +// var_f28 = 2.88f * -1.0f; +// } +// temp_r0 = var_r31->unk_00; +// switch (temp_r0) { +// case 1: +// var_r19 = var_r31->unk_0C; +// var_r20 = var_r31->unk_0C % 10; +// var_r21 = var_r31->unk_0C / 10; +// if (var_r21 == 0) { +// var_r31->unk_20 = (var_r31 + (var_r20 * 0x10))->unk_D0; +// var_r31->unk_22 = -1; +// var_r31->unk_24 = 0.0f; +// } +// else { +// var_r31->unk_20 = (var_r31 + ((var_r21 + 0xA) * 0x10))->unk_D0; +// var_r31->unk_22 = (var_r31 + (var_r20 * 0x10))->unk_D0; +// var_r31->unk_24 = -23.039999f; +// var_r31->unk_28 = 23.039999f; +// } +// var_r31->unk_30 = 0.0f; +// var_r31->unk_2C = 0.0f; +// var_r31->unk_38 = 0.0f; +// var_r31->unk_34 = 0.0f; +// var_r31->unk_40 = 1.5f; +// var_r31->unk_3C = 1.5f; +// var_r31->unk_44 = 1.0f; +// var_r31->unk_48 = 0.0f; +// sp1C = var_r31->unk_10; +// var_r17 = sp1C % 10; +// var_r18 = sp1C / 10; +// if (var_r18 == 0) { +// var_r31->unk_4C = (var_r31 + (var_r17 * 0x10))->unk_210; +// var_r31->unk_4E = -1; +// var_r31->unk_50 = 0.0f; +// } +// else { +// var_r31->unk_4C = (var_r31 + ((var_r18 + 0xA) * 0x10))->unk_210; +// var_r31->unk_4E = (var_r31 + (var_r17 * 0x10))->unk_210; +// var_r31->unk_50 = -23.039999f; +// var_r31->unk_54 = 23.039999f; +// } +// var_r31->unk_5C = 0.0f; +// var_r31->unk_58 = 0.0f; +// var_r31->unk_64 = 0.0f; +// var_r31->unk_60 = 0.0f; +// var_r31->unk_6C = 1.5f; +// var_r31->unk_68 = 1.5f; +// var_r31->unk_70 = 1.0f; +// var_r31->unk_74 = 0.0f; +// sp14 = 0; +// sp18 = 0; +// if (sp18 == 0) { +// var_r31->unk_78 = (var_r31 + (sp14 * 0x10))->unk_490; +// var_r31->unk_7A = -1; +// var_r31->unk_7C = 0.0f; +// } +// else { +// var_r31->unk_78 = (var_r31 + ((sp18 + 0xA) * 0x10))->unk_490; +// var_r31->unk_7A = (var_r31 + (sp14 * 0x10))->unk_490; +// var_r31->unk_7C = -23.039999f; +// var_r31->unk_80 = 23.039999f; +// } +// var_r31->unk_88 = 0.0f; +// var_r31->unk_84 = 0.0f; +// var_r31->unk_90 = 0.0f; +// var_r31->unk_8C = 0.0f; +// var_r31->unk_98 = 1.5f; +// var_r31->unk_94 = 1.5f; +// var_r31->unk_9C = 1.0f; +// var_r31->unk_A0 = 0.0f; +// sp8 = *(var_r31 + ((var_r31->unk_1C * 4) + 0x14)); +// spC = sp8 % 10; +// sp10 = sp8 / 10; +// if (sp10 == 0) { +// var_r31->unk_A4 = (var_r31 + (spC * 0x10))->unk_350; +// var_r31->unk_A6 = -1; +// var_r31->unk_A8 = 0.0f; +// } +// else { +// var_r31->unk_A4 = (var_r31 + ((sp10 + 0xA) * 0x10))->unk_350; +// var_r31->unk_A6 = (var_r31 + (spC * 0x10))->unk_350; +// var_r31->unk_A8 = -23.039999f; +// var_r31->unk_AC = 23.039999f; +// } +// var_r31->unk_B4 = 0.0f; +// var_r31->unk_B0 = 0.0f; +// var_r31->unk_BC = 0.0f; +// var_r31->unk_B8 = 0.0f; +// var_r31->unk_C4 = 1.5f; +// var_r31->unk_C0 = 1.5f; +// var_r31->unk_C8 = 1.0f; +// var_r31->unk_CC = 0.0f; +// var_f30 = -48.0f; +// var_r31->unk_2C = 172.8f; +// var_r31->unk_30 = 360.0f - -48.0f; +// var_r31->unk_58 = 403.19998f; +// var_r31->unk_5C = 360.0f - -48.0f; +// var_r31->unk_84 = 288.0f; +// var_r31->unk_88 = 360.0f - -48.0f; +// var_r31->unk_9C = 0.0f; +// var_r31->unk_70 = 0.0f; +// var_r31->unk_44 = 0.0f; +// var_f30 = -48.0f / 19.199999f; +// var_r31->unk_38 = var_f30; +// var_r31->unk_64 = var_f30; +// var_r31->unk_90 = var_f30; +// var_r31->unk_B0 = 806.39996f; +// var_r31->unk_B4 = 144.0f; +// var_r31->unk_C0 = var_r31->unk_C0 + 0.5f; +// var_r31->unk_C4 = var_r31->unk_C4 - 0.5f; +// var_r31->unk_B8 = (403.19998f - var_r31->unk_B0) / 24.0f; +// var_r31->unk_BC = (360.0f - var_r31->unk_B4) / 24.0f; +// if (var_r31->unk_1C == 0) { +// var_r31->unk_B0 = -230.40001f; +// var_r31->unk_B8 = var_r31->unk_B8 * -1.0f; +// } +// var_r31->unk_00++; +// var_r31->unk_04 = 0; +// break; +// case 2: +// var_f31 = var_r31->unk_44; +// var_f31 += 0.055555556f; +// if (var_f31 > 0.95f) { +// var_f31 = 1.0f; +// } +// var_r31->unk_9C = var_f31; +// var_r31->unk_70 = var_f31; +// var_r31->unk_44 = var_f31; +// var_r31->unk_30 = var_r31->unk_30 + var_r31->unk_38; +// var_r31->unk_5C = var_r31->unk_5C + var_r31->unk_64; +// var_r31->unk_88 = var_r31->unk_88 + var_r31->unk_90; +// var_r31->unk_B0 = var_r31->unk_B0 + var_r31->unk_B8; +// var_r31->unk_B4 = var_r31->unk_B4 + var_r31->unk_BC; +// if (var_r31->unk_04 >= 19.199999f) { +// var_r30->unk_14 = var_f28; +// var_r30->unk_18 = -16.0f; +// var_r31->unk_00++; +// var_r31->unk_08 = 0; +// } +// break; +// case 3: +// if (var_r31->unk_04 <= 24.0f) { +// var_r31->unk_B0 = var_r31->unk_B0 + var_r31->unk_B8; +// var_r31->unk_B4 = var_r31->unk_B4 + var_r31->unk_BC; +// } +// if (var_r31->unk_08 < 24.0f) { +// var_r31->unk_08++; +// var_f31 = 33.75f * var_r31->unk_08; +// var_f29 = 0.041666668f * var_r31->unk_08; +// var_f29 = 0.5f * (1.0f - (var_f29 * var_f29)); +// if (var_r31->unk_08 == 24.0f) { +// var_f29 = 0.0f; +// } +// var_r31->unk_C0 = 1.5 + (var_f29 * cosd(var_f31)); +// var_r31->unk_C4 = 1.5 + (var_f29 * sind((var_f31 - 90.0f))); +// } +// var_r30->unk_1C = var_r31->unk_C4; +// var_r30->unk_20 = var_r31->unk_C0; +// var_r30->unk_0C = var_r30->unk_0C + var_r30->unk_14; +// var_r30->unk_10 = var_r30->unk_10 + var_r30->unk_18; +// var_r30->unk_18 = var_r30->unk_18 + 0.80000013f; +// var_r30->unk_28 = var_r30->unk_28 + 8.333334f; +// var_r30->unk_24 = var_r30->unk_24 - 0.017833335f; +// if (var_r30->unk_24 < 0.0f) { +// var_r30->unk_24 = 0.0f; +// } +// if (fn_1_10EA4() == 0) { +// var_r31->unk_00++; +// var_r31->unk_04 = 0; +// } +// break; +// case 4: +// var_f31 = var_r31->unk_C8; +// var_f31 -= 0.055555556f; +// if (var_f31 < 0.05f) { +// var_f31 = 0.0f; +// var_r31->unk_00++; +// var_r31->unk_04 = 0; +// } +// var_r31->unk_C8 = var_f31; +// var_r31->unk_9C = var_f31; +// var_r31->unk_70 = var_f31; +// var_r31->unk_44 = var_f31; +// break; +// default: +// for (var_r28 = 0; var_r28 < 2; var_r28++) { +// *(var_r31 + ((var_r28 * 0x2C) + 0x20)) = -1; +// *(var_r31 + ((var_r28 * 0x2C) + 0x22)) = -1; +// } +// var_r31->unk_78 = -1; +// var_r31->unk_7A = -1; +// var_r31->unk_A4 = -1; +// var_r31->unk_A6 = -1; +// var_r31->unk_00 = 0; +// break; +// } +// for (var_r28 = 0; var_r28 < 3; var_r28++) { +// var_r29 = (var_r28 * 0x140) + 0xD0; +// var_r29 += var_r31; +// var_r22 = 0; +// loop_60: +// if (var_r22 < 0x14) { +// if (var_r29->unk_00 >= 0) { +// espDispOff(var_r29->unk_00); +// } +// if (var_r29->unk_04 >= 0) { +// espDispOff(var_r29->unk_04); +// } +// var_r22++; +// var_r29 += 0x10; +// goto loop_60; +// } +// } +// var_r29 = var_r31 + 0x490; +// if (var_r29->unk_00 >= 0) { +// espDispOff(var_r29->unk_00); +// } +// if (var_r29->unk_04 >= 0) { +// espDispOff(var_r29->unk_04); +// } +// for (var_r27 = 0; var_r27 < 2; var_r27++) { +// if ((var_r31 + (var_r27 * 2))->unk_20 >= 0) { +// espDispOn((var_r31 + (var_r27 * 2))->unk_20); +// var_f26 = ((var_r31 + (var_r27 * 4))->unk_24 * var_r31->unk_3C) * cosd(var_r31->unk_48); +// var_f26 = var_f26; +// var_f27 = ((var_r31 + (var_r27 * 4))->unk_24 * var_r31->unk_3C) * sind(var_r31->unk_48); +// var_f27 = var_f27; +// espPosSet((var_r31 + (var_r27 * 2))->unk_20, var_r31->unk_2C + var_f26, var_r31->unk_30 + var_f27); +// espZRotSet((var_r31 + (var_r27 * 2))->unk_20, var_r31->unk_48); +// espScaleSet((var_r31 + (var_r27 * 2))->unk_20, var_r31->unk_3C, var_r31->unk_40); +// espTPLvlSet((var_r31 + (var_r27 * 2))->unk_20, var_r31->unk_44); +// } +// } +// for (var_r26 = 0; var_r26 < 2; var_r26++) { +// if ((var_r31 + (var_r26 * 2))->unk_4C >= 0) { +// espDispOn((var_r31 + (var_r26 * 2))->unk_4C); +// var_f24 = ((var_r31 + (var_r26 * 4))->unk_50 * var_r31->unk_68) * cosd(var_r31->unk_74); +// var_f24 = var_f24; +// var_f25 = ((var_r31 + (var_r26 * 4))->unk_50 * var_r31->unk_68) * sind(var_r31->unk_74); +// var_f25 = var_f25; +// espPosSet((var_r31 + (var_r26 * 2))->unk_4C, var_r31->unk_58 + var_f24, var_r31->unk_5C + var_f25); +// espZRotSet((var_r31 + (var_r26 * 2))->unk_4C, var_r31->unk_74); +// espScaleSet((var_r31 + (var_r26 * 2))->unk_4C, var_r31->unk_68, var_r31->unk_6C); +// espTPLvlSet((var_r31 + (var_r26 * 2))->unk_4C, var_r31->unk_70); +// } +// } +// for (var_r25 = 0; var_r25 < 2; var_r25++) { +// if ((var_r31 + (var_r25 * 2))->unk_78 >= 0) { +// espDispOn((var_r31 + (var_r25 * 2))->unk_78); +// var_f22 = ((var_r31 + (var_r25 * 4))->unk_7C * var_r31->unk_94) * cosd(var_r31->unk_A0); +// var_f22 = var_f22; +// var_f23 = ((var_r31 + (var_r25 * 4))->unk_7C * var_r31->unk_94) * sind(var_r31->unk_A0); +// var_f23 = var_f23; +// espPosSet((var_r31 + (var_r25 * 2))->unk_78, var_r31->unk_84 + var_f22, var_r31->unk_88 + var_f23); +// espZRotSet((var_r31 + (var_r25 * 2))->unk_78, var_r31->unk_A0); +// espScaleSet((var_r31 + (var_r25 * 2))->unk_78, var_r31->unk_94, var_r31->unk_98); +// espTPLvlSet((var_r31 + (var_r25 * 2))->unk_78, var_r31->unk_9C); +// } +// } +// for (var_r24 = 0; var_r24 < 2; var_r24++) { +// if ((var_r31 + (var_r24 * 2))->unk_A4 >= 0) { +// espDispOn((var_r31 + (var_r24 * 2))->unk_A4); +// var_f20 = ((var_r31 + (var_r24 * 4))->unk_A8 * var_r31->unk_C0) * cosd(var_r31->unk_CC); +// var_f20 = var_f20; +// var_f21 = ((var_r31 + (var_r24 * 4))->unk_A8 * var_r31->unk_C0) * sind(var_r31->unk_CC); +// var_f21 = var_f21; +// espPosSet((var_r31 + (var_r24 * 2))->unk_A4, var_r31->unk_B0 + var_f20, var_r31->unk_B4 + var_f21); +// espZRotSet((var_r31 + (var_r24 * 2))->unk_A4, var_r31->unk_CC); +// espScaleSet((var_r31 + (var_r24 * 2))->unk_A4, var_r31->unk_C0, var_r31->unk_C4); +// espTPLvlSet((var_r31 + (var_r24 * 2))->unk_A4, var_r31->unk_C8); +// } +// } +// var_r31->unk_04++; +// } + +// void fn_1_FE64(void *arg0, s32 arg1, s32 arg2, u32 arg3) +// { +// arg0->unk_00 = 1; +// arg0->unk_0C = arg0->unk_14; +// arg0->unk_10 = arg0->unk_18; +// arg0->unk_14 = arg1; +// arg0->unk_18 = arg2; +// arg0->unk_1C = arg3; +// } + +// void fn_1_FE8C(Vec *arg0, u32 arg1, u32 arg2, s32 arg3) +// { +// void *var_r31; +// void *var_r30; +// u32 var_r29; +// s32 var_r28; +// u32 var_r27; +// s32 var_r26; +// Vec *var_r25; + +// var_r25 = arg0; +// var_r29 = arg1; +// var_r27 = arg2; +// var_r26 = arg3; +// var_r31 = lbl_1_bss_7CC->data; +// var_r31->unk_18 = 0; +// if (var_r29 < 9) { +// var_r31->unk_18 = lbl_1_data_770[var_r29]; +// if (lbl_1_data_794[var_r29].unk_00 != 0) { +// var_r30 = lbl_1_bss_7C8->data; +// var_r30->unk_30 = 1; +// var_r30->unk_3C = var_r27; +// var_r30->unk_40 = var_r26; +// var_r30->unk_44 = var_r27; +// if (lbl_1_data_794[var_r29].unk_04 != 0) { +// var_r30->unk_44 = 1 - var_r30->unk_44; +// } +// if (lbl_1_data_794[var_r29].unk_08 != 0) { +// var_r30->unk_34++; +// } +// } +// } +// if (var_r29 == 5) { +// var_r28 = 6; +// if (var_r31->unk_6C == 5) { +// var_r28 = 7; +// } +// Hu3DModelPosSetV(lbl_1_bss_7CC->model[var_r28], var_r31 + 0x30); +// Hu3DModelAttrReset(lbl_1_bss_7CC->model[var_r28], HU3D_ATTR_DISPOFF); +// Hu3DMotionTimeSet(lbl_1_bss_7CC->model[var_r28], 0.0f); +// Hu3DMotionShapeTimeSet(lbl_1_bss_7CC->model[var_r28], 0.0f); +// } +// else if (var_r29 != 2) { +// var_r31->unk_A8 = 1.0f; +// } +// var_r31->unk_0C = 1; +// var_r31->unk_10 = 0; +// var_r31->unk_04 = 0; +// var_r31->unk_08 = 0; +// var_r31->unk_6C = var_r29; +// var_r31->unk_70 = var_r27; +// var_r31->unk_74 = var_r26; +// if (lbl_1_data_800[var_r29] != 0) { +// var_r31->unk_78 = lbl_1_data_800[var_r29]; +// } +// else if (var_r31->unk_78 != 0) { +// var_r31->unk_78--; +// } +// var_r31->unk_3C = var_r25->x; +// var_r31->unk_40 = var_r25->y; +// var_r31->unk_44 = var_r25->z; +// if (var_r29 == 0) { +// var_r31->unk_30 = var_r31->unk_3C; +// var_r31->unk_34 = var_r31->unk_40; +// var_r31->unk_38 = var_r31->unk_44; +// } +// var_r31->unk_F8 = 1.0f; +// var_r31->unk_F8 = 0.0f; +// } + +// void fn_1_10130(Vec *arg0, u32 arg1) +// { +// float var_f31; + +// var_f31 = 44.0f; +// if ((arg0->z - 44.0f) < -500.0f) { +// arg0->z = -500.0f + 44.0f; +// } +// else if ((arg0->z + 44.0f) > 500.0f) { +// arg0->z = 500.0f - 44.0f; +// } +// if (arg1 == 0) { +// arg0->x *= -1.0f; +// } +// if ((arg0->x - 44.0f) < 20.0f) { +// arg0->x = 20.0f + 44.0f; +// } +// else if ((arg0->x + 44.0f) > 800.0f) { +// arg0->x = 800.0f - 44.0f; +// } +// if (arg1 == 0) { +// arg0->x *= -1.0f; +// } +// } + +// void fn_1_10260(u32 arg0, s32 arg1, Vec *arg2, float arg8, float arg9) +// { +// s32 sp8; +// float var_f31; +// float var_f30; +// float var_f29; +// void *var_r31; +// u32 var_r30; +// Vec *var_r29; + +// var_f29 = arg8; +// var_f30 = arg9; +// var_r30 = arg0; +// sp8 = arg1; +// var_r29 = arg2; +// var_r31 = lbl_1_bss_7CC->data; +// if (var_f30 > 1.0f) { +// var_f30 = 1.0f; +// } +// if (var_r31->unk_94 == 0) { +// var_r31->unk_AC = 465.0f; +// var_r31->unk_B0 = 11.0f; +// var_r31->unk_B4 = 0.0f; +// if (var_r30 != 0) { +// var_r31->unk_AC = var_r31->unk_AC * -1.0f; +// } +// var_r31->unk_94 = 1; +// var_r31->unk_98 = 0; +// var_r31->unk_A4 = 0.0f; +// var_r31->unk_8C = 0; +// var_r31->unk_A8 = 1.0f; +// } +// if (sp8 != 0) { +// var_r31->unk_94 = 2; +// var_f30 *= 1.5f; +// } +// var_r31->unk_90 = 1; +// var_r31->unk_AC = var_r31->unk_AC + (0.01666666753590107 * (800.0 * (var_f30 * sind(var_f29)))); +// var_r31->unk_B4 = var_r31->unk_B4 + (0.01666666753590107 * (800.0 * (var_f30 * cosd(var_f29)))); +// if (var_r30 != 0) { +// var_r31->unk_AC = var_r31->unk_AC * -1.0f; +// } +// if (var_r31->unk_AC < 230.0f) { +// var_r31->unk_AC = 230.0f; +// } +// if (var_r30 != 0) { +// var_r31->unk_AC = var_r31->unk_AC * -1.0f; +// } +// var_f31 = 44.0f; +// if ((var_r31->unk_B4 - 44.0f) < -500.0f) { +// var_r31->unk_B4 = -500.0f + 44.0f; +// } +// else if ((var_r31->unk_B4 + 44.0f) > 500.0f) { +// var_r31->unk_B4 = 500.0f - 44.0f; +// } +// if ((1 - var_r30) == 0) { +// var_r31->unk_AC = var_r31->unk_AC * -1.0f; +// } +// if ((var_r31->unk_AC - 44.0f) < 20.0f) { +// var_r31->unk_AC = 20.0f + 44.0f; +// } +// else if ((var_r31->unk_AC + 44.0f) > 800.0f) { +// var_r31->unk_AC = 800.0f - 44.0f; +// } +// if ((1 - var_r30) == 0) { +// var_r31->unk_AC = var_r31->unk_AC * -1.0f; +// } +// var_r29->x = var_r31->unk_AC; +// var_r29->y = var_r31->unk_B0; +// var_r29->z = var_r31->unk_B4; +// } + +// s32 fn_1_10614(Vec *arg0) +// { +// float var_f31; +// double var_f30; +// double var_f29; +// void *var_r31; + +// var_r31 = lbl_1_bss_7CC->data; +// arg0->z = 0.0f; +// arg0->y = 0.0f; +// arg0->x = 0.0f; +// if (var_r31->unk_94 == 0) { +// return 0; +// } +// arg0->x = var_r31->unk_AC; +// arg0->y = var_r31->unk_B0; +// arg0->z = var_r31->unk_B4; +// var_f31 = arg0->x; +// var_f30 = fabs(var_f31); +// var_f29 = var_f30; +// arg0->x = var_f29; +// arg0->x -= 465.0f; +// arg0->x *= 0.004255319f; +// arg0->z *= 0.0028571428f; +// return 1; +// } + +// void fn_1_1070C(void) +// { +// void *var_r31; + +// var_r31 = lbl_1_bss_7CC->data; +// var_r31->unk_A8 = 1.0f; +// } + +// u32 fn_1_10740(Vec *arg0) +// { +// void *var_r31; +// u32 var_r30; + +// var_r31 = lbl_1_bss_7CC->data; +// arg0->x = var_r31->unk_3C; +// arg0->y = var_r31->unk_40; +// arg0->z = var_r31->unk_44; +// if (var_r31->unk_3C >= 0.0f) { +// var_r30 = 1; +// } +// else { +// var_r30 = 0; +// } +// return var_r30; +// } + +// u32 fn_1_107B0(Vec *arg0) +// { +// void *var_r31; +// u32 var_r30; + +// var_r31 = lbl_1_bss_7CC->data; +// if (var_r31->unk_94 != 0) { +// arg0->x = var_r31->unk_AC; +// arg0->y = var_r31->unk_B0; +// arg0->z = var_r31->unk_B4; +// } +// else { +// arg0->x = var_r31->unk_3C; +// arg0->y = var_r31->unk_40; +// arg0->z = var_r31->unk_44; +// } +// if (arg0->x >= 0.0f) { +// var_r30 = 1; +// } +// else { +// var_r30 = 0; +// } +// return var_r30; +// } + +// float fn_1_10848(void) +// { +// void *var_r31; + +// var_r31 = lbl_1_bss_7CC->data; +// return var_r31->unk_F8 - var_r31->unk_FC; +// } + +// float fn_1_10878(void) +// { +// void *var_r31; + +// var_r31 = lbl_1_bss_7CC->data; +// if (var_r31->unk_94 != 0) { +// return 1.5f; +// } +// return var_r31->unk_F8 - var_r31->unk_FC; +// } + +// u32 fn_1_108C4(void) +// { +// void *var_r31; + +// var_r31 = lbl_1_bss_7CC->data; +// if (var_r31->unk_94 != 0) { +// return var_r31->unk_98; +// } +// return 0x2710; +// } + +// u32 fn_1_10900(void) +// { +// void *var_r31; + +// var_r31 = lbl_1_bss_7CC->data; +// return var_r31->unk_8C; +// } + +// float fn_1_10928(float arg8) +// { +// float sp8; +// double var_f31; +// float var_f30; +// float var_f29; +// float var_f28; +// float var_f27; +// float var_f26; +// void *var_r31; +// void *var_r30; + +// var_r30 = lbl_1_bss_7CC->data; +// var_r31 = var_r30 + 0xF8; +// var_f28 = 1.0f / var_r31->unk_24; +// var_f30 = -var_r31->unk_20 * var_f28; +// var_f26 = var_r31->unk_30 + ((var_f30 * (0.5f * var_r31->unk_24 * var_f30)) + (var_r31->unk_20 * var_f30)); +// if (arg8 > var_f26) { +// return -1.0f; +// } +// var_f29 = (var_r31->unk_20 * var_r31->unk_20) - (2.0f * var_r31->unk_24 * (var_r31->unk_30 - arg8)); +// if (var_f29 > 0.0f) { +// var_f31 = __frsqrte(var_f29); +// var_f31 = 0.5 * var_f31 * (3.0 - (var_f29 * (var_f31 * var_f31))); +// var_f31 = 0.5 * var_f31 * (3.0 - (var_f29 * (var_f31 * var_f31))); +// var_f31 = 0.5 * var_f31 * (3.0 - (var_f29 * (var_f31 * var_f31))); +// sp8 = var_f29 * var_f31; +// var_f27 = sp8; +// } +// else { +// var_f27 = var_f29; +// } +// var_f30 = var_f28 * (-var_r31->unk_20 - var_f27); +// var_f30 -= var_r31->unk_04; +// return var_f30; +// } + +// float fn_1_10B20(float arg8, Vec *arg0) +// { +// Vec sp20; +// Vec sp14; +// float sp10; +// float spC; +// float sp8; +// float var_f31; +// float var_f30; +// float var_f29; +// float var_f28; +// float var_f27; +// void *var_r31; +// Vec *var_r30; +// void *var_r29; + +// var_f27 = arg8; +// var_r30 = arg0; +// var_r29 = lbl_1_bss_7CC->data; +// var_r31 = var_r29 + 0xF8; +// var_f30 = var_r31->unk_04; +// var_f31 = var_f30 + var_f27; +// if (var_f31 < 0.0f) { +// var_f31 = 0.0f; +// } +// if (var_f31 > var_r31->unk_00) { +// var_f31 = var_r31->unk_00; +// } +// var_r31->unk_04 = var_f31; +// if (var_r31->unk_10 > 0.0f) { +// PSVECSubtract(var_r31 + 0x38, var_r31 + 0x2C, &sp14); +// sp14.y = 0.0f; +// PSVECNormalize(&sp14, &sp14); +// } +// else { +// sp14.z = 0.0f; +// sp14.y = 0.0f; +// sp14 = 0.0f; +// } +// sp8 = var_r30->x; +// spC = var_r30->y; +// sp10 = var_r30->z; +// var_f29 = (var_f31 * (0.5f * var_r31->unk_18 * var_f31)) + (var_r31->unk_14 * var_f31); +// var_f28 = (var_f31 * (0.5f * var_r31->unk_24 * var_f31)) + (var_r31->unk_20 * var_f31); +// var_r30->x = var_r31->unk_2C + (sp14 * var_f29); +// var_r30->y = var_r31->unk_30 + var_f28; +// var_r30->z = var_r31->unk_34 + (sp14.z * var_f29); +// PSVECSubtract(var_r30, &sp8, &sp20); +// var_r31->unk_04 = var_f30; +// return var_f30 + var_f27; +// } + +// s32 fn_1_10D24(Vec *arg0) +// { +// Vec sp18; +// s32 sp14; +// s32 sp10; +// float spC; +// Vec *sp8; +// float var_f31; +// float var_f30; +// double var_f29; +// double var_f28; +// void *var_r31; +// void *var_r30; + +// sp8 = arg0; +// var_r31 = lbl_1_bss_7CC->data; +// var_r30 = lbl_1_bss_7CC->data; +// if (var_r30->unk_94 != 0) { +// spC = var_r30->unk_AC; +// sp10 = var_r30->unk_B0; +// sp14 = var_r30->unk_B4; +// } +// else { +// spC = var_r30->unk_3C; +// sp10 = var_r30->unk_40; +// sp14 = var_r30->unk_44; +// } +// PSVECSubtract(&spC, var_r31 + 0x30, &sp18); +// if ((spC * var_r31->unk_30) >= 0.0f) { +// return 0; +// } +// if ((var_r31->unk_30 == 0.0f) || (sp18 == 0.0f)) { +// return 0; +// } +// var_f30 = var_r31->unk_30 / sp18; +// var_f29 = fabs(var_f30); +// var_f28 = var_f29; +// var_f31 = var_f28; +// PSVECScale(&sp18, &sp18, var_f31); +// PSVECAdd(var_r31 + 0x30, &sp18, sp8); +// return 1; +// } + +// u32 fn_1_10EA4(void) +// { +// void *var_r31; + +// var_r31 = lbl_1_bss_7C8->data; +// return *var_r31; +// } + +// u32 fn_1_10ECC(u32 arg0) +// { +// void *var_r31; + +// var_r31 = lbl_1_bss_7C8->data; +// return *(var_r31 + (((arg0 & 1) * 4) + 0x18)); +// } + +// s32 fn_1_10F00(u32 arg0) +// { +// void *var_r31; + +// var_r31 = lbl_1_bss_7C8->data; +// return (arg0 & 1) == var_r31->unk_08; +// } + +// u32 fn_1_10F38(u32 arg0) +// { +// void *var_r31; + +// var_r31 = lbl_1_bss_7C8->data; +// return *(var_r31 + (((arg0 & 1) * 4) + 0x10)); +// } + +// s32 fn_1_10F6C(u32 arg0) +// { +// void *var_r31; + +// var_r31 = lbl_1_bss_7C8->data; +// return (arg0 & 1) == var_r31->unk_0C; +// } + +// s32 fn_1_10FA4(s32 arg0) +// { +// void *var_r31; + +// var_r31 = lbl_1_bss_7C8->data; +// return (arg0 & 1) == var_r31->unk_04; +// } + +// u32 fn_1_10FDC(void) +// { +// void *var_r31; + +// var_r31 = lbl_1_bss_7C8->data; +// return var_r31->unk_34; +// } + +// s32 fn_1_11004(u32 arg0, s32 arg1) +// { +// void *var_r31; +// s32 var_r30; + +// var_r31 = lbl_1_bss_7C8->data; +// var_r30 = 0; +// if ((var_r31->unk_3C == (arg0 & 1)) && (var_r31->unk_40 == (arg1 & 1))) { +// var_r30 = 1; +// } +// return var_r30 == 0; +// } + +// s32 fn_1_11060(u32 arg0) +// { +// void *var_r31; + +// var_r31 = lbl_1_bss_7C8->data; +// return (arg0 & 1) == var_r31->unk_3C; +// } + +// float fn_1_11098(Vec *arg0, Vec *arg1, Vec *arg2) +// { +// Vec sp10; +// Vec *spC; +// Vec *sp8; +// float var_f31; +// float var_f30; +// Vec *var_r31; + +// sp8 = arg0; +// spC = arg1; +// var_r31 = arg2; +// PSVECSubtract(spC, sp8, &sp10); +// var_f31 = PSVECDotProduct(&sp10, var_r31); +// var_f30 = -PSVECSquareMag(var_r31); +// if (var_f30 != 0.0f) { +// var_f31 /= var_f30; +// } +// return var_f31; +// } + +// float fn_1_11130(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) +// { +// float sp3C; +// float sp38; +// float sp34; +// Vec sp28; +// Vec sp1C; +// Vec sp10; +// Vec *spC; +// Vec *sp8; +// float var_f31; +// float var_f30; +// float var_f29; +// float var_f28; +// Vec *var_r31; +// Vec *var_r30; + +// var_r31 = arg0; +// sp8 = arg1; +// var_r30 = arg2; +// spC = arg3; +// PSVECSubtract(sp8, var_r31, &sp28); +// PSVECSubtract(spC, var_r30, &sp1C); +// PSVECSubtract(&sp28, &sp1C, &sp28); +// if (PSVECMag(&sp28) <= 0.0f) { +// sp34 = var_r31->x; +// sp38 = var_r31->y; +// sp3C = var_r31->z; +// } +// else { +// PSVECSubtract(var_r31, var_r30, &sp10); +// var_f30 = PSVECDotProduct(&sp10, &sp28); +// var_f29 = -PSVECSquareMag(&sp28); +// if (var_f29 != 0.0f) { +// var_f30 /= var_f29; +// } +// var_f28 = var_f30; +// var_f31 = var_f28; +// if (var_f31 < 0.0f) { +// var_f31 = 0.0f; +// } +// else if (var_f31 > 1.0f) { +// var_f31 = 1.0f; +// } +// PSVECScale(&sp28, &sp1C, var_f31); +// PSVECAdd(var_r31, &sp1C, &sp34); +// } +// PSVECSubtract(var_r30, &sp34, &sp28); +// return (bitwise s32)PSVECMag(&sp28); +// } diff --git a/src/REL/m434Dll/player.c b/src/REL/m434Dll/player.c index c2dd1f93..e08b307e 100644 --- a/src/REL/m434Dll/player.c +++ b/src/REL/m434Dll/player.c @@ -1,6 +1,7 @@ #include "game/audio.h" #include "game/chrman.h" #include "game/hsfman.h" +#include "game/hsfdraw.h" #include "game/hsfmotion.h" #include "game/object.h" #include "game/objsub.h" From ac43740d3dfb471b95b4d6a30259c3da29fd2a32 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Tue, 14 Jan 2025 15:57:30 -0800 Subject: [PATCH 256/311] Matched msmse (US) (#531) --- configure.py | 2 +- include/game/msm.h | 4 +- include/msm/msmse.h | 2 +- src/msm/msmse.c | 171 +++++++++++++++++++++++++++++++++++++++----- 4 files changed, 157 insertions(+), 22 deletions(-) diff --git a/configure.py b/configure.py index e6026c86..9115554a 100644 --- a/configure.py +++ b/configure.py @@ -842,7 +842,7 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmmem.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmfio.c"), Object(NonMatching, "msm/msmmus.c"), - Object(NonMatching, "msm/msmse.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmse.c"), Object(NonMatching, "msm/msmstream.c"), ], }, diff --git a/include/game/msm.h b/include/game/msm.h index 030dd77c..6a11b94a 100644 --- a/include/game/msm.h +++ b/include/game/msm.h @@ -12,6 +12,7 @@ #define MSM_SEPARAM_AUXVOLA (1 << 4) #define MSM_SEPARAM_AUXVOLB (1 << 5) #define MSM_SEPARAM_POS (1 << 6) +#define MSM_SEPARAM_PAD (1 << 7) #define MSM_LISTENER_NONE 0 #define MSM_LISTENER_STARTDIS (1 << 0) @@ -50,6 +51,7 @@ #define MSM_ERR_64 -100 #define MSM_ERR_65 -101 #define MSM_ERR_GRP_NOTLOADED -103 +#define MSM_ERR_6E -110 #define MSM_ERR_6F -111 #define MSM_ERR_INVALIDID -120 #define MSM_ERR_INVALIDFILE -121 @@ -138,7 +140,7 @@ typedef struct msmSe_s { u8 span; u8 reverb; u8 chorus; - u8 doppler; + s8 doppler; s8 comp; u8 pad[3]; } MSMSE; diff --git a/include/msm/msmse.h b/include/msm/msmse.h index e017f67e..383a3ebb 100644 --- a/include/msm/msmse.h +++ b/include/msm/msmse.h @@ -19,7 +19,7 @@ s32 msmSeSetParam(int seNo, MSM_SEPARAM* param); void msmSePauseAll(BOOL pause, s32 speed); void msmSeStopAll(BOOL checkGrp, s32 speed); s32 msmSeStop(int seNo, s32 speed); -int msmSePlay(int seId, MSM_SEPARAM *param); +int msmSePlay(int seId, MSM_SEPARAM* param); s32 msmSeInit(sysData* arg0, DVDFileInfo* arg1); #endif diff --git a/src/msm/msmse.c b/src/msm/msmse.c index 6582a572..33c906ab 100755 --- a/src/msm/msmse.c +++ b/src/msm/msmse.c @@ -326,15 +326,14 @@ void msmSeSetMasterVolume(s32 arg0) { s32 msmSeSetParam(int seNo, MSM_SEPARAM* param) { msmSeStruct00* var_r31; - s32 temp_r3; - s32 var_r0; + int temp_r3; s32 var_r4; var_r31 = msmSeGetStatus_inline(seNo); if (var_r31 == NULL) { return MSM_ERR_6F; } - if (param->flag & 1) { + if (param->flag & MSM_SEPARAM_VOL) { var_r31->unk0B = 1; var_r31->unk0C = param->vol; if (!(var_r31->unk13 & 1) || var_r31->unkB4 != 1) { @@ -343,19 +342,18 @@ s32 msmSeSetParam(int seNo, MSM_SEPARAM* param) { var_r31->unk0B = 0; } if (!(var_r31->unk13 & 1)) { - if (param->flag & 2) { + if (param->flag & MSM_SEPARAM_PAN) { var_r31->unk0D = param->pan; - temp_r3 = var_r31->unk0D + var_r31->unk31 - 0x40; // TODO: inline? - var_r0 = temp_r3; + temp_r3 = var_r31->unk0D + var_r31->unk31 - 0x40; if (temp_r3 < 0) { - var_r0 = 0; + temp_r3 = 0; } - if (var_r0 > 0x7F) { - var_r0 = 0x7F; + if (temp_r3 > 0x7F) { + temp_r3 = 0x7F; } - sndFXPanning(var_r31->unk00, var_r0); + sndFXPanning(var_r31->unk00, temp_r3); } - if (param->flag & 4) { + if (param->flag & MSM_SEPARAM_PITCH) { var_r31->unk0E = param->pitch; var_r4 = var_r31->unk0E + var_r31->unk32 + 0x2000; if (var_r4 < 0) { @@ -366,13 +364,13 @@ s32 msmSeSetParam(int seNo, MSM_SEPARAM* param) { } sndFXPitchBend(var_r31->unk00, var_r4); } - if (param->flag & 8) { + if (param->flag & MSM_SEPARAM_SPAN) { var_r31->unk10 = param->span; sndFXSurroundPanning(var_r31->unk00, var_r31->unk10); } } else if (var_r31->unkB4 == 1) { var_r31->unk00 = sndEmitterVoiceID(&var_r31->unk4C); - if (param->flag & 0x40) { + if (param->flag & MSM_SEPARAM_POS) { var_r31->unk0B = 1; var_r31->unkA8.x = param->pos.x - var_r31->unk9C.x; var_r31->unkA8.y = param->pos.y - var_r31->unk9C.y; @@ -384,15 +382,15 @@ s32 msmSeSetParam(int seNo, MSM_SEPARAM* param) { var_r31->unk0B = 0; } } - if (param->flag & 0x10) { + if (param->flag & MSM_SEPARAM_AUXVOLA) { var_r31->unk11 = param->auxAVol; sndFXReverb(var_r31->unk00, var_r31->unk11); } - if (param->flag & 0x20) { + if (param->flag & MSM_SEPARAM_AUXVOLB) { var_r31->unk12 = param->auxBVol; sndFXChorus(var_r31->unk00, var_r31->unk12); } - if (param->flag & 0x80) { + if (param->flag & MSM_SEPARAM_PAD) { sndSendMessage(var_r31->unk00, param->pad); } return 0; @@ -465,7 +463,6 @@ s32 msmSeStop(int seNo, s32 speed) { return MSM_ERR_6F; } var_r31->unk0B = 1; - // TODO: this pattern could be an inline. var_r31->unk34 = speed / 15; if (var_r31->unk34 != 0) { var_r31->unk38 = var_r31->unk34; @@ -482,8 +479,144 @@ s32 msmSeStop(int seNo, s32 speed) { return 0; } -// TODO: https://decomp.me/scratch/uhYSL -// msmSePlay +static inline BOOL msmSeInline00(msmSeStruct02* arg0, msmSeStruct00* arg1, MSM_SEPARAM* param) { + BOOL var_r0 = FALSE; + + if (param != NULL) { + if (param->flag & MSM_SEPARAM_VOL) { + arg1->unk0C = param->vol; + } + if (param->flag & MSM_SEPARAM_PAN) { + arg1->unk0D = param->pan; + } + if (param->flag & MSM_SEPARAM_PITCH) { + arg1->unk0E = param->pitch; + } + if (param->flag & MSM_SEPARAM_SPAN) { + arg1->unk10 = param->span; + } + if (param->flag & MSM_SEPARAM_AUXVOLA) { + arg1->unk11 = param->auxAVol; + } + if (param->flag & MSM_SEPARAM_AUXVOLB) { + arg1->unk12 = param->auxBVol; + } + if ((param->flag & MSM_SEPARAM_POS) && arg0->unkDA != 0) { + var_r0 = TRUE; + } + } + arg1->unk14.paraArray = arg1->unk1C; + return var_r0; +} + +int msmSePlay(int seId, MSM_SEPARAM* param) { + msmSeStruct00* var_r30; + SND_EMITTER* var_r29; + msmSeStruct02* se_ptr = &se; + MSMSE* temp_r9; + int var_r3_2; + s32 var_r4; + s32 var_r6; + s32 var_r6_2; + + if (seId < 0 || seId >= se.unk00) { + return MSM_ERR_INVALIDID; + } + temp_r9 = &se.unk0C[seId]; + if (temp_r9->groupId == 0xFFFF) { + return MSM_ERR_REMOVEDID; + } + for (var_r6 = 0; var_r6 < se.unk04; var_r6++) { + var_r30 = &se.unk10[var_r6]; + if (var_r30->unk0A == 0) { + break; + } + } + if (var_r6 == se.unk04) { + return MSM_ERR_6E; + } + var_r30->unk30 = temp_r9->vol; + var_r30->unk31 = temp_r9->pan; + var_r30->unk32 = temp_r9->pitchBend; + var_r30->unk0C = 0x7F; + var_r30->unk0D = 0x40; + var_r30->unk10 = temp_r9->span; + var_r30->unk0E = 0; + var_r30->unk11 = temp_r9->reverb; + var_r30->unk12 = temp_r9->chorus; + var_r30->unk40 = 0; + var_r30->unk34 = 0; + var_r30->unk48 = 0x7F; + var_r30->unk3C = 0x7F; + var_r30->unkB4 = 0; + if (msmSeInline00(se_ptr, var_r30, param)) { + var_r30->unk9C.x = param->pos.x; + var_r30->unk9C.y = param->pos.y; + var_r30->unk9C.z = param->pos.z; + var_r30->unk1C[0].ctrl = SND_MIDICTRL_REVERB; + var_r30->unk1C[0].paraData.value7 = var_r30->unk11; + var_r30->unk1C[1].ctrl = SND_MIDICTRL_CHORUS; + var_r30->unk1C[1].paraData.value7 = var_r30->unk12; + var_r30->unk14.numPara = 2; + var_r30->unkA8.x = var_r30->unkA8.y = var_r30->unkA8.z = 0.0f; + if (temp_r9->doppler == 1) { + var_r29 = &var_r30->unk4C; + var_r6_2 = 9; + } else { + var_r29 = NULL; + var_r6_2 = 8; + } + var_r30->unkB4 = temp_r9->doppler; + var_r30->unk00 = sndAddEmitterParaEx(var_r29, &var_r30->unk9C, &var_r30->unkA8, se_ptr->unkD4, temp_r9->comp / 127.0f, var_r6_2, temp_r9->fxId, se_ptr->unkD8++, var_r30->unk0C * var_r30->unk30 / 127, 0, NULL, &var_r30->unk14); + if (var_r29 != NULL) { + if (!sndCheckEmitter(var_r29)) { + return MSM_ERR_PLAYFAIL; + } + } else { + if (var_r30->unk00 == -1) { + return MSM_ERR_PLAYFAIL; + } + } + var_r30->unk13 |= 1; + } else { + var_r30->unk1C[0].ctrl = SND_MIDICTRL_VOLUME; + var_r30->unk1C[0].paraData.value14 = (var_r30->unk0C * var_r30->unk30 / 127) * 0x81; + var_r4 = var_r30->unk0D + var_r30->unk31 - 0x40; + if (var_r4 < 0) { + var_r4 = 0; + } + if (var_r4 > 0x7F) { + var_r4 = 0x7F; + } + var_r30->unk1C[1].ctrl = SND_MIDICTRL_PANNING; + var_r30->unk1C[1].paraData.value14 = var_r4 * 0x81; + var_r30->unk1C[2].ctrl = SND_MIDICTRL_REVERB; + var_r30->unk1C[2].paraData.value7 = var_r30->unk11; + var_r30->unk1C[3].ctrl = SND_MIDICTRL_CHORUS; + var_r30->unk1C[3].paraData.value7 = var_r30->unk12; + var_r3_2 = var_r30->unk0E + var_r30->unk32 + 0x2000; + if (var_r3_2 > 0x3FFF) { + var_r3_2 = 0x3FFF; + } else if (var_r3_2 < 0) { + var_r3_2 = 0; + } + var_r30->unk1C[4].ctrl = SND_MIDICTRL_PITCHBEND; + var_r30->unk1C[4].paraData.value14 = var_r3_2; + var_r30->unk14.numPara = 5; + var_r30->unk00 = sndFXStartParaInfo(temp_r9->fxId, 0xFF, 0xFF, 0, &var_r30->unk14); + if (var_r30->unk00 == -1) { + return MSM_ERR_PLAYFAIL; + } + sndFXSurroundPanning(var_r30->unk00, var_r30->unk10); + var_r30->unk13 &= ~1; + } + var_r30->unk0B = 1; + var_r30->unk08 = seId; + var_r30->unk04 = se_ptr->unk08++; + var_r30->unk0A = 2; + var_r30->unk0B = 0; + return var_r30->unk04; +} s32 msmSeInit(sysData* arg0, DVDFileInfo* arg1) { s32 temp_r29; From 897ff7b281fddd45459eefd6d3d38e36b9a5d9bd Mon Sep 17 00:00:00 2001 From: mrshigure Date: Wed, 15 Jan 2025 05:49:34 -0800 Subject: [PATCH 257/311] Fully matched msm (US) (#532) --- configure.py | 4 +- include/game/msm.h | 1 + include/msm/msmmus.h | 2 - include/msm/msmse.h | 2 - include/msm/msmstream.h | 16 +- include/msm/msmsys.h | 21 +- src/msm/msmmem.c | 3 - src/msm/msmmus.c | 144 +++++- src/msm/msmse.c | 55 +- src/msm/msmstream.c | 1057 +++++++++++++++++++++++++++++++++++++++ src/msm/msmsys.c | 2 - 11 files changed, 1252 insertions(+), 55 deletions(-) create mode 100755 src/msm/msmstream.c diff --git a/configure.py b/configure.py index 9115554a..83d74200 100644 --- a/configure.py +++ b/configure.py @@ -841,9 +841,9 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmsys.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmmem.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmfio.c"), - Object(NonMatching, "msm/msmmus.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmmus.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmse.c"), - Object(NonMatching, "msm/msmstream.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "msm/msmstream.c"), ], }, { diff --git a/include/game/msm.h b/include/game/msm.h index 6a11b94a..e7ae2ae2 100644 --- a/include/game/msm.h +++ b/include/game/msm.h @@ -58,6 +58,7 @@ #define MSM_ERR_REMOVEDID -122 #define MSM_ERR_MUSGRP_NOTLOADED -123 #define MSM_ERR_OUTOFMUS -130 +#define MSM_ERR_8C -140 #define MSM_VOL_MAX 127 #define MSM_PAN_LEFT 32 diff --git a/include/msm/msmmus.h b/include/msm/msmmus.h index a6951063..6428b067 100644 --- a/include/msm/msmmus.h +++ b/include/msm/msmmus.h @@ -4,8 +4,6 @@ #include "game/msm.h" #include "msm/msmsys.h" -#include "dolphin.h" - void msmMusFdoutEnd(void); void msmMusPeriodicProc(void); s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl); diff --git a/include/msm/msmse.h b/include/msm/msmse.h index 383a3ebb..feb1e462 100644 --- a/include/msm/msmse.h +++ b/include/msm/msmse.h @@ -4,8 +4,6 @@ #include "game/msm.h" #include "msm/msmsys.h" -#include "dolphin.h" - void msmSePeriodicProc(void); MSMSE* msmSeGetIndexPtr(s32 arg0); void msmSeDelListener(void); diff --git a/include/msm/msmstream.h b/include/msm/msmstream.h index d1818803..fb1bd9cd 100644 --- a/include/msm/msmstream.h +++ b/include/msm/msmstream.h @@ -1,12 +1,22 @@ #ifndef MSMSTREAM_H #define MSMSTREAM_H -#include "dolphin/types.h" +#include "game/msm.h" +s32 msmStreamGetStatus(int streamNo); +void msmStreamSetMasterVolume(s32 arg0); +void msmStreamStopAll(s32 speed); +s32 msmStreamStop(int streamNo, s32 speed); +int msmStreamPlay(int streamId, MSM_STREAMPARAM* streamParam); void msmStreamPeriodicProc(void); -void msmStreamSetOutputMode(s32); +void msmStreamSetOutputMode(s32 arg0); void msmStreamAmemFree(void); s32 msmStreamAmemAlloc(void); -s32 msmStreamInit(char *); +s32 msmStreamInit(char* arg0); +void msmStreamPauseOff(s32 arg0); +void msmStreamPauseOn(s32 streamNo, s32 arg1); +s32 msmStreamPackStartStereo(s32 arg0, MSM_STREAMPARAM* arg1, s32 arg2); +s32 msmStreamPackStartMono(s32 arg0, MSM_STREAMPARAM* arg1, s32 arg2); +void msmStreamSlotOff(s32 streamNo); #endif diff --git a/include/msm/msmsys.h b/include/msm/msmsys.h index ffd86bae..3ed5e134 100755 --- a/include/msm/msmsys.h +++ b/include/msm/msmsys.h @@ -1,7 +1,7 @@ #ifndef MSMSYS_H #define MSMSYS_H -#include "musyx/musyx.h" +#include "game/msm.h" // TODO remove, only for decomp #include "dolphin.h" @@ -167,4 +167,23 @@ typedef struct _sysData { s32 unk4F8; } sysData; +s32 msmSysSearchGroupStack(s32 arg0, s32 arg1); +s32 msmSysGroupInit(DVDFileInfo *arg0); +void msmSysIrqDisable(void); +void msmSysIrqEnable(void); +BOOL msmSysCheckBaseGroup(s32 arg0); +void *msmSysGetGroupDataPtr(s32 arg0); +BOOL msmSysCheckLoadGroupID(s32 arg0); +void msmSysRegularProc(void); +s32 msmSysGetOutputMode(void); +s32 msmSysSetOutputMode(SND_OUTPUTMODE mode); +s32 msmSysSetAux(s32 arg0, s32 arg1); +s32 msmSysGetSampSize(BOOL baseGrp); +s32 msmSysDelGroupAll(void); +s32 msmSysDelGroupBase(s32 grpNum); +s32 msmSysLoadGroupBase(s32 arg0, void *arg1); +s32 msmSysLoadGroupSet(s32 arg0, void *arg1); +void msmSysCheckInit(void); +s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram); + #endif diff --git a/src/msm/msmmem.c b/src/msm/msmmem.c index e8d52a88..cbe6e2be 100644 --- a/src/msm/msmmem.c +++ b/src/msm/msmmem.c @@ -54,15 +54,12 @@ void msmMemFree(void* arg0) { } void* msmMemAlloc(u32 arg0) { - unkMemStruct* memC; s32 temp_r0; u32 var_r5; u32 var_r7; unkStruct* temp_r5; unkStruct* var_r8; unkStruct* temp_r9; - unkStruct* temp_r6; - unkStruct* temp_r4; var_r7 = arg0 + 0x20; temp_r0 = var_r7 & 0x1F; diff --git a/src/msm/msmmus.c b/src/msm/msmmus.c index 8f87e7a5..3b70662d 100755 --- a/src/msm/msmmus.c +++ b/src/msm/msmmus.c @@ -1,4 +1,5 @@ #include "msm/msmmus.h" +#include "msm/msmmem.h" typedef struct { /* 0x00 */ s16 unk00; @@ -51,6 +52,11 @@ typedef struct { /* 0x01C */ char unk70[0x108]; } msmMusStruct02; // Size 0x178 +typedef struct { + /* 0x00 */ char unk00[0xC]; + /* 0x0C */ s32 unk0C; +} UnkGroupDataPtr; // Size unknown + static msmMusStruct02 mus; static void msmMusPauseSub(msmMusStruct00* arg0, BOOL pause, s32 speed) { @@ -199,13 +205,11 @@ s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl) { } s32 msmMusGetNumPlay(BOOL baseGrp) { - msmMusStruct02* mus_ptr = &mus; - switch (baseGrp) { case FALSE: - return mus_ptr->unk03 + mus_ptr->unk04; + return mus.unk03 + mus.unk04; default: - return mus_ptr->unk03; + return mus.unk03; } } @@ -227,7 +231,7 @@ s32 msmMusSetParam(s32 arg0, MSM_MUSPARAM* arg1) { return MSM_ERR_OUTOFMUS; } temp_r31 = &mus.unk18[arg0]; - if (arg1->flag & 2) { + if (arg1->flag & MSM_MUSPARAM_VOL) { temp_r31->unk2C = arg1->fadeSpeed / 15; if (temp_r31->unk2C != 0) { temp_r31->unk05 = 1; @@ -240,7 +244,7 @@ s32 msmMusSetParam(s32 arg0, MSM_MUSPARAM* arg1) { sndSeqVolume(temp_r31->unk02 * temp_r31->unk03 * temp_r31->unk1C * temp_r31->unk28 / 2048383, 0, temp_r31->unk08, 0); } } - if (arg1->flag & 0x10) { + if (arg1->flag & MSM_MUSPARAM_SPEED) { sndSeqSpeed(temp_r31->unk08, (arg1->speed << 8) / 100); } return 0; @@ -335,8 +339,128 @@ s32 msmMusStop(int musNo, s32 speed) { return 0; } -// TODO: https://decomp.me/scratch/PGpbJ -// msmMusPlay +int msmMusPlay(int musId, MSM_MUSPARAM* musParam) { + s32 var_r30; + int var_r29; + s32 temp_r3_3; + UnkGroupDataPtr* temp_r3_2; + msmMusStruct01* temp_r28; + msmMusStruct00* temp_r27; + DVDFileInfo sp10; -// TODO: https://decomp.me/scratch/24daZ -// msmMusInit + if (musId < 0 || musId >= mus.unk00) { + return MSM_ERR_INVALIDID; + } + temp_r28 = &mus.unk0C[musId]; + if (temp_r28->unk00 == 0xFFFF) { + return MSM_ERR_REMOVEDID; + } + if (msmSysCheckLoadGroupID(temp_r28->unk00) == 0) { + return MSM_ERR_GRP_NOTLOADED; + } + var_r30 = (musParam != NULL) ? musParam->flag : 0; + var_r29 = (var_r30 & MSM_MUSPARAM_CHAN) ? musParam->chan : 0; + if (var_r29 < 0 || var_r29 >= mus.unk02) { + return MSM_ERR_OUTOFMUS; + } + temp_r27 = &mus.unk18[var_r29]; + if (temp_r27->unk04 != 0) { + sndSeqStop(temp_r27->unk08); + } + if (temp_r28->unk0C < 0) { + if (temp_r27->unk00 != musId) { + if (msmFioOpen(mus.unk08, &sp10) != 1) { + return MSM_ERR_OPENFAIL; + } + if (msmFioRead(&sp10, temp_r27->unk0C, temp_r28->unk08, temp_r28->unk04 + mus.unk10) < 0) { + msmFioClose(&sp10); + return MSM_ERR_READFAIL; + } + msmFioClose(&sp10); + temp_r27->unk10 = temp_r27->unk0C; + } + } else { + temp_r3_2 = msmSysGetGroupDataPtr(temp_r28->unk0C); + if (temp_r3_2 == NULL) { + return MSM_ERR_MUSGRP_NOTLOADED; + } + temp_r27->unk10 = (void*) ((u32) temp_r3_2 + temp_r3_2->unk0C + temp_r28->unk04); + } + temp_r27->unk05 = 1; + temp_r27->unk03 = temp_r28->unk0D; + temp_r27->unk2C = 0; + temp_r27->unk20 = 0; + temp_r27->unk14 = 0; + temp_r27->unk28 = 0x7F; + temp_r27->unk1C = 0x7F; + temp_r27->unk38.flags = 4; + temp_r27->unk38.volume.time = 0; + temp_r27->unk02 = (var_r30 & MSM_MUSPARAM_VOL) ? musParam->vol : 0x7F; + temp_r27->unk38.volume.target = temp_r27->unk03 * temp_r27->unk1C * temp_r27->unk02 / 16129; + if (var_r30 & MSM_MUSPARAM_PAUSE) { + temp_r27->unk38.flags |= 0x10; + } + if (var_r30 & MSM_MUSPARAM_SPEED) { + temp_r27->unk38.flags |= 2; + temp_r27->unk38.speed = musParam->speed * 256 / 100; + } + if (var_r30 & MSM_MUSPARAM_FADESPEED) { + temp_r27->unk14 = -(musParam->fadeSpeed / 15); + if (temp_r27->unk14 != 0) { + temp_r27->unk18 = 0; + temp_r27->unk1C = 0; + temp_r27->unk38.volume.target = 0; + } + } + temp_r3_3 = sndSeqPlayEx(temp_r28->unk00, temp_r28->unk02, temp_r27->unk10, &temp_r27->unk38, 0); + if (temp_r3_3 == SND_ID_ERROR) { + temp_r27->unk05 = 0; + return MSM_ERR_PLAYFAIL; + } + temp_r27->unk08 = temp_r3_3; + temp_r27->unk00 = musId; + temp_r27->unk04 = (temp_r27->unk38.flags & 0x10) ? 3 : 2; + temp_r27->unk05 = 0; + return var_r29; +} + +s32 msmMusInit(sysData* arg0, DVDFileInfo* arg1) { + s32 temp_r4; + s32 var_r8; + + mus.unk00 = 0; + mus.unk02 = 0; + mus.unk04 = 0; + mus.unk03 = 0; + if (arg0->unk10->unk4 == 0) { + return 0; + } + temp_r4 = arg0->unkC->unk2C; + if (temp_r4 == 0) { + return 0; + } + if ((mus.unk0C = msmMemAlloc(temp_r4)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + if (msmFioRead(arg1, mus.unk0C, arg0->unkC->unk2C, arg0->unkC->unk28) < 0) { + return MSM_ERR_READFAIL; + } + temp_r4 = arg0->unk10->unk20; + if (temp_r4 != 0) { + if ((mus.unk14 = msmMemAlloc(temp_r4 * arg0->unk10->unk8)) == NULL) { + return MSM_ERR_OUTOFMEM; + } + } else { + mus.unk14 = NULL; + } + mus.unk00 = arg0->unk10->unk4; + mus.unk02 = arg0->unk10->unk8; + mus.unk10 = arg0->unkC->unk48; + mus.unk08 = arg0->unk0; + for (var_r8 = 0; var_r8 < mus.unk02; var_r8++) { + mus.unk18[var_r8].unk0C = (void*) ((u32) mus.unk14 + arg0->unk10->unk20 * var_r8); + mus.unk18[var_r8].unk00 = -1; + mus.unk18[var_r8].unk05 = 0; + } + return 0; +} diff --git a/src/msm/msmse.c b/src/msm/msmse.c index 33c906ab..1d6481ce 100755 --- a/src/msm/msmse.c +++ b/src/msm/msmse.c @@ -231,7 +231,6 @@ s32 msmSeUpdataListener(Vec* pos, Vec* heading) { } s32 msmSeSetListener(Vec* pos, Vec* heading, float sndDist, float sndSpeed, MSM_SELISTENER* listener) { - msmSeStruct02* se_ptr = &se; SND_FVECTOR* temp_b0; SND_FVECTOR* temp_a4; SND_FVECTOR* temp_c8; @@ -241,10 +240,10 @@ s32 msmSeSetListener(Vec* pos, Vec* heading, float sndDist, float sndSpeed, MSM_ float var_f0; float var_f0_2; - temp_a4 = &se_ptr->unkA4; - temp_c8 = &se_ptr->unkC8; - temp_bc = &se_ptr->unkBC; - temp_b0 = &se_ptr->unkB0; + temp_a4 = &se.unkA4; + temp_c8 = &se.unkC8; + temp_bc = &se.unkBC; + temp_b0 = &se.unkB0; temp_a4->x = pos->x; temp_a4->y = pos->y; temp_a4->z = pos->z; @@ -254,18 +253,18 @@ s32 msmSeSetListener(Vec* pos, Vec* heading, float sndDist, float sndSpeed, MSM_ temp_bc->y = heading->y; temp_bc->z = heading->z; temp_b0->x = temp_b0->y = temp_b0->z = 0.0f; - se_ptr->unkD4 = sndDist; + se.unkD4 = sndDist; var_r3 = (listener != NULL) ? listener->flag : 0; var_f4 = (var_r3 & 1) ? listener->startDis : 0.0f; var_f0 = (var_r3 & 2) ? listener->frontSurDis : (var_f4 + sndDist * 0.25f); var_f0_2 = (var_r3 & 4) ? listener->backSurDis : (var_f4 + sndDist * 0.25f); - if ((s32) sndAddListenerEx(&se_ptr->unk14, temp_a4, temp_b0, temp_bc, temp_c8, + if ((s32) sndAddListenerEx(&se.unk14, temp_a4, temp_b0, temp_bc, temp_c8, var_f0, var_f0_2, sndSpeed, -var_f4, 1, 0x7F, NULL) == FALSE) { - se_ptr->unkDA = 0; + se.unkDA = 0; return MSM_ERR_22; } - se_ptr->unkDA = 1; + se.unkDA = 1; return 0; } @@ -287,13 +286,11 @@ s32 msmSeGetEntryID(s32 seId, int* seNo) { } s32 msmSeGetNumPlay(BOOL baseGrp) { - msmSeStruct02* se_ptr = &se; - switch (baseGrp) { case FALSE: - return se_ptr->unk06 + se_ptr->unk05; + return se.unk06 + se.unk05; default: - return se_ptr->unk06; + return se.unk06; } } @@ -409,12 +406,11 @@ void msmSePauseAll(BOOL pause, s32 speed) { } void msmSeStopAll(BOOL checkGrp, s32 speed) { - msmSeStruct02* se_ptr = &se; msmSeStruct00* temp_r28; s32 var_r27; - for (var_r27 = 0; var_r27 < se_ptr->unk04; var_r27++) { - temp_r28 = &se_ptr->unk10[var_r27]; + for (var_r27 = 0; var_r27 < se.unk04; var_r27++) { + temp_r28 = &se.unk10[var_r27]; if (temp_r28->unk0A == 0) { continue; } @@ -435,7 +431,7 @@ void msmSeStopAll(BOOL checkGrp, s32 speed) { } break; default: - if (msmSysCheckBaseGroup(se_ptr->unk0C[temp_r28->unk08].groupId) == 0) { + if (msmSysCheckBaseGroup(se.unk0C[temp_r28->unk08].groupId) == 0) { temp_r28->unk34 = speed / 15; if (temp_r28->unk34 != 0) { temp_r28->unk38 = temp_r28->unk34; @@ -479,40 +475,39 @@ s32 msmSeStop(int seNo, s32 speed) { return 0; } -static inline BOOL msmSeInline00(msmSeStruct02* arg0, msmSeStruct00* arg1, MSM_SEPARAM* param) { +static inline BOOL msmSeInline00(msmSeStruct00* arg0, MSM_SEPARAM* param) { BOOL var_r0 = FALSE; if (param != NULL) { if (param->flag & MSM_SEPARAM_VOL) { - arg1->unk0C = param->vol; + arg0->unk0C = param->vol; } if (param->flag & MSM_SEPARAM_PAN) { - arg1->unk0D = param->pan; + arg0->unk0D = param->pan; } if (param->flag & MSM_SEPARAM_PITCH) { - arg1->unk0E = param->pitch; + arg0->unk0E = param->pitch; } if (param->flag & MSM_SEPARAM_SPAN) { - arg1->unk10 = param->span; + arg0->unk10 = param->span; } if (param->flag & MSM_SEPARAM_AUXVOLA) { - arg1->unk11 = param->auxAVol; + arg0->unk11 = param->auxAVol; } if (param->flag & MSM_SEPARAM_AUXVOLB) { - arg1->unk12 = param->auxBVol; + arg0->unk12 = param->auxBVol; } - if ((param->flag & MSM_SEPARAM_POS) && arg0->unkDA != 0) { + if ((param->flag & MSM_SEPARAM_POS) && se.unkDA != 0) { var_r0 = TRUE; } } - arg1->unk14.paraArray = arg1->unk1C; + arg0->unk14.paraArray = arg0->unk1C; return var_r0; } int msmSePlay(int seId, MSM_SEPARAM* param) { msmSeStruct00* var_r30; SND_EMITTER* var_r29; - msmSeStruct02* se_ptr = &se; MSMSE* temp_r9; int var_r3_2; s32 var_r4; @@ -549,7 +544,7 @@ int msmSePlay(int seId, MSM_SEPARAM* param) { var_r30->unk48 = 0x7F; var_r30->unk3C = 0x7F; var_r30->unkB4 = 0; - if (msmSeInline00(se_ptr, var_r30, param)) { + if (msmSeInline00(var_r30, param)) { var_r30->unk9C.x = param->pos.x; var_r30->unk9C.y = param->pos.y; var_r30->unk9C.z = param->pos.z; @@ -567,7 +562,7 @@ int msmSePlay(int seId, MSM_SEPARAM* param) { var_r6_2 = 8; } var_r30->unkB4 = temp_r9->doppler; - var_r30->unk00 = sndAddEmitterParaEx(var_r29, &var_r30->unk9C, &var_r30->unkA8, se_ptr->unkD4, temp_r9->comp / 127.0f, var_r6_2, temp_r9->fxId, se_ptr->unkD8++, var_r30->unk0C * var_r30->unk30 / 127, 0, NULL, &var_r30->unk14); + var_r30->unk00 = sndAddEmitterParaEx(var_r29, &var_r30->unk9C, &var_r30->unkA8, se.unkD4, temp_r9->comp / 127.0f, var_r6_2, temp_r9->fxId, se.unkD8++, var_r30->unk0C * var_r30->unk30 / 127, 0, NULL, &var_r30->unk14); if (var_r29 != NULL) { if (!sndCheckEmitter(var_r29)) { return MSM_ERR_PLAYFAIL; @@ -612,7 +607,7 @@ int msmSePlay(int seId, MSM_SEPARAM* param) { } var_r30->unk0B = 1; var_r30->unk08 = seId; - var_r30->unk04 = se_ptr->unk08++; + var_r30->unk04 = se.unk08++; var_r30->unk0A = 2; var_r30->unk0B = 0; return var_r30->unk04; diff --git a/src/msm/msmstream.c b/src/msm/msmstream.c new file mode 100755 index 00000000..058835ab --- /dev/null +++ b/src/msm/msmstream.c @@ -0,0 +1,1057 @@ +#include "msm/msmstream.h" +#include "msm/msmmem.h" +#include "msm/msmsys.h" + +typedef struct { + /* 0x00 */ SND_STREAMID unk00; + /* 0x04 */ s16 unk04; + /* 0x06 */ u8 unk06; + /* 0x07 */ u8 unk07; + /* 0x08 */ u8 unk08; + /* 0x09 */ u8 unk09; + /* 0x0A */ u8 unk0A; + /* 0x0B */ u8 unk0B; + /* 0x0C */ u8 unk0C; + /* 0x0D */ u8 unk0D; + /* 0x0E */ s8 unk0E; + /* 0x0F */ s8 unk0F; + /* 0x10 */ u32 unk10; + /* 0x14 */ volatile s32 unk14; + /* 0x18 */ volatile s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ char unk20[4]; + /* 0x24 */ volatile s32 unk24; + /* 0x28 */ s32 unk28; + /* 0x2C */ s8 unk2C; + /* 0x2D */ s8 unk2D; + /* 0x2E */ s8 unk2E; + /* 0x2F */ char unk2F[1]; + /* 0x30 */ void* unk30; + /* 0x34 */ u32 unk34; + /* 0x38 */ u32 unk38; + /* 0x3C */ struct { + volatile u8 unk3C_0 : 1; + volatile u8 unk3C_1 : 1; + u8 unk3C_2 : 1; + u8 unk3C_3 : 1; + volatile u8 unk3C_4 : 1; + volatile u8 unk3C_5 : 1; + volatile u8 unk3C_6 : 1; + }; + /* 0x3D */ char unk3D[3]; + /* 0x40 */ s32 unk40; + /* 0x44 */ SND_ADPCMSTREAM_INFO* unk44; + /* 0x48 */ s32 unk48; + /* 0x4C */ u32 unk4C; + /* 0x50 */ u32 unk50; + /* 0X54 */ s32 unk54; + /* 0x58 */ u32 unk58; + /* 0x5C */ void* unk5C; + /* 0X60 */ s32 unk60; + /* 0x64 */ u32 unk64; + /* 0x68 */ s32 unk68; + /* 0x6C */ s32 unk6C; + /* 0x70 */ DVDFileInfo unk70; +} msmStreamUnk20Struct; // Size 0xAC + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ u32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s8 unk10; + /* 0x11 */ u8 unk11; + /* 0x12 */ u8 unk12; + /* 0x13 */ char unk13[1]; + /* 0x14 */ u32* unk14; + /* 0x18 */ s8* unk18; + /* 0x1C */ SND_ADPCMSTREAM_INFO* unk1C; + /* 0x20 */ msmStreamUnk20Struct* unk20; + /* 0x24 */ char unk24[0x1C]; + /* 0x40 */ s16 unk40; + /* 0x42 */ s16 unk42; + /* 0x44 */ s32 unk44; + /* 0x48 */ s32 unk48; + /* 0x4C */ s32 unk4C; + /* 0x50 */ s32 unk50; + /* 0x54 */ s32 unk54; + /* 0x58 */ s32 unk58; + /* 0x5C */ s32 unk5C; +} msmStreamStruct; // Size 0x60 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s16 unk04; + /* 0x06 */ char unk06[2]; +} StructSlotInitInnerArg1; // Size 8 + +typedef struct { + /* 0x00 */ s8 unk00; + /* 0x01 */ s8 unk01; + /* 0x02 */ s8 unk02; + /* 0x03 */ s8 unk03; + /* 0x04 */ s8 unk04; + /* 0x05 */ s8 unk05; + /* 0x06 */ u16 unk06; + /* 0x08 */ u32 unk08; + /* 0x0C */ u32 unk0C; + /* 0x10 */ StructSlotInitInnerArg1 unk10[2]; +} StructSlotInitArg1; // Size unknown + +typedef struct { + /* 0x00 */ u8 unk00; + /* 0x01 */ u8 unk01; + /* 0x02 */ u8 unk02; + /* 0x03 */ u8 unk03; + /* 0x04 */ u8 unk04; + /* 0x05 */ char unk05[3]; + /* 0x08 */ s32 unk08; +} StructSlotInitArg2; // Size unknown + +static void msmStreamPauseFade(s32 arg0); +static void msmStreamFade(s32 arg0); +static void msmStreamDvdCallback(s32 result, DVDFileInfo* fileInfo); +static void msmStreamStopSub(s32 streamNo, s32 speed); +static void msmStreamDvdCallback2(s32 arg0, DVDFileInfo* arg1); +static u32 msmStreamUpdateFunc(void* buffer1, u32 len1, void* buffer2, u32 len2, u32 user); +static s32 msmStreamSlotInit(msmStreamUnk20Struct* arg0, StructSlotInitArg1* arg1, StructSlotInitArg2* arg2, s32 arg3); + +static msmStreamStruct StreamInfo ATTRIBUTE_ALIGN(32); + +static inline void msmStreamInline00(s32 streamNo) { + msmStreamUnk20Struct* temp_ptr; + + temp_ptr = &StreamInfo.unk20[streamNo]; + DVDClose(&temp_ptr->unk70); + temp_ptr->unk06 = 0; +} + +s32 msmStreamGetStatus(int streamNo) { + msmStreamUnk20Struct* temp_r3; + s32 var_r4; + + if (streamNo < 0 || streamNo >= StreamInfo.unk44) { + return 0; + } + temp_r3 = &StreamInfo.unk20[streamNo]; + switch (temp_r3->unk06) { + case 4: + var_r4 = 2; + break; + case 2: + case 3: + var_r4 = 4; + break; + case 5: + var_r4 = 1; + break; + default: + var_r4 = 0; + break; + } + if (temp_r3->unk3C_5 == 1) { + var_r4 = 3; + } + if (var_r4 == 0 && temp_r3->unk0E != -1) { + var_r4 = msmStreamGetStatus(temp_r3->unk0E); + } + return var_r4; +} + +static inline void msmStreamInline04(msmStreamUnk20Struct* arg0) { + s32 var_r10; + s32 temp_var; + + if (StreamInfo.unk12 != 0) { + var_r10 = arg0->unk0C + arg0->unk0D - 0x40; + if (var_r10 < 0) { + var_r10 = 0; + } + if (var_r10 > 0x7F) { + var_r10 = 0x7F; + } + } else { + var_r10 = 0x40; + } + temp_var = arg0->unk08 * arg0->unk09 * arg0->unk0A * arg0->unk0B / 2048383; + sndStreamMixParameterEx(arg0->unk00, temp_var * StreamInfo.unk11 / 127, var_r10, arg0->unk2C, arg0->unk2D, arg0->unk2E); +} + +void msmStreamSetMasterVolume(s32 arg0) { + s32 var_r27; + + StreamInfo.unk11 = arg0 & 0x7F; + for (var_r27 = 0; var_r27 < StreamInfo.unk44; var_r27++) { + if (StreamInfo.unk20[var_r27].unk06 != 0) { + msmStreamInline04(&StreamInfo.unk20[var_r27]); + } + } +} + +static inline BOOL msmStreamInline01(msmStreamUnk20Struct* arg0) { + if (arg0->unk06 != 0 || arg0->unk3C_5 != 0) { + return TRUE; + } else { + return FALSE; + } +} + +void msmStreamStopAll(s32 speed) { + msmStreamUnk20Struct* temp_r29; + s32 var_r28; + + msmSysIrqDisable(); + for (var_r28 = 0; var_r28 < StreamInfo.unk44; var_r28++) { + if (var_r28 >= 0 && var_r28 < StreamInfo.unk44) { + temp_r29 = &StreamInfo.unk20[var_r28]; + if (msmStreamInline01(temp_r29)) { + msmSysIrqDisable(); + msmStreamStopSub(var_r28, speed); + if (temp_r29->unk0E != -1) { + msmStreamStopSub(temp_r29->unk0E, speed); + } + if (temp_r29->unk0F != -1) { + msmStreamStopSub(temp_r29->unk0F, speed); + } + msmSysIrqEnable(); + } + } + } + msmSysIrqEnable(); +} + +static inline void msmStreamInline03(int streamNo, s32 speed) { + msmStreamUnk20Struct* temp_ptr = &StreamInfo.unk20[streamNo]; + + if (temp_ptr->unk3C_5 != 0) { + temp_ptr->unk3C_5 = 0; + speed = 0; + } + temp_ptr->unk24 = speed / 15; + if (temp_ptr->unk24 != 0) { + temp_ptr->unk28 = temp_ptr->unk24; + temp_ptr->unk0A = 0x7F; + } else { + msmStreamSlotOff(streamNo); + } +} + +s32 msmStreamStop(int streamNo, s32 speed) { + msmStreamUnk20Struct* temp_r31; + s32 unused; + + if (streamNo < 0 || streamNo >= StreamInfo.unk44) { + return MSM_ERR_8C; + } + temp_r31 = &StreamInfo.unk20[streamNo]; + if (msmStreamInline01(temp_r31)) { + msmSysIrqDisable(); + msmStreamInline03(streamNo, speed); + if (temp_r31->unk0E != -1) { + msmStreamInline03(temp_r31->unk0E, speed); + } + if (temp_r31->unk0F != -1) { + msmStreamInline03(temp_r31->unk0F, speed); + } + msmSysIrqEnable(); + } + return 0; +} + +int msmStreamPlay(int streamId, MSM_STREAMPARAM* streamParam) { + if (streamId < 0 || streamId >= StreamInfo.unk42) { + return MSM_ERR_INVALIDID; + } + if (StreamInfo.unk14[streamId] == 0) { + return MSM_ERR_REMOVEDID; + } + if (StreamInfo.unk18[StreamInfo.unk14[streamId] - StreamInfo.unk58] & 1) { + return msmStreamPackStartStereo(streamId, streamParam, 0); + } else { + return msmStreamPackStartMono(streamId, streamParam, 0); + } +} + +void msmStreamPeriodicProc(void) { + msmStreamUnk20Struct* temp_r28; + s32 var_r27; + + StreamInfo.unk10 = 0; + for (var_r27 = 0; var_r27 < StreamInfo.unk44; var_r27++) { + temp_r28 = &StreamInfo.unk20[var_r27]; + msmStreamFade(var_r27); + msmStreamPauseOff(var_r27); + msmStreamPauseFade(var_r27); + if (temp_r28->unk06 != 0) { + StreamInfo.unk10++; + } + } +} + +void msmStreamSetOutputMode(s32 arg0) { + s32 var_r27; + + StreamInfo.unk12 = arg0; + for (var_r27 = 0; var_r27 < StreamInfo.unk44; var_r27++) { + if (StreamInfo.unk20[var_r27].unk06 != 0) { + msmStreamInline04(&StreamInfo.unk20[var_r27]); + } + } +} + +void msmStreamAmemFree(void) { + u32 var_r29; + + for (var_r29 = 0; var_r29 < StreamInfo.unk44; var_r29++) { + sndStreamFree(StreamInfo.unk20[var_r29].unk00); + } +} + +s32 msmStreamAmemAlloc(void) { + u32 var_r25; + msmStreamUnk20Struct* temp_r24; + + for (var_r25 = 0; var_r25 < StreamInfo.unk44; var_r25++) { + temp_r24 = &StreamInfo.unk20[var_r25]; + temp_r24->unk06 = 0; + temp_r24->unk0F = -1; + temp_r24->unk0E = -1; + temp_r24->unk30 = msmMemAlloc(StreamInfo.unk04); + if (temp_r24->unk30 == NULL) { + return MSM_ERR_OUTOFMEM; + } + temp_r24->unk34 = StreamInfo.unk04; + temp_r24->unk38 = StreamInfo.unk08; + temp_r24->unk00 = sndStreamAllocEx(0xFF, temp_r24->unk30, temp_r24->unk38, StreamInfo.unk48, 0, 0x40, 0, 0, 0, 0, 0x30001, msmStreamUpdateFunc, var_r25, NULL); + if (temp_r24->unk00 == -1) { + return MSM_ERR_STREAMALLOC_FAIL; + } + } + return StreamInfo.unk04 * StreamInfo.unk44; +} + +s32 msmStreamInit(char* arg0) { + DVDFileInfo spC; + s32 temp_r27; + + StreamInfo.unk42 = 0; + StreamInfo.unk44 = 0; + StreamInfo.unk11 = 0x7F; + StreamInfo.unk10 = 0; + if (arg0 == NULL) { + return 0; + } + StreamInfo.unk0C = DVDConvertPathToEntrynum(arg0); + if (StreamInfo.unk0C == -1) { + return MSM_ERR_OPENFAIL; + } + if (!msmFioOpen(StreamInfo.unk0C, &spC)) { + return MSM_ERR_OPENFAIL; + } + if (msmFioRead(&spC, &StreamInfo.unk40, 0x20, 0) < 0) { + msmFioClose(&spC); + return MSM_ERR_READFAIL; + } + if (StreamInfo.unk40 != 1) { + msmFioClose(&spC); + return MSM_ERR_INVALIDFILE; + } + if (StreamInfo.unk42 != 0) { + temp_r27 = (StreamInfo.unk54 - StreamInfo.unk50 + 0x1F) & ~0x1F; + StreamInfo.unk14 = msmMemAlloc(temp_r27); + if (StreamInfo.unk14 == NULL) { + msmFioClose(&spC); + return MSM_ERR_OUTOFMEM; + } + if (msmFioRead(&spC, StreamInfo.unk14, temp_r27, StreamInfo.unk50) < 0) { + msmFioClose(&spC); + return MSM_ERR_READFAIL; + } + temp_r27 = (StreamInfo.unk5C - StreamInfo.unk58 + 0x1F) & ~0x1F; + StreamInfo.unk18 = msmMemAlloc(temp_r27); + if (StreamInfo.unk18 == NULL) { + msmFioClose(&spC); + return MSM_ERR_OUTOFMEM; + } + if (msmFioRead(&spC, StreamInfo.unk18, temp_r27, StreamInfo.unk58) < 0) { + msmFioClose(&spC); + return MSM_ERR_READFAIL; + } + temp_r27 = StreamInfo.unk58 - StreamInfo.unk54; + StreamInfo.unk1C = msmMemAlloc(temp_r27); + if (StreamInfo.unk1C == NULL) { + msmFioClose(&spC); + return MSM_ERR_OUTOFMEM; + } + if (msmFioRead(&spC, StreamInfo.unk1C, temp_r27, StreamInfo.unk54) < 0) { + msmFioClose(&spC); + return MSM_ERR_READFAIL; + } + } + msmFioClose(&spC); + StreamInfo.unk00 = (StreamInfo.unk48 + 13) / 14; + StreamInfo.unk04 = (8 * StreamInfo.unk00 * StreamInfo.unk4C + 0x3F) & ~0x3F; + StreamInfo.unk08 = (StreamInfo.unk04 / 8) * 14; + StreamInfo.unk20 = msmMemAlloc(StreamInfo.unk44 * sizeof(*StreamInfo.unk20)); + memset(StreamInfo.unk20, 0, StreamInfo.unk44 * sizeof(*StreamInfo.unk20)); + return 0; +} + +void msmStreamPauseOff(s32 arg0) { + msmStreamUnk20Struct* temp_r31; + u32 temp_r3; + u32 var_r30; + + temp_r31 = &StreamInfo.unk20[arg0]; + if (temp_r31->unk14 == 0) { + return; + } + if (temp_r31->unk3C_5 == 0) { + temp_r31->unk14 = 0; + return; + } + if (temp_r31->unk18 != 0) { + temp_r31->unk18 = -(temp_r31->unk14 + 1); + if (temp_r31->unk18 == 0) { + temp_r31->unk0B = 0x7F; + msmStreamInline04(temp_r31); + } + temp_r31->unk14 = 0; + temp_r31->unk3C_5 = 0; + } else if (temp_r31->unk06 == 0 && DVDFastOpen(StreamInfo.unk0C, &temp_r31->unk70) == TRUE) { + if (--temp_r31->unk14 != 0) { + temp_r31->unk18 = -temp_r31->unk14; + temp_r31->unk1C = 0; + temp_r31->unk0B = 0; + } else { + temp_r31->unk0B = 0x7F; + } + temp_r31->unk14 = 0; + temp_r31->unk3C_1 = 1; + temp_r31->unk3C_2 = 0; + temp_r31->unk3C_4 = 0; + temp_r31->unk3C_5 = 0; + temp_r31->unk3C_6 = 0; + temp_r31->unk3C_0 = 1; + temp_r31->unk64 = temp_r31->unk68 = (temp_r31->unk10 / 8) * 14; + temp_r31->unk6C = 0; + temp_r31->unk4C = temp_r31->unk10; + var_r30 = temp_r31->unk34 / 2; + if ((temp_r3 = temp_r31->unk50 - temp_r31->unk4C) < temp_r31->unk34 / 2) { + var_r30 = temp_r3; + temp_r31->unk58 = temp_r31->unk34 / 2 - temp_r3; + temp_r31->unk5C = (void*) ((u32) temp_r31->unk30 + temp_r3); + memset(temp_r31->unk5C, 0, temp_r31->unk58); + } + temp_r31->unk06 = 2; + temp_r31->unk4C += var_r30; + temp_r31->unk3C_3 = 1; + DVDReadAsync(&temp_r31->unk70, temp_r31->unk30, var_r30, temp_r31->unk48 + (temp_r31->unk4C - var_r30), msmStreamDvdCallback); + } +} + +static inline void msmStreamInline05(s32 streamNo) { + msmStreamUnk20Struct* temp_r31; + + temp_r31 = &StreamInfo.unk20[streamNo]; + switch (temp_r31->unk06) { + case 2: + temp_r31->unk3C_4 = 1; + temp_r31->unk06 = 5; + break; + case 3: + msmStreamInline00(streamNo); + break; + case 4: + if (temp_r31->unk3C_2 == 0) { + sndStreamMixParameterEx(temp_r31->unk00, 0, 0x40, 0, 0, 0); + temp_r31->unk3C_2 = 1; + temp_r31->unk06 = 5; + } + break; + } +} + +void msmStreamPauseOn(s32 streamNo, s32 arg1) { + msmStreamUnk20Struct* temp_r31; + + temp_r31 = &StreamInfo.unk20[streamNo]; + temp_r31->unk14 = 0; + if (temp_r31->unk3C_5 != 0) { + return; + } + temp_r31->unk3C_5 = 1; + temp_r31->unk18 = arg1 / 15; + if (temp_r31->unk18 != 0) { + temp_r31->unk1C = temp_r31->unk18; + temp_r31->unk0B = 0x7F; + return; + } + temp_r31->unk10 = ((temp_r31->unk64 / 7) * 4) & ~7; + if (temp_r31->unk07 != 0) { + if (temp_r31->unk10 >= temp_r31->unk50 - temp_r31->unk34 / 4) { + temp_r31->unk10 = 0; + } + } else if (temp_r31->unk10 >= temp_r31->unk50) { + temp_r31->unk3C_5 = 0; + } + msmStreamInline05(streamNo); +} + +static void msmStreamPauseFade(s32 arg0) { + msmStreamUnk20Struct* temp_r5; + + temp_r5 = &StreamInfo.unk20[arg0]; + if (temp_r5->unk06 != 4) { + return; + } + if (temp_r5->unk18 > 0) { + if (--temp_r5->unk1C == 0) { + temp_r5->unk18 = 0; + temp_r5->unk3C_5 = 0; + msmStreamPauseOn(arg0, 0); + } else { + temp_r5->unk0B = temp_r5->unk1C * 0x7F / temp_r5->unk18; + msmStreamInline04(temp_r5); + } + } else if (temp_r5->unk18 < 0) { + if (++temp_r5->unk1C >= -temp_r5->unk18) { + temp_r5->unk18 = 0; + temp_r5->unk0B = 0x7F; + msmStreamInline04(temp_r5); + } else { + temp_r5->unk0B = temp_r5->unk1C * 0x7F / -temp_r5->unk18; + msmStreamInline04(temp_r5); + } + } +} + +static void msmStreamFade(s32 arg0) { + msmStreamUnk20Struct* temp_r5; + + temp_r5 = &StreamInfo.unk20[arg0]; + if (temp_r5->unk06 != 4) { + return; + } + if (temp_r5->unk24 > 0) { + if (--temp_r5->unk28 == 0) { + temp_r5->unk24 = 0; + msmStreamInline03(arg0, 0); + } else { + temp_r5->unk0A = temp_r5->unk28 * 0x7F / temp_r5->unk24; + msmStreamInline04(temp_r5); + } + } else if (temp_r5->unk24 < 0) { + if (++temp_r5->unk28 >= -temp_r5->unk24) { + temp_r5->unk24 = 0; + temp_r5->unk0A = 0x7F; + msmStreamInline04(temp_r5); + } else { + temp_r5->unk0A = temp_r5->unk28 * 0x7F / -temp_r5->unk24; + msmStreamInline04(temp_r5); + } + } +} + +static void msmStreamStopSub(s32 streamNo, s32 speed) { + msmStreamUnk20Struct* temp_r31; + s32 var_r4; + + var_r4 = speed; + temp_r31 = &StreamInfo.unk20[streamNo]; + if (temp_r31->unk3C_5 != 0) { + temp_r31->unk3C_5 = 0; + var_r4 = 0; + } + temp_r31->unk24 = var_r4 / 15; + if (temp_r31->unk24 != 0) { + temp_r31->unk28 = temp_r31->unk24; + temp_r31->unk0A = 0x7F; + return; + } + msmStreamInline05(streamNo); +} + +static void msmStreamSetParamSub(msmStreamUnk20Struct* arg0) { + int var_r10; + s32 temp_var; + + if (StreamInfo.unk12 != 0) { + var_r10 = arg0->unk0C + arg0->unk0D - 0x40; + if (var_r10 < 0) { + var_r10 = 0; + } + if (var_r10 > 0x7F) { + var_r10 = 0x7F; + } + } else { + var_r10 = 0x40; + } + temp_var = arg0->unk08 * arg0->unk09 * arg0->unk0A * arg0->unk0B / 2048383; + sndStreamMixParameterEx(arg0->unk00, temp_var * StreamInfo.unk11 / 127, var_r10, arg0->unk2C, arg0->unk2D, arg0->unk2E); +} + +s32 msmStreamPackStartStereo(s32 arg0, MSM_STREAMPARAM* arg1, s32 arg2) { + s32 var_r29; + s32 var_r28; + s32 var_r27; + u32 temp_r3_3; + u32 temp_r3_4; + StructSlotInitArg2 sp1C; + msmStreamUnk20Struct* temp_r25; + msmStreamUnk20Struct* temp_r24; + StructSlotInitArg1* temp_r23; + + var_r29 = (arg1 != NULL) ? arg1->flag : 0; + if (var_r29 & MSM_STREAMPARAM_CHAN) { + var_r28 = arg1->chan; + var_r27 = arg1->chan + 1; + if (var_r28 < 0 || var_r28 >= StreamInfo.unk44) { + return MSM_ERR_6E; + } + if (var_r27 < 0 || var_r27 >= StreamInfo.unk44) { + return MSM_ERR_6E; + } + if (msmStreamInline01(&StreamInfo.unk20[var_r28])) { + return MSM_ERR_6E; + } + if (msmStreamInline01(&StreamInfo.unk20[var_r27])) { + return MSM_ERR_6E; + } + } else { + for (var_r28 = 0; var_r28 < StreamInfo.unk44; var_r28++) { + if (!msmStreamInline01(&StreamInfo.unk20[var_r28])) { + break; + } + } + for (var_r27 = var_r28 + 1; var_r27 < StreamInfo.unk44; var_r27++) { + if (!msmStreamInline01(&StreamInfo.unk20[var_r27])) { + break; + } + } + if (var_r28 == StreamInfo.unk44 || var_r27 == StreamInfo.unk44) { + return MSM_ERR_6E; + } + } + temp_r25 = &StreamInfo.unk20[var_r28]; + temp_r24 = &StreamInfo.unk20[var_r27]; + temp_r23 = (StructSlotInitArg1*) ((u32) StreamInfo.unk18 + (StreamInfo.unk14[arg0] - StreamInfo.unk58)); + sp1C.unk00 = (var_r29 & MSM_STREAMPARAM_VOL) ? arg1->vol : 0x7F; + sp1C.unk02 = (var_r29 & MSM_STREAMPARAM_SPAN) ? arg1->span : (s32) temp_r23->unk03; + sp1C.unk03 = (var_r29 & MSM_STREAMPARAM_AUXA) ? arg1->auxA : (s32) temp_r23->unk04; + sp1C.unk04 = (var_r29 & MSM_STREAMPARAM_AUXB) ? arg1->auxB : (s32) temp_r23->unk05; + sp1C.unk08 = arg2; + msmSysIrqDisable(); + sp1C.unk01 = 0; + temp_r3_3 = msmStreamSlotInit(temp_r25, temp_r23, &sp1C, 0); + sp1C.unk01 = 0x7F; + temp_r3_4 = msmStreamSlotInit(temp_r24, temp_r23, &sp1C, 1); + temp_r25->unk04 = arg0; + temp_r24->unk04 = -1; + temp_r25->unk0E = var_r27; + temp_r24->unk0F = var_r28; + if ((var_r29 & MSM_STREAMPARAM_FADESPEED) && arg1->fadeSpeed != 0) { + temp_r25->unk24 = temp_r24->unk24 = -arg1->fadeSpeed / 15; + temp_r25->unk28 = temp_r24->unk28 = 0; + temp_r25->unk0A = temp_r24->unk0A = 0; + } + msmSysIrqEnable(); + if (temp_r3_3 == 0) { + return 0; + } + if (var_r29 & MSM_STREAMPARAM_PAUSE) { + temp_r25->unk3C_5 = temp_r24->unk3C_5 = 1; + temp_r25->unk06 = temp_r24->unk06 = 0; + return var_r28; + } + if (DVDFastOpen(StreamInfo.unk0C, &temp_r25->unk70) != 1) { + return MSM_ERR_OPENFAIL; + } + if (DVDFastOpen(StreamInfo.unk0C, &temp_r24->unk70) != 1) { + DVDClose(&temp_r25->unk70); + return MSM_ERR_OPENFAIL; + } + temp_r25->unk4C += temp_r3_3; + temp_r24->unk4C += temp_r3_4; + temp_r25->unk3C_3 = 1; + DVDReadAsync(&temp_r25->unk70, temp_r25->unk30, temp_r3_3, temp_r25->unk48 + (temp_r25->unk4C - temp_r3_3), msmStreamDvdCallback); + temp_r24->unk3C_3 = 1; + DVDReadAsync(&temp_r24->unk70, temp_r24->unk30, temp_r3_4, temp_r24->unk48 + (temp_r24->unk4C - temp_r3_4), msmStreamDvdCallback); + return var_r28; +} + +s32 msmStreamPackStartMono(s32 arg0, MSM_STREAMPARAM* arg1, s32 arg2) { + s32 var_r30; + s32 var_r29; + u32 temp_r3_2; + StructSlotInitArg2 sp18; + msmStreamUnk20Struct* temp_r27; + StructSlotInitArg1* temp_r25; + + var_r30 = (arg1 != NULL) ? arg1->flag : 0; + if (var_r30 & MSM_STREAMPARAM_CHAN) { + var_r29 = arg1->chan; + if (var_r29 < 0 || var_r29 >= StreamInfo.unk44) { + return MSM_ERR_6E; + } + if (msmStreamInline01(&StreamInfo.unk20[var_r29])) { + return MSM_ERR_6E; + } + } else { + for (var_r29 = 0; var_r29 < StreamInfo.unk44; var_r29++) { + if (!msmStreamInline01(&StreamInfo.unk20[var_r29])) { + break; + } + } + if (var_r29 == StreamInfo.unk44) { + return MSM_ERR_6E; + } + } + temp_r27 = &StreamInfo.unk20[var_r29]; + temp_r25 = (StructSlotInitArg1*) ((u32) StreamInfo.unk18 + (StreamInfo.unk14[arg0] - StreamInfo.unk58)); + sp18.unk00 = (var_r30 & MSM_STREAMPARAM_VOL) ? arg1->vol : 0x7F; + sp18.unk01 = (var_r30 & MSM_STREAMPARAM_PAN) ? arg1->pan : 0x40; + sp18.unk02 = (var_r30 & MSM_STREAMPARAM_SPAN) ? arg1->span : (s32) temp_r25->unk03; + sp18.unk03 = (var_r30 & MSM_STREAMPARAM_AUXA) ? arg1->auxA : (s32) temp_r25->unk04; + sp18.unk04 = (var_r30 & MSM_STREAMPARAM_AUXB) ? arg1->auxB : (s32) temp_r25->unk05; + sp18.unk08 = arg2; + msmSysIrqDisable(); + temp_r3_2 = msmStreamSlotInit(temp_r27, temp_r25, &sp18, 0); + temp_r27->unk04 = arg0; + if ((var_r30 & MSM_STREAMPARAM_FADESPEED) && arg1->fadeSpeed != 0) { + temp_r27->unk24 = -arg1->fadeSpeed / 15; + temp_r27->unk28 = 0; + temp_r27->unk0A = 0; + } + msmSysIrqEnable(); + if (temp_r3_2 == 0) { + return 0; + } + if (var_r30 & MSM_STREAMPARAM_PAUSE) { + temp_r27->unk3C_5 = 1; + temp_r27->unk06 = 0; + return var_r29; + } + if (DVDFastOpen(StreamInfo.unk0C, &temp_r27->unk70) != 1) { + return MSM_ERR_OPENFAIL; + } + temp_r27->unk4C += temp_r3_2; + temp_r27->unk3C_3 = 1; + DVDReadAsync(&temp_r27->unk70, temp_r27->unk30, temp_r3_2, temp_r27->unk48 + (temp_r27->unk4C - temp_r3_2), msmStreamDvdCallback); + return var_r29; +} + +// Note: identical to msmStreamInline05. +void msmStreamSlotOff(s32 streamNo) { + msmStreamUnk20Struct* temp_r31; + + temp_r31 = &StreamInfo.unk20[streamNo]; + switch (temp_r31->unk06) { + case 2: + temp_r31->unk3C_4 = 1; + temp_r31->unk06 = 5; + break; + case 3: + msmStreamInline00(streamNo); + break; + case 4: + if (temp_r31->unk3C_2 == 0) { + sndStreamMixParameterEx(temp_r31->unk00, 0, 0x40, 0, 0, 0); + temp_r31->unk3C_2 = 1; + temp_r31->unk06 = 5; + } + break; + } +} + +static inline void msmStreamInline06(s32 streamNo) { + msmStreamUnk20Struct* temp_r25; + + temp_r25 = &StreamInfo.unk20[streamNo]; + msmStreamSlotOff(streamNo); + sndStreamDeactivate(temp_r25->unk00); + if (temp_r25->unk3C_3 == 0) { + msmStreamInline00(streamNo); + } else { + temp_r25->unk3C_4 = 1; + } +} + +static void msmStreamData(s32 arg0) { + s32 temp_r5; + u32 var_r28; + void* var_r27; + msmStreamUnk20Struct* temp_r26; + s32 var_r24; + + temp_r26 = &StreamInfo.unk20[arg0]; + var_r28 = temp_r5 = temp_r26->unk34 / 2; + var_r27 = (temp_r26->unk3C_0 != 0) + ? (void*) ((u32) temp_r26->unk30 + temp_r5) + : temp_r26->unk30; + temp_r26->unk58 = var_r24 = 0; + if (temp_r26->unk4C + var_r28 > temp_r26->unk50) { + if (temp_r26->unk50 > temp_r26->unk4C) { + var_r28 = temp_r26->unk50 - temp_r26->unk4C; + temp_r26->unk58 = temp_r5 - var_r28; + temp_r26->unk5C = (void*) ((u32) var_r27 + var_r28); + } else if (temp_r26->unk07 != 0) { + temp_r26->unk4C = temp_r26->unk60; + } else { + memset(var_r27, 0, temp_r5); + if (temp_r26->unk3C_0 != 0) { + var_r24 = temp_r26->unk38 / 2; + } + sndStreamARAMUpdate(temp_r26->unk00, var_r24, temp_r26->unk38 / 2, 0, 0); + var_r28 = 0; + } + } + if (var_r28 != 0) { + if (DVDGetCommandBlockStatus(&temp_r26->unk70.cb) != 0) { + if (temp_r26->unk3C_6 != 1) { + temp_r26->unk3C_6 = 1; + sndStreamMixParameterEx(temp_r26->unk00, 0, 0x40, 0x40, 0, 0); + memset(temp_r26->unk30, 0, temp_r26->unk34); + sndStreamARAMUpdate(temp_r26->unk00, 0, temp_r26->unk38, 0, 0); + } + } else { + if (temp_r26->unk3C_6 == 1) { + temp_r26->unk3C_6 = 0; + msmStreamInline04(temp_r26); + } + temp_r26->unk4C += var_r28; + temp_r26->unk3C_3 = 1; + DVDReadAsync(&temp_r26->unk70, var_r27, var_r28, temp_r26->unk48 + (temp_r26->unk4C - var_r28), msmStreamDvdCallback); + } + } else if (temp_r26->unk3C_1 != 0) { + temp_r26->unk3C_1= 0; + } else { + msmStreamInline06(arg0); + } + temp_r26->unk3C_0 ^= 1; +} + +static inline BOOL msmStreamInline02(s32 streamNo) { + msmStreamUnk20Struct* temp_ptr; + + temp_ptr = &StreamInfo.unk20[streamNo]; + msmStreamSetParamSub(temp_ptr); + sndStreamFrq(temp_ptr->unk00, temp_ptr->unk40); + sndStreamADPCMParameter(temp_ptr->unk00, temp_ptr->unk44); + sndStreamARAMUpdate(temp_ptr->unk00, 0, temp_ptr->unk38 / 2, 0, 0); + if (sndStreamActivate(temp_ptr->unk00)) { + temp_ptr->unk06 = 4; + msmStreamData(streamNo); + return TRUE; + } else { + msmStreamInline00(streamNo); + return FALSE; + } +} + +static void msmStreamDvdCallback(s32 arg0, DVDFileInfo* arg1) { + s32 var_r28; + msmStreamUnk20Struct* temp_r27; + + for (var_r28 = 0; var_r28 < StreamInfo.unk44; var_r28++) { + if (&StreamInfo.unk20[var_r28].unk70 == arg1) { + break; + } + } + if (var_r28 == StreamInfo.unk44) { + return; + } + temp_r27 = &StreamInfo.unk20[var_r28]; + temp_r27->unk3C_3 = 0; + if (temp_r27->unk3C_4 != 0) { + temp_r27->unk3C_4 = 0; + msmStreamInline00(var_r28); + return; + } + if (DVDGetCommandBlockStatus(&arg1->cb) == 0) { + switch (temp_r27->unk06) { + case 2: + if (temp_r27->unk0E != -1) { + if (StreamInfo.unk20[temp_r27->unk0E].unk06 != 3) { + temp_r27->unk06 = 3; + break; + } + if (!msmStreamInline02(temp_r27->unk0E)) { + temp_r27->unk0E = -1; + } + } + if (temp_r27->unk0F != -1) { + if (StreamInfo.unk20[temp_r27->unk0F].unk06 != 3) { + temp_r27->unk06 = 3; + break; + } + if (!msmStreamInline02(temp_r27->unk0F)) { + temp_r27->unk0F = -1; + } + } + if (!msmStreamInline02(var_r28)) { + if (temp_r27->unk0E != -1) { + StreamInfo.unk20[temp_r27->unk0E].unk0F = -1; + } + if (temp_r27->unk0F != -1) { + StreamInfo.unk20[temp_r27->unk0F].unk0E = -1; + } + } + break; + case 4: + if (temp_r27->unk4C >= temp_r27->unk50) { + if (temp_r27->unk07 != 0) { + temp_r27->unk4C = temp_r27->unk60; + if (temp_r27->unk58 != 0) { + temp_r27->unk3C_3 = 1; + DVDReadAsync(arg1, temp_r27->unk5C, temp_r27->unk58, temp_r27->unk48 + temp_r27->unk4C, msmStreamDvdCallback2); + temp_r27->unk4C += temp_r27->unk58; + break; + } + } else if (temp_r27->unk58 != 0) { + memset(temp_r27->unk5C, 0, temp_r27->unk58); + } + } + sndStreamARAMUpdate(temp_r27->unk00, (temp_r27->unk3C_0 != 0) ? 0 : temp_r27->unk38 / 2, temp_r27->unk38 / 2, 0, 0); + break; + case 5: + temp_r27->unk3C_4 = 0; + msmStreamInline00(var_r28); + break; + } + } else { + if (temp_r27->unk06 == 4) { + sndStreamDeactivate(temp_r27->unk00); + } + msmStreamInline00(var_r28); + if (temp_r27->unk0E != -1) { + StreamInfo.unk20[temp_r27->unk0E].unk0F = -1; + } + if (temp_r27->unk0F != -1) { + StreamInfo.unk20[temp_r27->unk0F].unk0E = -1; + } + } +} + +static void msmStreamDvdCallback2(s32 arg0, DVDFileInfo* arg1) { + msmStreamUnk20Struct* var_r30; + s32 var_r28; + + for (var_r28 = 0; var_r28 < StreamInfo.unk44; var_r28++) { + var_r30 = &StreamInfo.unk20[var_r28]; + if (&var_r30->unk70 == arg1) { + break; + } + } + if (var_r28 == StreamInfo.unk44) { + return; + } + var_r30->unk3C_3 = 0; + if (var_r30->unk3C_4 != 0) { + var_r30->unk3C_4 = 0; + msmStreamInline00(var_r28); + } else if (DVDGetCommandBlockStatus(&arg1->cb) == 0) { + sndStreamARAMUpdate(var_r30->unk00, (var_r30->unk3C_0 != 0) ? 0 : var_r30->unk38 / 2, var_r30->unk38 / 2, 0, 0); + } else { + if (var_r30->unk06 == 4) { + sndStreamDeactivate(var_r30->unk00); + } + msmStreamInline00(var_r28); + if (var_r30->unk0E != -1) { + StreamInfo.unk20[var_r30->unk0E].unk0F = -1; + } + if (var_r30->unk0F != -1) { + StreamInfo.unk20[var_r30->unk0F].unk0E = -1; + } + } +} + +static u32 msmStreamUpdateFunc(void* buffer1, u32 len1, void* buffer2, u32 len2, u32 user) { + msmStreamUnk20Struct* temp_r31; + s32 temp_r4; + s32 temp_r0; + s32 var_r3; + + temp_r31 = &StreamInfo.unk20[user]; + if (temp_r31->unk3C_2 != 0) { + msmStreamInline06(user); + return 0; + } + temp_r0 = temp_r31->unk38 / 2; + if (len1 < temp_r0) { + var_r3 = 0; + temp_r31->unk64 = temp_r31->unk68 + (len1 - temp_r31->unk6C); + } else { + msmStreamData(user); + var_r3 = temp_r0; + temp_r4 = temp_r31->unk68 + (temp_r0 - temp_r31->unk6C); + temp_r31->unk68 = temp_r4; + temp_r31->unk64 = temp_r4; + temp_r31->unk6C = 0; + } + if (temp_r31->unk64 >= temp_r31->unk54) { + if (temp_r31->unk07 != 0) { + temp_r31->unk68 = 0; + temp_r31->unk64 -= temp_r31->unk54; + if (len1 < temp_r0) { + temp_r31->unk6C = len1 - temp_r31->unk64; + } + } else { + temp_r31->unk3C_2 = 1; + temp_r31->unk3C_5 = 0; + } + } + return var_r3; +} + +static s32 msmStreamSlotInit(msmStreamUnk20Struct* arg0, StructSlotInitArg1* arg1, StructSlotInitArg2* arg2, s32 arg3) { + StructSlotInitInnerArg1* temp_r10; + s32 temp_r3; + s32 var_r30; + + temp_r10 = &arg1->unk10[arg3]; + arg0->unk08 = arg1->unk01; + arg0->unk09 = arg2->unk00; + arg0->unk0A = arg0->unk0B = 0x7F; + arg0->unk0C = arg1->unk02; + arg0->unk0D = arg2->unk01; + arg0->unk2C = arg2->unk02; + arg0->unk2D = arg2->unk03; + arg0->unk2E = arg2->unk04; + arg0->unk07 = (arg1->unk00 >> 1) & 1; + arg0->unk48 = temp_r10->unk00; + arg0->unk60 = (arg1->unk0C >> 1) & ~7; + arg0->unk40 = arg1->unk06; + arg0->unk44 = &StreamInfo.unk1C[temp_r10->unk04]; + arg0->unk24 = 0; + arg0->unk18 = 0; + arg0->unk14 = 0; + arg0->unk10 = 0; + arg0->unk3C_1 = 1; + arg0->unk3C_2 = 0; + arg0->unk3C_4 = 0; + arg0->unk3C_5 = 0; + arg0->unk3C_6 = 0; + arg0->unk3C_0 = 1; + arg0->unk34 = (StreamInfo.unk48 * StreamInfo.unk4C * 8 / 14 + 0x3F) & ~0x3F; + if (arg0->unk34 > StreamInfo.unk04) { + arg0->unk34 = StreamInfo.unk04; + } + arg0->unk38 = (arg0->unk34 / 8) * 14; + arg0->unk50 = (arg1->unk08 >> 1) & ~0x1F; + arg0->unk54 = (arg0->unk50 / 8) * 14; + arg0->unk64 = arg0->unk68 = 0; + arg0->unk6C = 0; + arg0->unk0E = -1; + arg0->unk0F = -1; + arg0->unk4C = arg2->unk08; + var_r30 = arg0->unk34 / 2; + if ((temp_r3 = arg0->unk50 - arg0->unk4C) < arg0->unk34 / 2) { + var_r30 = temp_r3; + arg0->unk58 = arg0->unk34 / 2 - temp_r3; + arg0->unk5C = (void*) ((u32) arg0->unk30 + temp_r3); + memset(arg0->unk5C, 0, arg0->unk58); + } + arg0->unk06 = 2; + return var_r30; +} diff --git a/src/msm/msmsys.c b/src/msm/msmsys.c index 726a3a29..6dcd4ac9 100644 --- a/src/msm/msmsys.c +++ b/src/msm/msmsys.c @@ -5,8 +5,6 @@ #include "msm/msmse.h" #include "msm/msmstream.h" -#include "game/msm.h" // TODO remove, only for decomp - static sysData sys; static void msmSysServer(void) From ef9659fef21637911edcd09802a12d8ec69eeff1 Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Wed, 15 Jan 2025 23:14:44 +0100 Subject: [PATCH 258/311] Finish m433Dll (#533) * Remove TODO * Finish m433Dll --- config/GMPE01_00/rels/m433Dll/symbols.txt | 6 +- configure.py | 2 +- src/REL/m433Dll/player.c | 4599 +++++++++------------ src/REL/m434Dll/player.c | 2 - 4 files changed, 2050 insertions(+), 2559 deletions(-) diff --git a/config/GMPE01_00/rels/m433Dll/symbols.txt b/config/GMPE01_00/rels/m433Dll/symbols.txt index 11a976cf..092ebc7d 100644 --- a/config/GMPE01_00/rels/m433Dll/symbols.txt +++ b/config/GMPE01_00/rels/m433Dll/symbols.txt @@ -428,8 +428,8 @@ lbl_1_data_445 = .data:0x00000445; // type:object size:0xB scope:local data:stri lbl_1_data_450 = .data:0x00000450; // type:object size:0x18 lbl_1_data_468 = .data:0x00000468; // type:object size:0x24 lbl_1_data_48C = .data:0x0000048C; // type:object size:0x48 -lbl_1_data_4D4 = .data:0x000004D4; // type:object size:0x6C -lbl_1_data_540 = .data:0x00000540; // type:object size:0x24 +lbl_1_data_4D4 = .data:0x000004D4; // type:object size:0x6C data:float +lbl_1_data_540 = .data:0x00000540; // type:object size:0x24 data:float lbl_1_data_564 = .data:0x00000564; // type:object size:0x2 scope:local data:string lbl_1_data_566 = .data:0x00000566; // type:object size:0x15 scope:local data:string lbl_1_data_57B = .data:0x0000057B; // type:object size:0x15 scope:local data:string @@ -441,7 +441,7 @@ lbl_1_data_5EA = .data:0x000005EA; // type:object size:0x15 scope:local data:str lbl_1_data_5FF = .data:0x000005FF; // type:object size:0x15 scope:local data:string lbl_1_data_614 = .data:0x00000614; // type:object size:0x15 scope:local data:string lbl_1_data_629 = .data:0x00000629; // type:object size:0x15 scope:local data:string -lbl_1_data_63E = .data:0x0000063E; // type:object size:0x16 data:string +lbl_1_data_63E = .data:0x0000063E; // type:object size:0x16 scope:local data:string jumptable_1_data_654 = .data:0x00000654; // type:object size:0x20 scope:local lbl_1_data_674 = .data:0x00000674; // type:object size:0xC lbl_1_data_680 = .data:0x00000680; // type:object size:0x8 diff --git a/configure.py b/configure.py index 83d74200..e653b8d1 100644 --- a/configure.py +++ b/configure.py @@ -1123,7 +1123,7 @@ config.libs = [ objects={ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m433Dll/main.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m433Dll/map.c"), - Object(NonMatching, "REL/m433Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m433Dll/player.c"), }, ), Rel( diff --git a/src/REL/m433Dll/player.c b/src/REL/m433Dll/player.c index cbe26c9a..21b2ff60 100644 --- a/src/REL/m433Dll/player.c +++ b/src/REL/m433Dll/player.c @@ -1,3 +1,5 @@ +#include "datadir_enum.h" +#include "dolphin/mtx.h" #include "ext_math.h" #include "game/audio.h" #include "game/chrman.h" @@ -30,7 +32,7 @@ typedef struct M433PlayerWork { s32 unk_04; s32 unk_08; s32 unk_0C; - char unk10[4]; + u32 unk_10; u32 unk_14; u32 unk_18; u32 unk_1C; @@ -48,7 +50,7 @@ typedef struct M433PlayerWork { s32 unk_4C; char unk50[4]; s32 unk_54; - char unk58[4]; + s32 unk_58; s32 unk_5C; s32 unk_60; s32 unk_64; @@ -75,7 +77,7 @@ typedef struct M433PlayerWork { float unk_B8; float unk_BC; float unk_C0; - char unkC4[0x08]; + char unkC4[8]; u32 unk_CC; u32 unk_D0; u32 unk_D4; @@ -99,52 +101,112 @@ typedef struct M433PlayerWork { omObjData *unk_14C; } M433PlayerWork; /* size = 0x150 */ +typedef struct M433PlayerWork2Sub { + float unk_00; + float unk_04; + float unk_08; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + float unk_20; + float unk_24; + float unk_28; + Vec unk_2C; + Vec unk_38; +} M433PlayerWork2Sub; /* size = 0x44 */ + typedef struct M433PlayerWork2 { - char unk00[0x18]; - s16 unk_18; - char unk1A[0x16]; - float unk_30; - float unk_34; - float unk_38; - char unk3C[0x7C]; - float unk_B8; - float unk_BC; - float unk_C0; - float unk_C4; - Mtx unk_C8; - char unkF8[0x44]; -} M433PlayerWork2; /* size = 0x13C */ - -typedef struct M433PlayerWork3SubStruct { - char unk00[2]; - s16 unk_02[5]; -} M433PlayerWork3SubStruct; /* size = 0xC */ - -typedef struct M433PlayerWork3SubStruct2 { - char unk00[0x78]; - s16 unk_78; - s16 unk_7A; - char unk7C[0x28]; - s16 unk_A4; - s16 unk_A6; - char unkA8[0x3E8]; - s32 unk_490[2]; - char unk498[8]; -} M433PlayerWork3SubStruct2; /* size = 0x4A0 */ - -typedef struct M433PlayerWork3 { s32 unk_00; s32 unk_04; s32 unk_08; - char unk0C[0xC]; - s32 unk_18; - s32 unk_1C; - char unk20[0xC]; + s32 unk_0C; + s32 unk_10; + char unk14[4]; + u16 unk_18; + char unk1A[0x16]; + Vec unk_30; + Vec unk_3C; + float unk_48; + Vec unk_4C; + char unk58[0x14]; + u32 unk_6C; + s32 unk_70; + s32 unk_74; + u32 unk_78; + float unk_7C[2]; + float unk_84[2]; + s32 unk_8C; + u32 unk_90; + u32 unk_94; + s32 unk_98; + float unk_9C; + float unk_A0; + float unk_A4; + float unk_A8; + Vec unk_AC; + float unk_B8; + Vec unk_BC; + Mtx unk_C8; + M433PlayerWork2Sub unk_F8; +} M433PlayerWork2; /* size = 0x13C */ + +typedef struct M433PlayerWork3Sub { + s16 unk_00; + s16 unk_02[5]; +} M433PlayerWork3Sub; /* size = 0xC */ + +typedef struct M433PlayerWork3Sub2Sub { + s16 unk_00[2]; + float unk_04[2]; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + float unk_20; + float unk_24; + float unk_28; +} M433PlayerWork3Sub2Sub; /* size 0x2C */ + +typedef struct M433PlayerWork3Sub2Sub2 { + s32 unk_00[2]; + char unk08[8]; +} M433PlayerWork3Sub2Sub2; /* size 0x10 */ + +typedef struct M433PlayerWork3Sub2 { + s32 unk_00; + u32 unk_04; + u32 unk_08; + s32 unk_0C; + s32 unk_10; + s32 unk_14[2]; + u32 unk_1C; + M433PlayerWork3Sub2Sub unk_20[4]; + M433PlayerWork3Sub2Sub2 unk_D0[3][0x14]; + M433PlayerWork3Sub2Sub2 unk_490; +} M433PlayerWork3Sub2; /* size = 0x4A0 */ + +typedef struct M433PlayerWork3 { + u32 uGameEvent; + s32 sWinGrp; + u32 uServeGrp; + u32 uPointGrp; + u32 auServeCel[2]; + u32 auEvents[2]; + u32 unk_20[2]; + u32 unk_28; s32 unk_2C; s32 unk_30; - char unk34[0x18]; - M433PlayerWork3SubStruct unk_4C[2]; - M433PlayerWork3SubStruct2 unk_64; + u32 uContactCnt; + s32 sGroundGrp; + u32 uContactGrp; + u32 uContactCel; + u32 uTargetGrp; + u32 unk_48; + M433PlayerWork3Sub unk_4C[2]; + M433PlayerWork3Sub2 unk_64; } M433PlayerWork3; /* size = 0x504 */ typedef struct M433DllPlayerData24CStruct { @@ -155,11 +217,6 @@ typedef struct M433DllPlayerData24CStruct { /* 0x10 */ u32 unk_10; } M433DllPlayerData24CStruct; /* size = 0x14 */ -typedef struct M433DllPlayerData6C0Struct { - /* 0x00 */ s32 unk_00; - /* 0x04 */ char pad_04[0xC]; /* maybe part of unk_00[4]? */ -} M433DllPlayerData6C0Struct; /* size = 0x10 */ - typedef struct M433DllPlayerData794Struct { /* 0x00 */ s32 unk_00; /* 0x04 */ s32 unk_04; @@ -167,7 +224,7 @@ typedef struct M433DllPlayerData794Struct { } M433DllPlayerData794Struct; /* size = 0x0C */ void fn_1_10130(Vec *arg0, u32 arg1); -void fn_1_10260(float arg8, float arg9, u32 arg0, s32 arg1, Vec *arg2); +void fn_1_10260(float arg8, float arg9, u32 arg0, u32 arg1, Vec *arg2); s32 fn_1_10614(Vec *arg0); void fn_1_1070C(void); u32 fn_1_10740(Vec *arg0); @@ -210,21 +267,22 @@ void fn_1_C240(omObjData *object); void fn_1_C6AC(omObjData *object); s32 fn_1_C6B0(omObjData *object); void fn_1_CB98(omObjData *object); -void fn_1_CDB8(float *arg0, Vec *arg1, Vec *arg2, u32 arg3, float arg8); -void fn_1_D180(float *arg0); -void fn_1_D338(float *arg0); -s32 fn_1_D4E0(float *arg0, Vec *arg1, Vec *arg2, float arg8); +void fn_1_CDB8(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, u32 arg3, float arg8); +void fn_1_D180(M433PlayerWork2Sub *arg0); +void fn_1_D338(M433PlayerWork2Sub *arg0); +s32 fn_1_D4E0(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, float arg8); void fn_1_D6A8(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_D888(Vec *arg0, float arg8); void fn_1_DD70(Vec *arg0); void fn_1_DE28(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_DF44(omObjData *object); void fn_1_E11C(omObjData *object); -void fn_1_E5C0(M433PlayerWork3SubStruct *arg0, M433PlayerWork3SubStruct2 *arg1); -void fn_1_ECFC(void *arg0, void *arg1); -void fn_1_FE64(void *arg0, s32 arg1, s32 arg2, u32 arg3); +void fn_1_E5C0(M433PlayerWork3Sub *arg0, M433PlayerWork3Sub2 *arg1); +void fn_1_ECFC(M433PlayerWork3Sub *arg0, M433PlayerWork3Sub2 *arg1); +void fn_1_FE64(M433PlayerWork3Sub2 *arg0, s32 arg1, s32 arg2, u32 arg3); void fn_1_FE8C(Vec *arg0, u32 arg1, u32 arg2, s32 arg3); +s32 lbl_1_data_C8[6] = { 0, 1, 2, 3, 4, 5 }; float lbl_1_data_E0[0xE] = { 130.0f, 130.0f, @@ -266,12 +324,12 @@ s32 lbl_1_data_150[6][2] = { { 0x3E, 0x3F }, }; s32 lbl_1_data_180[0x11] = { - 0x400061, - 0x400062, - 0x400063, - 0x400064, - 0x400065, - 0x400066, + DATA_MAKE_NUM(DATADIR_M433, 97), + DATA_MAKE_NUM(DATADIR_M433, 98), + DATA_MAKE_NUM(DATADIR_M433, 99), + DATA_MAKE_NUM(DATADIR_M433, 100), + DATA_MAKE_NUM(DATADIR_M433, 101), + DATA_MAKE_NUM(DATADIR_M433, 102), 0, 0, 0, @@ -288,39 +346,39 @@ u32 lbl_1_data_1C4[0x11] = { 0, 2, 3, - 0x400011, - 0x400019, - 0x400021, - 0x400029, - 0x400031, - 0x400039, - 0x400041, - 0x400049, - 0x400051, - 0x400059, + DATA_MAKE_NUM(DATADIR_M433, 0x11), + DATA_MAKE_NUM(DATADIR_M433, 0x19), + DATA_MAKE_NUM(DATADIR_M433, 0x21), + DATA_MAKE_NUM(DATADIR_M433, 0x29), + DATA_MAKE_NUM(DATADIR_M433, 0x31), + DATA_MAKE_NUM(DATADIR_M433, 0x39), + DATA_MAKE_NUM(DATADIR_M433, 0x41), + DATA_MAKE_NUM(DATADIR_M433, 0x49), + DATA_MAKE_NUM(DATADIR_M433, 0x51), + DATA_MAKE_NUM(DATADIR_M433, 0x59), 0x17, 0x18, 0x48, 0x49, }; s32 lbl_1_data_208[0x11] = { - 0x400067, - 0x40006D, - 0x400073, - 0x400079, - 0x40007F, - 0x400085, - 0x40008B, - 0x400091, - 0x400097, - 0x40009D, - 0x4000A3, - 0x4000A9, - 0x4000AF, - 0x4000B5, - 0x4000C1, - 0x4000BB, - 0x4000C7, + DATA_MAKE_NUM(DATADIR_M433, 0x67), + DATA_MAKE_NUM(DATADIR_M433, 0x6D), + DATA_MAKE_NUM(DATADIR_M433, 0x73), + DATA_MAKE_NUM(DATADIR_M433, 0x79), + DATA_MAKE_NUM(DATADIR_M433, 0x7F), + DATA_MAKE_NUM(DATADIR_M433, 0x85), + DATA_MAKE_NUM(DATADIR_M433, 0x8B), + DATA_MAKE_NUM(DATADIR_M433, 0x91), + DATA_MAKE_NUM(DATADIR_M433, 0x97), + DATA_MAKE_NUM(DATADIR_M433, 0x9D), + DATA_MAKE_NUM(DATADIR_M433, 0xA3), + DATA_MAKE_NUM(DATADIR_M433, 0xA9), + DATA_MAKE_NUM(DATADIR_M433, 0xAF), + DATA_MAKE_NUM(DATADIR_M433, 0xB5), + DATA_MAKE_NUM(DATADIR_M433, 0xC1), + DATA_MAKE_NUM(DATADIR_M433, 0xBB), + DATA_MAKE_NUM(DATADIR_M433, 0xC7), }; M433DllPlayerData24CStruct lbl_1_data_24C[0x15] = { { 0, 0.2f, 0.0f, -1.0f, 0x40000001 }, @@ -361,84 +419,6 @@ u32 lbl_1_data_3F0[0xE] = { 0x28, 0x32, }; -char *lbl_1_data_450[6] = { - "itemhook_R", - "itemhook_r", - "itemhook_R", - "itemhook_R", - "itemhook_r", - "itemhook_r", -}; -s32 lbl_1_data_468[9] = { 0, 0, 1, 1, 1, 1, 1, 0, 1 }; -float lbl_1_data_48C[0x12] = { - 0.0f, - 0.6666667f, - 2.1666667f, - 2.0f, - 1.0f, - 7.0000005f, - 1.5000001f, - 1.5000001f, - 3.0000002f, - 0.0f, - 0.0f, - 1e-45f, - 0.0f, - 0.0f, - 1e-45f, - 0.0f, - 0.0f, - 1e-45f, -}; -Vec lbl_1_data_4D4[9] = { - { 0.0f, 0.0f, 1.0f }, - { 0.0f, 1.5f, 1.0f }, - { 236.5f, 0.0f, 1300.0f }, - { 0.0f, 1.5f, 1.0f }, - { 0.0f, 1.8f, 1.0f }, - { 231.0f, 0.0f, 1500.0f }, - { 231.0f, 0.0f, 1000.0f }, - { 0.0f, 1.2f, 1.0f }, - { 0.0f, 0.8f, 1.0f }, -}; -float lbl_1_data_540[9] = { 1.0f, 1.0f, 3.0f, 1.0f, 1.0f, 4.0f, 2.0f, 1.0f, 1.0f }; -s8 lbl_1_data_564 = 0xA; -u16 lbl_1_data_674[6] = { 0, 1, 2, 3, 3, 0 }; -s32 lbl_1_data_680[2] = { 0x61001E, 0x61001F }; -Vec2f lbl_1_data_688[5] = { - { 0.0f, 0.0f }, - { 0.0f, 0.0f }, - { -23.0f, 0.0f }, - { 1.0f, 0.0f }, - { 21.0f, 0.0f }, -}; -Vec2f lbl_1_data_6B0[2] = { { 72.0f, 56.0f }, { 504.0f, 56.0f } }; -M433DllPlayerData6C0Struct lbl_1_data_6C0[0xB] = { - { 0x13000B }, - { 0x13000C }, - { 0x13000D }, - { 0x13000E }, - { 0x13000F }, - { 0x130010 }, - { 0x130011 }, - { 0x130012 }, - { 0x130013 }, - { 0x130014 }, - { 0x130099 }, -}; -s32 lbl_1_data_770[9] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; -M433DllPlayerData794Struct lbl_1_data_794[9] = { - { 0, 0, 0 }, - { 0, 0, 0 }, - { 1, 1, 0 }, - { 1, 0, 1 }, - { 1, 0, 1 }, - { 1, 1, 0 }, - { 1, 1, 0 }, - { 1, 0, 1 }, - { 1, 0, 1 }, -}; -u32 lbl_1_data_800[9] = { 0, 1, 2, 1, 1, 2, 1, 1, 1 }; // M433PlayerWork omObjData *lbl_1_bss_7D0[5]; @@ -530,7 +510,7 @@ void fn_1_5B98(omObjData *object) object->model[0] = Hu3DModelCreateFile(lbl_1_data_180[work->unk_04]); } Hu3DModelShadowSet(object->model[0]); - object->model[1] = Hu3DModelCreateFile(0x400008); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 8)); Hu3DModelLayerSet(object->model[1], 1); for (var_r29 = 0; var_r29 < 0x11; var_r29++) { if (work->unk_04 < 0) { @@ -582,13 +562,9 @@ void fn_1_60C0(omObjData *object) float var_f31; float var_f30; - M433PlayerWork *work; - s32 var_r29; - M433PlayerWork *var_r28; - - work = object->data; - var_r29 = 0; - var_r28 = work->unk_14C->data; + M433PlayerWork *work = object->data; + s32 var_r29 = 0; + M433PlayerWork *var_r28 = work->unk_14C->data; work->unk_1C = 0; work->unk_20 = 0; work->unk_28 = 0.0f; @@ -911,6 +887,48 @@ void fn_1_682C(omObjData *object) } } +char *lbl_1_data_450[6] = { + "itemhook_R", + "itemhook_r", + "itemhook_R", + "itemhook_R", + "itemhook_r", + "itemhook_r", +}; +s32 lbl_1_data_468[9] = { 0, 0, 1, 1, 1, 1, 1, 0, 1 }; +float lbl_1_data_48C[0x12] = { + 0.0f, + 0.6666667f, + 2.1666667f, + 2.0f, + 1.0f, + 7.0000005f, + 1.5000001f, + 1.5000001f, + 3.0000002f, + 0.0f, + 0.0f, + 1e-45f, + 0.0f, + 0.0f, + 1e-45f, + 0.0f, + 0.0f, + 1e-45f, +}; +Vec lbl_1_data_4D4[9] = { + { 0.0f, 0.0f, 1.0f }, + { 0.0f, 1.5f, 1.0f }, + { 236.5f, 0.0f, 1300.0f }, + { 0.0f, 1.5f, 1.0f }, + { 0.0f, 1.8f, 1.0f }, + { 231.0f, 0.0f, 1500.0f }, + { 231.0f, 0.0f, 1000.0f }, + { 0.0f, 1.2f, 1.0f }, + { 0.0f, 0.8f, 1.0f }, +}; +float lbl_1_data_540[9] = { 1.0f, 1.0f, 3.0f, 1.0f, 1.0f, 4.0f, 2.0f, 1.0f, 1.0f }; + void fn_1_722C(omObjData *object) { Vec sp8; @@ -958,13 +976,11 @@ void fn_1_74D4(omObjData *object) Vec sp1C; Vec sp10; M433PlayerWork *spC; - s32 sp8; float var_f31; - s32 var_r29; M433PlayerWork *work = object->data; - var_r29 = 1; - sp8 = 0; + s32 var_r29 = 1; + s32 sp8 = 0; spC = work->unk_14C->data; switch (work->unk_74) { case 0: @@ -1293,10 +1309,9 @@ s32 fn_1_8938(u32 var_r27, Vec *var_r29) float var_f28; u32 var_r31; u32 var_r30; - M433PlayerWork *work; for (var_r31 = 0, var_r30 = 0; (var_r30 < 4) && (var_r31 < 2); var_r30++) { - work = lbl_1_bss_7D0[var_r30]->data; + M433PlayerWork *work = lbl_1_bss_7D0[var_r30]->data; if (work->unk_14 != var_r27) { sp2C[var_r31] = work->unk_128; sp2C[var_r31].y = 0.0f; @@ -1343,10 +1358,9 @@ void fn_1_8BD0(omObjData *object) Vec sp8; float var_f31; float var_f30; - s32 var_r29; M433PlayerWork *work = object->data; - var_r29 = 1; + s32 var_r29 = 1; if ((work->unk_30 == 0) && (work->unk_60 == 0)) { if ((work->unk_24 > 0.0f) && (work->unk_34 == 0)) { work->unk_A8 = work->unk_28; @@ -1416,17 +1430,15 @@ void fn_1_8F80(omObjData *object) Vec sp10; float var_f31; float var_f30; - s32 var_r29; - char *var_r28; M433PlayerWork *work = object->data; - var_r29 = work->unk_40; + s32 var_r29 = work->unk_40; { s32 sp8[2] = { 0x6A4, 0x6A5 }; work->unk_3C = 0; work->unk_40 = 0; if (work->unk_04 < 0) { - var_r28 = CharModelHookNameGet(work->unk_00, 4, 0); + char *var_r28 = CharModelHookNameGet(work->unk_00, 4, 0); Hu3DModelObjPosGet(object->model[0], var_r28, &sp10); } else { @@ -1534,272 +1546,260 @@ void fn_1_9688(omObjData *object) { Vec sp2C; Vec sp20; - s32 sp14; - s32 sp10; - s32 spC; - s32 sp8; float var_f31; float var_f30; float var_f29; - M433PlayerWork *work; - M433PlayerWork *var_r29; - work = object->data; - { - s32 sp38[3][3] = { { 3, 4, 6 }, { 3, 4, 6 }, { 3, 4, 7 } }; - s32 sp18[2] = { 0x6AD, 0x6AE }; - s32 sp10[2] = { 0x6A6, 0x6A7 }; - s32 sp8[2] = { 0x6AA, 0x6AB }; - var_r29 = work->unk_14C->data; - work->unk_4C = 0; - work->unk_44 = 0; - work->unk_48 = 0; - if (work->unk_60 == 0) { - switch (work->unk_7C) { - case 0: - if ((work->unk_7C == 0) && (work->unk_78 == 0) && (work->unk_80 == 0) - && (work->unk_30 = 0, work->unk_64 = 0, ((work->unk_34 == 0) != 0)) && (work->unk_14 == fn_1_10740(&sp2C)) - && (fn_1_11004(work->unk_14, work->unk_18) != 0) && (fn_1_10FDC() < 3)) { - work->unk_140 = sp2C; - var_f31 = fn_1_10848(); - if ((var_f31 <= 0.8f) && (var_f31 >= 0.02f) && (var_r29->unk_64 == 0)) { - PSVECSubtract(&sp2C, &work->unk_128, &sp20); - sp20.y = 0.0f; - var_f30 = PSVECMag(&sp20); - work->unk_98 = var_f30; - if (var_f30 <= 200.0f) { - if ((var_f31 >= 0.2f) && (var_f30 <= 70.0f) && (var_f31 >= (0.2f + (0.001f * var_f30))) && (fn_1_10FDC() >= 1)) { - work->unk_4C = 1; - } - if ((var_f31 >= 0.02f) && (var_f30 <= 100.0f) && (var_f31 >= (0.02f + (0.001f * var_f30)))) { - work->unk_44 = 1; - } - if ((var_f31 >= 0.1f) && (var_f31 <= 0.3f) && (var_f30 > 100.0f) && (var_f30 <= 200.0f) - && (var_f31 >= (0.1f + (0.0002f * (var_f30 - 100.0f))))) { - work->unk_48 = 1; - } + M433PlayerWork *work = object->data; + s32 sp38[3][3] = { { 3, 4, 6 }, { 3, 4, 6 }, { 3, 4, 7 } }; + s32 sp18[2] = { 0x6AD, 0x6AE }; + s32 sp10[2] = { 0x6A6, 0x6A7 }; + s32 sp8[2] = { 0x6AA, 0x6AB }; + M433PlayerWork *var_r29 = work->unk_14C->data; + + work->unk_4C = 0; + work->unk_44 = 0; + work->unk_48 = 0; + if (work->unk_60 == 0) { + switch (work->unk_7C) { + case 0: + if ((work->unk_7C == 0) && (work->unk_78 == 0) && (work->unk_80 == 0) + && (work->unk_30 = 0, work->unk_64 = 0, ((work->unk_34 == 0) != 0)) && (work->unk_14 == fn_1_10740(&sp2C)) + && (fn_1_11004(work->unk_14, work->unk_18) != 0) && (fn_1_10FDC() < 3)) { + work->unk_140 = sp2C; + var_f31 = fn_1_10848(); + if ((var_f31 <= 0.8f) && (var_f31 >= 0.02f) && (var_r29->unk_64 == 0)) { + PSVECSubtract(&sp2C, &work->unk_128, &sp20); + sp20.y = 0.0f; + var_f30 = PSVECMag(&sp20); + work->unk_98 = var_f30; + if (var_f30 <= 200.0f) { + if ((var_f31 >= 0.2f) && (var_f30 <= 70.0f) && (var_f31 >= (0.2f + (0.001f * var_f30))) && (fn_1_10FDC() >= 1)) { + work->unk_4C = 1; } - } - if ((work->unk_1C & 0x100) != 0) { - work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; - if (work->unk_4C != 0) { - work->unk_7C = 1; - var_f31 -= 0.12f; - work->unk_98 *= 0.014285714f; - fn_1_B4D4(object, 0xF); - fn_1_10B20(0.0f, &sp2C); + if ((var_f31 >= 0.02f) && (var_f30 <= 100.0f) && (var_f31 >= (0.02f + (0.001f * var_f30)))) { + work->unk_44 = 1; } - else if (work->unk_44 != 0) { - work->unk_7C = 2; - var_f31 -= 0.03f; - work->unk_98 *= 0.01f; - fn_1_B4D4(object, 0xE); - fn_1_10B20(0.0f, &sp2C); + if ((var_f31 >= 0.1f) && (var_f31 <= 0.3f) && (var_f30 > 100.0f) && (var_f30 <= 200.0f) + && (var_f31 >= (0.1f + (0.0002f * (var_f30 - 100.0f))))) { + work->unk_48 = 1; } - else if (work->unk_48 != 0) { - work->unk_7C = 3; - var_f31 -= 0.03f; - work->unk_98 *= 0.005f; - fn_1_B4D4(object, 7); - fn_1_D888(&work->unk_128, 0.75f); - HuAudFXPlay(sp8[work->unk_14]); - } - else { - if (fn_1_10FDC() >= 1) { - fn_1_B4D4(object, 9); - } - else { - fn_1_B4D4(object, 6); - } - work->unk_7C = 4; - } - if (work->unk_7C < 4) { - work->unk_64 = 1; - if (var_f31 < 0.0f) { - var_f31 = 0.0f; - } - work->unk_90 = 60.0f * var_f31; - } - PSVECSubtract(&sp2C, &work->unk_128, &sp20); - work->unk_A8 = atan2d(sp20.x, sp20.z); - work->unk_AC = 0.2f; - work->unk_B0 = 0.0f; - work->unk_30 = 1; - work->unk_88 = 0; } } + if ((work->unk_1C & 0x100) != 0) { + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + if (work->unk_4C != 0) { + work->unk_7C = 1; + var_f31 -= 0.12f; + work->unk_98 *= 0.014285714f; + fn_1_B4D4(object, 0xF); + fn_1_10B20(0.0f, &sp2C); + } + else if (work->unk_44 != 0) { + work->unk_7C = 2; + var_f31 -= 0.03f; + work->unk_98 *= 0.01f; + fn_1_B4D4(object, 0xE); + fn_1_10B20(0.0f, &sp2C); + } + else if (work->unk_48 != 0) { + work->unk_7C = 3; + var_f31 -= 0.03f; + work->unk_98 *= 0.005f; + fn_1_B4D4(object, 7); + fn_1_D888(&work->unk_128, 0.75f); + HuAudFXPlay(sp8[work->unk_14]); + } + else { + if (fn_1_10FDC() >= 1) { + fn_1_B4D4(object, 9); + } + else { + fn_1_B4D4(object, 6); + } + work->unk_7C = 4; + } + if (work->unk_7C < 4) { + work->unk_64 = 1; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + work->unk_90 = 60.0f * var_f31; + } + PSVECSubtract(&sp2C, &work->unk_128, &sp20); + work->unk_A8 = atan2d(sp20.x, sp20.z); + work->unk_AC = 0.2f; + work->unk_B0 = 0.0f; + work->unk_30 = 1; + work->unk_88 = 0; + } + } + break; + case 1: + if (work->unk_88 >= work->unk_90) { + if (work->unk_64 != 0) { + if (fn_1_10FDC() >= 2) { + sp2C.x = 350.0f; + sp2C.y = 11.0f; + sp2C.z = 0.0f; + if (work->unk_14 != 0) { + sp2C.x *= -1.0f; + } + } + else { + sp2C = var_r29->unk_128; + sp2C.y = 11.0f; + sp2C.x *= 0.5f; + } + var_f29 = frandmod(0x168); + var_f30 = 200.0f * work->unk_98; + sp2C.x += var_f30 * sind(var_f29); + sp2C.z += var_f30 * cosd(var_f29); + if (fn_1_10FDC() < 2) { + fn_1_10130(&sp2C, work->unk_14); + } + fn_1_FE8C(&sp2C, sp38[0][fn_1_10FDC()], work->unk_14, work->unk_18); + fn_1_D888(&work->unk_128, 0.0f); + HuAudFXPlay(sp10[work->unk_14]); + } + work->unk_64 = 0; + fn_1_B4D4(object, 9); + PSVECSubtract(&sp2C, &work->unk_128, &sp20); + work->unk_A8 = atan2d(sp20.x, sp20.z); + work->unk_AC = 0.1f; + work->unk_90 = 0x186A0; + work->unk_88 = 0; break; - case 1: - if (work->unk_88 >= work->unk_90) { - if (work->unk_64 != 0) { - if (fn_1_10FDC() >= 2) { + } + if (work->unk_90 < 0x2710) { + work->unk_134.x = 0.07f * (work->unk_140.x - work->unk_128.x); + work->unk_134.z = 0.07f * (work->unk_140.z - work->unk_128.z); + if (work->unk_64 == 0) { + work->unk_90 = 0; + } + } + else { + work->unk_134.x *= 0.7f; + work->unk_134.z *= 0.7f; + if (fn_1_B6E0(object) != 0) { + work->unk_7C = 0; + } + } + break; + case 2: + if (work->unk_88 >= work->unk_90) { + if (work->unk_64 != 0) { + switch (fn_1_10FDC()) { + case 0: + sp2C = var_r29->unk_128; + sp2C.y = 11.0f; + break; + case 1: + sp2C = var_r29->unk_128; + sp2C.y = 11.0f; + sp2C.x *= 0.5f; + break; + case 2: + default: sp2C.x = 350.0f; sp2C.y = 11.0f; sp2C.z = 0.0f; if (work->unk_14 != 0) { sp2C.x *= -1.0f; } - } - else { - sp2C = var_r29->unk_128; - sp2C.y = 11.0f; - sp2C.x *= 0.5f; - } - var_f29 = frandmod(0x168); - var_f30 = 200.0f * work->unk_98; - sp2C.x += var_f30 * sind(var_f29); - sp2C.z += var_f30 * cosd(var_f29); - if (fn_1_10FDC() < 2) { - fn_1_10130(&sp2C, work->unk_14); - } - fn_1_FE8C(&sp2C, sp38[0][fn_1_10FDC()], work->unk_14, work->unk_18); - fn_1_D888(&work->unk_128, 0.0f); + break; + } + var_f29 = frandmod(0x168); + var_f30 = 200.0f * work->unk_98; + sp2C.x += var_f30 * sind(var_f29); + sp2C.z += var_f30 * cosd(var_f29); + if (fn_1_10FDC() < 2) { + fn_1_10130(&sp2C, work->unk_14); + } + fn_1_FE8C(&sp2C, sp38[1][fn_1_10FDC()], work->unk_14, work->unk_18); + fn_1_D888(&work->unk_128, 0.0f); + if (fn_1_10FDC() < 1) { + HuAudFXPlay(sp18[work->unk_14]); + } + else { HuAudFXPlay(sp10[work->unk_14]); } - work->unk_64 = 0; - fn_1_B4D4(object, 9); - PSVECSubtract(&sp2C, &work->unk_128, &sp20); - work->unk_A8 = atan2d(sp20.x, sp20.z); - work->unk_AC = 0.1f; - work->unk_90 = 0x186A0; - work->unk_88 = 0; - break; - } - if (work->unk_90 < 0x2710) { - work->unk_134.x = 0.07f * (work->unk_140.x - work->unk_128.x); - work->unk_134.z = 0.07f * (work->unk_140.z - work->unk_128.z); - if (work->unk_64 == 0) { - work->unk_90 = 0; - } - } - else { - work->unk_134.x *= 0.7f; - work->unk_134.z *= 0.7f; - if (fn_1_B6E0(object) != 0) { - work->unk_7C = 0; - } } + work->unk_64 = 0; + fn_1_B4D4(object, 6); + PSVECSubtract(&sp2C, &work->unk_128, &sp20); + work->unk_A8 = atan2d(sp20.x, sp20.z); + work->unk_AC = 0.1f; + work->unk_90 = 0x186A0; + work->unk_88 = 0; break; - case 2: - if (work->unk_88 >= work->unk_90) { - if (work->unk_64 != 0) { - switch (fn_1_10FDC()) { - case 0: - sp2C = var_r29->unk_128; - sp2C.y = 11.0f; - break; - case 1: - sp2C = var_r29->unk_128; - sp2C.y = 11.0f; - sp2C.x *= 0.5f; - break; - case 2: - default: - sp2C.x = 350.0f; - sp2C.y = 11.0f; - sp2C.z = 0.0f; - if (work->unk_14 != 0) { - sp2C.x *= -1.0f; - } - break; - } - var_f29 = frandmod(0x168); - var_f30 = 200.0f * work->unk_98; - sp2C.x += var_f30 * sind(var_f29); - sp2C.z += var_f30 * cosd(var_f29); - if (fn_1_10FDC() < 2) { - fn_1_10130(&sp2C, work->unk_14); - } - fn_1_FE8C(&sp2C, sp38[1][fn_1_10FDC()], work->unk_14, work->unk_18); - fn_1_D888(&work->unk_128, 0.0f); - if (fn_1_10FDC() < 1) { - HuAudFXPlay(sp18[work->unk_14]); - } - else { - HuAudFXPlay(sp10[work->unk_14]); - } - } - work->unk_64 = 0; - fn_1_B4D4(object, 6); - PSVECSubtract(&sp2C, &work->unk_128, &sp20); - work->unk_A8 = atan2d(sp20.x, sp20.z); - work->unk_AC = 0.1f; - work->unk_90 = 0x186A0; - work->unk_88 = 0; + } + if (work->unk_90 < 0x2710) { + work->unk_134.x = 0.07f * (work->unk_140.x - work->unk_128.x); + work->unk_134.z = 0.07f * (work->unk_140.z - work->unk_128.z); + if (work->unk_64 == 0) { + work->unk_90 = 0; break; } - if (work->unk_90 < 0x2710) { - work->unk_134.x = 0.07f * (work->unk_140.x - work->unk_128.x); - work->unk_134.z = 0.07f * (work->unk_140.z - work->unk_128.z); - if (work->unk_64 == 0) { - work->unk_90 = 0; - break; - } - } - else { - work->unk_134.x *= 0.7f; - work->unk_134.z *= 0.7f; - if (fn_1_B6E0(object) != 0) { - work->unk_7C = 0; - break; - } - } - break; - case 3: - if (work->unk_88 >= work->unk_90) { - if (work->unk_64 != 0) { - sp2C = work->unk_128; - sp2C.y = 11.0f; - PSVECSubtract(&var_r29->unk_128, &work->unk_128, &sp20); - var_f29 = 180.0 + (atan2d(sp20.x, sp20.z)); - var_f29 += frandmod(0xB4) - 90.0f; - var_f30 = 200.0f * work->unk_98; - sp2C.x += var_f30 * sind(var_f29); - sp2C.z += var_f30 * cosd(var_f29); - fn_1_10130(&sp2C, work->unk_14); - fn_1_FE8C(&sp2C, sp38[2][fn_1_10FDC()], work->unk_14, work->unk_18); - if (fn_1_10FDC() < 1) { - HuAudFXPlay(sp18[work->unk_14]); - } - else { - HuAudFXPlay(sp10[work->unk_14]); - } - } - work->unk_64 = 0; - work->unk_90 = 0x186A0; - work->unk_88 = 0; - fn_1_D888(&work->unk_128, 1.3f); - break; - } - if (work->unk_90 < 0x2710) { - work->unk_134.x = 0.15f * (work->unk_140.x - work->unk_128.x); - work->unk_134.z = 0.15f * (work->unk_140.z - work->unk_128.z); - break; - } - work->unk_134.x *= 0.95f; - work->unk_134.z *= 0.95f; - if (fn_1_B6E0(object) != 0) { - fn_1_B4D4(object, 8); - work->unk_7C = 4; - } - break; - case 4: - work->unk_134.x *= 0.95f; - work->unk_134.z *= 0.95f; + } + else { + work->unk_134.x *= 0.7f; + work->unk_134.z *= 0.7f; if (fn_1_B6E0(object) != 0) { work->unk_7C = 0; + break; } + } + break; + case 3: + if (work->unk_88 >= work->unk_90) { + if (work->unk_64 != 0) { + sp2C = work->unk_128; + sp2C.y = 11.0f; + PSVECSubtract(&var_r29->unk_128, &work->unk_128, &sp20); + var_f29 = 180.0 + (atan2d(sp20.x, sp20.z)); + var_f29 += frandmod(0xB4) - 90.0f; + var_f30 = 200.0f * work->unk_98; + sp2C.x += var_f30 * sind(var_f29); + sp2C.z += var_f30 * cosd(var_f29); + fn_1_10130(&sp2C, work->unk_14); + fn_1_FE8C(&sp2C, sp38[2][fn_1_10FDC()], work->unk_14, work->unk_18); + if (fn_1_10FDC() < 1) { + HuAudFXPlay(sp18[work->unk_14]); + } + else { + HuAudFXPlay(sp10[work->unk_14]); + } + } + work->unk_64 = 0; + work->unk_90 = 0x186A0; + work->unk_88 = 0; + fn_1_D888(&work->unk_128, 1.3f); break; - } + } + if (work->unk_90 < 0x2710) { + work->unk_134.x = 0.15f * (work->unk_140.x - work->unk_128.x); + work->unk_134.z = 0.15f * (work->unk_140.z - work->unk_128.z); + break; + } + work->unk_134.x *= 0.95f; + work->unk_134.z *= 0.95f; + if (fn_1_B6E0(object) != 0) { + fn_1_B4D4(object, 8); + work->unk_7C = 4; + } + break; + case 4: + work->unk_134.x *= 0.95f; + work->unk_134.z *= 0.95f; + if (fn_1_B6E0(object) != 0) { + work->unk_7C = 0; + } + break; } } } -struct _m2c_reg_fn_1_A618 { - M433PlayerWork *var_r31; - M433PlayerWork *sp8; -}; - void fn_1_A618(omObjData *object) { Vec sp20; @@ -1809,448 +1809,330 @@ void fn_1_A618(omObjData *object) float var_f30; float var_f29; M433PlayerWork *work = object->data; - { - s32 spC[2] = { 0x6A8, 0x6A9 }; - sp8 = work->unk_14C->data; - work->unk_54 = 0; - work->unk_5C = 0; - switch (work->unk_80) { - case 0: - if ((work->unk_7C == 0) && (work->unk_78 == 0) && (work->unk_80 == 0) - && (work->unk_30 = 0, work->unk_68 = 0, ((work->unk_34 == 0) != 0)) && (fn_1_11004(work->unk_14, work->unk_18) != 0) - && (fn_1_10FDC() < 3) && (work->unk_14 == fn_1_10740(&sp20))) { + s32 spC[2] = { 0x6A8, 0x6A9 }; + sp8 = work->unk_14C->data; + work->unk_54 = 0; + work->unk_5C = 0; + switch (work->unk_80) { + case 0: + if ((work->unk_7C == 0) && (work->unk_78 == 0) && (work->unk_80 == 0) && (work->unk_30 = 0, work->unk_68 = 0, ((work->unk_34 == 0) != 0)) + && (fn_1_11004(work->unk_14, work->unk_18) != 0) && (fn_1_10FDC() < 3) && (work->unk_14 == fn_1_10740(&sp20))) { + PSVECSubtract(&sp20, &work->unk_128, &sp14); + sp14.y = 0.0f; + if (!(PSVECMag(&sp14) > 500.0f)) { + fn_1_10B20(0.5f, &sp20); + sp20.y -= lbl_1_data_E0[work->unk_00]; PSVECSubtract(&sp20, &work->unk_128, &sp14); sp14.y = 0.0f; - if (!(PSVECMag(&sp14) > 500.0f)) { - fn_1_10B20(0.5f, &sp20); - sp20.y -= lbl_1_data_E0[work->unk_00]; - PSVECSubtract(&sp20, &work->unk_128, &sp14); - sp14.y = 0.0f; - if ((PSVECMag(&sp14) < 200.0f) && (sp20.y >= 50.0f)) { - work->unk_5C = 1; - } - if (((work->unk_1C & 0x200) != 0) && (work->unk_5C != 0)) { - work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; - fn_1_B4D4(object, 0xA); - work->unk_80 = 1; - work->unk_88 = 0; - work->unk_30 = 1; - if (work->unk_5C != 0) { - var_f30 = 0.5f; - work->unk_124 = (2.0f * -sp20.y) / (var_f30 * var_f30); - work->unk_134.y = 0.016666668f * (-work->unk_124 * var_f30); - PSVECSubtract(&sp20, &work->unk_128, &sp14); - sp14.y = 0.0f; - work->unk_134.x = 0.016666668f * (sp14.x / 0.5f); - work->unk_134.z = 0.016666668f * (sp14.z / 0.5f); - if (work->unk_14 != 0) { - var_f29 = -90.0f; - } - else { - var_f29 = 90.0f; - } - work->unk_A8 = var_f29; - work->unk_AC = 0.2f; - work->unk_B0 = 0.0f; - work->unk_68 = 1; + if ((PSVECMag(&sp14) < 200.0f) && (sp20.y >= 50.0f)) { + work->unk_5C = 1; + } + if (((work->unk_1C & 0x200) != 0) && (work->unk_5C != 0)) { + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + fn_1_B4D4(object, 0xA); + work->unk_80 = 1; + work->unk_88 = 0; + work->unk_30 = 1; + if (work->unk_5C != 0) { + var_f30 = 0.5f; + work->unk_124 = (2.0f * -sp20.y) / (var_f30 * var_f30); + work->unk_134.y = 0.016666668f * (-work->unk_124 * var_f30); + PSVECSubtract(&sp20, &work->unk_128, &sp14); + sp14.y = 0.0f; + work->unk_134.x = 0.016666668f * (sp14.x / 0.5f); + work->unk_134.z = 0.016666668f * (sp14.z / 0.5f); + if (work->unk_14 != 0) { + var_f29 = -90.0f; } else { - work->unk_134.y = 14.833334f; + var_f29 = 90.0f; } - work->unk_60 = 1; - fn_1_D888(&work->unk_128, 0.75f); + work->unk_A8 = var_f29; + work->unk_AC = 0.2f; + work->unk_B0 = 0.0f; + work->unk_68 = 1; } + else { + work->unk_134.y = 14.833334f; + } + work->unk_60 = 1; + fn_1_D888(&work->unk_128, 0.75f); } } - break; - case 1: - work->unk_134.y += 0.016666668f * (0.016666668f * work->unk_124); - if (work->unk_68 != 0) { - var_f31 = (0.016666668f * work->unk_88) - 0.35f; - if ((var_f31 >= 0.0f) && (var_f31 < 0.4)) { - work->unk_54 = 1; - if ((work->unk_1C & 0x100) != 0) { - fn_1_B4D4(object, 0xB); - fn_1_10260(work->unk_28, work->unk_24, work->unk_14, work->unk_54, &sp20); - fn_1_FE8C(&sp20, 5, work->unk_14, work->unk_18); - work->unk_68 = 0; - work->unk_54 = 0; - HuAudFXPlay(spC[work->unk_14]); - } - } - else if (var_f31 > 0.0f) { + } + break; + case 1: + work->unk_134.y += 0.016666668f * (0.016666668f * work->unk_124); + if (work->unk_68 != 0) { + var_f31 = (0.016666668f * work->unk_88) - 0.35f; + if ((var_f31 >= 0.0f) && (var_f31 < 0.4)) { + work->unk_54 = 1; + if ((work->unk_1C & 0x100) != 0) { + fn_1_B4D4(object, 0xB); + fn_1_10260(work->unk_28, work->unk_24, work->unk_14, work->unk_54, &sp20); + fn_1_FE8C(&sp20, 5, work->unk_14, work->unk_18); work->unk_68 = 0; work->unk_54 = 0; + HuAudFXPlay(spC[work->unk_14]); } - fn_1_10260(work->unk_28, work->unk_24, work->unk_14, work->unk_54, &sp20); } - if (work->unk_128.y <= 0.0f) { - fn_1_D888(&work->unk_128, 0.75f); - work->unk_30 = 0; - work->unk_80 = 0; - work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; - work->unk_60 = 0; + else if (var_f31 > 0.0f) { work->unk_68 = 0; + work->unk_54 = 0; } - break; + fn_1_10260(work->unk_28, work->unk_24, work->unk_14, work->unk_54, &sp20); + } + if (work->unk_128.y <= 0.0f) { + fn_1_D888(&work->unk_128, 0.75f); + work->unk_30 = 0; + work->unk_80 = 0; + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + work->unk_60 = 0; + work->unk_68 = 0; + } + break; + } +} + +void fn_1_AB88(omObjData *object) +{ + Vec sp1C; + Vec sp10; + float var_f29; + float var_f28; + + M433PlayerWork *work = object->data; + s32 var_r30 = 0; + s32 sp8[2] = { 0x6A8, 0x6A9 }; + M433PlayerWork *var_r28 = work->unk_14C->data; + + work->unk_58 = 0; + switch (work->unk_78) { + case 0: + if ((work->unk_7C == 0) && (work->unk_78 == 0) && (work->unk_80 == 0) && (work->unk_30 = 0, work->unk_68 = 0, ((work->unk_34 == 0) != 0)) + && (work->unk_14 == fn_1_107B0(&sp1C)) && (fn_1_11060(work->unk_14) == 0)) { + float var_f31 = work->unk_128.x; + float var_f30; + if (work->unk_14 == 0) { + var_f31 *= -1.0f; + } + if (!(var_f31 > 230.0f) && (fn_1_10EA4() != 2)) { + if (fn_1_10D24(&sp1C) != 0) { + var_r30 = 1; + } + if (var_r30 != 0) { + var_f31 = sp1C.z - work->unk_128.z; + if (var_f31 > 100.0f) { + var_f31 = 100.0f; + } + else if (var_f31 < -100.0f) { + var_f31 = -100.0f; + } + else { + work->unk_58 = 1; + } + } + if ((work->unk_1C & 0x200) != 0) { + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + fn_1_B4D4(object, 0xA); + work->unk_78 = 1; + work->unk_88 = 0; + work->unk_30 = 1; + if (work->unk_14 != 0) { + var_f28 = -90.0f; + } + else { + var_f28 = 90.0f; + } + work->unk_A8 = var_f28; + work->unk_AC = 0.2f; + work->unk_B0 = 0.0f; + fn_1_D888(&work->unk_128, 0.75f); + var_f30 = 0.5f; + work->unk_124 = (2.0f * -(350.0f - lbl_1_data_E0[work->unk_00])) / (var_f30 * var_f30); + work->unk_134.y = 0.016666668f * (-work->unk_124 * var_f30); + work->unk_134.x = 0.016666668f * (-work->unk_128.x / 0.75f); + if (var_r30 != 0) { + work->unk_134.z = 0.016666668f * (var_f31 / 0.5f); + } + work->unk_60 = 1; + work->unk_58 = 0; + } + } + } + break; + case 1: + work->unk_134.y += 0.016666668f * (0.016666668f * work->unk_124); + if ((work->unk_14 == fn_1_10740(&sp1C)) && (fn_1_10FDC() == 0)) { + fn_1_10B20(0.0f, &sp1C); + if ((sp1C.x * work->unk_128.x) > 0.0f) { + sp1C.y = work->unk_128.y; + PSVECSubtract(&sp1C, &work->unk_128, &sp10); + if (PSVECMag(&sp10) < 60.000004f) { + if (frandmod(0x64) < 0x1E) { + fn_1_10740(&sp1C); + sp1C.x *= -0.5f; + fn_1_FE8C(&sp1C, 5, work->unk_14, work->unk_18); + HuAudFXPlay(sp8[work->unk_14]); + } + else { + fn_1_10740(&sp1C); + var_f29 = frandmod(0x168); + sp1C.x += 100.0 * (2.0 * sind(var_f29)); + sp1C.z += 100.0 * (2.0 * cosd(var_f29)); + fn_1_10130(&sp1C, work->unk_14); + fn_1_FE8C(&sp1C, 8, work->unk_14, work->unk_18); + HuAudFXPlay(sp8[work->unk_14]); + } + fn_1_B4D4(object, 0xD); + var_r28->unk_64 = 0; + } + } + } + if (work->unk_128.y <= 0.0f) { + fn_1_D888(&work->unk_128, 0.75f); + work->unk_30 = 0; + work->unk_78 = 0; + work->unk_134.x = work->unk_134.y = work->unk_134.z = 0.0f; + work->unk_60 = 0; + } + break; + } +} + +void fn_1_B194(omObjData *object) +{ + Vec sp8; + float var_f31; + M433PlayerWork *var_r31; + M433PlayerWork *var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + for (var_r27 = 0; var_r27 < 2; var_r27++) { + for (var_r29 = 0; var_r29 < 4; var_r29++) { + var_r31 = lbl_1_bss_7D0[var_r29]->data; + for (var_r28 = 0; var_r28 < 4; var_r28++) { + if (var_r29 != var_r28) { + var_r30 = lbl_1_bss_7D0[var_r28]->data; + PSVECSubtract(&var_r31->unk_128, &var_r30->unk_128, &sp8); + sp8.y = 0.0f; + var_f31 = PSVECMag(&sp8); + if (var_f31 < (var_r31->unk_120 + var_r30->unk_120)) { + if (var_f31 > 0.0f) { + var_f31 = 0.5f * ((var_r31->unk_120 + var_r30->unk_120) - var_f31); + } + else { + var_f31 = 0.5f * (var_r31->unk_120 + var_r30->unk_120); + sp8.x = frandmod(0x3E8) - 0x1F4; + sp8.z = frandmod(0x3E8) - 0x1F4; + } + PSVECNormalize(&sp8, &sp8); + PSVECScale(&sp8, &sp8, var_f31); + PSVECAdd(&var_r31->unk_128, &sp8, &var_r31->unk_128); + PSVECSubtract(&var_r30->unk_128, &sp8, &var_r30->unk_128); + } + } + } + if (var_r31->unk_128.y < 0.0f) { + var_r31->unk_128.y = 0.0f; + } + if ((var_r31->unk_128.z - var_r31->unk_120) < -500.0f) { + var_r31->unk_128.z = -500.0f + var_r31->unk_120; + } + else if ((var_r31->unk_128.z + var_r31->unk_120) > 500.0f) { + var_r31->unk_128.z = 500.0f - var_r31->unk_120; + } + if (var_r31->unk_14 == 0) { + var_r31->unk_128.x *= -1.0f; + } + if ((var_r31->unk_128.x - var_r31->unk_120) < 20.0f) { + var_r31->unk_128.x = 20.0f + var_r31->unk_120; + } + else if ((60.000004f + var_r31->unk_128.x) > 800.0f) { + var_r31->unk_128.x = 740.0f; + } + if (var_r31->unk_14 == 0) { + var_r31->unk_128.x *= -1.0f; + } } } } -// void fn_1_AB88(omObjData *object) -// { -// Vec sp1C; /* compiler-managed */ -// Vec sp10; -// s32 spC; -// s32 sp8; -// float var_f31; -// float var_f30; -// float var_f29; -// float var_f28; -// void *var_r31; -// s32 var_r30; -// omObjData *var_r29; -// void *var_r28; -// s32 temp_r0; +void fn_1_B4D4(omObjData *object, u32 arg1) +{ + M433PlayerWork *work = object->data; + if ((work->unk_0C != arg1) && (arg1 < 0x15)) { + float var_f31 = 60.0f * lbl_1_data_24C[arg1].unk_04; + if (work->unk_0C < 0) { + var_f31 = 0.0f; + } + work->unk_0C = arg1; + if (work->unk_04 < 0) { + CharModelMotionShiftSet( + work->unk_00, object->motion[lbl_1_data_24C[arg1].unk_00], 60.0f * lbl_1_data_24C[arg1].unk_08, var_f31, lbl_1_data_24C[arg1].unk_10); + } + else { + Hu3DMotionShiftSet(object->model[0], object->motion[lbl_1_data_24C[arg1].unk_00], 60.0f * lbl_1_data_24C[arg1].unk_08, var_f31, + lbl_1_data_24C[arg1].unk_10); + } + if (lbl_1_data_24C[arg1].unk_0C >= 0.0f) { + Hu3DMotionShiftStartEndSet(object->model[0], 60.0f * lbl_1_data_24C[arg1].unk_08, 60.0f * lbl_1_data_24C[arg1].unk_0C); + } + work->unk_10 = 0; + } +} -// var_r29 = object; -// var_r31 = var_r29->data; -// var_r30 = 0; -// sp8 = lbl_1_rodata_5A0.unk_00; -// spC = lbl_1_rodata_5A0.unk_04; -// var_r28 = var_r31->unk_14C->unk_5C; -// var_r31->unk_58 = 0; -// temp_r0 = var_r31->unk_78; -// switch (temp_r0) { -// case 0: -// if ((var_r31->unk_7C == 0) && (var_r31->unk_78 == 0) && (var_r31->unk_80 == 0) -// && (var_r31->unk_30 = 0, var_r31->unk_68 = 0, ((var_r31->unk_34 == 0) != 0)) && (var_r31->unk_14 == fn_1_107B0(&sp1C)) -// && (fn_1_11060(var_r31->unk_14) == 0)) { -// var_f31 = var_r31->unk_128; -// if (var_r31->unk_14 == 0) { -// var_f31 *= -1.0f; -// } -// if (!(var_f31 > 230.0f) && (fn_1_10EA4() != 2)) { -// if (fn_1_10D24(&sp1C) != 0) { -// var_r30 = 1; -// } -// if (var_r30 != 0) { -// var_f31 = sp1C.z - var_r31->unk_130; -// if (var_f31 > 100.0f) { -// var_f31 = 100.0f; -// } -// else if (var_f31 < -100.0f) { -// var_f31 = -100.0f; -// } -// else { -// var_r31->unk_58 = 1; -// } -// } -// if ((var_r31->unk_1C & 0x200) != 0) { -// var_r31->unk_13C = 0.0f; -// var_r31->unk_138 = 0.0f; -// var_r31->unk_134 = 0.0f; -// fn_1_B4D4(var_r29, 0xA); -// var_r31->unk_78 = 1; -// var_r31->unk_88 = 0; -// var_r31->unk_30 = 1; -// if (var_r31->unk_14 != 0) { -// var_f28 = -90.0f; -// } -// else { -// var_f28 = 90.0f; -// } -// var_r31->unk_A8 = var_f28; -// var_r31->unk_AC = 0.2f; -// var_r31->unk_B0 = 0.0f; -// fn_1_D888(&var_r31->unk_128, 0.75f); -// var_f30 = 0.5f; -// var_r31->unk_124 = (2.0f * -(350.0f - lbl_1_data_E0[var_r31->unk_00])) / (0.5f * 0.5f); -// var_r31->unk_138 = 0.016666668f * (-var_r31->unk_124 * 0.5f); -// var_r31->unk_134 = 0.016666668f * (-var_r31->unk_128 / 0.75f); -// if (var_r30 != 0) { -// var_r31->unk_13C = 0.016666668f * (var_f31 / 0.5f); -// } -// var_r31->unk_60 = 1; -// var_r31->unk_58 = 0; -// return; -// } -// } -// } -// else { -// return; -// } -// break; -// case 1: -// var_r31->unk_138 = var_r31->unk_138 + (0.016666668f * (0.016666668f * var_r31->unk_124)); -// if ((var_r31->unk_14 == fn_1_10740(&sp1C)) && (fn_1_10FDC() == 0)) { -// fn_1_10B20(0.0f, &sp1C); -// if ((sp1C * var_r31->unk_128) > 0.0f) { -// sp1C.y = var_r31->unk_12C; -// PSVECSubtract(&sp1C, &var_r31->unk_128, &sp10); -// if (PSVECMag(&sp10) < 60.000004f) { -// if (frandmod(0x64) < 0x1E) { -// fn_1_10740(&sp1C); -// sp1C = sp1C * -0.5f; -// fn_1_FE8C(&sp1C, 5, var_r31->unk_14, var_r31->unk_18); -// HuAudFXPlay((&sp8)[var_r31->unk_14]); -// } -// else { -// fn_1_10740(&sp1C); -// var_f29 = frandmod(0x168); -// sp1C = sp1C + (100.0 * (2.0 * sind(var_f29))); -// sp1C.z = sp1C.z + (100.0 * (2.0 * cosd(var_f29))); -// fn_1_10130(&sp1C, var_r31->unk_14); -// fn_1_FE8C(&sp1C, 8, var_r31->unk_14, var_r31->unk_18); -// HuAudFXPlay((&sp8)[var_r31->unk_14]); -// } -// fn_1_B4D4(var_r29, 0xD); -// var_r28->unk_64 = 0; -// } -// } -// } -// if (var_r31->unk_12C <= 0.0f) { -// fn_1_D888(&var_r31->unk_128, 0.75f); -// var_r31->unk_30 = 0; -// var_r31->unk_78 = 0; -// var_r31->unk_13C = 0.0f; -// var_r31->unk_138 = 0.0f; -// var_r31->unk_134 = 0.0f; -// var_r31->unk_60 = 0; -// } -// break; -// } -// } +s32 fn_1_B6E0(omObjData *object) +{ + M433PlayerWork *work = object->data; + s32 var_r29 = 0; + if (work->unk_04 < 0) { + if (((CharModelMotionEndCheck(work->unk_00) != 0) || (work->unk_10 != 0)) && (CharModelMotionShiftIDGet(work->unk_00) < 0)) { + var_r29 = 1; + } + } + else if (((Hu3DMotionEndCheck(object->model[0]) != 0) || (work->unk_10 != 0)) && (Hu3DMotionShiftIDGet(object->model[0]) < 0)) { + var_r29 = 1; + } + return var_r29; +} -// void fn_1_B194(omObjData *object) -// { -// Vec sp8; -// float var_f31; -// void *var_r31; -// void *var_r30; -// s32 var_r29; -// s32 var_r28; -// s32 var_r27; +s32 fn_1_B7AC(omObjData *object) +{ + M433PlayerWork *work = object->data; + s32 var_r30 = 0; + if (work->unk_04 < 0) { + if (CharModelMotionShiftIDGet(work->unk_00) < 0) { + var_r30 = 1; + } + } + else if (Hu3DMotionShiftIDGet(object->model[0]) < 0) { + var_r30 = 1; + } + return var_r30; +} -// for (var_r27 = 0; var_r27 < 2; var_r27++) { -// for (var_r29 = 0; var_r29 < 4; var_r29++) { -// var_r31 = lbl_1_bss_7D0[var_r29]->data; -// for (var_r28 = 0; var_r28 < 4; var_r28++) { -// if (var_r29 != var_r28) { -// var_r30 = lbl_1_bss_7D0[var_r28]->data; -// PSVECSubtract(&var_r31->unk_128, var_r30 + 0x128, &sp8); -// sp8.y = 0.0f; -// var_f31 = PSVECMag(&sp8); -// if (var_f31 < (var_r31->unk_120 + var_r30->unk_120)) { -// if (var_f31 > 0.0f) { -// var_f31 = 0.5f * ((var_r31->unk_120 + var_r30->unk_120) - var_f31); -// } -// else { -// var_f31 = 0.5f * (var_r31->unk_120 + var_r30->unk_120); -// sp8 = frandmod(0x3E8) - 0x1F4; -// sp8.z = frandmod(0x3E8) - 0x1F4; -// } -// PSVECNormalize(&sp8, &sp8); -// PSVECScale(&sp8, &sp8, var_f31); -// PSVECAdd(&var_r31->unk_128, &sp8, &var_r31->unk_128); -// PSVECSubtract(var_r30 + 0x128, &sp8, var_r30 + 0x128); -// } -// } -// } -// if (var_r31->unk_12C < 0.0f) { -// var_r31->unk_12C = 0.0f; -// } -// if ((var_r31->unk_130 - var_r31->unk_120) < -500.0f) { -// var_r31->unk_130 = -500.0f + var_r31->unk_120; -// } -// else if ((var_r31->unk_130 + var_r31->unk_120) > 500.0f) { -// var_r31->unk_130 = 500.0f - var_r31->unk_120; -// } -// if (var_r31->unk_14 == 0) { -// var_r31->unk_128 = var_r31->unk_128 * -1.0f; -// } -// if ((var_r31->unk_128 - var_r31->unk_120) < 20.0f) { -// var_r31->unk_128 = 20.0f + var_r31->unk_120; -// } -// else if ((60.000004f + var_r31->unk_128) > 800.0f) { -// var_r31->unk_128 = 740.0f; -// } -// if (var_r31->unk_14 == 0) { -// var_r31->unk_128 = var_r31->unk_128 * -1.0f; -// } -// } -// } -// } +s32 fn_1_B838(omObjData *object, u32 arg1) +{ + s32 var_r26 = 0; + if (fn_1_B6E0(object)) { + fn_1_B4D4(object, arg1); + var_r26 = 1; + } + return var_r26; +} -// void fn_1_B4D4(omObjData *object, u32 arg1) -// { -// float var_f31; -// void *var_r31; -// u32 var_r30; -// omObjData *var_r29; - -// var_r29 = object; -// var_r30 = arg1; -// var_r31 = var_r29->data; -// if ((var_r31->unk_0C != var_r30) && (var_r30 < 0x15)) { -// var_f31 = 60.0f * lbl_1_data_24C[var_r30].unk_04; -// if (var_r31->unk_0C < 0) { -// var_f31 = 0.0f; -// } -// var_r31->unk_0C = var_r30; -// if (var_r31->unk_04 < 0) { -// CharModelMotionShiftSet(var_r31->unk_00, var_r29->motion[lbl_1_data_24C[var_r30].unk_00], 60.0f * lbl_1_data_24C[var_r30].unk_08, -// var_f31, -// lbl_1_data_24C[var_r30].unk_10); -// } -// else { -// Hu3DMotionShiftSet(var_r29->model[0], var_r29->motion[lbl_1_data_24C[var_r30].unk_00], 60.0f * lbl_1_data_24C[var_r30].unk_08, var_f31, -// lbl_1_data_24C[var_r30].unk_10); -// } -// if (lbl_1_data_24C[var_r30].unk_0C >= 0.0f) { -// Hu3DMotionShiftStartEndSet(var_r29->model[0], 60.0f * lbl_1_data_24C[var_r30].unk_08, 60.0f * lbl_1_data_24C[var_r30].unk_0C); -// } -// var_r31->unk_10 = 0; -// } -// } - -// s32 fn_1_B6E0(omObjData *object) -// { -// void *var_r31; -// omObjData *var_r30; -// s32 var_r29; - -// var_r30 = object; -// var_r31 = var_r30->data; -// var_r29 = 0; -// if (var_r31->unk_04 < 0) { -// if (((CharModelMotionEndCheck(var_r31->unk_00) != 0) || (var_r31->unk_10 != 0)) && (CharModelMotionShiftIDGet(var_r31->unk_00) < 0)) { -// var_r29 = 1; -// } -// } -// else if (((Hu3DMotionEndCheck(var_r30->model[0]) != 0) || (var_r31->unk_10 != 0)) && (Hu3DMotionShiftIDGet(var_r30->model[0]) < 0)) { -// var_r29 = 1; -// } -// return var_r29; -// } - -// s32 fn_1_B7AC(omObjData *object) -// { -// void *var_r31; -// s32 var_r30; -// omObjData *var_r29; - -// var_r29 = object; -// var_r31 = var_r29->data; -// var_r30 = 0; -// if (var_r31->unk_04 < 0) { -// if (CharModelMotionShiftIDGet(var_r31->unk_00) < 0) { -// var_r30 = 1; -// } -// } -// else if (Hu3DMotionShiftIDGet(var_r29->model[0]) < 0) { -// var_r30 = 1; -// } -// return var_r30; -// } - -// s32 fn_1_B838(void *arg0, u32 arg1) -// { -// float var_f31; -// void *var_r31; -// void *var_r30; -// u32 var_r29; -// void *var_r28; -// s32 var_r27; -// s32 var_r26; - -// var_r31 = arg0; -// var_r29 = arg1; -// var_r26 = 0; -// var_r28 = var_r31->unk_5C; -// var_r27 = 0; -// if (var_r28->unk_04 < 0) { -// if (((CharModelMotionEndCheck(var_r28->unk_00) != 0) || (var_r28->unk_10 != 0)) && (CharModelMotionShiftIDGet(var_r28->unk_00) < 0)) { -// var_r27 = 1; -// } -// } -// else if (((Hu3DMotionEndCheck(*var_r31->unk_40) != 0) || (var_r28->unk_10 != 0)) && (Hu3DMotionShiftIDGet(*var_r31->unk_40) < 0)) { -// var_r27 = 1; -// } -// if (var_r27 != 0) { -// var_r30 = var_r31->unk_5C; -// if ((var_r30->unk_0C != var_r29) && (var_r29 < 0x15)) { -// var_f31 = 60.0f * lbl_1_data_24C[var_r29].unk_04; -// if (var_r30->unk_0C < 0) { -// var_f31 = 0.0f; -// } -// var_r30->unk_0C = var_r29; -// if (var_r30->unk_04 < 0) { -// CharModelMotionShiftSet(var_r30->unk_00, *(var_r31->unk_48 + (lbl_1_data_24C[var_r29].unk_00 * 2)), -// 60.0f * lbl_1_data_24C[var_r29].unk_08, var_f31, lbl_1_data_24C[var_r29].unk_10); -// } -// else { -// Hu3DMotionShiftSet(*var_r31->unk_40, *(var_r31->unk_48 + (lbl_1_data_24C[var_r29].unk_00 * 2)), -// 60.0f * lbl_1_data_24C[var_r29].unk_08, var_f31, lbl_1_data_24C[var_r29].unk_10); -// } -// if (lbl_1_data_24C[var_r29].unk_0C >= 0.0f) { -// Hu3DMotionShiftStartEndSet(*var_r31->unk_40, 60.0f * lbl_1_data_24C[var_r29].unk_08, 60.0f * lbl_1_data_24C[var_r29].unk_0C); -// } -// var_r30->unk_10 = 0; -// } -// var_r26 = 1; -// } -// return var_r26; -// } - -// s32 fn_1_BAE0(omObjData *object, u32 arg1) -// { -// float var_f31; -// omObjData *var_r31; -// void *var_r30; -// u32 var_r29; -// void *var_r28; -// s32 var_r27; -// s32 var_r26; - -// var_r31 = object; -// var_r29 = arg1; -// var_r26 = 0; -// var_r28 = var_r31->data; -// var_r27 = 0; -// if (var_r28->unk_04 < 0) { -// if (CharModelMotionShiftIDGet(var_r28->unk_00) < 0) { -// var_r27 = 1; -// } -// } -// else if (Hu3DMotionShiftIDGet(var_r31->model[0]) < 0) { -// var_r27 = 1; -// } -// if (var_r27 != 0) { -// var_r30 = var_r31->data; -// if ((var_r30->unk_0C != var_r29) && (var_r29 < 0x15)) { -// var_f31 = 60.0f * lbl_1_data_24C[var_r29].unk_04; -// if (var_r30->unk_0C < 0) { -// var_f31 = 0.0f; -// } -// var_r30->unk_0C = var_r29; -// if (var_r30->unk_04 < 0) { -// CharModelMotionShiftSet(var_r30->unk_00, var_r31->motion[lbl_1_data_24C[var_r29].unk_00], 60.0f * lbl_1_data_24C[var_r29].unk_08, -// var_f31, lbl_1_data_24C[var_r29].unk_10); -// } -// else { -// Hu3DMotionShiftSet(var_r31->model[0], var_r31->motion[lbl_1_data_24C[var_r29].unk_00], 60.0f * lbl_1_data_24C[var_r29].unk_08, -// var_f31, lbl_1_data_24C[var_r29].unk_10); -// } -// if (lbl_1_data_24C[var_r29].unk_0C >= 0.0f) { -// Hu3DMotionShiftStartEndSet(var_r31->model[0], 60.0f * lbl_1_data_24C[var_r29].unk_08, 60.0f * lbl_1_data_24C[var_r29].unk_0C); -// } -// var_r30->unk_10 = 0; -// } -// var_r26 = 1; -// } -// return var_r26; -// } +s32 fn_1_BAE0(omObjData *object, u32 arg1) +{ + s32 var_r26 = 0; + if (fn_1_B7AC(object)) { + fn_1_B4D4(object, arg1); + var_r26 = 1; + } + return var_r26; +} void fn_1_BD48(omObjData *object) { @@ -2262,30 +2144,30 @@ void fn_1_BD48(omObjData *object) object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M433PlayerWork2), MEMORY_DEFAULT_NUM); work = object->data; memset(work, 0, sizeof(M433PlayerWork2)); - object->model[0] = Hu3DModelCreateFile(0x400000); + object->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 0)); Hu3DModelShadowSet(object->model[0]); - object->model[1] = Hu3DModelCreateFile(0x400004); + object->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 4)); Hu3DModelAttrSet(object->model[1], HU3D_MOTATTR_LOOP); - object->model[2] = Hu3DModelCreateFile(0x400004); + object->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 4)); Hu3DModelAttrSet(object->model[2], HU3D_MOTATTR_LOOP); - object->model[3] = Hu3DModelCreateFile(0x400003); + object->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 3)); Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); - object->model[4] = Hu3DModelCreateFile(0x400007); + object->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 7)); Hu3DModelAttrSet(object->model[4], HU3D_ATTR_DISPOFF); - object->model[6] = Hu3DModelCreateFile(0x400005); + object->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 5)); Hu3DModelAttrSet(object->model[6], HU3D_ATTR_DISPOFF); Hu3DModelScaleSet(object->model[6], 0.75f, 0.75f, 0.75f); Hu3DModelLayerSet(object->model[6], 2); - object->model[7] = Hu3DModelCreateFile(0x400006); + object->model[7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 6)); Hu3DModelAttrSet(object->model[7], HU3D_ATTR_DISPOFF); Hu3DModelScaleSet(object->model[7], 0.75f, 0.75f, 0.75f); Hu3DModelLayerSet(object->model[7], 2); - var_r28 = Hu3DParticleCreate(HuSprAnimRead(HuDataReadNum(0x120002, 0x10000000)), 1); + var_r28 = Hu3DParticleCreate(HuSprAnimRead(HuDataReadNum(0x120002, MEMORY_DEFAULT_NUM)), 1); object->model[8] = var_r28; Hu3DModelLayerSet(var_r28, 2); Hu3DParticleHookSet(var_r28, fn_1_DE28); Hu3DModelAttrSet(var_r28, HU3D_ATTR_DISPOFF); - var_r28 = Hu3DParticleCreate(HuSprAnimReadFile(0x400009), 0xC8); + var_r28 = Hu3DParticleCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_M433, 9)), 0xC8); object->model[5] = var_r28; Hu3DModelLayerSet(var_r28, 2); Hu3DParticleHookSet(var_r28, fn_1_D6A8); @@ -2294,14 +2176,14 @@ void fn_1_BD48(omObjData *object) var_r27->unk40.a = 0; var_r27->unk00_s16 = 0; } - object->model[9] = Hu3DModelCreateFile(0x400002); + object->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 2)); Hu3DModelScaleSet(object->model[9], 1.05f, 1.05f, 1.05f); Hu3DModelAttrSet(object->model[9], HU3D_ATTR_DISPOFF); Hu3DModelLayerSet(object->model[9], 1); Hu3DModelShadowSet(object->model[9]); for (var_r29 = 1; var_r29 < 0x15; var_r29++) { if (var_r29 == 0xA) { - object->model[var_r29 + 9] = Hu3DModelCreateFile(0x400001); + object->model[var_r29 + 9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 1)); } else { object->model[var_r29 + 9] = Hu3DModelLink(object->model[9]); @@ -2311,1781 +2193,1392 @@ void fn_1_BD48(omObjData *object) Hu3DModelScaleSet(object->model[var_r29 + 9], 1.05f, 1.05f, 1.05f); Hu3DModelAttrSet(object->model[var_r29 + 9], HU3D_ATTR_DISPOFF); } - object->trans.x = work->unk_30 = 0.0f; - object->trans.y = work->unk_34 = 0.0f; - object->trans.z = work->unk_38 = 0.0f; + object->trans.x = work->unk_30.x = 0.0f; + object->trans.y = work->unk_30.y = 0.0f; + object->trans.z = work->unk_30.z = 0.0f; work->unk_B8 = 0.0f; - work->unk_BC = work->unk_C0 = 0.0f; - work->unk_C4 = 1.0f; + work->unk_BC.x = work->unk_BC.y = 0.0f; + work->unk_BC.z = 1.0f; PSMTXIdentity(work->unk_C8); work->unk_18 = 0; object->func = fn_1_C240; } -// void fn_1_C240(omObjData *object) -// { -// s32 sp8; -// s32 temp_r4; -// void *var_r31; -// omObjData *var_r30; -// s32 var_r29; -// u16 temp_r0; - -// var_r30 = object; -// var_r31 = var_r30->data; -// sp8 = 0; -// var_r31->unk_00 = 0; -// temp_r0 = var_r31->unk_18; -// switch (temp_r0) { -// case 0: -// var_r31->unk_04 = 1; -// break; -// case 1: -// var_r31->unk_B8 = 0.0f; -// var_r31->unk_C0 = 0.0f; -// var_r31->unk_BC = 0.0f; -// var_r31->unk_C4 = 1.0f; -// PSMTXIdentity(var_r31 + 0xC8); -// var_r31->unk_00 = 1; -// break; -// case 10: -// var_r31->unk_00 = 1; -// break; -// } -// var_r31->unk_8C++; -// if (var_r31->unk_90 != 0) { -// var_r31->unk_A0 = 1.0f; -// if (var_r31->unk_94 == 2) { -// var_r31->unk_A4 = var_r31->unk_A4 + 12.000001f; -// if (var_r31->unk_A4 >= 360.0f) { -// var_r31->unk_A4 = var_r31->unk_A4 - 360.0f; -// } -// var_r31->unk_A0 = 1.5f; -// var_r31->unk_A8 = var_r31->unk_A8 + 0.015000001f; -// Hu3DMotionSpeedSet(var_r30->model->unk_06, 2.5f); -// } -// else { -// Hu3DMotionTimeSet(var_r30->model->unk_06, 0.0f); -// Hu3DMotionSpeedSet(var_r30->model->unk_06, 0.0f); -// } -// Hu3DModelRotSet(var_r30->model->unk_06, 0.0f, var_r31->unk_A4, 0.0f); -// Hu3DModelAttrReset(var_r30->model->unk_06, HU3D_ATTR_DISPOFF); -// Hu3DModelPosSet(var_r30->model->unk_06, var_r31->unk_AC, 3.0f + var_r31->unk_B0, var_r31->unk_B4); -// var_r31->unk_98++; -// var_r31->unk_90 = 0; -// } -// else if (var_r31->unk_94 != 0) { -// var_r31->unk_94 = 0; -// var_r31->unk_A0 = 0.0f; -// } -// var_r31->unk_9C = var_r31->unk_9C + (0.2f * (var_r31->unk_A0 - var_r31->unk_9C)); -// Hu3DModelScaleSet(var_r30->model->unk_06, var_r31->unk_9C, 1.0f, var_r31->unk_9C); -// if ((var_r31->unk_A0 <= 0.0f) && (var_r31->unk_9C < 0.1f)) { -// Hu3DModelAttrSet(var_r30->model->unk_06, HU3D_ATTR_DISPOFF); -// var_r31->unk_9C = 0.0f; -// } -// for (var_r29 = 0; var_r29 < 2; var_r29++) { -// temp_r4 = (var_r29 * 4) + 0x7C; -// *(var_r31 + temp_r4) = *(var_r31 + temp_r4) + (0.3f * (*(var_r31 + ((var_r29 * 4) + 0x84)) - *(var_r31 + ((var_r29 * 4) + 0x7C)))); -// if (*(var_r31 + ((var_r29 * 4) + 0x84)) > 0.0f) { -// Hu3DModelAttrReset(var_r30->model[var_r29 + 1], HU3D_ATTR_DISPOFF); -// } -// else if (*(var_r31 + ((var_r29 * 4) + 0x7C)) < 0.1f) { -// Hu3DModelAttrSet(var_r30->model[var_r29 + 1], HU3D_ATTR_DISPOFF); -// } -// Hu3DModelScaleSet(var_r30->model[var_r29 + 1], *(var_r31 + ((var_r29 * 4) + 0x7C)), 1.0f, *(var_r31 + ((var_r29 * 4) + 0x7C))); -// } -// fn_1_C6B0(var_r30); -// fn_1_CB98(var_r30); -// var_r30->trans.x = var_r31->unk_30; -// var_r30->trans.y = var_r31->unk_34; -// var_r30->trans.z = var_r31->unk_38; -// if ((fn_1_216C() >= 3) && (var_r31->unk_04 != 0) && (fn_1_2244() != 0)) { -// fn_1_DD70(var_r31 + 0x30); -// Hu3DModelAttrSet(var_r30->model->unk_00, HU3D_ATTR_DISPOFF); -// var_r30->func = fn_1_C6AC; -// } -// } - -// void fn_1_C6AC(omObjData *object) { } - -// s32 fn_1_C6B0(omObjData *object) -// { -// Vec sp8; -// float var_f31; -// float var_f30; -// float var_f29; -// float var_f28; -// float var_f27; -// float var_f26; -// void *var_r31; -// omObjData *var_r30; -// void *var_r29; -// s32 var_r28; - -// var_r30 = object; -// var_r31 = var_r30->data; -// if ((var_r31->unk_00 == 0) && (var_r31->unk_04 == 0) && (var_r31->unk_08 == 0)) { -// if (var_r31->unk_10 == 0) { -// fn_1_CDB8(var_r31 + 0xF8, var_r31 + 0x30, var_r31 + 0x3C, var_r31->unk_6C, var_r31->unk_A8); -// fn_1_D338(var_r31 + 0xF8); -// fn_1_D180(var_r31 + 0xF8); -// var_r31->unk_B8 = var_r31->unk_A8 * (8.0f * lbl_1_data_48C[var_r31->unk_6C]); -// PSVECSubtract(var_r31 + 0x3C, var_r31 + 0x30, &sp8); -// sp8.y = 0.0f; -// if (PSVECMag(&sp8) <= 0.0f) { -// var_r31->unk_C0 = 0.0f; -// var_r31->unk_BC = 0.0f; -// var_r31->unk_C4 = 1.0f; -// } -// else { -// PSVECNormalize(&sp8, &sp8); -// var_r31->unk_BC = -sp8.z; -// var_r31->unk_C0 = 0.0f; -// var_r31->unk_C4 = sp8; -// } -// var_r31->unk_48 = 0.0f; -// var_r28 = 0; -// if (var_r31->unk_84 > 0.0f) { -// var_r28 = 1; -// } -// Hu3DModelPosSet(var_r30->model[var_r28 + 1], var_r31->unk_130, 3.0f + var_r31->unk_134, var_r31->unk_138); -// if (var_r31->unk_9C <= 0.0f) { -// var_r31->unk_8C = 9; -// } -// if (lbl_1_data_468[var_r31->unk_6C] != 0) { -// *(var_r31 + ((var_r28 * 4) + 0x84)) = 1.0f; -// } -// *(var_r31 + (((1 - var_r28) * 4) + 0x84)) = 0.0f; -// } -// var_r31->unk_10 = 1; -// if (var_r31->unk_B8 != 0.0f) { -// PSMTXRotAxisRad(&sp14[0], var_r31 + 0xBC, 0.017453292f * var_r31->unk_B8); -// PSMTXConcat(&sp14[0], var_r31 + 0xC8, var_r31 + 0xC8); -// PSMTXCopy(var_r31 + 0xC8, Hu3DData[var_r30->model->unk_00].unk_F0[0]); -// } -// var_r31->unk_48 = var_r31->unk_48 + 0.016666668f; -// var_r31->unk_08 = fn_1_D4E0(var_r31 + 0xF8, var_r31 + 0x30, var_r31 + 0x4C, var_r31->unk_48); -// if (var_r31->unk_08 != 0) { -// var_r31->unk_88 = 0.0f; -// var_r31->unk_84 = 0.0f; -// if (var_r31->unk_34 <= 12.0f) { -// var_r29 = lbl_1_bss_7C8->data; -// var_r31->unk_78 = 0; -// Hu3DModelPosSetV(var_r30->model->unk_08, var_r31 + 0x30); -// Hu3DMotionTimeSet(var_r30->model->unk_08, 0.0f); -// if ((var_r31->unk_6C == 5) || (var_r31->unk_6C == 2)) { -// Hu3DMotionSpeedSet(var_r30->model->unk_08, 1.5f); -// fn_1_D888(var_r31 + 0x30, 1.0f); -// } -// else { -// Hu3DMotionSpeedSet(var_r30->model->unk_08, 1.0f); -// fn_1_D888(var_r31 + 0x30, 0.5f); -// var_r31->unk_34 = var_r31->unk_34 + 11.0f; -// } -// var_r31->unk_6C = 0; -// var_r31->unk_04 = 1; -// var_r29->unk_2C = 1; -// var_r29->unk_38 = -1; -// var_f31 = var_r31->unk_38; -// var_f29 = fabs(var_f31); -// var_f28 = var_f29; -// if (var_f28 < 350.0) { -// var_f30 = var_r31->unk_30; -// var_f27 = fabs(var_f30); -// var_f26 = var_f27; -// if (var_f26 < 700.0) { -// var_r29->unk_38 = 0; -// if (var_r31->unk_30 >= 0.0f) { -// var_r29->unk_38 = 1; -// } -// } -// } -// } -// } -// } -// else { -// var_r31->unk_10 = 0; -// } -// return var_r31->unk_08; -// } - -// void fn_1_CB98(omObjData *object) -// { -// Vec sp14; -// Vec sp8; -// float var_f31; -// float var_f30; -// float var_f29; -// float var_f28; -// void *var_r31; -// omObjData *var_r30; -// s32 var_r29; - -// var_r30 = object; -// var_r31 = var_r30->data; -// if (var_r31->unk_78 != 0) { -// Hu3DModelAttrSet(var_r30->model[0], HU3D_ATTR_DISPOFF); -// var_f30 = var_r31->unk_FC; -// var_f29 = var_f30; -// var_f31 = var_f29 - (0.020000001f * var_r31->unk_A8); -// if (var_f31 < 0.0f) { -// var_f31 = 0.0f; -// } -// var_f31 = (var_f30 - var_f31) / 21.0f; -// PSMTXCopy(var_r31 + 0xC8, &sp20[0]); -// var_f28 = (var_r31->unk_B8 * (1.2f * var_r31->unk_A8)) / 21.0f; -// PSMTXRotAxisRad(&sp50[0], var_r31 + 0xBC, 0.017453292f * -var_f28); -// for (var_r29 = 0; var_r29 < 0x15; var_r29++) { -// Hu3DModelAttrReset(var_r30->model[var_r29 + 9], HU3D_ATTR_DISPOFF); -// fn_1_D4E0(var_r31 + 0xF8, &sp14, &sp8, var_f30); -// Hu3DModelPosSetV(var_r30->model[var_r29 + 9], &sp14); -// PSMTXCopy(&sp20[0], Hu3DData[var_r30->model[var_r29 + 9]].unk_F0[0]); -// PSMTXConcat(&sp50[0], &sp20[0], &sp20[0]); -// var_f30 -= var_f31; -// } -// var_r31->unk_FC = var_f29; -// return; -// } -// Hu3DModelAttrReset(var_r30->model[0], HU3D_ATTR_DISPOFF); -// for (var_r29 = 0; var_r29 < 0x15; var_r29++) { -// Hu3DModelAttrSet(var_r30->model[var_r29 + 9], HU3D_ATTR_DISPOFF); -// } -// } - -// void fn_1_CDB8(float *arg0, Vec *arg1, Vec *arg2, u32 arg3, float arg8) -// { -// Vec sp18; -// float sp14; -// float sp10; -// float spC; -// float sp8; -// float var_f31; -// float var_f30; -// float var_f29; -// float var_f28; -// double var_f27; -// double var_f26; -// float *var_r31; -// Vec *var_r30; -// Vec *var_r29; -// u32 var_r28; - -// var_r31 = arg0; -// var_r30 = arg1; -// var_r29 = arg2; -// var_r28 = arg3; -// sp8 = arg8; -// var_r31->unk_0C = 0.0f; -// var_r31->unk_08 = 0.0f; -// var_f31 = lbl_1_data_4D4[var_r28].y; -// var_r31->unk_00 = var_f31; -// if (var_r31->unk_00 <= 0.0f) { -// if (((var_r29->x * var_r30->x) < 0.0f) && (var_r30->x != 0.0f) && (lbl_1_data_4D4[var_r28].x > 0.0f)) { -// var_r31->unk_0C = lbl_1_data_4D4[var_r28].x; -// var_f28 = var_r30->x / (var_r29->x - var_r30->x); -// var_f27 = fabs(var_f28); -// var_f26 = var_f27; -// var_r31->unk_08 = var_f26; -// var_f29 = var_r30->y + (var_r31->unk_08 * (var_r29->y - var_r30->y)); -// if (var_f29 < var_r31->unk_0C) { -// spC = var_r30->x + (var_r31->unk_08 * (var_r29->x - var_r30->x)); -// sp10 = var_r31->unk_0C; -// sp14 = var_r30->z + (var_r31->unk_08 * (var_r29->z - var_r30->z)); -// PSVECSubtract(var_r29, &spC, &sp18); -// var_f30 = PSVECMag(&sp18); -// PSVECSubtract(&spC, var_r30, &sp18); -// var_f30 += PSVECMag(&sp18); -// } -// else { -// PSVECSubtract(var_r29, var_r30, &sp18); -// var_f30 = PSVECMag(&sp18); -// } -// } -// else { -// PSVECSubtract(var_r29, var_r30, &sp18); -// var_f30 = PSVECMag(&sp18); -// } -// var_f31 = var_f30 / (sp8 * lbl_1_data_4D4[var_r28].z); -// var_r31->unk_00 = var_f31; -// } -// var_r31->unk_04 = 0.0f; -// var_r31->unk_2C = var_r30->x; -// var_r31->unk_30 = var_r30->y; -// var_r31->unk_34 = var_r30->z; -// var_r31->unk_38 = var_r29->x; -// var_r31->unk_3C = var_r29->y; -// var_r31->unk_40 = var_r29->z; -// var_r31->unk_1C = var_r29->y - var_r30->y; -// var_r31->unk_24 = -980.0f; -// PSVECSubtract(var_r29, var_r30, &sp18); -// sp18.y = 0.0f; -// var_r31->unk_10 = PSVECMag(&sp18); -// var_r31->unk_18 = 0.0f; -// if (var_f31 > 0.0f) { -// var_r31->unk_20 = (var_r31->unk_1C - (0.5f * (-980.0f * (var_f31 * var_f31)))) / var_f31; -// var_r31->unk_14 = var_r31->unk_10 / var_f31; -// } -// else { -// var_r31->unk_20 = var_r31->unk_1C; -// var_r31->unk_14 = var_r31->unk_10; -// } -// var_r31->unk_28 = lbl_1_data_540[var_r28]; -// } - -// void fn_1_D180(float *arg0) -// { -// float sp8; -// float var_f31; -// float var_f30; -// float var_f29; -// float var_f28; -// float var_f27; -// float var_f26; -// float var_f25; -// s32 var_r31; - -// if (!(arg0->unk_0C <= 0.0f)) { -// var_f31 = arg0->unk_00; -// var_f28 = arg0->unk_00; -// var_f27 = 10.0f * arg0->unk_00; -// for (var_r31 = 0; var_r31 < 0x10; var_r31++) { -// var_f30 = 1.0f / var_f31; -// sp8 = arg0->unk_10 * var_f30; -// var_f26 = (arg0->unk_1C * var_f30) - (0.5f * arg0->unk_24 * var_f31); -// var_f29 = arg0->unk_08 * var_f31; -// var_f25 = arg0->unk_30 + ((var_f29 * (0.5f * arg0->unk_24 * var_f29)) + (var_f26 * var_f29)); -// if (arg0->unk_0C > var_f25) { -// var_f28 = var_f31; -// } -// else { -// var_f27 = var_f31; -// } -// var_f31 = 0.5f * (var_f28 + var_f27); -// } -// var_f30 = 1.0f / var_f31; -// arg0->unk_00 = var_f31; -// arg0->unk_14 = arg0->unk_10 * var_f30; -// arg0->unk_20 = (arg0->unk_1C * var_f30) - (0.5f * arg0->unk_24 * var_f31); -// } -// } - -// void fn_1_D338(float *arg0) -// { -// float sp8; -// float var_f31; -// float var_f30; -// float var_f29; -// float var_f28; -// float var_f27; -// float var_f26; -// float var_f25; -// s32 var_r31; - -// if (!(arg0->unk_0C <= 0.0f)) { -// var_f29 = arg0->unk_08 * arg0->unk_00; -// var_f30 = 1.0f / arg0->unk_00; -// var_f31 = arg0->unk_24; -// var_f28 = arg0->unk_24; -// var_f27 = arg0->unk_24 * arg0->unk_28; -// for (var_r31 = 0; var_r31 < 0x10; var_r31++) { -// sp8 = arg0->unk_10 * var_f30; -// var_f26 = (arg0->unk_1C * var_f30) - (0.5f * var_f31 * arg0->unk_00); -// var_f25 = arg0->unk_30 + ((var_f29 * (0.5f * var_f31 * var_f29)) + (var_f26 * var_f29)); -// if (arg0->unk_0C > var_f25) { -// var_f28 = var_f31; -// } -// else { -// var_f27 = var_f31; -// } -// var_f31 = 0.5f * (var_f28 + var_f27); -// } -// arg0->unk_24 = var_f31; -// arg0->unk_14 = arg0->unk_10 * var_f30; -// arg0->unk_20 = (arg0->unk_1C * var_f30) - (0.5f * arg0->unk_24 * arg0->unk_00); -// } -// } - -// s32 fn_1_D4E0(float *arg0, Vec *arg1, Vec *arg2, float arg8) -// { -// float sp20; -// float sp1C; -// float sp18; -// Vec spC; -// Vec *sp8; -// float var_f31; -// float var_f30; -// float var_f29; -// float *var_r31; -// Vec *var_r30; - -// var_r31 = arg0; -// var_r30 = arg1; -// sp8 = arg2; -// var_f31 = arg8; -// if (var_f31 < 0.0f) { -// var_f31 = 0.0f; -// } -// if (var_f31 > var_r31->unk_00) { -// var_f31 = var_r31->unk_00; -// } -// var_r31->unk_04 = var_f31; -// if (var_r31->unk_10 > 0.0f) { -// PSVECSubtract(var_r31 + 0x38, var_r31 + 0x2C, &spC); -// spC.y = 0.0f; -// PSVECNormalize(&spC, &spC); -// } -// else { -// spC.z = 0.0f; -// spC.y = 0.0f; -// spC = 0.0f; -// } -// sp18 = var_r30->x; -// sp1C = var_r30->y; -// sp20 = var_r30->z; -// var_f30 = (var_f31 * (0.5f * var_r31->unk_18 * var_f31)) + (var_r31->unk_14 * var_f31); -// var_f29 = (var_f31 * (0.5f * var_r31->unk_24 * var_f31)) + (var_r31->unk_20 * var_f31); -// var_r30->x = var_r31->unk_2C + (spC * var_f30); -// var_r30->y = var_r31->unk_30 + var_f29; -// var_r30->z = var_r31->unk_34 + (spC.z * var_f30); -// PSVECSubtract(var_r30, &sp18, sp8); -// if (var_f31 >= var_r31->unk_00) { -// return 1; -// } -// return 0; -// } - -// void fn_1_D6A8(ModelData *model, ParticleData *particle, Mtx matrix) -// { -// HsfanimStruct01 *var_r31; -// ParticleData *var_r30; -// s32 var_r29; -// u16 temp_r0; - -// var_r30 = particle; -// for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r31 < var_r30->unk_30; var_r29++, var_r31 += 0x44) { -// if (var_r31->unk00 != 0) { -// PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); -// var_r31->unk08.x *= 0.92f; -// var_r31->unk08.z *= 0.92f; -// var_r31->unk08.y += -0.27222225f; -// var_r31->unk2C += 2.0f; -// var_r31->unk40.a = var_r31->unk40.a * 0.99f; -// if (var_r31->unk00 < 24.0f) { -// var_r31->unk40.a = 0.9f * var_r31->unk40.a; -// } -// temp_r0 = var_r31->unk00 - 1; -// var_r31->unk00 = temp_r0; -// if (temp_r0 == 0) { -// var_r31->unk00 = 0; -// var_r31->unk2C = 0.0f; -// var_r31->unk40.a = 0; -// } -// } -// } -// DCStoreRange(var_r30->unk_48, var_r30->unk_30 * 0x44); -// } - -// void fn_1_D888(Vec *arg0, float arg8) -// { -// float sp10; -// float spC; -// float sp8; -// float var_f31; -// float var_f30; -// float var_f29; -// void *var_r31; -// Vec *var_r30; -// s32 var_r29; -// u32 var_r28; - -// var_r30 = arg0; -// var_f29 = arg8; -// var_r31 = Hu3DData[lbl_1_bss_7CC->model->unk_0A].unk_120->unk_48; -// var_r28 = 3.0f + (12.0f * var_f29); -// var_r29 = 0; -// loop_4: -// if (var_r29 < 0xC8) { -// if ((var_r31->unk_00 != 0) -// || (var_r31->unk_00 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8))), var_f30 = frandmod(0x168), sp8 = sind(var_f30) / 180.0), -// spC = 0.0f, -// sp10 = cos((3.141592653589793 * var_f30), var_f31 = 0.030000001f * frandmod(0x3E8), var_r31->unk_34 = var_r30->x + (sp8 * var_f31), -// var_r31->unk_38 = 10.0f + (var_r30->y + (0.030000001f * frandmod(0x3E8))), var_r31->unk_3C = var_r30->z + (sp10 * var_f31), -// var_f31 = 0.8333334f + (0.0016666667f * frandmod(0x3E8)), var_f31 *= 1.0f + var_f29, var_r31->unk_08 = sp8 * var_f31, -// var_r31->unk_10 = sp10 * var_f31, var_r31->unk_0C = 0.50000006f + (0.0011666667f * frandmod(0x3E8)), -// var_r31->unk_0C = var_r31->unk_0C * (1.0f + var_f29), var_r31->unk_30 = frandmod(0x168), var_r31->unk_2C = 60.0f + frandmod(0x1E), -// var_r31->unk_43 = frandmod(0x64) + 0x78, var_f31 = 0.001f * frandmod(0x3E8), var_r31->unk_40 = 235.0f + (20.0f * var_f31), -// var_r31->unk_41 = 180.0f + (75.0f * var_f31), var_r31->unk_42 = 155.0f + (100.0f * var_f31), var_r28--, ((var_r28 < 1) == 0))) { -// var_r29++; -// var_r31 += 0x44; -// goto loop_4; -// } -// } -// } - -// void fn_1_DD70(Vec *arg0) -// { -// void *var_r31; -// void *var_r30; -// Vec *var_r29; - -// var_r29 = arg0; -// var_r31 = Hu3DData[lbl_1_bss_7CC->model->unk_10].unk_120; -// Hu3DModelAttrReset(lbl_1_bss_7CC->model->unk_10, HU3D_ATTR_DISPOFF); -// var_r30 = var_r31->unk_48; -// var_r31->unk_00 = 0; -// var_r31->unk_02 = 0x3C; -// var_r30->unk_2C = 100.0f; -// var_r30->unk_34 = var_r29->x; -// var_r30->unk_38 = var_r29->y; -// var_r30->unk_3C = var_r29->z; -// } - -// void fn_1_DE28(ModelData *model, ParticleData *particle, Mtx matrix) -// { -// ParticleData *var_r31; -// HsfanimStruct01 **var_r30; -// s32 var_r29; -// s8 var_r28; -// ModelData *var_r27; -// s16 temp_r0; - -// var_r27 = model; -// var_r31 = particle; -// if (var_r31->unk_00 == 0) { -// var_r31->unk_00 = 1; -// for (var_r30 = &var_r31->unk_48, var_r29 = 0; var_r30 < var_r31->unk_30; var_r29++, var_r30 += 0x44) { -// var_r30->unk_2C = 0.0f; -// } -// } -// var_r28 = 0.016666668f * (var_r31->unk_02 * 0xFF); -// for (var_r30 = var_r31->unk_48, var_r29 = 0; var_r30 < var_r31->unk_30; var_r29++, var_r30 += 0x44) { -// var_r30->unk_43 = var_r28; -// } -// temp_r0 = var_r31->unk_02 - 1; -// var_r31->unk_02 = temp_r0; -// if (temp_r0 == 0) { -// var_r27->attr |= 1; -// } -// DCStoreRange(var_r31->unk_48, var_r31->unk_30 * 0x44); -// } - -void fn_1_DF44(omObjData *var_r30) +void fn_1_C240(omObjData *object) { - M433PlayerWork3 *var_r31; + s32 var_r29; - var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M433PlayerWork3), MEMORY_DEFAULT_NUM); - var_r31 = var_r30->data; - memset(var_r31, 0, sizeof(M433PlayerWork3)); - var_r31->unk_00 = 0; - var_r31->unk_04 = -1; - var_r31->unk_08 = 0; - var_r31->unk_18 = var_r31->unk_1C = 0; - var_r31->unk_2C = var_r31->unk_30 = 0; - fn_1_E5C0(var_r31->unk_4C, &var_r31->unk_64); - var_r30->func = fn_1_E11C; + M433PlayerWork2 *work = object->data; + s32 sp8 = 0; + work->unk_00 = 0; + switch (work->unk_18) { + case 0: + work->unk_04 = 1; + break; + case 1: + work->unk_B8 = 0.0f; + work->unk_BC.x = work->unk_BC.y = 0.0f; + work->unk_BC.z = 1.0f; + PSMTXIdentity(work->unk_C8); + work->unk_00 = 1; + break; + case 10: + work->unk_00 = 1; + break; + } + work->unk_8C++; + if (work->unk_90 != 0) { + work->unk_A0 = 1.0f; + if (work->unk_94 == 2) { + work->unk_A4 += 12.000001f; + if (work->unk_A4 >= 360.0f) { + work->unk_A4 -= 360.0f; + } + work->unk_A0 = 1.5f; + work->unk_A8 += 0.015000001f; + Hu3DMotionSpeedSet(object->model[3], 2.5f); + } + else { + Hu3DMotionTimeSet(object->model[3], 0.0f); + Hu3DMotionSpeedSet(object->model[3], 0.0f); + } + Hu3DModelRotSet(object->model[3], 0.0f, work->unk_A4, 0.0f); + Hu3DModelAttrReset(object->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(object->model[3], work->unk_AC.x, 3.0f + work->unk_AC.y, work->unk_AC.z); + work->unk_98++; + work->unk_90 = 0; + } + else if (work->unk_94 != 0) { + work->unk_94 = 0; + work->unk_A0 = 0.0f; + } + work->unk_9C = work->unk_9C + (0.2f * (work->unk_A0 - work->unk_9C)); + Hu3DModelScaleSet(object->model[3], work->unk_9C, 1.0f, work->unk_9C); + if ((work->unk_A0 <= 0.0f) && (work->unk_9C < 0.1f)) { + Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF); + work->unk_9C = 0.0f; + } + for (var_r29 = 0; var_r29 < 2; var_r29++) { + work->unk_7C[var_r29] += (0.3f * (work->unk_84[var_r29] - work->unk_7C[var_r29])); + if (work->unk_84[var_r29] > 0.0f) { + Hu3DModelAttrReset(object->model[var_r29 + 1], HU3D_ATTR_DISPOFF); + } + else if (work->unk_7C[var_r29] < 0.1f) { + Hu3DModelAttrSet(object->model[var_r29 + 1], HU3D_ATTR_DISPOFF); + } + Hu3DModelScaleSet(object->model[var_r29 + 1], work->unk_7C[var_r29], 1.0f, work->unk_7C[var_r29]); + } + fn_1_C6B0(object); + fn_1_CB98(object); + object->trans.x = work->unk_30.x; + object->trans.y = work->unk_30.y; + object->trans.z = work->unk_30.z; + if ((fn_1_216C() >= 3) && (work->unk_04 != 0) && (fn_1_2244() != 0)) { + fn_1_DD70(&work->unk_30); + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + object->func = fn_1_C6AC; + } } -// void fn_1_DFE4(void *arg0) -// { -// void *var_r31; -// void *var_r30; +void fn_1_C6AC(omObjData *object) { } -// var_r30 = arg0; -// var_r31 = var_r30->unk_5C; -// OSReport("\n"); -// OSReport("uGameEvent %d\n", var_r31->unk_00); -// OSReport("sWinGrp %d\n", var_r31->unk_04); -// OSReport("uServeGrp %d\n", var_r31->unk_08); -// OSReport("uPointGrp %d\n", var_r31->unk_0C); -// OSReport("auServeCel[2] %d,%d\n", var_r31->unk_10, var_r31->unk_14); -// OSReport("auEvents[2] %d,%d\n", var_r31->unk_18, var_r31->unk_1C); -// OSReport("uContactCnt %d\n", var_r31->unk_34); -// OSReport("sGroundGrp %d\n", var_r31->unk_38); -// OSReport("uContactGrp %d\n", var_r31->unk_3C); -// OSReport("sContactCel %d\n", var_r31->unk_40); -// OSReport(lbl_1_data_63E, var_r31->unk_44); -// OSReport("\n"); -// } - -// void fn_1_E11C(omObjData *arg0) -// { -// s32 sp8; -// s32 temp_r4; -// void *var_r31; -// u32 var_r30; -// s32 var_r29; -// s32 var_r28; -// s32 var_r27; -// s16 var_r26; -// s16 var_r25; -// omObjData *var_r24; -// u32 temp_r0; -// s32 temp_r0_2; - -// var_r24 = arg0; -// var_r31 = var_r24->data; -// sp8 = 0; -// var_r28 = 0; -// var_r31->unk_28++; -// var_r31->unk_4C = var_r31->unk_20; -// var_r31->unk_58 = var_r31->unk_24; -// if (fn_1_216C() >= 2) { -// fn_1_ECFC(var_r31 + 0x4C, var_r31 + 0x64); -// } -// temp_r0 = var_r31->unk_00; -// switch (temp_r0) { -// case 0: -// var_r31->unk_34 = 0; -// var_r31->unk_40 = -1; -// if (var_r31->unk_28 == 0xC) { -// fn_1_58D8(1); -// } -// if ((var_r31->unk_28 >= 30.0f) && (fn_1_216C() >= 2)) { -// var_r31->unk_00 = 1; -// var_r31->unk_28 = 0; -// var_r31->unk_1C = 1; -// var_r31->unk_18 = 1; -// } -// break; -// case 1: -// if (var_r31->unk_30 != 0) { -// var_r31->unk_48 = 0; -// var_r31->unk_40 = -1; -// var_r31->unk_34 = 0; -// var_r31->unk_00 = 2; -// var_r31->unk_28 = 0; -// var_r31->unk_1C = 3; -// var_r31->unk_18 = 3; -// if (var_r31->unk_44 != 0) { -// var_r26 = 5; -// } -// else { -// var_r26 = 6; -// } -// fn_1_58D8(var_r26); -// } -// break; -// case 2: -// case 5: -// if (var_r31->unk_30 != 0) { -// if (var_r31->unk_34 != 0) { -// var_r31->unk_48++; -// var_r31->unk_00 = 3; -// *(var_r31 + ((var_r31->unk_3C * 4) + 0x18)) = 4; -// if ((var_r31->unk_48 >= 6) && ((var_r31->unk_48 % 3) == 0)) { -// fn_1_58D8(3); -// } -// } -// var_r31->unk_28 = 0; -// } -// var_r28 = 1; -// break; -// case 3: -// case 4: -// if (var_r31->unk_30 != 0) { -// if (var_r31->unk_3C == var_r31->unk_44) { -// var_r31->unk_00 = 4; -// *(var_r31 + ((var_r31->unk_3C * 4) + 0x18)) = 5; -// } -// else { -// var_r31->unk_40 = -1; -// var_r31->unk_34 = 0; -// var_r31->unk_00 = 5; -// *(var_r31 + ((var_r31->unk_3C * 4) + 0x18)) = 3; -// if (var_r31->unk_44 != 0) { -// var_r25 = 5; -// } -// else { -// var_r25 = 6; -// } -// fn_1_58D8(var_r25); -// } -// var_r31->unk_28 = 0; -// } -// var_r28 = 1; -// break; -// case 6: -// if (var_r31->unk_28 >= 120.0f) { -// var_r31->unk_00 = 0; -// var_r31->unk_28 = 0; -// var_r31->unk_1C = 0; -// var_r31->unk_18 = 0; -// } -// break; -// } -// if ((var_r31->unk_2C != 0) && (var_r28 != 0)) { -// if (var_r31->unk_38 >= 0) { -// var_r30 = 1 - var_r31->unk_38; -// fn_1_58D8(1); -// } -// else { -// var_r30 = 1 - var_r31->unk_3C; -// fn_1_58D8(2); -// } -// var_r31->unk_0C = var_r30; -// temp_r4 = (var_r30 * 4) + 0x20; -// *(var_r31 + temp_r4) = *(var_r31 + temp_r4) + 1; -// if (var_r31->unk_08 != var_r30) { -// var_r31->unk_08 = var_r30; -// *(var_r31 + ((var_r31->unk_08 * 4) + 0x10)) = 1 - *(var_r31 + ((var_r31->unk_08 * 4) + 0x10)); -// } -// if (*(var_r31 + ((var_r30 * 4) + 0x20)) >= 5) { -// var_r31->unk_04 = var_r30; -// var_r31->unk_00 = 7; -// var_r31->unk_1C = 7; -// var_r31->unk_18 = 7; -// var_r27 = 0; -// for (var_r29 = 0; var_r29 < 4; var_r29++) { -// spC[var_r29] = -1; -// if (var_r31->unk_04 == lbl_1_bss_7D0[var_r29]->data->unk_14) { -// temp_r0_2 = var_r27; -// var_r27++; -// spC[temp_r0_2] = lbl_1_bss_7D0[var_r29]->work[0]; -// } -// } -// fn_1_219C(1, spC[0], sp10); -// fn_1_21E4(4); -// } -// else { -// var_r31->unk_00 = 6; -// var_r31->unk_1C = 6; -// var_r31->unk_18 = 6; -// fn_1_FE64(var_r31 + 0x64, var_r31->unk_20, var_r31->unk_24, var_r30); -// HuAudFXPlay(0x16); -// } -// var_r31->unk_28 = 0; -// } -// var_r31->unk_2C = 0; -// var_r31->unk_30 = 0; -// } - -void fn_1_E5C0(M433PlayerWork3SubStruct *var_r30, M433PlayerWork3SubStruct2 *var_r29) +s32 fn_1_C6B0(omObjData *object) { - u32 var_r31; + Mtx sp14; + Vec sp8; + M433PlayerWork3 *var_r29; + s32 var_r28; + + M433PlayerWork2 *work = object->data; + if ((work->unk_00 == 0) && (work->unk_04 == 0) && (work->unk_08 == 0)) { + if (work->unk_10 == 0) { + fn_1_CDB8(&work->unk_F8, &work->unk_30, &work->unk_3C, work->unk_6C, work->unk_A8); + fn_1_D338(&work->unk_F8); + fn_1_D180(&work->unk_F8); + work->unk_B8 = work->unk_A8 * (8.0f * lbl_1_data_48C[work->unk_6C]); + PSVECSubtract(&work->unk_3C, &work->unk_30, &sp8); + sp8.y = 0.0f; + if (PSVECMag(&sp8) <= 0.0f) { + work->unk_BC.x = work->unk_BC.y = 0.0f; + work->unk_BC.z = 1.0f; + } + else { + PSVECNormalize(&sp8, &sp8); + work->unk_BC.x = -sp8.z; + work->unk_BC.y = 0.0f; + work->unk_BC.z = sp8.x; + } + work->unk_48 = 0.0f; + var_r28 = 0; + if (work->unk_84[0] > 0.0f) { + var_r28++; + } + Hu3DModelPosSet(object->model[var_r28 + 1], work->unk_F8.unk_38.x, 3.0f + work->unk_F8.unk_38.y, work->unk_F8.unk_38.z); + if (work->unk_9C <= 0.0f) { + work->unk_8C = 9; + } + if (lbl_1_data_468[work->unk_6C] != 0) { + work->unk_84[var_r28] = 1.0f; + } + work->unk_84[1 - var_r28] = 0.0f; + } + work->unk_10 = 1; + if (work->unk_B8 != 0.0f) { + PSMTXRotAxisRad(sp14, &work->unk_BC, 0.017453292f * work->unk_B8); + PSMTXConcat(sp14, work->unk_C8, work->unk_C8); + PSMTXCopy(work->unk_C8, Hu3DData[object->model[0]].unk_F0); + } + work->unk_48 += 0.016666668f; + work->unk_08 = fn_1_D4E0(&work->unk_F8, &work->unk_30, &work->unk_4C, work->unk_48); + if (work->unk_08 != 0) { + work->unk_84[0] = work->unk_84[1] = 0.0f; + if (work->unk_30.y <= 12.0f) { + var_r29 = lbl_1_bss_7C8->data; + work->unk_78 = 0; + Hu3DModelPosSetV(object->model[4], &work->unk_30); + Hu3DMotionTimeSet(object->model[4], 0.0f); + if ((work->unk_6C == 5) || (work->unk_6C == 2)) { + Hu3DMotionSpeedSet(object->model[4], 1.5f); + fn_1_D888(&work->unk_30, 1.0f); + } + else { + Hu3DMotionSpeedSet(object->model[4], 1.0f); + fn_1_D888(&work->unk_30, 0.5f); + work->unk_30.y += 11.0f; + } + work->unk_6C = 0; + work->unk_04 = 1; + var_r29->unk_2C = 1; + var_r29->sGroundGrp = -1; + if (fabs(work->unk_30.z) < 350.0) { + if (fabs(work->unk_30.x) < 700.0) { + var_r29->sGroundGrp = 0; + if (work->unk_30.x >= 0.0f) { + var_r29->sGroundGrp = 1; + } + } + } + } + } + } + else { + work->unk_10 = 0; + } + return work->unk_08; +} + +void fn_1_CB98(omObjData *object) +{ + Mtx sp50; + Mtx sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + s32 var_r29; + + M433PlayerWork2 *work = object->data; + if (work->unk_78 != 0) { + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + var_f30 = work->unk_F8.unk_04; + var_f29 = var_f30; + var_f31 = var_f29 - (0.020000001f * work->unk_A8); + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + var_f31 = (var_f30 - var_f31) / 21.0f; + PSMTXCopy(work->unk_C8, sp20); + var_f28 = (work->unk_B8 * (1.2f * work->unk_A8)) / 21.0f; + PSMTXRotAxisRad(sp50, &work->unk_BC, MTXDegToRad(-var_f28)); + for (var_r29 = 0; var_r29 < 0x15; var_r29++) { + Hu3DModelAttrReset(object->model[var_r29 + 9], HU3D_ATTR_DISPOFF); + fn_1_D4E0(&work->unk_F8, &sp14, &sp8, var_f30); + Hu3DModelPosSetV(object->model[var_r29 + 9], &sp14); + PSMTXCopy(sp20, Hu3DData[object->model[var_r29 + 9]].unk_F0); + PSMTXConcat(sp50, sp20, sp20); + var_f30 -= var_f31; + } + work->unk_F8.unk_04 = var_f29; + return; + } + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + for (var_r29 = 0; var_r29 < 0x15; var_r29++) { + Hu3DModelAttrSet(object->model[var_r29 + 9], HU3D_ATTR_DISPOFF); + } +} + +void fn_1_CDB8(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, u32 arg3, float arg8) +{ + Vec sp18; + Vec spC; + float var_f31; + float var_f30; + float var_f29; + + arg0->unk_0C = 0.0f; + arg0->unk_08 = 0.0f; + var_f31 = lbl_1_data_4D4[arg3].y; + arg0->unk_00 = var_f31; + if (arg0->unk_00 <= 0.0f) { + if (((arg2->x * arg1->x) < 0.0f) && (arg1->x != 0.0f) && (lbl_1_data_4D4[arg3].x > 0.0f)) { + arg0->unk_0C = lbl_1_data_4D4[arg3].x; + arg0->unk_08 = fabs(arg1->x / (arg2->x - arg1->x)); + var_f29 = arg1->y + (arg0->unk_08 * (arg2->y - arg1->y)); + if (var_f29 < arg0->unk_0C) { + spC.x = arg1->x + (arg0->unk_08 * (arg2->x - arg1->x)); + spC.y = arg0->unk_0C; + spC.z = arg1->z + (arg0->unk_08 * (arg2->z - arg1->z)); + PSVECSubtract(arg2, &spC, &sp18); + var_f30 = PSVECMag(&sp18); + PSVECSubtract(&spC, arg1, &sp18); + var_f30 += PSVECMag(&sp18); + } + else { + PSVECSubtract(arg2, arg1, &sp18); + var_f30 = PSVECMag(&sp18); + } + } + else { + PSVECSubtract(arg2, arg1, &sp18); + var_f30 = PSVECMag(&sp18); + } + var_f31 = var_f30 / (arg8 * lbl_1_data_4D4[arg3].z); + arg0->unk_00 = var_f31; + } + arg0->unk_04 = 0.0f; + arg0->unk_2C = *arg1; + arg0->unk_38 = *arg2; + arg0->unk_1C = arg2->y - arg1->y; + arg0->unk_24 = -980.0f; + PSVECSubtract(arg2, arg1, &sp18); + sp18.y = 0.0f; + arg0->unk_10 = PSVECMag(&sp18); + arg0->unk_18 = 0.0f; + if (var_f31 > 0.0f) { + arg0->unk_20 = (arg0->unk_1C - (0.5f * (-980.0f * (var_f31 * var_f31)))) / var_f31; + arg0->unk_14 = arg0->unk_10 / var_f31; + } + else { + arg0->unk_20 = arg0->unk_1C; + arg0->unk_14 = arg0->unk_10; + } + arg0->unk_28 = lbl_1_data_540[arg3]; +} + +void fn_1_D180(M433PlayerWork2Sub *arg0) +{ + float sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + s32 var_r31; + + if (!(arg0->unk_0C <= 0.0f)) { + var_f31 = arg0->unk_00; + var_f28 = arg0->unk_00; + var_f27 = 10.0f * arg0->unk_00; + for (var_r31 = 0; var_r31 < 0x10; var_r31++) { + var_f30 = 1.0f / var_f31; + sp8 = arg0->unk_10 * var_f30; + var_f26 = (arg0->unk_1C * var_f30) - (0.5f * arg0->unk_24 * var_f31); + var_f29 = arg0->unk_08 * var_f31; + var_f25 = arg0->unk_2C.y + ((var_f29 * (0.5f * arg0->unk_24 * var_f29)) + (var_f26 * var_f29)); + if (arg0->unk_0C > var_f25) { + var_f28 = var_f31; + } + else { + var_f27 = var_f31; + } + var_f31 = 0.5f * (var_f28 + var_f27); + } + var_f30 = 1.0f / var_f31; + arg0->unk_00 = var_f31; + arg0->unk_14 = arg0->unk_10 * var_f30; + arg0->unk_20 = (arg0->unk_1C * var_f30) - (0.5f * arg0->unk_24 * var_f31); + } +} + +void fn_1_D338(M433PlayerWork2Sub *arg0) +{ + float sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + s32 var_r31; + + if (!(arg0->unk_0C <= 0.0f)) { + var_f29 = arg0->unk_08 * arg0->unk_00; + var_f30 = 1.0f / arg0->unk_00; + var_f31 = arg0->unk_24; + var_f28 = arg0->unk_24; + var_f27 = arg0->unk_24 * arg0->unk_28; + for (var_r31 = 0; var_r31 < 0x10; var_r31++) { + sp8 = arg0->unk_10 * var_f30; + var_f26 = (arg0->unk_1C * var_f30) - (0.5f * var_f31 * arg0->unk_00); + var_f25 = arg0->unk_2C.y + ((var_f29 * (0.5f * var_f31 * var_f29)) + (var_f26 * var_f29)); + if (arg0->unk_0C > var_f25) { + var_f28 = var_f31; + } + else { + var_f27 = var_f31; + } + var_f31 = 0.5f * (var_f28 + var_f27); + } + arg0->unk_24 = var_f31; + arg0->unk_14 = arg0->unk_10 * var_f30; + arg0->unk_20 = (arg0->unk_1C * var_f30) - (0.5f * arg0->unk_24 * arg0->unk_00); + } +} + +s32 fn_1_D4E0(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, float arg8) +{ + Vec sp18; + Vec spC; + float var_f30; + float var_f29; + + if (arg8 < 0.0f) { + arg8 = 0.0f; + } + if (arg8 > arg0->unk_00) { + arg8 = arg0->unk_00; + } + arg0->unk_04 = arg8; + if (arg0->unk_10 > 0.0f) { + PSVECSubtract(&arg0->unk_38, &arg0->unk_2C, &spC); + spC.y = 0.0f; + PSVECNormalize(&spC, &spC); + } + else { + spC.x = spC.y = spC.z = 0.0f; + } + sp18 = *arg1; + var_f30 = (arg8 * (0.5f * arg0->unk_18 * arg8)) + (arg0->unk_14 * arg8); + var_f29 = (arg8 * (0.5f * arg0->unk_24 * arg8)) + (arg0->unk_20 * arg8); + arg1->x = arg0->unk_2C.x + (spC.x * var_f30); + arg1->y = arg0->unk_2C.y + var_f29; + arg1->z = arg0->unk_2C.z + (spC.z * var_f30); + PSVECSubtract(arg1, &sp18, arg2); + if (arg8 >= arg0->unk_00) { + return 1; + } + return 0; +} + +void fn_1_D6A8(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + s32 var_r29; + + for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00_s16 != 0) { + PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + var_r31->unk08.x *= 0.92f; + var_r31->unk08.z *= 0.92f; + var_r31->unk08.y += -0.27222225f; + var_r31->unk2C += 2.0f; + var_r31->unk40.a *= 0.99f; + if (var_r31->unk00_s16 < 24.0f) { + var_r31->unk40.a = 0.9f * var_r31->unk40.a; + } + if (--var_r31->unk00_s16 == 0) { + var_r31->unk00_s16 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * 0x44); +} + +void fn_1_D888(Vec *arg0, float arg8) +{ + Vec sp8; + float var_f31; + float var_f30; + HsfanimStruct01 *var_r31; + s32 var_r29; + u32 var_r28; + + var_r31 = ((ParticleData *)Hu3DData[lbl_1_bss_7CC->model[5]].unk_120)->unk_48; + var_r28 = 3.0f + (12.0f * arg8); + for (var_r29 = 0; var_r29 < 0xC8; var_r29++, var_r31++) { + if (var_r31->unk00_s16 == 0) { + var_r31->unk00_s16 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8))); + var_f30 = frandmod(0x168); + sp8.x = sind(var_f30); + sp8.y = 0.0f; + sp8.z = cosd(var_f30); + var_f31 = 0.030000001f * frandmod(0x3E8); + var_r31->unk34.x = arg0->x + (sp8.x * var_f31); + var_r31->unk34.y = 10.0f + (arg0->y + (0.030000001f * frandmod(0x3E8))); + var_r31->unk34.z = arg0->z + (sp8.z * var_f31); + var_f31 = 0.8333334f + (0.0016666667f * frandmod(0x3E8)); + var_f31 *= 1.0f + arg8; + var_r31->unk08.x = sp8.x * var_f31; + var_r31->unk08.z = sp8.z * var_f31; + var_r31->unk08.y = 0.50000006f + (0.0011666667f * frandmod(0x3E8)); + var_r31->unk08.y *= (1.0f + arg8); + var_r31->unk30 = frandmod(0x168); + var_r31->unk2C = 60.0f + frandmod(0x1E); + var_r31->unk40.a = frandmod(0x64) + 0x78; + var_f31 = 0.001f * frandmod(0x3E8); + var_r31->unk40.r = 235.0f + (20.0f * var_f31); + var_r31->unk40.g = 180.0f + (75.0f * var_f31); + var_r31->unk40.b = 155.0f + (100.0f * var_f31); + if (--var_r28 < 1) { + break; + } + } + } +} + +void fn_1_DD70(Vec *arg0) +{ + HsfanimStruct01 *var_r30; + + ParticleData *var_r31 = Hu3DData[lbl_1_bss_7CC->model[8]].unk_120; + Hu3DModelAttrReset(lbl_1_bss_7CC->model[8], HU3D_ATTR_DISPOFF); + var_r30 = var_r31->unk_48; + var_r31->unk_00 = 0; + var_r31->unk_02 = 0x3C; + var_r30->unk2C = 100.0f; + var_r30->unk34 = *arg0; +} + +void fn_1_DE28(ModelData *var_r27, ParticleData *var_r31, Mtx matrix) +{ + HsfanimStruct01 *var_r30; + s32 var_r29; + s8 var_r28; + + if (var_r31->unk_00 == 0) { + var_r31->unk_00 = 1; + for (var_r30 = (HsfanimStruct01 *)&var_r31->unk_48, var_r29 = 0; var_r29 < var_r31->unk_30; var_r29++, var_r30++) { + var_r30->unk2C = 0.0f; + } + } + var_r28 = 0.016666668f * (var_r31->unk_02 * 0xFF); + for (var_r30 = var_r31->unk_48, var_r29 = 0; var_r29 < var_r31->unk_30; var_r29++, var_r30++) { + var_r30->unk40.a = var_r28; + } + if (--var_r31->unk_02 == 0) { + var_r27->attr |= 1; + } + DCStoreRange(var_r31->unk_48, var_r31->unk_30 * sizeof(HsfanimStruct01)); +} + +void fn_1_DF44(omObjData *object) +{ + M433PlayerWork3 *work; + + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M433PlayerWork3), MEMORY_DEFAULT_NUM); + work = object->data; + memset(work, 0, sizeof(M433PlayerWork3)); + work->uGameEvent = 0; + work->sWinGrp = -1; + work->uServeGrp = 0; + work->auEvents[0] = work->auEvents[1] = 0; + work->unk_2C = work->unk_30 = 0; + fn_1_E5C0(work->unk_4C, &work->unk_64); + object->func = fn_1_E11C; +} + +void fn_1_DFE4(omObjData *var_r30) +{ + M433PlayerWork3 *work = var_r30->data; + OSReport("\n"); + OSReport("uGameEvent %d\n", work->uGameEvent); + OSReport("sWinGrp %d\n", work->sWinGrp); + OSReport("uServeGrp %d\n", work->uServeGrp); + OSReport("uPointGrp %d\n", work->uPointGrp); + OSReport("auServeCel[2] %d,%d\n", work->auServeCel[0], work->auServeCel[1]); + OSReport("auEvents[2] %d,%d\n", work->auEvents[0], work->auEvents[1]); + OSReport("uContactCnt %d\n", work->uContactCnt); + OSReport("sGroundGrp %d\n", work->sGroundGrp); + OSReport("uContactGrp %d\n", work->uContactGrp); + OSReport("sContactCel %d\n", work->uContactCel); + OSReport("uTargetGrp %d\n", work->uTargetGrp); + OSReport("\n"); +} + +void fn_1_E11C(omObjData *object) +{ + s32 spC[4]; + u32 var_r30; + s32 var_r29; + s32 var_r27; + s16 var_r26; + s16 var_r25; + + M433PlayerWork3 *work = object->data; + s32 sp8 = 0; + s32 var_r28 = 0; + work->unk_28++; + work->unk_4C[0].unk_00 = work->unk_20[0]; + work->unk_4C[1].unk_00 = work->unk_20[1]; + if (fn_1_216C() >= 2) { + fn_1_ECFC(work->unk_4C, &work->unk_64); + } + switch (work->uGameEvent) { + case 0: + work->uContactCnt = 0; + work->uContactCel = -1; + if (work->unk_28 == 0xC) { + fn_1_58D8(1); + } + if ((work->unk_28 >= 30.0f) && (fn_1_216C() >= 2)) { + work->uGameEvent = 1; + work->unk_28 = 0; + work->auEvents[0] = work->auEvents[1] = 1; + } + break; + case 1: + if (work->unk_30 != 0) { + work->unk_48 = 0; + work->uContactCel = -1; + work->uContactCnt = 0; + work->uGameEvent = 2; + work->unk_28 = 0; + work->auEvents[0] = work->auEvents[1] = 3; + if (work->uTargetGrp != 0) { + var_r26 = 5; + } + else { + var_r26 = 6; + } + fn_1_58D8(var_r26); + } + break; + case 2: + case 5: + if (work->unk_30 != 0) { + if (work->uContactCnt != 0) { + work->unk_48++; + work->uGameEvent = 3; + work->auEvents[work->uContactGrp] = 4; + if ((work->unk_48 >= 6) && ((work->unk_48 % 3) == 0)) { + fn_1_58D8(3); + } + } + work->unk_28 = 0; + } + var_r28 = 1; + break; + case 3: + case 4: + if (work->unk_30 != 0) { + if (work->uContactGrp == work->uTargetGrp) { + work->uGameEvent = 4; + work->auEvents[work->uContactGrp] = 5; + } + else { + work->uContactCel = -1; + work->uContactCnt = 0; + work->uGameEvent = 5; + work->auEvents[work->uContactGrp] = 3; + if (work->uTargetGrp != 0) { + var_r25 = 5; + } + else { + var_r25 = 6; + } + fn_1_58D8(var_r25); + } + work->unk_28 = 0; + } + var_r28 = 1; + break; + case 6: + if (work->unk_28 >= 120.0f) { + work->uGameEvent = 0; + work->unk_28 = 0; + work->auEvents[0] = work->auEvents[1] = 0; + } + break; + case 7: + break; + } + if ((work->unk_2C != 0) && (var_r28 != 0)) { + if (work->sGroundGrp >= 0) { + var_r30 = 1 - work->sGroundGrp; + fn_1_58D8(1); + } + else { + var_r30 = 1 - work->uContactGrp; + fn_1_58D8(2); + } + work->uPointGrp = var_r30; + work->unk_20[var_r30]++; + if (work->uServeGrp != var_r30) { + work->uServeGrp = var_r30; + work->auServeCel[work->uServeGrp] = 1 - work->auServeCel[work->uServeGrp]; + } + if (work->unk_20[var_r30] >= 5) { + work->sWinGrp = var_r30; + work->uGameEvent = 7; + work->auEvents[0] = work->auEvents[1] = 7; + var_r27 = 0; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + spC[var_r29] = -1; + if (work->sWinGrp == OM_GET_DATA_PTR(lbl_1_bss_7D0[var_r29], M433PlayerWork)->unk_14) { + spC[var_r27++] = lbl_1_bss_7D0[var_r29]->work[0]; + } + } + fn_1_219C(1, spC[0], spC[1]); + fn_1_21E4(4); + } + else { + work->uGameEvent = 6; + work->auEvents[0] = work->auEvents[1] = 6; + fn_1_FE64(&work->unk_64, work->unk_20[0], work->unk_20[1], var_r30); + HuAudFXPlay(0x16); + } + work->unk_28 = 0; + } + work->unk_2C = 0; + work->unk_30 = 0; +} + +u16 lbl_1_data_674[6] = { 0, 1, 2, 3, 3, 0 }; +s32 lbl_1_data_680[2] = { 0x61001E, 0x61001F }; +Vec2f lbl_1_data_688[5] = { + { 0.0f, 0.0f }, + { 0.0f, 0.0f }, + { -23.0f, 0.0f }, + { 1.0f, 0.0f }, + { 21.0f, 0.0f }, +}; +Vec2f lbl_1_data_6B0[2] = { { 72.0f, 56.0f }, { 504.0f, 56.0f } }; +s32 lbl_1_data_6C0[0xB][4] = { + { 0x13000B, 0, 0, 0 }, + { 0x13000C, 0, 0, 0 }, + { 0x13000D, 0, 0, 0 }, + { 0x13000E, 0, 0, 0 }, + { 0x13000F, 0, 0, 0 }, + { 0x130010, 0, 0, 0 }, + { 0x130011, 0, 0, 0 }, + { 0x130012, 0, 0, 0 }, + { 0x130013, 0, 0, 0 }, + { 0x130014, 0, 0, 0 }, + { 0x130099, 0, 0, 0 }, +}; +s32 lbl_1_data_770[9] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; +M433DllPlayerData794Struct lbl_1_data_794[9] = { + { 0, 0, 0 }, + { 0, 0, 0 }, + { 1, 1, 0 }, + { 1, 0, 1 }, + { 1, 0, 1 }, + { 1, 1, 0 }, + { 1, 1, 0 }, + { 1, 0, 1 }, + { 1, 0, 1 }, +}; +u32 lbl_1_data_800[9] = { 0, 1, 2, 1, 1, 2, 1, 1, 1 }; + +void fn_1_E5C0(M433PlayerWork3Sub *arg0, M433PlayerWork3Sub2 *arg1) +{ + s32 var_r31; s32 var_r28; s32 var_r27; - for (var_r28 = 0; var_r28 < 2; var_r28++, var_r30++) { - for (var_r31 = 0; var_r31 < 5; var_r31++) { + for (var_r28 = 0; var_r28 < 2; var_r28++, arg0++) { + for (var_r31 = 0; (u32)var_r31 < 5; var_r31++) { switch (lbl_1_data_674[var_r31]) { case 0: - var_r30->unk_02[var_r31] = espEntry(lbl_1_data_680[var_r28], 1, 0); - espPriSet(var_r30->unk_02[var_r31], 0x100); + arg0->unk_02[var_r31] = espEntry(lbl_1_data_680[var_r28], 1, 0); + espPriSet(arg0->unk_02[var_r31], 0x100); break; case 1: - var_r30->unk_02[var_r31] = espEntry(0x610020, 1, 0); - espPriSet(var_r30->unk_02[var_r31], 0x101); - espColorSet(var_r30->unk_02[var_r31], 0, 0, 0); - espTPLvlSet(var_r30->unk_02[var_r31], 0.5); + arg0->unk_02[var_r31] = espEntry(0x610020, 1, 0); + espPriSet(arg0->unk_02[var_r31], 0x101); + espColorSet(arg0->unk_02[var_r31], 0, 0, 0); + espTPLvlSet(arg0->unk_02[var_r31], 0.5); break; case 2: - var_r30->unk_02[var_r31] = espEntry(0x40000A, 1, 0); - espPriSet(var_r30->unk_02[var_r31], 0xFF); + arg0->unk_02[var_r31] = espEntry(DATA_MAKE_NUM(DATADIR_M433, 10), 1, 0); + espPriSet(arg0->unk_02[var_r31], 0xFF); break; case 3: - var_r30->unk_02[var_r31] = espEntry(0x610033, 1, 0); - espPriSet(var_r30->unk_02[var_r31], 0xFF); + arg0->unk_02[var_r31] = espEntry(0x610033, 1, 0); + espPriSet(arg0->unk_02[var_r31], 0xFF); break; } - espDispOff(var_r30->unk_02[var_r31]); - espDrawNoSet(var_r30->unk_02[var_r31], 0); - espAttrSet(var_r30->unk_02[var_r31], HUSPR_ATTR_NOANIM); - espAttrSet(var_r30->unk_02[var_r31], HUSPR_ATTR_LINEAR); - espPosSet(var_r30->unk_02[var_r31], lbl_1_data_6B0[var_r28].x + lbl_1_data_688[var_r31].x, - lbl_1_data_6B0[var_r28].y + lbl_1_data_688[var_r31].y); + espDispOff(arg0->unk_02[var_r31]); + espDrawNoSet(arg0->unk_02[var_r31], 0); + espAttrSet(arg0->unk_02[var_r31], HUSPR_ATTR_NOANIM); + espAttrSet(arg0->unk_02[var_r31], HUSPR_ATTR_LINEAR); + espPosSet( + arg0->unk_02[var_r31], lbl_1_data_6B0[var_r28].x + lbl_1_data_688[var_r31].x, lbl_1_data_6B0[var_r28].y + lbl_1_data_688[var_r31].y); } } HuDataDirClose(0x610000); for (var_r28 = 0; var_r28 < 3; var_r28++) { for (var_r31 = 0; var_r31 < 0x14; var_r31++) { for (var_r27 = 0; var_r27 < 2; var_r27++) { - // if (*(&lbl_1_data_6C0[var_r31 % 10] + (var_r27 * 4)) != 0) { - // *(var_r29 + ((var_r28 * 0x140) + (var_r31 * 0x10) + (var_r27 * 4) + 0xD0)) - // = espEntry(*(&lbl_1_data_6C0[var_r31 % 10] + (var_r27 * 4)), 2, 0); - // espAttrSet(*(var_r29 + ((var_r28 * 0x140) + (var_r31 * 0x10) + (var_r27 * 4) + 0xD0)), HUSPR_ATTR_LINEAR); - // espDispOff(*(var_r29 + ((var_r28 * 0x140) + (var_r31 * 0x10) + (var_r27 * 4) + 0xD0))); - // } - // else { - // *(var_r29 + ((var_r28 * 0x140) + (var_r31 * 0x10) + (var_r27 * 4) + 0xD0)) = -1; - // } + if (lbl_1_data_6C0[var_r31 % 10][var_r27] != 0) { + arg1->unk_D0[var_r28][var_r31].unk_00[var_r27] = espEntry(lbl_1_data_6C0[var_r31 % 10][var_r27], 2, 0); + espAttrSet(arg1->unk_D0[var_r28][var_r31].unk_00[var_r27], HUSPR_ATTR_LINEAR); + espDispOff(arg1->unk_D0[var_r28][var_r31].unk_00[var_r27]); + } + else { + arg1->unk_D0[var_r28][var_r31].unk_00[var_r27] = -1; + } } } } for (var_r27 = 0; var_r27 < 2; var_r27++) { - // if ((lbl_1_data_6C0 + (var_r27 * 4))->unk_A0 != 0) { - // var_r29->unk_490[var_r27] = espEntry((lbl_1_data_6C0 + (var_r27 * 4))->unk_A0, 2, 0); - // espAttrSet(var_r29->unk_490[var_r27], HUSPR_ATTR_LINEAR); - // espDispOff(var_r29->unk_490[var_r27]); - // } - // else { - // var_r29->unk_490[var_r27] = -1; - // } + if (lbl_1_data_6C0[10][var_r27] != 0) { + arg1->unk_490.unk_00[var_r27] = espEntry(lbl_1_data_6C0[10][var_r27], 2, 0); + espAttrSet(arg1->unk_490.unk_00[var_r27], HUSPR_ATTR_LINEAR); + espDispOff(arg1->unk_490.unk_00[var_r27]); + } + else { + arg1->unk_490.unk_00[var_r27] = -1; + } } for (var_r28 = 0; var_r28 < 2; var_r28++) { - // *(var_r29 + ((var_r28 * 0x2C) + 0x20)) = -1; - // *(var_r29 + ((var_r28 * 0x2C) + 0x22)) = -1; + arg1->unk_20[var_r28].unk_00[0] = -1; + arg1->unk_20[var_r28].unk_00[1] = -1; } - var_r29->unk_78 = -1; - var_r29->unk_7A = -1; - var_r29->unk_A4 = -1; - var_r29->unk_A6 = -1; - HuDataDirClose(lbl_1_data_6C0->unk_00); + arg1->unk_20[2].unk_00[0] = -1; + arg1->unk_20[2].unk_00[1] = -1; + arg1->unk_20[3].unk_00[0] = -1; + arg1->unk_20[3].unk_00[1] = -1; + HuDataDirClose(lbl_1_data_6C0[0][0]); } -// void fn_1_EA8C(void *arg0) -// { -// double var_f31; -// double var_f30; -// void *var_r31; -// s32 var_r30; +void fn_1_EA8C(M433PlayerWork3Sub2Sub *var_r31) +{ + float var_f31; + float var_f30; + s32 var_r30; -// var_r31 = arg0; -// for (var_r30 = 0; var_r30 < 2; var_r30++) { -// if (*(var_r31 + (var_r30 * 2)) >= 0) { -// espDispOn(*(var_r31 + (var_r30 * 2))); -// var_f31 = (*(var_r31 + ((var_r30 * 4) + 4)) * var_r31->unk_1C) * cosd(var_r31->unk_28); -// var_f31 = var_f31; -// var_f30 = (*(var_r31 + ((var_r30 * 4) + 4)) * var_r31->unk_1C) * sind(var_r31->unk_28); -// var_f30 = var_f30; -// espPosSet(*(var_r31 + (var_r30 * 2)), var_r31->unk_0C + var_f31, var_r31->unk_10 + var_f30); -// espZRotSet(*(var_r31 + (var_r30 * 2)), var_r31->unk_28); -// espScaleSet(*(var_r31 + (var_r30 * 2)), var_r31->unk_1C, var_r31->unk_20); -// espTPLvlSet(*(var_r31 + (var_r30 * 2)), var_r31->unk_24); -// } -// } -// } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + if (var_r31->unk_00[var_r30] >= 0) { + espDispOn(var_r31->unk_00[var_r30]); + var_f31 = (var_r31->unk_04[var_r30] * var_r31->unk_1C) * cosd(var_r31->unk_28); + var_f30 = (var_r31->unk_04[var_r30] * var_r31->unk_1C) * sind(var_r31->unk_28); + espPosSet(var_r31->unk_00[var_r30], var_r31->unk_0C + var_f31, var_r31->unk_10 + var_f30); + espZRotSet(var_r31->unk_00[var_r30], var_r31->unk_28); + espScaleSet(var_r31->unk_00[var_r30], var_r31->unk_1C, var_r31->unk_20); + espTPLvlSet(var_r31->unk_00[var_r30], var_r31->unk_24); + } + } +} -// void fn_1_EBE4(s32 arg0, void *arg1, s32 arg2) -// { -// s32 var_r31; -// u32 var_r30; +void fn_1_EBE4(M433PlayerWork3Sub2Sub2 *arg0, M433PlayerWork3Sub2Sub *arg1, u32 arg2) +{ + u32 var_r31; + u32 var_r30; -// var_r31 = arg2 % 10; -// var_r30 = arg2 / 10; -// if (var_r30 == 0) { -// arg1->unk_00 = *(arg0 + (var_r31 * 0x10)); -// arg1->unk_02 = -1; -// arg1->unk_04 = 0.0f; -// } -// else { -// arg1->unk_00 = *(arg0 + ((var_r30 + 0xA) * 0x10)); -// arg1->unk_02 = *(arg0 + (var_r31 * 0x10)); -// arg1->unk_04 = -23.039999f; -// arg1->unk_08 = 23.039999f; -// } -// arg1->unk_10 = 0.0f; -// arg1->unk_0C = 0.0f; -// arg1->unk_18 = 0.0f; -// arg1->unk_14 = 0.0f; -// arg1->unk_20 = 1.5f; -// arg1->unk_1C = 1.5f; -// arg1->unk_24 = 1.0f; -// arg1->unk_28 = 0.0f; -// } + var_r31 = arg2 % 10; + var_r30 = arg2 / 10; + if (var_r30 == 0) { + arg1->unk_00[0] = arg0[var_r31].unk_00[0]; + arg1->unk_00[1] = -1; + arg1->unk_04[0] = 0.0f; + } + else { + arg1->unk_00[0] = arg0[var_r30 + 0xA].unk_00[0]; + arg1->unk_00[1] = arg0[var_r31].unk_00[0]; + arg1->unk_04[0] = -23.039999f; + arg1->unk_04[1] = 23.039999f; + } + arg1->unk_0C = arg1->unk_10 = 0.0f; + arg1->unk_14 = arg1->unk_18 = 0.0f; + arg1->unk_1C = arg1->unk_20 = 1.5f; + arg1->unk_24 = 1.0f; + arg1->unk_28 = 0.0f; +} -// void fn_1_ECFC(void *arg0, void *arg1) -// { -// s32 sp1C; -// u32 sp18; -// s32 sp14; -// u32 sp10; -// s32 spC; -// s32 sp8; -// float var_f31; -// float var_f30; -// float var_f29; -// float var_f28; -// double var_f27; -// double var_f26; -// double var_f25; -// double var_f24; -// double var_f23; -// double var_f22; -// double var_f21; -// double var_f20; -// void *var_r31; -// void *var_r30; -// void *var_r29; -// s32 var_r28; -// s32 var_r27; -// s32 var_r26; -// s32 var_r25; -// s32 var_r24; -// void *var_r23; -// s32 var_r22; -// u32 var_r21; -// s32 var_r20; -// s32 var_r19; -// u32 var_r18; -// s32 var_r17; -// s32 temp_r0; +void fn_1_ECFC(M433PlayerWork3Sub *arg0, M433PlayerWork3Sub2 *arg1) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + M433PlayerWork3Sub2Sub *var_r30; + M433PlayerWork3Sub2Sub2 *var_r29; + s32 var_r28; + s32 var_r22; -// var_r23 = arg0; -// var_r31 = arg1; -// var_r28 = 0; -// loop_5: -// if (var_r28 < 2) { -// for (var_r22 = 0; var_r22 < 5; var_r22++) { -// espDispOn(*(var_r23 + ((var_r22 * 2) + 2))); -// } -// espBankSet(var_r23->unk_08, var_r23->unk_00 / 10); -// espBankSet(var_r23->unk_0A, var_r23->unk_00 % 10); -// var_r28++; -// var_r23 += 0xC; -// goto loop_5; -// } -// var_f28 = 2.88f; -// if (var_r31->unk_1C == 0) { -// var_r30 = var_r31 + 0x20; -// } -// else { -// var_r30 = var_r31 + 0x4C; -// var_f28 = 2.88f * -1.0f; -// } -// temp_r0 = var_r31->unk_00; -// switch (temp_r0) { -// case 1: -// var_r19 = var_r31->unk_0C; -// var_r20 = var_r31->unk_0C % 10; -// var_r21 = var_r31->unk_0C / 10; -// if (var_r21 == 0) { -// var_r31->unk_20 = (var_r31 + (var_r20 * 0x10))->unk_D0; -// var_r31->unk_22 = -1; -// var_r31->unk_24 = 0.0f; -// } -// else { -// var_r31->unk_20 = (var_r31 + ((var_r21 + 0xA) * 0x10))->unk_D0; -// var_r31->unk_22 = (var_r31 + (var_r20 * 0x10))->unk_D0; -// var_r31->unk_24 = -23.039999f; -// var_r31->unk_28 = 23.039999f; -// } -// var_r31->unk_30 = 0.0f; -// var_r31->unk_2C = 0.0f; -// var_r31->unk_38 = 0.0f; -// var_r31->unk_34 = 0.0f; -// var_r31->unk_40 = 1.5f; -// var_r31->unk_3C = 1.5f; -// var_r31->unk_44 = 1.0f; -// var_r31->unk_48 = 0.0f; -// sp1C = var_r31->unk_10; -// var_r17 = sp1C % 10; -// var_r18 = sp1C / 10; -// if (var_r18 == 0) { -// var_r31->unk_4C = (var_r31 + (var_r17 * 0x10))->unk_210; -// var_r31->unk_4E = -1; -// var_r31->unk_50 = 0.0f; -// } -// else { -// var_r31->unk_4C = (var_r31 + ((var_r18 + 0xA) * 0x10))->unk_210; -// var_r31->unk_4E = (var_r31 + (var_r17 * 0x10))->unk_210; -// var_r31->unk_50 = -23.039999f; -// var_r31->unk_54 = 23.039999f; -// } -// var_r31->unk_5C = 0.0f; -// var_r31->unk_58 = 0.0f; -// var_r31->unk_64 = 0.0f; -// var_r31->unk_60 = 0.0f; -// var_r31->unk_6C = 1.5f; -// var_r31->unk_68 = 1.5f; -// var_r31->unk_70 = 1.0f; -// var_r31->unk_74 = 0.0f; -// sp14 = 0; -// sp18 = 0; -// if (sp18 == 0) { -// var_r31->unk_78 = (var_r31 + (sp14 * 0x10))->unk_490; -// var_r31->unk_7A = -1; -// var_r31->unk_7C = 0.0f; -// } -// else { -// var_r31->unk_78 = (var_r31 + ((sp18 + 0xA) * 0x10))->unk_490; -// var_r31->unk_7A = (var_r31 + (sp14 * 0x10))->unk_490; -// var_r31->unk_7C = -23.039999f; -// var_r31->unk_80 = 23.039999f; -// } -// var_r31->unk_88 = 0.0f; -// var_r31->unk_84 = 0.0f; -// var_r31->unk_90 = 0.0f; -// var_r31->unk_8C = 0.0f; -// var_r31->unk_98 = 1.5f; -// var_r31->unk_94 = 1.5f; -// var_r31->unk_9C = 1.0f; -// var_r31->unk_A0 = 0.0f; -// sp8 = *(var_r31 + ((var_r31->unk_1C * 4) + 0x14)); -// spC = sp8 % 10; -// sp10 = sp8 / 10; -// if (sp10 == 0) { -// var_r31->unk_A4 = (var_r31 + (spC * 0x10))->unk_350; -// var_r31->unk_A6 = -1; -// var_r31->unk_A8 = 0.0f; -// } -// else { -// var_r31->unk_A4 = (var_r31 + ((sp10 + 0xA) * 0x10))->unk_350; -// var_r31->unk_A6 = (var_r31 + (spC * 0x10))->unk_350; -// var_r31->unk_A8 = -23.039999f; -// var_r31->unk_AC = 23.039999f; -// } -// var_r31->unk_B4 = 0.0f; -// var_r31->unk_B0 = 0.0f; -// var_r31->unk_BC = 0.0f; -// var_r31->unk_B8 = 0.0f; -// var_r31->unk_C4 = 1.5f; -// var_r31->unk_C0 = 1.5f; -// var_r31->unk_C8 = 1.0f; -// var_r31->unk_CC = 0.0f; -// var_f30 = -48.0f; -// var_r31->unk_2C = 172.8f; -// var_r31->unk_30 = 360.0f - -48.0f; -// var_r31->unk_58 = 403.19998f; -// var_r31->unk_5C = 360.0f - -48.0f; -// var_r31->unk_84 = 288.0f; -// var_r31->unk_88 = 360.0f - -48.0f; -// var_r31->unk_9C = 0.0f; -// var_r31->unk_70 = 0.0f; -// var_r31->unk_44 = 0.0f; -// var_f30 = -48.0f / 19.199999f; -// var_r31->unk_38 = var_f30; -// var_r31->unk_64 = var_f30; -// var_r31->unk_90 = var_f30; -// var_r31->unk_B0 = 806.39996f; -// var_r31->unk_B4 = 144.0f; -// var_r31->unk_C0 = var_r31->unk_C0 + 0.5f; -// var_r31->unk_C4 = var_r31->unk_C4 - 0.5f; -// var_r31->unk_B8 = (403.19998f - var_r31->unk_B0) / 24.0f; -// var_r31->unk_BC = (360.0f - var_r31->unk_B4) / 24.0f; -// if (var_r31->unk_1C == 0) { -// var_r31->unk_B0 = -230.40001f; -// var_r31->unk_B8 = var_r31->unk_B8 * -1.0f; -// } -// var_r31->unk_00++; -// var_r31->unk_04 = 0; -// break; -// case 2: -// var_f31 = var_r31->unk_44; -// var_f31 += 0.055555556f; -// if (var_f31 > 0.95f) { -// var_f31 = 1.0f; -// } -// var_r31->unk_9C = var_f31; -// var_r31->unk_70 = var_f31; -// var_r31->unk_44 = var_f31; -// var_r31->unk_30 = var_r31->unk_30 + var_r31->unk_38; -// var_r31->unk_5C = var_r31->unk_5C + var_r31->unk_64; -// var_r31->unk_88 = var_r31->unk_88 + var_r31->unk_90; -// var_r31->unk_B0 = var_r31->unk_B0 + var_r31->unk_B8; -// var_r31->unk_B4 = var_r31->unk_B4 + var_r31->unk_BC; -// if (var_r31->unk_04 >= 19.199999f) { -// var_r30->unk_14 = var_f28; -// var_r30->unk_18 = -16.0f; -// var_r31->unk_00++; -// var_r31->unk_08 = 0; -// } -// break; -// case 3: -// if (var_r31->unk_04 <= 24.0f) { -// var_r31->unk_B0 = var_r31->unk_B0 + var_r31->unk_B8; -// var_r31->unk_B4 = var_r31->unk_B4 + var_r31->unk_BC; -// } -// if (var_r31->unk_08 < 24.0f) { -// var_r31->unk_08++; -// var_f31 = 33.75f * var_r31->unk_08; -// var_f29 = 0.041666668f * var_r31->unk_08; -// var_f29 = 0.5f * (1.0f - (var_f29 * var_f29)); -// if (var_r31->unk_08 == 24.0f) { -// var_f29 = 0.0f; -// } -// var_r31->unk_C0 = 1.5 + (var_f29 * cosd(var_f31)); -// var_r31->unk_C4 = 1.5 + (var_f29 * sind((var_f31 - 90.0f))); -// } -// var_r30->unk_1C = var_r31->unk_C4; -// var_r30->unk_20 = var_r31->unk_C0; -// var_r30->unk_0C = var_r30->unk_0C + var_r30->unk_14; -// var_r30->unk_10 = var_r30->unk_10 + var_r30->unk_18; -// var_r30->unk_18 = var_r30->unk_18 + 0.80000013f; -// var_r30->unk_28 = var_r30->unk_28 + 8.333334f; -// var_r30->unk_24 = var_r30->unk_24 - 0.017833335f; -// if (var_r30->unk_24 < 0.0f) { -// var_r30->unk_24 = 0.0f; -// } -// if (fn_1_10EA4() == 0) { -// var_r31->unk_00++; -// var_r31->unk_04 = 0; -// } -// break; -// case 4: -// var_f31 = var_r31->unk_C8; -// var_f31 -= 0.055555556f; -// if (var_f31 < 0.05f) { -// var_f31 = 0.0f; -// var_r31->unk_00++; -// var_r31->unk_04 = 0; -// } -// var_r31->unk_C8 = var_f31; -// var_r31->unk_9C = var_f31; -// var_r31->unk_70 = var_f31; -// var_r31->unk_44 = var_f31; -// break; -// default: -// for (var_r28 = 0; var_r28 < 2; var_r28++) { -// *(var_r31 + ((var_r28 * 0x2C) + 0x20)) = -1; -// *(var_r31 + ((var_r28 * 0x2C) + 0x22)) = -1; -// } -// var_r31->unk_78 = -1; -// var_r31->unk_7A = -1; -// var_r31->unk_A4 = -1; -// var_r31->unk_A6 = -1; -// var_r31->unk_00 = 0; -// break; -// } -// for (var_r28 = 0; var_r28 < 3; var_r28++) { -// var_r29 = (var_r28 * 0x140) + 0xD0; -// var_r29 += var_r31; -// var_r22 = 0; -// loop_60: -// if (var_r22 < 0x14) { -// if (var_r29->unk_00 >= 0) { -// espDispOff(var_r29->unk_00); -// } -// if (var_r29->unk_04 >= 0) { -// espDispOff(var_r29->unk_04); -// } -// var_r22++; -// var_r29 += 0x10; -// goto loop_60; -// } -// } -// var_r29 = var_r31 + 0x490; -// if (var_r29->unk_00 >= 0) { -// espDispOff(var_r29->unk_00); -// } -// if (var_r29->unk_04 >= 0) { -// espDispOff(var_r29->unk_04); -// } -// for (var_r27 = 0; var_r27 < 2; var_r27++) { -// if ((var_r31 + (var_r27 * 2))->unk_20 >= 0) { -// espDispOn((var_r31 + (var_r27 * 2))->unk_20); -// var_f26 = ((var_r31 + (var_r27 * 4))->unk_24 * var_r31->unk_3C) * cosd(var_r31->unk_48); -// var_f26 = var_f26; -// var_f27 = ((var_r31 + (var_r27 * 4))->unk_24 * var_r31->unk_3C) * sind(var_r31->unk_48); -// var_f27 = var_f27; -// espPosSet((var_r31 + (var_r27 * 2))->unk_20, var_r31->unk_2C + var_f26, var_r31->unk_30 + var_f27); -// espZRotSet((var_r31 + (var_r27 * 2))->unk_20, var_r31->unk_48); -// espScaleSet((var_r31 + (var_r27 * 2))->unk_20, var_r31->unk_3C, var_r31->unk_40); -// espTPLvlSet((var_r31 + (var_r27 * 2))->unk_20, var_r31->unk_44); -// } -// } -// for (var_r26 = 0; var_r26 < 2; var_r26++) { -// if ((var_r31 + (var_r26 * 2))->unk_4C >= 0) { -// espDispOn((var_r31 + (var_r26 * 2))->unk_4C); -// var_f24 = ((var_r31 + (var_r26 * 4))->unk_50 * var_r31->unk_68) * cosd(var_r31->unk_74); -// var_f24 = var_f24; -// var_f25 = ((var_r31 + (var_r26 * 4))->unk_50 * var_r31->unk_68) * sind(var_r31->unk_74); -// var_f25 = var_f25; -// espPosSet((var_r31 + (var_r26 * 2))->unk_4C, var_r31->unk_58 + var_f24, var_r31->unk_5C + var_f25); -// espZRotSet((var_r31 + (var_r26 * 2))->unk_4C, var_r31->unk_74); -// espScaleSet((var_r31 + (var_r26 * 2))->unk_4C, var_r31->unk_68, var_r31->unk_6C); -// espTPLvlSet((var_r31 + (var_r26 * 2))->unk_4C, var_r31->unk_70); -// } -// } -// for (var_r25 = 0; var_r25 < 2; var_r25++) { -// if ((var_r31 + (var_r25 * 2))->unk_78 >= 0) { -// espDispOn((var_r31 + (var_r25 * 2))->unk_78); -// var_f22 = ((var_r31 + (var_r25 * 4))->unk_7C * var_r31->unk_94) * cosd(var_r31->unk_A0); -// var_f22 = var_f22; -// var_f23 = ((var_r31 + (var_r25 * 4))->unk_7C * var_r31->unk_94) * sind(var_r31->unk_A0); -// var_f23 = var_f23; -// espPosSet((var_r31 + (var_r25 * 2))->unk_78, var_r31->unk_84 + var_f22, var_r31->unk_88 + var_f23); -// espZRotSet((var_r31 + (var_r25 * 2))->unk_78, var_r31->unk_A0); -// espScaleSet((var_r31 + (var_r25 * 2))->unk_78, var_r31->unk_94, var_r31->unk_98); -// espTPLvlSet((var_r31 + (var_r25 * 2))->unk_78, var_r31->unk_9C); -// } -// } -// for (var_r24 = 0; var_r24 < 2; var_r24++) { -// if ((var_r31 + (var_r24 * 2))->unk_A4 >= 0) { -// espDispOn((var_r31 + (var_r24 * 2))->unk_A4); -// var_f20 = ((var_r31 + (var_r24 * 4))->unk_A8 * var_r31->unk_C0) * cosd(var_r31->unk_CC); -// var_f20 = var_f20; -// var_f21 = ((var_r31 + (var_r24 * 4))->unk_A8 * var_r31->unk_C0) * sind(var_r31->unk_CC); -// var_f21 = var_f21; -// espPosSet((var_r31 + (var_r24 * 2))->unk_A4, var_r31->unk_B0 + var_f20, var_r31->unk_B4 + var_f21); -// espZRotSet((var_r31 + (var_r24 * 2))->unk_A4, var_r31->unk_CC); -// espScaleSet((var_r31 + (var_r24 * 2))->unk_A4, var_r31->unk_C0, var_r31->unk_C4); -// espTPLvlSet((var_r31 + (var_r24 * 2))->unk_A4, var_r31->unk_C8); -// } -// } -// var_r31->unk_04++; -// } + for (var_r28 = 0; var_r28 < 2; var_r28++, arg0++) { + for (var_r22 = 0; var_r22 < 5; var_r22++) { + espDispOn(arg0->unk_02[var_r22]); + } + espBankSet(arg0->unk_02[3], arg0->unk_00 / 10); + espBankSet(arg0->unk_02[4], arg0->unk_00 % 10); + } + var_f28 = 2.88f; + if (arg1->unk_1C == 0) { + var_r30 = arg1->unk_20; + } + else { + var_r30 = &arg1->unk_20[1]; + var_f28 *= -1.0f; + } + switch (arg1->unk_00) { + case 0: + break; + case 1: + fn_1_EBE4(&arg1->unk_D0[0][0], &arg1->unk_20[0], arg1->unk_0C); + fn_1_EBE4(&arg1->unk_D0[1][0], &arg1->unk_20[1], arg1->unk_10); + fn_1_EBE4(&arg1->unk_490, &arg1->unk_20[2], 0); + fn_1_EBE4(&arg1->unk_D0[2][0], &arg1->unk_20[3], arg1->unk_14[arg1->unk_1C]); -// void fn_1_FE64(void *arg0, s32 arg1, s32 arg2, u32 arg3) -// { -// arg0->unk_00 = 1; -// arg0->unk_0C = arg0->unk_14; -// arg0->unk_10 = arg0->unk_18; -// arg0->unk_14 = arg1; -// arg0->unk_18 = arg2; -// arg0->unk_1C = arg3; -// } + var_f30 = -48.0f; + arg1->unk_20[0].unk_0C = 172.8f; + arg1->unk_20[0].unk_10 = 360.0f - var_f30; + arg1->unk_20[1].unk_0C = 403.19998f; + arg1->unk_20[1].unk_10 = 360.0f - var_f30; + arg1->unk_20[2].unk_0C = 288.0f; + arg1->unk_20[2].unk_10 = 360.0f - var_f30; + arg1->unk_20[0].unk_24 = arg1->unk_20[1].unk_24 = arg1->unk_20[2].unk_24 = 0.0f; + var_f30 = var_f30 / 19.199999f; + arg1->unk_20[0].unk_18 = var_f30; + arg1->unk_20[1].unk_18 = var_f30; + arg1->unk_20[2].unk_18 = var_f30; + arg1->unk_20[3].unk_0C = 806.39996f; + arg1->unk_20[3].unk_10 = 144.0f; + arg1->unk_20[3].unk_1C += 0.5f; + arg1->unk_20[3].unk_20 -= 0.5f; + arg1->unk_20[3].unk_14 = (403.19998f - arg1->unk_20[3].unk_0C) / 24.0f; + arg1->unk_20[3].unk_18 = (360.0f - arg1->unk_20[3].unk_10) / 24.0f; + if (arg1->unk_1C == 0) { + arg1->unk_20[3].unk_0C = -230.40001f; + arg1->unk_20[3].unk_14 *= -1.0f; + } + arg1->unk_00++; + arg1->unk_04 = 0; + break; + case 2: + var_f31 = arg1->unk_20[0].unk_24; + var_f31 += 0.055555556f; + if (var_f31 > 0.95f) { + var_f31 = 1.0f; + } + arg1->unk_20[2].unk_24 = var_f31; + arg1->unk_20[1].unk_24 = var_f31; + arg1->unk_20[0].unk_24 = var_f31; + arg1->unk_20[0].unk_10 += arg1->unk_20[0].unk_18; + arg1->unk_20[1].unk_10 += arg1->unk_20[1].unk_18; + arg1->unk_20[2].unk_10 += arg1->unk_20[2].unk_18; + arg1->unk_20[3].unk_0C += arg1->unk_20[3].unk_14; + arg1->unk_20[3].unk_10 += arg1->unk_20[3].unk_18; + if (arg1->unk_04 >= 19.199999f) { + var_r30->unk_14 = var_f28; + var_r30->unk_18 = -16.0f; + arg1->unk_00++; + arg1->unk_08 = 0; + } + break; + case 3: + if (arg1->unk_04 <= 24.0f) { + arg1->unk_20[3].unk_0C += arg1->unk_20[3].unk_14; + arg1->unk_20[3].unk_10 += arg1->unk_20[3].unk_18; + } + if (arg1->unk_08 < 24.0f) { + arg1->unk_08++; + var_f31 = 33.75f * arg1->unk_08; + var_f29 = 0.041666668f * arg1->unk_08; + var_f29 = 0.5f * (1.0f - (var_f29 * var_f29)); + if (arg1->unk_08 == 24.0f) { + var_f29 = 0.0f; + } + arg1->unk_20[3].unk_1C = 1.5 + (var_f29 * cosd(var_f31)); + arg1->unk_20[3].unk_20 = 1.5 + (var_f29 * sind((var_f31 - 90.0f))); + } + var_r30->unk_1C = arg1->unk_20[3].unk_20; + var_r30->unk_20 = arg1->unk_20[3].unk_1C; + var_r30->unk_0C += var_r30->unk_14; + var_r30->unk_10 += var_r30->unk_18; + var_r30->unk_18 += 0.80000013f; + var_r30->unk_28 += 8.333334f; + var_r30->unk_24 -= 0.017833335f; + if (var_r30->unk_24 < 0.0f) { + var_r30->unk_24 = 0.0f; + } + if (fn_1_10EA4() == 0) { + arg1->unk_00++; + arg1->unk_04 = 0; + } + break; + case 4: + var_f31 = arg1->unk_20[3].unk_24; + var_f31 -= 0.055555556f; + if (var_f31 < 0.05f) { + var_f31 = 0.0f; + arg1->unk_00++; + arg1->unk_04 = 0; + } + arg1->unk_20[3].unk_24 = var_f31; + arg1->unk_20[2].unk_24 = var_f31; + arg1->unk_20[1].unk_24 = var_f31; + arg1->unk_20[0].unk_24 = var_f31; + break; + default: + for (var_r28 = 0; var_r28 < 2; var_r28++) { + arg1->unk_20[var_r28].unk_00[0] = -1; + arg1->unk_20[var_r28].unk_00[1] = -1; + } + arg1->unk_20[2].unk_00[0] = -1; + arg1->unk_20[2].unk_00[1] = -1; + arg1->unk_20[3].unk_00[0] = -1; + arg1->unk_20[3].unk_00[1] = -1; + arg1->unk_00 = 0; + break; + } + for (var_r28 = 0; var_r28 < 3; var_r28++) { + var_r29 = &arg1->unk_D0[var_r28][0]; + for (var_r22 = 0; var_r22 < 0x14; var_r22++, var_r29++) { + if (var_r29->unk_00[0] >= 0) { + espDispOff(var_r29->unk_00[0]); + } + if (var_r29->unk_00[1] >= 0) { + espDispOff(var_r29->unk_00[1]); + } + } + } + var_r29 = &arg1->unk_490; + if (var_r29->unk_00[0] >= 0) { + espDispOff(var_r29->unk_00[0]); + } + if (var_r29->unk_00[1] >= 0) { + espDispOff(var_r29->unk_00[1]); + } + fn_1_EA8C(&arg1->unk_20[0]); + fn_1_EA8C(&arg1->unk_20[1]); + fn_1_EA8C(&arg1->unk_20[2]); + fn_1_EA8C(&arg1->unk_20[3]); + arg1->unk_04++; +} -// void fn_1_FE8C(Vec *arg0, u32 arg1, u32 arg2, s32 arg3) -// { -// void *var_r31; -// void *var_r30; -// u32 var_r29; -// s32 var_r28; -// u32 var_r27; -// s32 var_r26; -// Vec *var_r25; +void fn_1_FE64(M433PlayerWork3Sub2 *arg0, s32 arg1, s32 arg2, u32 arg3) +{ + arg0->unk_00 = 1; + arg0->unk_0C = arg0->unk_14[0]; + arg0->unk_10 = arg0->unk_14[1]; + arg0->unk_14[0] = arg1; + arg0->unk_14[1] = arg2; + arg0->unk_1C = arg3; +} -// var_r25 = arg0; -// var_r29 = arg1; -// var_r27 = arg2; -// var_r26 = arg3; -// var_r31 = lbl_1_bss_7CC->data; -// var_r31->unk_18 = 0; -// if (var_r29 < 9) { -// var_r31->unk_18 = lbl_1_data_770[var_r29]; -// if (lbl_1_data_794[var_r29].unk_00 != 0) { -// var_r30 = lbl_1_bss_7C8->data; -// var_r30->unk_30 = 1; -// var_r30->unk_3C = var_r27; -// var_r30->unk_40 = var_r26; -// var_r30->unk_44 = var_r27; -// if (lbl_1_data_794[var_r29].unk_04 != 0) { -// var_r30->unk_44 = 1 - var_r30->unk_44; -// } -// if (lbl_1_data_794[var_r29].unk_08 != 0) { -// var_r30->unk_34++; -// } -// } -// } -// if (var_r29 == 5) { -// var_r28 = 6; -// if (var_r31->unk_6C == 5) { -// var_r28 = 7; -// } -// Hu3DModelPosSetV(lbl_1_bss_7CC->model[var_r28], var_r31 + 0x30); -// Hu3DModelAttrReset(lbl_1_bss_7CC->model[var_r28], HU3D_ATTR_DISPOFF); -// Hu3DMotionTimeSet(lbl_1_bss_7CC->model[var_r28], 0.0f); -// Hu3DMotionShapeTimeSet(lbl_1_bss_7CC->model[var_r28], 0.0f); -// } -// else if (var_r29 != 2) { -// var_r31->unk_A8 = 1.0f; -// } -// var_r31->unk_0C = 1; -// var_r31->unk_10 = 0; -// var_r31->unk_04 = 0; -// var_r31->unk_08 = 0; -// var_r31->unk_6C = var_r29; -// var_r31->unk_70 = var_r27; -// var_r31->unk_74 = var_r26; -// if (lbl_1_data_800[var_r29] != 0) { -// var_r31->unk_78 = lbl_1_data_800[var_r29]; -// } -// else if (var_r31->unk_78 != 0) { -// var_r31->unk_78--; -// } -// var_r31->unk_3C = var_r25->x; -// var_r31->unk_40 = var_r25->y; -// var_r31->unk_44 = var_r25->z; -// if (var_r29 == 0) { -// var_r31->unk_30 = var_r31->unk_3C; -// var_r31->unk_34 = var_r31->unk_40; -// var_r31->unk_38 = var_r31->unk_44; -// } -// var_r31->unk_F8 = 1.0f; -// var_r31->unk_F8 = 0.0f; -// } +void fn_1_FE8C(Vec *arg0, u32 arg1, u32 arg2, s32 arg3) +{ + M433PlayerWork2 *var_r31 = lbl_1_bss_7CC->data; + var_r31->unk_18 = 0; + if (arg1 < 9) { + var_r31->unk_18 = lbl_1_data_770[arg1]; + if (lbl_1_data_794[arg1].unk_00 != 0) { + M433PlayerWork3 *var_r30 = lbl_1_bss_7C8->data; + var_r30->unk_30 = 1; + var_r30->uContactGrp = arg2; + var_r30->uContactCel = arg3; + var_r30->uTargetGrp = arg2; + if (lbl_1_data_794[arg1].unk_04 != 0) { + var_r30->uTargetGrp = 1 - var_r30->uTargetGrp; + } + if (lbl_1_data_794[arg1].unk_08 != 0) { + var_r30->uContactCnt++; + } + } + } + if (arg1 == 5) { + s32 var_r28 = 6; + if (var_r31->unk_6C == 5) { + var_r28++; + } + Hu3DModelPosSetV(lbl_1_bss_7CC->model[var_r28], &var_r31->unk_30); + Hu3DModelAttrReset(lbl_1_bss_7CC->model[var_r28], HU3D_ATTR_DISPOFF); + Hu3DMotionTimeSet(lbl_1_bss_7CC->model[var_r28], 0.0f); + Hu3DMotionShapeTimeSet(lbl_1_bss_7CC->model[var_r28], 0.0f); + } + else if (arg1 != 2) { + var_r31->unk_A8 = 1.0f; + } + var_r31->unk_0C = 1; + var_r31->unk_10 = 0; + var_r31->unk_04 = 0; + var_r31->unk_08 = 0; + var_r31->unk_6C = arg1; + var_r31->unk_70 = arg2; + var_r31->unk_74 = arg3; + if (lbl_1_data_800[arg1] != 0) { + var_r31->unk_78 = lbl_1_data_800[arg1]; + } + else if (var_r31->unk_78 != 0) { + var_r31->unk_78--; + } + var_r31->unk_3C = *arg0; + if (arg1 == 0) { + var_r31->unk_30 = var_r31->unk_3C; + } + var_r31->unk_F8.unk_00 = 1.0f; + var_r31->unk_F8.unk_00 = 0.0f; +} -// void fn_1_10130(Vec *arg0, u32 arg1) -// { -// float var_f31; +void fn_1_10130(Vec *arg0, u32 arg1) +{ + float var_f31 = 44.0f; + if ((arg0->z - var_f31) < -500.0f) { + arg0->z = -500.0f + var_f31; + } + else if ((arg0->z + var_f31) > 500.0f) { + arg0->z = 500.0f - var_f31; + } + if (arg1 == 0) { + arg0->x *= -1.0f; + } + if ((arg0->x - var_f31) < 20.0f) { + arg0->x = 20.0f + var_f31; + } + else if ((arg0->x + var_f31) > 800.0f) { + arg0->x = 800.0f - var_f31; + } + if (arg1 == 0) { + arg0->x *= -1.0f; + } +} -// var_f31 = 44.0f; -// if ((arg0->z - 44.0f) < -500.0f) { -// arg0->z = -500.0f + 44.0f; -// } -// else if ((arg0->z + 44.0f) > 500.0f) { -// arg0->z = 500.0f - 44.0f; -// } -// if (arg1 == 0) { -// arg0->x *= -1.0f; -// } -// if ((arg0->x - 44.0f) < 20.0f) { -// arg0->x = 20.0f + 44.0f; -// } -// else if ((arg0->x + 44.0f) > 800.0f) { -// arg0->x = 800.0f - 44.0f; -// } -// if (arg1 == 0) { -// arg0->x *= -1.0f; -// } -// } +void fn_1_10260(float var_f29, float var_f30, u32 var_r30, u32 sp8, Vec *var_r29) +{ + M433PlayerWork2 *var_r31 = lbl_1_bss_7CC->data; + if (var_f30 > 1.0f) { + var_f30 = 1.0f; + } + if (var_r31->unk_94 == 0) { + var_r31->unk_AC.x = 465.0f; + var_r31->unk_AC.y = 11.0f; + var_r31->unk_AC.z = 0.0f; + if (var_r30 != 0) { + var_r31->unk_AC.x *= -1.0f; + } + var_r31->unk_94 = 1; + var_r31->unk_98 = 0; + var_r31->unk_A4 = 0.0f; + var_r31->unk_8C = 0; + var_r31->unk_A8 = 1.0f; + } + if (sp8 != 0) { + var_r31->unk_94 = 2; + var_f30 *= 1.5f; + } + var_r31->unk_90 = 1; + var_r31->unk_AC.x += 0.01666666753590107 * (800.0 * (var_f30 * sind(var_f29))); + var_r31->unk_AC.z += 0.01666666753590107 * (800.0 * (var_f30 * cosd(var_f29))); + if (var_r30 != 0) { + var_r31->unk_AC.x *= -1.0f; + } + if (var_r31->unk_AC.x < 230.0f) { + var_r31->unk_AC.x = 230.0f; + } + if (var_r30 != 0) { + var_r31->unk_AC.x *= -1.0f; + } + fn_1_10130(&var_r31->unk_AC, 1 - var_r30); + *var_r29 = var_r31->unk_AC; +} -// void fn_1_10260(u32 arg0, s32 arg1, Vec *arg2, float arg8, float arg9) -// { -// s32 sp8; -// float var_f31; -// float var_f30; -// float var_f29; -// void *var_r31; -// u32 var_r30; -// Vec *var_r29; +s32 fn_1_10614(Vec *arg0) +{ + M433PlayerWork2 *work = lbl_1_bss_7CC->data; -// var_f29 = arg8; -// var_f30 = arg9; -// var_r30 = arg0; -// sp8 = arg1; -// var_r29 = arg2; -// var_r31 = lbl_1_bss_7CC->data; -// if (var_f30 > 1.0f) { -// var_f30 = 1.0f; -// } -// if (var_r31->unk_94 == 0) { -// var_r31->unk_AC = 465.0f; -// var_r31->unk_B0 = 11.0f; -// var_r31->unk_B4 = 0.0f; -// if (var_r30 != 0) { -// var_r31->unk_AC = var_r31->unk_AC * -1.0f; -// } -// var_r31->unk_94 = 1; -// var_r31->unk_98 = 0; -// var_r31->unk_A4 = 0.0f; -// var_r31->unk_8C = 0; -// var_r31->unk_A8 = 1.0f; -// } -// if (sp8 != 0) { -// var_r31->unk_94 = 2; -// var_f30 *= 1.5f; -// } -// var_r31->unk_90 = 1; -// var_r31->unk_AC = var_r31->unk_AC + (0.01666666753590107 * (800.0 * (var_f30 * sind(var_f29)))); -// var_r31->unk_B4 = var_r31->unk_B4 + (0.01666666753590107 * (800.0 * (var_f30 * cosd(var_f29)))); -// if (var_r30 != 0) { -// var_r31->unk_AC = var_r31->unk_AC * -1.0f; -// } -// if (var_r31->unk_AC < 230.0f) { -// var_r31->unk_AC = 230.0f; -// } -// if (var_r30 != 0) { -// var_r31->unk_AC = var_r31->unk_AC * -1.0f; -// } -// var_f31 = 44.0f; -// if ((var_r31->unk_B4 - 44.0f) < -500.0f) { -// var_r31->unk_B4 = -500.0f + 44.0f; -// } -// else if ((var_r31->unk_B4 + 44.0f) > 500.0f) { -// var_r31->unk_B4 = 500.0f - 44.0f; -// } -// if ((1 - var_r30) == 0) { -// var_r31->unk_AC = var_r31->unk_AC * -1.0f; -// } -// if ((var_r31->unk_AC - 44.0f) < 20.0f) { -// var_r31->unk_AC = 20.0f + 44.0f; -// } -// else if ((var_r31->unk_AC + 44.0f) > 800.0f) { -// var_r31->unk_AC = 800.0f - 44.0f; -// } -// if ((1 - var_r30) == 0) { -// var_r31->unk_AC = var_r31->unk_AC * -1.0f; -// } -// var_r29->x = var_r31->unk_AC; -// var_r29->y = var_r31->unk_B0; -// var_r29->z = var_r31->unk_B4; -// } + arg0->x = arg0->y = arg0->z = 0.0f; + if (work->unk_94 == 0) { + return 0; + } + *arg0 = work->unk_AC; + arg0->x = fabs(arg0->x); + arg0->x -= 465.0f; + arg0->x *= 0.004255319f; + arg0->z *= 0.0028571428f; + return 1; +} -// s32 fn_1_10614(Vec *arg0) -// { -// float var_f31; -// double var_f30; -// double var_f29; -// void *var_r31; +void fn_1_1070C(void) +{ + M433PlayerWork2 *work = lbl_1_bss_7CC->data; + work->unk_A8 = 1.0f; +} -// var_r31 = lbl_1_bss_7CC->data; -// arg0->z = 0.0f; -// arg0->y = 0.0f; -// arg0->x = 0.0f; -// if (var_r31->unk_94 == 0) { -// return 0; -// } -// arg0->x = var_r31->unk_AC; -// arg0->y = var_r31->unk_B0; -// arg0->z = var_r31->unk_B4; -// var_f31 = arg0->x; -// var_f30 = fabs(var_f31); -// var_f29 = var_f30; -// arg0->x = var_f29; -// arg0->x -= 465.0f; -// arg0->x *= 0.004255319f; -// arg0->z *= 0.0028571428f; -// return 1; -// } +u32 fn_1_10740(Vec *arg0) +{ + u32 var_r30; + M433PlayerWork2 *work = lbl_1_bss_7CC->data; + *arg0 = work->unk_3C; + if (work->unk_3C.x >= 0.0f) { + var_r30 = 1; + } + else { + var_r30 = 0; + } + return var_r30; +} -// void fn_1_1070C(void) -// { -// void *var_r31; +u32 fn_1_107B0(Vec *arg0) +{ + u32 var_r30; + M433PlayerWork2 *var_r31 = lbl_1_bss_7CC->data; + if (var_r31->unk_94 != 0) { + *arg0 = var_r31->unk_AC; + } + else { + *arg0 = var_r31->unk_3C; + } + if (arg0->x >= 0.0f) { + var_r30 = 1; + } + else { + var_r30 = 0; + } + return var_r30; +} -// var_r31 = lbl_1_bss_7CC->data; -// var_r31->unk_A8 = 1.0f; -// } +float fn_1_10848(void) +{ + M433PlayerWork2 *var_r31 = lbl_1_bss_7CC->data; + return var_r31->unk_F8.unk_00 - var_r31->unk_F8.unk_04; +} -// u32 fn_1_10740(Vec *arg0) -// { -// void *var_r31; -// u32 var_r30; +float fn_1_10878(void) +{ + M433PlayerWork2 *var_r31 = lbl_1_bss_7CC->data; + if (var_r31->unk_94 != 0) { + return 1.5f; + } + return var_r31->unk_F8.unk_00 - var_r31->unk_F8.unk_04; +} -// var_r31 = lbl_1_bss_7CC->data; -// arg0->x = var_r31->unk_3C; -// arg0->y = var_r31->unk_40; -// arg0->z = var_r31->unk_44; -// if (var_r31->unk_3C >= 0.0f) { -// var_r30 = 1; -// } -// else { -// var_r30 = 0; -// } -// return var_r30; -// } +u32 fn_1_108C4(void) +{ + M433PlayerWork2 *var_r31 = lbl_1_bss_7CC->data; + if (var_r31->unk_94 != 0) { + return var_r31->unk_98; + } + return 0x2710; +} -// u32 fn_1_107B0(Vec *arg0) -// { -// void *var_r31; -// u32 var_r30; +u32 fn_1_10900(void) +{ + M433PlayerWork2 *var_r31 = lbl_1_bss_7CC->data; + return var_r31->unk_8C; +} -// var_r31 = lbl_1_bss_7CC->data; -// if (var_r31->unk_94 != 0) { -// arg0->x = var_r31->unk_AC; -// arg0->y = var_r31->unk_B0; -// arg0->z = var_r31->unk_B4; -// } -// else { -// arg0->x = var_r31->unk_3C; -// arg0->y = var_r31->unk_40; -// arg0->z = var_r31->unk_44; -// } -// if (arg0->x >= 0.0f) { -// var_r30 = 1; -// } -// else { -// var_r30 = 0; -// } -// return var_r30; -// } +float fn_1_10928(float arg8) +{ + float var_f30; + float var_f28; + float var_f26; + M433PlayerWork2Sub *var_r31; + M433PlayerWork2 *var_r30; -// float fn_1_10848(void) -// { -// void *var_r31; + var_r30 = lbl_1_bss_7CC->data; + var_r31 = &var_r30->unk_F8; + var_f28 = 1.0f / var_r31->unk_24; + var_f30 = -var_r31->unk_20 * var_f28; + var_f26 = var_r31->unk_2C.y + ((var_f30 * (0.5f * var_r31->unk_24 * var_f30)) + (var_r31->unk_20 * var_f30)); + if (arg8 > (var_f26)) { + return -1.0f; + } + var_f30 = var_f28 * (-var_r31->unk_20 - sqrtf((var_r31->unk_20 * var_r31->unk_20) - (2.0f * var_r31->unk_24 * (var_r31->unk_2C.y - arg8)))); + var_f30 -= var_r31->unk_04; + return var_f30; +} -// var_r31 = lbl_1_bss_7CC->data; -// return var_r31->unk_F8 - var_r31->unk_FC; -// } +float fn_1_10B20(float arg8, Vec *arg0) +{ + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + M433PlayerWork2Sub *var_r31; + M433PlayerWork2 *var_r29; -// float fn_1_10878(void) -// { -// void *var_r31; + var_r29 = lbl_1_bss_7CC->data; + var_r31 = &var_r29->unk_F8; + var_f30 = var_r31->unk_04; + var_f31 = var_f30 + arg8; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + if (var_f31 > var_r31->unk_00) { + var_f31 = var_r31->unk_00; + } + var_r31->unk_04 = var_f31; + if (var_r31->unk_10 > 0.0f) { + PSVECSubtract(&var_r31->unk_38, &var_r31->unk_2C, &sp14); + sp14.y = 0.0f; + PSVECNormalize(&sp14, &sp14); + } + else { + sp14.x = sp14.y = sp14.z = 0.0f; + } + sp8 = *arg0; + var_f29 = (var_f31 * (0.5f * var_r31->unk_18 * var_f31)) + (var_r31->unk_14 * var_f31); + var_f28 = (var_f31 * (0.5f * var_r31->unk_24 * var_f31)) + (var_r31->unk_20 * var_f31); + arg0->x = var_r31->unk_2C.x + (sp14.x * var_f29); + arg0->y = var_r31->unk_2C.y + var_f28; + arg0->z = var_r31->unk_2C.z + (sp14.z * var_f29); + PSVECSubtract(arg0, &sp8, &sp20); + var_f31 >= var_r31->unk_00; + var_r31->unk_04 = var_f30; + return var_f30 + arg8; +} -// var_r31 = lbl_1_bss_7CC->data; -// if (var_r31->unk_94 != 0) { -// return 1.5f; -// } -// return var_r31->unk_F8 - var_r31->unk_FC; -// } +static inline float fn_1_10D24_inline(Vec *arg0) +{ + M433PlayerWork2 *var_r31 = lbl_1_bss_7CC->data; + if (var_r31->unk_94 != 0) { + *arg0 = var_r31->unk_AC; + } + else { + *arg0 = var_r31->unk_3C; + } +} -// u32 fn_1_108C4(void) -// { -// void *var_r31; +s32 fn_1_10D24(Vec *sp8) +{ + Vec sp18; + Vec spC; + float var_f31; + float var_f30; + M433PlayerWork2 *var_r31; + M433PlayerWork2 *var_r30; -// var_r31 = lbl_1_bss_7CC->data; -// if (var_r31->unk_94 != 0) { -// return var_r31->unk_98; -// } -// return 0x2710; -// } + var_r31 = lbl_1_bss_7CC->data; + fn_1_10D24_inline(&spC); + PSVECSubtract(&spC, &var_r31->unk_30, &sp18); + if ((spC.x * var_r31->unk_30.x) >= 0.0f) { + return 0; + } + if ((var_r31->unk_30.x == 0.0f) || (sp18.x == 0.0f)) { + return 0; + } + var_f31 = fabs(var_r31->unk_30.x / sp18.x); + PSVECScale(&sp18, &sp18, var_f31); + PSVECAdd(&var_r31->unk_30, &sp18, sp8); + return 1; +} -// u32 fn_1_10900(void) -// { -// void *var_r31; +u32 fn_1_10EA4(void) +{ + M433PlayerWork3 *var_r31 = lbl_1_bss_7C8->data; + return var_r31->uGameEvent; +} -// var_r31 = lbl_1_bss_7CC->data; -// return var_r31->unk_8C; -// } +u32 fn_1_10ECC(u32 arg0) +{ + M433PlayerWork3 *work = lbl_1_bss_7C8->data; + return work->auEvents[arg0 & 1]; +} -// float fn_1_10928(float arg8) -// { -// float sp8; -// double var_f31; -// float var_f30; -// float var_f29; -// float var_f28; -// float var_f27; -// float var_f26; -// void *var_r31; -// void *var_r30; +s32 fn_1_10F00(u32 arg0) +{ + M433PlayerWork3 *var_r31 = lbl_1_bss_7C8->data; + return var_r31->uServeGrp == (arg0 & 1); +} -// var_r30 = lbl_1_bss_7CC->data; -// var_r31 = var_r30 + 0xF8; -// var_f28 = 1.0f / var_r31->unk_24; -// var_f30 = -var_r31->unk_20 * var_f28; -// var_f26 = var_r31->unk_30 + ((var_f30 * (0.5f * var_r31->unk_24 * var_f30)) + (var_r31->unk_20 * var_f30)); -// if (arg8 > var_f26) { -// return -1.0f; -// } -// var_f29 = (var_r31->unk_20 * var_r31->unk_20) - (2.0f * var_r31->unk_24 * (var_r31->unk_30 - arg8)); -// if (var_f29 > 0.0f) { -// var_f31 = __frsqrte(var_f29); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f29 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f29 * (var_f31 * var_f31))); -// var_f31 = 0.5 * var_f31 * (3.0 - (var_f29 * (var_f31 * var_f31))); -// sp8 = var_f29 * var_f31; -// var_f27 = sp8; -// } -// else { -// var_f27 = var_f29; -// } -// var_f30 = var_f28 * (-var_r31->unk_20 - var_f27); -// var_f30 -= var_r31->unk_04; -// return var_f30; -// } +u32 fn_1_10F38(u32 arg0) +{ + M433PlayerWork3 *var_r31 = lbl_1_bss_7C8->data; + return var_r31->auServeCel[arg0 & 1]; +} -// float fn_1_10B20(float arg8, Vec *arg0) -// { -// Vec sp20; -// Vec sp14; -// float sp10; -// float spC; -// float sp8; -// float var_f31; -// float var_f30; -// float var_f29; -// float var_f28; -// float var_f27; -// void *var_r31; -// Vec *var_r30; -// void *var_r29; +s32 fn_1_10F6C(u32 arg0) +{ + M433PlayerWork3 *work = lbl_1_bss_7C8->data; + return work->uPointGrp == (arg0 & 1); +} -// var_f27 = arg8; -// var_r30 = arg0; -// var_r29 = lbl_1_bss_7CC->data; -// var_r31 = var_r29 + 0xF8; -// var_f30 = var_r31->unk_04; -// var_f31 = var_f30 + var_f27; -// if (var_f31 < 0.0f) { -// var_f31 = 0.0f; -// } -// if (var_f31 > var_r31->unk_00) { -// var_f31 = var_r31->unk_00; -// } -// var_r31->unk_04 = var_f31; -// if (var_r31->unk_10 > 0.0f) { -// PSVECSubtract(var_r31 + 0x38, var_r31 + 0x2C, &sp14); -// sp14.y = 0.0f; -// PSVECNormalize(&sp14, &sp14); -// } -// else { -// sp14.z = 0.0f; -// sp14.y = 0.0f; -// sp14 = 0.0f; -// } -// sp8 = var_r30->x; -// spC = var_r30->y; -// sp10 = var_r30->z; -// var_f29 = (var_f31 * (0.5f * var_r31->unk_18 * var_f31)) + (var_r31->unk_14 * var_f31); -// var_f28 = (var_f31 * (0.5f * var_r31->unk_24 * var_f31)) + (var_r31->unk_20 * var_f31); -// var_r30->x = var_r31->unk_2C + (sp14 * var_f29); -// var_r30->y = var_r31->unk_30 + var_f28; -// var_r30->z = var_r31->unk_34 + (sp14.z * var_f29); -// PSVECSubtract(var_r30, &sp8, &sp20); -// var_r31->unk_04 = var_f30; -// return var_f30 + var_f27; -// } +s32 fn_1_10FA4(s32 arg0) +{ + M433PlayerWork3 *work = lbl_1_bss_7C8->data; + return work->sWinGrp == (arg0 & 1); +} -// s32 fn_1_10D24(Vec *arg0) -// { -// Vec sp18; -// s32 sp14; -// s32 sp10; -// float spC; -// Vec *sp8; -// float var_f31; -// float var_f30; -// double var_f29; -// double var_f28; -// void *var_r31; -// void *var_r30; +u32 fn_1_10FDC(void) +{ + M433PlayerWork3 *var_r31 = lbl_1_bss_7C8->data; + return var_r31->uContactCnt; +} -// sp8 = arg0; -// var_r31 = lbl_1_bss_7CC->data; -// var_r30 = lbl_1_bss_7CC->data; -// if (var_r30->unk_94 != 0) { -// spC = var_r30->unk_AC; -// sp10 = var_r30->unk_B0; -// sp14 = var_r30->unk_B4; -// } -// else { -// spC = var_r30->unk_3C; -// sp10 = var_r30->unk_40; -// sp14 = var_r30->unk_44; -// } -// PSVECSubtract(&spC, var_r31 + 0x30, &sp18); -// if ((spC * var_r31->unk_30) >= 0.0f) { -// return 0; -// } -// if ((var_r31->unk_30 == 0.0f) || (sp18 == 0.0f)) { -// return 0; -// } -// var_f30 = var_r31->unk_30 / sp18; -// var_f29 = fabs(var_f30); -// var_f28 = var_f29; -// var_f31 = var_f28; -// PSVECScale(&sp18, &sp18, var_f31); -// PSVECAdd(var_r31 + 0x30, &sp18, sp8); -// return 1; -// } +s32 fn_1_11004(u32 arg0, s32 arg1) +{ + M433PlayerWork3 *work = lbl_1_bss_7C8->data; + return !((work->uContactGrp == (arg0 & 1)) && (work->uContactCel == (arg1 & 1))); +} -// u32 fn_1_10EA4(void) -// { -// void *var_r31; +s32 fn_1_11060(u32 arg0) +{ + M433PlayerWork3 *work = lbl_1_bss_7C8->data; + return work->uContactGrp == (arg0 & 1); +} -// var_r31 = lbl_1_bss_7C8->data; -// return *var_r31; -// } +float fn_1_11098(Vec *arg0, Vec *arg1, Vec *arg2) +{ + Vec sp10; + float var_f31; + float var_f30; -// u32 fn_1_10ECC(u32 arg0) -// { -// void *var_r31; + PSVECSubtract(arg1, arg0, &sp10); + var_f31 = PSVECDotProduct(&sp10, arg2); + var_f30 = -PSVECSquareMag(arg2); + if (var_f30 != 0.0f) { + var_f31 /= var_f30; + } + return var_f31; +} -// var_r31 = lbl_1_bss_7C8->data; -// return *(var_r31 + (((arg0 & 1) * 4) + 0x18)); -// } +float fn_1_11130(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + Vec sp34; + Vec sp28; + Vec sp1C; + Vec sp10; + float var_f31; + float var_f30; + float var_f29; + float var_f28; -// s32 fn_1_10F00(u32 arg0) -// { -// void *var_r31; - -// var_r31 = lbl_1_bss_7C8->data; -// return (arg0 & 1) == var_r31->unk_08; -// } - -// u32 fn_1_10F38(u32 arg0) -// { -// void *var_r31; - -// var_r31 = lbl_1_bss_7C8->data; -// return *(var_r31 + (((arg0 & 1) * 4) + 0x10)); -// } - -// s32 fn_1_10F6C(u32 arg0) -// { -// void *var_r31; - -// var_r31 = lbl_1_bss_7C8->data; -// return (arg0 & 1) == var_r31->unk_0C; -// } - -// s32 fn_1_10FA4(s32 arg0) -// { -// void *var_r31; - -// var_r31 = lbl_1_bss_7C8->data; -// return (arg0 & 1) == var_r31->unk_04; -// } - -// u32 fn_1_10FDC(void) -// { -// void *var_r31; - -// var_r31 = lbl_1_bss_7C8->data; -// return var_r31->unk_34; -// } - -// s32 fn_1_11004(u32 arg0, s32 arg1) -// { -// void *var_r31; -// s32 var_r30; - -// var_r31 = lbl_1_bss_7C8->data; -// var_r30 = 0; -// if ((var_r31->unk_3C == (arg0 & 1)) && (var_r31->unk_40 == (arg1 & 1))) { -// var_r30 = 1; -// } -// return var_r30 == 0; -// } - -// s32 fn_1_11060(u32 arg0) -// { -// void *var_r31; - -// var_r31 = lbl_1_bss_7C8->data; -// return (arg0 & 1) == var_r31->unk_3C; -// } - -// float fn_1_11098(Vec *arg0, Vec *arg1, Vec *arg2) -// { -// Vec sp10; -// Vec *spC; -// Vec *sp8; -// float var_f31; -// float var_f30; -// Vec *var_r31; - -// sp8 = arg0; -// spC = arg1; -// var_r31 = arg2; -// PSVECSubtract(spC, sp8, &sp10); -// var_f31 = PSVECDotProduct(&sp10, var_r31); -// var_f30 = -PSVECSquareMag(var_r31); -// if (var_f30 != 0.0f) { -// var_f31 /= var_f30; -// } -// return var_f31; -// } - -// float fn_1_11130(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) -// { -// float sp3C; -// float sp38; -// float sp34; -// Vec sp28; -// Vec sp1C; -// Vec sp10; -// Vec *spC; -// Vec *sp8; -// float var_f31; -// float var_f30; -// float var_f29; -// float var_f28; -// Vec *var_r31; -// Vec *var_r30; - -// var_r31 = arg0; -// sp8 = arg1; -// var_r30 = arg2; -// spC = arg3; -// PSVECSubtract(sp8, var_r31, &sp28); -// PSVECSubtract(spC, var_r30, &sp1C); -// PSVECSubtract(&sp28, &sp1C, &sp28); -// if (PSVECMag(&sp28) <= 0.0f) { -// sp34 = var_r31->x; -// sp38 = var_r31->y; -// sp3C = var_r31->z; -// } -// else { -// PSVECSubtract(var_r31, var_r30, &sp10); -// var_f30 = PSVECDotProduct(&sp10, &sp28); -// var_f29 = -PSVECSquareMag(&sp28); -// if (var_f29 != 0.0f) { -// var_f30 /= var_f29; -// } -// var_f28 = var_f30; -// var_f31 = var_f28; -// if (var_f31 < 0.0f) { -// var_f31 = 0.0f; -// } -// else if (var_f31 > 1.0f) { -// var_f31 = 1.0f; -// } -// PSVECScale(&sp28, &sp1C, var_f31); -// PSVECAdd(var_r31, &sp1C, &sp34); -// } -// PSVECSubtract(var_r30, &sp34, &sp28); -// return (bitwise s32)PSVECMag(&sp28); -// } + PSVECSubtract(arg1, arg0, &sp28); + PSVECSubtract(arg3, arg2, &sp1C); + PSVECSubtract(&sp28, &sp1C, &sp28); + if (PSVECMag(&sp28) <= 0.0f) { + sp34 = *arg0; + } + else { + PSVECSubtract(arg0, arg2, &sp10); + var_f30 = PSVECDotProduct(&sp10, &sp28); + var_f29 = -PSVECSquareMag(&sp28); + if (var_f29 != 0.0f) { + var_f30 /= var_f29; + } + var_f28 = var_f30; + var_f31 = var_f28; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + else if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + PSVECScale(&sp28, &sp1C, var_f31); + PSVECAdd(arg0, &sp1C, &sp34); + } + PSVECSubtract(arg2, &sp34, &sp28); + return PSVECMag(&sp28); +} diff --git a/src/REL/m434Dll/player.c b/src/REL/m434Dll/player.c index e08b307e..55ae04c8 100644 --- a/src/REL/m434Dll/player.c +++ b/src/REL/m434Dll/player.c @@ -212,8 +212,6 @@ void fn_1_64C0(omObjData *object); float fn_1_67AC(float arg0, float arg1); -// Issues with assignment of temp_f30 -// Scratch is at https://decomp.me/scratch/EqCuG void fn_1_4E50(omObjData *object) { float temp_f31; From f6ca7da9438cc94de545390dfae4bf3a5632176b Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Wed, 15 Jan 2025 19:59:55 -0500 Subject: [PATCH 259/311] complete m438Dll/map.c (#534) * get halfway through m424/ball * get halfway through m424/ball * get halfway through m424/ball * complete m424/ball * fix merge errors * Revert "complete m424/ball" This reverts commit acbc3196c585acc5e6328e53f4aaf31e1b52db73. * fix up ball, start claw * get halfway through m424/ball * complete m424/ball * Revert "complete m424/ball" This reverts commit acbc3196c585acc5e6328e53f4aaf31e1b52db73. * fix up ball, start claw * complete m424Dll * fix m424, begin m438/map * Start m438/map * complete m438/map * fix m424 --- .vscode/settings.json | 5 +- config/GMPE01_00/rels/m438Dll/symbols.txt | 71 +-- configure.py | 2 +- include/REL/m438Dll.h | 13 + src/REL/m424Dll/claw.c | 9 +- src/REL/m424Dll/main.c | 2 +- src/REL/m438Dll/main.c | 32 +- src/REL/m438Dll/map.c | 690 ++++++++++++++++++++++ 8 files changed, 756 insertions(+), 68 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index a155f802..d1282bec 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -36,7 +36,10 @@ "vcruntime.h": "c", "hsfmotion.h": "c", "m424dll.h": "c", - "chrman.h": "c" + "chrman.h": "c", + "os.h": "c", + "type_traits": "cpp", + "xutility": "cpp" }, "search.useIgnoreFiles": false, "search.exclude": { diff --git a/config/GMPE01_00/rels/m438Dll/symbols.txt b/config/GMPE01_00/rels/m438Dll/symbols.txt index 94448680..c1e2961a 100644 --- a/config/GMPE01_00/rels/m438Dll/symbols.txt +++ b/config/GMPE01_00/rels/m438Dll/symbols.txt @@ -397,43 +397,43 @@ lbl_1_data_678 = .data:0x00000678; // type:object size:0x24 lbl_1_data_69C = .data:0x0000069C; // type:object size:0x6C lbl_1_data_708 = .data:0x00000708; // type:object size:0x24 lbl_1_data_72C = .data:0x0000072C; // type:object size:0x24 -lbl_1_data_750 = .data:0x00000750; // type:object size:0x7 data:string -lbl_1_data_757 = .data:0x00000757; // type:object size:0x7 data:string -lbl_1_data_75E = .data:0x0000075E; // type:object size:0x7 data:string -lbl_1_data_765 = .data:0x00000765; // type:object size:0x7 data:string -lbl_1_data_76C = .data:0x0000076C; // type:object size:0x7 data:string -lbl_1_data_773 = .data:0x00000773; // type:object size:0x7 data:string -lbl_1_data_77A = .data:0x0000077A; // type:object size:0x7 data:string -lbl_1_data_781 = .data:0x00000781; // type:object size:0x7 data:string -lbl_1_data_788 = .data:0x00000788; // type:object size:0x7 data:string -lbl_1_data_78F = .data:0x0000078F; // type:object size:0x8 data:string -lbl_1_data_797 = .data:0x00000797; // type:object size:0x8 data:string -lbl_1_data_79F = .data:0x0000079F; // type:object size:0x8 data:string -lbl_1_data_7A7 = .data:0x000007A7; // type:object size:0x8 data:string -lbl_1_data_7AF = .data:0x000007AF; // type:object size:0x8 data:string -lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x8 data:string -lbl_1_data_7BF = .data:0x000007BF; // type:object size:0x8 data:string -lbl_1_data_7C7 = .data:0x000007C7; // type:object size:0x8 data:string -lbl_1_data_7CF = .data:0x000007CF; // type:object size:0x8 data:string -lbl_1_data_7D7 = .data:0x000007D7; // type:object size:0x8 data:string -lbl_1_data_7DF = .data:0x000007DF; // type:object size:0x8 data:string -lbl_1_data_7E7 = .data:0x000007E7; // type:object size:0x8 data:string -lbl_1_data_7EF = .data:0x000007EF; // type:object size:0x8 data:string -lbl_1_data_7F7 = .data:0x000007F7; // type:object size:0x8 data:string -lbl_1_data_7FF = .data:0x000007FF; // type:object size:0x8 data:string -lbl_1_data_807 = .data:0x00000807; // type:object size:0x8 data:string -lbl_1_data_80F = .data:0x0000080F; // type:object size:0x8 data:string -lbl_1_data_817 = .data:0x00000817; // type:object size:0x8 data:string -lbl_1_data_81F = .data:0x0000081F; // type:object size:0x8 data:string -lbl_1_data_827 = .data:0x00000827; // type:object size:0x8 data:string -lbl_1_data_82F = .data:0x0000082F; // type:object size:0x8 data:string -lbl_1_data_837 = .data:0x00000837; // type:object size:0x8 data:string -lbl_1_data_83F = .data:0x0000083F; // type:object size:0x9 +lbl_1_data_750 = .data:0x00000750; // type:object size:0x7 scope:local data:string +lbl_1_data_757 = .data:0x00000757; // type:object size:0x7 scope:local data:string +lbl_1_data_75E = .data:0x0000075E; // type:object size:0x7 scope:local data:string +lbl_1_data_765 = .data:0x00000765; // type:object size:0x7 scope:local data:string +lbl_1_data_76C = .data:0x0000076C; // type:object size:0x7 scope:local data:string +lbl_1_data_773 = .data:0x00000773; // type:object size:0x7 scope:local data:string +lbl_1_data_77A = .data:0x0000077A; // type:object size:0x7 scope:local data:string +lbl_1_data_781 = .data:0x00000781; // type:object size:0x7 scope:local data:string +lbl_1_data_788 = .data:0x00000788; // type:object size:0x7 scope:local data:string +lbl_1_data_78F = .data:0x0000078F; // type:object size:0x8 scope:local data:string +lbl_1_data_797 = .data:0x00000797; // type:object size:0x8 scope:local data:string +lbl_1_data_79F = .data:0x0000079F; // type:object size:0x8 scope:local data:string +lbl_1_data_7A7 = .data:0x000007A7; // type:object size:0x8 scope:local data:string +lbl_1_data_7AF = .data:0x000007AF; // type:object size:0x8 scope:local data:string +lbl_1_data_7B7 = .data:0x000007B7; // type:object size:0x8 scope:local data:string +lbl_1_data_7BF = .data:0x000007BF; // type:object size:0x8 scope:local data:string +lbl_1_data_7C7 = .data:0x000007C7; // type:object size:0x8 scope:local data:string +lbl_1_data_7CF = .data:0x000007CF; // type:object size:0x8 scope:local data:string +lbl_1_data_7D7 = .data:0x000007D7; // type:object size:0x8 scope:local data:string +lbl_1_data_7DF = .data:0x000007DF; // type:object size:0x8 scope:local data:string +lbl_1_data_7E7 = .data:0x000007E7; // type:object size:0x8 scope:local data:string +lbl_1_data_7EF = .data:0x000007EF; // type:object size:0x8 scope:local data:string +lbl_1_data_7F7 = .data:0x000007F7; // type:object size:0x8 scope:local data:string +lbl_1_data_7FF = .data:0x000007FF; // type:object size:0x8 scope:local data:string +lbl_1_data_807 = .data:0x00000807; // type:object size:0x8 scope:local data:string +lbl_1_data_80F = .data:0x0000080F; // type:object size:0x8 scope:local data:string +lbl_1_data_817 = .data:0x00000817; // type:object size:0x8 scope:local data:string +lbl_1_data_81F = .data:0x0000081F; // type:object size:0x8 scope:local data:string +lbl_1_data_827 = .data:0x00000827; // type:object size:0x8 scope:local data:string +lbl_1_data_82F = .data:0x0000082F; // type:object size:0x8 scope:local data:string +lbl_1_data_837 = .data:0x00000837; // type:object size:0x8 scope:local data:string +lbl_1_data_83F = .data:0x0000083F; // type:object size:0x9 scope:local lbl_1_data_848 = .data:0x00000848; // type:object size:0x80 -lbl_1_data_8C8 = .data:0x000008C8; // type:object size:0x9 data:string -lbl_1_data_8D1 = .data:0x000008D1; // type:object size:0x7 data:string +lbl_1_data_8C8 = .data:0x000008C8; // type:object size:0x9 scope:local data:string +lbl_1_data_8D1 = .data:0x000008D1; // type:object size:0x7 scope:local data:string lbl_1_data_8D8 = .data:0x000008D8; // type:object size:0x60 -lbl_1_data_938 = .data:0x00000938; // type:object size:0xB data:string +lbl_1_data_938 = .data:0x00000938; // type:object size:0xB scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte @@ -458,6 +458,7 @@ lbl_1_bss_DD8 = .bss:0x00000DD8; // type:object size:0x4 data:4byte lbl_1_bss_DDC = .bss:0x00000DDC; // type:object size:0x4 data:4byte lbl_1_bss_DE0 = .bss:0x00000DE0; // type:object size:0x4 data:4byte lbl_1_bss_DE4 = .bss:0x00000DE4; // type:object size:0x44 data:4byte +lbl_1_bss_E28 = .bss:0x00000E28; // type:object size:0x4 data:4byte lbl_1_bss_E2C = .bss:0x00000E2C; // type:object size:0x4 data:4byte lbl_1_bss_E30 = .bss:0x00000E30; // type:object size:0x4 data:4byte lbl_1_bss_E34 = .bss:0x00000E34; // type:object size:0x258 data:4byte diff --git a/configure.py b/configure.py index e653b8d1..54bb4561 100644 --- a/configure.py +++ b/configure.py @@ -1160,7 +1160,7 @@ config.libs = [ "m438Dll", # Chain Chomp Fever objects={ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m438Dll/main.c"), - Object(NonMatching, "REL/m438Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m438Dll/map.c"), Object(NonMatching, "REL/m438Dll/fire.c"), }, ), diff --git a/include/REL/m438Dll.h b/include/REL/m438Dll.h index 798483ee..84847928 100644 --- a/include/REL/m438Dll.h +++ b/include/REL/m438Dll.h @@ -3,6 +3,19 @@ #include "game/object.h" +typedef struct M438MainWork4 { + u8 unk_00; + char unk01[0x3]; + s32 unk_04; + float unk_08; + float unk_0C; + Vec unk_10; + Vec unk_1C; + Vec unk_28; + Vec unk_34; + char unk40[0xC]; +} M438MainWork4; /* size = 0x4C */ + void fn_1_B4D8(Process *arg0); void fn_1_B548(); s32 fn_1_DA64(float arg8); diff --git a/src/REL/m424Dll/claw.c b/src/REL/m424Dll/claw.c index 2e6b061f..bae108e8 100644 --- a/src/REL/m424Dll/claw.c +++ b/src/REL/m424Dll/claw.c @@ -1,5 +1,6 @@ #include "REL/m424Dll.h" +#include "math.h" #include "ext_math.h" #include "game/audio.h" #include "game/chrman.h" @@ -7,8 +8,6 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/pad.h" -#include "math.h" - // STRUCT typedef struct _M424DllClawStruct { @@ -67,8 +66,8 @@ typedef struct _M424DllClawStruct3 { } M424DllClawStruct3; // sizeof 0x8 // BSS -Process *lbl_1_bss_6DC; -omObjData *lbl_1_bss_6D8; +Process* lbl_1_bss_6DC; +omObjData* lbl_1_bss_6D8; s32 lbl_1_bss_6D0[2]; s32 lbl_1_bss_6CC; s32 lbl_1_bss_6C8; @@ -179,7 +178,7 @@ void fn_1_94D0(omObjData *arg0) } var_r31->unk184 = -1; var_r31->unk30 = lbl_1_data_30C; - + for (var_r29 = 0; var_r29 < 0xC; var_r29++) { var_r31->unk3C[var_r29] = lbl_1_data_30C; var_r31->unkCC[var_r29] = lbl_1_data_30C; diff --git a/src/REL/m424Dll/main.c b/src/REL/m424Dll/main.c index 00db5d94..8fb9218d 100644 --- a/src/REL/m424Dll/main.c +++ b/src/REL/m424Dll/main.c @@ -273,7 +273,7 @@ void fn_1_41C(omObjData* object) { void fn_1_EE0(omObjData* object) { if (WipeStatGet() == 0) { - Hu3DBGColorSet(0U, 0U, 0U); + Hu3DBGColorSet(0, 0, 0); fn_1_1B8C(); fn_1_2880(); fn_1_94A4(); diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index c7409d36..dc82ed96 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -121,24 +121,6 @@ typedef struct M438MainWork3 { u16 unk_188[3]; } M438MainWork3; /* size = */ -typedef struct M438MainWork4 { - u8 unk_00; - char unk01[0x7]; - float unk_08; - float unk_0C; - float unk_10; - float unk_14; - float unk_18; - float unk_1C; - float unk_20; - float unk_24; - char unk28[4]; - float unk_2C; - char unk30[4]; - Vec unk_34; - char unk40[0xC]; -} M438MainWork4; /* size = 0x4C */ - typedef struct M438StructBss298 { /* 0x00 */ u8 unk_00; u8 unk_01; @@ -1595,15 +1577,15 @@ void fn_1_4724(omObjData *object) var_r31 = fn_1_7BFC(sizeof(M438MainWork4)); object->data = var_r31; memset(var_r31, 0, sizeof(M438MainWork4)); - var_r31->unk_10 = 0.0f; - var_r31->unk_14 = -450.0f; - var_r31->unk_18 = -1550.0f; - var_r31->unk_1C = var_r31->unk_20 = var_r31->unk_24 = 0.0f; - var_r31->unk_2C = 35.0f; + var_r31->unk_10.x = 0.0f; + var_r31->unk_10.y = -450.0f; + var_r31->unk_10.z = -1550.0f; + var_r31->unk_1C.x = var_r31->unk_1C.y = var_r31->unk_1C.z = 0.0f; + var_r31->unk_28.y = 35.0f; var_r31->unk_0C = 0.0f; var_r31->unk_00 = 0; - omSetTra(object, var_r31->unk_10, var_r31->unk_14, var_r31->unk_18); - omSetRot(object, var_r31->unk_1C, var_r31->unk_20, var_r31->unk_24); + omSetTra(object, var_r31->unk_10.x, var_r31->unk_10.y, var_r31->unk_10.z); + omSetRot(object, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z); omSetSca(object, 1.25f, 1.25f, 1.25f); object->func = fn_1_4984; } diff --git a/src/REL/m438Dll/map.c b/src/REL/m438Dll/map.c index e69de29b..ee37c2c3 100644 --- a/src/REL/m438Dll/map.c +++ b/src/REL/m438Dll/map.c @@ -0,0 +1,690 @@ +#include "REL/m438Dll.h" + +#include "ext_math.h" +#include "string.h" +#include "game/hsfanim.h" +#include "game/hsfmotion.h" +#include "game/sprite.h" +#include "game/wipe.h" + +// STRUCT +typedef struct M438MapStruct { + s32 unk0; + s32 unk4; + s32 unk8; + Vec unkC; + f32 unk18; + f32 unk1C; + f32 unk20; +} M438MapStruct; + +typedef struct M438MapStruct2 { + s32 unk0; + s32 unk4; + f32 unk8; + f32 unkC; + f32 unk10; + f32 unk14; + f32 unk18; + f32 unk1C; + f32 unk20; + Vec unk24; + Vec unk30; + Vec unk3C; + union { + M438MainWork4* unk48; + HsfObject* unk48o; + }; +} M438MapStruct2; + +typedef struct M438MapStruct3 { + u32 unk0; + M438MapStruct2 unk4; + char unk4C[0x934]; + M438MapStruct unk984; +} M438MapStruct3; + +// BSS +omObjData* lbl_1_bss_108C[6]; +HsfanimStruct01* lbl_1_bss_E34[0x96]; +s32 lbl_1_bss_E30; +s32 lbl_1_bss_E2C; +s32 lbl_1_bss_E28; + +// DATA +char* lbl_1_data_848[] = { + "iwa_s1", "iwa_s2", "iwa_s3", "iwa_s4", "iwa_s5", + "iwa_s6", "iwa_s7", "iwa_s8", "iwa_s9", + "iwa_s10", "iwa_s11", "iwa_s12", "iwa_s13", + "iwa_s14", "iwa_s15", "iwa_s16", "iwa_s17", + "iwa_s18", "iwa_s19", "iwa_s20", "iwa_s21", + "iwa_s22", "iwa_s23", "iwa_s24", "iwa_s25", + "iwa_s26", "iwa_s27", "iwa_s28", "iwa_s29", + "iwa_s30", "iwa_s31", "iwa_s32" +}; + +// PROTO +void fn_1_B54C(omObjData*); +void fn_1_BF20(omObjData*); +void fn_1_CAB0(f32); +void fn_1_C764(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_C8E8(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_D3FC(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_D57C(Vec*, f32); +void fn_1_E034(Mtx, Vec*); + +void fn_1_B4D8(Process* arg0) { + omObjData* var_r31; + + lbl_1_bss_E30 = 0; + var_r31 = lbl_1_bss_108C[0] = omAddObjEx(arg0, 0x20, 8, 0, -1, fn_1_B54C); + var_r31->work[0] = 0; +} + +void fn_1_B548(void) {} + +void fn_1_B54C(omObjData* arg0) { + Vec sp20; + Vec sp14; + Vec sp8; + s32 var_r30; + s32 var_r29; + HsfObject* var_r26; + s32 var_r27; + M438MapStruct2* var_r28; + HsfanimStruct01* var_r25; + M438MapStruct* var_r24; + M438MapStruct3* temp_r23; + + arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x108C, 0x10000000); + temp_r23 = arg0->data; + memset(temp_r23, 0, 0x108C); + arg0->model[0] = Hu3DModelCreateFile(0x450000); + Hu3DModelLayerSet(arg0->model[0], 0); + Hu3DModelAttrSet(arg0->model[0], 0x40000001); + Hu3DModelShadowMapSet(arg0->model[0]); + arg0->model[1] = Hu3DModelCreateFile(0x450001); + Hu3DModelLayerSet(arg0->model[1], 1); + Hu3DModelPosSet(arg0->model[1], 0.0f, -80.0f, 0.0f); + arg0->model[2] = Hu3DModelCreateFile(0x450002); + Hu3DModelLayerSet(arg0->model[2], 0); + Hu3DModelPosSet(arg0->model[2], 0.0f, -50.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[2], 0x40000001); + Hu3DMotionSpeedSet(arg0->model[2], 0.1f); + var_r29 = Hu3DTexScrollCreate(arg0->model[1], "lavafall"); + Hu3DTexScrollPosMoveSet(var_r29, 0.0f, -0.025000002f, 0.0f); + var_r29 = Hu3DTexScrollCreate(arg0->model[1], "lafall"); + Hu3DTexScrollPosMoveSet(var_r29, 0.0f, -(1.0f / 60.0f), 0.0f); + var_r29 = 0; + + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000C), 0x32); + arg0->model[3] = var_r27; + Hu3DModelLayerSet(var_r27, 3); + Hu3DParticleHookSet(var_r27, fn_1_C764); + for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) { + lbl_1_bss_E34[var_r29] = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; + } + + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000D), 0x32); + arg0->model[4] = var_r27; + Hu3DModelLayerSet(var_r27, 3); + Hu3DParticleHookSet(var_r27, fn_1_C764); + for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) { + lbl_1_bss_E34[var_r29] = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; + } + + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000E), 0x32); + arg0->model[5] = var_r27; + Hu3DModelLayerSet(var_r27, 3); + Hu3DParticleHookSet(var_r27, fn_1_C764); + for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) { + lbl_1_bss_E34[var_r29] = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; + } + for (var_r30 = 0; var_r30 < 0x95; var_r30++) { + for (var_r29 = 1; var_r29 < 0x96; var_r29++) { + if (frandmod(0x3E8) < 0x1C2) { + var_r25 = lbl_1_bss_E34[var_r30]; + lbl_1_bss_E34[var_r30] = lbl_1_bss_E34[var_r29]; + lbl_1_bss_E34[var_r29] = var_r25; + } + } + } + + for (var_r30 = 0; var_r30 < 0x96; var_r30++) { + lbl_1_bss_E34[var_r30]->unk2C = 0.0f; + lbl_1_bss_E34[var_r30]->unk40.a = 0; + lbl_1_bss_E34[var_r30]->unk00 = 0; + } + + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000F), 0x32); + arg0->model[6] = var_r27; + Hu3DModelLayerSet(var_r27, 3); + Hu3DParticleHookSet(var_r27, fn_1_C8E8); + var_r25 = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[0]; + for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r25++) { + var_r25->unk2C = 0.0f; + var_r25->unk40.a = 0; + var_r25->unk00 = 0; + } + + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x450010), 0x1F4); + arg0->model[7] = var_r27; + Hu3DModelLayerSet(var_r27, 2); + Hu3DParticleBlendModeSet(var_r27, 1); + Hu3DParticleHookSet(var_r27, fn_1_D3FC); + var_r25 = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[0]; + for (var_r30 = 0; var_r30 < 0x1F4; var_r30++, var_r25++) { + var_r25->unk2C = 0.0f; + var_r25->unk40.a = 0; + var_r25->unk00 = 0; + } + var_r28 = &temp_r23->unk4; + for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r28++) { + var_r28->unk0 = 1; + var_r28->unk4 = 0; + var_r28->unkC = var_r28->unk10 = 0.0f; + var_r28->unk14 = var_r28->unk18 = 0.0f; + var_r28->unk1C = var_r28->unk20 = 0.0f; + var_r26 = Hu3DModelObjPtrGet(arg0->model[0], lbl_1_data_848[var_r30]); + var_r28->unk48o = var_r26; + sp14.x = sp14.y = sp14.z = -100000.0f; + sp8.x = sp8.y = sp8.z = 100000.0f; + + for (var_r29 = 0; var_r29 < var_r26->data.vertex->count; var_r29++) { + if (((Vec*)var_r26->data.vertex->data)[var_r29].x > sp14.x) { + sp14.x = ((Vec*)var_r26->data.vertex->data)[var_r29].x; + } + if (((Vec*)var_r26->data.vertex->data)[var_r29].y > sp14.y) { + sp14.y = ((Vec*)var_r26->data.vertex->data)[var_r29].y; + } + if (((Vec*)var_r26->data.vertex->data)[var_r29].z > sp14.z) { + sp14.z = ((Vec*)var_r26->data.vertex->data)[var_r29].z; + } + if (((Vec*)var_r26->data.vertex->data)[var_r29].x < sp8.x) { + sp8.x = ((Vec*)var_r26->data.vertex->data)[var_r29].x; + } + if (((Vec*)var_r26->data.vertex->data)[var_r29].y < sp8.y) { + sp8.y = ((Vec*)var_r26->data.vertex->data)[var_r29].y; + } + if (((Vec*)var_r26->data.vertex->data)[var_r29].z < sp8.z) { + sp8.z = ((Vec*)var_r26->data.vertex->data)[var_r29].z; + } + } + PSVECAdd(&sp14, &sp8, &sp20); + PSVECScale(&sp20, &sp20, 0.5f); + var_r28->unk24 = sp20; + var_r28->unk30 = var_r28->unk24; + var_r28->unk8 = (360.0 + atan2d(sp20.x, sp20.z)); + if (var_r28->unk8 >= 360.0f) { + var_r28->unk8 -= 360.0f; + } + } + var_r27 = Hu3DModelCreateFile(0x45000B); + Hu3DModelLayerSet(var_r27, 2); + var_r24 = &temp_r23->unk984; + for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r24++) { + var_r24->unk0 = 0; + var_r24->unk8 = 0; + var_r24->unk18 = 0.0f; + var_r24->unk1C = var_r24->unk20 = 0.0f; + var_r24->unk4 = Hu3DModelLink(var_r27); + Hu3DModelLayerSet(var_r24->unk4, 2); + Hu3DModelAttrSet(var_r24->unk4, 1); + } + Hu3DModelKill(var_r27); + arg0->func = fn_1_BF20; +} + +Vec lbl_1_data_8D8[4][2] = { + { + { -967.0f, -80.0f, -312.0f }, + { -867.0f, -80.0f, -485.0f }, + }, + { + { -917.0f, -80.0f, -857.0f }, + { -817.0f, -80.0f, -1030.0f }, + }, + { + { 967.0f, -80.0f, -312.0f }, + { 867.0f, -80.0f, -485.0f }, + }, + { + { 917.0f, -80.0f, -857.0f }, + { 817.0f, -80.0f, -1030.0f }, + }, +}; + +void fn_1_BF20(omObjData* arg0) { + Mtx sp5C; + Mtx sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + f32 temp_f29; + f32 temp_f30; + f32 temp_f31; + s32 var_r29; + M438MapStruct2* var_r31; + M438MapStruct* var_r30; + M438MapStruct3* temp_r28; + + temp_r28 = arg0->data; + temp_r28->unk0++; + var_r31 = &temp_r28->unk4; + + for (var_r29 = 0; var_r29 < 0x20; var_r29++, var_r31++) { + if ((var_r31->unk0 == 0) && (var_r31->unk4 != 0)) { + temp_f29 = var_r31->unk30.y; + PSVECAdd(&var_r31->unk30, &var_r31->unk3C, &var_r31->unk30); + var_r31->unk3C.x *= 0.92f; + var_r31->unk3C.z *= 0.92f; + var_r31->unk3C.y += -0.27222225f; + if (temp_f29 > 0.0) { + if (var_r31->unk30.y <= 0.0) { + HuAudFXEmiterPlay(0x6FF, &var_r31->unk30); + } + } + var_r31->unkC += var_r31->unk10; + var_r31->unk14 += var_r31->unk18; + var_r31->unk1C += var_r31->unk20; + sp14.x = sind(90.0f + var_r31->unk8); + sp14.z = cosd(90.0f + var_r31->unk8); + sp14.y = 0.0f; + PSMTXRotAxisRad(sp5C, &sp14, MTXDegToRad(var_r31->unkC)); + sp14.x = sp14.z = 0.0f; + sp14.y = 1.0f; + PSMTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk14)); + PSMTXConcat(sp2C, sp5C, sp5C); + sp14.x = sind(var_r31->unk8); + sp14.z = cosd(var_r31->unk8); + sp14.y = 0.0f; + PSMTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk1C)); + PSMTXConcat(sp2C, sp5C, sp5C); + fn_1_E034(sp5C, &sp20); + var_r31->unk48->unk_28.x = sp20.x; + var_r31->unk48->unk_28.y = sp20.y; + var_r31->unk48->unk_28.z = sp20.z; + PSMTXInverse(sp5C, sp5C); + PSMTXMultVec(sp5C, &var_r31->unk24, &sp8); + var_r31->unk48->unk_1C.x = (var_r31->unk30.x - sp8.x); + var_r31->unk48->unk_1C.y = (var_r31->unk30.y - sp8.y); + var_r31->unk48->unk_1C.z = (var_r31->unk30.z - sp8.z); + if (var_r31->unk30.y < -500.0f) { + var_r31->unk4 = 0; + } + } + } + if ((temp_r28->unk0 & 1) == 0) { + var_r30 = &temp_r28->unk984; + + for (var_r29 = 0; var_r29 < 0x32; var_r29++, var_r30++) { + if (var_r30->unk0 != 0) continue; + var_r30->unk0 = 1; + var_r30->unk18 = frandmod(0x168); + if (frandmod(0x64) < 0x14) { + var_r30->unkC.x = (0.8f * (frandmod(0x7D0) - 0x3E8)); + var_r30->unkC.y = -80.0f; + var_r30->unkC.z = ((-1.2f * frandmod(0x3E8)) - 1000.0f); + } else { + temp_f31 = frandmod(0x168); + temp_f30 = 800.0f + (0.25f * frandmod(0x3E8)); + var_r30->unkC.x = (temp_f30 * sind(temp_f31)); + var_r30->unkC.y = -80.0f; + var_r30->unkC.z = (temp_f30 * cosd(temp_f31)); + } + var_r30->unk20 = (0.1f + (0.0005f * frandmod(0x3E8))); + var_r30->unk1C = 0.0f; + Hu3DModelAttrReset(var_r30->unk4, 1); + Hu3DModelPosSetV(var_r30->unk4, &var_r30->unkC); + Hu3DModelRotSet(var_r30->unk4, 0.0f, var_r30->unk18, 0.0f); + Hu3DModelScaleSet(var_r30->unk4, var_r30->unk1C, var_r30->unk1C, var_r30->unk1C); + break; + } + } + var_r30 = &temp_r28->unk984; + for (var_r29 = 0; var_r29 < 0x32; var_r29++, var_r30++) { + if (var_r30->unk0 != 0) { + var_r30->unk1C += 0.005f; + if (var_r30->unk1C > var_r30->unk20) { + var_r30->unk0 = 0; + Hu3DModelAttrSet(var_r30->unk4, 1); + fn_1_D57C(&Hu3DData[var_r30->unk4].pos, var_r30->unk20); + } + Hu3DModelScaleSet(var_r30->unk4, var_r30->unk1C, var_r30->unk1C, var_r30->unk1C); + } + } + + for (var_r29 = 0; var_r29 < 4; var_r29++) { + PSVECSubtract(&lbl_1_data_8D8[var_r29][1], &lbl_1_data_8D8[var_r29][0], &sp14); + temp_f31 = 0.001f * frandmod(0x3E8); + PSVECScale(&sp14, &sp14, temp_f31); + PSVECAdd(&lbl_1_data_8D8[var_r29][0], &sp14, &sp8); + PSVECScale(&sp8, &sp8, 0.98f); + fn_1_D57C(&sp8, 0.03f); + } + if ((lbl_1_bss_E30 == 0) && (WipeStatGet() == 0)) { + HuAudFXPlay(0x6F9); + HuAudFXPlay(0x6FD); + lbl_1_bss_E30 = 1; + } +} + +void fn_1_C764(ModelData* model, ParticleData* particle, Mtx matrix) { + HsfanimStruct01* var_r31; + s32 var_r29; + u16 temp_r0; + + var_r31 = particle->unk_48; + + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00_s16 != 0) { + PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + var_r31->unk08.x *= 0.95f; + var_r31->unk08.z *= 0.95f; + var_r31->unk08.y += -0.27222225f; + if (var_r31->unk00_s16 < 24.0f) { + var_r31->unk40.a = 0.9f * var_r31->unk40.a; + } + if (--var_r31->unk00_s16 == 0) { + var_r31->unk00 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * 0x44); +} + +void fn_1_C8E8(ModelData* model, ParticleData* particle, Mtx matrix) { + HsfanimStruct01* var_r31; + s32 var_r29; + u16 temp_r0; + + var_r31 = particle->unk_48; + + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00_s16 != 0) { + PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + var_r31->unk08.x *= 0.92f; + var_r31->unk08.z *= 0.92f; + var_r31->unk2C += 5.0f; + var_r31->unk40.a *= 0.99f; + if (var_r31->unk00_s16 < 24.0f) { + var_r31->unk40.a = 0.9f * var_r31->unk40.a; + } + if (--var_r31->unk00_s16 == 0) { + var_r31->unk00 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * 0x44); +} + +void fn_1_CAB0(f32 arg8) { + Vec sp8; + f32 temp_f31; + f32 temp_f30; + f32 temp_f28; + f32 temp_f27; + HsfanimStruct01* var_r31; + s32 var_r30; + u32 var_r29; + + temp_f28 = 20.0f; + temp_f27 = 7.0f; + var_r29 = 0x19; + + for (var_r30 = 0; var_r30 < 0x96; var_r30++) { + var_r31 = lbl_1_bss_E34[var_r30]; + if (var_r31->unk00_s16 == 0) { + var_r31->unk00_s16 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8))); + temp_f31 = ((0.002f * frandmod(0x3E8)) - 1.0f); + temp_f31 = arg8 + (temp_f31 * temp_f28); + sp8.x = sind(temp_f31); + sp8.y = 0.0f; + sp8.z = cosd(temp_f31); + + temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27; + var_r31->unk34.x = 7.5 * sind(temp_f31) * 100.0; + var_r31->unk34.y = 0.2f * frandmod(0x3E8); + var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0; + + temp_f30 = 1.6666667f * (4.0f + (0.014f * frandmod(0x3E8))); + var_r31->unk08.x = sp8.x * temp_f30; + var_r31->unk08.z = sp8.z * temp_f30; + var_r31->unk08.y = temp_f30 * ((0.0006f * frandmod(0x3E8)) - 0.2f); + + var_r31->unk30 = frandmod(0x168); + var_r31->unk2C = 10.0f + frandmod(0x32); + var_r31->unk40.a = 0xFA; + var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = 0xFF; + + var_r29--; + if (var_r29 < 1) break; + } + } + var_r31 = ((ParticleData*)(Hu3DData[lbl_1_bss_108C[0]->model[6]].unk_120))->unk_48; + var_r29 = 0xF; + for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r31++) { + if (var_r31->unk00_s16 == 0) { + var_r31->unk00_s16 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8))); + temp_f31 = ((0.002f * frandmod(0x3E8)) - 1.0f); + temp_f31 = arg8 + (temp_f31 * temp_f28); + sp8.x = sind(temp_f31); + sp8.y = 0.0f; + sp8.z = cosd(temp_f31); + + temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27; + var_r31->unk34.x = 7.5 * sind(temp_f31) * 100.0; + var_r31->unk34.y = 0.2f * frandmod(0x3E8); + var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0; + + temp_f30 = 1.6666667f * -(0.01f * frandmod(0x3E8)); + var_r31->unk08.x = sp8.x * temp_f30; + var_r31->unk08.z = sp8.z * temp_f30; + var_r31->unk08.y = temp_f30 * -((0.00020000001f * frandmod(0x3E8)) + 0.05f); + + var_r31->unk30 = frandmod(0x168); + var_r31->unk2C = 100.0f + frandmod(0x64); + var_r31->unk40.a = 0x50 + frandmod(0x50); + temp_f31 = frandmod(0x3E8) * 0.001f; + var_r31->unk40.r = (60.0f * temp_f31) + 80.0f; + var_r31->unk40.g = (60.0f * temp_f31) + 61.0f; + var_r31->unk40.b = (60.0f * temp_f31) + 54.0f; + + var_r29--; + if (var_r29 < 1) break; + } + } +} + +void fn_1_D3FC(ModelData* model, ParticleData* particle, Mtx matrix) { + HsfanimStruct01* var_r31; + s32 var_r29; + u16 temp_r0; + + lbl_1_bss_E2C = 0; + var_r31 = particle->unk_48; + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (var_r31->unk00_s16 != 0) { + PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + var_r31->unk08.y += -0.27222225f; + if (var_r31->unk00_s16 < 12.0f) { + var_r31->unk40.a = (0.8f * var_r31->unk40.a); + } + if (--var_r31->unk00_s16 == 0) { + var_r31->unk00_s16 = 0; + var_r31->unk2C = 0.0f; + var_r31->unk40.a = 0; + } + lbl_1_bss_E2C++; + } + } + DCStoreRange(particle->unk_48, particle->unk_30 * 0x44); +} + +void fn_1_D57C(Vec* arg0, f32 arg1) { + Vec sp8; + f32 temp_f31; + f32 temp_f29; + HsfanimStruct01* var_r31; + s32 var_r30; + u32 var_r29; + + var_r31 = ((ParticleData*)(Hu3DData[lbl_1_bss_108C[0]->model[7]].unk_120))->unk_48; + var_r29 = (u32)(3.0f + (15.0f * arg1)); + + for (var_r30 = 0; var_r30 < 0x1F4; var_r30++, var_r31++) { + if (var_r31->unk00_s16 == 0) { + var_r31->unk00_s16 = 60.0f * (0.3f + (0.0003f * frandmod(0x3E8))); + var_r31->unk34 = *arg0; + var_r31->unk34.x += arg1 * (0.07f * (frandmod(0x3E8) - 0x1F4)); + var_r31->unk34.z += arg1 * (0.07f * (frandmod(0x3E8) - 0x1F4)); + + temp_f31 = frandmod(0x168); + sp8.x = sind(temp_f31); + sp8.y = 0.0f; + sp8.z = cosd(temp_f31); + + temp_f29 = 1.6666667f * (0.5f + (0.001f * frandmod(0x3E8))); + var_r31->unk08.x = sp8.x * temp_f29; + var_r31->unk08.z = sp8.z * temp_f29; + var_r31->unk08.y = 1.6666667f * ((2.0f * arg1) + (1.0f + (0.002f * frandmod(0x3E8)))); + var_r31->unk30 = frandmod(0x168); + var_r31->unk2C = (20.0f + frandmod(0x14)); + var_r31->unk40.a = (frandmod(0x46) + 0x64); + + temp_f31 = 0.001f * frandmod(0x3E8); + var_r31->unk40.r = 177.0f + (78.0f * temp_f31); + var_r31->unk40.g = 60.0f + (129.0f * temp_f31); + var_r31->unk40.b = 30.0f + (122.0f * temp_f31); + + var_r29--; + if (var_r29 < 1) break; + } + } +} + +s32 fn_1_DA64(f32 arg8) { + M438MapStruct3* var_r28; + s32 var_r29; + s32 var_r30; + M438MapStruct2* var_r31; + float var_f31; + float var_f29; + + var_r28 = lbl_1_bss_108C[0]->data; + var_r29 = 0; + var_r31 = &var_r28->unk4; + + for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + var_f31 = fn_1_E5A4(var_r31->unk8, arg8); + if ((fabs(var_f31) < 12.0) && (var_r31->unk0 != 0)) { + var_r31->unk0 = 0; + var_r31->unk4 = 1; + var_r31->unk30 = var_r31->unk24; + var_r31->unk3C.y = (1.6666667f * (2.0f + (0.002f * frandmod(0x3E8)))); + var_r31->unk3C.x = (1.6666667461395264f * (sind(var_r31->unk8) * (10.0f + (0.006f * frandmod(0x3E8))))); + var_r31->unk3C.z = (1.6666667461395264f * (cosd(var_r31->unk8) * (10.0f + (0.006f * frandmod(0x3E8))))); + var_r31->unkC = var_r31->unk14 = var_r31->unk1C = 0.0f; + var_r31->unk10 = (0.016666668f * (10.0f + (0.05f * frandmod(0x3E8)))); + var_r31->unk18 = (0.016666668f * (30.0f + (0.05f * frandmod(0x3E8)))); + var_r31->unk20 = (0.016666668f * (10.0f + (0.02f * frandmod(0x3E8)))); + if (frandmod(0x64) < 0x50) { + var_r31->unk10 *= -1.0f; + } + if (frandmod(0x64) < 0x32) { + var_r31->unk18 *= -1.0f; + } + if (frandmod(0x64) < 0x32) { + var_r31->unk20 *= -1.0f; + } + fn_1_CAB0(var_r31->unk8); + var_r29 = 1; + } + } + return var_r29; +} + +s32 fn_1_DEA0(f32 arg8) { + M438MapStruct3* var_r28; + s32 var_r29; + s32 var_r30; + M438MapStruct2* var_r31; + f32 var_f31; + + var_r28 = lbl_1_bss_108C[0]->data; + var_r29 = 0; + var_r31 = &var_r28->unk4; + + for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + var_f31 = fn_1_E5A4(var_r31->unk8, arg8); + if ((fabs(var_f31) < 8.0) && (var_r31->unk0 != 0)) { + var_r29 = 1; + break; + } + } + return var_r29; +} + +f32 fn_1_DF70(f32 arg8, f32 arg9) { + f32 temp_f30; + f32 var_f31; + + temp_f30 = 360.0f; + var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI); + if (var_f31 < 0.0f) { + var_f31 += temp_f30; + } else if (var_f31 >= temp_f30) { + var_f31 -= temp_f30; + } + return var_f31; +} + +void fn_1_E034(Mtx arg0, Vec* arg1) { + f32 var_f26; + f32 temp_f25; + + arg1->x = fn_1_DF70(arg0[2][2], arg0[1][2]); + arg1->z = fn_1_DF70(arg0[0][0], arg0[0][1]); + temp_f25 = -arg0[0][2]; + var_f26 = sqrtf(fabs(1.0 - (temp_f25 * temp_f25))); + if ((arg1->x > 90.0f) && (arg1->x < 270.0f) && (arg1->z > 90.0f) && (arg1->z < 270.0f)) { + arg1->x = fmod((180.0f + arg1->x), 360.0); + arg1->z = fmod((180.0f + arg1->z), 360.0); + var_f26 = -var_f26; + } + arg1->y = fn_1_DF70(var_f26, temp_f25); +} + +f32 fn_1_E488(f32 arg8, f32 arg9, f32 argA) { + f32 var_f31; + + var_f31 = fmodf((arg9 - arg8), 360.0); + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + var_f31 = fmodf((arg8 + (argA * var_f31)), 360.0); + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + return var_f31; +} + +f32 fn_1_E5A4(f32 arg8, f32 arg9) { + f32 var_f31; + + var_f31 = fmodf((arg9 - arg8), 360.0); + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} From 77da4907df14823f39216515325b5546afb53c4c Mon Sep 17 00:00:00 2001 From: Liam Coleman Date: Wed, 15 Jan 2025 23:40:36 -0600 Subject: [PATCH 260/311] Label much of MSM (#535) --- config/GMPE01_00/symbols.txt | 10 +- config/GMPE01_01/symbols.txt | 14 +- include/game/msm.h | 38 +- include/game/msm_data.h | 185 +++++ include/msm/msmmem.h | 6 +- include/msm/msmmus.h | 2 +- include/msm/msmse.h | 4 +- include/msm/msmstream.h | 6 +- include/msm/msmsys.h | 201 ++--- src/msm/msmmem.c | 181 +++-- src/msm/msmmus.c | 519 +++++++------ src/msm/msmse.c | 936 ++++++++++++----------- src/msm/msmstream.c | 1350 +++++++++++++++++----------------- src/msm/msmsys.c | 945 ++++++++++++------------ 14 files changed, 2207 insertions(+), 2190 deletions(-) create mode 100644 include/game/msm_data.h diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 3e84f320..1417c27e 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -3568,15 +3568,15 @@ msmStreamSetOutputMode = .text:0x8011A61C; // type:function size:0x114 msmStreamAmemFree = .text:0x8011A730; // type:function size:0x68 msmStreamAmemAlloc = .text:0x8011A798; // type:function size:0x10C msmStreamInit = .text:0x8011A8A4; // type:function size:0x2A8 -msmStreamPauseOff = .text:0x8011AB4C; // type:function size:0x2B8 -msmStreamPauseOn = .text:0x8011AE04; // type:function size:0x1AC +msmStreamPauseOff = .text:0x8011AB4C; // type:function size:0x2B8 scope:local +msmStreamPauseOn = .text:0x8011AE04; // type:function size:0x1AC scope:local msmStreamPauseFade = .text:0x8011AFB0; // type:function size:0x2E8 scope:local msmStreamFade = .text:0x8011B298; // type:function size:0x33C scope:local msmStreamStopSub = .text:0x8011B5D4; // type:function size:0x13C scope:local msmStreamSetParamSub = .text:0x8011B710; // type:function size:0xE0 scope:local -msmStreamPackStartStereo = .text:0x8011B7F0; // type:function size:0x448 -msmStreamPackStartMono = .text:0x8011BC38; // type:function size:0x2DC -msmStreamSlotOff = .text:0x8011BF14; // type:function size:0xD0 +msmStreamPackStartStereo = .text:0x8011B7F0; // type:function size:0x448 scope:local +msmStreamPackStartMono = .text:0x8011BC38; // type:function size:0x2DC scope:local +msmStreamSlotOff = .text:0x8011BF14; // type:function size:0xD0 scope:local msmStreamData = .text:0x8011BFE4; // type:function size:0x320 scope:local msmStreamDvdCallback = .text:0x8011C304; // type:function size:0x4A8 scope:local msmStreamDvdCallback2 = .text:0x8011C7AC; // type:function size:0x188 scope:local diff --git a/config/GMPE01_01/symbols.txt b/config/GMPE01_01/symbols.txt index ef9eff80..5bed188a 100644 --- a/config/GMPE01_01/symbols.txt +++ b/config/GMPE01_01/symbols.txt @@ -3568,15 +3568,15 @@ msmStreamSetOutputMode = .text:0x8011A61C; // type:function size:0x114 msmStreamAmemFree = .text:0x8011A730; // type:function size:0x68 msmStreamAmemAlloc = .text:0x8011A798; // type:function size:0x10C msmStreamInit = .text:0x8011A8A4; // type:function size:0x2A8 -msmStreamPauseOff = .text:0x8011AB4C; // type:function size:0x2B8 -msmStreamPauseOn = .text:0x8011AE04; // type:function size:0x1AC -msmStreamPauseFade = .text:0x8011AFB0; // type:function size:0x2E8 -msmStreamFade = .text:0x8011B298; // type:function size:0x33C +msmStreamPauseOff = .text:0x8011AB4C; // type:function size:0x2B8 scope:local +msmStreamPauseOn = .text:0x8011AE04; // type:function size:0x1AC scope:local +msmStreamPauseFade = .text:0x8011AFB0; // type:function size:0x2E8 scope:local +msmStreamFade = .text:0x8011B298; // type:function size:0x33C scope:local msmStreamStopSub = .text:0x8011B5D4; // type:function size:0x13C scope:local msmStreamSetParamSub = .text:0x8011B710; // type:function size:0xE0 scope:local -msmStreamPackStartStereo = .text:0x8011B7F0; // type:function size:0x448 -msmStreamPackStartMono = .text:0x8011BC38; // type:function size:0x2DC -msmStreamSlotOff = .text:0x8011BF14; // type:function size:0xD0 +msmStreamPackStartStereo = .text:0x8011B7F0; // type:function size:0x448 scope:local +msmStreamPackStartMono = .text:0x8011BC38; // type:function size:0x2DC scope:local +msmStreamSlotOff = .text:0x8011BF14; // type:function size:0xD0 scope:local msmStreamData = .text:0x8011BFE4; // type:function size:0x320 scope:local msmStreamDvdCallback = .text:0x8011C304; // type:function size:0x4A8 scope:local msmStreamDvdCallback2 = .text:0x8011C7AC; // type:function size:0x188 scope:local diff --git a/include/game/msm.h b/include/game/msm.h index e7ae2ae2..e5106677 100644 --- a/include/game/msm.h +++ b/include/game/msm.h @@ -3,6 +3,7 @@ #include "dolphin.h" #include "musyx/musyx.h" +#include "game/msm_data.h" #define MSM_SEPARAM_NONE 0 #define MSM_SEPARAM_VOL (1 << 0) @@ -40,25 +41,24 @@ #define MSM_ERR_READFAIL -2 #define MSM_ERR_OUTOFMEM -10 #define MSM_ERR_OUTOFAMEM -20 -#define MSM_ERR_INITFAIL -20 -#define MSM_ERR_1E -30 +#define MSM_ERR_INITFAIL -30 #define MSM_ERR_INVALID_AUXPARAM -31 -#define MSM_ERR_20 -32 +#define MSM_ERR_GRP_FAILPUSH -32 #define MSM_ERR_PLAYFAIL -33 -#define MSM_ERR_22 -34 +#define MSM_LISTENER_NO_UPDATA -34 #define MSM_ERR_STREAMALLOC_FAIL -35 #define MSM_ERR_INSTALLED -36 #define MSM_ERR_64 -100 -#define MSM_ERR_65 -101 +#define MSM_ERR_STACK_OVERFLOW -101 #define MSM_ERR_GRP_NOTLOADED -103 -#define MSM_ERR_6E -110 -#define MSM_ERR_6F -111 +#define MSM_ERR_CHANLIMIT -110 +#define MSM_ERR_INVALIDSE -111 #define MSM_ERR_INVALIDID -120 #define MSM_ERR_INVALIDFILE -121 #define MSM_ERR_REMOVEDID -122 #define MSM_ERR_MUSGRP_NOTLOADED -123 #define MSM_ERR_OUTOFMUS -130 -#define MSM_ERR_8C -140 +#define MSM_ERR_RANGE_STREAM -140 #define MSM_VOL_MAX 127 #define MSM_PAN_LEFT 32 @@ -132,19 +132,6 @@ typedef struct msmSeParam_s { Vec pos; } MSM_SEPARAM; -typedef struct msmSe_s { - u16 groupId; - u16 fxId; - s8 vol; - s8 pan; - s16 pitchBend; - u8 span; - u8 reverb; - u8 chorus; - s8 doppler; - s8 comp; - u8 pad[3]; -} MSMSE; typedef struct msmSeListener_s { s32 flag; @@ -173,10 +160,11 @@ typedef struct msmStreamParam_s { } MSM_STREAMPARAM; s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram); -s32 msmSysSetOutputMode(SND_OUTPUTMODE mode); +BOOL msmSysSetOutputMode(SND_OUTPUTMODE mode); s32 msmSysDelGroupAll(void); s32 msmSysGetSampSize(BOOL baseGrp); s32 msmSysDelGroupBase(s32 grpNum); +s32 msmSysSetAux(s32 auxA, s32 auxB); s32 msmSeSetParam(int seNo, MSM_SEPARAM *param); int msmSePlay(int seId, MSM_SEPARAM *param); @@ -190,6 +178,8 @@ void msmSeDelListener(void); s32 msmSeGetStatus(int seNo); s32 msmSeGetNumPlay(BOOL baseGrp); s32 msmSeGetEntryID(s32 seId, int *seNo); +void msmSeSetMasterVolume(s32 vol); +MSM_SE* msmSeGetIndexPtr(s32 seId); int msmMusPlay(int musId, MSM_MUSPARAM *musParam); s32 msmMusStop(int musNo, s32 speed); @@ -199,6 +189,8 @@ s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl); void msmMusStopAll(BOOL checkGrp, s32 speed); s32 msmMusGetStatus(int musNo); s32 msmMusGetNumPlay(BOOL baseGrp); +s32 msmMusSetParam(s32 musNo, MSM_MUSPARAM *param); +void msmMusSetMasterVolume(s32 vol); int msmStreamPlay(int streamId, MSM_STREAMPARAM *streamParam); s32 msmStreamStop(int streamNo, s32 speed); @@ -207,5 +199,7 @@ s32 msmStreamPause(int streamNo, BOOL pause, s32 speed); void msmStreamStopAll(s32 speed); s32 msmStreamGetStatus(int streamNo); +void msmStreamSetMasterVolume(s32 arg0); +void msmStreamSetOutputMode(s32 outputMode); #endif diff --git a/include/game/msm_data.h b/include/game/msm_data.h new file mode 100644 index 00000000..0c282ffb --- /dev/null +++ b/include/game/msm_data.h @@ -0,0 +1,185 @@ +#ifndef _MSM_DATA_H +#define _MSM_DATA_H + +#include "dolphin.h" +#include "musyx/musyx.h" + +#define MSM_STREAM_FLAG_STEREO 0x1 +#define MSM_STREAM_FLAG_LOOP 0x2 + +#define MSM_FILE_VERSION 2 +#define MSM_PDT_FILE_VERSION 1 + +typedef struct MSMHeader_s { + s32 magic; + s32 version; + s32 endOfs; + s32 endSize; + s32 infoOfs; + u32 infoSize; + s32 auxParamOfs; + u32 auxParamSize; + s32 grpInfoOfs; + s32 grpInfoSize; + s32 musOfs; + s32 musSize; + s32 seOfs; + s32 seSize; + s32 grpDataOfs; + s32 grpDataSize; + s32 sampOfs; + s32 sampSize; + s32 dummyMusOfs; + s32 dummyMusSize; + s32 grpSetOfs; + s32 grpSetSize; + s32 pad[2]; +} MSM_HEADER; // sizeof 0x60 + +typedef struct MSMInfo_s { + s8 voices; + s8 music; + s8 sfx; + s8 grpMax; + s16 musMax; + s16 seMax; + s8 musChanMax; + s8 stackDepthA; + s8 stackDepthB; + s8 surroundF; + s8 unkC[2]; + s8 auxParamA; + s8 auxParamB; + s32 minMem; + s32 aramSize; + s32 grpBufSizeA; + s32 grpBufSizeB; + s32 dummyMusSize; + s32 unk24; + s8 baseGrpNum; + s8 baseGrp[23]; +} MSM_INFO; + +typedef struct { + u32 tempDisableFX; + f32 coloration; + f32 mix; + f32 time; + f32 damping; + f32 preDelay; + f32 crosstalk; +} MSM_AUXPARAM_REVERBHI; + +typedef struct { + u32 tempDisableFX; + f32 coloration; + f32 mix; + f32 time; + f32 damping; + f32 preDelay; + f32 crosstalk; +} MSM_AUXPARAM_REVERBSTD; + +typedef struct { + u32 baseDelay; + u32 variation; + u32 period; +} MSM_AUXPARAM_CHORUS; + +typedef struct { + u32 delay[3]; + u32 feedback[3]; + u32 output[3]; +} MSM_AUXPARAM_DELAY; + +typedef struct MSMAuxParam_s { + s8 type; + u8 pad[3]; + union { + MSM_AUXPARAM_REVERBHI revHi; + MSM_AUXPARAM_REVERBSTD revStd; + MSM_AUXPARAM_CHORUS chorus; + MSM_AUXPARAM_DELAY delay; + }; +} MSM_AUXPARAM; + +typedef struct MSMSe_s { + SND_GROUPID gid; + SND_FXID fxId; + s8 vol; + s8 pan; + s16 pitchBend; + u8 span; + u8 reverb; + u8 chorus; + s8 emitterF; + s8 emiComp; + u8 pad[3]; +} MSM_SE; + +typedef struct MSMMus_s { + SND_GROUPID sgid; + SND_SONGID sid; + s32 songOfs; + s32 songSize; + s8 songGrp; + s8 vol; + u8 pad[2]; +} MSM_MUS; // Size 0x10 + +typedef struct MSMGrpHead_s { + s32 poolOfs; + s32 projOfs; + s32 sdirOfs; + s32 sngOfs; +} MSM_GRP_HEAD; + +typedef struct MSMGrpInfo_s { + SND_GROUPID gid; + s8 stackNo; + s8 subGrpId; + s32 dataOfs; + s32 dataSize; + s32 sampOfs; + s32 sampSize; + u8 pad[12]; +} MSM_GRP_INFO; + +typedef struct MSMGrpSet_s { + s8 numGrpSet; + s8 grpSetW; + s8 data[1]; +} MSM_GRP_SET; + +typedef struct MSMStreamHeader_s { + s16 version; + s16 streamMax; + s32 chanMax; + s32 sampleFrq; + s32 maxBufs; + u32 streamPackListOfs; + u32 adpcmParamOfs; + u32 streamPackOfs; + u32 sampleOfs; +} MSM_STREAM_HEADER; + +typedef struct MSMStream_s { + s32 sampleOfs; + s16 adpcmParamIdx; + u16 pad; +} MSM_STREAM; + +typedef struct MSMStreamPack_s { + s8 flag; + s8 vol; + s8 pan; + s8 span; + s8 auxA; + s8 auxB; + u16 frq; + u32 loopOfsEnd; + u32 loopOfsStart; + MSM_STREAM stream[2]; +} MSM_STREAM_PACK; // Size unknown + +#endif diff --git a/include/msm/msmmem.h b/include/msm/msmmem.h index 1acc500a..30d73f75 100644 --- a/include/msm/msmmem.h +++ b/include/msm/msmmem.h @@ -3,8 +3,8 @@ #include "dolphin/types.h" -void msmMemFree(void *); -void *msmMemAlloc(u32); -void msmMemInit(void *, u32); +void msmMemFree(void *ptr); +void *msmMemAlloc(u32 sze); +void msmMemInit(void *ptr, u32 size); #endif diff --git a/include/msm/msmmus.h b/include/msm/msmmus.h index 6428b067..586af22c 100644 --- a/include/msm/msmmus.h +++ b/include/msm/msmmus.h @@ -16,6 +16,6 @@ s32 msmMusPause(int musNo, BOOL pause, s32 speed); void msmMusStopAll(BOOL checkGrp, s32 speed); s32 msmMusStop(int musNo, s32 speed); int msmMusPlay(int musId, MSM_MUSPARAM* musParam); -s32 msmMusInit(sysData* arg0, DVDFileInfo* arg1); +s32 msmMusInit(MSM_SYS* arg0, DVDFileInfo* arg1); #endif diff --git a/include/msm/msmse.h b/include/msm/msmse.h index feb1e462..b765a771 100644 --- a/include/msm/msmse.h +++ b/include/msm/msmse.h @@ -5,7 +5,7 @@ #include "msm/msmsys.h" void msmSePeriodicProc(void); -MSMSE* msmSeGetIndexPtr(s32 arg0); +MSM_SE* msmSeGetIndexPtr(s32 arg0); void msmSeDelListener(void); s32 msmSeUpdataListener(Vec* pos, Vec* heading); s32 msmSeSetListener(Vec* pos, Vec* heading, float sndDist, float sndSpeed, MSM_SELISTENER* listener); @@ -18,6 +18,6 @@ void msmSePauseAll(BOOL pause, s32 speed); void msmSeStopAll(BOOL checkGrp, s32 speed); s32 msmSeStop(int seNo, s32 speed); int msmSePlay(int seId, MSM_SEPARAM* param); -s32 msmSeInit(sysData* arg0, DVDFileInfo* arg1); +s32 msmSeInit(MSM_SYS* arg0, DVDFileInfo* arg1); #endif diff --git a/include/msm/msmstream.h b/include/msm/msmstream.h index fb1bd9cd..b86fcaad 100644 --- a/include/msm/msmstream.h +++ b/include/msm/msmstream.h @@ -13,10 +13,6 @@ void msmStreamSetOutputMode(s32 arg0); void msmStreamAmemFree(void); s32 msmStreamAmemAlloc(void); s32 msmStreamInit(char* arg0); -void msmStreamPauseOff(s32 arg0); -void msmStreamPauseOn(s32 streamNo, s32 arg1); -s32 msmStreamPackStartStereo(s32 arg0, MSM_STREAMPARAM* arg1, s32 arg2); -s32 msmStreamPackStartMono(s32 arg0, MSM_STREAMPARAM* arg1, s32 arg2); -void msmStreamSlotOff(s32 streamNo); + #endif diff --git a/include/msm/msmsys.h b/include/msm/msmsys.h index 3ed5e134..6a55a4c6 100755 --- a/include/msm/msmsys.h +++ b/include/msm/msmsys.h @@ -5,167 +5,63 @@ #include "dolphin.h" -typedef struct { - u32 tempDisableFX; - f32 coloration; - f32 mix; - f32 time; - f32 damping; - f32 preDelay; - f32 crosstalk; -} SubStructRev; +#define MSM_AUX_REVERBHI 0 +#define MSM_AUX_REVERBSTD 1 +#define MSM_AUX_CHORUS 2 +#define MSM_AUX_DELAY 3 -typedef struct { - u32 baseDelay; - u32 variation; - u32 period; -} SubStructCh; - -typedef struct { - u32 delay[3]; - u32 feedback[3]; - u32 output[3]; -} SubDelay; - -typedef struct _unkSubStruct { - s8 unk0; - union { - SubStructRev rev; - SubStructCh ch; - SubDelay delay; - }; -} unkSubStruct; +#define MSM_AUXNO_NULL -2 +#define MSM_AUXNO_UNSET -1 typedef union { SND_AUX_REVERBHI revHi; SND_AUX_REVERBSTD revStd; - SND_AUX_CHORUS ch; + SND_AUX_CHORUS chorus; SND_AUX_DELAY delay; -} UnkSndAuxUnion; // Size 0x1E0 +} MSM_AUX; // Size 0x1E0 -typedef struct _unkSubStruct3 { - char unk[0x4]; - s32 unk4; - char unk8[0x8]; - s32 unk10; // offset - u32 unk14; // length - s32 unk18; // offset - u32 unk1C; // length - s32 unk20; - s32 unk24; - s32 unk28; - s32 unk2C; - s32 unk30; - s32 unk34; - s32 unk38; - char unk3C[4]; - s32 unk40; - char unk44[4]; - s32 unk48; - char unk4C[4]; - s32 unk50; - s32 unk54; - char unk58[8]; -} unkSubStruct3; // sizeof 0x60 +typedef struct MSMGrpWork_s { + s8 grpId; + s8 baseGrpF; + u32 num; + void *buf; +} MSM_GRP_STACK; -typedef struct _unkStruct3 { - s32 unk0; - s32 unk4; - s32 unk8; -} unkStruct3; - -typedef struct _sndInitData { - s8 unk0; - s8 unk1; - s8 unk2; - s8 unk3; - s16 unk4; - s16 unk6; - s8 unk8; - s8 unk9; - s8 unkA; - s8 unkB; - char unkC[2]; - s8 unkE; - s8 unkF; - u32 unk10; - s32 unk14; - s32 unk18; - s32 unk1C; - s32 unk20; - char unk24[4]; - s8 unk28; - s8 unk29[10]; // size unknown -} sndInitData; - -typedef struct { - /* 0x00 */ s8 unk00; - /* 0x01 */ s8 unk01; - /* 0x02 */ char unk02[2]; - /* 0x04 */ u32 unk04; - /* 0x08 */ void *unk08; -} UnkStructSys43C; // Size 0xC - -typedef struct _unkStruct4 { - SND_GROUPID unk0; - s8 unk2; - s8 unk3; - s32 unk4; - s32 unk8; - s32 unkC; - s32 unk10; - char unk14[0xC]; -} unkStruct4; // Size 0x20 - -typedef struct { - /* 0x00 */ s8 unk00; - /* 0x01 */ s8 unk01; - /* 0x02 */ s8 unk02[1]; // unknown array length -} UnkSys3F0Struct; // Size unknown - -typedef struct _sysData { - s32 unk0; - s8 unk4; +typedef struct MSMSys_s { + s32 msmEntryNum; + s8 outputMode; s8 unk5; s8 unk6; - s8 unk7; - s32 unk8; - unkSubStruct3 *unkC; - sndInitData *unk10; - unkSubStruct *unk14; - s8 unk18[2]; - s8 unk1A; - s8 unk1B; - UnkSndAuxUnion unk1C[2]; // 0: userA, 1: userB - s8 unk3DC; - char unk3DD[3]; - s32 unk3E0; - u32 unk3E4; - u32 unk3E8; - unkStruct4 *unk3EC; - UnkSys3F0Struct *unk3F0; - s8 unk3F4; - unkStruct3 *unk3F8[1]; // unknown array length - char unk3FC[0x38]; - s8 unk434; - u8 unk435; - s8 unk436; - char unk437[1]; - void *unk438; - UnkStructSys43C unk43C[1]; // unknown array length - char unk448[0x24]; - s8 unk46C; - u8 unk46D; - s8 unk46E; - char unk46F[1]; - void *unk470; - UnkStructSys43C unk474[1]; // unknown array length - char unk480[0x6C]; - s32 unk4EC; - BOOL unk4F0; - AIDCallback unk4F4; - s32 unk4F8; -} sysData; + s8 arInitF; + s32 aramP; + MSM_HEADER *header; + MSM_INFO *info; + MSM_AUXPARAM *auxParam; + s8 auxParamNo[2]; + MSM_AUX aux[2]; // 0: userA, 1: userB + s8 grpMax; + s32 grpNum; + u32 sampSize; + u32 sampSizeBase; + MSM_GRP_INFO *grpInfo; + MSM_GRP_SET *grpSet; + s8 baseGrpNum; + MSM_GRP_HEAD *grpData[15]; + s8 grpStackAMax; + u8 grpStackADepth; + s8 grpStackAOfs; + void *grpBufA; + MSM_GRP_STACK grpStackA[4]; + s8 grpStackBMax; + u8 grpStackBDepth; + s8 grpStackBOfs; + void *grpBufB; + MSM_GRP_STACK grpStackB[10]; + s32 irqDepth; + BOOL irqState; + AIDCallback oldAIDCallback; + s32 timer; +} MSM_SYS; s32 msmSysSearchGroupStack(s32 arg0, s32 arg1); s32 msmSysGroupInit(DVDFileInfo *arg0); @@ -176,8 +72,7 @@ void *msmSysGetGroupDataPtr(s32 arg0); BOOL msmSysCheckLoadGroupID(s32 arg0); void msmSysRegularProc(void); s32 msmSysGetOutputMode(void); -s32 msmSysSetOutputMode(SND_OUTPUTMODE mode); -s32 msmSysSetAux(s32 arg0, s32 arg1); +BOOL msmSysSetOutputMode(SND_OUTPUTMODE mode); s32 msmSysGetSampSize(BOOL baseGrp); s32 msmSysDelGroupAll(void); s32 msmSysDelGroupBase(s32 grpNum); diff --git a/src/msm/msmmem.c b/src/msm/msmmem.c index cbe6e2be..1a587589 100644 --- a/src/msm/msmmem.c +++ b/src/msm/msmmem.c @@ -1,133 +1,132 @@ #include "msm/msmmem.h" -typedef struct _unkStruct { - struct _unkStruct* prev; - struct _unkStruct* next; - u32 unk8; - u32 unkC; - void* unk10; - void* unk14; - char unk18[0x8]; -} unkStruct; +typedef struct MSMBlock_s { + struct MSMBlock_s* prev; + struct MSMBlock_s* next; + u32 freeSize; + u32 size; + void* ptr; + char pad[12]; +} MSMBLOCK; -typedef struct _unkMemStruct { - unkStruct* unk0; - u32 unk4; - unkStruct* unk8; - unkStruct unkC; -} unkMemStruct; +typedef struct MSMMem_s { + void *ptr; + u32 size; + MSMBLOCK *head; + MSMBLOCK first; +} MSM_MEM; -static unkMemStruct mem; +static MSM_MEM mem; -void msmMemFree(void* arg0) { - unkStruct* temp_r6; - unkStruct* temp_r7; - unkStruct* temp_r8; - unkStruct* temp_r5; - unkStruct* temp; +void msmMemFree(void* ptr) { + MSMBLOCK* block; + MSMBLOCK* blockPrev; + MSMBLOCK* blockNext; + MSMBLOCK* blockHead; + MSMBLOCK* base; - temp = arg0; + base = ptr; - temp_r6 = &temp[-1]; - temp_r7 = temp_r6->prev; - temp_r8 = temp_r6->next; - if (mem.unk0 > temp_r6 || ((u32)mem.unk0 + (u32)mem.unk4) <= (u32)temp_r6) { + block = &base[-1]; + blockPrev = block->prev; + blockNext = block->next; + if (mem.ptr > block || ((u32)mem.ptr + (u32)mem.size) <= (u32)block) { return; } - if ((temp_r7->next != temp_r6) || (temp_r6->unk10 != arg0) || (temp_r8 && (temp_r8->prev != temp_r6))) { + if ((blockPrev->next != block) || (block->ptr != ptr) || (blockNext && (blockNext->prev != block))) { return; } - temp_r7->unkC += temp_r6->unk8 + temp_r6->unkC; - temp_r7->next = temp_r8; - temp_r5 = mem.unk8; - if ((temp_r5 == temp_r6) || (temp_r5->unkC < temp_r7->unkC)) { - mem.unk8 = temp_r7; + blockPrev->size += block->freeSize + block->size; + blockPrev->next = blockNext; + blockHead = mem.head; + if ((blockHead == block) || (blockHead->size < blockPrev->size)) { + mem.head = blockPrev; } - if (temp_r8) { - temp_r8->prev = temp_r7; - if (mem.unk8->unkC < temp_r8->unkC) { - mem.unk8 = temp_r8; + if (blockNext) { + blockNext->prev = blockPrev; + if (mem.head->size < blockNext->size) { + mem.head = blockNext; } } } -void* msmMemAlloc(u32 arg0) { - s32 temp_r0; - u32 var_r5; - u32 var_r7; - unkStruct* temp_r5; - unkStruct* var_r8; - unkStruct* temp_r9; +void* msmMemAlloc(u32 size) { + s32 alignOfs; + u32 freeSize; + u32 allocSize; + MSMBLOCK* block; + MSMBLOCK* blockPrev; + MSMBLOCK* blockNext; - var_r7 = arg0 + 0x20; - temp_r0 = var_r7 & 0x1F; - if (temp_r0 != 0) { - var_r7 += 0x20 - temp_r0; + allocSize = size + 0x20; + alignOfs = allocSize & 0x1F; + if (alignOfs) { + allocSize += 0x20 - alignOfs; } - if (mem.unk8->unkC >= var_r7) { - var_r8 = mem.unk8; + if (mem.head->size >= allocSize) { + blockPrev = mem.head; } else { - var_r8 = &mem.unkC; + blockPrev = &mem.first; do { - if (var_r8->unkC >= var_r7) break; - var_r8 = var_r8->next; - } while (var_r8); - if (!var_r8) { + if (blockPrev->size >= allocSize) break; + blockPrev = blockPrev->next; + } while (blockPrev); + if (!blockPrev) { return NULL; } } - var_r5 = var_r8->unk8; - if (var_r5 != 0) { - var_r5 -= 0x20; + freeSize = blockPrev->freeSize; + if (freeSize != 0) { + freeSize -= 0x20; } - temp_r5 = (void*)((u32)var_r8->unk10 + (var_r5)); - temp_r9 = var_r8->next; - if ((mem.unk0 > temp_r5) || ((void*)((u32)mem.unk0 + (u32)mem.unk4) <= temp_r5)) { + block = (void*)((u32)blockPrev->ptr + (freeSize)); + blockNext = blockPrev->next; + if ((mem.ptr > block) || ((void*)((u32)mem.ptr + (u32)mem.size) <= block)) { return NULL; } - temp_r5->unk8 = var_r7; - temp_r5->unkC = var_r8->unkC - var_r7; - temp_r5->unk10 = (temp_r5 + 1); - temp_r5->prev = var_r8; - temp_r5->next = temp_r9; - mem.unk8 = temp_r5; - var_r8->unkC = 0; - var_r8->next = temp_r5; - if (temp_r9) { - temp_r9->prev = temp_r5; - if (mem.unk8->unkC < temp_r9->unkC) { - mem.unk8 = temp_r9; + block->freeSize = allocSize; + block->size = blockPrev->size - allocSize; + block->ptr = (block + 1); + block->prev = blockPrev; + block->next = blockNext; + mem.head = block; + blockPrev->size = 0; + blockPrev->next = block; + if (blockNext) { + blockNext->prev = block; + if (mem.head->size < blockNext->size) { + mem.head = blockNext; } } - return temp_r5->unk10; + return block->ptr; } -void msmMemInit(void* arg0, u32 arg1) { - unkStruct* temp_r7; - s32 temp; +void msmMemInit(void* ptr, u32 size) { + MSMBLOCK* block; + s32 ofs; - temp = (s32)arg0 & 0x1F; - switch (temp) { + ofs = (s32)ptr & 0x1F; + switch (ofs) { default: - temp = 0x20 - temp; + ofs = 0x20 - ofs; break; case 0: - temp = 0; + ofs = 0; break; } - mem.unk0 = (void*)((s32)arg0 + temp); - temp = (s32)arg0 + arg1; - mem.unk4 = ((temp - (s32)mem.unk0) & ~0x1F); - temp_r7 = &mem.unkC; - temp_r7->unk8 = 0; - temp_r7->unkC = mem.unk4; - temp_r7->unk10 = mem.unk0; - temp_r7->prev = NULL; - temp_r7->next = NULL; - mem.unk8 = &mem.unkC; + mem.ptr = (void*)((s32)ptr + ofs); + ofs = (s32)ptr + size; + mem.size = ((ofs - (s32)mem.ptr) & ~0x1F); + block = &mem.first; + block->freeSize = 0; + block->size = mem.size; + block->ptr = mem.ptr; + block->prev = NULL; + block->next = NULL; + mem.head = &mem.first; } diff --git a/src/msm/msmmus.c b/src/msm/msmmus.c index 3b70662d..061da27a 100755 --- a/src/msm/msmmus.c +++ b/src/msm/msmmus.c @@ -1,150 +1,127 @@ #include "msm/msmmus.h" #include "msm/msmmem.h" -typedef struct { - /* 0x00 */ s16 unk00; - /* 0x02 */ s8 unk02; - /* 0x03 */ s8 unk03; - /* 0x04 */ s8 unk04; - /* 0x05 */ s8 unk05; - /* 0x06 */ char unk06[2]; - /* 0x08 */ SND_SEQID unk08; - /* 0x0C */ void* unk0C; - /* 0x10 */ void* unk10; - /* 0x14 */ volatile s32 unk14; - /* 0x18 */ s32 unk18; - /* 0x1C */ s8 unk1C; - /* 0x1D */ char unk1D[3]; - /* 0x20 */ volatile s32 unk20; - /* 0x24 */ s32 unk24; - /* 0x28 */ s8 unk28; - /* 0x29 */ char unk29[3]; - /* 0x2C */ volatile s32 unk2C; - /* 0x30 */ s32 unk30; - /* 0x34 */ char unk34[1]; - /* 0x35 */ volatile s8 unk35; - /* 0x36 */ s8 unk36; - /* 0x37 */ char unk37[1]; - /* 0x38 */ SND_PLAYPARA unk38; -} msmMusStruct00; // Size 0x58 +typedef struct MusPlayer_s { + /* 0x00 */ s16 musId; + /* 0x02 */ s8 baseVol; + /* 0x03 */ s8 vol; + /* 0x04 */ s8 status; + /* 0x05 */ s8 busyF; + /* 0x08 */ SND_SEQID seqId; + /* 0x0C */ void* songBuf; + /* 0x10 */ void* arrfile; + /* 0x14 */ volatile s32 fadeMaxTime; + /* 0x18 */ s32 fadeTime; + /* 0x1C */ s8 fadeVol; + /* 0x20 */ volatile s32 pauseOnMaxTime; + /* 0x24 */ s32 pauseOnTime; + /* 0x28 */ s8 pauseOnVol; + /* 0x2C */ volatile s32 pauseOffMaxTime; + /* 0x30 */ s32 pauseOffTime; + /* 0x28 */ s8 pauseOffVol; + /* 0x35 */ volatile s8 startVol; + /* 0x36 */ s8 targetVol; + /* 0x38 */ SND_PLAYPARA playPara; +} MUS_PLAYER; // Size 0x58 -typedef struct { - /* 0x00 */ u16 unk00; - /* 0x02 */ s16 unk02; - /* 0x04 */ s32 unk04; - /* 0x08 */ s32 unk08; - /* 0x0C */ s8 unk0C; - /* 0x0D */ s8 unk0D; - /* 0x0E */ char unk0E[2]; -} msmMusStruct01; // Size 0x10 +static struct { + /* 0x000 */ s16 musMax; + /* 0x002 */ s8 musChanMax; + /* 0x003 */ s8 baseGrpNumPlay; + /* 0x004 */ s8 numPlay; + /* 0x008 */ s32 msmEntryNum; + /* 0x00C */ MSM_MUS *musData; + /* 0x010 */ s32 dummyMusOfs; + /* 0x014 */ void* musBuf; + /* 0x018 */ MUS_PLAYER player[4]; +} mus; -typedef struct { - /* 0x000 */ s16 unk00; - /* 0x002 */ s8 unk02; - /* 0x003 */ s8 unk03; - /* 0x004 */ s8 unk04; - /* 0x005 */ char unk05[3]; - /* 0x008 */ s32 unk08; - /* 0x00C */ msmMusStruct01* unk0C; - /* 0x010 */ s32 unk10; - /* 0x014 */ void* unk14; - /* 0x018 */ msmMusStruct00 unk18[1]; // unknown length - /* 0x01C */ char unk70[0x108]; -} msmMusStruct02; // Size 0x178 +static void msmMusPauseSub(MUS_PLAYER* player, BOOL pause, s32 speed) { + s32 time; -typedef struct { - /* 0x00 */ char unk00[0xC]; - /* 0x0C */ s32 unk0C; -} UnkGroupDataPtr; // Size unknown - -static msmMusStruct02 mus; - -static void msmMusPauseSub(msmMusStruct00* arg0, BOOL pause, s32 speed) { - s32 temp_r30; - - temp_r30 = speed / 15; + time = speed / 15; if (pause) { - if (arg0->unk04 == 2) { - if (temp_r30 != 0) { - arg0->unk24 = temp_r30; - arg0->unk20 = temp_r30; - arg0->unk28 = 0x7F; + if (player->status == MSM_MUS_PLAY) { + if (time != 0) { + player->pauseOnTime = time; + player->pauseOnMaxTime = time; + player->pauseOnVol = 127; } else { - sndSeqPause(arg0->unk08); - arg0->unk28 = 0; + sndSeqPause(player->seqId); + player->pauseOnVol = 0; } - arg0->unk04 = 3; + player->status = MSM_MUS_PAUSE; } } else { - if (arg0->unk04 == 3) { - if (temp_r30 != 0) { - if (arg0->unk20 != 0) { - arg0->unk20 = -temp_r30; + if (player->status == MSM_MUS_PAUSE) { + if (time != 0) { + if (player->pauseOnMaxTime != 0) { + player->pauseOnMaxTime = -time; } else { - sndSeqContinue(arg0->unk08); - arg0->unk20 = -temp_r30; - arg0->unk24 = 0; - arg0->unk28 = 0; + sndSeqContinue(player->seqId); + player->pauseOnMaxTime = -time; + player->pauseOnTime = 0; + player->pauseOnVol = 0; } } else { - sndSeqContinue(arg0->unk08); - arg0->unk28 = 0x7F; - sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0); + sndSeqContinue(player->seqId); + player->pauseOnVol = 127; + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); } - arg0->unk04 = 2; + player->status = MSM_MUS_PLAY; } } } -static void msmMusPauseFade(msmMusStruct00* arg0) { - if (arg0->unk20 > 0) { - if (--arg0->unk24 == 0) { - arg0->unk20 = 0; - arg0->unk28 = 0; - sndSeqPause(arg0->unk08); +static void msmMusPauseFade(MUS_PLAYER *player) { + if (player->pauseOnMaxTime > 0) { + if (--player->pauseOnTime == 0) { + player->pauseOnMaxTime = 0; + player->pauseOnVol = 0; + sndSeqPause(player->seqId); } else { - arg0->unk28 = arg0->unk24 * 0x7F / arg0->unk20; - sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0); + player->pauseOnVol = player->pauseOnTime * 127 / player->pauseOnMaxTime; + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); } - } else if (arg0->unk20 < 0) { - if (++arg0->unk24 >= -arg0->unk20) { - arg0->unk20 = 0; - arg0->unk28 = 0x7F; + } else if (player->pauseOnMaxTime < 0) { + if (++player->pauseOnTime >= -player->pauseOnMaxTime) { + player->pauseOnMaxTime = 0; + player->pauseOnVol = 127; } else { - arg0->unk28 = arg0->unk24 * 0x7F / -arg0->unk20; + player->pauseOnVol = player->pauseOnTime * 127 / -player->pauseOnMaxTime; } - sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0); + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); } } -static void msmMusFade(msmMusStruct00* arg0) { - if (arg0->unk04 != 2) { +static void msmMusFade(MUS_PLAYER *player) { + if (player->status != MSM_MUS_PLAY) { return; } - if (arg0->unk14 > 0) { - if (--arg0->unk18 == 0) { - if (arg0->unk04 != 0) { - arg0->unk14 = 0; - if (arg0->unk14 != 0) { - arg0->unk18 = arg0->unk14; - arg0->unk1C = 0x7F; + if (player->fadeMaxTime > 0) { + if (--player->fadeTime == 0) { + if (player->status != 0) { + player->fadeMaxTime = 0; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; } else { - sndSeqStop(arg0->unk08); - arg0->unk04 = 1; + sndSeqStop(player->seqId); + player->status = 1; } } } else { - arg0->unk1C = arg0->unk18 * 0x7F / arg0->unk14; - sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0); + player->fadeVol = player->fadeTime * 127 / player->fadeMaxTime; + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); } - } else if (arg0->unk14 < 0) { - if (++arg0->unk18 >= -arg0->unk14) { - arg0->unk14 = 0; - arg0->unk1C = 0x7F; + } else if (player->fadeMaxTime < 0) { + if (++player->fadeTime >= -player->fadeMaxTime) { + player->fadeMaxTime = 0; + player->fadeVol = 127; } else { - arg0->unk1C = arg0->unk18 * 0x7F / -arg0->unk14; + player->fadeVol = player->fadeTime * 127 / -player->fadeMaxTime; } - sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0); + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); } } @@ -152,54 +129,54 @@ void msmMusFdoutEnd(void) { } void msmMusPeriodicProc(void) { - s32 var_r26; - msmMusStruct00* temp_r25; + s32 i; + MUS_PLAYER* player; - mus.unk04 = mus.unk03 = 0; - for (var_r26 = 0; var_r26 < mus.unk02; var_r26++) { - temp_r25 = &mus.unk18[var_r26]; - if (temp_r25->unk05 != 0) { + mus.numPlay = mus.baseGrpNumPlay = 0; + for (i = 0; i < mus.musChanMax; i++) { + player = &mus.player[i]; + if (player->busyF != FALSE) { continue; } - switch (temp_r25->unk04) { - case 1: - case 2: - if (sndSeqGetValid(temp_r25->unk08) == FALSE) { - temp_r25->unk04 = 0; + switch (player->status) { + case MSM_MUS_STOP: + case MSM_MUS_PLAY: + if (sndSeqGetValid(player->seqId) == FALSE) { + player->status = 0; } break; } - if (temp_r25->unk04 == 0) { + if (player->status == MSM_MUS_DONE) { continue; } - if (msmSysCheckBaseGroup(mus.unk0C[temp_r25->unk00].unk00) != 0) { - mus.unk04++; + if (msmSysCheckBaseGroup(mus.musData[player->musId].sgid) != 0) { + mus.numPlay++; } else { - mus.unk03++; + mus.baseGrpNumPlay++; } - msmMusPauseFade(temp_r25); - if (temp_r25->unk04 == 2 && temp_r25->unk2C != 0) { - if (++temp_r25->unk30 >= temp_r25->unk2C) { - temp_r25->unk2C = 0; - temp_r25->unk02 = temp_r25->unk36; + msmMusPauseFade(player); + if (player->status == MSM_MUS_PLAY && player->pauseOffMaxTime != 0) { + if (++player->pauseOffTime >= player->pauseOffMaxTime) { + player->pauseOffMaxTime = 0; + player->baseVol = player->targetVol; } else { - temp_r25->unk02 = temp_r25->unk35 + temp_r25->unk30 * (temp_r25->unk36 - temp_r25->unk35) / temp_r25->unk2C; + player->baseVol = player->startVol + player->pauseOffTime * (player->targetVol - player->startVol) / player->pauseOffMaxTime; } - sndSeqVolume(temp_r25->unk02 * temp_r25->unk03 * temp_r25->unk1C * temp_r25->unk28 / 2048383, 0, temp_r25->unk08, 0); + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); } - msmMusFade(temp_r25); + msmMusFade(player); } } s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl) { - msmMusStruct00* temp_ptr; + MUS_PLAYER *player; - if (musNo < 0 || musNo >= mus.unk02) { + if (musNo < 0 || musNo >= mus.musChanMax) { return MSM_ERR_OUTOFMUS; } - temp_ptr = &mus.unk18[musNo]; - if (sndSeqGetValid(temp_ptr->unk08) == TRUE) { - return sndSeqGetMidiCtrl(temp_ptr->unk08, channel & 0xF, ctrl); + player = &mus.player[musNo]; + if (sndSeqGetValid(player->seqId) == TRUE) { + return sndSeqGetMidiCtrl(player->seqId, channel & 0xF, ctrl); } return 0; } @@ -207,135 +184,135 @@ s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl) { s32 msmMusGetNumPlay(BOOL baseGrp) { switch (baseGrp) { case FALSE: - return mus.unk03 + mus.unk04; + return mus.baseGrpNumPlay + mus.numPlay; default: - return mus.unk03; + return mus.baseGrpNumPlay; } } s32 msmMusGetStatus(int musNo) { - if (musNo < 0 || musNo >= mus.unk02) { + if (musNo < 0 || musNo >= mus.musChanMax) { return MSM_ERR_OUTOFMUS; } - return mus.unk18[musNo].unk04; + return mus.player[musNo].status; } -void msmMusSetMasterVolume(s32 arg0) { - sndMasterVolume(arg0 & 0x7F, 0, 1, 0); +void msmMusSetMasterVolume(s32 vol) { + sndMasterVolume(vol & 127, 0, 1, 0); } -s32 msmMusSetParam(s32 arg0, MSM_MUSPARAM* arg1) { - msmMusStruct00* temp_r31; +s32 msmMusSetParam(s32 musNo, MSM_MUSPARAM *param) { + MUS_PLAYER* player; - if (arg0 < 0 || arg0 >= mus.unk02) { + if (musNo < 0 || musNo >= mus.musChanMax) { return MSM_ERR_OUTOFMUS; } - temp_r31 = &mus.unk18[arg0]; - if (arg1->flag & MSM_MUSPARAM_VOL) { - temp_r31->unk2C = arg1->fadeSpeed / 15; - if (temp_r31->unk2C != 0) { - temp_r31->unk05 = 1; - temp_r31->unk30 = 0; - temp_r31->unk35 = temp_r31->unk02; - temp_r31->unk36 = arg1->vol & 0x7F; - temp_r31->unk05 = 0; + player = &mus.player[musNo]; + if (param->flag & MSM_MUSPARAM_VOL) { + player->pauseOffMaxTime = param->fadeSpeed / 15; + if (player->pauseOffMaxTime != 0) { + player->busyF = 1; + player->pauseOffTime = 0; + player->startVol = player->baseVol; + player->targetVol = param->vol & 127; + player->busyF = 0; } else { - temp_r31->unk02 = arg1->vol & 0x7F; - sndSeqVolume(temp_r31->unk02 * temp_r31->unk03 * temp_r31->unk1C * temp_r31->unk28 / 2048383, 0, temp_r31->unk08, 0); + player->baseVol = param->vol & 127; + sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0); } } - if (arg1->flag & MSM_MUSPARAM_SPEED) { - sndSeqSpeed(temp_r31->unk08, (arg1->speed << 8) / 100); + if (param->flag & MSM_MUSPARAM_SPEED) { + sndSeqSpeed(player->seqId, (param->speed << 8) / 100); } return 0; } void msmMusPauseAll(BOOL pause, s32 speed) { s32 var_r27; - msmMusStruct00* temp_r26; + MUS_PLAYER* player; - for (var_r27 = 0; var_r27 < mus.unk02; var_r27++) { - temp_r26 = &mus.unk18[var_r27]; - if (temp_r26->unk04 != 0) { - temp_r26->unk05 = 1; - msmMusPauseSub(temp_r26, pause, speed); - temp_r26->unk05 = 0; + for (var_r27 = 0; var_r27 < mus.musChanMax; var_r27++) { + player = &mus.player[var_r27]; + if (player->status != MSM_MUS_DONE) { + player->busyF = TRUE; + msmMusPauseSub(player, pause, speed); + player->busyF = FALSE; } } } s32 msmMusPause(int musNo, BOOL pause, s32 speed) { - msmMusStruct00* temp_r31; + MUS_PLAYER *player; - if (musNo < 0 || musNo >= mus.unk02) { + if (musNo < 0 || musNo >= mus.musChanMax) { return MSM_ERR_OUTOFMUS; } - temp_r31 = &mus.unk18[musNo]; - temp_r31->unk05 = 1; - msmMusPauseSub(temp_r31, pause, speed); - temp_r31->unk05 = 0; + player = &mus.player[musNo]; + player->busyF = TRUE; + msmMusPauseSub(player, pause, speed); + player->busyF = FALSE; return 0; } void msmMusStopAll(BOOL checkGrp, s32 speed) { - s32 var_r28; - msmMusStruct00* temp_r27; + s32 i; + MUS_PLAYER *player; - for (var_r28 = 0; var_r28 < mus.unk02; var_r28++) { - temp_r27 = &mus.unk18[var_r28]; - if (temp_r27->unk04 == 0) { + for (i = 0; i < mus.musChanMax; i++) { + player = &mus.player[i]; + if (player->status == 0) { continue; } - temp_r27->unk05 = 1; + player->busyF = TRUE; switch (checkGrp) { case FALSE: - if (temp_r27->unk04 != 0) { - temp_r27->unk14 = speed / 15; - if (temp_r27->unk14 != 0) { - temp_r27->unk18 = temp_r27->unk14; - temp_r27->unk1C = 0x7F; + if (player->status != 0) { + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; } else { - sndSeqStop(temp_r27->unk08); - temp_r27->unk04 = 1; + sndSeqStop(player->seqId); + player->status = 1; } } break; default: - if (msmSysCheckBaseGroup(mus.unk0C[temp_r27->unk00].unk00) == 0 && temp_r27->unk04 != 0) { - temp_r27->unk14 = speed / 15; - if (temp_r27->unk14 != 0) { - temp_r27->unk18 = temp_r27->unk14; - temp_r27->unk1C = 0x7F; + if (msmSysCheckBaseGroup(mus.musData[player->musId].sgid) == 0 && player->status != 0) { + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; } else { - sndSeqStop(temp_r27->unk08); - temp_r27->unk04 = 1; + sndSeqStop(player->seqId); + player->status = 1; } } break; } - temp_r27->unk05 = 0; + player->busyF = FALSE; } } s32 msmMusStop(int musNo, s32 speed) { - msmMusStruct00* temp_r30; + MUS_PLAYER* player; - if (musNo < 0 || musNo >= mus.unk02) { + if (musNo < 0 || musNo >= mus.musChanMax) { return MSM_ERR_OUTOFMUS; } - temp_r30 = &mus.unk18[musNo]; - temp_r30->unk05 = 1; - if (temp_r30->unk04 != 0) { - temp_r30->unk14 = speed / 15; - if (temp_r30->unk14 != 0) { - temp_r30->unk18 = temp_r30->unk14; - temp_r30->unk1C = 0x7F; + player = &mus.player[musNo]; + player->busyF = TRUE; + if (player->status != 0) { + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; } else { - sndSeqStop(temp_r30->unk08); - temp_r30->unk04 = 1; + sndSeqStop(player->seqId); + player->status = MSM_MUS_STOP; } } - temp_r30->unk05 = 0; + player->busyF = FALSE; return 0; } @@ -343,124 +320,124 @@ int msmMusPlay(int musId, MSM_MUSPARAM* musParam) { s32 var_r30; int var_r29; s32 temp_r3_3; - UnkGroupDataPtr* temp_r3_2; - msmMusStruct01* temp_r28; - msmMusStruct00* temp_r27; + MSM_GRP_HEAD* temp_r3_2; + MSM_MUS* temp_r28; + MUS_PLAYER* temp_r27; DVDFileInfo sp10; - if (musId < 0 || musId >= mus.unk00) { + if (musId < 0 || musId >= mus.musMax) { return MSM_ERR_INVALIDID; } - temp_r28 = &mus.unk0C[musId]; - if (temp_r28->unk00 == 0xFFFF) { + temp_r28 = &mus.musData[musId]; + if (temp_r28->sgid == 0xFFFF) { return MSM_ERR_REMOVEDID; } - if (msmSysCheckLoadGroupID(temp_r28->unk00) == 0) { + if (msmSysCheckLoadGroupID(temp_r28->sgid) == 0) { return MSM_ERR_GRP_NOTLOADED; } var_r30 = (musParam != NULL) ? musParam->flag : 0; var_r29 = (var_r30 & MSM_MUSPARAM_CHAN) ? musParam->chan : 0; - if (var_r29 < 0 || var_r29 >= mus.unk02) { + if (var_r29 < 0 || var_r29 >= mus.musChanMax) { return MSM_ERR_OUTOFMUS; } - temp_r27 = &mus.unk18[var_r29]; - if (temp_r27->unk04 != 0) { - sndSeqStop(temp_r27->unk08); + temp_r27 = &mus.player[var_r29]; + if (temp_r27->status != 0) { + sndSeqStop(temp_r27->seqId); } - if (temp_r28->unk0C < 0) { - if (temp_r27->unk00 != musId) { - if (msmFioOpen(mus.unk08, &sp10) != 1) { + if (temp_r28->songGrp < 0) { + if (temp_r27->musId != musId) { + if (msmFioOpen(mus.msmEntryNum, &sp10) != 1) { return MSM_ERR_OPENFAIL; } - if (msmFioRead(&sp10, temp_r27->unk0C, temp_r28->unk08, temp_r28->unk04 + mus.unk10) < 0) { + if (msmFioRead(&sp10, temp_r27->songBuf, temp_r28->songSize, temp_r28->songOfs + mus.dummyMusOfs) < 0) { msmFioClose(&sp10); return MSM_ERR_READFAIL; } msmFioClose(&sp10); - temp_r27->unk10 = temp_r27->unk0C; + temp_r27->arrfile = temp_r27->songBuf; } } else { - temp_r3_2 = msmSysGetGroupDataPtr(temp_r28->unk0C); + temp_r3_2 = msmSysGetGroupDataPtr(temp_r28->songGrp); if (temp_r3_2 == NULL) { return MSM_ERR_MUSGRP_NOTLOADED; } - temp_r27->unk10 = (void*) ((u32) temp_r3_2 + temp_r3_2->unk0C + temp_r28->unk04); + temp_r27->arrfile = (void*) ((u32) temp_r3_2 + temp_r3_2->sngOfs + temp_r28->songOfs); } - temp_r27->unk05 = 1; - temp_r27->unk03 = temp_r28->unk0D; - temp_r27->unk2C = 0; - temp_r27->unk20 = 0; - temp_r27->unk14 = 0; - temp_r27->unk28 = 0x7F; - temp_r27->unk1C = 0x7F; - temp_r27->unk38.flags = 4; - temp_r27->unk38.volume.time = 0; - temp_r27->unk02 = (var_r30 & MSM_MUSPARAM_VOL) ? musParam->vol : 0x7F; - temp_r27->unk38.volume.target = temp_r27->unk03 * temp_r27->unk1C * temp_r27->unk02 / 16129; + temp_r27->busyF = 1; + temp_r27->vol = temp_r28->vol; + temp_r27->pauseOffMaxTime = 0; + temp_r27->pauseOnMaxTime = 0; + temp_r27->fadeMaxTime = 0; + temp_r27->pauseOnVol = 127; + temp_r27->fadeVol = 127; + temp_r27->playPara.flags = 4; + temp_r27->playPara.volume.time = 0; + temp_r27->baseVol = (var_r30 & MSM_MUSPARAM_VOL) ? musParam->vol : 127; + temp_r27->playPara.volume.target = temp_r27->vol * temp_r27->fadeVol * temp_r27->baseVol / 16129; if (var_r30 & MSM_MUSPARAM_PAUSE) { - temp_r27->unk38.flags |= 0x10; + temp_r27->playPara.flags |= 0x10; } if (var_r30 & MSM_MUSPARAM_SPEED) { - temp_r27->unk38.flags |= 2; - temp_r27->unk38.speed = musParam->speed * 256 / 100; + temp_r27->playPara.flags |= 2; + temp_r27->playPara.speed = musParam->speed * 256 / 100; } if (var_r30 & MSM_MUSPARAM_FADESPEED) { - temp_r27->unk14 = -(musParam->fadeSpeed / 15); - if (temp_r27->unk14 != 0) { - temp_r27->unk18 = 0; - temp_r27->unk1C = 0; - temp_r27->unk38.volume.target = 0; + temp_r27->fadeMaxTime = -(musParam->fadeSpeed / 15); + if (temp_r27->fadeMaxTime != 0) { + temp_r27->fadeTime = 0; + temp_r27->fadeVol = 0; + temp_r27->playPara.volume.target = 0; } } - temp_r3_3 = sndSeqPlayEx(temp_r28->unk00, temp_r28->unk02, temp_r27->unk10, &temp_r27->unk38, 0); + temp_r3_3 = sndSeqPlay(temp_r28->sgid, temp_r28->sid, temp_r27->arrfile, &temp_r27->playPara); if (temp_r3_3 == SND_ID_ERROR) { - temp_r27->unk05 = 0; + temp_r27->busyF = 0; return MSM_ERR_PLAYFAIL; } - temp_r27->unk08 = temp_r3_3; - temp_r27->unk00 = musId; - temp_r27->unk04 = (temp_r27->unk38.flags & 0x10) ? 3 : 2; - temp_r27->unk05 = 0; + temp_r27->seqId = temp_r3_3; + temp_r27->musId = musId; + temp_r27->status = (temp_r27->playPara.flags & 0x10) ? 3 : 2; + temp_r27->busyF = 0; return var_r29; } -s32 msmMusInit(sysData* arg0, DVDFileInfo* arg1) { +s32 msmMusInit(MSM_SYS* arg0, DVDFileInfo* arg1) { s32 temp_r4; s32 var_r8; - mus.unk00 = 0; - mus.unk02 = 0; - mus.unk04 = 0; - mus.unk03 = 0; - if (arg0->unk10->unk4 == 0) { + mus.musMax = 0; + mus.musChanMax = 0; + mus.numPlay = 0; + mus.baseGrpNumPlay = 0; + if (arg0->info->musMax == 0) { return 0; } - temp_r4 = arg0->unkC->unk2C; + temp_r4 = arg0->header->musSize; if (temp_r4 == 0) { return 0; } - if ((mus.unk0C = msmMemAlloc(temp_r4)) == NULL) { + if ((mus.musData = msmMemAlloc(temp_r4)) == NULL) { return MSM_ERR_OUTOFMEM; } - if (msmFioRead(arg1, mus.unk0C, arg0->unkC->unk2C, arg0->unkC->unk28) < 0) { + if (msmFioRead(arg1, mus.musData, arg0->header->musSize, arg0->header->musOfs) < 0) { return MSM_ERR_READFAIL; } - temp_r4 = arg0->unk10->unk20; + temp_r4 = arg0->info->dummyMusSize; if (temp_r4 != 0) { - if ((mus.unk14 = msmMemAlloc(temp_r4 * arg0->unk10->unk8)) == NULL) { + if ((mus.musBuf = msmMemAlloc(temp_r4 * arg0->info->musChanMax)) == NULL) { return MSM_ERR_OUTOFMEM; } } else { - mus.unk14 = NULL; + mus.musBuf = NULL; } - mus.unk00 = arg0->unk10->unk4; - mus.unk02 = arg0->unk10->unk8; - mus.unk10 = arg0->unkC->unk48; - mus.unk08 = arg0->unk0; - for (var_r8 = 0; var_r8 < mus.unk02; var_r8++) { - mus.unk18[var_r8].unk0C = (void*) ((u32) mus.unk14 + arg0->unk10->unk20 * var_r8); - mus.unk18[var_r8].unk00 = -1; - mus.unk18[var_r8].unk05 = 0; + mus.musMax = arg0->info->musMax; + mus.musChanMax = arg0->info->musChanMax; + mus.dummyMusOfs = arg0->header->dummyMusOfs; + mus.msmEntryNum = arg0->msmEntryNum; + for (var_r8 = 0; var_r8 < mus.musChanMax; var_r8++) { + mus.player[var_r8].songBuf = (void*) ((u32) mus.musBuf + arg0->info->dummyMusSize * var_r8); + mus.player[var_r8].musId = -1; + mus.player[var_r8].busyF = 0; } return 0; } diff --git a/src/msm/msmse.c b/src/msm/msmse.c index 1d6481ce..cbacf34c 100755 --- a/src/msm/msmse.c +++ b/src/msm/msmse.c @@ -2,641 +2,637 @@ #include "msm/msmfio.h" #include "msm/msmmem.h" -typedef struct { - /* 0x00 */ SND_VOICEID unk00; - /* 0x04 */ s32 unk04; - /* 0x08 */ s16 unk08; - /* 0x0A */ s8 unk0A; - /* 0x0B */ s8 unk0B; - /* 0x0C */ s8 unk0C; - /* 0x0D */ s8 unk0D; - /* 0x0E */ s16 unk0E; - /* 0x10 */ s8 unk10; - /* 0x11 */ s8 unk11; - /* 0x12 */ s8 unk12; - /* 0x13 */ u8 unk13; - /* 0x14 */ SND_PARAMETER_INFO unk14; - /* 0x1C */ SND_PARAMETER unk1C[5]; - /* 0x30 */ s8 unk30; - /* 0x31 */ s8 unk31; - /* 0x32 */ s16 unk32; - /* 0x34 */ volatile s32 unk34; - /* 0x38 */ s32 unk38; - /* 0x3C */ s8 unk3C; - /* 0x3D */ char unk3D[3]; - /* 0x40 */ volatile s32 unk40; - /* 0x44 */ s32 unk44; - /* 0x48 */ s8 unk48; - /* 0x49 */ char unk49[3]; - /* 0x4C */ SND_EMITTER unk4C; - /* 0x9C */ SND_FVECTOR unk9C; - /* 0xA8 */ SND_FVECTOR unkA8; - /* 0xB4 */ s8 unkB4; - /* 0xB5 */ char unkB5[3]; -} msmSeStruct00; // Size 0xB8 +#define SE_PLAYER_EMIT (1 << 0) -typedef struct { - /* 0x00 */ s32 unk00; - /* 0x04 */ s8 unk04; - /* 0x05 */ s8 unk05; - /* 0x06 */ s8 unk06; - /* 0x07 */ char unk07[1]; - /* 0x08 */ s32 unk08; - /* 0x0C */ MSMSE* unk0C; - /* 0x10 */ msmSeStruct00* unk10; - /* 0x14 */ SND_LISTENER unk14; - /* 0xA4 */ SND_FVECTOR unkA4; - /* 0xB0 */ SND_FVECTOR unkB0; - /* 0xBC */ SND_FVECTOR unkBC; - /* 0xC8 */ SND_FVECTOR unkC8; - /* 0xD4 */ float unkD4; - /* 0xD8 */ u16 unkD8; - /* 0xDA */ u16 unkDA; -} msmSeStruct02; // Size 0xDC +typedef struct SePlayer_s { + SND_VOICEID vid; + s32 no; + s16 seId; + s8 status; + s8 busyF; + s8 vol; + s8 pan; + s16 pitch; + s8 span; + s8 auxAVol; + s8 auxBVol; + u8 flag; + SND_PARAMETER_INFO paramInfo; + SND_PARAMETER param[5]; + s8 baseVol; + s8 basePan; + s16 basePitch; + volatile s32 fadeMaxTime; + s32 fadeTime; + s8 fadeVol; + volatile s32 pauseMaxTime; + s32 pauseTime; + s8 pauseVol; + SND_EMITTER emitter; + SND_FVECTOR emiPos; + SND_FVECTOR emiDir; + s8 emitterF; +} SE_PLAYER; -msmSeStruct02 se; +static struct { + s32 seMax; + s8 sfx; + s8 baseGrpNumPlay; + s8 numPlay; + s32 no; + MSM_SE *seData; + SE_PLAYER *player; + SND_LISTENER listener; + SND_FVECTOR listenerPos; + SND_FVECTOR listenerDir; + SND_FVECTOR listenerHeading; + SND_FVECTOR listenerUp; + float sndDist; + u16 groupId; + u16 listenerF; +} se; -static void msmSeFade(msmSeStruct00* arg0) { - u8 temp_r3; +static void msmSeFade(SE_PLAYER *player) { + u8 vol; - if (arg0->unk0A == 3) { + if (player->status == MSM_SE_PAUSEOUT) { return; } - if (arg0->unk34 > 0) { - if (--arg0->unk38 == 0) { - arg0->unk34 = 0; - arg0->unk34 = 0; - if (arg0->unk34 != 0) { - arg0->unk38 = arg0->unk34; - arg0->unk3C = 0x7F; + if (player->fadeMaxTime > 0) { + if (--player->fadeTime == 0) { + player->fadeMaxTime = 0; + player->fadeMaxTime = 0; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; } else { - arg0->unk0A = 1; - if ((arg0->unk13 & 1) && arg0->unkB4 == 1) { - sndRemoveEmitter(&arg0->unk4C); + player->status = 1; + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + sndRemoveEmitter(&player->emitter); } else { - sndFXKeyOff(arg0->unk00); + sndFXKeyOff(player->vid); } } } else { - arg0->unk3C = arg0->unk38 * 0x7F / arg0->unk34; - temp_r3 = arg0->unk0C * arg0->unk30 * arg0->unk3C * arg0->unk48 / 2048383; - if ((arg0->unk13 & 1) && arg0->unkB4 == 1) { - arg0->unkA8.x = arg0->unkA8.y = arg0->unkA8.z = 0.0f; - sndUpdateEmitter(&arg0->unk4C, &arg0->unk9C, &arg0->unkA8, temp_r3, NULL); + player->fadeVol = player->fadeTime * 127 / player->fadeMaxTime; + vol = player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127); + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + player->emiDir.x = player->emiDir.y = player->emiDir.z = 0.0f; + sndUpdateEmitter(&player->emitter, &player->emiPos, &player->emiDir, vol, NULL); } else { - sndFXVolume(arg0->unk00, temp_r3); + sndFXVolume(player->vid, vol); } } - } else if (arg0->unk34 < 0) { - if (++arg0->unk38 >= -arg0->unk34) { - arg0->unk34 = 0; - arg0->unk3C = 0x7F; + } else if (player->fadeMaxTime < 0) { + if (++player->fadeTime >= -player->fadeMaxTime) { + player->fadeMaxTime = 0; + player->fadeVol = 127; } else { - arg0->unk3C = arg0->unk38 * 0x7F / -arg0->unk34; + player->fadeVol = player->fadeTime * 127 / -player->fadeMaxTime; } - temp_r3 = arg0->unk0C * arg0->unk30 * arg0->unk3C * arg0->unk48 / 2048383; - if ((arg0->unk13 & 1) && arg0->unkB4 == 1) { - arg0->unkA8.x = arg0->unkA8.y = arg0->unkA8.z = 0.0f; - sndUpdateEmitter(&arg0->unk4C, &arg0->unk9C, &arg0->unkA8, temp_r3, NULL); + vol = player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127); + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == 1) { + player->emiDir.x = player->emiDir.y = player->emiDir.z = 0.0f; + sndUpdateEmitter(&player->emitter, &player->emiPos, &player->emiDir, vol, NULL); } else { - sndFXVolume(arg0->unk00, temp_r3); + sndFXVolume(player->vid, vol); } } } -static void msmSePauseSub(msmSeStruct00* arg0, BOOL pause, s32 speed) { - s32 temp_r3; +static void msmSePauseSub(SE_PLAYER* player, BOOL pause, s32 speed) { + s32 time; - temp_r3 = speed / 15; + time = speed / 15; if (pause) { - if (arg0->unk0A == 2) { - if (temp_r3 != 0) { - arg0->unk40 = arg0->unk44 = temp_r3; - arg0->unk48 = 0x7F; + if (player->status == MSM_SE_PAUSEIN) { + if (time != 0) { + player->pauseMaxTime = player->pauseTime = time; + player->pauseVol = 127; } else { - arg0->unk48 = 0; - sndFXVolume(arg0->unk00, arg0->unk0C * arg0->unk30 * arg0->unk3C * arg0->unk48 / 2048383); + player->pauseVol = 0; + sndFXVolume(player->vid, player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127)); } - arg0->unk0A = 3; + player->status = MSM_SE_PAUSEOUT; } } else { - if (arg0->unk0A == 3) { - if (temp_r3 != 0) { - if (arg0->unk40 != 0) { - arg0->unk40 = -temp_r3; + if (player->status == MSM_SE_PAUSEOUT) { + if (time != 0) { + if (player->pauseMaxTime != 0) { + player->pauseMaxTime = -time; } else { - arg0->unk40 = -temp_r3; - arg0->unk44 = 0; - arg0->unk48 = 0; + player->pauseMaxTime = -time; + player->pauseTime = 0; + player->pauseVol = 0; } } else { - arg0->unk48 = 0x7F; - sndFXVolume(arg0->unk00, arg0->unk0C * arg0->unk30 * arg0->unk3C * arg0->unk48 / 2048383); + player->pauseVol = 127; + sndFXVolume(player->vid, player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127)); } - arg0->unk0A = 2; + player->status = MSM_SE_PAUSEIN; } } } -void msmSePeriodicProc(void) { - s32 var_r26; - msmSeStruct00* temp_r3; - u8 temp_r3_3; +static SE_PLAYER* msmSeSearchEntry(s32 seNo) { + SE_PLAYER *player; + s32 i; - se.unk05 = se.unk06 = 0; - for (var_r26 = 0; var_r26 < se.unk04; var_r26++) { - temp_r3 = &se.unk10[var_r26]; - if (temp_r3->unk0B != 0) { - continue; - } - switch (temp_r3->unk0A) { - case 1: - case 2: - if ((temp_r3->unk13 & 1) && temp_r3->unkB4 == 1) { - if (!sndCheckEmitter(&temp_r3->unk4C)) { - temp_r3->unk0A = 0; - } - } else { - if (sndFXCheck(temp_r3->unk00) == SND_ID_ERROR) { - temp_r3->unk0A = 0; - } - } - break; - } - if (temp_r3->unk0A == 0) { - continue; - } - if (msmSysCheckBaseGroup(se.unk0C[temp_r3->unk08].groupId) != 0) { - se.unk05++; - } else { - se.unk06++; - } - if (temp_r3->unk40 > 0) { - if (--temp_r3->unk44 == 0) { - temp_r3->unk40 = 0; - temp_r3->unk48 = 0; - } else { - temp_r3->unk48 = temp_r3->unk44 * 0x7F / temp_r3->unk40; - } - } else if (temp_r3->unk40 < 0) { - if (++temp_r3->unk44 >= -temp_r3->unk40) { - temp_r3->unk40 = 0; - temp_r3->unk48 = 0x7F; - } else { - temp_r3->unk48 = temp_r3->unk44 * 0x7F / -temp_r3->unk40; - } - } - temp_r3_3 = temp_r3->unk0C * temp_r3->unk30 * temp_r3->unk3C * temp_r3->unk48 / 2048383; - if ((temp_r3->unk13 & 1) && temp_r3->unkB4 == 1) { - temp_r3->unkA8.x = temp_r3->unkA8.y = temp_r3->unkA8.z = 0.0f; - sndUpdateEmitter(&temp_r3->unk4C, &temp_r3->unk9C, &temp_r3->unkA8, temp_r3_3, NULL); - } else { - sndFXVolume(temp_r3->unk00, temp_r3_3); - } - msmSeFade(temp_r3); - } -} - -MSMSE* msmSeGetIndexPtr(s32 arg0) { - if (arg0 < 0 || arg0 >= se.unk00) { - return NULL; - } - return &se.unk0C[arg0]; -} - -void msmSeDelListener(void) { - if (se.unkDA != 0) { - sndRemoveListener(&se.unk14); - se.unkDA = 0; - } -} - -s32 msmSeUpdataListener(Vec* pos, Vec* heading) { - if (se.unkDA == 0) { - return MSM_ERR_22; - } - se.unkB0.x = pos->x - se.unkA4.x; - se.unkB0.y = pos->y - se.unkA4.y; - se.unkB0.z = pos->z - se.unkA4.z; - se.unkA4.x = pos->x; - se.unkA4.y = pos->y; - se.unkA4.z = pos->z; - se.unkBC.x = heading->x; - se.unkBC.y = heading->y; - se.unkBC.z = heading->z; - if (!sndUpdateListener(&se.unk14, &se.unkA4, &se.unkB0, &se.unkBC, &se.unkC8, 0x7F, NULL)) { - return MSM_ERR_22; - } - return 0; -} - -s32 msmSeSetListener(Vec* pos, Vec* heading, float sndDist, float sndSpeed, MSM_SELISTENER* listener) { - SND_FVECTOR* temp_b0; - SND_FVECTOR* temp_a4; - SND_FVECTOR* temp_c8; - SND_FVECTOR* temp_bc; - s32 var_r3; - float var_f4; - float var_f0; - float var_f0_2; - - temp_a4 = &se.unkA4; - temp_c8 = &se.unkC8; - temp_bc = &se.unkBC; - temp_b0 = &se.unkB0; - temp_a4->x = pos->x; - temp_a4->y = pos->y; - temp_a4->z = pos->z; - temp_c8->x = temp_c8->z = 0.0f; - temp_c8->y = 1.0f; - temp_bc->x = heading->x; - temp_bc->y = heading->y; - temp_bc->z = heading->z; - temp_b0->x = temp_b0->y = temp_b0->z = 0.0f; - se.unkD4 = sndDist; - var_r3 = (listener != NULL) ? listener->flag : 0; - var_f4 = (var_r3 & 1) ? listener->startDis : 0.0f; - var_f0 = (var_r3 & 2) ? listener->frontSurDis : (var_f4 + sndDist * 0.25f); - var_f0_2 = (var_r3 & 4) ? listener->backSurDis : (var_f4 + sndDist * 0.25f); - if ((s32) sndAddListenerEx(&se.unk14, temp_a4, temp_b0, temp_bc, temp_c8, - var_f0, var_f0_2, sndSpeed, -var_f4, 1, 0x7F, NULL) == FALSE) - { - se.unkDA = 0; - return MSM_ERR_22; - } - se.unkDA = 1; - return 0; -} - -s32 msmSeGetEntryID(s32 seId, int* seNo) { - msmSeStruct00* temp_r8; - s32 var_r9; - s32 var_r10; - - for (var_r9 = var_r10 = 0; var_r9 < se.unk04; var_r9++) { - temp_r8 = &se.unk10[var_r9]; - if (temp_r8->unk0A != 0 && temp_r8->unk08 == seId) { - if (seNo != NULL) { - seNo[var_r10] = temp_r8->unk04; - } - var_r10++; - } - } - return var_r10; -} - -s32 msmSeGetNumPlay(BOOL baseGrp) { - switch (baseGrp) { - case FALSE: - return se.unk06 + se.unk05; - default: - return se.unk06; - } -} - -static inline msmSeStruct00* msmSeGetStatus_inline(s32 seNo) { - msmSeStruct00* var_r4; - s32 var_ctr; - - for (var_ctr = 0; var_ctr < se.unk04; var_ctr++) { - var_r4 = &se.unk10[var_ctr]; - if (var_r4->unk0A != 0 && var_r4->unk04 == seNo) { - return var_r4; + for (i = 0; i < se.sfx; i++) { + player = &se.player[i]; + if (player->status != MSM_SE_DONE && player->no == seNo) { + return player; } } return NULL; } -s32 msmSeGetStatus(int seNo) { - msmSeStruct00* var_r4; +void msmSePeriodicProc(void) { + s32 i; + SE_PLAYER* player; + u8 vol; - var_r4 = msmSeGetStatus_inline(seNo); - if (var_r4 == NULL) { - return 0; + se.baseGrpNumPlay = se.numPlay = 0; + for (i = 0; i < se.sfx; i++) { + player = &se.player[i]; + if (player->busyF != 0) { + continue; + } + switch (player->status) { + case MSM_SE_PLAY: + case MSM_SE_PAUSEIN: + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + if (!sndCheckEmitter(&player->emitter)) { + player->status = 0; + } + } else { + if (sndFXCheck(player->vid) == SND_ID_ERROR) { + player->status = 0; + } + } + break; + } + if (player->status == 0) { + continue; + } + if (msmSysCheckBaseGroup(se.seData[player->seId].gid) != 0) { + se.baseGrpNumPlay++; + } else { + se.numPlay++; + } + if (player->pauseMaxTime > 0) { + if (--player->pauseTime == 0) { + player->pauseMaxTime = 0; + player->pauseVol = 0; + } else { + player->pauseVol = player->pauseTime * 127 / player->pauseMaxTime; + } + } else if (player->pauseMaxTime < 0) { + if (++player->pauseTime >= -player->pauseMaxTime) { + player->pauseMaxTime = 0; + player->pauseVol = 127; + } else { + player->pauseVol = player->pauseTime * 127 / -player->pauseMaxTime; + } + } + vol = player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127); + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + player->emiDir.x = player->emiDir.y = player->emiDir.z = 0.0f; + sndUpdateEmitter(&player->emitter, &player->emiPos, &player->emiDir, vol, NULL); + } else { + sndFXVolume(player->vid, vol); + } + msmSeFade(player); } - return var_r4->unk0A; } -void msmSeSetMasterVolume(s32 arg0) { - sndMasterVolume(arg0 & 0x7F, 0, 0, 1); +MSM_SE* msmSeGetIndexPtr(s32 seId) { + if (seId < 0 || seId >= se.seMax) { + return NULL; + } + return &se.seData[seId]; +} + +void msmSeDelListener(void) { + if (se.listenerF != 0) { + sndRemoveListener(&se.listener); + se.listenerF = 0; + } +} + +s32 msmSeUpdataListener(Vec* pos, Vec* heading) { + if (se.listenerF == 0) { + return MSM_LISTENER_NO_UPDATA; + } + se.listenerDir.x = pos->x - se.listenerPos.x; + se.listenerDir.y = pos->y - se.listenerPos.y; + se.listenerDir.z = pos->z - se.listenerPos.z; + se.listenerPos.x = pos->x; + se.listenerPos.y = pos->y; + se.listenerPos.z = pos->z; + se.listenerHeading.x = heading->x; + se.listenerHeading.y = heading->y; + se.listenerHeading.z = heading->z; + if (!sndUpdateListener(&se.listener, &se.listenerPos, &se.listenerDir, &se.listenerHeading, &se.listenerUp, 127, NULL)) { + return MSM_LISTENER_NO_UPDATA; + } + return 0; +} + +s32 msmSeSetListener(Vec* pos, Vec* heading, float sndDist, float sndSpeed, MSM_SELISTENER* listener) { + SND_FVECTOR* listenerDir; + SND_FVECTOR* listenerPos; + SND_FVECTOR* listenerUp; + SND_FVECTOR* listenerHeading; + s32 flag; + float startDis; + float frontSurDis; + float backSurDis; + + listenerPos = &se.listenerPos; + listenerUp = &se.listenerUp; + listenerHeading = &se.listenerHeading; + listenerDir = &se.listenerDir; + listenerPos->x = pos->x; + listenerPos->y = pos->y; + listenerPos->z = pos->z; + listenerUp->x = listenerUp->z = 0.0f; + listenerUp->y = 1.0f; + listenerHeading->x = heading->x; + listenerHeading->y = heading->y; + listenerHeading->z = heading->z; + listenerDir->x = listenerDir->y = listenerDir->z = 0.0f; + se.sndDist = sndDist; + flag = (listener != NULL) ? listener->flag : MSM_LISTENER_NONE; + startDis = (flag & MSM_LISTENER_STARTDIS) ? listener->startDis : 0.0f; + frontSurDis = (flag & MSM_LISTENER_FRONTSURDIS) ? listener->frontSurDis : (startDis + sndDist * 0.25f); + backSurDis = (flag & MSM_LISTENER_BACKSURDIS) ? listener->backSurDis : (startDis + sndDist * 0.25f); + if ((s32) sndAddListenerEx(&se.listener, listenerPos, listenerDir, listenerHeading, listenerUp, + frontSurDis, backSurDis, sndSpeed, -startDis, SND_EMITTER_CONTINOUS, 127, NULL) == FALSE) + { + se.listenerF = FALSE; + return MSM_LISTENER_NO_UPDATA; + } + se.listenerF = TRUE; + return 0; +} + +s32 msmSeGetEntryID(s32 seId, int* seNo) { + SE_PLAYER* player; + s32 i; + s32 num; + + for (i = num = 0; i < se.sfx; i++) { + player = &se.player[i]; + if (player->status != 0 && player->seId == seId) { + if (seNo != NULL) { + seNo[num] = player->no; + } + num++; + } + } + return num; +} + +s32 msmSeGetNumPlay(BOOL baseGrp) { + switch (baseGrp) { + case FALSE: + return se.numPlay + se.baseGrpNumPlay; + default: + return se.numPlay; + } +} + +s32 msmSeGetStatus(int seNo) { + SE_PLAYER* pan; + + pan = msmSeSearchEntry(seNo); + if (pan == NULL) { + return 0; + } + return pan->status; +} + +void msmSeSetMasterVolume(s32 vol) { + sndMasterVolume(vol & 127, 0, 0, 1); } s32 msmSeSetParam(int seNo, MSM_SEPARAM* param) { - msmSeStruct00* var_r31; - int temp_r3; - s32 var_r4; + SE_PLAYER* player; + int pan; + s32 pitch; - var_r31 = msmSeGetStatus_inline(seNo); - if (var_r31 == NULL) { - return MSM_ERR_6F; + player = msmSeSearchEntry(seNo); + if (player == NULL) { + return MSM_ERR_INVALIDSE; } if (param->flag & MSM_SEPARAM_VOL) { - var_r31->unk0B = 1; - var_r31->unk0C = param->vol; - if (!(var_r31->unk13 & 1) || var_r31->unkB4 != 1) { - sndFXVolume(var_r31->unk00, var_r31->unk0C * var_r31->unk30 * var_r31->unk3C * var_r31->unk48 / 2048383); + player->busyF = TRUE; + player->vol = param->vol; + if (!(player->flag & SE_PLAYER_EMIT) || player->emitterF != TRUE) { + sndFXVolume(player->vid, player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127)); } - var_r31->unk0B = 0; + player->busyF = FALSE; } - if (!(var_r31->unk13 & 1)) { + if (!(player->flag & SE_PLAYER_EMIT)) { if (param->flag & MSM_SEPARAM_PAN) { - var_r31->unk0D = param->pan; - temp_r3 = var_r31->unk0D + var_r31->unk31 - 0x40; - if (temp_r3 < 0) { - temp_r3 = 0; + player->pan = param->pan; + pan = player->pan + player->basePan - 64; + if (pan < 0) { + pan = 0; } - if (temp_r3 > 0x7F) { - temp_r3 = 0x7F; + if (pan > 127) { + pan = 127; } - sndFXPanning(var_r31->unk00, temp_r3); + sndFXPanning(player->vid, pan); } if (param->flag & MSM_SEPARAM_PITCH) { - var_r31->unk0E = param->pitch; - var_r4 = var_r31->unk0E + var_r31->unk32 + 0x2000; - if (var_r4 < 0) { - var_r4 = 0; + player->pitch = param->pitch; + pitch = player->pitch + player->basePitch + 8192; + if (pitch < 0) { + pitch = 0; } - if (var_r4 > 0x3FFF) { - var_r4 = 0x3FFF; + if (pitch > 16383) { + pitch = 16383; } - sndFXPitchBend(var_r31->unk00, var_r4); + sndFXPitchBend(player->vid, pitch); } if (param->flag & MSM_SEPARAM_SPAN) { - var_r31->unk10 = param->span; - sndFXSurroundPanning(var_r31->unk00, var_r31->unk10); + player->span = param->span; + sndFXSurroundPanning(player->vid, player->span); } - } else if (var_r31->unkB4 == 1) { - var_r31->unk00 = sndEmitterVoiceID(&var_r31->unk4C); + } else if (player->emitterF == TRUE) { + player->vid = sndEmitterVoiceID(&player->emitter); if (param->flag & MSM_SEPARAM_POS) { - var_r31->unk0B = 1; - var_r31->unkA8.x = param->pos.x - var_r31->unk9C.x; - var_r31->unkA8.y = param->pos.y - var_r31->unk9C.y; - var_r31->unkA8.z = param->pos.z - var_r31->unk9C.z; - var_r31->unk9C.x = param->pos.x; - var_r31->unk9C.y = param->pos.y; - var_r31->unk9C.z = param->pos.z; - sndUpdateEmitter(&var_r31->unk4C, &var_r31->unk9C, &var_r31->unkA8, var_r31->unk0C * var_r31->unk30 * var_r31->unk3C * var_r31->unk48 / 2048383, NULL); - var_r31->unk0B = 0; + player->busyF = TRUE; + player->emiDir.x = param->pos.x - player->emiPos.x; + player->emiDir.y = param->pos.y - player->emiPos.y; + player->emiDir.z = param->pos.z - player->emiPos.z; + player->emiPos.x = param->pos.x; + player->emiPos.y = param->pos.y; + player->emiPos.z = param->pos.z; + sndUpdateEmitter(&player->emitter, &player->emiPos, &player->emiDir, player->vol * player->baseVol * player->fadeVol * player->pauseVol / (127*127*127), NULL); + player->busyF = FALSE; } } if (param->flag & MSM_SEPARAM_AUXVOLA) { - var_r31->unk11 = param->auxAVol; - sndFXReverb(var_r31->unk00, var_r31->unk11); + player->auxAVol = param->auxAVol; + sndFXReverb(player->vid, player->auxAVol); } if (param->flag & MSM_SEPARAM_AUXVOLB) { - var_r31->unk12 = param->auxBVol; - sndFXChorus(var_r31->unk00, var_r31->unk12); + player->auxBVol = param->auxBVol; + sndFXChorus(player->vid, player->auxBVol); } if (param->flag & MSM_SEPARAM_PAD) { - sndSendMessage(var_r31->unk00, param->pad); + sndSendMessage(player->vid, param->pad); } return 0; } void msmSePauseAll(BOOL pause, s32 speed) { - s32 var_r27; - msmSeStruct00* temp_r26; + s32 i; + SE_PLAYER* player; - for (var_r27 = 0; var_r27 < se.unk04; var_r27++) { - temp_r26 = &se.unk10[var_r27]; - temp_r26->unk0B = 1; - msmSePauseSub(temp_r26, pause, speed); - temp_r26->unk0B = 0; + for (i = 0; i < se.sfx; i++) { + player = &se.player[i]; + player->busyF = TRUE; + msmSePauseSub(player, pause, speed); + player->busyF = FALSE; } } void msmSeStopAll(BOOL checkGrp, s32 speed) { - msmSeStruct00* temp_r28; - s32 var_r27; + SE_PLAYER* player; + s32 i; - for (var_r27 = 0; var_r27 < se.unk04; var_r27++) { - temp_r28 = &se.unk10[var_r27]; - if (temp_r28->unk0A == 0) { + for (i = 0; i < se.sfx; i++) { + player = &se.player[i]; + if (player->status == MSM_MUS_DONE) { continue; } - temp_r28->unk0B = 1; + player->busyF = TRUE; switch (checkGrp) { case FALSE: - temp_r28->unk34 = speed / 15; - if (temp_r28->unk34 != 0) { - temp_r28->unk38 = temp_r28->unk34; - temp_r28->unk3C = 0x7F; + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; } else { - temp_r28->unk0A = 1; - if ((temp_r28->unk13 & 1) && temp_r28->unkB4 == 1) { - sndRemoveEmitter(&temp_r28->unk4C); + player->status = 1; + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + sndRemoveEmitter(&player->emitter); } else { - sndFXKeyOff(temp_r28->unk00); + sndFXKeyOff(player->vid); } } break; default: - if (msmSysCheckBaseGroup(se.unk0C[temp_r28->unk08].groupId) == 0) { - temp_r28->unk34 = speed / 15; - if (temp_r28->unk34 != 0) { - temp_r28->unk38 = temp_r28->unk34; - temp_r28->unk3C = 0x7F; + if (msmSysCheckBaseGroup(se.seData[player->seId].gid) == 0) { + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; } else { - temp_r28->unk0A = 1; - if ((temp_r28->unk13 & 1) && temp_r28->unkB4 == 1) { - sndRemoveEmitter(&temp_r28->unk4C); + player->status = 1; + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + sndRemoveEmitter(&player->emitter); } else { - sndFXKeyOff(temp_r28->unk00); + sndFXKeyOff(player->vid); } } } break; } - temp_r28->unk0B = 0; + player->busyF = FALSE; } } s32 msmSeStop(int seNo, s32 speed) { - msmSeStruct00* var_r31; + SE_PLAYER* player; - var_r31 = msmSeGetStatus_inline(seNo); - if (var_r31 == NULL) { - return MSM_ERR_6F; + player = msmSeSearchEntry(seNo); + if (player == NULL) { + return MSM_ERR_INVALIDSE; } - var_r31->unk0B = 1; - var_r31->unk34 = speed / 15; - if (var_r31->unk34 != 0) { - var_r31->unk38 = var_r31->unk34; - var_r31->unk3C = 0x7F; + player->busyF = TRUE; + player->fadeMaxTime = speed / 15; + if (player->fadeMaxTime != 0) { + player->fadeTime = player->fadeMaxTime; + player->fadeVol = 127; } else { - var_r31->unk0A = 1; - if ((var_r31->unk13 & 1) && var_r31->unkB4 == 1) { - sndRemoveEmitter(&var_r31->unk4C); + player->status = MSM_MUS_STOP; + if ((player->flag & SE_PLAYER_EMIT) && player->emitterF == TRUE) { + sndRemoveEmitter(&player->emitter); } else { - sndFXKeyOff(var_r31->unk00); + sndFXKeyOff(player->vid); } } - var_r31->unk0B = 0; + player->busyF = FALSE; return 0; } -static inline BOOL msmSeInline00(msmSeStruct00* arg0, MSM_SEPARAM* param) { - BOOL var_r0 = FALSE; +static inline BOOL msmSeUpdateBaseParam(SE_PLAYER* player, MSM_SEPARAM* param) { + BOOL listenerF = FALSE; if (param != NULL) { if (param->flag & MSM_SEPARAM_VOL) { - arg0->unk0C = param->vol; + player->vol = param->vol; } if (param->flag & MSM_SEPARAM_PAN) { - arg0->unk0D = param->pan; + player->pan = param->pan; } if (param->flag & MSM_SEPARAM_PITCH) { - arg0->unk0E = param->pitch; + player->pitch = param->pitch; } if (param->flag & MSM_SEPARAM_SPAN) { - arg0->unk10 = param->span; + player->span = param->span; } if (param->flag & MSM_SEPARAM_AUXVOLA) { - arg0->unk11 = param->auxAVol; + player->auxAVol = param->auxAVol; } if (param->flag & MSM_SEPARAM_AUXVOLB) { - arg0->unk12 = param->auxBVol; + player->auxBVol = param->auxBVol; } - if ((param->flag & MSM_SEPARAM_POS) && se.unkDA != 0) { - var_r0 = TRUE; + if ((param->flag & MSM_SEPARAM_POS) && se.listenerF != 0) { + listenerF = TRUE; } } - arg0->unk14.paraArray = arg0->unk1C; - return var_r0; + player->paramInfo.paraArray = player->param; + return listenerF; } int msmSePlay(int seId, MSM_SEPARAM* param) { - msmSeStruct00* var_r30; - SND_EMITTER* var_r29; - MSMSE* temp_r9; - int var_r3_2; - s32 var_r4; - s32 var_r6; - s32 var_r6_2; + SE_PLAYER* player; + SND_EMITTER* emitter; + MSM_SE* seData; + int pitch; + s32 pan; + s32 i; + s32 emiFlag; - if (seId < 0 || seId >= se.unk00) { + if (seId < 0 || seId >= se.seMax) { return MSM_ERR_INVALIDID; } - temp_r9 = &se.unk0C[seId]; - if (temp_r9->groupId == 0xFFFF) { + seData = &se.seData[seId]; + if (seData->gid == 0xFFFF) { return MSM_ERR_REMOVEDID; } - for (var_r6 = 0; var_r6 < se.unk04; var_r6++) { - var_r30 = &se.unk10[var_r6]; - if (var_r30->unk0A == 0) { + for (i = 0; i < se.sfx; i++) { + player = &se.player[i]; + if (player->status == 0) { break; } } - if (var_r6 == se.unk04) { - return MSM_ERR_6E; + if (i == se.sfx) { + return MSM_ERR_CHANLIMIT; } - var_r30->unk30 = temp_r9->vol; - var_r30->unk31 = temp_r9->pan; - var_r30->unk32 = temp_r9->pitchBend; - var_r30->unk0C = 0x7F; - var_r30->unk0D = 0x40; - var_r30->unk10 = temp_r9->span; - var_r30->unk0E = 0; - var_r30->unk11 = temp_r9->reverb; - var_r30->unk12 = temp_r9->chorus; - var_r30->unk40 = 0; - var_r30->unk34 = 0; - var_r30->unk48 = 0x7F; - var_r30->unk3C = 0x7F; - var_r30->unkB4 = 0; - if (msmSeInline00(var_r30, param)) { - var_r30->unk9C.x = param->pos.x; - var_r30->unk9C.y = param->pos.y; - var_r30->unk9C.z = param->pos.z; - var_r30->unk1C[0].ctrl = SND_MIDICTRL_REVERB; - var_r30->unk1C[0].paraData.value7 = var_r30->unk11; - var_r30->unk1C[1].ctrl = SND_MIDICTRL_CHORUS; - var_r30->unk1C[1].paraData.value7 = var_r30->unk12; - var_r30->unk14.numPara = 2; - var_r30->unkA8.x = var_r30->unkA8.y = var_r30->unkA8.z = 0.0f; - if (temp_r9->doppler == 1) { - var_r29 = &var_r30->unk4C; - var_r6_2 = 9; + player->baseVol = seData->vol; + player->basePan = seData->pan; + player->basePitch = seData->pitchBend; + player->vol = 127; + player->pan = 64; + player->span = seData->span; + player->pitch = 0; + player->auxAVol = seData->reverb; + player->auxBVol = seData->chorus; + player->pauseMaxTime = 0; + player->fadeMaxTime = 0; + player->pauseVol = 127; + player->fadeVol = 127; + player->emitterF = 0; + if (msmSeUpdateBaseParam(player, param)) { + player->emiPos.x = param->pos.x; + player->emiPos.y = param->pos.y; + player->emiPos.z = param->pos.z; + player->param[0].ctrl = SND_MIDICTRL_REVERB; + player->param[0].paraData.value7 = player->auxAVol; + player->param[1].ctrl = SND_MIDICTRL_CHORUS; + player->param[1].paraData.value7 = player->auxBVol; + player->paramInfo.numPara = 2; + player->emiDir.x = player->emiDir.y = player->emiDir.z = 0.0f; + if (seData->emitterF == TRUE) { + emitter = &player->emitter; + emiFlag = SND_EMITTER_DOPPLERFX|SND_EMITTER_CONTINOUS; } else { - var_r29 = NULL; - var_r6_2 = 8; + emitter = NULL; + emiFlag = SND_EMITTER_DOPPLERFX; } - var_r30->unkB4 = temp_r9->doppler; - var_r30->unk00 = sndAddEmitterParaEx(var_r29, &var_r30->unk9C, &var_r30->unkA8, se.unkD4, temp_r9->comp / 127.0f, var_r6_2, temp_r9->fxId, se.unkD8++, var_r30->unk0C * var_r30->unk30 / 127, 0, NULL, &var_r30->unk14); - if (var_r29 != NULL) { - if (!sndCheckEmitter(var_r29)) { + player->emitterF = seData->emitterF; + player->vid = sndAddEmitterParaEx(emitter, &player->emiPos, &player->emiDir, se.sndDist, seData->emiComp / 127.0f, emiFlag, seData->fxId, se.groupId++, player->vol * player->baseVol / 127, 0, NULL, &player->paramInfo); + if (emitter != NULL) { + if (!sndCheckEmitter(emitter)) { return MSM_ERR_PLAYFAIL; } } else { - if (var_r30->unk00 == -1) { + if (player->vid == -1) { return MSM_ERR_PLAYFAIL; } } - var_r30->unk13 |= 1; + player->flag |= 1; } else { - var_r30->unk1C[0].ctrl = SND_MIDICTRL_VOLUME; - var_r30->unk1C[0].paraData.value14 = (var_r30->unk0C * var_r30->unk30 / 127) * 0x81; - var_r4 = var_r30->unk0D + var_r30->unk31 - 0x40; - if (var_r4 < 0) { - var_r4 = 0; + player->param[0].ctrl = SND_MIDICTRL_VOLUME; + player->param[0].paraData.value14 = (player->vol * player->baseVol / 127) * 129; + pan = player->pan + player->basePan - 64; + if (pan < 0) { + pan = 0; } - if (var_r4 > 0x7F) { - var_r4 = 0x7F; + if (pan > 127) { + pan = 127; } - var_r30->unk1C[1].ctrl = SND_MIDICTRL_PANNING; - var_r30->unk1C[1].paraData.value14 = var_r4 * 0x81; - var_r30->unk1C[2].ctrl = SND_MIDICTRL_REVERB; - var_r30->unk1C[2].paraData.value7 = var_r30->unk11; - var_r30->unk1C[3].ctrl = SND_MIDICTRL_CHORUS; - var_r30->unk1C[3].paraData.value7 = var_r30->unk12; - var_r3_2 = var_r30->unk0E + var_r30->unk32 + 0x2000; - if (var_r3_2 > 0x3FFF) { - var_r3_2 = 0x3FFF; - } else if (var_r3_2 < 0) { - var_r3_2 = 0; + player->param[1].ctrl = SND_MIDICTRL_PANNING; + player->param[1].paraData.value14 = pan * 129; + player->param[2].ctrl = SND_MIDICTRL_REVERB; + player->param[2].paraData.value7 = player->auxAVol; + player->param[3].ctrl = SND_MIDICTRL_CHORUS; + player->param[3].paraData.value7 = player->auxBVol; + pitch = player->pitch + player->basePitch + 8192; + if (pitch > 16383) { + pitch = 16383; + } else if (pitch < 0) { + pitch = 0; } - var_r30->unk1C[4].ctrl = SND_MIDICTRL_PITCHBEND; - var_r30->unk1C[4].paraData.value14 = var_r3_2; - var_r30->unk14.numPara = 5; - var_r30->unk00 = sndFXStartParaInfo(temp_r9->fxId, 0xFF, 0xFF, 0, &var_r30->unk14); - if (var_r30->unk00 == -1) { + player->param[4].ctrl = SND_MIDICTRL_PITCHBEND; + player->param[4].paraData.value14 = pitch; + player->paramInfo.numPara = 5; + player->vid = sndFXStartParaInfo(seData->fxId, 0xFF, 0xFF, 0, &player->paramInfo); + if (player->vid == -1) { return MSM_ERR_PLAYFAIL; } - sndFXSurroundPanning(var_r30->unk00, var_r30->unk10); - var_r30->unk13 &= ~1; + sndFXSurroundPanning(player->vid, player->span); + player->flag &= ~1; } - var_r30->unk0B = 1; - var_r30->unk08 = seId; - var_r30->unk04 = se.unk08++; - var_r30->unk0A = 2; - var_r30->unk0B = 0; - return var_r30->unk04; + player->busyF = 1; + player->seId = seId; + player->no = se.no++; + player->status = 2; + player->busyF = 0; + return player->no; } -s32 msmSeInit(sysData* arg0, DVDFileInfo* arg1) { - s32 temp_r29; +s32 msmSeInit(MSM_SYS* arg0, DVDFileInfo* arg1) { + s32 playerSize; - se.unk04 = 0; - se.unk00 = 0; - se.unk05 = 0; - se.unk06 = 0; - se.unkDA = 0; - if (arg0->unk10->unk6 == 0) { + se.sfx = 0; + se.seMax = 0; + se.baseGrpNumPlay = 0; + se.numPlay = 0; + se.listenerF = 0; + if (arg0->info->seMax == 0) { return 0; } - if ((se.unk0C = msmMemAlloc(arg0->unkC->unk34)) == NULL) { + if ((se.seData = msmMemAlloc(arg0->header->seSize)) == NULL) { return MSM_ERR_OUTOFMEM; } - if (msmFioRead(arg1, se.unk0C, arg0->unkC->unk34, arg0->unkC->unk30) < 0) { + if (msmFioRead(arg1, se.seData, arg0->header->seSize, arg0->header->seOfs) < 0) { return MSM_ERR_READFAIL; } - temp_r29 = arg0->unk10->unk2 * sizeof(*se.unk10); - if ((se.unk10 = msmMemAlloc(temp_r29)) == NULL) { + playerSize = arg0->info->sfx * sizeof(SE_PLAYER); + if ((se.player = msmMemAlloc(playerSize)) == NULL) { return MSM_ERR_OUTOFMEM; } - memset(se.unk10, 0, temp_r29); - se.unk00 = arg0->unk10->unk6; - se.unk04 = arg0->unk10->unk2; - se.unk08 = 1; + memset(se.player, 0, playerSize); + se.seMax = arg0->info->seMax; + se.sfx = arg0->info->sfx; + se.no = 1; return 0; } diff --git a/src/msm/msmstream.c b/src/msm/msmstream.c index 058835ab..2afade01 100755 --- a/src/msm/msmstream.c +++ b/src/msm/msmstream.c @@ -3,215 +3,187 @@ #include "msm/msmsys.h" typedef struct { - /* 0x00 */ SND_STREAMID unk00; - /* 0x04 */ s16 unk04; - /* 0x06 */ u8 unk06; - /* 0x07 */ u8 unk07; - /* 0x08 */ u8 unk08; - /* 0x09 */ u8 unk09; - /* 0x0A */ u8 unk0A; - /* 0x0B */ u8 unk0B; - /* 0x0C */ u8 unk0C; - /* 0x0D */ u8 unk0D; - /* 0x0E */ s8 unk0E; - /* 0x0F */ s8 unk0F; - /* 0x10 */ u32 unk10; - /* 0x14 */ volatile s32 unk14; - /* 0x18 */ volatile s32 unk18; - /* 0x1C */ s32 unk1C; - /* 0x20 */ char unk20[4]; - /* 0x24 */ volatile s32 unk24; - /* 0x28 */ s32 unk28; - /* 0x2C */ s8 unk2C; - /* 0x2D */ s8 unk2D; - /* 0x2E */ s8 unk2E; - /* 0x2F */ char unk2F[1]; - /* 0x30 */ void* unk30; - /* 0x34 */ u32 unk34; - /* 0x38 */ u32 unk38; + /* 0x00 */ SND_STREAMID stid; + /* 0x04 */ s16 streamId; + /* 0x06 */ u8 status; + /* 0x07 */ u8 stereoF; + /* 0x08 */ u8 volBase; + /* 0x09 */ u8 vol; + /* 0x0A */ u8 volFade; + /* 0x0B */ u8 pauseVol; + /* 0x0C */ u8 panBase; + /* 0x0D */ u8 pan; + /* 0x0E */ s8 slotL; + /* 0x0F */ s8 slotR; + /* 0x10 */ u32 pauseLen; + /* 0x14 */ volatile s32 pauseTime; + /* 0x18 */ volatile s32 pauseTimeMax; + /* 0x1C */ s32 fadeVol; + /* 0x20 */ s32 unk20; + /* 0x24 */ volatile s32 fadeMaxTime; + /* 0x28 */ s32 fadeTime; + /* 0x2C */ s8 span; + /* 0x2D */ s8 auxA; + /* 0x2E */ s8 auxB; + /* 0x30 */ void* streamBuf; + /* 0x34 */ u32 streamBufSize; + /* 0x38 */ u32 streamFrq; /* 0x3C */ struct { - volatile u8 unk3C_0 : 1; - volatile u8 unk3C_1 : 1; - u8 unk3C_2 : 1; - u8 unk3C_3 : 1; - volatile u8 unk3C_4 : 1; - volatile u8 unk3C_5 : 1; - volatile u8 unk3C_6 : 1; + volatile u8 bufNo : 1; + volatile u8 firstF : 1; + u8 streamOffF : 1; + u8 readBusyF : 1; + volatile u8 shutdownF : 1; + volatile u8 pauseF : 1; + volatile u8 updateAramF : 1; }; - /* 0x3D */ char unk3D[3]; - /* 0x40 */ s32 unk40; - /* 0x44 */ SND_ADPCMSTREAM_INFO* unk44; - /* 0x48 */ s32 unk48; - /* 0x4C */ u32 unk4C; - /* 0x50 */ u32 unk50; - /* 0X54 */ s32 unk54; - /* 0x58 */ u32 unk58; - /* 0x5C */ void* unk5C; - /* 0X60 */ s32 unk60; + s32 frq; + /* 0x44 */ SND_ADPCMSTREAM_INFO* adpcmInfo; + /* 0x48 */ s32 streamBaseOfs; + /* 0x4C */ u32 streamPos; + /* 0x50 */ u32 loopLen; + /* 0X54 */ s32 loopEndOfs; + /* 0x58 */ u32 streamReadSize; + /* 0x5C */ void* streamReadBuf; + /* 0X60 */ s32 streamPosStart; /* 0x64 */ u32 unk64; /* 0x68 */ s32 unk68; /* 0x6C */ s32 unk6C; - /* 0x70 */ DVDFileInfo unk70; -} msmStreamUnk20Struct; // Size 0xAC + /* 0x70 */ DVDFileInfo file; +} MSM_STREAM_SLOT; // Size 0xAC + +static struct { + /* 0x00 */ s32 sampleFrq; + /* 0x04 */ u32 bufSize; + /* 0x08 */ s32 frq; + /* 0x0C */ s32 pdtEntryNum; + /* 0x10 */ s8 time; + /* 0x11 */ u8 masterVol; + /* 0x12 */ u8 outputMode; + /* 0x14 */ u32* streamPackList; + /* 0x18 */ s8* streamPackFlag; + /* 0x1C */ SND_ADPCMSTREAM_INFO* adpcmParam; + /* 0x20 */ MSM_STREAM_SLOT* slot; + MSM_STREAM_HEADER header ATTRIBUTE_ALIGN(32); +} StreamInfo; // Size 0x60 typedef struct { - /* 0x00 */ s32 unk00; - /* 0x04 */ u32 unk04; - /* 0x08 */ s32 unk08; - /* 0x0C */ s32 unk0C; - /* 0x10 */ s8 unk10; - /* 0x11 */ u8 unk11; - /* 0x12 */ u8 unk12; - /* 0x13 */ char unk13[1]; - /* 0x14 */ u32* unk14; - /* 0x18 */ s8* unk18; - /* 0x1C */ SND_ADPCMSTREAM_INFO* unk1C; - /* 0x20 */ msmStreamUnk20Struct* unk20; - /* 0x24 */ char unk24[0x1C]; - /* 0x40 */ s16 unk40; - /* 0x42 */ s16 unk42; - /* 0x44 */ s32 unk44; - /* 0x48 */ s32 unk48; - /* 0x4C */ s32 unk4C; - /* 0x50 */ s32 unk50; - /* 0x54 */ s32 unk54; - /* 0x58 */ s32 unk58; - /* 0x5C */ s32 unk5C; -} msmStreamStruct; // Size 0x60 + /* 0x00 */ u8 vol; + /* 0x01 */ u8 pan; + /* 0x02 */ u8 span; + /* 0x03 */ u8 auxA; + /* 0x04 */ u8 auxB; + /* 0x08 */ s32 sampleOfs; +} STREAM_PARAM; -typedef struct { - /* 0x00 */ s32 unk00; - /* 0x04 */ s16 unk04; - /* 0x06 */ char unk06[2]; -} StructSlotInitInnerArg1; // Size 8 - -typedef struct { - /* 0x00 */ s8 unk00; - /* 0x01 */ s8 unk01; - /* 0x02 */ s8 unk02; - /* 0x03 */ s8 unk03; - /* 0x04 */ s8 unk04; - /* 0x05 */ s8 unk05; - /* 0x06 */ u16 unk06; - /* 0x08 */ u32 unk08; - /* 0x0C */ u32 unk0C; - /* 0x10 */ StructSlotInitInnerArg1 unk10[2]; -} StructSlotInitArg1; // Size unknown - -typedef struct { - /* 0x00 */ u8 unk00; - /* 0x01 */ u8 unk01; - /* 0x02 */ u8 unk02; - /* 0x03 */ u8 unk03; - /* 0x04 */ u8 unk04; - /* 0x05 */ char unk05[3]; - /* 0x08 */ s32 unk08; -} StructSlotInitArg2; // Size unknown - -static void msmStreamPauseFade(s32 arg0); -static void msmStreamFade(s32 arg0); +static void msmStreamPauseFade(s32 streamNo); +static void msmStreamFade(s32 streamNo); static void msmStreamDvdCallback(s32 result, DVDFileInfo* fileInfo); static void msmStreamStopSub(s32 streamNo, s32 speed); -static void msmStreamDvdCallback2(s32 arg0, DVDFileInfo* arg1); +static void msmStreamDvdCallback2(s32 result, DVDFileInfo* fileInfo); static u32 msmStreamUpdateFunc(void* buffer1, u32 len1, void* buffer2, u32 len2, u32 user); -static s32 msmStreamSlotInit(msmStreamUnk20Struct* arg0, StructSlotInitArg1* arg1, StructSlotInitArg2* arg2, s32 arg3); +static s32 msmStreamSlotInit(MSM_STREAM_SLOT* arg0, MSM_STREAM_PACK* arg1, STREAM_PARAM* arg2, s32 arg3); +static void msmStreamPauseOff(s32 streamNo); +static void msmStreamPauseOn(s32 streamNo, s32 arg1); +static s32 msmStreamPackStartStereo(s32 streamId, MSM_STREAMPARAM *param, s32 sampleOfs); +static s32 msmStreamPackStartMono(s32 streamId, MSM_STREAMPARAM *param, s32 sampleOfs); +static void msmStreamSlotOff(s32 streamNo); -static msmStreamStruct StreamInfo ATTRIBUTE_ALIGN(32); +static inline void msmStreamClose(s32 streamNo) { + MSM_STREAM_SLOT* slot; -static inline void msmStreamInline00(s32 streamNo) { - msmStreamUnk20Struct* temp_ptr; - - temp_ptr = &StreamInfo.unk20[streamNo]; - DVDClose(&temp_ptr->unk70); - temp_ptr->unk06 = 0; + slot = &StreamInfo.slot[streamNo]; + DVDClose(&slot->file); + slot->status = 0; } s32 msmStreamGetStatus(int streamNo) { - msmStreamUnk20Struct* temp_r3; - s32 var_r4; + MSM_STREAM_SLOT* slot; + s32 status; - if (streamNo < 0 || streamNo >= StreamInfo.unk44) { + if (streamNo < 0 || streamNo >= StreamInfo.header.chanMax) { return 0; } - temp_r3 = &StreamInfo.unk20[streamNo]; - switch (temp_r3->unk06) { + slot = &StreamInfo.slot[streamNo]; + switch (slot->status) { case 4: - var_r4 = 2; + status = MSM_STREAM_PLAY; break; case 2: case 3: - var_r4 = 4; + status = MSM_STREAM_PAUSEOUT; break; case 5: - var_r4 = 1; + status = MSM_STREAM_STOP; break; default: - var_r4 = 0; + status = MSM_STREAM_DONE; break; } - if (temp_r3->unk3C_5 == 1) { - var_r4 = 3; + if (slot->pauseF == TRUE) { + status = MSM_STREAM_PAUSEIN; } - if (var_r4 == 0 && temp_r3->unk0E != -1) { - var_r4 = msmStreamGetStatus(temp_r3->unk0E); + if (status == MSM_STREAM_DONE && slot->slotL != -1) { + status = msmStreamGetStatus(slot->slotL); } - return var_r4; + return status; } -static inline void msmStreamInline04(msmStreamUnk20Struct* arg0) { - s32 var_r10; - s32 temp_var; +static void msmStreamUpdateBaseParam(MSM_STREAM_SLOT* slot) { + s32 pan; + s32 vol; - if (StreamInfo.unk12 != 0) { - var_r10 = arg0->unk0C + arg0->unk0D - 0x40; - if (var_r10 < 0) { - var_r10 = 0; + if (StreamInfo.outputMode != 0) { + pan = slot->panBase + slot->pan - 64; + if (pan < 0) { + pan = 0; } - if (var_r10 > 0x7F) { - var_r10 = 0x7F; + if (pan > 127) { + pan = 127; } } else { - var_r10 = 0x40; + pan = 64; } - temp_var = arg0->unk08 * arg0->unk09 * arg0->unk0A * arg0->unk0B / 2048383; - sndStreamMixParameterEx(arg0->unk00, temp_var * StreamInfo.unk11 / 127, var_r10, arg0->unk2C, arg0->unk2D, arg0->unk2E); + vol = slot->volBase * slot->vol * slot->volFade * slot->pauseVol / (127*127*127); + sndStreamMixParameterEx(slot->stid, vol * StreamInfo.masterVol / 127, pan, slot->span, slot->auxA, slot->auxB); } -void msmStreamSetMasterVolume(s32 arg0) { - s32 var_r27; +void msmStreamSetMasterVolume(s32 vol) { + s32 i; - StreamInfo.unk11 = arg0 & 0x7F; - for (var_r27 = 0; var_r27 < StreamInfo.unk44; var_r27++) { - if (StreamInfo.unk20[var_r27].unk06 != 0) { - msmStreamInline04(&StreamInfo.unk20[var_r27]); + StreamInfo.masterVol = vol & 127; + for (i = 0; i < StreamInfo.header.chanMax; i++) { + if (StreamInfo.slot[i].status != 0) { + msmStreamUpdateBaseParam(&StreamInfo.slot[i]); } } } -static inline BOOL msmStreamInline01(msmStreamUnk20Struct* arg0) { - if (arg0->unk06 != 0 || arg0->unk3C_5 != 0) { +static inline BOOL msmStreamIsPlay(MSM_STREAM_SLOT* slot) { + if (slot->status != 0 || slot->pauseF != 0) { return TRUE; } else { return FALSE; } } -void msmStreamStopAll(s32 speed) { - msmStreamUnk20Struct* temp_r29; - s32 var_r28; +void msmStreamStopAll(s32 speed) +{ + MSM_STREAM_SLOT* slot; + s32 i; msmSysIrqDisable(); - for (var_r28 = 0; var_r28 < StreamInfo.unk44; var_r28++) { - if (var_r28 >= 0 && var_r28 < StreamInfo.unk44) { - temp_r29 = &StreamInfo.unk20[var_r28]; - if (msmStreamInline01(temp_r29)) { + for (i = 0; i < StreamInfo.header.chanMax; i++) { + if (i >= 0 && i < StreamInfo.header.chanMax) { + slot = &StreamInfo.slot[i]; + if (msmStreamIsPlay(slot)) { msmSysIrqDisable(); - msmStreamStopSub(var_r28, speed); - if (temp_r29->unk0E != -1) { - msmStreamStopSub(temp_r29->unk0E, speed); + msmStreamStopSub(i, speed); + if (slot->slotL != -1) { + msmStreamStopSub(slot->slotL, speed); } - if (temp_r29->unk0F != -1) { - msmStreamStopSub(temp_r29->unk0F, speed); + if (slot->slotR != -1) { + msmStreamStopSub(slot->slotR, speed); } msmSysIrqEnable(); } @@ -220,38 +192,38 @@ void msmStreamStopAll(s32 speed) { msmSysIrqEnable(); } -static inline void msmStreamInline03(int streamNo, s32 speed) { - msmStreamUnk20Struct* temp_ptr = &StreamInfo.unk20[streamNo]; +static inline void msmStreamSetFade(int streamNo, s32 speed) { + MSM_STREAM_SLOT* slot = &StreamInfo.slot[streamNo]; - if (temp_ptr->unk3C_5 != 0) { - temp_ptr->unk3C_5 = 0; + if (slot->pauseF != 0) { + slot->pauseF = 0; speed = 0; } - temp_ptr->unk24 = speed / 15; - if (temp_ptr->unk24 != 0) { - temp_ptr->unk28 = temp_ptr->unk24; - temp_ptr->unk0A = 0x7F; + slot->fadeMaxTime = speed / 15; + if (slot->fadeMaxTime != 0) { + slot->fadeTime = slot->fadeMaxTime; + slot->volFade = 127; } else { msmStreamSlotOff(streamNo); } } s32 msmStreamStop(int streamNo, s32 speed) { - msmStreamUnk20Struct* temp_r31; + MSM_STREAM_SLOT* slot; s32 unused; - if (streamNo < 0 || streamNo >= StreamInfo.unk44) { - return MSM_ERR_8C; + if (streamNo < 0 || streamNo >= StreamInfo.header.chanMax) { + return MSM_ERR_RANGE_STREAM; } - temp_r31 = &StreamInfo.unk20[streamNo]; - if (msmStreamInline01(temp_r31)) { + slot = &StreamInfo.slot[streamNo]; + if (msmStreamIsPlay(slot)) { msmSysIrqDisable(); - msmStreamInline03(streamNo, speed); - if (temp_r31->unk0E != -1) { - msmStreamInline03(temp_r31->unk0E, speed); + msmStreamSetFade(streamNo, speed); + if (slot->slotL != -1) { + msmStreamSetFade(slot->slotL, speed); } - if (temp_r31->unk0F != -1) { - msmStreamInline03(temp_r31->unk0F, speed); + if (slot->slotR != -1) { + msmStreamSetFade(slot->slotR, speed); } msmSysIrqEnable(); } @@ -259,13 +231,13 @@ s32 msmStreamStop(int streamNo, s32 speed) { } int msmStreamPlay(int streamId, MSM_STREAMPARAM* streamParam) { - if (streamId < 0 || streamId >= StreamInfo.unk42) { + if (streamId < 0 || streamId >= StreamInfo.header.streamMax) { return MSM_ERR_INVALIDID; } - if (StreamInfo.unk14[streamId] == 0) { + if (StreamInfo.streamPackList[streamId] == 0) { return MSM_ERR_REMOVEDID; } - if (StreamInfo.unk18[StreamInfo.unk14[streamId] - StreamInfo.unk58] & 1) { + if (StreamInfo.streamPackFlag[StreamInfo.streamPackList[streamId] - StreamInfo.header.streamPackOfs] & MSM_STREAM_FLAG_STEREO) { return msmStreamPackStartStereo(streamId, streamParam, 0); } else { return msmStreamPackStartMono(streamId, streamParam, 0); @@ -273,785 +245,785 @@ int msmStreamPlay(int streamId, MSM_STREAMPARAM* streamParam) { } void msmStreamPeriodicProc(void) { - msmStreamUnk20Struct* temp_r28; - s32 var_r27; + MSM_STREAM_SLOT* slot; + s32 i; - StreamInfo.unk10 = 0; - for (var_r27 = 0; var_r27 < StreamInfo.unk44; var_r27++) { - temp_r28 = &StreamInfo.unk20[var_r27]; - msmStreamFade(var_r27); - msmStreamPauseOff(var_r27); - msmStreamPauseFade(var_r27); - if (temp_r28->unk06 != 0) { - StreamInfo.unk10++; + StreamInfo.time = 0; + for (i = 0; i < StreamInfo.header.chanMax; i++) { + slot = &StreamInfo.slot[i]; + msmStreamFade(i); + msmStreamPauseOff(i); + msmStreamPauseFade(i); + if (slot->status != 0) { + StreamInfo.time++; } } } -void msmStreamSetOutputMode(s32 arg0) { - s32 var_r27; +void msmStreamSetOutputMode(s32 outputMode) { + s32 i; - StreamInfo.unk12 = arg0; - for (var_r27 = 0; var_r27 < StreamInfo.unk44; var_r27++) { - if (StreamInfo.unk20[var_r27].unk06 != 0) { - msmStreamInline04(&StreamInfo.unk20[var_r27]); + StreamInfo.outputMode = outputMode; + for (i = 0; i < StreamInfo.header.chanMax; i++) { + if (StreamInfo.slot[i].status != 0) { + msmStreamUpdateBaseParam(&StreamInfo.slot[i]); } } } void msmStreamAmemFree(void) { - u32 var_r29; + u32 i; - for (var_r29 = 0; var_r29 < StreamInfo.unk44; var_r29++) { - sndStreamFree(StreamInfo.unk20[var_r29].unk00); + for (i = 0; i < StreamInfo.header.chanMax; i++) { + sndStreamFree(StreamInfo.slot[i].stid); } } s32 msmStreamAmemAlloc(void) { - u32 var_r25; - msmStreamUnk20Struct* temp_r24; + u32 i; + MSM_STREAM_SLOT* slot; - for (var_r25 = 0; var_r25 < StreamInfo.unk44; var_r25++) { - temp_r24 = &StreamInfo.unk20[var_r25]; - temp_r24->unk06 = 0; - temp_r24->unk0F = -1; - temp_r24->unk0E = -1; - temp_r24->unk30 = msmMemAlloc(StreamInfo.unk04); - if (temp_r24->unk30 == NULL) { + for (i = 0; i < StreamInfo.header.chanMax; i++) { + slot = &StreamInfo.slot[i]; + slot->status = 0; + slot->slotR = -1; + slot->slotL = -1; + slot->streamBuf = msmMemAlloc(StreamInfo.bufSize); + if (slot->streamBuf == NULL) { return MSM_ERR_OUTOFMEM; } - temp_r24->unk34 = StreamInfo.unk04; - temp_r24->unk38 = StreamInfo.unk08; - temp_r24->unk00 = sndStreamAllocEx(0xFF, temp_r24->unk30, temp_r24->unk38, StreamInfo.unk48, 0, 0x40, 0, 0, 0, 0, 0x30001, msmStreamUpdateFunc, var_r25, NULL); - if (temp_r24->unk00 == -1) { + slot->streamBufSize = StreamInfo.bufSize; + slot->streamFrq = StreamInfo.frq; + slot->stid = sndStreamAllocEx(0xFF, slot->streamBuf, slot->streamFrq, StreamInfo.header.sampleFrq, 0, 64, 0, 0, 0, 0, 0x30001, msmStreamUpdateFunc, i, NULL); + if (slot->stid == -1) { return MSM_ERR_STREAMALLOC_FAIL; } } - return StreamInfo.unk04 * StreamInfo.unk44; + return StreamInfo.bufSize * StreamInfo.header.chanMax; } -s32 msmStreamInit(char* arg0) { - DVDFileInfo spC; - s32 temp_r27; +s32 msmStreamInit(char *pdtPath) { + DVDFileInfo file; + s32 size; - StreamInfo.unk42 = 0; - StreamInfo.unk44 = 0; - StreamInfo.unk11 = 0x7F; - StreamInfo.unk10 = 0; - if (arg0 == NULL) { + StreamInfo.header.streamMax = 0; + StreamInfo.header.chanMax = 0; + StreamInfo.masterVol = 127; + StreamInfo.time = 0; + if (pdtPath == NULL) { return 0; } - StreamInfo.unk0C = DVDConvertPathToEntrynum(arg0); - if (StreamInfo.unk0C == -1) { + StreamInfo.pdtEntryNum = DVDConvertPathToEntrynum(pdtPath); + if (StreamInfo.pdtEntryNum == -1) { return MSM_ERR_OPENFAIL; } - if (!msmFioOpen(StreamInfo.unk0C, &spC)) { + if (!msmFioOpen(StreamInfo.pdtEntryNum, &file)) { return MSM_ERR_OPENFAIL; } - if (msmFioRead(&spC, &StreamInfo.unk40, 0x20, 0) < 0) { - msmFioClose(&spC); + if (msmFioRead(&file, &StreamInfo.header, 0x20, 0) < 0) { + msmFioClose(&file); return MSM_ERR_READFAIL; } - if (StreamInfo.unk40 != 1) { - msmFioClose(&spC); + if (StreamInfo.header.version != MSM_PDT_FILE_VERSION) { + msmFioClose(&file); return MSM_ERR_INVALIDFILE; } - if (StreamInfo.unk42 != 0) { - temp_r27 = (StreamInfo.unk54 - StreamInfo.unk50 + 0x1F) & ~0x1F; - StreamInfo.unk14 = msmMemAlloc(temp_r27); - if (StreamInfo.unk14 == NULL) { - msmFioClose(&spC); + if (StreamInfo.header.streamMax != 0) { + size = (StreamInfo.header.adpcmParamOfs - StreamInfo.header.streamPackListOfs + 0x1F) & ~0x1F; + StreamInfo.streamPackList = msmMemAlloc(size); + if (StreamInfo.streamPackList == NULL) { + msmFioClose(&file); return MSM_ERR_OUTOFMEM; } - if (msmFioRead(&spC, StreamInfo.unk14, temp_r27, StreamInfo.unk50) < 0) { - msmFioClose(&spC); + if (msmFioRead(&file, StreamInfo.streamPackList, size, StreamInfo.header.streamPackListOfs) < 0) { + msmFioClose(&file); return MSM_ERR_READFAIL; } - temp_r27 = (StreamInfo.unk5C - StreamInfo.unk58 + 0x1F) & ~0x1F; - StreamInfo.unk18 = msmMemAlloc(temp_r27); - if (StreamInfo.unk18 == NULL) { - msmFioClose(&spC); + size = (StreamInfo.header.sampleOfs - StreamInfo.header.streamPackOfs + 0x1F) & ~0x1F; + StreamInfo.streamPackFlag = msmMemAlloc(size); + if (StreamInfo.streamPackFlag == NULL) { + msmFioClose(&file); return MSM_ERR_OUTOFMEM; } - if (msmFioRead(&spC, StreamInfo.unk18, temp_r27, StreamInfo.unk58) < 0) { - msmFioClose(&spC); + if (msmFioRead(&file, StreamInfo.streamPackFlag, size, StreamInfo.header.streamPackOfs) < 0) { + msmFioClose(&file); return MSM_ERR_READFAIL; } - temp_r27 = StreamInfo.unk58 - StreamInfo.unk54; - StreamInfo.unk1C = msmMemAlloc(temp_r27); - if (StreamInfo.unk1C == NULL) { - msmFioClose(&spC); + size = StreamInfo.header.streamPackOfs - StreamInfo.header.adpcmParamOfs; + StreamInfo.adpcmParam = msmMemAlloc(size); + if (StreamInfo.adpcmParam == NULL) { + msmFioClose(&file); return MSM_ERR_OUTOFMEM; } - if (msmFioRead(&spC, StreamInfo.unk1C, temp_r27, StreamInfo.unk54) < 0) { - msmFioClose(&spC); + if (msmFioRead(&file, StreamInfo.adpcmParam, size, StreamInfo.header.adpcmParamOfs) < 0) { + msmFioClose(&file); return MSM_ERR_READFAIL; } } - msmFioClose(&spC); - StreamInfo.unk00 = (StreamInfo.unk48 + 13) / 14; - StreamInfo.unk04 = (8 * StreamInfo.unk00 * StreamInfo.unk4C + 0x3F) & ~0x3F; - StreamInfo.unk08 = (StreamInfo.unk04 / 8) * 14; - StreamInfo.unk20 = msmMemAlloc(StreamInfo.unk44 * sizeof(*StreamInfo.unk20)); - memset(StreamInfo.unk20, 0, StreamInfo.unk44 * sizeof(*StreamInfo.unk20)); + msmFioClose(&file); + StreamInfo.sampleFrq = (StreamInfo.header.sampleFrq + (SND_STREAM_ADPCM_BLKSIZE-1)) / SND_STREAM_ADPCM_BLKSIZE ; + StreamInfo.bufSize = (8 * StreamInfo.sampleFrq * StreamInfo.header.maxBufs + 0x3F) & ~0x3F; + StreamInfo.frq = (StreamInfo.bufSize / SND_STREAM_ADPCM_BLKBYTES ) * SND_STREAM_ADPCM_BLKSIZE; + StreamInfo.slot = msmMemAlloc(StreamInfo.header.chanMax * sizeof(*StreamInfo.slot)); + memset(StreamInfo.slot, 0, StreamInfo.header.chanMax * sizeof(*StreamInfo.slot)); return 0; } -void msmStreamPauseOff(s32 arg0) { - msmStreamUnk20Struct* temp_r31; - u32 temp_r3; - u32 var_r30; +static void msmStreamPauseOff(s32 streamNo) { + MSM_STREAM_SLOT* slot; + u32 ofs; + u32 readSize; - temp_r31 = &StreamInfo.unk20[arg0]; - if (temp_r31->unk14 == 0) { + slot = &StreamInfo.slot[streamNo]; + if (slot->pauseTime == 0) { return; } - if (temp_r31->unk3C_5 == 0) { - temp_r31->unk14 = 0; + if (slot->pauseF == 0) { + slot->pauseTime = 0; return; } - if (temp_r31->unk18 != 0) { - temp_r31->unk18 = -(temp_r31->unk14 + 1); - if (temp_r31->unk18 == 0) { - temp_r31->unk0B = 0x7F; - msmStreamInline04(temp_r31); + if (slot->pauseTimeMax != 0) { + slot->pauseTimeMax = -(slot->pauseTime + 1); + if (slot->pauseTimeMax == 0) { + slot->pauseVol = 127; + msmStreamUpdateBaseParam(slot); } - temp_r31->unk14 = 0; - temp_r31->unk3C_5 = 0; - } else if (temp_r31->unk06 == 0 && DVDFastOpen(StreamInfo.unk0C, &temp_r31->unk70) == TRUE) { - if (--temp_r31->unk14 != 0) { - temp_r31->unk18 = -temp_r31->unk14; - temp_r31->unk1C = 0; - temp_r31->unk0B = 0; + slot->pauseTime = 0; + slot->pauseF = 0; + } else if (slot->status == 0 && DVDFastOpen(StreamInfo.pdtEntryNum, &slot->file) == TRUE) { + if (--slot->pauseTime != 0) { + slot->pauseTimeMax = -slot->pauseTime; + slot->fadeVol = 0; + slot->pauseVol = 0; } else { - temp_r31->unk0B = 0x7F; + slot->pauseVol = 127; } - temp_r31->unk14 = 0; - temp_r31->unk3C_1 = 1; - temp_r31->unk3C_2 = 0; - temp_r31->unk3C_4 = 0; - temp_r31->unk3C_5 = 0; - temp_r31->unk3C_6 = 0; - temp_r31->unk3C_0 = 1; - temp_r31->unk64 = temp_r31->unk68 = (temp_r31->unk10 / 8) * 14; - temp_r31->unk6C = 0; - temp_r31->unk4C = temp_r31->unk10; - var_r30 = temp_r31->unk34 / 2; - if ((temp_r3 = temp_r31->unk50 - temp_r31->unk4C) < temp_r31->unk34 / 2) { - var_r30 = temp_r3; - temp_r31->unk58 = temp_r31->unk34 / 2 - temp_r3; - temp_r31->unk5C = (void*) ((u32) temp_r31->unk30 + temp_r3); - memset(temp_r31->unk5C, 0, temp_r31->unk58); + slot->pauseTime = 0; + slot->firstF = TRUE; + slot->streamOffF = 0; + slot->shutdownF = 0; + slot->pauseF = 0; + slot->updateAramF = 0; + slot->bufNo = 1; + slot->unk64 = slot->unk68 = (slot->pauseLen / SND_STREAM_ADPCM_BLKBYTES) * SND_STREAM_ADPCM_BLKSIZE; + slot->unk6C = 0; + slot->streamPos = slot->pauseLen; + readSize = slot->streamBufSize / 2; + if ((ofs = slot->loopLen - slot->streamPos) < slot->streamBufSize / 2) { + readSize = ofs; + slot->streamReadSize = slot->streamBufSize / 2 - ofs; + slot->streamReadBuf = (void*) ((u32) slot->streamBuf + ofs); + memset(slot->streamReadBuf, 0, slot->streamReadSize); } - temp_r31->unk06 = 2; - temp_r31->unk4C += var_r30; - temp_r31->unk3C_3 = 1; - DVDReadAsync(&temp_r31->unk70, temp_r31->unk30, var_r30, temp_r31->unk48 + (temp_r31->unk4C - var_r30), msmStreamDvdCallback); + slot->status = 2; + slot->streamPos += readSize; + slot->readBusyF = TRUE; + DVDReadAsync(&slot->file, slot->streamBuf, readSize, slot->streamBaseOfs + (slot->streamPos - readSize), msmStreamDvdCallback); } } -static inline void msmStreamInline05(s32 streamNo) { - msmStreamUnk20Struct* temp_r31; +static inline void msmStreamOff(s32 streamNo) { + MSM_STREAM_SLOT* slot; - temp_r31 = &StreamInfo.unk20[streamNo]; - switch (temp_r31->unk06) { + slot = &StreamInfo.slot[streamNo]; + switch (slot->status) { case 2: - temp_r31->unk3C_4 = 1; - temp_r31->unk06 = 5; + slot->shutdownF = TRUE; + slot->status = 5; break; case 3: - msmStreamInline00(streamNo); + msmStreamClose(streamNo); break; case 4: - if (temp_r31->unk3C_2 == 0) { - sndStreamMixParameterEx(temp_r31->unk00, 0, 0x40, 0, 0, 0); - temp_r31->unk3C_2 = 1; - temp_r31->unk06 = 5; + if (slot->streamOffF == FALSE) { + sndStreamMixParameterEx(slot->stid, 0, 64, 0, 0, 0); + slot->streamOffF = TRUE; + slot->status = 5; } break; } } -void msmStreamPauseOn(s32 streamNo, s32 arg1) { - msmStreamUnk20Struct* temp_r31; +static void msmStreamPauseOn(s32 streamNo, s32 speed) { + MSM_STREAM_SLOT* slot; - temp_r31 = &StreamInfo.unk20[streamNo]; - temp_r31->unk14 = 0; - if (temp_r31->unk3C_5 != 0) { + slot = &StreamInfo.slot[streamNo]; + slot->pauseTime = 0; + if (slot->pauseF != 0) { return; } - temp_r31->unk3C_5 = 1; - temp_r31->unk18 = arg1 / 15; - if (temp_r31->unk18 != 0) { - temp_r31->unk1C = temp_r31->unk18; - temp_r31->unk0B = 0x7F; + slot->pauseF = TRUE; + slot->pauseTimeMax = speed / 15; + if (slot->pauseTimeMax != 0) { + slot->fadeVol = slot->pauseTimeMax; + slot->pauseVol = 127; return; } - temp_r31->unk10 = ((temp_r31->unk64 / 7) * 4) & ~7; - if (temp_r31->unk07 != 0) { - if (temp_r31->unk10 >= temp_r31->unk50 - temp_r31->unk34 / 4) { - temp_r31->unk10 = 0; + slot->pauseLen = ((slot->unk64 / 7) * 4) & ~7; + if (slot->stereoF != 0) { + if (slot->pauseLen >= slot->loopLen - slot->streamBufSize / 4) { + slot->pauseLen = 0; } - } else if (temp_r31->unk10 >= temp_r31->unk50) { - temp_r31->unk3C_5 = 0; + } else if (slot->pauseLen >= slot->loopLen) { + slot->pauseF = 0; } - msmStreamInline05(streamNo); + msmStreamOff(streamNo); } -static void msmStreamPauseFade(s32 arg0) { - msmStreamUnk20Struct* temp_r5; +static void msmStreamPauseFade(s32 streamNo) { + MSM_STREAM_SLOT* slot; - temp_r5 = &StreamInfo.unk20[arg0]; - if (temp_r5->unk06 != 4) { + slot = &StreamInfo.slot[streamNo]; + if (slot->status != 4) { return; } - if (temp_r5->unk18 > 0) { - if (--temp_r5->unk1C == 0) { - temp_r5->unk18 = 0; - temp_r5->unk3C_5 = 0; - msmStreamPauseOn(arg0, 0); + if (slot->pauseTimeMax > 0) { + if (--slot->fadeVol == 0) { + slot->pauseTimeMax = 0; + slot->pauseF = 0; + msmStreamPauseOn(streamNo, 0); } else { - temp_r5->unk0B = temp_r5->unk1C * 0x7F / temp_r5->unk18; - msmStreamInline04(temp_r5); + slot->pauseVol = slot->fadeVol * 127 / slot->pauseTimeMax; + msmStreamUpdateBaseParam(slot); } - } else if (temp_r5->unk18 < 0) { - if (++temp_r5->unk1C >= -temp_r5->unk18) { - temp_r5->unk18 = 0; - temp_r5->unk0B = 0x7F; - msmStreamInline04(temp_r5); + } else if (slot->pauseTimeMax < 0) { + if (++slot->fadeVol >= -slot->pauseTimeMax) { + slot->pauseTimeMax = 0; + slot->pauseVol = 127; + msmStreamUpdateBaseParam(slot); } else { - temp_r5->unk0B = temp_r5->unk1C * 0x7F / -temp_r5->unk18; - msmStreamInline04(temp_r5); + slot->pauseVol = slot->fadeVol * 127 / -slot->pauseTimeMax; + msmStreamUpdateBaseParam(slot); } } } -static void msmStreamFade(s32 arg0) { - msmStreamUnk20Struct* temp_r5; +static void msmStreamFade(s32 streamNo) { + MSM_STREAM_SLOT* slot; - temp_r5 = &StreamInfo.unk20[arg0]; - if (temp_r5->unk06 != 4) { + slot = &StreamInfo.slot[streamNo]; + if (slot->status != 4) { return; } - if (temp_r5->unk24 > 0) { - if (--temp_r5->unk28 == 0) { - temp_r5->unk24 = 0; - msmStreamInline03(arg0, 0); + if (slot->fadeMaxTime > 0) { + if (--slot->fadeTime == 0) { + slot->fadeMaxTime = 0; + msmStreamSetFade(streamNo, 0); } else { - temp_r5->unk0A = temp_r5->unk28 * 0x7F / temp_r5->unk24; - msmStreamInline04(temp_r5); + slot->volFade = slot->fadeTime * 127 / slot->fadeMaxTime; + msmStreamUpdateBaseParam(slot); } - } else if (temp_r5->unk24 < 0) { - if (++temp_r5->unk28 >= -temp_r5->unk24) { - temp_r5->unk24 = 0; - temp_r5->unk0A = 0x7F; - msmStreamInline04(temp_r5); + } else if (slot->fadeMaxTime < 0) { + if (++slot->fadeTime >= -slot->fadeMaxTime) { + slot->fadeMaxTime = 0; + slot->volFade = 127; + msmStreamUpdateBaseParam(slot); } else { - temp_r5->unk0A = temp_r5->unk28 * 0x7F / -temp_r5->unk24; - msmStreamInline04(temp_r5); + slot->volFade = slot->fadeTime * 127 / -slot->fadeMaxTime; + msmStreamUpdateBaseParam(slot); } } } static void msmStreamStopSub(s32 streamNo, s32 speed) { - msmStreamUnk20Struct* temp_r31; - s32 var_r4; + MSM_STREAM_SLOT* slot; + s32 time; - var_r4 = speed; - temp_r31 = &StreamInfo.unk20[streamNo]; - if (temp_r31->unk3C_5 != 0) { - temp_r31->unk3C_5 = 0; - var_r4 = 0; + time = speed; + slot = &StreamInfo.slot[streamNo]; + if (slot->pauseF != 0) { + slot->pauseF = 0; + time = 0; } - temp_r31->unk24 = var_r4 / 15; - if (temp_r31->unk24 != 0) { - temp_r31->unk28 = temp_r31->unk24; - temp_r31->unk0A = 0x7F; + slot->fadeMaxTime = time / 15; + if (slot->fadeMaxTime != 0) { + slot->fadeTime = slot->fadeMaxTime; + slot->volFade = 127; return; } - msmStreamInline05(streamNo); + msmStreamOff(streamNo); } -static void msmStreamSetParamSub(msmStreamUnk20Struct* arg0) { - int var_r10; - s32 temp_var; +static void msmStreamSetParamSub(MSM_STREAM_SLOT* slot) { + int pan; + s32 vol; - if (StreamInfo.unk12 != 0) { - var_r10 = arg0->unk0C + arg0->unk0D - 0x40; - if (var_r10 < 0) { - var_r10 = 0; + if (StreamInfo.outputMode != 0) { + pan = slot->panBase + slot->pan - 64; + if (pan < 0) { + pan = 0; } - if (var_r10 > 0x7F) { - var_r10 = 0x7F; + if (pan > 127) { + pan = 127; } } else { - var_r10 = 0x40; + pan = 64; } - temp_var = arg0->unk08 * arg0->unk09 * arg0->unk0A * arg0->unk0B / 2048383; - sndStreamMixParameterEx(arg0->unk00, temp_var * StreamInfo.unk11 / 127, var_r10, arg0->unk2C, arg0->unk2D, arg0->unk2E); + vol = slot->volBase * slot->vol * slot->volFade * slot->pauseVol / (127*127*127); + sndStreamMixParameterEx(slot->stid, vol * StreamInfo.masterVol / 127, pan, slot->span, slot->auxA, slot->auxB); } -s32 msmStreamPackStartStereo(s32 arg0, MSM_STREAMPARAM* arg1, s32 arg2) { - s32 var_r29; - s32 var_r28; - s32 var_r27; - u32 temp_r3_3; - u32 temp_r3_4; - StructSlotInitArg2 sp1C; - msmStreamUnk20Struct* temp_r25; - msmStreamUnk20Struct* temp_r24; - StructSlotInitArg1* temp_r23; +static s32 msmStreamPackStartStereo(s32 streamId, MSM_STREAMPARAM *param, s32 sampleOfs) { + s32 flag; + s32 chanL; + s32 chanR; + u32 sizeL; + u32 sizeR; + STREAM_PARAM streamParam; + MSM_STREAM_SLOT* slotL; + MSM_STREAM_SLOT* slotR; + MSM_STREAM_PACK* pack; - var_r29 = (arg1 != NULL) ? arg1->flag : 0; - if (var_r29 & MSM_STREAMPARAM_CHAN) { - var_r28 = arg1->chan; - var_r27 = arg1->chan + 1; - if (var_r28 < 0 || var_r28 >= StreamInfo.unk44) { - return MSM_ERR_6E; + flag = (param != NULL) ? param->flag : 0; + if (flag & MSM_STREAMPARAM_CHAN) { + chanL = param->chan; + chanR = param->chan + 1; + if (chanL < 0 || chanL >= StreamInfo.header.chanMax) { + return MSM_ERR_CHANLIMIT; } - if (var_r27 < 0 || var_r27 >= StreamInfo.unk44) { - return MSM_ERR_6E; + if (chanR < 0 || chanR >= StreamInfo.header.chanMax) { + return MSM_ERR_CHANLIMIT; } - if (msmStreamInline01(&StreamInfo.unk20[var_r28])) { - return MSM_ERR_6E; + if (msmStreamIsPlay(&StreamInfo.slot[chanL])) { + return MSM_ERR_CHANLIMIT; } - if (msmStreamInline01(&StreamInfo.unk20[var_r27])) { - return MSM_ERR_6E; + if (msmStreamIsPlay(&StreamInfo.slot[chanR])) { + return MSM_ERR_CHANLIMIT; } } else { - for (var_r28 = 0; var_r28 < StreamInfo.unk44; var_r28++) { - if (!msmStreamInline01(&StreamInfo.unk20[var_r28])) { + for (chanL = 0; chanL < StreamInfo.header.chanMax; chanL++) { + if (!msmStreamIsPlay(&StreamInfo.slot[chanL])) { break; } } - for (var_r27 = var_r28 + 1; var_r27 < StreamInfo.unk44; var_r27++) { - if (!msmStreamInline01(&StreamInfo.unk20[var_r27])) { + for (chanR = chanL + 1; chanR < StreamInfo.header.chanMax; chanR++) { + if (!msmStreamIsPlay(&StreamInfo.slot[chanR])) { break; } } - if (var_r28 == StreamInfo.unk44 || var_r27 == StreamInfo.unk44) { - return MSM_ERR_6E; + if (chanL == StreamInfo.header.chanMax || chanR == StreamInfo.header.chanMax) { + return MSM_ERR_CHANLIMIT; } } - temp_r25 = &StreamInfo.unk20[var_r28]; - temp_r24 = &StreamInfo.unk20[var_r27]; - temp_r23 = (StructSlotInitArg1*) ((u32) StreamInfo.unk18 + (StreamInfo.unk14[arg0] - StreamInfo.unk58)); - sp1C.unk00 = (var_r29 & MSM_STREAMPARAM_VOL) ? arg1->vol : 0x7F; - sp1C.unk02 = (var_r29 & MSM_STREAMPARAM_SPAN) ? arg1->span : (s32) temp_r23->unk03; - sp1C.unk03 = (var_r29 & MSM_STREAMPARAM_AUXA) ? arg1->auxA : (s32) temp_r23->unk04; - sp1C.unk04 = (var_r29 & MSM_STREAMPARAM_AUXB) ? arg1->auxB : (s32) temp_r23->unk05; - sp1C.unk08 = arg2; + slotL = &StreamInfo.slot[chanL]; + slotR = &StreamInfo.slot[chanR]; + pack = (MSM_STREAM_PACK*) ((u32) StreamInfo.streamPackFlag + (StreamInfo.streamPackList[streamId] - StreamInfo.header.streamPackOfs)); + streamParam.vol = (flag & MSM_STREAMPARAM_VOL) ? param->vol : 127; + streamParam.span = (flag & MSM_STREAMPARAM_SPAN) ? param->span : (s32) pack->span; + streamParam.auxA = (flag & MSM_STREAMPARAM_AUXA) ? param->auxA : (s32) pack->auxA; + streamParam.auxB = (flag & MSM_STREAMPARAM_AUXB) ? param->auxB : (s32) pack->auxB; + streamParam.sampleOfs = sampleOfs; msmSysIrqDisable(); - sp1C.unk01 = 0; - temp_r3_3 = msmStreamSlotInit(temp_r25, temp_r23, &sp1C, 0); - sp1C.unk01 = 0x7F; - temp_r3_4 = msmStreamSlotInit(temp_r24, temp_r23, &sp1C, 1); - temp_r25->unk04 = arg0; - temp_r24->unk04 = -1; - temp_r25->unk0E = var_r27; - temp_r24->unk0F = var_r28; - if ((var_r29 & MSM_STREAMPARAM_FADESPEED) && arg1->fadeSpeed != 0) { - temp_r25->unk24 = temp_r24->unk24 = -arg1->fadeSpeed / 15; - temp_r25->unk28 = temp_r24->unk28 = 0; - temp_r25->unk0A = temp_r24->unk0A = 0; + streamParam.pan = 0; + sizeL = msmStreamSlotInit(slotL, pack, &streamParam, 0); + streamParam.pan = 127; + sizeR = msmStreamSlotInit(slotR, pack, &streamParam, 1); + slotL->streamId = streamId; + slotR->streamId = -1; + slotL->slotL = chanR; + slotR->slotR = chanL; + if ((flag & MSM_STREAMPARAM_FADESPEED) && param->fadeSpeed != 0) { + slotL->fadeMaxTime = slotR->fadeMaxTime = -param->fadeSpeed / 15; + slotL->fadeTime = slotR->fadeTime = 0; + slotL->volFade = slotR->volFade = 0; } msmSysIrqEnable(); - if (temp_r3_3 == 0) { + if (sizeL == 0) { return 0; } - if (var_r29 & MSM_STREAMPARAM_PAUSE) { - temp_r25->unk3C_5 = temp_r24->unk3C_5 = 1; - temp_r25->unk06 = temp_r24->unk06 = 0; - return var_r28; + if (flag & MSM_STREAMPARAM_PAUSE) { + slotL->pauseF = slotR->pauseF = 1; + slotL->status = slotR->status = 0; + return chanL; } - if (DVDFastOpen(StreamInfo.unk0C, &temp_r25->unk70) != 1) { + if (DVDFastOpen(StreamInfo.pdtEntryNum, &slotL->file) != 1) { return MSM_ERR_OPENFAIL; } - if (DVDFastOpen(StreamInfo.unk0C, &temp_r24->unk70) != 1) { - DVDClose(&temp_r25->unk70); + if (DVDFastOpen(StreamInfo.pdtEntryNum, &slotR->file) != 1) { + DVDClose(&slotL->file); return MSM_ERR_OPENFAIL; } - temp_r25->unk4C += temp_r3_3; - temp_r24->unk4C += temp_r3_4; - temp_r25->unk3C_3 = 1; - DVDReadAsync(&temp_r25->unk70, temp_r25->unk30, temp_r3_3, temp_r25->unk48 + (temp_r25->unk4C - temp_r3_3), msmStreamDvdCallback); - temp_r24->unk3C_3 = 1; - DVDReadAsync(&temp_r24->unk70, temp_r24->unk30, temp_r3_4, temp_r24->unk48 + (temp_r24->unk4C - temp_r3_4), msmStreamDvdCallback); - return var_r28; + slotL->streamPos += sizeL; + slotR->streamPos += sizeR; + slotL->readBusyF = 1; + DVDReadAsync(&slotL->file, slotL->streamBuf, sizeL, slotL->streamBaseOfs + (slotL->streamPos - sizeL), msmStreamDvdCallback); + slotR->readBusyF = 1; + DVDReadAsync(&slotR->file, slotR->streamBuf, sizeR, slotR->streamBaseOfs + (slotR->streamPos - sizeR), msmStreamDvdCallback); + return chanL; } -s32 msmStreamPackStartMono(s32 arg0, MSM_STREAMPARAM* arg1, s32 arg2) { - s32 var_r30; - s32 var_r29; - u32 temp_r3_2; - StructSlotInitArg2 sp18; - msmStreamUnk20Struct* temp_r27; - StructSlotInitArg1* temp_r25; +static s32 msmStreamPackStartMono(s32 streamId, MSM_STREAMPARAM *param, s32 sampleOfs) { + s32 flag; + s32 chan; + u32 size; + STREAM_PARAM streamParam; + MSM_STREAM_SLOT* slot; + MSM_STREAM_PACK* pack; - var_r30 = (arg1 != NULL) ? arg1->flag : 0; - if (var_r30 & MSM_STREAMPARAM_CHAN) { - var_r29 = arg1->chan; - if (var_r29 < 0 || var_r29 >= StreamInfo.unk44) { - return MSM_ERR_6E; + flag = (param != NULL) ? param->flag : 0; + if (flag & MSM_STREAMPARAM_CHAN) { + chan = param->chan; + if (chan < 0 || chan >= StreamInfo.header.chanMax) { + return MSM_ERR_CHANLIMIT; } - if (msmStreamInline01(&StreamInfo.unk20[var_r29])) { - return MSM_ERR_6E; + if (msmStreamIsPlay(&StreamInfo.slot[chan])) { + return MSM_ERR_CHANLIMIT; } } else { - for (var_r29 = 0; var_r29 < StreamInfo.unk44; var_r29++) { - if (!msmStreamInline01(&StreamInfo.unk20[var_r29])) { + for (chan = 0; chan < StreamInfo.header.chanMax; chan++) { + if (!msmStreamIsPlay(&StreamInfo.slot[chan])) { break; } } - if (var_r29 == StreamInfo.unk44) { - return MSM_ERR_6E; + if (chan == StreamInfo.header.chanMax) { + return MSM_ERR_CHANLIMIT; } } - temp_r27 = &StreamInfo.unk20[var_r29]; - temp_r25 = (StructSlotInitArg1*) ((u32) StreamInfo.unk18 + (StreamInfo.unk14[arg0] - StreamInfo.unk58)); - sp18.unk00 = (var_r30 & MSM_STREAMPARAM_VOL) ? arg1->vol : 0x7F; - sp18.unk01 = (var_r30 & MSM_STREAMPARAM_PAN) ? arg1->pan : 0x40; - sp18.unk02 = (var_r30 & MSM_STREAMPARAM_SPAN) ? arg1->span : (s32) temp_r25->unk03; - sp18.unk03 = (var_r30 & MSM_STREAMPARAM_AUXA) ? arg1->auxA : (s32) temp_r25->unk04; - sp18.unk04 = (var_r30 & MSM_STREAMPARAM_AUXB) ? arg1->auxB : (s32) temp_r25->unk05; - sp18.unk08 = arg2; + slot = &StreamInfo.slot[chan]; + pack = (MSM_STREAM_PACK*) ((u32) StreamInfo.streamPackFlag + (StreamInfo.streamPackList[streamId] - StreamInfo.header.streamPackOfs)); + streamParam.vol = (flag & MSM_STREAMPARAM_VOL) ? param->vol : 127; + streamParam.pan = (flag & MSM_STREAMPARAM_PAN) ? param->pan : 64; + streamParam.span = (flag & MSM_STREAMPARAM_SPAN) ? param->span : (s32) pack->span; + streamParam.auxA = (flag & MSM_STREAMPARAM_AUXA) ? param->auxA : (s32) pack->auxA; + streamParam.auxB = (flag & MSM_STREAMPARAM_AUXB) ? param->auxB : (s32) pack->auxB; + streamParam.sampleOfs = sampleOfs; msmSysIrqDisable(); - temp_r3_2 = msmStreamSlotInit(temp_r27, temp_r25, &sp18, 0); - temp_r27->unk04 = arg0; - if ((var_r30 & MSM_STREAMPARAM_FADESPEED) && arg1->fadeSpeed != 0) { - temp_r27->unk24 = -arg1->fadeSpeed / 15; - temp_r27->unk28 = 0; - temp_r27->unk0A = 0; + size = msmStreamSlotInit(slot, pack, &streamParam, 0); + slot->streamId = streamId; + if ((flag & MSM_STREAMPARAM_FADESPEED) && param->fadeSpeed != 0) { + slot->fadeMaxTime = -param->fadeSpeed / 15; + slot->fadeTime = 0; + slot->volFade = 0; } msmSysIrqEnable(); - if (temp_r3_2 == 0) { + if (size == 0) { return 0; } - if (var_r30 & MSM_STREAMPARAM_PAUSE) { - temp_r27->unk3C_5 = 1; - temp_r27->unk06 = 0; - return var_r29; + if (flag & MSM_STREAMPARAM_PAUSE) { + slot->pauseF = TRUE; + slot->status = 0; + return chan; } - if (DVDFastOpen(StreamInfo.unk0C, &temp_r27->unk70) != 1) { + if (DVDFastOpen(StreamInfo.pdtEntryNum, &slot->file) != 1) { return MSM_ERR_OPENFAIL; } - temp_r27->unk4C += temp_r3_2; - temp_r27->unk3C_3 = 1; - DVDReadAsync(&temp_r27->unk70, temp_r27->unk30, temp_r3_2, temp_r27->unk48 + (temp_r27->unk4C - temp_r3_2), msmStreamDvdCallback); - return var_r29; + slot->streamPos += size; + slot->readBusyF = TRUE; + DVDReadAsync(&slot->file, slot->streamBuf, size, slot->streamBaseOfs + (slot->streamPos - size), msmStreamDvdCallback); + return chan; } -// Note: identical to msmStreamInline05. -void msmStreamSlotOff(s32 streamNo) { - msmStreamUnk20Struct* temp_r31; +// Note: identical to msmStreamOff. +static void msmStreamSlotOff(s32 streamNo) { + MSM_STREAM_SLOT* slot; - temp_r31 = &StreamInfo.unk20[streamNo]; - switch (temp_r31->unk06) { + slot = &StreamInfo.slot[streamNo]; + switch (slot->status) { case 2: - temp_r31->unk3C_4 = 1; - temp_r31->unk06 = 5; + slot->shutdownF = 1; + slot->status = 5; break; case 3: - msmStreamInline00(streamNo); + msmStreamClose(streamNo); break; case 4: - if (temp_r31->unk3C_2 == 0) { - sndStreamMixParameterEx(temp_r31->unk00, 0, 0x40, 0, 0, 0); - temp_r31->unk3C_2 = 1; - temp_r31->unk06 = 5; + if (slot->streamOffF == 0) { + sndStreamMixParameterEx(slot->stid, 0, 64, 0, 0, 0); + slot->streamOffF = TRUE; + slot->status = 5; } break; } } -static inline void msmStreamInline06(s32 streamNo) { - msmStreamUnk20Struct* temp_r25; +static void msmStreamShutdown(s32 streamNo) { + MSM_STREAM_SLOT* slot; - temp_r25 = &StreamInfo.unk20[streamNo]; + slot = &StreamInfo.slot[streamNo]; msmStreamSlotOff(streamNo); - sndStreamDeactivate(temp_r25->unk00); - if (temp_r25->unk3C_3 == 0) { - msmStreamInline00(streamNo); + sndStreamDeactivate(slot->stid); + if (slot->readBusyF == 0) { + msmStreamClose(streamNo); } else { - temp_r25->unk3C_4 = 1; + slot->shutdownF = 1; } } -static void msmStreamData(s32 arg0) { - s32 temp_r5; - u32 var_r28; - void* var_r27; - msmStreamUnk20Struct* temp_r26; - s32 var_r24; +static void msmStreamData(s32 streamNo) { + s32 dataSize; + u32 readSize; + void* dataPtr; + MSM_STREAM_SLOT* slot; + s32 off1; - temp_r26 = &StreamInfo.unk20[arg0]; - var_r28 = temp_r5 = temp_r26->unk34 / 2; - var_r27 = (temp_r26->unk3C_0 != 0) - ? (void*) ((u32) temp_r26->unk30 + temp_r5) - : temp_r26->unk30; - temp_r26->unk58 = var_r24 = 0; - if (temp_r26->unk4C + var_r28 > temp_r26->unk50) { - if (temp_r26->unk50 > temp_r26->unk4C) { - var_r28 = temp_r26->unk50 - temp_r26->unk4C; - temp_r26->unk58 = temp_r5 - var_r28; - temp_r26->unk5C = (void*) ((u32) var_r27 + var_r28); - } else if (temp_r26->unk07 != 0) { - temp_r26->unk4C = temp_r26->unk60; + slot = &StreamInfo.slot[streamNo]; + readSize = dataSize = slot->streamBufSize / 2; + dataPtr = (slot->bufNo != 0) + ? (void*) ((u32) slot->streamBuf + dataSize) + : slot->streamBuf; + slot->streamReadSize = off1 = 0; + if (slot->streamPos + readSize > slot->loopLen) { + if (slot->loopLen > slot->streamPos) { + readSize = slot->loopLen - slot->streamPos; + slot->streamReadSize = dataSize - readSize; + slot->streamReadBuf = (void*) ((u32) dataPtr + readSize); + } else if (slot->stereoF != 0) { + slot->streamPos = slot->streamPosStart; } else { - memset(var_r27, 0, temp_r5); - if (temp_r26->unk3C_0 != 0) { - var_r24 = temp_r26->unk38 / 2; + memset(dataPtr, 0, dataSize); + if (slot->bufNo != 0) { + off1 = slot->streamFrq / 2; } - sndStreamARAMUpdate(temp_r26->unk00, var_r24, temp_r26->unk38 / 2, 0, 0); - var_r28 = 0; + sndStreamARAMUpdate(slot->stid, off1, slot->streamFrq / 2, 0, 0); + readSize = 0; } } - if (var_r28 != 0) { - if (DVDGetCommandBlockStatus(&temp_r26->unk70.cb) != 0) { - if (temp_r26->unk3C_6 != 1) { - temp_r26->unk3C_6 = 1; - sndStreamMixParameterEx(temp_r26->unk00, 0, 0x40, 0x40, 0, 0); - memset(temp_r26->unk30, 0, temp_r26->unk34); - sndStreamARAMUpdate(temp_r26->unk00, 0, temp_r26->unk38, 0, 0); + if (readSize != 0) { + if (DVDGetCommandBlockStatus(&slot->file.cb) != 0) { + if (slot->updateAramF != TRUE) { + slot->updateAramF = TRUE; + sndStreamMixParameterEx(slot->stid, 0, 64, 64, 0, 0); + memset(slot->streamBuf, 0, slot->streamBufSize); + sndStreamARAMUpdate(slot->stid, 0, slot->streamFrq, 0, 0); } } else { - if (temp_r26->unk3C_6 == 1) { - temp_r26->unk3C_6 = 0; - msmStreamInline04(temp_r26); + if (slot->updateAramF == TRUE) { + slot->updateAramF = FALSE; + msmStreamUpdateBaseParam(slot); } - temp_r26->unk4C += var_r28; - temp_r26->unk3C_3 = 1; - DVDReadAsync(&temp_r26->unk70, var_r27, var_r28, temp_r26->unk48 + (temp_r26->unk4C - var_r28), msmStreamDvdCallback); + slot->streamPos += readSize; + slot->readBusyF = 1; + DVDReadAsync(&slot->file, dataPtr, readSize, slot->streamBaseOfs + (slot->streamPos - readSize), msmStreamDvdCallback); } - } else if (temp_r26->unk3C_1 != 0) { - temp_r26->unk3C_1= 0; + } else if (slot->firstF != 0) { + slot->firstF= 0; } else { - msmStreamInline06(arg0); + msmStreamShutdown(streamNo); } - temp_r26->unk3C_0 ^= 1; + slot->bufNo ^= 1; } -static inline BOOL msmStreamInline02(s32 streamNo) { - msmStreamUnk20Struct* temp_ptr; +static BOOL msmStreamActivateStream(s32 streamNo) { + MSM_STREAM_SLOT* slot; - temp_ptr = &StreamInfo.unk20[streamNo]; - msmStreamSetParamSub(temp_ptr); - sndStreamFrq(temp_ptr->unk00, temp_ptr->unk40); - sndStreamADPCMParameter(temp_ptr->unk00, temp_ptr->unk44); - sndStreamARAMUpdate(temp_ptr->unk00, 0, temp_ptr->unk38 / 2, 0, 0); - if (sndStreamActivate(temp_ptr->unk00)) { - temp_ptr->unk06 = 4; + slot = &StreamInfo.slot[streamNo]; + msmStreamSetParamSub(slot); + sndStreamFrq(slot->stid, slot->frq); + sndStreamADPCMParameter(slot->stid, slot->adpcmInfo); + sndStreamARAMUpdate(slot->stid, 0, slot->streamFrq / 2, 0, 0); + if (sndStreamActivate(slot->stid)) { + slot->status = 4; msmStreamData(streamNo); return TRUE; } else { - msmStreamInline00(streamNo); + msmStreamClose(streamNo); return FALSE; } } -static void msmStreamDvdCallback(s32 arg0, DVDFileInfo* arg1) { - s32 var_r28; - msmStreamUnk20Struct* temp_r27; +static void msmStreamDvdCallback(s32 result, DVDFileInfo* fileInfo) { + s32 readSize; + MSM_STREAM_SLOT* slot; - for (var_r28 = 0; var_r28 < StreamInfo.unk44; var_r28++) { - if (&StreamInfo.unk20[var_r28].unk70 == arg1) { + for (readSize = 0; readSize < StreamInfo.header.chanMax; readSize++) { + if (&StreamInfo.slot[readSize].file == fileInfo) { break; } } - if (var_r28 == StreamInfo.unk44) { + if (readSize == StreamInfo.header.chanMax) { return; } - temp_r27 = &StreamInfo.unk20[var_r28]; - temp_r27->unk3C_3 = 0; - if (temp_r27->unk3C_4 != 0) { - temp_r27->unk3C_4 = 0; - msmStreamInline00(var_r28); + slot = &StreamInfo.slot[readSize]; + slot->readBusyF = 0; + if (slot->shutdownF != 0) { + slot->shutdownF = 0; + msmStreamClose(readSize); return; } - if (DVDGetCommandBlockStatus(&arg1->cb) == 0) { - switch (temp_r27->unk06) { + if (DVDGetCommandBlockStatus(&fileInfo->cb) == 0) { + switch (slot->status) { case 2: - if (temp_r27->unk0E != -1) { - if (StreamInfo.unk20[temp_r27->unk0E].unk06 != 3) { - temp_r27->unk06 = 3; + if (slot->slotL != -1) { + if (StreamInfo.slot[slot->slotL].status != 3) { + slot->status = 3; break; } - if (!msmStreamInline02(temp_r27->unk0E)) { - temp_r27->unk0E = -1; + if (!msmStreamActivateStream(slot->slotL)) { + slot->slotL = -1; } } - if (temp_r27->unk0F != -1) { - if (StreamInfo.unk20[temp_r27->unk0F].unk06 != 3) { - temp_r27->unk06 = 3; + if (slot->slotR != -1) { + if (StreamInfo.slot[slot->slotR].status != 3) { + slot->status = 3; break; } - if (!msmStreamInline02(temp_r27->unk0F)) { - temp_r27->unk0F = -1; + if (!msmStreamActivateStream(slot->slotR)) { + slot->slotR = -1; } } - if (!msmStreamInline02(var_r28)) { - if (temp_r27->unk0E != -1) { - StreamInfo.unk20[temp_r27->unk0E].unk0F = -1; + if (!msmStreamActivateStream(readSize)) { + if (slot->slotL != -1) { + StreamInfo.slot[slot->slotL].slotR = -1; } - if (temp_r27->unk0F != -1) { - StreamInfo.unk20[temp_r27->unk0F].unk0E = -1; + if (slot->slotR != -1) { + StreamInfo.slot[slot->slotR].slotL = -1; } } break; case 4: - if (temp_r27->unk4C >= temp_r27->unk50) { - if (temp_r27->unk07 != 0) { - temp_r27->unk4C = temp_r27->unk60; - if (temp_r27->unk58 != 0) { - temp_r27->unk3C_3 = 1; - DVDReadAsync(arg1, temp_r27->unk5C, temp_r27->unk58, temp_r27->unk48 + temp_r27->unk4C, msmStreamDvdCallback2); - temp_r27->unk4C += temp_r27->unk58; + if (slot->streamPos >= slot->loopLen) { + if (slot->stereoF != 0) { + slot->streamPos = slot->streamPosStart; + if (slot->streamReadSize != 0) { + slot->readBusyF = 1; + DVDReadAsync(fileInfo, slot->streamReadBuf, slot->streamReadSize, slot->streamBaseOfs + slot->streamPos, msmStreamDvdCallback2); + slot->streamPos += slot->streamReadSize; break; } - } else if (temp_r27->unk58 != 0) { - memset(temp_r27->unk5C, 0, temp_r27->unk58); + } else if (slot->streamReadSize != 0) { + memset(slot->streamReadBuf, 0, slot->streamReadSize); } } - sndStreamARAMUpdate(temp_r27->unk00, (temp_r27->unk3C_0 != 0) ? 0 : temp_r27->unk38 / 2, temp_r27->unk38 / 2, 0, 0); + sndStreamARAMUpdate(slot->stid, (slot->bufNo != 0) ? 0 : slot->streamFrq / 2, slot->streamFrq / 2, 0, 0); break; case 5: - temp_r27->unk3C_4 = 0; - msmStreamInline00(var_r28); + slot->shutdownF = 0; + msmStreamClose(readSize); break; } } else { - if (temp_r27->unk06 == 4) { - sndStreamDeactivate(temp_r27->unk00); + if (slot->status == 4) { + sndStreamDeactivate(slot->stid); } - msmStreamInline00(var_r28); - if (temp_r27->unk0E != -1) { - StreamInfo.unk20[temp_r27->unk0E].unk0F = -1; + msmStreamClose(readSize); + if (slot->slotL != -1) { + StreamInfo.slot[slot->slotL].slotR = -1; } - if (temp_r27->unk0F != -1) { - StreamInfo.unk20[temp_r27->unk0F].unk0E = -1; + if (slot->slotR != -1) { + StreamInfo.slot[slot->slotR].slotL = -1; } } } -static void msmStreamDvdCallback2(s32 arg0, DVDFileInfo* arg1) { - msmStreamUnk20Struct* var_r30; - s32 var_r28; +static void msmStreamDvdCallback2(s32 result, DVDFileInfo* fileInfo) { + MSM_STREAM_SLOT* slot; + s32 readSize; - for (var_r28 = 0; var_r28 < StreamInfo.unk44; var_r28++) { - var_r30 = &StreamInfo.unk20[var_r28]; - if (&var_r30->unk70 == arg1) { + for (readSize = 0; readSize < StreamInfo.header.chanMax; readSize++) { + slot = &StreamInfo.slot[readSize]; + if (&slot->file == fileInfo) { break; } } - if (var_r28 == StreamInfo.unk44) { + if (readSize == StreamInfo.header.chanMax) { return; } - var_r30->unk3C_3 = 0; - if (var_r30->unk3C_4 != 0) { - var_r30->unk3C_4 = 0; - msmStreamInline00(var_r28); - } else if (DVDGetCommandBlockStatus(&arg1->cb) == 0) { - sndStreamARAMUpdate(var_r30->unk00, (var_r30->unk3C_0 != 0) ? 0 : var_r30->unk38 / 2, var_r30->unk38 / 2, 0, 0); + slot->readBusyF = FALSE; + if (slot->shutdownF != 0) { + slot->shutdownF = FALSE; + msmStreamClose(readSize); + } else if (DVDGetCommandBlockStatus(&fileInfo->cb) == 0) { + sndStreamARAMUpdate(slot->stid, (slot->bufNo != 0) ? 0 : slot->streamFrq / 2, slot->streamFrq / 2, 0, 0); } else { - if (var_r30->unk06 == 4) { - sndStreamDeactivate(var_r30->unk00); + if (slot->status == 4) { + sndStreamDeactivate(slot->stid); } - msmStreamInline00(var_r28); - if (var_r30->unk0E != -1) { - StreamInfo.unk20[var_r30->unk0E].unk0F = -1; + msmStreamClose(readSize); + if (slot->slotL != -1) { + StreamInfo.slot[slot->slotL].slotR = -1; } - if (var_r30->unk0F != -1) { - StreamInfo.unk20[var_r30->unk0F].unk0E = -1; + if (slot->slotR != -1) { + StreamInfo.slot[slot->slotR].slotL = -1; } } } static u32 msmStreamUpdateFunc(void* buffer1, u32 len1, void* buffer2, u32 len2, u32 user) { - msmStreamUnk20Struct* temp_r31; - s32 temp_r4; - s32 temp_r0; - s32 var_r3; + MSM_STREAM_SLOT* slot; + s32 len3; + s32 updateLen; + s32 len; - temp_r31 = &StreamInfo.unk20[user]; - if (temp_r31->unk3C_2 != 0) { - msmStreamInline06(user); + slot = &StreamInfo.slot[user]; + if (slot->streamOffF != 0) { + msmStreamShutdown(user); return 0; } - temp_r0 = temp_r31->unk38 / 2; - if (len1 < temp_r0) { - var_r3 = 0; - temp_r31->unk64 = temp_r31->unk68 + (len1 - temp_r31->unk6C); + updateLen = slot->streamFrq / 2; + if (len1 < updateLen) { + len = 0; + slot->unk64 = slot->unk68 + (len1 - slot->unk6C); } else { msmStreamData(user); - var_r3 = temp_r0; - temp_r4 = temp_r31->unk68 + (temp_r0 - temp_r31->unk6C); - temp_r31->unk68 = temp_r4; - temp_r31->unk64 = temp_r4; - temp_r31->unk6C = 0; + len = updateLen; + len3 = slot->unk68 + (updateLen - slot->unk6C); + slot->unk68 = len3; + slot->unk64 = len3; + slot->unk6C = 0; } - if (temp_r31->unk64 >= temp_r31->unk54) { - if (temp_r31->unk07 != 0) { - temp_r31->unk68 = 0; - temp_r31->unk64 -= temp_r31->unk54; - if (len1 < temp_r0) { - temp_r31->unk6C = len1 - temp_r31->unk64; + if (slot->unk64 >= slot->loopEndOfs) { + if (slot->stereoF != 0) { + slot->unk68 = 0; + slot->unk64 -= slot->loopEndOfs; + if (len1 < updateLen) { + slot->unk6C = len1 - slot->unk64; } } else { - temp_r31->unk3C_2 = 1; - temp_r31->unk3C_5 = 0; + slot->streamOffF = 1; + slot->pauseF = 0; } } - return var_r3; + return len; } -static s32 msmStreamSlotInit(msmStreamUnk20Struct* arg0, StructSlotInitArg1* arg1, StructSlotInitArg2* arg2, s32 arg3) { - StructSlotInitInnerArg1* temp_r10; +static s32 msmStreamSlotInit(MSM_STREAM_SLOT *slot, MSM_STREAM_PACK* pack, STREAM_PARAM* param, s32 no) { + MSM_STREAM *stream; s32 temp_r3; - s32 var_r30; + s32 ret; - temp_r10 = &arg1->unk10[arg3]; - arg0->unk08 = arg1->unk01; - arg0->unk09 = arg2->unk00; - arg0->unk0A = arg0->unk0B = 0x7F; - arg0->unk0C = arg1->unk02; - arg0->unk0D = arg2->unk01; - arg0->unk2C = arg2->unk02; - arg0->unk2D = arg2->unk03; - arg0->unk2E = arg2->unk04; - arg0->unk07 = (arg1->unk00 >> 1) & 1; - arg0->unk48 = temp_r10->unk00; - arg0->unk60 = (arg1->unk0C >> 1) & ~7; - arg0->unk40 = arg1->unk06; - arg0->unk44 = &StreamInfo.unk1C[temp_r10->unk04]; - arg0->unk24 = 0; - arg0->unk18 = 0; - arg0->unk14 = 0; - arg0->unk10 = 0; - arg0->unk3C_1 = 1; - arg0->unk3C_2 = 0; - arg0->unk3C_4 = 0; - arg0->unk3C_5 = 0; - arg0->unk3C_6 = 0; - arg0->unk3C_0 = 1; - arg0->unk34 = (StreamInfo.unk48 * StreamInfo.unk4C * 8 / 14 + 0x3F) & ~0x3F; - if (arg0->unk34 > StreamInfo.unk04) { - arg0->unk34 = StreamInfo.unk04; + stream = &pack->stream[no]; + slot->volBase = pack->vol; + slot->vol = param->vol; + slot->volFade = slot->pauseVol = 127; + slot->panBase = pack->pan; + slot->pan = param->pan; + slot->span = param->span; + slot->auxA = param->auxA; + slot->auxB = param->auxB; + slot->stereoF = (pack->flag >> 1) & 1; + slot->streamBaseOfs = stream->sampleOfs; + slot->streamPosStart = (pack->loopOfsStart >> 1) & ~7; + slot->frq = pack->frq; + slot->adpcmInfo = &StreamInfo.adpcmParam[stream->adpcmParamIdx]; + slot->fadeMaxTime = 0; + slot->pauseTimeMax = 0; + slot->pauseTime = 0; + slot->pauseLen = 0; + slot->firstF = 1; + slot->streamOffF = 0; + slot->shutdownF = 0; + slot->pauseF = 0; + slot->updateAramF = 0; + slot->bufNo = 1; + slot->streamBufSize = (StreamInfo.header.sampleFrq * StreamInfo.header.maxBufs * SND_STREAM_ADPCM_BLKBYTES / SND_STREAM_ADPCM_BLKSIZE + 0x3F) & ~0x3F; + if (slot->streamBufSize > StreamInfo.bufSize) { + slot->streamBufSize = StreamInfo.bufSize; } - arg0->unk38 = (arg0->unk34 / 8) * 14; - arg0->unk50 = (arg1->unk08 >> 1) & ~0x1F; - arg0->unk54 = (arg0->unk50 / 8) * 14; - arg0->unk64 = arg0->unk68 = 0; - arg0->unk6C = 0; - arg0->unk0E = -1; - arg0->unk0F = -1; - arg0->unk4C = arg2->unk08; - var_r30 = arg0->unk34 / 2; - if ((temp_r3 = arg0->unk50 - arg0->unk4C) < arg0->unk34 / 2) { - var_r30 = temp_r3; - arg0->unk58 = arg0->unk34 / 2 - temp_r3; - arg0->unk5C = (void*) ((u32) arg0->unk30 + temp_r3); - memset(arg0->unk5C, 0, arg0->unk58); + slot->streamFrq = (slot->streamBufSize / SND_STREAM_ADPCM_BLKBYTES) * SND_STREAM_ADPCM_BLKSIZE; + slot->loopLen = (pack->loopOfsEnd >> 1) & ~0x1F; + slot->loopEndOfs = (slot->loopLen / SND_STREAM_ADPCM_BLKBYTES) * SND_STREAM_ADPCM_BLKSIZE; + slot->unk64 = slot->unk68 = 0; + slot->unk6C = 0; + slot->slotL = -1; + slot->slotR = -1; + slot->streamPos = param->sampleOfs; + ret = slot->streamBufSize / 2; + if ((temp_r3 = slot->loopLen - slot->streamPos) < slot->streamBufSize / 2) { + ret = temp_r3; + slot->streamReadSize = slot->streamBufSize / 2 - temp_r3; + slot->streamReadBuf = (void*) ((u32) slot->streamBuf + temp_r3); + memset(slot->streamReadBuf, 0, slot->streamReadSize); } - arg0->unk06 = 2; - return var_r30; + slot->status = 2; + return ret; } diff --git a/src/msm/msmsys.c b/src/msm/msmsys.c index 6dcd4ac9..916e03b0 100644 --- a/src/msm/msmsys.c +++ b/src/msm/msmsys.c @@ -5,233 +5,236 @@ #include "msm/msmse.h" #include "msm/msmstream.h" -static sysData sys; +static MSM_SYS sys; static void msmSysServer(void) { if (sndIsInstalled() == 1) { - if (--sys.unk4F8 == 0) { - sys.unk4F8 = 3; + if (--sys.timer == 0) { + sys.timer = 3; msmMusPeriodicProc(); msmSePeriodicProc(); msmStreamPeriodicProc(); } } - sys.unk4F4(); + sys.oldAIDCallback(); } -static s32 msmSysSetAuxParam(s32 arg0, s32 arg1) +static s32 msmSysSetAuxParam(s32 auxA, s32 auxB) { s32 unused_1[2]; - SND_AUX_CALLBACK sp20[2]; + SND_AUX_CALLBACK auxcb[2]; s32 unused_2[2]; - unkSubStruct *temp_r4_2; - UnkSndAuxUnion *temp_r3; - u32 var_r0; - s32 var_r23; + MSM_AUXPARAM *auxParam; + MSM_AUX *aux; + u32 result; + s32 i; - if (sys.unk18[0] != -2 && arg0 >= 0) { - sys.unk18[0] = arg0; + if (sys.auxParamNo[0] != MSM_AUXNO_NULL && auxA >= 0) { + sys.auxParamNo[0] = auxA; } - if (sys.unk18[1] != -2 && arg1 >= 0) { - sys.unk18[1] = arg1; + if (sys.auxParamNo[1] != MSM_AUXNO_NULL && auxB >= 0) { + sys.auxParamNo[1] = auxB; } - if (sys.unk18[0] < 0 && sys.unk18[1] < 0) { + if (sys.auxParamNo[0] < 0 && sys.auxParamNo[1] < 0) { return 0; } - for (var_r23 = 0; var_r23 < 2; var_r23++) { - if (sys.unk18[var_r23] < 0) { - sp20[var_r23] = NULL; + for (i = 0; i < 2; i++) { + if (sys.auxParamNo[i] < 0) { + auxcb[i] = NULL; continue; } - temp_r4_2 = &sys.unk14[sys.unk18[var_r23]]; - temp_r3 = &sys.unk1C[var_r23]; - switch (temp_r4_2->unk0) { - case 0: - sp20[var_r23] = sndAuxCallbackReverbHI; - temp_r3->revHi.tempDisableFX = temp_r4_2->rev.tempDisableFX; - temp_r3->revHi.coloration = temp_r4_2->rev.coloration; - temp_r3->revHi.mix = temp_r4_2->rev.mix; - temp_r3->revHi.time = temp_r4_2->rev.time; - temp_r3->revHi.damping = temp_r4_2->rev.damping; - temp_r3->revHi.preDelay = temp_r4_2->rev.preDelay; - temp_r3->revHi.crosstalk = temp_r4_2->rev.crosstalk; - var_r0 = sndAuxCallbackPrepareReverbHI(&temp_r3->revHi); + auxParam = &sys.auxParam[sys.auxParamNo[i]]; + aux = &sys.aux[i]; + switch (auxParam->type) { + case MSM_AUX_REVERBHI: + auxcb[i] = sndAuxCallbackReverbHI; + aux->revHi.tempDisableFX = auxParam->revHi.tempDisableFX; + aux->revHi.coloration = auxParam->revHi.coloration; + aux->revHi.mix = auxParam->revHi.mix; + aux->revHi.time = auxParam->revHi.time; + aux->revHi.damping = auxParam->revHi.damping; + aux->revHi.preDelay = auxParam->revHi.preDelay; + aux->revHi.crosstalk = auxParam->revHi.crosstalk; + result = sndAuxCallbackPrepareReverbHI(&aux->revHi); break; - case 1: - sp20[var_r23] = sndAuxCallbackReverbSTD; - temp_r3->revStd.tempDisableFX = temp_r4_2->rev.tempDisableFX; - temp_r3->revStd.coloration = temp_r4_2->rev.coloration; - temp_r3->revStd.mix = temp_r4_2->rev.mix; - temp_r3->revStd.time = temp_r4_2->rev.time; - temp_r3->revStd.damping = temp_r4_2->rev.damping; - temp_r3->revStd.preDelay = temp_r4_2->rev.preDelay; - var_r0 = sndAuxCallbackPrepareReverbSTD(&temp_r3->revStd); + + case MSM_AUX_REVERBSTD: + auxcb[i] = sndAuxCallbackReverbSTD; + aux->revStd.tempDisableFX = auxParam->revStd.tempDisableFX; + aux->revStd.coloration = auxParam->revStd.coloration; + aux->revStd.mix = auxParam->revStd.mix; + aux->revStd.time = auxParam->revStd.time; + aux->revStd.damping = auxParam->revStd.damping; + aux->revStd.preDelay = auxParam->revStd.preDelay; + result = sndAuxCallbackPrepareReverbSTD(&aux->revStd); break; - case 2: - sp20[var_r23] = sndAuxCallbackChorus; - temp_r3->ch.baseDelay = temp_r4_2->ch.baseDelay; - temp_r3->ch.variation = temp_r4_2->ch.variation; - temp_r3->ch.period = temp_r4_2->ch.period; - var_r0 = sndAuxCallbackPrepareChorus(&temp_r3->ch); + + case MSM_AUX_CHORUS: + auxcb[i] = sndAuxCallbackChorus; + aux->chorus.baseDelay = auxParam->chorus.baseDelay; + aux->chorus.variation = auxParam->chorus.variation; + aux->chorus.period = auxParam->chorus.period; + result = sndAuxCallbackPrepareChorus(&aux->chorus); break; - case 3: - sp20[var_r23] = sndAuxCallbackDelay; - temp_r3->delay.delay[0] = temp_r4_2->delay.delay[0]; - temp_r3->delay.feedback[0] = temp_r4_2->delay.feedback[0]; - temp_r3->delay.output[0] = temp_r4_2->delay.output[0]; - temp_r3->delay.delay[1] = temp_r4_2->delay.delay[1]; - temp_r3->delay.feedback[1] = temp_r4_2->delay.feedback[1]; - temp_r3->delay.output[1] = temp_r4_2->delay.output[1]; - temp_r3->delay.delay[2] = temp_r4_2->delay.delay[2]; - temp_r3->delay.feedback[2] = temp_r4_2->delay.feedback[2]; - temp_r3->delay.output[2] = temp_r4_2->delay.output[2]; - var_r0 = sndAuxCallbackPrepareDelay(&temp_r3->delay); + + case MSM_AUX_DELAY: + auxcb[i] = sndAuxCallbackDelay; + aux->delay.delay[0] = auxParam->delay.delay[0]; + aux->delay.feedback[0] = auxParam->delay.feedback[0]; + aux->delay.output[0] = auxParam->delay.output[0]; + aux->delay.delay[1] = auxParam->delay.delay[1]; + aux->delay.feedback[1] = auxParam->delay.feedback[1]; + aux->delay.output[1] = auxParam->delay.output[1]; + aux->delay.delay[2] = auxParam->delay.delay[2]; + aux->delay.feedback[2] = auxParam->delay.feedback[2]; + aux->delay.output[2] = auxParam->delay.output[2]; + result = sndAuxCallbackPrepareDelay(&aux->delay); break; } - if (var_r0 == 0) { - return 1; + if (result == FALSE) { + return TRUE; } } - sndSetAuxProcessingCallbacks(0, sp20[0], &sys.unk1C[0], 0xFF, 0, sp20[1], &sys.unk1C[1], 0xFF, 0); - return 0; + sndSetAuxProcessingCallbacks(0, auxcb[0], &sys.aux[0], 0xFF, 0, auxcb[1], &sys.aux[1], 0xFF, 0); + return FALSE; } static s32 msmSysLoadBaseGroup(void *buf) { - DVDFileInfo spC; - s32 var_r28; - unkStruct3 *temp_r27; - unkStruct4 *temp_r25; + DVDFileInfo file; + s32 i; + MSM_GRP_HEAD *grpData; + MSM_GRP_INFO *grpInfo; - if (msmFioOpen(sys.unk0, &spC) != 1) { + if (msmFioOpen(sys.msmEntryNum, &file) != TRUE) { return MSM_ERR_OPENFAIL; } - for (var_r28 = 0; var_r28 < sys.unk3F4; var_r28++) { - temp_r27 = sys.unk3F8[var_r28]; - temp_r25 = &sys.unk3EC[sys.unk10->unk29[var_r28]]; - if (msmFioRead(&spC, temp_r27, temp_r25->unk8, temp_r25->unk4 + sys.unkC->unk38) < 0) { - msmFioClose(&spC); + for(i = 0; i < sys.baseGrpNum; i++) { + grpData = sys.grpData[i]; + grpInfo = &sys.grpInfo[sys.info->baseGrp[i]]; + if (msmFioRead(&file, grpData, grpInfo->dataSize, grpInfo->dataOfs + sys.header->grpDataOfs) < 0) { + msmFioClose(&file); return MSM_ERR_READFAIL; } - if (msmFioRead(&spC, buf, temp_r25->unk10, temp_r25->unkC + sys.unkC->unk40) < 0) { - msmFioClose(&spC); + if (msmFioRead(&file, buf, grpInfo->sampSize, grpInfo->sampOfs + sys.header->sampOfs) < 0) { + msmFioClose(&file); return MSM_ERR_READFAIL; } - if (!sndPushGroup((void*) (temp_r27->unk4 + (u32) temp_r27), temp_r25->unk0, buf, - (void*) (temp_r27->unk8 + (u32) temp_r27), (void*) (temp_r27->unk0 + (u32) temp_r27))) + if (!sndPushGroup((void*) (grpData->projOfs + (u32) grpData), grpInfo->gid, buf, + (void*) (grpData->sdirOfs + (u32) grpData), (void*) (grpData->poolOfs + (u32) grpData))) { - msmFioClose(&spC); - return MSM_ERR_20; + msmFioClose(&file); + return MSM_ERR_GRP_FAILPUSH; } - sys.unk8 += temp_r25->unk10; + sys.aramP += grpInfo->sampSize; } - msmFioClose(&spC); + msmFioClose(&file); return 0; } -s32 msmSysSearchGroupStack(s32 arg0, s32 arg1) +s32 msmSysSearchGroupStack(s32 grpId, s32 no) { - UnkStructSys43C *var_r3; - u32 var_r5; - s32 var_r6; - s32 var_r7; - s32 var_r8; - s32 var_r9; - s32 var_r0; + MSM_GRP_STACK *stack; + u32 stackNo; + s32 i; + s32 stackNoB; + s32 stackNoA; + s32 maxNo; + s32 stackMax; - var_r8 = -1; - var_r9 = 0; - if (sys.unk3EC[arg0].unk2 == 0) { - var_r3 = sys.unk43C; - var_r0 = sys.unk434; + stackNoA = -1; + maxNo = 0; + if (sys.grpInfo[grpId].stackNo == 0) { + stack = sys.grpStackA; + stackMax = sys.grpStackAMax; } else { - var_r3 = sys.unk474; - var_r0 = sys.unk46C; + stack = sys.grpStackB; + stackMax = sys.grpStackBMax; } - for (var_r6 = 0; var_r6 < var_r0; var_r3++, var_r6++) { - if (var_r6 == arg1) { + for (i = 0; i < stackMax; stack++, i++) { + if (i == no) { continue; } - if ((var_r5 = var_r3->unk04) != 0) { - if (var_r3->unk01 == 0 && var_r5 > var_r9) { - var_r9 = var_r5; - var_r7 = -(var_r6 + 1); + if ((stackNo = stack->num) != 0) { + if (stack->baseGrpF == 0 && stackNo > maxNo) { + maxNo = stackNo; + stackNoB = -(i + 1); } } else { - var_r8 = var_r6; + stackNoA = i; } } - return (var_r8 < 0) ? var_r7 : var_r8; + return (stackNoA < 0) ? stackNoB : stackNoA; } -s32 msmSysGroupInit(DVDFileInfo *arg0) +s32 msmSysGroupInit(DVDFileInfo *file) { - s32 var_r7; - UnkStructSys43C *temp_43C; - unkStruct4 *temp_r20; + s32 i; + MSM_GRP_STACK *stack; + MSM_GRP_INFO *grpInfo; - sys.unk3DC = sys.unk10->unk3; - sys.unk3E0 = 1; - sys.unk3F4 = sys.unk10->unk28; - sys.unk434 = sys.unk10->unk9; - sys.unk435 = 0; - sys.unk436 = 0; - sys.unk46C = sys.unk10->unkA; - sys.unk46D = 0; - sys.unk46E = 0; - if ((sys.unk3EC = msmMemAlloc(sys.unkC->unk24)) == NULL) { + sys.grpMax = sys.info->grpMax; + sys.grpNum = 1; + sys.baseGrpNum = sys.info->baseGrpNum; + sys.grpStackAMax = sys.info->stackDepthA; + sys.grpStackADepth = 0; + sys.grpStackAOfs = 0; + sys.grpStackBMax = sys.info->stackDepthB; + sys.grpStackBDepth = 0; + sys.grpStackBOfs = 0; + if ((sys.grpInfo = msmMemAlloc(sys.header->grpInfoSize)) == NULL) { return MSM_ERR_OUTOFMEM; } - if (msmFioRead(arg0, sys.unk3EC, sys.unkC->unk24, sys.unkC->unk20) < 0) { + if (msmFioRead(file, sys.grpInfo, sys.header->grpInfoSize, sys.header->grpInfoOfs) < 0) { return MSM_ERR_READFAIL; } - if ((sys.unk438 = msmMemAlloc(sys.unk10->unk18 * sys.unk434)) == NULL) { + if ((sys.grpBufA = msmMemAlloc(sys.info->grpBufSizeA * sys.grpStackAMax)) == NULL) { return MSM_ERR_OUTOFMEM; } - if ((sys.unk470 = msmMemAlloc(sys.unk10->unk1C * sys.unk46C)) == NULL) { + if ((sys.grpBufB = msmMemAlloc(sys.info->grpBufSizeB * sys.grpStackBMax)) == NULL) { return MSM_ERR_OUTOFMEM; } - if (sys.unkC->unk54) { - if ((sys.unk3F0 = msmMemAlloc(sys.unkC->unk54)) == NULL) { + if (sys.header->grpSetSize) { + if ((sys.grpSet = msmMemAlloc(sys.header->grpSetSize)) == NULL) { return MSM_ERR_OUTOFMEM; } - if (msmFioRead(arg0, sys.unk3F0, sys.unkC->unk54, sys.unkC->unk50) < 0) { + if (msmFioRead(file, sys.grpSet, sys.header->grpSetSize, sys.header->grpSetOfs) < 0) { return MSM_ERR_READFAIL; } } else { - sys.unk3F0 = NULL; + sys.grpSet = NULL; } - for (var_r7 = 0; var_r7 < sys.unk434; var_r7++) { - temp_43C = &sys.unk43C[var_r7]; - temp_43C->unk00 = temp_43C->unk01 = 0; - temp_43C->unk04 = 0; - temp_43C->unk08 = (void*) ((u32) sys.unk438 + sys.unk10->unk18 * var_r7); + for (i = 0; i < sys.grpStackAMax; i++) { + stack = &sys.grpStackA[i]; + stack->grpId = stack->baseGrpF = 0; + stack->num = 0; + stack->buf = (void*) ((u32) sys.grpBufA + sys.info->grpBufSizeA * i); } - for (var_r7 = 0; var_r7 < sys.unk46C; var_r7++) { - temp_43C = &sys.unk474[var_r7]; - temp_43C->unk00 = temp_43C->unk01 = 0; - temp_43C->unk04 = 0; - temp_43C->unk08 = (void*) ((u32) sys.unk470 + sys.unk10->unk1C * var_r7); + for (i = 0; i < sys.grpStackBMax; i++) { + stack = &sys.grpStackB[i]; + stack->grpId = stack->baseGrpF = 0; + stack->num = 0; + stack->buf = (void*) ((u32) sys.grpBufB + sys.info->grpBufSizeB * i); } - sys.unk3E4 = 0; - for (var_r7 = 0; var_r7 < sys.unk3F4; var_r7++) { - temp_r20 = &sys.unk3EC[sys.unk10->unk29[var_r7]]; - if ((sys.unk3F8[var_r7] = msmMemAlloc(temp_r20->unk8)) == NULL) { + sys.sampSize = 0; + for (i = 0; i < sys.baseGrpNum; i++) { + grpInfo = &sys.grpInfo[sys.info->baseGrp[i]]; + if ((sys.grpData[i] = msmMemAlloc(grpInfo->dataSize)) == NULL) { return MSM_ERR_OUTOFMEM; } - if (sys.unk3E4 < temp_r20->unk10) { - sys.unk3E4 = temp_r20->unk10; + if (sys.sampSize < grpInfo->sampSize) { + sys.sampSize = grpInfo->sampSize; } - temp_r20->unk10 *= -1; + grpInfo->sampSize *= -1; } - sys.unk3E8 = 0; - for (var_r7 = 1; var_r7 < sys.unk3DC; var_r7++) { - temp_r20 = &sys.unk3EC[var_r7]; - if (temp_r20->unk10 < 0) { - temp_r20->unk10 *= -1; - } else if (sys.unk3E8 < temp_r20->unk10) { - sys.unk3E8 = temp_r20->unk10; + sys.sampSizeBase = 0; + for (i = 1; i < sys.grpMax; i++) { + grpInfo = &sys.grpInfo[i]; + if (grpInfo->sampSize < 0) { + grpInfo->sampSize *= -1; + } else if (sys.sampSizeBase < grpInfo->sampSize) { + sys.sampSizeBase = grpInfo->sampSize; } } return 0; @@ -239,88 +242,88 @@ s32 msmSysGroupInit(DVDFileInfo *arg0) void msmSysIrqDisable(void) { - if (sys.unk4EC++ == 0) { - sys.unk4F0 = OSDisableInterrupts(); + if (sys.irqDepth++ == 0) { + sys.irqState = OSDisableInterrupts(); } } void msmSysIrqEnable(void) { - if (sys.unk4EC != 0) { - if (--sys.unk4EC == 0) { - OSRestoreInterrupts(sys.unk4F0); + if (sys.irqDepth != 0) { + if (--sys.irqDepth == 0) { + OSRestoreInterrupts(sys.irqState); } } } -static inline BOOL msmSysInline00(s32 arg0) +static BOOL msmSysCheckBaseGroupNo(s32 grpId) { - s32 var_r6; + s32 i; - for (var_r6 = 0; var_r6 < sys.unk3F4 + sys.unk436 + sys.unk46E; var_r6++) { - if (sys.unk10->unk29[var_r6] == arg0) { + for (i = 0; i < sys.baseGrpNum + sys.grpStackAOfs + sys.grpStackBOfs; i++) { + if (sys.info->baseGrp[i] == grpId) { return TRUE; } } return FALSE; } -BOOL msmSysCheckBaseGroup(s32 arg0) +BOOL msmSysCheckBaseGroup(s32 grpId) { - s32 var_r6; + s32 i; - for (var_r6 = 0; var_r6 < sys.unk3F4 + sys.unk436 + sys.unk46E; var_r6++) { - if (sys.unk3EC[sys.unk10->unk29[var_r6]].unk0 == arg0) { + for (i = 0; i < sys.baseGrpNum + sys.grpStackAOfs + sys.grpStackBOfs; i++) { + if (sys.grpInfo[sys.info->baseGrp[i]].gid == grpId) { return TRUE; } } return FALSE; } -void *msmSysGetGroupDataPtr(s32 arg0) +void *msmSysGetGroupDataPtr(s32 grpId) { - UnkStructSys43C *temp_43C; - s32 var_r6; + MSM_GRP_STACK *grp; + s32 i; - for (var_r6 = 0; var_r6 < sys.unk3F4; var_r6++) { - if (sys.unk10->unk29[var_r6] == arg0) { - return sys.unk3F8[var_r6]; + for (i = 0; i < sys.baseGrpNum; i++) { + if (sys.info->baseGrp[i] == grpId) { + return sys.grpData[i]; } } - for (var_r6 = 0; var_r6 < sys.unk434; var_r6++) { - temp_43C = &sys.unk43C[var_r6]; - if (temp_43C->unk04 != 0 && temp_43C->unk00 == arg0) { - return temp_43C->unk08; + for (i = 0; i < sys.grpStackAMax; i++) { + grp = &sys.grpStackA[i]; + if (grp->num != 0 && grp->grpId == grpId) { + return grp->buf; } } - for (var_r6 = 0; var_r6 < sys.unk46C; var_r6++) { - temp_43C = &sys.unk474[var_r6]; - if (temp_43C->unk04 != 0 && temp_43C->unk00 == arg0) { - return temp_43C->unk08; + for (i = 0; i < sys.grpStackBMax; i++) { + grp = &sys.grpStackB[i]; + if (grp->num != 0 && grp->grpId == grpId) { + return grp->buf; } } return NULL; } -BOOL msmSysCheckLoadGroupID(s32 arg0) +BOOL msmSysCheckLoadGroupID(s32 grpId) { - UnkStructSys43C *temp_43C; - s32 var_r6; + MSM_GRP_STACK *grp; + s32 i; - for (var_r6 = 0; var_r6 < sys.unk3F4 + sys.unk436 + sys.unk46E; var_r6++) { - if (sys.unk3EC[sys.unk10->unk29[var_r6]].unk0 == arg0) { + for (i = 0; i < sys.baseGrpNum + sys.grpStackAOfs + sys.grpStackBOfs; i++) { + if (sys.grpInfo[sys.info->baseGrp[i]].gid == grpId) { return TRUE; } } - for (var_r6 = 0; var_r6 < sys.unk434; var_r6++) { - temp_43C = &sys.unk43C[var_r6]; - if (temp_43C->unk04 != 0 && sys.unk3EC[temp_43C->unk00].unk0 == arg0) { + for (i = 0; i < sys.grpStackAMax; i++) { + grp = &sys.grpStackA[i]; + if (grp->num != 0 && sys.grpInfo[grp->grpId].gid == grpId) { return TRUE; } } - for (var_r6 = 0; var_r6 < sys.unk46C; var_r6++) { - temp_43C = &sys.unk474[var_r6]; - if (temp_43C->unk04 != 0 && sys.unk3EC[temp_43C->unk00].unk0 == arg0) { + for (i = 0; i < sys.grpStackBMax; i++) { + grp = &sys.grpStackB[i]; + if (grp->num != 0 && sys.grpInfo[grp->grpId].gid == grpId) { return TRUE; } } @@ -333,27 +336,27 @@ void msmSysRegularProc(void) s32 msmSysGetOutputMode(void) { - return sys.unk4; + return sys.outputMode; } -s32 msmSysSetOutputMode(SND_OUTPUTMODE mode) +BOOL msmSysSetOutputMode(SND_OUTPUTMODE mode) { SND_OUTPUTMODE var_r3; - s32 var_r30; + BOOL failF; - var_r30 = 0; - sys.unk4 = mode; + failF = 0; + sys.outputMode = mode; switch (mode) { case SND_OUTPUTMODE_MONO: var_r3 = SND_OUTPUTMODE_MONO; break; case SND_OUTPUTMODE_SURROUND: - if (sys.unk10->unkB != 0) { + if (sys.info->surroundF != 0) { var_r3 = SND_OUTPUTMODE_SURROUND; } else { - sys.unk4 = SND_OUTPUTMODE_STEREO; + sys.outputMode = SND_OUTPUTMODE_STEREO; var_r3 = SND_OUTPUTMODE_STEREO; - var_r30 = 1; + failF = 1; } break; case SND_OUTPUTMODE_STEREO: @@ -362,36 +365,36 @@ s32 msmSysSetOutputMode(SND_OUTPUTMODE mode) break; } sndOutputMode(var_r3); - msmStreamSetOutputMode(sys.unk4); + msmStreamSetOutputMode(sys.outputMode); OSSetSoundMode((mode != SND_OUTPUTMODE_MONO) ? 1 : 0); - return var_r30; + return failF; } -s32 msmSysSetAux(s32 arg0, s32 arg1) +s32 msmSysSetAux(s32 auxA, s32 auxB) { - s32 var_r28; + s32 i; sndSetAuxProcessingCallbacks(0, NULL, NULL, 0, 0, NULL, NULL, 0, 0); - for (var_r28 = 1; var_r28 >= 0; var_r28--) { - if (sys.unk18[var_r28] < 0) { + for (i = 1; i >= 0; i--) { + if (sys.auxParamNo[i] < 0) { continue; } - switch (sys.unk14[sys.unk18[var_r28]].unk0) { + switch (sys.auxParam[sys.auxParamNo[i]].type) { case 0: - sndAuxCallbackShutdownReverbHI(&sys.unk1C[var_r28].revHi); + sndAuxCallbackShutdownReverbHI(&sys.aux[i].revHi); break; case 1: - sndAuxCallbackShutdownReverbSTD(&sys.unk1C[var_r28].revStd); + sndAuxCallbackShutdownReverbSTD(&sys.aux[i].revStd); break; case 2: - sndAuxCallbackShutdownChorus(&sys.unk1C[var_r28].ch); + sndAuxCallbackShutdownChorus(&sys.aux[i].chorus); break; case 3: - sndAuxCallbackShutdownDelay(&sys.unk1C[var_r28].delay); + sndAuxCallbackShutdownDelay(&sys.aux[i].delay); break; } } - if (msmSysSetAuxParam(arg0, arg1) != 0) { + if (msmSysSetAuxParam(auxA, auxB) != 0) { return MSM_ERR_INVALID_AUXPARAM; } return 0; @@ -400,32 +403,32 @@ s32 msmSysSetAux(s32 arg0, s32 arg1) s32 msmSysGetSampSize(BOOL baseGrp) { if (baseGrp != 0) { - return sys.unk3E8; + return sys.sampSizeBase; } - return sys.unk3E4; + return sys.sampSize; } s32 msmSysDelGroupAll(void) { - UnkStructSys43C *temp_r28; - s32 var_r29; + MSM_GRP_STACK *grp; + s32 i; - for (var_r29 = 0; var_r29 < sys.unk46C; var_r29++) { - temp_r28 = &sys.unk474[var_r29]; - if (temp_r28->unk04 != 0 && temp_r28->unk01 == 0) { - temp_r28->unk04 = 0; + for (i = 0; i < sys.grpStackBMax; i++) { + grp = &sys.grpStackB[i]; + if (grp->num != 0 && grp->baseGrpF == 0) { + grp->num = 0; sndPopGroup(); - sys.unk8 -= sys.unk3EC[temp_r28->unk00].unk10; - sys.unk46D--; + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; + sys.grpStackBDepth--; } } - for (var_r29 = 0; var_r29 < sys.unk434; var_r29++) { - temp_r28 = &sys.unk43C[var_r29]; - if (temp_r28->unk04 != 0 && temp_r28->unk01 == 0) { - temp_r28->unk04 = 0; + for (i = 0; i < sys.grpStackAMax; i++) { + grp = &sys.grpStackA[i]; + if (grp->num != 0 && grp->baseGrpF == 0) { + grp->num = 0; sndPopGroup(); - sys.unk8 -= sys.unk3EC[temp_r28->unk00].unk10; - sys.unk435--; + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; + sys.grpStackADepth--; } } return 0; @@ -433,338 +436,338 @@ s32 msmSysDelGroupAll(void) s32 msmSysDelGroupBase(s32 grpNum) { - s32 var_r4; - UnkStructSys43C *temp_r26; - s32 var_r27; - s8 var_r31; - s8 var_r25; - s32 var_r6; + s32 j; + MSM_GRP_STACK *grp; + s32 i; + s8 level; + s8 stackBF; + s32 grpMaxNum; - if (sys.unk436 + sys.unk46E == 0) { + if (sys.grpStackAOfs + sys.grpStackBOfs == 0) { return 0; } - if (grpNum >= sys.unk436 + sys.unk46E) { + if (grpNum >= sys.grpStackAOfs + sys.grpStackBOfs) { grpNum = 0; } if (grpNum != 0) { msmSysDelGroupAll(); - for (var_r27 = 0; var_r27 < grpNum; var_r27++) { - var_r6 = 0; - for (var_r4 = 0; var_r4 < sys.unk434; var_r4++) { - temp_r26 = &sys.unk43C[var_r4]; - if (temp_r26->unk04 > var_r6) { - var_r6 = temp_r26->unk04; - var_r31 = var_r4; - var_r25 = 0; + for (i = 0; i < grpNum; i++) { + grpMaxNum = 0; + for (j = 0; j < sys.grpStackAMax; j++) { + grp = &sys.grpStackA[j]; + if (grp->num > grpMaxNum) { + grpMaxNum = grp->num; + level = j; + stackBF = FALSE; } } - for (var_r4 = 0; var_r4 < sys.unk46C; var_r4++) { - temp_r26 = &sys.unk474[var_r4]; - if (temp_r26->unk04 > var_r6) { - var_r6 = temp_r26->unk04; - var_r31 = var_r4; - var_r25 = 1; + for (j = 0; j < sys.grpStackBMax; j++) { + grp = &sys.grpStackB[j]; + if (grp->num > grpMaxNum) { + grpMaxNum = grp->num; + level = j; + stackBF = TRUE; } } - if (var_r25 == 0) { - temp_r26 = &sys.unk43C[var_r31]; - sys.unk435--; - sys.unk436--; + if (stackBF == FALSE) { + grp = &sys.grpStackA[level]; + sys.grpStackADepth--; + sys.grpStackAOfs--; } else { - temp_r26 = &sys.unk474[var_r31]; - sys.unk46D--; - sys.unk46E--; + grp = &sys.grpStackB[level]; + sys.grpStackBDepth--; + sys.grpStackBOfs--; } sndPopGroup(); - sys.unk8 -= sys.unk3EC[temp_r26->unk00].unk10; - temp_r26->unk01 = 0; - temp_r26->unk04 = 0; + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; + grp->baseGrpF = 0; + grp->num = 0; } } else { - for (var_r27 = 0; var_r27 < sys.unk434; var_r27++) { - temp_r26 = &sys.unk43C[var_r27]; - if (temp_r26->unk04 != 0) { + for (i = 0; i < sys.grpStackAMax; i++) { + grp = &sys.grpStackA[i]; + if (grp->num != 0) { sndPopGroup(); - sys.unk8 -= sys.unk3EC[temp_r26->unk00].unk10; - temp_r26->unk01 = 0; - temp_r26->unk04 = 0; + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; + grp->baseGrpF = 0; + grp->num = 0; } } - for (var_r27 = 0; var_r27 < sys.unk46C; var_r27++) { - temp_r26 = &sys.unk474[var_r27]; - if (temp_r26->unk04 != 0) { + for (i = 0; i < sys.grpStackBMax; i++) { + grp = &sys.grpStackB[i]; + if (grp->num != 0) { sndPopGroup(); - sys.unk8 -= sys.unk3EC[temp_r26->unk00].unk10; - temp_r26->unk01 = 0; - temp_r26->unk04 = 0; + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; + grp->baseGrpF = 0; + grp->num = 0; } } - sys.unk46E = 0; - sys.unk46D = 0; - sys.unk436 = 0; - sys.unk435 = 0; + sys.grpStackBOfs = 0; + sys.grpStackBDepth = 0; + sys.grpStackAOfs = 0; + sys.grpStackADepth = 0; } return 0; } -static inline s32 msmSysPushGroup(DVDFileInfo *arg0, void *buf, UnkStructSys43C *arg2, s32 arg3) +static s32 msmSysPushGroup(DVDFileInfo *file, void *buf, MSM_GRP_STACK *grp, s32 grpId) { - unkStruct4 *temp_r30; - unkStruct3 *temp_r7; + MSM_GRP_INFO *grpInfo; + MSM_GRP_HEAD *grpBuf; - temp_r30 = &sys.unk3EC[arg3]; - if (msmFioRead(arg0, arg2->unk08, temp_r30->unk8, temp_r30->unk4 + sys.unkC->unk38) < 0) { + grpInfo = &sys.grpInfo[grpId]; + if (msmFioRead(file, grp->buf, grpInfo->dataSize, grpInfo->dataOfs + sys.header->grpDataOfs) < 0) { return MSM_ERR_READFAIL; } - if (msmFioRead(arg0, buf, temp_r30->unk10, temp_r30->unkC + sys.unkC->unk40) < 0) { + if (msmFioRead(file, buf, grpInfo->sampSize, grpInfo->sampOfs + sys.header->sampOfs) < 0) { return MSM_ERR_READFAIL; } - temp_r7 = arg2->unk08; - if (!sndPushGroup((void*) (temp_r7->unk4 + (u32) temp_r7), temp_r30->unk0, buf, - (void*) (temp_r7->unk8 + (u32) temp_r7), (void*) (temp_r7->unk0 + (u32) temp_r7))) + grpBuf = grp->buf; + if (!sndPushGroup((void*) (grpBuf->projOfs + (u32) grpBuf), grpInfo->gid, buf, + (void*) (grpBuf->sdirOfs + (u32) grpBuf), (void*) (grpBuf->poolOfs + (u32) grpBuf))) { - return MSM_ERR_20; + return MSM_ERR_GRP_FAILPUSH; } - sys.unk8 += temp_r30->unk10; - arg2->unk00 = arg3; - arg2->unk04 = sys.unk3E0++; + sys.aramP += grpInfo->sampSize; + grp->grpId = grpId; + grp->num = sys.grpNum++; return 0; } -s32 msmSysLoadGroupBase(s32 arg0, void *arg1) +s32 msmSysLoadGroupBase(s32 grpId, void *buf) { s32 temp_r29; s32 temp_r28; s32 var_r23; s32 temp_r3_2; - UnkStructSys43C *var_r24; + MSM_GRP_STACK *var_r24; DVDFileInfo sp10; - if (arg0 < 1 || arg0 >= sys.unk3DC) { + if (grpId < 1 || grpId >= sys.grpMax) { return MSM_ERR_64; } var_r23 = msmSysDelGroupAll(); if (var_r23 != 0) { return var_r23; } - temp_r29 = sys.unk3F4 + sys.unk436 + sys.unk46E; - if (msmSysInline00(arg0)) { + temp_r29 = sys.baseGrpNum + sys.grpStackAOfs + sys.grpStackBOfs; + if (msmSysCheckBaseGroupNo(grpId)) { return 0; } if (temp_r29 >= 0xF) { - return MSM_ERR_65; + return MSM_ERR_STACK_OVERFLOW; } - temp_r3_2 = msmSysSearchGroupStack(arg0, -1); + temp_r3_2 = msmSysSearchGroupStack(grpId, -1); if (temp_r3_2 < 0) { - return MSM_ERR_65; + return MSM_ERR_STACK_OVERFLOW; } - temp_r28 = sys.unk3EC[arg0].unk2; + temp_r28 = sys.grpInfo[grpId].stackNo; if (!temp_r28) { - var_r24 = &sys.unk43C[temp_r3_2]; + var_r24 = &sys.grpStackA[temp_r3_2]; } else { - var_r24 = &sys.unk474[temp_r3_2]; + var_r24 = &sys.grpStackB[temp_r3_2]; } - if (msmFioOpen(sys.unk0, &sp10) != 1) { + if (msmFioOpen(sys.msmEntryNum, &sp10) != 1) { return MSM_ERR_OPENFAIL; } - var_r23 = msmSysPushGroup(&sp10, arg1, var_r24, arg0); + var_r23 = msmSysPushGroup(&sp10, buf, var_r24, grpId); if (var_r23 != 0) { msmFioClose(&sp10); return var_r23; } msmFioClose(&sp10); - sys.unk10->unk29[temp_r29] = arg0; - var_r24->unk01 = 1; + sys.info->baseGrp[temp_r29] = grpId; + var_r24->baseGrpF = 1; if (temp_r28 == 0) { - sys.unk436++; - sys.unk435++; + sys.grpStackAOfs++; + sys.grpStackADepth++; } else { - sys.unk46E++; - sys.unk46D++; + sys.grpStackBOfs++; + sys.grpStackBDepth++; } return 0; } -static inline s32 msmSysInline01(void) +static s32 msmSysGetNumGroupSet(void) { - if (sys.unk3F0 != NULL) { - return sys.unk3F0->unk00; + if (sys.grpSet != NULL) { + return sys.grpSet->numGrpSet; } return 0; } s32 msmSysLoadGroupSet(s32 arg0, void *arg1) { - s8 sp4C[12]; // unknown length (5..12 works) - DVDFileInfo sp10; - s32 temp_r3; - s32 temp_r3_2; - s32 var_r19; - s32 var_r24; - s32 var_r31; - s8 *var_r19_2; + s8 grpId[10]; + DVDFileInfo file; + s32 result; + s32 stackLevel; + s32 pushResult; + s32 i; + s32 grpSetNum; + s8 *grpSet; - if (msmSysInline01() == 0) { + if (msmSysGetNumGroupSet() == 0) { return 0; } - temp_r3 = msmSysDelGroupAll(); - if (temp_r3 != 0) { - return temp_r3; + result = msmSysDelGroupAll(); + if (result != 0) { + return result; } - var_r19_2 = &sys.unk3F0->unk02[sys.unk3F0->unk01 * arg0]; - if (msmFioOpen(sys.unk0, &sp10) != TRUE) { + grpSet = &sys.grpSet->data[sys.grpSet->grpSetW * arg0]; + if (msmFioOpen(sys.msmEntryNum, &file) != TRUE) { return MSM_ERR_OPENFAIL; } - sys.unk435 = sys.unk436; - var_r31 = 0; - for (; *var_r19_2 != 0; var_r19_2++) { - if (msmSysInline00(*var_r19_2)) { + sys.grpStackADepth = sys.grpStackAOfs; + grpSetNum = 0; + for (; *grpSet != 0; grpSet++) { + if (msmSysCheckBaseGroupNo(*grpSet)) { continue; } - if (sys.unk3EC[(s8) *var_r19_2].unk2 == 1) { - sp4C[var_r31++] = *var_r19_2; + if (sys.grpInfo[(s8) *grpSet].stackNo == 1) { + grpId[grpSetNum++] = *grpSet; } else { - temp_r3_2 = msmSysSearchGroupStack(*var_r19_2, -1); - if (temp_r3_2 < 0) { - msmFioClose(&sp10); - return MSM_ERR_65; + stackLevel = msmSysSearchGroupStack(*grpSet, -1); + if (stackLevel < 0) { + msmFioClose(&file); + return MSM_ERR_STACK_OVERFLOW; } - var_r19 = msmSysPushGroup(&sp10, arg1, &sys.unk43C[temp_r3_2], *var_r19_2); - if (var_r19 != 0) { - msmFioClose(&sp10); - return var_r19; + pushResult = msmSysPushGroup(&file, arg1, &sys.grpStackA[stackLevel], *grpSet); + if (pushResult != 0) { + msmFioClose(&file); + return pushResult; } - sys.unk435++; + sys.grpStackADepth++; } } - sys.unk46D = sys.unk46E; - for (var_r24 = 0; var_r24 < var_r31; var_r24++) { - temp_r3_2 = msmSysSearchGroupStack(sp4C[var_r24], -1); - if (temp_r3_2 < 0) { - msmFioClose(&sp10); - return MSM_ERR_65; + sys.grpStackBDepth = sys.grpStackBOfs; + for (i = 0; i < grpSetNum; i++) { + stackLevel = msmSysSearchGroupStack(grpId[i], -1); + if (stackLevel < 0) { + msmFioClose(&file); + return MSM_ERR_STACK_OVERFLOW; } - var_r19 = msmSysPushGroup(&sp10, arg1, &sys.unk474[temp_r3_2], sp4C[var_r24]); - if (var_r19 != 0) { - msmFioClose(&sp10); - return var_r19; + pushResult = msmSysPushGroup(&file, arg1, &sys.grpStackB[stackLevel], grpId[i]); + if (pushResult != 0) { + msmFioClose(&file); + return pushResult; } - sys.unk46D++; + sys.grpStackBDepth++; } - msmFioClose(&sp10); + msmFioClose(&file); return 0; } -static s32 msmSysLoadGroupSub(DVDFileInfo *arg0, s32 arg1, void *arg2) +static s32 msmSysLoadGroupSub(DVDFileInfo *file, s32 grpId, void *buf) { - s32 var_r30; - s32 var_r18; - s32 var_r19; - s32 var_r3; - u8 *var_r29; - UnkStructSys43C *var_r28; - unkStruct4 *temp_r23; + s32 grpIdResult; + s32 i; + s32 stackLevel; + s32 result; + u8 *stackDepth; + MSM_GRP_STACK *grpStack; + MSM_GRP_INFO *temp_r23; - var_r30 = 0; - temp_r23 = &sys.unk3EC[arg1]; - if (temp_r23->unk2 == 0) { - var_r28 = sys.unk43C; - var_r29 = &sys.unk435; + grpIdResult = 0; + temp_r23 = &sys.grpInfo[grpId]; + if (temp_r23->stackNo == 0) { + grpStack = sys.grpStackA; + stackDepth = &sys.grpStackADepth; } else { - var_r28 = sys.unk474; - var_r29 = &sys.unk46D; + grpStack = sys.grpStackB; + stackDepth = &sys.grpStackBDepth; } - if (temp_r23->unk3 != 0) { - if (!msmSysCheckBaseGroup(sys.unk3EC[temp_r23->unk3].unk0)) { - var_r19 = -1; - for (var_r18 = 0; var_r18 < 2; var_r18++) { - var_r19 = msmSysSearchGroupStack(temp_r23->unk3, var_r19); - if (var_r19 < 0) { - var_r19 = -(var_r19 + 1); - (*var_r29)--; + if (temp_r23->subGrpId != 0) { + if (!msmSysCheckBaseGroup(sys.grpInfo[temp_r23->subGrpId].gid)) { + stackLevel = -1; + for (i = 0; i < 2; i++) { + stackLevel = msmSysSearchGroupStack(temp_r23->subGrpId, stackLevel); + if (stackLevel < 0) { + stackLevel = -(stackLevel + 1); + (*stackDepth)--; sndPopGroup(); - sys.unk8 -= sys.unk3EC[var_r28[var_r19].unk00].unk10; - var_r30 = var_r28[var_r19].unk00; - var_r28[var_r19].unk04 = 0; + sys.aramP -= sys.grpInfo[grpStack[stackLevel].grpId].sampSize; + grpIdResult = grpStack[stackLevel].grpId; + grpStack[stackLevel].num = 0; } } - var_r3 = msmSysPushGroup(arg0, arg2, &var_r28[var_r19], temp_r23->unk3); - if (var_r3 != 0) { - return var_r3; + result = msmSysPushGroup(file, buf, &grpStack[stackLevel], temp_r23->subGrpId); + if (result != 0) { + return result; } - (*var_r29)++; + (*stackDepth)++; } } - var_r19 = msmSysSearchGroupStack(arg1, -1); - if (var_r19 < 0) { - var_r19 = -(var_r19 + 1); - (*var_r29)--; + stackLevel = msmSysSearchGroupStack(grpId, -1); + if (stackLevel < 0) { + stackLevel = -(stackLevel + 1); + (*stackDepth)--; sndPopGroup(); - sys.unk8 -= sys.unk3EC[var_r28[var_r19].unk00].unk10; - var_r30 = var_r28[var_r19].unk00; + sys.aramP -= sys.grpInfo[grpStack[stackLevel].grpId].sampSize; + grpIdResult = grpStack[stackLevel].grpId; } - var_r3 = msmSysPushGroup(arg0, arg2, &var_r28[var_r19], arg1); - if (var_r3 == 0) { - var_r3 = var_r30; + result = msmSysPushGroup(file, buf, &grpStack[stackLevel], grpId); + if (result == 0) { + result = grpIdResult; } - (*var_r29)++; - return var_r3; + (*stackDepth)++; + return result; } -static inline void msmSysPopGroup(s32 arg0) +static void msmSysPopGroup(s32 no) { - UnkStructSys43C *temp_r23; + MSM_GRP_STACK *grp; - temp_r23 = &sys.unk474[arg0]; - if (temp_r23->unk04 != 0 && temp_r23->unk01 == 0) { + grp = &sys.grpStackB[no]; + if (grp->num != 0 && grp->baseGrpF == 0) { sndPopGroup(); - sys.unk8 -= sys.unk3EC[temp_r23->unk00].unk10; + sys.aramP -= sys.grpInfo[grp->grpId].sampSize; } } -s32 msmSysLoadGroup(s32 grp, void *buf) +s32 msmSysLoadGroup(s32 grpId, void *buf) { - UnkStructSys43C *temp_r23; - unkStruct4 *temp_r22; - s32 var_r31; - s32 var_r22; - s32 var_r21; - DVDFileInfo sp14; + MSM_GRP_STACK *grpStack; + MSM_GRP_INFO *grpInfo; + s32 pushResult; + s32 i; + s32 result; + DVDFileInfo file; s32 unused; if (buf == NULL) { return 0; } - if (grp == 0) { + if (grpId == 0) { return msmSysLoadBaseGroup(buf); } - temp_r22 = &sys.unk3EC[grp]; - if (msmSysCheckLoadGroupID(temp_r22->unk0)) { + grpInfo = &sys.grpInfo[grpId]; + if (msmSysCheckLoadGroupID(grpInfo->gid)) { return 0; } - if (msmFioOpen(sys.unk0, &sp14) != 1) { + if (msmFioOpen(sys.msmEntryNum, &file) != TRUE) { return MSM_ERR_OPENFAIL; } - if (temp_r22->unk2 == 0) { - for (var_r22 = 0; var_r22 < sys.unk46C; var_r22++) { - msmSysPopGroup(var_r22); + if (grpInfo->stackNo == 0) { + for (i = 0; i < sys.grpStackBMax; i++) { + msmSysPopGroup(i); } - var_r21 = msmSysLoadGroupSub(&sp14, grp, buf); - for (var_r22 = 0; var_r22 < sys.unk46C; var_r22++) { - temp_r23 = &sys.unk474[var_r22]; - if (temp_r23->unk04 != 0 && temp_r23->unk01 == 0) { - var_r31 = msmSysPushGroup(&sp14, buf, temp_r23, temp_r23->unk00); - if (var_r31 != 0) { - msmFioClose(&sp14); - return var_r31; + result = msmSysLoadGroupSub(&file, grpId, buf); + for (i = 0; i < sys.grpStackBMax; i++) { + grpStack = &sys.grpStackB[i]; + if (grpStack->num != 0 && grpStack->baseGrpF == 0) { + pushResult = msmSysPushGroup(&file, buf, grpStack, grpStack->grpId); + if (pushResult != 0) { + msmFioClose(&file); + return pushResult; } } } } else { - var_r21 = msmSysLoadGroupSub(&sp14, grp, buf); + result = msmSysLoadGroupSub(&file, grpId, buf); } - msmFioClose(&sp14); - return var_r21; + msmFioClose(&file); + return result; } void msmSysCheckInit(void) @@ -774,42 +777,42 @@ void msmSysCheckInit(void) s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram) { - s32 var_r26; - void *temp_r3_8; + s32 result; + void *temp; - SND_HOOKS sp4C = { msmMemAlloc, msmMemFree }; + SND_HOOKS sndHooks = { msmMemAlloc, msmMemFree }; DVDFileInfo sp10; if (sndIsInstalled() == 1) { return MSM_ERR_INSTALLED; } - var_r26 = 0; // retErr - sys.unk4EC = 0; + result = 0; // retErr + sys.irqDepth = 0; msmMemInit(init->heap, init->heapSize); msmFioInit(init->open, init->read, init->close); - sys.unk0 = DVDConvertPathToEntrynum(init->msmPath); - if (sys.unk0 < 0) { + sys.msmEntryNum = DVDConvertPathToEntrynum(init->msmPath); + if (sys.msmEntryNum < 0) { return MSM_ERR_OPENFAIL; } - if (msmFioOpen(sys.unk0, &sp10) != 1) { + if (msmFioOpen(sys.msmEntryNum, &sp10) != 1) { return MSM_ERR_OPENFAIL; } - if ((sys.unkC = msmMemAlloc(0x60)) == NULL) { + if ((sys.header = msmMemAlloc(0x60)) == NULL) { msmFioClose(&sp10); return MSM_ERR_OUTOFMEM; } - if (msmFioRead(&sp10, sys.unkC, 0x60, 0) < 0) { + if (msmFioRead(&sp10, sys.header, 0x60, 0) < 0) { msmFioClose(&sp10); return MSM_ERR_READFAIL; } - if (sys.unkC->unk4 != 2) { + if (sys.header->version != MSM_FILE_VERSION) { msmFioClose(&sp10); return MSM_ERR_INVALIDFILE; } - if ((sys.unk10 = msmMemAlloc(sys.unkC->unk14)) == NULL) { + if ((sys.info = msmMemAlloc(sys.header->infoSize)) == NULL) { msmFioClose(&sp10); return MSM_ERR_OUTOFMEM; } - if (msmFioRead(&sp10, sys.unk10, sys.unkC->unk14, sys.unkC->unk10) < 0) { + if (msmFioRead(&sp10, sys.info, sys.header->infoSize, sys.header->infoOfs) < 0) { msmFioClose(&sp10); return MSM_ERR_READFAIL; } @@ -817,88 +820,88 @@ s32 msmSysInit(MSM_INIT *init, MSM_ARAM *aram) if (aram->skipARInit == 0) { ARInit(aram->stackIndex, aram->aramEnd); ARQInit(); - aram = (MSM_ARAM *)ARAlloc(sys.unk10->unk14); + aram = (MSM_ARAM *)ARAlloc(sys.info->aramSize); if ((u32)aram != ARGetBaseAddress()) { msmFioClose(&sp10); return MSM_ERR_OUTOFAMEM; } - sys.unk7 = 0; + sys.arInitF = FALSE; } else { - if ((sys.unk10->unk14 + ARGetBaseAddress()) > aram->aramEnd) { + if ((sys.info->aramSize + ARGetBaseAddress()) > aram->aramEnd) { msmFioClose(&sp10); return MSM_ERR_OUTOFAMEM; } ARInit(NULL, 0); ARQInit(); - sys.unk7 = 1; + sys.arInitF = TRUE; } } - var_r26 = msmSysGroupInit(&sp10); - if (var_r26 != 0) { + result = msmSysGroupInit(&sp10); + if (result != 0) { msmFioClose(&sp10); - return var_r26; + return result; } - var_r26 = msmMusInit(&sys, &sp10); - if (var_r26 != 0) { + result = msmMusInit(&sys, &sp10); + if (result != 0) { msmFioClose(&sp10); - return var_r26; + return result; } - var_r26 = msmSeInit(&sys, &sp10); - if (var_r26 != 0) { + result = msmSeInit(&sys, &sp10); + if (result != 0) { msmFioClose(&sp10); - return var_r26; + return result; } - sys.unk18[0] = sys.unk10->unkE == -2 ? -2 : -1; - sys.unk18[1] = sys.unk10->unkF == -2 ? -2 : -1; - if ((s32)sys.unkC->unk1C == 0) { - var_r26 = 0; + sys.auxParamNo[0] = sys.info->auxParamA == MSM_AUXNO_NULL ? MSM_AUXNO_NULL : MSM_AUXNO_UNSET; + sys.auxParamNo[1] = sys.info->auxParamB == MSM_AUXNO_NULL ? MSM_AUXNO_NULL : MSM_AUXNO_UNSET; + if ((s32)sys.header->auxParamSize == 0) { + result = 0; } else { - if ((sys.unk14 = msmMemAlloc(sys.unkC->unk1C)) == NULL) { - var_r26 = MSM_ERR_OUTOFMEM; + if ((sys.auxParam = msmMemAlloc(sys.header->auxParamSize)) == NULL) { + result = MSM_ERR_OUTOFMEM; } else { - if (msmFioRead(&sp10, sys.unk14, sys.unkC->unk1C, sys.unkC->unk18) < 0) { - var_r26 = MSM_ERR_READFAIL; + if (msmFioRead(&sp10, sys.auxParam, sys.header->auxParamSize, sys.header->auxParamOfs) < 0) { + result = MSM_ERR_READFAIL; } else { - var_r26 = 0; + result = 0; } } } - if (var_r26 != 0) { + if (result != 0) { msmFioClose(&sp10); - return var_r26; + return result; } msmFioClose(&sp10); - var_r26 = msmStreamInit(init->pdtPath); - if (var_r26 < 0) { - return var_r26; + result = msmStreamInit(init->pdtPath); + if (result < 0) { + return result; } AIInit(NULL); - sndSetHooks(&sp4C); - if (sndInit(sys.unk10->unk0, sys.unk10->unk1, sys.unk10->unk2, 1, 0, sys.unk10->unk14) != 0) { - return MSM_ERR_1E; + sndSetHooks(&sndHooks); + if (sndInit(sys.info->voices, sys.info->music, sys.info->sfx, 1, 0, sys.info->aramSize) != 0) { + return MSM_ERR_INITFAIL; } - sys.unk4F4 = AIRegisterDMACallback(msmSysServer); - sys.unk4F8 = 1; - var_r26 = msmStreamAmemAlloc(); - if (var_r26 < 0) { + sys.oldAIDCallback = AIRegisterDMACallback(msmSysServer); + sys.timer = 1; + result = msmStreamAmemAlloc(); + if (result < 0) { sndQuit(); - return var_r26; + return result; } - sys.unk8 = var_r26 + 0x500; - if ((s32)sys.unk10->unk10 != 0) { - temp_r3_8 = msmMemAlloc(sys.unk10->unk10 + 0x100); - if (temp_r3_8 == NULL) { + sys.aramP = result + 0x500; + if ((int)sys.info->minMem != 0) { + temp = msmMemAlloc(sys.info->minMem + 0x100); + if (temp == NULL) { msmStreamAmemFree(); sndQuit(); return MSM_ERR_OUTOFMEM; } - msmMemFree(temp_r3_8); + msmMemFree(temp); } - if (msmSysSetAuxParam(sys.unk10->unkE, sys.unk10->unkF) != 0) { + if (msmSysSetAuxParam(sys.info->auxParamA, sys.info->auxParamB) != 0) { msmStreamAmemFree(); sndQuit(); return MSM_ERR_INVALID_AUXPARAM; From 2a3c35302919a4ff226abdf452972ebc51aad51d Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Sat, 18 Jan 2025 19:15:38 +0100 Subject: [PATCH 261/311] Minor clean ups and match m428Dll main.c and map.c (#536) * Minor cleanups and fixes * Match m428Dll main.c and map.c --- config/GMPE01_00/rels/m428Dll/splits.txt | 4 +- config/GMPE01_00/rels/m428Dll/symbols.txt | 421 +++---- configure.py | 4 +- include/REL/m428Dll.h | 31 + include/REL/m433Dll.h | 4 +- include/dolphin/gx/GXTransform.h | 2 + src/REL/m425Dll/main.c | 22 +- src/REL/m428Dll/main.c | 1094 ++++++++++++++++++ src/REL/m428Dll/map.c | 1275 +++++++++++++++++++++ src/REL/m438Dll/main.c | 2 +- src/REL/m453Dll/main.c | 15 +- src/REL/option/rumble.c | 30 +- 12 files changed, 2650 insertions(+), 254 deletions(-) create mode 100644 include/REL/m428Dll.h create mode 100644 src/REL/m428Dll/main.c create mode 100644 src/REL/m428Dll/map.c diff --git a/config/GMPE01_00/rels/m428Dll/splits.txt b/config/GMPE01_00/rels/m428Dll/splits.txt index 03f22ea9..3a44b731 100644 --- a/config/GMPE01_00/rels/m428Dll/splits.txt +++ b/config/GMPE01_00/rels/m428Dll/splits.txt @@ -10,13 +10,13 @@ REL/executor.c: .text start:0x00000000 end:0x000000A0 REL/m428Dll/main.c: - .text start:0x000000A0 end:0x000040A4 + .text start:0x000000A0 end:0x000043C8 .rodata start:0x00000000 end:0x000000D8 .data start:0x00000000 end:0x00000130 .bss start:0x00000000 end:0x00000090 REL/m428Dll/map.c: - .text start:0x000040A4 end:0x00009F5C + .text start:0x000043C8 end:0x00009F5C .rodata start:0x000000D8 end:0x00000228 .data start:0x00000130 end:0x00000150 .bss start:0x00000090 end:0x00000130 diff --git a/config/GMPE01_00/rels/m428Dll/symbols.txt b/config/GMPE01_00/rels/m428Dll/symbols.txt index eef0a9df..e88de8d7 100644 --- a/config/GMPE01_00/rels/m428Dll/symbols.txt +++ b/config/GMPE01_00/rels/m428Dll/symbols.txt @@ -124,222 +124,222 @@ fn_1_14560 = .text:0x00014560; // type:function size:0x98 fn_1_145F8 = .text:0x000145F8; // type:function size:0x98 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 scope:local data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 scope:local data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float lbl_1_data_54 = .data:0x00000054; // type:object size:0xC lbl_1_data_60 = .data:0x00000060; // type:object size:0xC lbl_1_data_6C = .data:0x0000006C; // type:object size:0xC -lbl_1_data_78 = .data:0x00000078; // type:object size:0x23 data:string +lbl_1_data_78 = .data:0x00000078; // type:object size:0x23 scope:local data:string lbl_1_data_9C = .data:0x0000009C; // type:object size:0xC lbl_1_data_A8 = .data:0x000000A8; // type:object size:0xC lbl_1_data_B4 = .data:0x000000B4; // type:object size:0x4 jumptable_1_data_B8 = .data:0x000000B8; // type:object size:0x30 scope:local lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x4 data:byte -lbl_1_data_EC = .data:0x000000EC; // type:object size:0x44 data:byte -lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 -lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x44 data:4byte +lbl_1_data_130 = .data:0x00000130; // type:object size:0x14 scope:local data:string +lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 scope:local data:string lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4 data:4byte lbl_1_data_150 = .data:0x00000150; // type:object size:0x30 data:float lbl_1_data_180 = .data:0x00000180; // type:object size:0x30 @@ -360,9 +360,10 @@ lbl_1_data_69C = .data:0x0000069C; // type:object size:0x4 lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x2 data:2byte lbl_1_data_6A4 = .data:0x000006A4; // type:object size:0x30 lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x20 -lbl_1_data_6F4 = .data:0x000006F4; // type:object size:0x19 data:string -lbl_1_data_70D = .data:0x0000070D; // type:object size:0x5 data:string -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0xC data:4byte +lbl_1_data_6F4 = .data:0x000006F4; // type:object size:0x19 scope:local data:string +lbl_1_data_70D = .data:0x0000070D; // type:object size:0x5 scope:local data:string +lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x8 data:4byte lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:4byte lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 54bb4561..400de22c 100644 --- a/configure.py +++ b/configure.py @@ -1086,8 +1086,8 @@ config.libs = [ Rel( "m428Dll", # Cliffhangers objects={ - Object(NonMatching, "REL/m428Dll/main.c"), - Object(NonMatching, "REL/m428Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m428Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m428Dll/map.c"), Object(NonMatching, "REL/m428Dll/player.c"), }, ), diff --git a/include/REL/m428Dll.h b/include/REL/m428Dll.h new file mode 100644 index 00000000..9d30ded6 --- /dev/null +++ b/include/REL/m428Dll.h @@ -0,0 +1,31 @@ +#ifndef M428DLL_H +#define M428DLL_H + +#include "game/object.h" + +u32 fn_1_26E0(void); +void fn_1_4170(s16 arg0, s32 arg1); + +void fn_1_4324(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3); +void fn_1_43C8(Process *arg0); +void fn_1_4630(void); +u8 fn_1_9990(Vec *arg0); +void fn_1_9A30(u8 arg0, float arg8, Vec *arg1, Vec *arg2, float arg9); +void fn_1_9ADC(u8 arg0); +void fn_1_9DE8(u8 arg0, float arg8, s8 arg1); +void fn_1_9EA8(u8 arg0); + +omObjData *fn_1_9F5C(Process *process); +void fn_1_A0B0(void); +s32 fn_1_F354(void); +s32 fn_1_F3BC(s32 arg0); +void fn_1_F414(s32 arg0); +void fn_1_F454(s32 arg0, s32 arg1); +void fn_1_F46C(s32 arg0, s32 arg1); +void fn_1_F4B4(s32 arg0, s32 arg1, float arg8); +s32 fn_1_F4E8(s32 arg0); +void fn_1_116C4(s32 arg0, s32 arg1); +void fn_1_11754(s32 arg0, float arg8); +void fn_1_11798(s32 arg0); + +#endif diff --git a/include/REL/m433Dll.h b/include/REL/m433Dll.h index 5028045a..fc0407db 100644 --- a/include/REL/m433Dll.h +++ b/include/REL/m433Dll.h @@ -1,5 +1,5 @@ -#ifndef M4303LL_H -#define M4303LL_H +#ifndef M430DLL_H +#define M430DLL_H #include "game/object.h" diff --git a/include/dolphin/gx/GXTransform.h b/include/dolphin/gx/GXTransform.h index bc3bf107..70aa877c 100644 --- a/include/dolphin/gx/GXTransform.h +++ b/include/dolphin/gx/GXTransform.h @@ -20,6 +20,8 @@ void GXLoadPosMtxImm(f32 mtx[3][4], u32 id); void GXLoadNrmMtxImm(f32 mtx[3][4], u32 id); void GXLoadTexMtxImm(f32 mtx[][4], u32 id, GXTexMtxType type); #endif +void GXProject(f32 x, f32 y, f32 z, const f32 mtx[3][4], const f32 *pm, const f32 *vp, f32 *sx, f32 *sy, f32 *sz); +void GXGetViewportv(f32 *vp); void GXSetViewport(f32 left, f32 top, f32 wd, f32 ht, f32 nearz, f32 farz); void GXSetCurrentMtx(u32 id); void GXSetViewportJitter(f32 left, f32 top, f32 wd, f32 ht, f32 nearz, f32 farz, u32 field); diff --git a/src/REL/m425Dll/main.c b/src/REL/m425Dll/main.c index 9fc806f3..2c2d321c 100644 --- a/src/REL/m425Dll/main.c +++ b/src/REL/m425Dll/main.c @@ -462,9 +462,6 @@ void fn_1_F48(omObjData *object) void fn_1_FA8(omObjData *object) { M425DllUnkBss10Struct *var_r31; - s32 var_ctr; - void *var_r4; - s32 temp_r3; s32 var_r30; s16 *var_r28; s32 var_r27; @@ -582,11 +579,8 @@ void fn_1_14CC(Mtx arg0, float arg8, float arg9, float argA) float fn_1_15EC(float arg8, float arg9) { - float var_f31; - float var_f30; - - var_f30 = 360.0f; - var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI); + float var_f30 = 360.0f; + float var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI); if (var_f31 < 0.0f) { var_f31 += var_f30; } @@ -684,6 +678,18 @@ void fn_1_1B40(omObjData *object) int x = 12; int y = 24; char *str = "%f"; + (void)x; + (void)x; + (void)x; + (void)x; + (void)y; + (void)y; + (void)y; + (void)y; + (void)str; + (void)str; + (void)str; + (void)str; print8(x, y, 1.5f, str, sqrtf(fn_1_15EC(object->trans.x, object->trans.y))); } var_r31->unk_38 = var_r31->unk_04 * sind(var_r31->unk_18); diff --git a/src/REL/m428Dll/main.c b/src/REL/m428Dll/main.c new file mode 100644 index 00000000..cd2f3688 --- /dev/null +++ b/src/REL/m428Dll/main.c @@ -0,0 +1,1094 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/init.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m428Dll.h" + +#ifndef __MWERKS__ +#include "game/ClusterExec.h" +#include "game/EnvelopeExec.h" +#include "game/ShapeExec.h" +#include "game/frand.h" +#endif + +typedef struct M428DllData0Struct { + /* 0x00 */ Vec unk_00; + /* 0x0C */ Vec unk_0C; + /* 0x18 */ float unk_18; +} M428DllData0Struct; /* size = 0x1C */ + +typedef struct M428DllUnkStruct2 { + s16 unk_00[0x10]; + float unk_20[0x10]; + s32 unk_60; +} M428DllUnkStruct2; /* size = 0x64 */ + +typedef struct M428DllUnkStruct { + M428DllUnkStruct2 unk_00[0x10]; + ShadowData unk_640[0x10]; + ShadowData unk_FC0; +} M428DllUnkStruct; /* size = 0x1058 */ + +void fn_1_478(omObjData *); +void fn_1_25CC(omObjData *object); +void fn_1_261C(omObjData *arg0); +void fn_1_29E8(omObjData *object); +void fn_1_2ACC(s32 arg0); +void fn_1_2B8(omObjData *object); +void fn_1_2C90(ModelData *, float[3][4]); +void fn_1_2E2C(s32 arg0); +void fn_1_40A4(void); + +M428DllData0Struct lbl_1_data_0[3] = { + { 65.0f, 0.0f, 0.0f, 0.0f, 400.0f, 0.0f, 2000.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 400.0f, 0.0f, 2000.0f }, + { 0.0f, 0.0f, 0.0f, 0.0f, 400.0f, 0.0f, 1575.0f }, +}; + +Vec lbl_1_data_54 = { -1000.0f, 2000.0f, 1000.0f }; +Vec lbl_1_data_60 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_6C = { 0.0f, 0.0f, -450.0f }; + +Process *lbl_1_bss_88; +s32 lbl_1_bss_84; +s32 lbl_1_bss_80; +u32 lbl_1_bss_7C; +s32 lbl_1_bss_78; +s32 lbl_1_bss_74; +s32 lbl_1_bss_70; +s32 lbl_1_bss_6C; +s32 lbl_1_bss_68; +s32 lbl_1_bss_64; +s32 lbl_1_bss_60; +float lbl_1_bss_58[2]; +s16 lbl_1_bss_50[4]; +s16 lbl_1_bss_48[4]; +s32 lbl_1_bss_38[4]; +float lbl_1_bss_28[4]; +s32 lbl_1_bss_24; +s32 lbl_1_bss_20; +omObjData *lbl_1_bss_1C; +s32 lbl_1_bss_18; +omObjData *lbl_1_bss_14; +s32 lbl_1_bss_10; +s32 lbl_1_bss_C; +char lbl_1_bss_4[8]; +s32 lbl_1_bss_0; + +void ObjectSetup(void) +{ + s32 var_r31; + Process *var_r30; + s32 var_r29; + + OSReport("******* M428ObjectSetup *********\n"); + var_r30 = omInitObjMan(0x32, 0x2000); + lbl_1_bss_88 = var_r30; + omGameSysInit(var_r30); + Hu3DLightAllKill(); + Hu3DLighInit(); + lbl_1_bss_1C = omAddObjEx(var_r30, 0xFF, 2, 0, -1, fn_1_2B8); + lbl_1_bss_84 = lbl_1_bss_80 = -1; + HuAudSndGrpSet(0x35); + lbl_1_bss_7C = 0; + lbl_1_bss_78 = 0; + lbl_1_bss_68 = 0; + lbl_1_bss_64 = -1; + lbl_1_bss_60 = 0; + lbl_1_bss_24 = -1; + lbl_1_bss_20 = 0; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_50[var_r31] = -1; + lbl_1_bss_48[var_r31] = -1; + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_38[var_r31] = -1; + } + var_r29 = GWGameStat.rumble; + lbl_1_bss_18 = var_r29; + Hu3DShadowCreate(45.0f, 1000.0f, 250000.0f); + Hu3DShadowTPLvlSet(0.5f); + Hu3DShadowPosSet(&lbl_1_data_54, &lbl_1_data_60, &lbl_1_data_6C); + fn_1_2ACC(3); +} + +Vec lbl_1_data_9C = { 0.0f, 0.0f, 0.0f }; +Vec lbl_1_data_A8 = { -1.0f, -2.0f, -1.0f }; +GXColor lbl_1_data_B4 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +void fn_1_2B8(omObjData *var_r27) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + var_r28 = Hu3DGLightCreateV(&lbl_1_data_9C, &lbl_1_data_A8, &lbl_1_data_B4); + Hu3DGLightStaticSet(var_r28, 1); + Hu3DGLightInfinitytSet(var_r28); + for (var_r31 = 0, var_r30 = 0, var_r29 = 0; var_r31 < 4; var_r31++) { + if (GWPlayerCfg[var_r31].group == 0) { + lbl_1_bss_50[var_r30] = var_r31; + lbl_1_bss_48[var_r30] = GWPlayerCfg[var_r31].character; + var_r30++; + } + else { + lbl_1_bss_50[var_r29 + 2] = var_r31; + lbl_1_bss_48[var_r29 + 2] = GWPlayerCfg[var_r31].character; + var_r29++; + } + } + if ((var_r30 != 2) || (var_r29 != 2)) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_50[var_r31] = var_r31; + lbl_1_bss_48[var_r31] = GWPlayerCfg[var_r31].character; + } + } + fn_1_43C8(lbl_1_bss_88); + fn_1_9F5C(lbl_1_bss_88); + var_r27->func = fn_1_478; +} + +void fn_1_478(omObjData *object) +{ + Vec sp5C; + Vec sp50; + Vec sp44; + Vec sp38; + Vec sp2C; + float var_f31; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + + switch (lbl_1_bss_7C) { + case 0: + lbl_1_bss_78++; + Hu3DCamera->fov = -1.0f; + Hu3DCamera[1].fov = -1.0f; + if (lbl_1_bss_78 > 3) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); + lbl_1_bss_20 = 0; + fn_1_11798(1); + lbl_1_bss_38[0] = HuAudFXPlay(0x65F); + if ((lbl_1_bss_38[1] = HuAudFXPlay(0x660)) != -1) { + lbl_1_bss_28[1] = 0.0f; + HuAudFXVolSet(lbl_1_bss_38[1], (s32)(127.0f * lbl_1_bss_28[1])); + HuAudFXPitchSet(lbl_1_bss_38[1], (s32)(8191.0f * lbl_1_bss_28[1])); + } + if ((lbl_1_bss_38[2] = HuAudFXPlay(0x661)) != -1) { + lbl_1_bss_28[2] = 0.0f; + HuAudFXVolSet(lbl_1_bss_38[2], (s32)(127.0f * lbl_1_bss_28[2])); + HuAudFXPitchSet(lbl_1_bss_38[2], (s32)(8191.0f * lbl_1_bss_28[2])); + } + Hu3DCamera->fov = 45.0f; + Hu3DCamera[1].fov = 45.0f; + lbl_1_bss_7C = 1; + lbl_1_bss_78 = 0; + } + break; + case 1: + if (WipeStatGet() == 0) { + lbl_1_bss_7C = 2; + lbl_1_bss_78 = 0; + } + else { + sp2C.x = lbl_1_data_0->unk_00.x; + sp2C.y = lbl_1_data_0->unk_00.y; + sp2C.z = lbl_1_data_0->unk_00.z; + sp38.x = lbl_1_data_0->unk_0C.x; + sp38.y = lbl_1_data_0->unk_0C.y; + sp38.z = lbl_1_data_0->unk_0C.z; + fn_1_9A30(0, 1.0f, &sp38, &sp2C, lbl_1_data_0->unk_18); + fn_1_9A30(1, 1.0f, &sp38, &sp2C, lbl_1_data_0->unk_18); + } + break; + case 2: + if (++lbl_1_bss_78 == 0x78) { + sp2C.x = lbl_1_data_0[2].unk_00.x; + sp2C.y = lbl_1_data_0[2].unk_00.y; + sp2C.z = lbl_1_data_0[2].unk_00.z; + sp38.x = lbl_1_data_0[2].unk_0C.x; + sp38.y = lbl_1_data_0[2].unk_0C.y; + sp38.z = lbl_1_data_0[2].unk_0C.z; + fn_1_9A30(0, 300.0f, &sp38, &sp2C, lbl_1_data_0[2].unk_18); + fn_1_9A30(1, 300.0f, &sp38, &sp2C, lbl_1_data_0[2].unk_18); + } + if ((fn_1_F354() != 0) && (lbl_1_bss_78 >= 0x78)) { + sp2C.x = lbl_1_data_0[1].unk_00.x; + sp2C.y = lbl_1_data_0[1].unk_00.y; + sp2C.z = lbl_1_data_0[1].unk_00.z; + sp38.x = lbl_1_data_0[1].unk_0C.x; + sp38.y = lbl_1_data_0[1].unk_0C.y; + sp38.z = lbl_1_data_0[1].unk_0C.z; + fn_1_9A30(0, 42.0f, &sp38, &sp2C, lbl_1_data_0[1].unk_18); + fn_1_9A30(1, 42.0f, &sp38, &sp2C, lbl_1_data_0[1].unk_18); + lbl_1_bss_84 = MGSeqCreate(3, 0); + lbl_1_bss_7C = 3; + lbl_1_bss_78 = 0; + lbl_1_bss_68 = 0; + } + break; + case 3: + if (lbl_1_bss_84 != -1) { + var_r27 = MGSeqStatGet(lbl_1_bss_84); + if (((var_r27 & 0x10) != 0) && (lbl_1_bss_24 == -1)) { + lbl_1_bss_24 = HuAudSeqPlay(0x4B); + } + } + else { + var_r27 = 0; + } + if ((lbl_1_bss_84 == -1) || (var_r27 == 0)) { + lbl_1_bss_84 = -1; + lbl_1_bss_7C = 4; + lbl_1_bss_78 = 0; + lbl_1_bss_74 = 180.0f + 120.0f * (0.007874016f * (frand() & 0x7F)); + lbl_1_bss_70 = 90.0f + 60.0f * (0.007874016f * (frand() & 0x7F)); + lbl_1_bss_6C = 45.0f + (120.0f * (0.007874016f * (frand() & 0x7F))); + lbl_1_bss_58[0] = 15.0f; + lbl_1_bss_58[1] = 15.0f; + lbl_1_bss_68 = 0x4650; + } + break; + case 4: + if (++lbl_1_bss_78 >= lbl_1_bss_74) { + var_r29 = lbl_1_bss_78 - lbl_1_bss_74; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (lbl_1_bss_58[var_r31] < 60.0f) { + var_r30 = 0; + } + else { + var_r30 = 1; + } + if (var_r29 <= (15.0f + (21.0f + lbl_1_bss_6C))) { + fn_1_9DE8(var_r31, 15.0f, 1); + fn_1_11754(var_r31, 0.05f); + if (var_r29 == 0) { + fn_1_F46C(var_r31, 0); + } + else if (var_r29 < lbl_1_bss_6C) { + fn_1_F454(var_r31, 1); + if ((var_r30 == 1) && (fn_1_F4E8(var_r31) == 0)) { + lbl_1_bss_58[var_r31] = 15.0f; + } + } + else if (var_r29 == lbl_1_bss_6C) { + if (var_r30 == 1) { + fn_1_F46C(var_r31, var_r30); + } + } + else if (var_r29 == (21.0f + lbl_1_bss_6C)) { + if (var_r30 == 0) { + fn_1_F454(var_r31, 2); + } + else { + fn_1_F454(var_r31, 3); + if (lbl_1_bss_18 == 0) { + fn_1_116C4(var_r31, 1); + } + if (var_r30 != 0) { + fn_1_F4B4(var_r31, lbl_1_bss_70, 3.125f); + } + } + } + } + else { + fn_1_9DE8(var_r31, lbl_1_bss_58[var_r31], 1); + if ((var_r29 < ((15.0f + lbl_1_bss_6C + lbl_1_bss_70) - 6.0f)) && (var_r30 == 1)) { + var_f31 = 0.10000000149011612 * sind((20.0f * var_r29)); + fn_1_11754(var_r31, 0.3f + var_f31); + } + if (var_r30 == 0) { + fn_1_F454(var_r31, 4); + } + else { + fn_1_F454(var_r31, 5); + } + } + } + if (var_r29 == (15.0f + lbl_1_bss_6C + lbl_1_bss_70)) { + fn_1_F454(0, 6); + fn_1_F454(1, 6); + } + else if (var_r29 > (15.0f + lbl_1_bss_6C + lbl_1_bss_70)) { + fn_1_9EA8(0); + fn_1_9EA8(1); + fn_1_11754(0, 0.0f); + fn_1_11754(1, 0.0f); + fn_1_F46C(0, -1); + fn_1_F46C(1, -1); + fn_1_F454(0, 0); + fn_1_F454(1, 0); + if ((frand() & 3) == 0) { + lbl_1_bss_58[0] = lbl_1_bss_58[1] = 15.0f; + } + else { + lbl_1_bss_58[0] = lbl_1_bss_58[1] = 60.0f; + } + lbl_1_bss_78 = 0; + lbl_1_bss_74 = 180.0f + 120.0f * (0.007874016f * (frand() & 0x7F)); + lbl_1_bss_70 = 90.0f + 60.0f * (0.007874016f * (frand() & 0x7F)); + lbl_1_bss_6C = 45.0f + (120.0f * (0.007874016f * (frand() & 0x7F))); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (lbl_1_bss_58[var_r31] < 60.0f) { + var_r30 = 0; + } + else { + var_r30 = 1; + } + if ((var_r29 <= (15.0f + (21.0f + lbl_1_bss_6C))) || (var_r30 < 1)) { + if (lbl_1_bss_28[var_r31 + 1] < 0.5f) { + lbl_1_bss_28[var_r31 + 1] += 0.1f; + } + if (lbl_1_bss_28[var_r31 + 1] > 0.5f) { + lbl_1_bss_28[var_r31 + 1] -= 0.1f; + } + } + else { + if (lbl_1_bss_28[var_r31 + 1] < 1.0f) { + lbl_1_bss_28[var_r31 + 1] += 0.1f; + } + if (lbl_1_bss_28[var_r31 + 1] > 1.0f) { + lbl_1_bss_28[var_r31 + 1] = 1.0f; + } + } + } + } + else { + if (lbl_1_bss_28[1] > 0.0f) { + lbl_1_bss_28[1] -= 0.01f; + } + if (lbl_1_bss_28[1] < 0.0f) { + lbl_1_bss_28[1] = 0.0f; + } + if (lbl_1_bss_28[2] > 0.0f) { + lbl_1_bss_28[2] -= 0.01f; + } + if (lbl_1_bss_28[2] < 0.0f) { + lbl_1_bss_28[2] = 0.0f; + } + } + if (lbl_1_bss_38[1] != -1) { + HuAudFXVolSet(lbl_1_bss_38[1], (s32)(127.0f * lbl_1_bss_28[1])); + HuAudFXPitchSet(lbl_1_bss_38[1], (s32)(8191.0f * lbl_1_bss_28[1])); + } + if (lbl_1_bss_38[2] != -1) { + HuAudFXVolSet(lbl_1_bss_38[2], (s32)(127.0f * lbl_1_bss_28[2])); + HuAudFXPitchSet(lbl_1_bss_38[2], (s32)(8191.0f * lbl_1_bss_28[2])); + } + if ((lbl_1_bss_68 <= 1800.0f) && (lbl_1_bss_80 == -1)) { + lbl_1_bss_80 = MGSeqCreate(1, lbl_1_bss_68 / 60, -1, -1); + } + if (lbl_1_bss_80 != -1) { + var_r28 = (lbl_1_bss_68 + 0x3B) / 60; + if (var_r28 < 0) { + var_r28 = 0; + } + MGSeqParamSet(lbl_1_bss_80, 1, var_r28); + } + var_r26 = fn_1_F3BC(0); + var_r25 = fn_1_F3BC(1); + if ((--lbl_1_bss_68 < -1) || (var_r26 != 0) || (var_r25 != 0)) { + if (lbl_1_bss_80 != -1) { + MGSeqParamSet(lbl_1_bss_80, 2, -1); + } + lbl_1_bss_80 = -1; + lbl_1_bss_84 = MGSeqCreate(3, 1); + fn_1_9EA8(0); + fn_1_9EA8(1); + fn_1_11754(0, 0.0f); + fn_1_11754(1, 0.0f); + fn_1_F46C(0, -1); + fn_1_F46C(1, -1); + fn_1_F454(0, 0); + fn_1_F454(1, 0); + if (lbl_1_bss_38[0] != -1) { + HuAudFXFadeOut(lbl_1_bss_38[0], 0x64); + } + if (lbl_1_bss_38[1] != -1) { + HuAudFXFadeOut(lbl_1_bss_38[1], 0x64); + } + if (lbl_1_bss_38[2] != -1) { + HuAudFXFadeOut(lbl_1_bss_38[2], 0x64); + } + if (lbl_1_bss_24 != -1) { + HuAudSeqFadeOut(lbl_1_bss_24, 0x64); + } + if ((var_r26 != 0) && (var_r25 != 0)) { + if ((frand() & 1) != 0) { + lbl_1_bss_64 = 0; + } + else { + lbl_1_bss_64 = 1; + } + } + else if (var_r26 != 0) { + lbl_1_bss_64 = 0; + } + else if (var_r25 != 0) { + lbl_1_bss_64 = 1; + } + lbl_1_bss_7C = 6; + lbl_1_bss_78 = 0; + } + break; + case 6: + if ((lbl_1_bss_64 == -1) || (lbl_1_bss_84 == -1) || (MGSeqStatGet(lbl_1_bss_84) == 0)) { + if (lbl_1_bss_64 != -1) { + lbl_1_bss_84 = -1; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x1E); + WipeColorSet(0xFF, 0xFF, 0xFF); + lbl_1_bss_20 = 1; + } + lbl_1_bss_7C = 5; + lbl_1_bss_78 = 0; + } + break; + case 5: + if (lbl_1_bss_64 != -1) { + if (WipeStatGet() == 0) { + lbl_1_bss_7C = 7; + lbl_1_bss_78 = 0; + } + } + else if ((lbl_1_bss_84 == -1) || (MGSeqStatGet(lbl_1_bss_84) == 0)) { + lbl_1_bss_84 = -1; + lbl_1_bss_7C = 8; + lbl_1_bss_78 = 0; + } + break; + case 7: + lbl_1_bss_78++; + if (lbl_1_bss_78 == 1) { + if (lbl_1_bss_64 == 0) { + fn_1_9ADC(0); + fn_1_F414(0); + lbl_1_bss_60 = 1; + fn_1_11798(0); + } + else if (lbl_1_bss_64 == 1) { + fn_1_9ADC(1); + fn_1_F414(1); + lbl_1_bss_60 = 1; + fn_1_11798(0); + } + } + else if (lbl_1_bss_78 >= 0xA) { + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 0x3C); + WipeColorSet(0xFF, 0xFF, 0xFF); + lbl_1_bss_20 = 0; + lbl_1_bss_38[3] = HuAudFXPlay(0x662); + lbl_1_bss_7C = 8; + lbl_1_bss_78 = 0; + } + break; + case 8: + if (lbl_1_bss_64 == 0) { + if (++lbl_1_bss_78 >= 120.0f) { + lbl_1_bss_7C = 9; + lbl_1_bss_78 = 0; + } + } + else if (lbl_1_bss_64 == 1) { + if (++lbl_1_bss_78 >= 120.0f) { + lbl_1_bss_7C = 9; + lbl_1_bss_78 = 0; + } + } + else { + if (++lbl_1_bss_78 >= 60.0f) { + lbl_1_bss_7C = 9; + lbl_1_bss_78 = 0; + } + } + break; + case 9: + if (lbl_1_bss_64 == 0) { + lbl_1_bss_84 = MGSeqCreate(5, 3, lbl_1_bss_48[0], lbl_1_bss_48[1], -1, -1); + GWPlayerCoinWinAdd(lbl_1_bss_50[0], 10); + GWPlayerCoinWinAdd(lbl_1_bss_50[1], 10); + HuAudSStreamPlay(1); + lbl_1_bss_7C = 0xA; + lbl_1_bss_68 = 0; + } + else if (lbl_1_bss_64 == 1) { + lbl_1_bss_84 = MGSeqCreate(5, 3, lbl_1_bss_48[2], lbl_1_bss_48[3], -1, -1); + GWPlayerCoinWinAdd(lbl_1_bss_50[2], 10); + GWPlayerCoinWinAdd(lbl_1_bss_50[3], 10); + HuAudSStreamPlay(1); + lbl_1_bss_7C = 0xA; + lbl_1_bss_68 = 0; + } + else { + lbl_1_bss_84 = MGSeqCreate(3, 2); + lbl_1_bss_7C = 0xA; + lbl_1_bss_68 = 0; + HuAudSStreamPlay(4); + } + break; + case 10: + if (++lbl_1_bss_68 >= 210.0f) { + lbl_1_bss_84 = -1; + lbl_1_bss_7C = 0xB; + lbl_1_bss_68 = 0; + } + break; + case 11: + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 0x3C); + lbl_1_bss_20 = 1; + if (lbl_1_bss_38[3] != -1) { + HuAudFXStop(lbl_1_bss_38[3]); + } + object->func = fn_1_25CC; + break; + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + sp50.x = CenterM[var_r31].x; + sp50.y = CenterM[var_r31].y; + sp50.z = CenterM[var_r31].z; + if (lbl_1_bss_60 == 0) { + sp5C.x = CenterM[var_r31].x - 1200.0f; + sp5C.y = 1200.0f + CenterM[var_r31].y; + sp5C.z = 1200.0f + CenterM[var_r31].z; + } + else { + sp5C.x = CenterM[var_r31].x - 600.0f; + sp5C.y = 1000.0f + CenterM[var_r31].y; + sp5C.z = 600.0f + CenterM[var_r31].z; + } + sp44.x = 0.0f; + sp44.y = 1.0f; + sp44.z = 0.0f; + fn_1_4324(var_r31, &sp5C, &sp44, &sp50); + } + fn_1_261C(object); +} + +void fn_1_25CC(omObjData *object) +{ + if (WipeStatGet() == 0) { + fn_1_4630(); + fn_1_A0B0(); + fn_1_40A4(); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_261C(omObjData *object) +{ + s32 var_r30 = 0; + if ((WipeStatGet() != 0) || (object->func == fn_1_25CC)) { + return; + } + if (omSysExitReq != 0) { + var_r30 = 1; + } + if (var_r30 != 0) { + if (lbl_1_bss_20 == 0) { + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); + } + lbl_1_bss_20 = 1; + HuAudSeqAllFadeOut(0x64); + object->func = fn_1_25CC; + } +} + +u32 fn_1_26E0(void) +{ + return lbl_1_bss_7C; +} + +void fn_1_26F0(void) +{ + s32 var_r31; + omObjData *object; + + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 45.0f, 50.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x140, 0x1E0); + Hu3DCameraCreate(2); + Hu3DCameraPerspectiveSet(2, 45.0f, 50.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(2, 0.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(2, 0, 0, 0x140, 0x1E0); + object = lbl_1_bss_14 = omAddObjEx(lbl_1_bss_88, 0x7FDA, 0, 0, -1, omOutViewMulti); + object->work[0] = 2; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + CRotM[var_r31].x = lbl_1_data_0->unk_00.x; + CRotM[var_r31].y = lbl_1_data_0->unk_00.y; + CRotM[var_r31].z = lbl_1_data_0->unk_00.z; + CenterM[var_r31].x = lbl_1_data_0->unk_0C.x; + CenterM[var_r31].y = lbl_1_data_0->unk_0C.y; + CenterM[var_r31].z = lbl_1_data_0->unk_0C.z; + CZoomM[var_r31] = lbl_1_data_0->unk_18; + } + lbl_1_bss_C = 0; + lbl_1_bss_10 = -1; + omAddObjEx(lbl_1_bss_88, 0xFE, 0, 0, -1, fn_1_29E8); +} + +void fn_1_29E8(omObjData *object) { } + +void fn_1_29EC(void) { } + +s32 fn_1_29F0(void) +{ + return lbl_1_bss_C; +} + +void fn_1_2A00(s32 arg0, s32 arg1, float arg8) +{ + M428DllData0Struct *var_r31; + M428DllData0Struct *var_r30; + + var_r31 = &lbl_1_data_0[arg0]; + var_r30 = &lbl_1_data_0[arg1]; + Center.x = var_r31->unk_0C.x + (arg8 * (var_r30->unk_0C.x - var_r31->unk_0C.x)); + Center.y = var_r31->unk_0C.y + (arg8 * (var_r30->unk_0C.y - var_r31->unk_0C.y)); + Center.z = var_r31->unk_0C.z + (arg8 * (var_r30->unk_0C.z - var_r31->unk_0C.z)); + CZoom = var_r31->unk_18 + (arg8 * (var_r30->unk_18 - var_r31->unk_18)); +} + +void fn_1_2ACC(s32 arg0) +{ + ShadowData *var_r31; + s32 var_r30; + M428DllUnkStruct2 *var_r29; + ModelData *var_r28; + M428DllUnkStruct *var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + u32 var_r23; + + lbl_1_bss_0 = var_r24 = Hu3DHookFuncCreate(fn_1_2C90); + var_r28 = &Hu3DData[var_r24]; + Hu3DModelLayerSet(var_r24, 0); + var_r27 = var_r28->unk_120 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M428DllUnkStruct), var_r28->unk_48); + memset(var_r27, 0, sizeof(M428DllUnkStruct)); + var_r27->unk_FC0 = Hu3DShadowData; + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + var_r29 = &var_r27->unk_00[var_r30]; + var_r31 = &var_r27->unk_640[var_r30]; + var_r23 = 1 << var_r30; + + *var_r31 = Hu3DShadowData; + for (var_r26 = 0; var_r26 < 0x10; var_r26++) { + var_r29->unk_00[var_r26] = -1; + var_r29->unk_20[var_r26] = 1.0f; + } + var_r29->unk_60 = 0; + if ((var_r23 & arg0) != 0) { + if (var_r30 == 0) { + var_r31->unk_04 = Hu3DShadowData.unk_04; + } + else { + var_r25 = var_r31->unk_02; + var_r31->unk_04 = HuMemDirectMallocNum(HEAP_DATA, var_r25 * var_r25, var_r28->unk_48); + } + } + else { + var_r31->unk_04 = NULL; + } + } + Hu3DShadowCamBit++; +} + +void fn_1_2C90(ModelData *model, Mtx matrix) +{ + ShadowData *var_r31; + s32 var_r30; + M428DllUnkStruct *var_r29; + M428DllUnkStruct2 *var_r28; + + var_r29 = model->unk_120; + if (Hu3DCameraNo == 0) { + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + var_r28 = &var_r29->unk_00[var_r30]; + var_r31 = &var_r29->unk_640[var_r30]; + if ((var_r31->unk_04 != NULL) && !(var_r31->unk_08.x <= 0.0f) && (var_r28->unk_60 > 0)) { + Hu3DShadowData = *var_r31; + fn_1_2E2C(var_r30); + *var_r31 = Hu3DShadowData; + } + } + HuSprDispInit(); + HuSprExec(0x7F); + } + var_r28 = &var_r29->unk_00[Hu3DCameraNo]; + var_r31 = &var_r29->unk_640[Hu3DCameraNo]; + if ((var_r31->unk_04 == NULL) || (var_r31->unk_08.x <= 0.0f)) { + return; + } + Hu3DShadowData = *var_r31; +} + +GXColor lbl_1_data_E8 = { 0, 0, 0, 0 }; + +void fn_1_2E2C(s32 var_r26) +{ + Mtx spBC; + Mtx sp8C; + Mtx sp5C; + Mtx44 sp1C; + ShadowData *sp18; + ModelData *var_r31; + s16 var_r30; + M428DllUnkStruct2 *var_r29; + M428DllUnkStruct *var_r28; + s32 var_r27; + s32 var_r25; + u32 var_r24; + + var_r31 = &Hu3DData[lbl_1_bss_0]; + var_r28 = var_r31->unk_120; + var_r29 = &var_r28->unk_00[var_r26]; + sp18 = &var_r28->unk_640[var_r26]; + var_r24 = Hu3DShadowData.unk_00; + if (var_r26 == 0) { + GXSetViewport(0.0f, 0.0f, RenderMode->fbWidth, RenderMode->xfbHeight, 0.0f, 1.0f); + GXSetScissor(0, 0, RenderMode->fbWidth, RenderMode->efbHeight); + C_MTXOrtho(sp1C, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f); + GXSetProjection(sp1C, GX_ORTHOGRAPHIC); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_U8, 0); + GXSetTevColor(GX_TEVREG0, BGColor); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(0); + PSMTXIdentity(sp8C); + GXLoadPosMtxImm(sp8C, 0); + GXSetZMode(0, GX_ALWAYS, GX_TRUE); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(1); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(0); + } + Hu3DDrawPreInit(); + GXSetCopyClear(lbl_1_data_E8, 0xFFFFFF); + C_MTXPerspective(sp1C, Hu3DShadowData.unk_08.x, 1.2f, Hu3DShadowData.unk_08.y, Hu3DShadowData.unk_08.z); + GXSetProjection(sp1C, GX_PERSPECTIVE); + if (Hu3DShadowData.unk_02 <= 0xF0) { + GXSetScissor(2, 2, (Hu3DShadowData.unk_02 * 2) - 4, (Hu3DShadowData.unk_02 * 2) - 4); + GXSetViewport(0.0f, 0.0f, Hu3DShadowData.unk_02 * 2, Hu3DShadowData.unk_02 * 2, 0.0f, 1.0f); + var_r25 = (Hu3DShadowData.unk_02 / 2) * (Hu3DShadowData.unk_02 / 2); + } + else { + GXSetScissor(1, 1, Hu3DShadowData.unk_02 - 2, Hu3DShadowData.unk_02 - 2); + GXSetViewport(0.0f, 0.0f, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 0.0f, 1.0f); + var_r25 = Hu3DShadowData.unk_02 * Hu3DShadowData.unk_02; + } + C_MTXLookAt(Hu3DCameraMtx, &Hu3DShadowData.unk_14, &Hu3DShadowData.unk_2C, &Hu3DShadowData.unk_20); + PSMTXCopy(Hu3DCameraMtx, Hu3DShadowData.unk_38); + shadowModelDrawF = 1; + GXInvalidateTexAll(); + GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, BGColor); + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + if (var_r29->unk_00[var_r30] != -1) { + var_r31 = &Hu3DData[var_r29->unk_00[var_r30]]; + if (((var_r31->attr & 1) == 0) && ((var_r31->attr & 0x8000) == 0)) { + if ((var_r31->attr & 8) != 0) { + var_r27 = 0; + if (var_r31->unk_08 != -1) { + Hu3DMotionExec(var_r30, var_r31->unk_08, var_r31->unk_64, 0); + } + if (var_r31->unk_0C != -1) { + Hu3DSubMotionExec(var_r30); + } + if (var_r31->unk_0A != -1) { + Hu3DMotionExec(var_r30, var_r31->unk_0A, var_r31->unk_74, 1); + } + if ((var_r31->attr & 0x400) != 0) { + ClusterMotionExec(var_r31); + var_r27 = 1; + } + if (var_r31->unk_0E != -1) { + if (var_r31->unk_08 == -1) { + Hu3DMotionExec(var_r30, var_r31->unk_0E, var_r31->unk_94, 0); + } + else { + Hu3DMotionExec(var_r30, var_r31->unk_0E, var_r31->unk_94, 1); + } + } + if (((var_r31->attr & 0x90) == 0) || ((var_r31->motion_attr & 0x40000002) == 0)) { + var_r27 = 1; + InitVtxParm(var_r31->hsfData); + if (var_r31->unk_0E != -1) { + ShapeProc(var_r31->hsfData); + } + if ((var_r31->attr & 0x400) != 0) { + ClusterProc(var_r31); + } + if (var_r31->hsfData->cenvCnt != 0) { + EnvelopeProc(var_r31->hsfData); + } + PPCSync(); + } + var_r31->attr |= 0x800; + } + Hu3DModelShadowSet(var_r29->unk_00[var_r30]); + Hu3DShadowData.unk_00 = (s8)(var_r29->unk_20[var_r30] * var_r24); + mtxRot(sp5C, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); + PSMTXScale(spBC, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + PSMTXConcat(sp5C, spBC, spBC); + mtxTransCat(spBC, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); + PSMTXConcat(Hu3DCameraMtx, spBC, sp8C); + PSMTXConcat(sp8C, var_r31->unk_F0, sp8C); + Hu3DDraw(var_r31, sp8C, &var_r31->scale); + Hu3DModelShadowReset(var_r29->unk_00[var_r30]); + } + } + } + Hu3DDrawPost(); + GXDrawDone(); + shadowModelDrawF = 0; + if (Hu3DShadowData.unk_02 <= 0xF0) { + GXSetTexCopySrc(0, 0, Hu3DShadowData.unk_02 * 2, Hu3DShadowData.unk_02 * 2); + GXSetTexCopyDst(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_CTF_R8, 1); + } + else { + GXSetTexCopySrc(0, 0, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02); + GXSetTexCopyDst(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_CTF_R8, 0); + } + GXCopyTex(Hu3DShadowData.unk_04, 1); + GXSetViewport(0.0f, 0.0f, RenderMode->fbWidth, RenderMode->xfbHeight, 0.0f, 1.0f); + GXSetScissor(0, 0, RenderMode->fbWidth, RenderMode->efbHeight); + C_MTXOrtho(sp1C, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f); + GXSetProjection(sp1C, GX_ORTHOGRAPHIC); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_U8, 0); + GXSetTevColor(GX_TEVREG0, BGColor); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(0); + PSMTXIdentity(sp8C); + GXLoadPosMtxImm(sp8C, 0); + GXSetZMode(0, GX_ALWAYS, 1); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(1); + GXPosition1x8(0); + GXPosition1x8(0); + GXPosition1x8(1); + GXPosition1x8(0); +} + +void fn_1_3B64(void) +{ + Mtx44 sp64; + Mtx sp34; + GXTexObj sp14; + ShadowData *sp10; + GXColor spC; + M428DllUnkStruct *var_r31; + M428DllUnkStruct2 *var_r30; + ModelData *var_r29; + u8 *var_r28; + + if (lbl_1_bss_0 != -1) { + var_r29 = &Hu3DData[lbl_1_bss_0]; + var_r31 = var_r29->unk_120; + var_r30 = &var_r31->unk_00[Hu3DCameraNo]; + sp10 = &var_r31->unk_640[Hu3DCameraNo]; + if (var_r30->unk_60 > 0) { + GXInitTexObj(&sp14, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_TF_I8, GX_CLAMP, GX_CLAMP, 0); + GXInitTexObjLOD(&sp14, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXLoadTexObj(&sp14, GX_TEXMAP0); + C_MTXOrtho(sp64, 0.0f, 480.0f, 0.0f, 320.0f, 0.0f, 10.0f); + GXSetProjection(sp64, GX_ORTHOGRAPHIC); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + spC.a = 0x80; + GXSetTevColor(GX_TEVREG0, spC); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumTexGens(1); + GXSetNumTevStages(1); + PSMTXIdentity(sp34); + GXLoadPosMtxImm(sp34, 0); + GXSetZMode(0, GX_LEQUAL, GX_FALSE); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(0.0f, 0.0f, 0.0f); + GXTexCoord2f32(0.0f, 0.0f); + GXPosition3f32(Hu3DShadowData.unk_02, 0.0f, 0.0f); + GXTexCoord2f32(1.0f, 0.0f); + GXPosition3f32(Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 0.0f); + GXTexCoord2f32(1.0f, 1.0f); + GXPosition3f32(0.0f, Hu3DShadowData.unk_02, 0.0f); + GXTexCoord2f32(0.0f, 1.0f); + } + } +} + +s32 lbl_1_data_EC[] = { + 0, + 0, + 0x45ABE000, + 0xC576E000, + 0, + 0xBF333333, + 0x3F19999A, + 0xFFFFFFFF, + 0, + 0x45ABE000, + 0xC576E000, + 0, + 0x3F800000, + 0, + 0, + 0, + 0, +}; + +void fn_1_40A4(void) +{ + M428DllUnkStruct *var_r31; + ModelData *var_r30; + + var_r30 = &Hu3DData[lbl_1_bss_0]; + var_r31 = var_r30->unk_120; + Hu3DShadowData = var_r31->unk_FC0; + Hu3DModelKill(lbl_1_bss_0); + lbl_1_bss_0 = -1; + if (Hu3DShadowCamBit > 0) { + Hu3DShadowCamBit--; + } +} + +void fn_1_4170(s16 arg0, s32 arg1) +{ + ShadowData *sp8; + M428DllUnkStruct2 *var_r31; + s32 var_r30; + s32 var_r29; + M428DllUnkStruct *var_r28; + ModelData *var_r27; + u32 var_r26; + + var_r27 = &Hu3DData[lbl_1_bss_0]; + var_r28 = var_r27->unk_120; + for (var_r29 = 0; var_r29 < 0x10; var_r29++) { + var_r31 = &var_r28->unk_00[var_r29]; + sp8 = &var_r28->unk_640[var_r29]; + var_r26 = 1 << var_r29; + if ((var_r26 & arg1) != 0) { + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + if (arg0 != var_r31->unk_00[var_r30]) { + if (var_r31->unk_00[var_r30] == -1) { + var_r31->unk_00[var_r30] = arg0; + var_r31->unk_20[var_r30] = 1.0f; + var_r31->unk_60++; + break; + } + } + else { + break; + } + } + } + } +} + +void fn_1_4264(s16 arg0, s32 arg1, float arg8) +{ + ShadowData *sp8; + s32 var_r31; + s32 var_r30; + M428DllUnkStruct2 *var_r29; + M428DllUnkStruct *var_r28; + ModelData *var_r27; + u32 var_r26; + + var_r27 = &Hu3DData[lbl_1_bss_0]; + var_r28 = var_r27->unk_120; + for (var_r31 = 0; var_r31 < 0x10; var_r31++) { + var_r29 = &var_r28->unk_00[var_r31]; + sp8 = &var_r28->unk_640[var_r31]; + var_r26 = 1 << var_r31; + if ((var_r26 & arg1) != 0) { + for (var_r30 = 0; var_r30 < 0x10; var_r30++) { + if (arg0 == var_r29->unk_00[var_r30]) { + var_r29->unk_20[var_r30] = arg8; + } + } + } + } +} + +void fn_1_4324(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + M428DllUnkStruct2 *sp8; + ShadowData *var_r31; + M428DllUnkStruct *var_r30; + ModelData *var_r29; + + var_r29 = &Hu3DData[lbl_1_bss_0]; + var_r30 = var_r29->unk_120; + sp8 = &var_r30->unk_00[arg0]; + var_r31 = &var_r30->unk_640[arg0]; + var_r31->unk_14 = *arg1; + var_r31->unk_20 = *arg3; + var_r31->unk_2C = *arg2; +} diff --git a/src/REL/m428Dll/map.c b/src/REL/m428Dll/map.c new file mode 100644 index 00000000..cadec1d3 --- /dev/null +++ b/src/REL/m428Dll/map.c @@ -0,0 +1,1275 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfformat.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/init.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m428Dll.h" + +#ifndef __MWERKS__ +#include "game/frand.h" +#endif + +typedef struct M433DllMapWork2 { + u8 unk_00; + Vec unk_04; + Vec unk_10; + Vec unk_1C; + Vec unk_28; + Vec unk_34; + Vec unk_40; + Vec unk_4C; + Vec unk_58; + Vec unk_64[3]; + Vec unk_88[3]; + Vec unk_AC[3]; + Vec unk_D0[3]; + float unk_F4[3]; + float unk_100[3]; + float unk_10C[3]; + float unk_118[3]; + float unk_124[3]; + float unk_130; + float unk_134; + float unk_138; + float unk_13C; + float unk_140; + float unk_144; + float unk_148; + float unk_14C[3]; + float unk_158[3]; + float unk_164[3]; + float unk_170[3]; + float unk_17C[3]; + u16 unk_188[3]; +} M433DllMapWork2; /* size = 0x190 */ + +typedef struct M433DllUnkStruct { + s16 unk_00; + s16 unk_02; + s16 unk_04; + s16 unk_06; + float unk_08; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + char unk20[0x28]; +} M433DllUnkStruct; /* size = 0x48 */ + +typedef struct M433DllUnkStruct4 { + Vec unk_00; + s32 unk_0C[3]; + s8 unk_18[4]; + s8 unk_1C; + float unk_20; + float unk_24; + float unk_28; + float unk_2C; + float unk_30; +} M433DllUnkStruct4; /* size = 0x34 */ + +typedef struct M433DllUnkStruct2 { + Vec *unk_00; + s32 unk_04; + s32 unk_08; + M433DllUnkStruct4 *unk_0C; +} M433DllUnkStruct2; /* size 0x10 */ + +typedef struct M433DllUnkStruct3 { + s32 unk_00; + M433DllUnkStruct2 *unk_04; +} M433DllUnkStruct3; /* size = 0x08 */ + +void fn_1_4650(omObjData *object); +void fn_1_475C(omObjData *object); +void fn_1_4F04(omObjData *object); +void fn_1_51E0(omObjData *object); +u8 fn_1_5370(M433DllUnkStruct2 *arg0, Vec *arg1); +void fn_1_5558(s32 arg0, M433DllUnkStruct3 *arg1); +void fn_1_5CCC(HsfData *arg0, HsfObject *arg1); +void fn_1_6280(ModelData *arg1, ParticleData *particle, Mtx matrix); +s16 fn_1_71AC(s32 arg0, s16 arg1, ParticleHook arg2); +void fn_1_7294(void); +void *fn_1_72D4(s32 arg0); +void fn_1_739C(M433DllUnkStruct2 *arg0); +void fn_1_7430(void); +s32 fn_1_7500(void); +void fn_1_8F90(float *arg0, float *arg1, float *arg2, s32 arg3); +float fn_1_9248(float arg8, float *arg0, float *arg1, float *arg2, s32 arg3); +void fn_1_939C(float *arg0, float (*arg1)[3], float (*arg2)[3], s32 arg3); +void fn_1_977C(float arg8, float *arg0, float *arg1, float (*arg2)[3], float (*arg3)[3], s32 arg4); + +M433DllUnkStruct3 *lbl_1_bss_12C; +M433DllUnkStruct2 *lbl_1_bss_128; +void *lbl_1_bss_A8[0x20]; +omObjData *lbl_1_bss_A4; +omObjData *lbl_1_bss_A0; +omObjData *lbl_1_bss_98[2]; +M433DllUnkStruct3 lbl_1_bss_90; + +void fn_1_43C8(Process *arg0) +{ + s32 var_r31; + omObjData *var_r30; + s32 var_r28; + + var_r28 = frand() & 0x1F; + for (var_r31 = 0; var_r31 < var_r28; var_r31++) { + fn_1_7500(); + } + fn_1_7294(); + Hu3DCameraCreate(3); + Hu3DCameraPerspectiveSet(1, 45.0f, 100.0f, 7500.0f, 0.6f); + Hu3DCameraPerspectiveSet(2, 45.0f, 100.0f, 7500.0f, 0.6f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraViewportSet(2, 320.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x140, 0x1E0); + Hu3DCameraScissorSet(2, 0x140, 0, 0x140, 0x1E0); + lbl_1_bss_A4 = omAddObjEx(arg0, 0x7FDA, 0, 0, -1, omOutViewMulti); + lbl_1_bss_A4->work[0] = 2; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30 = omAddObjEx(arg0, 0xFE, 1, 0, -1, fn_1_4650); + lbl_1_bss_98[var_r31] = var_r30; + var_r30->work[0] = var_r31; + } + lbl_1_bss_A0 = omAddObjEx(arg0, 0x7F, 9, 0, -1, fn_1_4F04); +} + +void fn_1_4630(void) +{ + fn_1_7430(); +} + +void fn_1_4650(omObjData *object) +{ + M433DllMapWork2 *work; + + work = fn_1_72D4(0x190); + object->data = work; + work->unk_148 = work->unk_144 = 0.0f; + work->unk_140 = 1.0f; + work->unk_10.x = work->unk_28.x = 0.0f; + work->unk_10.y = work->unk_28.y = 0.0f; + work->unk_10.z = work->unk_28.z = 0.0f; + work->unk_04.x = work->unk_1C.x = 0.0f; + work->unk_04.y = work->unk_1C.y = 80.0f; + work->unk_04.z = work->unk_1C.z = 0.0f; + work->unk_130 = work->unk_134 = 600.0f; + work->unk_188[0] = work->unk_188[1] = work->unk_188[2] = 0; + object->func = fn_1_475C; +} + +void fn_1_475C(omObjData *object) +{ + float var_f31; + M433DllMapWork2 *work; + s32 var_r29; + + work = object->data; + if (work->unk_148 > 0.0f) { + work->unk_148 = work->unk_148 - work->unk_140; + var_f31 = (work->unk_144 - work->unk_148) / work->unk_144; + var_f31 = sind((90.0f * var_f31)); + if (work->unk_00 == 0) { + work->unk_04.x = work->unk_1C.x + (var_f31 * (work->unk_34.x - work->unk_1C.x)); + work->unk_04.y = work->unk_1C.y + (var_f31 * (work->unk_34.y - work->unk_1C.y)); + work->unk_04.z = work->unk_1C.z + (var_f31 * (work->unk_34.z - work->unk_1C.z)); + work->unk_10.x = work->unk_28.x + (var_f31 * (work->unk_40.x - work->unk_28.x)); + work->unk_10.y = work->unk_28.y + (var_f31 * (work->unk_40.y - work->unk_28.y)); + work->unk_10.z = work->unk_28.z + (var_f31 * (work->unk_40.z - work->unk_28.z)); + work->unk_130 = work->unk_134 + (var_f31 * (work->unk_138 - work->unk_134)); + } + else { + fn_1_977C(2.0f * var_f31, (float *)&work->unk_04, work->unk_F4, (float(*)[3])work->unk_64, (float(*)[3])work->unk_88, 3); + fn_1_977C(2.0f * var_f31, (float *)&work->unk_10, work->unk_100, (float(*)[3])work->unk_AC, (float(*)[3])work->unk_D0, 3); + work->unk_130 = fn_1_9248(2.0f * var_f31, work->unk_124, work->unk_10C, work->unk_118, 3); + } + } + CRotM[object->work[0]].x = work->unk_10.x; + CRotM[object->work[0]].y = work->unk_10.y; + CRotM[object->work[0]].z = work->unk_10.z; + CenterM[object->work[0]].x = work->unk_04.x; + CenterM[object->work[0]].y = work->unk_04.y; + CenterM[object->work[0]].z = work->unk_04.z; + CZoomM[object->work[0]] = work->unk_130; + for (var_r29 = 0; var_r29 < 3; var_r29++) { + work->unk_17C[var_r29] = 0.0f; + if (work->unk_188[var_r29] != 0) { + work->unk_17C[var_r29] = work->unk_14C[var_r29] * sind(work->unk_164[var_r29]); + work->unk_164[var_r29] += work->unk_170[var_r29]; + work->unk_14C[var_r29] *= work->unk_158[var_r29]; + work->unk_188[var_r29] -= 1; + } + } + CenterM[object->work[0]].x += work->unk_17C[0]; + CenterM[object->work[0]].y += work->unk_17C[1]; + CenterM[object->work[0]].z += work->unk_17C[2]; +} + +void fn_1_4B7C(u8 arg0, float arg1, Vec *arg2, Vec *arg3, float arg8, Vec *arg4, Vec *arg5, float arg9) +{ + float var_f31; + float var_f30; + M433DllMapWork2 *var_r31; + + var_r31 = lbl_1_bss_98[arg0]->data; + var_r31->unk_00 = 1; + var_r31->unk_148 = var_r31->unk_144 = arg1; + var_r31->unk_1C = var_r31->unk_04; + var_r31->unk_34.x = arg2->x; + var_r31->unk_34.y = arg2->y; + var_r31->unk_34.z = arg2->z; + var_r31->unk_4C.x = arg4->x; + var_r31->unk_4C.y = arg4->y; + var_r31->unk_4C.z = arg4->z; + var_r31->unk_28 = var_r31->unk_10; + var_r31->unk_40.x = arg3->x; + var_r31->unk_40.y = arg3->y; + var_r31->unk_40.z = arg3->z; + var_r31->unk_58.x = arg5->x; + var_r31->unk_58.y = arg5->y; + var_r31->unk_58.z = arg5->z; + var_r31->unk_134 = var_r31->unk_130; + var_r31->unk_138 = arg8; + var_r31->unk_13C = arg9; + var_r31->unk_64[0] = var_r31->unk_1C; + var_r31->unk_64[1] = var_r31->unk_4C; + var_r31->unk_64[2] = var_r31->unk_34; + var_r31->unk_AC[0] = var_r31->unk_28; + var_r31->unk_AC[1] = var_r31->unk_58; + var_r31->unk_AC[2] = var_r31->unk_40; + var_r31->unk_10C[0] = var_r31->unk_134; + var_r31->unk_10C[1] = var_r31->unk_13C; + var_r31->unk_10C[2] = var_r31->unk_138; + var_r31->unk_124[0] = 0.0f; + if ((var_r31->unk_10C[1] - var_r31->unk_10C[0]) < 0.0f) { + var_f31 = -(var_r31->unk_10C[1] - var_r31->unk_10C[0]); + } + else { + var_f31 = var_r31->unk_10C[1] - var_r31->unk_10C[0]; + } + var_r31->unk_124[1] = var_f31; + if ((var_r31->unk_10C[2] - var_r31->unk_10C[1]) < 0.0f) { + var_f30 = -(var_r31->unk_10C[2] - var_r31->unk_10C[1]); + } + else { + var_f30 = var_r31->unk_10C[2] - var_r31->unk_10C[1]; + } + var_r31->unk_124[2] = var_r31->unk_124[1] + var_f30; + fn_1_939C(var_r31->unk_F4, (float(*)[3])var_r31->unk_64, (float(*)[3])var_r31->unk_88, 3); + fn_1_939C(var_r31->unk_100, (float(*)[3])var_r31->unk_AC, (float(*)[3])var_r31->unk_D0, 3); + fn_1_8F90(var_r31->unk_124, var_r31->unk_10C, var_r31->unk_118, 3); +} + +void fn_1_4E44(u8 arg0, float arg8) +{ + M433DllMapWork2 *work = lbl_1_bss_98[arg0]->data; + work->unk_140 = arg8; +} + +void fn_1_4E78(u8 arg0, u8 arg1, u16 arg2, float arg8, float arg9, float argA) +{ + M433DllMapWork2 *var_r31 = lbl_1_bss_98[arg0]->data; + var_r31->unk_188[arg1] = arg2; + var_r31->unk_14C[arg1] = arg8; + var_r31->unk_158[arg1] = arg9; + var_r31->unk_170[arg1] = argA; + var_r31->unk_164[arg1] = 90.0f; +} + +static char lbl_1_data_130[20] = "goal"; // explicitly declared because of padding + +void fn_1_4F04(omObjData *object) +{ + s32 var_r31; + M433DllUnkStruct *var_r29; + s32 var_r28; + + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 0)); + object->model[0] = var_r31; + Hu3DModelShadowMapSet(var_r31); + Hu3DModelLayerSet(var_r31, 2); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 1)); + object->model[1] = var_r31; + Hu3DModelAttrSet(var_r31, HU3D_ATTR_DISPOFF); + fn_1_5558(var_r31, &lbl_1_bss_90); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 2)); + object->model[2] = var_r31; + Hu3DModelLayerSet(var_r31, 2); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 3)); + object->model[3] = var_r31; + Hu3DModelAttrSet(var_r31, HU3D_ATTR_DISPOFF); + Hu3DModelShadowMapObjSet(var_r31, lbl_1_data_130); + Hu3DModelLayerSet(var_r31, 2); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 4)); + object->model[4] = var_r31; + Hu3DModelAttrSet(var_r31, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31, HU3D_MOTATTR_SHAPE_LOOP); + Hu3DModelLayerSet(var_r31, 2); + Hu3DModelCameraSet(var_r31, 1); + fn_1_4170(var_r31, 1); + var_r31 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 5)); + object->model[5] = var_r31; + Hu3DModelAttrSet(var_r31, HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31, HU3D_MOTATTR_SHAPE_LOOP); + Hu3DModelLayerSet(var_r31, 2); + Hu3DModelCameraSet(var_r31, 2); + fn_1_4170(var_r31, 2); + for (var_r28 = 0; var_r28 < 2; var_r28++) { + var_r31 = fn_1_71AC(DATA_MAKE_NUM(DATADIR_M428, 6), 0x3E8, fn_1_6280); + object->model[var_r28 + 6] = var_r31; + Hu3DModelLayerSet(var_r31, 4); + Hu3DModelCameraSet(var_r31, 1 << var_r28); + var_r29 = ((ParticleData *)Hu3DData[var_r31].unk_120)->unk_1C; + var_r29->unk_08 = 400.0f; + var_r29->unk_0C = -400.0f; + var_r29->unk_10 = 1300.0f; + var_r29->unk_14 = -800.0f; + var_r29->unk_18 = 700.0f; + var_r29->unk_1C = 150.0f; + } + object->func = fn_1_51E0; +} + +void fn_1_51E0(omObjData *object) +{ + M433DllUnkStruct *var_r31; + s32 var_r30; + + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r31 = ((ParticleData *)Hu3DData[object->model[var_r30 + 6]].unk_120)->unk_1C; + var_r31->unk_08 = 500.0f + CenterM[var_r30].x; + var_r31->unk_0C = -500.0f + CenterM[var_r30].x; + var_r31->unk_10 = 900.0f + CenterM[var_r30].y; + var_r31->unk_14 = -1200.0f + CenterM[var_r30].y; + } +} + +void fn_1_52D8(omObjData *object) { } + +u8 fn_1_52DC(M433DllUnkStruct3 *arg0, Vec *arg1) +{ + u32 var_r30; + M433DllUnkStruct2 *var_r29; + s32 var_r28; + + var_r28 = 0; + for (var_r29 = arg0->unk_04, var_r30 = 0; var_r30 < arg0->unk_00; var_r30++, var_r29++) { + if (fn_1_5370(var_r29, arg1) != 0) { + break; + } + } + if (var_r30 < arg0->unk_00) { + var_r28 = 1; + } + return var_r28; +} + +u8 fn_1_5370(M433DllUnkStruct2 *arg0, Vec *arg1) +{ + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + M433DllUnkStruct4 *var_r31; + s32 var_r28; + u32 var_r27; + s32 var_r26; + Vec *var_r25; + s32 var_r24; + Vec *var_r23; + + var_r31 = arg0->unk_0C; + for (var_r27 = 0; var_r27 < arg0->unk_08; var_r27++, var_r31++) { + sp8 = *arg1; + sp8.y = 0.0f; + PSVECSubtract(&sp8, &var_r31->unk_00, &sp20); + var_f30 = PSVECMag(&sp20); + if (!(var_f30 > (400.0f + var_r31->unk_20)) && (var_r31->unk_2C != 0.0f)) { + var_r24 = 0; + for (var_r28 = 0; var_r28 < 3; var_r28++) { + var_r26 = var_r28 + 1; + if (var_r26 == 3) { + var_r26 = 0; + } + var_r23 = &arg0->unk_00[var_r31->unk_0C[var_r28]]; + var_r25 = &arg0->unk_00[var_r31->unk_0C[var_r26]]; + PSVECSubtract(var_r25, var_r23, &sp20); + PSVECSubtract(arg1, var_r25, &sp14); + var_f31 = (sp20.x * sp14.y) - (sp20.y * sp14.x); + if ((var_f31 * var_r31->unk_2C) < 0.0) { + var_r24 = 1; + break; + } + } + if (var_r24 == 0) { + arg1->z = ((var_r31->unk_30 - (var_r31->unk_24 * arg1->x)) - (var_r31->unk_28 * arg1->y)) / var_r31->unk_2C; + return 1; + } + } + } + return 0; +} + +void fn_1_5558(s32 arg0, M433DllUnkStruct3 *arg1) +{ + HsfData *var_r31; + u32 var_r30; + + var_r31 = Hu3DData[arg0].hsfData; + lbl_1_bss_12C = arg1; + lbl_1_bss_12C->unk_00 = 0; + lbl_1_bss_12C->unk_04 = fn_1_72D4(0x1000); + lbl_1_bss_128 = lbl_1_bss_12C->unk_04; + fn_1_5CCC(var_r31, var_r31->root); + var_r30 = lbl_1_bss_12C->unk_00 * 0x10; + lbl_1_bss_128 = lbl_1_bss_12C->unk_04; + lbl_1_bss_12C->unk_04 = fn_1_72D4(var_r30); + memcpy(lbl_1_bss_12C->unk_04, lbl_1_bss_128, var_r30); + fn_1_739C(lbl_1_bss_128); +} + +void fn_1_5684(HsfData *arg0, HsfObject *arg1) +{ + Vec sp18; + Vec spC; + float var_f31; + M433DllUnkStruct4 *var_r31; + HsfFace *var_r30; + HsfBuffer *var_r29; + s32 var_r28; + s32 var_r27; + HsfBuffer *var_r25; + + var_r29 = arg1->data.vertex; + var_r25 = arg1->data.face; + lbl_1_bss_128->unk_08 = var_r25->count; + lbl_1_bss_128->unk_04 = var_r29->count; + lbl_1_bss_128->unk_00 = var_r29->data; + lbl_1_bss_128->unk_0C = fn_1_72D4(lbl_1_bss_128->unk_08 * sizeof(M433DllUnkStruct4)); + var_r30 = var_r25->data; + var_r31 = lbl_1_bss_128->unk_0C; + for (var_r27 = 0; var_r27 < var_r25->count; var_r27++, var_r30++, var_r31++) { + switch (var_r30->type & 7) { + case 2: + var_r31->unk_1C = 3; + var_r31->unk_00.x = var_r31->unk_00.y = var_r31->unk_00.z = 0.0f; + for (var_r28 = 0; var_r28 < 3; var_r28++) { + var_r31->unk_0C[var_r28] = var_r30->indices[var_r28][0]; + var_r31->unk_00.x += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].x; + var_r31->unk_00.y += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].y; + var_r31->unk_00.z += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].z; + } + var_r31->unk_00.x /= 3.0f; + var_r31->unk_00.y /= 3.0f; + var_r31->unk_00.z /= 3.0f; + var_r31->unk_20 = 0.0f; + for (var_r28 = 0; var_r28 < 3; var_r28++) { + PSVECSubtract(&((Vec *)var_r29->data)[var_r30->indices[var_r28][0]], &var_r31->unk_00, &sp18); + var_f31 = PSVECMag(&sp18); + if (var_f31 > var_r31->unk_20) { + var_r31->unk_20 = var_f31; + } + } + var_r31->unk_00.y = 0.0f; + PSVECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &sp18); + PSVECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[2][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &spC); + var_r31->unk_24 = (sp18.y * spC.z) - (sp18.z * spC.y); + var_r31->unk_28 = (sp18.z * spC.x) - (sp18.x * spC.z); + var_r31->unk_2C = (sp18.x * spC.y) - (sp18.y * spC.x); + var_r31->unk_30 = (var_r31->unk_2C * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].z) + + ((var_r31->unk_24 * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].x) + + (var_r31->unk_28 * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].y)); + break; + case 3: + var_r31->unk_1C = 4; + var_r31->unk_00.x = var_r31->unk_00.y = var_r31->unk_00.z = 0.0f; + for (var_r28 = 0; var_r28 < 4; var_r28++) { + var_r31->unk_0C[var_r28] = var_r30->indices[var_r28][0]; + var_r31->unk_00.x += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].x; + var_r31->unk_00.y += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].y; + var_r31->unk_00.z += ((Vec *)var_r29->data)[var_r30->indices[var_r28][0]].z; + } + var_r31->unk_00.x *= 0.25f; + var_r31->unk_00.y *= 0.25f; + var_r31->unk_00.z *= 0.25f; + var_r31->unk_20 = 0.0f; + for (var_r28 = 0; var_r28 < 4; var_r28++) { + PSVECSubtract(&((Vec *)var_r29->data)[var_r30->indices[var_r28][0]], &var_r31->unk_00, &sp18); + var_f31 = PSVECMag(&sp18); + if (var_f31 > var_r31->unk_20) { + var_r31->unk_20 = var_f31; + } + } + PSVECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &sp18); + PSVECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[2][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &spC); + var_r31->unk_24 = (sp18.y * spC.z) - (sp18.z * spC.y); + var_r31->unk_28 = (sp18.z * spC.x) - (sp18.x * spC.z); + var_r31->unk_2C = (sp18.x * spC.y) - (sp18.y * spC.x); + var_r31->unk_30 = (var_r31->unk_24 * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].x) + + ((var_r31->unk_28 * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].y)) + + (var_r31->unk_2C * ((Vec *)var_r29->data)[var_r30->strip.indices[0][0]].z); + break; + default: + OSReport("Error\n"); + break; + } + } + for (var_r27 = 0; var_r27 < arg1->data.childrenCount; var_r27++) { + fn_1_5CCC(arg0, arg1->data.children[var_r27]); + } +} + +void fn_1_5CCC(HsfData *var_r31, HsfObject *var_r23) +{ + s16 var_r22; + + switch (var_r23->type) { + case 0: + case 1: + case 3: + case 4: + case 5: + case 6: + case 9: + for (var_r22 = 0; var_r22 < var_r23->data.childrenCount; var_r22++) { + fn_1_5CCC(var_r31, var_r23->data.children[var_r22]); + } + break; + case 2: + fn_1_5684(var_r31, var_r23); + lbl_1_bss_12C->unk_00++; + lbl_1_bss_128++; + break; + } +} + +void fn_1_6280(ModelData *arg1, ParticleData *particle, Mtx matrix) +{ + s32 sp3C; + s32 sp38; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + HsfanimStruct01 *var_r31; + M433DllUnkStruct *var_r30; + s32 var_r28; + s32 var_r27; + + var_r30 = particle->unk_1C; + var_f29 = var_r30->unk_08 - var_r30->unk_0C; + var_f30 = var_r30->unk_10 - var_r30->unk_14; + var_f28 = var_r30->unk_18 - var_r30->unk_1C; + switch (var_r30->unk_04) { + case 2: + break; + case 0: + for (var_r31 = particle->unk_48, var_r28 = 0; var_r28 < (0.3f * particle->unk_30); var_r28++, var_r31++) { + var_r31->unk00 = 1; + var_r31->unk34.x = var_r30->unk_0C + (var_f29 * (fn_1_7500() / 65536.0f)); + var_r31->unk34.y = (var_r30->unk_14 + ((200.0f + var_f30) * (fn_1_7500() / 65536.0f))) - 100.0f; + var_r31->unk34.z = var_r30->unk_1C + (var_f28 * (fn_1_7500() / 65536.0f)); + var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = var_r31->unk40.a = 0xFF; + var_r31->unk2C = 26.0f + (10.0f * (fn_1_7500() / 65536.0f)); + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = -1.6333333f * (fn_1_7500() / 65536.0f); + var_r31->unk08.z = 0.0f; + var_r31->unk14.x = var_r31->unk14.y = var_r31->unk14.z = 0.0f; + var_r31->unk30 = 360.0f * (fn_1_7500() / 65536.0f); + var_r31->unk02 = 0; + } + for (; var_r28 < particle->unk_30; var_r28++, var_r31++) { + var_r31->unk00 = 0; + var_r31->unk40.a = 0; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = -1.6333333f * (fn_1_7500() / 65536.0f); + var_r31->unk08.z = 0.0f; + var_r31->unk14.x = var_r31->unk14.y = var_r31->unk14.z = 0.0f; + } + particle->unk_04.x = particle->unk_04.y = particle->unk_04.z = 0.0f; + var_r30->unk_04++; + break; + case 1: + particle->unk_04.x = particle->unk_04.y = particle->unk_04.z = 0.0f; + var_r30->unk_06 = 0; + break; + case 3: + particle->unk_04.x *= 0.95f; + if (particle->unk_04.x < 0.0f) { + var_f27 = -particle->unk_04.x; + } + else { + var_f27 = particle->unk_04.x; + } + if (var_f27 < 0.01f) { + var_r30->unk_04 = 1; + } + break; + } + for (var_r31 = particle->unk_48, var_r27 = 0, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { + switch (var_r31->unk00_s16) { + case 0: + if (((var_r28 > (0.4f * particle->unk_30)) && (particle->unk_04.x == 0.0f)) || (var_r27 >= (10.0f + (0.75f * particle->unk_04.x)))) { + var_r31->unk2C = 0.01f; + } + else { + if (((fn_1_7500() & 3) == 0) || (particle->unk_04.x == 0.0f)) { + var_r31->unk34.x = var_r30->unk_0C + (var_f29 * (fn_1_7500() / 65536.0f)); + var_r31->unk34.y = var_r30->unk_10 + (100.0f * (fn_1_7500() / 65536.0f)); + var_r31->unk40.a = 7; + } + else { + if (particle->unk_04.x > 0.0f) { + var_r31->unk34.x = var_r30->unk_0C - (100.0f * (fn_1_7500() / 65536.0f)); + } + else { + var_r31->unk34.x = var_r30->unk_08 + (100.0f * (fn_1_7500() / 65536.0f)); + } + var_r31->unk34.y = var_r30->unk_10 - (var_f30 * (fn_1_7500() / 65536.0f)); + var_r31->unk40.a = 0xFF; + } + var_r31->unk34.z = var_r30->unk_1C + (var_f28 * (fn_1_7500() / 65536.0f)); + var_r31->unk2C = 28.0f + (10.0f * (fn_1_7500() / 65536.0f)); + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = -1.6333333f * (fn_1_7500() / 65536.0f); + var_r31->unk08.z = 0.0f; + var_r31->unk08.x = 0.25f * var_r31->unk08.y * ((fn_1_7500() - 0x8000) / 32768.0f); + var_r31->unk14.x = var_r31->unk14.y = var_r31->unk14.z = 0.0f; + var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = 0xFF; + var_r31->unk02 = 0; + var_r27++; + var_r31->unk00_s16++; + } + break; + case 1: + var_r31->unk08.y += -1.6333333f; + var_r31->unk08.y += 0.19998f * (1.6333333f * (4.81f + (0.005f * var_r31->unk2C))); + if (var_r31->unk02 != 0) { + var_r31->unk02--; + var_r31->unk08.y *= 0.8f; + var_r31->unk08.y += 0.0025f * (-1.6333333f * var_r31->unk2C); + } + else if ((fn_1_7500() & 0x7F) == 0) { + var_r31->unk02 = (s32)(30.0f * (fn_1_7500() / 65536.0f)); + } + if (var_r31->unk08.x < 0.0f) { + var_f26 = -var_r31->unk08.x; + } + else { + var_f26 = var_r31->unk08.x; + } + if (var_f26 < 0.02f) { + var_r31->unk14.x = 0.025f * (var_r31->unk2C * (-1.6333333f * ((fn_1_7500() - 0x8000) / 32768.0f))); + if (var_r31->unk14.x > 0.0f) { + var_r31->unk08.x = 0.02f + (0.04f * var_r31->unk14.x); + } + else { + var_r31->unk08.x = (0.04f * var_r31->unk14.x) - 0.02f; + } + } + else { + var_f31 = var_r31->unk08.x - var_r31->unk14.x; + var_r31->unk08.x = var_r31->unk14.x + (0.98f * var_f31); + if (var_f31 < 0.0f) { + var_f25 = -var_f31; + } + else { + var_f25 = var_f31; + } + if (var_f25 < 0.02f) { + var_r31->unk14.x = 0.0f; + } + } + if ((var_r31->unk34.y < (var_r30->unk_14 - 100.0f)) || (var_r31->unk34.x > (100.0f + var_r30->unk_08)) + || (var_r31->unk34.x < (var_r30->unk_0C - 100.0f))) { + var_r31->unk00 = 0; + } + if (var_r31->unk34.y > (100.0f + var_r30->unk_10)) { + var_r31->unk34.y = var_r30->unk_14 - (100.0f * (fn_1_7500() / 65536.0f)); + } + if (var_r31->unk34.y < var_r30->unk_14) { + var_r31->unk40.a *= 0.9f; + } + else if (var_r31->unk40.a < 0xFF) { + var_r31->unk40.a += 8; + } + break; + } + PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + if (particle->unk_04.x != 0.0f) { + sp8 = particle->unk_04; + sp8.x *= var_r31->unk2C / 28.0f; + sp8.y = (((u8)var_r31->unk2C & 1) != 0 ? 1.0f : -1.0f) * (sp8.x * (0.05f + (s32)(0.2f * (fn_1_7500() / 65536.0f)))); + PSVECAdd(&var_r31->unk34, &sp8, &var_r31->unk34); + } + } + DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); +} + +s16 fn_1_71AC(s32 arg0, s16 arg1, ParticleHook hook) +{ + HsfanimStruct01 *var_r31; + ParticleData *var_r30; + s32 var_r29; + s32 var_r28; + M433DllUnkStruct *var_r27; + AnimData *var_r25; + + var_r25 = HuSprAnimRead(HuDataReadNum(arg0, MEMORY_DEFAULT_NUM)); + var_r28 = Hu3DParticleCreate(var_r25, arg1); + Hu3DParticleHookSet(var_r28, hook); + var_r30 = Hu3DData[var_r28].unk_120; + var_r27 = fn_1_72D4(0x48); + var_r30->unk_1C = var_r27; + var_r27->unk_04 = 0; + var_r31 = var_r30->unk_48; + memset(var_r31, 0, arg1 * 0x44); + for (var_r29 = 0; var_r29 < arg1; var_r29++, var_r31++) { + var_r31->unk06 = -1; + var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = var_r31->unk40.a = 0xFF; + } + return var_r28; +} + +void fn_1_7294(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + lbl_1_bss_A8[var_r31] = NULL; + } +} + +void *fn_1_72D4(s32 arg0) +{ + s32 i; + + for (i = 0; i < 0x20; i++) { + if (!lbl_1_bss_A8[i]) { + break; + } + } + if (i == 0x20) { + return NULL; + } + lbl_1_bss_A8[i] = HuMemDirectMallocNum(HEAP_SYSTEM, arg0, MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_A8[i], 0, arg0); + return lbl_1_bss_A8[i]; +} + +void fn_1_739C(M433DllUnkStruct2 *arg0) +{ + s32 var_r31; + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + if (lbl_1_bss_A8[var_r31] == arg0) { + break; + } + } + if (var_r31 != 0x20) { + HuMemDirectFree(lbl_1_bss_A8[var_r31]); + lbl_1_bss_A8[var_r31] = NULL; + } +} + +void fn_1_7430(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { + if (lbl_1_bss_A8[var_r31]) { + HuMemDirectFree(lbl_1_bss_A8[var_r31]); + lbl_1_bss_A8[var_r31] = NULL; + } + } +} + +void fn_1_74B4(s16 arg0, Mtx arg1) +{ + ModelData *var_r31 = &Hu3DData[arg0]; + PSMTXCopy(arg1, var_r31->unk_F0); +} + +u32 lbl_1_data_14C = 0x41C64E6D; + +s32 fn_1_7500(void) +{ + lbl_1_data_14C *= 0x41C64E6D; + lbl_1_data_14C += 0x3039; + return lbl_1_data_14C >> 0x10; +} + +void fn_1_7554(s32 arg0, s32 *arg1) +{ + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + for (var_r31 = 0; var_r31 < arg0; var_r31++) { + arg1[var_r31] = var_r31; + } + for (var_r31 = 0; var_r31 < (arg0 - 1); var_r31++) { + lbl_1_data_14C *= 0x41C64E6D; + lbl_1_data_14C += 0x3039; + var_r28 = lbl_1_data_14C >> 0x10; + var_r27 = var_r28; + var_r30 = arg0 * (var_r27 / 65536.0f); + var_r29 = arg1[var_r31]; + arg1[var_r31] = arg1[var_r30]; + arg1[var_r30] = var_r29; + } +} + +float fn_1_7690(float arg8, float arg9, float argA) +{ + float var_f31; + + if (arg8 > 180.0f) { + arg8 -= 360.0f; + } + else if (arg8 <= -180.0f) { + arg8 += 360.0f; + } + if (arg9 > 180.0f) { + arg9 -= 360.0f; + } + else if (arg9 <= -180.0f) { + arg9 += 360.0f; + } + var_f31 = arg8 - arg9; + if (var_f31 > 180.0f) { + var_f31 -= 360.0f; + } + else if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } + arg8 = arg9 + (var_f31 * argA); + if (arg8 > 180.0f) { + return arg8 - 360.0f; + } + if (arg8 <= -180.0f) { + arg8 += 360.0f; + } + return arg8; +} + +void fn_1_77F8(Mtx arg0, float arg8, float arg9, float argA) +{ + Mtx sp38; + Mtx sp8; + + if (argA != 0.0f) { + PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + } + else { + PSMTXIdentity(arg0); + } + if (arg8 != 0.0f) { + PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + PSMTXConcat(sp38, arg0, arg0); + } + if (arg9 != 0.0f) { + PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + PSMTXConcat(sp8, arg0, arg0); + } +} + +void fn_1_7918(Mtx arg0, Vec *arg1) +{ + float var_f29; + float var_f28; + + arg1->x = atan2d(arg0[1][2], arg0[2][2]); + if (arg1->x < 0.0f) { + arg1->x += 360.0f; + } + arg1->z = atan2d(arg0[0][1], arg0[0][0]); + if (arg1->z < 0.0f) { + arg1->z += 360.0f; + } + var_f29 = -arg0[0][2]; + var_f28 = sqrtf((1.0 - (var_f29 * var_f29)) < 0.0 ? (-(1.0 - (var_f29 * var_f29))) : (1.0 - (var_f29 * var_f29))); + if ((arg1->x > 90.0f) && (arg1->x < 270.0f) && (arg1->z > 90.0f) && (arg1->z < 270.0f)) { + arg1->x = fmod(180.0f + arg1->x, 360.0); + arg1->z = fmod(180.0f + arg1->z, 360.0); + var_f28 = -var_f28; + } + arg1->y = atan2d(var_f29, var_f28); + if (arg1->y < 0.0f) { + arg1->y += 360.0f; + } +} + +void fn_1_7CB4(Mtx arg0, Vec *arg1) +{ + float var_f29; + float var_f27; + + arg1->z = atan2d(arg0[0][1], arg0[1][1]); + if (arg1->z < 0.0f) { + arg1->z += 360.0f; + } + arg1->y = atan2d(arg0[0][2], arg0[2][2]); + if (arg1->y < 0.0f) { + arg1->y += 360.0f; + } + var_f29 = -arg0[2][1]; + var_f27 = sqrtf((1.0 - (var_f29 * var_f29)) < 0.0 ? (-(1.0 - (var_f29 * var_f29))) : (1.0 - (var_f29 * var_f29))); + arg1->x = atan2d(var_f29, var_f27); + if (arg1->x < 0.0f) { + arg1->x += 360.0f; + } +} + +float fn_1_7F94(Vec *arg0) +{ + float var_f30 = (arg0->z * arg0->z) + ((arg0->x * arg0->x) + (arg0->y * arg0->y)); + var_f30 = sqrtf(var_f30); + if (var_f30 != 0.0f) { + float var_f29 = 1.0f / var_f30; + arg0->x = arg0->x * var_f29; + arg0->y = arg0->y * var_f29; + arg0->z = arg0->z * var_f29; + } + else { + arg0->x = arg0->y = arg0->z = 0.0f; + } + return var_f30; +} + +void fn_1_812C(Vec arg0, Vec arg1, Vec *arg2, float arg8) +{ + if (arg8 <= 0.0f) { + arg2->x = arg0.x; + arg2->y = arg0.y; + arg2->z = arg0.z; + arg8 = 0.0f; + } + else if (arg8 >= 1.0f) { + arg2->x = arg0.x + arg1.x; + arg2->y = arg0.y + arg1.y; + arg2->z = arg0.z + arg1.z; + arg8 = 1.0f; + } + else { + arg2->x = arg0.x + (arg8 * arg1.x); + arg2->y = arg0.y + (arg8 * arg1.y); + arg2->z = arg0.z + (arg8 * arg1.z); + } +} + +float fn_1_8204(Vec arg0, Vec arg1, Vec arg2) +{ + float var_f31; + float temp_f30; + + var_f31 = arg2.x * (arg1.x - arg0.x) + arg2.y * (arg1.y - arg0.y) + arg2.z * (arg1.z - arg0.z); + temp_f30 = -(arg2.x * arg2.x + arg2.y * arg2.y + arg2.z * arg2.z); + if (temp_f30 != 0.0f) { + var_f31 /= temp_f30; + } + return var_f31; +} + +float fn_1_82C0(Vec *arg0, Vec *arg1, Vec *arg2) +{ + Vec sp44; + float var_f31; + + if (arg2->x * arg2->x + arg2->y * arg2->y + arg2->z * arg2->z == 0.0f) { + return (arg0->x - arg1->x) * (arg0->x - arg1->x) + (arg0->y - arg1->y) * (arg0->y - arg1->y) + (arg0->z - arg1->z) * (arg0->z - arg1->z); + } + var_f31 = fn_1_8204(*arg0, *arg1, *arg2); + fn_1_812C(*arg1, *arg2, &sp44, var_f31); + return (arg0->x - sp44.x) * (arg0->x - sp44.x) + (arg0->y - sp44.y) * (arg0->y - sp44.y) + (arg0->z - sp44.z) * (arg0->z - sp44.z); +} + +float fn_1_85FC(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ + float var_f30; + + if (((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y))) == 0.0f) { + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + } + var_f30 = fn_1_8204(*arg0, *arg1, *arg2); + fn_1_812C(*arg1, *arg2, arg3, var_f30); + + arg4->x = arg0->x - arg3->x; + arg4->y = arg0->y - arg3->y; + arg4->z = arg0->z - arg3->z; + return fn_1_7F94(arg4); +} + +float fn_1_8AAC(float arg8, float arg9, float argA, float argB) +{ + float var_f31 = 1.0 - arg8; + float var_f30 = (argB * (arg8 * arg8)) + ((arg9 * (var_f31 * var_f31)) + (2.0 * (argA * (var_f31 * arg8)))); + return var_f30; +} + +void fn_1_8B24(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *arg3++ = fn_1_8AAC(arg8, *arg0++, *arg1++, *arg2++); + } +} + +float fn_1_8C40(float arg8, float arg9, float argA, float argB) +{ + float var_f31 = 2.0 * ((arg8 * argB) + (((arg8 - 1.0) * arg9) + ((1.0 - (2.0 * arg8)) * argA))); + return var_f31; +} + +void fn_1_8CB8(float *arg0, float *arg1, float *arg2, float *arg3, float arg8) +{ + float spC[3]; + float var_f29; + s32 var_r31; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + spC[var_r31] = fn_1_8C40(arg8, *arg0++, *arg1++, *arg2++); + } + var_f29 = sqrtf((spC[2] * spC[2]) + ((spC[0] * spC[0]) + (spC[1] * spC[1]))); + if (var_f29) { + var_f29 = 1.0 / var_f29; + for (var_r31 = 0; var_r31 < 3; var_r31++) { + *arg3++ = var_f29 * spC[var_r31]; + } + return; + } + *arg3++ = 0.0f; + *arg3++ = 0.0f; + *arg3++ = 1.0f; +} + +void fn_1_8F90(float *arg0, float *arg1, float *arg2, s32 arg3) +{ + float sp48[16]; + float sp8[16]; + double var_f31; + s32 var_r31; + + arg2[0] = 0.0f; + arg2[arg3 - 1] = 0.0f; + for (var_r31 = 0; var_r31 < (arg3 - 1); var_r31++) { + sp48[var_r31] = arg0[var_r31 + 1] - arg0[var_r31]; + if (sp48[var_r31] == 0.0f) { + sp8[var_r31 + 1] = 0.0f; + } + else { + sp8[var_r31 + 1] = (arg1[var_r31 + 1] - arg1[var_r31]) / sp48[var_r31]; + } + } + arg2[1] = sp8[2] - sp8[1]; + sp8[1] = 2.0f * (arg0[2] - arg0[0]); + for (var_r31 = 1; var_r31 < (arg3 - 2); var_r31++) { + var_f31 = sp48[var_r31] / sp8[var_r31]; + arg2[var_r31 + 1] = (sp8[var_r31 + 2] - sp8[var_r31 + 1]) - (var_f31 * arg2[var_r31]); + sp8[var_r31 + 1] = (2.0f * (arg0[var_r31 + 2] - arg0[var_r31])) - (var_f31 * sp48[var_r31]); + } + arg2[arg3 - 2] -= sp48[arg3 - 2] * arg2[arg3 - 1]; + for (var_r31 = arg3 - 2; var_r31 > 0; var_r31--) { + if (sp8[var_r31] == 0.0f) { + arg2[var_r31] = 0.0f; + } + else { + arg2[var_r31] = (arg2[var_r31] - (sp48[var_r31] * arg2[var_r31 + 1])) / sp8[var_r31]; + } + } +} + +float fn_1_9248(float arg8, float *arg0, float *arg1, float *arg2, s32 arg3) +{ + float var_f31; + float var_f30; + float var_f29; + + s32 var_r31 = arg8; + arg8 = arg8 - var_r31; + var_f31 = arg0[var_r31 + 1] - arg0[var_r31]; + var_f30 = var_f31 * arg8; + var_f29 = arg1[var_r31] + + (var_f30 + * ((var_f30 * ((3.0f * arg2[var_r31]) + ((var_f30 * (arg2[var_r31 + 1] - arg2[var_r31])) / var_f31))) + + (((arg1[var_r31 + 1] - arg1[var_r31]) / var_f31) - (var_f31 * ((2.0f * arg2[var_r31]) + arg2[var_r31 + 1]))))); + if (var_f31 == 0.0f) { + var_f29 = arg1[var_r31]; + } + return var_f29; +} + +void fn_1_939C(float *arg0, float (*arg1)[3], float (*arg2)[3], s32 var_r28) +{ + float spD4[16]; + float sp94[16]; + Vec sp8; + s32 var_r31; + s32 var_r30; + s32 var_r27; + + arg0[0] = 0.0f; + for (var_r30 = 1; var_r30 < var_r28; var_r30++) { + PSVECSubtract((Vec *)&arg1[var_r30], (Vec *)&arg1[var_r30 - 1], &sp8); + arg0[var_r30] = arg0[var_r30 - 1] + PSVECMag(&sp8); + } + for (var_r27 = 0; var_r27 < 3; var_r27++) { + for (var_r30 = 0; var_r30 < var_r28; var_r30++) { + spD4[var_r30] = arg1[var_r30][var_r27]; + } + fn_1_8F90(arg0, spD4, sp94, var_r28); + for (var_r30 = 0; var_r30 < var_r28; var_r30++) { + arg2[var_r30][var_r27] = sp94[var_r30]; + } + } +} + +void fn_1_977C(float arg8, float *arg0, float *arg1, float (*arg2)[3], float (*arg3)[3], s32 arg4) +{ + float sp48[16]; + float sp8[16]; + s32 var_r30; + s32 var_r29; + + for (var_r29 = 0; var_r29 < 3; var_r29++) { + for (var_r30 = 0; var_r30 < arg4; var_r30++) { + sp48[var_r30] = arg2[var_r30][var_r29]; + sp8[var_r30] = arg3[var_r30][var_r29]; + } + arg0[var_r29] = fn_1_9248(arg8, arg1, sp48, sp8, 3); + } +} + +u8 fn_1_9990(Vec *sp8) +{ + u32 var_r31; + M433DllUnkStruct2 *var_r30; + s32 var_r29; + + var_r29 = 0; + var_r30 = lbl_1_bss_90.unk_04; + for (var_r31 = 0; var_r31 < lbl_1_bss_90.unk_00; var_r31++, var_r30++) { + if (fn_1_5370(var_r30, sp8) != 0) { + break; + } + } + if (var_r31 < lbl_1_bss_90.unk_00) { + var_r29 = 1; + } + return var_r29; +} + +void fn_1_9A30(u8 arg0, float arg8, Vec *arg1, Vec *arg2, float arg9) +{ + M433DllMapWork2 *var_r31; + + var_r31 = lbl_1_bss_98[arg0]->data; + var_r31->unk_00 = 0; + var_r31->unk_144 = arg8; + var_r31->unk_148 = arg8; + var_r31->unk_1C = var_r31->unk_04; + var_r31->unk_34.x = arg1->x; + var_r31->unk_34.y = arg1->y; + var_r31->unk_34.z = arg1->z; + var_r31->unk_28 = var_r31->unk_10; + var_r31->unk_40.x = arg2->x; + var_r31->unk_40.y = arg2->y; + var_r31->unk_40.z = arg2->z; + var_r31->unk_134 = var_r31->unk_130; + var_r31->unk_138 = arg9; +} + +void fn_1_9ADC(u8 arg0) +{ + Vec sp14; + Vec sp8; + float var_f31; + M433DllMapWork2 *work; + omObjData *var_r30; + + sp14.x = 0.0f; + sp14.y = 80.0f; + sp14.z = 0.0f; + sp8.x = 0.0f; + sp8.y = 0.0f; + sp8.z = 0.0f; + var_f31 = 600.0f; + work = lbl_1_bss_98[arg0]->data; + work->unk_00 = 0; + work->unk_148 = work->unk_144 = 1.0f; + work->unk_1C = work->unk_04; + work->unk_34.x = sp14.x; + work->unk_34.y = sp14.y; + work->unk_34.z = sp14.z; + work->unk_28 = work->unk_10; + work->unk_40.x = sp8.x; + work->unk_40.y = sp8.y; + work->unk_40.z = sp8.z; + work->unk_134 = work->unk_130; + work->unk_138 = var_f31; + Hu3DCameraPerspectiveSet(1 << arg0, 45.0f, 100.0f, 5000.0f, 1.2f); + Hu3DCameraViewportSet(1 << arg0, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraViewportSet(2 >> arg0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1 << arg0, 0, 0, 0x280, 0x1E0); + Hu3DCameraScissorSet(2 >> arg0, 0, 0, 0, 0); + var_r30 = lbl_1_bss_A0; + Hu3DModelAttrSet(var_r30->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r30->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r30->model[6], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r30->model[7], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r30->model[3], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(var_r30->model[arg0 + 4], HU3D_ATTR_DISPOFF); + var_r30->func = fn_1_52D8; +} + +void fn_1_9DE8(u8 arg0, float arg8, s8 arg1) +{ + ParticleData *var_r31; + M433DllUnkStruct *var_r30; + + var_r31 = Hu3DData[lbl_1_bss_A0->model[arg0 + 6]].unk_120; + var_r30 = ((ParticleData *)Hu3DData[lbl_1_bss_A0->model[arg0 + 6]].unk_120)->unk_1C; + var_r30->unk_04 = 2; + var_r31->unk_04.x = arg8 * arg1; +} + +void fn_1_9EA8(u8 arg0) +{ + M433DllUnkStruct *var_r31 = ((ParticleData *)Hu3DData[lbl_1_bss_A0->model[arg0 + 6]].unk_120)->unk_1C; + if (var_r31->unk_04 == 2) { + var_r31->unk_04 = 3; + } +} + +u8 fn_1_9F08(u8 arg0) +{ + M433DllUnkStruct *var_r31 = ((ParticleData *)Hu3DData[lbl_1_bss_A0->model[arg0 + 6]].unk_120)->unk_1C; + return var_r31->unk_04; +} diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index dc82ed96..cb329774 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -119,7 +119,7 @@ typedef struct M438MainWork3 { float unk_170[3]; float unk_17C[3]; u16 unk_188[3]; -} M438MainWork3; /* size = */ +} M438MainWork3; /* size = 0x190 */ typedef struct M438StructBss298 { /* 0x00 */ u8 unk_00; diff --git a/src/REL/m453Dll/main.c b/src/REL/m453Dll/main.c index f72224c2..2c099d2d 100644 --- a/src/REL/m453Dll/main.c +++ b/src/REL/m453Dll/main.c @@ -1630,20 +1630,7 @@ void fn_1_5670(float arg8, float *arg0, float *arg1, float (*arg2)[3], float (*a sp48[var_r30] = arg2[var_r30][var_r29]; sp8[var_r30] = arg3[var_r30][var_r29]; } - var_f30 = arg8; - var_r31 = var_f30; - var_f30 -= var_r31; - var_f31 = arg1[var_r31 + 1] - arg1[var_r31]; - var_f29 = var_f31 * var_f30; - var_f28 = sp48[var_r31] - + (var_f29 - * ((var_f29 * ((3.0f * sp8[var_r31]) + ((var_f29 * (sp8[var_r31 + 1] - sp8[var_r31])) / var_f31))) - + (((sp48[var_r31 + 1] - sp48[var_r31]) / var_f31) - (var_f31 * ((2.0f * sp8[var_r31]) + sp8[var_r31 + 1]))))); - if (var_f31 == 0.0f) { - var_f28 = sp48[var_r31]; - } - var_f27 = var_f28; - arg0[var_r29] = var_f27; + arg0[var_r29] = fn_1_513C(arg8, arg1, sp48, sp8, 3); } } diff --git a/src/REL/option/rumble.c b/src/REL/option/rumble.c index 4a52323d..aeae0f72 100755 --- a/src/REL/option/rumble.c +++ b/src/REL/option/rumble.c @@ -197,12 +197,12 @@ static omObjData *CreateHand(void) return hand; } -static void KillHand(omObjData *hand) +static void KillHand(omObjData *object) { s32 i; for (i = 0; i < 1; i++) { - Hu3DModelKill(hand->model[i]); + Hu3DModelKill(object->model[i]); } } @@ -222,21 +222,21 @@ static omObjData *CreateSystem(void) return system; } -static void KillSystem(omObjData *system) +static void KillSystem(omObjData *object) { s32 i; for (i = 0; i < 1; i++) { - Hu3DModelKill(system->model[i]); + Hu3DModelKill(object->model[i]); } } -static void StartSystemMotion(omObjData *system, s32 rumbleF, BOOL slowF) +static void StartSystemMotion(omObjData *object, s32 rumbleF, BOOL slowF) { - s16 model = system->model[0]; + s16 model = object->model[0]; - Hu3DModelAttrReset(system->model[0], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrReset(system->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); if (rumbleF) { Hu3DMotionStartEndSet(model, 60.0f, 120.0f); if (slowF) { @@ -267,24 +267,24 @@ static omObjData *CreatePad(void) return pad; } -static void KillPad(omObjData *pad) +static void KillPad(omObjData *object) { s32 i; for (i = 0; i < 1; i++) { - Hu3DModelKill(pad->model[i]); + Hu3DModelKill(object->model[i]); } } -static void ShakePad(omObjData *pad, BOOL on) +static void ShakePad(omObjData *object, BOOL on) { if (on) { - Hu3DModelAttrReset(pad->model[0], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrSet(pad->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); } else { - Hu3DModelAttrSet(pad->model[0], HU3D_MOTATTR_PAUSE); - Hu3DModelAttrReset(pad->model[0], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); } } From accaf2085f76285581b13472cb16be67c077fca1 Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Sun, 19 Jan 2025 05:31:11 +0100 Subject: [PATCH 262/311] Port m426Dll to PAL, match m428Dll and remove PS prefixes (#537) * Port m426Dll to PAL * Remove PS prefix from mtx function usages * Match m428Dll --- config/GMPE01_00/rels/m428Dll/symbols.txt | 8 +- config/GMPP01_00/rels/m426Dll/splits.txt | 9 + config/GMPP01_00/rels/m426Dll/symbols.txt | 324 +- configure.py | 4 +- include/REL/m428Dll.h | 5 +- src/REL/m402Dll/main.c | 10 +- src/REL/m403Dll/main.c | 12 +- src/REL/m403Dll/scene.c | 28 +- src/REL/m405Dll/main.c | 58 +- src/REL/m406Dll/map.c | 40 +- src/REL/m406Dll/player.c | 76 +- src/REL/m409Dll/cursor.c | 530 ++-- src/REL/m409Dll/main.c | 6 +- src/REL/m410Dll/game.c | 40 +- src/REL/m410Dll/main.c | 2 +- src/REL/m410Dll/player.c | 32 +- src/REL/m415Dll/main.c | 10 +- src/REL/m415Dll/map.c | 538 ++-- src/REL/m417Dll/main.c | 14 +- src/REL/m417Dll/player.c | 34 +- src/REL/m417Dll/water.c | 46 +- src/REL/m419Dll/main.c | 540 ++-- src/REL/m421Dll/main.c | 4 +- src/REL/m422Dll/main.c | 747 ++--- src/REL/m423Dll/main.c | 1784 +++++------ src/REL/m424Dll/ball.c | 593 ++-- src/REL/m424Dll/claw.c | 141 +- src/REL/m424Dll/map.c | 128 +- src/REL/m425Dll/main.c | 20 +- src/REL/m425Dll/thwomp.c | 58 +- src/REL/m426Dll/main.c | 62 +- src/REL/m428Dll/main.c | 18 +- src/REL/m428Dll/map.c | 46 +- src/REL/m428Dll/player.c | 3401 +++++++++++++++++++++ src/REL/m429Dll/main.c | 4 +- src/REL/m430Dll/main.c | 2 +- src/REL/m430Dll/player.c | 10 +- src/REL/m430Dll/water.c | 195 +- src/REL/m431Dll/main.c | 2 +- src/REL/m433Dll/main.c | 4 +- src/REL/m433Dll/map.c | 12 +- src/REL/m433Dll/player.c | 190 +- src/REL/m438Dll/main.c | 442 +-- src/REL/m438Dll/map.c | 256 +- src/REL/m440Dll/main.c | 38 +- src/REL/m440Dll/object.c | 6 +- src/REL/m441Dll/main.c | 4 +- src/REL/m442Dll/main.c | 10 +- src/REL/m443Dll/main.c | 22 +- src/REL/m443Dll/map.c | 8 +- src/REL/m443Dll/player.c | 26 +- src/REL/m447dll/block.c | 14 +- src/REL/m448Dll/main.c | 6 +- src/REL/m449Dll/main.c | 20 +- src/REL/m453Dll/main.c | 38 +- src/REL/m453Dll/map.c | 76 +- src/REL/m455Dll/main.c | 2 +- src/REL/m456Dll/main.c | 4 +- src/REL/m458Dll/main.c | 4 +- src/REL/m460Dll/main.c | 28 +- src/REL/m460Dll/map.c | 14 +- src/REL/m460Dll/player.c | 16 +- src/REL/m461Dll/main.c | 7 +- src/REL/m462Dll/main.c | 305 +- src/REL/m463Dll/main.c | 328 +- src/REL/modeltestDll/main.c | 23 +- src/REL/w01Dll/main.c | 599 ++-- src/REL/w03Dll/condor.c | 28 +- src/REL/w03Dll/mg_item.c | 4 +- src/REL/w03Dll/statue.c | 191 +- src/REL/w06Dll/mg_item.c | 200 +- src/REL/ztardll/main.c | 8 +- 72 files changed, 8178 insertions(+), 4336 deletions(-) create mode 100644 src/REL/m428Dll/player.c diff --git a/config/GMPE01_00/rels/m428Dll/symbols.txt b/config/GMPE01_00/rels/m428Dll/symbols.txt index e88de8d7..5f9d1250 100644 --- a/config/GMPE01_00/rels/m428Dll/symbols.txt +++ b/config/GMPE01_00/rels/m428Dll/symbols.txt @@ -351,13 +351,13 @@ lbl_1_data_500 = .data:0x00000500; // type:object size:0x60 lbl_1_data_560 = .data:0x00000560; // type:object size:0x80 lbl_1_data_5E0 = .data:0x000005E0; // type:object size:0x60 lbl_1_data_640 = .data:0x00000640; // type:object size:0x10 -lbl_1_data_650 = .data:0x00000650; // type:object size:0x1 data:byte -lbl_1_data_654 = .data:0x00000654; // type:object size:0x1 data:byte -lbl_1_data_658 = .data:0x00000658; // type:object size:0x14 +lbl_1_data_650 = .data:0x00000650; // type:object size:0x4 data:byte +lbl_1_data_654 = .data:0x00000654; // type:object size:0x4 data:byte +lbl_1_data_658 = .data:0x00000658; // type:object size:0x14 scope:local data:string jumptable_1_data_66C = .data:0x0000066C; // type:object size:0x28 scope:local lbl_1_data_694 = .data:0x00000694; // type:object size:0x8 lbl_1_data_69C = .data:0x0000069C; // type:object size:0x4 -lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x2 data:2byte +lbl_1_data_6A0 = .data:0x000006A0; // type:object size:0x4 data:2byte lbl_1_data_6A4 = .data:0x000006A4; // type:object size:0x30 lbl_1_data_6D4 = .data:0x000006D4; // type:object size:0x20 lbl_1_data_6F4 = .data:0x000006F4; // type:object size:0x19 scope:local data:string diff --git a/config/GMPP01_00/rels/m426Dll/splits.txt b/config/GMPP01_00/rels/m426Dll/splits.txt index 531cd645..a7a72393 100644 --- a/config/GMPP01_00/rels/m426Dll/splits.txt +++ b/config/GMPP01_00/rels/m426Dll/splits.txt @@ -5,3 +5,12 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m426Dll/main.c: + .text start:0x000000A0 end:0x00009AC4 + .rodata start:0x00000000 end:0x000001DC + .data start:0x00000000 end:0x00000368 + .bss start:0x00000000 end:0x0000009C diff --git a/config/GMPP01_00/rels/m426Dll/symbols.txt b/config/GMPP01_00/rels/m426Dll/symbols.txt index fa92aeb2..81681170 100644 --- a/config/GMPP01_00/rels/m426Dll/symbols.txt +++ b/config/GMPP01_00/rels/m426Dll/symbols.txt @@ -1,170 +1,170 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x16C +ObjectSetup = .text:0x000000A0; // type:function size:0x16C fn_1_20C = .text:0x0000020C; // type:function size:0x124 fn_1_330 = .text:0x00000330; // type:function size:0xA80 -fn_1_DB0 = .text:0x00000DB0; // type:function size:0x60 -fn_1_E10 = .text:0x00000E10; // type:function size:0xA0 -fn_1_EB0 = .text:0x00000EB0; // type:function size:0x14C -fn_1_FFC = .text:0x00000FFC; // type:function size:0x178 -fn_1_1174 = .text:0x00001174; // type:function size:0x70 -fn_1_11E4 = .text:0x000011E4; // type:function size:0x70 -fn_1_1254 = .text:0x00001254; // type:function size:0x49C -fn_1_16F0 = .text:0x000016F0; // type:function size:0x13F4 -fn_1_2AE4 = .text:0x00002AE4; // type:function size:0x14 -fn_1_2AF8 = .text:0x00002AF8; // type:function size:0x98 -fn_1_2B90 = .text:0x00002B90; // type:function size:0x368 -fn_1_2EF8 = .text:0x00002EF8; // type:function size:0x80 -fn_1_2F78 = .text:0x00002F78; // type:function size:0x6F8 -fn_1_3670 = .text:0x00003670; // type:function size:0x70 -fn_1_36E0 = .text:0x000036E0; // type:function size:0x50 -fn_1_3730 = .text:0x00003730; // type:function size:0x7E8 -fn_1_3F18 = .text:0x00003F18; // type:function size:0x700 -fn_1_4618 = .text:0x00004618; // type:function size:0x48 -fn_1_4660 = .text:0x00004660; // type:function size:0x60 -fn_1_46C0 = .text:0x000046C0; // type:function size:0x94 -fn_1_4754 = .text:0x00004754; // type:function size:0x15C -fn_1_48B0 = .text:0x000048B0; // type:function size:0x5C -fn_1_490C = .text:0x0000490C; // type:function size:0x178 -fn_1_4A84 = .text:0x00004A84; // type:function size:0x8C -fn_1_4B10 = .text:0x00004B10; // type:function size:0x3D0 -fn_1_4EE0 = .text:0x00004EE0; // type:function size:0x50 -fn_1_4F30 = .text:0x00004F30; // type:function size:0x220 -fn_1_5150 = .text:0x00005150; // type:function size:0xA20 -fn_1_5B70 = .text:0x00005B70; // type:function size:0x14 -fn_1_5B84 = .text:0x00005B84; // type:function size:0x40 -fn_1_5BC4 = .text:0x00005BC4; // type:function size:0xE4 -fn_1_5CA8 = .text:0x00005CA8; // type:function size:0xD0 -fn_1_5D78 = .text:0x00005D78; // type:function size:0x130 -fn_1_5EA8 = .text:0x00005EA8; // type:function size:0x50 -fn_1_5EF8 = .text:0x00005EF8; // type:function size:0x14C -fn_1_6044 = .text:0x00006044; // type:function size:0x178 -fn_1_61BC = .text:0x000061BC; // type:function size:0x60 -fn_1_621C = .text:0x0000621C; // type:function size:0x68 -fn_1_6284 = .text:0x00006284; // type:function size:0xC8 -fn_1_634C = .text:0x0000634C; // type:function size:0xA8 -fn_1_63F4 = .text:0x000063F4; // type:function size:0x1DC -fn_1_65D0 = .text:0x000065D0; // type:function size:0x50 -fn_1_6620 = .text:0x00006620; // type:function size:0x120 -fn_1_6740 = .text:0x00006740; // type:function size:0x118 -fn_1_6858 = .text:0x00006858; // type:function size:0x28 -fn_1_6880 = .text:0x00006880; // type:function size:0x44 -fn_1_68C4 = .text:0x000068C4; // type:function size:0x15C -fn_1_6A20 = .text:0x00006A20; // type:function size:0x50 -fn_1_6A70 = .text:0x00006A70; // type:function size:0x38C -fn_1_6DFC = .text:0x00006DFC; // type:function size:0x410 -fn_1_720C = .text:0x0000720C; // type:function size:0xA8 -fn_1_72B4 = .text:0x000072B4; // type:function size:0xB0 -fn_1_7364 = .text:0x00007364; // type:function size:0xB4 -fn_1_7418 = .text:0x00007418; // type:function size:0x1B0 -fn_1_75C8 = .text:0x000075C8; // type:function size:0x20 -fn_1_75E8 = .text:0x000075E8; // type:function size:0x4 -fn_1_75EC = .text:0x000075EC; // type:function size:0xC -fn_1_75F8 = .text:0x000075F8; // type:function size:0x38 -fn_1_7630 = .text:0x00007630; // type:function size:0x118 -fn_1_7748 = .text:0x00007748; // type:function size:0x250 -fn_1_7998 = .text:0x00007998; // type:function size:0x46C -fn_1_7E04 = .text:0x00007E04; // type:function size:0x314 -fn_1_8118 = .text:0x00008118; // type:function size:0x7D8 -fn_1_88F0 = .text:0x000088F0; // type:function size:0x55C -fn_1_8E4C = .text:0x00008E4C; // type:function size:0x38 -fn_1_8E84 = .text:0x00008E84; // type:function size:0x2E8 -fn_1_916C = .text:0x0000916C; // type:function size:0x100 -fn_1_926C = .text:0x0000926C; // type:function size:0x314 -fn_1_9580 = .text:0x00009580; // type:function size:0x1D8 -fn_1_9758 = .text:0x00009758; // type:function size:0x7C -fn_1_97D4 = .text:0x000097D4; // type:function size:0x54 -fn_1_9828 = .text:0x00009828; // type:function size:0x7C -fn_1_98A4 = .text:0x000098A4; // type:function size:0x7C -fn_1_9920 = .text:0x00009920; // type:function size:0x78 -fn_1_9998 = .text:0x00009998; // type:function size:0x12C +fn_1_DB8 = .text:0x00000DB0; // type:function size:0x60 +fn_1_E18 = .text:0x00000E10; // type:function size:0xA0 +fn_1_EB8 = .text:0x00000EB0; // type:function size:0x14C +fn_1_1004 = .text:0x00000FFC; // type:function size:0x178 +fn_1_117C = .text:0x00001174; // type:function size:0x70 +fn_1_11EC = .text:0x000011E4; // type:function size:0x70 +fn_1_125C = .text:0x00001254; // type:function size:0x49C +fn_1_16F8 = .text:0x000016F0; // type:function size:0x13F4 +fn_1_2AC8 = .text:0x00002AE4; // type:function size:0x14 +fn_1_2ADC = .text:0x00002AF8; // type:function size:0x98 +fn_1_2B74 = .text:0x00002B90; // type:function size:0x368 +fn_1_2EDC = .text:0x00002EF8; // type:function size:0x80 +fn_1_2F5C = .text:0x00002F78; // type:function size:0x6F8 +fn_1_3654 = .text:0x00003670; // type:function size:0x70 +fn_1_36C4 = .text:0x000036E0; // type:function size:0x50 +fn_1_3714 = .text:0x00003730; // type:function size:0x7E8 +fn_1_3EFC = .text:0x00003F18; // type:function size:0x700 +fn_1_45FC = .text:0x00004618; // type:function size:0x48 +fn_1_4644 = .text:0x00004660; // type:function size:0x60 +fn_1_46A4 = .text:0x000046C0; // type:function size:0x94 +fn_1_4738 = .text:0x00004754; // type:function size:0x15C +fn_1_4894 = .text:0x000048B0; // type:function size:0x5C +fn_1_48F0 = .text:0x0000490C; // type:function size:0x178 +fn_1_4A68 = .text:0x00004A84; // type:function size:0x8C +fn_1_4AF4 = .text:0x00004B10; // type:function size:0x3D0 +fn_1_4EC4 = .text:0x00004EE0; // type:function size:0x50 +fn_1_4F14 = .text:0x00004F30; // type:function size:0x220 +fn_1_5134 = .text:0x00005150; // type:function size:0xA20 +fn_1_5B34 = .text:0x00005B70; // type:function size:0x14 +fn_1_5B48 = .text:0x00005B84; // type:function size:0x40 +fn_1_5B88 = .text:0x00005BC4; // type:function size:0xE4 +fn_1_5C6C = .text:0x00005CA8; // type:function size:0xD0 +fn_1_5D3C = .text:0x00005D78; // type:function size:0x130 +fn_1_5E6C = .text:0x00005EA8; // type:function size:0x50 +fn_1_5EBC = .text:0x00005EF8; // type:function size:0x14C +fn_1_6008 = .text:0x00006044; // type:function size:0x178 +fn_1_6180 = .text:0x000061BC; // type:function size:0x60 +fn_1_61E0 = .text:0x0000621C; // type:function size:0x68 +fn_1_6248 = .text:0x00006284; // type:function size:0xC8 +fn_1_6310 = .text:0x0000634C; // type:function size:0xA8 +fn_1_63B8 = .text:0x000063F4; // type:function size:0x1DC +fn_1_6594 = .text:0x000065D0; // type:function size:0x50 +fn_1_65E4 = .text:0x00006620; // type:function size:0x120 +fn_1_6704 = .text:0x00006740; // type:function size:0x118 +fn_1_681C = .text:0x00006858; // type:function size:0x28 +fn_1_6844 = .text:0x00006880; // type:function size:0x44 +fn_1_6888 = .text:0x000068C4; // type:function size:0x15C +fn_1_69E4 = .text:0x00006A20; // type:function size:0x50 +fn_1_6A34 = .text:0x00006A70; // type:function size:0x38C +fn_1_6DC0 = .text:0x00006DFC; // type:function size:0x410 +fn_1_71D0 = .text:0x0000720C; // type:function size:0xA8 +fn_1_7278 = .text:0x000072B4; // type:function size:0xB0 +fn_1_7328 = .text:0x00007364; // type:function size:0xB4 +fn_1_73DC = .text:0x00007418; // type:function size:0x1B0 +fn_1_758C = .text:0x000075C8; // type:function size:0x20 +fn_1_75AC = .text:0x000075E8; // type:function size:0x4 +fn_1_75B0 = .text:0x000075EC; // type:function size:0xC +fn_1_75BC = .text:0x000075F8; // type:function size:0x38 +fn_1_75F4 = .text:0x00007630; // type:function size:0x118 +fn_1_770C = .text:0x00007748; // type:function size:0x250 +fn_1_795C = .text:0x00007998; // type:function size:0x46C +fn_1_7DC8 = .text:0x00007E04; // type:function size:0x314 +fn_1_80DC = .text:0x00008118; // type:function size:0x7D8 +fn_1_88B4 = .text:0x000088F0; // type:function size:0x55C +fn_1_8E10 = .text:0x00008E4C; // type:function size:0x38 +fn_1_8E48 = .text:0x00008E84; // type:function size:0x2E8 +fn_1_9130 = .text:0x0000916C; // type:function size:0x100 +fn_1_9230 = .text:0x0000926C; // type:function size:0x314 +fn_1_9544 = .text:0x00009580; // type:function size:0x1D8 +fn_1_971C = .text:0x00009758; // type:function size:0x7C +fn_1_9798 = .text:0x000097D4; // type:function size:0x54 +fn_1_97EC = .text:0x00009828; // type:function size:0x7C +fn_1_9868 = .text:0x000098A4; // type:function size:0x7C +fn_1_98E4 = .text:0x00009920; // type:function size:0x78 +fn_1_995C = .text:0x00009998; // type:function size:0x12C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:4byte -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x1 data:byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x1 scope:local data:byte lbl_1_data_0 = .data:0x00000000; // type:object size:0x30 lbl_1_data_30 = .data:0x00000030; // type:object size:0xC lbl_1_data_3C = .data:0x0000003C; // type:object size:0xC @@ -173,7 +173,7 @@ lbl_1_data_4C = .data:0x0000004C; // type:object size:0x54 data:float lbl_1_data_A0 = .data:0x000000A0; // type:object size:0xC lbl_1_data_AC = .data:0x000000AC; // type:object size:0xC lbl_1_data_B8 = .data:0x000000B8; // type:object size:0xC -lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x24 +lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x24 scope:local data:string jumptable_1_data_E8 = .data:0x000000E8; // type:object size:0x24 scope:local lbl_1_data_10C = .data:0x0000010C; // type:object size:0x4 lbl_1_data_110 = .data:0x00000110; // type:object size:0x60 data:4byte diff --git a/configure.py b/configure.py index 400de22c..691ad13d 100644 --- a/configure.py +++ b/configure.py @@ -1072,7 +1072,7 @@ config.libs = [ Rel( "m426Dll", # Revers-a-Bomb objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m426Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/m426Dll/main.c"), }, ), Rel( @@ -1088,7 +1088,7 @@ config.libs = [ objects={ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m428Dll/main.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m428Dll/map.c"), - Object(NonMatching, "REL/m428Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m428Dll/player.c"), }, ), Rel( diff --git a/include/REL/m428Dll.h b/include/REL/m428Dll.h index 9d30ded6..567c3f99 100644 --- a/include/REL/m428Dll.h +++ b/include/REL/m428Dll.h @@ -3,7 +3,7 @@ #include "game/object.h" -u32 fn_1_26E0(void); +s32 fn_1_26E0(void); void fn_1_4170(s16 arg0, s32 arg1); void fn_1_4324(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3); @@ -28,4 +28,7 @@ void fn_1_116C4(s32 arg0, s32 arg1); void fn_1_11754(s32 arg0, float arg8); void fn_1_11798(s32 arg0); +extern s16 lbl_1_bss_50[4]; +extern s32 lbl_1_bss_18; + #endif diff --git a/src/REL/m402Dll/main.c b/src/REL/m402Dll/main.c index d604cf04..e4044763 100755 --- a/src/REL/m402Dll/main.c +++ b/src/REL/m402Dll/main.c @@ -579,7 +579,7 @@ static void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) } temp_r31 = &Hu3DCamera[i]; C_MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target); - PSMTXMultVec(sp1C, arg0, &sp10); + MTXMultVec(sp1C, arg0, &sp10); temp_f30 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)) * temp_r31->aspect; temp_f29 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)); temp_f28 = 0.9f * temp_r31->viewport_x; @@ -606,9 +606,9 @@ static void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) var_r30 = &Hu3DData[arg0]; Hu3DModelObjMtxGet(arg0, arg1, spC); - PSMTXConcat(var_r30->unk_F0, spC, spC); + MTXConcat(var_r30->unk_F0, spC, spC); if (NULL != arg3) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); } arg2->x = spC[0][3]; arg2->y = spC[1][3]; @@ -1425,9 +1425,9 @@ static void fn_1_70E4(omObjData *arg0) spC.y = 0.0f; spC.z = var_f27; temp_r31->unk24.z *= 0.92f; - PSMTXIdentity(sp18); + MTXIdentity(sp18); mtxRot(sp18, temp_r31->unk24.x, temp_r31->unk24.y, 0.0f); - PSMTXMultVec(sp18, &spC, &spC); + MTXMultVec(sp18, &spC, &spC); VECAdd(&spC, &temp_r31->unk00, &temp_r31->unk00); omSetTra(arg0, temp_r31->unk00.x, temp_r31->unk00.y, temp_r31->unk00.z); Hu3DModelTPLvlSet(arg0->model[0], temp_r31->unk30); diff --git a/src/REL/m403Dll/main.c b/src/REL/m403Dll/main.c index a1e3fc91..af675a31 100755 --- a/src/REL/m403Dll/main.c +++ b/src/REL/m403Dll/main.c @@ -1384,18 +1384,18 @@ static void fn_1_46E4(Mtx arg0, float arg1, float arg2, float arg3) Mtx sp8; if (arg3 != 0.0f) { - PSMTXRotRad(arg0, 'Z', MTXDegToRad(arg3)); + MTXRotRad(arg0, 'Z', MTXDegToRad(arg3)); } else { - PSMTXIdentity(arg0); + MTXIdentity(arg0); } if (arg1 != 0.0f) { - PSMTXRotRad(sp38, 'X', MTXDegToRad(arg1)); - PSMTXConcat(sp38, arg0, arg0); + MTXRotRad(sp38, 'X', MTXDegToRad(arg1)); + MTXConcat(sp38, arg0, arg0); } if (arg2 != 0.0f) { - PSMTXRotRad(sp8, 'Y', MTXDegToRad(arg2)); - PSMTXConcat(sp8, arg0, arg0); + MTXRotRad(sp8, 'Y', MTXDegToRad(arg2)); + MTXConcat(sp8, arg0, arg0); } } diff --git a/src/REL/m403Dll/scene.c b/src/REL/m403Dll/scene.c index e87fd648..b71d445f 100755 --- a/src/REL/m403Dll/scene.c +++ b/src/REL/m403Dll/scene.c @@ -307,12 +307,12 @@ static void fn_1_6ED8(omObjData *arg0) Mtx sp8; s32 i; - PSMTXTrans(sp38, arg0->trans.x, arg0->trans.y, arg0->trans.z); + MTXTrans(sp38, arg0->trans.x, arg0->trans.y, arg0->trans.z); mtxRot(sp8, arg0->rot.x, arg0->rot.y, arg0->rot.z); - PSMTXConcat(sp38, sp8, sp38); + MTXConcat(sp38, sp8, sp38); for (i = 0; i < 6; i++) { - PSMTXTrans(sp8, lbl_1_data_A88[i].x, lbl_1_data_A88[i].y, lbl_1_data_A88[i].z); - PSMTXConcat(sp38, sp8, sp8); + MTXTrans(sp8, lbl_1_data_A88[i].x, lbl_1_data_A88[i].y, lbl_1_data_A88[i].z); + MTXConcat(sp38, sp8, sp8); Hu3DModelPosSet(arg0->model[i + 1], sp8[0][3], sp8[1][3], sp8[2][3]); Hu3DModelRotSet(arg0->model[i + 1], arg0->rot.x, arg0->rot.y, arg0->rot.z); } @@ -598,16 +598,16 @@ static s32 fn_1_7D04(float arg0, float arg1, Vec *arg2) temp_r28 -= 6; fn_1_7BD4(temp_r21, &sp10); sp10 = lbl_1_data_A88[temp_r21]; - PSMTXTrans(sp4C, temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); + MTXTrans(sp4C, temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z); mtxRot(sp1C, temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z); - PSMTXConcat(sp4C, sp1C, sp4C); - PSMTXTrans(sp1C, sp10.x, sp10.y, sp10.z); - PSMTXConcat(sp4C, sp1C, sp4C); + MTXConcat(sp4C, sp1C, sp4C); + MTXTrans(sp1C, sp10.x, sp10.y, sp10.z); + MTXConcat(sp4C, sp1C, sp4C); var_r30 = lbl_1_data_AFC[temp_r28]; temp_r23 = lbl_1_data_B14[temp_r28]; for (i = 0; i < temp_r23; i++) { - PSMTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z); - PSMTXConcat(sp4C, sp1C, sp1C); + MTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z); + MTXConcat(sp4C, sp1C, sp1C); arg2->x = sp1C[0][3]; arg2->y = sp1C[1][3]; arg2->z = sp1C[2][3]; @@ -703,17 +703,17 @@ s32 fn_1_8470(Vec *arg0) temp_r30 = lbl_1_bss_9C[lbl_1_bss_94]; temp_r27 = temp_r30->data; var_r25 = fn_1_8274(temp_r27, sp8); - PSMTXTrans(sp50, temp_r30->trans.x, temp_r30->trans.y, temp_r30->trans.z); + MTXTrans(sp50, temp_r30->trans.x, temp_r30->trans.y, temp_r30->trans.z); mtxRot(sp20, temp_r30->rot.x, temp_r30->rot.y, temp_r30->rot.z); - PSMTXConcat(sp50, sp20, sp50); + MTXConcat(sp50, sp20, sp50); for (i = 0; i < var_r25; i++) { fn_1_7BD4(sp8[i], arg0); temp_r26 = fn_1_7C20(temp_r27, sp8[i]) - 6; arg0->x += lbl_1_data_B2C[temp_r26].x; arg0->y += lbl_1_data_B2C[temp_r26].y; arg0->z += lbl_1_data_B2C[temp_r26].z; - PSMTXTrans(sp20, arg0->x, arg0->y, arg0->z); - PSMTXConcat(sp50, sp20, sp20); + MTXTrans(sp20, arg0->x, arg0->y, arg0->z); + MTXConcat(sp50, sp20, sp20); arg0->x = sp20[0][3]; arg0->y = sp20[1][3]; arg0->z = sp20[2][3]; diff --git a/src/REL/m405Dll/main.c b/src/REL/m405Dll/main.c index 610db76f..0eade3f2 100755 --- a/src/REL/m405Dll/main.c +++ b/src/REL/m405Dll/main.c @@ -571,7 +571,7 @@ void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2) } temp_r31 = &Hu3DCamera[i]; C_MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target); - PSMTXMultVec(sp1C, arg0, &sp10); + MTXMultVec(sp1C, arg0, &sp10); temp_f30 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)) * temp_r31->aspect; temp_f29 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)); temp_f28 = 0.9f * temp_r31->viewport_x; @@ -598,9 +598,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) var_r30 = &Hu3DData[arg0]; Hu3DModelObjMtxGet(arg0, arg1, spC); - PSMTXConcat(var_r30->unk_F0, spC, spC); + MTXConcat(var_r30->unk_F0, spC, spC); if (NULL != arg3) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); } arg2->x = spC[0][3]; arg2->y = spC[1][3]; @@ -928,7 +928,7 @@ void fn_1_37A4(ModelData *arg0, Mtx arg1) UnkBss10Struct *temp_r31; GXLoadPosMtxImm(arg1, GX_PNMTX0); - PSMTXInvXpose(arg1, spEC); + MTXInvXpose(arg1, spEC); GXLoadNrmMtxImm(spEC, GX_PNMTX0); temp_r31 = &lbl_1_data_10[2]; GXInitTexObj(&spC, temp_r31->unk00, temp_r31->unk08, temp_r31->unk0A, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); @@ -941,31 +941,31 @@ void fn_1_37A4(ModelData *arg0, Mtx arg1) GXLoadTexObj(&spC, GX_TEXMAP3); GXSetNumTexGens(4); C_MTXLightPerspective(sp2C, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, spEC); - PSMTXConcat(spEC, arg1, spEC); - PSMTXConcat(sp2C, Hu3DCameraMtx, spBC); - PSMTXConcat(spBC, spEC, spBC); + MTXInverse(Hu3DCameraMtx, spEC); + MTXConcat(spEC, arg1, spEC); + MTXConcat(sp2C, Hu3DCameraMtx, spBC); + MTXConcat(spBC, spEC, spBC); GXLoadTexMtxImm(spBC, GX_TEXMTX0, GX_MTX3x4); C_MTXLightPerspective(sp2C, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, spEC); - PSMTXConcat(spEC, arg1, spEC); - PSMTXConcat(sp2C, Hu3DCameraMtx, spBC); - PSMTXConcat(spBC, spEC, spBC); + MTXInverse(Hu3DCameraMtx, spEC); + MTXConcat(spEC, arg1, spEC); + MTXConcat(sp2C, Hu3DCameraMtx, spBC); + MTXConcat(spBC, spEC, spBC); GXLoadTexMtxImm(spBC, GX_TEXMTX1, GX_MTX3x4); - PSMTXRotRad(spEC, 'X', MTXDegToRad(-90)); + MTXRotRad(spEC, 'X', MTXDegToRad(-90)); var_f31 = 0.0004f; - PSMTXScale(sp8C, 0.00083333335f, var_f31, 0.0004f); - PSMTXConcat(sp8C, spEC, sp5C); - PSMTXTrans(spBC, 0.5f, 0.5f, 0.5f); - PSMTXConcat(spBC, sp5C, sp5C); + MTXScale(sp8C, 0.00083333335f, var_f31, 0.0004f); + MTXConcat(sp8C, spEC, sp5C); + MTXTrans(spBC, 0.5f, 0.5f, 0.5f); + MTXConcat(spBC, sp5C, sp5C); sp5C[0][1] = -0.01f; GXLoadTexMtxImm(sp5C, GX_TEXMTX2, GX_MTX2x4); - PSMTXRotRad(spEC, 'X', MTXDegToRad(-90)); + MTXRotRad(spEC, 'X', MTXDegToRad(-90)); var_f31 = 0.0004f; - PSMTXScale(sp8C, var_f31, var_f31, var_f31); - PSMTXConcat(sp8C, spEC, sp5C); - PSMTXTrans(spBC, 0.5f, 0.5f, 0.0f); - PSMTXConcat(spBC, sp5C, sp5C); + MTXScale(sp8C, var_f31, var_f31, var_f31); + MTXConcat(sp8C, spEC, sp5C); + MTXTrans(spBC, 0.5f, 0.5f, 0.0f); + MTXConcat(spBC, sp5C, sp5C); GXLoadTexMtxImm(sp5C, GX_TEXMTX3, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX1, GX_FALSE, GX_PTIDENTITY); @@ -974,12 +974,12 @@ void fn_1_37A4(ModelData *arg0, Mtx arg1) GXSetNumIndStages(2); GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD2, GX_TEXMAP2); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); - PSMTXScale(spBC, -0.2f, -0.2f, 0.2f); + MTXScale(spBC, -0.2f, -0.2f, 0.2f); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spBC, -2); GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD3, GX_TEXMAP3); GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); - PSMTXScale(spBC, 0.5f, 0.5f, 0.5f); + MTXScale(spBC, 0.5f, 0.5f, 0.5f); GXSetIndTexMtx(GX_ITM_1, (float(*)[3])spBC, 0); GXSetTevIndWarp(GX_TEVSTAGE1, GX_INDTEXSTAGE1, GX_TRUE, GX_FALSE, GX_ITM_1); GXSetNumTevStages(2); @@ -1031,10 +1031,10 @@ void fn_1_4024(ModelData *arg0, Mtx arg1) fn_1_2714(1, GX_FALSE); GXLoadPosMtxImm(arg1, GX_PNMTX0); C_MTXLightPerspective(sp98, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, sp68); - PSMTXConcat(sp68, arg1, sp68); - PSMTXConcat(sp98, Hu3DCameraMtx, sp38); - PSMTXConcat(sp38, sp68, sp68); + MTXInverse(Hu3DCameraMtx, sp68); + MTXConcat(sp68, arg1, sp68); + MTXConcat(sp98, Hu3DCameraMtx, sp38); + MTXConcat(sp38, sp68, sp68); GXLoadTexMtxImm(sp68, GX_TEXMTX0, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY); GXSetNumChans(1); @@ -1096,7 +1096,7 @@ void fn_1_4700(ModelData *arg0, Mtx arg1) C_MTXOrtho(sp20, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 100.0f); GXSetProjection(sp20, GX_ORTHOGRAPHIC); - PSMTXIdentity(sp60); + MTXIdentity(sp60); GXLoadPosMtxImm(sp60, GX_PNMTX0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); diff --git a/src/REL/m406Dll/map.c b/src/REL/m406Dll/map.c index 7abe5b76..e995e73a 100644 --- a/src/REL/m406Dll/map.c +++ b/src/REL/m406Dll/map.c @@ -1083,7 +1083,7 @@ void fn_1_45BC(ModelData *arg0, Mtx arg1) } if (!var_r31->unk_28) { GXLoadPosMtxImm(arg1, 0); - PSMTXInvXpose(arg1, sp10); + MTXInvXpose(arg1, sp10); GXLoadNrmMtxImm(sp10, 0); var_r26 = fn_1_D06C(arg0, Hu3DCameraMtx, Hu3DCameraMtxXPose, 2.0f); GXSetNumTevStages(1); @@ -2149,7 +2149,7 @@ void fn_1_82C8(Mtx arg0, s32 arg1, float arg8) sp80.z = arg0[2][3]; sp74.x = sp74.z = 0.0f; sp74.y = atan2d(arg0[0][0], arg0[2][0]); - PSMTXCopy(arg0, sp8C); + MTXCopy(arg0, sp8C); sp8C[0][3] = sp8C[1][3] = sp8C[2][3] = sp8C[3][3] = 0.0f; sp68.x = -25.0f; sp68.z = -50.0f; @@ -2227,7 +2227,7 @@ void fn_1_8F98(void) var_r31->unk_10 = 0.0f; var_r31->unk_14 = 6.0f; var_r31->unk_18 = 1.0f; - PSMTXIdentity(var_r31->unk_1C); + MTXIdentity(var_r31->unk_1C); if (var_r30 == 0) { var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 59)); } @@ -2246,7 +2246,7 @@ void fn_1_8F98(void) var_r31->unk_10 = 0.0f; var_r31->unk_14 = 6.0f; var_r31->unk_18 = 1.0f; - PSMTXIdentity(var_r31->unk_1C); + MTXIdentity(var_r31->unk_1C); if (var_r30 == 0) { var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 60)); } @@ -2278,8 +2278,8 @@ void fn_1_91E0(void) var_f31 = var_r31->unk_18 * cosd((90.0f * var_f30)); var_f31 = var_f31; var_r30 = &Hu3DData[var_r31->unk_04]; - PSMTXScale(sp8, var_f31, var_f31, var_f31); - PSMTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0); + MTXScale(sp8, var_f31, var_f31, var_f31); + MTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0); var_r30->unk_F0[0][3] = var_r31->unk_1C[0][3]; var_r30->unk_F0[1][3] = var_r31->unk_1C[1][3]; var_r30->unk_F0[2][3] = var_r31->unk_1C[2][3]; @@ -2299,8 +2299,8 @@ void fn_1_91E0(void) var_f31 = var_r31->unk_18 * cosd((90.0f * var_f30)); var_f31 = var_f31; var_r30 = &Hu3DData[var_r31->unk_04]; - PSMTXScale(sp8, var_f31, var_f31, var_f31); - PSMTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0); + MTXScale(sp8, var_f31, var_f31, var_f31); + MTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0); var_r30->unk_F0[0][3] = var_r31->unk_1C[0][3]; var_r30->unk_F0[1][3] = var_r31->unk_1C[1][3]; var_r30->unk_F0[2][3] = var_r31->unk_1C[2][3]; @@ -2340,7 +2340,7 @@ s32 fn_1_94C0(Mtx arg0, s32 arg1, s32 arg2) sp64.z = arg0[2][3]; sp58.x = sp58.z = 0.0f; sp58.y = atan2d(arg0[0][0], arg0[2][0]); - PSMTXCopy(arg0, spA0); + MTXCopy(arg0, spA0); spA0[0][3] = spA0[1][3] = spA0[2][3] = spA0[3][3] = 0.0f; if (!arg2) { sp4C.x = 25.0f; @@ -2419,12 +2419,12 @@ s32 fn_1_94C0(Mtx arg0, s32 arg1, s32 arg2) var_r31->unk_10 = 1.0f; var_r31->unk_14 = 6.0f; var_r31->unk_18 = var_f31; - PSMTXCopy(arg0, var_r31->unk_1C); + MTXCopy(arg0, var_r31->unk_1C); Hu3DMotionTimeSet(var_r31->unk_04, 0.0f); Hu3DMotionSpeedSet(var_r31->unk_04, 0.0f); var_r27 = &Hu3DData[var_r31->unk_04]; - PSMTXScale(sp70, var_f31, var_f31, var_f31); - PSMTXConcat(arg0, sp70, var_r27->unk_F0); + MTXScale(sp70, var_f31, var_f31, var_f31); + MTXConcat(arg0, sp70, var_r27->unk_F0); var_r27->unk_F0[0][3] = arg0[0][3]; var_r27->unk_F0[1][3] = arg0[1][3]; var_r27->unk_F0[2][3] = arg0[2][3]; @@ -2630,7 +2630,7 @@ void fn_1_ADB4(ModelData *arg0, float (*arg1)[4]) GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - PSMTXIdentity(sp50); + MTXIdentity(sp50); GXLoadPosMtxImm(sp50, 0); GXSetZMode(GX_FALSE, GX_ALWAYS, GX_TRUE); GXSetNumChans(1); @@ -2954,7 +2954,7 @@ void fn_1_BC18(ModelData *arg0, float (*arg1)[4]) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8); if (HmfInverseMtxF3X3(arg1, sp128) == 0) { - PSMTXIdentity(sp128); + MTXIdentity(sp128); } PSMTXReorder(sp128, sp8); if (var_r31->unk_4C) { @@ -2993,9 +2993,9 @@ void fn_1_BC18(ModelData *arg0, float (*arg1)[4]) VECScale(&lbl_1_data_8E0[1], &sp98[1], var_r29->unk_28); VECScale(&lbl_1_data_8E0[2], &sp98[2], var_r29->unk_28); VECScale(&lbl_1_data_8E0[3], &sp98[3], var_r29->unk_28); - PSMTXRotRad(spC8, 90, var_r29->unk_2C); - PSMTXConcat(sp128, spC8, spF8); - PSMTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); + MTXRotRad(spC8, 90, var_r29->unk_2C); + MTXConcat(sp128, spC8, spF8); + MTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); VECAdd(&sp68[0], &var_r29->unk_30, var_r30++); VECAdd(&sp68[1], &var_r29->unk_30, var_r30++); VECAdd(&sp68[2], &var_r29->unk_30, var_r30++); @@ -3167,7 +3167,7 @@ void fn_1_C86C(ModelData *arg0, Mtx arg1) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, 0x44); if (HmfInverseMtxF3X3(arg1, sp9C) == 0) { - PSMTXIdentity(sp9C); + MTXIdentity(sp9C); } PSMTXReorder(sp9C, spC); if (var_r31->unk_4C) { @@ -3362,8 +3362,8 @@ void fn_1_D13C(LightData *arg0, s16 arg1, Mtx arg2, Mtx arg3, float arg8) break; } if (arg0->unk_00 & 0x8000) { - PSMTXMultVec(arg2, &arg0->unk_28, &sp24); - PSMTXMultVec(arg3, &arg0->unk_1C, &sp18); + MTXMultVec(arg2, &arg0->unk_28, &sp24); + MTXMultVec(arg3, &arg0->unk_1C, &sp18); GXInitLightPos(&sp30, sp18.x, sp18.y, sp18.z); } else { diff --git a/src/REL/m406Dll/player.c b/src/REL/m406Dll/player.c index b484169b..9685aac0 100644 --- a/src/REL/m406Dll/player.c +++ b/src/REL/m406Dll/player.c @@ -666,11 +666,11 @@ void fn_1_E214(omObjData *object) } Hu3DModelScaleSet(object->model[5], var_f30, var_f30, var_f30); var_r31->unk_50 += VECMag(&var_r31->unk_2C) / 3.125f; - PSMTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70); - PSMTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50); - PSMTXConcat(sp64, sp94, sp34); - PSMTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70); - PSMTXConcat(sp94, sp34, var_r26->unk_F0); + MTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70); + MTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50); + MTXConcat(sp64, sp94, sp34); + MTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70); + MTXConcat(sp94, sp34, var_r26->unk_F0); var_r27 = 6; var_f31 = 2.0f; var_r25 = 0; @@ -690,14 +690,14 @@ void fn_1_E214(omObjData *object) var_r31->unk_2C.x = var_r31->unk_2C.y = var_r31->unk_2C.z = 0.0f; } var_r31->unk_50 = fn_1_13AF4(var_r31->unk_50, 0.0f, 0.5f); - PSMTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70); - PSMTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50); - PSMTXConcat(sp64, sp94, sp34); - PSMTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70); - PSMTXConcat(sp94, sp34, var_r26->unk_F0); + MTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70); + MTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50); + MTXConcat(sp64, sp94, sp34); + MTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70); + MTXConcat(sp94, sp34, var_r26->unk_F0); if (var_r31->unk_5E != 0) { - PSMTXTrans(sp94, 100.0f * (0.2f * (((var_r31->unk_5E & 1) * 2) - 1)), 0.0f, 0.0f); - PSMTXConcat(sp94, var_r26->unk_F0, var_r26->unk_F0); + MTXTrans(sp94, 100.0f * (0.2f * (((var_r31->unk_5E & 1) * 2) - 1)), 0.0f, 0.0f); + MTXConcat(sp94, var_r26->unk_F0, var_r26->unk_F0); if (--var_r31->unk_5E == 0) { if (++var_r31->unk_5C >= 4) { var_r31->unk_00_field3 = 0; @@ -708,7 +708,7 @@ void fn_1_E214(omObjData *object) Hu3DModelPosSet(object->model[6], object->trans.x + var_r31->unk_68, object->trans.y + var_r31->unk_6C, object->trans.z + var_r31->unk_70); Hu3DModelAttrReset(object->model[6], HU3D_ATTR_DISPOFF); - PSMTXIdentity(var_r26->unk_F0); + MTXIdentity(var_r26->unk_F0); fn_1_117BC(var_r31->unk_14.x, 25.0f, &var_r31->unk_44, &var_r31->unk_2C); } } @@ -733,7 +733,7 @@ void fn_1_E214(omObjData *object) if (fn_1_6A44(sp28) == 1) { var_r31->unk_00_field0 = 1; var_r26 = &Hu3DData[object->model[0]]; - PSMTXIdentity(var_r26->unk_F0); + MTXIdentity(var_r26->unk_F0); omVibrate(var_r31->unk_02, 0xC, 4, 2); HuAudCharVoicePlayPos(var_r31->unk_0C, 0x123, &object->trans); for (var_r24 = 0; var_r24 < 2; var_r24++) { @@ -804,13 +804,13 @@ void fn_1_F194(omObjData *object) mtxTransCat(sp80, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); VECCrossProduct(&sp44, &sp8, &sp44); if (sp44.y >= 0.0f) { - PSMTXTrans(sp50, -10.0f, 0.0f, 0.0f); - PSMTXConcat(sp50, sp80, sp80); + MTXTrans(sp50, -10.0f, 0.0f, 0.0f); + MTXConcat(sp50, sp80, sp80); fn_1_94C0(sp80, 10, 0); } else { - PSMTXTrans(sp50, 10.0f, 0.0f, 0.0f); - PSMTXConcat(sp50, sp80, sp80); + MTXTrans(sp50, 10.0f, 0.0f, 0.0f); + MTXConcat(sp50, sp80, sp80); fn_1_94C0(sp80, 10, 1); } } @@ -868,13 +868,13 @@ void fn_1_F694(omObjData *object) mtxTransCat(sp68, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); VECCrossProduct(&sp20, &sp14, &sp8); if (sp8.y >= 0.0f) { - PSMTXTrans(sp38, -10.0f, 0.0f, 0.0f); - PSMTXConcat(sp38, sp68, sp68); + MTXTrans(sp38, -10.0f, 0.0f, 0.0f); + MTXConcat(sp38, sp68, sp68); fn_1_94C0(sp68, 10, 0); } else { - PSMTXTrans(sp38, 10.0f, 0.0f, 0.0f); - PSMTXConcat(sp38, sp68, sp68); + MTXTrans(sp38, 10.0f, 0.0f, 0.0f); + MTXConcat(sp38, sp68, sp68); fn_1_94C0(sp68, 10, 1); } } @@ -1228,8 +1228,8 @@ void fn_1_10744(omObjData *object) if ((var_r31->unk_64 < 0x50) && (var_r31->unk_64 > 0x1E)) { mtxRot(sp48, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z); mtxTransCat(sp48, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); - PSMTXTrans(sp18, 10.0f, 0.0f, 0.0f); - PSMTXConcat(sp18, sp48, sp48); + MTXTrans(sp18, 10.0f, 0.0f, 0.0f); + MTXConcat(sp18, sp48, sp48); fn_1_94C0(sp48, 10, 0); } var_r31->unk_2C.x = var_r31->unk_54 * (100.0 * (0.10000000149011612 * sind(180.0f + var_r31->unk_14.x))); @@ -1345,15 +1345,15 @@ void fn_1_114A0(omObjData *object) } mtxRot(sp9C, object->rot.x, object->rot.y, object->trans.z); mtxScaleCat(sp9C, object->scale.x, object->scale.y, object->scale.z); - PSMTXTrans(sp9C, object->trans.x, object->trans.y, object->trans.z); - PSMTXRotRad(sp6C, 0x78, 0.017453292f * var_r31->unk_50); - PSMTXConcat(sp9C, sp6C, sp9C); - PSMTXCopy(sp9C, spC); + MTXTrans(sp9C, object->trans.x, object->trans.y, object->trans.z); + MTXRotRad(sp6C, 0x78, 0.017453292f * var_r31->unk_50); + MTXConcat(sp9C, sp6C, sp9C); + MTXCopy(sp9C, spC); mtxScaleCat(spC, 2.0f, 2.0f, 2.0f); - PSMTXCopy(spC, Hu3DData[object->model[5]].unk_F0); - PSMTXTrans(sp3C, 0.0f, 110.0f, 0.0f); - PSMTXConcat(sp9C, sp3C, spC); - PSMTXCopy(spC, Hu3DData[object->model[7]].unk_F0); + MTXCopy(spC, Hu3DData[object->model[5]].unk_F0); + MTXTrans(sp3C, 0.0f, 110.0f, 0.0f); + MTXConcat(sp9C, sp3C, spC); + MTXCopy(spC, Hu3DData[object->model[7]].unk_F0); } void fn_1_117BC(float arg8, float arg9, UnkM406PlayerStruct2 *arg0, Vec *arg1) @@ -1753,7 +1753,7 @@ void fn_1_12BC4(omObjData *object) var_r30->target.z = Center.z; C_MTXLookAt(spA8, &var_r30->pos, &var_r30->up, &var_r30->target); for (var_r31 = 0; var_r31 < lbl_1_bss_1C4; var_r31++) { - PSMTXMultVec(spA8, &lbl_1_bss_104[var_r31], &sp198[var_r31]); + MTXMultVec(spA8, &lbl_1_bss_104[var_r31], &sp198[var_r31]); spD8[var_r31].x = sp198[var_r31].x / (sp198[var_r31].z * (sind((var_r30->fov / 2)) / cosd((var_r30->fov / 2)))); spD8[var_r31].y = sp198[var_r31].y / (sp198[var_r31].z * (sind((var_r30->fov / 2)) / cosd((var_r30->fov / 2)))); } @@ -1811,13 +1811,13 @@ s32 fn_1_136AC(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) HsfTransform *var_r31 = &arg0->data.curr; mtxRot(sp144, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - PSMTXScale(sp174, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); - PSMTXConcat(sp144, sp174, sp174); + MTXScale(sp174, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(sp144, sp174, sp174); mtxTransCat(sp174, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); - PSMTXConcat(arg1, sp174, sp174); + MTXConcat(arg1, sp174, sp174); strcpy(sp4A4, MakeObjectName(arg2)); if (strcmp(sp4A4, arg0->name) == 0) { - PSMTXCopy(sp174, arg3); + MTXCopy(sp174, arg3); return 1; } for (var_r23 = 0; var_r23 < arg0->data.childrenCount; var_r23++) { @@ -1838,7 +1838,7 @@ void fn_1_13A88(s16 arg0, char *arg1, Mtx arg2) var_r31 = &Hu3DData[arg0]; var_r30 = var_r31->hsfData; - PSMTXIdentity(sp14); + MTXIdentity(sp14); fn_1_136AC(var_r30->root, sp14, arg1, arg2); } diff --git a/src/REL/m409Dll/cursor.c b/src/REL/m409Dll/cursor.c index c007391c..76fbe60a 100644 --- a/src/REL/m409Dll/cursor.c +++ b/src/REL/m409Dll/cursor.c @@ -4,11 +4,12 @@ #include "game/hsfdraw.h" #include "game/sprite.h" -void fn_1_BF88(s16 arg0, s16 arg1) { +void fn_1_BF88(s16 arg0, s16 arg1) +{ s32 var_r31; s32 var_r31_2; - unkStruct8* var_r29; - unkStruct9Sub* var_r30; + unkStruct8 *var_r29; + unkStruct9Sub *var_r30; lbl_1_bss_F0.unk4 = Hu3DHookFuncCreate(fn_1_CB98); Hu3DModelLayerSet(lbl_1_bss_F0.unk4, 6); @@ -18,26 +19,27 @@ void fn_1_BF88(s16 arg0, s16 arg1) { lbl_1_bss_F0.unk2 = arg1; var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct9Sub), MEMORY_DEFAULT_NUM); lbl_1_bss_F0.unkC = var_r30; - + for (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) { var_r29->unk8 = 0; } - + for (var_r31 = 0; var_r31 < arg1; var_r31++, var_r30++) { var_r30->unk6 = 0; var_r30->unk8 = 0; } - + lbl_1_bss_F0.unk6 = lbl_1_bss_F0.unk8 = lbl_1_bss_F0.unkA = 0; } -void fn_1_C0C0(void) { +void fn_1_C0C0(void) +{ s32 var_r31; for (var_r31 = 1; var_r31 < lbl_1_bss_F0.unk0; var_r31++) { fn_1_DDB8(var_r31); } - + for (var_r31 = 1; var_r31 < lbl_1_bss_F0.unk2; var_r31++) { fn_1_E228(var_r31); } @@ -48,7 +50,8 @@ void fn_1_C0C0(void) { extern u8 texMtxTbl[]; -void fn_1_C164(unkStruct8* arg0) { +void fn_1_C164(unkStruct8 *arg0) +{ ModelData spEC; Mtx spBC; Mtx sp8C; @@ -59,27 +62,27 @@ void fn_1_C164(unkStruct8* arg0) { GXColorSrc var_r25; s32 var_r26; s16 temp_r23; - unkStruct9Sub* temp_r28; + unkStruct9Sub *temp_r28; s16 var_r27; s16 var_r30; s32 var_r24; s32 var_r22; s32 var_r21; s32 var_r20; - unkStruct8Sub* var_r31; + unkStruct8Sub *var_r31; mtxRot(sp2C, arg0->unk18.x, arg0->unk18.y, arg0->unk18.z); - PSMTXScale(sp5C, arg0->unk24.x, arg0->unk24.y, arg0->unk24.z); - PSMTXConcat(sp2C, sp5C, sp5C); + MTXScale(sp5C, arg0->unk24.x, arg0->unk24.y, arg0->unk24.z); + MTXConcat(sp2C, sp5C, sp5C); mtxTransCat(sp5C, arg0->unkC.x, arg0->unkC.y, arg0->unkC.z); - PSMTXConcat(Hu3DCameraMtx, sp5C, sp8C); + MTXConcat(Hu3DCameraMtx, sp5C, sp8C); var_r30 = 0; var_r27 = 0; sp8 = 0; - + for (var_r26 = GX_TEXMAP0; var_r26 < arg0->unk4; var_r26++) { temp_r28 = &lbl_1_bss_F0.unkC[arg0->unk34[var_r26]]; - PSMTXRotRad(temp_r28->unk18, 0x5A, 0.0f); + MTXRotRad(temp_r28->unk18, 0x5A, 0.0f); mtxTransCat(temp_r28->unk18, temp_r28->unkC.x, temp_r28->unkC.y, temp_r28->unkC.z); switch (temp_r28->unk4) { case 0: @@ -91,11 +94,13 @@ void fn_1_C164(unkStruct8* arg0) { if ((temp_r28->unk0->bmp->dataFmt == 7) || (temp_r28->unk0->bmp->dataFmt == 8)) { GXSetTevColor(GX_TEVREG2, temp_r28->unk48); GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_C2, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevColorIn(var_r30, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } GXSetTevAlphaIn(var_r30, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); - } else { + } + else { sp28.a = temp_r28->unk48.a; GXSetTevColor(GX_TEVREG2, sp28); GXSetTevColorIn(var_r30, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); @@ -150,39 +155,40 @@ void fn_1_C164(unkStruct8* arg0) { GXSetNumTevStages((s32)var_r30); GXSetNumTexGens((s32)var_r27); var_r31 = arg0->unk3C; - + for (var_r24 = 0; var_r24 < arg0->unk2; var_r24++, var_r31++) { if ((var_r31->unk34 != 0) && ((var_r31->unk34 & 4) == 0)) { switch (var_r31->unk30) { case 0: mtxRot(sp2C, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); - PSMTXIdentity(sp5C); + MTXIdentity(sp5C); HmfInverseMtxF3X3(Hu3DCameraMtx, sp5C); - PSMTXConcat(sp5C, sp2C, sp2C); - PSMTXScale(sp5C, var_r31->unk18.x, var_r31->unk18.y, var_r31->unk18.z); - PSMTXConcat(sp2C, sp5C, sp5C); + MTXConcat(sp5C, sp2C, sp2C); + MTXScale(sp5C, var_r31->unk18.x, var_r31->unk18.y, var_r31->unk18.z); + MTXConcat(sp2C, sp5C, sp5C); mtxTransCat(sp5C, var_r31->unk0.x, var_r31->unk0.y, var_r31->unk0.z); - PSMTXConcat(Hu3DCameraMtx, sp5C, spBC); + MTXConcat(Hu3DCameraMtx, sp5C, spBC); break; case 1: - PSMTXCopy(sp8C, sp2C); + MTXCopy(sp8C, sp2C); mtxRotCat(sp2C, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); - PSMTXScale(sp5C, var_r31->unk18.x, var_r31->unk18.y, var_r31->unk18.z); - PSMTXConcat(sp2C, sp5C, sp5C); + MTXScale(sp5C, var_r31->unk18.x, var_r31->unk18.y, var_r31->unk18.z); + MTXConcat(sp2C, sp5C, sp5C); mtxTransCat(sp5C, var_r31->unk0.x, var_r31->unk0.y, var_r31->unk0.z); - PSMTXCopy(sp5C, spBC); + MTXCopy(sp5C, spBC); break; } GXLoadPosMtxImm(spBC, 0); - PSMTXInverse(spBC, sp5C); - PSMTXTranspose(sp5C, sp2C); + MTXInverse(spBC, sp5C); + MTXTranspose(sp5C, sp2C); GXLoadNrmMtxImm(sp2C, 0); GXSetChanAmbColor(GX_COLOR0A0, var_r31->unk4C); GXSetChanMatColor(GX_COLOR0A0, var_r31->unk50); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); if ((var_r31->unk34 & 0x10) != 0) { GXSetZMode(GX_FALSE, GX_LEQUAL, GX_TRUE); - } else { + } + else { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); } spEC.attr = 0; @@ -190,7 +196,8 @@ void fn_1_C164(unkStruct8* arg0) { GXSetNumChans(1); if ((var_r31->unk34 & 8) != 0) { var_r25 = GX_SRC_VTX; - } else { + } + else { var_r25 = GX_SRC_REG; } switch (var_r31->unk31) { @@ -224,18 +231,19 @@ void fn_1_C164(unkStruct8* arg0) { } } -void fn_1_CB98(ModelData* model, Mtx matrix) { +void fn_1_CB98(ModelData *model, Mtx matrix) +{ Mtx sp38; Mtx sp8; s32 var_r30; - unkStruct8* var_r31; + unkStruct8 *var_r31; var_r31 = lbl_1_bss_F0.unk10; GXLoadPosMtxImm(matrix, 0); - PSMTXInverse(matrix, sp38); - PSMTXTranspose(sp38, sp8); + MTXInverse(matrix, sp38); + MTXTranspose(sp38, sp8); GXLoadNrmMtxImm(sp8, 0); - + for (var_r30 = 0; var_r30 < lbl_1_bss_F0.unk0; var_r30++, var_r31++) { if ((var_r31->unk8 == 0) || ((var_r31->unk8 & 2) == 0) || ((var_r31->unk8 & 4) != 0)) { continue; @@ -244,28 +252,33 @@ void fn_1_CB98(ModelData* model, Mtx matrix) { if (var_r31->unk30) { var_r31->unk30(var_r31); } - if (var_r31->unk8 == 0) continue; + if (var_r31->unk8 == 0) + continue; fn_1_D430(var_r31); - if (var_r31->unk8 == 0) continue; + if (var_r31->unk8 == 0) + continue; } fn_1_C164(var_r31); } } -unkStruct8* fn_1_CCB0(s16 idx) { +unkStruct8 *fn_1_CCB0(s16 idx) +{ return &lbl_1_bss_F0.unk10[idx]; } -unkStruct8Sub* fn_1_CCCC(s16 arg0, s16 arg1) { +unkStruct8Sub *fn_1_CCCC(s16 arg0, s16 arg1) +{ return &lbl_1_bss_F0.unk10[arg0].unk3C[arg1]; } -void fn_1_CCF8(unkStruct11** arg0, s16 arg1, f32 arg8, f32 arg9) { +void fn_1_CCF8(unkStruct11 **arg0, s16 arg1, f32 arg8, f32 arg9) +{ s32 var_r30; - unkStruct11* var_r31; - + unkStruct11 *var_r31; + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct11), MEMORY_DEFAULT_NUM); - + for (var_r30 = 0; var_r30 < arg1; var_r31++, var_r30++) { var_r31->unk0.x = (-0.5f * arg8); var_r31->unk0.y = (0.5f * arg9); @@ -282,13 +295,14 @@ void fn_1_CCF8(unkStruct11** arg0, s16 arg1, f32 arg8, f32 arg9) { } } -void fn_1_CE7C(Vec** arg0, s16 arg1, Vec* arg2) { +void fn_1_CE7C(Vec **arg0, s16 arg1, Vec *arg2) +{ s32 var_r29; s32 var_r28; - Vec* var_r31; + Vec *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec[4]), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { var_r31->x = arg2->x; @@ -298,13 +312,14 @@ void fn_1_CE7C(Vec** arg0, s16 arg1, Vec* arg2) { } } -void fn_1_CF1C(GXColor** arg0, s16 arg1, GXColor* arg2) { +void fn_1_CF1C(GXColor **arg0, s16 arg1, GXColor *arg2) +{ s32 var_r29; s32 var_r28; - GXColor* var_r31; + GXColor *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(GXColor[4]), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { var_r31->r = arg2->r; @@ -315,12 +330,13 @@ void fn_1_CF1C(GXColor** arg0, s16 arg1, GXColor* arg2) { } } -void fn_1_CFC4(Vec** arg0, s16 arg1, Vec* arg2) { +void fn_1_CFC4(Vec **arg0, s16 arg1, Vec *arg2) +{ s32 var_r29; - Vec* var_r31; + Vec *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r31++, arg2++, var_r29++) { var_r31->x = arg2->x; var_r31->y = arg2->y; @@ -328,10 +344,11 @@ void fn_1_CFC4(Vec** arg0, s16 arg1, Vec* arg2) { } } -void fn_1_D050(HsfVector2f** arg0, s16 arg1, HsfVector2f* arg2) { +void fn_1_D050(HsfVector2f **arg0, s16 arg1, HsfVector2f *arg2) +{ s32 var_r28; s32 var_r29; - HsfVector2f* var_r31; + HsfVector2f *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(HsfVector2f[4]), MEMORY_DEFAULT_NUM); @@ -343,31 +360,22 @@ void fn_1_D050(HsfVector2f** arg0, s16 arg1, HsfVector2f* arg2) { } } -void fn_1_D0E8(unkStruct8Sub* arg0) { - Vec sp18[4] = { - { -50.0f, 50.0f, 0.0f }, - { 50.0f, 50.0f, 0.0f }, - { 50.0f, -50.0f, 0.0f }, - { -50.0f, -50.0f, 0.0f } - }; - GXColor sp8[4] = { - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF } - }; +void fn_1_D0E8(unkStruct8Sub *arg0) +{ + Vec sp18[4] = { { -50.0f, 50.0f, 0.0f }, { 50.0f, 50.0f, 0.0f }, { 50.0f, -50.0f, 0.0f }, { -50.0f, -50.0f, 0.0f } }; + GXColor sp8[4] = { { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF } }; s32 var_r26; s32 var_r25; - void* temp_r3_3; - + void *temp_r3_3; + if (arg0->unk40 != NULL) { HuMemDirectFree(arg0->unk40); } - fn_1_CE7C((Vec**)&arg0->unk40, 1, &sp18[0]); + fn_1_CE7C((Vec **)&arg0->unk40, 1, &sp18[0]); if (arg0->unk44 != NULL) { HuMemDirectFree(arg0->unk44); } - fn_1_CF1C((GXColor**)&arg0->unk44, 1, &sp8[0]); + fn_1_CF1C((GXColor **)&arg0->unk44, 1, &sp8[0]); if (arg0->unk48 != NULL) { HuMemDirectFree(arg0->unk48); } @@ -383,12 +391,12 @@ void fn_1_D0E8(unkStruct8Sub* arg0) { DCFlushRange(arg0->unk3C, 0x1000); GXBeginDisplayList(temp_r3_3, 0x1000); GXBegin(GX_QUADS, GX_VTXFMT0, 4); - + for (var_r26 = 0; var_r26 < 4; var_r26++) { GXPosition1x16(var_r26); GXColor1x16(0); GXNormal1x16(var_r26); - + for (var_r25 = 0; var_r25 < arg0->unk32; var_r25++) { GXTexCoord1x16(var_r26); } @@ -396,23 +404,25 @@ void fn_1_D0E8(unkStruct8Sub* arg0) { arg0->unk38 = GXEndDisplayList(); } -void fn_1_D430(unkStruct8* arg0) { +void fn_1_D430(unkStruct8 *arg0) +{ s32 var_r25; s32 var_r26; s32 var_r27; - unkStruct8Sub* var_r28; - unkStruct12* var_r31; - unkStruct9Sub* temp_r30; + unkStruct8Sub *var_r28; + unkStruct12 *var_r31; + unkStruct9Sub *temp_r30; var_r27 = 0; var_r28 = arg0->unk3C; - + for (var_r25 = 0; var_r25 < arg0->unk2; var_r25++, var_r28++) { if ((var_r28->unk34 & 4) != 0) { var_r27++; - } else { + } + else { var_r31 = var_r28->unk54; - + for (var_r26 = 0; var_r26 < var_r28->unk32; var_r26++, var_r31++) { temp_r30 = &lbl_1_bss_F0.unkC[arg0->unk34[var_r26]]; var_r31->unk8 &= ~4; @@ -436,30 +446,37 @@ void fn_1_D430(unkStruct8* arg0) { if ((var_r31->unk8 & 0x10) != 0) { var_r31->unk8 |= 8; var_r31->unk0--; - } else if ((var_r31->unk8 & 0x40) != 0) { + } + else if ((var_r31->unk8 & 0x40) != 0) { var_r31->unk8 = (var_r31->unk8 & 0xF0) | 2; var_r31->unk0 -= 2; - } else if ((var_r31->unk8 & 0x20) != 0) { + } + else if ((var_r31->unk8 & 0x20) != 0) { var_r31->unk0 = 0; } var_r31->unk8 |= 4; - } else if (var_r31->unk0 < 0) { + } + else if (var_r31->unk0 < 0) { if ((var_r31->unk8 & 0x10) != 0) { var_r31->unk8 |= 8; var_r31->unk0 = 0; - } else if ((var_r31->unk8 & 0x20) != 0) { + } + else if ((var_r31->unk8 & 0x20) != 0) { if ((var_r31->unk8 & 0x40) != 0) { var_r31->unk8 = ((var_r31->unk8 & 0xF0) | 1); var_r31->unk0 = 1U; - } else { + } + else { var_r31->unk0 = (temp_r30->unk4C - 1); } - } else if ((var_r31->unk8 & 0x40) != 0) { + } + else if ((var_r31->unk8 & 0x40) != 0) { var_r31->unk8 |= 8; var_r31->unk0 = 0; } var_r31->unk8 |= 4; - } else { + } + else { var_r31->unk8 &= ~8; } if (var_r31->unk0 != var_r31->unk1) { @@ -483,11 +500,13 @@ void fn_1_D430(unkStruct8* arg0) { if ((var_r31->unk8 & 0x40) == 0) { if (var_r31->unk0 <= 0) { var_r31->unk0 = temp_r30->unk4C; - } else { + } + else { var_r31->unk0 = 0U; } } - } else if ((var_r28->unk34 & 0x80000000) != 0) { + } + else if ((var_r28->unk34 & 0x80000000) != 0) { fn_1_DDB8(arg0->unk0); } var_r27++; @@ -506,21 +525,23 @@ void fn_1_D430(unkStruct8* arg0) { } } -s16 fn_1_DA48(u8 arg0, u8 arg1) { +s16 fn_1_DA48(u8 arg0, u8 arg1) +{ s32 var_r29; s32 var_r28; - unkStruct8* var_r30; - unkStruct8Sub* var_r31; + unkStruct8 *var_r30; + unkStruct8Sub *var_r31; var_r30 = &lbl_1_bss_F0.unk10[1]; - + for (var_r29 = 1; var_r29 < lbl_1_bss_F0.unk0; var_r29++, var_r30++) { - if (var_r30->unk8 == 0) break; - + if (var_r30->unk8 == 0) + break; } - - if (var_r29 == lbl_1_bss_F0.unk0) return 0; - + + if (var_r29 == lbl_1_bss_F0.unk0) + return 0; + var_r30->unk0 = var_r29; var_r30->unk8 = 1; var_r30->unk30 = NULL; @@ -534,14 +555,14 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) { var_r30->unk24.x = var_r30->unk24.y = var_r30->unk24.z = 1.0f; var_r30->unk54.x = var_r30->unk54.y = var_r30->unk54.z = 0.0f; var_r30->unk48.x = var_r30->unk48.y = var_r30->unk48.z = 0.0f; - + for (var_r29 = 0; var_r29 < 0x20; var_r29++) { var_r30->unk60[var_r29] = 0; } for (var_r29 = 0; var_r29 < arg1; var_r29++) { var_r30->unk34[var_r29] = 0; } - + for (var_r29 = 0; var_r29 < arg0; var_r29++, var_r31++) { var_r31->unk34 = 1; var_r31->unk32 = arg1; @@ -552,7 +573,7 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) { var_r31->unk50.r = var_r31->unk50.g = var_r31->unk50.b = 0xFF; var_r31->unk50.a = 0xFF; var_r31->unk54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct12), MEMORY_DEFAULT_NUM); - + for (var_r28 = 0; var_r28 < arg1; var_r28++) { var_r31->unk54[var_r28].unk0 = var_r31->unk54[var_r28].unk1 = 0; var_r31->unk54[var_r28].unk4 = NULL; @@ -564,7 +585,7 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) { var_r31->unk18.x = var_r31->unk18.y = var_r31->unk18.z = 1.0f; var_r31->unk64.x = var_r31->unk64.y = var_r31->unk64.z = 0.0f; var_r31->unk58.x = var_r31->unk58.y = var_r31->unk58.z = 0.0f; - + for (var_r28 = 0; var_r28 < 0x10; var_r28++) { var_r31->unk70[var_r28] = 0; } @@ -575,17 +596,18 @@ s16 fn_1_DA48(u8 arg0, u8 arg1) { return var_r30->unk0; } -void fn_1_DDB8(s16 arg0) { - unkStruct12* var_r28; +void fn_1_DDB8(s16 arg0) +{ + unkStruct12 *var_r28; s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; if (temp_r30->unk8 != 0) { var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { if (var_r31->unk40 != NULL) { HuMemDirectFree(var_r31->unk40); @@ -603,7 +625,7 @@ void fn_1_DDB8(s16 arg0) { HuMemDirectFree(var_r28->unk4); HuMemDirectFree(var_r31->unk54); } - + for (var_r29 = 0; var_r29 < temp_r30->unk4; var_r29++) { fn_1_E228(temp_r30->unk34[var_r29]); } @@ -615,32 +637,36 @@ void fn_1_DDB8(s16 arg0) { } } -void fn_1_DEF4(s16 arg0, s16 arg1, u8 arg2) { +void fn_1_DEF4(s16 arg0, s16 arg1, u8 arg2) +{ lbl_1_bss_F0.unk6 = arg0; lbl_1_bss_F0.unk8 = arg1; lbl_1_bss_F0.unkA = arg2; } -s16 fn_1_DF20(u32 arg0, s16 arg1, s16 arg2) { - AnimData* temp_r30; +s16 fn_1_DF20(u32 arg0, s16 arg1, s16 arg2) +{ + AnimData *temp_r30; f32 var_f31; f32 var_f30; s32 var_r29; - unkStruct9Sub* var_r31; + unkStruct9Sub *var_r31; var_r31 = &lbl_1_bss_F0.unkC[1]; - + for (var_r29 = 1; var_r29 < lbl_1_bss_F0.unk2; var_r29++, var_r31++) { - if ((var_r31->unk6 != 0) && (var_r31->unk8 == arg0)) break; + if ((var_r31->unk6 != 0) && (var_r31->unk8 == arg0)) + break; } if (var_r29 < lbl_1_bss_F0.unk2) { var_r31->unk6++; return var_r29; } var_r31 = &lbl_1_bss_F0.unkC[1]; - + for (var_r29 = 1; var_r29 < lbl_1_bss_F0.unk2; var_r29++, var_r31++) { - if (var_r31->unk6 == 0) break; + if (var_r31->unk6 == 0) + break; } var_r31->unk8 = arg0; var_r31->unk6 = 1; @@ -649,7 +675,8 @@ s16 fn_1_DF20(u32 arg0, s16 arg1, s16 arg2) { arg1 = temp_r30->bmp->sizeX; arg2 = temp_r30->bmp->sizeY; var_f31 = var_f30 = 1.0f; - } else { + } + else { var_f31 = arg1 / (f32)temp_r30->bmp->sizeX; var_f30 = arg2 / (f32)temp_r30->bmp->sizeY; } @@ -664,14 +691,15 @@ s16 fn_1_DF20(u32 arg0, s16 arg1, s16 arg2) { var_r31->unk4C = (temp_r30->bmp->sizeY / arg2); var_r31->unk48.r = var_r31->unk48.g = var_r31->unk48.b = 0xFF; var_r31->unk48.a = 0xFF; - PSMTXIdentity(var_r31->unk18); + MTXIdentity(var_r31->unk18); var_r31->unkC.x = var_r31->unkC.y = var_r31->unkC.z = 0.0f; return var_r29; } -void fn_1_E228(s16 arg0) { - unkStruct9Sub* temp_r31; - +void fn_1_E228(s16 arg0) +{ + unkStruct9Sub *temp_r31; + temp_r31 = &lbl_1_bss_F0.unkC[arg0]; if (temp_r31->unk8 != 0) { if (temp_r31->unk6 != 0) { @@ -684,17 +712,18 @@ void fn_1_E228(s16 arg0) { } } -s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { +s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) +{ f32 temp_f31; f32 temp_f30; s32 var_r26; s32 var_r25; s32 var_r24; - unkStruct12* temp_r31; - unkStruct8* temp_r27; - unkStruct8Sub* var_r28; - unkStruct9Sub* temp_r30; - unkStruct11* var_r29; + unkStruct12 *temp_r31; + unkStruct8 *temp_r27; + unkStruct8Sub *var_r28; + unkStruct9Sub *temp_r30; + unkStruct11 *var_r29; if (arg0 == 0) { return 0; @@ -708,7 +737,7 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { temp_r27->unk34[arg1] = var_r24; temp_r30 = &lbl_1_bss_F0.unkC[var_r24]; var_r28 = temp_r27->unk3C; - + for (var_r26 = 0; var_r26 < temp_r27->unk2; var_r26++, var_r28++) { if (arg1 == 0) { if (var_r28->unk40) { @@ -717,7 +746,7 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { temp_f30 = temp_r30->unk50; temp_f31 = temp_r30->unk4E; var_r29 = var_r28->unk40 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, MEMORY_DEFAULT_NUM); - + for (var_r25 = 0; var_r25 < 1; var_r29++, var_r25++) { var_r29->unk0.x = (-0.5f * temp_f31); var_r29->unk0.y = (0.5f * temp_f30); @@ -757,15 +786,17 @@ s32 fn_1_E2A8(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { return 1; } -s32 fn_1_E7C8(s16 arg0, u8 arg1, u32 arg2) { +s32 fn_1_E7C8(s16 arg0, u8 arg1, u32 arg2) +{ s32 var_r31; - + var_r31 = fn_1_E2A8(arg0, arg1, arg2, 0, 0); return var_r31; } -void fn_1_E818(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r31; +void fn_1_E818(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -775,9 +806,10 @@ void fn_1_E818(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_E85C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r30; - unkStruct8Sub* temp_r31; +void fn_1_E85C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r30; + unkStruct8Sub *temp_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; @@ -790,15 +822,16 @@ void fn_1_E85C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_E8CC(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_E8CC(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk0.x = arg8; var_r31->unk0.y = arg9; @@ -807,8 +840,9 @@ void fn_1_E8CC(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_E940(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r31; +void fn_1_E940(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -818,9 +852,10 @@ void fn_1_E940(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_E99C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r30; - unkStruct8Sub* temp_r31; +void fn_1_E99C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r30; + unkStruct8Sub *temp_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; @@ -833,15 +868,16 @@ void fn_1_E99C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EA24(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_EA24(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk0.x += arg8; var_r31->unk0.y += arg9; @@ -850,8 +886,9 @@ void fn_1_EA24(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EAB0(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r31; +void fn_1_EAB0(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -861,9 +898,10 @@ void fn_1_EAB0(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EAF4(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r30; - unkStruct8Sub* temp_r31; +void fn_1_EAF4(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r30; + unkStruct8Sub *temp_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; @@ -876,15 +914,16 @@ void fn_1_EAF4(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EB64(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_EB64(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unkC.x = arg8; var_r31->unkC.y = arg9; @@ -893,8 +932,9 @@ void fn_1_EB64(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EBD8(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r31; +void fn_1_EBD8(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -904,9 +944,10 @@ void fn_1_EBD8(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EC1C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkStruct8* temp_r30; - unkStruct8Sub* temp_r31; +void fn_1_EC1C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkStruct8 *temp_r30; + unkStruct8Sub *temp_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; @@ -919,15 +960,16 @@ void fn_1_EC1C(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_EC8C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_EC8C(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk18.x = arg8; var_r31->unk18.y = arg9; @@ -936,8 +978,9 @@ void fn_1_EC8C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_ED00(s16 arg0, s32 arg1) { - unkStruct8* temp_r31; +void fn_1_ED00(s16 arg0, s32 arg1) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -945,9 +988,10 @@ void fn_1_ED00(s16 arg0, s32 arg1) { } } -void fn_1_ED44(s16 arg0, s16 arg1, s32 arg2) { - unkStruct8* temp_r31; - unkStruct8Sub* temp_r30; +void fn_1_ED44(s16 arg0, s16 arg1, s32 arg2) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *temp_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -958,23 +1002,25 @@ void fn_1_ED44(s16 arg0, s16 arg1, s32 arg2) { } } -void fn_1_EDB4(s16 arg0, s32 arg1) { +void fn_1_EDB4(s16 arg0, s32 arg1) +{ s32 var_r30; - unkStruct8* temp_r31; - unkStruct8Sub* temp_r29; + unkStruct8 *temp_r31; + unkStruct8Sub *temp_r29; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; temp_r29 = temp_r31->unk3C; - + for (var_r30 = 0; var_r30 < temp_r31->unk2; var_r30++) { temp_r29->unk34 |= arg1; } } } -void fn_1_EE24(s16 arg0, u32 arg1) { - unkStruct8* temp_r31; +void fn_1_EE24(s16 arg0, u32 arg1) +{ + unkStruct8 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -982,9 +1028,10 @@ void fn_1_EE24(s16 arg0, u32 arg1) { } } -void fn_1_EE68(s16 arg0, s16 arg1, u32 arg2) { - unkStruct8* temp_r31; - unkStruct8Sub* temp_r30; +void fn_1_EE68(s16 arg0, s16 arg1, u32 arg2) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *temp_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -995,23 +1042,25 @@ void fn_1_EE68(s16 arg0, s16 arg1, u32 arg2) { } } -void fn_1_EED8(s16 arg0, u32 arg1) { +void fn_1_EED8(s16 arg0, u32 arg1) +{ s32 var_r30; - unkStruct8* temp_r31; - unkStruct8Sub* temp_r29; + unkStruct8 *temp_r31; + unkStruct8Sub *temp_r29; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; temp_r29 = temp_r31->unk3C; - + for (var_r30 = 0; var_r30 < temp_r31->unk2; var_r30++) { temp_r29->unk34 &= ~arg1; } } } -s32 fn_1_EF48(s16 arg0, s32 arg1) { - unkStruct8* var_r31; +s32 fn_1_EF48(s16 arg0, s32 arg1) +{ + unkStruct8 *var_r31; if (arg0 == 0) { return 0; @@ -1024,26 +1073,31 @@ s32 fn_1_EF48(s16 arg0, s32 arg1) { return 0; } -s32 fn_1_EFA4(s16 arg0, s16 arg1, s32 arg2) { - unkStruct8Sub* var_r30; - unkStruct8* temp_r31; +s32 fn_1_EFA4(s16 arg0, s16 arg1, s32 arg2) +{ + unkStruct8Sub *var_r30; + unkStruct8 *temp_r31; + + if (arg0 == 0) + return; - if (arg0 == 0) return; - temp_r31 = &lbl_1_bss_F0.unk10[arg0]; - if (temp_r31->unk2 <= arg1) return; - + if (temp_r31->unk2 <= arg1) + return; + var_r30 = &temp_r31->unk3C[arg1]; if ((var_r30->unk34 & arg2) != 0) { return 1; - } else { + } + else { return 0; } } -void fn_1_F024(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) { - unkStruct8* temp_r30; - unkStruct8Sub* temp_r31; +void fn_1_F024(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) +{ + unkStruct8 *temp_r30; + unkStruct8Sub *temp_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; @@ -1057,15 +1111,16 @@ void fn_1_F024(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) { } } -void fn_1_F098(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) { +void fn_1_F098(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) +{ s32 var_r29; - unkStruct8* temp_r30; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r30; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r30 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk50.r = arg1; var_r31->unk50.g = arg2; @@ -1075,9 +1130,10 @@ void fn_1_F098(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) { } } -void fn_1_F110(s16 arg0, s16 arg1, u8 arg2) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F110(s16 arg0, s16 arg1, u8 arg2) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1088,9 +1144,10 @@ void fn_1_F110(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_F17C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F17C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1101,17 +1158,18 @@ void fn_1_F17C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { } } -void fn_1_F1F4(s16 arg0, u8 arg1) { +void fn_1_F1F4(s16 arg0, u8 arg1) +{ s32 var_r28; s32 var_r30; - unkStruct8* temp_r29; - unkStruct8Sub* var_r31; + unkStruct8 *temp_r29; + unkStruct8Sub *var_r31; if (arg0 != 0) { temp_r29 = &lbl_1_bss_F0.unk10[arg0]; var_r31 = (unkStruct8Sub *)(&temp_r29->unk3C); //! BAD WHY (void)temp_r29; - + for (var_r28 = 0; var_r28 < temp_r29->unk2; var_r28++, var_r31++) { for (var_r30 = 0; var_r30 < var_r31->unk32; var_r30++) { var_r31->unk54[var_r30].unk8 = arg1; @@ -1120,9 +1178,10 @@ void fn_1_F1F4(s16 arg0, u8 arg1) { } } -void fn_1_F28C(s16 arg0, s16 arg1, f32 arg8) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F28C(s16 arg0, s16 arg1, f32 arg8) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1133,9 +1192,10 @@ void fn_1_F28C(s16 arg0, s16 arg1, f32 arg8) { } } -void fn_1_F2F8(s16 arg0, s16 arg1, u8 arg2, f32 arg8) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F2F8(s16 arg0, s16 arg1, u8 arg2, f32 arg8) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1146,16 +1206,17 @@ void fn_1_F2F8(s16 arg0, s16 arg1, u8 arg2, f32 arg8) { } } -void fn_1_F370(s16 arg0, f32 arg8) { - unkStruct8* temp_r31; +void fn_1_F370(s16 arg0, f32 arg8) +{ + unkStruct8 *temp_r31; s32 var_r29; s32 var_r30; - unkStruct8Sub* volatile sp8; + unkStruct8Sub *volatile sp8; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; sp8 = &temp_r31->unk3C[0]; - + for (var_r29 = 0; var_r29 < temp_r31->unk2; var_r29++) { for (var_r30 = 0; var_r30 < sp8->unk32; var_r30++) { sp8->unk54[var_r30].unkC = arg8; @@ -1164,9 +1225,10 @@ void fn_1_F370(s16 arg0, f32 arg8) { } } -void fn_1_F408(s16 arg0, s16 arg1, u8 arg2) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F408(s16 arg0, s16 arg1, u8 arg2) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1177,9 +1239,10 @@ void fn_1_F408(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_F478(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { - unkStruct8* temp_r31; - unkStruct8Sub* var_r30; +void fn_1_F478(s16 arg0, s16 arg1, u8 arg2, u8 arg3) +{ + unkStruct8 *temp_r31; + unkStruct8Sub *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_F0.unk10[arg0]; @@ -1190,10 +1253,11 @@ void fn_1_F478(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { } } -void fn_1_F4F0(s16 arg0, u8 arg1) { - unkStruct8Sub* volatile sp8; +void fn_1_F4F0(s16 arg0, u8 arg1) +{ + unkStruct8Sub *volatile sp8; s32 var_r29; - unkStruct8* temp_r31; + unkStruct8 *temp_r31; s32 var_r30; if (arg0 != 0) { diff --git a/src/REL/m409Dll/main.c b/src/REL/m409Dll/main.c index a1ee937d..70955a13 100644 --- a/src/REL/m409Dll/main.c +++ b/src/REL/m409Dll/main.c @@ -1416,9 +1416,9 @@ void fn_1_602C(ModelData *arg0, f32 (*arg1)[4]) } else { fn_1_6778(&temp_r30->unk2C, &sp38, &var_r29->unk34, 4); - PSMTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk30); - PSMTXConcat(sp128, spC8, sp98); - PSMTXMultVecArray(sp98, &sp38, &sp8, 4); + MTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk30); + MTXConcat(sp128, spC8, sp98); + MTXMultVecArray(sp98, &sp38, &sp8, 4); VECAdd(&sp8, &var_r29->unk40, var_r31++); VECAdd(&sp14, &var_r29->unk40, var_r31++); VECAdd(&sp20, &var_r29->unk40, var_r31++); diff --git a/src/REL/m410Dll/game.c b/src/REL/m410Dll/game.c index 303236d5..5d9671c5 100644 --- a/src/REL/m410Dll/game.c +++ b/src/REL/m410Dll/game.c @@ -956,9 +956,9 @@ void fn_1_6968(omObjData *object) sp8.z = -var_r31->unk_1C.x; var_f30 = VECMag(&sp8) / 30.000002f; if (var_f30 >= 0.001f) { - PSMTXRotAxisRad(sp14, &sp8, var_f30); + MTXRotAxisRad(sp14, &sp8, var_f30); var_r28 = &Hu3DData[object->model[var_r30]]; - PSMTXConcat(sp14, var_r28->unk_F0, var_r28->unk_F0); + MTXConcat(sp14, var_r28->unk_F0, var_r28->unk_F0); } } } @@ -1238,8 +1238,8 @@ s32 fn_1_79F8(s16 arg0, char *arg1, Mtx arg2) var_r30 = var_r31->hsfData; lbl_1_bss_30 = 0; mtxRot(sp14, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - PSMTXScale(sp44, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); - PSMTXConcat(sp14, sp44, sp44); + MTXScale(sp44, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(sp14, sp44, sp44); mtxTransCat(sp44, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); fn_1_7AC4(var_r30->root, sp44, arg1, arg2); return lbl_1_bss_30; @@ -1274,12 +1274,12 @@ void fn_1_7AC4(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) var_r31 = &arg0->data.curr; mtxRot(sp12C, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - PSMTXScale(sp15C, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); - PSMTXConcat(sp12C, sp15C, sp15C); + MTXScale(sp15C, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(sp12C, sp15C, sp15C); mtxTransCat(sp15C, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); - PSMTXConcat(arg1, sp15C, sp15C); + MTXConcat(arg1, sp15C, sp15C); if (!strcmp(arg2, arg0->name)) { - PSMTXCopy(sp15C, arg3); + MTXCopy(sp15C, arg3); lbl_1_bss_30 = 1; } @@ -1288,12 +1288,12 @@ void fn_1_7AC4(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) if (!lbl_1_bss_30) { var_r30 = &var_r27->data.curr; mtxRot(spFC, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); - PSMTXScale(spCC, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); - PSMTXConcat(spFC, spCC, spCC); + MTXScale(spCC, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); + MTXConcat(spFC, spCC, spCC); mtxTransCat(spCC, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); - PSMTXConcat(sp15C, spCC, spCC); + MTXConcat(sp15C, spCC, spCC); if (!strcmp(arg2, var_r27->name)) { - PSMTXCopy(spCC, arg3); + MTXCopy(spCC, arg3); lbl_1_bss_30 = 1; } for (var_r22 = 0; var_r22 < var_r27->data.childrenCount; var_r22++) { @@ -1301,12 +1301,12 @@ void fn_1_7AC4(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) if (!lbl_1_bss_30) { var_r29 = &var_r26->data.curr; mtxRot(sp9C, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z); - PSMTXScale(sp6C, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z); - PSMTXConcat(sp9C, sp6C, sp6C); + MTXScale(sp6C, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z); + MTXConcat(sp9C, sp6C, sp6C); mtxTransCat(sp6C, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); - PSMTXConcat(spCC, sp6C, sp6C); + MTXConcat(spCC, sp6C, sp6C); if (!strcmp(arg2, var_r26->name)) { - PSMTXCopy(sp6C, arg3); + MTXCopy(sp6C, arg3); lbl_1_bss_30 = 1; } @@ -1315,12 +1315,12 @@ void fn_1_7AC4(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) if (!lbl_1_bss_30) { var_r28 = &var_r25->data.curr; mtxRot(sp3C, var_r28->rot.x, var_r28->rot.y, var_r28->rot.z); - PSMTXScale(spC, var_r28->scale.x, var_r28->scale.y, var_r28->scale.z); - PSMTXConcat(sp3C, spC, spC); + MTXScale(spC, var_r28->scale.x, var_r28->scale.y, var_r28->scale.z); + MTXConcat(sp3C, spC, spC); mtxTransCat(spC, var_r28->pos.x, var_r28->pos.y, var_r28->pos.z); - PSMTXConcat(sp6C, spC, spC); + MTXConcat(sp6C, spC, spC); if (!strcmp(arg2, var_r25->name)) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); lbl_1_bss_30 = 1; } diff --git a/src/REL/m410Dll/main.c b/src/REL/m410Dll/main.c index 42506076..e6855848 100644 --- a/src/REL/m410Dll/main.c +++ b/src/REL/m410Dll/main.c @@ -93,7 +93,7 @@ void ObjectSetup(void) sp8.x = sp8.z = 0.0f; sp8.y = lbl_1_data_18.z; mtxRot(sp20, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); - PSMTXMultVec(sp20, &sp8, &sp8); + MTXMultVec(sp20, &sp8, &sp8); Hu3DGLightPosAimSetV(lbl_1_bss_16, &sp8, &sp14); Hu3DShadowPosSet(&sp8, &lbl_1_data_34, &sp14); lbl_1_bss_14 = lbl_1_bss_12 = lbl_1_bss_10 = -1; diff --git a/src/REL/m410Dll/player.c b/src/REL/m410Dll/player.c index 133a5762..d4566bca 100644 --- a/src/REL/m410Dll/player.c +++ b/src/REL/m410Dll/player.c @@ -1075,8 +1075,8 @@ void fn_1_B140(ModelData *arg0, Mtx arg1) DCStoreRange(&sp10, 4); DCStoreRange(&lbl_1_data_294, 32); - PSMTXTrans(spF4, -400.0f, 400.0f, -700.0f); - PSMTXConcat(Hu3DCameraMtx, spF4, sp64); + MTXTrans(spF4, -400.0f, 400.0f, -700.0f); + MTXConcat(Hu3DCameraMtx, spF4, sp64); GXLoadPosMtxImm(sp64, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -1086,10 +1086,10 @@ void fn_1_B140(ModelData *arg0, Mtx arg1) HuSprTexLoad(lbl_1_bss_70, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); GXSetNumTexGens(2); C_MTXLightPerspective(sp94, 41.5f, 1.2f, 0.5555555f, -0.5f, 0.5555555f, 0.5f); - PSMTXConcat(sp94, Hu3DCameraMtx, sp94); - PSMTXInverse(Hu3DCameraMtx, sp34); - PSMTXConcat(sp34, sp64, sp124); - PSMTXConcat(sp94, sp124, spF4); + MTXConcat(sp94, Hu3DCameraMtx, sp94); + MTXInverse(Hu3DCameraMtx, sp34); + MTXConcat(sp34, sp64, sp124); + MTXConcat(sp94, sp124, spF4); GXLoadTexMtxImm(spF4, 30, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 30, GX_FALSE, 125); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEXCOORD0, 33, GX_FALSE, 125); @@ -1097,7 +1097,7 @@ void fn_1_B140(ModelData *arg0, Mtx arg1) GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); - PSMTXScale(spF4, -0.5f, -0.5f, 0.5f); + MTXScale(spF4, -0.5f, -0.5f, 0.5f); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spF4, -1); GXSetNumTevStages(1); GXSetTevColor(GX_TEVREG1, sp10); @@ -1124,17 +1124,17 @@ void fn_1_B140(ModelData *arg0, Mtx arg1) if (var_r31->unk_00) { lbl_1_data_294[var_r31->unk_02].a = 255.0f * var_r31->unk_0C; GXSetTevColor(GX_TEVREG0, lbl_1_data_294[var_r31->unk_02]); - PSMTXTrans(spF4, var_r31->unk_10.x, var_r31->unk_10.y, var_r31->unk_10.z); - PSMTXRotRad(sp124, 90, 0.017453292f * var_r31->unk_08); - PSMTXConcat(spF4, sp124, spF4); - PSMTXScale(spC4, var_r31->unk_04, var_r31->unk_04, var_r31->unk_04); - PSMTXConcat(spF4, spC4, spF4); - PSMTXConcat(Hu3DCameraMtx, spF4, sp64); + MTXTrans(spF4, var_r31->unk_10.x, var_r31->unk_10.y, var_r31->unk_10.z); + MTXRotRad(sp124, 90, 0.017453292f * var_r31->unk_08); + MTXConcat(spF4, sp124, spF4); + MTXScale(spC4, var_r31->unk_04, var_r31->unk_04, var_r31->unk_04); + MTXConcat(spF4, spC4, spF4); + MTXConcat(Hu3DCameraMtx, spF4, sp64); GXLoadPosMtxImm(sp64, 0); - PSMTXConcat(sp34, sp64, sp124); - PSMTXConcat(sp94, sp124, spF4); + MTXConcat(sp34, sp64, sp124); + MTXConcat(sp94, sp124, spF4); GXLoadTexMtxImm(spF4, 30, GX_MTX3x4); - PSMTXRotRad(sp124, 90, 0.017453292f * -var_r31->unk_08); + MTXRotRad(sp124, 90, 0.017453292f * -var_r31->unk_08); GXLoadTexMtxImm(sp124, 33, GX_MTX2x4); GXCallDisplayList(var_r30->unk_120.unk_E5C, var_r30->unk_120.unk_E58); } diff --git a/src/REL/m415Dll/main.c b/src/REL/m415Dll/main.c index 971724b5..2053aed7 100644 --- a/src/REL/m415Dll/main.c +++ b/src/REL/m415Dll/main.c @@ -513,8 +513,8 @@ void fn_1_1A60(unkStruct3 *arg0) for (var_r31 = -1; var_r31 < 2; var_r31 += 2) { for (var_r29 = -1; var_r29 < 2; var_r29 += 2) { MTXRotDeg(sp118, 0x59, temp_f30); - PSMTXTrans(spE8, (var_r30 * var_r31), 0.0f, (var_r30 * var_r29)); - PSMTXConcat(sp118, spE8, spE8); + MTXTrans(spE8, (var_r30 * var_r31), 0.0f, (var_r30 * var_r29)); + MTXConcat(sp118, spE8, spE8); if ((spB8[0].y > spE8[2][3]) || ((spB8[0].y == spE8[2][3]) && (spB8[0].x > spE8[0][3]))) { spB8[0].x = spE8[0][3]; spB8[0].y = spE8[2][3]; @@ -1604,15 +1604,15 @@ void fn_1_6958(Mtx arg0, f32 arg8, f32 arg9, f32 argA) MTXRotDeg(arg0, 0x5A, argA); } else { - PSMTXIdentity(arg0); + MTXIdentity(arg0); } if (arg8 != 0.0f) { MTXRotDeg(sp38, 0x58, arg8); - PSMTXConcat(sp38, arg0, arg0); + MTXConcat(sp38, arg0, arg0); } if (arg9 != 0.0f) { MTXRotDeg(sp8, 0x59, arg9); - PSMTXConcat(sp8, arg0, arg0); + MTXConcat(sp8, arg0, arg0); } } diff --git a/src/REL/m415Dll/map.c b/src/REL/m415Dll/map.c index 31636233..6533a2dc 100644 --- a/src/REL/m415Dll/map.c +++ b/src/REL/m415Dll/map.c @@ -4,10 +4,11 @@ #include "game/hsfdraw.h" #include "game/sprite.h" -void fn_1_8780(s16 arg0, s16 arg1) { +void fn_1_8780(s16 arg0, s16 arg1) +{ s32 var_r31; - unkSubStruct2* var_r29; - unkSubStruct3* var_r30; + unkSubStruct2 *var_r29; + unkSubStruct3 *var_r30; lbl_1_bss_36C.unk34 = Hu3DHookFuncCreate(fn_1_95C0); Hu3DModelLayerSet(lbl_1_bss_36C.unk34, 6); @@ -15,11 +16,11 @@ void fn_1_8780(s16 arg0, s16 arg1) { lbl_1_bss_36C.unk40 = var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(unkSubStruct2), MEMORY_DEFAULT_NUM); lbl_1_bss_36C.unk32 = arg1; lbl_1_bss_36C.unk3C = var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkSubStruct3), MEMORY_DEFAULT_NUM); - + for (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) { var_r29->unk8 = 0; } - + for (var_r31 = 0; var_r31 < arg1; var_r31++, var_r30++) { var_r30->unk6 = 0; var_r30->unk8 = 0; @@ -27,7 +28,8 @@ void fn_1_8780(s16 arg0, s16 arg1) { lbl_1_bss_36C.unk36 = lbl_1_bss_36C.unk38 = lbl_1_bss_36C.unk3A = 0; } -void fn_1_88B8(unkSubStruct2* arg0) { +void fn_1_88B8(unkSubStruct2 *arg0) +{ ModelData sp120; Mtx spF0; Mtx spC0; @@ -46,8 +48,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { s32 var_r21; s32 var_r20; s32 var_r19; - unkSubStruct3* temp_r26; - unkSubStruct* var_r31; + unkSubStruct3 *temp_r26; + unkSubStruct *var_r31; mtxRot(sp60, arg0->unk18.x, arg0->unk18.y, arg0->unk18.z); MTXScale(sp90, arg0->unk24.x, arg0->unk24.y, arg0->unk24.z); @@ -57,7 +59,7 @@ void fn_1_88B8(unkSubStruct2* arg0) { var_r29 = 0; var_r28 = 0; sp8 = 0; - + for (var_r27 = GX_TEXMAP0; var_r27 < arg0->unk4; var_r27++) { if (arg0->unk34[var_r27] != 0) { temp_r26 = &lbl_1_bss_36C.unk3C[arg0->unk34[var_r27]]; @@ -73,11 +75,13 @@ void fn_1_88B8(unkSubStruct2* arg0) { if ((temp_r26->unk0->bmp->dataFmt == 7) || (temp_r26->unk0->bmp->dataFmt == 8)) { GXSetTevColor(GX_TEVREG2, temp_r26->unk48); GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_C2, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); - } else { + } + else { sp2C.a = temp_r26->unk48.a; GXSetTevColor(GX_TEVREG2, sp2C); GXSetTevColorIn(var_r29, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); @@ -141,7 +145,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { if (var_r27 == GX_TEXMAP0) { GXSetTevColorIn(var_r29, GX_CC_ONE, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ZERO); GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); - } else { + } + else { GXSetTevColorIn(var_r29, GX_CC_CPREV, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ZERO); GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); } @@ -153,7 +158,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { var_r28++; if (temp_r26->unk4D != 0) { HuSprTexLoad(temp_r26->unk0, 0, var_r27, 1, 1, 1); - } else { + } + else { HuSprTexLoad(temp_r26->unk0, 0, var_r27, 0, 0, 1); } } @@ -161,7 +167,7 @@ void fn_1_88B8(unkSubStruct2* arg0) { GXSetNumTevStages((s16)var_r29); GXSetNumTexGens((s16)var_r28); var_r31 = arg0->unk3C; - + for (var_r24 = 0; var_r24 < arg0->unk2; var_r24++, var_r31++) { if ((var_r31->unk34 != 0) && ((var_r31->unk34 & 4) == 0)) { switch (var_r31->unk30) { @@ -169,7 +175,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { mtxRot(sp60, var_r31->unkC.x, var_r31->unkC.y, var_r31->unkC.z); if (var_r31->unk31 == 2) { MTXConcat(lbl_1_bss_36C.unk0, sp60, sp60); - } else if (var_r31->unk31 == 1) { + } + else if (var_r31->unk31 == 1) { MTXRotDeg(sp90, 0x59, CRot.y); MTXConcat(sp90, sp60, sp60); } @@ -185,7 +192,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { MTXIdentity(sp90); } MTXConcat(sp90, sp60, sp60); - } else if (var_r31->unk31 == 1) { + } + else if (var_r31->unk31 == 1) { MTXRotDeg(sp90, 0x59, CRot.y); MTXConcat(sp90, sp60, sp60); } @@ -206,7 +214,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); if ((var_r31->unk34 & 0x10) != 0) { GXSetZMode(0, GX_LEQUAL, 1); - } else { + } + else { GXSetZMode(1, GX_LEQUAL, 0); } sp120.attr = 0; @@ -214,7 +223,8 @@ void fn_1_88B8(unkSubStruct2* arg0) { GXSetNumChans(1); if ((var_r31->unk34 & 8) != 0) { var_r25 = GX_SRC_VTX; - } else { + } + else { var_r25 = GX_SRC_REG; } switch (var_r31->unk32) { @@ -235,7 +245,7 @@ void fn_1_88B8(unkSubStruct2* arg0) { GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); GXSetArray(GX_VA_CLR0, var_r31->unk44, 4); - + for (var_r27 = 0; var_r27 < var_r31->unk33; var_r27++) { GXSetVtxDesc(var_r27 + GX_VA_TEX0, GX_INDEX16); GXSetVtxAttrFmt(GX_VTXFMT0, var_r27 + GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); @@ -249,52 +259,59 @@ void fn_1_88B8(unkSubStruct2* arg0) { } } -void fn_1_95C0(ModelData* arg0, Mtx arg1) { +void fn_1_95C0(ModelData *arg0, Mtx arg1) +{ Mtx sp38; Mtx sp8; s32 var_r30; - unkSubStruct2* var_r31; + unkSubStruct2 *var_r31; var_r31 = lbl_1_bss_36C.unk40; GXLoadPosMtxImm(arg1, 0); - PSMTXInverse(arg1, sp38); - PSMTXTranspose(sp38, sp8); + MTXInverse(arg1, sp38); + MTXTranspose(sp38, sp8); GXLoadNrmMtxImm(sp8, 0); HmfInverseMtxF3X3(Hu3DCameraMtx, lbl_1_bss_36C.unk0); - + for (var_r30 = 0; var_r30 < lbl_1_bss_36C.unk30; var_r30++, var_r31++) { if ((var_r31->unk8 != 0) && ((var_r31->unk8 & 2) != 0) && ((var_r31->unk8 & 4) == 0)) { if ((u8)omPauseChk() == 0) { if (var_r31->unk30) { var_r31->unk30(var_r31); } - if (var_r31->unk8 == 0) continue; + if (var_r31->unk8 == 0) + continue; fn_1_9DC8(var_r31); - if (var_r31->unk8 == 0) continue; + if (var_r31->unk8 == 0) + continue; } fn_1_88B8(var_r31); } } } -unkSubStruct2* fn_1_96EC(s16 arg0) { +unkSubStruct2 *fn_1_96EC(s16 arg0) +{ return &lbl_1_bss_36C.unk40[arg0]; } -unkSubStruct* fn_1_9708(s16 arg0, s16 arg1) { +unkSubStruct *fn_1_9708(s16 arg0, s16 arg1) +{ return &lbl_1_bss_36C.unk40[arg0].unk3C[arg1]; } -AnimData** fn_1_9734(s16 arg0) { +AnimData **fn_1_9734(s16 arg0) +{ return &lbl_1_bss_36C.unk3C[arg0].unk0; } -void fn_1_9750(unkStruct6** arg0, s16 arg1, f32 arg8, f32 arg9) { +void fn_1_9750(unkStruct6 **arg0, s16 arg1, f32 arg8, f32 arg9) +{ s32 var_r30; - unkStruct6* var_r31; - + unkStruct6 *var_r31; + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(unkStruct6), MEMORY_DEFAULT_NUM); - + for (var_r30 = 0; var_r30 < arg1; var_r31++, var_r30++) { var_r31->unk0.x = (-0.5f * arg8); var_r31->unk0.y = (0.5f * arg9); @@ -311,13 +328,14 @@ void fn_1_9750(unkStruct6** arg0, s16 arg1, f32 arg8, f32 arg9) { } } -void fn_1_98D4(Vec** arg0, s16 arg1, Vec* arg2) { +void fn_1_98D4(Vec **arg0, s16 arg1, Vec *arg2) +{ s32 var_r29; s32 var_r28; - Vec* var_r31; + Vec *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec[4]), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { var_r31->x = arg2->x; @@ -327,13 +345,14 @@ void fn_1_98D4(Vec** arg0, s16 arg1, Vec* arg2) { } } -void fn_1_9974(GXColor** arg0, s16 arg1, GXColor* arg2) { +void fn_1_9974(GXColor **arg0, s16 arg1, GXColor *arg2) +{ s32 var_r29; s32 var_r28; - GXColor* var_r31; + GXColor *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(GXColor[4]), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r29++) { for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { var_r31->r = arg2->r; @@ -344,12 +363,13 @@ void fn_1_9974(GXColor** arg0, s16 arg1, GXColor* arg2) { } } -void fn_1_9A1C(Vec** arg0, s16 arg1, Vec* arg2) { +void fn_1_9A1C(Vec **arg0, s16 arg1, Vec *arg2) +{ s32 var_r29; - Vec* var_r31; + Vec *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), MEMORY_DEFAULT_NUM); - + for (var_r29 = 0; var_r29 < arg1; var_r31++, arg2++, var_r29++) { var_r31->x = arg2->x; var_r31->y = arg2->y; @@ -357,10 +377,11 @@ void fn_1_9A1C(Vec** arg0, s16 arg1, Vec* arg2) { } } -void fn_1_9AA8(HsfVector2f** arg0, s16 arg1, HsfVector2f* arg2) { +void fn_1_9AA8(HsfVector2f **arg0, s16 arg1, HsfVector2f *arg2) +{ s32 var_r28; s32 var_r29; - HsfVector2f* var_r31; + HsfVector2f *var_r31; var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(HsfVector2f[4]), MEMORY_DEFAULT_NUM); @@ -372,29 +393,20 @@ void fn_1_9AA8(HsfVector2f** arg0, s16 arg1, HsfVector2f* arg2) { } } -void fn_1_9B40(unkSubStruct* arg0) { - void* sp8; +void fn_1_9B40(unkSubStruct *arg0) +{ + void *sp8; s32 var_r29; s32 var_r31; - void* temp_r28; + void *temp_r28; + + Vec sp1C[4] = { { -50.0f, 50.0f, 0.0f }, { 50.0f, 50.0f, 0.0f }, { 50.0f, -50.0f, 0.0f }, { -50.0f, -50.0f, 0.0f } }; + GXColor spC[4] = { { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF } }; - Vec sp1C[4] = { - { -50.0f, 50.0f, 0.0f }, - { 50.0f, 50.0f, 0.0f }, - { 50.0f, -50.0f, 0.0f }, - { -50.0f, -50.0f, 0.0f } - }; - GXColor spC[4] = { - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF } - }; - for (var_r31 = 0; var_r31 < 4; var_r31++) { arg0->unk40[var_r31] = sp1C[var_r31]; } - + for (var_r31 = 0; var_r31 < 4; var_r31++) { arg0->unk44[var_r31] = spC[var_r31]; } @@ -405,7 +417,7 @@ void fn_1_9B40(unkSubStruct* arg0) { sp8 = temp_r28; GXBeginDisplayList(temp_r28, 0x100U); GXBegin(GX_QUADS, GX_VTXFMT0, 4); - + for (var_r31 = 0; var_r31 < 4; var_r31++) { GXPosition1x16(var_r31); GXNormal1x16(0); @@ -417,24 +429,26 @@ void fn_1_9B40(unkSubStruct* arg0) { arg0->unk38 = GXEndDisplayList(); } -void fn_1_9DC8(unkSubStruct2* arg0) { +void fn_1_9DC8(unkSubStruct2 *arg0) +{ s32 temp_r0; s32 var_r25; s32 var_r26; s32 var_r27; - unkSubStruct* var_r28; - unkSubStruct3* temp_r30; - unkSubStruct4* var_r31; + unkSubStruct *var_r28; + unkSubStruct3 *temp_r30; + unkSubStruct4 *var_r31; var_r27 = 0; var_r28 = arg0->unk3C; - + for (var_r25 = 0; var_r25 < arg0->unk2; var_r25++, var_r28++) { if ((var_r28->unk34 & 4) != 0) { var_r27++; - } else { + } + else { var_r31 = var_r28->unk54; - + for (var_r26 = 0; var_r26 < var_r28->unk33; var_r26++, var_r31++) { temp_r30 = &lbl_1_bss_36C.unk3C[arg0->unk34[var_r26]]; var_r31->unk24 &= ~4; @@ -458,30 +472,37 @@ void fn_1_9DC8(unkSubStruct2* arg0) { if ((var_r31->unk24 & 0x10) != 0) { var_r31->unk24 |= 8; var_r31->unk0--; - } else if ((var_r31->unk24 & 0x40) != 0) { + } + else if ((var_r31->unk24 & 0x40) != 0) { var_r31->unk24 = (var_r31->unk24 & 0xF0) | 2; var_r31->unk0 -= 2; - } else if ((var_r31->unk24 & 0x20) != 0) { + } + else if ((var_r31->unk24 & 0x20) != 0) { var_r31->unk0 = 0; } var_r31->unk24 |= 4; - } else if (var_r31->unk0 < 0) { + } + else if (var_r31->unk0 < 0) { if ((var_r31->unk24 & 0x10) != 0) { var_r31->unk24 |= 8; var_r31->unk0 = 0; - } else if ((var_r31->unk24 & 0x20) != 0) { + } + else if ((var_r31->unk24 & 0x20) != 0) { if ((var_r31->unk24 & 0x40) != 0) { var_r31->unk24 = (var_r31->unk24 & 0xF0) | 1; var_r31->unk0 = 1; - } else { + } + else { var_r31->unk0 = temp_r30->unk4C - 1; } - } else if ((var_r31->unk24 & 0x40) != 0) { + } + else if ((var_r31->unk24 & 0x40) != 0) { var_r31->unk24 |= 8; var_r31->unk0 = 0; } var_r31->unk24 |= 4; - } else { + } + else { var_r31->unk24 &= ~8; } if (var_r31->unk0 != var_r31->unk1) { @@ -501,11 +522,13 @@ void fn_1_9DC8(unkSubStruct2* arg0) { if ((var_r31->unk24 & 0x40) == 0) { if (var_r31->unk0 <= 0) { var_r31->unk0 = temp_r30->unk4C; - } else { + } + else { var_r31->unk0 = 0; } } - } else if ((var_r28->unk34 & 0x80000000) != 0) { + } + else if ((var_r28->unk34 & 0x80000000) != 0) { fn_1_A800(arg0->unk0); } var_r27++; @@ -524,15 +547,16 @@ void fn_1_9DC8(unkSubStruct2* arg0) { } } -s16 fn_1_A2D0(u8 arg0, u8 arg1) { +s16 fn_1_A2D0(u8 arg0, u8 arg1) +{ s32 var_r29; s32 var_r28; - unkSubStruct* var_r30; - unkSubStruct2* var_r31; - void* temp_r25; + unkSubStruct *var_r30; + unkSubStruct2 *var_r31; + void *temp_r25; var_r31 = lbl_1_bss_36C.unk40 + 1; - + for (var_r29 = 1; var_r29 < lbl_1_bss_36C.unk30; var_r29++, var_r31++) { if (var_r31->unk8 == 0) { break; @@ -562,7 +586,7 @@ s16 fn_1_A2D0(u8 arg0, u8 arg1) { var_r31->unk70.x = var_r31->unk70.y = var_r31->unk70.z = 0.0f; var_r31->unk64.x = var_r31->unk64.y = var_r31->unk64.z = 0.0f; var_r31->unk60 = 0; - + for (var_r29 = 0; var_r29 < 0x20; var_r29++) { var_r31->unk7C[var_r29] = 0; } @@ -575,8 +599,7 @@ s16 fn_1_A2D0(u8 arg0, u8 arg1) { var_r30->unk30 = 0; var_r30->unk31 = 2; var_r30->unk32 = 0; - - + var_r30->unk4C.r = var_r30->unk4C.g = var_r30->unk4C.b = 0; var_r30->unk4C.a = 0xFF; var_r30->unk50.r = var_r30->unk50.g = var_r30->unk50.b = 0xFF; @@ -587,14 +610,14 @@ s16 fn_1_A2D0(u8 arg0, u8 arg1) { var_r30->unk54[var_r28].unk28 = 1.0f; var_r30->unk54[var_r28].unk2C = 0.0f; } - + var_r30->unk0.x = var_r30->unk0.y = var_r30->unk0.z = 0.0f; var_r30->unkC.x = var_r30->unkC.y = var_r30->unkC.z = 0.0f; var_r30->unk18.x = var_r30->unk18.y = var_r30->unk18.z = 1.0f; var_r30->unk68.x = var_r30->unk68.y = var_r30->unk68.z = 0.0f; var_r30->unk5C.x = var_r30->unk5C.y = var_r30->unk5C.z = 0.0f; var_r30->unk58 = 0; - + for (var_r28 = 0; var_r28 < 0x10; var_r28++) { var_r30->unk74[var_r28] = 0; } @@ -615,7 +638,7 @@ s16 fn_1_A2D0(u8 arg0, u8 arg1) { DCFlushRangeNoSync(var_r31->unk4C, var_r31->unk48); var_r30 = var_r31->unk3C; var_r31->unk48 = 0; - + for (var_r29 = 0; var_r29 < arg0; var_r29++, var_r30++) { var_r30->unk3C = var_r31->unk4C + var_r31->unk48; var_r31->unk48 += var_r30->unk38; @@ -626,9 +649,10 @@ s16 fn_1_A2D0(u8 arg0, u8 arg1) { return var_r31->unk0; } -void fn_1_A800(s16 arg0) { +void fn_1_A800(s16 arg0) +{ s32 var_r30; - unkSubStruct2* temp_r31; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -648,7 +672,7 @@ void fn_1_A800(s16 arg0) { if (temp_r31->unk5C != NULL) { HuMemDirectFree(temp_r31->unk5C); } - + for (var_r30 = 0; var_r30 < temp_r31->unk4; var_r30++) { fn_1_AF48(temp_r31->unk34[var_r30]); } @@ -659,23 +683,25 @@ void fn_1_A800(s16 arg0) { } } -void fn_1_A920(s16 arg0, s16 arg1, u8 arg2) { +void fn_1_A920(s16 arg0, s16 arg1, u8 arg2) +{ lbl_1_bss_36C.unk36 = arg0; lbl_1_bss_36C.unk38 = arg1; lbl_1_bss_36C.unk3A = arg2; } -s16 fn_1_A94C(u32 arg0, s16 arg1, s16 arg2) { - AnimData* var_r30; +s16 fn_1_A94C(u32 arg0, s16 arg1, s16 arg2) +{ + AnimData *var_r30; f32 var_f31; f32 var_f30; s32 var_r29; - unkSubStruct3* var_r31; + unkSubStruct3 *var_r31; var_r31 = lbl_1_bss_36C.unk3C + 1; for (var_r29 = 1; var_r29 < lbl_1_bss_36C.unk32; var_r29++, var_r31++) { if ((var_r31->unk6 != 0) && (var_r31->unk8 == arg0)) { - break; + break; } } if (var_r29 < lbl_1_bss_36C.unk32) { @@ -694,16 +720,18 @@ s16 fn_1_A94C(u32 arg0, s16 arg1, s16 arg2) { var_r30 = HuSprAnimMake(arg1, arg2, 2); var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg2 * (arg1 * 2), MEMORY_DEFAULT_NUM); arg1 = arg2 = 0; - } else { + } + else { var_r30 = HuSprAnimRead(HuDataReadNum(arg0, 0x10000000)); } if ((arg1 == 0) || (arg2 == 0)) { arg1 = var_r30->bmp->sizeX; arg2 = var_r30->bmp->sizeY; var_f31 = var_f30 = 1.0f; - } else { - var_f31 = arg1 / (f32) var_r30->bmp->sizeX; - var_f30 = arg2 / (f32) var_r30->bmp->sizeY; + } + else { + var_f31 = arg1 / (f32)var_r30->bmp->sizeX; + var_f30 = arg2 / (f32)var_r30->bmp->sizeY; } var_r31->unk0 = var_r30; var_r31->unk4E = arg1; @@ -723,24 +751,25 @@ s16 fn_1_A94C(u32 arg0, s16 arg1, s16 arg2) { } var_r31->unk48.r = var_r31->unk48.g = var_r31->unk48.b = 0xFF; var_r31->unk48.a = 0xFF; - PSMTXIdentity(var_r31->unk18); + MTXIdentity(var_r31->unk18); var_r31->unkC.x = var_r31->unkC.y = var_r31->unkC.z = 0.0f; return var_r29; } -void fn_1_ACF4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) { +void fn_1_ACF4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) +{ f32 var_f31; f32 var_f30; - AnimData* var_r30; - unkSubStruct3* var_r31; + AnimData *var_r30; + unkSubStruct3 *var_r31; var_r31 = &lbl_1_bss_36C.unk3C[arg0]; HuSprAnimKill(var_r31->unk0); var_r31->unk8 |= 0xFFFF0000; var_r30 = HuSprAnimMake(arg2, arg3, arg1); var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 * (var_r30->bmp->pixSize * arg2), 0x10000000U); - var_f31 = arg4 / (f32) var_r30->bmp->sizeX; - var_f30 = arg5 / (f32) var_r30->bmp->sizeY; + var_f31 = arg4 / (f32)var_r30->bmp->sizeX; + var_f30 = arg5 / (f32)var_r30->bmp->sizeY; var_r31->unk0 = var_r30; var_r31->unk4E = arg2; var_r31->unk50 = arg3; @@ -755,8 +784,9 @@ void fn_1_ACF4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) { var_r31->unk48.a = 0xFF; } -void fn_1_AF48(s16 arg0) { - unkSubStruct3* temp_r31; +void fn_1_AF48(s16 arg0) +{ + unkSubStruct3 *temp_r31; temp_r31 = &lbl_1_bss_36C.unk3C[arg0]; if (temp_r31->unk8 != 0) { @@ -770,7 +800,8 @@ void fn_1_AF48(s16 arg0) { } } -u8 fn_1_AFC8(s16 arg0, u8 arg1, s32 arg2, s16 arg3, s16 arg4) { +u8 fn_1_AFC8(s16 arg0, u8 arg1, s32 arg2, s16 arg3, s16 arg4) +{ s32 temp_r3; temp_r3 = fn_1_A94C(arg2, arg3, arg4); @@ -781,14 +812,16 @@ u8 fn_1_AFC8(s16 arg0, u8 arg1, s32 arg2, s16 arg3, s16 arg4) { return temp_r3; } -u8 fn_1_B038(s16 arg0, u8 arg1, s32 arg2) { +u8 fn_1_B038(s16 arg0, u8 arg1, s32 arg2) +{ u8 var_r31; s32 var_r30; u8 var_r29; if ((var_r30 = fn_1_A94C(arg2, 0, 0)) == 0) { var_r31 = 0; - } else { + } + else { fn_1_B0B8(arg0, arg1, var_r30); var_r31 = var_r30; } @@ -796,12 +829,13 @@ u8 fn_1_B038(s16 arg0, u8 arg1, s32 arg2) { return var_r29; } -s32 fn_1_B0B8(s16 arg0, u8 arg1, s16 arg2) { +s32 fn_1_B0B8(s16 arg0, u8 arg1, s16 arg2) +{ s32 var_r27; - unkSubStruct* var_r29; - unkSubStruct2* temp_r28; - unkSubStruct3* temp_r30; - unkSubStruct4* temp_r31; + unkSubStruct *var_r29; + unkSubStruct2 *temp_r28; + unkSubStruct3 *temp_r30; + unkSubStruct4 *temp_r31; if (arg2 == 0) { return 0; @@ -814,7 +848,7 @@ s32 fn_1_B0B8(s16 arg0, u8 arg1, s16 arg2) { temp_r28->unk34[arg1] = arg2; temp_r30 = &lbl_1_bss_36C.unk3C[arg2]; var_r29 = temp_r28->unk3C; - + for (var_r27 = 0; var_r27 < temp_r28->unk2; var_r27++, var_r29++) { if (arg1 == 0) { var_r29->unk40[0].x = -0.5f * temp_r30->unk4E; @@ -851,13 +885,14 @@ s32 fn_1_B0B8(s16 arg0, u8 arg1, s16 arg2) { return 1; } -void fn_1_B634(s32 arg0) { +void fn_1_B634(s32 arg0) +{ s32 var_r28; s32 var_r27; s16 var_r26; - unkSubStruct2* temp_r31; - unkSubStruct3* temp_r30; - unkSubStruct3* temp_r29; + unkSubStruct2 *temp_r31; + unkSubStruct3 *temp_r30; + unkSubStruct3 *temp_r29; for (var_r28 = 1; var_r28 < lbl_1_bss_36C.unk30; var_r28++) { if ((s16)var_r28 != 0) { @@ -878,7 +913,7 @@ void fn_1_B634(s32 arg0) { if (temp_r31->unk5C != NULL) { HuMemDirectFree(temp_r31->unk5C); } - + for (var_r27 = 0; var_r27 < temp_r31->unk4; var_r27++) { var_r26 = temp_r31->unk34[var_r27]; temp_r29 = &lbl_1_bss_36C.unk3C[var_r26]; @@ -898,7 +933,7 @@ void fn_1_B634(s32 arg0) { } } } - + for (var_r28 = 1; var_r28 < lbl_1_bss_36C.unk32; var_r28++) { temp_r30 = &lbl_1_bss_36C.unk3C[(s16)var_r28]; if (temp_r30->unk8 != 0) { @@ -916,8 +951,9 @@ void fn_1_B634(s32 arg0) { Hu3DModelKill(lbl_1_bss_36C.unk34); } -void fn_1_B864(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct2* temp_r31; +void fn_1_B864(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -930,9 +966,10 @@ void fn_1_B864(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_B8D0(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct* temp_r31; - unkSubStruct2* temp_r30; +void fn_1_B8D0(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct *temp_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -945,10 +982,11 @@ void fn_1_B8D0(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_B940(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_B940(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkSubStruct* var_r31; - unkSubStruct2* temp_r30; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -961,8 +999,9 @@ void fn_1_B940(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_B9B4(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct2* temp_r31; +void fn_1_B9B4(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -975,9 +1014,10 @@ void fn_1_B9B4(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BA38(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct* temp_r31; - unkSubStruct2* temp_r30; +void fn_1_BA38(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct *temp_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -990,15 +1030,16 @@ void fn_1_BA38(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BAC0(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_BAC0(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkSubStruct* var_r31; - unkSubStruct2* temp_r30; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk0.x += arg8; var_r31->unk0.y += arg9; @@ -1007,8 +1048,9 @@ void fn_1_BAC0(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BB4C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct2* temp_r31; +void fn_1_BB4C(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1021,9 +1063,10 @@ void fn_1_BB4C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BBB8(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct* temp_r31; - unkSubStruct2* temp_r30; +void fn_1_BBB8(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct *temp_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -1036,10 +1079,11 @@ void fn_1_BBB8(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BC28(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_BC28(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkSubStruct* var_r31; - unkSubStruct2* temp_r30; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -1052,8 +1096,9 @@ void fn_1_BC28(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BC9C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct2* temp_r31; +void fn_1_BC9C(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1066,9 +1111,10 @@ void fn_1_BC9C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BD08(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { - unkSubStruct* temp_r31; - unkSubStruct2* temp_r30; +void fn_1_BD08(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) +{ + unkSubStruct *temp_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -1081,10 +1127,11 @@ void fn_1_BD08(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BD78(s16 arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_BD78(s16 arg0, f32 arg8, f32 arg9, f32 argA) +{ s32 var_r29; - unkSubStruct* var_r31; - unkSubStruct2* temp_r30; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -1097,8 +1144,9 @@ void fn_1_BD78(s16 arg0, f32 arg8, f32 arg9, f32 argA) { } } -void fn_1_BDEC(s16 arg0, s32 arg1) { - unkSubStruct2* temp_r31; +void fn_1_BDEC(s16 arg0, s32 arg1) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1106,9 +1154,10 @@ void fn_1_BDEC(s16 arg0, s32 arg1) { } } -void fn_1_BE30(s16 arg0, s16 arg1, s32 arg2) { - unkSubStruct* temp_r30; - unkSubStruct2* temp_r31; +void fn_1_BE30(s16 arg0, s16 arg1, s32 arg2) +{ + unkSubStruct *temp_r30; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1119,23 +1168,25 @@ void fn_1_BE30(s16 arg0, s16 arg1, s32 arg2) { } } -void fn_1_BEA0(s16 arg0, s32 arg1) { +void fn_1_BEA0(s16 arg0, s32 arg1) +{ s32 var_r30; - unkSubStruct* temp_r29; - unkSubStruct2* temp_r31; + unkSubStruct *temp_r29; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; temp_r29 = temp_r31->unk3C; - + for (var_r30 = 0; var_r30 < temp_r31->unk2; var_r30++) { temp_r29->unk34 |= arg1; } } } -void fn_1_BF10(s16 arg0, u32 arg1) { - unkSubStruct2* temp_r31; +void fn_1_BF10(s16 arg0, u32 arg1) +{ + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1143,9 +1194,10 @@ void fn_1_BF10(s16 arg0, u32 arg1) { } } -void fn_1_BF54(s16 arg0, s16 arg1, u32 arg2) { - unkSubStruct* temp_r30; - unkSubStruct2* temp_r31; +void fn_1_BF54(s16 arg0, s16 arg1, u32 arg2) +{ + unkSubStruct *temp_r30; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1156,10 +1208,11 @@ void fn_1_BF54(s16 arg0, s16 arg1, u32 arg2) { } } -void fn_1_BFC4(s16 arg0, u32 arg1) { +void fn_1_BFC4(s16 arg0, u32 arg1) +{ s32 var_r30; - unkSubStruct* temp_r29; - unkSubStruct2* temp_r31; + unkSubStruct *temp_r29; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1171,9 +1224,10 @@ void fn_1_BFC4(s16 arg0, u32 arg1) { } } -s32 fn_1_C034(s16 arg0, s32 arg1) { - unkSubStruct2* temp_r31; - +s32 fn_1_C034(s16 arg0, s32 arg1) +{ + unkSubStruct2 *temp_r31; + if (arg0 == 0) { return 0; } @@ -1185,9 +1239,10 @@ s32 fn_1_C034(s16 arg0, s32 arg1) { return 0; } -s16 fn_1_C090(s16 arg0, s16 arg1, s32 arg2) { - unkSubStruct* temp_r30; - unkSubStruct2* temp_r31; +s16 fn_1_C090(s16 arg0, s16 arg1, s32 arg2) +{ + unkSubStruct *temp_r30; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1195,7 +1250,8 @@ s16 fn_1_C090(s16 arg0, s16 arg1, s32 arg2) { temp_r30 = &temp_r31->unk3C[arg1]; if ((temp_r30->unk34 & arg2) != 0) { arg0 = 1; - } else { + } + else { arg0 = 0; } } @@ -1203,9 +1259,10 @@ s16 fn_1_C090(s16 arg0, s16 arg1, s32 arg2) { return arg0; } -void fn_1_C110(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) { - unkSubStruct* temp_r31; - unkSubStruct2* temp_r30; +void fn_1_C110(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) +{ + unkSubStruct *temp_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; @@ -1219,15 +1276,16 @@ void fn_1_C110(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) { } } -void fn_1_C184(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) { +void fn_1_C184(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) +{ s32 var_r29; - unkSubStruct* var_r31; - unkSubStruct2* temp_r30; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r30; if (arg0 != 0) { temp_r30 = &lbl_1_bss_36C.unk40[arg0]; var_r31 = temp_r30->unk3C; - + for (var_r29 = 0; var_r29 < temp_r30->unk2; var_r29++, var_r31++) { var_r31->unk50.r = arg1; var_r31->unk50.g = arg2; @@ -1237,9 +1295,10 @@ void fn_1_C184(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) { } } -void fn_1_C1FC(s16 arg0, s16 arg1, u8 arg2) { - unkSubStruct* temp_r30; - unkSubStruct2* temp_r31; +void fn_1_C1FC(s16 arg0, s16 arg1, u8 arg2) +{ + unkSubStruct *temp_r30; + unkSubStruct2 *temp_r31; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1250,24 +1309,26 @@ void fn_1_C1FC(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_C264(s16 arg0, u8 arg1) { +void fn_1_C264(s16 arg0, u8 arg1) +{ s32 var_r29; - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; var_r30 = temp_r31->unk3C; - + for (var_r29 = 0; var_r29 < temp_r31->unk2; var_r29++, var_r30++) { var_r30->unk30 = arg1; } } } -void fn_1_C2D0(s16 arg0, s16 arg1, u8 arg2) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C2D0(s16 arg0, s16 arg1, u8 arg2) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1278,10 +1339,11 @@ void fn_1_C2D0(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_C338(s16 arg0, u8 arg1) { +void fn_1_C338(s16 arg0, u8 arg1) +{ s32 var_r29; - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1293,9 +1355,10 @@ void fn_1_C338(s16 arg0, u8 arg1) { } } -void fn_1_C3A4(s16 arg0, s16 arg1, u8 arg2) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C3A4(s16 arg0, s16 arg1, u8 arg2) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1306,9 +1369,10 @@ void fn_1_C3A4(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_C410(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C410(s16 arg0, s16 arg1, u8 arg2, u8 arg3) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1319,17 +1383,18 @@ void fn_1_C410(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { } } -void fn_1_C488(s16 arg0, u8 arg1) { +void fn_1_C488(s16 arg0, u8 arg1) +{ s32 var_r28; s32 var_r30; - unkSubStruct* var_r31; - unkSubStruct2* temp_r29; + unkSubStruct *var_r31; + unkSubStruct2 *temp_r29; if (arg0 != 0) { temp_r29 = &lbl_1_bss_36C.unk40[arg0]; - var_r31 = (unkSubStruct*)&temp_r29->unk3C; //! BAD WHY + var_r31 = (unkSubStruct *)&temp_r29->unk3C; //! BAD WHY (void)temp_r29; - + for (var_r28 = 0; var_r28 < temp_r29->unk2; var_r28++, var_r31++) { for (var_r30 = 0; var_r30 < var_r31->unk33; var_r30++) { var_r31->unk54[var_r30].unk24 = arg1; @@ -1338,9 +1403,10 @@ void fn_1_C488(s16 arg0, u8 arg1) { } } -void fn_1_C520(s16 arg0, s16 arg1, f32 arg8) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C520(s16 arg0, s16 arg1, f32 arg8) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1351,9 +1417,10 @@ void fn_1_C520(s16 arg0, s16 arg1, f32 arg8) { } } -void fn_1_C58C(s16 arg0, s16 arg1, u8 arg2, f32 arg8) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C58C(s16 arg0, s16 arg1, u8 arg2, f32 arg8) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1364,16 +1431,17 @@ void fn_1_C58C(s16 arg0, s16 arg1, u8 arg2, f32 arg8) { } } -void fn_1_C604(s16 arg0, f32 arg8) { - unkSubStruct* volatile sp8; +void fn_1_C604(s16 arg0, f32 arg8) +{ + unkSubStruct *volatile sp8; s32 var_r29; - unkSubStruct2* temp_r31; + unkSubStruct2 *temp_r31; s32 var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; sp8 = temp_r31->unk3C; - + for (var_r29 = 0; var_r29 < temp_r31->unk2; var_r29++) { for (var_r30 = 0; var_r30 < sp8->unk33; var_r30++) { sp8->unk54[var_r30].unk28 = arg8; @@ -1382,9 +1450,10 @@ void fn_1_C604(s16 arg0, f32 arg8) { } } -void fn_1_C69C(s16 arg0, s16 arg1, u8 arg2) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C69C(s16 arg0, s16 arg1, u8 arg2) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1395,9 +1464,10 @@ void fn_1_C69C(s16 arg0, s16 arg1, u8 arg2) { } } -void fn_1_C70C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { - unkSubStruct2* temp_r31; - unkSubStruct* var_r30; +void fn_1_C70C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) +{ + unkSubStruct2 *temp_r31; + unkSubStruct *var_r30; if (arg0 != 0) { temp_r31 = &lbl_1_bss_36C.unk40[arg0]; @@ -1410,10 +1480,11 @@ void fn_1_C70C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { // ... -void fn_1_C784(s16 arg0, u8 arg1) { - unkSubStruct* volatile sp8; +void fn_1_C784(s16 arg0, u8 arg1) +{ + unkSubStruct *volatile sp8; s32 var_r29; - unkSubStruct2* temp_r31; + unkSubStruct2 *temp_r31; s32 var_r30; if (arg0 != 0) { @@ -1427,8 +1498,9 @@ void fn_1_C784(s16 arg0, u8 arg1) { } } -void fn_1_C81C(s16 arg0, u8 arg1) { - unkSubStruct3* var_r31; +void fn_1_C81C(s16 arg0, u8 arg1) +{ + unkSubStruct3 *var_r31; if (arg0 != 0) { var_r31 = &lbl_1_bss_36C.unk3C[arg0]; var_r31->unk4 = arg1; diff --git a/src/REL/m417Dll/main.c b/src/REL/m417Dll/main.c index 02a55063..db0d47a6 100644 --- a/src/REL/m417Dll/main.c +++ b/src/REL/m417Dll/main.c @@ -79,7 +79,7 @@ void ObjectSetup(void) sp8.x = sp8.z = 0.0f; sp8.y = lbl_1_data_18.z; mtxRot(sp38, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); - PSMTXMultVec(sp38, &sp8, &sp8); + MTXMultVec(sp38, &sp8, &sp8); Hu3DGLightPosAimSetV(lbl_1_bss_8[0], &sp8, &sp14); lbl_1_data_28.x = 200.0f; lbl_1_data_28.y = 3000.0f; @@ -481,18 +481,18 @@ void fn_1_310C(float arg8, float arg9, float argA, float *arg0, float *arg1, flo Mtx sp8; if (arg8 != 0.0f) { - PSMTXRotRad(sp38, 88, 0.017453292f * arg8); + MTXRotRad(sp38, 88, 0.017453292f * arg8); } else { - PSMTXIdentity(sp38); + MTXIdentity(sp38); } if (arg9 != 0.0f) { - PSMTXRotRad(sp8, 89, 0.017453292f * arg9); - PSMTXConcat(sp38, sp8, sp38); + MTXRotRad(sp8, 89, 0.017453292f * arg9); + MTXConcat(sp38, sp8, sp38); } if (argA != 0.0f) { - PSMTXRotRad(sp8, 90, 0.017453292f * argA); - PSMTXConcat(sp38, sp8, sp38); + MTXRotRad(sp8, 90, 0.017453292f * argA); + MTXConcat(sp38, sp8, sp38); } fn_1_30D8(NULL, arg0, arg1, arg2); } diff --git a/src/REL/m417Dll/player.c b/src/REL/m417Dll/player.c index ca8f7206..81f282b0 100644 --- a/src/REL/m417Dll/player.c +++ b/src/REL/m417Dll/player.c @@ -270,22 +270,22 @@ void fn_1_7C8C(omObjData *object) var_r31->unk_70 = 0.02f; if (var_r31->unk_0C) { Vec sp18 = { 0.0f, 1.0f, 0.0f }; - PSMTXRotAxisRad(var_r31->unk_1C4, &sp18, 0.017453292f * var_r31->unk_64); + MTXRotAxisRad(var_r31->unk_1C4, &sp18, 0.017453292f * var_r31->unk_64); } else { Vec spC = { 0.0f, 1.0f, 0.0f }; - PSMTXIdentity(var_r31->unk_1C4); + MTXIdentity(var_r31->unk_1C4); C_QUATRotAxisRad(&var_r31->unk_184, &spC, 0.0f); var_r31->unk_194 = var_r31->unk_184; - PSQUATInverse(&var_r31->unk_194, &var_r31->unk_1A4); + QUATInverse(&var_r31->unk_194, &var_r31->unk_1A4); var_r31->unk_1B4 = var_r31->unk_1A4; var_r31->unk_164 = var_r31->unk_194; var_r31->unk_174 = var_r31->unk_194; var_r31->unk_144 = 1.0f; var_r31->unk_D4.z += 50.0f; } - PSMTXInverse(var_r31->unk_1C4, var_r31->unk_1F4); - PSMTXCopy(var_r31->unk_1F4, var_r31->unk_224); + MTXInverse(var_r31->unk_1C4, var_r31->unk_1F4); + MTXCopy(var_r31->unk_1F4, var_r31->unk_224); var_r31->unk_134 = var_r31->unk_138 = 0.0f; var_r31->unk_12C = 1.0f; var_r31->unk_08 = -1; @@ -634,7 +634,7 @@ void fn_1_9298(omObjData *object) else if (var_r31->unk_B4.x < 0.0f) { var_r31->unk_B4.x += 360.0f; } - PSMTXRotAxisRad(var_r31->unk_1C4, &sp8, 0.017453292f * var_r31->unk_B4.x); + MTXRotAxisRad(var_r31->unk_1C4, &sp8, 0.017453292f * var_r31->unk_B4.x); } object->rot.y = var_r31->unk_68 = var_r31->unk_B4.x - 180.0f; object->trans.x = var_r31->unk_D4.x = var_r31->unk_F8.x = var_r31->unk_C8.x = var_r31->unk_B4.z * sind(var_r31->unk_B4.x); @@ -836,7 +836,7 @@ void fn_1_9C14(omObjData *object) if (fn_1_26F8() == 2) { sp1C.y += -5.8333335f * var_r31->unk_148; } - PSMTXMultVec(var_r31->unk_224, &sp1C, &sp1C); + MTXMultVec(var_r31->unk_224, &sp1C, &sp1C); VECAdd(&sp1C, &var_r31->unk_E0, &sp1C); sp10 = sp1C; sp10.y = 0.0f; @@ -849,13 +849,13 @@ void fn_1_9C14(omObjData *object) sp1C.y = 80.0f; var_r31->unk_EC = sp1C; spC = atan2d(sp1C.x, sp1C.z); - PSMTXMultVec(var_r31->unk_1C4, &sp1C, &sp1C); + MTXMultVec(var_r31->unk_1C4, &sp1C, &sp1C); VECAdd(&sp1C, &var_r31->unk_F8, &var_r31->unk_D4); if (var_r31->unk_13C >= 0.95f) { var_r31->unk_3C = 1; return; } - PSQUATNormalize(&var_r31->unk_194, &sp28); + QUATNormalize(&var_r31->unk_194, &sp28); if (sp28.w < cosd(25)) { var_r31->unk_3C = 1; } @@ -893,7 +893,7 @@ void fn_1_9FF0(omObjData *object) } } var_r31->unk_1B4 = var_r31->unk_1A4; - PSMTXCopy(var_r31->unk_1F4, var_r31->unk_224); + MTXCopy(var_r31->unk_1F4, var_r31->unk_224); var_r31->unk_104 = var_r31->unk_F8; var_f31 = fn_1_75BC(); for (var_r30 = 0; var_r30 < 8; var_r30++) { @@ -1054,12 +1054,12 @@ void fn_1_9FF0(omObjData *object) C_QUATRotAxisRad(&sp3C, &sp8, M_PI); C_QUATSlerp(&var_r31->unk_184, &sp3C, &var_r31->unk_184, 0.027777778f); } - PSQUATMultiply(&var_r31->unk_174, &var_r31->unk_184, &var_r31->unk_194); - PSQUATMultiply(&var_r31->unk_164, &var_r31->unk_194, &var_r31->unk_194); - PSQUATMultiply(&sp2C, &var_r31->unk_194, &var_r31->unk_194); - PSMTXQuat(var_r31->unk_1C4, &var_r31->unk_194); - PSMTXInverse(var_r31->unk_1C4, var_r31->unk_1F4); - PSQUATInverse(&var_r31->unk_194, &var_r31->unk_1A4); + QUATMultiply(&var_r31->unk_174, &var_r31->unk_184, &var_r31->unk_194); + QUATMultiply(&var_r31->unk_164, &var_r31->unk_194, &var_r31->unk_194); + QUATMultiply(&sp2C, &var_r31->unk_194, &var_r31->unk_194); + MTXQuat(var_r31->unk_1C4, &var_r31->unk_194); + MTXInverse(var_r31->unk_1C4, var_r31->unk_1F4); + QUATInverse(&var_r31->unk_194, &var_r31->unk_1A4); } } @@ -1071,7 +1071,7 @@ void fn_1_AD24(omObjData *object) Hu3DModelPosSetV(object->model[0], &var_r30->unk_D4); Hu3DModelRotSet(object->model[0], 0.0f, var_r30->unk_64, 0.0f); Hu3DModelPosSetV(object->model[1], &var_r30->unk_F8); - PSMTXCopy(var_r30->unk_1C4, Hu3DData[object->model[1]].unk_F0); + MTXCopy(var_r30->unk_1C4, Hu3DData[object->model[1]].unk_F0); } void fn_1_ADC4(omObjData *object) diff --git a/src/REL/m417Dll/water.c b/src/REL/m417Dll/water.c index 4313fa29..6217da9f 100644 --- a/src/REL/m417Dll/water.c +++ b/src/REL/m417Dll/water.c @@ -567,13 +567,13 @@ void fn_1_4E64(omObjData *object) var_r31->unk_24 = 1.0f; } } - PSMTXTrans(spC8, var_r31->unk_04.x, var_r31->unk_04.y, var_r31->unk_04.z); - PSMTXRotRad(sp98, 89, 0.017453292f * var_r31->unk_10); - PSMTXConcat(spC8, sp98, sp68); + MTXTrans(spC8, var_r31->unk_04.x, var_r31->unk_04.y, var_r31->unk_04.z); + MTXRotRad(sp98, 89, 0.017453292f * var_r31->unk_10); + MTXConcat(spC8, sp98, sp68); var_f31 = var_r31->unk_18 * var_r31->unk_1C; - PSMTXScale(spC8, var_f31, var_f31, var_f31 * var_r31->unk_28); - PSMTXConcat(sp68, spC8, sp98); - PSMTXInverse(sp98, spC8); + MTXScale(spC8, var_f31, var_f31, var_f31 * var_r31->unk_28); + MTXConcat(sp68, spC8, sp98); + MTXInverse(sp98, spC8); PSMTXReorder(spC8, sp38); PSMTXROMultVecArray(sp38, lbl_1_bss_178.unk_2C, lbl_1_bss_178.unk_34, lbl_1_bss_178.unk_18); sp2C.x = (0.15f * var_r31->unk_18) * (var_r31->unk_24 * sind(var_r31->unk_10)); @@ -761,7 +761,7 @@ void fn_1_604C(ModelData *arg0, Mtx arg1) DCStoreRangeNoSync(&sp10, 4); PPCSync(); GXLoadPosMtxImm(arg1, 0); - PSMTXInvXpose(arg1, sp98); + MTXInvXpose(arg1, sp98); GXLoadNrmMtxImm(sp98, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -773,29 +773,29 @@ void fn_1_604C(ModelData *arg0, Mtx arg1) HuSprTexLoad(lbl_1_bss_60, 0, 3, GX_MIRROR, GX_MIRROR, GX_LINEAR); GXSetNumTexGens(5); C_MTXLightPerspective(sp38, 35.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, sp98); - PSMTXConcat(sp98, arg1, sp98); - PSMTXConcat(sp38, Hu3DCameraMtx, sp68); - PSMTXConcat(sp68, sp98, sp68); + MTXInverse(Hu3DCameraMtx, sp98); + MTXConcat(sp98, arg1, sp98); + MTXConcat(sp38, Hu3DCameraMtx, sp68); + MTXConcat(sp68, sp98, sp68); sp68[1][3] -= 44.0f; GXLoadTexMtxImm(sp68, 30, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 30, GX_FALSE, 125); C_MTXLightPerspective(sp38, 70.0f, 1.0f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, sp98); - PSMTXConcat(sp98, arg1, sp98); - PSMTXConcat(sp38, Hu3DCameraMtx, sp68); - PSMTXConcat(sp68, sp98, sp68); + MTXInverse(Hu3DCameraMtx, sp98); + MTXConcat(sp98, arg1, sp98); + MTXConcat(sp38, Hu3DCameraMtx, sp68); + MTXConcat(sp68, sp98, sp68); GXLoadTexMtxImm(sp68, 36, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX3x4, GX_TG_POS, 36, GX_FALSE, 125); - PSMTXRotRad(sp68, 90, 0.017453292f * lbl_1_bss_178.unk_6B8); + MTXRotRad(sp68, 90, 0.017453292f * lbl_1_bss_178.unk_6B8); GXLoadTexMtxImm(sp68, 39, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD3, GX_TG_MTX2x4, GX_TG_TEXCOORD0, 39, GX_FALSE, 125); - PSMTXScale(sp98, 1.2f, -1.2f, 1.2f); - PSMTXConcat(sp68, sp98, sp68); + MTXScale(sp98, 1.2f, -1.2f, 1.2f); + MTXConcat(sp68, sp98, sp68); GXLoadTexMtxImm(sp68, 42, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD4, GX_TG_MTX2x4, GX_TG_TEXCOORD0, 42, GX_FALSE, 125); - PSMTXScale(sp98, 0.49f, -0.49f, 0.49f); - PSMTXConcat(sp98, Hu3DCameraMtx, sp68); + MTXScale(sp98, 0.49f, -0.49f, 0.49f); + MTXConcat(sp98, Hu3DCameraMtx, sp68); sp68[0][3] = 0.5f; sp68[1][3] = 0.5f; GXLoadTexMtxImm(sp68, 33, GX_MTX2x4); @@ -804,18 +804,18 @@ void fn_1_604C(ModelData *arg0, Mtx arg1) GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); - PSMTXScale(sp68, -0.5f, -0.5f, 0.5f); + MTXScale(sp68, -0.5f, -0.5f, 0.5f); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])sp68, -2); GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD1, GX_TEXMAP1); GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(GX_TEVSTAGE1, GX_INDTEXSTAGE1, GX_TRUE, GX_FALSE, GX_ITM_1); - PSMTXScale(sp68, 0.5f, 0.5f, 0.5f); + MTXScale(sp68, 0.5f, 0.5f, 0.5f); GXSetIndTexMtx(GX_ITM_1, (float(*)[3])sp68, 0); GXSetIndTexOrder(GX_INDTEXSTAGE2, GX_TEXCOORD1, GX_TEXMAP1); GXSetIndTexCoordScale(GX_INDTEXSTAGE2, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(GX_TEVSTAGE2, GX_INDTEXSTAGE2, GX_TRUE, GX_FALSE, GX_ITM_2); GXSetTevIndWarp(GX_TEVSTAGE3, GX_INDTEXSTAGE2, GX_TRUE, GX_FALSE, GX_ITM_2); - PSMTXScale(sp68, -0.65f, -0.65f, 0.65f); + MTXScale(sp68, -0.65f, -0.65f, 0.65f); GXSetIndTexMtx(GX_ITM_2, (float(*)[3])sp68, -3); GXSetNumTevStages(5); GXSetTevColor(GX_TEVREG0, sp14); diff --git a/src/REL/m419Dll/main.c b/src/REL/m419Dll/main.c index e0dfba50..83ae359e 100755 --- a/src/REL/m419Dll/main.c +++ b/src/REL/m419Dll/main.c @@ -17,7 +17,7 @@ #include "ext_math.h" typedef struct { - /* 0x00 */ omObjData* unk00; + /* 0x00 */ omObjData *unk00; /* 0x04 */ char unk04[0xB4]; } StructBssC8; // Size 0xB8 @@ -109,8 +109,8 @@ typedef struct { void fn_1_57C(s16 arg0); void fn_1_AD0(s16 arg0); void fn_1_F58(void); -void fn_1_2254(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_2744(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_2254(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_2744(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_47E4(void); void fn_1_4B20(void); void fn_1_9AF0(void); @@ -135,52 +135,32 @@ s32 lbl_1_bss_580; StructBss200 lbl_1_bss_200[4]; StructBss1E8 lbl_1_bss_1E8[2]; StructBss190 lbl_1_bss_190[2]; -Process* lbl_1_bss_180[4]; +Process *lbl_1_bss_180[4]; StructBssC8 lbl_1_bss_C8; Vec lbl_1_bss_BC; Vec lbl_1_bss_B0; Vec lbl_1_bss_A4; -void* lbl_1_bss_84[8]; -void* lbl_1_bss_64[8]; +void *lbl_1_bss_84[8]; +void *lbl_1_bss_64[8]; u8 lbl_1_bss_60; Vec lbl_1_bss_0[8]; s32 lbl_1_data_0[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; -s32 lbl_1_data_20[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 21), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 26), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), - DATA_MAKE_NUM(DATADIR_M419, 0), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 25), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 13), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 16) -}; +s32 lbl_1_data_20[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 21), DATA_MAKE_NUM(DATADIR_MARIOMOT, 26), DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), DATA_MAKE_NUM(DATADIR_M419, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 25), DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), DATA_MAKE_NUM(DATADIR_MARIOMOT, 13), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 16) }; -s32 lbl_1_data_4C[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 79), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 22) -}; +s32 lbl_1_data_4C[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 79), DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 22) }; -Vec lbl_1_data_5C[] = { - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f } -}; +Vec lbl_1_data_5C[] = { { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f } }; -void ObjectSetup(void) { - Process* temp_r3; +void ObjectSetup(void) +{ + Process *temp_r3; temp_r3 = omInitObjMan(50, 0x2000); omGameSysInit(temp_r3); @@ -218,7 +198,8 @@ void ObjectSetup(void) { WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); } -void fn_1_4A0(void) { +void fn_1_4A0(void) +{ s16 i; Hu3DLayerHookSet(1, fn_1_57C); @@ -229,10 +210,11 @@ void fn_1_4A0(void) { } } -void fn_1_57C(s16 arg0) { +void fn_1_57C(s16 arg0) +{ Vec sp14; Vec sp8; - ModelData* temp_r30; + ModelData *temp_r30; s16 var_r31; temp_r30 = &Hu3DData[lbl_1_bss_5BE]; @@ -266,14 +248,15 @@ void fn_1_57C(s16 arg0) { GXCopyTex(lbl_1_bss_64[lbl_1_bss_60], 0); } -void fn_1_848(ModelData* arg0, Mtx arg1) { +void fn_1_848(ModelData *arg0, Mtx arg1) +{ Mtx44 sp10; GXColor spC; s16 i; C_MTXOrtho(sp10, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 8000.0f); GXSetProjection(sp10, GX_ORTHOGRAPHIC); - PSMTXIdentity(arg1); + MTXIdentity(arg1); GXLoadPosMtxImm(arg1, GX_PNMTX0); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); @@ -302,7 +285,8 @@ void fn_1_848(ModelData* arg0, Mtx arg1) { GXSetZTexture(GX_ZT_DISABLE, GX_TF_Z8, 0); } -void fn_1_AD0(s16 arg0) { +void fn_1_AD0(s16 arg0) +{ GXTexObj sp58; GXTexObj sp38; Vec sp2C; @@ -341,16 +325,17 @@ void fn_1_AD0(s16 arg0) { GXEnd(); } -void fn_1_F58(void) { - void* var_r29; - StructBss1E8* temp_r26; - StructBss200* temp_r31; - Process* var_r25; +void fn_1_F58(void) +{ + void *var_r29; + StructBss1E8 *temp_r26; + StructBss200 *temp_r31; + Process *var_r25; float temp_f31; s16 var_r30; s32 var_r22; s32 var_r23; - AnimData* var_r21; + AnimData *var_r21; s32 i; s32 j; @@ -474,7 +459,8 @@ void fn_1_F58(void) { var_r25 = HuPrcChildCreate(fn_1_9AF0, 0x2000, 0x3000, 0, HuPrcCurrentGet()); var_r25->user_data = temp_r31; lbl_1_bss_180[i] = var_r25; - } else { + } + else { temp_r31->unk02 = CharModelCreate(lbl_1_data_0[GWPlayerCfg[i].character], 2); Hu3DModelLayerSet(temp_r31->unk00, 1); CharModelLayerSetAll(2); @@ -559,25 +545,30 @@ void fn_1_F58(void) { HuPrcChildCreate(fn_1_104A0, 0x1000, 0x1000, 0, HuPrcCurrentGet()); } -float fn_1_1F84(float arg0, float arg1) { +float fn_1_1F84(float arg0, float arg1) +{ float var_f31; float var_f30; if (arg0 > 600.0f - arg1) { var_f31 = 600.0f + 200.0f * ((800.0f - (arg0 + arg1)) / 200.0f); - } else if (arg0 < -(600.0f - arg1)) { + } + else if (arg0 < -(600.0f - arg1)) { var_f31 = 600.0f + 200.0f * ((800.0f - ABS_INV(arg0 - arg1)) / 200.0f); - } else { + } + else { var_f31 = 800.0f; } return var_f31; } -float fn_1_20AC(float arg0, float arg1) { +float fn_1_20AC(float arg0, float arg1) +{ return fn_1_1F84(arg0, arg1); } -float fn_1_21D4(float arg0) { +float fn_1_21D4(float arg0) +{ while (arg0 >= 360.0f || arg0 < 0.0f) { if (arg0 >= 360.0f) { arg0 -= 360.0f; @@ -589,9 +580,10 @@ float fn_1_21D4(float arg0) { return arg0; } -void fn_1_2254(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; - StructBss200* temp_r28; +void fn_1_2254(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + StructBss200 *temp_r28; float var_f31; float temp_f29; float var_f30; @@ -639,7 +631,7 @@ void fn_1_2254(ModelData* model, ParticleData* particle, Mtx matrix) { var_r31 = particle->unk_48; for (k = 0; k < particle->unk_30; k++, var_r31++) { if (var_r31->unk14.x != 0.0f) { - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); var_r31->unk08.x *= 0.95f; var_r31->unk08.z *= 0.95f; if (var_r31->unk08.y > 0.1f) { @@ -669,9 +661,10 @@ void fn_1_2254(ModelData* model, ParticleData* particle, Mtx matrix) { } } -void fn_1_2744(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; - StructBss200* temp_r28; +void fn_1_2744(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + StructBss200 *temp_r28; float temp_f31; float temp_f30; s32 var_r27; @@ -729,7 +722,7 @@ void fn_1_2744(ModelData* model, ParticleData* particle, Mtx matrix) { var_r31->unk20 = -1.0f; } if (var_r31->unk14.x != 0.0f && var_r31->unk24 != 0.0f) { - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); if (var_r31->unk08.y > 1.0f) { var_r31->unk08.y -= 0.3f; } @@ -754,8 +747,9 @@ void fn_1_2744(ModelData* model, ParticleData* particle, Mtx matrix) { } } -s32 fn_1_2BDC(StructBss190* arg0) { - StructBss200* temp_r31; +s32 fn_1_2BDC(StructBss190 *arg0) +{ + StructBss200 *temp_r31; Vec sp24; Vec sp18; Vec spC; @@ -777,7 +771,8 @@ s32 fn_1_2BDC(StructBss190* arg0) { return var_r28; } -void fn_1_2DFC(StructBss190* arg0) { +void fn_1_2DFC(StructBss190 *arg0) +{ float temp_f31; float var_f26; float var_f25; @@ -817,13 +812,14 @@ void fn_1_2DFC(StructBss190* arg0) { } } -void fn_1_32F8(void) { - StructBss200* temp_r31; +void fn_1_32F8(void) +{ + StructBss200 *temp_r31; float var_f31; s32 var_r29; s32 i; - var_r29 = (s32) HuPrcCurrentGet()->user_data; + var_r29 = (s32)HuPrcCurrentGet()->user_data; temp_r31 = &lbl_1_bss_200[var_r29]; for (i = 0, var_f31 = 1.0f; i < 30; i++, var_f31 -= 0.033333335f) { Hu3DModelAmbSet(temp_r31->unk00, 1.0f, var_f31, var_f31); @@ -844,9 +840,10 @@ void fn_1_32F8(void) { } } -void fn_1_344C(void) { - StructBss190* temp_r31; - StructBss200* temp_r30; +void fn_1_344C(void) +{ + StructBss190 *temp_r31; + StructBss200 *temp_r30; Vec spAC; Vec spA0; Vec sp94; @@ -887,7 +884,8 @@ void fn_1_344C(void) { Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04); Hu3DModelAttrSet(temp_r31->unk00, HU3D_MOTATTR_LOOP); Hu3DModelTPLvlSet(temp_r31->unk00, 1.0f); - } else { + } + else { Hu3DModelAttrReset(temp_r31->unk02, 1); } Hu3DModelAttrReset(temp_r31->unk00, 1); @@ -910,14 +908,16 @@ void fn_1_344C(void) { temp_r30 = &lbl_1_bss_200[var_r25]; if (GWPlayerCfg[temp_r30->unk28].group == 0) { sp5C = 150.0f; - } else { + } + else { sp5C = 400.0f; } if (temp_r31->unk18 < sp5C) { if (temp_r31->unk18 < sp5C && temp_r31->unk18 > sp5C - 50.0f) { var_f23 = 15.0f; sp58 = 0.9f; - } else { + } + else { sp6C = atan2d(temp_r31->unk14 - temp_r30->unk54, temp_r31->unk1C - temp_r30->unk5C); temp_r31->unk0C = fn_1_21D4(180.0f + temp_r31->unk0C); temp_r31->unk0C = sp6C - (temp_r31->unk0C - sp6C); @@ -985,12 +985,14 @@ void fn_1_344C(void) { temp_r30->unk94 = 3.0f; lbl_1_bss_5BC = 1; HuAudFXPlay(0x5E6); - } else { + } + else { temp_r30->unk90 = 6.75f; temp_r30->unk98 = 0.99f; HuAudFXPlay(0x5E2); } - } else if (temp_r30->unk24 == 0) { + } + else if (temp_r30->unk24 == 0) { temp_r30->unk34 = 4; HuAudPlayerVoicePlay(temp_r30->unk28, 0x128); HuAudFXPlay(0x5E9); @@ -1004,7 +1006,8 @@ void fn_1_344C(void) { } if (var_r24 & 1) { Hu3DModelAttrReset(var_r22, 1); - } else { + } + else { Hu3DModelAttrSet(var_r22, 1); } var_r24++; @@ -1024,7 +1027,8 @@ fn_1_344C_label: } Hu3DModelAttrSet(temp_r31->unk00, 1); Hu3DModelAttrSet(temp_r31->unk02, 1); - } else { + } + else { if (temp_r31->unk08 == 0) { temp_r30 = &lbl_1_bss_200[var_r25]; sp6C = atan2d(temp_r31->unk14 - temp_r30->unk54, temp_r31->unk1C - temp_r30->unk5C); @@ -1054,11 +1058,12 @@ fn_1_344C_label: } } -void fn_1_47E4(void) { - StructBss1E8* var_r31; - StructBss190* var_r30; - ModelData* temp_r29; - Process* temp_r3; +void fn_1_47E4(void) +{ + StructBss1E8 *var_r31; + StructBss190 *var_r30; + ModelData *temp_r29; + Process *temp_r3; s32 var_r27; var_r31 = &lbl_1_bss_1E8[0]; @@ -1077,7 +1082,8 @@ void fn_1_47E4(void) { lbl_1_bss_580++; var_r30 = &lbl_1_bss_190[1]; Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); - } else { + } + else { Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[3], 0.0f, 5.0f, HU3D_MOTATTR_NONE); } HuPrcVSleep(); @@ -1119,11 +1125,12 @@ void fn_1_47E4(void) { } } -void fn_1_4B20(void) { - StructBss1E8* var_r31; - StructBss190* var_r30; - Process* temp_r3; - ModelData* temp_r29; +void fn_1_4B20(void) +{ + StructBss1E8 *var_r31; + StructBss190 *var_r30; + Process *temp_r3; + ModelData *temp_r29; s32 var_r27; var_r31 = &lbl_1_bss_1E8[1]; @@ -1142,7 +1149,8 @@ void fn_1_4B20(void) { lbl_1_bss_580++; var_r30 = &lbl_1_bss_190[1]; Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[4], 0.0f, 5.0f, HU3D_MOTATTR_NONE); - } else { + } + else { Hu3DMotionShiftSet(var_r31->unk00, var_r31->unk02[3], 0.0f, 5.0f, HU3D_MOTATTR_NONE); } HuPrcVSleep(); @@ -1183,63 +1191,72 @@ void fn_1_4B20(void) { } } -s8 fn_1_4E54(s32 arg0, s32 arg1) { - StructBss200* temp_r31; +s8 fn_1_4E54(s32 arg0, s32 arg1) +{ + StructBss200 *temp_r31; s8 var_r30; temp_r31 = &lbl_1_bss_200[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { (arg1 != 0) ? (var_r30 = HuPadStkY[temp_r31->unk30]) : (var_r30 = HuPadStkX[temp_r31->unk30]); - } else { + } + else { (arg1 != 0) ? (var_r30 = temp_r31->unkA1) : (var_r30 = temp_r31->unkA0); } return var_r30; } -u8 fn_1_4F0C(s32 arg0, s32 arg1) { - StructBss200* temp_r31; +u8 fn_1_4F0C(s32 arg0, s32 arg1) +{ + StructBss200 *temp_r31; s8 var_r30; temp_r31 = &lbl_1_bss_200[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { (arg1 != 0) ? (var_r30 = HuPadTrigR[temp_r31->unk30]) : (var_r30 = HuPadTrigL[temp_r31->unk30]); - } else { + } + else { (arg1 != 0) ? (var_r30 = temp_r31->unkA2) : (var_r30 = temp_r31->unkA3); } return var_r30; } -u16 fn_1_4FCC(s32 arg0) { - StructBss200* temp_r31; +u16 fn_1_4FCC(s32 arg0) +{ + StructBss200 *temp_r31; u16 var_r30; temp_r31 = &lbl_1_bss_200[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { var_r30 = HuPadBtnDown[temp_r31->unk30]; - } else { + } + else { var_r30 = temp_r31->unkA6; } return var_r30; } -u16 fn_1_5038(s32 arg0) { - StructBss200* temp_r31; +u16 fn_1_5038(s32 arg0) +{ + StructBss200 *temp_r31; u16 var_r30; temp_r31 = &lbl_1_bss_200[arg0]; if (GWPlayerCfg[arg0].iscom == 0) { var_r30 = HuPadBtn[temp_r31->unk30]; - } else { + } + else { var_r30 = temp_r31->unkA4; } return var_r30; } -s32 fn_1_50A4(StructBss200* arg0, float arg1, s32 arg2) { +s32 fn_1_50A4(StructBss200 *arg0, float arg1, s32 arg2) +{ Vec sp2C; Vec sp20; Vec sp14; - StructBss200* temp_r30; + StructBss200 *temp_r30; s32 var_r28; float var_f27; float var_f28; @@ -1261,7 +1278,8 @@ s32 fn_1_50A4(StructBss200* arg0, float arg1, s32 arg2) { return var_r28; } -s32 fn_1_52E8(StructBss200* arg0) { +s32 fn_1_52E8(StructBss200 *arg0) +{ float var_f25; float var_f24; s32 var_r28; @@ -1287,7 +1305,8 @@ s32 fn_1_52E8(StructBss200* arg0) { return var_r28; } -float fn_1_5858(float arg0, float arg1, float arg2) { +float fn_1_5858(float arg0, float arg1, float arg2) +{ float var_f31; float var_f30; @@ -1305,7 +1324,8 @@ float fn_1_5858(float arg0, float arg1, float arg2) { return var_f30; } -float fn_1_595C(float arg0, float arg1, StructBss200* arg2) { +float fn_1_595C(float arg0, float arg1, StructBss200 *arg2) +{ Vec sp2C; Vec sp20; Vec sp14; @@ -1316,28 +1336,33 @@ float fn_1_595C(float arg0, float arg1, StructBss200* arg2) { return VECMagXZ(&sp14); } -float fn_1_5AD8(float arg0, float arg1) { +float fn_1_5AD8(float arg0, float arg1) +{ float var_f31; if (arg0 > arg1) { var_f31 = fn_1_21D4(arg0 - arg1); if (var_f31 < 180.0f) { var_f31 = fn_1_21D4(arg1 + var_f31 + 180.0f); - } else { + } + else { var_f31 = fn_1_21D4(arg1 - var_f31); } - } else { + } + else { var_f31 = fn_1_21D4(arg1 - arg0); if (var_f31 < 180.0f) { var_f31 = fn_1_21D4(arg0 + var_f31 + 180.0f); - } else { + } + else { var_f31 = fn_1_21D4(arg0 - var_f31); } } return var_f31; } -s32 fn_1_5F34(StructBss200* arg0, float arg1) { +s32 fn_1_5F34(StructBss200 *arg0, float arg1) +{ s32 var_r31; float var_f25; float var_f24; @@ -1345,17 +1370,15 @@ s32 fn_1_5F34(StructBss200* arg0, float arg1) { var_f25 = fn_1_1F84(arg0->unk5C, arg0->unk8C); var_f24 = fn_1_1F84(arg0->unk54, arg0->unk8C); var_r31 = 0; - if (arg0->unk54 > var_f25 - arg0->unk8C - arg1 - || arg0->unk54 < -(var_f25 - arg0->unk8C - arg1) - || arg0->unk5C > var_f24 - arg0->unk8C - arg1 - || arg0->unk5C < -(var_f24 - arg0->unk8C - arg1)) - { + if (arg0->unk54 > var_f25 - arg0->unk8C - arg1 || arg0->unk54 < -(var_f25 - arg0->unk8C - arg1) || arg0->unk5C > var_f24 - arg0->unk8C - arg1 + || arg0->unk5C < -(var_f24 - arg0->unk8C - arg1)) { var_r31 = 1; } return var_r31; } -void fn_1_628C(StructBss200* arg0) { +void fn_1_628C(StructBss200 *arg0) +{ Vec spC; HuSetVecF(&spC, fn_1_4E54(arg0->unk28, 0) / 4.0f, 0.0, -fn_1_4E54(arg0->unk28, 1) / 4.0f); @@ -1373,10 +1396,11 @@ void fn_1_628C(StructBss200* arg0) { } } -void fn_1_65C0(Vec* arg0, StructBss200** arg1) { +void fn_1_65C0(Vec *arg0, StructBss200 **arg1) +{ float temp_f31; - StructBss200* temp_r31; - StructBss200* temp_r30; + StructBss200 *temp_r31; + StructBss200 *temp_r30; s32 var_r28; s32 i; @@ -1387,7 +1411,8 @@ void fn_1_65C0(Vec* arg0, StructBss200** arg1) { temp_f31 = ABS_INV(temp_r31->unk54 - temp_r30->unk54) / 2.0f; if (temp_r31->unk54 > temp_r30->unk54) { arg0[i].x = temp_r31->unk54 - temp_f31; - } else { + } + else { arg0[i].x = temp_r30->unk54 - temp_f31; } temp_r31 = arg1[i]; @@ -1396,14 +1421,16 @@ void fn_1_65C0(Vec* arg0, StructBss200** arg1) { temp_f31 = ABS_INV(temp_r31->unk5C - temp_r30->unk5C) / 2.0f; if (temp_r31->unk5C > temp_r30->unk5C) { arg0[i].z = temp_r31->unk5C - temp_f31; - } else { + } + else { arg0[i].z = temp_r30->unk5C - temp_f31; } } } -s32 fn_1_67A0(float arg0, float arg1, StructBss200* arg2, StructBss200** arg3) { - StructBss200* var_r31; +s32 fn_1_67A0(float arg0, float arg1, StructBss200 *arg2, StructBss200 **arg3) +{ + StructBss200 *var_r31; StructBss200 sp5C; float var_f29; s32 var_r27; @@ -1435,9 +1462,10 @@ s32 fn_1_67A0(float arg0, float arg1, StructBss200* arg2, StructBss200** arg3) { return var_r27; } -s32 fn_1_6D04(void) { - StructBss200* sp8[3]; - StructBss200* var_r29; +s32 fn_1_6D04(void) +{ + StructBss200 *sp8[3]; + StructBss200 *var_r29; s32 var_r30; s32 var_r28; s32 i; @@ -1445,7 +1473,8 @@ s32 fn_1_6D04(void) { for (i = 0, var_r30 = 0; i < 4; i++) { if (i == lbl_1_bss_5AC) { var_r29 = &lbl_1_bss_200[i]; - } else { + } + else { sp8[var_r30++] = &lbl_1_bss_200[i]; } } @@ -1489,13 +1518,14 @@ s32 fn_1_6D04(void) { return var_r28; } -float fn_1_6E9C(StructBss200* arg0) { +float fn_1_6E9C(StructBss200 *arg0) +{ s32 sp88[3]; s32 sp50[2]; float sp44; float var_f20; float sp48[2]; - StructBss200* sp7C[3]; + StructBss200 *sp7C[3]; s32 var_r29; s32 var_r28; s32 i; @@ -1510,7 +1540,8 @@ float fn_1_6E9C(StructBss200* arg0) { if (sp44 < arg0->unk8C + sp7C[i]->unk8C + 100.0f) { sp88[i] = 1; var_r28++; - } else { + } + else { sp88[i] = -1; } } @@ -1536,17 +1567,19 @@ float fn_1_6E9C(StructBss200* arg0) { var_f20 = fn_1_5AD8(sp48[0], sp48[1]); break; } - if (var_f20 != -1.0f); + if (var_f20 != -1.0f) + ; if (var_f20 != -1.0f) { var_f20 = fn_1_21D4(var_f20); } return var_f20; } -void fn_1_78B4(StructBss200* arg0) { - StructBss200* temp_r18; - StructBss200* var_r17; - StructBss200* sp224[3]; +void fn_1_78B4(StructBss200 *arg0) +{ + StructBss200 *temp_r18; + StructBss200 *var_r17; + StructBss200 *sp224[3]; Vec sp254[3]; Vec sp230[3]; s32 sp218[3]; @@ -1638,7 +1671,8 @@ void fn_1_78B4(StructBss200* arg0) { if (var_f26 > 700.0f) { sp218[var_r30] = 1; sp120++; - } else { + } + else { sp218[var_r30] = 0; } if (var_f26 > var_f30) { @@ -1659,7 +1693,8 @@ void fn_1_78B4(StructBss200* arg0) { } arg0->unkBC = var_r21; arg0->unkCC = var_f27; - } else { + } + else { var_r21 = arg0->unkBC; var_f27 = arg0->unkCC; } @@ -1676,7 +1711,8 @@ void fn_1_78B4(StructBss200* arg0) { var_f28 = 800.0 * cosd(arg0->unkC4); } } - } else { + } + else { arg0->unkAC = 0; arg0->unkB4 = 0; arg0->unkBC = -1; @@ -1703,11 +1739,13 @@ void fn_1_78B4(StructBss200* arg0) { var_f28 = 800.0 * cosd(arg0->unkC4); if (fn_1_5F34(arg0, 10.0f)) { arg0->unkB0 &= ~0x20; - } else { + } + else { arg0->unkB0 |= 0x20; } } - } else { + } + else { if (arg0->unk54 >= 0.0f && arg0->unk5C < 0.0f) { sp138[0] = 0; sp138[1] = 1; @@ -1790,17 +1828,21 @@ void fn_1_78B4(StructBss200* arg0) { if (frandmod(2) != 0) { arg0->unkB0 |= 4; arg0->unkC0 = 30; - } else { + } + else { arg0->unkB0 |= 8; arg0->unkC0 = 30; } - } else if (sp130[0] != 0) { + } + else if (sp130[0] != 0) { arg0->unkB0 |= 4; arg0->unkC0 = 30; - } else if (sp130[1] != 0) { + } + else if (sp130[1] != 0) { arg0->unkB0 |= 8; arg0->unkC0 = 30; - } else { + } + else { arg0->unkB0 |= 0x10; } } @@ -1808,12 +1850,14 @@ void fn_1_78B4(StructBss200* arg0) { var_f27 = fn_1_21D4(atan2d(arg0->unk54, arg0->unk5C)); if (arg0->unkB0 & 4) { var_f27 += 10.0f; - } else { + } + else { var_f27 -= 10.0f; } var_f29 = 800.0 * sind(var_f27); var_f28 = 800.0 * cosd(var_f27); - } else { + } + else { var_f29 = arg0->unk54; var_f28 = arg0->unk5C; } @@ -1830,7 +1874,8 @@ void fn_1_78B4(StructBss200* arg0) { } if (var_f26 < 30.0f) { sp128 = 10.0f; - } else { + } + else { sp128 = 50.0f; } var_f27 = fn_1_21D4(atan2d(var_f29 - arg0->unk54, var_f28 - arg0->unk5C)); @@ -1839,9 +1884,10 @@ void fn_1_78B4(StructBss200* arg0) { } } -void fn_1_9AF0(void) { - StructBss200* temp_r31; - StructBss200* temp_r29; +void fn_1_9AF0(void) +{ + StructBss200 *temp_r31; + StructBss200 *temp_r29; Vec sp6C; float sp44; float sp40; @@ -1895,7 +1941,8 @@ void fn_1_9AF0(void) { HuAudPlayerVoicePlay(temp_r31->unk28, 0x119); } temp_r31->unk44--; - } else { + } + else { CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[7], 0.0f, 10.0f, HU3D_MOTATTR_NONE); temp_r31->unk44 = 20; temp_r31->unk34 = 6; @@ -1905,7 +1952,8 @@ void fn_1_9AF0(void) { if (temp_r31->unk44 != 0) { Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); temp_r31->unk44--; - } else if (Hu3DMotionEndCheck(temp_r31->unk00) == 1) { + } + else if (Hu3DMotionEndCheck(temp_r31->unk00) == 1) { CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[4], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); temp_r31->unk44 = 10; temp_r31->unk34 = 7; @@ -1914,7 +1962,8 @@ void fn_1_9AF0(void) { case 7: if (temp_r31->unk44 != 0) { temp_r31->unk44--; - } else { + } + else { CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 2.0f); temp_r31->unk34 = 0; } @@ -1935,15 +1984,19 @@ void fn_1_9AF0(void) { if (temp_r31->unk90 >= 8.0f) { if (temp_r31->unk34 != 3) { temp_r31->unk34 = 3; - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + CharModelMotionShiftSet( + lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } - } else if (temp_r31->unk34 != 2) { + } + else if (temp_r31->unk34 != 2) { temp_r31->unk34 = 2; - CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + CharModelMotionShiftSet( + lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } temp_r31->unk54 += sp6C.x * temp_r31->unk94; temp_r31->unk5C += sp6C.z * temp_r31->unk94; - } else if (temp_r31->unk34 != 0) { + } + else if (temp_r31->unk34 != 0) { temp_r31->unk34 = 0; CharModelMotionSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk06[4]); CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 2.0f); @@ -1979,7 +2032,8 @@ void fn_1_9AF0(void) { HuPrcVSleep(); } Hu3DModelRotSet(temp_r31->unk00, temp_r31->unk68, 0.0f, temp_r31->unk70); - } else { + } + else { omVibrate(temp_r31->unk28, 12, 4, 2); HuAudPlayerVoicePlay(temp_r31->unk28, 0x123); HuAudFXPlay(0x5EC); @@ -1999,7 +2053,8 @@ void fn_1_9AF0(void) { var_f28 = fn_1_21D4(atan2d(temp_r31->unk54 - temp_r29->unk54, temp_r31->unk5C - temp_r29->unk5C)); if (ABS_INV(var_f28 - temp_r31->unk6C) > 90.0f && ABS_INV(var_f28 - temp_r31->unk6C) < 270.0f) { CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk18, 0.0f, 5.0f, HU3D_MOTATTR_NONE); - } else { + } + else { CharModelMotionShiftSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], temp_r31->unk1A, 0.0f, 5.0f, HU3D_MOTATTR_NONE); } sp44 = temp_r31->unk58; @@ -2026,7 +2081,8 @@ void fn_1_9AF0(void) { } } -float fn_1_ADFC(s32 arg0, float arg1, float arg2) { +float fn_1_ADFC(s32 arg0, float arg1, float arg2) +{ float temp_f31; float var_f29; @@ -2037,16 +2093,19 @@ float fn_1_ADFC(s32 arg0, float arg1, float arg2) { if (temp_f31 > 0.0f) { var_f29 = -var_f29; } - } else { + } + else { var_f29 = temp_f31 / arg0; } - } else { + } + else { var_f29 = temp_f31 / arg0; } return var_f29; } -void fn_1_B054(StructBss200* arg0) { +void fn_1_B054(StructBss200 *arg0) +{ StructBss200 sp23C; float sp230[3]; float sp198[2]; @@ -2067,9 +2126,9 @@ void fn_1_B054(StructBss200* arg0) { float var_f31; s32 var_r21; s32 var_r20; - StructBss200* temp_r30; - StructBss200* var_r29; - StructBss200* temp_r28; + StructBss200 *temp_r30; + StructBss200 *var_r29; + StructBss200 *temp_r28; s32 var_r19; s32 var_r18; s32 var_r17; @@ -2079,7 +2138,7 @@ void fn_1_B054(StructBss200* arg0) { arg0->unkA0 = arg0->unkA1 = 0; arg0->unkA3 = arg0->unkA2 = 0; arg0->unkA4 = arg0->unkA6 = 0; - switch(GWPlayerCfg[arg0->unk28].diff) { + switch (GWPlayerCfg[arg0->unk28].diff) { case 0: var_r19 = 60; break; @@ -2106,14 +2165,17 @@ void fn_1_B054(StructBss200* arg0) { sp230[2] = fn_1_21D4(sp230[0] - sp230[1]); if (sp230[2] < 180.0f) { sp230[2] = fn_1_21D4(sp230[1] + sp230[2] + 180.0f); - } else { + } + else { sp230[2] = fn_1_21D4(sp230[1] - sp230[2]); } - } else { + } + else { sp230[2] = fn_1_21D4(sp230[1] - sp230[0]); if (sp230[2] < 180.0f) { sp230[2] = fn_1_21D4(sp230[0] + sp230[2] + 180.0f); - } else { + } + else { sp230[2] = fn_1_21D4(sp230[0] - sp230[2]); } } @@ -2137,17 +2199,21 @@ void fn_1_B054(StructBss200* arg0) { if (arg0->unkAC != 2) { if (fn_1_6D04() != 0) { arg0->unkAC = 0; - } else { + } + else { if (ABS_INV(temp_r30->unk54) > 600.0f && ABS_INV(temp_r30->unk5C) > 600.0f) { if (var_r21 <= 0) { arg0->unkAC = 0; - } else { + } + else { arg0->unkAC = 2; } - } else { + } + else { if (var_r21 <= 0) { arg0->unkAC = 0; - } else { + } + else { arg0->unkAC = 1; } } @@ -2258,7 +2324,8 @@ void fn_1_B054(StructBss200* arg0) { } if (sp198[0] < sp198[1]) { sp180 += sp198[0]; - } else { + } + else { sp180 += sp198[1]; } sp180 = fn_1_21D4(sp180); @@ -2267,7 +2334,8 @@ void fn_1_B054(StructBss200* arg0) { var_f30 = arg0->unk54 + sp194 * sind(sp180); var_f29 = arg0->unk5C + sp194 * cosd(sp180); var_f31 = fn_1_21D4(atan2d(var_f30 - arg0->unk54, var_f29 - arg0->unk5C)); - } else { + } + else { arg0->unkAC = 1; } break; @@ -2297,7 +2365,8 @@ void fn_1_B054(StructBss200* arg0) { if (ABS_INV(fn_1_21D4(arg0->unk6C - var_f31)) > 180.0f) { arg0->unkA0 = -30; var_r29->unk9C = arg0->unk98; - } else { + } + else { arg0->unkA0 = 30; var_r29->unk9C = -arg0->unk98; } @@ -2309,7 +2378,8 @@ void fn_1_B054(StructBss200* arg0) { if (VECMagXZ(&sp20C) > 10.0f) { if (ABS_INV(arg0->unk6C - var_f31) < 90.0f || ABS_INV(arg0->unk6C - var_f31) > 270.0f) { arg0->unkA4 |= 0x100; - } else { + } + else { arg0->unkA4 |= 0x200; var_r29->unk9C = -var_r29->unk9C; } @@ -2350,15 +2420,18 @@ void fn_1_B054(StructBss200* arg0) { if (arg0->unkB8 == 0) { arg0->unkB8 = 60; } - } else if (var_r18 == -1) { + } + else if (var_r18 == -1) { arg0->unkAC = 2; if (ABS_INV(arg0->unk6C - var_f31) < 90.0f || ABS_INV(arg0->unk6C - var_f31) > 270.0f) { arg0->unkA4 |= 0x100; - } else { + } + else { arg0->unkA4 |= 0x200; var_r29->unk9C = -var_r29->unk9C; } - } else { + } + else { arg0->unkA0 = 30; } } @@ -2367,8 +2440,9 @@ void fn_1_B054(StructBss200* arg0) { } } -void fn_1_DECC(void) { - StructBss200* temp_r31; +void fn_1_DECC(void) +{ + StructBss200 *temp_r31; s32 i; temp_r31 = HuPrcCurrentGet()->user_data; @@ -2383,7 +2457,8 @@ void fn_1_DECC(void) { } } -s32 fn_1_DF3C(StructBss200* arg0) { +s32 fn_1_DF3C(StructBss200 *arg0) +{ s32 var_r31; s32 var_r30; @@ -2398,27 +2473,27 @@ s32 fn_1_DF3C(StructBss200* arg0) { return var_r31; } -void fn_1_DF98(void) { +void fn_1_DF98(void) +{ float var_f27; float var_f25; float var_f26; - StructBss200* temp_r31; - StructBss200* temp_r30; + StructBss200 *temp_r31; + StructBss200 *temp_r30; s32 var_r25; s32 var_r29; s32 var_r28; s32 sp90; - Process* sp8C; + Process *sp8C; s32 sp88; s32 sp84; s32 sp80; s32 sp7C; - Process* sp78; + Process *sp78; temp_r31 = HuPrcCurrentGet()->user_data; temp_r31->unk34 = 0; - temp_r31->unkA8 = temp_r31->unkAC = temp_r31->unkB0 - = temp_r31->unkB4 = temp_r31->unkB8 = temp_r31->unk50 = 0; + temp_r31->unkA8 = temp_r31->unkAC = temp_r31->unkB0 = temp_r31->unkB4 = temp_r31->unkB8 = temp_r31->unk50 = 0; temp_r31->unkC0 = 0; temp_r31->unk38 = 0; temp_r31->unkD0 = 0; @@ -2441,7 +2516,7 @@ void fn_1_DF98(void) { if (temp_r31->unk3C != 0) { if (temp_r31->unk48 == 300) { sp8C = HuPrcChildCreate(fn_1_32F8, 0x2000, 0x1000, 0, HuPrcCurrentGet()); - sp8C->user_data = (void*) temp_r31->unk28; + sp8C->user_data = (void *)temp_r31->unk28; } if (temp_r31->unk48-- == 0) { temp_r31->unk3C = 0; @@ -2456,7 +2531,8 @@ void fn_1_DF98(void) { case 8: if (temp_r31->unk44 != 0) { temp_r31->unk44--; - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); temp_r31->unk34 = 0; } @@ -2478,7 +2554,8 @@ void fn_1_DF98(void) { } if (temp_r31->unk44 != 0) { temp_r31->unk44--; - } else { + } + else { Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[5]); Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); temp_r31->unk34 = 6; @@ -2520,7 +2597,8 @@ void fn_1_DF98(void) { if (fn_1_5038(temp_r31->unk28) & 0x100) { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); } @@ -2529,14 +2607,16 @@ void fn_1_DF98(void) { HuAudFXStop(var_r25); } } - } else { + } + else { if (temp_r31->unk34 != 3) { temp_r31->unk34 = 3; temp_r31->unk50 = 0; if (fn_1_5038(temp_r31->unk28) & 0x100) { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); } @@ -2549,7 +2629,8 @@ void fn_1_DF98(void) { if (temp_r31->unk3C != 1) { sp88 = 8; sp84 = 32; - } else { + } + else { sp88 = 7; sp84 = 22; } @@ -2564,12 +2645,14 @@ void fn_1_DF98(void) { if (temp_r31->unk50 >= 50) { temp_r31->unk50 -= 50; } - } else { + } + else { if (temp_r31->unk50 >= 30) { temp_r31->unk50 -= 30; } } - } else { + } + else { if (ABS_INV(fn_1_4E54(temp_r31->unk28, 0)) <= 20) { if (temp_r31->unk34 != 0) { temp_r31->unk34 = 0; @@ -2579,7 +2662,8 @@ void fn_1_DF98(void) { HuAudFXStop(var_r25); } } - } else { + } + else { if (temp_r31->unk34 != 1) { temp_r31->unk34 = 1; Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); @@ -2603,7 +2687,8 @@ void fn_1_DF98(void) { } temp_r31->unk54 = temp_r31->unk60; temp_r31->unk5C = temp_r31->unk64; - } else { + } + else { temp_r30->unk24 = 1; temp_r30->unk40 = temp_r31->unk28; } @@ -2622,7 +2707,8 @@ void fn_1_DF98(void) { } temp_r31->unk54 = temp_r31->unk60; temp_r31->unk5C = temp_r31->unk64; - } else { + } + else { temp_r30->unk24 = 1; temp_r30->unk40 = temp_r31->unk28; } @@ -2631,7 +2717,8 @@ void fn_1_DF98(void) { } if (temp_r31->unkD8 == temp_r31->unk54 && temp_r31->unkDC == temp_r31->unk5C) { temp_r31->unkD0++; - } else { + } + else { temp_r31->unkD8 = temp_r31->unk54; temp_r31->unkDC = temp_r31->unk5C; temp_r31->unkD0 = 0; @@ -2650,7 +2737,8 @@ void fn_1_DF98(void) { if (temp_r31->unk28 != 0) { HuAudFXPlay(0x5EA); } - } else { + } + else { if (temp_r31->unk28 == 0) { HuAudFXPlay(0x5EA); } @@ -2663,7 +2751,8 @@ void fn_1_DF98(void) { if (temp_r31->unk28 != 0) { HuAudFXPlay(0x5E3); } - } else { + } + else { if (temp_r31->unk28 == 0) { HuAudFXPlay(0x5E3); } @@ -2688,7 +2777,8 @@ void fn_1_DF98(void) { if (sp7C & 1) { Hu3DModelAttrReset(temp_r31->unk00, 1); Hu3DModelAttrReset(temp_r31->unk04, 1); - } else { + } + else { Hu3DModelAttrSet(temp_r31->unk00, 1); Hu3DModelAttrSet(temp_r31->unk04, 1); } @@ -2706,7 +2796,8 @@ void fn_1_DF98(void) { HuPrcVSleep(); } Hu3DModelAttrSet(temp_r31->unk00, 1); - } else { + } + else { var_f26 = temp_r31->unk98; Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); if (fn_1_21D4(temp_r31->unk6C) != 0.0f) { @@ -2737,8 +2828,9 @@ void fn_1_DF98(void) { } } -void fn_1_F73C(void) { - StructBss200* var_r31; +void fn_1_F73C(void) +{ + StructBss200 *var_r31; float var_f31; s32 var_r30; s32 var_r29; @@ -2772,8 +2864,9 @@ void fn_1_F73C(void) { } } -void fn_1_F9BC(void) { - StructBss200* temp_r31; +void fn_1_F9BC(void) +{ + StructBss200 *temp_r31; float temp_f26; float temp_f28; float temp_f27; @@ -2864,8 +2957,9 @@ void fn_1_F9BC(void) { CharModelMotionSpeedSet(lbl_1_data_0[GWPlayerCfg[temp_r31->unk28].character], 2.0f); } -void fn_1_10258(s32 arg0) { - StructBss200* var_r30; +void fn_1_10258(s32 arg0) +{ + StructBss200 *var_r30; float temp_f31; float temp_f30; float temp_f29; @@ -2891,7 +2985,8 @@ void fn_1_10258(s32 arg0) { } HuAudSStreamPlay(1); Hu3DMotionShiftSet(var_r30->unk00, var_r30->unk16, 0.0f, 5.0f, HU3D_MOTATTR_NONE); - } else { + } + else { for (lbl_1_bss_5A4 = 0; lbl_1_bss_5A4 < 60; lbl_1_bss_5A4++) { HuPrcVSleep(); } @@ -2899,7 +2994,8 @@ void fn_1_10258(s32 arg0) { } } -void fn_1_104A0(void) { +void fn_1_104A0(void) +{ while (TRUE) { if (omSysExitReq == 1) { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); @@ -2915,7 +3011,8 @@ void fn_1_104A0(void) { } } -void fn_1_10500(void) { +void fn_1_10500(void) +{ s16 temp_r28; s16 temp_r30; s16 var_r29; @@ -2966,7 +3063,8 @@ void fn_1_10500(void) { if (lbl_1_bss_5A8 == lbl_1_bss_5AC) { GWPlayerCoinWinSet(lbl_1_bss_5A8, 10); temp_r30 = MGSeqWinCreate(GWPlayerCfg[lbl_1_bss_5A8].character, -1, -1, -1); - } else { + } + else { for (i = 0, var_r27 = 0; i < 4; i++) { if (i != lbl_1_bss_5AC) { sp8[var_r27++] = i; diff --git a/src/REL/m421Dll/main.c b/src/REL/m421Dll/main.c index 24d109e2..8ab50b74 100644 --- a/src/REL/m421Dll/main.c +++ b/src/REL/m421Dll/main.c @@ -131,7 +131,7 @@ void ObjectSetup(void) sp8.x = sp8.z = 0.0f; sp8.y = lbl_1_data_18.z; mtxRot(sp2C, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); - PSMTXMultVec(sp2C, &sp8, &lbl_1_data_28); + MTXMultVec(sp2C, &sp8, &lbl_1_data_28); Hu3DGLightPosAimSetV(lbl_1_bss_12[0], &lbl_1_data_28, &lbl_1_data_40); Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); lbl_1_bss_10 = lbl_1_bss_E = lbl_1_bss_C = -1; @@ -647,7 +647,7 @@ void fn_1_38FC(ModelData *model, Mtx mtx) float var_f30; float var_f29; - PSMTXIdentity(spC); + MTXIdentity(spC); GXLoadPosMtxImm(spC, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); diff --git a/src/REL/m422Dll/main.c b/src/REL/m422Dll/main.c index 15c1186f..b51c3e68 100755 --- a/src/REL/m422Dll/main.c +++ b/src/REL/m422Dll/main.c @@ -14,8 +14,9 @@ #include "game/sprite.h" #include "game/wipe.h" -#include "ext_math.h" #include "dolphin.h" +#include "ext_math.h" + typedef struct { /* 0x00 */ s32 unk00; @@ -62,16 +63,16 @@ typedef struct { /* 0x2C */ s32 unk2C; } StructDataF0; // Size 0x30 -void fn_1_B480(omObjData* arg0); +void fn_1_B480(omObjData *arg0); StructBss104 lbl_1_bss_104[3][8]; StructBss54 lbl_1_bss_54[11]; -omObjData* lbl_1_bss_50; -omObjData* lbl_1_bss_4C; -omObjData* lbl_1_bss_3C[4]; -omObjData* lbl_1_bss_38; +omObjData *lbl_1_bss_50; +omObjData *lbl_1_bss_4C; +omObjData *lbl_1_bss_3C[4]; +omObjData *lbl_1_bss_38; s32 lbl_1_bss_34; -Process* lbl_1_bss_30; +Process *lbl_1_bss_30; s16 lbl_1_bss_2E; s16 lbl_1_bss_2C; s32 lbl_1_bss_28; @@ -86,140 +87,59 @@ float lbl_1_bss_8; float lbl_1_bss_4; float lbl_1_bss_0; -const float lbl_1_rodata_10[12] = { - 25.0f, 95.0f, 25.0f, - 75.0f, 75.0f, 75.0f, - 35.0f, 35.0f, 35.0f, - 25.0f, 50.0f, 50.0f -}; +const float lbl_1_rodata_10[12] = { 25.0f, 95.0f, 25.0f, 75.0f, 75.0f, 75.0f, 35.0f, 35.0f, 35.0f, 25.0f, 50.0f, 50.0f }; -const float lbl_1_rodata_40[12] = { - 75.0f, 0.0f, 75.0f, - 0.0f, 0.0f, 0.0f, - 20.0f, 20.0f, 20.0f, - 50.0f, 0.0f, 0.0f -}; +const float lbl_1_rodata_40[12] = { 75.0f, 0.0f, 75.0f, 0.0f, 0.0f, 0.0f, 20.0f, 20.0f, 20.0f, 50.0f, 0.0f, 0.0f }; -const float lbl_1_rodata_70[12] = { - 75.0f, 0.0f, 37.0f, - 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, - 70.0f, 0.0f, 0.0f -}; +const float lbl_1_rodata_70[12] = { 75.0f, 0.0f, 37.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 70.0f, 0.0f, 0.0f }; -const float lbl_1_rodata_A0[12] = { - 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, - 75.0f, 50.0f, 0.0f -}; +const float lbl_1_rodata_A0[12] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 75.0f, 50.0f, 0.0f }; -const float lbl_1_rodata_D0[12] = { - 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f -}; +const float lbl_1_rodata_D0[12] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; -const float lbl_1_rodata_100[12] = { - 30.0f, 30.0f, 30.0f, - 30.0f, 30.0f, 30.0f, - 40.0f, 40.0f, 40.0f, - 0.0f, 0.0f, 0.0f -}; +const float lbl_1_rodata_100[12] = { 30.0f, 30.0f, 30.0f, 30.0f, 30.0f, 30.0f, 40.0f, 40.0f, 40.0f, 0.0f, 0.0f, 0.0f }; -const float lbl_1_rodata_130[12] = { - 290.0f, 290.0f, 290.0f, - 370.0f, 370.0f, 370.0f, - 450.0f, 450.0f, 450.0f, - 0.0f, 0.0f, 0.0f -}; +const float lbl_1_rodata_130[12] = { 290.0f, 290.0f, 290.0f, 370.0f, 370.0f, 370.0f, 450.0f, 450.0f, 450.0f, 0.0f, 0.0f, 0.0f }; -s32 lbl_1_data_0[] = { - DATA_MAKE_NUM(DATADIR_MGCONST, 41), - DATA_MAKE_NUM(DATADIR_MGCONST, 40), - DATA_MAKE_NUM(DATADIR_MGCONST, 51), - DATA_MAKE_NUM(DATADIR_MGCONST, 51), - DATA_MAKE_NUM(DATADIR_MGCONST, 8), - DATA_MAKE_NUM(DATADIR_M422, 51), - DATA_MAKE_NUM(DATADIR_MGCONST, 0), - DATA_MAKE_NUM(DATADIR_MGCONST, 37), - DATA_MAKE_NUM(DATADIR_MGCONST, 36), - DATA_MAKE_NUM(DATADIR_MGCONST, 51), - DATA_MAKE_NUM(DATADIR_MGCONST, 51), - DATA_MAKE_NUM(DATADIR_MGCONST, 8), - DATA_MAKE_NUM(DATADIR_M422, 51), - DATA_MAKE_NUM(DATADIR_MGCONST, 12), - DATA_MAKE_NUM(DATADIR_MGCONST, 12), - DATA_MAKE_NUM(DATADIR_MGCONST, 12) -}; +s32 lbl_1_data_0[] = { DATA_MAKE_NUM(DATADIR_MGCONST, 41), DATA_MAKE_NUM(DATADIR_MGCONST, 40), DATA_MAKE_NUM(DATADIR_MGCONST, 51), + DATA_MAKE_NUM(DATADIR_MGCONST, 51), DATA_MAKE_NUM(DATADIR_MGCONST, 8), DATA_MAKE_NUM(DATADIR_M422, 51), DATA_MAKE_NUM(DATADIR_MGCONST, 0), + DATA_MAKE_NUM(DATADIR_MGCONST, 37), DATA_MAKE_NUM(DATADIR_MGCONST, 36), DATA_MAKE_NUM(DATADIR_MGCONST, 51), DATA_MAKE_NUM(DATADIR_MGCONST, 51), + DATA_MAKE_NUM(DATADIR_MGCONST, 8), DATA_MAKE_NUM(DATADIR_M422, 51), DATA_MAKE_NUM(DATADIR_MGCONST, 12), DATA_MAKE_NUM(DATADIR_MGCONST, 12), + DATA_MAKE_NUM(DATADIR_MGCONST, 12) }; -s32 lbl_1_data_40[] = { - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x005E0000, 0x00190000, 0x006C0000, 0x00890000, - 0x00840000, 0x00100000, 0x000C0000, 0x00800000 -}; +s32 lbl_1_data_40[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x005E0000, 0x00190000, 0x006C0000, 0x00890000, 0x00840000, 0x00100000, + 0x000C0000, 0x00800000 }; -s32 lbl_1_data_A0[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), - DATA_MAKE_NUM(DATADIR_M422, 0), - DATA_MAKE_NUM(DATADIR_M422, 8), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) -}; +s32 lbl_1_data_A0[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), + DATA_MAKE_NUM(DATADIR_M422, 0), DATA_MAKE_NUM(DATADIR_M422, 8), DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) }; u32 lbl_1_data_C0[] = { 0, 0, 0, 1, 1, 0, 0, 0 }; u8 lbl_1_data_E0[] = { 0, 0, 0, 1, 0, 1, 1 }; u8 lbl_1_data_E7[] = { 8, 8, 8, 0, 12, 0, 8, 8, 0 }; StructDataF0 lbl_1_data_F0[12][10] = { 0 }; -char* lbl_1_data_1828[] = { - "m422al01-cube8", - "m422al02-cyl143", - "m422al03-cube11", - "m422am01-cyl76", - "m422am02-cube13", - "m422am03-cube12", - "m422as01-cube9", - "m422test11-cube9", - "m422test12-cube9", - "m422m09m-m422m09m", - "coin", - "m422a04-sphere2", - "m422m09m-m422m09m", - "m422m09m-m422m09m", - "m422m09m-m422m09m", - "m422m09m-m422m09m", - "m422m09m-m422m09m", - "m422m09m-m422m09m", - "m422m09m-m422m09m", - "m422m09m-m422m09m" -}; +char *lbl_1_data_1828[] + = { "m422al01-cube8", "m422al02-cyl143", "m422al03-cube11", "m422am01-cyl76", "m422am02-cube13", "m422am03-cube12", "m422as01-cube9", + "m422test11-cube9", "m422test12-cube9", "m422m09m-m422m09m", "coin", "m422a04-sphere2", "m422m09m-m422m09m", "m422m09m-m422m09m", + "m422m09m-m422m09m", "m422m09m-m422m09m", "m422m09m-m422m09m", "m422m09m-m422m09m", "m422m09m-m422m09m", "m422m09m-m422m09m" }; s32 lbl_1_data_1878[11] = { 0 }; s32 lbl_1_data_18A4[2] = { 0 }; s32 lbl_1_data_18AC = -1; s32 lbl_1_data_18B0 = -1; -float lbl_1_data_18B4[][4] = { - { 0.0f, 300.0f, 450.0f, 180.0f }, - { -200.0f, 0.0f, 1050.0f, 180.0f }, - { 0.0f, 0.0f, 1050.0f, 180.0f }, - { 200.0f, 0.0f, 1050.0f, 180.0f } -}; +float lbl_1_data_18B4[][4] + = { { 0.0f, 300.0f, 450.0f, 180.0f }, { -200.0f, 0.0f, 1050.0f, 180.0f }, { 0.0f, 0.0f, 1050.0f, 180.0f }, { 200.0f, 0.0f, 1050.0f, 180.0f } }; s32 lbl_1_data_18F4[] = { 0, 0 }; float lbl_1_data_18FC = 1.0f; // unused s32 lbl_1_data_1900 = -1; -void fn_1_A0(void) { +void fn_1_A0(void) +{ Center.x += 10.0 * (((HuPadBtn[0] & 2) != 0) - ((HuPadBtn[0] & 1) != 0)); Center.z -= 10.0 * (((HuPadBtn[0] & 8) != 0) - ((HuPadBtn[0] & 4) != 0)); Center.y += ((HuPadTrigL[0] - HuPadTrigR[0]) / 128.0) * 30.0; @@ -227,7 +147,8 @@ void fn_1_A0(void) { CRot.x += HuPadSubStkY[0] / -16.0; } -void fn_1_2FC(omObjData* arg0) { +void fn_1_2FC(omObjData *arg0) +{ Mtx sp254; s32 sp1CC; s32 sp1C8; @@ -260,9 +181,9 @@ void fn_1_2FC(omObjData* arg0) { float temp_f26; float phi_f29; float phi_f28; - StructDataF0* temp_r28; - StructDataF0* temp_r29; - StructBss3CData* temp_r31; + StructDataF0 *temp_r28; + StructDataF0 *temp_r29; + StructBss3CData *temp_r31; s32 var_r19; s32 phi_r23; s32 phi_r26; @@ -289,19 +210,19 @@ void fn_1_2FC(omObjData* arg0) { temp_f24 = lbl_1_data_18B4[temp_r31->unk00][2] - arg0->trans.z; sp14C = 270.0 + atan2d(temp_f25, temp_f24) - CRot.y; sp148 = sqrtf(temp_f25 * temp_f25 + temp_f24 * temp_f24); - sp148 = (sp148 > 100.0f) ? 72.0f - : (sp148 < 12.0f) ? 0.0f - : (72.0f * (sp148 / 100.0f)); + sp148 = (sp148 > 100.0f) ? 72.0f : (sp148 < 12.0f) ? 0.0f : (72.0f * (sp148 / 100.0f)); sp154 = sp148 * cosd(sp14C); sp150 = sp148 * sind(sp14C); if (sp148 == 0.0f) { temp_r31->unk20 = 0; } - } else if (temp_r31->unk20 == 1) { + } + else if (temp_r31->unk20 == 1) { if (temp_r31->unk0C != -1) { sp154 = HuPadStkX[temp_r31->unk0C]; sp150 = HuPadStkY[temp_r31->unk0C]; - } else { + } + else { float sp238[7] = { 0 }; float sp21C[7] = { 0 }; float sp1EC[] = { -400.0f, -550.0f, -700.0f, -800.0f }; @@ -319,20 +240,22 @@ void fn_1_2FC(omObjData* arg0) { sp144 = (i < 10) ? (i * 4 + 43 + phi_r23) : ((i - 10) * 10 + 83 + phi_r23); if (temp_r28->unk04 != 0 && !(temp_r28->unk14 < 0.0f)) { Hu3DModelObjPosGet(lbl_1_bss_38->model[sp144], lbl_1_data_1828[temp_r28->unk00], &sp1D0); - phi_r26 = (s32) (300.0f + sp1D0.x + 2000.0f) / 100 - 20; + phi_r26 = (s32)(300.0f + sp1D0.x + 2000.0f) / 100 - 20; phi_r26--; for (phi_r22 = 0; phi_r22 < 3; phi_r26++, phi_r22++) { if (phi_r26 >= 0 && phi_r26 < 7 && arg0->trans.z + 50.0f >= sp1D0.z - lbl_1_rodata_10[temp_r28->unk00] - lbl_1_rodata_70[temp_r28->unk00] - && sp1D0.x - lbl_1_rodata_10[temp_r28->unk00] - lbl_1_rodata_70[temp_r28->unk00] - 50.0f < (phi_r26 - 3) * 100 && sp1D0.x + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00] + 50.0f > (phi_r26 - 3) * 100) - { + && sp1D0.x - lbl_1_rodata_10[temp_r28->unk00] - lbl_1_rodata_70[temp_r28->unk00] - 50.0f < (phi_r26 - 3) * 100 + && sp1D0.x + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00] + 50.0f > (phi_r26 - 3) * 100) { if (temp_r28->unk00 < 10) { if (sp238[phi_r26] < sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00]) { sp238[phi_r26] = sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00]; } - } else { + } + else { if (sp21C[phi_r26] < sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00]) { - sp21C[phi_r26] = sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00] + (temp_r28->unk00 < 11); + sp21C[phi_r26] = sp1D0.z + lbl_1_rodata_10[temp_r28->unk00] + lbl_1_rodata_70[temp_r28->unk00] + + (temp_r28->unk00 < 11); } } } @@ -340,13 +263,12 @@ void fn_1_2FC(omObjData* arg0) { } } } - phi_r26 = (s32) (300.0f + arg0->trans.x + 2000.0f) / 100 - 20; - phi_r26 = (phi_r26 < 0) ? 0 - : (phi_r26 >= 7) ? 6 - : phi_r26; + phi_r26 = (s32)(300.0f + arg0->trans.x + 2000.0f) / 100 - 20; + phi_r26 = (phi_r26 < 0) ? 0 : (phi_r26 >= 7) ? 6 : phi_r26; for (i = 0, phi_r22 = phi_r26; i < 7; i++) { var_r19 = ((temp_r31->unk00 / 2) % 2 == 0) ? i : (6 - i); - if (sp21C[phi_r22] - 60.0 * fabs(phi_r22 - phi_r26) < sp21C[var_r19] - 60.0 * fabs(var_r19 - phi_r26) && sp238[var_r19] < sp21C[var_r19]) { + if (sp21C[phi_r22] - 60.0 * fabs(phi_r22 - phi_r26) < sp21C[var_r19] - 60.0 * fabs(var_r19 - phi_r26) + && sp238[var_r19] < sp21C[var_r19]) { phi_r22 = var_r19; } } @@ -359,8 +281,11 @@ void fn_1_2FC(omObjData* arg0) { } sp140 = arg0->trans.z - (temp_r31->unk00 == 0 ? -100.0f : 700.0f); sp13C = (((sp238[phi_r22] > sp140 - 400.0f || sp140 > 550.0f) ? phi_r23 - : (sp140 > 500.0f) ? ((sp140 - 500.0f) / 50.0f) * phi_r23 + (1.0f - (sp140 - 500.0f) / 50.0f) * phi_r22 - : phi_r22) - 3.0f) * 100.0f - arg0->trans.x; + : (sp140 > 500.0f) ? ((sp140 - 500.0f) / 50.0f) * phi_r23 + (1.0f - (sp140 - 500.0f) / 50.0f) * phi_r22 + : phi_r22) + - 3.0f) + * 100.0f + - arg0->trans.x; { float sp1C4[] = { -21.0f, 0.0f, 15.0f }; float sp1B8[] = { 60.0f, 65.0f, 53.0f }; @@ -370,23 +295,18 @@ void fn_1_2FC(omObjData* arg0) { var_r18 = (temp_r31->unk14 / 5) % 3; var_r18 = (temp_r31->unk00 == 0) ? (arg0->trans.z < 200.0f ? 0 : 1) : 2; sp13C /= 20.0f; - sp13C = (sp13C < -1.0f) ? sp13C - : (sp13C > 1.0f) ? 1.0f - : sp13C; + sp13C = (sp13C < -1.0f) ? sp13C : (sp13C > 1.0f) ? 1.0f : sp13C; sp138 = (sp13C < 0.0f) ? -sp13C : sp13C; sp134 = 1.0f - sp138; - sp154 = (sp13C < 0.0f) - ? (36.0f * sp134 + sp138 * sp1C4[var_r18]) - : (36.0f * sp134 + sp138 * sp1B8[var_r18]); - sp150 = (sp13C < 0.0f) - ? (42.0f * sp134 + sp138 * sp1AC[var_r18]) - : (42.0f * sp134 + sp138 * sp1A0[var_r18]); + sp154 = (sp13C < 0.0f) ? (36.0f * sp134 + sp138 * sp1C4[var_r18]) : (36.0f * sp134 + sp138 * sp1B8[var_r18]); + sp150 = (sp13C < 0.0f) ? (42.0f * sp134 + sp138 * sp1AC[var_r18]) : (42.0f * sp134 + sp138 * sp1A0[var_r18]); } temp_f23 = temp_r31->unk38 - sp154; temp_f22 = temp_r31->unk3C - sp150; if (sqrtf(temp_f23 * temp_f23 + temp_f22 * temp_f22) > 50.0f) { temp_r31->unk40++; - } else { + } + else { temp_r31->unk40 = 0; } if (temp_r31->unk40 >= 2) { @@ -404,40 +324,39 @@ void fn_1_2FC(omObjData* arg0) { sp12C = arg0->trans.z; phi_r25 = 4; arg0->trans.z += 9.375; - if (temp_r31->unk00 == 0 - && lbl_1_data_1900 != -1 - && arg0->trans.z > (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) + 50.0f - && sp12C <= (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) + 50.0f) - { + if (temp_r31->unk00 == 0 && lbl_1_data_1900 != -1 && arg0->trans.z > (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) + 50.0f + && sp12C <= (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) + 50.0f) { HuAudFXStop(lbl_1_data_1900); lbl_1_data_1900 = -1; } temp_r31->unk30 -= 1.0f; - arg0->trans.y += (arg0->trans.z > (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) - 50.0f) - ? temp_r31->unk30 : 0.0f; - if (temp_r31->unk00 == 0 && lbl_1_data_1900 == -1 && arg0->trans.z > 670.0f && arg0->trans.z < 1450.0f && arg0->trans.y == 0.0f && sp130 > 0.0f) { + arg0->trans.y += (arg0->trans.z > (arg0->trans.y > 0.0f ? 620.0f : 1400.0f) - 50.0f) ? temp_r31->unk30 : 0.0f; + if (temp_r31->unk00 == 0 && lbl_1_data_1900 == -1 && arg0->trans.z > 670.0f && arg0->trans.z < 1450.0f && arg0->trans.y == 0.0f + && sp130 > 0.0f) { lbl_1_data_1900 = HuAudFXPlay(0x612); } if (arg0->trans.z < 1400.0f && arg0->trans.y <= 0.0f) { arg0->trans.y = 0.0f; temp_r31->unk30 = 0.0f; } - arg0->rot.y += (arg0->rot.y < 0.0f) ? 360 - : (arg0->rot.y > 360.0f) ? -360 : 0; + arg0->rot.y += (arg0->rot.y < 0.0f) ? 360 : (arg0->rot.y > 360.0f) ? -360 : 0; arg0->rot.y = (arg0->rot.y > 140.0f && arg0->rot.y < 220.0f) ? 180.0f - : (arg0->rot.y < 180.0f) ? (40.0f + arg0->rot.y) - : (arg0->rot.y > 180.0f) ? (arg0->rot.y - 40.0f) - : arg0->trans.y;; + : (arg0->rot.y < 180.0f) ? (40.0f + arg0->rot.y) + : (arg0->rot.y > 180.0f) ? (arg0->rot.y - 40.0f) + : arg0->trans.y; + ; if (lbl_1_bss_C % 4 < 3) { Hu3DModelAttrReset(arg0->model[0], 1); - } else { + } + else { Hu3DModelAttrSet(arg0->model[0], 1); } if (arg0->trans.y < -500.0f) { temp_r31->unk20 = 3; Hu3DModelAttrSet(arg0->model[0], 1); } - } else if (temp_r31->unk20 != 3 && temp_r31->unk20 != 4) { + } + else if (temp_r31->unk20 != 3 && temp_r31->unk20 != 4) { if (temp_r31->unk20 == 5) { if (temp_r31->unk24 == 0) { phi_r25 = 3; @@ -453,7 +372,8 @@ void fn_1_2FC(omObjData* arg0) { if (temp_r31->unk24 >= 31 && temp_r31->unk24 <= 38) { arg0->trans.x -= 150.0 * -sind(arg0->rot.y) / 7.0; arg0->trans.z -= 150.0 * -cosd(arg0->rot.y) / 7.0; - } else { + } + else { arg0->trans.x = lbl_1_data_F0[9][temp_r31->unk00].unk0C; arg0->trans.y = (temp_r31->unk00 == 0) ? 300 : 0; arg0->trans.z = lbl_1_data_F0[9][temp_r31->unk00].unk14; @@ -464,15 +384,16 @@ void fn_1_2FC(omObjData* arg0) { if (temp_r31->unk24 == 38) { temp_r31->unk20 = 1; } - } else { + } + else { float temp_f31 = 0.25 * sp154; float temp_f30 = 0.25 * -sp150; Vec sp194 = { 0.0f, 0.0f, 0.0f }; sp194.x = temp_f31; sp194.z = temp_f30; - PSMTXRotRad(sp254, 'y', MTXDegToRad(CRot.y)); - PSMTXMultVec(sp254, &sp194, &sp194); + MTXRotRad(sp254, 'y', MTXDegToRad(CRot.y)); + MTXMultVec(sp254, &sp194, &sp194); temp_f31 = sp194.x; temp_f30 = sp194.z; sp158 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30); @@ -480,7 +401,8 @@ void fn_1_2FC(omObjData* arg0) { if (sp158 < 10.0f) { temp_r31->unk2C = temp_f31; temp_r31->unk34 += temp_f30; - } else { + } + else { temp_f31 /= sp158; temp_f30 /= sp158; sp158 = 10.0f; @@ -492,11 +414,13 @@ void fn_1_2FC(omObjData* arg0) { if (temp_r31->unk20 == 1) { if (temp_r31->unk28 >= 8.0f) { phi_r25 = 2; - } else { + } + else { phi_r25 = 1; } } - } else if (temp_r31->unk20 == 1) { + } + else if (temp_r31->unk20 == 1) { phi_r25 = 0; } if (lbl_1_bss_34 == 1005 && (temp_r31->unk20 == 1 || temp_r31->unk20 == 0)) { @@ -504,10 +428,7 @@ void fn_1_2FC(omObjData* arg0) { Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); temp_r31->unk20 = 0; if (lbl_1_bss_8 == 1.0f && lbl_1_data_18F4[temp_r31->unk00 == 0 ? 0 : 1] > 0) { - s32 sp1FC[] = { - 0x122, 0x162, 0x1A2, 0x1E2, - 0x222, 0x262, 0x2A2, 0x2E2 - }; + s32 sp1FC[] = { 0x122, 0x162, 0x1A2, 0x1E2, 0x222, 0x262, 0x2A2, 0x2E2 }; HuAudFXPlay(sp1FC[temp_r31->unk08]); } @@ -540,28 +461,26 @@ void fn_1_2FC(omObjData* arg0) { } if (lbl_1_bss_34 > 1001) { for (phi_r24 = 0; phi_r24 < 12; phi_r24++) { - if (phi_r24 == 9 && lbl_1_bss_34 <= 1001) { - } + if (phi_r24 == 9 && lbl_1_bss_34 <= 1001) { } for (phi_r20 = 0; phi_r20 < (phi_r24 < 10 ? 4 : 10); phi_r20++) { temp_r29 = &lbl_1_data_F0[phi_r24][phi_r20]; - sp124 = (phi_r24 < 10) ? (phi_r24 * 4 + 43 + phi_r20) - : ((phi_r24 - 10) * 10 + 83 + phi_r20); + sp124 = (phi_r24 < 10) ? (phi_r24 * 4 + 43 + phi_r20) : ((phi_r24 - 10) * 10 + 83 + phi_r20); if (temp_r29->unk04 != 0 && temp_r29->unk2C <= 0) { Vec sp188; Hu3DModelObjPosGet(lbl_1_bss_38->model[sp124], lbl_1_data_1828[temp_r29->unk00], &sp188); if (((temp_r29->unk04 == 3 || (temp_r29->unk04 == 4 && sp188.y >= 250.0f)) && temp_r31->unk00 == 0) - || (((temp_r29->unk04 == 4 && sp188.y < 250.0f) || temp_r29->unk04 == 5 || temp_r29->unk04 == 6) && temp_r31->unk00 != 0)) - { + || (((temp_r29->unk04 == 4 && sp188.y < 250.0f) || temp_r29->unk04 == 5 || temp_r29->unk04 == 6) + && temp_r31->unk00 != 0)) { sp11C = sp188.x; sp118 = sp188.z; if (lbl_1_rodata_40[temp_r29->unk00] > 0.0f || lbl_1_rodata_70[temp_r29->unk00] > 0.0f) { sp11C = (arg0->trans.x < sp11C - lbl_1_rodata_40[temp_r29->unk00]) ? (sp11C - lbl_1_rodata_40[temp_r29->unk00]) - : (arg0->trans.x > sp11C + lbl_1_rodata_40[temp_r29->unk00]) ? (sp11C + lbl_1_rodata_40[temp_r29->unk00]) - : arg0->trans.x; + : (arg0->trans.x > sp11C + lbl_1_rodata_40[temp_r29->unk00]) ? (sp11C + lbl_1_rodata_40[temp_r29->unk00]) + : arg0->trans.x; sp118 = (arg0->trans.z < sp118 - lbl_1_rodata_70[temp_r29->unk00]) ? (sp118 - lbl_1_rodata_70[temp_r29->unk00]) - : (arg0->trans.z > sp118 + lbl_1_rodata_70[temp_r29->unk00]) ? (sp118 + lbl_1_rodata_70[temp_r29->unk00]) - : arg0->trans.z; + : (arg0->trans.z > sp118 + lbl_1_rodata_70[temp_r29->unk00]) ? (sp118 + lbl_1_rodata_70[temp_r29->unk00]) + : arg0->trans.z; } temp_f26 = sp11C - arg0->trans.x; phi_f28 = sp118 - arg0->trans.z; @@ -575,7 +494,8 @@ void fn_1_2FC(omObjData* arg0) { phi_f28 *= (50.0f + lbl_1_rodata_10[temp_r29->unk00]) / sp120; arg0->trans.x = sp11C - temp_f26; arg0->trans.z = sp118 - phi_f28; - } else { + } + else { temp_r29->unk04 = 0; lbl_1_data_18F4[temp_r31->unk00 == 0 ? 0 : 1] += (phi_r24 == 10 ? 1 : 5); CharModelCoinEffectCreate(-1, &sp188); @@ -653,20 +573,20 @@ void fn_1_2FC(omObjData* arg0) { phi_r25 = 0; } arg0->trans.x = lbl_1_data_F0[9][sp114].unk0C; - arg0->trans.z = (lbl_1_bss_8 > 163.0f) ? arg0->trans.z - : (lbl_1_bss_8 > 155.0f) ? (arg0->trans.z - 18.75) - : lbl_1_data_F0[9][sp114].unk14; + arg0->trans.z = (lbl_1_bss_8 > 163.0f) ? arg0->trans.z : (lbl_1_bss_8 > 155.0f) ? (arg0->trans.z - 18.75) : lbl_1_data_F0[9][sp114].unk14; } if (temp_r31->unk1C >= 0) { phi_r25 = temp_r31->unk1C; } if (phi_r25 >= 0 && phi_r25 != temp_r31->unk18) { - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[phi_r25], 0.0f, lbl_1_data_E7[phi_r25], (lbl_1_data_E0[phi_r25] != 0) ? HU3D_MOTATTR_NONE : HU3D_MOTATTR_LOOP); + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[phi_r25], 0.0f, lbl_1_data_E7[phi_r25], + (lbl_1_data_E0[phi_r25] != 0) ? HU3D_MOTATTR_NONE : HU3D_MOTATTR_LOOP); temp_r31->unk18 = phi_r25; } } -s32 fn_1_34BC(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) { +s32 fn_1_34BC(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) +{ Vec sp1C; float var_f27; float var_f28; @@ -675,7 +595,7 @@ s32 fn_1_34BC(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) { float temp_f30; float var_f31; float sp18; - StructDataF0* temp_r31; + StructDataF0 *temp_r31; s32 var_r24; s32 i; s32 j; @@ -692,27 +612,19 @@ s32 fn_1_34BC(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) { var_f25 = 50.0f + lbl_1_rodata_70[temp_r31->unk00]; var_f26 = 50.0f + lbl_1_rodata_70[temp_r31->unk00]; if (temp_r31->unk04 == 3) { - float sp28[][12] = { - { - -25.0f, -25.0f, -25.0f, - -6.6875f, -6.6875f, -6.6875f, - 62.765625f, 62.765625f, 62.765625f, - 51.99469f, 76.875f, 45.0f - }, - { - -27.647583f, -27.647583f, -27.647583f, - -9.64325f, -9.64325f, -9.64325f, - 60.49022f, 60.49022f, 60.49022f, - 51.99469f, 76.875f, 45.0f - } - }; + float sp28[][12] = { { -25.0f, -25.0f, -25.0f, -6.6875f, -6.6875f, -6.6875f, 62.765625f, 62.765625f, 62.765625f, 51.99469f, + 76.875f, 45.0f }, + { -27.647583f, -27.647583f, -27.647583f, -9.64325f, -9.64325f, -9.64325f, 60.49022f, 60.49022f, 60.49022f, 51.99469f, + 76.875f, 45.0f } }; var_f28 += sp28[temp_r31->unk08 == 0 ? 0 : 1][temp_r31->unk00]; var_f25 += 50.0f; var_f26 += 50.0f; - } else if (temp_r31->unk04 == 5 && temp_r31->unk08 == 0) { + } + else if (temp_r31->unk04 == 5 && temp_r31->unk08 == 0) { var_f28 += lbl_1_rodata_130[temp_r31->unk00]; - } else if (temp_r31->unk04 == 1) { + } + else if (temp_r31->unk04 == 1) { var_f27 = (temp_r31->unk0C < 0.0f ? -1 : 1) * 321; var_f28 = 880.0f - lbl_1_bss_0 * (100 - temp_r31->unk08); } @@ -721,11 +633,9 @@ s32 fn_1_34BC(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) { } if (lbl_1_rodata_40[temp_r31->unk00] > 0.0f || var_f25 > 0.0f || var_f26 > 0.0f) { var_f27 = (arg0 < var_f27 - lbl_1_rodata_40[temp_r31->unk00]) ? (var_f27 - lbl_1_rodata_40[temp_r31->unk00]) - : (arg0 > var_f27 + lbl_1_rodata_40[temp_r31->unk00]) ? (var_f27 + lbl_1_rodata_40[temp_r31->unk00]) - : arg0; - var_f28 = (arg1 < var_f28 - var_f25) ? (var_f28 - var_f25) - : (arg1 > var_f28 + var_f26) ? (var_f28 + var_f26) - : arg1; + : (arg0 > var_f27 + lbl_1_rodata_40[temp_r31->unk00]) ? (var_f27 + lbl_1_rodata_40[temp_r31->unk00]) + : arg0; + var_f28 = (arg1 < var_f28 - var_f25) ? (var_f28 - var_f25) : (arg1 > var_f28 + var_f26) ? (var_f28 + var_f26) : arg1; } temp_f30 = var_f27 - arg0; var_f31 = var_f28 - arg1; @@ -743,8 +653,9 @@ s32 fn_1_34BC(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) { return 0; } -void fn_1_3B74(omObjData* arg0) { - StructBss3CData* sp354[4]; +void fn_1_3B74(omObjData *arg0) +{ + StructBss3CData *sp354[4]; Vec sp348; s32 var_r20; s32 var_r19; @@ -773,7 +684,7 @@ void fn_1_3B74(omObjData* arg0) { float temp_f29; float temp_f30; float temp_f31; - StructDataF0* temp_r31; + StructDataF0 *temp_r31; s32 var_r21; s32 var_r28; s32 var_r27; @@ -786,10 +697,11 @@ void fn_1_3B74(omObjData* arg0) { } lbl_1_bss_C++; lbl_1_bss_0 = (lbl_1_bss_34 <= 1002) ? 1.5 - : (lbl_1_bss_34 == 1003) ? (7.5 * (lbl_1_bss_8 > 120.0f ? 1.0 : (0.2 + 0.8 * (lbl_1_bss_8 / 120.0)))) - : 0.0; - lbl_1_bss_4 = (lbl_1_bss_34 < 1005 && sp354[0]->unk20 >= 2 && sp354[0]->unk20 <= 5 - && !(lbl_1_bss_34 == 1003 && lbl_1_bss_8 <= 120.0f)) ? 7.5 : lbl_1_bss_0; + : (lbl_1_bss_34 == 1003) ? (7.5 * (lbl_1_bss_8 > 120.0f ? 1.0 : (0.2 + 0.8 * (lbl_1_bss_8 / 120.0)))) + : 0.0; + lbl_1_bss_4 = (lbl_1_bss_34 < 1005 && sp354[0]->unk20 >= 2 && sp354[0]->unk20 <= 5 && !(lbl_1_bss_34 == 1003 && lbl_1_bss_8 <= 120.0f)) + ? 7.5 + : lbl_1_bss_0; Hu3DMotionSpeedSet(arg0->model[1], 1.5 * lbl_1_bss_4 / 7.5); Hu3DMotionSpeedSet(arg0->model[3], 1.5 * lbl_1_bss_0 / 7.5); if (lbl_1_data_18B0 != -1) { @@ -798,9 +710,7 @@ void fn_1_3B74(omObjData* arg0) { HuAudFXVolSet(lbl_1_data_18B0, temp_f21 <= 0.001 ? 0 : 127); } if (lbl_1_bss_34 <= 1001) { - temp_f31 = (lbl_1_bss_34 == 1000 || lbl_1_bss_8 < 60.0f) ? 0.0 - : (lbl_1_bss_8 < 120.0f) ? (lbl_1_bss_8 - 60.0f) / 60.0 - : 1.0; + temp_f31 = (lbl_1_bss_34 == 1000 || lbl_1_bss_8 < 60.0f) ? 0.0 : (lbl_1_bss_8 < 120.0f) ? (lbl_1_bss_8 - 60.0f) / 60.0 : 1.0; temp_f31 = 1.0f - temp_f31; temp_f31 *= temp_f31; temp_f31 = 1.0f - temp_f31; @@ -844,15 +754,16 @@ void fn_1_3B74(omObjData* arg0) { var_r17 = sp22C + (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 60 == 38 && lbl_1_bss_28 > 120); sp228 = (lbl_1_bss_34 == 1003 && lbl_1_bss_C % 60 == 0) ? (rand8() % 2 + 2) : 0; while (var_r19 > 0 || var_r18 > 0 || var_r17 > 0 || sp228 > 0) { - var_r27 = (rand8() % 2 == 0) - ? ((var_r17 != 0) ? 3 - : (sp228 != 0) ? 4 - : (var_r19 != 0) ? 1 - : (var_r18 != 0) ? 2 : 0) - : ((var_r17 != 0) ? 3 - : (var_r19 != 0) ? 1 - : (sp228 != 0) ? 4 - : (var_r18 != 0) ? 2 : 0); + var_r27 = (rand8() % 2 == 0) ? ((var_r17 != 0) ? 3 + : (sp228 != 0) ? 4 + : (var_r19 != 0) ? 1 + : (var_r18 != 0) ? 2 + : 0) + : ((var_r17 != 0) ? 3 + : (var_r19 != 0) ? 1 + : (sp228 != 0) ? 4 + : (var_r18 != 0) ? 2 + : 0); sp224++; if (sp224 > 8) { var_r19 -= (var_r27 == 1); @@ -860,18 +771,28 @@ void fn_1_3B74(omObjData* arg0) { var_r17 -= (var_r27 == 3); sp228 -= (var_r27 == 4); sp224 = 0; - } else if (var_r27 == 1 || var_r27 == 2 || var_r27 == 3 || var_r27 == 4) { + } + else if (var_r27 == 1 || var_r27 == 2 || var_r27 == 3 || var_r27 == 4) { var_r28 = (var_r27 != 4) ? (rand8() % 9) : 10; if (var_r27 == 1 && var_r20 != 0) { var_r28 = 9; i = 0; - } else if (var_r27 == 3 && sp22C != 0) { + } + else if (var_r27 == 3 && sp22C != 0) { var_r28 = 9; - i = (sp354[(lbl_1_bss_C % 3) + 1]->unk20 == 3 && (lbl_1_data_F0[9][lbl_1_bss_C % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) ? (lbl_1_bss_C % 3 + 1) - : (sp354[(lbl_1_bss_C + 1) % 3 + 1]->unk20 == 3 && (lbl_1_data_F0[9][(lbl_1_bss_C + 1) % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) ? ((lbl_1_bss_C + 1) % 3 + 1) - : (sp354[(lbl_1_bss_C + 2) % 3 + 1]->unk20 == 3 && (lbl_1_data_F0[9][(lbl_1_bss_C + 2) % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) ? ((lbl_1_bss_C + 2) % 3 + 1) : 0; - } else { - if (var_r28 == 10 && (lbl_1_bss_28 / 60) / 15 + 1 <= 2 - lbl_1_bss_14 && rand8() % (((lbl_1_bss_28 / 60 - (1 - lbl_1_bss_14) * 15) * 3) + 1) == 0) { + i = (sp354[(lbl_1_bss_C % 3) + 1]->unk20 == 3 && (lbl_1_data_F0[9][lbl_1_bss_C % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) + ? (lbl_1_bss_C % 3 + 1) + : (sp354[(lbl_1_bss_C + 1) % 3 + 1]->unk20 == 3 + && (lbl_1_data_F0[9][(lbl_1_bss_C + 1) % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) + ? ((lbl_1_bss_C + 1) % 3 + 1) + : (sp354[(lbl_1_bss_C + 2) % 3 + 1]->unk20 == 3 + && (lbl_1_data_F0[9][(lbl_1_bss_C + 2) % 3 + 1].unk04 == 0 || lbl_1_bss_34 != 1003)) + ? ((lbl_1_bss_C + 2) % 3 + 1) + : 0; + } + else { + if (var_r28 == 10 && (lbl_1_bss_28 / 60) / 15 + 1 <= 2 - lbl_1_bss_14 + && rand8() % (((lbl_1_bss_28 / 60 - (1 - lbl_1_bss_14) * 15) * 3) + 1) == 0) { var_r28 = 11; } for (i = 0; i < (var_r27 != 4 ? 4 : 10); i++) { @@ -883,53 +804,45 @@ void fn_1_3B74(omObjData* arg0) { continue; } } - lbl_1_data_F0[var_r28][i].unk0C = (var_r27 != 3) - ? (rand8() % 7 - 3) * 100 - : ((rand8() % 2) * 2 - 1) * 1595; + lbl_1_data_F0[var_r28][i].unk0C = (var_r27 != 3) ? (rand8() % 7 - 3) * 100 : ((rand8() % 2) * 2 - 1) * 1595; if (i == 0 && lbl_1_bss_34 >= 1004 && var_r28 == 9) { lbl_1_data_F0[var_r28][i].unk0C = 0.0f; } - lbl_1_data_F0[var_r28][i].unk10 = (var_r27 == 1) ? 300 - : (var_r27 == 2) ? 0 - : (var_r27 == 3) ? 500 - : (var_r27 == 4) ? 300 : 0; - lbl_1_data_F0[var_r28][i].unk14 = (var_r27 == 1) ? -450 - : (var_r27 == 2) ? -450 - : (var_r27 == 3) ? 105 - : (var_r27 == 4) ? -150 : 0; + lbl_1_data_F0[var_r28][i].unk10 = (var_r27 == 1) ? 300 : (var_r27 == 2) ? 0 : (var_r27 == 3) ? 500 : (var_r27 == 4) ? 300 : 0; + lbl_1_data_F0[var_r28][i].unk14 = (var_r27 == 1) ? -450 : (var_r27 == 2) ? -450 : (var_r27 == 3) ? 105 : (var_r27 == 4) ? -150 : 0; lbl_1_data_F0[var_r28][i].unk14 += (var_r27 == 1) ? -(var_r28 <= 8 ? 0 : 0) - : (var_r27 == 2) ? -(var_r28 <= 8 ? (var_r28 / 3) * 80 : 0) - : (var_r27 == 4) ? -50 : 0; - lbl_1_data_F0[var_r28][i].unk14 += (var_r27 == 1) - ? ((var_r28 <= 2) ? 315.0 - : (var_r28 <= 5) ? 296.6875 - : (var_r28 <= 8) ? 227.234375 - : (var_r28 == 9) ? 200 : 0) : 0.0; + : (var_r27 == 2) ? -(var_r28 <= 8 ? (var_r28 / 3) * 80 : 0) + : (var_r27 == 4) ? -50 + : 0; + lbl_1_data_F0[var_r28][i].unk14 += (var_r27 == 1) ? ((var_r28 <= 2) ? 315.0 + : (var_r28 <= 5) ? 296.6875 + : (var_r28 <= 8) ? 227.234375 + : (var_r28 == 9) ? 200 + : 0) + : 0.0; if (var_r27 == 1 || var_r27 == 4) { - float sp3C4[] = { - -25.0f, -25.0f, -25.0f, - -6.6875f, -6.6875f, -6.6875f, - 62.765625f, 62.765625f, 62.765625f, - 51.99469f, 76.875f, 45.0f, - -27.647583f, -27.647583f, -27.647583f, - -9.64325f, -9.64325f, -9.64325f, - 60.49022f, 60.49022f, 60.49022f, - 51.99469f, 76.875f, 45.0f - }; + float sp3C4[] = { -25.0f, -25.0f, -25.0f, -6.6875f, -6.6875f, -6.6875f, 62.765625f, 62.765625f, 62.765625f, 51.99469f, 76.875f, 45.0f, + -27.647583f, -27.647583f, -27.647583f, -9.64325f, -9.64325f, -9.64325f, 60.49022f, 60.49022f, 60.49022f, 51.99469f, 76.875f, + 45.0f }; var_f25 = lbl_1_data_F0[var_r28][i].unk0C; var_f24 = sp3C4[var_r28] + lbl_1_data_F0[var_r28][i].unk14; - } else if (var_r27 == 2) { + } + else if (var_r27 == 2) { var_f25 = lbl_1_data_F0[var_r28][i].unk0C; var_f24 = lbl_1_rodata_130[var_r28] + lbl_1_data_F0[var_r28][i].unk14; - } else if (var_r27 == 3) { + } + else if (var_r27 == 3) { var_f25 = (lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? -335 : 335; var_f24 = 830.0f - 94.0f * lbl_1_bss_0; - } else { + } + else { var_f25 = lbl_1_data_F0[var_r28][i].unk0C; var_f24 = lbl_1_data_F0[var_r28][i].unk14; } - if (fn_1_34BC(var_f25, var_f24, lbl_1_rodata_10[lbl_1_data_F0[var_r28][i].unk00] + lbl_1_rodata_40[lbl_1_data_F0[var_r28][i].unk00], var_r28, 0) != 0) { + if (fn_1_34BC( + var_f25, var_f24, lbl_1_rodata_10[lbl_1_data_F0[var_r28][i].unk00] + lbl_1_rodata_40[lbl_1_data_F0[var_r28][i].unk00], var_r28, 0) + != 0) { continue; } if (var_r27 == 3 && lbl_1_data_18A4[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 0 : 1] > 0) { @@ -937,16 +850,12 @@ void fn_1_3B74(omObjData* arg0) { } if (var_r27 == 4) { for (var_r21 = 0; var_r21 < 10; var_r21++) { - if (lbl_1_data_F0[10][var_r21].unk04 != 0 - && fabs(lbl_1_data_F0[var_r28][i].unk14 - lbl_1_data_F0[10][var_r21].unk14) <= 100.0 - && fabs(lbl_1_data_F0[var_r28][i].unk0C - lbl_1_data_F0[10][var_r21].unk0C) <= 200.0) - { + if (lbl_1_data_F0[10][var_r21].unk04 != 0 && fabs(lbl_1_data_F0[var_r28][i].unk14 - lbl_1_data_F0[10][var_r21].unk14) <= 100.0 + && fabs(lbl_1_data_F0[var_r28][i].unk0C - lbl_1_data_F0[10][var_r21].unk0C) <= 200.0) { break; } - if (lbl_1_data_F0[11][var_r21].unk04 != 0 - && fabs(lbl_1_data_F0[var_r28][i].unk14 - lbl_1_data_F0[11][var_r21].unk14) <= 100.0 - && fabs(lbl_1_data_F0[var_r28][i].unk0C - lbl_1_data_F0[11][var_r21].unk0C) <= 200.0) - { + if (lbl_1_data_F0[11][var_r21].unk04 != 0 && fabs(lbl_1_data_F0[var_r28][i].unk14 - lbl_1_data_F0[11][var_r21].unk14) <= 100.0 + && fabs(lbl_1_data_F0[var_r28][i].unk0C - lbl_1_data_F0[11][var_r21].unk0C) <= 200.0) { break; } } @@ -961,10 +870,7 @@ void fn_1_3B74(omObjData* arg0) { lbl_1_bss_14++; } lbl_1_data_F0[var_r28][i].unk00 = var_r28; - lbl_1_data_F0[var_r28][i].unk04 = (var_r27 == 1) ? 3 - : (var_r27 == 2) ? 5 - : (var_r27 == 3) ? 1 - : (var_r27 == 4) ? 3 : 0; + lbl_1_data_F0[var_r28][i].unk04 = (var_r27 == 1) ? 3 : (var_r27 == 2) ? 5 : (var_r27 == 3) ? 1 : (var_r27 == 4) ? 3 : 0; lbl_1_data_F0[var_r28][i].unk08 = 0; lbl_1_data_F0[var_r28][i].unk2C = 0; lbl_1_data_F0[var_r28][i].unk18 = lbl_1_data_F0[var_r28][i].unk1C = lbl_1_data_F0[var_r28][i].unk20 = 0.0f; @@ -974,13 +880,15 @@ void fn_1_3B74(omObjData* arg0) { Hu3DModelAttrSet(arg0->model[sp220], HU3D_MOTATTR_PAUSE); Hu3DModelAttrReset(arg0->model[sp220], 1); Hu3DModelRotSet(arg0->model[sp220], 0.0f, 0.0f, 0.0f); - } else { + } + else { Hu3DModelAttrReset(arg0->model[i + (var_r28 == 10 ? 83 : 93)], 1); } if (var_r27 == 1 && var_r20 != 0) { var_r20--; sp354[0]->unk20 = 4; - } else if (var_r27 == 3 && sp22C != 0) { + } + else if (var_r27 == 3 && sp22C != 0) { sp22C--; sp354[i]->unk20 = 4; } @@ -988,7 +896,9 @@ void fn_1_3B74(omObjData* arg0) { lbl_1_data_18A4[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 0 : 1] = 85; Hu3DMotionTimeSet(arg0->model[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 6 : 5], 9.0f); if (var_r28 == 9 && lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6].unk00 < 3) { - lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6].unk04[lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6].unk00] = 0.0f; + lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6] + .unk04[lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6].unk00] + = 0.0f; lbl_1_bss_54[(lbl_1_data_F0[var_r28][i].unk0C < 0.0f) ? 7 : 6].unk00++; } } @@ -1008,29 +918,24 @@ void fn_1_3B74(omObjData* arg0) { for (i = 0; i < 12; i++) { for (j = 0; j < (i < 10 ? 4 : 10); j++) { temp_r31 = &lbl_1_data_F0[i][j]; - var_r25 = (i < 10) - ? (i * 4 + 43 + j) - : ((i - 10) * 10 + 83 + j); + var_r25 = (i < 10) ? (i * 4 + 43 + j) : ((i - 10) * 10 + 83 + j); sp348.x = sp348.y = sp348.z = 0.0f; if (temp_r31->unk04 == 0) { Hu3DModelAttrSet(arg0->model[var_r25], 1); - } else { + } + else { temp_r31->unk08++; temp_r31->unk24 += (temp_r31->unk00 == 10) ? 0 : 0; - temp_r31->unk24 += (temp_r31->unk24 < 0.0f) ? 360 - : (temp_r31->unk24 > 360.0f) ? -360 : 0; + temp_r31->unk24 += (temp_r31->unk24 < 0.0f) ? 360 : (temp_r31->unk24 > 360.0f) ? -360 : 0; Hu3DModelObjPosGet(arg0->model[var_r25], lbl_1_data_1828[temp_r31->unk00], &sp348); switch (temp_r31->unk04) { case 3: case 5: case 6: - if (temp_r31->unk00 >= 3 && temp_r31->unk00 >= 9 && temp_r31->unk04 == 3 - && temp_r31->unk14 < -120.0f && temp_r31->unk14 + lbl_1_bss_4 >= -120.0f) - { + if (temp_r31->unk00 >= 3 && temp_r31->unk00 >= 9 && temp_r31->unk04 == 3 && temp_r31->unk14 < -120.0f + && temp_r31->unk14 + lbl_1_bss_4 >= -120.0f) { sp218 = (500.0f + temp_r31->unk0C) / 100.0f; - sp218 = (sp218 < 0) ? 0 - : (sp218 >= 11) ? 10 - : sp218; + sp218 = (sp218 < 0) ? 0 : (sp218 >= 11) ? 10 : sp218; lbl_1_data_1878[sp218] = 15; Hu3DMotionShiftSet(arg0->model[sp218 + 8], arg0->motion[11], 20.0f, 15.0f, HU3D_MOTATTR_NONE); if (temp_r31->unk00 == 9 && lbl_1_bss_54[5].unk00 < 3) { @@ -1041,16 +946,14 @@ void fn_1_3B74(omObjData* arg0) { temp_r31->unk14 += (temp_r31->unk04 == 3 ? lbl_1_bss_4 : lbl_1_bss_0); if (lbl_1_bss_34 >= 1003 && lbl_1_bss_34 < 1005) { if ((temp_r31->unk04 == 3 && temp_r31->unk00 == 9 && temp_r31->unk14 >= 150.0f && temp_r31->unk14 - lbl_1_bss_4 < 150.0f) - || (temp_r31->unk04 == 6 && temp_r31->unk00 == 9 && temp_r31->unk08 == 1)) - { + || (temp_r31->unk04 == 6 && temp_r31->unk00 == 9 && temp_r31->unk08 == 1)) { sp354[j]->unk20 = 5; sp354[j]->unk24 = 0; lbl_1_bss_3C[j]->trans.x = temp_r31->unk0C; lbl_1_bss_3C[j]->trans.y = (j == 0 ? 300 : 0); lbl_1_bss_3C[j]->trans.z = temp_r31->unk14; - lbl_1_bss_3C[j]->rot.y = 180 + ((lbl_1_bss_20 == 4 && temp_r31->unk04 == 6) - ? (temp_r31->unk0C < 0.0f ? -45 : 45) - : 0); + lbl_1_bss_3C[j]->rot.y + = 180 + ((lbl_1_bss_20 == 4 && temp_r31->unk04 == 6) ? (temp_r31->unk0C < 0.0f ? -45 : 45) : 0); Hu3DMotionSpeedSet(arg0->model[j + 79], 1.0f); Hu3DMotionShiftSet(arg0->model[j + 79], arg0->motion[j + 22], 44.0f, 2.0f, HU3D_MOTATTR_NONE); Hu3DParticleCntSet(arg0->model[j + 39], j == 0 ? 15 : 0); @@ -1066,7 +969,8 @@ void fn_1_3B74(omObjData* arg0) { if (temp_r31->unk00 != 10) { if (temp_r31->unk00 != 9) { Hu3DMotionTimeSet(arg0->model[var_r25], 1.0f); - } else { + } + else { Hu3DMotionSet(arg0->model[var_r25], arg0->motion[j + 26]); Hu3DMotionTimeSet(arg0->model[var_r25], 1.0f); Hu3DMotionSpeedSet(arg0->model[var_r25], 1.0f); @@ -1081,22 +985,25 @@ void fn_1_3B74(omObjData* arg0) { temp_r31->unk1C = 0.0f; if (temp_r31->unk00 == 10) { Hu3DModelAttrSet(arg0->model[var_r25], HU3D_MOTATTR_LOOP); - } else if (temp_r31->unk00 != 9) { + } + else if (temp_r31->unk00 != 9) { Hu3DMotionTimeSet(arg0->model[var_r25], 2.0f); Hu3DModelAttrReset(arg0->model[var_r25], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); - } else { + } + else { Hu3DMotionSet(arg0->model[var_r25], arg0->motion[(temp_r31->unk04 == 6) ? (j + 26) : (j + 30)]); Hu3DMotionTimeSet(arg0->model[var_r25], 1.0f); Hu3DMotionSpeedSet(arg0->model[var_r25], 1.0f); } temp_r31->unk04 = 7; Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, temp_r31->unk10, temp_r31->unk14); - } else { - Hu3DModelPosSet(arg0->model[var_r25], - temp_r31->unk0C, + } + else { + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, ((temp_r31->unk00 >= 0 && temp_r31->unk00 < 10) - ? ((temp_r31->unk04 != 6 ? 300 : 0) + lbl_1_rodata_100[temp_r31->unk00]) - : temp_r31->unk10) + lbl_1_rodata_A0[temp_r31->unk00], + ? ((temp_r31->unk04 != 6 ? 300 : 0) + lbl_1_rodata_100[temp_r31->unk00]) + : temp_r31->unk10) + + lbl_1_rodata_A0[temp_r31->unk00], temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); } if (temp_r31->unk00 >= 10) { @@ -1105,31 +1012,24 @@ void fn_1_3B74(omObjData* arg0) { break; case 4: if (temp_r31->unk00 >= 0 && temp_r31->unk00 < 10) { - float sp394[] = { - 0.0f, 0.0f, 0.0f, 0.9f, 0.9f, 0.9f, - 1.75f, 1.75f, 1.75f, 0.0f, 0.0f, 0.0f - }; - s32 sp364[] = { - 42, 42, 42, 41, 41, 41, - 48, 48, 48, 27, 27, 27 - }; + float sp394[] = { 0.0f, 0.0f, 0.0f, 0.9f, 0.9f, 0.9f, 1.75f, 1.75f, 1.75f, 0.0f, 0.0f, 0.0f }; + s32 sp364[] = { 42, 42, 42, 41, 41, 41, 48, 48, 48, 27, 27, 27 }; if (temp_r31->unk00 >= 6 && temp_r31->unk00 <= 8) { temp_f29 = temp_r31->unk08; - temp_f27 = (temp_f29 <= 1.0f) ? 0.0 + temp_f27 = (temp_f29 <= 1.0f) ? 0.0 : (temp_f29 >= 30.0f && temp_f29 < 40.0f) ? -1.0 * (1.0 - (temp_f29 - 30.0f) / 9.0) - : (temp_f29 >= 40.0f) ? 1.0 - (temp_f29 - 40.0f) / 8.0 - : 1.0; - temp_f27 = (temp_f29 >= 40.0f) - ? -1.0 + (temp_f27 * 0.5 + temp_f27 * temp_f27 * 0.5) - : temp_f27; + : (temp_f29 >= 40.0f) ? 1.0 - (temp_f29 - 40.0f) / 8.0 + : 1.0; + temp_f27 = (temp_f29 >= 40.0f) ? -1.0 + (temp_f27 * 0.5 + temp_f27 * temp_f27 * 0.5) : temp_f27; temp_f27 = (temp_f29 <= 1.0f) ? 0.0 - : (temp_f29 < 23.0f) ? 1.0 - : (temp_f29 < 32.0f) ? 0.5 - : (temp_f29 < 40.0f) ? -0.8 - : (-1.0 - 0.4 * (1.0 - (temp_f29 - 40.0f) / 8.0)); + : (temp_f29 < 23.0f) ? 1.0 + : (temp_f29 < 32.0f) ? 0.5 + : (temp_f29 < 40.0f) ? -0.8 + : (-1.0 - 0.4 * (1.0 - (temp_f29 - 40.0f) / 8.0)); temp_r31->unk14 -= (lbl_1_bss_4 * sp394[temp_r31->unk00] / 4.0) * temp_f27; - } else { + } + else { temp_r31->unk14 -= lbl_1_bss_4 * sp394[temp_r31->unk00] / 4.0; } if (temp_r31->unk08 >= sp364[temp_r31->unk00]) { @@ -1137,14 +1037,16 @@ void fn_1_3B74(omObjData* arg0) { temp_r31->unk04 = 5; temp_r31->unk08 = 0; } - } else { + } + else { temp_r31->unk1C -= 1.0f; temp_r31->unk10 += temp_r31->unk1C; temp_r31->unk14 += 1.25 * lbl_1_bss_4; if (temp_r31->unk10 <= 0.0f) { if (temp_r31->unk1C < -10.0f && temp_r31->unk00 == 10) { temp_r31->unk1C = 9.0f; - } else { + } + else { temp_r31->unk1C = 0.0f; temp_r31->unk10 = 0.0f; temp_r31->unk04 = 5; @@ -1152,9 +1054,9 @@ void fn_1_3B74(omObjData* arg0) { } } } - Hu3DModelPosSet(arg0->model[var_r25], - temp_r31->unk0C, - lbl_1_rodata_A0[temp_r31->unk00] + ((temp_r31->unk00 >= 0 && temp_r31->unk00 < 10) ? (300.0f + lbl_1_rodata_100[temp_r31->unk00]) : temp_r31->unk10), + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, + lbl_1_rodata_A0[temp_r31->unk00] + + ((temp_r31->unk00 >= 0 && temp_r31->unk00 < 10) ? (300.0f + lbl_1_rodata_100[temp_r31->unk00]) : temp_r31->unk10), temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); if (temp_r31->unk00 >= 10) { Hu3DModelRotSet(arg0->model[var_r25], 0.0f, temp_r31->unk24, 0.0f); @@ -1176,14 +1078,9 @@ void fn_1_3B74(omObjData* arg0) { temp_r31->unk04 = 2; temp_r31->unk08 = 0; } - Hu3DModelPosSet(arg0->model[var_r25], - temp_r31->unk0C, - temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00], + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00], temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); - Hu3DModelRotSet(arg0->model[var_r25], - 9.0f, - (temp_r31->unk0C < 0.0f) ? -31 : 31, - (temp_r31->unk0C < 0.0f) ? -18 : 18); + Hu3DModelRotSet(arg0->model[var_r25], 9.0f, (temp_r31->unk0C < 0.0f) ? -31 : 31, (temp_r31->unk0C < 0.0f) ? -18 : 18); break; case 2: temp_r31->unk1C -= (temp_r31->unk00 != 9) ? 0.625 : 0.9; @@ -1195,15 +1092,14 @@ void fn_1_3B74(omObjData* arg0) { temp_r31->unk1C = 0.0f; temp_r31->unk04 = 6; temp_r31->unk08 = 0; - Hu3DModelPosSet(arg0->model[var_r25], - temp_r31->unk0C, - temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00] + lbl_1_rodata_100[temp_r31->unk00] + lbl_1_rodata_100[temp_r31->unk00], + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, + temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00] + lbl_1_rodata_100[temp_r31->unk00] + + lbl_1_rodata_100[temp_r31->unk00], temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); Hu3DModelRotSet(arg0->model[var_r25], 0.0f, (temp_r31->unk0C < 0.0f) ? -31 : 31, 0.0f); - } else { - Hu3DModelPosSet(arg0->model[var_r25], - temp_r31->unk0C, - temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00], + } + else { + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, temp_r31->unk10 + lbl_1_rodata_A0[temp_r31->unk00], temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); } break; @@ -1220,8 +1116,7 @@ void fn_1_3B74(omObjData* arg0) { } temp_r31->unk04 = 0; } - Hu3DModelPosSet(arg0->model[var_r25], - temp_r31->unk0C, + Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, (temp_r31->unk00 >= 0 && temp_r31->unk00 < 9) ? (300.0f + lbl_1_rodata_100[temp_r31->unk00]) : temp_r31->unk10, temp_r31->unk14 + lbl_1_rodata_D0[temp_r31->unk00]); Hu3DModelPosSet(arg0->model[var_r25], temp_r31->unk0C, temp_r31->unk10, temp_r31->unk14); @@ -1246,12 +1141,12 @@ void fn_1_3B74(omObjData* arg0) { } } if (i == 9 && lbl_1_bss_18 != 0) { - ModelData* sp204 = &Hu3DData[arg0->model[j + 39]]; - ParticleData* sp200 = sp204->unk_120; + ModelData *sp204 = &Hu3DData[arg0->model[j + 39]]; + ParticleData *sp200 = sp204->unk_120; if (sp200->unk_34 == 63) { - ModelData* temp_r23 = &Hu3DData[arg0->model[var_r25]]; - ModelData* temp_r22 = &Hu3DData[arg0->model[j + 39]]; + ModelData *temp_r23 = &Hu3DData[arg0->model[var_r25]]; + ModelData *temp_r22 = &Hu3DData[arg0->model[j + 39]]; temp_r22->pos.x = temp_r23->pos.x; temp_r22->pos.y = temp_r23->pos.y; @@ -1263,15 +1158,16 @@ void fn_1_3B74(omObjData* arg0) { } if (temp_r31->unk2C == 0 && (lbl_1_bss_34 == 1004 || lbl_1_bss_34 == 1005)) { if (temp_r31->unk00 != 9 - || (temp_r31->unk04 != 1 && temp_r31->unk04 != 2 && ((temp_r31->unk04 != 3 && temp_r31->unk04 != 6) || sp354[j]->unk20 > 5 || sp354[j]->unk20 < 3))) - { + || (temp_r31->unk04 != 1 && temp_r31->unk04 != 2 + && ((temp_r31->unk04 != 3 && temp_r31->unk04 != 6) || sp354[j]->unk20 > 5 || sp354[j]->unk20 < 3))) { temp_r31->unk2C = 1; } } temp_r31->unk2C += (temp_r31->unk2C > 0); if (temp_r31->unk2C != 0 && (temp_r31->unk2C % 2 == 0 || temp_r31->unk2C > 25)) { Hu3DModelAttrSet(arg0->model[var_r25], 1); - } else { + } + else { Hu3DModelAttrReset(arg0->model[var_r25], 1); } } @@ -1336,41 +1232,37 @@ void fn_1_3B74(omObjData* arg0) { espBankSet(lbl_1_data_40[i * 7 + 3], (lbl_1_data_18F4[i] / 10) % 10); } for (i = 0; i < 4; i++) { - ModelData* temp_r24 = &Hu3DData[lbl_1_bss_3C[i]->model[0]]; + ModelData *temp_r24 = &Hu3DData[lbl_1_bss_3C[i]->model[0]]; float temp_f19 = 0.0f; float sp1F0 = (temp_r24->unk_08 == lbl_1_bss_3C[i]->motion[3]) ? 0 : -1; float sp1EC = (temp_r24->unk_0C == lbl_1_bss_3C[i]->motion[3]) ? 0 : -1; - float sp1E8 = (sp1F0 == -1.0f) ? 0.0f - : (temp_r24->unk_64 < 4.0f) ? 0.0f + float sp1E8 = (sp1F0 == -1.0f) ? 0.0f + : (temp_r24->unk_64 < 4.0f) ? 0.0f : (temp_r24->unk_64 > 28.0f) ? 1.0f - : (temp_r24->unk_64 - 4.0f) / 24.0f; - float sp1E4 = (sp1EC == -1.0f) ? 0.0f - : (temp_r24->unk_84 < 4.0f) ? 0.0f + : (temp_r24->unk_64 - 4.0f) / 24.0f; + float sp1E4 = (sp1EC == -1.0f) ? 0.0f + : (temp_r24->unk_84 < 4.0f) ? 0.0f : (temp_r24->unk_84 > 28.0f) ? 1.0f - : (temp_r24->unk_84 - 4.0f) / 24.0f; - float temp_f18 = (temp_r24->unk_0C == -1) ? 0.0f - : (temp_r24->unk_80 == 0.0f) ? 1.0f - : (temp_r24->unk_7C / temp_r24->unk_80); + : (temp_r24->unk_84 - 4.0f) / 24.0f; + float temp_f18 = (temp_r24->unk_0C == -1) ? 0.0f : (temp_r24->unk_80 == 0.0f) ? 1.0f : (temp_r24->unk_7C / temp_r24->unk_80); temp_f19 = sp1E8 * (1.0f - temp_f18) + sp1E4 * temp_f18; if (!(temp_r24->attr & 1) && sp354[i]->unk20 != 3 && sp354[i]->unk20 != 4 && lbl_1_bss_3C[i]->trans.z < 1400.0f) { Hu3DModelAttrReset(lbl_1_bss_3C[i]->model[1], 1); - Hu3DModelPosSet(lbl_1_bss_3C[i]->model[1], - lbl_1_bss_3C[i]->trans.x, - (lbl_1_bss_3C[i]->trans.z < 620.0f) ? 5 : -295, + Hu3DModelPosSet(lbl_1_bss_3C[i]->model[1], lbl_1_bss_3C[i]->trans.x, (lbl_1_bss_3C[i]->trans.z < 620.0f) ? 5 : -295, lbl_1_bss_3C[i]->trans.z - 165.0f * temp_f19); - Hu3DModelScaleSet(lbl_1_bss_3C[i]->model[1], - 0.75 * (sp354[i]->unk08 == 5 ? 1.25 : 1.0), - 1.0f, - 1.25 * (sp354[i]->unk08 == 5 ? 1.25 : 1.0)); - } else { + Hu3DModelScaleSet( + lbl_1_bss_3C[i]->model[1], 0.75 * (sp354[i]->unk08 == 5 ? 1.25 : 1.0), 1.0f, 1.25 * (sp354[i]->unk08 == 5 ? 1.25 : 1.0)); + } + else { Hu3DModelAttrSet(lbl_1_bss_3C[i]->model[1], 1); } } } -void fn_1_89E0(omObjData* arg0) { - StructBss3CData* spC[4]; +void fn_1_89E0(omObjData *arg0) +{ + StructBss3CData *spC[4]; s32 sp8; s32 var_r29; s32 var_r30; @@ -1380,12 +1272,7 @@ void fn_1_89E0(omObjData* arg0) { spC[i] = lbl_1_bss_3C[i]->data; } for (i = 0; i < 11; i++) { - s32 sp1C[] = { - 0x60A, 0x60B, 0x60C, - 0x60D, 0x60E, 0x60F, - 0x611, 0x610, 0x007, - 0x013, 0x612 - }; + s32 sp1C[] = { 0x60A, 0x60B, 0x60C, 0x60D, 0x60E, 0x60F, 0x611, 0x610, 0x007, 0x013, 0x612 }; if (lbl_1_bss_54[i].unk00 > 3) { lbl_1_bss_54[i].unk00 = 3; @@ -1456,7 +1343,8 @@ void fn_1_89E0(omObjData* arg0) { if (lbl_1_data_18AC != -1) { HuAudSeqFadeOut(lbl_1_data_18AC, 100); } - } else { + } + else { var_r29 = 0; var_r30 = 0; for (i = 0; i < 4; i++) { @@ -1465,15 +1353,14 @@ void fn_1_89E0(omObjData* arg0) { } if (i == 0 && ((spC[0]->unk20 >= 2 && spC[0]->unk20 <= 4) || (spC[0]->unk20 == 4 && lbl_1_data_F0[9][0].unk14 < 70.0f))) { var_r30++; - } else if (i != 0 && spC[i]->unk20 >= 2 && spC[i]->unk20 <= 4) { + } + else if (i != 0 && spC[i]->unk20 >= 2 && spC[i]->unk20 <= 4) { var_r30++; } } if (MGSeqStatGet(lbl_1_bss_2E) == 0 - && ((lbl_1_bss_8 >= 150.0f && var_r29 == 0 && var_r30 == 0) - || (lbl_1_bss_8 >= 240.0f && var_r30 == 0) - || lbl_1_bss_8 >= 360.0f)) - { + && ((lbl_1_bss_8 >= 150.0f && var_r29 == 0 && var_r30 == 0) || (lbl_1_bss_8 >= 240.0f && var_r30 == 0) + || lbl_1_bss_8 >= 360.0f)) { lbl_1_bss_34++; lbl_1_bss_8 = 0.0f; GWPlayerCoinCollectSet(spC[0]->unk04, lbl_1_data_18F4[0]); @@ -1482,7 +1369,8 @@ void fn_1_89E0(omObjData* arg0) { GWPlayerCoinCollectSet(spC[3]->unk04, lbl_1_data_18F4[1]); if (lbl_1_data_18F4[0] == 0 && lbl_1_data_18F4[1] == 0) { HuAudSStreamPlay(4); - } else { + } + else { HuAudSStreamPlay(1); } } @@ -1504,8 +1392,9 @@ void fn_1_89E0(omObjData* arg0) { } } -void fn_1_9410(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; +void fn_1_9410(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; float temp_f31; float temp_f30; s16 i; @@ -1549,10 +1438,10 @@ void fn_1_9410(ModelData* model, ParticleData* particle, Mtx matrix) { var_r31->unk40.b = 0xFF; var_r31->unk40.a = 0x60; var_r31->unk2C = 50.0f; - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); } if (var_r31->unk00_s16 < 240) { - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); var_r31->unk08.x *= 0.9f; var_r31->unk08.z *= 0.9f; var_r31->unk08.y *= 0.9f; @@ -1571,7 +1460,8 @@ void fn_1_9410(ModelData* model, ParticleData* particle, Mtx matrix) { } } -void fn_1_9900(omObjData* arg0) { +void fn_1_9900(omObjData *arg0) +{ s32 temp_r28; s32 i; s32 j; @@ -1614,7 +1504,7 @@ void fn_1_9900(omObjData* arg0) { Hu3DMotionSet(arg0->model[i + 8], arg0->motion[0]); Hu3DModelAttrSet(arg0->model[i + 8], HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(arg0->model[i + 8], HU3D_MOTATTR_PAUSE); - Hu3DMotionTimeSet(arg0->model[i + 8], rand8() % (s32) Hu3DMotionMaxTimeGet(arg0->model[i + 8])); + Hu3DMotionTimeSet(arg0->model[i + 8], rand8() % (s32)Hu3DMotionMaxTimeGet(arg0->model[i + 8])); } arg0->model[19] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M422, 26)); Hu3DModelPosSet(arg0->model[19], 1800.0f, 0.0f, -22.0f); @@ -1624,37 +1514,23 @@ void fn_1_9900(omObjData* arg0) { Hu3DModelAttrSet(arg0->model[20], HU3D_MOTATTR_LOOP); for (i = 0; i < 10; i++) { for (j = 0; j < 4; j++) { - s32 spD0[] = { - DATA_MAKE_NUM(DATADIR_M422, 41), - DATA_MAKE_NUM(DATADIR_M422, 42), - DATA_MAKE_NUM(DATADIR_M422, 43), - DATA_MAKE_NUM(DATADIR_M422, 44), - DATA_MAKE_NUM(DATADIR_M422, 45), - DATA_MAKE_NUM(DATADIR_M422, 46), - DATA_MAKE_NUM(DATADIR_M422, 47), - DATA_MAKE_NUM(DATADIR_M422, 48), - DATA_MAKE_NUM(DATADIR_M422, 49), - DATA_MAKE_NUM(DATADIR_M422, 30) - }; - s32 sp30[] = { - DATA_MAKE_NUM(DATADIR_M422, 30), - DATA_MAKE_NUM(DATADIR_M422, 31), - DATA_MAKE_NUM(DATADIR_M422, 32), - DATA_MAKE_NUM(DATADIR_M422, 33), - DATA_MAKE_NUM(DATADIR_M422, 34), - DATA_MAKE_NUM(DATADIR_M422, 35), - DATA_MAKE_NUM(DATADIR_M422, 37), - DATA_MAKE_NUM(DATADIR_M422, 36) - }; + s32 spD0[] = { DATA_MAKE_NUM(DATADIR_M422, 41), DATA_MAKE_NUM(DATADIR_M422, 42), DATA_MAKE_NUM(DATADIR_M422, 43), + DATA_MAKE_NUM(DATADIR_M422, 44), DATA_MAKE_NUM(DATADIR_M422, 45), DATA_MAKE_NUM(DATADIR_M422, 46), DATA_MAKE_NUM(DATADIR_M422, 47), + DATA_MAKE_NUM(DATADIR_M422, 48), DATA_MAKE_NUM(DATADIR_M422, 49), DATA_MAKE_NUM(DATADIR_M422, 30) }; + s32 sp30[] = { DATA_MAKE_NUM(DATADIR_M422, 30), DATA_MAKE_NUM(DATADIR_M422, 31), DATA_MAKE_NUM(DATADIR_M422, 32), + DATA_MAKE_NUM(DATADIR_M422, 33), DATA_MAKE_NUM(DATADIR_M422, 34), DATA_MAKE_NUM(DATADIR_M422, 35), DATA_MAKE_NUM(DATADIR_M422, 37), + DATA_MAKE_NUM(DATADIR_M422, 36) }; temp_r28 = i * 4 + 43 + j; if (i == 9) { - StructBss3CData* var_r23 = lbl_1_bss_3C[j]->data; + StructBss3CData *var_r23 = lbl_1_bss_3C[j]->data; arg0->model[temp_r28] = Hu3DModelCreateFile(sp30[var_r23->unk08]); - } else if (j == 0) { + } + else if (j == 0) { arg0->model[temp_r28] = Hu3DModelCreateFile(spD0[i]); - } else { + } + else { arg0->model[temp_r28] = Hu3DModelLink(arg0->model[temp_r28 - j]); } Hu3DModelAttrSet(arg0->model[temp_r28], HU3D_MOTATTR_LOOP | HU3D_MOTATTR_PAUSE); @@ -1678,15 +1554,13 @@ void fn_1_9900(omObjData* arg0) { } for (i = 0; i < 2; i++) { for (j = 0; j < 10; j++) { - s32 sp28[] = { - DATA_MAKE_NUM(DATADIR_M422, 28), - DATA_MAKE_NUM(DATADIR_M422, 29) - }; + s32 sp28[] = { DATA_MAKE_NUM(DATADIR_M422, 28), DATA_MAKE_NUM(DATADIR_M422, 29) }; temp_r28 = i * 10 + 83 + j; if (j == 0) { arg0->model[temp_r28] = Hu3DModelCreateFile(sp28[i]); - } else { + } + else { arg0->model[temp_r28] = Hu3DModelLink(arg0->model[temp_r28 - j]); } Hu3DModelAttrSet(arg0->model[temp_r28], HU3D_MOTATTR_LOOP); @@ -1706,14 +1580,11 @@ void fn_1_9900(omObjData* arg0) { s32 sp50[] = { 0, 0, 1, 1, 1, 1, -2, 0, 0, 9, 9, 9, 9, -14, 10, 10 }; if (lbl_1_data_0[i] == DATA_MAKE_NUM(DATADIR_MGCONST, 12) || lbl_1_data_0[i] == DATA_MAKE_NUM(DATADIR_MGCONST, 0)) { - StructBss3CData* var_r22 = lbl_1_bss_3C[ - (i == 6) ? 0 - : (i == 13) ? 1 - : (i == 14) ? 2 : 3 - ]->data; + StructBss3CData *var_r22 = lbl_1_bss_3C[(i == 6) ? 0 : (i == 13) ? 1 : (i == 14) ? 2 : 3]->data; lbl_1_data_40[i] = espEntry(lbl_1_data_0[i] + var_r22->unk08, 0, 0); - } else { + } + else { lbl_1_data_40[i] = espEntry(lbl_1_data_0[i], 0, 0); } espDrawNoSet(lbl_1_data_40[i], 0); @@ -1764,9 +1635,10 @@ void fn_1_9900(omObjData* arg0) { arg0->func = fn_1_3B74; } -void fn_1_AC4C(omObjData* arg0) { +void fn_1_AC4C(omObjData *arg0) +{ s32 sp8[] = { 0, 1, 2, 3 }; - StructBss3CData* temp_r31; + StructBss3CData *temp_r31; s32 var_r27; s32 j; s32 i; @@ -1816,14 +1688,16 @@ void fn_1_AC4C(omObjData* arg0) { arg0->func = fn_1_2FC; } -void fn_1_B004(omObjData* arg0) { +void fn_1_B004(omObjData *arg0) +{ lbl_1_bss_34 = 1000; WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); arg0->func = fn_1_89E0; } -void ObjectSetup(void) { - omObjData* var_r30; +void ObjectSetup(void) +{ + omObjData *var_r30; s32 i; OSReport("******* M422 ObjectSetup *********\n"); @@ -1868,8 +1742,9 @@ void ObjectSetup(void) { lbl_1_bss_50 = omAddObjEx(lbl_1_bss_30, 102, 0, 0, -1, fn_1_B004); } -void fn_1_B480(omObjData* arg0) { - StructBss3CData* var_r30; +void fn_1_B480(omObjData *arg0) +{ + StructBss3CData *var_r30; s32 i; if (WipeStatGet() == 0) { diff --git a/src/REL/m423Dll/main.c b/src/REL/m423Dll/main.c index c063e916..a511fc2d 100755 --- a/src/REL/m423Dll/main.c +++ b/src/REL/m423Dll/main.c @@ -26,7 +26,7 @@ typedef struct { /* 0x04 */ s32 unk04; /* 0x08 */ s32 unk08; /* 0x0C */ s32 unk0C; - /* 0x10 */ void* unk10; + /* 0x10 */ void *unk10; } StructBssD0Data; // Size 0x14 typedef struct { @@ -36,8 +36,8 @@ typedef struct { } StructData0; // Size 0x1C typedef struct { - /* 0x00 */ StructBssD0Data* unk00; - /* 0x04 */ AnimData* unk04; + /* 0x00 */ StructBssD0Data *unk00; + /* 0x04 */ AnimData *unk04; } StructM423_00; // Size 8 typedef struct { @@ -54,19 +54,19 @@ typedef struct { /* 0x04 */ s16 unk04; /* 0x06 */ char unk06[2]; /* 0x08 */ Vec unk08; - /* 0x14 */ Vec* unk14; - /* 0x18 */ Vec* unk18; - /* 0x1C */ GXColor* unk1C; - /* 0x20 */ StructM423_01* unk20; + /* 0x14 */ Vec *unk14; + /* 0x18 */ Vec *unk18; + /* 0x1C */ GXColor *unk1C; + /* 0x20 */ StructM423_01 *unk20; /* 0x24 */ float unk24[4]; /* 0x34 */ u32 unk34; - /* 0x38 */ void* unk38; + /* 0x38 */ void *unk38; } StructM423_02; // Size 0x3C typedef struct { /* 0x00 */ s16 unk00; /* 0x02 */ s16 unk02; - /* 0x04 */ StructM423_02* unk04; + /* 0x04 */ StructM423_02 *unk04; } StructM423_03; // Size 8 typedef struct { @@ -99,13 +99,13 @@ typedef struct struct_m423_05 { /* 0x2C */ s32 unk2C; /* 0x30 */ u32 unk30; /* 0x34 */ s32 unk34; - /* 0x38 */ AnimData* unk38; - /* 0x3C */ StructM423_04* unk3C; - /* 0x40 */ Vec* unk40; + /* 0x38 */ AnimData *unk38; + /* 0x3C */ StructM423_04 *unk3C; + /* 0x40 */ Vec *unk40; /* 0x44 */ float (*unk44)[2]; - /* 0x48 */ void* unk48; - /* 0x4C */ void* unk4C; - /* 0x50 */ ModelData* unk50; + /* 0x48 */ void *unk48; + /* 0x4C */ void *unk4C; + /* 0x50 */ ModelData *unk50; } StructM423_05; // Size 0x54 typedef struct { @@ -151,15 +151,15 @@ typedef struct { typedef struct { /* 0x000 */ StructM423_0A unk00[16]; - /* 0x200 */ AnimData* unk200; + /* 0x200 */ AnimData *unk200; /* 0x204 */ s32 unk204; - /* 0x208 */ void* unk208; - /* 0x20C */ StructM423_08* unk20C; - /* 0x210 */ StructM423_09* unk210; - /* 0x214 */ GXColor* unk214; + /* 0x208 */ void *unk208; + /* 0x20C */ StructM423_08 *unk20C; + /* 0x210 */ StructM423_09 *unk210; + /* 0x214 */ GXColor *unk214; /* 0x218 */ s32 unk218; /* 0x21C */ s32 unk21C; - /* 0x220 */ void* unk220; + /* 0x220 */ void *unk220; } StructM423_0B; // Size 0x224 typedef struct { @@ -284,100 +284,100 @@ typedef struct { typedef struct { /* 0x00 */ s32 unk00; /* 0x04 */ s32 unk04; - /* 0x08 */ AnimData* unk08; + /* 0x08 */ AnimData *unk08; } StructBssA4Data; // Size 0xC -void fn_1_318(omObjData* arg0); -void fn_1_3B0(omObjData* arg0); -void fn_1_DFC(omObjData* arg0); -void fn_1_E60(omObjData* arg0); +void fn_1_318(omObjData *arg0); +void fn_1_3B0(omObjData *arg0); +void fn_1_DFC(omObjData *arg0); +void fn_1_E60(omObjData *arg0); void fn_1_F10(void); -void fn_1_F60(omObjData* arg0); -void fn_1_11A4(omObjData* arg0); +void fn_1_F60(omObjData *arg0); +void fn_1_11A4(omObjData *arg0); void fn_1_1238(void); -void fn_1_12A0(ModelData* arg0, Mtx arg1); -s32 fn_1_13A0(StructBssD0Data* arg0); +void fn_1_12A0(ModelData *arg0, Mtx arg1); +s32 fn_1_13A0(StructBssD0Data *arg0); void fn_1_1444(s32 arg0); -void fn_1_14A0(ModelData* arg0, Mtx arg1); +void fn_1_14A0(ModelData *arg0, Mtx arg1); s32 fn_1_18FC(void); -void fn_1_1B5C(ModelData* arg0, StructM423_02* arg1); -void fn_1_1F5C(ModelData* arg0, StructM423_02* arg1); -void fn_1_2290(ModelData* arg0, StructM423_02* arg1); -void fn_1_2624(ModelData* arg0, StructM423_02* arg1); +void fn_1_1B5C(ModelData *arg0, StructM423_02 *arg1); +void fn_1_1F5C(ModelData *arg0, StructM423_02 *arg1); +void fn_1_2290(ModelData *arg0, StructM423_02 *arg1); +void fn_1_2624(ModelData *arg0, StructM423_02 *arg1); void fn_1_29B8(s32 arg0); -void fn_1_29BC(ModelData* arg0, Mtx arg1); +void fn_1_29BC(ModelData *arg0, Mtx arg1); void fn_1_2C08(s32 arg0); void fn_1_34D8(void); -void fn_1_3528(omObjData* arg0); -void fn_1_3898(omObjData* arg0); +void fn_1_3528(omObjData *arg0); +void fn_1_3898(omObjData *arg0); void fn_1_3A64(void); void fn_1_3A8C(void); void fn_1_3BFC(void); -void fn_1_3FE0(omObjData* arg0); -void fn_1_4778(omObjData* arg0); -void fn_1_5D18(omObjData* arg0); +void fn_1_3FE0(omObjData *arg0); +void fn_1_4778(omObjData *arg0); +void fn_1_5D18(omObjData *arg0); void fn_1_77D0(void); s32 fn_1_781C(void); s32 fn_1_791C(void); void fn_1_7AA8(s32 arg0); void fn_1_82C8(s32 arg0, s32 arg1, s32 arg2); -void fn_1_8338(omObjData* arg0); -void fn_1_8CB4(omObjData* arg0); +void fn_1_8338(omObjData *arg0); +void fn_1_8CB4(omObjData *arg0); void fn_1_95C4(void); -void fn_1_9614(omObjData* arg0); -void fn_1_98A0(omObjData* arg0); +void fn_1_9614(omObjData *arg0); +void fn_1_98A0(omObjData *arg0); void fn_1_A9AC(void); s32 fn_1_A9D4(s32 arg0, Vec arg1, Vec arg2); void fn_1_AC0C(s32 arg0, Vec arg1); void fn_1_AC80(s32 arg0, Vec arg1); s32 fn_1_AE64(s32 arg0); void fn_1_AEE8(s32 arg0); -StructBssA8Data* fn_1_B13C(s32 arg0); +StructBssA8Data *fn_1_B13C(s32 arg0); void fn_1_B1A4(void); -s32 fn_1_B304(StructBssA8Data** arg0); +s32 fn_1_B304(StructBssA8Data **arg0); void fn_1_B430(void); -void fn_1_BCD8(Vec* arg0, Vec* arg1, Vec* arg2, float arg3, s32 arg4, s32 arg5); -s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5); +void fn_1_BCD8(Vec *arg0, Vec *arg1, Vec *arg2, float arg3, s32 arg4, s32 arg5); +s32 fn_1_C498(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, float arg4, s32 arg5); void fn_1_D930(void); -void fn_1_DA38(omObjData* arg0); +void fn_1_DA38(omObjData *arg0); void fn_1_DBC8(void); s32 fn_1_DC24(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, GXColor arg5); s32 fn_1_DD70(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5, GXColor arg6); void fn_1_E1BC(void); -void fn_1_E290(omObjData* arg0); +void fn_1_E290(omObjData *arg0); void fn_1_E330(void); s32 fn_1_E334(Vec arg0, Vec arg1, float arg2); void fn_1_E460(void); -void fn_1_E4EC(omObjData* arg0); +void fn_1_E4EC(omObjData *arg0); void fn_1_E60C(void); s32 fn_1_E678(void); -void fn_1_EF44(ModelData* arg0, Mtx arg1); +void fn_1_EF44(ModelData *arg0, Mtx arg1); s32 fn_1_F574(Vec arg0, float arg1, s32 arg2); void fn_1_F690(void); -void fn_1_F6E0(omObjData* arg0); -void fn_1_FA40(omObjData* arg0); +void fn_1_F6E0(omObjData *arg0); +void fn_1_FA40(omObjData *arg0); void fn_1_FF98(void); void fn_1_10028(s32 arg0); void fn_1_100DC(void); -void fn_1_10480(omObjData* arg0); +void fn_1_10480(omObjData *arg0); void fn_1_10540(s32 arg0, s32 arg1, s32 arg2, float arg3); void fn_1_106D8(s32 arg0); void fn_1_10BC8(void); -void fn_1_11008(StructBssD0Data* arg0, void* arg1, s16 arg2, GXTexWrapMode arg3, s32 arg4, s32 arg5); -s16 fn_1_11114(AnimData* arg0, s16 arg1); -void fn_1_11900(ModelData* arg0, Mtx arg1); +void fn_1_11008(StructBssD0Data *arg0, void *arg1, s16 arg2, GXTexWrapMode arg3, s32 arg4, s32 arg5); +s16 fn_1_11114(AnimData *arg0, s16 arg1); +void fn_1_11900(ModelData *arg0, Mtx arg1); float fn_1_121DC(float arg0, float arg1); float fn_1_122F4(float arg0, float arg1, float arg2); float fn_1_12544(float arg0, float arg1, float arg2); -void fn_1_1293C(Mtx arg0, Vec* arg1); -s32 fn_1_12C6C(Vec* arg0, Vec* arg1, float* arg2); -float fn_1_12E68(Vec* arg0, Vec* arg1, s32 arg2); -void fn_1_129F0(Vec* arg0, Vec* arg1, Vec* arg2, float* arg3); -void fn_1_1334C(float* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4); -float fn_1_1367C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float* arg4); -s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5); +void fn_1_1293C(Mtx arg0, Vec *arg1); +s32 fn_1_12C6C(Vec *arg0, Vec *arg1, float *arg2); +float fn_1_12E68(Vec *arg0, Vec *arg1, s32 arg2); +void fn_1_129F0(Vec *arg0, Vec *arg1, Vec *arg2, float *arg3); +void fn_1_1334C(float *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4); +float fn_1_1367C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, float *arg4); +s32 fn_1_137C4(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, float arg4, s32 arg5); -Process* lbl_1_bss_120; +Process *lbl_1_bss_120; s32 lbl_1_bss_11C; s32 lbl_1_bss_118; s32 lbl_1_bss_114; @@ -390,73 +390,52 @@ s32 lbl_1_bss_FC; s32 lbl_1_bss_EC[4]; s32 lbl_1_bss_DC[4]; s32 lbl_1_bss_D8; -omObjData* lbl_1_bss_D4; -omObjData* lbl_1_bss_D0; -omObjData* lbl_1_bss_CC; -omObjData* lbl_1_bss_BC[4]; -omObjData* lbl_1_bss_B8; -omObjData* lbl_1_bss_AC[3]; -omObjData* lbl_1_bss_A8; -omObjData* lbl_1_bss_A4; -omObjData* lbl_1_bss_A0; -omObjData* lbl_1_bss_9C; -omObjData* lbl_1_bss_98; -StructBss94Data* lbl_1_bss_94; +omObjData *lbl_1_bss_D4; +omObjData *lbl_1_bss_D0; +omObjData *lbl_1_bss_CC; +omObjData *lbl_1_bss_BC[4]; +omObjData *lbl_1_bss_B8; +omObjData *lbl_1_bss_AC[3]; +omObjData *lbl_1_bss_A8; +omObjData *lbl_1_bss_A4; +omObjData *lbl_1_bss_A0; +omObjData *lbl_1_bss_9C; +omObjData *lbl_1_bss_98; +StructBss94Data *lbl_1_bss_94; s32 lbl_1_bss_90; -omObjData* lbl_1_bss_8C; +omObjData *lbl_1_bss_8C; s32 lbl_1_bss_88; s32 lbl_1_bss_84; s32 lbl_1_bss_80; s32 lbl_1_bss_7C; -StructBssA8Data* lbl_1_bss_40[15]; -StructBssA8Data* lbl_1_bss_4[15]; +StructBssA8Data *lbl_1_bss_40[15]; +StructBssA8Data *lbl_1_bss_4[15]; s32 lbl_1_bss_0; -StructData0 lbl_1_data_0[] = { - { { 342.45f, 0.0f, 0.0f }, { 0.0f, 275.0f, 128.0f }, 550.0f }, - { { 6.0f, 0.0f, 0.0f }, { 0.0f, 190.0f, 0.0f }, 550.0f } -}; +StructData0 lbl_1_data_0[] + = { { { 342.45f, 0.0f, 0.0f }, { 0.0f, 275.0f, 128.0f }, 550.0f }, { { 6.0f, 0.0f, 0.0f }, { 0.0f, 190.0f, 0.0f }, 550.0f } }; -StructData0 lbl_1_data_38[] = { - { { 22.0f, 180.0f, 0.0f }, { -250.0f, 120.00001f, 0.0f }, 160.0f }, - { { 22.0f, 180.0f, 0.0f }, { 0.0f, 120.00001f, 0.0f }, 160.0f }, - { { 22.0f, 180.0f, 0.0f }, { 250.0f, 120.00001f, 0.0f }, 160.0f }, - { { -45.0f, 180.0f, 0.0f }, { -250.0f, 75.0f, 0.0f }, 180.0f }, - { { -45.0f, 180.0f, 0.0f }, { 0.0f, 75.0f, 0.0f }, 180.0f }, - { { -45.0f, 180.0f, 0.0f }, { 250.0f, 75.0f, 0.0f }, 180.0f }, - { { -45.0f, 0.0f, 0.0f }, { -250.0f, 95.0f, 0.0f }, 150.0f }, - { { -45.0f, 0.0f, 0.0f }, { 0.0f, 95.0f, 0.0f }, 150.0f }, - { { -45.0f, 0.0f, 0.0f }, { 250.0f, 95.0f, 0.0f }, 150.0f }, - { { -45.0f, 0.0f, 0.0f }, { 0.0f, 95.0f, -850.0f }, 150.0f } -}; +StructData0 lbl_1_data_38[] + = { { { 22.0f, 180.0f, 0.0f }, { -250.0f, 120.00001f, 0.0f }, 160.0f }, { { 22.0f, 180.0f, 0.0f }, { 0.0f, 120.00001f, 0.0f }, 160.0f }, + { { 22.0f, 180.0f, 0.0f }, { 250.0f, 120.00001f, 0.0f }, 160.0f }, { { -45.0f, 180.0f, 0.0f }, { -250.0f, 75.0f, 0.0f }, 180.0f }, + { { -45.0f, 180.0f, 0.0f }, { 0.0f, 75.0f, 0.0f }, 180.0f }, { { -45.0f, 180.0f, 0.0f }, { 250.0f, 75.0f, 0.0f }, 180.0f }, + { { -45.0f, 0.0f, 0.0f }, { -250.0f, 95.0f, 0.0f }, 150.0f }, { { -45.0f, 0.0f, 0.0f }, { 0.0f, 95.0f, 0.0f }, 150.0f }, + { { -45.0f, 0.0f, 0.0f }, { 250.0f, 95.0f, 0.0f }, 150.0f }, { { -45.0f, 0.0f, 0.0f }, { 0.0f, 95.0f, -850.0f }, 150.0f } }; -Vec lbl_1_data_150[] = { - 0.0f, 0.0f, -850.0f, - -250.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, - 250.0f, 0.0f, 0.0f -}; +Vec lbl_1_data_150[] = { 0.0f, 0.0f, -850.0f, -250.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 250.0f, 0.0f, 0.0f }; -Vec lbl_1_data_180[] = { - 0.0f, 0.0f, -850.0f, - 850.0f, 0.0f, 0.0f, - 1200.0f, 0.0f, 0.0f, - 1650.0f, 0.0f, 0.0f -}; +Vec lbl_1_data_180[] = { 0.0f, 0.0f, -850.0f, 850.0f, 0.0f, 0.0f, 1200.0f, 0.0f, 0.0f, 1650.0f, 0.0f, 0.0f }; -Vec lbl_1_data_1B0[] = { - { -250.0f, 45.0f, 500.0f }, - { 0.0f, 45.0f, 500.0f }, - { 250.0f, 45.0f, 500.0f } -}; +Vec lbl_1_data_1B0[] = { { -250.0f, 45.0f, 500.0f }, { 0.0f, 45.0f, 500.0f }, { 250.0f, 45.0f, 500.0f } }; Vec lbl_1_data_1D4 = { 1000.0f, 2000.0f, 1000.0f }; Vec lbl_1_data_1E0 = { 0.0f, 1.0f, 0.0f }; Vec lbl_1_data_1EC = { 0.0f, 0.0f, -450.0f }; -void ObjectSetup(void) { - Process* var_r30; - CameraData* var_r29; +void ObjectSetup(void) +{ + Process *var_r30; + CameraData *var_r29; s32 i; OSReport("******* M426ObjectSetup *********\n"); @@ -499,7 +478,8 @@ Vec lbl_1_data_21C = { 0.0f, 0.0f, 0.0f }; Vec lbl_1_data_228 = { -1.0f, -2.0f, -1.0f }; GXColor lbl_1_data_234 = { 0xFF, 0xFF, 0xFF, 0xFF }; -void fn_1_318(omObjData* arg0) { +void fn_1_318(omObjData *arg0) +{ s32 var_r31; var_r31 = Hu3DGLightCreateV(&lbl_1_data_21C, &lbl_1_data_228, &lbl_1_data_234); @@ -520,8 +500,9 @@ void fn_1_318(omObjData* arg0) { s32 lbl_1_data_238[] = { 0, 4, 2, 3, 1, 5 }; s32 lbl_1_data_250[] = { 186, 186, 186, 240, 240, 240 }; -void fn_1_3B0(omObjData* arg0) { - CameraData* var_r28; +void fn_1_3B0(omObjData *arg0) +{ + CameraData *var_r28; float var_f31; s32 temp_r27; s32 var_r30; @@ -580,7 +561,8 @@ void fn_1_3B0(omObjData* arg0) { if ((var_r30 & 0x10) && lbl_1_bss_D8 == -1) { lbl_1_bss_D8 = HuAudSeqPlay(0x46); } - } else { + } + else { var_r30 = 0; } if (lbl_1_bss_11C == -1 || var_r30 == 0) { @@ -632,22 +614,27 @@ void fn_1_3B0(omObjData* arg0) { } if (lbl_1_bss_DC[0] > lbl_1_bss_DC[1] && lbl_1_bss_DC[0] > lbl_1_bss_DC[2]) { i = 0; - } else if (lbl_1_bss_DC[1] > lbl_1_bss_DC[0] && lbl_1_bss_DC[1] > lbl_1_bss_DC[2]) { + } + else if (lbl_1_bss_DC[1] > lbl_1_bss_DC[0] && lbl_1_bss_DC[1] > lbl_1_bss_DC[2]) { i = 1; - } else if (lbl_1_bss_DC[2] > lbl_1_bss_DC[0] && lbl_1_bss_DC[2] > lbl_1_bss_DC[1]) { + } + else if (lbl_1_bss_DC[2] > lbl_1_bss_DC[0] && lbl_1_bss_DC[2] > lbl_1_bss_DC[1]) { i = 2; - } else { + } + else { i = frand() & 3; if (i > 2) { i = 2; - } else if (i < 0) { + } + else if (i < 0) { i = 0; } } fn_1_106D8(i + 6); lbl_1_bss_114 = 10; lbl_1_bss_108 = 0; - } else { + } + else { lbl_1_bss_11C = MGSeqWinCreate(lbl_1_bss_EC[3], -1, -1, -1); fn_1_7AA8(0); for (i = 0; i < 4; i++) { @@ -678,7 +665,8 @@ void fn_1_3B0(omObjData* arg0) { fn_1_E60(arg0); } -void fn_1_DFC(omObjData* arg0) { +void fn_1_DFC(omObjData *arg0) +{ if (WipeStatGet() == 0) { fn_1_1238(); fn_1_3A64(); @@ -694,7 +682,8 @@ void fn_1_DFC(omObjData* arg0) { } } -void fn_1_E60(omObjData* arg0) { +void fn_1_E60(omObjData *arg0) +{ s32 var_r30; var_r30 = 0; @@ -711,17 +700,20 @@ void fn_1_E60(omObjData* arg0) { } } -s32 fn_1_F00(void) { +s32 fn_1_F00(void) +{ return lbl_1_bss_114; } -void fn_1_F10(void) { +void fn_1_F10(void) +{ lbl_1_bss_D0 = omAddObjEx(lbl_1_bss_120, 0x7F, 8, 0, -1, fn_1_F60); } -void fn_1_F60(omObjData* arg0) { - StructBssD0Data* temp_r30; - ModelData* temp_r29; +void fn_1_F60(omObjData *arg0) +{ + StructBssD0Data *temp_r30; + ModelData *temp_r29; temp_r30 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r30), MEMORY_DEFAULT_NUM); memset(temp_r30, 0, sizeof(*temp_r30)); @@ -741,7 +733,7 @@ void fn_1_F60(omObjData* arg0) { temp_r30->unk00 = 160; temp_r30->unk04 = 160; temp_r30->unk08 = GXGetTexBufferSize(temp_r30->unk00, temp_r30->unk04, 5, 0, 0); - temp_r30->unk10 = HuMemDirectMallocNum(HEAP_DATA, temp_r30->unk08, (u32) temp_r29->unk_48); + temp_r30->unk10 = HuMemDirectMallocNum(HEAP_DATA, temp_r30->unk08, (u32)temp_r29->unk_48); temp_r30->unk0C = 0.0f; arg0->model[4] = fn_1_13A0(temp_r30); Hu3DModelCameraSet(arg0->model[4], 5); @@ -751,11 +743,13 @@ void fn_1_F60(omObjData* arg0) { arg0->func = fn_1_11A4; } -void fn_1_11A4(omObjData* arg0) { +void fn_1_11A4(omObjData *arg0) +{ fn_1_2C08(arg0->model[5]); } -void fn_1_11D8(omObjData* arg0) { +void fn_1_11D8(omObjData *arg0) +{ fn_1_1444(arg0->model[4]); arg0->model[4] = -1; fn_1_29B8(arg0->model[5]); @@ -763,15 +757,17 @@ void fn_1_11D8(omObjData* arg0) { arg0->func = NULL; } -void fn_1_1238(void) { +void fn_1_1238(void) +{ fn_1_11D8(lbl_1_bss_D0); } GXColor lbl_1_data_298 = { 0x00, 0x00, 0x00, 0xFF }; -void fn_1_12A0(ModelData* arg0, Mtx arg1) { - StructBssD0Data* temp_r31; - CameraData* var_r30; +void fn_1_12A0(ModelData *arg0, Mtx arg1) +{ + StructBssD0Data *temp_r31; + CameraData *var_r30; temp_r31 = arg0->unk_120; var_r30 = &Hu3DCamera[1]; @@ -788,9 +784,10 @@ void fn_1_12A0(ModelData* arg0, Mtx arg1) { fn_1_10BC8(); } -s32 fn_1_13A0(StructBssD0Data* arg0) { - StructM423_00* var_r31; - ModelData* temp_r30; +s32 fn_1_13A0(StructBssD0Data *arg0) +{ + StructM423_00 *var_r31; + ModelData *temp_r30; s32 var_r29; var_r29 = Hu3DHookFuncCreate(fn_1_14A0); @@ -802,9 +799,10 @@ s32 fn_1_13A0(StructBssD0Data* arg0) { return var_r29; } -void fn_1_1444(s32 arg0) { - StructM423_00* var_r31; - ModelData* var_r30; +void fn_1_1444(s32 arg0) +{ + StructM423_00 *var_r31; + ModelData *var_r30; if (arg0 >= 0) { var_r30 = &Hu3DData[arg0]; @@ -813,37 +811,21 @@ void fn_1_1444(s32 arg0) { } } -f32 lbl_1_data_29C[] = { - -400.0f, 400.0f, 0.0f, - 400.0f, 400.0f, 0.0f, - 400.0f, 0.0f, 0.0f, - -400.0f, 0.0f, 0.0f -}; +f32 lbl_1_data_29C[] = { -400.0f, 400.0f, 0.0f, 400.0f, 400.0f, 0.0f, 400.0f, 0.0f, 0.0f, -400.0f, 0.0f, 0.0f }; -f32 lbl_1_data_2CC[] = { - 0.0f, 0.0f, - 1.0f, 0.0f, - 1.0f, 0.75f, - 0.0f, 0.75f -}; +f32 lbl_1_data_2CC[] = { 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.75f, 0.0f, 0.75f }; -f32 lbl_1_data_2EC[] = { - 0.0f, 0.0f, - 1.2f, 0.0f, - 1.2f, 0.75f, - 0.0f, 0.75f -}; +f32 lbl_1_data_2EC[] = { 0.0f, 0.0f, 1.2f, 0.0f, 1.2f, 0.75f, 0.0f, 0.75f }; -GXColor lbl_1_data_30C[] = { - { 0x40, 0x40, 0x40, 0xFF } -}; +GXColor lbl_1_data_30C[] = { { 0x40, 0x40, 0x40, 0xFF } }; GXColor lbl_1_data_310 = { 0x00, 0x00, 0x00, 0x80 }; -void fn_1_14A0(ModelData* arg0, Mtx arg1) { - CameraData* var_r28; - StructM423_00* temp_r29; - StructBssD0Data* temp_r30; +void fn_1_14A0(ModelData *arg0, Mtx arg1) +{ + CameraData *var_r28; + StructM423_00 *temp_r29; + StructBssD0Data *temp_r30; Mtx spC; s16 i; @@ -855,7 +837,7 @@ void fn_1_14A0(ModelData* arg0, Mtx arg1) { return; } GXLoadPosMtxImm(arg1, GX_PNMTX0); - PSMTXInvXpose(arg1, spC); + MTXInvXpose(arg1, spC); GXLoadNrmMtxImm(spC, GX_PNMTX0); GXSetTevColor(GX_TEVREG2, lbl_1_data_310); GXSetNumTevStages(2); @@ -874,7 +856,8 @@ void fn_1_14A0(ModelData* arg0, Mtx arg1) { GXSetTevOp(GX_TEVSTAGE1, GX_REPLACE); GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_CPREV, GX_CC_C2, GX_CC_TEXA, GX_CC_ZERO); GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - } else { + } + else { GXSetTevOp(GX_TEVSTAGE1, GX_REPLACE); GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_CPREV, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); @@ -912,21 +895,15 @@ void fn_1_14A0(ModelData* arg0, Mtx arg1) { } } -s32 lbl_1_data_314[][2] = { - { 20, 10 }, { 20, 7 }, { 10, 10 }, { 10, 10 } -}; +s32 lbl_1_data_314[][2] = { { 20, 10 }, { 20, 7 }, { 10, 10 }, { 10, 10 } }; -Vec lbl_1_data_334[] = { - { 0.0f, 100.0f, -1100.0f }, - { 0.0f, 200.0f, -1000.0f }, - { -225.0f, 100.0f, -1000.0f }, - { 225.0f, 100.0f, -1000.0f } -}; +Vec lbl_1_data_334[] = { { 0.0f, 100.0f, -1100.0f }, { 0.0f, 200.0f, -1000.0f }, { -225.0f, 100.0f, -1000.0f }, { 225.0f, 100.0f, -1000.0f } }; -s32 fn_1_18FC(void) { - ModelData* temp_r30; - StructM423_03* var_r29; - StructM423_02* temp_r31; +s32 fn_1_18FC(void) +{ + ModelData *temp_r30; + StructM423_03 *var_r29; + StructM423_02 *temp_r31; s32 var_r27; s32 i; @@ -970,23 +947,20 @@ s32 fn_1_18FC(void) { return var_r27; } -Vec lbl_1_data_364[] = { - { -200.0f, 0.0f, -1100.0f }, - { -200.0f, 200.0f, -1050.0f }, - { 200.0f, 200.0f, -1050.0f } -}; +Vec lbl_1_data_364[] = { { -200.0f, 0.0f, -1100.0f }, { -200.0f, 200.0f, -1050.0f }, { 200.0f, 200.0f, -1050.0f } }; GXColor lbl_1_data_388 = { 0xFF, 0xFF, 0xFF, 0xFF }; -void fn_1_1B5C(ModelData* arg0, StructM423_02* arg1) { +void fn_1_1B5C(ModelData *arg0, StructM423_02 *arg1) +{ float var_f31; float var_f30; float var_f29; - Vec* var_r27; - GXColor* var_r26; - StructM423_01* var_r28; - void* var_r25; - void* var_r23; + Vec *var_r27; + GXColor *var_r26; + StructM423_01 *var_r28; + void *var_r25; + void *var_r23; s32 i; s32 j; @@ -1006,7 +980,8 @@ void fn_1_1B5C(ModelData* arg0, StructM423_02* arg1) { var_r28->unk02 = i; if (i == 0 || i == 9 || j == 0 || j == 19) { var_r28->unk04 = 1; - } else { + } + else { var_r28->unk04 = 0; } var_r28->unk06 = 0; @@ -1050,14 +1025,15 @@ void fn_1_1B5C(ModelData* arg0, StructM423_02* arg1) { GXColor lbl_1_data_3AB = { 0xFF, 0xFF, 0xFF, 0xFF }; -void fn_1_1F5C(ModelData* arg0, StructM423_02* arg1) { +void fn_1_1F5C(ModelData *arg0, StructM423_02 *arg1) +{ float var_f31; float var_f30; float var_f29; - Vec* var_r27; - GXColor* var_r26; - void* var_r25; - void* var_r23; + Vec *var_r27; + GXColor *var_r26; + void *var_r25; + void *var_r23; s32 i; s32 j; @@ -1110,15 +1086,16 @@ void fn_1_1F5C(ModelData* arg0, StructM423_02* arg1) { GXColor lbl_1_data_3AF = { 0xFF, 0xFF, 0xFF, 0xFF }; -void fn_1_2290(ModelData* arg0, StructM423_02* arg1) { +void fn_1_2290(ModelData *arg0, StructM423_02 *arg1) +{ float var_f31; float var_f30; float var_f29; float var_f28; - Vec* var_r27; - GXColor* var_r26; - void* var_r25; - void* var_r23; + Vec *var_r27; + GXColor *var_r26; + void *var_r25; + void *var_r23; s32 i; s32 j; @@ -1175,15 +1152,16 @@ void fn_1_2290(ModelData* arg0, StructM423_02* arg1) { GXColor lbl_1_data_3B3 = { 0xFF, 0xFF, 0xFF, 0xFF }; -void fn_1_2624(ModelData* arg0, StructM423_02* arg1) { +void fn_1_2624(ModelData *arg0, StructM423_02 *arg1) +{ float var_f31; float var_f30; float var_f29; float var_f28; - Vec* var_r27; - GXColor* var_r26; - void* var_r25; - void* var_r23; + Vec *var_r27; + GXColor *var_r26; + void *var_r25; + void *var_r23; s32 i; s32 j; @@ -1238,18 +1216,18 @@ void fn_1_2624(ModelData* arg0, StructM423_02* arg1) { HuMemDirectFree(var_r25); } -void fn_1_29B8(s32 arg0) { -} +void fn_1_29B8(s32 arg0) { } -void fn_1_29BC(ModelData* arg0, Mtx arg1) { - StructM423_03* temp_r30; - StructM423_02* temp_r31; +void fn_1_29BC(ModelData *arg0, Mtx arg1) +{ + StructM423_03 *temp_r30; + StructM423_02 *temp_r31; Mtx sp8; s16 i; temp_r30 = arg0->unk_120; GXLoadPosMtxImm(arg1, GX_PNMTX0); - PSMTXInvXpose(arg1, sp8); + MTXInvXpose(arg1, sp8); GXLoadNrmMtxImm(sp8, GX_PNMTX0); GXSetLineWidth(6, GX_TO_ZERO); GXSetNumTevStages(1); @@ -1284,26 +1262,27 @@ void fn_1_29BC(ModelData* arg0, Mtx arg1) { } } -void fn_1_2C08(s32 arg0) { +void fn_1_2C08(s32 arg0) +{ Vec sp3C; Vec sp30; Vec sp24; - Vec* var_r25; - Vec* var_r24; - Vec* temp_r27; - Vec* temp_r29; + Vec *var_r25; + Vec *var_r24; + Vec *temp_r27; + Vec *temp_r29; float temp_f31; float temp_f28; float temp_f30; float var_f29; float var_f27; - StructM423_02* temp_r30; - StructM423_01* var_r28; - StructBssA8Data* var_r31; - StructM423_03* var_r17; - ModelData* sp20; - ModelData* sp1C; - StructM423_01* sp18; + StructM423_02 *temp_r30; + StructM423_01 *var_r28; + StructBssA8Data *var_r31; + StructM423_03 *var_r17; + ModelData *sp20; + ModelData *sp1C; + StructM423_01 *sp18; s32 var_r20; s32 temp_r19; s32 temp_r18; @@ -1330,30 +1309,28 @@ void fn_1_2C08(s32 arg0) { if (var_r28->unk04 != 0) { continue; } - PSVECSubtract(var_r24, var_r25, &sp30); - temp_f31 = PSVECMag(&sp30); + VECSubtract(var_r24, var_r25, &sp30); + temp_f31 = VECMag(&sp30); if (temp_f31 >= 0.0f) { - PSVECScale(&sp30, &sp30, 0.05f); - PSVECAdd(&var_r28->unk08, &sp30, &var_r28->unk08); - temp_f31 = PSVECMag(&var_r28->unk08); + VECScale(&sp30, &sp30, 0.05f); + VECAdd(&var_r28->unk08, &sp30, &var_r28->unk08); + temp_f31 = VECMag(&var_r28->unk08); if (temp_f31 > 10.0f) { - PSVECNormalize(&var_r28->unk08, &var_r28->unk08); - PSVECScale(&var_r28->unk08, &var_r28->unk08, 10.0f); + VECNormalize(&var_r28->unk08, &var_r28->unk08); + VECScale(&var_r28->unk08, &var_r28->unk08, 10.0f); } } - PSVECAdd(var_r25, &var_r28->unk08, var_r25); - PSVECScale(&var_r28->unk08, &var_r28->unk08, 0.5f); + VECAdd(var_r25, &var_r28->unk08, var_r25); + VECScale(&var_r28->unk08, &var_r28->unk08, 0.5f); } for (i = 0; i < 15; i++, var_r31++) { if (var_r31->unk06 == 0 || var_r31->unk0C != 3) { continue; } spC = 0; - PSVECSubtract(&var_r31->unk38, &var_r31->unk74, &sp30); - if (var_r31->unk38.x > -225.0f && var_r31->unk38.x < 225.0f - && var_r31->unk38.y > 0.0f && var_r31->unk38.y < 200.0f - && var_r31->unk38.z > -1150.0f && var_r31->unk38.z < -950.0f) - { + VECSubtract(&var_r31->unk38, &var_r31->unk74, &sp30); + if (var_r31->unk38.x > -225.0f && var_r31->unk38.x < 225.0f && var_r31->unk38.y > 0.0f && var_r31->unk38.y < 200.0f + && var_r31->unk38.z > -1150.0f && var_r31->unk38.z < -950.0f) { var_f27 = 0.005f * var_r31->unk38.y; var_f29 = -900.0f - (150.0f + var_f27 * 50.0f); if (var_r31->unk38.z - 20.0 < var_f29) { @@ -1375,14 +1352,14 @@ void fn_1_2C08(s32 arg0) { sp24.x = var_r31->unk5C.z; sp24.z = -var_r31->unk5C.x; sp24.y = 0.0f; - temp_f31 = 0.05 * PSVECMag(&sp24); + temp_f31 = 0.05 * VECMag(&sp24); if (temp_f31 > 0.00001f) { - PSMTXRotAxisRad(sp48, &sp24, temp_f31); - PSMTXConcat(sp48, sp1C->unk_F0, sp1C->unk_F0); + MTXRotAxisRad(sp48, &sp24, temp_f31); + MTXConcat(sp48, sp1C->unk_F0, sp1C->unk_F0); } temp_f31 = 0.0133333336f * fabs(var_f29 - (var_r31->unk38.z - 20.0)); - var_r31->unk50.z += temp_f31 * 0.4f; - PSVECScale(&var_r31->unk50, &var_r31->unk50, 0.95f); + var_r31->unk50.z += temp_f31 * 0.4f; + VECScale(&var_r31->unk50, &var_r31->unk50, 0.95f); var_r31->unk50.y *= 0.0f; var_r31->unk50.x *= 0.75f; sp14 = (var_r31->unk38.x - -225.0f) / 22.5f; @@ -1410,33 +1387,36 @@ void fn_1_2C08(s32 arg0) { } temp_r29 = &temp_r30->unk14[temp_r21]; temp_r27 = &temp_r30->unk18[temp_r21]; - PSVECSubtract(&sp3C, temp_r29, &sp30); + VECSubtract(&sp3C, temp_r29, &sp30); sp30.z = 0.0f; - temp_f31 = PSVECMag(&sp30); + temp_f31 = VECMag(&sp30); if (temp_f31 > 400.0f) { continue; } if (temp_f31 > 20.0) { temp_f30 = 0.0025f * (400.0f - temp_f31); temp_f30 = temp_f30 * temp_f30; - PSVECNormalize(&sp30, &sp30); - PSVECScale(&sp30, &sp30, 20.0f * (temp_f30 * temp_f30)); + VECNormalize(&sp30, &sp30); + VECScale(&sp30, &sp30, 20.0f * (temp_f30 * temp_f30)); temp_r29->x += 0.5f * (temp_r27->x + sp30.x - temp_r29->x); temp_r29->y += 0.5f * (temp_r27->y + sp30.y - temp_r29->y); temp_r29->z += 0.5f * (temp_r27->z - temp_f30 * temp_f28 - temp_r29->z); - } else { + } + else { temp_f30 = cosd(0.0025f * temp_f31 * 90.0f); if (temp_f31 != 0.0f) { - PSVECNormalize(&sp30, &sp30); - } else { + VECNormalize(&sp30, &sp30); + } + else { sp30.x = sp30.y = sp30.z = 0.0f; } - PSVECScale(&sp30, &sp30, temp_f30 * temp_f30 * 20.0f); + VECScale(&sp30, &sp30, temp_f30 * temp_f30 * 20.0f); temp_r29->z += 0.5f * (temp_r27->z - temp_f30 * temp_f28 - temp_r29->z); } } } - } else { + } + else { var_r31->unk10 = 0; } } @@ -1444,61 +1424,31 @@ void fn_1_2C08(s32 arg0) { PPCSync(); } -void fn_1_34D8(void) { +void fn_1_34D8(void) +{ lbl_1_bss_CC = omAddObjEx(lbl_1_bss_120, 0x81, 20, 6, -1, fn_1_3528); } -Vec lbl_1_data_3B8[] = { - -1300.0f, 300.0f, -2350.0f, - -800.0f, 200.0f, -2250.0f, - 800.0f, 200.0f, -2250.0f, - 1300.0f, 300.0f, -2350.0f, - -1000.0f, 300.0f, -2350.0f, - 1000.0f, 300.0f, -2350.0f, - -1200.0f, 400.0f, -2450.0f, - -800.0f, 400.0f, -2450.0f, - 800.0f, 400.0f, -2450.0f, - 1200.0f, 400.0f, -2450.0f, - -1400.0f, 200.0f, -2250.0f, - 1400.0f, 200.0f, -2250.0f, - -1400.0f, 400.0f, -2450.0f, - 1400.0f, 400.0f, -2450.0f, - -900.0f, 500.0f, -2550.0f, - 900.0f, 500.0f, -2550.0f, - -1200.0f, 500.0f, -2550.0f, - 1200.0f, 500.0f, -2550.0f, - -1100.0f, 200.0f, -2250.0f, - 1100.0f, 200.0f, -2250.0f -}; +Vec lbl_1_data_3B8[] = { -1300.0f, 300.0f, -2350.0f, -800.0f, 200.0f, -2250.0f, 800.0f, 200.0f, -2250.0f, 1300.0f, 300.0f, -2350.0f, -1000.0f, 300.0f, + -2350.0f, 1000.0f, 300.0f, -2350.0f, -1200.0f, 400.0f, -2450.0f, -800.0f, 400.0f, -2450.0f, 800.0f, 400.0f, -2450.0f, 1200.0f, 400.0f, -2450.0f, + -1400.0f, 200.0f, -2250.0f, 1400.0f, 200.0f, -2250.0f, -1400.0f, 400.0f, -2450.0f, 1400.0f, 400.0f, -2450.0f, -900.0f, 500.0f, -2550.0f, 900.0f, + 500.0f, -2550.0f, -1200.0f, 500.0f, -2550.0f, 1200.0f, 500.0f, -2550.0f, -1100.0f, 200.0f, -2250.0f, 1100.0f, 200.0f, -2250.0f }; -s32 lbl_1_data_4A8[] = { - 0, 1, 0, 1, 2, 2, 1, 0, - 1, 2, 0, 1, 2, 0, 1, 2, - 0, 1, 2, 1, 0 -}; +s32 lbl_1_data_4A8[] = { 0, 1, 0, 1, 2, 2, 1, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 1, 0 }; -s32 lbl_1_data_4FC[] = { - DATA_MAKE_NUM(DATADIR_M423, 12), - DATA_MAKE_NUM(DATADIR_M423, 15), - DATA_MAKE_NUM(DATADIR_M423, 18) -}; +s32 lbl_1_data_4FC[] = { DATA_MAKE_NUM(DATADIR_M423, 12), DATA_MAKE_NUM(DATADIR_M423, 15), DATA_MAKE_NUM(DATADIR_M423, 18) }; -s32 lbl_1_data_508[] = { - DATA_MAKE_NUM(DATADIR_M423, 13), - DATA_MAKE_NUM(DATADIR_M423, 14), - DATA_MAKE_NUM(DATADIR_M423, 16), - DATA_MAKE_NUM(DATADIR_M423, 17), - DATA_MAKE_NUM(DATADIR_M423, 19), - DATA_MAKE_NUM(DATADIR_M423, 20) -}; +s32 lbl_1_data_508[] = { DATA_MAKE_NUM(DATADIR_M423, 13), DATA_MAKE_NUM(DATADIR_M423, 14), DATA_MAKE_NUM(DATADIR_M423, 16), + DATA_MAKE_NUM(DATADIR_M423, 17), DATA_MAKE_NUM(DATADIR_M423, 19), DATA_MAKE_NUM(DATADIR_M423, 20) }; s16 lbl_1_data_520[] = { 0, 2, 4 }; -void fn_1_3528(omObjData* arg0) { +void fn_1_3528(omObjData *arg0) +{ float var_f30; float var_f29; float temp_f31; - StructBssCCData* var_r30; + StructBssCCData *var_r30; s32 temp_r27; s32 var_r28; s32 i; @@ -1525,7 +1475,8 @@ void fn_1_3528(omObjData* arg0) { Hu3DModelPosSet(var_r28, lbl_1_data_3B8[i].x, lbl_1_data_3B8[i].y, lbl_1_data_3B8[i].z); if (var_r30->unk00 != 1) { Hu3DModelRotSet(var_r28, 0.0f, temp_f31, 0.0f); - } else { + } + else { Hu3DModelRotSet(var_r28, 10.0f, temp_f31, 0.0f); } Hu3DModelScaleSet(var_r28, 1.8f, 1.8f, 1.8f); @@ -1541,8 +1492,9 @@ void fn_1_3528(omObjData* arg0) { s16 lbl_1_data_526[] = { 0, 2, 4 }; s16 lbl_1_data_52C[] = { 1, 3, 5, 0 }; -void fn_1_3898(omObjData* arg0) { - StructBssCCData* var_r31; +void fn_1_3898(omObjData *arg0) +{ + StructBssCCData *var_r31; s32 var_r28; s32 i; @@ -1552,13 +1504,16 @@ void fn_1_3898(omObjData* arg0) { if (var_r31->unk06 > 0) { var_r28 = 1; var_r31->unk06--; - } else if (var_r31->unk0A > 0) { + } + else if (var_r31->unk0A > 0) { if (var_r31->unk08 > 0) { var_r31->unk08--; - } else if (var_r31->unk0A > 0) { + } + else if (var_r31->unk0A > 0) { var_r28 = 1; var_r31->unk0A--; - } else { + } + else { var_r31->unk08 = 0; var_r31->unk0A = 0; } @@ -1567,24 +1522,28 @@ void fn_1_3898(omObjData* arg0) { var_r31->unk02 = var_r28; if (var_r31->unk02 == 0) { Hu3DMotionShiftSet(arg0->model[i], arg0->motion[lbl_1_data_526[var_r31->unk00]], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); - } else { + } + else { Hu3DMotionShiftSet(arg0->model[i], arg0->motion[lbl_1_data_52C[var_r31->unk00]], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); } } } } -void fn_1_3A58(omObjData* arg0) { +void fn_1_3A58(omObjData *arg0) +{ arg0->func = NULL; } -void fn_1_3A64(void) { +void fn_1_3A64(void) +{ fn_1_3A58(lbl_1_bss_CC); } -void fn_1_3A8C(void) { - omObjData* var_r29; - StructBssCCData* var_r31; +void fn_1_3A8C(void) +{ + omObjData *var_r29; + StructBssCCData *var_r31; s32 i; if (lbl_1_bss_CC == NULL) { @@ -1595,14 +1554,16 @@ void fn_1_3A8C(void) { for (i = 0; i < 20; i++, var_r31++) { if (var_r31->unk06 > 0 || var_r31->unk0A > 0) { var_r31->unk08 = 0; - } else { + } + else { var_r31->unk08 = (1.0f / 127) * frand7() * 0.25f * 60.0f; } var_r31->unk0A = ((1.0f / 127) * frand7() + 2.0f) * 60.0f; } } -void fn_1_3BFC(void) { +void fn_1_3BFC(void) +{ s32 sp8[4]; s32 temp_r28; s32 temp_r27; @@ -1618,7 +1579,8 @@ void fn_1_3BFC(void) { for (i = 0, var_r29 = 0; i < 4; i++) { if (GWPlayerCfgGroupGet(i) == 0) { sp8[3] = i; - } else { + } + else { sp8[var_r29] = i; var_r29++; } @@ -1633,10 +1595,11 @@ void fn_1_3BFC(void) { sp8[1] = 2; sp8[2] = 3; sp8[3] = 0; - } else { + } + else { for (i = 0; i < 32; i++) { - temp_r28 = (s16) (frand() & 0xFFF) % 3; - temp_r27 = (s16) (frand() & 0xFFF) % 3; + temp_r28 = (s16)(frand() & 0xFFF) % 3; + temp_r27 = (s16)(frand() & 0xFFF) % 3; if (temp_r28 != temp_r27) { var_r29 = sp8[temp_r27]; sp8[temp_r27] = sp8[temp_r28]; @@ -1655,7 +1618,8 @@ void fn_1_3BFC(void) { if (GWPlayerCfg[lbl_1_bss_BC[i]->work[0]].iscom) { lbl_1_bss_FC = 1; } - } else { + } + else { lbl_1_bss_EC[var_r26] = GWPlayerCfg[lbl_1_bss_BC[i]->work[0]].character; var_r26++; lbl_1_bss_BC[i]->work[1] = 1; @@ -1679,47 +1643,23 @@ void fn_1_3BFC(void) { } } -u32 lbl_1_data_534[][2] = { - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), -1 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), -1 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), -1 }, - { 0, 0 }, - { 0, 1 }, - { 0, 2 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), -1 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 24), -1 } -}; +u32 lbl_1_data_534[][2] + = { { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), -1 }, { 0, 0 }, + { 0, 1 }, { 0, 2 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 24), -1 } }; -s32 lbl_1_data_574[] = { - DATA_MAKE_NUM(DATADIR_M423, 58), - DATA_MAKE_NUM(DATADIR_M423, 26), - DATA_MAKE_NUM(DATADIR_M423, 34) -}; +s32 lbl_1_data_574[] = { DATA_MAKE_NUM(DATADIR_M423, 58), DATA_MAKE_NUM(DATADIR_M423, 26), DATA_MAKE_NUM(DATADIR_M423, 34) }; -u32 lbl_1_data_580[][2] = { - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), -1 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), -1 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), -1 }, - { 0, 0 }, - { 0, 1 }, - { 0, 2 }, - { 0, 3 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 11), -1 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), -1 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), -1 }, - { DATA_MAKE_NUM(DATADIR_MARIOMOT, 24), -1 } -}; +u32 lbl_1_data_580[][2] = { { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 2), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 3), -1 }, { 0, 0 }, { 0, 1 }, { 0, 2 }, { 0, 3 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 11), -1 }, + { DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), -1 }, { DATA_MAKE_NUM(DATADIR_MARIOMOT, 24), -1 } }; -s32 lbl_1_data_5D8[] = { - DATA_MAKE_NUM(DATADIR_M423, 42), - DATA_MAKE_NUM(DATADIR_M423, 66), - DATA_MAKE_NUM(DATADIR_M423, 50), - DATA_MAKE_NUM(DATADIR_M423, 74) -}; +s32 lbl_1_data_5D8[] + = { DATA_MAKE_NUM(DATADIR_M423, 42), DATA_MAKE_NUM(DATADIR_M423, 66), DATA_MAKE_NUM(DATADIR_M423, 50), DATA_MAKE_NUM(DATADIR_M423, 74) }; -void fn_1_3FE0(omObjData* arg0) { +void fn_1_3FE0(omObjData *arg0) +{ float var_f31; - StructBssBCData* temp_r31; + StructBssBCData *temp_r31; s32 i; temp_r31 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(*temp_r31), MEMORY_DEFAULT_NUM); @@ -1760,7 +1700,8 @@ void fn_1_3FE0(omObjData* arg0) { for (i = 0; i < 11; i++) { if (lbl_1_data_580[i][1] == -1) { arg0->motion[i] = CharModelMotionCreate(temp_r31->unk02, lbl_1_data_580[i][0]); - } else { + } + else { arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_5D8[lbl_1_data_580[i][1]] + temp_r31->unk02); } } @@ -1799,11 +1740,13 @@ void fn_1_3FE0(omObjData* arg0) { } temp_r31->unk84 = i; arg0->func = fn_1_5D18; - } else { + } + else { for (i = 0; i < 8; i++) { if (lbl_1_data_534[i][1] == -1) { arg0->motion[i] = CharModelMotionCreate(temp_r31->unk02, lbl_1_data_534[i][0]); - } else { + } + else { arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_574[lbl_1_data_534[i][1]] + temp_r31->unk02); } } @@ -1833,7 +1776,8 @@ Vec lbl_1_data_5E8 = { 0.0f, 20.0f, 50.0f }; GXColor lbl_1_data_5F4 = { 0xFF, 0xFF, 0xFF, 0x10 }; GXColor lbl_1_data_5F8 = { 0xFF, 0xFF, 0xFF, 0x40 }; -void fn_1_4778(omObjData* arg0) { +void fn_1_4778(omObjData *arg0) +{ Mtx sp11C; Vec sp110; Vec sp104; @@ -1842,8 +1786,8 @@ void fn_1_4778(omObjData* arg0) { float temp_f29; float temp_f30; float var_f25; - StructBssBCData* temp_r31; - ModelData* temp_r27; + StructBssBCData *temp_r31; + ModelData *temp_r27; s32 temp_r26; s16 var_r25; s16 var_r24; @@ -1975,7 +1919,8 @@ void fn_1_4778(omObjData* arg0) { temp_f30 = fabs(fn_1_121DC(arg0->rot.y, temp_r31->unk78)); if (temp_f30 < 10.0f) { arg0->rot.y += temp_f30; - } else { + } + else { arg0->rot.y += 10.0f; } sp104 = lbl_1_data_5E8; @@ -2059,8 +2004,8 @@ void fn_1_4778(omObjData* arg0) { if (temp_r26 == -1 || temp_r31->unk5C == -1) { temp_r31->unk18 = 3; } - PSVECSubtract(&temp_r31->unkD4, &temp_r31->unkC8, &spF8); - PSVECNormalize(&spF8, &spF8); + VECSubtract(&temp_r31->unkD4, &temp_r31->unkC8, &spF8); + VECNormalize(&spF8, &spF8); temp_f27 = 15.0f; spF8.x *= temp_r31->unk60 * cosd(temp_f27); spF8.z *= temp_r31->unk60 * cosd(temp_f27); @@ -2078,9 +2023,11 @@ void fn_1_4778(omObjData* arg0) { temp_f29 = (temp_r31->unk60 - 15.000001f) / 30.0f; if (temp_f29 > 0.66f) { HuAudFXPlay(0x61B); - } else if (temp_f29 > 0.33f) { + } + else if (temp_f29 > 0.33f) { HuAudFXPlay(0x61C); - } else { + } + else { HuAudFXPlay(0x61D); } temp_r31->unk18 = 9; @@ -2128,15 +2075,16 @@ void fn_1_4778(omObjData* arg0) { GXColor lbl_1_data_630 = { 0xFF, 0xFF, 0xFF, 0x14 }; -void fn_1_5D18(omObjData* arg0) { +void fn_1_5D18(omObjData *arg0) +{ Vec sp60; Vec sp54; Vec sp48; float var_f30; float var_f31; float var_f29; - StructBssBCData* temp_r31; - ModelData* temp_r27; + StructBssBCData *temp_r31; + ModelData *temp_r27; s16 var_r26; s16 var_r25; s16 var_r28; @@ -2181,7 +2129,8 @@ void fn_1_5D18(omObjData* arg0) { case 1: if (fabs(var_r28) > 8.0) { var_f30 = 0.125f * var_r28; - } else { + } + else { var_f30 = 0.0f; } temp_r31->unk1C[temp_r31->unk58] = var_f30; @@ -2194,14 +2143,17 @@ void fn_1_5D18(omObjData* arg0) { var_f30 *= 0.06666667f; if (var_f30 > 25.0f) { var_f30 = 25.0f; - } else if (var_f30 < -25.0f) { + } + else if (var_f30 < -25.0f) { var_f30 = -25.0f; } if (0.0f == var_f30) { var_r25 = 0; - } else if (fabs(var_f30) < 10.0) { + } + else if (fabs(var_f30) < 10.0) { var_r25 = 1; - } else { + } + else { var_r25 = 2; } if (temp_r31->unk16 != var_r25 && CharModelMotionShiftIDGet(temp_r31->unk02) == -1) { @@ -2217,9 +2169,11 @@ void fn_1_5D18(omObjData* arg0) { } if (var_r28 == 0.0f) { var_f29 = 0.0f; - } else if (var_r28 < 0.0f) { + } + else if (var_r28 < 0.0f) { var_f29 = -90.0f; - } else { + } + else { var_f29 = 90.0f; } if (arg0->rot.y < var_f29 && (arg0->rot.y += 20.0f) > var_f29) { @@ -2240,7 +2194,8 @@ void fn_1_5D18(omObjData* arg0) { if (fn_1_F00() >= 7) { temp_r31->unk18 = 9; temp_r31->unk68 = 0; - } else if (temp_r31->unk10 & PAD_BUTTON_A) { + } + else if (temp_r31->unk10 & PAD_BUTTON_A) { if (var_r28 > 0) { temp_r27->unk_0C = -1; temp_r31->unk16 = 3; @@ -2259,7 +2214,8 @@ void fn_1_5D18(omObjData* arg0) { } if (lbl_1_bss_40[0]->unk1C < 36.0f) { var_f31 = lbl_1_bss_40[0]->unk68.z - arg0->trans.z; - } else { + } + else { var_f31 = lbl_1_bss_40[0]->unk38.z - arg0->trans.z; } if (var_f31 < -100.0f) { @@ -2268,9 +2224,11 @@ void fn_1_5D18(omObjData* arg0) { var_f31 = fabs(var_f31); if (var_f31 >= 300.0f) { temp_r31->unk8C = 13.5f; - } else if (var_f31 <= 100.0f) { + } + else if (var_f31 <= 100.0f) { temp_r31->unk8C = 6.5f; - } else { + } + else { temp_r31->unk8C = 10.0f; } } @@ -2279,7 +2237,8 @@ void fn_1_5D18(omObjData* arg0) { temp_r31->unk8C = 10.0f; } temp_r31->unk18 = 2; - } else if (var_r28 < 0) { + } + else if (var_r28 < 0) { temp_r27->unk_0C = -1; temp_r31->unk16 = 5; CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); @@ -2297,7 +2256,8 @@ void fn_1_5D18(omObjData* arg0) { } if (lbl_1_bss_40[0]->unk1C < 36.0f) { var_f31 = lbl_1_bss_40[0]->unk68.z - arg0->trans.z; - } else { + } + else { var_f31 = lbl_1_bss_40[0]->unk38.z - arg0->trans.z; } if (var_f31 > 100.0f) { @@ -2306,9 +2266,11 @@ void fn_1_5D18(omObjData* arg0) { var_f31 = fabs(var_f31); if (var_f31 >= 300.0f) { temp_r31->unk8C = 13.5f; - } else if (var_f31 <= 100.0f) { + } + else if (var_f31 <= 100.0f) { temp_r31->unk8C = 6.5f; - } else { + } + else { temp_r31->unk8C = 10.0f; } } @@ -2317,7 +2279,8 @@ void fn_1_5D18(omObjData* arg0) { temp_r31->unk8C = 10.0f; } temp_r31->unk18 = 4; - } else { + } + else { temp_r27->unk_0C = -1; temp_r31->unk16 = 7; CharModelMotionSet(temp_r31->unk02, arg0->motion[temp_r31->unk16]); @@ -2488,11 +2451,13 @@ void fn_1_5D18(omObjData* arg0) { temp_r31->unkE8 = arg0->trans.z; } -void fn_1_77C4(omObjData* arg0) { +void fn_1_77C4(omObjData *arg0) +{ arg0->func = NULL; } -void fn_1_77D0(void) { +void fn_1_77D0(void) +{ s32 i; for (i = 0; i < 4; i++) { @@ -2500,9 +2465,10 @@ void fn_1_77D0(void) { } } -s32 fn_1_781C(void) { - omObjData* temp_r29; - StructBssBCData* temp_r31; +s32 fn_1_781C(void) +{ + omObjData *temp_r29; + StructBssBCData *temp_r31; s32 i; for (i = 0; i < 4; i++) { @@ -2512,7 +2478,8 @@ s32 fn_1_781C(void) { if (temp_r31->unk18 != 0 || fabs(fn_1_121DC(temp_r29->rot.y, 0.0f)) > 1.0) { break; } - } else { + } + else { if (temp_r31->unk18 < 5) { break; } @@ -2524,9 +2491,10 @@ s32 fn_1_781C(void) { return 0; } -s32 fn_1_791C(void) { - omObjData* temp_r30; - StructBssBCData* temp_r31; +s32 fn_1_791C(void) +{ + omObjData *temp_r30; + StructBssBCData *temp_r31; s32 i; for (i = 0; i < 4; i++) { @@ -2536,7 +2504,8 @@ s32 fn_1_791C(void) { if (temp_r31->unk18 != 10 || fabs(fn_1_121DC(temp_r30->rot.y, 0.0f)) > 1.0 || CharModelMotionShiftIDGet(temp_r31->unk02) != -1) { break; } - } else { + } + else { if (temp_r31->unk18 != 10 || fabs(fn_1_121DC(temp_r30->rot.y, 0.0f)) > 1.0 || CharModelMotionShiftIDGet(temp_r31->unk02) != -1) { break; } @@ -2548,9 +2517,10 @@ s32 fn_1_791C(void) { return 0; } -void fn_1_7AA8(s32 arg0) { - omObjData* var_r29; - StructBssBCData* temp_r31; +void fn_1_7AA8(s32 arg0) +{ + omObjData *var_r29; + StructBssBCData *temp_r31; s32 i; for (i = 0; i < 4; i++) { @@ -2559,20 +2529,24 @@ void fn_1_7AA8(s32 arg0) { if (temp_r31->unk0A == 0) { if (temp_r31->unk0A == arg0) { temp_r31->unk18 = 11; - } else { + } + else { temp_r31->unk18 = 12; } - } else { + } + else { if (temp_r31->unk0A == arg0) { temp_r31->unk18 = 11; - } else { + } + else { temp_r31->unk18 = 12; } } } } -s32 fn_1_7B48(Vec* arg0, Vec* arg1, Vec* arg2, float arg3) { +s32 fn_1_7B48(Vec *arg0, Vec *arg1, Vec *arg2, float arg3) +{ Vec spA8[4]; Vec sp78[4]; Vec sp48[4]; @@ -2586,9 +2560,9 @@ s32 fn_1_7B48(Vec* arg0, Vec* arg1, Vec* arg2, float arg3) { float var_f30; float var_f27; float var_f26; - omObjData* temp_r31; - StructBssBCData* temp_r28; - ModelData* sp8; + omObjData *temp_r31; + StructBssBCData *temp_r28; + ModelData *sp8; if (lbl_1_bss_B8 == NULL) { return 0; @@ -2636,12 +2610,12 @@ s32 fn_1_7B48(Vec* arg0, Vec* arg1, Vec* arg2, float arg3) { spA8[3].x = temp_r31->trans.x + 0.5f * var_f31; spA8[3].y = temp_r31->trans.y - var_f27; spA8[3].z = temp_r31->trans.z - 0.5f * var_f30; - PSVECNormalize(arg1, &spC); - PSVECScale(&spC, &spC, arg3); - PSVECAdd(arg0, arg1, &sp30); - PSVECAdd(arg0, arg1, &sp24); - PSVECAdd(arg0, &spC, &sp3C); - PSVECAdd(&sp30, &spC, &sp30); + VECNormalize(arg1, &spC); + VECScale(&spC, &spC, arg3); + VECAdd(arg0, arg1, &sp30); + VECAdd(arg0, arg1, &sp24); + VECAdd(arg0, &spC, &sp3C); + VECAdd(&sp30, &spC, &sp30); sp48[0] = sp78[0]; sp48[1] = sp78[1]; sp48[2] = sp78[2]; @@ -2652,26 +2626,27 @@ s32 fn_1_7B48(Vec* arg0, Vec* arg1, Vec* arg2, float arg3) { fn_1_82C8(15, 1, 0); return 1; } - if (sp24.x >= sp78[0].x - arg3 && sp24.x <= sp78[2].x + arg3 - && sp24.y <= sp78[0].y + arg3 && sp24.y >= sp78[2].y - arg3 - && sp24.z <= sp78[0].z + arg3 && sp24.z >= spA8[3].z - arg3) - { + if (sp24.x >= sp78[0].x - arg3 && sp24.x <= sp78[2].x + arg3 && sp24.y <= sp78[0].y + arg3 && sp24.y >= sp78[2].y - arg3 + && sp24.z <= sp78[0].z + arg3 && sp24.z >= spA8[3].z - arg3) { if (temp_r28->unkEC > 0.0f && sp24.x > temp_r31->trans.x) { spC = *arg1; spC.y = 0.0f; - var_f26 = PSVECMag(&spC); + var_f26 = VECMag(&spC); arg2->x = 0.5f * var_f26 + temp_r28->unkEC; arg2->z = 0.0f; - } else if (temp_r28->unkEC < 0.0f && sp24.x < temp_r31->trans.x) { + } + else if (temp_r28->unkEC < 0.0f && sp24.x < temp_r31->trans.x) { spC = *arg1; spC.y = 0.0f; - var_f26 = PSVECMag(&spC); + var_f26 = VECMag(&spC); arg2->x = -(0.5f * var_f26) + temp_r28->unkEC; arg2->z = 0.0f; - } else { + } + else { if (fabs(arg1->x) > fabs(arg1->z)) { arg2->x *= -1.0f; - } else { + } + else { arg2->z *= -1.0f; } arg2->x *= 0.5f; @@ -2683,9 +2658,10 @@ s32 fn_1_7B48(Vec* arg0, Vec* arg1, Vec* arg2, float arg3) { return 0; } -void fn_1_82C8(s32 arg0, s32 arg1, s32 arg2) { - omObjData* var_r31; - StructBssBCData* var_r30; +void fn_1_82C8(s32 arg0, s32 arg1, s32 arg2) +{ + omObjData *var_r31; + StructBssBCData *var_r30; if (lbl_1_bss_B8 != NULL) { var_r31 = lbl_1_bss_B8; @@ -2698,19 +2674,16 @@ void fn_1_82C8(s32 arg0, s32 arg1, s32 arg2) { s32 lbl_1_data_668[] = { 3, 4, 5, 6 }; float lbl_1_data_678[] = { 0.6f, 0.65f, 0.7f, 0.7f }; -s32 lbl_1_data_688[][2] = { - { 30, 60 }, { 24, 48 }, { 12, 24 }, { 0, 12 } -}; +s32 lbl_1_data_688[][2] = { { 30, 60 }, { 24, 48 }, { 12, 24 }, { 0, 12 } }; -s32 lbl_1_data_6A8[][2] = { - { 36, 84 }, { 36, 78 }, { 33, 72 }, { 33, 66 } -}; +s32 lbl_1_data_6A8[][2] = { { 36, 84 }, { 36, 78 }, { 33, 72 }, { 33, 66 } }; -void fn_1_8338(omObjData* arg0) { +void fn_1_8338(omObjData *arg0) +{ float var_f31; float temp_f30; - StructBssBCData* temp_r31; - ModelData* sp8; + StructBssBCData *temp_r31; + ModelData *sp8; s32 var_r29; temp_r31 = arg0->data; @@ -2731,11 +2704,14 @@ void fn_1_8338(omObjData* arg0) { temp_r31->unkA8 = (1.0f / 127) * frand7(); if (lbl_1_bss_B8->trans.x >= 270.0f) { temp_r31->unk88 = -(0.4f + 0.3f * temp_r31->unkA8); - } else if (lbl_1_bss_B8->trans.x <= -270.0f) { + } + else if (lbl_1_bss_B8->trans.x <= -270.0f) { temp_r31->unk88 = 0.4f + 0.3f * temp_r31->unkA8; - } else if (frand() & 1) { + } + else if (frand() & 1) { temp_r31->unk88 = -(0.3f + 0.1f * temp_r31->unkA8); - } else { + } + else { temp_r31->unk88 = 0.3f + 0.1f * temp_r31->unkA8; } var_f31 = lbl_1_data_6A8[3][0]; @@ -2745,10 +2721,12 @@ void fn_1_8338(omObjData* arg0) { temp_f30 = lbl_1_data_688[temp_r31->unk08][1]; temp_r31->unk74 = var_f31 + (1.0f / 127) * frand7() * (temp_f30 - var_f31); temp_r31->unk98++; - } else { + } + else { if (frand() & 1) { temp_r31->unk88 = (1.0f / 127) * frand7() * lbl_1_data_678[temp_r31->unk08]; - } else { + } + else { temp_r31->unk88 = -((1.0f / 127) * frand7()) * lbl_1_data_678[temp_r31->unk08]; } var_f31 = lbl_1_data_6A8[temp_r31->unk08][0]; @@ -2778,11 +2756,14 @@ void fn_1_8338(omObjData* arg0) { if (temp_r31->unkA4 != 0) { if (lbl_1_bss_B8->trans.x >= 148.5f) { temp_r31->unk88 = -(0.4f + 0.3f * temp_r31->unkA8); - } else if (lbl_1_bss_B8->trans.x <= -148.5f) { + } + else if (lbl_1_bss_B8->trans.x <= -148.5f) { temp_r31->unk88 = 0.4f + 0.3f * temp_r31->unkA8; - } else if (lbl_1_bss_B8->trans.x > 0.0f) { + } + else if (lbl_1_bss_B8->trans.x > 0.0f) { temp_r31->unk88 = -(0.5f + 0.2f * temp_r31->unkA8); - } else { + } + else { temp_r31->unk88 = 0.5f + 0.2f * temp_r31->unkA8; } } @@ -2793,7 +2774,8 @@ void fn_1_8338(omObjData* arg0) { temp_r31->unk70 = 0; temp_r31->unk74 = 0; temp_r31->unkA4 = 0; - } else { + } + else { temp_r31->unk0E |= PAD_BUTTON_A; } break; @@ -2805,19 +2787,14 @@ void fn_1_8338(omObjData* arg0) { s32 lbl_1_data_6C8[] = { 60, 45, 30, 15 }; -float lbl_1_data_6D8[][2] = { - { 200.0f, 150.0f }, { 125.0f, 100.0f }, { 0.0f, 0.0f }, { 0.0f, 0.0f } -}; +float lbl_1_data_6D8[][2] = { { 200.0f, 150.0f }, { 125.0f, 100.0f }, { 0.0f, 0.0f }, { 0.0f, 0.0f } }; -s32 lbl_1_data_6F8[][2] = { - { 48, 150 }, { 39, 114 }, { 33, 90 }, { 21, 42 } -}; +s32 lbl_1_data_6F8[][2] = { { 48, 150 }, { 39, 114 }, { 33, 90 }, { 21, 42 } }; -s32 lbl_1_data_718[][2] = { - { 27, 39 }, { 15, 27 }, { 9, 15 }, { 0, 3 } -}; +s32 lbl_1_data_718[][2] = { { 27, 39 }, { 15, 27 }, { 9, 15 }, { 0, 3 } }; -void fn_1_8CB4(omObjData* arg0) { +void fn_1_8CB4(omObjData *arg0) +{ Vec spC; float temp_f29; float temp_f28; @@ -2825,9 +2802,9 @@ void fn_1_8CB4(omObjData* arg0) { float var_f31; float var_f26; float temp_f27; - StructBssBCData* temp_r31; - ModelData* sp8; - StructBssA8Data* temp_r30; + StructBssBCData *temp_r31; + ModelData *sp8; + StructBssA8Data *temp_r30; s32 var_r28; s32 var_r24; s32 i, j; @@ -2842,10 +2819,12 @@ void fn_1_8CB4(omObjData* arg0) { if (temp_r30->unk0C != 3 || temp_r30->unk08 != 0 || temp_r30->unk38.z <= -900.0f) { var_r25 = 1; } - } else { + } + else { var_r25 = 1; } - } else { + } + else { var_r25 = 1; } if (var_r25 != 0) { @@ -2866,11 +2845,8 @@ void fn_1_8CB4(omObjData* arg0) { if (var_r24 != 0) { for (i = 0; i < var_r24; i++) { temp_r30 = lbl_1_bss_4[i]; - if (temp_r30 == NULL || temp_r30->unk06 == 0 - || 0.0f == temp_r30->unk50.z - || fabs(temp_r30->unk38.x) >= 325.0 - || temp_r30->unk14 < temp_r31->unk94) - { + if (temp_r30 == NULL || temp_r30->unk06 == 0 || 0.0f == temp_r30->unk50.z || fabs(temp_r30->unk38.x) >= 325.0 + || temp_r30->unk14 < temp_r31->unk94) { continue; } var_r28 = (var_f26 - temp_r30->unk38.z) / temp_r30->unk50.z; @@ -2925,7 +2901,8 @@ void fn_1_8CB4(omObjData* arg0) { var_r28 += temp_r31->unk90; var_f30 += temp_r31->unkD4.x; var_f31 += temp_r31->unkD4.y; - } else { + } + else { var_r28 = 0; var_f30 = temp_r30->unk38.x; var_f31 = temp_r30->unk38.y; @@ -2939,9 +2916,11 @@ void fn_1_8CB4(omObjData* arg0) { temp_f27 = fabs(var_f30 - arg0->trans.x); if (var_r28 < 10 && temp_f27 > 120.00001f) { temp_r31->unk10 |= 0x100; - } else if (var_r28 < 5 && temp_f27 < 25.0f && var_f31 > 100.0f) { + } + else if (var_r28 < 5 && temp_f27 < 25.0f && var_f31 > 100.0f) { temp_r31->unk10 |= 0x100; - } else if (var_r28 > 20 && temp_f27 < 50.0) { + } + else if (var_r28 > 20 && temp_f27 < 50.0) { temp_r31->unk10 /= 2; } if (++temp_r31->unk6C > lbl_1_data_6C8[temp_r31->unk08]) { @@ -2950,25 +2929,20 @@ void fn_1_8CB4(omObjData* arg0) { } } -void fn_1_95C4(void) { +void fn_1_95C4(void) +{ lbl_1_bss_A8 = omAddObjEx(lbl_1_bss_120, 0x50, 0, 0, -1, fn_1_9614); } -s32 lbl_1_data_738[] = { - DATA_MAKE_NUM(DATADIR_M423, 4), - DATA_MAKE_NUM(DATADIR_M423, 5), - DATA_MAKE_NUM(DATADIR_M423, 6), - DATA_MAKE_NUM(DATADIR_M423, 7), - DATA_MAKE_NUM(DATADIR_M423, 8), - DATA_MAKE_NUM(DATADIR_M423, 9), - DATA_MAKE_NUM(DATADIR_M423, 10), - DATA_MAKE_NUM(DATADIR_M423, 11) -}; +s32 lbl_1_data_738[] + = { DATA_MAKE_NUM(DATADIR_M423, 4), DATA_MAKE_NUM(DATADIR_M423, 5), DATA_MAKE_NUM(DATADIR_M423, 6), DATA_MAKE_NUM(DATADIR_M423, 7), + DATA_MAKE_NUM(DATADIR_M423, 8), DATA_MAKE_NUM(DATADIR_M423, 9), DATA_MAKE_NUM(DATADIR_M423, 10), DATA_MAKE_NUM(DATADIR_M423, 11) }; -void fn_1_9614(omObjData* arg0) { - StructBssA8Data* var_r28; - StructBssA8Data* var_r31; - ModelData* var_r27; +void fn_1_9614(omObjData *arg0) +{ + StructBssA8Data *var_r28; + StructBssA8Data *var_r31; + ModelData *var_r27; s32 i; if (lbl_1_bss_EC[0] == -1) { @@ -2999,7 +2973,8 @@ void fn_1_9614(omObjData* arg0) { var_r31->unk68.x = var_r31->unk68.y = var_r31->unk68.z = 0.0f; if (i < 3) { var_r31->unk00 = Hu3DModelCreateFile(lbl_1_data_738[lbl_1_bss_EC[var_r31->unk04]]); - } else { + } + else { var_r31->unk00 = Hu3DModelLink(var_r28[var_r31->unk04].unk00); } Hu3DModelScaleSet(var_r31->unk00, 0.8f, 0.8f, 0.8f); @@ -3007,13 +2982,14 @@ void fn_1_9614(omObjData* arg0) { Hu3DModelCameraSet(var_r31->unk00, 5); Hu3DModelShadowSet(var_r31->unk00); var_r27 = &Hu3DData[var_r31->unk00]; - PSMTXIdentity(var_r27->unk_F0); + MTXIdentity(var_r27->unk_F0); } fn_1_B430(); arg0->func = fn_1_98A0; } -void fn_1_98A0(omObjData* arg0) { +void fn_1_98A0(omObjData *arg0) +{ Mtx spC4; Vec spB8; Vec spAC; @@ -3024,9 +3000,9 @@ void fn_1_98A0(omObjData* arg0) { float var_f25; float var_f31; float var_f22; - StructBssA8Data* var_r31; - StructBssA8Data* var_r30; - ModelData* temp_r27; + StructBssA8Data *var_r31; + StructBssA8Data *var_r30; + ModelData *temp_r27; s32 i, j; s32 var_r25; s32 var_r23; @@ -3047,7 +3023,8 @@ void fn_1_98A0(omObjData* arg0) { var_r31->unk14++; if (temp_f30 > 1.0f) { var_f31 = 1.0f; - } else { + } + else { var_f31 = temp_f30; } var_r31->unk38.x = var_r31->unk20.x + var_f31 * (var_r31->unk2C.x - var_r31->unk20.x); @@ -3055,10 +3032,12 @@ void fn_1_98A0(omObjData* arg0) { if (temp_f30 < 0.6f) { var_f31 = temp_f30 / 0.6f; var_f25 = 100.0f; - } else if (temp_f30 < 1.0f) { + } + else if (temp_f30 < 1.0f) { var_f31 = (temp_f30 - 0.6f) / 0.4f; var_f25 = 50.0f; - } else { + } + else { var_f31 = (temp_f30 - 1.0f) / 0.25f; var_f25 = 10.0f; } @@ -3073,10 +3052,10 @@ void fn_1_98A0(omObjData* arg0) { spAC.x = var_r31->unk50.z; spAC.z = -var_r31->unk50.x; spAC.y = 0.0f; - var_f31 = 0.05 * PSVECMag(&spAC); + var_f31 = 0.05 * VECMag(&spAC); if (var_f31 > 0.00001f) { - PSMTXRotAxisRad(spC4, &spAC, var_f31); - PSMTXConcat(spC4, temp_r27->unk_F0, temp_r27->unk_F0); + MTXRotAxisRad(spC4, &spAC, var_f31); + MTXConcat(spC4, temp_r27->unk_F0, temp_r27->unk_F0); } } Hu3DModelPosSet(var_r31->unk00, var_r31->unk38.x, var_r31->unk38.y, var_r31->unk38.z); @@ -3094,8 +3073,7 @@ void fn_1_98A0(omObjData* arg0) { if (var_r28 & 0x8000) { var_r25 = 1; } - if (var_r28 & 0x2000) { - } + if (var_r28 & 0x2000) { } if ((var_r28 & 0x4000) && var_r31->unk12 == 0 && var_r31->unk08 == 0) { var_f31 = VECMagXZ(&var_r31->unk50); sp94.x = 0.0f; @@ -3109,13 +3087,15 @@ void fn_1_98A0(omObjData* arg0) { var_r31->unk50 = sp88; var_r31->unk8C = 0.975f; var_r31->unk90 = -0.5f; - } else { + } + else { if (fabs(var_r31->unk38.x) > 1000.0) { Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); var_r31->unk0C = 0; var_r31->unk06 = 0; var_r31->unk14 = 0; - } else { + } + else { var_r31->unk38.x += var_r31->unk50.x; var_r31->unk38.y += var_r31->unk50.y; var_r31->unk38.z += var_r31->unk50.z; @@ -3126,51 +3106,52 @@ void fn_1_98A0(omObjData* arg0) { if (i == j || var_r30->unk06 == 0 || var_r30->unk08 != 0 || var_r30->unk0C != 3) { continue; } - PSVECSubtract(&var_r31->unk38, &var_r30->unk38, &spAC); - var_f31 = PSVECMag(&spAC); + VECSubtract(&var_r31->unk38, &var_r30->unk38, &spAC); + var_f31 = VECMag(&spAC); if (var_f31 < 40.0) { spA0 = var_r31->unk38; if (var_f31 != 0.0f) { temp_f30 = 40.0 - var_f31; - PSVECNormalize(&spAC, &spAC); - PSVECScale(&spAC, &spAC, temp_f30); - PSVECAdd(&var_r31->unk38, &spAC, &var_r31->unk38); - } else { + VECNormalize(&spAC, &spAC); + VECScale(&spAC, &spAC, temp_f30); + VECAdd(&var_r31->unk38, &spAC, &var_r31->unk38); + } + else { var_r31->unk38.x += 40.0; } - temp_f30 = PSVECMag(&var_r31->unk50); - var_f22 = PSVECMag(&var_r30->unk50); + temp_f30 = VECMag(&var_r31->unk50); + var_f22 = VECMag(&var_r30->unk50); var_f31 = 0.5f * (temp_f30 + var_f22); - if (PSVECMag(&var_r31->unk50) == 0.0f) { + if (VECMag(&var_r31->unk50) == 0.0f) { var_r31->unk50.x = 1.0f; } - PSVECNormalize(&var_r31->unk50, &var_r31->unk50); - PSVECSubtract(&var_r31->unk38, &var_r30->unk38, &spAC); - if (PSVECMag(&spAC) == 0.0f) { + VECNormalize(&var_r31->unk50, &var_r31->unk50); + VECSubtract(&var_r31->unk38, &var_r30->unk38, &spAC); + if (VECMag(&spAC) == 0.0f) { spAC.x = 1.0f; } - PSVECNormalize(&spAC, &spAC); - PSVECAdd(&var_r31->unk50, &spAC, &var_r31->unk50); - if (PSVECMag(&var_r31->unk50) == 0.0f) { + VECNormalize(&spAC, &spAC); + VECAdd(&var_r31->unk50, &spAC, &var_r31->unk50); + if (VECMag(&var_r31->unk50) == 0.0f) { var_r31->unk50.x = 1.0f; } - PSVECNormalize(&var_r31->unk50, &var_r31->unk50); - PSVECScale(&var_r31->unk50, &var_r31->unk50, var_f31); - if (PSVECMag(&var_r30->unk50) == 0.0f) { + VECNormalize(&var_r31->unk50, &var_r31->unk50); + VECScale(&var_r31->unk50, &var_r31->unk50, var_f31); + if (VECMag(&var_r30->unk50) == 0.0f) { var_r30->unk50.x = -1.0f; } - PSVECNormalize(&var_r30->unk50, &var_r30->unk50); - PSVECSubtract(&var_r30->unk38, &var_r31->unk38, &spAC); - if (PSVECMag(&spAC) == 0.0f) { + VECNormalize(&var_r30->unk50, &var_r30->unk50); + VECSubtract(&var_r30->unk38, &var_r31->unk38, &spAC); + if (VECMag(&spAC) == 0.0f) { spAC.x = 1.0f; } - PSVECNormalize(&spAC, &spAC); - PSVECAdd(&var_r30->unk50, &spAC, &var_r30->unk50); - if (PSVECMag(&var_r30->unk50) == 0.0f) { + VECNormalize(&spAC, &spAC); + VECAdd(&var_r30->unk50, &spAC, &var_r30->unk50); + if (VECMag(&var_r30->unk50) == 0.0f) { var_r30->unk50.x = -1.0f; } - PSVECNormalize(&var_r30->unk50, &var_r30->unk50); - PSVECScale(&var_r30->unk50, &var_r30->unk50, var_f31); + VECNormalize(&var_r30->unk50, &var_r30->unk50); + VECScale(&var_r30->unk50, &var_r30->unk50, var_f31); if (var_r28 = fn_1_C498(&spA0, &spAC, &spB8, &sp88, 20.0f, 1)) { if (var_r28 & 0x8000) { var_r25 = 1; @@ -3185,17 +3166,15 @@ void fn_1_98A0(omObjData* arg0) { var_r31->unk38.y = 20.0f; var_r31->unk50.y *= var_r31->unk90; var_r23 = 1; - if (var_r31->unk38.x >= -225.0f && var_r31->unk38.x <= 225.0f - && var_r31->unk38.z >= -1100.0f && var_r31->unk38.z <= -900.0f) - { - var_r25 = 1; + if (var_r31->unk38.x >= -225.0f && var_r31->unk38.x <= 225.0f && var_r31->unk38.z >= -1100.0f && var_r31->unk38.z <= -900.0f) { + var_r25 = 1; } if (fabs(var_r31->unk50.y) < 0.05f) { var_r31->unk50.y = 0.0f; } } if (var_r31->unk08 == 0) { - PSVECSubtract(&var_r31->unk38, &var_r31->unk74, &spAC); + VECSubtract(&var_r31->unk38, &var_r31->unk74, &spAC); if (fn_1_7B48(&var_r31->unk38, &var_r31->unk50, &sp88, 20.0f) != 0) { var_r31->unk50 = sp88; var_r31->unk08 = 1; @@ -3210,7 +3189,8 @@ void fn_1_98A0(omObjData* arg0) { if (var_r23 == 0) { var_r31->unk50.x *= var_r31->unk8C; var_r31->unk50.z *= var_r31->unk8C; - } else { + } + else { var_r31->unk50.x *= 0.995f * var_r31->unk8C; var_r31->unk50.z *= 0.995f * var_r31->unk8C; } @@ -3221,7 +3201,8 @@ void fn_1_98A0(omObjData* arg0) { var_r31->unk18++; if (var_r31->unk18 & 1) { Hu3DModelAttrReset(var_r31->unk00, HU3D_ATTR_DISPOFF); - } else { + } + else { Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); } if (var_r31->unk18 >= 120.0f) { @@ -3247,10 +3228,10 @@ void fn_1_98A0(omObjData* arg0) { spAC.x = var_r31->unk50.z; spAC.z = -var_r31->unk50.x; spAC.y = 0.0f; - var_f31 = 0.05 * PSVECMag(&spAC); + var_f31 = 0.05 * VECMag(&spAC); if (var_f31 > 0.00001f) { - PSMTXRotAxisRad(spC4, &spAC, var_f31); - PSMTXConcat(spC4, temp_r27->unk_F0, temp_r27->unk_F0); + MTXRotAxisRad(spC4, &spAC, var_f31); + MTXConcat(spC4, temp_r27->unk_F0, temp_r27->unk_F0); } Hu3DModelPosSet(var_r31->unk00, var_r31->unk38.x, var_r31->unk38.y, var_r31->unk38.z); break; @@ -3258,7 +3239,8 @@ void fn_1_98A0(omObjData* arg0) { var_r31->unk18++; if (var_r31->unk18 & 1) { Hu3DModelAttrReset(var_r31->unk00, HU3D_ATTR_DISPOFF); - } else { + } + else { Hu3DModelAttrSet(var_r31->unk00, HU3D_ATTR_DISPOFF); } if (var_r31->unk18 >= 120.0f) { @@ -3273,17 +3255,20 @@ void fn_1_98A0(omObjData* arg0) { } } -void fn_1_A9A0(omObjData* arg0) { +void fn_1_A9A0(omObjData *arg0) +{ arg0->func = NULL; } -void fn_1_A9AC(void) { +void fn_1_A9AC(void) +{ fn_1_A9A0(lbl_1_bss_A8); } -s32 fn_1_A9D4(s32 arg0, Vec arg1, Vec arg2) { - StructBssA8Data* var_r31; - ModelData* temp_r26; +s32 fn_1_A9D4(s32 arg0, Vec arg1, Vec arg2) +{ + StructBssA8Data *var_r31; + ModelData *temp_r26; s32 var_r27; s32 i; @@ -3326,12 +3311,13 @@ s32 fn_1_A9D4(s32 arg0, Vec arg1, Vec arg2) { Hu3DModelPosSet(var_r31->unk00, var_r31->unk38.x, var_r31->unk38.y, var_r31->unk38.z); Hu3DModelRotSet(var_r31->unk00, var_r31->unk44, var_r31->unk48, var_r31->unk4C); Hu3DModelAttrReset(var_r31->unk00, HU3D_ATTR_DISPOFF); - PSMTXIdentity(temp_r26->unk_F0); + MTXIdentity(temp_r26->unk_F0); return i; } -void fn_1_AC0C(s32 arg0, Vec arg1) { - StructBssA8Data* var_r31; +void fn_1_AC0C(s32 arg0, Vec arg1) +{ + StructBssA8Data *var_r31; if (lbl_1_bss_A8 != NULL) { var_r31 = lbl_1_bss_A8->data; @@ -3342,12 +3328,13 @@ void fn_1_AC0C(s32 arg0, Vec arg1) { } } -void fn_1_AC80(s32 arg0, Vec arg1) { +void fn_1_AC80(s32 arg0, Vec arg1) +{ Vec sp14; Vec sp8; float var_f31; - StructBssA8Data* var_r28; - StructBssA8Data* temp_r31; + StructBssA8Data *var_r28; + StructBssA8Data *temp_r31; if (lbl_1_bss_A8 == NULL) { return; @@ -3368,15 +3355,17 @@ void fn_1_AC80(s32 arg0, Vec arg1) { sp14 = temp_r31->unk38; var_f31 = -800.0f - sp14.z; temp_r31->unk1C = fabs(var_f31 / temp_r31->unk50.z); - PSVECScale(&arg1, &sp8, temp_r31->unk1C); - PSVECAdd(&sp14, &sp8, &temp_r31->unk68); - } else { + VECScale(&arg1, &sp8, temp_r31->unk1C); + VECAdd(&sp14, &sp8, &temp_r31->unk68); + } + else { temp_r31->unk1C = 1000; } } -s32 fn_1_AE64(s32 arg0) { - StructBssA8Data* temp_r31; +s32 fn_1_AE64(s32 arg0) +{ + StructBssA8Data *temp_r31; if (lbl_1_bss_A8 == NULL) { return -1; @@ -3391,9 +3380,10 @@ s32 fn_1_AE64(s32 arg0) { return temp_r31[arg0].unk0C; } -void fn_1_AEE8(s32 arg0) { - StructBssA8Data* var_r26; - StructBssA8Data* temp_r31; +void fn_1_AEE8(s32 arg0) +{ + StructBssA8Data *var_r26; + StructBssA8Data *temp_r31; if (lbl_1_bss_A8 == NULL) { return; @@ -3413,9 +3403,10 @@ void fn_1_AEE8(s32 arg0) { lbl_1_bss_104--; } -StructBssA8Data* fn_1_B13C(s32 arg0) { - StructBssA8Data* temp_r31; - StructBssA8Data* sp8; +StructBssA8Data *fn_1_B13C(s32 arg0) +{ + StructBssA8Data *temp_r31; + StructBssA8Data *sp8; if (lbl_1_bss_A8 == NULL) { return NULL; @@ -3430,10 +3421,11 @@ StructBssA8Data* fn_1_B13C(s32 arg0) { GXColor lbl_1_data_758 = { 0xFF, 0xFF, 0xFF, 0xFF }; -void fn_1_B1A4(void) { +void fn_1_B1A4(void) +{ Vec sp2C; - StructBssA8Data* sp10; - StructBssA8Data* var_r31; + StructBssA8Data *sp10; + StructBssA8Data *var_r31; s32 spC; s32 i; @@ -3455,12 +3447,13 @@ void fn_1_B1A4(void) { } } -s32 fn_1_B304(StructBssA8Data** arg0) { +s32 fn_1_B304(StructBssA8Data **arg0) +{ s32 var_r29; s32 i; - StructBssA8Data* var_r30; - StructBssA8Data* var_r28; - StructBssA8Data* var_r27; + StructBssA8Data *var_r30; + StructBssA8Data *var_r28; + StructBssA8Data *var_r27; if (lbl_1_bss_A8 == NULL) { return; @@ -3485,12 +3478,13 @@ s32 fn_1_B304(StructBssA8Data** arg0) { return var_r29; } -void fn_1_B430(void) { +void fn_1_B430(void) +{ Vec sp2C[8]; Vec sp20; Vec sp14; Vec sp8; - StructBss94Data* var_r31; + StructBss94Data *var_r31; s32 i; var_r31 = lbl_1_bss_94 = HuMemDirectMallocNum(HEAP_SYSTEM, 16 * sizeof(*lbl_1_bss_94), MEMORY_DEFAULT_NUM); @@ -3614,17 +3608,15 @@ void fn_1_B430(void) { fn_1_BCD8(sp2C, NULL, NULL, 0.1f, 0, 0x8006); } -s16 lbl_1_data_75C[][3] = { - { 0, 1, 2 }, { 1, 3, 2 }, { 6, 5, 4 }, { 5, 6, 7 }, - { 0, 2, 4 }, { 2, 6, 4 }, { 3, 1, 7 }, { 7, 1, 5 }, - { 2, 3, 6 }, { 3, 7, 6 }, { 1, 0, 4 }, { 1, 4, 5 } -}; +s16 lbl_1_data_75C[][3] = { { 0, 1, 2 }, { 1, 3, 2 }, { 6, 5, 4 }, { 5, 6, 7 }, { 0, 2, 4 }, { 2, 6, 4 }, { 3, 1, 7 }, { 7, 1, 5 }, { 2, 3, 6 }, + { 3, 7, 6 }, { 1, 0, 4 }, { 1, 4, 5 } }; -void fn_1_BCD8(Vec* arg0, Vec* arg1, Vec* arg2, float arg3, s32 arg4, s32 arg5) { +void fn_1_BCD8(Vec *arg0, Vec *arg1, Vec *arg2, float arg3, s32 arg4, s32 arg5) +{ Vec sp24[8]; Vec sp18; float var_f29; - StructBss94Data* var_r30; + StructBss94Data *var_r30; s32 i; s32 j; @@ -3678,10 +3670,7 @@ void fn_1_BCD8(Vec* arg0, Vec* arg1, Vec* arg2, float arg3, s32 arg4, s32 arg5) sp24[7].y = arg0[0].y - arg1->y; sp24[7].z = arg0[0].z + arg1->z; for (j = 0; j < 12; j++) { - fn_1_129F0(&sp24[lbl_1_data_75C[j][0]], - &sp24[lbl_1_data_75C[j][1]], - &sp24[lbl_1_data_75C[j][2]], - var_r30->unk44[j]); + fn_1_129F0(&sp24[lbl_1_data_75C[j][0]], &sp24[lbl_1_data_75C[j][1]], &sp24[lbl_1_data_75C[j][2]], var_r30->unk44[j]); var_r30->unk104[j][0] = sp24[lbl_1_data_75C[j][0]]; var_r30->unk104[j][1] = sp24[lbl_1_data_75C[j][1]]; var_r30->unk104[j][2] = sp24[lbl_1_data_75C[j][2]]; @@ -3739,8 +3728,9 @@ void fn_1_BCD8(Vec* arg0, Vec* arg1, Vec* arg2, float arg3, s32 arg4, s32 arg5) s32 lbl_1_data_7C4[] = { 1, 1, 0, 0, 2, 2 }; -s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) { - StructBss94Data* var_r31; +s32 fn_1_C498(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, float arg4, s32 arg5) +{ + StructBss94Data *var_r31; Vec sp140[6]; Vec sp134; Vec sp128; @@ -3780,7 +3770,8 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) *arg2 = sp134; var_r26 = 0; } - } else { + } + else { if (arg0->x < var_r31->unk34 - arg4 && sp134.x >= var_r31->unk34 - arg4 - 1.0f) { sp134.x = var_r31->unk34 - arg4; *arg2 = sp134; @@ -3795,7 +3786,8 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) *arg2 = sp134; var_r26 = 1; } - } else { + } + else { if (arg0->y < var_r31->unk34 - arg4 && sp134.y >= var_r31->unk34 - arg4 - 1.0f) { sp134.y = var_r31->unk34 - arg4; *arg2 = sp134; @@ -3810,7 +3802,8 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) *arg2 = sp134; var_r26 = 2; } - } else { + } + else { if (arg0->z < var_r31->unk34 - arg4 && sp134.z >= var_r31->unk34 - arg4 - 1.0f) { sp134.z = var_r31->unk34 - arg4; *arg2 = sp134; @@ -3820,11 +3813,8 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) break; case 4: arg4 = 0.0f; - PSVECSubtract(&sp134, &var_r31->unk04, &sp128); - if (fabs(sp128.x) < var_r31->unk10.x + arg4 - && fabs(sp128.y) < var_r31->unk10.y + arg4 - && fabs(sp128.z) < var_r31->unk10.z + arg4) - { + VECSubtract(&sp134, &var_r31->unk04, &sp128); + if (fabs(sp128.x) < var_r31->unk10.x + arg4 && fabs(sp128.y) < var_r31->unk10.y + arg4 && fabs(sp128.z) < var_r31->unk10.z + arg4) { for (j = 0; j < 6; j++) { if (var_r31->unk40 & (1 << j)) { var_r24 = fn_1_12C6C(arg0, &sp134, var_r31->unk44[j * 2]); @@ -3869,9 +3859,11 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) sp110.z = fabs(var_r31->unk44[0][2]); if (sp110.x > sp110.y && sp110.x > sp110.z) { var_r24 = 0; - } else if (sp110.y > sp110.x && sp110.y > sp110.z) { + } + else if (sp110.y > sp110.x && sp110.y > sp110.z) { var_r24 = 1; - } else { + } + else { var_r24 = 2; } sp140[0] = var_r31->unk104[0][0]; @@ -3915,33 +3907,36 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) if (var_f19 >= var_r31->unk04.y && var_f19 <= var_r31->unk10.y) { spC8.z = spC8.y; spC8.y = 0.0f; - PSVECSubtract(&spC8, &var_r31->unk04, &sp128); + VECSubtract(&spC8, &var_r31->unk04, &sp128); sp128.y = 0.0f; - if (PSVECMag(&sp128) == 0.0f) { + if (VECMag(&sp128) == 0.0f) { sp128.z = 1.0f; - } else { - PSVECNormalize(&sp128, &sp128); } - PSVECScale(&sp128, &sp128, var_r31->unk34 + arg4 + 1.0f); + else { + VECNormalize(&sp128, &sp128); + } + VECScale(&sp128, &sp128, var_r31->unk34 + arg4 + 1.0f); arg2->x = sp128.x + var_r31->unk04.x; arg2->z = sp128.z + var_r31->unk04.z; arg2->y = var_f19; sp2C = var_f30; var_r26 = 99; } - } else { + } + else { sp2C = var_f30; - PSVECSubtract(&sp134, &var_r31->unk04, &sp128); + VECSubtract(&sp134, &var_r31->unk04, &sp128); var_f30 = VECMagXZ(&sp128); if (var_f30 < var_r31->unk34 + arg4 && sp134.y >= var_r31->unk04.y && sp134.y <= var_r31->unk10.y) { - PSVECSubtract(&sp134, &var_r31->unk04, &sp128); + VECSubtract(&sp134, &var_r31->unk04, &sp128); sp128.y = 0.0f; - if (PSVECMag(&sp128) == 0.0f) { + if (VECMag(&sp128) == 0.0f) { sp128.z = 1.0f; - } else { - PSVECNormalize(&sp128, &sp128); } - PSVECScale(&sp128, &sp128, var_r31->unk34 + arg4 + 1.0f); + else { + VECNormalize(&sp128, &sp128); + } + VECScale(&sp128, &sp128, var_r31->unk34 + arg4 + 1.0f); arg2->x = var_r31->unk04.x + sp128.x; arg2->z = var_r31->unk04.z + sp128.z; arg2->y = sp134.y; @@ -3958,7 +3953,8 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) var_f30 = 1.0f; sp128.x = 0.0f; sp128.z = 1.0f; - } else { + } + else { var_f30 = 1.0f / var_f30; } spC8.x = sp128.x * var_f30; @@ -3977,16 +3973,18 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) var_f30 = 1.0f; sp128.x = 0.0f; sp128.z = 1.0f; - } else { + } + else { var_f30 = 1.0f / var_f30; } sp128.x = sp128.x * var_f30 - spD4.x; sp128.z = sp128.z * var_f30 - spD4.z; sp128.y = 0.0f; - if (PSVECMag(&sp128) == 0.0f) { + if (VECMag(&sp128) == 0.0f) { sp128.z = 1.0f; - } else { - PSVECNormalize(&sp128, &sp128); + } + else { + VECNormalize(&sp128, &sp128); } var_f30 = VECMagXZ(arg1); arg3->x = sp128.x * var_f30 * var_r31->unk3C; @@ -4046,12 +4044,13 @@ s32 fn_1_C498(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) return 0; } -void fn_1_D930(void) { - omObjData* var_r30; - StructBssA4Data* var_r31; - AnimData* var_r27; - StructM423_05* var_r29; - ModelData* var_r28; +void fn_1_D930(void) +{ + omObjData *var_r30; + StructBssA4Data *var_r31; + AnimData *var_r27; + StructM423_05 *var_r29; + ModelData *var_r28; s32 sp8; var_r30 = lbl_1_bss_A4 = omAddObjEx(lbl_1_bss_120, 0xBF, 0, 0, -1, fn_1_DA38); @@ -4067,11 +4066,12 @@ void fn_1_D930(void) { var_r29->unk20 = 0; } -void fn_1_DA38(omObjData* arg0) { - StructBssA4Data* temp_r30; - ModelData* var_r27; - StructM423_05* temp_r29; - StructM423_04* var_r31; +void fn_1_DA38(omObjData *arg0) +{ + StructBssA4Data *temp_r30; + ModelData *var_r27; + StructM423_05 *temp_r29; + StructM423_04 *var_r31; s32 i; temp_r30 = arg0->data; @@ -4106,9 +4106,10 @@ void fn_1_DA38(omObjData* arg0) { } } -void fn_1_DBC8(void) { - omObjData* temp_r31; - StructBssA4Data* temp_r30; +void fn_1_DBC8(void) +{ + omObjData *temp_r31; + StructBssA4Data *temp_r30; temp_r31 = lbl_1_bss_A4; temp_r30 = temp_r31->data; @@ -4117,12 +4118,13 @@ void fn_1_DBC8(void) { temp_r31->func = NULL; } -inline s32 fn_1_DC24(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, GXColor arg5) { - omObjData* var_r27; - StructBssA4Data* temp_r28; - ModelData* var_r26; - StructM423_05* temp_r30; - StructM423_04* var_r31; +inline s32 fn_1_DC24(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, GXColor arg5) +{ + omObjData *var_r27; + StructBssA4Data *temp_r28; + ModelData *var_r26; + StructM423_05 *temp_r30; + StructM423_04 *var_r31; s32 i; var_r27 = lbl_1_bss_A4; @@ -4160,7 +4162,8 @@ inline s32 fn_1_DC24(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, GXC return i; } -s32 fn_1_DD70(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5, GXColor arg6) { +s32 fn_1_DD70(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5, GXColor arg6) +{ Vec sp60; Vec sp54; float temp_f31; @@ -4170,7 +4173,7 @@ s32 fn_1_DD70(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5 sp54.x = arg1.z; sp54.z = arg1.x; sp54.y = 0.0f; - PSVECNormalize(&sp54, &sp54); + VECNormalize(&sp54, &sp54); temp_f31 = 0.5f * arg4; sp60.x = arg0.x + sp54.x * temp_f31; sp60.y = arg0.y + sp54.y * temp_f31; @@ -4183,8 +4186,9 @@ s32 fn_1_DD70(Vec arg0, Vec arg1, float arg2, float arg3, float arg4, float arg5 return (sp20 << 16) | sp1C; } -void fn_1_E1BC(void) { - omObjData* var_r31; +void fn_1_E1BC(void) +{ + omObjData *var_r31; s32 var_r29; s32 i; @@ -4197,8 +4201,9 @@ void fn_1_E1BC(void) { var_r31->stat |= 0x100; } -void fn_1_E290(omObjData* arg0) { - ModelData* var_r28; +void fn_1_E290(omObjData *arg0) +{ + ModelData *var_r28; s32 temp_r30; s32 i; @@ -4211,12 +4216,12 @@ void fn_1_E290(omObjData* arg0) { } } -void fn_1_E330(void) { -} +void fn_1_E330(void) { } -s32 fn_1_E334(Vec arg0, Vec arg1, float arg2) { - omObjData* var_r31; - ModelData* var_r26; +s32 fn_1_E334(Vec arg0, Vec arg1, float arg2) +{ + omObjData *var_r31; + ModelData *var_r26; s32 temp_r29; s32 i; @@ -4240,8 +4245,9 @@ s32 fn_1_E334(Vec arg0, Vec arg1, float arg2) { return i; } -void fn_1_E460(void) { - omObjData* temp_r3; +void fn_1_E460(void) +{ + omObjData *temp_r3; temp_r3 = lbl_1_bss_9C = omAddObjEx(lbl_1_bss_120, 0xBF, 1, 0, -1, fn_1_E4EC); temp_r3->model[0] = fn_1_E678(); @@ -4249,10 +4255,11 @@ void fn_1_E460(void) { Hu3DModelLayerSet(temp_r3->model[0], 2); } -void fn_1_E4EC(omObjData* arg0) { - ModelData* var_r29; - StructM423_0B* var_r28; - StructM423_0A* var_r31; +void fn_1_E4EC(omObjData *arg0) +{ + ModelData *var_r29; + StructM423_0B *var_r28; + StructM423_0A *var_r31; s32 i; var_r29 = &Hu3DData[arg0->model[0]]; @@ -4265,7 +4272,8 @@ void fn_1_E4EC(omObjData* arg0) { var_r31->unk00++; if (var_r31->unk00 < 12.0f) { var_r31->unk04 += 0.058333337f; - } else { + } + else { var_r31->unk04 += 0.025000002f; var_r31->unk10 -= 0.050000004f; } @@ -4275,10 +4283,11 @@ void fn_1_E4EC(omObjData* arg0) { } } -void fn_1_E60C(void) { - omObjData* temp_r31; - ModelData* var_r30; - StructM423_0B* var_r29; +void fn_1_E60C(void) +{ + omObjData *temp_r31; + ModelData *var_r30; + StructM423_0B *var_r29; temp_r31 = lbl_1_bss_9C; var_r30 = &Hu3DData[temp_r31->model[0]]; @@ -4287,17 +4296,18 @@ void fn_1_E60C(void) { temp_r31->func = NULL; } -s32 fn_1_E678(void) { +s32 fn_1_E678(void) +{ float sp88[32][2]; float sp8[32]; float temp_f28; float temp_f30; float temp_f29; float var_f31; - ModelData* temp_r27; - StructM423_0B* var_r30; - StructM423_09* var_r29; - StructM423_08* var_r28; + ModelData *temp_r27; + StructM423_0B *var_r30; + StructM423_09 *var_r29; + StructM423_08 *var_r28; s32 var_r26; s32 i; @@ -4399,18 +4409,11 @@ s32 fn_1_E678(void) { return var_r26; } -GXColor lbl_1_data_7FC[] = { - { 0x66, 0x00, 0x00, 0xFF }, - { 0x00, 0x00, 0x66, 0xFF }, - { 0x66, 0x00, 0x5B, 0xFF }, - { 0x00, 0x66, 0x00, 0xFF }, - { 0x42, 0x00, 0x4C, 0xFF }, - { 0x47, 0x28, 0x00, 0xFF }, - { 0x66, 0x66, 0x00, 0xFF }, - { 0x00, 0x00, 0x00, 0xFF } -}; +GXColor lbl_1_data_7FC[] = { { 0x66, 0x00, 0x00, 0xFF }, { 0x00, 0x00, 0x66, 0xFF }, { 0x66, 0x00, 0x5B, 0xFF }, { 0x00, 0x66, 0x00, 0xFF }, + { 0x42, 0x00, 0x4C, 0xFF }, { 0x47, 0x28, 0x00, 0xFF }, { 0x66, 0x66, 0x00, 0xFF }, { 0x00, 0x00, 0x00, 0xFF } }; -void fn_1_EF44(ModelData* arg0, Mtx arg1) { +void fn_1_EF44(ModelData *arg0, Mtx arg1) +{ Mtx sp124; Mtx spF4; Mtx spC4; @@ -4419,8 +4422,8 @@ void fn_1_EF44(ModelData* arg0, Mtx arg1) { Mtx sp34; GXTexObj sp14; GXColor sp10 = { 0xCC, 0xCC, 0xCC, 0x7F }; - StructM423_0B* temp_r30; - StructM423_0A* var_r31; + StructM423_0B *temp_r30; + StructM423_0A *var_r31; s32 i; temp_r30 = arg0->unk_120; @@ -4428,8 +4431,8 @@ void fn_1_EF44(ModelData* arg0, Mtx arg1) { GXSetTexCopyDst(640, 480, GX_TF_RGB5A3, GX_FALSE); GXCopyTex(temp_r30->unk208, GX_FALSE); GXPixModeSync(); - PSMTXTrans(spF4, -400.0f, 400.0f, -700.0f); - PSMTXConcat(Hu3DCameraMtx, spF4, sp64); + MTXTrans(spF4, -400.0f, 400.0f, -700.0f); + MTXConcat(Hu3DCameraMtx, spF4, sp64); GXLoadPosMtxImm(sp64, GX_PNMTX0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_CLAMP, GX_AF_NONE); @@ -4439,10 +4442,10 @@ void fn_1_EF44(ModelData* arg0, Mtx arg1) { HuSprTexLoad(temp_r30->unk200, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); GXSetNumTexGens(2); C_MTXLightPerspective(sp94, 41.5f, 1.2f, 0.5555555f, -0.5f, 0.5555555f, 0.5f); - PSMTXConcat(sp94, Hu3DCameraMtx, sp94); - PSMTXInverse(Hu3DCameraMtx, sp34); - PSMTXConcat(sp34, sp64, sp124); - PSMTXConcat(sp94, sp124, spF4); + MTXConcat(sp94, Hu3DCameraMtx, sp94); + MTXInverse(Hu3DCameraMtx, sp34); + MTXConcat(sp34, sp64, sp124); + MTXConcat(sp94, sp124, spF4); GXLoadTexMtxImm(spF4, GX_TEXMTX0, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEXCOORD0, GX_TEXMTX1, GX_FALSE, GX_PTIDENTITY); @@ -4450,8 +4453,8 @@ void fn_1_EF44(ModelData* arg0, Mtx arg1) { GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1); GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); - PSMTXScale(spF4, -0.5f, -0.5f, 0.5f); - GXSetIndTexMtx(GX_ITM_0, (float(*)[3]) spF4, -1); + MTXScale(spF4, -0.5f, -0.5f, 0.5f); + GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spF4, -1); GXSetNumTevStages(1); GXSetTevColor(GX_TEVREG1, sp10); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); @@ -4478,17 +4481,17 @@ void fn_1_EF44(ModelData* arg0, Mtx arg1) { } lbl_1_data_7FC[var_r31->unk02].a = 255.0f * var_r31->unk10; GXSetTevColor(GX_TEVREG0, lbl_1_data_7FC[var_r31->unk02]); - PSMTXTrans(spF4, var_r31->unk14.x, var_r31->unk14.y, var_r31->unk14.z); - PSMTXRotRad(sp124, 'Z', MTXDegToRad(var_r31->unk0C)); - PSMTXConcat(spF4, sp124, spF4); - PSMTXScale(spC4, var_r31->unk04 * var_r31->unk08, var_r31->unk04 * var_r31->unk08, var_r31->unk04 * var_r31->unk08); - PSMTXConcat(spF4, spC4, spF4); - PSMTXConcat(Hu3DCameraMtx, spF4, sp64); + MTXTrans(spF4, var_r31->unk14.x, var_r31->unk14.y, var_r31->unk14.z); + MTXRotRad(sp124, 'Z', MTXDegToRad(var_r31->unk0C)); + MTXConcat(spF4, sp124, spF4); + MTXScale(spC4, var_r31->unk04 * var_r31->unk08, var_r31->unk04 * var_r31->unk08, var_r31->unk04 * var_r31->unk08); + MTXConcat(spF4, spC4, spF4); + MTXConcat(Hu3DCameraMtx, spF4, sp64); GXLoadPosMtxImm(sp64, GX_PNMTX0); - PSMTXConcat(sp34, sp64, sp124); - PSMTXConcat(sp94, sp124, spF4); + MTXConcat(sp34, sp64, sp124); + MTXConcat(sp94, sp124, spF4); GXLoadTexMtxImm(spF4, GX_TEXMTX0, GX_MTX3x4); - PSMTXRotRad(sp124, 'Z', MTXDegToRad(-var_r31->unk0C)); + MTXRotRad(sp124, 'Z', MTXDegToRad(-var_r31->unk0C)); GXLoadTexMtxImm(sp124, GX_TEXMTX1, GX_MTX2x4); GXCallDisplayList(temp_r30->unk220, temp_r30->unk21C); } @@ -4496,11 +4499,12 @@ void fn_1_EF44(ModelData* arg0, Mtx arg1) { GXSetTevDirect(GX_TEVSTAGE0); } -s32 fn_1_F574(Vec arg0, float arg1, s32 arg2) { - omObjData* var_r29; - ModelData* var_r28; - StructM423_0B* var_r26; - StructM423_0A* var_r31; +s32 fn_1_F574(Vec arg0, float arg1, s32 arg2) +{ + omObjData *var_r29; + ModelData *var_r28; + StructM423_0B *var_r26; + StructM423_0A *var_r31; s32 var_r27; s32 i; @@ -4527,34 +4531,24 @@ s32 fn_1_F574(Vec arg0, float arg1, s32 arg2) { } } -void fn_1_F690(void) { +void fn_1_F690(void) +{ lbl_1_bss_98 = omAddObjEx(lbl_1_bss_120, 0xFE, 0, 0, -1, fn_1_F6E0); } -s32 lbl_1_data_81C[] = { - DATA_MAKE_NUM(DATADIR_MGCONST, 12), - DATA_MAKE_NUM(DATADIR_MGCONST, 13), - DATA_MAKE_NUM(DATADIR_MGCONST, 14), - DATA_MAKE_NUM(DATADIR_MGCONST, 15), - DATA_MAKE_NUM(DATADIR_MGCONST, 16), - DATA_MAKE_NUM(DATADIR_MGCONST, 17), - DATA_MAKE_NUM(DATADIR_MGCONST, 18), - DATA_MAKE_NUM(DATADIR_MGCONST, 19) -}; +s32 lbl_1_data_81C[] = { DATA_MAKE_NUM(DATADIR_MGCONST, 12), DATA_MAKE_NUM(DATADIR_MGCONST, 13), DATA_MAKE_NUM(DATADIR_MGCONST, 14), + DATA_MAKE_NUM(DATADIR_MGCONST, 15), DATA_MAKE_NUM(DATADIR_MGCONST, 16), DATA_MAKE_NUM(DATADIR_MGCONST, 17), DATA_MAKE_NUM(DATADIR_MGCONST, 18), + DATA_MAKE_NUM(DATADIR_MGCONST, 19) }; s16 lbl_1_data_83C[] = { 0x7F, 0x7F, 0x7F, 0x100 }; -s16 lbl_1_data_844[][2] = { - { -75, 10 }, { -61, -14 }, { -47, 10 }, { 0, 0 }, - { -12, -8 }, { -12, -8 }, { 6, -8 }, { 6, -8 }, - { 24, -8 }, { 24, -8 }, { 42, -8 }, { 42, -8 }, - { 60, -8 }, { 60, -8 }, { -12, 10 }, { -12, 10 }, - { 6, 10 }, { 6, 10 }, { 24, 10 }, { 24, 10 }, - { 42, 10 }, { 42, 10 }, { 60, 10 }, { 60, 10 } -}; +s16 lbl_1_data_844[][2] = { { -75, 10 }, { -61, -14 }, { -47, 10 }, { 0, 0 }, { -12, -8 }, { -12, -8 }, { 6, -8 }, { 6, -8 }, { 24, -8 }, { 24, -8 }, + { 42, -8 }, { 42, -8 }, { 60, -8 }, { 60, -8 }, { -12, 10 }, { -12, 10 }, { 6, 10 }, { 6, 10 }, { 24, 10 }, { 24, 10 }, { 42, 10 }, { 42, 10 }, + { 60, 10 }, { 60, 10 } }; -void fn_1_F6E0(omObjData* arg0) { - StructM423_0C* var_r31; +void fn_1_F6E0(omObjData *arg0) +{ + StructM423_0C *var_r31; s32 sp8; s32 var_r29; s32 i; @@ -4586,7 +4580,8 @@ void fn_1_F6E0(omObjData* arg0) { if (!(i & 1)) { var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M423, 24), 0x40, 0); var_r31->unk10[i] = var_r29; - } else { + } + else { var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M423, 25), 0x20, 0); var_r31->unk10[i] = var_r29; } @@ -4609,12 +4604,13 @@ void fn_1_F6E0(omObjData* arg0) { } } -void fn_1_FA40(omObjData* arg0) { +void fn_1_FA40(omObjData *arg0) +{ float var_f31; float var_f28; float temp_f30; float temp_f29; - StructM423_0C* temp_r31; + StructM423_0C *temp_r31; s32 temp_r28; s32 temp_r29; s32 i; @@ -4627,7 +4623,8 @@ void fn_1_FA40(omObjData* arg0) { if (temp_r31->unk0C != 0) { var_f31 = 1.0 + 0.8f * sind(180.0f * (temp_r31->unk0C / 20.0f)); temp_r31->unk0C--; - } else { + } + else { var_f31 = 1.0f; } var_f31 = 1.0f; @@ -4644,11 +4641,13 @@ void fn_1_FA40(omObjData* arg0) { if (!(i & 1)) { espPosSet(temp_r31->unk10[i], temp_f30, temp_f29); espScaleSet(temp_r31->unk10[i], 1.0f, 1.0f); - } else { + } + else { temp_r29 = (i - 4) / 2; if (temp_r28 > temp_r29) { temp_r31->unk190[temp_r29][0] = 1; - } else { + } + else { temp_r31->unk190[temp_r29][0] = 0; } if (temp_r31->unk190[temp_r29][0] != 0) { @@ -4656,7 +4655,8 @@ void fn_1_FA40(omObjData* arg0) { temp_r31->unk190[temp_r29][1]++; var_f31 = 3.0f - 2.0f * (temp_r31->unk190[temp_r29][1] / 15.0f); var_f28 = temp_r31->unk190[temp_r29][1] / 15.0f; - } else { + } + else { var_f31 = 1.0f; var_f28 = 1.0f; } @@ -4664,15 +4664,17 @@ void fn_1_FA40(omObjData* arg0) { espPosSet(temp_r31->unk10[i], temp_f30, temp_f29); espTPLvlSet(temp_r31->unk10[i], var_f28); espScaleSet(temp_r31->unk10[i], var_f31, var_f31); - } else { + } + else { espDispOff(temp_r31->unk10[i]); } } } } -void fn_1_FF10(omObjData* arg0) { - StructM423_0C* temp_r29; +void fn_1_FF10(omObjData *arg0) +{ + StructM423_0C *temp_r29; s32 i; if (arg0 && arg0->data) { @@ -4685,19 +4687,22 @@ void fn_1_FF10(omObjData* arg0) { } } -void fn_1_FF98(void) { +void fn_1_FF98(void) +{ fn_1_FF10(lbl_1_bss_98); } -void fn_1_10028(s32 arg0) { - StructM423_0C* temp_r30; +void fn_1_10028(s32 arg0) +{ + StructM423_0C *temp_r30; s32 i; temp_r30 = lbl_1_bss_98->data; for (i = 0; i < 24; i++) { if (arg0 != 0) { espDispOn(temp_r30->unk10[i]); - } else { + } + else { espDispOff(temp_r30->unk10[i]); } if (i >= 4 && (i & 1)) { @@ -4706,8 +4711,9 @@ void fn_1_10028(s32 arg0) { } } -void fn_1_100DC(void) { - omObjData* temp_r3; +void fn_1_100DC(void) +{ + omObjData *temp_r3; s32 i; Hu3DCameraCreate(1); @@ -4738,7 +4744,8 @@ void fn_1_100DC(void) { omAddObjEx(lbl_1_bss_120, 0xFF, 0, 0, -1, fn_1_10480); } -void fn_1_10480(omObjData* arg0) { +void fn_1_10480(omObjData *arg0) +{ CRotM[1].x = CRotM[0].x; CRotM[1].y = CRotM[0].y; CRotM[1].z = CRotM[0].z; @@ -4748,16 +4755,17 @@ void fn_1_10480(omObjData* arg0) { CZoomM[1] = CZoomM[0]; } -void fn_1_1052C(void) { -} +void fn_1_1052C(void) { } -s32 fn_1_10530(void) { +s32 fn_1_10530(void) +{ return lbl_1_bss_84; } -void fn_1_10540(s32 arg0, s32 arg1, s32 arg2, f32 arg3) { - StructData0* temp_r31; - StructData0* temp_r30; +void fn_1_10540(s32 arg0, s32 arg1, s32 arg2, f32 arg3) +{ + StructData0 *temp_r31; + StructData0 *temp_r30; temp_r31 = &lbl_1_data_0[arg1]; temp_r30 = &lbl_1_data_0[arg2]; @@ -4770,13 +4778,12 @@ void fn_1_10540(s32 arg0, s32 arg1, s32 arg2, f32 arg3) { CZoomM[arg0] = temp_r31->unk18 + arg3 * (temp_r30->unk18 - temp_r31->unk18); } -float lbl_1_data_8A4[] = { - 95.0f, 95.0f, 135.0f, 95.0f, 95.0f, 125.0f, 135.0f, 125.0f -}; +float lbl_1_data_8A4[] = { 95.0f, 95.0f, 135.0f, 95.0f, 95.0f, 125.0f, 135.0f, 125.0f }; -void fn_1_106D8(s32 arg0) { +void fn_1_106D8(s32 arg0) +{ float var_f31; - StructBssBCData* var_r30; + StructBssBCData *var_r30; s32 var_r29; if (lbl_1_bss_90 != arg0) { @@ -4790,7 +4797,8 @@ void fn_1_106D8(s32 arg0) { lbl_1_bss_80 = 0; if (arg0 != 0) { lbl_1_bss_7C = frand(); - } else { + } + else { lbl_1_bss_7C = 0; } lbl_1_bss_90 = arg0; @@ -4802,9 +4810,10 @@ void fn_1_106D8(s32 arg0) { case 2: lbl_1_bss_80++; if (lbl_1_bss_7C & 1) { - var_f31 = cosd((float) lbl_1_bss_80); - } else { - var_f31 = -cosd((float) lbl_1_bss_80); + var_f31 = cosd((float)lbl_1_bss_80); + } + else { + var_f31 = -cosd((float)lbl_1_bss_80); } CRotM->y = 23.0f * var_f31 + lbl_1_data_38[arg0].unk00.y; break; @@ -4814,7 +4823,8 @@ void fn_1_106D8(s32 arg0) { lbl_1_bss_80++; if (lbl_1_bss_7C & 1) { CRotM->y = lbl_1_data_38[arg0].unk00.y - 45.0f + 0.5f * lbl_1_bss_80; - } else { + } + else { CRotM->y = lbl_1_data_38[arg0].unk00.y + 45.0f - 0.5f * lbl_1_bss_80; } break; @@ -4837,14 +4847,15 @@ void fn_1_106D8(s32 arg0) { } } -void fn_1_10BC8(void) { +void fn_1_10BC8(void) +{ Mtx44 sp64; Mtx sp34; Vec sp28; Vec sp1C; Vec sp10; GXColor spC; - CameraData* var_r31; + CameraData *var_r31; var_r31 = &Hu3DCamera[0]; if (var_r31->fov <= 0.0f) { @@ -4886,30 +4897,33 @@ void fn_1_10BC8(void) { GXEnd(); } -void fn_1_11008(StructBssD0Data* arg0, void* arg1, s16 arg2, GXTexWrapMode arg3, s32 arg4, s32 arg5) { +void fn_1_11008(StructBssD0Data *arg0, void *arg1, s16 arg2, GXTexWrapMode arg3, s32 arg4, s32 arg5) +{ GXTexObj sp18; - StructBssD0Data* var_r31; + StructBssD0Data *var_r31; var_r31 = arg0; GXInitTexObj(&sp18, arg1, var_r31->unk00, var_r31->unk04, GX_TF_RGB5A3, arg3, arg3, GX_FALSE); if (arg5 != 0) { GXInitTexObjLOD(&sp18, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); - } else { + } + else { GXInitTexObjLOD(&sp18, GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); } GXLoadTexObj(&sp18, arg2); } -s16 fn_1_11114(AnimData* arg0, s16 arg1) { +s16 fn_1_11114(AnimData *arg0, s16 arg1) +{ s16 var_r23; s16 i; - ModelData* temp_r27; - StructM423_05* var_r31; - StructM423_04* var_r29; - Vec* var_r25; - float (*var_r28)[2]; - void* var_r24; - void* var_r22; + ModelData *temp_r27; + StructM423_05 *var_r31; + StructM423_04 *var_r29; + Vec *var_r25; + float(*var_r28)[2]; + void *var_r24; + void *var_r22; var_r23 = Hu3DHookFuncCreate(fn_1_11900); temp_r27 = &Hu3DData[var_r23]; @@ -4987,17 +5001,18 @@ s16 fn_1_11114(AnimData* arg0, s16 arg1) { return var_r23; } -s16 fn_1_115C4(s16 arg0) { +s16 fn_1_115C4(s16 arg0) +{ s32 temp_r24; s16 var_r22; s16 i; - ModelData* temp_r23; - ModelData* temp_r27; - StructM423_05* temp_r26; - StructM423_05* var_r31; - StructM423_04* var_r30; - Vec* var_r25; - float (*var_r29)[2]; + ModelData *temp_r23; + ModelData *temp_r27; + StructM423_05 *temp_r26; + StructM423_05 *var_r31; + StructM423_04 *var_r30; + Vec *var_r25; + float(*var_r29)[2]; temp_r23 = &Hu3DData[arg0]; temp_r26 = temp_r23->unk_120; @@ -5051,21 +5066,12 @@ s16 fn_1_115C4(s16 arg0) { return var_r22; } -Vec lbl_1_data_8C4[] = { - { -0.5f, 0.5f, 0.0f }, - { 0.5f, 0.5f, 0.0f }, - { 0.5f, -0.5f, 0.0f }, - { -0.5f, -0.5f, 0.0f } -}; +Vec lbl_1_data_8C4[] = { { -0.5f, 0.5f, 0.0f }, { 0.5f, 0.5f, 0.0f }, { 0.5f, -0.5f, 0.0f }, { -0.5f, -0.5f, 0.0f } }; -float lbl_1_data_8F4[][2] = { - { 0.0f, 0.0f }, - { 0.25f, 0.0f }, - { 0.25f, 0.25f }, - { 0.0f, 0.25f } -}; +float lbl_1_data_8F4[][2] = { { 0.0f, 0.0f }, { 0.25f, 0.0f }, { 0.25f, 0.25f }, { 0.0f, 0.25f } }; -void fn_1_11900(ModelData* arg0, Mtx arg1) { +void fn_1_11900(ModelData *arg0, Mtx arg1) +{ Mtx sp128; Mtx spF8; Mtx spC8; @@ -5073,16 +5079,16 @@ void fn_1_11900(ModelData* arg0, Mtx arg1) { Vec sp68[4]; Vec sp38[4]; ROMtx sp8; - StructM423_05* temp_r31; - StructM423_04* var_r29; - Vec* var_r30; - float (*var_r28)[2]; - Vec* temp_r27; - Vec* temp_r24; + StructM423_05 *temp_r31; + StructM423_04 *var_r29; + Vec *var_r30; + float(*var_r28)[2]; + Vec *temp_r27; + Vec *temp_r24; s16 var_r21; s16 var_r20; s16 var_r19; - void (*var_r18)(ModelData*, struct struct_m423_05*, Mtx); + void (*var_r18)(ModelData *, struct struct_m423_05 *, Mtx); s16 i; s16 j; @@ -5101,18 +5107,22 @@ void fn_1_11900(ModelData* arg0, Mtx arg1) { if (shadowModelDrawF != 0) { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ONE, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); - } else { + } + else { var_r21 = temp_r31->unk38->bmp->dataFmt & 0xF; if (var_r21 == 7 || var_r21 == 8) { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); - } else { + } + else { GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); } if (temp_r31->unk22 & 1) { GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); - } else if (arg0->attr & 2) { + } + else if (arg0->attr & 2) { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); - } else { + } + else { GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); } } @@ -5136,7 +5146,7 @@ void fn_1_11900(ModelData* arg0, Mtx arg1) { break; } if (HmfInverseMtxF3X3(arg1, sp128) == 0) { - PSMTXIdentity(sp128); + MTXIdentity(sp128); } PSMTXReorder(sp128, sp8); if (temp_r31->unk4C) { @@ -5157,29 +5167,31 @@ void fn_1_11900(ModelData* arg0, Mtx arg1) { var_r30++; var_r30->x = var_r30->y = var_r30->z = 0.0f; var_r30++; - } else if (!var_r29->unk34) { + } + else if (!var_r29->unk34) { temp_r27 = sp98; temp_r24 = sp38; - PSVECScale(temp_r24++, temp_r27, var_r29->unk30); - PSVECAdd(temp_r27++, &var_r29->unk38, var_r30++); - PSVECScale(temp_r24++, temp_r27, var_r29->unk30); - PSVECAdd(temp_r27++, &var_r29->unk38, var_r30++); - PSVECScale(temp_r24++, temp_r27, var_r29->unk30); - PSVECAdd(temp_r27++, &var_r29->unk38, var_r30++); - PSVECScale(temp_r24++, temp_r27, var_r29->unk30); - PSVECAdd(temp_r27++, &var_r29->unk38, var_r30++); - } else { - PSVECScale(&lbl_1_data_8C4[0], &sp98[0], var_r29->unk30); - PSVECScale(&lbl_1_data_8C4[1], &sp98[1], var_r29->unk30); - PSVECScale(&lbl_1_data_8C4[2], &sp98[2], var_r29->unk30); - PSVECScale(&lbl_1_data_8C4[3], &sp98[3], var_r29->unk30); - PSMTXRotRad(spC8, 'Z', var_r29->unk34); - PSMTXConcat(sp128, spC8, spF8); - PSMTXMultVecArray(spF8, sp98, sp68, 4); - PSVECAdd(&sp68[0], &var_r29->unk38, var_r30++); - PSVECAdd(&sp68[1], &var_r29->unk38, var_r30++); - PSVECAdd(&sp68[2], &var_r29->unk38, var_r30++); - PSVECAdd(&sp68[3], &var_r29->unk38, var_r30++); + VECScale(temp_r24++, temp_r27, var_r29->unk30); + VECAdd(temp_r27++, &var_r29->unk38, var_r30++); + VECScale(temp_r24++, temp_r27, var_r29->unk30); + VECAdd(temp_r27++, &var_r29->unk38, var_r30++); + VECScale(temp_r24++, temp_r27, var_r29->unk30); + VECAdd(temp_r27++, &var_r29->unk38, var_r30++); + VECScale(temp_r24++, temp_r27, var_r29->unk30); + VECAdd(temp_r27++, &var_r29->unk38, var_r30++); + } + else { + VECScale(&lbl_1_data_8C4[0], &sp98[0], var_r29->unk30); + VECScale(&lbl_1_data_8C4[1], &sp98[1], var_r29->unk30); + VECScale(&lbl_1_data_8C4[2], &sp98[2], var_r29->unk30); + VECScale(&lbl_1_data_8C4[3], &sp98[3], var_r29->unk30); + MTXRotRad(spC8, 'Z', var_r29->unk34); + MTXConcat(sp128, spC8, spF8); + MTXMultVecArray(spF8, sp98, sp68, 4); + VECAdd(&sp68[0], &var_r29->unk38, var_r30++); + VECAdd(&sp68[1], &var_r29->unk38, var_r30++); + VECAdd(&sp68[2], &var_r29->unk38, var_r30++); + VECAdd(&sp68[3], &var_r29->unk38, var_r30++); } } var_r29 = temp_r31->unk3C; @@ -5193,7 +5205,8 @@ void fn_1_11900(ModelData* arg0, Mtx arg1) { (*var_r28)[1] = 0.25f * var_r19 + lbl_1_data_8F4[j][1]; } } - } else { + } + else { for (i = 0; i < temp_r31->unk26; i++, var_r29++) { for (j = 0; j < 4; j++, var_r28++) { (*var_r28)[0] = 4.0f * lbl_1_data_8F4[j][0]; @@ -5230,40 +5243,47 @@ void fn_1_11900(ModelData* arg0, Mtx arg1) { } } -float fn_1_121DC(float arg0, float arg1) { +float fn_1_121DC(float arg0, float arg1) +{ float var_f31; if (arg0 >= 360.0f) { arg0 -= 360.0f; - } else if (arg0 < 0.0f) { + } + else if (arg0 < 0.0f) { arg0 += 360.0f; } if (arg1 >= 360.0f) { arg1 -= 360.0f; - } else if (arg1 < 0.0f) { + } + else if (arg1 < 0.0f) { arg1 += 360.0f; } var_f31 = arg0 - arg1; if (var_f31 <= -180.0f) { var_f31 += 360.0f; - } else if (var_f31 >= 180.0f) { + } + else if (var_f31 >= 180.0f) { var_f31 -= 360.0f; } return var_f31; } -float fn_1_122F4(float arg0, float arg1, float arg2) { +float fn_1_122F4(float arg0, float arg1, float arg2) +{ float var_f30; float var_f31; if (arg0 >= 360.0) { arg0 -= 360.0; - } else if (arg0 < 0.0) { + } + else if (arg0 < 0.0) { arg0 += 360.0; } if (arg1 >= 360.0) { arg1 -= 360.0; - } else if (arg1 < 0.0) { + } + else if (arg1 < 0.0) { arg1 += 360.0; } var_f30 = arg0 - arg1 + 360.0; @@ -5273,33 +5293,39 @@ float fn_1_122F4(float arg0, float arg1, float arg2) { if (var_f30 < 180.0) { if (var_f30 <= arg2) { var_f31 = var_f30; - } else { + } + else { var_f31 = arg2; } - } else { + } + else { if (360.0 - var_f30 <= arg2) { var_f31 = -(360.0 - var_f30); - } else { + } + else { var_f31 = -arg2; } } var_f31 += arg1; if (var_f31 >= 360.0) { var_f31 -= 360.0; - } else if (var_f31 < 0.0) { + } + else if (var_f31 < 0.0) { var_f31 += 360.0; } return var_f31; } -float fn_1_12544(float arg0, float arg1, float arg2) { +float fn_1_12544(float arg0, float arg1, float arg2) +{ float var_f28; var_f28 = fn_1_121DC(arg2, arg1); return fn_1_122F4(arg2, arg1, fabs(var_f28 * arg0)); } -void fn_1_1293C(Mtx arg0, Vec* arg1) { +void fn_1_1293C(Mtx arg0, Vec *arg1) +{ Vec sp8; sp8.x = arg0[0][0] * arg1->x + arg0[0][1] * arg1->y + arg0[0][2] * arg1->z; @@ -5308,7 +5334,8 @@ void fn_1_1293C(Mtx arg0, Vec* arg1) { *arg1 = sp8; } -void fn_1_129F0(Vec* arg0, Vec* arg1, Vec* arg2, float* arg3) { +void fn_1_129F0(Vec *arg0, Vec *arg1, Vec *arg2, float *arg3) +{ Vec sp18; Vec spC; float var_f30; @@ -5327,7 +5354,8 @@ void fn_1_129F0(Vec* arg0, Vec* arg1, Vec* arg2, float* arg3) { var_f30 = sqrtf(var_f29); if (var_f30 != 0.0f) { var_f30 = 1.0f / var_f30; - } else { + } + else { var_f30 = 0.0f; } arg3[0] *= var_f30; @@ -5336,7 +5364,8 @@ void fn_1_129F0(Vec* arg0, Vec* arg1, Vec* arg2, float* arg3) { arg3[3] = -(arg3[0] * arg0->x + arg3[1] * arg0->y + arg3[2] * arg0->z); } -s32 fn_1_12C6C(Vec* arg0, Vec* arg1, float* arg2) { +s32 fn_1_12C6C(Vec *arg0, Vec *arg1, float *arg2) +{ float temp_f31; float temp_f30; @@ -5351,7 +5380,8 @@ s32 fn_1_12C6C(Vec* arg0, Vec* arg1, float* arg2) { return 0; } -float fn_1_12D6C(Vec* arg0, Vec* arg1, s32 arg2, float arg3, float arg4) { +float fn_1_12D6C(Vec *arg0, Vec *arg1, s32 arg2, float arg3, float arg4) +{ float var_f31; float var_f30; float var_f29; @@ -5382,11 +5412,10 @@ float fn_1_12D6C(Vec* arg0, Vec* arg1, s32 arg2, float arg3, float arg4) { return var_f27; } -u8 lbl_1_data_914[][2] = { - { 0, 1 }, { 1, 2 }, { 2, 0 } -}; +u8 lbl_1_data_914[][2] = { { 0, 1 }, { 1, 2 }, { 2, 0 } }; -float fn_1_12E68(Vec* arg0, Vec* arg1, s32 arg2) { +float fn_1_12E68(Vec *arg0, Vec *arg1, s32 arg2) +{ float var_f31; float var_f30; float var_f29; @@ -5418,7 +5447,8 @@ float fn_1_12E68(Vec* arg0, Vec* arg1, s32 arg2) { } } return 1.0f; - } else { + } + else { for (i = 1; i < 3; i++) { var_f29 = fn_1_12D6C(&arg0[lbl_1_data_914[i][0]], &arg0[lbl_1_data_914[i][1]], arg2, var_f31, var_f30); if (var_f29 == 0.0f) { @@ -5432,7 +5462,8 @@ float fn_1_12E68(Vec* arg0, Vec* arg1, s32 arg2) { } } -void fn_1_1334C(float* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { +void fn_1_1334C(float *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ float temp_f26; float temp_f25; float temp_f24; @@ -5469,7 +5500,8 @@ void fn_1_1334C(float* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { var_f28 = temp_f26 * temp_f31 + temp_f25 * temp_f30 + temp_f24 * temp_f29; if (var_f28 != 0.0f) { var_f28 = -(temp_f26 * (var_f22 - var_f19) + temp_f25 * (var_f21 - var_f18) + temp_f24 * (var_f20 - spC)) / var_f28; - } else { + } + else { var_f28 = 0.0f; } arg4->x = arg1->x + var_f28 * arg2->x; @@ -5477,7 +5509,8 @@ void fn_1_1334C(float* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { arg4->z = arg1->z + var_f28 * arg2->z; } -float fn_1_1367C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, f32* arg4) { +float fn_1_1367C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, f32 *arg4) +{ Vec sp38; Vec sp2C; Vec sp20; @@ -5488,22 +5521,23 @@ float fn_1_1367C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, f32* arg4) { arg0->z = 0.0f; arg1->z = 0.0f; arg2->z = 0.0f; - PSVECSubtract(arg1, arg0, &sp2C); - PSVECSubtract(arg2, arg0, &sp20); + VECSubtract(arg1, arg0, &sp2C); + VECSubtract(arg2, arg0, &sp20); temp_f31 = (sp2C.x * sp20.x + sp2C.y * sp20.y) / (sp2C.x * sp2C.x + sp2C.y * sp2C.y); if (arg4 != NULL) { *arg4 = temp_f31; } - PSVECScale(&sp2C, &sp14, temp_f31); - PSVECAdd(&sp2C, &sp14, &sp38); + VECScale(&sp2C, &sp14, temp_f31); + VECAdd(&sp2C, &sp14, &sp38); if (arg3 != NULL) { *arg3 = sp38; } - PSVECSubtract(arg2, &sp38, &sp8); - return PSVECMag(&sp8); + VECSubtract(arg2, &sp38, &sp8); + return VECMag(&sp8); } -s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) { +s32 fn_1_137C4(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, float arg4, s32 arg5) +{ Vec sp40; Vec sp34; Vec sp28; @@ -5514,31 +5548,30 @@ s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) f32 temp_f28; f32 var_f31; - PSVECAdd(arg1, arg2, &sp28); + VECAdd(arg1, arg2, &sp28); *arg3 = sp28; - PSVECNormalize(arg2, &sp1C); - PSVECScale(&sp1C, &sp1C, arg4); - PSVECAdd(arg1, &sp1C, &sp40); - PSVECAdd(&sp28, &sp1C, &sp34); - PSVECNormalize(arg2, &sp1C); - PSVECScale(&sp1C, &sp10, -arg4); + VECNormalize(arg2, &sp1C); + VECScale(&sp1C, &sp1C, arg4); + VECAdd(arg1, &sp1C, &sp40); + VECAdd(&sp28, &sp1C, &sp34); + VECNormalize(arg2, &sp1C); + VECScale(&sp1C, &sp10, -arg4); switch (arg5) { case 0: if (sp40.y >= arg0[0].y && sp34.y < arg0[0].y) { if (sp1C.y == 0.0f) { var_f31 = 0.0f; - } else { + } + else { var_f31 = (arg0[0].y - arg1->y) / sp1C.y; } temp_f30 = arg1->x + var_f31 * sp1C.x; temp_f28 = arg1->z + var_f31 * sp1C.z; - if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x - && temp_f28 >= arg0[0].z && temp_f28 <= arg0[2].z) - { + if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x && temp_f28 >= arg0[0].z && temp_f28 <= arg0[2].z) { arg3->x = temp_f30; arg3->y = arg0[0].y + arg4 + 1.0f; arg3->z = temp_f28; - PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); return 1; } } @@ -5547,18 +5580,17 @@ s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) if (sp40.y <= arg0[0].y && sp34.y > arg0[0].y) { if (sp1C.y == 0.0f) { var_f31 = 0.0f; - } else { + } + else { var_f31 = (arg0[0].y - arg1->y) / sp1C.y; } temp_f30 = arg1->x + var_f31 * sp1C.x; temp_f28 = arg1->z + var_f31 * sp1C.z; - if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x - && temp_f28 <= arg0[0].z && temp_f28 >= arg0[2].z) - { + if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x && temp_f28 <= arg0[0].z && temp_f28 >= arg0[2].z) { arg3->x = temp_f30; arg3->y = arg0[0].y - arg4 - 1.0f; arg3->z = temp_f28; - PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); return 1; } } @@ -5567,18 +5599,17 @@ s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) if (sp40.x <= arg0[0].x && sp34.x > arg0[0].x) { if (sp1C.x == 0.0f) { var_f31 = 0.0f; - } else { + } + else { var_f31 = (arg0[0].x - arg1->x) / sp1C.x; } temp_f29 = arg1->y + var_f31 * sp1C.y; temp_f28 = arg1->z + var_f31 * sp1C.z; - if (temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y - && temp_f28 >= arg0[0].z && temp_f28 <= arg0[2].z) - { + if (temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y && temp_f28 >= arg0[0].z && temp_f28 <= arg0[2].z) { arg3->x = arg0[0].x - arg4 - 1.0f; arg3->y = temp_f29; arg3->z = temp_f28; - PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); return 1; } } @@ -5587,18 +5618,17 @@ s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) if (sp40.x >= arg0[0].x && sp34.x < arg0[0].x) { if (sp1C.x == 0.0f) { var_f31 = 0.0f; - } else { + } + else { var_f31 = (arg0[0].x - arg1->x) / sp1C.x; } temp_f29 = arg1->y + var_f31 * sp1C.y; temp_f28 = arg1->z + var_f31 * sp1C.z; - if (temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y - && temp_f28 <= arg0[0].z && temp_f28 >= arg0[2].z) - { + if (temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y && temp_f28 <= arg0[0].z && temp_f28 >= arg0[2].z) { arg3->x = arg0[0].x + arg4 + 1.0f; arg3->y = temp_f29; arg3->z = temp_f28; - PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); return 1; } } @@ -5607,18 +5637,17 @@ s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) if (sp40.z >= arg0[0].z && sp34.z < arg0[0].z) { if (sp1C.z == 0.0f) { var_f31 = 0.0f; - } else { + } + else { var_f31 = (arg0[0].z - arg1->z) / sp1C.z; } temp_f30 = arg1->x + var_f31 * sp1C.x; temp_f29 = arg1->y + var_f31 * sp1C.y; - if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x - && temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y) - { + if (temp_f30 >= arg0[0].x && temp_f30 <= arg0[2].x && temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y) { arg3->x = temp_f30; arg3->y = temp_f29; arg3->z = arg0[0].z + arg4 + 1.0f; - PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); return 1; } } @@ -5627,18 +5656,17 @@ s32 fn_1_137C4(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, float arg4, s32 arg5) if (sp40.z <= arg0[0].z && sp34.z > arg0[0].z) { if (sp1C.z == 0.0f) { var_f31 = 0.0f; - } else { + } + else { var_f31 = (arg0[0].z - arg1->z) / sp1C.z; } temp_f30 = arg1->x + var_f31 * sp1C.x; temp_f29 = arg1->y + var_f31 * sp1C.y; - if (temp_f30 <= arg0[0].x && temp_f30 >= arg0[2].x - && temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y) - { + if (temp_f30 <= arg0[0].x && temp_f30 >= arg0[2].x && temp_f29 <= arg0[0].y && temp_f29 >= arg0[2].y) { arg3->x = temp_f30; arg3->y = temp_f29; arg3->z = arg0[0].z - arg4 - 1.0f; - PSVECAdd((Vec*) &arg3, &sp10, (Vec*) &arg3); + VECAdd((Vec *)&arg3, &sp10, (Vec *)&arg3); return 1; } } diff --git a/src/REL/m424Dll/ball.c b/src/REL/m424Dll/ball.c index 800f1775..5114c552 100644 --- a/src/REL/m424Dll/ball.c +++ b/src/REL/m424Dll/ball.c @@ -1,7 +1,6 @@ #include "REL/m424Dll.h" #include "ext_math.h" -#include "string.h" #include "game/audio.h" #include "game/chrman.h" #include "game/data.h" @@ -11,6 +10,8 @@ #include "game/hsfmotion.h" #include "game/pad.h" #include "game/sprite.h" +#include "string.h" + // STRUCT typedef struct _M424DllBallStruct { @@ -45,10 +46,10 @@ typedef struct _M424DllBallStruct { Vec unk40; Vec unk4C; Vec unk58; - void* unk64; // sizeof 0x40 + void *unk64; // sizeof 0x40 char unk68[0x3C]; u8 unkA4; - void* unkA8; // sizeof 0x40 + void *unkA8; // sizeof 0x40 char unkAC[0x3C]; s32 unkE8; s32 unkEC; @@ -56,8 +57,8 @@ typedef struct _M424DllBallStruct { typedef struct _M424DllBallStruct3 { u8 unk0; - M424DllBallStruct2* unk4; - M424DllBallStruct2* unk8; + M424DllBallStruct2 *unk4; + M424DllBallStruct2 *unk8; } M424DllBallStruct3; typedef struct _M424BallStruct4 { @@ -73,45 +74,45 @@ typedef struct _M424BallStruct4 { } M424BallStruct4; // BSS -void* lbl_1_bss_5BC[0x20]; -omObjData* lbl_1_bss_5AC[4]; -omObjData* lbl_1_bss_594[6]; +void *lbl_1_bss_5BC[0x20]; +omObjData *lbl_1_bss_5AC[4]; +omObjData *lbl_1_bss_594[6]; M424DllBallStruct2 lbl_1_bss_60[9]; s32 lbl_1_bss_5C; u8 lbl_1_bss_58; // PROTO f32 fn_1_25C0(void); -void fn_1_28A0(omObjData* object); -void fn_1_2E3C(omObjData* object); -void fn_1_31C0(omObjData* object); -void fn_1_37FC(omObjData* object); -void fn_1_4220(omObjData* object); -void fn_1_469C(omObjData* object); -u8 fn_1_48D0(omObjData* object, u8, u8); +void fn_1_28A0(omObjData *object); +void fn_1_2E3C(omObjData *object); +void fn_1_31C0(omObjData *object); +void fn_1_37FC(omObjData *object); +void fn_1_4220(omObjData *object); +void fn_1_469C(omObjData *object); +u8 fn_1_48D0(omObjData *object, u8, u8); void fn_1_4A90(s16); void fn_1_6038(void); -void* fn_1_6078(s32); +void *fn_1_6078(s32); void fn_1_61AC(void); s32 fn_1_627C(void); void fn_1_6230(s16, Mtx); -void fn_1_62D0(s32, u32*); +void fn_1_62D0(s32, u32 *); f32 fn_1_640C(f32, f32, f32); f32 fn_1_6D10(Vec, Vec, f32, Vec, Vec, f32); f32 fn_1_709C(Vec, Vec, f32, f32); f32 fn_1_7420(Vec, Vec, f32, f32); -void fn_1_77C4(Vec, Vec, Vec, f32, Vec*, Vec*); -void fn_1_79FC(Vec*, Vec*, f32, Vec*, Vec*, f32, f32); -void fn_1_7CA0(Vec, Vec, f32, Vec*); +void fn_1_77C4(Vec, Vec, Vec, f32, Vec *, Vec *); +void fn_1_79FC(Vec *, Vec *, f32, Vec *, Vec *, f32, f32); +void fn_1_7CA0(Vec, Vec, f32, Vec *); void fn_1_8924(u8, u8); void fn_1_8AA8(s32, s32); s32 fn_1_8C78(s32, s32); -s32 fn_1_907C(Vec*, Vec*); +s32 fn_1_907C(Vec *, Vec *); - -void fn_1_2720(Process* arg0) { +void fn_1_2720(Process *arg0) +{ u32 sp8[10]; - omObjData* var_r30; + omObjData *var_r30; s32 temp_r28; s32 var_r29; s32 var_r31; @@ -122,7 +123,7 @@ void fn_1_2720(Process* arg0) { } fn_1_62D0(8, sp8); sp8[8] = 8; - + for (var_r31 = 0, var_r29 = 0; var_r31 < 4; var_r31++) { if (GWPlayerCfg[var_r31].group != 0) { var_r30 = omAddObjEx(arg0, 0x3E, 3, 11, 0, fn_1_28A0); @@ -132,7 +133,7 @@ void fn_1_2720(Process* arg0) { var_r29++; } } - + for (var_r31 = 0; var_r31 < 6; var_r29++, var_r31++) { var_r30 = omAddObjEx(arg0, 0x3F, 2, 5, 0, fn_1_4220); lbl_1_bss_594[var_r31] = var_r30; @@ -143,27 +144,20 @@ void fn_1_2720(Process* arg0) { fn_1_6038(); } -void fn_1_2880(void) { +void fn_1_2880(void) +{ fn_1_61AC(); } -u32 lbl_1_data_150[11] = { - 0, 2, 3, 8, 10, - 9, 20, 22, 23, 24, - 0x370021 -}; -Vec lbl_1_data_17C[4] = { - { -100.0f, 200.0f, -100.0f }, - { 300.0f, 200.0f, -100.0f }, - { -300.0f, 200.0f, 300.0f }, - { 300.0f, 200.0f, 0.0f } -}; +u32 lbl_1_data_150[11] = { 0, 2, 3, 8, 10, 9, 20, 22, 23, 24, 0x370021 }; +Vec lbl_1_data_17C[4] = { { -100.0f, 200.0f, -100.0f }, { 300.0f, 200.0f, -100.0f }, { -300.0f, 200.0f, 300.0f }, { 300.0f, 200.0f, 0.0f } }; -void fn_1_28A0(omObjData* object) { +void fn_1_28A0(omObjData *object) +{ Vec sp8; f32 temp_f31; f32 temp_f30; - M424DllBallStruct* var_r31; + M424DllBallStruct *var_r31; s32 var_r29; s32 temp_r28; s32 var_r27; @@ -212,9 +206,12 @@ void fn_1_28A0(omObjData* object) { for (var_r29 = 0; var_r29 < 11; var_r29++) { if (lbl_1_data_150[var_r29] + 0xFFC90000 != 0x21) { object->motion[var_r29] = CharModelMotionCreate(var_r31->unk1, lbl_1_data_150[var_r29]); - } else if (var_r31->unk1 == 5) { - object->motion[var_r29] = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(var_r31->unk1 + lbl_1_data_150[var_r29], 0x10000000, HEAP_DATA)); - } else { + } + else if (var_r31->unk1 == 5) { + object->motion[var_r29] + = Hu3DJointMotion(object->model[0], HuDataSelHeapReadNum(var_r31->unk1 + lbl_1_data_150[var_r29], 0x10000000, HEAP_DATA)); + } + else { object->motion[var_r29] = object->motion[0]; } if (lbl_1_data_150[var_r29] == 0x16 || lbl_1_data_150[var_r29] == 0x14) { @@ -230,11 +227,12 @@ void fn_1_28A0(omObjData* object) { object->func = fn_1_2E3C; } -void fn_1_2E38(void) {} +void fn_1_2E38(void) { } -void fn_1_2E3C(omObjData* object) { +void fn_1_2E3C(omObjData *object) +{ s32 temp_r29; - M424DllBallStruct* temp_r31; + M424DllBallStruct *temp_r31; temp_r29 = object->model[0]; temp_r31 = object->data; @@ -242,13 +240,15 @@ void fn_1_2E3C(omObjData* object) { if ((fn_1_FE0() == 4) && ((temp_r31->unk7 & 2) == 0)) { if (temp_r31->unk5 != 0) { fn_1_31C0(object); - } else { + } + else { temp_r31->unk10 = HuPadStkX[temp_r31->unk4]; temp_r31->unk12 = HuPadStkY[temp_r31->unk4]; temp_r31->unk14 = HuPadBtnDown[temp_r31->unk4]; temp_r31->unk16 = HuPadBtn[temp_r31->unk4]; } - } else { + } + else { temp_r31->unk10 = temp_r31->unk12 = 0; temp_r31->unk14 = temp_r31->unk16 = 0; } @@ -289,13 +289,15 @@ void fn_1_2E3C(omObjData* object) { temp_r31->unk18 = 7; temp_r31->unk34.x += fn_1_25C0(); temp_r31->unk34.y = 50.0f; - } else { + } + else { temp_r31->unkC = 0; temp_r31->unk20 += 3.0f; temp_r31->unk4C.y += -1.46f; if (temp_r31->unk1 != 5) { temp_r31->unk18 = 6; - } else { + } + else { temp_r31->unk18 = 0xA; } } @@ -308,13 +310,14 @@ void fn_1_2E3C(omObjData* object) { } } -void fn_1_31C0(omObjData* object) { +void fn_1_31C0(omObjData *object) +{ Vec sp10; s32 spC; s16 sp8; f32 temp_f31; f32 temp_f30; - M424DllBallStruct* temp_r31; + M424DllBallStruct *temp_r31; s16 temp_r30; s16 var_r29; s16 var_r28; @@ -325,7 +328,7 @@ void fn_1_31C0(omObjData* object) { spC = object->model[0]; sp8 = temp_r31->unk18; temp_r30 = temp_r31->unk6; - + var_r29 = var_r28 = var_r26 = var_r25 = 0; switch (temp_r31->unk8) { case 2: @@ -341,18 +344,22 @@ void fn_1_31C0(omObjData* object) { if (temp_f30 < 0.0f) { var_r29 = (-sp10.z * (48.0f + (6.0f * temp_r30))); var_r28 = (-sp10.x * (48.0f + (6.0f * temp_r30))); - } else { + } + else { var_r29 = (sp10.z * (48.0f + (6.0f * temp_r30))); var_r28 = (sp10.x * (48.0f + (6.0f * temp_r30))); } - } else if (temp_f30 < 0.0f) { + } + else if (temp_f30 < 0.0f) { var_r29 = (sp10.z * (48.0f + (6.0f * temp_r30))); var_r28 = (sp10.x * (48.0f + (6.0f * temp_r30))); - } else { + } + else { var_r29 = (-sp10.z * (48.0f + (6.0f * temp_r30))); var_r28 = (-sp10.x * (48.0f + (6.0f * temp_r30))); } - } else { + } + else { var_r29 = temp_r31->unk10; var_r28 = temp_r31->unk12; } @@ -364,7 +371,8 @@ void fn_1_31C0(omObjData* object) { sp10.z = cosd(temp_f31); var_r29 = (48.0f * sp10.x); var_r28 = (48.0f * sp10.z); - } else { + } + else { var_r29 = temp_r31->unk10; var_r28 = temp_r31->unk12; } @@ -376,13 +384,14 @@ void fn_1_31C0(omObjData* object) { temp_r31->unk16 = var_r25; } -void fn_1_37FC(omObjData* object) { +void fn_1_37FC(omObjData *object) +{ s16 spA; s16 sp8; f32 var_f30; f32 var_f28; f32 temp_f27; - M424DllBallStruct* temp_r31; + M424DllBallStruct *temp_r31; s16 temp_r30; s16 temp_r29; s16 var_r28; @@ -407,7 +416,8 @@ void fn_1_37FC(omObjData* object) { if (temp_r31->unk20 >= 6.0f) { var_r28 = 2; var_r27 = 1; - } else { + } + else { var_r28 = 1; var_r27 = 1; } @@ -419,7 +429,8 @@ void fn_1_37FC(omObjData* object) { temp_r31->unk28 -= 0.5f * temp_r31->unk2C; } temp_r31->unk20 *= 1.0 + 0.25 * cosd(90.0f * (temp_r31->unk28 / (0.5f * temp_r31->unk2C))); - } else { + } + else { temp_r31->unk28 = 0.0f; temp_r31->unk20 = 0.0f; var_r28 = 0; @@ -427,7 +438,8 @@ void fn_1_37FC(omObjData* object) { } if (temp_r31->unkC != 0) { temp_r31->unk4C.y = -2.4333334f; - } else { + } + else { temp_r31->unk4C.y += -2.4333334f; } break; @@ -435,7 +447,8 @@ void fn_1_37FC(omObjData* object) { var_r27 = 0; if ((Hu3DData[temp_r25].unk_0C == -1) && (CharModelMotionEndCheck(temp_r31->unk1) != 0)) { temp_r31->unk4C.y += -2.4333334f; - } else { + } + else { temp_r31->unk4C.y = 0.0f; } if (temp_r31->unkC != 0) { @@ -444,7 +457,8 @@ void fn_1_37FC(omObjData* object) { temp_r31->unkD = 0; var_r28 = 5; var_r27 = 0; - } else { + } + else { temp_r31->unk4C.y *= -0.1f; temp_r31->unkC = 0; var_r28 = 4; @@ -478,7 +492,8 @@ void fn_1_37FC(omObjData* object) { var_r27 = 1; if (temp_r31->unkE8 == 1) { temp_r31->unkEC = HuAudCharVoicePlay(temp_r31->unk1, 0x11A); - } else if ((temp_r31->unkE8 > 90.0f) && (temp_r31->unkEC != -1)) { + } + else if ((temp_r31->unkE8 > 90.0f) && (temp_r31->unkEC != -1)) { HuAudFXStop(temp_r31->unkEC); temp_r31->unkEC = -1; } @@ -506,7 +521,8 @@ void fn_1_37FC(omObjData* object) { if ((temp_r31->unk7 & 4) != 0) { if ((temp_r31->unkA & 2) != 0) { Hu3DModelAttrSet(temp_r25, 1); - } else { + } + else { Hu3DModelAttrReset(temp_r25, 1); } if (--temp_r31->unkA == 0) { @@ -544,18 +560,19 @@ void fn_1_37FC(omObjData* object) { omSetSca(object, temp_r31->unk1C, temp_r31->unk1C, temp_r31->unk1C); } -void fn_1_4220(omObjData* object) { +void fn_1_4220(omObjData *object) +{ s32 sp14[3] = { 0x370013, 0x370014, 0x370015 }; Vec sp8; f32 temp_f31; f32 temp_f30; - M424DllBallStruct* var_r31; + M424DllBallStruct *var_r31; s32 var_r29; s32 temp_r28; s32 var_r27; object->model[0] = var_r27 = Hu3DModelCreateFile(0x370012); - + for (var_r29 = 0; var_r29 < 3; var_r29++) { object->motion[var_r29] = Hu3DJointMotion(var_r27, HuDataSelHeapReadNum(sp14[var_r29], 0x10000000, HEAP_DATA)); } @@ -584,7 +601,8 @@ void fn_1_4220(omObjData* object) { sp8.x = 350.0f; sp8.y = 200.0f; sp8.z = 50.0f; - } else { + } + else { temp_f31 = 40.0f; temp_f31 = 105.0f + ((temp_f31 * temp_r28) + (temp_f31 * (fn_1_627C() / 65536.0f))); temp_f30 = 125.0f; @@ -608,21 +626,22 @@ void fn_1_4220(omObjData* object) { object->func = fn_1_469C; } -fn_1_4698(void) {} +fn_1_4698(void) { } -void fn_1_469C(omObjData* object) { +void fn_1_469C(omObjData *object) +{ s32 temp_r27; s16 var_r28; s16 var_r30; - M424DllBallStruct* temp_r31; + M424DllBallStruct *temp_r31; temp_r31 = object->data; temp_r27 = object->model[0]; var_r30 = temp_r31->unk18; temp_r31->unk58 = temp_r31->unk34; - + temp_r31->unk4C.x = temp_r31->unk4C.z = 0.0f; - switch (temp_r31->unk8) { /* irregular */ + switch (temp_r31->unk8) { /* irregular */ case 3: var_r30 = 2; var_r28 = 1; @@ -642,7 +661,7 @@ void fn_1_469C(omObjData* object) { case 2: var_r30 = 0; var_r28 = 1; - + temp_r31->unk4C.x = temp_r31->unk4C.z = 0.0f; temp_r31->unk4C.y += -0.97333336f; break; @@ -651,13 +670,14 @@ void fn_1_469C(omObjData* object) { if (var_r30 != temp_r31->unk1A) { temp_r31->unk1A = var_r30; temp_r31->unk18 = var_r30; - Hu3DMotionShiftSet(temp_r27, object->motion[temp_r31->unk18], 0.0f, 8.0f, (u32) var_r28); + Hu3DMotionShiftSet(temp_r27, object->motion[temp_r31->unk18], 0.0f, 8.0f, (u32)var_r28); temp_r31->unk2C = Hu3DMotionMaxTimeGet(temp_r31->unk1); } } -u8 fn_1_48D0(omObjData* object, u8 arg1, u8 arg2) { - M424DllBallStruct2* temp_r31; +u8 fn_1_48D0(omObjData *object, u8 arg1, u8 arg2) +{ + M424DllBallStruct2 *temp_r31; s32 var_r30; s32 var_r28; @@ -676,7 +696,7 @@ u8 fn_1_48D0(omObjData* object, u8 arg1, u8 arg2) { temp_r31->unkA = var_r30; Hu3DModelLayerSet(var_r30, 1); Hu3DModelShadowSet(var_r30); - PSMTXIdentity(temp_r31->unkC); + MTXIdentity(temp_r31->unkC); temp_r31->unk3C.x = object->trans.x; temp_r31->unk3C.y = 100.0f + object->trans.y; temp_r31->unk3C.z = object->trans.z; @@ -687,28 +707,30 @@ u8 fn_1_48D0(omObjData* object, u8 arg1, u8 arg2) { temp_r31->unk6 = 0; if (arg2 != 0) { temp_r31->unk91 = arg1; - } else { + } + else { temp_r31->unk91 = 0xFFU; } return var_r28; } -void fn_1_4A90(s16 arg0) { +void fn_1_4A90(s16 arg0) +{ Mtx sp50; Mtx sp20; Vec sp14; Vec sp8; f32 var_f31; f32 var_f30; - M424DllBallStruct2* var_r31; - M424DllBallStruct* temp_r30; + M424DllBallStruct2 *var_r31; + M424DllBallStruct *temp_r30; s32 var_r29; if (omPauseChk() == 0) { var_r31 = lbl_1_bss_60; var_f31 = fn_1_213C(); mtxRot(sp20, 0.0f, var_f31, 0.0f); - + for (var_r29 = 0; var_r29 < lbl_1_bss_58; var_r29++, var_r31++) { temp_r30 = var_r31->unk0->data; var_r31->unk48 = var_r31->unk54; @@ -716,20 +738,20 @@ void fn_1_4A90(s16 arg0) { var_r31->unk78.x = var_r31->unk78.y = var_r31->unk78.z = 0.0f; switch (var_r31->unk4) { case 1: - PSMTXTrans(sp50, var_r31->unk3C.x, var_r31->unk3C.y, var_r31->unk3C.z); - PSMTXConcat(sp20, sp50, sp50); + MTXTrans(sp50, var_r31->unk3C.x, var_r31->unk3C.y, var_r31->unk3C.z); + MTXConcat(sp20, sp50, sp50); var_r31->unk48.x = sp50[0][3]; var_r31->unk48.y = sp50[1][3]; var_r31->unk48.z = sp50[2][3]; - PSVECSubtract(&var_r31->unk48, &var_r31->unk3C, &var_r31->unk78); - PSVECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); - PSVECAdd(&temp_r30->unk4C, &sp14, &var_r31->unk84); - PSVECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); + VECSubtract(&var_r31->unk48, &var_r31->unk3C, &var_r31->unk78); + VECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); + VECAdd(&temp_r30->unk4C, &sp14, &var_r31->unk84); + VECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); var_r31->unk84.y = 0.0f; var_r31->unk4 = 2; break; case 3: - PSVECSubtract(&var_r31->unk3C, &var_r31->unk60, &var_r31->unk6C); + VECSubtract(&var_r31->unk3C, &var_r31->unk60, &var_r31->unk6C); var_r31->unk84 = var_r31->unk6C; break; case 4: @@ -740,15 +762,16 @@ void fn_1_4A90(s16 arg0) { case 2: var_r31->unk6C.y = 0.0f; var_r31->unk6C.x = var_r31->unk6C.z = 0.0f; - PSVECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); - PSVECAdd(&temp_r30->unk4C, &sp14, &var_r31->unk84); + VECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); + VECAdd(&temp_r30->unk4C, &sp14, &var_r31->unk84); var_r31->unk6C = var_r31->unk84; break; case 5: if ((var_r31->unk6 & 2) != 0) { Hu3DModelAttrSet(var_r31->unk8, 1); Hu3DModelAttrSet(var_r31->unkA, 1); - } else { + } + else { Hu3DModelAttrReset(var_r31->unk8, 1); Hu3DModelAttrReset(var_r31->unkA, 1); } @@ -766,18 +789,19 @@ void fn_1_4A90(s16 arg0) { for (var_r29 = 0; var_r29 < lbl_1_bss_58; var_r29++, var_r31++) { if (var_r31->unk4 != 6) { if (var_r31->unk4 == 1) { - PSVECSubtract(&var_r31->unk3C, &var_r31->unk48, &sp14); + VECSubtract(&var_r31->unk3C, &var_r31->unk48, &sp14); sp8.x = sp14.z; sp8.y = 0.0f; sp8.z = -sp14.x; - var_f30 = PSVECMag(&sp8); + var_f30 = VECMag(&sp8); if (var_f30 > 0.01f) { - PSMTXRotAxisRad(sp50, &sp8, MTXDegToRad(var_f30)); - PSMTXConcat(sp20, sp50, sp50); - } else { - PSMTXCopy(sp20, sp50); + MTXRotAxisRad(sp50, &sp8, MTXDegToRad(var_f30)); + MTXConcat(sp20, sp50, sp50); } - PSMTXConcat(sp50, var_r31->unkC, var_r31->unkC); + else { + MTXCopy(sp20, sp50); + } + MTXConcat(sp50, var_r31->unkC, var_r31->unkC); fn_1_6230(var_r31->unk8, var_r31->unkC); fn_1_6230(var_r31->unkA, var_r31->unkC); } @@ -789,7 +813,7 @@ void fn_1_4A90(s16 arg0) { } Hu3DModelPosSet(var_r31->unk8, var_r31->unk3C.x, var_r31->unk3C.y, var_r31->unk3C.z); Hu3DModelPosSet(var_r31->unkA, var_r31->unk3C.x, var_r31->unk3C.y, var_r31->unk3C.z); - PSVECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); + VECSubtract(&var_r31->unk3C, &var_r31->unk54, &sp14); var_r31->unk6C = sp14; var_r31->unk54 = var_r31->unk3C; temp_r30 = var_r31->unk0->data; @@ -806,7 +830,8 @@ void fn_1_4A90(s16 arg0) { } } -void fn_1_5018(void) { +void fn_1_5018(void) +{ M424DllBallStruct3 sp27C[32]; Vec sp270; Vec sp264; @@ -819,8 +844,8 @@ void fn_1_5018(void) { f32 var_f30; f32 var_f29; f32 temp_f28; - M424DllBallStruct2* var_r31; - M424DllBallStruct2* var_r30; + M424DllBallStruct2 *var_r31; + M424DllBallStruct2 *var_r30; s32 var_r29; s32 var_r28; s32 var_r27; @@ -831,7 +856,7 @@ void fn_1_5018(void) { for (var_r28 = 0; var_r28 < lbl_1_bss_58; var_r28++, var_r31++) { var_r31->unk90 = 1; } - + for (var_r26 = 0, var_f29 = 1.0f; var_r26 < 0x80; var_f29 -= var_f30, var_r26++) { var_r29 = 0; var_f30 = var_f29; @@ -861,7 +886,8 @@ void fn_1_5018(void) { } if (var_r31->unk4 == 1) { var_f31 = fn_1_7420(var_r31->unk60, var_r31->unk84, 100.0f, 700.0f); - } else { + } + else { var_f31 = fn_1_7420(var_r31->unk60, var_r31->unk6C, 100.0f, 700.0f); } if (var_f31 >= 0.0f && var_f31 <= var_f29) { @@ -879,7 +905,8 @@ void fn_1_5018(void) { } if (var_r31->unk4 == 1) { var_f31 = fn_1_709C(var_r31->unk60, var_r31->unk84, 100.0f, 250.0f); - } else { + } + else { var_f31 = fn_1_709C(var_r31->unk60, var_r31->unk6C, 100.0f, 250.0f); } if (var_f31 >= 0.0f && var_f31 <= var_f29) { @@ -896,26 +923,32 @@ void fn_1_5018(void) { } } } - + var_r30 = lbl_1_bss_60; for (var_r25 = 0; var_r25 < lbl_1_bss_58; var_r25++, var_r30++) { if ((var_r31 != var_r30) && (var_r30->unk4 < 4)) { if ((var_r31->unk4 == 1) && (var_r30->unk4 == 1)) { var_f31 = fn_1_6D10(var_r31->unk60, var_r31->unk84, 100.0f, var_r30->unk60, var_r30->unk84, 100.0f); - } else { + } + else { var_f31 = fn_1_6D10(var_r31->unk60, var_r31->unk6C, 100.0f, var_r30->unk60, var_r30->unk6C, 100.0f); } - if ((var_f31 < 0.0f) || (var_f31 > var_f29)) continue; + if ((var_f31 < 0.0f) || (var_f31 > var_f29)) + continue; var_r31->unk90 = 1; var_r30->unk90 = 1; - if (var_f31 > var_f30) continue; + if (var_f31 > var_f30) + continue; if (var_f31 < var_f30) { var_r29 = 0; - } else { + } + else { for (var_r27 = 0; var_r27 < var_r29; var_r27++) { - if ((sp27C[var_r27].unk4 == var_r30) && (sp27C[var_r27].unk8 == var_r31)) break; + if ((sp27C[var_r27].unk4 == var_r30) && (sp27C[var_r27].unk8 == var_r31)) + break; } - if (var_r27 < var_r29) continue; + if (var_r27 < var_r29) + continue; } sp27C[var_r29].unk0 = 3; sp27C[var_r29].unk4 = var_r31; @@ -926,7 +959,8 @@ void fn_1_5018(void) { } } } - if (var_r29 == 0) break; + if (var_r29 == 0) + break; var_r31 = lbl_1_bss_60; for (var_r28 = 0; var_r28 < lbl_1_bss_58; var_r28++, var_r31++) { var_r31->unk60.x += var_r31->unk6C.x * var_f30; @@ -947,11 +981,11 @@ void fn_1_5018(void) { var_r31 = sp27C[var_r28].unk4; sp240 = var_r31->unk60; sp240.y = 0.0f; - PSVECNormalize(&sp240, &sp228); + VECNormalize(&sp240, &sp228); sp228.x = -sp228.x; sp228.y = 0.0f; sp228.z = -sp228.z; - temp_f28 = PSVECMag(&sp240); + temp_f28 = VECMag(&sp240); temp_f28 -= 600.0f; var_r31->unk60.x += temp_f28 * sp228.x; var_r31->unk60.z += temp_f28 * sp228.z; @@ -960,8 +994,9 @@ void fn_1_5018(void) { if (var_r31->unk4 == 1) { fn_1_7CA0(var_r31->unk84, sp228, 0.8f, &sp24C); var_r31->unk84 = sp24C; - PSVECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); - } else { + VECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); + } + else { fn_1_7CA0(var_r31->unk6C, sp228, 0.8f, &sp24C); var_r31->unk6C = sp24C; var_r31->unk84 = var_r31->unk6C; @@ -971,8 +1006,8 @@ void fn_1_5018(void) { var_r31 = sp27C[var_r28].unk4; sp240 = var_r31->unk60; sp240.y = 0.0f; - PSVECNormalize(&sp240, &sp228); - temp_f28 = PSVECMag(&sp240); + VECNormalize(&sp240, &sp228); + temp_f28 = VECMag(&sp240); temp_f28 = 350.0f; var_r31->unk60.x = temp_f28 * sp228.x; var_r31->unk60.z = temp_f28 * sp228.z; @@ -981,8 +1016,9 @@ void fn_1_5018(void) { if (var_r31->unk4 == 1) { fn_1_7CA0(var_r31->unk84, sp228, 0.8f, &sp24C); var_r31->unk84 = sp24C; - PSVECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); - } else { + VECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); + } + else { fn_1_7CA0(var_r31->unk6C, sp228, 0.8f, &sp24C); var_r31->unk6C = sp24C; var_r31->unk84 = var_r31->unk6C; @@ -995,22 +1031,25 @@ void fn_1_5018(void) { fn_1_79FC(&var_r30->unk3C, &var_r30->unk6C, 100.0f, &var_r31->unk3C, &var_r31->unk6C, 100.0f, 0.8f); var_r31->unk84 = var_r31->unk6C; var_r30->unk84 = var_r30->unk6C; - } else if (var_r30->unk4 == 3) { + } + else if (var_r30->unk4 == 3) { fn_1_79FC(&var_r31->unk3C, &var_r31->unk6C, 100.0f, &var_r30->unk3C, &var_r30->unk6C, 100.0f, 0.8f); var_r31->unk84 = var_r31->unk6C; var_r30->unk84 = var_r30->unk6C; - } else if ((var_r31->unk4 == 1) && (var_r30->unk4 == 1)) { + } + else if ((var_r31->unk4 == 1) && (var_r30->unk4 == 1)) { fn_1_77C4(var_r31->unk60, var_r31->unk84, var_r30->unk60, 0.8f, &sp24C, &sp258); fn_1_77C4(var_r30->unk60, var_r30->unk84, var_r31->unk60, 0.8f, &sp270, &sp264); - PSVECAdd(&sp24C, &sp264, &var_r31->unk84); - PSVECAdd(&sp258, &sp270, &var_r30->unk84); - PSVECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); - PSVECAdd(&var_r30->unk84, &var_r30->unk78, &var_r30->unk6C); - } else { + VECAdd(&sp24C, &sp264, &var_r31->unk84); + VECAdd(&sp258, &sp270, &var_r30->unk84); + VECAdd(&var_r31->unk84, &var_r31->unk78, &var_r31->unk6C); + VECAdd(&var_r30->unk84, &var_r30->unk78, &var_r30->unk6C); + } + else { fn_1_77C4(var_r31->unk60, var_r31->unk6C, var_r30->unk60, 0.8f, &sp24C, &sp258); fn_1_77C4(var_r30->unk60, var_r30->unk6C, var_r31->unk60, 0.8f, &sp270, &sp264); - PSVECAdd(&sp24C, &sp264, &var_r31->unk6C); - PSVECAdd(&sp258, &sp270, &var_r30->unk6C); + VECAdd(&sp24C, &sp264, &var_r31->unk6C); + VECAdd(&sp258, &sp270, &var_r30->unk6C); var_r31->unk84 = var_r31->unk6C; var_r30->unk84 = var_r30->unk6C; } @@ -1026,19 +1065,22 @@ void fn_1_5018(void) { } } -void fn_1_6038(void) { +void fn_1_6038(void) +{ s32 var_r31; - + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { lbl_1_bss_5BC[var_r31] = 0; } } -void* fn_1_6078(s32 arg0) { +void *fn_1_6078(s32 arg0) +{ s32 var_r31; - + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { - if (lbl_1_bss_5BC[var_r31] == 0) break; + if (lbl_1_bss_5BC[var_r31] == 0) + break; } if (var_r31 == 0x20) { return NULL; @@ -1047,11 +1089,13 @@ void* fn_1_6078(s32 arg0) { return lbl_1_bss_5BC[var_r31]; } -void fn_1_6118(void* arg0) { +void fn_1_6118(void *arg0) +{ s32 var_r31; - + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { - if (lbl_1_bss_5BC[var_r31] == arg0) break; + if (lbl_1_bss_5BC[var_r31] == arg0) + break; } if (var_r31 != 0x20) { HuMemDirectFree(lbl_1_bss_5BC[var_r31]); @@ -1059,9 +1103,10 @@ void fn_1_6118(void* arg0) { } } -void fn_1_61AC(void) { +void fn_1_61AC(void) +{ s32 var_r31; - + for (var_r31 = 0; var_r31 < 0x20; var_r31++) { if (lbl_1_bss_5BC[var_r31]) { HuMemDirectFree(lbl_1_bss_5BC[var_r31]); @@ -1070,22 +1115,25 @@ void fn_1_61AC(void) { } } -void fn_1_6230(s16 arg0, Mtx arg1) { - ModelData* var_r31; +void fn_1_6230(s16 arg0, Mtx arg1) +{ + ModelData *var_r31; var_r31 = &Hu3DData[arg0]; - PSMTXCopy(arg1, var_r31->unk_F0); + MTXCopy(arg1, var_r31->unk_F0); } u32 lbl_1_data_1D8 = 0x41C64E6D; -s32 fn_1_627C(void) { +s32 fn_1_627C(void) +{ lbl_1_data_1D8 *= 0x41C64E6D; lbl_1_data_1D8 += 0x3039; return lbl_1_data_1D8 >> 0x10; } -void fn_1_62D0(s32 arg0, u32* arg1) { +void fn_1_62D0(s32 arg0, u32 *arg1) +{ s32 var_r31; s32 temp_r30; u32 temp_r29; @@ -1093,7 +1141,7 @@ void fn_1_62D0(s32 arg0, u32* arg1) { for (var_r31 = 0; var_r31 < arg0; var_r31++) { arg1[var_r31] = var_r31; } - + for (var_r31 = 0; var_r31 < arg0 - 1; var_r31++) { temp_r30 = (arg0 * (fn_1_627C() / 65536.0f)); temp_r29 = arg1[var_r31]; @@ -1102,19 +1150,22 @@ void fn_1_62D0(s32 arg0, u32* arg1) { } } -f32 fn_1_640C(f32 arg0, f32 arg1, f32 arg2) { +f32 fn_1_640C(f32 arg0, f32 arg1, f32 arg2) +{ f32 var_f31; if (arg0 > 180.0f) { arg0 -= 360.0f; - } else { + } + else { if (arg0 <= -180.0f) { arg0 += 360.0f; } } if (arg1 > 180.0f) { arg1 -= 360.0f; - } else { + } + else { if (arg1 <= -180.0f) { arg1 += 360.0f; } @@ -1122,7 +1173,8 @@ f32 fn_1_640C(f32 arg0, f32 arg1, f32 arg2) { var_f31 = arg0 - arg1; if (var_f31 > 180.0f) { var_f31 -= 360.0f; - } else { + } + else { if (var_f31 <= -180.0f) { var_f31 += 360.0f; } @@ -1137,26 +1189,29 @@ f32 fn_1_640C(f32 arg0, f32 arg1, f32 arg2) { return arg0; } -void fn_1_6574(Mtx arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_6574(Mtx arg0, f32 arg8, f32 arg9, f32 argA) +{ Mtx sp38; Mtx sp8; - + if (argA != 0.0f) { - PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); - } else { - PSMTXIdentity(arg0); + MTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + } + else { + MTXIdentity(arg0); } if (arg8 != 0.0f) { - PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); - PSMTXConcat(sp38, arg0, arg0); + MTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + MTXConcat(sp38, arg0, arg0); } if (arg9 != 0.0f) { - PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); - PSMTXConcat(sp8, arg0, arg0); + MTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + MTXConcat(sp8, arg0, arg0); } } -void fn_1_6694(M424BallStruct4* arg0, Vec* arg1) { +void fn_1_6694(M424BallStruct4 *arg0, Vec *arg1) +{ f32 temp_f29; f32 var_f28; @@ -1181,7 +1236,8 @@ void fn_1_6694(M424BallStruct4* arg0, Vec* arg1) { } } -void fn_1_6A30(M424BallStruct4* arg0, Vec* arg1) { +void fn_1_6A30(M424BallStruct4 *arg0, Vec *arg1) +{ f32 temp_f29; f32 var_f27; @@ -1201,7 +1257,8 @@ void fn_1_6A30(M424BallStruct4* arg0, Vec* arg1) { } } -f32 fn_1_6D10(Vec arg0, Vec arg1, f32 arg2, Vec arg3, Vec arg4, f32 arg5) { +f32 fn_1_6D10(Vec arg0, Vec arg1, f32 arg2, Vec arg3, Vec arg4, f32 arg5) +{ f32 temp_f30; f32 temp_f29; f32 temp_f28; @@ -1210,10 +1267,10 @@ f32 fn_1_6D10(Vec arg0, Vec arg1, f32 arg2, Vec arg3, Vec arg4, f32 arg5) { f32 temp_f25; f32 var_f23; - PSVECSubtract(&arg3, &arg0, &arg3); - PSVECSubtract(&arg4, &arg1, &arg4); + VECSubtract(&arg3, &arg0, &arg3); + VECSubtract(&arg4, &arg1, &arg4); temp_f29 = arg2 + arg5; - if (PSVECMag(&arg3) > temp_f29 + PSVECMag(&arg4)) { + if (VECMag(&arg3) > temp_f29 + VECMag(&arg4)) { return -1.0f; } temp_f29 *= temp_f29; @@ -1236,7 +1293,8 @@ f32 fn_1_6D10(Vec arg0, Vec arg1, f32 arg2, Vec arg3, Vec arg4, f32 arg5) { return temp_f28; } -f32 fn_1_709C(Vec arg0, Vec arg1, f32 arg2, f32 arg3) { +f32 fn_1_709C(Vec arg0, Vec arg1, f32 arg2, f32 arg3) +{ Vec sp20; Vec sp14; f32 temp_f30; @@ -1252,7 +1310,7 @@ f32 fn_1_709C(Vec arg0, Vec arg1, f32 arg2, f32 arg3) { sp14 = arg1; sp14.y = 0.0f; temp_f29 = arg3 + arg2; - if (PSVECMag(&sp20) > temp_f29 + PSVECMag(&sp14)) { + if (VECMag(&sp20) > temp_f29 + VECMag(&sp14)) { return -1.0f; } temp_f29 *= temp_f29; @@ -1275,7 +1333,8 @@ f32 fn_1_709C(Vec arg0, Vec arg1, f32 arg2, f32 arg3) { return temp_f28; } -f32 fn_1_7420(Vec arg0, Vec arg1, f32 arg2, f32 arg3) { +f32 fn_1_7420(Vec arg0, Vec arg1, f32 arg2, f32 arg3) +{ Vec sp20; Vec sp14; f32 temp_f30; @@ -1285,16 +1344,16 @@ f32 fn_1_7420(Vec arg0, Vec arg1, f32 arg2, f32 arg3) { f32 temp_f26; f32 temp_f25; f32 var_f23; - + sp20 = arg0; sp20.y = 0.0f; sp14 = arg1; sp14.y = 0.0f; temp_f29 = arg3 - arg2; - if (PSVECMag(&sp20) > temp_f29) { + if (VECMag(&sp20) > temp_f29) { return 0.0f; } - if (PSVECMag(&sp20) > temp_f29 + PSVECMag(&sp14)) { + if (VECMag(&sp20) > temp_f29 + VECMag(&sp14)) { return -1.0f; } temp_f29 *= temp_f29; @@ -1317,7 +1376,8 @@ f32 fn_1_7420(Vec arg0, Vec arg1, f32 arg2, f32 arg3) { return temp_f28; } -void fn_1_77C4(Vec arg0, Vec arg1, Vec arg2, f32 arg3, Vec* arg4, Vec* arg5) { +void fn_1_77C4(Vec arg0, Vec arg1, Vec arg2, f32 arg3, Vec *arg4, Vec *arg5) +{ Vec sp38; Vec sp2C; Vec sp20; @@ -1328,17 +1388,17 @@ void fn_1_77C4(Vec arg0, Vec arg1, Vec arg2, f32 arg3, Vec* arg4, Vec* arg5) { f32 var_f28; sp38 = arg1; - var_f31 = PSVECMag(&sp38); + var_f31 = VECMag(&sp38); if (var_f31 < 0.01f) { arg4->x = arg4->y = arg4->z = 0.0f; arg5->x = arg5->y = arg5->z = 0.0f; return; } - PSVECNormalize(&sp38, &sp38); + VECNormalize(&sp38, &sp38); var_f31 = var_f31 * arg3; - PSVECSubtract(&arg2, &arg0, &sp2C); - PSVECNormalize(&sp2C, &sp2C); - var_f28 = PSVECDotProduct(&sp38, &sp2C); + VECSubtract(&arg2, &arg0, &sp2C); + VECNormalize(&sp2C, &sp2C); + var_f28 = VECDotProduct(&sp38, &sp2C); if (var_f28 < 0.0f) { arg4->x = arg1.x; arg4->y = arg1.y; @@ -1350,11 +1410,12 @@ void fn_1_77C4(Vec arg0, Vec arg1, Vec arg2, f32 arg3, Vec* arg4, Vec* arg5) { temp_f30 = var_f31 - temp_f29; if (temp_f30 < 0.01f) { arg4->x = arg4->y = arg4->z = 0.0f; - } else { - PSVECCrossProduct(&sp38, &sp2C, &sp14); - PSVECNormalize(&sp14, &sp14); - PSVECCrossProduct(&sp2C, &sp14, &sp20); - PSVECNormalize(&sp20, &sp20); + } + else { + VECCrossProduct(&sp38, &sp2C, &sp14); + VECNormalize(&sp14, &sp14); + VECCrossProduct(&sp2C, &sp14, &sp20); + VECNormalize(&sp20, &sp20); arg4->x = sp20.x * temp_f30; arg4->y = sp20.y * temp_f30; arg4->z = sp20.z * temp_f30; @@ -1364,7 +1425,8 @@ void fn_1_77C4(Vec arg0, Vec arg1, Vec arg2, f32 arg3, Vec* arg4, Vec* arg5) { arg5->z = sp2C.z * temp_f29; } -void fn_1_79FC(Vec* arg0, Vec* arg1, f32 arg2, Vec* arg3, Vec* arg4, f32 arg5, f32 arg6) { +void fn_1_79FC(Vec *arg0, Vec *arg1, f32 arg2, Vec *arg3, Vec *arg4, f32 arg5, f32 arg6) +{ Vec sp38; Vec sp2C; f32 temp_f31; @@ -1374,28 +1436,30 @@ void fn_1_79FC(Vec* arg0, Vec* arg1, f32 arg2, Vec* arg3, Vec* arg4, f32 arg5, f arg1->x *= arg6; arg1->y *= arg6; arg1->z *= arg6; - PSVECSubtract(arg0, arg3, &sp38); - PSVECNormalize(&sp38, &sp2C); - temp_f31 = (arg2 + arg5) - PSVECMag(&sp38); + VECSubtract(arg0, arg3, &sp38); + VECNormalize(&sp38, &sp2C); + temp_f31 = (arg2 + arg5) - VECMag(&sp38); if (temp_f31 > 0.01f) { - PSVECSubtract(arg1, arg4, &sp38); - if (PSVECMag(&sp38) < 0.01f) { + VECSubtract(arg1, arg4, &sp38); + if (VECMag(&sp38) < 0.01f) { arg0->x += sp2C.x * temp_f31; arg0->y += sp2C.y * temp_f31; arg0->z += sp2C.z * temp_f31; - } else { - PSVECNormalize(&sp38, &sp38); + } + else { + VECNormalize(&sp38, &sp38); arg0->x -= sp38.x * temp_f31; arg0->y -= sp38.y * temp_f31; arg0->z -= sp38.z * temp_f31; } } fn_1_7CA0(*arg1, sp2C, 1.0f, arg1); - PSVECSubtract(arg4, arg1, &sp38); - var_f30 = PSVECMag(&sp38); - if (var_f30 < 0.01f) return; - PSVECNormalize(&sp38, &sp38); - var_f29 = PSVECDotProduct(&sp2C, &sp38); + VECSubtract(arg4, arg1, &sp38); + var_f30 = VECMag(&sp38); + if (var_f30 < 0.01f) + return; + VECNormalize(&sp38, &sp38); + var_f29 = VECDotProduct(&sp2C, &sp38); if (var_f29 > 0.0f) { arg1->x += var_f30 * (sp2C.x * var_f29); arg1->y += var_f30 * (sp2C.y * var_f29); @@ -1403,14 +1467,15 @@ void fn_1_79FC(Vec* arg0, Vec* arg1, f32 arg2, Vec* arg3, Vec* arg4, f32 arg5, f } } -void fn_1_7CA0(Vec arg0, Vec arg1, f32 arg2, Point3d* arg3) { +void fn_1_7CA0(Vec arg0, Vec arg1, f32 arg2, Point3d *arg3) +{ f32 var_f31; *arg3 = arg0; arg3->x *= arg2; arg3->y *= arg2; arg3->z *= arg2; - var_f31 = PSVECDotProduct(&arg1, arg3); + var_f31 = VECDotProduct(&arg1, arg3); if (var_f31 < 0.0f) { arg3->x -= 2.0f * arg1.x * var_f31; arg3->y -= 2.0f * arg1.y * var_f31; @@ -1418,7 +1483,8 @@ void fn_1_7CA0(Vec arg0, Vec arg1, f32 arg2, Point3d* arg3) { } } -f32 fn_1_7DD0(Vec* arg0) { +f32 fn_1_7DD0(Vec *arg0) +{ f32 temp_f30; f32 temp_f29; @@ -1429,24 +1495,28 @@ f32 fn_1_7DD0(Vec* arg0) { arg0->x *= temp_f29; arg0->y *= temp_f29; arg0->z *= temp_f29; - } else { + } + else { arg0->x = arg0->y = arg0->z = 0.0f; } return temp_f30; } -f32 fn_1_7F68(Vec arg0, Vec arg1, Vec* arg2, f32 arg8) { +f32 fn_1_7F68(Vec arg0, Vec arg1, Vec *arg2, f32 arg8) +{ if (arg8 <= 0.0f) { arg2->x = arg0.x; arg2->y = arg0.y; arg2->z = arg0.z; arg8 = 0.0f; - } else if (arg8 >= 1.0f) { + } + else if (arg8 >= 1.0f) { arg2->x = (arg0.x + arg1.x); arg2->y = (arg0.y + arg1.y); arg2->z = (arg0.z + arg1.z); arg8 = 1.0f; - } else { + } + else { arg2->x = (arg0.x + (arg8 * arg1.x)); arg2->y = (arg0.y + (arg8 * arg1.y)); arg2->z = (arg0.z + (arg8 * arg1.z)); @@ -1454,7 +1524,8 @@ f32 fn_1_7F68(Vec arg0, Vec arg1, Vec* arg2, f32 arg8) { return arg8; } -f32 fn_1_8040(Vec arg0, Vec arg1, Vec arg2) { +f32 fn_1_8040(Vec arg0, Vec arg1, Vec arg2) +{ f32 temp_f30; f32 var_f31; @@ -1466,23 +1537,27 @@ f32 fn_1_8040(Vec arg0, Vec arg1, Vec arg2) { return var_f31; } -f32 fn_1_80FC(Vec* arg0, Vec* arg1, Vec* arg2) { +f32 fn_1_80FC(Vec *arg0, Vec *arg1, Vec *arg2) +{ Vec sp44; f32 var_f30; if (0.0f == (arg2->x * arg2->x) + (arg2->y * arg2->y) + (arg2->z * arg2->z)) { - return ((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y)) + ((arg0->z - arg1->z) * (arg0->z - arg1->z)); + return ((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y)) + + ((arg0->z - arg1->z) * (arg0->z - arg1->z)); } var_f30 = fn_1_8040(*arg0, *arg1, *arg2); fn_1_7F68(*arg1, *arg2, &sp44, var_f30); return ((arg0->x - sp44.x) * (arg0->x - sp44.x)) + ((arg0->y - sp44.y) * (arg0->y - sp44.y)) + ((arg0->z - sp44.z) * (arg0->z - sp44.z)); } -f32 fn_1_8438(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { +f32 fn_1_8438(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ f32 var_f27; if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { - return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); } var_f27 = fn_1_8040(*arg0, *arg1, *arg2); fn_1_7F68(*arg1, *arg2, arg3, var_f27); @@ -1492,8 +1567,9 @@ f32 fn_1_8438(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { return fn_1_7DD0(arg4); } -void fn_1_88E8(u8 arg0, f32 arg8, f32 arg9, f32 argA) { - M424DllBallStruct2* temp_r31; +void fn_1_88E8(u8 arg0, f32 arg8, f32 arg9, f32 argA) +{ + M424DllBallStruct2 *temp_r31; temp_r31 = &lbl_1_bss_60[arg0]; temp_r31->unk4 = 3; @@ -1502,51 +1578,58 @@ void fn_1_88E8(u8 arg0, f32 arg8, f32 arg9, f32 argA) { temp_r31->unk3C.z = argA; } -void fn_1_8924(u8 arg0, u8 arg1) { - M424DllBallStruct2* temp_r31; +void fn_1_8924(u8 arg0, u8 arg1) +{ + M424DllBallStruct2 *temp_r31; temp_r31 = &lbl_1_bss_60[arg0]; temp_r31->unk4 = arg1; } -u8 fn_1_8950(u8 arg0) { - M424DllBallStruct2* temp_r31; +u8 fn_1_8950(u8 arg0) +{ + M424DllBallStruct2 *temp_r31; temp_r31 = &lbl_1_bss_60[arg0]; return temp_r31->unk4; } -u8 fn_1_897C(u8 arg0) { - M424DllBallStruct2* temp_r31; +u8 fn_1_897C(u8 arg0) +{ + M424DllBallStruct2 *temp_r31; temp_r31 = &lbl_1_bss_60[arg0]; return temp_r31->unk5; } -u8 fn_1_89A8(u8 arg0) { - M424DllBallStruct2* temp_r31; +u8 fn_1_89A8(u8 arg0) +{ + M424DllBallStruct2 *temp_r31; temp_r31 = &lbl_1_bss_60[arg0]; return temp_r31->unk91; } -Vec* fn_1_89D4(u8 arg0) { - M424DllBallStruct2* temp_r31; +Vec *fn_1_89D4(u8 arg0) +{ + M424DllBallStruct2 *temp_r31; temp_r31 = &lbl_1_bss_60[arg0]; return &temp_r31->unk3C; } -Vec* fn_1_8A00(u8 arg0) { - M424DllBallStruct2* temp_r31; +Vec *fn_1_8A00(u8 arg0) +{ + M424DllBallStruct2 *temp_r31; temp_r31 = &lbl_1_bss_60[arg0]; return &temp_r31->unk6C; } -s32 fn_1_8A2C(void) { - M424DllBallStruct2* var_r31; - M424DllBallStruct* temp_r30; +s32 fn_1_8A2C(void) +{ + M424DllBallStruct2 *var_r31; + M424DllBallStruct *temp_r30; s32 var_r29; var_r31 = lbl_1_bss_60; @@ -1559,9 +1642,10 @@ s32 fn_1_8A2C(void) { return 1; } -void fn_1_8AA8(s32 arg0, s32 arg1) { +void fn_1_8AA8(s32 arg0, s32 arg1) +{ Vec spC; - M424DllBallStruct2* temp_r31; + M424DllBallStruct2 *temp_r31; s32 var_r27; s32 var_r29; s32 var_r30; @@ -1570,7 +1654,7 @@ void fn_1_8AA8(s32 arg0, s32 arg1) { for (var_r30 = 0; var_r30 < lbl_1_bss_58; var_r30++) { temp_r31 = &lbl_1_bss_60[var_r30]; if (temp_r31->unk4 != 6) { - PSVECAdd(&temp_r31->unk60, &temp_r31->unk6C, &temp_r31->unk3C); + VECAdd(&temp_r31->unk60, &temp_r31->unk6C, &temp_r31->unk3C); if ((temp_r31->unk4 < 3) && (fn_1_907C(&temp_r31->unk3C, &spC) != 0)) { temp_r31->unk3C = spC; } @@ -1583,7 +1667,7 @@ void fn_1_8AA8(s32 arg0, s32 arg1) { } } } - + for (var_r30 = 0, var_r29 = arg0; var_r30 < lbl_1_bss_58; var_r30++) { temp_r31 = &lbl_1_bss_60[var_r30]; var_r27 = 0; @@ -1594,7 +1678,8 @@ void fn_1_8AA8(s32 arg0, s32 arg1) { if ((var_r27 != 0) && (var_r29 > 0)) { var_r29 -= 1; var_r30 -= 1; - } else { + } + else { var_r29 = arg0; } } @@ -1602,27 +1687,28 @@ void fn_1_8AA8(s32 arg0, s32 arg1) { fn_1_C2E0(0); } -s32 fn_1_8C78(s32 arg0, s32 arg1) { +s32 fn_1_8C78(s32 arg0, s32 arg1) +{ Vec sp38; Vec sp2C; Vec sp20; Vec sp14; - Vec* sp10; + Vec *sp10; f32 temp_f31; f32 var_f30; s32 var_r31; - M424DllBallStruct2* temp_r30; - M424DllBallStruct2* temp_r29; - Vec* var_r28; - Vec* var_r27; - M424DllBallStruct* temp_r26; - M424DllBallStruct* temp_r25; + M424DllBallStruct2 *temp_r30; + M424DllBallStruct2 *temp_r29; + Vec *var_r28; + Vec *var_r27; + M424DllBallStruct *temp_r26; + M424DllBallStruct *temp_r25; temp_r30 = &lbl_1_bss_60[arg0]; temp_r26 = temp_r30->unk0->data; var_r28 = fn_1_89D4(arg0); sp38 = *var_r28; - + for (var_r31 = 0; var_r31 < lbl_1_bss_58; var_r31++) { if (var_r31 != arg0) { if (fn_1_8950(var_r31) < 3) { @@ -1630,23 +1716,24 @@ s32 fn_1_8C78(s32 arg0, s32 arg1) { temp_r25 = temp_r29->unk0->data; var_r27 = fn_1_89D4(var_r31); sp2C = *var_r27; - PSVECSubtract(&sp2C, &sp38, &sp20); - var_f30 = PSVECMag(&sp20); + VECSubtract(&sp2C, &sp38, &sp20); + var_f30 = VECMag(&sp20); if (var_f30 < 200.0f) { if (var_f30 > 0.0f) { temp_f31 = 1.0f / var_f30; sp20.x *= temp_f31; sp20.y *= temp_f31; sp20.z *= temp_f31; - } else { + } + else { sp20.x = 0.0f; sp20.y = 0.0f; sp20.z = 1.0f; } temp_f31 = 1.0f + (0.5f * (200.0f - var_f30)); if (temp_f31 > 0.0f) { - PSVECScale(&sp20, &sp20, temp_f31); - PSVECAdd(&sp2C, &sp20, &sp2C); + VECScale(&sp20, &sp20, temp_f31); + VECAdd(&sp2C, &sp20, &sp2C); *var_r27 = sp2C; if ((temp_r29->unk4 < 3) && (fn_1_907C(&sp2C, &sp14) != 0)) { sp2C = sp14; @@ -1657,8 +1744,8 @@ s32 fn_1_8C78(s32 arg0, s32 arg1) { } } if (temp_f31 > 0.0f) { - PSVECScale(&sp20, &sp20, -1.0f); - PSVECAdd(&sp38, &sp20, &sp38); + VECScale(&sp20, &sp20, -1.0f); + VECAdd(&sp38, &sp20, &sp38); *var_r28 = sp38; if ((temp_r30->unk4 < 3) && (fn_1_907C(&sp38, &sp14) != 0)) { sp38 = sp14; @@ -1679,7 +1766,8 @@ s32 fn_1_8C78(s32 arg0, s32 arg1) { return arg1; } -s32 fn_1_907C(Vec* arg0, Vec* arg1) { +s32 fn_1_907C(Vec *arg0, Vec *arg1) +{ Vec sp10; f32 temp_f29; f32 temp_f28; @@ -1695,7 +1783,8 @@ s32 fn_1_907C(Vec* arg0, Vec* arg1) { temp_f26 = 1.0f / var_f27; sp10.x *= temp_f26; sp10.z *= temp_f26; - } else { + } + else { sp10.x = 1.0f; sp10.z = 0.0f; } diff --git a/src/REL/m424Dll/claw.c b/src/REL/m424Dll/claw.c index bae108e8..b9472555 100644 --- a/src/REL/m424Dll/claw.c +++ b/src/REL/m424Dll/claw.c @@ -1,6 +1,5 @@ #include "REL/m424Dll.h" -#include "math.h" #include "ext_math.h" #include "game/audio.h" #include "game/chrman.h" @@ -8,6 +7,8 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/pad.h" +#include "math.h" + // STRUCT typedef struct _M424DllClawStruct { @@ -66,8 +67,8 @@ typedef struct _M424DllClawStruct3 { } M424DllClawStruct3; // sizeof 0x8 // BSS -Process* lbl_1_bss_6DC; -omObjData* lbl_1_bss_6D8; +Process *lbl_1_bss_6DC; +omObjData *lbl_1_bss_6D8; s32 lbl_1_bss_6D0[2]; s32 lbl_1_bss_6CC; s32 lbl_1_bss_6C8; @@ -178,7 +179,7 @@ void fn_1_94D0(omObjData *arg0) } var_r31->unk184 = -1; var_r31->unk30 = lbl_1_data_30C; - + for (var_r29 = 0; var_r29 < 0xC; var_r29++) { var_r31->unk3C[var_r29] = lbl_1_data_30C; var_r31->unkCC[var_r29] = lbl_1_data_30C; @@ -608,13 +609,13 @@ void fn_1_9A64(omObjData *arg0) fn_1_C878(arg0->model[1], "hook1", sp74, 0); fn_1_C878(arg0->model[2], "hook2", sp74, 1); fn_1_C878(arg0->model[3], "hook3", sp74, 1); - PSMTXCopy(sp74, sp44); + MTXCopy(sp74, sp44); temp_r31->unk30.x = sp74[0][3]; temp_r31->unk30.y = sp74[1][3]; temp_r31->unk30.z = sp74[2][3]; for (var_r29 = 0; var_r29 < 0xC; var_r29++) { - PSMTXCopy(sp44, sp74); + MTXCopy(sp44, sp74); fn_1_C878(arg0->model[4], lbl_1_data_21C[var_r29], sp74, 1); temp_r31->unkCC[var_r29] = temp_r31->unk3C[var_r29]; temp_r31->unk3C[var_r29].x = sp74[0][3]; @@ -625,14 +626,14 @@ void fn_1_9A64(omObjData *arg0) sp2C.x = 0.0f; sp2C.y = temp_r31->unk174.y; sp2C.z = 0.0f; - PSVECSubtract(&temp_r31->unk174, &sp2C, &sp20); - var_f31 = PSVECMag(&sp20); + VECSubtract(&temp_r31->unk174, &sp2C, &sp20); + var_f31 = VECMag(&sp20); if (var_f31 != 0.0f) { - PSVECNormalize(&sp20, &sp20); - PSVECScale(&sp20, &sp20, 0.9f * var_f31); - PSVECAdd(&sp2C, &sp20, &temp_r31->unk174); + VECNormalize(&sp20, &sp20); + VECScale(&sp20, &sp20, 0.9f * var_f31); + VECAdd(&sp2C, &sp20, &temp_r31->unk174); } - PSVECAdd(&temp_r31->unk30, &temp_r31->unk174, &sp38); + VECAdd(&temp_r31->unk30, &temp_r31->unk174, &sp38); fn_1_88E8(temp_r31->unk168, sp38.x, sp38.y, sp38.z); } temp_r31->unk164 = 1; @@ -911,7 +912,7 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3) var_r28 = 0; var_r24 = lbl_1_bss_6D8; temp_r31 = var_r24->data; - PSVECAdd(arg0, arg1, &sp24); + VECAdd(arg0, arg1, &sp24); spC = *arg1; *arg2 = *arg0; temp_f30 = 5.0f + arg8; @@ -923,10 +924,10 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3) for (var_r29 = 0; var_r29 < 0xC; var_r29++) { if (var_r28 != 0) { sp24 = *arg2; - PSVECSubtract(&sp24, arg0, &spC); + VECSubtract(&sp24, arg0, &spC); } - PSVECSubtract(&sp24, &temp_r31->unk3C[var_r29], &sp18); - var_f29 = PSVECMag(&sp18); + VECSubtract(&sp24, &temp_r31->unk3C[var_r29], &sp18); + var_f29 = VECMag(&sp18); if (var_f29 < temp_f30) { if (0.0f == var_f29) { var_f29 = temp_f30; @@ -939,9 +940,9 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3) temp_r31->unk15C = 1; } else { - PSVECNormalize(&sp18, &sp18); - PSVECScale(&sp18, &sp18, temp_f30); - PSVECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); + VECNormalize(&sp18, &sp18); + VECScale(&sp18, &sp18, temp_f30); + VECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); } var_r28 = 1; } @@ -951,43 +952,43 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3) for (var_r29 = 0; var_r29 < 0xC; var_r29++) { if (var_r28 != 0) { sp24 = *arg2; - PSVECSubtract(&sp24, arg0, &spC); + VECSubtract(&sp24, arg0, &spC); } var_r26 = 0; sp60 = temp_r31->unk3C[var_r29]; - PSVECAdd(&temp_r31->unkCC[var_r29], &spC, &sp54); - PSVECSubtract(&sp60, &sp54, &sp18); - PSVECSubtract(&sp24, &sp54, &sp48); + VECAdd(&temp_r31->unkCC[var_r29], &spC, &sp54); + VECSubtract(&sp60, &sp54, &sp18); + VECSubtract(&sp24, &sp54, &sp48); temp_f26 = (sp18.z * sp18.z) + ((sp18.x * sp18.x) + (sp18.y * sp18.y)); if (temp_f26 != 0.0f) { var_f24 = (sp18.x * sp48.x) + (sp18.y * sp48.y) + (sp18.z * sp48.z); temp_f27 = var_f24 / temp_f26; if (temp_f27 >= 0.0f) { if (temp_f27 <= 1.0f) { - PSVECScale(&sp18, &sp18, temp_f27); - PSVECAdd(&sp54, &sp18, &sp3C); - PSVECSubtract(&sp24, &sp3C, &sp30); - var_f29 = PSVECMag(&sp30); + VECScale(&sp18, &sp18, temp_f27); + VECAdd(&sp54, &sp18, &sp3C); + VECSubtract(&sp24, &sp3C, &sp30); + var_f29 = VECMag(&sp30); if (var_f29 == 0.0f) { - if (PSVECMag(&sp18) <= 0.0f) { + if (VECMag(&sp18) <= 0.0f) { sp18.x = sp18.y = 0.0f; sp18.z = 1.0f; } - PSVECNormalize(&sp18, &sp30); - PSVECScale(&sp30, &sp30, temp_f30); - PSVECAdd(&sp60, &sp30, arg2); + VECNormalize(&sp18, &sp30); + VECScale(&sp30, &sp30, temp_f30); + VECAdd(&sp60, &sp30, arg2); var_r28 = 1; var_r26 = 1; } else if (var_f29 < temp_f30) { - if (PSVECMag(&sp30) <= 0.0f) { + if (VECMag(&sp30) <= 0.0f) { sp30.x = sp30.y = 0.0f; sp30.z = 1.0f; } - PSVECNormalize(&sp30, &sp30); - PSVECScale(&sp30, &sp30, temp_f30); - PSVECAdd(&sp3C, &sp30, arg2); + VECNormalize(&sp30, &sp30); + VECScale(&sp30, &sp30, temp_f30); + VECAdd(&sp3C, &sp30, arg2); var_r28 = 1; var_r26 = 1; } @@ -995,31 +996,31 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3) } } if (var_r26 == 0) { - PSVECSubtract(&sp24, &sp60, &sp18); - var_f29 = PSVECMag(&sp18); + VECSubtract(&sp24, &sp60, &sp18); + var_f29 = VECMag(&sp18); if (var_f29 < temp_f30) { if (var_f29 <= 0.0f) { sp18.x = sp18.y = 0.0f; sp18.z = 1.0f; } - PSVECNormalize(&sp18, &sp18); - PSVECScale(&sp18, &sp18, temp_f30); - PSVECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); + VECNormalize(&sp18, &sp18); + VECScale(&sp18, &sp18, temp_f30); + VECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); var_r28 = 1; var_r26 = 1; } } if (var_r26 == 0) { - PSVECSubtract(&sp24, &sp54, &sp18); - var_f29 = PSVECMag(&sp18); + VECSubtract(&sp24, &sp54, &sp18); + var_f29 = VECMag(&sp18); if (var_f29 < temp_f30) { if (var_f29 <= 0.0f) { sp18.x = sp18.y = 0.0f; sp18.z = 1.0f; } - PSVECNormalize(&sp18, &sp18); - PSVECScale(&sp18, &sp18, temp_f30); - PSVECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); + VECNormalize(&sp18, &sp18); + VECScale(&sp18, &sp18, temp_f30); + VECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2); var_r28 = 1; var_r26 = 1; } @@ -1045,7 +1046,7 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3) if (var_r28 != 0) { if (--arg3 > 0) { sp24 = *arg2; - PSVECSubtract(&sp24, arg0, &spC); + VECSubtract(&sp24, arg0, &spC); if (fn_1_B9E0(arg0, &spC, arg8, &sp24, arg3) != 0) { *arg2 = sp24; } @@ -1077,8 +1078,8 @@ s32 fn_1_C210(Vec *arg0) sp1C.x = temp_r31->unk30.x; sp1C.y = -120.00001f + temp_r31->unk30.y; sp1C.z = temp_r31->unk30.z; - PSVECSubtract(arg0, &sp1C, &sp10); - if ((spC = PSVECMag(&sp10)) < 50.0f) { + VECSubtract(arg0, &sp1C, &sp10); + if ((spC = VECMag(&sp10)) < 50.0f) { var_r29 = 1; } } @@ -1118,7 +1119,7 @@ void fn_1_C2E0(s32 arg0) spC = fn_1_8A00(var_r30); sp28 = *temp_r28; sp4C = temp_r27->unk60; - PSVECSubtract(temp_r28, &sp4C, &sp40); + VECSubtract(temp_r28, &sp4C, &sp40); if (fn_1_B9E0(&sp4C, &sp40, 100.0f, &sp34, 0x10) != 0) { *temp_r28 = sp34; sp4C = sp34; @@ -1141,7 +1142,7 @@ void fn_1_C2E0(s32 arg0) if (fn_1_C210(&sp4C) != 0) { temp_r31->unk168 = var_r30; temp_r31->unk170 = fn_1_897C(var_r30); - PSVECSubtract(&sp4C, &temp_r31->unk30, &temp_r31->unk174); + VECSubtract(&sp4C, &temp_r31->unk30, &temp_r31->unk174); fn_1_88E8(temp_r31->unk168, sp4C.x, sp4C.y, sp4C.z); } } @@ -1174,8 +1175,8 @@ void fn_1_C604(s32 arg0, s32 arg1) var_r28 = &lbl_1_bss_60[var_r30]; var_r31 = fn_1_89D4(var_r30); sp24 = *var_r31; - PSVECSubtract(&sp24, &sp30, &sp18); - var_f30 = PSVECMag(&sp18); + VECSubtract(&sp24, &sp30, &sp18); + var_f30 = VECMag(&sp18); if (var_f30 < 200.0f) { if (var_f30 > 0.0f) { temp_f31 = 1.0f / var_f30; @@ -1228,11 +1229,11 @@ s32 fn_1_C878(s16 arg0, const char *arg1, Mtx arg2, s32 arg3) lbl_1_bss_6C4 = 0; } mtxRot(sp14, temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z); - PSMTXScale(sp44, temp_r31->scale.x, temp_r31->scale.y, temp_r31->scale.z); - PSMTXConcat(sp14, sp44, sp44); + MTXScale(sp44, temp_r31->scale.x, temp_r31->scale.y, temp_r31->scale.z); + MTXConcat(sp14, sp44, sp44); mtxTransCat(sp44, temp_r31->pos.x, temp_r31->pos.y, temp_r31->pos.z); if (arg3 != 0) { - PSMTXConcat(arg2, sp44, sp44); + MTXConcat(arg2, sp44, sp44); } fn_1_C99C(temp_r30->root, sp44, arg1, arg2); return lbl_1_bss_6C8; @@ -1263,21 +1264,21 @@ void fn_1_C99C(HsfObject *arg0, Mtx arg1, const char *arg2, Mtx arg3) var_r31 = &arg0->data.base; } if ((var_r31->scale.x <= 0.0f) && (var_r31->scale.y <= 0.0f) && (var_r31->scale.z <= 0.0f)) { - PSMTXCopy(arg1, spF8); + MTXCopy(arg1, spF8); OSReport("OBJ MTX CHECK ERROR %s \n", arg0->name); } else { mtxRot(spC8, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - PSMTXScale(spF8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); - PSMTXConcat(spC8, spF8, spF8); + MTXScale(spF8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(spC8, spF8, spF8); mtxTransCat(spF8, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); - PSMTXConcat(arg1, spF8, spF8); + MTXConcat(arg1, spF8, spF8); } if (lbl_1_bss_6C0 != 0) { OSReport("%s \n", arg0->name); } if (strcmp(arg2, arg0->name) == 0) { - PSMTXCopy(spF8, arg3); + MTXCopy(spF8, arg3); lbl_1_bss_6C8 = 1; } for (var_r25 = 0; var_r25 < arg0->data.childrenCount; var_r25++) { @@ -1290,21 +1291,21 @@ void fn_1_C99C(HsfObject *arg0, Mtx arg1, const char *arg2, Mtx arg3) var_r30 = &temp_r28->data.base; } if ((var_r30->scale.x <= 0.0f) && (var_r30->scale.y <= 0.0f) && (var_r30->scale.z <= 0.0f)) { - PSMTXCopy(spF8, sp68); + MTXCopy(spF8, sp68); OSReport("OBJ MTX CHECK ERROR %s \n", temp_r28->name); } else { mtxRot(sp98, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); - PSMTXScale(sp68, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); - PSMTXConcat(sp98, sp68, sp68); + MTXScale(sp68, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); + MTXConcat(sp98, sp68, sp68); mtxTransCat(sp68, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); - PSMTXConcat(spF8, sp68, sp68); + MTXConcat(spF8, sp68, sp68); } if (lbl_1_bss_6C0 != 0) { OSReport("%s \n", temp_r28->name); } if (strcmp(arg2, temp_r28->name) == 0) { - PSMTXCopy(sp68, arg3); + MTXCopy(sp68, arg3); lbl_1_bss_6C8 = 1; } for (var_r24 = 0; var_r24 < temp_r28->data.childrenCount; var_r24++) { @@ -1317,21 +1318,21 @@ void fn_1_C99C(HsfObject *arg0, Mtx arg1, const char *arg2, Mtx arg3) var_r29 = &temp_r27->data.base; } if ((var_r29->scale.x <= 0.0f) && (var_r29->scale.y <= 0.0f) && (var_r29->scale.z <= 0.0f)) { - PSMTXCopy(sp68, sp8); + MTXCopy(sp68, sp8); OSReport("OBJ MTX CHECK ERROR %s \n", temp_r27->name); } else { mtxRot(sp38, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z); - PSMTXScale(sp8, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z); - PSMTXConcat(sp38, sp8, sp8); + MTXScale(sp8, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z); + MTXConcat(sp38, sp8, sp8); mtxTransCat(sp8, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); - PSMTXConcat(sp68, sp8, sp8); + MTXConcat(sp68, sp8, sp8); } if (lbl_1_bss_6C0 != 0) { OSReport("%s \n", temp_r27->name); } if (strcmp(arg2, temp_r27->name) == 0) { - PSMTXCopy(sp8, arg3); + MTXCopy(sp8, arg3); lbl_1_bss_6C8 = 1; } for (var_r23 = 0; var_r23 < temp_r27->data.childrenCount; var_r23++) { diff --git a/src/REL/m424Dll/map.c b/src/REL/m424Dll/map.c index 7215c532..4536b396 100644 --- a/src/REL/m424Dll/map.c +++ b/src/REL/m424Dll/map.c @@ -1,9 +1,10 @@ #include "REL/m424Dll.h" -#include "math.h" #include "game/audio.h" #include "game/hsfman.h" #include "game/hsfmotion.h" +#include "math.h" + // STRUCT typedef struct _M424DllMapStruct { @@ -20,8 +21,8 @@ typedef struct _M424DllMapStruct { } M424DllMapStruct; // sizeof 0x54 // BSS -Process* lbl_1_bss_54; -omObjData* lbl_1_bss_50; +Process *lbl_1_bss_54; +omObjData *lbl_1_bss_50; // DATA Vec lbl_1_data_E0 = { 0.0f, 3000.0f, 1.0f }; @@ -29,12 +30,13 @@ Vec lbl_1_data_EC = { 0.0f, 1.0f, 0.0f }; Vec lbl_1_data_F8 = { 0.0f, 0.0f, 0.0f }; // PROTO -void fn_1_1BB8(omObjData*); -void fn_1_1E1C(omObjData*); -void fn_1_2130(omObjData*); +void fn_1_1BB8(omObjData *); +void fn_1_1E1C(omObjData *); +void fn_1_2130(omObjData *); void fn_1_2438(f32); -omObjData* fn_1_1AB8(Process* arg0) { +omObjData *fn_1_1AB8(Process *arg0) +{ lbl_1_bss_54 = arg0; lbl_1_bss_50 = omAddObjEx(arg0, 0x7F, 6, 0, -1, fn_1_1BB8); lbl_1_bss_50->data = NULL; @@ -44,12 +46,14 @@ omObjData* fn_1_1AB8(Process* arg0) { return lbl_1_bss_50; } -void fn_1_1B8C(void) { +void fn_1_1B8C(void) +{ fn_1_2130(lbl_1_bss_50); } -void fn_1_1BB8(omObjData* arg0) { - M424DllMapStruct* var_r30; +void fn_1_1BB8(omObjData *arg0) +{ + M424DllMapStruct *var_r30; var_r30 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, 0x10000000); memset(var_r30, 0, 0x54); @@ -82,9 +86,10 @@ void fn_1_1BB8(omObjData* arg0) { arg0->func = fn_1_1E1C; } -void fn_1_1E1C(omObjData* arg0) { +void fn_1_1E1C(omObjData *arg0) +{ f32 temp_f31; - M424DllMapStruct* temp_r31; + M424DllMapStruct *temp_r31; temp_r31 = arg0->data; if (temp_r31->unk40 > 0) { @@ -108,8 +113,9 @@ void fn_1_1E1C(omObjData* arg0) { if (temp_r31->unk0 > 0.04f) { temp_r31->unk0 = 0.04f; } - if (temp_r31->unk38 != -1) break; - + if (temp_r31->unk38 != -1) + break; + temp_r31->unk38 = HuAudFXPlay(0x626); break; default: @@ -120,8 +126,8 @@ void fn_1_1E1C(omObjData* arg0) { } temp_f31 = temp_r31->unk0 / 0.04f; if (temp_r31->unk38 != -1) { - HuAudFXVolSet(temp_r31->unk38, (s16) (-8191.0f * (1.0f - temp_f31))); - HuAudFXPitchSet(temp_r31->unk38, (s16) (127.0f * temp_f31)); + HuAudFXVolSet(temp_r31->unk38, (s16)(-8191.0f * (1.0f - temp_f31))); + HuAudFXPitchSet(temp_r31->unk38, (s16)(127.0f * temp_f31)); if (temp_f31 <= 0.0f) { HuAudFXStop(temp_r31->unk38); temp_r31->unk38 = -1; @@ -130,16 +136,18 @@ void fn_1_1E1C(omObjData* arg0) { } break; } - + if (temp_r31->unk48 != 0) { if (temp_r31->unk4C != 0) { temp_r31->unk4C = (temp_r31->unk4C - 1); - } else { + } + else { temp_r31->unk48 = (temp_r31->unk48 - 1); if (temp_r31->unk48 != 0) { Hu3DModelAttrReset(arg0->model[4], 1); Hu3DModelAttrSet(arg0->model[5], 1); - } else { + } + else { Hu3DModelAttrSet(arg0->model[4], 1); Hu3DModelAttrReset(arg0->model[5], 1); if (temp_r31->unk50 != -1) { @@ -150,16 +158,18 @@ void fn_1_1E1C(omObjData* arg0) { } } temp_r31->unk4 = (20.0f * temp_r31->unk0); - PSMTXRotRad(temp_r31->unk8, 0x59, MTXDegToRad(temp_r31->unk4)); + MTXRotRad(temp_r31->unk8, 0x59, MTXDegToRad(temp_r31->unk4)); Hu3DMotionSpeedSet(arg0->model[1], temp_r31->unk0); } -void fn_1_2130(omObjData* arg0) { +void fn_1_2130(omObjData *arg0) +{ arg0->func = NULL; } -f32 fn_1_213C(void) { - M424DllMapStruct* var_r31; +f32 fn_1_213C(void) +{ + M424DllMapStruct *var_r31; if (!lbl_1_bss_50) { return 0.0f; } @@ -170,17 +180,19 @@ f32 fn_1_213C(void) { return var_r31->unk4; } -void fn_1_21B0(Mtx arg0) { - M424DllMapStruct* var_r31; +void fn_1_21B0(Mtx arg0) +{ + M424DllMapStruct *var_r31; if (lbl_1_bss_50 && lbl_1_bss_50->data) { var_r31 = lbl_1_bss_50->data; - PSMTXCopy(var_r31->unk8, *(Mtx*)&arg0); + MTXCopy(var_r31->unk8, *(Mtx *)&arg0); } } -void fn_1_2220(Vec* arg0, Vec* arg1) { +void fn_1_2220(Vec *arg0, Vec *arg1) +{ Vec spC; - M424DllMapStruct* temp_r30; + M424DllMapStruct *temp_r30; if (lbl_1_bss_50 && lbl_1_bss_50->data) { temp_r30 = lbl_1_bss_50->data; @@ -188,23 +200,25 @@ void fn_1_2220(Vec* arg0, Vec* arg1) { spC.x = (temp_r30->unk8[0][0] * arg0->x) + (temp_r30->unk8[0][2] * arg0->z); spC.z = (temp_r30->unk8[2][0] * arg0->x) + (temp_r30->unk8[2][2] * arg0->z); spC.y = arg0->y; - } else { + } + else { spC = *arg0; } - PSVECSubtract(&spC, arg0, &spC); + VECSubtract(&spC, arg0, &spC); *arg1 = spC; } } -void fn_1_2438(f32 arg0) { - M424DllMapStruct* spC; - HsfAttribute* var_r31; - ModelData* temp_r30; - HsfData* temp_r29; +void fn_1_2438(f32 arg0) +{ + M424DllMapStruct *spC; + HsfAttribute *var_r31; + ModelData *temp_r30; + HsfData *temp_r29; s32 var_r28; - HsfBitmap* var_r27; - omObjData* var_r26; - + HsfBitmap *var_r27; + omObjData *var_r26; + if (lbl_1_bss_50 && lbl_1_bss_50->data) { var_r26 = lbl_1_bss_50; spC = lbl_1_bss_50->data; @@ -213,7 +227,8 @@ void fn_1_2438(f32 arg0) { var_r31 = temp_r30->hsfData->attribute; for (var_r28 = 0; var_r28 < temp_r29->attributeCnt; var_r28++, var_r31++) { var_r27 = var_r31->bitmap; - if (strcmp("cr_dk2", var_r27->name) == 0) break; + if (strcmp("cr_dk2", var_r27->name) == 0) + break; } if (var_r28 < temp_r29->attributeCnt) { var_r31->unk30 += arg0; @@ -221,9 +236,10 @@ void fn_1_2438(f32 arg0) { } } -void fn_1_252C(f32 arg8, s32 arg0) { - omObjData* sp10; - M424DllMapStruct* temp_r31; +void fn_1_252C(f32 arg8, s32 arg0) +{ + omObjData *sp10; + M424DllMapStruct *temp_r31; if (lbl_1_bss_50 && lbl_1_bss_50->data) { sp10 = lbl_1_bss_50; @@ -234,9 +250,10 @@ void fn_1_252C(f32 arg8, s32 arg0) { } } -f32 fn_1_25C0(void) { - omObjData* sp8; - M424DllMapStruct* temp_r31; +f32 fn_1_25C0(void) +{ + omObjData *sp8; + M424DllMapStruct *temp_r31; if (!lbl_1_bss_50) { return 0.0f; @@ -252,9 +269,10 @@ f32 fn_1_25C0(void) { return 0.0f; } -void fn_1_2670(s32 arg0, s32 arg1) { - omObjData* temp_r30; - M424DllMapStruct* temp_r31; +void fn_1_2670(s32 arg0, s32 arg1) +{ + omObjData *temp_r30; + M424DllMapStruct *temp_r31; if (lbl_1_bss_50 && lbl_1_bss_50->data) { temp_r30 = lbl_1_bss_50; @@ -267,17 +285,9 @@ void fn_1_2670(s32 arg0, s32 arg1) { } // UNUSED (guessing types) -M424DllMainStruct lbl_1_data_10C = { - { 0.0f, 0.0f, 5500.0f }, - { -3950.0f, 0.0f, -0.7f }, - 0.6f -}; +M424DllMainStruct lbl_1_data_10C = { { 0.0f, 0.0f, 5500.0f }, { -3950.0f, 0.0f, -0.7f }, 0.6f }; GXColor lbl_1_data_128 = { 0xFF, 0xFF, 0xFF, 0xFF }; -M424DllMainStruct lbl_1_data_12C = { - { 0.0f, 5500.0f, -3950.0f }, - { 0.0f, 1.0f, 0.0f }, - 0.0f -}; +M424DllMainStruct lbl_1_data_12C = { { 0.0f, 5500.0f, -3950.0f }, { 0.0f, 1.0f, 0.0f }, 0.0f }; -s32 lbl_1_data_148[2] = {0}; +s32 lbl_1_data_148[2] = { 0 }; diff --git a/src/REL/m425Dll/main.c b/src/REL/m425Dll/main.c index 2c2d321c..b6762117 100644 --- a/src/REL/m425Dll/main.c +++ b/src/REL/m425Dll/main.c @@ -562,18 +562,18 @@ void fn_1_14CC(Mtx arg0, float arg8, float arg9, float argA) Mtx sp38; Mtx sp8; if (argA != 0.0f) { - PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + MTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); } else { - PSMTXIdentity(arg0); + MTXIdentity(arg0); } if (arg8 != 0.0f) { - PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); - PSMTXConcat(sp38, arg0, arg0); + MTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + MTXConcat(sp38, arg0, arg0); } if (arg9 != 0.0f) { - PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); - PSMTXConcat(sp8, arg0, arg0); + MTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + MTXConcat(sp8, arg0, arg0); } } @@ -1374,7 +1374,7 @@ void fn_1_5044(s16 sp8) var_r31->unk_2C[1].unk_04 = 0; var_r31->unk_2C[1].unk_48 = 0x80; for (var_r30 = 0; var_r30 < (var_r31->unk_28 * var_r31->unk_2A); var_r30++) { - PSMTXIdentity(var_r31->unk_2C[var_r30].unk_14); + MTXIdentity(var_r31->unk_2C[var_r30].unk_14); var_r31->unk_2C[var_r30].unk_08.x = var_r31->unk_2C[var_r30].unk_08.y = var_r31->unk_2C[var_r30].unk_08.z = 0.0f; } for (var_r30 = 0; var_r30 < var_r31->unk_28; var_r30++) { @@ -1503,8 +1503,8 @@ void fn_1_5C20(ModelData *var_r27, Mtx sp8) GXSetChanAmbColor(GX_COLOR0A0, var_r31->unk_20); GXSetChanMatColor(GX_COLOR0A0, var_r31->unk_24); GXLoadPosMtxImm(sp8, 0); - PSMTXInverse(sp8, sp5C); - PSMTXTranspose(sp5C, sp2C); + MTXInverse(sp8, sp5C); + MTXTranspose(sp5C, sp2C); GXLoadNrmMtxImm(sp2C, 0); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); GXSetZMode(1, GX_LEQUAL, 1); @@ -1512,7 +1512,7 @@ void fn_1_5C20(ModelData *var_r27, Mtx sp8) var_r28 = 0; spC = 0; for (var_r29 = GX_TEXMAP0; var_r29 < var_r31->unk_28; var_r29++) { - PSMTXRotRad(var_r31->unk_2C[var_r29].unk_14, 0x5A, 0.0f); + MTXRotRad(var_r31->unk_2C[var_r29].unk_14, 0x5A, 0.0f); mtxTransCat( var_r31->unk_2C[var_r29].unk_14, var_r31->unk_2C[var_r29].unk_08.x, var_r31->unk_2C[var_r29].unk_08.y, var_r31->unk_2C[var_r29].unk_08.z); switch (var_r31->unk_2C[var_r29].unk_04) { diff --git a/src/REL/m425Dll/thwomp.c b/src/REL/m425Dll/thwomp.c index a47e9bd9..3f02dce6 100644 --- a/src/REL/m425Dll/thwomp.c +++ b/src/REL/m425Dll/thwomp.c @@ -1665,7 +1665,7 @@ void fn_1_DE3C(M425DllUnkStruct4 *arg0, ModelData *model) sp8.x = arg0->unk_180[var_r26].x - arg0->unk_180[var_r29].x; sp8.y = arg0->unk_180[var_r26].y - arg0->unk_180[var_r29].y; sp8.z = arg0->unk_180[var_r26].z - arg0->unk_180[var_r29].z; - PSVECCrossProduct(&sp14, &sp8, &sp20); + VECCrossProduct(&sp14, &sp8, &sp20); sp20.x *= -1.0f; sp20.y *= -1.0f; sp20.z *= -1.0f; @@ -1685,7 +1685,7 @@ void fn_1_DE3C(M425DllUnkStruct4 *arg0, ModelData *model) } } for (var_r30 = 0; var_r30 < arg0->unk_110; var_r30++) { - PSVECNormalize(&arg0->unk_188[var_r30], &arg0->unk_188[var_r30]); + VECNormalize(&arg0->unk_188[var_r30], &arg0->unk_188[var_r30]); } } @@ -1803,7 +1803,7 @@ void fn_1_E210(s32 arg0) sp8.x = sind(var_r31->unk_E4) * cosd(var_r31->unk_E0); sp8.z = cosd(var_r31->unk_E4) * cosd(var_r31->unk_E0); sp8.y = sind(var_r31->unk_E0); - PSVECNormalize(&sp8, &sp8); + VECNormalize(&sp8, &sp8); var_r28 = &Hu3DLocalLight[var_r27->unk_38[0]]; var_r28->unk_1C.x = 1000.0f * sp8.x; var_r28->unk_1C.y = 1000.0f * sp8.y; @@ -2093,7 +2093,7 @@ void fn_1_101C4(ModelData *var_r29, Mtx var_r28) var_r31 = var_r29->unk_120; GXLoadPosMtxImm(var_r28, 0); - PSMTXInvXpose(var_r28, sp50); + MTXInvXpose(var_r28, sp50); GXLoadNrmMtxImm(sp50, 0); var_r27 = fn_1_115D4(var_r29, Hu3DCameraMtx, Hu3DCameraMtxXPose, 4.0f); if (omPauseChk() == 0) { @@ -2129,7 +2129,7 @@ void fn_1_101C4(ModelData *var_r29, Mtx var_r28) GXSetZCompLoc(0); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); if (HmfInverseMtxF3X3(var_r28, sp50) == 0) { - PSMTXIdentity(sp50); + MTXIdentity(sp50); } PSMTXReorder(sp50, sp20); GXClearVtxDesc(); @@ -2418,7 +2418,7 @@ void fn_1_112FC(void) var_r31->unk_04.y = var_r31->unk_10.y * var_r31->unk_1C; var_r31->unk_04.z = var_r31->unk_10.z * var_r31->unk_1C; var_r31->unk_1C *= 0.95f; - PSVECAdd(&var_r31->unk_30, &var_r31->unk_04, &var_r31->unk_30); + VECAdd(&var_r31->unk_30, &var_r31->unk_04, &var_r31->unk_30); if (++var_r31->unk_40 >= 0xF) { var_r31->unk_40 = 0; var_r31->unk_28 = 0.0f; @@ -2503,7 +2503,7 @@ void fn_1_116E4(ModelData *arg1, LightData *var_r31, s16 sp8, Mtx spC, Mtx sp10, break; case 1: GXInitLightAttn(&lbl_1_bss_688, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f); - PSVECScale(&var_r31->unk_28, &var_r31->unk_1C, -100000.0f); + VECScale(&var_r31->unk_28, &var_r31->unk_1C, -100000.0f); break; case 2: GXInitLightAttn(&lbl_1_bss_688, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); @@ -2511,8 +2511,8 @@ void fn_1_116E4(ModelData *arg1, LightData *var_r31, s16 sp8, Mtx spC, Mtx sp10, break; } if ((var_r31->unk_00 & 0x8000) != 0) { - PSMTXMultVec(spC, &var_r31->unk_28, &lbl_1_bss_67C); - PSMTXMultVec(sp10, &var_r31->unk_1C, &lbl_1_bss_670); + MTXMultVec(spC, &var_r31->unk_28, &lbl_1_bss_67C); + MTXMultVec(sp10, &var_r31->unk_1C, &lbl_1_bss_670); GXInitLightPos(&lbl_1_bss_688, lbl_1_bss_670.x, lbl_1_bss_670.y, lbl_1_bss_670.z); } else { @@ -2692,7 +2692,7 @@ void fn_1_11EE0(ModelData *var_r24, Mtx var_r21) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8); if (HmfInverseMtxF3X3(var_r21, sp128) == 0) { - PSMTXIdentity(sp128); + MTXIdentity(sp128); } PSMTXReorder(sp128, &sp8[0]); if (var_r31->unk_4C) { @@ -2718,27 +2718,27 @@ void fn_1_11EE0(ModelData *var_r24, Mtx var_r21) if (!var_r29->unk_2C) { var_r28 = &sp98[0]; var_r27 = &sp38[0]; - PSVECScale(var_r27++, var_r28, var_r29->unk_28); - PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); - PSVECScale(var_r27++, var_r28, var_r29->unk_28); - PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); - PSVECScale(var_r27++, var_r28, var_r29->unk_28); - PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); - PSVECScale(var_r27++, var_r28, var_r29->unk_28); - PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); + VECScale(var_r27++, var_r28, var_r29->unk_28); + VECAdd(var_r28++, &var_r29->unk_30, var_r30++); } else { - PSVECScale(lbl_1_data_19C, &sp98[0], var_r29->unk_28); - PSVECScale(&lbl_1_data_19C[1], &sp98[1], var_r29->unk_28); - PSVECScale(&lbl_1_data_19C[2], &sp98[2], var_r29->unk_28); - PSVECScale(&lbl_1_data_19C[3], &sp98[3], var_r29->unk_28); - PSMTXRotRad(spC8, 0x5A, var_r29->unk_2C); - PSMTXConcat(sp128, spC8, spF8); - PSMTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); - PSVECAdd(&sp68[0], &var_r29->unk_30, var_r30++); - PSVECAdd(&sp68[1], &var_r29->unk_30, var_r30++); - PSVECAdd(&sp68[2], &var_r29->unk_30, var_r30++); - PSVECAdd(&sp68[3], &var_r29->unk_30, var_r30++); + VECScale(lbl_1_data_19C, &sp98[0], var_r29->unk_28); + VECScale(&lbl_1_data_19C[1], &sp98[1], var_r29->unk_28); + VECScale(&lbl_1_data_19C[2], &sp98[2], var_r29->unk_28); + VECScale(&lbl_1_data_19C[3], &sp98[3], var_r29->unk_28); + MTXRotRad(spC8, 0x5A, var_r29->unk_2C); + MTXConcat(sp128, spC8, spF8); + MTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); + VECAdd(&sp68[0], &var_r29->unk_30, var_r30++); + VECAdd(&sp68[1], &var_r29->unk_30, var_r30++); + VECAdd(&sp68[2], &var_r29->unk_30, var_r30++); + VECAdd(&sp68[3], &var_r29->unk_30, var_r30++); } var_r20 = var_r29->unk_40 & 3; var_r19 = (var_r29->unk_40 >> 2) & 3; diff --git a/src/REL/m426Dll/main.c b/src/REL/m426Dll/main.c index e91e3258..9a80a823 100644 --- a/src/REL/m426Dll/main.c +++ b/src/REL/m426Dll/main.c @@ -394,18 +394,18 @@ void fn_1_330(omObjData *object) if (!WipeStatGet()) { lbl_1_bss_54 = 1; lbl_1_bss_58 = 0; - lbl_1_bss_30 = 120; + lbl_1_bss_30 = 2 * REFRESH_RATE; } break; case 1: - if (++lbl_1_bss_58 >= 15.0f) { + if (++lbl_1_bss_58 >= REFRESH_RATE / 4.0f) { lbl_1_bss_54 = 2; lbl_1_bss_58 = 0; lbl_1_bss_38 = 1; } break; case 2: - var_f31 = 0.007246377f * lbl_1_bss_58; + var_f31 = (VERSION_NTSC ? 0.007246377f : 0.008695652f) * lbl_1_bss_58; var_f31 = sind(90.0f * var_f31); var_f31 *= var_f31; for (var_r31 = 0; var_r31 < 7; var_r31++) { @@ -418,7 +418,7 @@ void fn_1_330(omObjData *object) Center.y = sp10[4]; Center.z = sp10[5]; CZoom = sp10[6]; - if (++lbl_1_bss_58 >= 138.0f) { + if (++lbl_1_bss_58 >= (VERSION_NTSC ? 138.0f : 115.0f)) { CRot.x = lbl_1_data_4C[0][0]; CRot.y = lbl_1_data_4C[0][1]; CRot.z = lbl_1_data_4C[0][2]; @@ -431,7 +431,7 @@ void fn_1_330(omObjData *object) } break; case 3: - if (++lbl_1_bss_58 >= 30.0f) { + if (++lbl_1_bss_58 >= (REFRESH_RATE / 2.0f)) { lbl_1_bss_50 = MGSeqCreate(3, 0); lbl_1_bss_54 = 4; lbl_1_bss_58 = 0; @@ -452,9 +452,9 @@ void fn_1_330(omObjData *object) lbl_1_bss_40 = 1; lbl_1_bss_3C = 1; lbl_1_bss_54 = 5; - lbl_1_bss_58 = 1800; + lbl_1_bss_58 = 30 * REFRESH_RATE; fn_1_7328(1); - lbl_1_bss_4C = MGSeqCreate(1, lbl_1_bss_58 / 60, -1, -1); + lbl_1_bss_4C = MGSeqCreate(1, lbl_1_bss_58 / REFRESH_RATE, -1, -1); } break; case 5: @@ -463,10 +463,10 @@ void fn_1_330(omObjData *object) var_r25 = 0; } MGSeqParamSet(lbl_1_bss_4C, 1, var_r25); - if (lbl_1_bss_58 == 600) { + if (lbl_1_bss_58 == 10 * REFRESH_RATE) { lbl_1_bss_34 = 3.0f; } - else if (lbl_1_bss_58 == 1200) { + else if (lbl_1_bss_58 == 20 * REFRESH_RATE) { lbl_1_bss_34 = 2.5f; } if (--lbl_1_bss_58 < -1 || lbl_1_bss_1C[0] <= 0 || lbl_1_bss_1C[1] <= 0) { @@ -529,7 +529,7 @@ void fn_1_330(omObjData *object) } break; case 7: - if (++lbl_1_bss_58 > 210.0f) { + if (++lbl_1_bss_58 > 3.5f * REFRESH_RATE) { lbl_1_bss_50 = -1; lbl_1_bss_54 = 8; lbl_1_bss_58 = 0; @@ -946,8 +946,8 @@ void fn_1_16F8(omObjData *object) } else if (var_f27 != 0.0f) { var_f27 = 1.0f / var_f27; - object->trans.x += var_f28 * (var_f30 * var_f27); - object->trans.z += var_f28 * (var_f31 * var_f27); + object->trans.x += var_f28 * (var_f30 * var_f27) * (60.0f / REFRESH_RATE); + object->trans.z += var_f28 * (var_f31 * var_f27) * (60.0f / REFRESH_RATE); } } var_f30 = object->trans.x - var_f22; @@ -1041,16 +1041,16 @@ void fn_1_16F8(omObjData *object) break; case 6: var_r31->unk_2C++; - if (var_r31->unk_2C < 60.0f) { + if (var_r31->unk_2C < 1.0f * REFRESH_RATE) { if (lbl_1_bss_40 == 0) { - var_r31->unk_2C = 59; + var_r31->unk_2C = REFRESH_RATE - 1; } } - else if (var_r31->unk_2C == 60.0f) { + else if (var_r31->unk_2C == 1.0f * REFRESH_RATE) { var_r31->unk_28 = 7; CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, HU3D_MOTATTR_NONE); } - else if (var_r31->unk_2C >= 90.0f) { + else if (var_r31->unk_2C >= (VERSION_NTSC ? 90.0f : 80.0f)) { var_r31->unk_24 = 7; var_r31->unk_28 = 8; CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); @@ -1240,7 +1240,7 @@ void fn_1_2B74(Vec *arg0) var_r31->unk_2C = 0; var_r31->unk_24 = 3; var_r31->unk_AC = 32; - var_r31->unk_30 = 90; + var_r31->unk_30 = 1.5f * REFRESH_RATE; var_r31->unk_90 = var_r31->unk_94 = -1; if (!var_r29->unk_00) { var_r31->unk_9C.x = -1.0f; @@ -1370,7 +1370,7 @@ void fn_1_2F5C(omObjData *object, float *arg1, float *arg2, s32 *arg3) break; case 1: if (var_r31->unk_B0 != -1) { - if (++var_r31->unk_B4 < 120.0f) { + if (++var_r31->unk_B4 < 2.0f * REFRESH_RATE) { if (var_r31->unk_90 == var_r31->unk_B0) { var_r31->unk_B0 = -1; return; @@ -1389,12 +1389,12 @@ void fn_1_2F5C(omObjData *object, float *arg1, float *arg2, s32 *arg3) return; case 2: if (var_r31->unk_B0 != -1) { - if (++var_r31->unk_B4 < 120.0f && var_r31->unk_B0 != var_r28->unk_B0) { + if (++var_r31->unk_B4 < 2.0f * REFRESH_RATE && var_r31->unk_B0 != var_r28->unk_B0) { if (var_r31->unk_90 == var_r31->unk_B0) { *arg3 |= 256; var_r31->unk_B0 = -1; var_r31->unk_B4 = 0; - var_r31->unk_B8 = (50.0f + (frand() % 15)) - (var_r31->unk_18 * 10); + var_r31->unk_B8 = ((VERSION_NTSC ? 50.0f : 45.0f) + (frand() % 15)) - (var_r31->unk_18 * 10); var_r31->unk_BC = 0; return; } @@ -1585,7 +1585,7 @@ void fn_1_3714(omObjData *object) sp8.x = 0.0f; sp8.y = 500.0f; sp8.z = var_r31->unk_38; - var_r25 = 0.3f * (var_r31->unk_00 * 60); + var_r25 = 0.3f * (var_r31->unk_00 * REFRESH_RATE); var_r31->unk_34 = fn_1_5C6C(var_r31->unk_00, var_r25, &sp8); } lbl_1_bss_24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M426, 1), MEMORY_DEFAULT_NUM)); @@ -1975,7 +1975,7 @@ void fn_1_5134(omObjData *object) } break; case 1: - if ((var_r31->unk_40 -= 50.0f) <= 50.0f) { + if ((var_r31->unk_40 -= (VERSION_NTSC ? 50.0f : 60.000004f)) <= 50.0f) { if (lbl_1_bss_54 <= 4) { fn_1_3654(0); fn_1_3654(1); @@ -2005,8 +2005,8 @@ void fn_1_5134(omObjData *object) } if (fabs(fn_1_75F4(var_f31, var_r31->unk_48)) < 5.0) { var_r31->unk_48 = var_f31; - if ((var_r31->unk_34 += 0.1f) > lbl_1_bss_34) { - var_r31->unk_34 = lbl_1_bss_34; + if ((var_r31->unk_34 += 0.1f) > lbl_1_bss_34 * (60.0f / REFRESH_RATE)) { + var_r31->unk_34 = lbl_1_bss_34 * (60.0f / REFRESH_RATE); } } else { @@ -2054,7 +2054,7 @@ void fn_1_5134(omObjData *object) if (lbl_1_bss_1C[1] < 0) { lbl_1_bss_1C[1] = 0; } - lbl_1_bss_30 = 60; + lbl_1_bss_30 = REFRESH_RATE; lbl_1_bss_28 = 1.0f; var_r31->unk_30 = 0; var_r31->unk_28 = 4; @@ -2476,7 +2476,7 @@ void fn_1_6704(omObjData *object) if (var_r31->unk_04) { Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_0C, var_r31->unk_10, var_r31->unk_14); Hu3DModelRotSet(var_r31->unk_00, CRot.x, CRot.y, CRot.z); - if (++var_r31->unk_08 >= 120.0f) { + if (++var_r31->unk_08 >= 2.0f * REFRESH_RATE) { Hu3DModelAttrSet(var_r31->unk_00, HU3D_ATTR_DISPOFF); var_r31->unk_04 = 0; var_r31->unk_08 = 0; @@ -3043,7 +3043,7 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1) GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8); if (!HmfInverseMtxF3X3(arg1, sp128)) { - PSMTXIdentity(sp128); + MTXIdentity(sp128); } PSMTXReorder(sp128, sp8); if (var_r31->unk_4C) { @@ -3083,9 +3083,9 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1) VECScale(&lbl_1_data_22C[1], &sp98[1], var_r29->unk_28); VECScale(&lbl_1_data_22C[2], &sp98[2], var_r29->unk_28); VECScale(&lbl_1_data_22C[3], &sp98[3], var_r29->unk_28); - PSMTXRotRad(spC8, 90, var_r29->unk_2C); - PSMTXConcat(sp128, spC8, &spF8[0]); - PSMTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); + MTXRotRad(spC8, 90, var_r29->unk_2C); + MTXConcat(sp128, spC8, &spF8[0]); + MTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); VECAdd(&sp68[0], &var_r29->unk_30, var_r30++); VECAdd(&sp68[1], &var_r29->unk_30, var_r30++); VECAdd(&sp68[2], &var_r29->unk_30, var_r30++); @@ -3222,7 +3222,7 @@ void fn_1_8E48(ModelData *arg0, Mtx arg1) GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); - PSMTXIdentity(sp50); + MTXIdentity(sp50); GXLoadPosMtxImm(sp50, 0); GXSetZMode(GX_FALSE, GX_ALWAYS, GX_TRUE); GXSetNumChans(1); diff --git a/src/REL/m428Dll/main.c b/src/REL/m428Dll/main.c index cd2f3688..1ee62c82 100644 --- a/src/REL/m428Dll/main.c +++ b/src/REL/m428Dll/main.c @@ -617,7 +617,7 @@ void fn_1_261C(omObjData *object) } } -u32 fn_1_26E0(void) +s32 fn_1_26E0(void) { return lbl_1_bss_7C; } @@ -786,7 +786,7 @@ void fn_1_2E2C(s32 var_r26) GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetNumChans(0); - PSMTXIdentity(sp8C); + MTXIdentity(sp8C); GXLoadPosMtxImm(sp8C, 0); GXSetZMode(0, GX_ALWAYS, GX_TRUE); GXSetNumChans(1); @@ -820,7 +820,7 @@ void fn_1_2E2C(s32 var_r26) var_r25 = Hu3DShadowData.unk_02 * Hu3DShadowData.unk_02; } C_MTXLookAt(Hu3DCameraMtx, &Hu3DShadowData.unk_14, &Hu3DShadowData.unk_2C, &Hu3DShadowData.unk_20); - PSMTXCopy(Hu3DCameraMtx, Hu3DShadowData.unk_38); + MTXCopy(Hu3DCameraMtx, Hu3DShadowData.unk_38); shadowModelDrawF = 1; GXInvalidateTexAll(); GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, BGColor); @@ -870,11 +870,11 @@ void fn_1_2E2C(s32 var_r26) Hu3DModelShadowSet(var_r29->unk_00[var_r30]); Hu3DShadowData.unk_00 = (s8)(var_r29->unk_20[var_r30] * var_r24); mtxRot(sp5C, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - PSMTXScale(spBC, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); - PSMTXConcat(sp5C, spBC, spBC); + MTXScale(spBC, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(sp5C, spBC, spBC); mtxTransCat(spBC, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); - PSMTXConcat(Hu3DCameraMtx, spBC, sp8C); - PSMTXConcat(sp8C, var_r31->unk_F0, sp8C); + MTXConcat(Hu3DCameraMtx, spBC, sp8C); + MTXConcat(sp8C, var_r31->unk_F0, sp8C); Hu3DDraw(var_r31, sp8C, &var_r31->scale); Hu3DModelShadowReset(var_r29->unk_00[var_r30]); } @@ -908,7 +908,7 @@ void fn_1_2E2C(s32 var_r26) GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetNumChans(0); - PSMTXIdentity(sp8C); + MTXIdentity(sp8C); GXLoadPosMtxImm(sp8C, 0); GXSetZMode(0, GX_ALWAYS, 1); GXSetNumChans(1); @@ -966,7 +966,7 @@ void fn_1_3B64(void) GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetNumTexGens(1); GXSetNumTevStages(1); - PSMTXIdentity(sp34); + MTXIdentity(sp34); GXLoadPosMtxImm(sp34, 0); GXSetZMode(0, GX_LEQUAL, GX_FALSE); GXBegin(GX_QUADS, GX_VTXFMT0, 4); diff --git a/src/REL/m428Dll/map.c b/src/REL/m428Dll/map.c index cadec1d3..ce4c7764 100644 --- a/src/REL/m428Dll/map.c +++ b/src/REL/m428Dll/map.c @@ -402,8 +402,8 @@ u8 fn_1_5370(M433DllUnkStruct2 *arg0, Vec *arg1) for (var_r27 = 0; var_r27 < arg0->unk_08; var_r27++, var_r31++) { sp8 = *arg1; sp8.y = 0.0f; - PSVECSubtract(&sp8, &var_r31->unk_00, &sp20); - var_f30 = PSVECMag(&sp20); + VECSubtract(&sp8, &var_r31->unk_00, &sp20); + var_f30 = VECMag(&sp20); if (!(var_f30 > (400.0f + var_r31->unk_20)) && (var_r31->unk_2C != 0.0f)) { var_r24 = 0; for (var_r28 = 0; var_r28 < 3; var_r28++) { @@ -413,8 +413,8 @@ u8 fn_1_5370(M433DllUnkStruct2 *arg0, Vec *arg1) } var_r23 = &arg0->unk_00[var_r31->unk_0C[var_r28]]; var_r25 = &arg0->unk_00[var_r31->unk_0C[var_r26]]; - PSVECSubtract(var_r25, var_r23, &sp20); - PSVECSubtract(arg1, var_r25, &sp14); + VECSubtract(var_r25, var_r23, &sp20); + VECSubtract(arg1, var_r25, &sp14); var_f31 = (sp20.x * sp14.y) - (sp20.y * sp14.x); if ((var_f31 * var_r31->unk_2C) < 0.0) { var_r24 = 1; @@ -484,15 +484,15 @@ void fn_1_5684(HsfData *arg0, HsfObject *arg1) var_r31->unk_00.z /= 3.0f; var_r31->unk_20 = 0.0f; for (var_r28 = 0; var_r28 < 3; var_r28++) { - PSVECSubtract(&((Vec *)var_r29->data)[var_r30->indices[var_r28][0]], &var_r31->unk_00, &sp18); - var_f31 = PSVECMag(&sp18); + VECSubtract(&((Vec *)var_r29->data)[var_r30->indices[var_r28][0]], &var_r31->unk_00, &sp18); + var_f31 = VECMag(&sp18); if (var_f31 > var_r31->unk_20) { var_r31->unk_20 = var_f31; } } var_r31->unk_00.y = 0.0f; - PSVECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &sp18); - PSVECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[2][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &spC); + VECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &sp18); + VECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[2][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &spC); var_r31->unk_24 = (sp18.y * spC.z) - (sp18.z * spC.y); var_r31->unk_28 = (sp18.z * spC.x) - (sp18.x * spC.z); var_r31->unk_2C = (sp18.x * spC.y) - (sp18.y * spC.x); @@ -514,14 +514,14 @@ void fn_1_5684(HsfData *arg0, HsfObject *arg1) var_r31->unk_00.z *= 0.25f; var_r31->unk_20 = 0.0f; for (var_r28 = 0; var_r28 < 4; var_r28++) { - PSVECSubtract(&((Vec *)var_r29->data)[var_r30->indices[var_r28][0]], &var_r31->unk_00, &sp18); - var_f31 = PSVECMag(&sp18); + VECSubtract(&((Vec *)var_r29->data)[var_r30->indices[var_r28][0]], &var_r31->unk_00, &sp18); + var_f31 = VECMag(&sp18); if (var_f31 > var_r31->unk_20) { var_r31->unk_20 = var_f31; } } - PSVECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &sp18); - PSVECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[2][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &spC); + VECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &sp18); + VECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[2][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &spC); var_r31->unk_24 = (sp18.y * spC.z) - (sp18.z * spC.y); var_r31->unk_28 = (sp18.z * spC.x) - (sp18.x * spC.z); var_r31->unk_2C = (sp18.x * spC.y) - (sp18.y * spC.x); @@ -719,12 +719,12 @@ void fn_1_6280(ModelData *arg1, ParticleData *particle, Mtx matrix) } break; } - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); if (particle->unk_04.x != 0.0f) { sp8 = particle->unk_04; sp8.x *= var_r31->unk2C / 28.0f; sp8.y = (((u8)var_r31->unk2C & 1) != 0 ? 1.0f : -1.0f) * (sp8.x * (0.05f + (s32)(0.2f * (fn_1_7500() / 65536.0f)))); - PSVECAdd(&var_r31->unk34, &sp8, &var_r31->unk34); + VECAdd(&var_r31->unk34, &sp8, &var_r31->unk34); } } DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); @@ -810,7 +810,7 @@ void fn_1_7430(void) void fn_1_74B4(s16 arg0, Mtx arg1) { ModelData *var_r31 = &Hu3DData[arg0]; - PSMTXCopy(arg1, var_r31->unk_F0); + MTXCopy(arg1, var_r31->unk_F0); } u32 lbl_1_data_14C = 0x41C64E6D; @@ -884,18 +884,18 @@ void fn_1_77F8(Mtx arg0, float arg8, float arg9, float argA) Mtx sp8; if (argA != 0.0f) { - PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + MTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); } else { - PSMTXIdentity(arg0); + MTXIdentity(arg0); } if (arg8 != 0.0f) { - PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); - PSMTXConcat(sp38, arg0, arg0); + MTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + MTXConcat(sp38, arg0, arg0); } if (arg9 != 0.0f) { - PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); - PSMTXConcat(sp8, arg0, arg0); + MTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + MTXConcat(sp8, arg0, arg0); } } @@ -1137,8 +1137,8 @@ void fn_1_939C(float *arg0, float (*arg1)[3], float (*arg2)[3], s32 var_r28) arg0[0] = 0.0f; for (var_r30 = 1; var_r30 < var_r28; var_r30++) { - PSVECSubtract((Vec *)&arg1[var_r30], (Vec *)&arg1[var_r30 - 1], &sp8); - arg0[var_r30] = arg0[var_r30 - 1] + PSVECMag(&sp8); + VECSubtract((Vec *)&arg1[var_r30], (Vec *)&arg1[var_r30 - 1], &sp8); + arg0[var_r30] = arg0[var_r30 - 1] + VECMag(&sp8); } for (var_r27 = 0; var_r27 < 3; var_r27++) { for (var_r30 = 0; var_r30 < var_r28; var_r30++) { diff --git a/src/REL/m428Dll/player.c b/src/REL/m428Dll/player.c new file mode 100644 index 00000000..4964e8a5 --- /dev/null +++ b/src/REL/m428Dll/player.c @@ -0,0 +1,3401 @@ +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXVert.h" +#include "dolphin/mtx/GeoTypes.h" +#include "ext_math.h" +#include "game/chrman.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfload.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/init.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "string.h" + +#include "REL/m428Dll.h" + +#ifndef __MWERKS__ +#include "game/esprite.h" +#include "game/frand.h" +#endif + +typedef struct M428DllBss13CStruct { + /* 0x00 */ float unk_00; + /* 0x04 */ char pad_04[0x3C]; /* maybe part of unk_00[0x10]? */ +} M428DllBss13CStruct; /* size = 0x40 */ + +typedef struct M428DllData4B0Struct { + Vec unk_00; + float unk_0C; +} M428DllData4B0Struct; /* size = 0x10 */ + +typedef struct M428DllData500Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; +} M428DllData500Struct; /* size = 0x08 */ + +typedef struct M428DllPlayerWork { + omObjData *unk_00[2]; // M428DllPlayerWork2 + s16 unk_08[2]; + s16 unk_0C; + s16 unk_0E; + s16 unk_10; + s16 unk_12; + s32 unk_14; + s32 unk_18; + float unk_1C; + s32 unk_20; + s32 unk_24; + s32 unk_28; + float unk_2C; + float unk_30; + float unk_34; + s32 unk_38; + Vec unk_3C; + float unk_48; + float unk_4C[2]; + float unk_54[2]; + float unk_5C; + float unk_60; + Vec unk_64[2]; + Vec unk_7C; + Vec unk_88; + Vec unk_94; + Vec unk_A0; + Vec unk_AC; + s32 unk_B8; + s32 unk_BC; + s32 unk_C0; + s32 unk_C4; + float unk_C8; +} M428DllPlayerWork; /* size = 0xCC */ + +typedef struct M428DllPlayerWork2 { + s16 unk_00; + s16 unk_02; + s16 unk_04; + s16 unk_06; + s16 unk_08; + s16 unk_0A; + s16 unk_0C; + s16 unk_0E; + s16 unk_10; + float unk_14; + float unk_18; + s16 unk_1C; + s16 unk_1E; + s16 unk_20; + s16 unk_22; + s16 unk_24; + s16 unk_26; + float unk_28; + float unk_2C; + s32 unk_30; + s32 unk_34; + s32 unk_38; + Vec unk_3C; + Vec unk_48; + Vec unk_54; + Mtx unk_60; + Vec unk_90; + char unk_9C[0x100]; + s32 unk_19C; + s32 unk_1A0; + s32 unk_1A4; + s32 unk_1A8; + float unk_1AC; + s32 unk_1B0; + s32 unk_1B4; + Vec unk_1B8; +} M428DllPlayerWork2; /* size = 0x1C4 */ + +typedef struct M428DllPlayerWork3 { + s32 unk_00; + s32 unk_04[2]; + float unk_0C[2][2]; + s32 unk_1C[2]; + float unk_24[2][2]; + AnimData *unk_34; + AnimData *unk_38; + s32 unk_3C[2][2]; + s32 unk_4C[2][2]; +} M428DllPlayerWork3; /* size = 0x5C */ + +typedef struct M428DllPlayerUnkStruct { + s16 unk_00; + s16 unk_02; + s32 unk_04; + Vec unk_08[4]; +} M428DllPlayerUnkStruct; /* size = 0x38 */ + +typedef struct M428DllPlayerUnk120Struct { + s16 unk_00; + s16 unk_02; + float unk_04; + float unk_08; + s32 unk_0C; + s32 unk_10; + float unk_14; + float unk_18; + s32 unk_1C; + Vec unk_20; + Vec unk_2C; + Vec unk_38; + s32 unk_44; + float unk_48; + float unk_4C; + float unk_50; + M428DllPlayerUnkStruct *unk_54; +} M428DllPlayerUnk120Struct; /* size = 0x58 */ + +typedef struct M428DllPlayerUnkStruct2 { + s16 unk_00; + s16 unk_02; + float unk_04; + float unk_08; + float unk_0C; + char unk10[8]; + float unk_18; + char unk1C[0xC]; + float unk_28; + float unk_2C; + float unk_30; + float unk_34; + Vec unk_38; + GXColor unk_44; + s32 unk_48; +} M428DllPlayerUnkStruct2; /* size = 0x4C */ + +typedef void (*M428DllPlayerHook)(ModelData *model, struct M428DllPlayerUnk120Struct2 *arg1, Mtx matrix); + +typedef struct M428DllPlayerUnk120Struct2 { + s16 unk_00; + s16 unk_02; + char unk04[0x1C]; + u8 unk_20; + u8 unk_21; + u8 unk_22; + u8 unk_23; + char unk24[2]; + s16 unk_26; + s32 unk_28; + s32 unk_2C; + u32 unk_30; + u32 unk_34; + AnimData *unk_38; + M428DllPlayerUnkStruct2 *unk_3C; + Vec *unk_40; + Vec2f *unk_44; + void *unk_48; + M428DllPlayerHook unk_4C; + ModelData *unk_50; +} M428DllPlayerUnk120Struct2; /* size = 0x54 */ + +typedef struct M428DllPlayerWork4 { + s32 unk_00[2]; + s32 unk_08[2]; + AnimData *unk_10; +} M428DllPlayerWork4; /* size = 0x14 */ + +void fn_1_102A8(ModelData *modle, Mtx matrix); +void fn_1_10530(s32 arg0, Vec *arg1, Vec *arg2); +void fn_1_10590(s32 arg0, s32 arg1, s32 arg2, Vec *arg3); +void fn_1_105E8(s32 arg0, float arg8, float arg9); +s32 fn_1_10788(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3); +void fn_1_10A88(void); +void fn_1_11014(omObjData *object); +void fn_1_115F8(void); +void fn_1_118A8(s32 arg0, float arg8); +void fn_1_11930(void); +void fn_1_11A60(omObjData *object); +void fn_1_11C20(void); +s32 fn_1_11DE4(s32 arg0, Vec arg1, Vec arg2, float arg8, float arg9, float argA, float argB, GXColor arg3); +float fn_1_1236C(float arg8, float arg9, float argA); +void fn_1_129B4(float arg8, Vec *arg0, Vec *arg1, Vec *arg2); +void fn_1_12AA4(float arg8, Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3); +s16 fn_1_12CD4(AnimData *arg0, s16 arg1); +void fn_1_134C0(ModelData *model, Mtx matrix); +void fn_1_13D9C(s16 arg0, s16 arg1, s32 arg2); +void fn_1_13E14(s16 arg0, s16 arg1, Vec arg2); +void fn_1_13EC8(s16 arg0, s16 arg1, float arg8); +s32 fn_1_13F54(s16 arg0, char *arg1, Mtx arg2, s32 arg3); +void fn_1_14088(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3); +void fn_1_A108(omObjData *object); +void fn_1_A4C8(omObjData *object); +void fn_1_B3D4(omObjData *object); +void fn_1_B43C(omObjData *object); +void fn_1_BBD0(omObjData *object); +void fn_1_E5F4(omObjData *object); +void fn_1_E600(omObjData *object); +s32 fn_1_F288(Vec *arg0, Vec *arg1, float arg8); +s32 fn_1_F538(Vec *arg0, Vec *arg1, Vec *arg2, float arg8); +s32 fn_1_FB8C(Vec *arg0, Vec *arg1, float arg8, s32 arg2, s32 arg3); + +extern u32 GlobalCounter; + +Vec lbl_1_data_150[4] = { + { -140.0f, -400.0f, 0.0f }, + { 140.0f, -300.0f, 0.0f }, + { -140.0f, -300.0f, 0.0f }, + { 140.0f, -400.0f, 0.0f }, +}; +Vec lbl_1_data_180[4] = { + { -100.0f, -10.0f, 150.0f }, + { 100.0f, -10.0f, 150.0f }, + { -100.0f, -10.0f, 150.0f }, + { 100.0f, -10.0f, 150.0f }, +}; +Vec lbl_1_data_1B0[4][0xE] = { + { + { -11.0f, 214.0f, 39.0f }, + { -11.0f, 400.0f, 46.0f }, + { -11.0f, 668.0f, 56.0f }, + { -11.0f, 931.0f, 42.0f }, + { 7.0f, 1131.0f, 65.0f }, + { -452.0f, 1449.0f, 57.0f }, + { -478.0f, 1763.0f, 48.0f }, + { -452.0f, 2001.0f, 44.0f }, + { -311.0f, 2120.0f, 55.0f }, + { -85.0f, 2442.0f, 42.0f }, + { -32.0f, 2876.0f, 43.0f }, + { -12.0f, 3300.0f, 48.0f }, + { -42.0f, 4500.0f, 48.0f }, + { -42.0f, 4500.0f, 48.0f }, + }, + { + { 16.0f, 203.0f, 40.0f }, + { 0.0f, 456.0f, 50.0f }, + { 15.0f, 650.0f, 58.0f }, + { -268.0f, 935.0f, 51.0f }, + { -463.0f, 1205.0f, 66.0f }, + { -663.0f, 1313.0f, 69.0f }, + { -460.0f, 1600.0f, 59.0f }, + { -333.0f, 1946.0f, 46.0f }, + { -82.0f, 2188.0f, 44.0f }, + { -76.0f, 2374.0f, 40.0f }, + { -108.0f, 2620.0f, 43.0f }, + { -95.0f, 2990.0f, 46.0f }, + { -270.0f, 3445.0f, 46.0f }, + { -42.0f, 4500.0f, 48.0f }, + }, + { + { 26.0f, 354.0f, 46.0f }, + { 29.0f, 604.0f, 57.0f }, + { 30.0f, 877.0f, 39.0f }, + { 51.0f, 1086.0f, 64.0f }, + { 360.0f, 1196.0f, 46.0f }, + { 398.0f, 1416.0f, 39.0f }, + { 468.0f, 1658.0f, 43.0f }, + { 468.0f, 1944.0f, 53.0f }, + { 135.0f, 2174.0f, 47.0f }, + { 107.0f, 2430.0f, 61.0f }, + { 98.0f, 2698.0f, 43.0f }, + { 90.0f, 2995.0f, 50.0f }, + { 0.0f, 4500.0f, 48.0f }, + { 0.0f, 4500.0f, 48.0f }, + }, + { + { -24.0f, 313.0f, 41.0f }, + { -11.0f, 529.0f, 51.0f }, + { -33.0f, 799.0f, 44.0f }, + { 7.0f, 990.0f, 53.0f }, + { 135.0f, 1196.0f, 57.0f }, + { 393.0f, 1379.0f, 39.0f }, + { 429.0f, 1457.0f, 42.0f }, + { 420.0f, 1984.0f, 54.0f }, + { 190.0f, 2239.0f, 53.0f }, + { 70.0f, 2532.0f, 55.0f }, + { 75.0f, 2933.0f, 44.0f }, + { 75.0f, 4500.0f, 48.0f }, + { 75.0f, 4500.0f, 48.0f }, + { 75.0f, 4500.0f, 48.0f }, + }, +}; +Vec lbl_1_data_450[4] = { + { -30.000002f, -10.0f, -90.0f }, + { 20.0f, -10.0f, -70.0f }, + { 0.0f, -10.0f, 0.0f }, + { 0.0f, -10.0f, 0.0f }, +}; +Vec lbl_1_data_480[4] = { + { 15.0f, 150.0f, 0.0f }, + { 15.0f, 210.0f, 0.0f }, + { 0.0f, 180.0f, 0.0f }, + { 0.0f, 180.0f, 0.0f }, +}; +M428DllData4B0Struct lbl_1_data_4B0[5] = { + { { -400.0f, 700.0f, 0.0f }, 200.0f }, + { { 400.0f, 900.0f, 0.0f }, 200.0f }, + { { 0.0f, 1800.0f, 0.0f }, 220.0f }, + { { -600.0f, 3100.0f, 0.0f }, 300.0f }, + { { 600.0f, 2880.0f, 0.0f }, 300.0f }, +}; +M428DllData500Struct lbl_1_data_500[0xC] = { + { 0x5F0000, 0 }, + { 0x5F0002, 0 }, + { 0x5F0003, 0 }, + { -1, 0 }, + { -1, 1 }, + { -1, 2 }, + { -1, 3 }, + { 0x5F0006, 0 }, + { 0x5F0014, 0 }, + { 0x5F005B, 0 }, + { 0x5F0017, 0 }, + { 0x5F0018, 0 }, +}; +s32 lbl_1_data_560[4][8] = { + { + DATA_MAKE_NUM(DATADIR_M428, 0x11), + DATA_MAKE_NUM(DATADIR_M428, 0x12), + DATA_MAKE_NUM(DATADIR_M428, 0x13), + DATA_MAKE_NUM(DATADIR_M428, 0x14), + DATA_MAKE_NUM(DATADIR_M428, 0x15), + DATA_MAKE_NUM(DATADIR_M428, 0x16), + DATA_MAKE_NUM(DATADIR_M428, 0x17), + DATA_MAKE_NUM(DATADIR_M428, 0x18), + }, + { + DATA_MAKE_NUM(DATADIR_M428, 0x19), + DATA_MAKE_NUM(DATADIR_M428, 0x1A), + DATA_MAKE_NUM(DATADIR_M428, 0x1B), + DATA_MAKE_NUM(DATADIR_M428, 0x1C), + DATA_MAKE_NUM(DATADIR_M428, 0x1D), + DATA_MAKE_NUM(DATADIR_M428, 0x1E), + DATA_MAKE_NUM(DATADIR_M428, 0x1F), + DATA_MAKE_NUM(DATADIR_M428, 0x20), + }, + { + DATA_MAKE_NUM(DATADIR_M428, 0x21), + DATA_MAKE_NUM(DATADIR_M428, 0x22), + DATA_MAKE_NUM(DATADIR_M428, 0x23), + DATA_MAKE_NUM(DATADIR_M428, 0x24), + DATA_MAKE_NUM(DATADIR_M428, 0x25), + DATA_MAKE_NUM(DATADIR_M428, 0x26), + DATA_MAKE_NUM(DATADIR_M428, 0x27), + DATA_MAKE_NUM(DATADIR_M428, 0x28), + }, + { + DATA_MAKE_NUM(DATADIR_M428, 0x29), + DATA_MAKE_NUM(DATADIR_M428, 0x2A), + DATA_MAKE_NUM(DATADIR_M428, 0x2B), + DATA_MAKE_NUM(DATADIR_M428, 0x2C), + DATA_MAKE_NUM(DATADIR_M428, 0x2D), + DATA_MAKE_NUM(DATADIR_M428, 0x2E), + DATA_MAKE_NUM(DATADIR_M428, 0x2F), + DATA_MAKE_NUM(DATADIR_M428, 0x30), + }, +}; +Vec lbl_1_data_5E0[8] = { + { 0.0f, -10.0f, -20.0f }, + { 0.0f, -10.0f, -20.0f }, + { 0.0f, -30.000002f, -20.0f }, + { 0.0f, -10.0f, -20.0f }, + { 0.0f, -10.0f, -20.0f }, + { 0.0f, 10.0f, -10.0f }, + { 0.0f, -30.000002f, -20.0f }, + { 0.0f, -10.0f, -20.0f }, +}; +s32 lbl_1_data_640[4] = { 0x80000000, 0x40000000, 0x20000000, 0x10000000 }; +GXColor lbl_1_data_650 = { 0xFF, 0xFF, 0xFF, 0x20 }; +GXColor lbl_1_data_654 = { 0xFF, 0xFF, 0xFF, 0x40 }; + +Process *lbl_1_bss_2D0; +// M428DllPlayerWork +omObjData *lbl_1_bss_2C8[2]; +omObjData *lbl_1_bss_2B8[4]; +// M428DllPlayerWork3 +omObjData *lbl_1_bss_2B4; +// M428DllPlayerWork4 +omObjData *lbl_1_bss_2B0; +M428DllPlayerWork *lbl_1_bss_2AC; +M428DllPlayerWork2 *lbl_1_bss_2A8; +s32 lbl_1_bss_2A4; +s32 lbl_1_bss_29C[2]; +Mtx lbl_1_bss_23C[2]; +M428DllBss13CStruct lbl_1_bss_1BC[2]; +M428DllBss13CStruct lbl_1_bss_13C[2]; +s32 lbl_1_bss_138; +s32 lbl_1_bss_134; +s32 lbl_1_bss_130; + +omObjData *fn_1_9F5C(Process *process) +{ + s32 var_r31; + + lbl_1_bss_2D0 = process; + lbl_1_bss_2A4 = 0; + lbl_1_bss_2AC = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(M428DllPlayerWork), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_2AC, 0, 2 * sizeof(M428DllPlayerWork)); + lbl_1_bss_2A8 = HuMemDirectMallocNum(HEAP_SYSTEM, 4 * sizeof(M428DllPlayerWork2), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_2A8, 0, 4 * sizeof(M428DllPlayerWork2)); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + lbl_1_bss_2C8[var_r31] = omAddObjEx(process, 0x40, 1, 0, -1, fn_1_A108); + lbl_1_bss_2C8[var_r31]->work[0] = var_r31; + } + fn_1_10A88(); + fn_1_11798(0); + fn_1_11930(); + lbl_1_bss_29C[0] = lbl_1_bss_29C[1] = 0; + return lbl_1_bss_2C8[var_r31]; +} + +void fn_1_A0B0(void) +{ + s32 var_r31; + + fn_1_115F8(); + fn_1_11C20(); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + fn_1_B3D4(lbl_1_bss_2C8[var_r31]); + } +} + +void fn_1_A108(omObjData *object) +{ + M428DllPlayerWork *work; + s32 var_r30; + s32 var_r28; + s32 var_r27; + + var_r28 = object->work[0]; + work = &lbl_1_bss_2AC[var_r28]; + object->data = work; + work->unk_0C = var_r28; + work->unk_0E = 0; + work->unk_10 = 0; + work->unk_12 = (u8)frand() % 4; + work->unk_14 = 0; + work->unk_18 = 0; + work->unk_1C = 0.0f; + work->unk_20 = 0; + work->unk_24 = 0; + work->unk_28 = 0; + work->unk_2C = 0.0f; + work->unk_30 = 0.0f; + work->unk_34 = 0.0f; + work->unk_B8 = 0; + work->unk_BC = -1; + work->unk_C0 = work->unk_C4 = 0; + work->unk_C8 = 0.0f; + work->unk_38 = -1; + work->unk_4C[0] = work->unk_4C[1] = 0.0f; + work->unk_48 = 400.0f; + work->unk_54[0] = work->unk_5C = 200.0f; + work->unk_54[1] = work->unk_60 = 200.0f; + work->unk_64[0].x = 0.5f * (lbl_1_data_150[0].x + lbl_1_data_150[1].x); + work->unk_64[0].y = 0.5f * (lbl_1_data_150[0].y + lbl_1_data_150[1].y); + work->unk_64[0].z = 0.5f * (lbl_1_data_150[0].z + lbl_1_data_150[1].z); + work->unk_64[1] = work->unk_64[0]; + work->unk_7C = work->unk_64[0]; + work->unk_88 = work->unk_64[1]; + work->unk_94.x = work->unk_94.y = work->unk_94.z = 0.0f; + work->unk_A0.x = work->unk_A0.y = work->unk_A0.z = 0.0f; + work->unk_AC.x = work->unk_AC.y = work->unk_AC.z = 0.0f; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r27 = lbl_1_bss_50[var_r30 + (var_r28 * 2)]; + work->unk_08[var_r30] = var_r27; + work->unk_00[var_r30] = lbl_1_bss_2B8[var_r27] = omAddObjEx(lbl_1_bss_2D0, 0x41, 2, 0xC, -1, fn_1_B43C); + work->unk_00[var_r30]->data = NULL; + work->unk_00[var_r30]->work[0] = var_r27; + work->unk_00[var_r30]->work[1] = work->unk_0C; + work->unk_00[var_r30]->work[2] = var_r30; + } + object->model[0] = fn_1_FB8C(&lbl_1_data_150[0], &lbl_1_data_150[1], 400.0f, 0x30, work->unk_0C); + if (work->unk_0C == 0) { + Hu3DModelCameraSet(object->model[0], 1); + } + else { + Hu3DModelCameraSet(object->model[0], 2); + } + object->func = fn_1_A4C8; +} + +void fn_1_A4C8(omObjData *object) +{ + Vec sp50; + Vec sp44; + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + M428DllPlayerWork *var_r31; + M428DllPlayerWork2 *var_r30; + M428DllPlayerWork2 *var_r29; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + + var_r22 = 0; + var_r24 = 0; + var_r23 = 0; + var_r31 = object->data; + var_r30 = var_r31->unk_00[0]->data; + var_r29 = var_r31->unk_00[1]->data; + if (!var_r30 || !var_r29) { + return; + } + if ((fn_1_26E0() < 7) || (lbl_1_bss_2A4 == 0)) { + sp50.x = var_r30->unk_90.x; + sp50.y = var_r30->unk_90.y; + sp50.z = var_r30->unk_90.z; + sp44.x = var_r29->unk_90.x; + sp44.y = var_r29->unk_90.y; + sp44.z = var_r29->unk_90.z; + VECAdd(&sp50, &sp44, &sp2C); + VECScale(&sp2C, &sp2C, 0.5f); + var_r21 = fn_1_10788(object->model[0], &sp50, &sp44, &sp38); + if (var_r21 != -1) { + if (var_r31->unk_38 != var_r21) { + var_r31->unk_38 = var_r21; + var_r31->unk_3C = sp38; + var_r23 = 1; + } + else { + var_r23 = 0; + } + var_r31->unk_64[1] = var_r31->unk_3C; + var_r31->unk_64[0] = var_r31->unk_64[1]; + var_f31 = var_r31->unk_4C[0] + var_r31->unk_4C[1]; + if (var_f31 >= 400.0f) { + if (var_r23 != 0) { + var_r31->unk_48 = var_f31; + } + else { + var_r31->unk_48 + (400.0f - var_r31->unk_48) * 0.01f; // bug + (void)var_r22; + } + var_f31 = 1.0f / var_f31; + var_r31->unk_54[0] = var_r31->unk_48 * (var_r31->unk_4C[0] * var_f31); + var_r31->unk_54[1] = var_r31->unk_48 * (var_r31->unk_4C[1] * var_f31); + } + else { + var_f31 = 1.0f / var_f31; + var_r31->unk_54[0] = 400.0f * (var_r31->unk_4C[0] * var_f31); + var_r31->unk_54[1] = 400.0f * (var_r31->unk_4C[1] * var_f31); + var_r31->unk_48 = 400.0f; + } + var_f31 = var_r31->unk_54[0] + var_r31->unk_54[1]; + var_r26 = 48.0f * (var_r31->unk_54[0] / var_f31); + if (var_r26 < 1) { + var_r26 = 1; + } + else if (var_r26 > 0x2E) { + var_r26 = 0x2E; + } + fn_1_10590(object->model[0], 1, var_r26, &var_r31->unk_3C); + var_f31 = (var_r31->unk_4C[0] + var_r31->unk_4C[1]) / var_r31->unk_48; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + fn_1_105E8(object->model[0], 1.0f - var_f31, 1.0f - var_f31); + } + else { + var_r31->unk_38 = -1; + fn_1_10590(object->model[0], 0, 0x18, &var_r31->unk_3C); + var_f31 = (var_r31->unk_4C[0] + var_r31->unk_4C[1]) / 400.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + fn_1_105E8(object->model[0], 1.0f - var_f31, 1.0f - var_f31); + var_r31->unk_48 = 400.0f; + var_r31->unk_64[1] = sp2C; + var_r31->unk_64[0] = var_r31->unk_64[1]; + var_r31->unk_54[0] = 200.0f; + var_r31->unk_54[1] = 200.0f; + } + var_r31->unk_54[0] = var_r31->unk_5C + (0.01f * (var_r31->unk_54[0] - var_r31->unk_5C)); + var_r31->unk_54[1] = var_r31->unk_60 + (0.01f * (var_r31->unk_54[1] - var_r31->unk_60)); + fn_1_129B4(0.1f, &var_r31->unk_64[2], &var_r31->unk_64[0], &var_r31->unk_64[0]); + fn_1_129B4(0.1f, &var_r31->unk_88, &var_r31->unk_64[1], &var_r31->unk_64[1]); + var_r31->unk_5C = var_r31->unk_54[0]; + var_r31->unk_60 = var_r31->unk_54[1]; + var_r31->unk_7C = var_r31->unk_64[0]; + var_r31->unk_88 = var_r31->unk_64[1]; + if (var_r31->unk_38 != -1) { + var_r31->unk_94 = var_r31->unk_64[0]; + var_r31->unk_A0 = var_r31->unk_64[1]; + } + else if (var_r30->unk_20 == 4) { + var_r31->unk_94 = var_r29->unk_90; + var_r31->unk_A0 = var_r30->unk_90; + } + else if (var_r29->unk_20 == 4) { + var_r31->unk_94 = var_r30->unk_90; + var_r31->unk_A0 = var_r29->unk_90; + } + else { + var_r31->unk_94 = var_r31->unk_64[0]; + var_r31->unk_A0 = var_r31->unk_64[1]; + } + if (lbl_1_bss_29C[var_r31->unk_0C] == 5) { + var_r24 = 1; + } + if ((fn_1_26E0() != 4) || (var_r31->unk_18 != 0)) { + var_r24 = 0; + } + if (var_r24 != 0) { + var_r27 = -1; + if ((var_r30->unk_20 == 2) && (var_r29->unk_20 == 3)) { + var_r27 = 0; + } + else if ((var_r30->unk_20 == 3) && (var_r29->unk_20 == 2)) { + var_r27 = 1; + } + else if ((var_r30->unk_20 == 2) && (var_r29->unk_20 == 2)) { + if (sp50.y > sp44.y) { + var_r27 = 0; + } + else { + var_r27 = 1; + } + } + if (var_r27 == 0) { + var_r30->unk_20 = 4; + var_r30->unk_22 = 0; + var_r30->unk_34 = 0; + var_r30->unk_38 = 0; + var_r30->unk_3C.x = 0.0f; + var_r30->unk_3C.y = var_r30->unk_3C.z = 0.0f; + var_r31->unk_2C = sp50.y; + var_r31->unk_AC = sp50; + var_r31->unk_34 = 0.0f; + } + else if (var_r27 == 1) { + var_r29->unk_20 = 4; + var_r29->unk_22 = 0; + var_r29->unk_34 = 0; + var_r29->unk_38 = 0; + var_r29->unk_3C.x = 0.0f; + var_r29->unk_3C.y = var_r29->unk_3C.z = 0.0f; + var_r31->unk_2C = sp44.y; + var_r31->unk_AC = sp44; + var_r31->unk_34 = 0.0f; + } + } + if ((var_r30->unk_20 == 4) || (var_r29->unk_20 == 4)) { + var_r31->unk_24 = 1; + var_r31->unk_28 = 1; + } + else { + var_r31->unk_24 = 0; + } + if (lbl_1_bss_29C[var_r31->unk_0C] != 5) { + var_r31->unk_28 = 0; + } + sp50.x = var_r30->unk_90.x; + sp50.y = var_r30->unk_90.y; + sp50.z = var_r30->unk_90.z; + sp44.x = var_r29->unk_90.x; + sp44.y = var_r29->unk_90.y; + sp44.z = var_r29->unk_90.z; + fn_1_10530(object->model[0], &sp50, &sp44); + if (var_r31->unk_00[0]->trans.y > var_r31->unk_00[1]->trans.y) { + var_r31->unk_1C = var_r31->unk_00[0]->trans.y; + var_r31->unk_10 = 0; + } + else if (var_r31->unk_00[1]->trans.y > var_r31->unk_00[0]->trans.y) { + var_r31->unk_1C = var_r31->unk_00[1]->trans.y; + var_r31->unk_10 = 1; + } + else { + var_r25 = frand() & 1; + var_r31->unk_1C = var_r31->unk_00[var_r25]->trans.y; + var_r31->unk_10 = var_r25; + } + fn_1_118A8(var_r31->unk_0C, var_r31->unk_1C / 3800.0f); + if (fn_1_26E0() == 4) { + sp50.x = var_r31->unk_00[0]->trans.x; + sp50.y = var_r31->unk_00[0]->trans.y; + sp50.z = var_r31->unk_00[0]->trans.z; + sp44.x = var_r31->unk_00[1]->trans.x; + sp44.y = var_r31->unk_00[1]->trans.y; + sp44.z = var_r31->unk_00[1]->trans.z; + VECAdd(&sp50, &sp44, &sp2C); + VECScale(&sp2C, &sp2C, 0.5f); + VECSubtract(&sp50, &sp44, &sp20); + sp20.z = 0.0f; + var_f29 = VECMag(&sp20); + if (var_f29 < 100.0f) { + var_f27 = 0.0f; + } + else if (var_f29 >= 300.0f) { + var_f27 = 1.0f; + } + else { + var_f27 = (var_f29 - 100.0f) / 200.0f; + } + var_f29 = 1500.0f + (500.0f * var_f27); + var_f28 = sp2C.x; + if (var_f28 > 400.0f) { + var_f28 = 400.0f; + } + else if (var_f28 < -400.0f) { + var_f28 = -400.0f; + } + var_f26 = sp2C.y; + if (var_f26 < 400.0f) { + var_f26 = 400.0f; + } + var_f25 = var_r31->unk_1C; + if (var_f25 < 20.0f) { + var_f30 = 0.0f; + } + else { + var_f30 = (var_f25 - 20.0f) / 3780.0f; + if (var_f30 >= 1.0f) { + var_f30 = 1.0f; + } + } + sp14.x = var_f28; + sp14.y = var_f26; + sp14.z = 0.0f; + sp8.x = 70.0f * var_f30; + sp8.y = 0.0f; + sp8.z = 0.0f; + if (var_r31->unk_C4 > 0) { + var_f30 = var_r31->unk_C8 * ((float)var_r31->unk_C0 / var_r31->unk_C4); + var_r25 = (var_r31->unk_C0 * 0x2D) % 360; + var_f30 = var_f30 * sind(var_r25); + var_f30 = var_f30; + sp14.x += var_f30; + sp14.y += var_f30; + if (--var_r31->unk_C0 <= 0) { + var_r31->unk_C0 = var_r31->unk_C4 = 0; + } + var_r22 = 1; + } + if (var_r22 == 0) { + fn_1_9A30(var_r31->unk_0C, 12.0f, &sp14, &sp8, var_f29); + } + else { + fn_1_9A30(var_r31->unk_0C, 3.0f, &sp14, &sp8, var_f29); + } + } + if (var_r31->unk_BC != -1) { + if (var_r31->unk_BC == 0) { + var_r31->unk_B8++; + if (var_r31->unk_B8 == 1) { + omVibrate(var_r31->unk_08[0], 0xC, 6, 6); + omVibrate(var_r31->unk_08[1], 0xC, 6, 6); + return; + } + if (var_r31->unk_B8 >= 45.0f) { + var_r31->unk_B8 = 0; + } + } + else { + var_r31->unk_B8++; + if (var_r31->unk_B8 == 1) { + omVibrate(var_r31->unk_08[0], 0xC, 0xC, 0); + omVibrate(var_r31->unk_08[1], 0xC, 0xC, 0); + return; + } + if (var_r31->unk_B8 >= 6.0f) { + var_r31->unk_B8 = 0; + } + } + } + } + else { + switch (fn_1_26E0()) { + case 7: + if (lbl_1_bss_2A4 != 0) { + if (var_r31->unk_14 != 0) { + var_r30->unk_20 = 7; + var_r30->unk_22 = 0; + var_r29->unk_20 = 7; + var_r29->unk_22 = 0; + } + else { + var_r30->unk_20 = 9; + var_r30->unk_22 = 0; + var_r29->unk_20 = 9; + var_r29->unk_22 = 0; + } + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + } + break; + case 8: + break; + case 9: + if ((var_r31->unk_14 != 0) && (lbl_1_bss_2A4 != 0)) { + var_r30->unk_20 = 8; + var_r30->unk_22 = 0; + var_r29->unk_20 = 8; + var_r29->unk_22 = 0; + } + break; + } + } +} + +void fn_1_B3D4(omObjData *object) +{ + s32 var_r31; + M428DllPlayerWork *work = object->data; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + fn_1_E5F4(work->unk_00[var_r31]); + work->unk_00[var_r31] = NULL; + } +} + +void fn_1_B43C(omObjData *object) +{ + M428DllPlayerWork2 *var_r31; + s32 var_r29; + s32 var_r28; + u32 var_r27; + M428DllPlayerWork *var_r26; + u32 var_r25; + u32 var_r24; + + var_r27 = object->work[0]; + var_r25 = object->work[1]; + var_r24 = object->work[2]; + var_r26 = &lbl_1_bss_2AC[var_r25]; + var_r31 = object->data = &lbl_1_bss_2A8[var_r27]; + var_r31->unk_00 = var_r27; + var_r31->unk_02 = var_r25; + var_r31->unk_04 = var_r24; + var_r31->unk_06 = GWPlayerCfg[var_r27].character; + var_r31->unk_08 = GWPlayerCfg[var_r27].pad_idx; + var_r31->unk_0A = GWPlayerCfg[var_r27].iscom; + var_r31->unk_0C = GWPlayerCfg[var_r27].diff; + if ((var_r31->unk_0A == 0) && ((lbl_1_data_640[var_r31->unk_08] & HuPadRumbleGet()) == 0)) { + lbl_1_bss_18 = 0; + } + if (var_r31->unk_0A != 0) { + var_r26->unk_0E = var_r26->unk_0E | (1 << var_r31->unk_04); + } + var_r31->unk_0E = var_r31->unk_10 = 0; + var_r31->unk_14 = var_r31->unk_18 = 0.0f; + var_r31->unk_1C = -1; + var_r31->unk_1E = 4; + var_r31->unk_20 = 0; + var_r31->unk_22 = var_r31->unk_24 = 0; + var_r31->unk_26 = 0; + var_r31->unk_28 = 200.0f; + var_r31->unk_2C = var_r31->unk_28; + var_r31->unk_30 = 0; + var_r31->unk_34 = 0; + var_r31->unk_38 = 0; + var_r31->unk_3C.x = var_r31->unk_3C.y = var_r31->unk_3C.z = 0.0f; + var_r31->unk_48.x = var_r31->unk_48.y = var_r31->unk_48.z = 0.0f; + var_r31->unk_54.x = 0.0f; + var_r31->unk_54.z = 0.0f; + var_r31->unk_54.y = 75.0f; + mtxRot(var_r31->unk_60, 0.0f, 0.0f, 0.0f); + mtxTransCat(var_r31->unk_60, lbl_1_data_5E0[var_r31->unk_06].x, lbl_1_data_5E0[var_r31->unk_06].y, lbl_1_data_5E0[var_r31->unk_06].z); + var_r31->unk_90.x = lbl_1_data_150[var_r31->unk_04].x; + var_r31->unk_90.y = 80.0f + lbl_1_data_150[var_r31->unk_04].y; + var_r31->unk_90.z = lbl_1_data_150[var_r31->unk_04].z; + strcpy(var_r31->unk_9C, MakeObjectName(CharModelHookNameGet(var_r31->unk_06, 4, 4))); + var_r31->unk_19C = -1; + var_r31->unk_1A0 = 30.0f * ((frand() & 0x7FFF) % 5); + var_r31->unk_1A4 = 0; + var_r31->unk_1A8 = 0; + var_r31->unk_1AC = 0.0f; + var_r31->unk_1B0 = 0; + var_r31->unk_1B4 = 0; + var_r31->unk_1B8.x = 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + var_r31->unk_1B8.y = 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + var_r31->unk_1B8.z = 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + var_r29 = CharModelCreate(var_r31->unk_06, 4); + object->model[0] = var_r29; + if (var_r31->unk_02 == 0) { + Hu3DModelCameraSet(var_r29, 1); + fn_1_4170(var_r29, 1); + } + else { + Hu3DModelCameraSet(var_r29, 2); + fn_1_4170(var_r29, 2); + } + Hu3DModelLayerSet(var_r29, 2); + CharModelStepTypeSet(var_r31->unk_06, 0); + if (var_r31->unk_02 == 0) { + var_r29 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 0x07)); + object->model[1] = var_r29; + Hu3DModelCameraSet(var_r29, 1); + } + else { + var_r29 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M428, 0x08)); + object->model[1] = var_r29; + Hu3DModelCameraSet(var_r29, 2); + } + Hu3DModelLayerSet(var_r29, 2); + for (var_r28 = 0; var_r28 < 0xC; var_r28++) { + if (lbl_1_data_500[var_r28].unk_00 != 0xFFFFFFFF) { + object->motion[var_r28] = CharModelMotionCreate(var_r31->unk_06, lbl_1_data_500[var_r28].unk_00); + } + else { + object->motion[var_r28] = Hu3DJointMotionFile(object->model[0], lbl_1_data_560[lbl_1_data_500[var_r28].unk_04][var_r31->unk_06]); + } + } + var_r31->unk_1C = 3; + CharModelMotionSet(var_r31->unk_06, object->motion[var_r31->unk_1C]); + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + CharModelMotionDataClose(var_r31->unk_06); + object->trans.x = var_r31->unk_48.x = lbl_1_data_150[var_r31->unk_04].x; + object->trans.y = var_r31->unk_48.y = lbl_1_data_150[var_r31->unk_04].y; + object->trans.z = var_r31->unk_48.z = lbl_1_data_150[var_r31->unk_04].z; + object->rot.x = object->rot.z = 0.0f; + object->rot.y = 180.0f; + object->func = fn_1_BBD0; +} + +void fn_1_BBD0(omObjData *object) +{ + Mtx sp104; + Vec spF8; + Vec spEC; + Vec spE0; + float var_f31; + float var_f30; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + M428DllPlayerWork2 *var_r31; + M428DllPlayerWork *var_r29; + omObjData *var_r28; + M428DllPlayerWork2 *var_r27; + s32 var_r26; + ModelData *var_r25; + s32 var_r24; + s32 var_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + + var_r31 = object->data; + var_r29 = &lbl_1_bss_2AC[var_r31->unk_02]; + var_r22 = var_r31->unk_04 ^ 1; + var_r28 = var_r29->unk_00[var_r22]; + var_r27 = var_r28->data; + if (fn_1_26E0() == 4) { + if (var_r31->unk_0A != 0) { + var_r31->unk_0E = var_r31->unk_10 = 0; + var_r31->unk_14 = var_r31->unk_18 = 0.0f; + fn_1_E600(object); + } + else { + var_r31->unk_0E = HuPadBtnDown[var_r31->unk_08]; + var_r31->unk_10 = HuPadBtn[var_r31->unk_08]; + var_r31->unk_14 = HuPadStkX[var_r31->unk_08]; + var_r31->unk_18 = HuPadStkY[var_r31->unk_08]; + } + } + else { + var_r31->unk_0E = var_r31->unk_10 = 0; + var_r31->unk_14 = var_r31->unk_18 = 0.0f; + } + switch (var_r31->unk_20) { + case 0: + var_r31->unk_20 = 1; + var_r31->unk_22 = 0; + break; + case 1: + if (object->trans.y < 0.0f) { + object->trans.y += 1.6f; + var_r26 = 3; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0x40000001); + } + } + else { + object->trans.y = 0.0f; + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + spF8 = var_r31->unk_90; + VECSubtract(&spF8, &var_r29->unk_64[var_r31->unk_04], &spEC); + var_r31->unk_30 = 0; + var_f31 = VECMag(&spEC); + var_r29->unk_4C[var_r31->unk_04] = var_f31; + spF8.x = object->trans.x + var_r31->unk_54.x; + spF8.y = object->trans.y + var_r31->unk_54.y; + spF8.z = object->trans.z + var_r31->unk_54.z; + if (fn_1_9990(&spF8) != 0) { + object->trans.z = 50.0f + spF8.z; + } + if (fn_1_26E0() >= 4) { + var_r31->unk_20 = 2; + var_r31->unk_22 = 0; + } + break; + case 2: + if (((var_r31->unk_0E & 0x100) != 0) || (var_r29->unk_24 != 0) || (var_r29->unk_28 != 0)) { + if (var_r31->unk_1C == 4) { + var_r31->unk_1E = 5; + } + else { + var_r31->unk_1E = 4; + } + var_r31->unk_26 = 0; + var_r31->unk_20 = 3; + var_r31->unk_22 = 0; + } + else { + if (fabs(var_r31->unk_14) >= 8.0) { + var_f27 = 0.025f * var_r31->unk_14; + } + else { + var_f27 = 0.0f; + } + if (fabs(var_r31->unk_18) >= 8.0) { + var_f24 = 0.025f * var_r31->unk_18; + } + else { + var_f24 = 0.0f; + } + spE0.x = var_f27; + spE0.y = var_f24; + spE0.z = 0.0f; + if (VECMag(&spE0) > 0.0f) { + spF8.x = object->trans.x + var_r31->unk_54.x; + spF8.y = object->trans.y + var_r31->unk_54.y; + spF8.z = object->trans.z + var_r31->unk_54.z; + if (fn_1_F288(&spF8, &spE0, 75.0f) != 0) { + object->trans.x += spE0.x; + object->trans.y += spE0.y; + } + else { + object->trans.x = spF8.x - var_r31->unk_54.x; + object->trans.y = spF8.y - var_r31->unk_54.y; + } + if ((var_r27->unk_20 == 2) || (var_r27->unk_20 == 3)) { + spE0.x = (object->trans.x + var_r31->unk_54.x) - (var_r28->trans.x + var_r27->unk_54.x); + spE0.y = (object->trans.y + var_r31->unk_54.y) - (var_r28->trans.y + var_r27->unk_54.y); + spE0.z = (object->trans.z + var_r31->unk_54.z) - (var_r28->trans.z + var_r27->unk_54.z); + var_f30 = VECMag(&spE0); + if (var_f30 <= 200.0f) { + if (var_f30 <= 0.0f) { + spE0.y = -1.0f; + } + VECNormalize(&spE0, &spE0); + VECScale(&spE0, &spE0, 200.0f); + object->trans.x = spE0.x + (var_r28->trans.x + var_r27->unk_54.x); + object->trans.y = spE0.y + (var_r28->trans.y + var_r27->unk_54.x); + object->trans.z = spE0.z + (var_r28->trans.z + var_r27->unk_54.x); + } + } + } + spF8 = var_r31->unk_90; + VECSubtract(&spF8, &var_r29->unk_64[var_r31->unk_04], &spEC); + var_r31->unk_30 = 0; + var_f31 = VECMag(&spEC); + var_r29->unk_4C[var_r31->unk_04] = var_f31; + if (var_f31 > var_r29->unk_54[var_r31->unk_04]) { + var_r31->unk_30 = 1; + VECNormalize(&spEC, &spEC); + VECScale(&spEC, &spEC, var_r29->unk_54[var_r31->unk_04]); + VECAdd(&var_r29->unk_64[var_r31->unk_04], &spEC, &spF8); + object->trans.x += spF8.x - var_r31->unk_90.x; + object->trans.y += spF8.y - var_r31->unk_90.y; + object->trans.z += spF8.z - var_r31->unk_90.z; + var_r20 = 1; + } + if ((var_r20 != 0) || (object->trans.x != var_r31->unk_48.x) || (object->trans.y != var_r31->unk_48.y)) { + spF8.x = var_r31->unk_48.x + var_r31->unk_54.x; + spF8.y = var_r31->unk_48.y + var_r31->unk_54.y; + spF8.z = var_r31->unk_48.z + var_r31->unk_54.z; + spE0.x = (object->trans.x + var_r31->unk_54.x) - spF8.x; + spE0.y = (object->trans.y + var_r31->unk_54.y) - spF8.y; + spE0.z = (object->trans.z + var_r31->unk_54.z) - spF8.z; + if (fn_1_F288(&spF8, &spE0, 75.0f) == 0) { + object->trans.x = spF8.x - var_r31->unk_54.x; + object->trans.y = spF8.y - var_r31->unk_54.y; + var_r20 = 1; + } + } + if (object->trans.x < -700.0f) { + object->trans.x = -700.0f; + } + else if (object->trans.x > 700.0f) { + object->trans.x = 700.0f; + } + if (object->trans.y < -200.0f) { + object->trans.y = -200.0f; + } + spF8.x = object->trans.x + var_r31->unk_54.x; + spF8.y = object->trans.y + var_r31->unk_54.y; + spF8.z = object->trans.z + var_r31->unk_54.z; + if (fn_1_9990(&spF8) != 0) { + object->trans.z = 50.0f + spF8.z; + } + var_f31 = sqrtf((var_r31->unk_14 * var_r31->unk_14) + (var_r31->unk_18 * var_r31->unk_18)); + var_f31 *= 0.02f; + CharModelMotionSpeedSet(var_r31->unk_06, var_f31); + if ((var_f27 == 0.0f) && (var_f24 == 0.0f)) { + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + if ((var_r31->unk_1C != 8) && (var_r31->unk_1C != 9) && (var_r31->unk_1C != 6)) { + var_r26 = var_r31->unk_1C; + } + else { + var_r26 = 4; + } + var_f22 = object->rot.z; + } + else { + if (fabs(var_f27) > (2.0 * fabs(var_f24))) { + if (var_f27 > 0.0f) { + var_r26 = 4; + } + else { + var_r26 = 5; + } + var_f22 = 0.0f; + } + else { + var_r26 = 3; + if (var_f24 > 0.0f) { + var_f22 = -30.0f * (var_f27 / 1.6f); + } + else { + var_f22 = -(-30.0f * (var_f27 / 1.6f)); + CharModelMotionSpeedSet(var_r31->unk_06, -var_f31); + } + } + } + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r23 = var_r31->unk_1C; + var_r31->unk_1C = var_r26; + if (var_r23 != 6) { + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0x40000001); + } + else { + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 25.0f, 0x40000001); + } + } + else { + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + } + object->rot.x = 0.0f; + object->rot.y = 180.0f; + object->rot.z = fn_1_1236C(var_f22, object->rot.z, 1.25f); + } + break; + case 3: + spF8 = var_r31->unk_90; + VECSubtract(&spF8, &var_r29->unk_64[var_r31->unk_04], &spEC); + var_r31->unk_30 = 0; + var_f31 = VECMag(&spEC); + var_r29->unk_4C[var_r31->unk_04] = var_f31; + if (fn_1_26E0() != 4) { + var_r31->unk_10 = 0; + var_r31->unk_26 = 0; + } + if (((var_r31->unk_10 & 0x100) != 0) || (var_r29->unk_24 != 0) || (var_r29->unk_28 != 0) || (var_r31->unk_26 != 0)) { + if (var_r31->unk_26 > 0) { + var_r31->unk_26--; + } + if (var_r29->unk_24 != 0) { + if (fabs(var_r29->unk_34) > 0.0) { + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + var_r29->unk_A0.z = object->trans.z; + VECSubtract(&var_r29->unk_A0, &spF8, &spEC); + var_f30 = VECMag(&spEC); + if (var_f30 < var_r29->unk_34) { + var_r29->unk_34 = var_f30; + } + if (var_f30 > 0.0f) { + VECNormalize(&spEC, &spEC); + VECScale(&spEC, &spEC, var_r29->unk_34); + VECAdd(&spF8, &var_r31->unk_54, &spF8); + if (fn_1_F288(&spF8, &spEC, 75.0f) != 0) { + for (var_r24 = 0; var_r24 < 6; var_r24++) { + spF8.x = object->trans.x + (0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f))); + spF8.y = 100.0f + object->trans.y + 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + spF8.z = object->trans.z - 47.5f; + var_f31 = -22.5f + (45.0f * (0.007874016f * (frand() & 0x7F))); + spE0.x = 2.5 * sind(var_f31); + spE0.y = 2.5 * cosd(var_f31); + spE0.z = 0.0f; + fn_1_11DE4(var_r29->unk_0C, spF8, spE0, 50.0f, 5.0f, 100.0f, 0.5f, lbl_1_data_650); + } + object->trans.x += spEC.x; + object->trans.y += spEC.y; + } + } + } + } + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + if (fn_1_9990(&spF8) != 0) { + object->trans.z = 50.0f + spF8.z; + } + if (object->trans.x < -700.0f) { + object->trans.x = -700.0f; + } + else if (object->trans.x > 700.0f) { + object->trans.x = 700.0f; + } + if (object->trans.y < -200.0f) { + object->trans.y = -200.0f; + } + if (lbl_1_bss_29C[var_r29->unk_0C] == 5) { + var_r26 = 6; + if ((object->rot.z > 180.0f) || (object->rot.z < 45.0f)) { + object->rot.z += 5.0f; + } + if (object->rot.z >= 360.0f) { + object->rot.z -= 360.0f; + } + } + else { + var_r26 = var_r31->unk_1E; + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); + } + if ((var_r26 != var_r31->unk_1C) && (var_r26 != -1) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r23 = var_r31->unk_1C; + var_r31->unk_1C = var_r26; + if (var_r31->unk_1C != 6) { + if (var_r23 != 6) { + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0); + } + else { + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 25.0f, 0); + } + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + else { + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0x40000001); + } + } + if ((var_r31->unk_1C != 6) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + CharModelMotionTimeSet(var_r31->unk_06, 0.0f); + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + if (var_r31->unk_1C == 6) { + CharModelMotionSpeedSet(var_r31->unk_06, 2.0f); + } + } + else { + var_r31->unk_20 = 2; + var_r31->unk_22 = 0; + } + break; + case 4: + spF8 = var_r31->unk_90; + VECSubtract(&spF8, &var_r29->unk_64[var_r31->unk_04], &spEC); + var_r31->unk_30 = 0; + var_f31 = VECMag(&spEC); + var_r29->unk_4C[var_r31->unk_04] = var_f31; + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + var_r31->unk_3C.y -= 0.65333337f; + if (var_r29->unk_38 == -1) { + var_r29->unk_30 = 400.0f; + var_r29->unk_94.x = var_r28->trans.x + var_r27->unk_54.x; + var_r29->unk_94.y = var_r28->trans.y + var_r27->unk_54.y; + var_r29->unk_94.z = var_r28->trans.z + var_r27->unk_54.z; + } + else { + var_r29->unk_30 = var_r29->unk_48 - var_r29->unk_54[var_r22]; + } + VECAdd(&spF8, &var_r31->unk_54, &spF8); + if ((fn_1_F288(&spF8, &var_r31->unk_3C, 75.0f) != 0) && ((object->trans.y + var_r31->unk_3C.y) >= -200.0f)) { + spF8.x = object->trans.x + var_r31->unk_3C.x; + spF8.y = object->trans.y + var_r31->unk_3C.y; + spF8.z = object->trans.z + var_r31->unk_3C.z; + if (object->trans.x < -700.0f) { + object->trans.x = -700.0f; + } + else if (object->trans.x > 700.0f) { + object->trans.x = 700.0f; + } + if (object->trans.y < -200.0f) { + object->trans.y = -200.0f; + } + VECSubtract(&spF8, &var_r29->unk_94, &spEC); + var_f31 = VECMag(&spEC); + if (var_f31 > var_r29->unk_30) { + VECNormalize(&spEC, &spEC); + VECScale(&spEC, &spEC, var_r29->unk_30); + VECAdd(&var_r29->unk_94, &spEC, &spF8); + if (fabs(spEC.x) < 180.0) { + var_r31->unk_34 = 1; + } + } + object->trans.x = spF8.x; + object->trans.y = spF8.y; + object->trans.z = spF8.z; + } + else { + object->trans.x = spF8.x - var_r31->unk_54.x; + object->trans.y = spF8.y - var_r31->unk_54.y; + object->trans.z = spF8.z - var_r31->unk_54.z; + if ((object->trans.y + var_r31->unk_3C.y) >= -200.0f) { + for (var_r24 = 0; var_r24 < 6; var_r24++) { + var_f30 = -90.0f + (36.0f * var_r24); + spF8.x = object->trans.x + (12.5 * sind(var_f30)); + spF8.z = object->trans.z + 12.5 * cosd(var_f30); + spF8.y = (object->trans.y - 25.0f) + (0.25f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f))); + var_f31 = -22.5f + (45.0f * (0.007874016f * (frand() & 0x7F))); + var_f23 = 0.3f + (0.7f * (0.007874016f * (frand() & 0x7F))); + spE0.x = var_f23 * ((2.5 * sind(var_f30)) + (2.5 * sind(var_f31))); + spE0.y = var_f23 * (2.5 * cosd(var_f31)); + spE0.z = var_f23 * (2.5 * cosd(var_f30)); + fn_1_11DE4(var_r29->unk_0C, spF8, spE0, 100.0f, 5.0f, 100.0f, 0.5f * var_f23, lbl_1_data_654); + } + } + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.x; + var_r31->unk_38 = 1; + var_r31->unk_3C.x = var_r31->unk_3C.y = var_r31->unk_3C.z = 0.0f; + var_r29->unk_34 = 0.0f; + var_r31->unk_1E = 4; + var_r31->unk_26 = 0x12; + var_r31->unk_20 = 5; + var_r31->unk_22 = 0; + break; + } + if (var_r31->unk_34 == 0) { + var_r29->unk_34 = 0.0f; + var_r31->unk_22++; + var_r31->unk_24 = 0; + var_f31 = 2.0f * var_r31->unk_22; + if (var_f31 >= 90.0f) { + var_f31 = 90.0f; + } + if ((object->trans.z = object->trans.z + (10.0 * cosd(var_f31))) >= (150.0f + var_r29->unk_AC.z)) { + object->trans.z = 150.0f + var_r29->unk_AC.z; + } + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + if (fn_1_9990(&spF8) != 0) { + spF8.z += 50.0f; + } + else { + spF8.z = 50.0f; + } + if (object->trans.z < spF8.z) { + object->trans.z = spF8.z; + } + var_r26 = 8; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0); + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + } + else { + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + VECSubtract(&spF8, &var_r29->unk_94, &spEC); + if (fabs(spEC.x) < 100.0) { + if ((var_r31->unk_3C.y += 0.65333337f) > 0.0f) { + var_r31->unk_3C.y = 0.0f; + } + var_r31->unk_3C.x *= 0.96f; + var_r31->unk_3C.y *= 0.97f; + } + else { + var_r31->unk_22++; + } + var_r29->unk_34 = fabs(0.45f * sqrtf((var_r31->unk_3C.x * var_r31->unk_3C.x) + (var_r31->unk_3C.y * var_r31->unk_3C.y))); + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + if (fn_1_9990(&spF8) != 0) { + spF8.z += 50.0f; + } + else { + spF8.z = 50.0f; + } + if ((object->trans.z -= 5.0f) < spF8.z) { + object->trans.z = 50.0f + spF8.z; + } + var_r26 = 9; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0); + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + if (++var_r31->unk_24 > var_r31->unk_22) { + var_r31->unk_1E = 4; + var_r31->unk_26 = 0x12; + var_r31->unk_20 = 5; + var_r31->unk_22 = 0; + } + } + + break; + case 5: + spF8 = var_r31->unk_90; + VECSubtract(&spF8, &var_r29->unk_64[var_r31->unk_04], &spEC); + var_r31->unk_30 = 0; + var_f31 = VECMag(&spEC); + var_r29->unk_4C[var_r31->unk_04] = var_f31; + if (var_r31->unk_38 != 0) { + var_r26 = 7; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0); + CharModelMotionSpeedSet(var_r31->unk_06, 0.0f); + } + } + var_r21 = 0; + if ((var_r27->unk_20 == 2) || (var_r27->unk_20 == 3)) { + spE0.x = (object->trans.x + var_r31->unk_54.x) - (var_r28->trans.x + var_r27->unk_54.x); + spE0.y = (object->trans.y + var_r31->unk_54.y) - (var_r28->trans.y + var_r27->unk_54.y); + spE0.z = (object->trans.z + var_r31->unk_54.z) - (var_r28->trans.z + var_r27->unk_54.z); + var_f30 = VECMag(&spE0); + if (var_f30 <= 200.0f) { + if (object->trans.x > var_r28->trans.x) { + var_f30 = 10.0f; + } + else { + var_f30 = -10.0f; + } + spF8.x = object->trans.x + var_r31->unk_54.x; + spF8.y = object->trans.y + var_r31->unk_54.y; + spF8.z = object->trans.z + var_r31->unk_54.z; + spE0.x = var_f30; + spE0.y = spE0.z = 0.0f; + if (fn_1_F288(&spF8, &spE0, 75.0f) != 0) { + object->trans.x += spE0.x; + object->trans.y += spE0.y; + object->trans.z += spE0.z; + } + else { + object->trans.x = spF8.x - var_r31->unk_54.x; + object->trans.y = spF8.y - var_r31->unk_54.y; + object->trans.z = spF8.z - var_r31->unk_54.z; + } + spF8.x = var_r28->trans.x + var_r27->unk_54.x; + spF8.y = var_r28->trans.y + var_r27->unk_54.y; + spF8.z = var_r28->trans.z + var_r27->unk_54.z; + spE0.x = -var_f30; + spE0.y = spE0.z = 0.0f; + if (fn_1_F288(&spF8, &spE0, 75.0f) != 0) { + var_r28->trans.x += spE0.x; + var_r28->trans.y += spE0.y; + var_r28->trans.z += spE0.z; + } + else { + var_r28->trans.x = spF8.x - var_r27->unk_54.x; + var_r28->trans.y = spF8.y - var_r27->unk_54.y; + var_r28->trans.z = spF8.z - var_r27->unk_54.z; + } + var_r21 = 1; + } + } + if (object->trans.x < -700.0f) { + object->trans.x = -700.0f; + } + else if (object->trans.x > 700.0f) { + object->trans.x = 700.0f; + } + if (object->trans.y < -200.0f) { + object->trans.y = -200.0f; + } + spF8.x = object->trans.x; + spF8.y = object->trans.y; + spF8.z = object->trans.z; + if (fn_1_9990(&spF8) != 0) { + spF8.z += 50.0f; + } + else { + spF8.z = 50.0f; + } + if ((object->trans.z - spF8.z) > 30.000002f) { + object->trans.z -= 30.000002f; + } + else { + object->trans.z = spF8.z; + if (var_r21 == 0) { + var_r31->unk_20 = 3; + var_r31->unk_22 = 0; + } + } + break; + case 7: + object->trans.x = lbl_1_data_180[var_r31->unk_04].x; + object->trans.y = lbl_1_data_180[var_r31->unk_04].y; + object->trans.z = lbl_1_data_180[var_r31->unk_04].z; + object->rot.x = object->rot.y = object->rot.z = 0.0f; + var_r25 = &Hu3DData[object->model[0]]; + var_r25->unk_F0[0][3] = 0.0f; + var_r25->unk_F0[1][3] = 0.0f; + var_r25->unk_F0[2][3] = 0.0f; + var_r25 = &Hu3DData[object->model[1]]; + MTXIdentity(var_r25->unk_F0); + Hu3DModelPosSet( + object->model[1], lbl_1_data_450[var_r31->unk_04].x, lbl_1_data_450[var_r31->unk_04].y, lbl_1_data_450[var_r31->unk_04].z); + Hu3DModelRotSet( + object->model[1], lbl_1_data_480[var_r31->unk_04].x, lbl_1_data_480[var_r31->unk_04].y, lbl_1_data_480[var_r31->unk_04].z); + if (var_r31->unk_02 == 0) { + fn_1_4170(object->model[1], 1); + } + else { + fn_1_4170(object->model[1], 2); + } + var_r26 = 0; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0x40000001); + } + break; + case 8: + var_r26 = 0xA; + if ((var_r26 != var_r31->unk_1C) && (CharModelMotionShiftIDGet(var_r31->unk_06) == -1)) { + var_r31->unk_1C = var_r26; + CharModelMotionShiftSet(var_r31->unk_06, object->motion[var_r31->unk_1C], 0.0f, 8.0f, 0); + } + break; + case 9: + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); + break; + } + var_r31->unk_48.x = object->trans.x; + var_r31->unk_48.y = object->trans.y; + var_r31->unk_48.z = object->trans.z; + if (var_r31->unk_20 < 7) { + if (fn_1_13F54(object->model[0], var_r31->unk_9C, sp104, 0) != 0) { + var_r25 = &Hu3DData[object->model[1]]; + MTXConcat(sp104, var_r31->unk_60, sp104); + MTXCopy(sp104, var_r25->unk_F0); + var_r31->unk_90.x = sp104[0][3]; + var_r31->unk_90.y = sp104[1][3]; + var_r31->unk_90.z = sp104[2][3]; + } + else { + OSReport("NO OBJECT %d %s \n", var_r31->unk_06, CharModelHookNameGet(var_r31->unk_06, 4, 4)); + } + spF8.x = 0.0f; + spF8.y = 100.0f; + spF8.z = 0.0f; + spE0.x = spF8.y * sind((180.0f + object->rot.z)); + spE0.y = spF8.y * sind((90.0f + object->rot.z)); + spE0.z = 0.0f; + VECSubtract(&spE0, &spF8, &spEC); + var_r25 = &Hu3DData[object->model[0]]; + var_r25->unk_F0[0][3] = spEC.x; + var_r25->unk_F0[1][3] = spEC.y; + var_r25->unk_F0[2][3] = spEC.z; + } +} + +void fn_1_E5F4(omObjData *object) +{ + object->func = NULL; +} + +void fn_1_E600(omObjData *object) +{ + Vec sp24; + Vec sp18; + Vec spC; + s32 sp8; + float var_f31; + float var_f30; + float var_f29; + M428DllPlayerWork2 *var_r31; + M428DllPlayerWork *var_r29; + omObjData *var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + + var_r31 = object->data; + var_r29 = &lbl_1_bss_2AC[var_r31->unk_02]; + var_r24 = var_r31->unk_04 ^ 1; + var_r28 = var_r29->unk_00[var_r24]; + if ((var_r29->unk_0E == 3) && (var_r29->unk_10 == var_r31->unk_04)) { + var_r26 = 1; + } + else { + var_r26 = 0; + } + if ((lbl_1_bss_29C[var_r31->unk_02] == 6) || (var_r31->unk_19C == -1)) { + if (var_r29->unk_0E != 3) { + var_r31->unk_19C = 2; + } + else { + var_r25 = (s32)(50.0f * (0.007874016f * (frand() & 0x7F))) + var_r31->unk_0C * 0xF + 5; + var_r31->unk_1A0 = (u8)frand() % 90; + if (var_r26 == 0) { + var_r31->unk_1A0 = (u8)frand() % 60; + } + if (var_r25 < 0x2D) { + var_r31->unk_19C = 0; + } + else if (var_r25 < 0x4B) { + var_r31->unk_19C = 1; + } + else { + var_r31->unk_19C = 2; + } + } + } + var_f31 = 1.0f; + switch (var_r31->unk_19C) { + case 0: + break; + case 1: + if (lbl_1_bss_29C[var_r31->unk_02] != 0) { + if (var_r31->unk_1A0 > 0) { + var_r31->unk_1A0--; + } + else { + var_r31->unk_0E |= 0x100; + var_r31->unk_10 |= 0x100; + } + } + break; + case 2: + if ((lbl_1_bss_29C[var_r31->unk_02] == 3) || (lbl_1_bss_29C[var_r31->unk_02] == 5)) { + var_r31->unk_0E |= 0x100; + var_r31->unk_10 |= 0x100; + } + break; + } + if (var_r26 != 0) { + for (var_r27 = 0; var_r27 < 0x10; var_r27++) { + if ((lbl_1_data_1B0[var_r29->unk_12][var_r27].y - 100.0f) > object->trans.y) { + break; + } + } + var_r31->unk_1B0 = var_r27; + sp18 = lbl_1_data_1B0[var_r29->unk_12][var_r31->unk_1B0]; + sp8 = var_r31->unk_1B0; + sp24.x = object->trans.x; + sp24.y = object->trans.y; + sp24.z = object->trans.z; + VECSubtract(&var_r31->unk_48, &sp24, &spC); + if ((VECMag(&spC) < 1.0f) && (lbl_1_bss_29C[var_r31->unk_02] != 0)) { + var_r31->unk_1B4++; + } + if (var_r31->unk_1B4 >= 180.0f) { + if (var_r31->unk_1B4 < 300.0f) { + if ((var_r31->unk_1B0 >= 2) && (var_r31->unk_1B0 <= 3)) { + if (fabs(object->trans.x) < 500.0) { + if (object->trans.x > 0.0f) { + var_r31->unk_14 = 64.0f; + } + else { + var_r31->unk_14 = -64.0f; + } + } + } + else { + if (fabs(object->trans.x) > 50.0) { + if (object->trans.x > 0.0f) { + var_r31->unk_14 = -64.0f; + } + else { + var_r31->unk_14 = 64.0f; + } + } + } + } + else if (var_r31->unk_1B0 > 0) { + var_r31->unk_1B0--; + var_r31->unk_1B4 = 0; + } + } + else { + var_r31->unk_1B4 = 0; + sp24.x = object->trans.x; + sp24.y = object->trans.y; + sp24.z = object->trans.z; + VECAdd(&sp18, &var_r31->unk_1B8, &sp18); + VECSubtract(&sp18, &sp24, &spC); + var_f30 = VECMag(&spC); + VECNormalize(&spC, &spC); + var_r31->unk_14 = 64.0f * (spC.x * var_f31); + var_r31->unk_18 = 64.0f * (spC.y * var_f31); + if (++var_r31->unk_1A4 > 180.0f) { + var_r31->unk_1B8.x = 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + var_r31->unk_1B8.y = 0.5f * (100.0f * (0.007874016f * (frand() & 0x7F))); + var_r31->unk_1B8.z = 0.5f * (100.0f * ((0.007874016f * (frand() & 0x7F)) - 0.5f)); + var_r31->unk_1A4++; + } + } + } + else { + sp24.x = object->trans.x; + sp24.y = object->trans.y; + sp24.z = object->trans.z; + sp18.x = var_r28->trans.x; + sp18.y = var_r28->trans.y; + sp18.z = var_r28->trans.z; + VECSubtract(&sp18, &sp24, &spC); + var_f30 = VECMag(&spC); + if (var_f30 != 0.0f) { + var_f29 = atan2d(spC.x, spC.y); + } + else { + spC.y = 1.0f; + var_f29 = 0.0; + } + if (var_f30 < 230.0f) { + spC.x *= -1.0f; + spC.y *= -1.0f; + var_f29 += 180.0f; + } + if ((var_f30 >= 250.0f) || (var_f30 <= 230.0f)) { + VECNormalize(&spC, &spC); + if (var_f30 >= 250.0f) { + var_f31 = (var_f30 - 250.0f) / 20.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + } + else { + var_f31 = 1.0f; + } + sp24.x = object->trans.x; + sp24.y = object->trans.y; + sp24.z = object->trans.z; + VECAdd(&sp24, &var_r31->unk_54, &sp24); + var_f29 = var_f29 + var_r31->unk_1AC; + sp18.x = 64.0 * sind(var_f29); + sp18.y = 64.0 * cosd(var_f29); + sp18.z = 0.0f; + var_r31->unk_14 = sp18.x * var_f31; + var_r31->unk_18 = sp18.y * var_f31; + var_r31->unk_1A8 = 0; + } + } + var_r31->unk_1A4++; +} + +s32 fn_1_F080(Vec *arg0, Vec *arg1, float arg8) +{ + Vec sp24; + Vec sp18; + Vec spC; + float var_f31; + float var_f30; + s32 var_r31; + + if (VECMag(arg1) <= 0.0f) { + return 0; + } + var_f30 = atan2d(arg1->x, arg1->y); + var_f30 = var_f30; + sp24 = *arg0; + for (var_r31 = 0; var_r31 < 6; var_r31++) { + var_f31 = -45.0f + (15.0f * var_r31); + var_f31 += var_f30; + spC.x = sind(var_f31); + spC.y = cosd(var_f31); + spC.z = 0.0f; + VECNormalize(&spC, &spC); + VECScale(&spC, &spC, arg8); + VECAdd(arg0, &spC, &sp24); + if (fn_1_9990(&sp24) != 0) { + if (var_r31 == 3) { + sp18 = sp24; + } + } + else { + break; + } + } + if (var_r31 < 6) { + return 0; + } + return 1; +} + +s32 fn_1_F288(Vec *arg0, Vec *arg1, float arg2) +{ + Vec sp24; + Vec sp18; + Vec spC; + s32 var_r30; + + sp24 = *arg0; + sp18 = *arg1; + var_r30 = fn_1_F538(&sp24, &sp18, &spC, arg2); + if (var_r30 != 0) { + *arg0 = spC; + return 0; + } + *arg0 = sp24; + return 1; +} + +s32 fn_1_F354(void) +{ + s32 var_r31; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_2B8[var_r31]->trans.y < 0.0f) { + break; + } + } + if (var_r31 < 4) { + return 0; + } + return 1; +} + +s32 fn_1_F3BC(s32 arg0) +{ + M428DllPlayerWork *var_r31 = &lbl_1_bss_2AC[arg0]; + if (var_r31->unk_1C >= 3800.0f) { + return var_r31->unk_18 = 1; + } + return var_r31->unk_18 = 0; +} + +void fn_1_F414(s32 arg0) +{ + M428DllPlayerWork *var_r31 = &lbl_1_bss_2AC[arg0]; + var_r31->unk_14 = 1; + lbl_1_bss_2A4 = 1; +} + +void fn_1_F454(s32 arg0, s32 arg1) +{ + lbl_1_bss_29C[arg0] = arg1; +} + +void fn_1_F46C(s32 arg0, s32 arg1) +{ + if (lbl_1_bss_18 != 0) { + M428DllPlayerWork *var_r31 = &lbl_1_bss_2AC[arg0]; + var_r31->unk_B8 = 0; + var_r31->unk_BC = arg1; + } +} + +void fn_1_F4B4(s32 arg0, s32 arg1, float arg8) +{ + M428DllPlayerWork *var_r31 = &lbl_1_bss_2AC[arg0]; + var_r31->unk_C4 = arg1; + var_r31->unk_C0 = arg1; + var_r31->unk_C8 = arg8; +} + +s32 fn_1_F4E8(s32 arg0) +{ + M428DllPlayerWork *var_r31 = &lbl_1_bss_2AC[arg0]; + if (var_r31->unk_1C >= 500.0f) { + return 1; + } + return 0; +} + +s32 fn_1_F538(Vec *arg0, Vec *arg1, Vec *arg2, float arg8) +{ + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f30; + float var_f29; + M428DllData4B0Struct *var_r30; + s32 var_r27; + + *arg2 = *arg0; + var_r30 = lbl_1_data_4B0; + for (var_r27 = 0; var_r27 < 5; var_r27++, var_r30++) { + sp38 = var_r30->unk_00; + VECAdd(arg0, arg1, &sp2C); + if ((arg0->y >= (sp38.y + arg8)) && (sp2C.y <= (sp38.y + arg8))) { + sp8.x = sp2C.y - arg0->y; + sp8.y = arg0->x - sp2C.x; + sp8.z = -((sp8.x * arg0->x) + (sp8.y * arg0->y)); + var_f29 = -((sp8.z + (sp8.y * (sp38.y + arg8))) / sp8.x); + if ((var_f29 >= (sp38.x - (var_r30->unk_0C + arg8))) && (var_f29 <= (sp38.x + (var_r30->unk_0C + arg8)))) { + arg2->x = arg0->x + arg1->x; + arg2->y = 0.1f + (sp38.y + arg8); + arg2->z = arg0->z + arg1->z; + return 1; + } + } + VECSubtract(&sp2C, &sp38, &sp20); + var_f30 = VECMag(&sp20); + if (var_f30 == 0.0f) { + sp20.y = 1.0f; + } + sp14 = sp20; + if ((var_f30 < (var_r30->unk_0C + arg8)) && (sp20.y < arg8)) { + sp38 = var_r30->unk_00; + sp2C = *arg0; + VECSubtract(&sp2C, &sp38, &sp20); + var_f30 = VECMag(&sp20); + if (var_f30 == 0.0f) { + sp20.y = 1.0f; + } + if (sp20.y <= arg8) { + VECNormalize(&sp14, &sp20); + VECScale(&sp20, &sp20, var_r30->unk_0C + arg8); + VECAdd(&sp38, &sp20, arg2); + return 1; + } + arg2->x = arg0->x + arg1->x; + arg2->y = 0.1f + (sp38.y + arg8); + arg2->z = arg0->z + arg1->z; + return 1; + } + } + return 0; +} + +s32 fn_1_F88C(Vec *arg0, Vec *arg1, Vec *arg2) +{ + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + M428DllData4B0Struct *var_r30; + s32 var_r27; + + *arg2 = *arg0; + var_r30 = lbl_1_data_4B0; + for (var_r27 = 0; var_r27 < 5; var_r27++, var_r30++) { + sp2C = var_r30->unk_00; + VECAdd(arg0, arg1, &sp20); + if ((arg0->y >= sp2C.y) && (sp20.y <= sp2C.y)) { + sp8.x = sp20.y - arg0->y; + sp8.y = arg0->x - sp20.x; + sp8.z = -((sp8.x * arg0->x) + (sp8.y * arg0->y)); + var_f30 = -((sp8.z + (sp8.y * sp2C.y)) / sp8.x); + if ((var_f30 >= (sp2C.x - var_r30->unk_0C)) && (var_f30 <= (sp2C.x + var_r30->unk_0C))) { + arg2->x = arg0->x + arg1->x; + arg2->y = sp2C.y; + arg2->z = arg0->z + arg1->z; + return 1; + } + } + VECSubtract(&sp20, &sp2C, &sp14); + var_f31 = VECMag(&sp14); + if (var_f31 == 0.0f) { + sp14.y = 1.0f; + } + if ((var_f31 < var_r30->unk_0C) && (sp14.y <= 0.0f)) { + sp2C = var_r30->unk_00; + sp20 = *arg0; + VECSubtract(&sp20, &sp2C, &sp14); + var_f31 = VECMag(&sp14); + if (var_f31 == 0.0f) { + sp14.y = 1.0f; + } + if (sp14.y <= 0.0f) { + VECNormalize(&sp14, &sp14); + VECScale(&sp14, &sp14, var_r30->unk_0C); + VECAdd(&sp2C, &sp14, arg2); + return var_r27; + } + arg2->x = arg0->x + arg1->x; + arg2->y = sp2C.y; + arg2->z = arg0->z + arg1->z; + return var_r27; + } + } + return -1; +} + +s32 fn_1_FB8C(Vec *arg0, Vec *arg1, float arg8, s32 arg2, s32 arg3) +{ + float var_f31; + M428DllPlayerUnk120Struct *var_r31; + M428DllPlayerUnkStruct *var_r30; + s32 var_r29; + ModelData *var_r28; + s32 var_r26; + + var_r26 = Hu3DHookFuncCreate(fn_1_102A8); + var_r28 = &Hu3DData[var_r26]; + Hu3DModelLayerSet(var_r26, 2); + var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M428DllPlayerUnk120Struct), var_r28->unk_48); + var_r28->unk_120 = var_r31; + memset(var_r31, 0, sizeof(M428DllPlayerUnk120Struct)); + var_r30 = HuMemDirectMallocNum(HEAP_DATA, arg2 * sizeof(M428DllPlayerUnkStruct), var_r28->unk_48); + var_r31->unk_54 = var_r30; + memset(var_r30, 0, arg2 * sizeof(M428DllPlayerUnkStruct)); + var_r31->unk_00 = var_r26; + var_r31->unk_02 = arg2; + var_r31->unk_04 = arg8; + var_r31->unk_08 = arg8 / (arg2 - 1); + var_r31->unk_0C = 0; + var_r31->unk_10 = arg3; + var_r31->unk_14 = 0.0f; + var_r31->unk_18 = 0.0f; + var_r31->unk_1C = 0; + var_r31->unk_20 = *arg0; + var_r31->unk_2C = *arg1; + var_r31->unk_38.x = var_r31->unk_38.y = var_r31->unk_38.z = 0.0f; + var_r31->unk_44 = -1; + var_r31->unk_48 = var_r31->unk_4C = var_r31->unk_50 = 0.0f; + for (var_r29 = 0; var_r29 < arg2; var_r29++, var_r30++) { + var_r30->unk_00 = var_r29; + if (var_r29 == 0) { + var_r30->unk_02 = 0; + } + else if (var_r29 == (arg2 - 1)) { + var_r30->unk_02 = 1; + } + else { + var_r30->unk_02 = -1; + } + var_r30->unk_04 = 0; + var_f31 = (float)var_r29 / (arg2 - 1); + var_r30->unk_08[0].x = var_r31->unk_20.x + (var_f31 * (var_r31->unk_2C.x - var_r31->unk_20.x)); + var_r30->unk_08[0].y = var_r31->unk_20.y + (var_f31 * (var_r31->unk_2C.y - var_r31->unk_20.y)); + var_r30->unk_08[0].z = var_r31->unk_20.z + (var_f31 * (var_r31->unk_2C.z - var_r31->unk_20.z)); + var_r30->unk_08[1] = var_r30->unk_08[0]; + var_r30->unk_08[2] = var_r30->unk_08[0]; + var_r30->unk_08[3].x = var_r30->unk_08[3].y = var_r30->unk_08[3].z = 0.0f; + } + return var_r26; +} + +void fn_1_FE98(M428DllPlayerUnk120Struct *arg0) +{ + Vec sp24; + Vec sp18; + Vec spC; + s32 sp8; + float var_f31; + float var_f30; + M428DllPlayerUnkStruct *var_r30; + s32 var_r29; + + if (arg0->unk_1C == 0) { + fn_1_129B4(0.5f, &arg0->unk_20, &arg0->unk_2C, &spC); + spC.y -= arg0->unk_14 * (0.75f * arg0->unk_04); + for (var_r30 = arg0->unk_54, var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r30++) { + var_f31 = (float)var_r29 / (arg0->unk_02 - 1); + fn_1_12AA4(var_f31, &arg0->unk_20, &spC, &arg0->unk_2C, &var_r30->unk_08[0]); + fn_1_129B4(var_f31, &arg0->unk_20, &arg0->unk_2C, &var_r30->unk_08[2]); + } + } + else { + arg0->unk_38.z = 0.5f * (arg0->unk_20.z + arg0->unk_2C.z); + fn_1_129B4(0.5f, &arg0->unk_20, &arg0->unk_38, &spC); + spC.y -= arg0->unk_14 * (0.375f * arg0->unk_04); + for (var_r30 = arg0->unk_54, var_r29 = 0; var_r29 < arg0->unk_44; var_r29++, var_r30++) { + var_f31 = (float)var_r29 / (arg0->unk_44 - 1); + fn_1_12AA4(var_f31, &arg0->unk_20, &spC, &arg0->unk_38, &var_r30->unk_08[0]); + fn_1_129B4(var_f31, &arg0->unk_20, &arg0->unk_38, &var_r30->unk_08[2]); + } + fn_1_129B4(0.1f, &arg0->unk_38, &arg0->unk_2C, &spC); + spC.y -= arg0->unk_18 * (0.375f * arg0->unk_04); + for (var_r30 = &arg0->unk_54[arg0->unk_44], var_r29 = arg0->unk_44; var_r29 < arg0->unk_02; var_r29++, var_r30++) { + var_f31 = (float)(var_r29 - arg0->unk_44) / ((arg0->unk_02 - arg0->unk_44) - 1); + fn_1_12AA4(var_f31, &arg0->unk_38, &spC, &arg0->unk_2C, &var_r30->unk_08[0]); + fn_1_129B4(var_f31, &arg0->unk_38, &arg0->unk_2C, &var_r30->unk_08[2]); + } + } + for (var_r29 = 0, var_r30 = arg0->unk_54; var_r29 < arg0->unk_02; var_r29++, var_r30++) { + PSVECSubtract(&var_r30->unk_08[0], &var_r30->unk_08[2], &sp24); + var_f30 = var_r30->unk_08[0].z; + if ((sp8 = fn_1_F88C(&var_r30->unk_08[2], &sp24, &sp18)) != -1) { + var_r30->unk_08[0] = sp18; + var_r30->unk_08[0].z = var_f30; + var_r30->unk_04 = 1; + } + else { + var_r30->unk_04 = 0; + } + if (var_r30->unk_02 == -1) { + fn_1_129B4(0.9f, &var_r30->unk_08[1], &var_r30->unk_08[0], &var_r30->unk_08[0]); + } + var_r30->unk_08[1] = var_r30->unk_08[0]; + } +} + +s32 lbl_1_data_694[2] = { 0xFFA040FF, 0xC8FFFF }; +s16 lbl_1_data_69C[2] = { -0x10, 0x10 }; +s16 lbl_1_data_6A0[2] = { 0x1A4, 0x60 }; +Vec lbl_1_data_6A4[4] = { + { -0.5f, 0.5f, 0.0f }, + { 0.5f, 0.5f, 0.0f }, + { 0.5f, -0.5f, 0.0f }, + { -0.5f, -0.5f, 0.0f }, +}; +Vec2f lbl_1_data_6D4[4] = { { 0.0f, 0.0f }, { 0.25f, 0.0f }, { 0.25f, 0.25f }, { 0.0f, 0.25f } }; + +void fn_1_102A8(ModelData *model, Mtx matrix) +{ + Mtx sp8; + s16 var_r30; + + M428DllPlayerUnk120Struct *var_r31 = model->unk_120; + if (omPauseChk() == 0) { + fn_1_FE98(var_r31); + } + GXLoadPosMtxImm(matrix, 0); + MTXInvXpose(matrix, sp8); + GXLoadNrmMtxImm(sp8, 0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetNumChans(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_RASC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_VTX, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_SPEC); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXSetZCompLoc(GX_FALSE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_ONE, GX_BL_ZERO, GX_LO_NOOP); + GXSetLineWidth(0x10, GX_TO_ZERO); + // bug, it should be var_r31->unk_54 + DCFlushRange(&var_r31->unk_54, var_r31->unk_02 * sizeof(M428DllPlayerUnkStruct)); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, var_r31->unk_54->unk_08, sizeof(M428DllPlayerUnkStruct)); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &lbl_1_data_694[var_r31->unk_10], 4); + GXBegin(GX_LINESTRIP, GX_VTXFMT0, var_r31->unk_02); + for (var_r30 = 0; var_r30 < var_r31->unk_02; var_r30++) { + GXPosition1x16(var_r30); + GXColor1x16(0); + } +} + +void fn_1_10530(s32 arg0, Vec *arg1, Vec *arg2) +{ + ModelData *var_r30 = &Hu3DData[arg0]; + M428DllPlayerUnk120Struct *var_r31 = var_r30->unk_120; + var_r31->unk_20 = *arg1; + var_r31->unk_2C = *arg2; +} + +void fn_1_10590(s32 arg0, s32 arg1, s32 arg2, Vec *arg3) +{ + ModelData *var_r30 = &Hu3DData[arg0]; + M428DllPlayerUnk120Struct *var_r31 = var_r30->unk_120; + var_r31->unk_1C = arg1; + if (arg1 != 0) { + var_r31->unk_38 = *arg3; + var_r31->unk_44 = arg2; + } +} + +void fn_1_105E8(s32 arg0, float arg8, float arg9) +{ + ModelData *var_r30 = &Hu3DData[arg0]; + M428DllPlayerUnk120Struct *var_r31 = var_r30->unk_120; + if (arg8 > 1.0f) { + arg8 = 1.0f; + } + else if (arg8 < 0.0f) { + arg8 = 0.0f; + } + if (arg9 > 1.0f) { + arg9 = 1.0f; + } + else if (arg9 < 0.0f) { + arg9 = 0.0f; + } + var_r31->unk_14 = arg8; + var_r31->unk_18 = arg9; +} + +s32 fn_1_106A8(s32 arg0, s32 arg1, Vec *arg2, float *arg3) +{ + M428DllPlayerUnkStruct *var_r30; + s32 var_r29; + + ModelData *var_r28 = &Hu3DData[arg0]; + M428DllPlayerUnk120Struct *var_r31 = var_r28->unk_120; + float var_f31 = 0.0f; + for (var_r29 = 0; var_r29 < var_r31->unk_02; var_f31 += var_r31->unk_08, var_r29++) { + if (arg1 == 0) { + var_r30 = &var_r31->unk_54[var_r29]; + } + else { + var_r30 = &var_r31->unk_54[(var_r31->unk_02 - 1) - var_r29]; + } + if (var_r30->unk_04 != 0) { + *arg2 = var_r30->unk_08[0]; + *arg3 = var_f31; + return 1; + } + } + return 0; +} + +s32 fn_1_10788(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + ModelData *sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + M428DllData4B0Struct *var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + sp8 = &Hu3DData[arg0]; + sp18.x = arg2->y - arg1->y; + sp18.y = arg1->x - arg2->x; + sp18.z = -((sp18.x * arg1->x) + (sp18.y * arg1->y)); + if (arg1->x < arg2->x) { + var_f27 = arg1->x; + var_f26 = arg2->x; + } + else { + var_f27 = arg2->x; + var_f26 = arg1->x; + } + if (arg1->y < arg2->y) { + var_f30 = arg1->y; + var_f29 = arg2->y; + } + else { + var_f30 = arg2->y; + var_f29 = arg1->y; + } + for (var_r30 = 0, var_r31 = lbl_1_data_4B0; var_r30 < 5; var_r30++, var_r31++) { + sp30 = var_r31->unk_00; + sp30.x -= var_r31->unk_0C; + sp24 = var_r31->unk_00; + sp24.x += var_r31->unk_0C; + spC.x = sp24.y - sp30.y; + spC.y = sp30.x - sp24.x; + spC.z = -((spC.x * sp30.x) + (spC.y * sp30.y)); + if ((var_r31->unk_00.y >= var_f30) && (var_r31->unk_00.y <= var_f29) && (sp18.x != 0.0f)) { + var_f31 = -((sp18.z + (sp18.y * var_r31->unk_00.y)) / sp18.x); + var_f28 = var_r31->unk_00.y; + if ((var_f31 >= sp30.x) && (var_f31 <= sp24.x)) { + var_r29 = 1; + } + else { + var_r29 = 0; + } + if ((var_f31 >= var_f27) && (var_f31 <= var_f26) && (var_f28 >= var_f30) && (var_f28 <= var_f29)) { + var_r28 = 1; + } + else { + var_r28 = 0; + } + if ((var_r29 != 0) && (var_r28 != 0)) { + if (var_f31 < var_r31->unk_00.x) { + *arg3 = sp30; + } + else { + *arg3 = sp24; + } + return var_r30; + } + } + } + return -1; +} + +void fn_1_10A88(void) +{ + M428DllPlayerWork3 *var_r31; + omObjData *var_r30; + s32 var_r29; + M428DllPlayerUnk120Struct2 *var_r28; + ModelData *var_r27; + s32 var_r26; + s32 var_r25; + + var_r30 = lbl_1_bss_2B4 = omAddObjEx(lbl_1_bss_2D0, 0x42, 0xA, 0, -1, fn_1_11014); + var_r31 = var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M428DllPlayerWork3), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, sizeof(M428DllPlayerWork3)); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M428, 0x0E), 0x80, 0); + var_r31->unk_00 = var_r29; + espDispOn(var_r29); + espDrawNoSet(var_r29, 0); + espAttrSet(var_r29, HUSPR_ATTR_NOANIM); + espPosSet(var_r29, 288.0, 240.0); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M428, 0x0C), 0x50, 0); + var_r31->unk_04[0] = var_r29; + espDispOn(var_r29); + espDrawNoSet(var_r29, 0); + espAttrSet(var_r29, HUSPR_ATTR_NOANIM); + espPosSet(var_r29, 288.0, 240.0); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M428, 0x0D), 0x50, 0); + var_r31->unk_04[1] = var_r29; + espDispOn(var_r29); + espDrawNoSet(var_r29, 0); + espAttrSet(var_r29, HUSPR_ATTR_NOANIM); + espPosSet(var_r29, 288.0, 240.0); + var_r31->unk_0C[0][0] = var_r31->unk_0C[0][1] = 0.0f; + var_r31->unk_0C[1][0] = var_r31->unk_0C[1][1] = 0.0f; + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M428, 0x10), 0x100, 0); + var_r31->unk_1C[0] = var_r29; + espDispOn(var_r29); + espDrawNoSet(var_r29, 0); + espAttrSet(var_r29, HUSPR_ATTR_NOANIM); + espPosSet(var_r29, 144.0, 240.0); + espScaleSet(var_r29, 36.0, 60.0); + espColorSet(var_r29, 0xFF, 0xFF, 0xFF); + espTPLvlSet(var_r29, 0.0); + var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_M428, 0x10), 0x100, 0); + var_r31->unk_1C[1] = var_r29; + espDispOn(var_r29); + espDrawNoSet(var_r29, 0); + espAttrSet(var_r29, HUSPR_ATTR_NOANIM); + espPosSet(var_r29, 432.0, 240.0); + espScaleSet(var_r29, 36.0, 60.0); + espColorSet(var_r29, 0xFF, 0xFF, 0xFF); + espTPLvlSet(var_r29, 0.0); + var_r31->unk_24[0][0] = var_r31->unk_24[0][1] = 0.0f; + var_r31->unk_24[1][0] = var_r31->unk_24[1][1] = 0.0f; + var_r31->unk_34 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M428, 0x0A), MEMORY_DEFAULT_NUM)); + var_r31->unk_38 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M428, 0x0B), MEMORY_DEFAULT_NUM)); + var_r30->model[0] = fn_1_12CD4(var_r31->unk_34, 2); + Hu3DModelCameraSet(var_r30->model[0], 1); + Hu3DModelLayerSet(var_r30->model[0], 5); + fn_1_13D9C(var_r30->model[0], -1, 0); + var_r27 = &Hu3DData[var_r30->model[0]]; + var_r28 = var_r27->unk_120; + var_r28->unk_22 |= 3; + var_r30->model[1] = fn_1_12CD4(var_r31->unk_38, 2); + Hu3DModelCameraSet(var_r30->model[1], 1); + Hu3DModelLayerSet(var_r30->model[1], 5); + fn_1_13D9C(var_r30->model[1], -1, 0); + var_r27 = &Hu3DData[var_r30->model[1]]; + var_r28 = var_r27->unk_120; + var_r28->unk_22 |= 3; + var_r30->model[2] = fn_1_12CD4(var_r31->unk_34, 2); + Hu3DModelCameraSet(var_r30->model[2], 2); + Hu3DModelLayerSet(var_r30->model[2], 5); + fn_1_13D9C(var_r30->model[2], -1, 0); + var_r27 = &Hu3DData[var_r30->model[2]]; + var_r28 = var_r27->unk_120; + var_r28->unk_22 |= 3; + var_r30->model[3] = fn_1_12CD4(var_r31->unk_38, 2); + Hu3DModelCameraSet(var_r30->model[3], 2); + Hu3DModelLayerSet(var_r30->model[3], 5); + fn_1_13D9C(var_r30->model[3], -1, 0); + var_r27 = &Hu3DData[var_r30->model[3]]; + var_r28 = var_r27->unk_120; + var_r28->unk_22 |= 3; + for (var_r26 = 0; var_r26 < 2; var_r26++) { + for (var_r25 = 0; var_r25 < 2; var_r25++) { + var_r31->unk_3C[var_r26][var_r25] = var_r31->unk_4C[var_r26][var_r25] = -1; + } + } +} + +void fn_1_11014(omObjData *object) +{ + Vec sp20; + float var_f31; + float var_f30; + s32 var_r31; + s32 var_r29; + omObjData *var_r27; + M428DllPlayerWork *var_r26; + + M428DllPlayerWork3 *var_r30 = object->data; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30->unk_0C[var_r31][0] = var_r30->unk_0C[var_r31][0] + (0.05f * (var_r30->unk_0C[var_r31][1] - var_r30->unk_0C[var_r31][0])); + var_f30 = lbl_1_data_6A0[0] + (var_r30->unk_0C[var_r31][0] * (lbl_1_data_6A0[1] - lbl_1_data_6A0[0])); + espPosSet(var_r30->unk_04[var_r31], 288.0f + lbl_1_data_69C[var_r31], var_f30); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + var_r30->unk_24[var_r31][0] = var_r30->unk_24[var_r31][0] + (0.05f * (var_r30->unk_24[var_r31][1] - var_r30->unk_24[var_r31][0])); + espTPLvlSet(var_r30->unk_1C[var_r31], var_r30->unk_24[var_r31][0]); + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + for (var_r29 = 0; var_r29 < 2; var_r29++) { + var_r26 = lbl_1_bss_2C8[var_r31]->data; + var_r27 = var_r26->unk_00[var_r29]; + if (var_r30->unk_3C[var_r31][var_r29] > 0) { + var_f31 = (30.0f - var_r30->unk_3C[var_r31][var_r29]) / 6.0f; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + else if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + var_f31 = sind((180.0f * var_f31)); + sp20.x = var_r27->trans.x; + sp20.y = 200.0f + var_r27->trans.y; + sp20.z = var_r27->trans.z; + fn_1_13E14(object->model[var_r31 * 2], var_r29, sp20); + fn_1_13EC8(object->model[var_r31 * 2], var_r29, 125.0f * (1.0f + var_f31)); + var_r30->unk_3C[var_r31][var_r29] -= 1; + } + else { + fn_1_13D9C(object->model[var_r31 * 2], var_r29, 0); + } + if (var_r30->unk_4C[var_r31][var_r29] > 0) { + var_f31 = (30.0f - var_r30->unk_4C[var_r31][var_r29]) / 6.0f; + if (var_f31 < 0.0f) { + var_f31 = 0.0f; + } + else if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + var_f31 = sind((180.0f * var_f31)); + sp20.x = var_r27->trans.x; + sp20.y = 200.0f + var_r27->trans.y; + sp20.z = var_r27->trans.z; + fn_1_13E14(object->model[(var_r31 * 2) + 1], var_r29, sp20); + fn_1_13EC8(object->model[(var_r31 * 2) + 1], var_r29, 125.0f * (1.0f + var_f31)); + var_r30->unk_4C[var_r31][var_r29] -= 1; + } + else { + fn_1_13D9C(object->model[(var_r31 * 2) + 1], var_r29, 0); + } + } + } +} + +void fn_1_115F8(void) +{ + M428DllPlayerWork3 *var_r31 = lbl_1_bss_2B4->data; + espKill(var_r31->unk_00); + espKill(var_r31->unk_04[0]); + espKill(var_r31->unk_04[1]); + espKill(var_r31->unk_1C[0]); + espKill(var_r31->unk_1C[1]); + Hu3DModelKill(lbl_1_bss_2B4->model[0]); + Hu3DModelKill(lbl_1_bss_2B4->model[1]); + Hu3DModelKill(lbl_1_bss_2B4->model[2]); + Hu3DModelKill(lbl_1_bss_2B4->model[3]); + HuSprAnimKill(var_r31->unk_34); + HuSprAnimKill(var_r31->unk_38); +} + +void fn_1_116C4(s32 arg0, s32 arg1) +{ + if (lbl_1_bss_2B4) { + s32 var_r31; + M428DllPlayerWork3 *var_r30 = lbl_1_bss_2B4->data; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + if (arg1 == 0) { + var_r30->unk_3C[arg0][var_r31] = 0x1E; + } + else { + var_r30->unk_4C[arg0][var_r31] = 0x1E; + } + } + } +} + +void fn_1_11754(s32 arg0, float arg8) +{ + if (lbl_1_bss_2B4) { + M428DllPlayerWork3 *var_r31 = lbl_1_bss_2B4->data; + var_r31->unk_24[arg0][1] = arg8; + } +} + +void fn_1_11798(s32 sp8) +{ + s32 var_r30; + s32 var_r29; + + if (lbl_1_bss_2B4) { + M428DllPlayerWork3 *work = lbl_1_bss_2B4->data; + if (sp8 == 0) { + espDispOff(work->unk_00); + espDispOff(work->unk_04[0]); + espDispOff(work->unk_04[1]); + espDispOff(work->unk_1C[0]); + espDispOff(work->unk_1C[1]); + } + else { + espDispOn(work->unk_00); + espDispOn(work->unk_04[0]); + espDispOn(work->unk_04[1]); + espDispOn(work->unk_1C[0]); + espDispOn(work->unk_1C[1]); + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + for (var_r29 = 0; var_r29 < 2; var_r29++) { + work->unk_3C[var_r30][var_r29] = work->unk_4C[var_r30][var_r29] = -1; + } + } + } +} + +void fn_1_118A8(s32 arg0, float var_f1) +{ + M428DllPlayerWork3 *var_r31; + if (lbl_1_bss_2B4) { + var_r31 = lbl_1_bss_2B4->data; + if (var_f1 < 0.0f) { + var_f1 = 0.0f; + } + else if (var_f1 > 1.0f) { + var_f1 = 1.0f; + } + var_r31->unk_0C[arg0][1] = var_f1; + } +} + +void fn_1_11930(void) +{ + M428DllPlayerWork4 *var_r31; + s32 var_r30; + s32 var_r29; + omObjData *var_r28; + M428DllPlayerUnk120Struct2 *var_r27; + ModelData *var_r26; + AnimData *var_r25; + + var_r28 = lbl_1_bss_2B0 = omAddObjEx(lbl_1_bss_2D0, 0xBF, 0, 0, -1, fn_1_11A60); + var_r31 = var_r28->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M428DllPlayerWork4), MEMORY_DEFAULT_NUM); + memset(var_r31, 0, sizeof(M428DllPlayerWork4)); + var_r25 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M428, 0x0F), MEMORY_DEFAULT_NUM)); + var_r31->unk_10 = var_r25; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r29 = fn_1_12CD4(var_r25, 0x200); + var_r31->unk_00[var_r30] = var_r29; + if (var_r30 == 0) { + Hu3DModelCameraSet(var_r29, 1); + } + else { + Hu3DModelCameraSet(var_r29, 2); + } + Hu3DModelLayerSet(var_r29, 3); + var_r31->unk_08[var_r30] = 0; + var_r26 = &Hu3DData[var_r29]; + var_r27 = var_r26->unk_120; + var_r27->unk_20 = 0; + } +} + +void fn_1_11A60(omObjData *object) +{ + s32 temp_r4; + M428DllPlayerUnkStruct2 *var_r31; + M428DllPlayerWork4 *var_r30; + s32 var_r29; + M428DllPlayerUnk120Struct2 *var_r28; + s32 var_r27; + ModelData *var_r26; + + var_r30 = object->data; + for (var_r29 = 0; var_r29 < 2; var_r29++) { + if (var_r30->unk_08[var_r29] <= 0) { + Hu3DModelAttrSet(var_r30->unk_00[var_r29], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrReset(var_r30->unk_00[var_r29], HU3D_ATTR_DISPOFF); + var_r26 = &Hu3DData[var_r30->unk_00[var_r29]]; + var_r28 = var_r26->unk_120; + var_r31 = var_r28->unk_3C; + var_r28->unk_23 = 0; + for (var_r27 = 0; var_r27 < var_r28->unk_26; var_r27++, var_r31++) { + if (!(var_r31->unk_30 <= 0.0f)) { + var_r31->unk_38.x += var_r31->unk_04; + var_r31->unk_38.y += var_r31->unk_08; + var_r31->unk_38.z += var_r31->unk_0C; + var_r31->unk_34 = var_r31->unk_34 + var_r31->unk_18; + if (var_r31->unk_34 >= 360.0f) { + var_r31->unk_34 = var_r31->unk_34 - 360.0f; + } + var_r31->unk_48 = var_r31->unk_28; + var_r31->unk_28 = var_r31->unk_28 + var_r31->unk_2C; + if (var_r31->unk_48 >= 0x10) { + var_r31->unk_48 = 0; + var_r31->unk_00 = 0; + var_r31->unk_30 = 0.0f; + var_r30->unk_08[var_r29] -= 1; + } + } + } + } + } +} + +void fn_1_11C20(void) +{ + + omObjData *var_r30 = lbl_1_bss_2B0; + M428DllPlayerWork4 *var_r31 = var_r30->data; + Hu3DModelAttrSet(var_r31->unk_00[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(var_r31->unk_00[1], HU3D_ATTR_DISPOFF); + HuSprAnimKill(var_r31->unk_10); + var_r30->func = NULL; +} + +s32 fn_1_11C8C(s32 arg0, Vec arg1, Vec arg2, GXColor arg3, float arg8, float arg9, float argA) +{ + M428DllPlayerUnkStruct2 *var_r31; + M428DllPlayerUnk120Struct2 *var_r30; + s32 var_r29; + M428DllPlayerWork4 *var_r28; + omObjData *var_r27; + ModelData *var_r26; + + var_r27 = lbl_1_bss_2B0; + var_r28 = var_r27->data; + var_r26 = &Hu3DData[var_r28->unk_00[arg0]]; + var_r30 = var_r26->unk_120; + for (var_r31 = var_r30->unk_3C, var_r29 = 0; var_r29 < var_r30->unk_26; var_r29++, var_r31++) { + if (var_r31->unk_30 <= 0.0f) { + break; + } + } + if (var_r29 >= var_r30->unk_26) { + return -1; + } + var_r31->unk_00 = var_r31->unk_02 = 0; + var_r31->unk_38.x = arg1.x; + var_r31->unk_38.y = arg1.y; + var_r31->unk_38.z = arg1.z; + var_r31->unk_04 = arg2.x; + var_r31->unk_08 = arg2.y; + var_r31->unk_0C = arg2.z; + var_r31->unk_18 = arg9; + var_r31->unk_30 = arg8; + var_r31->unk_44.r = arg3.r; + var_r31->unk_44.g = arg3.g; + var_r31->unk_44.b = arg3.b; + var_r31->unk_44.a = arg3.a; + var_r31->unk_34 = 0.0f; + var_r31->unk_48 = 0; + var_r31->unk_00 = 0; + var_r31->unk_28 = 0.0f; + var_r31->unk_2C = argA; + var_r28->unk_08[arg0]++; + return var_r29; +} + +static inline s32 fn_1_11C8C_inlined(s32 arg0, Vec arg1, Vec arg2, GXColor arg3, float arg8, float arg9, float argA) +{ + M428DllPlayerUnkStruct2 *var_r31; + M428DllPlayerUnk120Struct2 *var_r30; + s32 var_r29; + M428DllPlayerWork4 *var_r28; + omObjData *var_r27; + ModelData *var_r26; + + var_r27 = lbl_1_bss_2B0; + var_r28 = var_r27->data; + var_r26 = &Hu3DData[var_r28->unk_00[arg0]]; + var_r30 = var_r26->unk_120; + for (var_r31 = var_r30->unk_3C, var_r29 = 0; var_r29 < var_r30->unk_26; var_r29++, var_r31++) { + if (var_r31->unk_30 <= 0.0f) { + break; + } + } + if (var_r29 >= var_r30->unk_26) { + return -1; + } + var_r31->unk_00 = var_r31->unk_02 = 0; + var_r31->unk_38.x = arg1.x; + var_r31->unk_38.y = arg1.y; + var_r31->unk_38.z = arg1.z; + var_r31->unk_04 = arg2.x; + var_r31->unk_08 = arg2.y; + var_r31->unk_0C = arg2.z; + var_r31->unk_18 = arg9; + var_r31->unk_30 = arg8; + var_r31->unk_44.r = arg3.r; + var_r31->unk_44.g = arg3.g; + var_r31->unk_44.b = arg3.b; + var_r31->unk_44.a = arg3.a; + var_r31->unk_34 = 0.0f; + var_r31->unk_48 = 0; + var_r31->unk_00 = 0; + var_r31->unk_28 = 0.0f; + var_r31->unk_2C = argA; + var_r28->unk_08[arg0]++; + return var_r29; +} + +s32 fn_1_11DE4(s32 arg0, Vec arg1, Vec arg2, float arg8, float arg9, float argA, float argB, GXColor arg3) +{ + Vec sp64; + Vec sp58; + s32 sp24; + s32 sp20; + float var_f31; + + sp58.x = arg2.z; + sp58.z = arg2.x; + sp58.y = 0.0f; + VECNormalize(&sp58, &sp58); + var_f31 = 0.5f * argA; + sp64.x = arg1.x + (sp58.x * var_f31); + sp64.y = arg1.y + (sp58.y * var_f31); + sp64.z = arg1.z + (sp58.z * var_f31); + + sp24 = fn_1_11C8C_inlined(arg0, sp64, arg2, arg3, arg8, arg9, argB); + sp64.x = arg1.x - (sp58.x * var_f31); + sp64.y = arg1.y - (sp58.y * var_f31); + sp64.z = arg1.z - (sp58.z * var_f31); + + sp20 = fn_1_11C8C_inlined(arg0, sp64, arg2, arg3, arg8, -arg9, argB); + return (sp24 << 0x10) | sp20; +} + +float fn_1_12254(float arg8, float arg9) +{ + float var_f31; + + if (arg8 >= 360.0f) { + arg8 -= 360.0f; + } + else if (arg8 < 0.0f) { + arg8 += 360.0f; + } + if (arg9 >= 360.0f) { + arg9 -= 360.0f; + } + else if (arg9 < 0.0f) { + arg9 += 360.0f; + } + var_f31 = arg8 - arg9; + if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } + else if (var_f31 >= 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} + +float fn_1_1236C(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + + if (arg8 >= 360.0) { + arg8 -= 360.0; + } + else if (arg8 < 0.0) { + arg8 += 360.0; + } + if (arg9 >= 360.0) { + arg9 -= 360.0; + } + else if (arg9 < 0.0) { + arg9 += 360.0; + } + var_f30 = 360.0 + (arg8 - arg9); + if (fabs(var_f30) >= 360.0) { + var_f30 = fmod(var_f30, 360.0); + } + if (var_f30 < 180.0) { + if (var_f30 <= argA) { + var_f31 = var_f30; + } + else { + var_f31 = argA; + } + } + else if (360.0 - var_f30 <= argA) { + var_f31 = -(360.0 - var_f30); + } + else { + var_f31 = -argA; + } + var_f31 += arg9; + if (var_f31 >= 360.0) { + var_f31 -= 360.0; + } + else if (var_f31 < 0.0) { + var_f31 += 360.0; + } + return var_f31; +} + +float fn_1_125BC(float arg8, float arg9, float argA) +{ + float var_f24; + float var_f23; + + var_f23 = fn_1_12254(argA, arg9); + var_f24 = fabs(var_f23 * arg8); + return fn_1_1236C(argA, arg9, var_f24); +} + +void fn_1_129B4(float arg8, Vec *arg0, Vec *arg1, Vec *arg2) +{ + Vec sp8; + sp8.x = arg0->x + (arg8 * (arg1->x - arg0->x)); + sp8.y = arg0->y + (arg8 * (arg1->y - arg0->y)); + sp8.z = arg0->z + (arg8 * (arg1->z - arg0->z)); + *arg2 = sp8; +} + +float fn_1_12A2C(float arg8, float arg9, float argA, float argB) +{ + float var_f31; + float var_f30; + + var_f31 = 1.0 - arg8; + var_f30 = (argB * (arg8 * arg8)) + ((arg9 * (var_f31 * var_f31)) + (2.0 * (argA * (var_f31 * arg8)))); + return var_f30; +} + +void fn_1_12AA4(float arg8, Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + arg3->x = fn_1_12A2C(arg8, arg0->x, arg1->x, arg2->x); + arg3->y = fn_1_12A2C(arg8, arg0->y, arg1->y, arg2->y); + arg3->z = fn_1_12A2C(arg8, arg0->z, arg1->z, arg2->z); +} + +s16 fn_1_12CD4(AnimData *sp8, s16 var_r26) +{ + s16 var_r30; + M428DllPlayerUnkStruct2 *var_r29; + Vec2f *var_r28; + Vec *var_r25; + void *var_r24; + void *var_r22; + + s16 var_r23 = Hu3DHookFuncCreate(fn_1_134C0); + ModelData *var_r27 = &Hu3DData[var_r23]; + M428DllPlayerUnk120Struct2 *var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M428DllPlayerUnk120Struct2), var_r27->unk_48); + var_r27->unk_120 = var_r31; + var_r31->unk_38 = sp8; + var_r31->unk_26 = var_r26; + var_r31->unk_20 = 0; + var_r31->unk_22 = 0; + var_r31->unk_4C = 0; + var_r31->unk_50 = 0; + var_r31->unk_28 = 0; + var_r31->unk_21 = 0; + var_r31->unk_23 = 0; + var_r31->unk_30 = 0; + var_r31->unk_00 = var_r31->unk_02 = 0; + var_r29 = HuMemDirectMallocNum(HEAP_DATA, var_r26 * sizeof(M428DllPlayerUnkStruct2), var_r27->unk_48); + var_r31->unk_3C = var_r29; + memset(var_r29, 0, var_r26 * sizeof(M428DllPlayerUnkStruct2)); + for (var_r30 = 0; var_r30 < var_r26; var_r30++, var_r29++) { + var_r29->unk_30 = 0.0f; + var_r29->unk_34 = 0.0f; + var_r29->unk_28 = 0.0f; + var_r29->unk_2C = 1.0f; + var_r29->unk_38.x = ((frand() & 0x7F) - 0x40) * 0x14; + var_r29->unk_38.y = ((frand() & 0x7F) - 0x40) * 0x1E; + var_r29->unk_38.z = ((frand() & 0x7F) - 0x40) * 0x14; + var_r29->unk_44.r = var_r29->unk_44.g = var_r29->unk_44.b = var_r29->unk_44.a = 0xFF; + var_r29->unk_48 = 0; + } + var_r25 = HuMemDirectMallocNum(HEAP_DATA, var_r26 * sizeof(Vec) * 4, var_r27->unk_48); + var_r31->unk_40 = var_r25; + for (var_r30 = 0; var_r30 < (var_r26 * 4); var_r30++, var_r25++) { + var_r25->x = var_r25->y = var_r25->z = 0.0f; + } + var_r28 = HuMemDirectMallocNum(HEAP_DATA, var_r26 * sizeof(Vec2f) * 4, var_r27->unk_48); + var_r31->unk_44 = var_r28; + for (var_r30 = 0; var_r30 < var_r26; var_r30++) { + var_r28->x = 0.0f; + var_r28->y = 0.0f; + var_r28++; + var_r28->x = 1.0f; + var_r28->y = 0.0f; + var_r28++; + var_r28->x = 1.0f; + var_r28->y = 1.0f; + var_r28++; + var_r28->x = 0.0f; + var_r28->y = 1.0f; + var_r28++; + } + var_r24 = HuMemDirectMallocNum(HEAP_DATA, 0x10000, var_r27->unk_48); + var_r22 = var_r24; + DCFlushRange(var_r24, 0x10000); + GXBeginDisplayList(var_r22, 0x10000); + GXBegin(GX_QUADS, GX_VTXFMT0, var_r26 * 4); + for (var_r30 = 0; var_r30 < var_r26; var_r30++) { + GXUnknownu16(var_r30 * 4); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4); + GXUnknownu16(var_r30 * 4 + 1); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4 + 1); + GXUnknownu16(var_r30 * 4 + 2); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4 + 2); + GXUnknownu16(var_r30 * 4 + 3); + GXUnknownu16(var_r30); + GXUnknownu16(var_r30 * 4 + 3); + } + var_r31->unk_34 = GXEndDisplayList(); + var_r31->unk_48 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_34, var_r27->unk_48); + memcpy(var_r31->unk_48, var_r24, var_r31->unk_34); + DCFlushRange(var_r31->unk_48, var_r31->unk_34); + HuMemDirectFree(var_r24); + (void)var_r30; + (void)var_r26; + return var_r23; +} + +s16 fn_1_13184(s16 sp8) +{ + M428DllPlayerUnk120Struct2 *var_r31; + M428DllPlayerUnkStruct2 *var_r30; + Vec2f *var_r29; + s16 var_r28; + ModelData *var_r27; + M428DllPlayerUnk120Struct2 *var_r26; + Vec *var_r25; + s32 var_r24; + ModelData *var_r23; + s16 var_r22; + + var_r23 = &Hu3DData[sp8]; + var_r26 = var_r23->unk_120; + var_r22 = Hu3DHookFuncCreate(var_r23->hook); + var_r27 = &Hu3DData[var_r22]; + var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M428DllPlayerUnk120Struct2), var_r27->unk_48); + var_r27->unk_120 = var_r31; + var_r31->unk_38 = var_r26->unk_38; + var_r31->unk_26 = var_r26->unk_26; + var_r24 = var_r31->unk_26; + var_r31->unk_20 = 0; + var_r31->unk_22 = var_r26->unk_22; + var_r31->unk_4C = NULL; + var_r31->unk_50 = NULL; + var_r31->unk_28 = 0; + var_r31->unk_21 = 0; + var_r31->unk_30 = 0; + var_r31->unk_00 = var_r31->unk_02 = 0; + var_r30 = HuMemDirectMallocNum(HEAP_DATA, var_r24 * sizeof(M428DllPlayerUnkStruct2), var_r27->unk_48); + var_r31->unk_3C = var_r30; + for (var_r28 = 0; var_r28 < var_r24; var_r28++, var_r30++) { + var_r30->unk_30 = 0.0f; + var_r30->unk_34 = 0.0f; + var_r30->unk_28 = 0.0f; + var_r30->unk_2C = 1.0f; + var_r30->unk_38.x = ((frand() & 0x7F) - 0x40) * 0x14; + var_r30->unk_38.y = ((frand() & 0x7F) - 0x40) * 0x1E; + var_r30->unk_38.z = ((frand() & 0x7F) - 0x40) * 0x14; + var_r30->unk_44.r = var_r30->unk_44.g = var_r30->unk_44.b = var_r30->unk_44.a = 0xFF; + var_r30->unk_48 = 0; + } + var_r25 = HuMemDirectMallocNum(HEAP_DATA, var_r24 * sizeof(Vec) * 4, var_r27->unk_48); + var_r31->unk_40 = var_r25; + for (var_r28 = 0; var_r28 < (var_r24 * 4); var_r28++, var_r25++) { + var_r25->x = var_r25->y = var_r25->z = 0.0f; + } + var_r29 = HuMemDirectMallocNum(HEAP_DATA, var_r24 * sizeof(Vec2f) * 4, var_r27->unk_48); + var_r31->unk_44 = var_r29; + for (var_r28 = 0; var_r28 < var_r24; var_r28++) { + var_r29->x = 0.0f; + var_r29->y = 0.0f; + var_r29++; + var_r29->x = 1.0f; + var_r29->y = 0.0f; + var_r29++; + var_r29->x = 1.0f; + var_r29->y = 1.0f; + var_r29++; + var_r29->x = 0.0f; + var_r29->y = 1.0f; + var_r29++; + } + var_r31->unk_34 = var_r26->unk_34; + var_r31->unk_48 = var_r26->unk_48; + return var_r22; +} + +void fn_1_134C0(ModelData *var_r23, Mtx var_r22) +{ + Mtx sp128; + Mtx spF8; + Mtx spC8; + Vec sp98[4]; + Vec sp68[4]; + Vec sp38[4]; + ROMtx sp8; + M428DllPlayerUnk120Struct2 *var_r31; + Vec *var_r30; + M428DllPlayerUnkStruct2 *var_r29; + Vec2f *var_r28; + Vec *var_r27; + s16 var_r26; + s16 var_r25; + Vec *var_r24; + s16 var_r21; + s16 var_r20; + s16 var_r19; + M428DllPlayerHook var_r18; + + var_r31 = var_r23->unk_120; + if ((var_r31->unk_2C != GlobalCounter) || (shadowModelDrawF != 0)) { + if ((var_r31->unk_50) && (var_r31->unk_50 != var_r23)) { + fn_1_134C0(var_r31->unk_50, var_r22); + } + GXLoadPosMtxImm(var_r22, 0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + if (shadowModelDrawF != 0) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ONE, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + } + else { + var_r21 = var_r31->unk_38->bmp->dataFmt & 0xF; + if ((var_r21 == 7) || (var_r21 == 8)) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ONE, GX_CC_RASC, GX_CC_ZERO); + } + else { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + } + if ((var_r31->unk_22 & 1) != 0) { + GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); + } + else if ((var_r23->attr & 2) != 0) { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + } + else { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + } + } + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + HuSprTexLoad(var_r31->unk_38, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(0); + switch (var_r31->unk_20) { + case 0: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + break; + case 1: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + break; + case 2: + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + break; + } + if (HmfInverseMtxF3X3(var_r22, &sp128[0]) == 0) { + MTXIdentity(sp128); + } + PSMTXReorder(sp128, sp8); + if (var_r31->unk_4C) { + var_r18 = var_r31->unk_4C; + var_r18(var_r23, var_r31, var_r22); + } + var_r29 = var_r31->unk_3C; + var_r30 = var_r31->unk_40; + var_r28 = var_r31->unk_44; + PSMTXROMultVecArray(sp8, lbl_1_data_6A4, &sp38[0], 4); + for (var_r26 = 0; var_r26 < var_r31->unk_26; var_r26++, var_r29++) { + if (!var_r29->unk_30) { + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + var_r30->x = var_r30->y = var_r30->z = 0.0f; + var_r30++; + } + else if (!var_r29->unk_34) { + var_r27 = &sp98[0]; + var_r24 = &sp38[0]; + VECScale(var_r24++, var_r27, var_r29->unk_30); + VECAdd(var_r27++, &var_r29->unk_38, var_r30++); + VECScale(var_r24++, var_r27, var_r29->unk_30); + VECAdd(var_r27++, &var_r29->unk_38, var_r30++); + VECScale(var_r24++, var_r27, var_r29->unk_30); + VECAdd(var_r27++, &var_r29->unk_38, var_r30++); + VECScale(var_r24++, var_r27, var_r29->unk_30); + VECAdd(var_r27++, &var_r29->unk_38, var_r30++); + } + else { + VECScale(lbl_1_data_6A4, &sp98[0], var_r29->unk_30); + VECScale(&lbl_1_data_6A4[1], &sp98[1], var_r29->unk_30); + VECScale(&lbl_1_data_6A4[2], &sp98[2], var_r29->unk_30); + VECScale(&lbl_1_data_6A4[3], &sp98[3], var_r29->unk_30); + MTXRotRad(spC8, 0x5A, var_r29->unk_34); + MTXConcat(&sp128[0], spC8, spF8); + MTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); + VECAdd(&sp68[0], &var_r29->unk_38, var_r30++); + VECAdd(&sp68[1], &var_r29->unk_38, var_r30++); + VECAdd(&sp68[2], &var_r29->unk_38, var_r30++); + VECAdd(&sp68[3], &var_r29->unk_38, var_r30++); + } + } + var_r29 = var_r31->unk_3C; + var_r28 = var_r31->unk_44; + if ((var_r31->unk_22 & 2) == 0) { + for (var_r26 = 0; var_r26 < var_r31->unk_26; var_r26++, var_r29++) { + var_r20 = var_r29->unk_48 & 3; + var_r19 = (var_r29->unk_48 >> 2) & 3; + for (var_r25 = 0; var_r25 < 4; var_r25++, var_r28++) { + var_r28->x = (0.25f * var_r20) + lbl_1_data_6D4[var_r25].x; + var_r28->y = (0.25f * var_r19) + lbl_1_data_6D4[var_r25].y; + } + } + } + else { + for (var_r26 = 0; var_r26 < var_r31->unk_26; var_r26++, var_r29++) { + for (var_r25 = 0; var_r25 < 4; var_r25++, var_r28++) { + var_r28->x = 4.0f * lbl_1_data_6D4[var_r25].x; + var_r28->y = 4.0f * lbl_1_data_6D4[var_r25].y; + } + } + } + DCFlushRangeNoSync(var_r31->unk_40, var_r31->unk_26 * 0xC * 4); + DCFlushRangeNoSync(var_r31->unk_44, var_r31->unk_26 * 8 * 4); + DCFlushRangeNoSync(var_r31->unk_3C, var_r31->unk_26 * 0x4C); + PPCSync(); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, var_r31->unk_40, sizeof(Vec)); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_44, sizeof(M428DllPlayerUnkStruct2)); // bug? + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, var_r31->unk_44, sizeof(Vec2f)); + GXCallDisplayList(var_r31->unk_48, var_r31->unk_34); + if (shadowModelDrawF == 0) { + if ((var_r31->unk_21 & 2) == 0) { + var_r31->unk_28++; + } + if ((var_r31->unk_30 != 0) && (var_r31->unk_30 <= var_r31->unk_28)) { + if ((var_r31->unk_21 & 1) != 0) { + var_r31->unk_28 = 0; + } + var_r31->unk_28 = var_r31->unk_30; + } + var_r31->unk_2C = GlobalCounter; + } + } +} + +void fn_1_13D9C(s16 arg0, s16 arg1, s32 arg2) +{ + if (arg2 == 0) { + fn_1_13EC8(arg0, arg1, 0.0f); + return; + } + fn_1_13EC8(arg0, arg1, 1.0f); +} + +void fn_1_13E14(s16 arg0, s16 arg1, Vec arg2) +{ + M428DllPlayerUnkStruct2 *var_r31; + M428DllPlayerUnk120Struct2 *var_r30; + s32 var_r29; + ModelData *var_r28; + + var_r28 = &Hu3DData[arg0]; + var_r30 = var_r28->unk_120; + if (arg1 != -1) { + var_r31 = &var_r30->unk_3C[arg1]; + var_r31->unk_38 = arg2; + return; + } + for (var_r31 = var_r30->unk_3C, var_r29 = 0; var_r29 < var_r30->unk_26; var_r29++, var_r31++) { + var_r31->unk_38 = arg2; + } +} + +void fn_1_13EC8(s16 arg0, s16 arg1, float arg8) +{ + M428DllPlayerUnkStruct2 *var_r31; + M428DllPlayerUnk120Struct2 *var_r30; + s32 var_r29; + ModelData *var_r28; + + var_r28 = &Hu3DData[arg0]; + var_r30 = var_r28->unk_120; + if (arg1 != -1) { + var_r31 = &var_r30->unk_3C[arg1]; + var_r31->unk_30 = arg8; + return; + } + for (var_r31 = var_r30->unk_3C, var_r29 = 0; var_r29 < var_r30->unk_26; var_r29++, var_r31++) { + var_r31->unk_30 = arg8; + } +} + +s32 fn_1_13F54(s16 arg0, char *arg1, Mtx arg2, s32 arg3) +{ + Mtx sp44; + Mtx sp14; + ModelData *var_r31; + HsfData *var_r30; + + var_r31 = &Hu3DData[arg0]; + var_r30 = var_r31->hsfData; + lbl_1_bss_130 = 0; + if (var_r31->unk_08 != -1) { + lbl_1_bss_134 = 1; + } + else { + lbl_1_bss_134 = 0; + } + mtxRot(sp14, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); + MTXScale(sp44, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(sp14, sp44, sp44); + mtxTransCat(sp44, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); + MTXConcat(sp44, var_r31->unk_F0, sp44); + if (arg3 != 0) { + MTXConcat(arg2, sp44, sp44); + } + fn_1_14088(var_r30->root, sp44, arg1, arg2); + return lbl_1_bss_130; +} + +void fn_1_14088(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3) +{ + Mtx spF8; + Mtx spC8; + Mtx sp98; + Mtx sp68; + Mtx sp38; + Mtx sp8; + HsfTransform *var_r31; + HsfTransform *var_r30; + HsfTransform *var_r29; + HsfObject *var_r28; + HsfObject *var_r27; + u32 var_r25; + u32 var_r24; + u32 var_r23; + + if (lbl_1_bss_130 == 0) { + if (lbl_1_bss_134 != 0) { + var_r31 = &arg0->data.curr; + } + else { + var_r31 = &arg0->data.base; + } + if ((var_r31->scale.x <= 0.0f) && (var_r31->scale.y <= 0.0f) && (var_r31->scale.z <= 0.0f)) { + MTXCopy(arg1, spF8); + OSReport("OBJ MTX CHECK ERROR %s \n", arg0->name); + } + else { + mtxRot(spC8, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); + MTXScale(spF8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z); + MTXConcat(spC8, spF8, spF8); + mtxTransCat(spF8, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); + MTXConcat(arg1, spF8, spF8); + } + if (lbl_1_bss_138 != 0) { + OSReport("%s \n", arg0->name); + } + if (strcmp(arg2, arg0->name) == 0) { + MTXCopy(spF8, arg3); + lbl_1_bss_130 = 1; + } + for (var_r25 = 0; var_r25 < arg0->data.childrenCount; var_r25++) { + var_r28 = arg0->data.children[var_r25]; + if (lbl_1_bss_130 == 0) { + if (lbl_1_bss_134 != 0) { + var_r30 = &var_r28->data.curr; + } + else { + var_r30 = &var_r28->data.base; + } + if ((var_r30->scale.x <= 0.0f) && (var_r30->scale.y <= 0.0f) && (var_r30->scale.z <= 0.0f)) { + MTXCopy(spF8, sp68); + OSReport("OBJ MTX CHECK ERROR %s \n", var_r28->name); + } + else { + mtxRot(&sp98[0], var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); + MTXScale(sp68, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z); + MTXConcat(&sp98[0], sp68, sp68); + mtxTransCat(sp68, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); + MTXConcat(spF8, sp68, sp68); + } + if (lbl_1_bss_138 != 0) { + OSReport("%s \n", var_r28->name); + } + if (strcmp(arg2, var_r28->name) == 0) { + MTXCopy(sp68, arg3); + lbl_1_bss_130 = 1; + } + for (var_r24 = 0; var_r24 < var_r28->data.childrenCount; var_r24++) { + var_r27 = var_r28->data.children[var_r24]; + if (lbl_1_bss_130 == 0) { + if (lbl_1_bss_134 != 0) { + var_r29 = &var_r27->data.curr; + } + else { + var_r29 = &var_r27->data.base; + } + if ((var_r29->scale.x <= 0.0f) && (var_r29->scale.y <= 0.0f) && (var_r29->scale.z <= 0.0f)) { + MTXCopy(sp68, sp8); + OSReport("OBJ MTX CHECK ERROR %s \n", var_r27->name); + } + else { + mtxRot(sp38, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z); + MTXScale(sp8, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z); + MTXConcat(sp38, sp8, sp8); + mtxTransCat(sp8, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); + MTXConcat(sp68, sp8, sp8); + } + if (lbl_1_bss_138 != 0) { + OSReport("%s \n", var_r27->name); + } + if (strcmp(arg2, var_r27->name) == 0) { + MTXCopy(sp8, arg3); + lbl_1_bss_130 = 1; + } + for (var_r23 = 0; var_r23 < var_r27->data.childrenCount; var_r23++) { + fn_1_14088(var_r27->data.children[var_r23], sp8, arg2, arg3); + } + } + } + } + } + } +} + +void fn_1_14560(s16 arg0) +{ + CameraData *var_r31 = &Hu3DCamera[arg0]; + C_MTXLookAt(lbl_1_bss_23C[arg0], &var_r31->pos, &var_r31->up, &var_r31->target); + GXGetProjectionv(&lbl_1_bss_1BC[arg0].unk_00); + GXGetViewportv(&lbl_1_bss_13C[arg0].unk_00); +} + +void fn_1_145F8(s16 var_r29, Vec *var_r31, float *var_r30) +{ + GXProject(var_r31->x, var_r31->y, var_r31->z, lbl_1_bss_23C[var_r29], &lbl_1_bss_1BC[var_r29].unk_00, &lbl_1_bss_13C[var_r29].unk_00, var_r30, + &var_r30[1], &var_r30[2]); +} diff --git a/src/REL/m429Dll/main.c b/src/REL/m429Dll/main.c index e37af222..01040112 100644 --- a/src/REL/m429Dll/main.c +++ b/src/REL/m429Dll/main.c @@ -403,9 +403,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) var_r30 = &Hu3DData[arg0]; Hu3DModelObjMtxGet(arg0, arg1, spC); - PSMTXConcat(var_r30->unk_F0, spC, spC); + MTXConcat(var_r30->unk_F0, spC, spC); if (NULL != arg3) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); } arg2->x = spC[0][3]; arg2->y = spC[1][3]; diff --git a/src/REL/m430Dll/main.c b/src/REL/m430Dll/main.c index f7320e52..d848689f 100644 --- a/src/REL/m430Dll/main.c +++ b/src/REL/m430Dll/main.c @@ -118,7 +118,7 @@ void ObjectSetup(void) sp8.x = sp8.z = 0.0f; sp8.y = lbl_1_data_18.z; mtxRot(sp20, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); - PSMTXMultVec(sp20, &sp8, &sp8); + MTXMultVec(sp20, &sp8, &sp8); Hu3DGLightPosAimSetV(lbl_1_bss_26, &sp8, &sp14); Hu3DShadowPosSet(&sp8, &lbl_1_data_34, &sp14); lbl_1_bss_24 = lbl_1_bss_22 = lbl_1_bss_20 = -1; diff --git a/src/REL/m430Dll/player.c b/src/REL/m430Dll/player.c index e42fbd99..ca486592 100644 --- a/src/REL/m430Dll/player.c +++ b/src/REL/m430Dll/player.c @@ -278,8 +278,8 @@ void fn_1_BBC4(Process *process) sp14.x = CenterM[0].x + (CZoomM[0] * (sind(CRotM[0].y) * cosd(CRotM[0].x))); sp14.y = CenterM[0].y + (CZoomM[0] * -sind(CRotM[0].x)); sp14.z = CenterM[0].z + (CZoomM[0] * (cosd(CRotM[0].y) * cosd(CRotM[0].x))); - PSVECSubtract(CenterM, &sp14, &sp8); - PSVECNormalize(&sp8, &sp8); + VECSubtract(CenterM, &sp14, &sp8); + VECNormalize(&sp8, &sp8); HuAudFXListnerSetEX(&sp14, &sp8, 100000.0f, 566.6667f, 0.0f, 300.0f, 300.0f); } @@ -296,8 +296,8 @@ void fn_1_BE24(omObjData *object) sp14.x = CenterM[0].x + (CZoomM[0] * (sind(CRotM[0].y) * cosd(CRotM[0].x))); sp14.y = CenterM[0].y + (CZoomM[0] * -sind(CRotM[0].x)); sp14.z = CenterM[0].z + (CZoomM[0] * (cosd(CRotM[0].y) * cosd(CRotM[0].x))); - PSVECSubtract(CenterM, &sp14, &sp8); - PSVECNormalize(&sp8, &sp8); + VECSubtract(CenterM, &sp14, &sp8); + VECNormalize(&sp8, &sp8); HuAudFXListnerUpdate(&sp14, &sp8); } @@ -1619,7 +1619,7 @@ void fn_1_10948(ModelData *var_r29, Mtx var_r30) Mtx sp8; M430PlayerBss170Struct *var_r31 = var_r29->unk_120; GXLoadPosMtxImm(var_r30, 0); - PSMTXInvXpose(var_r30, sp8); + MTXInvXpose(var_r30, sp8); GXLoadNrmMtxImm(sp8, 0); GXSetNumTevStages(1); GXSetNumTexGens(1); diff --git a/src/REL/m430Dll/water.c b/src/REL/m430Dll/water.c index f9b938a2..4cdcef5c 100644 --- a/src/REL/m430Dll/water.c +++ b/src/REL/m430Dll/water.c @@ -202,10 +202,13 @@ void fn_1_4CB4(omObjData *object) u32 spC[1] = { DATA_MAKE_NUM(DATADIR_M430, 0x01) }; s32 sp8[1]; - u32 sp90[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x0B), DATA_MAKE_NUM(DATADIR_M430, 0x0C), DATA_MAKE_NUM(DATADIR_M430, 0x0D), DATA_MAKE_NUM(DATADIR_M430, 0x0E) }; - u32 sp80[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x02), DATA_MAKE_NUM(DATADIR_M430, 0x02), DATA_MAKE_NUM(DATADIR_M430, 0x03), DATA_MAKE_NUM(DATADIR_M430, 0x03) }; + u32 sp90[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x0B), DATA_MAKE_NUM(DATADIR_M430, 0x0C), DATA_MAKE_NUM(DATADIR_M430, 0x0D), + DATA_MAKE_NUM(DATADIR_M430, 0x0E) }; + u32 sp80[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x02), DATA_MAKE_NUM(DATADIR_M430, 0x02), DATA_MAKE_NUM(DATADIR_M430, 0x03), + DATA_MAKE_NUM(DATADIR_M430, 0x03) }; u32 sp70[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x04), DATA_MAKE_NUM(DATADIR_M430, 0x04), 0, 0 }; - u32 sp60[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x06), DATA_MAKE_NUM(DATADIR_M430, 0x07), DATA_MAKE_NUM(DATADIR_M430, 0x08), DATA_MAKE_NUM(DATADIR_M430, 0x09) }; + u32 sp60[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x06), DATA_MAKE_NUM(DATADIR_M430, 0x07), DATA_MAKE_NUM(DATADIR_M430, 0x08), + DATA_MAKE_NUM(DATADIR_M430, 0x09) }; s32 sp50[4]; s32 sp40[4]; s32 sp30[4]; @@ -481,10 +484,10 @@ void fn_1_6180(M430DllWork *work) sp28.x = sp1C.x; sp28.y = 0.0f; sp28.z = sp1C.z - 450000.0f; - PSVECSubtract(&sp28, &sp1C, &sp10); - PSVECNormalize(&sp10, &sp10); - PSVECScale(&sp10, &sp10, 6000.0f); - PSVECAdd(&sp1C, &sp10, &sp28); + VECSubtract(&sp28, &sp1C, &sp10); + VECNormalize(&sp10, &sp10); + VECScale(&sp10, &sp10, 6000.0f); + VECAdd(&sp1C, &sp10, &sp28); Hu3DModelPosSetV(work->unk_18, &sp28); if ((fn_1_4070() >= 2) && (fn_1_4030() != 0)) { if ((lbl_1_bss_40 != 0) && (lbl_1_bss_48 >= work->unk_04.x)) { @@ -494,10 +497,10 @@ void fn_1_6180(M430DllWork *work) sp28.x = 0.0f; sp28.y = 0.0f; sp28.z = work->unk_20 - fn_1_7FBC(work->unk_00); - PSVECSubtract(&sp28, &sp1C, &sp10); - PSVECNormalize(&sp10, &sp10); - PSVECScale(&sp10, &sp10, 5000.0f); - PSVECAdd(&sp1C, &sp10, &sp28); + VECSubtract(&sp28, &sp1C, &sp10); + VECNormalize(&sp10, &sp10); + VECScale(&sp10, &sp10, 5000.0f); + VECAdd(&sp1C, &sp10, &sp28); sp28.y += 237.5f; Hu3DModelPosSet(work->unk_1A, 0.0f, 593.75f, work->unk_20); var_r30 = ((ParticleData *)Hu3DData[work->unk_1A].unk_120)->unk_48; @@ -742,8 +745,8 @@ void fn_1_732C(omObjData *object, M430DllUnkStruct2 *arg1) var_r29 = 1; } else { - PSVECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8); - var_f31 = PSVECMag(&sp8); + VECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8); + var_f31 = VECMag(&sp8); if (var_f31 < 50.0f) { var_r29 = 1; } @@ -758,7 +761,7 @@ void fn_1_732C(omObjData *object, M430DllUnkStruct2 *arg1) arg1->unk_38 = 200.0f + frandmod(0x258); arg1->unk_28 = 400.0f; } - PSVECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8); + VECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8); arg1->unk_30 = atan2d(sp8.x, sp8.z); arg1->unk_2C = fn_1_48B0(arg1->unk_2C, arg1->unk_30, 0.08f); arg1->unk_28 += 0.05f * (300.0f - arg1->unk_28); @@ -822,7 +825,7 @@ void fn_1_7848(omObjData *object) var_r31->unk_08.x = var_f31 * sind(var_f30); var_r31->unk_08.y = 0.0f; var_r31->unk_08.z = var_f31 * cosd(var_f30); - PSVECAdd(&var_r31->unk_14, &var_r31->unk_08, &var_r31->unk_08); + VECAdd(&var_r31->unk_14, &var_r31->unk_08, &var_r31->unk_08); var_r31->unk_38 = 60.0f - (0.13483146f * var_f31); var_r31->unk_28 = frandmod(0x168); if (frandmod(0x3E8) < 0x1F4) { @@ -857,7 +860,7 @@ void fn_1_7CAC(omObjData *object) if (fn_1_4070() >= 4) { for (var_r29 = 0; var_r29 < var_r28; var_r29++, work++) { sp8 = 0; - PSVECSubtract(&work->unk_14, &work->unk_08, &spC); + VECSubtract(&work->unk_14, &work->unk_08, &spC); work->unk_2C = atan2d(spC.x, spC.z); work->unk_28 = fn_1_48B0(work->unk_28, work->unk_2C + work->unk_3C, 0.08f); work->unk_24 += (0.05f * (600.0f - work->unk_24)); @@ -883,9 +886,9 @@ void fn_1_7EAC(omObjData *object, M430DllWork2 *var_r31) for (var_r30 = 0; var_r30 < var_r28; var_r30++, var_r31++) { Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_08.x, var_r31->unk_08.y, var_r31->unk_08.z + var_f31); var_r29 = &Hu3DData[var_r31->unk_00].unk_F0; - PSMTXRotRad(*var_r29, 0x59, 0.017453292f * var_r31->unk_28); - PSMTXRotRad(sp8, 0x5A, 0.017453292f * var_r31->unk_38); - PSMTXConcat(*var_r29, sp8, *var_r29); + MTXRotRad(*var_r29, 0x59, 0.017453292f * var_r31->unk_28); + MTXRotRad(sp8, 0x5A, 0.017453292f * var_r31->unk_38); + MTXConcat(*var_r29, sp8, *var_r29); Hu3DModelAttrReset(var_r31->unk_00, HU3D_ATTR_DISPOFF); } } @@ -1062,8 +1065,8 @@ void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1) sp14.z = 2000.0f + arg1->unk_24; if (lbl_1_bss_5C != 0) { for (var_r29 = 0; var_r29 < 0x1B8; var_r29++) { - PSVECSubtract(var_r28, &sp14, &sp8); - var_f31 = 0.00025f * PSVECMag(&sp8); + VECSubtract(var_r28, &sp14, &sp8); + var_f31 = 0.00025f * VECMag(&sp8); if (var_f31 < 0.3f) { var_r30->a = -1; } @@ -1080,8 +1083,8 @@ void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1) } else { for (var_r29 = 0; var_r29 < 0x1B8; var_r29++) { - PSVECSubtract(var_r28, &sp14, &sp8); - var_f31 = 0.00025f * PSVECMag(&sp8); + VECSubtract(var_r28, &sp14, &sp8); + var_f31 = 0.00025f * VECMag(&sp8); if (var_f31 < 0.25f) { var_r30->a = -0x1A; } @@ -1105,7 +1108,7 @@ void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1) var_r29 = (0x14 - var_r23) * 0x16; var_r27 = &arg1->unk_30[0x1B8 - var_r29]; while (var_r29-- != 0) { - PSVECAdd(var_r28, var_r27, var_r26); + VECAdd(var_r28, var_r27, var_r26); var_r28++; var_r27++; var_r26++; @@ -1113,7 +1116,7 @@ void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1) var_r29 = var_r23 * 0x16; var_r27 = arg1->unk_30; while (var_r29-- != 0) { - PSVECAdd(var_r28, var_r27, var_r26); + VECAdd(var_r28, var_r27, var_r26); var_r28++; var_r27++; var_r26++; @@ -1186,7 +1189,7 @@ void fn_1_8CE0(ModelData *model, Mtx matrix) } var_r31->unk_10 = 1; fn_1_963C(model, matrix, var_r31->unk_00); - PSMTXCopy(matrix, sp134); + MTXCopy(matrix, sp134); if (fn_1_4030() != 0) { var_f30 = 1.0f; var_f31 = fn_1_BB54(var_r31->unk_00); @@ -1195,12 +1198,12 @@ void fn_1_8CE0(ModelData *model, Mtx matrix) var_f30 = 1.5f; var_f31 = 0.0f; } - PSMTXTrans(sp164, var_f31 - fn_1_BB54(var_r31->unk_00), 0.0f, 0.0f); - PSMTXConcat(sp134, sp164, sp134); - PSMTXScale(sp194, var_f30, 1.0f, 1.0f); - PSMTXConcat(sp134, sp194, sp134); + MTXTrans(sp164, var_f31 - fn_1_BB54(var_r31->unk_00), 0.0f, 0.0f); + MTXConcat(sp134, sp164, sp134); + MTXScale(sp194, var_f30, 1.0f, 1.0f); + MTXConcat(sp134, sp194, sp134); GXLoadPosMtxImm(sp134, 0); - PSMTXInvXpose(sp134, sp194); + MTXInvXpose(sp134, sp194); GXLoadNrmMtxImm(sp194, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -1221,25 +1224,25 @@ void fn_1_8CE0(ModelData *model, Mtx matrix) else { C_MTXLightPerspective(sp104, 41.5f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); } - PSMTXInverse(Hu3DCameraMtx, spD4); - PSMTXConcat(spD4, sp134, spD4); - PSMTXConcat(sp104, Hu3DCameraMtx, spA4); - PSMTXConcat(spA4, spD4, spD4); + MTXInverse(Hu3DCameraMtx, spD4); + MTXConcat(spD4, sp134, spD4); + MTXConcat(sp104, Hu3DCameraMtx, spA4); + MTXConcat(spA4, spD4, spD4); GXLoadTexMtxImm(spD4, 0x1E, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); C_MTXLightPerspective(sp104, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, sp74); - PSMTXConcat(sp74, sp134, sp74); - PSMTXConcat(sp104, Hu3DCameraMtx, sp44); - PSMTXConcat(sp44, sp74, sp74); + MTXInverse(Hu3DCameraMtx, sp74); + MTXConcat(sp74, sp134, sp74); + MTXConcat(sp104, Hu3DCameraMtx, sp44); + MTXConcat(sp44, sp74, sp74); GXLoadTexMtxImm(sp74, 0x24, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX3x4, GX_TG_POS, 0x24, GX_FALSE, 0x7D); - PSMTXRotRad(sp164, 0x58, 1.5707964f); + MTXRotRad(sp164, 0x58, 1.5707964f); var_f31 = 0.00075f * var_f30; - PSMTXScale(sp194, var_f31, -0.003f, 0.00075f); - PSMTXConcat(sp164, sp194, sp164); - PSMTXTrans(sp194, (var_r31->unk_1C & 0x3FF) / (1024.0f * var_f31), 0.0f, (0.7f * var_r31->unk_28) - (0.3f * var_r31->unk_24)); - PSMTXConcat(sp164, sp194, sp164); + MTXScale(sp194, var_f31, -0.003f, 0.00075f); + MTXConcat(sp164, sp194, sp164); + MTXTrans(sp194, (var_r31->unk_1C & 0x3FF) / (1024.0f * var_f31), 0.0f, (0.7f * var_r31->unk_28) - (0.3f * var_r31->unk_24)); + MTXConcat(sp164, sp194, sp164); sp164[0][1] = -0.001f; GXLoadTexMtxImm(sp164, 0x21, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); @@ -1247,12 +1250,12 @@ void fn_1_8CE0(ModelData *model, Mtx matrix) GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 1); - PSMTXScale(sp164, -0.25f, -0.5f, 0.5f); + MTXScale(sp164, -0.25f, -0.5f, 0.5f); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])sp164, -4); GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD1, GX_TEXMAP1); GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(1, 1, GX_TRUE, GX_FALSE, 2); - PSMTXScale(sp164, 0.4f, 0.5f, 0.5f); + MTXScale(sp164, 0.4f, 0.5f, 0.5f); GXSetIndTexMtx(GX_ITM_1, (float(*)[3])sp164, -1); GXSetNumTevStages(2); GXSetTevColor(GX_TEVREG0, sp14); @@ -1320,10 +1323,10 @@ void fn_1_963C(ModelData *model, Mtx matrix, u32 var_r31) var_f30 = 1.5f; var_f31 = 0.0f; } - PSMTXTrans(spD0, var_f31, 0.0f, ((lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24) - 2500.0f) - 2000.0f); - PSMTXScale(sp100, var_f30, 1.0f, 1.0f); - PSMTXConcat(spD0, sp100, spD0); - PSMTXConcat(Hu3DCameraMtx, spD0, spA0); + MTXTrans(spD0, var_f31, 0.0f, ((lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24) - 2500.0f) - 2000.0f); + MTXScale(sp100, var_f30, 1.0f, 1.0f); + MTXConcat(spD0, sp100, spD0); + MTXConcat(Hu3DCameraMtx, spD0, spA0); GXLoadPosMtxImm(spA0, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -1331,26 +1334,26 @@ void fn_1_963C(ModelData *model, Mtx matrix, u32 var_r31) HuSprTexLoad(lbl_1_bss_148, 0, 1, GX_CLAMP, GX_CLAMP, GX_LINEAR); GXSetNumTexGens(2); C_MTXLightPerspective(sp70, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, sp40); - PSMTXConcat(sp40, spA0, sp40); - PSMTXConcat(sp70, Hu3DCameraMtx, sp10); - PSMTXConcat(sp10, sp40, sp40); + MTXInverse(Hu3DCameraMtx, sp40); + MTXConcat(sp40, spA0, sp40); + MTXConcat(sp70, Hu3DCameraMtx, sp10); + MTXConcat(sp10, sp40, sp40); GXLoadTexMtxImm(sp40, 0x21, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); - PSMTXRotRad(spD0, 0x58, 1.5707964f); + MTXRotRad(spD0, 0x58, 1.5707964f); var_f31 = 0.00075f * var_f30; - PSMTXScale(sp100, var_f31, -0.003f, 0.00075f); - PSMTXConcat(spD0, sp100, spD0); - PSMTXTrans(sp100, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f31), 0.0f, + MTXScale(sp100, var_f31, -0.003f, 0.00075f); + MTXConcat(spD0, sp100, spD0); + MTXTrans(sp100, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f31), 0.0f, 0.3f * (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24)); - PSMTXConcat(spD0, sp100, spD0); + MTXConcat(spD0, sp100, spD0); GXLoadTexMtxImm(spD0, 0x1E, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); GXSetNumIndStages(1); GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 1); - PSMTXScale(spD0, 0.5f, 0.6f, 0.6f); + MTXScale(spD0, 0.5f, 0.6f, 0.6f); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spD0, -1); GXSetNumTevStages(1); GXSetTevColor(GX_TEVREG0, spC); @@ -1432,18 +1435,18 @@ void fn_1_9C90(ModelData *model, Mtx matrix) sp28.x = sp1C.x; sp28.y = 0.0f; sp28.z = sp1C.z - 450000.0f; - PSVECSubtract(&sp28, &sp1C, &sp10); - PSVECNormalize(&sp10, &sp10); - PSVECScale(&sp10, &sp10, 8000.0f); - PSVECAdd(&sp1C, &sp10, &sp28); - PSMTXTrans(spF4, sp28.x, sp28.y, sp28.z); + VECSubtract(&sp28, &sp1C, &sp10); + VECNormalize(&sp10, &sp10); + VECScale(&sp10, &sp10, 8000.0f); + VECAdd(&sp1C, &sp10, &sp28); + MTXTrans(spF4, sp28.x, sp28.y, sp28.z); var_f31 = 1.0f; if (fn_1_4030() == 0) { var_f31 = 1.5f; - PSMTXScale(sp124, var_f31, 1.0f, 1.0f); - PSMTXConcat(spF4, sp124, spF4); + MTXScale(sp124, var_f31, 1.0f, 1.0f); + MTXConcat(spF4, sp124, spF4); } - PSMTXConcat(Hu3DCameraMtx, spF4, spC4); + MTXConcat(Hu3DCameraMtx, spF4, spC4); GXLoadPosMtxImm(spC4, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -1451,24 +1454,24 @@ void fn_1_9C90(ModelData *model, Mtx matrix) HuSprTexLoad(lbl_1_bss_148, 0, 1, GX_CLAMP, GX_CLAMP, GX_LINEAR); GXSetNumTexGens(2); C_MTXLightPerspective(sp94, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f); - PSMTXInverse(Hu3DCameraMtx, sp64); - PSMTXConcat(sp64, spC4, sp64); - PSMTXConcat(sp94, Hu3DCameraMtx, sp34); - PSMTXConcat(sp34, sp64, sp64); + MTXInverse(Hu3DCameraMtx, sp64); + MTXConcat(sp64, spC4, sp64); + MTXConcat(sp94, Hu3DCameraMtx, sp34); + MTXConcat(sp34, sp64, sp64); GXLoadTexMtxImm(sp64, 0x21, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); var_f30 = 0.00075f * var_f31; - PSMTXScale(spF4, var_f30, -0.005f, 0.00075f); - PSMTXTrans(sp124, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f30), + MTXScale(spF4, var_f30, -0.005f, 0.00075f); + MTXTrans(sp124, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f30), 0.03f * -(lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24), 0.0f); - PSMTXConcat(spF4, sp124, spF4); + MTXConcat(spF4, sp124, spF4); GXLoadTexMtxImm(spF4, 0x1E, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); GXSetNumIndStages(1); GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 1); - PSMTXScale(spF4, 0.5f, 0.6f, 0.6f); + MTXScale(spF4, 0.5f, 0.6f, 0.6f); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spF4, -1); GXSetNumTevStages(1); GXSetTevColor(GX_TEVREG0, spC); @@ -1522,37 +1525,37 @@ void fn_1_A3A8(ModelData *model, Mtx matrix) var_f31 = 0.0f; } if (lbl_1_bss_5C != 0) { - PSMTXTrans(sp18, var_f31, 0.0f, 300.0f + (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24)); + MTXTrans(sp18, var_f31, 0.0f, 300.0f + (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24)); GXSetTevColor(GX_TEVREG0, sp10); } else { - PSMTXTrans(sp18, var_f31, -150.0f, lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24); + MTXTrans(sp18, var_f31, -150.0f, lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24); GXSetTevColor(GX_TEVREG0, sp14); } - PSMTXScale(sp48, var_f30, 1.0f, 1.0f); - PSMTXConcat(sp18, sp48, sp18); - PSMTXConcat(Hu3DCameraMtx, sp18, sp18); + MTXScale(sp48, var_f30, 1.0f, 1.0f); + MTXConcat(sp18, sp48, sp18); + MTXConcat(Hu3DCameraMtx, sp18, sp18); GXLoadPosMtxImm(sp18, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); HuSprTexLoad(lbl_1_bss_144, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); HuSprTexLoad(lbl_1_bss_140, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); GXSetNumTexGens(2); - PSMTXRotRad(sp18, 0x58, 1.5707964f); + MTXRotRad(sp18, 0x58, 1.5707964f); var_f31 = 0.004f * var_f30; - PSMTXScale(sp48, var_f31, -0.004f, 0.004f); - PSMTXConcat(sp18, sp48, sp18); - PSMTXTrans(sp48, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (512.0f * var_f31), 0.0f, + MTXScale(sp48, var_f31, -0.004f, 0.004f); + MTXConcat(sp18, sp48, sp18); + MTXTrans(sp48, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (512.0f * var_f31), 0.0f, (1.2499999f * (lbl_1_bss_60[var_r31].unk_1C % 400)) + (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24)); - PSMTXConcat(sp18, sp48, sp18); + MTXConcat(sp18, sp48, sp18); GXLoadTexMtxImm(sp18, 0x1E, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); - PSMTXRotRad(sp18, 0x58, 1.5707964f); + MTXRotRad(sp18, 0x58, 1.5707964f); var_f31 = 0.004f * var_f30; - PSMTXScale(sp48, var_f31, -0.004f, 0.004f); - PSMTXConcat(sp18, sp48, sp18); - PSMTXTrans(sp48, (lbl_1_bss_60[var_r31].unk_1C % 300) / (150.0f * var_f31), 0.0f, lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24); - PSMTXConcat(sp18, sp48, sp18); + MTXScale(sp48, var_f31, -0.004f, 0.004f); + MTXConcat(sp18, sp48, sp18); + MTXTrans(sp48, (lbl_1_bss_60[var_r31].unk_1C % 300) / (150.0f * var_f31), 0.0f, lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24); + MTXConcat(sp18, sp48, sp18); GXLoadTexMtxImm(sp18, 0x21, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); GXSetNumTevStages(2); @@ -1635,8 +1638,8 @@ void fn_1_AD04(ModelData *model, ParticleData *particle, Mtx matrix) } for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 != 0) { - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); - PSVECScale(&var_r31->unk08, &var_r31->unk08, 0.97f); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECScale(&var_r31->unk08, &var_r31->unk08, 0.97f); if (var_r31->unk00_s16 < 24.0f) { var_r31->unk40.a = 0.9f * var_r31->unk40.a; } @@ -1720,7 +1723,7 @@ void fn_1_B394(ModelData *model, ParticleData *var_r30, Mtx matrix) for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 != 0) { var_r31->unk00_s16--; - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk2C += 0.5f; if (var_r31->unk00_s16 < 30.0) { var_r31->unk40.a = 0.98f * var_r31->unk40.a; @@ -1760,7 +1763,7 @@ void fn_1_B570(s32 arg0, Vec *arg1, float arg8, float arg9, Vec *arg2) if (!(frandmod(0x3E8) > (1000.0f * arg9))) { var_r27 = 2; var_f28 = 40.0f; - PSVECScale(arg2, &sp1C, 0.2f); + VECScale(arg2, &sp1C, 0.2f); sp1C.x = 0.0f; for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 == 0) { @@ -1778,7 +1781,7 @@ void fn_1_B570(s32 arg0, Vec *arg1, float arg8, float arg9, Vec *arg2) var_r31->unk08.x = sp28.x * var_f31; var_r31->unk08.z = sp28.z * var_f31; var_r31->unk08.y = 0.0f; - PSVECAdd(&var_r31->unk08, &sp1C, &var_r31->unk08); + VECAdd(&var_r31->unk08, &sp1C, &var_r31->unk08); var_f31 = 0.001f * frandmod(0x3E8); var_f31 += (1.0f - var_f31) * (0.3f * arg9); var_r31->unk30 = frandmod(0x168); diff --git a/src/REL/m431Dll/main.c b/src/REL/m431Dll/main.c index 44ae5974..4aec497d 100644 --- a/src/REL/m431Dll/main.c +++ b/src/REL/m431Dll/main.c @@ -1274,7 +1274,7 @@ void fn_1_4028(Work2110 *arg0) temp_r31->unk18++; temp_f31 = temp_r31->unk18 / (VERSION_NTSC ? 54.0f : 45.0f); if (temp_f31 >= 1.0f) { - temp_r31->unk18 = VERSION_NTSC ? 54 : 45; + temp_r31->unk18 = VERSION_NTSC ? 54 : 45; temp_f31 = 1.0f; } temp_f31 = cosd(temp_f31 * 90.0f); diff --git a/src/REL/m433Dll/main.c b/src/REL/m433Dll/main.c index df35b851..6e36fe20 100644 --- a/src/REL/m433Dll/main.c +++ b/src/REL/m433Dll/main.c @@ -395,12 +395,12 @@ void fn_1_227C(Vec *arg0, Vec *arg1) { Vec sp10; - PSVECSubtract(arg1, arg0, &sp10); + VECSubtract(arg1, arg0, &sp10); Center = *arg1; CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z))); CRot.y = atan2d(-sp10.x, -sp10.z); CRot.z = 0.0f; - CZoom = PSVECMag(&sp10); + CZoom = VECMag(&sp10); } void fn_1_2484(float arg8, float arg9, float argA, float argB, float argC, float argD) diff --git a/src/REL/m433Dll/map.c b/src/REL/m433Dll/map.c index 57695003..40aab323 100644 --- a/src/REL/m433Dll/map.c +++ b/src/REL/m433Dll/map.c @@ -779,18 +779,18 @@ void fn_1_541C(Mtx arg0, float arg8, float arg9, float argA) Mtx sp8; if (argA != 0.0f) { - PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + MTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); } else { - PSMTXIdentity(arg0); + MTXIdentity(arg0); } if (arg8 != 0.0f) { - PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); - PSMTXConcat(sp38, arg0, arg0); + MTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + MTXConcat(sp38, arg0, arg0); } if (arg9 != 0.0f) { - PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); - PSMTXConcat(sp8, arg0, arg0); + MTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + MTXConcat(sp8, arg0, arg0); } } diff --git a/src/REL/m433Dll/player.c b/src/REL/m433Dll/player.c index 21b2ff60..7b69466d 100644 --- a/src/REL/m433Dll/player.c +++ b/src/REL/m433Dll/player.c @@ -629,7 +629,7 @@ void fn_1_60C0(omObjData *object) if (work->unk_04 >= 0) { HuAudFXPlay(lbl_1_data_150[work->unk_04][0]); } - PSVECSubtract(&var_r28->unk_128, &work->unk_128, &spC); + VECSubtract(&var_r28->unk_128, &work->unk_128, &spC); work->unk_A8 = atan2d(spC.x, spC.z); work->unk_AC = 0.15f; work->unk_B0 = 0.0f; @@ -686,7 +686,7 @@ void fn_1_60C0(omObjData *object) } break; } - PSVECAdd(&work->unk_128, &work->unk_134, &work->unk_128); + VECAdd(&work->unk_128, &work->unk_134, &work->unk_128); if (fn_1_10ECC(work->unk_14) >= 2) { fn_1_B194(object); } @@ -716,7 +716,7 @@ void fn_1_682C(omObjData *object) Vec sp40[2] = { { 130.0f, 0.0f, -50.0f }, { 250.0f, 0.0f, 50.0f } }; Vec sp28[2] = { { 150.0f, 0.0f, 100.0f }, { 300.0f, 0.0f, -100.0f } }; var_r27 = work->unk_14C->data; - PSVECAdd(&work->unk_128, &work->unk_134, &work->unk_128); + VECAdd(&work->unk_128, &work->unk_134, &work->unk_128); fn_1_B194(object); fn_1_722C(object); switch (work->unk_74) { @@ -782,15 +782,15 @@ void fn_1_682C(omObjData *object) break; case 1: if (work->unk_84 == 1) { - PSVECSubtract(&work->unk_140, &work->unk_128, &sp10); + VECSubtract(&work->unk_140, &work->unk_128, &sp10); sp10.y = 0.0f; - var_f31 = PSVECMag(&sp10); + var_f31 = VECMag(&sp10); if (var_f31 < 20.0f) { var_f31 = 0.01f; work->unk_84++; } else { - if (PSVECMag(&sp10) >= 100.0f) { + if (VECMag(&sp10) >= 100.0f) { var_f31 = 100.0f; } var_f31 = 0.2f + (0.008f * var_f31); @@ -826,14 +826,14 @@ void fn_1_682C(omObjData *object) } break; case 2: - PSVECSubtract(&work->unk_140, &work->unk_128, &sp10); + VECSubtract(&work->unk_140, &work->unk_128, &sp10); sp10.y = 0.0f; - var_f31 = PSVECMag(&sp10); + var_f31 = VECMag(&sp10); if (var_f31 < 10.0f) { var_f31 = 0.01f; } else { - if (PSVECMag(&sp10) >= 100.0f) { + if (VECMag(&sp10) >= 100.0f) { var_f31 = 100.0f; } var_f31 = 0.2f + (0.008f * var_f31); @@ -875,7 +875,7 @@ void fn_1_682C(omObjData *object) sp1C.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x))); sp1C.y = Center.y + (CZoom * -sind(CRot.x)); sp1C.z = Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x))); - PSVECSubtract(&sp1C, &work->unk_128, &sp10); + VECSubtract(&sp1C, &work->unk_128, &sp10); work->unk_A8 = atan2d(sp10.x, sp10.z); } if (fn_1_B6E0(object) != 0) { @@ -1060,10 +1060,10 @@ void fn_1_74D4(omObjData *object) } } if ((work->unk_14 == fn_1_107B0(&sp1C)) && (fn_1_10900() >= (60.0f * (0.8f - (0.4f * work->unk_C0)))) && (work->unk_6C != 0)) { - PSVECSubtract(&sp1C, &work->unk_128, &sp10); + VECSubtract(&sp1C, &work->unk_128, &sp10); sp10.y = 0.0f; - var_f31 = PSVECMag(&sp10); - if (PSVECMag(&sp10) >= 20.0f) { + var_f31 = VECMag(&sp10); + if (VECMag(&sp10) >= 20.0f) { if (var_f31 >= 50.0f) { var_f31 = 50.0f; } @@ -1076,9 +1076,9 @@ void fn_1_74D4(omObjData *object) var_r29 = 0; } if (work->unk_F8 != 0) { - PSVECSubtract(&work->unk_108, &work->unk_128, &sp10); + VECSubtract(&work->unk_108, &work->unk_128, &sp10); sp10.y = 0.0f; - var_f31 = PSVECMag(&sp10); + var_f31 = VECMag(&sp10); if (var_f31 >= 10.0f) { if (var_f31 >= 50.0f) { var_f31 = 50.0f; @@ -1096,9 +1096,9 @@ void fn_1_74D4(omObjData *object) var_r29 = 0; } if (var_r29 != 0) { - PSVECSubtract(&work->unk_FC, &work->unk_128, &sp10); + VECSubtract(&work->unk_FC, &work->unk_128, &sp10); sp10.y = 0.0f; - var_f31 = PSVECMag(&sp10); + var_f31 = VECMag(&sp10); var_f31 -= 100.0f * (1.25f * (2.0f - work->unk_C0)); if (var_f31 >= 10.0f) { if (var_f31 >= 70.0f) { @@ -1121,9 +1121,9 @@ void fn_1_74D4(omObjData *object) if (work->unk_14 == fn_1_10740(&sp1C)) { if (work->unk_68 == 0) { if (fn_1_11004(work->unk_14, work->unk_18) != 0) { - PSVECSubtract(&sp1C, &work->unk_128, &sp10); + VECSubtract(&sp1C, &work->unk_128, &sp10); sp10.y = 0.0f; - var_f31 = PSVECMag(&sp10); + var_f31 = VECMag(&sp10); if (var_f31 >= 30.000002f) { if (var_f31 >= 70.0f) { var_f31 = 70.0f; @@ -1159,9 +1159,9 @@ void fn_1_74D4(omObjData *object) else { if (fn_1_10614(&sp1C) != 0) { if (work->unk_E8 != 0) { - PSVECSubtract(&work->unk_114, &sp1C, &sp10); + VECSubtract(&work->unk_114, &sp1C, &sp10); sp10.y = 0.0f; - var_f31 = PSVECMag(&sp10); + var_f31 = VECMag(&sp10); if (var_f31 < 0.05f) { work->unk_DC = 0.0f; work->unk_E0 = 0.0f; @@ -1219,12 +1219,12 @@ void fn_1_8408(omObjData *object) if ((work->unk_14 == fn_1_107B0(&sp14)) && (fn_1_108C4() >= 12.0f)) { if (((var_r30->unk_6C == 0) && (work->unk_6C == 0)) || (fn_1_108C4() < 0x3E8)) { if ((work->unk_30 == 0) || (var_r30->unk_30 == 0)) { - PSVECSubtract(&sp14, &work->unk_128, &sp8); + VECSubtract(&sp14, &work->unk_128, &sp8); sp8.y = 0.0f; - var_f31 = PSVECMag(&sp8) - (100.0f * (2.0f * work->unk_C0)); - PSVECSubtract(&sp14, &var_r30->unk_128, &sp8); + var_f31 = VECMag(&sp8) - (100.0f * (2.0f * work->unk_C0)); + VECSubtract(&sp14, &var_r30->unk_128, &sp8); sp8.y = 0.0f; - var_f30 = PSVECMag(&sp8) - (100.0f * (2.0f * var_r30->unk_C0)); + var_f30 = VECMag(&sp8) - (100.0f * (2.0f * var_r30->unk_C0)); if ((work->unk_30 != 0) || (work->unk_60 != 0)) { var_f31 = 2000.0f; } @@ -1333,10 +1333,10 @@ s32 fn_1_8938(u32 var_r27, Vec *var_r29) for (var_r30 = 0; var_r30 <= 0xA; var_r30++) { sp14.x = 230.0f; for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { - PSVECSubtract(&sp14, &sp2C[0], &sp20); - var_f31 = PSVECMag(&sp20); - PSVECSubtract(&sp14, &sp2C[1], &sp20); - var_f31 *= PSVECMag(&sp20); + VECSubtract(&sp14, &sp2C[0], &sp20); + var_f31 = VECMag(&sp20); + VECSubtract(&sp14, &sp2C[1], &sp20); + var_f31 *= VECMag(&sp20); if (var_f31 > var_f30) { var_f30 = var_f31; sp8 = sp14; @@ -1415,7 +1415,7 @@ void fn_1_8BD0(omObjData *object) } if ((var_r29 != 0) && (work->unk_24 == 0.0f)) { fn_1_10B20(0.0f, &sp14); - PSVECSubtract(&sp14, &work->unk_128, &sp8); + VECSubtract(&sp14, &work->unk_128, &sp8); work->unk_A8 = atan2d(sp8.x, sp8.z); work->unk_AC = 0.1f; work->unk_B0 = 0.0f; @@ -1569,9 +1569,9 @@ void fn_1_9688(omObjData *object) work->unk_140 = sp2C; var_f31 = fn_1_10848(); if ((var_f31 <= 0.8f) && (var_f31 >= 0.02f) && (var_r29->unk_64 == 0)) { - PSVECSubtract(&sp2C, &work->unk_128, &sp20); + VECSubtract(&sp2C, &work->unk_128, &sp20); sp20.y = 0.0f; - var_f30 = PSVECMag(&sp20); + var_f30 = VECMag(&sp20); work->unk_98 = var_f30; if (var_f30 <= 200.0f) { if ((var_f31 >= 0.2f) && (var_f30 <= 70.0f) && (var_f31 >= (0.2f + (0.001f * var_f30))) && (fn_1_10FDC() >= 1)) { @@ -1626,7 +1626,7 @@ void fn_1_9688(omObjData *object) } work->unk_90 = 60.0f * var_f31; } - PSVECSubtract(&sp2C, &work->unk_128, &sp20); + VECSubtract(&sp2C, &work->unk_128, &sp20); work->unk_A8 = atan2d(sp20.x, sp20.z); work->unk_AC = 0.2f; work->unk_B0 = 0.0f; @@ -1664,7 +1664,7 @@ void fn_1_9688(omObjData *object) } work->unk_64 = 0; fn_1_B4D4(object, 9); - PSVECSubtract(&sp2C, &work->unk_128, &sp20); + VECSubtract(&sp2C, &work->unk_128, &sp20); work->unk_A8 = atan2d(sp20.x, sp20.z); work->unk_AC = 0.1f; work->unk_90 = 0x186A0; @@ -1727,7 +1727,7 @@ void fn_1_9688(omObjData *object) } work->unk_64 = 0; fn_1_B4D4(object, 6); - PSVECSubtract(&sp2C, &work->unk_128, &sp20); + VECSubtract(&sp2C, &work->unk_128, &sp20); work->unk_A8 = atan2d(sp20.x, sp20.z); work->unk_AC = 0.1f; work->unk_90 = 0x186A0; @@ -1756,7 +1756,7 @@ void fn_1_9688(omObjData *object) if (work->unk_64 != 0) { sp2C = work->unk_128; sp2C.y = 11.0f; - PSVECSubtract(&var_r29->unk_128, &work->unk_128, &sp20); + VECSubtract(&var_r29->unk_128, &work->unk_128, &sp20); var_f29 = 180.0 + (atan2d(sp20.x, sp20.z)); var_f29 += frandmod(0xB4) - 90.0f; var_f30 = 200.0f * work->unk_98; @@ -1817,14 +1817,14 @@ void fn_1_A618(omObjData *object) case 0: if ((work->unk_7C == 0) && (work->unk_78 == 0) && (work->unk_80 == 0) && (work->unk_30 = 0, work->unk_68 = 0, ((work->unk_34 == 0) != 0)) && (fn_1_11004(work->unk_14, work->unk_18) != 0) && (fn_1_10FDC() < 3) && (work->unk_14 == fn_1_10740(&sp20))) { - PSVECSubtract(&sp20, &work->unk_128, &sp14); + VECSubtract(&sp20, &work->unk_128, &sp14); sp14.y = 0.0f; - if (!(PSVECMag(&sp14) > 500.0f)) { + if (!(VECMag(&sp14) > 500.0f)) { fn_1_10B20(0.5f, &sp20); sp20.y -= lbl_1_data_E0[work->unk_00]; - PSVECSubtract(&sp20, &work->unk_128, &sp14); + VECSubtract(&sp20, &work->unk_128, &sp14); sp14.y = 0.0f; - if ((PSVECMag(&sp14) < 200.0f) && (sp20.y >= 50.0f)) { + if ((VECMag(&sp14) < 200.0f) && (sp20.y >= 50.0f)) { work->unk_5C = 1; } if (((work->unk_1C & 0x200) != 0) && (work->unk_5C != 0)) { @@ -1837,7 +1837,7 @@ void fn_1_A618(omObjData *object) var_f30 = 0.5f; work->unk_124 = (2.0f * -sp20.y) / (var_f30 * var_f30); work->unk_134.y = 0.016666668f * (-work->unk_124 * var_f30); - PSVECSubtract(&sp20, &work->unk_128, &sp14); + VECSubtract(&sp20, &work->unk_128, &sp14); sp14.y = 0.0f; work->unk_134.x = 0.016666668f * (sp14.x / 0.5f); work->unk_134.z = 0.016666668f * (sp14.z / 0.5f); @@ -1967,8 +1967,8 @@ void fn_1_AB88(omObjData *object) fn_1_10B20(0.0f, &sp1C); if ((sp1C.x * work->unk_128.x) > 0.0f) { sp1C.y = work->unk_128.y; - PSVECSubtract(&sp1C, &work->unk_128, &sp10); - if (PSVECMag(&sp10) < 60.000004f) { + VECSubtract(&sp1C, &work->unk_128, &sp10); + if (VECMag(&sp10) < 60.000004f) { if (frandmod(0x64) < 0x1E) { fn_1_10740(&sp1C); sp1C.x *= -0.5f; @@ -2016,9 +2016,9 @@ void fn_1_B194(omObjData *object) for (var_r28 = 0; var_r28 < 4; var_r28++) { if (var_r29 != var_r28) { var_r30 = lbl_1_bss_7D0[var_r28]->data; - PSVECSubtract(&var_r31->unk_128, &var_r30->unk_128, &sp8); + VECSubtract(&var_r31->unk_128, &var_r30->unk_128, &sp8); sp8.y = 0.0f; - var_f31 = PSVECMag(&sp8); + var_f31 = VECMag(&sp8); if (var_f31 < (var_r31->unk_120 + var_r30->unk_120)) { if (var_f31 > 0.0f) { var_f31 = 0.5f * ((var_r31->unk_120 + var_r30->unk_120) - var_f31); @@ -2028,10 +2028,10 @@ void fn_1_B194(omObjData *object) sp8.x = frandmod(0x3E8) - 0x1F4; sp8.z = frandmod(0x3E8) - 0x1F4; } - PSVECNormalize(&sp8, &sp8); - PSVECScale(&sp8, &sp8, var_f31); - PSVECAdd(&var_r31->unk_128, &sp8, &var_r31->unk_128); - PSVECSubtract(&var_r30->unk_128, &sp8, &var_r30->unk_128); + VECNormalize(&sp8, &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&var_r31->unk_128, &sp8, &var_r31->unk_128); + VECSubtract(&var_r30->unk_128, &sp8, &var_r30->unk_128); } } } @@ -2199,7 +2199,7 @@ void fn_1_BD48(omObjData *object) work->unk_B8 = 0.0f; work->unk_BC.x = work->unk_BC.y = 0.0f; work->unk_BC.z = 1.0f; - PSMTXIdentity(work->unk_C8); + MTXIdentity(work->unk_C8); work->unk_18 = 0; object->func = fn_1_C240; } @@ -2219,7 +2219,7 @@ void fn_1_C240(omObjData *object) work->unk_B8 = 0.0f; work->unk_BC.x = work->unk_BC.y = 0.0f; work->unk_BC.z = 1.0f; - PSMTXIdentity(work->unk_C8); + MTXIdentity(work->unk_C8); work->unk_00 = 1; break; case 10: @@ -2296,14 +2296,14 @@ s32 fn_1_C6B0(omObjData *object) fn_1_D338(&work->unk_F8); fn_1_D180(&work->unk_F8); work->unk_B8 = work->unk_A8 * (8.0f * lbl_1_data_48C[work->unk_6C]); - PSVECSubtract(&work->unk_3C, &work->unk_30, &sp8); + VECSubtract(&work->unk_3C, &work->unk_30, &sp8); sp8.y = 0.0f; - if (PSVECMag(&sp8) <= 0.0f) { + if (VECMag(&sp8) <= 0.0f) { work->unk_BC.x = work->unk_BC.y = 0.0f; work->unk_BC.z = 1.0f; } else { - PSVECNormalize(&sp8, &sp8); + VECNormalize(&sp8, &sp8); work->unk_BC.x = -sp8.z; work->unk_BC.y = 0.0f; work->unk_BC.z = sp8.x; @@ -2324,9 +2324,9 @@ s32 fn_1_C6B0(omObjData *object) } work->unk_10 = 1; if (work->unk_B8 != 0.0f) { - PSMTXRotAxisRad(sp14, &work->unk_BC, 0.017453292f * work->unk_B8); - PSMTXConcat(sp14, work->unk_C8, work->unk_C8); - PSMTXCopy(work->unk_C8, Hu3DData[object->model[0]].unk_F0); + MTXRotAxisRad(sp14, &work->unk_BC, 0.017453292f * work->unk_B8); + MTXConcat(sp14, work->unk_C8, work->unk_C8); + MTXCopy(work->unk_C8, Hu3DData[object->model[0]].unk_F0); } work->unk_48 += 0.016666668f; work->unk_08 = fn_1_D4E0(&work->unk_F8, &work->unk_30, &work->unk_4C, work->unk_48); @@ -2389,15 +2389,15 @@ void fn_1_CB98(omObjData *object) var_f31 = 0.0f; } var_f31 = (var_f30 - var_f31) / 21.0f; - PSMTXCopy(work->unk_C8, sp20); + MTXCopy(work->unk_C8, sp20); var_f28 = (work->unk_B8 * (1.2f * work->unk_A8)) / 21.0f; - PSMTXRotAxisRad(sp50, &work->unk_BC, MTXDegToRad(-var_f28)); + MTXRotAxisRad(sp50, &work->unk_BC, MTXDegToRad(-var_f28)); for (var_r29 = 0; var_r29 < 0x15; var_r29++) { Hu3DModelAttrReset(object->model[var_r29 + 9], HU3D_ATTR_DISPOFF); fn_1_D4E0(&work->unk_F8, &sp14, &sp8, var_f30); Hu3DModelPosSetV(object->model[var_r29 + 9], &sp14); - PSMTXCopy(sp20, Hu3DData[object->model[var_r29 + 9]].unk_F0); - PSMTXConcat(sp50, sp20, sp20); + MTXCopy(sp20, Hu3DData[object->model[var_r29 + 9]].unk_F0); + MTXConcat(sp50, sp20, sp20); var_f30 -= var_f31; } work->unk_F8.unk_04 = var_f29; @@ -2430,19 +2430,19 @@ void fn_1_CDB8(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, u32 arg3, float a spC.x = arg1->x + (arg0->unk_08 * (arg2->x - arg1->x)); spC.y = arg0->unk_0C; spC.z = arg1->z + (arg0->unk_08 * (arg2->z - arg1->z)); - PSVECSubtract(arg2, &spC, &sp18); - var_f30 = PSVECMag(&sp18); - PSVECSubtract(&spC, arg1, &sp18); - var_f30 += PSVECMag(&sp18); + VECSubtract(arg2, &spC, &sp18); + var_f30 = VECMag(&sp18); + VECSubtract(&spC, arg1, &sp18); + var_f30 += VECMag(&sp18); } else { - PSVECSubtract(arg2, arg1, &sp18); - var_f30 = PSVECMag(&sp18); + VECSubtract(arg2, arg1, &sp18); + var_f30 = VECMag(&sp18); } } else { - PSVECSubtract(arg2, arg1, &sp18); - var_f30 = PSVECMag(&sp18); + VECSubtract(arg2, arg1, &sp18); + var_f30 = VECMag(&sp18); } var_f31 = var_f30 / (arg8 * lbl_1_data_4D4[arg3].z); arg0->unk_00 = var_f31; @@ -2452,9 +2452,9 @@ void fn_1_CDB8(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, u32 arg3, float a arg0->unk_38 = *arg2; arg0->unk_1C = arg2->y - arg1->y; arg0->unk_24 = -980.0f; - PSVECSubtract(arg2, arg1, &sp18); + VECSubtract(arg2, arg1, &sp18); sp18.y = 0.0f; - arg0->unk_10 = PSVECMag(&sp18); + arg0->unk_10 = VECMag(&sp18); arg0->unk_18 = 0.0f; if (var_f31 > 0.0f) { arg0->unk_20 = (arg0->unk_1C - (0.5f * (-980.0f * (var_f31 * var_f31)))) / var_f31; @@ -2555,9 +2555,9 @@ s32 fn_1_D4E0(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, float arg8) } arg0->unk_04 = arg8; if (arg0->unk_10 > 0.0f) { - PSVECSubtract(&arg0->unk_38, &arg0->unk_2C, &spC); + VECSubtract(&arg0->unk_38, &arg0->unk_2C, &spC); spC.y = 0.0f; - PSVECNormalize(&spC, &spC); + VECNormalize(&spC, &spC); } else { spC.x = spC.y = spC.z = 0.0f; @@ -2568,7 +2568,7 @@ s32 fn_1_D4E0(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, float arg8) arg1->x = arg0->unk_2C.x + (spC.x * var_f30); arg1->y = arg0->unk_2C.y + var_f29; arg1->z = arg0->unk_2C.z + (spC.z * var_f30); - PSVECSubtract(arg1, &sp18, arg2); + VECSubtract(arg1, &sp18, arg2); if (arg8 >= arg0->unk_00) { return 1; } @@ -2582,7 +2582,7 @@ void fn_1_D6A8(ModelData *model, ParticleData *particle, Mtx matrix) for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 != 0) { - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk08.x *= 0.92f; var_r31->unk08.z *= 0.92f; var_r31->unk08.y += -0.27222225f; @@ -3421,9 +3421,9 @@ float fn_1_10B20(float arg8, Vec *arg0) } var_r31->unk_04 = var_f31; if (var_r31->unk_10 > 0.0f) { - PSVECSubtract(&var_r31->unk_38, &var_r31->unk_2C, &sp14); + VECSubtract(&var_r31->unk_38, &var_r31->unk_2C, &sp14); sp14.y = 0.0f; - PSVECNormalize(&sp14, &sp14); + VECNormalize(&sp14, &sp14); } else { sp14.x = sp14.y = sp14.z = 0.0f; @@ -3434,7 +3434,7 @@ float fn_1_10B20(float arg8, Vec *arg0) arg0->x = var_r31->unk_2C.x + (sp14.x * var_f29); arg0->y = var_r31->unk_2C.y + var_f28; arg0->z = var_r31->unk_2C.z + (sp14.z * var_f29); - PSVECSubtract(arg0, &sp8, &sp20); + VECSubtract(arg0, &sp8, &sp20); var_f31 >= var_r31->unk_00; var_r31->unk_04 = var_f30; return var_f30 + arg8; @@ -3462,7 +3462,7 @@ s32 fn_1_10D24(Vec *sp8) var_r31 = lbl_1_bss_7CC->data; fn_1_10D24_inline(&spC); - PSVECSubtract(&spC, &var_r31->unk_30, &sp18); + VECSubtract(&spC, &var_r31->unk_30, &sp18); if ((spC.x * var_r31->unk_30.x) >= 0.0f) { return 0; } @@ -3470,8 +3470,8 @@ s32 fn_1_10D24(Vec *sp8) return 0; } var_f31 = fabs(var_r31->unk_30.x / sp18.x); - PSVECScale(&sp18, &sp18, var_f31); - PSVECAdd(&var_r31->unk_30, &sp18, sp8); + VECScale(&sp18, &sp18, var_f31); + VECAdd(&var_r31->unk_30, &sp18, sp8); return 1; } @@ -3535,9 +3535,9 @@ float fn_1_11098(Vec *arg0, Vec *arg1, Vec *arg2) float var_f31; float var_f30; - PSVECSubtract(arg1, arg0, &sp10); - var_f31 = PSVECDotProduct(&sp10, arg2); - var_f30 = -PSVECSquareMag(arg2); + VECSubtract(arg1, arg0, &sp10); + var_f31 = VECDotProduct(&sp10, arg2); + var_f30 = -VECSquareMag(arg2); if (var_f30 != 0.0f) { var_f31 /= var_f30; } @@ -3555,16 +3555,16 @@ float fn_1_11130(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) float var_f29; float var_f28; - PSVECSubtract(arg1, arg0, &sp28); - PSVECSubtract(arg3, arg2, &sp1C); - PSVECSubtract(&sp28, &sp1C, &sp28); - if (PSVECMag(&sp28) <= 0.0f) { + VECSubtract(arg1, arg0, &sp28); + VECSubtract(arg3, arg2, &sp1C); + VECSubtract(&sp28, &sp1C, &sp28); + if (VECMag(&sp28) <= 0.0f) { sp34 = *arg0; } else { - PSVECSubtract(arg0, arg2, &sp10); - var_f30 = PSVECDotProduct(&sp10, &sp28); - var_f29 = -PSVECSquareMag(&sp28); + VECSubtract(arg0, arg2, &sp10); + var_f30 = VECDotProduct(&sp10, &sp28); + var_f29 = -VECSquareMag(&sp28); if (var_f29 != 0.0f) { var_f30 /= var_f29; } @@ -3576,9 +3576,9 @@ float fn_1_11130(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) else if (var_f31 > 1.0f) { var_f31 = 1.0f; } - PSVECScale(&sp28, &sp1C, var_f31); - PSVECAdd(arg0, &sp1C, &sp34); + VECScale(&sp28, &sp1C, var_f31); + VECAdd(arg0, &sp1C, &sp34); } - PSVECSubtract(arg2, &sp34, &sp28); - return PSVECMag(&sp28); + VECSubtract(arg2, &sp34, &sp28); + return VECMag(&sp28); } diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index cb329774..b8d481ff 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -158,7 +158,7 @@ typedef struct M438UnkStruct { s8 unk_55; s8 unk_56; u8 unk_57; - M438UnkSubStruct* unk_58; + M438UnkSubStruct *unk_58; u8 unk_5C; char unk5D[0x3]; Vec unk_60; @@ -175,7 +175,7 @@ typedef struct M438UnkStruct2 { Vec unk_0C; char unk18[0xC]; Vec unk_24; - void (*unk_30)(struct M438UnkStruct2*); + void (*unk_30)(struct M438UnkStruct2 *); char unk34[8]; M438UnkStruct *unk_3C; char unk40[0x20]; @@ -575,88 +575,51 @@ void fn_1_1174(omObjData *object) } } -Vec lbl_1_data_68[11][8] = { - { - { -528.6f, 0.0f, 350.7f }, - { -375.7f, 0.0f, 243.0f }, - { -214.2f, 0.0f, 331.4f }, - { -173.3f, 0.0f, 523.7f }, - { 15.000001f, 0.0f, 505.7f }, - { 148.59999f, 0.0f, 393.0f }, - { 0.0f, 1.0f, 0.0f }, - }, +Vec lbl_1_data_68[11][8] = { { + { -528.6f, 0.0f, 350.7f }, + { -375.7f, 0.0f, 243.0f }, + { -214.2f, 0.0f, 331.4f }, + { -173.3f, 0.0f, 523.7f }, + { 15.000001f, 0.0f, 505.7f }, + { 148.59999f, 0.0f, 393.0f }, + { 0.0f, 1.0f, 0.0f }, + }, { { -198.7f, 0.0f, -122.899994f }, - { -11.599999f, 0.0f, -177.1f }, - { 63.4f, 0.0f, -349.7f }, - { 277.09999f, 0.0f, -296.4f }, - { 397.5f, 0.0f, -470.2f }, - { 0.0f, 1.0f, 0.0f }, + { -11.599999f, 0.0f, -177.1f }, + { 63.4f, 0.0f, -349.7f }, + { 277.09999f, 0.0f, -296.4f }, + { 397.5f, 0.0f, -470.2f }, + { 0.0f, 1.0f, 0.0f }, }, { { -421.0f, 0.0f, -471.3f }, { -270.1f, 0.0f, -460.0f }, { -153.1f, 0.0f, -356.5f }, - { 12.4f, 0.0f, -473.99997f }, - { 0.0f, 1.0f, 0.0f }, + { 12.4f, 0.0f, -473.99997f }, + { 0.0f, 1.0f, 0.0f }, }, { - { -545.10004f, 0.0f, -318.9f }, + { -545.10004f, 0.0f, -318.9f }, { -469.0f, 0.0f, -154.1f }, - { -313.4, 0.0f, -170.09999f }, + { -313.4, 0.0f, -170.09999f }, { -250.0f, 0.0f, -32.8f }, - { 0.0f, 1.0f, 0.0f }, - }, - { - { -155.6f, 0.0f, 19.5f }, - { -34.3f, 0.0f, 96.6f }, - { -63.9f, 0.0f, 240.00002f }, - { 37.5f, 0.0f, 402.8f }, - { 0.0f, 1.0f, 0.0f } - }, - { - { 207.5f, 0.0f, -163.2f }, - { 270.1f, 0.0f, -104.799995f }, - { 402.19998f, 0.0f, -102.4f }, - { 511.49997f, 0.0f, -25.099998f }, - { 627.3f, 0.0f, -142.0f }, - { 0.0f, 1.0f, 0.0f } + { 0.0f, 1.0f, 0.0f }, }, + { { -155.6f, 0.0f, 19.5f }, { -34.3f, 0.0f, 96.6f }, { -63.9f, 0.0f, 240.00002f }, { 37.5f, 0.0f, 402.8f }, { 0.0f, 1.0f, 0.0f } }, + { { 207.5f, 0.0f, -163.2f }, { 270.1f, 0.0f, -104.799995f }, { 402.19998f, 0.0f, -102.4f }, { 511.49997f, 0.0f, -25.099998f }, + { 627.3f, 0.0f, -142.0f }, { 0.0f, 1.0f, 0.0f } }, { { -601.0f, 0.0f, 97.799995f }, - { -516.80005f, 0.0f, 60.000004f }, + { -516.80005f, 0.0f, 60.000004f }, { -417.7f, 0.0f, 92.9f }, - { -309.40002f, 0.0f, 76.1f }, - { 0.0f, 1.0f, 0.0f }, + { -309.40002f, 0.0f, 76.1f }, + { 0.0f, 1.0f, 0.0f }, }, - { - { 82.8f, 0.0f, 164.2f }, - { 179.40001f, 0.0f, 179.8f }, - { 241.00002f, 0.0f, 87.1f }, - { 323.0f, 0.0f, 38.800003f }, - { 0.0f, 1.0f, 0.0f } - }, - { - { 243.4f, 0.0f, 573.5f }, - { 227.7f, 0.0f, 461.2f }, - { 319.30002f, 0.0f, 400.6f }, - { 342.30002f, 0.0f, 310.0f }, - { 0.0f, 1.0f, 0.0f } - }, - { - { 357.69998f, 0.0f, 146.8f }, - { 418.80002f, 0.0f, 225.0f }, - { 503.2f, 0.0f, 234.69998f }, - { 548.1f, 0.0f, 321.19998f }, - { 0.0f, 1.0f, 0.0f } - }, - { - { -100.0f, 0.0f, 0.0f }, - { 0.0f, 0.0f, -100.0f }, - { 100.0f, 0.0f, 0.0f }, - { 0.0f, 1.0f, 0.0f } - } -}; + { { 82.8f, 0.0f, 164.2f }, { 179.40001f, 0.0f, 179.8f }, { 241.00002f, 0.0f, 87.1f }, { 323.0f, 0.0f, 38.800003f }, { 0.0f, 1.0f, 0.0f } }, + { { 243.4f, 0.0f, 573.5f }, { 227.7f, 0.0f, 461.2f }, { 319.30002f, 0.0f, 400.6f }, { 342.30002f, 0.0f, 310.0f }, { 0.0f, 1.0f, 0.0f } }, + { { 357.69998f, 0.0f, 146.8f }, { 418.80002f, 0.0f, 225.0f }, { 503.2f, 0.0f, 234.69998f }, { 548.1f, 0.0f, 321.19998f }, { 0.0f, 1.0f, 0.0f } }, + { { -100.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, -100.0f }, { 100.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f } } }; void fn_1_1204(omObjData *object) { M438StructBss298 *var_r31; @@ -951,7 +914,8 @@ void fn_1_2070(omObjData *object) var_r31->unk_10.y = var_r31->unk_28.y + (var_f31 * (var_r31->unk_40.y - var_r31->unk_28.y)); var_r31->unk_10.z = var_r31->unk_28.z + (var_f31 * (var_r31->unk_40.z - var_r31->unk_28.z)); var_r31->unk_130 = var_r31->unk_134 + (var_f31 * (var_r31->unk_138 - var_r31->unk_134)); - } else { + } + else { fn_1_9420(2.0f * var_f31, (float *)&var_r31->unk_04, var_r31->unk_F4, (float(*)[3]) & var_r31->unk_64, var_r31->unk_88, 3); fn_1_9420(2.0f * var_f31, (float *)&var_r31->unk_10, var_r31->unk_100, (float(*)[3]) & var_r31->unk_AC, var_r31->unk_D0, 3); var_r31->unk_130 = fn_1_8EEC(2.0f * var_f31, var_r31->unk_124, var_r31->unk_10C, var_r31->unk_118, 3); @@ -1473,12 +1437,14 @@ void fn_1_35C0(omObjData *object) var_r31->unk_22 = var_r28; var_r31->unk_20 = var_r28; CharModelMotionShiftSet(var_r31->unk_01, object->motion[8], 0.0f, 8.0f, var_r27); - } else { + } + else { switch (var_r28) { case 0: case 1: case 2: - if (var_r31->unk_20 != 0 && CharModelMotionShiftIDGet(var_r31->unk_01) >= 0) break; + if (var_r31->unk_20 != 0 && CharModelMotionShiftIDGet(var_r31->unk_01) >= 0) + break; default: var_r31->unk_22 = var_r28; var_r31->unk_20 = var_r28; @@ -1590,7 +1556,6 @@ void fn_1_4724(omObjData *object) object->func = fn_1_4984; } - void fn_1_4984(omObjData *object) { Vec sp8; @@ -1645,7 +1610,7 @@ void fn_1_4984(omObjData *object) } lbl_1_bss_4 = fn_1_10258(0x3C, 1); fn_1_11018(lbl_1_bss_4, 0, 0x45000F); - lbl_1_bss_DE4.unk_40[lbl_1_bss_4].unk_30 = fn_1_5D4C; + lbl_1_bss_DE4.unk_40[lbl_1_bss_4].unk_30 = fn_1_5D4C; fn_1_11890(lbl_1_bss_4, var_r31->unk_10.x, 50.0f + var_r31->unk_10.y, var_r31->unk_10.z); fn_1_124CC(lbl_1_bss_4, 1); lbl_1_bss_8++; @@ -1708,7 +1673,7 @@ void fn_1_4F50(omObjData *object) var_r31->unk_00++; case 1: var_r31->unk_34 = var_r31->unk_10; - + for (var_r28 = 0, var_r26 = 0; var_r28 < 4; var_r28++) { var_r29 = lbl_1_bss_DC4[var_r28]->data; if ((var_r29->unk_07 != 0) && ((var_r29->unk_07 & 2) == 0)) { @@ -1723,17 +1688,20 @@ void fn_1_4F50(omObjData *object) if (var_r31->unk_1C.y <= -180.0f) { var_r31->unk_1C.y += 360.0f; } - + for (var_r28 = 0; var_r28 < var_r26; var_r28++) { var_f31 = fn_1_E5A4(sp8[var_r28], object->rot.y); if (var_f31 < 0.0f) { var_f27 = -var_f31; - } else { + } + else { var_f27 = var_f31; } - if (var_f27 > (20.0f + object->work[1])) continue; + if (var_f27 > (20.0f + object->work[1])) + continue; object->work[0]--; - if (object->work[0] != 0 && ((fn_1_7DB4() & 0xF) != 0)) continue; + if (object->work[0] != 0 && ((fn_1_7DB4() & 0xF) != 0)) + continue; var_r31->unk_04.y = sp8[var_r28]; var_r31->unk_1C.y = sp8[var_r28]; var_r31->unk_28.y = 16.333334f; @@ -1781,7 +1749,8 @@ void fn_1_4F50(omObjData *object) sp18 = var_r31->unk_10; sp18.y = 0.0f; var_f30 = VECMag(&sp18); - if (var_f30 <= 700.0f) break; + if (var_f30 <= 700.0f) + break; var_r31->unk_02 = 1; if (fn_1_DA64(atan2d(sp18.x, sp18.z)) != 0) { var_r31->unk_02 = 0x78; @@ -1804,7 +1773,8 @@ void fn_1_4F50(omObjData *object) case 4: var_r31->unk_28.y += -3.0625f; var_r31->unk_10.y += var_r31->unk_28.y; - if (var_r31->unk_10.y > 0.0f) break; + if (var_r31->unk_10.y > 0.0f) + break; var_r31->unk_10.y = 0.0f; var_r31->unk_34 = var_r31->unk_10; Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); @@ -1848,7 +1818,8 @@ void fn_1_4F50(omObjData *object) var_r29 = lbl_1_bss_DC4[var_r28]->data; VECSubtract(&var_r29->unk_6C, &var_r31->unk_10, &sp18); var_f30 = VECMag(&sp18); - if (var_f30 >= 200.0f || var_r29->unk_20 == 7) continue; + if (var_f30 >= 200.0f || var_r29->unk_20 == 7) + continue; omVibrate(var_r29->unk_00, 0xC, 4, 2); var_r29->unk_07 |= 2; var_r29->unk_0D = 0; @@ -1860,7 +1831,8 @@ void fn_1_4F50(omObjData *object) if (fabs(fn_1_E5A4(var_r29->unk_28, var_r29->unk_7C)) > 90.0) { var_r29->unk_7C = 180.0f + var_r29->unk_28; var_r29->unk_14 = 0; - } else { + } + else { var_r29->unk_7C = var_r29->unk_28; var_r29->unk_14 = 1; } @@ -1875,7 +1847,8 @@ void fn_1_4F50(omObjData *object) omSetRot(object, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z); } -void fn_1_5D4C(M438UnkStruct2 *arg0) { +void fn_1_5D4C(M438UnkStruct2 *arg0) +{ s16 sp8; f32 temp_f31; f32 temp_f30; @@ -1883,13 +1856,13 @@ void fn_1_5D4C(M438UnkStruct2 *arg0) { f32 temp_f28; f32 temp_f27; s32 var_r29; - M438UnkStruct* var_r31; + M438UnkStruct *var_r31; sp8 = 0; - switch (arg0->unk_60) { /* irregular */ + switch (arg0->unk_60) { /* irregular */ case 0: temp_f27 = 360.0f / arg0->unk_02; - + var_r31 = &arg0->unk_3C[0]; for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { var_r31->unk_6C.x = sind(temp_f27 * var_r29) * (0.8f + (0.1f * (2.0f * ((1.0f / 32768.0f) * (fn_1_7DB4() - 0x8000))))); @@ -1909,7 +1882,7 @@ void fn_1_5D4C(M438UnkStruct2 *arg0) { arg0->unk_7C--; temp_f31 = (48.0f - arg0->unk_7C) / 48.0f; temp_f28 = arg0->unk_7C / 48.0f; - + var_r31 = arg0->unk_3C; for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { var_r31->unk_00.x += 12.5f * temp_f28 * var_r31->unk_6C.x; @@ -1935,7 +1908,7 @@ void fn_1_62BC(M438UnkStruct2 *arg0) s16 sp8; M438UnkStruct *var_r31; - + sp8 = 0; switch (arg0->unk_60) { case 0: @@ -1957,9 +1930,10 @@ void fn_1_62BC(M438UnkStruct2 *arg0) } } -void fn_1_63B0(M438UnkStruct2* arg0) { +void fn_1_63B0(M438UnkStruct2 *arg0) +{ Vec sp8; - M438UnkStruct* var_r31; + M438UnkStruct *var_r31; f32 var_f31; f32 temp_f30; f32 var_f29; @@ -1970,10 +1944,8 @@ void fn_1_63B0(M438UnkStruct2* arg0) { for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { switch (var_r31->unk_5C) { case 0: - var_f29 = atan2d(arg0->unk_80, arg0->unk_84) < 0 - ? -atan2d(arg0->unk_80, arg0->unk_84) - : atan2d(arg0->unk_80, arg0->unk_84); - + var_f29 = atan2d(arg0->unk_80, arg0->unk_84) < 0 ? -atan2d(arg0->unk_80, arg0->unk_84) : atan2d(arg0->unk_80, arg0->unk_84); + if (var_f29 > 90.0f) { var_f29 = 180.0f - var_f29; } @@ -1984,7 +1956,7 @@ void fn_1_63B0(M438UnkStruct2* arg0) { var_r31->unk_00.x = sp8.x; var_r31->unk_00.y = 0.0f; var_r31->unk_00.z = sp8.z; - + for (var_f31 = 0.0f, sp8.y = 0.0f; var_f31 < (arg0->unk_8C - 40.0f); var_f31 += sp8.y) { sp8.y += 0.8f; } @@ -2000,7 +1972,8 @@ void fn_1_63B0(M438UnkStruct2* arg0) { temp_f30 = 3.75f + (1.75f * ((1.0f / 65536.0f) * fn_1_7DB4())); var_r31->unk_60.x = (temp_f30 * (0.1f + ((0.9f * var_f29) / 90.0f))); var_r31->unk_60.y = var_r31->unk_60.z = temp_f30; - } else { + } + else { var_r31->unk_33 = 0; var_r31->unk_54 = 0; var_r31->unk_55 = 0; @@ -2044,9 +2017,10 @@ void fn_1_63B0(M438UnkStruct2* arg0) { } } -void fn_1_6A3C(M438UnkStruct2* arg0) { +void fn_1_6A3C(M438UnkStruct2 *arg0) +{ Vec sp8; - M438UnkStruct* var_r31; + M438UnkStruct *var_r31; f32 temp_f31; f32 temp_f30; f32 temp_f29; @@ -2056,7 +2030,7 @@ void fn_1_6A3C(M438UnkStruct2* arg0) { var_r31 = arg0->unk_3C; var_r28 = 0; - + for (var_r27 = 0; var_r27 < arg0->unk_02; var_r27++, var_r31++) { if ((arg0->unk_7C != 0) && (var_r31->unk_7A == 0)) { var_r31->unk_5C = 0; @@ -2077,7 +2051,8 @@ void fn_1_6A3C(M438UnkStruct2* arg0) { var_r31->unk_6C.z = 100.0f * (0.1f * sp8.z); var_r31->unk_78 = (s32)(24.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1; var_r31->unk_7A = 1; - } else { + } + else { temp_f30 = (180.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) - 90.0f; temp_f29 = 125.0f * ((1.0f / 65536.0f) * fn_1_7DB4()); sp8.x = sind(temp_f30); @@ -2103,7 +2078,8 @@ void fn_1_6A3C(M438UnkStruct2* arg0) { var_r31->unk_18.x = temp_f31; var_r31->unk_18.y = temp_f31; var_r31->unk_18.z = temp_f31; - } else if (arg0->unk_7C != 0) { + } + else if (arg0->unk_7C != 0) { var_r31->unk_33 = 0; var_r31->unk_54 = 0; var_r31->unk_55 = 0; @@ -2113,10 +2089,11 @@ void fn_1_6A3C(M438UnkStruct2* arg0) { var_r31->unk_18.x = temp_f31; var_r31->unk_18.y = 1.5f * temp_f31; var_r31->unk_18.z = temp_f31; - } else { + } + else { var_r29 = fn_1_10258(8, 1); fn_1_11018(var_r29, 0, 0x45000A); - lbl_1_bss_DE4.unk_40[var_r29].unk_30 = (void (*)(M438UnkStruct2*)) fn_1_7300; + lbl_1_bss_DE4.unk_40[var_r29].unk_30 = (void (*)(M438UnkStruct2 *))fn_1_7300; fn_1_11890(var_r29, arg0->unk_0C.x + var_r31->unk_00.x, arg0->unk_0C.y + var_r31->unk_00.y, arg0->unk_0C.z + var_r31->unk_00.z); fn_1_12100(var_r29, 4); fn_1_124CC(var_r29, 1); @@ -2134,7 +2111,8 @@ void fn_1_6A3C(M438UnkStruct2* arg0) { var_r31->unk_58->unk_24 = 0x11; if (var_r31->unk_7A != 0) { var_r31->unk_58->unk_28 = 0.5f; - } else { + } + else { var_r31->unk_58->unk_28 = 0.5f; } var_r31->unk_58->unk_2C = 0.0f; @@ -2156,7 +2134,8 @@ void fn_1_6A3C(M438UnkStruct2* arg0) { if ((var_r31->unk_58->unk_24 & 8) != 0) { if (var_r31->unk_7A != 0) { var_r31->unk_5C = 3; - } else { + } + else { var_r31->unk_5C = 0; } } @@ -2171,9 +2150,10 @@ void fn_1_6A3C(M438UnkStruct2* arg0) { } } -void fn_1_7300(M438UnkStruct2* arg0) { +void fn_1_7300(M438UnkStruct2 *arg0) +{ Vec sp8; - M438UnkStruct* var_r31; + M438UnkStruct *var_r31; f32 temp_f29; f32 temp_f30; f32 temp_f31; @@ -2181,33 +2161,32 @@ void fn_1_7300(M438UnkStruct2* arg0) { s32 var_r29; var_r31 = arg0->unk_3C; - + switch (arg0->unk_60) { case 0: arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z = temp_f31 = 0.01f; arg0->unk_7C = Hu3DModelCreateFile(0x45000B); arg0->unk_7E = (s32)(30.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 30; - + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { var_r31->unk_38 |= 4; } arg0->unk_60++; case 1: arg0->unk_24.z += 0.008f; - + arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z; Hu3DModelPosSetV(arg0->unk_7C, &arg0->unk_0C); Hu3DModelScaleSetV(arg0->unk_7C, &arg0->unk_24); if (--arg0->unk_7E == 0) { Hu3DModelKill(arg0->unk_7C); arg0->unk_7C = 0; - + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { var_r31->unk_5C = 1; } arg0->unk_80 = arg0->unk_24.x; - - + arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z = 1.0f; arg0->unk_60++; } @@ -2215,7 +2194,7 @@ void fn_1_7300(M438UnkStruct2* arg0) { } var_r28 = 0; var_r31 = arg0->unk_3C; - + for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { switch (var_r31->unk_5C) { case 1: @@ -2450,32 +2429,36 @@ float fn_1_7EDC(float arg8, float arg9, float argA) arg8 = arg9 + (var_f31 * argA); if (arg8 > 180.0f) { arg8 -= 360.0f; - } else if (arg8 <= -180.0f) { + } + else if (arg8 <= -180.0f) { arg8 += 360.0f; } return arg8; } -void fn_1_8044(Mtx arg0, f32 arg8, f32 arg9, f32 argA) { +void fn_1_8044(Mtx arg0, f32 arg8, f32 arg9, f32 argA) +{ Mtx sp38; Mtx sp8; - + if (0.0f != argA) { - PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); - } else { - PSMTXIdentity(arg0); + MTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); + } + else { + MTXIdentity(arg0); } if (0.0f != arg8) { - PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); - PSMTXConcat(sp38, arg0, arg0); + MTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); + MTXConcat(sp38, arg0, arg0); } if (0.0f != arg9) { - PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); - PSMTXConcat(sp8, arg0, arg0); + MTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); + MTXConcat(sp8, arg0, arg0); } } -void fn_1_8164(Mtx arg0, Vec* arg1) { +void fn_1_8164(Mtx arg0, Vec *arg1) +{ f32 temp_f29; f32 var_f28; @@ -2500,7 +2483,8 @@ void fn_1_8164(Mtx arg0, Vec* arg1) { } } -void fn_1_8500(Mtx arg0, Vec* arg1) { +void fn_1_8500(Mtx arg0, Vec *arg1) +{ f32 temp_f29; f32 var_f28; @@ -2511,7 +2495,8 @@ void fn_1_8500(Mtx arg0, Vec* arg1) { arg1->x = atan2d(temp_f29, var_f28); } -f32 fn_1_8750(f32 arg8, f32 arg9, f32 argA, f32 argB) { +f32 fn_1_8750(f32 arg8, f32 arg9, f32 argA, f32 argB) +{ f32 temp_f31; f32 var_f30; @@ -2520,22 +2505,25 @@ f32 fn_1_8750(f32 arg8, f32 arg9, f32 argA, f32 argB) { return var_f30; } -void fn_1_87C8(f32* arg0, f32* arg1, f32* arg2, f32* arg3, f32 arg8) { +void fn_1_87C8(f32 *arg0, f32 *arg1, f32 *arg2, f32 *arg3, f32 arg8) +{ s32 var_r31; - + for (var_r31 = 0; var_r31 < 3; var_r31++) { *arg3++ = fn_1_8750(arg8, *arg0++, *arg1++, *arg2++); } } -f32 fn_1_88E4(f32 arg8, f32 arg9, f32 argA, f32 argB) { +f32 fn_1_88E4(f32 arg8, f32 arg9, f32 argA, f32 argB) +{ f32 var_f31; var_f31 = 2.0 * ((arg8 - 1.0) * arg9 + (1.0 - (2.0 * arg8)) * argA + (arg8 * argB)); return var_f31; } -void fn_1_895C(f32* arg0, f32* arg1, f32* arg2, f32* arg3, f32 arg8) { +void fn_1_895C(f32 *arg0, f32 *arg1, f32 *arg2, f32 *arg3, f32 arg8) +{ f32 spC[3]; f32 var_f29; s32 var_r31; @@ -2672,7 +2660,6 @@ void fn_1_9040(float *arg0, Vec *arg1, float arg2[3][3], s32 arg3) } } - void fn_1_9420(float arg8, float *arg0, float *arg1, float arg2[3][3], float arg3[3][3], s32 arg4) { float sp48[16]; @@ -2692,7 +2679,8 @@ void fn_1_9420(float arg8, float *arg0, float *arg1, float arg2[3][3], float arg } } -f32 fn_1_9634(Vec* arg0) { +f32 fn_1_9634(Vec *arg0) +{ f32 var_f30; f32 var_f29; var_f30 = (arg0->x * arg0->x) + (arg0->y * arg0->y) + (arg0->z * arg0->z); @@ -2702,24 +2690,28 @@ f32 fn_1_9634(Vec* arg0) { arg0->x *= var_f29; arg0->y *= var_f29; arg0->z *= var_f29; - } else { + } + else { arg0->x = arg0->y = arg0->z = 0.0f; } return var_f30; } -f32 fn_1_97CC(Vec arg0, Vec arg1, Vec* arg2, f32 arg8) { +f32 fn_1_97CC(Vec arg0, Vec arg1, Vec *arg2, f32 arg8) +{ if (arg8 <= 0.0f) { arg2->x = arg0.x; arg2->y = arg0.y; arg2->z = arg0.z; arg8 = 0.0f; - } else if (arg8 >= 1.0f) { + } + else if (arg8 >= 1.0f) { arg2->x = (arg0.x + arg1.x); arg2->y = (arg0.y + arg1.y); arg2->z = (arg0.z + arg1.z); arg8 = 1.0f; - } else { + } + else { arg2->x = (arg0.x + (arg8 * arg1.x)); arg2->y = (arg0.y + (arg8 * arg1.y)); arg2->z = (arg0.z + (arg8 * arg1.z)); @@ -2727,7 +2719,8 @@ f32 fn_1_97CC(Vec arg0, Vec arg1, Vec* arg2, f32 arg8) { return arg8; } -f32 fn_1_98A4(Vec arg0, Vec arg1, Vec arg2) { +f32 fn_1_98A4(Vec arg0, Vec arg1, Vec arg2) +{ f32 temp_f30; f32 var_f31; @@ -2739,21 +2732,24 @@ f32 fn_1_98A4(Vec arg0, Vec arg1, Vec arg2) { return var_f31; } -f32 fn_1_9960(Vec* arg0, Vec* arg1, Vec* arg2) { +f32 fn_1_9960(Vec *arg0, Vec *arg1, Vec *arg2) +{ Vec sp44; f32 var_f31; f32 var_f30; f32 temp_f29; if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { - return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); } var_f31 = fn_1_98A4(*arg0, *arg1, *arg2); fn_1_97CC(*arg1, *arg2, &sp44, var_f31); return ((arg0->z - sp44.z) * (arg0->z - sp44.z)) + (((arg0->x - sp44.x) * (arg0->x - sp44.x)) + ((arg0->y - sp44.y) * (arg0->y - sp44.y))); } -f32 fn_1_9C9C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { +f32 fn_1_9C9C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ f32 sp44; f32 sp40; f32 sp3C; @@ -2778,7 +2774,8 @@ f32 fn_1_9C9C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { f64 temp_f31_3; if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { - return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); + return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y))); } var_f27 = fn_1_98A4(*arg0, *arg1, *arg2); fn_1_97CC(*arg1, *arg2, arg3, var_f27); @@ -2789,7 +2786,8 @@ f32 fn_1_9C9C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) { return fn_1_9634(arg4); } -f32 fn_1_A14C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3) { +f32 fn_1_A14C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ f32 temp_f31; f32 var_f30; f32 var_f29; @@ -2809,14 +2807,17 @@ f32 fn_1_A14C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3) { if (var_f28 >= var_f27) { if (var_f28 >= var_f26) { var_r30 = 1; - } else { + } + else { var_r30 = 0x100; } var_r31 = var_r30; - } else { + } + else { if (var_f27 >= var_f26) { var_r29 = 0x10; - } else { + } + else { var_r29 = 0x100; } var_r31 = var_r29; @@ -2827,30 +2828,38 @@ f32 fn_1_A14C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3) { return var_f30; } var_f29 = ((arg3->z * (arg0->x - arg2->x)) - (arg3->x * (arg0->z - arg2->z))) / temp_f31; - } else if (0.0f == (temp_f31 = (arg3->y * arg1->x) - (arg3->x * arg1->y))) { + } + else if (0.0f == (temp_f31 = (arg3->y * arg1->x) - (arg3->x * arg1->y))) { return var_f30; - } else { + } + else { var_f29 = ((arg3->x * (arg0->y - arg2->y)) - (arg3->y * (arg0->x - arg2->x))) / temp_f31; } - } else if ((var_r31 & 0x30) != 0) { + } + else if ((var_r31 & 0x30) != 0) { if ((0.0f != arg1->x) || (0.0f != arg1->y)) { if (0.0f == (temp_f31 = (arg3->y * arg1->x) - (arg3->x * arg1->y))) { return var_f30; } var_f29 = ((arg3->x * (arg0->y - arg2->y)) - (arg3->y * (arg0->x - arg2->x))) / temp_f31; - } else if (0.0f == (temp_f31 = (arg3->z * arg1->y) - (arg3->y * arg1->z))) { + } + else if (0.0f == (temp_f31 = (arg3->z * arg1->y) - (arg3->y * arg1->z))) { return var_f30; - } else { + } + else { var_f29 = ((arg3->y * (arg0->z - arg2->z)) - (arg3->z * (arg0->y - arg2->y))) / temp_f31; } - } else if ((0.0f != arg1->x) || (0.0f != arg1->z)) { + } + else if ((0.0f != arg1->x) || (0.0f != arg1->z)) { if (0.0f == (temp_f31 = (arg3->x * arg1->z) - (arg3->z * arg1->x))) { return var_f30; } var_f29 = ((arg3->z * (arg0->x - arg2->x)) - (arg3->x * (arg0->z - arg2->z))) / temp_f31; - } else if (0.0f == (temp_f31 = (arg3->z * arg1->y) - (arg3->y * arg1->z))) { + } + else if (0.0f == (temp_f31 = (arg3->z * arg1->y) - (arg3->y * arg1->z))) { return var_f30; - } else { + } + else { var_f29 = ((arg3->y * (arg0->z - arg2->z)) - (arg3->z * (arg0->y - arg2->y))) / temp_f31; } return var_f29; @@ -2871,11 +2880,31 @@ void fn_1_A688(omObjData *object) { } Vec lbl_1_data_514 = { -850.0f, 0.0f, -850.0f }; s32 lbl_1_data_520[25] = { - -0x62, -0x61, -0x60, -0x5F, -0x5E, - -0x32, -0x31, -0x30, -0x2F, -0x2E, - -0x2, -0x1, 0x0, 0x1, 0x2, - 0x2E, 0x2F, 0x30, 0x31, 0x32, - 0x5E, 0x5F, 0x60, 0x61, 0x62, + -0x62, + -0x61, + -0x60, + -0x5F, + -0x5E, + -0x32, + -0x31, + -0x30, + -0x2F, + -0x2E, + -0x2, + -0x1, + 0x0, + 0x1, + 0x2, + 0x2E, + 0x2F, + 0x30, + 0x31, + 0x32, + 0x5E, + 0x5F, + 0x60, + 0x61, + 0x62, }; u32 lbl_1_data_584[25] = { @@ -2906,18 +2935,20 @@ u32 lbl_1_data_584[25] = { 0x50, }; -#define getData(v, off) &( &( *OM_GET_DATA_PTR(lbl_1_bss_DBC, M438UnkType) )[ (u32)(0.028235294f * (v.x - off)) ] )[ (u32)(0.028235294f * (v.z - off)) * 0x30 ] +#define getData(v, off) \ + &(&(*OM_GET_DATA_PTR(lbl_1_bss_DBC, M438UnkType))[(u32)(0.028235294f * (v.x - off))])[(u32)(0.028235294f * (v.z - off)) * 0x30] -void fn_1_A68C(ModelData* model, Mtx matrix) { +void fn_1_A68C(ModelData *model, Mtx matrix) +{ Vec sp14; Vec sp8; - M438StructBss298* var_r30; + M438StructBss298 *var_r30; f32 var_f31; - omObjData* temp_r27; + omObjData *temp_r27; s32 var_r28; s32 var_r29; - u8* temp_r26; - u8* var_r25; + u8 *temp_r26; + u8 *var_r25; M438MainWork *temp_r31; if ((u8)omPauseChk() == 0) { @@ -2929,9 +2960,9 @@ void fn_1_A68C(ModelData* model, Mtx matrix) { var_f31 = 0.0f; for (var_f31 = 0.0f; var_f31 < (35.416668f + var_r30->unk_14); var_f31 += 35.416668f) { - PSVECScale(&var_r30->unk_24, &sp8, var_f31); - PSVECAdd(&var_r30->unk_18, &sp8, &sp14); - PSVECSubtract(&sp14, &lbl_1_data_514, &sp14); + VECScale(&var_r30->unk_24, &sp8, var_f31); + VECAdd(&var_r30->unk_18, &sp8, &sp14); + VECSubtract(&sp14, &lbl_1_data_514, &sp14); // @todo make this look nicer // var_r25 = getData(sp14, 0); @@ -2946,12 +2977,12 @@ void fn_1_A68C(ModelData* model, Mtx matrix) { } } for (var_r29 = 0; var_r29 < 4; var_r29++) { - if ((omObjData* ) lbl_1_bss_DC4[var_r29]) { + if ((omObjData *)lbl_1_bss_DC4[var_r29]) { temp_r27 = lbl_1_bss_DC4[var_r29]; temp_r31 = temp_r27->data; if ((temp_r31) && (temp_r31->unk_68 != 0)) { temp_r31->unk_68 = 0; - PSVECAdd(&temp_r31->unk_6C, &temp_r31->unk_4C, &sp14); + VECAdd(&temp_r31->unk_6C, &temp_r31->unk_4C, &sp14); temp_r31->unk_64 = fn_1_AE18(temp_r27->work[0], temp_r31->unk_7C, &sp14, &temp_r31->unk_58); } } @@ -2960,7 +2991,8 @@ void fn_1_A68C(ModelData* model, Mtx matrix) { } } -u32 fn_1_A8FC(Vec* arg0, f32 arg8) { +u32 fn_1_A8FC(Vec *arg0, f32 arg8) +{ Vec sp2C; Vec sp20; Vec sp14; @@ -2976,11 +3008,11 @@ u32 fn_1_A8FC(Vec* arg0, f32 arg8) { var_r30 = 0; var_r28 = 0; temp_f28 = 100.0f * (4.5f - (2.0f * arg8)); - var_f31 = PSVECMag(arg0); + var_f31 = VECMag(arg0); if (var_f31 > 280.0f) { if (var_f31 > 560.0f) { var_r28 = 1; - PSVECNormalize(arg0, &sp14); + VECNormalize(arg0, &sp14); } var_f31 -= 280.0f; var_f31 *= 0.12987013f; @@ -2999,17 +3031,17 @@ u32 fn_1_A8FC(Vec* arg0, f32 arg8) { sp8.x = sind(temp_r31->unk_08); sp8.y = 0.0f; sp8.z = cosd(temp_r31->unk_08); - PSVECScale(&sp8, &sp20, 600.0f + (100.0f * (8.0f * arg8))); + VECScale(&sp8, &sp20, 600.0f + (100.0f * (8.0f * arg8))); var_f30 = fn_1_B440(arg0, &sp2C, &sp20); if (var_f30 > -0.2f && var_f30 < 1.0f) { - PSVECScale(&sp20, &sp20, var_f30); - PSVECAdd(&sp2C, &sp20, &sp2C); - PSVECSubtract(&sp2C, arg0, &sp20); - var_f31 = PSVECMag(&sp20); - if (var_f31 < temp_f28) { + VECScale(&sp20, &sp20, var_f30); + VECAdd(&sp2C, &sp20, &sp2C); + VECSubtract(&sp2C, arg0, &sp20); + var_f31 = VECMag(&sp20); + if (var_f31 < temp_f28) { var_f29 = 0.0f; if (var_r28 != 0) { - var_f29 = PSVECDotProduct(&sp14, &sp8); + var_f29 = VECDotProduct(&sp14, &sp8); var_f29 = 1.0 - fabs(var_f29); } var_f31 = (1.0f / temp_f28) * (temp_f28 - var_f31); @@ -3026,8 +3058,8 @@ u32 fn_1_A8FC(Vec* arg0, f32 arg8) { } break; default: - PSVECSubtract(arg0, &sp2C, &sp20); - var_f31 = PSVECMag(&sp20); + VECSubtract(arg0, &sp2C, &sp20); + var_f31 = VECMag(&sp20); if (var_f31 < 600.0f) { var_f31 = 800.0f - var_f31; var_f31 = 20.0f + (0.1f * var_f31); @@ -3073,14 +3105,15 @@ Vec lbl_1_data_69C[9] = { s32 lbl_1_data_708[9] = { 0, -19, -18, -17, -1, 1, 0x11, 0x12, 0x13 }; s32 lbl_1_data_72C[9] = { 0, -38, -54, -34, -3, 3, 0x22, 0x36, 0x26 }; -s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) { +s32 fn_1_AE18(u32 arg0, f32 arg8, Vec *arg1, Vec *arg2) +{ s32 sp58[9]; Vec sp4C; Vec sp40; Vec sp34; Vec sp28; Vec sp1C; - u8* sp18; + u8 *sp18; u32 sp14; u32 sp10; f32 var_f31; @@ -3091,16 +3124,16 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) { s32 var_r30; u32 var_r29; s32 var_r28; - u16* temp_r27; + u16 *temp_r27; s32 var_r26; M438MainWork *var_r25; - u8* temp_r24; + u8 *temp_r24; s32 var_r23; - u8* var_r22; - u16* var_r21; + u8 *var_r22; + u16 *var_r21; u32 var_r19; u32 var_r18; - u8* temp_r17; + u8 *temp_r17; memset(lbl_1_bss_C, 0, 0x288); sp40 = *arg1; @@ -3113,9 +3146,9 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) { temp_f28 = var_r25->unk_3C; var_r19 = 0x2710; var_r18 = 0; - + for (var_r30 = 0; var_r30 < 9; var_r30++) { - PSVECAdd(&sp40, &lbl_1_data_60C[var_r30], &sp34); + VECAdd(&sp40, &lbl_1_data_60C[var_r30], &sp34); sp18 = temp_r17 + lbl_1_data_5E8[var_r30]; (void)temp_r17; var_r21 = &(&lbl_1_bss_C[lbl_1_data_708[var_r30]])[0xAB]; @@ -3123,12 +3156,13 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) { var_r29 = 0; var_r22 = sp18; sp28 = sp34; - + for (var_r23 = 0; var_r23 < 3; var_r23++) { for (var_r28 = 0; var_r28 < 9; var_r28++) { temp_r24 = var_r22 + lbl_1_data_5E8[var_r28]; - PSVECAdd(&sp28, &lbl_1_data_60C[var_r28], &sp4C); - if ((lbl_1_bss_DBC->data <= temp_r24) && (((u8*)lbl_1_bss_DBC->data + 0x900 > temp_r24) && (fabs(sp4C.x) < 850.0) && (fabs(sp4C.z) < 850.0))) { + VECAdd(&sp28, &lbl_1_data_60C[var_r28], &sp4C); + if ((lbl_1_bss_DBC->data <= temp_r24) + && (((u8 *)lbl_1_bss_DBC->data + 0x900 > temp_r24) && (fabs(sp4C.x) < 850.0) && (fabs(sp4C.z) < 850.0))) { var_f31++; temp_r27 = &var_r21[lbl_1_data_708[var_r28]]; if (*temp_r27 == 0) { @@ -3142,9 +3176,9 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) { for (var_r26 = 0; var_r26 < 4; var_r26++) { if (var_r26 != arg0) { var_r25 = lbl_1_bss_DC4[var_r26]->data; - PSVECSubtract(&sp4C, &var_r25->unk_6C, &sp1C); + VECSubtract(&sp4C, &var_r25->unk_6C, &sp1C); sp1C.y = 0.0f; - var_f30 = PSVECMag(&sp1C); + var_f30 = VECMag(&sp1C); if (var_f30 < var_f29) { var_f30 = var_f29 - var_f30; var_f30 *= (40.0f / var_f29); @@ -3153,7 +3187,8 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) { } } *temp_r27 = ++var_r31; - } else { + } + else { var_r31 = *temp_r27; } var_r29 += var_r31; @@ -3163,7 +3198,7 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) { } } } - PSVECAdd(&sp28, &lbl_1_data_69C[var_r30], &sp28); + VECAdd(&sp28, &lbl_1_data_69C[var_r30], &sp28); var_r22 += lbl_1_data_678[var_r30]; var_r21 = &var_r21[lbl_1_data_72C[var_r30]]; var_f31 *= 2.0f; @@ -3185,14 +3220,15 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) { return 0; } -f32 fn_1_B440(Vec* arg0, Vec* arg1, Vec* arg2) { +f32 fn_1_B440(Vec *arg0, Vec *arg1, Vec *arg2) +{ Vec sp10; f32 temp_f30; f32 var_f31; - - PSVECSubtract(arg1, arg0, &sp10); - var_f31 = PSVECDotProduct(&sp10, arg2); - temp_f30 = -PSVECSquareMag(arg2); + + VECSubtract(arg1, arg0, &sp10); + var_f31 = VECDotProduct(&sp10, arg2); + temp_f30 = -VECSquareMag(arg2); if (temp_f30 != 0.0f) { var_f31 /= temp_f30; } diff --git a/src/REL/m438Dll/map.c b/src/REL/m438Dll/map.c index ee37c2c3..58f7e686 100644 --- a/src/REL/m438Dll/map.c +++ b/src/REL/m438Dll/map.c @@ -1,11 +1,12 @@ #include "REL/m438Dll.h" #include "ext_math.h" -#include "string.h" #include "game/hsfanim.h" #include "game/hsfmotion.h" #include "game/sprite.h" #include "game/wipe.h" +#include "string.h" + // STRUCT typedef struct M438MapStruct { @@ -32,8 +33,8 @@ typedef struct M438MapStruct2 { Vec unk30; Vec unk3C; union { - M438MainWork4* unk48; - HsfObject* unk48o; + M438MainWork4 *unk48; + HsfObject *unk48o; }; } M438MapStruct2; @@ -45,56 +46,51 @@ typedef struct M438MapStruct3 { } M438MapStruct3; // BSS -omObjData* lbl_1_bss_108C[6]; -HsfanimStruct01* lbl_1_bss_E34[0x96]; +omObjData *lbl_1_bss_108C[6]; +HsfanimStruct01 *lbl_1_bss_E34[0x96]; s32 lbl_1_bss_E30; s32 lbl_1_bss_E2C; s32 lbl_1_bss_E28; // DATA -char* lbl_1_data_848[] = { - "iwa_s1", "iwa_s2", "iwa_s3", "iwa_s4", "iwa_s5", - "iwa_s6", "iwa_s7", "iwa_s8", "iwa_s9", - "iwa_s10", "iwa_s11", "iwa_s12", "iwa_s13", - "iwa_s14", "iwa_s15", "iwa_s16", "iwa_s17", - "iwa_s18", "iwa_s19", "iwa_s20", "iwa_s21", - "iwa_s22", "iwa_s23", "iwa_s24", "iwa_s25", - "iwa_s26", "iwa_s27", "iwa_s28", "iwa_s29", - "iwa_s30", "iwa_s31", "iwa_s32" -}; +char *lbl_1_data_848[] = { "iwa_s1", "iwa_s2", "iwa_s3", "iwa_s4", "iwa_s5", "iwa_s6", "iwa_s7", "iwa_s8", "iwa_s9", "iwa_s10", "iwa_s11", "iwa_s12", + "iwa_s13", "iwa_s14", "iwa_s15", "iwa_s16", "iwa_s17", "iwa_s18", "iwa_s19", "iwa_s20", "iwa_s21", "iwa_s22", "iwa_s23", "iwa_s24", "iwa_s25", + "iwa_s26", "iwa_s27", "iwa_s28", "iwa_s29", "iwa_s30", "iwa_s31", "iwa_s32" }; // PROTO -void fn_1_B54C(omObjData*); -void fn_1_BF20(omObjData*); +void fn_1_B54C(omObjData *); +void fn_1_BF20(omObjData *); void fn_1_CAB0(f32); -void fn_1_C764(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_C8E8(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_D3FC(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_D57C(Vec*, f32); -void fn_1_E034(Mtx, Vec*); +void fn_1_C764(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_C8E8(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_D3FC(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_D57C(Vec *, f32); +void fn_1_E034(Mtx, Vec *); -void fn_1_B4D8(Process* arg0) { - omObjData* var_r31; +void fn_1_B4D8(Process *arg0) +{ + omObjData *var_r31; lbl_1_bss_E30 = 0; var_r31 = lbl_1_bss_108C[0] = omAddObjEx(arg0, 0x20, 8, 0, -1, fn_1_B54C); var_r31->work[0] = 0; } -void fn_1_B548(void) {} +void fn_1_B548(void) { } -void fn_1_B54C(omObjData* arg0) { +void fn_1_B54C(omObjData *arg0) +{ Vec sp20; Vec sp14; Vec sp8; s32 var_r30; s32 var_r29; - HsfObject* var_r26; + HsfObject *var_r26; s32 var_r27; - M438MapStruct2* var_r28; - HsfanimStruct01* var_r25; - M438MapStruct* var_r24; - M438MapStruct3* temp_r23; + M438MapStruct2 *var_r28; + HsfanimStruct01 *var_r25; + M438MapStruct *var_r24; + M438MapStruct3 *temp_r23; arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x108C, 0x10000000); temp_r23 = arg0->data; @@ -116,29 +112,29 @@ void fn_1_B54C(omObjData* arg0) { var_r29 = Hu3DTexScrollCreate(arg0->model[1], "lafall"); Hu3DTexScrollPosMoveSet(var_r29, 0.0f, -(1.0f / 60.0f), 0.0f); var_r29 = 0; - + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000C), 0x32); arg0->model[3] = var_r27; Hu3DModelLayerSet(var_r27, 3); Hu3DParticleHookSet(var_r27, fn_1_C764); for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) { - lbl_1_bss_E34[var_r29] = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; + lbl_1_bss_E34[var_r29] = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; } - + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000D), 0x32); arg0->model[4] = var_r27; Hu3DModelLayerSet(var_r27, 3); Hu3DParticleHookSet(var_r27, fn_1_C764); for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) { - lbl_1_bss_E34[var_r29] = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; + lbl_1_bss_E34[var_r29] = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; } - + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000E), 0x32); arg0->model[5] = var_r27; Hu3DModelLayerSet(var_r27, 3); Hu3DParticleHookSet(var_r27, fn_1_C764); for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) { - lbl_1_bss_E34[var_r29] = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; + lbl_1_bss_E34[var_r29] = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[var_r30]; } for (var_r30 = 0; var_r30 < 0x95; var_r30++) { for (var_r29 = 1; var_r29 < 0x96; var_r29++) { @@ -155,24 +151,24 @@ void fn_1_B54C(omObjData* arg0) { lbl_1_bss_E34[var_r30]->unk40.a = 0; lbl_1_bss_E34[var_r30]->unk00 = 0; } - + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000F), 0x32); arg0->model[6] = var_r27; Hu3DModelLayerSet(var_r27, 3); Hu3DParticleHookSet(var_r27, fn_1_C8E8); - var_r25 = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[0]; + var_r25 = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[0]; for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r25++) { var_r25->unk2C = 0.0f; var_r25->unk40.a = 0; var_r25->unk00 = 0; } - + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x450010), 0x1F4); arg0->model[7] = var_r27; Hu3DModelLayerSet(var_r27, 2); Hu3DParticleBlendModeSet(var_r27, 1); Hu3DParticleHookSet(var_r27, fn_1_D3FC); - var_r25 = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[0]; + var_r25 = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[0]; for (var_r30 = 0; var_r30 < 0x1F4; var_r30++, var_r25++) { var_r25->unk2C = 0.0f; var_r25->unk40.a = 0; @@ -191,27 +187,27 @@ void fn_1_B54C(omObjData* arg0) { sp8.x = sp8.y = sp8.z = 100000.0f; for (var_r29 = 0; var_r29 < var_r26->data.vertex->count; var_r29++) { - if (((Vec*)var_r26->data.vertex->data)[var_r29].x > sp14.x) { - sp14.x = ((Vec*)var_r26->data.vertex->data)[var_r29].x; + if (((Vec *)var_r26->data.vertex->data)[var_r29].x > sp14.x) { + sp14.x = ((Vec *)var_r26->data.vertex->data)[var_r29].x; } - if (((Vec*)var_r26->data.vertex->data)[var_r29].y > sp14.y) { - sp14.y = ((Vec*)var_r26->data.vertex->data)[var_r29].y; + if (((Vec *)var_r26->data.vertex->data)[var_r29].y > sp14.y) { + sp14.y = ((Vec *)var_r26->data.vertex->data)[var_r29].y; } - if (((Vec*)var_r26->data.vertex->data)[var_r29].z > sp14.z) { - sp14.z = ((Vec*)var_r26->data.vertex->data)[var_r29].z; + if (((Vec *)var_r26->data.vertex->data)[var_r29].z > sp14.z) { + sp14.z = ((Vec *)var_r26->data.vertex->data)[var_r29].z; } - if (((Vec*)var_r26->data.vertex->data)[var_r29].x < sp8.x) { - sp8.x = ((Vec*)var_r26->data.vertex->data)[var_r29].x; + if (((Vec *)var_r26->data.vertex->data)[var_r29].x < sp8.x) { + sp8.x = ((Vec *)var_r26->data.vertex->data)[var_r29].x; } - if (((Vec*)var_r26->data.vertex->data)[var_r29].y < sp8.y) { - sp8.y = ((Vec*)var_r26->data.vertex->data)[var_r29].y; + if (((Vec *)var_r26->data.vertex->data)[var_r29].y < sp8.y) { + sp8.y = ((Vec *)var_r26->data.vertex->data)[var_r29].y; } - if (((Vec*)var_r26->data.vertex->data)[var_r29].z < sp8.z) { - sp8.z = ((Vec*)var_r26->data.vertex->data)[var_r29].z; + if (((Vec *)var_r26->data.vertex->data)[var_r29].z < sp8.z) { + sp8.z = ((Vec *)var_r26->data.vertex->data)[var_r29].z; } } - PSVECAdd(&sp14, &sp8, &sp20); - PSVECScale(&sp20, &sp20, 0.5f); + VECAdd(&sp14, &sp8, &sp20); + VECScale(&sp20, &sp20, 0.5f); var_r28->unk24 = sp20; var_r28->unk30 = var_r28->unk24; var_r28->unk8 = (360.0 + atan2d(sp20.x, sp20.z)); @@ -241,7 +237,7 @@ Vec lbl_1_data_8D8[4][2] = { { -867.0f, -80.0f, -485.0f }, }, { - { -917.0f, -80.0f, -857.0f }, + { -917.0f, -80.0f, -857.0f }, { -817.0f, -80.0f, -1030.0f }, }, { @@ -249,12 +245,13 @@ Vec lbl_1_data_8D8[4][2] = { { 867.0f, -80.0f, -485.0f }, }, { - { 917.0f, -80.0f, -857.0f }, + { 917.0f, -80.0f, -857.0f }, { 817.0f, -80.0f, -1030.0f }, }, }; -void fn_1_BF20(omObjData* arg0) { +void fn_1_BF20(omObjData *arg0) +{ Mtx sp5C; Mtx sp2C; Vec sp20; @@ -264,18 +261,18 @@ void fn_1_BF20(omObjData* arg0) { f32 temp_f30; f32 temp_f31; s32 var_r29; - M438MapStruct2* var_r31; - M438MapStruct* var_r30; - M438MapStruct3* temp_r28; + M438MapStruct2 *var_r31; + M438MapStruct *var_r30; + M438MapStruct3 *temp_r28; temp_r28 = arg0->data; temp_r28->unk0++; var_r31 = &temp_r28->unk4; - + for (var_r29 = 0; var_r29 < 0x20; var_r29++, var_r31++) { if ((var_r31->unk0 == 0) && (var_r31->unk4 != 0)) { temp_f29 = var_r31->unk30.y; - PSVECAdd(&var_r31->unk30, &var_r31->unk3C, &var_r31->unk30); + VECAdd(&var_r31->unk30, &var_r31->unk3C, &var_r31->unk30); var_r31->unk3C.x *= 0.92f; var_r31->unk3C.z *= 0.92f; var_r31->unk3C.y += -0.27222225f; @@ -290,22 +287,22 @@ void fn_1_BF20(omObjData* arg0) { sp14.x = sind(90.0f + var_r31->unk8); sp14.z = cosd(90.0f + var_r31->unk8); sp14.y = 0.0f; - PSMTXRotAxisRad(sp5C, &sp14, MTXDegToRad(var_r31->unkC)); + MTXRotAxisRad(sp5C, &sp14, MTXDegToRad(var_r31->unkC)); sp14.x = sp14.z = 0.0f; sp14.y = 1.0f; - PSMTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk14)); - PSMTXConcat(sp2C, sp5C, sp5C); + MTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk14)); + MTXConcat(sp2C, sp5C, sp5C); sp14.x = sind(var_r31->unk8); sp14.z = cosd(var_r31->unk8); sp14.y = 0.0f; - PSMTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk1C)); - PSMTXConcat(sp2C, sp5C, sp5C); + MTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk1C)); + MTXConcat(sp2C, sp5C, sp5C); fn_1_E034(sp5C, &sp20); var_r31->unk48->unk_28.x = sp20.x; var_r31->unk48->unk_28.y = sp20.y; var_r31->unk48->unk_28.z = sp20.z; - PSMTXInverse(sp5C, sp5C); - PSMTXMultVec(sp5C, &var_r31->unk24, &sp8); + MTXInverse(sp5C, sp5C); + MTXMultVec(sp5C, &var_r31->unk24, &sp8); var_r31->unk48->unk_1C.x = (var_r31->unk30.x - sp8.x); var_r31->unk48->unk_1C.y = (var_r31->unk30.y - sp8.y); var_r31->unk48->unk_1C.z = (var_r31->unk30.z - sp8.z); @@ -316,16 +313,18 @@ void fn_1_BF20(omObjData* arg0) { } if ((temp_r28->unk0 & 1) == 0) { var_r30 = &temp_r28->unk984; - + for (var_r29 = 0; var_r29 < 0x32; var_r29++, var_r30++) { - if (var_r30->unk0 != 0) continue; + if (var_r30->unk0 != 0) + continue; var_r30->unk0 = 1; var_r30->unk18 = frandmod(0x168); if (frandmod(0x64) < 0x14) { var_r30->unkC.x = (0.8f * (frandmod(0x7D0) - 0x3E8)); var_r30->unkC.y = -80.0f; var_r30->unkC.z = ((-1.2f * frandmod(0x3E8)) - 1000.0f); - } else { + } + else { temp_f31 = frandmod(0x168); temp_f30 = 800.0f + (0.25f * frandmod(0x3E8)); var_r30->unkC.x = (temp_f30 * sind(temp_f31)); @@ -353,13 +352,13 @@ void fn_1_BF20(omObjData* arg0) { Hu3DModelScaleSet(var_r30->unk4, var_r30->unk1C, var_r30->unk1C, var_r30->unk1C); } } - + for (var_r29 = 0; var_r29 < 4; var_r29++) { - PSVECSubtract(&lbl_1_data_8D8[var_r29][1], &lbl_1_data_8D8[var_r29][0], &sp14); + VECSubtract(&lbl_1_data_8D8[var_r29][1], &lbl_1_data_8D8[var_r29][0], &sp14); temp_f31 = 0.001f * frandmod(0x3E8); - PSVECScale(&sp14, &sp14, temp_f31); - PSVECAdd(&lbl_1_data_8D8[var_r29][0], &sp14, &sp8); - PSVECScale(&sp8, &sp8, 0.98f); + VECScale(&sp14, &sp14, temp_f31); + VECAdd(&lbl_1_data_8D8[var_r29][0], &sp14, &sp8); + VECScale(&sp8, &sp8, 0.98f); fn_1_D57C(&sp8, 0.03f); } if ((lbl_1_bss_E30 == 0) && (WipeStatGet() == 0)) { @@ -369,16 +368,17 @@ void fn_1_BF20(omObjData* arg0) { } } -void fn_1_C764(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; +void fn_1_C764(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; s32 var_r29; u16 temp_r0; var_r31 = particle->unk_48; - + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 != 0) { - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk08.x *= 0.95f; var_r31->unk08.z *= 0.95f; var_r31->unk08.y += -0.27222225f; @@ -395,20 +395,21 @@ void fn_1_C764(ModelData* model, ParticleData* particle, Mtx matrix) { DCStoreRange(particle->unk_48, particle->unk_30 * 0x44); } -void fn_1_C8E8(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; +void fn_1_C8E8(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; s32 var_r29; u16 temp_r0; var_r31 = particle->unk_48; - + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 != 0) { - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk08.x *= 0.92f; var_r31->unk08.z *= 0.92f; var_r31->unk2C += 5.0f; - var_r31->unk40.a *= 0.99f; + var_r31->unk40.a *= 0.99f; if (var_r31->unk00_s16 < 24.0f) { var_r31->unk40.a = 0.9f * var_r31->unk40.a; } @@ -422,20 +423,21 @@ void fn_1_C8E8(ModelData* model, ParticleData* particle, Mtx matrix) { DCStoreRange(particle->unk_48, particle->unk_30 * 0x44); } -void fn_1_CAB0(f32 arg8) { +void fn_1_CAB0(f32 arg8) +{ Vec sp8; f32 temp_f31; f32 temp_f30; f32 temp_f28; f32 temp_f27; - HsfanimStruct01* var_r31; + HsfanimStruct01 *var_r31; s32 var_r30; u32 var_r29; temp_f28 = 20.0f; temp_f27 = 7.0f; var_r29 = 0x19; - + for (var_r30 = 0; var_r30 < 0x96; var_r30++) { var_r31 = lbl_1_bss_E34[var_r30]; if (var_r31->unk00_s16 == 0) { @@ -445,12 +447,12 @@ void fn_1_CAB0(f32 arg8) { sp8.x = sind(temp_f31); sp8.y = 0.0f; sp8.z = cosd(temp_f31); - + temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27; var_r31->unk34.x = 7.5 * sind(temp_f31) * 100.0; var_r31->unk34.y = 0.2f * frandmod(0x3E8); var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0; - + temp_f30 = 1.6666667f * (4.0f + (0.014f * frandmod(0x3E8))); var_r31->unk08.x = sp8.x * temp_f30; var_r31->unk08.z = sp8.z * temp_f30; @@ -462,10 +464,11 @@ void fn_1_CAB0(f32 arg8) { var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = 0xFF; var_r29--; - if (var_r29 < 1) break; + if (var_r29 < 1) + break; } } - var_r31 = ((ParticleData*)(Hu3DData[lbl_1_bss_108C[0]->model[6]].unk_120))->unk_48; + var_r31 = ((ParticleData *)(Hu3DData[lbl_1_bss_108C[0]->model[6]].unk_120))->unk_48; var_r29 = 0xF; for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r31++) { if (var_r31->unk00_s16 == 0) { @@ -475,12 +478,12 @@ void fn_1_CAB0(f32 arg8) { sp8.x = sind(temp_f31); sp8.y = 0.0f; sp8.z = cosd(temp_f31); - + temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27; var_r31->unk34.x = 7.5 * sind(temp_f31) * 100.0; var_r31->unk34.y = 0.2f * frandmod(0x3E8); var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0; - + temp_f30 = 1.6666667f * -(0.01f * frandmod(0x3E8)); var_r31->unk08.x = sp8.x * temp_f30; var_r31->unk08.z = sp8.z * temp_f30; @@ -495,13 +498,15 @@ void fn_1_CAB0(f32 arg8) { var_r31->unk40.b = (60.0f * temp_f31) + 54.0f; var_r29--; - if (var_r29 < 1) break; + if (var_r29 < 1) + break; } } } -void fn_1_D3FC(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; +void fn_1_D3FC(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; s32 var_r29; u16 temp_r0; @@ -509,7 +514,7 @@ void fn_1_D3FC(ModelData* model, ParticleData* particle, Mtx matrix) { var_r31 = particle->unk_48; for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 != 0) { - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk08.y += -0.27222225f; if (var_r31->unk00_s16 < 12.0f) { var_r31->unk40.a = (0.8f * var_r31->unk40.a); @@ -525,17 +530,18 @@ void fn_1_D3FC(ModelData* model, ParticleData* particle, Mtx matrix) { DCStoreRange(particle->unk_48, particle->unk_30 * 0x44); } -void fn_1_D57C(Vec* arg0, f32 arg1) { +void fn_1_D57C(Vec *arg0, f32 arg1) +{ Vec sp8; f32 temp_f31; f32 temp_f29; - HsfanimStruct01* var_r31; + HsfanimStruct01 *var_r31; s32 var_r30; u32 var_r29; - var_r31 = ((ParticleData*)(Hu3DData[lbl_1_bss_108C[0]->model[7]].unk_120))->unk_48; + var_r31 = ((ParticleData *)(Hu3DData[lbl_1_bss_108C[0]->model[7]].unk_120))->unk_48; var_r29 = (u32)(3.0f + (15.0f * arg1)); - + for (var_r30 = 0; var_r30 < 0x1F4; var_r30++, var_r31++) { if (var_r31->unk00_s16 == 0) { var_r31->unk00_s16 = 60.0f * (0.3f + (0.0003f * frandmod(0x3E8))); @@ -557,28 +563,30 @@ void fn_1_D57C(Vec* arg0, f32 arg1) { var_r31->unk40.a = (frandmod(0x46) + 0x64); temp_f31 = 0.001f * frandmod(0x3E8); - var_r31->unk40.r = 177.0f + (78.0f * temp_f31); - var_r31->unk40.g = 60.0f + (129.0f * temp_f31); - var_r31->unk40.b = 30.0f + (122.0f * temp_f31); + var_r31->unk40.r = 177.0f + (78.0f * temp_f31); + var_r31->unk40.g = 60.0f + (129.0f * temp_f31); + var_r31->unk40.b = 30.0f + (122.0f * temp_f31); var_r29--; - if (var_r29 < 1) break; + if (var_r29 < 1) + break; } } } -s32 fn_1_DA64(f32 arg8) { - M438MapStruct3* var_r28; +s32 fn_1_DA64(f32 arg8) +{ + M438MapStruct3 *var_r28; s32 var_r29; s32 var_r30; - M438MapStruct2* var_r31; + M438MapStruct2 *var_r31; float var_f31; float var_f29; var_r28 = lbl_1_bss_108C[0]->data; var_r29 = 0; var_r31 = &var_r28->unk4; - + for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { var_f31 = fn_1_E5A4(var_r31->unk8, arg8); if ((fabs(var_f31) < 12.0) && (var_r31->unk0 != 0)) { @@ -608,17 +616,18 @@ s32 fn_1_DA64(f32 arg8) { return var_r29; } -s32 fn_1_DEA0(f32 arg8) { - M438MapStruct3* var_r28; +s32 fn_1_DEA0(f32 arg8) +{ + M438MapStruct3 *var_r28; s32 var_r29; s32 var_r30; - M438MapStruct2* var_r31; + M438MapStruct2 *var_r31; f32 var_f31; var_r28 = lbl_1_bss_108C[0]->data; var_r29 = 0; var_r31 = &var_r28->unk4; - + for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { var_f31 = fn_1_E5A4(var_r31->unk8, arg8); if ((fabs(var_f31) < 8.0) && (var_r31->unk0 != 0)) { @@ -629,7 +638,8 @@ s32 fn_1_DEA0(f32 arg8) { return var_r29; } -f32 fn_1_DF70(f32 arg8, f32 arg9) { +f32 fn_1_DF70(f32 arg8, f32 arg9) +{ f32 temp_f30; f32 var_f31; @@ -637,13 +647,15 @@ f32 fn_1_DF70(f32 arg8, f32 arg9) { var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI); if (var_f31 < 0.0f) { var_f31 += temp_f30; - } else if (var_f31 >= temp_f30) { + } + else if (var_f31 >= temp_f30) { var_f31 -= temp_f30; } return var_f31; } -void fn_1_E034(Mtx arg0, Vec* arg1) { +void fn_1_E034(Mtx arg0, Vec *arg1) +{ f32 var_f26; f32 temp_f25; @@ -659,7 +671,8 @@ void fn_1_E034(Mtx arg0, Vec* arg1) { arg1->y = fn_1_DF70(var_f26, temp_f25); } -f32 fn_1_E488(f32 arg8, f32 arg9, f32 argA) { +f32 fn_1_E488(f32 arg8, f32 arg9, f32 argA) +{ f32 var_f31; var_f31 = fmodf((arg9 - arg8), 360.0); @@ -676,7 +689,8 @@ f32 fn_1_E488(f32 arg8, f32 arg9, f32 argA) { return var_f31; } -f32 fn_1_E5A4(f32 arg8, f32 arg9) { +f32 fn_1_E5A4(f32 arg8, f32 arg9) +{ f32 var_f31; var_f31 = fmodf((arg9 - arg8), 360.0); diff --git a/src/REL/m440Dll/main.c b/src/REL/m440Dll/main.c index d7653b96..db82808e 100644 --- a/src/REL/m440Dll/main.c +++ b/src/REL/m440Dll/main.c @@ -1276,7 +1276,7 @@ void fn_1_57B4(unkStruct6 *arg0) var_r31->unkB8.z *= 0.5f; } } - PSMTXScale(sp14, var_r31->unk88.x, var_r31->unk88.y, var_r31->unk88.z); + MTXScale(sp14, var_r31->unk88.x, var_r31->unk88.y, var_r31->unk88.z); mtxTransCat(sp14, -var_r31->unk7C.x, -var_r31->unk7C.y, -var_r31->unk7C.z); mtxRotCat(sp14, var_r31->unkA0.x, var_r31->unkA0.y, var_r31->unkA0.z); mtxTransCat(sp14, var_r31->unk94.x + var_r31->unk7C.x, var_r31->unk94.y + var_r31->unk7C.y, var_r31->unk94.z + var_r31->unk7C.z); @@ -1288,14 +1288,14 @@ void fn_1_57B4(unkStruct6 *arg0) else { var_r29 = var_r31->unk18[var_r28]; } - PSMTXMultVec(sp14, &temp_r26[var_r29], &sp8); + MTXMultVec(sp14, &temp_r26[var_r29], &sp8); arg0->unkC[var_r29].x = sp8.x; arg0->unkC[var_r29].y = sp8.y; arg0->unkC[var_r29].z = sp8.z; } if ((arg0->unk2 & 2) != 0) { var_r29 = var_r31->unk1E; - PSMTXMultVec(sp14, &temp_r26[var_r29], &sp8); + MTXMultVec(sp14, &temp_r26[var_r29], &sp8); arg0->unkC[var_r29].x = sp8.x; arg0->unkC[var_r29].y = sp8.y; arg0->unkC[var_r29].z = sp8.z; @@ -1359,7 +1359,7 @@ void fn_1_5C2C(s16 arg0, HsfObject *arg1, unkStruct6 *arg2, u16 arg3) var_r22 = NULL; } var_r25 = &arg1->data.base; - PSMTXScale(sp68, var_r25->scale.x, var_r25->scale.y, var_r25->scale.z); + MTXScale(sp68, var_r25->scale.x, var_r25->scale.y, var_r25->scale.z); mtxRotCat(sp68, var_r25->rot.x, var_r25->rot.y, var_r25->rot.z); mtxTransCat(sp68, var_r25->pos.x, var_r25->pos.y, var_r25->pos.z); @@ -1375,7 +1375,7 @@ void fn_1_5C2C(s16 arg0, HsfObject *arg1, unkStruct6 *arg2, u16 arg3) var_r27 = arg2->unk24[var_r30].unk18[var_r28]; var_r23 = arg2->unk24[var_r30].unk0[var_r28].unk0; } - PSMTXMultVec(sp68, &((Vec *)(arg1->data.vertex->data))[var_r23], &sp38); + MTXMultVec(sp68, &((Vec *)(arg1->data.vertex->data))[var_r23], &sp38); arg2->unkC[var_r27] = sp38; sp44[var_r28] = arg2->unkC[var_r27]; arg2->unk14[var_r27] = arg2->unk18[var_r23]; @@ -1860,7 +1860,7 @@ void fn_1_806C(ModelData *arg0, Mtx arg1) temp_r27(temp_r31); } GXLoadPosMtxImm(arg1, 0); - PSMTXInvXpose(arg1, sp14); + MTXInvXpose(arg1, sp14); GXLoadNrmMtxImm(sp14, 0); fn_1_8AC4(arg1); sp10.r = (temp_r31->unk28->unkB[0] * arg0->unk_58.x); @@ -1974,7 +1974,7 @@ void fn_1_8470(unkStruct12 *arg0, unkStruct13 *arg1) if (var_f31 < 0.1) { var_f31 = 0.1f; } - PSMTXCopy(lbl_1_bss_30, sp10); + MTXCopy(lbl_1_bss_30, sp10); mtxScaleCat(sp10, var_f31, var_f31, var_f31); GXLoadTexMtxImm(sp10, 0x24, GX_MTX2x4); var_r31++; @@ -2050,31 +2050,31 @@ void fn_1_8AC4(Mtx arg0) var_r29 = &Hu3DGlobalLight[0]; sp34 = var_r29->unk_28; if ((var_r29->unk_00 & 0x8000) != 0) { - PSMTXMultVecSR(Hu3DCameraMtx, &sp34, &sp34); + MTXMultVecSR(Hu3DCameraMtx, &sp34, &sp34); } var_f30 = VECDotProduct(&sp34, &sp10); var_f30 *= 10000.0f; OSf32tos16(&var_f30, &temp_r31); if (temp_r31 == -0x2710) { - PSMTXScale(lbl_1_bss_30, 0.0f, 0.0f, 0.0f); + MTXScale(lbl_1_bss_30, 0.0f, 0.0f, 0.0f); return; } C_VECHalfAngle(&sp34, &sp10, &sp28); sp28.x = -sp28.x; sp28.y = -sp28.y; sp28.z = -sp28.z; - PSMTXInvXpose(arg0, sp70); + MTXInvXpose(arg0, sp70); if (temp_r31 == 0x2710) { - PSMTXIdentity(sp40); + MTXIdentity(sp40); } else { VECCrossProduct(&sp28, &sp10, &sp1C); var_f29 = acosf(VECDotProduct(&sp10, &sp28)); - PSMTXRotAxisRad(sp40, &sp1C, var_f29); + MTXRotAxisRad(sp40, &sp1C, var_f29); } - PSMTXConcat(sp40, sp70, spA0); - PSMTXTrans(sp40, 0.5f, 0.5f, 0.0f); - PSMTXConcat(sp40, spA0, lbl_1_bss_30); + MTXConcat(sp40, sp70, spA0); + MTXTrans(sp40, 0.5f, 0.5f, 0.0f); + MTXConcat(sp40, spA0, lbl_1_bss_30); } void fn_1_8D1C(void) @@ -2097,7 +2097,7 @@ void fn_1_8D1C(void) if (var_r30 == 5) { C_MTXOrtho(sp60, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 10.0f); GXSetProjection(sp60, GX_ORTHOGRAPHIC); - PSMTXIdentity(sp30); + MTXIdentity(sp30); GXLoadPosMtxImm(sp30, 0); GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); @@ -2491,9 +2491,9 @@ void fn_1_9C04(ModelData *arg0, Mtx arg1) } else { fn_1_A328(&temp_r30->unk2C, &sp38, &var_r29->unk48, 4); - PSMTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk44); - PSMTXConcat(sp128, spC8, sp98); - PSMTXMultVecArray(sp98, &sp38, &sp8, 4); + MTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk44); + MTXConcat(sp128, spC8, sp98); + MTXMultVecArray(sp98, &sp38, &sp8, 4); VECAdd(&sp8, &var_r29->unk54, var_r31++); VECAdd(&sp14, &var_r29->unk54, var_r31++); VECAdd(&sp20, &var_r29->unk54, var_r31++); diff --git a/src/REL/m440Dll/object.c b/src/REL/m440Dll/object.c index 00d59251..5eb6cb5c 100644 --- a/src/REL/m440Dll/object.c +++ b/src/REL/m440Dll/object.c @@ -10,12 +10,10 @@ #include "string.h" #include "version.h" - #ifdef __MWERKS__ #include "game/audio.h" #endif - // bss omObjData *lbl_1_bss_C0[4]; s16 lbl_1_bss_B8[4]; @@ -1025,7 +1023,7 @@ u8 fn_1_E8AC(omObjData *arg0, unkObjStruct *arg1) arg1->unk24.z = (1050.0 * sind(var_f31)); } arg1->unk30.y = 0.0f; - PSMTXRotRad(temp_r29->unk_F0, 0x59, 0.017453292f * arg1->unk68); + MTXRotRad(temp_r29->unk_F0, 0x59, 0.017453292f * arg1->unk68); arg1->unk60++; if (lbl_1_data_1D8 == 0) { fn_1_18E0(); @@ -1044,7 +1042,7 @@ u8 fn_1_E8AC(omObjData *arg0, unkObjStruct *arg1) arg1->unk18.y = fn_1_93D0(lbl_1_bss_78.y, 1400.0f + lbl_1_bss_78.y, 0.0f, var_f31); arg1->unk18.z = lbl_1_bss_78.z + (var_f31 * (arg1->unk24.z - lbl_1_bss_78.x)); arg1->unk30.x = 180.0f * var_f31; - PSMTXRotRad(temp_r29->unk_F0, 0x59, 0.017453292f * arg1->unk68); + MTXRotRad(temp_r29->unk_F0, 0x59, 0.017453292f * arg1->unk68); break; case 3: fn_1_F4D4(arg1, 15, 8); diff --git a/src/REL/m441Dll/main.c b/src/REL/m441Dll/main.c index e6143406..bc0d7e77 100644 --- a/src/REL/m441Dll/main.c +++ b/src/REL/m441Dll/main.c @@ -403,9 +403,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) var_r30 = &Hu3DData[arg0]; Hu3DModelObjMtxGet(arg0, arg1, spC); - PSMTXConcat(var_r30->unk_F0, spC, spC); + MTXConcat(var_r30->unk_F0, spC, spC); if (NULL != arg3) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); } arg2->x = spC[0][3]; arg2->y = spC[1][3]; diff --git a/src/REL/m442Dll/main.c b/src/REL/m442Dll/main.c index 28beaccd..53dd649a 100644 --- a/src/REL/m442Dll/main.c +++ b/src/REL/m442Dll/main.c @@ -1489,7 +1489,7 @@ void fn_1_485C(ModelData *model, Mtx mtx) var_r29 = Hu3DCamera; C_MTXOrtho(sp100, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 100.0f); GXSetProjection(sp100, GX_ORTHOGRAPHIC); - PSMTXIdentity(spD0); + MTXIdentity(spD0); GXLoadPosMtxImm(spD0, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -1529,7 +1529,7 @@ void fn_1_485C(ModelData *model, Mtx mtx) GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); C_MTXPerspective(sp40, var_r29->fov, var_r29->aspect, var_r29->near, var_r29->far); GXSetProjection(sp40, GX_PERSPECTIVE); - PSMTXInverse(mtx, spA0); + MTXInverse(mtx, spA0); spA0[0][3] = spA0[1][3] = spA0[2][3] = 0.0f; PSMTXReorder(spA0, sp70); PSMTXROMultVecArray(sp70, &lbl_1_data_1C0[0], &sp10, 4); @@ -1585,7 +1585,7 @@ void fn_1_54C8(ModelData *model, Mtx mtx) fn_1_8520(&lbl_1_bss_C05C[1], 0); C_MTXOrtho(sp5C, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 100.0f); GXSetProjection(sp5C, GX_ORTHOGRAPHIC); - PSMTXIdentity(sp2C); + MTXIdentity(sp2C); GXLoadPosMtxImm(sp2C, 0); GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE); GXSetNumTexGens(2); @@ -1734,9 +1734,9 @@ void fn_1_5EDC(ModelData *model, float (*mtx)[4]) s32 var_r30; var_r31 = model->unk_120; - PSMTXInverse(mtx, spC); + MTXInverse(mtx, spC); spC[0][3] = spC[1][3] = spC[2][3] = 0.0f; - PSMTXConcat(mtx, &spC[0], mtx); + MTXConcat(mtx, &spC[0], mtx); GXLoadPosMtxImm(mtx, 0); GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); GXSetNumTexGens(1); diff --git a/src/REL/m443Dll/main.c b/src/REL/m443Dll/main.c index 5b22d7c6..acf8f914 100644 --- a/src/REL/m443Dll/main.c +++ b/src/REL/m443Dll/main.c @@ -495,15 +495,15 @@ void fn_1_1D8C(omObjData *object) lbl_1_bss_4 = HuAudSStreamPlay(0xB); } var_f31 = (float)object->work[0] / lbl_1_data_F0[object->work[1]]; - PSVECSubtract(&lbl_1_data_60[object->work[1] + 1], &lbl_1_data_60[object->work[1]], &sp8); - PSVECScale(&sp8, &sp8, var_f31); - PSVECAdd(&lbl_1_data_60[object->work[1]], &sp8, &sp8); + VECSubtract(&lbl_1_data_60[object->work[1] + 1], &lbl_1_data_60[object->work[1]], &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&lbl_1_data_60[object->work[1]], &sp8, &sp8); Center.x = sp8.x; Center.y = sp8.y; Center.z = sp8.z; - PSVECSubtract(&lbl_1_data_A8[object->work[1] + 1], &lbl_1_data_A8[object->work[1]], &sp8); - PSVECScale(&sp8, &sp8, var_f31); - PSVECAdd(&lbl_1_data_A8[object->work[1]], &sp8, &sp8); + VECSubtract(&lbl_1_data_A8[object->work[1] + 1], &lbl_1_data_A8[object->work[1]], &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&lbl_1_data_A8[object->work[1]], &sp8, &sp8); CRot.x = sp8.x; CRot.y = sp8.y; CRot.z = 0.0f; @@ -922,7 +922,7 @@ void fn_1_3D78(ModelData *arg0, Mtx arg1) { Mtx spC; - PSMTXIdentity(spC); + MTXIdentity(spC); GXLoadPosMtxImm(spC, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -1094,13 +1094,13 @@ void fn_1_4444(Vec *arg0, Vec *arg1) Vec sp10; float var_f30; - PSVECSubtract(arg1, arg0, &sp10); + VECSubtract(arg1, arg0, &sp10); Center = *arg1; var_f30 = (sp10.x * sp10.x) + (sp10.z * sp10.z); CRot.x = atan2d(sp10.y, sqrtf(var_f30)); CRot.y = atan2d(-sp10.x, -sp10.z); CRot.z = 0.0f; - CZoom = PSVECMag(&sp10); + CZoom = VECMag(&sp10); } void fn_1_464C(float arg8, float arg9, float argA, float argB, float argC, float argD) @@ -1116,13 +1116,13 @@ void fn_1_464C(float arg8, float arg9, float argA, float argB, float argC, float sp30.x = argB; sp30.y = argC; sp30.z = argD; - PSVECSubtract(&sp30, &sp3C, &sp24); + VECSubtract(&sp30, &sp3C, &sp24); Center = sp30; var_f30 = (sp24.x * sp24.x) + (sp24.z * sp24.z); CRot.x = atan2d(sp24.y, sqrtf(var_f30)); CRot.y = atan2d(-sp24.x, -sp24.z); CRot.z = 0.0f; - CZoom = PSVECMag(&sp24); + CZoom = VECMag(&sp24); } float fn_1_488C(float arg8, float arg9, float argA) diff --git a/src/REL/m443Dll/map.c b/src/REL/m443Dll/map.c index 48aef505..d79414dc 100644 --- a/src/REL/m443Dll/map.c +++ b/src/REL/m443Dll/map.c @@ -132,11 +132,11 @@ void fn_1_4D14(omObjData *object) var_r30 = fn_1_40AC(lbl_1_data_240[var_r29 + 1]); mtxRot(sp5C, var_r30->unk_28.x, var_r30->unk_28.y, 0.0f); sp8.z = var_r30->unk_34; - PSMTXMultVec(sp5C, &sp8, &sp14); - PSVECAdd(&var_r30->unk_1C, &sp14, &sp20); + MTXMultVec(sp5C, &sp8, &sp14); + VECAdd(&var_r30->unk_1C, &sp14, &sp20); sp2C[var_r29].y += var_f31; - PSMTXMultVec(sp5C, &sp2C[var_r29], &sp14); - PSVECAdd(&sp20, &sp14, &sp20); + MTXMultVec(sp5C, &sp2C[var_r29], &sp14); + VECAdd(&sp20, &sp14, &sp20); Hu3DModelPosSetV(object->model[var_r29 + 9], &sp20); Hu3DModelRotSet(object->model[var_r29 + 9], var_r30->unk_28.x, var_r30->unk_28.y, 0.0f); Hu3DModelScaleSet(object->model[var_r29 + 9], 0.15f, 0.15f, 0.15f); diff --git a/src/REL/m443Dll/player.c b/src/REL/m443Dll/player.c index ee7e5237..fb293d09 100644 --- a/src/REL/m443Dll/player.c +++ b/src/REL/m443Dll/player.c @@ -382,7 +382,7 @@ void fn_1_5BD4(omObjData *object) break; } fn_1_7340(object); - PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); + VECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); fn_1_7130(object); fn_1_69B4(object); @@ -428,11 +428,11 @@ void fn_1_6458(omObjData *object) var_r29 = 1; } fn_1_7340(object); - PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); + VECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); fn_1_7130(object); fn_1_69B4(object); temp_r31->unk100->unk_1C = temp_r31->unkDC; - PSVECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C); + VECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C); if ((fn_1_42E4() == 3) && (var_r29 != 0)) { fn_1_43AC(object->work[0]); temp_r31->unk108 = 0; @@ -451,11 +451,11 @@ void fn_1_6674(omObjData *object) temp_r31->unk14 = 0; temp_r31->unk18 = 0.0f; fn_1_7340(object); - PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); + VECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); fn_1_7130(object); fn_1_69B4(object); temp_r31->unk100->unk_1C = temp_r31->unkDC; - PSVECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C); + VECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C); if (fn_1_42E4() == 5) { temp_r31->unk1C = 0; temp_r31->unk34 = 0; @@ -468,7 +468,7 @@ void fn_1_6750(omObjData *object) M443DllWorkStruct *temp_r31; temp_r31 = object->data; - PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); + VECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4); fn_1_7130(object); fn_1_69B4(object); switch (temp_r31->unk34) { @@ -673,9 +673,9 @@ void fn_1_7130(omObjData *object) for (var_r28 = 0; var_r28 < 4; var_r28++) { if (var_r29 != var_r28) { temp_r30 = lbl_1_bss_90[var_r28]->data; - PSVECSubtract(&temp_r31->unkC4, &temp_r30->unkC4, &sp8); + VECSubtract(&temp_r31->unkC4, &temp_r30->unkC4, &sp8); sp8.y = 0.0f; - var_f31 = PSVECMag(&sp8); + var_f31 = VECMag(&sp8); if (var_f31 < (temp_r31->unkC0 + temp_r30->unkC0)) { if (var_f31 > 0.0f) { var_f31 = 0.5f * ((temp_r31->unkC0 + temp_r30->unkC0) - var_f31); @@ -685,10 +685,10 @@ void fn_1_7130(omObjData *object) sp8.x = (frandmod(0x3E8) - 0x1F4); sp8.z = (frandmod(0x3E8) - 0x1F4); } - PSVECNormalize(&sp8, &sp8); - PSVECScale(&sp8, &sp8, var_f31); - PSVECAdd(&temp_r31->unkC4, &sp8, &temp_r31->unkC4); - PSVECSubtract(&temp_r30->unkC4, &sp8, &temp_r30->unkC4); + VECNormalize(&sp8, &sp8); + VECScale(&sp8, &sp8, var_f31); + VECAdd(&temp_r31->unkC4, &sp8, &temp_r31->unkC4); + VECSubtract(&temp_r30->unkC4, &sp8, &temp_r30->unkC4); } } } @@ -1139,7 +1139,7 @@ void fn_1_8E34(s32 arg0) for (var_r29 = 0; var_r29 < temp_r30->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 != 0) { - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk08.z -= 0.3f; var_r31->unk2C += 2.0f; var_r31->unk40.a *= 0.98f; diff --git a/src/REL/m447dll/block.c b/src/REL/m447dll/block.c index fcd1280b..939c795b 100755 --- a/src/REL/m447dll/block.c +++ b/src/REL/m447dll/block.c @@ -161,13 +161,13 @@ void fn_1_9374(UnkM447Struct_01 *arg0) Mtx sp8; temp_r30 = &Hu3DData[arg0->unk58[arg0->unk00]]; - PSMTXIdentity(temp_r30->unk_F0); - PSMTXRotRad(sp8, 'x', MTXDegToRad(arg0->unk1C.x)); - PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); - PSMTXRotRad(sp8, 'y', MTXDegToRad(arg0->unk1C.y)); - PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); - PSMTXRotRad(sp8, 'z', MTXDegToRad(arg0->unk1C.z)); - PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); + MTXIdentity(temp_r30->unk_F0); + MTXRotRad(sp8, 'x', MTXDegToRad(arg0->unk1C.x)); + MTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); + MTXRotRad(sp8, 'y', MTXDegToRad(arg0->unk1C.y)); + MTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); + MTXRotRad(sp8, 'z', MTXDegToRad(arg0->unk1C.z)); + MTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); Hu3DModelPosSet(arg0->unk58[arg0->unk00], arg0->unk10.x, arg0->unk10.y, arg0->unk10.z); Hu3DModelPosSet(arg0->unk58[20], arg0->unk10.x, arg0->unk10.y - 100.0f, arg0->unk10.z); Hu3DModelPosSet(arg0->unk58[21], arg0->unk10.x, arg0->unk10.y, arg0->unk10.z + 120.0f * arg0->unk54); diff --git a/src/REL/m448Dll/main.c b/src/REL/m448Dll/main.c index 1ee1eb09..0fccc340 100755 --- a/src/REL/m448Dll/main.c +++ b/src/REL/m448Dll/main.c @@ -201,7 +201,7 @@ void fn_1_4FC(ModelData *model, Mtx matrix) GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); C_MTXOrtho(sp98, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f); GXSetProjection(sp98, GX_ORTHOGRAPHIC); - PSMTXIdentity(spC8); + MTXIdentity(spC8); GXLoadPosMtxImm(spC8, GX_PNMTX0); GXSetNumTevStages(1); GXSetNumTexGens(1); @@ -454,8 +454,8 @@ void fn_1_1338(omObjData *arg0) sp178 = lbl_1_rodata_100; sp178.x = var_f20; sp178.z = -sp118; - PSMTXRotRad(sp184, 'y', MTXDegToRad(CRot.y)); - PSMTXMultVec(sp184, &sp178, &sp178); + MTXRotRad(sp184, 'y', MTXDegToRad(CRot.y)); + MTXMultVec(sp184, &sp178, &sp178); var_f20 = sp178.x; sp118 = -sp178.z; } diff --git a/src/REL/m449Dll/main.c b/src/REL/m449Dll/main.c index be72261b..be902879 100644 --- a/src/REL/m449Dll/main.c +++ b/src/REL/m449Dll/main.c @@ -1288,19 +1288,19 @@ void fn_1_758(omObjData *var_r29) sp124 = ((-90.175 <= lbl_1_bss_18) && (lbl_1_bss_18 <= -90.0f)) != 0 ? -90.175 : ((-90.0f <= lbl_1_bss_18) && (lbl_1_bss_18 <= -89.825) ? -89.825 : lbl_1_bss_18); - PSMTXRotRad(sp304, 0x78, 0.017453292f * (10.0f * var_r31->unk_5C)); - PSMTXRotRad(sp364, 0x7A, 0.017453292f * (10.0f * -var_r31->unk_58)); - PSMTXConcat(sp364, sp304, sp364); - PSMTXRotRad(sp304, 0x79, 0.017453292f * sp124); - PSMTXRotRad(sp334, 0x78, 0.017453292f * (15.0f * var_r31->unk_5C)); - PSMTXConcat(sp334, sp304, sp334); - PSMTXRotRad(sp304, 0x7A, 0.017453292f * (15.0f * -var_r31->unk_58)); - PSMTXConcat(sp304, sp334, sp334); + MTXRotRad(sp304, 0x78, 0.017453292f * (10.0f * var_r31->unk_5C)); + MTXRotRad(sp364, 0x7A, 0.017453292f * (10.0f * -var_r31->unk_58)); + MTXConcat(sp364, sp304, sp364); + MTXRotRad(sp304, 0x79, 0.017453292f * sp124); + MTXRotRad(sp334, 0x78, 0.017453292f * (15.0f * var_r31->unk_5C)); + MTXConcat(sp334, sp304, sp334); + MTXRotRad(sp304, 0x7A, 0.017453292f * (15.0f * -var_r31->unk_58)); + MTXConcat(sp304, sp334, sp334); Hu3DMtxRotGet(sp334, &sp2A8); sp2B4.x = var_r31->unk_60[var_r30]; sp2B4.y = var_r31->unk_70[var_r30]; sp2B4.z = var_r31->unk_80[var_r30]; - PSMTXMultVec(sp364, &sp2B4, &sp2B4); + MTXMultVec(sp364, &sp2B4, &sp2B4); Hu3DModelPosSet(var_r29->model[var_r30 + 0xC], sp2D8.x + sp2B4.x, sp2D8.y + sp2B4.y, sp2D8.z + sp2B4.z); Hu3DModelRotSet(var_r29->model[var_r30 + 0xC], 10.0f * var_r31->unk_5C, 0.0f, 10.0f * -var_r31->unk_58); Hu3DModelRotSet(var_r29->model[var_r30 + 0xC], sp2A8.x, sp2A8.y, sp2A8.z); @@ -1716,7 +1716,7 @@ void fn_1_7F94(ModelData *model, ParticleData *particle, Mtx matrix) var_r31->unk2C = 50.0f; } if (var_r31->unk00_s16 < 0xF0) { - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); var_r31->unk08.x *= 0.9f; var_r31->unk08.z *= 0.9f; var_r31->unk08.y *= 0.9f; diff --git a/src/REL/m453Dll/main.c b/src/REL/m453Dll/main.c index 2c099d2d..9db313c7 100644 --- a/src/REL/m453Dll/main.c +++ b/src/REL/m453Dll/main.c @@ -941,8 +941,8 @@ void fn_1_23E0(omObjData *object) case 4: var_r24 = fn_1_82AC(sp38); for (var_r30 = 0; var_r30 < var_r24; var_r30++) { - PSVECSubtract(&sp38[var_r30], &var_r31->unk_2C, &sp8); - sp20[var_r30] = PSVECMag(&sp8); + VECSubtract(&sp38[var_r30], &var_r31->unk_2C, &sp8); + sp20[var_r30] = VECMag(&sp8); } for (var_r30 = 0; var_r30 < (var_r24 - 1); var_r30++) { for (var_r29 = var_r30 + 1; var_r29 < var_r24; var_r29++) { @@ -1144,14 +1144,14 @@ s32 fn_1_36DC(void) for (var_r29 = var_r30 + 1; var_r29 < 4; var_r29++) { var_r27 = lbl_1_bss_3C[var_r29]->data; if (var_r27->unk_07 != 0) { - PSVECSubtract(&var_r28->unk_2C, &var_r27->unk_2C, &sp8); - var_f31 = PSVECMag(&sp8); + VECSubtract(&var_r28->unk_2C, &var_r27->unk_2C, &sp8); + var_f31 = VECMag(&sp8); if (var_f31 < 80.0f) { - PSVECNormalize(&sp8, &sp8); + VECNormalize(&sp8, &sp8); var_f30 = 0.0001f + (0.5f * (80.0f - var_f31)); - PSVECScale(&sp8, &sp8, var_f30); - PSVECAdd(&sp14[var_r30], &sp8, &sp14[var_r30]); - PSVECSubtract(&sp14[var_r29], &sp8, &sp14[var_r29]); + VECScale(&sp8, &sp8, var_f30); + VECAdd(&sp14[var_r30], &sp8, &sp14[var_r30]); + VECSubtract(&sp14[var_r29], &sp8, &sp14[var_r29]); var_r28->unk_0E++; var_r27->unk_0E++; var_r26++; @@ -1164,7 +1164,7 @@ s32 fn_1_36DC(void) var_r25 = lbl_1_bss_3C[var_r30]; var_r31 = var_r25->data; if (var_r31->unk_07 != 0) { - PSVECAdd(&var_r31->unk_2C, &sp14[var_r30], &var_r31->unk_2C); + VECAdd(&var_r31->unk_2C, &sp14[var_r30], &var_r31->unk_2C); if (var_r31->unk_2C.x > 660.0f) { var_r31->unk_2C.x = 660.0f; } @@ -1237,8 +1237,8 @@ void fn_1_3BB4(Vec *arg0, Vec *arg1) var_r30 = fn_1_844C(sp18); var_f31 = 2000.0f; for (var_r31 = 0; var_r31 < var_r30; var_r31++) { - PSVECSubtract(&sp18[var_r31], arg0, &spC); - var_f30 = PSVECMag(&spC); + VECSubtract(&sp18[var_r31], arg0, &spC); + var_f30 = VECMag(&spC); if (!(var_f30 >= var_f31)) { var_f31 = var_f30; *arg1 = sp18[var_r31]; @@ -1403,18 +1403,18 @@ void fn_1_4574(Mtx arg0, float arg8, float arg9, float argA) Mtx sp38; Mtx sp8; if (argA != 0.0f) { - PSMTXRotRad(arg0, 0x5A, 0.017453292f * argA); + MTXRotRad(arg0, 0x5A, 0.017453292f * argA); } else { - PSMTXIdentity(arg0); + MTXIdentity(arg0); } if (arg8 != 0.0f) { - PSMTXRotRad(sp38, 0x58, 0.017453292f * arg8); - PSMTXConcat(sp38, arg0, arg0); + MTXRotRad(sp38, 0x58, 0.017453292f * arg8); + MTXConcat(sp38, arg0, arg0); } if (arg9 != 0.0f) { - PSMTXRotRad(sp8, 0x59, 0.017453292f * arg9); - PSMTXConcat(sp8, arg0, arg0); + MTXRotRad(sp8, 0x59, 0.017453292f * arg9); + MTXConcat(sp8, arg0, arg0); } } // TODO figue out type of arg0 @@ -1570,8 +1570,8 @@ void fn_1_5290(float *arg0, float (*arg1)[3], float (*arg2)[3], s32 arg3) arg0[0] = 0.0f; for (var_r30 = 1; var_r30 < arg3; var_r30++) { - PSVECSubtract((Vec *)&arg1[var_r30], (Vec *)&arg1[var_r30 - 1], &sp8); - arg0[var_r30] = arg0[var_r30 - 1] + PSVECMag(&sp8); + VECSubtract((Vec *)&arg1[var_r30], (Vec *)&arg1[var_r30 - 1], &sp8); + arg0[var_r30] = arg0[var_r30 - 1] + VECMag(&sp8); } for (var_r27 = 0; var_r27 < 3; var_r27++) { for (var_r30 = 0; var_r30 < arg3; var_r30++) { diff --git a/src/REL/m453Dll/map.c b/src/REL/m453Dll/map.c index 86a363d1..6771a755 100644 --- a/src/REL/m453Dll/map.c +++ b/src/REL/m453Dll/map.c @@ -514,12 +514,12 @@ void fn_1_6EB4(omObjData *object) Mtx sp8; s32 var_r30; - PSMTXTrans(sp38, object->trans.x, object->trans.y, object->trans.z); + MTXTrans(sp38, object->trans.x, object->trans.y, object->trans.z); mtxRot(sp8, object->rot.x, object->rot.y, object->rot.z); - PSMTXConcat(sp38, sp8, sp38); + MTXConcat(sp38, sp8, sp38); for (var_r30 = 0; var_r30 < 6; var_r30++) { - PSMTXTrans(sp8, lbl_1_data_A88[var_r30].x, lbl_1_data_A88[var_r30].y, lbl_1_data_A88[var_r30].z); - PSMTXConcat(sp38, sp8, sp8); + MTXTrans(sp8, lbl_1_data_A88[var_r30].x, lbl_1_data_A88[var_r30].y, lbl_1_data_A88[var_r30].z); + MTXConcat(sp38, sp8, sp8); Hu3DModelPosSet(object->model[var_r30 + 1], sp8[0][3], sp8[1][3], sp8[2][3]); Hu3DModelRotSet(object->model[var_r30 + 1], object->rot.x, object->rot.y, object->rot.z); } @@ -685,12 +685,12 @@ void fn_1_73C4(omObjData *object) break; } } - PSMTXTrans(sp8, object->trans.x, object->trans.y, object->trans.z); + MTXTrans(sp8, object->trans.x, object->trans.y, object->trans.z); mtxRot(sp38, object->rot.x, object->rot.y, object->rot.z); - PSMTXConcat(sp8, sp38, sp8); + MTXConcat(sp8, sp38, sp8); for (var_r28 = 0; var_r28 < 6; var_r28++) { - PSMTXTrans(sp38, lbl_1_data_A88[var_r28].x, lbl_1_data_A88[var_r28].y, lbl_1_data_A88[var_r28].z); - PSMTXConcat(sp8, sp38, sp38); + MTXTrans(sp38, lbl_1_data_A88[var_r28].x, lbl_1_data_A88[var_r28].y, lbl_1_data_A88[var_r28].z); + MTXConcat(sp8, sp38, sp38); Hu3DModelPosSet(object->model[var_r28 + 1], sp38[0][3], sp38[1][3], sp38[2][3]); Hu3DModelRotSet(object->model[var_r28 + 1], object->rot.x, object->rot.y, object->rot.z); } @@ -825,16 +825,16 @@ s32 fn_1_7CE0(float arg8, float arg9, Vec *arg0) var_r28 -= 6; fn_1_7BB0(var_r27, &sp10); sp10 = lbl_1_data_A88[var_r27]; - PSMTXTrans(sp4C, var_r31->trans.x, var_r31->trans.y, var_r31->trans.z); + MTXTrans(sp4C, var_r31->trans.x, var_r31->trans.y, var_r31->trans.z); mtxRot(sp1C, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); - PSMTXConcat(sp4C, sp1C, sp4C); - PSMTXTrans(sp1C, sp10.x, sp10.y, sp10.z); - PSMTXConcat(sp4C, sp1C, sp4C); + MTXConcat(sp4C, sp1C, sp4C); + MTXTrans(sp1C, sp10.x, sp10.y, sp10.z); + MTXConcat(sp4C, sp1C, sp4C); var_r30 = lbl_1_data_AFC[var_r28]; var_r23 = lbl_1_data_B14[var_r28]; for (var_r24 = 0; var_r24 < var_r23; var_r24++) { - PSMTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z); - PSMTXConcat(sp4C, sp1C, sp1C); + MTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z); + MTXConcat(sp4C, sp1C, sp1C); arg0->x = sp1C[0][3]; arg0->y = sp1C[1][3]; arg0->z = sp1C[2][3]; @@ -930,17 +930,17 @@ s32 fn_1_844C(Vec *arg0) var_r30 = lbl_1_bss_A4[lbl_1_bss_9C]; var_r27 = var_r30->data; var_r23 = fn_1_8250(var_r27, sp8); - PSMTXTrans(sp50, var_r30->trans.x, var_r30->trans.y, var_r30->trans.z); + MTXTrans(sp50, var_r30->trans.x, var_r30->trans.y, var_r30->trans.z); mtxRot(sp20, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); - PSMTXConcat(sp50, sp20, sp50); + MTXConcat(sp50, sp20, sp50); for (var_r29 = 0; var_r29 < var_r23; var_r29++) { fn_1_7BB0(sp8[var_r29], arg0); var_r26 = fn_1_7BFC(var_r27, sp8[var_r29]) - 6; arg0->x += lbl_1_data_B2C[var_r26].x; arg0->y += lbl_1_data_B2C[var_r26].y; arg0->z += lbl_1_data_B2C[var_r26].z; - PSMTXTrans(sp20, arg0->x, arg0->y, arg0->z); - PSMTXConcat(sp50, sp20, sp20); + MTXTrans(sp20, arg0->x, arg0->y, arg0->z); + MTXConcat(sp50, sp20, sp20); arg0->x = sp20[0][3]; arg0->y = sp20[1][3]; arg0->z = sp20[2][3]; @@ -991,7 +991,7 @@ s32 fn_1_867C(Vec *arg0, Vec *arg1) if ((var_r28->rot.x > 0.0f) || (var_r28->rot.x <= -90.0f)) { return 0; } - PSVECSubtract(arg0, &var_r28->trans, &sp3C); + VECSubtract(arg0, &var_r28->trans, &sp3C); sp3C.z = sp3C.z / cosd(var_r28->rot.x); var_f24 = arg0->z; var_f25 = arg0->x; @@ -1002,29 +1002,29 @@ s32 fn_1_867C(Vec *arg0, Vec *arg1) } var_r24 -= 6; sp48 = lbl_1_data_A88[var_r19]; - PSVECSubtract(&sp3C, &sp48, &sp3C); + VECSubtract(&sp3C, &sp48, &sp3C); var_r30 = lbl_1_data_B74[var_r24][0]; var_r29 = lbl_1_data_B74[var_r24][1]; var_r21 = lbl_1_data_BA4[var_r24]; for (var_r31 = 0; var_r31 < var_r21; var_r31++) { var_r27 = (var_r31 + 1) % var_r21; - PSVECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24); - PSVECSubtract(&sp3C, var_r30 + var_r27, &sp18); - PSVECCrossProduct(&sp24, &sp18, &spC); + VECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24); + VECSubtract(&sp3C, var_r30 + var_r27, &sp18); + VECCrossProduct(&sp24, &sp18, &spC); if (!(spC.y < 0.0f)) { - PSVECSubtract(var_r29 + var_r27, var_r30 + var_r27, &sp24); - PSVECSubtract(&sp3C, var_r29 + var_r27, &sp18); - PSVECCrossProduct(&sp24, &sp18, &spC); + VECSubtract(var_r29 + var_r27, var_r30 + var_r27, &sp24); + VECSubtract(&sp3C, var_r29 + var_r27, &sp18); + VECCrossProduct(&sp24, &sp18, &spC); if (!(spC.y < 0.0f)) { - PSVECSubtract(var_r29 + var_r31, var_r29 + var_r27, &sp24); - PSVECSubtract(&sp3C, var_r29 + var_r31, &sp18); - PSVECCrossProduct(&sp24, &sp18, &spC); + VECSubtract(var_r29 + var_r31, var_r29 + var_r27, &sp24); + VECSubtract(&sp3C, var_r29 + var_r31, &sp18); + VECCrossProduct(&sp24, &sp18, &spC); if (!(spC.y < 0.0f)) { - PSVECSubtract(var_r30 + var_r31, var_r29 + var_r31, &sp24); - PSVECSubtract(&sp3C, var_r30 + var_r31, &sp18); - PSVECCrossProduct(&sp24, &sp18, &spC); + VECSubtract(var_r30 + var_r31, var_r29 + var_r31, &sp24); + VECSubtract(&sp3C, var_r30 + var_r31, &sp18); + VECCrossProduct(&sp24, &sp18, &spC); if (!(spC.y < 0.0f)) { - PSVECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24); + VECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24); var_f30 = (((sp3C.z * sp24.z) + (((sp3C.y * sp24.y) + ((sp3C.x * sp24.x) - (sp24.x * var_r30[var_r31].x))) - (sp24.y * var_r30[var_r31].y))) - (sp24.z * var_r30[var_r31].z)) @@ -1032,9 +1032,9 @@ s32 fn_1_867C(Vec *arg0, Vec *arg1) sp30.x = var_r30[var_r31].x + (var_f30 * sp24.x); sp30.y = var_r30[var_r31].y + (var_f30 * sp24.y); sp30.z = var_r30[var_r31].z + (var_f30 * sp24.z); - PSVECSubtract(&sp30, &sp3C, &spC); - var_f28 = PSVECMag(&spC); - PSVECSubtract(var_r29 + var_r27, var_r29 + var_r31, &sp18); + VECSubtract(&sp30, &sp3C, &spC); + var_f28 = VECMag(&spC); + VECSubtract(var_r29 + var_r27, var_r29 + var_r31, &sp18); var_f29 = (((sp3C.z * sp18.z) + (((sp3C.y * sp18.y) + ((sp3C.x * sp18.x) - (sp18.x * var_r29[var_r31].x))) - (sp18.y * var_r29[var_r31].y))) - (sp18.z * var_r29[var_r31].z)) @@ -1042,8 +1042,8 @@ s32 fn_1_867C(Vec *arg0, Vec *arg1) sp30.x = var_r29[var_r31].x + (var_f29 * sp18.x); sp30.y = var_r29[var_r31].y + (var_f29 * sp18.y); sp30.z = var_r29[var_r31].z + (var_f29 * sp18.z); - PSVECSubtract(&sp30, &sp3C, &spC); - var_f27 = PSVECMag(&spC); + VECSubtract(&sp30, &sp3C, &spC); + var_f27 = VECMag(&spC); if (var_f28 == 0.0f) { var_f31 = var_f30; } diff --git a/src/REL/m455Dll/main.c b/src/REL/m455Dll/main.c index fa1c4b5b..667d1084 100644 --- a/src/REL/m455Dll/main.c +++ b/src/REL/m455Dll/main.c @@ -67,7 +67,7 @@ void ObjectSetup(void) lbl_1_bss_8.x = lbl_1_data_44.x - lbl_1_data_38.x; lbl_1_bss_8.y = lbl_1_data_44.y - lbl_1_data_38.y; lbl_1_bss_8.z = lbl_1_data_44.z - lbl_1_data_38.z; - PSVECNormalize(&lbl_1_bss_8, &lbl_1_bss_8); + VECNormalize(&lbl_1_bss_8, &lbl_1_bss_8); light = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50); Hu3DGLightInfinitytSet(light); Hu3DGLightStaticSet(light, 1); diff --git a/src/REL/m456Dll/main.c b/src/REL/m456Dll/main.c index 9c760c47..97e8ffb5 100644 --- a/src/REL/m456Dll/main.c +++ b/src/REL/m456Dll/main.c @@ -146,7 +146,7 @@ void ObjectSetup(void) lbl_1_bss_8.x = lbl_1_data_44.x - lbl_1_data_38.x; lbl_1_bss_8.y = lbl_1_data_44.y - lbl_1_data_38.y; lbl_1_bss_8.z = lbl_1_data_44.z - lbl_1_data_38.z; - PSVECNormalize(&lbl_1_bss_8, &lbl_1_bss_8); + VECNormalize(&lbl_1_bss_8, &lbl_1_bss_8); var_r29 = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50); Hu3DGLightInfinitytSet(var_r29); Hu3DGLightStaticSet(var_r29, 1); @@ -714,7 +714,7 @@ void fn_1_1304(omObjData *var_r30) var_r28 = 0x40000001; if ((fn_1_3B0() == 5) && (var_r31->unk_00_field3 == 0) && (lbl_1_bss_64 == 1)) { var_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); - PSVECSubtract(&var_r25[*lbl_1_bss_70]->trans, &var_r30->trans, &sp8); + VECSubtract(&var_r25[*lbl_1_bss_70]->trans, &var_r30->trans, &sp8); var_r30->rot.y = fn_1_2090(var_r30->rot.y, atan2d(sp8.x, sp8.z), 0.1f); } if (fn_1_3B0() == 0xB) { diff --git a/src/REL/m458Dll/main.c b/src/REL/m458Dll/main.c index f7242c46..3b261cd0 100644 --- a/src/REL/m458Dll/main.c +++ b/src/REL/m458Dll/main.c @@ -329,8 +329,8 @@ void fn_1_4C8(omObjData *object) Vec sp1B0 = { 0.0f, 0.0f, 0.0f }; sp1B0.x = var_f31; sp1B0.z = var_f30; - PSMTXRotRad(sp1E0, 0x79, 0.017453292f * CRot.y); - PSMTXMultVec(sp1E0, &sp1B0, &sp1B0); + MTXRotRad(sp1E0, 0x79, 0.017453292f * CRot.y); + MTXMultVec(sp1E0, &sp1B0, &sp1B0); var_f31 = sp1B0.x; var_f30 = sp1B0.z; } diff --git a/src/REL/m460Dll/main.c b/src/REL/m460Dll/main.c index 123f1c3e..52ca989b 100644 --- a/src/REL/m460Dll/main.c +++ b/src/REL/m460Dll/main.c @@ -153,7 +153,7 @@ void ObjectSetup(void) sp8.x = sp8.z = 0.0f; sp8.y = lbl_1_data_18.z; mtxRot(sp2C, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); - PSMTXMultVec(sp2C, &sp8, &lbl_1_data_28); + MTXMultVec(sp2C, &sp8, &lbl_1_data_28); Hu3DGLightPosAimSetV(lbl_1_bss_1A[0], &lbl_1_data_28, &lbl_1_data_40); Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40); lbl_1_bss_18 = lbl_1_bss_16 = lbl_1_bss_14 = lbl_1_bss_12 = lbl_1_bss_10 = -1; @@ -474,15 +474,15 @@ void fn_1_2564(omObjData *object) var_f31 *= -1.0f; } var_f31 = object->work[0] / var_f31; - PSVECSubtract(&lbl_1_data_4C[object->work[1] + var_r24], &lbl_1_data_4C[object->work[1]], &sp20); - PSVECScale(&sp20, &sp20, var_f31); - PSVECAdd(&lbl_1_data_4C[object->work[1]], &sp20, &sp20); + VECSubtract(&lbl_1_data_4C[object->work[1] + var_r24], &lbl_1_data_4C[object->work[1]], &sp20); + VECScale(&sp20, &sp20, var_f31); + VECAdd(&lbl_1_data_4C[object->work[1]], &sp20, &sp20); Center.x = sp20.x; Center.y = sp20.y; Center.z = sp20.z; - PSVECSubtract(&lbl_1_data_70[object->work[1] + var_r24], &lbl_1_data_70[object->work[1]], &sp20); - PSVECScale(&sp20, &sp20, var_f31); - PSVECAdd(&lbl_1_data_70[object->work[1]], &sp20, &sp20); + VECSubtract(&lbl_1_data_70[object->work[1] + var_r24], &lbl_1_data_70[object->work[1]], &sp20); + VECScale(&sp20, &sp20, var_f31); + VECAdd(&lbl_1_data_70[object->work[1]], &sp20, &sp20); CRot.x = sp20.x; CRot.y = sp20.y; CRot.z = 0.0f; @@ -683,8 +683,8 @@ void fn_1_3618(omObjData *var_r28) sp10[2] = var_r31->unk_44.unk_08 * var_r31->unk_40; sp10[3] = var_r31->unk_44.unk_0C * var_r31->unk_40; Hu3DCameraPerspectiveSet(var_r31->unk_3C, var_r31->unk_10, var_r31->unk_14, var_r31->unk_18, var_f31); - Hu3DCameraViewportSet( - var_r31->unk_3C, var_r31->unk_44.unk_00 - (0.5f * sp10[2]), var_r31->unk_44.unk_04 - (0.5f * sp10[3]), sp10[2], sp10[3], 0.0f, 1.0f); + Hu3DCameraViewportSet(var_r31->unk_3C, var_r31->unk_44.unk_00 - (0.5f * sp10[2]), var_r31->unk_44.unk_04 - (0.5f * sp10[3]), sp10[2], + sp10[3], 0.0f, 1.0f); sp10[0] = var_r31->unk_44.unk_00 - (0.5f * sp10[2]); sp10[1] = var_r31->unk_44.unk_04 - (0.5f * sp10[3]); sp8[0] = var_r31->unk_44.unk_00 + (0.5f * sp10[2]); @@ -731,7 +731,7 @@ void fn_1_3BC0(ModelData *model, Mtx mtx) DCStoreRange(&lbl_1_data_B8, 4); C_MTXPerspective(spC, 41.5f, 1.2f, 100.0f, 5500.0f); GXSetProjection(spC, GX_PERSPECTIVE); - PSMTXIdentity(sp3C); + MTXIdentity(sp3C); GXLoadPosMtxImm(sp3C, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -948,12 +948,12 @@ void fn_1_4388(Vec *sp8, Vec *var_r31) float var_f30; float var_f29; - PSVECSubtract(var_r31, sp8, &sp10); + VECSubtract(var_r31, sp8, &sp10); Center = *var_r31; CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z))); CRot.y = atan2d(-sp10.x, -sp10.z); CRot.z = 0.0f; - CZoom = PSVECMag(&sp10); + CZoom = VECMag(&sp10); } void fn_1_4590(float arg8, float arg9, float argA, float argB, float argC, float argD) @@ -968,12 +968,12 @@ void fn_1_4590(float arg8, float arg9, float argA, float argB, float argC, float sp30.x = argB; sp30.y = argC; sp30.z = argD; - PSVECSubtract(&sp30, &sp3C, &sp24); + VECSubtract(&sp30, &sp3C, &sp24); Center = sp30; CRot.x = atan2d(sp24.y, sqrtf((sp24.x * sp24.x) + (sp24.z * sp24.z))); CRot.y = atan2d(-sp24.x, -sp24.z); CRot.z = 0.0f; - CZoom = PSVECMag(&sp24); + CZoom = VECMag(&sp24); } float fn_1_47D0(float arg8, float arg9, float argA) diff --git a/src/REL/m460Dll/map.c b/src/REL/m460Dll/map.c index c2fea221..609dad13 100644 --- a/src/REL/m460Dll/map.c +++ b/src/REL/m460Dll/map.c @@ -270,9 +270,9 @@ void fn_1_6C00(omObjData *object) fn_1_7DA8(object, &sp14, 1); } } - PSVECSubtract(&var_r31->unk_48, &var_r31->unk_3C, &sp8); - PSVECScale(&sp8, &sp8, 0.4f); - PSVECAdd(&var_r31->unk_3C, &sp8, &sp14); + VECSubtract(&var_r31->unk_48, &var_r31->unk_3C, &sp8); + VECScale(&sp8, &sp8, 0.4f); + VECAdd(&var_r31->unk_3C, &sp8, &sp14); sp14.y += var_r31->unk_34; Hu3DModelPosSetV(var_r31->unk_2C, &sp14); var_r31->unk_30++; @@ -366,7 +366,7 @@ void fn_1_7790(ModelData *model, Mtx mtx) DCStoreRange(&lbl_1_data_378, 4); C_MTXPerspective(sp2C, 41.5f, 1.2f, 100.0f, 5500.0f); GXSetProjection(sp2C, GX_PERSPECTIVE); - PSMTXIdentity(sp5C); + MTXIdentity(sp5C); GXLoadPosMtxImm(sp5C, 0); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); @@ -409,7 +409,7 @@ void fn_1_7B94(s32 arg0) var_r30 = Hu3DData[arg0].unk_120; for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { if (var_r31->unk00_s16 != 0) { - PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); + VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); switch (var_r31->unk02) { case 0: var_r31->unk2C += 1.0f; @@ -464,7 +464,7 @@ void fn_1_7DA8(omObjData *object, Vec *arg1, u32 arg2) sp1C.x = 100.0f * ((0.0026f * frandmod(0x3E8)) - 1.3f); sp1C.y = 0.0f; sp1C.z = 100.0f * ((0.000100000005f * frandmod(0x3E8)) - 0.05f); - PSVECAdd(&sp1C, arg1, &var_r31->unk34); + VECAdd(&sp1C, arg1, &var_r31->unk34); var_r31->unk30 = 0.0031415902f * frandmod(0x3E8); switch (arg2) { case 0: @@ -485,7 +485,7 @@ void fn_1_7DA8(omObjData *object, Vec *arg1, u32 arg2) if (frandmod(0x3E8) < 0x1F4) { sp1C.x *= -1.0f; } - PSVECAdd(&sp1C, arg1, &var_r31->unk34); + VECAdd(&sp1C, arg1, &var_r31->unk34); var_r31->unk00 = 60.0f * (0.2f + (0.0005f * frandmod(0x3E8))); var_r31->unk08.x = 1.6666667f * ((0.000100000005f * frandmod(0x3E8)) - 0.05f); var_r31->unk08.y = -1.6666667f * (0.2f + (0.0003f * frandmod(0x3E8))); diff --git a/src/REL/m460Dll/player.c b/src/REL/m460Dll/player.c index 740af4a2..ccb4b58e 100644 --- a/src/REL/m460Dll/player.c +++ b/src/REL/m460Dll/player.c @@ -218,7 +218,7 @@ void fn_1_4F6C(omObjData *object) } break; } - PSVECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); + VECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); fn_1_57D8(object); if (fn_1_414C() == 2) { var_r31->unk_2C = 0; @@ -343,7 +343,7 @@ void fn_1_5168(omObjData *object) break; } } - PSVECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); + VECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); fn_1_57D8(object); if ((fn_1_4164() == 5) && (var_r27 != 0)) { var_r31->unk_2C = 0; @@ -390,7 +390,7 @@ void fn_1_55EC(omObjData *object) fn_1_5CE0(object, 0); break; } - PSVECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); + VECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60); fn_1_57D8(object); if (var_r31->unk_84 >= 0) { sp8 = var_r31->unk_60; @@ -426,15 +426,15 @@ s32 fn_1_58C8(omObjData *object, float arg8, float arg9) var_r31 = object->data; var_r30 = 0; - PSVECSubtract(&var_r31->unk_78, &var_r31->unk_60, &spC); + VECSubtract(&var_r31->unk_78, &var_r31->unk_60, &spC); spC.y = 0.0f; - var_f31 = PSVECMag(&spC); + var_f31 = VECMag(&spC); if (var_f31 < arg9) { var_f31 = 0.0f; var_r30 = 1; } else { - if (PSVECMag(&spC) >= 100.0f) { + if (VECMag(&spC) >= 100.0f) { var_f31 = 100.0f; } var_f31 = 0.2f + (0.008f * var_f31); @@ -636,12 +636,12 @@ void fn_1_61F4(omObjData *object) object->trans.z += 11.666667f; } else { - var_f31 = PSVECMag(&sp10); + var_f31 = VECMag(&sp10); if (var_f31 < 20.0f) { var_f31 = 0.0f; } else { - if (PSVECMag(&sp10) >= 100.0f) { + if (VECMag(&sp10) >= 100.0f) { var_f31 = 100.0f; } var_f31 = 0.2f + (0.008f * var_f31); diff --git a/src/REL/m461Dll/main.c b/src/REL/m461Dll/main.c index 2c18e8cd..0d20a7d3 100644 --- a/src/REL/m461Dll/main.c +++ b/src/REL/m461Dll/main.c @@ -403,9 +403,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3) var_r30 = &Hu3DData[arg0]; Hu3DModelObjMtxGet(arg0, arg1, spC); - PSMTXConcat(var_r30->unk_F0, spC, spC); + MTXConcat(var_r30->unk_F0, spC, spC); if (NULL != arg3) { - PSMTXCopy(spC, arg3); + MTXCopy(spC, arg3); } arg2->x = spC[0][3]; arg2->y = spC[1][3]; @@ -1186,7 +1186,8 @@ s32 lbl_1_data_128[8][5] = { s32 lbl_1_data_1C8[3] = { DATA_MAKE_NUM(DATADIR_M461, 0x02), DATA_MAKE_NUM(DATADIR_M461, 0x03), DATA_MAKE_NUM(DATADIR_M461, 0x08) }; -s32 lbl_1_data_1D4[4] = { DATA_MAKE_NUM(DATADIR_M461, 0x04), DATA_MAKE_NUM(DATADIR_M461, 0x05), DATA_MAKE_NUM(DATADIR_M461, 0x06), DATA_MAKE_NUM(DATADIR_M461, 0x07) }; +s32 lbl_1_data_1D4[4] + = { DATA_MAKE_NUM(DATADIR_M461, 0x04), DATA_MAKE_NUM(DATADIR_M461, 0x05), DATA_MAKE_NUM(DATADIR_M461, 0x06), DATA_MAKE_NUM(DATADIR_M461, 0x07) }; float lbl_1_data_1E4[3] = { 0.3f, 0.5f, 0.9f }; diff --git a/src/REL/m462Dll/main.c b/src/REL/m462Dll/main.c index 7efd0602..ff5c24f1 100755 --- a/src/REL/m462Dll/main.c +++ b/src/REL/m462Dll/main.c @@ -78,9 +78,9 @@ void fn_1_44D8(void); void fn_1_4BC4(void); void fn_1_69C0(void); void fn_1_7D40(void); -void fn_1_545C(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_594C(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_5DE4(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_545C(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_594C(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_5DE4(ModelData *model, ParticleData *particle, Mtx matrix); void fn_1_7DA0(void); s32 fn_1_1880(float arg0, float arg1, float arg2, s32 arg3, s32 arg4); @@ -93,48 +93,28 @@ s32 lbl_1_bss_3D8; StructBss340 lbl_1_bss_340[1]; StructBss70 lbl_1_bss_70[10]; StructBss70 lbl_1_bss_28; -omObjData* lbl_1_bss_24; +omObjData *lbl_1_bss_24; Vec lbl_1_bss_18; Vec lbl_1_bss_C; Vec lbl_1_bss_0; s32 lbl_1_data_0[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; -s32 lbl_1_data_20[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 79), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 22) -}; +s32 lbl_1_data_20[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 79), DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), DATA_MAKE_NUM(DATADIR_MARIOMOT, 75), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 22) }; -Vec lbl_1_data_30[] = { - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f }, - { 0.0f, 0.0f, 35.0f } -}; +Vec lbl_1_data_30[] = { { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, + { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f } }; -Vec lbl_1_data_90[] = { - { -900.0f, 143.0f, -1020.0f }, - { -677.0f, 143.0f, -1020.0f }, - { 900.0f, 0.0f, -1150.0f }, - { -307.0f, 182.0f, -1575.0f } -}; +Vec lbl_1_data_90[] = { { -900.0f, 143.0f, -1020.0f }, { -677.0f, 143.0f, -1020.0f }, { 900.0f, 0.0f, -1150.0f }, { -307.0f, 182.0f, -1575.0f } }; -s32 lbl_1_data_C0[][5] = { - { 50, 80, 90, 95, 100 }, - { 5, 55, 85, 95, 100 }, - { 0, 5, 55, 90, 100 } -}; +s32 lbl_1_data_C0[][5] = { { 50, 80, 90, 95, 100 }, { 5, 55, 85, 95, 100 }, { 0, 5, 55, 90, 100 } }; float lbl_1_data_FC[] = { 0.3f, 0.5f, 0.7f, 0.9f, 1.0f }; -void ObjectSetup(void) { - Process* temp_r3; +void ObjectSetup(void) +{ + Process *temp_r3; temp_r3 = omInitObjMan(50, 0x2000); omGameSysInit(temp_r3); @@ -172,15 +152,16 @@ void ObjectSetup(void) { WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); } -void fn_1_4A0(void) { +void fn_1_4A0(void) +{ float temp_f31; float temp_f30; - void* var_r27; - StructBss340* temp_r31; - StructBss70* temp_r29; - Process* var_r25; - AnimData* var_r24; - AnimData* spC[4]; + void *var_r27; + StructBss340 *temp_r31; + StructBss70 *temp_r29; + Process *var_r25; + AnimData *var_r24; + AnimData *spC[4]; s16 var_r30; s16 var_r23; s16 sp8; @@ -292,7 +273,8 @@ void fn_1_4A0(void) { var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 12), MEMORY_DEFAULT_NUM, HEAP_DATA); var_r30 = Hu3DModelCreate(var_r27); var_r23 = var_r30; - } else { + } + else { var_r30 = Hu3DModelLink(var_r23); } temp_r29->unk00 = var_r30; @@ -389,7 +371,8 @@ void fn_1_4A0(void) { HuPrcChildCreate(fn_1_7D40, 0x1000, 0x1000, 0, HuPrcCurrentGet()); } -float fn_1_14B4(float arg0) { +float fn_1_14B4(float arg0) +{ while (arg0 >= 360.0f || arg0 < 0.0f) { if (arg0 >= 360.0f) { arg0 -= 360.0f; @@ -401,24 +384,29 @@ float fn_1_14B4(float arg0) { return arg0; } -float fn_1_1534(float arg0, float arg1) { +float fn_1_1534(float arg0, float arg1) +{ float var_f31; if (arg0 > 750.0f - arg1) { var_f31 = 750.0f; - } else if (arg0 < -(750.0f - arg1)) { + } + else if (arg0 < -(750.0f - arg1)) { var_f31 = 750.0f; - } else { + } + else { var_f31 = 750.0f; } return var_f31; } -float fn_1_15B4(float arg0, float arg1) { +float fn_1_15B4(float arg0, float arg1) +{ return fn_1_1534(arg0, arg1); } -void fn_1_1634(void) { +void fn_1_1634(void) +{ float var_f31; float temp_f30; s32 i; @@ -434,7 +422,8 @@ void fn_1_1634(void) { } } -void fn_1_16F8(void) { +void fn_1_16F8(void) +{ s32 i; for (i = 0; i < 6; i++) { @@ -442,7 +431,8 @@ void fn_1_16F8(void) { } } -void fn_1_174C(void) { +void fn_1_174C(void) +{ s32 i; for (i = 0; i < 6; i++) { @@ -450,12 +440,14 @@ void fn_1_174C(void) { } } -void fn_1_17A0(s32 arg0, s32 arg1) { +void fn_1_17A0(s32 arg0, s32 arg1) +{ s32 var_r31; if (arg1 != 0) { var_r31 = 2; - } else { + } + else { var_r31 = 4; } HuSprBankSet(lbl_1_bss_3DC, var_r31, arg0 % 10); @@ -463,13 +455,14 @@ void fn_1_17A0(s32 arg0, s32 arg1) { HuSprAttrReset(lbl_1_bss_3DC, var_r31 + 1, HUSPR_ATTR_DISPOFF); } -s32 fn_1_1880(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) { +s32 fn_1_1880(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) +{ Vec sp34; Vec sp28; Vec sp1C; s32 i; - StructBss70* temp_r30; - StructBss340* var_r29; + StructBss70 *temp_r30; + StructBss340 *var_r29; if (arg3 > 10) { arg3 = 10; @@ -498,7 +491,8 @@ s32 fn_1_1880(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) { return 0; } -s32 fn_1_1BD4(StructBss70* arg0) { +s32 fn_1_1BD4(StructBss70 *arg0) +{ float var_f31; float var_f30; s32 var_r31; @@ -525,7 +519,8 @@ s32 fn_1_1BD4(StructBss70* arg0) { return var_r31; } -void fn_1_1E10(StructBss70* arg0) { +void fn_1_1E10(StructBss70 *arg0) +{ Vec sp104; Vec spF8; Vec spEC; @@ -541,8 +536,8 @@ void fn_1_1E10(StructBss70* arg0) { float spB0; float spAC; float spA0; - StructBss70* var_r30; - StructBss70* temp_r28; + StructBss70 *var_r30; + StructBss70 *temp_r28; s32 temp_r19; s32 var_r21; s32 i; @@ -583,7 +578,8 @@ void fn_1_1E10(StructBss70* arg0) { spC0 = var_f19 - var_f26; if (spC0 > 0.0f) { spBC = -0.5f; - } else { + } + else { spBC = 0.5f; } if (ABS_INV(var_f19 - var_f26) > 180.0f) { @@ -626,13 +622,14 @@ block_end: arg0->unk14.z = spB4; } -void fn_1_2FDC(StructBss70* arg0) { +void fn_1_2FDC(StructBss70 *arg0) +{ Vec spF0; Vec spE4; Vec spD8; s32 i; - StructBss340* var_r30; - StructBss70* temp_r25; + StructBss340 *var_r30; + StructBss70 *temp_r25; float var_f31; s32 var_r23; s32 var_r20; @@ -655,12 +652,14 @@ void fn_1_2FDC(StructBss70* arg0) { var_f31 += 30.0f * frandf() - 60.0f; var_f31 = fn_1_14B4(var_f31); arg0->unk20 = var_f31; - } else if (ABS_INV(arg0->unk14.x) > 550.0f) { + } + else if (ABS_INV(arg0->unk14.x) > 550.0f) { var_f31 = fn_1_14B4(180.0 + atan2d(arg0->unk14.x, 0.0)); var_f31 += 10.0f * frandf() - 20.0f; var_f31 = fn_1_14B4(var_f31); arg0->unk20 = var_f31; - } else if (frandmod(3) != 0) { + } + else if (frandmod(3) != 0) { for (i = 0, var_r23 = 0; i < 10; i++) { if (i == arg0->unk0C) { continue; @@ -679,13 +678,15 @@ void fn_1_2FDC(StructBss70* arg0) { if (var_r23 == 1 && ABS_INV(var_r30->unk4C.x) < 650.0f) { temp_r25 = &lbl_1_bss_70[spAC[0]]; var_f31 = fn_1_14B4(atan2d(arg0->unk40 - arg0->unk14.x, arg0->unk44 - arg0->unk14.z)); - } else { + } + else { var_f31 = fn_1_14B4(180.0 + atan2d(arg0->unk14.x, arg0->unk14.z)); var_f31 += 30.0f * frandf() - 60.0f; var_f31 = fn_1_14B4(var_f31); arg0->unk20 = var_f31; } - } else { + } + else { var_f31 = 360.0f * frandf(); arg0->unk20 = var_f31; } @@ -713,15 +714,15 @@ void fn_1_2FDC(StructBss70* arg0) { var_f31 = fn_1_14B4(atan2d(arg0->unk40 - arg0->unk14.x, arg0->unk44 - arg0->unk14.z)); arg0->unk14.x += arg0->unk34 * sind(var_f31); arg0->unk14.z += arg0->unk34 * cosd(var_f31); - if (fn_1_1BD4(arg0)) { - } + if (fn_1_1BD4(arg0)) { } if (fn_1_1880(arg0->unk14.x, arg0->unk14.z, 50.0f, 10, arg0->unk0C) != 0) { arg0->unk14.x = arg0->unk24; arg0->unk14.z = arg0->unk28; arg0->unk38 = 100; arg0->unk3C = 0; } - } else { + } + else { arg0->unk38 = 100; arg0->unk3C = 0; } @@ -735,8 +736,9 @@ void fn_1_2FDC(StructBss70* arg0) { } } -void fn_1_44D8(void) { - StructBss70* temp_r31; +void fn_1_44D8(void) +{ + StructBss70 *temp_r31; float temp_f30; float var_f31; s32 i; @@ -763,7 +765,8 @@ void fn_1_44D8(void) { } } -void fn_1_4644(StructBss70* arg0) { +void fn_1_4644(StructBss70 *arg0) +{ float temp_f26; float temp_f25; float var_f27; @@ -778,7 +781,8 @@ void fn_1_4644(StructBss70* arg0) { arg0->unk20 = 90.0f; var_f27 = -700.0f + temp_f26 - 500.0f; var_f24 = 8.333333f; - } else { + } + else { arg0->unk14.x = 700.0f - temp_f26; arg0->unk20 = 270.0f; var_f27 = 700.0f - temp_f26 + 500.0f; @@ -808,7 +812,8 @@ void fn_1_4644(StructBss70* arg0) { Hu3DModelPosSet(arg0->unk00, arg0->unk14.x, 0.0f, arg0->unk14.z); } -void fn_1_4BC4(void) { +void fn_1_4BC4(void) +{ s32 spC; float sp8; float temp_f23; @@ -816,9 +821,9 @@ void fn_1_4BC4(void) { float var_f28; float var_f30; float var_f29; - StructBss70* temp_r31; - StructBss340* var_r28; - StructBss340* var_r30; + StructBss70 *temp_r31; + StructBss340 *var_r28; + StructBss340 *var_r30; s32 temp_r27; s32 temp_r24; s32 var_r26; @@ -843,7 +848,8 @@ loop_1: } } if (i > 4) { - while (TRUE); + while (TRUE) + ; } temp_r31->unk34 = 6.75f * lbl_1_data_FC[i]; temp_r31->unk38 = 0; @@ -854,8 +860,8 @@ loop_1: fn_1_4644(temp_r31); temp_r31->unk10 = 0; if (FALSE) { - default: - fn_1_2FDC(temp_r31); + default: + fn_1_2FDC(temp_r31); } Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14.x, temp_r31->unk14.y, temp_r31->unk14.z); Hu3DModelRotSet(temp_r31->unk00, 0.0f, temp_r31->unk20, 0.0f); @@ -869,19 +875,23 @@ loop_1: if (ABS_INV(var_r28->unk4C.z - temp_r31->unk14.z) > 250.0f) { if (temp_r31->unk14.x > 0.0f) { var_f30 = 10.0f; - } else { + } + else { var_f30 = -10.0f; } - } else { + } + else { if (var_r28->unk4C.x > temp_r31->unk14.x) { var_f30 = -10.0f; - } else { + } + else { var_f30 = 10.0f; } } if (var_f30 > 0.0f) { Hu3DModelRotSet(temp_r31->unk00, 0.0f, 90.0f, 0.0f); - } else { + } + else { Hu3DModelRotSet(temp_r31->unk00, 0.0f, 270.0f, 0.0f); } Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04[1]); @@ -911,7 +921,8 @@ loop_1: temp_r31->unk2C = fn_1_14B4(atan2d(temp_r31->unk14.x - var_r30->unk4C.x, temp_r31->unk14.z - var_r30->unk4C.z)); Hu3DMotionTimeSet(temp_r31->unk02, 0.0f); Hu3DModelAttrReset(temp_r31->unk02, HU3D_ATTR_DISPOFF); - Hu3DModelPosSet(temp_r31->unk02, var_r30->unk4C.x + var_r30->unk84 * sind(temp_r31->unk2C), temp_r31->unk14.y + 50.0f, var_r30->unk4C.z + var_r30->unk84 * cosd(temp_r31->unk2C)); + Hu3DModelPosSet(temp_r31->unk02, var_r30->unk4C.x + var_r30->unk84 * sind(temp_r31->unk2C), temp_r31->unk14.y + 50.0f, + var_r30->unk4C.z + var_r30->unk84 * cosd(temp_r31->unk2C)); i = 0; var_f29 = temp_r31->unk14.x; var_f28 = temp_r31->unk14.z; @@ -943,9 +954,10 @@ loop_1: } } -void fn_1_545C(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; - StructBss340* temp_r28; +void fn_1_545C(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + StructBss340 *temp_r28; float var_f30; float var_f31; float temp_f29; @@ -996,7 +1008,7 @@ void fn_1_545C(ModelData* model, ParticleData* particle, Mtx matrix) { if (var_r31->unk14.x == 0.0f) { continue; } - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); var_r31->unk08.x *= 0.95f; var_r31->unk08.z *= 0.95f; if (var_r31->unk08.y > 0.1f) { @@ -1025,9 +1037,10 @@ void fn_1_545C(ModelData* model, ParticleData* particle, Mtx matrix) { } } -void fn_1_594C(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; - StructBss340* temp_r28; +void fn_1_594C(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + StructBss340 *temp_r28; float temp_f31; float temp_f30; s32 var_r27; @@ -1088,7 +1101,7 @@ void fn_1_594C(ModelData* model, ParticleData* particle, Mtx matrix) { if (var_r31->unk14.x == 0.0f || var_r31->unk24 == 0.0f) { continue; } - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); if (var_r31->unk08.y > 1.0f) { var_r31->unk08.y -= 0.3f; } @@ -1112,9 +1125,10 @@ void fn_1_594C(ModelData* model, ParticleData* particle, Mtx matrix) { } } -void fn_1_5DE4(ModelData* model, ParticleData* particle, Mtx matrix) { - HsfanimStruct01* var_r31; - StructBss340* temp_r28; +void fn_1_5DE4(ModelData *model, ParticleData *particle, Mtx matrix) +{ + HsfanimStruct01 *var_r31; + StructBss340 *temp_r28; float temp_f31; float temp_f30; s32 var_r27; @@ -1175,7 +1189,7 @@ void fn_1_5DE4(ModelData* model, ParticleData* particle, Mtx matrix) { if (var_r31->unk14.x == 0.0f || var_r31->unk24 == 0.0f) { continue; } - PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); if (var_r31->unk08.y > 1.0f) { var_r31->unk08.y -= 0.3f; } @@ -1199,8 +1213,9 @@ void fn_1_5DE4(ModelData* model, ParticleData* particle, Mtx matrix) { } } -s8 fn_1_627C(s32 arg0, s32 arg1) { - StructBss340* temp_r31; +s8 fn_1_627C(s32 arg0, s32 arg1) +{ + StructBss340 *temp_r31; s8 var_r30; temp_r31 = &lbl_1_bss_340[arg0]; @@ -1208,8 +1223,9 @@ s8 fn_1_627C(s32 arg0, s32 arg1) { return var_r30; } -u8 fn_1_62F0(s32 arg0, s32 arg1) { - StructBss340* temp_r31; +u8 fn_1_62F0(s32 arg0, s32 arg1) +{ + StructBss340 *temp_r31; s8 var_r30; temp_r31 = &lbl_1_bss_340[arg0]; @@ -1217,8 +1233,9 @@ u8 fn_1_62F0(s32 arg0, s32 arg1) { return var_r30; } -u16 fn_1_636C(s32 arg0) { - StructBss340* temp_r31; +u16 fn_1_636C(s32 arg0) +{ + StructBss340 *temp_r31; u16 var_r30; temp_r31 = &lbl_1_bss_340[arg0]; @@ -1226,8 +1243,9 @@ u16 fn_1_636C(s32 arg0) { return var_r30; } -u16 fn_1_63B4(s32 arg0) { - StructBss340* temp_r31; +u16 fn_1_63B4(s32 arg0) +{ + StructBss340 *temp_r31; u16 var_r30; temp_r31 = &lbl_1_bss_340[arg0]; @@ -1235,11 +1253,12 @@ u16 fn_1_63B4(s32 arg0) { return var_r30; } -s32 fn_1_63FC(StructBss340* arg0) { +s32 fn_1_63FC(StructBss340 *arg0) +{ Vec sp24; Vec sp18; Vec spC; - StructBss70* temp_r31; + StructBss70 *temp_r31; s32 var_r28; s32 i; @@ -1257,7 +1276,8 @@ s32 fn_1_63FC(StructBss340* arg0) { return var_r28; } -s32 fn_1_65D0(StructBss340* arg0) { +s32 fn_1_65D0(StructBss340 *arg0) +{ float var_f31; float var_f30; s32 sp8; @@ -1279,7 +1299,8 @@ s32 fn_1_65D0(StructBss340* arg0) { return sp8; } -float fn_1_67F0(float arg0, float arg1, float arg2) { +float fn_1_67F0(float arg0, float arg1, float arg2) +{ float var_f30; float var_f31; @@ -1297,8 +1318,9 @@ float fn_1_67F0(float arg0, float arg1, float arg2) { return var_f30; } -void fn_1_68F4(void) { - StructBss340* temp_r31; +void fn_1_68F4(void) +{ + StructBss340 *temp_r31; s32 i; temp_r31 = HuPrcCurrentGet()->user_data; @@ -1313,19 +1335,21 @@ void fn_1_68F4(void) { } } -s32 fn_1_6964(StructBss340* arg0) { +s32 fn_1_6964(StructBss340 *arg0) +{ return (arg0->unk2C == 4 || arg0->unk2C == 5 || arg0->unk2C == 6); } -void fn_1_69C0(void) { +void fn_1_69C0(void) +{ float var_f23; float var_f27; float var_f26; - StructBss340* temp_r31; + StructBss340 *temp_r31; s16 var_r29; s32 var_r24; s32 var_r23; - Process* var_r22; + Process *var_r22; s32 var_r26; s32 var_r25; s32 var_r28; @@ -1353,7 +1377,8 @@ void fn_1_69C0(void) { case 8: if (temp_r31->unk3C != 0) { temp_r31->unk3C--; - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); temp_r31->unk2C = 0; } @@ -1374,7 +1399,8 @@ void fn_1_69C0(void) { } if (temp_r31->unk3C != 0) { temp_r31->unk3C--; - } else { + } + else { Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[5]); Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); temp_r31->unk2C = 6; @@ -1416,7 +1442,8 @@ void fn_1_69C0(void) { if (fn_1_63B4(temp_r31->unk20) & PAD_BUTTON_A) { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); } @@ -1424,14 +1451,16 @@ void fn_1_69C0(void) { HuAudFXStop(var_r29); } } - } else { + } + else { if (temp_r31->unk2C != 3) { temp_r31->unk2C = 3; temp_r31->unk48 = 0; if (fn_1_63B4(temp_r31->unk20) & PAD_BUTTON_A) { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); - } else { + } + else { Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); } @@ -1443,7 +1472,8 @@ void fn_1_69C0(void) { if (temp_r31->unk34 != 1) { var_r24 = 8; var_r23 = 32; - } else { + } + else { var_r24 = 7; var_r23 = 22; } @@ -1458,12 +1488,14 @@ void fn_1_69C0(void) { if (temp_r31->unk48 >= 50) { temp_r31->unk48 -= 50; } - } else { + } + else { if (temp_r31->unk48 >= 30) { temp_r31->unk48 -= 30; } } - } else { + } + else { if (ABS_INV(fn_1_627C(temp_r31->unk20, 0)) <= 20) { if (temp_r31->unk2C != 0) { temp_r31->unk2C = 0; @@ -1472,7 +1504,8 @@ void fn_1_69C0(void) { HuAudFXStop(var_r29); } } - } else { + } + else { if (temp_r31->unk2C != 1) { temp_r31->unk2C = 1; Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); @@ -1481,10 +1514,8 @@ void fn_1_69C0(void) { } } } - if (fn_1_63FC(temp_r31) != -1) { - } - if ((spA4 = fn_1_65D0(temp_r31)) != -1) { - } + if (fn_1_63FC(temp_r31) != -1) { } + if ((spA4 = fn_1_65D0(temp_r31)) != -1) { } break; } Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); @@ -1522,7 +1553,8 @@ void fn_1_69C0(void) { if (var_r25 & 1) { Hu3DModelAttrReset(temp_r31->unk00, HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(temp_r31->unk04, HU3D_ATTR_DISPOFF); - } else { + } + else { Hu3DModelAttrSet(temp_r31->unk00, HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(temp_r31->unk04, HU3D_ATTR_DISPOFF); } @@ -1542,7 +1574,8 @@ void fn_1_69C0(void) { Hu3DModelAttrSet(temp_r31->unk00, HU3D_ATTR_DISPOFF); HuAudSStreamPlay(4); HuPrcSleep(180); - } else { + } + else { var_f26 = temp_r31->unk90; Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); if (fn_1_14B4(temp_r31->unk60.y) != 0.0f) { @@ -1576,10 +1609,10 @@ void fn_1_69C0(void) { } } -void fn_1_7D3C(void) { -} +void fn_1_7D3C(void) { } -void fn_1_7D40(void) { +void fn_1_7D40(void) +{ while (TRUE) { if (omSysExitReq == 1) { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); @@ -1595,7 +1628,8 @@ void fn_1_7D40(void) { } } -void fn_1_7DA0(void) { +void fn_1_7DA0(void) +{ s16 temp_r31; s16 var_r30; s16 temp_r26; @@ -1644,7 +1678,8 @@ void fn_1_7DA0(void) { HuPrcVSleep(); } lbl_1_bss_3E4 = 5; - } else { + } + else { lbl_1_bss_3E4 = 5; } while (lbl_1_bss_3E4 < 6) { diff --git a/src/REL/m463Dll/main.c b/src/REL/m463Dll/main.c index a964b9ca..8304c1b3 100755 --- a/src/REL/m463Dll/main.c +++ b/src/REL/m463Dll/main.c @@ -68,14 +68,14 @@ typedef struct { } StructData134; // Size 0x18 s16 fn_1_4474(void); -void fn_1_659C(omObjData* arg0); +void fn_1_659C(omObjData *arg0); StructBss51C lbl_1_bss_51C[9]; StructBss35C lbl_1_bss_35C[28]; -omObjData* lbl_1_bss_358; -omObjData* lbl_1_bss_354; -omObjData* lbl_1_bss_330[9]; -omObjData* lbl_1_bss_32C; +omObjData *lbl_1_bss_358; +omObjData *lbl_1_bss_354; +omObjData *lbl_1_bss_330[9]; +omObjData *lbl_1_bss_32C; HsfanimStruct00 lbl_1_bss_5C[9]; s32 lbl_1_bss_58; s32 lbl_1_bss_54; @@ -83,7 +83,7 @@ s32 lbl_1_bss_50; char lbl_1_bss_4C[4]; // unused s32 lbl_1_bss_48; s32 lbl_1_bss_44; -Process* lbl_1_bss_40; +Process *lbl_1_bss_40; s32 lbl_1_bss_3C; s32 lbl_1_bss_38; s32 lbl_1_bss_34; @@ -101,17 +101,9 @@ char lbl_1_bss_8[4]; // unused s32 lbl_1_bss_4; s32 lbl_1_bss_0; -s32 lbl_1_data_0[9] = { - DATA_MAKE_NUM(DATADIR_M458, 38), - DATA_MAKE_NUM(DATADIR_M458, 38), - DATA_MAKE_NUM(DATADIR_M458, 38), - DATA_MAKE_NUM(DATADIR_M458, 38), - DATA_MAKE_NUM(DATADIR_M458, 38), - DATA_MAKE_NUM(DATADIR_M458, 38), - DATA_MAKE_NUM(DATADIR_M458, 38), - DATA_MAKE_NUM(DATADIR_M458, 38), - DATA_MAKE_NUM(DATADIR_M458, 38) -}; +s32 lbl_1_data_0[9] = { DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), + DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), + DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38) }; s32 lbl_1_data_24[9] = { 0 }; @@ -129,17 +121,8 @@ s32 lbl_1_data_48[9] = { u32 lbl_1_data_6C[9] = { 0, 0, 0, 0, 0, 0, 0, 1, 0 }; -u32 lbl_1_data_90[] = { - DATA_MAKE_NUM(DATADIR_BKOOPA, 8), - 0, - 0, - DATA_MAKE_NUM(DATADIR_BKOOPA, 10), - 0, - DATA_MAKE_NUM(DATADIR_M458, 42), - DATA_MAKE_NUM(DATADIR_M458, 40), - DATA_MAKE_NUM(DATADIR_M458, 41), - DATA_MAKE_NUM(DATADIR_M458, 39) -}; +u32 lbl_1_data_90[] = { DATA_MAKE_NUM(DATADIR_BKOOPA, 8), 0, 0, DATA_MAKE_NUM(DATADIR_BKOOPA, 10), 0, DATA_MAKE_NUM(DATADIR_M458, 42), + DATA_MAKE_NUM(DATADIR_M458, 40), DATA_MAKE_NUM(DATADIR_M458, 41), DATA_MAKE_NUM(DATADIR_M458, 39) }; u8 lbl_1_data_B4[9] = { 0, 0, 0, 1, 1, 1, 0, 1, 1 }; u8 lbl_1_data_BD[9] = { 0, 0, 0, 1, 1, 1, 0, 1, 1 }; @@ -157,7 +140,8 @@ s32 lbl_1_data_154 = -1; // unused float lbl_1_data_158[] = { -90.0f, 0.0f, 525.0f, 180.0f, 90.0f, 0.0f, 525.0f, 180.0f }; -void fn_1_A0(void) { +void fn_1_A0(void) +{ if (HuPadBtnDown[0] & PAD_BUTTON_B) { Center.x = lbl_1_bss_330[0]->trans.x; Center.y = lbl_1_bss_330[0]->trans.y; @@ -176,9 +160,10 @@ void fn_1_A0(void) { s32 lbl_1_data_184 = -1; -void fn_1_4C8(omObjData* arg0) { - ModelData* temp_r24; - ModelData* temp_r29; +void fn_1_4C8(omObjData *arg0) +{ + ModelData *temp_r24; + ModelData *temp_r29; float temp_f31; float temp_f30; float var_f28; @@ -190,17 +175,17 @@ void fn_1_4C8(omObjData* arg0) { float var_f22; float var_f21; float var_f20; - StructBss330Data* temp_r31; + StructBss330Data *temp_r31; s16 var_r28; s32 temp_r27; s32 var_r26; s32 var_r25; s32 var_r23; s32 var_r22; - StructBss330Data* temp_r21; + StructBss330Data *temp_r21; s32 var_r20; s32 var_r19; - StructBss330Data* temp_r18; + StructBss330Data *temp_r18; s32 var_r17; float sp180[2]; s32 spE0; @@ -210,18 +195,18 @@ void fn_1_4C8(omObjData* arg0) { s32 spD0; s32 spCC; s32 spC8; - StructBss330Data* spC4; + StructBss330Data *spC4; s32 spC0; s32 spBC; - StructBss330Data* spB8; + StructBss330Data *spB8; s32 spB4; u32 spB0; float spAC; s32 spA8; s32 spA4; s32 spA0; - StructBss330Data* sp9C; - ModelData* sp98; + StructBss330Data *sp9C; + ModelData *sp98; float sp94; float sp90; s32 sp8C; @@ -240,7 +225,8 @@ void fn_1_4C8(omObjData* arg0) { } if (temp_r31->unk0C != -1) { var_r22 = (HuPadBtnDown[temp_r31->unk0C] & PAD_BUTTON_A) ? 1 : 0; - } else { + } + else { temp_r31->unk14 += (temp_r31->unk14 < 0x10000); if (temp_r31->unk14 == 30) { var_r22 = 1; @@ -251,12 +237,11 @@ void fn_1_4C8(omObjData* arg0) { var_r26 = 0; var_r25 = 0; if (temp_r31->unk0C != -1) { - var_r26 = (HuPadStkX[temp_r31->unk0C] < -20) ? -1 - : (HuPadStkX[temp_r31->unk0C] > 20) ? 1 : 0; - var_r25 = (-HuPadStkY[temp_r31->unk0C] < -20) ? -1 - : (-HuPadStkY[temp_r31->unk0C] > 20) ? 1 : 0; + var_r26 = (HuPadStkX[temp_r31->unk0C] < -20) ? -1 : (HuPadStkX[temp_r31->unk0C] > 20) ? 1 : 0; + var_r25 = (-HuPadStkY[temp_r31->unk0C] < -20) ? -1 : (-HuPadStkY[temp_r31->unk0C] > 20) ? 1 : 0; var_r22 = (HuPadBtnDown[temp_r31->unk0C] & PAD_BUTTON_A) ? 1 : 0; - } else { + } + else { if (lbl_1_bss_54 == 1) { temp_r31->unk14 = rand8() % 64 + 30; } @@ -278,16 +263,16 @@ void fn_1_4C8(omObjData* arg0) { spCC = 0; if (var_r17 != temp_r31->unk00) { if (fabs(500.0 * temp_r31->unk3C - arg0->trans.x) < 10.0) { - spE0 = spDC = (arg0->trans.x < -250.0) ? -1 - : (arg0->trans.x > 250.0) ? 1 : 0; - } else { + spE0 = spDC = (arg0->trans.x < -250.0) ? -1 : (arg0->trans.x > 250.0) ? 1 : 0; + } + else { spE0 = (arg0->trans.x < 0.0f) ? -1 : 0; spDC = spE0 + 1; } if (fabs(500.0 * temp_r31->unk40 - arg0->trans.z) < 10.0) { - spD8 = spD4 = (arg0->trans.z < -250.0) ? -1 - : (arg0->trans.z > 250.0) ? 1 : 0; - } else { + spD8 = spD4 = (arg0->trans.z < -250.0) ? -1 : (arg0->trans.z > 250.0) ? 1 : 0; + } + else { spD8 = (arg0->trans.z < 0.0f) ? -1 : 0; spD4 = spD8 + 1; } @@ -309,14 +294,16 @@ void fn_1_4C8(omObjData* arg0) { if (var_r26 * (500.0 * temp_r31->unk3C - arg0->trans.x) < 0.0) { temp_r31->unk3C += var_r26; } - if (fabs(500.0 * temp_r31->unk3C - arg0->trans.x) < 10.0 && var_r26 != 0 && temp_r31->unk3C + var_r26 >= -1 && temp_r31->unk3C + var_r26 <= 1) { + if (fabs(500.0 * temp_r31->unk3C - arg0->trans.x) < 10.0 && var_r26 != 0 && temp_r31->unk3C + var_r26 >= -1 + && temp_r31->unk3C + var_r26 <= 1) { temp_r31->unk3C += var_r26; } var_f23 = ((500.0 * temp_r31->unk3C - arg0->trans.x) / 0.25) / 1.75; if (var_r25 * (500.0 * temp_r31->unk40 - arg0->trans.z) < 0.0) { temp_r31->unk40 += var_r25; } - if (fabs(500.0 * temp_r31->unk40 - arg0->trans.z) < 10.0 && var_r25 != 0 && temp_r31->unk40 + var_r25 >= -1 && temp_r31->unk40 + var_r25 <= 1) { + if (fabs(500.0 * temp_r31->unk40 - arg0->trans.z) < 10.0 && var_r25 != 0 && temp_r31->unk40 + var_r25 >= -1 + && temp_r31->unk40 + var_r25 <= 1) { temp_r31->unk40 += var_r25; } var_f22 = ((500.0 * temp_r31->unk40 - arg0->trans.z) / -0.25) / 1.75; @@ -332,8 +319,8 @@ void fn_1_4C8(omObjData* arg0) { sp1A0.x = temp_f31; sp1A0.z = temp_f30; - PSMTXRotRad(sp1D0, 'y', MTXDegToRad(CRot.y)); - PSMTXMultVec(sp1D0, &sp1A0, &sp1A0); + MTXRotRad(sp1D0, 'y', MTXDegToRad(CRot.y)); + MTXMultVec(sp1D0, &sp1A0, &sp1A0); temp_f31 = sp1A0.x; temp_f30 = sp1A0.z; var_f28 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30); @@ -341,7 +328,8 @@ void fn_1_4C8(omObjData* arg0) { if (var_f28 < 10.0f) { temp_r31->unk2C = temp_f31; temp_r31->unk34 += temp_f30; - } else { + } + else { temp_f31 /= var_f28; temp_f30 /= var_f28; var_f28 = 10.0f; @@ -352,10 +340,12 @@ void fn_1_4C8(omObjData* arg0) { arg0->rot.y = atan2d(temp_r31->unk2C, temp_r31->unk34); if (temp_r31->unk28 >= 8.0f) { var_r28 = 2; - } else { + } + else { var_r28 = 2; } - } else { + } + else { var_r28 = 0; } } @@ -372,14 +362,13 @@ void fn_1_4C8(omObjData* arg0) { if (lbl_1_bss_54 == 0) { Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); if (temp_r31->unk00 < 4) { - temp_r31->unk38 = (temp_r31->unk00 == 0) ? 0 - : (temp_r31->unk00 == 1) ? 2 - : (temp_r31->unk00 == 2) ? 6 : 8; + temp_r31->unk38 = (temp_r31->unk00 == 0) ? 0 : (temp_r31->unk00 == 1) ? 2 : (temp_r31->unk00 == 2) ? 6 : 8; temp_r31->unk3C = temp_r31->unk38 % 3 - 1; temp_r31->unk40 = temp_r31->unk38 / 3 - 1; arg0->trans.x = 500.0 * temp_r31->unk3C; arg0->trans.z = 500.0 * temp_r31->unk40; - } else { + } + else { do { temp_r31->unk38 = rand8() % 9; for (spC8 = 0; spC8 < temp_r31->unk00; spC8++) { @@ -446,9 +435,7 @@ void fn_1_4C8(omObjData* arg0) { for (var_r23 = 0; var_r23 < 4; var_r23++) { temp_r18 = lbl_1_bss_330[var_r23]->data; if (!(fabs(500.0 * temp_r18->unk3C - lbl_1_bss_330[var_r23]->trans.x) < 1.0) - || !(fabs(500.0 * temp_r18->unk40 - lbl_1_bss_330[var_r23]->trans.z) < 1.0) - || temp_r18->unk20 != 0) - { + || !(fabs(500.0 * temp_r18->unk40 - lbl_1_bss_330[var_r23]->trans.z) < 1.0) || temp_r18->unk20 != 0) { break; } } @@ -461,7 +448,8 @@ void fn_1_4C8(omObjData* arg0) { if (temp_r31->unk5C != 0) { if (arg0->trans.y < -15000.0f) { Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); - } else { + } + else { arg0->trans.y -= 77.0f; } } @@ -503,8 +491,7 @@ void fn_1_4C8(omObjData* arg0) { temp_f26 = (lbl_1_bss_54 - 210) / 4.0; temp_f26 = (temp_f26 > 1.0f) ? 1.0f : temp_f26; espAttrReset(lbl_1_data_24[temp_r31->unk38], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_data_24[temp_r31->unk38], - 290.0f + spB4 * sp194[spB0], + espPosSet(lbl_1_data_24[temp_r31->unk38], 290.0f + spB4 * sp194[spB0], sp188[spB0] + 0.5 * (64.0f * (1.0f - spAC) * 0.5 + sp1AC[temp_r31->unk08 != -1 ? temp_r31->unk08 : 8])); espScaleSet(lbl_1_data_24[temp_r31->unk38], 0.5 * temp_f26, 0.5 * temp_f26); } @@ -534,9 +521,11 @@ void fn_1_4C8(omObjData* arg0) { if (temp_r31->unk08 == -1 && lbl_1_bss_54 == 1) { HuAudFXPlay(0x3A); } - } else if (arg0->trans.y < -40000.0f) { + } + else if (arg0->trans.y < -40000.0f) { Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); - } else { + } + else { arg0->trans.y -= 77.0f; } break; @@ -549,7 +538,8 @@ void fn_1_4C8(omObjData* arg0) { temp_r31->unk1C++; if (temp_r31->unk1C <= 60) { arg0->rot.y = -180.0 * (temp_r31->unk1C / 60.0); - } else { + } + else { Hu3DMotionTimeSet(arg0->model[0], 120.0f); var_r28 = 0; temp_r31->unk18 = 0; @@ -583,22 +573,25 @@ void fn_1_4C8(omObjData* arg0) { if (temp_r31->unk1C < 180) { var_f20 = 0.0f; var_f21 = 1.0f; - } else { + } + else { var_f20 = 1.0f; var_f21 = 0.5f; } - temp_r24->scale.x = var_f20 + var_f21 * sind((float) (temp_r31->unk1C % 180)); + temp_r24->scale.x = var_f20 + var_f21 * sind((float)(temp_r31->unk1C % 180)); temp_r24->scale.y = temp_r24->scale.z = temp_r24->scale.x; if (temp_r31->unk1C < 180) { temp_r31->unk1C += 6; - } else { + } + else { temp_r31->unk1C += 18; } if (temp_r31->unk1C >= 360) { temp_r31->unk1C = 360; Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); } - } else { + } + else { sp98 = &Hu3DData[arg0->model[1]]; temp_r31->unk1C += 4; if (temp_r31->unk1C > 720) { @@ -640,7 +633,8 @@ void fn_1_4C8(omObjData* arg0) { temp_r31->unk58 = 150; } Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); - } else if (temp_r27 > 8) { + } + else if (temp_r27 > 8) { if (temp_r31->unk20 == 5) { if (Hu3DMotionTimeGet(arg0->model[0]) >= Hu3DMotionMaxTimeGet(arg0->model[0])) { var_r28 = 0; @@ -667,12 +661,14 @@ void fn_1_4C8(omObjData* arg0) { temp_r31->unk18 = 0; temp_r31->unk1C = 0; } - } else { + } + else { if (temp_r27 < 4) { temp_r29->pos.y += 10.0f + 0.5f * temp_r27; temp_r29->scale.x += 0.1f * sind(4.0f * temp_r27); temp_r29->scale.y = temp_r29->scale.z = temp_r29->scale.x; - } else { + } + else { var_f24 = 255 - (temp_r27 << 5); var_f24 = var_f24 * (1.0f / 255); Hu3DModelTPLvlSet(arg0->model[1], var_f24); @@ -734,13 +730,11 @@ void fn_1_4C8(omObjData* arg0) { var_r28 = temp_r31->unk24; } if (var_r28 >= 0 && var_r28 != temp_r31->unk20) { - Hu3DMotionShiftSet(arg0->model[0], - arg0->motion[var_r28], - lbl_1_data_EC[var_r28], + Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r28], lbl_1_data_EC[var_r28], (temp_r31->unk08 != -1) ? lbl_1_data_C8[var_r28] : lbl_1_data_110[var_r28], - (var_r28 == 7) ? HU3D_MOTATTR_PAUSE + (var_r28 == 7) ? HU3D_MOTATTR_PAUSE : (temp_r31->unk08 != -1 ? lbl_1_data_B4[var_r28] : lbl_1_data_BD[var_r28]) ? 0 - : HU3D_MOTATTR_LOOP); + : HU3D_MOTATTR_LOOP); temp_r31->unk20 = var_r28; } temp_r31->unk58 -= (temp_r31->unk58 > -1); @@ -759,15 +753,16 @@ float lbl_1_data_1B8 = 3500.0f; float lbl_1_data_1BC = 100.0f; float lbl_1_data_1C0 = -59.0f; -void fn_1_3264(omObjData* arg0) { +void fn_1_3264(omObjData *arg0) +{ float temp_f29; float var_f31; float temp_f26; float temp_f27; float temp_f28; - StructBss330Data* spC[9]; - ModelData* temp_r29; - ModelData* temp_r28; + StructBss330Data *spC[9]; + ModelData *temp_r29; + ModelData *temp_r28; s32 var_r27; s32 i; s32 j; @@ -807,10 +802,8 @@ void fn_1_3264(omObjData* arg0) { } for (i = 0; i < 9; i++) { temp_r28 = &Hu3DData[lbl_1_bss_32C->model[i + 1]]; - Hu3DModelPosSet(lbl_1_bss_32C->model[i + 1], - (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk00 - 1), - 0.9 * temp_r28->pos.y + 0.1 * lbl_1_bss_51C[spC[0]->unk38].unk08, - (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk04 - 1)); + Hu3DModelPosSet(lbl_1_bss_32C->model[i + 1], (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk00 - 1), + 0.9 * temp_r28->pos.y + 0.1 * lbl_1_bss_51C[spC[0]->unk38].unk08, (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk04 - 1)); for (j = 0; j < 9; j++) { if (i == spC[j]->unk38) { lbl_1_bss_330[j]->trans.x = (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk00 - 1); @@ -824,14 +817,9 @@ void fn_1_3264(omObjData* arg0) { } { s32 var_r26 = lbl_1_data_1B4; - float sp30[][6] = { - { 3500.0f, 0.0f, 100.0f, 0.0f, -59.0f, 0.0f }, - { 3200.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, - { 3800.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, - { 2000.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, - { 4000.0f, 0.0f, 200.0f, 0.0f, -89.0f, 0.0f }, - { 2700.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f } - }; + float sp30[][6] = { { 3500.0f, 0.0f, 100.0f, 0.0f, -59.0f, 0.0f }, { 3200.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, + { 3800.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, { 2000.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, + { 4000.0f, 0.0f, 200.0f, 0.0f, -89.0f, 0.0f }, { 2700.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f } }; if (lbl_1_bss_38 != -1 && lbl_1_bss_38 != 9) { sp30[5][1] = lbl_1_bss_330[lbl_1_bss_38]->trans.x; @@ -878,7 +866,8 @@ void fn_1_3264(omObjData* arg0) { if (lbl_1_bss_1C == 0) { lbl_1_bss_20 = 1.0 - 0.95 * (1.0f - lbl_1_bss_20); var_f31 = lbl_1_bss_20; - } else { + } + else { lbl_1_bss_20 += 0.008333333333333333; lbl_1_bss_20 = (lbl_1_bss_20 > 1.0f) ? 1.0f : lbl_1_bss_20; var_f31 = 0.5 + -0.5 * cosd(180.0f * lbl_1_bss_20); @@ -902,53 +891,31 @@ void fn_1_3264(omObjData* arg0) { lbl_1_data_134.unk10 = 2.0 * (rand8() / 255.0) - 1.0; lbl_1_data_134.unk14 = 2.0 * (rand8() / 255.0) - 1.0; lbl_1_data_134.unk10 = 0.0f; - temp_f28 = (lbl_1_data_134.unk10 - lbl_1_data_134.unk08) * (lbl_1_data_134.unk10 - lbl_1_data_134.unk08) + (lbl_1_data_134.unk14 - lbl_1_data_134.unk0C) * (lbl_1_data_134.unk14 - lbl_1_data_134.unk0C); + temp_f28 = (lbl_1_data_134.unk10 - lbl_1_data_134.unk08) * (lbl_1_data_134.unk10 - lbl_1_data_134.unk08) + + (lbl_1_data_134.unk14 - lbl_1_data_134.unk0C) * (lbl_1_data_134.unk14 - lbl_1_data_134.unk0C); } while (sqrtf(temp_f28) < 0.75); } - lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 24 - : (lbl_1_data_134.unk04 > 0) ? lbl_1_data_134.unk04 : 0; + lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 24 : (lbl_1_data_134.unk04 > 0) ? lbl_1_data_134.unk04 : 0; temp_f26 = lbl_1_data_134.unk08; temp_f27 = lbl_1_data_134.unk0C; temp_f26 *= lbl_1_data_134.unk04 * 2; temp_f27 *= lbl_1_data_134.unk04 * 2; lbl_1_data_134.unk00 = !lbl_1_data_134.unk00; - lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 23 - : (lbl_1_data_134.unk04 - 1 > 0) ? (lbl_1_data_134.unk04 - 1) : 0; + lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 23 : (lbl_1_data_134.unk04 - 1 > 0) ? (lbl_1_data_134.unk04 - 1) : 0; Center.x = 0.0f; Center.y = 100.0f + temp_f27; } } -s16 fn_1_4474(void) { - AnimData* var_r29; - void* var_r28; +s16 fn_1_4474(void) +{ + AnimData *var_r29; + void *var_r28; s16 var_r31; s16 var_r30; - HsfanimStruct00 sp8 = { - 0x96, - { 0x00, 0x00 }, - 50.0f, - 0.0f, - 65.0f, - { 0.0f, -0.195f, 0.0f }, - 80.0f, - 0.99f, - 40.0f, - 0.999f, - 4, - { - { 0xFF, 0xFF, 0x20, 0xFF }, - { 0xFF, 0xFF, 0x00, 0xFF }, - { 0xFF, 0xFF, 0x80, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF } - }, - { - { 0xFF, 0xFF, 0xFF, 0x00 }, - { 0xFF, 0xFF, 0xFF, 0x00 }, - { 0xFF, 0xFF, 0xFF, 0x00 }, - { 0xFF, 0xFF, 0xFF, 0x00 } - } - }; + HsfanimStruct00 sp8 = { 0x96, { 0x00, 0x00 }, 50.0f, 0.0f, 65.0f, { 0.0f, -0.195f, 0.0f }, 80.0f, 0.99f, 40.0f, 0.999f, 4, + { { 0xFF, 0xFF, 0x20, 0xFF }, { 0xFF, 0xFF, 0x00, 0xFF }, { 0xFF, 0xFF, 0x80, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF } }, + { { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 } } }; lbl_1_bss_5C[lbl_1_bss_58] = sp8; var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_BOARD, 107), MEMORY_DEFAULT_NUM, HEAP_DATA); @@ -963,8 +930,9 @@ s16 fn_1_4474(void) { return var_r31; } -void fn_1_45F8(omObjData* arg0) { - StructBss330Data* sp14[9]; +void fn_1_45F8(omObjData *arg0) +{ + StructBss330Data *sp14[9]; float spC[2]; s32 sp8; s32 var_r29; @@ -974,15 +942,8 @@ void fn_1_45F8(omObjData* arg0) { s32 i; for (i = 0; i < 28; i++) { - s32 sp38[] = { - 0x7F1, 0x7F2, 0x7F7, 0x7F8, - 0x7F9, 0x7FA, 0x7FB, 0x7FC, - 0x7FD, 0x7FE, 0x7FF, 0x800, - 0x801, 0x802, 0x803, 0x804, - 0x7FB, 0x7FC, 0x7FD, 0x7FE, - 0x7FF, 0x800, 0x801, 0x802, - 0x803, 0x804, 0x7FB, 0x7FC - }; + s32 sp38[] = { 0x7F1, 0x7F2, 0x7F7, 0x7F8, 0x7F9, 0x7FA, 0x7FB, 0x7FC, 0x7FD, 0x7FE, 0x7FF, 0x800, 0x801, 0x802, 0x803, 0x804, 0x7FB, 0x7FC, + 0x7FD, 0x7FE, 0x7FF, 0x800, 0x801, 0x802, 0x803, 0x804, 0x7FB, 0x7FC }; if (lbl_1_bss_35C[i].unk00 > 3) { lbl_1_bss_35C[i].unk00 = 3; @@ -1056,7 +1017,8 @@ void fn_1_45F8(omObjData* arg0) { if (lbl_1_bss_51C[sp14[i]->unk38].unk0C != 0) { sp14[i]->unk18 = 3; sp14[i]->unk1C = 0; - } else { + } + else { sp14[i]->unk5C = 1; } } @@ -1082,7 +1044,8 @@ void fn_1_45F8(omObjData* arg0) { if (var_r29 >= 9 || lbl_1_bss_0 == 0) { MGSeqParamSet(lbl_1_data_14E, 2, -1); lbl_1_data_14E = -1; - } else { + } + else { lbl_1_bss_0 -= (lbl_1_bss_0 > 0); MGSeqParamSet(lbl_1_data_14E, 1, (lbl_1_bss_0 + 59) / 60); } @@ -1140,7 +1103,8 @@ void fn_1_45F8(omObjData* arg0) { lbl_1_bss_50 = 1007; lbl_1_bss_54 = 0; } - } else { + } + else { lbl_1_bss_50 = 1005; lbl_1_bss_54 = 0; } @@ -1152,13 +1116,15 @@ void fn_1_45F8(omObjData* arg0) { if (lbl_1_bss_38 != 9) { if (lbl_1_bss_38 < 9) { HuAudSStreamPlay(1); - } else { + } + else { HuAudSStreamPlay(1); } if (lbl_1_bss_38 < 4 && sp14[lbl_1_bss_38]->unk04 != -1) { GWPlayerCoinWinSet(sp14[lbl_1_bss_38]->unk04, 10); } - } else if (lbl_1_bss_38 == 9) { + } + else if (lbl_1_bss_38 == 9) { HuAudSStreamPlay(4); } } @@ -1175,8 +1141,9 @@ void fn_1_45F8(omObjData* arg0) { } } -void fn_1_53A0(omObjData* arg0) { - StructBss330Data* sp50[9]; +void fn_1_53A0(omObjData *arg0) +{ + StructBss330Data *sp50[9]; s32 i; for (i = 0; i < 9; i++) { @@ -1191,10 +1158,7 @@ void fn_1_53A0(omObjData* arg0) { lbl_1_bss_51C[i].unk04 = i / 3; lbl_1_bss_51C[i].unk08 = 0.0f; lbl_1_bss_51C[i].unk0C = 1; - Hu3DModelPosSet(lbl_1_bss_32C->model[i + 1], - 500.0 * (lbl_1_bss_51C[i].unk00 - 1), - -16.666666f, - 500.0 * (lbl_1_bss_51C[i].unk04 - 1)); + Hu3DModelPosSet(lbl_1_bss_32C->model[i + 1], 500.0 * (lbl_1_bss_51C[i].unk00 - 1), -16.666666f, 500.0 * (lbl_1_bss_51C[i].unk04 - 1)); Hu3DModelScaleSet(lbl_1_bss_32C->model[i + 1], 1.6666666f, 1.6666666f, 1.6666666f); Hu3DModelAttrSet(arg0->model[i + 1], HU3D_MOTATTR_PAUSE); Hu3DModelShadowMapSet(arg0->model[i + 1]); @@ -1215,22 +1179,13 @@ void fn_1_53A0(omObjData* arg0) { arg0->func = fn_1_3264; } -s32 lbl_1_data_1E4[] = { - DATA_MAKE_NUM(DATADIR_M458, 19), - DATA_MAKE_NUM(DATADIR_M458, 20), - DATA_MAKE_NUM(DATADIR_M458, 21), - DATA_MAKE_NUM(DATADIR_M458, 22), - DATA_MAKE_NUM(DATADIR_M458, 23), - DATA_MAKE_NUM(DATADIR_M458, 24), - DATA_MAKE_NUM(DATADIR_M458, 25), - DATA_MAKE_NUM(DATADIR_M458, 26), - DATA_MAKE_NUM(DATADIR_M458, 27), - DATA_MAKE_NUM(DATADIR_M458, 28), - DATA_MAKE_NUM(DATADIR_M458, 29) -}; +s32 lbl_1_data_1E4[] = { DATA_MAKE_NUM(DATADIR_M458, 19), DATA_MAKE_NUM(DATADIR_M458, 20), DATA_MAKE_NUM(DATADIR_M458, 21), + DATA_MAKE_NUM(DATADIR_M458, 22), DATA_MAKE_NUM(DATADIR_M458, 23), DATA_MAKE_NUM(DATADIR_M458, 24), DATA_MAKE_NUM(DATADIR_M458, 25), + DATA_MAKE_NUM(DATADIR_M458, 26), DATA_MAKE_NUM(DATADIR_M458, 27), DATA_MAKE_NUM(DATADIR_M458, 28), DATA_MAKE_NUM(DATADIR_M458, 29) }; -void fn_1_5850(omObjData* arg0) { - StructBss330Data* temp_r31; +void fn_1_5850(omObjData *arg0) +{ + StructBss330Data *temp_r31; s32 sp10[] = { 0, 1, 2, 3 }; s32 var_r25; s32 var_r28; @@ -1246,13 +1201,15 @@ void fn_1_5850(omObjData* arg0) { for (i = 0; i <= temp_r31->unk00 - 4; i++) { do { var_r28++; - } while (GWPlayerCfg[0].character == var_r28 || GWPlayerCfg[1].character == var_r28 || GWPlayerCfg[2].character == var_r28 || GWPlayerCfg[3].character == var_r28); + } while (GWPlayerCfg[0].character == var_r28 || GWPlayerCfg[1].character == var_r28 || GWPlayerCfg[2].character == var_r28 + || GWPlayerCfg[3].character == var_r28); } temp_r31->unk08 = (var_r28 == 8) ? -1 : var_r28; temp_r31->unk0C = -1; temp_r31->unk04 = -1; temp_r31->unk10 = 0; - } else { + } + else { for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { if (i == GWPlayerCfg[j].group) { @@ -1277,13 +1234,15 @@ void fn_1_5850(omObjData* arg0) { temp_r31->unk48 = -1; if (temp_r31->unk08 != -1) { arg0->model[0] = CharModelCreate(temp_r31->unk08, 4); - } else { + } + else { arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_BKOOPA, 7)); } omSetTra(arg0, 0.0f, temp_r31->unk00 == 0 ? 0 : 300, 0.0f); if (temp_r31->unk08 != -1) { omSetSca(arg0, 2.5f, 2.5f, 2.5f); - } else { + } + else { omSetSca(arg0, 2.0f, 2.0f, 2.0f); } for (i = 0; i < 9; i++) { @@ -1291,7 +1250,8 @@ void fn_1_5850(omObjData* arg0) { if (temp_r31->unk00 < 4 || (i != 1 && i != 2)) { arg0->motion[i] = CharModelMotionCreate(temp_r31->unk08, lbl_1_data_48[i] + (lbl_1_data_6C[i] ? temp_r31->unk08 : 0)); } - } else if (lbl_1_data_90[i] != 0) { + } + else if (lbl_1_data_90[i] != 0) { arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_90[i]); } } @@ -1314,7 +1274,8 @@ void fn_1_5850(omObjData* arg0) { for (i = 0; i < 9; i++) { if (temp_r31->unk00 == 0) { arg0->model[i + 2] = Hu3DModelCreateFile(lbl_1_data_1E4[i]); - } else { + } + else { arg0->model[i + 2] = Hu3DModelLink(lbl_1_bss_330[0]->model[i + 2]); } Hu3DMotionTimeSet(arg0->model[i + 2], 10.0f); @@ -1328,7 +1289,8 @@ void fn_1_5850(omObjData* arg0) { arg0->func = fn_1_4C8; } -void fn_1_60A4(omObjData* arg0) { +void fn_1_60A4(omObjData *arg0) +{ lbl_1_bss_50 = 1000; lbl_1_bss_54 = 0; lbl_1_bss_48 = 0; @@ -1338,8 +1300,9 @@ void fn_1_60A4(omObjData* arg0) { arg0->func = fn_1_45F8; } -void ObjectSetup(void) { - omObjData* var_r30; +void ObjectSetup(void) +{ + omObjData *var_r30; s32 i; OSReport("******* M463 ObjectSetup *********\n"); @@ -1396,9 +1359,10 @@ void ObjectSetup(void) { lbl_1_bss_358 = omAddObjEx(lbl_1_bss_40, 103, 0, 0, -1, fn_1_60A4); } -void fn_1_659C(omObjData* arg0) { - StructBss330Data* spC[9]; - void* sp8; +void fn_1_659C(omObjData *arg0) +{ + StructBss330Data *spC[9]; + void *sp8; s32 var_r31; s32 var_r30; diff --git a/src/REL/modeltestDll/main.c b/src/REL/modeltestDll/main.c index b2887739..2b99a635 100644 --- a/src/REL/modeltestDll/main.c +++ b/src/REL/modeltestDll/main.c @@ -308,8 +308,7 @@ void fn_1_29C(omObjData *arg0) lbl_1_bss_864[var_r31] = Hu3DParManCreate(temp_r28, 0x1F4, &lbl_1_data_168[0]); Hu3DParManAttrSet(lbl_1_bss_864[var_r31], 0x864); Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_864[var_r31]), 1U); - Hu3DParManPosSet( - lbl_1_bss_864[var_r31], (100.0 * sind(36.0f * var_r31)), 0.0f, 100.0 * cosd(36.0f * var_r31)); + Hu3DParManPosSet(lbl_1_bss_864[var_r31], (100.0 * sind(36.0f * var_r31)), 0.0f, 100.0 * cosd(36.0f * var_r31)); Hu3DParManRotSet(lbl_1_bss_864[var_r31], -90.0f, 0.0f, 0.0f); } @@ -596,10 +595,10 @@ void fn_1_20F4(void) Hu3DModelObjMtxGet(temp_r3, lbl_1_data_D8[(var_r29 * 2) + 1], spC0); Hu3DMtxTransGet(spC0, &sp18); - PSMTXInverse(sp30, sp60); + MTXInverse(sp30, sp60); Hu3DModelObjMtxGet(temp_r3, lbl_1_data_D8[(var_r29 * 2) + 1], spC0); Hu3DMtxTransGet(spC0, &sp18); - PSMTXMultVec(sp60, &sp18, &sp18); + MTXMultVec(sp60, &sp18, &sp18); temp_f27 = atan2d(sp18.z, sp18.x); temp_r31 = &lbl_1_bss_40[var_r29 * 2]; @@ -654,7 +653,7 @@ void fn_1_28F8(Point3d *arg0, Point3d *arg1) cam = &Hu3DCamera[0]; C_MTXLookAt(sp18, &cam->pos, &cam->up, &cam->target); - PSMTXMultVec(sp18, arg0, &spC); + MTXMultVec(sp18, arg0, &spC); temp_f31 = (1.2f * (spC.z * (sind(cam->fov / 2) / (cosd(cam->fov / 2))))); temp_f30 = (spC.z * (sind(cam->fov / 2) / (cosd(cam->fov / 2)))); @@ -795,10 +794,10 @@ void fn_1_2B68(ModelData *mdl, Mtx arg1) GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); GXSetAlphaCompare(GX_GEQUAL, 1U, GX_AOP_AND, GX_GEQUAL, 1U); GXSetZCompLoc(0U); - PSMTXIdentity(arg1); + MTXIdentity(arg1); GXLoadPosMtxImm(arg1, 0U); - PSMTXInvXpose(arg1, sp90); + MTXInvXpose(arg1, sp90); GXLoadNrmMtxImm(sp90, 0); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); @@ -812,7 +811,7 @@ void fn_1_2B68(ModelData *mdl, Mtx arg1) GXLoadTexObj(&sp30, GX_TEXMAP0); GXSetNumIndStages(1U); - PSMTXScale(sp150, 0.1f, 0.1f, 0.0f); + MTXScale(sp150, 0.1f, 0.1f, 0.0f); sp18[0][0] = sp150[0][0]; sp18[0][1] = sp150[0][1]; sp18[0][2] = 0.0f; @@ -820,12 +819,12 @@ void fn_1_2B68(ModelData *mdl, Mtx arg1) sp18[1][1] = sp150[1][1]; sp18[1][2] = 0.0f; - PSMTXRotRad(spF0, 0x58, -1.5707964f); + MTXRotRad(spF0, 0x58, -1.5707964f); mtxRot(spF0, 0.0f, 0.0f, 0.0f); temp_f31 = 0.0015625f; - PSMTXScale(sp120, temp_f31, temp_f31, temp_f31); - PSMTXConcat(sp120, spF0, sp150); - PSMTXTrans(spC0, 0.5f, 0.0f, 0.5f); + MTXScale(sp120, temp_f31, temp_f31, temp_f31); + MTXConcat(sp120, spF0, sp150); + MTXTrans(spC0, 0.5f, 0.0f, 0.5f); GXLoadTexMtxImm(sp150, 0x1EU, GX_MTX2x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1EU, 0U, 0x7DU); GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP1); diff --git a/src/REL/w01Dll/main.c b/src/REL/w01Dll/main.c index 350880e2..6cf2beb7 100755 --- a/src/REL/w01Dll/main.c +++ b/src/REL/w01Dll/main.c @@ -1,6 +1,20 @@ -#include "REL/w01Dll.h" +#include "game/board/main.h" #include "REL/board_executor.h" +#include "REL/w01Dll.h" #include "game/audio.h" +#include "game/board/audio.h" +#include "game/board/boo_house.h" +#include "game/board/com.h" +#include "game/board/lottery.h" +#include "game/board/map_object.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/shop.h" +#include "game/board/space.h" +#include "game/board/star.h" +#include "game/board/ui.h" +#include "game/board/view.h" +#include "game/board/window.h" #include "game/chrman.h" #include "game/data.h" #include "game/gamework_data.h" @@ -13,20 +27,6 @@ #include "game/process.h" #include "game/window.h" #include "game/wipe.h" -#include "game/board/audio.h" -#include "game/board/boo_house.h" -#include "game/board/com.h" -#include "game/board/lottery.h" -#include "game/board/main.h" -#include "game/board/model.h" -#include "game/board/player.h" -#include "game/board/shop.h" -#include "game/board/space.h" -#include "game/board/star.h" -#include "game/board/ui.h" -#include "game/board/view.h" -#include "game/board/window.h" -#include "game/board/map_object.h" #include "dolphin.h" #include "ext_math.h" @@ -162,42 +162,40 @@ static void fn_1_9920(omObjData *arg0); static void fn_1_9A24(Bss20Work *arg0); static void fn_1_9BBC(Bss20Work *arg0); - -static BoardMapObject lbl_1_data_0[MAPOBJ_MAX] = { - { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 8) }, - { { 0.0f, 700.0f, 300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 9) }, - { { -2025.0f, 100.0f, 1950.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, - { { 1725.0f, 200.0f, -1650.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, - { { 2757.974f, 200.0f, -536.781f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, - { { -2750.0f, 300.0f, -2150.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 12) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 13) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 14) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 15) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 17) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, - { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 21) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 22) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 23) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 24) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 25) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 26) }, - { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 27) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, - { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) } -}; +static BoardMapObject lbl_1_data_0[MAPOBJ_MAX] + = { { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 8) }, + { { 0.0f, 700.0f, 300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 9) }, + { { -2025.0f, 100.0f, 1950.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { 1725.0f, 200.0f, -1650.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { 2757.974f, 200.0f, -536.781f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { -2750.0f, 300.0f, -2150.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 12) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 13) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 14) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 15) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 16) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 17) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, + { { -2550.0f, 300.0f, -2250.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 18) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 21) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 22) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 23) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 24) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 25) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 26) }, + { { 3000.0f, 200.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 27) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { 1200.0f, 0.0f, 1200.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 3) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, + { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) } }; s16 lbl_1_bss_6C4[MAPOBJ_MAX]; @@ -249,23 +247,18 @@ static s16 lbl_1_data_52C = -1; static s16 lbl_1_data_52E = -1; static s16 lbl_1_data_530 = -1; -static s32 lbl_1_data_534[] = { - DATA_MAKE_NUM(DATADIR_W01, 30), - -1 -}; +static s32 lbl_1_data_534[] = { DATA_MAKE_NUM(DATADIR_W01, 30), -1 }; -static s32 lbl_1_data_53C[] = { - DATA_MAKE_NUM(DATADIR_BGUEST, 1), - -1 -}; +static s32 lbl_1_data_53C[] = { DATA_MAKE_NUM(DATADIR_BGUEST, 1), -1 }; -void BoardCreate(void) { +void BoardCreate(void) +{ BoardMapObject *temp_r30; s32 sp8; s32 i; sp8 = GWBoardGet(); - lbl_1_bss_0 = (UnkBoardDataStruct*) GWSystem.board_data; + lbl_1_bss_0 = (UnkBoardDataStruct *)GWSystem.board_data; BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W01, 0)); lbl_1_data_528 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 1), NULL, 0); fn_8006DDE8(lbl_1_data_528, -1.0f); @@ -289,7 +282,8 @@ void BoardCreate(void) { if (temp_r30->data_num != -1) { if (i == 2 || i == 3 || i == 4 || i == 5) { lbl_1_bss_6C0 = lbl_1_data_53C; - } else { + } + else { lbl_1_bss_6C0 = NULL; } lbl_1_bss_6C4[i] = BoardModelCreate(temp_r30->data_num, lbl_1_bss_6C0, 0); @@ -317,7 +311,8 @@ void BoardCreate(void) { BoardJunctionMaskSet(0x3000); } -void BoardDestroy(void) { +void BoardDestroy(void) +{ s32 i; fn_1_4864(); @@ -351,17 +346,18 @@ void BoardDestroy(void) { BoardSpaceDestroy(); } -static void fn_1_730(void) { +static void fn_1_730(void) +{ s16 var_r31; var_r31 = BoardModelIDGet(lbl_1_data_528); Hu3DModelLightInfoSet(var_r31, 1); } -static void fn_1_774(void) { -} +static void fn_1_774(void) { } -static s32 fn_1_778(void) { +static s32 fn_1_778(void) +{ s32 temp_r31; s32 temp_r30; u32 temp_r29; @@ -371,12 +367,14 @@ static s32 fn_1_778(void) { temp_r29 = BoardSpaceFlagGet(0, temp_r30); if (temp_r29 & 0x800) { fn_1_77EC(temp_r31, temp_r30); - } else if (temp_r29 & 0x400) { + } + else if (temp_r29 & 0x400) { fn_1_7528(temp_r31, temp_r30); } } -static s32 fn_1_814(void) { +static s32 fn_1_814(void) +{ s32 temp_r27; s32 var_r30; s32 var_r29; @@ -394,7 +392,8 @@ static s32 fn_1_814(void) { if (lbl_1_bss_0->unk00_field0 != 0) { return 0; } - } else if (temp_r31->flag & 0x1000) { + } + else if (temp_r31->flag & 0x1000) { if (lbl_1_bss_0->unk00_field0 != 1) { return 0; } @@ -410,7 +409,8 @@ static s32 fn_1_814(void) { var_r29 = 0; var_r26 = temp_r31->link[var_r30]; break; - } else if (temp_r28->flag & 0x4000) { + } + else if (temp_r28->flag & 0x4000) { var_r29 = 1; var_r26 = temp_r31->link[var_r30]; break; @@ -424,7 +424,8 @@ static s32 fn_1_814(void) { return 0; } -static void fn_1_9E8(void) { +static void fn_1_9E8(void) +{ BoardModelVisibilitySet(lbl_1_bss_6C4[6], 1); BoardModelVisibilitySet(lbl_1_bss_6C4[7], 0); BoardModelVisibilitySet(lbl_1_bss_6C4[8], 0); @@ -459,10 +460,10 @@ static void fn_1_9E8(void) { BoardModelHookSet(lbl_1_bss_6C4[21], "m_goraund_01-flag1", lbl_1_bss_6C4[22]); } -static void fn_1_D00(void) { -} +static void fn_1_D00(void) { } -static void fn_1_D04(void) { +static void fn_1_D04(void) +{ Vec sp3C; Vec sp30; Vec sp24; @@ -526,7 +527,8 @@ static void fn_1_D04(void) { if (GWPlayer[temp_r30].com) { if (var_r26 != 0) { BoardComKeySetLeft(); - } else { + } + else { BoardComKeySetRight(); } } @@ -578,13 +580,15 @@ static void fn_1_D04(void) { HuPrcEnd(); } -static void fn_1_1254(void) { +static void fn_1_1254(void) +{ BoardWinKill(); CharModelDataClose(-1); lbl_1_bss_4 = NULL; } -static void fn_1_128C(void) { +static void fn_1_128C(void) +{ lbl_1_bss_4 = HuPrcChildCreate(fn_1_D04, 0x2003, 0x2000, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_4, fn_1_1254); while (lbl_1_bss_4) { @@ -592,7 +596,8 @@ static void fn_1_128C(void) { } } -static void fn_1_130C(void) { +static void fn_1_130C(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -644,7 +649,8 @@ static void fn_1_130C(void) { BoardPlayerMotionStart(temp_r31, 1, 0x40000001); } -static s32 fn_1_157C(void) { +static s32 fn_1_157C(void) +{ s32 temp_r31; s16 temp_curr; @@ -653,23 +659,27 @@ static s32 fn_1_157C(void) { BoardRollDispSet(0); if (temp_r31 == 0x200000) { fn_1_130C(); - } else if (temp_r31 == 0x400000) { + } + else if (temp_r31 == 0x400000) { fn_1_128C(); } BoardRollDispSet(1); } -static void fn_1_1670(void) { +static void fn_1_1670(void) +{ if (lbl_1_bss_0->unk00_field0 == 0) { BoardModelVisibilitySet(lbl_1_bss_6C4[2], 1); BoardModelVisibilitySet(lbl_1_bss_6C4[3], 0); - } else { + } + else { BoardModelVisibilitySet(lbl_1_bss_6C4[2], 0); BoardModelVisibilitySet(lbl_1_bss_6C4[3], 1); } } -static void fn_1_1700(void) { +static void fn_1_1700(void) +{ Vec sp8; Mtx sp14; @@ -683,7 +693,8 @@ static void fn_1_1700(void) { BoardSpaceFlagPosGet(1, 0x2000, &sp8); BoardModelMotionTimeSet(lbl_1_bss_6AE, lbl_1_bss_644); lbl_1_bss_63C = -90.0f; - } else { + } + else { BoardSpaceFlagPosGet(1, 0x1000, &sp8); BoardModelMotionTimeSet(lbl_1_bss_6AE, 0.0f); lbl_1_bss_63C = 90.0f; @@ -694,13 +705,14 @@ static void fn_1_1700(void) { BoardModelExistDupe(lbl_1_bss_6C4[0], 1); BoardModelExistDupe(lbl_1_bss_6C4[1], 1); fn_8006DDE8(lbl_1_bss_6C4[1], 500.0f); - PSMTXIdentity(sp14); + MTXIdentity(sp14); BoardModelMtxSet(lbl_1_bss_6C4[0], &sp14); fn_1_1670(); } } -static void fn_1_1990(void) { +static void fn_1_1990(void) +{ Vec sp10; float var_f31; s32 var_r29; @@ -715,7 +727,8 @@ static void fn_1_1990(void) { temp_r31 = BoardSpaceGet(1, var_r29); if (lbl_1_bss_0->unk00_field0 == 0) { var_r30 = temp_r31->link[0]; - } else { + } + else { BoardSpaceLinkTargetListGet(1, var_r29, sp8); var_r30 = sp8[0]; } @@ -736,18 +749,21 @@ static void fn_1_1990(void) { } if (temp_r31->flag & 8) { lbl_1_bss_6B3 = 1; - } else { + } + else { lbl_1_bss_6B3 = 0; } } -static void fn_1_1AD8(BoardCameraData *camera) { +static void fn_1_1AD8(BoardCameraData *camera) +{ camera->pos = lbl_1_bss_630; camera->up = lbl_1_bss_624; camera->target = lbl_1_bss_618; } -static void fn_1_1B3C(void) { +static void fn_1_1B3C(void) +{ Vec sp3C; Vec sp30; Vec sp24; @@ -763,25 +779,28 @@ static void fn_1_1B3C(void) { sp24 = lbl_1_bss_648; spC = lbl_1_bss_654; BoardMTXCalcLookAt(sp48, &spC, &sp18, &sp24); - PSMTXTranspose(sp48, lbl_1_bss_678); - PSMTXRotRad(sp48, 'z', MTXDegToRad(lbl_1_bss_660.z)); - PSMTXConcat(lbl_1_bss_678, sp48, lbl_1_bss_678); - } else { + MTXTranspose(sp48, lbl_1_bss_678); + MTXRotRad(sp48, 'z', MTXDegToRad(lbl_1_bss_660.z)); + MTXConcat(lbl_1_bss_678, sp48, lbl_1_bss_678); + } + else { if (sp30.z != 0.0f || sp30.x != 0.0f) { lbl_1_bss_660.y = atan2d(sp30.x, sp30.z); lbl_1_bss_660.x = -atan2d(sp30.y, VECMagXZ(&sp30)); - } else { + } + else { lbl_1_bss_660.x = lbl_1_bss_660.y = 0.0f; } - PSMTXRotRad(lbl_1_bss_678, 'z', MTXDegToRad(lbl_1_bss_660.z)); - PSMTXRotRad(sp48, 'x', MTXDegToRad(lbl_1_bss_660.x)); - PSMTXConcat(sp48, lbl_1_bss_678, lbl_1_bss_678); - PSMTXRotRad(sp48, 'y', MTXDegToRad(lbl_1_bss_660.y)); - PSMTXConcat(sp48, lbl_1_bss_678, lbl_1_bss_678); + MTXRotRad(lbl_1_bss_678, 'z', MTXDegToRad(lbl_1_bss_660.z)); + MTXRotRad(sp48, 'x', MTXDegToRad(lbl_1_bss_660.x)); + MTXConcat(sp48, lbl_1_bss_678, lbl_1_bss_678); + MTXRotRad(sp48, 'y', MTXDegToRad(lbl_1_bss_660.y)); + MTXConcat(sp48, lbl_1_bss_678, lbl_1_bss_678); } } -static void fn_1_1EE4(void) { +static void fn_1_1EE4(void) +{ Bss10Work *temp_r31; if (lbl_1_bss_10) { @@ -790,7 +809,8 @@ static void fn_1_1EE4(void) { } } -static void fn_1_1F2C(omObjData *arg0) { +static void fn_1_1F2C(omObjData *arg0) +{ Bss10Work *temp_r31 = OM_GET_WORK_PTR(arg0, Bss10Work); if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { @@ -801,7 +821,8 @@ static void fn_1_1F2C(omObjData *arg0) { fn_1_1FA4(); } -static void fn_1_1FA4(void) { +static void fn_1_1FA4(void) +{ Vec sp18; Vec spC; float temp_f28; @@ -818,7 +839,8 @@ static void fn_1_1FA4(void) { if (spC.x != 0.0f || spC.z != 0.0f) { temp_f29 = atan2f(spC.y, VECMagXZ(&spC)); temp_f28 = atan2f(-spC.x, -spC.z); - } else { + } + else { temp_f29 = temp_f28 = 0.0f; return; } @@ -830,7 +852,8 @@ static void fn_1_1FA4(void) { BoardModelPosGet(lbl_1_bss_6C4[1], &sp18); if (lbl_1_bss_0->unk00_field0 == 0) { var_f27 = -2500.0f; - } else { + } + else { var_f27 = 2500.0f; } sp18.x = sp18.x + var_f27 * sin(1.4137166738510132); // TODO: should be sind(81) @@ -839,7 +862,8 @@ static void fn_1_1FA4(void) { VECSubtract(&sp18, &lbl_1_bss_630, &spC); VECScale(&spC, &spC, lbl_1_bss_66C); VECAdd(&spC, &lbl_1_bss_630, &lbl_1_bss_630); - } else { + } + else { if (lbl_1_bss_66C < 0.08f) { lbl_1_bss_66C += 0.00066666666f; } @@ -853,7 +877,8 @@ static void fn_1_1FA4(void) { } } -static float fn_1_2524(void) { +static float fn_1_2524(void) +{ Vec sp24; Vec sp18; Vec spC; @@ -883,10 +908,12 @@ static float fn_1_2524(void) { var_f30 = atan2d(spC.x, spC.z); if (var_f30 > 0.0f) { var_f30 = 45.0f; - } else { + } + else { var_f30 = -45.0f; } - } else { + } + else { var_r29 = GWPlayer[lbl_1_bss_6B4].port; sp8 = HuPadStkX[var_r29]; OSs16tof32(&sp8, &var_f30); @@ -895,7 +922,8 @@ static float fn_1_2524(void) { return var_f30; } -static void fn_1_276C(void) { +static void fn_1_276C(void) +{ Vec sp58; Vec sp40; Vec sp34; @@ -916,16 +944,19 @@ static void fn_1_276C(void) { if (lbl_1_bss_660.z > 22.5f) { BoardPlayerMotionStart(lbl_1_bss_6B4, lbl_1_bss_5CC[1], 0); BoardPlayerMotionTimeSet(lbl_1_bss_6B4, temp_f26); - } else if (lbl_1_bss_660.z < -22.5f) { + } + else if (lbl_1_bss_660.z < -22.5f) { BoardPlayerMotionStart(lbl_1_bss_6B4, lbl_1_bss_5CC[1], 0); BoardPlayerMotionTimeSet(lbl_1_bss_6B4, temp_f26); - } else { + } + else { BoardPlayerMotionShiftSet(lbl_1_bss_6B4, lbl_1_bss_5CC[0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); } fn_1_2F18(); } -static void fn_1_2F18(void) { +static void fn_1_2F18(void) +{ Vec sp3C; Vec sp30; Vec sp24; @@ -948,16 +979,17 @@ static void fn_1_2F18(void) { if (sp18.z != 0.0f || sp18.x != 0.0f) { sp24.y = atan2d(sp18.x, sp18.z); sp24.x = -atan2d(sp18.y, VECMagXZ(&sp18)); - } else { + } + else { sp24.x = sp24.y = 0.0f; } - PSMTXTrans(spD8, 0.0f, 180.0f, 0.0f); - PSMTXRotRad(spA8, 'x', MTXDegToRad(sp24.x)); - PSMTXRotRad(sp78, 'y', MTXDegToRad(sp24.y)); - PSMTXRotRad(sp48, 'z', MTXDegToRad(var_f29)); - PSMTXConcat(spA8, sp48, sp48); - PSMTXConcat(sp78, sp48, sp48); - PSMTXConcat(sp48, spD8, spD8); + MTXTrans(spD8, 0.0f, 180.0f, 0.0f); + MTXRotRad(spA8, 'x', MTXDegToRad(sp24.x)); + MTXRotRad(sp78, 'y', MTXDegToRad(sp24.y)); + MTXRotRad(sp48, 'z', MTXDegToRad(var_f29)); + MTXConcat(spA8, sp48, sp48); + MTXConcat(sp78, sp48, sp48); + MTXConcat(sp48, spD8, spD8); sp30.x = spD8[0][3]; sp30.y = spD8[1][3]; sp30.z = spD8[2][3]; @@ -984,7 +1016,8 @@ static void fn_1_2F18(void) { static s16 lbl_1_data_580 = -1; -static void fn_1_3350(void) { +static void fn_1_3350(void) +{ Vec sp8; s16 temp_r3; ModelData *temp_r30; @@ -993,7 +1026,8 @@ static void fn_1_3350(void) { lbl_1_bss_674 += 0.002f; if (lbl_1_bss_670 > 0.18f) { lbl_1_bss_670 = 0.18f; - } else if (lbl_1_bss_670 < 0.18f) { + } + else if (lbl_1_bss_670 < 0.18f) { lbl_1_bss_670 += lbl_1_bss_674; } temp_r3 = BoardModelIDGet(lbl_1_bss_6AE); @@ -1008,18 +1042,14 @@ static void fn_1_3350(void) { lbl_1_bss_640 += VECMag(&sp8); } -static s32 lbl_1_data_594[8][2] = { - { DATA_MAKE_NUM(DATADIR_W01, 34), DATA_MAKE_NUM(DATADIR_W01, 42) }, - { DATA_MAKE_NUM(DATADIR_W01, 35), DATA_MAKE_NUM(DATADIR_W01, 43) }, - { DATA_MAKE_NUM(DATADIR_W01, 36), DATA_MAKE_NUM(DATADIR_W01, 44) }, - { DATA_MAKE_NUM(DATADIR_W01, 37), DATA_MAKE_NUM(DATADIR_W01, 45) }, - { DATA_MAKE_NUM(DATADIR_W01, 38), DATA_MAKE_NUM(DATADIR_W01, 46) }, - { DATA_MAKE_NUM(DATADIR_W01, 39), DATA_MAKE_NUM(DATADIR_W01, 47) }, - { DATA_MAKE_NUM(DATADIR_W01, 40), DATA_MAKE_NUM(DATADIR_W01, 48) }, - { DATA_MAKE_NUM(DATADIR_W01, 41), DATA_MAKE_NUM(DATADIR_W01, 49) } -}; +static s32 lbl_1_data_594[8][2] + = { { DATA_MAKE_NUM(DATADIR_W01, 34), DATA_MAKE_NUM(DATADIR_W01, 42) }, { DATA_MAKE_NUM(DATADIR_W01, 35), DATA_MAKE_NUM(DATADIR_W01, 43) }, + { DATA_MAKE_NUM(DATADIR_W01, 36), DATA_MAKE_NUM(DATADIR_W01, 44) }, { DATA_MAKE_NUM(DATADIR_W01, 37), DATA_MAKE_NUM(DATADIR_W01, 45) }, + { DATA_MAKE_NUM(DATADIR_W01, 38), DATA_MAKE_NUM(DATADIR_W01, 46) }, { DATA_MAKE_NUM(DATADIR_W01, 39), DATA_MAKE_NUM(DATADIR_W01, 47) }, + { DATA_MAKE_NUM(DATADIR_W01, 40), DATA_MAKE_NUM(DATADIR_W01, 48) }, { DATA_MAKE_NUM(DATADIR_W01, 41), DATA_MAKE_NUM(DATADIR_W01, 49) } }; -static void fn_1_3514(s32 arg0) { +static void fn_1_3514(s32 arg0) +{ s32 temp_r30; s32 i; @@ -1029,7 +1059,8 @@ static void fn_1_3514(s32 arg0) { } } -static void fn_1_35B4(s32 arg0) { +static void fn_1_35B4(s32 arg0) +{ s32 i; for (i = 0; i < 2; i++) { @@ -1038,7 +1069,8 @@ static void fn_1_35B4(s32 arg0) { } } -static void fn_1_3624(void) { +static void fn_1_3624(void) +{ Mtx sp48; Vec sp3C; Vec sp30; @@ -1075,7 +1107,8 @@ static void fn_1_3624(void) { lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x2000, &sp3C); var_r25 = BoardSpaceFlagSearch(0, 0x1000); var_f30 = -1.0f; - } else { + } + else { BoardModelMotionTimeSet(lbl_1_bss_6AE, 0.0f); lbl_1_bss_63C = 90.0f; lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x1000, &sp3C); @@ -1099,7 +1132,7 @@ static void fn_1_3624(void) { lbl_1_bss_630.x = lbl_1_bss_618.x + 1000.0 * (sind(sp30.y) * cosd(sp30.x)); lbl_1_bss_630.y = lbl_1_bss_618.y + 1000.0 * -sind(sp30.x); lbl_1_bss_630.z = lbl_1_bss_618.z + 1000.0 * (cosd(sp30.y) * cosd(sp30.x)); - PSMTXRotRad(lbl_1_bss_678, 'y', MTXDegToRad(lbl_1_bss_63C)); + MTXRotRad(lbl_1_bss_678, 'y', MTXDegToRad(lbl_1_bss_63C)); BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); BoardPlayerMtxSet(lbl_1_bss_6B4, &lbl_1_bss_678); BoardModelRotSet(lbl_1_bss_6C4[0], 0.0f, 0.0f, 0.0f); @@ -1124,16 +1157,18 @@ static void fn_1_3624(void) { BoardModelPosSetV(lbl_1_bss_6C4[0], &lbl_1_bss_654); BoardPlayerPosSetV(lbl_1_bss_6B4, &lbl_1_bss_654); if (BoardPlayerSizeGet(lbl_1_bss_6B4) != 1) { - PSMTXTrans(sp48, 0.0f, 30.0f, 0.0f); - } else { - PSMTXTrans(sp48, 0.0f, 400.0f, 250.0f); + MTXTrans(sp48, 0.0f, 30.0f, 0.0f); + } + else { + MTXTrans(sp48, 0.0f, 400.0f, 250.0f); } BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); - PSMTXConcat(lbl_1_bss_678, sp48, sp48); + MTXConcat(lbl_1_bss_678, sp48, sp48); BoardPlayerMtxSet(lbl_1_bss_6B4, &sp48); if (lbl_1_bss_0->unk00_field0 == 0) { var_f29 = -lbl_1_bss_670; - } else { + } + else { var_f29 = lbl_1_bss_670; } BoardModelMotionSpeedSet(lbl_1_bss_6AE, var_f29); @@ -1141,22 +1176,24 @@ static void fn_1_3624(void) { if (BoardModelMotionTimeGet(lbl_1_bss_6AE) <= 0.0f) { break; } - } else { + } + else { if (BoardModelMotionTimeGet(lbl_1_bss_6AE) >= lbl_1_bss_644) { break; } } HuPrcVSleep(); } - PSMTXIdentity(lbl_1_bss_678); + MTXIdentity(lbl_1_bss_678); fn_1_4864(); HuAudFXStop(temp_r19); fn_1_1EE4(); fn_1_98EC(); if (BoardPlayerSizeGet(lbl_1_bss_6B4) == 1) { - PSMTXTrans(sp48, 0.0f, 400.0f, 250.0f); - } else { - PSMTXTrans(sp48, 0.0f, 30.0f, 0.0f); + MTXTrans(sp48, 0.0f, 400.0f, 250.0f); + } + else { + MTXTrans(sp48, 0.0f, 30.0f, 0.0f); } BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); BoardPlayerMtxSet(lbl_1_bss_6B4, &sp48); @@ -1196,11 +1233,13 @@ static void fn_1_3624(void) { lbl_1_bss_6B2 = 1; } -static void fn_1_45F4(void) { +static void fn_1_45F4(void) +{ if (lbl_1_bss_6B2 != 0) { if (lbl_1_bss_0->unk00_field0 == 0) { lbl_1_bss_0->unk00_field0 = 1; - } else { + } + else { lbl_1_bss_0->unk00_field0 = 0; } lbl_1_bss_6B2 = 0; @@ -1220,7 +1259,8 @@ static void fn_1_45F4(void) { BoardStatusShowSetAll(1); } -static void fn_1_4774(void) { +static void fn_1_4774(void) +{ float sp8[2]; float var_f31; float var_f30; @@ -1234,14 +1274,16 @@ static void fn_1_4774(void) { HuWinMesSet(lbl_1_data_580, MAKE_MESSID(13, 5)); } -static void fn_1_4864(void) { +static void fn_1_4864(void) +{ if (lbl_1_data_580 != -1) { HuWinKill(lbl_1_data_580); lbl_1_data_580 = -1; } } -static s32 fn_1_48B4(void) { +static s32 fn_1_48B4(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -1286,7 +1328,8 @@ static s32 fn_1_48B4(void) { if (GWPlayer[lbl_1_bss_6B4].com) { if (BoardPlayerCoinsGet(lbl_1_bss_6B4) >= 5) { BoardComKeySetUp(); - } else { + } + else { BoardComKeySetDown(); } } @@ -1340,7 +1383,8 @@ static s32 fn_1_48B4(void) { return 0; } -static void fn_1_4E14(void) { +static void fn_1_4E14(void) +{ if (fn_1_48B4() != 0) { fn_1_3624(); fn_1_45F4(); @@ -1348,12 +1392,14 @@ static void fn_1_4E14(void) { HuPrcEnd(); } -static void fn_1_4FA8(void) { +static void fn_1_4FA8(void) +{ BoardWinKill(); lbl_1_bss_8 = NULL; } -static void fn_1_4FD8(void) { +static void fn_1_4FD8(void) +{ lbl_1_bss_6B4 = GWSystem.player_curr; BoardRollDispSet(0); if (BoardPlayerSizeGet(lbl_1_bss_6B4) == 2 || GWPlayer[lbl_1_bss_6B4].bowser_suit) { @@ -1367,7 +1413,8 @@ static void fn_1_4FD8(void) { BoardRollDispSet(1); } -static void fn_1_50D4(void) { +static void fn_1_50D4(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -1398,11 +1445,13 @@ static void fn_1_50D4(void) { } if (!(temp_r31->flag & 0x80)) { sp14 = temp_r31->pos; - } else { + } + else { if (var_r29 >= 3) { if (BoardRandFloat() < 0.5f) { var_r26 = 1; - } else { + } + else { var_r26 = 0; } var_r27 = var_r26; @@ -1426,7 +1475,8 @@ static void fn_1_50D4(void) { } } -static void fn_1_53B8(void) { +static void fn_1_53B8(void) +{ s32 i; for (i = 0; i < 24; i++) { @@ -1440,21 +1490,14 @@ static void fn_1_53B8(void) { static s32 lbl_1_data_5D4 = -1; static s32 lbl_1_data_5D8 = -1; -static s16 lbl_1_data_5DC[2][4] = { - { 24, 25, 26, 27 }, - { 29, 30, 31, 32 } -}; +static s16 lbl_1_data_5DC[2][4] = { { 24, 25, 26, 27 }, { 29, 30, 31, 32 } }; -static char *lbl_1_data_604[] = { - "chara1", "chara2", "chara3" -}; +static char *lbl_1_data_604[] = { "chara1", "chara2", "chara3" }; -static float lbl_1_data_610[2][2] = { - { 90.0f, 0.0f }, - { 0.0f, 270.0f } -}; +static float lbl_1_data_610[2][2] = { { 90.0f, 0.0f }, { 0.0f, 270.0f } }; -static void fn_1_543C(void) { +static void fn_1_543C(void) +{ float var_f31; s16 temp_r28; s16 temp_r29; @@ -1477,19 +1520,22 @@ static void fn_1_543C(void) { } if (lbl_1_bss_0->unk01[0] != 0) { var_f31 = 0.0f; - } else { + } + else { var_f31 = 90.0f; } BoardModelRotSet(lbl_1_bss_6C4[27], 0.0f, var_f31, 0.0f); if (lbl_1_bss_0->unk01[1] != 0) { var_f31 = -90.0f; - } else { + } + else { var_f31 = 0.0f; } BoardModelRotSet(lbl_1_bss_6C4[32], 0.0f, var_f31, 0.0f); } -static void fn_1_5694(s32 arg0) { +static void fn_1_5694(s32 arg0) +{ s16 temp_r29; s16 temp_r30; s16 i; @@ -1504,7 +1550,8 @@ static void fn_1_5694(s32 arg0) { BoardModelMotionSpeedSet(temp_r30, 1.0f); BoardModelAttrReset(temp_r30, 0x40000002); } - } else { + } + else { BoardModelMotionSpeedSet(temp_r29, 0.0f); BoardModelAttrSet(temp_r29, 0x40000002); for (i = 0; i < 3; i++) { @@ -1515,7 +1562,8 @@ static void fn_1_5694(s32 arg0) { } } -static void fn_1_586C(s32 arg0, s32 arg1) { +static void fn_1_586C(s32 arg0, s32 arg1) +{ lbl_1_bss_29 = arg0; lbl_1_bss_26 = arg1; BoardRollDispSet(0); @@ -1527,7 +1575,8 @@ static void fn_1_586C(s32 arg0, s32 arg1) { BoardRollDispSet(1); } -static void fn_1_592C(void) { +static void fn_1_592C(void) +{ s16 temp_r30; s16 var_r28; @@ -1536,7 +1585,8 @@ static void fn_1_592C(void) { BoardPlayerIdleSet(GWSystem.player_curr); if (lbl_1_bss_29 == 0) { var_r28 = lbl_1_bss_6C4[23]; - } else { + } + else { var_r28 = lbl_1_bss_6C4[28]; } BoardCameraTargetModelSet(var_r28); @@ -1553,11 +1603,13 @@ static void fn_1_592C(void) { HuPrcEnd(); } -static void fn_1_5B2C(void) { +static void fn_1_5B2C(void) +{ lbl_1_bss_14 = NULL; } -static void fn_1_5B40(void) { +static void fn_1_5B40(void) +{ s16 spC[] = { 27, 32 }; s16 temp_r30; s32 temp_r31; @@ -1579,11 +1631,13 @@ static void fn_1_5B40(void) { } } -static BOOL fn_1_5CD0(void) { +static BOOL fn_1_5CD0(void) +{ return lbl_1_bss_18 ? FALSE : TRUE; } -static void fn_1_5D08(void) { +static void fn_1_5D08(void) +{ Bss18Work *temp_r31; float var_f30; float var_f31; @@ -1593,7 +1647,8 @@ static void fn_1_5D08(void) { if (lbl_1_bss_29 == 0) { var_r28 = lbl_1_bss_6C4[23]; - } else { + } + else { var_r28 = lbl_1_bss_6C4[28]; } while (TRUE) { @@ -1632,12 +1687,14 @@ static void fn_1_5D08(void) { temp_r31->unk04 = var_r28; if (BoardPlayerSizeGet(GWSystem.player_curr) == 2) { temp_r31->unk00_field3 = 1; - } else { + } + else { temp_r31->unk00_field3 = 0; } } -static void fn_1_6098(omObjData *arg0) { +static void fn_1_6098(omObjData *arg0) +{ Bss18Work *temp_r31 = OM_GET_WORK_PTR(arg0, Bss18Work); s32 temp_r0; @@ -1666,7 +1723,8 @@ static void fn_1_6098(omObjData *arg0) { } } -static void fn_1_6194(Bss18Work *arg0, omObjData *arg1) { +static void fn_1_6194(Bss18Work *arg0, omObjData *arg1) +{ Mtx sp38; Vec sp2C; Vec sp20; @@ -1704,7 +1762,8 @@ static void fn_1_6194(Bss18Work *arg0, omObjData *arg1) { arg0->unk01 = 0; } -static void fn_1_63F0(Bss18Work *arg0, omObjData *arg1) { +static void fn_1_63F0(Bss18Work *arg0, omObjData *arg1) +{ Vec sp10; float temp_f29; float var_f27; @@ -1716,7 +1775,8 @@ static void fn_1_63F0(Bss18Work *arg0, omObjData *arg1) { BoardPlayerIdleSet(GWSystem.player_curr); if (GWPlayer[GWSystem.player_curr].bowser_suit) { BoardModelHookSet(arg0->unk04, lbl_1_data_604[lbl_1_bss_28], BoardBowserSuitModelGet()); - } else { + } + else { BoardModelHookSet(arg0->unk04, lbl_1_data_604[lbl_1_bss_28], BoardPlayerModelGet(GWSystem.player_curr)); } var_r24 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][lbl_1_bss_28]]; @@ -1763,7 +1823,8 @@ static void fn_1_63F0(Bss18Work *arg0, omObjData *arg1) { arg0->unk01++; } -static void fn_1_6A14(Bss18Work *arg0, omObjData *arg1) { +static void fn_1_6A14(Bss18Work *arg0, omObjData *arg1) +{ Vec sp20; Vec sp14; Vec sp8; @@ -1784,7 +1845,8 @@ static void fn_1_6A14(Bss18Work *arg0, omObjData *arg1) { arg0->unk01 = 0; } -static void fn_1_6BC0(Bss18Work *arg0, omObjData *arg1) { +static void fn_1_6BC0(Bss18Work *arg0, omObjData *arg1) +{ Vec sp14; Vec sp8; float var_f28; @@ -1831,7 +1893,8 @@ static void fn_1_6BC0(Bss18Work *arg0, omObjData *arg1) { arg0->unk01++; } -static void fn_1_6FB4(Bss18Work *arg0, omObjData *arg1) { +static void fn_1_6FB4(Bss18Work *arg0, omObjData *arg1) +{ Vec sp40; Vec sp34; Vec sp28; @@ -1864,7 +1927,8 @@ static void fn_1_6FB4(Bss18Work *arg0, omObjData *arg1) { } if (lbl_1_bss_29 == 0) { var_r24 = lbl_1_bss_0->unk01[lbl_1_bss_29] ^ 1; - } else { + } + else { var_r24 = lbl_1_bss_0->unk01[lbl_1_bss_29]; } temp_r29 = BoardSpaceGet(0, lbl_1_bss_26); @@ -1889,7 +1953,8 @@ static void fn_1_6FB4(Bss18Work *arg0, omObjData *arg1) { } } -static void fn_1_7528(s32 arg0, s32 arg1) { +static void fn_1_7528(s32 arg0, s32 arg1) +{ Vec sp30; Vec sp24; Vec sp18; @@ -1905,7 +1970,8 @@ static void fn_1_7528(s32 arg0, s32 arg1) { temp_f30 = VECDistance(&sp18, &sp30); if (temp_f31 < temp_f30) { lbl_1_bss_29 = 0; - } else { + } + else { lbl_1_bss_29 = 1; } BoardCameraTargetModelSet(lbl_1_bss_6C4[sp14[lbl_1_bss_29]]); @@ -1917,7 +1983,8 @@ static void fn_1_7528(s32 arg0, s32 arg1) { HuPrcSleep(12); } -static void fn_1_77EC(s32 arg0, s32 arg1) { +static void fn_1_77EC(s32 arg0, s32 arg1) +{ lbl_1_bss_6B4 = arg0; lbl_1_bss_6B0 = 0; lbl_1_bss_8 = HuPrcChildCreate(fn_1_7894, 0x2003, 0x2000, 0, boardMainProc); @@ -1927,7 +1994,8 @@ static void fn_1_77EC(s32 arg0, s32 arg1) { } } -static void fn_1_7894(void) { +static void fn_1_7894(void) +{ lbl_1_bss_6B1 = 1; WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 21); @@ -1939,7 +2007,8 @@ static void fn_1_7894(void) { HuPrcEnd(); } -static void fn_1_7A64(void) { +static void fn_1_7A64(void) +{ Vec sp34; Vec sp28; Vec sp1C; @@ -1969,7 +2038,8 @@ static void fn_1_7A64(void) { lbl_1_bss_63C = -90.0f; lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x2000, &sp34); var_r20 = BoardSpaceFlagSearch(1, 0x1000); - } else { + } + else { BoardModelMotionTimeSet(lbl_1_bss_6AE, 0.0f); lbl_1_bss_63C = 90.0f; lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x1000, &sp34); @@ -1977,7 +2047,7 @@ static void fn_1_7A64(void) { } lbl_1_bss_654 = sp34; BoardCameraMotionStartEx(lbl_1_bss_6C4[0], NULL, NULL, 2400.0f, -1.0f, 2); - PSMTXRotRad(lbl_1_bss_678, 'y', MTXDegToRad(lbl_1_bss_63C)); + MTXRotRad(lbl_1_bss_678, 'y', MTXDegToRad(lbl_1_bss_63C)); BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); BoardModelRotSet(lbl_1_bss_6C4[0], 0.0f, 0.0f, 0.0f); fn_1_3350(); @@ -1998,7 +2068,8 @@ static void fn_1_7A64(void) { BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); if (lbl_1_bss_0->unk00_field0 == 0) { var_f30 = -lbl_1_bss_670; - } else { + } + else { var_f30 = lbl_1_bss_670; } BoardModelMotionSpeedSet(lbl_1_bss_6AE, var_f30); @@ -2008,7 +2079,8 @@ static void fn_1_7A64(void) { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); var_r28 = 1; } - } else { + } + else { if (BoardModelMotionTimeGet(lbl_1_bss_6AE) >= lbl_1_bss_644 - 20.0f && var_r28 == 0) { WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); @@ -2026,7 +2098,7 @@ static void fn_1_7A64(void) { while (lbl_1_bss_C) { HuPrcVSleep(); } - PSMTXIdentity(lbl_1_bss_678); + MTXIdentity(lbl_1_bss_678); BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); lbl_1_bss_660.x = 0.0f; lbl_1_bss_660.z = 0.0f; @@ -2044,7 +2116,8 @@ static void fn_1_7A64(void) { static s8 lbl_1_data_633 = -1; -static void fn_1_852C(void) { +static void fn_1_852C(void) +{ BssCWork *temp_r30; BssCData *temp_r31; Vec spC; @@ -2083,7 +2156,8 @@ static void fn_1_852C(void) { if (lbl_1_bss_0->unk00_field0 == 0) { temp_r31->unk08 = -0.18f; BoardModelMotionTimeSet(temp_r31->unk04, temp_f31); - } else { + } + else { temp_r31->unk08 = 0.18f; BoardModelMotionTimeSet(temp_r31->unk04, 0.0f); } @@ -2094,13 +2168,15 @@ static void fn_1_852C(void) { BoardCameraTargetModelSet(lbl_1_bss_6C4[0]); } -static void fn_1_87AC(void) { +static void fn_1_87AC(void) +{ if (lbl_1_bss_C) { OM_GET_WORK_PTR(lbl_1_bss_C, BssCWork)->unk00_field0 = 1; } } -static void fn_1_87E0(omObjData *arg0) { +static void fn_1_87E0(omObjData *arg0) +{ BssCWork *temp_r30 = OM_GET_WORK_PTR(arg0, BssCWork); BssCData *temp_r31; s32 i; @@ -2121,7 +2197,8 @@ static void fn_1_87E0(omObjData *arg0) { temp_r31 = &temp_r30->unk04[i]; if (temp_r31->unk02 != 0) { temp_r31->unk02--; - } else { + } + else { switch (temp_r31->unk00) { case 0: fn_1_8988(temp_r31, arg0); @@ -2146,7 +2223,8 @@ static void fn_1_87E0(omObjData *arg0) { } } -static void fn_1_8988(BssCData *arg0, omObjData *arg1) { +static void fn_1_8988(BssCData *arg0, omObjData *arg1) +{ Vec sp20; Vec sp14; Vec sp8; @@ -2161,18 +2239,10 @@ static void fn_1_8988(BssCData *arg0, omObjData *arg1) { arg0->unk00 = 1; } -static s32 lbl_1_data_634[8] = { - 0x00000123, - 0x00000163, - 0x000001A3, - 0x000001E3, - 0x00000223, - 0x00000263, - 0x000002A3, - 0x000002E3 -}; +static s32 lbl_1_data_634[8] = { 0x00000123, 0x00000163, 0x000001A3, 0x000001E3, 0x00000223, 0x00000263, 0x000002A3, 0x000002E3 }; -static void fn_1_8A50(BssCData *arg0, omObjData *arg1) { +static void fn_1_8A50(BssCData *arg0, omObjData *arg1) +{ if (lbl_1_data_633 == -1) { BoardCameraTargetPlayerSet(arg0->unk01); lbl_1_data_633 = arg0->unk01; @@ -2186,7 +2256,8 @@ static void fn_1_8A50(BssCData *arg0, omObjData *arg1) { omVibrate(arg0->unk01, 12, 4, 2); } -static void fn_1_8B6C(BssCData *arg0, omObjData *arg1) { +static void fn_1_8B6C(BssCData *arg0, omObjData *arg1) +{ ModelData *temp_r29; HsfObject *var_r30; Vec sp20; @@ -2233,7 +2304,8 @@ static void fn_1_8B6C(BssCData *arg0, omObjData *arg1) { BoardModelMotionTimeSet(lbl_1_bss_6AE, temp_f30); } -static void fn_1_8DDC(BssCData *arg0, omObjData *arg1) { +static void fn_1_8DDC(BssCData *arg0, omObjData *arg1) +{ ModelData *temp_r29; HsfObject *var_r30; Vec *var_r27; @@ -2262,17 +2334,19 @@ static void fn_1_8DDC(BssCData *arg0, omObjData *arg1) { var_r27 = &arg0->unk14; var_r26 = &sp30; BoardMTXCalcLookAt(sp54, var_r26, &sp48, var_r27); - PSMTXTranspose(sp54, arg0->unk20); - } else { + MTXTranspose(sp54, arg0->unk20); + } + else { if (sp24.z != 0.0f || sp24.x != 0.0f) { sp3C.y = atan2d(sp24.x, sp24.z); sp3C.x = -atan2d(sp24.y, VECMagXZ(&sp24)); - } else { + } + else { sp3C.x = sp3C.y = 0.0f; } - PSMTXRotRad(sp54, 'x', MTXDegToRad(sp3C.x)); - PSMTXRotRad(arg0->unk20, 'y', MTXDegToRad(sp3C.y)); - PSMTXConcat(arg0->unk20, sp54, arg0->unk20); + MTXRotRad(sp54, 'x', MTXDegToRad(sp3C.x)); + MTXRotRad(arg0->unk20, 'y', MTXDegToRad(sp3C.y)); + MTXConcat(arg0->unk20, sp54, arg0->unk20); } BoardPlayerPosSetV(arg0->unk01, &sp30); BoardPlayerRotSet(arg0->unk01, 0.0f, 0.0f, 0.0f); @@ -2284,13 +2358,14 @@ static void fn_1_8DDC(BssCData *arg0, omObjData *arg1) { } } -static void fn_1_918C(BssCData *arg0, omObjData *arg1) { +static void fn_1_918C(BssCData *arg0, omObjData *arg1) +{ Vec sp20; Vec sp14; Vec sp8; s32 var_r30; - PSMTXIdentity(arg0->unk20); + MTXIdentity(arg0->unk20); var_r30 = BoardSpaceLinkFlagSearch(0, arg0->unk06, 0x40); BoardSpacePosGet(0, var_r30, &sp20); BoardPlayerPosGet(arg0->unk01, &sp14); @@ -2301,7 +2376,8 @@ static void fn_1_918C(BssCData *arg0, omObjData *arg1) { arg0->unk00 = 5; } -static void fn_1_927C(BssCData *arg0, omObjData *arg1) { +static void fn_1_927C(BssCData *arg0, omObjData *arg1) +{ s32 temp_r3; if (!GWPlayer[arg0->unk01].moving) { @@ -2313,7 +2389,8 @@ static void fn_1_927C(BssCData *arg0, omObjData *arg1) { } } -static void fn_1_932C(BssCData *arg0) { +static void fn_1_932C(BssCData *arg0) +{ BoardSpace *temp_r30; BoardSpace *var_r26; Vec sp20[2]; @@ -2340,7 +2417,8 @@ static void fn_1_932C(BssCData *arg0) { } if (lbl_1_bss_0->unk00_field0 == 0) { BoardSpaceFlagPosGet(0, 0x1000, &sp14); - } else { + } + else { BoardSpaceFlagPosGet(0, 0x2000, &sp14); } for (i = 0; i < 2; i++) { @@ -2348,12 +2426,14 @@ static void fn_1_932C(BssCData *arg0) { } if (spC[0] < spC[1]) { arg0->unk06 = sp8[0]; - } else { + } + else { arg0->unk06 = sp8[1]; } } -static s32 fn_1_94A8(BssCData *arg0) { +static s32 fn_1_94A8(BssCData *arg0) +{ Vec sp14; s16 spC[4]; float sp8; @@ -2373,7 +2453,8 @@ static s32 fn_1_94A8(BssCData *arg0) { var_r31 = BoardSpaceGet(1, var_r30); if (lbl_1_bss_0->unk00_field0 == 0) { var_r29 = var_r31->link[0]; - } else { + } + else { BoardSpaceLinkTargetListGet(1, var_r30, spC); var_r29 = spC[0]; } @@ -2389,7 +2470,8 @@ static s32 fn_1_94A8(BssCData *arg0) { if (var_r28) { var_r31 = var_r28; break; - } else { + } + else { var_r28 = var_r31; } } @@ -2398,12 +2480,14 @@ static s32 fn_1_94A8(BssCData *arg0) { } if (var_r31->flag & 8) { return 1; - } else { + } + else { return 0; } } -static void fn_1_95F4(BssCData *arg0) { +static void fn_1_95F4(BssCData *arg0) +{ HsfObject *var_r30; ModelData *temp_r29; Vec sp2C; @@ -2418,7 +2502,8 @@ static void fn_1_95F4(BssCData *arg0) { if (lbl_1_bss_0->unk00_field0 == 0) { BoardModelMotionTimeSet(arg0->unk04, temp_f30); BoardModelMotionSpeedSet(arg0->unk04, -0.18f); - } else { + } + else { BoardModelMotionTimeSet(arg0->unk04, 0.0f); BoardModelMotionSpeedSet(arg0->unk04, 0.18f); } @@ -2448,7 +2533,8 @@ static void fn_1_95F4(BssCData *arg0) { arg0->unk10 = var_f31; } -static void fn_1_97F4(void) { +static void fn_1_97F4(void) +{ Bss20Work *temp_r30; Bss20Data *var_r31; s32 i; @@ -2468,13 +2554,15 @@ static void fn_1_97F4(void) { } } -static void fn_1_98EC(void) { +static void fn_1_98EC(void) +{ if (lbl_1_bss_20) { OM_GET_WORK_PTR(lbl_1_bss_20, Bss20Work)->unk00_field0 = 1; } } -static void fn_1_9920(omObjData *arg0) { +static void fn_1_9920(omObjData *arg0) +{ Bss20Work *temp_r31; s32 i; @@ -2493,25 +2581,28 @@ static void fn_1_9920(omObjData *arg0) { } if (temp_r31->unk01 != 0) { temp_r31->unk01--; - } else { + } + else { temp_r31->unk01 = 2; fn_1_9A24(temp_r31); } fn_1_9BBC(temp_r31); } -static void fn_1_9A24(Bss20Work *arg0) { +static void fn_1_9A24(Bss20Work *arg0) +{ Bss20Data *temp_r31; Mtx sp8; s32 i; s32 j; if (lbl_1_bss_6B1 != 0) { - PSMTXTrans(sp8, 0.0f, 50.0f, -100.0f); - } else { - PSMTXTrans(sp8, 0.0f, 70.0f, -100.0f); + MTXTrans(sp8, 0.0f, 50.0f, -100.0f); } - PSMTXConcat(lbl_1_bss_678, sp8, sp8); + else { + MTXTrans(sp8, 0.0f, 70.0f, -100.0f); + } + MTXConcat(lbl_1_bss_678, sp8, sp8); for (i = 0; i < 4; i++) { for (j = 0; j < 20; j++) { temp_r31 = &arg0->unk04[j]; @@ -2532,7 +2623,8 @@ static void fn_1_9A24(Bss20Work *arg0) { } } -static void fn_1_9BBC(Bss20Work *arg0) { +static void fn_1_9BBC(Bss20Work *arg0) +{ Bss20Data *temp_r31; s32 i; @@ -2545,7 +2637,8 @@ static void fn_1_9BBC(Bss20Work *arg0) { if (temp_r31->unk00 == 0) { temp_r31->unk00 = -1; BoardModelVisibilitySet(temp_r31->unk02, 0); - } else { + } + else { if (temp_r31->unk00 <= 3) { temp_r31->unk04 = sind(30.0f * temp_r31->unk00); } diff --git a/src/REL/w03Dll/condor.c b/src/REL/w03Dll/condor.c index 4c8327dd..c42f53b3 100644 --- a/src/REL/w03Dll/condor.c +++ b/src/REL/w03Dll/condor.c @@ -482,7 +482,7 @@ void fn_1_3F5C(s32 arg0) BoardModelMotionStart(lbl_1_data_310, 2, 0x40000001); BoardModelMotionStart(lbl_1_data_310, 1, 0x40000001); BoardModelRotYSet(lbl_1_data_310, 0.0f); - PSMTXIdentity(sp38); + MTXIdentity(sp38); BoardModelMtxSet(lbl_1_data_310, &sp38); sp20.x = 0.0f; @@ -624,13 +624,13 @@ void fn_1_4424(w03StructUnk2 *arg0) sp30 = sp48; sp18 = sp54; BoardMTXCalcLookAt(spA8, &sp18, &sp24, &sp30); - PSMTXTranspose(spA8, spA8); + MTXTranspose(spA8, spA8); MTXRotDeg(spD8, 'z', temp_f30); - PSMTXTrans(sp108, 0.0f, -350.0f, 0.0f); - PSMTXConcat(spD8, sp108, sp108); - PSMTXConcat(spA8, sp108, sp108); - PSMTXTrans(sp78, sp54.x, sp54.y, sp54.z); - PSMTXConcat(sp78, sp108, sp78); + MTXTrans(sp108, 0.0f, -350.0f, 0.0f); + MTXConcat(spD8, sp108, sp108); + MTXConcat(spA8, sp108, sp108); + MTXTrans(sp78, sp54.x, sp54.y, sp54.z); + MTXConcat(sp78, sp108, sp78); Hu3DMtxTransGet(sp78, &temp_r27->unk_08); BoardModelPosSetV(temp_r27->model, &temp_r27->unk_08); BoardModelVisibilitySet(temp_r27->model, 1); @@ -1078,16 +1078,16 @@ void fn_1_5C5C(omObjData *arg0, w03UnkStruct5 *arg1) sp20.y = 1.0f; BoardMTXCalcLookAt(sp110, &sp14, &sp20, &sp8); - PSMTXTranspose(sp110, sp110); + MTXTranspose(sp110, sp110); MTXRotDeg(spE0, 'z', -arg1->unk_04); - PSMTXTrans(sp50, 0.0f, -600.0f, 0.0f); - PSMTXConcat(spE0, sp50, sp50); - PSMTXConcat(sp110, sp50, sp50); - PSMTXTrans(sp80, sp44.x, sp44.y, sp44.z); - PSMTXConcat(sp80, sp50, sp80); + MTXTrans(sp50, 0.0f, -600.0f, 0.0f); + MTXConcat(spE0, sp50, sp50); + MTXConcat(sp110, sp50, sp50); + MTXTrans(sp80, sp44.x, sp44.y, sp44.z); + MTXConcat(sp80, sp50, sp80); Hu3DMtxTransGet(sp80, &sp44); MTXRotDeg(spB0, 'y', atan2d(-sp2C.x, -sp2C.z)); - PSMTXConcat(spB0, spE0, sp110); + MTXConcat(spB0, spE0, sp110); BoardModelMtxSet(lbl_1_data_310, &sp110); BoardModelPosSetV(lbl_1_data_310, &sp44); BoardCameraRotSet(-20.0f, atan2d(sp2C.x, sp2C.z)); diff --git a/src/REL/w03Dll/mg_item.c b/src/REL/w03Dll/mg_item.c index 18332aa2..a7d31165 100644 --- a/src/REL/w03Dll/mg_item.c +++ b/src/REL/w03Dll/mg_item.c @@ -742,12 +742,12 @@ void fn_1_B0A4(s32 arg0) } if (temp_r29 == 5) { - PSMTXTrans(sp18, 0.0f, -50.0f, 0.0f); + MTXTrans(sp18, 0.0f, -50.0f, 0.0f); BoardModelMtxSet(temp_r30->unk_06[i], &sp18); } if ((temp_r29 == 6) || (temp_r29 == 7)) { - PSMTXTrans(sp18, 0.0f, 0.0f, 8.0f); + MTXTrans(sp18, 0.0f, 0.0f, 8.0f); BoardModelMtxSet(temp_r30->unk_06[i], &sp18); } } diff --git a/src/REL/w03Dll/statue.c b/src/REL/w03Dll/statue.c index de10197b..a31fc5a8 100644 --- a/src/REL/w03Dll/statue.c +++ b/src/REL/w03Dll/statue.c @@ -1,17 +1,18 @@ -#include "dolphin.h" #include "REL/executor.h" -#include "game/process.h" -#include "game/data.h" -#include "game/gamework_data.h" #include "REL/w03Dll.h" +#include "dolphin.h" #include "game/audio.h" +#include "game/board/main.h" #include "game/board/model.h" #include "game/board/player.h" #include "game/board/space.h" #include "game/board/ui.h" +#include "game/data.h" +#include "game/gamework_data.h" #include "game/hsfman.h" -#include "game/board/main.h" #include "game/objsub.h" +#include "game/process.h" + #include "ext_math.h" @@ -29,17 +30,16 @@ void fn_1_2818(void); void fn_1_2A40(void); void fn_1_2B44(void); -//data +// data s16 lbl_1_data_280 = -1; s16 lbl_1_data_282 = -1; s16 lbl_1_data_284 = -1; s16 lbl_1_data_286 = -1; s32 lbl_1_data_288 = -1; -//BSS Extern +// BSS Extern - -//BSS +// BSS s8 lbl_1_bss_6F; s8 lbl_1_bss_6E; s16 lbl_1_bss_6C; @@ -48,12 +48,13 @@ s16 lbl_1_bss_68; GXTexObj lbl_1_bss_48; char lbl_1_bss_44[4]; char lbl_1_bss_38[12]; -void* lbl_1_bss_34; +void *lbl_1_bss_34; f32 lbl_1_bss_30; s8 lbl_1_bss_2C; -Process* lbl_1_bss_28; +Process *lbl_1_bss_28; -void fn_1_12C8(void) { +void fn_1_12C8(void) +{ BoardRollDispSet(0); lbl_1_bss_28 = HuPrcChildCreate(&fn_1_1358, 0x2003, 0x2000, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_28, &fn_1_152C); @@ -65,7 +66,8 @@ void fn_1_12C8(void) { BoardRollDispSet(1); } -void fn_1_1358(void) { +void fn_1_1358(void) +{ s32 cur_player_index; s32 unkC; @@ -76,7 +78,8 @@ void fn_1_1358(void) { if ((BoardSpaceFlagGet(0, GWPlayer[cur_player_index].space_curr) & 0x2000)) { lbl_1_bss_6E = 0; lbl_1_bss_6C = lbl_1_bss_C[3]; - } else { + } + else { lbl_1_bss_6E = 1; lbl_1_bss_6C = lbl_1_bss_C[4]; } @@ -84,7 +87,8 @@ void fn_1_1358(void) { if (fn_1_1650(cur_player_index) != 0) { if (fn_1_1D1C() != 0) { fn_1_1ED4(cur_player_index); - } else { + } + else { fn_1_20E0(cur_player_index); } if (lbl_1_bss_2C) { @@ -106,7 +110,8 @@ void fn_1_1358(void) { HuPrcEnd(); } -void fn_1_152C(void) { +void fn_1_152C(void) +{ BoardConfettiKill(); if (lbl_1_data_282 != -1) { @@ -123,7 +128,8 @@ void fn_1_152C(void) { lbl_1_bss_28 = NULL; } -s32 fn_1_15E8(void) { +s32 fn_1_15E8(void) +{ BoardModelVisibilitySet(lbl_1_bss_6C, 1); if (lbl_1_data_284 != -1) { @@ -134,7 +140,8 @@ s32 fn_1_15E8(void) { return 1; } -s32 fn_1_1650(s32 arg0) { +s32 fn_1_1650(s32 arg0) +{ Point3d sp38; Point3d sp2C; Point3d sp20; @@ -144,14 +151,14 @@ s32 fn_1_1650(s32 arg0) { s32 temp2; BoardPlayerIdleSet(arg0); - + if (lbl_1_bss_0->unk2) { BoardWinCreate(0, MAKE_MESSID(22, 0), -1); BoardWinWait(); BoardWinKill(); return 0; } - + temp2 = BoardSpaceLinkFlagSearch(0, GWPlayer[arg0].space_curr, 0x02000000); BoardSpacePosGet(0, temp2, &sp38); BoardPlayerPosGet(arg0, &sp2C); @@ -170,14 +177,14 @@ s32 fn_1_1650(s32 arg0) { while (GWPlayer[arg0].moving) { HuPrcVSleep(); } - + BoardStatusShowSetAll(0); BoardPlayerMotBlendSet(arg0, 0xB4, 0xF); while (BoardPlayerMotBlendCheck(arg0) == 0) { HuPrcVSleep(); } - + BoardPlayerIdleSet(arg0); BoardWinCreate(2, MAKE_MESSID(22, 1), 2); BoardWinWait(); @@ -187,7 +194,8 @@ s32 fn_1_1650(s32 arg0) { if (GWPlayer[arg0].com) { if (BoardRandMod(0x64) > 0x32U) { BoardComKeySetLeft(); - } else { + } + else { BoardComKeySetRight(); } } @@ -200,56 +208,35 @@ s32 fn_1_1650(s32 arg0) { BoardMusStart(1, 0x19, 0x7F, 0); HuAudFXPlay(0x435); sp8.y = BoardModelRotYGet(lbl_1_bss_6C); - + while (BoardDAngleCalcRange(&sp8.y, 180.0f, 2.0f) == 0) { BoardModelRotYSet(lbl_1_bss_6C, sp8.y); HuPrcVSleep(); } - + HuAudFXPlay(0x445); BoardModelRotYSet(lbl_1_bss_6C, 180.0f); - + while (BoardMusStatusGet(1) != 0) { HuPrcVSleep(); } return 1; } -s32 lbl_1_data_290[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 98), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 98), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 98), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 98), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 98), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 98), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 98), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 98) -}; +s32 lbl_1_data_290[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 98), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 98), DATA_MAKE_NUM(DATADIR_PEACHMOT, 98), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 98), DATA_MAKE_NUM(DATADIR_WARIOMOT, 98), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 98), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 98), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 98) }; -s32 lbl_1_data_2B0[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 51), - DATA_MAKE_NUM(DATADIR_LUIGIMOT, 51), - DATA_MAKE_NUM(DATADIR_PEACHMOT, 51), - DATA_MAKE_NUM(DATADIR_YOSHIMOT, 51), - DATA_MAKE_NUM(DATADIR_WARIOMOT, 51), - DATA_MAKE_NUM(DATADIR_DONKEYMOT, 51), - DATA_MAKE_NUM(DATADIR_DAISYMOT, 51), - DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 51) -}; +s32 lbl_1_data_2B0[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 51), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 51), DATA_MAKE_NUM(DATADIR_PEACHMOT, 51), + DATA_MAKE_NUM(DATADIR_YOSHIMOT, 51), DATA_MAKE_NUM(DATADIR_WARIOMOT, 51), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 51), + DATA_MAKE_NUM(DATADIR_DAISYMOT, 51), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 51) }; -s32 lbl_1_data_2D0[] = { - 0x00000125, 0x00000165, 0x000001A5, - 0x000001E5, 0x00000225, 0x00000265, - 0x000002A5, 0x000002E5 -}; +s32 lbl_1_data_2D0[] = { 0x00000125, 0x00000165, 0x000001A5, 0x000001E5, 0x00000225, 0x00000265, 0x000002A5, 0x000002E5 }; -s32 lbl_1_data_2F0[] = { - 0x0000012E, 0x0000016E, 0x000001AE, - 0x000001EE, 0x0000022E, 0x0000026E, - 0x000002AE, 0x000002EE -}; +s32 lbl_1_data_2F0[] = { 0x0000012E, 0x0000016E, 0x000001AE, 0x000001EE, 0x0000022E, 0x0000026E, 0x000002AE, 0x000002EE }; -void fn_1_19DC(s32 arg0, s32 arg1) { +void fn_1_19DC(s32 arg0, s32 arg1) +{ s32 temp_r30; s32 temp_r5; s32 temp_r5_2; @@ -263,7 +250,8 @@ void fn_1_19DC(s32 arg0, s32 arg1) { lbl_1_bss_6A = 8; lbl_1_bss_68 = lbl_1_data_282; var_r29 = lbl_1_data_2F0[GWPlayer[arg0].character]; - } else { + } + else { lbl_1_bss_6A = 7; lbl_1_bss_68 = 1; var_r29 = lbl_1_data_2D0[GWPlayer[arg0].character]; @@ -284,11 +272,10 @@ void fn_1_19DC(s32 arg0, s32 arg1) { while (BoardPlayerMotionEndCheck(arg0) == 0) { HuPrcVSleep(); - } HuPrcSleep(60); - + if (arg1 != 0) { BoardPlayerMotionShiftSet(arg0, lbl_1_bss_68, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(9); @@ -315,7 +302,8 @@ void fn_1_19DC(s32 arg0, s32 arg1) { } } -s32 fn_1_1D1C(void) { +s32 fn_1_1D1C(void) +{ s32 sp34; s32 sp30; s32 sp2C; @@ -330,11 +318,7 @@ s32 fn_1_1D1C(void) { s32 maxTurn; s32 sp8[3] = { 70, 50, 45 }; - s32 sp14[3][3] = { - {3, 5, 22}, - {5, 10, 35}, - {5, 15, 35} - }; + s32 sp14[3][3] = { { 3, 5, 22 }, { 5, 10, 35 }, { 5, 15, 35 } }; while (BoardMusStatusGet(1) != 0) { HuPrcVSleep(); @@ -352,23 +336,26 @@ s32 fn_1_1D1C(void) { } modRand = BoardRandMod(100); - if (modRand < sp8[var_r31] ) { + if (modRand < sp8[var_r31]) { return 1; } modRand2 = BoardRandMod(100 - sp8[var_r31]); if (modRand2 < sp14[var_r31][0]) { lbl_1_bss_2C = 3; - } else if (modRand2 < sp14[var_r31][1]) { + } + else if (modRand2 < sp14[var_r31][1]) { lbl_1_bss_2C = 2; - } else { + } + else { lbl_1_bss_2C = 1; } return 0; } -void fn_1_1ED4(s32 arg0) { +void fn_1_1ED4(s32 arg0) +{ Point3d spC; f32 sp8; @@ -383,12 +370,12 @@ void fn_1_1ED4(s32 arg0) { spC.y += 700.0f; BoardConfettiCreate(&spC, 0x64, 300.0f); sp8 = BoardModelRotYGet(lbl_1_bss_6C); - + while (BoardDAngleCalcRange(&sp8, 0.0f, 30.0f) == 0) { BoardModelRotYSet(lbl_1_data_284, sp8); HuPrcVSleep(); } - + omVibrate(arg0, 0xC, 4, 2); BoardMusStart(1, 0x1A, 0x7F, 0); BoardModelRotYSet(lbl_1_data_284, 0.0f); @@ -399,7 +386,7 @@ void fn_1_1ED4(s32 arg0) { } BoardPlayerIdleSet(arg0); - + while (BoardMusStatusGet(1) != 0) { HuPrcVSleep(); } @@ -411,7 +398,8 @@ void fn_1_1ED4(s32 arg0) { BoardConfettiStop(); } -void fn_1_20E0(s32 arg0) { +void fn_1_20E0(s32 arg0) +{ Point3d sp24; Point3d sp18; Point3d spC; @@ -436,28 +424,28 @@ void fn_1_20E0(s32 arg0) { omVibrate(arg0, 0xC, 4, 2); BoardModelRotYSet(lbl_1_data_284, 0.0f); BoardModelRotYSet(lbl_1_bss_6C, 0.0f); - + while (BoardFilterFadePauseCheck() == 0) { HuPrcVSleep(); } - + BoardMusStart(1, 0x1B, 0x7F, 0); HuAudFXPlay(0x44A); fn_1_2A40(); lbl_1_bss_30 = 0.0f; - + while (lbl_1_bss_30 < 128.0f) { HuPrcVSleep(); lbl_1_bss_30 += 12.0f; } - + if (lbl_1_bss_30 > 128.0f) { lbl_1_bss_30 = 128.0f; } HuPrcSleep(40); lbl_1_bss_30 = 128.0f; - + while (lbl_1_bss_30 > 0.0f) { HuPrcVSleep(); lbl_1_bss_30 -= 12.0f; @@ -475,13 +463,13 @@ void fn_1_20E0(s32 arg0) { BoardCameraMotionStartEx(-1, NULL, NULL, 1360.0f, -1.0f, 13); BoardCameraMotionWait(); } - + BoardPlayerIdleSet(arg0); while (BoardMusStatusGet(1) != 0) { HuPrcVSleep(); } - + BoardAudSeqPause(0, 0, 1000); BoardWinCreate(2, MAKE_MESSID(22, 5), 2); BoardWinWait(); @@ -504,16 +492,16 @@ void fn_1_20E0(s32 arg0) { for (var_f31 = 100.0f; var_f31 > 0.0f; var_f31 -= 2.0f) { BoardCameraQuakeSet(0xA, var_f31); - HuPrcVSleep(); + HuPrcVSleep(); } - + BoardCameraQuakeReset(); if (lbl_1_data_288 != 0) { HuAudFXStop(lbl_1_data_288); lbl_1_data_288 = -1; } - + fn_1_2818(); omVibrate(arg0, 0xC, 0xC, 0); HuAudFXPlay(0x438); @@ -530,7 +518,8 @@ void fn_1_20E0(s32 arg0) { HuPrcSleep(0x3C); } -void fn_1_26E0(s32 arg0) { +void fn_1_26E0(s32 arg0) +{ Point3d sp20; Point3d sp14; Point3d sp8; @@ -555,11 +544,12 @@ void fn_1_26E0(s32 arg0) { BoardPlayerIdleSet(arg0); } -void fn_1_2818(void) { +void fn_1_2818(void) +{ s16 temp_r29; s16 temp_r30; s16 j; - s16 sp8[3] = {0x0002, 0x003E, 0x007A}; + s16 sp8[3] = { 0x0002, 0x003E, 0x007A }; temp_r29 = (4 - lbl_1_bss_2C) * 60; BoardModelMotionStart(lbl_1_bss_C[1], 0, 0); @@ -570,19 +560,21 @@ void fn_1_2818(void) { for (j = 0; j < ARRAY_COUNT(sp8); j++) { if (temp_r30 == sp8[j]) { HuAudFXPlay(0x446); - } + } } HuPrcVSleep(); - } else { + } + else { break; - } + } } BoardModelAttrSet(lbl_1_bss_C[1], 0x40000002); HuPrcSleep(0x3C); } -s32 fn_1_2930(s32 arg0) { +s32 fn_1_2930(s32 arg0) +{ lbl_1_bss_0->unk0--; if (lbl_1_bss_0->unk0 <= 0) { @@ -605,14 +597,16 @@ s32 fn_1_2930(s32 arg0) { return 0; } -void fn_1_2A40(void) { +void fn_1_2A40(void) +{ lbl_1_bss_30 = 0.0f; lbl_1_bss_34 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x96000, MEMORY_DEFAULT_NUM); - lbl_1_data_286 = Hu3DHookFuncCreate((void*)&fn_1_2B44); + lbl_1_data_286 = Hu3DHookFuncCreate((void *)&fn_1_2B44); Hu3DModelLayerSet(lbl_1_data_286, 3); } -void fn_1_2AC0(void) { +void fn_1_2AC0(void) +{ if (lbl_1_bss_34) { HuMemDirectFree(lbl_1_bss_34); lbl_1_bss_34 = NULL; @@ -624,15 +618,16 @@ void fn_1_2AC0(void) { } } -void fn_1_2B44(void) { +void fn_1_2B44(void) +{ Mtx44 sp50; Mtx sp20; GXColor sp14; GXColor sp10; GXColor spC; u8 sp8; - GXColor sp1C = {0xFF, 0xFF, 0xFF, 0xFF}; - GXColor sp18 = {0xFF, 0xFF, 0xFF, 0xFF}; + GXColor sp1C = { 0xFF, 0xFF, 0xFF, 0xFF }; + GXColor sp18 = { 0xFF, 0xFF, 0xFF, 0xFF }; f32 temp_f28 = 0.0f; f32 temp_f30 = 640.0f; @@ -644,7 +639,7 @@ void fn_1_2B44(void) { GXLoadTexObj(&lbl_1_bss_48, GX_TEXMAP0); C_MTXOrtho(sp50, temp_f27, temp_f29, temp_f28, temp_f30, 0.0f, 10.0f); GXSetProjection(sp50, GX_ORTHOGRAPHIC); - PSMTXIdentity(sp20); + MTXIdentity(sp20); GXLoadPosMtxImm(sp20, 0); GXSetCurrentMtx(0); GXSetViewport(0.0f, 0.0f, temp_f30, 1.0f + temp_f29, 0.0f, 1.0f); diff --git a/src/REL/w06Dll/mg_item.c b/src/REL/w06Dll/mg_item.c index 0c83a033..6313eb6d 100755 --- a/src/REL/w06Dll/mg_item.c +++ b/src/REL/w06Dll/mg_item.c @@ -1,6 +1,15 @@ #include "REL/w06Dll.h" #include "game/audio.h" +#include "game/board/audio.h" +#include "game/board/com.h" +#include "game/board/main.h" +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/space.h" +#include "game/board/ui.h" +#include "game/board/window.h" #include "game/data.h" +#include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfanim.h" #include "game/hsfman.h" @@ -10,15 +19,7 @@ #include "game/process.h" #include "game/sprite.h" #include "game/window.h" -#include "game/frand.h" -#include "game/board/audio.h" -#include "game/board/com.h" -#include "game/board/main.h" -#include "game/board/model.h" -#include "game/board/player.h" -#include "game/board/space.h" -#include "game/board/ui.h" -#include "game/board/window.h" + #include "dolphin.h" #include "ext_math.h" @@ -132,7 +133,8 @@ static s8 lbl_1_data_1AD[3] = { 0, 0, 0 }; static s16 lbl_1_data_1B0 = -1; static omObjData *lbl_1_data_1B4[3] = { NULL, NULL, NULL }; -void fn_1_D70(void) { +void fn_1_D70(void) +{ Vec sp20; Vec sp14; Vec sp8; @@ -157,7 +159,8 @@ void fn_1_D70(void) { } } -void fn_1_F6C(void) { +void fn_1_F6C(void) +{ s32 i; for (i = 0; i < 3; i++) { @@ -173,7 +176,8 @@ void fn_1_F6C(void) { } } -void fn_1_1054(void) { +void fn_1_1054(void) +{ BoardRollDispSet(0); lbl_1_bss_18 = HuPrcChildCreate(fn_1_1148, 0x2003, 0x3800, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_18, fn_1_10E4); @@ -183,7 +187,8 @@ void fn_1_1054(void) { BoardRollDispSet(1); } -static void fn_1_10E4(void) { +static void fn_1_10E4(void) +{ fn_1_43DC(); if (lbl_1_data_1A8 != -1) { HuWinKill(lbl_1_data_1A8); @@ -192,7 +197,8 @@ static void fn_1_10E4(void) { lbl_1_bss_18 = NULL; } -static void fn_1_1148(void) { +static void fn_1_1148(void) +{ s32 temp_r3; s32 temp_r31; @@ -205,7 +211,8 @@ static void fn_1_1148(void) { HuPrcEnd(); } -static void fn_1_11B0(void) { +static void fn_1_11B0(void) +{ float sp8[2]; float var_f31; float var_f30; @@ -219,7 +226,8 @@ static void fn_1_11B0(void) { HuWinMesSet(lbl_1_data_1A8, MAKE_MESSID(48, 25)); } -static s32 fn_1_12A0(s32 arg0) { +static s32 fn_1_12A0(s32 arg0) +{ Vec sp38; Vec sp2C; Vec sp20; @@ -285,7 +293,8 @@ static s32 fn_1_12A0(s32 arg0) { return 1; } -static void fn_1_15CC(s32 arg0) { +static void fn_1_15CC(s32 arg0) +{ s8 sp8[] = { 80, 50 }; s32 var_r28; s16 temp_r26; @@ -343,7 +352,8 @@ static void fn_1_15CC(s32 arg0) { BoardWinCreate(2, MAKE_MESSID(48, 41), 6); BoardWinWait(); BoardWinKill(); - } else { + } + else { for (var_r31 = 0; var_r31 < 3; var_r31++) { if (lbl_1_bss_30[var_r31] == 0) { lbl_1_bss_33 = var_r31; @@ -400,7 +410,8 @@ static void fn_1_15CC(s32 arg0) { } } -static void fn_1_1BE0(s32 arg0, s32 arg1) { +static void fn_1_1BE0(s32 arg0, s32 arg1) +{ Vec sp18; Vec spC; s16 temp_r30; @@ -420,7 +431,8 @@ static void fn_1_1BE0(s32 arg0, s32 arg1) { fn_1_2048(-1, 4); } -static void fn_1_1CB0(s32 arg0) { +static void fn_1_1CB0(s32 arg0) +{ while (!BoardModelMotionEndCheck(lbl_1_bss_3C[arg0])) { HuPrcVSleep(); } @@ -430,7 +442,8 @@ static void fn_1_1CB0(s32 arg0) { } } -static void fn_1_1D5C(s32 arg0) { +static void fn_1_1D5C(s32 arg0) +{ s8 spC[] = { 0x20, 0x40, 0x60 }; s16 sp10[] = { -100, 0, 100 }; s32 sp8; @@ -442,7 +455,8 @@ static void fn_1_1D5C(s32 arg0) { } } -static void fn_1_1E30(s32 arg0) { +static void fn_1_1E30(s32 arg0) +{ s8 spC[] = { 0x20, 0x40, 0x60 }; s16 sp10[] = { -100, 0, 100 }; s32 sp8; @@ -454,7 +468,8 @@ static void fn_1_1E30(s32 arg0) { } } -static void fn_1_1F08(s32 arg0) { +static void fn_1_1F08(s32 arg0) +{ s32 i; s32 j; @@ -477,7 +492,8 @@ static void fn_1_1F08(s32 arg0) { } } -static void fn_1_2048(s32 arg0, s32 arg1) { +static void fn_1_2048(s32 arg0, s32 arg1) +{ Data1B4Work *temp_r30; s32 i; @@ -490,7 +506,8 @@ static void fn_1_2048(s32 arg0, s32 arg1) { } } -static void fn_1_20CC(s32 arg0) { +static void fn_1_20CC(s32 arg0) +{ Data1B4Work *temp_r30; s32 i; @@ -504,7 +521,8 @@ static void fn_1_20CC(s32 arg0) { } } -static s32 fn_1_2174(s32 arg0) { +static s32 fn_1_2174(s32 arg0) +{ Data1B4Work *temp_r31; if (!lbl_1_data_1B4[arg0]) { @@ -514,7 +532,8 @@ static s32 fn_1_2174(s32 arg0) { return temp_r31->unk02; } -static s16 fn_1_21CC(s32 arg0) { +static s16 fn_1_21CC(s32 arg0) +{ Data1B4Work *temp_r31; if (!lbl_1_data_1B4[arg0]) { @@ -524,7 +543,8 @@ static s16 fn_1_21CC(s32 arg0) { return temp_r31->unk06; } -static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2) { +static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2) +{ Mtx sp18; Vec spC; omObjData *temp_r3; @@ -555,7 +575,7 @@ static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2) { temp_r3->rot.y = 0.0f; temp_r3->rot.z = 0.0f; if (arg2 == 5) { - PSMTXTrans(sp18, 0.0f, -50.0f, 0.0f); + MTXTrans(sp18, 0.0f, -50.0f, 0.0f); BoardModelMtxSet(temp_r31->unk06, &sp18); } BoardModelPosSet(temp_r31->unk06, temp_r3->trans.x, temp_r3->trans.y, temp_r3->trans.z); @@ -563,7 +583,8 @@ static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2) { BoardModelLayerSet(temp_r31->unk06, 2); } -static void fn_1_243C(omObjData *arg0) { +static void fn_1_243C(omObjData *arg0) +{ Vec sp14; Vec sp8; Data1B4Work *temp_r31; @@ -592,7 +613,8 @@ static void fn_1_243C(omObjData *arg0) { sp8.y += 200.0f; arg0->trans.y = (sp8.y - sp14.y) / 30.0f; arg0->rot.z = 0.01f; - } else { + } + else { arg0->rot.z += 0.033333335f; if (arg0->rot.z > 1.0f) { arg0->rot.z = 1.0f; @@ -617,7 +639,8 @@ static void fn_1_243C(omObjData *arg0) { BoardModelPosGet(lbl_1_bss_3C[temp_r31->unk00_field2], &sp8); arg0->trans.y = (sp8.y - sp14.y) / 30.0f; arg0->rot.z = 1.0f; - } else { + } + else { arg0->rot.z -= 0.033333335f; if (arg0->rot.z < 0.001f) { arg0->rot.z = 0.001f; @@ -644,11 +667,13 @@ static void fn_1_243C(omObjData *arg0) { BoardPlayerPosGet(temp_r31->unk00_field1, &sp8); arg0->rot.x = (sp8.x - sp14.x) / 30.0f; arg0->rot.z = (sp8.z - sp14.z) / 30.0f; - } else if (temp_r31->unk08 < 30) { + } + else if (temp_r31->unk08 < 30) { sp14.x += arg0->rot.x; sp14.z += arg0->rot.z; BoardModelPosSetV(temp_r31->unk06, &sp14); - } else { + } + else { BoardPlayerPosGet(temp_r31->unk00_field1, &sp8); arg0->trans.x = sp8.x; arg0->trans.y = sp8.y; @@ -669,13 +694,10 @@ static void fn_1_243C(omObjData *arg0) { } } -static s8 lbl_1_data_1C5[14] = { - 1, 1, 3, 3, 2, - 2, 2, 1, 2, 3, - 0, 4, 5, 0 -}; +static s8 lbl_1_data_1C5[14] = { 1, 1, 3, 3, 2, 2, 2, 1, 2, 3, 0, 4, 5, 0 }; -static s32 fn_1_2A1C(s32 arg0) { +static s32 fn_1_2A1C(s32 arg0) +{ s32 var_r29; s32 var_r28; s32 var_r30; @@ -696,24 +718,30 @@ static s32 fn_1_2A1C(s32 arg0) { if (var_r29 > var_r28) { if (var_r29 > var_r30) { var_r31 = 0; - } else if (var_r30 > var_r28) { + } + else if (var_r30 > var_r28) { var_r31 = 2; - } else { + } + else { var_r31 = 1; } - } else { + } + else { if (var_r28 > var_r30) { var_r31 = 1; - } else if (var_r30 > var_r29) { + } + else if (var_r30 > var_r29) { var_r31 = 2; - } else { + } + else { var_r31 = 0; } } return var_r31; } -static void fn_1_2B60(s32 arg0) { +static void fn_1_2B60(s32 arg0) +{ omObjData *temp_r3; Bss24Work *temp_r31; @@ -728,7 +756,8 @@ static void fn_1_2B60(s32 arg0) { temp_r31->unk02 = 1; } -static void fn_1_2C18(void) { +static void fn_1_2C18(void) +{ Bss24Work *var_r27; if (lbl_1_bss_24) { @@ -737,7 +766,8 @@ static void fn_1_2C18(void) { } } -static void fn_1_2D90(s32 arg0) { +static void fn_1_2D90(s32 arg0) +{ Bss24Work *var_r31; if (lbl_1_bss_24) { @@ -746,7 +776,8 @@ static void fn_1_2D90(s32 arg0) { } } -static s32 fn_1_2DD0(void) { +static s32 fn_1_2DD0(void) +{ Bss24Work *var_r31; if (!lbl_1_bss_24) { @@ -756,7 +787,8 @@ static s32 fn_1_2DD0(void) { return var_r31->unk01; } -static u32 fn_1_2E18(Bss24Work *arg0) { +static u32 fn_1_2E18(Bss24Work *arg0) +{ s32 temp_r31; s32 var_r30; @@ -774,7 +806,8 @@ static u32 fn_1_2E18(Bss24Work *arg0) { return var_r30; } -static void fn_1_2EF4(omObjData *arg0) { +static void fn_1_2EF4(omObjData *arg0) +{ Vec sp14; Vec sp8; float var_f30; @@ -794,12 +827,14 @@ static void fn_1_2EF4(omObjData *arg0) { } if (lbl_1_bss_30[0] != 0) { var_r25 = 1; - } else { + } + else { var_r25 = 0; } if (lbl_1_bss_30[2] != 0) { var_r26 = 1; - } else { + } + else { var_r26 = 2; } switch (temp_r30->unk01) { @@ -820,13 +855,16 @@ static void fn_1_2EF4(omObjData *arg0) { if (lbl_1_bss_30[0] == 0 && lbl_1_bss_30[1] == 0) { if (BoardRandMod(100) < 50) { var_r29 = 1; - } else { + } + else { var_r29 = 2; } - } else { + } + else { if (lbl_1_bss_30[0] == 0) { var_r29 = 2; - } else if (lbl_1_bss_30[1] == 0) { + } + else if (lbl_1_bss_30[1] == 0) { var_r29 = 1; } } @@ -884,7 +922,8 @@ static void fn_1_2EF4(omObjData *arg0) { } } -static void fn_1_3470(void) { +static void fn_1_3470(void) +{ omObjData *temp_r3; Bss28Work *temp_r31; @@ -901,7 +940,8 @@ static void fn_1_3470(void) { temp_r31->unk0A = BoardModelMotionCreate(lbl_1_bss_C[4], DATA_MAKE_NUM(DATADIR_W06, 23)); } -static void fn_1_3560(s32 arg0) { +static void fn_1_3560(s32 arg0) +{ Bss28Work *temp_r31; if (!lbl_1_bss_28) { @@ -910,13 +950,15 @@ static void fn_1_3560(s32 arg0) { temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_28, Bss28Work); temp_r31->unk00_field1 = arg0; if (arg0 != 1) { - (void) 0; - } else { + (void)0; + } + else { temp_r31->unk06 = 20; } } -static s32 fn_1_35BC(void) { +static s32 fn_1_35BC(void) +{ Bss28Work *temp_r31; if (!lbl_1_bss_28) { @@ -926,7 +968,8 @@ static s32 fn_1_35BC(void) { return temp_r31->unk00_field1; } -static void fn_1_3604(s32 arg0) { +static void fn_1_3604(s32 arg0) +{ Bss28Work *temp_r31; if (!lbl_1_bss_28) { @@ -949,7 +992,8 @@ static void fn_1_3604(s32 arg0) { } } -static void fn_1_3698(s8 arg0) { +static void fn_1_3698(s8 arg0) +{ Vec sp24; Vec sp18; Vec spC; @@ -976,7 +1020,8 @@ static void fn_1_3698(s8 arg0) { if (ABS(temp_f31) >= 300.0f) { var_f30 = 40.0f; temp_r31->unk06 *= 2; - } else { + } + else { var_f30 = 20.0f; } VECSubtract(&sp18, &sp24, &spC); @@ -986,7 +1031,8 @@ static void fn_1_3698(s8 arg0) { BoardModelMotionSpeedSet(lbl_1_bss_C[4], 2.0f); } -static void fn_1_3974(omObjData *arg0) { +static void fn_1_3974(omObjData *arg0) +{ Vec sp30; Vec sp24; s32 sp8; @@ -1012,7 +1058,8 @@ static void fn_1_3974(omObjData *arg0) { fn_1_3560(4); return; } - } else { + } + else { temp_r31->unk03++; } fn_1_3560(1); @@ -1062,7 +1109,8 @@ static void fn_1_3974(omObjData *arg0) { } } -static void fn_1_4070(void) { +static void fn_1_4070(void) +{ Bss2CWork *temp_r31; lbl_1_bss_1C = 0; @@ -1074,7 +1122,8 @@ static void fn_1_4070(void) { temp_r31->unk04 = MGSeqTimerCreateXY(temp_r31->unk01, 288, 64); } -static void fn_1_4124(void) { +static void fn_1_4124(void) +{ Bss2CWork *temp_r31; if (!lbl_1_bss_2C) { @@ -1086,7 +1135,8 @@ static void fn_1_4124(void) { temp_r31->unk00_field0 = 1; } -static void fn_1_4194(omObjData *arg0) { +static void fn_1_4194(omObjData *arg0) +{ Bss2CWork *temp_r31; temp_r31 = OM_GET_WORK_PTR(arg0, Bss2CWork); @@ -1107,7 +1157,8 @@ static void fn_1_4194(omObjData *arg0) { } if (temp_r31->unk01 != 0) { temp_r31->unk01--; - } else { + } + else { MGSeqParamSet(temp_r31->unk04, 2, -1); temp_r31->unk04 = -1; lbl_1_bss_1C = 1; @@ -1117,7 +1168,8 @@ static void fn_1_4194(omObjData *arg0) { temp_r31->unk02 = 60; } -static void fn_1_42AC(s16 arg0) { +static void fn_1_42AC(s16 arg0) +{ ParticleData *var_r31; lbl_1_bss_20 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0)); @@ -1132,7 +1184,8 @@ static void fn_1_42AC(s16 arg0) { var_r31->unk_02 = arg0; } -static void fn_1_43DC(void) { +static void fn_1_43DC(void) +{ if (lbl_1_data_1B0 != -1) { Hu3DModelKill(lbl_1_data_1B0); lbl_1_data_1B0 = -1; @@ -1143,7 +1196,8 @@ static void fn_1_43DC(void) { } } -static void fn_1_4460(ModelData *model, ParticleData *particle, Mtx matrix) { +static void fn_1_4460(ModelData *model, ParticleData *particle, Mtx matrix) +{ HsfanimStruct01 *var_r31; Vec sp8; float var_f31; diff --git a/src/REL/ztardll/main.c b/src/REL/ztardll/main.c index e1e91168..0d20bade 100644 --- a/src/REL/ztardll/main.c +++ b/src/REL/ztardll/main.c @@ -1515,10 +1515,10 @@ void fn_1_7414(ModelData *model, Mtx matrix) GXInitTexObj(&spC, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 1, GX_CLAMP, GX_CLAMP, GX_FALSE); GXInitTexObjLOD(&spC, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); GXLoadTexObj(&spC, GX_TEXMAP0); - PSMTXInverse(Hu3DCameraMtx, sp5C); - PSMTXConcat(sp5C, matrix, sp8C); - PSMTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp2C); - PSMTXConcat(sp2C, sp8C, sp8C); + MTXInverse(Hu3DCameraMtx, sp5C); + MTXConcat(sp5C, matrix, sp8C); + MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp2C); + MTXConcat(sp2C, sp8C, sp8C); GXLoadTexMtxImm(sp8C, 0x39, GX_MTX3x4); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x39, GX_FALSE, 0x7D); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); From 6406dde2ccca48b3581955867351cf62e9f0e6c4 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Sun, 19 Jan 2025 07:40:22 -0800 Subject: [PATCH 263/311] Matched mstory3Dll (US) (#538) --- config/GMPE01_00/rels/mstory3Dll/symbols.txt | 600 ++-- configure.py | 8 +- include/REL/mstory3Dll.h | 99 + include/game/gamework.h | 6 +- include/game/gamework_data.h | 5 + src/REL/mstory3Dll/main.c | 1044 +++++++ src/REL/mstory3Dll/result.c | 1617 ++++++++++ src/REL/mstory3Dll/result_seq.c | 2928 ++++++++++++++++++ src/REL/mstory3Dll/win_effect.c | 322 ++ src/game/gamework.c | 6 +- 10 files changed, 6325 insertions(+), 310 deletions(-) create mode 100755 include/REL/mstory3Dll.h create mode 100755 src/REL/mstory3Dll/main.c create mode 100755 src/REL/mstory3Dll/result.c create mode 100755 src/REL/mstory3Dll/result_seq.c create mode 100755 src/REL/mstory3Dll/win_effect.c diff --git a/config/GMPE01_00/rels/mstory3Dll/symbols.txt b/config/GMPE01_00/rels/mstory3Dll/symbols.txt index a6159435..4863cac3 100644 --- a/config/GMPE01_00/rels/mstory3Dll/symbols.txt +++ b/config/GMPE01_00/rels/mstory3Dll/symbols.txt @@ -4,7 +4,7 @@ fn_1_A4 = .text:0x000000A4; // type:function size:0x2C8 _prolog = .text:0x0000036C; // type:function size:0x54 scope:global _epilog = .text:0x000003C0; // type:function size:0x4C scope:global fn_1_40C = .text:0x0000040C; // type:function size:0xE4 -fn_1_4F0 = .text:0x000004F0; // type:function size:0xE4 +ObjectSetup = .text:0x000004F0; // type:function size:0xE4 fn_1_5D4 = .text:0x000005D4; // type:function size:0x28 fn_1_5FC = .text:0x000005FC; // type:function size:0x20 fn_1_61C = .text:0x0000061C; // type:function size:0xD8 @@ -202,315 +202,315 @@ fn_1_1E558 = .text:0x0001E558; // type:function size:0x2C8 fn_1_1E820 = .text:0x0001E820; // type:function size:0x8E0 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC data:4byte -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC data:4byte -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC data:4byte -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 data:4byte -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC data:4byte -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 data:4byte -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 data:4byte -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 data:4byte -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 data:4byte -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 data:4byte -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 data:4byte -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 data:4byte -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 data:byte -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C data:4byte -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 data:4byte -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C data:4byte -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 data:4byte -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float -lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float -lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float -lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 data:double -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 scope:local +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 scope:local data:4byte +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 scope:local data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 scope:local data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 scope:local data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 scope:local data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 -lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 data:string -lbl_1_data_95 = .data:0x00000095; // type:object size:0xD data:string +lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 scope:local data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0xD scope:local data:string lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 -lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 data:string -lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 data:string -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 data:string -lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A data:string -lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A data:string -lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE data:string +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 scope:local data:string +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 scope:local data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A scope:local data:string +lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A scope:local data:string +lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE scope:local data:string lbl_1_data_130 = .data:0x00000130; // type:object size:0x30 data:float lbl_1_data_160 = .data:0x00000160; // type:object size:0x50 lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x50 lbl_1_data_200 = .data:0x00000200; // type:object size:0x50 -lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 data:string -lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 data:string -lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 data:string -lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 data:string -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 data:string -lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 data:string -lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 data:string -lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 data:string -lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF data:string -lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C data:string -lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D data:string -lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C data:string -lbl_1_data_364 = .data:0x00000364; // type:object size:0x8 data:4byte -lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC -lbl_1_data_378 = .data:0x00000378; // type:object size:0xF data:string -lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 data:string +lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 scope:local data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 scope:local data:string +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 scope:local data:string +lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 scope:local data:string +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 scope:local data:string +lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 scope:local data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 scope:local data:string +lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF scope:local data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D scope:local data:string +lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C scope:local data:string +lbl_1_data_364 = .data:0x00000364; // type:object size:0x4 data:4byte +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC data:float +lbl_1_data_378 = .data:0x00000378; // type:object size:0xF scope:local data:string +lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 scope:local data:string jumptable_1_data_398 = .data:0x00000398; // type:object size:0x30 scope:local -lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 data:string -lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 data:string -lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 data:string -lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 data:string -lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 data:string -lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 data:string -lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 data:string -lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 data:string -lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 data:string -lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 data:string -lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 data:string -lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 data:string -lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12 +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 scope:local data:string +lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 scope:local data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 scope:local data:string +lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 scope:local data:string +lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 scope:local data:string +lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 scope:local data:string +lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 scope:local data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 scope:local data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 scope:local data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 scope:local data:string +lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 scope:local data:string +lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x10 scope:local data:string lbl_1_data_504 = .data:0x00000504; // type:object size:0x288 -lbl_1_data_78C = .data:0x0000078C; // type:object size:0x5 -lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 data:string -lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 data:string -lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 data:string -lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 data:string -lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 data:string -lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 data:string -lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 data:string -lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 data:string -lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF data:string -lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C data:string -lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D data:string -lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 data:string -lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 data:string -lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 data:string -lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 data:string -lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 data:string -lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A data:string -lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A data:string -lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x1B -lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 data:string -lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 data:string +lbl_1_data_78C = .data:0x0000078C; // type:object size:0x50 +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 scope:local data:string +lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 scope:local data:string +lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 scope:local data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 scope:local data:string +lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 scope:local data:string +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 scope:local data:string +lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 scope:local data:string +lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 scope:local data:string +lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF scope:local data:string +lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C scope:local data:string +lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D scope:local data:string +lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 scope:local data:string +lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 scope:local data:string +lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 scope:local data:string +lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 scope:local data:string +lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 scope:local data:string +lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A scope:local data:string +lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A scope:local data:string +lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x19 scope:local data:string +lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 scope:local data:string +lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:float lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:float -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:float @@ -542,7 +542,7 @@ lbl_1_bss_18F4 = .bss:0x000018F4; // type:object size:0xA0 lbl_1_bss_1994 = .bss:0x00001994; // type:object size:0x28 data:4byte lbl_1_bss_19BC = .bss:0x000019BC; // type:object size:0x28 data:4byte lbl_1_bss_19E4 = .bss:0x000019E4; // type:object size:0x28 data:4byte -lbl_1_bss_1A0C = .bss:0x00001A0C; // type:object size:0x2DC data:float +lbl_1_bss_1A0C = .bss:0x00001A0C; // type:object size:0x2D8 data:float lbl_1_bss_1CE8 = .bss:0x00001CE8; // type:object size:0x2 data:2byte lbl_1_bss_1CEC = .bss:0x00001CEC; // type:object size:0x4 data:4byte lbl_1_bss_1CF0 = .bss:0x00001CF0; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 691ad13d..abfd9d0f 100644 --- a/configure.py +++ b/configure.py @@ -1396,10 +1396,10 @@ config.libs = [ Rel( "mstory3Dll", objects={ - Object(NonMatching, "REL/mstory3Dll/main.c"), - Object(NonMatching, "REL/mstory3Dll/result_seq.c"), - Object(NonMatching, "REL/mstory3Dll/result.c"), - Object(NonMatching, "REL/mstory3Dll/win_effect.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstory3Dll/main.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstory3Dll/result_seq.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstory3Dll/result.c"), + Object(MatchingFor("GMPE01_00"), "REL/mstory3Dll/win_effect.c"), }, ), Rel( diff --git a/include/REL/mstory3Dll.h b/include/REL/mstory3Dll.h new file mode 100755 index 00000000..8ca3ed77 --- /dev/null +++ b/include/REL/mstory3Dll.h @@ -0,0 +1,99 @@ +#ifndef MSTORY3DLL_H +#define MSTORY3DLL_H + +#include "game/object.h" +#include "game/process.h" + +#include "dolphin.h" + +// For future reference: seems to be identical to StructFn352C in mstoryDll. +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ s32 unk20; + /* 0x24 */ s32 unk24; + /* 0x28 */ s32 unk28; + /* 0x2C */ s32 unk2C; + /* 0x30 */ char unk30[4]; +} StructFn352C; // Size 0x34 + +// For future reference: seems to be identical to StructBss4 in mstoryDll. +typedef struct { + /* 0x00 */ void (*unk00)(void); + /* 0x04 */ void (*unk04)(void); + /* 0x08 */ Vec unk08; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ float unk1C; + /* 0x20 */ Vec unk20; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; + /* 0x38 */ float unk38; + /* 0x3C */ float unk3C; + /* 0x40 */ s32 unk40; +} StructBss4; // Size 0x44 + +typedef struct { + /* 0x00 */ omObjData* unk00; + /* 0x04 */ void (*unk04)(omObjData*, ...); + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ s32 unk1C; + /* 0x20 */ char unk20[8]; +} StructBss1530; // Size 0x28 + +// main.c +float fn_1_5D4(float arg8, float arg9, float argA, float argB); +float fn_1_5FC(float arg8, float arg9, float argA); +float fn_1_61C(float arg0, float arg1, float arg2, float arg3); +float fn_1_6F4(float arg0, float arg1, float arg2, float arg3); +float fn_1_7BC(float arg0, float arg1, float arg2, float arg3); +float fn_1_878(float arg0, float arg1, float arg2, float arg3); +void fn_1_938(void); +void fn_1_958(s32 arg0); +void fn_1_9A0(void); +void fn_1_9C4(void); +s32 fn_1_1624(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +s32 fn_1_1834(u32 arg0, s32 arg1); +void fn_1_1A24(s32 arg0); +void fn_1_1AB0(s32 arg0); +void fn_1_1B18(s32 arg0, s32 arg1); +void fn_1_1D44(s32 arg0, s32 arg1); +void fn_1_1E28(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_2280(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_2310(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_2420(s32 arg0, s32 arg1); +void fn_1_2834(void (*arg0)(void)); +void fn_1_290C(Process* arg0, void (*arg1)(void)); +void fn_1_2DD4(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5); +void fn_1_35C8(s16 arg0); +void fn_1_3650(StructFn352C* arg0, s32 arg1); +s32 fn_1_36E4(void); +s32 fn_1_373C(void); +s32 fn_1_37C8(s32 arg0); +void fn_1_38B4(void); +void fn_1_39B4(StructBss4* arg0); +void fn_1_4400(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4); +void fn_1_4CC0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3); +void fn_1_514C(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4); + +// result_seq.c +void fn_1_6E34(Process* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); + +// result.c +void fn_1_157F0(Process* arg0, s32 arg1, s32 arg2, s32 arg3); + +extern StructBss4 lbl_1_bss_4; +extern s32 lbl_1_data_0[][4]; + +#endif diff --git a/include/game/gamework.h b/include/game/gamework.h index 869cfad1..722ba147 100644 --- a/include/game/gamework.h +++ b/include/game/gamework.h @@ -15,10 +15,10 @@ void GWCharColorGet(s32 character, GXColor *color); void GWBoardPlayCountSet(s32 board, u8 value); void GWBoardPlayCountAdd(s32 board, u8 value); u8 GWBoardPlayCountGet(s32 board); -void GWBoardMaxStarsSet(s32 board, s32 value); -u16 GWBoardMaxStarsGet(s32 board); +void GWBoardMaxStarsSet(s32 board, s16 value); +s32 GWBoardMaxStarsGet(s32 board); void GWBoardMaxCoinsSet(s32 board, s32 value); -u16 GWBoardMaxCoinsGet(s32 board); +s32 GWBoardMaxCoinsGet(s32 board); s32 GWBoardWinCountInc(s32 character, s32 board); s32 GWBoardWinCountGet(s32 character, s32 board); void GWBoardWinCountSet(s32 character, s32 board, s32 value); diff --git a/include/game/gamework_data.h b/include/game/gamework_data.h index 0e2c8254..b3615e85 100644 --- a/include/game/gamework_data.h +++ b/include/game/gamework_data.h @@ -325,6 +325,11 @@ static inline s32 GWPlayerTeamGet(s32 player) return GWPlayer[player].team; } +static inline s32 GWPlayerHandicapGet(s32 player) +{ + return GWPlayer[player].handicap; +} + static inline s32 GWLuckyValueGet(void) { return GWSystem.lucky_value; diff --git a/src/REL/mstory3Dll/main.c b/src/REL/mstory3Dll/main.c new file mode 100755 index 00000000..c1e4f1bf --- /dev/null +++ b/src/REL/mstory3Dll/main.c @@ -0,0 +1,1044 @@ +#include "REL/mstory3Dll.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/window.h" +#include "game/wipe.h" + +#include "ext_math.h" + +u8 lbl_1_bss_48[0x10]; // unused +StructBss4 lbl_1_bss_4; +Process* lbl_1_bss_0; + +s32 lbl_1_data_0[][4] = { + { 0x37, 0x38, 0x36, 0x39 }, + { 0x43, 0x45, 0x44, 0x43 }, + { 0x40, 0x42, 0x41, 0x40 }, + { 0x4B, 0x4D, 0x4C, 0x4B }, + { 0x46, 0x48, 0x47, 0x46 }, + { 0x3E, 0x3F, 0x3E, 0x3E }, + { 0x3A, 0x3B, 0x3C, -1 } +}; + +char* lbl_1_data_A4[] = { + "S-1 : ALL STORY - BOARD RESULT EVENT", + "--- : RESULT" +}; + +void fn_1_0(omObjData* arg0) { + if (WipeStatGet() == 0) { + arg0->func = NULL; + omOvlReturnEx(1, 1); + } +} + +void fn_1_4C(omObjData* arg0) { + if (omSysExitReq != 0) { + arg0->func = fn_1_0; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + } +} + +void fn_1_A4(void) { + s32 sp14; + s32 sp10; + s32 spC; + s32 sp8; + s32 var_r29; + s32 var_r30; + s32 var_r31; + + sp14 = 0; + var_r30 = 0; + var_r31 = 0; + sp10 = 1; + spC = 1; + sp8 = 1; + omAddObjEx(lbl_1_bss_0, 0x2000, 0, 0, -1, fn_1_4C); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + while (TRUE) { + if (HuPadBtnDown[0] & PAD_BUTTON_A) { + break; + } + if (HuPadBtnDown[0] & PAD_BUTTON_DOWN) { + var_r30++; + if (var_r30 >= 2) { + var_r30 = 0; + } + } + if (HuPadBtnDown[0] & PAD_BUTTON_UP) { + var_r30--; + if (var_r30 < 0) { + var_r30 = 1; + } + } + if (HuPadStkX[0] <= -30) { + var_r31++; + if (var_r31 > 6) { + var_r31 = 0; + } + } + if (HuPadStkX[0] >= 30) { + var_r31--; + if (var_r31 < 0) { + var_r31 = 5; + } + } + fontcolor = FONT_COLOR_WHITE; + print8(24, 100, 1.5f, ">>>>> MPGC STORY 3 - EVENT SELECT <<<<<"); + print8(24, 130, 1.5f, "MAP NUMBER : %d", var_r31 + 1); + for (var_r29 = 0; var_r29 < 2; var_r29++) { + fontcolor = FONT_COLOR_WHITE; + if (var_r30 == var_r29) { + fontcolor = FONT_COLOR_CYAN; + } + print8(24, 160 + var_r29 * 15, 1.5f, "%s", lbl_1_data_A4[var_r29]); + } + fn_1_938(); + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + GWSystem.board = var_r31; + switch (var_r30) { + case 0: + fn_1_6E34(lbl_1_bss_0, var_r31, 1, 0, 0); + break; + case 1: + fn_1_157F0(lbl_1_bss_0, var_r31, 0, 0); + break; + } + while (TRUE) { + fn_1_938(); + } +} + +#include "src/REL/executor.c" + +void fn_1_40C(void) { + lbl_1_bss_0 = omInitObjMan(62, 0x2000); + omGameSysInit(lbl_1_bss_0); + switch (omovlevtno) { + case 0: + fn_1_6E34(lbl_1_bss_0, GWSystem.board, GWSystem.bonus_star, GWSystem.party, 0); + break; + case 1: + fn_1_157F0(lbl_1_bss_0, GWSystem.board, GWSystem.party, 0); + break; + } +} + +void ObjectSetup(void) { + fn_1_40C(); +} + +float fn_1_5D4(float arg8, float arg9, float argA, float argB) { + if (argB <= argA) { + return arg9; + } + return arg8 + (argA / argB) * (arg9 - arg8); +} + +float fn_1_5FC(float arg8, float arg9, float argA) { + return (arg9 + arg8 * (argA - 1.0f)) / argA; +} + +float fn_1_61C(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * (1.0 - cosd((90.0f / arg3) * arg2)); +} + +float fn_1_6F4(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg1; + } + return arg0 + (arg1 - arg0) * sind((90.0f / arg3) * arg2); +} + +float fn_1_7BC(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg0; + } + return arg0 + (arg1 - arg0) * sind((180.0f / arg3) * arg2); +} + +float fn_1_878(float arg0, float arg1, float arg2, float arg3) { + if (arg2 >= arg3) { + return arg0; + } + return arg0 + (arg1 - arg0) * sind((360.0f / arg3) * arg2); +} + +void fn_1_934(void) { +} + +void fn_1_938(void) { + HuPrcVSleep(); +} + +void fn_1_958(s32 arg0) { + HuPrcSleep(arg0); +} + +void fn_1_980(void) { + HuPrcEnd(); +} + +void fn_1_9A0(void) { + HuWinInit(1); +} + +void fn_1_9C4(void) { + HuWinAllKill(); +} + +void fn_1_9E4(s32 arg0, float arg1, float arg2, s32 arg3) { + WindowData* temp_r29; + float temp_f29; + float temp_f28; + float temp_f25; + float temp_f24; + float temp_f31; + float temp_f27; + float temp_f30; + float temp_f26; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + s32 i; + + temp_r29 = &winData[arg0]; + temp_f29 = temp_r29->pos_x; + temp_f28 = temp_r29->pos_y; + temp_f25 = temp_r29->w; + temp_f24 = temp_r29->h; + temp_f31 = temp_f29 + temp_f25 * arg1; + temp_f27 = 4.0f / temp_f25; + if (temp_f31 + 4.0f - (temp_f29 + temp_f25) >= 0.0f) { + temp_f31 = (temp_f29 + temp_f25) - 4.0f; + } else if (temp_f29 - (temp_f31 - 2.0f) >= 0.0f) { + temp_f31 = temp_f29; + } else { + temp_f31 -= 2.0f; + } + temp_f30 = temp_f28 + temp_f24 * arg2; + temp_f26 = 4.0f / temp_f24; + if (temp_f30 + 4.0f - (temp_f28 + temp_f24) >= 0.0f) { + temp_f30 = (temp_f28 + temp_f24) - 4.0f; + } else if (temp_f28 - (temp_f30 - 2.0f) >= 0.0f) { + temp_f30 = temp_f28; + } else { + temp_f30 -= 2.0f; + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f31, temp_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + var_f23 = temp_f31; + var_f21 = temp_f27; + var_f22 = temp_f30; + var_f20 = temp_f26; + } else { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + var_f23 = temp_f29; + var_f21 = 1.0f; + var_f22 = temp_f28; + var_f20 = 1.0f; + } + HuWinDispOn(arg0); + for (i = 0; i <= 15; i++) { + HuPrcVSleep(); + if (arg3 != 0) { + if (i <= 10) { + var_f23 = fn_1_6F4(temp_f31, temp_f29, i, 10.0f); + var_f21 = fn_1_6F4(temp_f27, 1.0f, i, 10.0f);; + } else { + var_f22 = fn_1_6F4(temp_f30, temp_f28, i - 10, 5.0f); + var_f20 = fn_1_6F4(temp_f26, 1.0f, i - 10, 5.0f); + } + } else { + if (i <= 10) { + var_f22 = fn_1_6F4(temp_f28, temp_f30, i, 10.0f); + var_f20 = fn_1_6F4(1.0f, temp_f26, i, 10.0f); + } else { + var_f23 = fn_1_6F4(temp_f29, temp_f31, i - 10, 5.0f); + var_f21 = fn_1_6F4(1.0f, temp_f27, i - 10, 5.0f); + } + } + HuWinPosSet(arg0, var_f23, var_f22); + HuWinScaleSet(arg0, var_f21, var_f20); + } + if (arg3 != 0) { + HuWinPosSet(arg0, temp_f29, temp_f28); + HuWinScaleSet(arg0, 1.0f, 1.0f); + } else { + HuWinPosSet(arg0, temp_f31, temp_f30); + HuWinScaleSet(arg0, temp_f27, temp_f26); + } + HuPrcVSleep(); +} + +s32 fn_1_142C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, float arg8, float arg9, s32 arg4) { + s32 temp_r3; + + arg2 = arg2 * 21 + 16; + arg3 = arg3 * 26 + 16; + if (arg0 == 0) { + arg0 = 550 - arg2; + } else { + arg0 = 1.0f + (576.0f - arg2) / 2; + } + if (arg1 == 0) { + arg1 = 430 - arg3; + } else { + arg1 = 445 - arg3; + } + temp_r3 = HuWinExCreateStyled(arg0, arg1, arg2, arg3, -1, 1); + HuWinMesPalSet(temp_r3, 7, 0, 0, 0); + if (arg4 != -1) { + if (GWSystem.party != 1) { + winData[temp_r3].active_pad = 1; + } else { + winData[temp_r3].active_pad = 0xF; + } + } else { + winData[temp_r3].active_pad = 0xFF; + } + fn_1_9E4(temp_r3, arg8, arg9, 1); + if (arg1 != 0) { + HuWinPriSet(temp_r3, 50); + } + return temp_r3; +} + +s32 fn_1_1624(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + return fn_1_142C(arg0, arg1, arg2, arg3, 0.5f, 0.5f, arg4); +} + +s32 fn_1_1834(u32 arg0, s32 arg1) { + float sp8[2]; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + s32 temp_r3; + + if (arg1 == 0) { + HuWinMesMaxSizeGet(1, sp8, arg0); + } + var_f31 = sp8[0]; + var_f30 = sp8[1]; + var_f29 = (576.0f - var_f31) / 2; + var_f28 = 445.0f - var_f30; + if (arg1 != 0) { + var_f31 = 352.0f; + var_f30 = 94.0f; + var_f29 = 550.0f - var_f31; + var_f28 = 445.0f - var_f30; + } + temp_r3 = HuWinExCreateStyled(var_f29, var_f28, var_f31, var_f30, -1, 1); + HuWinMesPalSet(temp_r3, 7, 0, 0, 0); + if (arg1 == 0) { + HuWinBGTPLvlSet(temp_r3, 0.0f); + HuWinMesSet(temp_r3, arg0); + HuWinMesSpeedSet(temp_r3, 0); + HuWinDispOn(temp_r3); + HuWinMesPalSet(temp_r3, 7, 0xFF, 0xFF, 0xFF); + } else { + HuWinPriSet(temp_r3, 50); + fn_1_9E4(temp_r3, 0.5f, 0.5f, 1); + HuWinMesSpeedSet(temp_r3, 0); + } + return temp_r3; +} + +void fn_1_1A24(s32 arg0) { + HuWinExCleanup(arg0); +} + +void fn_1_1A50(s32 arg0, float arg1, float arg2) { + HuWinMesSet(arg0, MAKE_MESSID(37, 4)); + HuPrcVSleep(); + fn_1_9E4(arg0, arg1, arg2, 0); + HuWinExCleanup(arg0); +} + +void fn_1_1AB0(s32 arg0) { + fn_1_1A50(arg0, 0.5f, 0.5f); +} + +void fn_1_1B18(s32 arg0, s32 arg1) { + s32 i; + + if (arg1 > 0) { + HuPrcSleep(arg1); + return; + } + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xFF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesWait(arg0); + HuWinComKeyReset(); +} + +s32 fn_1_1BC4(s32 arg0, s32 arg1) { + s32 spC; + s32 temp_r31; + s32 var_r30; + + spC = 0; + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xFF) { + for (var_r30 = 0; var_r30 < 10; var_r30++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + temp_r31 = HuWinChoiceGet(arg0, arg1); + HuWinComKeyReset(); + if (temp_r31 != 0) { + temp_r31 = 0; + } else { + temp_r31 = 1; + } + return temp_r31; +} + +s32 fn_1_1C88(s32 arg0) { + return fn_1_1BC4(arg0, 0); +} + +void fn_1_1D44(s32 arg0, s32 arg1) { + HuWinMesSet(arg0, arg1); +} + +void fn_1_1D78(s32 arg0, s32 arg1, s32 arg2) { + HuWinInsertMesSet(arg0, arg1, arg2); +} + +void fn_1_1DB8(s16 arg0) { + ModelData* var_r28; + HsfMaterial* var_r31; + HsfData* temp_r30; + s16 var_r27; + s32 i; + + var_r28 = &Hu3DData[arg0]; + temp_r30 = var_r28->hsfData; + var_r27 = temp_r30->materialCnt; + var_r31 = temp_r30->material; + for (i = 0; i < var_r27; var_r31++, i++) { + var_r31->vtxMode = 1; + } +} + +void fn_1_1E28(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + switch (arg4) { + case 0: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_NONE); + break; + case 1: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_LOOP); + break; + case 2: + Hu3DMotionShiftSet(arg0->model[arg1], arg0->motion[arg2], 0.0f, arg3, HU3D_MOTATTR_PAUSE); + break; + } +} + +void fn_1_1FA0(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + if (arg0->motion[arg2] == Hu3DMotionIDGet(arg0->model[arg1])) { + return; + } + if (arg0->motion[arg2] == Hu3DMotionShiftIDGet(arg0->model[arg1])) { + return; + } + fn_1_1FA0(arg0, arg1, arg2, arg3, arg4); +} + +void fn_1_2280(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3) { + HuPrcSleep(arg3 + 1); + do { + HuPrcVSleep(); + } while (arg0->motion[arg2] != Hu3DMotionIDGet(arg0->model[arg1]) || !Hu3DMotionEndCheck(arg0->model[arg1])); +} + +void fn_1_2310(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3) { + HuPrcSleep(arg3 + 1); + do { + HuPrcVSleep(); + } while (arg0->motion[arg2] != Hu3DMotionIDGet(arg0->model[arg1]) || !(Hu3DMotionMaxTimeGet(arg0->model[arg1]) - 20.0f <= Hu3DMotionTimeGet(arg0->model[arg1]))); +} + +s32 fn_1_23D8(s32 arg0) { + s32 i; + + for (i = 0; i < 4; i++) { + if (arg0 == GWPlayerCfg[i].group) { + break; + } + } + return i; +} + +void fn_1_2420(s32 arg0, s32 arg1) { + while (TRUE) { + if (arg1 & HuPadBtnDown[arg0]) { + break; + } + HuPrcVSleep(); + } +} + +void fn_1_2474(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + if (HuPadBtn[0] & PAD_BUTTON_B) { + if (HuPadBtn[0] & PAD_TRIGGER_R) { + var_r31->unk08.z -= HuPadStkY[0] / 10.0f; + } else { + var_r31->unk08.x += HuPadStkX[0] / 10.0f; + var_r31->unk08.y += HuPadStkY[0] / 10.0f; + } + } + if (HuPadBtn[0] & PAD_BUTTON_Y) { + var_r31->unk20.x -= HuPadStkY[0] / 100.0f; + var_r31->unk20.y += HuPadStkX[0] / 100.0f; + if (var_r31->unk20.x < 0.0f) { + var_r31->unk20.x += 360.0f; + } + if (var_r31->unk20.x >= 360.0f) { + var_r31->unk20.x -= 360.0f; + } + if (var_r31->unk20.y < 0.0f) { + var_r31->unk20.y += 360.0f; + } + if (var_r31->unk20.y >= 360.0f) { + var_r31->unk20.y -= 360.0f; + } + } + if (HuPadBtn[0] & PAD_BUTTON_X) { + var_r31->unk38 -= HuPadStkY[0] / 10.0f; + } + print8(24, 40, 1.5f, "CENTER : %.2f, %.2f, %.2f", var_r31->unk08.x, var_r31->unk08.y, var_r31->unk08.z); + print8(24, 55, 1.5f, "ROT : %.2f, %.2f, %.2f", var_r31->unk20.x, var_r31->unk20.y, var_r31->unk20.z); + print8(24, 70, 1.5f, "ZOOM : %.2f", var_r31->unk38); +} + +void fn_1_2834(void (*arg0)(void)) { + lbl_1_bss_4.unk00 = arg0; +} + +void fn_1_2844(void (*arg0)(void)) { + lbl_1_bss_4.unk04 = arg0; +} + +void fn_1_2854(omObjData* arg0) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + if (var_r31->unk00 != NULL) { + var_r31->unk00(); + } + Center.x = var_r31->unk08.x; + Center.y = var_r31->unk08.y; + Center.z = var_r31->unk08.z; + CRot.x = var_r31->unk20.x; + CRot.y = var_r31->unk20.y; + CRot.z = var_r31->unk20.z; + CZoom = var_r31->unk38; +} + +void fn_1_290C(Process* arg0, void (*arg1)(void)) { + Hu3DCameraCreate(1); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraPerspectiveSet(1, 42.0f, 1.0f, 2000.0f, 1.2f); + lbl_1_bss_4.unk00 = arg1; + lbl_1_bss_4.unk04 = fn_1_2474; + omAddObjEx(arg0, 0x7FDA, 0, 0, -1, omOutView); + omAddObjEx(arg0, 0x7FD9, 0, 0, -1, fn_1_2854); +} + +void fn_1_2A2C(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5) { + Vec sp4C; + Vec sp40; + Vec sp34; + Vec sp28; + float sp24; + float sp20; + float sp1C; + s32 sp18; + s32 sp14; + float var_f31; + + sp40.x = Hu3DData[arg0->model[arg1]].pos.x; + sp4C.y = sp40.y = Hu3DData[arg0->model[arg1]].pos.y; + sp40.z = Hu3DData[arg0->model[arg1]].pos.z; + sp34.x = arg2.x; + sp34.y = arg2.y; + sp34.z = arg2.z; + sp18 = arg4; + sp28.x = Hu3DData[arg0->model[arg1]].rot.x; + sp28.y = Hu3DData[arg0->model[arg1]].rot.y; + sp28.z = Hu3DData[arg0->model[arg1]].rot.z; + sp1C = 0.0f; + sp20 = arg3; + sp24 = 0.0f; + sp14 = arg5; + var_f31 = -1.1025f; + Hu3DMotionShiftSet(arg0->model[1], arg0->motion[3], 0.0f, 5.0f, 0U); + HuPrcSleep(10); + while (TRUE) { + if (var_f31 >= 1.7f) { + var_f31 = 1.7f; + } + sp4C.y += var_f31 * var_f31 * (var_f31 >= 0.0f ? -17.5f : 17.5f); + if (sp4C.y <= 0.0f && var_f31 > 0.0f) { + sp4C.y = 0.0f; + } + sp4C.x = sp40.x += 6.0 * sind(sp28.y); + sp4C.z = sp40.z += 6.0 * cosd(sp28.y); + Hu3DModelPosSet(arg0->model[1], sp4C.x, sp4C.y, sp4C.z); + Hu3DModelRotSet(arg0->model[1], sp28.x, sp28.y, sp28.z); + HuPrcVSleep(); + if (sp4C.y <= arg2.y && var_f31 > 0.0f) { + break; + } + var_f31 += 0.11f; + } +} + +void fn_1_2DD4(omObjData* arg0, s32 arg1, Vec arg2, float arg3, float arg4, float arg5) { + Vec sp54; + Vec sp48; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + s32 sp14; + s32 temp_r27; + s32 var_r26; + s32 var_r25; + s32 var_r24; + s32 var_r23; + s32 i; + + var_r26 = 0; + var_r25 = 0; + sp48.x = Hu3DData[arg0->model[arg1]].pos.x; + sp48.y = Hu3DData[arg0->model[arg1]].pos.y; + sp48.z = Hu3DData[arg0->model[arg1]].pos.z; + sp3C.x = arg2.x; + sp3C.y = arg2.y; + sp3C.z = arg2.z; + sp14 = arg4; + sp24.x = Hu3DData[arg0->model[arg1]].rot.x; + sp24.y = Hu3DData[arg0->model[arg1]].rot.y; + sp24.z = Hu3DData[arg0->model[arg1]].rot.z; + sp18.x = 0.0f; + sp18.y = arg3; + sp18.z = 0.0f; + if (sp3C.x - sp48.x >= 0.0f) { + var_r24 = 1; + } else { + var_r24 = 0; + } + if (sp3C.z - sp48.z >= 0.0f) { + var_r23 = 1; + } else { + var_r23 = 0; + } + temp_r27 = arg5; + do { + sp30.y = -(atan2d(sp3C.z - sp48.z, sp3C.x - sp48.x) - 90.0); + if (sp30.y < 0.0f) { + sp30.y += 360.0f; + } else if (sp30.y >= 360.0f) { + sp30.y -= 360.0f; + } + if (sp30.y >= 180.0f) { + if (sp24.y - sp30.y >= 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp30.y < -180.0f) { + sp24.y += 360.0f; + } + } else { + if (sp24.y - sp30.y > 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp30.y <= -180.0f) { + sp24.y += 360.0f; + } + } + sp54.x = sp48.x += 6.0 * sind(sp30.y); + sp54.z = sp48.z += 6.0 * cosd(sp30.y); + if (var_r24 != 0) { + if (sp48.x >= sp3C.x) { + sp54.x = sp48.x = sp3C.x; + var_r26 = 1; + } + } else { + if (sp48.x <= sp3C.x) { + sp54.x = sp48.x = sp3C.x; + var_r26 = 1; + } + } + if (var_r23 != 0) { + if (sp48.z >= sp3C.z) { + sp54.z = sp48.z = sp3C.z; + var_r25 = 1; + } + } else { + if (sp48.z <= sp3C.z) { + sp54.z = sp48.z = sp3C.z; + var_r25 = 1; + } + } + sp24.y = fn_1_5FC(sp24.y, sp30.y, 10.0f); + Hu3DModelPosSet(arg0->model[1], sp54.x, sp48.y, sp54.z); + Hu3DModelRotSet(arg0->model[1], sp24.x, sp24.y, sp24.z); + HuPrcVSleep(); + } while (var_r25 != 1 || var_r26 != 1); + sp24.y = Hu3DData[arg0->model[arg1]].rot.y; + for (i = 0; i <= temp_r27; i++) { + if (sp18.y >= 180.0f) { + if (sp24.y - sp18.y >= 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp18.y < -180.0f) { + sp24.y += 360.0f; + } + } else { + if (sp24.y - sp18.y > 180.0f) { + sp24.y -= 360.0f; + } + if (sp24.y - sp18.y <= -180.0f) { + sp24.y += 360.0f; + } + } + sp24.y = fn_1_5D4(sp24.y, sp18.y, i, temp_r27); + Hu3DModelRotSet(arg0->model[1], sp24.x, sp24.y, sp24.z); + HuPrcVSleep(); + } +} + +void fn_1_35C8(s16 arg0) { + ModelData* var_r28; + HsfData* temp_r30; + HsfMaterial* var_r31; + s16 var_r27; + s32 i; + + var_r28 = &Hu3DData[arg0]; + temp_r30 = var_r28->hsfData; + var_r27 = temp_r30->materialCnt; + var_r31 = temp_r30->material; + for (i = 0; i < var_r27; var_r31++, i++) { + var_r31->vtxMode = 1; + var_r31->litColor[0] = 0xFF; + var_r31->litColor[1] = 0xFF; + var_r31->litColor[2] = 0xFF; + } +} + +void fn_1_3650(StructFn352C* arg0, s32 arg1) { + arg0->unk00 = arg1; + arg0->unk04 = GWPlayerCfg[arg0->unk00].group; + arg0->unk08 = GWPlayerCfg[arg0->unk00].iscom; + arg0->unk0C = GWPlayerCfg[arg0->unk00].diff; + arg0->unk10 = GWPlayerCfg[arg0->unk00].character; + arg0->unk14 = GWPlayerCfg[arg0->unk00].pad_idx; +} + +s32 fn_1_36E4(void) { + s32 i; + + for (i = 0; i < 4; i++) { + if (!GWPlayerCfg[i].iscom) { + break; + } + } + if (i == 4) { + return -1; + } + return i; +} + +s32 fn_1_373C(void) { + s32 var_r30; + s32 var_r31; + + var_r30 = 0; + do { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (var_r30 == GWPlayerCfg[var_r31].pad_idx) { + break; + } + } + if (!GWPlayerCfg[var_r31].iscom) { + break; + } + var_r30++; + } while (var_r30 != 5); + if (var_r30 == 5) { + return -1; + } + return var_r31; +} + +s32 fn_1_37C8(s32 arg0) { + s32 temp_r3 = 0; + + temp_r3 = Hu3DGLightCreate(0.0f, 700.0f, 1200.0f, 0.0f, -1.0f, 0.0f, arg0, arg0, arg0); + Hu3DGLightPosAimSet(temp_r3, 0.0f, 700.0f, 1200.0f, 0.0f, 0.0f, 640.0f); + Hu3DGLightInfinitytSet(temp_r3); + return temp_r3; +} + +void fn_1_38B4(void) { + Vec sp20 = { 0.0f, 3000.0f, 800.0f }; + Vec sp14 = { 0.0f, 0.0f, 640.0f }; + Vec sp8 = { 0.0f, 1.0f, 0.0f }; + + Hu3DShadowCreate(45.0f, 2000.0f, 25000.0f); + Hu3DShadowTPLvlSet(0.8f); + Hu3DShadowPosSet(&sp20, &sp8, &sp14); +} + +void fn_1_3978(StructBss4* arg0) { + arg0->unk08.x = arg0->unk14; + arg0->unk08.y = arg0->unk18; + arg0->unk08.z = arg0->unk1C; + arg0->unk20.x = arg0->unk2C; + arg0->unk20.y = arg0->unk30; + arg0->unk20.z = arg0->unk34; + arg0->unk38 = arg0->unk3C; +} + +void fn_1_39B4(StructBss4* arg0) { + arg0->unk40 = 0; + arg0->unk14 = arg0->unk08.x; + arg0->unk18 = arg0->unk08.y; + arg0->unk1C = arg0->unk08.z; + arg0->unk2C = arg0->unk20.x; + arg0->unk30 = arg0->unk20.y; + arg0->unk34 = arg0->unk20.z; + arg0->unk3C = arg0->unk38; +} + +void fn_1_39F8(StructBss4* arg0, StructBss4* arg1, float arg2) { + arg0->unk08.x = fn_1_5FC(arg0->unk08.x, arg1->unk14, arg2); + arg0->unk08.y = fn_1_5FC(arg0->unk08.y, arg1->unk18, arg2); + arg0->unk08.z = fn_1_5FC(arg0->unk08.z, arg1->unk1C, arg2); + arg0->unk20.x = fn_1_5FC(arg0->unk20.x, arg1->unk2C, arg2); + arg0->unk20.y = fn_1_5FC(arg0->unk20.y, arg1->unk30, arg2); + arg0->unk20.z = fn_1_5FC(arg0->unk20.z, arg1->unk34, arg2); + arg0->unk38 = fn_1_5FC(arg0->unk38, arg1->unk3C, arg2); +} + +void fn_1_3C64(StructBss4* arg0, float arg1) { + fn_1_39F8(arg0, arg0, arg1); +} + +void fn_1_3ED0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_5D4(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_5D4(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_5D4(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_5D4(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_5D4(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_5D4(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_5D4(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_414C(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + fn_1_3ED0(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_4400(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4) { + fn_1_3ED0(arg0, arg1, arg2, arg3); + fn_1_39F8(arg0, arg1, arg4); +} + +void fn_1_486C(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_6F4(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_6F4(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_6F4(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_6F4(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_6F4(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_6F4(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_6F4(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_4CC0(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + fn_1_486C(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_514C(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4) { + fn_1_486C(arg0, arg1, arg2, arg3); + fn_1_39F8(arg0, arg1, arg4); +} + +void fn_1_57A4(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + arg1->unk14 = fn_1_61C(arg0->unk14, arg1->unk08.x, arg2, arg3); + arg1->unk18 = fn_1_61C(arg0->unk18, arg1->unk08.y, arg2, arg3); + arg1->unk1C = fn_1_61C(arg0->unk1C, arg1->unk08.z, arg2, arg3); + arg1->unk2C = fn_1_61C(arg0->unk2C, arg1->unk20.x, arg2, arg3); + arg1->unk30 = fn_1_61C(arg0->unk30, arg1->unk20.y, arg2, arg3); + arg1->unk34 = fn_1_61C(arg0->unk34, arg1->unk20.z, arg2, arg3); + arg1->unk3C = fn_1_61C(arg0->unk3C, arg1->unk38, arg2, arg3); +} + +void fn_1_5C68(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3) { + fn_1_57A4(arg0, arg1, arg2, arg3); + arg0->unk08.x = arg1->unk14; + arg0->unk08.y = arg1->unk18; + arg0->unk08.z = arg1->unk1C; + arg0->unk20.x = arg1->unk2C; + arg0->unk20.y = arg1->unk30; + arg0->unk20.z = arg1->unk34; + arg0->unk38 = arg1->unk3C; +} + +void fn_1_6164(StructBss4* arg0, StructBss4* arg1, float arg2, float arg3, float arg4) { + fn_1_57A4(arg0, arg1, arg2, arg3); + fn_1_39F8(arg0, arg1, arg4); +} + +void fn_1_682C(omObjData* arg0) { + s32 var_r30; + + if (arg0->work[0] == 0) { + return; + } + if (arg0->work[2] != 0) { + arg0->work[2]--; + return; + } + if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[1])) { + var_r30 = arg0->work[1]; + Hu3DMotionShiftSet(arg0->model[1], arg0->motion[var_r30], 0.0f, 15.0f, HU3D_MOTATTR_LOOP); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + } +} + +void fn_1_68F0(omObjData* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + fn_1_1E28(arg0, 1, arg1, arg3, arg4); + if (arg4 == 0) { + arg0->work[0] = 1; + arg0->work[1] = arg2; + arg0->work[2] = arg3 + 1; + } +} + +void fn_1_6A78(s32 arg0, s32 arg1) { + HuWinMesSet(arg0, arg1); +} + +void fn_1_6AAC(s32 arg0, s32 arg1, s32 arg2) { + HuWinInsertMesSet(arg0, arg1, arg2); +} + +void fn_1_6AEC(s32 arg0, s32 arg1) { + fn_1_1B18(arg0, arg1); +} + +void fn_1_6B98(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + s32 temp_r28 = 0; + s32 var_r29 = 0; + s32 i; + + temp_r28 = HuWinKeyWaitNumGet(arg1); + if (arg2 == -1 || arg2 >= temp_r28 - 1) { + arg2 = temp_r28 - 1; + } + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xFF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesSet(arg0, arg1); + for (i = 0; i < temp_r28; i++) { + var_r29 = 0; + do { + HuPrcVSleep(); + } while (HuWinStatGet(arg0) != 1); + if (i == arg2) { + HuWinAttrSet(arg0, 0x400); + var_r29 = 1; + } + while (TRUE) { + HuPrcVSleep(); + if (var_r29 != 0) { + if (var_r29 == 1 && HuWinStatGet(arg0) != 1) { + var_r29 = 2; + } else if (var_r29 == 2) { + HuPrcSleep(arg3); + HuWinAttrReset(arg0, 0x400); + HuWinKeyWaitEntry(arg0); + break; + } + } else if (HuWinStatGet(arg0) != 1) { + break; + } + } + } + fn_1_6AEC(arg0, 0); + HuWinMesSet(arg0, MAKE_MESSID(37, 4)); + HuWinComKeyReset(); +} + +BOOL fn_1_6D80(s32 arg0) { + s32 var_r31; + s32 i; + + HuWinComKeyReset(); + if (winData[arg0].active_pad == 0xFF) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + var_r31 = HuWinChoiceGet(arg0, 0); + HuWinComKeyReset(); + if (var_r31 != 0) { + var_r31 = FALSE; + } else { + var_r31 = TRUE; + } + return var_r31; +} diff --git a/src/REL/mstory3Dll/result.c b/src/REL/mstory3Dll/result.c new file mode 100755 index 00000000..f9fb785b --- /dev/null +++ b/src/REL/mstory3Dll/result.c @@ -0,0 +1,1617 @@ +#include "REL/mstory3Dll.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/saveload.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ s32 unk0C; + /* 0x10 */ s32 unk10; + /* 0x14 */ s32 unk14; + /* 0x18 */ s32 unk18; + /* 0x1C */ char unk1C[0x18]; + /* 0x34 */ s32 unk34[4][2]; + /* 0x54 */ s32 unk54; + /* 0x58 */ char unk58[4]; + /* 0x5C */ s32 unk5C; + /* 0x60 */ char unk60[4]; + /* 0x64 */ s32 unk64; + /* 0x68 */ char unk68[4]; + /* 0x6C */ s32 unk6C; + /* 0x70 */ char unk70[4]; + /* 0x74 */ s32 unk74; + /* 0x78 */ char unk78[4]; + /* 0x7C */ s32 unk7C; + /* 0x80 */ char unk80[4]; + /* 0x84 */ s32 unk84; + /* 0x88 */ char unk88[4]; + /* 0x8C */ s32 unk8C; + /* 0x90 */ char unk90[4]; +} StructUnk38Bss1A0C; // Size 0x94 + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ s32 unk18; + /* 0x01C */ char unk1C[8]; + /* 0x024 */ s32 unk24; + /* 0x028 */ char unk28[0x10]; + /* 0x038 */ StructUnk38Bss1A0C unk38[4]; + /* 0x288 */ Vec unk288[5]; + /* 0x2C4 */ s32 unk2C4; + /* 0x2C8 */ s32 unk2C8; + /* 0x2CC */ s32 unk2CC; + /* 0x2D0 */ s32 unk2D0; + /* 0x2D4 */ s32 unk2D4; +} StructBss1A0C; // Size 0x2D8 + +void fn_1_15C0C(void); +void fn_1_16ED4(void); +void fn_1_18080(void); +void fn_1_184E8(void); +void fn_1_18558(void); +void fn_1_18F98(void); +void fn_1_19144(void); +void fn_1_19214(void); +void fn_1_194A0(void); +void fn_1_197B4(s32 arg0); +void fn_1_1C2F4(void); +void fn_1_1C460(void); +void fn_1_1CA98(void); +void fn_1_1CB7C(void); +void fn_1_1CC5C(void); +void fn_1_1CD60(void); +void fn_1_1D63C(void); +void fn_1_1D77C(void); +void fn_1_1D964(void); +void fn_1_1DA64(void); +void fn_1_1DAAC(void); +void fn_1_1DE4C(void); + +StructBss1A0C lbl_1_bss_1A0C; +StructBss1530 lbl_1_bss_19E4; +StructBss1530 lbl_1_bss_19BC; +StructBss1530 lbl_1_bss_1994; +StructBss1530 lbl_1_bss_18F4[4]; +AnimData* lbl_1_bss_18EC[2]; +AnimData* lbl_1_bss_18E4[2]; +AnimData* lbl_1_bss_18D8[3]; +s32 lbl_1_bss_18D4; +Process* lbl_1_bss_18D0; + +void fn_1_157F0(Process* arg0, s32 arg1, s32 arg2, s32 arg3) { + s32 var_r31; + + lbl_1_bss_18D0 = arg0; + lbl_1_bss_1A0C.unk00 = arg1; + lbl_1_bss_1A0C.unk08 = GWSystem.max_turn; + arg3 = lbl_1_bss_1A0C.unk14 = fn_1_373C(); + lbl_1_bss_1A0C.unk2D4 = arg2; + lbl_1_bss_1A0C.unk2CC = GWSystem.team; + if (_CheckFlag(FLAG_ID_MAKE(1, 29))) { + lbl_1_bss_1A0C.unk2D0 = 0; + } else { + lbl_1_bss_1A0C.unk2D0 = 1; + } + fn_1_9A0(); + fn_1_37C8(0xFF); + fn_1_290C(lbl_1_bss_18D0, fn_1_1DE4C); + fn_1_15C0C(); + fn_1_197B4(arg3); + fn_1_194A0(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuPrcChildCreate(fn_1_1CC5C, 100, 0x2000, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_19214, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_1DAAC, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_18080, 90, 0x2000, 0, HuPrcCurrentGet()); +} + +void fn_1_159A4(void) { + s32 var_r29; + s32 var_r30; + s32 i; + + for (i = 0; i < 4; i++) { + var_r29 = GWPlayer[i].stars - GWPlayerHandicapGet(i); + if (var_r29 <= 0) { + var_r29 = 0; + } + GWTotalStarsAdd(var_r29); + } + GWBoardPlayCountAdd(lbl_1_bss_1A0C.unk00, 1); + if (lbl_1_bss_1A0C.unk2CC == 1) { + if (lbl_1_bss_1A0C.unk38[0].unk08 == 0) { + GWBoardWinCountInc(lbl_1_bss_1A0C.unk38[0].unk10, lbl_1_bss_1A0C.unk00); + } + if (lbl_1_bss_1A0C.unk38[1].unk08 == 0) { + GWBoardWinCountInc(lbl_1_bss_1A0C.unk38[1].unk10, lbl_1_bss_1A0C.unk00); + } + } else if (lbl_1_bss_1A0C.unk38[0].unk08 == 0) { + GWBoardWinCountInc(lbl_1_bss_1A0C.unk38[0].unk10, lbl_1_bss_1A0C.unk00); + } + for (i = 0; i < 4; i++) { + var_r30 = GWPlayer[i].stars_max - GWPlayerHandicapGet(i); + if (var_r30 <= 0) { + var_r30 = 0; + } + if (GWBoardMaxStarsGet(lbl_1_bss_1A0C.unk00) <= var_r30 && !GWPlayer[i].com) { + GWBoardMaxStarsSet(lbl_1_bss_1A0C.unk00, var_r30); + } + } + for (i = 0; i < 4; i++) { + if (GWBoardMaxCoinsGet(lbl_1_bss_1A0C.unk00) <= GWPlayer[i].coins_max && !GWPlayer[i].com) { + GWBoardMaxCoinsSet(lbl_1_bss_1A0C.unk00, GWPlayer[i].coins_max); + } + } +} + +void fn_1_15C0C(void) { + lbl_1_bss_18EC[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 95), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18EC[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 96), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18D8[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 93), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18D8[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 94), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18D8[2] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 97), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18E4[0] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 136), MEMORY_DEFAULT_NUM)); + lbl_1_bss_18E4[1] = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 137), MEMORY_DEFAULT_NUM)); +} + +void fn_1_15D08(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5) { + HuSprPosSet(arg0, arg1, arg2 + arg4 / 2, arg3 + arg5 / 2); +} + +void fn_1_15DC8(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7) { + s32 var_r31; + s32 temp_r28; + + var_r31 = 0; + if (arg7 < 2) { + if ((temp_r28 = arg2 / 100) == 0) { + if (arg7 != 0) { + var_r31++; + } + HuSprBankSet(arg0, arg1, temp_r28); + fn_1_15D08(arg0, arg1, -1000, -1000, arg5, arg6); + } else { + HuSprBankSet(arg0, arg1, temp_r28); + fn_1_15D08(arg0, arg1, arg3 + arg5 * var_r31, arg4, arg5, arg6); + var_r31++; + } + } else { + arg1--; + } + if ((temp_r28 = (arg2 % 100) / 10) == 0 && arg2 / 100 == 0) { + if (arg7 != 0) { + var_r31++; + } + HuSprBankSet(arg0, arg1 + 1, temp_r28); + fn_1_15D08(arg0, arg1 + 1, -1000, -1000, arg5, arg6); + } else { + HuSprBankSet(arg0, arg1 + 1, temp_r28); + fn_1_15D08(arg0, arg1 + 1, arg3 + arg5 * var_r31, arg4, arg5, arg6); + var_r31++; + } + temp_r28 = arg2 % 10; + HuSprBankSet(arg0, arg1 + 2, temp_r28); + fn_1_15D08(arg0, arg1 + 2, arg3 + arg5 * var_r31, arg4, arg5, arg6); + var_r31++; +} + +void fn_1_161B8(void) { + s32 var_r30 = 16; + s32 var_r29 = 40; + s32 var_r28 = 0; + GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; + s32 i; + + while (TRUE) { + fn_1_938(); + if (HuPadBtnDown[0] & PAD_TRIGGER_R) { + var_r28++; + var_r28 %= 2; + } + if (var_r28 == 0) { + continue; + } + printWin(var_r30, var_r29, 220, 150, &sp10); + if (lbl_1_bss_19E4.unk04 == NULL) { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE"); + } else { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_19BC.unk04 == NULL) { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE"); + } else { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_1994.unk04 == NULL) { + print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> FALSE"); + } else { + print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> TRUE"); + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_18F4[i].unk04 == NULL) { + print8(var_r30, var_r29 + 30 + i * 10, 1.0f, "PROC_PLAYER%d -> FALSE", i); + } else { + print8(var_r30, var_r29 + 30 + i * 10, 1.0f, "PROC_PLAYER%d -> TRUE", i); + } + } + print8(var_r30, var_r29 + 80, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_1A0C.unk00, lbl_1_bss_1A0C.unk04, lbl_1_bss_1A0C.unk14); + print8(var_r30, var_r29 + 100, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (i = 0; i < 4; i++) { + print8(var_r30, var_r29 + 110 + i * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", i, + lbl_1_bss_1A0C.unk38[i].unk00, lbl_1_bss_1A0C.unk38[i].unk04, lbl_1_bss_1A0C.unk38[i].unk08, + lbl_1_bss_1A0C.unk38[i].unk0C, lbl_1_bss_1A0C.unk38[i].unk14, lbl_1_bss_1A0C.unk38[i].unk10); + } + } +} + +void fn_1_16574(void) { + fn_1_958(30); + fn_1_16ED4(); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + do { + fn_1_938(); + } while (WipeStatGet() != 0); + fn_1_958(60); +} + +void fn_1_165C8(void) { + s32 sp8[5]; + s32 i; + + for (i = 0; i < 5; i++) { + sp8[i] = 0; + fn_1_1E28(lbl_1_bss_1994.unk00, i * 3 + 1, i * 3 + 2, 0, 1); + Hu3DData[lbl_1_bss_1994.unk00->model[i * 3 + 1]].rot.y = -90.0f; + } + do { + fn_1_938(); + for (i = 0; i < 5; i++) { + if (sp8[i] == 0) { + lbl_1_bss_1A0C.unk288[i].x -= 5.0f; + if (i == 0) { + if (lbl_1_bss_1A0C.unk288[i].x <= -175.0f) { + sp8[i] = 1; + lbl_1_bss_1A0C.unk288[i].x = -175.0f; + fn_1_1E28(lbl_1_bss_1994.unk00, i * 3 + 1, i * 3 + 1, 15, 1); + } + } else { + if (lbl_1_bss_1A0C.unk288[i].x <= -240.0f) { + sp8[i] = 1; + lbl_1_bss_1A0C.unk288[i].x = -240.0f; + fn_1_1E28(lbl_1_bss_1994.unk00, i * 3 + 1, i * 3 + 1, 15, 1); + } + } + } else if (sp8[i] == 1) { + Hu3DData[lbl_1_bss_1994.unk00->model[i * 3 + 1]].rot.y = fn_1_5FC(Hu3DData[lbl_1_bss_1994.unk00->model[i * 3 + 1]].rot.y, 17.5f, 10.0f); + if (Hu3DData[lbl_1_bss_1994.unk00->model[i * 3 + 1]].rot.y >= 14.9f) { + sp8[i] = 2; + } + } + } + for (i = 0; i < 5; i++) { + if (sp8[i] != 2) { + break; + } + } + } while (i != 5); + lbl_1_bss_1A0C.unk0C = fn_1_1834(MAKE_MESSID(38, 12), 0); +} + +s32 fn_1_16924(void) { + s32 var_r31; + s32 var_r30; + + var_r31 = 0; + var_r30 = 0; + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1A0C.unk14 != -1) { + if (HuPadBtnDown[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] & PAD_BUTTON_A) { + HuAudFXPlay(0x1C); + break; + } else if (HuPadBtnDown[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] & PAD_BUTTON_MENU) { + HuAudFXPlay(1); + var_r31 = 1; + break; + } + } else if (var_r30++ >= 300) { + var_r31 = 1; + break; + } + } + if (var_r31 == 0) { + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + fn_1_1A24(lbl_1_bss_1A0C.unk0C); + fn_1_1C460(); + fn_1_1CA98(); + fn_1_18558(); + fn_1_18F98(); + fn_1_1D77C(); + fn_1_1D964(); + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_CROSS, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + lbl_1_bss_1A0C.unk10 = fn_1_1834(-1, 1); + } +} + +void fn_1_16AD4(void) { + lbl_1_bss_1A0C.unk24 = 1; + fn_1_1D44(lbl_1_bss_1A0C.unk10, MAKE_MESSID(38, lbl_1_bss_1A0C.unk2C8)); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1A0C.unk24++ > 5 && (HuPadBtnDown[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] & PAD_BUTTON_B)) { + HuAudFXPlay(3); + break; + } + if (HuPadStkX[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] >= 5 || (HuPadBtn[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] & PAD_BUTTON_RIGHT)) { + if (lbl_1_bss_1A0C.unk2C8 != 11) { + lbl_1_bss_1A0C.unk24 = 0; + } + lbl_1_bss_1A0C.unk2C4++; + if (lbl_1_bss_1A0C.unk2C4 >= 6) { + lbl_1_bss_1A0C.unk2C4 = 5; + } + lbl_1_bss_1A0C.unk2C8++; + if (lbl_1_bss_1A0C.unk2C8 >= 12) { + lbl_1_bss_1A0C.unk2C8 = 11; + } else { + fn_1_1CD60(); + fn_1_1D44(lbl_1_bss_1A0C.unk10, MAKE_MESSID(38, lbl_1_bss_1A0C.unk2C8)); + HuAudFXPlay(0); + fn_1_958(10); + } + } + if (HuPadStkX[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] <= -5 || (HuPadBtn[lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14] & PAD_BUTTON_LEFT)) { + if (lbl_1_bss_1A0C.unk2C8 != 0) { + lbl_1_bss_1A0C.unk24 = 0; + } + lbl_1_bss_1A0C.unk2C4--; + if (lbl_1_bss_1A0C.unk2C4 < 0) { + lbl_1_bss_1A0C.unk2C4 = 0; + } + lbl_1_bss_1A0C.unk2C8--; + if (lbl_1_bss_1A0C.unk2C8 < 0) { + lbl_1_bss_1A0C.unk2C8 = 0; + } else { + fn_1_1CD60(); + fn_1_1D44(lbl_1_bss_1A0C.unk10, MAKE_MESSID(38, lbl_1_bss_1A0C.unk2C8)); + HuAudFXPlay(0); + fn_1_958(10); + } + } + } + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_CROSS, 1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + fn_1_1A24(lbl_1_bss_1A0C.unk10); + fn_1_1CB7C(); + fn_1_1C2F4(); + fn_1_19144(); + fn_1_184E8(); + fn_1_1DA64(); + fn_1_1D63C(); + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_CROSS, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + lbl_1_bss_1A0C.unk0C = fn_1_1834(MAKE_MESSID(38, 12), 0); +} + +void fn_1_16ED4(void) { + s32 var_r30; + s32 i; + + for (i = 0; i < 5; i++) { + if (i == 0) { + lbl_1_bss_1A0C.unk288[i].x = 1800.0f; + lbl_1_bss_1A0C.unk288[i].y = 157.5f; + } else if (lbl_1_bss_1A0C.unk2CC == 1) { + if (i <= 2) { + var_r30 = 0; + } else { + var_r30 = 2; + } + lbl_1_bss_1A0C.unk288[i].x = 900.0f - 100.0f * var_r30; + lbl_1_bss_1A0C.unk288[i].y = 75.0f - 82.5f * (i - 1); + } else { + lbl_1_bss_1A0C.unk288[i].x = 900.0f - 100.0f * i; + lbl_1_bss_1A0C.unk288[i].y = 75.0f - 82.5f * (i - 1); + } + } + lbl_1_bss_1A0C.unk2C4 = 0; + lbl_1_bss_1A0C.unk2C8 = 0; + fn_1_1CB7C(); + fn_1_1C2F4(); + fn_1_19144(); + fn_1_184E8(); + fn_1_1DA64(); + fn_1_1D63C(); +} + +void fn_1_1712C(void) { + s32 temp_r3; + + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + if (SLSaveFlagGet() == 0) { + saveExecF = 0; + lbl_1_bss_18D4 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } + } + espInit(); + HuPrcVSleep(); + temp_r3 = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 32), 5000, 0); + espPosSet(temp_r3, 288.0f, 240.0f); + espAttrReset(temp_r3, 4); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + fn_1_159A4(); + if (saveExecF == 1) { + GWGameStat.party_continue = 0; + } + SLCommonSet(); + if (SLSaveFlagGet() == 1) { + SLSave(); + } + saveExecF = 0; + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_18D4 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_1728C(void) { + float sp8[2]; + s32 temp_r30 = 1; + s32 var_r29; + s32 var_r31; + + Hu3DAllKill(); + HuSprClose(); + HuSprInit(); + if (SLSaveFlagGet() == 0) { + lbl_1_bss_18D4 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } + } + espInit(); + HuPrcVSleep(); + espPosSet(var_r29 = espEntry(DATA_MAKE_NUM(DATADIR_WIN, 32), 5000, 0), 288.0f, 240.0f); + espAttrReset(var_r29, HUSPR_ATTR_DISPOFF); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + if (SLSaveFlagGet() == 1) { + HuWinInit(1); + HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(30, 22)); + var_r31 = HuWinExCreateStyled(-10000.0f, 150.0f, sp8[0], sp8[1], -1, 2); + winData[var_r31].active_pad = 1; + HuWinAttrSet(var_r31, 0x10); + HuWinExAnimIn(var_r31); + HuWinMesSet(var_r31, MAKE_MESSID(30, 22)); + temp_r30 = HuWinChoiceGet(var_r31, 0); + HuWinExAnimOut(var_r31); + HuWinExCleanup(var_r31); + if (SLSaveFlagGet() == 1 && temp_r30 == 0) { + SLCommonSet(); + SLSaveBoardStory(); + SLSave(); + } + } + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 20); + while (WipeStatGet() != 0) { + HuPrcVSleep(); + } + lbl_1_bss_18D4 = 1; + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +s32 fn_1_17484(s32 arg0) { + if (arg0 == 0 && _CheckFlag(FLAG_ID_MAKE(0, 2))) { + return 1; + } + if (arg0 == 1 && _CheckFlag(FLAG_ID_MAKE(0, 3))) { + return 1; + } + if (arg0 == 2 && _CheckFlag(FLAG_ID_MAKE(0, 4))) { + return 1; + } + if (arg0 == 3 && _CheckFlag(FLAG_ID_MAKE(0, 5))) { + return 1; + } + if (arg0 == 4 && _CheckFlag(FLAG_ID_MAKE(0, 6))) { + return 1; + } + if (arg0 == 5 && _CheckFlag(FLAG_ID_MAKE(0, 7))) { + return 1; + } + return 0; +} + +void fn_1_17570(void) { + s32 var_r30; + s32 i; + + var_r30 = 0; + WipeColorSet(0, 0, 0); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + do { + fn_1_938(); + } while (WipeStatGet() != 0); + CharModelKill(-1); + HuAudSeqAllFadeOut(1000); + HuAudSStreamAllFadeOut(1000); + lbl_1_bss_19E4.unk04 = NULL; + lbl_1_bss_19BC.unk04 = NULL; + lbl_1_bss_1994.unk04 = NULL; + for (i = 0; i < 4; i++) { + lbl_1_bss_18F4[i].unk04 = NULL; + } + if (GWPartyGet() == 1) { + HuPrcChildCreate(fn_1_1712C, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_938(); + } while (lbl_1_bss_18D4 != 1); + fn_1_958(30); + omOvlReturnEx(1, 1); + } else { + fn_1_159A4(); + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1A0C.unk38[i].unk10 != GWUnkB1Get()) { + continue; + } + _SetFlag(9); + switch (lbl_1_bss_1A0C.unk00) { + case 0: + if (_CheckFlag(2) == 0) { + _SetFlag(2); + var_r30 = 1; + } + break; + case 1: + if (_CheckFlag(3) == 0) { + _SetFlag(3); + var_r30 = 1; + } + break; + case 2: + if (_CheckFlag(4) == 0) { + _SetFlag(4); + var_r30 = 1; + } + break; + case 3: + if (_CheckFlag(5) == 0) { + _SetFlag(5); + var_r30 = 1; + } + break; + case 4: + if (_CheckFlag(6) == 0) { + _SetFlag(6); + var_r30 = 1; + } + break; + case 5: + if (_CheckFlag(7) == 0) { + _SetFlag(7); + var_r30 = 1; + } + break; + } + if (var_r30 == 1) { + if (lbl_1_bss_1A0C.unk38[i].unk18 == 0) { + if (lbl_1_bss_1A0C.unk00 == 5) { + GWGameStat.open_w06 = 1; + } + _ClearFlag(9); + OSReport("########## Next to BoardClear Event 10 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, _CheckFlag(2), _CheckFlag(9)); + fn_1_958(120); + HuPrcChildCreate(fn_1_1728C, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_938(); + } while (lbl_1_bss_18D4 != 1); + if (lbl_1_bss_1A0C.unk00 != 5) { + omOvlGotoEx(OVL_MSTORY, 1, 0, 0); + } else { + omOvlGotoEx(OVL_MSTORY2, 1, 1, 0); + } + } else { + switch (lbl_1_bss_1A0C.unk00) { + case 0: + _ClearFlag(2); + break; + case 1: + _ClearFlag(3); + break; + case 2: + _ClearFlag(4); + break; + case 3: + _ClearFlag(5); + break; + case 4: + _ClearFlag(6); + break; + case 5: + _ClearFlag(7); + break; + } + OSReport("########## Next to BoardMiss Event 01 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_17484(GWSystem.board), _CheckFlag(9)); + fn_1_958(120); + HuPrcChildCreate(fn_1_1728C, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_938(); + } while (lbl_1_bss_18D4 != 1); + if (lbl_1_bss_1A0C.unk00 != 5) { + omOvlGotoEx(OVL_MSTORY, 1, 1, 0); + } else { + omOvlGotoEx(OVL_MSTORY2, 1, 2, 0); + } + } + } else { + GWPlayerCfg->group = 0; + GWPlayerCfg->character = lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk10; + GWPlayerCfg->pad_idx = lbl_1_bss_1A0C.unk38[lbl_1_bss_1A0C.unk04].unk14; + GWPlayerCfg->iscom = 0; + for (i = 0; i < 4; i++) { + GWPlayer[i].character = GWPlayerCfg[i].character; + GWPlayer[i].port = GWPlayerCfg[i].pad_idx; + GWPlayer[i].com = GWPlayerCfg[i].iscom; + GWPlayer[i].team = GWPlayerCfg[i].group; + } + OSReport("########## Next to MapSelect Event 11 -> MapNo:%d, MapFlg:%d, MgFlg:%d\n", GWSystem.board, fn_1_17484(GWSystem.board), _CheckFlag(9)); + fn_1_958(120); + HuPrcChildCreate(fn_1_1728C, 100, 0x2000, 0, HuPrcCurrentGet()); + do { + fn_1_938(); + } while (lbl_1_bss_18D4 != 1); + omOvlGotoEx(OVL_MENT, 1, 10, 0); + } + } + } + while (TRUE) { + fn_1_938(); + } +} + +void fn_1_17DC0(omObjData* arg0, StructBss1530* arg1) { + fn_1_16574(); + fn_1_165C8(); + while (TRUE) { + fn_1_938(); + if (fn_1_16924() != 0) { + break; + } + fn_1_16AD4(); + } + fn_1_17570(); + arg1->unk04 = 0; +} + +void fn_1_18080(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_18D0, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_19E4.unk00 = temp_r3; + lbl_1_bss_19E4.unk04 = (void*) fn_1_17DC0; + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_19E4.unk04 != NULL) { + lbl_1_bss_19E4.unk04(temp_r3, &lbl_1_bss_19E4); + } + } +} + +void fn_1_1811C(omObjData* arg0, s32 arg1) { + s32 var_r29; + s32 i; + + arg0->work[0] = HuSprGrpCreate(1); + var_r29 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 75) + arg1, MEMORY_DEFAULT_NUM)), 1000, 0); + HuSprGrpMemberSet(arg0->work[0], 0, var_r29); + // TODO: figure out the actual args of this fn_1_15D08 call. + // It will match as long as the values (arg2 + arg4 / 2) and (arg3 + arg5 / 2) are preserved. + fn_1_15D08(arg0->work[0], 0, 288, 240, 0, 0); + HuSprGrpPosSet(arg0->work[0], 0.0f, 0.0f); + HuSprGrpDrawNoSet(arg0->work[0], 0x7F); + { + s32 spC[] = { + DATA_MAKE_NUM(DATADIR_MSTORY3, 104), + DATA_MAKE_NUM(DATADIR_MSTORY3, 105), + DATA_MAKE_NUM(DATADIR_MSTORY3, 106), + DATA_MAKE_NUM(DATADIR_MSTORY3, 107), + DATA_MAKE_NUM(DATADIR_MSTORY3, 108), + DATA_MAKE_NUM(DATADIR_MSTORY3, 109), + DATA_MAKE_NUM(DATADIR_MSTORY3, 106) + }; + + for (i = 0; i < 7; i++) { + arg0->model[i + 1] = Hu3DModelCreateFile(spC[i]); + Hu3DModelPosSet(arg0->model[i + 1], -122.5 + 42.5 * i, 185.0f, -10.0f); + Hu3DModelRotSet(arg0->model[i + 1], 0.0f, 1980.0f, 0.0f); + } + } +} + +void fn_1_18334(omObjData* arg0, s32* arg1) { + s32 sp8 = 0; + s32 i; + + for (i = 0; i < 7; i++) { + if (arg1[2] == 0 && Hu3DData[arg0->model[i + 1]].pos.x >= lbl_1_bss_1A0C.unk288[0].x) { + Hu3DData[arg0->model[i + 1]].rot.y = fn_1_5FC(Hu3DData[arg0->model[i + 1]].rot.y, 0.0f, 20.0f); + } else if (arg1[2] == 1 && Hu3DData[arg0->model[i + 1]].pos.x <= lbl_1_bss_1A0C.unk288[0].x) { + Hu3DData[arg0->model[i + 1]].rot.y = fn_1_5FC(Hu3DData[arg0->model[i + 1]].rot.y, 1980.0f, 20.0f); + } + } +} + +void fn_1_184E8(void) { + s32 i; + + for (i = 0; i < 7; i++) { + Hu3DModelAttrReset(lbl_1_bss_19BC.unk00->model[i + 1], HU3D_ATTR_DISPOFF); + } + lbl_1_bss_19BC.unk04 = (void*) fn_1_18334; +} + +void fn_1_18558(void) { + s32 i; + + for (i = 0; i < 7; i++) { + Hu3DModelAttrSet(lbl_1_bss_19BC.unk00->model[i + 1], HU3D_ATTR_DISPOFF); + } + for (i = 0; i < 7; i++) { + if (lbl_1_bss_19BC.unk08 != 0) { + Hu3DData[lbl_1_bss_19BC.unk00->model[i + 1]].rot.y = 1980.0f; + } else { + Hu3DData[lbl_1_bss_19BC.unk00->model[i + 1]].rot.y = 0.0f; + } + } + lbl_1_bss_19BC.unk04 = NULL; +} + +void fn_1_18668(omObjData* arg0, s32 arg1) { + s32 var_r30; + s32 i; + + // TODO: figure out the actual args of fn_1_15D08 calls. + // It will match as long as the values (arg2 + arg4 / 2) and (arg3 + arg5 / 2) are preserved. + arg0->work[1] = HuSprGrpCreate(8); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 116), MEMORY_DEFAULT_NUM)), 900, 0); + HuSprGrpMemberSet(arg0->work[1], 0, var_r30); + fn_1_15D08(arg0->work[1], 0, 368, 171, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 117), MEMORY_DEFAULT_NUM)), 600, 0); + HuSprGrpMemberSet(arg0->work[1], 1, var_r30); + fn_1_15D08(arg0->work[1], 1, 292, 168, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 118), MEMORY_DEFAULT_NUM)), 500, 0); + HuSprGrpMemberSet(arg0->work[1], 2, var_r30); + fn_1_15D08(arg0->work[1], 2, 292, 168, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 119), MEMORY_DEFAULT_NUM)), 500, 0); + HuSprGrpMemberSet(arg0->work[1], 3, var_r30); + fn_1_15D08(arg0->work[1], 3, 292, 168, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(arg1 + DATA_MAKE_NUM(DATADIR_MSTORY3, 110), MEMORY_DEFAULT_NUM)), 500, 0); + HuSprGrpMemberSet(arg0->work[1], 4, var_r30); + fn_1_15D08(arg0->work[1], 4, 96, 53, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 138), MEMORY_DEFAULT_NUM)), 500, 0); + HuSprGrpMemberSet(arg0->work[1], 5, var_r30); + fn_1_15D08(arg0->work[1], 5, 407, 37, 0, 0); + for (i = 0; i < 2; i++) { + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 139), MEMORY_DEFAULT_NUM)), 500, 0); + HuSprGrpMemberSet(arg0->work[1], i + 6, var_r30); + } + // TODO: figure out the actual value of arg7. It will match as long as arg7 >= 2. + fn_1_15DC8(arg0->work[1], 6, lbl_1_bss_1A0C.unk08, 293, 19, 36, 36, 2); + arg0->work[2] = HuSprGrpCreate(2); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 120), MEMORY_DEFAULT_NUM)), 800, 0); + HuSprGrpMemberSet(arg0->work[2], 0, var_r30); + fn_1_15D08(arg0->work[2], 0, 34, 119, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 121), MEMORY_DEFAULT_NUM)), 400, 0); + HuSprGrpMemberSet(arg0->work[2], 1, var_r30); + fn_1_15D08(arg0->work[2], 1, 36, 121, 0, 0); + arg0->work[3] = HuSprGrpCreate(12); + for (i = 0; i < 12; i++) { + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(i + DATA_MAKE_NUM(DATADIR_MSTORY3, 124), MEMORY_DEFAULT_NUM)), 700, 0); + HuSprGrpMemberSet(arg0->work[3], i, var_r30); + fn_1_15D08(arg0->work[3], i, i * 66, 16, 58, 0); + } + HuSprGrpPosSet(arg0->work[2], 164 + lbl_1_bss_1A0C.unk2C4 * 66, 78.0f); + HuSprGrpDrawNoSet(arg0->work[1], 0x7F); + HuSprGrpDrawNoSet(arg0->work[2], 0x7F); + HuSprGrpDrawNoSet(arg0->work[3], 0x7F); +} + +void fn_1_18CFC(omObjData* arg0) { + float temp_f31; + float var_f30; + s32 var_r29; + s32 var_r28; + s32 var_r30; + + var_r28 = lbl_1_bss_1A0C.unk2C8 - lbl_1_bss_1A0C.unk2C4; + if (var_r28 < 0) { + var_r28 = 0; + } + temp_f31 = HuSprGrpData[arg0->work[2]].x; + var_f30 = 164 + lbl_1_bss_1A0C.unk2C4 * 66; + temp_f31 = fn_1_5FC(temp_f31, var_f30, 2.0f); + HuSprGrpPosSet(arg0->work[1], -5.0f, 25.0f); + HuSprGrpPosSet(arg0->work[2], temp_f31, 78.0f); + HuSprGrpPosSet(arg0->work[3], 169 - var_r28 * 66, 82.0f); + for (var_r30 = 0; var_r30 < 12; var_r30++) { + if (var_r30 < var_r28 || var_r30 > var_r28 + 5) { + HuSprAttrSet(arg0->work[3], var_r30, HUSPR_ATTR_DISPOFF); + } else { + HuSprAttrReset(arg0->work[3], var_r30, HUSPR_ATTR_DISPOFF); + } + } + var_r29 = lbl_1_bss_1A0C.unk2C8 - lbl_1_bss_1A0C.unk2C4; + if (var_r29 < 0) { + var_r29 = 0; + } + if (var_r29 == 0) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 2, 2); + } else if (var_r29 == 1) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 2, 0); + } + if (var_r29 == 6) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 3, 2); + } else if (var_r29 == 5) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 3, 0); + } +} + +void fn_1_18F98(void) { + s32 var_r30; + s32 i; + + for (i = 0; i < 8; i++) { + HuSprAttrReset(lbl_1_bss_19BC.unk00->work[1], i, HUSPR_ATTR_DISPOFF); + } + for (i = 0; i < 2; i++) { + HuSprAttrReset(lbl_1_bss_19BC.unk00->work[2], i, HUSPR_ATTR_DISPOFF); + } + for (i = 0; i < 12; i++) { + HuSprAttrReset(lbl_1_bss_19BC.unk00->work[3], i, HUSPR_ATTR_DISPOFF); + } + var_r30 = lbl_1_bss_1A0C.unk2C8 - lbl_1_bss_1A0C.unk2C4; + if (var_r30 < 0) { + var_r30 = 0; + } + if (var_r30 == 0) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 2, 2); + } else if (var_r30 == 1) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 2, 0); + } + if (var_r30 == 6) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 3, 2); + } else if (var_r30 == 5) { + HuSprBankSet(lbl_1_bss_19BC.unk00->work[1], 3, 0); + } + lbl_1_bss_19BC.unk04 = (void*) fn_1_18CFC; +} + +void fn_1_19144(void) { + s32 i; + + for (i = 0; i < 8; i++) { + HuSprAttrSet(lbl_1_bss_19BC.unk00->work[1], i, HUSPR_ATTR_DISPOFF); + } + for (i = 0; i < 2; i++) { + HuSprAttrSet(lbl_1_bss_19BC.unk00->work[2], i, HUSPR_ATTR_DISPOFF); + } + for (i = 0; i < 12; i++) { + HuSprAttrSet(lbl_1_bss_19BC.unk00->work[3], i, HUSPR_ATTR_DISPOFF); + } + lbl_1_bss_19BC.unk04 = NULL; +} + +void fn_1_19214(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_18D0, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_19BC.unk00 = temp_r3; + lbl_1_bss_19BC.unk04 = NULL; + fn_1_1811C(temp_r3, lbl_1_bss_1A0C.unk00); + fn_1_18668(temp_r3, lbl_1_bss_1A0C.unk00); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_19BC.unk04 != NULL) { + lbl_1_bss_19BC.unk04(temp_r3, &lbl_1_bss_19BC); + } + } +} + +void fn_1_194A0(void) { + s32 var_r29; + s32 i; + s32 j; + + for (i = 0; i < 12; i++) { + var_r29 = 0; + for (j = 0; j < 4; j++) { + if (var_r29 <= lbl_1_bss_1A0C.unk38[j].unk34[i][0]) { + var_r29 = lbl_1_bss_1A0C.unk38[j].unk34[i][0]; + } + } + if (var_r29 > 0) { + for (j = 0; j < 4; j++) { + if (var_r29 == lbl_1_bss_1A0C.unk38[j].unk34[i][0]) { + lbl_1_bss_1A0C.unk38[j].unk34[i][1] = 1; + } + } + } + } +} + +void fn_1_19590(StructUnk38Bss1A0C* arg0, s32 arg1, s32 arg2) { + arg0->unk00 = arg1; + arg0->unk04 = GWPlayerCfg[arg0->unk00].group; + arg0->unk08 = GWPlayerCfg[arg0->unk00].iscom; + arg0->unk0C = GWPlayerCfg[arg0->unk00].diff; + arg0->unk10 = GWPlayerCfg[arg0->unk00].character; + arg0->unk14 = GWPlayerCfg[arg0->unk00].pad_idx; + arg0->unk18 = GWPlayer[arg0->unk00].rank; + arg0->unk34[0][0] = GWPlayer[arg0->unk00].stars; + arg0->unk34[1][0] = GWPlayer[arg0->unk00].coins; + arg0->unk34[2][0] = GWPlayer[arg0->unk00].coins_mg; + arg0->unk34[3][0] = GWPlayer[arg0->unk00].coins_max; + arg0->unk54 = GWPlayer[arg0->unk00].blue_count; + arg0->unk5C = GWPlayer[arg0->unk00].red_count; + arg0->unk64 = GWPlayer[arg0->unk00].question_count; + arg0->unk6C = GWPlayer[arg0->unk00].fortune_count; + arg0->unk74 = GWPlayer[arg0->unk00].bowser_count; + arg0->unk7C = GWPlayer[arg0->unk00].battle_count; + arg0->unk84 = GWPlayer[arg0->unk00].mushroom_count; + arg0->unk8C = GWPlayer[arg0->unk00].warp_count; +} + +void fn_1_197B4(s32 arg0) { + s32 sp74[4][2]; + s32 sp54[4][2]; + s32 sp44[4]; + s32 sp34[4]; + s32 sp24[4]; + s32 var_r28; + s32 var_r29; + s32 j; + s32 i; + + var_r28 = 0; + sp44[0] = 0; + for (i = 1; i < 4; i++) { + sp44[i] = sp44[i - 1] + 1; + if (sp44[i] >= 4) { + sp44[i] = 0; + } + } + for (i = 0; i < 4; i++) { + sp34[i] = GWPlayer[sp44[i]].rank; + } + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + if (i == sp34[j]) { + sp74[var_r28][0] = sp44[j]; + sp74[var_r28][1] = sp34[j]; + var_r28++; + } + } + } + if (lbl_1_bss_1A0C.unk2CC == 1) { + var_r29 = lbl_1_bss_1A0C.unk2D0; + for (i = 0; i < 4; i++) { + sp24[0] = GWPlayer[sp74[0][0]].team; + sp24[1] = GWPlayer[sp74[1][0]].team; + sp24[2] = GWPlayer[sp74[2][0]].team; + sp24[3] = GWPlayer[sp74[3][0]].team; + sp54[i][0] = sp74[i][0]; + sp54[i][1] = sp74[i][1]; + } + OSReport("########## Sort Start WIN:%d IDX (%d,%d,%d), (%d,%d,%d), (%d,%d,%d), (%d,%d,%d)\n", var_r29, + sp24[0], sp74[0][0], sp74[0][1], sp24[1], sp74[1][0], sp74[1][1], + sp24[2], sp74[2][0], sp74[2][1], sp24[3], sp74[3][0], sp74[3][1]); + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + if (sp24[j] != -1 && var_r29 == sp24[j]) { + sp24[j] = -1; + sp74[i][0] = sp54[j][0]; + sp74[i][1] = sp54[j][1]; + break; + } + } + if (i == 1) { + var_r29++; + var_r29 %= 2; + } + } + OSReport("########## Sort End WIN:%d IDX %d, %d, %d, %d\n", var_r29, sp74[0][0], sp74[1][0], sp74[2][0], sp74[3][0]); + OSReport("########## Sort End RANK %d, %d, %d, %d,\n", sp74[0][1], sp74[1][1], sp74[2][1], sp74[3][1]); + } + for (i = 0; i < 4; i++) { + fn_1_19590(&lbl_1_bss_1A0C.unk38[i], sp74[i][0], sp74[i][1]); + if (arg0 == sp74[i][0]) { + lbl_1_bss_1A0C.unk04 = i; + } + } +} + +void fn_1_1A008(omObjData* arg0, s32 arg1) { + s32 spDC; + s32 spD8; + s32 spD4; + s32 spD0; + s32 spCC; + s32 spC8; + StructUnk38Bss1A0C* temp_r27; + s32 var_r30; + s32 var_r29; + s32 var_r28; + + // TODO: figure out the actual args of fn_1_15D08 calls. + // It will match as long as the values (arg2 + arg4 / 2) and (arg3 + arg5 / 2) are preserved. + temp_r27 = &lbl_1_bss_1A0C.unk38[arg1]; + if (lbl_1_bss_1A0C.unk2CC == 1) { + spD4 = lbl_1_bss_1A0C.unk2D0; + if (arg1 > 1) { + spD4++; + spD4 %= 2; + } + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 140) + spD4); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 142) + spD4); + arg0->motion[2] = Hu3DMotionIDGet(arg0->model[2]); + if (arg1 <= 1) { + spD4 = 0; + } else { + spD4 = 1; + } + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 100) + spD4); + Hu3DModelHookSet(arg0->model[1], "results_flag04-hook_cubes", arg0->model[3]); + } else { + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 98)); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 99)); + arg0->motion[2] = Hu3DMotionIDGet(arg0->model[2]); + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 100) + temp_r27->unk18); + Hu3DModelHookSet(arg0->model[1], "results_flag04-hook_cubes", arg0->model[3]); + } + arg0->work[0] = HuSprGrpCreate(12); + if (lbl_1_bss_1A0C.unk2CC == 1) { + spD0 = 35; + spCC = 10; + spC8 = 65; + if (arg1 <= 1) { + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 81), MEMORY_DEFAULT_NUM)), 900, 0); + } else { + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 82), MEMORY_DEFAULT_NUM)), 900, 0); + } + HuSprGrpMemberSet(arg0->work[0], 0, var_r30); + fn_1_15D08(arg0->work[0], 0, 40, spD0 + 36, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 85) + temp_r27->unk10, MEMORY_DEFAULT_NUM)), 900, 0); + HuSprGrpMemberSet(arg0->work[0], 1, var_r30); + if (arg1 % 2 == 0) { + fn_1_15D08(arg0->work[0], 1, 119, spD0 + 34, 0, 0); + } else { + fn_1_15D08(arg0->work[0], 1, 189, -spD0 + 24, 0, 0); + } + var_r30 = HuSprCreate(lbl_1_bss_18D8[0], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 2, var_r30); + fn_1_15D08(arg0->work[0], 2, 262, spCC + 29, 0, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[2], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 3, var_r30); + fn_1_15D08(arg0->work[0], 3, 312, spCC + 29, 0, 0); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + spDC = lbl_1_bss_1A0C.unk38[0].unk34[0][0] + lbl_1_bss_1A0C.unk38[1].unk34[0][0]; + spD8 = lbl_1_bss_1A0C.unk38[2].unk34[0][0] + lbl_1_bss_1A0C.unk38[3].unk34[0][0]; + if (arg1 <= 1) { + if (spDC >= spD8) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[1], 900, 0); + } else { + var_r30 = HuSprCreate(lbl_1_bss_18EC[0], 900, 0); + } + } else { + if (spDC <= spD8) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[1], 900, 0); + } else { + var_r30 = HuSprCreate(lbl_1_bss_18EC[0], 900, 0); + } + } + HuSprGrpMemberSet(arg0->work[0], var_r28 + 4, var_r30); + } + if (arg1 <= 1) { + var_r29 = lbl_1_bss_1A0C.unk38[0].unk34[0][0] + lbl_1_bss_1A0C.unk38[1].unk34[0][0]; + if (var_r29 >= 999) { + var_r29 = 999; + } + fn_1_15DC8(arg0->work[0], 4, var_r29, 340, spCC + 11, 26, 36, 0); + } else { + var_r29 = lbl_1_bss_1A0C.unk38[2].unk34[0][0] + lbl_1_bss_1A0C.unk38[3].unk34[0][0]; + if (var_r29 >= 999) { + var_r29 = 999; + } + fn_1_15DC8(arg0->work[0], 4, var_r29, 340, spCC + 11, 26, 36, 0); + } + var_r30 = HuSprCreate(lbl_1_bss_18D8[1], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 7, var_r30); + fn_1_15D08(arg0->work[0], 7, 262, spC8 + 29, 0, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[2], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 8, var_r30); + fn_1_15D08(arg0->work[0], 8, 312, spC8 + 29, 0, 0); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + spDC = lbl_1_bss_1A0C.unk38[0].unk34[1][0] + lbl_1_bss_1A0C.unk38[1].unk34[1][0]; + spD8 = lbl_1_bss_1A0C.unk38[2].unk34[1][0] + lbl_1_bss_1A0C.unk38[3].unk34[1][0]; + if (arg1 <= 1) { + if (spDC >= spD8) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[1], 900, 0); + } else { + var_r30 = HuSprCreate(lbl_1_bss_18EC[0], 900, 0); + } + } else { + if (spDC <= spD8) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[1], 900, 0); + } else { + var_r30 = HuSprCreate(lbl_1_bss_18EC[0], 900, 0); + } + } + HuSprGrpMemberSet(arg0->work[0], var_r28 + 9, var_r30); + } + if (arg1 <= 1) { + var_r29 = lbl_1_bss_1A0C.unk38[0].unk34[1][0] + lbl_1_bss_1A0C.unk38[1].unk34[1][0]; + if (var_r29 >= 999) { + var_r29 = 999; + } + fn_1_15DC8(arg0->work[0], 9, var_r29, 340, spC8 + 11, 26, 36, 0); + } else { + var_r29 = lbl_1_bss_1A0C.unk38[2].unk34[1][0] + lbl_1_bss_1A0C.unk38[3].unk34[1][0]; + if (var_r29 >= 999) { + var_r29 = 999; + } + fn_1_15DC8(arg0->work[0], 9, var_r29, 340, spC8 + 11, 26, 36, 0); + } + } else { + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 81) + temp_r27->unk18, MEMORY_DEFAULT_NUM)), 900, 0); + HuSprGrpMemberSet(arg0->work[0], 0, var_r30); + fn_1_15D08(arg0->work[0], 0, 25, 37, 0, 0); + var_r30 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 85) + temp_r27->unk10, MEMORY_DEFAULT_NUM)), 900, 0); + HuSprGrpMemberSet(arg0->work[0], 1, var_r30); + fn_1_15D08(arg0->work[0], 1, 87, 29, 0, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[0], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 2, var_r30); + fn_1_15D08(arg0->work[0], 2, 144, 29, 0, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[2], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 3, var_r30); + fn_1_15D08(arg0->work[0], 3, 178, 29, 0, 0); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[temp_r27->unk34[0][1]], 900, 0); + HuSprGrpMemberSet(arg0->work[0], (var_r28 + 4), var_r30); + } + fn_1_15DC8(arg0->work[0], 4, temp_r27->unk34[0][0], 190, 11, 26, 36, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[1], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 7, var_r30); + fn_1_15D08(arg0->work[0], 7, 304, 29, 0, 0); + var_r30 = HuSprCreate(lbl_1_bss_18D8[2], 900, 0); + HuSprGrpMemberSet(arg0->work[0], 8, var_r30); + fn_1_15D08(arg0->work[0], 8, 338, 29, 0, 0); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + var_r30 = HuSprCreate(lbl_1_bss_18EC[temp_r27->unk34[1][1]], 900, 0); + HuSprGrpMemberSet(arg0->work[0], var_r28 + 9, var_r30); + } + fn_1_15DC8(arg0->work[0], 9, temp_r27->unk34[1][0], 350, 11, 26, 36, 0); + } + lbl_1_bss_18F4[var_r28].unk14 = 1000 + rand8() * 5; +} + +void fn_1_1BEFC(omObjData* arg0, StructBss1530* arg1) { + Mtx sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + s32 var_r29; + + if (lbl_1_bss_1A0C.unk2CC == 1) { + if (arg1->unk08 % 2 == 1) { + Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[3], HU3D_ATTR_DISPOFF); + for (var_r29 = 0; var_r29 < 12; var_r29++) { + HuSprAttrSet(arg0->work[0], var_r29, 4); + } + } + HuSprAttrReset(arg0->work[0], 1, HUSPR_ATTR_DISPOFF); + Hu3DModelPosSet(arg0->model[1], lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].x + 15.0f, lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].y + 25.0f - 35.0f, lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].z); + } else { + Hu3DModelPosSet(arg0->model[1], lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].x + 15.0f, lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].y + 25.0f, lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].z); + } + if (Hu3DData[arg0->model[1]].pos.x <= -195.0f) { + Hu3DData[arg0->model[1]].pos.x = -195.0f; + } + Hu3DModelObjMtxGet(arg0->model[1], "results_flag04-hook_flag", sp2C); + Hu3DModelPosSet(arg0->model[2], sp2C[0][3], sp2C[1][3], sp2C[2][3]); + if (arg1->unk0C++ >= arg1->unk14) { + arg1->unk0C = 0; + arg1->unk14 = rand8() * 5 + 1000; + fn_1_1E28(arg0, 2, 2, 0, 0); + } + Hu3DModelRotSet(arg0->model[3], 0.0f, arg1->unk10 += 3, 0.0f); + if (arg1->unk10 >= 360) { + arg1->unk10 -= 360; + } + sp8.x = Hu3DData[arg0->model[1]].pos.x; + sp8.y = lbl_1_bss_1A0C.unk288[arg1->unk08 + 1].y + 25.0f; + sp8.z = Hu3DData[arg0->model[1]].pos.z; + sp20.x = sp8.x + 24.0f; + sp20.y = sp8.y + 40.0f; + sp20.z = sp8.z; + Hu3D3Dto2D(&sp20, 1, &sp14); + HuSprGrpPosSet(arg0->work[0], sp14.x, sp14.y); +} + +void fn_1_1C2F4(void) { + s32 var_r30; + s32 var_r31; + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + for (var_r31 = 0; var_r31 < 3; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_18F4[var_r30].unk00->model[var_r31 + 1], HU3D_ATTR_DISPOFF); + } + if (lbl_1_bss_1A0C.unk2CC == 1) { + if (var_r30 % 2 == 0) { + for (var_r31 = 0; var_r31 < 12; var_r31++) { + HuSprAttrReset(lbl_1_bss_18F4[var_r30].unk00->work[0], var_r31, HUSPR_ATTR_DISPOFF); + } + } + HuSprAttrReset(lbl_1_bss_18F4[var_r30].unk00->work[0], 1, HUSPR_ATTR_DISPOFF); + } else { + for (var_r31 = 0; var_r31 < 12; var_r31++) { + HuSprAttrReset(lbl_1_bss_18F4[var_r30].unk00->work[0], var_r31, HUSPR_ATTR_DISPOFF); + } + } + lbl_1_bss_18F4[var_r30].unk04 = (void*) fn_1_1BEFC; + } +} + +void fn_1_1C460(void) { + s32 var_r30; + s32 var_r31; + + for (var_r30 = 0; var_r30 < 4; var_r30++) { + for (var_r31 = 0; var_r31 < 3; var_r31++) { + Hu3DModelAttrSet(lbl_1_bss_18F4[var_r30].unk00->model[var_r31 + 1], HU3D_ATTR_DISPOFF); + } + for (var_r31 = 0; var_r31 < 12; var_r31++) { + HuSprAttrSet(lbl_1_bss_18F4[var_r30].unk00->work[0], var_r31, HUSPR_ATTR_DISPOFF); + } + lbl_1_bss_18F4[var_r30].unk04 = NULL; + } +} + +void fn_1_1C534(omObjData* arg0, s32 arg1) { + StructUnk38Bss1A0C* temp_r25; + s32 var_r22; + s32 i; + s32 j; + + temp_r25 = &lbl_1_bss_1A0C.unk38[arg1]; + arg0->work[1] = HuSprGrpCreate(1); + var_r22 = HuSprCreate(HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MSTORY3, 122), MEMORY_DEFAULT_NUM)), 700, 0); + HuSprGrpMemberSet(arg0->work[1], 0, var_r22); + HuSprBankSet(arg0->work[1], 0, temp_r25->unk10); + // TODO: figure out the actual args of this fn_1_15D08 call. + // It will match as long as the values (arg2 + arg4 / 2) and (arg3 + arg5 / 2) are preserved. + fn_1_15D08(arg0->work[1], 0, 66, 21, 0, 0); + arg0->work[2] = HuSprGrpCreate(0x24); + for (i = 0; i < 12; i++) { + for (j = 0; j < 3; j++) { + var_r22 = HuSprCreate(lbl_1_bss_18E4[temp_r25->unk34[i][1]], 700, 0); + HuSprGrpMemberSet(arg0->work[2], j + i * 3, var_r22); + } + fn_1_15DC8(arg0->work[2], i * 3, temp_r25->unk34[i][0], i * 66, 0, 20, 32, 1); + } + HuSprGrpDrawNoSet(arg0->work[1], 0x7F); + HuSprGrpDrawNoSet(arg0->work[2], 0x7F); +} + +void fn_1_1C914(omObjData* arg0, StructBss1530* arg1) { + s32 i; + s32 j; + s32 var_r28; + + var_r28 = lbl_1_bss_1A0C.unk2C8 - lbl_1_bss_1A0C.unk2C4; + if (var_r28 < 0) { + var_r28 = 0; + } + HuSprGrpPosSet(arg0->work[1], 17.0f, arg1->unk08 * 48 + 118); + HuSprGrpPosSet(arg0->work[2], 169 - var_r28 * 66, arg1->unk08 * 48 + 123); + for (i = 0; i < 12; i++) { + for (j = 0; j < 3; j++) { + if (i < var_r28 || i > var_r28 + 5) { + HuSprAttrSet(arg0->work[2], j + i * 3, HUSPR_ATTR_DISPOFF); + } else { + HuSprAttrReset(arg0->work[2], j + i * 3, HUSPR_ATTR_DISPOFF); + } + } + } +} + +void fn_1_1CA98(void) { + s32 i, j, k; + + for (i = 0; i < 4; i++) { + HuSprAttrReset(lbl_1_bss_18F4[i].unk00->work[1], 0, HUSPR_ATTR_DISPOFF); + for (j = 0; j < 12; j++) { + for (k = 0; k < 3; k++) { + HuSprAttrReset(lbl_1_bss_18F4[i].unk00->work[2], k + j * 3, HUSPR_ATTR_DISPOFF); + } + } + lbl_1_bss_18F4[i].unk04 = (void*) fn_1_1C914; + } +} + +void fn_1_1CB7C(void) { + s32 i, j, k; + + for (i = 0; i < 4; i++) { + HuSprAttrSet(lbl_1_bss_18F4[i].unk00->work[1], 0, HUSPR_ATTR_DISPOFF); + for (j = 0; j < 12; j++) { + for (k = 0; k < 3; k++) { + HuSprAttrSet(lbl_1_bss_18F4[i].unk00->work[2], k + j * 3, HUSPR_ATTR_DISPOFF); + } + } + lbl_1_bss_18F4[i].unk04 = NULL; + } +} + +void fn_1_1CC5C(void) { + omObjData* temp_r3; + s32 temp_r31; + + temp_r31 = lbl_1_bss_1A0C.unk18++; + temp_r3 = omAddObjEx(lbl_1_bss_18D0, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_18F4[temp_r31].unk00 = temp_r3; + lbl_1_bss_18F4[temp_r31].unk04 = NULL; + lbl_1_bss_18F4[temp_r31].unk08 = temp_r31; + fn_1_1A008(temp_r3, temp_r31); + fn_1_1C534(temp_r3, temp_r31); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_18F4[temp_r31].unk04 != NULL) { + lbl_1_bss_18F4[temp_r31].unk04(temp_r3, &lbl_1_bss_18F4[temp_r31]); + } + } +} + +void fn_1_1CD60(void) { + if (lbl_1_bss_1994.unk00->work[0] != 1) { + fn_1_1E28(lbl_1_bss_1994.unk00, 4, 6, 15, 0); + lbl_1_bss_1994.unk00->work[0] = 1; + lbl_1_bss_1994.unk00->work[1] = 4; + lbl_1_bss_1994.unk00->work[2] = 16; + } +} + +void fn_1_1CDF0(omObjData* arg0) { + s32 sp20[] = { + DATA_MAKE_NUM(DATADIR_MSTORY3, 46), + DATA_MAKE_NUM(DATADIR_MSTORY3, 40), + DATA_MAKE_NUM(DATADIR_MSTORY3, 52), + DATA_MAKE_NUM(DATADIR_MSTORY3, 58), + DATA_MAKE_NUM(DATADIR_MSTORY3, 64) + }; + s32 sp34[][3] = { + { DATA_MAKE_NUM(DATADIR_MSTORY3, 47), DATA_MAKE_NUM(DATADIR_MSTORY3, 48), DATA_MAKE_NUM(DATADIR_MSTORY3, 49) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 41), DATA_MAKE_NUM(DATADIR_MSTORY3, 42), DATA_MAKE_NUM(DATADIR_MSTORY3, 43) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 53), DATA_MAKE_NUM(DATADIR_MSTORY3, 54), DATA_MAKE_NUM(DATADIR_MSTORY3, 55) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 59), DATA_MAKE_NUM(DATADIR_MSTORY3, 60), DATA_MAKE_NUM(DATADIR_MSTORY3, 61) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 65), DATA_MAKE_NUM(DATADIR_MSTORY3, 66), DATA_MAKE_NUM(DATADIR_MSTORY3, 67) } + }; + s32 i; + + for (i = 0; i < 5; i++) { + arg0->model[i * 3 + 1] = Hu3DModelCreateFile(sp20[i]); + arg0->motion[i * 3 + 1] = Hu3DJointMotionFile(arg0->model[i * 3 + 1], sp34[i][0]); + arg0->motion[i * 3 + 2] = Hu3DJointMotionFile(arg0->model[i * 3 + 1], sp34[i][1]); + arg0->motion[i * 3 + 3] = Hu3DJointMotionFile(arg0->model[i * 3 + 1], sp34[i][2]); + Hu3DModelRotSet(arg0->model[i * 3 + 1], 17.5f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[i * 3 + 1], 0.575f, 0.575f, 0.575f); + fn_1_1E28(arg0, i * 3 + 1, i * 3 + 1, 0, 1); + { + s32 sp8[] = { 9, 14, 10, 11, 12, 13 }; + + if (i != 3) { + CharModelEffectNpcInit(arg0->model[i * 3 + 1], arg0->motion[i * 3 + 2], 1, sp8[i]); + CharModelEffectEnableSet(sp8[i], 0); + } + } + } +} + +void fn_1_1D124(omObjData* arg0, StructBss1530* arg1) { + s32 i; + + for (i = 0; i < 5; i++) { + Hu3DModelPosSet(arg0->model[i * 3 + 1], lbl_1_bss_1A0C.unk288[i].x, lbl_1_bss_1A0C.unk288[i].y, lbl_1_bss_1A0C.unk288[i].z); + if (i == 3) { + Hu3DData[arg0->model[i * 3 + 1]].pos.y += 20.0f; + } + } + if (arg1->unk08++ >= 3000) { + arg1->unk08 = 0; + arg1->unk0C = 1; + lbl_1_bss_19BC.unk08++; + lbl_1_bss_19BC.unk08 %= 2; + fn_1_1E28(lbl_1_bss_1994.unk00, 1, 2, 15, 1); + } + if (arg1->unk0C == 1) { + lbl_1_bss_1A0C.unk288[0].x += -5.0f + 10.0f * lbl_1_bss_19BC.unk08; + if (lbl_1_bss_19BC.unk08 != 0) { + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = fn_1_5FC(Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y, 90.0f, 5.0f); + if (lbl_1_bss_1A0C.unk288[0].x >= 185.0f) { + arg1->unk0C = 2; + lbl_1_bss_1A0C.unk288[0].x = 185.0f; + fn_1_1E28(lbl_1_bss_1994.unk00, 1, 1, 15, 1); + } + } else { + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = fn_1_5FC(Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y, -90.0f, 5.0f); + if (lbl_1_bss_1A0C.unk288[0].x <= -175.0f) { + arg1->unk0C = 2; + lbl_1_bss_1A0C.unk288[0].x = -175.0f; + fn_1_1E28(lbl_1_bss_1994.unk00, 1, 1, 15, 1); + } + } + } else if (arg1->unk0C == 2) { + if (lbl_1_bss_19BC.unk08 != 0) { + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = fn_1_5FC(Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y, -15.0f, 15.0f); + if (Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y <= -14.9f) { + arg1->unk0C = 0; + } + } else { + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = fn_1_5FC(Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y, 15.0f, 15.0f); + if (Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y >= 14.9f) { + arg1->unk0C = 0; + } + } + } +} + +void fn_1_1D63C(void) { + s32 i; + + for (i = 0; i < 5; i++) { + Hu3DModelAttrReset(lbl_1_bss_1994.unk00->model[(i * 3) + 1], HU3D_ATTR_DISPOFF); + } + Hu3DModelRotSet(lbl_1_bss_1994.unk00->model[4], 17.5f, 15.0f, 0.0f); + Hu3DModelScaleSet(lbl_1_bss_1994.unk00->model[4], 0.575f, 0.575f, 0.575f); + fn_1_1E28(lbl_1_bss_1994.unk00, 4, 4, 0, 1); + lbl_1_bss_1994.unk00->work[0] = lbl_1_bss_1994.unk00->work[1] = lbl_1_bss_1994.unk00->work[2] = 0; + lbl_1_bss_1994.unk04 = (void*) fn_1_1D124; +} + +void fn_1_1D77C(void) { + s32 i; + + for (i = 0; i < 5; i++) { + Hu3DModelAttrSet(lbl_1_bss_1994.unk00->model[i * 3 + 1], HU3D_ATTR_DISPOFF); + } + fn_1_1E28(lbl_1_bss_1994.unk00, 1, 1, 0, 1); + if (lbl_1_bss_19BC.unk08 != 0) { + lbl_1_bss_1A0C.unk288[0].x = 185.0f; + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = -15.0f; + } else { + lbl_1_bss_1A0C.unk288[0].x = -175.0f; + Hu3DData[lbl_1_bss_1994.unk00->model[1]].rot.y = 15.0f; + } + lbl_1_bss_1994.unk0C = 0; + lbl_1_bss_1994.unk04 = NULL; +} + +void fn_1_1D8CC(omObjData* arg0, StructBss1530* arg1) { + if (arg0->work[0] != 0) { + if (arg0->work[2] != 0) { + arg0->work[2]--; + return; + } + if (arg0->work[2] == 0 && Hu3DMotionEndCheck(arg0->model[4])) { + fn_1_1E28(arg0, 4, arg0->work[1], 15, 1); + arg0->work[0] = arg0->work[1] = arg0->work[2] = 0; + } + } +} + +void fn_1_1D964(void) { + Hu3DModelAttrReset(lbl_1_bss_1994.unk00->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(lbl_1_bss_1994.unk00->model[4], -185.0f, -225.0f, 0.0f); + Hu3DModelRotSet(lbl_1_bss_1994.unk00->model[4], 0.0f, 15.0f, 0.0f); + Hu3DModelScaleSet(lbl_1_bss_1994.unk00->model[4], 1.0f, 1.0f, 1.0f); + lbl_1_bss_1994.unk04 = (void*) fn_1_1D8CC; +} + +void fn_1_1DA64(void) { + Hu3DModelAttrSet(lbl_1_bss_1994.unk00->model[4], HU3D_ATTR_DISPOFF); + lbl_1_bss_1994.unk04 = NULL; +} + +void fn_1_1DAAC(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_18D0, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_1994.unk00 = temp_r3; + lbl_1_bss_1994.unk04 = NULL; + fn_1_1CDF0(temp_r3); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1994.unk04 != NULL) { + lbl_1_bss_1994.unk04(temp_r3, &lbl_1_bss_1994); + } + } +} + +void fn_1_1DE4C(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 0.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20.x = 0.0f; + var_r31->unk20.y = 0.0f; + var_r31->unk20.z = 0.0f; + var_r31->unk38 = 650.0f; +} diff --git a/src/REL/mstory3Dll/result_seq.c b/src/REL/mstory3Dll/result_seq.c new file mode 100755 index 00000000..b4aa06c9 --- /dev/null +++ b/src/REL/mstory3Dll/result_seq.c @@ -0,0 +1,2928 @@ +#include "REL/mstory3Dll.h" +#include "game/chrman.h" +#include "game/data.h" +#include "game/esprite.h" +#include "game/flag.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfanim.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/minigame_seq.h" +#include "game/pad.h" +#include "game/printfunc.h" +#include "game/sprite.h" +#include "game/window.h" +#include "game/wipe.h" +#include "msm/msmse.h" + +#include "ext_math.h" + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ char unk08[0xC]; +} StructUnk24Bss1580; // Size 0x14 + +typedef struct { + /* 0x00 */ StructFn352C unk00; + /* 0x34 */ char unk34[0x60]; +} StructUnkC4Bss1580; // Size 0x94 + +typedef struct { + /* 0x000 */ s32 unk00; + /* 0x004 */ s32 unk04; + /* 0x008 */ s32 unk08; + /* 0x00C */ s32 unk0C; + /* 0x010 */ s32 unk10; + /* 0x014 */ s32 unk14; + /* 0x018 */ s32 unk18; + /* 0x01C */ s32 unk1C; + /* 0x020 */ s32 unk20; + /* 0x024 */ StructUnk24Bss1580 unk24[4]; + /* 0x074 */ char unk74[0x50]; + /* 0x0C4 */ StructUnkC4Bss1580 unkC4[4]; + /* 0x314 */ s32 unk314; + /* 0x318 */ char unk318[0xC]; + /* 0x324 */ s32 unk324; + /* 0x328 */ char unk328[0xC]; + /* 0x334 */ s32 unk334[1]; // array length unknown + /* 0x338 */ char unk338[0xC]; + /* 0x344 */ s32 unk344; + /* 0x348 */ s32 unk348; + /* 0x34C */ char unk34C[4]; +} StructBss1580; // Size 0x350 + +typedef struct { + /* 0x00 */ s32 unk00; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 unk08; + /* 0x0C */ char unk0C[4]; + /* 0x10 */ float unk10; + /* 0x14 */ float unk14; + /* 0x18 */ float unk18; + /* 0x1C */ char unk1C[4]; + /* 0x20 */ float unk20; + /* 0x24 */ float unk24; + /* 0x28 */ float unk28; + /* 0x2C */ float unk2C; + /* 0x30 */ float unk30; + /* 0x34 */ float unk34; +} StructBssC8; // Size 0x38 + +void fn_1_7E88(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); +void fn_1_82E0(void); +s32 fn_1_B670(void); +void fn_1_D48C(void); +void fn_1_D718(omObjData* arg0); +void fn_1_D7D8(omObjData* arg0); +void fn_1_FE80(void); +void fn_1_FF7C(s32 arg0); +void fn_1_1036C(omObjData* arg0); +void fn_1_10D74(omObjData* arg0); +void fn_1_11794(omObjData* arg0); +void fn_1_11834(omObjData* arg0); +void fn_1_123D8(omObjData* arg0); +void fn_1_1241C(omObjData* arg0); +void fn_1_12420(omObjData* arg0); +void fn_1_12A98(s32 arg0); +void fn_1_12C08(s32 arg0); +void fn_1_12DAC(void); +void fn_1_13908(void); +void fn_1_130A8(void); +void fn_1_1317C(void); +void fn_1_13A38(omObjData* arg0); +void fn_1_13A3C(s32 arg0, s32 arg1, s32 arg2, s32 arg3); +void fn_1_13C78(s32 arg0, s32 arg1, s32 arg2); +void fn_1_13D38(s32 arg0, s32 arg1, s32 arg2); +void fn_1_140A0(void); +void fn_1_15450(s32 arg0); + +StructBss1580 lbl_1_bss_1580; +StructBss1530 lbl_1_bss_1558; +StructBss1530 lbl_1_bss_1530; +StructBss1530 lbl_1_bss_1490[4]; +StructBss1530 lbl_1_bss_1468; +s32 lbl_1_bss_1458[4]; +s32 lbl_1_bss_1448[4]; +s32 lbl_1_bss_1438[4]; +s32 lbl_1_bss_1428[4]; +float lbl_1_bss_1424; +s32 lbl_1_bss_1420; +float lbl_1_bss_1408[3][2]; +StructBssC8 lbl_1_bss_C8[88]; +float lbl_1_bss_C4; +float lbl_1_bss_C0; +float lbl_1_bss_BC; +s32 lbl_1_bss_B8; +s32 lbl_1_bss_B4; +float lbl_1_bss_B0; +float lbl_1_bss_AC; +Process* lbl_1_bss_A8; +s32 lbl_1_bss_68[16]; +u8 lbl_1_bss_5C[0xC]; // unused +s32 lbl_1_bss_58; + +Vec lbl_1_data_130[] = { + { -300.0f, 0.0f, 460.0f }, + { -100.0f, 0.0f, 460.0f }, + { 100.0f, 0.0f, 460.0f }, + { 300.0f, 0.0f, 460.0f } +}; + +HsfanimStruct00 lbl_1_data_160 = { + 60, { 0, 0 }, + 1000.0f, 0.0f, 180.0f, + { 0.0f, -0.009f, 0.0f }, + 30.0f, 0.9f, 20.0f, 0.99f, 4, + { + { 0xFF, 0xFF, 0x00, 0xFF }, + { 0xFF, 0xFF, 0x20, 0xFF }, + { 0xFF, 0xFF, 0x80, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF } + }, + { + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 } + } +}; + +HsfanimStruct00 lbl_1_data_1B0 = { + 60, { 0, 0 }, + 1000.0f, 0.0f, 180.0f, + { 0.0f, -0.009f, 0.0f }, + 30.0f, 0.9f, 20.0f, 0.99f, 4, + { + { 0xFF, 0xFF, 0x00, 0xFF }, + { 0xFF, 0xFF, 0x20, 0xFF }, + { 0xFF, 0xFF, 0x80, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF } + }, + { + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 } + } +}; + +HsfanimStruct00 lbl_1_data_200 = { + 500, { 0, 0 }, + 0.25f, 0.0f, 30.0f, + { 0.0f, -0.009f, 0.001f }, + 30.0f, 0.9f, 20.0f, 0.999f, 4, + { + { 0xFF, 0xFF, 0x00, 0xFF }, + { 0xFF, 0xFF, 0x20, 0xFF }, + { 0xFF, 0xFF, 0x80, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF } + }, + { + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 } + } +}; + +void fn_1_6E34(Process* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + s32 var_r31; + + lbl_1_bss_A8 = arg0; + lbl_1_bss_1580.unk00 = arg1; + lbl_1_bss_1580.unk04 = arg2; + if (arg3 == 1) { + lbl_1_bss_1580.unk08 = 0; + } else { + lbl_1_bss_1580.unk08 = 1; + lbl_1_bss_1580.unk04 = 1; + } + lbl_1_bss_1580.unk14 = fn_1_36E4(); + lbl_1_bss_1580.unk344 = GWSystem.team; + _ClearFlag(FLAG_ID_MAKE(1, 29)); + lbl_1_bss_1580.unk348 = -1; + fn_1_9A0(); + fn_1_290C(lbl_1_bss_A8, fn_1_82E0); + lbl_1_bss_1580.unk1C = fn_1_37C8(lbl_1_bss_1580.unk20 = 0xFF); + fn_1_FF7C(arg4); + fn_1_38B4(); + fn_1_12DAC(); + HuPrcChildCreate(fn_1_FE80, 100, 0x2000, 0, HuPrcCurrentGet()); + HuPrcChildCreate(fn_1_140A0, 100, 0x2000, 0, HuPrcCurrentGet()); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + HuPrcChildCreate(fn_1_13908, 200, 0x2000, 0, HuPrcCurrentGet()); + } + HuPrcChildCreate(fn_1_D48C, 100, 0x2000, 0, HuPrcCurrentGet()); +} + +void fn_1_7004(s32 arg0, s32 arg1, s32 arg2) { + s32 sp1C[4]; + s32 spC[4]; + s32 temp_r27; + s32 var_r26; + s32 var_r30; + s32 var_r31; + + temp_r27 = lbl_1_bss_1580.unk20; + var_r26 = arg0; + lbl_1_bss_1530.unk04 = (void*) fn_1_D718; + for (var_r30 = 0; var_r30 < 4; var_r30++) { + lbl_1_bss_1490[var_r30].unk04 = (void*) fn_1_1241C; + } + lbl_1_bss_1468.unk04 = (void*) fn_1_13A38; + if (arg2 != 0) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + sp1C[var_r31] = lbl_1_bss_1490[var_r31].unk00->work[0]; + spC[var_r31] = 0xFF; + } + } + for (var_r30 = 0; var_r30 < arg1; var_r30++) { + fn_1_938(); + lbl_1_bss_1580.unk20 = fn_1_5D4(temp_r27, var_r26, var_r30, arg1); + Hu3DGLightColorSet(lbl_1_bss_1580.unk1C, lbl_1_bss_1580.unk20, lbl_1_bss_1580.unk20, lbl_1_bss_1580.unk20, 0xFF); + if (arg2 != 0) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_7E88(sp1C[var_r31], spC[var_r31], var_r30, arg1, var_r31); + } + } + } + if (arg2 != 0) { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk00->work[0] = 0; + lbl_1_bss_1490[var_r31].unk00->work[1] = 0; + Hu3DModelAttrSet(lbl_1_bss_1490[var_r31].unk00->model[6], 1); + Hu3DLLightColorSet(lbl_1_bss_1490[var_r31].unk00->model[1], lbl_1_bss_1580.unk24[var_r31].unk00, 0, 0, 0, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[var_r31].unk00->model[2], lbl_1_bss_1580.unk24[var_r31].unk04, 0, 0, 0, 0xFF); + } + } + lbl_1_bss_1530.unk04 = NULL; + for (var_r30 = 0; var_r30 < 4; var_r30++) { + lbl_1_bss_1490[var_r30].unk04 = NULL; + } + lbl_1_bss_1468.unk04 = NULL; +} + +void fn_1_7398(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + float temp_f31; + float temp_f30; + s32 sp10; + s32 spC; + s32 temp_r29; + s32 var_r28; + + sp10 = lbl_1_bss_1490[arg2].unk00->work[0]; + spC = arg0; + Hu3DModelPosSet(lbl_1_bss_1490[arg2].unk00->model[6], lbl_1_data_130[arg2].x, 500.0f + lbl_1_data_130[arg2].y + lbl_1_bss_AC, lbl_1_data_130[arg2].z + 0.1f * lbl_1_bss_AC); + Hu3DModelScaleSet(lbl_1_bss_1490[arg2].unk00->model[6], 0.0f, 1.25f, 0.0f); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg2].unk00->model[6], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1490[arg2].unk00->model[6], 1); + Hu3DModelPosSet(lbl_1_bss_1490[arg3].unk00->model[6], lbl_1_data_130[arg3].x, 500.0f + lbl_1_data_130[arg3].y + lbl_1_bss_AC, lbl_1_data_130[arg3].z + 0.1f * lbl_1_bss_AC); + Hu3DModelScaleSet(lbl_1_bss_1490[arg3].unk00->model[6], 0.0f, 1.25f, 0.0f); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg3].unk00->model[6], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1490[arg3].unk00->model[6], 1); + for (var_r28 = 0; var_r28 <= arg1; var_r28++) { + fn_1_938(); + temp_f31 = fn_1_6F4(0.0f, 1.5f, var_r28, arg1); + temp_f30 = fn_1_6F4(0.0f, 0.5f, var_r28, arg1); + temp_r29 = fn_1_6F4(0.0f, 128.0f, var_r28, arg1); + Hu3DModelScaleSet(lbl_1_bss_1490[arg2].unk00->model[6], temp_f31, 1.25f, temp_f31); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg2].unk00->model[6], temp_f30); + Hu3DModelScaleSet(lbl_1_bss_1490[arg3].unk00->model[6], temp_f31, 1.25f, temp_f31); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg3].unk00->model[6], temp_f30); + Hu3DLLightColorSet(lbl_1_bss_1490[arg2].unk00->model[1], lbl_1_bss_1580.unk24[arg2].unk00, temp_r29, temp_r29, temp_r29, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[arg2].unk00->model[2], lbl_1_bss_1580.unk24[arg2].unk04, temp_r29, temp_r29, temp_r29, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[arg3].unk00->model[1], lbl_1_bss_1580.unk24[arg3].unk00, temp_r29, temp_r29, temp_r29, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[arg3].unk00->model[2], lbl_1_bss_1580.unk24[arg3].unk04, temp_r29, temp_r29, temp_r29, 0xFF); + } + lbl_1_bss_1490[arg2].unk00->work[1] = 1; + lbl_1_bss_1490[arg3].unk00->work[1] = 1; +} + +void fn_1_79D8(s32 arg0, s32 arg1, s32 arg2) { + float temp_f31; + float temp_f30; + s32 temp_r27; + s32 var_r26; + s32 temp_r29; + s32 var_r30; + + temp_r27 = lbl_1_bss_1490[arg2].unk00->work[0]; + var_r26 = arg0; + Hu3DModelPosSet(lbl_1_bss_1490[arg2].unk00->model[6], lbl_1_data_130[arg2].x, 500.0f + lbl_1_data_130[arg2].y + lbl_1_bss_AC, lbl_1_data_130[arg2].z + 0.1f * lbl_1_bss_AC); + Hu3DModelScaleSet(lbl_1_bss_1490[arg2].unk00->model[6], 0.0f, 1.25f, 0.0f); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg2].unk00->model[6], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1490[arg2].unk00->model[6], 1); + for (var_r30 = 0; var_r30 <= arg1; var_r30++) { + fn_1_938(); + lbl_1_bss_1490[arg2].unk00->work[0] = fn_1_6F4(temp_r27, var_r26, var_r30, arg1); + temp_f31 = fn_1_6F4(0.0f, 1.5f, var_r30, arg1); + temp_f30 = fn_1_6F4(0.0f, 0.5f, var_r30, arg1); + temp_r29 = fn_1_6F4(0.0f, 128.0f, var_r30, arg1); + Hu3DModelScaleSet(lbl_1_bss_1490[arg2].unk00->model[6], temp_f31, 1.25f, temp_f31); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg2].unk00->model[6], temp_f30); + Hu3DLLightColorSet(lbl_1_bss_1490[arg2].unk00->model[1], lbl_1_bss_1580.unk24[arg2].unk00, temp_r29, temp_r29, temp_r29, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[arg2].unk00->model[2], lbl_1_bss_1580.unk24[arg2].unk04, temp_r29, temp_r29, temp_r29, 0xFF); + } + lbl_1_bss_1490[arg2].unk00->work[1] = 1; +} + +void fn_1_7E88(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { + float var_f31; + s32 temp_r31; + + if (lbl_1_bss_1490[arg4].unk00->work[1] != 0) { + lbl_1_bss_1490[arg4].unk00->work[0] = fn_1_5D4(arg0, arg1, arg2, arg3); + var_f31 = fn_1_5D4(0.5f, 0.0f, arg2, arg3); + Hu3DModelTPLvlSet(lbl_1_bss_1490[arg4].unk00->model[6], var_f31); + temp_r31 = fn_1_5D4(128.0f, 0.0f, arg2, arg3); + Hu3DLLightColorSet(lbl_1_bss_1490[arg4].unk00->model[1], lbl_1_bss_1580.unk24[arg4].unk00, temp_r31, temp_r31, temp_r31, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[arg4].unk00->model[2], lbl_1_bss_1580.unk24[arg4].unk04, temp_r31, temp_r31, temp_r31, 0xFF); + } +} + +s32 fn_1_814C(s32 arg0) { + s32 var_r31; + + if (arg0 == 0) { + var_r31 = Hu3DParManCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 1)), 100, &lbl_1_data_160); + } else if (arg0 == 1) { + var_r31 = Hu3DParManCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 1)), 500, &lbl_1_data_1B0); + } else if (arg0 == 2) { + var_r31 = Hu3DParManCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 1)), 250, &lbl_1_data_200); + } + if (arg0 != 2) { + Hu3DParManTimeLimitSet(var_r31, 60); + Hu3DParManAttrSet(var_r31, 4 | 0x40); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(var_r31), 1); + } else { + Hu3DParManAttrSet(var_r31, 4 | 0x40); + } + return var_r31; +} + +s32 fn_1_8264(void) { + return fn_1_814C(0); +} + +void fn_1_82E0(void) { + StructBss4* var_r31; + + var_r31 = &lbl_1_bss_4; + var_r31->unk08.x = 0.0f; + var_r31->unk08.y = 125.0f; + var_r31->unk08.z = 0.0f; + var_r31->unk20.x = -5.0f; + var_r31->unk20.y = 0.0f; + var_r31->unk20.z = 0.0f; + var_r31->unk38 = 1750.0f; +} + +void fn_1_836C(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 170.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1700.0f; + fn_1_514C(var_r31, &sp8, var_r31->unk40++, 60.0f, 30.0f); +} + +void fn_1_845C(void) { + StructBss4* var_r31 = &lbl_1_bss_4; + StructBss4 sp28; + float sp8[] = { + 530.0f, 530.0f, 540.0f, 530.0f, + 530.0f, 580.0f, 540.0f, 630.0f + }; + + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + sp28.unk08.x = 100.0f + Hu3DData[lbl_1_bss_1490[0].unk00->model[1]].pos.x; + } else { + sp28.unk08.x = 100.0f + Hu3DData[lbl_1_bss_1490[2].unk00->model[1]].pos.x; + } + } else { + sp28.unk08.x = Hu3DData[lbl_1_bss_1490[lbl_1_bss_1458[1]].unk00->model[1]].pos.x; + lbl_1_bss_B4 = lbl_1_bss_1580.unkC4[lbl_1_bss_1458[1]].unk00.unk10; + } + if (lbl_1_bss_1580.unk344 == 1) { + sp28.unk08.y = 570.0f; + sp28.unk08.z = -700.0f; + sp28.unk20.x = 15.0f; + sp28.unk20.y = 0.0f; + sp28.unk20.z = 0.0f; + sp28.unk38 = 1750.0f; + fn_1_4CC0(var_r31, &sp28, var_r31->unk40++, 120.0f); + } else { + sp28.unk08.y = sp8[lbl_1_bss_B4]; + sp28.unk08.z = -700.0f; + sp28.unk20.x = 15.0f; + sp28.unk20.y = 0.0f; + sp28.unk20.z = 0.0f; + sp28.unk38 = 1600.0f; + fn_1_4CC0(var_r31, &sp28, var_r31->unk40++, 120.0f); + } +} + +void fn_1_8758(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = lbl_1_bss_1424; + sp8.unk08.y = 125.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1250.0f; + sp8.unk38 = 1350.0f; + fn_1_514C(var_r31, &sp8, var_r31->unk40++, 10.0f, 5.0f); +} + +void fn_1_8858(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 170.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1700.0f; + fn_1_514C(var_r31, &sp8, var_r31->unk40++, 30.0f, 10.0f); +} + +void fn_1_8948(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 300.0f; + sp8.unk08.y = 100.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1000.0f; + fn_1_4400(var_r31, &sp8, var_r31->unk40++, 60.0f, 10.0f); +} + +void fn_1_8A38(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = -300.0f; + sp8.unk08.y = 100.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1000.0f; + fn_1_4400(var_r31, &sp8, var_r31->unk40++, 180.0f, 10.0f); +} + +void fn_1_8B28(void) { + StructBss4* var_r31; + StructBss4 sp8; + + var_r31 = &lbl_1_bss_4; + sp8.unk08.x = 0.0f; + sp8.unk08.y = 170.0f; + sp8.unk08.z = 0.0f; + sp8.unk20.x = -5.0f; + sp8.unk20.y = 0.0f; + sp8.unk20.z = 0.0f; + sp8.unk38 = 1700.0f; + fn_1_4400(var_r31, &sp8, var_r31->unk40++, 120.0f, 10.0f); +} + +void fn_1_8C18(void) { + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_8948); + fn_1_958(120); + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_8A38); + fn_1_958(210); + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_8B28); + fn_1_958(120); +} + +void fn_1_8C94(void) { + s32 var_r30 = 16; + s32 var_r29 = 40; + s32 var_r28 = 0; + GXColor sp10 = { 0x00, 0x00, 0x80, 0x80 }; + s32 var_r31; + + while (TRUE) { + fn_1_938(); + if (HuPadBtnDown[0] & PAD_TRIGGER_R) { + var_r28++; + var_r28 %= 2; + } + if (var_r28 == 0) { + continue; + } + printWin(var_r30, var_r29, 220, 200, &sp10); + if (lbl_1_bss_1558.unk04 == NULL) { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> FALSE"); + } else { + print8(var_r30, var_r29, 1.0f, "PROC_MAIN -> TRUE"); + } + if (lbl_1_bss_1530.unk04 == NULL) { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> FALSE"); + } else { + print8(var_r30, var_r29 + 10, 1.0f, "PROC_MAP -> TRUE"); + } + if (lbl_1_bss_1468.unk04 == NULL) { + print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> FALSE"); + } else { + print8(var_r30, var_r29 + 20, 1.0f, "PROC_SUB -> TRUE"); + } + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk04 == NULL) { + print8(var_r30, var_r29 + 30 + var_r31 * 10, 1.0f, "PROC_PLAYER%d -> FALSE", var_r31); + } else { + print8(var_r30, var_r29 + 30 + var_r31 * 10, 1.0f, "PROC_PLAYER%d -> TRUE", var_r31); + } + } + print8(var_r30, var_r29 + 80, 1.0f, "M:%d P:%d W:%d", lbl_1_bss_1580.unk00, lbl_1_bss_1580.unk0C, lbl_1_bss_1580.unk14); + print8(var_r30, var_r29 + 100, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + print8(var_r30, var_r29 + 110 + var_r31 * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", var_r31, + lbl_1_bss_1580.unkC4[var_r31].unk00.unk00, lbl_1_bss_1580.unkC4[var_r31].unk00.unk04, lbl_1_bss_1580.unkC4[var_r31].unk00.unk08, + lbl_1_bss_1580.unkC4[var_r31].unk00.unk0C, lbl_1_bss_1580.unkC4[var_r31].unk00.unk14, lbl_1_bss_1580.unkC4[var_r31].unk00.unk10); + } + print8(var_r30, var_r29 + 150, 1.0f, "NO) RNK:STA:COI:MGS:COS:HAS"); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + print8(var_r30, var_r29 + 160 + var_r31 * 10, 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", var_r31, + lbl_1_bss_1580.unkC4[var_r31].unk00.unk18, lbl_1_bss_1580.unkC4[var_r31].unk00.unk20, lbl_1_bss_1580.unkC4[var_r31].unk00.unk1C, + lbl_1_bss_1580.unkC4[var_r31].unk00.unk24, lbl_1_bss_1580.unkC4[var_r31].unk00.unk28, lbl_1_bss_1580.unkC4[var_r31].unk00.unk2C); + } + } +} + +void fn_1_9140(void) { + WipeColorSet(0xFF, 0xFF, 0xFF); + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } + fn_1_9C4(); + CharModelKill(-1); + MGSeqKillAll(); + HuAudSStreamAllStop(); + msmSeStopAll(0, 1000); + omOvlGotoEx(OVL_MSTORY3, 1, 1, 0); +} + +void fn_1_91C8(void) { + lbl_1_bss_58 = HuAudSeqPlay(0x31); + WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); + while (TRUE) { + if (WipeStatGet() == 0) { + break; + } + fn_1_938(); + } +} + +void fn_1_9220(void) { + Vec sp14 = { -320.0f, 0.0f, 910.0f }; + + fn_1_958(60); + lbl_1_bss_1580.unk10 = fn_1_1624(1, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][0]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_836C); + fn_1_1E28(lbl_1_bss_1530.unk00, 2, 2, 0, 0); + fn_1_1E28(lbl_1_bss_1468.unk00, 1, 2, 15, 1); + fn_1_2DD4(lbl_1_bss_1468.unk00, 1, sp14, 30.0f, 60.0f, 10.0f); + fn_1_1E28(lbl_1_bss_1468.unk00, 1, 1, 15, 1); + fn_1_2280(lbl_1_bss_1530.unk00, 2, 2, 0); +} + +void fn_1_93D0(omObjData* arg0) { + StructBss1530* temp_r31; + + temp_r31 = arg0->data; + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + fn_1_13A3C(lbl_1_bss_1580.unk10, 1, -1, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + temp_r31->unk04 = 0; +} + +void fn_1_9488(void) { + s32 var_r31; + + lbl_1_bss_1530.unk04 = (void*) fn_1_93D0; + do { + fn_1_938(); + } while (lbl_1_bss_1580.unk18 != 99); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_1036C; + lbl_1_bss_1490[var_r31].unk18 = lbl_1_bss_1490[var_r31].unk1C = 0; + } + fn_1_12A98(0); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1580.unkC4[lbl_1_bss_1448[var_r31]].unk00.unk20 != 0) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk1C = 1; + } + } + HuAudFXPlay(0xB9); + do { + fn_1_938(); + } while (lbl_1_bss_1530.unk04 != NULL); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk18 = 1; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk18 != 2) { + break; + } + } + } while (var_r31 < 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk18 = 3; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk04 != NULL) { + break; + } + } + } while (var_r31 < 4); +} + +void fn_1_96B0(omObjData* arg0) { + StructBss1530* temp_r31; + + temp_r31 = arg0->data; + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + fn_1_13A3C(lbl_1_bss_1580.unk10, 2, -1, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + temp_r31->unk04 = 0; +} + +void fn_1_9768(void) { + s32 var_r31; + + lbl_1_bss_1530.unk04 = (void*) fn_1_96B0; + do { + fn_1_938(); + } while (lbl_1_bss_1580.unk18 != 99); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_10D74; + lbl_1_bss_1490[var_r31].unk18 = lbl_1_bss_1490[var_r31].unk1C = 0; + } + fn_1_12A98(1); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1580.unkC4[lbl_1_bss_1448[var_r31]].unk00.unk1C != 0) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk1C = 1; + } + } + HuAudFXPlay(0xB8); + do { + fn_1_938(); + } while (lbl_1_bss_1530.unk04 != NULL); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk18 = 1; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk18 != 2) { + break; + } + } + } while (var_r31 < 4); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk18 = 3; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk04 != NULL) { + break; + } + } + } while (var_r31 < 4); +} + +void fn_1_9990(omObjData* arg0) { + StructBss1530* temp_r31; + + temp_r31 = arg0->data; + HuAudFXPlay(0x9A); + fn_1_13A3C(lbl_1_bss_1580.unk10, lbl_1_bss_1420, -1, 4); + fn_1_1AB0(lbl_1_bss_1580.unk10); + temp_r31->unk04 = 0; +} + +void fn_1_9A08(omObjData* arg0) { + StructBss1530* temp_r31; + + temp_r31 = arg0->data; + fn_1_958(60); + HuAudSeqPause(lbl_1_bss_58, 0, 1000); + temp_r31->unk04 = 0; +} + +void fn_1_9A64(s32 arg0) { + s32 var_r28; + s32 var_r27; + s32 var_r30; + s32 var_r31; + + var_r28 = 9999; + var_r27 = -1; + lbl_1_bss_1420 = arg0; + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + fn_1_13C78(lbl_1_bss_1580.unk10, arg0 * 3 + 3, 3); + fn_1_12C08(arg0); + lbl_1_bss_1424 = 0.0f; + switch (lbl_1_bss_1458[0]) { + case 1: + lbl_1_bss_1424 = lbl_1_data_130[lbl_1_bss_1448[0]].x; + break; + case 2: + lbl_1_bss_1424 = (lbl_1_data_130[lbl_1_bss_1448[0]].x + lbl_1_data_130[lbl_1_bss_1448[1]].x) / 2; + fn_1_13C78(lbl_1_bss_1580.unk10, arg0 * 3 + 4, 3); + break; + case 3: + for (var_r31 = 0; var_r31 < 3; var_r31++) { + if (var_r28 >= lbl_1_bss_1448[var_r31]) { + var_r28 = lbl_1_bss_1448[var_r31]; + } + if (var_r27 <= lbl_1_bss_1448[var_r31]) { + var_r27 = lbl_1_bss_1448[var_r31]; + } + } + lbl_1_bss_1424 = (lbl_1_data_130[var_r27].x + lbl_1_data_130[var_r28].x) / 2; + fn_1_13C78(lbl_1_bss_1580.unk10, arg0 * 3 + 5, 3); + break; + case 4: + break; + } + fn_1_1AB0(lbl_1_bss_1580.unk10); + HuAudSeqPause(lbl_1_bss_58, 1, 1000); + lbl_1_bss_68[0] = HuAudFXPlay(0x9E); + fn_1_7004(0x40, 30, 0); + fn_1_958(60); + if (lbl_1_bss_1458[0] < 4) { + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_8758); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (var_r31 == lbl_1_bss_1448[var_r30]) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_11834; + lbl_1_bss_1490[var_r31].unk18 = 0; + break; + } + } + if (var_r30 == 4) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_11794; + lbl_1_bss_1490[var_r31].unk18 = 0; + } + } + } else { + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_11794; + lbl_1_bss_1490[var_r31].unk18 = 0; + } + } + if (lbl_1_bss_1458[0] != 4) { + lbl_1_bss_1580.unk10 = fn_1_1624(1, 0, 21, 2, lbl_1_bss_1580.unk14); + } else { + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + } + if (lbl_1_bss_1458[0] <= 3) { + HuAudFXPlay(0x9F); + } + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + switch (lbl_1_bss_1458[0]) { + case 1: + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[0], 0); + lbl_1_bss_1420 = 12; + lbl_1_bss_1530.unk04 = (void*) fn_1_9990; + lbl_1_bss_1468.unk04 = (void*) fn_1_9A08; + break; + case 2: + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[0], 0); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[1], 1); + lbl_1_bss_1420 = 13; + lbl_1_bss_1530.unk04 = (void*) fn_1_9990; + lbl_1_bss_1468.unk04 = (void*) fn_1_9A08; + break; + case 3: + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[0], 0); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[1], 1); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[2], 2); + lbl_1_bss_1420 = 14; + lbl_1_bss_1530.unk04 = (void*) fn_1_9990; + lbl_1_bss_1468.unk04 = (void*) fn_1_9A08; + break; + case 4: + HuAudFXFadeOut(lbl_1_bss_68[0], 500); + lbl_1_bss_1468.unk04 = (void*) fn_1_9A08; + if (lbl_1_bss_1580.unkC4[lbl_1_bss_1448[0]].unk00.unk2C == 0 && arg0 == 2) { + fn_1_13C78(lbl_1_bss_1580.unk10, 26, 3); + } else { + fn_1_13C78(lbl_1_bss_1580.unk10, 15, 3); + } + fn_1_1AB0(lbl_1_bss_1580.unk10); + break; + } + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 = 1; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk04 != NULL) { + break; + } + } + } while (var_r31 < lbl_1_bss_1458[0]); + lbl_1_bss_1580.unk18 = 1; + for (var_r31 = 0; var_r31 < 4; var_r31++) { + Hu3DModelAttrReset(lbl_1_bss_1490[var_r31].unk00->model[1], HU3D_MOTATTR_PAUSE); + } + fn_1_958(10); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 1, 15, 1); + } + do { + fn_1_938(); + } while (lbl_1_bss_1530.unk04 != NULL); + fn_1_12DAC(); + HuAudSeqPause(lbl_1_bss_58, 0, 1000); + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_8858); + fn_1_7004(0xFF, 30, 1); + fn_1_958(60); +} + +s32 fn_1_A314(void) { + s32 var_r31 = 0; + + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x10, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + fn_1_12DAC(); + fn_1_130A8(); + if (lbl_1_bss_1580.unk344 == 1) { + var_r31 = fn_1_B670(); + } + if (var_r31 != -1 && lbl_1_bss_1458[0] <= 1) { + HuAudSeqFadeOut(lbl_1_bss_58, 1000); + } else { + HuAudSeqPause(lbl_1_bss_58, 1, 1000); + } + lbl_1_bss_68[0] = HuAudFXPlay(0x9E); + lbl_1_bss_B0 = 1.0f; + lbl_1_bss_1530.unk04 = (void*) fn_1_D7D8; + fn_1_7004(0x40, 30, 0); + fn_1_8C18(); + lbl_1_bss_AC = 125.0f; + return var_r31; +} + +void fn_1_A4F0(void) { + s32 var_r31; + + HuAudSeqPause(lbl_1_bss_58, 0, 1000); + HuAudFXFadeOut(lbl_1_bss_68[0], 1000); + lbl_1_bss_B0 = 0.0f; + fn_1_7004(0xFF, 30, 1); + fn_1_958(60); + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][1]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x11, 3); + switch (lbl_1_bss_1458[0]) { + case 1: + break; + case 2: + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[0], 0); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[1], 1); + fn_1_13C78(lbl_1_bss_1580.unk10, 13, 3); + break; + case 3: + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[0], 0); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[1], 1); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1448[2], 2); + fn_1_13C78(lbl_1_bss_1580.unk10, 14, 3); + break; + case 4: + fn_1_13C78(lbl_1_bss_1580.unk10, 0x12, 3); + break; + } + fn_1_13C78(lbl_1_bss_1580.unk10, 0x13, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1438[var_r31] = lbl_1_bss_1428[var_r31] = -1; + } + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk04 = (void*) fn_1_123D8; + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 = 0; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 != 1) { + break; + } + } + } while (var_r31 < lbl_1_bss_1458[0]); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 = 2; + } + fn_1_958(0x96); + fn_1_1317C(); + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1458[1], 0); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x14, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1458[1] == lbl_1_bss_1448[var_r31]) { + fn_1_1E28(lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk00, 1, 14, 15, 0); + } else { + fn_1_1E28(lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk00, 1, 15, 15, 0); + } + } + fn_1_958(0x23); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 1, 15, 1); + } + fn_1_958(0x55); + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][3]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x15, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 1, 15, 1); + } + HuAudSeqFadeOut(lbl_1_bss_58, 1000); + lbl_1_bss_68[0] = HuAudFXPlay(0x9E); + lbl_1_bss_B0 = 1.0f; + fn_1_7004(0x40, 30, 0); + fn_1_8C18(); +} + +void fn_1_ABAC(void) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1490[var_r31].unk04 = (void*) fn_1_12420; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1490[var_r31].unk04 != NULL) { + break; + } + } + } while (var_r31 < 4); + lbl_1_bss_B0 = 0.0f; + fn_1_958(15); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1580.unkC4[var_r31].unk00.unk18 == 1) { + break; + } + } + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + fn_1_7398(0xFF, 5, 0, 1); + } else { + fn_1_7398(0xFF, 5, 2, 3); + } + } else { + fn_1_79D8(0xFF, 5.0f, var_r31); + } + HuAudFXPlay(0x9F); + HuAudSeqPlay(0x32); + fn_1_958(30); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[0].unk00.unk10, lbl_1_bss_1490[0].unk00->motion[3], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[1].unk00.unk10, lbl_1_bss_1490[1].unk00->motion[3], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[2].unk00.unk10, lbl_1_bss_1490[2].unk00->motion[4], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[3].unk00.unk10, lbl_1_bss_1490[3].unk00->motion[4], 0); + fn_1_1E28(lbl_1_bss_1490[0].unk00, 1, 3, 15, 0); + fn_1_1E28(lbl_1_bss_1490[1].unk00, 1, 3, 15, 0); + fn_1_1E28(lbl_1_bss_1490[2].unk00, 1, 4, 15, 0); + fn_1_1E28(lbl_1_bss_1490[3].unk00, 1, 4, 15, 0); + lbl_1_bss_1580.unk0C = 0; + } else { + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[0].unk00.unk10, lbl_1_bss_1490[0].unk00->motion[4], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[1].unk00.unk10, lbl_1_bss_1490[1].unk00->motion[4], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[2].unk00.unk10, lbl_1_bss_1490[2].unk00->motion[3], 0); + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[3].unk00.unk10, lbl_1_bss_1490[3].unk00->motion[3], 0); + fn_1_1E28(lbl_1_bss_1490[0].unk00, 1, 4, 15, 0); + fn_1_1E28(lbl_1_bss_1490[1].unk00, 1, 4, 15, 0); + fn_1_1E28(lbl_1_bss_1490[2].unk00, 1, 3, 15, 0); + fn_1_1E28(lbl_1_bss_1490[3].unk00, 1, 3, 15, 0); + lbl_1_bss_1580.unk0C = 2; + } + } else if (lbl_1_bss_1580.unkC4[var_r31].unk00.unk18 == 1) { + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[var_r31].unk00.unk10, lbl_1_bss_1490[var_r31].unk00->motion[3], 0); + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 3, 15, 0); + lbl_1_bss_1580.unk0C = var_r31; + } else { + CharModelVoiceEnableSet(lbl_1_bss_1580.unkC4[var_r31].unk00.unk10, lbl_1_bss_1490[var_r31].unk00->motion[4], 0); + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 4, 15, 0); + } + GWPlayer[lbl_1_bss_1580.unkC4[var_r31].unk00.unk00].rank = lbl_1_bss_1580.unkC4[var_r31].unk00.unk18 - 1; + } + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + fn_1_13D38(lbl_1_bss_1580.unk10, 0, 0); + fn_1_13D38(lbl_1_bss_1580.unk10, 1, 1); + _SetFlag(FLAG_ID_MAKE(1, 29)); + } else { + fn_1_13D38(lbl_1_bss_1580.unk10, 2, 0); + fn_1_13D38(lbl_1_bss_1580.unk10, 3, 1); + } + fn_1_13C78(lbl_1_bss_1580.unk10, 0x19, 5); + } else { + fn_1_13D38(lbl_1_bss_1580.unk10, lbl_1_bss_1458[1], 0); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x16, 5); + } + fn_1_1AB0(lbl_1_bss_1580.unk10); +} + +s32 fn_1_B670(void) { + s32 var_r31; + s32 temp_r30; + s32 temp_r29; + s32 temp_r28; + s32 temp_r27; + + var_r31 = 1; + temp_r30 = lbl_1_bss_1580.unkC4[0].unk00.unk20 + lbl_1_bss_1580.unkC4[1].unk00.unk20; + temp_r29 = lbl_1_bss_1580.unkC4[2].unk00.unk20 + lbl_1_bss_1580.unkC4[3].unk00.unk20; + temp_r28 = lbl_1_bss_1580.unkC4[0].unk00.unk1C + lbl_1_bss_1580.unkC4[1].unk00.unk1C; + temp_r27 = lbl_1_bss_1580.unkC4[2].unk00.unk1C + lbl_1_bss_1580.unkC4[3].unk00.unk1C; + if (temp_r30 > temp_r29) { + lbl_1_bss_1580.unk348 = 0; + } else if (temp_r30 < temp_r29) { + lbl_1_bss_1580.unk348 = 1; + } else if (temp_r28 > temp_r27) { + lbl_1_bss_1580.unk348 = 0; + } else if (temp_r28 < temp_r27) { + lbl_1_bss_1580.unk348 = 1; + } else { + var_r31 = -1; + } + return var_r31; +} + +void fn_1_B788(void) { + s32 var_r31; + + HuAudSeqPause(lbl_1_bss_58, 0, 1000); + HuAudFXFadeOut(lbl_1_bss_68[0], 1000); + lbl_1_bss_B0 = 0.0f; + fn_1_7004(0xFF, 30, 1); + fn_1_958(60); + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][1]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x17, 3); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x13, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + lbl_1_bss_1438[var_r31] = lbl_1_bss_1428[var_r31] = -1; + } + lbl_1_bss_1458[0] = 2; + lbl_1_bss_1448[0] = 0; + lbl_1_bss_1448[1] = 2; + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk04 = (void*) fn_1_123D8; + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 = 0; + } + do { + fn_1_938(); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 != 1) { + break; + } + } + } while (var_r31 < lbl_1_bss_1458[0]); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + lbl_1_bss_1490[lbl_1_bss_1448[var_r31]].unk18 = 2; + } + fn_1_958(150); + if (lbl_1_bss_1428[0] > lbl_1_bss_1428[2]) { + lbl_1_bss_1580.unk348 = 0; + } else { + lbl_1_bss_1580.unk348 = 1; + } + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][2]); + if (lbl_1_bss_1580.unk348 == 0) { + fn_1_13D38(lbl_1_bss_1580.unk10, 0, 0); + fn_1_13D38(lbl_1_bss_1580.unk10, 1, 1); + } else { + fn_1_13D38(lbl_1_bss_1580.unk10, 2, 0); + fn_1_13D38(lbl_1_bss_1580.unk10, 3, 1); + } + fn_1_13C78(lbl_1_bss_1580.unk10, 0x18, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < lbl_1_bss_1458[0]; var_r31++) { + if (lbl_1_bss_1580.unk348 == 0) { + fn_1_1E28(lbl_1_bss_1490[0].unk00, 1, 14, 15, 0); + fn_1_1E28(lbl_1_bss_1490[1].unk00, 1, 14, 15, 0); + fn_1_1E28(lbl_1_bss_1490[2].unk00, 1, 15, 15, 0); + fn_1_1E28(lbl_1_bss_1490[3].unk00, 1, 15, 15, 0); + } else { + fn_1_1E28(lbl_1_bss_1490[0].unk00, 1, 15, 15, 0); + fn_1_1E28(lbl_1_bss_1490[1].unk00, 1, 15, 15, 0); + fn_1_1E28(lbl_1_bss_1490[2].unk00, 1, 14, 15, 0); + fn_1_1E28(lbl_1_bss_1490[3].unk00, 1, 14, 15, 0); + } + } + fn_1_958(35); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 1, 15, 1); + } + fn_1_958(85); + lbl_1_bss_1580.unk10 = fn_1_1624(0, 0, 21, 2, lbl_1_bss_1580.unk14); + HuAudFXPlay(lbl_1_data_0[lbl_1_bss_1580.unk00][3]); + fn_1_13C78(lbl_1_bss_1580.unk10, 0x15, 3); + fn_1_1AB0(lbl_1_bss_1580.unk10); + for (var_r31 = 0; var_r31 < 4; var_r31++) { + fn_1_1E28(lbl_1_bss_1490[var_r31].unk00, 1, 1, 15, 1); + } + HuAudSeqFadeOut(lbl_1_bss_58, 1000); + lbl_1_bss_68[0] = HuAudFXPlay(0x9E); + lbl_1_bss_B0 = 1.0f; + fn_1_7004(0x40, 30, 0); + fn_1_8C18(); +} + +void fn_1_BE5C(void) { + float var_f31; + + var_f31 = fn_1_878(0.0f, 0.1f, lbl_1_bss_B8, 180.0f); + Hu3DData[lbl_1_bss_1530.unk00->model[20]].pos.y += var_f31; + lbl_1_bss_B8++; + if (lbl_1_bss_B8 >= 180) { + lbl_1_bss_B8 -= 180; + } +} + +void fn_1_BF60(void) { + float temp_f1; + + temp_f1 = fn_1_878(1.0f, 1.1f, lbl_1_bss_B8, 60.0f); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[23], temp_f1, temp_f1, 1.0f); + lbl_1_bss_B8++; + if (lbl_1_bss_B8 >= 60) { + lbl_1_bss_B8 -= 60; + } +} + +s32 lbl_1_data_364 = -1; +s32 lbl_1_data_368 = -1; // unused + +void fn_1_C060(float arg8) { + float sp20[] = { + 50.0f, 50.0f, 60.0f, 50.0f, + 50.0f, 80.0f, 60.0f, 120.0f + }; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float temp_f29; + float var_f28; + float temp_f27; + float var_f26; + s32 var_r31; + + lbl_1_bss_BC = arg8; + fn_1_938(); + var_f31 = arg8; + var_f30 = 0.0f; + temp_f29 = 3600.0f; + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[20], var_f31, 1000.0f, 460.0f); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[20], 0.5f, 0.5f, 0.5f); + Hu3DModelAttrReset(lbl_1_bss_1530.unk00->model[20], HU3D_ATTR_DISPOFF); + fn_1_1E28(lbl_1_bss_1530.unk00, 20, 20, 0, 2); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[21], var_f31, 1000.0f, 460.0f); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[21], 0.5f, 0.5f, 0.5f); + fn_1_1E28(lbl_1_bss_1530.unk00, 21, 21, 0, 2); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[22], var_f31, 1000.0f, 460.0f); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[22], 0.5f, 0.5f, 0.5f); + Hu3DMotionShapeSpeedSet(lbl_1_bss_1530.unk00->model[22], 2.0f); + Hu3DMotionSpeedSet(lbl_1_bss_1530.unk00->model[22], 2.0f); + Hu3DMotionShiftSpeedSet(lbl_1_bss_1530.unk00->model[22], 2.0f); + fn_1_1E28(lbl_1_bss_1530.unk00, 22, 22, 0, 2); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[23], 0.0f, 0.0f, 1.0f); + Hu3DModelAttrSet(lbl_1_bss_1530.unk00->model[23], HU3D_ATTR_DISPOFF); + fn_1_958(60); + fn_1_39B4(&lbl_1_bss_4); + fn_1_2834(fn_1_845C); + for (var_r31 = 0; var_r31 <= 120; var_r31++) { + fn_1_938(); + if (lbl_1_bss_1580.unk344 == 0) { + var_f30 = fn_1_6F4(1000.0f, 250.0f + sp20[lbl_1_bss_1580.unkC4[lbl_1_bss_1458[1]].unk00.unk10], var_r31, 120.0f); + } else { + var_f30 = fn_1_6F4(1000.0f, 350.0f, var_r31, 120.0f); + } + temp_f29 = fn_1_6F4(1800.0f, 0.0f, var_r31, 120.0f); + var_f28 = fn_1_6F4(1.0f, 0.0f, var_r31, 120.0f); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[20], var_f31, var_f30, 460.0f); + Hu3DModelRotSet(lbl_1_bss_1530.unk00->model[20], 0.0f, temp_f29, 0.0f); + } + lbl_1_bss_1530.unk04 = (void*) fn_1_BE5C; + fn_1_958(30); + fn_1_1E28(lbl_1_bss_1530.unk00, 20, 20, 0, 0); + fn_1_958(30); + HuAudFXPlay(0x33B); + fn_1_958(30); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[22], var_f31, Hu3DData[lbl_1_bss_1530.unk00->model[20]].pos.y - 10.0f, 460.0f); + Hu3DModelAttrReset(lbl_1_bss_1530.unk00->model[22], HU3D_ATTR_DISPOFF); + fn_1_1E28(lbl_1_bss_1530.unk00, 22, 22, 0, 0); + sp14.x = var_f31; + sp14.y = Hu3DData[lbl_1_bss_1530.unk00->model[20]].pos.y; + sp14.z = 460.0f; + sp8.x = 288.0f; + sp8.y = 100.0f; + sp8.z = 500.0f; + fn_1_1DED8(DATA_MAKE_NUM(DATADIR_MSTORY3, 0), &sp14, &sp8, 100); + fn_1_1E0F4(); + fn_1_958(15); + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + HuAudCharVoicePlay(lbl_1_bss_1580.unkC4[0].unk00.unk10, 0x12B); + HuAudCharVoicePlay(lbl_1_bss_1580.unkC4[1].unk00.unk10, 0x12B); + } else { + HuAudCharVoicePlay(lbl_1_bss_1580.unkC4[2].unk00.unk10, 0x12B); + HuAudCharVoicePlay(lbl_1_bss_1580.unkC4[3].unk00.unk10, 0x12B); + } + } else { + HuAudCharVoicePlay(lbl_1_bss_1580.unkC4[lbl_1_bss_1458[1]].unk00.unk10, 0x12B); + } + HuAudFXPlay(0xBA); + HuAudFXPlay(0x9A); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[21], var_f31, Hu3DData[lbl_1_bss_1530.unk00->model[20]].pos.y, 510.0f); + Hu3DModelAttrReset(lbl_1_bss_1530.unk00->model[21], HU3D_ATTR_DISPOFF); + fn_1_1E28(lbl_1_bss_1530.unk00, 21, 21, 0, 0); + fn_1_958(5); + lbl_1_data_364 = fn_1_814C(1); + Hu3DParManPosSet(lbl_1_data_364, var_f31, Hu3DData[lbl_1_bss_1530.unk00->model[21]].pos.y, 510.0f); + Hu3DModelAttrSet(lbl_1_bss_1530.unk00->model[20], HU3D_ATTR_DISPOFF); + lbl_1_bss_C0 = 1.0f; + for (var_r31 = 0; var_r31 <= 30; var_r31++) { + fn_1_938(); + temp_f27 = fn_1_5D4(0.0f, 1.0f, var_r31, 30.0f); + var_f30 = fn_1_5D4(0.0f, 75.0f, var_r31, 30.0f); + var_f26 = fn_1_5D4(550.0f, 640.0f, var_r31, 30.0f); + Hu3DModelPosSet(lbl_1_bss_1530.unk00->model[23], var_f31, Hu3DData[lbl_1_bss_1530.unk00->model[20]].pos.y - var_f30, var_f26); + Hu3DModelScaleSet(lbl_1_bss_1530.unk00->model[23], temp_f27, temp_f27, 1.0f); + var_f28 = fn_1_5D4(1.0f, 0.0f, var_r31, 30.0f); + Hu3DModelTPLvlSet(lbl_1_bss_1530.unk00->model[22], var_f28); + } + lbl_1_bss_B8 = 0; + lbl_1_bss_1530.unk04 = (void*) fn_1_BF60; + fn_1_958(30); + Hu3DParManKill(lbl_1_data_364); + lbl_1_data_364 = -1; + fn_1_958(240); + fn_1_1834(MAKE_MESSID(36, 7), 0); + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + if (lbl_1_bss_1580.unkC4[0].unk00.unk08 == 1 && lbl_1_bss_1580.unkC4[1].unk00.unk08 == 1) { + fn_1_958(30); + } else { + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1580.unkC4[0].unk00.unk08 == 0 && (HuPadBtnDown[lbl_1_bss_1580.unkC4[0].unk00.unk14] & PAD_BUTTON_A)) { + break; + } + if (lbl_1_bss_1580.unkC4[1].unk00.unk08 == 0 && (HuPadBtnDown[lbl_1_bss_1580.unkC4[1].unk00.unk14] & PAD_BUTTON_A)) { + break; + } + } + } + } else { + if (lbl_1_bss_1580.unkC4[2].unk00.unk08 == 1 && lbl_1_bss_1580.unkC4[3].unk00.unk08 == 1) { + fn_1_958(30); + } else { + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1580.unkC4[0].unk00.unk08 == 0 && (HuPadBtnDown[lbl_1_bss_1580.unkC4[0].unk00.unk14] & PAD_BUTTON_A)) { + break; + } + if (lbl_1_bss_1580.unkC4[1].unk00.unk08 == 0 && (HuPadBtnDown[lbl_1_bss_1580.unkC4[1].unk00.unk14] & PAD_BUTTON_A)) { + break; + } + } + } + } + } else if (lbl_1_bss_1580.unk08 == 0) { + if (lbl_1_bss_1580.unkC4[lbl_1_bss_1580.unk0C].unk00.unk08 != 1) { + fn_1_2420(lbl_1_bss_1580.unkC4[lbl_1_bss_1580.unk0C].unk00.unk14, PAD_BUTTON_A); + } else { + fn_1_958(30); + } + } else { + fn_1_2420(0, PAD_BUTTON_A); + } + HuAudFXPlay(0x1C); +} + +void fn_1_CE6C(omObjData* arg0) { + StructBss1530* sp8 = arg0->data; + s32 var_r31; + + fn_1_91C8(); + fn_1_9220(); + fn_1_9488(); + fn_1_9768(); + if (lbl_1_bss_1580.unk04 != 0) { + fn_1_9A64(0); + fn_1_9A64(1); + fn_1_9A64(2); + } + var_r31 = fn_1_A314(); + if (lbl_1_bss_1580.unk344 == 1) { + if (var_r31 == -1) { + fn_1_B788(); + } + } else if (lbl_1_bss_1458[0] > 1) { + fn_1_A4F0(); + } + fn_1_ABAC(); + if (lbl_1_bss_1580.unk344 == 1) { + if (lbl_1_bss_1580.unk348 == 0) { + fn_1_C060(lbl_1_data_130[0].x + 100.0f); + } else { + fn_1_C060(lbl_1_data_130[2].x + 100.0f); + } + } else { + fn_1_C060(lbl_1_data_130[lbl_1_bss_1458[1]].x); + } + fn_1_958(60); + fn_1_9140(); +} + +void fn_1_D48C(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x100, 16, 16, -1, NULL); + lbl_1_bss_1558.unk00 = temp_r3; + lbl_1_bss_1558.unk04 = (void*) fn_1_CE6C; + lbl_1_bss_1558.unk00->data = &lbl_1_bss_1558; + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1558.unk04 != NULL) { + lbl_1_bss_1558.unk04(temp_r3); + } + } +} + +void fn_1_D538(omObjData* arg0) { + float sp8; + float var_f30; + float var_f31; + StructBss1530* temp_r31; + s32 var_r30; + s32 var_r29; + + temp_r31 = arg0->data; + var_f31 = 1.75f; + sp8 = 0.5f; + var_r29 = 0; + HuAudFXPlay(0xBA); + HuAudFXPlay(0x9A); + lbl_1_bss_1580.unk324 = 1; + espDispOn(temp_r31->unk14); + espScaleSet(temp_r31->unk14, 0.0f, 0.0f); + for (var_r30 = 0; var_r30 < 120; var_r30++) { + fn_1_938(); + if (var_r30 < 60) { + var_f30 = fn_1_6F4(0.0f, 1.75f, var_r30, 60.0f); + } else { + var_f30 = fn_1_7BC(var_f31, 1.0f, var_r29, 15.0f); + var_r29++; + if (var_r29 == 15) { + if (var_f31 > 1.25f) { + var_f31 -= 0.1f; + } + var_r29 = 0; + } + } + espScaleSet(temp_r31->unk14, var_f30, var_f30); + } + temp_r31->unk04 = 0; +} + +void fn_1_D718(omObjData* arg0) { + float temp_f31; + + temp_f31 = lbl_1_bss_1580.unk20 / 255.0f; + Hu3DModelAmbSet(arg0->model[1], temp_f31, temp_f31, temp_f31); + Hu3DModelAmbSet(arg0->model[2], temp_f31, temp_f31, temp_f31); + Hu3DModelAmbSet(arg0->model[3], temp_f31, temp_f31, temp_f31); +} + +float lbl_1_data_36C[] = { 0.0f, 120.0f, 240.0f }; + +void fn_1_D7D8(omObjData* arg0) { + s32 var_r30; + + if (lbl_1_bss_B0 == 1.0f) { + Hu3DModelAttrReset(arg0->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(arg0->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(arg0->model[6], HU3D_ATTR_DISPOFF); + lbl_1_bss_C4 += 0.033333335f; + if (lbl_1_bss_C4 >= 0.5f) { + lbl_1_bss_C4 = 0.5f; + } + } else { + if (lbl_1_bss_B0 == 0.0f) { + lbl_1_bss_C4 -= 0.033333335f; + if (lbl_1_bss_C4 <= 0.0f) { + lbl_1_bss_C4 = 0.0f; + Hu3DModelAttrSet(arg0->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF); + return; + } + } else { + Hu3DModelAttrSet(arg0->model[4], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF); + return; + } + } + for (var_r30 = 0; var_r30 < 3; var_r30++) { + Hu3DModelTPLvlSet(arg0->model[var_r30 + 4], lbl_1_bss_C4); + Hu3DModelRotSet(arg0->model[var_r30 + 4], 0.0f, 0.0f, lbl_1_bss_1408[var_r30][1]); + lbl_1_bss_1408[var_r30][0] = 10.0 * cosd(11.0f * lbl_1_data_36C[var_r30]); + lbl_1_bss_1408[var_r30][1] = 30.0 * sind(8.0f * lbl_1_data_36C[var_r30]); + if ((lbl_1_data_36C[var_r30] += 0.4f) >= 360.0f) { + lbl_1_data_36C[var_r30] -= 360.0f; + } + } +} + +void fn_1_DB68(omObjData* arg0, s32 arg1, s32 arg2) { + s32 sp8[] = { DATA_MAKE_NUM(DATADIR_MSTORY3, 6), DATA_MAKE_NUM(DATADIR_MSTORY3, 5) }; + s32 var_r30; + + if (arg2 < 5) { + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 4)); + arg0->motion[0] = Hu3DMotionIDGet(arg0->model[1]); + fn_1_1E28(arg0, 1, 0, 0, 2); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 8)); + arg0->model[3] = Hu3DModelCreateFile(sp8[arg1]); + arg0->motion[3] = Hu3DMotionIDGet(arg0->model[3]); + fn_1_1E28(arg0, 3, 3, 0, 1); + Hu3DModelShadowMapObjSet(arg0->model[1], "base_fix9-base"); + } else { + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 7)); + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 8)); + arg0->model[3] = Hu3DModelCreateFile(sp8[arg1]); + Hu3DModelAttrSet(arg0->model[3], HU3D_ATTR_DISPOFF); + arg0->motion[3] = Hu3DMotionIDGet(arg0->model[1]); + fn_1_1E28(arg0, 1, 3, 0, 1); + Hu3DModelShadowMapObjSet(arg0->model[1], "base_story-base"); + } + for (var_r30 = 4; var_r30 < 7; var_r30++) { + arg0->model[var_r30] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 11)); + Hu3DModelTPLvlSet(arg0->model[var_r30], 0.0f); + Hu3DModelPosSet(arg0->model[var_r30], -200.0f + 200.0f * (var_r30 - 4), 750.0f, 500.0f); + Hu3DModelScaleSet(arg0->model[var_r30], 1.25f, 2.0f, 1.25f); + Hu3DModelAttrSet(arg0->model[var_r30], HU3D_ATTR_DISPOFF); + } + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY3, 9)); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[2], DATA_MAKE_NUM(DATADIR_MSTORY3, 10)); + lbl_1_bss_1530.unk14 = espEntry(DATA_MAKE_NUM(DATADIR_MSTORY3, 30), 0, 0); + espPosSet(lbl_1_bss_1530.unk14, 288.0f, 110.0f); + espDispOff(lbl_1_bss_1530.unk14); + fn_1_1E28(arg0, 2, 2, 0, 2); + fn_1_35C8(arg0->model[1]); + fn_1_35C8(arg0->model[2]); + fn_1_35C8(arg0->model[3]); + arg0->model[20] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 31) + arg2); + arg0->motion[20] = Hu3DMotionIDGet(arg0->model[20]); + Hu3DModelPosSet(arg0->model[20], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[20], HU3D_ATTR_DISPOFF); + fn_1_1E28(arg0, 20, 20, 0, 2); + arg0->model[21] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 37)); + arg0->motion[21] = Hu3DMotionIDGet(arg0->model[21]); + Hu3DModelPosSet(arg0->model[21], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[21], HU3D_ATTR_DISPOFF); + fn_1_1E28(arg0, 21, 21, 0, 2); + arg0->model[22] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 38)); + arg0->motion[22] = Hu3DMotionIDGet(arg0->model[22]); + Hu3DModelPosSet(arg0->model[22], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[22], HU3D_ATTR_DISPOFF); + fn_1_1E28(arg0, 22, 22, 0, 2); + arg0->model[23] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 39)); + Hu3DModelPosSet(arg0->model[23], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrSet(arg0->model[23], HU3D_ATTR_DISPOFF); +} + +void fn_1_E160(omObjData* arg0) { + s32 var_r28; + s32 var_r29; + s32 var_r31; + + if (lbl_1_bss_C0 == 0.0f) { + return; + } + Hu3DGLightColorSet(lbl_1_bss_1580.unk1C, lbl_1_bss_1580.unk20, lbl_1_bss_1580.unk20, lbl_1_bss_1580.unk20, 0xFF); + lbl_1_bss_1580.unk20++; + if (lbl_1_bss_1580.unk20 >= 128) { + lbl_1_bss_1580.unk20 = 128; + } + for (var_r31 = 1; var_r31 < 80; var_r31++) { + switch (lbl_1_bss_C8[var_r31].unk00) { + case 0: + lbl_1_bss_C8[var_r31].unk30 = Hu3DData[arg0->model[var_r31]].pos.y = 450.0f + rand8() % 150; + lbl_1_bss_C8[var_r31].unk00 = 1; + break; + case 3: + lbl_1_bss_C8[var_r31].unk30 = Hu3DData[arg0->model[var_r31]].pos.y = 500.0f; + /* fallthrough */ + case 1: + if (var_r31 % 3 != 0) { + var_r28 = rand8() % 4; + } else { + var_r28 = 5; + } + switch (var_r28) { + case 0: + Hu3DModelAmbSet(arg0->model[var_r31], 1.0f, 1.0f, 1.0f); + break; + case 1: + Hu3DModelAmbSet(arg0->model[var_r31], 1.0f, 0.0f, 0.0f); + break; + case 2: + Hu3DModelAmbSet(arg0->model[var_r31], 0.0f, 1.0f, 0.0f); + break; + case 3: + Hu3DModelAmbSet(arg0->model[var_r31], 0.0f, 0.0f, 1.0f); + break; + case 5: + break; + } + Hu3DModelAttrReset(arg0->model[var_r31], HU3D_ATTR_DISPOFF); + if (lbl_1_bss_1580.unk344 == 0) { + lbl_1_bss_C8[var_r31].unk2C = Hu3DData[arg0->model[var_r31]].pos.x = -50.0f + lbl_1_bss_BC + rand8() % 100; + } else { + lbl_1_bss_C8[var_r31].unk2C = Hu3DData[arg0->model[var_r31]].pos.x = -100.0f + lbl_1_bss_BC + rand8() % 200; + } + lbl_1_bss_C8[var_r31].unk34 = Hu3DData[arg0->model[var_r31]].pos.z = 460.0f; + Hu3DData[arg0->model[var_r31]].rot.x = rand8(); + Hu3DData[arg0->model[var_r31]].rot.y = rand8(); + Hu3DData[arg0->model[var_r31]].rot.z = rand8(); + lbl_1_bss_C8[var_r31].unk20 = (rand8() % 50 + -1.0f) / 100.0f; + if (var_r31 % 2 == 0) { + lbl_1_bss_C8[var_r31].unk20 *= -1.0f; + } + lbl_1_bss_C8[var_r31].unk24 = ((rand8() % 100 + 100) / 100.0f) * -1.0f; + lbl_1_bss_C8[var_r31].unk28 = (rand8() % 100 - 1) / 100; + lbl_1_bss_C8[var_r31].unk10 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk14 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk18 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk00 = 2; + break; + case 2: + if (lbl_1_bss_C8[var_r31].unk04-- <= 0) { + lbl_1_bss_C8[var_r31].unk04 = rand8() % 30 + 30; + lbl_1_bss_C8[var_r31].unk20 = (rand8() % 50 + -1.0f) / 100.0f; + if (var_r31 % 2 == 0) { + lbl_1_bss_C8[var_r31].unk20 *= -1.0f; + } + lbl_1_bss_C8[var_r31].unk24 = ((rand8() % 100 + 100) / 100.0f) *-1.0f; + lbl_1_bss_C8[var_r31].unk28 = (rand8() % 100 - 1) / 100; + lbl_1_bss_C8[var_r31].unk10 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk14 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk18 = (rand8() % 100 - 50) / 5; + } + lbl_1_bss_C8[var_r31].unk2C += lbl_1_bss_C8[var_r31].unk20; + lbl_1_bss_C8[var_r31].unk30 += lbl_1_bss_C8[var_r31].unk24; + lbl_1_bss_C8[var_r31].unk34 += lbl_1_bss_C8[var_r31].unk28; + Hu3DData[arg0->model[var_r31]].rot.x += lbl_1_bss_C8[var_r31].unk10; + Hu3DData[arg0->model[var_r31]].rot.y += lbl_1_bss_C8[var_r31].unk14; + Hu3DData[arg0->model[var_r31]].rot.z += lbl_1_bss_C8[var_r31].unk18; + if (Hu3DData[arg0->model[var_r31]].pos.y <= 0.0f) { + lbl_1_bss_C8[var_r31].unk00 = 3; + } + break; + case 10: + Hu3DModelAttrReset(arg0->model[var_r31], HU3D_ATTR_DISPOFF); + if (var_r31 % 3 != 0) { + var_r28 = rand8() % 4; + } else { + var_r28 = 5; + } + switch (var_r28) { + case 0: + Hu3DModelAmbSet(arg0->model[var_r31], 1.0f, 1.0f, 1.0f); + break; + case 1: + Hu3DModelAmbSet(arg0->model[var_r31], 1.0f, 0.0f, 0.0f); + break; + case 2: + Hu3DModelAmbSet(arg0->model[var_r31], 0.0f, 1.0f, 0.0f); + break; + case 3: + Hu3DModelAmbSet(arg0->model[var_r31], 0.0f, 0.0f, 1.0f); + break; + case 5: + break; + } + lbl_1_bss_C8[var_r31].unk2C = Hu3DData[arg0->model[var_r31]].pos.x = lbl_1_bss_BC; + lbl_1_bss_C8[var_r31].unk30 = Hu3DData[arg0->model[var_r31]].pos.y = 375.0f; + lbl_1_bss_C8[var_r31].unk34 = Hu3DData[arg0->model[var_r31]].pos.z = 460.0f; + var_r29 = rand8(); + if (rand8() % 2 == 0) { + var_r29 *= -1; + } + lbl_1_bss_C8[var_r31].unk2C += var_r29; + var_r29 = rand8(); + if (rand8() % 2 == 0) { + var_r29 *= -1; + } + lbl_1_bss_C8[var_r31].unk30 += var_r29; + var_r29 = rand8() % 50; + if (rand8() % 2 == 0) { + var_r29 *= -1; + } + lbl_1_bss_C8[var_r31].unk34 += var_r29; + lbl_1_bss_C8[var_r31].unk20 = (rand8() % 50 + -1.0f) / 100.0f; + if (var_r31 % 2 == 0) { + lbl_1_bss_C8[var_r31].unk20 *= -1.0f; + } + lbl_1_bss_C8[var_r31].unk24 = ((rand8() % 100 + 100) / 100.0f) * -1.0f; + lbl_1_bss_C8[var_r31].unk28 = (rand8() % 100 - 1) / 100; + lbl_1_bss_C8[var_r31].unk10 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk14 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk18 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk08 = 0; + lbl_1_bss_C8[var_r31].unk04 = rand8() % 30 + 30; + lbl_1_bss_C8[var_r31].unk00 = 11; + break; + case 11: + if (lbl_1_bss_C8[var_r31].unk04-- <= 0) { + lbl_1_bss_C8[var_r31].unk04 = rand8() % 30 + 30; + lbl_1_bss_C8[var_r31].unk20 = (rand8() % 50 + -1.0f) / 100.0f; + if (var_r31 % 2 == 0) { + lbl_1_bss_C8[var_r31].unk20 *= -1.0f; + } + lbl_1_bss_C8[var_r31].unk24 = ((rand8() % 100 + 100) / 100.0f) * -1.0f; + lbl_1_bss_C8[var_r31].unk28 = (rand8() % 100 - 1) / 100; + lbl_1_bss_C8[var_r31].unk10 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk14 = (rand8() % 100 - 50) / 5; + lbl_1_bss_C8[var_r31].unk18 = (rand8() % 100 - 50) / 5; + } + lbl_1_bss_C8[var_r31].unk2C += lbl_1_bss_C8[var_r31].unk20; + lbl_1_bss_C8[var_r31].unk30 += lbl_1_bss_C8[var_r31].unk24 / 2; + lbl_1_bss_C8[var_r31].unk34 += lbl_1_bss_C8[var_r31].unk28; + Hu3DData[arg0->model[var_r31]].rot.x += lbl_1_bss_C8[var_r31].unk10; + Hu3DData[arg0->model[var_r31]].rot.y += lbl_1_bss_C8[var_r31].unk14; + Hu3DData[arg0->model[var_r31]].rot.z += lbl_1_bss_C8[var_r31].unk18; + if (lbl_1_bss_C8[var_r31].unk08++ >= 50) { + lbl_1_bss_C8[var_r31].unk00 = 2; + } + break; + } + Hu3DData[arg0->model[var_r31]].pos.x = fn_1_5FC(Hu3DData[arg0->model[var_r31]].pos.x, lbl_1_bss_C8[var_r31].unk2C, 30.0f); + Hu3DData[arg0->model[var_r31]].pos.y = fn_1_5FC(Hu3DData[arg0->model[var_r31]].pos.y, lbl_1_bss_C8[var_r31].unk30, 30.0f); + Hu3DData[arg0->model[var_r31]].pos.z = fn_1_5FC(Hu3DData[arg0->model[var_r31]].pos.z, lbl_1_bss_C8[var_r31].unk34, 30.0f); + } +} + +void fn_1_FD30(omObjData* arg0) { + s32 var_r30; + + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 17)); + arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 18)); + Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); + for (var_r30 = 2; var_r30 < 80; var_r30++) { + if (var_r30 % 3 == 0) { + arg0->model[var_r30] = Hu3DModelLink(arg0->model[1]); + } else { + arg0->model[var_r30] = Hu3DModelLink(arg0->model[0]); + } + Hu3DModelAttrSet(arg0->model[var_r30], HU3D_ATTR_DISPOFF); + lbl_1_bss_C8[var_r30].unk04 = lbl_1_bss_C8[var_r30].unk08 = 0; + lbl_1_bss_C8[var_r30].unk00 = 10; + } + arg0->func = fn_1_E160; +} + +void fn_1_FE80(void) { + omObjData* temp_r31; + omObjData* sp8; + + temp_r31 = omAddObjEx(lbl_1_bss_A8, 0x100, 0x20, 0x20, -1, NULL); + sp8 = omAddObjEx(lbl_1_bss_A8, 0x100, 0x80, 0, -1, fn_1_FD30); + lbl_1_bss_1530.unk00 = temp_r31; + lbl_1_bss_1530.unk04 = NULL; + lbl_1_bss_1530.unk00->data = &lbl_1_bss_1530; + fn_1_DB68(temp_r31, lbl_1_bss_1580.unk08, lbl_1_bss_1580.unk00); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1530.unk04 != NULL) { + lbl_1_bss_1530.unk04(temp_r31); + } + fn_1_D7D8(temp_r31); + } +} + +void fn_1_FF7C(s32 arg0) { + s32 sp30[4]; + s32 sp20[4]; + s32 sp10[4]; + s32 i, j; + s32 var_r29; + + sp30[0] = 0; + for (i = 1; i < 4; i++) { + sp30[i] = sp30[i - 1] + 1; + if (sp30[i] >= 4) { + sp30[i] = 0; + } + if (arg0 == sp30[i]) { + lbl_1_bss_1580.unk0C = i; + } + } + if (lbl_1_bss_1580.unk08 != 0) { + lbl_1_bss_1580.unk14 = arg0; + } + if (lbl_1_bss_1580.unk344 == 1) { + var_r29 = 0; + for (i = 0; i < 4; i++) { + sp10[0] = GWPlayer[sp30[0]].team; + sp10[1] = GWPlayer[sp30[1]].team; + sp10[2] = GWPlayer[sp30[2]].team; + sp10[3] = GWPlayer[sp30[3]].team; + sp20[i] = sp30[i]; + } + OSReport("########## Sort Start WIN:%d IDX (%d,%d), (%d,%d), (%d,%d), (%d,%d)\n", + var_r29, sp10[0], sp30[0], sp10[1], sp30[1], sp10[2], sp30[2], sp10[3], sp30[3]); + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + if (sp10[j] != -1 && var_r29 == sp10[j]) { + sp10[j] = -1; + sp30[i] = sp20[j]; + break; + } + } + if (i == 1) { + var_r29++; + var_r29 %= 2; + } + } + OSReport("########## Sort End WIN:%d IDX %d, %d, %d, %d\n", var_r29, sp30[0], sp30[1], sp30[2], sp30[3]); + } + for (i = 0; i < 4; i++) { + fn_1_3650(&lbl_1_bss_1580.unkC4[i].unk00, sp30[i]); + } + for (i = 0; i < 4; i++) { + lbl_1_bss_1580.unkC4[i].unk00.unk1C = GWPlayer[sp30[i]].coins; + lbl_1_bss_1580.unkC4[i].unk00.unk20 = GWPlayer[sp30[i]].stars; + lbl_1_bss_1580.unkC4[i].unk00.unk24 = GWPlayer[sp30[i]].coins_mg; + lbl_1_bss_1580.unkC4[i].unk00.unk28 = GWPlayer[sp30[i]].coins_max; + lbl_1_bss_1580.unkC4[i].unk00.unk2C = GWPlayer[sp30[i]].question_count; + } +} + +void fn_1_1036C(omObjData* arg0) { + float var_f29; + float var_f30; + float temp_f31; + s32 temp_r25; + s32 var_r26; + s32 var_r27 = 3; + StructBss1530* temp_r30 = arg0->data; + char* sp98[][3] = { + { "submit07-star_null3", "submit07-star_null1", "submit07-star_null1" }, + { "submit07-star_null4", "submit07-star_null2", "submit07-star_null1" }, + { "submit07-star_null5", "submit07-star_null3", "submit07-star_null1" } + }; + Mtx sp68; + Mtx sp38; + Mtx sp8; + s32 var_r28; + s32 var_r29; + + Hu3DModelPosSet(arg0->model[3], lbl_1_data_130[temp_r30->unk08].x, 100.0f, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[3], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[3], 0.0f, 0.0f, 0.0f); + if ((temp_r25 = lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk20 / 100) == 0) { + var_r27 = 2; + } else { + Hu3DMotionTimeSet(arg0->model[9], (temp_r25 + 1) % 10); + } + if ((temp_r25 = (lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk20 % 100) / 10) == 0 && var_r27 == 2) { + var_r27 = 1; + } else { + Hu3DMotionTimeSet(arg0->model[8], (temp_r25 + 1) % 10); + } + temp_r25 = lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk20 % 10; + Hu3DMotionTimeSet(arg0->model[7], (temp_r25 + 1) % 10); + Hu3DModelAttrReset(arg0->model[3], HU3D_ATTR_DISPOFF); + for (var_r28 = 0; var_r28 < 90; var_r28++) { + fn_1_938(); + var_f29 = fn_1_6F4(100.0f, 300.0f, var_r28, 90.0f); + var_f30 = fn_1_6F4(0.0f, 1080.0f, var_r28, 90.0f); + temp_f31 = fn_1_6F4(0.0f, 0.75f, var_r28, 90.0f); + Hu3DModelPosSet(arg0->model[3], lbl_1_data_130[temp_r30->unk08].x, var_f29, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[3], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[3], temp_f31, temp_f31, temp_f31); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + if (var_f30 >= 900.0f) { + Hu3DModelAttrReset(arg0->model[var_r29 + 7], HU3D_ATTR_DISPOFF); + } + Hu3DModelObjMtxGet(arg0->model[3], sp98[var_r27 - 1][var_r29], sp68); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp68[0][3], sp68[1][3], sp68[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[var_r29 + 7], temp_f31, temp_f31, temp_f31); + } + } + var_r28 = var_r29 = var_r26 = 0; + if (temp_r30->unk1C == 1) { + fn_1_1E28(arg0, 1, 14, 5, 0); + } else { + fn_1_1E28(arg0, 1, 15, 5, 0); + } + do { + fn_1_938(); + if (temp_r30->unk1C == 1) { + temp_f31 = fn_1_878(0.75f, 1.0f, var_r26, 30.0f); + if (var_r26++ >= 29) { + var_r26 = 0; + } + Hu3DModelScaleSet(arg0->model[3], temp_f31, temp_f31, temp_f31); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + Hu3DModelObjMtxGet(arg0->model[3], sp98[var_r27 - 1][var_r29], sp38); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp38[0][3], sp38[1][3], sp38[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[var_r29 + 7], temp_f31, temp_f31, temp_f31); + } + } + if (var_r28 == 60) { + fn_1_1E28(arg0, 1, 1, 15, 1); + } + if (var_r28 == 120) { + lbl_1_bss_1580.unk18 = 1; + } + if (var_r28++ >= 120 && (var_r26 == 0 || var_r26 == 15) && temp_r30->unk18 == 1) { + temp_r30->unk18 = 2; + } + } while (temp_r30->unk18 != 3); + HuAudFXPlay(0xBB); + for (var_r28 = 0; var_r28 < 60; var_r28++) { + fn_1_938(); + if (var_r28 > 30) { + var_f29 = fn_1_61C(300.0f, 600.0f, var_r28 - 30, 30.0f); + } + var_f30 = fn_1_61C(0.0f, 360.0f, var_r28, 60.0f); + Hu3DModelPosSet(arg0->model[3], lbl_1_data_130[temp_r30->unk08].x, var_f29, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[3], 0.0f, var_f30, 0.0f); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + if (var_f30 >= 180.0f) { + Hu3DModelAttrSet(arg0->model[var_r29 + 7], HU3D_ATTR_DISPOFF); + } + Hu3DModelObjMtxGet(arg0->model[3], sp98[var_r27 - 1][var_r29], sp8); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp8[0][3], sp8[1][3], sp8[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + } + } + Hu3DModelAttrSet(arg0->model[3], HU3D_ATTR_DISPOFF); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + Hu3DModelAttrSet(arg0->model[var_r28 + 7], HU3D_ATTR_DISPOFF); + } + temp_r30->unk04 = 0; +} + +void fn_1_10D74(omObjData* arg0) { + float var_f29; + float var_f30; + float temp_f31; + s32 temp_r25; + s32 var_r26; + s32 var_r27 = 3; + StructBss1530* temp_r30 = arg0->data; + char* sp98[][3] = { + { "coin-coin-null3", "coin-coin_null1", "coin-coin-null1" }, + { "coin-coin-null4", "coin-coin-null2", "coin-coin-null1" }, + { "coin-coin-null5", "coin-coin-null3", "coin-coin-null1" } + }; + Mtx sp68; + Mtx sp38; + Mtx sp8; + s32 var_r28; + s32 var_r29; + + Hu3DModelPosSet(arg0->model[4], lbl_1_data_130[temp_r30->unk08].x, 100.0f, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[4], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[4], 0.0f, 0.0f, 0.0f); + if ((temp_r25 = lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk1C / 100) == 0) { + var_r27 = 2; + } else { + Hu3DMotionTimeSet(arg0->model[9], (temp_r25 + 1) % 10); + } + if ((temp_r25 = (lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk1C % 100) / 10) == 0 && var_r27 == 2) { + var_r27 = 1; + } else { + Hu3DMotionTimeSet(arg0->model[8], (temp_r25 + 1) % 10); + } + temp_r25 = lbl_1_bss_1580.unkC4[temp_r30->unk08].unk00.unk1C % 10; + Hu3DMotionTimeSet(arg0->model[7], (temp_r25 + 1) % 10); + Hu3DModelAttrReset(arg0->model[4], HU3D_ATTR_DISPOFF); + for (var_r28 = 0; var_r28 < 90; var_r28++) { + fn_1_938(); + var_f29 = fn_1_6F4(100.0f, 300.0f, var_r28, 90.0f); + var_f30 = fn_1_6F4(0.0f, 1080.0f, var_r28, 90.0f); + temp_f31 = fn_1_6F4(0.0f, 0.75f, var_r28, 90.0f); + Hu3DModelPosSet(arg0->model[4], lbl_1_data_130[temp_r30->unk08].x, var_f29, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[4], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[4], temp_f31, temp_f31, temp_f31); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + if (var_f30 >= 900.0f) { + Hu3DModelAttrReset(arg0->model[var_r29 + 7], HU3D_ATTR_DISPOFF); + } + Hu3DModelObjMtxGet(arg0->model[4], sp98[var_r27 - 1][var_r29], sp68); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp68[0][3], sp68[1][3], sp68[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[var_r29 + 7], temp_f31, temp_f31, temp_f31); + } + } + var_r28 = var_r29 = var_r26 = 0; + if (temp_r30->unk1C == 1) { + fn_1_1E28(arg0, 1, 14, 5, 0); + } else { + fn_1_1E28(arg0, 1, 15, 5, 0); + } + do { + fn_1_938(); + if (temp_r30->unk1C == 1) { + temp_f31 = fn_1_878(0.75f, 1.0f, var_r26, 30.0f); + if (var_r26++ >= 29) { + var_r26 = 0; + } + Hu3DModelScaleSet(arg0->model[4], temp_f31, temp_f31, temp_f31); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + Hu3DModelObjMtxGet(arg0->model[4], sp98[var_r27 - 1][var_r29], sp38); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp38[0][3], sp38[1][3], sp38[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + Hu3DModelScaleSet(arg0->model[var_r29 + 7], temp_f31, temp_f31, temp_f31); + } + } + if (var_r28 == 60) { + fn_1_1E28(arg0, 1, 1, 15, 1); + } + if (var_r28 == 120) { + lbl_1_bss_1580.unk18 = 1; + } + if (var_r28++ >= 120 && (var_r26 == 0 || var_r26 == 15) && temp_r30->unk18 == 1) { + temp_r30->unk18 = 2; + } + } while (temp_r30->unk18 != 3); + fn_1_1E28(arg0, 1, 1, 15, 1); + HuAudFXPlay(0xBC); + for (var_r28 = 0; var_r28 < 60; var_r28++) { + fn_1_938(); + if (var_r28 > 30) { + var_f29 = fn_1_61C(300.0f, 600.0f, var_r28 - 30, 30.0f); + } + var_f30 = fn_1_61C(0.0f, 360.0f, var_r28, 60.0f); + Hu3DModelPosSet(arg0->model[4], lbl_1_data_130[temp_r30->unk08].x, var_f29, lbl_1_data_130[temp_r30->unk08].z - 20.0f); + Hu3DModelRotSet(arg0->model[4], 0.0f, var_f30, 0.0f); + for (var_r29 = 0; var_r29 < var_r27; var_r29++) { + if (var_f30 >= 180.0f) { + Hu3DModelAttrSet(arg0->model[var_r29 + 7], HU3D_ATTR_DISPOFF); + } + Hu3DModelObjMtxGet(arg0->model[4], sp98[var_r27 - 1][var_r29], sp8); + Hu3DModelPosSet(arg0->model[var_r29 + 7], sp8[0][3], sp8[1][3], sp8[2][3]); + Hu3DModelRotSet(arg0->model[var_r29 + 7], 0.0f, var_f30, 0.0f); + } + } + Hu3DModelAttrSet(arg0->model[4], HU3D_ATTR_DISPOFF); + for (var_r28 = 0; var_r28 < 3; var_r28++) { + Hu3DModelAttrSet(arg0->model[var_r28 + 7], HU3D_ATTR_DISPOFF); + } + temp_r30->unk04 = 0; +} + +void fn_1_11794(omObjData* arg0) { + StructBss1530* temp_r30; + + temp_r30 = arg0->data; + fn_1_958(25); + fn_1_1E28(arg0, 1, 15, 5, 0); + fn_1_958(10); + while (TRUE) { + fn_1_938(); + if (Hu3DMotionTimeGet(arg0->model[1]) >= 40.0f) { + break; + } + } + Hu3DModelAttrSet(arg0->model[1], HU3D_MOTATTR_PAUSE); + temp_r30->unk04 = 0; +} + +void fn_1_11834(omObjData* arg0) { + float var_f31; + float var_f30; + float temp_f26; + float temp_f27; + float temp_f25; + float temp_f29; + float temp_f28; + StructBss1530* temp_r31; + s32 temp_r29; + s32 var_r24; + s32 temp_r23; + s32 var_r27; + s32 temp_r25; + s32 var_r28; + + var_f30 = 0.0f; + temp_r31 = arg0->data; + temp_r29 = temp_r31->unk08; + temp_r23 = lbl_1_bss_1490[temp_r29].unk00->work[0]; + var_r24 = 0xFF; + Hu3DModelPosSet(lbl_1_bss_1490[temp_r29].unk00->model[6], lbl_1_data_130[temp_r29].x, 500.0f + lbl_1_data_130[temp_r29].y + lbl_1_bss_AC, lbl_1_data_130[temp_r29].z + 0.1f * lbl_1_bss_AC); + Hu3DModelScaleSet(lbl_1_bss_1490[temp_r29].unk00->model[6], 0.0f, 1.25f, 0.0f); + Hu3DModelTPLvlSet(lbl_1_bss_1490[temp_r29].unk00->model[6], 0.0f); + Hu3DModelAttrReset(lbl_1_bss_1490[temp_r29].unk00->model[6], HU3D_ATTR_DISPOFF); + for (var_r27 = 0; var_r27 <= 5; var_r27++) { + fn_1_938(); + lbl_1_bss_1490[temp_r29].unk00->work[0] = fn_1_6F4(temp_r23, var_r24, var_r27, 5.0f); + temp_f27 = fn_1_6F4(0.0f, 1.5f, var_r27, 5.0f); + temp_f25 = fn_1_6F4(0.0f, 0.5f, var_r27, 5.0f); + temp_r25 = fn_1_6F4(0.0f, 128.0f, var_r27, 5.0f); + Hu3DModelScaleSet(lbl_1_bss_1490[temp_r29].unk00->model[6], temp_f27, 1.25f, temp_f27); + Hu3DModelTPLvlSet(lbl_1_bss_1490[temp_r29].unk00->model[6], temp_f25); + Hu3DLLightColorSet(lbl_1_bss_1490[temp_r29].unk00->model[1], lbl_1_bss_1580.unk24[temp_r29].unk00, temp_r25, temp_r25, temp_r25, 0xFF); + Hu3DLLightColorSet(lbl_1_bss_1490[temp_r29].unk00->model[2], lbl_1_bss_1580.unk24[temp_r29].unk04, temp_r25, temp_r25, temp_r25, 0xFF); + } + lbl_1_bss_1490[temp_r29].unk00->work[1] = 1; + fn_1_958(20); + fn_1_1E28(arg0, 1, 3, 15, 0); + fn_1_2310(arg0, 1, 3, 15); + do { + fn_1_938(); + } while (temp_r31->unk18 == 0); + Hu3DModelPosSet(arg0->model[5], lbl_1_data_130[temp_r31->unk08].x, 300.0f, lbl_1_data_130[temp_r31->unk08].z - 50.0f); + Hu3DModelRotSet(arg0->model[5], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[5], 0.0f, 0.0f, 0.0f); + Hu3DModelAttrReset(arg0->model[5], HU3D_ATTR_DISPOFF); + HuAudFXPlay(0x338); + for (var_r28 = 0; var_r28 < 60; var_r28++) { + fn_1_938(); + temp_f29 = 10.0 + 10.0 * sind(var_f30); + temp_f28 = 10.0 * sind(2.0f * var_f30); + if (var_r28 < 10) { + var_f31 = fn_1_61C(0.0f, 1.0f, var_r28, 10.0f); + } else { + var_f31 = fn_1_61C(1.0f, 0.5f, var_r28 - 10, 5.0f); + } + if (var_r28 == 10) { + lbl_1_bss_1580.unk334[temp_r31->unk08] = fn_1_8264(); + Hu3DParManPosSet(lbl_1_bss_1580.unk334[temp_r31->unk08], lbl_1_data_130[temp_r31->unk08].x, 300.0f + temp_f29, lbl_1_data_130[temp_r31->unk08].z); + } + if ((var_f30 += 2.0f) >= 360.0f) { + var_f30 -= 360.0f; + } + Hu3DModelPosSet(arg0->model[5], lbl_1_data_130[temp_r31->unk08].x, 300.0f + temp_f29, lbl_1_data_130[temp_r31->unk08].z - 50.0f); + Hu3DModelRotSet(arg0->model[5], 0.0f, temp_f28, 0.0f); + Hu3DModelScaleSet(arg0->model[5], var_f31, var_f31, var_f31); + } + Hu3DParManKill(lbl_1_bss_1580.unk334[temp_r31->unk08]); + lbl_1_bss_1580.unk334[temp_r31->unk08] = -1; + temp_f29 = Hu3DData[arg0->model[5]].pos.y; + temp_f26 = temp_f29; + temp_f28 = Hu3DData[arg0->model[5]].rot.y; + var_f31 = 0.5f; + var_f30 = 0.0f; + for (var_r28 = 0; var_r28 < 90; var_r28++) { + fn_1_938(); + if (var_r28 == 45) { + HuAudFXPlay(0x339); + } + if (var_r28 > 45) { + temp_f29 = fn_1_61C(temp_f26, 100.0f, var_r28 - 45, 45.0f); + var_f31 = fn_1_61C(0.5f, 0.0f, var_r28 - 45, 45.0f); + } + temp_f28 += var_f30 += 0.25f; + Hu3DModelPosSet(arg0->model[5], lbl_1_data_130[temp_r31->unk08].x, temp_f29, lbl_1_data_130[temp_r31->unk08].z - 50.0f); + Hu3DModelRotSet(arg0->model[5], 0.0f, temp_f28, 0.0f); + Hu3DModelScaleSet(arg0->model[5], var_f31, var_f31, var_f31); + } + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); + HuAudFXPlay(8); + lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk20++; + GWPlayer[lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk00].stars++; + if (GWPlayer[lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk00].stars >= 999) { + GWPlayer[lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk00].stars = 999; + } + temp_r31->unk04 = 0; +} + +void fn_1_123D8(omObjData* arg0) { + StructBss1530* temp_r31; + + temp_r31 = arg0->data; + fn_1_15450(temp_r31->unk08); + temp_r31->unk04 = 0; +} + +void fn_1_1241C(omObjData* arg0) { +} + +void fn_1_12420(omObjData* arg0) { + float sp8[] = { 0.0f, -30.0f, -60.0f, -90.0f }; + float temp_f31; + StructBss1530* temp_r31; + s32 var_r27; + s32 var_r29; + s32 var_r28; + + temp_r31 = arg0->data; + if (lbl_1_bss_1580.unk344 == 1) { + var_r27 = 0; + if (lbl_1_bss_1580.unk348 == 1) { + var_r27 = 2; + } + if ((lbl_1_bss_1580.unk348 == 0 && temp_r31->unk08 <= 1) || (lbl_1_bss_1580.unk348 == 1 && temp_r31->unk08 >= 2)) { + Hu3DModelPosSet(arg0->model[2], 100.0f + lbl_1_data_130[temp_r31->unk08].x, -90.0f, lbl_1_data_130[temp_r31->unk08].z); + fn_1_958(90); + if (temp_r31->unk08 == var_r27) { + Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); + } + if (arg0->work[0] == 0) { + HuAudFXPlay(0xA8); + } + for (var_r28 = 0; var_r28 <= 30; var_r28++) { + fn_1_938(); + temp_f31 = fn_1_6F4(-90.0f, 0.0f, var_r28, 30.0f); + Hu3DModelPosSet(arg0->model[1], lbl_1_data_130[temp_r31->unk08].x, 90.0f + temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + Hu3DModelPosSet(arg0->model[2], 100.0f + lbl_1_data_130[temp_r31->unk08].x, temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + } + } + } else { + Hu3DModelPosSet(arg0->model[2], lbl_1_data_130[temp_r31->unk08].x, -90.0f, lbl_1_data_130[temp_r31->unk08].z); + if (lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk18 != 4) { + } + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (arg0->work[0] == 0 && var_r29 >= 1) { + HuAudFXPlay(0xA5 + var_r29); + } + if (var_r29 != 3) { + for (var_r28 = 0; var_r28 < 30; var_r28++) { + fn_1_938(); + if (sp8[lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk18 - 1] >= sp8[3 - var_r29] && 4 - var_r29 < 4) { + temp_f31 = fn_1_6F4(sp8[4 - var_r29], sp8[3 - var_r29], var_r28, 30.0f); + if (var_r29 == 1) { + Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); + } + Hu3DModelPosSet(arg0->model[1], lbl_1_data_130[temp_r31->unk08].x, 90.0f + temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + Hu3DModelPosSet(arg0->model[2], lbl_1_data_130[temp_r31->unk08].x, temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + } + } + } else { + for (var_r28 = 0; var_r28 < 10; var_r28++) { + fn_1_938(); + if ((sp8[lbl_1_bss_1580.unkC4[temp_r31->unk08].unk00.unk18 - 1] >= sp8[3 - var_r29]) && ((4 - var_r29) < 4)) { + temp_f31 = fn_1_6F4(sp8[4 - var_r29], sp8[3 - var_r29], var_r28, 10.0f); + if (var_r29 == 1) { + Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); + } + Hu3DModelPosSet(arg0->model[1], lbl_1_data_130[temp_r31->unk08].x, 90.0f + temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + Hu3DModelPosSet(arg0->model[2], lbl_1_data_130[temp_r31->unk08].x, temp_f31, lbl_1_data_130[temp_r31->unk08].z - 20.0f); + } + } + } + if (var_r29 == 2) { + fn_1_958(120); + } else if (var_r29 != 3) { + fn_1_958(60); + } + } + } + temp_r31->unk04 = 0; +} + +void fn_1_12A98(s32 arg0) { + s32 sp8[4]; + s32 var_r29; + s32 var_r30; + s32 i; + + var_r29 = 0; + var_r30 = -1; + for (i = 0; i < 4; i++) { + lbl_1_bss_1458[i] = lbl_1_bss_1448[i] = 0; + } + for (i = 0; i < 4; i++) { + switch (arg0) { + case 0: + sp8[i] = lbl_1_bss_1580.unkC4[i].unk00.unk20; + break; + case 1: + sp8[i] = lbl_1_bss_1580.unkC4[i].unk00.unk1C; + break; + } + } + for (i = 0; i < 4; i++) { + if (var_r30 <= sp8[i]) { + var_r30 = sp8[i]; + } + } + for (i = 0; i < 4; i++) { + if (var_r30 == sp8[i]) { + lbl_1_bss_1458[0]++; + lbl_1_bss_1448[var_r29++] = i; + } + } +} + +void fn_1_12C08(s32 arg0) { + s32 sp8[4]; + s32 var_r29; + s32 var_r30; + s32 i; + + var_r29 = 0; + var_r30 = -1; + for (i = 0; i < 4; i++) { + lbl_1_bss_1458[i] = 0; + lbl_1_bss_1448[i] = -1; + } + for (i = 0; i < 4; i++) { + switch (arg0) { + case 0: + sp8[i] = lbl_1_bss_1580.unkC4[i].unk00.unk24; + break; + case 1: + sp8[i] = lbl_1_bss_1580.unkC4[i].unk00.unk28; + break; + case 2: + sp8[i] = lbl_1_bss_1580.unkC4[i].unk00.unk2C; + break; + } + } + for (i = 0; i < 4; i++) { + if (var_r30 <= sp8[i]) { + var_r30 = sp8[i]; + } + } + for (i = 0; i < 4; i++) { + if (var_r30 == sp8[i]) { + lbl_1_bss_1458[0]++; + lbl_1_bss_1448[var_r29++] = i; + } + } +} + +void fn_1_12DAC(void) { + s32 sp8[4]; + s32 var_r29; + s32 i; + s32 j; + + for (i = 0; i < 4; i++) { + sp8[i] = i; + } + for (i = 0; i < 4; i++) { + for (j = i; j < 4; j++) { + if (lbl_1_bss_1580.unkC4[sp8[j]].unk00.unk20 >= lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk20) { + var_r29 = sp8[i]; + sp8[i] = sp8[j]; + sp8[j] = var_r29; + } + } + } + for (i = 0; i < 4; i++) { + for (j = i; j < 4; j++) { + if ((lbl_1_bss_1580.unkC4[sp8[j]].unk00.unk20 == lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk20) && (lbl_1_bss_1580.unkC4[sp8[j]].unk00.unk1C >= lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk1C)) { + var_r29 = sp8[i]; + sp8[i] = sp8[j]; + sp8[j] = var_r29; + } + } + } + lbl_1_bss_1580.unkC4[sp8[0]].unk00.unk18 = j = 1; + for (i = 1; i < 4; i++) { + j++; + lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk18 = j; + if ((lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk20 == lbl_1_bss_1580.unkC4[sp8[i - 1]].unk00.unk20) && (lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk1C == lbl_1_bss_1580.unkC4[sp8[i - 1]].unk00.unk1C)) { + lbl_1_bss_1580.unkC4[sp8[i]].unk00.unk18 = lbl_1_bss_1580.unkC4[sp8[i - 1]].unk00.unk18; + } + } +} + +void fn_1_130A8(void) { + s32 var_r30; + s32 i; + + var_r30 = 0; + for (i = 0; i < 4; i++) { + lbl_1_bss_1458[i] = lbl_1_bss_1448[i] = 0; + } + for (i = 0; i < 4; i++) { + if (lbl_1_bss_1580.unkC4[i].unk00.unk18 == 1) { + lbl_1_bss_1458[0]++; + lbl_1_bss_1448[var_r30++] = i; + lbl_1_bss_1458[1] = i; + } + } +} + +void fn_1_1317C(void) { + s32 sp8[4]; + s32 var_r30; + s32 i; + + var_r30 = -1; + for (i = 0; i < 4; i++) { + sp8[i] = lbl_1_bss_1428[i]; + } + for (i = 0; i < 4; i++) { + if (var_r30 <= sp8[i]) { + var_r30 = sp8[i]; + } + } + for (i = 0; i < 4; i++) { + if (var_r30 == sp8[i]) { + lbl_1_bss_1458[1] = i; + } + } + for (i = 0; i < lbl_1_bss_1458[0]; i++) { + if (lbl_1_bss_1458[1] != lbl_1_bss_1448[i]) { + lbl_1_bss_1580.unkC4[lbl_1_bss_1448[i]].unk00.unk18 = 2; + } + } +} + +void fn_1_132AC(omObjData* arg0, s32 arg1) { + StructFn352C* temp_r30; + s32 var_r28; + + temp_r30 = &lbl_1_bss_1580.unkC4[arg1].unk00; + arg0->model[1] = CharModelCreate(temp_r30->unk10, 4); + arg0->motion[1] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + arg0->motion[2] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 72)); + arg0->motion[5] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 47)); + arg0->motion[3] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 23)); + arg0->motion[4] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 24)); + arg0->motion[14] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 72)); + arg0->motion[15] = CharModelMotionCreate(temp_r30->unk10, DATA_MAKE_NUM(DATADIR_MARIOMOT, 73)); + CharModelMotionDataClose(temp_r30->unk10); + Hu3DModelPosSet(arg0->model[1], lbl_1_data_130[arg1].x, lbl_1_data_130[arg1].y, lbl_1_data_130[arg1].z - 20.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1E28(arg0, 1, 1, 0, 1); + if (lbl_1_bss_1580.unk344 == 1) { + var_r28 = 0; + if (arg1 > 1) { + var_r28 = 1; + } + arg0->model[2] = Hu3DModelCreateFile(var_r28 + DATA_MAKE_NUM(DATADIR_MSTORY3, 144)); + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(arg0->model[2], 1.25f, 1.0f, 1.5f); + Hu3DModelShadowMapSet(arg0->model[2]); + } else { + arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 12)); + Hu3DModelScaleSet(arg0->model[2], 1.5f, 1.0f, 1.5f); + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + Hu3DModelShadowMapSet(arg0->model[2]); + } + arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 14)); + Hu3DModelAttrSet(arg0->model[3], HU3D_ATTR_DISPOFF); + arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 15)); + Hu3DModelAttrSet(arg0->model[4], HU3D_ATTR_DISPOFF); + arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 13)); + Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); + arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 11)); + Hu3DModelAttrSet(arg0->model[6], HU3D_ATTR_DISPOFF); + for (arg1 = 0; arg1 < 3; arg1++) { + arg0->model[arg1 + 7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 16)); + Hu3DModelAttrSet(arg0->model[arg1 + 7], HU3D_ATTR_DISPOFF); + Hu3DMotionSpeedSet(arg0->model[arg1 + 7], 0.0f); + } + lbl_1_bss_1580.unk24[arg1].unk00 = Hu3DLLightCreate(arg0->model[1], 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0, 0, 0); + Hu3DLLightInfinitytSet(arg0->model[1], lbl_1_bss_1580.unk24[arg1].unk00); + Hu3DLLightPosAimSet(arg0->model[1], lbl_1_bss_1580.unk24[arg1].unk00, 0.0f, 700.0f, 1200.0f, 0.0f, 0.0f, 640.0f); + lbl_1_bss_1580.unk24[arg1].unk04 = Hu3DLLightCreate(arg0->model[2], 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0, 0, 0); + Hu3DLLightInfinitytSet(arg0->model[2], lbl_1_bss_1580.unk24[arg1].unk04); + Hu3DLLightPosAimSet(arg0->model[2], lbl_1_bss_1580.unk24[arg1].unk04, 0.0f, 700.0f, 1200.0f, 0.0f, 0.0f, 640.0f); +} + +void fn_1_13908(void) { + omObjData* var_r30; + s32 temp_r31; + + temp_r31 = lbl_1_bss_1580.unk314++; + var_r30 = omAddObjEx(lbl_1_bss_A8, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_1490[temp_r31].unk00 = var_r30; + lbl_1_bss_1490[temp_r31].unk04 = NULL; + lbl_1_bss_1490[temp_r31].unk08 = temp_r31; + lbl_1_bss_1490[temp_r31].unk00->data = &lbl_1_bss_1490[temp_r31]; + fn_1_132AC(lbl_1_bss_1490[temp_r31].unk00, temp_r31); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1490[temp_r31].unk04 != NULL) { + lbl_1_bss_1490[temp_r31].unk04(lbl_1_bss_1490[temp_r31].unk00); + } + } +} + +void fn_1_13A38(omObjData* arg0) { +} + +s32 lbl_1_data_504[][27] = { + { + MAKE_MESSID(37, 0x00), MAKE_MESSID(37, 0x01), MAKE_MESSID(37, 0x02), + MAKE_MESSID(37, 0x03), MAKE_MESSID(37, 0x05), MAKE_MESSID(37, 0x06), + MAKE_MESSID(37, 0x0B), MAKE_MESSID(37, 0x0C), MAKE_MESSID(37, 0x0D), + MAKE_MESSID(37, 0x0E), MAKE_MESSID(37, 0x0F), MAKE_MESSID(37, 0x10), + MAKE_MESSID(37, 0x07), MAKE_MESSID(37, 0x08), MAKE_MESSID(37, 0x09), + MAKE_MESSID(37, 0x0A), MAKE_MESSID(37, 0x11), MAKE_MESSID(37, 0x12), + MAKE_MESSID(37, 0x13), MAKE_MESSID(37, 0x14), MAKE_MESSID(37, 0x15), + MAKE_MESSID(37, 0x16), MAKE_MESSID(37, 0x17), MAKE_MESSID(37, 0x8C), + MAKE_MESSID(37, 0x8D), MAKE_MESSID(37, 0x8E), MAKE_MESSID(37, 0x9E) + }, + { + MAKE_MESSID(37, 0x19), MAKE_MESSID(37, 0x1A), MAKE_MESSID(37, 0x1B), + MAKE_MESSID(37, 0x1C), MAKE_MESSID(37, 0x1D), MAKE_MESSID(37, 0x1E), + MAKE_MESSID(37, 0x23), MAKE_MESSID(37, 0x24), MAKE_MESSID(37, 0x25), + MAKE_MESSID(37, 0x26), MAKE_MESSID(37, 0x27), MAKE_MESSID(37, 0x28), + MAKE_MESSID(37, 0x1F), MAKE_MESSID(37, 0x20), MAKE_MESSID(37, 0x21), + MAKE_MESSID(37, 0x22), MAKE_MESSID(37, 0x29), MAKE_MESSID(37, 0x2A), + MAKE_MESSID(37, 0x2B), MAKE_MESSID(37, 0x2C), MAKE_MESSID(37, 0x2D), + MAKE_MESSID(37, 0x2E), MAKE_MESSID(37, 0x2F), MAKE_MESSID(37, 0x8F), + MAKE_MESSID(37, 0x90), MAKE_MESSID(37, 0x91), MAKE_MESSID(37, 0x9F) + }, + { + MAKE_MESSID(37, 0x30), MAKE_MESSID(37, 0x31), MAKE_MESSID(37, 0x32), + MAKE_MESSID(37, 0x33), MAKE_MESSID(37, 0x34), MAKE_MESSID(37, 0x35), + MAKE_MESSID(37, 0x3A), MAKE_MESSID(37, 0x3B), MAKE_MESSID(37, 0x3C), + MAKE_MESSID(37, 0x3D), MAKE_MESSID(37, 0x3E), MAKE_MESSID(37, 0x3F), + MAKE_MESSID(37, 0x36), MAKE_MESSID(37, 0x37), MAKE_MESSID(37, 0x38), + MAKE_MESSID(37, 0x39), MAKE_MESSID(37, 0x40), MAKE_MESSID(37, 0x41), + MAKE_MESSID(37, 0x42), MAKE_MESSID(37, 0x43), MAKE_MESSID(37, 0x44), + MAKE_MESSID(37, 0x45), MAKE_MESSID(37, 0x46), MAKE_MESSID(37, 0x92), + MAKE_MESSID(37, 0x93), MAKE_MESSID(37, 0x94), MAKE_MESSID(37, 0xA0) + }, + { + MAKE_MESSID(37, 0x47), MAKE_MESSID(37, 0x48), MAKE_MESSID(37, 0x49), + MAKE_MESSID(37, 0x4A), MAKE_MESSID(37, 0x4B), MAKE_MESSID(37, 0x4C), + MAKE_MESSID(37, 0x51), MAKE_MESSID(37, 0x52), MAKE_MESSID(37, 0x53), + MAKE_MESSID(37, 0x54), MAKE_MESSID(37, 0x55), MAKE_MESSID(37, 0x56), + MAKE_MESSID(37, 0x4D), MAKE_MESSID(37, 0x4E), MAKE_MESSID(37, 0x4F), + MAKE_MESSID(37, 0x50), MAKE_MESSID(37, 0x57), MAKE_MESSID(37, 0x58), + MAKE_MESSID(37, 0x59), MAKE_MESSID(37, 0x5A), MAKE_MESSID(37, 0x5B), + MAKE_MESSID(37, 0x5C), MAKE_MESSID(37, 0x5D), MAKE_MESSID(37, 0x95), + MAKE_MESSID(37, 0x96), MAKE_MESSID(37, 0x97), MAKE_MESSID(37, 0xA1) + }, + { + MAKE_MESSID(37, 0x5E), MAKE_MESSID(37, 0x5F), MAKE_MESSID(37, 0x60), + MAKE_MESSID(37, 0x61), MAKE_MESSID(37, 0x62), MAKE_MESSID(37, 0x63), + MAKE_MESSID(37, 0x68), MAKE_MESSID(37, 0x69), MAKE_MESSID(37, 0x6A), + MAKE_MESSID(37, 0x6B), MAKE_MESSID(37, 0x6C), MAKE_MESSID(37, 0x6D), + MAKE_MESSID(37, 0x64), MAKE_MESSID(37, 0x65), MAKE_MESSID(37, 0x66), + MAKE_MESSID(37, 0x67), MAKE_MESSID(37, 0x6E), MAKE_MESSID(37, 0x6F), + MAKE_MESSID(37, 0x70), MAKE_MESSID(37, 0x71), MAKE_MESSID(37, 0x72), + MAKE_MESSID(37, 0x73), MAKE_MESSID(37, 0x74), MAKE_MESSID(37, 0x98), + MAKE_MESSID(37, 0x99), MAKE_MESSID(37, 0x9A), MAKE_MESSID(37, 0xA2) + }, + { + MAKE_MESSID(37, 0x75), MAKE_MESSID(37, 0x76), MAKE_MESSID(37, 0x77), + MAKE_MESSID(37, 0x78), MAKE_MESSID(37, 0x79), MAKE_MESSID(37, 0x7A), + MAKE_MESSID(37, 0x7F), MAKE_MESSID(37, 0x80), MAKE_MESSID(37, 0x81), + MAKE_MESSID(37, 0x82), MAKE_MESSID(37, 0x83), MAKE_MESSID(37, 0x84), + MAKE_MESSID(37, 0x7B), MAKE_MESSID(37, 0x7C), MAKE_MESSID(37, 0x7D), + MAKE_MESSID(37, 0x7E), MAKE_MESSID(37, 0x85), MAKE_MESSID(37, 0x86), + MAKE_MESSID(37, 0x87), MAKE_MESSID(37, 0x88), MAKE_MESSID(37, 0x89), + MAKE_MESSID(37, 0x8A), MAKE_MESSID(37, 0x8B), MAKE_MESSID(37, 0x9B), + MAKE_MESSID(37, 0x9C), MAKE_MESSID(37, 0x9D), MAKE_MESSID(37, 0xA3) + } +}; + +void fn_1_13A3C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { + s32 var_r29 = 0; + s32 temp_r28 = 0; + s32 i; + + lbl_1_bss_1580.unk18 = 0; + fn_1_1E28(lbl_1_bss_1468.unk00, 1, arg3, 15, 1); + temp_r28 = (s16) HuWinKeyWaitNumGet(lbl_1_data_504[lbl_1_bss_1580.unk00][arg1]); + if (arg2 == -1) { + arg2 = temp_r28 - 1; + } + HuWinComKeyReset(); + if (lbl_1_bss_1580.unk14 == -1) { + for (i = 0; i < 10; i++) { + HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, GWMessDelayGet()); + } + } + HuWinMesSet(arg0, lbl_1_data_504[lbl_1_bss_1580.unk00][arg1]); + for (i = 0; i < temp_r28; i++) { + var_r29 = 0; + do { + HuPrcVSleep(); + } while (HuWinStatGet(arg0) != 1); + if (i == arg2) { + HuWinAttrSet(arg0, 0x400); + var_r29 = 1; + lbl_1_bss_1580.unk18 = 99; + } + while (TRUE) { + HuPrcVSleep(); + if (var_r29 != 0) { + if (var_r29 == 1) { + if (HuWinStatGet(arg0) != 1) { + var_r29 = 2; + continue; + } + } + if (var_r29 == 2) { + do { + fn_1_938(); + } while (lbl_1_bss_1580.unk18 != 1); + HuWinAttrReset(arg0, 0x400); + HuWinKeyWaitEntry(arg0); + break; + } + } else if (HuWinStatGet(arg0) != 1) { + break; + } + } + } + fn_1_1B18(arg0, -1); + fn_1_1D44(arg0, MAKE_MESSID(37, 4)); + HuWinComKeyReset(); + fn_1_1E28(lbl_1_bss_1468.unk00, 1, 1, 15, 1); +} + +void fn_1_13C78(s32 arg0, s32 arg1, s32 arg2) { + fn_1_1E28(lbl_1_bss_1468.unk00, 1, arg2, 15, 1); + fn_1_1D44(arg0, lbl_1_data_504[lbl_1_bss_1580.unk00][arg1]); + fn_1_1B18(arg0, -1); + fn_1_1D44(arg0, MAKE_MESSID(37, 4)); + fn_1_1E28(lbl_1_bss_1468.unk00, 1, 1, 15, 1); +} + +void fn_1_13D38(s32 arg0, s32 arg1, s32 arg2) { + s32 var_r31; + + var_r31 = lbl_1_bss_1580.unkC4[arg1].unk00.unk10; + HuWinInsertMesSet(arg0, var_r31, arg2); +} + +void fn_1_13D98(omObjData* arg0, s32 arg1) { + s32 sp20[] = { + DATA_MAKE_NUM(DATADIR_MSTORY3, 40), + DATA_MAKE_NUM(DATADIR_MSTORY3, 46), + DATA_MAKE_NUM(DATADIR_MSTORY3, 52), + DATA_MAKE_NUM(DATADIR_MSTORY3, 58), + DATA_MAKE_NUM(DATADIR_MSTORY3, 64), + DATA_MAKE_NUM(DATADIR_MSTORY3, 70) + }; + s32 sp38[][5] = { + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x29), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x2A), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x2B), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x2C), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x2D) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x2F), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x30), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x31), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x32), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x33) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x35), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x36), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x37), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x38), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x39) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x3B), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x3C), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x3D), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x3E), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x3F) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x41), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x42), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x43), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x44), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x45) }, + { DATA_MAKE_NUM(DATADIR_MSTORY3, 0x47), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x48), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x49), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x4A), DATA_MAKE_NUM(DATADIR_MSTORY3, 0x4A) } + }; + + arg0->model[1] = Hu3DModelCreateFile(sp20[arg1]); + arg0->motion[1] = Hu3DJointMotionFile(arg0->model[1], sp38[arg1][0]); + arg0->motion[2] = Hu3DJointMotionFile(arg0->model[1], sp38[arg1][1]); + arg0->motion[3] = Hu3DJointMotionFile(arg0->model[1], sp38[arg1][2]); + arg0->motion[4] = Hu3DJointMotionFile(arg0->model[1], sp38[arg1][3]); + arg0->motion[5] = Hu3DJointMotionFile(arg0->model[1], sp38[arg1][4]); + Hu3DModelPosSet(arg0->model[1], 0.0f, 0.0f, 670.0f); + Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); + if (arg1 == 3) { + Hu3DData[arg0->model[1]].pos.y = 50.0f; + } + Hu3DModelShadowSet(arg0->model[1]); + fn_1_1E28(arg0, 1, 1, 0, 1); + { + s32 sp8[] = { 9, 14, 10, 11, 12, 13 }; + + if (arg1 != 3) { + CharModelEffectNpcInit(arg0->model[1], arg0->motion[2], 1, sp8[arg1]); + } + } +} + +void fn_1_140A0(void) { + omObjData* temp_r3; + + temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x100, 0x10, 0x10, -1, NULL); + lbl_1_bss_1468.unk00 = temp_r3; + lbl_1_bss_1468.unk04 = NULL; + lbl_1_bss_1468.unk00->data = &lbl_1_bss_1468; + fn_1_13D98(temp_r3, lbl_1_bss_1580.unk00); + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1468.unk04 != NULL) { + lbl_1_bss_1468.unk04(temp_r3); + } + } +} + +void fn_1_1442C(s32 arg0) { + s32 var_r31; + + var_r31 = -1; + if (GWPlayerCfg[lbl_1_bss_1580.unkC4[arg0].unk00.unk00].iscom) { + var_r31 = rand8() % 120 + 60; + } + do { + fn_1_938(); + if (!GWPlayerCfg[lbl_1_bss_1580.unkC4[arg0].unk00.unk00].iscom && (HuPadBtnDown[GWPlayerCfg[lbl_1_bss_1580.unkC4[arg0].unk00.unk00].pad_idx] & PAD_BUTTON_A)) { + break; + } + } while (var_r31-- != 0); + fn_1_1E28(lbl_1_bss_1490[arg0].unk00, 1, 5, 15, 0); +} + +void fn_1_1456C(s32 arg0) { + while (TRUE) { + fn_1_938(); + if (lbl_1_bss_1490[arg0].unk00->motion[5] != Hu3DMotionShiftIDGet(lbl_1_bss_1490[arg0].unk00->model[1]) + && lbl_1_bss_1490[arg0].unk00->motion[5] == Hu3DMotionIDGet(lbl_1_bss_1490[arg0].unk00->model[1]) + && Hu3DMotionTimeGet(lbl_1_bss_1490[arg0].unk00->model[1]) >= 27.0f) + { + break; + } + } + HuAudFXStop(lbl_1_bss_68[arg0 + 1]); + HuAudFXPlay(0x303); +} + +HsfanimStruct00 lbl_1_data_78C = { + 60, { 0, 0 }, + 1000.0f, 0.0f, 180.0f, + { 0.0f, 0.0f, 0.0f }, + 50.0f, 0.9f, 20.0f, 0.99f, 4, + { + { 0xFF, 0xFF, 0x00, 0xFF }, + { 0xFF, 0xFF, 0x20, 0xFF }, + { 0xFF, 0xFF, 0x80, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF } + }, + { + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 }, + { 0xFF, 0xFF, 0xFF, 0x00 } + } +}; + +s32 fn_1_14684(void) { + s32 temp_r3; + + temp_r3 = Hu3DParManCreate(HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 1)), 250, &lbl_1_data_78C); + Hu3DParManTimeLimitSet(temp_r3, 60); + Hu3DParManAttrSet(temp_r3, 4 | 0x40); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(temp_r3), 1); + return temp_r3; +} + +void fn_1_14700(omObjData* arg0) { + Hu3DModelKill(arg0->model[0]); + omDelObjEx(lbl_1_bss_A8, arg0); +} + +void fn_1_14748(omObjData* arg0) { + float temp_f31; + s32 sp8[3]; + s32 temp_r27; + s32 var_r26; + s32 var_r30; + s32 temp_r25; + s32 var_r29; + + switch (arg0->work[1]) { + case 0: + if (arg0->work[2] >= 1080) { + arg0->work[1] = 1; + arg0->rot.y = 0.0f; + arg0->scale.x = arg0->scale.y = arg0->scale.z = 1.0f; + arg0->work[2] = arg0->work[3] = 0; + lbl_1_bss_68[arg0->work[0] + 1] = HuAudFXPlay(0x300); + } else { + arg0->rot.y = arg0->work[2] % 360; + arg0->work[2] += 25; + if (arg0->work[3] < 180) { + arg0->scale.x = sind(arg0->work[3] % 180); + arg0->work[3] += 6; + } else { + arg0->scale.x = 1.0 + 0.5 * sind(arg0->work[3] % 180); + arg0->work[3] += 18; + } + arg0->scale.y = arg0->scale.z = arg0->scale.x; + if (arg0->work[3] > 360) { + arg0->work[3] = 360; + } + } + break; + case 1: + if (arg0->work[2] >= 40) { + arg0->work[1] = 2; + } + /* fallthrough */ + case 2: + arg0->trans.y += 0.2f * sind(arg0->work[2]); + if ((arg0->work[2] += 4) > 360) { + arg0->work[2] -= 360; + } + break; + case 3: + if (arg0->work[3]++ >= 8) { + arg0->work[1] = 4; + arg0->work[3] = 0; + Hu3DModelAttrSet(arg0->model[0], 1); + } else { + temp_f31 = fn_1_5D4(1.0f, 0.0f, arg0->work[3], 8.0f); + if (arg0->work[3] == 1) { + arg0->work[2] = fn_1_14684(); + Hu3DParManPosSet(arg0->work[2], arg0->trans.x, 275.0f, arg0->trans.z); + } + arg0->trans.y = 250.0f + fn_1_5D4(0.0f, 25.0f, arg0->work[3], 4.0f); + arg0->scale.x = 1.0f + 0.5f * (1.0f - temp_f31); + arg0->scale.y = arg0->scale.z = arg0->scale.x; + Hu3DModelTPLvlSet(arg0->model[0], temp_f31); + } + break; + case 4: + if (arg0->work[3]++ >= 60) { + Hu3DParManKill(arg0->work[2]); + arg0->work[2] = -1; + arg0->func = NULL; + } + break; + } + if (arg0->work[1] >= 3) { + var_r26 = 0; + if (lbl_1_bss_1428[arg0->work[0]] == -1) { + var_r30 = lbl_1_bss_1438[arg0->work[0]]; + for (var_r29 = 0; var_r29 < 4; var_r29++) { + if (var_r29 != arg0->work[0]) { + sp8[var_r26++] = lbl_1_bss_1428[var_r29]; + } + } + while (TRUE) { + if (var_r30 != sp8[0] && var_r30 != sp8[1] && var_r30 != sp8[2]) { + lbl_1_bss_1428[arg0->work[0]] = var_r30; + break; + } + var_r30 = rand8() % 10 + 1; + } + Hu3DMotionTimeSet(arg0->model[0], lbl_1_bss_1428[arg0->work[0]] - 1 + 0.5f); + } + } else { + temp_r25 = lbl_1_bss_1438[arg0->work[0]] - 1; + do { + temp_r27 = rand8() % 10; + } while (temp_r25 == temp_r27); + lbl_1_bss_1438[arg0->work[0]] = temp_r27 + 1; + Hu3DMotionTimeSet(arg0->model[0], temp_r27 + 0.5f); + } +} + +void fn_1_14E6C(omObjData* arg0) { + s32 temp_r30; + + temp_r30 = arg0->work[0]; + arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_MSTORY3, 19)); + omSetTra(arg0, lbl_1_data_130[temp_r30].x, 250.0f, lbl_1_data_130[temp_r30].z); + omSetRot(arg0, 0.0f, 0.0f, 0.0f); + omSetSca(arg0, 0.0f, 0.0f, 0.0f); + Hu3DMotionSpeedSet(arg0->model[0], 0.0f); + HuAudFXPlay(0x302); + arg0->func = fn_1_14748; +} + +void fn_1_14F80(omObjData* arg0) { + Hu3DModelKill(arg0->model[1]); + Hu3DModelKill(arg0->model[2]); + omDelObjEx(lbl_1_bss_A8, arg0); +} + +void fn_1_14FD4(omObjData* arg0) { + s32 temp_r29; + s32 var_r30; + + temp_r29 = arg0->work[0]; + for (var_r30 = 1; var_r30 < 3; var_r30++) { + if (arg0->work[3] <= 40) { + Hu3DData[arg0->model[var_r30]].rot.y = fn_1_6F4(0.0f, 360.0f, arg0->work[3], 40.0f); + } else { + Hu3DData[arg0->model[var_r30]].rot.y = fn_1_61C(360.0f, 0.0f, arg0->work[3] - 40, 20.0f); + } + if (arg0->work[1] / 10 == 0) { + Hu3DData[arg0->model[var_r30]].pos.x = lbl_1_data_130[temp_r29].x; + } else { + Hu3DData[arg0->model[var_r30]].pos.x = lbl_1_data_130[temp_r29].x + fn_1_5D4(0.0f, 40.0f + -80.0f * (var_r30 - 1), arg0->work[3], 20.0f); + } + Hu3DData[arg0->model[var_r30]].pos.y = 275.0f + fn_1_5D4(0.0f, 50.0f, arg0->work[3], 20.0f); + Hu3DData[arg0->model[var_r30]].pos.z = lbl_1_data_130[temp_r29].z; + } + if (arg0->work[3]++ >= 60) { + arg0->func = NULL; + } +} + +void fn_1_152F0(omObjData* arg0) { + s32 sp8[] = { + DATA_MAKE_NUM(DATADIR_MSTORY3, 20), + DATA_MAKE_NUM(DATADIR_MSTORY3, 21), + DATA_MAKE_NUM(DATADIR_MSTORY3, 22), + DATA_MAKE_NUM(DATADIR_MSTORY3, 23), + DATA_MAKE_NUM(DATADIR_MSTORY3, 24), + DATA_MAKE_NUM(DATADIR_MSTORY3, 25), + DATA_MAKE_NUM(DATADIR_MSTORY3, 26), + DATA_MAKE_NUM(DATADIR_MSTORY3, 27), + DATA_MAKE_NUM(DATADIR_MSTORY3, 28), + DATA_MAKE_NUM(DATADIR_MSTORY3, 29) + }; + + arg0->model[1] = Hu3DModelCreateFile(sp8[arg0->work[1] % 10]); + arg0->model[2] = Hu3DModelCreateFile(sp8[arg0->work[1] / 10]); + Hu3DMotionSpeedSet(arg0->model[1], 0.0f); + Hu3DMotionSpeedSet(arg0->model[2], 0.0f); + if (arg0->work[1] / 10 == 0) { + Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + } + arg0->func = fn_1_14FD4; +} + +void fn_1_15450(s32 arg0) { + omObjData* temp_r3; + omObjData* temp_r3_2; + + temp_r3 = omAddObjEx(lbl_1_bss_A8, 0x2000, 0x10, 0x10, -1, fn_1_14E6C); + temp_r3->work[0] = arg0; + do { + fn_1_938(); + } while (temp_r3->work[1] != 2); + fn_1_1442C(arg0); + fn_1_1456C(arg0); + temp_r3->work[1] = 3; + fn_1_938(); + temp_r3_2 = omAddObjEx(lbl_1_bss_A8, 0x2000, 0x10, 0x10, -1, fn_1_152F0); + temp_r3_2->work[0] = arg0; + temp_r3_2->work[1] = lbl_1_bss_1428[arg0]; + fn_1_958(10); + fn_1_1E28(lbl_1_bss_1490[arg0].unk00, 1, 1, 15, 1); + do { + fn_1_938(); + } while (temp_r3_2->func); + lbl_1_bss_1490[arg0].unk18 = 1; + do { + fn_1_938(); + } while (lbl_1_bss_1490[arg0].unk18 != 2); + fn_1_958(150); + fn_1_14700(temp_r3); + fn_1_14F80(temp_r3_2); +} diff --git a/src/REL/mstory3Dll/win_effect.c b/src/REL/mstory3Dll/win_effect.c new file mode 100755 index 00000000..48590c1b --- /dev/null +++ b/src/REL/mstory3Dll/win_effect.c @@ -0,0 +1,322 @@ +#include "REL/mstory3Dll.h" +#include "game/data.h" +#include "game/hsfanim.h" +#include "game/hsfex.h" +#include "game/hsfman.h" +#include "game/memory.h" +#include "game/sprite.h" + +#include "ext_math.h" + +#define frand5() (((s32)frand() & 0x1F)) +#define frand8() (((s32)frand() & 0xFF)) + +typedef struct { + /* 0x00 */ Vec* unk00; + /* 0x04 */ Vec unk04; + /* 0x10 */ Vec unk10; + /* 0x1C */ u16 unk1C; + /* 0x1E */ u16 unk1E; + /* 0x20 */ u16 unk20; + /* 0x22 */ s16 unk22; + /* 0x24 */ float unk24; + /* 0x28 */ AnimData* unk28; +} StructBss1CF8; // Size 0x2C + +typedef struct { + /* 0x00 */ s16 unk00; + /* 0x02 */ char unk02[0x1A]; + /* 0x1C */ StructBss1CF8* unk1C; +} StructFn1E13C; // Size unknown + +void fn_1_1E13C(s32 arg0, s32 arg1, StructBss1CF8* arg2, Vec* arg3); +void fn_1_1E558(void); +void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix); + +StructBss1CF8 lbl_1_bss_1CF8[2]; +s32 lbl_1_bss_1CF4; +s32 lbl_1_bss_1CF0; +s32 lbl_1_bss_1CEC; +s16 lbl_1_bss_1CE8; + +void fn_1_1DED8(s32 arg0, Vec* arg1, Vec* arg2, s16 arg3) { + AnimData* temp_r28; + s16 var_r27; + + fn_1_1E13C(arg0 + 1, arg0 + 3, &lbl_1_bss_1CF8[0], arg2); + lbl_1_bss_1CF8[0].unk04 = *arg1; + lbl_1_bss_1CF8[0].unk24 = arg3 - 20; + fn_1_1E13C(arg0 + 2, arg0 + 3, &lbl_1_bss_1CF8[1], arg2); + lbl_1_bss_1CF8[1].unk04 = *arg1; + lbl_1_bss_1CF8[1].unk24 = arg3 - 20; + temp_r28 = HuSprAnimReadFile(arg0); + lbl_1_bss_1CE8 = HuSprGrpCreate(1); + var_r27 = HuSprCreate(temp_r28, 0, 0); + HuSprGrpMemberSet(lbl_1_bss_1CE8, 0, var_r27); + HuSprPosSet(lbl_1_bss_1CE8, 0, arg2->x, arg2->y); + HuSprTPLvlSet(lbl_1_bss_1CE8, 0, 0.0f); + HuSprAttrSet(lbl_1_bss_1CE8, 0, 8); + HuPrcChildCreate(fn_1_1E558, 100, 0x2000, 0, HuPrcCurrentGet()); + lbl_1_bss_1CF4 = 0; + lbl_1_bss_1CF0 = 0; + lbl_1_bss_1CEC = 0; +} + +void fn_1_1E0F4(void) { + lbl_1_bss_1CF4 = 1; +} + +s32 fn_1_1E108(void) { + return lbl_1_bss_1CF0; +} + +void fn_1_1E118(void) { + lbl_1_bss_1CEC = 1; +} + +s32 fn_1_1E12C(void) { + return lbl_1_bss_1CE8; +} + +void fn_1_1E13C(s32 arg0, s32 arg1, StructBss1CF8* arg2, Vec* arg3) { + Vec sp14; + AnimBmpData* temp_r31; + s32 sp10; + s32 var_r27; + s32 var_r26; + u16* var_r25; + AnimData* var_r24; + Vec* var_r22; + StructFn1E13C* temp_r23; + s16 var_r29; + s16 var_r28; + + var_r24 = HuSprAnimReadFile(arg0); + arg2->unk28 = var_r24; + temp_r31 = var_r24->bmp; + sp10 = temp_r31->sizeX * temp_r31->sizeY; + var_r25 = temp_r31->data; + for (var_r28 = var_r26 = 0; var_r28 < temp_r31->sizeY; var_r28 += 2) { + for (var_r29 = 0; var_r29 < temp_r31->sizeX; var_r29 += 2) { + var_r25 = (u16*) temp_r31->data + ((var_r28 % 4) * 4 + (var_r28 / 4) * temp_r31->sizeX * 4 + (var_r29 / 4) * 16 + var_r29 % 4); + if (*var_r25 != 0x8000) { + var_r26++; + } + } + } + arg2->unk20 = var_r26; + var_r22 = arg2->unk00 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r26 * sizeof(*var_r22), MEMORY_DEFAULT_NUM); + arg2->unk1C = temp_r31->sizeX; + arg2->unk1E = temp_r31->sizeY; + Hu3D2Dto3D(arg3, 1, &arg2->unk10); + for (var_r28 = 0; var_r28 < temp_r31->sizeY; var_r28 += 2) { + for (var_r29 = 0; var_r29 < temp_r31->sizeX; var_r29 += 2) { + var_r25 = (u16*) temp_r31->data + ((var_r28 % 4) * 4 + (var_r28 / 4) * temp_r31->sizeX * 4 + (var_r29 / 4) * 16 + var_r29 % 4); + if (*var_r25 != 0x8000) { + sp14 = *arg3; + sp14.x = sp14.x + var_r29 - temp_r31->sizeX / 2; + sp14.y = sp14.y + var_r28 - temp_r31->sizeY / 2; + Hu3D2Dto3D(&sp14, 1, var_r22); + var_r22++; + } + } + } + HuSprAnimKill(var_r24); + var_r24 = HuSprAnimRead(HuDataRead(arg1)); + var_r27 = Hu3DParticleCreate(var_r24, var_r26); + arg2->unk22 = var_r27; + Hu3DModelPosSet(var_r27, 0.0f, 0.0f, 0.0f); + Hu3DModelLayerSet(var_r27, 1); + Hu3DParticleColSet(var_r27, 0xFF, 0xFF, 0xA); + Hu3DParticleScaleSet(var_r27, 20.0f); + Hu3DParticleHookSet(var_r27, fn_1_1E820); + Hu3DParticleBlendModeSet(var_r27, 1); + Hu3DParticleAttrSet(var_r27, 2); + temp_r23 = Hu3DData[var_r27].unk_120; + temp_r23->unk1C = arg2; + temp_r23->unk00 = 0; + OSReport("Particle Count %d\n", var_r26); +} + +void fn_1_1E558(void) { + float var_f31; + float var_f30; + float temp_f29; + s16* temp_r30; + s16* temp_r29; + s16 i; + + var_f31 = 0.0f; + var_f30 = 0.0f; + while (lbl_1_bss_1CF4 == 0) { + HuPrcVSleep(); + } + Hu3DParticleAttrReset(lbl_1_bss_1CF8->unk22, 2); + HuPrcSleep(20); + Hu3DParticleAttrReset(lbl_1_bss_1CF8[1].unk22, 2); + temp_r30 = Hu3DData[lbl_1_bss_1CF8[0].unk22].unk_120; + temp_r29 = Hu3DData[lbl_1_bss_1CF8[1].unk22].unk_120; + while (*temp_r30 == 0 || *temp_r29 == 0) { + HuPrcVSleep(); + } + for (i = 0; i <= 20; i++) { + temp_f29 = i / 20.0f; + HuSprTPLvlSet(lbl_1_bss_1CE8, 0, temp_f29); + HuPrcVSleep(); + } + OSReport("Finish\n"); + for (i = 0; i < 2; i++) { + Hu3DModelKill(lbl_1_bss_1CF8[i].unk22); + HuSprAnimKill(lbl_1_bss_1CF8[i].unk28); + } + lbl_1_bss_1CF0 = 1; + while (TRUE) { + if (lbl_1_bss_1CEC != 0) { + break; + } + var_f31 += var_f30; + if (var_f31 > 360.0f) { + var_f31 -= 360.0f; + } + var_f30 += 0.5; + if (var_f30 > 10.0f) { + var_f30 = 10.0f; + } + temp_f29 = 1.0 + 0.25 * sind(var_f31); + HuSprScaleSet(lbl_1_bss_1CE8, 0, temp_f29, temp_f29); + HuPrcVSleep(); + } + HuSprGrpKill(lbl_1_bss_1CE8); + HuPrcEnd(); + while (TRUE) { + HuPrcVSleep(); + } +} + +void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix) { + Vec sp8; + float temp_f30; + float temp_f31; + s16 var_r22; + s16 var_r29; + StructBss1CF8* temp_r28; + HsfanimStruct01* var_r31; + s16 var_r27; + s16 temp_r25; + s16 temp_r24; + s16 temp_r21; + s16 temp_r26; + s16 temp_r20; + s16 var_r23; + + temp_r28 = particle->unk_1C; + if (particle->unk_34 == 0) { + var_r31 = particle->unk_48; + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + var_r31->unk2C = 0.0f; + } + } + if (particle->unk_2D & 2) { + return; + } + temp_r21 = temp_r28->unk24 - (temp_r28->unk24 / 5.0f); + temp_r26 = temp_r21 / 2; + temp_r20 = temp_r21 - temp_r26; + PSVECSubtract(&temp_r28->unk04, &temp_r28->unk10, &sp8); + temp_f31 = PSVECMag(&sp8) / temp_r20; + for (var_r22 = 0; var_r22 < particle->unk_30 / (temp_r28->unk24 / 5.0f); var_r22++) { + var_r31 = particle->unk_48; + for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (!var_r31->unk2C) { + break; + } + } + if (var_r29 == particle->unk_30) { + break; + } + var_r31->unk34 = temp_r28->unk04; + var_r27 = (frand8() * 360) >> 8; + temp_f30 = 0.2 * frand5(); + var_r31->unk08.x = temp_f30 * sind(var_r27); + var_r31->unk08.y = 0.1 * (frand5() + 100); + var_r31->unk08.z = temp_f30 * cosd(var_r27); + var_r31->unk40.r = 0xF0; + var_r31->unk40.g = 0x80; + var_r31->unk40.b = 0x60; + var_r31->unk2C = 10.0f; + var_r31->unk00 = 0; + var_r31->unk02 = 0; + var_r31->unk14.x = frandmod(360); + } + var_r31 = particle->unk_48; + for (var_r29 = var_r23 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { + if (!var_r31->unk2C) { + continue; + } + if (var_r31->unk00_s16 == 0) { + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + var_r31->unk08.x *= 0.999f; + var_r31->unk08.y -= 0.5f; + var_r31->unk08.z *= 0.999f; + if (var_r31->unk02 > temp_r26 - (temp_r26 / 5.0)) { + PSVECScale(&var_r31->unk08, &var_r31->unk08, 1.0 - ((var_r31->unk02 - (temp_r26 - temp_r26 / 5.0)) / (temp_r26 / 5.0))); + } + if (var_r31->unk02 == temp_r26) { + var_r31->unk00_s16++; + } + if (var_r31->unk34.y <= 0.0f) { + var_r31->unk08.y = 0.5f * -var_r31->unk08.y; + var_r31->unk34.y = 0.0f; + } + } else if (var_r31->unk00_s16 == 1) { + sp8 = temp_r28->unk00[var_r29]; + PSVECSubtract(&sp8, &var_r31->unk34, &sp8); + if (PSVECMag(&sp8) <= 1.0 + temp_f31) { + var_r23++; + var_r31->unk34 = temp_r28->unk00[var_r29]; + var_r31->unk00_s16++; + continue; + } + PSVECNormalize(&sp8, &sp8); + var_r31->unk08.x = sp8.x * temp_f31 + sind(var_r31->unk14.x); + var_r31->unk08.y = sp8.y * temp_f31; + var_r31->unk08.z = sp8.z * temp_f31; + PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); + var_r31->unk14.x += 20.0f; + } else { + var_r23++; + } + if (var_r31->unk00_s16 >= 1) { + var_r27 = var_r31->unk40.r; + var_r27 += (var_r27 - 0xFF) / 20; + if (var_r27 > 0xFF) { + var_r31->unk40.r = 0xFF; + } else { + var_r31->unk40.r = var_r27; + } + temp_r25 = var_r31->unk40.g; + temp_r25 += (temp_r25 - 0xFF) / 20; + if (temp_r25 > 0xFF) { + var_r31->unk40.g = 0xFF; + } else { + var_r31->unk40.g = temp_r25; + } + temp_r24 = var_r31->unk40.b; + temp_r24 += (temp_r24 - 0x80) / 20; + if (temp_r24 > 0x80) { + var_r31->unk40.b = 0x80; + } else { + var_r31->unk40.b = temp_r24; + } + } + var_r31->unk2C -= 0.2f; + if (var_r31->unk2C < 5.0f) { + var_r31->unk2C = 5.0f; + } + var_r31->unk02++; + } + DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); + if (var_r23 >= particle->unk_30) { + particle->unk_00++; + } +} diff --git a/src/game/gamework.c b/src/game/gamework.c index 68c1783c..887d977b 100644 --- a/src/game/gamework.c +++ b/src/game/gamework.c @@ -212,12 +212,12 @@ u8 GWBoardPlayCountGet(s32 board) return GWGameStat.board_play_count[board]; } -void GWBoardMaxStarsSet(s32 board, s32 value) +void GWBoardMaxStarsSet(s32 board, s16 value) { GWGameStat.board_max_stars[board] = value; } -u16 GWBoardMaxStarsGet(s32 board) +s32 GWBoardMaxStarsGet(s32 board) { return GWGameStat.board_max_stars[board]; } @@ -227,7 +227,7 @@ void GWBoardMaxCoinsSet(s32 board, s32 value) GWGameStat.board_max_coins[board] = value; } -u16 GWBoardMaxCoinsGet(s32 board) +s32 GWBoardMaxCoinsGet(s32 board) { return GWGameStat.board_max_coins[board]; } From edacd760156102242c283766a5c33d413bf6aedf Mon Sep 17 00:00:00 2001 From: mrshigure Date: Sun, 19 Jan 2025 09:25:39 -0800 Subject: [PATCH 264/311] Matched the last function in m425Dll (US) (#540) --- configure.py | 4 +-- src/REL/m425Dll/main.c | 67 ++++++++++++++++++++++++++++++++---------- 2 files changed, 53 insertions(+), 18 deletions(-) diff --git a/configure.py b/configure.py index abfd9d0f..6b56c797 100644 --- a/configure.py +++ b/configure.py @@ -1065,8 +1065,8 @@ config.libs = [ Rel( "m425Dll", # The Great Deflate objects={ - Object(NonMatching, "REL/m425Dll/main.c"), - Object(NonMatching, "REL/m425Dll/thwomp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m425Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m425Dll/thwomp.c"), }, ), Rel( diff --git a/src/REL/m425Dll/main.c b/src/REL/m425Dll/main.c index b6762117..2853e783 100644 --- a/src/REL/m425Dll/main.c +++ b/src/REL/m425Dll/main.c @@ -675,22 +675,57 @@ void fn_1_1B40(omObjData *object) break; } if (0) { - int x = 12; - int y = 24; - char *str = "%f"; - (void)x; - (void)x; - (void)x; - (void)x; - (void)y; - (void)y; - (void)y; - (void)y; - (void)str; - (void)str; - (void)str; - (void)str; - print8(x, y, 1.5f, str, sqrtf(fn_1_15EC(object->trans.x, object->trans.y))); + s32 var_r31; + s32 var_r30; + s32 var_r29; + float var_f31; + float var_f20; + float var_f19; + float var_f18; + + (void) object; + (void) object; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r31; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r30; + (void) var_r29; + (void) var_r29; + (void) var_r29; + (void) var_r29; + (void) var_r29; + (void) var_r29; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f31; + (void) var_f20; + (void) var_f20; + (void) var_f20; + (void) var_f19; + (void) var_f19; + (void) var_f19; + (void) var_f18; + (void) var_f18; + (void) var_f18; } var_r31->unk_38 = var_r31->unk_04 * sind(var_r31->unk_18); var_r31->unk_40 = var_r31->unk_04 * cosd(var_r31->unk_18); From 6575f573f63b10623c9ddba28f06f2c4d8d659b5 Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Sun, 19 Jan 2025 21:54:38 +0100 Subject: [PATCH 265/311] Match OSReboot.c and some of TRK + port mstory3Dll (#541) * Match OSReboot.c and match some of TRK * Port mstory3Dll --- config/GMPE01_00/splits.txt | 2 +- config/GMPE01_00/symbols.txt | 2 +- config/GMPE01_01/rels/mstory3Dll/symbols.txt | 590 ++++++++-------- config/GMPE01_01/splits.txt | 2 +- config/GMPJ01_00/rels/mstory3Dll/splits.txt | 24 + config/GMPJ01_00/rels/mstory3Dll/symbols.txt | 603 ++++++++-------- config/GMPP01_00/rels/mstory3Dll/splits.txt | 24 + config/GMPP01_00/rels/mstory3Dll/symbols.txt | 603 ++++++++-------- config/GMPP01_02/rels/mstory3Dll/splits.txt | 24 + config/GMPP01_02/rels/mstory3Dll/symbols.txt | 681 ++++++++++--------- configure.py | 14 +- include/dolphin/dvd.h | 1 + include/dolphin/os/OSBootInfo.h | 2 +- include/dolphin/os/OSPriv.h | 3 + src/REL/mstory3Dll/result.c | 3 + src/TRK_MINNOW_DOLPHIN/dolphin_trk.c | 5 +- src/TRK_MINNOW_DOLPHIN/targsupp.s | 25 + src/dolphin/os/OSReboot.c | 117 +++- 18 files changed, 1438 insertions(+), 1287 deletions(-) create mode 100644 src/TRK_MINNOW_DOLPHIN/targsupp.s diff --git a/config/GMPE01_00/splits.txt b/config/GMPE01_00/splits.txt index fc3ba2b8..d7d8237a 100644 --- a/config/GMPE01_00/splits.txt +++ b/config/GMPE01_00/splits.txt @@ -1221,7 +1221,7 @@ TRK_MINNOW_DOLPHIN/targimpl.c: .data start:0x8013EA58 end:0x8013EA88 .bss start:0x801A9138 end:0x801A96B8 -TRK_MINNOW_DOLPHIN/targsupp.c: +TRK_MINNOW_DOLPHIN/targsupp.s: .text start:0x800F1CF0 end:0x800F1D10 TRK_MINNOW_DOLPHIN/__exception.s: diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 1417c27e..e2763245 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -5719,7 +5719,7 @@ __OSLastInterrupt = .sbss:0x801D4308; // type:object size:0x2 scope:global data: __OSLastInterruptTime = .sbss:0x801D4310; // type:object size:0x8 scope:global data:4byte SaveStart = .sbss:0x801D4318; // type:object size:0x4 scope:local data:4byte SaveEnd = .sbss:0x801D431C; // type:object size:0x4 scope:local data:4byte -Prepared = .sbss:0x801D4320; // type:object size:0x8 scope:local data:4byte +Prepared = .sbss:0x801D4320; // type:object size:0x4 scope:local data:4byte ResetFunctionQueue = .sbss:0x801D4328; // type:object size:0x8 scope:local data:4byte ResetCallback = .sbss:0x801D4330; // type:object size:0x4 data:4byte Down = .sbss:0x801D4334; // type:object size:0x4 data:4byte diff --git a/config/GMPE01_01/rels/mstory3Dll/symbols.txt b/config/GMPE01_01/rels/mstory3Dll/symbols.txt index e0915adf..3113f967 100644 --- a/config/GMPE01_01/rels/mstory3Dll/symbols.txt +++ b/config/GMPE01_01/rels/mstory3Dll/symbols.txt @@ -4,7 +4,7 @@ fn_1_A4 = .text:0x000000A4; // type:function size:0x2C8 _prolog = .text:0x0000036C; // type:function size:0x54 scope:global _epilog = .text:0x000003C0; // type:function size:0x4C scope:global fn_1_40C = .text:0x0000040C; // type:function size:0xE4 -fn_1_4F0 = .text:0x000004F0; // type:function size:0xE4 +ObjectSetup = .text:0x000004F0; // type:function size:0xE4 fn_1_5D4 = .text:0x000005D4; // type:function size:0x28 fn_1_5FC = .text:0x000005FC; // type:function size:0x20 fn_1_61C = .text:0x0000061C; // type:function size:0xD8 @@ -202,311 +202,311 @@ fn_1_1E558 = .text:0x0001E570; // type:function size:0x2C8 fn_1_1E820 = .text:0x0001E838; // type:function size:0x8E0 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC data:4byte -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC data:4byte -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC data:4byte -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 data:4byte -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC data:4byte -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 data:4byte -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 data:4byte -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 data:4byte -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 data:4byte -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 data:4byte -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 data:4byte -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 data:4byte -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 data:byte -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C data:4byte -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 data:4byte -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C data:4byte -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 data:4byte -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float -lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float -lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float -lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 data:double -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 scope:local +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 scope:local data:4byte +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 scope:local data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 scope:local data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 scope:local data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 scope:local data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 -lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 data:string -lbl_1_data_95 = .data:0x00000095; // type:object size:0xD data:string +lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 scope:local data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0xD scope:local data:string lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 -lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 data:string -lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 data:string -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 data:string -lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A data:string -lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A data:string -lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE data:string +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 scope:local data:string +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 scope:local data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A scope:local data:string +lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A scope:local data:string +lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE scope:local data:string lbl_1_data_130 = .data:0x00000130; // type:object size:0x30 data:float lbl_1_data_160 = .data:0x00000160; // type:object size:0x50 lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x50 lbl_1_data_200 = .data:0x00000200; // type:object size:0x50 -lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 data:string -lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 data:string -lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 data:string -lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 data:string -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 data:string -lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 data:string -lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 data:string -lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 data:string -lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF data:string -lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C data:string -lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D data:string -lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C data:string +lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 scope:local data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 scope:local data:string +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 scope:local data:string +lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 scope:local data:string +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 scope:local data:string +lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 scope:local data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 scope:local data:string +lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF scope:local data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D scope:local data:string +lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C scope:local data:string lbl_1_data_364 = .data:0x00000364; // type:object size:0x8 data:4byte lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC -lbl_1_data_378 = .data:0x00000378; // type:object size:0xF data:string -lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 data:string +lbl_1_data_378 = .data:0x00000378; // type:object size:0xF scope:local data:string +lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 scope:local data:string jumptable_1_data_398 = .data:0x00000398; // type:object size:0x30 scope:local -lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 data:string -lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 data:string -lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 data:string -lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 data:string -lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 data:string -lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 data:string -lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 data:string -lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 data:string -lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 data:string -lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 data:string -lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 data:string -lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 data:string -lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12 +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 scope:local data:string +lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 scope:local data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 scope:local data:string +lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 scope:local data:string +lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 scope:local data:string +lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 scope:local data:string +lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 scope:local data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 scope:local data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 scope:local data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 scope:local data:string +lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 scope:local data:string +lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12 scope:local lbl_1_data_504 = .data:0x00000504; // type:object size:0x288 lbl_1_data_78C = .data:0x0000078C; // type:object size:0x5 -lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 data:string -lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 data:string -lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 data:string -lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 data:string -lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 data:string -lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 data:string -lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 data:string -lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 data:string -lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF data:string -lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C data:string -lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D data:string -lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 data:string -lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 data:string -lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 data:string -lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 data:string -lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 data:string -lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A data:string -lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A data:string -lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x1B -lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 data:string -lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 data:string +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 scope:local data:string +lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 scope:local data:string +lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 scope:local data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 scope:local data:string +lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 scope:local data:string +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 scope:local data:string +lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 scope:local data:string +lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 scope:local data:string +lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF scope:local data:string +lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C scope:local data:string +lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D scope:local data:string +lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 scope:local data:string +lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 scope:local data:string +lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 scope:local data:string +lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 scope:local data:string +lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 scope:local data:string +lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A scope:local data:string +lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A scope:local data:string +lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x1B scope:local +lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 scope:local data:string +lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:float lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:float diff --git a/config/GMPE01_01/splits.txt b/config/GMPE01_01/splits.txt index fc3ba2b8..d7d8237a 100644 --- a/config/GMPE01_01/splits.txt +++ b/config/GMPE01_01/splits.txt @@ -1221,7 +1221,7 @@ TRK_MINNOW_DOLPHIN/targimpl.c: .data start:0x8013EA58 end:0x8013EA88 .bss start:0x801A9138 end:0x801A96B8 -TRK_MINNOW_DOLPHIN/targsupp.c: +TRK_MINNOW_DOLPHIN/targsupp.s: .text start:0x800F1CF0 end:0x800F1D10 TRK_MINNOW_DOLPHIN/__exception.s: diff --git a/config/GMPJ01_00/rels/mstory3Dll/splits.txt b/config/GMPJ01_00/rels/mstory3Dll/splits.txt index 531cd645..6d23734f 100644 --- a/config/GMPJ01_00/rels/mstory3Dll/splits.txt +++ b/config/GMPJ01_00/rels/mstory3Dll/splits.txt @@ -5,3 +5,27 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/mstory3Dll/main.c: + .text start:0x00000000 end:0x00006E34 + .rodata start:0x00000000 end:0x00000110 + .data start:0x00000000 end:0x00000130 + .bss start:0x00000000 end:0x00000058 + +REL/mstory3Dll/result_seq.c: + .text start:0x00006E34 end:0x000157F0 + .rodata start:0x00000110 end:0x00000418 + .data start:0x00000130 end:0x000007E0 + .bss start:0x00000058 end:0x000018D0 + +REL/mstory3Dll/result.c: + .text start:0x000157F0 end:0x0001DED8 + .rodata start:0x00000418 end:0x000005D0 + .data start:0x000007E0 end:0x00000A90 + .bss start:0x000018D0 end:0x00001CE8 + +REL/mstory3Dll/win_effect.c: + .text start:0x0001DED8 end:0x0001F100 + .rodata start:0x000005D0 end:0x00000644 + .data start:0x00000A90 end:0x00000AAB + .bss start:0x00001CE8 end:0x00001D50 diff --git a/config/GMPJ01_00/rels/mstory3Dll/symbols.txt b/config/GMPJ01_00/rels/mstory3Dll/symbols.txt index 9835d8ae..4863cac3 100644 --- a/config/GMPJ01_00/rels/mstory3Dll/symbols.txt +++ b/config/GMPJ01_00/rels/mstory3Dll/symbols.txt @@ -4,7 +4,7 @@ fn_1_A4 = .text:0x000000A4; // type:function size:0x2C8 _prolog = .text:0x0000036C; // type:function size:0x54 scope:global _epilog = .text:0x000003C0; // type:function size:0x4C scope:global fn_1_40C = .text:0x0000040C; // type:function size:0xE4 -fn_1_4F0 = .text:0x000004F0; // type:function size:0xE4 +ObjectSetup = .text:0x000004F0; // type:function size:0xE4 fn_1_5D4 = .text:0x000005D4; // type:function size:0x28 fn_1_5FC = .text:0x000005FC; // type:function size:0x20 fn_1_61C = .text:0x0000061C; // type:function size:0xD8 @@ -202,314 +202,315 @@ fn_1_1E558 = .text:0x0001E558; // type:function size:0x2C8 fn_1_1E820 = .text:0x0001E820; // type:function size:0x8E0 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC data:4byte -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC data:4byte -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC data:4byte -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 data:4byte -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC data:4byte -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 data:4byte -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 data:4byte -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 data:4byte -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 data:4byte -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 data:4byte -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 data:4byte -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x2C data:4byte -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 data:byte -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C data:4byte -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 data:4byte -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C data:4byte -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 data:4byte -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float -lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float -lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float -lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 data:double -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 scope:local +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 scope:local data:4byte +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 scope:local data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 scope:local data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 scope:local data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 scope:local data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 -lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 data:string -lbl_1_data_95 = .data:0x00000095; // type:object size:0xF +lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 scope:local data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0xD scope:local data:string lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 -lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 data:string -lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 data:string -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 data:string -lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A data:string -lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A data:string -lbl_1_data_11B = .data:0x0000011B; // type:object size:0x15 +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 scope:local data:string +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 scope:local data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A scope:local data:string +lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A scope:local data:string +lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE scope:local data:string lbl_1_data_130 = .data:0x00000130; // type:object size:0x30 data:float lbl_1_data_160 = .data:0x00000160; // type:object size:0x50 lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x50 lbl_1_data_200 = .data:0x00000200; // type:object size:0x50 -lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 data:string -lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 data:string -lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 data:string -lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 data:string -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 data:string -lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 data:string -lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 data:string -lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 data:string -lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF data:string -lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C data:string -lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D data:string -lbl_1_data_346 = .data:0x00000346; // type:object size:0x1E -lbl_1_data_364 = .data:0x00000364; // type:object size:0x8 data:4byte -lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC -lbl_1_data_378 = .data:0x00000378; // type:object size:0xF data:string -lbl_1_data_387 = .data:0x00000387; // type:object size:0x11 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 scope:local data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 scope:local data:string +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 scope:local data:string +lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 scope:local data:string +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 scope:local data:string +lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 scope:local data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 scope:local data:string +lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF scope:local data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D scope:local data:string +lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C scope:local data:string +lbl_1_data_364 = .data:0x00000364; // type:object size:0x4 data:4byte +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC data:float +lbl_1_data_378 = .data:0x00000378; // type:object size:0xF scope:local data:string +lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 scope:local data:string jumptable_1_data_398 = .data:0x00000398; // type:object size:0x30 scope:local -lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 data:string -lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 data:string -lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 data:string -lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 data:string -lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 data:string -lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 data:string -lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 data:string -lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 data:string -lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 data:string -lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 data:string -lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 data:string -lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 data:string -lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12 +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 scope:local data:string +lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 scope:local data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 scope:local data:string +lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 scope:local data:string +lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 scope:local data:string +lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 scope:local data:string +lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 scope:local data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 scope:local data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 scope:local data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 scope:local data:string +lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 scope:local data:string +lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x10 scope:local data:string lbl_1_data_504 = .data:0x00000504; // type:object size:0x288 -lbl_1_data_78C = .data:0x0000078C; // type:object size:0x54 -lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 data:string -lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 data:string -lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 data:string -lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 data:string -lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 data:string -lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 data:string -lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 data:string -lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 data:string -lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF data:string -lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C data:string -lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D data:string -lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 data:string -lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 data:string -lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 data:string -lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 data:string -lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 data:string -lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A data:string -lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A data:string -lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x1B -lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 data:string -lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 data:string +lbl_1_data_78C = .data:0x0000078C; // type:object size:0x50 +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 scope:local data:string +lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 scope:local data:string +lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 scope:local data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 scope:local data:string +lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 scope:local data:string +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 scope:local data:string +lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 scope:local data:string +lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 scope:local data:string +lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF scope:local data:string +lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C scope:local data:string +lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D scope:local data:string +lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 scope:local data:string +lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 scope:local data:string +lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 scope:local data:string +lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 scope:local data:string +lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 scope:local data:string +lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A scope:local data:string +lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A scope:local data:string +lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x19 scope:local data:string +lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 scope:local data:string +lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x54 data:float -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:float @@ -541,7 +542,7 @@ lbl_1_bss_18F4 = .bss:0x000018F4; // type:object size:0xA0 lbl_1_bss_1994 = .bss:0x00001994; // type:object size:0x28 data:4byte lbl_1_bss_19BC = .bss:0x000019BC; // type:object size:0x28 data:4byte lbl_1_bss_19E4 = .bss:0x000019E4; // type:object size:0x28 data:4byte -lbl_1_bss_1A0C = .bss:0x00001A0C; // type:object size:0x2DC data:float +lbl_1_bss_1A0C = .bss:0x00001A0C; // type:object size:0x2D8 data:float lbl_1_bss_1CE8 = .bss:0x00001CE8; // type:object size:0x2 data:2byte lbl_1_bss_1CEC = .bss:0x00001CEC; // type:object size:0x4 data:4byte lbl_1_bss_1CF0 = .bss:0x00001CF0; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/mstory3Dll/splits.txt b/config/GMPP01_00/rels/mstory3Dll/splits.txt index 531cd645..6d23734f 100644 --- a/config/GMPP01_00/rels/mstory3Dll/splits.txt +++ b/config/GMPP01_00/rels/mstory3Dll/splits.txt @@ -5,3 +5,27 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/mstory3Dll/main.c: + .text start:0x00000000 end:0x00006E34 + .rodata start:0x00000000 end:0x00000110 + .data start:0x00000000 end:0x00000130 + .bss start:0x00000000 end:0x00000058 + +REL/mstory3Dll/result_seq.c: + .text start:0x00006E34 end:0x000157F0 + .rodata start:0x00000110 end:0x00000418 + .data start:0x00000130 end:0x000007E0 + .bss start:0x00000058 end:0x000018D0 + +REL/mstory3Dll/result.c: + .text start:0x000157F0 end:0x0001DED8 + .rodata start:0x00000418 end:0x000005D0 + .data start:0x000007E0 end:0x00000A90 + .bss start:0x000018D0 end:0x00001CE8 + +REL/mstory3Dll/win_effect.c: + .text start:0x0001DED8 end:0x0001F100 + .rodata start:0x000005D0 end:0x00000644 + .data start:0x00000A90 end:0x00000AAB + .bss start:0x00001CE8 end:0x00001D50 diff --git a/config/GMPP01_00/rels/mstory3Dll/symbols.txt b/config/GMPP01_00/rels/mstory3Dll/symbols.txt index 9835d8ae..4863cac3 100644 --- a/config/GMPP01_00/rels/mstory3Dll/symbols.txt +++ b/config/GMPP01_00/rels/mstory3Dll/symbols.txt @@ -4,7 +4,7 @@ fn_1_A4 = .text:0x000000A4; // type:function size:0x2C8 _prolog = .text:0x0000036C; // type:function size:0x54 scope:global _epilog = .text:0x000003C0; // type:function size:0x4C scope:global fn_1_40C = .text:0x0000040C; // type:function size:0xE4 -fn_1_4F0 = .text:0x000004F0; // type:function size:0xE4 +ObjectSetup = .text:0x000004F0; // type:function size:0xE4 fn_1_5D4 = .text:0x000005D4; // type:function size:0x28 fn_1_5FC = .text:0x000005FC; // type:function size:0x20 fn_1_61C = .text:0x0000061C; // type:function size:0xD8 @@ -202,314 +202,315 @@ fn_1_1E558 = .text:0x0001E558; // type:function size:0x2C8 fn_1_1E820 = .text:0x0001E820; // type:function size:0x8E0 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC data:4byte -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC data:4byte -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC data:4byte -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 data:4byte -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC data:4byte -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 data:4byte -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 data:4byte -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 data:4byte -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 data:4byte -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 data:4byte -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 data:4byte -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x2C data:4byte -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 data:byte -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C data:4byte -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 data:4byte -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C data:4byte -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 data:4byte -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float -lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float -lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float -lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 data:double -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 scope:local +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 scope:local data:4byte +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 scope:local data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 scope:local data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 scope:local data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 scope:local data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 -lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 data:string -lbl_1_data_95 = .data:0x00000095; // type:object size:0xF +lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 scope:local data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0xD scope:local data:string lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 -lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 data:string -lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 data:string -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 data:string -lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A data:string -lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A data:string -lbl_1_data_11B = .data:0x0000011B; // type:object size:0x15 +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 scope:local data:string +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 scope:local data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A scope:local data:string +lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A scope:local data:string +lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE scope:local data:string lbl_1_data_130 = .data:0x00000130; // type:object size:0x30 data:float lbl_1_data_160 = .data:0x00000160; // type:object size:0x50 lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x50 lbl_1_data_200 = .data:0x00000200; // type:object size:0x50 -lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 data:string -lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 data:string -lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 data:string -lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 data:string -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 data:string -lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 data:string -lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 data:string -lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 data:string -lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF data:string -lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C data:string -lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D data:string -lbl_1_data_346 = .data:0x00000346; // type:object size:0x1E -lbl_1_data_364 = .data:0x00000364; // type:object size:0x8 data:4byte -lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC -lbl_1_data_378 = .data:0x00000378; // type:object size:0xF data:string -lbl_1_data_387 = .data:0x00000387; // type:object size:0x11 +lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 scope:local data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 scope:local data:string +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 scope:local data:string +lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 scope:local data:string +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 scope:local data:string +lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 scope:local data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 scope:local data:string +lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF scope:local data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D scope:local data:string +lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C scope:local data:string +lbl_1_data_364 = .data:0x00000364; // type:object size:0x4 data:4byte +lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC data:float +lbl_1_data_378 = .data:0x00000378; // type:object size:0xF scope:local data:string +lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 scope:local data:string jumptable_1_data_398 = .data:0x00000398; // type:object size:0x30 scope:local -lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 data:string -lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 data:string -lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 data:string -lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 data:string -lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 data:string -lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 data:string -lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 data:string -lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 data:string -lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 data:string -lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 data:string -lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 data:string -lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 data:string -lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12 +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 scope:local data:string +lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 scope:local data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 scope:local data:string +lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 scope:local data:string +lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 scope:local data:string +lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 scope:local data:string +lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 scope:local data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 scope:local data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 scope:local data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 scope:local data:string +lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 scope:local data:string +lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x10 scope:local data:string lbl_1_data_504 = .data:0x00000504; // type:object size:0x288 -lbl_1_data_78C = .data:0x0000078C; // type:object size:0x54 -lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 data:string -lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 data:string -lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 data:string -lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 data:string -lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 data:string -lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 data:string -lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 data:string -lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 data:string -lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF data:string -lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C data:string -lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D data:string -lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 data:string -lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 data:string -lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 data:string -lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 data:string -lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 data:string -lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A data:string -lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A data:string -lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x1B -lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 data:string -lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 data:string +lbl_1_data_78C = .data:0x0000078C; // type:object size:0x50 +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 scope:local data:string +lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 scope:local data:string +lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 scope:local data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 scope:local data:string +lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 scope:local data:string +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 scope:local data:string +lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 scope:local data:string +lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 scope:local data:string +lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF scope:local data:string +lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C scope:local data:string +lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D scope:local data:string +lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 scope:local data:string +lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 scope:local data:string +lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 scope:local data:string +lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 scope:local data:string +lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 scope:local data:string +lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A scope:local data:string +lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A scope:local data:string +lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x19 scope:local data:string +lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 scope:local data:string +lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x54 data:float -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:float +lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte lbl_1_bss_AC = .bss:0x000000AC; // type:object size:0x4 data:float @@ -541,7 +542,7 @@ lbl_1_bss_18F4 = .bss:0x000018F4; // type:object size:0xA0 lbl_1_bss_1994 = .bss:0x00001994; // type:object size:0x28 data:4byte lbl_1_bss_19BC = .bss:0x000019BC; // type:object size:0x28 data:4byte lbl_1_bss_19E4 = .bss:0x000019E4; // type:object size:0x28 data:4byte -lbl_1_bss_1A0C = .bss:0x00001A0C; // type:object size:0x2DC data:float +lbl_1_bss_1A0C = .bss:0x00001A0C; // type:object size:0x2D8 data:float lbl_1_bss_1CE8 = .bss:0x00001CE8; // type:object size:0x2 data:2byte lbl_1_bss_1CEC = .bss:0x00001CEC; // type:object size:0x4 data:4byte lbl_1_bss_1CF0 = .bss:0x00001CF0; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_02/rels/mstory3Dll/splits.txt b/config/GMPP01_02/rels/mstory3Dll/splits.txt index 531cd645..5251d4d5 100644 --- a/config/GMPP01_02/rels/mstory3Dll/splits.txt +++ b/config/GMPP01_02/rels/mstory3Dll/splits.txt @@ -5,3 +5,27 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/mstory3Dll/main.c: + .text start:0x00000000 end:0x00006E34 + .rodata start:0x00000000 end:0x00000110 + .data start:0x00000000 end:0x00000130 + .bss start:0x00000000 end:0x00000058 + +REL/mstory3Dll/result_seq.c: + .text start:0x00006E34 end:0x000157F0 + .rodata start:0x00000110 end:0x00000418 + .data start:0x00000130 end:0x000007E0 + .bss start:0x00000058 end:0x000018D0 + +REL/mstory3Dll/result.c: + .text start:0x000157F0 end:0x0001DEF0 + .rodata start:0x00000418 end:0x000005D0 + .data start:0x000007E0 end:0x00000A90 + .bss start:0x000018D0 end:0x00001CE8 + +REL/mstory3Dll/win_effect.c: + .text start:0x0001DEF0 end:0x0001F118 + .rodata start:0x000005D0 end:0x00000644 + .data start:0x00000A90 end:0x00000AAB + .bss start:0x00001CE8 end:0x00001D50 diff --git a/config/GMPP01_02/rels/mstory3Dll/symbols.txt b/config/GMPP01_02/rels/mstory3Dll/symbols.txt index 21c07213..3113f967 100644 --- a/config/GMPP01_02/rels/mstory3Dll/symbols.txt +++ b/config/GMPP01_02/rels/mstory3Dll/symbols.txt @@ -4,7 +4,7 @@ fn_1_A4 = .text:0x000000A4; // type:function size:0x2C8 _prolog = .text:0x0000036C; // type:function size:0x54 scope:global _epilog = .text:0x000003C0; // type:function size:0x4C scope:global fn_1_40C = .text:0x0000040C; // type:function size:0xE4 -fn_1_4F0 = .text:0x000004F0; // type:function size:0xE4 +ObjectSetup = .text:0x000004F0; // type:function size:0xE4 fn_1_5D4 = .text:0x000005D4; // type:function size:0x28 fn_1_5FC = .text:0x000005FC; // type:function size:0x20 fn_1_61C = .text:0x0000061C; // type:function size:0xD8 @@ -157,358 +157,359 @@ fn_1_16AD4 = .text:0x00016AD4; // type:function size:0x400 fn_1_16ED4 = .text:0x00016ED4; // type:function size:0x258 fn_1_1712C = .text:0x0001712C; // type:function size:0x160 fn_1_1728C = .text:0x0001728C; // type:function size:0x210 -fn_1_1749C = .text:0x0001749C; // type:function size:0xEC -fn_1_17588 = .text:0x00017588; // type:function size:0x850 -fn_1_17DD8 = .text:0x00017DD8; // type:function size:0x2C0 -fn_1_18098 = .text:0x00018098; // type:function size:0x9C -fn_1_18134 = .text:0x00018134; // type:function size:0x218 -fn_1_1834C = .text:0x0001834C; // type:function size:0x1B4 -fn_1_18500 = .text:0x00018500; // type:function size:0x70 -fn_1_18570 = .text:0x00018570; // type:function size:0x110 -fn_1_18680 = .text:0x00018680; // type:function size:0x694 -fn_1_18D14 = .text:0x00018D14; // type:function size:0x29C -fn_1_18FB0 = .text:0x00018FB0; // type:function size:0x1AC -fn_1_1915C = .text:0x0001915C; // type:function size:0xD0 -fn_1_1922C = .text:0x0001922C; // type:function size:0x28C -fn_1_194B8 = .text:0x000194B8; // type:function size:0xF0 -fn_1_195A8 = .text:0x000195A8; // type:function size:0x224 -fn_1_197CC = .text:0x000197CC; // type:function size:0x854 -fn_1_1A020 = .text:0x0001A020; // type:function size:0x1EF4 -fn_1_1BF14 = .text:0x0001BF14; // type:function size:0x3F8 -fn_1_1C30C = .text:0x0001C30C; // type:function size:0x16C -fn_1_1C478 = .text:0x0001C478; // type:function size:0xD4 -fn_1_1C54C = .text:0x0001C54C; // type:function size:0x3E0 -fn_1_1C92C = .text:0x0001C92C; // type:function size:0x184 -fn_1_1CAB0 = .text:0x0001CAB0; // type:function size:0xE4 -fn_1_1CB94 = .text:0x0001CB94; // type:function size:0xE0 -fn_1_1CC74 = .text:0x0001CC74; // type:function size:0x104 -fn_1_1CD78 = .text:0x0001CD78; // type:function size:0x90 -fn_1_1CE08 = .text:0x0001CE08; // type:function size:0x334 -fn_1_1D13C = .text:0x0001D13C; // type:function size:0x518 -fn_1_1D654 = .text:0x0001D654; // type:function size:0x140 -fn_1_1D794 = .text:0x0001D794; // type:function size:0x150 -fn_1_1D8E4 = .text:0x0001D8E4; // type:function size:0x98 -fn_1_1D97C = .text:0x0001D97C; // type:function size:0x100 -fn_1_1DA7C = .text:0x0001DA7C; // type:function size:0x48 -fn_1_1DAC4 = .text:0x0001DAC4; // type:function size:0x3A0 -fn_1_1DE64 = .text:0x0001DE64; // type:function size:0x8C -fn_1_1DEF0 = .text:0x0001DEF0; // type:function size:0x21C -fn_1_1E10C = .text:0x0001E10C; // type:function size:0x14 -fn_1_1E120 = .text:0x0001E120; // type:function size:0x10 -fn_1_1E130 = .text:0x0001E130; // type:function size:0x14 -fn_1_1E144 = .text:0x0001E144; // type:function size:0x10 -fn_1_1E154 = .text:0x0001E154; // type:function size:0x41C -fn_1_1E570 = .text:0x0001E570; // type:function size:0x2C8 -fn_1_1E838 = .text:0x0001E838; // type:function size:0x8E0 +fn_1_17484 = .text:0x0001749C; // type:function size:0xEC +fn_1_17570 = .text:0x00017588; // type:function size:0x850 +fn_1_17DC0 = .text:0x00017DD8; // type:function size:0x2C0 +fn_1_18080 = .text:0x00018098; // type:function size:0x9C +fn_1_1811C = .text:0x00018134; // type:function size:0x218 +fn_1_18334 = .text:0x0001834C; // type:function size:0x1B4 +fn_1_184E8 = .text:0x00018500; // type:function size:0x70 +fn_1_18558 = .text:0x00018570; // type:function size:0x110 +fn_1_18668 = .text:0x00018680; // type:function size:0x694 +fn_1_18CFC = .text:0x00018D14; // type:function size:0x29C +fn_1_18F98 = .text:0x00018FB0; // type:function size:0x1AC +fn_1_19144 = .text:0x0001915C; // type:function size:0xD0 +fn_1_19214 = .text:0x0001922C; // type:function size:0x28C +fn_1_194A0 = .text:0x000194B8; // type:function size:0xF0 +fn_1_19590 = .text:0x000195A8; // type:function size:0x224 +fn_1_197B4 = .text:0x000197CC; // type:function size:0x854 +fn_1_1A008 = .text:0x0001A020; // type:function size:0x1EF4 +fn_1_1BEFC = .text:0x0001BF14; // type:function size:0x3F8 +fn_1_1C2F4 = .text:0x0001C30C; // type:function size:0x16C +fn_1_1C460 = .text:0x0001C478; // type:function size:0xD4 +fn_1_1C534 = .text:0x0001C54C; // type:function size:0x3E0 +fn_1_1C914 = .text:0x0001C92C; // type:function size:0x184 +fn_1_1CA98 = .text:0x0001CAB0; // type:function size:0xE4 +fn_1_1CB7C = .text:0x0001CB94; // type:function size:0xE0 +fn_1_1CC5C = .text:0x0001CC74; // type:function size:0x104 +fn_1_1CD60 = .text:0x0001CD78; // type:function size:0x90 +fn_1_1CDF0 = .text:0x0001CE08; // type:function size:0x334 +fn_1_1D124 = .text:0x0001D13C; // type:function size:0x518 +fn_1_1D63C = .text:0x0001D654; // type:function size:0x140 +fn_1_1D77C = .text:0x0001D794; // type:function size:0x150 +fn_1_1D8CC = .text:0x0001D8E4; // type:function size:0x98 +fn_1_1D964 = .text:0x0001D97C; // type:function size:0x100 +fn_1_1DA64 = .text:0x0001DA7C; // type:function size:0x48 +fn_1_1DAAC = .text:0x0001DAC4; // type:function size:0x3A0 +fn_1_1DE4C = .text:0x0001DE64; // type:function size:0x8C +fn_1_1DED8 = .text:0x0001DEF0; // type:function size:0x21C +fn_1_1E0F4 = .text:0x0001E10C; // type:function size:0x14 +fn_1_1E108 = .text:0x0001E120; // type:function size:0x10 +fn_1_1E118 = .text:0x0001E130; // type:function size:0x14 +fn_1_1E12C = .text:0x0001E144; // type:function size:0x10 +fn_1_1E13C = .text:0x0001E154; // type:function size:0x41C +fn_1_1E558 = .text:0x0001E570; // type:function size:0x2C8 +fn_1_1E820 = .text:0x0001E838; // type:function size:0x8E0 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC data:4byte -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC data:4byte -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC data:4byte -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 data:4byte -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 data:byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC data:4byte -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 data:4byte -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 data:4byte -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 data:4byte -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 data:4byte -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 data:4byte -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 data:4byte -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x2C data:4byte -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 data:byte -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C data:4byte -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 data:4byte -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C data:4byte -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 data:4byte -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float -lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float -lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float -lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 data:double -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 data:double -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 data:double -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 data:double -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 data:double -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 data:double -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 data:double -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 data:double -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x78 scope:local +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x28 scope:local data:4byte +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x8 scope:local data:double +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x8 scope:local data:double +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x8 scope:local data:double +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x8 scope:local data:double +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x8 scope:local data:double +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x8 scope:local data:double +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 -lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 data:string -lbl_1_data_95 = .data:0x00000095; // type:object size:0xF +lbl_1_data_70 = .data:0x00000070; // type:object size:0x25 scope:local data:string +lbl_1_data_95 = .data:0x00000095; // type:object size:0xD scope:local data:string lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x8 -lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 data:string -lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 data:string -lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 data:string -lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A data:string -lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A data:string -lbl_1_data_11B = .data:0x0000011B; // type:object size:0x15 +lbl_1_data_AC = .data:0x000000AC; // type:object size:0x28 scope:local data:string +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x10 scope:local data:string +lbl_1_data_E4 = .data:0x000000E4; // type:object size:0x3 scope:local data:string +lbl_1_data_E7 = .data:0x000000E7; // type:object size:0x1A scope:local data:string +lbl_1_data_101 = .data:0x00000101; // type:object size:0x1A scope:local data:string +lbl_1_data_11B = .data:0x0000011B; // type:object size:0xE scope:local data:string lbl_1_data_130 = .data:0x00000130; // type:object size:0x30 data:float lbl_1_data_160 = .data:0x00000160; // type:object size:0x50 lbl_1_data_1B0 = .data:0x000001B0; // type:object size:0x50 lbl_1_data_200 = .data:0x00000200; // type:object size:0x50 -lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 data:string -lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 data:string -lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 data:string -lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 data:string -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 data:string -lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 data:string -lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 data:string -lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 data:string -lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF data:string -lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C data:string -lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D data:string -lbl_1_data_346 = .data:0x00000346; // type:object size:0x1E +lbl_1_data_250 = .data:0x00000250; // type:object size:0x16 scope:local data:string +lbl_1_data_266 = .data:0x00000266; // type:object size:0x15 scope:local data:string +lbl_1_data_27B = .data:0x0000027B; // type:object size:0x16 scope:local data:string +lbl_1_data_291 = .data:0x00000291; // type:object size:0x15 scope:local data:string +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x16 scope:local data:string +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x15 scope:local data:string +lbl_1_data_2D1 = .data:0x000002D1; // type:object size:0x17 scope:local data:string +lbl_1_data_2E8 = .data:0x000002E8; // type:object size:0x16 scope:local data:string +lbl_1_data_2FE = .data:0x000002FE; // type:object size:0xF scope:local data:string +lbl_1_data_30D = .data:0x0000030D; // type:object size:0x1C scope:local data:string +lbl_1_data_329 = .data:0x00000329; // type:object size:0x1D scope:local data:string +lbl_1_data_346 = .data:0x00000346; // type:object size:0x1C scope:local data:string lbl_1_data_364 = .data:0x00000364; // type:object size:0x8 data:4byte lbl_1_data_36C = .data:0x0000036C; // type:object size:0xC -lbl_1_data_378 = .data:0x00000378; // type:object size:0xF data:string -lbl_1_data_387 = .data:0x00000387; // type:object size:0x11 +lbl_1_data_378 = .data:0x00000378; // type:object size:0xF scope:local data:string +lbl_1_data_387 = .data:0x00000387; // type:object size:0x10 scope:local data:string jumptable_1_data_398 = .data:0x00000398; // type:object size:0x30 scope:local -lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 data:string -lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 data:string -lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 data:string -lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 data:string -lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 data:string -lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 data:string -lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 data:string -lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 data:string -lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 data:string -lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 data:string -lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 data:string -lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 data:string -lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12 +lbl_1_data_3C8 = .data:0x000003C8; // type:object size:0x46 scope:local data:string +lbl_1_data_40E = .data:0x0000040E; // type:object size:0x30 scope:local data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x14 scope:local data:string +lbl_1_data_452 = .data:0x00000452; // type:object size:0x14 scope:local data:string +lbl_1_data_466 = .data:0x00000466; // type:object size:0x14 scope:local data:string +lbl_1_data_47A = .data:0x0000047A; // type:object size:0x14 scope:local data:string +lbl_1_data_48E = .data:0x0000048E; // type:object size:0x14 scope:local data:string +lbl_1_data_4A2 = .data:0x000004A2; // type:object size:0x10 scope:local data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x10 scope:local data:string +lbl_1_data_4C2 = .data:0x000004C2; // type:object size:0x10 scope:local data:string +lbl_1_data_4D2 = .data:0x000004D2; // type:object size:0x10 scope:local data:string +lbl_1_data_4E2 = .data:0x000004E2; // type:object size:0x10 scope:local data:string +lbl_1_data_4F2 = .data:0x000004F2; // type:object size:0x12 scope:local lbl_1_data_504 = .data:0x00000504; // type:object size:0x288 -lbl_1_data_78C = .data:0x0000078C; // type:object size:0x54 -lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 data:string -lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 data:string -lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 data:string -lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 data:string -lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 data:string -lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 data:string -lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 data:string -lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 data:string -lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF data:string -lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C data:string -lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D data:string -lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 data:string -lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 data:string -lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 data:string -lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 data:string -lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 data:string -lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A data:string -lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A data:string -lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x1B -lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 data:string -lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 data:string +lbl_1_data_78C = .data:0x0000078C; // type:object size:0x5 +lbl_1_data_7E0 = .data:0x000007E0; // type:object size:0x16 scope:local data:string +lbl_1_data_7F6 = .data:0x000007F6; // type:object size:0x15 scope:local data:string +lbl_1_data_80B = .data:0x0000080B; // type:object size:0x16 scope:local data:string +lbl_1_data_821 = .data:0x00000821; // type:object size:0x15 scope:local data:string +lbl_1_data_836 = .data:0x00000836; // type:object size:0x16 scope:local data:string +lbl_1_data_84C = .data:0x0000084C; // type:object size:0x15 scope:local data:string +lbl_1_data_861 = .data:0x00000861; // type:object size:0x17 scope:local data:string +lbl_1_data_878 = .data:0x00000878; // type:object size:0x16 scope:local data:string +lbl_1_data_88E = .data:0x0000088E; // type:object size:0xF scope:local data:string +lbl_1_data_89D = .data:0x0000089D; // type:object size:0x1C scope:local data:string +lbl_1_data_8B9 = .data:0x000008B9; // type:object size:0x1D scope:local data:string +lbl_1_data_8D6 = .data:0x000008D6; // type:object size:0x49 scope:local data:string +lbl_1_data_91F = .data:0x0000091F; // type:object size:0x48 scope:local data:string +lbl_1_data_967 = .data:0x00000967; // type:object size:0x48 scope:local data:string +lbl_1_data_9AF = .data:0x000009AF; // type:object size:0x52 scope:local data:string +lbl_1_data_A01 = .data:0x00000A01; // type:object size:0x30 scope:local data:string +lbl_1_data_A31 = .data:0x00000A31; // type:object size:0x2A scope:local data:string +lbl_1_data_A5B = .data:0x00000A5B; // type:object size:0x1A scope:local data:string +lbl_1_data_A75 = .data:0x00000A75; // type:object size:0x1B scope:local +lbl_1_data_A90 = .data:0x00000A90; // type:object size:0x13 scope:local data:string +lbl_1_data_AA3 = .data:0x00000AA3; // type:object size:0x8 scope:local data:string lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x54 data:float +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x44 data:float +lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x10 data:float lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x10 data:4byte lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x40 data:4byte lbl_1_bss_A8 = .bss:0x000000A8; // type:object size:0x4 data:4byte diff --git a/configure.py b/configure.py index 6b56c797..2a75498c 100644 --- a/configure.py +++ b/configure.py @@ -509,7 +509,7 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSMessage.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSMemory.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSMutex.c"), - Object(NonMatching, "dolphin/os/OSReboot.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSReboot.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSReset.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSResetSW.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "dolphin/os/OSRtc.c"), @@ -749,9 +749,9 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/flush_cache.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/mem_TRK.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/targimpl.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/targsupp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/targsupp.s"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/__exception.s"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/dolphin_trk.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/dolphin_trk.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/main_TRK.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c"), @@ -1396,10 +1396,10 @@ config.libs = [ Rel( "mstory3Dll", objects={ - Object(MatchingFor("GMPE01_00"), "REL/mstory3Dll/main.c"), - Object(MatchingFor("GMPE01_00"), "REL/mstory3Dll/result_seq.c"), - Object(MatchingFor("GMPE01_00"), "REL/mstory3Dll/result.c"), - Object(MatchingFor("GMPE01_00"), "REL/mstory3Dll/win_effect.c"), + Object(Matching, "REL/mstory3Dll/main.c"), + Object(Matching, "REL/mstory3Dll/result_seq.c"), + Object(Matching, "REL/mstory3Dll/result.c"), + Object(Matching, "REL/mstory3Dll/win_effect.c"), }, ), Rel( diff --git a/include/dolphin/dvd.h b/include/dolphin/dvd.h index cc6e1fa9..d8149fa2 100644 --- a/include/dolphin/dvd.h +++ b/include/dolphin/dvd.h @@ -89,6 +89,7 @@ void DVDInit(); BOOL DVDClose(DVDFileInfo* f); BOOL DVDSetAutoFatalMessaging(BOOL); void DVDReset(); +int DVDSetAutoInvalidation(int autoInval); s32 DVDCancel(DVDCommandBlock* block); BOOL DVDOpen(char* fileName, DVDFileInfo* fileInfo); BOOL DVDFastOpen(s32 entrynum, DVDFileInfo* fileInfo); diff --git a/include/dolphin/os/OSBootInfo.h b/include/dolphin/os/OSBootInfo.h index 19d4dfb5..2ed59d35 100644 --- a/include/dolphin/os/OSBootInfo.h +++ b/include/dolphin/os/OSBootInfo.h @@ -45,6 +45,6 @@ typedef struct BI2Debug { #define OS_DVD_MAGIC_NINTENDO 0xC2339F3D #define OS_THREAD_STACK_MAGIC 0xDEADBABE -#define OS_BOOTROM_ADDR 0x81300000 +#define OS_BOOTROM_ADDR ((void*)0x81300000) #endif // _DOLPHIN_OSBOOTINFO diff --git a/include/dolphin/os/OSPriv.h b/include/dolphin/os/OSPriv.h index 11eeec59..6d24df24 100644 --- a/include/dolphin/os/OSPriv.h +++ b/include/dolphin/os/OSPriv.h @@ -40,6 +40,9 @@ __OSExceptionHandler __OSGetExceptionHandler(__OSException exception); OSTime __OSGetSystemTime(); OSTime __OSTimeToSystemTime(OSTime); +// OSReset.c +void __OSDoHotReset(s32); + // OSReboot void __OSReboot(u32 resetCode, u32 bootDol); diff --git a/src/REL/mstory3Dll/result.c b/src/REL/mstory3Dll/result.c index f9fb785b..a9104387 100755 --- a/src/REL/mstory3Dll/result.c +++ b/src/REL/mstory3Dll/result.c @@ -549,6 +549,9 @@ void fn_1_1728C(void) { HuWinExAnimOut(var_r31); HuWinExCleanup(var_r31); if (SLSaveFlagGet() == 1 && temp_r30 == 0) { +#if VERSION_REV1 + GWGameStat.story_continue = 1; +#endif SLCommonSet(); SLSaveBoardStory(); SLSave(); diff --git a/src/TRK_MINNOW_DOLPHIN/dolphin_trk.c b/src/TRK_MINNOW_DOLPHIN/dolphin_trk.c index 31153cd6..b8ffd29d 100644 --- a/src/TRK_MINNOW_DOLPHIN/dolphin_trk.c +++ b/src/TRK_MINNOW_DOLPHIN/dolphin_trk.c @@ -10,6 +10,7 @@ #define EXCEPTIONMASK_ADDR 0x80000044 static u32 lc_base; +extern u32 _db_stack_addr; static u32 TRK_ISR_OFFSETS[15] = { PPC_SystemReset, PPC_MachineCheck, @@ -64,8 +65,8 @@ asm void InitMetroTRK() mtspr 0x3f2, r0 mtspr 0x3f5, r0 //Restore stack pointer - lis r1, 0x80426008@h - ori r1, r1, 0x80426008@l + lis r1, _db_stack_addr@h + ori r1, r1, _db_stack_addr@l mr r3, r5 bl InitMetroTRKCommTable //Initialize comm table /* diff --git a/src/TRK_MINNOW_DOLPHIN/targsupp.s b/src/TRK_MINNOW_DOLPHIN/targsupp.s new file mode 100644 index 00000000..670f691f --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/targsupp.s @@ -0,0 +1,25 @@ +.include "macros.inc" +.file "targsupp.s" + +.text +.balign 4 + +.fn TRKAccessFile, global + twui r0, 0x0 + blr +.endfn TRKAccessFile + +.fn TRKOpenFile, global + twui r0, 0x0 + blr +.endfn TRKOpenFile + +.fn TRKCloseFile, global + twui r0, 0x0 + blr +.endfn TRKCloseFile + +.fn TRKPositionFile, global + twui r0, 0x0 + blr +.endfn TRKPositionFile diff --git a/src/dolphin/os/OSReboot.c b/src/dolphin/os/OSReboot.c index 381d39c4..5331e90a 100644 --- a/src/dolphin/os/OSReboot.c +++ b/src/dolphin/os/OSReboot.c @@ -3,6 +3,7 @@ #include #include #include +#include typedef struct ApploaderHeader { // total size: 0x20 @@ -13,18 +14,7 @@ typedef struct ApploaderHeader { u32 reserved2; // offset 0x1C, size 0x4 } ApploaderHeader; -struct { - // total size: 0x1C - int valid; // offset 0x0, size 0x4 - unsigned long restartCode; // offset 0x4, size 0x4 - unsigned long bootDol; // offset 0x8, size 0x4 - void *regionStart; // offset 0xC, size 0x4 - void *regionEnd; // offset 0x10, size 0x4 - int argsUseDefault; // offset 0x14, size 0x4 - void *argsAddr; // offset 0x18, size 0x4 -} __OSRebootParams; // size: 0x1C, address: 0x0 - -static ApploaderHeader Header; +static ApploaderHeader Header ATTRIBUTE_ALIGN(32); extern void *__OSSavedRegionStart; extern void *__OSSavedRegionEnd; @@ -34,22 +24,25 @@ static void *SaveEnd = NULL; volatile u8 DAT_800030e2 : 0x800030e2; -extern u32 BOOT_REGION_START AT_ADDRESS(0x812FDFF0); //(*(u32 *)0x812fdff0) -extern u32 BOOT_REGION_END AT_ADDRESS(0x812FDFEC); //(*(u32 *)0x812fdfec) +extern void *BOOT_REGION_START AT_ADDRESS(0x812FDFF0); //(*(u32 *)0x812fdff0) +extern void *BOOT_REGION_END AT_ADDRESS(0x812FDFEC); //(*(u32 *)0x812fdfec) extern u32 UNK_HOT_RESET1 AT_ADDRESS(0x817ffff8); extern u32 UNK_HOT_RESET2 AT_ADDRESS(0x817ffffc); -// extern u32 OS_RESET_CODE AT_ADDRESS(0x800030F0); -// extern u8 OS_REBOOT_BOOL AT_ADDRESS(0x800030E2); // unknown function, set to true by __OSReboot +extern u32 OS_RESET_CODE AT_ADDRESS(0x800030F0); +extern u8 OS_REBOOT_BOOL AT_ADDRESS(0x800030E2); // unknown function, set to true by __OSReboot +extern u32 UNK_817FFFF8 AT_ADDRESS(0x817FFFF8); +extern u32 UNK_817FFFFC AT_ADDRESS(0x817FFFFC); -extern u32 __OSIsGcam; - -static BOOL Prepared = FALSE; +static volatile BOOL Prepared = FALSE; extern void __DVDPrepareResetAsync(DVDCBCallback callback); extern BOOL DVDCheckDisk(void); extern BOOL DVDReadAbsAsyncForBS(DVDCommandBlock *block, void *addr, s32 length, s32 offset, DVDCBCallback callback); -void Run(register u32 addr) +#pragma dont_inline on +// peephole bug with mwcc +static asm void myFunc() { } +static void Run(register void (*addr)()) { OSDisableInterrupts(); ICFlashInvalidate(); @@ -62,33 +55,83 @@ void Run(register u32 addr) } // clang-format on } +#pragma dont_inline reset static void Callback() { Prepared = TRUE; } -void ReadApploader(OSTime time1) { } +inline void ReadApploader(DVDCommandBlock *dvdCmd, void *addr, u32 offset, u32 numBytes) +{ + /* Not sure if this inline is correct - might need to call other inlines */ + while (Prepared == FALSE) { } + DVDReadAbsAsyncForBS(dvdCmd, addr, numBytes, offset + 0x2440, NULL); + + while (TRUE) { + switch (dvdCmd->state) { + case 0: + break; + case 1: + default: + continue; + case -1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + __OSDoHotReset(UNK_817FFFFC); + continue; + } + break; + } +} void __OSReboot(u32 resetCode, u32 bootDol) { - // TODO -} + OSContext exceptionContext; + DVDCommandBlock dvdCmd; + DVDCommandBlock dvdCmd2; + u32 numBytes; + u32 offset; -void OSSetSaveRegion(void *start, void *end) -{ - SaveStart = start; - SaveEnd = end; -} + OSDisableInterrupts(); -void OSGetSaveRegion(void **start, void **end) -{ - *start = SaveStart; - *end = SaveEnd; -} + UNK_817FFFFC = 0; + UNK_817FFFF8 = 0; + OS_REBOOT_BOOL = TRUE; + BOOT_REGION_START = SaveStart; + BOOT_REGION_END = SaveEnd; + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + DVDInit(); + DVDSetAutoInvalidation(TRUE); -void OSGetSavedRegion(void **start, void **end) -{ - *start = __OSSavedRegionStart; - *end = __OSSavedRegionEnd; + __DVDPrepareResetAsync(Callback); + + if (!DVDCheckDisk()) { + __OSDoHotReset(UNK_817FFFFC); + } + + __OSMaskInterrupts(0xffffffe0); + __OSUnmaskInterrupts(0x400); + + OSEnableInterrupts(); + + offset = 0; + numBytes = 32; + ReadApploader(&dvdCmd, (void *)&Header, offset, numBytes); + + offset = Header.size + 0x20; + numBytes = OSRoundUp32B(Header.rebootSize); + ReadApploader(&dvdCmd2, OS_BOOTROM_ADDR, offset, numBytes); + + ICInvalidateRange(OS_BOOTROM_ADDR, numBytes); + Run(OS_BOOTROM_ADDR); } From 494380826313569add7459bb7ae0c081e175da24 Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Sun, 19 Jan 2025 19:51:03 -0500 Subject: [PATCH 266/311] Complete m438Dll (#542) * get halfway through m424/ball * get halfway through m424/ball * get halfway through m424/ball * complete m424/ball * fix merge errors * Revert "complete m424/ball" This reverts commit acbc3196c585acc5e6328e53f4aaf31e1b52db73. * fix up ball, start claw * get halfway through m424/ball * complete m424/ball * Revert "complete m424/ball" This reverts commit acbc3196c585acc5e6328e53f4aaf31e1b52db73. * fix up ball, start claw * complete m424Dll * fix m424, begin m438/map * Start m438/map * complete m438/map * fix m424 * start fire.c * adapt main.c * continued work on fire.c * complete fire.c --- .vscode/settings.json | 10 +- include/REL/m438Dll.h | 153 +++- src/REL/m424Dll/claw.c | 9 +- src/REL/m438Dll/fire.c | 1554 ++++++++++++++++++++++++++++++++++++++++ src/REL/m438Dll/main.c | 134 +--- src/REL/m438Dll/map.c | 21 +- 6 files changed, 1758 insertions(+), 123 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index d1282bec..43011608 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -39,7 +39,15 @@ "chrman.h": "c", "os.h": "c", "type_traits": "cpp", - "xutility": "cpp" + "xutility": "cpp", + "xtr1common": "c", + "hsfdraw.h": "c", + "dolphin.h": "c", + "hsfman.h": "c", + "hsfformat.h": "c", + "hsfanim.h": "c", + "memory.h": "c", + "animdata.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { diff --git a/include/REL/m438Dll.h b/include/REL/m438Dll.h index 84847928..8279e1f2 100644 --- a/include/REL/m438Dll.h +++ b/include/REL/m438Dll.h @@ -1,6 +1,8 @@ #ifndef M438DLL_H #define M438DLL_H +#include "game/animdata.h" +#include "game/hsfformat.h" #include "game/object.h" typedef struct M438MainWork4 { @@ -16,6 +18,141 @@ typedef struct M438MainWork4 { char unk40[0xC]; } M438MainWork4; /* size = 0x4C */ +typedef struct M438UnkSubStruct { + s8 unk_00; + s8 unk_01; + char unk02[0x2]; + f32 unk_04; + f32 unk_08; + f32 unk_0C; + f32 unk_10; + f32 unk_14; + f32 unk_18; + f32 unk_1C; + f32 unk_20; + u8 unk_24; + float unk_28; + float unk_2C; +} M438UnkSubStruct; + +typedef struct M438UnkStruct { + Vec unk_00; + Vec unk_0C; + Vec unk_18; + Vec unk_24; + u8 unk_30; + u8 unk_31; + u8 unk_32; + u8 unk_33; + u8 unk_34; + u32 unk_38; + s16 unk_3C; + void* unk_40; + Vec* unk_44; + GXColor* unk_48; + Vec* unk_4C; + GXColor unk_50; + GXColor unk_54; + M438UnkSubStruct* unk_58; + u8 unk_5C; + char unk5D[0x3]; + Vec unk_60; + Vec unk_6C; + s16 unk_78[0x10]; +} M438UnkStruct; /* size = 0x98 */ + +typedef struct M438FireStruct { + Vec unk0; + Vec unkC; + Vec unk18; + Vec unk24; +} M438FireStruct; // sizeof 0x30 + +typedef struct M438FireStruct2 { + GXColor unk0; + GXColor unk4; + GXColor unk8; + GXColor unkC; +} M438FireStruct2; // sizeof 0x10 + +typedef struct M438FireStruct3 { + HsfVector2f unk0; + HsfVector2f unk8; + HsfVector2f unk10; + HsfVector2f unk18; +} M438FireStruct3; // sizeof 0x20 + +typedef struct M438UnkStruct2 { + s16 unk_00; + s16 unk_02; + u8 unk_04; + u32 unk_08; + Vec unk_0C; + Vec unk_18; + Vec unk_24; + void (*unk_30)(struct M438UnkStruct2*); + s16* unk_34; + char unk_38[0x4]; + M438UnkStruct *unk_3C; + char unk40[0x8]; + s16 unk_48; + void* unk_4C; + Vec* unk_50; + GXColor* unk_54; + Vec* unk_58; + M438UnkSubStruct* unk_5C; + u8 unk_60; + char unk61[0x3]; + Vec unk_64; + Vec unk_70; + union { + s16 unk_7Ca[0x20]; + struct { + s16 unk_7C; + s16 unk_7E; + float unk_80; + float unk_84; + float unk_88; + float unk_8C; + float unk_90; + char unk94[0x28]; + }; + }; +} M438UnkStruct2; /* size = 0xBC */ + +typedef struct M438UnkStruct3 { + AnimData* unk_00; + s16 unk_04; + s16 unk_06; + u32 unk_08; + Vec unk_0C; + Mtx unk_18; + GXColor unk_48; + u8 unk_4C; + u8 unk_4D; + s16 unk_4E; + s16 unk_50; + char unk52[0x2]; + f32 unk_54; + f32 unk_58; + f32 unk_5C; + f32 unk_60; +} M438UnkStruct3; /* size = 0x64 */ + +typedef struct M438StructBssDE4 { + Mtx unk_00; + s16 unk_30; + s16 unk_32; + s16 unk_34; + s16 unk_36; + s16 unk_38; + s16 unk_3A; + M438UnkStruct3 *unk_3C; + M438UnkStruct2 *unk_40; +} M438StructBssDE4; /* size = */ + +extern M438StructBssDE4 lbl_1_bss_DE4; + void fn_1_B4D8(Process *arg0); void fn_1_B548(); s32 fn_1_DA64(float arg8); @@ -24,11 +161,11 @@ float fn_1_E488(float arg8, float arg9, float argA); float fn_1_E5A4(float arg8, float arg9); void fn_1_E658(s16 arg0, s16 arg1); -s16 fn_1_10258(s32 arg0, s32 arg1); +s16 fn_1_10258(u8 arg0, u8 arg1); void fn_1_107BC(s16 arg0); -void fn_1_108E4(s16 arg0, s32 arg1, s32 arg2); +void fn_1_108E4(s16 arg0, s16 arg1, u8 arg2); s16 fn_1_10910(u32 arg0, s16 arg1, s16 arg2); -s8 fn_1_11018(s16 arg0, u8 arg1, u32 arg2); +u8 fn_1_11018(s16 arg0, u8 arg1, u32 arg2); void fn_1_11658(void); void fn_1_11890(s16 arg0, float arg8, float arg9, float argA); void fn_1_118FC(s16 arg0, s16 arg1, float arg8, float arg9, float argA); @@ -39,11 +176,11 @@ void fn_1_11F68(s16 arg0, s16 arg1, float arg8, float arg9, float argA); void fn_1_1204C(s16 arg0, s32 arg1); void fn_1_12090(s16 arg0, s16 arg1, s32 arg2); void fn_1_12100(s16 arg0, s32 arg1); -void fn_1_12174(s16 arg0, s32 arg1); -void fn_1_12378(s16 arg0, s16 arg1, s8 arg2, s8 arg3, s8 arg4, u8 arg5); -void fn_1_124CC(s16 arg0, s8 arg1); -void fn_1_12538(s16 arg0, s16 arg1, s8 arg2); -void fn_1_1274C(s16 arg0, s16 arg1, u8 arg2, s8 arg3); +void fn_1_12174(s16 arg0, u32 arg1); +void fn_1_12378(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5); +void fn_1_124CC(s16 arg0, u8 arg1); +void fn_1_12538(s16 arg0, s16 arg1, u8 arg2); +void fn_1_1274C(s16 arg0, s16 arg1, u8 arg2, u8 arg3); void fn_1_128C8(s16 arg0, s16 arg1, u8 arg2, float arg8); #endif diff --git a/src/REL/m424Dll/claw.c b/src/REL/m424Dll/claw.c index b9472555..b6061580 100644 --- a/src/REL/m424Dll/claw.c +++ b/src/REL/m424Dll/claw.c @@ -1,5 +1,6 @@ #include "REL/m424Dll.h" +#include "math.h" #include "ext_math.h" #include "game/audio.h" #include "game/chrman.h" @@ -7,8 +8,6 @@ #include "game/hsfman.h" #include "game/hsfmotion.h" #include "game/pad.h" -#include "math.h" - // STRUCT typedef struct _M424DllClawStruct { @@ -67,8 +66,8 @@ typedef struct _M424DllClawStruct3 { } M424DllClawStruct3; // sizeof 0x8 // BSS -Process *lbl_1_bss_6DC; -omObjData *lbl_1_bss_6D8; +Process* lbl_1_bss_6DC; +omObjData* lbl_1_bss_6D8; s32 lbl_1_bss_6D0[2]; s32 lbl_1_bss_6CC; s32 lbl_1_bss_6C8; @@ -179,7 +178,7 @@ void fn_1_94D0(omObjData *arg0) } var_r31->unk184 = -1; var_r31->unk30 = lbl_1_data_30C; - + for (var_r29 = 0; var_r29 < 0xC; var_r29++) { var_r31->unk3C[var_r29] = lbl_1_data_30C; var_r31->unkCC[var_r29] = lbl_1_data_30C; diff --git a/src/REL/m438Dll/fire.c b/src/REL/m438Dll/fire.c index e69de29b..349febca 100644 --- a/src/REL/m438Dll/fire.c +++ b/src/REL/m438Dll/fire.c @@ -0,0 +1,1554 @@ +#include "REL/m438Dll.h" + +#include "game/hsfdraw.h" +#define HUSPR_USE_OLD_DEFS +#include "game/sprite.h" + +extern u8 texMtxTbl[]; + +// PROTO +void fn_1_E790(M438UnkStruct2*); +void fn_1_F538(ModelData*, Mtx); +void fn_1_FAB8(M438UnkStruct*); +void fn_1_FD40(M438UnkStruct2*); +void fn_1_10F0C(s16); +s32 fn_1_110B4(s16, u8, s16); + +void fn_1_E658(s16 arg0, s16 arg1) { + M438UnkStruct2* var_r29; + s32 var_r31; + M438UnkStruct3* var_r30; + + lbl_1_bss_DE4.unk_34 = Hu3DHookFuncCreate(fn_1_F538); + Hu3DModelLayerSet(lbl_1_bss_DE4.unk_34, 6); + lbl_1_bss_DE4.unk_30 = arg0; + var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * sizeof(M438UnkStruct2), 0x10000000); + lbl_1_bss_DE4.unk_40 = var_r29; + lbl_1_bss_DE4.unk_32 = arg1; + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438UnkStruct3), 0x10000000); + lbl_1_bss_DE4.unk_3C = var_r30; + + for (var_r31 = 0; var_r31 < arg0; var_r31++, var_r29++) { + var_r29->unk_08 = 0; + } + + for (var_r31 = 0; var_r31 < arg1; var_r31++, var_r30++) { + var_r30->unk_06 = 0; + var_r30->unk_08 = 0; + } + lbl_1_bss_DE4.unk_36 = lbl_1_bss_DE4.unk_38 = lbl_1_bss_DE4.unk_3A = 0; +} + +void fn_1_E790(M438UnkStruct2* arg0) { + ModelData sp120; + Mtx spF0; + Mtx spC0; + Mtx sp90; + Mtx sp60; + Mtx sp30; + GXColor sp2C; + s16 sp8; + M438UnkStruct* var_r31; + s16 var_r29; + s16 var_r28; + s32 var_r27; + M438UnkStruct3* temp_r26; + s32 var_r25; + s32 var_r24; + s16 temp_r23; + s32 var_r22; + s32 var_r21; + s32 var_r20; + s32 var_r19; + + mtxRot(sp60, arg0->unk_18.x, arg0->unk_18.y, arg0->unk_18.z); + PSMTXScale(sp90, arg0->unk_24.x, arg0->unk_24.y, arg0->unk_24.z); + PSMTXConcat(sp60, sp90, sp90); + mtxTransCat(sp90, arg0->unk_0C.x, arg0->unk_0C.y, arg0->unk_0C.z); + PSMTXConcat(Hu3DCameraMtx, sp90, spC0); + var_r29 = 0; + var_r28 = 0; + sp8 = 0; + for (var_r27 = GX_TEXMAP0; var_r27 < arg0->unk_04; var_r27++) { + if (arg0->unk_34[var_r27] != 0) { + temp_r26 = &lbl_1_bss_DE4.unk_3C[arg0->unk_34[var_r27]]; + PSMTXCopy(temp_r26->unk_18, sp30); + mtxTransCat(sp30, temp_r26->unk_0C.x, temp_r26->unk_0C.y, temp_r26->unk_0C.z); + switch (temp_r26->unk_04) { + case 0: + GXLoadTexMtxImm(sp30, texMtxTbl[var_r28], GX_MTX2x4); + var_r22 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX2x4, var_r27 + 4, var_r22, 0, 0x7D); + GXSetTevOrder(var_r29, var_r28, var_r27, GX_COLOR0A0); + if (var_r27 == GX_TEXMAP0) { + if ((temp_r26->unk_00->bmp->dataFmt == 7) || (temp_r26->unk_00->bmp->dataFmt == 8)) { + GXSetTevColor(GX_TEVREG2, temp_r26->unk_48); + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_C2, GX_CC_RASC, GX_CC_ZERO); + } else { + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + } + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + } else { + sp2C.a = temp_r26->unk_48.a; + GXSetTevColor(GX_TEVREG2, sp2C); + GXSetTevColorIn(var_r29, GX_CC_CPREV, GX_CC_TEXC, GX_CC_A2, GX_CC_ZERO); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); + } + GXSetTevColorOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + break; + case 1: + GXLoadTexMtxImm(sp30, texMtxTbl[var_r28], GX_MTX2x4); + var_r21 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX2x4, var_r27 + 4, var_r21, 0, 0x7D); + GXSetTevOrder(var_r29, var_r28, var_r27, GX_COLOR0A0); + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_CPREV, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_TEXA, GX_CA_APREV, GX_CA_ZERO); + GXSetTevColorOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + break; + case 2: + sp2C.a = 0xE0; + GXSetTevColor(GX_TEVREG1, sp2C); + GXSetTexCoordGen2(var_r28 + 1, GX_TG_BUMP0, var_r28, 0x3C, 0, 0x7D); + GXSetTevOrder(var_r29, var_r28, var_r27, GX_COLOR0A0); + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_RASC); + GXSetTevColorOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV); + var_r29++; + GXSetTevOrder(var_r29, var_r28 + 1, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_CPREV); + GXSetTevColorOp(var_r29, GX_TEV_SUB, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV); + break; + case 3: + var_r28--; + GXLoadTexMtxImm(sp30, texMtxTbl[var_r28], GX_MTX2x4); + var_r20 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX2x4, var_r27 + 4, var_r20, 0, 0x7D); + GXSetTevOrder(var_r29, var_r28, var_r27, GX_COLOR0A0); + GXSetTevColorIn(var_r29, GX_CC_ZERO, GX_CC_CPREV, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevColorOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + var_r28++; + break; + case 4: + mtxRot(sp60, arg0->unk_18.x, arg0->unk_18.y, arg0->unk_18.z); + PSMTXScale(sp90, arg0->unk_24.x, arg0->unk_24.y, arg0->unk_24.z); + PSMTXConcat(sp60, sp90, sp90); + mtxTransCat(sp90, arg0->unk_0C.x, arg0->unk_0C.y, arg0->unk_0C.z); + PSMTXConcat(Hu3DCameraMtx, sp90, sp30); + PSMTXInverse(Hu3DCameraMtx, sp60); + PSMTXConcat(sp60, sp30, sp60); + PSMTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp90); + PSMTXConcat(sp90, sp60, sp30); + GXLoadTexMtxImm(sp30, texMtxTbl[var_r28], GX_MTX3x4); + var_r19 = texMtxTbl[var_r28]; + GXSetTexCoordGen2(var_r28, GX_TG_MTX3x4, GX_TG_POS, var_r19, 0, 0x7D); + GXSetTevOrder(var_r29, var_r28, var_r27, GX_COLOR0A0); + if (var_r27 == GX_TEXMAP0) { + GXSetTevColorIn(var_r29, GX_CC_ONE, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + } else { + GXSetTevColorIn(var_r29, GX_CC_CPREV, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ZERO); + GXSetTevAlphaIn(var_r29, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); + } + GXSetTevColorOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaOp(var_r29, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 0, GX_TEVPREV); + break; + } + var_r29++; + var_r28++; + if (temp_r26->unk_4D != 0) { + HuSprTexLoad(temp_r26->unk_00, 0, var_r27, 1, 1, 1); + } else { + HuSprTexLoad(temp_r26->unk_00, 0, var_r27, 0, 0, 1); + } + } + } + GXSetNumTevStages((s16)var_r29); + GXSetNumTexGens((s16)var_r28); + var_r31 = arg0->unk_3C; + for (var_r24 = 0; var_r24 < arg0->unk_02; var_r24++, var_r31++) { + if ((var_r31->unk_38 != 0) && ((var_r31->unk_38 & 4) == 0)) { + switch (var_r31->unk_30) { + case 0: + mtxRot(sp60, var_r31->unk_0C.x, var_r31->unk_0C.y, var_r31->unk_0C.z); + if (var_r31->unk_31 == 2) { + PSMTXConcat(lbl_1_bss_DE4.unk_00, sp60, sp60); + } else if (var_r31->unk_31 == 1) { + PSMTXRotRad(sp90, 0x59, MTXDegToRad(CRot.y)); + PSMTXConcat(sp90, sp60, sp60); + } + PSMTXScale(sp90, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); + PSMTXTrans(sp30, var_r31->unk_24.x, var_r31->unk_24.y, var_r31->unk_24.z); + PSMTXConcat(sp90, sp30, sp90); + PSMTXConcat(sp60, sp90, sp90); + mtxTransCat(sp90, var_r31->unk_00.x, var_r31->unk_00.y, var_r31->unk_00.z); + PSMTXConcat(Hu3DCameraMtx, sp90, spF0); + break; + case 1: + mtxRot(sp60, var_r31->unk_0C.x, var_r31->unk_0C.y, var_r31->unk_0C.z); + if (var_r31->unk_31 == 2) { + if (HmfInverseMtxF3X3(spC0, sp90) == 0) { + PSMTXIdentity(sp90); + } + PSMTXConcat(sp90, sp60, sp60); + } else if (var_r31->unk_31 == 1) { + PSMTXRotRad(sp90, 0x59, MTXDegToRad(CRot.y)); + PSMTXConcat(sp90, sp60, sp60); + } + PSMTXScale(sp90, var_r31->unk_18.x, var_r31->unk_18.y, var_r31->unk_18.z); + PSMTXTrans(sp30, var_r31->unk_24.x, var_r31->unk_24.y, var_r31->unk_24.z); + PSMTXConcat(sp90, sp30, sp90); + PSMTXConcat(sp60, sp90, sp90); + mtxTransCat(sp90, var_r31->unk_00.x, var_r31->unk_00.y, var_r31->unk_00.z); + PSMTXConcat(spC0, sp90, spF0); + break; + } + GXLoadPosMtxImm(spF0, 0); + PSMTXInverse(spF0, sp90); + PSMTXTranspose(sp90, sp60); + GXLoadNrmMtxImm(sp60, 0); + GXSetChanAmbColor(GX_COLOR0A0, var_r31->unk_50); + GXSetChanMatColor(GX_COLOR0A0, var_r31->unk_54); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(0); + switch (var_r31->unk_33) { + case 0: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + break; + case 1: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + break; + case 2: + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + break; + } + if ((var_r31->unk_38 & 0x10) != 0) { + GXSetZMode(0, GX_LEQUAL, 1); + } else { + GXSetZMode(1, GX_LEQUAL, 0); + } + sp120.attr = 0; + temp_r23 = Hu3DLightSet(&sp120, &Hu3DCameraMtx, &Hu3DCameraMtxXPose, 0.0f); + GXSetNumChans(1); + if ((var_r31->unk_38 & 8) != 0) { + var_r25 = GX_SRC_VTX; + } else { + var_r25 = GX_SRC_REG; + } + switch (var_r31->unk_32) { + case 0: + GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, var_r25, 0, GX_DF_CLAMP, GX_AF_NONE); + break; + case 1: + GXSetChanCtrl(GX_COLOR0A0, 1, GX_SRC_REG, var_r25, temp_r23, GX_DF_CLAMP, GX_AF_SPOT); + break; + case 2: + GXSetChanCtrl(GX_COLOR0A0, 1, GX_SRC_REG, var_r25, temp_r23, GX_DF_CLAMP, GX_AF_SPEC); + break; + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, var_r31->unk_44, 12); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, var_r31->unk_48, 4); + for (var_r27 = 0; var_r27 < var_r31->unk_34; var_r27++) { + GXSetVtxDesc(var_r27 + GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, var_r27 + GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(var_r27 + GX_VA_TEX0, &var_r31->unk_58[var_r27].unk_04, 8); + } + GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_RGBA6, 0U); + GXSetArray(GX_VA_NRM, var_r31->unk_4C, 12); + GXCallDisplayList(var_r31->unk_40, var_r31->unk_3C); + } + } +} + +void fn_1_F538(ModelData* arg0, Mtx arg1) { + Mtx sp38; + Mtx sp8; + M438UnkStruct2* var_r31; + s32 var_r30; + + var_r31 = lbl_1_bss_DE4.unk_40; + GXLoadPosMtxImm(arg1, 0); + PSMTXInverse(arg1, sp38); + PSMTXTranspose(sp38, sp8); + GXLoadNrmMtxImm(sp8, 0); + HmfInverseMtxF3X3(Hu3DCameraMtx, lbl_1_bss_DE4.unk_00); + + for (var_r30 = 0; var_r30 < lbl_1_bss_DE4.unk_30; var_r30++, var_r31++) { + if ((var_r31->unk_08 != 0) && ((var_r31->unk_08 & 2) != 0) && ((var_r31->unk_08 & 4) == 0)) { + if ((u8)omPauseChk() == 0) { + if (var_r31->unk_30) { + var_r31->unk_30(var_r31); + } + if (var_r31->unk_08 == 0) continue; + fn_1_FD40(var_r31); + if (var_r31->unk_08 == 0) continue; + } + fn_1_E790(var_r31); + } + } +} + +M438UnkStruct2* fn_1_F664(s16 arg0) { + return &lbl_1_bss_DE4.unk_40[arg0]; +} + +M438UnkStruct* fn_1_F680(s16 arg0, s16 arg1) { + return &lbl_1_bss_DE4.unk_40[arg0].unk_3C[arg1]; +} + +M438UnkStruct3* fn_1_F6AC(s16 arg0) { + return &lbl_1_bss_DE4.unk_3C[arg0]; +} + +void fn_1_F6C8(M438FireStruct** arg0, s16 arg1, f32 arg8, f32 arg9) { + s32 var_r30; + M438FireStruct* var_r31; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct), 0x10000000); + + for (var_r30 = 0; var_r30 < arg1; var_r31++, var_r30++) { + var_r31->unk0.x = (-0.5f * arg8); + var_r31->unk0.y = (0.5f * arg9); + var_r31->unk0.z = 0.0f; + var_r31->unkC.x = (0.5f * arg8); + var_r31->unkC.y = (0.5f * arg9); + var_r31->unkC.z = 0.0f; + var_r31->unk18.x = (0.5f * arg8); + var_r31->unk18.y = (-0.5f * arg9); + var_r31->unk18.z = 0.0f; + var_r31->unk24.x = (-0.5f * arg8); + var_r31->unk24.y = (-0.5f * arg9); + var_r31->unk24.z = 0.0f; + } +} + +void fn_1_F84C(M438FireStruct** arg0, s16 arg1, Vec* arg2) { + Vec* var_r31; + s32 var_r29; + s32 var_r28; + + var_r31 = (Vec*)*arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct), 0x10000000); + + for (var_r29 = 0; var_r29 < arg1; var_r29++) { + for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { + var_r31->x = arg2->x; + var_r31->y = arg2->y; + var_r31->z = arg2->z; + } + } +} + +void fn_1_F8EC(M438FireStruct2** arg0, s16 arg1, GXColor* arg2) { + GXColor* var_r31; + s32 var_r29; + s32 var_r28; + + var_r31 = (GXColor*)*arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct2), 0x10000000U); + + for (var_r29 = 0; var_r29 < arg1; var_r29++) { + for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { + var_r31->r = arg2->r; + var_r31->g = arg2->g; + var_r31->b = arg2->b; + var_r31->a = arg2->a; + } + } +} + +void fn_1_F994(Vec** arg0, s16 arg1, Vec* arg2) { + s32 var_r29; + Vec* var_r31; + + var_r31 = *arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(Vec), 0x10000000); + + for (var_r29 = 0; var_r29 < arg1; var_r31++, arg2++, var_r29++) { + var_r31->x = arg2->x; + var_r31->y = arg2->y; + var_r31->z = arg2->z; + } +} + +void fn_1_FA20(M438FireStruct3** arg0, s16 arg1, HsfVector2f* arg2) { + HsfVector2f* var_r31; + s32 var_r29; + s32 var_r28; + + var_r31 = (HsfVector2f*)*arg0 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * sizeof(M438FireStruct3), 0x10000000); + + for (var_r29 = 0; var_r29 < arg1; var_r29++) { + for (var_r28 = 0; var_r28 < 4; var_r31++, arg2++, var_r28++) { + var_r31->x = arg2->x; + var_r31->y = arg2->y; + } + } +} + +void fn_1_FAB8(M438UnkStruct* arg0) { + Vec sp1C[4] = { + { -50.0f, 50.0f, 0.0f }, + { 50.0f, 50.0f, 0.0f }, + { 50.0f, -50.0f, 0.0f }, + { -50.0f, -50.0f, 0.0f } + }; + GXColor spC[4] = { + { 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF }, + { 0xFF, 0xFF, 0xFF, 0xFF } + }; + + void* sp8; + s32 var_r31; + s32 var_r29; + void* temp_r28; + + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + arg0->unk_44[var_r31] = sp1C[var_r31]; + } + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + arg0->unk_48[var_r31] = spC[var_r31]; + } + arg0->unk_4C->x = 0.0f; + arg0->unk_4C->y = 0.0f; + arg0->unk_4C->z = 1.0f; + temp_r28 = arg0->unk_40; + sp8 = temp_r28; + GXBeginDisplayList(temp_r28, 0x100); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + + for (var_r31 = 0; var_r31 < 4; var_r31++) { + GXPosition1x16(var_r31); + GXColor1x16(0); + GXNormal1x16(var_r31); + for (var_r29 = 0; var_r29 < arg0->unk_34; var_r29++) { + GXTexCoord1x16(var_r31); + } + } + arg0->unk_3C = GXEndDisplayList(); +} + +void fn_1_FD40(M438UnkStruct2* arg0) { + M438UnkStruct* var_r28; + M438UnkStruct3* temp_r30; + M438UnkSubStruct* var_r31; + s32 temp_r0; + s32 var_r25; + s32 var_r26; + s32 var_r27; + + var_r27 = 0; + + var_r28 = arg0->unk_3C; + for (var_r25 = 0; var_r25 < arg0->unk_02; var_r25++, var_r28++) { + if ((var_r28->unk_38 & 4) != 0) { + var_r27++; + } else { + var_r31 = var_r28->unk_58; + for (var_r26 = 0; var_r26 < var_r28->unk_34; var_r26++, var_r31++) { + temp_r30 = &lbl_1_bss_DE4.unk_3C[arg0->unk_34[var_r26]]; + var_r31->unk_24 &= ~4; + switch (var_r31->unk_24 & 0xF) { + case 1: + var_r31->unk_2C += var_r31->unk_28; + if (var_r31->unk_2C >= 1.0f) { + var_r31->unk_00++; + var_r31->unk_2C -= 1.0f; + } + break; + case 2: + var_r31->unk_2C += var_r31->unk_28; + if (var_r31->unk_2C >= 1.0f) { + var_r31->unk_00 -= 1; + var_r31->unk_2C -= 1.0f; + } + break; + } + if (var_r31->unk_00 >= temp_r30->unk_4C) { + if ((var_r31->unk_24 & 0x10) != 0) { + var_r31->unk_24 |= 8; + var_r31->unk_00 -= 1; + } else if ((var_r31->unk_24 & 0x40) != 0) { + var_r31->unk_24 = (var_r31->unk_24 & 0xF0) | 2; + var_r31->unk_00 -= 2; + } else if ((var_r31->unk_24 & 0x20) != 0) { + var_r31->unk_00 = 0; + } + var_r31->unk_24 |= 4; + } else if (var_r31->unk_00 < 0) { + if ((var_r31->unk_24 & 0x10) != 0) { + var_r31->unk_24 |= 8; + var_r31->unk_00 = 0; + } else if ((var_r31->unk_24 & 0x20) != 0) { + if ((var_r31->unk_24 & 0x40) != 0) { + var_r31->unk_24 = (var_r31->unk_24 & 0xF0) | 1; + var_r31->unk_00 = 1; + } else { + var_r31->unk_00 = temp_r30->unk_4C - 1; + } + } else if ((var_r31->unk_24 & 0x40) != 0) { + var_r31->unk_24 |= 8; + var_r31->unk_00 = 0; + } + var_r31->unk_24 |= 4; + } else { + var_r31->unk_24 &= ~8; + } + if (var_r31->unk_00 != var_r31->unk_01) { + var_r31->unk_08 = (var_r31->unk_00 * temp_r30->unk_58); + var_r31->unk_10 = (var_r31->unk_00 * temp_r30->unk_58); + var_r31->unk_18 = ((var_r31->unk_00 + 1) * temp_r30->unk_58); + var_r31->unk_20 = ((var_r31->unk_00 + 1) * temp_r30->unk_58); + if ((var_r31->unk_00 + 1) < temp_r30->unk_4C) { + var_r31->unk_18 -= temp_r30->unk_60; + var_r31->unk_20 -= temp_r30->unk_60; + } + var_r31->unk_01 = var_r31->unk_00; + DCFlushRangeNoSync(&var_r31->unk_04, 0x20); + } + if ((var_r31->unk_24 & 8) != 0) { + if ((var_r28->unk_38 & 0x40000000) != 0) { + var_r28->unk_38 |= 4; + if ((var_r31->unk_24 & 0x40) == 0) { + if (var_r31->unk_00 <= 0) { + var_r31->unk_00 = temp_r30->unk_4C; + } else { + var_r31->unk_00 = 0; + } + } + } else if ((var_r28->unk_38 & 0x80000000) != 0) { + fn_1_107BC(arg0->unk_00); + } + var_r27++; + } + } + } + } + if (var_r27 >= arg0->unk_02) { + if ((arg0->unk_08 & 0x40000000) != 0) { + arg0->unk_08 |= 4; + } else if ((arg0->unk_08 & 0x80000000) != 0) { + fn_1_107BC(arg0->unk_00); + } + } + PPCSync(); +} + +s16 fn_1_10258(u8 arg0, u8 arg1) { + M438UnkStruct* var_r30; + M438UnkStruct2* var_r31; + s32 var_r29; + s32 var_r28; + void* temp_r25; + + var_r31 = &lbl_1_bss_DE4.unk_40[1]; + + for (var_r29 = 1; var_r29 < lbl_1_bss_DE4.unk_30; var_r29++, var_r31++) { + if (var_r31->unk_08 == 0) break; + } + if (var_r29 == lbl_1_bss_DE4.unk_30) { + OSReport("OVER BILL\n"); + return 0; + } + var_r31->unk_00 = var_r29; + var_r31->unk_08 = 1; + var_r31->unk_30 = NULL; + var_r31->unk_02 = arg0; + var_r31->unk_04 = arg1; + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x98, 0x10000000); + var_r31->unk_3C = var_r30; + var_r31->unk_34 = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * 2, 0x10000000); + var_r31->unk_48 = 0; + var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 << 8, 0x10000000); + var_r31->unk_50 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x30, 0x10000000); + var_r31->unk_54 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0x10, 0x10000000); + var_r31->unk_58 = HuMemDirectMallocNum(HEAP_SYSTEM, arg0 * 0xC, 0x10000000); + var_r31->unk_5C = HuMemDirectMallocNum(HEAP_SYSTEM, arg1 * (arg0 * 0x30), 0x10000000); + DCFlushRangeNoSync(var_r31->unk_4C, arg0 << 8); + var_r31->unk_0C.x = var_r31->unk_0C.y = var_r31->unk_0C.z = 0.0f; + var_r31->unk_18.x = var_r31->unk_18.y = var_r31->unk_18.z = 0.0f; + var_r31->unk_24.x = var_r31->unk_24.y = var_r31->unk_24.z = 1.0f; + var_r31->unk_70.x = var_r31->unk_70.y = var_r31->unk_70.z = 0.0f; + var_r31->unk_64.x = var_r31->unk_64.y = var_r31->unk_64.z = 0.0f; + var_r31->unk_60 = 0; + + for (var_r29 = 0; var_r29 < 0x20; var_r29++) { + var_r31->unk_7Ca[var_r29] = 0; + } + + for (var_r29 = 0; var_r29 < arg1; var_r29++) { + var_r31->unk_34[var_r29] = 0; + } + + for (var_r29 = 0; var_r29 < arg0; var_r29++, var_r30++) { + var_r30->unk_38 = 1; + var_r30->unk_34 = arg1; + var_r30->unk_30 = 0; + var_r30->unk_31 = 2; + var_r30->unk_32 = 0; + var_r30->unk_33 = 0; + var_r30->unk_50.r = var_r30->unk_50.g = var_r30->unk_50.b = 0; + var_r30->unk_50.a = 0xFF; + var_r30->unk_54.r = var_r30->unk_54.g = var_r30->unk_54.b = 0xFF; + var_r30->unk_54.a = 0xFF; + var_r30->unk_58 = &var_r31->unk_5C[var_r29 * arg1]; + + for (var_r28 = 0; var_r28 < arg1; var_r28++) { + var_r30->unk_58[var_r28].unk_00 = var_r30->unk_58[var_r28].unk_01 = 0; + var_r30->unk_58[var_r28].unk_28 = 1.0f; + var_r30->unk_58[var_r28].unk_2C = 0.0f; + } + var_r30->unk_00.x = var_r30->unk_00.y = var_r30->unk_00.z = 0.0f; + var_r30->unk_0C.x = var_r30->unk_0C.y = var_r30->unk_0C.z = 0.0f; + var_r30->unk_18.x = var_r30->unk_18.y = var_r30->unk_18.z = 1.0f; + var_r30->unk_6C.x = var_r30->unk_6C.y = var_r30->unk_6C.z = 0.0f; + var_r30->unk_24.x = var_r30->unk_24.y = var_r30->unk_24.z = 0.0f; + var_r30->unk_60.x = var_r30->unk_60.y = var_r30->unk_60.z = 0.0f; + var_r30->unk_5C = 0; + + for (var_r28 = 0; var_r28 < 0x10; var_r28++) { + var_r30->unk_78[var_r28] = 0; + } + var_r30->unk_44 = &var_r31->unk_50[var_r29 * 4]; + var_r30->unk_48 = &var_r31->unk_54[var_r29 * 4]; + var_r30->unk_4C = &var_r31->unk_58[var_r29]; + var_r30->unk_40 = ((char*)var_r31->unk_4C) + var_r31->unk_48; + fn_1_FAB8(var_r30); + var_r31->unk_48 += var_r30->unk_3C; + } + temp_r25 = var_r31->unk_4C; + var_r31->unk_4C = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk_48, 0x10000000); + memcpy(var_r31->unk_4C, temp_r25, var_r31->unk_48); + HuMemDirectFree(temp_r25); + DCFlushRangeNoSync(var_r31->unk_50, arg0 * 0x30); + DCFlushRangeNoSync(var_r31->unk_54, arg0 * 0x10); + DCFlushRangeNoSync(var_r31->unk_58, arg0 * 0xC); + DCFlushRangeNoSync(var_r31->unk_4C, var_r31->unk_48); + var_r30 = var_r31->unk_3C; + var_r31->unk_48 = 0; + + for (var_r29 = 0; var_r29 < arg0; var_r29++, var_r30++) { + var_r30->unk_40 = ((char*)var_r31->unk_4C) + var_r31->unk_48; + var_r31->unk_48 += var_r30->unk_3C; + } + lbl_1_bss_DE4.unk_36 = var_r31->unk_00; + lbl_1_bss_DE4.unk_38 = 0; + lbl_1_bss_DE4.unk_3A = 0; + PPCSync(); + return var_r31->unk_00; +} + +void fn_1_107BC(s16 arg0) { + M438UnkStruct2* temp_r31; + s32 var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if ((u32) temp_r31->unk_08 != 0) { + if (temp_r31->unk_50 != NULL) { + HuMemDirectFree(temp_r31->unk_50); + } + if (temp_r31->unk_54 != NULL) { + HuMemDirectFree(temp_r31->unk_54); + } + if (temp_r31->unk_58 != NULL) { + HuMemDirectFree(temp_r31->unk_58); + } + if (temp_r31->unk_4C != NULL) { + HuMemDirectFree(temp_r31->unk_4C); + } + if (temp_r31->unk_5C != NULL) { + HuMemDirectFree(temp_r31->unk_5C); + } + + for (var_r30 = 0; var_r30 < temp_r31->unk_04; var_r30++) { + fn_1_10F0C(temp_r31->unk_34[var_r30]); + } + HuMemDirectFree(temp_r31->unk_3C); + HuMemDirectFree(temp_r31->unk_34); + temp_r31->unk_08 = 0; + temp_r31->unk_00 = 0; + } + } +} + +void fn_1_108E4(s16 arg0, s16 arg1, u8 arg2) { + lbl_1_bss_DE4.unk_36 = arg0; + lbl_1_bss_DE4.unk_38 = arg1; + lbl_1_bss_DE4.unk_3A = arg2; +} + +#include "game/sprite.h" + +s16 fn_1_10910(u32 arg0, s16 arg1, s16 arg2) { + f32 var_f31; + f32 var_f30; + AnimData* var_r30; + M438UnkStruct3* var_r31; + s32 var_r29; + + var_r31 = &lbl_1_bss_DE4.unk_3C[1]; + for (var_r29 = 1; var_r29 < lbl_1_bss_DE4.unk_32; var_r29++, var_r31++) { + if ((var_r31->unk_06 != 0) && (var_r31->unk_08 == arg0)) break; + } + if (var_r29 < lbl_1_bss_DE4.unk_32) { + var_r31->unk_06++; + return var_r29; + } + + var_r31 = &lbl_1_bss_DE4.unk_3C[1]; + for (var_r29 = 1; var_r29 < lbl_1_bss_DE4.unk_32; var_r29++, var_r31++) { + if (var_r31->unk_06 == 0) break; + } + var_r31->unk_08 = arg0; + var_r31->unk_06 = 1; + if (((arg0 & 0xFFFF0000) + 0x10000) == 0) { + var_r30 = HuSprAnimMake(arg1, arg2, 2); + var_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg2 * (arg1 * 2), 0x10000000); + arg1 = arg2 = 0; + } else { + var_r30 = HuSprAnimRead(HuDataReadNum(arg0, 0x10000000)); + } + if ((arg1 == 0) || (arg2 == 0)) { + arg1 = var_r30->bmp->sizeX; + arg2 = var_r30->bmp->sizeY; + var_f31 = var_f30 = 1.0f; + } else { + var_f31 = arg1 / (f32)var_r30->bmp->sizeX; + var_f30 = arg2 / (f32)var_r30->bmp->sizeY; + } + var_r31->unk_00 = var_r30; + var_r31->unk_4E = arg1; + var_r31->unk_50 = arg2; + var_r31->unk_54 = var_f31; + var_r31->unk_58 = var_f30; + var_r31->unk_5C = 1.0f / var_r30->bmp->sizeX; + var_r31->unk_60 = 1.0f / var_r30->bmp->sizeY; + var_r31->unk_04 = 0; + var_r31->unk_4C = var_r30->bmp->sizeY / arg2; + if (var_r31->unk_4C < 1) { + var_r31->unk_4C = 1; + } + var_r31->unk_4D = 0; + if ((arg1 > var_r30->bmp->sizeX) || (arg2 > var_r30->bmp->sizeY)) { + var_r31->unk_4D = 1; + } + var_r31->unk_48.r = var_r31->unk_48.g = var_r31->unk_48.b = 0xFF; + var_r31->unk_48.a = 0xFF; + PSMTXIdentity(var_r31->unk_18); + var_r31->unk_0C.x = var_r31->unk_0C.y = var_r31->unk_0C.z = 0.0f; + return var_r29; +} + +void fn_1_10CB8(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5) { + f32 var_f31; + f32 var_f30; + M438UnkStruct3* temp_r31; + AnimData* temp_r30; + + temp_r31 = &lbl_1_bss_DE4.unk_3C[arg0]; + HuSprAnimKill(temp_r31->unk_00); + temp_r31->unk_08 |= 0xFFFF0000; + temp_r30 = HuSprAnimMake(arg2, arg3, arg1); + temp_r30->bmp->data = HuMemDirectMallocNum(HEAP_SYSTEM, arg3 * (temp_r30->bmp->pixSize * arg2), 0x10000000U); + var_f31 = arg4 / (f32) temp_r30->bmp->sizeX; + var_f30 = arg5 / (f32) temp_r30->bmp->sizeY; + temp_r31->unk_00 = temp_r30; + temp_r31->unk_4E = arg2; + temp_r31->unk_50 = arg3; + temp_r31->unk_54 = var_f31; + temp_r31->unk_58 = var_f30; + temp_r31->unk_5C = 1.0f / (f32) temp_r30->bmp->sizeX; + temp_r31->unk_60 = 1.0f / (f32) temp_r30->bmp->sizeY; + temp_r31->unk_04 = 0; + temp_r31->unk_4C = temp_r30->bmp->sizeY / arg5; + temp_r31->unk_4D = 0; + temp_r31->unk_48.r = temp_r31->unk_48.g = temp_r31->unk_48.b = 0xFF; + temp_r31->unk_48.a = 0xFF; +} + +void fn_1_10F0C(s16 arg0) { + M438UnkStruct3* temp_r31; + + temp_r31 = &lbl_1_bss_DE4.unk_3C[arg0]; + if (temp_r31->unk_08 != 0) { + if (temp_r31->unk_06 != 0) { + temp_r31->unk_06 -= 1; + } + if (temp_r31->unk_06 == 0) { + HuSprAnimKill(temp_r31->unk_00); + temp_r31->unk_08 = 0; + } + } +} + +u8 fn_1_10F8C(s16 arg0, u8 arg1, u32 arg2, s16 arg3, s16 arg4) { + s32 var_r31; + + if (arg0 == 0) return 0; + + var_r31 = fn_1_10910(arg2, arg3, arg4); + if (var_r31 == 0) return 0; + + fn_1_110B4(arg0, arg1, var_r31); + return var_r31; +} + +u8 fn_1_11018(s16 arg0, u8 arg1, u32 arg2) { + u8 var_r31; + + var_r31 = fn_1_10F8C(arg0, arg1, arg2, 0, 0); + + return var_r31; +} + +s32 fn_1_110B4(s16 arg0, u8 arg1, s16 arg2) { + M438UnkStruct* var_r29; + M438UnkStruct2* temp_r28; + M438UnkStruct3* temp_r30; + M438UnkSubStruct* temp_r31; + s32 var_r26; + + if (arg2 == 0) { + return 0; + } + if (arg0 == 0) { + return 0; + } + temp_r28 = &lbl_1_bss_DE4.unk_40[arg0]; + temp_r28->unk_08 |= 2; + if (arg2 == temp_r28->unk_34[arg1]) { + return 1; + } + temp_r28->unk_34[arg1] = arg2; + temp_r30 = &lbl_1_bss_DE4.unk_3C[arg2]; + + var_r29 = temp_r28->unk_3C; + for (var_r26 = 0; var_r26 < temp_r28->unk_02; var_r26++, var_r29++) { + if (arg1 == 0) { + var_r29->unk_44[0].x = -0.5f * temp_r30->unk_4E; + var_r29->unk_44[0].y = 0.5f * temp_r30->unk_50; + var_r29->unk_44[1].x = (0.5f * temp_r30->unk_4E); + var_r29->unk_44[1].y = (0.5f * temp_r30->unk_50); + var_r29->unk_44[2].x = (0.5f * temp_r30->unk_4E); + var_r29->unk_44[2].y = (-0.5f * temp_r30->unk_50); + var_r29->unk_44[3].x = (-0.5f * temp_r30->unk_4E); + var_r29->unk_44[3].y = (-0.5f * temp_r30->unk_50); + var_r29->unk_44[0].z = var_r29->unk_44[1].z = var_r29->unk_44[2].z = var_r29->unk_44[3].z = 0.0f; + } + temp_r31 = &var_r29->unk_58[arg1]; + temp_r31->unk_24 = 0; + temp_r31->unk_00 = temp_r31->unk_01 = 0; + temp_r31->unk_28 = 1.0f; + temp_r31->unk_2C = 0.0f; + temp_r31->unk_04 = temp_r31->unk_00 * temp_r30->unk_54; + temp_r31->unk_08 = temp_r31->unk_00 * temp_r30->unk_58; + temp_r31->unk_0C = (temp_r31->unk_00 + 1) * temp_r30->unk_54; + temp_r31->unk_10 = temp_r31->unk_00 * temp_r30->unk_58; + temp_r31->unk_14 = (temp_r31->unk_00 + 1) * temp_r30->unk_54; + temp_r31->unk_18 = (temp_r31->unk_00 + 1) * temp_r30->unk_58; + temp_r31->unk_1C = (temp_r31->unk_00 * temp_r30->unk_54); + temp_r31->unk_20 = (temp_r31->unk_00 + 1) * temp_r30->unk_58; + if ((temp_r31->unk_00 + 1) < temp_r30->unk_4C) { + temp_r31->unk_18 -= temp_r30->unk_60; + temp_r31->unk_20 -= temp_r30->unk_60; + } + DCFlushRangeNoSync(&temp_r31->unk_04, 0x20); + } + lbl_1_bss_DE4.unk_36 = arg0; + lbl_1_bss_DE4.unk_3A = arg1; + PPCSync(); + return 1; +} + +void fn_1_11658(void) { + M438UnkStruct2* temp_r31; + M438UnkStruct3* temp_r30; + M438UnkStruct3* temp_r29; + s32 var_r28; + s32 var_r27; + s16 var_r26; + + for (var_r28 = 1; var_r28 < lbl_1_bss_DE4.unk_30; var_r28++) { + if ((s16)var_r28 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[(s16)var_r28]; + if (temp_r31->unk_08 != 0) { + if (temp_r31->unk_50 != NULL) { + HuMemDirectFree(temp_r31->unk_50); + } + if (temp_r31->unk_54 != NULL) { + HuMemDirectFree(temp_r31->unk_54); + } + if (temp_r31->unk_58 != NULL) { + HuMemDirectFree(temp_r31->unk_58); + } + if (temp_r31->unk_4C != NULL) { + HuMemDirectFree(temp_r31->unk_4C); + } + if (temp_r31->unk_5C != NULL) { + HuMemDirectFree(temp_r31->unk_5C); + } + + for (var_r27 = 0; var_r27 < temp_r31->unk_04; var_r27++) { + var_r26 = temp_r31->unk_34[var_r27]; + temp_r29 = &lbl_1_bss_DE4.unk_3C[var_r26]; + if (temp_r29->unk_08 != 0) { + if (temp_r29->unk_06 != 0) { + temp_r29->unk_06 -= 1; + } + if (temp_r29->unk_06 == 0) { + HuSprAnimKill(temp_r29->unk_00); + temp_r29->unk_08 = 0; + } + } + } + HuMemDirectFree(temp_r31->unk_3C); + HuMemDirectFree(temp_r31->unk_34); + temp_r31->unk_08 = 0; + temp_r31->unk_00 = 0; + } + } + } + + for (var_r28 = 1; var_r28 < lbl_1_bss_DE4.unk_32; var_r28++) { + temp_r30 = &lbl_1_bss_DE4.unk_3C[(s16)var_r28]; + if (temp_r30->unk_08 != 0U) { + if (temp_r30->unk_06 != 0) { + temp_r30->unk_06 -= 1; + } + if (temp_r30->unk_06 == 0) { + HuSprAnimKill(temp_r30->unk_00); + temp_r30->unk_08 = 0; + } + } + } + HuMemDirectFree(lbl_1_bss_DE4.unk_40); + HuMemDirectFree(lbl_1_bss_DE4.unk_3C); + Hu3DModelKill(lbl_1_bss_DE4.unk_34); +} + +void fn_1_11890(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + temp_r31->unk_0C.x = arg8; + temp_r31->unk_0C.y = arg9; + temp_r31->unk_0C.z = argA; + if (temp_r31->unk_02 == 1) { + temp_r31->unk_3C->unk_00 = temp_r31->unk_0C; + } + } +} + +void fn_1_118FC(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r30->unk_02 > arg1) { + temp_r31 = &temp_r30->unk_3C[arg1]; + temp_r31->unk_00.x = arg8; + temp_r31->unk_00.y = arg9; + temp_r31->unk_00.z = argA; + } + } +} + +void fn_1_1196C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + for (var_r29 = 0; var_r29 < temp_r30->unk_02; var_r29++, var_r31++) { + var_r31->unk_00.x = arg8; + var_r31->unk_00.y = arg9; + var_r31->unk_00.z = argA; + } + } +} + +void fn_1_119E0(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + temp_r31->unk_0C.x += arg8; + temp_r31->unk_0C.y += arg9; + temp_r31->unk_0C.z += argA; + if (temp_r31->unk_02 == 1) { + temp_r31->unk_3C->unk_00 = temp_r31->unk_0C; + } + } +} + +void fn_1_11A64(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r30->unk_02 > arg1) { + temp_r31 = &temp_r30->unk_3C[arg1]; + temp_r31->unk_00.x += arg8; + temp_r31->unk_00.y += arg9; + temp_r31->unk_00.z += argA; + } + } +} + +void fn_1_11AEC(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + for (var_r29 = 0; var_r29 < temp_r30->unk_02; var_r29++, var_r31++) { + var_r31->unk_00.x += arg8; + var_r31->unk_00.y += arg9; + var_r31->unk_00.z += argA; + } + } +} + +void fn_1_11B78(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r30->unk_02 > arg1) { + temp_r31 = &temp_r30->unk_3C[arg1]; + temp_r31->unk_24.x = arg8; + temp_r31->unk_24.y = arg9; + temp_r31->unk_24.z = argA; + } + } +} + +void fn_1_11BE8(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + for (var_r29 = 0; var_r29 < temp_r30->unk_02; var_r29++, var_r31++) { + var_r31->unk_24.x = arg8; + var_r31->unk_24.y = arg9; + var_r31->unk_24.z = argA; + } + } +} + +void fn_1_11C5C(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + temp_r31->unk_70.x = arg8; + temp_r31->unk_70.y = arg9; + temp_r31->unk_70.z = argA; + if (temp_r31->unk_02 == 1) { + temp_r31->unk_3C->unk_6C = temp_r31->unk_70; + } + } +} + +void fn_1_11CC8(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r30->unk_02 > arg1) { + temp_r31 = &temp_r30->unk_3C[arg1]; + temp_r31->unk_6C.x = arg8; + temp_r31->unk_6C.y = arg9; + temp_r31->unk_6C.z = argA; + } + } +} + +void fn_1_11D38(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + for (var_r29 = 0; var_r29 < temp_r30->unk_02; var_r29++, var_r31++) { + var_r31->unk_6C.x = arg8; + var_r31->unk_6C.y = arg9; + var_r31->unk_6C.z = argA; + } + } +} + +void fn_1_11DAC(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + temp_r31->unk_18.x = arg8; + temp_r31->unk_18.y = arg9; + temp_r31->unk_18.z = argA; + if (temp_r31->unk_02 == 1) { + temp_r31->unk_3C->unk_0C = temp_r31->unk_18; + } + } +} + +void fn_1_11E18(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r30->unk_02 > arg1) { + temp_r31 = &temp_r30->unk_3C[arg1]; + temp_r31->unk_0C.x = arg8; + temp_r31->unk_0C.y = arg9; + temp_r31->unk_0C.z = argA; + } + } +} + +void fn_1_11E88(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + for (var_r29 = 0; var_r29 < temp_r30->unk_02; var_r29++, var_r31++) { + var_r31->unk_0C.x = arg8; + var_r31->unk_0C.y = arg9; + var_r31->unk_0C.z = argA; + } + } +} + +void fn_1_11EFC(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + temp_r31->unk_24.x = arg8; + temp_r31->unk_24.y = arg9; + temp_r31->unk_24.z = argA; + if (temp_r31->unk_02 == 1) { + temp_r31->unk_3C->unk_18 = temp_r31->unk_24; + } + } +} + +void fn_1_11F68(s16 arg0, s16 arg1, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r30->unk_02 > arg1) { + temp_r31 = &temp_r30->unk_3C[arg1]; + temp_r31->unk_18.x = arg8; + temp_r31->unk_18.y = arg9; + temp_r31->unk_18.z = argA; + } + } +} + +void fn_1_11FD8(s16 arg0, f32 arg8, f32 arg9, f32 argA) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + for (var_r29 = 0; var_r29 < temp_r30->unk_02; var_r29++, var_r31++) { + var_r31->unk_18.x = arg8; + var_r31->unk_18.y = arg9; + var_r31->unk_18.z = argA; + } + } +} + +void fn_1_1204C(s16 arg0, s32 arg1) { + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + temp_r31->unk_08 |= arg1; + } +} + +void fn_1_12090(s16 arg0, s16 arg1, s32 arg2) { + M438UnkStruct* temp_r30; + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + temp_r30 = &temp_r31->unk_3C[arg1]; + temp_r30->unk_38 |= arg2; + } + } +} + +void fn_1_12100(s16 arg0, s32 arg1) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r30 = temp_r31->unk_3C; + for (var_r29 = 0; var_r29 < temp_r31->unk_02; var_r29++, var_r30++) { + var_r30->unk_38 |= arg1; + } + } +} + +void fn_1_12174(s16 arg0, u32 arg1) { + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + temp_r31->unk_08 &= ~arg1; + } +} + +void fn_1_121B8(s16 arg0, s16 arg1, u32 arg2) { + M438UnkStruct* temp_r30; + M438UnkStruct2* temp_r31; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if ((s16) temp_r31->unk_02 > arg1) { + temp_r30 = &temp_r31->unk_3C[arg1]; + temp_r30->unk_38 &= ~arg2; + } + } +} + +void fn_1_12228(s16 arg0, u32 arg1) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r30 = temp_r31->unk_3C; + for (var_r29 = 0; var_r29 < temp_r31->unk_02; var_r29++, var_r30++) { + var_r30->unk_38 &= ~arg1; + } + } +} + +s32 fn_1_1229C(s16 arg0, s32 arg1) { + M438UnkStruct2* var_r31; + + if (arg0 == 0) { + return 0; + } + + var_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if ((var_r31->unk_08 & arg1) != 0) { + return 1; + } + return 0; +} + +s16 fn_1_122F8(s16 arg0, s16 arg1, s32 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + if ((var_r30->unk_38 & arg2) != 0) { + return 1; + } + arg0 = 0; + } + } + return arg0; +} + +void fn_1_12378(s16 arg0, s16 arg1, u8 arg2, u8 arg3, u8 arg4, u8 arg5) { + M438UnkStruct* temp_r31; + M438UnkStruct2* temp_r30; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r30->unk_02 > arg1) { + temp_r31 = &temp_r30->unk_3C[arg1]; + temp_r31->unk_54.r = arg2; + temp_r31->unk_54.g = arg3; + temp_r31->unk_54.b = arg4; + temp_r31->unk_54.a = arg5; + } + } +} + +void fn_1_123EC(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + for (var_r29 = 0; var_r29 < temp_r30->unk_02; var_r29++, var_r31++) { + var_r31->unk_54.r = arg1; + var_r31->unk_54.g = arg2; + var_r31->unk_54.b = arg3; + var_r31->unk_54.a = arg4; + } + } +} + +void fn_1_12464(s16 arg0, s16 arg1, u8 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_30 = arg2; + } + } +} + +void fn_1_124CC(s16 arg0, u8 arg1) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r30 = temp_r31->unk_3C; + for (var_r29 = 0; var_r29 < temp_r31->unk_02; var_r29++, var_r30++) { + var_r30->unk_30 = arg1; + } + } +} + +void fn_1_12538(s16 arg0, s16 arg1, u8 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_31 = arg2; + } + } +} + +void fn_1_125A0(s16 arg0, u8 arg1) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r30 = temp_r31->unk_3C; + for (var_r29 = 0; var_r29 < temp_r31->unk_02; var_r29++, var_r30++) { + var_r30->unk_31 = arg1; + } + } +} + +void fn_1_1260C(s16 arg0, s16 arg1, u8 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_33 = arg2; + } + } +} + +void fn_1_12674(s16 arg0, u8 arg1) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + s32 var_r29; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r30 = temp_r31->unk_3C; + for (var_r29 = 0; var_r29 < temp_r31->unk_02; var_r29++, var_r30++) { + var_r30->unk_33 = arg1; + } + } +} + +void fn_1_126E0(s16 arg0, s16 arg1, u8 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_58[0].unk_24 = arg2; + } + } +} + +void fn_1_1274C(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_58[arg2].unk_24 = arg3; + } + } +} + +void fn_1_127C4(s16 arg0, u8 arg1) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r29; + s32 var_r28; + s32 var_r30; + + if (arg0 != 0) { + temp_r29 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = (M438UnkStruct*)&temp_r29->unk_3C; //! bug + for (var_r28 = 0; var_r28 < temp_r29->unk_02; var_r28++, var_r31++) { + for (var_r30 = 0; var_r30 < var_r31->unk_34; var_r30++) { + var_r31->unk_58[var_r30].unk_24 = arg1; + } + } + } +} + +void fn_1_1285C(s16 arg0, s16 arg1, f32 arg8) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_58[0].unk_28 = arg8; + } + } +} + +void fn_1_128C8(s16 arg0, s16 arg1, u8 arg2, f32 arg8) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_58[arg2].unk_28 = arg8; + } + } +} + +void fn_1_12940(s16 arg0, f32 arg8) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r28; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + + for (var_r28 = 0; var_r28 < temp_r30->unk_02; var_r28++, var_r31++) { + for (var_r29 = 0; var_r29 < var_r31->unk_34; var_r29++) { + var_r31->unk_58[var_r29].unk_28 = arg8; + } + } + } +} + +void fn_1_129D8(s16 arg0, s16 arg1, u8 arg2) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_58[0].unk_00 = arg2; + } + } +} + +void fn_1_12A48(s16 arg0, s16 arg1, u8 arg2, u8 arg3) { + M438UnkStruct2* temp_r31; + M438UnkStruct* var_r30; + + if (arg0 != 0) { + temp_r31 = &lbl_1_bss_DE4.unk_40[arg0]; + if (temp_r31->unk_02 > arg1) { + var_r30 = &temp_r31->unk_3C[arg1]; + var_r30->unk_58[arg2].unk_00 = arg3; + } + } +} + +void fn_1_12AC0(s16 arg0, u8 arg1) { + M438UnkStruct* var_r31; + M438UnkStruct2* temp_r30; + s32 var_r28; + s32 var_r29; + + if (arg0 != 0) { + temp_r30 = &lbl_1_bss_DE4.unk_40[arg0]; + var_r31 = temp_r30->unk_3C; + + for (var_r28 = 0; var_r28 < temp_r30->unk_02; var_r28++, var_r31++) { + for (var_r29 = 0; var_r29 < var_r31->unk_34; var_r29++) { + var_r31->unk_58[var_r29].unk_00 = arg1; + } + } + } +} + +void fn_1_12B58(s16 arg0, u8 arg1) { + M438UnkStruct3* var_r31; + + if (arg0 != 0) { + var_r31 = &lbl_1_bss_DE4.unk_3C[arg0]; + var_r31->unk_04 = arg1; + } +} diff --git a/src/REL/m438Dll/main.c b/src/REL/m438Dll/main.c index b8d481ff..861c653d 100644 --- a/src/REL/m438Dll/main.c +++ b/src/REL/m438Dll/main.c @@ -137,70 +137,6 @@ typedef struct M438StructBss298 { Vec unk_24; } M438StructBss298; /* size = 0x30 */ -typedef struct M438UnkSubStruct { - u8 unk_00; - char unk01[0x23]; - u8 unk_24; - float unk_28; - float unk_2C; -} M438UnkSubStruct; - -typedef struct M438UnkStruct { - Vec unk_00; - char unk0C[0xC]; - Vec unk_18; - char unk24[0xF]; - s8 unk_33; - char unk34[0x4]; - s32 unk_38; - char unk_3C[0x18]; - s8 unk_54; - s8 unk_55; - s8 unk_56; - u8 unk_57; - M438UnkSubStruct *unk_58; - u8 unk_5C; - char unk5D[0x3]; - Vec unk_60; - Vec unk_6C; - s16 unk_78; - s16 unk_7A; - char unk7C[0x1C]; -} M438UnkStruct; /* size = 0x98 */ - -typedef struct M438UnkStruct2 { - s16 unk_00; - s16 unk_02; - char unk04[0x8]; - Vec unk_0C; - char unk18[0xC]; - Vec unk_24; - void (*unk_30)(struct M438UnkStruct2 *); - char unk34[8]; - M438UnkStruct *unk_3C; - char unk40[0x20]; - u8 unk_60; - char unk61[0x3]; - char unk64[0x18]; - s16 unk_7C; - s16 unk_7E; - float unk_80; - float unk_84; - float unk_88; - float unk_8C; - float unk_90; - char unk94[0x28]; -} M438UnkStruct2; /* size = 0xBC */ - -typedef struct M438StructBssDE4 { - /* 0x00 */ char unk00[0x36]; - s16 unk_36; - s16 unk_38; - s16 unk_3A; - char unk3C[4]; - M438UnkStruct2 *unk_40; -} M438StructBssDE4; /* size = */ - typedef u8 M438UnkType[0x30]; void fn_1_4DC(omObjData *object); @@ -1872,9 +1808,9 @@ void fn_1_5D4C(M438UnkStruct2 *arg0) var_r31->unk_00.y = 6.0f; var_r31->unk_00.z = (40.0f * var_r31->unk_6C.z); temp_f29 = 0.01f * (100.0f * ((1.0f / 65536.0f) * fn_1_7DB4())); - var_r31->unk_54 = (80.0f + 60.0f * temp_f29); - var_r31->unk_55 = (64.0f + 60.0f * temp_f29); - var_r31->unk_56 = (56.0f + 60.0f * temp_f29); + var_r31->unk_54.r = (80.0f + 60.0f * temp_f29); + var_r31->unk_54.g = (64.0f + 60.0f * temp_f29); + var_r31->unk_54.b = (56.0f + 60.0f * temp_f29); } arg0->unk_7C = 0x30; arg0->unk_60++; @@ -1891,7 +1827,7 @@ void fn_1_5D4C(M438UnkStruct2 *arg0) var_r31->unk_18.x = temp_f30; var_r31->unk_18.y = temp_f30; var_r31->unk_18.z = temp_f30; - var_r31->unk_57 = (96.0f * (1.0f - (temp_f31 * temp_f31))); + var_r31->unk_54.a = (96.0f * (1.0f - (temp_f31 * temp_f31))); } if (arg0->unk_7C == 0) { arg0->unk_60++; @@ -1965,29 +1901,29 @@ void fn_1_63B0(M438UnkStruct2 *arg0) var_r31->unk_6C.z = 0.0f; if ((fn_1_7DB4() & 7) != 0) { var_r31->unk_33 = 1; - var_r31->unk_54 = 0x40; - var_r31->unk_55 = 0x10; - var_r31->unk_56 = 4; - var_r31->unk_57 = 0xFF; + var_r31->unk_54.r = 0x40; + var_r31->unk_54.g = 0x10; + var_r31->unk_54.b = 4; + var_r31->unk_54.a = 0xFF; temp_f30 = 3.75f + (1.75f * ((1.0f / 65536.0f) * fn_1_7DB4())); var_r31->unk_60.x = (temp_f30 * (0.1f + ((0.9f * var_f29) / 90.0f))); var_r31->unk_60.y = var_r31->unk_60.z = temp_f30; } else { var_r31->unk_33 = 0; - var_r31->unk_54 = 0; - var_r31->unk_55 = 0; - var_r31->unk_56 = 0; - var_r31->unk_57 = 0xFF; + var_r31->unk_54.r = 0; + var_r31->unk_54.g = 0; + var_r31->unk_54.b = 0; + var_r31->unk_54.a = 0xFF; temp_f30 = 0.25f + (0.25f * ((1.0f / 65536.0f) * fn_1_7DB4())); var_r31->unk_60.y = (1.5f * temp_f30); var_r31->unk_60.x = var_r31->unk_60.z = temp_f30; } var_r31->unk_58->unk_24 = 0; - var_r31->unk_78 = (s32)((60.0f * ((1.0f / 65536.0f) * fn_1_7DB4()))) + 1; + var_r31->unk_78[0] = (s32)((60.0f * ((1.0f / 65536.0f) * fn_1_7DB4()))) + 1; var_r31->unk_5C++; case 1: - if (--var_r31->unk_78 == 0) { + if (--var_r31->unk_78[0] == 0) { var_r31->unk_58->unk_24 = 0x11U; var_r31->unk_58->unk_28 = 0.5f; var_r31->unk_58->unk_2C = 0.0f; @@ -2032,7 +1968,7 @@ void fn_1_6A3C(M438UnkStruct2 *arg0) var_r28 = 0; for (var_r27 = 0; var_r27 < arg0->unk_02; var_r27++, var_r31++) { - if ((arg0->unk_7C != 0) && (var_r31->unk_7A == 0)) { + if ((arg0->unk_7C != 0) && (var_r31->unk_78[1] == 0)) { var_r31->unk_5C = 0; } switch (var_r31->unk_5C) { @@ -2049,8 +1985,8 @@ void fn_1_6A3C(M438UnkStruct2 *arg0) var_r31->unk_6C.x = 100.0f * (0.1f * sp8.x); var_r31->unk_6C.y = sp8.y + (2.5f * ((1.0f / 65536.0f) * fn_1_7DB4())); var_r31->unk_6C.z = 100.0f * (0.1f * sp8.z); - var_r31->unk_78 = (s32)(24.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1; - var_r31->unk_7A = 1; + var_r31->unk_78[0] = (s32)(24.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1; + var_r31->unk_78[1] = 1; } else { temp_f30 = (180.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) - 90.0f; @@ -2064,16 +2000,16 @@ void fn_1_6A3C(M438UnkStruct2 *arg0) var_r31->unk_6C.x = (100.0 * (0.015 * sp8.x)); var_r31->unk_6C.y = sp8.y + ((1.0f / 65536.0f) * fn_1_7DB4()); var_r31->unk_6C.z = 100.0f * (0.015f * sp8.z); - var_r31->unk_78 = (s32)(60.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1; - var_r31->unk_7A = 0; + var_r31->unk_78[0] = (s32)(60.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1; + var_r31->unk_78[1] = 0; } var_r31->unk_38 &= ~4; if ((fn_1_7DB4() & 0xF) != 0) { var_r31->unk_33 = 1; - var_r31->unk_54 = 0x40; - var_r31->unk_55 = 0x10; - var_r31->unk_56 = 4; - var_r31->unk_57 = 0xFF; + var_r31->unk_54.r = 0x40; + var_r31->unk_54.g = 0x10; + var_r31->unk_54.b = 4; + var_r31->unk_54.a = 0xFF; temp_f31 = 1.8f + ((1.0f / 65536.0f) * fn_1_7DB4()); var_r31->unk_18.x = temp_f31; var_r31->unk_18.y = temp_f31; @@ -2081,10 +2017,10 @@ void fn_1_6A3C(M438UnkStruct2 *arg0) } else if (arg0->unk_7C != 0) { var_r31->unk_33 = 0; - var_r31->unk_54 = 0; - var_r31->unk_55 = 0; - var_r31->unk_56 = 0; - var_r31->unk_57 = 0xFF; + var_r31->unk_54.r = 0; + var_r31->unk_54.g = 0; + var_r31->unk_54.b = 0; + var_r31->unk_54.a = 0xFF; temp_f31 = 0.25f + (0.25f * ((1.0f / 65536.0f) * fn_1_7DB4())); var_r31->unk_18.x = temp_f31; var_r31->unk_18.y = 1.5f * temp_f31; @@ -2104,12 +2040,12 @@ void fn_1_6A3C(M438UnkStruct2 *arg0) var_r31->unk_5C++; break; case 1: - if (var_r31->unk_7A != 0) { + if (var_r31->unk_78[1] != 0) { var_r31->unk_6C.y -= 0.5f; } - if (--var_r31->unk_78 == 0) { + if (--var_r31->unk_78[0] == 0) { var_r31->unk_58->unk_24 = 0x11; - if (var_r31->unk_7A != 0) { + if (var_r31->unk_78[1] != 0) { var_r31->unk_58->unk_28 = 0.5f; } else { @@ -2132,7 +2068,7 @@ void fn_1_6A3C(M438UnkStruct2 *arg0) var_r31->unk_18.z *= 0.95f; var_r31->unk_6C.y -= 1.5f; if ((var_r31->unk_58->unk_24 & 8) != 0) { - if (var_r31->unk_7A != 0) { + if (var_r31->unk_78[1] != 0) { var_r31->unk_5C = 3; } else { @@ -2200,10 +2136,10 @@ void fn_1_7300(M438UnkStruct2 *arg0) case 1: var_r31->unk_38 &= ~4; var_r31->unk_33 = 1; - var_r31->unk_54 = 0x60; - var_r31->unk_55 = 0x20; - var_r31->unk_56 = 0x10; - var_r31->unk_57 = 0xFF; + var_r31->unk_54.r = 0x60; + var_r31->unk_54.g = 0x20; + var_r31->unk_54.b = 0x10; + var_r31->unk_54.a = 0xFF; temp_f31 = 0.4f + (0.15f * ((1.0f / 65536.0f) * fn_1_7DB4())); var_r31->unk_18.x = temp_f31; var_r31->unk_18.y = temp_f31; diff --git a/src/REL/m438Dll/map.c b/src/REL/m438Dll/map.c index 58f7e686..b0da050e 100644 --- a/src/REL/m438Dll/map.c +++ b/src/REL/m438Dll/map.c @@ -112,7 +112,7 @@ void fn_1_B54C(omObjData *arg0) var_r29 = Hu3DTexScrollCreate(arg0->model[1], "lafall"); Hu3DTexScrollPosMoveSet(var_r29, 0.0f, -(1.0f / 60.0f), 0.0f); var_r29 = 0; - + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000C), 0x32); arg0->model[3] = var_r27; Hu3DModelLayerSet(var_r27, 3); @@ -151,7 +151,7 @@ void fn_1_B54C(omObjData *arg0) lbl_1_bss_E34[var_r30]->unk40.a = 0; lbl_1_bss_E34[var_r30]->unk00 = 0; } - + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000F), 0x32); arg0->model[6] = var_r27; Hu3DModelLayerSet(var_r27, 3); @@ -162,7 +162,7 @@ void fn_1_B54C(omObjData *arg0) var_r25->unk40.a = 0; var_r25->unk00 = 0; } - + var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x450010), 0x1F4); arg0->model[7] = var_r27; Hu3DModelLayerSet(var_r27, 2); @@ -437,7 +437,7 @@ void fn_1_CAB0(f32 arg8) temp_f28 = 20.0f; temp_f27 = 7.0f; var_r29 = 0x19; - + for (var_r30 = 0; var_r30 < 0x96; var_r30++) { var_r31 = lbl_1_bss_E34[var_r30]; if (var_r31->unk00_s16 == 0) { @@ -447,12 +447,12 @@ void fn_1_CAB0(f32 arg8) sp8.x = sind(temp_f31); sp8.y = 0.0f; sp8.z = cosd(temp_f31); - + temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27; var_r31->unk34.x = 7.5 * sind(temp_f31) * 100.0; var_r31->unk34.y = 0.2f * frandmod(0x3E8); var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0; - + temp_f30 = 1.6666667f * (4.0f + (0.014f * frandmod(0x3E8))); var_r31->unk08.x = sp8.x * temp_f30; var_r31->unk08.z = sp8.z * temp_f30; @@ -478,12 +478,12 @@ void fn_1_CAB0(f32 arg8) sp8.x = sind(temp_f31); sp8.y = 0.0f; sp8.z = cosd(temp_f31); - + temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27; var_r31->unk34.x = 7.5 * sind(temp_f31) * 100.0; var_r31->unk34.y = 0.2f * frandmod(0x3E8); var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0; - + temp_f30 = 1.6666667f * -(0.01f * frandmod(0x3E8)); var_r31->unk08.x = sp8.x * temp_f30; var_r31->unk08.z = sp8.z * temp_f30; @@ -586,7 +586,7 @@ s32 fn_1_DA64(f32 arg8) var_r28 = lbl_1_bss_108C[0]->data; var_r29 = 0; var_r31 = &var_r28->unk4; - + for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { var_f31 = fn_1_E5A4(var_r31->unk8, arg8); if ((fabs(var_f31) < 12.0) && (var_r31->unk0 != 0)) { @@ -627,7 +627,7 @@ s32 fn_1_DEA0(f32 arg8) var_r28 = lbl_1_bss_108C[0]->data; var_r29 = 0; var_r31 = &var_r28->unk4; - + for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { var_f31 = fn_1_E5A4(var_r31->unk8, arg8); if ((fabs(var_f31) < 8.0) && (var_r31->unk0 != 0)) { @@ -647,6 +647,7 @@ f32 fn_1_DF70(f32 arg8, f32 arg9) var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI); if (var_f31 < 0.0f) { var_f31 += temp_f30; + } else if (var_f31 >= temp_f30) { var_f31 -= temp_f30; From a517ff0ae13d5d433c13925837eb8f7bcf95ebac Mon Sep 17 00:00:00 2001 From: CreateSource Date: Sun, 19 Jan 2025 19:58:58 -0500 Subject: [PATCH 267/311] actually link the file --- configure.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.py b/configure.py index 2a75498c..c19df3fd 100644 --- a/configure.py +++ b/configure.py @@ -1161,7 +1161,7 @@ config.libs = [ objects={ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m438Dll/main.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m438Dll/map.c"), - Object(NonMatching, "REL/m438Dll/fire.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m438Dll/fire.c"), }, ), Rel( From 02e288327297f6aba77d59c1715af60cfdcc5f36 Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Sun, 19 Jan 2025 20:01:58 -0500 Subject: [PATCH 268/311] actually link the file (#543) --- configure.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.py b/configure.py index 2a75498c..c19df3fd 100644 --- a/configure.py +++ b/configure.py @@ -1161,7 +1161,7 @@ config.libs = [ objects={ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m438Dll/main.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m438Dll/map.c"), - Object(NonMatching, "REL/m438Dll/fire.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m438Dll/fire.c"), }, ), Rel( From 627f9e4dd73a8b41f1e6fbd0a7c9e7d6bab4101b Mon Sep 17 00:00:00 2001 From: CreateSource Date: Tue, 21 Jan 2025 00:24:31 -0500 Subject: [PATCH 269/311] match MSL_C/abort_exit and MSL_C/mem --- .vscode/settings.json | 10 +++++++++- configure.py | 4 ++-- src/MSL_C.PPCEABI.bare.H/abort_exit.c | 15 ++++++++++++++- src/MSL_C.PPCEABI.bare.H/mem.c | 17 +++++++++++++++++ 4 files changed, 42 insertions(+), 4 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 43011608..69bd81ee 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -47,7 +47,15 @@ "hsfformat.h": "c", "hsfanim.h": "c", "memory.h": "c", - "animdata.h": "c" + "animdata.h": "c", + "abort_exit.h": "c", + "critical_regions.h": "c", + "stddef.h": "c", + "nmwexception.h": "c", + "signal.h": "c", + "gx.h": "c", + "dol2asm.h": "c", + "__mem.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { diff --git a/configure.py b/configure.py index c19df3fd..35693671 100644 --- a/configure.py +++ b/configure.py @@ -680,7 +680,7 @@ config.libs = [ "cflags": cflags_msl, "host": False, "objects": [ - Object(NonMatching, "MSL_C.PPCEABI.bare.H/abort_exit.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/abort_exit.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/alloc.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/errno.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/ansi_files.c"), @@ -692,7 +692,7 @@ config.libs = [ Object(NonMatching, "MSL_C.PPCEABI.bare.H/file_io.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/FILE_POS.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/mbstring.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/mem.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/mem.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/mem_funcs.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/misc_io.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/printf.c"), diff --git a/src/MSL_C.PPCEABI.bare.H/abort_exit.c b/src/MSL_C.PPCEABI.bare.H/abort_exit.c index 1c9ca4d2..b54f4742 100644 --- a/src/MSL_C.PPCEABI.bare.H/abort_exit.c +++ b/src/MSL_C.PPCEABI.bare.H/abort_exit.c @@ -1,5 +1,6 @@ #include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/abort_exit.h" #include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/critical_regions.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/signal.h" #include "stddef.h" #include "PowerPC_EABI_Support/Runtime/NMWException.h" @@ -20,7 +21,19 @@ void (*__console_exit)(void) = 0; void abort(void) { - // TODO + void (**var_r31)(void); + + raise(1); + __aborting = 1; + var_r31 = &__atexit_funcs[0]; + while (__atexit_curr_func > 0) { + var_r31[--__atexit_curr_func](); + } + if (__console_exit != 0) { + __console_exit(); + __console_exit = 0; + } + _ExitProcess(); } void exit(int status) diff --git a/src/MSL_C.PPCEABI.bare.H/mem.c b/src/MSL_C.PPCEABI.bare.H/mem.c index 63a4434f..fc160cd5 100644 --- a/src/MSL_C.PPCEABI.bare.H/mem.c +++ b/src/MSL_C.PPCEABI.bare.H/mem.c @@ -60,6 +60,23 @@ void* memchr(const void* ptr, int ch, size_t count) return NULL; } +unsigned char* __memrchr(unsigned char* s, int c, size_t n){ // credit to CelestialAmber + int n_count; + size_t char_check; + + char_check = (unsigned char)c; + s = &s[n]; + n_count = n + 1; + + while(--n_count){ + if(*--s == char_check){ + return s; + } + } + + return 0; +} + int memcmp(const void* lhs, const void* rhs, size_t count) { const unsigned char* p1; From d72f538b875d929d44e4507655eef12c6d1e8cf2 Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Tue, 21 Jan 2025 14:50:16 -0500 Subject: [PATCH 270/311] match acos, asin, fmod, and math_ppc (#545) --- .vscode/settings.json | 5 +- configure.py | 10 +- .../MSL_C/MSL_Common_Embedded/Math/fdlibm.h | 2 +- src/MSL_C.PPCEABI.bare.H/e_acos.c | 69 ++++ src/MSL_C.PPCEABI.bare.H/e_asin.c | 70 +++- src/MSL_C.PPCEABI.bare.H/e_fmod.c | 140 ++++++++ src/MSL_C.PPCEABI.bare.H/e_pow.c | 308 ++++++++++++++++++ src/MSL_C.PPCEABI.bare.H/math_ppc.c | 25 ++ 8 files changed, 621 insertions(+), 8 deletions(-) create mode 100644 src/MSL_C.PPCEABI.bare.H/e_acos.c create mode 100644 src/MSL_C.PPCEABI.bare.H/e_fmod.c create mode 100644 src/MSL_C.PPCEABI.bare.H/e_pow.c create mode 100644 src/MSL_C.PPCEABI.bare.H/math_ppc.c diff --git a/.vscode/settings.json b/.vscode/settings.json index 69bd81ee..f41b8dff 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -55,7 +55,10 @@ "signal.h": "c", "gx.h": "c", "dol2asm.h": "c", - "__mem.h": "c" + "__mem.h": "c", + "fdlibm.h": "c", + "float.h": "c", + "corecrt_math_defines.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { diff --git a/configure.py b/configure.py index 35693671..ce80b976 100644 --- a/configure.py +++ b/configure.py @@ -701,10 +701,10 @@ config.libs = [ Object(NonMatching, "MSL_C.PPCEABI.bare.H/string.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/uart_console_io.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/wchar_io.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_acos.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_asin.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_atan2.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_fmod.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/e_acos.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/e_asin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/e_atan2.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/e_fmod.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_pow.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_rem_pio2.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/k_cos.c"), @@ -725,7 +725,7 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/w_atan2.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_fmod.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_pow.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/math_ppc.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/math_ppc.c"), ], }, { diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h index 1f654aa7..1eef34b4 100644 --- a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h @@ -126,7 +126,7 @@ extern double sqrt __P((double)); extern double ceil __P((double)); extern double fabs __P((double)); // NOTE: I have no idea how they got it to mangle like this -extern double fabs__Fd(double); +static inline double fabs__Fd(double v) { return __fabs(v); } extern double floor __P((double)); extern double fmod __P((double, double)); diff --git a/src/MSL_C.PPCEABI.bare.H/e_acos.c b/src/MSL_C.PPCEABI.bare.H/e_acos.c new file mode 100644 index 00000000..4842c54b --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/e_acos.c @@ -0,0 +1,69 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" +#include "math.h" + +#ifdef __STDC__ +static const double +#else +static double +#endif +one= 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ +pi = 3.14159265358979311600e+00, /* 0x400921FB, 0x54442D18 */ +pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ +pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ +pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ +pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ +pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ +pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ +pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ +pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ +qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ +qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ +qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ +qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ + +#ifdef __STDC__ + double __ieee754_acos(double x) +#else + double __ieee754_acos(x) + double x; +#endif +{ + double z,p,q,r,w,s,c,df; + int hx,ix; + hx = __HI(x); + ix = hx&0x7fffffff; + if(ix>=0x3ff00000) { /* |x| >= 1 */ + if(((ix-0x3ff00000)|__LO(x))==0) { /* |x|==1 */ + if(hx>0) return 0.0; /* acos(1) = 0 */ + else return pi+2.0*pio2_lo; /* acos(-1)= pi */ + } + return NAN; /* acos(|x|>1) is NaN */ + } + if(ix<0x3fe00000) { /* |x| < 0.5 */ + if(ix<=0x3c600000) return pio2_hi+pio2_lo;/*if|x|<2**-57*/ + z = x*x; + p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5))))); + q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4))); + r = p/q; + return pio2_hi - (x - (pio2_lo-x*r)); + } else if (hx<0) { /* x < -0.5 */ + z = (one+x)*0.5; + p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5))))); + q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4))); + s = sqrt(z); + r = p/q; + w = r*s-pio2_lo; + return pi - 2.0*(s+w); + } else { /* x > 0.5 */ + z = (one-x)*0.5; + s = sqrt(z); + df = s; + __LO(df) = 0; + c = (z-df*df)/(s+df); + p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5))))); + q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4))); + r = p/q; + w = r*s+c; + return 2.0*(df+w); + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/e_asin.c b/src/MSL_C.PPCEABI.bare.H/e_asin.c index bc5754f4..4abcf49d 100644 --- a/src/MSL_C.PPCEABI.bare.H/e_asin.c +++ b/src/MSL_C.PPCEABI.bare.H/e_asin.c @@ -1,3 +1,71 @@ #include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" +#include "math.h" -double fabs__Fd(double v) { return __fabs(v); } +#ifdef __STDC__ +static const double +#else +static double +#endif +one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ +huge = 1.000e+300, +pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ +pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ +pio4_hi = 7.85398163397448278999e-01, /* 0x3FE921FB, 0x54442D18 */ + /* coefficient for R(x^2) */ +pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ +pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ +pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ +pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ +pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ +pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ +qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ +qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ +qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ +qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ + +#ifdef __STDC__ + double __ieee754_asin(double x) +#else + double __ieee754_asin(x) + double x; +#endif +{ + double t,w,p,q,c,r,s; + int hx,ix; + hx = __HI(x); + ix = hx&0x7fffffff; + if(ix>= 0x3ff00000) { /* |x|>= 1 */ + if(((ix-0x3ff00000)|__LO(x))==0) + /* asin(1)=+-pi/2 with inexact */ + return x*pio2_hi+x*pio2_lo; + return NAN; /* asin(|x|>1) is NaN */ + } else if (ix<0x3fe00000) { /* |x|<0.5 */ + if(ix<0x3e400000) { /* if |x| < 2**-27 */ + if(huge+x>one) return x;/* return x with inexact if x!=0*/ + } else + t = x*x; + p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5))))); + q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4))); + w = p/q; + return x+x*w; + } + /* 1> |x|>= 0.5 */ + w = one-fabs(x); + t = w*0.5; + p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5))))); + q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4))); + s = sqrt(t); + if(ix>=0x3FEF3333) { /* if |x| > 0.975 */ + w = p/q; + t = pio2_hi-(2.0*(s+s*w)-pio2_lo); + } else { + w = s; + __LO(w) = 0; + c = (t-w*w)/(s+w); + r = p/q; + p = 2.0*s*r-(pio2_lo-2.0*c); + q = pio4_hi-2.0*w; + t = pio4_hi-(p-q); + } + if(hx>0) return t; else return -t; +} diff --git a/src/MSL_C.PPCEABI.bare.H/e_fmod.c b/src/MSL_C.PPCEABI.bare.H/e_fmod.c new file mode 100644 index 00000000..311d2f08 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/e_fmod.c @@ -0,0 +1,140 @@ + +/* @(#)e_fmod.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * __ieee754_fmod(x,y) + * Return x mod y in exact arithmetic + * Method: shift and subtract + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const double one = 1.0, Zero[] = {0.0, -0.0,}; +#else +static double one = 1.0, Zero[] = {0.0, -0.0,}; +#endif + +#ifdef __STDC__ + double __ieee754_fmod(double x, double y) +#else + double __ieee754_fmod(x,y) + double x,y ; +#endif +{ + int n,hx,hy,hz,ix,iy,sx,i; + unsigned lx,ly,lz; + + hx = __HI(x); /* high word of x */ + lx = __LO(x); /* low word of x */ + hy = __HI(y); /* high word of y */ + ly = __LO(y); /* low word of y */ + sx = hx&0x80000000; /* sign of x */ + hx ^=sx; /* |x| */ + hy &= 0x7fffffff; /* |y| */ + + /* purge off exception values */ + if((hy|ly)==0||(hx>=0x7ff00000)|| /* y=0,or x not finite */ + ((hy|((ly|-ly)>>31))>0x7ff00000)) /* or y is NaN */ + return (x*y)/(x*y); + if(hx<=hy) { + if((hx>31]; /* |x|=|y| return x*0*/ + } + + /* determine ix = ilogb(x) */ + if(hx<0x00100000) { /* subnormal x */ + if(hx==0) { + for (ix = -1043, i=lx; i>0; i<<=1) ix -=1; + } else { + for (ix = -1022,i=(hx<<11); i>0; i<<=1) ix -=1; + } + } else ix = (hx>>20)-1023; + + /* determine iy = ilogb(y) */ + if(hy<0x00100000) { /* subnormal y */ + if(hy==0) { + for (iy = -1043, i=ly; i>0; i<<=1) iy -=1; + } else { + for (iy = -1022,i=(hy<<11); i>0; i<<=1) iy -=1; + } + } else iy = (hy>>20)-1023; + + /* set up {hx,lx}, {hy,ly} and align y to x */ + if(ix >= -1022) + hx = 0x00100000|(0x000fffff&hx); + else { /* subnormal x, shift x to normal */ + n = -1022-ix; + if(n<=31) { + hx = (hx<>(32-n)); + lx <<= n; + } else { + hx = lx<<(n-32); + lx = 0; + } + } + if(iy >= -1022) + hy = 0x00100000|(0x000fffff&hy); + else { /* subnormal y, shift y to normal */ + n = -1022-iy; + if(n<=31) { + hy = (hy<>(32-n)); + ly <<= n; + } else { + hy = ly<<(n-32); + ly = 0; + } + } + + /* fix point fmod */ + n = ix - iy; + while(n--) { + hz=hx-hy;lz=lx-ly; if(lx>31); lx = lx+lx;} + else { + if((hz|lz)==0) /* return sign(x)*0 */ + return Zero[(unsigned)sx>>31]; + hx = hz+hz+(lz>>31); lx = lz+lz; + } + } + hz=hx-hy;lz=lx-ly; if(lx=0) {hx=hz;lx=lz;} + + /* convert back to floating value and restore the sign */ + if((hx|lx)==0) /* return sign(x)*0 */ + return Zero[(unsigned)sx>>31]; + while(hx<0x00100000) { /* normalize x */ + hx = hx+hx+(lx>>31); lx = lx+lx; + iy -= 1; + } + if(iy>= -1022) { /* normalize output */ + hx = ((hx-0x00100000)|((iy+1023)<<20)); + __HI(x) = hx|sx; + __LO(x) = lx; + } else { /* subnormal output */ + n = -1022 - iy; + if(n<=20) { + lx = (lx>>n)|((unsigned)hx<<(32-n)); + hx >>= n; + } else if (n<=31) { + lx = (hx<<(32-n))|(lx>>n); hx = sx; + } else { + lx = hx>>(n-32); hx = sx; + } + __HI(x) = hx|sx; + __LO(x) = lx; + x *= one; /* create necessary signal */ + } + return x; /* exact output */ +} diff --git a/src/MSL_C.PPCEABI.bare.H/e_pow.c b/src/MSL_C.PPCEABI.bare.H/e_pow.c new file mode 100644 index 00000000..47b8f4e8 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/e_pow.c @@ -0,0 +1,308 @@ +/* @(#)e_pow.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_pow(x,y) return x**y + * + * n + * Method: Let x = 2 * (1+f) + * 1. Compute and return log2(x) in two pieces: + * log2(x) = w1 + w2, + * where w1 has 53-24 = 29 bit trailing zeros. + * 2. Perform y*log2(x) = n+y' by simulating muti-precision + * arithmetic, where |y'|<=0.5. + * 3. Return x**y = 2**n*exp(y'*log2) + * + * Special cases: + * 1. (anything) ** 0 is 1 + * 2. (anything) ** 1 is itself + * 3. (anything) ** NAN is NAN + * 4. NAN ** (anything except 0) is NAN + * 5. +-(|x| > 1) ** +INF is +INF + * 6. +-(|x| > 1) ** -INF is +0 + * 7. +-(|x| < 1) ** +INF is +0 + * 8. +-(|x| < 1) ** -INF is +INF + * 9. +-1 ** +-INF is NAN + * 10. +0 ** (+anything except 0, NAN) is +0 + * 11. -0 ** (+anything except 0, NAN, odd integer) is +0 + * 12. +0 ** (-anything except 0, NAN) is +INF + * 13. -0 ** (-anything except 0, NAN, odd integer) is +INF + * 14. -0 ** (odd integer) = -( +0 ** (odd integer) ) + * 15. +INF ** (+anything except 0,NAN) is +INF + * 16. +INF ** (-anything except 0,NAN) is +0 + * 17. -INF ** (anything) = -0 ** (-anything) + * 18. (-anything) ** (integer) is (-1)**(integer)*(+anything**integer) + * 19. (-anything except 0 and inf) ** (non-integer) is NAN + * + * Accuracy: + * pow(x,y) returns x**y nearly rounded. In particular + * pow(integer,integer) + * always returns the correct integer provided it is + * representable. + * + * Constants : + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/errno.h" +#include "math.h" + +#ifdef __STDC__ +static const double +#else +static double +#endif +bp[] = {1.0, 1.5,}, +dp_h[] = { 0.0, 5.84962487220764160156e-01,}, /* 0x3FE2B803, 0x40000000 */ +dp_l[] = { 0.0, 1.35003920212974897128e-08,}, /* 0x3E4CFDEB, 0x43CFD006 */ +zero = 0.0, +one = 1.0, +two = 2.0, +two53 = 9007199254740992.0, /* 0x43400000, 0x00000000 */ +huge = 1.0e300, +tiny = 1.0e-300, + /* poly coefs for (3/2)*(log(x)-2s-2/3*s**3 */ +L1 = 5.99999999999994648725e-01, /* 0x3FE33333, 0x33333303 */ +L2 = 4.28571428578550184252e-01, /* 0x3FDB6DB6, 0xDB6FABFF */ +L3 = 3.33333329818377432918e-01, /* 0x3FD55555, 0x518F264D */ +L4 = 2.72728123808534006489e-01, /* 0x3FD17460, 0xA91D4101 */ +L5 = 2.30660745775561754067e-01, /* 0x3FCD864A, 0x93C9DB65 */ +L6 = 2.06975017800338417784e-01, /* 0x3FCA7E28, 0x4A454EEF */ +P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */ +P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */ +P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */ +P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */ +P5 = 4.13813679705723846039e-08, /* 0x3E663769, 0x72BEA4D0 */ +lg2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */ +lg2_h = 6.93147182464599609375e-01, /* 0x3FE62E43, 0x00000000 */ +lg2_l = -1.90465429995776804525e-09, /* 0xBE205C61, 0x0CA86C39 */ +ovt = 8.0085662595372944372e-0017, /* -(1024-log2(ovfl+.5ulp)) */ +cp = 9.61796693925975554329e-01, /* 0x3FEEC709, 0xDC3A03FD =2/(3ln2) */ +cp_h = 9.61796700954437255859e-01, /* 0x3FEEC709, 0xE0000000 =(float)cp */ +cp_l = -7.02846165095275826516e-09, /* 0xBE3E2FE0, 0x145B01F5 =tail of cp_h*/ +ivln2 = 1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE =1/ln2 */ +ivln2_h = 1.44269502162933349609e+00, /* 0x3FF71547, 0x60000000 =24b 1/ln2*/ +ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/ + +#ifdef __STDC__ + double __ieee754_pow(double x, double y) +#else + double __ieee754_pow(x,y) + double x, y; +#endif +{ + double z,ax,z_h,z_l,p_h,p_l; + double y1,t1,t2,r,s,t,u,v,w; + int i,j,k,yisint,n; + int hx,hy,ix,iy; + unsigned lx,ly; + + hx = __HI(x); lx = __LO(x); + hy = __HI(y); ly = __LO(y); + ix = hx&0x7fffffff; iy = hy&0x7fffffff; + + /* y==zero: x**0 = 1 */ + if((iy|ly)==0) return one; + + /* +-NaN return x+y */ + if(ix > 0x7ff00000 || ((ix==0x7ff00000)&&(lx!=0)) || + iy > 0x7ff00000 || ((iy==0x7ff00000)&&(ly!=0))) + return x+y; + + /* determine if y is an odd int when x < 0 + * yisint = 0 ... y is not an integer + * yisint = 1 ... y is an odd int + * yisint = 2 ... y is an even int + */ + yisint = 0; + if(hx<0) { + if(iy>=0x43400000) yisint = 2; /* even integer y */ + else if(iy>=0x3ff00000) { + k = (iy>>20)-0x3ff; /* exponent */ + if(k>20) { + j = ly>>(52-k); + if((j<<(52-k))==ly) yisint = 2-(j&1); + } else if(ly==0) { + j = iy>>(20-k); + if((j<<(20-k))==iy) yisint = 2-(j&1); + } + } + } + + /* special value of y */ + if(ly==0) { + if (iy==0x7ff00000) { /* y is +-inf */ + if(((ix-0x3ff00000)|lx)==0) + return y - y; /* inf**+-1 is NaN */ + else if (ix >= 0x3ff00000)/* (|x|>1)**+-inf = inf,0 */ + return (hy>=0)? y: zero; + else /* (|x|<1)**-,+inf = inf,0 */ + return (hy<0)?-y: zero; + } + if(iy==0x3ff00000) { /* y is +-1 */ + if(hy<0) return one/x; else return x; + } + if(hy==0x40000000) return x*x; /* y is 2 */ + if(hy==0x3fe00000) { /* y is 0.5 */ + if(hx>=0) /* x >= +0 */ + return sqrt(x); + } + } + + ax = fabs(x); + /* special value of x */ + if(lx==0) { + if(ix==0x7ff00000||ix==0||ix==0x3ff00000){ + z = ax; /*x is +-0,+-inf,+-1*/ + if(hy<0) z = one/z; /* z = (1/|x|) */ + if(hx<0) { + if(((ix-0x3ff00000)|yisint)==0) { + z = (z-z)/(z-z); /* (-1)**non-int is NaN */ + } else if(yisint==1) + z = -z; /* (x<0)**odd = -(|x|**odd) */ + } + return z; + } + } + + /* (x<0)**(non-int) is NaN */ + if((((hx>>31)+1)|yisint)==0) { + errno = 0x21; + return NAN; + } + + /* |y| is huge */ + if(iy>0x41e00000) { /* if |y| > 2**31 */ + if(iy>0x43f00000){ /* if |y| > 2**64, must o/uflow */ + if(ix<=0x3fefffff) return (hy<0)? huge*huge:tiny*tiny; + if(ix>=0x3ff00000) return (hy>0)? huge*huge:tiny*tiny; + } + /* over/underflow if x is not close to one */ + if(ix<0x3fefffff) return (hy<0)? huge*huge:tiny*tiny; + if(ix>0x3ff00000) return (hy>0)? huge*huge:tiny*tiny; + /* now |1-x| is tiny <= 2**-20, suffice to compute + log(x) by x-x^2/2+x^3/3-x^4/4 */ + t = x-1; /* t has 20 trailing zeros */ + w = (t*t)*(0.5-t*(0.3333333333333333333333-t*0.25)); + u = ivln2_h*t; /* ivln2_h has 21 sig. bits */ + v = t*ivln2_l-w*ivln2; + t1 = u+v; + __LO(t1) = 0; + t2 = v-(t1-u); + } else { + double s2,s_h,s_l,t_h,t_l; + n = 0; + /* take care subnormal number */ + if(ix<0x00100000) + {ax *= two53; n -= 53; ix = __HI(ax); } + n += ((ix)>>20)-0x3ff; + j = ix&0x000fffff; + /* determine interval */ + ix = j|0x3ff00000; /* normalize ix */ + if(j<=0x3988E) k=0; /* |x|>1)|0x20000000)+0x00080000+(k<<18); + t_l = ax - (t_h-bp[k]); + s_l = v*((u-s_h*t_h)-s_h*t_l); + /* compute log(ax) */ + s2 = s*s; + r = s2*s2*(L1+s2*(L2+s2*(L3+s2*(L4+s2*(L5+s2*L6))))); + r += s_l*(s_h+s); + s2 = s_h*s_h; + t_h = 3.0+s2+r; + __LO(t_h) = 0; + t_l = r-((t_h-3.0)-s2); + /* u+v = s*(1+...) */ + u = s_h*t_h; + v = s_l*t_h+t_l*s; + /* 2/(3log2)*(s+...) */ + p_h = u+v; + __LO(p_h) = 0; + p_l = v-(p_h-u); + z_h = cp_h*p_h; /* cp_h+cp_l = 2/(3*log2) */ + z_l = cp_l*p_h+p_l*cp+dp_l[k]; + /* log2(ax) = (s+..)*2/(3*log2) = n + dp_h + z_h + z_l */ + t = (double)n; + t1 = (((z_h+z_l)+dp_h[k])+t); + __LO(t1) = 0; + t2 = z_l-(((t1-t)-dp_h[k])-z_h); + } + + s = one; /* s (sign of result -ve**odd) = -1 else = 1 */ + if((((hx>>31)+1)|(yisint-1))==0) s = -one;/* (-ve)**(odd int) */ + + /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */ + y1 = y; + __LO(y1) = 0; + p_l = (y-y1)*t1+y*t2; + p_h = y1*t1; + z = p_l+p_h; + j = __HI(z); + i = __LO(z); + if (j>=0x40900000) { /* z >= 1024 */ + if(((j-0x40900000)|i)!=0) /* if z > 1024 */ + return s*huge*huge; /* overflow */ + else { + if(p_l+ovt>z-p_h) return s*huge*huge; /* overflow */ + } + } else if((j&0x7fffffff)>=0x4090cc00 ) { /* z <= -1075 */ + if(((j-0xc090cc00)|i)!=0) /* z < -1075 */ + return s*tiny*tiny; /* underflow */ + else { + if(p_l<=z-p_h) return s*tiny*tiny; /* underflow */ + } + } + /* + * compute 2**(p_h+p_l) + */ + i = j&0x7fffffff; + k = (i>>20)-0x3ff; + n = 0; + if(i>0x3fe00000) { /* if |z| > 0.5, set n = [z+0.5] */ + n = j+(0x00100000>>(k+1)); + k = ((n&0x7fffffff)>>20)-0x3ff; /* new k for n */ + t = zero; + __HI(t) = (n&~(0x000fffff>>k)); + n = ((n&0x000fffff)|0x00100000)>>(20-k); + if(j<0) n = -n; + p_h -= t; + } + t = p_l+p_h; + __LO(t) = 0; + u = t*lg2_h; + v = (p_l-(t-p_h))*lg2+t*lg2_l; + z = u+v; + w = v-(z-u); + t = z*z; + t1 = z - t*(P1+t*(P2+t*(P3+t*(P4+t*P5)))); + r = (z*t1)/(t1-two)-(w+z*w); + z = one-(r-z); + j = __HI(z); + j += (n<<20); + if((j>>20)<=0) z = scalbn(z,n); /* subnormal output */ + else __HI(z) += (n<<20); + return s*z; +} diff --git a/src/MSL_C.PPCEABI.bare.H/math_ppc.c b/src/MSL_C.PPCEABI.bare.H/math_ppc.c new file mode 100644 index 00000000..100dbfa0 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/math_ppc.c @@ -0,0 +1,25 @@ +extern double tan(double); +extern double sin(double); +extern double cos(double); +extern double atan2(double); +extern double acos(double); + +float acosf(float arg0) { + return (float) acos(arg0); +} + +float atan2f(float arg0) { + return (float) atan2(arg0); +} + +float cosf(float arg0) { + return (float) cos(arg0); +} + +float sinf(float arg0) { + return (float) sin(arg0); +} + +float tanf(float arg0) { + return (float) tan(arg0); +} From d6da17b6041e23030edc83aaa36dfe9c87f7f540 Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Fri, 24 Jan 2025 10:48:59 -0500 Subject: [PATCH 271/311] Big MSL_C update (#546) * match acos, asin, fmod, and math_ppc * match many files in MSL_C math_ppc, s_copysign, s_cos, s_modf, s_sin, s_tan, w_acos, w_asin, w_fmod, w_pow --- .vscode/settings.json | 4 +- configure.py | 18 ++--- .../Msl/MSL_C/MSL_Common/math_ppc.h | 5 ++ src/MSL_C.PPCEABI.bare.H/math_ppc.c | 7 +- src/MSL_C.PPCEABI.bare.H/s_copysign.c | 30 +++++++ src/MSL_C.PPCEABI.bare.H/s_cos.c | 78 ++++++++++++++++++ src/MSL_C.PPCEABI.bare.H/s_ldexp.c | 27 +++++++ src/MSL_C.PPCEABI.bare.H/s_modf.c | 80 +++++++++++++++++++ src/MSL_C.PPCEABI.bare.H/s_sin.c | 78 ++++++++++++++++++ src/MSL_C.PPCEABI.bare.H/s_tan.c | 72 +++++++++++++++++ src/MSL_C.PPCEABI.bare.H/w_acos.c | 38 +++++++++ src/MSL_C.PPCEABI.bare.H/w_asin.c | 38 +++++++++ src/MSL_C.PPCEABI.bare.H/w_fmod.c | 37 +++++++++ src/MSL_C.PPCEABI.bare.H/w_pow.c | 60 ++++++++++++++ 14 files changed, 556 insertions(+), 16 deletions(-) create mode 100644 include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math_ppc.h create mode 100644 src/MSL_C.PPCEABI.bare.H/s_copysign.c create mode 100644 src/MSL_C.PPCEABI.bare.H/s_cos.c create mode 100644 src/MSL_C.PPCEABI.bare.H/s_ldexp.c create mode 100644 src/MSL_C.PPCEABI.bare.H/s_modf.c create mode 100644 src/MSL_C.PPCEABI.bare.H/s_sin.c create mode 100644 src/MSL_C.PPCEABI.bare.H/s_tan.c create mode 100644 src/MSL_C.PPCEABI.bare.H/w_acos.c create mode 100644 src/MSL_C.PPCEABI.bare.H/w_asin.c create mode 100644 src/MSL_C.PPCEABI.bare.H/w_fmod.c create mode 100644 src/MSL_C.PPCEABI.bare.H/w_pow.c diff --git a/.vscode/settings.json b/.vscode/settings.json index f41b8dff..3322a6d7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -58,7 +58,9 @@ "__mem.h": "c", "fdlibm.h": "c", "float.h": "c", - "corecrt_math_defines.h": "c" + "corecrt_math_defines.h": "c", + "math_ppc.h": "c", + "errno.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { diff --git a/configure.py b/configure.py index ce80b976..62f50acb 100644 --- a/configure.py +++ b/configure.py @@ -712,19 +712,19 @@ config.libs = [ Object(NonMatching, "MSL_C.PPCEABI.bare.H/k_sin.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/k_tan.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_atan.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_copysign.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_cos.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_copysign.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_cos.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_floor.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_frexp.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_ldexp.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_modf.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_sin.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_tan.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_acos.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_asin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_modf.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_sin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_tan.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/w_acos.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/w_asin.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/w_atan2.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_fmod.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/w_pow.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/w_fmod.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/w_pow.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/math_ppc.c"), ], }, diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math_ppc.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math_ppc.h new file mode 100644 index 00000000..325c4527 --- /dev/null +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math_ppc.h @@ -0,0 +1,5 @@ +double acos(double x); +double tan(double); +double sin(double); +double cos(double); +double atan2(double); diff --git a/src/MSL_C.PPCEABI.bare.H/math_ppc.c b/src/MSL_C.PPCEABI.bare.H/math_ppc.c index 100dbfa0..ab157318 100644 --- a/src/MSL_C.PPCEABI.bare.H/math_ppc.c +++ b/src/MSL_C.PPCEABI.bare.H/math_ppc.c @@ -1,9 +1,4 @@ -extern double tan(double); -extern double sin(double); -extern double cos(double); -extern double atan2(double); -extern double acos(double); - +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math_ppc.h" float acosf(float arg0) { return (float) acos(arg0); } diff --git a/src/MSL_C.PPCEABI.bare.H/s_copysign.c b/src/MSL_C.PPCEABI.bare.H/s_copysign.c new file mode 100644 index 00000000..d3313078 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/s_copysign.c @@ -0,0 +1,30 @@ +/* @(#)s_copysign.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * copysign(double x, double y) + * copysign(x,y) returns a value with the magnitude of x and + * with the sign bit of y. + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ + double copysign(double x, double y) +#else + double copysign(x,y) + double x,y; +#endif +{ + __HI(x) = (__HI(x)&0x7fffffff)|(__HI(y)&0x80000000); + return x; +} diff --git a/src/MSL_C.PPCEABI.bare.H/s_cos.c b/src/MSL_C.PPCEABI.bare.H/s_cos.c new file mode 100644 index 00000000..0ceb1875 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/s_cos.c @@ -0,0 +1,78 @@ + +/* @(#)s_cos.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* cos(x) + * Return cosine function of x. + * + * kernel function: + * __kernel_sin ... sine function on [-pi/4,pi/4] + * __kernel_cos ... cosine function on [-pi/4,pi/4] + * __ieee754_rem_pio2 ... argument reduction routine + * + * Method. + * Let S,C and T denote the sin, cos and tan respectively on + * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 + * in [-pi/4 , +pi/4], and let n = k mod 4. + * We have + * + * n sin(x) cos(x) tan(x) + * ---------------------------------------------------------- + * 0 S C T + * 1 C -S -1/T + * 2 -S -C T + * 3 -C S -1/T + * ---------------------------------------------------------- + * + * Special cases: + * Let trig be any of sin, cos, or tan. + * trig(+-INF) is NaN, with signals; + * trig(NaN) is that NaN; + * + * Accuracy: + * TRIG(x) returns trig(x) nearly rounded + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ + double cos(double x) +#else + double cos(x) + double x; +#endif +{ + double y[2],z=0.0; + int n, ix; + + /* High word of x. */ + ix = __HI(x); + + /* |x| ~< pi/4 */ + ix &= 0x7fffffff; + if(ix <= 0x3fe921fb) return __kernel_cos(x,z); + + /* cos(Inf or NaN) is NaN */ + else if (ix>=0x7ff00000) return x-x; + + /* argument reduction needed */ + else { + n = __ieee754_rem_pio2(x,y); + switch(n&3) { + case 0: return __kernel_cos(y[0],y[1]); + case 1: return -__kernel_sin(y[0],y[1],1); + case 2: return -__kernel_cos(y[0],y[1]); + default: + return __kernel_sin(y[0],y[1],1); + } + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/s_ldexp.c b/src/MSL_C.PPCEABI.bare.H/s_ldexp.c new file mode 100644 index 00000000..c43f64fb --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/s_ldexp.c @@ -0,0 +1,27 @@ +/* @(#)s_ldexp.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/errno.h" + +#ifdef __STDC__ + double ldexp(double value, int exp) +#else + double ldexp(value, exp) + double value; int exp; +#endif +{ + if(!finite(value)||value==0.0) return value; + value = scalbn(value,exp); + if(!finite(value)||value==0.0) errno = ERANGE; + return value; +} diff --git a/src/MSL_C.PPCEABI.bare.H/s_modf.c b/src/MSL_C.PPCEABI.bare.H/s_modf.c new file mode 100644 index 00000000..8c957d21 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/s_modf.c @@ -0,0 +1,80 @@ + +/* @(#)s_modf.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * modf(double x, double *iptr) + * return fraction part of x, and return x's integral part in *iptr. + * Method: + * Bit twiddling. + * + * Exception: + * No exception. + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const double one = 1.0; +#else +static double one = 1.0; +#endif + +#ifdef __STDC__ + double modf(double x, double *iptr) +#else + double modf(x, iptr) + double x,*iptr; +#endif +{ + int i0,i1,j0; + unsigned i; + i0 = __HI(x); /* high x */ + i1 = __LO(x); /* low x */ + j0 = ((i0>>20)&0x7ff)-0x3ff; /* exponent of x */ + if(j0<20) { /* integer part in high x */ + if(j0<0) { /* |x|<1 */ + __HIp(iptr) = i0&0x80000000; + __LOp(iptr) = 0; /* *iptr = +-0 */ + return x; + } else { + i = (0x000fffff)>>j0; + if(((i0&i)|i1)==0) { /* x is integral */ + *iptr = x; + __HI(x) &= 0x80000000; + __LO(x) = 0; /* return +-0 */ + return x; + } else { + __HIp(iptr) = i0&(~i); + __LOp(iptr) = 0; + return x - *iptr; + } + } + } else if (j0>51) { /* no fraction part */ + *iptr = x*one; + __HI(x) &= 0x80000000; + __LO(x) = 0; /* return +-0 */ + return x; + } else { /* fraction part in low x */ + i = ((unsigned)(0xffffffff))>>(j0-20); + if((i1&i)==0) { /* x is integral */ + *iptr = x; + __HI(x) &= 0x80000000; + __LO(x) = 0; /* return +-0 */ + return x; + } else { + __HIp(iptr) = i0; + __LOp(iptr) = i1&(~i); + return x - *iptr; + } + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/s_sin.c b/src/MSL_C.PPCEABI.bare.H/s_sin.c new file mode 100644 index 00000000..5f09b616 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/s_sin.c @@ -0,0 +1,78 @@ + +/* @(#)s_sin.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* sin(x) + * Return sine function of x. + * + * kernel function: + * __kernel_sin ... sine function on [-pi/4,pi/4] + * __kernel_cos ... cose function on [-pi/4,pi/4] + * __ieee754_rem_pio2 ... argument reduction routine + * + * Method. + * Let S,C and T denote the sin, cos and tan respectively on + * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 + * in [-pi/4 , +pi/4], and let n = k mod 4. + * We have + * + * n sin(x) cos(x) tan(x) + * ---------------------------------------------------------- + * 0 S C T + * 1 C -S -1/T + * 2 -S -C T + * 3 -C S -1/T + * ---------------------------------------------------------- + * + * Special cases: + * Let trig be any of sin, cos, or tan. + * trig(+-INF) is NaN, with signals; + * trig(NaN) is that NaN; + * + * Accuracy: + * TRIG(x) returns trig(x) nearly rounded + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ + double sin(double x) +#else + double sin(x) + double x; +#endif +{ + double y[2],z=0.0; + int n, ix; + + /* High word of x. */ + ix = __HI(x); + + /* |x| ~< pi/4 */ + ix &= 0x7fffffff; + if(ix <= 0x3fe921fb) return __kernel_sin(x,z,0); + + /* sin(Inf or NaN) is NaN */ + else if (ix>=0x7ff00000) return x-x; + + /* argument reduction needed */ + else { + n = __ieee754_rem_pio2(x,y); + switch(n&3) { + case 0: return __kernel_sin(y[0],y[1],1); + case 1: return __kernel_cos(y[0],y[1]); + case 2: return -__kernel_sin(y[0],y[1],1); + default: + return -__kernel_cos(y[0],y[1]); + } + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/s_tan.c b/src/MSL_C.PPCEABI.bare.H/s_tan.c new file mode 100644 index 00000000..8a0b9292 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/s_tan.c @@ -0,0 +1,72 @@ + +/* @(#)s_tan.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* tan(x) + * Return tangent function of x. + * + * kernel function: + * __kernel_tan ... tangent function on [-pi/4,pi/4] + * __ieee754_rem_pio2 ... argument reduction routine + * + * Method. + * Let S,C and T denote the sin, cos and tan respectively on + * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 + * in [-pi/4 , +pi/4], and let n = k mod 4. + * We have + * + * n sin(x) cos(x) tan(x) + * ---------------------------------------------------------- + * 0 S C T + * 1 C -S -1/T + * 2 -S -C T + * 3 -C S -1/T + * ---------------------------------------------------------- + * + * Special cases: + * Let trig be any of sin, cos, or tan. + * trig(+-INF) is NaN, with signals; + * trig(NaN) is that NaN; + * + * Accuracy: + * TRIG(x) returns trig(x) nearly rounded + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ + double tan(double x) +#else + double tan(x) + double x; +#endif +{ + double y[2],z=0.0; + int n, ix; + + /* High word of x. */ + ix = __HI(x); + + /* |x| ~< pi/4 */ + ix &= 0x7fffffff; + if(ix <= 0x3fe921fb) return __kernel_tan(x,z,1); + + /* tan(Inf or NaN) is NaN */ + else if (ix>=0x7ff00000) return x-x; /* NaN */ + + /* argument reduction needed */ + else { + n = __ieee754_rem_pio2(x,y); + return __kernel_tan(y[0],y[1],1-((n&1)<<1)); /* 1 -- n even + -1 -- n odd */ + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/w_acos.c b/src/MSL_C.PPCEABI.bare.H/w_acos.c new file mode 100644 index 00000000..dfc4c031 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/w_acos.c @@ -0,0 +1,38 @@ + +/* @(#)w_acos.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrap_acos(x) + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ + double acos(double x) /* wrapper acos */ +#else + double acos(x) /* wrapper acos */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_acos(x); +#else + double z; + z = __ieee754_acos(x); + if(_LIB_VERSION == _IEEE_ || isnan(x)) return z; + if(fabs(x)>1.0) { + return __kernel_standard(x,x,1); /* acos(|x|>1) */ + } else + return z; +#endif +} diff --git a/src/MSL_C.PPCEABI.bare.H/w_asin.c b/src/MSL_C.PPCEABI.bare.H/w_asin.c new file mode 100644 index 00000000..d21c6ce6 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/w_asin.c @@ -0,0 +1,38 @@ +/* @(#)w_asin.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* + * wrapper asin(x) + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ + double asin(double x) /* wrapper asin */ +#else + double asin(x) /* wrapper asin */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_asin(x); +#else + double z; + z = __ieee754_asin(x); + if(_LIB_VERSION == _IEEE_ || isnan(x)) return z; + if(fabs(x)>1.0) { + return __kernel_standard(x,x,2); /* asin(|x|>1) */ + } else + return z; +#endif +} diff --git a/src/MSL_C.PPCEABI.bare.H/w_fmod.c b/src/MSL_C.PPCEABI.bare.H/w_fmod.c new file mode 100644 index 00000000..57c5cc16 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/w_fmod.c @@ -0,0 +1,37 @@ +/* @(#)w_fmod.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper fmod(x,y) + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ + double fmod(double x, double y) /* wrapper fmod */ +#else + double fmod(x,y) /* wrapper fmod */ + double x,y; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_fmod(x,y); +#else + double z; + z = __ieee754_fmod(x,y); + if(_LIB_VERSION == _IEEE_ ||isnan(y)||isnan(x)) return z; + if(y==0.0) { + return __kernel_standard(x,y,27); /* fmod(x,0) */ + } else + return z; +#endif +} diff --git a/src/MSL_C.PPCEABI.bare.H/w_pow.c b/src/MSL_C.PPCEABI.bare.H/w_pow.c new file mode 100644 index 00000000..99c8e3b9 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/w_pow.c @@ -0,0 +1,60 @@ + + +/* @(#)w_pow.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper pow(x,y) return x**y + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + + +#ifdef __STDC__ + double pow(double x, double y) /* wrapper pow */ +#else + double pow(x,y) /* wrapper pow */ + double x,y; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_pow(x,y); +#else + double z; + z=__ieee754_pow(x,y); + if(_LIB_VERSION == _IEEE_|| isnan(y)) return z; + if(isnan(x)) { + if(y==0.0) + return __kernel_standard(x,y,42); /* pow(NaN,0.0) */ + else + return z; + } + if(x==0.0){ + if(y==0.0) + return __kernel_standard(x,y,20); /* pow(0.0,0.0) */ + if(finite(y)&&y<0.0) + return __kernel_standard(x,y,23); /* pow(0.0,negative) */ + return z; + } + if(!finite(z)) { + if(finite(x)&&finite(y)) { + if(isnan(z)) + return __kernel_standard(x,y,24); /* pow neg**non-int */ + else + return __kernel_standard(x,y,21); /* pow overflow */ + } + } + if(z==0.0&&finite(x)&&finite(y)) + return __kernel_standard(x,y,22); /* pow underflow */ + return z; +#endif +} From 2ab9cd144e1e78419303952a574a56b8f27d42da Mon Sep 17 00:00:00 2001 From: CreateSource Date: Fri, 24 Jan 2025 15:58:42 -0500 Subject: [PATCH 272/311] match m427/main --- include/REL/m427Dll.h | 12 + src/REL/m427Dll/main.c | 958 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 970 insertions(+) create mode 100644 include/REL/m427Dll.h create mode 100644 src/REL/m427Dll/main.c diff --git a/include/REL/m427Dll.h b/include/REL/m427Dll.h new file mode 100644 index 00000000..fe879974 --- /dev/null +++ b/include/REL/m427Dll.h @@ -0,0 +1,12 @@ +#include "dolphin.h" +#include "game/object.h" + +void fn_1_32F4(Process*); +void fn_1_3A88(void); +void fn_1_E98C(Process*); +void fn_1_EC54(void); +void fn_1_110E8(s32, s32*); +void fn_1_111C0(s32, s32*); +void fn_1_11298(f32); +s32 fn_1_113F0(s32); +f32 fn_1_168FC(f32, f32, f32); diff --git a/src/REL/m427Dll/main.c b/src/REL/m427Dll/main.c new file mode 100644 index 00000000..84bcb03b --- /dev/null +++ b/src/REL/m427Dll/main.c @@ -0,0 +1,958 @@ +#include "REL/m427Dll.h" + +#include "ext_math.h" +#include "game/audio.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfformat.h" +#include "game/hsfman.h" +#include "game/minigame_seq.h" +#include "game/objsub.h" +#include "game/wipe.h" + +typedef struct M427DllStruct { + s32 unk0; + s32 unk4; +} M427DllStruct; + +typedef struct M427DllStruct2 { + s32 unk0[3]; + s32 unkC; + s32 unk10; + s32 unk14[7]; + s32 unk30[7]; + HsfVector2f unk4C[7]; + f32 unk84; + f32 unk88; + s32 unk8C; + f32 unk90; + f32 unk94; + f32 unk98; + s32 unk9C; + s32 unkA0; +} M427DllStruct2; // sizeof 0xA4 + +typedef struct M427DllStruct3 { + Vec rot; + Vec cen; + f32 zoom; +} M427DllStruct3; + +Process* lbl_1_bss_8C; +omObjData* lbl_1_bss_88; +s32 lbl_1_bss_84; +s32 lbl_1_bss_80; +s32 lbl_1_bss_7C; +s32 lbl_1_bss_78; +s32 lbl_1_bss_74; +f32 lbl_1_bss_6C[2]; +s32 lbl_1_bss_68; +s32 lbl_1_bss_64; +s32 lbl_1_bss_60; +s32 lbl_1_bss_5C; +s32 lbl_1_bss_58; +s32 lbl_1_bss_54; +s32 lbl_1_bss_50; +s32 lbl_1_bss_4C; +omObjData* lbl_1_bss_48; +s32 lbl_1_bss_44; +M427DllStruct2* lbl_1_bss_40; +M427DllStruct lbl_1_bss_0[8]; + +void fn_1_29C(omObjData*); +void fn_1_300(omObjData*); +void fn_1_1664(omObjData*); +void fn_1_16C4(omObjData*); +void fn_1_1864(s32); +void fn_1_1954(void); +void fn_1_1F34(void); +void fn_1_2188(void); +void fn_1_21E8(s32, s32); +void fn_1_232C(s32); +void fn_1_2518(s32); +void fn_1_2704(void); +void fn_1_272C(void); +void fn_1_2790(void); +void fn_1_2B20(omObjData* object); +void fn_1_2B28(void); +void fn_1_2CE8(f32); +void fn_1_2EE0(void); +void fn_1_2F6C(f32); +void fn_1_3164(void); + +M427DllStruct3 lbl_1_data_0[4] = { + { + { -25.0f, 0.0f, 0.0f }, + { 0.0f, 275.0f, 0.0f }, + 1975.0f + }, + { + { 4.0f, 167.0f, 0.0f }, + { 57.0f, 475.0f, 198.0f }, + 3375.0f + }, + { + { -0.0f, -190.0f, 0.0f }, + { -90.0f, 50.0f, 800.0f }, + 1700.0f + }, + { + { 2.0f, 170.0f, 0.0f }, + { -400.0f, 175.0f, 127.0f }, + 2425.0f + } +}; + +void ObjectSetup(void) { + Process* var_r30; + s32 var_r31; + + OSReport("******* M426ObjectSetup *********\n"); + var_r30 = omInitObjMan(0x32, 0x2000); + lbl_1_bss_8C = var_r30; + omGameSysInit(var_r30); + fn_1_2790(); + Hu3DLightAllKill(); + Hu3DLighInit(); + HuAudSndGrpSet(0x34); + lbl_1_bss_88 = omAddObjEx(var_r30, 0xFF, 2, 0, -1, fn_1_29C); + lbl_1_bss_84 = 0; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + lbl_1_bss_78 = lbl_1_bss_74 = GWMGRecordGet(2); + if (lbl_1_bss_78 <= 0) { + lbl_1_bss_78 = lbl_1_bss_74 = 0xE10; + } + + lbl_1_bss_68 = lbl_1_bss_64 = 0; + + lbl_1_bss_60 = lbl_1_bss_5C = -1; + lbl_1_bss_58 = -1; + lbl_1_bss_54 = lbl_1_bss_50 = -1; + + for (var_r31 = 0; var_r31 < 2; var_r31++) { + lbl_1_bss_6C[var_r31] = 0.0f; + } + + for (var_r31 = 0; var_r31 < 8; var_r31++) { + lbl_1_bss_0[var_r31].unk0 = -1; + lbl_1_bss_0[var_r31].unk4 = 0; + } +} + +void fn_1_29C(omObjData* arg0) { + fn_1_32F4(lbl_1_bss_8C); + fn_1_E98C(lbl_1_bss_8C); + fn_1_1954(); + fn_1_21E8(0, 1); + arg0->func = fn_1_300; +} + +void fn_1_300(omObjData* arg0) { + s32 sp10[2]; + s32 sp8[2]; + f32 var_f31; + f32 var_f30; + s32 var_r31; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r26; + + switch (lbl_1_bss_84) { + case 0: + lbl_1_bss_80++; + if (lbl_1_bss_80 == 3) { + WipeCreate(1, 0, 0x3C); + lbl_1_bss_4C = 0; + fn_1_21E8(1, 1); + fn_1_2B28(); + } else if ((lbl_1_bss_80 > 3) && (WipeStatGet() == 0)) { + lbl_1_bss_54 = HuAudFXPlay(0x657); + lbl_1_bss_50 = HuAudFXPlay(0x651); + lbl_1_bss_84 = 1; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 1: + lbl_1_bss_80++; + var_f31 = lbl_1_bss_80 / 300.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + fn_1_11298(sind(90.0f * var_f31)); + if (++lbl_1_bss_7C >= 60.0f) { + lbl_1_bss_84 = 2; + lbl_1_bss_7C = 0; + } + break; + case 2: + lbl_1_bss_80++; + var_f31 = lbl_1_bss_80 / 300.0f; + if (var_f31 > 1.0f) { + var_f31 = 1.0f; + } + fn_1_11298(sind(90.0f * var_f31)); + var_f30 = sind(90.0f * (lbl_1_bss_7C / 240.0f)); + fn_1_2CE8(var_f30 * var_f30); + if (++lbl_1_bss_7C >= 240.0f) { + lbl_1_bss_60 = MGSeqCreate(3, 0); + fn_1_2EE0(); + lbl_1_bss_84 = 3; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 3: + if (lbl_1_bss_60 != -1) { + var_r28 = MGSeqStatGet(lbl_1_bss_60); + if (((var_r28 & 0x10) != 0) && (lbl_1_bss_58 == -1)) { + lbl_1_bss_58 = HuAudSeqPlay(0x49); + } + } else { + var_r28 = 0; + } + if ((lbl_1_bss_60 == -1) || (var_r28 == 0)) { + lbl_1_bss_84 = 4; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 4: + lbl_1_bss_80++; + var_r30 = lbl_1_bss_80; + if (var_r30 > 0x4650) { + var_r30 = 0x4650; + } + + fn_1_2518(var_r30); + for (var_r31 = 0; var_r31 < 8; var_r31++) { + if (lbl_1_bss_0[var_r31].unk0 != -1) { + if (--lbl_1_bss_0[var_r31].unk4 <= 0) { + lbl_1_bss_0[var_r31].unk0 = -1; + lbl_1_bss_0[var_r31].unk4 = 0; + } + } + } + if (lbl_1_bss_80 == 0x3F48) { + lbl_1_bss_5C = MGSeqCreate(1, 0x708, -1, -1); + } + if (lbl_1_bss_5C != -1) { + var_r26 = (0x4650 - lbl_1_bss_80); + var_r30 = (var_r26 + 0x3A) / 60; + if (var_r30 < 0) { + var_r30 = 0; + } + MGSeqParamSet(lbl_1_bss_5C, 1, var_r30); + } + if (lbl_1_bss_68 != 0) { + if (lbl_1_bss_68 != 1 && lbl_1_bss_68 != 2) { + if (((s32)frand() & 1) != 0) { + lbl_1_bss_68 = 1; + } else { + lbl_1_bss_68 = 2; + } + } + if (lbl_1_bss_5C != -1) { + MGSeqParamSet(lbl_1_bss_5C, 2, -1); + } + lbl_1_bss_5C = -1; + lbl_1_bss_60 = MGSeqCreate(3, 1); + if (lbl_1_bss_58 != -1) { + HuAudSeqFadeOut(lbl_1_bss_58, 0x64); + } + + for (var_r31 = 0; var_r31 < 8; var_r31++) { + if ((lbl_1_bss_0[var_r31].unk0 != -1) && (lbl_1_bss_0[var_r31].unk4 > 0)) { + HuAudFXFadeOut(lbl_1_bss_0[var_r31].unk0, 0x64); + } + } + HuAudFXFadeOut(lbl_1_bss_54, 0x64); + HuAudFXFadeOut(lbl_1_bss_50, 0x64); + if ((lbl_1_bss_68 != 0) && (lbl_1_bss_80 < lbl_1_bss_78)) { + if (lbl_1_bss_68 == 1) { + var_r29 = 0; + } else { + var_r29 = 1; + } + if (fn_1_113F0(var_r29) == 0) { + lbl_1_bss_74 = lbl_1_bss_80; + } + } + if ((lbl_1_bss_68 != 0) && (lbl_1_bss_80 <= 0xA8C)) { + if (lbl_1_bss_68 == 1) { + var_r29 = 0; + } else { + var_r29 = 1; + } + if (fn_1_113F0(var_r29) == 0) { + GWGameStat.present[0x34] = 1; + } + } + lbl_1_bss_84 = 5; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } else { + if (lbl_1_bss_80 >= 0x4651) { + MGSeqParamSet(lbl_1_bss_5C, 1, 0); + MGSeqParamSet(lbl_1_bss_5C, 2, -1); + lbl_1_bss_5C = -1; + lbl_1_bss_60 = MGSeqCreate(3, 1); + if (lbl_1_bss_58 != -1) { + HuAudSeqFadeOut(lbl_1_bss_58, 0x64); + } + + for (var_r31 = 0; var_r31 < 8; var_r31++) { + if ((lbl_1_bss_0[var_r31].unk0 != -1) && (lbl_1_bss_0[var_r31].unk4 > 0)) { + HuAudFXFadeOut(lbl_1_bss_0[var_r31].unk0, 0x64); + } + } + HuAudFXFadeOut(lbl_1_bss_54, 0x64); + HuAudFXFadeOut(lbl_1_bss_50, 0x64); + lbl_1_bss_64 = 1; + lbl_1_bss_84 = 5; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + } + break; + case 5: + if (lbl_1_bss_68 != 0) { + WipeCreate(2, 0, 0x3C); + WipeColorSet(0xFF, 0xFF, 0xFF); + lbl_1_bss_4C = 1; + lbl_1_bss_84 = 6; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } else if ((lbl_1_bss_60 == -1) || (MGSeqStatGet(lbl_1_bss_60) == 0)) { + lbl_1_bss_84 = 0xA; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 6: + if ((WipeStatGet() == 0) && ((lbl_1_bss_60 == -1) || (MGSeqStatGet(lbl_1_bss_60) == 0))) { + lbl_1_bss_60 = -1; + fn_1_21E8(0, 0); + fn_1_3164(); + HuAudFXAllStop(); + HuAudFXPlay(0x65E); + lbl_1_bss_84 = 7; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 7: + if (++lbl_1_bss_80 > 5) { + WipeCreate(1, 0, 0x1E); + WipeColorSet(0xFF, 0xFF, 0xFF); + lbl_1_bss_4C = 0; + HuAudAUXVolSet(-1, -1); + fn_1_272C(); + lbl_1_bss_84 = 8; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 8: + if (WipeStatGet() == 0) { + lbl_1_bss_84 = 0xA; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 10: + if (lbl_1_bss_68 != 0) { + var_f31 = sind((90.0f * (lbl_1_bss_80 / 180.0f))); + if (var_f31 >= 1.0f) { + var_f31 = 1.0f; + } + fn_1_11298(var_f31); + if (lbl_1_bss_80 > 30.0f) { + var_f30 = lbl_1_bss_7C / 150.0f; + lbl_1_bss_7C++; + if (var_f30 >= 1.0f) { + var_f30 = 1.0f; + } + var_f30 = sind(90.0f * var_f30); + fn_1_2F6C(var_f30); + } + if (++lbl_1_bss_80 > 180.0f) { + if (lbl_1_bss_68 == 1) { + fn_1_110E8(0, sp10); + fn_1_111C0(0, sp8); + } else { + fn_1_110E8(1, sp10); + fn_1_111C0(1, sp8); + } + GWPlayerCoinWinAdd(sp8[0], 10); + GWPlayerCoinWinAdd(sp8[1], 10); + if (lbl_1_bss_74 < lbl_1_bss_78) { + lbl_1_bss_78 = lbl_1_bss_74; + fn_1_232C(lbl_1_bss_78); + GWMGRecordSet(2, lbl_1_bss_78); + fn_1_2704(); + lbl_1_bss_60 = MGSeqCreate(0xE, lbl_1_bss_78); + lbl_1_bss_7C = 0xB4; + lbl_1_bss_84 = 0xB; + lbl_1_bss_80 = 0; + } else { + lbl_1_bss_60 = MGSeqCreate(5, 3, sp10[0], sp10[1], -1, -1); + HuAudSStreamPlay(1); + lbl_1_bss_7C = 0xB4; + lbl_1_bss_84 = 0xC; + lbl_1_bss_80 = 0; + } + } + } else { + lbl_1_bss_60 = MGSeqCreate(3, 2); + HuAudSStreamPlay(4); + lbl_1_bss_7C = 0xB4; + lbl_1_bss_84 = 0xC; + lbl_1_bss_80 = 0; + } + break; + case 11: + if ((lbl_1_bss_60 == -1) || (MGSeqStatGet(lbl_1_bss_60) == 0)) { + if (lbl_1_bss_68 == 1) { + fn_1_110E8(0, sp10); + } else { + fn_1_110E8(1, sp10); + } + lbl_1_bss_60 = MGSeqCreate(5, 3, sp10[0], sp10[1], -1, -1); + HuAudSStreamPlay(1); + lbl_1_bss_7C = 0xB4; + lbl_1_bss_84 = 0xC; + lbl_1_bss_80 = 0; + } + break; + case 12: + if (++lbl_1_bss_80 >= 210.0f) { + WipeCreate(2, 0, 0x3C); + lbl_1_bss_4C = 1; + lbl_1_bss_84 = 0xD; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 13: + if (WipeStatGet() == 0) { + lbl_1_bss_84 = 0xE; + lbl_1_bss_80 = 0; + lbl_1_bss_7C = 0; + } + break; + case 14: + arg0->func = fn_1_1664; + break; + } + fn_1_1F34(); + fn_1_16C4(arg0); +} + +void fn_1_1664(omObjData* arg0) { + if (WipeStatGet() == 0) { + fn_1_EC54(); + fn_1_3A88(); + fn_1_2188(); + CharModelKill(-1); + HuDataDirClose(0x3A0000); + MGSeqKillAll(); + HuAudFadeOut(1); + omOvlReturnEx(1, 1); + } +} + +void fn_1_16C4(omObjData* arg0) { + s32 var_r30; + + var_r30 = 0; + if ((WipeStatGet() != 0) || (arg0->func == fn_1_1664)) { + return; + } + if (omSysExitReq != 0) { + var_r30 = 1; + } + if (var_r30 != 0) { + if ((s32) lbl_1_bss_4C == 0) { + WipeCreate(2, 0, 0x3C); + } + lbl_1_bss_4C = 1; + HuAudStreamFadeOut(0x1E); + arg0->func = fn_1_1664; + } +} + +s32 fn_1_1788(void) { + return lbl_1_bss_84; +} + +void fn_1_1798(s32 arg0, f32 arg8) { + + if (arg8 < 0.0f) { + arg8 = 0.0f; + } else if (arg8 > 1.0f) { + arg8 = 1.0f; + } + lbl_1_bss_6C[arg0] = arg8; + if (lbl_1_bss_6C[arg0] >= 1.0f) { + fn_1_1864(1 << arg0); + } +} + +void fn_1_1864(s32 arg0) { + lbl_1_bss_68 |= arg0; +} + +s32 fn_1_1884(void) { + if (lbl_1_bss_68 != 0) { + if (lbl_1_bss_68 != 1 && lbl_1_bss_68 != 2) { + if (((s32)frand() & 1) != 0) { + lbl_1_bss_68 = 1; + } else { + lbl_1_bss_68 = 2; + } + } + if (lbl_1_bss_68 == 1) { + return 0; + } else { + return 1; + } + } else { + if (lbl_1_bss_64 != 0) { + return 3; + } else { + return -1; + } + } +} + +s32 lbl_1_data_D0[2] = { 0x3A0029, 0x3A002A }; +s16 lbl_1_data_D8[2] = { -24, 24 }; +s16 lbl_1_data_DC[2] = { -10, 10 }; +s16 lbl_1_data_E0[2] = { 350, 96 }; + +void fn_1_1954(void) { + f32 temp_f28; + f32 temp_f29; + f32 var_f31; + f32 var_f30; + s32 var_r29; + s32 var_r31; + M427DllStruct2* var_r30; + + var_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, 0xA4, 0x10000000); + lbl_1_bss_40 = var_r30; + var_r30->unk9C = 0; + var_r30->unkA0 = 0; + var_r31 = espEntry(0x3A0028, 1, 0); + var_r30->unk0[0] = var_r31; + espPriSet(var_r31, 0xFF); + espDispOn(var_r31); + espDrawNoSet(var_r31, 0); + espAttrSet(var_r31, 1); + espBankSet(var_r31, 0); + espPosSet(var_r31, 288.0, 240.0); + + for (var_r29 = 0; var_r29 < 2; var_r29++) { + var_r31 = espEntry(lbl_1_data_D0[var_r29], 1, 0); + var_r30->unk0[var_r29 + 1] = var_r31; + espPriSet(var_r31, 0xC8); + espDispOn(var_r31); + espDrawNoSet(var_r31, 0); + espAttrSet(var_r31, 1); + espBankSet(var_r31, 0); + espPosSet(var_r31, 288.0f + lbl_1_data_D8[var_r29], 240.0); + } + + temp_f28 = 288.0f; + temp_f29 = 400.0f; + var_f31 = 288.0f; + var_f30 = temp_f29; + var_r31 = espEntry(0x3A002B, 1, 0); + var_r30->unkC = var_r31; + espPriSet(var_r31, 0xBE); + espDispOn(var_r31); + espDrawNoSet(var_r31, 0); + espAttrSet(var_r31, 1); + espBankSet(var_r31, 0); + espTPLvlSet(var_r31, 0.5); + espColorSet(var_r31, 0x80, 0x80, 0x80); + espScaleSet(var_r31, 1.25, 1.5); + espPosSet(var_r31, var_f31, var_f30); + var_f31 = 248.0f; + var_f30 = temp_f29 - 8.0f; + var_r31 = espEntry(0x610037, 1, 0); + var_r30->unk10 = var_r31; + espPriSet(var_r31, 0xBE); + espDispOn(var_r31); + espDrawNoSet(var_r31, 0); + espAttrSet(var_r31, 1); + espBankSet(var_r31, 0); + espScaleSet(var_r31, 1.0, 1.0); + espPosSet(var_r31, var_f31 - 18.0f, var_f30); + var_r30->unk84 = ((var_f31 - 18.0f) - temp_f28); + var_r30->unk88 = (var_f30 - temp_f29); + var_r30->unk8C = -1; + var_r30->unk98 = 1.0f; + var_r30->unk90 = temp_f28; + var_r30->unk94 = temp_f29; + var_f31 = 248.0f; + var_f30 = temp_f29 - 8.0f; + + for (var_r29 = 0; var_r29 < 7; var_r29++) { + var_r31 = espEntry(0x610030, 1, 0); + var_r30->unk14[var_r29] = var_r31; + espPriSet(var_r31, 0xB4); + espDispOn(var_r31); + espDrawNoSet(var_r31, 0); + espAttrSet(var_r31, 9); + espScaleSet(var_r31, 1.0, 1.0); + espPosSet(var_r31, var_f31, var_f30); + if (var_r29 == 1) { + espBankSet(var_r31, 10); + } else if (var_r29 == 4) { + espBankSet(var_r31, 11); + } else { + espBankSet(var_r31, 0); + } + var_r30->unk4C[var_r29].x = var_f31 - temp_f28; + var_r30->unk4C[var_r29].y = var_f30 - temp_f29; + var_f31 += 16.0f; + } + var_f31 = 248.0f; + var_f30 = 8.0f + temp_f29; + + for (var_r29 = 0; var_r29 < 7; var_r29++) { + var_r31 = espEntry(0x610031, 1, 0); + var_r30->unk30[var_r29] = var_r31; + espPriSet(var_r31, 0xB4); + espDispOn(var_r31); + espDrawNoSet(var_r31, 0); + espAttrSet(var_r31, 1); + espScaleSet(var_r31, 1.0, 1.0); + espPosSet(var_r31, var_f31, var_f30); + if (var_r29 == 1) { + espBankSet(var_r31, 10); + } else if (var_r29 == 4) { + espBankSet(var_r31, 11); + } else { + espBankSet(var_r31, 0); + } + var_f31 += 16.0f; + } + fn_1_232C(lbl_1_bss_78); + fn_1_2518(0); +} + +void fn_1_1F34(void) { + f32 var_f30; + f32 temp_f31; + s32 var_r29; + s32 var_r30; + M427DllStruct2* temp_r31; + + temp_r31 = lbl_1_bss_40; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r29 = temp_r31->unk0[var_r30 + 1]; + var_f30 = lbl_1_data_E0[0] + (lbl_1_bss_6C[var_r30] * (lbl_1_data_E0[1] - lbl_1_data_E0[0])); + espPosSet(var_r29, 288.0f + lbl_1_data_DC[var_r30], var_f30); + } + if (temp_r31->unk8C != -1) { + if (temp_r31->unk8C == 0) { + if ((temp_r31->unk98 += 0.02f) >= 1.2f) { + temp_r31->unk98 = 1.2f; + temp_r31->unk8C = 1; + } + } else { + if ((temp_r31->unk98 -= 0.04f) <= 1.0f) { + temp_r31->unk98 = 1.0f; + temp_r31->unk8C = 0; + } + } + temp_f31 = temp_r31->unk98; + + for (var_r30 = 0; var_r30 < 7; var_r30++) { + var_r29 = temp_r31->unk14[var_r30]; + espScaleSet(var_r29, temp_f31, temp_f31); + } + var_r29 = temp_r31->unk10; + espScaleSet(var_r29, temp_f31, temp_f31); + } +} + +void fn_1_2188(void) { + M427DllStruct2* temp_r31; + s32 var_r30; + + temp_r31 = lbl_1_bss_40; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + espKill(temp_r31->unk0[var_r30]); + } + espKill(temp_r31->unkC); +} + +void fn_1_21E8(s32 arg0, s32 arg1) { + M427DllStruct2* temp_r31; + s32 var_r30; + + temp_r31 = lbl_1_bss_40; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + if (arg0 == 0) { + espDispOff(temp_r31->unk0[var_r30]); + } else { + espDispOn(temp_r31->unk0[var_r30]); + } + } + if (arg1 != 0) { + if (arg0 == 0) { + espDispOff(temp_r31->unkC); + } else { + espDispOn(temp_r31->unkC); + } + if (arg0 == 0) { + espDispOff(temp_r31->unk10); + } else { + espDispOn(temp_r31->unk10); + } + + for (var_r30 = 0; var_r30 < 7; var_r30++) { + if (arg0 == 0) { + espDispOff(temp_r31->unk14[var_r30]); + } else { + espDispOn(temp_r31->unk14[var_r30]); + } + } + + for (var_r30 = 0; var_r30 < 7; var_r30++) { + if (arg0 == 0) { + espDispOff(temp_r31->unk30[var_r30]); + } else { + espDispOn(temp_r31->unk30[var_r30]); + } + } + } +} + +void fn_1_232C(s32 arg0) { + M427DllStruct2* temp_r29; + f32 temp_f0; + s32 var_r31; + + temp_r29 = lbl_1_bss_40; + temp_r29->unk9C = arg0; + var_r31 = arg0 / 3600; + arg0 -= var_r31 * 3600; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk14[0], var_r31); + var_r31 = (arg0 / 600); + arg0 -= var_r31 * 600; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk14[2], var_r31); + var_r31 = arg0 / 60; + arg0 -= var_r31 * 60; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk14[3], var_r31); + arg0 = 100.0f * (arg0 / 60.0f); + var_r31 = arg0 / 10; + arg0 -= var_r31 * 10; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk14[5], var_r31); + var_r31 = arg0; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk14[6], var_r31); +} + +void fn_1_2518(s32 arg0) { + M427DllStruct2* temp_r29; + f32 temp_f0; + s32 var_r31; + + temp_r29 = lbl_1_bss_40; + temp_r29->unkA0 = arg0; + var_r31 = arg0 / 3600; + arg0 -= var_r31 * 3600; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk30[0], var_r31); + var_r31 = (arg0 / 600); + arg0 -= var_r31 * 600; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk30[2], var_r31); + var_r31 = arg0 / 60; + arg0 -= var_r31 * 60; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk30[3], var_r31); + arg0 = 100.0f * (arg0 / 60.0f); + var_r31 = arg0 / 10; + arg0 -= var_r31 * 10; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk30[5], var_r31); + var_r31 = arg0; + if (var_r31 > 9) { + var_r31 = 9; + } else if (var_r31 < 0) { + var_r31 = 0; + } + espBankSet(temp_r29->unk30[6], var_r31); +} + +void fn_1_2704(void) { + M427DllStruct2* var_r31; + + var_r31 = lbl_1_bss_40; + var_r31->unk8C = 0; +} + +void fn_1_272C(void) { + M427DllStruct2* var_r31; + s32 temp_r30; + + var_r31 = lbl_1_bss_40; + temp_r30 = var_r31->unkC; + espTPLvlSet(temp_r30, 0.5); + espColorSet(temp_r30, 0, 0, 0); +} + +void fn_1_2790(void) { + omObjData* var_r30; + s32 var_r31; + + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, -1.0f, 300.0f, 50000.0f, 0.6f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x140, 0x1E0); + Hu3DCameraCreate(2); + Hu3DCameraPerspectiveSet(2, -1.0f, 300.0f, 50000.0f, 0.6f); + Hu3DCameraViewportSet(2, 320.0f, 0.0f, 320.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(2, 0x140, 0, 0x140, 0x1E0); + Hu3DCameraCreate(4); + Hu3DCameraPerspectiveSet(4, -1.0f, 100.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(4, 0.0f, 0.0f, 576.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(4, 0, 0, 0x280, 0x1E0); + var_r30 = lbl_1_bss_48 = omAddObjEx(lbl_1_bss_8C, 0x7FDA, 0, 0, -1, omOutViewMulti); + var_r30->work[0] = 3; + + for (var_r31 = 0; var_r31 < 3; var_r31++) { + CRotM[var_r31].x = lbl_1_data_0[0].rot.x; + CRotM[var_r31].y = lbl_1_data_0[0].rot.y; + CRotM[var_r31].z = lbl_1_data_0[0].rot.z; + CenterM[var_r31].x = lbl_1_data_0[0].cen.x; + CenterM[var_r31].y = lbl_1_data_0[0].cen.y; + CenterM[var_r31].z = lbl_1_data_0[0].cen.z; + CZoomM[var_r31] = lbl_1_data_0[0].zoom; + } + lbl_1_bss_44 = 0; + omAddObjEx(lbl_1_bss_8C, 0x3F, 0, 0, -1, fn_1_2B20); +} + +void fn_1_2B20(omObjData* object) {} + +void fn_1_2B24(void) {} + +void fn_1_2B28(void) { + s32 var_r31; + + Hu3DCameraPerspectiveSet(1, 45.0f, 300.0f, 50000.0f, 0.6f); + Hu3DCameraPerspectiveSet(2, 45.0f, 300.0f, 50000.0f, 0.6f); + Hu3DCameraPerspectiveSet(4, 45.0f, 100.0f, 50000.0f, 1.2f); + + for (var_r31 = 0; var_r31 < 2; var_r31++) { + CRotM[var_r31].x = lbl_1_data_0[2].rot.x; + CRotM[var_r31].y = lbl_1_data_0[2].rot.y; + CRotM[var_r31].z = lbl_1_data_0[2].rot.z; + CenterM[var_r31].x = lbl_1_data_0[2].cen.x; + CenterM[var_r31].y = lbl_1_data_0[2].cen.y; + CenterM[var_r31].z = lbl_1_data_0[2].cen.z; + CZoomM[var_r31] = lbl_1_data_0[2].zoom; + } +} + +void fn_1_2CE8(f32 arg0) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 2; var_r31++) { + CRotM[var_r31].x = fn_1_168FC(arg0, lbl_1_data_0[2].rot.x, lbl_1_data_0->rot.x); + CRotM[var_r31].y = fn_1_168FC(arg0, lbl_1_data_0[2].rot.y, lbl_1_data_0->rot.z); + CRotM[var_r31].z = fn_1_168FC(arg0, lbl_1_data_0[2].rot.z, lbl_1_data_0->rot.z); + CenterM[var_r31].x = lbl_1_data_0[2].cen.x + (arg0 * (lbl_1_data_0->cen.x - lbl_1_data_0[2].cen.x)); + CenterM[var_r31].y = lbl_1_data_0[2].cen.y + (arg0 * (lbl_1_data_0->cen.y - lbl_1_data_0[2].cen.y)); + CenterM[var_r31].z = lbl_1_data_0[2].cen.z + (arg0 * (lbl_1_data_0->cen.z - lbl_1_data_0[2].cen.z)); + CZoomM[var_r31] = lbl_1_data_0[2].zoom + (arg0 * (lbl_1_data_0->zoom - lbl_1_data_0[2].zoom)); + } +} + +void fn_1_2EE0(void) { + Hu3DCameraPerspectiveSet(1, 45.0f, 700.0f, 50000.0f, 0.6f); + Hu3DCameraPerspectiveSet(2, 45.0f, 700.0f, 50000.0f, 0.6f); +} + +void fn_1_2F6C(f32 arg0) { + s32 var_r31; + + for (var_r31 = 0; var_r31 < 2; var_r31++) { + CRotM[var_r31].x = fn_1_168FC(arg0, lbl_1_data_0[1].rot.x, lbl_1_data_0[3].rot.x); + CRotM[var_r31].y = fn_1_168FC(arg0, lbl_1_data_0[1].rot.y, lbl_1_data_0[3].rot.y); + CRotM[var_r31].z = fn_1_168FC(arg0, lbl_1_data_0[1].rot.z, lbl_1_data_0[3].rot.z); + CenterM[var_r31].x = lbl_1_data_0[1].cen.x + (arg0 * (lbl_1_data_0[3].cen.x - lbl_1_data_0[1].cen.x)); + CenterM[var_r31].y = lbl_1_data_0[1].cen.y + (arg0 * (lbl_1_data_0[3].cen.y - lbl_1_data_0[1].cen.y)); + CenterM[var_r31].z = lbl_1_data_0[1].cen.z + (arg0 * (lbl_1_data_0[3].cen.z - lbl_1_data_0[1].cen.z)); + CZoomM[var_r31] = lbl_1_data_0[1].zoom + (arg0 * (lbl_1_data_0[3].zoom - lbl_1_data_0[1].zoom)); + } +} + +void fn_1_3164(void) { + lbl_1_bss_48->work[0] = 1; + Hu3DCameraKill(2); + Hu3DCameraKill(4); + Hu3DCameraPerspectiveSet(1, 45.0f, 100.0f, 50000.0f, 1.2f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); + Hu3DCameraScissorSet(1, 0, 0, 0x280, 0x1E0); + CRotM->x = lbl_1_data_0[1].rot.x; + CRotM->y = lbl_1_data_0[1].rot.y; + CRotM->z = lbl_1_data_0[1].rot.z; + CenterM->x = lbl_1_data_0[1].cen.x; + CenterM->y = lbl_1_data_0[1].cen.y; + CenterM->z = lbl_1_data_0[1].cen.z; + *CZoomM = lbl_1_data_0[1].zoom; +} + +s32 fn_1_32EC(void) { + return 0; +} From b0662c272c84826aba814216d3a0ce7e3f71497c Mon Sep 17 00:00:00 2001 From: CreateSource Date: Fri, 24 Jan 2025 16:08:48 -0500 Subject: [PATCH 273/311] fix symbol scope --- config/GMPE01_00/rels/m427Dll/symbols.txt | 406 +++++++++++----------- configure.py | 2 +- 2 files changed, 204 insertions(+), 204 deletions(-) diff --git a/config/GMPE01_00/rels/m427Dll/symbols.txt b/config/GMPE01_00/rels/m427Dll/symbols.txt index a8b25f76..bc2a2d73 100644 --- a/config/GMPE01_00/rels/m427Dll/symbols.txt +++ b/config/GMPE01_00/rels/m427Dll/symbols.txt @@ -144,210 +144,210 @@ fn_1_172F0 = .text:0x000172F0; // type:function size:0x140 fn_1_17430 = .text:0x00017430; // type:function size:0xA4 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC data:2byte -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x3C data:4byte -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x6 data:2byte -lbl_1_rodata_136 = .rodata:0x00000136; // type:object size:0xC data:2byte -lbl_1_rodata_142 = .rodata:0x00000142; // type:object size:0x1A data:2byte -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x24 data:4byte -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x30 data:4byte -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x10 data:4byte -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0xC data:4byte -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0xC data:4byte -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x1 data:byte -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:byte -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:byte -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x2 data:byte -lbl_1_rodata_38A = .rodata:0x0000038A; // type:object size:0x2 data:byte -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:double -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x6 scope:local data:2byte +lbl_1_rodata_136 = .rodata:0x00000136; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_142 = .rodata:0x00000142; // type:object size:0x1A scope:local data:2byte +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:byte +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x2 scope:local data:byte +lbl_1_rodata_38A = .rodata:0x0000038A; // type:object size:0x2 scope:local data:byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 scope:local data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 scope:local data:double +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:float -lbl_1_data_70 = .data:0x00000070; // type:object size:0x23 data:string +lbl_1_data_70 = .data:0x00000070; // type:object size:0x23 scope:local data:string jumptable_1_data_94 = .data:0x00000094; // type:object size:0x3C scope:local lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x8 lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x4 diff --git a/configure.py b/configure.py index 62f50acb..613dd441 100644 --- a/configure.py +++ b/configure.py @@ -1078,7 +1078,7 @@ config.libs = [ Rel( "m427Dll", # Right Oar Left? objects={ - Object(NonMatching, "REL/m427Dll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m427Dll/main.c"), Object(NonMatching, "REL/m427Dll/map.c"), Object(NonMatching, "REL/m427Dll/player.c"), }, From 32fdc38925bb72fc5a1228e2a3799d6e0601c952 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Sun, 26 Jan 2025 15:26:13 -0800 Subject: [PATCH 274/311] Fix HsfanimStruct01 union shenanigans (#548) --- include/game/hsfanim.h | 5 +---- include/game/hsfdraw.h | 2 +- include/game/hsfformat.h | 2 +- src/REL/m408Dll/camera.c | 26 +++++++++++----------- src/REL/m408Dll/main.c | 4 ++-- src/REL/m408Dll/object.c | 8 +++---- src/REL/m408Dll/stage.c | 38 ++++++++++++++++----------------- src/REL/m416Dll/main.c | 28 ++++++++++++------------ src/REL/m417Dll/water.c | 12 +++++------ src/REL/m421Dll/player.c | 10 ++++----- src/REL/m422Dll/main.c | 10 ++++----- src/REL/m425Dll/main.c | 8 +++---- src/REL/m428Dll/map.c | 4 ++-- src/REL/m430Dll/player.c | 2 +- src/REL/m430Dll/water.c | 26 +++++++++++----------- src/REL/m433Dll/player.c | 14 ++++++------ src/REL/m438Dll/map.c | 32 +++++++++++++-------------- src/REL/m443Dll/player.c | 10 ++++----- src/REL/m447dll/block.c | 4 ++-- src/REL/m447dll/stage.c | 2 +- src/REL/m448Dll/main.c | 14 ++++++------ src/REL/m449Dll/main.c | 8 +++---- src/REL/m455Dll/stage.c | 14 ++++++------ src/REL/m456Dll/stage.c | 12 +++++------ src/REL/m460Dll/map.c | 10 ++++----- src/REL/mstory3Dll/win_effect.c | 10 ++++----- src/game/board/item.c | 6 +++--- src/game/chrman.c | 32 +++++++++++++-------------- src/game/hsfanim.c | 36 +++++++++++++++---------------- 29 files changed, 193 insertions(+), 196 deletions(-) diff --git a/include/game/hsfanim.h b/include/game/hsfanim.h index 198a4fc6..32c9c4cc 100644 --- a/include/game/hsfanim.h +++ b/include/game/hsfanim.h @@ -11,10 +11,7 @@ typedef struct particle_data ParticleData; typedef void (*ParticleHook)(ModelData *model, ParticleData *particle, Mtx matrix); typedef struct { - /* 0x00 */ union { - u16 unk00; - s16 unk00_s16; - }; + /* 0x00 */ s16 unk00; /* 0x02 */ s16 unk02; /* 0x04 */ s16 unk04; /* 0x06 */ s16 unk06; diff --git a/include/game/hsfdraw.h b/include/game/hsfdraw.h index 94b16a6b..d3b46df6 100755 --- a/include/game/hsfdraw.h +++ b/include/game/hsfdraw.h @@ -6,7 +6,7 @@ typedef struct model_data ModelData; -typedef struct { +typedef struct hsfdraw_struct_01 { /* 0x00 */ u16 unk00; /* 0x02 */ s16 unk02; /* 0x04 */ s16 unk04; diff --git a/include/game/hsfformat.h b/include/game/hsfformat.h index 04f3d458..36c083a9 100644 --- a/include/game/hsfformat.h +++ b/include/game/hsfformat.h @@ -99,7 +99,7 @@ typedef struct hsf_palette { typedef struct hsf_attribute { char *name; - void *unk04; + struct hsfdraw_struct_01 *unk04; u8 unk8[4]; float unk0C; u8 unk10[4]; diff --git a/src/REL/m408Dll/camera.c b/src/REL/m408Dll/camera.c index d0f693ea..370848c4 100644 --- a/src/REL/m408Dll/camera.c +++ b/src/REL/m408Dll/camera.c @@ -449,15 +449,15 @@ void fn_1_A37C(ModelData *model, ParticleData *particle, Mtx matrix) else { temp_r31 = particle->unk_48; for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { - if (temp_r31->unk00_s16) { + if (temp_r31->unk00) { temp_r31->unk34.x += temp_r31->unk08.x; temp_r31->unk34.y += temp_r31->unk08.y; temp_r31->unk34.z += temp_r31->unk08.z; temp_r31->unk2C += temp_r31->unk14.x; temp_r31->unk14.y -= temp_r31->unk14.z; temp_r31->unk40.a = temp_r31->unk14.y; - if (--temp_r31->unk00_s16 == 0) { - temp_r31->unk00_s16 = 0; + if (--temp_r31->unk00 == 0) { + temp_r31->unk00 = 0; temp_r31->unk2C = 0; temp_r31->unk40.a = 0; } @@ -477,10 +477,10 @@ void fn_1_A4E8(s32 arg0, Vec *arg1, u32 arg2) if (temp_r30->unk_00) { temp_r31 = temp_r30->unk_48; for (temp_r29 = 0; temp_r29 < temp_r30->unk_30; temp_r29++, temp_r31++) { - if (temp_r31->unk00_s16 != 0) { + if (temp_r31->unk00 != 0) { continue; } - temp_r31->unk00_s16 = 60.0f * (((1.5f / 1000.0f) * frandmod(1000)) + 1.0f); + temp_r31->unk00 = 60.0f * (((1.5f / 1000.0f) * frandmod(1000)) + 1.0f); temp_r31->unk34.x = arg1->x; temp_r31->unk34.y = 12000; temp_r31->unk34.z = arg1->z; @@ -491,7 +491,7 @@ void fn_1_A4E8(s32 arg0, Vec *arg1, u32 arg2) temp_r31->unk2C = 10; temp_r31->unk40.a = frandmod(127) + 64; temp_r31->unk14.y = temp_r31->unk40.a; - temp_r31->unk14.z = temp_r31->unk14.y * (1.0f / temp_r31->unk00_s16); + temp_r31->unk14.z = temp_r31->unk14.y * (1.0f / temp_r31->unk00); temp_f31 = frandmod(1000) * (1.0f / 1000.0f); temp_r31->unk40.r = (temp_f31 * 55) + 200; temp_r31->unk40.g = (temp_f31 * 50) + 205; @@ -549,7 +549,7 @@ void fn_1_A894(ModelData *model, ParticleData *particle, Mtx matrix) else { temp_r31 = particle->unk_48; for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { - if (temp_r31->unk00_s16 == 0) { + if (temp_r31->unk00 == 0) { continue; } sp8.x = sind(CRot.y) * cosd(CRot.x); @@ -649,7 +649,7 @@ void fn_1_AFF4(ModelData *model, ParticleData *particle, Mtx matrix) temp_r30 = particle->unk_48; temp_f30 = 0; for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r30++) { - if (temp_r30->unk00_s16 == 0) { + if (temp_r30->unk00 == 0) { continue; } temp_f30 += 1.0f / particle->unk_30; @@ -751,15 +751,15 @@ void fn_1_BDE0(void) Vec sp14; Vec sp8; temp_r31 = lbl_1_bss_A4[0]; - temp_r31->unk00_s16++; - if (temp_r31->unk00_s16 < 339.0f) { + temp_r31->unk00++; + if (temp_r31->unk00 < 339.0f) { return; } - if (temp_r31->unk00_s16 >= 600.0f) { - temp_r31->unk00_s16 = 601; + if (temp_r31->unk00 >= 600.0f) { + temp_r31->unk00 = 601; for (temp_r30 = 0; temp_r30 < lbl_1_bss_A0; temp_r30++) { temp_r31 = lbl_1_bss_A4[temp_r30]; - temp_r31->unk00_s16 = 0; + temp_r31->unk00 = 0; temp_r31->unk2C = 0; temp_r31->unk40.a = 0; } diff --git a/src/REL/m408Dll/main.c b/src/REL/m408Dll/main.c index 38ab51b1..7494d1eb 100644 --- a/src/REL/m408Dll/main.c +++ b/src/REL/m408Dll/main.c @@ -1127,7 +1127,7 @@ void fn_1_5AB4(ModelData *model, ParticleData *particle, Mtx matrix) } temp_r31 = particle->unk_48; for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { - if (temp_r31->unk00_s16 == 0 || temp_r31->unk00_s16 != 1) { + if (temp_r31->unk00 == 0 || temp_r31->unk00 != 1) { continue; } temp_r31->unk02++; @@ -1163,7 +1163,7 @@ void fn_1_5DCC(s32 arg0, Vec *arg1, u32 arg2) if (temp_r29->unk_00 != 0) { temp_r31 = temp_r29->unk_48; for (temp_r28 = 0; temp_r28 < temp_r29->unk_30; temp_r28++, temp_r31++) { - if (temp_r31->unk00_s16) { + if (temp_r31->unk00) { continue; } temp_r31->unk00 = 1; diff --git a/src/REL/m408Dll/object.c b/src/REL/m408Dll/object.c index 817ec9e3..a7db6c04 100644 --- a/src/REL/m408Dll/object.c +++ b/src/REL/m408Dll/object.c @@ -1332,8 +1332,8 @@ void fn_1_15658(ModelData *model, ParticleData *particle, Mtx matrix) } temp_r31->unk40.a = temp_r29; } - temp_r31->unk00_s16--; - if (temp_r31->unk00_s16 <= 0) { + temp_r31->unk00--; + if (temp_r31->unk00 <= 0) { temp_r31->unk2C = 0; } } @@ -1501,8 +1501,8 @@ void fn_1_15D64(ModelData *model, ParticleData *particle, Mtx matrix) } temp_r31->unk40.a = temp_r28; } - temp_r31->unk00_s16--; - if (temp_r31->unk00_s16 <= 0) { + temp_r31->unk00--; + if (temp_r31->unk00 <= 0) { temp_r31->unk2C = 0; } } diff --git a/src/REL/m408Dll/stage.c b/src/REL/m408Dll/stage.c index 06fc40fb..71b8bafd 100644 --- a/src/REL/m408Dll/stage.c +++ b/src/REL/m408Dll/stage.c @@ -413,7 +413,7 @@ s16 fn_1_D978(AnimData *arg0, s16 arg1, ParticleHook arg2) } temp_r30 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(HsfanimStruct01), MEMORY_DEFAULT_NUM); temp_r29->unk_1C = temp_r30; - temp_r30->unk00_s16 = temp_r28; + temp_r30->unk00 = temp_r28; temp_r30->unk02 = 0; for (temp_r31 = 0; temp_r31 < 32; temp_r31++) { // Ugly expression to match store without new type @@ -449,7 +449,7 @@ void fn_1_DA6C(ModelData *model, ParticleData *particle, Mtx matrix) for (temp_r28 = 0; temp_r28 < 100; temp_r28++) { temp_r31 = particle->unk_48; for (temp_r27 = 0; temp_r27 < particle->unk_30; temp_r27++, temp_r31++) { - if (!temp_r31->unk00_s16) { + if (!temp_r31->unk00) { break; } } @@ -472,13 +472,13 @@ void fn_1_DA6C(ModelData *model, ParticleData *particle, Mtx matrix) temp_r31->unk2C = (0.01 * (frand() % 2000)) + 30.0; temp_r31->unk2C *= 0.1f; temp_r31->unk40.a = 255; - temp_r31->unk00_s16 = 30; + temp_r31->unk00 = 30; } break; } temp_r31 = particle->unk_48; for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { - if (temp_r31->unk00_s16 == 0) { + if (temp_r31->unk00 == 0) { continue; } temp_f30 = temp_r31->unk14.x; @@ -493,7 +493,7 @@ void fn_1_DA6C(ModelData *model, ParticleData *particle, Mtx matrix) temp_r31->unk08.y += 0.1f; if (temp_r31->unk40.a < 2) { temp_r31->unk40.a = 0; - temp_r31->unk00_s16 = 0; + temp_r31->unk00 = 0; particle->unk_00++; } } @@ -566,7 +566,7 @@ void fn_1_E310(ModelData *model, ParticleData *particle, Mtx matrix) temp_f30 = 360.0f / particle->unk_30; for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 = (s32)(360.0 * ((1.0 / 65536.0) * (float)fn_1_11670())); + temp_r31->unk00 = (s32)(360.0 * ((1.0 / 65536.0) * (float)fn_1_11670())); temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; temp_r26 = (temp_f30 * temp_r28) + (int)((temp_f30 * 0.5f) * ((1.0 / 32768.0) * (float)(fn_1_11670() - 32768))); temp_r31->unk20 = temp_r26; @@ -598,15 +598,15 @@ void fn_1_E310(ModelData *model, ParticleData *particle, Mtx matrix) case 1: temp_r31 = particle->unk_48; for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 += 4; - if (temp_r31->unk00_s16 >= 360) { - temp_r31->unk00_s16 -= 360; + temp_r31->unk00 += 4; + if (temp_r31->unk00 >= 360) { + temp_r31->unk00 -= 360; } temp_r31->unk34.x = temp_r31->unk14.x; temp_r31->unk34.y = temp_r31->unk14.y; temp_r31->unk34.z = temp_r31->unk14.z; temp_r31->unk30 = M_PI * (90 + (temp_r31->unk20 + temp_r29->unk_04.z)) / 180; - temp_r31->unk2C = temp_r31->unk24 * ((0.1f * sind(temp_r31->unk00_s16)) + 1.0); + temp_r31->unk2C = temp_r31->unk24 * ((0.1f * sind(temp_r31->unk00)) + 1.0); } break; } @@ -627,7 +627,7 @@ void fn_1_E9B4(ModelData *model, ParticleData *particle, Mtx matrix) case 0: temp_r31 = particle->unk_48; for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 = fn_1_11670() % 360; + temp_r31->unk00 = fn_1_11670() % 360; temp_r31->unk34.x = temp_r31->unk34.y = temp_r31->unk34.z = 0; temp_r27 = fn_1_11670() % 360; temp_r31->unk20 = temp_r27; @@ -653,14 +653,14 @@ void fn_1_E9B4(ModelData *model, ParticleData *particle, Mtx matrix) case 1: temp_r31 = particle->unk_48; for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 += 2; - if (temp_r31->unk00_s16 >= 360) { - temp_r31->unk00_s16 -= 360; + temp_r31->unk00 += 2; + if (temp_r31->unk00 >= 360) { + temp_r31->unk00 -= 360; } temp_r31->unk34.x = temp_r31->unk14.x; temp_r31->unk34.y = temp_r31->unk14.y; temp_r31->unk34.z = temp_r31->unk14.z; - temp_r31->unk2C = temp_r31->unk24 * ((0.1f * sind(temp_r31->unk00_s16)) + 1.0); + temp_r31->unk2C = temp_r31->unk24 * ((0.1f * sind(temp_r31->unk00)) + 1.0); } break; } @@ -718,7 +718,7 @@ void fn_1_F06C(ModelData *model, ParticleData *particle, Mtx matrix) case 0: temp_r31 = particle->unk_48; for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { - temp_r31->unk00_s16 = temp_r31->unk02 = 0; + temp_r31->unk00 = temp_r31->unk02 = 0; } temp_r29->unk_02++; break; @@ -726,8 +726,8 @@ void fn_1_F06C(ModelData *model, ParticleData *particle, Mtx matrix) case 1: temp_r31 = particle->unk_48; for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r28++, temp_r31++) { - if (temp_r31->unk00_s16) { - temp_r31->unk00_s16--; + if (temp_r31->unk00) { + temp_r31->unk00--; continue; } if (temp_r31->unk02 == 0) { @@ -739,7 +739,7 @@ void fn_1_F06C(ModelData *model, ParticleData *particle, Mtx matrix) temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 192; temp_r31->unk40.b = 160; temp_r31->unk2C = 0; - temp_r31->unk00_s16 = (s32)(90.0 * ((1.0 / 65536.0) * (float)fn_1_11670())); + temp_r31->unk00 = (s32)(90.0 * ((1.0 / 65536.0) * (float)fn_1_11670())); temp_r31->unk02 = 60; } temp_r31->unk40.a = 248 * sind(temp_r31->unk02 * 3); diff --git a/src/REL/m416Dll/main.c b/src/REL/m416Dll/main.c index 33fe0518..0364445e 100644 --- a/src/REL/m416Dll/main.c +++ b/src/REL/m416Dll/main.c @@ -1609,7 +1609,7 @@ void fn_1_613C(ModelData *model, ParticleData *particle, Mtx matrix) temp_r31->unk34.y = (64.0f * ((1.0f / 256.0f) * frand8())); temp_r31->unk34.z = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1)); temp_r31->unk30 = 360.0f * ((1.0f / 256.0f) * frand8()); - temp_r31->unk00_s16 = frand8(); + temp_r31->unk00 = frand8(); temp_r31->unk02 = (frand() & 0x3) + 4; } temp_f29 = temp_f28 = 0; @@ -1620,7 +1620,7 @@ void fn_1_613C(ModelData *model, ParticleData *particle, Mtx matrix) } temp_r31 = particle->unk_48; for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r31++, temp_r29++) { - temp_f30 = temp_r31->unk00_s16 / 255.0f; + temp_f30 = temp_r31->unk00 / 255.0f; temp_f31 = temp_f30 * temp_f30; temp_r31->unk34.x += temp_f29 * temp_f31; temp_r31->unk34.y = 60.0f * temp_f30; @@ -1628,12 +1628,12 @@ void fn_1_613C(ModelData *model, ParticleData *particle, Mtx matrix) temp_r31->unk40.a = 255.0f * (1.0f - temp_f30); temp_f31 = 0.5 * (1 + sind(270.0f * temp_f30)); temp_r31->unk2C = temp_f31 * (temp_r31->unk08.x * temp_f31); - temp_r31->unk00_s16 += temp_r31->unk02; - if (temp_r31->unk00_s16 > 255) { + temp_r31->unk00 += temp_r31->unk02; + if (temp_r31->unk00 > 255) { temp_r31->unk34.x = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1)); temp_r31->unk34.y = 0; temp_r31->unk34.z = (4.0f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1)); - temp_r31->unk00_s16 = 0; + temp_r31->unk00 = 0; } } DCStoreRangeNoSync(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01)); @@ -1664,7 +1664,7 @@ void fn_1_6640(ModelData *model, ParticleData *particle, Mtx matrix) temp_r31->unk08.z = temp_f30 * cosd(temp_f31); temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = 255; temp_r31->unk40.a = 0; - temp_r31->unk00_s16 = ((float)particle->unk_3C) * ((float)temp_r28 / (float)particle->unk_30); + temp_r31->unk00 = ((float)particle->unk_3C) * ((float)temp_r28 / (float)particle->unk_30); } } else { @@ -1674,25 +1674,25 @@ void fn_1_6640(ModelData *model, ParticleData *particle, Mtx matrix) temp_r27 = 0; temp_r31 = particle->unk_48; for (temp_r28 = 0; temp_r28 < particle->unk_30; temp_r31++, temp_r28++) { - if (temp_r31->unk00_s16 >= 0) { - if (temp_r31->unk00_s16 == 0) { + if (temp_r31->unk00 >= 0) { + if (temp_r31->unk00 == 0) { temp_r31->unk34.x += temp_r31->unk08.x + temp_f29; temp_r31->unk34.y += temp_r31->unk08.y; temp_r31->unk34.z += temp_r31->unk08.z + temp_f28; temp_r31->unk08.y += -1.0000001f; if (temp_r31->unk40.a) { if (--temp_r31->unk40.a == 0) { - temp_r31->unk00_s16 = -1; + temp_r31->unk00 = -1; } } if (temp_r31->unk34.y < 0.0f) { temp_r31->unk34.y = 0; - temp_r31->unk00_s16 = -1; + temp_r31->unk00 = -1; temp_r31->unk40.a = 0; } } else { - if (--temp_r31->unk00_s16 == 0) { + if (--temp_r31->unk00 == 0) { temp_r31->unk40.a = 255; } } @@ -1728,12 +1728,12 @@ void fn_1_6AE8(ModelData *model, ParticleData *particle, Mtx matrix) temp_r31->unk08.y = 100.0f * (0.05f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f)); temp_r31->unk08.z = 100.0f * (0.05f * (((1.0f / 256.0f) * ((s32)frand() & 0x1FF)) - 1.0f)); temp_r31->unk40.a = 128; - temp_r31->unk00_s16 = 0; + temp_r31->unk00 = 0; } } temp_r31 = particle->unk_48; for (temp_r29 = 0; temp_r29 < particle->unk_30; temp_r29++, temp_r31++) { - if (temp_r31->unk00_s16 < 0) { + if (temp_r31->unk00 < 0) { temp_r27++; continue; } @@ -1746,7 +1746,7 @@ void fn_1_6AE8(ModelData *model, ParticleData *particle, Mtx matrix) temp_r28 = temp_r31->unk40.a; temp_r28 -= 4; if (temp_r28 < 0) { - temp_r31->unk00_s16 = -1; + temp_r31->unk00 = -1; temp_r28 = 0; } temp_r31->unk40.a = temp_r28; diff --git a/src/REL/m417Dll/water.c b/src/REL/m417Dll/water.c index 6217da9f..85cdcaea 100644 --- a/src/REL/m417Dll/water.c +++ b/src/REL/m417Dll/water.c @@ -892,7 +892,7 @@ void fn_1_6B94(ModelData *model, ParticleData *particle, float (*matrix)[4]) particle->unk_00++; var_r31 = particle->unk_48; for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { - var_r31->unk00_s16 = 0; + var_r31->unk00 = 0; var_r31->unk2C = 0.0f; var_r31->unk40.a = 0; } @@ -900,16 +900,16 @@ void fn_1_6B94(ModelData *model, ParticleData *particle, float (*matrix)[4]) } var_r31 = particle->unk_48; for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16) { + if (var_r31->unk00) { var_r31->unk34.x += var_r31->unk08.x; var_r31->unk34.y += var_r31->unk08.y; var_r31->unk34.z += var_r31->unk08.z; var_r31->unk08.y += -0.27222225f; - if (var_r31->unk00_s16 < 12.0f) { + if (var_r31->unk00 < 12.0f) { var_r31->unk40.a = 0.88f * var_r31->unk40.a; } - if (!(--var_r31->unk00_s16)) { - var_r31->unk00_s16 = 0; + if (!(--var_r31->unk00)) { + var_r31->unk00 = 0; var_r31->unk2C = 0.0f; var_r31->unk40.a = 0; } @@ -951,7 +951,7 @@ void fn_1_6D64(s32 arg0, u32 arg1, float arg8, float arg9, float argA) var_f27 = 0.0f; } for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16) { + if (var_r31->unk00) { continue; } var_r31->unk00 = 60.0f * (1.0f + (0.0005f * frandmod(1000))); diff --git a/src/REL/m421Dll/player.c b/src/REL/m421Dll/player.c index 4735d112..ce14a94c 100644 --- a/src/REL/m421Dll/player.c +++ b/src/REL/m421Dll/player.c @@ -1606,14 +1606,14 @@ void fn_1_9C38(ModelData *model, ParticleData *particle, Mtx matrix) s32 var_r29; for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16 != 0) { + if (var_r31->unk00 != 0) { VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk2C += 2.0f; var_r31->unk40.a *= 0.98f; - if (var_r31->unk00_s16 < 24.0f) { + if (var_r31->unk00 < 24.0f) { var_r31->unk40.a = 0.9f * var_r31->unk40.a; } - if (--var_r31->unk00_s16 == 0) { + if (--var_r31->unk00 == 0) { var_r31->unk00 = 0; var_r31->unk2C = 0.0f; var_r31->unk40.a = 0; @@ -1649,10 +1649,10 @@ void fn_1_9DD0(omObjData *object, Vec *arg1) spC[2] = (220.0f + (0.13725491f * sp14.b)) - sp10[2]; var_r26 = 0x64; for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16 != 0) { + if (var_r31->unk00 != 0) { continue; } - var_r31->unk00_s16 = 60.0f * (0.6f + (0.0005f * frandmod(0x3E8))); + var_r31->unk00 = 60.0f * (0.6f + (0.0005f * frandmod(0x3E8))); var_f31 = frandmod(0x168); var_f30 = frandmod(0x168); sp18.y = sind(var_f31); diff --git a/src/REL/m422Dll/main.c b/src/REL/m422Dll/main.c index b51c3e68..79b64b3c 100755 --- a/src/REL/m422Dll/main.c +++ b/src/REL/m422Dll/main.c @@ -1402,7 +1402,7 @@ void fn_1_9410(ModelData *model, ParticleData *particle, Mtx matrix) if (particle->unk_34 < 50) { var_r31 = particle->unk_48; for (i = 0; i < particle->unk_30; i++, var_r31++) { - var_r31->unk00_s16 = particle->unk_34 + 41; + var_r31->unk00 = particle->unk_34 + 41; var_r31->unk40.a = 0; var_r31->unk2C = 0.0f; } @@ -1410,7 +1410,7 @@ void fn_1_9410(ModelData *model, ParticleData *particle, Mtx matrix) if (particle->unk_34 >= 255) { var_r31 = particle->unk_48; for (i = 0; i < particle->unk_30; i++, var_r31++) { - var_r31->unk00_s16 = 255; + var_r31->unk00 = 255; var_r31->unk40.a = 0; var_r31->unk2C = 0.0f; } @@ -1423,7 +1423,7 @@ void fn_1_9410(ModelData *model, ParticleData *particle, Mtx matrix) } var_r31 = particle->unk_48; for (i = 0; i < particle->unk_30; i++, var_r31++) { - if (var_r31->unk00_s16 == 104) { + if (var_r31->unk00 == 104) { var_r31->unk34.x = var_r31->unk34.z = 0.0f; var_r31->unk34.y = 72.0f; temp_f31 = frandu8() * 360 / 256; @@ -1440,7 +1440,7 @@ void fn_1_9410(ModelData *model, ParticleData *particle, Mtx matrix) var_r31->unk2C = 50.0f; VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); } - if (var_r31->unk00_s16 < 240) { + if (var_r31->unk00 < 240) { VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); var_r31->unk08.x *= 0.9f; var_r31->unk08.z *= 0.9f; @@ -1456,7 +1456,7 @@ void fn_1_9410(ModelData *model, ParticleData *particle, Mtx matrix) var_r31->unk2C = 0.0f; } } - var_r31->unk00_s16 += (var_r31->unk00_s16 < 0x8000); + var_r31->unk00 += (var_r31->unk00 < 0x8000); } } diff --git a/src/REL/m425Dll/main.c b/src/REL/m425Dll/main.c index 2853e783..01182261 100644 --- a/src/REL/m425Dll/main.c +++ b/src/REL/m425Dll/main.c @@ -1300,14 +1300,14 @@ void fn_1_4A88(ModelData *model, ParticleData *particle, Mtx matrix) switch (var_r29->unk_04) { case 0: for (var_r31 = particle->unk_48, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { - var_r31->unk00_s16 = var_r31->unk02 = 0; + var_r31->unk00 = var_r31->unk02 = 0; } var_r29->unk_04++; break; case 1: for (var_r31 = particle->unk_48, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { - if (var_r31->unk00_s16 != 0) { - var_r31->unk00_s16--; + if (var_r31->unk00 != 0) { + var_r31->unk00--; } else { if (var_r31->unk02 == 0) { @@ -1325,7 +1325,7 @@ void fn_1_4A88(ModelData *model, ParticleData *particle, Mtx matrix) var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = var_r31->unk40.a = 0xC0; var_r31->unk40.b = 0xA0; var_r31->unk2C = 0.0f; - var_r31->unk00_s16 = (s32)(90.0 * (1.52587890625e-05 * (float)fn_1_64D4())); + var_r31->unk00 = (s32)(90.0 * (1.52587890625e-05 * (float)fn_1_64D4())); var_r31->unk02 = 0x3C; var_r31->unk40.r = 0xC0; var_r31->unk40.g = 0xE0; diff --git a/src/REL/m428Dll/map.c b/src/REL/m428Dll/map.c index ce4c7764..925c04bc 100644 --- a/src/REL/m428Dll/map.c +++ b/src/REL/m428Dll/map.c @@ -631,7 +631,7 @@ void fn_1_6280(ModelData *arg1, ParticleData *particle, Mtx matrix) break; } for (var_r31 = particle->unk_48, var_r27 = 0, var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { - switch (var_r31->unk00_s16) { + switch (var_r31->unk00) { case 0: if (((var_r28 > (0.4f * particle->unk_30)) && (particle->unk_04.x == 0.0f)) || (var_r27 >= (10.0f + (0.75f * particle->unk_04.x)))) { var_r31->unk2C = 0.01f; @@ -662,7 +662,7 @@ void fn_1_6280(ModelData *arg1, ParticleData *particle, Mtx matrix) var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = 0xFF; var_r31->unk02 = 0; var_r27++; - var_r31->unk00_s16++; + var_r31->unk00++; } break; case 1: diff --git a/src/REL/m430Dll/player.c b/src/REL/m430Dll/player.c index ca486592..baa21d63 100644 --- a/src/REL/m430Dll/player.c +++ b/src/REL/m430Dll/player.c @@ -2044,7 +2044,7 @@ void fn_1_11D70(void) var_r25 = &Hu3DData[var_r31->unk_04]; var_r29 = var_r25->unk_120; for (var_r30 = var_r29->unk_48, var_r27 = 0; var_r27 < var_r29->unk_30; var_r27++, var_r30++) { - if (++var_r30->unk00_s16 > var_r30->unk02) { + if (++var_r30->unk00 > var_r30->unk02) { var_r24 = var_r30->unk40.a - 9; if (var_r24 < 0) { var_r30->unk2C = 0.0f; diff --git a/src/REL/m430Dll/water.c b/src/REL/m430Dll/water.c index 4cdcef5c..cfb782c7 100644 --- a/src/REL/m430Dll/water.c +++ b/src/REL/m430Dll/water.c @@ -1637,15 +1637,15 @@ void fn_1_AD04(ModelData *model, ParticleData *particle, Mtx matrix) return; } for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16 != 0) { + if (var_r31->unk00 != 0) { VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); VECScale(&var_r31->unk08, &var_r31->unk08, 0.97f); - if (var_r31->unk00_s16 < 24.0f) { + if (var_r31->unk00 < 24.0f) { var_r31->unk40.a = 0.9f * var_r31->unk40.a; } var_r31->unk2C += 1.5f; - if (--var_r31->unk00_s16 == 0) { - var_r31->unk00_s16 = 0; + if (--var_r31->unk00 == 0) { + var_r31->unk00 = 0; var_r31->unk2C = 0.0f; var_r31->unk40.a = 0; } @@ -1676,7 +1676,7 @@ void fn_1_AEE0(s32 arg0, Vec *arg1, float arg8, float arg9) var_r27 = 1; var_f28 = 30.0f; for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16 == 0) { + if (var_r31->unk00 == 0) { var_r31->unk00 = 60.0f * (0.5f + (0.0005f * frandmod(0x3E8))); var_f30 = (0.002f * frandmod(0x3E8)) - 1.0f; var_f30 = arg8 + (var_f30 * var_f28); @@ -1714,22 +1714,22 @@ void fn_1_B394(ModelData *model, ParticleData *var_r30, Mtx matrix) if ((var_r30->unk_00 == 0) || (lbl_1_bss_5C != 0)) { var_r30->unk_00++; for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { - var_r31->unk00_s16 = 0; + var_r31->unk00 = 0; var_r31->unk2C = 0.0f; var_r31->unk40.a = 0; } return; } for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16 != 0) { - var_r31->unk00_s16--; + if (var_r31->unk00 != 0) { + var_r31->unk00--; VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk2C += 0.5f; - if (var_r31->unk00_s16 < 30.0) { + if (var_r31->unk00 < 30.0) { var_r31->unk40.a = 0.98f * var_r31->unk40.a; } - if ((var_r31->unk34.y < -40.0f) || (var_r31->unk00_s16 == 0)) { - var_r31->unk00_s16 = 0; + if ((var_r31->unk34.y < -40.0f) || (var_r31->unk00 == 0)) { + var_r31->unk00 = 0; var_r31->unk2C = 0.0f; var_r31->unk40.a = 0; } @@ -1766,8 +1766,8 @@ void fn_1_B570(s32 arg0, Vec *arg1, float arg8, float arg9, Vec *arg2) VECScale(arg2, &sp1C, 0.2f); sp1C.x = 0.0f; for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16 == 0) { - var_r31->unk00_s16 = 60.0f * (0.5f + (0.0005f * frandmod(0x3E8))); + if (var_r31->unk00 == 0) { + var_r31->unk00 = 60.0f * (0.5f + (0.0005f * frandmod(0x3E8))); var_f30 = (0.002f * frandmod(0x3E8)) - 1.0f; var_f30 = arg8 + sp14[var_r29 & 1] + (var_f30 * var_f28); sp28.x = sind(var_f30); diff --git a/src/REL/m433Dll/player.c b/src/REL/m433Dll/player.c index 7b69466d..b6ef317c 100644 --- a/src/REL/m433Dll/player.c +++ b/src/REL/m433Dll/player.c @@ -2174,7 +2174,7 @@ void fn_1_BD48(omObjData *object) for (var_r27 = ((ParticleData *)Hu3DData[var_r28].unk_120)->unk_48, var_r29 = 0; var_r29 < 0xC8; var_r29++, var_r27++) { var_r27->unk2C = 0.0f; var_r27->unk40.a = 0; - var_r27->unk00_s16 = 0; + var_r27->unk00 = 0; } object->model[9] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M433, 2)); Hu3DModelScaleSet(object->model[9], 1.05f, 1.05f, 1.05f); @@ -2581,18 +2581,18 @@ void fn_1_D6A8(ModelData *model, ParticleData *particle, Mtx matrix) s32 var_r29; for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16 != 0) { + if (var_r31->unk00 != 0) { VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk08.x *= 0.92f; var_r31->unk08.z *= 0.92f; var_r31->unk08.y += -0.27222225f; var_r31->unk2C += 2.0f; var_r31->unk40.a *= 0.99f; - if (var_r31->unk00_s16 < 24.0f) { + if (var_r31->unk00 < 24.0f) { var_r31->unk40.a = 0.9f * var_r31->unk40.a; } - if (--var_r31->unk00_s16 == 0) { - var_r31->unk00_s16 = 0; + if (--var_r31->unk00 == 0) { + var_r31->unk00 = 0; var_r31->unk2C = 0.0f; var_r31->unk40.a = 0; } @@ -2613,8 +2613,8 @@ void fn_1_D888(Vec *arg0, float arg8) var_r31 = ((ParticleData *)Hu3DData[lbl_1_bss_7CC->model[5]].unk_120)->unk_48; var_r28 = 3.0f + (12.0f * arg8); for (var_r29 = 0; var_r29 < 0xC8; var_r29++, var_r31++) { - if (var_r31->unk00_s16 == 0) { - var_r31->unk00_s16 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8))); + if (var_r31->unk00 == 0) { + var_r31->unk00 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8))); var_f30 = frandmod(0x168); sp8.x = sind(var_f30); sp8.y = 0.0f; diff --git a/src/REL/m438Dll/map.c b/src/REL/m438Dll/map.c index b0da050e..ea4ba2d0 100644 --- a/src/REL/m438Dll/map.c +++ b/src/REL/m438Dll/map.c @@ -377,15 +377,15 @@ void fn_1_C764(ModelData *model, ParticleData *particle, Mtx matrix) var_r31 = particle->unk_48; for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16 != 0) { + if (var_r31->unk00 != 0) { VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk08.x *= 0.95f; var_r31->unk08.z *= 0.95f; var_r31->unk08.y += -0.27222225f; - if (var_r31->unk00_s16 < 24.0f) { + if (var_r31->unk00 < 24.0f) { var_r31->unk40.a = 0.9f * var_r31->unk40.a; } - if (--var_r31->unk00_s16 == 0) { + if (--var_r31->unk00 == 0) { var_r31->unk00 = 0; var_r31->unk2C = 0.0f; var_r31->unk40.a = 0; @@ -404,16 +404,16 @@ void fn_1_C8E8(ModelData *model, ParticleData *particle, Mtx matrix) var_r31 = particle->unk_48; for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16 != 0) { + if (var_r31->unk00 != 0) { VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk08.x *= 0.92f; var_r31->unk08.z *= 0.92f; var_r31->unk2C += 5.0f; var_r31->unk40.a *= 0.99f; - if (var_r31->unk00_s16 < 24.0f) { + if (var_r31->unk00 < 24.0f) { var_r31->unk40.a = 0.9f * var_r31->unk40.a; } - if (--var_r31->unk00_s16 == 0) { + if (--var_r31->unk00 == 0) { var_r31->unk00 = 0; var_r31->unk2C = 0.0f; var_r31->unk40.a = 0; @@ -440,8 +440,8 @@ void fn_1_CAB0(f32 arg8) for (var_r30 = 0; var_r30 < 0x96; var_r30++) { var_r31 = lbl_1_bss_E34[var_r30]; - if (var_r31->unk00_s16 == 0) { - var_r31->unk00_s16 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8))); + if (var_r31->unk00 == 0) { + var_r31->unk00 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8))); temp_f31 = ((0.002f * frandmod(0x3E8)) - 1.0f); temp_f31 = arg8 + (temp_f31 * temp_f28); sp8.x = sind(temp_f31); @@ -471,8 +471,8 @@ void fn_1_CAB0(f32 arg8) var_r31 = ((ParticleData *)(Hu3DData[lbl_1_bss_108C[0]->model[6]].unk_120))->unk_48; var_r29 = 0xF; for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r31++) { - if (var_r31->unk00_s16 == 0) { - var_r31->unk00_s16 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8))); + if (var_r31->unk00 == 0) { + var_r31->unk00 = 60.0f * (0.6f + (0.0006f * frandmod(0x3E8))); temp_f31 = ((0.002f * frandmod(0x3E8)) - 1.0f); temp_f31 = arg8 + (temp_f31 * temp_f28); sp8.x = sind(temp_f31); @@ -513,14 +513,14 @@ void fn_1_D3FC(ModelData *model, ParticleData *particle, Mtx matrix) lbl_1_bss_E2C = 0; var_r31 = particle->unk_48; for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16 != 0) { + if (var_r31->unk00 != 0) { VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk08.y += -0.27222225f; - if (var_r31->unk00_s16 < 12.0f) { + if (var_r31->unk00 < 12.0f) { var_r31->unk40.a = (0.8f * var_r31->unk40.a); } - if (--var_r31->unk00_s16 == 0) { - var_r31->unk00_s16 = 0; + if (--var_r31->unk00 == 0) { + var_r31->unk00 = 0; var_r31->unk2C = 0.0f; var_r31->unk40.a = 0; } @@ -543,8 +543,8 @@ void fn_1_D57C(Vec *arg0, f32 arg1) var_r29 = (u32)(3.0f + (15.0f * arg1)); for (var_r30 = 0; var_r30 < 0x1F4; var_r30++, var_r31++) { - if (var_r31->unk00_s16 == 0) { - var_r31->unk00_s16 = 60.0f * (0.3f + (0.0003f * frandmod(0x3E8))); + if (var_r31->unk00 == 0) { + var_r31->unk00 = 60.0f * (0.3f + (0.0003f * frandmod(0x3E8))); var_r31->unk34 = *arg0; var_r31->unk34.x += arg1 * (0.07f * (frandmod(0x3E8) - 0x1F4)); var_r31->unk34.z += arg1 * (0.07f * (frandmod(0x3E8) - 0x1F4)); diff --git a/src/REL/m443Dll/player.c b/src/REL/m443Dll/player.c index fb293d09..b0f2554d 100644 --- a/src/REL/m443Dll/player.c +++ b/src/REL/m443Dll/player.c @@ -1138,15 +1138,15 @@ void fn_1_8E34(s32 arg0) var_r31 = temp_r30->unk_48; for (var_r29 = 0; var_r29 < temp_r30->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16 != 0) { + if (var_r31->unk00 != 0) { VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); var_r31->unk08.z -= 0.3f; var_r31->unk2C += 2.0f; var_r31->unk40.a *= 0.98f; - if (var_r31->unk00_s16 < 24.0f) { + if (var_r31->unk00 < 24.0f) { var_r31->unk40.a = var_r31->unk40.a * 0.9f; } - if (--var_r31->unk00_s16 == 0) { + if (--var_r31->unk00 == 0) { var_r31->unk00 = 0; var_r31->unk2C = 0.0f; var_r31->unk40.a = 0; @@ -1183,10 +1183,10 @@ void fn_1_8FFC(u32 arg0, Point3d *arg1, f32 arg2, f32 arg3) var_r31 = temp_r29->unk_48; for (var_r28 = 0; var_r28 < temp_r29->unk_30; var_r28++, var_r31++) { - if (var_r31->unk00_s16 != 0) + if (var_r31->unk00 != 0) continue; - var_r31->unk00_s16 = (60.0f * (0.6f + (0.0005f * frandmod(0x3E8)))); + var_r31->unk00 = (60.0f * (0.6f + (0.0005f * frandmod(0x3E8)))); var_f29 = isEven(var_r27); temp_f31 = 0.030000001f * frandmod(0x3E8); var_r31->unk34.x = arg1->x + var_f29 * (70.0f + (0.07f * frandmod(0x3E8))); diff --git a/src/REL/m447dll/block.c b/src/REL/m447dll/block.c index 939c795b..335a8091 100755 --- a/src/REL/m447dll/block.c +++ b/src/REL/m447dll/block.c @@ -391,7 +391,7 @@ void fn_1_9F40(ModelData *model, ParticleData *particle, Mtx matrix) if (particle->unk_00 == 0) { particle->unk_00 = 1; for (i = 0, var_r31 = particle->unk_48; i < particle->unk_30; i++, var_r31++) { - var_r31->unk00_s16 = i * 5; + var_r31->unk00 = i * 5; var_r31->unk02 = 0; var_r31->unk2C = 0.0f; var_r31->unk40.r = sp8.r; @@ -401,7 +401,7 @@ void fn_1_9F40(ModelData *model, ParticleData *particle, Mtx matrix) } } for (i = 0, var_r27 = 0, var_r31 = particle->unk_48; i < particle->unk_30; i++, var_r31++) { - if (var_r31->unk00_s16 > 0 && --var_r31->unk00_s16 > 0) { + if (var_r31->unk00 > 0 && --var_r31->unk00 > 0) { continue; } if (var_r31->unk02 == 0 && temp_r29->unk04 == 5 && temp_r29->unk10.z > -700.0f) { diff --git a/src/REL/m447dll/stage.c b/src/REL/m447dll/stage.c index b0ac0d86..f1a456fa 100755 --- a/src/REL/m447dll/stage.c +++ b/src/REL/m447dll/stage.c @@ -444,7 +444,7 @@ void fn_1_2DAC(ModelData *model, ParticleData *particle, Mtx matrix) } } for (i = 0, var_r31 = particle->unk_48; i < particle->unk_30; i++, var_r31++) { - if (var_r31->unk00_s16 < 0) { + if (var_r31->unk00 < 0) { continue; } var_r31->unk34.x += var_r31->unk08.x; diff --git a/src/REL/m448Dll/main.c b/src/REL/m448Dll/main.c index 0fccc340..961f27be 100755 --- a/src/REL/m448Dll/main.c +++ b/src/REL/m448Dll/main.c @@ -1498,7 +1498,7 @@ void fn_1_7DC4(ModelData *model, ParticleData *particle, Mtx matrix) if (particle->unk_34 == 0) { var_r31 = particle->unk_48; for (i = 0; i < particle->unk_30; i++, var_r31++) { - var_r31->unk00_s16 = i * 2 + 100; + var_r31->unk00 = i * 2 + 100; var_r31->unk40.a = 0; var_r31->unk2C = 0.0f; } @@ -1511,8 +1511,8 @@ void fn_1_7DC4(ModelData *model, ParticleData *particle, Mtx matrix) } var_r31 = particle->unk_48; for (i = 0; i < particle->unk_30; i++, var_r31++) { - if (var_r31->unk00_s16 == 100) { - var_r31->unk00_s16 = (lbl_1_data_1DC[0] == 0.0f && lbl_1_data_1DC[1] == 0.0f && lbl_1_data_1DC[2] == 0.0f) ? 0 : var_r31->unk00_s16; + if (var_r31->unk00 == 100) { + var_r31->unk00 = (lbl_1_data_1DC[0] == 0.0f && lbl_1_data_1DC[1] == 0.0f && lbl_1_data_1DC[2] == 0.0f) ? 0 : var_r31->unk00; var_r31->unk34.x = lbl_1_data_1DC[0] + 75.0 * (rand8() / 255.0); var_r31->unk34.y = lbl_1_data_1DC[1] + 75.0 * (rand8() / 255.0); var_r31->unk34.z = lbl_1_data_1DC[2] + 75.0 * (rand8() / 255.0); @@ -1523,14 +1523,14 @@ void fn_1_7DC4(ModelData *model, ParticleData *particle, Mtx matrix) var_r31->unk30 = 0.785f; var_r31->unk2C = 40.0f; } - if (var_r31->unk00_s16 <= 100) { + if (var_r31->unk00 <= 100) { var_r31->unk34.y -= 3.0f; - var_r31->unk2C = ((var_r31->unk00_s16 > 50) ? (var_r31->unk00_s16 - 50) / 50.0 : 0.0) * (rand8() * 80 / 255.0); + var_r31->unk2C = ((var_r31->unk00 > 50) ? (var_r31->unk00 - 50) / 50.0 : 0.0) * (rand8() * 80 / 255.0); } - if (var_r31->unk00_s16 == 0) { + if (var_r31->unk00 == 0) { var_r31->unk2C = 0.0f; } - var_r31->unk00_s16 -= (var_r31->unk00_s16 > 0); + var_r31->unk00 -= (var_r31->unk00 > 0); } } diff --git a/src/REL/m449Dll/main.c b/src/REL/m449Dll/main.c index be902879..02d13d79 100644 --- a/src/REL/m449Dll/main.c +++ b/src/REL/m449Dll/main.c @@ -1697,7 +1697,7 @@ void fn_1_7F94(ModelData *model, ParticleData *particle, Mtx matrix) } } for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16 == 1) { + if (var_r31->unk00 == 1) { var_f31 = ((frand() & 0xFF) * 0x168) >> 8; var_f30 = 0.5 + (1.5 * (rand8() / 256.0)); var_r31->unk08.x = 2.5 * (var_f30 * sind(var_f31)); @@ -1715,7 +1715,7 @@ void fn_1_7F94(ModelData *model, ParticleData *particle, Mtx matrix) var_r31->unk40.a = 0xFF; var_r31->unk2C = 50.0f; } - if (var_r31->unk00_s16 < 0xF0) { + if (var_r31->unk00 < 0xF0) { VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); var_r31->unk08.x *= 0.9f; var_r31->unk08.z *= 0.9f; @@ -1730,8 +1730,8 @@ void fn_1_7F94(ModelData *model, ParticleData *particle, Mtx matrix) var_r31->unk2C = 0.0f; } } - var_r31->unk00_s16 += var_r31->unk00_s16 < 0x8000; - if (var_r31->unk00_s16 >= 0xF0) { + var_r31->unk00 += var_r31->unk00 < 0x8000; + if (var_r31->unk00 >= 0xF0) { var_r31->unk40.a = 0; var_r31->unk2C = 0.0f; } diff --git a/src/REL/m455Dll/stage.c b/src/REL/m455Dll/stage.c index c7873251..ff708c84 100644 --- a/src/REL/m455Dll/stage.c +++ b/src/REL/m455Dll/stage.c @@ -1096,7 +1096,7 @@ void fn_1_6A6C(omObjData *object) HsfanimStruct01 *data = particleP->unk_48; s32 j; for(j=0; junk_30; j++, data++) { - if(++data->unk00_s16 > data->unk02) { + if(++data->unk00 > data->unk02) { s32 alpha = data->unk40.a-1; if(alpha < 0) { data->unk2C = 0; @@ -1163,7 +1163,7 @@ s32 fn_1_6CB0(Vec *arg0, float arg1) temp_r30->unk08.x = temp_f31*(0.65f*(50.0*(temp_f28*sind(temp_f29)))); temp_r30->unk08.z = temp_f31*(0.65f*(50.0*(temp_f28*cosd(temp_f29)))); temp_r30->unk08.y = temp_f31*(50*temp_f26*temp_f25); - temp_r30->unk00_s16 = 0; + temp_r30->unk00 = 0; temp_r30->unk02 = ((s32)frand()%16)+45; temp_r30->unk30 = (s32)frand()%360; temp_r30->unk2C = 145; @@ -1280,10 +1280,10 @@ void fn_1_76B0(omObjData *object) if(temp_r30->unk2C <= 0.0f) { continue; } - if(++temp_r30->unk00_s16 > 360) { - temp_r30->unk00_s16 -= 360; + if(++temp_r30->unk00 > 360) { + temp_r30->unk00 -= 360; } - temp_r30->unk34.x += temp_r30->unk08.x*sind(2.0f*temp_r30->unk00_s16); + temp_r30->unk34.x += temp_r30->unk08.x*sind(2.0f*temp_r30->unk00); temp_r30->unk34.y += temp_r30->unk08.y; if(temp_r30->unk34.y >= 0.0f) { fn_1_6698(&temp_r30->unk34, 0.00625f*temp_r30->unk2C, 1, 15); @@ -1322,7 +1322,7 @@ s32 fn_1_79C8(Vec *pos, float scale) temp_r31->unk08.x = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*0.5f; temp_r31->unk08.z = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F)))); temp_r31->unk08.y = (1.5f+(0.2f*(0.007874016f*((s32)frand() & 0x7F))))*2.0f; - temp_r31->unk00_s16 = (s32)frand()%360; + temp_r31->unk00 = (s32)frand()%360; temp_r31->unk2C = 20*scale; return i; } @@ -1804,4 +1804,4 @@ float fn_1_9F18(float start, float end, float max) } return angle; -} \ No newline at end of file +} diff --git a/src/REL/m456Dll/stage.c b/src/REL/m456Dll/stage.c index 072377d8..8e13a6cf 100644 --- a/src/REL/m456Dll/stage.c +++ b/src/REL/m456Dll/stage.c @@ -991,7 +991,7 @@ void fn_1_659C(omObjData *object) HsfanimStruct01 *data = particleP->unk_48; s32 j; for (j = 0; j < particleP->unk_30; j++, data++) { - if (++data->unk00_s16 > data->unk02) { + if (++data->unk00 > data->unk02) { s32 alpha = data->unk40.a - 1; if (alpha < 0) { data->unk2C = 0; @@ -1060,7 +1060,7 @@ s32 fn_1_67E0(Vec *arg0, float arg1) temp_r30->unk08.x = temp_f31 * (0.65f * (50.0 * (temp_f28 * sind(temp_f29)))); temp_r30->unk08.z = temp_f31 * (0.65f * (50.0 * (temp_f28 * cosd(temp_f29)))); temp_r30->unk08.y = temp_f31 * (50 * temp_f26 * temp_f25); - temp_r30->unk00_s16 = 0; + temp_r30->unk00 = 0; temp_r30->unk02 = ((s32)frand() % 16) + 45; temp_r30->unk30 = (s32)frand() % 360; temp_r30->unk2C = 145.0f; @@ -1174,10 +1174,10 @@ void fn_1_71E0(omObjData *object) if (temp_r30->unk2C <= 0.0f) { continue; } - if (++temp_r30->unk00_s16 > 360) { - temp_r30->unk00_s16 -= 360; + if (++temp_r30->unk00 > 360) { + temp_r30->unk00 -= 360; } - temp_r30->unk34.x += temp_r30->unk08.x * sind(2.0f * temp_r30->unk00_s16); + temp_r30->unk34.x += temp_r30->unk08.x * sind(2.0f * temp_r30->unk00); temp_r30->unk34.y += temp_r30->unk08.y; if (temp_r30->unk34.y >= 0.0f) { fn_1_61C8(&temp_r30->unk34, 0.00625f * temp_r30->unk2C, 1, REFRESH_RATE / 4); @@ -1221,7 +1221,7 @@ s32 fn_1_74F8(Vec *pos, float scale) temp_r31->unk08.z = (1.5f + (0.2f * (0.007874016f * ((s32)frand() & 0x7F)))); temp_r31->unk08.y = (1.5f + (0.2f * (0.007874016f * ((s32)frand() & 0x7F)))) * 2.0f; #endif - temp_r31->unk00_s16 = (s32)frand() % 360; + temp_r31->unk00 = (s32)frand() % 360; temp_r31->unk2C = 20 * scale; return i; } diff --git a/src/REL/m460Dll/map.c b/src/REL/m460Dll/map.c index 609dad13..15fa7f53 100644 --- a/src/REL/m460Dll/map.c +++ b/src/REL/m460Dll/map.c @@ -408,7 +408,7 @@ void fn_1_7B94(s32 arg0) var_r30 = Hu3DData[arg0].unk_120; for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { - if (var_r31->unk00_s16 != 0) { + if (var_r31->unk00 != 0) { VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); switch (var_r31->unk02) { case 0: @@ -425,11 +425,11 @@ void fn_1_7B94(s32 arg0) var_r31->unk20 *= 0.995f; break; } - if (var_r31->unk00_s16 < 12.0f) { + if (var_r31->unk00 < 12.0f) { var_r31->unk20 = 0.9f * var_r31->unk20; } var_r31->unk40.a = var_r31->unk20; - if (--var_r31->unk00_s16 == 0) { + if (--var_r31->unk00 == 0) { var_r31->unk00 = 0; var_r31->unk2C = 0.0f; var_r31->unk40.a = 0; @@ -459,7 +459,7 @@ void fn_1_7DA8(omObjData *object, Vec *arg1, u32 arg2) } var_r27 = sp10[arg2]; for (var_r31 = var_r30->unk_48, var_r28 = 0; var_r28 < var_r30->unk_30; var_r28++, var_r31++) { - if (var_r31->unk00_s16 == 0) { + if (var_r31->unk00 == 0) { var_r31->unk02 = arg2; sp1C.x = 100.0f * ((0.0026f * frandmod(0x3E8)) - 1.3f); sp1C.y = 0.0f; @@ -468,7 +468,7 @@ void fn_1_7DA8(omObjData *object, Vec *arg1, u32 arg2) var_r31->unk30 = 0.0031415902f * frandmod(0x3E8); switch (arg2) { case 0: - var_r31->unk00_s16 = 60.0f * (0.8f + (0.0007f * frandmod(0x3E8))); + var_r31->unk00 = 60.0f * (0.8f + (0.0007f * frandmod(0x3E8))); var_r31->unk08.x = 1.6666667f * (0.000100000005f * frandmod(0x3E8) - 0.05f); var_r31->unk08.y = 1.6666667f * (0.05f + (0.00020000001f * frandmod(0x3E8))); var_r31->unk08.z = 1.6666667f * (0.1f + (0.0006f * frandmod(0x3E8))); diff --git a/src/REL/mstory3Dll/win_effect.c b/src/REL/mstory3Dll/win_effect.c index 48590c1b..2a86dd6c 100755 --- a/src/REL/mstory3Dll/win_effect.c +++ b/src/REL/mstory3Dll/win_effect.c @@ -253,7 +253,7 @@ void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix) { if (!var_r31->unk2C) { continue; } - if (var_r31->unk00_s16 == 0) { + if (var_r31->unk00 == 0) { PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34); var_r31->unk08.x *= 0.999f; var_r31->unk08.y -= 0.5f; @@ -262,19 +262,19 @@ void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix) { PSVECScale(&var_r31->unk08, &var_r31->unk08, 1.0 - ((var_r31->unk02 - (temp_r26 - temp_r26 / 5.0)) / (temp_r26 / 5.0))); } if (var_r31->unk02 == temp_r26) { - var_r31->unk00_s16++; + var_r31->unk00++; } if (var_r31->unk34.y <= 0.0f) { var_r31->unk08.y = 0.5f * -var_r31->unk08.y; var_r31->unk34.y = 0.0f; } - } else if (var_r31->unk00_s16 == 1) { + } else if (var_r31->unk00 == 1) { sp8 = temp_r28->unk00[var_r29]; PSVECSubtract(&sp8, &var_r31->unk34, &sp8); if (PSVECMag(&sp8) <= 1.0 + temp_f31) { var_r23++; var_r31->unk34 = temp_r28->unk00[var_r29]; - var_r31->unk00_s16++; + var_r31->unk00++; continue; } PSVECNormalize(&sp8, &sp8); @@ -286,7 +286,7 @@ void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix) { } else { var_r23++; } - if (var_r31->unk00_s16 >= 1) { + if (var_r31->unk00 >= 1) { var_r27 = var_r31->unk40.r; var_r27 += (var_r27 - 0xFF) / 20; if (var_r27 > 0xFF) { diff --git a/src/game/board/item.c b/src/game/board/item.c index 4386a4a7..d2341c9c 100755 --- a/src/game/board/item.c +++ b/src/game/board/item.c @@ -1942,7 +1942,7 @@ static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx mat var_r31->unk2C = 25.0f; temp_f30 = 175.0f + frand8() * 0x50 * 0.003921569f; var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = temp_f30; - var_r31->unk00_s16 = 0; + var_r31->unk00 = 0; } } } @@ -1952,7 +1952,7 @@ static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx mat var_r31 = particle->unk_48; for (i = 0; i < particle->unk_30; i++, var_r31++) { if (var_r31->unk2C != 0.0f) { - if (var_r31->unk00_s16 == 0) { + if (var_r31->unk00 == 0) { VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34); VECScale(&var_r31->unk08, &var_r31->unk08, 0.95f); var_r31->unk2C += 8.0f; @@ -1963,7 +1963,7 @@ static void LampParticleUpdate(ModelData *model, ParticleData *particle, Mtx mat var_r31->unk08.x = 6.0 * cosd(temp_f31); var_r31->unk08.y = -4.0f; var_r31->unk08.z = 6.0 * sind(temp_f31); - var_r31->unk00_s16 = 1; + var_r31->unk00 = 1; } var_r31->unk40.a = var_r31->unk14.y; } diff --git a/src/game/chrman.c b/src/game/chrman.c index aa090cf3..e98f50e1 100755 --- a/src/game/chrman.c +++ b/src/game/chrman.c @@ -911,7 +911,7 @@ static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix) var_r31->unk40.a = var_r28; if (var_r31->unk2C) { if (temp_r30[i].unk00 & 1) { - var_r31->unk2C = var_r31->unk28 * (((var_r31->unk00_s16 + i) & 1) ? 1.0 : 0.5); + var_r31->unk2C = var_r31->unk28 * (((var_r31->unk00 + i) & 1) ? 1.0 : 0.5); } else { var_r31->unk2C = var_r31->unk28; @@ -921,7 +921,7 @@ static void UpdateEffect(ModelData *model, ParticleData *particle, Mtx matrix) var_r31->unk2C = 0.0f; } } - var_r31->unk00_s16++; + var_r31->unk00++; } else { switch (var_r31->unk02) { @@ -947,11 +947,11 @@ static void RotateEffect(HsfanimStruct01 *arg0) float var_f31; temp_r30 = &Hu3DData[(s32)arg0->unk08.x]; - if (arg0->unk00_s16 < 8) { - var_f31 = 0.3 + sind(40.0f + 10.0f * (arg0->unk00_s16 + 1)); + if (arg0->unk00 < 8) { + var_f31 = 0.3 + sind(40.0f + 10.0f * (arg0->unk00 + 1)); arg0->unk2C = 50.0f * var_f31 * temp_r30->scale.x; arg0->unk40.a = 0xFF; - var_f31 = 0.3 + sind(15.0f * (arg0->unk00_s16 + 1)); + var_f31 = 0.3 + sind(15.0f * (arg0->unk00 + 1)); } else { var_f31 = 0.3 + sind(135); @@ -960,14 +960,14 @@ static void RotateEffect(HsfanimStruct01 *arg0) arg0->unk34.x = temp_r30->pos.x + arg0->unk14.x * var_f31; arg0->unk34.y = temp_r30->pos.y + arg0->unk08.y * temp_r30->scale.x + arg0->unk14.y * var_f31; arg0->unk34.z = temp_r30->pos.z + arg0->unk14.z * var_f31; - if (arg0->unk00_s16 > 0x14) { + if (arg0->unk00 > 0x14) { arg0->unk40.a -= 0x20; arg0->unk2C -= 8.0f * temp_r30->scale.x; if (arg0->unk2C < 0.0f) { arg0->unk2C = 0.0f; } } - arg0->unk00_s16++; + arg0->unk00++; } static float voiceParam[16] @@ -984,7 +984,7 @@ static void PlayEffectSound(HsfanimStruct01 *arg0) temp_r28 = arg0->unk08.x; temp_r29 = &charInstance[temp_r28]; temp_r30 = &Hu3DData[temp_r29->unk00]; - if (arg0->unk00_s16 < 0x14 && arg0->unk2C < 40.0f * temp_r30->scale.x) { + if (arg0->unk00 < 0x14 && arg0->unk2C < 40.0f * temp_r30->scale.x) { arg0->unk2C += 4.0f * temp_r30->scale.x; } arg0->unk40.a = 0xFF; @@ -994,15 +994,15 @@ static void PlayEffectSound(HsfanimStruct01 *arg0) else { var_r25 = voiceParam[temp_r28 * 2 + 1]; } - temp_r26 = (arg0->unk00_s16 * 5) % 360; + temp_r26 = (arg0->unk00 * 5) % 360; arg0->unk34.x = temp_r30->pos.x + 40.0 * sind(arg0->unk08.y + temp_r26) * temp_r30->scale.x; arg0->unk34.y = temp_r30->pos.y + var_r25 * temp_r30->scale.x; arg0->unk34.z = temp_r30->pos.z + 40.0 * cosd(arg0->unk08.y + temp_r26) * temp_r30->scale.x; - arg0->unk00_s16++; - if (arg0->unk00_s16 >= 0x8F) { - arg0->unk00_s16 = 0x48; + arg0->unk00++; + if (arg0->unk00 >= 0x8F) { + arg0->unk00 = 0x48; } - if (temp_r29->unk04 != 0x15 && temp_r29->unk04 != 0x16 && temp_r29->unk04 != 0x79 && arg0->unk00_s16 > 0x1E) { + if (temp_r29->unk04 != 0x15 && temp_r29->unk04 != 0x16 && temp_r29->unk04 != 0x79 && arg0->unk00 > 0x1E) { arg0->unk2C -= 4.0f * temp_r30->scale.x; if (arg0->unk2C < 0.0f) { arg0->unk2C = 0.0f; @@ -1501,7 +1501,7 @@ static void OrbitEffect(HsfanimStruct01 *arg0) float var_f30; s16 temp_r30; - var_f30 = 20.0f + 3.75f * arg0->unk00_s16; + var_f30 = 20.0f + 3.75f * arg0->unk00; if (var_f30 > 90.0f) { var_f30 = 90.0f; } @@ -1514,7 +1514,7 @@ static void OrbitEffect(HsfanimStruct01 *arg0) if (arg0->unk20 < 1.0f) { arg0->unk20 = 1.0f; } - if (arg0->unk00_s16 > 8) { + if (arg0->unk00 > 8) { temp_r30 = arg0->unk40.a; temp_r30 -= 8; if (temp_r30 < 0) { @@ -1525,7 +1525,7 @@ static void OrbitEffect(HsfanimStruct01 *arg0) arg0->unk40.a = temp_r30; } } - arg0->unk00_s16++; + arg0->unk00++; } static EffectParamData coinParticleParam diff --git a/src/game/hsfanim.c b/src/game/hsfanim.c index 7de7763f..b5a73d37 100755 --- a/src/game/hsfanim.c +++ b/src/game/hsfanim.c @@ -55,7 +55,7 @@ s16 Hu3DAnimCreate(void *arg0, s16 arg1, char *arg2) { Hu3DTexAnimDataStruct *var_r31; HsfAttribute *var_r29; HsfData *temp_r27; - HsfanimStruct01 *var_r30; + HsfdrawStruct01 *var_r30; s16 i; s16 var_r25; s16 var_r28; @@ -75,7 +75,7 @@ s16 Hu3DAnimCreate(void *arg0, s16 arg1, char *arg2) { for (i = var_r25 = 0; i < temp_r27->attributeCnt; i++, var_r29++) { if (strcmp(arg2, var_r29->bitmap->name) == 0) { if (!var_r29->unk04) { - var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfanimStruct01), (u32) Hu3DData[arg1].unk_48); + var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r30), (u32) Hu3DData[arg1].unk_48); var_r29->unk04 = var_r30; var_r30->unk00 = 0; } else { @@ -84,7 +84,7 @@ s16 Hu3DAnimCreate(void *arg0, s16 arg1, char *arg2) { var_r30->unk00 |= 1; var_r30->unk02 = var_r28; var_r30->unk2C = var_r30->unk30 = 1.0f; - var_r30->unk34.x = var_r30->unk34.y = 0.0f; + var_r30->unk34 = var_r30->unk38 = 0.0f; var_r25++; } } @@ -112,7 +112,7 @@ s16 Hu3DAnimLink(s16 arg0, s16 arg1, char *arg2) { AnimData *temp_r4; HsfAttribute *var_r29; HsfData *temp_r27; - HsfanimStruct01 *var_r30; + HsfdrawStruct01 *var_r30; s16 var_r28; s16 i; s16 var_r25; @@ -132,14 +132,14 @@ s16 Hu3DAnimLink(s16 arg0, s16 arg1, char *arg2) { for (i = var_r25 = 0; i < temp_r27->attributeCnt; i++, var_r29++) { if (strcmp(arg2, var_r29->bitmap->name) == 0) { if (!var_r29->unk04) { - var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfanimStruct01), (u32) Hu3DData[arg1].unk_48); + var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r30), (u32) Hu3DData[arg1].unk_48); var_r29->unk04 = var_r30; } else { var_r30 = var_r29->unk04; } var_r30->unk02 = var_r28; var_r30->unk2C = var_r30->unk30 = 1.0f; - var_r30->unk34.x = var_r30->unk34.y = 0.0f; + var_r30->unk34 = var_r30->unk38 = 0.0f; var_r25++; } } @@ -162,7 +162,7 @@ void Hu3DAnimKill(s16 arg0) { Hu3DTexAnimDataStruct *temp_r31 = &Hu3DTexAnimData[arg0]; HsfData *temp_r28 = Hu3DData[temp_r31->unk06].hsfData; HsfAttribute *var_r30; - HsfanimStruct01 *temp_r29; + HsfdrawStruct01 *temp_r29; s16 i; if (temp_r28) { @@ -242,7 +242,7 @@ void Hu3DAnmNoSet(s16 arg0, u16 arg1) { } s32 Hu3DAnimSet(ModelData *arg0, HsfAttribute *arg1, s16 arg2) { - HsfanimStruct01 *temp_r30; + HsfdrawStruct01 *temp_r30; Hu3DTexAnimDataStruct *temp_r29; AnimData *temp_r27; AnimBmpData *temp_r28; @@ -268,8 +268,8 @@ s32 Hu3DAnimSet(ModelData *arg0, HsfAttribute *arg1, s16 arg2) { (arg0->attr & HU3D_ATTR_TEX_NEAR) ? GX_NEAR : GX_LINEAR); temp_r30->unk2C = (float) temp_r31->sizeX / temp_r28->sizeX; temp_r30->unk30 = (float) temp_r31->sizeY / temp_r28->sizeY; - temp_r30->unk34.x = (float) temp_r31->startX / temp_r28->sizeX; - temp_r30->unk34.y = (float) temp_r31->startY / temp_r28->sizeY; + temp_r30->unk34 = (float) temp_r31->startX / temp_r28->sizeX; + temp_r30->unk38 = (float) temp_r31->startY / temp_r28->sizeY; return 1; } @@ -359,7 +359,7 @@ s16 Hu3DTexScrollCreate(s16 arg0, char *arg1) { Hu3DTexScrDataStruct *var_r31; HsfData *temp_r27; HsfAttribute *var_r29; - HsfanimStruct01 *var_r30; + HsfdrawStruct01 *var_r30; s16 i; s16 var_r25; s16 var_r28; @@ -379,7 +379,7 @@ s16 Hu3DTexScrollCreate(s16 arg0, char *arg1) { for (i = var_r25 = 0; i < temp_r27->attributeCnt; i++, var_r29++) { if (strcmp(arg1, var_r29->bitmap->name) == 0) { if (!var_r29->unk04) { - var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(HsfanimStruct01), (u32) Hu3DData[arg0].unk_48); + var_r30 = HuMemDirectMallocNum(HEAP_DATA, sizeof(*var_r30), (u32) Hu3DData[arg0].unk_48); var_r29->unk04 = var_r30; var_r30->unk00 = 0; } else { @@ -388,7 +388,7 @@ s16 Hu3DTexScrollCreate(s16 arg0, char *arg1) { var_r30->unk00 |= 2; var_r30->unk04 = var_r28; var_r30->unk2C = var_r30->unk30 = 1.0f; - var_r30->unk34.x = var_r30->unk34.y = 0.0f; + var_r30->unk34 = var_r30->unk38 = 0.0f; var_r25++; } } @@ -408,7 +408,7 @@ void Hu3DTexScrollKill(s16 arg0) { Hu3DTexScrDataStruct *temp_r28 = &Hu3DTexScrData[arg0]; HsfData *temp_r29 = Hu3DData[temp_r28->unk02].hsfData; HsfAttribute *var_r31; - HsfanimStruct01 *temp_r30; + HsfdrawStruct01 *temp_r30; s16 i; if (temp_r29) { @@ -1241,7 +1241,7 @@ static void ParManHook(ModelData *model, ParticleData *particle, Mtx matrix) { var_r29->unk2C = var_r29->unk28; } if (!(temp_r28->unk02 & 0x80)) { - sp8 = var_r29->unk00_s16; + sp8 = var_r29->unk00; var_r29->unk34.x += var_r29->unk08.x + var_r29->unk14.x; var_r29->unk34.y += var_r29->unk08.y + var_r29->unk14.y; var_r29->unk34.z += var_r29->unk08.z + var_r29->unk14.z; @@ -1261,7 +1261,7 @@ static void ParManHook(ModelData *model, ParticleData *particle, Mtx matrix) { } } var_r29->unk28 *= temp_r26->unk28; - var_f30 = (float) var_r29->unk00_s16 / temp_r26->unk00; + var_f30 = (float) var_r29->unk00 / temp_r26->unk00; if (var_f30 > 1.0f) { var_f30 = 1.0f; } @@ -1272,10 +1272,10 @@ static void ParManHook(ModelData *model, ParticleData *particle, Mtx matrix) { var_r29->unk40.g = temp_r27->g + var_f30 * (temp_r24->g - temp_r27->g); var_r29->unk40.b = temp_r27->b + var_f30 * (temp_r24->b - temp_r27->b); var_r29->unk40.a = temp_r27->a + var_f30 * (temp_r24->a - temp_r27->a); - if (var_r29->unk2C < 0.01 || var_r29->unk00_s16 >= temp_r26->unk00) { + if (var_r29->unk2C < 0.01 || var_r29->unk00 >= temp_r26->unk00) { var_r29->unk2C = 0.0f; } - var_r29->unk00_s16++; + var_r29->unk00++; } } } From 2309176a5cddc65c145c4f3a682046fa1940bb3c Mon Sep 17 00:00:00 2001 From: mrshigure Date: Mon, 27 Jan 2025 16:50:48 -0800 Subject: [PATCH 275/311] Making some MSL_C progress (#549) --- configure.py | 42 +-- .../Msl/MSL_C/MSL_Common/ansi_files.h | 10 +- .../Msl/MSL_C/MSL_Common/stdio.h | 6 +- src/MSL_C.PPCEABI.bare.H/FILE_POS.c | 97 ++++++ src/MSL_C.PPCEABI.bare.H/ansi_files.c | 198 ++++++----- src/MSL_C.PPCEABI.bare.H/arith.c | 13 + src/MSL_C.PPCEABI.bare.H/direct_io.c | 222 ++++++------ src/MSL_C.PPCEABI.bare.H/e_acos.c | 2 +- src/MSL_C.PPCEABI.bare.H/e_asin.c | 2 +- src/MSL_C.PPCEABI.bare.H/e_pow.c | 4 +- src/MSL_C.PPCEABI.bare.H/e_rem_pio2.c | 175 ++++++++++ src/MSL_C.PPCEABI.bare.H/file_io.c | 58 ++++ src/MSL_C.PPCEABI.bare.H/k_cos.c | 91 +++++ src/MSL_C.PPCEABI.bare.H/k_rem_pio2.c | 316 ++++++++++++++++++ src/MSL_C.PPCEABI.bare.H/k_sin.c | 73 ++++ src/MSL_C.PPCEABI.bare.H/k_tan.c | 134 ++++++++ src/MSL_C.PPCEABI.bare.H/mbstring.c | 76 ++++- src/MSL_C.PPCEABI.bare.H/misc_io.c | 7 +- src/MSL_C.PPCEABI.bare.H/s_floor.c | 78 +++++ src/MSL_C.PPCEABI.bare.H/s_ldexp.c | 55 ++- src/MSL_C.PPCEABI.bare.H/signal.c | 26 ++ src/MSL_C.PPCEABI.bare.H/uart_console_io.c | 32 ++ src/MSL_C.PPCEABI.bare.H/wchar_io.c | 2 +- 23 files changed, 1456 insertions(+), 263 deletions(-) create mode 100755 src/MSL_C.PPCEABI.bare.H/FILE_POS.c create mode 100755 src/MSL_C.PPCEABI.bare.H/arith.c create mode 100755 src/MSL_C.PPCEABI.bare.H/e_rem_pio2.c create mode 100755 src/MSL_C.PPCEABI.bare.H/file_io.c create mode 100755 src/MSL_C.PPCEABI.bare.H/k_cos.c create mode 100755 src/MSL_C.PPCEABI.bare.H/k_rem_pio2.c create mode 100755 src/MSL_C.PPCEABI.bare.H/k_sin.c create mode 100755 src/MSL_C.PPCEABI.bare.H/k_tan.c create mode 100755 src/MSL_C.PPCEABI.bare.H/s_floor.c create mode 100755 src/MSL_C.PPCEABI.bare.H/signal.c create mode 100755 src/MSL_C.PPCEABI.bare.H/uart_console_io.c diff --git a/configure.py b/configure.py index 613dd441..c95c4390 100644 --- a/configure.py +++ b/configure.py @@ -676,47 +676,47 @@ config.libs = [ }, { "lib": "MSL_C.PPCEABI.bare.H", - "mw_version": config.linker_version, + "mw_version": "GC/1.3", "cflags": cflags_msl, "host": False, "objects": [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/abort_exit.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/alloc.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/errno.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/ansi_files.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/ansi_files.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/ansi_fp.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/arith.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/buffer_io.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/arith.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/buffer_io.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/ctype.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/direct_io.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/file_io.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/FILE_POS.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/mbstring.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/direct_io.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/file_io.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/FILE_POS.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/mbstring.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/mem.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/mem_funcs.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/misc_io.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/mem_funcs.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/misc_io.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/printf.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/float.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/signal.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/string.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/uart_console_io.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/wchar_io.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/uart_console_io.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/wchar_io.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/e_acos.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/e_asin.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/e_atan2.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/e_fmod.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_pow.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/e_rem_pio2.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/k_cos.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/k_rem_pio2.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/k_sin.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/k_tan.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_atan.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/e_pow.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/e_rem_pio2.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/k_cos.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/k_rem_pio2.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/k_sin.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/k_tan.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_atan.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_copysign.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_cos.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_floor.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_floor.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_frexp.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/s_ldexp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_ldexp.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_modf.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_sin.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/s_tan.c"), diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h index f06c55df..d101a4bb 100644 --- a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h @@ -85,6 +85,7 @@ typedef struct _FILE { file_modes file_mode; file_states file_state; + char is_dynamically_allocated; char char_buffer; char char_buffer_overflow; char ungetc_buffer[2]; @@ -104,19 +105,14 @@ typedef struct _FILE { __io_proc write_fn; __close_proc close_fn; __idle_proc idle_fn; + struct _FILE* next_file_struct; } FILE; -typedef struct _files { - FILE _stdin; - FILE _stdout; - FILE _stderr; -} files; - #define _IONBF 0 #define _IOLBF 1 #define _IOFBF 2 -extern files __files; +extern FILE __files[]; extern int __close_console(__file_handle file); extern int __write_console(__file_handle file, unsigned char* buf, size_t* count, __idle_proc idle_fn); diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdio.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdio.h index 89806588..01097a0c 100644 --- a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdio.h +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/stdio.h @@ -6,8 +6,8 @@ #include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/printf.h" // IWYU pragma: export #include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/extras.h" // IWYU pragma: export -#define stdin (&__files._stdin) -#define stdout (&__files._stdout) -#define stderr (&__files._stderr) +#define stdin (&__files[0]) +#define stdout (&__files[1]) +#define stderr (&__files[2]) #endif diff --git a/src/MSL_C.PPCEABI.bare.H/FILE_POS.c b/src/MSL_C.PPCEABI.bare.H/FILE_POS.c new file mode 100755 index 00000000..f0b5e933 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/FILE_POS.c @@ -0,0 +1,97 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/errno.h" + +inline fpos_t _ftell(FILE* file) { + int charsInUndoBuffer = 0; + fpos_t position; + unsigned char tmp_kind = file->file_mode.file_kind; + + if (!(tmp_kind == __disk_file || tmp_kind == __console_file) || file->file_state.error) { + errno = EFPOS; + return -1; + } + + if (file->file_state.io_state == __neutral) + return (file->position); + + position = file->buffer_position + (file->buffer_ptr - file->buffer); + + if (file->file_state.io_state >= __rereading) { + charsInUndoBuffer = file->file_state.io_state - __rereading + 1; + position -= charsInUndoBuffer; + } + + return (position); +} + +long ftell(FILE* file) { + long retval; + + retval = (long)_ftell(file); + + return retval; +} + +int _fseek(FILE* file, fpos_t offset, int file_mode) { + fpos_t position; + __pos_proc pos_proc; + unsigned char tmp_kind = file->file_mode.file_kind; + + if (!(tmp_kind == __disk_file) || file->file_state.error) { + errno = EFPOS; + return (-1); + } + + if (file->file_state.io_state == __writing) { + if (__flush_buffer(file, NULL) != __no_io_error) { + set_error(file); + errno = EFPOS; + return (-1); + } + } + + if (file_mode == SEEK_CUR) { + file_mode = SEEK_SET; + if ((position = _ftell(file)) < 0) + position = 0; + offset += position; + } + + if ((file_mode != SEEK_END) && (file->file_mode.io_mode != __read_write) && + ((file->file_state.io_state == __reading) || (file->file_state.io_state == __rereading))) + { + if (offset >= file->position || offset < file->buffer_position) { + file->file_state.io_state = __neutral; + } else { + file->buffer_ptr = file->buffer + (offset - file->buffer_position); + file->buffer_length = file->position - offset; + file->file_state.io_state = __reading; + } + } else { + file->file_state.io_state = __neutral; + } + + if (file->file_state.io_state == __neutral) { + if ((pos_proc = file->position_fn) != NULL && pos_proc(file->handle, &offset, file_mode, file->idle_fn)) { + set_error(file); + errno = EFPOS; + return -1; + } + + file->file_state.eof = 0; + file->position = offset; + file->buffer_length = 0; + } + + return 0; +} + +int fseek(FILE * file, long offset, int file_mode) +{ + fpos_t real_offset = (fpos_t)offset; + int retval; + + retval = _fseek(file, real_offset, file_mode); + + return(retval); +} diff --git a/src/MSL_C.PPCEABI.bare.H/ansi_files.c b/src/MSL_C.PPCEABI.bare.H/ansi_files.c index f0113bf4..76ffbe61 100644 --- a/src/MSL_C.PPCEABI.bare.H/ansi_files.c +++ b/src/MSL_C.PPCEABI.bare.H/ansi_files.c @@ -1,95 +1,111 @@ #include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" #include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/file_io.h" -extern files __files = { - { - 0, - 0, - 1, - 0, - 2, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - { 0, 0 }, - { 0, 0 }, - 0, - (unsigned char*)&__files._stdin.char_buffer, - 1, - (unsigned char*)&__files._stdin.char_buffer, - 0, - 0, - 0, - 0, - NULL, - __read_console, - __write_console, - __close_console, - NULL, - }, - { - 0, - 0, - 2, - 0, - 2, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - { 0, 0 }, - { 0, 0 }, - 0, - (unsigned char*)&__files._stdout.char_buffer, - 1, - (unsigned char*)&__files._stdout.char_buffer, - 0, - 0, - 0, - 0, - NULL, - __read_console, - __write_console, - __close_console, - NULL, - }, - { - 0, - 0, - 2, - 0, - 2, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - { 0, 0 }, - { 0, 0 }, - 0, - (unsigned char*)&__files._stderr.char_buffer, - 1, - (unsigned char*)&__files._stderr.char_buffer, - 0, - 0, - 0, - 0, - NULL, - __read_console, - __write_console, - __close_console, - NULL, - }, +static unsigned char stdin_buff[0x100]; +static unsigned char stdout_buff[0x100]; +static unsigned char stderr_buff[0x100]; + +FILE __files[4] = { + {0, + {0, 1, 1, 2, 0}, + {0, 0, 0, 0}, + 0, + 0, + 0, + {0, 0}, + {0, 0}, + 0, + stdin_buff, + sizeof(stdin_buff), + stdin_buff, + 0, + 0, + 0, + 0, + NULL, + &__read_console, + &__write_console, + &__close_console, + 0, + &__files[1]}, + {1, + {0, 2, 1, 2, 0}, + {0, 0, 0, 0}, + 0, + 0, + 0, + {0, 0}, + {0, 0}, + 0, + stdout_buff, + sizeof(stdout_buff), + stdout_buff, + 0, + 0, + 0, + 0, + NULL, + &__read_console, + &__write_console, + &__close_console, + 0, + &__files[2]}, + {2, + {0, 2, 0, 2, 0}, + {0, 0, 0, 0}, + 0, + 0, + 0, + {0, 0}, + {0, 0}, + 0, + stderr_buff, + sizeof(stderr_buff), + stderr_buff, + 0, + 0, + 0, + 0, + NULL, + &__read_console, + &__write_console, + &__close_console, + 0, + &__files[3]}, }; + +void __close_all() { + FILE* p = &__files[0]; + FILE* plast; + + while (p != NULL) { + if (p->file_mode.file_kind != __closed_file) { + fclose(p); + } + + plast = p; + p = p->next_file_struct; + if (plast->is_dynamically_allocated) + free(plast); + else { + plast->file_mode.file_kind = __string_file; + if ((p != NULL) && p->is_dynamically_allocated) + plast->next_file_struct = NULL; + } + } +} + +unsigned int __flush_all() { + unsigned int retval = 0; + FILE* __stream; + + __stream = &__files[0]; + while (__stream) { + if ((__stream->file_mode.file_kind) && (fflush(__stream))) { + retval = -1; + } + __stream = __stream->next_file_struct; + }; + + return retval; +} diff --git a/src/MSL_C.PPCEABI.bare.H/arith.c b/src/MSL_C.PPCEABI.bare.H/arith.c new file mode 100755 index 00000000..974c95c2 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/arith.c @@ -0,0 +1,13 @@ +int abs(int n) { + if (n < 0) + return (-n); + else + return (n); +} + +long labs(long n) { + if (n < 0) + return (-n); + else + return (n); +} diff --git a/src/MSL_C.PPCEABI.bare.H/direct_io.c b/src/MSL_C.PPCEABI.bare.H/direct_io.c index 51184220..4cfa5184 100644 --- a/src/MSL_C.PPCEABI.bare.H/direct_io.c +++ b/src/MSL_C.PPCEABI.bare.H/direct_io.c @@ -1,114 +1,114 @@ #include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/direct_io.h" -#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/buffer_io.h" -#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/misc_io.h" -#include "string.h" -#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/wchar_io.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" -size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream) -{ - unsigned char* write_ptr; - size_t num_bytes, bytes_to_go, bytes_written; - int ioresult, always_buffer; - - if (fwide(stream, 0) == 0) - fwide(stream, -1); - - bytes_to_go = size * count; - - if (!bytes_to_go || stream->file_state.error - || stream->file_mode.file_kind == __closed_file) - return 0; - - if ((int)stream->file_mode.file_kind == __console_file) - __stdio_atexit(); - - always_buffer = !stream->file_mode.binary_io - || (int)stream->file_mode.file_kind == __string_file - || stream->file_mode.buffer_mode == _IOFBF - || stream->file_mode.buffer_mode == _IOLBF; - - if (stream->file_state.io_state == __neutral) { - if (stream->file_mode.io_mode & __write) { - stream->file_state.io_state = __writing; - - __prep_buffer(stream); - } - } - - if (stream->file_state.io_state != __writing) { - set_error(stream); - return 0; - } - - write_ptr = (unsigned char*)buffer; - bytes_written = 0; - - if (bytes_to_go - && (stream->buffer_ptr != stream->buffer || always_buffer)) { - stream->buffer_length - = stream->buffer_size - (stream->buffer_ptr - stream->buffer); - - do { - unsigned char* newline = NULL; - - num_bytes = stream->buffer_length; - - if (num_bytes > bytes_to_go) - num_bytes = bytes_to_go; - - if (num_bytes) { - memcpy(stream->buffer_ptr, write_ptr, num_bytes); - - write_ptr += num_bytes; - bytes_written += num_bytes; - bytes_to_go -= num_bytes; - - stream->buffer_ptr += num_bytes; - stream->buffer_length -= num_bytes; - } - - if (!stream->buffer_length - && (int)stream->file_mode.file_kind == __string_file) { - bytes_written += bytes_to_go; - break; - } - - if (!stream->buffer_length || newline != NULL - || (stream->file_mode.buffer_mode == _IONBF)) { - ioresult = __flush_buffer(stream, NULL); - - if (ioresult) { - set_error(stream); - bytes_to_go = 0; - break; - } - } - } while (bytes_to_go && always_buffer); - } - - if (bytes_to_go && !always_buffer) { - unsigned char* save_buffer = stream->buffer; - size_t save_size = stream->buffer_size; - - stream->buffer = write_ptr; - stream->buffer_size = bytes_to_go; - stream->buffer_ptr = write_ptr + bytes_to_go; - - if (__flush_buffer(stream, &num_bytes) != __no_io_error) - set_error(stream); - - bytes_written += num_bytes; - - stream->buffer = save_buffer; - stream->buffer_size = save_size; - - __prep_buffer(stream); - - stream->buffer_length = 0; - } - - if (stream->file_mode.buffer_mode != _IOFBF) - stream->buffer_length = 0; - - return ((bytes_written + size - 1) / size); +size_t fwrite(const void* ptr, size_t memb_size, size_t num_memb, FILE* file) { + size_t retval; + retval = __fwrite(ptr, memb_size, num_memb, file); + return (retval); +} + +size_t __fwrite(const void* ptr, size_t memb_size, size_t num_memb, FILE* file) { + unsigned char* write_ptr; + size_t num_bytes, bytes_to_go, bytes_written; + int ioresult, always_buffer; + +#ifndef __NO_WIDE_CHAR + if (fwide(file, 0) == 0) + fwide(file, -1); +#endif + + bytes_to_go = memb_size * num_memb; + + if (!bytes_to_go || file->file_state.error || file->file_mode.file_kind == __closed_file) + return 0; + + if (file->file_mode.file_kind == __console_file) + __stdio_atexit(); + + always_buffer = + !file->file_mode.binary_io || file->file_mode.buffer_mode == _IOFBF || file->file_mode.buffer_mode == _IOLBF; + + if (file->file_state.io_state == __neutral) { + if (file->file_mode.io_mode & __write) { + if (file->file_mode.io_mode & __append) { + if (fseek(file, 0, SEEK_END)) + return 0; + } + file->file_state.io_state = __writing; + + __prep_buffer(file); + } + } + + if (file->file_state.io_state != __writing) { + set_error(file); + return 0; + } + + write_ptr = (unsigned char*)ptr; + bytes_written = 0; + + if (bytes_to_go && (file->buffer_ptr != file->buffer || always_buffer)) { + file->buffer_length = file->buffer_size - (file->buffer_ptr - file->buffer); + + do { + unsigned char* newline = NULL; + + num_bytes = file->buffer_length; + + if (num_bytes > bytes_to_go) + num_bytes = bytes_to_go; + if (file->file_mode.buffer_mode == _IOLBF && num_bytes) + if ((newline = (unsigned char*)__memrchr(write_ptr, '\n', num_bytes)) != NULL) + num_bytes = newline + 1 - write_ptr; + + if (num_bytes) { + memcpy(file->buffer_ptr, write_ptr, num_bytes); + + write_ptr += num_bytes; + bytes_written += num_bytes; + bytes_to_go -= num_bytes; + + file->buffer_ptr += num_bytes; + file->buffer_length -= num_bytes; + } + if (!file->buffer_length || newline != NULL || + (file->file_mode.buffer_mode == _IONBF)) + { + ioresult = __flush_buffer(file, NULL); + + if (ioresult) { + set_error(file); + bytes_to_go = 0; + break; + } + } + } while (bytes_to_go && always_buffer); + } + + if (bytes_to_go && !always_buffer) { + unsigned char* save_buffer = file->buffer; + size_t save_size = file->buffer_size; + + file->buffer = write_ptr; + file->buffer_size = bytes_to_go; + file->buffer_ptr = write_ptr + bytes_to_go; + + if (__flush_buffer(file, &num_bytes) != __no_io_error) + set_error(file); + + bytes_written += num_bytes; + + file->buffer = save_buffer; + file->buffer_size = save_size; + + __prep_buffer(file); + + file->buffer_length = 0; + } + + if (file->file_mode.buffer_mode != _IOFBF) + file->buffer_length = 0; + + return ((bytes_written + memb_size - 1) / memb_size); } diff --git a/src/MSL_C.PPCEABI.bare.H/e_acos.c b/src/MSL_C.PPCEABI.bare.H/e_acos.c index 4842c54b..01bba5e0 100644 --- a/src/MSL_C.PPCEABI.bare.H/e_acos.c +++ b/src/MSL_C.PPCEABI.bare.H/e_acos.c @@ -1,5 +1,5 @@ #include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" -#include "math.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math.h" #ifdef __STDC__ static const double diff --git a/src/MSL_C.PPCEABI.bare.H/e_asin.c b/src/MSL_C.PPCEABI.bare.H/e_asin.c index 4abcf49d..743d78d5 100644 --- a/src/MSL_C.PPCEABI.bare.H/e_asin.c +++ b/src/MSL_C.PPCEABI.bare.H/e_asin.c @@ -1,5 +1,5 @@ #include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" -#include "math.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math.h" #ifdef __STDC__ static const double diff --git a/src/MSL_C.PPCEABI.bare.H/e_pow.c b/src/MSL_C.PPCEABI.bare.H/e_pow.c index 47b8f4e8..55b9b1c1 100644 --- a/src/MSL_C.PPCEABI.bare.H/e_pow.c +++ b/src/MSL_C.PPCEABI.bare.H/e_pow.c @@ -57,7 +57,7 @@ #include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" #include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/errno.h" -#include "math.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math.h" #ifdef __STDC__ static const double @@ -302,7 +302,7 @@ ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/ z = one-(r-z); j = __HI(z); j += (n<<20); - if((j>>20)<=0) z = scalbn(z,n); /* subnormal output */ + if((j>>20)<=0) z = ldexp(z,n); /* subnormal output */ else __HI(z) += (n<<20); return s*z; } diff --git a/src/MSL_C.PPCEABI.bare.H/e_rem_pio2.c b/src/MSL_C.PPCEABI.bare.H/e_rem_pio2.c new file mode 100755 index 00000000..ee1a50fa --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/e_rem_pio2.c @@ -0,0 +1,175 @@ +/* @(#)e_rem_pio2.c 1.4 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* __ieee754_rem_pio2(x,y) + * + * return the remainder of x rem pi/2 in y[0]+y[1] + * use __kernel_rem_pio2() + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math.h" + +/* + * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi + */ +#ifdef __STDC__ +static const int two_over_pi[] = { +#else +static int two_over_pi[] = { +#endif +0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62, +0x95993C, 0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, 0x246E3A, +0x424DD2, 0xE00649, 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129, +0xA73EE8, 0x8235F5, 0x2EBB44, 0x84E99C, 0x7026B4, 0x5F7E41, +0x3991D6, 0x398353, 0x39F49C, 0x845F8B, 0xBDF928, 0x3B1FF8, +0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D, 0x367ECF, +0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5, +0xF17B3D, 0x0739F7, 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08, +0x560330, 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3, +0x91615E, 0xE61B08, 0x659985, 0x5F14A0, 0x68408D, 0xFFD880, +0x4D7327, 0x310606, 0x1556CA, 0x73A8C9, 0x60E27B, 0xC08C6B, +}; + +#ifdef __STDC__ +static const int npio2_hw[] = { +#else +static int npio2_hw[] = { +#endif +0x3FF921FB, 0x400921FB, 0x4012D97C, 0x401921FB, 0x401F6A7A, 0x4022D97C, +0x4025FDBB, 0x402921FB, 0x402C463A, 0x402F6A7A, 0x4031475C, 0x4032D97C, +0x40346B9C, 0x4035FDBB, 0x40378FDB, 0x403921FB, 0x403AB41B, 0x403C463A, +0x403DD85A, 0x403F6A7A, 0x40407E4C, 0x4041475C, 0x4042106C, 0x4042D97C, +0x4043A28C, 0x40446B9C, 0x404534AC, 0x4045FDBB, 0x4046C6CB, 0x40478FDB, +0x404858EB, 0x404921FB, +}; + +/* + * invpio2: 53 bits of 2/pi + * pio2_1: first 33 bit of pi/2 + * pio2_1t: pi/2 - pio2_1 + * pio2_2: second 33 bit of pi/2 + * pio2_2t: pi/2 - (pio2_1+pio2_2) + * pio2_3: third 33 bit of pi/2 + * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3) + */ + +#ifdef __STDC__ +static const double +#else +static double +#endif +zero = 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ +half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ +two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */ +invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */ +pio2_1 = 1.57079632673412561417e+00, /* 0x3FF921FB, 0x54400000 */ +pio2_1t = 6.07710050650619224932e-11, /* 0x3DD0B461, 0x1A626331 */ +pio2_2 = 6.07710050630396597660e-11, /* 0x3DD0B461, 0x1A600000 */ +pio2_2t = 2.02226624879595063154e-21, /* 0x3BA3198A, 0x2E037073 */ +pio2_3 = 2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */ +pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */ + +#ifdef __STDC__ + int __ieee754_rem_pio2(double x, double *y) +#else + int __ieee754_rem_pio2(x,y) + double x,y[]; +#endif +{ + double z,w,t,r,fn; + double tx[3]; + int e0,i,j,nx,n,ix,hx; + + hx = __HI(x); /* high word of x */ + ix = hx&0x7fffffff; + if(ix<=0x3fe921fb) /* |x| ~<= pi/4 , no need for reduction */ + {y[0] = x; y[1] = 0; return 0;} + if(ix<0x4002d97c) { /* |x| < 3pi/4, special case with n=+-1 */ + if(hx>0) { + z = x - pio2_1; + if(ix!=0x3ff921fb) { /* 33+53 bit pi is good enough */ + y[0] = z - pio2_1t; + y[1] = (z-y[0])-pio2_1t; + } else { /* near pi/2, use 33+33+53 bit pi */ + z -= pio2_2; + y[0] = z - pio2_2t; + y[1] = (z-y[0])-pio2_2t; + } + return 1; + } else { /* negative x */ + z = x + pio2_1; + if(ix!=0x3ff921fb) { /* 33+53 bit pi is good enough */ + y[0] = z + pio2_1t; + y[1] = (z-y[0])+pio2_1t; + } else { /* near pi/2, use 33+33+53 bit pi */ + z += pio2_2; + y[0] = z + pio2_2t; + y[1] = (z-y[0])+pio2_2t; + } + return -1; + } + } + if(ix<=0x413921fb) { /* |x| ~<= 2^19*(pi/2), medium size */ + t = fabs(x); + n = (int) (t*invpio2+half); + fn = (double)n; + r = t-fn*pio2_1; + w = fn*pio2_1t; /* 1st round good to 85 bit */ + if(n<32&&ix!=npio2_hw[n-1]) { + y[0] = r-w; /* quick check no cancellation */ + } else { + j = ix>>20; + y[0] = r-w; + i = j-(((__HI(y[0]))>>20)&0x7ff); + if(i>16) { /* 2nd iteration needed, good to 118 */ + t = r; + w = fn*pio2_2; + r = t-w; + w = fn*pio2_2t-((t-r)-w); + y[0] = r-w; + i = j-(((__HI(y[0]))>>20)&0x7ff); + if(i>49) { /* 3rd iteration need, 151 bits acc */ + t = r; /* will cover all possible cases */ + w = fn*pio2_3; + r = t-w; + w = fn*pio2_3t-((t-r)-w); + y[0] = r-w; + } + } + } + y[1] = (r-y[0])-w; + if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;} + else return n; + } + /* + * all other (large) arguments + */ + if(ix>=0x7ff00000) { /* x is inf or NaN */ + y[0]=y[1]=x-x; return 0; + } + /* set z = scalbn(|x|,ilogb(x)-23) */ + __LO(z) = __LO(x); + e0 = (ix>>20)-1046; /* e0 = ilogb(z)-23; */ + __HI(z) = ix - (e0<<20); + for(i=0;i<2;i++) { + tx[i] = (double)((int)(z)); + z = (z-tx[i])*two24; + } + tx[2] = z; + nx = 3; + while(tx[nx-1]==zero) nx--; /* skip zero term */ + n = __kernel_rem_pio2(tx,y,e0,nx,2,two_over_pi); + if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;} + return n; +} diff --git a/src/MSL_C.PPCEABI.bare.H/file_io.c b/src/MSL_C.PPCEABI.bare.H/file_io.c new file mode 100755 index 00000000..6ca5b36a --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/file_io.c @@ -0,0 +1,58 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/file_io.h" + +int fclose(FILE* file) { + int flush_result, close_result; + + if (file == NULL) { + return -1; + } + if (file->file_mode.file_kind == __closed_file) { + return 0; + } + flush_result = fflush(file); + close_result = file->close_fn(file->handle); + file->file_mode.file_kind = __closed_file; + file->handle = NULL; + if (file->file_state.free_buffer) { + free(file->buffer); + } + return (flush_result || close_result) ? -1 : 0; +} + +int fflush(FILE* file) { + unsigned long pos; + + if (file == NULL) { + return __flush_all(); + } + if (file->file_state.error != 0 || file->file_mode.file_kind == __closed_file) { + return -1; + } + if (file->file_mode.io_mode == __read) { + return 0; + } + if (file->file_state.io_state >= __rereading) { + file->file_state.io_state = __reading; + } + if (file->file_state.io_state == __reading) { + file->buffer_length = 0; + } + if (file->file_state.io_state != __writing) { + file->file_state.io_state = __neutral; + return 0; + } + if (file->file_mode.file_kind != __disk_file) { + pos = 0; + } else { + pos = ftell(file); + } + if (__flush_buffer(file, 0) != __no_io_error) { + file->file_state.error = 1; + file->buffer_length = 0; + return -1; + } + file->file_state.io_state = __neutral; + file->position = pos; + file->buffer_length = 0; + return 0; +} diff --git a/src/MSL_C.PPCEABI.bare.H/k_cos.c b/src/MSL_C.PPCEABI.bare.H/k_cos.c new file mode 100755 index 00000000..2f69d256 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/k_cos.c @@ -0,0 +1,91 @@ +/* @(#)k_cos.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * __kernel_cos( x, y ) + * kernel cos function on [-pi/4, pi/4], pi/4 ~ 0.785398164 + * Input x is assumed to be bounded by ~pi/4 in magnitude. + * Input y is the tail of x. + * + * Algorithm + * 1. Since cos(-x) = cos(x), we need only to consider positive x. + * 2. if x < 2^-27 (hx<0x3e400000 0), return 1 with inexact if x!=0. + * 3. cos(x) is approximated by a polynomial of degree 14 on + * [0,pi/4] + * 4 14 + * cos(x) ~ 1 - x*x/2 + C1*x + ... + C6*x + * where the remez error is + * + * | 2 4 6 8 10 12 14 | -58 + * |cos(x)-(1-.5*x +C1*x +C2*x +C3*x +C4*x +C5*x +C6*x )| <= 2 + * | | + * + * 4 6 8 10 12 14 + * 4. let r = C1*x +C2*x +C3*x +C4*x +C5*x +C6*x , then + * cos(x) = 1 - x*x/2 + r + * since cos(x+y) ~ cos(x) - sin(x)*y + * ~ cos(x) - x*y, + * a correction term is necessary in cos(x) and hence + * cos(x+y) = 1 - (x*x/2 - (r - x*y)) + * For better accuracy when x > 0.3, let qx = |x|/4 with + * the last 32 bits mask off, and if x > 0.78125, let qx = 0.28125. + * Then + * cos(x+y) = (1-qx) - ((x*x/2-qx) - (r-x*y)). + * Note that 1-qx and (x*x/2-qx) is EXACT here, and the + * magnitude of the latter is at least a quarter of x*x/2, + * thus, reducing the rounding error in the subtraction. + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const double +#else +static double +#endif +one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ +C1 = 4.16666666666666019037e-02, /* 0x3FA55555, 0x5555554C */ +C2 = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */ +C3 = 2.48015872894767294178e-05, /* 0x3EFA01A0, 0x19CB1590 */ +C4 = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */ +C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */ +C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */ + +#ifdef __STDC__ + double __kernel_cos(double x, double y) +#else + double __kernel_cos(x, y) + double x,y; +#endif +{ + double a,hz,z,r,qx; + int ix; + ix = __HI(x)&0x7fffffff; /* ix = |x|'s high word*/ + if(ix<0x3e400000) { /* if x < 2**27 */ + if(((int)x)==0) return one; /* generate inexact */ + } + z = x*x; + r = z*(C1+z*(C2+z*(C3+z*(C4+z*(C5+z*C6))))); + if(ix < 0x3FD33333) /* if |x| < 0.3 */ + return one - (0.5*z - (z*r - x*y)); + else { + if(ix > 0x3fe90000) { /* x > 0.78125 */ + qx = 0.28125; + } else { + __HI(qx) = ix-0x00200000; /* x/4 */ + __LO(qx) = 0; + } + hz = 0.5*z-qx; + a = one-qx; + return a - (hz - (z*r-x*y)); + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/k_rem_pio2.c b/src/MSL_C.PPCEABI.bare.H/k_rem_pio2.c new file mode 100755 index 00000000..b14d7d2a --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/k_rem_pio2.c @@ -0,0 +1,316 @@ + +/* @(#)k_rem_pio2.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * __kernel_rem_pio2(x,y,e0,nx,prec,ipio2) + * double x[],y[]; int e0,nx,prec; int ipio2[]; + * + * __kernel_rem_pio2 return the last three digits of N with + * y = x - N*pi/2 + * so that |y| < pi/2. + * + * The method is to compute the integer (mod 8) and fraction parts of + * (2/pi)*x without doing the full multiplication. In general we + * skip the part of the product that are known to be a huge integer ( + * more accurately, = 0 mod 8 ). Thus the number of operations are + * independent of the exponent of the input. + * + * (2/pi) is represented by an array of 24-bit integers in ipio2[]. + * + * Input parameters: + * x[] The input value (must be positive) is broken into nx + * pieces of 24-bit integers in double precision format. + * x[i] will be the i-th 24 bit of x. The scaled exponent + * of x[0] is given in input parameter e0 (i.e., x[0]*2^e0 + * match x's up to 24 bits. + * + * Example of breaking a double positive z into x[0]+x[1]+x[2]: + * e0 = ilogb(z)-23 + * z = ldexp(z,-e0) + * for i = 0,1,2 + * x[i] = floor(z) + * z = (z-x[i])*2**24 + * + * + * y[] ouput result in an array of double precision numbers. + * The dimension of y[] is: + * 24-bit precision 1 + * 53-bit precision 2 + * 64-bit precision 2 + * 113-bit precision 3 + * The actual value is the sum of them. Thus for 113-bit + * precison, one may have to do something like: + * + * long double t,w,r_head, r_tail; + * t = (long double)y[2] + (long double)y[1]; + * w = (long double)y[0]; + * r_head = t+w; + * r_tail = w - (r_head - t); + * + * e0 The exponent of x[0] + * + * nx dimension of x[] + * + * prec an integer indicating the precision: + * 0 24 bits (single) + * 1 53 bits (double) + * 2 64 bits (extended) + * 3 113 bits (quad) + * + * ipio2[] + * integer array, contains the (24*i)-th to (24*i+23)-th + * bit of 2/pi after binary point. The corresponding + * floating value is + * + * ipio2[i] * 2^(-24(i+1)). + * + * External function: + * double ldexp(), floor(); + * + * + * Here is the description of some local variables: + * + * jk jk+1 is the initial number of terms of ipio2[] needed + * in the computation. The recommended value is 2,3,4, + * 6 for single, double, extended,and quad. + * + * jz local integer variable indicating the number of + * terms of ipio2[] used. + * + * jx nx - 1 + * + * jv index for pointing to the suitable ipio2[] for the + * computation. In general, we want + * ( 2^e0*x[0] * ipio2[jv-1]*2^(-24jv) )/8 + * is an integer. Thus + * e0-3-24*jv >= 0 or (e0-3)/24 >= jv + * Hence jv = max(0,(e0-3)/24). + * + * jp jp+1 is the number of terms in PIo2[] needed, jp = jk. + * + * q[] double array with integral value, representing the + * 24-bits chunk of the product of x and 2/pi. + * + * q0 the corresponding exponent of q[0]. Note that the + * exponent for q[i] would be q0-24*i. + * + * PIo2[] double precision array, obtained by cutting pi/2 + * into 24 bits chunks. + * + * f[] ipio2[] in floating point + * + * iq[] integer array by breaking up q[] in 24-bits chunk. + * + * fq[] final product of x*(2/pi) in fq[0],..,fq[jk] + * + * ih integer. If >0 it indicates q[] is >= 0.5, hence + * it also indicates the *sign* of the result. + * + */ + + +/* + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const int init_jk[] = {2,3,4,6}; /* initial value for jk */ +#else +static int init_jk[] = {2,3,4,6}; +#endif + +#ifdef __STDC__ +static const double PIo2[] = { +#else +static double PIo2[] = { +#endif + 1.57079625129699707031e+00, /* 0x3FF921FB, 0x40000000 */ + 7.54978941586159635335e-08, /* 0x3E74442D, 0x00000000 */ + 5.39030252995776476554e-15, /* 0x3CF84698, 0x80000000 */ + 3.28200341580791294123e-22, /* 0x3B78CC51, 0x60000000 */ + 1.27065575308067607349e-29, /* 0x39F01B83, 0x80000000 */ + 1.22933308981111328932e-36, /* 0x387A2520, 0x40000000 */ + 2.73370053816464559624e-44, /* 0x36E38222, 0x80000000 */ + 2.16741683877804819444e-51, /* 0x3569F31D, 0x00000000 */ +}; + +#ifdef __STDC__ +static const double +#else +static double +#endif +zero = 0.0, +one = 1.0, +two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */ +twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */ + +#ifdef __STDC__ + int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, const int *ipio2) +#else + int __kernel_rem_pio2(x,y,e0,nx,prec,ipio2) + double x[], y[]; int e0,nx,prec; int ipio2[]; +#endif +{ + int jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih; + double z,fw,f[20],fq[20],q[20]; + + /* initialize jk*/ + jk = init_jk[prec]; + jp = jk; + + /* determine jx,jv,q0, note that 3>q0 */ + jx = nx-1; + jv = (e0-3)/24; if(jv<0) jv=0; + q0 = e0-24*(jv+1); + + /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */ + j = jv-jx; m = jx+jk; + for(i=0;i<=m;i++,j++) f[i] = (j<0)? zero : (double) ipio2[j]; + + /* compute q[0],q[1],...q[jk] */ + for (i=0;i<=jk;i++) { + for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; q[i] = fw; + } + + jz = jk; +recompute: + /* distill q[] into iq[] reversingly */ + for(i=0,j=jz,z=q[jz];j>0;i++,j--) { + fw = (double)((int)(twon24* z)); + iq[i] = (int)(z-two24*fw); + z = q[j-1]+fw; + } + + /* compute n */ + z = ldexp(z,q0); /* actual value of z */ + z -= 8.0*floor(z*0.125); /* trim off integer >= 8 */ + n = (int) z; + z -= (double)n; + ih = 0; + if(q0>0) { /* need iq[jz-1] to determine n */ + i = (iq[jz-1]>>(24-q0)); n += i; + iq[jz-1] -= i<<(24-q0); + ih = iq[jz-1]>>(23-q0); + } + else if(q0==0) ih = iq[jz-1]>>23; + else if(z>=0.5) ih=2; + + if(ih>0) { /* q > 0.5 */ + n += 1; carry = 0; + for(i=0;i0) { /* rare case: chance is 1 in 12 */ + switch(q0) { + case 1: + iq[jz-1] &= 0x7fffff; break; + case 2: + iq[jz-1] &= 0x3fffff; break; + } + } + if(ih==2) { + z = one - z; + if(carry!=0) z -= ldexp(one,q0); + } + } + + /* check if recomputation is needed */ + if(z==zero) { + j = 0; + for (i=jz-1;i>=jk;i--) j |= iq[i]; + if(j==0) { /* need recomputation */ + for(k=1;iq[jk-k]==0;k++); /* k = no. of terms needed */ + + for(i=jz+1;i<=jz+k;i++) { /* add q[jz+1] to q[jz+k] */ + f[jx+i] = (double) ipio2[jv+i]; + for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; + q[i] = fw; + } + jz += k; + goto recompute; + } + } + + /* chop off zero terms */ + if(z==0.0) { + jz -= 1; q0 -= 24; + while(iq[jz]==0) { jz--; q0-=24;} + } else { /* break z into 24-bit if necessary */ + z = ldexp(z,-q0); + if(z>=two24) { + fw = (double)((int)(twon24*z)); + iq[jz] = (int)(z-two24*fw); + jz += 1; q0 += 24; + iq[jz] = (int) fw; + } else iq[jz] = (int) z ; + } + + /* convert integer "bit" chunk to floating-point value */ + fw = ldexp(one,q0); + for(i=jz;i>=0;i--) { + q[i] = fw*(double)iq[i]; fw*=twon24; + } + + /* compute PIo2[0,...,jp]*q[jz,...,0] */ + for(i=jz;i>=0;i--) { + for(fw=0.0,k=0;k<=jp&&k<=jz-i;k++) fw += PIo2[k]*q[i+k]; + fq[jz-i] = fw; + } + + /* compress fq[] into y[] */ + switch(prec) { + case 0: + fw = 0.0; + for (i=jz;i>=0;i--) fw += fq[i]; + y[0] = (ih==0)? fw: -fw; + break; + case 1: + case 2: + fw = 0.0; + for (i=jz;i>=0;i--) fw += fq[i]; + y[0] = (ih==0)? fw: -fw; + fw = fq[0]-fw; + for (i=1;i<=jz;i++) fw += fq[i]; + y[1] = (ih==0)? fw: -fw; + break; + case 3: /* painful */ + for (i=jz;i>0;i--) { + fw = fq[i-1]+fq[i]; + fq[i] += fq[i-1]-fw; + fq[i-1] = fw; + } + for (i=jz;i>1;i--) { + fw = fq[i-1]+fq[i]; + fq[i] += fq[i-1]-fw; + fq[i-1] = fw; + } + for (fw=0.0,i=jz;i>=2;i--) fw += fq[i]; + if(ih==0) { + y[0] = fq[0]; y[1] = fq[1]; y[2] = fw; + } else { + y[0] = -fq[0]; y[1] = -fq[1]; y[2] = -fw; + } + } + return n&7; +} diff --git a/src/MSL_C.PPCEABI.bare.H/k_sin.c b/src/MSL_C.PPCEABI.bare.H/k_sin.c new file mode 100755 index 00000000..b136909a --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/k_sin.c @@ -0,0 +1,73 @@ +/* @(#)k_sin.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __kernel_sin( x, y, iy) + * kernel sin function on [-pi/4, pi/4], pi/4 ~ 0.7854 + * Input x is assumed to be bounded by ~pi/4 in magnitude. + * Input y is the tail of x. + * Input iy indicates whether y is 0. (if iy=0, y assume to be 0). + * + * Algorithm + * 1. Since sin(-x) = -sin(x), we need only to consider positive x. + * 2. if x < 2^-27 (hx<0x3e400000 0), return x with inexact if x!=0. + * 3. sin(x) is approximated by a polynomial of degree 13 on + * [0,pi/4] + * 3 13 + * sin(x) ~ x + S1*x + ... + S6*x + * where + * + * |sin(x) 2 4 6 8 10 12 | -58 + * |----- - (1+S1*x +S2*x +S3*x +S4*x +S5*x +S6*x )| <= 2 + * | x | + * + * 4. sin(x+y) = sin(x) + sin'(x')*y + * ~ sin(x) + (1-x*x/2)*y + * For better accuracy, let + * 3 2 2 2 2 + * r = x *(S2+x *(S3+x *(S4+x *(S5+x *S6)))) + * then 3 2 + * sin(x) = x + (S1*x + (x *(r-y/2)+y)) + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const double +#else +static double +#endif +half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ +S1 = -1.66666666666666324348e-01, /* 0xBFC55555, 0x55555549 */ +S2 = 8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */ +S3 = -1.98412698298579493134e-04, /* 0xBF2A01A0, 0x19C161D5 */ +S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */ +S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */ +S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */ + +#ifdef __STDC__ + double __kernel_sin(double x, double y, int iy) +#else + double __kernel_sin(x, y, iy) + double x,y; int iy; /* iy=0 if y is zero */ +#endif +{ + double z,r,v; + int ix; + ix = __HI(x)&0x7fffffff; /* high word of x */ + if(ix<0x3e400000) /* |x| < 2**-27 */ + {if((int)x==0) return x;} /* generate inexact */ + z = x*x; + v = z*x; + r = S2+z*(S3+z*(S4+z*(S5+z*S6))); + if(iy==0) return x+v*(S1+z*r); + else return x-((z*(half*y-v*r)-y)-v*S1); +} diff --git a/src/MSL_C.PPCEABI.bare.H/k_tan.c b/src/MSL_C.PPCEABI.bare.H/k_tan.c new file mode 100755 index 00000000..d7dec7f5 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/k_tan.c @@ -0,0 +1,134 @@ +/* + * ==================================================== + * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* INDENT OFF */ +/* __kernel_tan( x, y, k ) + * kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854 + * Input x is assumed to be bounded by ~pi/4 in magnitude. + * Input y is the tail of x. + * Input k indicates whether tan (if k = 1) or -1/tan (if k = -1) is returned. + * + * Algorithm + * 1. Since tan(-x) = -tan(x), we need only to consider positive x. + * 2. if x < 2^-28 (hx<0x3e300000 0), return x with inexact if x!=0. + * 3. tan(x) is approximated by a odd polynomial of degree 27 on + * [0,0.67434] + * 3 27 + * tan(x) ~ x + T1*x + ... + T13*x + * where + * + * |tan(x) 2 4 26 | -59.2 + * |----- - (1+T1*x +T2*x +.... +T13*x )| <= 2 + * | x | + * + * Note: tan(x+y) = tan(x) + tan'(x)*y + * ~ tan(x) + (1+x*x)*y + * Therefore, for better accuracy in computing tan(x+y), let + * 3 2 2 2 2 + * r = x *(T2+x *(T3+x *(...+x *(T12+x *T13)))) + * then + * 3 2 + * tan(x+y) = x + (T1*x + (x *(r+y)+y)) + * + * 4. For x in [0.67434,pi/4], let y = pi/4 - x, then + * tan(x) = tan(pi/4-y) = (1-tan(y))/(1+tan(y)) + * = 1 - 2*(tan(y) - (tan(y)^2)/(1+tan(y))) + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/math.h" + +static const double xxx[] = { + 3.33333333333334091986e-01, /* 3FD55555, 55555563 */ + 1.33333333333201242699e-01, /* 3FC11111, 1110FE7A */ + 5.39682539762260521377e-02, /* 3FABA1BA, 1BB341FE */ + 2.18694882948595424599e-02, /* 3F9664F4, 8406D637 */ + 8.86323982359930005737e-03, /* 3F8226E3, E96E8493 */ + 3.59207910759131235356e-03, /* 3F6D6D22, C9560328 */ + 1.45620945432529025516e-03, /* 3F57DBC8, FEE08315 */ + 5.88041240820264096874e-04, /* 3F4344D8, F2F26501 */ + 2.46463134818469906812e-04, /* 3F3026F7, 1A8D1068 */ + 7.81794442939557092300e-05, /* 3F147E88, A03792A6 */ + 7.14072491382608190305e-05, /* 3F12B80F, 32F0A7E9 */ + -1.85586374855275456654e-05, /* BEF375CB, DB605373 */ + 2.59073051863633712884e-05, /* 3EFB2A70, 74BF7AD4 */ +}; +#define pio4 7.85398163397448278999e-01 +#define pio4lo 3.06161699786838301793e-17 +#define T xxx +/* INDENT ON */ + +double +__kernel_tan(double x, double y, int iy) { + double z, r, v, w, s; + int ix, hx; + + hx = __HI(x); /* high word of x */ + ix = hx & 0x7fffffff; /* high word of |x| */ + if (ix < 0x3e300000) { /* x < 2**-28 */ + if ((int) x == 0) { /* generate inexact */ + if (((ix | __LO(x)) | (iy + 1)) == 0) + return 1 / fabs(x); + else { + if (iy == 1) + return x; + else + return -1 / x; + } + } + } + if (ix >= 0x3FE59428) { /* |x| >= 0.6744 */ + if (hx < 0) { + x = -x; + y = -y; + } + z = pio4 - x; + w = pio4lo - y; + x = z + w; + y = 0.0; + } + z = x * x; + w = z * z; + /* + * Break x^5*(T[1]+x^2*T[2]+...) into + * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) + + * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12])) + */ + r = T[1] + w * (T[3] + w * (T[5] + w * (T[7] + w * (T[9] + + w * T[11])))); + v = z * (T[2] + w * (T[4] + w * (T[6] + w * (T[8] + w * (T[10] + + w * T[12]))))); + s = z * x; + r = y + z * (s * (r + v) + y); + r += T[0] * s; + w = x + r; + if (ix >= 0x3FE59428) { + v = (double) iy; + return (double) (1 - ((hx >> 30) & 2)) * + (v - 2.0 * (x - (w * w / (w + v) - r))); + } + if (iy == 1) + return w; + else { + /* + * if allow error up to 2 ulp, simply return + * -1.0 / (x+r) here + */ + /* compute -1.0 / (x+r) accurately */ + double a, t; + z = w; + __LO(z) = 0; + v = r - (z - x); /* z+v = r+x */ + t = a = -1.0 / w; /* a = -1.0/w */ + __LO(t) = 0; + s = 1.0 + t * z; + return t + a * (s + t * v); + } +} diff --git a/src/MSL_C.PPCEABI.bare.H/mbstring.c b/src/MSL_C.PPCEABI.bare.H/mbstring.c index fa77c660..0364afa3 100644 --- a/src/MSL_C.PPCEABI.bare.H/mbstring.c +++ b/src/MSL_C.PPCEABI.bare.H/mbstring.c @@ -1,18 +1,64 @@ -#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/mbstring.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" -size_t wcstombs(char* s, const wchar_t* pwcs, size_t n) -{ - wchar_t next; - size_t chars_written; - int i; +static int unicode_to_UTF8(char* s, wchar_t wchar) { + int number_of_bytes; + char* target_ptr; + char first_byte_mark[4] = {0x00, 0x00, 0xc0, 0xe0}; - chars_written = 0; - for (i = 0; i < n; ++i) { - next = *pwcs++; - *s++ = (char)next; - if ((char)next == '\0') - break; - ++chars_written; - } - return chars_written; + if (!s) { + return 0; + } + + if (wchar < 0x0080) + number_of_bytes = 1; + else if (wchar < 0x0800) + number_of_bytes = 2; + else + number_of_bytes = 3; + + target_ptr = s + number_of_bytes; + + switch (number_of_bytes) { + case 3: + *--target_ptr = (wchar & 0x003f) | 0x80; + wchar >>= 6; + case 2: + *--target_ptr = (wchar & 0x003f) | 0x80; + wchar >>= 6; + case 1: + *--target_ptr = wchar | first_byte_mark[number_of_bytes]; + } + + return (number_of_bytes); +} + +static inline int wctomb(char* s, wchar_t wchar) { + return (unicode_to_UTF8(s, wchar)); +} + +size_t wcstombs(char* s, const wchar_t* pwcs, size_t n) { + int chars_written = 0; + int result; + char temp[3]; + wchar_t* source; + + if (!s || !pwcs) + return (0); + + source = (wchar_t*)pwcs; + while (chars_written <= n) { + if (!*source) { + *(s + chars_written) = '\0'; + break; + } else { + result = wctomb(temp, *source++); + if ((chars_written + result) <= n) { + strcat(s + chars_written, temp, result); + chars_written += result; + } else + break; + } + } + + return (chars_written); } diff --git a/src/MSL_C.PPCEABI.bare.H/misc_io.c b/src/MSL_C.PPCEABI.bare.H/misc_io.c index 2b6c9913..06827814 100644 --- a/src/MSL_C.PPCEABI.bare.H/misc_io.c +++ b/src/MSL_C.PPCEABI.bare.H/misc_io.c @@ -1 +1,6 @@ -void __stdio_atexit(void) { } +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/abort_exit.h" + +void __stdio_atexit(void) { + __stdio_exit = __close_all; +} diff --git a/src/MSL_C.PPCEABI.bare.H/s_floor.c b/src/MSL_C.PPCEABI.bare.H/s_floor.c new file mode 100755 index 00000000..70001539 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/s_floor.c @@ -0,0 +1,78 @@ +/* @(#)s_floor.c 1.3 95/01/18 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunSoft, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * floor(x) + * Return x rounded toward -inf to integral value + * Method: + * Bit twiddling. + * Exception: + * Inexact flag raised if x not equal to floor(x). + */ + +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common_Embedded/Math/fdlibm.h" + +#ifdef __STDC__ +static const double huge = 1.0e300; +#else +static double huge = 1.0e300; +#endif + +#ifdef __STDC__ + double floor(double x) +#else + double floor(x) + double x; +#endif +{ + int i0,i1,j0; + unsigned i,j; + i0 = __HI(x); + i1 = __LO(x); + j0 = ((i0>>20)&0x7ff)-0x3ff; + if(j0<20) { + if(j0<0) { /* raise inexact if x != 0 */ + if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */ + if(i0>=0) {i0=i1=0;} + else if(((i0&0x7fffffff)|i1)!=0) + { i0=0xbff00000;i1=0;} + } + } else { + i = (0x000fffff)>>j0; + if(((i0&i)|i1)==0) return x; /* x is integral */ + if(huge+x>0.0) { /* raise inexact flag */ + if(i0<0) i0 += (0x00100000)>>j0; + i0 &= (~i); i1=0; + } + } + } else if (j0>51) { + if(j0==0x400) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } else { + i = ((unsigned)(0xffffffff))>>(j0-20); + if((i1&i)==0) return x; /* x is integral */ + if(huge+x>0.0) { /* raise inexact flag */ + if(i0<0) { + if(j0==20) i0+=1; + else { + j = i1+(1<<(52-j0)); + if(j>20; /* extract exponent */ + if (k==0) { /* 0 or subnormal x */ + if ((lx|(hx&0x7fffffff))==0) return x; /* +-0 */ + x *= two54; + hx = __HI(x); + k = ((hx&0x7ff00000)>>20) - 54; + if (n< -50000) return tiny*x; /*underflow*/ + } + if (k==0x7ff) return x+x; /* NaN or Inf */ + k = k+n; + if (k > 0x7fe) return huge*copysign(huge,x); /* overflow */ + if (k > 0) /* normal result */ + {__HI(x) = (hx&0x800fffff)|(k<<20); return x;} + if (k <= -54) + if (n > 50000) /* in case integer overflow in n+k */ + return huge*copysign(huge,x); /*overflow*/ + else return tiny*copysign(tiny,x); /*underflow*/ + k += 54; /* subnormal result */ + __HI(x) = (hx&0x800fffff)|(k<<20); + return x*twom54; } diff --git a/src/MSL_C.PPCEABI.bare.H/signal.c b/src/MSL_C.PPCEABI.bare.H/signal.c new file mode 100755 index 00000000..9d5da4ee --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/signal.c @@ -0,0 +1,26 @@ +#include + +void* signal_funcs[6]; + +// regalloc: https://decomp.me/scratch/ufAYK +int raise(int arg0) { + void (*temp_r31)(int); + void** temp_r3; + + if (arg0 < 1 || arg0 > 6) { + return -1; + } + temp_r3 = &signal_funcs[arg0]; + temp_r31 = *(--temp_r3); + if ((unsigned long) temp_r31 != 1) { + *temp_r3 = NULL; + } + if ((unsigned long) temp_r31 == 1 || (temp_r31 == NULL && arg0 == 1)) { + return 0; + } + if (temp_r31 == NULL) { + exit(0); + } + temp_r31(arg0); + return 0; +} diff --git a/src/MSL_C.PPCEABI.bare.H/uart_console_io.c b/src/MSL_C.PPCEABI.bare.H/uart_console_io.c new file mode 100755 index 00000000..e26388da --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/uart_console_io.c @@ -0,0 +1,32 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h" + +static inline int __init_uart_console(void) { + int err = 0; + static int initialized = 0; + + if (initialized == 0) { + err = InitializeUART(57600); + if (err == 0) + initialized = 1; + } + + return (err); +} + +int __write_console(__file_handle handle, unsigned char* buffer, size_t* count, __idle_proc idle_proc) { + if (__init_uart_console() != 0) { + return 1; + } + + if (WriteUARTN(buffer, *count) != 0) { + *count = 0; + return 1; + } + + __TRK_write_console(handle, buffer, count, idle_proc); + return 0; +} + +int __close_console() { + return 0; +} diff --git a/src/MSL_C.PPCEABI.bare.H/wchar_io.c b/src/MSL_C.PPCEABI.bare.H/wchar_io.c index 4d5d32b5..77f4b5fa 100644 --- a/src/MSL_C.PPCEABI.bare.H/wchar_io.c +++ b/src/MSL_C.PPCEABI.bare.H/wchar_io.c @@ -2,7 +2,7 @@ int fwide(FILE* file, int mode) { - if (file->file_mode.file_kind == __closed_file) { + if (!file || file->file_mode.file_kind == __closed_file) { return 0; } From 6347294c144b2aafb6a8edfec24de52f932eb0ce Mon Sep 17 00:00:00 2001 From: mrshigure Date: Tue, 28 Jan 2025 11:33:09 -0800 Subject: [PATCH 276/311] Matched ansi_fp.c (US) (#550) --- config/GMPE01_00/symbols.txt | 2 +- configure.py | 2 +- .../Msl/MSL_C/MSL_Common/ansi_fp.h | 11 +- src/MSL_C.PPCEABI.bare.H/ansi_fp.c | 393 ++++++++++++++++++ 4 files changed, 396 insertions(+), 12 deletions(-) create mode 100755 src/MSL_C.PPCEABI.bare.H/ansi_fp.c diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index e2763245..d4d7595a 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -3653,7 +3653,7 @@ lbl_8011E580 = .rodata:0x8011E580; // type:object size:0x20 lbl_8011E5A0 = .rodata:0x8011E5A0; // type:object size:0x38 lbl_8011E5D8 = .rodata:0x8011E5D8; // type:object size:0x40 fix_pool_sizes = .rodata:0x8011E618; // type:object size:0x18 scope:local data:4byte -lbl_8011E630 = .rodata:0x8011E630; // type:object size:0xE0 +lbl_8011E630 = .rodata:0x8011E630; // type:object size:0xE0 data:string @stringBase0 = .rodata:0x8011E710; // type:object size:0x25 scope:local data:string_table Zero = .rodata:0x8011E738; // type:object size:0x10 scope:local bp = .rodata:0x8011E748; // type:object size:0x10 scope:local data:double diff --git a/configure.py b/configure.py index c95c4390..b1766149 100644 --- a/configure.py +++ b/configure.py @@ -684,7 +684,7 @@ config.libs = [ Object(NonMatching, "MSL_C.PPCEABI.bare.H/alloc.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/errno.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/ansi_files.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/ansi_fp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/ansi_fp.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/arith.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/buffer_io.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/ctype.c"), diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_fp.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_fp.h index 90ba7acf..a7a5cc67 100644 --- a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_fp.h +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_fp.h @@ -22,15 +22,6 @@ typedef struct decform { short digits; } decform; -/* void __ull2dec(decimal*, u64); -void __timesdec(decimal*, const decimal*, const decimal*); -void __str2dec(decimal*, const char*, short); -void __two_exp(decimal*, s16); -BOOL __equals_dec(const decimal*, const decimal*); -BOOL __less_dec(const decimal*, const decimal*); -void __minus_dec(decimal*, const decimal*, const decimal*); -void __num2dec_internal(decimal*, f64); -void __num2dec(const decform*, f64, decimal*); -f64 __dec2num(const decimal*); */ +void __num2dec(const decform* form, double x, decimal* d); #endif diff --git a/src/MSL_C.PPCEABI.bare.H/ansi_fp.c b/src/MSL_C.PPCEABI.bare.H/ansi_fp.c new file mode 100755 index 00000000..e8d7f0c7 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/ansi_fp.c @@ -0,0 +1,393 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_fp.h" + +static int __count_trailing_zerol(unsigned int arg0) { + int var_r4; + int var_r5; + int var_r6; + int var_r7; + unsigned int var_r8; + + var_r5 = 0x20; + var_r8 = 0xFFFF; + var_r6 = 0x10; + var_r4 = 0; + var_r7 = 0x10; + while (var_r5 != 0) { + if (!(arg0 & var_r8)) { + var_r4 += var_r7; + arg0 >>= var_r7; + var_r5 -= var_r7; + } else if (var_r8 == 1) { + break; + } + if (var_r6 > 1) { + var_r6 /= 2; + } + if (var_r8 > 1) { + var_r8 >>= var_r6; + var_r7 -= var_r6; + } + } + return var_r4; +} + +static inline int __count_trailing_zero(double n){ + if (__LO(n) != 0U) { + return __count_trailing_zerol(__LO(n)); + } else { + return 32 + __count_trailing_zerol(__HI(n) | 0x100000); + } +} + +static void __ull2dec(decimal* result, unsigned long long val) { + result->sign = 0; + + if (val == 0) { + result->exp = 0; + result->sig.length = 1; + result->sig.text[0] = 0; + return; + } + + result->sig.length = 0; + + for(; val != 0; val /= 10) { + result->sig.text[result->sig.length++] = val % 10; + } + + { + unsigned char* i = result->sig.text; + unsigned char* j = result->sig.text + result->sig.length; + + for (; i < --j; ++i) { + unsigned char t = *i; + *i = *j; + *j = t; + } + } + + result->exp = result->sig.length - 1; +} + +static inline void __dorounddecup(decimal* d, int digits){ + unsigned char* b = d->sig.text; + unsigned char* i = b + digits - 1; + + while(1){ + if (*i < 9) { + *i += 1; + break; + } + if (i == b) { + *i = 1; + d->exp++; + break; + } + *i-- = 0; + } +} + +static void __timesdec(decimal* result, const decimal* x, const decimal* y) { + unsigned int accumulator = 0; + unsigned char mantissa[SIGDIGLEN * 2]; + int i = x->sig.length + y->sig.length - 1; + unsigned char* pDigit; + unsigned char* ip = mantissa + i + 1; + unsigned char* ep = ip; + + result->sign = 0; + + for(; i > 0; i--) { + int k = y->sig.length - 1; + int j = i - k - 1; + int l; + int t; + const unsigned char* jp; + const unsigned char* kp; + + if (j < 0) { + j = 0; + k = i - 1; + } + + jp = x->sig.text + j; + kp = y->sig.text + k; + l = k + 1; + t = x->sig.length - j; + + if (l > t) l = t; + + for (; l > 0; l--, jp++, kp--) { + accumulator += *jp * *kp; + } + + *--ip = accumulator % 10; + accumulator /= 10; + } + + result->exp = (short)(x->exp + y->exp); + + if (accumulator) { + *--ip = accumulator; + result->exp++; + } + + for (i = 0; i < SIGDIGLEN && ip < ep; i++, ip++) { + result->sig.text[i] = *ip; + } + result->sig.length = i; + + if (ip < ep && *ip >= 5){ + if (*ip == 5){ + unsigned char* jp = ip + 1; + for (; jp < ep; jp++) { + if (*jp != 0) goto round; + } + if ((ip[-1] & 1) == 0) return; + } + round: + __dorounddecup(result, result->sig.length); + } +} + +static void __str2dec(decimal* d, const signed char* s, short exp) { + int i; + + d->exp = exp; + d->sign = 0; + + for (i = 0; i < SIGDIGLEN && *s; ) { + d->sig.text[i++] = *s++ - '0'; + } + d->sig.length = i; + + if (*s != 0 && *s >= 5) { + const signed char* p = s + 1; + + for (; *p != 0; p++) { + if (*p != '0') goto round; + } + + if ((d->sig.text[i - 1] & 1) == 0) return; + round: + __dorounddecup(d, d->sig.length); + } +} + +// TODO: ideally, these strings should be used as literals in the function below. +// However, the first one (179769313486231580793729011405303420, corresponding to +// 2^1024) is not used in the function and messes up alignment. + +const signed char lbl_8011E630[] = + "179769313486231580793729011405303420\000" \ + "542101086242752217003726400434970855712890625\000" \ + "11102230246251565404236316680908203125\000" \ + "23283064365386962890625\000" \ + "152587890625\000" \ + "390625\000" \ + "78125\000" \ + "15625\000" \ + "3125\000" \ + "625\000" \ + "125\000" \ + "25\000" \ + "5\000" \ + "1\000" \ + "2\000" \ + "4\000" \ + "8\000" \ + "16\000" \ + "32\000" \ + "64\000" \ + "128\000" \ + "256"; + +static void __two_exp(decimal* result, short exp) { + decimal sp8C; + decimal sp60; + decimal sp34; + decimal sp8; + + switch (exp) { + case -64: + __str2dec(result, lbl_8011E630 + 0x25, -20); + break; + case -53: + __str2dec(result, lbl_8011E630 + 0x53, -16); + break; + case -32: + __str2dec(result, lbl_8011E630 + 0x7A, -10); + break; + case -16: + __str2dec(result, lbl_8011E630 + 0x92, -5); + break; + case -8: + __str2dec(result, lbl_8011E630 + 0x9F, -3); + break; + case -7: + __str2dec(result, lbl_8011E630 + 0xA6, -3); + break; + case -6: + __str2dec(result, lbl_8011E630 + 0xAC, -2); + break; + case -5: + __str2dec(result, lbl_8011E630 + 0xB2, -2); + break; + case -4: + __str2dec(result, lbl_8011E630 + 0xB7, -2); + break; + case -3: + __str2dec(result, lbl_8011E630 + 0xBB, -1); + break; + case -2: + __str2dec(result, lbl_8011E630 + 0xBF, -1); + break; + case -1: + __str2dec(result, lbl_8011E630 + 0xC2, -1); + break; + case 0: + __str2dec(result, lbl_8011E630 + 0xC4, 0); + break; + case 1: + __str2dec(result, lbl_8011E630 + 0xC6, 0); + break; + case 2: + __str2dec(result, lbl_8011E630 + 0xC8, 0); + break; + case 3: + __str2dec(result, lbl_8011E630 + 0xCA, 0); + break; + case 4: + __str2dec(result, lbl_8011E630 + 0xCC, 1); + break; + case 5: + __str2dec(result, lbl_8011E630 + 0xCF, 1); + break; + case 6: + __str2dec(result, lbl_8011E630 + 0xD2, 1); + break; + case 7: + __str2dec(result, lbl_8011E630 + 0xD5, 2); + break; + case 8: + __str2dec(result, lbl_8011E630 + 0xD9, 2); + break; + default: + __two_exp(&sp8C, exp / 2); + __timesdec(result, &sp8C, &sp8C); + if (exp & 1) { + sp60 = *result; + if (exp > 0) { + __str2dec(&sp34, lbl_8011E630 + 0xC6, 0); + __timesdec(result, &sp60, &sp34); + } else { + __str2dec(&sp8, lbl_8011E630 + 0xC2, -1); + __timesdec(result, &sp60, &sp8); + } + } + break; + } +} + +static void __num2dec_internal(decimal* d, double x) { + signed char sign = (signbit(x) != 0); + + if (x == 0) { + d->sign = sign; + d->exp = 0; + d->sig.length = 1; + d->sig.text[0] = 0; + return; + } + + if (!isfinite(x)) { + d->sign = sign; + d->exp = 0; + d->sig.length = 1; + d->sig.text[0] = (fpclassify(x) == 1) ? 'N' : 'I'; + return; + } + + if (sign != 0) { + x = -x; + } + + { + int exp; + double frac = frexp(x, &exp); + short num_bits_extract = DBL_MANT_DIG - __count_trailing_zero(frac); + decimal int_d, pow2_d; + double sp30; + + __two_exp(&pow2_d, exp - num_bits_extract); + modf(ldexp(frac, num_bits_extract), &sp30); + __ull2dec(&int_d, sp30); + __timesdec(d, &int_d, &pow2_d); + d->sign = sign; + } +} + +static inline int __must_round(const decimal* d, int digits){ + unsigned char const* i = d->sig.text + digits; + + if (*i > 5) { + return 1; + } + + if (*i < 5) { + return -1; + } + + { + unsigned char const* e = d->sig.text + d->sig.length; + + for(i++; i < e; i++){ + if (*i != 0) { + return 1; + } + } + } + + if (d->sig.text[digits - 1] & 1) { + return 1; + } + + return -1; +} + +static inline void __rounddec(decimal* d, int digits){ + if (digits > 0 && digits < d->sig.length) { + int unkBool = __must_round(d,digits); + d->sig.length = digits; + + if (unkBool >= 0) { + __dorounddecup(d, digits); + } + } +} + +void __num2dec(const decform* form, double x, decimal* d) { + short digits = form->digits; + int i; + __num2dec_internal(d, x); + + if (d->sig.text[0] > 9) { + return; + } + + if (digits > SIGDIGLEN) { + digits = SIGDIGLEN; + } + + __rounddec(d, digits); + + while(d->sig.length < digits){ + d->sig.text[d->sig.length++] = 0; + } + + d->exp -= d->sig.length - 1; + + for(i = 0; i < d->sig.length; i++) { + d->sig.text[i] += '0'; + } +} From b353af7d237c0cc596f8a917bb3c62b939891f00 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Wed, 29 Jan 2025 14:19:43 -0800 Subject: [PATCH 277/311] MSL: match alloc/signal/string and most of printf --- configure.py | 7 +- .../Msl/MSL_C/MSL_Common/ansi_files.h | 2 +- include/string.h | 2 +- src/MSL_C.PPCEABI.bare.H/alloc.c | 410 ++++ src/MSL_C.PPCEABI.bare.H/printf.c | 1711 +++++++++-------- src/MSL_C.PPCEABI.bare.H/signal.c | 20 +- src/MSL_C.PPCEABI.bare.H/string.c | 52 +- 7 files changed, 1346 insertions(+), 858 deletions(-) create mode 100755 src/MSL_C.PPCEABI.bare.H/alloc.c diff --git a/configure.py b/configure.py index b1766149..b8bbca9e 100644 --- a/configure.py +++ b/configure.py @@ -227,6 +227,7 @@ cflags_thp = [ # Metrowerks library flags cflags_msl = [ *cflags_base, + "-char signed", "-use_lmw_stmw on", "-str reuse,pool,readonly", "-common off", @@ -681,7 +682,7 @@ config.libs = [ "host": False, "objects": [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/abort_exit.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/alloc.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/alloc.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/errno.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/ansi_files.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/ansi_fp.c"), @@ -697,8 +698,8 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/misc_io.c"), Object(NonMatching, "MSL_C.PPCEABI.bare.H/printf.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/float.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/signal.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/string.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/signal.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/string.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/uart_console_io.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/wchar_io.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/e_acos.c"), diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h index d101a4bb..a1fb6fdc 100644 --- a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h @@ -85,7 +85,7 @@ typedef struct _FILE { file_modes file_mode; file_states file_state; - char is_dynamically_allocated; + unsigned char is_dynamically_allocated; char char_buffer; char char_buffer_overflow; char ungetc_buffer[2]; diff --git a/include/string.h b/include/string.h index 6ba311ed..863a4f97 100644 --- a/include/string.h +++ b/include/string.h @@ -10,7 +10,7 @@ char* strrchr(const char* str, int c); char* strchr(const char* str, int c); int strncmp(const char* str1, const char* str2, size_t n); int strcmp(const char* str1, const char* str2); -char* strcat(char* dst, const char* src); +char* strcat(char* dst, const char* src, size_t n); char* strncpy(char* dst, const char* src, size_t n); char* strcpy(char* dst, const char* src); size_t strlen(const char* str); diff --git a/src/MSL_C.PPCEABI.bare.H/alloc.c b/src/MSL_C.PPCEABI.bare.H/alloc.c new file mode 100755 index 00000000..ba041356 --- /dev/null +++ b/src/MSL_C.PPCEABI.bare.H/alloc.c @@ -0,0 +1,410 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/alloc.h" + +typedef struct Block { + struct Block* prev; + struct Block* next; + unsigned long max_size; + unsigned long size; +} Block; + +typedef struct SubBlock { + unsigned long size; + Block* block; + struct SubBlock* prev; + struct SubBlock* next; +} SubBlock; + +struct FixSubBlock; + +typedef struct FixBlock { + struct FixBlock* prev_; + struct FixBlock* next_; + unsigned long client_size_; + struct FixSubBlock* start_; + unsigned long n_allocated_; +} FixBlock; + +typedef struct FixSubBlock { + FixBlock* block_; + struct FixSubBlock* next_; +} FixSubBlock; + +typedef struct FixStart { + FixBlock* tail_; + FixBlock* head_; +} FixStart; + +typedef struct __mem_pool_obj { + Block* start_; + FixStart fix_start[6]; +} __mem_pool_obj; + +typedef struct __mem_pool { + void* reserved[14]; +} __mem_pool; + +typedef signed long tag_word; + +typedef struct block_header { + tag_word tag; + struct block_header * prev; + struct block_header * next; +} block_header; + +typedef struct list_header { + block_header * rover; + block_header header; +} list_header; + +typedef struct heap_header { + struct heap_header* prev; + struct heap_header* next; +} heap_header; + +struct mem_pool_obj; +typedef void * (*sys_alloc_ptr)(unsigned long, struct mem_pool_obj*); +typedef void (*sys_free_ptr)(void *, struct mem_pool_obj*); + +typedef struct pool_options{ + sys_alloc_ptr sys_alloc_func; + sys_free_ptr sys_free_func; + unsigned long min_heap_size; + int always_search_first; +} pool_options; + +typedef struct mem_pool_obj { + list_header free_list; + pool_options options; + heap_header* heap_list; + void* userData; + +} mem_pool_obj; + +mem_pool_obj __malloc_pool; +static int initialized = 0; + +static SubBlock* SubBlock_merge_prev(SubBlock*, SubBlock**); +static void SubBlock_merge_next(SubBlock* , SubBlock** ); + +static const unsigned long fix_pool_sizes[] = {4, 12, 20, 36, 52, 68}; + +#define SubBlock_size(ths) ((ths)->size & 0xFFFFFFF8) +#define SubBlock_block(ths) ((Block*)((unsigned long)((ths)->block) & ~0x1)) +#define Block_size(ths) ((ths)->size & 0xFFFFFFF8) +#define Block_start(ths) (*(SubBlock**)((char*)(ths) + Block_size((ths)) - sizeof(unsigned long))) + +#define SubBlock_set_free(ths) \ + unsigned long this_size = SubBlock_size((ths)); \ + (ths)->size &= ~0x2; \ + *(unsigned long*)((char*)(ths) + this_size) &= ~0x4; \ + *(unsigned long*)((char*)(ths) + this_size - sizeof(unsigned long)) = this_size + + +#define SubBlock_is_free(ths) !((ths)->size & 2) +#define SubBlock_set_size(ths, sz) \ + (ths)->size &= ~0xFFFFFFF8; \ + (ths)->size |= (sz) & 0xFFFFFFF8; \ + if (SubBlock_is_free((ths))) \ + *(unsigned long*)((char*)(ths) + (sz) - sizeof(unsigned long)) = (sz) + +#define SubBlock_from_pointer(ptr) ((SubBlock*)((char*)(ptr) - 8)) +#define FixSubBlock_from_pointer(ptr) ((FixSubBlock*)((char*)(ptr) - 4)) + +#define FixBlock_client_size(ths) ((ths)->client_size_) +#define FixSubBlock_size(ths) (FixBlock_client_size((ths)->block_)) + +#define classify(ptr) (*(unsigned long*)((char*)(ptr) - sizeof(unsigned long)) & 1) +#define __msize_inline(ptr) (!classify(ptr) ? FixSubBlock_size(FixSubBlock_from_pointer(ptr)) : SubBlock_size(SubBlock_from_pointer(ptr)) - 8) + +#define Block_empty(ths) \ + (_sb = (SubBlock*)((char*)(ths) + 16)), \ + SubBlock_is_free(_sb) && SubBlock_size(_sb) == Block_size((ths)) - 24 + +//unused +void Block_subBlock(){ +} + +void Block_link(Block* ths, SubBlock* sb) { + SubBlock** st; + SubBlock_set_free(sb); + st = &Block_start(ths); + + if (*st != 0) + { + sb->prev = (*st)->prev; + sb->prev->next = sb; + sb->next = *st; + (*st)->prev = sb; + *st = sb; + *st = SubBlock_merge_prev(*st, st); + SubBlock_merge_next(*st, st); + } + else + { + *st = sb; + sb->prev = sb; + sb->next = sb; + } + if (ths->max_size < SubBlock_size(*st)) + ths->max_size = SubBlock_size(*st); +} + +static SubBlock* SubBlock_merge_prev(SubBlock *ths, SubBlock **start) { + unsigned long prevsz; + SubBlock* p; + + if (!(ths->size & 0x04)) + { + prevsz = *(unsigned long*)((char*)ths - sizeof(unsigned long)); + if (prevsz & 0x2) + return ths; + p = (SubBlock*)((char*)ths - prevsz); + SubBlock_set_size(p, prevsz + SubBlock_size(ths)); + + if (*start == ths) + *start = (*start)->next; + ths->next->prev = ths->prev; + ths->next->prev->next = ths->next; + return p; + } + return ths; +} + + +static void SubBlock_merge_next(SubBlock *pBlock, SubBlock **pStart) { + SubBlock* next_sub_block; + unsigned long this_cur_size; + + next_sub_block = (SubBlock*)((char*)pBlock + (pBlock->size & 0xFFFFFFF8)); + + if (!(next_sub_block->size & 2)) { + this_cur_size = (pBlock->size & 0xFFFFFFF8) + (next_sub_block->size & 0xFFFFFFF8); + + pBlock->size &= ~0xFFFFFFF8; + pBlock->size |= this_cur_size & 0xFFFFFFF8; + + if (!(pBlock->size & 2)) { + *(unsigned long*)((char*)(pBlock) + (this_cur_size) - 4) = (this_cur_size); + } + + if (!(pBlock->size & 2)) { + *(unsigned long *)((char*)pBlock + this_cur_size) &= ~4; + } + else { + *(unsigned long *)((char*)pBlock + this_cur_size) |= 4; + } + + if (*pStart == next_sub_block) { + *pStart = (*pStart)->next; + } + + if (*pStart == next_sub_block) { + *pStart = 0; + } + + next_sub_block->next->prev = next_sub_block->prev; + next_sub_block->prev->next = next_sub_block->next; + } +} + +static Block* __unlink(__mem_pool_obj* pool_obj, Block* bp) { + Block* result = bp->next; + if (result == bp) { + result = 0; + } + + if (pool_obj->start_ == bp) { + pool_obj->start_ = result; + } + + if (result != 0) { + result->prev = bp->prev; + result->prev->next = result; + } + + bp->next = 0; + bp->prev = 0; + return result; +} + +//unused +void allocate_from_var_pools(){ +} + +//unused +void soft_allocate_from_var_pools(){ +} + +static void deallocate_from_var_pools(__mem_pool_obj* pool_obj, void *ptr) { + SubBlock* sb = SubBlock_from_pointer(ptr); + SubBlock* _sb; + + Block* bp = SubBlock_block(sb); + Block_link(bp, sb); + + if (Block_empty(bp)) { + __unlink(pool_obj, bp); + __sys_free(bp); + } +} + +//unused +void FixBlock_construct(){ +} + +void __init_pool_obj(__mem_pool* pool_obj) { + memset(pool_obj, 0, sizeof(__mem_pool_obj)); +} + + +static __mem_pool* get_malloc_pool(void) { + static __mem_pool protopool; + static unsigned char init = 0; + if (!init) { + __init_pool_obj(&protopool); + init = 1; + } + + return &protopool; +} + +//unused +void allocate_from_fixed_pools(){ +} + +void deallocate_from_fixed_pools(__mem_pool_obj* pool_obj, void* ptr, unsigned long size) { + unsigned long i = 0; + FixSubBlock* p; + FixBlock* b; + FixStart* fs; + + while (size > fix_pool_sizes[i]) { + ++i; + } + + fs = &pool_obj->fix_start[i]; + p = FixSubBlock_from_pointer(ptr); + b = p->block_; + + if (b->start_ == 0 && fs->head_ != b) { + if (fs->tail_ == b) { + fs->head_ = fs->head_->prev_; + fs->tail_ = fs->tail_->prev_; + } + else { + b->prev_->next_ = b->next_; + b->next_->prev_ = b->prev_; + b->next_ = fs->head_; + b->prev_ = b->next_->prev_; + b->prev_->next_ = b; + b->next_->prev_ = b; + fs->head_ = b; + } + } + + p->next_ = b->start_; + b->start_ = p; + + if (--b->n_allocated_ == 0) { + if (fs->head_ == b) { + fs->head_ = b->next_; + } + + if (fs->tail_ == b) { + fs->tail_ = b->prev_; + } + + b->prev_->next_ = b->next_; + b->next_->prev_ = b->prev_; + + if (fs->head_ == b) { + fs->head_ = 0; + } + + if (fs->tail_ == b) { + fs->tail_ = 0; + } + + deallocate_from_var_pools(pool_obj, b); + } +} + +//unused +void __pool_allocate_resize(){ +} + +//unused +void __msize(){ +} + +//unused +void __pool_alloc(){ +} + +//unused +void __allocate_size(){ +} + +//unused +void __allocate(){ +} + +//unused +void __allocate_resize(){ +} + +//unused +void __allocate_expand(){ +} + +void __pool_free(__mem_pool *pool, void *ptr) { + __mem_pool_obj* pool_obj; + unsigned long size; + + if (ptr == 0) { + return; + } + + pool_obj = (__mem_pool_obj*)pool; + size = __msize_inline(ptr); + + if (size <= 68) { + deallocate_from_fixed_pools(pool_obj, ptr, size); + } + else { + deallocate_from_var_pools(pool_obj, ptr); + } +} + +//unused +void __pool_realloc(){ +} + +//unused +void __pool_alloc_clear(){ +} + +//unused +void malloc(){ +} + +void free(void *ptr) { + __pool_free(get_malloc_pool(), ptr); +} + + +//unused +void realloc(){ +} + +//unused +void calloc(){ +} + +//unused +void __pool_free_all(){ +} + +//unused +void __malloc_free_all(){ +} diff --git a/src/MSL_C.PPCEABI.bare.H/printf.c b/src/MSL_C.PPCEABI.bare.H/printf.c index 21d248da..9fa17473 100644 --- a/src/MSL_C.PPCEABI.bare.H/printf.c +++ b/src/MSL_C.PPCEABI.bare.H/printf.c @@ -17,1060 +17,1123 @@ extern void __num2dec(const decform*, double, decimal*); #define TARGET_FLOAT_MANT_DIG LDBL_MANT_DIG #define TARGET_FLOAT_IMPLICIT_J_BIT 1 #define TARGET_FLOAT_MANT_BITS \ - (TARGET_FLOAT_MANT_DIG - TARGET_FLOAT_IMPLICIT_J_BIT) + (TARGET_FLOAT_MANT_DIG - TARGET_FLOAT_IMPLICIT_J_BIT) #define TARGET_FLOAT_EXP_BITS (TARGET_FLOAT_BITS - TARGET_FLOAT_MANT_BITS - 1) enum justification_options { - left_justification, - right_justification, - zero_fill + left_justification, + right_justification, + zero_fill }; enum sign_options { only_minus, sign_always, space_holder }; enum argument_options { - normal_argument, - char_argument, - short_argument, - long_argument, - long_long_argument, - long_double_argument, - wchar_argument + normal_argument, + char_argument, + short_argument, + long_argument, + long_long_argument, + long_double_argument, + wchar_argument }; typedef struct { - unsigned char justification_options; - unsigned char sign_options; - unsigned char precision_specified; - unsigned char alternate_form; - unsigned char argument_options; - unsigned char conversion_char; - int field_width; - int precision; + unsigned char justification_options; + unsigned char sign_options; + unsigned char precision_specified; + unsigned char alternate_form; + unsigned char argument_options; + unsigned char conversion_char; + int field_width; + int precision; } print_format; -static const char* parse_format(const char* format_string, va_list* arg, - print_format* format) -{ - print_format f; - const char* s = format_string; - int c; - int flag_found; - f.justification_options = right_justification; - f.sign_options = only_minus; - f.precision_specified = 0; - f.alternate_form = 0; - f.argument_options = normal_argument; - f.field_width = 0; - f.precision = 0; +static const char* parse_format(const char *format_string, va_list *arg, print_format *format) { + print_format f; + const char* s = format_string; + int c; + int flag_found; + f.justification_options = right_justification; + f.sign_options = only_minus; + f.precision_specified = 0; + f.alternate_form = 0; + f.argument_options = normal_argument; + f.field_width = 0; + f.precision = 0; - if ((c = *++s) == '%') { - f.conversion_char = c; - *format = f; - return ((const char*)s + 1); - } + if ((c = *++s) == '%') { + f.conversion_char = c; + *format = f; + return ((const char*)s + 1); + } - for (;;) { - flag_found = 1; + for (;;) { + flag_found = 1; - switch (c) { - case '-': - f.justification_options = left_justification; - break; - case '+': - f.sign_options = sign_always; - break; - case ' ': - if (f.sign_options != sign_always) { - f.sign_options = space_holder; - } - break; - case '#': - f.alternate_form = 1; - break; - case '0': - if (f.justification_options != left_justification) { - f.justification_options = zero_fill; - } - break; - default: - flag_found = 0; - break; - } + switch (c) { + case '-': + f.justification_options = left_justification; + break; + case '+': + f.sign_options = sign_always; + break; + case ' ': + if (f.sign_options != sign_always) { + f.sign_options = space_holder; + } + break; + case '#': + f.alternate_form = 1; + break; + case '0': + if (f.justification_options != left_justification) { + f.justification_options = zero_fill; + } + break; + default: + flag_found = 0; + break; + } - if (flag_found) { - c = *++s; - } else { - break; - } - } + if (flag_found) { + c = *++s; + } + else { + break; + } + } - if (c == '*') { - if ((f.field_width = va_arg(*arg, int)) < 0) { - f.justification_options = left_justification; - f.field_width = -f.field_width; - } + if (c == '*') { + if ((f.field_width = va_arg(*arg, int)) < 0) { + f.justification_options = left_justification; + f.field_width = -f.field_width; + } - c = *++s; - } else { - while (isdigit(c)) { - f.field_width = (f.field_width * 10) + (c - '0'); - c = *++s; - } - } + c = *++s; + } + else { + while (isdigit(c)) { + f.field_width = (f.field_width * 10) + (c - '0'); + c = *++s; + } + } - if (f.field_width > 509) { - f.conversion_char = 0xFF; - *format = f; - return ((const char*)s + 1); - } + if (f.field_width > 509) { + f.conversion_char = 0xFF; + *format = f; + return ((const char*)s + 1); + } - if (c == '.') { - f.precision_specified = 1; + if (c == '.') { + f.precision_specified = 1; - if ((c = *++s) == '*') { - if ((f.precision = va_arg(*arg, int)) < 0) { - f.precision_specified = 0; - } + if ((c = *++s) == '*') { + if ((f.precision = va_arg(*arg, int)) < 0) { + f.precision_specified = 0; + } - c = *++s; - } else { - while (isdigit(c)) { - f.precision = (f.precision * 10) + (c - '0'); - c = *++s; - } - } - } + c = *++s; + } + else { + while (isdigit(c)) { + f.precision = (f.precision * 10) + (c - '0'); + c = *++s; + } + } + } - flag_found = 1; + flag_found = 1; - switch (c) { - case 'h': - f.argument_options = short_argument; + switch (c) { + case 'h': + f.argument_options = short_argument; - if (s[1] == 'h') { - f.argument_options = char_argument; - c = *++s; - } + if (s[1] == 'h') { + f.argument_options = char_argument; + c = *++s; + } - break; + break; - case 'l': - f.argument_options = long_argument; + case 'l': + f.argument_options = long_argument; - if (s[1] == 'l') { - f.argument_options = long_long_argument; - c = *++s; - } + if (s[1] == 'l') { + f.argument_options = long_long_argument; + c = *++s; + } - break; + break; - case 'L': - f.argument_options = long_double_argument; - break; - default: - flag_found = 0; - break; - } + case 'L': + f.argument_options = long_double_argument; + break; + default: + flag_found = 0; + break; + } - if (flag_found) { - c = *++s; - } + if (flag_found) { + c = *++s; + } - f.conversion_char = c; + f.conversion_char = c; - switch (c) { - case 'd': - case 'i': - case 'u': - case 'o': - case 'x': - case 'X': - if (f.argument_options == long_double_argument) { - f.conversion_char = 0xFF; - break; - } + switch (c) { + case 'd': + case 'i': + case 'u': + case 'o': + case 'x': + case 'X': + if (f.argument_options == long_double_argument) { + f.conversion_char = 0xFF; + break; + } - if (!f.precision_specified) { - f.precision = 1; - } else if (f.justification_options == zero_fill) { - f.justification_options = right_justification; - } - break; + if (!f.precision_specified) { + f.precision = 1; + } + else if (f.justification_options == zero_fill) { + f.justification_options = right_justification; + } + break; - case 'f': - if (f.argument_options == short_argument - || f.argument_options == long_long_argument) { - f.conversion_char = 0xFF; - break; - } + case 'f': + case 'F': + if (f.argument_options == short_argument || f.argument_options == long_long_argument) { + f.conversion_char = 0xFF; + break; + } - if (!f.precision_specified) { - f.precision = 6; - } - break; + if (!f.precision_specified) { + f.precision = 6; + } + break; - case 'g': - case 'G': - if (!f.precision) { - f.precision = 1; - } + case 'a': + case 'A': + if (!f.precision_specified) { + f.precision = 0xD; + } - case 'e': - case 'E': - if (f.argument_options == short_argument - || f.argument_options == long_long_argument - || f.argument_options == char_argument) { - f.conversion_char = 0xFF; - break; - } + if (f.argument_options == short_argument || f.argument_options == long_long_argument || f.argument_options == char_argument) { + f.conversion_char = 0xFF; + } - if (!f.precision_specified) { - f.precision = 6; - } - break; + break; - case 'p': - f.conversion_char = 'x'; - f.alternate_form = 1; - f.argument_options = long_argument; - f.precision = 8; - break; + case 'g': + case 'G': + if (!f.precision) { + f.precision = 1; + } - case 'c': - if (f.argument_options == long_argument) { - f.argument_options = wchar_argument; - } else { - if (f.precision_specified - || f.argument_options != normal_argument) { - f.conversion_char = 0xFF; - } - } + case 'e': + case 'E': + if (f.argument_options == short_argument || f.argument_options == long_long_argument || f.argument_options == char_argument) { + f.conversion_char = 0xFF; + break; + } - break; + if (!f.precision_specified) { + f.precision = 6; + } + break; - case 's': - if (f.argument_options == long_argument) { - f.argument_options = wchar_argument; - } else { - if (f.argument_options != normal_argument) { - f.conversion_char = 0xFF; - } - } + case 'p': + f.conversion_char = 'x'; + f.alternate_form = 1; + f.argument_options = long_argument; + f.precision = 8; + break; - break; + case 'c': + if (f.argument_options == long_argument) { + f.argument_options = wchar_argument; + } + else { + if (f.precision_specified || f.argument_options != normal_argument) { + f.conversion_char = 0xFF; + } + } - case 'n': - if (f.argument_options == long_double_argument) { - f.conversion_char = 0xFF; - } + break; - break; + case 's': + if (f.argument_options == long_argument) { + f.argument_options = wchar_argument; + } + else { + if (f.argument_options != normal_argument) { + f.conversion_char = 0xFF; + } + } - default: - f.conversion_char = 0xFF; - break; - } + break; - *format = f; - return ((const char*)s + 1); + case 'n': + if (f.argument_options == long_double_argument) { + f.conversion_char = 0xFF; + } + + break; + + default: + f.conversion_char = 0xFF; + break; + } + + *format = f; + return ((const char*)s + 1); } -static char* long2str(signed long num, char* buff, print_format* format) +static char* long2str(long num, char* buff, print_format format) { - unsigned long unsigned_num, base; - char* p; - int n, digits; - int minus = 0; - unsigned_num = num; - minus = 0; + unsigned long unsigned_num, base; + char* p; + int n, digits; + int minus = 0; + unsigned_num = num; + minus = 0; - p = buff; - *--p = 0; - digits = 0; + p = buff; + *--p = 0; + digits = 0; - if (!num && !format->precision - && !(format->alternate_form && format->conversion_char == 'o')) { - return p; - } + if (!num && !format.precision + && !(format.alternate_form && format.conversion_char == 'o')) { + return p; + } - switch (format->conversion_char) { - case 'd': - case 'i': - base = 10; + switch (format.conversion_char) { + case 'd': + case 'i': + base = 10; - if (num < 0) { - unsigned_num = -unsigned_num; - minus = 1; - } - break; + if (num < 0) { + unsigned_num = -unsigned_num; + minus = 1; + } + break; - case 'o': - base = 8; - format->sign_options = only_minus; - break; + case 'o': + base = 8; + format.sign_options = only_minus; + break; - case 'u': - base = 10; - format->sign_options = only_minus; - break; + case 'u': + base = 10; + format.sign_options = only_minus; + break; - case 'x': - case 'X': - base = 16; - format->sign_options = only_minus; - break; - } + case 'x': + case 'X': + base = 16; + format.sign_options = only_minus; + break; + } - do { - n = unsigned_num % base; - unsigned_num /= base; + do { + n = unsigned_num % base; + unsigned_num /= base; - if (n < 10) { - n += '0'; - } else { - n -= 10; + if (n < 10) { + n += '0'; + } else { + n -= 10; - if (format->conversion_char == 'x') { - n += 'a'; - } else { - n += 'A'; - } - } + if (format.conversion_char == 'x') { + n += 'a'; + } else { + n += 'A'; + } + } - *--p = n; - ++digits; - } while (unsigned_num != 0); + *--p = n; + ++digits; + } while (unsigned_num != 0); - if (base == 8 && format->alternate_form && *p != '0') { - *--p = '0'; - ++digits; - } + if (base == 8 && format.alternate_form && *p != '0') { + *--p = '0'; + ++digits; + } - if (format->justification_options == zero_fill) { - format->precision = format->field_width; + if (format.justification_options == zero_fill) { + format.precision = format.field_width; - if (minus || format->sign_options != only_minus) - --format->precision; + if (minus || format.sign_options != only_minus) + --format.precision; - if (base == 16 && format->alternate_form) - format->precision -= 2; - } + if (base == 16 && format.alternate_form) + format.precision -= 2; + } - if (buff - p + format->precision > 509) - return (0); + if (buff - p + format.precision > 509) + return (0); - while (digits < format->precision) { - *--p = '0'; - ++digits; - } + while (digits < format.precision) { + *--p = '0'; + ++digits; + } - if (base == 16 && format->alternate_form) { - *--p = format->conversion_char; - *--p = '0'; - } + if (base == 16 && format.alternate_form) { + *--p = format.conversion_char; + *--p = '0'; + } - if (minus) { - *--p = '-'; - } else if (format->sign_options == sign_always) { - *--p = '+'; - } else if (format->sign_options == space_holder) { - *--p = ' '; - } + if (minus) { + *--p = '-'; + } else if (format.sign_options == sign_always) { + *--p = '+'; + } else if (format.sign_options == space_holder) { + *--p = ' '; + } - return p; + return p; } -static char* longlong2str(signed long long num, char* pBuf, print_format* fmt) +static char* longlong2str(long long num, char* pBuf, print_format fmt) { - unsigned long long unsigned_num, base; - char* p; - int n, digits; - int minus = 0; - unsigned_num = num; - minus = 0; - p = pBuf; - *--p = 0; - digits = 0; + unsigned long long unsigned_num, base; + char* p; + int n, digits; + int minus = 0; + unsigned_num = num; + minus = 0; + p = pBuf; + *--p = 0; + digits = 0; - if (!num && !fmt->precision - && !(fmt->alternate_form && fmt->conversion_char == 'o')) { - return p; - } + if (!num && !fmt.precision + && !(fmt.alternate_form && fmt.conversion_char == 'o')) { + return p; + } - switch (fmt->conversion_char) { - case 'd': - case 'i': - base = 10; + switch (fmt.conversion_char) { + case 'd': + case 'i': + base = 10; - if (num < 0) { - unsigned_num = -unsigned_num; - minus = 1; - } - break; - case 'o': - base = 8; - fmt->sign_options = only_minus; - break; - case 'u': - base = 10; - fmt->sign_options = only_minus; - break; - case 'x': - case 'X': - base = 16; - fmt->sign_options = only_minus; - break; - } + if (num < 0) { + unsigned_num = -unsigned_num; + minus = 1; + } + break; + case 'o': + base = 8; + fmt.sign_options = only_minus; + break; + case 'u': + base = 10; + fmt.sign_options = only_minus; + break; + case 'x': + case 'X': + base = 16; + fmt.sign_options = only_minus; + break; + } - do { - n = unsigned_num % base; - unsigned_num /= base; + do { + n = unsigned_num % base; + unsigned_num /= base; - if (n < 10) { - n += '0'; - } else { - n -= 10; - if (fmt->conversion_char == 'x') { - n += 'a'; - } else { - n += 'A'; - } - } + if (n < 10) { + n += '0'; + } else { + n -= 10; + if (fmt.conversion_char == 'x') { + n += 'a'; + } else { + n += 'A'; + } + } - *--p = n; - ++digits; - } while (unsigned_num != 0); + *--p = n; + ++digits; + } while (unsigned_num != 0); - if (base == 8 && fmt->alternate_form && *p != '0') { - *--p = '0'; - ++digits; - } + if (base == 8 && fmt.alternate_form && *p != '0') { + *--p = '0'; + ++digits; + } - if (fmt->justification_options == zero_fill) { - fmt->precision = fmt->field_width; + if (fmt.justification_options == zero_fill) { + fmt.precision = fmt.field_width; - if (minus || fmt->sign_options != only_minus) { - --fmt->precision; - } + if (minus || fmt.sign_options != only_minus) { + --fmt.precision; + } - if (base == 16 && fmt->alternate_form) { - fmt->precision -= 2; - } - } + if (base == 16 && fmt.alternate_form) { + fmt.precision -= 2; + } + } - if (pBuf - p + fmt->precision > 509) { - return 0; - } + if (pBuf - p + fmt.precision > 509) { + return 0; + } - while (digits < fmt->precision) { - *--p = '0'; - ++digits; - } + while (digits < fmt.precision) { + *--p = '0'; + ++digits; + } - if (base == 16 && fmt->alternate_form) { - *--p = fmt->conversion_char; - *--p = '0'; - } + if (base == 16 && fmt.alternate_form) { + *--p = fmt.conversion_char; + *--p = '0'; + } - if (minus) { - *--p = '-'; - } else if (fmt->sign_options == sign_always) { - *--p = '+'; - } else if (fmt->sign_options == space_holder) { - *--p = ' '; - } + if (minus) { + *--p = '-'; + } else if (fmt.sign_options == sign_always) { + *--p = '+'; + } else if (fmt.sign_options == space_holder) { + *--p = ' '; + } - return p; + return p; } +static char * double2hex(long double num, char * buff, print_format format); + static void round_decimal(decimal* dec, int new_length) { - char c; - char* p; - int carry; + char c; + char* p; + int carry; - if (new_length < 0) { - return_zero: - dec->sign = 0; - dec->exp = 0; - dec->sig.length = 1; - *dec->sig.text = '0'; - return; - } + if (new_length < 0) { + return_zero: + dec->exp = 0; + dec->sig.length = 1; + *dec->sig.text = '0'; + return; + } - if (new_length >= dec->sig.length) { - return; - } + if (new_length >= dec->sig.length) { + return; + } - p = (char*)dec->sig.text + new_length + 1; - c = *--p - '0'; + p = (char*)dec->sig.text + new_length + 1; + c = *--p - '0'; - if (c == 5) { - char* q = &((char*)dec->sig.text)[dec->sig.length]; + if (c == 5) { + char* q = &((char*)dec->sig.text)[dec->sig.length]; - while (--q > p && *q == '0') - ; - carry = (q == p) ? p[-1] & 1 : 1; - } else { - carry = (c > 5); - } + while (--q > p && *q == '0') + ; + carry = (q == p) ? p[-1] & 1 : 1; + } else { + carry = (c > 5); + } - while (new_length != 0) { - c = *--p - '0' + carry; + while (new_length != 0) { + c = *--p - '0' + carry; - if ((carry = (c > 9)) != 0 || c == 0) { - --new_length; - } else { - *p = c + '0'; - break; - } - } + if ((carry = (c > 9)) != 0 || c == 0) { + --new_length; + } else { + *p = c + '0'; + break; + } + } - if (carry != 0) { - dec->exp += 1; - dec->sig.length = 1; - *dec->sig.text = '1'; - return; - } else if (new_length == 0) { - goto return_zero; - } + if (carry != 0) { + dec->exp += 1; + dec->sig.length = 1; + *dec->sig.text = '1'; + return; + } else if (new_length == 0) { + goto return_zero; + } - dec->sig.length = new_length; + dec->sig.length = new_length; } -static char* float2str(va_list arg, char* buff, print_format* format, - int vecIndex) -{ - decimal dec; - decform form; - char* p; - char* q; - int n, digits, sign; - int int_digits, frac_digits; - long double num; +static char* float2str(long double num, char *buff, print_format format) { + decimal dec; + decform form; + char* p; + char* q; + int n, digits, sign; + int int_digits, frac_digits; - if (format->argument_options == long_double_argument) { - num = va_arg(arg, long double); - } else { - num = va_arg(arg, double); - } + if (format.precision > 509) { + return 0; + } - if (format->precision > 509) { - return 0; - } + form.style = 0; + form.digits = 0x20; + __num2dec(&form, num, &dec); + p = (char*)dec.sig.text + dec.sig.length; - form.style = 0; - form.digits = 0x20; - __num2dec(&form, num, &dec); - p = (char*)dec.sig.text + dec.sig.length; + while (dec.sig.length > 1 && *--p == '0') { + --dec.sig.length; + ++dec.exp; + } - while (dec.sig.length > 1 && *--p == '0') { - --dec.sig.length; - ++dec.exp; - } + switch (*dec.sig.text) { + case '0': + dec.exp = 0; + break; + case 'I': + if (num < 0) { + p = buff - 5; - switch (*dec.sig.text) { - case '0': - dec.exp = 0; - break; - case 'I': - if (num < 0) { - p = buff - 5; - strcpy(p, "-Inf"); - } else { - p = buff - 4; - strcpy(p, "Inf"); - } + if (isupper(format.conversion_char)) { + strcpy(p, "-INF"); + } + else { + strcpy(p, "-inf"); + } + } + else { + p = buff - 4; + if (isupper(format.conversion_char)) { + strcpy(p, "INF"); + } + else { + strcpy(p, "inf"); + } + } - return p; + return p; - case 'N': - p = buff - 4; - strcpy(p, "NaN"); - return p; - } + case 'N': + if (dec.sign) { + p = buff - 5; - dec.exp += dec.sig.length - 1; - p = buff; - *--p = 0; + if (isupper(format.conversion_char)) { + strcpy(p, "-NAN"); + } + else { + strcpy(p, "-nan"); + } + } + else { + p = buff - 4; + if (isupper(format.conversion_char)) { + strcpy(p, "NAN"); + } + else { + strcpy(p, "nan"); + } + } - switch (format->conversion_char) { - case 'g': - case 'G': + return p; + } - if (dec.sig.length > format->precision) { - round_decimal(&dec, format->precision); - } + dec.exp += dec.sig.length - 1; + p = buff; + *--p = 0; - if (dec.exp < -4 || dec.exp >= format->precision) { - if (format->alternate_form) { - --format->precision; - } else { - format->precision = dec.sig.length - 1; - } + switch (format.conversion_char) + { + case 'g': + case 'G': - if (format->conversion_char == 'g') { - format->conversion_char = 'e'; - } else { - format->conversion_char = 'E'; - } + if (dec.sig.length > format.precision) { + round_decimal(&dec, format.precision); + } - goto e_format; - } + if (dec.exp < -4 || dec.exp >= format.precision) + { + if (format.alternate_form) { + --format.precision; + } + else { + format.precision = dec.sig.length - 1; + } - if (format->alternate_form) { - format->precision -= dec.exp + 1; - } else { - if ((format->precision = dec.sig.length - (dec.exp + 1)) < 0) { - format->precision = 0; - } - } + if (format.conversion_char == 'g') { + format.conversion_char = 'e'; + } + else { + format.conversion_char = 'E'; + } - goto f_format; + goto e_format; + } - case 'e': - case 'E': - e_format: + if (format.alternate_form) { + format.precision -= dec.exp + 1; + } + else { + if ((format.precision = dec.sig.length - (dec.exp + 1)) < 0) { + format.precision = 0; + } + } - if (dec.sig.length > format->precision + 1) { - round_decimal(&dec, format->precision + 1); - } + goto f_format; - n = dec.exp; - sign = '+'; + case 'e': + case 'E': + e_format: - if (n < 0) { - n = -n; - sign = '-'; - } + if (dec.sig.length > format.precision + 1) { + round_decimal(&dec, format.precision + 1); + } - for (digits = 0; n || digits < 2; ++digits) { - *--p = n % 10 + '0'; - n /= 10; - } + n = dec.exp; + sign = '+'; - *--p = sign; - *--p = format->conversion_char; + if (n < 0) { + n = -n; + sign = '-'; + } - if (buff - p + format->precision > 509) { - return 0; - } + for (digits = 0; n || digits < 2; ++digits) { + *--p = n % 10 + '0'; + n /= 10; + } - if (dec.sig.length < format->precision + 1) { - for (n = format->precision + 1 - dec.sig.length + 1; --n;) { - *--p = '0'; - } - } + *--p = sign; + *--p = format.conversion_char; - for (n = dec.sig.length, q = (char*)dec.sig.text + dec.sig.length; - --n;) { - *--p = *--q; - } + if (buff - p + format.precision > 509) { + return 0; + } - if (format->precision || format->alternate_form) { - *--p = '.'; - } + if (dec.sig.length < format.precision + 1) { + for (n = format.precision + 1 - dec.sig.length + 1; --n;) { + *--p = '0'; + } + } - *--p = *dec.sig.text; + for (n = dec.sig.length, q = (char*)dec.sig.text + dec.sig.length; --n;) { + *--p = *--q; + } - if (dec.sign) - *--p = '-'; - else if (format->sign_options == sign_always) - *--p = '+'; - else if (format->sign_options == space_holder) - *--p = ' '; + if (format.precision || format.alternate_form) { + *--p = '.'; + } - break; + *--p = *dec.sig.text; - case 'f': - f_format: + if (dec.sign) + *--p = '-'; + else if (format.sign_options == sign_always) + *--p = '+'; + else if (format.sign_options == space_holder) + *--p = ' '; - if ((frac_digits = -dec.exp + dec.sig.length - 1) < 0) - frac_digits = 0; + break; - if (frac_digits > format->precision) { - round_decimal(&dec, - dec.sig.length - (frac_digits - format->precision)); + case 'f': + case 'F': + f_format: - if ((frac_digits = -dec.exp + dec.sig.length - 1) < 0) - frac_digits = 0; - } + if ((frac_digits = -dec.exp + dec.sig.length - 1) < 0) + frac_digits = 0; - if ((int_digits = dec.exp + 1) < 0) - int_digits = 0; + if (frac_digits > format.precision) { + round_decimal(&dec, dec.sig.length - (frac_digits - format.precision)); - if (int_digits + frac_digits > 509) - return 0; + if ((frac_digits = -dec.exp + dec.sig.length - 1) < 0) + frac_digits = 0; + } - q = (char*)dec.sig.text + dec.sig.length; + if ((int_digits = dec.exp + 1) < 0) + int_digits = 0; - for (digits = 0; digits < (format->precision - frac_digits); ++digits) - *--p = '0'; + if (int_digits + frac_digits > 509) + return 0; - for (digits = 0; digits < frac_digits && digits < dec.sig.length; - ++digits) - *--p = *--q; + q = (char *) dec.sig.text + dec.sig.length; - for (; digits < frac_digits; ++digits) - *--p = '0'; + for (digits = 0; digits < (format.precision - frac_digits); ++digits) + *--p = '0'; - if (format->precision || format->alternate_form) - *--p = '.'; + for (digits = 0; digits < frac_digits && digits < dec.sig.length; ++digits) + *--p = *--q; - if (int_digits) { - for (digits = 0; digits < int_digits - dec.sig.length; ++digits) { - *--p = '0'; - } + for (; digits < frac_digits; ++digits) + *--p = '0'; - for (; digits < int_digits; ++digits) { - *--p = *--q; - } - } else { - *--p = '0'; - } + if (format.precision || format.alternate_form) + *--p = '.'; - if (dec.sign) { - *--p = '-'; - } else if (format->sign_options == sign_always) { - *--p = '+'; - } else if (format->sign_options == space_holder) { - *--p = ' '; - } + if (int_digits) { + for (digits = 0; digits < int_digits - dec.sig.length; ++digits) { + *--p = '0'; + } - break; - } + for (; digits < int_digits; ++digits) { + *--p = *--q; + } + } + else { + *--p = '0'; + } - return p; + if (dec.sign) { + *--p = '-'; + } + else if (format.sign_options == sign_always) { + *--p = '+'; + } + else if (format.sign_options == space_holder) { + *--p = ' '; + } + + break; + } + + return p; } -static int __pformatter(void* (*WriteProc)(void*, const char*, size_t), - void* WriteProcArg, const char* format_str, va_list arg) -{ - int num_chars, chars_written, field_width; - const char* format_ptr; - const char* curr_format; - print_format format; - signed long long_num; - signed long long long_long_num; - char buff[512]; - char* buff_ptr; - char* string_end; - char fill_char = ' '; +static int __pformatter(void *(*WriteProc)(void *, const char *, size_t), void *WriteProcArg, const char * format_str, va_list arg) { + int num_chars, chars_written, field_width; + const char* format_ptr; + const char* curr_format; + print_format format; + long long_num; + long long long_long_num; + long double long_double_num; + char buff[512]; + char* buff_ptr; + char* string_end; + char fill_char = ' '; - format_ptr = format_str; - chars_written = 0; + format_ptr = format_str; + chars_written = 0; - while (*format_ptr) { - if (!(curr_format = strchr(format_ptr, '%'))) { - num_chars = strlen(format_ptr); - chars_written += num_chars; + while (*format_ptr) { + if (!(curr_format = strchr(format_ptr, '%'))) { + num_chars = strlen(format_ptr); + chars_written += num_chars; - if (num_chars - && !(*WriteProc)(WriteProcArg, format_ptr, num_chars)) { - return -1; - } + if (num_chars && !(*WriteProc)(WriteProcArg, format_ptr, num_chars)) { + return -1; + } - break; - } + break; + } - num_chars = curr_format - format_ptr; - chars_written += num_chars; + num_chars = curr_format - format_ptr; + chars_written += num_chars; - if (num_chars && !(*WriteProc)(WriteProcArg, format_ptr, num_chars)) { - return -1; - } + if (num_chars && !(*WriteProc)(WriteProcArg, format_ptr, num_chars)) { + return -1; + } - format_ptr = curr_format; - format_ptr = parse_format(format_ptr, (va_list*)arg, &format); + format_ptr = curr_format; + format_ptr = parse_format(format_ptr, (va_list*)arg, &format); - switch (format.conversion_char) { - case 'd': - case 'i': - if (format.argument_options == long_argument) { - long_num = va_arg(arg, signed long); - } else if (format.argument_options == long_long_argument) { - long_long_num = va_arg(arg, signed long long); - } else { - long_num = va_arg(arg, int); - } + switch (format.conversion_char) { + case 'd': + case 'i': + if (format.argument_options == long_argument) { + long_num = va_arg(arg, long); + } + else if (format.argument_options == long_long_argument) { + long_long_num = va_arg(arg, long long); + } + else { + long_num = va_arg(arg, int); + } - if (format.argument_options == short_argument) { - long_num = (signed short)long_num; - } + if (format.argument_options == short_argument) { + long_num = (short)long_num; + } - if (format.argument_options == char_argument) { - long_num = (signed char)long_num; - } + if (format.argument_options == char_argument) { + long_num = (signed char)long_num; + } - if (format.argument_options == long_long_argument) { - if (!(buff_ptr - = longlong2str(long_long_num, buff + 512, &format))) { - goto conversion_error; - } - } else { - if (!(buff_ptr = long2str(long_num, buff + 512, &format))) { - goto conversion_error; - } - } + if (format.argument_options == long_long_argument) { + if (!(buff_ptr = longlong2str(long_long_num, buff + 512, format))) { + goto conversion_error; + } + } + else { + if (!(buff_ptr = long2str(long_num, buff + 512, format))) { + goto conversion_error; + } + } - num_chars = buff + 512 - 1 - buff_ptr; - break; + num_chars = buff + 512 - 1 - buff_ptr; + break; - case 'o': - case 'u': - case 'x': - case 'X': - if (format.argument_options == long_argument) { - long_num = va_arg(arg, unsigned long); - } else if (format.argument_options == long_long_argument) { - long_long_num = va_arg(arg, signed long long); - } else { - long_num = va_arg(arg, unsigned int); - } + case 'o': + case 'u': + case 'x': + case 'X': + if (format.argument_options == long_argument) { + long_num = va_arg(arg, unsigned long); + } + else if (format.argument_options == long_long_argument) { + long_long_num = va_arg(arg, long long); + } + else { + long_num = va_arg(arg, unsigned int); + } - if (format.argument_options == short_argument) { - long_num = (unsigned short)long_num; - } + if (format.argument_options == short_argument) { + long_num = (unsigned short)long_num; + } - if (format.argument_options == char_argument) { - long_num = (unsigned char)long_num; - } + if (format.argument_options == char_argument) { + long_num = (unsigned char)long_num; + } - if (format.argument_options == long_long_argument) { - if (!(buff_ptr - = longlong2str(long_long_num, buff + 512, &format))) { - goto conversion_error; - } - } else { - if (!(buff_ptr = long2str(long_num, buff + 512, &format))) { - goto conversion_error; - } - } + if (format.argument_options == long_long_argument) { + if (!(buff_ptr = longlong2str(long_long_num, buff + 512, format))) { + goto conversion_error; + } + } + else { + if (!(buff_ptr = long2str(long_num, buff + 512, format))) { + goto conversion_error; + } + } - num_chars = buff + 512 - 1 - buff_ptr; - break; + num_chars = buff + 512 - 1 - buff_ptr; + break; - case 'f': - case 'e': - case 'E': - case 'g': - case 'G': - if (!(buff_ptr = float2str(arg, buff + 512, &format, 0))) { - goto conversion_error; - } + case 'f': + case 'F': + case 'e': + case 'E': + case 'g': + case 'G': + if (format.argument_options == long_double_argument) { + long_double_num = va_arg(arg, long double); + } + else { + long_double_num = va_arg(arg, double); + } - num_chars = buff + 512 - 1 - buff_ptr; - break; + if (!(buff_ptr = float2str(long_double_num, buff + 512, format))) { + goto conversion_error; + } - case 's': - if (format.argument_options == wchar_argument) { - wchar_t* wcs_ptr = va_arg(arg, wchar_t*); + num_chars = buff + 512 - 1 - buff_ptr; + break; - if (wcs_ptr == NULL) { - wcs_ptr = L""; - } + case 'a': + case 'A': + if (format.argument_options == long_double_argument) { + long_double_num = va_arg(arg, long double); + } + else { + long_double_num = va_arg(arg, double); + } - if ((num_chars = wcstombs(buff, wcs_ptr, sizeof(buff))) < 0) { - goto conversion_error; - } + if (!(buff_ptr = double2hex(long_double_num, buff + 512, format))) { + goto conversion_error; + } - buff_ptr = &buff[0]; - } else { - buff_ptr = va_arg(arg, char*); - } + num_chars = buff + 512 - 1 - buff_ptr; + break; - if (buff_ptr == NULL) { - buff_ptr = ""; - } + case 's': + if (format.argument_options == wchar_argument) { + wchar_t* wcs_ptr = va_arg(arg, wchar_t*); - if (format.alternate_form) { - num_chars = (unsigned char)*buff_ptr++; + if(wcs_ptr == NULL){ + wcs_ptr = L""; + } - if (format.precision_specified - && num_chars > format.precision) { - num_chars = format.precision; - } - } else if (format.precision_specified) { - num_chars = format.precision; + if ((num_chars = wcstombs(buff, wcs_ptr, sizeof(buff))) < 0) { + goto conversion_error; + } - if ((string_end - = (char*)memchr((unsigned char*)buff_ptr, 0, num_chars)) - != 0) { - num_chars = string_end - buff_ptr; - } - } else { - num_chars = strlen(buff_ptr); - } + buff_ptr = &buff[0]; + } + else { + buff_ptr = va_arg(arg, char *); + } - break; + if (buff_ptr == NULL) { + buff_ptr = ""; + } - case 'n': - buff_ptr = va_arg(arg, char*); + if (format.alternate_form) { + num_chars = (unsigned char)*buff_ptr++; - switch (format.argument_options) { - case normal_argument: - *(int*)buff_ptr = chars_written; - break; - case short_argument: - *(signed short*)buff_ptr = chars_written; - break; - case long_argument: - *(signed long*)buff_ptr = chars_written; - break; - case long_long_argument: - *(signed long long*)buff_ptr = chars_written; - break; - } + if (format.precision_specified && num_chars > format.precision) { + num_chars = format.precision; + } + } + else if (format.precision_specified) { + num_chars = format.precision; - continue; + if ((string_end = (char*)memchr((unsigned char*)buff_ptr, 0, num_chars)) != 0) { + num_chars = string_end - buff_ptr; + } + } + else { + num_chars = strlen(buff_ptr); + } - case 'c': - buff_ptr = buff; - *buff_ptr = va_arg(arg, int); - num_chars = 1; - break; + break; - case '%': - buff_ptr = buff; - *buff_ptr = '%'; - num_chars = 1; - break; + case 'n': + buff_ptr = va_arg(arg, char *); - case 0xFF: - default: - conversion_error: - num_chars = strlen(curr_format); - chars_written += num_chars; + switch (format.argument_options) { + case normal_argument: + *(int*)buff_ptr = chars_written; + break; + case short_argument: + *(short*)buff_ptr = chars_written; + break; + case long_argument: + *(long*)buff_ptr = chars_written; + break; + case long_long_argument: + *(long long*)buff_ptr = chars_written; + break; + } - if (num_chars - && !(*WriteProc)(WriteProcArg, curr_format, num_chars)) { - return -1; - } + continue; - return chars_written; - break; - } + case 'c': + buff_ptr = buff; + *buff_ptr = va_arg(arg, int); + num_chars = 1; + break; - field_width = num_chars; + case '%': + buff_ptr = buff; + *buff_ptr = '%'; + num_chars = 1; + break; - if (format.justification_options != left_justification) { - fill_char = (format.justification_options == zero_fill) ? '0' : ' '; + case 0xFF: + default: + conversion_error: + num_chars = strlen(curr_format); + chars_written += num_chars; - if (((*buff_ptr == '+') || (*buff_ptr == '-')) - && (fill_char == '0')) { - if ((*WriteProc)(WriteProcArg, buff_ptr, 1) == 0) { - return -1; - } + if (num_chars && !(*WriteProc)(WriteProcArg, curr_format, num_chars)) { + return -1; + } - ++buff_ptr; - num_chars--; - } + return chars_written; + break; + } - while (field_width < format.field_width) { - if ((*WriteProc)(WriteProcArg, &fill_char, 1) == 0) { - return -1; - } + field_width = num_chars; - ++field_width; - } - } + if (format.justification_options != left_justification) { + fill_char = (format.justification_options == zero_fill) ? '0' : ' '; - if (num_chars && !(*WriteProc)(WriteProcArg, buff_ptr, num_chars)) { - return -1; - } + if (((*buff_ptr == '+') || (*buff_ptr == '-') || (*buff_ptr == ' ')) && (fill_char == '0')) { + if ((*WriteProc)(WriteProcArg, buff_ptr, 1) == 0) { + return -1; + } - if (format.justification_options == left_justification) { - while (field_width < format.field_width) { - char blank = ' '; + ++buff_ptr; + num_chars--; + } - if ((*WriteProc)(WriteProcArg, &blank, 1) == 0) { - return -1; - } + while (field_width < format.field_width) { + if ((*WriteProc)(WriteProcArg, &fill_char, 1) == 0) { + return -1; + } - ++field_width; - } - } + ++field_width; + } + } - chars_written += field_width; - } + if (num_chars && !(*WriteProc)(WriteProcArg, buff_ptr, num_chars)) { + return -1; + } - return chars_written; + if (format.justification_options == left_justification) { + while (field_width < format.field_width) { + char blank = ' '; + + if ((*WriteProc)(WriteProcArg, &blank, 1) == 0) { + return -1; + } + + ++field_width; + } + } + + chars_written += field_width; + } + + return chars_written; } -static void* __FileWrite(void* pFile, const char* pBuffer, size_t char_num) +void* __FileWrite(void* pFile, const char* pBuffer, size_t char_num) { - return (fwrite(pBuffer, 1, char_num, (FILE*)pFile) == char_num ? pFile : 0); + return (fwrite(pBuffer, 1, char_num, (FILE*)pFile) == char_num ? pFile : 0); } -static void* __StringWrite(void* pCtrl, const char* pBuffer, size_t char_num) +void* __StringWrite(void* pCtrl, const char* pBuffer, size_t char_num) { - size_t chars; - __OutStrCtrl* ctrl = (__OutStrCtrl*)pCtrl; - void* res; + size_t chars; + __OutStrCtrl* ctrl = (__OutStrCtrl*)pCtrl; - chars = ((ctrl->CharsWritten + char_num) <= ctrl->MaxCharCount) - ? char_num - : ctrl->MaxCharCount - ctrl->CharsWritten; - res = memcpy(ctrl->CharStr + ctrl->CharsWritten, pBuffer, chars); - ctrl->CharsWritten += chars; - return res; + chars = ((ctrl->CharsWritten + char_num) <= ctrl->MaxCharCount) + ? char_num + : ctrl->MaxCharCount - ctrl->CharsWritten; + memcpy(ctrl->CharStr + ctrl->CharsWritten, pBuffer, chars); + ctrl->CharsWritten += chars; + return (void*) 1; } int printf(const char* format, ...) { - int res; + int res; - if (fwide(stdout, -1) >= 0) { - return -1; - } + if (fwide(stdout, -1) >= 0) { + return -1; + } - { - va_list args; - va_start(args, format); - res = __pformatter(&__FileWrite, (void*)stdout, format, args); - } + { + va_list args; + va_start(args, format); + res = __pformatter(&__FileWrite, (void*)stdout, format, args); + } - return res; + return res; } int vprintf(const char* format, va_list arg) { - int ret; + int ret; - if (fwide(stdout, -1) >= 0) { - return -1; - } + if (fwide(stdout, -1) >= 0) { + return -1; + } - ret = __pformatter(&__FileWrite, (void*)stdout, format, arg); - return ret; + ret = __pformatter(&__FileWrite, (void*)stdout, format, arg); + return ret; } int vsnprintf(char* s, size_t n, const char* format, va_list arg) { - int end; - __OutStrCtrl osc; - osc.CharStr = s; - osc.MaxCharCount = n; - osc.CharsWritten = 0; + int end; + __OutStrCtrl osc; + osc.CharStr = s; + osc.MaxCharCount = n; + osc.CharsWritten = 0; - end = __pformatter(&__StringWrite, &osc, format, arg); + end = __pformatter(&__StringWrite, &osc, format, arg); - s[(end < n) ? end : n - 1] = '\0'; + if (s) { + s[(end < n) ? end : n - 1] = '\0'; + } - return end; + return end; } -int snprintf(char* s, size_t n, const char* format, ...) -{ - va_list args; - va_start(args, format); - return vsnprintf(s, n, format, args); +int vsprintf(char *s, const char *format, va_list arg) { + return vsnprintf(s, 0xFFFFFFFF, format, arg); } int sprintf(char* s, const char* format, ...) { - va_list args; - va_start(args, format); - return vsnprintf(s, 0xFFFFFFFF, format, args); + va_list args; + va_start(args, format); + return vsnprintf(s, 0xFFFFFFFF, format, args); } diff --git a/src/MSL_C.PPCEABI.bare.H/signal.c b/src/MSL_C.PPCEABI.bare.H/signal.c index 9d5da4ee..3967650d 100755 --- a/src/MSL_C.PPCEABI.bare.H/signal.c +++ b/src/MSL_C.PPCEABI.bare.H/signal.c @@ -1,26 +1,24 @@ #include +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/signal.h" -void* signal_funcs[6]; +__signal_func_ptr signal_funcs[6]; -// regalloc: https://decomp.me/scratch/ufAYK -int raise(int arg0) { - void (*temp_r31)(int); - void** temp_r3; +int raise(int sig) { + __signal_func_ptr temp_r31; - if (arg0 < 1 || arg0 > 6) { + if (sig < 1 || sig > 6) { return -1; } - temp_r3 = &signal_funcs[arg0]; - temp_r31 = *(--temp_r3); + temp_r31 = signal_funcs[sig - 1]; if ((unsigned long) temp_r31 != 1) { - *temp_r3 = NULL; + signal_funcs[sig - 1] = NULL; } - if ((unsigned long) temp_r31 == 1 || (temp_r31 == NULL && arg0 == 1)) { + if ((unsigned long) temp_r31 == 1 || (temp_r31 == NULL && sig == 1)) { return 0; } if (temp_r31 == NULL) { exit(0); } - temp_r31(arg0); + temp_r31(sig); return 0; } diff --git a/src/MSL_C.PPCEABI.bare.H/string.c b/src/MSL_C.PPCEABI.bare.H/string.c index 4fbb776f..895f6662 100644 --- a/src/MSL_C.PPCEABI.bare.H/string.c +++ b/src/MSL_C.PPCEABI.bare.H/string.c @@ -1,8 +1,8 @@ #include "string.h" #include "stddef.h" -static int K1 = 0x80808080; -static int K2 = 0xFEFEFEFF; +#define K1 0x80808080 +#define K2 0xFEFEFEFF size_t strlen(const char* str) { @@ -20,8 +20,6 @@ char* strcpy(char* dst, const char* src) { register unsigned char *destb, *fromb; register unsigned long w, t, align; - register unsigned int k1; - register unsigned int k2; fromb = (unsigned char*)src; destb = (unsigned char*)dst; @@ -44,14 +42,11 @@ char* strcpy(char* dst, const char* src) ++fromb; } - k1 = K1; - k2 = K2; - w = *((int*)(fromb)); - t = w + k2; + t = w + K2; - t &= k1; + t &= K1; if (t) { goto bytecopy; } @@ -61,8 +56,8 @@ char* strcpy(char* dst, const char* src) *(++((int*)(destb))) = w; w = *(++((int*)(fromb))); - t = w + k2; - t &= k1; + t = w + K2; + t &= K1; if (t) { goto adjust; } @@ -103,16 +98,21 @@ char* strncpy(char* dst, const char* src, size_t n) return dst; } -char* strcat(char* dst, const char* src) +// TODO: same implementation as strncpy? +char* strcat(char* dst, const char* src, size_t n) { - const unsigned char* p = (unsigned char*)src - 1; + const unsigned char* p = (const unsigned char*)src - 1; unsigned char* q = (unsigned char*)dst - 1; - while (*++q) { } - - q--; - - while (*++q = *++p) { } + n++; + while (--n) { + if (!(*++q = *++p)) { + while (--n) { + *++q = 0; + } + break; + } + } return dst; } @@ -196,6 +196,22 @@ bytecopy: } while (1); } +int strncmp(const char* str1, const char* str2, size_t n) +{ + const unsigned char* p1 = (unsigned char*)str1 - 1; + const unsigned char* p2 = (unsigned char*)str2 - 1; + unsigned long c1, c2; + + n++; + + while (--n) + if ((c1 = *++p1) != (c2 = *++p2)) + return (c1 - c2); + else if (!c1) + break; + return 0; +} + char* strchr(const char* str, int c) { const unsigned char* p = (unsigned char*)str - 1; From 5e45589b3e9ec1fe723a58e3b7fc29be9d430bba Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 2 Feb 2025 18:38:55 +0100 Subject: [PATCH 278/311] Remove TODO --- src/REL/m412Dll/main.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c index d71592b2..35f10b6a 100644 --- a/src/REL/m412Dll/main.c +++ b/src/REL/m412Dll/main.c @@ -1425,7 +1425,6 @@ static inline void PadInline(void) (void)var_f27; } -// fn_1_6814: https://decomp.me/scratch/WQPjD void fn_1_6814(unkStruct3 *arg0) { Vec sp104; From 28ce8f9696fd5eb22a43025fa261a574fd32c838 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 2 Feb 2025 18:39:29 +0100 Subject: [PATCH 279/311] Match m427Dll/player.c --- config/GMPE01_00/rels/m427Dll/symbols.txt | 5 +- configure.py | 2 +- include/REL/m427Dll.h | 10 +- src/REL/m427Dll/player.c | 2367 +++++++++++++++++++++ 4 files changed, 2380 insertions(+), 4 deletions(-) create mode 100644 src/REL/m427Dll/player.c diff --git a/config/GMPE01_00/rels/m427Dll/symbols.txt b/config/GMPE01_00/rels/m427Dll/symbols.txt index bc2a2d73..d075d6af 100644 --- a/config/GMPE01_00/rels/m427Dll/symbols.txt +++ b/config/GMPE01_00/rels/m427Dll/symbols.txt @@ -370,13 +370,14 @@ lbl_1_data_203 = .data:0x00000203; // type:object size:0x10 data:string lbl_1_data_213 = .data:0x00000213; // type:object size:0x26 data:string lbl_1_data_239 = .data:0x00000239; // type:object size:0x25 lbl_1_data_260 = .data:0x00000260; // type:object size:0x15C -lbl_1_data_3BC = .data:0x000003BC; // type:object size:0x178 +lbl_1_data_3BC = .data:0x000003BC; // type:object size:0x15C +lbl_1_data_518 = .data:0x00000518; // type:object size:0x1C lbl_1_data_534 = .data:0x00000534; // type:object size:0x18 lbl_1_data_54C = .data:0x0000054C; // type:object size:0x18 data:float lbl_1_data_564 = .data:0x00000564; // type:object size:0xC data:float lbl_1_data_570 = .data:0x00000570; // type:object size:0xC data:float lbl_1_data_57C = .data:0x0000057C; // type:object size:0x4 -lbl_1_data_580 = .data:0x00000580; // type:object size:0xE data:string +lbl_1_data_580 = .data:0x00000580; // type:object size:0xE scope:local data:string lbl_1_data_590 = .data:0x00000590; // type:object size:0x1C lbl_1_data_5AC = .data:0x000005AC; // type:object size:0x1C lbl_1_data_5C8 = .data:0x000005C8; // type:object size:0x8 diff --git a/configure.py b/configure.py index b8bbca9e..ccea1eaa 100644 --- a/configure.py +++ b/configure.py @@ -1081,7 +1081,7 @@ config.libs = [ objects={ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m427Dll/main.c"), Object(NonMatching, "REL/m427Dll/map.c"), - Object(NonMatching, "REL/m427Dll/player.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m427Dll/player.c"), }, ), Rel( diff --git a/include/REL/m427Dll.h b/include/REL/m427Dll.h index fe879974..d47b25bf 100644 --- a/include/REL/m427Dll.h +++ b/include/REL/m427Dll.h @@ -1,8 +1,16 @@ #include "dolphin.h" #include "game/object.h" -void fn_1_32F4(Process*); +s32 fn_1_1788(void); +void fn_1_1798(s32 arg0, float arg8); +s32 fn_1_1884(void); +s32 fn_1_32EC(void); + +void fn_1_32F4(Process* arg0); +void fn_1_3B20(s8 arg0, s16 arg1); void fn_1_3A88(void); +void fn_1_91E0(s16 arg0, float arg8, float arg9, float argA, float argB); +float fn_1_AE78(s16 arg0, float arg8, float arg9); void fn_1_E98C(Process*); void fn_1_EC54(void); void fn_1_110E8(s32, s32*); diff --git a/src/REL/m427Dll/player.c b/src/REL/m427Dll/player.c new file mode 100644 index 00000000..228f59f2 --- /dev/null +++ b/src/REL/m427Dll/player.c @@ -0,0 +1,2367 @@ +#include "REL/m427Dll.h" + +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/gx/GXVert.h" +#include "ext_math.h" +#include "game/audio.h" +#include "game/chrman.h" +#include "game/gamework.h" +#include "game/gamework_data.h" +#include "game/hsfdraw.h" +#include "game/hsfformat.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/minigame_seq.h" +#include "game/object.h" +#include "game/objsub.h" +#include "game/pad.h" +#include "game/wipe.h" +#include "string.h" + +#ifndef __MWERKS__ +#include "game/frand.h" +#endif + +typedef struct M427DllPlayerWork2 { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ s32 unk_18; + /* 0x1C */ s32 unk_1C; + /* 0x20 */ s32 unk_20; + /* 0x24 */ s32 unk_24; + /* 0x28 */ s32 unk_28; + /* 0x2C */ s32 unk_2C; + /* 0x30 */ s32 unk_30; + /* 0x34 */ s32 unk_34; + /* 0x38 */ s32 unk_38; + /* 0x3C */ s32 unk_3C; + /* 0x40 */ s32 unk_40; + /* 0x44 */ s32 unk_44; + /* 0x48 */ s32 unk_48; + /* 0x4C */ s32 unk_4C; + /* 0x50 */ s32 unk_50; + /* 0x54 */ s32 unk_54; + /* 0x58 */ s32 unk_58; + /* 0x5C */ s32 unk_5C; + /* 0x60 */ s32 unk_60; + /* 0x64 */ s32 unk_64; + /* 0x68 */ float unk_68; + /* 0x6C */ float unk_6C; + /* 0x70 */ float unk_70; +} M427DllPlayerWork2; /* size = 0x74 */ + +typedef struct M427DllPlayerWork { + /* 0x00 */ omObjData *unk_00[2]; + /* 0x08 */ M427DllPlayerWork2 *unk_08[2]; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ s32 unk_18; + /* 0x1C */ s32 unk_1C; + /* 0x20 */ s32 unk_20; + /* 0x24 */ s32 unk_24; + /* 0x28 */ float unk_28; + /* 0x2C */ float unk_2C; + /* 0x30 */ s32 unk_30[5]; + /* 0x34 */ char unk44[8]; + /* 0x4C */ float unk_4C; + /* 0x50 */ float unk_50; + /* 0x54 */ float unk_54; + /* 0x58 */ float unk_58; + /* 0x5C */ float unk_5C; + /* 0x60 */ s32 unk_60; + /* 0x64 */ float unk_64; + /* 0x68 */ s32 unk_68; + /* 0x6C */ char unk6C[4]; +} M427DllPlayerWork; /* size = 0x70 */ + +typedef struct M427DllBss57CStruct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ s32 unk_0C; + /* 0x10 */ s32 unk_10; + /* 0x14 */ s32 unk_14; + /* 0x18 */ s32 unk_18; + /* 0x1C */ Vec unk_1C; + /* 0x28 */ Vec unk_28; + /* 0x34 */ float unk_34; + /* 0x38 */ char unk38[4]; +} M427DllBss57CStruct; /* size = 0x3C */ + +typedef struct M427DllBss590Struct { + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ s32 unk_08; + /* 0x0C */ float unk_0C; + /* 0x10 */ float unk_10; + /* 0x14 */ Vec unk_14; + /* 0x20 */ float unk_20; + /* 0x24 */ float unk_24; + /* 0x28 */ float unk_28; + /* 0x2C */ Vec unk_2C; + /* 0x38 */ float unk_38; + /* 0x3C */ float unk_3C; + /* 0x40 */ float unk_40; + /* 0x44 */ Vec unk_44; + /* 0x50 */ float unk_50; + /* 0x54 */ float unk_54; + /* 0x58 */ float unk_58; + /* 0x5C */ float unk_5C; + /* 0x60 */ float unk_60; + /* 0x64 */ float unk_64; + /* 0x68 */ float unk_68; + /* 0x6C */ float unk_6C; + /* 0x70 */ float unk_70; + /* 0x74 */ float unk_74; + /* 0x78 */ Vec *unk_78; + /* 0x7C */ Vec *unk_7C; + /* 0x80 */ Vec *unk_80; +} M427DllBss590Struct; /* size = 0x84 */ + +void fn_1_10830(omObjData *object); +void fn_1_1143C(omObjData *object); +void fn_1_115B4(omObjData *object); +void fn_1_119C0(omObjData *object); +void fn_1_11A74(omObjData *object); +void fn_1_11ED8(omObjData *object); +void fn_1_12514(omObjData *object); +void fn_1_12518(omObjData *object); +void fn_1_12580(omObjData *object); +void fn_1_12B08(void); +void fn_1_13F24(void); +void fn_1_13FB8(void); +s32 fn_1_155E0(float arg8, float arg9, float argA, float *arg0); +float fn_1_15714(float arg8, float arg9); +void fn_1_158D8(float arg8, float arg9, Vec *arg0); +s32 fn_1_15AF0(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4); +void fn_1_1607C(s32 arg0); +s32 fn_1_160D4(s32 arg0, Vec *arg1, float arg8); +s32 fn_1_16260(s32 arg0, Vec *arg2, Vec *arg3, Vec *arg4, float arg8); +float fn_1_16594(float arg8, float arg9); +void fn_1_16E3C(Vec *arg0, Vec *arg1, Vec *arg2, s32 arg3); +void fn_1_17048(Vec *arg0, float *arg1, Vec *arg2, Vec *arg3); +void fn_1_1723C(Mtx arg0, Vec *arg1); +void fn_1_172F0(s32 arg0, float arg8); +s32 fn_1_17430(s32 arg0, s32 arg1, s32 arg2); +void fn_1_EC74(omObjData *object); +void fn_1_EC94(omObjData *object); +void fn_1_F0E0(omObjData *object); + +Vec lbl_1_data_260[0x1D] = { + { -900.0f, 0.0f, 2000.0f }, + { -900.0f, 0.0f, 0.0f }, + { -900.0f, 0.0f, -2000.0f }, + { -900.0f, 0.0f, -4000.0f }, + { -1300.0f, 0.0f, -4500.0f }, + { -1600.0f, 0.0f, -5000.0f }, + { -1800.0f, 0.0f, -5500.0f }, + { -1900.0f, 0.0f, -6000.0f }, + { -1800.0f, 0.0f, -6500.0f }, + { -1600.0f, -100.0f, -7000.0f }, + { -1300.0f, -200.0f, -7500.0f }, + { -900.0f, -300.0f, -8000.0f }, + { -900.0f, -300.0f, -8500.0f }, + { -500.0f, -300.0f, -9000.0f }, + { -500.0f, -300.0f, -10000.0f }, + { -500.0f, -300.0f, -11000.0f }, + { -900.0f, -300.0f, -11500.0f }, + { -900.0f, -300.0f, -12000.0f }, + { -500.0f, -300.0f, -12500.0f }, + { -200.0f, -300.0f, -13000.0f }, + { -0.0f, -300.0f, -13500.0f }, + { 100.0f, -300.0f, -14000.0f }, + { 0.0f, -300.0f, -14500.0f }, + { -200.0f, -400.0f, -15000.0f }, + { -500.0f, -500.0f, -15500.0f }, + { -900.0f, -600.0f, -16000.0f }, + { -900.0f, -600.0f, -18000.0f }, + { -900.0f, -600.0f, -20000.0f }, + { -900.0f, -600.0f, -22000.0f }, +}; +Vec lbl_1_data_3BC[29] = { + { 900.0f, 0.0f, 2000.0f }, + { 900.0f, 0.0f, -0.0f }, + { 900.0f, 0.0f, -2000.0f }, + { 900.0f, 0.0f, -4000.0f }, + { 500.0f, 0.0f, -4500.0f }, + { 200.0f, 0.0f, -5000.0f }, + { 0.0f, 0.0f, -5500.0f }, + { -100.0f, 0.0f, -6000.0f }, + { 0.0f, 0.0f, -6500.0f }, + { 200.0f, -100.0f, -7000.0f }, + { 500.0f, -200.0f, -7500.0f }, + { 900.0f, -300.0f, -8000.0f }, + { 900.0f, -300.0f, -8500.0f }, + { 500.0f, -300.0f, -9000.0f }, + { 500.0f, -300.0f, -10000.0f }, + { 500.0f, -300.0f, -11000.0f }, + { 900.0f, -300.0f, -11500.0f }, + { 900.0f, -300.0f, -12000.0f }, + { 1300.0f, -300.0f, -12500.0f }, + { 1600.0f, -300.0f, -13000.0f }, + { 1800.0f, -300.0f, -13500.0f }, + { 1900.0f, -300.0f, -14000.0f }, + { 1800.0f, -300.0f, -14500.0f }, + { 1600.0f, -400.0f, -15000.0f }, + { 1300.0f, -500.0f, -15500.0f }, + { 900.0f, -600.0f, -16000.0f }, + { 900.0f, -600.0f, -18000.0f }, + { 900.0f, -600.0f, -20000.0f }, + { 900.0f, -600.0f, -22000.0f }, +}; +s32 lbl_1_data_518[7] = { 0, 1, 2, 3, 4, 5, 6 }; +Vec lbl_1_data_534[2] = { { 0.0f, -25.0f, 50.0f }, { 0.0f, -25.0f, -50.0f } }; +Vec lbl_1_data_54C[2] = { { 0.0f, 0.0f, 1900.0f }, { 0.0f, 20.0f, 20.0f } }; +Vec lbl_1_data_564 = { 0.0f, 240.00002f, 360.0f }; +Vec lbl_1_data_570 = { 0.0f, 1.0f, 1.5f }; +GXColor lbl_1_data_57C = { 0xFF, 0xFF, 0xFF, 0xFF }; + +Process *lbl_1_bss_594; +M427DllBss590Struct *lbl_1_bss_590; +Vec *lbl_1_bss_58C; +Vec *lbl_1_bss_588; +Vec *lbl_1_bss_584; +s32 lbl_1_bss_580; +M427DllBss57CStruct *lbl_1_bss_57C; +M427DllPlayerWork *lbl_1_bss_578; +M427DllPlayerWork2 *lbl_1_bss_574; +omObjData *lbl_1_bss_56C[2]; +char lbl_1_bss_55C[0x10]; +Vec *lbl_1_bss_558; +Vec *lbl_1_bss_554; +Vec *lbl_1_bss_550; + +void fn_1_E98C(Process *sp8) +{ + s32 sp10; + omObjData *object; + s32 var_r30; + s32 var_r29; + s32 var_r28; + s32 var_r27; + s32 var_r26; + + s8 spE[2] = { 0xFF, 0xFF }; + s8 spC[2] = { 0xFF, 0xFF }; + sp10 = 0; + OSReport("Init Player \n"); + lbl_1_bss_594 = sp8; + object = omAddObjEx(lbl_1_bss_594, 0x42, 0, 0, -1, fn_1_EC74); + omMakeGroupEx(lbl_1_bss_594, 0, 4); + omGetGroupMemberListEx(lbl_1_bss_594, 0); + for (var_r30 = 0, var_r28 = 0, var_r27 = 0, var_r29 = 0; var_r30 < 4; var_r30++) { + var_r26 = GWPlayerCfg[var_r30].group; + switch (var_r26) { + case 0: + if (var_r28 >= 2) { + var_r29 = 1; + } + else { + spE[var_r28] = var_r30; + var_r28++; + } + break; + case 1: + if (var_r27 >= 2) { + var_r29 = 1; + } + else { + spC[var_r27] = var_r30; + var_r27++; + } + break; + default: + var_r29 = 1; + break; + } + if (var_r29 != 0) { + break; + } + } + lbl_1_bss_578 = HuMemDirectMallocNum(HEAP_SYSTEM, 2 * sizeof(M427DllPlayerWork), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_578, 0, 0xE0); + lbl_1_bss_574 = HuMemDirectMallocNum(HEAP_SYSTEM, 4 * sizeof(M427DllPlayerWork2), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_574, 0, 0x1D0); + memset(lbl_1_bss_56C, 0, 8); + memset(lbl_1_bss_55C, 0, 0x10); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + object = lbl_1_bss_56C[var_r30] = omAddObjEx(lbl_1_bss_594, 0x41, 0xE, 0, -1, fn_1_EC94); + object->work[0] = var_r30; + if (var_r29 != 0) { + object->work[1] = var_r30 * 2; + object->work[2] = (var_r30 * 2) + 1; + } + else if (var_r30 == 0) { + object->work[1] = spE[0]; + object->work[2] = spE[1]; + } + else { + object->work[1] = spC[0]; + object->work[2] = spC[1]; + } + } + fn_1_12B08(); +} + +s32 lbl_1_data_590[7] = { 0x3A001C, 0x3A001D, 0x3A001E, 0x3A001F, 0x3A0020, 0x3A0026, 0x3A0027 }; +s32 lbl_1_data_5AC[7] = { 0x3A0021, 0x3A0022, 0x3A0023, 0x3A0024, 0x3A0025, 0x3A0026, 0x3A0027 }; +s32 lbl_1_data_5C8[2] = { 1, 3 }; +s32 lbl_1_data_5D0[2] = { 2, 4 }; + +void fn_1_EC54(void) +{ + fn_1_13FB8(); +} + +void fn_1_EC74(omObjData *object) +{ + fn_1_13F24(); +} + +void fn_1_EC94(omObjData *object) +{ + M427DllPlayerWork *work; + s32 var_r29; + s32 var_r28; + s32 var_r27; + + work = &lbl_1_bss_578[object->work[0]]; + object->data = work; + work->unk_10 = object->work[0]; + work->unk_14 = 0; + work->unk_18 = 0; + work->unk_1C = 0; + work->unk_20 = 0; + work->unk_24 = 0; + work->unk_28 = 0.0f; + work->unk_2C = 0.0f; + work->unk_4C = 0.0f; + work->unk_50 = 0.0f; + work->unk_54 = 0.0f; + work->unk_58 = 0.0f; + work->unk_5C = 0.0f; + work->unk_60 = 0; + work->unk_64 = 180.0f; + work->unk_68 = 0; + object->trans.x = lbl_1_data_54C->x; + object->trans.y = lbl_1_data_54C->y; + object->trans.z = lbl_1_data_54C->z; + for (var_r29 = 0; var_r29 < 7; var_r29++) { + if (work->unk_10 == 0) { + object->model[var_r29] = Hu3DModelCreateFile(lbl_1_data_590[var_r29]); + } + else { + object->model[var_r29] = Hu3DModelCreateFile(lbl_1_data_5AC[var_r29]); + } + Hu3DModelLayerSet(object->model[var_r29], 2); + if (work->unk_10 == 0) { + Hu3DModelCameraSet(object->model[var_r29], 1); + } + else { + Hu3DModelCameraSet(object->model[var_r29], 2); + } + if (var_r29 < 5) { + Hu3DMotionSpeedSet(object->model[var_r29], 2.0f); + } + } + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(object->model[0], 2.0f); + Hu3DModelLayerSet(object->model[5], 5); + Hu3DModelAttrSet(object->model[5], HU3D_MOTATTR_LOOP); + for (var_r29 = 0; var_r29 < 5; var_r29++) { + if (var_r29 == 0) { + var_r28 = object->model[var_r29]; + var_r27 = Hu3DLLightCreateV(var_r28, &lbl_1_data_564, &lbl_1_data_570, &lbl_1_data_57C); + work->unk_30[var_r29] = var_r27; + Hu3DLLightStaticSet(var_r28, var_r27, 1); + Hu3DLLightPointSet(var_r28, var_r27, 80.0f, 0.95f, 3); + Hu3DLLightColorSet(var_r28, var_r27, 0xFF, 0xF0, 0xDC, 0xFF); + Hu3DLLightPosSet( + var_r28, var_r27, lbl_1_data_564.x, lbl_1_data_564.y, lbl_1_data_564.z, lbl_1_data_570.x, lbl_1_data_570.y, lbl_1_data_570.z); + } + else { + var_r28 = object->model[var_r29]; + work->unk_30[var_r29] = fn_1_17430(object->model[0], work->unk_30[0], var_r28); + } + fn_1_172F0(var_r28, 0.1f); + } + for (var_r29 = 0; var_r29 < 2; var_r29++) { + work->unk_00[var_r29] = omAddObjEx(lbl_1_bss_594, 0x40, 2, 4, -1, fn_1_11A74); + work->unk_00[var_r29]->work[0] = object->work[var_r29 + 1]; + work->unk_00[var_r29]->work[1] = work->unk_10; + work->unk_00[var_r29]->work[2] = var_r29; + } + object->func = fn_1_F0E0; +} + +void fn_1_F0E0(omObjData *object) +{ + Mtx sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + float var_f29; + M427DllPlayerWork *work; + s32 var_r29; + s32 var_r28; + + work = object->data; + if ((work->unk_00[0] == NULL) || (work->unk_08[0] == NULL)) { + return; + } + sp2C.x = object->trans.x; + sp2C.y = object->trans.y; + sp2C.z = object->trans.z; + switch (work->unk_1C) { + case 0: + object->rot.y = work->unk_64 = 180.0f; + for (var_r29 = 0; var_r29 < 2; var_r29++) { + if ((work->unk_08[var_r29]->unk_30 != 0) && (Hu3DMotionEndCheck(object->model[lbl_1_data_5C8[var_r29]]) != 0)) { + fn_1_3B20(var_r29 * 2, work->unk_10); + Hu3DMotionTimeSet(object->model[lbl_1_data_5C8[var_r29]], 0.0f); + if (work->unk_10 == 0) { + HuAudFXPlay(0x655); + } + else { + HuAudFXPlay(0x656); + } + } + if ((work->unk_08[var_r29]->unk_34 != 0) && (Hu3DMotionEndCheck(object->model[lbl_1_data_5D0[var_r29]]) != 0)) { + fn_1_3B20((var_r29 * 2) + 1, work->unk_10); + Hu3DMotionTimeSet(object->model[lbl_1_data_5D0[var_r29]], 0.0f); + if (work->unk_10 == 0) { + HuAudFXPlay(0x655); + } + else { + HuAudFXPlay(0x656); + } + } + } + if (sp2C.z != object->trans.z) { + work->unk_60 = 2; + } + else { + work->unk_60 = 0; + } + if (fn_1_1788() == 3) { + work->unk_1C = 1; + } + break; + case 1: + if (sp2C.z != object->trans.z) { + work->unk_60 = 2; + } + else { + work->unk_60 = 0; + } + if (fn_1_1788() == 4) { + work->unk_1C = 2; + } + break; + case 2: + for (var_r29 = 0; var_r29 < 2; var_r29++) { + if (work->unk_08[var_r29]->unk_30 != 0) { + work->unk_58 += 0.1f; + if (Hu3DMotionEndCheck(object->model[lbl_1_data_5C8[var_r29]]) != 0) { + fn_1_3B20(var_r29 * 2, work->unk_10); + Hu3DMotionTimeSet(object->model[lbl_1_data_5C8[var_r29]], 0.0f); + if (work->unk_10 == 0) { + HuAudFXPlay(0x655); + } + else { + HuAudFXPlay(0x656); + } + } + } + if (work->unk_08[var_r29]->unk_34 != 0) { + work->unk_5C += 0.1f; + if (Hu3DMotionEndCheck(object->model[lbl_1_data_5D0[var_r29]]) != 0) { + fn_1_3B20((var_r29 * 2) + 1, work->unk_10); + Hu3DMotionTimeSet(object->model[lbl_1_data_5D0[var_r29]], 0.0f); + if (work->unk_10 == 0) { + HuAudFXPlay(0x655); + } + else { + HuAudFXPlay(0x656); + } + } + } + } + fn_1_158D8(object->trans.x, object->trans.z, &sp8); + work->unk_4C += 0.15f * sp8.x; + work->unk_54 += 0.15f * sp8.z; + work->unk_58 *= 0.995f; + work->unk_5C *= 0.995f; + work->unk_4C *= 0.99f; + work->unk_54 *= 0.99f; + work->unk_60 = work->unk_58 + work->unk_5C; + if (work->unk_60 < -5.0f) { + work->unk_60 = -5; + } + else if (work->unk_60 > 5.0f) { + work->unk_60 = 5; + } + var_f30 = 0.25f * (work->unk_58 - work->unk_5C); + if (var_f30 > 20.0f) { + var_f30 = 20.0f; + } + else if (var_f30 < -20.0f) { + var_f30 = -20.0f; + } + work->unk_64 += var_f30; + if (work->unk_64 > 360.0f) { + work->unk_64 -= 360.0f; + } + else if (work->unk_64 < 0.0f) { + work->unk_64 += 360.0f; + } + if (work->unk_64 > 270.0f) { + work->unk_64 = 270.0f; + } + else if (work->unk_64 < 90.0f) { + work->unk_64 = 90.0f; + } + object->rot.y = work->unk_64; + var_f31 = work->unk_60; + object->trans.x = object->trans.x + (2.0 * (var_f31 * sind(work->unk_64))); + object->trans.z = object->trans.z + (2.0 * (var_f31 * cosd(work->unk_64))); + object->trans.x += work->unk_4C; + object->trans.z += work->unk_54; + if (work->unk_68 > 0) { + work->unk_68--; + } + for (var_r29 = 0, var_r28 = 1; (var_r28 == 1) && (var_r29 < 6); var_r29++) { + var_r28 = 0; + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z; + if (fn_1_15AF0(-1, &sp2C, &sp20, &sp14, &sp8) != 0) { + var_r28 = 1; + sp2C = sp20; + object->trans.x = sp14.x; + object->trans.y = sp14.y; + object->trans.z = sp14.z; + if ((work->unk_68 == 0) && (fn_1_1788() <= 4)) { + if (work->unk_10 == 0) { + HuAudFXPlay(0x65C); + } + else { + HuAudFXPlay(0x65D); + } + } + work->unk_68 = 5; + } + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z; + if (fn_1_16260(work->unk_10, &sp2C, &sp20, &sp14, 200.0f) != 0) { + var_r28 = 1; + sp2C = sp20; + object->trans.x = sp14.x; + object->trans.y = sp14.y; + object->trans.z = sp14.z; + } + } + if (work->unk_20 <= 0) { + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z; + if (fn_1_160D4(work->unk_10, &sp20, 200.0f) != 0) { + omVibrate(work->unk_08[0]->unk_00, 0xC, 6, 6); + omVibrate(work->unk_08[1]->unk_00, 0xC, 6, 6); + HuAudCharVoicePlay(work->unk_08[0]->unk_0C, 0x123); + HuAudCharVoicePlay(work->unk_08[1]->unk_0C, 0x123); + work->unk_24 = 0x78; + work->unk_1C = 3; + work->unk_28 = 5.0f; + work->unk_2C = 360.0f * ((frand() & 0x7F) / 127.0f); + work->unk_18 = 0; + } + } + else { + work->unk_20--; + } + fn_1_119C0(object); + if (fn_1_1788() >= 5) { + work->unk_1C = 4; + } + break; + case 3: + work->unk_58 = 0.0f; + work->unk_5C = 0.0f; + work->unk_4C = 0.0f; + work->unk_54 = 0.0f; + work->unk_60 = work->unk_58 + work->unk_5C; + if (work->unk_60 < -5.0f) { + work->unk_60 = -5; + } + else if (work->unk_60 > 5.0f) { + work->unk_60 = 5; + } + var_f31 = work->unk_60 / 5.0f; + var_f31 = 5.0f * (var_f31 * var_f31); + object->trans.x = object->trans.x + (2.0 * (var_f31 * sind(work->unk_64))); + object->trans.z = object->trans.z + (2.0 * (var_f31 * cosd(work->unk_64))); + object->trans.x += work->unk_4C; + object->trans.z += work->unk_54; + for (var_r29 = 0, var_r28 = 1; (var_r28 == 1) && (var_r29 < 6); var_r29++) { + var_r28 = 0; + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z; + if (fn_1_15AF0(-1, &sp2C, &sp20, &sp14, &sp8) != 0) { + var_r28 = 1; + sp2C = sp20; + object->trans.x = sp14.x; + object->trans.y = sp14.y; + object->trans.z = sp14.z; + } + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z; + if (fn_1_16260(work->unk_10, &sp2C, &sp20, &sp14, 200.0f) != 0) { + var_r28 = 1; + sp2C = sp20; + object->trans.x = sp14.x; + object->trans.y = sp14.y; + object->trans.z = sp14.z; + } + } + if ((--work->unk_24 > 0) && ((work->unk_18 & 3) == 0)) { + omVibrate(work->unk_08[0]->unk_00, 0xC, 6, 6); + omVibrate(work->unk_08[1]->unk_00, 0xC, 6, 6); + } + if (work->unk_18 >= 120.0f) { + work->unk_1C = 2; + work->unk_20 = 0xB4; + work->unk_18 = 0; + } + fn_1_119C0(object); + if (fn_1_1788() >= 7) { + work->unk_20 = 0; + work->unk_18 = 0; + work->unk_1C = 4; + object->func = fn_1_10830; + } + break; + case 4: + work->unk_58 *= 0.993f; + work->unk_5C *= 0.993f; + work->unk_4C *= 0.993f; + work->unk_54 *= 0.993f; + work->unk_60 = work->unk_58 + work->unk_5C; + if (work->unk_60 < -5.0f) { + work->unk_60 = -5; + } + else if (work->unk_60 > 5.0f) { + work->unk_60 = 5; + } + var_f31 = work->unk_60 / 5.0f; + var_f31 = 5.0f * (var_f31 * var_f31); + object->trans.x = object->trans.x + (2.0 * (var_f31 * sind(work->unk_64))); + object->trans.z = object->trans.z + (2.0 * (var_f31 * cosd(work->unk_64))); + object->trans.x += work->unk_4C; + object->trans.z += work->unk_54; + for (var_r29 = 0, var_r28 = 1; (var_r28 == 1) && (var_r29 < 6); var_r29++) { + var_r28 = 0; + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z; + if (fn_1_15AF0(-1, &sp2C, &sp20, &sp14, &sp8) != 0) { + var_r28 = 1; + sp2C = sp20; + object->trans.x = sp14.x; + object->trans.y = sp14.y; + object->trans.z = sp14.z; + } + sp20.x = object->trans.x; + sp20.y = object->trans.y; + sp20.z = object->trans.z; + if (fn_1_16260(work->unk_10, &sp2C, &sp20, &sp14, 200.0f) != 0) { + var_r28 = 1; + sp2C = sp20; + object->trans.x = sp14.x; + object->trans.y = sp14.y; + object->trans.z = sp14.z; + } + } + work->unk_20 = 0; + if (fn_1_1788() >= 7) { + work->unk_18 = 0; + work->unk_1C = 4; + object->func = fn_1_10830; + } + break; + case 5: + if (sp2C.z != object->trans.z) { + work->unk_60 = 2; + } + else { + work->unk_60 = 0; + } + break; + case 6: + break; + case 7: + break; + } + var_f31 = work->unk_60 / 5.0f; + Hu3DMotionSpeedSet(object->model[0], 2.0f * var_f31); + if (work->unk_1C == 3) { + work->unk_2C += (frand() & 3) + 2; + object->rot.x = 0.0f; + object->rot.z = 0.0f; + work->unk_28 = 5.0f - (5.0f * (0.008333334f * work->unk_18)); + var_f29 = 7.0 * (work->unk_28 * sind((10.0f * work->unk_18))); + object->rot.x = object->rot.x + (var_f29 * sind(work->unk_2C)); + object->rot.z = object->rot.z + (var_f29 * cosd(work->unk_2C)); + } + if (((work->unk_1C == 3) || (work->unk_20 != 0)) && ((work->unk_18 & 1) != 0)) { + for (var_r29 = 0; var_r29 < 7; var_r29++) { + Hu3DModelAttrSet(object->model[var_r29], HU3D_ATTR_DISPOFF); + } + for (var_r29 = 0; var_r29 < 2; var_r29++) { + if (work->unk_00[var_r29]->model[0] != -1) { + Hu3DModelAttrSet(*work->unk_00[var_r29]->model, HU3D_ATTR_DISPOFF); + } + } + } + else { + for (var_r29 = 0; var_r29 < 7; var_r29++) { + Hu3DModelAttrReset(object->model[var_r29], HU3D_ATTR_DISPOFF); + } + for (var_r29 = 0; var_r29 < 2; var_r29++) { + if (work->unk_00[var_r29]->model[0] != -1) { + Hu3DModelAttrReset(*work->unk_00[var_r29]->model, HU3D_ATTR_DISPOFF); + } + } + } + for (var_r29 = 0; var_r29 < 2; var_r29++) { + work->unk_08[var_r29]->unk_24 = work->unk_1C; + } + object->trans.y = fn_1_AE78(work->unk_10, object->trans.x, object->trans.z); + mtxRot(sp38, object->rot.x, object->rot.y, object->rot.z); + sp38[1][0] *= object->scale.y; + sp38[1][1] *= object->scale.y; + sp38[1][2] *= object->scale.z; + sp20.x = 0.0f; + sp20.y = 0.0f; + sp20.z = 100.0f; + fn_1_1723C(sp38, &sp20); + sp20.x += object->trans.x; + sp20.y += object->trans.y; + sp20.z += object->trans.z; + fn_1_91E0(work->unk_10, sp20.x, sp20.y, sp20.z, 180.0f + object->rot.y); + for (var_r29 = 0; var_r29 < 2; var_r29++) { + sp20 = lbl_1_data_534[var_r29]; + fn_1_1723C(sp38, &sp20); + work->unk_00[var_r29]->trans.x = object->trans.x + sp20.x; + work->unk_00[var_r29]->trans.y = object->trans.y + sp20.y; + work->unk_00[var_r29]->trans.z = object->trans.z + sp20.z; + work->unk_00[var_r29]->rot.x = object->rot.x; + work->unk_00[var_r29]->rot.y = object->rot.y; + work->unk_00[var_r29]->rot.z = object->rot.z; + } + for (var_r29 = 0; var_r29 < 7; var_r29++) { + Hu3DModelPosSet(object->model[var_r29], object->trans.x, object->trans.y, object->trans.z); + Hu3DModelRotSet(object->model[var_r29], object->rot.x, object->rot.y, object->rot.z); + } + fn_1_1143C(object); + if ((fn_1_32EC() == 0) && (object->func != fn_1_10830) && ((work->unk_1C == 2) || (work->unk_1C == 3))) { + fn_1_115B4(object); + } + work->unk_18++; +} + +s32 lbl_1_data_5F8[2] = { 1, 3 }; +s32 lbl_1_data_600[2] = { 2, 4 }; +s32 lbl_1_data_608[4] = { 0x3A002F, 0x3A0037, 0x3A003F, 0x3A0047 }; +s32 lbl_1_data_618[4] = { 15, 10, 6, 5 }; + +void fn_1_10830(omObjData *object) +{ + Mtx sp14; + Vec sp8; + s32 var_r30; + M427DllPlayerWork *work; + s32 var_r28; + s32 var_r27; + + work = object->data; + switch (work->unk_1C) { + case 4: + var_r27 = fn_1_1884(); + if (var_r27 == 3) { + break; + } + if (var_r27 == work->unk_10) { + for (var_r30 = 0; var_r30 < 2; var_r30++) { + Hu3DModelCameraSet(*work->unk_00[var_r30]->model, 1); + Hu3DModelLayerSet(*work->unk_00[var_r30]->model, 3); + fn_1_172F0(work->unk_00[var_r30]->model[0], 5.0f); + } + for (var_r30 = 0; var_r30 < 7; var_r30++) { + Hu3DModelCameraSet(object->model[var_r30], 1); + Hu3DModelLayerSet(object->model[var_r30], 3); + if (var_r30 < 5) { + fn_1_172F0(object->model[var_r30], 5.0f); + } + } + Hu3DModelAttrSet(object->model[5], HU3D_ATTR_DISPOFF); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + work->unk_00[var_r30]->model[1] = Hu3DModelLink(*work->unk_00[var_r30]->model); + Hu3DModelCameraSet(work->unk_00[var_r30]->model[1], 1); + Hu3DModelLayerSet(work->unk_00[var_r30]->model[1], 1); + } + for (var_r30 = 0; var_r30 < 7; var_r30++) { + object->model[var_r30 + 7] = Hu3DModelLink(object->model[var_r30]); + Hu3DModelCameraSet(object->model[var_r30 + 7], 1); + Hu3DModelLayerSet(object->model[var_r30 + 7], 1); + } + object->trans.x = object->trans.y = object->trans.z = 0.0f; + object->rot.x = object->rot.z = 0.0f; + object->rot.y = 180.0f; + work->unk_1C = 5; + break; + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + Hu3DModelAttrSet(work->unk_00[var_r30]->model[0], HU3D_ATTR_DISPOFF); + work->unk_00[var_r30]->func = NULL; + } + for (var_r30 = 0; var_r30 < 7; var_r30++) { + Hu3DModelAttrSet(object->model[var_r30], HU3D_ATTR_DISPOFF); + } + object->func = NULL; + return; + case 5: + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r28 = lbl_1_data_5F8[var_r30]; + if ((work->unk_08[var_r30]->unk_30 != 0) && (Hu3DMotionEndCheck(object->model[var_r28]) != 0)) { + fn_1_3B20(var_r30 * 2, work->unk_10); + Hu3DMotionTimeSet(object->model[var_r28], 0.0f); + if (work->unk_10 == 0) { + HuAudFXPlay(0x655); + } + else { + HuAudFXPlay(0x656); + } + } + var_r28 = lbl_1_data_600[var_r30]; + if ((work->unk_08[var_r30]->unk_34 != 0) && (Hu3DMotionEndCheck(object->model[var_r28]) != 0)) { + fn_1_3B20((var_r30 * 2) + 1, work->unk_10); + Hu3DMotionTimeSet(object->model[var_r28], 0.0f); + if (work->unk_10 == 0) { + HuAudFXPlay(0x655); + } + else { + HuAudFXPlay(0x656); + } + } + } + if (fn_1_1788() >= 0xC) { + work->unk_1C = 6; + } + break; + case 6: + case 7: + break; + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + work->unk_08[var_r30]->unk_24 = work->unk_1C; + } + mtxRot(sp14, object->rot.x, object->rot.y, object->rot.z); + sp14[1][0] *= object->scale.y; + sp14[1][1] *= object->scale.y; + sp14[1][2] *= object->scale.z; + sp8.x = 0.0f; + sp8.y = 0.0f; + sp8.z = 100.0f; + fn_1_1723C(sp14, &sp8); + sp8.x += object->trans.x; + sp8.y += object->trans.y; + sp8.z += object->trans.z; + fn_1_91E0(work->unk_10, sp8.x, sp8.y, sp8.z, 180.0f + object->rot.y); + object->trans.y = fn_1_AE78(work->unk_10, object->trans.x, object->trans.z); + for (var_r30 = 0; var_r30 < 2; var_r30++) { + sp8 = lbl_1_data_534[var_r30]; + fn_1_1723C(sp14, &sp8); + work->unk_00[var_r30]->trans.x = object->trans.x + sp8.x; + work->unk_00[var_r30]->trans.y = object->trans.y + sp8.y; + work->unk_00[var_r30]->trans.z = object->trans.z + sp8.z; + work->unk_00[var_r30]->rot.x = object->rot.x; + work->unk_00[var_r30]->rot.y = object->rot.y; + work->unk_00[var_r30]->rot.z = object->rot.z; + if (work->unk_00[var_r30]->model[1] != -1) { + Hu3DModelPosSet( + work->unk_00[var_r30]->model[1], -work->unk_00[var_r30]->trans.x, work->unk_00[var_r30]->trans.y, work->unk_00[var_r30]->trans.z); + Hu3DModelRotSet( + work->unk_00[var_r30]->model[1], work->unk_00[var_r30]->rot.x, -work->unk_00[var_r30]->rot.y, work->unk_00[var_r30]->rot.z); + } + } + for (var_r30 = 0; var_r30 < 0xE; var_r30++) { + if (object->model[var_r30] != -1) { + if (var_r30 < 7) { + Hu3DModelPosSet(object->model[var_r30], object->trans.x, object->trans.y, object->trans.z); + Hu3DModelRotSet(object->model[var_r30], object->rot.x, object->rot.y, object->rot.z); + } + else { + Hu3DModelPosSet(object->model[var_r30], -object->trans.x, object->trans.y, object->trans.z); + Hu3DModelRotSet(object->model[var_r30], object->rot.x, -object->rot.y, object->rot.z); + } + } + } + work->unk_64 = 200.0f; + fn_1_1143C(object); + work->unk_18++; +} + +void fn_1_10F8C(omObjData *object) +{ + s32 var_r31; + M427DllPlayerWork *work = object->data; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + fn_1_12514(work->unk_00[var_r31]); + } +} + +s32 fn_1_10FE8(s32 arg0, s32 *arg1) +{ + s32 var_r31; + M427DllPlayerWork *var_r30; + omObjData *var_r29; + + var_r29 = lbl_1_bss_56C[arg0]; + var_r30 = &lbl_1_bss_578[arg0]; + if ((var_r29 == NULL) || (var_r30 == NULL)) { + return -1; + } + if ((var_r30->unk_00[0] == NULL) || (var_r30->unk_08[0] == NULL)) { + return -1; + } + for (var_r31 = 0; var_r31 < 7; var_r31++) { + if (var_r31 < 5) { + arg1[var_r31] = var_r29->model[var_r31]; + } + else if (var_r31 < 6) { + arg1[var_r31] = var_r30->unk_00[0]->model[0]; + } + else { + arg1[var_r31] = var_r30->unk_00[1]->model[0]; + } + } + return var_r31; +} + +void fn_1_110E8(s32 arg0, s32 *arg1) +{ + s32 var_r31; + M427DllPlayerWork *var_r30; + omObjData *var_r29; + + var_r29 = lbl_1_bss_56C[arg0]; + var_r30 = &lbl_1_bss_578[arg0]; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + arg1[var_r31] = 0; + } + if ((var_r29 == NULL) || (var_r30 == NULL)) { + return; + } + if ((var_r30->unk_00[0] == NULL) || (var_r30->unk_08[0] == NULL)) { + return; + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + arg1[var_r31] = var_r30->unk_08[var_r31]->unk_0C; + } +} + +void fn_1_111C0(s32 arg0, s32 *arg1) +{ + s32 var_r31; + M427DllPlayerWork *var_r30; + omObjData *var_r29; + + var_r29 = lbl_1_bss_56C[arg0]; + var_r30 = &lbl_1_bss_578[arg0]; + for (var_r31 = 0; var_r31 < 2; var_r31++) { + arg1[var_r31] = 0; + } + if ((var_r29 == NULL) || (var_r30 == NULL)) { + return; + } + if ((var_r30->unk_00[0] == NULL) || (var_r30->unk_08[0] == NULL)) { + return; + } + for (var_r31 = 0; var_r31 < 2; var_r31++) { + arg1[var_r31] = var_r30->unk_08[var_r31]->unk_00; + } +} + +void fn_1_11298(float var_f30) +{ + float var_f31; + omObjData *object; + s32 var_r30; + + if (fn_1_1788() < 4) { + for (var_r30 = 0; var_r30 < 2; var_r30++) { + object = lbl_1_bss_56C[var_r30]; + if (object) { + object->trans.z = 1900.0f + (-1800.0f * var_f30); + } + } + return; + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + object = lbl_1_bss_56C[var_r30]; + if (object) { + object->trans.z = -1800.0f * var_f30; + if (object->trans.z < -1500.0f) { + var_f31 = (object->trans.z - -1500.0f) / 300.0f; + object->rot.y = 180.0f - (30.0f * var_f31); + } + } + } +} + +s32 fn_1_113F0(s32 arg0) +{ + M427DllPlayerWork *work; + omObjData *object; + + object = lbl_1_bss_56C[arg0]; + work = object->data; + if (work->unk_14 == 3) { + return 1; + } + return 0; +} + +void fn_1_1143C(omObjData *object) +{ + Mtx sp20; + Vec sp14; + Vec sp8; + M427DllPlayerWork *work; + s32 var_r29; + + work = object->data; + mtxRot(sp20, 0.0f, work->unk_64, 0.0f); + sp14 = lbl_1_data_564; + fn_1_1723C(sp20, &sp14); + sp14.x += object->trans.x; + sp14.y += object->trans.y; + sp14.z += object->trans.z; + sp8.x = sp8.z = 0.0f; + sp8.y = 1.0f; + Hu3DLLightPosSet(object->model[0], work->unk_30[0], sp14.x, sp14.y, sp14.z, sp8.x, sp8.y, sp8.z); + for (var_r29 = 0; var_r29 < 2; var_r29++) { + if (*work->unk_00[var_r29]->model != -1) { + Hu3DLLightPosSet(work->unk_00[var_r29]->model[0], work->unk_08[var_r29]->unk_14, sp14.x, sp14.y, sp14.z, sp8.x, sp8.y, sp8.z); + } + } +} + +void fn_1_115B4(omObjData *object) +{ + Vec spC; + float sp8; + float var_f31; + float var_f30; + float var_f29; + M427DllBss590Struct *var_r31; + M427DllPlayerWork *work; + s32 var_r28; + + work = object->data; + var_r28 = fn_1_155E0(object->trans.x, object->trans.y, object->trans.z, &sp8); + if ((var_r28 < 0) || (var_r28 >= (lbl_1_bss_580 - 1))) { + return; + } + var_r31 = &lbl_1_bss_590[var_r28]; + spC.x = var_r31->unk_44.x + (sp8 * var_r31->unk_50); + spC.y = 275.0f + (var_r31->unk_44.y + (sp8 * var_r31->unk_54)); + spC.z = var_r31->unk_44.z + (sp8 * var_r31->unk_58); + var_f29 = object->trans.x - spC.x; + spC.x += 0.4f * var_f29; + if (var_f29 < 0.0f) { + var_f30 = fabs(var_r31->unk_5C + (sp8 * (var_r31->unk_64 - var_r31->unk_5C))); + } + else { + var_f30 = fabs(var_r31->unk_60 + (sp8 * (var_r31->unk_68 - var_r31->unk_60))); + } + CenterM[work->unk_10].x = CenterM[work->unk_10].x + (0.06666667f * (spC.x - CenterM[work->unk_10].x)); + CenterM[work->unk_10].y = CenterM[work->unk_10].y + (0.06666667f * (spC.y - CenterM[work->unk_10].y)); + CenterM[work->unk_10].z = CenterM[work->unk_10].z + (0.06666667f * (spC.z - CenterM[work->unk_10].z)); + var_f31 = var_r31->unk_0C; + if (var_f31 < 0.0f) { + var_f31 += 360.0f; + } + var_f31 = 180.0f + (0.25f * (var_f31 - 180.0f)); + if (var_f30 != 0.0f) { + var_f30 = var_f29 / var_f30; + } + var_f31 -= 30.0f * var_f30; + CRotM[work->unk_10].y = fn_1_168FC(0.020000001f, CRotM[work->unk_10].y, 180.0f + var_f31); +} + +void fn_1_119C0(omObjData *object) +{ + float var_f31; + float var_f30; + M427DllBss590Struct *var_r31; + M427DllPlayerWork *work; + M427DllBss590Struct *var_r28; + + work = object->data; + var_r31 = &lbl_1_bss_590[1]; + var_r28 = &lbl_1_bss_590[27]; + var_f31 = var_r28->unk_80->z - var_r31->unk_80->z; + var_f30 = object->trans.z - var_r31->unk_80->z; + fn_1_1798(work->unk_10, var_f30 / var_f31); +} + +void fn_1_11A74(omObjData *object) +{ + M427DllPlayerWork2 *var_r31; + s32 var_r29; + s32 var_r28; + s32 var_r27; + M427DllPlayerWork *var_r26; + + var_r31 = &lbl_1_bss_574[object->work[0]]; + object->data = var_r31; + var_r26 = &lbl_1_bss_578[object->work[1]]; + lbl_1_bss_578[object->work[1]].unk_08[object->work[2]] = var_r31; + var_r31->unk_00 = object->work[0]; + var_r31->unk_04 = object->work[1]; + var_r31->unk_08 = GWPlayerCfg[var_r31->unk_00].pad_idx; + var_r31->unk_0C = GWPlayerCfg[var_r31->unk_00].character; + var_r31->unk_10 = object->work[2]; + var_r31->unk_18 = GWPlayerCfg[var_r31->unk_00].iscom; + var_r31->unk_1C = GWPlayerCfg[var_r31->unk_00].diff; + var_r31->unk_20 = 0; + var_r31->unk_24 = 0; + var_r31->unk_28 = 0; + var_r31->unk_30 = 0; + var_r31->unk_34 = 0; + var_r31->unk_38 = 0; + var_r31->unk_3C = 0; + var_r31->unk_40 = var_r31->unk_44 = 0; + var_r31->unk_48 = var_r31->unk_4C = 0; + var_r31->unk_50 = 0; + var_r31->unk_54 = 0; + var_r31->unk_60 = lbl_1_data_618[var_r31->unk_1C]; + var_r31->unk_58 = frand() % var_r31->unk_60; + var_r31->unk_5C = frand() % 7; + var_r31->unk_64 = -1; + var_r31->unk_68 = var_r31->unk_6C = var_r31->unk_70 = 0.0f; + if (var_r31->unk_18 != 0) { + var_r26->unk_14 |= 1 << var_r31->unk_10; + } + var_r27 = var_r31->unk_0C; + object->model[0] = CharModelCreate(var_r27, 4); + Hu3DModelLayerSet(object->model[0], 2); + if (var_r31->unk_04 == 0) { + Hu3DModelCameraSet(object->model[0], 1); + } + else { + Hu3DModelCameraSet(object->model[0], 2); + } + if (var_r31->unk_10 != 0) { + fn_1_172F0(object->model[0], 0.3f); + } + else { + fn_1_172F0(object->model[0], 0.3f); + } + CharModelStepTypeSet(var_r27, 3); + for (var_r29 = 0; var_r29 < 4; var_r29++) { + object->motion[var_r29] = Hu3DJointMotionFile(object->model[0], var_r31->unk_0C + lbl_1_data_608[var_r29]); + } + var_r31->unk_2C = 0; + CharModelMotionSet(var_r31->unk_0C, object->motion[0]); + CharModelMotionDataClose(var_r27); + var_r28 = Hu3DLLightCreateV(object->model[0], &lbl_1_data_564, &lbl_1_data_570, &lbl_1_data_57C); + var_r31->unk_14 = var_r28; + Hu3DLLightStaticSet(object->model[0], var_r28, 1); + if (var_r31->unk_10 == 0) { + Hu3DLLightPointSet(object->model[0], var_r28, 80.0f, 0.95f, 3); + } + else { + Hu3DLLightPointSet(object->model[0], var_r28, 80.0f, 0.95f, 3); + } + Hu3DLLightColorSet(object->model[0], var_r28, 0xFF, 0xFF, 0xFF, 0xFF); + Hu3DLLightPosSet( + object->model[0], var_r28, lbl_1_data_564.x, lbl_1_data_564.y, lbl_1_data_564.z, lbl_1_data_570.x, lbl_1_data_570.y, lbl_1_data_570.z); + object->func = fn_1_11ED8; + (void)var_r29; +} + +void fn_1_11ED8(omObjData *object) +{ + M427DllPlayerWork2 *var_r31; + s32 var_r29; + M427DllPlayerWork *var_r28; + omObjData *var_r27; + + var_r31 = object->data; + var_r28 = &lbl_1_bss_578[var_r31->unk_04]; + var_r27 = lbl_1_bss_56C[var_r31->unk_04]; + var_r31->unk_40 = HuPadBtn[var_r31->unk_08]; + var_r31->unk_44 = HuPadBtnDown[var_r31->unk_08]; + if ((var_r31->unk_18 != 0) && (var_r31->unk_24 == 2)) { + if (var_r28->unk_14 == 3) { + fn_1_12580(object); + } + else { + fn_1_12518(object); + } + } + var_r31->unk_38 = var_r31->unk_3C = 0; + if (var_r31->unk_30 != 0) { + var_r31->unk_38 = 1; + } + if (var_r31->unk_34 != 0) { + var_r31->unk_3C = 1; + } + var_r31->unk_30 = var_r31->unk_34 = 0; + switch (var_r31->unk_24) { + case 0: + if (((var_r31->unk_20 & 0xF) == 0) && (var_r27->trans.z > 100.0f)) { + var_r31->unk_30 = 1; + var_r31->unk_34 = 1; + } + var_r29 = 1; + if (var_r29 != var_r31->unk_2C) { + var_r31->unk_2C = var_r29; + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_2C], 0.0f, 8.0f, 0x40000001); + } + break; + case 1: + var_r29 = 0; + if ((var_r29 != var_r31->unk_2C) && (CharModelMotionShiftIDGet(var_r31->unk_0C) == -1)) { + var_r31->unk_2C = var_r29; + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_2C], 0.0f, 8.0f, 0x40000001); + var_r31->unk_28 = 0; + } + break; + case 2: + if (fn_1_32EC() == 0) { + if ((var_r31->unk_44 & 0x100) != 0) { + var_r31->unk_30 = 1; + } + if ((var_r31->unk_44 & 0x200) != 0) { + var_r31->unk_34 = 1; + } + } + var_r31->unk_48 = var_r31->unk_40; + var_r31->unk_4C = var_r31->unk_44; + if ((var_r31->unk_30 != 0) || (var_r31->unk_34 != 0)) { + var_r29 = 1; + } + else { + var_r29 = 0; + } + if ((CharModelMotionShiftIDGet(var_r31->unk_0C) == -1) + && ((var_r29 != var_r31->unk_2C) || (CharModelMotionEndCheck(var_r31->unk_0C) == 1))) { + if (var_r31->unk_2C == var_r29) { + CharModelMotionTimeSet(var_r31->unk_0C, 0.0f); + } + else { + var_r31->unk_2C = var_r29; + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_2C], 0.0f, 8.0f, 0); + } + } + break; + case 3: + var_r29 = 2; + if ((var_r29 != var_r31->unk_2C) && (CharModelMotionShiftIDGet(var_r31->unk_0C) == -1)) { + var_r31->unk_2C = var_r29; + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_2C], 0.0f, 8.0f, 0x40000001); + var_r31->unk_28 = 0; + } + if (var_r31->unk_2C == 2) { + if (++var_r31->unk_28 >= 240.0f) { + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); + } + } + break; + case 4: + var_r29 = 0; + if ((var_r29 != var_r31->unk_2C) && (CharModelMotionShiftIDGet(var_r31->unk_0C) == -1)) { + var_r31->unk_2C = var_r29; + if (object->model[1] != -1) { + Hu3DMotionShiftSet(object->model[1], object->motion[var_r31->unk_2C], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); + } + else { + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_2C], 0.0f, 8.0f, 0x40000001); + } + var_r31->unk_28 = 0; + } + break; + case 5: + if (object->trans.z > -1300.0f) { + if ((var_r31->unk_20 & 0xF) == 0) { + var_r31->unk_30 = 1; + var_r31->unk_34 = 1; + } + var_r29 = 1; + } + else { + var_r29 = 0; + } + if (var_r31->unk_2C == 1) { + Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP); + } + if ((CharModelMotionShiftIDGet(var_r31->unk_0C) == -1) && (var_r29 != var_r31->unk_2C)) { + var_r31->unk_2C = var_r29; + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_2C], 0.0f, 8.0f, 0x40000001); + } + break; + case 6: + var_r29 = 3; + if ((var_r29 != var_r31->unk_2C) && (CharModelMotionShiftIDGet(var_r31->unk_0C) == -1)) { + var_r31->unk_2C = var_r29; + CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_2C], 0.0f, 8.0f, 0); + HuAudCharVoicePlay(var_r31->unk_0C, 0x124); + var_r31->unk_28 = 0; + } + break; + case 7: + break; + } + var_r31->unk_20++; +} + +void fn_1_12514(omObjData *object) { } + +void fn_1_12518(omObjData *object) +{ + M427DllPlayerWork *var_r31; + M427DllPlayerWork2 *var_r30; + M427DllPlayerWork2 *var_r29; + + var_r30 = object->data; + var_r31 = &lbl_1_bss_578[var_r30->unk_04]; + if (var_r31->unk_14 == 1) { + var_r29 = var_r31->unk_08[1]; + } + else { + var_r29 = var_r31->unk_08[0]; + } + var_r30->unk_40 = var_r29->unk_48; + var_r30->unk_44 = var_r29->unk_4C; +} + +void fn_1_12580(omObjData *var_r24) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + M427DllPlayerWork2 *var_r31; + M427DllBss590Struct *var_r30; + omObjData *var_r29; + M427DllPlayerWork *var_r28; + s32 var_r27; + s32 var_r26; + s32 var_r25; + + var_r31 = var_r24->data; + var_r28 = &lbl_1_bss_578[var_r31->unk_04]; + var_r29 = lbl_1_bss_56C[var_r31->unk_04]; + var_r31->unk_40 = 0; + var_r31->unk_44 = 0; + var_r26 = fn_1_155E0(var_r29->trans.x, var_r29->trans.y, var_r29->trans.z, NULL); + if ((var_r31->unk_64 != var_r26) || (var_r31->unk_54 > 180.0f)) { + var_r31->unk_64 = var_r26; + switch (var_r31->unk_1C) { + case 0: + var_r27 = 2; + break; + case 1: + var_r27 = 2; + break; + case 2: + var_r27 = 3; + break; + case 3: + var_r27 = 4; + break; + } + if ((var_r31->unk_64 >= 0) && (var_r31->unk_64 < (lbl_1_bss_580 - var_r27)) && (var_r31->unk_64 <= (lbl_1_bss_580 - 2))) { + var_r26 = var_r31->unk_64 + var_r27; + var_r30 = &lbl_1_bss_590[var_r26]; + var_f31 = 0.5f * (var_r30->unk_64 + var_r30->unk_68); + var_f30 = (0.6f - (0.1f * var_r31->unk_1C)) - (0.1f * var_r31->unk_1C * ((frand() & 0x7F) / 127.0f)); + if (var_f30 > 1.0f) { + var_f30 = 1.0f; + } + else if (var_f30 < 0.0f) { + var_f30 = 0.0f; + } + var_f31 *= var_f30; + if ((frand() & 1) != 0) { + var_f31 *= -1.0f; + } + var_r31->unk_68 = var_r30->unk_80->x + var_f31; + var_r31->unk_6C = var_r30->unk_80->y; + var_r31->unk_70 = var_r30->unk_80->z; + } + else { + var_r30 = &lbl_1_bss_590[lbl_1_bss_580 - 1]; + var_r31->unk_68 = var_r30->unk_80->x; + var_r31->unk_6C = var_r30->unk_80->y; + var_r31->unk_70 = var_r30->unk_80->z; + } + var_r31->unk_54 = 0; + } + var_r25 = var_r31->unk_60 + var_r31->unk_5C; + if (var_r28->unk_20 != 0) { + var_r25 = 5; + } + if (++var_r31->unk_58 > var_r25) { + var_r31->unk_58 = 0; + var_r31->unk_5C = frand() % 7; + var_f28 = var_r31->unk_68 - var_r29->trans.x; + var_f27 = var_r31->unk_70 - var_r29->trans.z; + var_f31 = fn_1_16594(atan2d(var_f28, var_f27), var_r28->unk_64); + if (fabs(var_f31) < (30.0f - (5.0f * var_r31->unk_1C))) { + if (var_r31->unk_1C > 2) { + var_f29 = 0.25f * (var_r28->unk_58 - var_r28->unk_5C); + if (var_f29 > 10.0f) { + var_r31->unk_44 |= 0x100; + } + else if (var_f29 < -10.0f) { + var_r31->unk_44 |= 0x200; + } + else { + var_r31->unk_44 |= 0x300; + } + } + else { + var_r31->unk_44 |= 0x300; + } + } + else if (var_f31 < 0.0f) { + var_r31->unk_44 |= 0x200; + } + else { + var_r31->unk_44 |= 0x100; + } + } + var_r31->unk_50++; + var_r31->unk_54++; +} + +void fn_1_12B08(void) +{ + Vec sp20; + float sp1C; + float sp18; + float sp14; + float sp10; + float spC; + float sp8; + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + float var_f26; + float var_f25; + float var_f24; + float var_f23; + float var_f22; + float var_f21; + float var_f20; + float var_f19; + float var_f18; + M427DllBss590Struct *var_r31; + s32 var_r30; + M427DllBss57CStruct *var_r29; + + lbl_1_bss_580 = 0x1D; + lbl_1_bss_584 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_580 * sizeof(Vec), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_584, 0, lbl_1_bss_580 * sizeof(Vec)); + for (var_r30 = 0; var_r30 < lbl_1_bss_580; var_r30++) { + lbl_1_bss_584[var_r30].x = 0.5f * (lbl_1_data_260[var_r30].x + lbl_1_data_3BC[var_r30].x); + lbl_1_bss_584[var_r30].y = 0.5f * (lbl_1_data_260[var_r30].y + lbl_1_data_3BC[var_r30].y); + lbl_1_bss_584[var_r30].z = 0.5f * (lbl_1_data_260[var_r30].z + lbl_1_data_3BC[var_r30].z); + } + lbl_1_bss_58C = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_580 * sizeof(Vec), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_58C, 0, lbl_1_bss_580 * sizeof(Vec)); + for (var_r30 = 0; var_r30 < lbl_1_bss_580; var_r30++) { + VECSubtract(&lbl_1_bss_584[var_r30], &lbl_1_data_260[var_r30], &lbl_1_bss_58C[var_r30]); + VECNormalize(&lbl_1_bss_58C[var_r30], &lbl_1_bss_58C[var_r30]); + VECScale(&lbl_1_bss_58C[var_r30], &lbl_1_bss_58C[var_r30], 200.0f); + VECAdd(&lbl_1_bss_58C[var_r30], &lbl_1_data_260[var_r30], &lbl_1_bss_58C[var_r30]); + } + lbl_1_bss_588 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_580 * sizeof(Vec), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_588, 0, lbl_1_bss_580 * sizeof(Vec)); + for (var_r30 = 0; var_r30 < lbl_1_bss_580; var_r30++) { + VECSubtract(&lbl_1_bss_584[var_r30], &lbl_1_data_3BC[var_r30], &lbl_1_bss_588[var_r30]); + VECNormalize(&lbl_1_bss_588[var_r30], &lbl_1_bss_588[var_r30]); + VECScale(&lbl_1_bss_588[var_r30], &lbl_1_bss_588[var_r30], 200.0f); + VECAdd(&lbl_1_bss_588[var_r30], &lbl_1_data_3BC[var_r30], &lbl_1_bss_588[var_r30]); + } + var_r31 = lbl_1_bss_590 = HuMemDirectMallocNum(HEAP_SYSTEM, lbl_1_bss_580 * sizeof(M427DllBss590Struct), MEMORY_DEFAULT_NUM); + memset(lbl_1_bss_590, 0, lbl_1_bss_580 * sizeof(M427DllBss590Struct)); + for (var_r30 = 0; var_r30 < lbl_1_bss_580; var_r30++, var_r31++) { + var_r31->unk_00 = var_r30; + var_r31->unk_04 = var_r30 + 1; + var_r31->unk_08 = var_r30 - 1; + if (var_r31->unk_04 >= lbl_1_bss_580) { + var_r31->unk_04 = -1; + } + if (var_r31->unk_08 >= lbl_1_bss_580) { + var_r31->unk_08 = -1; + } + var_r31->unk_78 = &lbl_1_bss_58C[var_r30]; + var_r31->unk_7C = &lbl_1_bss_588[var_r30]; + var_r31->unk_80 = &lbl_1_bss_584[var_r30]; + if (var_r31->unk_04 < 0) { + var_r31->unk_0C = 180.0f; + var_r31->unk_70 = 180.0f; + var_r31->unk_74 = 180.0f; + } + else { + var_r31->unk_0C + = atan2d(lbl_1_bss_584[var_r31->unk_04].x - lbl_1_bss_584[var_r30].x, lbl_1_bss_584[var_r31->unk_04].z - lbl_1_bss_584[var_r30].z); + var_r31->unk_70 + = atan2d(lbl_1_bss_58C[var_r31->unk_04].x - lbl_1_bss_58C[var_r30].x, lbl_1_bss_58C[var_r31->unk_04].z - lbl_1_bss_58C[var_r30].z); + var_r31->unk_74 + = atan2d(lbl_1_bss_588[var_r31->unk_04].x - lbl_1_bss_588[var_r30].x, lbl_1_bss_588[var_r31->unk_04].z - lbl_1_bss_588[var_r30].z); + } + if (var_r31->unk_08 < 0) { + var_r31->unk_10 = 0.0f; + } + else { + var_r31->unk_10 + = atan2d(lbl_1_bss_584[var_r31->unk_08].x - lbl_1_bss_584[var_r30].x, lbl_1_bss_584[var_r31->unk_08].z - lbl_1_bss_584[var_r30].z); + } + if (var_r31->unk_04 < 0) { + var_r31->unk_6C = 0.0f; + sp20.x = lbl_1_bss_58C[var_r30].x + lbl_1_bss_590[var_r30 - 1].unk_20; + sp20.y = lbl_1_bss_58C[var_r30].y + lbl_1_bss_590[var_r30 - 1].unk_24; + sp20.z = lbl_1_bss_58C[var_r30].z + lbl_1_bss_590[var_r30 - 1].unk_28; + fn_1_16E3C(&lbl_1_data_260[var_r30], &sp20, &var_r31->unk_14, 0); + sp20.x = lbl_1_bss_588[var_r30].x + lbl_1_bss_590[var_r30 - 1].unk_38; + sp20.y = lbl_1_bss_588[var_r30].y + lbl_1_bss_590[var_r30 - 1].unk_3C; + sp20.z = lbl_1_bss_588[var_r30].z + lbl_1_bss_590[var_r30 - 1].unk_40; + fn_1_16E3C(&lbl_1_data_3BC[var_r30], &sp20, &var_r31->unk_2C, 0); + sp20.x = lbl_1_bss_584[var_r30].x + lbl_1_bss_590[var_r30 - 1].unk_50; + sp20.y = lbl_1_bss_584[var_r30].y + lbl_1_bss_590[var_r30 - 1].unk_54; + sp20.z = lbl_1_bss_584[var_r30].z + lbl_1_bss_590[var_r30 - 1].unk_58; + fn_1_16E3C(&lbl_1_bss_584[var_r30], &sp20, &var_r31->unk_44, 0); + } + else { + sp20.x = lbl_1_bss_584[var_r30 + 1].x - lbl_1_bss_584[var_r30].x; + sp20.y = lbl_1_bss_584[var_r30 + 1].y - lbl_1_bss_584[var_r30].y; + sp20.z = lbl_1_bss_584[var_r30 + 1].z - lbl_1_bss_584[var_r30].z; + var_r31->unk_6C = sqrtf((sp20.z * sp20.z) + ((sp20.x * sp20.x) + (sp20.y * sp20.y))); + fn_1_16E3C(&lbl_1_bss_58C[var_r30], &lbl_1_bss_58C[var_r31->unk_04], &var_r31->unk_14, 0); + fn_1_16E3C(&lbl_1_bss_588[var_r30], &lbl_1_bss_588[var_r31->unk_04], &var_r31->unk_2C, 0); + fn_1_16E3C(&lbl_1_bss_584[var_r30], &lbl_1_bss_584[var_r31->unk_04], &var_r31->unk_44, 0); + } + sp20.x = lbl_1_bss_58C[var_r30].x - lbl_1_bss_584[var_r30].x; + sp20.z = lbl_1_bss_58C[var_r30].z - lbl_1_bss_584[var_r30].z; + sp20.y = 0.0f; + var_r31->unk_5C = sqrtf((sp20.z * sp20.z) + ((sp20.x * sp20.x) + (sp20.y * sp20.y))); + sp20.x = lbl_1_bss_588[var_r30].x - lbl_1_bss_584[var_r30].x; + sp20.z = lbl_1_bss_588[var_r30].z - lbl_1_bss_584[var_r30].z; + sp20.y = 0.0f; + var_r31->unk_60 = sqrtf((sp20.z * sp20.z) + ((sp20.x * sp20.x) + (sp20.y * sp20.y))); + if (var_r31->unk_04 < 0) { + var_r31->unk_64 = var_r31->unk_5C; + var_r31->unk_68 = var_r31->unk_60; + } + else { + sp20.x = lbl_1_bss_58C[var_r31->unk_04].x - lbl_1_bss_584[var_r31->unk_04].x; + sp20.z = lbl_1_bss_58C[var_r31->unk_04].z - lbl_1_bss_584[var_r31->unk_04].z; + sp20.y = 0.0f; + var_r31->unk_64 = sqrtf((sp20.z * sp20.z) + ((sp20.x * sp20.x) + (sp20.y * sp20.y))); + sp20.x = lbl_1_bss_588[var_r31->unk_04].x - lbl_1_bss_584[var_r31->unk_04].x; + sp20.z = lbl_1_bss_588[var_r31->unk_04].z - lbl_1_bss_584[var_r31->unk_04].z; + sp20.y = 0.0f; + var_r31->unk_68 = sqrtf((sp20.z * sp20.z) + ((sp20.x * sp20.x) + (sp20.y * sp20.y))); + } + } + lbl_1_bss_558 = lbl_1_data_260; + lbl_1_bss_554 = lbl_1_data_3BC; + lbl_1_bss_550 = lbl_1_bss_584; + var_r29 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x40 * sizeof(M427DllBss57CStruct), MEMORY_DEFAULT_NUM); + lbl_1_bss_57C = var_r29; + memset(lbl_1_bss_57C, 0, 0x40 * sizeof(M427DllBss57CStruct)); + for (var_r30 = 0; var_r30 < 0x40; var_r30++, var_r29++) { + var_r29->unk_00 = var_r30; + var_r29->unk_04 = -1; + var_r29->unk_08 = -1; + var_r29->unk_0C = 0; + var_r29->unk_10 = 0; + var_r29->unk_14 = var_r29->unk_18 = 0; + } +} + +void fn_1_13F24(void) +{ + M427DllBss57CStruct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_57C, var_r30 = 0; var_r30 < 0x40; var_r30 += 1, var_r31++) { + if ((var_r31->unk_04 >= 0) && (var_r31->unk_08 >= 0) && (var_r31->unk_18 >= 0)) { + if (++var_r31->unk_14 > var_r31->unk_18) { + fn_1_1607C(var_r30); + } + } + } +} + +void fn_1_13FB8(void) { } + +GXColor lbl_1_data_648 = { 0xFF, 0xFF, 0xFF, 0xFF }; +GXColor lbl_1_data_64C = { 0xFF, 0, 0, 0xFF }; +GXColor lbl_1_data_650 = { 0xFF, 0xFF, 0, 0xFF }; + +void fn_1_13FBC(ModelData *model, Mtx matrix) +{ + Mtx sp70; + float var_f31; + float var_f30; + float var_f29; + M427DllBss57CStruct *var_r31; + M427DllBss590Struct *var_r30; + s16 var_r29; + s16 var_r28; + M427DllPlayerWork *var_r27; + M427DllPlayerWork2 *var_r26; + s32 *var_r25; + omObjData *var_r24; + + var_r25 = model->unk_120; + var_r27 = &lbl_1_bss_578[*var_r25]; + var_r24 = lbl_1_bss_56C[*var_r25]; + GXLoadPosMtxImm(matrix, 0); + PSMTXInvXpose(matrix, sp70); + GXLoadNrmMtxImm(sp70, 0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetNumChans(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevOp(GX_TEVSTAGE0, GX_REPLACE); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_RASC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetChanCtrl(GX_COLOR0A0, 1, GX_SRC_VTX, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_SPEC); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + GXSetZCompLoc(GX_FALSE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_ONE, GX_BL_ZERO, GX_LO_NOOP); + GXSetLineWidth(0x10, GX_TO_ZERO); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, lbl_1_data_260, sizeof(Vec)); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &lbl_1_data_648, sizeof(GXColor)); + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0x1D); + for (var_r29 = 0; var_r29 < 0x1DU; var_r29++) { + GXPosition1x16(var_r29); + GXColor1x16(0); + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, &lbl_1_data_3BC, sizeof(Vec)); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &lbl_1_data_648, sizeof(GXColor)); + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0x1D); + for (var_r29 = 0; var_r29 < 0x1DU; var_r29++) { + GXPosition1x16(var_r29); + GXColor1x16(0); + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, lbl_1_bss_584, sizeof(Vec)); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, &lbl_1_data_650, sizeof(GXColor)); + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0x1D); + for (var_r29 = 0; var_r29 < lbl_1_bss_580; var_r29++) { + GXPosition1x16(var_r29); + GXColor1x16(0); + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_CLR0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXBegin(GX_LINES, GX_VTXFMT0, lbl_1_bss_580 * 4); + for (var_r30 = lbl_1_bss_590, var_r29 = 0; var_r29 < lbl_1_bss_580; var_r29++, var_r30++) { + GXPosition3f32(var_r30->unk_78->x, var_r30->unk_78->y, var_r30->unk_78->z); + GXColor4u8(lbl_1_data_64C.r, lbl_1_data_64C.g, lbl_1_data_64C.b, lbl_1_data_64C.a); + GXPosition3f32(var_r30->unk_80->x, var_r30->unk_80->y, var_r30->unk_80->z); + GXColor4u8(lbl_1_data_64C.r, lbl_1_data_64C.g, lbl_1_data_64C.b, lbl_1_data_64C.a); + GXPosition3f32(var_r30->unk_7C->x, var_r30->unk_7C->y, var_r30->unk_7C->z); + GXColor4u8(lbl_1_data_64C.r, lbl_1_data_64C.g, lbl_1_data_64C.b, lbl_1_data_64C.a); + GXPosition3f32(var_r30->unk_80->x, var_r30->unk_80->y, var_r30->unk_80->z); + GXColor4u8(lbl_1_data_64C.r, lbl_1_data_64C.g, lbl_1_data_64C.b, lbl_1_data_64C.a); + } + for (var_r29 = 0, var_r31 = lbl_1_bss_57C; var_r29 < 0x40; var_r29++, var_r31++) { + if ((var_r31->unk_04 >= 0) && (var_r31->unk_08 >= 0) && (var_r31->unk_10 == *var_r25) && (var_r31->unk_04 == 1)) { + switch (var_r31->unk_08) { + case 0: + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 5); + var_f31 = 200.0f + fn_1_15714(var_r31->unk_1C.x, var_r31->unk_1C.z); + GXPosition3f32(var_r31->unk_1C.x, var_f31, var_r31->unk_1C.z); + GXColor4u8(0, 0xFF, 0, 0xFF); + GXPosition3f32(var_r31->unk_28.x, var_f31, var_r31->unk_1C.z); + GXColor4u8(0, 0xFF, 0, 0xFF); + GXPosition3f32(var_r31->unk_28.x, var_f31, var_r31->unk_28.z); + GXColor4u8(0, 0xFF, 0, 0xFF); + GXPosition3f32(var_r31->unk_1C.x, var_f31, var_r31->unk_28.z); + GXColor4u8(0, 0xFF, 0, 0xFF); + GXPosition3f32(var_r31->unk_1C.x, var_f31, var_r31->unk_1C.z); + GXColor4u8(0, 0xFF, 0, 0xFF); + break; + case 1: + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0xA); + var_f31 = 200.0f + fn_1_15714(var_r31->unk_1C.x, var_r31->unk_1C.z); + for (var_r28 = 0; var_r28 < 0xA; var_r28++) { + var_f30 = var_r31->unk_1C.x + (var_r31->unk_34 * sind((40.0f * var_r28))); + var_f29 = var_r31->unk_1C.z + (var_r31->unk_34 * cosd((40.0f * var_r28))); + GXPosition3f32(var_f30, var_f31, var_f29); + GXColor4u8(0, 0xFF, 0, 0xFF); + } + break; + } + } + } + for (var_r29 = 0, var_r31 = lbl_1_bss_57C; var_r29 < 0x40; var_r29++, var_r31++) { + if ((var_r31->unk_04 >= 0) && (var_r31->unk_08 >= 0) && (var_r31->unk_10 == *var_r25) && (var_r31->unk_04 == 0)) { + switch (var_r31->unk_08) { + case 0: + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 5); + var_f31 = 200.0f + fn_1_15714(var_r31->unk_1C.x, var_r31->unk_1C.z); + GXPosition3f32(var_r31->unk_1C.x, var_f31, var_r31->unk_1C.z); + GXColor4u8(0, 0, 0xFF, 0xFF); + GXPosition3f32(var_r31->unk_28.x, var_f31, var_r31->unk_1C.z); + GXColor4u8(0, 0, 0xFF, 0xFF); + GXPosition3f32(var_r31->unk_28.x, var_f31, var_r31->unk_28.z); + GXColor4u8(0, 0, 0xFF, 0xFF); + GXPosition3f32(var_r31->unk_1C.x, var_f31, var_r31->unk_28.z); + GXColor4u8(0, 0, 0xFF, 0xFF); + GXPosition3f32(var_r31->unk_1C.x, var_f31, var_r31->unk_1C.z); + GXColor4u8(0, 0, 0xFF, 0xFF); + break; + case 1: + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0xA); + var_f31 = 200.0f + fn_1_15714(var_r31->unk_1C.x, var_r31->unk_1C.z); + for (var_r28 = 0; var_r28 < 0xA; var_r28++) { + var_f30 = var_r31->unk_1C.x + (var_r31->unk_34 * sind((40.0f * var_r28))); + var_f29 = var_r31->unk_1C.z + (var_r31->unk_34 * cosd((40.0f * var_r28))); + GXPosition3f32(var_f30, var_f31, var_f29); + GXColor4u8(0, 0, 0xFF, 0xFF); + } + break; + } + } + } + if ((var_r24 == NULL) || (var_r27 == NULL)) { + return; + } + if ((var_r27->unk_00[0] == NULL) || (var_r27->unk_08[0] == NULL)) { + return; + } + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 0xA); + var_f31 = 100.0f + var_r24->trans.y; + for (var_r28 = 0; var_r28 < 0xA; var_r28++) { + var_f30 = var_r24->trans.x + (200.0 * sind((40.0f * var_r28))); + var_f30 = var_f30; + var_f29 = var_r24->trans.z + (200.0 * cosd((40.0f * var_r28))); + var_f29 = var_f29; + GXPosition3f32(var_f30, var_f31, var_f29); + GXColor4u8(0xFF, 0, 0xFF, 0xFF); + } + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 4); + var_r26 = var_r27->unk_08[0]; + var_f30 = var_r26->unk_68; + var_f29 = var_r26->unk_70; + var_f31 = 100.0f + fn_1_15714(var_f30, var_f29); + GXPosition3f32(var_f30, var_f31, var_f29); + GXColor4u8(0xFF, 0x80, 0, 0xFF); + GXPosition3f32(100.0f + var_f30, 200.0f + var_f31, var_f29); + GXColor4u8(0xFF, 0x80, 0, 0xFF); + GXPosition3f32(var_f30 - 100.0f, 200.0f + var_f31, var_f29); + GXColor4u8(0xFF, 0x80, 0, 0xFF); + GXPosition3f32(var_f30, var_f31, var_f29); + GXColor4u8(0xFF, 0x80, 0, 0xFF); + GXBegin(GX_LINESTRIP, GX_VTXFMT0, 4); + var_r26 = var_r27->unk_08[1]; + var_f30 = var_r26->unk_68; + var_f29 = var_r26->unk_70; + var_f31 = 100.0f + fn_1_15714(var_f30, var_f29); + GXPosition3f32(var_f30, var_f31, var_f29); + GXColor4u8(0, 0x80, 0xFF, 0xFF); + GXPosition3f32(100.0f + var_f30, 200.0f + var_f31, var_f29); + GXColor4u8(0, 0x80, 0xFF, 0xFF); + GXPosition3f32(var_f30 - 100.0f, 200.0f + var_f31, var_f29); + GXColor4u8(0, 0x80, 0xFF, 0xFF); + GXPosition3f32(var_f30, var_f31, var_f29); + GXColor4u8(0, 0x80, 0xFF, 0xFF); +} + +void fn_1_154B8(void) { } + +s32 fn_1_154BC(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + float var_f27; + s32 var_r31; + s32 var_r30; + + var_r30 = -1; + var_f27 = 1e7f; + for (var_r31 = 0; var_r31 < lbl_1_bss_580; var_r31++) { + var_f31 = lbl_1_bss_590[var_r31].unk_80->x - arg8; + var_f30 = lbl_1_bss_590[var_r31].unk_80->y - arg9; + var_f29 = lbl_1_bss_590[var_r31].unk_80->z - argA; + var_f28 = (var_f29 * var_f29) + ((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f28 < var_f27) { + var_r30 = var_r31; + var_f27 = var_f28; + } + } + return var_r30; +} + +s32 fn_1_155E0(float arg8, float arg9, float argA, float *arg0) +{ + float var_f31; + float var_f30; + double var_f29; + double var_f28; + M427DllBss590Struct *var_r31; + s32 var_r30; + M427DllBss590Struct *var_r29; + + for (var_r30 = 0; var_r30 < (lbl_1_bss_580 - 1); var_r30++) { + var_r31 = &lbl_1_bss_590[var_r30]; + var_r29 = &lbl_1_bss_590[var_r30 + 1]; + if ((argA < var_r31->unk_80->z) && (argA >= var_r29->unk_80->z)) { + var_f31 = var_r29->unk_80->z - var_r31->unk_80->z; + if ((arg0 != NULL) && (var_f31 != 0.0f)) { + *arg0 = fabs((argA - var_r31->unk_80->z) / var_f31); + } + break; + } + } + return var_r30; +} + +float fn_1_15714(float arg8, float arg9) +{ + float sp8; + M427DllBss590Struct *var_r31; + s32 var_r28; + M427DllBss590Struct *var_r26; + + var_r28 = fn_1_155E0(0.0f, 0.0f, arg9, &sp8); + var_r31 = &lbl_1_bss_590[var_r28]; + if ((var_r28 < 0) || (var_r28 >= (lbl_1_bss_580 - 1))) { + return var_r31->unk_80->y; + } + var_r26 = &lbl_1_bss_590[var_r28 + 1]; + return var_r31->unk_80->y + (sp8 * (var_r26->unk_80->y - var_r31->unk_80->y)); +} + +void fn_1_158D8(float arg8, float var_f30, Vec *var_r31) +{ + float sp8; + M427DllBss590Struct *var_r30; + M427DllBss590Struct *var_r29; + s32 var_r26; + + var_r31->x = var_r31->y = var_r31->z = 0.0f; + var_r26 = fn_1_155E0(0.0f, 0.0f, var_f30, &sp8); + var_r30 = &lbl_1_bss_590[var_r26]; + if ((var_r26 < 0) || (var_r26 >= (lbl_1_bss_580 - 1))) { + return; + } + var_r29 = &lbl_1_bss_590[var_r26 + 1]; + if (var_r30->unk_80->y > var_r29->unk_80->y) { + var_r31->x = var_r29->unk_80->x - var_r30->unk_80->x; + var_r31->z = var_r29->unk_80->z - var_r30->unk_80->z; + VECNormalize(var_r31, var_r31); + } +} + +s32 fn_1_15AF0(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) +{ + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + float sp8; + float var_f31; + float var_f29; + M427DllBss590Struct *var_r30; + + *arg3 = *arg2; + arg4->x = arg4->y = arg4->z = 0.0f; + if (arg0 < 0) { + arg0 = fn_1_155E0(0.0f, 0.0f, arg2->z, &sp8); + } + if ((arg0 < 0) || (arg0 >= (lbl_1_bss_580 - 1))) { + return 0; + } + var_r30 = &lbl_1_bss_590[arg0]; + sp3C.x = arg2->x - arg1->x; + sp3C.y = arg2->y - arg1->y; + sp3C.z = arg2->z - arg1->z; + VECNormalize(&sp3C, &sp3C); + spC.x = var_r30->unk_44.x + (sp8 * var_r30->unk_50); + spC.y = var_r30->unk_44.y + (sp8 * var_r30->unk_54); + spC.z = var_r30->unk_44.z + (sp8 * var_r30->unk_58); + var_f29 = fabs(arg2->x - spC.x); + if (arg2->x < spC.x) { + var_f31 = var_r30->unk_5C + (sp8 * (var_r30->unk_64 - var_r30->unk_5C)); + if (var_f29 > var_f31) { + sp30 = *arg2; + fn_1_17048(&var_r30->unk_14, NULL, &sp30, &sp24); + arg3->x = sp24.x; + arg3->y = sp24.y; + arg3->z = sp24.z; + arg4->x = arg3->x - arg2->x; + arg4->y = arg3->y - arg2->y; + arg4->z = arg3->z - arg2->z; + return 1; + } + goto block_18; + } + var_f31 = var_r30->unk_60 + (sp8 * (var_r30->unk_68 - var_r30->unk_60)); + if (var_f29 > var_f31) { + sp30 = *arg2; + fn_1_17048(&var_r30->unk_2C, NULL, &sp30, &sp18); + arg3->x = sp18.x; + arg3->y = sp18.y; + arg3->z = sp18.z; + arg4->x = arg3->x - arg2->x; + arg4->y = arg3->y - arg2->y; + arg4->z = arg3->z - arg2->z; + return 1; + } +block_18: + return 0; +} + +s32 fn_1_15F10(Vec *arg0, Vec *arg1, s32 arg2, s32 arg3, s32 arg4) +{ + M427DllBss57CStruct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_57C, var_r30 = 0; var_r30 < 0x40; var_r30++, var_r31++) { + if ((var_r31->unk_04 < 0) || (var_r31->unk_08 < 0)) { + break; + } + } + if (var_r30 >= 0x40) { + return -1; + } + var_r31->unk_04 = arg2; + var_r31->unk_08 = 0; + var_r31->unk_0C = 0; + var_r31->unk_10 = arg4; + var_r31->unk_18 = arg3; + var_r31->unk_14 = 0; + var_r31->unk_1C = *arg0; + var_r31->unk_28 = *arg1; + return var_r30; +} + +s32 fn_1_15FD0(Vec *arg0, s32 arg1, s32 arg2, s32 arg3, float arg8) +{ + M427DllBss57CStruct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_57C, var_r30 = 0; var_r30 < 0x40; var_r30++, var_r31++) { + if ((var_r31->unk_04 < 0) || (var_r31->unk_08 < 0)) { + break; + } + } + if (var_r30 >= 0x40) { + return -1; + } + var_r31->unk_04 = arg1; + var_r31->unk_08 = 1; + var_r31->unk_0C = 0; + var_r31->unk_10 = arg3; + var_r31->unk_18 = arg2; + var_r31->unk_14 = 0; + var_r31->unk_1C = *arg0; + var_r31->unk_34 = arg8; + return var_r30; +} + +void fn_1_1607C(s32 arg0) +{ + M427DllBss57CStruct *var_r31; + + if ((arg0 < 0) || (arg0 >= 0x40)) { + return; + } + var_r31 = &lbl_1_bss_57C[arg0]; + var_r31->unk_04 = -1; + var_r31->unk_08 = -1; + var_r31->unk_14 = var_r31->unk_18 = 0; +} + +s32 fn_1_160D4(s32 arg0, Vec *arg1, float arg8) +{ + float var_f31; + float var_f30; + float var_f29; + M427DllBss57CStruct *var_r31; + s32 var_r30; + + for (var_r31 = lbl_1_bss_57C, var_r30 = 0; var_r30 < 0x40; var_r30++, var_r31++) { + if ((var_r31->unk_04 >= 0) && (var_r31->unk_08 >= 0) && (var_r31->unk_10 == arg0) && ((var_r31->unk_04 == 1) || (var_r31->unk_04 == 2))) { + switch (var_r31->unk_08) { + case 0: + var_f31 = arg1->x - var_r31->unk_1C.x; + var_f30 = arg1->z - var_r31->unk_1C.z; + if ((arg1->x >= (var_r31->unk_1C.x - arg8)) && (arg1->x <= (var_r31->unk_28.x + arg8)) && (arg1->z >= (var_r31->unk_1C.z - arg8)) + && (arg1->z <= (var_r31->unk_28.z + arg8))) { + return 1; + } + break; + case 1: + var_f31 = arg1->x - var_r31->unk_1C.x; + var_f30 = arg1->z - var_r31->unk_1C.z; + var_f29 = var_r31->unk_34 + arg8; + if (((var_f31 * var_f31) + (var_f30 * var_f30)) < (var_f29 * var_f29)) { + return 1; + } + break; + } + } + } + return 0; +} + +s32 fn_1_16260(s32 arg0, Vec *arg2, Vec *arg3, Vec *arg4, float arg8) +{ + float var_f31; + float var_f30; + float var_f28; + M427DllBss57CStruct *var_r31; + s32 var_r30; + + *arg4 = *arg3; + for (var_r31 = lbl_1_bss_57C, var_r30 = 0; var_r30 < 0x40; var_r30++, var_r31++) { + if ((var_r31->unk_04 >= 0) && (var_r31->unk_08 >= 0) && (var_r31->unk_10 == arg0) && ((var_r31->unk_04 == 0) || (var_r31->unk_04 == 2))) { + switch (var_r31->unk_08) { + case 0: + var_f31 = arg3->x - var_r31->unk_1C.x; + var_f30 = arg3->z - var_r31->unk_1C.z; + if ((arg3->x >= (var_r31->unk_1C.x - arg8)) && (arg3->x <= (var_r31->unk_28.x + arg8)) && (arg3->z >= (var_r31->unk_1C.z - arg8)) + && (arg3->z <= (var_r31->unk_28.z + arg8))) { + return 1; + } + break; + case 1: + var_f31 = arg3->x - var_r31->unk_1C.x; + var_f30 = arg3->z - var_r31->unk_1C.z; + var_f28 = var_r31->unk_34 + arg8; + if (((var_f31 * var_f31) + (var_f30 * var_f30)) < (var_f28 * var_f28)) { + var_f28 = sqrtf((var_f31 * var_f31) + (var_f30 * var_f30)); + if (var_f28 == 0.0f) { + var_f31 = 0.0f; + var_f30 = 1.0f; + } + else { + var_f31 /= var_f28; + var_f30 /= var_f28; + } + var_f28 = var_r31->unk_34 + arg8; + arg4->x = var_r31->unk_1C.x + (var_f31 * var_f28); + arg4->z = var_r31->unk_1C.z + (var_f30 * var_f28); + arg4->y = arg3->y; + return 1; + } + break; + } + } + } + return 0; +} + +float fn_1_16594(float arg8, float arg9) +{ + float var_f31; + + if (arg8 >= 360.0f) { + arg8 -= 360.0f; + } + else if (arg8 < 0.0f) { + arg8 += 360.0f; + } + if (arg9 >= 360.0f) { + arg9 -= 360.0f; + } + else if (arg9 < 0.0f) { + arg9 += 360.0f; + } + var_f31 = arg8 - arg9; + if (var_f31 <= -180.0f) { + var_f31 += 360.0f; + } + else if (var_f31 >= 180.0f) { + var_f31 -= 360.0f; + } + return var_f31; +} + +float fn_1_166AC(float arg8, float arg9, float argA) +{ + float var_f31; + float var_f30; + float var_f26; + + if (arg8 >= 360.0) { + arg8 -= 360.0; + } + else if (arg8 < 0.0) { + arg8 += 360.0; + } + if (arg9 >= 360.0) { + arg9 -= 360.0; + } + else if (arg9 < 0.0) { + arg9 += 360.0; + } + var_f30 = 360.0 + (arg8 - arg9); + if (fabs(var_f30) >= 360.0) { + var_f30 = fmod(var_f30, 360.0); + } + if (var_f30 < 180.0) { + if (var_f30 <= argA) { + var_f31 = var_f30; + } + else { + var_f31 = argA; + } + } + else if ((360.0 - var_f30) <= argA) { + var_f31 = -(360.0 - var_f30); + } + else { + var_f31 = -argA; + } + var_f31 += arg9; + if (var_f31 >= 360.0) { + var_f31 -= 360.0; + } + else if (var_f31 < 0.0) { + var_f31 += 360.0; + } + return var_f31; +} + +float fn_1_168FC(float arg8, float arg9, float argA) +{ + float var_f24; + float var_f23; + + var_f23 = fn_1_16594(argA, arg9); + var_f24 = fabs(var_f23 * arg8); + return fn_1_166AC(argA, arg9, var_f24); +} + +void fn_1_16CF4(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + Vec sp14; + Vec sp8; + + sp14.x = arg1->x - arg0->x; + sp14.y = arg1->y - arg0->y; + sp14.z = arg1->z - arg0->z; + sp8.x = arg2->x - arg0->x; + sp8.y = arg2->y - arg0->y; + sp8.z = arg2->z - arg0->z; + arg3->x = (sp14.y * sp8.z) - (sp14.z * sp8.y); + arg3->y = (sp14.z * sp8.x) - (sp14.x * sp8.z); + arg3->z = (sp14.x * sp8.y) - (sp14.y * sp8.x); + VECNormalize(arg3, arg3); + arg3[1].x = (arg3->z * arg0->z) + ((arg3->x * arg0->x) + (arg3->y * arg0->y)); +} + +void fn_1_16E3C(Vec *arg0, Vec *arg1, Vec *arg2, s32 arg3) +{ + Vec spC; + + spC.x = arg1->x - arg0->x; + spC.y = arg1->y - arg0->y; + spC.z = arg1->z - arg0->z; + if (arg3 != 0) { + VECNormalize(&spC, &spC); + } + arg2->x = arg0->x; + arg2->y = arg0->y; + arg2->z = arg0->z; + arg2[1].x = spC.x; + arg2[1].y = spC.y; + arg2[1].z = spC.z; +} + +void fn_1_16EF8(Vec *arg0, float *arg1, Vec *arg2, Vec *arg3) +{ + float var_f31; + float var_f30; + float var_f29; + + var_f30 = (arg0[1].z * arg0[1].z) + ((arg0[1].x * arg0[1].x) + (arg0[1].y * arg0[1].y)); + var_f29 = (-arg0[0].z * arg0[1].z) + (arg2->z * arg0[1].z) + + ((-arg0[0].x * arg0[1].x) + (arg2->x * arg0[1].x) + ((-arg0[0].y * arg0[1].y) + (arg2->y * arg0[1].y))); + if (var_f30 != 0.0f) { + var_f31 = var_f29 / var_f30; + } + else { + var_f31 = 0.0f; + } + if (arg3 != NULL) { + arg3->x = arg0[0].x + (var_f31 * arg0[1].x); + arg3->y = arg0[0].y + (var_f31 * arg0[1].y); + arg3->z = arg0[0].z + (var_f31 * arg0[1].z); + } + if (arg1 != NULL) { + *arg1 = var_f31; + } +} + +typedef struct Vec3d { + double x; + double y; + double z; +} Vec3d; + +void fn_1_17048(Vec *arg0, float *arg1, Vec *arg2, Vec *arg3) +{ + Vec3d sp38; + Vec3d sp20; + Vec3d sp8; + double var_f31; + double var_f30; + double var_f29; + + sp20.x = 0.0; + sp20.y = 0.0; + sp20.z = 0.0; + sp38.x = arg0[1].x; + sp38.y = arg0[1].y; + sp38.z = arg0[1].z; + sp8.x = arg2->x - arg0->x; + sp8.y = arg2->y - arg0->y; + sp8.z = arg2->z - arg0->z; + + var_f30 = (sp38.z * arg0[1].z) + ((sp38.x * arg0[1].x) + (sp38.y * arg0[1].y)); + var_f29 = (-sp20.z * sp38.z) + (sp8.z * sp38.z) + ((-sp20.x * sp38.x) + (sp8.x * sp38.x) + ((-sp20.y * sp38.y) + (sp8.y * sp38.y))); + if (0.0 != var_f30) { + var_f31 = var_f29 / var_f30; + } + else { + var_f31 = 0.0; + } + if (arg3 != NULL) { + arg3->x = arg0->x + (float)(sp20.x + (var_f31 * sp38.x)); + arg3->y = arg0->y + (float)(sp20.y + (var_f31 * sp38.y)); + arg3->z = arg0->z + (float)(sp20.z + (var_f31 * sp38.z)); + } + if (arg1 != NULL) { + *arg1 = var_f31; + } +} + +void fn_1_17238(void) { } + +void fn_1_1723C(Mtx arg0, Vec *arg1) +{ + Vec sp8; + + sp8.x = (arg0[0][2] * arg1->z) + ((arg0[0][0] * arg1->x) + (arg0[0][1] * arg1->y)); + sp8.y = (arg0[1][2] * arg1->z) + ((arg0[1][0] * arg1->x) + (arg0[1][1] * arg1->y)); + sp8.z = (arg0[2][2] * arg1->z) + ((arg0[2][0] * arg1->x) + (arg0[2][1] * arg1->y)); + *arg1 = sp8; +} + +void fn_1_172F0(s32 arg0, float arg8) +{ + HsfMaterial *var_r31; + s32 var_r30; + HsfData *var_r29; + s32 var_r28; + ModelData *var_r27; + s32 var_r26; + + var_r27 = &Hu3DData[arg0]; + var_r29 = var_r27->hsfData; + var_r31 = var_r29->material; + var_r26 = var_r29->materialCnt; + for (var_r28 = 0; var_r28 < var_r26; var_r28++, var_r31++) { + var_r31->vtxMode = 1; + var_r30 = var_r31->litColor[0] * arg8; + if (var_r30 > 0xFF) { + var_r30 = 0xFF; + } + var_r31->litColor[0] = var_r30; + var_r30 = var_r31->litColor[1] * arg8; + if (var_r30 > 0xFF) { + var_r30 = 0xFF; + } + var_r31->litColor[1] = var_r30; + var_r30 = var_r31->litColor[2] * arg8; + if (var_r30 > 0xFF) { + var_r30 = 0xFF; + } + var_r31->litColor[2] = var_r30; + } +} + +s32 fn_1_17430(s32 arg0, s32 arg1, s32 arg2) +{ + s32 var_r31; + ModelData *var_r30; + ModelData *var_r29; + + var_r29 = &Hu3DData[arg0]; + var_r30 = &Hu3DData[arg2]; + for (var_r31 = 0; var_r31 < 8; var_r31++) { + if (var_r30->unk_38[var_r31] == -1) { + break; + } + } + if (var_r31 == 8) { + return -1; + } + var_r30->unk_38[var_r31] = var_r29->unk_38[arg1]; + var_r30->attr |= 0x1000; + return var_r31; +} From 6484845b183ec8295eb062aab0030e8f905fecb5 Mon Sep 17 00:00:00 2001 From: dbalatoni13 Date: Sun, 2 Feb 2025 18:46:26 +0100 Subject: [PATCH 280/311] m427Dll/player.c cleanup --- src/REL/m427Dll/player.c | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/src/REL/m427Dll/player.c b/src/REL/m427Dll/player.c index 228f59f2..b27e5584 100644 --- a/src/REL/m427Dll/player.c +++ b/src/REL/m427Dll/player.c @@ -100,14 +100,8 @@ typedef struct M427DllBss590Struct { /* 0x08 */ s32 unk_08; /* 0x0C */ float unk_0C; /* 0x10 */ float unk_10; - /* 0x14 */ Vec unk_14; - /* 0x20 */ float unk_20; - /* 0x24 */ float unk_24; - /* 0x28 */ float unk_28; - /* 0x2C */ Vec unk_2C; - /* 0x38 */ float unk_38; - /* 0x3C */ float unk_3C; - /* 0x40 */ float unk_40; + /* 0x14 */ Vec unk_14[2]; + /* 0x2C */ Vec unk_2C[2]; /* 0x44 */ Vec unk_44; /* 0x50 */ float unk_50; /* 0x54 */ float unk_54; @@ -1551,14 +1545,14 @@ void fn_1_12B08(void) } if (var_r31->unk_04 < 0) { var_r31->unk_6C = 0.0f; - sp20.x = lbl_1_bss_58C[var_r30].x + lbl_1_bss_590[var_r30 - 1].unk_20; - sp20.y = lbl_1_bss_58C[var_r30].y + lbl_1_bss_590[var_r30 - 1].unk_24; - sp20.z = lbl_1_bss_58C[var_r30].z + lbl_1_bss_590[var_r30 - 1].unk_28; - fn_1_16E3C(&lbl_1_data_260[var_r30], &sp20, &var_r31->unk_14, 0); - sp20.x = lbl_1_bss_588[var_r30].x + lbl_1_bss_590[var_r30 - 1].unk_38; - sp20.y = lbl_1_bss_588[var_r30].y + lbl_1_bss_590[var_r30 - 1].unk_3C; - sp20.z = lbl_1_bss_588[var_r30].z + lbl_1_bss_590[var_r30 - 1].unk_40; - fn_1_16E3C(&lbl_1_data_3BC[var_r30], &sp20, &var_r31->unk_2C, 0); + sp20.x = lbl_1_bss_58C[var_r30].x + lbl_1_bss_590[var_r30 - 1].unk_14[1].x; + sp20.y = lbl_1_bss_58C[var_r30].y + lbl_1_bss_590[var_r30 - 1].unk_14[1].y; + sp20.z = lbl_1_bss_58C[var_r30].z + lbl_1_bss_590[var_r30 - 1].unk_14[1].z; + fn_1_16E3C(&lbl_1_data_260[var_r30], &sp20, &var_r31->unk_14[0], 0); + sp20.x = lbl_1_bss_588[var_r30].x + lbl_1_bss_590[var_r30 - 1].unk_2C[1].x; + sp20.y = lbl_1_bss_588[var_r30].y + lbl_1_bss_590[var_r30 - 1].unk_2C[1].y; + sp20.z = lbl_1_bss_588[var_r30].z + lbl_1_bss_590[var_r30 - 1].unk_2C[1].z; + fn_1_16E3C(&lbl_1_data_3BC[var_r30], &sp20, &var_r31->unk_2C[0], 0); sp20.x = lbl_1_bss_584[var_r30].x + lbl_1_bss_590[var_r30 - 1].unk_50; sp20.y = lbl_1_bss_584[var_r30].y + lbl_1_bss_590[var_r30 - 1].unk_54; sp20.z = lbl_1_bss_584[var_r30].z + lbl_1_bss_590[var_r30 - 1].unk_58; @@ -1569,8 +1563,8 @@ void fn_1_12B08(void) sp20.y = lbl_1_bss_584[var_r30 + 1].y - lbl_1_bss_584[var_r30].y; sp20.z = lbl_1_bss_584[var_r30 + 1].z - lbl_1_bss_584[var_r30].z; var_r31->unk_6C = sqrtf((sp20.z * sp20.z) + ((sp20.x * sp20.x) + (sp20.y * sp20.y))); - fn_1_16E3C(&lbl_1_bss_58C[var_r30], &lbl_1_bss_58C[var_r31->unk_04], &var_r31->unk_14, 0); - fn_1_16E3C(&lbl_1_bss_588[var_r30], &lbl_1_bss_588[var_r31->unk_04], &var_r31->unk_2C, 0); + fn_1_16E3C(&lbl_1_bss_58C[var_r30], &lbl_1_bss_58C[var_r31->unk_04], &var_r31->unk_14[0], 0); + fn_1_16E3C(&lbl_1_bss_588[var_r30], &lbl_1_bss_588[var_r31->unk_04], &var_r31->unk_2C[0], 0); fn_1_16E3C(&lbl_1_bss_584[var_r30], &lbl_1_bss_584[var_r31->unk_04], &var_r31->unk_44, 0); } sp20.x = lbl_1_bss_58C[var_r30].x - lbl_1_bss_584[var_r30].x; @@ -1946,7 +1940,7 @@ s32 fn_1_15AF0(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) var_f31 = var_r30->unk_5C + (sp8 * (var_r30->unk_64 - var_r30->unk_5C)); if (var_f29 > var_f31) { sp30 = *arg2; - fn_1_17048(&var_r30->unk_14, NULL, &sp30, &sp24); + fn_1_17048(var_r30->unk_14, NULL, &sp30, &sp24); arg3->x = sp24.x; arg3->y = sp24.y; arg3->z = sp24.z; @@ -1960,7 +1954,7 @@ s32 fn_1_15AF0(s32 arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4) var_f31 = var_r30->unk_60 + (sp8 * (var_r30->unk_68 - var_r30->unk_60)); if (var_f29 > var_f31) { sp30 = *arg2; - fn_1_17048(&var_r30->unk_2C, NULL, &sp30, &sp18); + fn_1_17048(var_r30->unk_2C, NULL, &sp30, &sp18); arg3->x = sp18.x; arg3->y = sp18.y; arg3->z = sp18.z; From a144a790f1b32eda6a2a8c28ced32cd2906a0303 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Sun, 2 Feb 2025 20:44:39 -0500 Subject: [PATCH 281/311] map progress --- .vscode/settings.json | 4 +- include/REL/m427Dll.h | 1 + src/REL/m427Dll/map.c | 890 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 894 insertions(+), 1 deletion(-) create mode 100644 src/REL/m427Dll/map.c diff --git a/.vscode/settings.json b/.vscode/settings.json index 3322a6d7..77816237 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -60,7 +60,9 @@ "float.h": "c", "corecrt_math_defines.h": "c", "math_ppc.h": "c", - "errno.h": "c" + "errno.h": "c", + "m427dll.h": "c", + "sprite.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { diff --git a/include/REL/m427Dll.h b/include/REL/m427Dll.h index fe879974..cef5b491 100644 --- a/include/REL/m427Dll.h +++ b/include/REL/m427Dll.h @@ -5,6 +5,7 @@ void fn_1_32F4(Process*); void fn_1_3A88(void); void fn_1_E98C(Process*); void fn_1_EC54(void); +s32 fn_1_10FE8(s16, s32*); void fn_1_110E8(s32, s32*); void fn_1_111C0(s32, s32*); void fn_1_11298(f32); diff --git a/src/REL/m427Dll/map.c b/src/REL/m427Dll/map.c new file mode 100644 index 00000000..acbbb20e --- /dev/null +++ b/src/REL/m427Dll/map.c @@ -0,0 +1,890 @@ +#include "REL/m427Dll.h" + +#include "ext_math.h" +#include "game/animdata.h" +#include "game/hsfdraw.h" +#include "game/hsfman.h" +#include "game/hsfmotion.h" +#include "game/sprite.h" + +#define FABS(value) ((value < 0) ? -(value) : (value)) + +typedef struct M427DllStruct { + s32 unk0; + s32 unk4; +} M427DllStruct; + +typedef struct M427DllStruct2 { + s32 unk0[3]; + s32 unkC; + s32 unk10; + s32 unk14[7]; + s32 unk30[7]; + HsfVector2f unk4C[7]; + f32 unk84; + f32 unk88; + s32 unk8C; + f32 unk90; + f32 unk94; + f32 unk98; + s32 unk9C; + s32 unkA0; +} M427DllStruct2; // sizeof 0xA4 + +typedef struct M427DllStruct3 { + Vec rot; + Vec cen; + f32 zoom; +} M427DllStruct3; + +typedef struct M427DllMapStruct { + char unk_0[0x2]; + s16 unk2; + s16 unk4; + char unk_6[0x2]; + AnimData* unk8; + char unk_C[0x74]; + void* unk80; + char unk_84[0x14]; +} M427DllMapStruct; // sizeof 0x98 + +typedef struct M427DllMapStruct2 { + s8 unk0; + s16 unk2; + s16 unk4; +} M427DllMapStruct2; + +typedef struct M427DllMapSubstruct { + s16 unk0; + Vec unk4; +} M427DllMapSubstruct; // sizeof 0x10 + +typedef struct M427DllMapSubstruct2 { + s16 unk0; + Vec unk4; + s16 unk10; + s16 unk12; + s16 unk14[4]; +} M427DllMapSubstruct2; // sizeof 0x1C + +typedef struct M427DllMapSubstruct4 { + char unk[0x28]; + AnimData* unk28; +} M427DllMapSubstruct4; + +typedef struct M427DllMapSubstruct7 { + s16 unk0; + s32 unk4; + void* unk8; +} M427DllMapSubstruct7; + +typedef struct M427DllMapUNKBA { + s16 unk0; + char unk[0x2E]; +} M427DllMapUNKBA; + +typedef struct M427DllMapUNK180 { + s16 unk0; + s16 unk2; +} M427DllMapUNK180; + +typedef struct M427DllMapSubstruct3 { + s16 unk0; + s16 unk2[11]; + s16 unk18; + s16 unk1A; + s16 unk1C; + s16 unk1E; + s16 unk20; + char unk_22[0x3A]; + s16 unk5C; + char unk_5E[0x1A]; + Vec unk78; + Vec unk84; + f32 unk90; + char unk_94[0x4]; + void* unk98; + M427DllMapSubstruct7* unk9C; + char unk_A0[0xC]; + M427DllMapSubstruct4* unkAC; + char unk_B0[0xA]; + M427DllMapUNKBA unkBA[2][2]; + char unk_17A[0x6]; + M427DllMapUNK180 unk180[2][2]; + char unk_190[0x8]; +} M427DllMapSubstruct3; // sizeof 0x198 + +typedef struct M427DllMapStruct3 { + u8 unk0; + M427DllMapSubstruct3 unk4[2]; + AnimData* unk334; + AnimData* unk338; + char unk_33C[0x10]; + M427DllMapSubstruct2 unk34C[3]; + M427DllMapSubstruct unk3A0[5]; +} M427DllMapStruct3; // sizeof 0x3F0 + +typedef struct M427DllMapSubstruct5 { + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; + Vec unk8; + char unk[0x8]; +} M427DllMapSubstruct5; + +typedef struct M427DllMapStruct4 { + s16 unk0; + Vec* unk4; + Vec2f* unk8; + Vec* unkC; + GXColor* unk10; + s16 unk14; + s16 unk16; + s16 unk18; + M427DllMapSubstruct5* unk1C; + void* unk20; + u32 unk24; + void* unk28; + u32 unk2C; + void* unk30; + u32 unk34; + f32 unk38; + f32 unk3C; + f32 unk40; + f32 unk44; + s16 unk48[1]; + s16 unk4A; +} M427DllMapStruct4; + +typedef struct M427DllMapStruct5 { + f32 unk0; + f32 unk4; + f32 unk8; + f32 unkC; + f32 unk10; +} M427DllMapStruct5; // sizeof 0x14 + +omObjData* lbl_1_bss_548; +M427DllMapStruct3 lbl_1_bss_158; +M427DllMapStruct2 lbl_1_bss_F8[0x10]; +M427DllMapStruct* lbl_1_bss_F0; +s16 lbl_1_bss_EC[2]; +s16 lbl_1_bss_E8[2]; +M427DllMapStruct5* lbl_1_bss_E4; +M427DllMapStruct4 lbl_1_bss_98; +f32 lbl_1_bss_94; + +void fn_1_372C(void); +void fn_1_4218(omObjData*); +void fn_1_44F4(f32, f32, f32, f32, f32); +void fn_1_48EC(ModelData*, Mtx); +void fn_1_4D7C(ModelData*, Mtx); +void fn_1_50A0(ModelData*, Mtx); +void fn_1_510C(s32, s16, s16); +void fn_1_558C(M427DllMapStruct4*); +void fn_1_618C(ModelData*, Mtx); +void fn_1_6760(omObjData*); +void fn_1_C2C8(Vec*, Vec*, Vec*, void*); +void fn_1_D22C(void); +s16 fn_1_D63C(AnimData*, s32, f32, s32, s32); +void fn_1_DB80(s16); +void fn_1_DC64(s16, void (*)(void)); +void fn_1_DC9C(s16, s32); + + +void fn_1_32F4(Process* arg0) { + s16 var_r31; + AnimData* temp_r30; + s32 var_r29; + s32 var_r28; + + lbl_1_bss_158.unk0 = 0; + lbl_1_bss_548 = omAddObjEx(arg0, 0x7F, 0, 0, -1, fn_1_6760); + lbl_1_bss_F0 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10 * sizeof(M427DllMapStruct), 0x10000000); + + for (var_r31 = 0; var_r31 < 0x10; var_r31++) { + lbl_1_bss_F0[var_r31].unk2 = -1; + } + temp_r30 = HuSprAnimRead(HuDataReadNum(0x3A0017, MEMORY_DEFAULT_NUM)); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + lbl_1_bss_EC[var_r31] = fn_1_D63C(temp_r30, 0x200, 80.0f, 0x40, 0x40); + fn_1_DC64(lbl_1_bss_EC[var_r31], &fn_1_D22C); + fn_1_DC9C(lbl_1_bss_EC[var_r31], 1); + Hu3DModelLayerSet(lbl_1_bss_EC[var_r31], 7); + if (var_r31 == 0) { + var_r29 = 1; + } else { + var_r29 = 2; + } + Hu3DModelCameraSet(lbl_1_bss_EC[var_r31], var_r29); + } + temp_r30 = HuSprAnimRead(HuDataReadNum(0x3A001A, MEMORY_DEFAULT_NUM)); + for (var_r31 = 0; var_r31 < 2; var_r31++) { + lbl_1_bss_E8[var_r31] = fn_1_D63C(temp_r30, 4, 120.0f, 0, 0); + fn_1_DC9C(lbl_1_bss_E8[var_r31], 1); + Hu3DModelLayerSet(lbl_1_bss_E8[var_r31], 7); + if (var_r31 == 0) { + var_r28 = 1; + } else { + var_r28 = 2; + } + Hu3DModelCameraSet(lbl_1_bss_E8[var_r31], var_r28); + } + fn_1_372C(); + + for (var_r31 = 0; var_r31 < 0x10; var_r31++) { + lbl_1_bss_F8[var_r31].unk0 = -1; + lbl_1_bss_F8[var_r31].unk2 = Hu3DModelCreateFile(0x3A0012); + Hu3DModelAttrSet(lbl_1_bss_F8[var_r31].unk2, 1); + Hu3DModelScaleSet(lbl_1_bss_F8[var_r31].unk2, 0.75f, 0.75f, 0.75f); + Hu3DModelLayerSet(lbl_1_bss_F8[var_r31].unk2, 4); + Hu3DMotionSpeedSet(lbl_1_bss_F8[var_r31].unk2, 2.0f); + lbl_1_bss_F8[var_r31].unk4 = Hu3DAnimCreate(HuDataReadNum(0x3A001B, MEMORY_DEFAULT_NUM), lbl_1_bss_F8[var_r31].unk2, "db91"); + Hu3DAnimSpeedSet(lbl_1_bss_F8[var_r31].unk4, 2.0f); + } +} + +void fn_1_372C(void) { + M427DllMapSubstruct* var_r29 = &lbl_1_bss_158.unk3A0[0]; + M427DllMapSubstruct2* var_r30 = &lbl_1_bss_158.unk34C[0]; + s16 sp1A[5] = { 0, 0, 1, 1, 0 }; + Vec sp60[5] = { + { -700.0f, -150.0f, -7000.0f }, + { 0.0f, -300.0f, -12000.0f }, + { 800.0f, -350.0f, -12700.0f }, + { 600.0f, -350.0f, -13700.0f }, + { 825.0f, -450.0f, -15000.0f } + }; + s16 sp8[3] = { 1, 1, 0 }; + s16 spE[3][2] = { { 4, 5 }, { 8, -1 }, { 9, -1 } }; + s16 sp24[3][4] = { + { 180, 120, 60, 60 }, + { 90, 180, 60, 60 }, + { 90, 180, 60, 60 } + }; + Vec sp3C[3] = { + -350.0f, -300.0f, -10000.0f, + -700.0f, -600.0f, -17000.0f, + 700.0f, -600.0f, -19000.0f + }; + s16 var_r28; + s16 var_r31; + + for (var_r31 = 0; var_r31 < 5; var_r31++, var_r29++) { + var_r29->unk0 = sp1A[var_r31]; + var_r29->unk4.x = sp60[var_r31].x; + var_r29->unk4.y = sp60[var_r31].y; + var_r29->unk4.z = sp60[var_r31].z; + } + + for (var_r31 = 0; var_r31 < 3; var_r31++, var_r30++) { + var_r30->unk0 = sp8[var_r31]; + var_r30->unk4.x = sp3C[var_r31].x; + var_r30->unk4.y = sp3C[var_r31].y; + var_r30->unk4.z = sp3C[var_r31].z; + var_r30->unk10 = spE[var_r31][0]; + var_r30->unk12 = spE[var_r31][1]; + for (var_r28 = 0; var_r28 < 4; var_r28++) { + var_r30->unk14[var_r28] = sp24[var_r31][var_r28]; + } + } +} + +void fn_1_3A88(void) { + M427DllMapStruct* sp8; + s16 var_r30; + M427DllMapSubstruct3* var_r31; + + sp8 = lbl_1_bss_F0; + HuSprAnimKill(lbl_1_bss_158.unk334); + HuSprAnimKill(lbl_1_bss_158.unk338); + + for (var_r30 = 0, var_r31 = &lbl_1_bss_158.unk4[0]; var_r30 < 2; var_r30++, var_r31++) { + if (var_r31->unk98) { + HuMemDirectFree(var_r31->unk98); + } + } +} + +void fn_1_3B20(s8 arg0, s16 arg1) { + M427DllMapStruct2* var_r31 = &lbl_1_bss_F8[0]; + M427DllMapSubstruct3* temp_r30 = &lbl_1_bss_158.unk4[arg1]; + Vec sp54[4] = { + { 110.0f, -20.0f, 0.0f }, + { -110.0f, -20.0f, 0.0f }, + { 110.0f, -20.0f, 190.0f }, + { -110.0f, -20.0f, 190.0f } + }; + Mtx sp24; + f32 sp14[4] = { 135.0f, 225.0f, 45.0f, 315.0f }; + Point3d sp8; + f32 temp_f31; + s16 var_r29; + s32 var_r27; + + for (var_r29 = 0; var_r29 < 0x10; var_r29++, var_r31++) { + if (var_r31->unk0 == -1) break; + } + if (var_r29 != 0x10) { + var_r31->unk0 = arg0; + temp_f31 = temp_r30->unk90; + PSMTXRotRad(sp24, 0x59, MTXDegToRad(temp_f31)); + PSMTXMultVec(sp24, &sp54[arg0], &sp8); + sp8.x += temp_r30->unk84.x; + sp8.y += temp_r30->unk84.y; + sp8.z += temp_r30->unk84.z; + Hu3DModelAttrReset(var_r31->unk2, 1); + if (arg1 == 0) { + var_r27 = 1; + } else { + var_r27 = 2; + } + Hu3DModelCameraSet(var_r31->unk2, var_r27); + Hu3DModelPosSet(var_r31->unk2, sp8.x, sp8.y, sp8.z); + Hu3DModelRotSet(var_r31->unk2, 0.0f, temp_f31 + sp14[arg0], 0.0f); + Hu3DMotionTimeSet(var_r31->unk2, 0.0f); + if (arg0 < 2) { + Hu3DModelAmbSet(var_r31->unk2, 1.0f, 1.0f, 1.0f); + } else { + Hu3DModelAmbSet(var_r31->unk2, 0.5f, 0.5f, 0.5f); + } + Hu3DAnimBankSet(var_r31->unk4, 0); + } +} + +void fn_1_3DBC(void) { + M427DllMapStruct2* var_r31; + s16 var_r30; + f32 temp_f31; + + var_r31 = &lbl_1_bss_F8[0]; + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if (var_r31->unk0 != -1) { + temp_f31 = Hu3DMotionMaxTimeGet(var_r31->unk2); + if (Hu3DMotionTimeGet(var_r31->unk2) >= temp_f31) { + var_r31->unk0 = -1; + Hu3DModelAttrSet(var_r31->unk2, 1U); + } + } + } +} + +void fn_1_3E58(omObjData* arg0) { + s32 sp8[8]; + M427DllMapStruct* var_r26; + M427DllMapSubstruct3* var_r31; + ModelData* temp_r25; + s16 var_r30; + M427DllMapStruct4* var_r29; + s16 var_r28; + s16 var_r27; + + var_r29 = &lbl_1_bss_98; + for (var_r28 = 0, var_r31 = lbl_1_bss_158.unk4; var_r28 < 2; var_r28++, var_r31++) { + var_r27 = fn_1_10FE8(var_r31->unk0, &sp8[0]); + + for (var_r30 = 0; var_r30 < var_r27; var_r30++) { + temp_r25 = &Hu3DData[sp8[var_r30]]; + temp_r25->unk_38[4] = temp_r25->unk_38[5] = temp_r25->unk_38[6] = temp_r25->unk_38[7] = -1; + } + + for (var_r30 = 0; var_r30 < 2; var_r30++) { + for (var_r27 = 0; var_r27 < 2; var_r27++) { + Hu3DModelKill(var_r31->unk180[var_r30][var_r27].unk0); + } + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + for (var_r27 = 0; var_r27 < 2; var_r27++) { + Hu3DModelKill(var_r31->unkBA[var_r30][var_r27].unk0); + } + } + HuSprAnimKill(var_r31->unkAC->unk28); + Hu3DModelKill(var_r31->unk1A); + Hu3DModelKill(var_r31->unk1C); + HuMemDirectFree(var_r31->unk98); + var_r31->unk98 = NULL; + fn_1_DB80(lbl_1_bss_EC[var_r28]); + fn_1_DB80(lbl_1_bss_E8[var_r28]); + + for (var_r30 = 0; var_r30 < 11; var_r30++) { + Hu3DModelKill(var_r31->unk2[var_r30]); + } + Hu3DModelKill(var_r31->unk1E); + Hu3DModelKill(var_r31->unk20); + } + for (var_r28 = 0, var_r26 = lbl_1_bss_F0; var_r28 < 0x10; var_r28++, var_r26++) { + if (var_r26->unk2 != -1) { + Hu3DModelKill(var_r26->unk4); + HuSprAnimKill(var_r26->unk8); + HuMemDirectFree(var_r26->unk80); + } + } + HuMemDirectFree(lbl_1_bss_F0); + Hu3DFogClear(); + var_r30 = Hu3DModelCreateFile(0x3A0011); + Hu3DModelCameraSet(var_r30, 1); + Hu3DModelLayerSet(var_r30, 1); + Hu3DModelPosSet(var_r30, 0.0f, 0.0f, 0.0f); + var_r29->unk0 = Hu3DModelCreateFile(0x3A0010); + Hu3DModelCameraSet(var_r29->unk0, 1); + Hu3DModelLayerSet(var_r29->unk0, 3); + Hu3DModelPosSet(var_r29->unk0, 0.0f, 0.0f, 0.0f); + lbl_1_bss_158.unk0 = 1; + var_r29->unk48[0] = 0; + var_r29->unk4A = 0; + var_r29->unk4 = 0; + lbl_1_bss_E4 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10 * sizeof(M427DllMapStruct5), MEMORY_DEFAULT_NUM); + for (var_r28 = 0; var_r28 < 0x10; var_r28++) { + lbl_1_bss_E4[var_r28].unk10 = -1.0f; + } + fn_1_510C(0, 0x32, 0x32); + arg0->func = fn_1_4218; +} + +void fn_1_4218(omObjData* arg0) { + f32 var_f31; + f32 temp_f30; + f32 var_f29; + M427DllMapStruct5* var_r31; + s16 var_r30; + M427DllMapStruct4* var_r29; + s32 temp_r28; + + var_r29 = &lbl_1_bss_98; + var_r31 = &lbl_1_bss_E4[0]; + for (var_r30 = 0; var_r30 < 1; var_r30++) { + if (--var_r29->unk48[var_r30] < 0.0f) { + var_r29->unk48[var_r30] = (f32)((((rand8() << 8) | rand8()) % 241) + 0x78); + var_f31 = ((((rand8() << 8) | rand8()) % 4001) - 0x7D0); + temp_f30 = -3000.0f; + var_f29 = ((((rand8() << 8) | rand8()) % 21) + 0xA); + fn_1_44F4(var_f31, 0.0f, temp_f30, var_f29, 0.0f); + } + } + + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if (-1.0f != var_r31->unk10) { + var_r31->unkC += 20.0f; + var_r31->unk10 -= 0.2f; + if (var_r31->unk10 < 0.0f) { + var_r31->unk10 = -1.0f; + } + } + } +} + +void fn_1_44F4(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { + M427DllMapStruct5* var_r31; + s16 var_r30; + + var_r31 = &lbl_1_bss_E4[0]; + + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if (-1.0f == var_r31->unk10) break; + } + if (var_r30 != 0x10) { + var_r31->unk0 = arg0; + var_r31->unk4 = arg1; + var_r31->unk8 = arg2; + var_r31->unkC = arg4; + var_r31->unk10 = arg3; + } +} + +f32 lbl_1_data_F4 = 450.0f; + +f32 fn_1_4570(Vec* arg0) { + f32 temp_f31; + f32 temp_f30; + f32 var_f28; + f32 var_f27; + f32 var_f23; + M427DllMapStruct5* var_r31; + s16 var_r30; + + var_r31 = &lbl_1_bss_E4[0]; + var_f27 = 0.0f; + + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if (-1.0f != var_r31->unk10) { + temp_f31 = arg0->x - var_r31->unk0; + temp_f30 = arg0->z - var_r31->unk8; + if (FABS(temp_f31) > (var_r31->unkC + lbl_1_data_F4)) { + if (FABS(temp_f30) > (var_r31->unkC + lbl_1_data_F4)) { + continue; + } + } + var_f28 = sqrtf((temp_f31 * temp_f31) + (temp_f30 * temp_f30)); + var_f23 = FABS(var_f28 - var_r31->unkC); + var_f28 = 1.0f - (var_f23 / lbl_1_data_F4); + if (var_f28 < 0.0f) { + var_f28 = 0.0f; + } + var_f27 += var_r31->unk10 * sind(90.0f * var_f28); + } + } + return var_f27; +} + +void fn_1_48EC(ModelData* arg0, Mtx arg1) { + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; + Vec spC; + f32 sp8; + f32 temp_f29; + f32 temp_f30; + f32 temp_f31; + + sp3C.x = CenterM->x; + sp3C.y = CenterM->y; + sp3C.z = CenterM->z; + sp30.x = CRotM->x; + sp30.y = CRotM->y; + sp30.z = CRotM->z; + temp_f29 = *CZoomM; + CenterM->x = -CenterM->x; + CenterM->y = -CenterM->y; + CenterM->z = CenterM->z; + CRotM->x = 180.0f + CRotM->x; + CRotM->y = 180.0f + -CRotM->y; + CRotM->z = CRotM->z; + *CZoomM = *CZoomM; + temp_f31 = CRotM->x; + temp_f30 = CRotM->y; + sp8 = CRotM->z; + sp24.x = (CenterM->x + (*CZoomM * (sind(temp_f30) * cosd(temp_f31)))); + sp24.y = (CenterM->y + (*CZoomM * -sind(temp_f31))); + sp24.z = (CenterM->z + (*CZoomM * (cosd(temp_f30) * cosd(temp_f31)))); + spC.x = CenterM->x; + spC.y = CenterM->y; + spC.z = CenterM->z; + sp18.x = (sind(temp_f30) * sind(temp_f31)); + sp18.y = cosd(temp_f31); + sp18.z = (cosd(temp_f30) * sind(temp_f31)); + Hu3DCameraPosSetV(1, &sp24, &sp18, &spC); + CenterM->x = sp3C.x; + CenterM->y = sp3C.y; + CenterM->z = sp3C.z; + CRotM->x = sp30.x; + CRotM->y = sp30.y; + CRotM->z = sp30.z; + *CZoomM = temp_f29; +} + +void fn_1_4D7C(ModelData* arg0, Mtx arg1) { + Vec sp24; + Vec sp18; + Vec spC; + f32 sp8; + f32 temp_f30; + f32 temp_f31; + + temp_f31 = CRotM->x; + temp_f30 = CRotM->y; + sp8 = CRotM->z; + sp24.x = CenterM->x + sind(temp_f30) * cosd(temp_f31) * *CZoomM; + sp24.y = CenterM->y + *CZoomM * -sind(temp_f31); + sp24.z = CenterM->z + cosd(temp_f30) * cosd(temp_f31) * *CZoomM; + sp18.x = CenterM->x; + sp18.y = CenterM->y; + sp18.z = CenterM->z; + spC.x = sind(temp_f30) * sind(temp_f31); + spC.y = cosd(temp_f31); + spC.z = cosd(temp_f30) * sind(temp_f31); + Hu3DCameraPosSetV(1, &sp24, &spC, &sp18); + if (lbl_1_bss_98.unk30) { + GXSetTexCopySrc(0, 0, 0x280, 0x1E0); + GXSetTexCopyDst(0x280, 0x1E0, GX_TF_RGB5A3, 0); + GXCopyTex(lbl_1_bss_98.unk30, 1); + } +} + +void fn_1_50A0(ModelData* arg0, Mtx arg1) { + if (lbl_1_bss_98.unk28) { + GXSetTexCopySrc(0, 0, 0x280, 0x1E0); + GXSetTexCopyDst(0x280, 0x1E0, GX_TF_RGB5A3, 0); + GXCopyTex(lbl_1_bss_98.unk28, 0); + } +} + +void fn_1_510C(s32 arg0, s16 arg1, s16 arg2) { + s16 sp12; + s16 sp10; + s16 spE; + s16 spC; + s16 spA; + s16 sp8; + M427DllMapStruct4* var_r31; + M427DllMapSubstruct5* var_r30; + s16 var_r29; + ModelData* temp_r28; + s16 var_r27; + M427DllMapSubstruct5* var_r26; + M427DllMapSubstruct5* var_r23; + + var_r31 = &lbl_1_bss_98; + var_r29 = Hu3DHookFuncCreate(fn_1_618C); + Hu3DModelCameraSet(var_r29, 1); + Hu3DModelLayerSet(var_r29, 5); + temp_r28 = &Hu3DData[var_r29]; + var_r29 = Hu3DHookFuncCreate(fn_1_48EC); + Hu3DModelCameraSet(var_r29, 1); + Hu3DModelLayerSet(var_r29, 0); + var_r29 = Hu3DHookFuncCreate(fn_1_4D7C); + Hu3DModelCameraSet(var_r29, 1); + Hu3DModelLayerSet(var_r29, 2); + var_r29 = Hu3DHookFuncCreate(fn_1_50A0); + Hu3DModelCameraSet(var_r29, 1); + Hu3DModelLayerSet(var_r29, 4); + var_r31->unk38 = var_r31->unk3C = 0.0f; + var_r31->unk34 = GXGetTexBufferSize(0x280, 0x1E0, 5, 0, 0); + var_r31->unk30 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk34, temp_r28->unk_48); + var_r31->unk2C = GXGetTexBufferSize(0x280, 0x1E0, 5, 0, 0); + var_r31->unk28 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk2C, temp_r28->unk_48); + var_r31->unk16 = arg1 + 1; + var_r31->unk18 = arg2 + 1; + var_r31->unk14 = var_r31->unk16 * var_r31->unk18; + var_r31->unk4 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * sizeof(Vec), temp_r28->unk_48); + var_r31->unk8 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * sizeof(Vec2f), temp_r28->unk_48); + var_r31->unkC = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * sizeof(Vec), temp_r28->unk_48); + var_r31->unk10 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk14 * sizeof(Vec), temp_r28->unk_48); + var_r31->unk1C = HuMemDirectMallocNum(HEAP_DATA, arg2 * (arg1 * sizeof(M427DllMapSubstruct5)), temp_r28->unk_48); + var_r30 = var_r31->unk1C; + var_r23 = var_r26 = HuMemDirectMallocNum(HEAP_DATA, 0x20000, temp_r28->unk_48); + DCFlushRange(var_r26, 0x20000); + GXBeginDisplayList(var_r23, 0x20000); + GXBegin(GX_QUADS, GX_VTXFMT0, (arg1 * arg2 * 4)); + + for (var_r29 = 0; var_r29 < arg2; var_r29++) { + for (var_r27 = 0; var_r27 < arg1; var_r30++, var_r27++) { + var_r30->unk0 = var_r27 + var_r29 * var_r31->unk16; + var_r30->unk2 = (var_r29 * var_r31->unk16) + var_r27 + 1; + var_r30->unk4 = ((var_r29 + 1) * var_r31->unk16) + var_r27 + 1; + var_r30->unk6 = var_r27 + ((var_r29 + 1) * var_r31->unk16); + GXPosition1x16(var_r30->unk0); + GXPosition1x16(var_r30->unk0); + GXPosition1x16(var_r30->unk0); + GXPosition1x16(var_r30->unk2); + GXPosition1x16(var_r30->unk2); + GXPosition1x16(var_r30->unk2); + GXPosition1x16(var_r30->unk4); + GXPosition1x16(var_r30->unk4); + GXPosition1x16(var_r30->unk4); + GXPosition1x16(var_r30->unk6); + GXPosition1x16(var_r30->unk6); + GXPosition1x16(var_r30->unk6); + fn_1_C2C8(&var_r31->unk4[var_r30->unk0], &var_r31->unk4[var_r30->unk2], &var_r31->unk4[var_r30->unk4], &var_r30->unk8); + } + } + var_r31->unk24 = GXEndDisplayList(); + var_r31->unk20 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk24, temp_r28->unk_48); + memcpy(var_r31->unk20, var_r26, var_r31->unk24); + DCFlushRange(var_r31->unk20, var_r31->unk24); + HuMemDirectFree(var_r26); + fn_1_558C(var_r31); +} + +f32 lbl_1_data_F8 = -1.0f; + +void fn_1_558C(M427DllMapStruct4* arg0) { + Mtx spAC; + Mtx sp7C; + Mtx sp4C; + Vec2f sp44; + Vec2f sp3C; + Vec2f sp34; + Vec2f sp2C; + f32 sp28; + f32 sp24; + f32 sp20; + f32 var_f26; + f32 var_f25; + f32 var_f20; + M427DllMapSubstruct5* var_r30; + Vec* var_r29; + Vec* var_r28; + s16 var_r27; + M427DllMapStruct5* var_r26; + Vec2f* var_r25; + s16 var_r24; + CameraData* var_r23; + s16 var_r22; + + var_r23 = &Hu3DCamera[0]; + if (lbl_1_data_F8 == -1.0f) { + lbl_1_bss_94 = 720.0f / arg0->unk16; + lbl_1_data_F8 = 1440.0f / arg0->unk18; + } + if (omPauseChk() == 0) { + arg0->unk40 += 1.0f; + arg0->unk44 += 1.5f; + } + if (arg0->unk40 >= 360.0f) { + arg0->unk40 -= 360.0f; + } + if (arg0->unk44 >= 360.0f) { + arg0->unk44 -= 360.0f; + } + var_r28 = arg0->unk4; + var_r29 = arg0->unkC; + sp3C.x = 2000.0f; + sp3C.y = -2000.0f; + sp44.x = 1000.0f; + sp44.y = -2500.0f; + sp2C.x = sp44.x; + sp2C.y = (sp44.y - sp44.x) / (arg0->unk18 - 1); + var_f25 = arg0->unk44; + + for (var_r27 = 0; var_r27 < arg0->unk18; var_r27++) { + sp34.x = sp3C.x; + sp34.y = (sp3C.y - sp3C.x) / (arg0->unk16 - 1); + var_f26 = arg0->unk40; + + for (var_r24 = 0; var_r24 < arg0->unk16; var_r28++, var_r29++, var_r24++) { + var_r28->x = sp34.x; + var_r28->z = sp2C.x; + sp24 = 5.0 * sind(var_f26) + 10.0 * sind(var_f25); + sp34.x += sp34.y; + var_f26 += lbl_1_bss_94; + if (var_f26 >= 360.0f) { + var_f26 -= 360.0f; + } + var_r28->y = sp24 + fn_1_4570(var_r28); + var_r29->x = var_r29->y = var_r29->z = 0.0f; + } + sp2C.x += sp2C.y; + var_f25 += lbl_1_data_F8; + if (var_f25 >= 360.0f) { + var_f25 -= 360.0f; + } + } + var_r30 = arg0->unk1C; + var_r24 = (arg0->unk16 - 1) * (arg0->unk18 - 1); + + for (var_r27 = 0; var_r27 < var_r24; var_r27++, var_r30++) { + fn_1_C2C8(&arg0->unk4[var_r30->unk0], &arg0->unk4[var_r30->unk2], &arg0->unk4[var_r30->unk4], &var_r30->unk8); + arg0->unkC[var_r30->unk0].x += var_r30->unk8.x; + arg0->unkC[var_r30->unk0].y += var_r30->unk8.y; + arg0->unkC[var_r30->unk0].z += var_r30->unk8.z; + arg0->unkC[var_r30->unk2].x += var_r30->unk8.x; + arg0->unkC[var_r30->unk2].y += var_r30->unk8.y; + arg0->unkC[var_r30->unk2].z += var_r30->unk8.z; + arg0->unkC[var_r30->unk4].x += var_r30->unk8.x; + arg0->unkC[var_r30->unk4].y += var_r30->unk8.y; + arg0->unkC[var_r30->unk4].z += var_r30->unk8.z; + arg0->unkC[var_r30->unk6].x += var_r30->unk8.x; + arg0->unkC[var_r30->unk6].y += var_r30->unk8.y; + arg0->unkC[var_r30->unk6].z += var_r30->unk8.z; + } + + var_r29 = arg0->unkC; + for (var_r27 = 0; var_r27 < arg0->unk14; var_r27++, var_r29++) { + var_f20 = sqrtf((var_r29->x * var_r29->x) + (var_r29->y * var_r29->y) + (var_r29->z * var_r29->z)); + var_r29->x /= var_f20; + var_r29->y /= var_f20; + var_r29->z /= var_f20; + } + var_r28 = arg0->unk4; + var_r25 = arg0->unk8; + C_MTXLookAt(spAC, &var_r23->pos, &var_r23->up, &var_r23->target); + GXGetProjectionv(&sp7C[0][0]); + GXGetViewportv(&sp4C[0][0]); + + for (var_r27 = 0; var_r27 < arg0->unk14; var_r27++, var_r28++, var_r25++) { + GXProject(var_r28->x, var_r28->y, var_r28->z, spAC, &sp7C[0][0], &sp4C[0][0], &sp28, &sp24, &sp20); + var_r25->x = 0.0015625f * sp28; + var_r25->y = 0.0020833f * sp24; + var_r25->x += 0.05f * arg0->unkC[var_r27].x; + var_r25->y += 0.05f * arg0->unkC[var_r27].z; + arg0->unk10[var_r27].r = 0xFF; + arg0->unk10[var_r27].g = 0xFF; + arg0->unk10[var_r27].b = 0xFF; + arg0->unk10[var_r27].a = 0xFF; + } + DCFlushRangeNoSync(arg0->unk4, arg0->unk14 * 0xC); + DCFlushRangeNoSync(arg0->unkC, arg0->unk14 * 0xC); + DCFlushRangeNoSync(arg0->unk8, arg0->unk14 * 8); + DCFlushRangeNoSync(arg0->unk10, arg0->unk14 * 4); + PPCSync(); +} + +void fn_1_618C(ModelData* arg0, Mtx arg1) { + Mtx sp64; + Mtx sp34; + GXTexObj sp14; + GXColor spC; + M427DllMapStruct4* var_r31 = &lbl_1_bss_98; + AnimData** var_r30 = &lbl_1_bss_158.unk334; + + fn_1_558C(var_r31); + GXLoadPosMtxImm(arg1, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, var_r31->unk4, 0xC); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_TEX0, var_r31->unk8, 8); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_TEX_ST, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, var_r31->unk10, 4); + GXInitTexObj(&sp14, var_r31->unk30, 0x280, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0); + GXInitTexObjLOD(&sp14, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1); + GXLoadTexObj(&sp14, GX_TEXMAP0); + GXInitTexObj(&sp14, var_r31->unk28, 0x280, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0); + GXInitTexObjLOD(&sp14, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1); + GXLoadTexObj(&sp14, GX_TEXMAP1); + HuSprTexLoad(*var_r30, 0, 2, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetNumTevStages(3); + spC.r = 0; + spC.g = 0x10; + spC.b = 0x1E; + spC.a = 0x4C; + GXSetTevColor(GX_TEVREG2, spC); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ONE, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVREG0); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVREG0); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_TEXC, GX_CC_C0, GX_CC_A2, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVREG1); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVREG1); + GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD0, GX_TEXMAP1, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE2, GX_CC_C1, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C2); + GXSetTevColorOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE2, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetNumIndStages(1); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP2); + GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, 1, 0, GX_ITM_0); + GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); + PSMTXScale(sp64, -0.1f, 0.0f, 1.0f); + GXSetIndTexMtx(GX_ITM_0, (f32(*)[3])(sp64), 0); + GXSetNumTexGens(2); + if (omPauseChk() == 0) { + var_r31->unk38 += 0.001f; + var_r31->unk3C += 0.0005f; + } + PSMTXRotRad(sp64, 0x58, 1.5707964f); + PSMTXScale(sp34, 0.001f, 0.001f, 0.001f); + PSMTXConcat(sp64, sp34, sp64); + mtxTransCat(sp64, var_r31->unk38, var_r31->unk3C, 0.0f); + GXLoadTexMtxImm(sp64, 0x1E, GX_MTX2x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, 0, 0x7D); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, 0x1E, 0, 0x7D); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetZMode(1, GX_LEQUAL, 1); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(0); + GXSetBlendMode(GX_BM_NONE, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXCallDisplayList(var_r31->unk20, var_r31->unk24); + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); + GXSetTevDirect(GX_TEVSTAGE1); +} From 1b37639dc67ca803871f38125bda72c5b36dde40 Mon Sep 17 00:00:00 2001 From: CreateSource Date: Mon, 3 Feb 2025 18:38:17 -0500 Subject: [PATCH 282/311] fix build error --- include/REL/m427Dll.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/REL/m427Dll.h b/include/REL/m427Dll.h index 1678efc2..c8290376 100644 --- a/include/REL/m427Dll.h +++ b/include/REL/m427Dll.h @@ -13,7 +13,7 @@ void fn_1_91E0(s16 arg0, float arg8, float arg9, float argA, float argB); float fn_1_AE78(s16 arg0, float arg8, float arg9); void fn_1_E98C(Process*); void fn_1_EC54(void); -s32 fn_1_10FE8(s16, s32*); +s32 fn_1_10FE8(s32 arg0, s32 *arg1); void fn_1_110E8(s32, s32*); void fn_1_111C0(s32, s32*); void fn_1_11298(f32); From ea1d89dbde05e647edfd7e01086f7ced154d62ec Mon Sep 17 00:00:00 2001 From: CreateSource Date: Mon, 3 Feb 2025 22:32:48 -0500 Subject: [PATCH 283/311] start naming m463 --- src/REL/m463Dll/main.c | 757 +++++++++++++++++++++-------------------- 1 file changed, 379 insertions(+), 378 deletions(-) diff --git a/src/REL/m463Dll/main.c b/src/REL/m463Dll/main.c index 8304c1b3..a483b214 100755 --- a/src/REL/m463Dll/main.c +++ b/src/REL/m463Dll/main.c @@ -1,3 +1,5 @@ +// Panel Panic 9 Player + #include "game/audio.h" #include "game/chrman.h" #include "game/data.h" @@ -31,20 +33,18 @@ typedef struct { } StructBss35C; // Size 0x10 typedef struct { - /* 0x00 */ s32 unk00; - /* 0x00 */ s32 unk04; - /* 0x08 */ s32 unk08; - /* 0x0C */ s32 unk0C; - /* 0x10 */ s32 unk10; + /* 0x00 */ s32 player; + /* 0x00 */ s32 playerCfg; + /* 0x08 */ s32 character; + /* 0x0C */ s32 padIdx; + /* 0x10 */ s32 diff; /* 0x14 */ s32 unk14; /* 0x18 */ s32 unk18; /* 0x1C */ s32 unk1C; /* 0x20 */ s32 unk20; /* 0x24 */ s32 unk24; /* 0x28 */ float unk28; - /* 0x2C */ float unk2C; - /* 0x30 */ char unk30[4]; - /* 0x34 */ float unk34; + /* 0x2C */ Vec unk2C; /* 0x38 */ s32 unk38; /* 0x3C */ s32 unk3C; /* 0x40 */ s32 unk40; @@ -52,11 +52,10 @@ typedef struct { /* 0x48 */ s32 unk48; /* 0x48 */ s32 unk4C; /* 0x50 */ s32 unk50; - /* 0x54 */ s16 unk54; - /* 0x56 */ char unk56[2]; - /* 0x58 */ s32 unk58; + /* 0x54 */ s16 particle; + /* 0x58 */ s32 particleTimer; /* 0x5C */ s32 unk5C; -} StructBss330Data; // Size 0x60 +} M463PlayerData; // Size 0x60 typedef struct { /* 0x00 */ s32 unk00; @@ -74,12 +73,12 @@ StructBss51C lbl_1_bss_51C[9]; StructBss35C lbl_1_bss_35C[28]; omObjData *lbl_1_bss_358; omObjData *lbl_1_bss_354; -omObjData *lbl_1_bss_330[9]; +omObjData *playerObjs[9]; omObjData *lbl_1_bss_32C; HsfanimStruct00 lbl_1_bss_5C[9]; s32 lbl_1_bss_58; s32 lbl_1_bss_54; -s32 lbl_1_bss_50; +s32 lbl_1_bss_50; //// TODO: setup enum when what this is gets figured out char lbl_1_bss_4C[4]; // unused s32 lbl_1_bss_48; s32 lbl_1_bss_44; @@ -143,9 +142,9 @@ float lbl_1_data_158[] = { -90.0f, 0.0f, 525.0f, 180.0f, 90.0f, 0.0f, 525.0f, 18 void fn_1_A0(void) { if (HuPadBtnDown[0] & PAD_BUTTON_B) { - Center.x = lbl_1_bss_330[0]->trans.x; - Center.y = lbl_1_bss_330[0]->trans.y; - Center.z = lbl_1_bss_330[0]->trans.z; + Center.x = playerObjs[0]->trans.x; + Center.y = playerObjs[0]->trans.y; + Center.z = playerObjs[0]->trans.z; } Center.x += 10.0 * (((HuPadBtn[0] & PAD_BUTTON_RIGHT) != 0) - ((HuPadBtn[0] & PAD_BUTTON_LEFT) != 0)); Center.z -= 10.0 * (((HuPadBtn[0] & PAD_BUTTON_UP) != 0) - ((HuPadBtn[0] & PAD_BUTTON_DOWN) != 0)); @@ -160,10 +159,10 @@ void fn_1_A0(void) s32 lbl_1_data_184 = -1; -void fn_1_4C8(omObjData *arg0) +void fn_1_4C8(omObjData *object) { - ModelData *temp_r24; - ModelData *temp_r29; + ModelData *model; + ModelData *model2; float temp_f31; float temp_f30; float var_f28; @@ -175,18 +174,18 @@ void fn_1_4C8(omObjData *arg0) float var_f22; float var_f21; float var_f20; - StructBss330Data *temp_r31; + M463PlayerData *data; s16 var_r28; s32 temp_r27; s32 var_r26; s32 var_r25; s32 var_r23; s32 var_r22; - StructBss330Data *temp_r21; + M463PlayerData *iPlayerData; s32 var_r20; s32 var_r19; - StructBss330Data *temp_r18; - s32 var_r17; + M463PlayerData *temp_r18; + s32 player; float sp180[2]; s32 spE0; s32 spDC; @@ -195,122 +194,122 @@ void fn_1_4C8(omObjData *arg0) s32 spD0; s32 spCC; s32 spC8; - StructBss330Data *spC4; + M463PlayerData *spC4; s32 spC0; s32 spBC; - StructBss330Data *spB8; + M463PlayerData *spB8; s32 spB4; u32 spB0; float spAC; s32 spA8; s32 spA4; s32 spA0; - StructBss330Data *sp9C; + M463PlayerData *sp9C; ModelData *sp98; float sp94; float sp90; s32 sp8C; s32 sp88; - temp_r31 = arg0->data; + data = object->data; var_f23 = 0.0f; var_f22 = 0.0f; var_f28 = 0.0f; var_r22 = 0; var_r28 = -1; - temp_r31->unk2C = temp_r31->unk34 = 0.0f; - if (lbl_1_bss_50 == 1005 && temp_r31->unk18 == 3 && temp_r31->unk1C >= 360) { - if (temp_r31->unk1C == 360) { - temp_r31->unk14 = rand8() % 15; + data->unk2C.x = data->unk2C.z = 0.0f; + if (lbl_1_bss_50 == 1005 && data->unk18 == 3 && data->unk1C >= 360) { + if (data->unk1C == 360) { + data->unk14 = rand8() % 15; } - if (temp_r31->unk0C != -1) { - var_r22 = (HuPadBtnDown[temp_r31->unk0C] & PAD_BUTTON_A) ? 1 : 0; + if (data->padIdx != -1) { + var_r22 = (HuPadBtnDown[data->padIdx] & PAD_BUTTON_A) ? 1 : 0; } else { - temp_r31->unk14 += (temp_r31->unk14 < 0x10000); - if (temp_r31->unk14 == 30) { + data->unk14 += (data->unk14 < 0x10000); + if (data->unk14 == 30) { var_r22 = 1; } } } - if (temp_r31->unk00 < 4 && lbl_1_bss_50 == 1002) { + if (data->player < 4 && lbl_1_bss_50 == 1002) { var_r26 = 0; var_r25 = 0; - if (temp_r31->unk0C != -1) { - var_r26 = (HuPadStkX[temp_r31->unk0C] < -20) ? -1 : (HuPadStkX[temp_r31->unk0C] > 20) ? 1 : 0; - var_r25 = (-HuPadStkY[temp_r31->unk0C] < -20) ? -1 : (-HuPadStkY[temp_r31->unk0C] > 20) ? 1 : 0; - var_r22 = (HuPadBtnDown[temp_r31->unk0C] & PAD_BUTTON_A) ? 1 : 0; + if (data->padIdx != -1) { + var_r26 = (HuPadStkX[data->padIdx] < -20) ? -1 : (HuPadStkX[data->padIdx] > 20) ? 1 : 0; + var_r25 = (-HuPadStkY[data->padIdx] < -20) ? -1 : (-HuPadStkY[data->padIdx] > 20) ? 1 : 0; + var_r22 = (HuPadBtnDown[data->padIdx] & PAD_BUTTON_A) ? 1 : 0; } else { if (lbl_1_bss_54 == 1) { - temp_r31->unk14 = rand8() % 64 + 30; + data->unk14 = rand8() % 64 + 30; } - temp_r31->unk14 -= (temp_r31->unk14 > 0); - if (temp_r31->unk14 == 1) { - var_r26 = (temp_r31->unk3C > 0 ? -1 : 1) * (rand8() % 2); - var_r25 = (temp_r31->unk40 > 0 ? -1 : 1) * (rand8() % 2); + data->unk14 -= (data->unk14 > 0); + if (data->unk14 == 1) { + var_r26 = (data->unk3C > 0 ? -1 : 1) * (rand8() % 2); + var_r25 = (data->unk40 > 0 ? -1 : 1) * (rand8() % 2); } - if (temp_r31->unk14 == 0) { + if (data->unk14 == 0) { var_r22 = (rand8() % 64 == 1) ? 1 : 0; } } - if (lbl_1_bss_54 >= 50 || temp_r31->unk50 != 0) { + if (lbl_1_bss_54 >= 50 || data->unk50 != 0) { var_r26 = var_r25 = 0; } - for (var_r17 = 0; var_r17 < 4; var_r17++) { - temp_r21 = lbl_1_bss_330[var_r17]->data; + for (player = 0; player < 4; player++) { + iPlayerData = playerObjs[player]->data; spD0 = 0; spCC = 0; - if (var_r17 != temp_r31->unk00) { - if (fabs(500.0 * temp_r31->unk3C - arg0->trans.x) < 10.0) { - spE0 = spDC = (arg0->trans.x < -250.0) ? -1 : (arg0->trans.x > 250.0) ? 1 : 0; + if (player != data->player) { + if (fabs(500.0 * data->unk3C - object->trans.x) < 10.0) { + spE0 = spDC = (object->trans.x < -250.0) ? -1 : (object->trans.x > 250.0) ? 1 : 0; } else { - spE0 = (arg0->trans.x < 0.0f) ? -1 : 0; + spE0 = (object->trans.x < 0.0f) ? -1 : 0; spDC = spE0 + 1; } - if (fabs(500.0 * temp_r31->unk40 - arg0->trans.z) < 10.0) { - spD8 = spD4 = (arg0->trans.z < -250.0) ? -1 : (arg0->trans.z > 250.0) ? 1 : 0; + if (fabs(500.0 * data->unk40 - object->trans.z) < 10.0) { + spD8 = spD4 = (object->trans.z < -250.0) ? -1 : (object->trans.z > 250.0) ? 1 : 0; } else { - spD8 = (arg0->trans.z < 0.0f) ? -1 : 0; + spD8 = (object->trans.z < 0.0f) ? -1 : 0; spD4 = spD8 + 1; } for (var_r20 = spE0; var_r20 <= spDC; var_r20++) { for (var_r19 = spD8; var_r19 <= spD4; var_r19++) { - if (temp_r21->unk38 == (1 + var_r20 + var_r26) + (1 + var_r19 + var_r25) * 3) { + if (iPlayerData->unk38 == (1 + var_r20 + var_r26) + (1 + var_r19 + var_r25) * 3) { var_r26 = var_r25 = 0; } - if (temp_r21->unk38 == (1 + var_r20 + var_r26) + (1 + var_r19) * 3) { + if (iPlayerData->unk38 == (1 + var_r20 + var_r26) + (1 + var_r19) * 3) { var_r26 = 0; } - if (temp_r21->unk38 == (1 + var_r20) + (1 + var_r19 + var_r25) * 3) { + if (iPlayerData->unk38 == (1 + var_r20) + (1 + var_r19 + var_r25) * 3) { var_r25 = 0; } } } } } - if (var_r26 * (500.0 * temp_r31->unk3C - arg0->trans.x) < 0.0) { - temp_r31->unk3C += var_r26; + if (var_r26 * (500.0 * data->unk3C - object->trans.x) < 0.0) { + data->unk3C += var_r26; } - if (fabs(500.0 * temp_r31->unk3C - arg0->trans.x) < 10.0 && var_r26 != 0 && temp_r31->unk3C + var_r26 >= -1 - && temp_r31->unk3C + var_r26 <= 1) { - temp_r31->unk3C += var_r26; + if (fabs(500.0 * data->unk3C - object->trans.x) < 10.0 && var_r26 != 0 && data->unk3C + var_r26 >= -1 + && data->unk3C + var_r26 <= 1) { + data->unk3C += var_r26; } - var_f23 = ((500.0 * temp_r31->unk3C - arg0->trans.x) / 0.25) / 1.75; - if (var_r25 * (500.0 * temp_r31->unk40 - arg0->trans.z) < 0.0) { - temp_r31->unk40 += var_r25; + var_f23 = ((500.0 * data->unk3C - object->trans.x) / 0.25) / 1.75; + if (var_r25 * (500.0 * data->unk40 - object->trans.z) < 0.0) { + data->unk40 += var_r25; } - if (fabs(500.0 * temp_r31->unk40 - arg0->trans.z) < 10.0 && var_r25 != 0 && temp_r31->unk40 + var_r25 >= -1 - && temp_r31->unk40 + var_r25 <= 1) { - temp_r31->unk40 += var_r25; + if (fabs(500.0 * data->unk40 - object->trans.z) < 10.0 && var_r25 != 0 && data->unk40 + var_r25 >= -1 + && data->unk40 + var_r25 <= 1) { + data->unk40 += var_r25; } - var_f22 = ((500.0 * temp_r31->unk40 - arg0->trans.z) / -0.25) / 1.75; - temp_r31->unk38 = (temp_r31->unk3C + 1) + (temp_r31->unk40 + 1) * 3; + var_f22 = ((500.0 * data->unk40 - object->trans.z) / -0.25) / 1.75; + data->unk38 = (data->unk3C + 1) + (data->unk40 + 1) * 3; } - if (temp_r31->unk18 == 0) { - if (lbl_1_bss_50 > (temp_r31->unk00 < 4 ? 1001 : 1003) && lbl_1_bss_50 < 1006) { + if (data->unk18 == 0) { + if (lbl_1_bss_50 > (data->player < 4 ? 1001 : 1003) && lbl_1_bss_50 < 1006) { temp_f31 = 0.25 * var_f23; temp_f30 = 0.25 * -var_f22; { @@ -326,19 +325,19 @@ void fn_1_4C8(omObjData *arg0) var_f28 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30); if (var_f28 >= 0.5f) { if (var_f28 < 10.0f) { - temp_r31->unk2C = temp_f31; - temp_r31->unk34 += temp_f30; + data->unk2C.x = temp_f31; + data->unk2C.z += temp_f30; } else { temp_f31 /= var_f28; temp_f30 /= var_f28; var_f28 = 10.0f; - temp_r31->unk2C = temp_f31 * var_f28; - temp_r31->unk34 = temp_f30 * var_f28; + data->unk2C.x = temp_f31 * var_f28; + data->unk2C.z = temp_f30 * var_f28; } - temp_r31->unk28 = var_f28; - arg0->rot.y = atan2d(temp_r31->unk2C, temp_r31->unk34); - if (temp_r31->unk28 >= 8.0f) { + data->unk28 = var_f28; + object->rot.y = atan2d(data->unk2C.x, data->unk2C.z); + if (data->unk28 >= 8.0f) { var_r28 = 2; } else { @@ -351,65 +350,65 @@ void fn_1_4C8(omObjData *arg0) } } } - arg0->trans.x += 1.75f * temp_r31->unk2C; - arg0->trans.z += 1.75f * temp_r31->unk34; + object->trans.x += 1.75f * data->unk2C.x; + object->trans.z += 1.75f * data->unk2C.z; switch (lbl_1_bss_50) { case 1001: case 1003: - if (lbl_1_bss_50 != (temp_r31->unk00 < 4 ? 1001 : 1003)) { + if (lbl_1_bss_50 != (data->player < 4 ? 1001 : 1003)) { break; } if (lbl_1_bss_54 == 0) { - Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); - if (temp_r31->unk00 < 4) { - temp_r31->unk38 = (temp_r31->unk00 == 0) ? 0 : (temp_r31->unk00 == 1) ? 2 : (temp_r31->unk00 == 2) ? 6 : 8; - temp_r31->unk3C = temp_r31->unk38 % 3 - 1; - temp_r31->unk40 = temp_r31->unk38 / 3 - 1; - arg0->trans.x = 500.0 * temp_r31->unk3C; - arg0->trans.z = 500.0 * temp_r31->unk40; + Hu3DModelAttrReset(object->model[0], HU3D_ATTR_DISPOFF); + if (data->player < 4) { + data->unk38 = (data->player == 0) ? 0 : (data->player == 1) ? 2 : (data->player == 2) ? 6 : 8; + data->unk3C = data->unk38 % 3 - 1; + data->unk40 = data->unk38 / 3 - 1; + object->trans.x = 500.0 * data->unk3C; + object->trans.z = 500.0 * data->unk40; } else { do { - temp_r31->unk38 = rand8() % 9; - for (spC8 = 0; spC8 < temp_r31->unk00; spC8++) { - spC4 = lbl_1_bss_330[spC8]->data; - if (temp_r31->unk38 == spC4->unk38) { + data->unk38 = rand8() % 9; + for (spC8 = 0; spC8 < data->player; spC8++) { + spC4 = playerObjs[spC8]->data; + if (data->unk38 == spC4->unk38) { break; } } - } while (spC8 != temp_r31->unk00); - temp_r31->unk3C = temp_r31->unk38 % 3 - 1; - temp_r31->unk40 = temp_r31->unk38 / 3 - 1; - arg0->trans.x = 500.0 * temp_r31->unk3C; - arg0->trans.z = 500.0 * temp_r31->unk40; + } while (spC8 != data->player); + data->unk3C = data->unk38 % 3 - 1; + data->unk40 = data->unk38 / 3 - 1; + object->trans.x = 500.0 * data->unk3C; + object->trans.z = 500.0 * data->unk40; } } if (lbl_1_bss_54 <= 30) { - if (temp_r31->unk08 == -1) { - Hu3DMotionTimeSet(arg0->model[0], 138.0f); + if (data->character == -1) { + Hu3DMotionTimeSet(object->model[0], 138.0f); } - arg0->trans.y = 2400.0 * (1.0 - lbl_1_bss_54 / 30.0); + object->trans.y = 2400.0 * (1.0 - lbl_1_bss_54 / 30.0); } - if (temp_r31->unk08 != -1 && lbl_1_bss_54 == 30) { + if (data->character != -1 && lbl_1_bss_54 == 30) { var_r28 = 4; } - if (lbl_1_bss_54 == (temp_r31->unk08 != -1 ? 10 : 60) + 30) { + if (lbl_1_bss_54 == (data->character != -1 ? 10 : 60) + 30) { var_r28 = 0; } if (lbl_1_bss_54 == 30) { lbl_1_data_134.unk04 += 50; } - if (lbl_1_bss_54 == 30 && (temp_r31->unk00 == 0 || temp_r31->unk00 == 4)) { + if (lbl_1_bss_54 == 30 && (data->player == 0 || data->player == 4)) { HuAudFXPlay(0x33D); } break; case 1002: - if (lbl_1_bss_54 != 0 && temp_r31->unk00 < 4 && (var_r22 != 0 || lbl_1_bss_0 == 0) && temp_r31->unk50 == 0) { - temp_r31->unk50 = 1; + if (lbl_1_bss_54 != 0 && data->player < 4 && (var_r22 != 0 || lbl_1_bss_0 == 0) && data->unk50 == 0) { + data->unk50 = 1; lbl_1_bss_14++; - lbl_1_bss_51C[temp_r31->unk38].unk08 = 83.333336f; + lbl_1_bss_51C[data->unk38].unk08 = 83.333336f; } - if (temp_r31->unk00 != 0) { + if (data->player != 0) { break; } if (lbl_1_bss_54 == 0) { @@ -433,9 +432,9 @@ void fn_1_4C8(omObjData *arg0) } if (lbl_1_bss_54 == 50) { for (var_r23 = 0; var_r23 < 4; var_r23++) { - temp_r18 = lbl_1_bss_330[var_r23]->data; - if (!(fabs(500.0 * temp_r18->unk3C - lbl_1_bss_330[var_r23]->trans.x) < 1.0) - || !(fabs(500.0 * temp_r18->unk40 - lbl_1_bss_330[var_r23]->trans.z) < 1.0) || temp_r18->unk20 != 0) { + temp_r18 = playerObjs[var_r23]->data; + if (!(fabs(500.0 * temp_r18->unk3C - playerObjs[var_r23]->trans.x) < 1.0) + || !(fabs(500.0 * temp_r18->unk40 - playerObjs[var_r23]->trans.z) < 1.0) || temp_r18->unk20 != 0) { break; } } @@ -445,132 +444,132 @@ void fn_1_4C8(omObjData *arg0) } break; case 1005: - if (temp_r31->unk5C != 0) { - if (arg0->trans.y < -15000.0f) { - Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); + if (data->unk5C != 0) { + if (object->trans.y < -15000.0f) { + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); } else { - arg0->trans.y -= 77.0f; + object->trans.y -= 77.0f; } } break; case 1006: if (lbl_1_bss_54 <= 1) { - Hu3DModelAttrSet(arg0->model[temp_r31->unk44 + 2], HU3D_ATTR_DISPOFF); - lbl_1_bss_51C[temp_r31->unk44].unk0C = 0; + Hu3DModelAttrSet(object->model[data->unk44 + 2], HU3D_ATTR_DISPOFF); + lbl_1_bss_51C[data->unk44].unk0C = 0; } - if (lbl_1_bss_51C[temp_r31->unk38].unk0C != 0 || temp_r31->unk5C != 0) { + if (lbl_1_bss_51C[data->unk38].unk0C != 0 || data->unk5C != 0) { break; } if (lbl_1_bss_54 == 120) { - Hu3DModelAttrReset(lbl_1_bss_32C->model[temp_r31->unk38 + 1], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(lbl_1_bss_32C->model[data->unk38 + 1], HU3D_MOTATTR_PAUSE); } if (lbl_1_bss_54 == 153) { - Hu3DModelAttrSet(lbl_1_bss_32C->model[temp_r31->unk38 + 1], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(lbl_1_bss_32C->model[data->unk38 + 1], HU3D_MOTATTR_PAUSE); } if (lbl_1_bss_54 == 183) { - Hu3DModelAttrReset(lbl_1_bss_32C->model[temp_r31->unk38 + 1], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(lbl_1_bss_32C->model[data->unk38 + 1], HU3D_MOTATTR_PAUSE); } if (lbl_1_bss_54 == 210) { spBC = 0; for (spC0 = 0; spC0 < 9; spC0++) { - spB8 = lbl_1_bss_330[spC0]->data; + spB8 = playerObjs[spC0]->data; spBC += (lbl_1_bss_51C[spB8->unk38].unk0C == 0 && spB8->unk5C == 0); } var_r28 = 7; - HuAudFXPlayVol(0x7F7 + (temp_r31->unk08 != -1 ? temp_r31->unk08 : 8), 1651 / (spBC + 12)); + HuAudFXPlayVol(0x7F7 + (data->character != -1 ? data->character : 8), 1651 / (spBC + 12)); } if (lbl_1_bss_54 >= 210 && lbl_1_bss_54 <= 214) { s32 sp1AC[] = { 0, -12, -36, 0, 0, -12, -36, -48, 0 }; float sp194[] = { 150.0f, 175.0f, 205.0f }; float sp188[] = { 100.0f, 170.0f, 260.0f }; - spB4 = temp_r31->unk38 % 3 - 1; - spB0 = temp_r31->unk38 / 3; + spB4 = data->unk38 % 3 - 1; + spB0 = data->unk38 / 3; spAC = (lbl_1_bss_54 - 210) / 4.0; temp_f26 = (lbl_1_bss_54 - 210) / 4.0; temp_f26 = (temp_f26 > 1.0f) ? 1.0f : temp_f26; - espAttrReset(lbl_1_data_24[temp_r31->unk38], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_data_24[temp_r31->unk38], 290.0f + spB4 * sp194[spB0], - sp188[spB0] + 0.5 * (64.0f * (1.0f - spAC) * 0.5 + sp1AC[temp_r31->unk08 != -1 ? temp_r31->unk08 : 8])); - espScaleSet(lbl_1_data_24[temp_r31->unk38], 0.5 * temp_f26, 0.5 * temp_f26); + espAttrReset(lbl_1_data_24[data->unk38], HUSPR_ATTR_DISPOFF); + espPosSet(lbl_1_data_24[data->unk38], 290.0f + spB4 * sp194[spB0], + sp188[spB0] + 0.5 * (64.0f * (1.0f - spAC) * 0.5 + sp1AC[data->character != -1 ? data->character : 8])); + espScaleSet(lbl_1_data_24[data->unk38], 0.5 * temp_f26, 0.5 * temp_f26); } if (lbl_1_bss_54 == 270) { - Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_PAUSE); - espAttrSet(lbl_1_data_24[temp_r31->unk38], HUSPR_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE); + espAttrSet(lbl_1_data_24[data->unk38], HUSPR_ATTR_DISPOFF); } if (lbl_1_bss_54 == 290) { spA0 = 0; for (spA4 = 0; spA4 < 9; spA4++) { - sp9C = lbl_1_bss_330[spA4]->data; + sp9C = playerObjs[spA4]->data; spA0 += (lbl_1_bss_51C[sp9C->unk38].unk0C == 0 && sp9C->unk5C == 0); } - spA8 = HuAudFXPlayVol(0x800 + (temp_r31->unk08 != -1 ? temp_r31->unk08 : 8), 1651 / (spA0 + 12)); + spA8 = HuAudFXPlayVol(0x800 + (data->character != -1 ? data->character : 8), 1651 / (spA0 + 12)); HuAudFXFadeOut(spA8, 0x9C4); } if (lbl_1_bss_54 >= 315) { - arg0->trans.y -= 77.0f; + object->trans.y -= 77.0f; } break; case 1007: - if (temp_r31->unk00 == lbl_1_bss_38) { + if (data->player == lbl_1_bss_38) { var_r28 = 8; - if (temp_r31->unk00 >= 4 && temp_r31->unk08 != -1 && lbl_1_bss_54 == 1) { - HuAudFXPlay(0x809 + temp_r31->unk08); + if (data->player >= 4 && data->character != -1 && lbl_1_bss_54 == 1) { + HuAudFXPlay(0x809 + data->character); } - if (temp_r31->unk08 == -1 && lbl_1_bss_54 == 1) { + if (data->character == -1 && lbl_1_bss_54 == 1) { HuAudFXPlay(0x3A); } } - else if (arg0->trans.y < -40000.0f) { - Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); + else if (object->trans.y < -40000.0f) { + Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF); } else { - arg0->trans.y -= 77.0f; + object->trans.y -= 77.0f; } break; } - switch (temp_r31->unk18) { + switch (data->unk18) { case 0: - temp_r31->unk1C++; + data->unk1C++; break; case 1: - temp_r31->unk1C++; - if (temp_r31->unk1C <= 60) { - arg0->rot.y = -180.0 * (temp_r31->unk1C / 60.0); + data->unk1C++; + if (data->unk1C <= 60) { + object->rot.y = -180.0 * (data->unk1C / 60.0); } else { - Hu3DMotionTimeSet(arg0->model[0], 120.0f); + Hu3DMotionTimeSet(object->model[0], 120.0f); var_r28 = 0; - temp_r31->unk18 = 0; - temp_r31->unk1C = 0; + data->unk18 = 0; + data->unk1C = 0; } break; case 2: - temp_r31->unk1C++; + data->unk1C++; break; case 3: - if (temp_r31->unk1C == 0) { - temp_r31->unk48 = 6; - temp_r31->unk4C = 0; + if (data->unk1C == 0) { + data->unk48 = 6; + data->unk4C = 0; } - if (temp_r31->unk1C < 360) { - temp_r24 = &Hu3DData[arg0->model[1]]; - if (temp_r31->unk1C == 0) { - Hu3DModelAttrReset(arg0->model[1], HU3D_ATTR_DISPOFF); - Hu3DModelPosSet(arg0->model[1], arg0->trans.x, arg0->trans.y + 625.0f, arg0->trans.z); - Hu3DModelScaleSet(arg0->model[1], 0.1f, 0.1f, 0.1f); - Hu3DModelTPLvlSet(arg0->model[1], 1.0f); - temp_r31->unk4C = 0; + if (data->unk1C < 360) { + model = &Hu3DData[object->model[1]]; + if (data->unk1C == 0) { + Hu3DModelAttrReset(object->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(object->model[1], object->trans.x, object->trans.y + 625.0f, object->trans.z); + Hu3DModelScaleSet(object->model[1], 0.1f, 0.1f, 0.1f); + Hu3DModelTPLvlSet(object->model[1], 1.0f); + data->unk4C = 0; if (lbl_1_bss_18 == 0) { HuAudFXPlay(0x7F4); lbl_1_data_184 = HuAudFXPlay(0x7F3); } lbl_1_bss_18++; } - temp_r24->rot.y = temp_r31->unk4C % 360; - temp_r31->unk4C += 25; - if (temp_r31->unk1C < 180) { + model->rot.y = data->unk4C % 360; + data->unk4C += 25; + if (data->unk1C < 180) { var_f20 = 0.0f; var_f21 = 1.0f; } @@ -578,46 +577,46 @@ void fn_1_4C8(omObjData *arg0) var_f20 = 1.0f; var_f21 = 0.5f; } - temp_r24->scale.x = var_f20 + var_f21 * sind((float)(temp_r31->unk1C % 180)); - temp_r24->scale.y = temp_r24->scale.z = temp_r24->scale.x; - if (temp_r31->unk1C < 180) { - temp_r31->unk1C += 6; + model->scale.x = var_f20 + var_f21 * sind((float)(data->unk1C % 180)); + model->scale.y = model->scale.z = model->scale.x; + if (data->unk1C < 180) { + data->unk1C += 6; } else { - temp_r31->unk1C += 18; + data->unk1C += 18; } - if (temp_r31->unk1C >= 360) { - temp_r31->unk1C = 360; - Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); + if (data->unk1C >= 360) { + data->unk1C = 360; + Hu3DModelRotSet(object->model[1], 0.0f, 0.0f, 0.0f); } } else { - sp98 = &Hu3DData[arg0->model[1]]; - temp_r31->unk1C += 4; - if (temp_r31->unk1C > 720) { - temp_r31->unk1C -= 360; + sp98 = &Hu3DData[object->model[1]]; + data->unk1C += 4; + if (data->unk1C > 720) { + data->unk1C -= 360; } - sp98->pos.y += 0.2f * sind(temp_r31->unk1C - 360); + sp98->pos.y += 0.2f * sind(data->unk1C - 360); if (var_r22 != 0 || lbl_1_bss_0 == 0) { lbl_1_bss_54 = 50; - temp_r31->unk18 = 4; - temp_r31->unk1C = 0; + data->unk18 = 4; + data->unk1C = 0; var_r28 = 5; } } break; case 4: - temp_r31->unk1C++; - if (temp_r31->unk1C < 27) { + data->unk1C++; + if (data->unk1C < 27) { break; } - temp_r29 = &Hu3DData[arg0->model[1]]; - temp_r27 = temp_r31->unk1C - 27; + model2 = &Hu3DData[object->model[1]]; + temp_r27 = data->unk1C - 27; if (temp_r27 == 0) { - if (temp_r31->unk04 != -1) { - omVibrate(temp_r31->unk04, 12, 4, 2); + if (data->playerCfg != -1) { + omVibrate(data->playerCfg, 12, 4, 2); } - temp_r31->unk48 = -1; + data->unk48 = -1; lbl_1_bss_18--; if (lbl_1_bss_18 == 0 && lbl_1_data_184 != -1) { HuAudFXStop(lbl_1_data_184); @@ -626,17 +625,17 @@ void fn_1_4C8(omObjData *arg0) HuAudFXPlay(0x7F5); } if (temp_r27 == 8) { - if (temp_r31->unk54 == -1) { - lbl_1_bss_58 = temp_r31->unk00; - temp_r31->unk54 = fn_1_4474(); - Hu3DParManPosSet(temp_r31->unk54, temp_r29->pos.x, temp_r29->pos.y, temp_r29->pos.z); - temp_r31->unk58 = 150; + if (data->particle == -1) { + lbl_1_bss_58 = data->player; + data->particle = fn_1_4474(); + Hu3DParManPosSet(data->particle, model2->pos.x, model2->pos.y, model2->pos.z); + data->particleTimer = 150; } - Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); } else if (temp_r27 > 8) { - if (temp_r31->unk20 == 5) { - if (Hu3DMotionTimeGet(arg0->model[0]) >= Hu3DMotionMaxTimeGet(arg0->model[0])) { + if (data->unk20 == 5) { + if (Hu3DMotionTimeGet(object->model[0]) >= Hu3DMotionMaxTimeGet(object->model[0])) { var_r28 = 0; } } @@ -644,106 +643,106 @@ void fn_1_4C8(omObjData *arg0) temp_f27 = (temp_r27 - 8) / 10.0; sp94 = (temp_r27 - 8) * 18; temp_f27 = (temp_f27 > 1.0f) ? 2.5 : (2.5 * temp_f27); - Hu3DModelAttrReset(arg0->model[temp_r31->unk44 + 2], HU3D_ATTR_DISPOFF); - Hu3DModelPosSet(arg0->model[temp_r31->unk44 + 2], temp_r29->pos.x, temp_r29->pos.y, temp_r29->pos.z); - Hu3DModelScaleSet(arg0->model[temp_r31->unk44 + 2], temp_f27, temp_f27, temp_f27); + Hu3DModelAttrReset(object->model[data->unk44 + 2], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(object->model[data->unk44 + 2], model2->pos.x, model2->pos.y, model2->pos.z); + Hu3DModelScaleSet(object->model[data->unk44 + 2], temp_f27, temp_f27, temp_f27); } if (temp_r27 >= 45 && temp_r27 <= 65) { temp_f25 = (temp_r27 - 45) / 5.0; sp90 = (temp_r27 - 45) * 18; temp_f25 = (temp_f25 > 1.0f) ? 1.0f : temp_f25; temp_f25 = 0.0f; - Hu3DModelAttrReset(arg0->model[temp_r31->unk44 + 2], HU3D_ATTR_DISPOFF); - Hu3DModelPosSet(arg0->model[temp_r31->unk44 + 2], temp_r29->pos.x, temp_r29->pos.y - 30.0f * temp_f25, temp_r29->pos.z); - temp_r31->unk1C += 5; + Hu3DModelAttrReset(object->model[data->unk44 + 2], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(object->model[data->unk44 + 2], model2->pos.x, model2->pos.y - 30.0f * temp_f25, model2->pos.z); + data->unk1C += 5; } if (temp_r27 == 158) { - temp_r31->unk18 = 0; - temp_r31->unk1C = 0; + data->unk18 = 0; + data->unk1C = 0; } } else { if (temp_r27 < 4) { - temp_r29->pos.y += 10.0f + 0.5f * temp_r27; - temp_r29->scale.x += 0.1f * sind(4.0f * temp_r27); - temp_r29->scale.y = temp_r29->scale.z = temp_r29->scale.x; + model2->pos.y += 10.0f + 0.5f * temp_r27; + model2->scale.x += 0.1f * sind(4.0f * temp_r27); + model2->scale.y = model2->scale.z = model2->scale.x; } else { var_f24 = 255 - (temp_r27 << 5); var_f24 = var_f24 * (1.0f / 255); - Hu3DModelTPLvlSet(arg0->model[1], var_f24); + Hu3DModelTPLvlSet(object->model[1], var_f24); } - temp_r29->pos.y += -0.49f * temp_r27 * temp_r27; + model2->pos.y += -0.49f * temp_r27 * temp_r27; } break; case 5: - if (temp_r31->unk1C == 0) { - Hu3DModelAttrReset(lbl_1_bss_32C->model[temp_r31->unk44 + 1], HU3D_MOTATTR_PAUSE); - lbl_1_bss_51C[temp_r31->unk44].unk0C = 0; + if (data->unk1C == 0) { + Hu3DModelAttrReset(lbl_1_bss_32C->model[data->unk44 + 1], HU3D_MOTATTR_PAUSE); + lbl_1_bss_51C[data->unk44].unk0C = 0; if (lbl_1_bss_35C->unk00 < 3) { lbl_1_bss_35C->unk04[lbl_1_bss_35C->unk00] = 0.0f; lbl_1_bss_35C->unk00++; } } - temp_r31->unk1C++; - if (temp_r31->unk1C == 60 && temp_r31->unk54 != -1) { - Hu3DParManKill(temp_r31->unk54); - temp_r31->unk54 = -1; + data->unk1C++; + if (data->unk1C == 60 && data->particle != -1) { + Hu3DParManKill(data->particle); + data->particle = -1; } - if (temp_r31->unk1C == 33) { - Hu3DModelAttrSet(lbl_1_bss_32C->model[temp_r31->unk44 + 1], HU3D_MOTATTR_PAUSE); + if (data->unk1C == 33) { + Hu3DModelAttrSet(lbl_1_bss_32C->model[data->unk44 + 1], HU3D_MOTATTR_PAUSE); } - if (temp_r31->unk1C == 63) { - Hu3DModelAttrReset(lbl_1_bss_32C->model[temp_r31->unk44 + 1], HU3D_MOTATTR_PAUSE); + if (data->unk1C == 63) { + Hu3DModelAttrReset(lbl_1_bss_32C->model[data->unk44 + 1], HU3D_MOTATTR_PAUSE); } - if (temp_r31->unk1C == 68 && lbl_1_bss_35C[1].unk00 < 3) { + if (data->unk1C == 68 && lbl_1_bss_35C[1].unk00 < 3) { lbl_1_bss_35C[1].unk04[lbl_1_bss_35C[1].unk00] = 0.0f; lbl_1_bss_35C[1].unk00++; } - if (temp_r31->unk1C == 130) { - temp_r31->unk18 = 0; - temp_r31->unk1C = 0; + if (data->unk1C == 130) { + data->unk18 = 0; + data->unk1C = 0; } break; } - if ((temp_r31->unk18 == 3 || temp_r31->unk18 == 4) && temp_r31->unk48 >= 0) { - temp_r31->unk48++; - if (temp_r31->unk48 >= 6) { - sp88 = temp_r31->unk44; + if ((data->unk18 == 3 || data->unk18 == 4) && data->unk48 >= 0) { + data->unk48++; + if (data->unk48 >= 6) { + sp88 = data->unk44; for (sp8C = 0; sp8C < 50; sp8C++) { do { - temp_r31->unk44 = rand8() % 9; - if (temp_r31->unk44 >= 9) { + data->unk44 = rand8() % 9; + if (data->unk44 >= 9) { break; } - } while (lbl_1_bss_51C[temp_r31->unk44].unk0C == 0); - if (sp88 != temp_r31->unk44) { + } while (lbl_1_bss_51C[data->unk44].unk0C == 0); + if (sp88 != data->unk44) { break; } } - sp88 = temp_r31->unk44; - temp_r31->unk48 = 0; - Hu3DMotionTimeSet(arg0->model[1], 0.5 + sp88); + sp88 = data->unk44; + data->unk48 = 0; + Hu3DMotionTimeSet(object->model[1], 0.5 + sp88); } } - if (temp_r31->unk24 >= 0) { - var_r28 = temp_r31->unk24; + if (data->unk24 >= 0) { + var_r28 = data->unk24; } - if (var_r28 >= 0 && var_r28 != temp_r31->unk20) { - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r28], lbl_1_data_EC[var_r28], - (temp_r31->unk08 != -1) ? lbl_1_data_C8[var_r28] : lbl_1_data_110[var_r28], + if (var_r28 >= 0 && var_r28 != data->unk20) { + Hu3DMotionShiftSet(object->model[0], object->motion[var_r28], lbl_1_data_EC[var_r28], + (data->character != -1) ? lbl_1_data_C8[var_r28] : lbl_1_data_110[var_r28], (var_r28 == 7) ? HU3D_MOTATTR_PAUSE - : (temp_r31->unk08 != -1 ? lbl_1_data_B4[var_r28] : lbl_1_data_BD[var_r28]) ? 0 + : (data->character != -1 ? lbl_1_data_B4[var_r28] : lbl_1_data_BD[var_r28]) ? 0 : HU3D_MOTATTR_LOOP); - temp_r31->unk20 = var_r28; + data->unk20 = var_r28; } - temp_r31->unk58 -= (temp_r31->unk58 > -1); - if (temp_r31->unk58 == 0) { - if (temp_r31->unk54 != -1) { - Hu3DParManKill(temp_r31->unk54); - temp_r31->unk54 = -1; + data->particleTimer -= (data->particleTimer > -1); + if (data->particleTimer == 0) { + if (data->particle != -1) { + Hu3DParManKill(data->particle); + data->particle = -1; } - temp_r31->unk58 = -1; + data->particleTimer = -1; } } @@ -753,14 +752,81 @@ float lbl_1_data_1B8 = 3500.0f; float lbl_1_data_1BC = 100.0f; float lbl_1_data_1C0 = -59.0f; +static inline void fn3264_unkInline(void) { + float var_f31; + s32 var_r26 = lbl_1_data_1B4; + float sp30[][6] = { { 3500.0f, 0.0f, 100.0f, 0.0f, -59.0f, 0.0f }, { 3200.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, + { 3800.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, { 2000.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, + { 4000.0f, 0.0f, 200.0f, 0.0f, -89.0f, 0.0f }, { 2700.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f } }; + + if (lbl_1_bss_38 != -1 && lbl_1_bss_38 != 9) { + sp30[5][1] = playerObjs[lbl_1_bss_38]->trans.x; + sp30[5][3] = playerObjs[lbl_1_bss_38]->trans.z; + } + if (lbl_1_data_1B4 == -1) { + lbl_1_data_1B4 = 0; + lbl_1_bss_1C = 1; + lbl_1_bss_20 = 1.0f; + } + if (lbl_1_data_1B4 == 0) { + lbl_1_data_1B4 = 1; + lbl_1_bss_1C = 1; + lbl_1_bss_20 = 0.5f; + } + if (lbl_1_bss_50 == 1004 && lbl_1_bss_54 >= 1 && lbl_1_data_1B4 == 1) { + lbl_1_data_1B4 = 2; + lbl_1_bss_1C = 0; + lbl_1_bss_20 = 0.0f; + } + if (lbl_1_bss_50 == 1006 && lbl_1_bss_54 >= 270 && lbl_1_data_1B4 == 2) { + lbl_1_data_1B4 = 4; + lbl_1_bss_1C = 1; + lbl_1_bss_20 = 1.0f; + } + if (lbl_1_bss_50 == 1005 && lbl_1_data_1B4 == 4) { + lbl_1_data_1B4 = 2; + lbl_1_bss_1C = 0; + lbl_1_bss_20 = 0.0f; + } + if (lbl_1_bss_50 == 1007 && lbl_1_bss_38 != 9 && lbl_1_data_1B4 == 4) { + lbl_1_data_1B4 = 5; + lbl_1_bss_1C = 0; + lbl_1_bss_20 = 0.0f; + } + if (var_r26 != lbl_1_data_1B4 && var_r26 != -1) { + lbl_1_data_1B8 = CZoom; + lbl_1_data_1BC = Center.y; + lbl_1_bss_28 = Center.z; + lbl_1_data_1C0 = CRot.x; + lbl_1_bss_2C = CRot.y; + } + if (lbl_1_bss_20 <= 1.0f) { + if (lbl_1_bss_1C == 0) { + lbl_1_bss_20 = 1.0 - 0.95 * (1.0f - lbl_1_bss_20); + var_f31 = lbl_1_bss_20; + } + else { + lbl_1_bss_20 += 0.008333333333333333; + lbl_1_bss_20 = (lbl_1_bss_20 > 1.0f) ? 1.0f : lbl_1_bss_20; + var_f31 = 0.5 + -0.5 * cosd(180.0f * lbl_1_bss_20); + } + lbl_1_bss_20 = (lbl_1_bss_20 > 1.0f) ? 1.0f : lbl_1_bss_20; + CZoom = var_f31 * sp30[lbl_1_data_1B4][0] + lbl_1_data_1B8 * (1.0f - var_f31); + Center.x = var_f31 * sp30[lbl_1_data_1B4][1] + lbl_1_bss_24 * (1.0f - var_f31); + Center.y = var_f31 * sp30[lbl_1_data_1B4][2] + lbl_1_data_1BC * (1.0f - var_f31); + Center.z = var_f31 * sp30[lbl_1_data_1B4][3] + lbl_1_bss_28 * (1.0f - var_f31); + CRot.x = var_f31 * sp30[lbl_1_data_1B4][4] + lbl_1_data_1C0 * (1.0f - var_f31); + CRot.y = var_f31 * sp30[lbl_1_data_1B4][5] + lbl_1_bss_2C * (1.0f - var_f31); + } +} + void fn_1_3264(omObjData *arg0) { float temp_f29; - float var_f31; float temp_f26; float temp_f27; float temp_f28; - StructBss330Data *spC[9]; + M463PlayerData *spC[9]; ModelData *temp_r29; ModelData *temp_r28; s32 var_r27; @@ -768,7 +834,7 @@ void fn_1_3264(omObjData *arg0) s32 j; for (i = 0; i < 9; i++) { - spC[i] = lbl_1_bss_330[i]->data; + spC[i] = playerObjs[i]->data; } lbl_1_bss_4++; switch (lbl_1_bss_50) { @@ -789,8 +855,8 @@ void fn_1_3264(omObjData *arg0) HuAudFXPlay(0x7F6); } temp_r29->pos.y = 0.9 * temp_r29->pos.y + 0.1 * lbl_1_bss_51C[spC[i]->unk38].unk08; - lbl_1_bss_330[i]->trans.y = temp_r29->pos.y - -16.666666666666668; - lbl_1_bss_330[i]->rot.y = 0.0f; + playerObjs[i]->trans.y = temp_r29->pos.y - -16.666666666666668; + playerObjs[i]->rot.y = 0.0f; } break; case 1004: @@ -806,81 +872,16 @@ void fn_1_3264(omObjData *arg0) 0.9 * temp_r28->pos.y + 0.1 * lbl_1_bss_51C[spC[0]->unk38].unk08, (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk04 - 1)); for (j = 0; j < 9; j++) { if (i == spC[j]->unk38) { - lbl_1_bss_330[j]->trans.x = (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk00 - 1); - lbl_1_bss_330[j]->trans.y = temp_r28->pos.y - -16.666666666666668; - lbl_1_bss_330[j]->trans.z = (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk04 - 1); + playerObjs[j]->trans.x = (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk00 - 1); + playerObjs[j]->trans.y = temp_r28->pos.y - -16.666666666666668; + playerObjs[j]->trans.z = (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk04 - 1); } } } } break; } - { - s32 var_r26 = lbl_1_data_1B4; - float sp30[][6] = { { 3500.0f, 0.0f, 100.0f, 0.0f, -59.0f, 0.0f }, { 3200.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, - { 3800.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, { 2000.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, - { 4000.0f, 0.0f, 200.0f, 0.0f, -89.0f, 0.0f }, { 2700.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f } }; - - if (lbl_1_bss_38 != -1 && lbl_1_bss_38 != 9) { - sp30[5][1] = lbl_1_bss_330[lbl_1_bss_38]->trans.x; - sp30[5][3] = lbl_1_bss_330[lbl_1_bss_38]->trans.z; - } - if (lbl_1_data_1B4 == -1) { - lbl_1_data_1B4 = 0; - lbl_1_bss_1C = 1; - lbl_1_bss_20 = 1.0f; - } - if (lbl_1_data_1B4 == 0) { - lbl_1_data_1B4 = 1; - lbl_1_bss_1C = 1; - lbl_1_bss_20 = 0.5f; - } - if (lbl_1_bss_50 == 1004 && lbl_1_bss_54 >= 1 && lbl_1_data_1B4 == 1) { - lbl_1_data_1B4 = 2; - lbl_1_bss_1C = 0; - lbl_1_bss_20 = 0.0f; - } - if (lbl_1_bss_50 == 1006 && lbl_1_bss_54 >= 270 && lbl_1_data_1B4 == 2) { - lbl_1_data_1B4 = 4; - lbl_1_bss_1C = 1; - lbl_1_bss_20 = 1.0f; - } - if (lbl_1_bss_50 == 1005 && lbl_1_data_1B4 == 4) { - lbl_1_data_1B4 = 2; - lbl_1_bss_1C = 0; - lbl_1_bss_20 = 0.0f; - } - if (lbl_1_bss_50 == 1007 && lbl_1_bss_38 != 9 && lbl_1_data_1B4 == 4) { - lbl_1_data_1B4 = 5; - lbl_1_bss_1C = 0; - lbl_1_bss_20 = 0.0f; - } - if (var_r26 != lbl_1_data_1B4 && var_r26 != -1) { - lbl_1_data_1B8 = CZoom; - lbl_1_data_1BC = Center.y; - lbl_1_bss_28 = Center.z; - lbl_1_data_1C0 = CRot.x; - lbl_1_bss_2C = CRot.y; - } - if (lbl_1_bss_20 <= 1.0f) { - if (lbl_1_bss_1C == 0) { - lbl_1_bss_20 = 1.0 - 0.95 * (1.0f - lbl_1_bss_20); - var_f31 = lbl_1_bss_20; - } - else { - lbl_1_bss_20 += 0.008333333333333333; - lbl_1_bss_20 = (lbl_1_bss_20 > 1.0f) ? 1.0f : lbl_1_bss_20; - var_f31 = 0.5 + -0.5 * cosd(180.0f * lbl_1_bss_20); - } - lbl_1_bss_20 = (lbl_1_bss_20 > 1.0f) ? 1.0f : lbl_1_bss_20; - CZoom = var_f31 * sp30[lbl_1_data_1B4][0] + lbl_1_data_1B8 * (1.0f - var_f31); - Center.x = var_f31 * sp30[lbl_1_data_1B4][1] + lbl_1_bss_24 * (1.0f - var_f31); - Center.y = var_f31 * sp30[lbl_1_data_1B4][2] + lbl_1_data_1BC * (1.0f - var_f31); - Center.z = var_f31 * sp30[lbl_1_data_1B4][3] + lbl_1_bss_28 * (1.0f - var_f31); - CRot.x = var_f31 * sp30[lbl_1_data_1B4][4] + lbl_1_data_1C0 * (1.0f - var_f31); - CRot.y = var_f31 * sp30[lbl_1_data_1B4][5] + lbl_1_bss_2C * (1.0f - var_f31); - } - } + fn3264_unkInline(); if (lbl_1_bss_50 == 1001 || lbl_1_bss_50 == 1003) { temp_f26 = 0.0f; temp_f27 = 0.0f; @@ -932,7 +933,7 @@ s16 fn_1_4474(void) void fn_1_45F8(omObjData *arg0) { - StructBss330Data *sp14[9]; + M463PlayerData *sp14[9]; float spC[2]; s32 sp8; s32 var_r29; @@ -954,7 +955,7 @@ void fn_1_45F8(omObjData *arg0) } } for (i = 0; i < 9; i++) { - sp14[i] = lbl_1_bss_330[i]->data; + sp14[i] = playerObjs[i]->data; } if (omSysExitReq != 0 && WipeStatGet() == 0) { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); @@ -968,9 +969,9 @@ void fn_1_45F8(omObjData *arg0) lbl_1_bss_50++; lbl_1_bss_54 = 0; for (i = 0; i < 9; i++) { - if (sp14[i]->unk54 != -1) { - Hu3DParManKill(sp14[i]->unk54); - sp14[i]->unk54 = -1; + if (sp14[i]->particle != -1) { + Hu3DParManKill(sp14[i]->particle); + sp14[i]->particle = -1; } } break; @@ -996,9 +997,9 @@ void fn_1_45F8(omObjData *arg0) break; case 1003: lbl_1_bss_54++; - if (lbl_1_bss_54 == (sp14[1]->unk08 == -1 ? 120 : 60) + 30) { + if (lbl_1_bss_54 == (sp14[1]->character == -1 ? 120 : 60) + 30) { lbl_1_bss_50++; - if (sp14[1]->unk08 == -1) { + if (sp14[1]->character == -1) { lbl_1_bss_50++; } lbl_1_bss_54 = 0; @@ -1120,8 +1121,8 @@ void fn_1_45F8(omObjData *arg0) else { HuAudSStreamPlay(1); } - if (lbl_1_bss_38 < 4 && sp14[lbl_1_bss_38]->unk04 != -1) { - GWPlayerCoinWinSet(sp14[lbl_1_bss_38]->unk04, 10); + if (lbl_1_bss_38 < 4 && sp14[lbl_1_bss_38]->playerCfg != -1) { + GWPlayerCoinWinSet(sp14[lbl_1_bss_38]->playerCfg, 10); } } else if (lbl_1_bss_38 == 9) { @@ -1143,11 +1144,11 @@ void fn_1_45F8(omObjData *arg0) void fn_1_53A0(omObjData *arg0) { - StructBss330Data *sp50[9]; + M463PlayerData *sp50[9]; s32 i; for (i = 0; i < 9; i++) { - sp50[i] = lbl_1_bss_330[i]->data; + sp50[i] = playerObjs[i]->data; } arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M458, 8)); Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); @@ -1185,7 +1186,7 @@ s32 lbl_1_data_1E4[] = { DATA_MAKE_NUM(DATADIR_M458, 19), DATA_MAKE_NUM(DATADIR_ void fn_1_5850(omObjData *arg0) { - StructBss330Data *temp_r31; + M463PlayerData *data; s32 sp10[] = { 0, 1, 2, 3 }; s32 var_r25; s32 var_r28; @@ -1193,21 +1194,21 @@ void fn_1_5850(omObjData *arg0) s32 j; var_r25 = 0; - temp_r31 = arg0->data; - memset(temp_r31, 0, sizeof(*temp_r31)); - temp_r31->unk00 = arg0->work[0]; - if (temp_r31->unk00 >= 4) { + data = arg0->data; + memset(data, 0, sizeof(*data)); + data->player = arg0->work[0]; + if (data->player >= 4) { var_r28 = -1; - for (i = 0; i <= temp_r31->unk00 - 4; i++) { + for (i = 0; i <= data->player - 4; i++) { do { var_r28++; } while (GWPlayerCfg[0].character == var_r28 || GWPlayerCfg[1].character == var_r28 || GWPlayerCfg[2].character == var_r28 || GWPlayerCfg[3].character == var_r28); } - temp_r31->unk08 = (var_r28 == 8) ? -1 : var_r28; - temp_r31->unk0C = -1; - temp_r31->unk04 = -1; - temp_r31->unk10 = 0; + data->character = (var_r28 == 8) ? -1 : var_r28; + data->padIdx = -1; + data->playerCfg = -1; + data->diff = 0; } else { for (i = 0; i < 4; i++) { @@ -1218,52 +1219,52 @@ void fn_1_5850(omObjData *arg0) } } } - temp_r31->unk00 = arg0->work[0]; - temp_r31->unk04 = sp10[temp_r31->unk00]; - if (temp_r31->unk04 == 4) { + data->player = arg0->work[0]; + data->playerCfg = sp10[data->player]; + if (data->playerCfg == 4) { OSReport("m463:wrong player group\n"); - temp_r31->unk04 = temp_r31->unk00; + data->playerCfg = data->player; } - temp_r31->unk08 = GWPlayerCfg[temp_r31->unk04].character; - temp_r31->unk0C = (temp_r31->unk08 == -1 || GWPlayerCfg[temp_r31->unk04].iscom) ? -1 : GWPlayerCfg[temp_r31->unk04].pad_idx; - temp_r31->unk10 = (temp_r31->unk0C != -1) ? 0 : GWPlayerCfg[temp_r31->unk04].diff; + data->character = GWPlayerCfg[data->playerCfg].character; + data->padIdx = (data->character == -1 || GWPlayerCfg[data->playerCfg].iscom) ? -1 : GWPlayerCfg[data->playerCfg].pad_idx; + data->diff = (data->padIdx != -1) ? 0 : GWPlayerCfg[data->playerCfg].diff; } - temp_r31->unk18 = 0; - temp_r31->unk20 = 3; - temp_r31->unk24 = -1; - temp_r31->unk48 = -1; - if (temp_r31->unk08 != -1) { - arg0->model[0] = CharModelCreate(temp_r31->unk08, 4); + data->unk18 = 0; + data->unk20 = 3; + data->unk24 = -1; + data->unk48 = -1; + if (data->character != -1) { + arg0->model[0] = CharModelCreate(data->character, 4); } else { arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_BKOOPA, 7)); } - omSetTra(arg0, 0.0f, temp_r31->unk00 == 0 ? 0 : 300, 0.0f); - if (temp_r31->unk08 != -1) { + omSetTra(arg0, 0.0f, data->player == 0 ? 0 : 300, 0.0f); + if (data->character != -1) { omSetSca(arg0, 2.5f, 2.5f, 2.5f); } else { omSetSca(arg0, 2.0f, 2.0f, 2.0f); } for (i = 0; i < 9; i++) { - if (temp_r31->unk08 != -1) { - if (temp_r31->unk00 < 4 || (i != 1 && i != 2)) { - arg0->motion[i] = CharModelMotionCreate(temp_r31->unk08, lbl_1_data_48[i] + (lbl_1_data_6C[i] ? temp_r31->unk08 : 0)); + if (data->character != -1) { + if (data->player < 4 || (i != 1 && i != 2)) { + arg0->motion[i] = CharModelMotionCreate(data->character, lbl_1_data_48[i] + (lbl_1_data_6C[i] ? data->character : 0)); } } else if (lbl_1_data_90[i] != 0) { arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_90[i]); } } - Hu3DMotionSet(arg0->model[0], arg0->motion[temp_r31->unk20]); + Hu3DMotionSet(arg0->model[0], arg0->motion[data->unk20]); Hu3DMotionTimeSet(arg0->model[0], 10.0f); Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); Hu3DModelShadowSet(arg0->model[0]); Hu3DModelAttrSet(arg0->model[0], 1U); Hu3DModelLayerSet(arg0->model[0], 1); CharModelLayerSetAll2(1); - if (temp_r31->unk08 != -1) { - CharModelDataClose(temp_r31->unk08); + if (data->character != -1) { + CharModelDataClose(data->character); } arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M458, 9)); Hu3DModelAttrSet(arg0->model[1], HU3D_MOTATTR_LOOP); @@ -1272,20 +1273,20 @@ void fn_1_5850(omObjData *arg0) Hu3DModelLayerSet(arg0->model[1], 1); Hu3DMotionSpeedSet(arg0->model[1], 0.0f); for (i = 0; i < 9; i++) { - if (temp_r31->unk00 == 0) { + if (data->player == 0) { arg0->model[i + 2] = Hu3DModelCreateFile(lbl_1_data_1E4[i]); } else { - arg0->model[i + 2] = Hu3DModelLink(lbl_1_bss_330[0]->model[i + 2]); + arg0->model[i + 2] = Hu3DModelLink(playerObjs[0]->model[i + 2]); } Hu3DMotionTimeSet(arg0->model[i + 2], 10.0f); Hu3DMotionSpeedSet(arg0->model[i + 2], 0.0f); Hu3DModelAttrSet(arg0->model[i + 2], HU3D_ATTR_DISPOFF); Hu3DModelLayerSet(arg0->model[i + 2], 1); } - lbl_1_bss_58 = temp_r31->unk00; - temp_r31->unk54 = fn_1_4474(); - Hu3DParManPosSet(temp_r31->unk54, 10000.0f, -10000.0f, 10000.0f); + lbl_1_bss_58 = data->player; + data->particle = fn_1_4474(); + Hu3DParManPosSet(data->particle, 10000.0f, -10000.0f, 10000.0f); arg0->func = fn_1_4C8; } @@ -1351,8 +1352,8 @@ void ObjectSetup(void) HuWinInit(1); lbl_1_bss_32C = omAddObjEx(lbl_1_bss_40, 0x65, 10, 0, 1, fn_1_53A0); for (i = 0; i < 9; i++) { - var_r30 = lbl_1_bss_330[i] = omAddObjEx(lbl_1_bss_40, 100, 11, 9, 0, fn_1_5850); - var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(StructBss330Data), MEMORY_DEFAULT_NUM); + var_r30 = playerObjs[i] = omAddObjEx(lbl_1_bss_40, 100, 11, 9, 0, fn_1_5850); + var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(M463PlayerData), MEMORY_DEFAULT_NUM); var_r30->work[0] = i; } lbl_1_bss_354 = omAddObjEx(lbl_1_bss_40, 0x7FDA, 0, 0, -1, omOutView); @@ -1361,21 +1362,21 @@ void ObjectSetup(void) void fn_1_659C(omObjData *arg0) { - StructBss330Data *spC[9]; + M463PlayerData *spC[9]; void *sp8; s32 var_r31; s32 var_r30; for (var_r31 = 0; var_r31 < 9; var_r31++) { - spC[var_r31] = lbl_1_bss_330[var_r31]->data; - if (spC[var_r31]->unk54 != -1) { - Hu3DParManKill(spC[var_r31]->unk54); - spC[var_r31]->unk54 = -1; + spC[var_r31] = playerObjs[var_r31]->data; + if (spC[var_r31]->particle != -1) { + Hu3DParManKill(spC[var_r31]->particle); + spC[var_r31]->particle = -1; } } if (WipeStatGet() == 0) { for (var_r30 = 0; var_r30 < 9; var_r30++) { - sp8 = lbl_1_bss_330[var_r30]->data; + sp8 = playerObjs[var_r30]->data; } if (lbl_1_data_14C >= 0) { MGSeqKill(lbl_1_data_14C); From 328d10121f59c82c5f5c665699a9346144ed24ec Mon Sep 17 00:00:00 2001 From: mrshigure Date: Tue, 4 Feb 2025 00:44:37 -0800 Subject: [PATCH 284/311] MSL: matched printf.c (US) --- configure.py | 2 +- src/MSL_C.PPCEABI.bare.H/printf.c | 120 +++++++++++++++++++++++++++++- 2 files changed, 120 insertions(+), 2 deletions(-) diff --git a/configure.py b/configure.py index ccea1eaa..e3d65804 100644 --- a/configure.py +++ b/configure.py @@ -696,7 +696,7 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/mem.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/mem_funcs.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/misc_io.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/printf.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/printf.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/float.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/signal.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/string.c"), diff --git a/src/MSL_C.PPCEABI.bare.H/printf.c b/src/MSL_C.PPCEABI.bare.H/printf.c index 9fa17473..5879d452 100644 --- a/src/MSL_C.PPCEABI.bare.H/printf.c +++ b/src/MSL_C.PPCEABI.bare.H/printf.c @@ -497,7 +497,125 @@ static char* longlong2str(long long num, char* pBuf, print_format fmt) return p; } -static char * double2hex(long double num, char * buff, print_format format); +static char * double2hex(long double num, char * buff, print_format format) { + char *p; + unsigned char *q; + unsigned char temp_r7; + char working_byte; + long double ld; + long exp; + print_format exp_format; + int hex_precision; + decform form; + decimal dec; + + p = buff; + ld = num; + + if (format.precision > 509) { + return 0; + } + + form.style = (char) 0; + form.digits = 0x20; + __num2dec(&form, num, &dec); + + if (*dec.sig.text == 'I') { + if (*(short*) &ld & 0x8000) { + p = buff - 5; + if (format.conversion_char == 'A') strcpy(p, "-INF"); + else strcpy(p, "-inf"); + } + else { + p = buff - 4; + if (format.conversion_char == 'A') strcpy(p, "INF"); + else strcpy(p, "inf"); + } + + return p; + } + if (*dec.sig.text == 'N') { + if (*(unsigned char*) &num & 0x80) { + p = buff - 5; + if (format.conversion_char == 'A') strcpy(p, "-NAN"); + else strcpy(p, "-nan"); + } + else { + p = buff - 4; + if (format.conversion_char == 'A') strcpy(p, "NAN"); + else strcpy(p, "nan"); + } + + return p; + } + + exp_format.justification_options = right_justification; + exp_format.sign_options = sign_always; + exp_format.precision_specified = 0; + exp_format.alternate_form = 0; + exp_format.argument_options = normal_argument; + exp_format.field_width = 0; + exp_format.precision = 1; + exp_format.conversion_char = 'd'; + + exp = (short) ((*(short*) &ld & 0x7FFF) >> 4) - 0x3FF; + p = long2str(exp, buff, exp_format); + if (format.conversion_char == 'a') + *--p = 'p'; + else + *--p = 'P'; + q = (unsigned char*) # + + for (hex_precision = format.precision; hex_precision >= 1; hex_precision--) { + temp_r7 = *(q + (hex_precision / 2 + 1)); + if (hex_precision % 2) { + working_byte = temp_r7 & 0xF; + } else { + working_byte = (temp_r7 >> 4); + } + + if (working_byte < 10) { + working_byte += '0'; + } + else + if (format.conversion_char == 'a') { + working_byte += 'a' - 10; + } + else { + working_byte += 'A' - 10; + } + + *--p = working_byte; + } + + if (TARGET_FLOAT_IMPLICIT_J_BIT){ + if (format.precision || format.alternate_form) { + *--p = '.'; + } + *--p = '1'; + } + + if (format.conversion_char == 'a') { + *--p = 'x'; + } + else { + *--p = 'X'; + } + + *--p = '0'; + + if (*((short*) &ld) & 0x8000) { + *--p = '-'; + } + else if (format.sign_options == sign_always) { + *--p = '+'; + } + else if (format.sign_options == space_holder) { + *--p = ' '; + } + + return p; +} static void round_decimal(decimal* dec, int new_length) { From 74cae4f16eb0d99c2d7f1a8dc032e3af152a8af8 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Tue, 4 Feb 2025 10:11:22 -0800 Subject: [PATCH 285/311] Fully matched MSL files (#555) --- configure.py | 2 +- .../Msl/MSL_C/MSL_Common/ctype.h | 8 +- src/MSL_C.PPCEABI.bare.H/ctype.c | 25 +-- src/MSL_C.PPCEABI.bare.H/strtoul.c | 199 ------------------ 4 files changed, 14 insertions(+), 220 deletions(-) delete mode 100644 src/MSL_C.PPCEABI.bare.H/strtoul.c diff --git a/configure.py b/configure.py index e3d65804..b3b128bd 100644 --- a/configure.py +++ b/configure.py @@ -688,7 +688,7 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/ansi_fp.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/arith.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/buffer_io.c"), - Object(NonMatching, "MSL_C.PPCEABI.bare.H/ctype.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/ctype.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/direct_io.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/file_io.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "MSL_C.PPCEABI.bare.H/FILE_POS.c"), diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ctype.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ctype.h index 0bb0356e..d6a1b29d 100644 --- a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ctype.h +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ctype.h @@ -7,9 +7,9 @@ extern "C" { #define EOF -1L -extern const unsigned char __ctype_map[]; -extern const unsigned char __lower_map[]; -extern const unsigned char __upper_map[]; +extern unsigned char __ctype_map[]; +extern unsigned char __lower_map[]; +extern unsigned char __upper_map[]; #define __control_char 0x01 #define __motion_char 0x02 @@ -31,7 +31,7 @@ extern const unsigned char __upper_map[]; int tolower(int c); int toupper(int c); -inline int isalpha(int c) +inline int _isalpha(int c) { return (int)(__ctype_map[(unsigned char)c] & __letter); } diff --git a/src/MSL_C.PPCEABI.bare.H/ctype.c b/src/MSL_C.PPCEABI.bare.H/ctype.c index e0a797cb..0a0ce04b 100644 --- a/src/MSL_C.PPCEABI.bare.H/ctype.c +++ b/src/MSL_C.PPCEABI.bare.H/ctype.c @@ -12,7 +12,7 @@ #define uhex (hexd | uppc) #define lhex (hexd | lowc) -const unsigned char __ctype_map[256] = { +unsigned char __ctype_map[256] = { // clang-format off ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, motn, motn, motn, motn, motn, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, ctrl, @@ -25,7 +25,7 @@ const unsigned char __ctype_map[256] = { // clang-format on }; -const unsigned char __lower_map[256] = { +unsigned char __lower_map[256] = { // clang-format off 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, @@ -46,7 +46,7 @@ const unsigned char __lower_map[256] = { // clang-format on }; -const unsigned char __upper_map[256] = { +unsigned char __upper_map[256] = { // clang-format off 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, @@ -67,19 +67,12 @@ const unsigned char __upper_map[256] = { // clang-format on }; +int isalpha(int __c) +{ + return __ctype_map[(unsigned char)__c] & __letter; +} + int tolower(int __c) { - if (__c == -1) - return -1; - - return __lower_map[__c & 0xff]; -} - -int toupper(int __c) -{ - - if (__c == -1) - return -1; - - return __upper_map[__c & 0xff]; + return __c == -1 ? -1 : __lower_map[(unsigned char)__c]; } diff --git a/src/MSL_C.PPCEABI.bare.H/strtoul.c b/src/MSL_C.PPCEABI.bare.H/strtoul.c deleted file mode 100644 index e40b9fac..00000000 --- a/src/MSL_C.PPCEABI.bare.H/strtoul.c +++ /dev/null @@ -1,199 +0,0 @@ -#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/strtoul.h" -#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ctype.h" -#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/errno.h" -#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/limits.h" -#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/scanf.h" - -enum scan_states { - start = 0x01, - check_for_zero = 0x02, - leading_zero = 0x04, - need_digit = 0x08, - digit_loop = 0x10, - finished = 0x20, - failure = 0x40 -}; - -#define final_state(scan_state) (scan_state & (finished | failure)) -#define success(scan_state) \ - (scan_state & (leading_zero | digit_loop | finished)) -#define fetch() (count++, (*ReadProc)(ReadProcArg, 0, __GetAChar)) -#define unfetch(c) (*ReadProc)(ReadProcArg, c, __UngetAChar) - -unsigned long __strtoul(int base, int max_width, - int (*ReadProc)(void*, int, int), void* ReadProcArg, - int* chars_scanned, int* negative, int* overflow) -{ - int scan_state = start; - int count = 0; - unsigned long value = 0; - unsigned long value_max = 0; - int c; - - *negative = *overflow = 0; - - if (base < 0 || base == 1 || base > 36 || max_width < 1) { - scan_state = failure; - } else { - c = fetch(); - } - - if (base != 0) - value_max = ULONG_MAX / base; - - while (count <= max_width && c != -1 && !final_state(scan_state)) { - switch (scan_state) { - case start: - if (isspace(c)) { - c = fetch(); - break; - } - - if (c == '+') { - c = fetch(); - } else if (c == '-') { - c = fetch(); - *negative = 1; - } - - scan_state = check_for_zero; - break; - - case check_for_zero: - if (base == 0 || base == 16) { - if (c == '0') { - scan_state = leading_zero; - c = fetch(); - break; - } - } - - scan_state = need_digit; - break; - - case 4: - if (c == 'X' || c == 'x') { - base = 16; - scan_state = need_digit; - c = fetch(); - break; - } - - if (base == 0) - base = 8; - - scan_state = digit_loop; - break; - - case need_digit: - case digit_loop: - if (base == 0) - base = 10; - - if (!value_max) { - value_max = ULONG_MAX / base; - } - - if (isdigit(c)) { - if ((c -= '0') >= base) { - if (scan_state == digit_loop) - scan_state = finished; - else - scan_state = failure; - - c += '0'; - break; - } - } else if (!isalpha(c) || (toupper(c) - 'A' + 10) >= base) { - if (scan_state == digit_loop) - scan_state = finished; - else - scan_state = failure; - - break; - } else { - c = toupper(c) - 'A' + 10; - } - - if (value > value_max) - *overflow = 1; - - value *= base; - - if (c > (ULONG_MAX - value)) - *overflow = 1; - - value += c; - scan_state = digit_loop; - c = fetch(); - break; - } - } - - if (!success(scan_state)) { - value = 0; - count = 0; - } else { - count--; - } - - *chars_scanned = count; - - unfetch(c); - - return value; -} - -unsigned long strtoul(const char* str, char** end, int base) -{ - unsigned long value; - int count, negative, overflow; - - __InStrCtrl isc; - isc.NextChar = (char*)str; - isc.NullCharDetected = 0; - - value = __strtoul(base, 0x7FFFFFFF, &__StringRead, (void*)&isc, &count, - &negative, &overflow); - - if (end) { - *end = (char*)str + count; - } - - if (overflow) { - value = ULONG_MAX; - errno = 0x22; - } else if (negative) { - value = -value; - } - - return value; -} - -long strtol(const char* str, char** end, int base) -{ - unsigned long uvalue; - long svalue; - int count, negative, overflow; - - __InStrCtrl isc; - isc.NextChar = (char*)str; - isc.NullCharDetected = 0; - - uvalue = __strtoul(base, 0x7FFFFFFF, &__StringRead, (void*)&isc, &count, - &negative, &overflow); - - if (end) { - *end = (char*)str + count; - } - - if (overflow || (!negative && uvalue > LONG_MAX) - || (negative && uvalue > -LONG_MIN)) { - svalue = (negative ? -LONG_MIN : LONG_MAX); - errno = ERANGE; - } else { - svalue = (negative ? (long)-uvalue : (long)uvalue); - } - - return svalue; -} From c15173cc669c29590dcc1f1b5117080d8c168c91 Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Tue, 4 Feb 2025 15:00:13 -0500 Subject: [PATCH 286/311] name board/start.c, some m463 (#556) * end naming m463, start naming board/start.c * name everything in start, fix m463 particle names * lol fix --- .vscode/settings.json | 4 +- src/REL/m463Dll/main.c | 46 +-- src/game/board/start.c | 653 ++++++++++++++++++++--------------------- 3 files changed, 352 insertions(+), 351 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 77816237..8b2e4ab0 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -62,7 +62,9 @@ "math_ppc.h": "c", "errno.h": "c", "m427dll.h": "c", - "sprite.h": "c" + "sprite.h": "c", + "gamework_data.h": "c", + "roll.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { diff --git a/src/REL/m463Dll/main.c b/src/REL/m463Dll/main.c index a483b214..159940f0 100755 --- a/src/REL/m463Dll/main.c +++ b/src/REL/m463Dll/main.c @@ -52,8 +52,8 @@ typedef struct { /* 0x48 */ s32 unk48; /* 0x48 */ s32 unk4C; /* 0x50 */ s32 unk50; - /* 0x54 */ s16 particle; - /* 0x58 */ s32 particleTimer; + /* 0x54 */ s16 parMan; + /* 0x58 */ s32 parManTimer; /* 0x5C */ s32 unk5C; } M463PlayerData; // Size 0x60 @@ -625,11 +625,11 @@ void fn_1_4C8(omObjData *object) HuAudFXPlay(0x7F5); } if (temp_r27 == 8) { - if (data->particle == -1) { + if (data->parMan == -1) { lbl_1_bss_58 = data->player; - data->particle = fn_1_4474(); - Hu3DParManPosSet(data->particle, model2->pos.x, model2->pos.y, model2->pos.z); - data->particleTimer = 150; + data->parMan = fn_1_4474(); + Hu3DParManPosSet(data->parMan, model2->pos.x, model2->pos.y, model2->pos.z); + data->parManTimer = 150; } Hu3DModelAttrSet(object->model[1], HU3D_ATTR_DISPOFF); } @@ -685,9 +685,9 @@ void fn_1_4C8(omObjData *object) } } data->unk1C++; - if (data->unk1C == 60 && data->particle != -1) { - Hu3DParManKill(data->particle); - data->particle = -1; + if (data->unk1C == 60 && data->parMan != -1) { + Hu3DParManKill(data->parMan); + data->parMan = -1; } if (data->unk1C == 33) { Hu3DModelAttrSet(lbl_1_bss_32C->model[data->unk44 + 1], HU3D_MOTATTR_PAUSE); @@ -736,13 +736,13 @@ void fn_1_4C8(omObjData *object) : HU3D_MOTATTR_LOOP); data->unk20 = var_r28; } - data->particleTimer -= (data->particleTimer > -1); - if (data->particleTimer == 0) { - if (data->particle != -1) { - Hu3DParManKill(data->particle); - data->particle = -1; + data->parManTimer -= (data->parManTimer > -1); + if (data->parManTimer == 0) { + if (data->parMan != -1) { + Hu3DParManKill(data->parMan); + data->parMan = -1; } - data->particleTimer = -1; + data->parManTimer = -1; } } @@ -969,9 +969,9 @@ void fn_1_45F8(omObjData *arg0) lbl_1_bss_50++; lbl_1_bss_54 = 0; for (i = 0; i < 9; i++) { - if (sp14[i]->particle != -1) { - Hu3DParManKill(sp14[i]->particle); - sp14[i]->particle = -1; + if (sp14[i]->parMan != -1) { + Hu3DParManKill(sp14[i]->parMan); + sp14[i]->parMan = -1; } } break; @@ -1285,8 +1285,8 @@ void fn_1_5850(omObjData *arg0) Hu3DModelLayerSet(arg0->model[i + 2], 1); } lbl_1_bss_58 = data->player; - data->particle = fn_1_4474(); - Hu3DParManPosSet(data->particle, 10000.0f, -10000.0f, 10000.0f); + data->parMan = fn_1_4474(); + Hu3DParManPosSet(data->parMan, 10000.0f, -10000.0f, 10000.0f); arg0->func = fn_1_4C8; } @@ -1369,9 +1369,9 @@ void fn_1_659C(omObjData *arg0) for (var_r31 = 0; var_r31 < 9; var_r31++) { spC[var_r31] = playerObjs[var_r31]->data; - if (spC[var_r31]->particle != -1) { - Hu3DParManKill(spC[var_r31]->particle); - spC[var_r31]->particle = -1; + if (spC[var_r31]->parMan != -1) { + Hu3DParManKill(spC[var_r31]->parMan); + spC[var_r31]->parMan = -1; } } if (WipeStatGet() == 0) { diff --git a/src/game/board/start.c b/src/game/board/start.c index 61b854db..bb8617b7 100755 --- a/src/game/board/start.c +++ b/src/game/board/start.c @@ -25,21 +25,20 @@ typedef struct { struct { - u8 unk00_field0 : 1; - u8 unk00_field1 : 3; - u8 unk00_field2 : 2; - u8 unk00_field3 : 1; - u8 unk00_field4 : 1; + u8 isBoardVisible : 1; + u8 state : 3; + u8 index : 2; + u8 isActionable : 1; + u8 hasRolled : 1; }; - u8 unk01; - u8 unk02; + u8 delay; + u8 time; s8 unk03; - s8 unk04; - char unk05[1]; - s16 unk06; - s16 unk08; - s16 unk0A; - s16 unk0C; + s8 digit; + s16 yRot; + s16 diceMdl; + s16 model; + s16 diceParManId; s8 unk0E; } PlayerStartWork; @@ -134,7 +133,7 @@ static void DestroyStart(void) { } static void ExecStart(void) { - Vec sp8; + Vec pos; s32 i; BoardCameraNearFarSet(100.0f, 23000.0f); @@ -180,8 +179,8 @@ static void ExecStart(void) { for (i = 0; i < 4; i++) { BoardPlayerCornerPosSet(i); } - BoardSpacePosGet(0, GWPlayer->space_curr, &sp8); - BoardPlayerPosSetV(0, &sp8); + BoardSpacePosGet(0, GWPlayer->space_curr, &pos); + BoardPlayerPosSetV(0, &pos); BoardCameraMoveSet(0); BoardCameraViewSet(2); BoardCameraMotionWait(); @@ -225,10 +224,10 @@ static void ExecStart(void) { } static void ShowLogo(void) { - float temp_f28; - float var_f27; - s16 spA; - s16 sp8; + float scale; + float angleF; + s16 angleS; + s16 anglePosY; logoSprGrp = HuSprGrpCreate(1); BoardSpriteCreate(logoSprTbl[GWBoardGet()], 1000, 0, &logoSpr); @@ -237,26 +236,26 @@ static void ShowLogo(void) { HuSprAttrSet(logoSprGrp, 0, 8); HuSprScaleSet(logoSprGrp, 0, 0.01f, 0.01f); HuSprGrpPosSet(logoSprGrp, 288.0f, 240.0f); - for (spA = 0; spA < 90; spA += 4) { - OSs16tof32(&spA, &var_f27); - temp_f28 = sind(var_f27); - HuSprScaleSet(logoSprGrp, 0, temp_f28, temp_f28); + for (angleS = 0; angleS < 90; angleS += 4) { + OSs16tof32(&angleS, &angleF); + scale = sind(angleF); + HuSprScaleSet(logoSprGrp, 0, scale, scale); HuPrcVSleep(); } HuSprScaleSet(logoSprGrp, 0, 1.0f, 1.0f); - for (spA = 0; spA < 540; spA += 4) { - sp8 = spA % 180; - OSs16tof32(&sp8, &var_f27); - temp_f28 = 1.0 + 0.7f * sind(var_f27); - HuSprScaleSet(logoSprGrp, 0, temp_f28, temp_f28); + for (angleS = 0; angleS < 540; angleS += 4) { + anglePosY = angleS % 180; + OSs16tof32(&anglePosY, &angleF); + scale = 1.0 + 0.7f * sind(angleF); + HuSprScaleSet(logoSprGrp, 0, scale, scale); HuPrcVSleep(); } HuSprScaleSet(logoSprGrp, 0, 1.0f, 1.0f); HuPrcSleep(0x78); - for (spA = 0; spA < 90; spA += 4) { - OSs16tof32(&spA, &var_f27); - temp_f28 = cosd(var_f27); - HuSprScaleSet(logoSprGrp, 0, temp_f28, temp_f28); + for (angleS = 0; angleS < 90; angleS += 4) { + OSs16tof32(&angleS, &angleF); + scale = cosd(angleF); + HuSprScaleSet(logoSprGrp, 0, scale, scale); HuPrcVSleep(); } HuSprGrpKill(logoSprGrp); @@ -264,75 +263,75 @@ static void ShowLogo(void) { } static void FocusStart(void) { - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - float var_f31; - u32 var_r31; + Vec boardPos; + Vec offset; + Vec offset2; + Vec camRot; + float zoom; + u32 i; - for (var_f31 = 14000.0f; var_f31 >= 2000.0f; var_f31 -= 50.0f) { - BoardCameraZoomSet(var_f31); + for (zoom = 14000.0f; zoom >= 2000.0f; zoom -= 50.0f) { + BoardCameraZoomSet(zoom); HuPrcVSleep(); } BoardCameraZoomSet(2000.0f); - BoardModelPosGet(camFocus, &sp2C); - sp20.x = spacePos.x + 150.0f; - sp20.y = spacePos.y + 100.0f; - sp20.z = spacePos.z + 150.0f; - VECSubtract(&sp20, &sp2C, &sp14); - sp14.x /= 120.0f; - sp14.y /= 120.0f; - sp14.z /= 120.0f; + BoardModelPosGet(camFocus, &boardPos); + offset.x = spacePos.x + 150.0f; + offset.y = spacePos.y + 100.0f; + offset.z = spacePos.z + 150.0f; + VECSubtract(&offset, &boardPos, &offset2); + offset2.x /= 120.0f; + offset2.y /= 120.0f; + offset2.z /= 120.0f; HuAudSStreamFadeOut(streamStatus, 0x1388); - for (var_r31 = 0; var_r31 < 120; var_r31++) { - VECAdd(&sp14, &sp2C, &sp2C); - BoardModelPosSetV(camFocus, &sp2C); + for (i = 0; i < 120; i++) { + VECAdd(&offset2, &boardPos, &boardPos); + BoardModelPosSetV(camFocus, &boardPos); HuPrcVSleep(); } - BoardModelPosSetV(camFocus, &sp20); - sp8.x = -22.0f; - sp8.y = 0.0f; - sp8.z = 0.0f; - BoardCameraMotionStartEx(camFocus, &sp8, NULL, 1500.0f, -1.0f, 21); + BoardModelPosSetV(camFocus, &offset); + camRot.x = -22.0f; + camRot.y = 0.0f; + camRot.z = 0.0f; + BoardCameraMotionStartEx(camFocus, &camRot, NULL, 1500.0f, -1.0f, 21); } static void CreatePlayerStart(void) { - Vec spC; - float temp_f30; - omObjData *var_r29; - PlayerStartWork *var_r30; + Vec boardPos; + float offsetX; + omObjData *boardObj; + PlayerStartWork *boardData; s8 i; - BoardModelPosGet(camFocus, &spC); + BoardModelPosGet(camFocus, &boardPos); for (i = 0; i < 4; i++) { playerOrderOld[i] = i; - var_r29 = omAddObjEx(boardObjMan, 0x100, 0, 0, -1, ExecPlayerStart); - playerStartObj[i] = var_r29; - var_r30 = OM_GET_WORK_PTR(var_r29, PlayerStartWork); - var_r30->unk00_field0 = 0; - var_r30->unk00_field2 = i; - var_r30->unk03 = -1; - var_r30->unk0A = -1; - var_r30->unk0C = -1; - var_r30->unk00_field1 = 1; - var_r30->unk01 = i * 30; - var_r30->unk00_field3 = 0; - var_r30->unk00_field4 = 0; - var_r30->unk06 = 2; - var_r30->unk04 = 1; - var_r30->unk0E = 0x3C; - var_r30->unk08 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x18), NULL, 0); - BoardModelVisibilitySet(var_r30->unk08, 0); - BoardModelMotionSpeedSet(var_r30->unk08, 0.0f); - OSs8tof32(&i, &temp_f30); - temp_f30 = 135.0f * (temp_f30 - 2.0f + 0.5f); - BoardModelVisibilitySet(BoardPlayerModelGet(playerOrderOld[var_r30->unk00_field2]), 1); - var_r29->trans.x = spC.x + temp_f30; - var_r29->trans.y = spC.y + 700.0f; - var_r29->trans.z = spC.z + 100.0f; - BoardPlayerPosSet(playerOrderOld[var_r30->unk00_field2], var_r29->trans.x, var_r29->trans.y, var_r29->trans.z); - BoardPlayerMotionShiftSet(playerOrderOld[var_r30->unk00_field2], 4, 10.0f, 1.0f, HU3D_MOTATTR_NONE); + boardObj = omAddObjEx(boardObjMan, 0x100, 0, 0, -1, ExecPlayerStart); + playerStartObj[i] = boardObj; + boardData = OM_GET_WORK_PTR(boardObj, PlayerStartWork); + boardData->isBoardVisible = 0; + boardData->index = i; + boardData->unk03 = -1; + boardData->model = -1; + boardData->diceParManId = -1; + boardData->state = 1; + boardData->delay = i * 30; + boardData->isActionable = 0; + boardData->hasRolled = 0; + boardData->yRot = 2; + boardData->digit = 1; + boardData->unk0E = 0x3C; + boardData->diceMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x18), NULL, 0); + BoardModelVisibilitySet(boardData->diceMdl, 0); + BoardModelMotionSpeedSet(boardData->diceMdl, 0.0f); + OSs8tof32(&i, &offsetX); + offsetX = 135.0f * (offsetX - 2.0f + 0.5f); + BoardModelVisibilitySet(BoardPlayerModelGet(playerOrderOld[boardData->index]), 1); + boardObj->trans.x = boardPos.x + offsetX; + boardObj->trans.y = boardPos.y + 700.0f; + boardObj->trans.z = boardPos.z + 100.0f; + BoardPlayerPosSet(playerOrderOld[boardData->index], boardObj->trans.x, boardObj->trans.y, boardObj->trans.z); + BoardPlayerMotionShiftSet(playerOrderOld[boardData->index], 4, 10.0f, 1.0f, HU3D_MOTATTR_NONE); } if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) { BoardMusStart(0, 0xC, 0x7F, 0); @@ -342,107 +341,107 @@ static void CreatePlayerStart(void) { } } -static void ExecPlayerStart(omObjData *arg0) { - PlayerStartWork *temp_r31 = OM_GET_WORK_PTR(arg0, PlayerStartWork); +static void ExecPlayerStart(omObjData *object) { + PlayerStartWork *data = OM_GET_WORK_PTR(object, PlayerStartWork); - if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { - if (hitFX[temp_r31->unk00_field2] != -1) { - HuAudFXStop(hitFX[temp_r31->unk00_field2]); - hitFX[temp_r31->unk00_field2] = -1; + if (data->isBoardVisible != 0 || BoardIsKill()) { + if (hitFX[data->index] != -1) { + HuAudFXStop(hitFX[data->index]); + hitFX[data->index] = -1; } - playerStartObj[temp_r31->unk00_field2] = NULL; - omDelObjEx(HuPrcCurrentGet(), arg0); + playerStartObj[data->index] = NULL; + omDelObjEx(HuPrcCurrentGet(), object); return; } - if (temp_r31->unk01 != 0) { - temp_r31->unk01--; + if (data->delay != 0) { + data->delay--; return; } - switch (temp_r31->unk00_field1) { + switch (data->state) { case 0: break; case 1: - PlayerFall(arg0, temp_r31); + PlayerFall(object, data); break; case 2: - PlayerWaitSpeak(arg0, temp_r31); + PlayerWaitSpeak(object, data); break; case 3: - PlayerDiceFall(arg0, temp_r31); + PlayerDiceFall(object, data); break; case 4: - PlayerDiceRoll(arg0, temp_r31); + PlayerDiceRoll(object, data); break; case 5: - PlayerDiceNumShow(arg0, temp_r31); + PlayerDiceNumShow(object, data); break; case 6: - PlayerDiceNumHide(arg0, temp_r31); + PlayerDiceNumHide(object, data); break; } } -static void PlayerFall(omObjData *arg0, PlayerStartWork *arg1) { +static void PlayerFall(omObjData *object, PlayerStartWork *data) { float temp_f31; - if (arg1->unk00_field3 != 0) { - SetPlayerStartState(playerOrderOld[arg1->unk00_field2], 0); - BoardPlayerIdleSet(playerOrderOld[arg1->unk00_field2]); - if (_CheckFlag(FLAG_ID_MAKE(1, 11)) && arg1->unk00_field2 == 3) { + if (data->isActionable != 0) { + SetPlayerStartState(playerOrderOld[data->index], 0); + BoardPlayerIdleSet(playerOrderOld[data->index]); + if (_CheckFlag(FLAG_ID_MAKE(1, 11)) && data->index == 3) { BoardTutorialHookExec(0, 0); } return; } - if (arg1->unk02 > 200) { - arg1->unk02 = -56; + if (data->time > 200) { + data->time = -56; } - OSu8tof32(&arg1->unk02, &temp_f31); - arg0->trans.y += -0.08166667f * temp_f31 * temp_f31; - if (arg0->trans.y < spacePos.y) { - arg0->trans.y = spacePos.y; - arg1->unk02 = 0; - BoardPlayerMotionShiftSet(playerOrderOld[arg1->unk00_field2], 5, 0.0f, 4.0f, HU3D_MOTATTR_NONE); - arg1->unk01 = 0xC; - arg1->unk00_field3 = 1; + OSu8tof32(&data->time, &temp_f31); + object->trans.y += -0.08166667f * temp_f31 * temp_f31; + if (object->trans.y < spacePos.y) { + object->trans.y = spacePos.y; + data->time = 0; + BoardPlayerMotionShiftSet(playerOrderOld[data->index], 5, 0.0f, 4.0f, HU3D_MOTATTR_NONE); + data->delay = 0xC; + data->isActionable = 1; } - arg1->unk02++; - BoardPlayerPosSet(playerOrderOld[arg1->unk00_field2], arg0->trans.x, arg0->trans.y, arg0->trans.z); + data->time++; + BoardPlayerPosSet(playerOrderOld[data->index], object->trans.x, object->trans.y, object->trans.z); } -static void PlayerWaitSpeak(omObjData *arg0, PlayerStartWork *arg1) { - float var_f31; +static void PlayerWaitSpeak(omObjData *object, PlayerStartWork *data) { + float yRot; - if (arg1->unk02 == 0) { - var_f31 = 180.0f + BoardPlayerRotYGet(playerOrderOld[arg1->unk00_field2]); - BoardPlayerMotBlendSet(playerOrderOld[arg1->unk00_field2], var_f31, 0xF); - arg1->unk02 = 1; + if (data->time == 0) { + yRot = 180.0f + BoardPlayerRotYGet(playerOrderOld[data->index]); + BoardPlayerMotBlendSet(playerOrderOld[data->index], yRot, 0xF); + data->time = 1; return; } - if (BoardPlayerMotBlendCheck(playerOrderOld[arg1->unk00_field2])) { - BoardPlayerIdleSet(playerOrderOld[arg1->unk00_field2]); - SetPlayerStartState(playerOrderOld[arg1->unk00_field2], 0); + if (BoardPlayerMotBlendCheck(playerOrderOld[data->index])) { + BoardPlayerIdleSet(playerOrderOld[data->index]); + SetPlayerStartState(playerOrderOld[data->index], 0); } } -static void PlayerDiceFall(omObjData *arg0, PlayerStartWork *arg1) { - Vec sp8; - float var_f31; - float var_f30; +static void PlayerDiceFall(omObjData *object, PlayerStartWork *data) { + Vec boardPos; + float max; + float min; s32 i; - if (arg1->unk02 == 0) { + if (data->time == 0) { HuAudFXPlay(0x302); - BoardPlayerPosGet(playerOrderOld[arg1->unk00_field2], &sp8); - var_f30 = 250.0f; - var_f31 = 700.0f; - arg0->rot.x = (var_f30 - var_f31) / 30.0f; - sp8.y += var_f31; - BoardModelPosSetV(arg1->unk08, &sp8); - BoardModelVisibilitySet(arg1->unk08, 1); + BoardPlayerPosGet(playerOrderOld[data->index], &boardPos); + min = 250.0f; + max = 700.0f; + object->rot.x = (min - max) / 30.0f; + boardPos.y += max; + BoardModelPosSetV(data->diceMdl, &boardPos); + BoardModelVisibilitySet(data->diceMdl, 1); } else { - if (arg1->unk02 > 30.0f) { + if (data->time > 30.0f) { if (_CheckFlag(FLAG_ID_MAKE(1, 11))) { - if (arg1->unk00_field2 == 3) { + if (data->index == 3) { BoardTutorialHookExec(1, 0); for (i = 0; i < 4; i++) { SetPlayerStartState(playerOrderOld[i], 4); @@ -450,14 +449,14 @@ static void PlayerDiceFall(omObjData *arg0, PlayerStartWork *arg1) { } return; } - SetPlayerStartState(playerOrderOld[arg1->unk00_field2], 4); + SetPlayerStartState(playerOrderOld[data->index], 4); return; } - BoardModelPosGet(arg1->unk08, &sp8); - sp8.y += arg0->rot.x; - BoardModelPosSetV(arg1->unk08, &sp8); + BoardModelPosGet(data->diceMdl, &boardPos); + boardPos.y += object->rot.x; + BoardModelPosSetV(data->diceMdl, &boardPos); } - arg1->unk02++; + data->time++; } static s32 digitMdlTbl[9] = { @@ -472,177 +471,177 @@ static s32 playerOrderMesTbl[3] = { MAKE_MESSID(0x15, 0x15) }; -static void PlayerDiceRoll(omObjData *arg0, PlayerStartWork *arg1) { - Vec sp8; - float var_f30; - u32 var_r28; - s8 var_r29; - s8 temp_r26; +static void PlayerDiceRoll(omObjData *object, PlayerStartWork *data) { + Vec boardPos; + float time; + u32 jumpCheck; + s8 player; + s8 digit; - var_r28 = 0; - if (arg1->unk02 > arg1->unk06) { - arg1->unk02 = 0; - temp_r26 = arg1->unk04; + jumpCheck = 0; + if (data->time > data->yRot) { + data->time = 0; + digit = data->digit; do { - arg1->unk04 = BoardRandMod(9); - } while (arg1->unk04 == temp_r26); - OSs8tof32(&arg1->unk04, &var_f30); - BoardModelMotionTimeSet(arg1->unk08, var_f30 + 0.5f); + data->digit = BoardRandMod(9); + } while (data->digit == digit); + OSs8tof32(&data->digit, &time); + BoardModelMotionTimeSet(data->diceMdl, time + 0.5f); } - if (arg1->unk00_field4 == 0) { - if (GWPlayer[playerOrderOld[arg1->unk00_field2]].com) { + if (data->hasRolled == 0) { + if (GWPlayer[playerOrderOld[data->index]].com) { if (_CheckFlag(FLAG_ID_MAKE(1, 11))) { - if (arg1->unk0E != 0) { - arg1->unk0E--; + if (data->unk0E != 0) { + data->unk0E--; } else { - var_r28 = 0x100; + jumpCheck = PAD_BUTTON_A; } } else if (BoardRandMod(100) < 5) { - var_r28 = 0x100; + jumpCheck = PAD_BUTTON_A; } } else { - var_r28 = HuPadBtnDown[GWPlayer[playerOrderOld[arg1->unk00_field2]].port]; + jumpCheck = HuPadBtnDown[GWPlayer[playerOrderOld[data->index]].port]; } - if (var_r28 == 0x100) { - BoardPlayerDiceJumpStart(playerOrderOld[arg1->unk00_field2]); - arg1->unk00_field4 = 1; + if (jumpCheck == PAD_BUTTON_A) { + BoardPlayerDiceJumpStart(playerOrderOld[data->index]); + data->hasRolled = 1; } } else { - if (BoardPlayerDiceJumpCheck(playerOrderOld[arg1->unk00_field2])) { - SetPlayerStartState(playerOrderOld[arg1->unk00_field2], 5); - arg1->unk06 = 360; - arg0->rot.x = arg0->rot.y = 1.0f; - arg1->unk04 = BoardRandMod(9); + if (BoardPlayerDiceJumpCheck(playerOrderOld[data->index])) { + SetPlayerStartState(playerOrderOld[data->index], 5); + data->yRot = 360; + object->rot.x = object->rot.y = 1.0f; + data->digit = BoardRandMod(9); HuAudFXPlay(0x303); - if (hitFX[arg1->unk00_field2] != -1) { - HuAudFXStop(hitFX[arg1->unk00_field2]); - hitFX[arg1->unk00_field2] = -1; + if (hitFX[data->index] != -1) { + HuAudFXStop(hitFX[data->index]); + hitFX[data->index] = -1; } - var_r29 = 0; - while (var_r29 < 4) { - if (playerOrderNew[var_r29] == arg1->unk04 && var_r29 != playerOrderOld[arg1->unk00_field2]) { - arg1->unk04 = BoardRandMod(9); - var_r29 = 0; + player = 0; + while (player < 4) { + if (playerOrderNew[player] == data->digit && player != playerOrderOld[data->index]) { + data->digit = BoardRandMod(9); + player = 0; } else { - var_r29++; + player++; } } if (_CheckFlag(FLAG_ID_MAKE(1, 11))) { - arg1->unk04 = tutorialRollTbl[arg1->unk00_field2]; + data->digit = tutorialRollTbl[data->index]; } - playerOrderNew[playerOrderOld[arg1->unk00_field2]] = arg1->unk04; - arg1->unk0A = BoardModelCreate(digitMdlTbl[arg1->unk04], NULL, 0); - BoardModelPosGet(arg1->unk08, &sp8); - sp8.x += 50.0 * sin(0.0); - sp8.z += 50.0 * cos(0.0); - BoardModelPosSetV(arg1->unk0A, &sp8); - BoardModelMotionStart(arg1->unk0A, 0, 0); - BoardModelMotionSpeedSet(arg1->unk0A, 0.0f); - BoardModelMotionTimeSet(arg1->unk0A, 0.0f); - BoardModelLayerSet(arg1->unk0A, 2); - arg1->unk0C = BoardDiceEffectCreate(); - Hu3DParManPosSet(arg1->unk0C, sp8.x, sp8.y, sp8.z); - Hu3DParManTimeLimitSet(arg1->unk0C, 0x96); - BoardModelVisibilitySet(arg1->unk08, 0); + playerOrderNew[playerOrderOld[data->index]] = data->digit; + data->model = BoardModelCreate(digitMdlTbl[data->digit], NULL, 0); + BoardModelPosGet(data->diceMdl, &boardPos); + boardPos.x += 50.0 * sin(0.0); + boardPos.z += 50.0 * cos(0.0); + BoardModelPosSetV(data->model, &boardPos); + BoardModelMotionStart(data->model, 0, 0); + BoardModelMotionSpeedSet(data->model, 0.0f); + BoardModelMotionTimeSet(data->model, 0.0f); + BoardModelLayerSet(data->model, 2); + data->diceParManId = BoardDiceEffectCreate(); + Hu3DParManPosSet(data->diceParManId, boardPos.x, boardPos.y, boardPos.z); + Hu3DParManTimeLimitSet(data->diceParManId, 0x96); + BoardModelVisibilitySet(data->diceMdl, 0); return; } } - arg1->unk02++; + data->time++; } -static void PlayerDiceNumShow(omObjData *arg0, PlayerStartWork *arg1) { - float var_f30; +static void PlayerDiceNumShow(omObjData *object, PlayerStartWork *data) { + float yRot; - arg1->unk06 -= 18; - if (arg1->unk06 < 0) { - arg1->unk06 = 0; - SetPlayerStartState(playerOrderOld[arg1->unk00_field2], 0); + data->yRot -= 18; + if (data->yRot < 0) { + data->yRot = 0; + SetPlayerStartState(playerOrderOld[data->index], 0); if (_CheckFlag(FLAG_ID_MAKE(1, 11))) { BoardTutorialHookExec(2, 0); } } - OSs16tof32(&arg1->unk06, &var_f30); - BoardModelRotYSet(arg1->unk0A, var_f30); + OSs16tof32(&data->yRot, &yRot); + BoardModelRotYSet(data->model, yRot); } -static void PlayerDiceNumHide(omObjData *arg0, PlayerStartWork *arg1) { - float var_f28; +static void PlayerDiceNumHide(omObjData *object, PlayerStartWork *data) { + float yRot; - switch (arg1->unk02) { + switch (data->time) { case 0: - arg1->unk06 += 18; - if (arg1->unk06 > 360) { - arg1->unk06 = 0; - arg1->unk02 = 1; - arg0->rot.x = 1.0f; - arg0->rot.y = 1.0f; + data->yRot += 18; + if (data->yRot > 360) { + data->yRot = 0; + data->time = 1; + object->rot.x = 1.0f; + object->rot.y = 1.0f; } - OSs16tof32(&arg1->unk06, &var_f28); - BoardModelRotYSet(arg1->unk0A, var_f28); + OSs16tof32(&data->yRot, &yRot); + BoardModelRotYSet(data->model, yRot); return; case 1: - arg1->unk06 += 9; - if (arg1->unk06 > 180) { - arg1->unk06 = 0; - arg1->unk02 = 2; + data->yRot += 9; + if (data->yRot > 180) { + data->yRot = 0; + data->time = 2; } - OSs16tof32(&arg1->unk06, &var_f28); - arg0->rot.x = 1.0 + 1.3f * sind(var_f28); + OSs16tof32(&data->yRot, &yRot); + object->rot.x = 1.0 + 1.3f * sind(yRot); break; case 2: - arg1->unk06 += 9; - if (arg1->unk06 > 180) { - arg1->unk06 = 179; - arg1->unk02 = 3; + data->yRot += 9; + if (data->yRot > 180) { + data->yRot = 179; + data->time = 3; } - OSs16tof32(&arg1->unk06, &var_f28); - arg0->rot.x = cosd(0.5f * var_f28); - arg0->rot.y = 1.0 + 1.3f * sind(var_f28); + OSs16tof32(&data->yRot, &yRot); + object->rot.x = cosd(0.5f * yRot); + object->rot.y = 1.0 + 1.3f * sind(yRot); break; case 3: - BoardModelVisibilitySet(arg1->unk0A, 0); - arg1->unk00_field0 = 1; + BoardModelVisibilitySet(data->model, 0); + data->isBoardVisible = 1; return; } - BoardModelScaleSet(arg1->unk0A, arg0->rot.x, arg0->rot.y, 1.0f); + BoardModelScaleSet(data->model, object->rot.x, object->rot.y, 1.0f); } -static void SetPlayerStartState(s32 arg0, s32 arg1) { - PlayerStartWork *temp_r31; - omObjData *temp_r30; +static void SetPlayerStartState(s32 player, s32 state) { + PlayerStartWork *data; + omObjData *object; - temp_r30 = playerStartObj[arg0]; - temp_r31 = OM_GET_WORK_PTR(temp_r30, PlayerStartWork); - temp_r31->unk00_field1 = arg1; - temp_r31->unk02 = 0; - temp_r31->unk01 = 0; - switch (arg1) { + object = playerStartObj[player]; + data = OM_GET_WORK_PTR(object, PlayerStartWork); + data->state = state; + data->time = 0; + data->delay = 0; + switch (state) { case 4: - hitFX[arg0] = HuAudFXPlay(0x300); + hitFX[player] = HuAudFXPlay(0x300); break; case 5: break; case 6: - temp_r31->unk06 = 0; + data->yRot = 0; break; } } -static s32 GetPlayerStartState(s32 arg0) { - PlayerStartWork *temp_r31; - omObjData *temp_r30; +static s32 GetPlayerStartState(s32 player) { + PlayerStartWork *data; + omObjData *object; - temp_r30 = playerStartObj[arg0]; - temp_r31 = OM_GET_WORK_PTR(temp_r30, PlayerStartWork); - return temp_r31->unk00_field1; + object = playerStartObj[player]; + data = OM_GET_WORK_PTR(object, PlayerStartWork); + return data->state; } static void ExecStartRoll(void) { s32 sp84[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; - s32 var_r29; - s32 var_r23; - s32 var_r22; - s32 var_r24; + s32 id; + s32 time; + s32 coinCount; + s32 j; s32 i; if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) { @@ -653,11 +652,11 @@ static void ExecStartRoll(void) { HuPrcVSleep(); } _CheckFlag(FLAG_ID_MAKE(1, 11)); - var_r29 = startMesTbl[GWBoardGet()][0]; - BoardWinCreate(2, var_r29, BoardWinPortraitGetStar()); + id = startMesTbl[GWBoardGet()][0]; + BoardWinCreate(2, id, BoardWinPortraitGetStar()); BoardWinWait(); - var_r29 = startMesTbl[GWBoardGet()][1]; - BoardWinCreate(2, var_r29, BoardWinPortraitGetStar()); + id = startMesTbl[GWBoardGet()][1]; + BoardWinCreate(2, id, BoardWinPortraitGetStar()); BoardWinWait(); BoardWinKill(); for (i = 0; i < 4; i++) { @@ -695,11 +694,11 @@ static void ExecStartRoll(void) { BoardTutorialHookExec(3, i); } else { if (i == 0) { - var_r29 = startMesTbl[GWBoardGet()][2]; + id = startMesTbl[GWBoardGet()][2]; } else { - var_r29 = playerOrderMesTbl[i - 1]; + id = playerOrderMesTbl[i - 1]; } - BoardWinCreate(0, var_r29, -1); + BoardWinCreate(0, id, -1); BoardWinInsertMesSet(BoardPlayerGetCharMess(i), i); BoardWinWait(); } @@ -716,23 +715,23 @@ static void ExecStartRoll(void) { BoardPlayerIdleSet(i); } if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) { - var_r29 = startMesTbl[GWBoardGet()][3]; - BoardWinCreate(2, var_r29, BoardWinPortraitGetStar()); + id = startMesTbl[GWBoardGet()][3]; + BoardWinCreate(2, id, BoardWinPortraitGetStar()); BoardWinWait(); HuPrcSleep(30); if (GWBoardGet() == BOARD_ID_EXTRA1 || GWBoardGet() == BOARD_ID_EXTRA2) { - var_r22 = 100; - var_r23 = 1; + coinCount = 100; + time = 1; } else { - var_r22 = 10; - var_r23 = 6; + coinCount = 10; + time = 6; } - for (i = 0; i < var_r22; i++) { - for (var_r24 = 0; var_r24 < 4; var_r24++) { - BoardPlayerCoinsAdd(var_r24, 1); + for (i = 0; i < coinCount; i++) { + for (j = 0; j < 4; j++) { + BoardPlayerCoinsAdd(j, 1); } HuAudFXPlay(7); - HuPrcSleep(var_r23); + HuPrcSleep(time); } for (i = 0; i < 4; i++) { BoardPlayerMotionShiftSet(i, 7, 0.0f, 8.0f, HU3D_MOTATTR_NONE); @@ -749,16 +748,16 @@ static void ExecStartRoll(void) { for (i = 0; i < 4; i++) { BoardPlayerIdleSet(i); } - var_r29 = startMesTbl[GWBoardGet()][4]; - BoardWinCreate(2, var_r29, BoardWinPortraitGetStar()); + id = startMesTbl[GWBoardGet()][4]; + BoardWinCreate(2, id, BoardWinPortraitGetStar()); BoardWinWait(); BoardWinKill(); } } static void InitCamera(void) { - Vec sp14; - Vec sp8; + Vec offset; + Vec rotTarget; camStartFocusPos.x = 0.0f; camStartFocusPos.y = 100.0f; @@ -793,96 +792,96 @@ static void InitCamera(void) { BoardModelPosSetV(camFocus, &camStartFocusPos); if (_CheckFlag(FLAG_ID_MAKE(1, 11))) { BoardCameraMoveSet(0); - sp14.x = spacePos.x + 150.0f; - sp14.y = spacePos.y + 100.0f; - sp14.z = spacePos.z + 150.0f; - BoardModelPosSetV(camFocus, &sp14); - sp8.x = -22.0f; - sp8.y = 0.0f; - sp8.z = 0.0f; - sp14.x = sp14.y = sp14.z = 0.0f; - BoardCameraMotionStartEx(camFocus, &sp8, NULL, 1500.0f, -1.0f, 1); + offset.x = spacePos.x + 150.0f; + offset.y = spacePos.y + 100.0f; + offset.z = spacePos.z + 150.0f; + BoardModelPosSetV(camFocus, &offset); + rotTarget.x = -22.0f; + rotTarget.y = 0.0f; + rotTarget.z = 0.0f; + offset.x = offset.y = offset.z = 0.0f; + BoardCameraMotionStartEx(camFocus, &rotTarget, NULL, 1500.0f, -1.0f, 1); BoardCameraMotionWait(); BoardCameraMoveSet(1); } else { - sp14.x = 0.0f; - sp14.y = 0.0f; - sp14.z = 0.0f; - sp8.x = -70.0f; - sp8.y = 0.0f; - sp8.z = 0.0f; + offset.x = 0.0f; + offset.y = 0.0f; + offset.z = 0.0f; + rotTarget.x = -70.0f; + rotTarget.y = 0.0f; + rotTarget.z = 0.0f; BoardCameraMoveSet(0); - BoardCameraMotionStartEx(camFocus, &sp8, &sp14, 14000.0f, -1.0f, 1); + BoardCameraMotionStartEx(camFocus, &rotTarget, &offset, 14000.0f, -1.0f, 1); BoardCameraMotionWait(); BoardCameraMoveSet(1); } } static void InitHost(void) { - Vec sp8; + Vec newPos; if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) { hostMdl = BoardStarHostMdlGet(); - sp8.x = spacePos.x + 150.0f; - sp8.y = spacePos.y; - sp8.z = spacePos.z - 50.0f; - BoardModelPosSetV(hostMdl, &sp8); + newPos.x = spacePos.x + 150.0f; + newPos.y = spacePos.y; + newPos.z = spacePos.z - 50.0f; + BoardModelPosSetV(hostMdl, &newPos); BoardModelVisibilitySet(hostMdl, 1); BoardModelMotionStart(hostMdl, 1, 0x40000001); } } static void CreateTapWin(void) { - float sp8[2]; - float var_f31; - float var_f30; - s32 var_r31; + float dimensions[2]; + float x; + float y; + s32 id; if (!_CheckFlag(FLAG_ID_MAKE(1, 11))) { - var_r31 = MAKE_MESSID(0x12, 0x14); - HuWinMesMaxSizeGet(1, sp8, var_r31); - var_f31 = -10000.0f; - var_f30 = 368.0f; - tapWin = HuWinCreate(var_f31, var_f30, sp8[0], sp8[1], 0); + id = MAKE_MESSID(0x12, 0x14); + HuWinMesMaxSizeGet(1, dimensions, id); + x = -10000.0f; + y = 368.0f; + tapWin = HuWinCreate(x, y, dimensions[0], dimensions[1], 0); HuWinBGTPLvlSet(tapWin, 0.0f); HuWinMesSpeedSet(tapWin, 0); - HuWinMesSet(tapWin, var_r31); + HuWinMesSet(tapWin, id); HuWinDispOff(tapWin); } } static void OrderPlayers(void) { - s32 temp_r29; - PlayerConfig *temp_r28; - PlayerState *temp_r27; + s32 pOrderTemp; + PlayerConfig *playerCfg; + PlayerState *state; s32 i; s32 j; - temp_r28 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(GWPlayerCfg), MEMORY_DEFAULT_NUM); - temp_r27 = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(GWPlayer), MEMORY_DEFAULT_NUM); + playerCfg = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(GWPlayerCfg), MEMORY_DEFAULT_NUM); + state = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(GWPlayer), MEMORY_DEFAULT_NUM); for (i = 0; i < 4; i++) { playerOrderOld[i] = i; - memcpy(temp_r28 + i, &GWPlayerCfg[i], sizeof(PlayerConfig)); - memcpy(temp_r27 + i, &GWPlayer[i], sizeof(PlayerState)); + memcpy(playerCfg + i, &GWPlayerCfg[i], sizeof(PlayerConfig)); + memcpy(state + i, &GWPlayer[i], sizeof(PlayerState)); } for (i = 0; i < 3; i++) { for (j = 3; j > i; j--) { if (playerOrderNew[j - 1] < playerOrderNew[j]) { - temp_r29 = playerOrderNew[j]; + pOrderTemp = playerOrderNew[j]; playerOrderNew[j] = playerOrderNew[j - 1]; - playerOrderNew[j - 1] = temp_r29; - temp_r29 = playerOrderOld[j]; + playerOrderNew[j - 1] = pOrderTemp; + pOrderTemp = playerOrderOld[j]; playerOrderOld[j] = playerOrderOld[j - 1]; - playerOrderOld[j - 1] = temp_r29; + playerOrderOld[j - 1] = pOrderTemp; } } } for (i = 0; i < 4; i++) { - memcpy(&GWPlayerCfg[i], temp_r28 + playerOrderOld[i], sizeof(PlayerConfig)); - memcpy(&GWPlayer[i], temp_r27 + playerOrderOld[i], sizeof(PlayerState)); + memcpy(&GWPlayerCfg[i], playerCfg + playerOrderOld[i], sizeof(PlayerConfig)); + memcpy(&GWPlayer[i], state + playerOrderOld[i], sizeof(PlayerState)); GWPlayer[i].port = GWPlayerCfg[i].pad_idx; GWPlayerCfg[i].pad_idx = GWPlayerCfg[i].pad_idx; } - HuMemDirectFree(temp_r28); - HuMemDirectFree(temp_r27); + HuMemDirectFree(playerCfg); + HuMemDirectFree(state); } From d340ccf0618f81b0d83a91c7a514f0194fc0a580 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Tue, 4 Feb 2025 17:54:29 -0800 Subject: [PATCH 287/311] Making some Runtime progress (#557) --- config/GMPE01_00/rels/m463Dll/symbols.txt | 2 +- config/GMPE01_00/splits.txt | 4 +- config/GMPE01_00/symbols.txt | 8 +- config/GMPE01_01/splits.txt | 4 +- configure.py | 12 +- .../Runtime/Gecko_ExceptionPPC.h | 231 ++++ .../Runtime/NMWException.h | 22 +- .../PowerPC_EABI_Support/Runtime/exception.h | 38 + src/MSL_C.PPCEABI.bare.H/abort_exit.c | 1 - src/Runtime.PPCEABI.H/GCN_mem_alloc.c | 30 + src/Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp | 1052 +++++++++++++++++ src/Runtime.PPCEABI.H/NMWException.cpp | 157 +++ 12 files changed, 1537 insertions(+), 24 deletions(-) create mode 100755 include/PowerPC_EABI_Support/Runtime/Gecko_ExceptionPPC.h create mode 100755 include/PowerPC_EABI_Support/Runtime/exception.h create mode 100755 src/Runtime.PPCEABI.H/GCN_mem_alloc.c create mode 100755 src/Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp create mode 100755 src/Runtime.PPCEABI.H/NMWException.cpp diff --git a/config/GMPE01_00/rels/m463Dll/symbols.txt b/config/GMPE01_00/rels/m463Dll/symbols.txt index 351f689b..e336c47f 100644 --- a/config/GMPE01_00/rels/m463Dll/symbols.txt +++ b/config/GMPE01_00/rels/m463Dll/symbols.txt @@ -157,7 +157,7 @@ lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x2D0 lbl_1_bss_32C = .bss:0x0000032C; // type:object size:0x4 data:4byte -lbl_1_bss_330 = .bss:0x00000330; // type:object size:0x24 data:4byte +lbl_1_bss_330 = .bss:0x00000330; // type:object size:0x24 scope:local data:4byte lbl_1_bss_354 = .bss:0x00000354; // type:object size:0x4 data:4byte lbl_1_bss_358 = .bss:0x00000358; // type:object size:0x4 data:4byte lbl_1_bss_35C = .bss:0x0000035C; // type:object size:0x1C0 data:4byte diff --git a/config/GMPE01_00/splits.txt b/config/GMPE01_00/splits.txt index d7d8237a..4751f858 100644 --- a/config/GMPE01_00/splits.txt +++ b/config/GMPE01_00/splits.txt @@ -955,7 +955,7 @@ Runtime.PPCEABI.H/NewMore.cp: .data start:0x8013E208 end:0x8013E218 .sdata start:0x801D39A0 end:0x801D39A8 -Runtime.PPCEABI.H/NMWException.cp: +Runtime.PPCEABI.H/NMWException.cpp: extab start:0x80005650 end:0x80005670 extabindex start:0x80005718 end:0x80005748 .text start:0x800E2108 end:0x800E23CC @@ -971,7 +971,7 @@ Runtime.PPCEABI.H/__init_cpp_exceptions.cpp: .dtors start:0x8011DCE0 end:0x8011DCE8 .sdata start:0x801D39B0 end:0x801D39B8 -Runtime.PPCEABI.H/Gecko_ExceptionPPC.cp: +Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp: extab start:0x80005670 end:0x800056E4 extabindex start:0x80005748 end:0x8000579C .text start:0x800E2B24 end:0x800E3F5C diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index d4d7595a..43ae5aae 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -3646,10 +3646,10 @@ __THPAANScaleFactor = .rodata:0x8011E490; // type:object size:0x40 data:byte lbl_8011E4D0 = .rodata:0x8011E4D0; // type:object size:0x10 lbl_8011E4E0 = .rodata:0x8011E4E0; // type:object size:0x10 __constants = .rodata:0x8011E4F0; // type:object size:0x18 scope:local data:double -lbl_8011E508 = .rodata:0x8011E508; // type:object size:0x54 -lbl_8011E55C = .rodata:0x8011E55C; // type:object size:0x14 -lbl_8011E570 = .rodata:0x8011E570; // type:object size:0x10 -lbl_8011E580 = .rodata:0x8011E580; // type:object size:0x20 +lbl_8011E508 = .rodata:0x8011E508; // type:object size:0x54 data:string +lbl_8011E55C = .rodata:0x8011E55C; // type:object size:0x14 data:string +lbl_8011E570 = .rodata:0x8011E570; // type:object size:0x10 data:string +lbl_8011E580 = .rodata:0x8011E580; // type:object size:0x20 data:string lbl_8011E5A0 = .rodata:0x8011E5A0; // type:object size:0x38 lbl_8011E5D8 = .rodata:0x8011E5D8; // type:object size:0x40 fix_pool_sizes = .rodata:0x8011E618; // type:object size:0x18 scope:local data:4byte diff --git a/config/GMPE01_01/splits.txt b/config/GMPE01_01/splits.txt index d7d8237a..4751f858 100644 --- a/config/GMPE01_01/splits.txt +++ b/config/GMPE01_01/splits.txt @@ -955,7 +955,7 @@ Runtime.PPCEABI.H/NewMore.cp: .data start:0x8013E208 end:0x8013E218 .sdata start:0x801D39A0 end:0x801D39A8 -Runtime.PPCEABI.H/NMWException.cp: +Runtime.PPCEABI.H/NMWException.cpp: extab start:0x80005650 end:0x80005670 extabindex start:0x80005718 end:0x80005748 .text start:0x800E2108 end:0x800E23CC @@ -971,7 +971,7 @@ Runtime.PPCEABI.H/__init_cpp_exceptions.cpp: .dtors start:0x8011DCE0 end:0x8011DCE8 .sdata start:0x801D39B0 end:0x801D39B8 -Runtime.PPCEABI.H/Gecko_ExceptionPPC.cp: +Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp: extab start:0x80005670 end:0x800056E4 extabindex start:0x80005748 end:0x8000579C .text start:0x800E2B24 end:0x800E3F5C diff --git a/configure.py b/configure.py index b3b128bd..6d5e0024 100644 --- a/configure.py +++ b/configure.py @@ -209,7 +209,7 @@ else: cflags_runtime = [ *cflags_base, "-use_lmw_stmw on", - "-str reuse,pool,readonly", + "-str reuse,readonly", "-common off", "-inline auto,deferred", ] @@ -668,11 +668,15 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/__mem.c"), Object(NonMatching, "Runtime.PPCEABI.H/New.cp"), Object(NonMatching, "Runtime.PPCEABI.H/NewMore.cp"), - Object(NonMatching, "Runtime.PPCEABI.H/NMWException.cp"), + Object(NonMatching, "Runtime.PPCEABI.H/NMWException.cpp"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/runtime.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/__init_cpp_exceptions.cpp"), - Object(NonMatching, "Runtime.PPCEABI.H/Gecko_ExceptionPPC.cp"), - Object(NonMatching, "Runtime.PPCEABI.H/GCN_mem_alloc.c"), + Object( + NonMatching, + "Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp", + extra_cflags=["-Cpp_exceptions on"] + ), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/GCN_mem_alloc.c"), ], }, { diff --git a/include/PowerPC_EABI_Support/Runtime/Gecko_ExceptionPPC.h b/include/PowerPC_EABI_Support/Runtime/Gecko_ExceptionPPC.h new file mode 100755 index 00000000..a864ea0d --- /dev/null +++ b/include/PowerPC_EABI_Support/Runtime/Gecko_ExceptionPPC.h @@ -0,0 +1,231 @@ +#ifndef _RUNTIME_GECKO_EXCEPTIONPPC_H +#define _RUNTIME_GECKO_EXCEPTIONPPC_H + +#include + +typedef u8 exaction_type; + +#define EXACTION_ENDBIT 0x80 +#define EXACTION_MASK 0x7F + +// EXAction structs + +#define EXACTION_ENDOFLIST 0 +#define EXACTION_BRANCH 1 + +typedef struct ex_branch { + exaction_type action; + u8 unused; + u16 target; +} ex_branch; + +#define EXACTION_DESTROYLOCAL 2 + +typedef struct ex_destroylocal { + exaction_type action; + u8 unused; + s16 local; + void* dtor; +} ex_destroylocal; + +#define EXACTION_DESTROYLOCALCOND 3 + +typedef struct ex_destroylocalcond { + exaction_type action; + u8 dlc_field; + s16 cond; + s16 local; + void* dtor; +} ex_destroylocalcond; + +#define ex_destroylocalcond_MakeField(regcond) (((regcond) << 7)) +#define ex_destroylocalcond_GetRegCond(field) ((field) >> 7) + +#define EXACTION_DESTROYLOCALPOINTER 4 + +typedef struct ex_destroylocalpointer { + exaction_type action; + u8 dlp_field; + s16 pointer; + void* dtor; +} ex_destroylocalpointer; + +#define ex_destroylocalpointer_MakeField(regpointer) (((regpointer) << 7)) +#define ex_destroylocalpointer_GetRegPointer(field) ((field) >> 7) + +#define EXACTION_DESTROYLOCALARRAY 5 + +typedef struct ex_destroylocalarray { + exaction_type action; + u8 unused; + s16 localarray; + u16 elements; + u16 element_size; + void* dtor; +} ex_destroylocalarray; + +#define EXACTION_DESTROYBASE 6 +#define EXACTION_DESTROYMEMBER 7 + +typedef struct ex_destroymember { + exaction_type action; + u8 dm_field; + s16 objectptr; + s32 offset; + void* dtor; +} ex_destroymember; + +#define ex_destroymember_MakeField(regpointer) (((regpointer) << 7)) +#define ex_destroymember_GetRegPointer(field) ((field) >> 7) + +#define EXACTION_DESTROYMEMBERCOND 8 + +typedef struct ex_destroymembercond { + exaction_type action; + u8 dmc_field; + s16 cond; + s16 objectptr; + s32 offset; + void* dtor; +} ex_destroymembercond; + +#define ex_destroymembercond_MakeField(regcond, regpointer) (((regcond) << 7) | (((regpointer)&0x1) << 6)) +#define ex_destroymembercond_GetRegCond(field) ((field) >> 7) +#define ex_destroymembercond_GetRegPointer(field) (((field) >> 6) & 0x1) + +#define EXACTION_DESTROYMEMBERARRAY 9 + +typedef struct ex_destroymemberarray { + exaction_type action; + u8 dma_field; + s16 objectptr; + s32 offset; + s32 elements; + s32 element_size; + void* dtor; +} ex_destroymemberarray; + +#define ex_destroymemberarray_MakeField(regpointer) (((regpointer) << 7)) +#define ex_destroymemberarray_GetRegPointer(field) ((field) >> 7) + +#define EXACTION_DELETEPOINTER 10 + +typedef struct ex_deletepointer { + exaction_type action; + u8 dp_field; + s16 objectptr; + void* deletefunc; +} ex_deletepointer; + +#define ex_deletepointer_MakeField(regpointer) (((regpointer) << 7)) +#define ex_deletepointer_GetRegPointer(field) ((field) >> 7) + +#define EXACTION_DELETEPOINTERCOND 11 + +typedef struct ex_deletepointercond { + exaction_type action; + u8 dpc_field; + s16 cond; + s16 objectptr; + void* deletefunc; +} ex_deletepointercond; + +#define ex_deletepointercond_MakeField(regcond, regpointer) (((regcond) << 7) | (((regpointer)&0x1) << 6)) +#define ex_deletepointercond_GetRegCond(field) ((field) >> 7) +#define ex_deletepointercond_GetRegPointer(field) (((field) >> 6) & 0x1) + +#define EXACTION_CATCHBLOCK 12 + +typedef struct ex_catchblock { + exaction_type action; + u8 unused; + char* catch_type; + u16 catch_pcoffset; + s16 cinfo_ref; +} ex_catchblock; + +#define EXACTION_ACTIVECATCHBLOCK 13 + +typedef struct ex_activecatchblock { + exaction_type action; + u8 unused; + s16 cinfo_ref; +} ex_activecatchblock; + +#define EXACTION_TERMINATE 14 + +typedef struct ex_terminate { + exaction_type action; + u8 unused; +} ex_terminate; + +#define EXACTION_SPECIFICATION 15 + +typedef struct ex_specification { + exaction_type action; + u8 unused; + u16 specs; + s32 pcoffset; + s32 cinfo_ref; + char* spec[]; +} ex_specification; + +#define EXACTION_CATCHBLOCK_32 16 + +typedef struct ex_catchblock_32 { + exaction_type action; + u8 unused; + char* catch_type; + s32 catch_pcoffset; + s32 cinfo_ref; +} ex_catchblock_32; + +// Other structs + +typedef struct ExceptionRangeSmall { + u16 start; + u16 end; + u16 action; +} ExceptionRangeSmall; + +typedef struct ExceptionTableSmall { + u16 et_field; + ExceptionRangeSmall ranges[0]; +} ExceptionTableSmall; + +typedef struct ExceptionRangeLarge { + u32 start; + u16 size; + u16 action; +} ExceptionRangeLarge; + +typedef struct ExceptionTableLarge { + u16 et_field; + u16 et_field2; + ExceptionRangeLarge ranges[]; +} ExceptionTableLarge; + +#define ET_MakeField(savedGPRs, savedFPRs, savedCR, hasframeptr, isLarge) \ + (((savedGPRs) << 11) | ((savedFPRs & 0x1f) << 6) | ((savedCR & 0x1) << 5) | ((hasframeptr & 0x1) << 4) | ((isLarge & 1) << 3)) + +#define ET_GetSavedGPRs(field) ((field) >> 11) +#define ET_GetSavedFPRs(field) (((field) >> 6) & 0x1f) +#define ET_GetSavedCR(field) (((field) >> 5) & 0x1) +#define ET_GetHasFramePtr(field) (((field) >> 4) & 0x1) +#define ET_IsLargeTable(field) (((field) >> 3) & 0x1) +#define ET_ClearLargeBit(field) ((field) & ~(1 << 3)) +#define ET_SetLargeBit(field) ((field) | (1 << 3)) + +#define ET_HasElfVector(field) (((field) >> 1) & 0x1) + +typedef struct ExceptionTableIndex { + u32 functionoffset; + u32 eti_field; + u32 exceptionoffset; +} ExceptionTableIndex; + +#define ETI_MakeField(direct, fsize) ((((s32)(direct)) << 31) | ((fsize)&0x7fffffff)) +#define ETI_GetDirectStore(field) ((field) >> 31) +#define ETI_GetFunctionSize(field) ((field)&0x7fffffff) + +#endif diff --git a/include/PowerPC_EABI_Support/Runtime/NMWException.h b/include/PowerPC_EABI_Support/Runtime/NMWException.h index 2358f785..aba83f4d 100644 --- a/include/PowerPC_EABI_Support/Runtime/NMWException.h +++ b/include/PowerPC_EABI_Support/Runtime/NMWException.h @@ -1,7 +1,15 @@ #ifndef _NMWEXCEPTION #define _NMWEXCEPTION -typedef short vbase_ctor_arg_type; +#include "types.h" +#include "PowerPC_EABI_Support/Runtime/exception.h" +#include "PowerPC_EABI_Support/Runtime/__ppc_eabi_linker.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef s16 vbase_ctor_arg_type; typedef char local_cond_type; typedef struct CatchInfo { @@ -9,7 +17,7 @@ typedef struct CatchInfo { void* typeinfo; void* dtor; void* sublocation; - long pointercopy; + s32 pointercopy; void* stacktop; } CatchInfo; @@ -19,18 +27,12 @@ typedef struct DestructorChain { void* object; } DestructorChain; -#ifdef __cplusplus -extern "C" { -#endif - -extern void* __register_global_object(void* object, void* destructor, - void* registration); +extern void* __register_global_object(void* object, void* destructor, void* registration); extern void __destroy_global_chain(void); extern void __end__catch(CatchInfo* catchinfo); extern void __throw(char* throwtype, void* location, void* dtor); -extern char __throw_catch_compare(const char* throwtype, const char* catchtype, - long* offset_result); +extern char __throw_catch_compare(const char* throwtype, const char* catchtype, s32* offset_result); extern void __unexpected(CatchInfo* catchinfo); extern int __register_fragment(struct __eti_init_info* info, char* TOC); diff --git a/include/PowerPC_EABI_Support/Runtime/exception.h b/include/PowerPC_EABI_Support/Runtime/exception.h new file mode 100755 index 00000000..2530b3de --- /dev/null +++ b/include/PowerPC_EABI_Support/Runtime/exception.h @@ -0,0 +1,38 @@ +#ifndef _EXCEPTION +#define _EXCEPTION + +namespace std { +class exception { +public: + exception() { } + virtual ~exception() { } + virtual const char* what() const { return "exception"; } +}; + +class bad_exception : public exception { +public: + bad_exception() { } + virtual ~bad_exception() { } + virtual const char* what() const { return "bad_exception"; } +}; + +typedef void (*unexpected_handler)(); +unexpected_handler set_unexpected(unexpected_handler handler); +void unexpected(); + +typedef void (*terminate_handler)(); +terminate_handler set_terminate(terminate_handler handler); +void terminate(); + +} // namespace std + +using std::bad_exception; +using std::exception; +using std::set_terminate; +using std::set_unexpected; +using std::terminate; +using std::terminate_handler; +using std::unexpected; +using std::unexpected_handler; + +#endif diff --git a/src/MSL_C.PPCEABI.bare.H/abort_exit.c b/src/MSL_C.PPCEABI.bare.H/abort_exit.c index b54f4742..4432d145 100644 --- a/src/MSL_C.PPCEABI.bare.H/abort_exit.c +++ b/src/MSL_C.PPCEABI.bare.H/abort_exit.c @@ -2,7 +2,6 @@ #include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/critical_regions.h" #include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/signal.h" #include "stddef.h" -#include "PowerPC_EABI_Support/Runtime/NMWException.h" void _ExitProcess(); diff --git a/src/Runtime.PPCEABI.H/GCN_mem_alloc.c b/src/Runtime.PPCEABI.H/GCN_mem_alloc.c new file mode 100755 index 00000000..c36465e2 --- /dev/null +++ b/src/Runtime.PPCEABI.H/GCN_mem_alloc.c @@ -0,0 +1,30 @@ +#include "dolphin/os.h" + +inline static void InitDefaultHeap(void) { + void* arenaLo; + void* arenaHi; + + OSReport("GCN_Mem_Alloc.c : InitDefaultHeap. No Heap Available\n"); + OSReport("Metrowerks CW runtime library initializing default heap\n"); + + arenaLo = OSGetArenaLo(); + arenaHi = OSGetArenaHi(); + + arenaLo = OSInitAlloc(arenaLo, arenaHi, 1); + OSSetArenaLo(arenaLo); + + arenaLo = OSRoundUpPtr(arenaLo, 0x20); + arenaHi = OSRoundDownPtr(arenaHi, 0x20); + + OSSetCurrentHeap(OSCreateHeap(arenaLo, arenaHi)); + OSSetArenaLo(arenaLo = arenaHi); +} + +/* 80362914-803629CC 35D254 00B8+00 0/0 1/1 0/0 .text __sys_free */ +void __sys_free(void* p) { + if (__OSCurrHeap == -1) { + InitDefaultHeap(); + } + + OSFreeToHeap(__OSCurrHeap, p); +} diff --git a/src/Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp b/src/Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp new file mode 100755 index 00000000..faa1385f --- /dev/null +++ b/src/Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp @@ -0,0 +1,1052 @@ +#include "PowerPC_EABI_Support/Runtime/MWCPlusLib.h" +#include "PowerPC_EABI_Support/Runtime/Gecko_ExceptionPPC.h" +#include "PowerPC_EABI_Support/Runtime/NMWException.h" +#include "PowerPC_EABI_Support/Runtime/__ppc_eabi_linker.h" + +#define RETURN_ADDRESS 4 + +union MWE_GeckoVector64 { + f64 d; + f32 f[2]; +}; + +typedef union MWE_GeckoVector64 MWE_GeckoVector64; + +struct GeckoFPRContext { + f64 d; + MWE_GeckoVector64 v; +}; + +typedef struct GeckoFPRContext GeckoFPRContext; + +typedef struct ThrowContext { + GeckoFPRContext FPR[32]; + s32 GPR[32]; + s32 CR; + char* SP; + char* FP; + char* throwSP; + char* returnaddr; + char* throwtype; + void* location; + void* dtor; + CatchInfo* catchinfo; +} ThrowContext; + +typedef ThrowContext* ThrowContextPtr; + +typedef struct MWExceptionInfo { + ExceptionTableSmall* exception_record; + char* current_function; + char* action_pointer; + char* code_section; + char* data_section; + char* TOC; +} MWExceptionInfo; + +typedef struct FragmentInfo { + ExceptionTableIndex* exception_start; + ExceptionTableIndex* exception_end; + char* code_start; + char* code_end; + char* data_start; + char* data_end; + char* TOC; + int active; +} FragmentInfo; + +typedef struct ProcessInfo { + __eti_init_info* exception_info; + char* TOC; + int active; +} ProcessInfo; + +typedef struct ActionIterator { + MWExceptionInfo info; + char* current_SP; + char* current_FP; + s32 current_R31; +} ActionIterator; + +#define MAXFRAGMENTS 1 +static ProcessInfo fragmentinfo[MAXFRAGMENTS]; + +typedef void (*DeleteFunc)(void*); + +/** + * @note Address: 0x800C2374 + * @note Size: 0x34 + */ +int __register_fragment(struct __eti_init_info* info, char* TOC) +{ + + ProcessInfo* f = fragmentinfo; + int i; + + for (i = 0; i < MAXFRAGMENTS; i++, f++) { + if (f->active == 0) { + f->exception_info = info; + f->TOC = TOC; + f->active = 1; + return i; + } + } + + return -1; +} + +/** + * @note Address: 0x800C2340 + * @note Size: 0x34 + */ +void __unregister_fragment(int fragmentID) +{ + ProcessInfo* f; + + if (fragmentID >= 0 && fragmentID < MAXFRAGMENTS) { + f = &fragmentinfo[fragmentID]; + f->exception_info = 0; + f->TOC = 0; + f->active = 0; + } +} + +/** + * @note Address: N/A + * @note Size: 0x88 + */ +static inline int ExPPC_FindExceptionFragment(char* returnaddr, FragmentInfo* frag) +{ + ProcessInfo* f; + int i; + __eti_init_info* eti_info; + + for (i = 0, f = fragmentinfo; i < MAXFRAGMENTS; ++i, ++f) { + if (f->active) { + eti_info = f->exception_info; + while (1) { + if (eti_info->code_size == 0) + break; + if (returnaddr >= eti_info->code_start && returnaddr < (char*)eti_info->code_start + eti_info->code_size) { + frag->exception_start = (ExceptionTableIndex*)eti_info->eti_start; + frag->exception_end = (ExceptionTableIndex*)eti_info->eti_end; + frag->code_start = 0; + frag->code_end = 0; + frag->data_start = 0; + frag->data_end = 0; + frag->TOC = f->TOC; + frag->active = f->active; + return 1; + } + eti_info++; + } + } + } + + return 0; +} + +/** + * @note Address: N/A + * @note Size: 0x204 + */ +static void ExPPC_FindExceptionRecord(char* returnaddr, MWExceptionInfo* info) +{ + FragmentInfo* fragment; + FragmentInfo frag; + ExceptionTableIndex *exceptionindex, *p; + u32 returnoffset; + s32 i, m, n; + + info->exception_record = 0; + info->action_pointer = 0; + + if ((ExPPC_FindExceptionFragment(returnaddr, &frag)) == 0) + return; + fragment = &frag; + + info->code_section = fragment->code_start; + info->data_section = fragment->data_start; + info->TOC = fragment->TOC; + + returnoffset = returnaddr - fragment->code_start; + exceptionindex = fragment->exception_start; + for (i = 0, n = fragment->exception_end - fragment->exception_start;;) { + if (i > n) + return; + p = &exceptionindex[m = (i + n) / 2]; + + if (returnoffset < p->functionoffset) { + n = m - 1; + } else if (returnoffset > p->functionoffset + ETI_GetFunctionSize(p->eti_field)) { + i = m + 1; + } else + break; + } + info->current_function = fragment->code_start + p->functionoffset; + info->exception_record = ETI_GetDirectStore(p->eti_field) ? (ExceptionTableSmall*)(&p->exceptionoffset) + : (ExceptionTableSmall*)(fragment->data_start + p->exceptionoffset); + + returnoffset -= p->functionoffset; + + if (ET_IsLargeTable(info->exception_record->et_field)) { + ExceptionTableLarge* etl = (ExceptionTableLarge*)info->exception_record; + ExceptionRangeLarge* erl; + + for (erl = etl->ranges; erl->start != 0; erl++) { + u32 range_end = erl->start + (erl->size * 4); + + if (erl->start <= returnoffset && range_end >= returnoffset) { + info->action_pointer = (char*)etl + erl->action; + break; + } + } + } else { + ExceptionTableSmall* ets = (ExceptionTableSmall*)info->exception_record; + ExceptionRangeSmall* ers; + + for (ers = ets->ranges; ers->start != 0; ers++) { + if (ers->start <= returnoffset && ers->end >= returnoffset) { + info->action_pointer = (char*)ets + ers->action; + break; + } + } + } +} + +/** + * @note Address: N/A + * @note Size: 0x18 + */ +static inline s32 ExPPC_PopR31(char* SP, MWExceptionInfo* info) +{ + f64* FPR_save_area; + s32* GPR_save_area; + int saved_GPRs, saved_FPRs; + + saved_FPRs = ET_GetSavedFPRs(info->exception_record->et_field); + FPR_save_area = (f64*)(SP - saved_FPRs * 8); + saved_GPRs = ET_GetSavedGPRs(info->exception_record->et_field); + GPR_save_area = (s32*)FPR_save_area; + + return GPR_save_area[-1]; +} + +/** + * @note Address: N/A + * @note Size: 0x20 + */ +static inline exaction_type ExPPC_CurrentAction(const ActionIterator* iter) +{ + if (iter->info.action_pointer == 0) { + return EXACTION_ENDOFLIST; + } + + return ((ex_destroylocal*)iter->info.action_pointer)->action & EXACTION_MASK; +} + +/** + * @note Address: N/A + * @note Size: 0x1C0 + */ +static exaction_type ExPPC_NextAction(ActionIterator* iter) +{ + exaction_type action; + + for (;;) { + if (iter->info.action_pointer == 0 || ((action = ((ex_destroylocal*)iter->info.action_pointer)->action) & EXACTION_ENDBIT) != 0) { + char *return_addr, *callers_SP; + + callers_SP = *(char**)iter->current_SP; + + if (ET_GetSavedGPRs(iter->info.exception_record->et_field)) { + iter->current_R31 = ExPPC_PopR31(callers_SP, &iter->info); + } + + return_addr = *(char**)(callers_SP + RETURN_ADDRESS); + + ExPPC_FindExceptionRecord(return_addr, &iter->info); + + if (iter->info.exception_record == 0) { + terminate(); + } + + iter->current_SP = callers_SP; + iter->current_FP = (ET_GetHasFramePtr(iter->info.exception_record->et_field)) ? (char*)iter->current_R31 : iter->current_SP; + + if (iter->info.action_pointer == 0) + continue; + } else { + switch (action) { + case EXACTION_DESTROYLOCAL: + iter->info.action_pointer += sizeof(ex_destroylocal); + break; + case EXACTION_DESTROYLOCALCOND: + iter->info.action_pointer += sizeof(ex_destroylocalcond); + break; + case EXACTION_DESTROYLOCALPOINTER: + iter->info.action_pointer += sizeof(ex_destroylocalpointer); + break; + case EXACTION_DESTROYLOCALARRAY: + iter->info.action_pointer += sizeof(ex_destroylocalarray); + break; + case EXACTION_DESTROYBASE: + case EXACTION_DESTROYMEMBER: + iter->info.action_pointer += sizeof(ex_destroymember); + break; + case EXACTION_DESTROYMEMBERCOND: + iter->info.action_pointer += sizeof(ex_destroymembercond); + break; + case EXACTION_DESTROYMEMBERARRAY: + iter->info.action_pointer += sizeof(ex_destroymemberarray); + break; + case EXACTION_DELETEPOINTER: + iter->info.action_pointer += sizeof(ex_deletepointer); + break; + case EXACTION_DELETEPOINTERCOND: + iter->info.action_pointer += sizeof(ex_deletepointercond); + break; + case EXACTION_CATCHBLOCK: + iter->info.action_pointer += sizeof(ex_catchblock); + break; + case EXACTION_CATCHBLOCK_32: + iter->info.action_pointer += sizeof(ex_catchblock_32); + break; + case EXACTION_ACTIVECATCHBLOCK: + iter->info.action_pointer += sizeof(ex_activecatchblock); + break; + case EXACTION_SPECIFICATION: + iter->info.action_pointer + += sizeof(ex_specification) + ((ex_specification*)iter->info.action_pointer)->specs * sizeof(void*); + break; + default: + terminate(); + } + } + + action = ((ex_destroylocal*)iter->info.action_pointer)->action & EXACTION_MASK; + + if (action == EXACTION_BRANCH) { + iter->info.action_pointer = ((char*)iter->info.exception_record) + ((ex_branch*)iter->info.action_pointer)->target; + action = ((ex_destroylocal*)iter->info.action_pointer)->action & EXACTION_MASK; + } + return action; + } +} + +/** + * @note Address: N/A + * @note Size: 0x248 + */ +static char* ExPPC_PopStackFrame(ThrowContext* context, MWExceptionInfo* info) +{ + char *SP, *callers_SP; + f64* FPR_save_area; + s32* GPR_save_area; + int saved_GPRs, saved_FPRs; + GeckoFPRContext* Vector_save_area; + int i, j; + + SP = context->SP; + callers_SP = *(char**)SP; + saved_FPRs = ET_GetSavedFPRs(info->exception_record->et_field); + + if (ET_HasElfVector(info->exception_record->et_field)) { + Vector_save_area = (GeckoFPRContext*)(callers_SP - saved_FPRs * 16); + FPR_save_area = (f64*)Vector_save_area; + } else { + FPR_save_area = (f64*)(callers_SP - saved_FPRs * 8); + } + + if (ET_HasElfVector(info->exception_record->et_field)) { + for (i = 32 - saved_FPRs, j = 0; i < 32; ++i, ++j) { + context->FPR[i].v.f[0] = Vector_save_area[j].v.f[0]; + context->FPR[i].v.f[1] = Vector_save_area[j].v.f[1]; + context->FPR[i].d = Vector_save_area[j].d; + } + } else { + for (i = 32 - saved_FPRs, j = 0; i < 32; ++i, ++j) { + context->FPR[i].d = FPR_save_area[j]; + } + } + + saved_GPRs = ET_GetSavedGPRs(info->exception_record->et_field); + GPR_save_area = (s32*)FPR_save_area; + GPR_save_area -= saved_GPRs; + + for (i = 32 - saved_GPRs, j = 0; i < 32; ++i, ++j) { + context->GPR[i] = GPR_save_area[j]; + } + + context->SP = callers_SP; + return *(char**)(callers_SP + RETURN_ADDRESS); +} + +/** + * @note Address: N/A + * @note Size: 0x3C + */ +static inline void ExPPC_DestroyLocal(ThrowContext* context, const ex_destroylocal* ex) { DTORCALL_COMPLETE(ex->dtor, context->FP + ex->local); } + +/** + * @note Address: N/A + * @note Size: 0x74 + */ +static inline void ExPPC_DestroyLocalCond(ThrowContext* context, const ex_destroylocalcond* ex) +{ + int cond = ex_destroylocalcond_GetRegCond(ex->dlc_field) ? (local_cond_type)context->GPR[ex->cond] + : *(local_cond_type*)(context->FP + ex->cond); + + if (cond) { + DTORCALL_COMPLETE(ex->dtor, context->FP + ex->local); + } +} + +/** + * @note Address: N/A + * @note Size: 0x58 + */ +static inline void ExPPC_DestroyLocalPointer(ThrowContext* context, const ex_destroylocalpointer* ex) +{ + void* pointer + = ex_destroylocalpointer_GetRegPointer(ex->dlp_field) ? (void*)context->GPR[ex->pointer] : *(void**)(context->FP + ex->pointer); + + DTORCALL_COMPLETE(ex->dtor, pointer); +} + +/** + * @note Address: N/A + * @note Size: 0x84 + */ +static inline void ExPPC_DestroyLocalArray(ThrowContext* context, const ex_destroylocalarray* ex) +{ + char* ptr = context->FP + ex->localarray; + s32 n = ex->elements; + s32 size = ex->element_size; + + for (ptr = ptr + size * n; n > 0; n--) { + ptr -= size; + DTORCALL_COMPLETE(ex->dtor, ptr); + } +} + +/** + * @note Address: N/A + * @note Size: 0x64 + */ +static inline void ExPPC_DestroyMember(ThrowContext* context, const ex_destroymember* ex) +{ + char* objectptr + = ex_destroymember_GetRegPointer(ex->dm_field) ? (char*)context->GPR[ex->objectptr] : *(char**)(context->FP + ex->objectptr); + + DTORCALL_COMPLETE(ex->dtor, objectptr + ex->offset); +} + +/** + * @note Address: N/A + * @note Size: 0x64 + */ +static inline void ExPPC_DestroyBase(ThrowContext* context, const ex_destroymember* ex) +{ + char* objectptr + = ex_destroymember_GetRegPointer(ex->dm_field) ? (char*)context->GPR[ex->objectptr] : *(char**)(context->FP + ex->objectptr); + + DTORCALL_PARTIAL(ex->dtor, objectptr + ex->offset); +} + +/** + * @note Address: N/A + * @note Size: 0x98 + */ +static inline void ExPPC_DestroyMemberCond(ThrowContext* context, const ex_destroymembercond* ex) +{ + char* objectptr + = ex_destroymembercond_GetRegPointer(ex->dmc_field) ? (char*)context->GPR[ex->objectptr] : *(char**)(context->FP + ex->objectptr); + int cond = ex_destroymembercond_GetRegCond(ex->dmc_field) ? (vbase_ctor_arg_type)context->GPR[ex->cond] + : *(vbase_ctor_arg_type*)(context->FP + ex->cond); + + if (cond) { + DTORCALL_PARTIAL(ex->dtor, objectptr + ex->offset); + } +} + +/** + * @note Address: N/A + * @note Size: 0xAC + */ +static inline void ExPPC_DestroyMemberArray(ThrowContext* context, const ex_destroymemberarray* ex) +{ + char* ptr + = ex_destroymemberarray_GetRegPointer(ex->dma_field) ? (char*)context->GPR[ex->objectptr] : *(char**)(context->FP + ex->objectptr); + s32 n = ex->elements; + s32 size = ex->element_size; + + ptr += ex->offset; + + for (ptr = ptr + size * n; n > 0; n--) { + ptr -= size; + DTORCALL_COMPLETE(ex->dtor, ptr); + } +} + +/** + * @note Address: N/A + * @note Size: 0x54 + */ +static inline void ExPPC_DeletePointer(ThrowContext* context, const ex_deletepointer* ex) +{ + char* objectptr + = ex_deletepointer_GetRegPointer(ex->dp_field) ? (char*)context->GPR[ex->objectptr] : *(char**)(context->FP + ex->objectptr); + + ((DeleteFunc)ex->deletefunc)(objectptr); +} + +/** + * @note Address: N/A + * @note Size: 0x8C + */ +static inline void ExPPC_DeletePointerCond(ThrowContext* context, const ex_deletepointercond* ex) +{ + char* objectptr + = ex_deletepointercond_GetRegPointer(ex->dpc_field) ? (char*)context->GPR[ex->objectptr] : *(char**)(context->FP + ex->objectptr); + int cond = ex_deletepointercond_GetRegCond(ex->dpc_field) ? (local_cond_type)context->GPR[ex->cond] + : *(local_cond_type*)(context->FP + ex->cond); + + if (cond) { + ((DeleteFunc)ex->deletefunc)(objectptr); + } +} + +/** + * @note Address: N/A + * @note Size: 0x50C + */ +static void ExPPC_UnwindStack(ThrowContext* context, MWExceptionInfo* info, void* catcher) +{ + exaction_type action; + +#pragma exception_terminate + + for (;;) { + if (info->action_pointer == 0) { + char* return_addr; + + return_addr = ExPPC_PopStackFrame(context, info); + ExPPC_FindExceptionRecord(return_addr, info); + + if (info->exception_record == 0) { + terminate(); + } + + context->FP = (ET_GetHasFramePtr(info->exception_record->et_field)) ? (char*)context->GPR[31] : context->SP; + continue; + } + + action = ((ex_destroylocal*)info->action_pointer)->action; + + switch (action & EXACTION_MASK) { + case EXACTION_BRANCH: + info->action_pointer = ((char*)info->exception_record) + ((ex_branch*)info->action_pointer)->target; + break; + case EXACTION_DESTROYLOCAL: + ExPPC_DestroyLocal(context, (ex_destroylocal*)info->action_pointer); + info->action_pointer += sizeof(ex_destroylocal); + break; + case EXACTION_DESTROYLOCALCOND: + ExPPC_DestroyLocalCond(context, (ex_destroylocalcond*)info->action_pointer); + info->action_pointer += sizeof(ex_destroylocalcond); + break; + case EXACTION_DESTROYLOCALPOINTER: + ExPPC_DestroyLocalPointer(context, (ex_destroylocalpointer*)info->action_pointer); + info->action_pointer += sizeof(ex_destroylocalpointer); + break; + case EXACTION_DESTROYLOCALARRAY: + ExPPC_DestroyLocalArray(context, (ex_destroylocalarray*)info->action_pointer); + info->action_pointer += sizeof(ex_destroylocalarray); + break; + case EXACTION_DESTROYBASE: + ExPPC_DestroyBase(context, (ex_destroymember*)info->action_pointer); + info->action_pointer += sizeof(ex_destroymember); + break; + case EXACTION_DESTROYMEMBER: + ExPPC_DestroyMember(context, (ex_destroymember*)info->action_pointer); + info->action_pointer += sizeof(ex_destroymember); + break; + case EXACTION_DESTROYMEMBERCOND: + ExPPC_DestroyMemberCond(context, (ex_destroymembercond*)info->action_pointer); + info->action_pointer += sizeof(ex_destroymembercond); + break; + case EXACTION_DESTROYMEMBERARRAY: + ExPPC_DestroyMemberArray(context, (ex_destroymemberarray*)info->action_pointer); + info->action_pointer += sizeof(ex_destroymemberarray); + break; + case EXACTION_DELETEPOINTER: + ExPPC_DeletePointer(context, (ex_deletepointer*)info->action_pointer); + info->action_pointer += sizeof(ex_deletepointer); + break; + case EXACTION_DELETEPOINTERCOND: + ExPPC_DeletePointerCond(context, (ex_deletepointercond*)info->action_pointer); + info->action_pointer += sizeof(ex_deletepointercond); + break; + case EXACTION_CATCHBLOCK: + if (catcher == (void*)info->action_pointer) + return; + info->action_pointer += sizeof(ex_catchblock); + break; + case EXACTION_CATCHBLOCK_32: + if (catcher == (void*)info->action_pointer) + return; + info->action_pointer += sizeof(ex_catchblock_32); + break; + case EXACTION_ACTIVECATCHBLOCK: { + CatchInfo* catchinfo; + + catchinfo = (CatchInfo*)(context->FP + ((ex_activecatchblock*)info->action_pointer)->cinfo_ref); + + if (catchinfo->dtor) { + if (context->location == catchinfo->location) { + context->dtor = catchinfo->dtor; + } else { + DTORCALL_COMPLETE(catchinfo->dtor, catchinfo->location); + } + } + info->action_pointer += sizeof(ex_activecatchblock); + } break; + case EXACTION_SPECIFICATION: + if (catcher == (void*)info->action_pointer) + return; + info->action_pointer += sizeof(ex_specification) + ((ex_specification*)info->action_pointer)->specs * sizeof(void*); + break; + default: + terminate(); + } + + if (action & EXACTION_ENDBIT) + info->action_pointer = 0; + } +} + +/** + * @note Address: N/A + * @note Size: 0x88 + */ +static inline int ExPPC_IsInSpecification(char* extype, ex_specification* spec) +{ + s32 i, offset; + + for (i = 0; i < spec->specs; i++) { + if (__throw_catch_compare(extype, spec->spec[i], &offset)) + return 1; + } + + return 0; +} + +/** + * @note Address: N/A + * @note Size: 0x1B4 + */ +extern void __unexpected(CatchInfo* catchinfo) +{ + ex_specification* unexp = (ex_specification*)catchinfo->stacktop; + +#pragma exception_magic // allow access to __exception_magic in try/catch blocks + + try { + unexpected(); + } catch (...) { + if (ExPPC_IsInSpecification((char*)((CatchInfo*)&__exception_magic)->typeinfo, unexp)) { + throw; + } + if (ExPPC_IsInSpecification("!bad_exception!!", unexp)) { + throw bad_exception(); + } + if (ExPPC_IsInSpecification("!std::bad_exception!!", unexp)) { + throw bad_exception(); + } + } + terminate(); +} + +/** + * @note Address: N/A + * @note Size: 0x104 + */ +asm static void ExPPC_LongJump(register ThrowContext* context, register void* newRTOC, register void* newPC) +{ +#ifdef __MWERKS__ // clang-format off + nofralloc + + mr r8, newPC + mr RTOC, newRTOC + lwz r0, context->CR + mtcrf 255, r0 + + lmw r13, context->GPR[13] + + la r7, context->FPR[14].v + psq_lx fp14, 0, r7, 0, 0 + lfd fp14, context->FPR[14].d + + la r7, context->FPR[15].v + psq_lx fp15, 0, r7, 0, 0 + lfd fp15, context->FPR[15].d + + la r7, context->FPR[16].v + psq_lx fp16, 0, r7, 0, 0 + lfd fp16, context->FPR[16].d + + la r7, context->FPR[17].v + psq_lx fp17, 0, r7, 0, 0 + lfd fp17, context->FPR[17].d + + la r7, context->FPR[18].v + psq_lx fp18, 0, r7, 0, 0 + lfd fp18, context->FPR[18].d + + la r7, context->FPR[19].v + psq_lx fp19, 0, r7, 0, 0 + lfd fp19, context->FPR[19].d + + la r7, context->FPR[20].v + psq_lx fp20, 0, r7, 0, 0 + lfd fp20, context->FPR[20].d + + la r7, context->FPR[21].v + psq_lx fp21, 0, r7, 0, 0 + lfd fp21, context->FPR[21].d + + la r7, context->FPR[22].v + psq_lx fp22, 0, r7, 0, 0 + lfd fp22, context->FPR[22].d + + la r7, context->FPR[23].v + psq_lx fp23, 0, r7, 0, 0 + lfd fp23, context->FPR[23].d + + la r7, context->FPR[24].v + psq_lx fp24, 0, r7, 0, 0 + lfd fp24, context->FPR[24].d + + la r7, context->FPR[25].v + psq_lx fp25, 0, r7, 0, 0 + lfd fp25, context->FPR[25].d + + la r7, context->FPR[26].v + psq_lx fp26, 0, r7, 0, 0 + lfd fp26, context->FPR[26].d + + la r7, context->FPR[27].v + psq_lx fp27, 0, r7, 0, 0 + lfd fp27, context->FPR[27].d + + la r7, context->FPR[28].v + psq_lx fp28, 0, r7, 0, 0 + lfd fp28, context->FPR[28].d + + la r7, context->FPR[29].v + psq_lx fp29, 0, r7, 0, 0 + lfd fp29, context->FPR[29].d + + la r7, context->FPR[30].v + psq_lx fp30, 0, r7, 0, 0 + lfd fp30, context->FPR[30].d + + la r7, context->FPR[31].v + psq_lx fp31, 0, r7, 0, 0 + lfd fp31, context->FPR[31].d + + mtlr r8 + + lwz SP, context->throwSP + lwz r3, context->SP + lwz r3, 0(r3) + stw r3, 0(SP) + blr +#endif // clang-format on +} + +/** + * @note Address: N/A + * @note Size: 0x84 + */ +static inline void ExPPC_HandleUnexpected(ThrowContext* context, MWExceptionInfo* info, ex_specification* unexp) +{ + CatchInfo* catchinfo; + +#pragma exception_terminate + + ExPPC_UnwindStack(context, info, unexp); + + catchinfo = (CatchInfo*)(context->FP + unexp->cinfo_ref); + catchinfo->location = context->location; + catchinfo->typeinfo = context->throwtype; + catchinfo->dtor = context->dtor; + catchinfo->stacktop = unexp; + + ExPPC_LongJump(context, info->TOC, info->current_function + unexp->pcoffset); +} + +/** + * @note Address: N/A + * @note Size: 0x410 + */ +static void ExPPC_ThrowHandler(ThrowContext* context) +{ + ActionIterator iter; + MWExceptionInfo info; + exaction_type action; + CatchInfo* catchinfo; + s32 offset; + + ExPPC_FindExceptionRecord(context->returnaddr, &info); + + if (info.exception_record == 0) { + terminate(); + } + + context->FP = (ET_GetHasFramePtr(info.exception_record->et_field)) ? (char*)context->GPR[31] : context->SP; + + if (context->throwtype == 0) { + iter.info = info; + iter.current_SP = context->SP; + iter.current_FP = context->FP; + iter.current_R31 = context->GPR[31]; + + for (action = ExPPC_CurrentAction(&iter);; action = ExPPC_NextAction(&iter)) { + switch (action) { + case EXACTION_ACTIVECATCHBLOCK: + break; + case EXACTION_ENDOFLIST: + case EXACTION_DESTROYLOCAL: + case EXACTION_DESTROYLOCALCOND: + case EXACTION_DESTROYLOCALPOINTER: + case EXACTION_DESTROYLOCALARRAY: + case EXACTION_DESTROYBASE: + case EXACTION_DESTROYMEMBER: + case EXACTION_DESTROYMEMBERCOND: + case EXACTION_DESTROYMEMBERARRAY: + case EXACTION_DELETEPOINTER: + case EXACTION_DELETEPOINTERCOND: + case EXACTION_CATCHBLOCK: + case EXACTION_CATCHBLOCK_32: + case EXACTION_SPECIFICATION: + continue; + case EXACTION_TERMINATE: + default: + terminate(); + } + break; + } + + catchinfo = (CatchInfo*)(iter.current_FP + ((ex_activecatchblock*)iter.info.action_pointer)->cinfo_ref); + context->throwtype = (char*)catchinfo->typeinfo; + context->location = catchinfo->location; + context->dtor = 0; + context->catchinfo = catchinfo; + } else { + context->catchinfo = 0L; + } + + iter.info = info; + iter.current_SP = context->SP; + iter.current_FP = context->FP; + iter.current_R31 = context->GPR[31]; + + for (action = ExPPC_CurrentAction(&iter);; action = ExPPC_NextAction(&iter)) { + switch (action) { + case EXACTION_CATCHBLOCK_32: + if (__throw_catch_compare(context->throwtype, ((ex_catchblock_32*)iter.info.action_pointer)->catch_type, &offset)) { + break; + } + continue; + case EXACTION_CATCHBLOCK: + if (__throw_catch_compare(context->throwtype, ((ex_catchblock*)iter.info.action_pointer)->catch_type, &offset)) { + break; + } + continue; + case EXACTION_SPECIFICATION: + if (!ExPPC_IsInSpecification(context->throwtype, (ex_specification*)iter.info.action_pointer)) { + ExPPC_HandleUnexpected(context, &info, (ex_specification*)iter.info.action_pointer); + } + continue; + case EXACTION_ENDOFLIST: + case EXACTION_DESTROYLOCAL: + case EXACTION_DESTROYLOCALCOND: + case EXACTION_DESTROYLOCALPOINTER: + case EXACTION_DESTROYLOCALARRAY: + case EXACTION_DESTROYBASE: + case EXACTION_DESTROYMEMBER: + case EXACTION_DESTROYMEMBERCOND: + case EXACTION_DESTROYMEMBERARRAY: + case EXACTION_DELETEPOINTER: + case EXACTION_DELETEPOINTERCOND: + case EXACTION_ACTIVECATCHBLOCK: + continue; + case EXACTION_TERMINATE: + default: + terminate(); + } + break; + } + + if (action == EXACTION_CATCHBLOCK_32) { + ex_catchblock_32* catchblock_32; + catchblock_32 = (ex_catchblock_32*)iter.info.action_pointer; + + ExPPC_UnwindStack(context, &info, catchblock_32); + + catchinfo = (CatchInfo*)(context->FP + catchblock_32->cinfo_ref); + catchinfo->location = context->location; + catchinfo->typeinfo = context->throwtype; + catchinfo->dtor = context->dtor; + + if (*context->throwtype == '*') { + catchinfo->sublocation = &catchinfo->pointercopy; + catchinfo->pointercopy = *(s32*)context->location + offset; + } else { + catchinfo->sublocation = (char*)context->location + offset; + } + + ExPPC_LongJump(context, info.TOC, info.current_function + catchblock_32->catch_pcoffset); + } else { + ex_catchblock* catchblock; + + catchblock = (ex_catchblock*)iter.info.action_pointer; + ExPPC_UnwindStack(context, &info, catchblock); + + catchinfo = (CatchInfo*)(context->FP + catchblock->cinfo_ref); + catchinfo->location = context->location; + catchinfo->typeinfo = context->throwtype; + catchinfo->dtor = context->dtor; + + if (*context->throwtype == '*') { + catchinfo->sublocation = &catchinfo->pointercopy; + catchinfo->pointercopy = *(s32*)context->location + offset; + } else { + catchinfo->sublocation = (char*)context->location + offset; + } + + ExPPC_LongJump(context, info.TOC, info.current_function + catchblock->catch_pcoffset); + } +} + +/** + * @note Address: N/A + * @note Size: 0x44 + */ +void __end__catch(CatchInfo* catchinfo) +{ + if (catchinfo->location && catchinfo->dtor) { + DTORCALL_COMPLETE(catchinfo->dtor, catchinfo->location); + } +} + +/** + * @note Address: N/A + * @note Size: 0x144 + */ +asm void __throw(char* throwtype, void* location, void* dtor) +{ +#ifdef __MWERKS__ // clang-format off + ThrowContext throwcontext; + + fralloc + + stmw r13, throwcontext.GPR[13] + + stfd fp14, throwcontext.FPR[14].d + la r3, throwcontext.FPR[14].v + psq_stx fp14, 0, r3,0,0 + + stfd fp15, throwcontext.FPR[15].d + la r3, throwcontext.FPR[15].v + psq_stx fp15, 0, r3, 0, 0 + + stfd fp16, throwcontext.FPR[16].d + la r3, throwcontext.FPR[16].v + psq_stx fp16, 0, r3, 0, 0 + + stfd fp17, throwcontext.FPR[17].d + la r3, throwcontext.FPR[17].v + psq_stx fp17, 0, r3, 0, 0 + + stfd fp18, throwcontext.FPR[18].d + la r3, throwcontext.FPR[18].v + psq_stx fp18, 0, r3, 0, 0 + + stfd fp19, throwcontext.FPR[19].d + la r3, throwcontext.FPR[19].v + psq_stx fp19, 0, r3, 0, 0 + + stfd fp20, throwcontext.FPR[20].d + la r3, throwcontext.FPR[20].v + psq_stx fp20, 0, r3, 0, 0 + + stfd fp21, throwcontext.FPR[21].d + la r3, throwcontext.FPR[21].v + psq_stx fp21, 0, r3, 0, 0 + + stfd fp22, throwcontext.FPR[22].d + la r3, throwcontext.FPR[22].v + psq_stx fp22, 0, r3, 0, 0 + + stfd fp23, throwcontext.FPR[23].d + la r3, throwcontext.FPR[23].v + psq_stx fp23, 0, r3, 0, 0 + + stfd fp24, throwcontext.FPR[24].d + la r3, throwcontext.FPR[24].v + psq_stx fp24, 0, r3, 0, 0 + + stfd fp25, throwcontext.FPR[25].d + la r3, throwcontext.FPR[25].v + psq_stx fp25, 0, r3, 0, 0 + + stfd fp26, throwcontext.FPR[26].d + la r3, throwcontext.FPR[26].v + psq_stx fp26, 0, r3, 0, 0 + + stfd fp27, throwcontext.FPR[27].d + la r3, throwcontext.FPR[27].v + psq_stx fp27, 0, r3, 0, 0 + + stfd fp28, throwcontext.FPR[28].d + la r3, throwcontext.FPR[28].v + psq_stx fp28, 0, r3, 0, 0 + + stfd fp29, throwcontext.FPR[29].d + la r3, throwcontext.FPR[29].v + psq_stx fp29, 0, r3, 0, 0 + + stfd fp30, throwcontext.FPR[30].d + la r3, throwcontext.FPR[30].v + psq_stx fp30, 0, r3, 0, 0 + + stfd fp31, throwcontext.FPR[31].d + la r3, throwcontext.FPR[31].v + psq_stx fp31, 0, r3, 0, 0 + + + mfcr r3 + stw r3, throwcontext.CR; + + lwz r3, 0(sp) + lwz r4, RETURN_ADDRESS(r3) + stw r3, throwcontext.SP; + stw r3, throwcontext.throwSP; + stw r4, throwcontext.returnaddr; + + lwz r3,throwtype + stw r3, throwcontext.throwtype + lwz r3,location + stw r3, throwcontext.location + lwz r3,dtor + stw r3, throwcontext.dtor + la r3, throwcontext + bl ExPPC_ThrowHandler + nop + frfree + blr +#endif // clang-format on +} diff --git a/src/Runtime.PPCEABI.H/NMWException.cpp b/src/Runtime.PPCEABI.H/NMWException.cpp new file mode 100755 index 00000000..b5f722de --- /dev/null +++ b/src/Runtime.PPCEABI.H/NMWException.cpp @@ -0,0 +1,157 @@ +#include "PowerPC_EABI_Support/Runtime/NMWException.h" +#include "PowerPC_EABI_Support/Runtime/MWCPlusLib.h" + +#define ARRAY_HEADER_SIZE 16 + +extern "C" { +extern void abort(); +} + +namespace std { +/** + * @note Address: N/A + * @note Size: 0x20 + */ +static void dthandler() { abort(); } + +static terminate_handler thandler = dthandler; + +/** + * @note Address: N/A + * @note Size: 0x28 + */ +static void duhandler() { terminate(); } + +static unexpected_handler uhandler = duhandler; + +/** + * @note Address: N/A + * @note Size: 0x28 + */ +extern void terminate() { thandler(); } + +/** + * @note Address: N/A + * @note Size: 0x28 + */ +extern void unexpected() { uhandler(); } +} // namespace std + +/** + * @note Address: N/A + * @note Size: 0x22C + */ +extern char __throw_catch_compare(const char* throwtype, const char* catchtype, s32* offset_result) +{ + const char *cptr1, *cptr2; + + *offset_result = 0; + + if ((cptr2 = catchtype) == 0) { + return true; + } + + cptr1 = throwtype; + + if (*cptr2 == 'P') { + cptr2++; + if (*cptr2 == 'C') + cptr2++; + if (*cptr2 == 'V') + cptr2++; + if (*cptr2 == 'v') { + if (*cptr1 == 'P' || *cptr1 == '*') { + return true; + } + } + cptr2 = catchtype; + } + + switch (*cptr1) { + case '*': + case '!': + if (*cptr1++ != *cptr2++) + return false; + for (;;) { + if (*cptr1 == *cptr2++) { + if (*cptr1++ == '!') { + s32 offset; + + for (offset = 0; *cptr1 != '!';) { + offset = offset * 10 + *cptr1++ - '0'; + } + *offset_result = offset; + return true; + } + } else { + while (*cptr1++ != '!') { } + while (*cptr1++ != '!') { } + if (*cptr1 == 0) + return false; + + cptr2 = catchtype + 1; + } + } + return false; + } + + while ((*cptr1 == 'P' || *cptr1 == 'R') && *cptr1 == *cptr2) { + cptr1++; + cptr2++; + + if (*cptr2 == 'C') { + if (*cptr1 == 'C') + cptr1++; + cptr2++; + } + if (*cptr1 == 'C') + return false; + + if (*cptr2 == 'V') { + if (*cptr1 == 'V') + cptr1++; + cptr2++; + } + if (*cptr1 == 'V') + return false; + } + + for (; *cptr1 == *cptr2; cptr1++, cptr2++) { + if (*cptr1 == 0) + return true; + } + + return false; +} + +class __partial_array_destructor { +private: + void* p; + size_t size; + size_t n; + ConstructorDestructor dtor; + +public: + size_t i; + + __partial_array_destructor(void* array, size_t elementsize, size_t nelements, ConstructorDestructor destructor) + { + p = array; + size = elementsize; + n = nelements; + dtor = destructor; + i = n; + } + + ~__partial_array_destructor() + { + char* ptr; + + if (i < n && dtor) { + for (ptr = (char*)p + size * i; i > 0; i--) { + ptr -= size; + DTORCALL_COMPLETE(dtor, ptr); + } + } + } +}; From 312f8471c8ebce75a58edbabebec89ae5118216a Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Wed, 5 Feb 2025 03:08:50 +0100 Subject: [PATCH 288/311] Finish m427Dll (#558) --- config/GMPE01_00/rels/m427Dll/symbols.txt | 16 +- configure.py | 2 +- include/REL/m427Dll.h | 36 +- src/REL/m427Dll/main.c | 5 - src/REL/m427Dll/map.c | 2645 +++++++++++++++++++-- src/REL/m427Dll/player.c | 10 +- 6 files changed, 2495 insertions(+), 219 deletions(-) diff --git a/config/GMPE01_00/rels/m427Dll/symbols.txt b/config/GMPE01_00/rels/m427Dll/symbols.txt index d075d6af..96db2763 100644 --- a/config/GMPE01_00/rels/m427Dll/symbols.txt +++ b/config/GMPE01_00/rels/m427Dll/symbols.txt @@ -271,11 +271,11 @@ lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data: lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0xC scope:local data:float lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:byte lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float @@ -353,8 +353,8 @@ lbl_1_data_D0 = .data:0x000000D0; // type:object size:0x8 lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x4 lbl_1_data_DC = .data:0x000000DC; // type:object size:0x4 lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x4 data:2byte -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x4 data:2byte -lbl_1_data_EC = .data:0x000000EC; // type:object size:0x5 data:string +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x4 data:byte +lbl_1_data_EC = .data:0x000000EC; // type:object size:0x5 scope:local data:string lbl_1_data_F4 = .data:0x000000F4; // type:object size:0x4 data:float lbl_1_data_F8 = .data:0x000000F8; // type:object size:0x4 data:float lbl_1_data_FC = .data:0x000000FC; // type:object size:0x30 @@ -365,10 +365,10 @@ lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0x8 lbl_1_data_1DC = .data:0x000001DC; // type:object size:0x8 lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x8 lbl_1_data_1EC = .data:0x000001EC; // type:object size:0x4 -lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x13 data:string -lbl_1_data_203 = .data:0x00000203; // type:object size:0x10 data:string -lbl_1_data_213 = .data:0x00000213; // type:object size:0x26 data:string -lbl_1_data_239 = .data:0x00000239; // type:object size:0x25 +lbl_1_data_1F0 = .data:0x000001F0; // type:object size:0x13 scope:local data:string +lbl_1_data_203 = .data:0x00000203; // type:object size:0x10 scope:local data:string +lbl_1_data_213 = .data:0x00000213; // type:object size:0x26 scope:local data:string +lbl_1_data_239 = .data:0x00000239; // type:object size:0x24 scope:local data:string lbl_1_data_260 = .data:0x00000260; // type:object size:0x15C lbl_1_data_3BC = .data:0x000003BC; // type:object size:0x15C lbl_1_data_518 = .data:0x00000518; // type:object size:0x1C diff --git a/configure.py b/configure.py index 6d5e0024..1a3c04d9 100644 --- a/configure.py +++ b/configure.py @@ -1084,7 +1084,7 @@ config.libs = [ "m427Dll", # Right Oar Left? objects={ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m427Dll/main.c"), - Object(NonMatching, "REL/m427Dll/map.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m427Dll/map.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m427Dll/player.c"), }, ), diff --git a/include/REL/m427Dll.h b/include/REL/m427Dll.h index c8290376..ceda94c3 100644 --- a/include/REL/m427Dll.h +++ b/include/REL/m427Dll.h @@ -1,21 +1,35 @@ #include "dolphin.h" #include "game/object.h" -s32 fn_1_1788(void); -void fn_1_1798(s32 arg0, float arg8); -s32 fn_1_1884(void); -s32 fn_1_32EC(void); +typedef struct M427DllStruct { + s32 unk0; + s32 unk4; +} M427DllStruct; -void fn_1_32F4(Process* arg0); -void fn_1_3B20(s8 arg0, s16 arg1); +s32 fn_1_1788(void); +void fn_1_1798(s32 arg0, float arg8); +s32 fn_1_1884(void); +s32 fn_1_32EC(void); + +void fn_1_32F4(Process *arg0); +void fn_1_3B20(s8 arg0, s16 arg1); void fn_1_3A88(void); -void fn_1_91E0(s16 arg0, float arg8, float arg9, float argA, float argB); -float fn_1_AE78(s16 arg0, float arg8, float arg9); -void fn_1_E98C(Process*); +void fn_1_91E0(s16 arg0, float arg8, float arg9, float argA, float argB); +float fn_1_AE78(s16 arg0, float arg8, float arg9); +void fn_1_E98C(Process *); void fn_1_EC54(void); s32 fn_1_10FE8(s32 arg0, s32 *arg1); -void fn_1_110E8(s32, s32*); -void fn_1_111C0(s32, s32*); +void fn_1_110E8(s32, s32 *); +void fn_1_111C0(s32, s32 *); void fn_1_11298(f32); s32 fn_1_113F0(s32); f32 fn_1_168FC(f32, f32, f32); + +s32 fn_1_15F10(Vec arg0, Vec arg1, s32 arg2, s32 arg3, s32 arg4); +s32 fn_1_15FD0(Vec arg0, float arg8, s32 arg1, s32 arg2, s32 arg3); + +extern s32 lbl_1_bss_580; +extern Vec *lbl_1_bss_558; +extern Vec *lbl_1_bss_554; +extern Vec *lbl_1_bss_550; +extern M427DllStruct lbl_1_bss_0[8]; diff --git a/src/REL/m427Dll/main.c b/src/REL/m427Dll/main.c index 84bcb03b..fdf0de2d 100644 --- a/src/REL/m427Dll/main.c +++ b/src/REL/m427Dll/main.c @@ -10,11 +10,6 @@ #include "game/objsub.h" #include "game/wipe.h" -typedef struct M427DllStruct { - s32 unk0; - s32 unk4; -} M427DllStruct; - typedef struct M427DllStruct2 { s32 unk0[3]; s32 unkC; diff --git a/src/REL/m427Dll/map.c b/src/REL/m427Dll/map.c index acbbb20e..1678f422 100644 --- a/src/REL/m427Dll/map.c +++ b/src/REL/m427Dll/map.c @@ -1,19 +1,27 @@ #include "REL/m427Dll.h" +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXStruct.h" +#include "dolphin/gx/GXVert.h" +#include "dolphin/pad.h" #include "ext_math.h" #include "game/animdata.h" +#include "game/audio.h" +#include "game/hsfanim.h" #include "game/hsfdraw.h" #include "game/hsfman.h" #include "game/hsfmotion.h" +#include "game/memory.h" +#include "game/object.h" +#include "game/pad.h" #include "game/sprite.h" +#include "string.h" + +extern s32 rand8(void); +extern LightData Hu3DLocalLight[0x20]; #define FABS(value) ((value < 0) ? -(value) : (value)) -typedef struct M427DllStruct { - s32 unk0; - s32 unk4; -} M427DllStruct; - typedef struct M427DllStruct2 { s32 unk0[3]; s32 unkC; @@ -35,24 +43,38 @@ typedef struct M427DllStruct3 { Vec rot; Vec cen; f32 zoom; -} M427DllStruct3; +} M427DllStruct3; // sizeof 0x1C typedef struct M427DllMapStruct { - char unk_0[0x2]; + u8 unk0; + char unk_1; s16 unk2; s16 unk4; char unk_6[0x2]; - AnimData* unk8; - char unk_C[0x74]; - void* unk80; - char unk_84[0x14]; + AnimData *unk8; + Vec unkC; + Vec unk18; + Vec unk24; + Vec unk30; + Vec2f unk3C; + Vec2f unk44; + Vec2f unk4C; + Vec2f unk54; + Vec2f unk5C[4]; + GXColor unk7C; + void *unk80; + s32 unk84; + float unk88; + float unk8C; + float unk90; + float unk94; } M427DllMapStruct; // sizeof 0x98 typedef struct M427DllMapStruct2 { s8 unk0; s16 unk2; s16 unk4; -} M427DllMapStruct2; +} M427DllMapStruct2; // sizeof 0x6 typedef struct M427DllMapSubstruct { s16 unk0; @@ -62,31 +84,46 @@ typedef struct M427DllMapSubstruct { typedef struct M427DllMapSubstruct2 { s16 unk0; Vec unk4; - s16 unk10; - s16 unk12; + s16 unk10[2]; s16 unk14[4]; } M427DllMapSubstruct2; // sizeof 0x1C -typedef struct M427DllMapSubstruct4 { - char unk[0x28]; - AnimData* unk28; -} M427DllMapSubstruct4; - typedef struct M427DllMapSubstruct7 { s16 unk0; s32 unk4; - void* unk8; -} M427DllMapSubstruct7; + void *unk8; +} M427DllMapSubstruct7; // sizeof 0xC -typedef struct M427DllMapUNKBA { - s16 unk0; - char unk[0x2E]; -} M427DllMapUNKBA; - -typedef struct M427DllMapUNK180 { +typedef struct M427DllMapUNKB8 { s16 unk0; s16 unk2; -} M427DllMapUNK180; + s16 unk4; + s16 unk6; + u8 unk8; + s16 unkA; + float unkC; + float unk_10; + float unk_14; + s16 unk18; + s16 unk1A; + s16 unk1C; + s16 unk1E; + float unk20; + float unk24; + float unk28; + float unk2C; +} M427DllMapUNKB8; // sizeof 0x30 + +typedef struct M427DllMapUNK17E { + s16 unk0; + s16 unk2; +} M427DllMapUNK17E; // sizeof 0x4 + +typedef struct M427DllMapSubstruct3Sub { + s16 unk0; + void *unk4; + u32 unk8; +} M427DllMapSubstruct3Sub; // sizeof 0xC typedef struct M427DllMapSubstruct3 { s16 unk0; @@ -96,30 +133,44 @@ typedef struct M427DllMapSubstruct3 { s16 unk1C; s16 unk1E; s16 unk20; - char unk_22[0x3A]; + char unk_22[2]; + float unk24[4]; + s16 unk34[4]; + s16 unk3C[4]; + s16 unk44[0xB]; + s16 unk5A; s16 unk5C; - char unk_5E[0x1A]; + char unk_5E[2]; + Vec unk_60; + Vec unk_6C; Vec unk78; Vec unk84; f32 unk90; - char unk_94[0x4]; - void* unk98; - M427DllMapSubstruct7* unk9C; + M427DllMapSubstruct3Sub unk94; char unk_A0[0xC]; - M427DllMapSubstruct4* unkAC; - char unk_B0[0xA]; - M427DllMapUNKBA unkBA[2][2]; - char unk_17A[0x6]; - M427DllMapUNK180 unk180[2][2]; - char unk_190[0x8]; + struct M427DllMapStruct6 *unkAC; + s16 unkB0[1]; + char unk_B2[0x6]; + M427DllMapUNKB8 unkB8[2][2]; + s16 unk178[3]; + M427DllMapUNK17E unk17E[2][2]; + s16 unk18E[2]; + char unk194[4]; } M427DllMapSubstruct3; // sizeof 0x198 +typedef struct M427DllMapStruct3Sub { + AnimData *unk_00; + AnimData *unk_04; + float unk_08; + float unk_0C; + float unk_10; + float unk_14; +} M427DllMapStruct3Sub; // sizeof 0x18 + typedef struct M427DllMapStruct3 { u8 unk0; M427DllMapSubstruct3 unk4[2]; - AnimData* unk334; - AnimData* unk338; - char unk_33C[0x10]; + M427DllMapStruct3Sub unk334; M427DllMapSubstruct2 unk34C[3]; M427DllMapSubstruct unk3A0[5]; } M427DllMapStruct3; // sizeof 0x3F0 @@ -130,24 +181,24 @@ typedef struct M427DllMapSubstruct5 { s16 unk4; s16 unk6; Vec unk8; - char unk[0x8]; -} M427DllMapSubstruct5; + char unk14[0x8]; +} M427DllMapSubstruct5; // sizeof 0x1C typedef struct M427DllMapStruct4 { s16 unk0; - Vec* unk4; - Vec2f* unk8; - Vec* unkC; - GXColor* unk10; + Vec *unk4; + Vec2f *unk8; + Vec *unkC; + GXColor *unk10; s16 unk14; s16 unk16; s16 unk18; - M427DllMapSubstruct5* unk1C; - void* unk20; + M427DllMapSubstruct5 *unk1C; + void *unk20; u32 unk24; - void* unk28; + void *unk28; u32 unk2C; - void* unk30; + void *unk30; u32 unk34; f32 unk38; f32 unk3C; @@ -155,7 +206,7 @@ typedef struct M427DllMapStruct4 { f32 unk44; s16 unk48[1]; s16 unk4A; -} M427DllMapStruct4; +} M427DllMapStruct4; // sizeof 0x4C typedef struct M427DllMapStruct5 { f32 unk0; @@ -165,56 +216,193 @@ typedef struct M427DllMapStruct5 { f32 unk10; } M427DllMapStruct5; // sizeof 0x14 -omObjData* lbl_1_bss_548; +typedef struct M427DllMapStruct6 { + s16 unk_00; + Vec *unk_04; + Vec *unk_08; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + float unk_20; + float unk_24; + AnimData *unk_28; + Vec *unk_2C; + Vec2f *unk_30; + Vec *unk_34; + s16 unk_38; + s16 unk_3A; + s16 unk_3C; + char pad_3E[2]; + void *unk_40; + u32 unk_44; + M427DllMapSubstruct5 *unk_48; + float unk_4C; + float unk_50; + float unk_54; + float unk_58; + float unk_5C; + /* 0x60 */ float unk_60; +} M427DllMapStruct6; /* size = 0x64, stored in unk_120 */ + +typedef struct M427DllMapSubstruct6 { + /* 0x00 */ float unk_00; + /* 0x04 */ float unk_04; + /* 0x08 */ float unk_08; + /* 0x0C */ char pad_0C[0xC]; /* maybe part of unk_08[4]? */ + /* 0x18 */ float unk_18; + /* 0x1C */ float unk_1C; + /* 0x20 */ float unk_20; + /* 0x24 */ float unk_24; + /* 0x28 */ float unk_28; + /* 0x2C */ float unk_2C; + /* 0x30 */ float unk_30; + /* 0x34 */ s16 unk_34; + /* 0x36 */ s16 unk_36; + /* 0x38 */ s16 unk_38; + /* 0x3A */ char pad_3A[2]; + /* 0x3C */ s32 unk_3C; + /* 0x40 */ s16 unk_40; + /* 0x42 */ char pad_42[2]; + /* 0x44 */ float unk_44; + /* 0x48 */ Vec unk_48; + /* 0x54 */ Vec unk_54; + /* 0x60 */ s16 unk_60; + /* 0x62 */ s8 unk_62; + /* 0x63 */ char pad_63[1]; +} M427DllMapSubstruct6; // sizeof 0x64 + +typedef void (*M427DllHook)(ModelData *model, struct M427DllMapStruct7 *particle, Mtx matrix); + +typedef struct M427DllMapStruct7 { + /* 0x00 */ s16 unk_00; + /* 0x02 */ char pad_02[2]; + /* 0x04 */ u32 unk_04; + /* 0x08 */ u8 unk_08; + /* 0x09 */ char pad_09[3]; /* maybe part of unk_08[4]? */ + /* 0x0C */ M427DllHook unk_0C; + /* 0x10 */ AnimData *unk_10; + /* 0x14 */ s16 unk_14; + /* 0x16 */ char pad_16[2]; + /* 0x18 */ M427DllMapSubstruct6 *unk_18; + /* 0x1C */ Vec *unk_1C; + /* 0x20 */ Vec2f *unk_20; + /* 0x24 */ GXColor *unk_24; + /* 0x28 */ void *unk_28; + /* 0x2C */ Vec unk_2C; + /* 0x38 */ float unk_38; + /* 0x3C */ float unk_3C; + /* 0x40 */ float unk_40; + /* 0x44 */ float unk_44; + /* 0x48 */ float unk_48; + /* 0x4C */ float unk_4C; + /* 0x50 */ float unk_50; + /* 0x54 */ float unk_54; + /* 0x58 */ float unk_58; + /* 0x5C */ Vec2f *unk_5C; + /* 0x60 */ float unk_60; + /* 0x64 */ float unk_64; +} M427DllMapStruct7; /* size = 0x68, stored in unk_120 */ + +GXColor lbl_1_data_E8 = { 0xFF, 0xFF, 0xFF, 0xFF }; + +omObjData *lbl_1_bss_548; M427DllMapStruct3 lbl_1_bss_158; M427DllMapStruct2 lbl_1_bss_F8[0x10]; -M427DllMapStruct* lbl_1_bss_F0; +AnimData *lbl_1_bss_F4; +M427DllMapStruct *lbl_1_bss_F0; s16 lbl_1_bss_EC[2]; s16 lbl_1_bss_E8[2]; -M427DllMapStruct5* lbl_1_bss_E4; +M427DllMapStruct5 *lbl_1_bss_E4; M427DllMapStruct4 lbl_1_bss_98; f32 lbl_1_bss_94; +s8 lbl_1_bss_91; +s8 lbl_1_bss_90; void fn_1_372C(void); -void fn_1_4218(omObjData*); +void fn_1_4218(omObjData *object); void fn_1_44F4(f32, f32, f32, f32, f32); -void fn_1_48EC(ModelData*, Mtx); -void fn_1_4D7C(ModelData*, Mtx); -void fn_1_50A0(ModelData*, Mtx); +void fn_1_48EC(ModelData *model, Mtx matrix); +void fn_1_4D7C(ModelData *model, Mtx matrix); +void fn_1_50A0(ModelData *model, Mtx matrix); void fn_1_510C(s32, s16, s16); -void fn_1_558C(M427DllMapStruct4*); -void fn_1_618C(ModelData*, Mtx); -void fn_1_6760(omObjData*); -void fn_1_C2C8(Vec*, Vec*, Vec*, void*); -void fn_1_D22C(void); -s16 fn_1_D63C(AnimData*, s32, f32, s32, s32); +void fn_1_558C(M427DllMapStruct4 *); +void fn_1_618C(ModelData *model, Mtx matrix); +void fn_1_6760(omObjData *object); +void fn_1_C2C8(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3); +void fn_1_D22C(ModelData *model, struct M427DllMapStruct7 *arg1, Mtx matrix); +s16 fn_1_D63C(AnimData *arg0, s16 arg1, float arg8, s16 arg2, s16 arg3); void fn_1_DB80(s16); -void fn_1_DC64(s16, void (*)(void)); -void fn_1_DC9C(s16, s32); +void fn_1_DC64(s16, M427DllHook); +void fn_1_DC9C(s16, u8); +void fn_1_72E4(omObjData *arg0); +void fn_1_73BC(void); +void fn_1_794C(M427DllMapSubstruct3 *arg0, s16 arg1); +void fn_1_7C34(void); +void fn_1_7E60(s16 arg0, M427DllMapSubstruct3 *arg1); +void fn_1_7F38(void); +void fn_1_85D4(s16 arg0, M427DllMapSubstruct3 *arg1); +void fn_1_8768(M427DllMapSubstruct3 *arg0, M427DllMapUNKB8 *arg1, s16 arg2, float arg8, float arg9); +void fn_1_8E1C(u8 arg0, M427DllMapSubstruct3 *arg1, M427DllMapUNKB8 *arg2); +void fn_1_8F90(omObjData *object); +void fn_1_9240(void); +void fn_1_9318(s16 *arg0, s16 arg1); +void fn_1_93EC(s32 arg0, s32 arg1, float arg8, float arg9, float argA, float argB); +s16 fn_1_95E8(s32 arg0, s16 arg1, s16 arg2, float arg8, float arg9, float argA, float argB, float argC); +void fn_1_9958(s16 arg0, u8 arg1); +void fn_1_999C(s16 arg0, u8 arg1); +void fn_1_99E4(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4); +void fn_1_9A2C(s16 arg0, float arg8, float arg9, float argA); +void fn_1_9AA0(s16 arg0, float arg8, float arg9, float argA); +void fn_1_9B14(s16 arg0, float arg8, float arg9, float argA); +void fn_1_9B88(ModelData *model, Mtx matrix); +void fn_1_A148(ModelData *model, Mtx matrix); +s16 fn_1_A1F4(s32 arg0, s16 arg1, s16 arg2, s16 arg3, float arg8, Vec *arg4, Vec *arg5); +void fn_1_A7F8(M427DllMapStruct6 *arg0); +void fn_1_B194(M427DllMapStruct6 *arg0, float arg8, Vec *arg1); +void fn_1_B3CC(ModelData *model, Mtx matrix); +void fn_1_C154(ModelData *model, Mtx matrix); +void fn_1_C200(ModelData *model, Mtx matrix); +void fn_1_C2AC(Vec *arg0, float arg8, float arg9, float argA); +void fn_1_C2BC(Vec2f *arg0, float arg8, float arg9); +s16 fn_1_C41C(float arg8, float arg9, float argA, float argB, float argC, float argD, u8 arg0, u8 arg1, u8 arg2); +void fn_1_C528(s16 arg0, s16 arg1, float arg8, float arg9, float argA, float argB, float argC, float argD, u8 arg2, u8 arg3, u8 arg4); +void fn_1_C68C(LightData *arg0, Vec *arg1, Vec *arg2, GXColor *arg3); +void fn_1_C76C(u8 arg0, float arg8, float arg9, float argA, s16 arg1, float argB, float argC, s16 arg2); +s16 fn_1_D430(float arg8, float arg9, float argA, s16 arg0); +M427DllMapSubstruct6 *fn_1_D4FC(s16 arg0, Vec *arg1, Vec *arg2, float arg8, GXColor *arg3); +M427DllMapSubstruct6 *fn_1_DC0C(s16 arg0, s16 arg1); +void fn_1_DCD4(ModelData *model, Mtx matrix); +void fn_1_E2B0(Vec2f *arg0, s16 arg1, s16 arg2, float arg8, float arg9); +void fn_1_E37C(Vec2f *arg0, Vec2f *arg1, s16 arg2, float arg8, float arg9); +void fn_1_E420(Vec *arg0, Vec *arg1, Vec *arg2, s16 arg3); -void fn_1_32F4(Process* arg0) { +void fn_1_32F4(Process *arg0) +{ s16 var_r31; - AnimData* temp_r30; + AnimData *temp_r30; s32 var_r29; s32 var_r28; lbl_1_bss_158.unk0 = 0; lbl_1_bss_548 = omAddObjEx(arg0, 0x7F, 0, 0, -1, fn_1_6760); - lbl_1_bss_F0 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10 * sizeof(M427DllMapStruct), 0x10000000); - + lbl_1_bss_F0 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x10 * sizeof(M427DllMapStruct), MEMORY_DEFAULT_NUM); + for (var_r31 = 0; var_r31 < 0x10; var_r31++) { lbl_1_bss_F0[var_r31].unk2 = -1; } - temp_r30 = HuSprAnimRead(HuDataReadNum(0x3A0017, MEMORY_DEFAULT_NUM)); + temp_r30 = HuSprAnimRead(HuDataReadNum(0x3A0017, MEMORY_DEFAULT_NUM)); for (var_r31 = 0; var_r31 < 2; var_r31++) { lbl_1_bss_EC[var_r31] = fn_1_D63C(temp_r30, 0x200, 80.0f, 0x40, 0x40); - fn_1_DC64(lbl_1_bss_EC[var_r31], &fn_1_D22C); + fn_1_DC64(lbl_1_bss_EC[var_r31], fn_1_D22C); fn_1_DC9C(lbl_1_bss_EC[var_r31], 1); Hu3DModelLayerSet(lbl_1_bss_EC[var_r31], 7); if (var_r31 == 0) { var_r29 = 1; - } else { + } + else { var_r29 = 2; } Hu3DModelCameraSet(lbl_1_bss_EC[var_r31], var_r29); @@ -226,13 +414,14 @@ void fn_1_32F4(Process* arg0) { Hu3DModelLayerSet(lbl_1_bss_E8[var_r31], 7); if (var_r31 == 0) { var_r28 = 1; - } else { + } + else { var_r28 = 2; } Hu3DModelCameraSet(lbl_1_bss_E8[var_r31], var_r28); } fn_1_372C(); - + for (var_r31 = 0; var_r31 < 0x10; var_r31++) { lbl_1_bss_F8[var_r31].unk0 = -1; lbl_1_bss_F8[var_r31].unk2 = Hu3DModelCreateFile(0x3A0012); @@ -245,77 +434,62 @@ void fn_1_32F4(Process* arg0) { } } -void fn_1_372C(void) { - M427DllMapSubstruct* var_r29 = &lbl_1_bss_158.unk3A0[0]; - M427DllMapSubstruct2* var_r30 = &lbl_1_bss_158.unk34C[0]; +void fn_1_372C(void) +{ + M427DllMapSubstruct *var_r29 = &lbl_1_bss_158.unk3A0[0]; + M427DllMapSubstruct2 *var_r30 = &lbl_1_bss_158.unk34C[0]; s16 sp1A[5] = { 0, 0, 1, 1, 0 }; - Vec sp60[5] = { - { -700.0f, -150.0f, -7000.0f }, - { 0.0f, -300.0f, -12000.0f }, - { 800.0f, -350.0f, -12700.0f }, - { 600.0f, -350.0f, -13700.0f }, - { 825.0f, -450.0f, -15000.0f } - }; + Vec sp60[5] = { { -700.0f, -150.0f, -7000.0f }, { 0.0f, -300.0f, -12000.0f }, { 800.0f, -350.0f, -12700.0f }, { 600.0f, -350.0f, -13700.0f }, + { 825.0f, -450.0f, -15000.0f } }; s16 sp8[3] = { 1, 1, 0 }; - s16 spE[3][2] = { { 4, 5 }, { 8, -1 }, { 9, -1 } }; - s16 sp24[3][4] = { - { 180, 120, 60, 60 }, - { 90, 180, 60, 60 }, - { 90, 180, 60, 60 } - }; - Vec sp3C[3] = { - -350.0f, -300.0f, -10000.0f, - -700.0f, -600.0f, -17000.0f, - 700.0f, -600.0f, -19000.0f - }; + s16 spE[3][2] = { { 4, 5 }, { 8, -1 }, { 9, -1 } }; + s16 sp24[3][4] = { { 180, 120, 60, 60 }, { 90, 180, 60, 60 }, { 90, 180, 60, 60 } }; + Vec sp3C[3] = { -350.0f, -300.0f, -10000.0f, -700.0f, -600.0f, -17000.0f, 700.0f, -600.0f, -19000.0f }; s16 var_r28; s16 var_r31; - + for (var_r31 = 0; var_r31 < 5; var_r31++, var_r29++) { var_r29->unk0 = sp1A[var_r31]; var_r29->unk4.x = sp60[var_r31].x; var_r29->unk4.y = sp60[var_r31].y; var_r29->unk4.z = sp60[var_r31].z; } - + for (var_r31 = 0; var_r31 < 3; var_r31++, var_r30++) { var_r30->unk0 = sp8[var_r31]; var_r30->unk4.x = sp3C[var_r31].x; var_r30->unk4.y = sp3C[var_r31].y; var_r30->unk4.z = sp3C[var_r31].z; - var_r30->unk10 = spE[var_r31][0]; - var_r30->unk12 = spE[var_r31][1]; + var_r30->unk10[0] = spE[var_r31][0]; + var_r30->unk10[1] = spE[var_r31][1]; for (var_r28 = 0; var_r28 < 4; var_r28++) { var_r30->unk14[var_r28] = sp24[var_r31][var_r28]; } } } -void fn_1_3A88(void) { - M427DllMapStruct* sp8; +void fn_1_3A88(void) +{ + M427DllMapStruct *sp8; s16 var_r30; - M427DllMapSubstruct3* var_r31; + M427DllMapSubstruct3 *var_r31; sp8 = lbl_1_bss_F0; - HuSprAnimKill(lbl_1_bss_158.unk334); - HuSprAnimKill(lbl_1_bss_158.unk338); - + HuSprAnimKill(lbl_1_bss_158.unk334.unk_00); + HuSprAnimKill(lbl_1_bss_158.unk334.unk_04); + for (var_r30 = 0, var_r31 = &lbl_1_bss_158.unk4[0]; var_r30 < 2; var_r30++, var_r31++) { - if (var_r31->unk98) { - HuMemDirectFree(var_r31->unk98); + if (var_r31->unk94.unk4) { + HuMemDirectFree(var_r31->unk94.unk4); } } } -void fn_1_3B20(s8 arg0, s16 arg1) { - M427DllMapStruct2* var_r31 = &lbl_1_bss_F8[0]; - M427DllMapSubstruct3* temp_r30 = &lbl_1_bss_158.unk4[arg1]; - Vec sp54[4] = { - { 110.0f, -20.0f, 0.0f }, - { -110.0f, -20.0f, 0.0f }, - { 110.0f, -20.0f, 190.0f }, - { -110.0f, -20.0f, 190.0f } - }; +void fn_1_3B20(s8 arg0, s16 arg1) +{ + M427DllMapStruct2 *var_r31 = &lbl_1_bss_F8[0]; + M427DllMapSubstruct3 *temp_r30 = &lbl_1_bss_158.unk4[arg1]; + Vec sp54[4] = { { 110.0f, -20.0f, 0.0f }, { -110.0f, -20.0f, 0.0f }, { 110.0f, -20.0f, 190.0f }, { -110.0f, -20.0f, 190.0f } }; Mtx sp24; f32 sp14[4] = { 135.0f, 225.0f, 45.0f, 315.0f }; Point3d sp8; @@ -324,20 +498,22 @@ void fn_1_3B20(s8 arg0, s16 arg1) { s32 var_r27; for (var_r29 = 0; var_r29 < 0x10; var_r29++, var_r31++) { - if (var_r31->unk0 == -1) break; + if (var_r31->unk0 == -1) + break; } if (var_r29 != 0x10) { var_r31->unk0 = arg0; temp_f31 = temp_r30->unk90; - PSMTXRotRad(sp24, 0x59, MTXDegToRad(temp_f31)); - PSMTXMultVec(sp24, &sp54[arg0], &sp8); + MTXRotRad(sp24, 0x59, MTXDegToRad(temp_f31)); + MTXMultVec(sp24, &sp54[arg0], &sp8); sp8.x += temp_r30->unk84.x; sp8.y += temp_r30->unk84.y; sp8.z += temp_r30->unk84.z; Hu3DModelAttrReset(var_r31->unk2, 1); if (arg1 == 0) { var_r27 = 1; - } else { + } + else { var_r27 = 2; } Hu3DModelCameraSet(var_r31->unk2, var_r27); @@ -346,15 +522,17 @@ void fn_1_3B20(s8 arg0, s16 arg1) { Hu3DMotionTimeSet(var_r31->unk2, 0.0f); if (arg0 < 2) { Hu3DModelAmbSet(var_r31->unk2, 1.0f, 1.0f, 1.0f); - } else { + } + else { Hu3DModelAmbSet(var_r31->unk2, 0.5f, 0.5f, 0.5f); } Hu3DAnimBankSet(var_r31->unk4, 0); } } -void fn_1_3DBC(void) { - M427DllMapStruct2* var_r31; +void fn_1_3DBC(void) +{ + M427DllMapStruct2 *var_r31; s16 var_r30; f32 temp_f31; @@ -370,13 +548,14 @@ void fn_1_3DBC(void) { } } -void fn_1_3E58(omObjData* arg0) { +void fn_1_3E58(omObjData *arg0) +{ s32 sp8[8]; - M427DllMapStruct* var_r26; - M427DllMapSubstruct3* var_r31; - ModelData* temp_r25; + M427DllMapStruct *var_r26; + M427DllMapSubstruct3 *var_r31; + ModelData *temp_r25; s16 var_r30; - M427DllMapStruct4* var_r29; + M427DllMapStruct4 *var_r29; s16 var_r28; s16 var_r27; @@ -388,22 +567,22 @@ void fn_1_3E58(omObjData* arg0) { temp_r25 = &Hu3DData[sp8[var_r30]]; temp_r25->unk_38[4] = temp_r25->unk_38[5] = temp_r25->unk_38[6] = temp_r25->unk_38[7] = -1; } - + for (var_r30 = 0; var_r30 < 2; var_r30++) { for (var_r27 = 0; var_r27 < 2; var_r27++) { - Hu3DModelKill(var_r31->unk180[var_r30][var_r27].unk0); + Hu3DModelKill(var_r31->unk17E[var_r30][var_r27].unk2); } } for (var_r30 = 0; var_r30 < 2; var_r30++) { for (var_r27 = 0; var_r27 < 2; var_r27++) { - Hu3DModelKill(var_r31->unkBA[var_r30][var_r27].unk0); + Hu3DModelKill(var_r31->unkB8[var_r30][var_r27].unk2); } } - HuSprAnimKill(var_r31->unkAC->unk28); + HuSprAnimKill(var_r31->unkAC->unk_28); Hu3DModelKill(var_r31->unk1A); Hu3DModelKill(var_r31->unk1C); - HuMemDirectFree(var_r31->unk98); - var_r31->unk98 = NULL; + HuMemDirectFree(var_r31->unk94.unk4); + var_r31->unk94.unk4 = NULL; fn_1_DB80(lbl_1_bss_EC[var_r28]); fn_1_DB80(lbl_1_bss_E8[var_r28]); @@ -442,13 +621,14 @@ void fn_1_3E58(omObjData* arg0) { arg0->func = fn_1_4218; } -void fn_1_4218(omObjData* arg0) { +void fn_1_4218(omObjData *arg0) +{ f32 var_f31; f32 temp_f30; f32 var_f29; - M427DllMapStruct5* var_r31; + M427DllMapStruct5 *var_r31; s16 var_r30; - M427DllMapStruct4* var_r29; + M427DllMapStruct4 *var_r29; s32 temp_r28; var_r29 = &lbl_1_bss_98; @@ -462,7 +642,7 @@ void fn_1_4218(omObjData* arg0) { fn_1_44F4(var_f31, 0.0f, temp_f30, var_f29, 0.0f); } } - + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { if (-1.0f != var_r31->unk10) { var_r31->unkC += 20.0f; @@ -474,14 +654,16 @@ void fn_1_4218(omObjData* arg0) { } } -void fn_1_44F4(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { - M427DllMapStruct5* var_r31; +void fn_1_44F4(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) +{ + M427DllMapStruct5 *var_r31; s16 var_r30; var_r31 = &lbl_1_bss_E4[0]; - + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { - if (-1.0f == var_r31->unk10) break; + if (-1.0f == var_r31->unk10) + break; } if (var_r30 != 0x10) { var_r31->unk0 = arg0; @@ -494,18 +676,19 @@ void fn_1_44F4(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { f32 lbl_1_data_F4 = 450.0f; -f32 fn_1_4570(Vec* arg0) { +f32 fn_1_4570(Vec *arg0) +{ f32 temp_f31; f32 temp_f30; f32 var_f28; f32 var_f27; f32 var_f23; - M427DllMapStruct5* var_r31; + M427DllMapStruct5 *var_r31; s16 var_r30; var_r31 = &lbl_1_bss_E4[0]; var_f27 = 0.0f; - + for (var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { if (-1.0f != var_r31->unk10) { temp_f31 = arg0->x - var_r31->unk0; @@ -527,7 +710,8 @@ f32 fn_1_4570(Vec* arg0) { return var_f27; } -void fn_1_48EC(ModelData* arg0, Mtx arg1) { +void fn_1_48EC(ModelData *arg0, Mtx arg1) +{ Vec sp3C; Vec sp30; Vec sp24; @@ -548,7 +732,7 @@ void fn_1_48EC(ModelData* arg0, Mtx arg1) { CenterM->x = -CenterM->x; CenterM->y = -CenterM->y; CenterM->z = CenterM->z; - CRotM->x = 180.0f + CRotM->x; + CRotM->x = 180.0f + CRotM->x; CRotM->y = 180.0f + -CRotM->y; CRotM->z = CRotM->z; *CZoomM = *CZoomM; @@ -574,7 +758,8 @@ void fn_1_48EC(ModelData* arg0, Mtx arg1) { *CZoomM = temp_f29; } -void fn_1_4D7C(ModelData* arg0, Mtx arg1) { +void fn_1_4D7C(ModelData *arg0, Mtx arg1) +{ Vec sp24; Vec sp18; Vec spC; @@ -602,7 +787,8 @@ void fn_1_4D7C(ModelData* arg0, Mtx arg1) { } } -void fn_1_50A0(ModelData* arg0, Mtx arg1) { +void fn_1_50A0(ModelData *arg0, Mtx arg1) +{ if (lbl_1_bss_98.unk28) { GXSetTexCopySrc(0, 0, 0x280, 0x1E0); GXSetTexCopyDst(0x280, 0x1E0, GX_TF_RGB5A3, 0); @@ -610,20 +796,21 @@ void fn_1_50A0(ModelData* arg0, Mtx arg1) { } } -void fn_1_510C(s32 arg0, s16 arg1, s16 arg2) { +void fn_1_510C(s32 arg0, s16 arg1, s16 arg2) +{ s16 sp12; s16 sp10; s16 spE; s16 spC; s16 spA; s16 sp8; - M427DllMapStruct4* var_r31; - M427DllMapSubstruct5* var_r30; + M427DllMapStruct4 *var_r31; + M427DllMapSubstruct5 *var_r30; s16 var_r29; - ModelData* temp_r28; + ModelData *temp_r28; s16 var_r27; - M427DllMapSubstruct5* var_r26; - M427DllMapSubstruct5* var_r23; + M427DllMapSubstruct5 *var_r26; + M427DllMapSubstruct5 *var_r23; var_r31 = &lbl_1_bss_98; var_r29 = Hu3DHookFuncCreate(fn_1_618C); @@ -657,7 +844,7 @@ void fn_1_510C(s32 arg0, s16 arg1, s16 arg2) { DCFlushRange(var_r26, 0x20000); GXBeginDisplayList(var_r23, 0x20000); GXBegin(GX_QUADS, GX_VTXFMT0, (arg1 * arg2 * 4)); - + for (var_r29 = 0; var_r29 < arg2; var_r29++) { for (var_r27 = 0; var_r27 < arg1; var_r30++, var_r27++) { var_r30->unk0 = var_r27 + var_r29 * var_r31->unk16; @@ -689,7 +876,8 @@ void fn_1_510C(s32 arg0, s16 arg1, s16 arg2) { f32 lbl_1_data_F8 = -1.0f; -void fn_1_558C(M427DllMapStruct4* arg0) { +void fn_1_558C(M427DllMapStruct4 *arg0) +{ Mtx spAC; Mtx sp7C; Mtx sp4C; @@ -703,14 +891,14 @@ void fn_1_558C(M427DllMapStruct4* arg0) { f32 var_f26; f32 var_f25; f32 var_f20; - M427DllMapSubstruct5* var_r30; - Vec* var_r29; - Vec* var_r28; + M427DllMapSubstruct5 *var_r30; + Vec *var_r29; + Vec *var_r28; s16 var_r27; - M427DllMapStruct5* var_r26; - Vec2f* var_r25; + M427DllMapStruct5 *var_r26; + Vec2f *var_r25; s16 var_r24; - CameraData* var_r23; + CameraData *var_r23; s16 var_r22; var_r23 = &Hu3DCamera[0]; @@ -737,12 +925,12 @@ void fn_1_558C(M427DllMapStruct4* arg0) { sp2C.x = sp44.x; sp2C.y = (sp44.y - sp44.x) / (arg0->unk18 - 1); var_f25 = arg0->unk44; - + for (var_r27 = 0; var_r27 < arg0->unk18; var_r27++) { sp34.x = sp3C.x; sp34.y = (sp3C.y - sp3C.x) / (arg0->unk16 - 1); var_f26 = arg0->unk40; - + for (var_r24 = 0; var_r24 < arg0->unk16; var_r28++, var_r29++, var_r24++) { var_r28->x = sp34.x; var_r28->z = sp2C.x; @@ -763,7 +951,7 @@ void fn_1_558C(M427DllMapStruct4* arg0) { } var_r30 = arg0->unk1C; var_r24 = (arg0->unk16 - 1) * (arg0->unk18 - 1); - + for (var_r27 = 0; var_r27 < var_r24; var_r27++, var_r30++) { fn_1_C2C8(&arg0->unk4[var_r30->unk0], &arg0->unk4[var_r30->unk2], &arg0->unk4[var_r30->unk4], &var_r30->unk8); arg0->unkC[var_r30->unk0].x += var_r30->unk8.x; @@ -779,7 +967,7 @@ void fn_1_558C(M427DllMapStruct4* arg0) { arg0->unkC[var_r30->unk6].y += var_r30->unk8.y; arg0->unkC[var_r30->unk6].z += var_r30->unk8.z; } - + var_r29 = arg0->unkC; for (var_r27 = 0; var_r27 < arg0->unk14; var_r27++, var_r29++) { var_f20 = sqrtf((var_r29->x * var_r29->x) + (var_r29->y * var_r29->y) + (var_r29->z * var_r29->z)); @@ -792,7 +980,7 @@ void fn_1_558C(M427DllMapStruct4* arg0) { C_MTXLookAt(spAC, &var_r23->pos, &var_r23->up, &var_r23->target); GXGetProjectionv(&sp7C[0][0]); GXGetViewportv(&sp4C[0][0]); - + for (var_r27 = 0; var_r27 < arg0->unk14; var_r27++, var_r28++, var_r25++) { GXProject(var_r28->x, var_r28->y, var_r28->z, spAC, &sp7C[0][0], &sp4C[0][0], &sp28, &sp24, &sp20); var_r25->x = 0.0015625f * sp28; @@ -811,14 +999,15 @@ void fn_1_558C(M427DllMapStruct4* arg0) { PPCSync(); } -void fn_1_618C(ModelData* arg0, Mtx arg1) { +void fn_1_618C(ModelData *arg0, Mtx arg1) +{ Mtx sp64; Mtx sp34; GXTexObj sp14; GXColor spC; - M427DllMapStruct4* var_r31 = &lbl_1_bss_98; - AnimData** var_r30 = &lbl_1_bss_158.unk334; - + M427DllMapStruct4 *var_r31 = &lbl_1_bss_98; + M427DllMapStruct3Sub *var_r30 = &lbl_1_bss_158.unk334; + fn_1_558C(var_r31); GXLoadPosMtxImm(arg1, 0); GXClearVtxDesc(); @@ -837,7 +1026,7 @@ void fn_1_618C(ModelData* arg0, Mtx arg1) { GXInitTexObj(&sp14, var_r31->unk28, 0x280, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0); GXInitTexObjLOD(&sp14, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1); GXLoadTexObj(&sp14, GX_TEXMAP1); - HuSprTexLoad(*var_r30, 0, 2, GX_REPEAT, GX_REPEAT, GX_LINEAR); + HuSprTexLoad(var_r30->unk_00, 0, 2, GX_REPEAT, GX_REPEAT, GX_LINEAR); GXSetNumTevStages(3); spC.r = 0; spC.g = 0x10; @@ -846,40 +1035,40 @@ void fn_1_618C(ModelData* arg0, Mtx arg1) { GXSetTevColor(GX_TEVREG2, spC); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_ONE, GX_CC_ZERO); - GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVREG0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); - GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVREG0); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP1, GX_COLOR0A0); GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_TEXC, GX_CC_C0, GX_CC_A2, GX_CC_ZERO); - GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVREG1); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG1); GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); - GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVREG1); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG1); GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD0, GX_TEXMAP1, GX_COLOR0A0); GXSetTevColorIn(GX_TEVSTAGE2, GX_CC_C1, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C2); - GXSetTevColorOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevColorOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetTevAlphaIn(GX_TEVSTAGE2, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); - GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetNumIndStages(1); GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP2); GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, 1, 0, GX_ITM_0); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); - PSMTXScale(sp64, -0.1f, 0.0f, 1.0f); + MTXScale(sp64, -0.1f, 0.0f, 1.0f); GXSetIndTexMtx(GX_ITM_0, (f32(*)[3])(sp64), 0); GXSetNumTexGens(2); if (omPauseChk() == 0) { var_r31->unk38 += 0.001f; var_r31->unk3C += 0.0005f; } - PSMTXRotRad(sp64, 0x58, 1.5707964f); - PSMTXScale(sp34, 0.001f, 0.001f, 0.001f); - PSMTXConcat(sp64, sp34, sp64); + MTXRotRad(sp64, 0x58, 1.5707964f); + MTXScale(sp34, 0.001f, 0.001f, 0.001f); + MTXConcat(sp64, sp34, sp64); mtxTransCat(sp64, var_r31->unk38, var_r31->unk3C, 0.0f); GXLoadTexMtxImm(sp64, 0x1E, GX_MTX2x4); - GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, 0, 0x7D); - GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, 0x1E, 0, 0x7D); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); GXSetNumChans(1); GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); - GXSetZMode(1, GX_LEQUAL, 1); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); GXSetZCompLoc(0); GXSetBlendMode(GX_BM_NONE, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); @@ -888,3 +1077,2081 @@ void fn_1_618C(ModelData* arg0, Mtx arg1) { GXSetTevDirect(GX_TEVSTAGE0); GXSetTevDirect(GX_TEVSTAGE1); } + +s32 lbl_1_data_FC[0xC] = { + 0x3A0000, + 0x3A0001, + 0x3A0002, + 0x3A0003, + 0x3A0004, + 0x3A0005, + 0x3A0006, + 0x3A0007, + 0x3A0008, + 0x3A0009, + 0x3A000A, + 0x3A000B, +}; +s32 lbl_1_data_12C[2] = { 0x3A000C, 0x3A000D }; +s32 lbl_1_data_134[4] = { 0x3A000E, 0x3A000F, 0x3F800000, 0x01000000 }; + +void fn_1_6760(omObjData *object) +{ + s16 sp14[2][0x20]; + s16 sp10[2]; + s16 spC[2]; + s16 sp8[2]; + M427DllMapSubstruct3 *var_r31; + s16 var_r30; + M427DllMapUNKB8 *var_r29; + s16 var_r28; + M427DllMapUNK17E *var_r27; + s16 var_r26; + M427DllMapSubstruct3Sub *var_r25; + M427DllMapStruct3 *var_r24; + u16 var_r23; + + var_r24 = &lbl_1_bss_158; + Hu3DFogSet(3500.0f, 20000.0f, 0, 0, 0); + for (var_r28 = 0, var_r31 = &var_r24->unk4[0]; var_r28 < 2; var_r28++, var_r31++) { + var_r31->unk0 = var_r28; + sp10[var_r28] = 0; + for (var_r30 = 0; var_r30 < 3; var_r30++) { + var_r31->unk178[var_r30] = 0; + } + for (var_r30 = 0; var_r30 < 0xB; var_r30++) { + var_r31->unk2[var_r30] = Hu3DModelCreateFile(lbl_1_data_FC[var_r30]); + var_r31->unk44[var_r30] = -1; + if (var_r30 < 0xA) { + Hu3DModelLayerSet(var_r31->unk2[var_r30], 2); + } + else { + Hu3DModelLayerSet(var_r31->unk2[var_r30], 5); + } + Hu3DModelAmbSet(var_r31->unk2[var_r30], 0.1f, 0.1f, 0.1f); + if (var_r28 == 0) { + Hu3DModelCameraSet(var_r31->unk2[var_r30], 1); + } + else { + Hu3DModelCameraSet(var_r31->unk2[var_r30], 2); + } + sp14[var_r28][sp10[var_r28]++] = var_r31->unk2[var_r30]; + } + var_r30 = Hu3DHookFuncCreate(fn_1_C154); + var_r31->unk1E = var_r30; + Hu3DModelLayerSet(var_r30, 4); + if (var_r28 == 0) { + Hu3DModelCameraSet(var_r30, 1); + } + else { + Hu3DModelCameraSet(var_r30, 2); + } + var_r30 = Hu3DHookFuncCreate(fn_1_C200); + var_r31->unk20 = var_r30; + Hu3DModelLayerSet(var_r30, 6); + if (var_r28 == 0) { + Hu3DModelCameraSet(var_r30, 1); + } + else { + Hu3DModelCameraSet(var_r30, 2); + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r29 = var_r31->unkB8[var_r30]; + for (var_r26 = 0; var_r26 < 2; var_r26++, var_r29++) { + if ((var_r28 == 0) && (var_r26 == 0)) { + var_r29->unk2 = spC[var_r30] = Hu3DModelCreateFile(lbl_1_data_134[var_r30]); + } + else { + var_r29->unk2 = Hu3DModelLink(spC[var_r30]); + } + Hu3DModelAttrSet(var_r29->unk2, HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(var_r29->unk2, 2); + Hu3DModelAmbSet(var_r29->unk2, 0.0f, 0.0f, 0.0f); + if (var_r28 == 0) { + Hu3DModelCameraSet(var_r29->unk2, 1); + } + else { + Hu3DModelCameraSet(var_r29->unk2, 2); + } + sp14[var_r28][sp10[var_r28]++] = var_r29->unk2; + var_r29->unk6 = fn_1_95E8(0x3A0018, var_r28, 0, 0.0f, -400.0f, 700.0f, 800.0f, -5.0f); + fn_1_9958(var_r29->unk6, 1); + fn_1_99E4(var_r29->unk6, 0xFF, 0xFF, 0xFF, 0); + var_r29->unk4 = 2 * var_r30 + 4 + var_r26; + fn_1_C528(var_r29->unk2, var_r29->unk4, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0xFF, 0xA0, 0x60); + Hu3DLLightStaticSet(var_r29->unk2, var_r29->unk4, 1); + Hu3DLLightPointSet(var_r29->unk2, var_r29->unk4, 1.0f, 0.6f, 3); + } + } + for (var_r30 = 0; var_r30 < 2; var_r30++) { + var_r27 = var_r31->unk17E[var_r30]; + for (var_r26 = 0; var_r26 < 2; var_r26++, var_r27++) { + if ((var_r28 == 0) && (var_r26 == 0)) { + var_r27->unk2 = sp8[var_r30] = Hu3DModelCreateFile(lbl_1_data_12C[var_r30]); + } + else { + var_r27->unk2 = Hu3DModelLink(sp8[var_r30]); + } + Hu3DModelAttrSet(var_r27->unk2, HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(var_r27->unk2, 2); + Hu3DModelAmbSet(var_r27->unk2, 0.0f, 0.0f, 0.0f); + if (var_r28 == 0) { + Hu3DModelCameraSet(var_r27->unk2, 1); + } + else { + Hu3DModelCameraSet(var_r27->unk2, 2); + } + sp14[var_r28][sp10[var_r28]++] = var_r27->unk2; + } + } + for (var_r30 = 0; var_r30 < 4; var_r30++) { + var_r31->unk34[var_r30] = fn_1_C41C(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0xFF, 0xFF, 0xFF); + var_r31->unk24[var_r30] = -1.0f; + } + } + for (var_r28 = 0, var_r31 = var_r24->unk4; var_r28 < 2; var_r28++, var_r31++) { + var_r31->unk5C = Hu3DLLightCreate(var_r31->unk2[0], 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0xFA, 0xF0, 0xD2); + Hu3DLLightSpotSet(var_r31->unk2[0], var_r31->unk5C, 37.5f, 4); + Hu3DLLightStaticSet(var_r31->unk2[0], var_r31->unk5C, 1); + var_r31->unk78.x = 0.0f; + var_r31->unk78.y = 0.0f; + var_r31->unk78.z = 0.0f; + var_r31->unk84.x = 0.0f; + var_r31->unk84.y = 0.0f; + var_r31->unk84.z = 0.0f; + var_r31->unk90 = 0.0f; + } + fn_1_93EC(0x3A0016, 0x3A0014, 2000.0f, 6000.0f, 4.0f, 9.0f); + for (var_r28 = 0, var_r31 = var_r24->unk4; var_r28 < 2; var_r28++, var_r31++) { + var_r31->unkB0[0] = fn_1_95E8(0x3A0015, var_r28, 0.0f, 0.0f, -900.0f, 500.0f, 700.0f, -10.0f); + var_r25 = &var_r31->unk94; + var_r25->unk0 = var_r28; + var_r25->unk8 = GXGetTexBufferSize(0x140, 0x1E0, 5, 0, 0); + var_r25->unk4 = HuMemDirectMalloc(HEAP_DATA, var_r25->unk8); + var_r30 = Hu3DHookFuncCreate(fn_1_A148); + var_r31->unk1C = var_r30; + Hu3DModelCameraSet(var_r30, var_r28 ? 2 : 1); + Hu3DModelLayerSet(var_r30, 1); + Hu3DData[var_r30].unk_120 = var_r25; + var_r31->unk1A = fn_1_A1F4(0x3A0013, 0xA, 0x1E, var_r28, 6000.0f, lbl_1_bss_554, lbl_1_bss_558); + fn_1_C528(var_r31->unk1A, 1, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0xC8, 0xF0, 0xA0); + Hu3DLLightStaticSet(var_r31->unk1A, 1, 1); + Hu3DLLightPointSet(var_r31->unk1A, 1, 125.0f, 0.5f, 3); + fn_1_C528(var_r31->unk1A, 2, 0.0f, -500.0f, -23500.0f, 0.0f, 0.0f, 0.0f, 0xFA, 0xF0, 0xD2); + Hu3DLLightStaticSet(var_r31->unk1A, 2, 1); + Hu3DLLightPointSet(var_r31->unk1A, 2, 800.0f, 0.5f, 3); + sp14[var_r28][sp10[var_r28]++] = var_r31->unk1A; + fn_1_9318(sp14[var_r28], sp10[var_r28]); + } + object->func = fn_1_72E4; +} + +void fn_1_72E4(omObjData *object) +{ + float var_f31; + M427DllMapStruct2 *var_r31; + s16 var_r30; + + if (fn_1_1788() == 7) { + object->func = fn_1_3E58; + } + fn_1_73BC(); + fn_1_7C34(); + fn_1_7F38(); + fn_1_8F90(object); + fn_1_9240(); + for (var_r31 = lbl_1_bss_F8, var_r30 = 0; var_r30 < 0x10; var_r30++, var_r31++) { + if (var_r31->unk0 != -1) { + var_f31 = Hu3DMotionMaxTimeGet(var_r31->unk2); + if (Hu3DMotionTimeGet(var_r31->unk2) >= var_f31) { + var_r31->unk0 = -1; + Hu3DModelAttrSet(var_r31->unk2, HU3D_ATTR_DISPOFF); + } + } + } +} + +void fn_1_73BC(void) +{ + float var_f31; + M427DllMapSubstruct3 *var_r31; + M427DllMapSubstruct6 *var_r30; + s16 var_r29; + ModelData *var_r28; + s16 var_r27; + + for (var_r27 = 0, var_r31 = lbl_1_bss_158.unk4; var_r27 < 2; var_r27++, var_r31++) { + for (var_r29 = 0; var_r29 < 0xA; var_r29++) { + var_r28 = &Hu3DData[var_r31->unk2[var_r29]]; + var_r30 = fn_1_DC0C(lbl_1_bss_E8[var_r31->unk0], var_r31->unk3C[var_r31->unk44[var_r29]]); + var_f31 = -2000.0f * var_r29; + if (((var_r31->unk84.z - 25000.0f) < var_f31) && ((3000.0f + var_r31->unk84.z) > var_f31)) { + if (var_r31->unk44[var_r29] == -1) { + fn_1_794C(var_r31, var_r29); + var_r28->attr &= 0xFFFFFFFE; + } + else { + if (var_r30) { + var_r30->unk_24 += 5.0f; + if (var_r30->unk_24 >= 360.0f) { + var_r30->unk_24 -= 360.0f; + } + var_r30->unk_48.x = var_r30->unk_48.y = var_r30->unk_48.z = 1.0 + (0.05000000074505806 * sind(var_r30->unk_24)); + } + var_r31->unk24[var_r31->unk44[var_r29]] += 5.0f; + if (var_r31->unk24[var_r31->unk44[var_r29]] >= 360.0f) { + var_r31->unk24[var_r31->unk44[var_r29]] -= 360.0f; + } + var_f31 = 50.0 * sind(var_r31->unk24[var_r31->unk44[var_r29]]); + var_f31 = var_f31; + Hu3DLLightPointSet(var_r31->unk2[var_r29], 1, 400.0f + var_f31, 0.5f, 3); + if (var_r29 == 0) { + var_r30 = fn_1_DC0C(lbl_1_bss_E8[var_r31->unk0], var_r31->unk5A); + if (var_r30->unk_24 >= 360.0f) { + var_r30->unk_24 -= 360.0f; + } + var_r30->unk_48.x = var_r30->unk_48.y = var_r30->unk_48.z = 1.0 + (0.05000000074505806 * sind(var_r30->unk_24)); + var_r31->unk24[1] += 5.0f; + if (var_r31->unk24[1] >= 360.0f) { + var_r31->unk24[1] -= 360.0f; + } + var_f31 = 50.0 * sind(var_r31->unk24[1]); + var_f31 = var_f31; + Hu3DLLightPointSet(var_r31->unk2[var_r29], 2, 400.0f + var_f31, 0.5f, 3); + } + } + } + else { + if (var_r31->unk44[var_r29] != -1) { + if (var_r30) { + var_r30->unk_62 = 0; + } + var_r28->unk_38[1] = -1; + var_r31->unk24[var_r31->unk44[var_r29]] = -1.0f; + var_r31->unk44[var_r29] = -1; + if (var_r29 == 0) { + var_r30 = fn_1_DC0C(lbl_1_bss_E8[var_r31->unk0], var_r31->unk5A); + var_r30->unk_62 = 0; + var_r28->unk_38[2] = -1; + var_r31->unk24[1] = -1.0f; + } + } + var_r28->attr |= 1; + } + } + } +} + +Vec lbl_1_data_144[0xC] = { + { -670.0f, 400.0f, 1750.0f }, + { 930.0f, 400.0f, -1000.0f }, + { -930.0f, 400.0f, -3000.0f }, + { 230.0f, 400.0f, -5000.0f }, + { -1630.0f, 300.0f, -7000.0f }, + { 530.0f, 100.0f, -9000.0f }, + { -530.0f, 100.0f, -11000.0f }, + { 1630.0f, 100.0f, -13000.0f }, + { -230.0f, 0.0f, -15000.0f }, + { 930.0f, -200.0f, -17000.0f }, + { -930.0f, -200.0f, -19000.0f }, + { 930.0f, -200.0f, -21000.0f }, +}; + +void fn_1_794C(M427DllMapSubstruct3 *arg0, s16 arg1) +{ + Vec sp14; + s16 var_r30; + ModelData *var_r28; + + var_r28 = &Hu3DData[arg0->unk2[arg1]]; + { + Vec sp8 = { 0.0f, 0.0f, 0.0f }; + if (arg1 != 0xA) { + for (var_r30 = 0; var_r30 < 4; var_r30++) { + if (arg0->unk24[var_r30] == -1.0f) { + break; + } + } + if (var_r30 != 4) { + var_r28->unk_38[1] = arg0->unk34[var_r30]; + arg0->unk24[var_r30] = 0.0f; + arg0->unk44[arg1] = var_r30; + if (var_r28->unk_38[1] != -1) { + sp14.x = lbl_1_data_144[arg1 + 1].x; + sp14.y = lbl_1_data_144[arg1 + 1].y; + sp14.z = lbl_1_data_144[arg1 + 1].z; + Hu3DLLightPointSet(arg0->unk2[arg1], 1, 400.0f, 0.5f, 3); + Hu3DLLightPosSetV(arg0->unk2[arg1], 1, &sp14, &sp8); + } + arg0->unk3C[var_r30] = fn_1_D430(sp14.x, sp14.y, sp14.z, lbl_1_bss_E8[arg0->unk0]); + if (arg1 == 0) { + var_r30 = 1; + var_r28->unk_38[2] = arg0->unk34[var_r30]; + arg0->unk24[var_r30] = 0.0f; + sp14.x = lbl_1_data_144[0].x; + sp14.y = lbl_1_data_144[0].y; + sp14.z = lbl_1_data_144[0].z; + Hu3DLLightPointSet(arg0->unk2[0], 2, 400.0f, 0.5f, 3); + Hu3DLLightPosSetV(arg0->unk2[0], 2, &sp14, &sp8); + arg0->unk5A = fn_1_D430(sp14.x, sp14.y, sp14.z, lbl_1_bss_E8[arg0->unk0]); + } + } + } + } +} + +float lbl_1_data_1D4[2] = { 50.0f, 80.0f }; + +void fn_1_7C34(void) +{ + Vec sp14; + M427DllMapSubstruct3 *var_r31; + ModelData *var_r30; + s16 var_r29; + s16 var_r28; + M427DllMapUNK17E *var_r27; + M427DllMapSubstruct *var_r26; + s16 var_r25; + + for (var_r26 = lbl_1_bss_158.unk3A0, var_r29 = 0; var_r29 < 5; var_r29++, var_r26++) { + for (var_r28 = 0, var_r31 = lbl_1_bss_158.unk4; var_r28 < 2; var_r28++, var_r31++) { + if ((var_r31->unk18E[var_r29] == 0) && ((var_r31->unk84.z - 7000.0f) < var_r26->unk4.z) + && ((1000.0f + var_r31->unk84.z) > var_r26->unk4.z)) { + fn_1_7E60(var_r29, var_r31); + } + } + } + for (var_r29 = 0, var_r31 = lbl_1_bss_158.unk4; var_r29 < 2; var_r29++, var_r31++) { + for (var_r28 = 0; var_r28 < 2; var_r28++) { + var_r27 = var_r31->unk17E[var_r28]; + for (var_r25 = 0; var_r25 < 2; var_r25++, var_r27++) { + var_r30 = &Hu3DData[var_r27->unk2]; + if ((var_r30->attr & 1) == 0) { + if (((var_r31->unk84.z - 7000.0f) > var_r30->pos.z) || ((1000.0f + var_r31->unk84.z) < var_r30->pos.z)) { + var_r30->attr |= 1; + var_r31->unk18E[var_r27->unk0] = 0; + } + else { + sp14.x = var_r30->pos.x; + sp14.z = var_r30->pos.z; + fn_1_15FD0(sp14, lbl_1_data_1D4[var_r28], 0, 1, var_r31->unk0); + } + } + } + } + } +} + +void fn_1_7E60(s16 arg0, M427DllMapSubstruct3 *arg1) +{ + M427DllMapUNK17E *var_r31; + M427DllMapSubstruct *var_r30; + s16 var_r29; + ModelData *var_r28; + + var_r30 = &lbl_1_bss_158.unk3A0[arg0]; + var_r31 = arg1->unk17E[var_r30->unk0]; + for (var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) { + var_r28 = &Hu3DData[var_r31->unk2]; + if ((var_r28->attr & 1) != 0) { + Hu3DModelAttrReset(var_r31->unk2, HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(var_r31->unk2, var_r30->unk4.x, var_r30->unk4.y, var_r30->unk4.z); + var_r31->unk0 = arg0; + arg1->unk18E[arg0] = 1; + return; + } + } +} + +void fn_1_7F38(void) +{ + Vec sp14; + float var_f31; + M427DllMapUNKB8 *var_r31; + M427DllMapSubstruct3 *var_r30; + ModelData *var_r29; + s16 var_r28; + s16 var_r27; + M427DllMapSubstruct2 *var_r26; + s16 var_r25; + s32 var_r24; + s32 var_r23; + + for (var_r26 = lbl_1_bss_158.unk34C, var_r27 = 0; var_r27 < 3; var_r27++, var_r26++) { + for (var_r28 = 0, var_r30 = lbl_1_bss_158.unk4; var_r28 < 2; var_r28++, var_r30++) { + if ((var_r30->unk178[var_r27] == 0) && ((var_r30->unk84.z - 7000.0f) < var_r26->unk4.z) + && ((1000.0f + var_r30->unk84.z) > var_r26->unk4.z)) { + fn_1_85D4(var_r27, var_r30); + } + } + } + for (var_r27 = 0, var_r30 = lbl_1_bss_158.unk4; var_r27 < 2; var_r27++, var_r30++) { + for (var_r28 = 0; var_r28 < 2; var_r28++) { + var_r31 = var_r30->unkB8[var_r28]; + for (var_r25 = 0; var_r25 < 2; var_r25++, var_r31++) { + var_r29 = &Hu3DData[var_r31->unk2]; + if ((var_r29->attr & 1) == 0) { + if (((var_r30->unk84.z - 7000.0f) > var_r29->pos.z) || ((1000.0f + var_r30->unk84.z) < var_r29->pos.z)) { + if (var_r31->unk8 == 0) { + fn_1_8E1C(1, var_r30, var_r31); + fn_1_9958(var_r31->unk6, 1); + var_r29->attr |= 1; + var_r31->unk8 = 0x63; + var_r30->unk178[var_r31->unk0] = 0; + } + else if (var_r31->unk8 != 2) { + var_r31->unkA = 0; + var_r31->unk8 = 2; + } + } + switch (var_r31->unk8) { + case 0: + if (++var_r31->unkA > var_r31->unk18) { + var_r31->unkA = 0; + var_r31->unkC = 0.0f; + var_r31->unk20 = ((rand8() << 8) | rand8()) % 361; + var_r31->unk24 = ((rand8() << 8) | rand8()) % 361; + var_r31->unk28 = 1.0f; + var_r31->unk2C = 0.0f; + var_r31->unk8++; + } + break; + case 1: + if (++var_r31->unkA > var_r31->unk1E) { + var_r31->unkA = 0; + var_r31->unk8++; + if (fn_1_1788() <= 4) { + if (var_r27 == 0) { + var_r24 = HuAudFXPlay(0x65A); + } + else { + var_r24 = HuAudFXPlay(0x65B); + } + var_r23 = var_r27 * 4 + var_r28 * 2 + var_r25; + lbl_1_bss_0[var_r23].unk0 = var_r24; + lbl_1_bss_0[var_r23].unk4 = 0x78; + } + } + var_r31->unk_14 = 0.1f; + fn_1_8768(var_r30, var_r31, var_r28, 0.2f, var_r31->unk_14); + break; + case 2: + if (++var_r31->unkA > var_r31->unk1A) { + var_r31->unkA = 0; + var_r31->unk8++; + } + if (var_r31->unk_14 < 1.0f) { + var_r31->unk_14 += 0.05f; + } + if (var_r31->unk_14 > 1.0f) { + var_r31->unk_14 = 1.0f; + } + var_r31->unk_10 += 40.0f; + var_r31->unkC += 0.05f; + fn_1_8768(var_r30, var_r31, var_r28, 1.0f, var_r31->unk_14); + break; + case 3: + var_r31->unkA++; + var_f31 = 1.0f - ((float)var_r31->unkA / var_r31->unk1C); + if (var_r31->unkA > var_r31->unk1C) { + var_r31->unkA = 0; + var_f31 = 0.0f; + var_r31->unk8 = 0; + } + var_r31->unk_10 = 400.0 * sind((90.0f * var_f31)); + var_r31->unkC = 1.2f * var_f31; + var_r31->unk_14 = var_f31; + fn_1_8768(var_r30, var_r31, var_r28, var_f31, var_r31->unk_14); + break; + } + sp14.x = var_r29->pos.x; + sp14.z = var_r29->pos.z; + fn_1_15FD0(sp14, 50.0f, 0, 1, var_r30->unk0); + } + } + } + } +} + +void fn_1_85D4(s16 arg0, M427DllMapSubstruct3 *arg1) +{ + float var_f31; + M427DllMapUNKB8 *var_r31; + M427DllMapSubstruct2 *var_r30; + s16 var_r29; + ModelData *var_r27; + + var_r30 = &lbl_1_bss_158.unk34C[arg0]; + var_r31 = arg1->unkB8[var_r30->unk0]; + for (var_r29 = 0; var_r29 < 2; var_r29++, var_r31++) { + var_r27 = &Hu3DData[var_r31->unk2]; + if ((var_r27->attr & 1) != 0) { + Hu3DModelAttrReset(var_r31->unk2, HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(var_r31->unk2, var_r30->unk4.x, var_r30->unk4.y, var_r30->unk4.z); + var_r31->unk8 = 0; + var_r31->unkA = 0; + var_r31->unk18 = var_r30->unk14[0]; + var_r31->unk1A = var_r30->unk14[1]; + var_r31->unk1C = var_r30->unk14[2]; + var_r31->unk1E = var_r30->unk14[3]; + var_r31->unk0 = arg0; + arg1->unk178[arg0] = 1; + fn_1_9A2C(var_r31->unk6, var_r30->unk4.x, var_r30->unk4.y, var_r30->unk4.z); + if (var_r30->unk0 == 0) { + var_f31 = 90.0f; + } + else { + var_f31 = 270.0f; + } + fn_1_9B14(var_r31->unk6, 0.0f, var_f31, 0.0f); + fn_1_999C(var_r31->unk6, 1); + fn_1_8E1C(0, arg1, var_r31); + return; + } + } +} + +float lbl_1_data_1DC[2] = { -1.0f, 1.0f }; +float lbl_1_data_1E4[2] = { 270.0f, 90.0f }; + +void fn_1_8768(M427DllMapSubstruct3 *var_r28, M427DllMapUNKB8 *var_r31, s16 var_r27, float var_f28, float var_f29) +{ + Vec sp50; + Vec sp44; + Vec sp38; + Vec sp2C; + Vec sp20; + float var_f31; + float var_f30; + ModelData *var_r30; + M427DllMapStruct *var_r29; + + var_r30 = &Hu3DData[var_r31->unk2]; + var_f31 = var_f28 * var_r31->unk28; + sp50.x = var_r30->pos.x + (60.0f * lbl_1_data_1DC[var_r27]); + sp50.y = 80.0f + var_r30->pos.y; + sp50.z = var_r30->pos.z; + if (var_r31->unk8 == 1) { + fn_1_C76C(0, sp50.x, sp50.y, sp50.z, 1, lbl_1_data_1E4[var_r27], var_f31, lbl_1_bss_EC[var_r28->unk0]); + return; + } + fn_1_C76C(1, sp50.x, sp50.y, sp50.z, 1, lbl_1_data_1E4[var_r27], var_f31, lbl_1_bss_EC[var_r28->unk0]); + if (var_r31->unk_10 > (400.0f * var_r31->unk28)) { + var_r31->unk_10 = 400.0f * var_r31->unk28; + } + else if (var_r31->unk_10 < 1.0f) { + var_r31->unk_10 = 1.0f; + } + var_r31->unk2C += 30.0f; + if (var_r31->unk2C >= 360.0f) { + var_r31->unk2C -= 360.0f; + } + sp50.x = var_r30->pos.x + (240.0f * lbl_1_data_1DC[var_r27]); + sp50.y = 100.0f + var_r30->pos.y; + sp50.z = var_r30->pos.z; + sp44.x = sp44.y = sp44.z = 0.0f; + var_f30 = var_r31->unk_10 + (var_f28 * (50.0 * sind(var_r31->unk2C))); + Hu3DLLightPointSet(var_r31->unk2, var_r31->unk4, var_f30, 0.5f, 3); + Hu3DLLightPosSetV(var_r31->unk2, var_r31->unk4, &sp50, &sp44); + var_r29 = &lbl_1_bss_F0[var_r31->unk6]; + var_r29->unk90 -= 0.0005f; + var_r29->unk8C += 0.005f; + var_r29->unk94 += 0.001f; + if (var_r31->unkC > 1.0f) { + var_r31->unkC = 1.0f; + } + else if (var_r31->unkC < 0.0f) { + var_r31->unkC = 0.0f; + } + fn_1_99E4(var_r31->unk6, 0xFF, 0xA0, 0x60, 255.0f * var_r31->unkC); + var_r31->unk20 += 2.0f; + var_r31->unk24 += (((rand8() << 8) | rand8()) % 5) + 4; + if (var_r31->unk20 >= 360.0f) { + var_r31->unk20 -= 360.0f; + } + if (var_r31->unk24 >= 360.0f) { + var_r31->unk24 -= 360.0f; + } + sp38.x = 1.0 + (0.009999999776482582 * sind(var_r31->unk24)); + sp38.z = var_r31->unk28 + (0.009999999776482582 * sind(var_r31->unk20)); + fn_1_9AA0(var_r31->unk6, sp38.x, 1.0f, sp38.z); + if (var_r27 == 0) { + sp2C.x = var_r30->pos.x - (700.0f * var_f31 * var_f29); + sp20.x = var_r30->pos.x - 50.0f; + } + else { + sp2C.x = 50.0f + var_r30->pos.x; + sp20.x = var_r30->pos.x + (700.0f * var_f31 * var_f29); + } + sp2C.z = var_r30->pos.z - 30.0f; + sp20.z = 30.0f + var_r30->pos.z; + fn_1_15F10(sp2C, sp20, 1, 1, var_r28->unk0); +} + +void fn_1_8E1C(u8 arg0, M427DllMapSubstruct3 *arg1, M427DllMapUNKB8 *arg2) +{ + s32 spC[8]; + s16 var_r30; + ModelData *var_r29; + M427DllMapSubstruct2 *var_r27; + s16 var_r26; + ModelData *var_r25; + s16 var_r24; + + var_r27 = &lbl_1_bss_158.unk34C[arg2->unk0]; + var_r25 = &Hu3DData[arg2->unk2]; + if (arg0 == 0) { + var_r26 = var_r25->unk_38[arg2->unk4]; + } + else { + var_r26 = -1; + } + var_r24 = fn_1_10FE8(arg1->unk0, spC); + for (var_r30 = 0; var_r30 < var_r24; var_r30++) { + var_r29 = &Hu3DData[spC[var_r30]]; + var_r29->unk_38[arg2->unk4] = var_r26; + } + var_r29 = &Hu3DData[arg1->unk1A]; + var_r29->unk_38[arg2->unk4] = var_r26; + for (var_r30 = 0; var_r30 < 2; var_r30++) { + if (var_r27->unk10[var_r30] != -1) { + var_r29 = &Hu3DData[arg1->unk2[var_r27->unk10[var_r30]]]; + var_r29->unk_38[arg2->unk4] = var_r26; + } + } +} + +void fn_1_8F90(omObjData *object) +{ + Vec sp14; + Vec sp8; + float var_f31; + float var_f30; + M427DllMapSubstruct3 *var_r31; + s16 var_r30; + M427DllMapStruct3 *var_r29; + + var_r29 = &lbl_1_bss_158; + for (var_r30 = 0, var_r31 = var_r29->unk4; var_r30 < 2; var_r30++, var_r31++) { + var_f31 = sind(var_r31->unk90); + var_f30 = cosd(var_r31->unk90); + var_r31->unk_60.x = var_r31->unk84.x - (25.0f * var_f31); + var_r31->unk_60.y = 100.0f + var_r31->unk84.y; + var_r31->unk_60.z = var_r31->unk84.z - (25.0f * var_f30); + var_r31->unk_6C.x = var_r31->unk_60.x - (50.0f * var_f31); + var_r31->unk_6C.y = var_r31->unk_60.y; + var_r31->unk_6C.z = var_r31->unk_60.z - (50.0f * var_f30); + Hu3DLLightPosSet(var_r31->unk2[0], var_r31->unk5C, var_r31->unk_60.x, var_r31->unk_60.y, var_r31->unk_60.z, 0.0f, 0.0f, 0.0f); + Hu3DLLightPosAimSetV(var_r31->unk2[0], var_r31->unk5C, &var_r31->unk_60, &var_r31->unk_6C); + fn_1_9A2C(var_r31->unkB0[0], var_r31->unk84.x, var_r31->unk84.y, var_r31->unk84.z); + fn_1_9B14(var_r31->unkB0[0], 0.0f, var_r31->unk90, 0.0f); + sp14.x = var_r31->unk84.x; + sp14.y = 100.0f + var_r31->unk84.y; + sp14.z = 50.0f + var_r31->unk84.z; + sp8.x = sp8.y = sp8.z = 0.0f; + Hu3DLLightPosSetV(var_r31->unk1A, 1, &sp14, &sp8); + } +} + +void fn_1_91E0(s16 arg0, float arg8, float arg9, float argA, float argB) +{ + M427DllMapSubstruct3 *var_r31; + + var_r31 = &lbl_1_bss_158.unk4[arg0]; + var_r31->unk84.x = arg8; + var_r31->unk84.y = arg9; + var_r31->unk84.z = argA; + var_r31->unk90 = argB; + if (var_r31->unkAC) { + var_r31->unkAC->unk_0C = 1500.0f + argA; + } +} + +void fn_1_9240(void) +{ + M427DllMapStruct *var_r31; + M427DllMapSubstruct3 *var_r30; + s16 var_r29; + s16 var_r28; + + for (var_r30 = lbl_1_bss_158.unk4, var_r28 = 0; var_r28 < 2; var_r28++, var_r30++) { + for (var_r29 = 0; var_r29 < 1; var_r29++) { + var_r31 = &lbl_1_bss_F0[var_r30->unkB0[var_r29]]; + var_r31->unk90 -= 0.0005f; + var_r31->unk8C += 0.0005f; + var_r31->unk94 += 0.0005f; + } + } +} + +void fn_1_9318(s16 *arg0, s16 arg1) +{ + s16 var_r31; + ModelData *var_r30; + ModelData *var_r29; + s16 var_r28; + + var_r30 = &Hu3DData[*arg0]; + for (var_r28 = 1; var_r28 < arg1; var_r28++) { + var_r29 = &Hu3DData[arg0[var_r28]]; + for (var_r31 = 0; var_r31 < 8; var_r31++) { + if (var_r30->unk_38[var_r31] != -1) { + var_r29->unk_38[var_r31] = var_r30->unk_38[var_r31]; + } + } + var_r29->attr |= 0x1000; + } +} + +void fn_1_93EC(s32 sp8, s32 spC, float var_f30, float var_f31, float sp10, float sp14) +{ + M427DllMapStruct3Sub *var_r31; + + var_r31 = &lbl_1_bss_158.unk334; + var_r31->unk_00 = HuSprAnimRead(HuDataReadNum(sp8, MEMORY_DEFAULT_NUM)); + var_r31->unk_04 = HuSprAnimRead(HuDataReadNum(spC, MEMORY_DEFAULT_NUM)); + var_r31->unk_08 = 0.5f * var_f30; + var_r31->unk_0C = 0.5f * var_f31; + var_r31->unk_10 = sp10 / var_f30; + var_r31->unk_14 = sp14 / var_f31; +} + +void fn_1_94BC(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, float arg8, Vec2f *arg4, s16 arg5) +{ + Mtx sp58; + Mtx sp28; + Vec sp1C; + Vec sp10; + M427DllMapStruct3Sub *var_r31; + s16 var_r28; + + var_r31 = &lbl_1_bss_158.unk334; + for (var_r28 = 0; var_r28 < arg5; var_r28++, arg2++, arg4++) { + MTXScale(sp58, arg3->x, arg3->y, arg3->z); + MTXRotRad(sp28, 0x59, MTXDegToRad(arg8)); + MTXConcat(sp58, sp28, sp58); + MTXMultVec(sp58, arg2, &sp1C); + sp10.x = var_r31->unk_08 + ((sp1C.x + arg1->x) - arg0->x); + sp10.z = var_r31->unk_0C + ((sp1C.z + arg1->z) - arg0->z); + arg4->x = sp10.x * var_r31->unk_10; + arg4->y = sp10.z * var_r31->unk_14; + } +} + +s16 fn_1_95E8(s32 arg0, s16 arg1, s16 arg2, float arg8, float arg9, float argA, float argB, float argC) +{ + M427DllMapStruct *var_r31; + s16 var_r30; + s16 var_r29; + void *var_r28; + void *var_r26; + + for (var_r31 = lbl_1_bss_F0, var_r29 = 0; var_r29 < 0x10; var_r29++, var_r31++) { + if (var_r31->unk2 == -1) { + break; + } + } + if (var_r29 == 0x10) { + return -1; + } + var_r31->unk4 = Hu3DHookFuncCreate(fn_1_9B88); + Hu3DModelCameraSet(var_r31->unk4, arg1 ? 2 : 1); + Hu3DModelLayerSet(var_r31->unk4, arg2); + Hu3DData[var_r31->unk4].unk_120 = var_r31; + Hu3DModelPosSet(var_r31->unk4, 0.0f, 0.0f, -2000.0f); + var_r31->unk0 = 0; + var_r31->unk2 = arg1; + var_r31->unk7C.r = var_r31->unk7C.g = var_r31->unk7C.b = var_r31->unk7C.a = 0xFF; + var_r31->unk88 = var_r31->unk8C = 0.0f; + var_r31->unk90 = var_r31->unk94 = 0.0f; + var_r31->unk8 = HuSprAnimRead(HuDataReadNum(arg0, MEMORY_DEFAULT_NUM)); + fn_1_C2AC(&var_r31->unkC, arg8 - argA, argC, arg9 - argB); + fn_1_C2BC(&var_r31->unk3C, 0.0f, 0.0f); + fn_1_C2AC(&var_r31->unk18, arg8 + argA, argC, arg9 - argB); + fn_1_C2BC(&var_r31->unk44, 1.0f, 0.0f); + fn_1_C2AC(&var_r31->unk24, arg8 + argA, argC, arg9 + argB); + fn_1_C2BC(&var_r31->unk4C, 1.0f, 1.0f); + fn_1_C2AC(&var_r31->unk30, arg8 - argA, argC, arg9 + argB); + fn_1_C2BC(&var_r31->unk54, 0.0f, 1.0f); + DCFlushRangeNoSync(&var_r31->unkC, 0x30); + DCFlushRangeNoSync(&var_r31->unk3C, 0x20); + PPCSync(); + var_r28 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x1000, MEMORY_DEFAULT_NUM); + var_r26 = var_r28; + DCFlushRange(var_r28, 0x1000); + GXBeginDisplayList(var_r26, 0x1000); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + for (var_r30 = 0; var_r30 < 4; var_r30++) { + GXPosition1x16(var_r30); + GXPosition1x16(var_r30); + GXPosition1x16(var_r30); + } + var_r31->unk84 = GXEndDisplayList(); + var_r31->unk80 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r31->unk84, MEMORY_DEFAULT_NUM); + memcpy(var_r31->unk80, var_r28, var_r31->unk84); + DCFlushRange(var_r31->unk80, var_r31->unk84); + HuMemDirectFree(var_r28); + return var_r29; +} + +void fn_1_9958(s16 arg0, u8 arg1) +{ + M427DllMapStruct *var_r31; + + if (arg0 != -1) { + var_r31 = &lbl_1_bss_F0[arg0]; + var_r31->unk0 |= arg1; + } +} + +void fn_1_999C(s16 arg0, u8 arg1) +{ + M427DllMapStruct *var_r31; + + if (arg0 != -1) { + var_r31 = &lbl_1_bss_F0[arg0]; + var_r31->unk0 &= ~arg1; + } +} + +void fn_1_99E4(s16 arg0, u8 arg1, u8 arg2, u8 arg3, u8 arg4) +{ + M427DllMapStruct *var_r31; + + if (arg0 != -1) { + var_r31 = &lbl_1_bss_F0[arg0]; + var_r31->unk7C.r = arg1; + var_r31->unk7C.g = arg2; + var_r31->unk7C.b = arg3; + var_r31->unk7C.a = arg4; + } +} + +void fn_1_9A2C(s16 arg0, float arg8, float arg9, float argA) +{ + M427DllMapStruct *var_r31; + + if (arg0 != -1) { + var_r31 = &lbl_1_bss_F0[arg0]; + Hu3DModelPosSet(var_r31->unk4, arg8, arg9, argA); + } +} + +void fn_1_9AA0(s16 arg0, float arg8, float arg9, float argA) +{ + M427DllMapStruct *var_r31; + + if (arg0 != -1) { + var_r31 = &lbl_1_bss_F0[arg0]; + Hu3DModelScaleSet(var_r31->unk4, arg8, arg9, argA); + } +} + +void fn_1_9B14(s16 arg0, float arg8, float arg9, float argA) +{ + M427DllMapStruct *var_r31; + + if (arg0 != -1) { + var_r31 = &lbl_1_bss_F0[arg0]; + Hu3DModelRotSet(var_r31->unk4, arg8, arg9, argA); + } +} + +void fn_1_9B88(ModelData *model, Mtx matrix) +{ + Mtx sp88; + M427DllMapStruct *var_r31; + M427DllMapSubstruct3 *var_r27; + M427DllMapStruct3Sub *var_r26; + + var_r31 = model->unk_120; + var_r27 = &lbl_1_bss_158.unk4[var_r31->unk2]; + var_r26 = &lbl_1_bss_158.unk334; + if ((var_r31->unk0 & 1) == 0) { + fn_1_94BC(&var_r27->unk78, &model->pos, &var_r31->unkC, &model->scale, model->rot.y, var_r31->unk5C, 4); + DCFlushRangeNoSync(var_r31->unk5C, 4 * sizeof(Vec2f)); + PPCSync(); + GXLoadPosMtxImm(matrix, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_POS, &var_r31->unkC, sizeof(Vec)); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_TEX0, &var_r31->unk3C, sizeof(Vec2f)); + GXSetVtxDesc(GX_VA_TEX1, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_TEX_ST, GX_RGBA6, 0); + GXSetArray(GX_VA_TEX1, var_r31->unk5C, sizeof(Vec2f)); + HuSprTexLoad(var_r31->unk8, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + HuSprTexLoad(var_r26->unk_04, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + HuSprTexLoad(var_r26->unk_00, 0, 2, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetNumTexGens(3); + MTXScale(sp88, 1.0f, 1.0f, 1.0f); + mtxTransCat(sp88, var_r31->unk88, var_r31->unk90, 0.0f); + GXLoadTexMtxImm(sp88, 0x1E, GX_MTX2x4); + MTXScale(sp88, 1.0f, 1.0f, 1.0f); + mtxTransCat(sp88, var_r31->unk8C, var_r31->unk94, 0.0f); + GXLoadTexMtxImm(sp88, 0x21, GX_MTX2x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, 0, 0x7D); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX1, 0x1E, 0, 0x7D); + GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX0, 0x21, 0, 0x7D); + GXSetNumTevStages(2); + GXSetTevColor(GX_TEVREG1, var_r31->unk7C); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_C1, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_C0, GX_CC_TEXA, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_A1, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumIndStages(1); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD2, GX_TEXMAP2); + GXSetTevIndWarp(0, 0, 1, 0, 1); + MTXScale(sp88, 0.1f, 0.10000000149011612 * -sind(model->rot.y), 1.0f); + GXSetIndTexMtx(GX_ITM_0, (float(*)[3])sp88, 0); + GXSetNumChans(0); + GXSetZMode(0, GX_LEQUAL, 0); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + GXCallDisplayList(var_r31->unk80, var_r31->unk84); + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); + GXSetTevDirect(GX_TEVSTAGE1); + } +} + +void fn_1_A148(ModelData *model, Mtx matrix) +{ + M427DllMapSubstruct3Sub *var_r31; + + var_r31 = model->unk_120; + if (var_r31->unk0 == 0) { + GXSetTexCopySrc(0, 0, 0x140, 0x1E0); + GXSetTexCopyDst(0x140, 0x1E0, GX_TF_RGB5A3, 0); + } + else { + GXSetTexCopySrc(0x140, 0, 0x140, 0x1E0); + GXSetTexCopyDst(0x140, 0x1E0, GX_TF_RGB5A3, 0); + } + GXCopyTex(var_r31->unk4, 1); + DCFlushRange(var_r31->unk4, var_r31->unk8); +} + +s16 fn_1_A1F4(s32 arg0, s16 arg1, s16 arg2, s16 arg3, float arg8, Vec *arg4, Vec *arg5) +{ + float var_f31; + float var_f30; + float var_f29; + float var_f28; + M427DllMapStruct6 *var_r31; + M427DllMapSubstruct5 *var_r30; + ModelData *var_r29; + s16 var_r28; + s16 var_r27; + Vec2f *var_r26; + void *var_r25; + M427DllMapStruct3 *var_r22; + u16 var_r21; + s16 var_r19; + void *var_r18; + + var_r22 = &lbl_1_bss_158; + var_r28 = Hu3DHookFuncCreate(fn_1_B3CC); + var_r19 = var_r28; + Hu3DModelCameraSet(var_r28, arg3 ? 2 : 1); + Hu3DModelLayerSet(var_r28, 5); + var_r29 = &Hu3DData[var_r28]; + var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M427DllMapStruct6), var_r29->unk_48); + var_r29->unk_120 = var_r31; + var_r22->unk4[arg3].unkAC = var_r31; + var_r31->unk_00 = arg3; + var_r31->unk_0C = 0.0f; + var_r31->unk_10 = arg8; + var_r31->unk_04 = arg4; + var_r31->unk_08 = arg5; + var_r31->unk_14 = var_r31->unk_18 = 0.0f; + var_r31->unk_1C = var_r31->unk_20 = 0.0f; + var_r31->unk_4C = var_r31->unk_50 = 0.0f; + var_r31->unk_54 = 120.0f; + var_r31->unk_58 = 72.0f; + var_r31->unk_5C = 10.0f; + var_r31->unk_60 = 10.0f; + var_r31->unk_28 = HuSprAnimRead(HuDataReadNum(arg0, MEMORY_DEFAULT_NUM)); + var_r31->unk_3A = arg1 + 1; + var_r31->unk_3C = arg2 + 1; + var_r31->unk_38 = var_r31->unk_3A * var_r31->unk_3C; + var_r31->unk_2C = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_38 * sizeof(Vec), var_r29->unk_48); + var_r26 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_38 * sizeof(Vec2f), var_r29->unk_48); + var_r31->unk_30 = var_r26; + var_r31->unk_34 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_38 * sizeof(Vec), var_r29->unk_48); + var_r30 = HuMemDirectMallocNum(HEAP_DATA, arg2 * (arg1 * sizeof(M427DllMapSubstruct5)), var_r29->unk_48); + var_r31->unk_48 = var_r30; + var_r25 = HuMemDirectMallocNum(HEAP_DATA, 0x20000, var_r29->unk_48); + var_r18 = var_r25; + DCFlushRange(var_r25, 0x20000); + GXBeginDisplayList(var_r18, 0x20000); + GXBegin(GX_QUADS, GX_VTXFMT0, arg1 * arg2 * 4); + for (var_r28 = 0; var_r28 < arg2; var_r28++) { + for (var_r27 = 0; var_r27 < arg1; var_r27++) { + var_r30->unk0 = var_r27 + (var_r28 * var_r31->unk_3A); + var_r30->unk2 = var_r27 + var_r28 * var_r31->unk_3A + 1; + var_r30->unk4 = var_r27 + ((var_r28 + 1) * var_r31->unk_3A) + 1; + var_r30->unk6 = var_r27 + ((var_r28 + 1) * var_r31->unk_3A); + GXPosition1x16(var_r30->unk0); + GXPosition1x16(var_r30->unk0); + GXPosition1x16(var_r30->unk0); + GXPosition1x16(var_r30->unk2); + GXPosition1x16(var_r30->unk2); + GXPosition1x16(var_r30->unk2); + GXPosition1x16(var_r30->unk4); + GXPosition1x16(var_r30->unk4); + GXPosition1x16(var_r30->unk4); + GXPosition1x16(var_r30->unk6); + GXPosition1x16(var_r30->unk6); + GXPosition1x16(var_r30->unk6); + fn_1_C2C8(&var_r31->unk_2C[var_r30->unk0], &var_r31->unk_2C[var_r30->unk2], &var_r31->unk_2C[var_r30->unk4], &var_r30->unk8); + var_r30++; + } + } + var_r31->unk_44 = GXEndDisplayList(); + var_r31->unk_40 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_44, var_r29->unk_48); + memcpy(var_r31->unk_40, var_r25, var_r31->unk_44); + DCFlushRange(var_r31->unk_40, var_r31->unk_44); + HuMemDirectFree(var_r25); + fn_1_A7F8(var_r31); + var_f29 = 3.0f / (var_r31->unk_3A - 1); + var_f28 = 5.0f / (var_r31->unk_3C - 1); + var_f30 = 0.0f; + for (var_r28 = 0; var_r28 < var_r31->unk_3C; var_r28++) { + var_f31 = 0.0f; + for (var_r27 = 0; var_r27 < var_r31->unk_3A; var_r27++) { + var_r26->x = var_f31; + var_r26->y = var_f30; + var_f31 += var_f29; + var_r26++; + } + var_f30 += var_f28; + } + DCFlushRangeNoSync(var_r31->unk_30, var_r31->unk_38 * 8); + PPCSync(); + return var_r19; +} + +void fn_1_A7F8(M427DllMapStruct6 *var_r31) +{ + Vec sp1C; + float sp14[2]; + float spC[2]; + float var_f29; + float var_f28; + float var_f27; + M427DllMapSubstruct5 *var_r30; + Vec *var_r29; + s16 var_r28; + Vec *var_r27; + s16 var_r26; + s16 var_r25; + + if (omPauseChk() == 0) { + var_r31->unk_4C += 1.0f; + var_r31->unk_50 += 1.5f; + } + if (var_r31->unk_4C >= 360.0f) { + var_r31->unk_4C -= 360.0f; + } + if (var_r31->unk_50 >= 360.0f) { + var_r31->unk_50 -= 360.0f; + } + var_r27 = var_r31->unk_2C; + var_r29 = var_r31->unk_34; + spC[0] = var_r31->unk_0C - var_r31->unk_10; + spC[1] = var_r31->unk_10 / (var_r31->unk_3C - 1); + var_f28 = var_r31->unk_50; + for (var_r28 = 0; var_r28 < var_r31->unk_3C; var_r28++) { + fn_1_B194(var_r31, spC[0], &sp1C); + sp14[0] = sp1C.x; + sp14[1] = (sp1C.y - sp1C.x) / (var_r31->unk_3A - 1); + var_f29 = var_r31->unk_4C; + for (var_r26 = 0; var_r26 < var_r31->unk_3A; var_r26++) { + var_r27->x = sp14[0]; + var_r27->y = sp1C.z + (var_r31->unk_5C * sind(var_f29)) + var_r31->unk_60 * sind(var_f28); + var_r27->z = spC[0]; + sp14[0] += sp14[1]; + var_r27++; + var_r29->x = var_r29->y = var_r29->z = 0.0f; + var_r29++; + var_f29 += var_r31->unk_54; + if (var_f29 >= 360.0f) { + var_f29 -= 360.0f; + } + } + spC[0] += spC[1]; + var_f28 += var_r31->unk_58; + if (var_f28 >= 360.0f) { + var_f28 -= 360.0f; + } + } + var_r30 = var_r31->unk_48; + var_r25 = (var_r31->unk_3A - 1) * (var_r31->unk_3C - 1); + for (var_r28 = 0; var_r28 < var_r25; var_r28++) { + fn_1_C2C8(&var_r31->unk_2C[var_r30->unk0], &var_r31->unk_2C[var_r30->unk2], &var_r31->unk_2C[var_r30->unk4], &var_r30->unk8); + var_r31->unk_34[var_r30->unk0].x += var_r30->unk8.x; + var_r31->unk_34[var_r30->unk0].y += var_r30->unk8.y; + var_r31->unk_34[var_r30->unk0].z += var_r30->unk8.z; + + var_r31->unk_34[var_r30->unk2].x += var_r30->unk8.x; + var_r31->unk_34[var_r30->unk2].y += var_r30->unk8.y; + var_r31->unk_34[var_r30->unk2].z += var_r30->unk8.z; + + var_r31->unk_34[var_r30->unk4].x += var_r30->unk8.x; + var_r31->unk_34[var_r30->unk4].y += var_r30->unk8.y; + var_r31->unk_34[var_r30->unk4].z += var_r30->unk8.z; + + var_r31->unk_34[var_r30->unk6].x += var_r30->unk8.x; + var_r31->unk_34[var_r30->unk6].y += var_r30->unk8.y; + var_r31->unk_34[var_r30->unk6].z += var_r30->unk8.z; + var_r30++; + } + var_r29 = var_r31->unk_34; + for (var_r28 = 0; var_r28 < var_r31->unk_38; var_r28++) { + var_f27 = sqrtf((var_r29->z * var_r29->z) + ((var_r29->x * var_r29->x) + (var_r29->y * var_r29->y))); + var_r29->x /= var_f27; + var_r29->y /= var_f27; + var_r29->z /= var_f27; + var_r29++; + } + DCFlushRangeNoSync(var_r31->unk_2C, var_r31->unk_38 * sizeof(Vec)); + DCFlushRangeNoSync(var_r31->unk_34, var_r31->unk_38 * sizeof(Vec)); + PPCSync(); +} + +s16 lbl_1_data_1EC[2] = { 0, 0 }; + +float fn_1_AE78(s16 arg0, float arg8, float arg9) +{ + float sp8[2]; + float var_f31; + float var_f30; + Vec *var_r31; + s16 var_r30; + M427DllMapSubstruct3 *var_r29; + Vec *var_r28; + s16 var_r27; + s16 var_r26; + + var_r29 = &lbl_1_bss_158.unk4[arg0]; + if (lbl_1_bss_158.unk0 != 0) { + if (lbl_1_bss_158.unk0 == 1) { + lbl_1_data_1EC[arg0] = 0; + lbl_1_bss_158.unk0 = 2; + } + if (!lbl_1_bss_98.unk4) { + return 0.0f; + } + var_r28 = lbl_1_bss_98.unk4; + var_r31 = &lbl_1_bss_98.unk4[lbl_1_data_1EC[arg0]]; + var_r27 = lbl_1_bss_98.unk14; + var_r26 = lbl_1_bss_98.unk16; + for (var_r30 = lbl_1_data_1EC[arg0]; var_r30 < var_r27; var_r30++, var_r31++) { + if (arg9 >= var_r31->z && arg8 >= var_r31->x) { + break; + } + } + if (var_r30 == var_r27) { + return 0.0f; + } + } + else { + if (!var_r29->unkAC) { + return 0.0f; + } + var_r28 = var_r29->unkAC->unk_2C; + var_r31 = &var_r29->unkAC->unk_2C[lbl_1_data_1EC[arg0]]; + var_r27 = var_r29->unkAC->unk_38; + var_r26 = var_r29->unkAC->unk_3A; + for (var_r30 = lbl_1_data_1EC[arg0]; var_r30 < var_r27; var_r30++, var_r31++) { + if (arg9 <= var_r31->z && arg8 <= var_r31->x) { + break; + } + } + if (var_r30 == var_r27) { + return 0.0f; + } + } + sp8[0] = var_r31->x - var_r28[var_r30 - 1].x; + sp8[1] = arg8 - var_r28[var_r30 - 1].x; + var_f30 = sp8[1] / sp8[0]; + var_f31 = var_r31->y - var_r28[var_r30 - 1].y; + var_f31 = var_r28[var_r30 - 1].y + (var_f31 * var_f30); + lbl_1_data_1EC[arg0] = var_r30 - (var_r26 * 2); + return 20.0f + var_f31; +} + +void fn_1_B194(M427DllMapStruct6 *arg0, float arg8, Vec *arg1) +{ + float sp10[2]; + float sp8[2]; + float var_f31; + s16 var_r31; + + for (var_r31 = lbl_1_bss_580; var_r31 != 0;) { + var_r31--; + if (arg0->unk_04[var_r31].z >= arg8) { + if (var_r31 == (lbl_1_bss_580 - 1)) { + arg1->x = arg0->unk_08[var_r31].x; + arg1->y = arg0->unk_04[var_r31].x; + arg1->z = arg0->unk_04[var_r31].y; + } + else { + var_f31 = (arg0->unk_04[var_r31].z - arg8) / (arg0->unk_04[var_r31].z - arg0->unk_04[var_r31 + 1].z); + sp10[0] = arg0->unk_08[var_r31].x - 100.0f; + sp10[1] = arg0->unk_08[var_r31 + 1].x - 100.0f; + sp8[0] = 100.0f + arg0->unk_04[var_r31].x; + sp8[1] = 100.0f + arg0->unk_04[var_r31 + 1].x; + arg1->x = sp10[0] + (var_f31 * (sp10[1] - sp10[0])); + arg1->y = sp8[0] + (var_f31 * (sp8[1] - sp8[0])); + arg1->z = arg0->unk_04[var_r31].y + (var_f31 * (arg0->unk_04[var_r31 + 1].y - arg0->unk_04[var_r31].y)); + } + return; + } + } +} + +void fn_1_B3CC(ModelData *model, Mtx matrix) +{ + Mtx sp154; + Mtx sp124; + Mtx spF4; + Mtx spC4; + GXTexObj sp44; + Vec2f sp18; + GXColor sp14; + float var_f31; + M427DllMapStruct6 *var_r31; + M427DllMapSubstruct3 *var_r30; + M427DllMapSubstruct3Sub *var_r27; + M427DllMapStruct3Sub *var_r24; + s16 var_r21; + + var_r31 = model->unk_120; + var_r30 = &lbl_1_bss_158.unk4[var_r31->unk_00]; + var_r27 = &var_r30->unk94; + var_r24 = &lbl_1_bss_158.unk334; + fn_1_A7F8(var_r31); + GXLoadPosMtxImm(matrix, 0); + MTXInvXpose(matrix, spF4); + GXLoadNrmMtxImm(spF4, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, var_r31->unk_2C, sizeof(Vec)); + GXSetVtxDesc(GX_VA_NRM, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetArray(GX_VA_NRM, var_r31->unk_34, sizeof(Vec)); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, var_r31->unk_30, 8); + if (var_r31->unk_00 == 0) { + GXInitTexObj(&sp44, var_r27->unk4, 0x140, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0); + } + else { + GXInitTexObj(&sp44, var_r27->unk4, 0x140, 0x1E0, GX_TF_RGB5A3, GX_CLAMP, GX_CLAMP, 0); + } + GXInitTexObjLOD(&sp44, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, 0, 0, GX_ANISO_1); + GXLoadTexObj(&sp44, GX_TEXMAP0); + HuSprTexLoad(var_r31->unk_28, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); + HuSprTexLoad(var_r24->unk_00, 0, 2, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetNumTevStages(3); + sp14.r = 0; + sp14.g = 0xB6; + sp14.b = 0xCC; + sp14.a = 0x40; + GXSetTevColor(GX_TEVREG2, sp14); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_4, GX_TRUE, GX_TEVREG0); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG0); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_TEXA, GX_CC_C2, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG1); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVREG1); + GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE2, GX_CC_ZERO, GX_CC_C1, GX_CC_RASC, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE2, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumIndStages(1); + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD2, GX_TEXMAP2); + GXSetTevIndWarp(1, 0, 1, 0, 1); + MTXScale(spF4, -0.1f, 0.1f, 1.0f); + GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spF4, 0); + GXSetNumTexGens(3); + C_MTXLightPerspective(sp154, 45.0f, 0.6f, 0.5f, -0.5f, 0.5f, 0.5f); + MTXCopy(matrix, sp124); + MTXInverse(Hu3DCameraMtx, spF4); + MTXConcat(spF4, sp124, spF4); + MTXConcat(sp154, Hu3DCameraMtx, spC4); + MTXConcat(spC4, spF4, spF4); + GXLoadTexMtxImm(spF4, 0x1E, GX_MTX3x4); + { + Vec sp38 = { 1.0f, 1.0f, 1.0f }; + var_f31 = 0.0f; + fn_1_94BC(&var_r30->unk78, &var_r30->unk84, var_r31->unk_2C, &sp38, var_f31, &sp18, 1); + } + if (omPauseChk() == 0) { + var_r31->unk_20 = var_r31->unk_20 - 0.001f; + } + MTXScale(spF4, 1.0f, 1.0f, 1.0f); + mtxTransCat(spF4, 0.0f, var_r31->unk_20 + (0.3f * sp18.y), 0.0f); + GXLoadTexMtxImm(spF4, 0x21, GX_MTX2x4); + if (omPauseChk() == 0) { + var_r31->unk_24 += 0.05f; + } + if (var_r31->unk_24 >= 360.0f) { + var_r31->unk_24 -= 360.0f; + } + var_r31->unk_14 = sind(var_r31->unk_24); + if (omPauseChk() == 0) { + var_r31->unk_1C += 0.0005f; + } + MTXScale(spF4, 0.5f, 0.5f, 0.5f); + mtxTransCat(spF4, var_r31->unk_14, var_r31->unk_1C, 0.0f); + GXLoadTexMtxImm(spF4, 0x24, GX_MTX2x4); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX0, 0x21, GX_FALSE, 0x7D); + GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX0, 0x24, GX_FALSE, 0x7D); + GXSetNumChans(1); + var_r21 = Hu3DLightSet(model, &Hu3DCameraMtx, &Hu3DCameraMtxXPose, 0.0f); + GXSetChanCtrl(GX_COLOR0A0, GX_TRUE, GX_SRC_REG, GX_SRC_REG, var_r21, GX_DF_CLAMP, GX_AF_SPOT); + sp14.r = sp14.g = sp14.b = 0x10; + sp14.a = 0xFF; + GXSetChanAmbColor(GX_COLOR0A0, sp14); + sp14.r = sp14.g = sp14.b = 0xFF; + sp14.a = 0xFF; + GXSetChanMatColor(GX_COLOR0A0, sp14); + GXSetZMode(1, GX_LEQUAL, GX_TRUE); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + GXCallDisplayList(var_r31->unk_40, var_r31->unk_44); + GXSetNumIndStages(0); + GXSetTevDirect(GX_TEVSTAGE0); + GXSetTevDirect(GX_TEVSTAGE1); +} + +void fn_1_BD2C(ModelData *model, Mtx matrix) +{ + GXColor sp14 = { 0, 0, 0, 0xFF }; + GXSetFog(GX_FOG_EXP, 10000.0f, 20000.0f, 300.0f, 50000.0f, sp14); + GXLoadPosMtxImm(matrix, 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + HuSprTexLoad(lbl_1_bss_F4, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumTexGens(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetNumChans(0); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(GX_FALSE); + GXSetBlendMode(GX_BM_NONE, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(-1000.0f, 1000.0f, -24000.0f); + GXTexCoord2f32(0.0f, 0.0f); + + GXPosition3f32(1000.0f, 1000.0f, -24000.0f); + GXTexCoord2f32(1.0f, 0.0f); + + GXPosition3f32(1000.0f, -1000.0f, -24000.0f); + GXTexCoord2f32(1.0f, 1.0f); + + GXPosition3f32(-1000.0f, -1000.0f, -24000.0f); + GXTexCoord2f32(0.0f, 1.0f); + + GXSetFog(GX_FOG_EXP, 3500.0f, 20000.0f, 300.0f, 50000.0f, sp14); +} + +void fn_1_C154(ModelData *model, Mtx matrix) +{ + GXColor spC = { 0, 0, 0, 255 }; + GXSetFog(GX_FOG_EXP, 10000.0f, 20000.0f, 300.0f, 50000.0f, spC); +} + +void fn_1_C200(ModelData *model, Mtx matrix) +{ + GXColor spC = { 0, 0, 0, 255 }; + GXSetFog(GX_FOG_EXP, 3500.0f, 20000.0f, 300.0f, 50000.0f, spC); +} + +void fn_1_C2AC(Vec *arg0, float arg8, float arg9, float argA) +{ + arg0->x = arg8; + arg0->y = arg9; + arg0->z = argA; +} + +void fn_1_C2BC(Vec2f *arg0, float arg8, float arg9) +{ + arg0->x = arg8; + arg0->y = arg9; +} + +void fn_1_C2C8(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3) +{ + Vec sp14; + Vec sp8; + + sp14.x = arg1->x - arg0->x; + sp14.y = arg1->y - arg0->y; + sp14.z = arg1->z - arg0->z; + sp8.x = arg2->x - arg1->x; + sp8.y = arg2->y - arg1->y; + sp8.z = arg2->z - arg1->z; + arg3->x = -((sp14.y * sp8.z) - (sp14.z * sp8.y)); + arg3->y = -((sp14.z * sp8.x) - (sp14.x * sp8.z)); + arg3->z = -((sp14.x * sp8.y) - (sp14.y * sp8.x)); +} + +// is this one of the structs? +void fn_1_C3A0(float *arg0, float *arg1) +{ + arg1[0] = arg0[0]; + arg1[4] = arg0[1]; + arg1[8] = arg0[2]; + arg1[1] = arg0[4]; + arg1[5] = arg0[5]; + arg1[9] = arg0[6]; + arg1[2] = arg0[8]; + arg1[6] = arg0[9]; + arg1[10] = arg0[10]; + arg1[3] = 0.0f; + arg1[7] = 0.0f; + arg1[11] = 0.0f; +} + +s16 fn_1_C41C(float x1, float y1, float z1, float x2, float y2, float z2, u8 r, u8 g, u8 b) +{ + Vec sp34; + Vec sp28; + GXColor sp23; + LightData *var_r31; + s16 var_r30; + + sp34.x = x1; + sp34.y = y1; + sp34.z = z1; + sp28.x = x2; + sp28.y = y2; + sp28.z = z2; + sp23.r = r; + sp23.g = g; + sp23.b = b; + sp23.a = 0xFF; + for (var_r31 = Hu3DLocalLight, var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { + if (var_r31->unk_00 == -1) { + break; + } + } + if (var_r30 == 0x20) { + return -1; + } + fn_1_C68C(var_r31, &sp34, &sp28, &sp23); + var_r31->unk_00 |= 0x8000; + return var_r30; +} + +void fn_1_C528(s16 sp8, s16 var_r28, float x1, float y1, float z1, float x2, float y2, float z2, u8 r, u8 g, u8 b) +{ + Vec sp38; + Vec sp2C; + GXColor sp27; + ModelData *var_r31; + LightData *var_r30; + s16 var_r29; + + var_r31 = &Hu3DData[sp8]; + sp38.x = x1; + sp38.y = y1; + sp38.z = z1; + sp2C.x = x2; + sp2C.y = y2; + sp2C.z = z2; + sp27.r = r; + sp27.g = g; + sp27.b = b; + sp27.a = 0xFF; + for (var_r30 = Hu3DLocalLight, var_r29 = 0; var_r29 < 0x20; var_r29++, var_r30++) { + if (var_r30->unk_00 == -1) { + break; + } + } + if (var_r29 == 0x20) { + OSReport("Light Entry Over!\n"); + return; + } + fn_1_C68C(var_r30, &sp38, &sp2C, &sp27); + if (var_r31->unk_38[var_r28] == -1) { + var_r31->unk_38[var_r28] = var_r29; + var_r31->attr |= 0x1000; + } +} + +void fn_1_C68C(LightData *arg0, Vec *arg1, Vec *arg2, GXColor *arg3) +{ + arg0->unk_00 = 0; + arg0->unk_1C = *arg1; + arg0->unk_28 = *arg2; + arg0->unk_34.x = arg0->unk_34.y = arg0->unk_34.z = 0.0f; + arg0->unk_04 = 30.0f; + arg0->unk_02 = 2; + VECNormalize(&arg0->unk_28, &arg0->unk_28); + arg0->color.r = arg3->r; + arg0->color.g = arg3->g; + arg0->color.b = arg3->b; + arg0->color.a = arg3->a; +} + +void fn_1_C76C(u8 arg0, float arg8, float arg9, float argA, s16 arg1, float argB, float argC, s16 arg2) +{ + Vec sp24; + Vec sp18; + float sp10[2]; + GXColor spC; + M427DllMapSubstruct6 *var_r31; + s16 var_r30; + + if (arg0 != 0) { + argB += (((rand8() << 8) | rand8()) % 21) - 0xA; + } + else { + argB += (((rand8() << 8) | rand8()) % 61) - 0x1E; + } + sp10[0] = sind(argB); + sp10[1] = cosd(argB); + for (var_r30 = 0; var_r30 < arg1; var_r30++) { + if (arg0 != 0) { + sp24.x = arg8 + ((((rand8() << 8) | rand8()) % 21) - 0xA); + sp24.y = arg9 + ((((rand8() << 8) | rand8()) % 21) - 0xA); + sp24.z = argA + ((((rand8() << 8) | rand8()) % 21) - 0xA); + } + else { + sp24.x = arg8 + ((((rand8() << 8) | rand8()) % 41) - 0x14); + sp24.y = arg9 + ((((rand8() << 8) | rand8()) % 41) - 0x14); + sp24.z = argA + ((((rand8() << 8) | rand8()) % 41) - 0x14); + } + sp18.x = sp18.y = sp18.z = 0.0f; + spC.r = spC.g = spC.b = spC.a = 0xFF; + var_r31 = fn_1_D4FC(arg2, &sp24, &sp18, 0.0f, &spC); + if (!var_r31) { + break; + } + var_r31->unk_38 = arg0; + if (arg0 != 0) { + var_r31->unk_34 = 0; + var_r31->unk_36 = 3; + var_r31->unk_00 = argC * (sp10[0] * (0.1f * ((((rand8() << 8) | rand8()) % 151) + 0x96))); + var_r31->unk_04 = 0.1f * ((((rand8() << 8) | rand8()) % 31) - 0x14); + var_r31->unk_08 = argC * (sp10[1] * (0.1f * ((((rand8() << 8) | rand8()) % 151) + 0x96))); + var_r31->unk_18 = 0.01f * var_r31->unk_00; + var_r31->unk_1C = 0.1f; + var_r31->unk_20 = 0.01f * var_r31->unk_08; + var_r31->unk_24 = argC * (0.1f * ((((rand8() << 8) | rand8()) % 11) + 0xA)); + var_r31->unk_28 = argC * (0.01f * ((((rand8() << 8) | rand8()) % 101) + 0x32) / (var_r31->unk_36 * 0xE)); + } + else { + var_r31->unk_34 = 0; + var_r31->unk_36 = 2; + var_r31->unk_00 = sp10[0] * (0.1f * ((((rand8() << 8) | rand8()) % 31) + 0x32)); + var_r31->unk_04 = 0.1f * ((((rand8() << 8) | rand8()) % 31) - 0x14); + var_r31->unk_08 = sp10[1] * (0.1f * (((((rand8() << 8) | rand8()) % 31)) + 0x32)); + var_r31->unk_18 = 0.0f; + var_r31->unk_1C = 0.1f; + var_r31->unk_20 = 0.0f; + var_r31->unk_24 = 0.3f * (0.1f * ((((rand8() << 8) | rand8()) % 11) + 0xA)); + var_r31->unk_28 = 0.4f * ((0.01f * ((((rand8() << 8) | rand8()) % 51) + 0x32)) / (var_r31->unk_36 * 0xE)); + } + var_r31->unk_2C = 1024.0f * argC; + var_r31->unk_30 = var_r31->unk_2C / (var_r31->unk_36 * 0xE); + } +} + +void fn_1_D22C(ModelData *model, M427DllMapStruct7 *arg1, Mtx matrix) +{ + M427DllMapSubstruct6 *var_r31; + GXColor *var_r30; + s16 var_r29; + u8 var_r28; + + var_r31 = arg1->unk_18; + var_r30 = arg1->unk_24; + for (var_r29 = 0; var_r29 < arg1->unk_00; var_r29++, var_r31++, var_r30++) { + if (var_r31->unk_62 != 0) { + var_r31->unk_54.x += var_r31->unk_00; + var_r31->unk_54.y += var_r31->unk_04; + var_r31->unk_54.z += var_r31->unk_08; + if (var_r31->unk_38 != 0) { + var_r31->unk_00 -= var_r31->unk_18; + var_r31->unk_04 += var_r31->unk_1C; + var_r31->unk_08 -= var_r31->unk_20; + var_r31->unk_18 = 0.01f * var_r31->unk_00; + var_r31->unk_1C *= 1.04f; + var_r31->unk_20 = 0.01f * var_r31->unk_08; + } + else { + var_r31->unk_04 += var_r31->unk_1C; + var_r31->unk_1C *= 1.1f; + } + var_r31->unk_24 += var_r31->unk_28; + var_r31->unk_48.x = var_r31->unk_48.y = var_r31->unk_48.z = var_r31->unk_24; + var_r31->unk_2C -= var_r31->unk_30; + if (var_r31->unk_2C > 255.0f) { + var_r28 = 0xFF; + } + else { + var_r28 = (s32)var_r31->unk_2C; + } + var_r30->a = (s32)var_r28; + var_r31->unk_34++; + if (var_r31->unk_34 >= var_r31->unk_36) { + var_r31->unk_34 = 0; + var_r31->unk_60++; + } + if (var_r31->unk_60 >= arg1->unk_14) { + var_r31->unk_62 = 0; + } + } + } +} + +s16 fn_1_D430(float arg8, float arg9, float argA, s16 arg0) +{ + Vec sp28; + Vec sp1C; + GXColor sp16; + M427DllMapSubstruct6 *var_r31; + + sp28.x = arg8; + sp28.y = arg9; + sp28.z = argA; + sp1C.x = sp1C.y = sp1C.z = 1.0f; + sp16.r = 0xFF; + sp16.g = 0xA0; + sp16.b = 0x60; + sp16.a = 0xFF; + var_r31 = fn_1_D4FC(arg0, &sp28, &sp1C, 0.0f, &sp16); + if (!var_r31) { + return -1; + } + var_r31->unk_24 = 0.0f; + return var_r31->unk_40; +} + +M427DllMapSubstruct6 *fn_1_D4FC(s16 arg0, Vec *arg1, Vec *arg2, float arg8, GXColor *arg3) +{ + M427DllMapSubstruct6 *var_r31; + M427DllMapStruct7 *var_r30; + s16 var_r29; + ModelData *var_r28; + + var_r28 = &Hu3DData[arg0]; + var_r30 = var_r28->unk_120; + for (var_r29 = 0, var_r31 = var_r30->unk_18; var_r29 < var_r30->unk_00; var_r29++, var_r31++) { + if (var_r31->unk_62 == 0) { + break; + } + } + if (var_r29 == var_r30->unk_00) { + return NULL; + } + var_r30->unk_24[var_r29].r = arg3->r; + var_r30->unk_24[var_r29].g = arg3->g; + var_r30->unk_24[var_r29].b = arg3->b; + var_r30->unk_24[var_r29].a = arg3->a; + var_r31->unk_40 = var_r29; + var_r31->unk_44 = arg8; + var_r31->unk_48 = *arg2; + var_r31->unk_54 = *arg1; + var_r31->unk_60 = 0; + var_r31->unk_3C = 0; + var_r31->unk_62 = 1; + return var_r31; +} + +s16 fn_1_D63C(AnimData *arg0, s16 arg1, float arg8, s16 arg2, s16 arg3) +{ + float temp_f0; + M427DllMapStruct7 *var_r31; + s16 var_r30; + Vec2f *var_r29; + ModelData *var_r28; + GXColor *var_r27; + Vec *var_r25; + M427DllMapSubstruct6 *var_r24; + s16 var_r22; + void *var_r21; + s16 var_r20; + s16 var_r19; + void *var_r18; + + var_r20 = Hu3DHookFuncCreate(fn_1_DCD4); + var_r28 = &Hu3DData[var_r20]; + var_r31 = HuMemDirectMallocNum(HEAP_DATA, sizeof(M427DllMapStruct7), var_r28->unk_48); + var_r28->unk_120 = var_r31; + arg0->useNum++; + var_r31->unk_10 = arg0; + var_r31->unk_00 = arg1; + var_r31->unk_08 = 0; + var_r31->unk_0C = 0; + var_r24 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(M427DllMapSubstruct6), var_r28->unk_48); + var_r31->unk_18 = var_r24; + for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r24++) { + var_r24->unk_60 = -1; + var_r24->unk_62 = 0; + } + var_r25 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec) * 4, var_r28->unk_48); + var_r31->unk_1C = var_r25; + for (var_r30 = 0; var_r30 < (arg1 * 4); var_r30++, var_r25++) { + var_r25->x = var_r25->y = var_r25->z = 0.0f; + } + var_r27 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(GXColor), var_r28->unk_48); + var_r31->unk_24 = var_r27; + for (var_r30 = 0; var_r30 < arg1; var_r30++, var_r27++) { + var_r27->r = var_r27->g = var_r27->b = var_r27->a = 0xFF; + } + var_r29 = HuMemDirectMallocNum(HEAP_DATA, arg1 * sizeof(Vec2f) * 4, var_r28->unk_48); + var_r31->unk_20 = var_r29; + for (var_r30 = 0; var_r30 < arg1; var_r30++) { + var_r29->x = 0.0f; + var_r29->y = 0.0f; + var_r29++; + var_r29->x = 1.0f; + var_r29->y = 0.0f; + var_r29++; + var_r29->x = 1.0f; + var_r29->y = 1.0f; + var_r29++; + var_r29->x = 0.0f; + var_r29->y = 1.0f; + var_r29++; + } + if ((arg2 != 0) || (arg3 != 0)) { + var_r22 = arg0->bmp->sizeX / arg2; + var_r19 = arg0->bmp->sizeY / arg3; + var_r31->unk_14 = var_r22 * var_r19; + var_r31->unk_60 = 1.0f / var_r22; + var_r31->unk_64 = 1.0f / var_r19; + } + else { + var_r22 = 1; + var_r31->unk_14 = 1; + var_r31->unk_60 = 1.0f; + var_r31->unk_64 = 1.0f; + } + var_r31->unk_5C = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_14 * sizeof(Vec2f), var_r28->unk_48); + fn_1_E2B0(var_r31->unk_5C, var_r31->unk_14, var_r22, var_r31->unk_60, var_r31->unk_64); + var_r31->unk_2C.x = var_r31->unk_50 = var_r31->unk_48 = var_r31->unk_54 = -arg8; + var_r31->unk_38 = var_r31->unk_44 = var_r31->unk_2C.y = var_r31->unk_3C = arg8; + var_r31->unk_2C.z = var_r31->unk_40 = var_r31->unk_4C = var_r31->unk_58 = 0.0f; + var_r21 = HuMemDirectMallocNum(HEAP_DATA, 0x20000, var_r28->unk_48); + var_r18 = var_r21; + DCFlushRange(var_r21, 0x20000); + GXBeginDisplayList(var_r18, 0x20000); + GXBegin(GX_QUADS, GX_VTXFMT0, arg1 * 4); + for (var_r30 = 0; var_r30 < arg1; var_r30++) { + GXPosition1x16(var_r30 * 4); + GXPosition1x16(var_r30); + GXPosition1x16(var_r30 * 4); + GXPosition1x16(var_r30 * 4 + 1); + GXPosition1x16(var_r30); + GXPosition1x16(var_r30 * 4 + 1); + GXPosition1x16(var_r30 * 4 + 2); + GXPosition1x16(var_r30); + GXPosition1x16(var_r30 * 4 + 2); + GXPosition1x16(var_r30 * 4 + 3); + GXPosition1x16(var_r30); + GXPosition1x16(var_r30 * 4 + 3); + } + var_r31->unk_04 = GXEndDisplayList(); + var_r31->unk_28 = HuMemDirectMallocNum(HEAP_DATA, var_r31->unk_04, var_r28->unk_48); + memcpy(var_r31->unk_28, var_r21, var_r31->unk_04); + DCFlushRange(var_r31->unk_28, var_r31->unk_04); + HuMemDirectFree(var_r21); + return var_r20; +} + +void fn_1_DB80(s16 arg0) +{ + ModelData *var_r31; + M427DllMapStruct7 *var_r30; + + var_r31 = &Hu3DData[arg0]; + var_r30 = var_r31->unk_120; + HuSprAnimKill(var_r30->unk_10); + Hu3DModelKill(arg0); +} + +void *fn_1_DBE0(s16 arg0) +{ + ModelData *var_r31; + + var_r31 = &Hu3DData[arg0]; + return var_r31->unk_120; +} + +M427DllMapSubstruct6 *fn_1_DC0C(s16 arg0, s16 arg1) +{ + ModelData *var_r31; + M427DllMapStruct7 *var_r30; + + var_r31 = &Hu3DData[arg0]; + var_r30 = var_r31->unk_120; + if (arg1 == -1) { + return NULL; + } + return &var_r30->unk_18[arg1]; +} + +void fn_1_DC64(s16 arg0, M427DllHook arg1) +{ + ModelData *var_r31; + M427DllMapStruct7 *var_r30; + + var_r31 = &Hu3DData[arg0]; + var_r30 = var_r31->unk_120; + var_r30->unk_0C = arg1; +} + +void fn_1_DC9C(s16 arg0, u8 arg1) +{ + ModelData *var_r31; + M427DllMapStruct7 *var_r30; + + var_r31 = &Hu3DData[arg0]; + var_r30 = var_r31->unk_120; + var_r30->unk_08 = arg1; +} + +void fn_1_DCD4(ModelData *model, Mtx matrix) +{ + Mtx sp128; + ROMtx spF8; + Mtx spC8; + Mtx sp98; + Vec sp68[4]; + Vec sp5C; + Vec sp50; + Vec sp44; + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; + Vec *var_r31; + M427DllMapStruct7 *var_r30; + M427DllMapSubstruct6 *var_r29; + Vec2f *var_r26; + s16 var_r25; + s16 var_r24; + M427DllHook var_r23; + + var_r30 = model->unk_120; + GXLoadPosMtxImm(matrix, 0); + GXSetNumTevStages(1); + GXSetNumTexGens(1); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3C, GX_FALSE, 0x7D); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); + var_r24 = var_r30->unk_10->bmp->dataFmt & 0xF; + if ((var_r24 == 7) || (var_r24 == 8)) { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXA, GX_CC_RASC, GX_CC_ZERO); + } + else { + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_RASC, GX_CC_ZERO); + } + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_TEXA, GX_CA_RASA, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); + if ((model->attr & 2) != 0) { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + } + else { + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_FALSE); + } + HuSprTexLoad(var_r30->unk_10, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR); + GXSetAlphaCompare(GX_GEQUAL, 1, GX_AOP_AND, GX_GEQUAL, 1); + GXSetZCompLoc(0); + switch (var_r30->unk_08) { + case 0: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); + break; + case 1: + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_ONE, GX_LO_NOOP); + break; + case 2: + GXSetBlendMode(GX_BM_BLEND, GX_BL_ZERO, GX_BL_INVDSTCLR, GX_LO_NOOP); + break; + } + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetArray(GX_VA_POS, var_r30->unk_1C, 0xC); + GXSetVtxDesc(GX_VA_CLR0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetArray(GX_VA_CLR0, var_r30->unk_24, 4); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX16); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetArray(GX_VA_TEX0, var_r30->unk_20, 8); + sp128[0][0] = matrix[0][0]; + sp128[1][0] = matrix[0][1]; + sp128[2][0] = matrix[0][2]; + sp128[0][1] = matrix[1][0]; + sp128[1][1] = matrix[1][1]; + sp128[2][1] = matrix[1][2]; + sp128[0][2] = matrix[2][0]; + sp128[1][2] = matrix[2][1]; + sp128[2][2] = matrix[2][2]; + sp128[0][3] = 0.0f; + sp128[1][3] = 0.0f; + sp128[2][3] = 0.0f; + PSMTXReorder(sp128, spF8); + if ((omPauseChk() == 0) && (var_r30->unk_0C)) { + var_r23 = var_r30->unk_0C; + var_r23(model, var_r30, matrix); + } + var_r29 = var_r30->unk_18; + var_r31 = var_r30->unk_1C; + var_r26 = var_r30->unk_20; + PSMTXROMultVecArray(spF8, &var_r30->unk_2C, sp68, 4); + for (var_r25 = 0; var_r25 < var_r30->unk_00; var_r25++, var_r29++, var_r26 += 4) { + if (var_r29->unk_62 == 0) { + var_r31->x = var_r31->y = var_r31->z = 0.0f; + var_r31++; + var_r31->x = var_r31->y = var_r31->z = 0.0f; + var_r31++; + var_r31->x = var_r31->y = var_r31->z = 0.0f; + var_r31++; + var_r31->x = var_r31->y = var_r31->z = 0.0f; + var_r31++; + } + else { + if (var_r29->unk_44 == 0.0f) { + fn_1_E420(sp68, &sp38, &var_r29->unk_48, 4); + PSVECAdd(&sp38, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp44, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp50, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp5C, &var_r29->unk_54, var_r31++); + } + else { + fn_1_E420(&var_r30->unk_2C, &sp38, &var_r29->unk_48, 4); + PSMTXRotRad(spC8, 0x5A, MTXDegToRad(var_r29->unk_44)); + PSMTXConcat(sp128, spC8, sp98); + PSMTXMultVecArray(sp98, &sp38, &sp8, 4); + PSVECAdd(&sp8, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp14, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp20, &var_r29->unk_54, var_r31++); + PSVECAdd(&sp2C, &var_r29->unk_54, var_r31++); + } + if (var_r29->unk_60 != -1) { + fn_1_E37C(var_r26, var_r30->unk_5C, var_r29->unk_60, var_r30->unk_60, var_r30->unk_64); + } + } + } + DCFlushRangeNoSync(var_r30->unk_1C, var_r30->unk_00 * sizeof(Vec) * 4); + DCFlushRangeNoSync(var_r30->unk_20, var_r30->unk_00 * sizeof(Vec2f) * 4); + PPCSync(); + GXCallDisplayList(var_r30->unk_28, var_r30->unk_04); +} + +void fn_1_E2B0(Vec2f *arg0, s16 arg1, s16 arg2, float arg8, float arg9) +{ + s16 var_r31; + s16 var_r30; + s16 var_r29; + + for (var_r31 = 0; var_r31 < arg1; var_r31++, arg0++) { + var_r30 = var_r31 % arg2; + var_r29 = var_r31 / arg2; + arg0->x = var_r30 * arg8; + arg0->y = var_r29 * arg9; + } +} + +void fn_1_E37C(Vec2f *arg0, Vec2f *arg1, s16 arg2, float arg8, float arg9) +{ + arg0[0].x = arg1[arg2].x; + arg0[0].y = arg1[arg2].y; + arg0[1].x = arg8 + arg1[arg2].x; + arg0[1].y = arg1[arg2].y; + arg0[2].x = arg8 + arg1[arg2].x; + arg0[2].y = arg9 + arg1[arg2].y; + arg0[3].x = arg1[arg2].x; + arg0[3].y = arg9 + arg1[arg2].y; +} + +void fn_1_E420(Vec *arg0, Vec *arg1, Vec *arg2, s16 arg3) +{ + s16 var_r31; + + for (var_r31 = 0; var_r31 < arg3; var_r31++, arg0++, arg1++) { + arg1->x = arg0->x * arg2->x; + arg1->y = arg0->y * arg2->y; + arg1->z = arg0->z * arg2->z; + } +} + +void fn_1_E488(void) +{ + if ((HuPadBtnDown[0] & PAD_TRIGGER_L) != 0) { + lbl_1_bss_91 ^= 1; + } + if (lbl_1_bss_91 != 0) { + if ((HuPadBtnDown[0] & PAD_TRIGGER_Z) != 0) { + lbl_1_bss_90 = lbl_1_bss_90 ^ 1; + } + if ((HuPadBtn[0] & PAD_BUTTON_LEFT) != 0) { + CRotM[lbl_1_bss_90].y += 1.0f; + } + if ((HuPadBtn[0] & PAD_BUTTON_RIGHT) != 0) { + CRotM[lbl_1_bss_90].y -= 1.0f; + } + if ((HuPadBtn[0] & PAD_BUTTON_UP) != 0) { + CRotM[lbl_1_bss_90].x -= 1.0f; + } + if ((HuPadBtn[0] & PAD_BUTTON_DOWN) != 0) { + CRotM[lbl_1_bss_90].x += 1.0f; + } + CenterM[lbl_1_bss_90].x += HuPadSubStkX[0]; + if ((HuPadBtn[0] & PAD_TRIGGER_R) != 0) { + CenterM[lbl_1_bss_90].y += HuPadSubStkY[0]; + } + else { + CenterM[lbl_1_bss_90].z += HuPadSubStkY[0]; + } + if ((HuPadBtn[0] & PAD_BUTTON_X) != 0) { + CZoomM[lbl_1_bss_90] += 10.0f; + } + if ((HuPadBtn[0] & PAD_BUTTON_Y) != 0) { + CZoomM[lbl_1_bss_90] -= 10.0f; + } + if ((HuPadBtnDown[0] & PAD_BUTTON_A) != 0) { + OSReport("\nCZoom = %.2f \n", CZoomM[lbl_1_bss_90]); + OSReport("Center x = %.2f: y = %.2f: z = %.2f \n", CenterM[lbl_1_bss_90].x, CenterM[lbl_1_bss_90].y, CenterM[lbl_1_bss_90].z); + OSReport("CRot x = %.2f: y = %.2f: z = %.2f \n", CRotM[lbl_1_bss_90].x, CRotM[lbl_1_bss_90].y, CRotM[lbl_1_bss_90].z); + } + } +} diff --git a/src/REL/m427Dll/player.c b/src/REL/m427Dll/player.c index b27e5584..fe097531 100644 --- a/src/REL/m427Dll/player.c +++ b/src/REL/m427Dll/player.c @@ -1967,7 +1967,7 @@ block_18: return 0; } -s32 fn_1_15F10(Vec *arg0, Vec *arg1, s32 arg2, s32 arg3, s32 arg4) +s32 fn_1_15F10(Vec arg0, Vec arg1, s32 arg2, s32 arg3, s32 arg4) { M427DllBss57CStruct *var_r31; s32 var_r30; @@ -1986,12 +1986,12 @@ s32 fn_1_15F10(Vec *arg0, Vec *arg1, s32 arg2, s32 arg3, s32 arg4) var_r31->unk_10 = arg4; var_r31->unk_18 = arg3; var_r31->unk_14 = 0; - var_r31->unk_1C = *arg0; - var_r31->unk_28 = *arg1; + var_r31->unk_1C = arg0; + var_r31->unk_28 = arg1; return var_r30; } -s32 fn_1_15FD0(Vec *arg0, s32 arg1, s32 arg2, s32 arg3, float arg8) +s32 fn_1_15FD0(Vec arg0, float arg8, s32 arg1, s32 arg2, s32 arg3) { M427DllBss57CStruct *var_r31; s32 var_r30; @@ -2010,7 +2010,7 @@ s32 fn_1_15FD0(Vec *arg0, s32 arg1, s32 arg2, s32 arg3, float arg8) var_r31->unk_10 = arg3; var_r31->unk_18 = arg2; var_r31->unk_14 = 0; - var_r31->unk_1C = *arg0; + var_r31->unk_1C = arg0; var_r31->unk_34 = arg8; return var_r30; } From 721c0d4e412f46215a77d7981dd3f3c5b46f2811 Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Wed, 5 Feb 2025 17:25:23 +0100 Subject: [PATCH 289/311] Fix m435Dll linking (#559) --- configure.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.py b/configure.py index 1a3c04d9..bd9561f0 100644 --- a/configure.py +++ b/configure.py @@ -1144,7 +1144,7 @@ config.libs = [ "m435Dll", # Darts of Doom objects={ Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m435Dll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01" "GMPJ01_00"), "REL/m435Dll/sequence.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/m435Dll/sequence.c"), }, ), Rel( From da072c209a2998d4fb39c178ccb29c9bbdd3f729 Mon Sep 17 00:00:00 2001 From: Liam Coleman Date: Wed, 5 Feb 2025 18:07:12 -0600 Subject: [PATCH 290/311] Label most of w01Dll (#560) --- config/GMPE01_00/rels/w01Dll/splits.txt | 4 +- config/GMPE01_00/rels/w01Dll/symbols.txt | 488 ++-- config/GMPP01_00/rels/w01Dll/splits.txt | 4 +- include/REL/w01Dll.h | 52 +- src/REL/w01Dll/main.c | 3258 +++++++++++----------- src/REL/w01Dll/mg_coin.c | 1302 +++++---- src/REL/w01Dll/mg_item.c | 1216 ++++---- 7 files changed, 3152 insertions(+), 3172 deletions(-) diff --git a/config/GMPE01_00/rels/w01Dll/splits.txt b/config/GMPE01_00/rels/w01Dll/splits.txt index 7baca9d9..8e0a4285 100644 --- a/config/GMPE01_00/rels/w01Dll/splits.txt +++ b/config/GMPE01_00/rels/w01Dll/splits.txt @@ -11,13 +11,13 @@ REL/board_executor.c: .rodata start:0x00000000 end:0x00000010 REL/w01Dll/main.c: - .text start:0x000000E0 end:0x00009D00 + .text start:0x000000E0 end:0x00009DD8 .rodata start:0x00000010 end:0x00000198 .data start:0x00000000 end:0x00000658 .bss start:0x00000000 end:0x00000708 REL/w01Dll/mg_coin.c: - .text start:0x00009D00 end:0x0000D740 + .text start:0x00009DD8 end:0x0000D740 .rodata start:0x00000198 end:0x000002C8 .data start:0x00000658 end:0x00000F08 .bss start:0x00000708 end:0x000007A0 diff --git a/config/GMPE01_00/rels/w01Dll/symbols.txt b/config/GMPE01_00/rels/w01Dll/symbols.txt index ad0e3d24..66542f00 100644 --- a/config/GMPE01_00/rels/w01Dll/symbols.txt +++ b/config/GMPE01_00/rels/w01Dll/symbols.txt @@ -3,137 +3,137 @@ _prolog = .text:0x00000030; // type:function size:0x64 scope:global _epilog = .text:0x00000094; // type:function size:0x4C scope:global BoardCreate = .text:0x000000E0; // type:function size:0x4BC BoardDestroy = .text:0x0000059C; // type:function size:0x194 -fn_1_730 = .text:0x00000730; // type:function size:0x44 scope:local -fn_1_774 = .text:0x00000774; // type:function size:0x4 scope:local -fn_1_778 = .text:0x00000778; // type:function size:0x9C scope:local -fn_1_814 = .text:0x00000814; // type:function size:0x1D4 scope:local -fn_1_9E8 = .text:0x000009E8; // type:function size:0x318 scope:local +LightSetHook = .text:0x00000730; // type:function size:0x44 scope:local +LightResetHook = .text:0x00000774; // type:function size:0x4 scope:local +LandEvent = .text:0x00000778; // type:function size:0x9C scope:local +WalkEvent = .text:0x00000814; // type:function size:0x1D4 scope:local +MapObjDispSet = .text:0x000009E8; // type:function size:0x318 scope:local fn_1_D00 = .text:0x00000D00; // type:function size:0x4 scope:local -fn_1_D04 = .text:0x00000D04; // type:function size:0x550 scope:local -fn_1_1254 = .text:0x00001254; // type:function size:0x38 scope:local -fn_1_128C = .text:0x0000128C; // type:function size:0x80 scope:local -fn_1_130C = .text:0x0000130C; // type:function size:0x270 scope:local -fn_1_157C = .text:0x0000157C; // type:function size:0xF4 scope:local -fn_1_1670 = .text:0x00001670; // type:function size:0x90 scope:local -fn_1_1700 = .text:0x00001700; // type:function size:0x290 scope:local -fn_1_1990 = .text:0x00001990; // type:function size:0x148 scope:local -fn_1_1AD8 = .text:0x00001AD8; // type:function size:0x64 scope:local -fn_1_1B3C = .text:0x00001B3C; // type:function size:0x3A8 scope:local -fn_1_1EE4 = .text:0x00001EE4; // type:function size:0x48 scope:local -fn_1_1F2C = .text:0x00001F2C; // type:function size:0x78 scope:local -fn_1_1FA4 = .text:0x00001FA4; // type:function size:0x580 scope:local -fn_1_2524 = .text:0x00002524; // type:function size:0x248 scope:local -fn_1_276C = .text:0x0000276C; // type:function size:0x7AC scope:local -fn_1_2F18 = .text:0x00002F18; // type:function size:0x438 scope:local -fn_1_3350 = .text:0x00003350; // type:function size:0x1C4 scope:local -fn_1_3514 = .text:0x00003514; // type:function size:0xA0 scope:local -fn_1_35B4 = .text:0x000035B4; // type:function size:0x70 scope:local -fn_1_3624 = .text:0x00003624; // type:function size:0xFD0 scope:local -fn_1_45F4 = .text:0x000045F4; // type:function size:0x180 scope:local -fn_1_4774 = .text:0x00004774; // type:function size:0xF0 scope:local -fn_1_4864 = .text:0x00004864; // type:function size:0x50 scope:local -fn_1_48B4 = .text:0x000048B4; // type:function size:0x560 scope:local -fn_1_4E14 = .text:0x00004E14; // type:function size:0x194 scope:local -fn_1_4FA8 = .text:0x00004FA8; // type:function size:0x30 scope:local -fn_1_4FD8 = .text:0x00004FD8; // type:function size:0xFC scope:local -fn_1_50D4 = .text:0x000050D4; // type:function size:0x2E4 scope:local -fn_1_53B8 = .text:0x000053B8; // type:function size:0x84 scope:local -fn_1_543C = .text:0x0000543C; // type:function size:0x258 scope:local -fn_1_5694 = .text:0x00005694; // type:function size:0x1D8 scope:local -fn_1_586C = .text:0x0000586C; // type:function size:0xC0 scope:local -fn_1_592C = .text:0x0000592C; // type:function size:0x200 scope:local -fn_1_5B2C = .text:0x00005B2C; // type:function size:0x14 scope:local -fn_1_5B40 = .text:0x00005B40; // type:function size:0x190 scope:local -fn_1_5CD0 = .text:0x00005CD0; // type:function size:0x38 scope:local -fn_1_5D08 = .text:0x00005D08; // type:function size:0x390 scope:local -fn_1_6098 = .text:0x00006098; // type:function size:0xFC scope:local -fn_1_6194 = .text:0x00006194; // type:function size:0x25C scope:local -fn_1_63F0 = .text:0x000063F0; // type:function size:0x624 scope:local -fn_1_6A14 = .text:0x00006A14; // type:function size:0x1AC scope:local -fn_1_6BC0 = .text:0x00006BC0; // type:function size:0x3F4 scope:local -fn_1_6FB4 = .text:0x00006FB4; // type:function size:0x574 scope:local -fn_1_7528 = .text:0x00007528; // type:function size:0x2C4 scope:local -fn_1_77EC = .text:0x000077EC; // type:function size:0xA8 scope:local -fn_1_7894 = .text:0x00007894; // type:function size:0x1D0 scope:local -fn_1_7A64 = .text:0x00007A64; // type:function size:0xAC8 scope:local -fn_1_852C = .text:0x0000852C; // type:function size:0x280 scope:local -fn_1_87AC = .text:0x000087AC; // type:function size:0x34 scope:local -fn_1_87E0 = .text:0x000087E0; // type:function size:0x1A8 scope:local -fn_1_8988 = .text:0x00008988; // type:function size:0xC8 scope:local -fn_1_8A50 = .text:0x00008A50; // type:function size:0x11C scope:local -fn_1_8B6C = .text:0x00008B6C; // type:function size:0x270 scope:local -fn_1_8DDC = .text:0x00008DDC; // type:function size:0x3B0 scope:local -fn_1_918C = .text:0x0000918C; // type:function size:0xF0 scope:local -fn_1_927C = .text:0x0000927C; // type:function size:0xB0 scope:local -fn_1_932C = .text:0x0000932C; // type:function size:0x17C scope:local -fn_1_94A8 = .text:0x000094A8; // type:function size:0x14C scope:local -fn_1_95F4 = .text:0x000095F4; // type:function size:0x200 scope:local -fn_1_97F4 = .text:0x000097F4; // type:function size:0xF8 scope:local -fn_1_98EC = .text:0x000098EC; // type:function size:0x34 scope:local -fn_1_9920 = .text:0x00009920; // type:function size:0x104 scope:local -fn_1_9A24 = .text:0x00009A24; // type:function size:0x198 scope:local -fn_1_9BBC = .text:0x00009BBC; // type:function size:0x144 scope:local -fn_1_9D00 = .text:0x00009D00; // type:function size:0xD8 -fn_1_9DD8 = .text:0x00009DD8; // type:function size:0x6E0 -fn_1_A4B8 = .text:0x0000A4B8; // type:function size:0x9C scope:local -fn_1_A554 = .text:0x0000A554; // type:function size:0xA8 scope:local -fn_1_A5FC = .text:0x0000A5FC; // type:function size:0xE4 scope:local -fn_1_A6E0 = .text:0x0000A6E0; // type:function size:0x938 scope:local -fn_1_B018 = .text:0x0000B018; // type:function size:0x70 scope:local -fn_1_B088 = .text:0x0000B088; // type:function size:0x144 scope:local -fn_1_B1CC = .text:0x0000B1CC; // type:function size:0x1EC scope:local -fn_1_B3B8 = .text:0x0000B3B8; // type:function size:0xC0 scope:local -fn_1_B478 = .text:0x0000B478; // type:function size:0x680 scope:local -fn_1_BAF8 = .text:0x0000BAF8; // type:function size:0x1E4 scope:local -fn_1_BCDC = .text:0x0000BCDC; // type:function size:0x224 scope:local -fn_1_BF00 = .text:0x0000BF00; // type:function size:0x68 scope:local -fn_1_BF68 = .text:0x0000BF68; // type:function size:0x98 scope:local -fn_1_C000 = .text:0x0000C000; // type:function size:0xFC scope:local -fn_1_C0FC = .text:0x0000C0FC; // type:function size:0x160 scope:local -fn_1_C25C = .text:0x0000C25C; // type:function size:0x5E8 scope:local -fn_1_C844 = .text:0x0000C844; // type:function size:0x50 scope:local -fn_1_C894 = .text:0x0000C894; // type:function size:0xB8 scope:local -fn_1_C94C = .text:0x0000C94C; // type:function size:0x4C scope:local -fn_1_C998 = .text:0x0000C998; // type:function size:0x1AC scope:local -fn_1_CB44 = .text:0x0000CB44; // type:function size:0x380 scope:local -fn_1_CEC4 = .text:0x0000CEC4; // type:function size:0x170 scope:local -fn_1_D034 = .text:0x0000D034; // type:function size:0x48 scope:local -fn_1_D07C = .text:0x0000D07C; // type:function size:0x98 scope:local -fn_1_D114 = .text:0x0000D114; // type:function size:0x62C scope:local -fn_1_D740 = .text:0x0000D740; // type:function size:0x644 -fn_1_DD84 = .text:0x0000DD84; // type:function size:0x110 -fn_1_DE94 = .text:0x0000DE94; // type:function size:0x26C -fn_1_E100 = .text:0x0000E100; // type:function size:0x54 scope:local -fn_1_E154 = .text:0x0000E154; // type:function size:0x164 scope:local -fn_1_E2B8 = .text:0x0000E2B8; // type:function size:0x194 scope:local -fn_1_E44C = .text:0x0000E44C; // type:function size:0x4C8 scope:local -fn_1_E914 = .text:0x0000E914; // type:function size:0x3C0 scope:local -fn_1_ECD4 = .text:0x0000ECD4; // type:function size:0x1CC scope:local -fn_1_EEA0 = .text:0x0000EEA0; // type:function size:0x38 scope:local -fn_1_EED8 = .text:0x0000EED8; // type:function size:0x1C4 scope:local -fn_1_F09C = .text:0x0000F09C; // type:function size:0x2AC scope:local -fn_1_F348 = .text:0x0000F348; // type:function size:0xB0 scope:local -fn_1_F3F8 = .text:0x0000F3F8; // type:function size:0x2F0 scope:local -fn_1_F6E8 = .text:0x0000F6E8; // type:function size:0x1A8 scope:local -fn_1_F890 = .text:0x0000F890; // type:function size:0x18C scope:local -fn_1_FA1C = .text:0x0000FA1C; // type:function size:0xA0 scope:local -fn_1_FABC = .text:0x0000FABC; // type:function size:0x9C scope:local -fn_1_FB58 = .text:0x0000FB58; // type:function size:0xE4 scope:local -fn_1_FC3C = .text:0x0000FC3C; // type:function size:0xB0 scope:local -fn_1_FCEC = .text:0x0000FCEC; // type:function size:0x50 scope:local -fn_1_FD3C = .text:0x0000FD3C; // type:function size:0x108 scope:local -fn_1_FE44 = .text:0x0000FE44; // type:function size:0x8C scope:local -fn_1_FED0 = .text:0x0000FED0; // type:function size:0x14C scope:local -fn_1_1001C = .text:0x0001001C; // type:function size:0x19C scope:local -fn_1_101B8 = .text:0x000101B8; // type:function size:0x4AC scope:local -fn_1_10664 = .text:0x00010664; // type:function size:0x1BC scope:local -fn_1_10820 = .text:0x00010820; // type:function size:0x2C8 scope:local -fn_1_10AE8 = .text:0x00010AE8; // type:function size:0xC8 scope:local -fn_1_10BB0 = .text:0x00010BB0; // type:function size:0x140 scope:local -fn_1_10CF0 = .text:0x00010CF0; // type:function size:0x1C8 scope:local -fn_1_10EB8 = .text:0x00010EB8; // type:function size:0x1AC scope:local -fn_1_11064 = .text:0x00011064; // type:function size:0x420 scope:local -fn_1_11484 = .text:0x00011484; // type:function size:0x56C scope:local +RoundItemMain = .text:0x00000D04; // type:function size:0x550 scope:local +RoundItemDestroy = .text:0x00001254; // type:function size:0x38 scope:local +RoundItemEvent = .text:0x0000128C; // type:function size:0x80 scope:local +SpaceAmidaEvent = .text:0x0000130C; // type:function size:0x270 scope:local +WalkMiniEvent = .text:0x0000157C; // type:function size:0xF4 scope:local +UpdateHostDisp = .text:0x00001670; // type:function size:0x90 scope:local +CoasterInit = .text:0x00001700; // type:function size:0x290 scope:local +CoasterPathUpdate = .text:0x00001990; // type:function size:0x148 scope:local +CoasterPosCalc = .text:0x00001AD8; // type:function size:0x64 scope:local +CoasterCameraUpdate = .text:0x00001B3C; // type:function size:0x3A8 scope:local +CoasterCameraObjKill = .text:0x00001EE4; // type:function size:0x48 scope:local +CoasterCameraObjMain = .text:0x00001F2C; // type:function size:0x78 scope:local +CoasterCameraObjUpdate = .text:0x00001FA4; // type:function size:0x580 scope:local +CoasterStickRotGet = .text:0x00002524; // type:function size:0x248 scope:local +CoasterRotUpdate = .text:0x0000276C; // type:function size:0x7AC scope:local +CoasterCoinCheck = .text:0x00002F18; // type:function size:0x438 scope:local +CoasterPathMotUpdate = .text:0x00003350; // type:function size:0x1C4 scope:local +CoasterMotCreate = .text:0x00003514; // type:function size:0xA0 scope:local +CoasterMotKill = .text:0x000035B4; // type:function size:0x70 scope:local +CoasterExec = .text:0x00003624; // type:function size:0xFD0 scope:local +CoasterExit = .text:0x000045F4; // type:function size:0x180 scope:local +CoasterWinCreate = .text:0x00004774; // type:function size:0xF0 scope:local +CoasterWinKill = .text:0x00004864; // type:function size:0x50 scope:local +CoasterHostExec = .text:0x000048B4; // type:function size:0x560 scope:local +CoasterMain = .text:0x00004E14; // type:function size:0x194 scope:local +CoasterDestroy = .text:0x00004FA8; // type:function size:0x30 scope:local +CoasterEvent = .text:0x00004FD8; // type:function size:0xFC scope:local +CoasterCoinCreate = .text:0x000050D4; // type:function size:0x2E4 scope:local +CoasterCoinKill = .text:0x000053B8; // type:function size:0x84 scope:local +CupInit = .text:0x0000543C; // type:function size:0x258 scope:local +CupMotOnSet = .text:0x00005694; // type:function size:0x1D8 scope:local +CupEvent = .text:0x0000586C; // type:function size:0xC0 scope:local +CupMain = .text:0x0000592C; // type:function size:0x200 scope:local +CupDestroy = .text:0x00005B2C; // type:function size:0x14 scope:local +CupExec = .text:0x00005B40; // type:function size:0x190 scope:local +CupObjCheck = .text:0x00005CD0; // type:function size:0x38 scope:local +CupObjCreate = .text:0x00005D08; // type:function size:0x390 scope:local +CupObjMain = .text:0x00006098; // type:function size:0xFC scope:local +CupObjInit = .text:0x00006194; // type:function size:0x25C scope:local +CupObjJumpWait = .text:0x000063F0; // type:function size:0x624 scope:local +CupObjHookReset = .text:0x00006A14; // type:function size:0x1AC scope:local +CupObjStop = .text:0x00006BC0; // type:function size:0x3F4 scope:local +CupObjRotate = .text:0x00006FB4; // type:function size:0x574 scope:local +CupLandEvent = .text:0x00007528; // type:function size:0x2C4 scope:local +CoasterLandEvent = .text:0x000077EC; // type:function size:0xA8 scope:local +CoasterLandMain = .text:0x00007894; // type:function size:0x1D0 scope:local +CoasterLandExec = .text:0x00007A64; // type:function size:0xAC8 scope:local +CoasterPlayerManCreate = .text:0x0000852C; // type:function size:0x280 scope:local +CoasterPlayerManKill = .text:0x000087AC; // type:function size:0x34 scope:local +CoasterPlayerManUpdate = .text:0x000087E0; // type:function size:0x1A8 scope:local +CoasterPlayerWait = .text:0x00008988; // type:function size:0xC8 scope:local +CoasterPlayerChaseBegin = .text:0x00008A50; // type:function size:0x11C scope:local +CoasterPlayerChasePathSet = .text:0x00008B6C; // type:function size:0x270 scope:local +CoasterPlayerChase = .text:0x00008DDC; // type:function size:0x3B0 scope:local +CoasterPlayerStop = .text:0x0000918C; // type:function size:0xF0 scope:local +CoasterPlayerEnd = .text:0x0000927C; // type:function size:0xB0 scope:local +CoasterPlayerEndSet = .text:0x0000932C; // type:function size:0x17C scope:local +CoasterPlayerLoopCheck = .text:0x000094A8; // type:function size:0x14C scope:local +CoasterPlayerTimeInit = .text:0x000095F4; // type:function size:0x200 scope:local +CoasterEffCreate = .text:0x000097F4; // type:function size:0xF8 scope:local +CoasterEffKill = .text:0x000098EC; // type:function size:0x34 scope:local +CoasterEffUpdate = .text:0x00009920; // type:function size:0x104 scope:local +CoasterEffAdd = .text:0x00009A24; // type:function size:0x198 scope:local +CoasterEffModelUpdate = .text:0x00009BBC; // type:function size:0x144 scope:local +CoasterHostComKeySet = .text:0x00009D00; // type:function size:0xD8 scope:local +SpaceAmidaExec = .text:0x00009DD8; // type:function size:0x6E0 +SpaceAmidaMainUpdate = .text:0x0000A4B8; // type:function size:0x9C scope:local +SpaceAmidaStop = .text:0x0000A554; // type:function size:0xA8 scope:local +SpaceAmidaKill = .text:0x0000A5FC; // type:function size:0xE4 scope:local +SpaceAmidaRocketObjUpdate = .text:0x0000A6E0; // type:function size:0x938 scope:local +SpaceAmidaMapLenGet = .text:0x0000B018; // type:function size:0x70 scope:local +SpaceAmidaComChoiceSet = .text:0x0000B088; // type:function size:0x144 scope:local +SpaceAmidaComInputGet = .text:0x0000B1CC; // type:function size:0x1EC scope:local +SpaceAmidaGameOpen = .text:0x0000B3B8; // type:function size:0xC0 scope:local +SpaceAmidaGameUpdate = .text:0x0000B478; // type:function size:0x680 scope:local +SpaceAmidaRocketJump = .text:0x0000BAF8; // type:function size:0x1E4 scope:local +SpaceAmidaRocketKemuriExec = .text:0x0000BCDC; // type:function size:0x224 scope:local +SpaceAmidaRocketWait = .text:0x0000BF00; // type:function size:0x68 scope:local +SpaceAmidaRocketUp = .text:0x0000BF68; // type:function size:0x98 scope:local +SpaceAmidaCoinWin = .text:0x0000C000; // type:function size:0xFC scope:local +SpaceAmidaJumpDown = .text:0x0000C0FC; // type:function size:0x160 scope:local +SpaceAmidaCoinRainMain = .text:0x0000C25C; // type:function size:0x5E8 scope:local +SpaceAmidaReturnWinMain = .text:0x0000C844; // type:function size:0x50 scope:local +SpaceAmidaGameStop = .text:0x0000C894; // type:function size:0xB8 scope:local +SpaceAmidaDirGet = .text:0x0000C94C; // type:function size:0x4C scope:local +SpaceAmidaAngleGet = .text:0x0000C998; // type:function size:0x1AC scope:local +SpaceAmidaPlayerRotAdd = .text:0x0000CB44; // type:function size:0x380 scope:local +SpaceAmidaEffCreate = .text:0x0000CEC4; // type:function size:0x170 scope:local +SpaceAmidaEffKill = .text:0x0000D034; // type:function size:0x48 scope:local +SpaceAmidaEffUpdate = .text:0x0000D07C; // type:function size:0x98 scope:local +SpaceAmidaEffParticleHook = .text:0x0000D114; // type:function size:0x62C scope:local +RoundItemInit = .text:0x0000D740; // type:function size:0x644 +RoundItemKill = .text:0x0000DD84; // type:function size:0x110 +RoundItemEventStart = .text:0x0000DE94; // type:function size:0x26C +RoundItemEnd = .text:0x0000E100; // type:function size:0x54 scope:local +RoundItemClose = .text:0x0000E154; // type:function size:0x164 scope:local +RoundItemMainUpdate = .text:0x0000E2B8; // type:function size:0x194 scope:local +RoundItemUmaStop = .text:0x0000E44C; // type:function size:0x4C8 scope:local +RoundItemPlayerJump = .text:0x0000E914; // type:function size:0x3C0 scope:local +RoundItemStartWait = .text:0x0000ECD4; // type:function size:0x1CC scope:local +RoundItemComInputGet = .text:0x0000EEA0; // type:function size:0x38 scope:local +RoundItemInputWait = .text:0x0000EED8; // type:function size:0x1C4 scope:local +RoundItemStop = .text:0x0000F09C; // type:function size:0x2AC scope:local +RoundItemLightFlicker = .text:0x0000F348; // type:function size:0xB0 scope:local +RoundItemUmaJumpWait = .text:0x0000F3F8; // type:function size:0x2F0 scope:local +RoundItemUmaJump = .text:0x0000F6E8; // type:function size:0x1A8 scope:local +RoundItemRotatePlayer = .text:0x0000F890; // type:function size:0x18C scope:local +RoundItemStreamWait = .text:0x0000FA1C; // type:function size:0xA0 scope:local +RoundItemWinWait = .text:0x0000FABC; // type:function size:0x9C scope:local +ItemGetWinExec = .text:0x0000FB58; // type:function size:0xE4 scope:local +ItemGetShrinkWait = .text:0x0000FC3C; // type:function size:0xB0 scope:local +ItemGetReturnWinExec = .text:0x0000FCEC; // type:function size:0x50 scope:local +RoundItemGameClose = .text:0x0000FD3C; // type:function size:0x108 scope:local +RoundItemGameEnd = .text:0x0000FE44; // type:function size:0x8C scope:local +RoundItemItemUpdate = .text:0x0000FED0; // type:function size:0x14C scope:local +RoundItemItemGet = .text:0x0001001C; // type:function size:0x19C scope:local +ItemGetCreate = .text:0x000101B8; // type:function size:0x4AC scope:local +ItemGetObjUpdate = .text:0x00010664; // type:function size:0x1BC scope:local +ItemGetPlayerMove = .text:0x00010820; // type:function size:0x2C8 scope:local +ItemGetShrink = .text:0x00010AE8; // type:function size:0xC8 scope:local +RoundItemUmaRotYGet = .text:0x00010BB0; // type:function size:0x140 scope:local +RoundItemUmaPlayerSet = .text:0x00010CF0; // type:function size:0x1C8 scope:local +RoundItemAngleGet = .text:0x00010EB8; // type:function size:0x1AC scope:local +ItemGetEff1Hook = .text:0x00011064; // type:function size:0x420 scope:local +ItemGetEff2Hook = .text:0x00011484; // type:function size:0x56C scope:local _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float @@ -334,136 +334,136 @@ lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data: lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x528 scope:local -lbl_1_data_528 = .data:0x00000528; // type:object size:0x2 scope:local data:2byte -lbl_1_data_52A = .data:0x0000052A; // type:object size:0x2 scope:local data:2byte -lbl_1_data_52C = .data:0x0000052C; // type:object size:0x2 scope:local data:2byte -lbl_1_data_52E = .data:0x0000052E; // type:object size:0x2 scope:local data:2byte -lbl_1_data_530 = .data:0x00000530; // type:object size:0x2 scope:local data:2byte -lbl_1_data_534 = .data:0x00000534; // type:object size:0x8 scope:local -lbl_1_data_53C = .data:0x0000053C; // type:object size:0x8 scope:local +mapObjData = .data:0x00000000; // type:object size:0x528 scope:local +bgMdl = .data:0x00000528; // type:object size:0x2 scope:local data:2byte +fgMdl = .data:0x0000052A; // type:object size:0x2 scope:local data:2byte +starHostMdl = .data:0x0000052C; // type:object size:0x2 scope:local data:2byte +hostMdl = .data:0x0000052E; // type:object size:0x2 scope:local data:2byte +syuppouMdl = .data:0x00000530; // type:object size:0x2 scope:local data:2byte +starHostMotTbl = .data:0x00000534; // type:object size:0x8 scope:local +hostMotTbl = .data:0x0000053C; // type:object size:0x8 scope:local lbl_1_data_544 = .data:0x00000544; // type:object size:0x14 scope:local data:string lbl_1_data_558 = .data:0x00000558; // type:object size:0x14 scope:local data:string lbl_1_data_56C = .data:0x0000056C; // type:object size:0x13 scope:local data:string -lbl_1_data_580 = .data:0x00000580; // type:object size:0x2 scope:local data:2byte +coasterWinId = .data:0x00000580; // type:object size:0x2 scope:local data:2byte lbl_1_data_582 = .data:0x00000582; // type:object size:0x12 scope:local -lbl_1_data_594 = .data:0x00000594; // type:object size:0x40 scope:local -lbl_1_data_5D4 = .data:0x000005D4; // type:object size:0x4 scope:local data:4byte -lbl_1_data_5D8 = .data:0x000005D8; // type:object size:0x4 scope:local data:4byte -lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x10 scope:local data:2byte +coasterMotTbl = .data:0x00000594; // type:object size:0x40 scope:local +cupMoveSeNo = .data:0x000005D4; // type:object size:0x4 scope:local data:4byte +decaStompSeNo = .data:0x000005D8; // type:object size:0x4 scope:local data:4byte +cupMapObj = .data:0x000005DC; // type:object size:0x10 scope:local data:2byte lbl_1_data_5EC = .data:0x000005EC; // type:object size:0x7 scope:local data:string lbl_1_data_5F3 = .data:0x000005F3; // type:object size:0x7 scope:local data:string lbl_1_data_5FA = .data:0x000005FA; // type:object size:0x7 scope:local data:string -lbl_1_data_604 = .data:0x00000604; // type:object size:0xC scope:local -lbl_1_data_610 = .data:0x00000610; // type:object size:0x10 scope:local +cupHookTbl = .data:0x00000604; // type:object size:0xC scope:local +cupArrowRot = .data:0x00000610; // type:object size:0x10 scope:local lbl_1_data_620 = .data:0x00000620; // type:object size:0x5 scope:local data:string lbl_1_data_625 = .data:0x00000625; // type:object size:0x5 scope:local data:string lbl_1_data_62A = .data:0x0000062A; // type:object size:0x5 scope:local data:string lbl_1_data_62F = .data:0x0000062F; // type:object size:0x4 scope:local data:string -lbl_1_data_633 = .data:0x00000633; // type:object size:0x1 scope:local data:byte -lbl_1_data_634 = .data:0x00000634; // type:object size:0x24 scope:local -lbl_1_data_658 = .data:0x00000658; // type:object size:0x24 scope:local -lbl_1_data_67C = .data:0x0000067C; // type:object size:0x12 scope:local data:2byte -lbl_1_data_690 = .data:0x00000690; // type:object size:0x2D0 scope:local -lbl_1_data_960 = .data:0x00000960; // type:object size:0x2D0 scope:local -lbl_1_data_C30 = .data:0x00000C30; // type:object size:0x2D0 scope:local +coasterChasePlayer = .data:0x00000633; // type:object size:0x1 scope:local data:byte +coasterChaseSe = .data:0x00000634; // type:object size:0x24 scope:local +effPosTbl = .data:0x00000658; // type:object size:0x24 scope:local +spaceAmidaCoinNumTbl = .data:0x0000067C; // type:object size:0x12 scope:local data:2byte +spaceAmidaMap1 = .data:0x00000690; // type:object size:0x2D0 scope:local +spaceAmidaMap2 = .data:0x00000960; // type:object size:0x2D0 scope:local +spaceAmidaMap3 = .data:0x00000C30; // type:object size:0x2D0 scope:local lbl_1_data_F00 = .data:0x00000F00; // type:object size:0x3 scope:local data:string -lbl_1_data_F08 = .data:0x00000F08; // type:object size:0x38 scope:local -lbl_1_data_F40 = .data:0x00000F40; // type:object size:0x20 scope:local -lbl_1_data_F60 = .data:0x00000F60; // type:object size:0x20 scope:local +itemMdlTbl = .data:0x00000F08; // type:object size:0x38 scope:local +itemGetMotTbl = .data:0x00000F40; // type:object size:0x20 scope:local +jumpMotTbl = .data:0x00000F60; // type:object size:0x20 scope:local lbl_1_data_F80 = .data:0x00000F80; // type:object size:0x7 scope:local data:string lbl_1_data_F87 = .data:0x00000F87; // type:object size:0x5 scope:local data:string lbl_1_data_F8C = .data:0x00000F8C; // type:object size:0x5 scope:local data:string lbl_1_data_F91 = .data:0x00000F91; // type:object size:0x5 scope:local data:string lbl_1_data_F96 = .data:0x00000F96; // type:object size:0x5 scope:local data:string -lbl_1_data_F9C = .data:0x00000F9C; // type:object size:0x10 scope:local data:4byte -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x1 scope:local data:byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_26 = .bss:0x00000026; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x1 scope:local data:byte -lbl_1_bss_29 = .bss:0x00000029; // type:object size:0x1 scope:local data:byte +umaHookTbl = .data:0x00000F9C; // type:object size:0x10 scope:local data:4byte +boardWork = .bss:0x00000000; // type:object size:0x4 data:4byte +roundItemProc = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +coasterProc = .bss:0x00000008; // type:object size:0x4 scope:local data:4byte +coasterPlayerManObj = .bss:0x0000000C; // type:object size:0x4 scope:local data:4byte +coasterCameraObj = .bss:0x00000010; // type:object size:0x4 scope:local data:4byte +cupProc = .bss:0x00000014; // type:object size:0x4 scope:local data:4byte +cupObj = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte +coasterPlayerChaseNum = .bss:0x0000001C; // type:object size:0x1 scope:local data:byte +coasterEffObj = .bss:0x00000020; // type:object size:0x4 scope:local data:4byte +cupSpaceEnd = .bss:0x00000024; // type:object size:0x2 scope:local data:2byte +cupSpaceStart = .bss:0x00000026; // type:object size:0x2 scope:local data:2byte +cupHookNo = .bss:0x00000028; // type:object size:0x1 scope:local data:byte +cupSide = .bss:0x00000029; // type:object size:0x1 scope:local data:byte lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x5A0 scope:local -lbl_1_bss_5CC = .bss:0x000005CC; // type:object size:0x4 scope:local data:2byte -lbl_1_bss_5D0 = .bss:0x000005D0; // type:object size:0x30 scope:local -lbl_1_bss_600 = .bss:0x00000600; // type:object size:0x18 scope:local -lbl_1_bss_618 = .bss:0x00000618; // type:object size:0xC scope:local data:4byte -lbl_1_bss_624 = .bss:0x00000624; // type:object size:0xC scope:local data:float -lbl_1_bss_630 = .bss:0x00000630; // type:object size:0xC scope:local data:4byte -lbl_1_bss_63C = .bss:0x0000063C; // type:object size:0x4 scope:local data:float -lbl_1_bss_640 = .bss:0x00000640; // type:object size:0x4 scope:local data:float -lbl_1_bss_644 = .bss:0x00000644; // type:object size:0x4 scope:local data:float -lbl_1_bss_648 = .bss:0x00000648; // type:object size:0xC scope:local data:4byte -lbl_1_bss_654 = .bss:0x00000654; // type:object size:0xC scope:local data:float -lbl_1_bss_660 = .bss:0x00000660; // type:object size:0xC scope:local data:float -lbl_1_bss_66C = .bss:0x0000066C; // type:object size:0x4 scope:local data:float -lbl_1_bss_670 = .bss:0x00000670; // type:object size:0x4 scope:local data:float -lbl_1_bss_674 = .bss:0x00000674; // type:object size:0x4 scope:local data:float -lbl_1_bss_678 = .bss:0x00000678; // type:object size:0x30 scope:local +coasterMotId = .bss:0x000005CC; // type:object size:0x4 scope:local data:2byte +coasterCoinMdlId = .bss:0x000005D0; // type:object size:0x30 scope:local +coasterCoinF = .bss:0x00000600; // type:object size:0x18 scope:local +coasterCameraTarget = .bss:0x00000618; // type:object size:0xC scope:local data:4byte +coasterCameraUp = .bss:0x00000624; // type:object size:0xC scope:local data:float +coasterCameraPos = .bss:0x00000630; // type:object size:0xC scope:local data:4byte +coasterBaseRotY = .bss:0x0000063C; // type:object size:0x4 scope:local data:float +coasterTime = .bss:0x00000640; // type:object size:0x4 scope:local data:float +coasterMaxTime = .bss:0x00000644; // type:object size:0x4 scope:local data:float +coasterPosOld = .bss:0x00000648; // type:object size:0xC scope:local data:4byte +coasterPos = .bss:0x00000654; // type:object size:0xC scope:local data:float +coasterRot = .bss:0x00000660; // type:object size:0xC scope:local data:float +coasterCamSpeed = .bss:0x0000066C; // type:object size:0x4 scope:local data:float +coasterSpeed = .bss:0x00000670; // type:object size:0x4 scope:local data:float +coasterAccel = .bss:0x00000674; // type:object size:0x4 scope:local data:float +coasterMtx = .bss:0x00000678; // type:object size:0x30 scope:local lbl_1_bss_6A8 = .bss:0x000006A8; // type:object size:0x4 scope:local data:float -lbl_1_bss_6AC = .bss:0x000006AC; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_6AE = .bss:0x000006AE; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_6B0 = .bss:0x000006B0; // type:object size:0x1 scope:local data:byte -lbl_1_bss_6B1 = .bss:0x000006B1; // type:object size:0x1 scope:local data:byte -lbl_1_bss_6B2 = .bss:0x000006B2; // type:object size:0x1 scope:local data:byte -lbl_1_bss_6B3 = .bss:0x000006B3; // type:object size:0x1 scope:local data:byte -lbl_1_bss_6B4 = .bss:0x000006B4; // type:object size:0x1 scope:local data:byte -lbl_1_bss_6B6 = .bss:0x000006B6; // type:object size:0xA scope:local data:2byte -lbl_1_bss_6C0 = .bss:0x000006C0; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_6C4 = .bss:0x000006C4; // type:object size:0x42 data:2byte -lbl_1_bss_708 = .bss:0x00000708; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_70C = .bss:0x0000070C; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_710 = .bss:0x00000710; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_714 = .bss:0x00000714; // type:object size:0xC scope:local -lbl_1_bss_720 = .bss:0x00000720; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_724 = .bss:0x00000724; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_728 = .bss:0x00000728; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_72A = .bss:0x0000072A; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_72C = .bss:0x0000072C; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_730 = .bss:0x00000730; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_734 = .bss:0x00000734; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_738 = .bss:0x00000738; // type:object size:0xC scope:local data:float -lbl_1_bss_744 = .bss:0x00000744; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_748 = .bss:0x00000748; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_74C = .bss:0x0000074C; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_750 = .bss:0x00000750; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_754 = .bss:0x00000754; // type:object size:0x4 scope:local data:float -lbl_1_bss_758 = .bss:0x00000758; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_75C = .bss:0x0000075C; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_760 = .bss:0x00000760; // type:object size:0x28 scope:local -lbl_1_bss_788 = .bss:0x00000788; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_78A = .bss:0x0000078A; // type:object size:0x6 scope:local data:2byte -lbl_1_bss_790 = .bss:0x00000790; // type:object size:0x6 scope:local data:2byte -lbl_1_bss_796 = .bss:0x00000796; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_798 = .bss:0x00000798; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_79C = .bss:0x0000079C; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_7A0 = .bss:0x000007A0; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_7A4 = .bss:0x000007A4; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_7A8 = .bss:0x000007A8; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_7AA = .bss:0x000007AA; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_7AC = .bss:0x000007AC; // type:object size:0x8 scope:local data:4byte -lbl_1_bss_7B4 = .bss:0x000007B4; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_7B8 = .bss:0x000007B8; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_7BC = .bss:0x000007BC; // type:object size:0x8 scope:local data:4byte -lbl_1_bss_7C4 = .bss:0x000007C4; // type:object size:0xC scope:local data:float -lbl_1_bss_7D0 = .bss:0x000007D0; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_7D2 = .bss:0x000007D2; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_7D4 = .bss:0x000007D4; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_7D6 = .bss:0x000007D6; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_7D8 = .bss:0x000007D8; // type:object size:0xC scope:local data:4byte -lbl_1_bss_7E4 = .bss:0x000007E4; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_7E8 = .bss:0x000007E8; // type:object size:0x4 scope:local data:float -lbl_1_bss_7EC = .bss:0x000007EC; // type:object size:0x4 scope:local data:float -lbl_1_bss_7F0 = .bss:0x000007F0; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_7F4 = .bss:0x000007F4; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_7F8 = .bss:0x000007F8; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_7FC = .bss:0x000007FC; // type:object size:0x10 scope:local data:4byte -lbl_1_bss_80C = .bss:0x0000080C; // type:object size:0xC scope:local data:float -lbl_1_bss_818 = .bss:0x00000818; // type:object size:0x4 scope:local data:4byte +coasterStartSpace = .bss:0x000006AC; // type:object size:0x2 scope:local data:2byte +coasterPathMdlId = .bss:0x000006AE; // type:object size:0x2 scope:local data:2byte +coasterType = .bss:0x000006B0; // type:object size:0x1 scope:local data:byte +coasterLandF = .bss:0x000006B1; // type:object size:0x1 scope:local data:byte +coasterDoneF = .bss:0x000006B2; // type:object size:0x1 scope:local data:byte +coasterLoopF = .bss:0x000006B3; // type:object size:0x1 scope:local data:byte +eventPlayer = .bss:0x000006B4; // type:object size:0x1 scope:local data:byte +roundItemTbl = .bss:0x000006B6; // type:object size:0xA scope:local data:2byte +mapObjMotTbl = .bss:0x000006C0; // type:object size:0x4 scope:local data:4byte +mapObjMdlId = .bss:0x000006C4; // type:object size:0x42 data:2byte +spaceAmidaSeqStopF = .bss:0x00000708; // type:object size:0x2 scope:local data:2byte +spaceAmidaEffAnim = .bss:0x0000070C; // type:object size:0x4 scope:local data:4byte +spaceAmidaEffObj = .bss:0x00000710; // type:object size:0x4 scope:local data:4byte +rocketObj = .bss:0x00000714; // type:object size:0xC scope:local +spaceAmidaGameObj = .bss:0x00000720; // type:object size:0x4 scope:local data:4byte +spaceAmidaSeNo = .bss:0x00000724; // type:object size:0x4 scope:local data:4byte +spaceAmidaCoinNum = .bss:0x00000728; // type:object size:0x2 scope:local data:2byte +spaceAmidaStopF = .bss:0x0000072A; // type:object size:0x2 scope:local data:2byte +rocketWarpF = .bss:0x0000072C; // type:object size:0x4 scope:local data:4byte +spaceAmidaPath = .bss:0x00000730; // type:object size:0x4 scope:local data:4byte +spaceAmidaMapNo = .bss:0x00000734; // type:object size:0x4 scope:local data:4byte +spaceAmidaPos = .bss:0x00000738; // type:object size:0xC scope:local data:float +timerSeqId = .bss:0x00000744; // type:object size:0x2 scope:local data:2byte +timerFrame = .bss:0x00000748; // type:object size:0x4 scope:local data:4byte +timerSec = .bss:0x0000074C; // type:object size:0x4 scope:local data:4byte +kemuriMdlId = .bss:0x00000750; // type:object size:0x2 scope:local data:2byte +spaceAmidaTime = .bss:0x00000754; // type:object size:0x4 scope:local data:float +spaceAmidaMainObj = .bss:0x00000758; // type:object size:0x4 scope:local data:4byte +coinWinProc = .bss:0x0000075C; // type:object size:0x4 scope:local data:4byte +coinMdlId = .bss:0x00000760; // type:object size:0x28 scope:local +spaceAmidaEffMdlId = .bss:0x00000788; // type:object size:0x2 scope:local data:2byte +rocketMdlId = .bss:0x0000078A; // type:object size:0x6 scope:local data:2byte +mapMdlId = .bss:0x00000790; // type:object size:0x6 scope:local data:2byte +spaceAmidaMdlId = .bss:0x00000796; // type:object size:0x2 scope:local data:2byte +spaceAmidaPlayerNo = .bss:0x00000798; // type:object size:0x4 scope:local data:4byte +spaceAmidaPadNo = .bss:0x0000079C; // type:object size:0x4 scope:local data:4byte +roundItemEffAnim = .bss:0x000007A0; // type:object size:0x4 scope:local data:4byte +roundItemStreamId = .bss:0x000007A4; // type:object size:0x4 scope:local data:4byte +umaStopTimer = .bss:0x000007A8; // type:object size:0x2 scope:local data:2byte +roundItemStopF = .bss:0x000007AA; // type:object size:0x2 scope:local data:2byte +itemGetSeNo = .bss:0x000007AC; // type:object size:0x4 scope:local data:4byte +umaStopF = .bss:0x000007B4; // type:object size:0x2 scope:local data:2byte +jumpMotId = .bss:0x000007B8; // type:object size:0x4 scope:local data:4byte +itemGetMotId = .bss:0x000007BC; // type:object size:0x8 scope:local data:4byte +playerPos = .bss:0x000007C4; // type:object size:0xC scope:local data:float +timerFrame = .bss:0x000007D0; // type:object size:0x2 scope:local data:2byte +timerSec = .bss:0x000007D2; // type:object size:0x2 scope:local data:2byte +timerSeqId = .bss:0x000007D4; // type:object size:0x2 scope:local data:2byte +seqStartId = .bss:0x000007D6; // type:object size:0x2 scope:local data:2byte +umaPos = .bss:0x000007D8; // type:object size:0xC scope:local data:4byte +roundItemPlayer = .bss:0x000007E4; // type:object size:0x4 scope:local data:4byte +borderSpeed = .bss:0x000007E8; // type:object size:0x4 scope:local data:float +umaSpeed = .bss:0x000007EC; // type:object size:0x4 scope:local data:float +itemGetObj = .bss:0x000007F0; // type:object size:0x4 scope:local data:4byte +roundItemMainObj = .bss:0x000007F4; // type:object size:0x4 scope:local data:4byte +roundItemUmaObj = .bss:0x000007F8; // type:object size:0x4 scope:local data:4byte +itemObj = .bss:0x000007FC; // type:object size:0x10 scope:local data:4byte +roundItemPos = .bss:0x0000080C; // type:object size:0xC scope:local data:float +itemAnim = .bss:0x00000818; // type:object size:0x4 scope:local data:4byte diff --git a/config/GMPP01_00/rels/w01Dll/splits.txt b/config/GMPP01_00/rels/w01Dll/splits.txt index 7baca9d9..8e0a4285 100644 --- a/config/GMPP01_00/rels/w01Dll/splits.txt +++ b/config/GMPP01_00/rels/w01Dll/splits.txt @@ -11,13 +11,13 @@ REL/board_executor.c: .rodata start:0x00000000 end:0x00000010 REL/w01Dll/main.c: - .text start:0x000000E0 end:0x00009D00 + .text start:0x000000E0 end:0x00009DD8 .rodata start:0x00000010 end:0x00000198 .data start:0x00000000 end:0x00000658 .bss start:0x00000000 end:0x00000708 REL/w01Dll/mg_coin.c: - .text start:0x00009D00 end:0x0000D740 + .text start:0x00009DD8 end:0x0000D740 .rodata start:0x00000198 end:0x000002C8 .data start:0x00000658 end:0x00000F08 .bss start:0x00000708 end:0x000007A0 diff --git a/include/REL/w01Dll.h b/include/REL/w01Dll.h index f3e1e5d6..c8c44f3b 100755 --- a/include/REL/w01Dll.h +++ b/include/REL/w01Dll.h @@ -4,24 +4,56 @@ #include "dolphin/types.h" enum { + MAPOBJ_COASTER, + MAPOBJ_COASTER_RAIL, + MAPOBJ_HOST1, + MAPOBJ_HOST2, + MAPOBJ_HOST3, + MAPOBJ_HOST4, + MAPOBJ_SPACEAMIDA, + MAPOBJ_SPACEAMIDA_MAP1, + MAPOBJ_SPACEAMIDA_MAP2, + MAPOBJ_SPACEAMIDA_MAP3, + MAPOBJ_SPACEAMIDA_ROCKET1, + MAPOBJ_SPACEAMIDA_ROCKET2, + MAPOBJ_SPACEAMIDA_ROCKET3, + MAPOBJ_SPACEAMIDA_LIGHTEFF, + MAPOBJ_SPACEAMIDA_LAMP1, + MAPOBJ_SPACEAMIDA_LAMP2, + MAPOBJ_ROUNDITEM, + MAPOBJ_ROUNDITEM_UMA, + MAPOBJ_ROUNDITEM_BORDER, + MAPOBJ_ROUNDITEM_ITEM, + MAPOBJ_ROUNDITEM_ITEM_LIGHT, + MAPOBJ_ROUNDITEM_ITEM_UP, + MAPOBJ_ROUNDITEM_ITEM_DENSYOKU, + MAPOBJ_CUPR_DISH, + MAPOBJ_CUPR1, + MAPOBJ_CUPR2, + MAPOBJ_CUPR3, + MAPOBJ_CUPR_ARROW, + MAPOBJ_CUPL_DISH, + MAPOBJ_CUPL1, + MAPOBJ_CUPL2, + MAPOBJ_CUPL3, + MAPOBJ_CUPL_ARROW, MAPOBJ_MAX = 33 }; typedef struct { /* 0x00 */ struct { - u8 unk00_field0 : 1; + u8 hostSide : 1; }; - /* 0x01 */ s8 unk01[2]; -} UnkBoardDataStruct; // Size unknown + /* 0x01 */ s8 cupDir[2]; +} W01BoardWork; -extern void fn_1_9D00(s32 arg0); -extern void fn_1_9DD8(void); +extern void SpaceAmidaExec(void); -extern void fn_1_D740(s16 *arg0); -extern void fn_1_DD84(void); -extern void fn_1_DE94(void); +extern void RoundItemInit(s16 *itemTbl); +extern void RoundItemKill(void); +extern void RoundItemEventStart(void); -extern s16 lbl_1_bss_6C4[MAPOBJ_MAX]; -extern UnkBoardDataStruct *lbl_1_bss_0; +extern s16 mapObjMdlId[MAPOBJ_MAX]; +extern W01BoardWork *boardWork; #endif diff --git a/src/REL/w01Dll/main.c b/src/REL/w01Dll/main.c index 6cf2beb7..f1d1e39f 100755 --- a/src/REL/w01Dll/main.c +++ b/src/REL/w01Dll/main.c @@ -33,136 +33,133 @@ typedef struct { struct { - u8 unk00_field0 : 1; + u8 killF : 1; }; -} Bss10Work; +} CoasterCameraWork; typedef struct { struct { - u8 unk00_field0 : 1; - u8 unk00_field1 : 3; - u8 unk00_field2 : 1; - u8 unk00_field3 : 1; + u8 killF : 1; + u8 mode : 3; + u8 stopF : 1; + u8 decaF : 1; }; - u8 unk01; - u8 unk02; - char unk03[1]; - s16 unk04; - char unk06[2]; - float unk08; -} Bss18Work; + u8 time; + u8 delay; + s16 dishMdlId; + float dishSpeed; +} CupObjWork; typedef struct { - /* 0x00 */ s8 unk00; - /* 0x01 */ s8 unk01; - /* 0x02 */ s16 unk02; - /* 0x04 */ s16 unk04; - /* 0x06 */ s16 unk06; - /* 0x08 */ float unk08; - /* 0x0C */ char unk0C[4]; - /* 0x10 */ float unk10; - /* 0x14 */ Vec unk14; - /* 0x20 */ Mtx unk20; -} BssCData; // Size 0x50 + s8 mode; + s8 playerNo; + s16 delay; + s16 pathMdlId; + s16 endSpace; + float speed; + float unk0C; + float time; + Vec pos; + Mtx matrix; +} CoasterPlayerWork; // Size 0x50 typedef struct { struct { - u8 unk00_field0 : 1; + u8 killF : 1; }; - s8 unk01; - char unk02[2]; - BssCData *unk04; -} BssCWork; + s8 playerNum; + CoasterPlayerWork *player; +} CoasterPlayerManWork; typedef struct { - /* 0x00 */ s16 unk00; - /* 0x02 */ s16 unk02; - /* 0x04 */ float unk04; - /* 0x08 */ Vec unk08; - /* 0x14 */ Vec unk14; -} Bss20Data; // Size 0x20 + /* 0x00 */ s16 time; + /* 0x02 */ s16 mdlId; + /* 0x04 */ float scale; + /* 0x08 */ Vec pos; + /* 0x14 */ Vec vel; +} CoasterEffData; // Size 0x20 typedef struct { struct { - u8 unk00_field0 : 1; + u8 killF : 1; }; - u8 unk01; - char unk02[2]; - Bss20Data *unk04; -} Bss20Work; + u8 delay; + CoasterEffData *data; +} CoasterEffWork; -static void fn_1_730(void); -static void fn_1_774(void); -static s32 fn_1_778(void); -static s32 fn_1_814(void); -static void fn_1_9E8(void); +static void LightSetHook(void); +static void LightResetHook(void); +static s32 LandEvent(void); +static s32 WalkEvent(void); +static void MapObjDispSet(void); static void fn_1_D00(void); -static void fn_1_D04(void); -static void fn_1_1254(void); -static void fn_1_128C(void); -static void fn_1_130C(void); -static s32 fn_1_157C(void); -static void fn_1_1670(void); -static void fn_1_1700(void); -static void fn_1_1990(void); -static void fn_1_1AD8(BoardCameraData *camera); -static void fn_1_1B3C(void); -static void fn_1_1EE4(void); -static void fn_1_1F2C(omObjData *arg0); -static void fn_1_1FA4(void); -static float fn_1_2524(void); -static void fn_1_276C(void); -static void fn_1_2F18(void); -static void fn_1_3350(void); -static void fn_1_3514(s32 arg0); -static void fn_1_35B4(s32 arg0); -static void fn_1_3624(void); -static void fn_1_45F4(void); -static void fn_1_4774(void); -static void fn_1_4864(void); -static s32 fn_1_48B4(void); -static void fn_1_4E14(void); -static void fn_1_4FA8(void); -static void fn_1_4FD8(void); -static void fn_1_50D4(void); -static void fn_1_53B8(void); -static void fn_1_543C(void); -static void fn_1_5694(s32 arg0); -static void fn_1_586C(s32 arg0, s32 arg1); -static void fn_1_592C(void); -static void fn_1_5B2C(void); -static void fn_1_5B40(void); -static BOOL fn_1_5CD0(void); -static void fn_1_5D08(void); -static void fn_1_6098(omObjData *arg0); -static void fn_1_6194(Bss18Work *arg0, omObjData *arg1); -static void fn_1_63F0(Bss18Work *arg0, omObjData *arg1); -static void fn_1_6A14(Bss18Work *arg0, omObjData *arg1); -static void fn_1_6BC0(Bss18Work *arg0, omObjData *arg1); -static void fn_1_6FB4(Bss18Work *arg0, omObjData *arg1); -static void fn_1_7528(s32 arg0, s32 arg1); -static void fn_1_77EC(s32 arg0, s32 arg1); -static void fn_1_7894(void); -static void fn_1_7A64(void); -static void fn_1_852C(void); -static void fn_1_87AC(void); -static void fn_1_87E0(omObjData *arg0); -static void fn_1_8988(BssCData *arg0, omObjData *arg1); -static void fn_1_8A50(BssCData *arg0, omObjData *arg1); -static void fn_1_8B6C(BssCData *arg0, omObjData *arg1); -static void fn_1_8DDC(BssCData *arg0, omObjData *arg1); -static void fn_1_918C(BssCData *arg0, omObjData *arg1); -static void fn_1_927C(BssCData *arg0, omObjData *arg1); -static void fn_1_932C(BssCData *arg0); -static s32 fn_1_94A8(BssCData *arg0); -static void fn_1_95F4(BssCData *arg0); -static void fn_1_97F4(void); -static void fn_1_98EC(void); -static void fn_1_9920(omObjData *arg0); -static void fn_1_9A24(Bss20Work *arg0); -static void fn_1_9BBC(Bss20Work *arg0); +static void RoundItemMain(void); +static void RoundItemDestroy(void); +static void RoundItemEvent(void); +static void SpaceAmidaEvent(void); +static s32 WalkMiniEvent(void); +static void UpdateHostDisp(void); +static void CoasterInit(void); +static void CoasterPathUpdate(void); +static void CoasterPosCalc(BoardCameraData *camera); +static void CoasterCameraUpdate(void); +static void CoasterCameraObjKill(void); +static void CoasterCameraObjMain(omObjData *obj); +static void CoasterCameraObjUpdate(void); +static float CoasterStickRotGet(void); +static void CoasterRotUpdate(void); +static void CoasterCoinCheck(void); +static void CoasterPathMotUpdate(void); +static void CoasterMotCreate(s32 playerNo); +static void CoasterMotKill(s32 playerNo); +static void CoasterExec(void); +static void CoasterExit(void); +static void CoasterWinCreate(void); +static void CoasterWinKill(void); +static s32 CoasterHostExec(void); +static void CoasterMain(void); +static void CoasterDestroy(void); +static void CoasterEvent(void); +static void CoasterCoinCreate(void); +static void CoasterCoinKill(void); +static void CupInit(void); +static void CupMotOnSet(s32 stopF); +static void CupEvent(s32 side, s32 spaceStart); +static void CupMain(void); +static void CupDestroy(void); +static void CupExec(void); +static BOOL CupObjCheck(void); +static void CupObjCreate(void); +static void CupObjMain(omObjData *obj); +static void CupObjInit(CupObjWork *work, omObjData *obj); +static void CupObjJumpWait(CupObjWork *work, omObjData *obj); +static void CupObjHookReset(CupObjWork *work, omObjData *obj); +static void CupObjStop(CupObjWork *work, omObjData *obj); +static void CupObjRotate(CupObjWork *work, omObjData *obj); +static void CupLandEvent(s32 playerNo, s32 spaceId); +static void CoasterLandEvent(s32 playerNo, s32 spaceId); +static void CoasterLandMain(void); +static void CoasterLandExec(void); +static void CoasterPlayerManCreate(void); +static void CoasterPlayerManKill(void); +static void CoasterPlayerManUpdate(omObjData *obj); +static void CoasterPlayerWait(CoasterPlayerWork *work, omObjData *obj); +static void CoasterPlayerChaseBegin(CoasterPlayerWork *work, omObjData *obj); +static void CoasterPlayerChasePathSet(CoasterPlayerWork *work, omObjData *obj); +static void CoasterPlayerChase(CoasterPlayerWork *work, omObjData *obj); +static void CoasterPlayerStop(CoasterPlayerWork *work, omObjData *obj); +static void CoasterPlayerEnd(CoasterPlayerWork *work, omObjData *obj); +static void CoasterPlayerEndSet(CoasterPlayerWork *work); +static s32 CoasterPlayerLoopCheck(CoasterPlayerWork *work); +static void CoasterPlayerTimeInit(CoasterPlayerWork *work); +static void CoasterEffCreate(void); +static void CoasterEffKill(void); +static void CoasterEffUpdate(omObjData *obj); +static void CoasterEffAdd(CoasterEffWork *work); +static void CoasterEffModelUpdate(CoasterEffWork *work); +extern void CoasterHostComKeySet(s32 playerNo); -static BoardMapObject lbl_1_data_0[MAPOBJ_MAX] +static BoardMapObject mapObjData[MAPOBJ_MAX] = { { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 8) }, { { 0.0f, 700.0f, 300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 9) }, { { -2025.0f, 100.0f, 1950.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0) }, @@ -197,116 +194,116 @@ static BoardMapObject lbl_1_data_0[MAPOBJ_MAX] { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 4) }, { { -1800.0f, 200.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W01, 5) } }; -s16 lbl_1_bss_6C4[MAPOBJ_MAX]; +s16 mapObjMdlId[MAPOBJ_MAX]; -static s32 *lbl_1_bss_6C0; -static s16 lbl_1_bss_6B6[5]; -static s8 lbl_1_bss_6B4; -static s8 lbl_1_bss_6B3; -static s8 lbl_1_bss_6B2; -static s8 lbl_1_bss_6B1; -static s8 lbl_1_bss_6B0; -static s16 lbl_1_bss_6AE; -static s16 lbl_1_bss_6AC; +static s32 *mapObjMotTbl; +static s16 roundItemTbl[5]; +static s8 eventPlayer; +static s8 coasterLoopF; +static s8 coasterDoneF; +static s8 coasterLandF; +static s8 coasterType; +static s16 coasterPathMdlId; +static s16 coasterStartSpace; static float lbl_1_bss_6A8; -static Mtx lbl_1_bss_678; -static float lbl_1_bss_674; -static float lbl_1_bss_670; -static float lbl_1_bss_66C; -static Vec lbl_1_bss_660; -static Vec lbl_1_bss_654; -static Vec lbl_1_bss_648; -static float lbl_1_bss_644; -static float lbl_1_bss_640; -static float lbl_1_bss_63C; -static Vec lbl_1_bss_630; -static Vec lbl_1_bss_624; -static Vec lbl_1_bss_618; -static s8 lbl_1_bss_600[24]; -static s16 lbl_1_bss_5D0[24]; -static s16 lbl_1_bss_5CC[2]; +static Mtx coasterMtx; +static float coasterAccel; +static float coasterSpeed; +static float coasterCamSpeed; +static Vec coasterRot; +static Vec coasterPos; +static Vec coasterPosOld; +static float coasterMaxTime; +static float coasterTime; +static float coasterBaseRotY; +static Vec coasterCameraPos; +static Vec coasterCameraUp; +static Vec coasterCameraTarget; +static s8 coasterCoinF[24]; +static s16 coasterCoinMdlId[24]; +static s16 coasterMotId[2]; static s8 lbl_1_bss_2C[1440]; static s8 lbl_1_bss_2A[2]; // padding -static s8 lbl_1_bss_29; -static s8 lbl_1_bss_28; -static s16 lbl_1_bss_26; -static s16 lbl_1_bss_24; -static omObjData *lbl_1_bss_20; -static s8 lbl_1_bss_1C; -static omObjData *lbl_1_bss_18; -static Process *lbl_1_bss_14; -static omObjData *lbl_1_bss_10; -static omObjData *lbl_1_bss_C; -static Process *lbl_1_bss_8; -static Process *lbl_1_bss_4; -UnkBoardDataStruct *lbl_1_bss_0; +static s8 cupSide; +static s8 cupHookNo; +static s16 cupSpaceStart; +static s16 cupSpaceEnd; +static omObjData *coasterEffObj; +static s8 coasterPlayerChaseNum; +static omObjData *cupObj; +static Process *cupProc; +static omObjData *coasterCameraObj; +static omObjData *coasterPlayerManObj; +static Process *coasterProc; +static Process *roundItemProc; +W01BoardWork *boardWork; -static s16 lbl_1_data_528 = -1; -static s16 lbl_1_data_52A = -1; -static s16 lbl_1_data_52C = -1; -static s16 lbl_1_data_52E = -1; -static s16 lbl_1_data_530 = -1; +static s16 bgMdl = -1; +static s16 fgMdl = -1; +static s16 starHostMdl = -1; +static s16 hostMdl = -1; +static s16 syuppouMdl = -1; -static s32 lbl_1_data_534[] = { DATA_MAKE_NUM(DATADIR_W01, 30), -1 }; +static s32 starHostMotTbl[] = { DATA_MAKE_NUM(DATADIR_W01, 30), -1 }; -static s32 lbl_1_data_53C[] = { DATA_MAKE_NUM(DATADIR_BGUEST, 1), -1 }; +static s32 hostMotTbl[] = { DATA_MAKE_NUM(DATADIR_BGUEST, 1), -1 }; void BoardCreate(void) { - BoardMapObject *temp_r30; - s32 sp8; + BoardMapObject *mapObj; + s32 boardNo; s32 i; - sp8 = GWBoardGet(); - lbl_1_bss_0 = (UnkBoardDataStruct *)GWSystem.board_data; + boardNo = GWBoardGet(); + boardWork = (W01BoardWork *)GWSystem.board_data; BoardSpaceInit(DATA_MAKE_NUM(DATADIR_W01, 0)); - lbl_1_data_528 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 1), NULL, 0); - fn_8006DDE8(lbl_1_data_528, -1.0f); - BoardModelPosSet(lbl_1_data_528, 0.0f, 0.0f, 0.0f); - BoardModelMotionStart(lbl_1_data_528, 0, 0x40000001); - lbl_1_data_52A = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 2), NULL, 0); - fn_8006DDE8(lbl_1_data_52A, -1.0f); - BoardModelPosSet(lbl_1_data_52A, 0.0f, 0.0f, 0.0f); - BoardModelMotionStart(lbl_1_data_52A, 0, 0x40000001); - lbl_1_data_52C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 29), lbl_1_data_534, 0); - BoardModelPosSet(lbl_1_data_52C, 0.0f, 0.0f, 0.0f); - BoardModelMotionStart(lbl_1_data_52C, 1, 0x40000001); - lbl_1_data_52E = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 0), lbl_1_data_53C, 0); - BoardModelPosSet(lbl_1_data_52E, 0.0f, 0.0f, 0.0f); - BoardModelMotionStart(lbl_1_data_52E, 1, 0x40000001); - lbl_1_data_530 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 11), NULL, 0); - BoardModelMotionStart(lbl_1_data_530, 0, 0x40000001); - BoardLightHookSet(fn_1_730, fn_1_774); + bgMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 1), NULL, 0); + fn_8006DDE8(bgMdl, -1.0f); + BoardModelPosSet(bgMdl, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(bgMdl, 0, HU3D_MOTATTR_LOOP); + fgMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 2), NULL, 0); + fn_8006DDE8(fgMdl, -1.0f); + BoardModelPosSet(fgMdl, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(fgMdl, 0, HU3D_MOTATTR_LOOP); + starHostMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 29), starHostMotTbl, 0); + BoardModelPosSet(starHostMdl, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(starHostMdl, 1, HU3D_MOTATTR_LOOP); + hostMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BGUEST, 0), hostMotTbl, 0); + BoardModelPosSet(hostMdl, 0.0f, 0.0f, 0.0f); + BoardModelMotionStart(hostMdl, 1, HU3D_MOTATTR_LOOP); + syuppouMdl = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 11), NULL, 0); + BoardModelMotionStart(syuppouMdl, 0, HU3D_MOTATTR_LOOP); + BoardLightHookSet(LightSetHook, LightResetHook); for (i = 0; i < MAPOBJ_MAX; i++) { - temp_r30 = &lbl_1_data_0[i]; - if (temp_r30->data_num != -1) { - if (i == 2 || i == 3 || i == 4 || i == 5) { - lbl_1_bss_6C0 = lbl_1_data_53C; + mapObj = &mapObjData[i]; + if (mapObj->data_num != -1) { + if (i == MAPOBJ_HOST1 || i == MAPOBJ_HOST2 || i == MAPOBJ_HOST3 || i == MAPOBJ_HOST4) { + mapObjMotTbl = hostMotTbl; } else { - lbl_1_bss_6C0 = NULL; + mapObjMotTbl = NULL; } - lbl_1_bss_6C4[i] = BoardModelCreate(temp_r30->data_num, lbl_1_bss_6C0, 0); - BoardModelPosSetV(lbl_1_bss_6C4[i], &temp_r30->pos); - BoardModelRotSetV(lbl_1_bss_6C4[i], &temp_r30->rot); - BoardModelScaleSetV(lbl_1_bss_6C4[i], &temp_r30->scale); - BoardModelVisibilitySet(lbl_1_bss_6C4[i], 1); + mapObjMdlId[i] = BoardModelCreate(mapObj->data_num, mapObjMotTbl, 0); + BoardModelPosSetV(mapObjMdlId[i], &mapObj->pos); + BoardModelRotSetV(mapObjMdlId[i], &mapObj->rot); + BoardModelScaleSetV(mapObjMdlId[i], &mapObj->scale); + BoardModelVisibilitySet(mapObjMdlId[i], 1); } } - BoardModelMotionStart(lbl_1_bss_6C4[2], 1, 0x40000001); - BoardModelMotionStart(lbl_1_bss_6C4[3], 1, 0x40000001); - BoardModelMotionStart(lbl_1_bss_6C4[4], 1, 0x40000001); - BoardModelMotionStart(lbl_1_bss_6C4[5], 1, 0x40000001); - fn_1_543C(); - fn_1_9E8(); - fn_1_1700(); - BoardSpaceWalkEventFuncSet(fn_1_814); - BoardSpaceWalkMiniEventFuncSet(fn_1_157C); - BoardSpaceLandEventFuncSet(fn_1_778); - BoardStarHostSet(lbl_1_data_52C); - BoardBooHouseHostSet(lbl_1_data_52E); - BoardLotteryHostSet(lbl_1_data_52E); - BoardShopHostSet(lbl_1_data_52E); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_HOST1], 1, HU3D_MOTATTR_LOOP); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_HOST2], 1, HU3D_MOTATTR_LOOP); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_HOST3], 1, HU3D_MOTATTR_LOOP); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_HOST4], 1, HU3D_MOTATTR_LOOP); + CupInit(); + MapObjDispSet(); + CoasterInit(); + BoardSpaceWalkEventFuncSet(WalkEvent); + BoardSpaceWalkMiniEventFuncSet(WalkMiniEvent); + BoardSpaceLandEventFuncSet(LandEvent); + BoardStarHostSet(starHostMdl); + BoardBooHouseHostSet(hostMdl); + BoardLotteryHostSet(hostMdl); + BoardShopHostSet(hostMdl); BoardJunctionMaskSet(0xC000); BoardJunctionMaskSet(0x3000); } @@ -315,217 +312,217 @@ void BoardDestroy(void) { s32 i; - fn_1_4864(); + CoasterWinKill(); fn_1_D00(); - for (i = 0; i < 33; i++) { - if (lbl_1_bss_6C4[i] != 0) { - BoardModelKill(lbl_1_bss_6C4[i]); - lbl_1_bss_6C4[i] = 0; + for (i = 0; i < MAPOBJ_MAX; i++) { + if (mapObjMdlId[i] != 0) { + BoardModelKill(mapObjMdlId[i]); + mapObjMdlId[i] = 0; } } - if (lbl_1_data_530 != -1) { - BoardModelKill(lbl_1_data_530); - lbl_1_data_530 = -1; + if (syuppouMdl != -1) { + BoardModelKill(syuppouMdl); + syuppouMdl = -1; } - if (lbl_1_data_52E != -1) { - BoardModelKill(lbl_1_data_52E); - lbl_1_data_52E = -1; + if (hostMdl != -1) { + BoardModelKill(hostMdl); + hostMdl = -1; } - if (lbl_1_data_52C != -1) { - BoardModelKill(lbl_1_data_52C); - lbl_1_data_52C = -1; + if (starHostMdl != -1) { + BoardModelKill(starHostMdl); + starHostMdl = -1; } - if (lbl_1_data_528 != -1) { - BoardModelKill(lbl_1_data_528); - lbl_1_data_528 = -1; + if (bgMdl != -1) { + BoardModelKill(bgMdl); + bgMdl = -1; } - if (lbl_1_data_52A != -1) { - BoardModelKill(lbl_1_data_52A); - lbl_1_data_52A = -1; + if (fgMdl != -1) { + BoardModelKill(fgMdl); + fgMdl = -1; } BoardSpaceDestroy(); } -static void fn_1_730(void) +static void LightSetHook(void) { - s16 var_r31; + s16 modelId; - var_r31 = BoardModelIDGet(lbl_1_data_528); - Hu3DModelLightInfoSet(var_r31, 1); + modelId = BoardModelIDGet(bgMdl); + Hu3DModelLightInfoSet(modelId, 1); } -static void fn_1_774(void) { } +static void LightResetHook(void) { } -static s32 fn_1_778(void) +static s32 LandEvent(void) { - s32 temp_r31; - s32 temp_r30; - u32 temp_r29; + s32 playerNo; + s32 spaceId; + u32 flag; - temp_r31 = GWSystem.player_curr; - temp_r30 = GWPlayer[temp_r31].space_curr; - temp_r29 = BoardSpaceFlagGet(0, temp_r30); - if (temp_r29 & 0x800) { - fn_1_77EC(temp_r31, temp_r30); + playerNo = GWSystem.player_curr; + spaceId = GWPlayer[playerNo].space_curr; + flag = BoardSpaceFlagGet(0, spaceId); + if (flag & 0x800) { + CoasterLandEvent(playerNo, spaceId); } - else if (temp_r29 & 0x400) { - fn_1_7528(temp_r31, temp_r30); + else if (flag & 0x400) { + CupLandEvent(playerNo, spaceId); } } -static s32 fn_1_814(void) +static s32 WalkEvent(void) { - s32 temp_r27; - s32 var_r30; - s32 var_r29; - s32 var_r26; - BoardSpace *temp_r31; - BoardSpace *temp_r28; + s32 playerNo; + s32 i; + s32 type; + s32 spaceLinkId; + BoardSpace *space; + BoardSpace *spaceLink; - temp_r27 = GWSystem.player_curr; - temp_r31 = BoardSpaceGet(0, GWPlayer[temp_r27].space_curr); - if (temp_r31->flag & 0x3000) { - if (BoardPlayerSizeGet(temp_r27) == 2 || GWPlayer[temp_r27].bowser_suit) { + playerNo = GWSystem.player_curr; + space = BoardSpaceGet(0, GWPlayer[playerNo].space_curr); + if (space->flag & 0x3000) { + if (BoardPlayerSizeGet(playerNo) == 2 || GWPlayer[playerNo].bowser_suit) { return 0; } - if (temp_r31->flag & 0x2000) { - if (lbl_1_bss_0->unk00_field0 != 0) { + if (space->flag & 0x2000) { + if (boardWork->hostSide != 0) { return 0; } } - else if (temp_r31->flag & 0x1000) { - if (lbl_1_bss_0->unk00_field0 != 1) { + else if (space->flag & 0x1000) { + if (boardWork->hostSide != 1) { return 0; } } - fn_1_4FD8(); + CoasterEvent(); return 1; } - var_r29 = -1; - for (var_r30 = 0; var_r30 < temp_r31->link_cnt; var_r30++) { - if (temp_r31->link[var_r30] != -1) { - temp_r28 = BoardSpaceGet(0, temp_r31->link[var_r30]); - if (temp_r28->flag & 0x8000) { - var_r29 = 0; - var_r26 = temp_r31->link[var_r30]; + type = -1; + for (i = 0; i < space->link_cnt; i++) { + if (space->link[i] != -1) { + spaceLink = BoardSpaceGet(0, space->link[i]); + if (spaceLink->flag & 0x8000) { + type = 0; + spaceLinkId = space->link[i]; break; } - else if (temp_r28->flag & 0x4000) { - var_r29 = 1; - var_r26 = temp_r31->link[var_r30]; + else if (spaceLink->flag & 0x4000) { + type = 1; + spaceLinkId = space->link[i]; break; } } } - if (var_r29 != -1) { - fn_1_586C(var_r29, var_r26); + if (type != -1) { + CupEvent(type, spaceLinkId); return 1; } return 0; } -static void fn_1_9E8(void) +static void MapObjDispSet(void) { - BoardModelVisibilitySet(lbl_1_bss_6C4[6], 1); - BoardModelVisibilitySet(lbl_1_bss_6C4[7], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[8], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[9], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[10], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[11], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[12], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[13], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[14], 1); - BoardModelVisibilitySet(lbl_1_bss_6C4[15], 1); - BoardModelMotionStart(lbl_1_bss_6C4[6], 0, 0); - BoardModelMotionSpeedSet(lbl_1_bss_6C4[6], 0.0f); - BoardModelMotionStart(lbl_1_bss_6C4[14], 0, 0x40000001); - BoardModelMotionStart(lbl_1_bss_6C4[15], 0, 0x40000001); - BoardModelHookSet(lbl_1_bss_6C4[6], "amida_ban_07-sirenr", lbl_1_bss_6C4[14]); - BoardModelHookSet(lbl_1_bss_6C4[6], "amida_ban_07-sirenl", lbl_1_bss_6C4[15]); - BoardModelVisibilitySet(lbl_1_bss_6C4[16], 1); - BoardModelVisibilitySet(lbl_1_bss_6C4[17], 1); - BoardModelVisibilitySet(lbl_1_bss_6C4[18], 1); - BoardModelVisibilitySet(lbl_1_bss_6C4[19], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[20], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[21], 1); - BoardModelVisibilitySet(lbl_1_bss_6C4[22], 1); - BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0); - BoardModelMotionSpeedSet(lbl_1_bss_6C4[21], 0.0f); - BoardModelMotionStart(lbl_1_bss_6C4[18], 0, 0); - BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], 0.0f); - BoardModelExistDupe(lbl_1_bss_6C4[16], 0); - BoardModelMotionStart(lbl_1_bss_6C4[16], 0, 0x40000001); - BoardModelMotionStart(lbl_1_bss_6C4[17], 0, 0x40000001); - BoardModelMotionStart(lbl_1_bss_6C4[22], 0, 0x40000001); - BoardModelHookSet(lbl_1_bss_6C4[21], "m_goraund_01-flag1", lbl_1_bss_6C4[22]); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA], 1); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_MAP1], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_MAP2], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_MAP3], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_ROCKET1], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_ROCKET2], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_ROCKET3], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_LIGHTEFF], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_LAMP1], 1); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_SPACEAMIDA_LAMP2], 1); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_SPACEAMIDA], 0, 0); + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_SPACEAMIDA], 0.0f); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_SPACEAMIDA_LAMP1], 0, HU3D_MOTATTR_LOOP); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_SPACEAMIDA_LAMP2], 0, HU3D_MOTATTR_LOOP); + BoardModelHookSet(mapObjMdlId[MAPOBJ_SPACEAMIDA], "amida_ban_07-sirenr", mapObjMdlId[MAPOBJ_SPACEAMIDA_LAMP1]); + BoardModelHookSet(mapObjMdlId[MAPOBJ_SPACEAMIDA], "amida_ban_07-sirenl", mapObjMdlId[MAPOBJ_SPACEAMIDA_LAMP2]); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM], 1); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA], 1); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], 1); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_LIGHT], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], 1); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_DENSYOKU], 1); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], 0, 0); + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], 0.0f); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], 0, 0); + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], 0.0f); + BoardModelExistDupe(mapObjMdlId[MAPOBJ_ROUNDITEM], 0); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_ROUNDITEM], 0, HU3D_MOTATTR_LOOP); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA], 0, HU3D_MOTATTR_LOOP); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_DENSYOKU], 0, HU3D_MOTATTR_LOOP); + BoardModelHookSet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], "m_goraund_01-flag1", mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_DENSYOKU]); } static void fn_1_D00(void) { } -static void fn_1_D04(void) +static void RoundItemMain(void) { - Vec sp3C; - Vec sp30; - Vec sp24; - Vec sp18; - Vec spC; - s8 sp8[4]; - s32 temp_r28; - s32 temp_r3; - s32 var_r26; - s32 var_r25; - s32 temp_r30; + Vec spacePos; + s8 comItem[4]; + s32 spaceStart; + s32 spaceEnd; + s32 comPlayF; + s32 choice; + s32 playerNo; s32 i; s32 j; - temp_r30 = GWSystem.player_curr; - var_r26 = 0; - if (BoardPlayerItemCount(temp_r30) == 3) { + playerNo = GWSystem.player_curr; + comPlayF = FALSE; + if (BoardPlayerItemCount(playerNo) == 3) { BoardWinCreate(0, MAKE_MESSID(10, 9), 0); BoardWinWait(); BoardWinKill(); HuPrcEnd(); } - lbl_1_bss_6B6[0] = 0; + roundItemTbl[0] = 0; i = 1; while (i < 4) { - lbl_1_bss_6B6[i] = frandmod(14); - if (lbl_1_bss_6B6[i] != 10 && lbl_1_bss_6B6[i] != 13) { + roundItemTbl[i] = frandmod(14); + if (roundItemTbl[i] != 10 && roundItemTbl[i] != 13) { for (j = 0; j < i; j++) { - if (lbl_1_bss_6B6[i] == lbl_1_bss_6B6[j]) { - lbl_1_bss_6B6[i] = -1; + if (roundItemTbl[i] == roundItemTbl[j]) { + roundItemTbl[i] = -1; } } - if (lbl_1_bss_6B6[i] != -1) { + if (roundItemTbl[i] != -1) { i++; } } } - fn_1_D740(lbl_1_bss_6B6); + RoundItemInit(roundItemTbl); for (i = 0; i < 4; i++) { - sp8[i] = lbl_1_bss_6B6[i]; + comItem[i] = roundItemTbl[i]; } - if (BoardComPreferItemGet(temp_r30, sp8, 4) != -1) { - var_r26 = 1; + if (BoardComPreferItemGet(playerNo, comItem, 4) != -1) { + comPlayF = TRUE; } HuAudFXPlay(0x40D); HuAudFXPlay(0x40E); - BoardModelAttrReset(lbl_1_bss_6C4[21], 0x40000004); - BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0); - temp_r28 = GWPlayer[temp_r30].space_curr; - temp_r3 = BoardSpaceLinkFlagSearch(0, temp_r28, 0x02000000); - BoardSpacePosGet(0, temp_r3, &sp3C); - sp30.x = 150.0f; - sp30.y = 0.0f; - sp30.z = 0.0f; - sp24.x = -45.0f; - sp24.y = 0.0f; - sp24.z = 0.0f; - BoardCameraMotionStartEx(lbl_1_bss_6C4[4], &sp24, &sp30, 1880.0f, -1.0f, 21); + BoardModelAttrReset(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], HU3D_MOTATTR_REV); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], 0, 0); + spaceStart = GWPlayer[playerNo].space_curr; + spaceEnd = BoardSpaceLinkFlagSearch(0, spaceStart, 0x02000000); + BoardSpacePosGet(0, spaceEnd, &spacePos); + { + Vec cameraOfs; + Vec cameraRot; + cameraOfs.x = 150.0f; + cameraOfs.y = 0.0f; + cameraOfs.z = 0.0f; + cameraRot.x = -45.0f; + cameraRot.y = 0.0f; + cameraRot.z = 0.0f; + BoardCameraMotionStartEx(mapObjMdlId[MAPOBJ_HOST3], &cameraRot, &cameraOfs, 1880.0f, -1.0f, 21); + } BoardCameraMotionWait(); BoardWinCreateChoice(2, MAKE_MESSID(10, 0), 0, 0); - if (GWPlayer[temp_r30].com) { - if (var_r26 != 0) { + if (GWPlayer[playerNo].com) { + if (comPlayF != 0) { BoardComKeySetLeft(); } else { @@ -534,369 +531,376 @@ static void fn_1_D04(void) } BoardWinWait(); BoardWinKill(); - var_r25 = BoardWinChoiceGet(); - if (var_r25 != 0) { + choice = BoardWinChoiceGet(); + if (choice != 0) { BoardWinCreate(2, MAKE_MESSID(10, 4), 0); BoardWinWait(); BoardWinKill(); BoardMGExit(); HuAudFXPlay(0x40F); - BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0x40000004); - while (!BoardModelMotionEndCheck(lbl_1_bss_6C4[21])) { + BoardModelMotionStart(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], 0, HU3D_MOTATTR_REV); + while (!BoardModelMotionEndCheck(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP])) { HuPrcVSleep(); } - BoardModelMotionSpeedSet(lbl_1_bss_6C4[21], 0.0f); - BoardModelAttrReset(lbl_1_bss_6C4[21], 0x40000004); + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], 0.0f); + BoardModelAttrReset(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], HU3D_MOTATTR_REV); while (BoardMGDoneFlagGet() != 1) { HuPrcVSleep(); } BoardMGDoneFlagSet(0); - fn_1_DD84(); + RoundItemKill(); HuPrcEnd(); } - BoardPlayerMoveBetween(temp_r30, temp_r28, temp_r3); - while (GWPlayer[temp_r30].moving) { + BoardPlayerMoveBetween(playerNo, spaceStart, spaceEnd); + while (GWPlayer[playerNo].moving) { HuPrcVSleep(); } - BoardPlayerMotionStart(temp_r30, 1, 0x40000001); - sp18.x = 0.0f; - sp18.y = 0.0f; - sp18.z = 0.0f; - spC.x = -45.0f; - spC.y = 0.0f; - spC.z = 0.0f; - BoardCameraMotionStartEx(lbl_1_bss_6C4[21], &spC, &sp18, 1200.0f, -1.0f, 21); + BoardPlayerMotionStart(playerNo, 1, HU3D_MOTATTR_LOOP); + { + Vec cameraOfs; + Vec cameraRot; + cameraOfs.x = 0.0f; + cameraOfs.y = 0.0f; + cameraOfs.z = 0.0f; + cameraRot.x = -45.0f; + cameraRot.y = 0.0f; + cameraRot.z = 0.0f; + BoardCameraMotionStartEx(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], &cameraRot, &cameraOfs, 1200.0f, -1.0f, 21); + } BoardCameraMotionWait(); - fn_1_DE94(); + RoundItemEventStart(); while (BoardEventFlagGet() != 0) { HuPrcVSleep(); } BoardCameraMotionWait(); BoardAudSeqPause(0, 0, 1000); - while (GWPlayer[temp_r30].moving) { + while (GWPlayer[playerNo].moving) { HuPrcVSleep(); } - BoardPlayerMotionStart(temp_r30, 1, 0x40000001); + BoardPlayerMotionStart(playerNo, 1, HU3D_MOTATTR_LOOP); HuPrcEnd(); } -static void fn_1_1254(void) +static void RoundItemDestroy(void) { BoardWinKill(); CharModelDataClose(-1); - lbl_1_bss_4 = NULL; + roundItemProc = NULL; } -static void fn_1_128C(void) +static void RoundItemEvent(void) { - lbl_1_bss_4 = HuPrcChildCreate(fn_1_D04, 0x2003, 0x2000, 0, boardMainProc); - HuPrcDestructorSet2(lbl_1_bss_4, fn_1_1254); - while (lbl_1_bss_4) { + roundItemProc = HuPrcChildCreate(RoundItemMain, 0x2003, 0x2000, 0, boardMainProc); + HuPrcDestructorSet2(roundItemProc, RoundItemDestroy); + while (roundItemProc) { HuPrcVSleep(); } } -static void fn_1_130C(void) +static void SpaceAmidaEvent(void) { - Vec sp20; - Vec sp14; - Vec sp8; - s32 temp_r31; - s32 var_r28; - s32 temp_r30; - s32 temp_r3; + Vec spacePos; + s32 playerNo; + s32 choice; + s32 spaceStart; + s32 spaceEnd; - temp_r31 = GWSystem.player_curr; + playerNo = GWSystem.player_curr; BoardWinCreateChoice(2, MAKE_MESSID(11, 0), 0, 0); - if (GWPlayer[temp_r31].com) { + if (GWPlayer[playerNo].com) { BoardComKeySetLeft(); } BoardWinWait(); BoardWinKill(); - var_r28 = BoardWinChoiceGet(); - if (var_r28 != 0) { + choice = BoardWinChoiceGet(); + if (choice != 0) { BoardWinCreate(2, MAKE_MESSID(11, 4), 0); BoardWinWait(); BoardWinKill(); BoardMGExit(); return; } - BoardModelMotionStart(lbl_1_bss_6C4[6], 0, 0); - sp14.x = 0.0f; - sp14.y = 0.0f; - sp14.z = 0.0f; - sp8.x = 0.0f; - sp8.y = 170.0f; - sp8.z = 0.0f; - BoardCameraMotionStartEx(lbl_1_bss_6C4[6], &sp14, &sp8, 1200.0f, 25.0f, 21); - temp_r30 = GWPlayer[temp_r31].space_curr; - temp_r3 = BoardSpaceLinkFlagSearch(0, temp_r30, 0x02000000); - BoardSpacePosGet(0, temp_r3, &sp20); - BoardPlayerMoveBetween(temp_r31, temp_r30, temp_r3); - BoardPlayerMotionStart(temp_r31, 1, 0x40000001); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_SPACEAMIDA], 0, 0); + { + Vec cameraOfs; + Vec cameraRot; + cameraOfs.x = 0.0f; + cameraOfs.y = 0.0f; + cameraOfs.z = 0.0f; + cameraRot.x = 0.0f; + cameraRot.y = 170.0f; + cameraRot.z = 0.0f; + BoardCameraMotionStartEx(mapObjMdlId[MAPOBJ_SPACEAMIDA], &cameraOfs, &cameraRot, 1200.0f, 25.0f, 21); + } + + spaceStart = GWPlayer[playerNo].space_curr; + spaceEnd = BoardSpaceLinkFlagSearch(0, spaceStart, 0x02000000); + BoardSpacePosGet(0, spaceEnd, &spacePos); + BoardPlayerMoveBetween(playerNo, spaceStart, spaceEnd); + BoardPlayerMotionStart(playerNo, 1, HU3D_MOTATTR_LOOP); BoardAudSeqPause(0, 1, 1000); - fn_1_9DD8(); - while (GWPlayer[temp_r31].moving) { + SpaceAmidaExec(); + while (GWPlayer[playerNo].moving) { HuPrcVSleep(); } while (BoardEventFlagGet() != 0) { HuPrcVSleep(); } BoardAudSeqPause(0, 0, 1000); - while (GWPlayer[temp_r31].moving) { + while (GWPlayer[playerNo].moving) { HuPrcVSleep(); } - BoardPlayerMotionStart(temp_r31, 1, 0x40000001); + BoardPlayerMotionStart(playerNo, 1, HU3D_MOTATTR_LOOP); } -static s32 fn_1_157C(void) +static s32 WalkMiniEvent(void) { - s32 temp_r31; - s16 temp_curr; + s32 flag; + s16 spaceId; - temp_curr = GWPlayer[GWSystem.player_curr].space_curr; - temp_r31 = BoardSpaceFlagGet(0, temp_curr) & 0x600000; + spaceId = GWPlayer[GWSystem.player_curr].space_curr; + flag = BoardSpaceFlagGet(0, spaceId) & 0x600000; BoardRollDispSet(0); - if (temp_r31 == 0x200000) { - fn_1_130C(); + if (flag == 0x200000) { + SpaceAmidaEvent(); } - else if (temp_r31 == 0x400000) { - fn_1_128C(); + else if (flag == 0x400000) { + RoundItemEvent(); } BoardRollDispSet(1); } -static void fn_1_1670(void) +static void UpdateHostDisp(void) { - if (lbl_1_bss_0->unk00_field0 == 0) { - BoardModelVisibilitySet(lbl_1_bss_6C4[2], 1); - BoardModelVisibilitySet(lbl_1_bss_6C4[3], 0); + if (boardWork->hostSide == 0) { + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_HOST1], 1); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_HOST2], 0); } else { - BoardModelVisibilitySet(lbl_1_bss_6C4[2], 0); - BoardModelVisibilitySet(lbl_1_bss_6C4[3], 1); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_HOST1], 0); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_HOST2], 1); } } -static void fn_1_1700(void) +static void CoasterInit(void) { - Vec sp8; - Mtx sp14; + Vec pos; + Mtx matrix; - lbl_1_bss_6B1 = 0; - lbl_1_bss_6AE = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 10), NULL, 0); - lbl_1_bss_644 = BoardModelMotionMaxTimeGet(lbl_1_bss_6AE); - BoardModelVisibilitySet(lbl_1_bss_6AE, 0); + coasterLandF = 0; + coasterPathMdlId = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 10), NULL, 0); + coasterMaxTime = BoardModelMotionMaxTimeGet(coasterPathMdlId); + BoardModelVisibilitySet(coasterPathMdlId, 0); memset(lbl_1_bss_2C, 0, sizeof(lbl_1_bss_2C)); if (BoardSpaceRead(1, DATA_MAKE_NUM(DATADIR_W01, 6)) == 0) { - if (lbl_1_bss_0->unk00_field0 == 0) { - BoardSpaceFlagPosGet(1, 0x2000, &sp8); - BoardModelMotionTimeSet(lbl_1_bss_6AE, lbl_1_bss_644); - lbl_1_bss_63C = -90.0f; + if (boardWork->hostSide == 0) { + BoardSpaceFlagPosGet(1, 0x2000, &pos); + BoardModelMotionTimeSet(coasterPathMdlId, coasterMaxTime); + coasterBaseRotY = -90.0f; } else { - BoardSpaceFlagPosGet(1, 0x1000, &sp8); - BoardModelMotionTimeSet(lbl_1_bss_6AE, 0.0f); - lbl_1_bss_63C = 90.0f; + BoardSpaceFlagPosGet(1, 0x1000, &pos); + BoardModelMotionTimeSet(coasterPathMdlId, 0.0f); + coasterBaseRotY = 90.0f; } - lbl_1_bss_654 = sp8; - BoardModelPosSetV(lbl_1_bss_6C4[0], &sp8); - BoardModelRotSet(lbl_1_bss_6C4[0], 0.0f, lbl_1_bss_63C, 0.0f); - BoardModelExistDupe(lbl_1_bss_6C4[0], 1); - BoardModelExistDupe(lbl_1_bss_6C4[1], 1); - fn_8006DDE8(lbl_1_bss_6C4[1], 500.0f); - MTXIdentity(sp14); - BoardModelMtxSet(lbl_1_bss_6C4[0], &sp14); - fn_1_1670(); + coasterPos = pos; + BoardModelPosSetV(mapObjMdlId[MAPOBJ_COASTER], &pos); + BoardModelRotSet(mapObjMdlId[MAPOBJ_COASTER], 0.0f, coasterBaseRotY, 0.0f); + BoardModelExistDupe(mapObjMdlId[MAPOBJ_COASTER], 1); + BoardModelExistDupe(mapObjMdlId[MAPOBJ_COASTER_RAIL], 1); + fn_8006DDE8(mapObjMdlId[MAPOBJ_COASTER_RAIL], 500.0f); + MTXIdentity(matrix); + BoardModelMtxSet(mapObjMdlId[MAPOBJ_COASTER], &matrix); + UpdateHostDisp(); } } -static void fn_1_1990(void) +static void CoasterPathUpdate(void) { - Vec sp10; - float var_f31; - s32 var_r29; - s32 var_r30; - s16 sp8[3]; - BoardSpace *temp_r31; - BoardSpace *temp_r3; + Vec diff; + float time; + s32 spaceId; + s32 spaceIdLink; + s16 linkTbl[3]; + BoardSpace *space; + BoardSpace *spaceLink; - var_r29 = lbl_1_bss_6AC; - var_f31 = 0.0f; + spaceId = coasterStartSpace; + time = 0.0f; while (TRUE) { - temp_r31 = BoardSpaceGet(1, var_r29); - if (lbl_1_bss_0->unk00_field0 == 0) { - var_r30 = temp_r31->link[0]; + space = BoardSpaceGet(1, spaceId); + if (boardWork->hostSide == 0) { + spaceIdLink = space->link[0]; } else { - BoardSpaceLinkTargetListGet(1, var_r29, sp8); - var_r30 = sp8[0]; + BoardSpaceLinkTargetListGet(1, spaceId, linkTbl); + spaceIdLink = linkTbl[0]; } - if (var_r30 == 0) { + if (spaceIdLink == 0) { break; } - temp_r3 = BoardSpaceGet(1, var_r30); - if (!temp_r3) { - temp_r3 = temp_r31; + spaceLink = BoardSpaceGet(1, spaceIdLink); + if (!spaceLink) { + spaceLink = space; break; } - VECSubtract(&temp_r3->pos, &temp_r31->pos, &sp10); - var_f31 += VECMag(&sp10); - if (var_f31 >= lbl_1_bss_640) { + VECSubtract(&spaceLink->pos, &space->pos, &diff); + time += VECMag(&diff); + if (time >= coasterTime) { break; } - var_r29 = var_r30; + spaceId = spaceIdLink; } - if (temp_r31->flag & 8) { - lbl_1_bss_6B3 = 1; + if (space->flag & 8) { + coasterLoopF = 1; } else { - lbl_1_bss_6B3 = 0; + coasterLoopF = 0; } } -static void fn_1_1AD8(BoardCameraData *camera) +static void CoasterPosCalc(BoardCameraData *camera) { - camera->pos = lbl_1_bss_630; - camera->up = lbl_1_bss_624; - camera->target = lbl_1_bss_618; + camera->pos = coasterCameraPos; + camera->up = coasterCameraUp; + camera->target = coasterCameraTarget; } -static void fn_1_1B3C(void) +static void CoasterCameraUpdate(void) { - Vec sp3C; - Vec sp30; - Vec sp24; - Vec sp18; - Vec spC; - Mtx sp48; + Vec modelPos; + Vec diff; + Vec target; + Vec up; + Vec pos; + Mtx matrix; - VECSubtract(&lbl_1_bss_654, &lbl_1_bss_648, &sp30); - if (lbl_1_bss_6B3 != 0) { - BoardModelPosGet(lbl_1_bss_6C4[1], &sp3C); - VECSubtract(&sp3C, &lbl_1_bss_654, &sp18); - VECNormalize(&sp18, &sp18); - sp24 = lbl_1_bss_648; - spC = lbl_1_bss_654; - BoardMTXCalcLookAt(sp48, &spC, &sp18, &sp24); - MTXTranspose(sp48, lbl_1_bss_678); - MTXRotRad(sp48, 'z', MTXDegToRad(lbl_1_bss_660.z)); - MTXConcat(lbl_1_bss_678, sp48, lbl_1_bss_678); + VECSubtract(&coasterPos, &coasterPosOld, &diff); + if (coasterLoopF != 0) { + BoardModelPosGet(mapObjMdlId[MAPOBJ_COASTER_RAIL], &modelPos); + VECSubtract(&modelPos, &coasterPos, &up); + VECNormalize(&up, &up); + target = coasterPosOld; + pos = coasterPos; + BoardMTXCalcLookAt(matrix, &pos, &up, &target); + MTXTranspose(matrix, coasterMtx); + MTXRotRad(matrix, 'z', MTXDegToRad(coasterRot.z)); + MTXConcat(coasterMtx, matrix, coasterMtx); } else { - if (sp30.z != 0.0f || sp30.x != 0.0f) { - lbl_1_bss_660.y = atan2d(sp30.x, sp30.z); - lbl_1_bss_660.x = -atan2d(sp30.y, VECMagXZ(&sp30)); + if (diff.z != 0.0f || diff.x != 0.0f) { + coasterRot.y = atan2d(diff.x, diff.z); + coasterRot.x = -atan2d(diff.y, VECMagXZ(&diff)); } else { - lbl_1_bss_660.x = lbl_1_bss_660.y = 0.0f; + coasterRot.x = coasterRot.y = 0.0f; } - MTXRotRad(lbl_1_bss_678, 'z', MTXDegToRad(lbl_1_bss_660.z)); - MTXRotRad(sp48, 'x', MTXDegToRad(lbl_1_bss_660.x)); - MTXConcat(sp48, lbl_1_bss_678, lbl_1_bss_678); - MTXRotRad(sp48, 'y', MTXDegToRad(lbl_1_bss_660.y)); - MTXConcat(sp48, lbl_1_bss_678, lbl_1_bss_678); + MTXRotRad(coasterMtx, 'z', MTXDegToRad(coasterRot.z)); + MTXRotRad(matrix, 'x', MTXDegToRad(coasterRot.x)); + MTXConcat(matrix, coasterMtx, coasterMtx); + MTXRotRad(matrix, 'y', MTXDegToRad(coasterRot.y)); + MTXConcat(matrix, coasterMtx, coasterMtx); } } -static void fn_1_1EE4(void) +static void CoasterCameraObjKill(void) { - Bss10Work *temp_r31; + CoasterCameraWork *work; - if (lbl_1_bss_10) { - temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_10, Bss10Work); - temp_r31->unk00_field0 = 1; + if (coasterCameraObj) { + work = OM_GET_WORK_PTR(coasterCameraObj, CoasterCameraWork); + work->killF = TRUE; } } -static void fn_1_1F2C(omObjData *arg0) +static void CoasterCameraObjMain(omObjData *obj) { - Bss10Work *temp_r31 = OM_GET_WORK_PTR(arg0, Bss10Work); + CoasterCameraWork *work = OM_GET_WORK_PTR(obj, CoasterCameraWork); - if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { - omDelObjEx(HuPrcCurrentGet(), arg0); - lbl_1_bss_10 = NULL; + if (work->killF != 0 || BoardIsKill()) { + omDelObjEx(HuPrcCurrentGet(), obj); + coasterCameraObj = NULL; return; } - fn_1_1FA4(); + CoasterCameraObjUpdate(); } -static void fn_1_1FA4(void) +static void CoasterCameraObjUpdate(void) { - Vec sp18; - Vec spC; - float temp_f28; - float temp_f29; - float var_f27; + Vec modelPos; + Vec pos; + float angleY; + float angleX; + float radius; - spC.x = lbl_1_bss_648.x; - spC.y = lbl_1_bss_648.y + 200.0f; - spC.z = lbl_1_bss_648.z; - VECSubtract(&spC, &lbl_1_bss_618, &spC); - VECScale(&spC, &spC, 0.08f); - VECAdd(&spC, &lbl_1_bss_618, &lbl_1_bss_618); - VECSubtract(&lbl_1_bss_654, &lbl_1_bss_648, &spC); - if (spC.x != 0.0f || spC.z != 0.0f) { - temp_f29 = atan2f(spC.y, VECMagXZ(&spC)); - temp_f28 = atan2f(-spC.x, -spC.z); + pos.x = coasterPosOld.x; + pos.y = coasterPosOld.y + 200.0f; + pos.z = coasterPosOld.z; + VECSubtract(&pos, &coasterCameraTarget, &pos); + VECScale(&pos, &pos, 0.08f); + VECAdd(&pos, &coasterCameraTarget, &coasterCameraTarget); + VECSubtract(&coasterPos, &coasterPosOld, &pos); + if (pos.x != 0.0f || pos.z != 0.0f) { + angleX = atan2f(pos.y, VECMagXZ(&pos)); + angleY = atan2f(-pos.x, -pos.z); } else { - temp_f29 = temp_f28 = 0.0f; + angleX = angleY = 0.0f; return; } - temp_f29 += -0.27925268f; - if (lbl_1_bss_6B3 != 0) { - if (lbl_1_bss_66C < 0.08f) { - lbl_1_bss_66C -= 0.00033333333f; + angleX += -0.27925268f; + if (coasterLoopF != 0) { + if (coasterCamSpeed < 0.08f) { + coasterCamSpeed -= 0.00033333333f; } - BoardModelPosGet(lbl_1_bss_6C4[1], &sp18); - if (lbl_1_bss_0->unk00_field0 == 0) { - var_f27 = -2500.0f; + BoardModelPosGet(mapObjMdlId[MAPOBJ_COASTER_RAIL], &modelPos); + if (boardWork->hostSide == 0) { + radius = -2500.0f; } else { - var_f27 = 2500.0f; + radius = 2500.0f; } - sp18.x = sp18.x + var_f27 * sin(1.4137166738510132); // TODO: should be sind(81) - sp18.y = sp18.y + -150.0f; - sp18.z = sp18.z + var_f27 * cos(1.4137166738510132); // TODO: should be cosd(81) - VECSubtract(&sp18, &lbl_1_bss_630, &spC); - VECScale(&spC, &spC, lbl_1_bss_66C); - VECAdd(&spC, &lbl_1_bss_630, &lbl_1_bss_630); + modelPos.x = modelPos.x + radius * sin(1.4137166738510132); // TODO: should be sind(81) + modelPos.y = modelPos.y + -150.0f; + modelPos.z = modelPos.z + radius * cos(1.4137166738510132); // TODO: should be cosd(81) + VECSubtract(&modelPos, &coasterCameraPos, &pos); + VECScale(&pos, &pos, coasterCamSpeed); + VECAdd(&pos, &coasterCameraPos, &coasterCameraPos); } else { - if (lbl_1_bss_66C < 0.08f) { - lbl_1_bss_66C += 0.00066666666f; + if (coasterCamSpeed < 0.08f) { + coasterCamSpeed += 0.00066666666f; } - spC.x = 400.0 * (sin(temp_f28) * cos(temp_f29)); - spC.y = 400.0 * -sin(temp_f29); - spC.z = 400.0 * (cos(temp_f28) * cos(temp_f29)); - VECAdd(&lbl_1_bss_618, &spC, &spC); - VECSubtract(&spC, &lbl_1_bss_630, &spC); - VECScale(&spC, &spC, lbl_1_bss_66C); - VECAdd(&spC, &lbl_1_bss_630, &lbl_1_bss_630); + pos.x = 400.0 * (sin(angleY) * cos(angleX)); + pos.y = 400.0 * -sin(angleX); + pos.z = 400.0 * (cos(angleY) * cos(angleX)); + VECAdd(&coasterCameraTarget, &pos, &pos); + VECSubtract(&pos, &coasterCameraPos, &pos); + VECScale(&pos, &pos, coasterCamSpeed); + VECAdd(&pos, &coasterCameraPos, &coasterCameraPos); } } -static float fn_1_2524(void) +static float CoasterStickRotGet(void) { - Vec sp24; - Vec sp18; - Vec spC; - float var_f30; - s16 sp8; - s32 var_r29; + Vec basePos; + Vec modelPos; + Vec diff; + float stickRot; + s16 stkX; + s32 padNo; s32 i; - sp24 = lbl_1_bss_654; - if (GWPlayer[lbl_1_bss_6B4].com) { - if (lbl_1_bss_6B3 != 0) { + basePos = coasterPos; + if (GWPlayer[eventPlayer].com) { + if (coasterLoopF != 0) { return 0.0f; } for (i = 0; i < 24; i++) { - if (lbl_1_bss_600[i] == 0) { - BoardModelPosGet(lbl_1_bss_5D0[i], &sp18); - VECSubtract(&sp18, &sp24, &spC); - if (!(VECMag(&spC) > 400.0f)) { + if (coasterCoinF[i] == 0) { + BoardModelPosGet(coasterCoinMdlId[i], &modelPos); + VECSubtract(&modelPos, &basePos, &diff); + if (!(VECMag(&diff) > 400.0f)) { break; } } @@ -904,109 +908,104 @@ static float fn_1_2524(void) if (i == 24) { return 0.0f; } - VECSubtract(&sp18, &sp24, &spC); - var_f30 = atan2d(spC.x, spC.z); - if (var_f30 > 0.0f) { - var_f30 = 45.0f; + VECSubtract(&modelPos, &basePos, &diff); + stickRot = atan2d(diff.x, diff.z); + if (stickRot > 0.0f) { + stickRot = 45.0f; } else { - var_f30 = -45.0f; + stickRot = -45.0f; } } else { - var_r29 = GWPlayer[lbl_1_bss_6B4].port; - sp8 = HuPadStkX[var_r29]; - OSs16tof32(&sp8, &var_f30); - var_f30 = var_f30 * 0.625f; + padNo = GWPlayer[eventPlayer].port; + stkX = HuPadStkX[padNo]; + OSs16tof32(&stkX, &stickRot); + stickRot = stickRot * 0.625f; } - return var_f30; + return stickRot; } -static void fn_1_276C(void) +static void CoasterRotUpdate(void) { - Vec sp58; - Vec sp40; - Vec sp34; - Vec sp28; - Vec sp1C; - float temp_f26; - float var_f27; + float motTime; + float stickRot; Mtx sp70; - fn_1_1B3C(); - if (lbl_1_bss_6B1 != 0) { - lbl_1_bss_660.z = 0.0f; + CoasterCameraUpdate(); + if (coasterLandF != 0) { + coasterRot.z = 0.0f; return; } - var_f27 = fn_1_2524(); - BoardDAngleCalcRange(&lbl_1_bss_660.z, var_f27, 5.0f); - temp_f26 = 6.0f + 6.0f * (lbl_1_bss_660.z / 45.0f) - 1.0f; - if (lbl_1_bss_660.z > 22.5f) { - BoardPlayerMotionStart(lbl_1_bss_6B4, lbl_1_bss_5CC[1], 0); - BoardPlayerMotionTimeSet(lbl_1_bss_6B4, temp_f26); + stickRot = CoasterStickRotGet(); + BoardDAngleCalcRange(&coasterRot.z, stickRot, 5.0f); + motTime = 6.0f + 6.0f * (coasterRot.z / 45.0f) - 1.0f; + if (coasterRot.z > 22.5f) { + BoardPlayerMotionStart(eventPlayer, coasterMotId[1], 0); + BoardPlayerMotionTimeSet(eventPlayer, motTime); } - else if (lbl_1_bss_660.z < -22.5f) { - BoardPlayerMotionStart(lbl_1_bss_6B4, lbl_1_bss_5CC[1], 0); - BoardPlayerMotionTimeSet(lbl_1_bss_6B4, temp_f26); + else if (coasterRot.z < -22.5f) { + BoardPlayerMotionStart(eventPlayer, coasterMotId[1], 0); + BoardPlayerMotionTimeSet(eventPlayer, motTime); } else { - BoardPlayerMotionShiftSet(lbl_1_bss_6B4, lbl_1_bss_5CC[0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + BoardPlayerMotionShiftSet(eventPlayer, coasterMotId[0], 0.0f, 10.0f, HU3D_MOTATTR_LOOP); } - fn_1_2F18(); + CoasterCoinCheck(); } -static void fn_1_2F18(void) +static void CoasterCoinCheck(void) { - Vec sp3C; - Vec sp30; - Vec sp24; - Vec sp18; - Vec spC; - float var_f29; - Mtx spD8; - Mtx spA8; - Mtx sp78; - Mtx sp48; + Vec coinPos; + Vec ofs; + Vec angle; + Vec diff; + Vec mdlCoasterPos; + float rotZ; + Mtx matrix; + Mtx mtxRotX; + Mtx mtxRotY; + Mtx mtxRotZ; s32 i; - if (lbl_1_bss_6B3 == 0) { - var_f29 = lbl_1_bss_660.z; - if (var_f29 > 180.0f) { - var_f29 -= 360.0f; + if (coasterLoopF == 0) { + rotZ = coasterRot.z; + if (rotZ > 180.0f) { + rotZ -= 360.0f; } - BoardModelPosGet(lbl_1_bss_6C4[0], &spC); - VECSubtract(&lbl_1_bss_654, &lbl_1_bss_648, &sp18); - if (sp18.z != 0.0f || sp18.x != 0.0f) { - sp24.y = atan2d(sp18.x, sp18.z); - sp24.x = -atan2d(sp18.y, VECMagXZ(&sp18)); + BoardModelPosGet(mapObjMdlId[MAPOBJ_COASTER], &mdlCoasterPos); + VECSubtract(&coasterPos, &coasterPosOld, &diff); + if (diff.z != 0.0f || diff.x != 0.0f) { + angle.y = atan2d(diff.x, diff.z); + angle.x = -atan2d(diff.y, VECMagXZ(&diff)); } else { - sp24.x = sp24.y = 0.0f; + angle.x = angle.y = 0.0f; } - MTXTrans(spD8, 0.0f, 180.0f, 0.0f); - MTXRotRad(spA8, 'x', MTXDegToRad(sp24.x)); - MTXRotRad(sp78, 'y', MTXDegToRad(sp24.y)); - MTXRotRad(sp48, 'z', MTXDegToRad(var_f29)); - MTXConcat(spA8, sp48, sp48); - MTXConcat(sp78, sp48, sp48); - MTXConcat(sp48, spD8, spD8); - sp30.x = spD8[0][3]; - sp30.y = spD8[1][3]; - sp30.z = spD8[2][3]; - VECAdd(&sp30, &spC, &sp30); - if (var_f29 < 27.000002f && var_f29 > -27.000002f) { + MTXTrans(matrix, 0.0f, 180.0f, 0.0f); + MTXRotRad(mtxRotX, 'x', MTXDegToRad(angle.x)); + MTXRotRad(mtxRotY, 'y', MTXDegToRad(angle.y)); + MTXRotRad(mtxRotZ, 'z', MTXDegToRad(rotZ)); + MTXConcat(mtxRotX, mtxRotZ, mtxRotZ); + MTXConcat(mtxRotY, mtxRotZ, mtxRotZ); + MTXConcat(mtxRotZ, matrix, matrix); + ofs.x = matrix[0][3]; + ofs.y = matrix[1][3]; + ofs.z = matrix[2][3]; + VECAdd(&ofs, &mdlCoasterPos, &ofs); + if (rotZ < 27.000002f && rotZ > -27.000002f) { return; } for (i = 0; i < 24; i++) { - if (lbl_1_bss_600[i] == 0) { - BoardModelPosGet(lbl_1_bss_5D0[i], &sp3C); - if (BoardVecMaxDistXZCheck(&sp3C, &sp30, 180.0f)) { + if (coasterCoinF[i] == 0) { + BoardModelPosGet(coasterCoinMdlId[i], &coinPos); + if (BoardVecMaxDistXZCheck(&coinPos, &ofs, 180.0f)) { CharModelLayerSetAll(2); - CharModelCoinEffectCreate(1, &sp3C); - BoardModelVisibilitySet(lbl_1_bss_5D0[i], 0); - BoardPlayerCoinsAdd(lbl_1_bss_6B4, 1); + CharModelCoinEffectCreate(1, &coinPos); + BoardModelVisibilitySet(coasterCoinMdlId[i], 0); + BoardPlayerCoinsAdd(eventPlayer, 1); HuAudFXPlay(7); - lbl_1_bss_600[i] = 1; + coasterCoinF[i] = 1; break; } } @@ -1014,239 +1013,236 @@ static void fn_1_2F18(void) } } -static s16 lbl_1_data_580 = -1; +static s16 coasterWinId = -1; -static void fn_1_3350(void) +static void CoasterPathMotUpdate(void) { - Vec sp8; - s16 temp_r3; - ModelData *temp_r30; - HsfObject *temp_r31; + Vec diff; + s16 modelId; + ModelData *modelP; + HsfObject *obj; - lbl_1_bss_674 += 0.002f; - if (lbl_1_bss_670 > 0.18f) { - lbl_1_bss_670 = 0.18f; + coasterAccel += 0.002f; + if (coasterSpeed > 0.18f) { + coasterSpeed = 0.18f; } - else if (lbl_1_bss_670 < 0.18f) { - lbl_1_bss_670 += lbl_1_bss_674; + else if (coasterSpeed < 0.18f) { + coasterSpeed += coasterAccel; } - temp_r3 = BoardModelIDGet(lbl_1_bss_6AE); - temp_r30 = &Hu3DData[temp_r3]; - Hu3DMotionExec(temp_r3, temp_r30->unk_08, temp_r30->unk_64, 0); - temp_r31 = Hu3DModelObjPtrGet(temp_r3, "looppath-cube1"); - lbl_1_bss_648 = lbl_1_bss_654; - lbl_1_bss_654.x = temp_r31->data.curr.pos.x; - lbl_1_bss_654.y = temp_r31->data.curr.pos.y; - lbl_1_bss_654.z = temp_r31->data.curr.pos.z; - VECSubtract(&lbl_1_bss_648, &lbl_1_bss_654, &sp8); - lbl_1_bss_640 += VECMag(&sp8); + modelId = BoardModelIDGet(coasterPathMdlId); + modelP = &Hu3DData[modelId]; + Hu3DMotionExec(modelId, modelP->unk_08, modelP->unk_64, 0); + obj = Hu3DModelObjPtrGet(modelId, "looppath-cube1"); + coasterPosOld = coasterPos; + coasterPos.x = obj->data.curr.pos.x; + coasterPos.y = obj->data.curr.pos.y; + coasterPos.z = obj->data.curr.pos.z; + VECSubtract(&coasterPosOld, &coasterPos, &diff); + coasterTime += VECMag(&diff); } -static s32 lbl_1_data_594[8][2] +static s32 coasterMotTbl[8][2] = { { DATA_MAKE_NUM(DATADIR_W01, 34), DATA_MAKE_NUM(DATADIR_W01, 42) }, { DATA_MAKE_NUM(DATADIR_W01, 35), DATA_MAKE_NUM(DATADIR_W01, 43) }, { DATA_MAKE_NUM(DATADIR_W01, 36), DATA_MAKE_NUM(DATADIR_W01, 44) }, { DATA_MAKE_NUM(DATADIR_W01, 37), DATA_MAKE_NUM(DATADIR_W01, 45) }, { DATA_MAKE_NUM(DATADIR_W01, 38), DATA_MAKE_NUM(DATADIR_W01, 46) }, { DATA_MAKE_NUM(DATADIR_W01, 39), DATA_MAKE_NUM(DATADIR_W01, 47) }, { DATA_MAKE_NUM(DATADIR_W01, 40), DATA_MAKE_NUM(DATADIR_W01, 48) }, { DATA_MAKE_NUM(DATADIR_W01, 41), DATA_MAKE_NUM(DATADIR_W01, 49) } }; -static void fn_1_3514(s32 arg0) +static void CoasterMotCreate(s32 playerNo) { - s32 temp_r30; + s32 charNo; s32 i; - temp_r30 = GWPlayer[arg0].character; + charNo = GWPlayer[playerNo].character; for (i = 0; i < 2; i++) { - lbl_1_bss_5CC[i] = BoardPlayerMotionCreate(arg0, lbl_1_data_594[temp_r30][i]); + coasterMotId[i] = BoardPlayerMotionCreate(playerNo, coasterMotTbl[charNo][i]); } } -static void fn_1_35B4(s32 arg0) +static void CoasterMotKill(s32 playerNo) { s32 i; for (i = 0; i < 2; i++) { - BoardPlayerMotionKill(arg0, lbl_1_bss_5CC[i]); - lbl_1_bss_5CC[i] = -1; + BoardPlayerMotionKill(playerNo, coasterMotId[i]); + coasterMotId[i] = -1; } } -static void fn_1_3624(void) +static void CoasterExec(void) { - Mtx sp48; - Vec sp3C; - Vec sp30; - Vec sp24; - Vec sp18; - float temp_f28; - float var_f30; - float var_f29; - s32 temp_r19; - Bss10Work *temp_r18; - s16 sp10; - s16 var_r25; + Mtx playerMtx; + Vec spacePos; + Vec cameraRot; + float coasterRotSpeed; + float coasterRotDir; + float coasterMotSpeed; + s32 seNo; + CoasterCameraWork *camWork; + s16 endSpace; s16 i; - lbl_1_bss_674 = lbl_1_bss_670 = 0.0f; - lbl_1_bss_640 = 0.0f; - lbl_1_bss_660.x = 0.0f; - lbl_1_bss_660.y = 0.0f; - lbl_1_bss_660.z = 0.0f; + coasterAccel = coasterSpeed = 0.0f; + coasterTime = 0.0f; + coasterRot.x = 0.0f; + coasterRot.y = 0.0f; + coasterRot.z = 0.0f; lbl_1_bss_6A8 = 0.0f; - lbl_1_bss_6B3 = 0; - lbl_1_bss_624.x = 0.0f; - lbl_1_bss_624.z = 0.0f; - lbl_1_bss_624.y = 1.0f; - lbl_1_bss_66C = 0.08f; - fn_1_3514(lbl_1_bss_6B4); - BoardPlayerMotionStart(lbl_1_bss_6B4, lbl_1_bss_5CC[0], 0x40000001); + coasterLoopF = 0; + coasterCameraUp.x = 0.0f; + coasterCameraUp.z = 0.0f; + coasterCameraUp.y = 1.0f; + coasterCamSpeed = 0.08f; + CoasterMotCreate(eventPlayer); + BoardPlayerMotionStart(eventPlayer, coasterMotId[0], HU3D_MOTATTR_LOOP); BoardSpaceAttrSet(0, 1); - fn_1_97F4(); - BoardModelMotionStart(lbl_1_bss_6AE, 0, 0); - if (lbl_1_bss_0->unk00_field0 == 0) { - BoardModelMotionTimeSet(lbl_1_bss_6AE, lbl_1_bss_644); - lbl_1_bss_63C = -90.0f; - lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x2000, &sp3C); - var_r25 = BoardSpaceFlagSearch(0, 0x1000); - var_f30 = -1.0f; + CoasterEffCreate(); + BoardModelMotionStart(coasterPathMdlId, 0, 0); + if (boardWork->hostSide == 0) { + BoardModelMotionTimeSet(coasterPathMdlId, coasterMaxTime); + coasterBaseRotY = -90.0f; + coasterStartSpace = BoardSpaceFlagPosGet(1, 0x2000, &spacePos); + endSpace = BoardSpaceFlagSearch(0, 0x1000); + coasterRotDir = -1.0f; } else { - BoardModelMotionTimeSet(lbl_1_bss_6AE, 0.0f); - lbl_1_bss_63C = 90.0f; - lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x1000, &sp3C); - var_r25 = BoardSpaceFlagSearch(0, 0x2000); - var_f30 = 1.0f; + BoardModelMotionTimeSet(coasterPathMdlId, 0.0f); + coasterBaseRotY = 90.0f; + coasterStartSpace = BoardSpaceFlagPosGet(1, 0x1000, &spacePos); + endSpace = BoardSpaceFlagSearch(0, 0x2000); + coasterRotDir = 1.0f; } - lbl_1_bss_654 = sp3C; - lbl_1_bss_648 = lbl_1_bss_654; - BoardModelMotionSpeedSet(lbl_1_bss_6AE, lbl_1_bss_670); - BoardPlayerPosSetV(lbl_1_bss_6B4, &lbl_1_bss_654); - BoardCameraPosCalcFuncSet(fn_1_1AD8); - lbl_1_bss_10 = omAddObjEx(boardObjMan, 0x7E02, 0, 0, -1, fn_1_1F2C); - temp_r18 = OM_GET_WORK_PTR(lbl_1_bss_10, Bss10Work); - temp_r18->unk00_field0 = 0; - sp30.x = -40.0f; - sp30.z = 0.0f; - sp30.y = -lbl_1_bss_63C; - BoardCameraMotionStartEx(lbl_1_bss_6C4[0], &sp30, NULL, 150.0f, -1.0f, 2); + coasterPos = spacePos; + coasterPosOld = coasterPos; + BoardModelMotionSpeedSet(coasterPathMdlId, coasterSpeed); + BoardPlayerPosSetV(eventPlayer, &coasterPos); + BoardCameraPosCalcFuncSet(CoasterPosCalc); + coasterCameraObj = omAddObjEx(boardObjMan, 0x7E02, 0, 0, -1, CoasterCameraObjMain); + camWork = OM_GET_WORK_PTR(coasterCameraObj, CoasterCameraWork); + camWork->killF = FALSE; + cameraRot.x = -40.0f; + cameraRot.z = 0.0f; + cameraRot.y = -coasterBaseRotY; + BoardCameraMotionStartEx(mapObjMdlId[MAPOBJ_COASTER], &cameraRot, NULL, 150.0f, -1.0f, 2); BoardCameraMotionWait(); - BoardModelPosGet(lbl_1_bss_6C4[0], &lbl_1_bss_618); - lbl_1_bss_630.x = lbl_1_bss_618.x + 1000.0 * (sind(sp30.y) * cosd(sp30.x)); - lbl_1_bss_630.y = lbl_1_bss_618.y + 1000.0 * -sind(sp30.x); - lbl_1_bss_630.z = lbl_1_bss_618.z + 1000.0 * (cosd(sp30.y) * cosd(sp30.x)); - MTXRotRad(lbl_1_bss_678, 'y', MTXDegToRad(lbl_1_bss_63C)); - BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); - BoardPlayerMtxSet(lbl_1_bss_6B4, &lbl_1_bss_678); - BoardModelRotSet(lbl_1_bss_6C4[0], 0.0f, 0.0f, 0.0f); - BoardPlayerRotSet(lbl_1_bss_6B4, 0.0f, 0.0f, 0.0f); - BoardPlayerExistCheck(lbl_1_bss_6B4, 0); + BoardModelPosGet(mapObjMdlId[MAPOBJ_COASTER], &coasterCameraTarget); + coasterCameraPos.x = coasterCameraTarget.x + 1000.0 * (sind(cameraRot.y) * cosd(cameraRot.x)); + coasterCameraPos.y = coasterCameraTarget.y + 1000.0 * -sind(cameraRot.x); + coasterCameraPos.z = coasterCameraTarget.z + 1000.0 * (cosd(cameraRot.y) * cosd(cameraRot.x)); + MTXRotRad(coasterMtx, 'y', MTXDegToRad(coasterBaseRotY)); + BoardModelMtxSet(mapObjMdlId[MAPOBJ_COASTER], &coasterMtx); + BoardPlayerMtxSet(eventPlayer, &coasterMtx); + BoardModelRotSet(mapObjMdlId[MAPOBJ_COASTER], 0.0f, 0.0f, 0.0f); + BoardPlayerRotSet(eventPlayer, 0.0f, 0.0f, 0.0f); + BoardPlayerExistCheck(eventPlayer, 0); BoardMusStart(1, 0x10, 0x7F, 0); - fn_1_50D4(); - BoardStatusShowSetForce(lbl_1_bss_6B4); - BoardStatusShowSet(lbl_1_bss_6B4, 1); - while (!BoardStatusStopCheck(lbl_1_bss_6B4)) { + CoasterCoinCreate(); + BoardStatusShowSetForce(eventPlayer); + BoardStatusShowSet(eventPlayer, 1); + while (!BoardStatusStopCheck(eventPlayer)) { HuPrcVSleep(); } - temp_r19 = HuAudFXPlay(0x40C); - fn_1_4774(); + seNo = HuAudFXPlay(0x40C); + CoasterWinCreate(); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); - lbl_1_bss_6B0 = 1; + coasterType = 1; HuAudFXPlay(0x413); while (TRUE) { - fn_1_1990(); - fn_1_3350(); - fn_1_276C(); - BoardModelPosSetV(lbl_1_bss_6C4[0], &lbl_1_bss_654); - BoardPlayerPosSetV(lbl_1_bss_6B4, &lbl_1_bss_654); - if (BoardPlayerSizeGet(lbl_1_bss_6B4) != 1) { - MTXTrans(sp48, 0.0f, 30.0f, 0.0f); + CoasterPathUpdate(); + CoasterPathMotUpdate(); + CoasterRotUpdate(); + BoardModelPosSetV(mapObjMdlId[MAPOBJ_COASTER], &coasterPos); + BoardPlayerPosSetV(eventPlayer, &coasterPos); + if (BoardPlayerSizeGet(eventPlayer) != 1) { + MTXTrans(playerMtx, 0.0f, 30.0f, 0.0f); } else { - MTXTrans(sp48, 0.0f, 400.0f, 250.0f); + MTXTrans(playerMtx, 0.0f, 400.0f, 250.0f); } - BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); - MTXConcat(lbl_1_bss_678, sp48, sp48); - BoardPlayerMtxSet(lbl_1_bss_6B4, &sp48); - if (lbl_1_bss_0->unk00_field0 == 0) { - var_f29 = -lbl_1_bss_670; + BoardModelMtxSet(mapObjMdlId[MAPOBJ_COASTER], &coasterMtx); + MTXConcat(coasterMtx, playerMtx, playerMtx); + BoardPlayerMtxSet(eventPlayer, &playerMtx); + if (boardWork->hostSide == 0) { + coasterMotSpeed = -coasterSpeed; } else { - var_f29 = lbl_1_bss_670; + coasterMotSpeed = coasterSpeed; } - BoardModelMotionSpeedSet(lbl_1_bss_6AE, var_f29); - if (lbl_1_bss_0->unk00_field0 == 0) { - if (BoardModelMotionTimeGet(lbl_1_bss_6AE) <= 0.0f) { + BoardModelMotionSpeedSet(coasterPathMdlId, coasterMotSpeed); + if (boardWork->hostSide == 0) { + if (BoardModelMotionTimeGet(coasterPathMdlId) <= 0.0f) { break; } } else { - if (BoardModelMotionTimeGet(lbl_1_bss_6AE) >= lbl_1_bss_644) { + if (BoardModelMotionTimeGet(coasterPathMdlId) >= coasterMaxTime) { break; } } HuPrcVSleep(); } - MTXIdentity(lbl_1_bss_678); - fn_1_4864(); - HuAudFXStop(temp_r19); - fn_1_1EE4(); - fn_1_98EC(); - if (BoardPlayerSizeGet(lbl_1_bss_6B4) == 1) { - MTXTrans(sp48, 0.0f, 400.0f, 250.0f); + MTXIdentity(coasterMtx); + CoasterWinKill(); + HuAudFXStop(seNo); + CoasterCameraObjKill(); + CoasterEffKill(); + if (BoardPlayerSizeGet(eventPlayer) == 1) { + MTXTrans(playerMtx, 0.0f, 400.0f, 250.0f); } else { - MTXTrans(sp48, 0.0f, 30.0f, 0.0f); + MTXTrans(playerMtx, 0.0f, 30.0f, 0.0f); } - BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); - BoardPlayerMtxSet(lbl_1_bss_6B4, &sp48); - lbl_1_bss_660.x = lbl_1_bss_660.z = 0.0f; + BoardModelMtxSet(mapObjMdlId[MAPOBJ_COASTER], &coasterMtx); + BoardPlayerMtxSet(eventPlayer, &playerMtx); + coasterRot.x = coasterRot.z = 0.0f; BoardAudSeqFadeOut(1, 1000); WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); HuAudFXPlay(0x401); - temp_f28 = (-lbl_1_bss_63C - lbl_1_bss_660.y) / 30.0f; + coasterRotSpeed = (-coasterBaseRotY - coasterRot.y) / 30.0f; for (i = 0; i < 30; i++) { - BoardModelRotSetV(lbl_1_bss_6C4[0], &lbl_1_bss_660); - BoardPlayerRotSetV(lbl_1_bss_6B4, &lbl_1_bss_660); - lbl_1_bss_660.y += temp_f28 * var_f30; + BoardModelRotSetV(mapObjMdlId[MAPOBJ_COASTER], &coasterRot); + BoardPlayerRotSetV(eventPlayer, &coasterRot); + coasterRot.y += coasterRotSpeed * coasterRotDir; HuPrcVSleep(); } - lbl_1_bss_660.y = -lbl_1_bss_63C; - BoardModelRotSetV(lbl_1_bss_6C4[0], &lbl_1_bss_660); - BoardPlayerRotSetV(lbl_1_bss_6B4, &lbl_1_bss_660); - BoardStatusShowSet(lbl_1_bss_6B4, 0); + coasterRot.y = -coasterBaseRotY; + BoardModelRotSetV(mapObjMdlId[MAPOBJ_COASTER], &coasterRot); + BoardPlayerRotSetV(eventPlayer, &coasterRot); + BoardStatusShowSet(eventPlayer, 0); BoardSpaceAttrReset(0, 1); - fn_1_53B8(); + CoasterCoinKill(); BoardCameraMoveSet(0); - BoardCameraTargetPlayerSet(lbl_1_bss_6B4); + BoardCameraTargetPlayerSet(eventPlayer); BoardCameraViewSet(1); BoardCameraMotionWait(); do { HuPrcVSleep(); } while (WipeStatGet() != 0); - BoardPlayerIdleSet(lbl_1_bss_6B4); - BoardPlayerMtxSet(lbl_1_bss_6B4, &lbl_1_bss_678); + BoardPlayerIdleSet(eventPlayer); + BoardPlayerMtxSet(eventPlayer, &coasterMtx); BoardCameraPosCalcFuncSet(NULL); - BoardPlayerExistCheck(lbl_1_bss_6B4, 1); - BoardSpacePosGet(0, var_r25, &sp3C); - GWPlayer[lbl_1_bss_6B4].space_curr = var_r25; - BoardPlayerPosSetV(lbl_1_bss_6B4, &sp3C); - fn_1_35B4(lbl_1_bss_6B4); - lbl_1_bss_6B2 = 1; + BoardPlayerExistCheck(eventPlayer, 1); + BoardSpacePosGet(0, endSpace, &spacePos); + GWPlayer[eventPlayer].space_curr = endSpace; + BoardPlayerPosSetV(eventPlayer, &spacePos); + CoasterMotKill(eventPlayer); + coasterDoneF = 1; } -static void fn_1_45F4(void) +static void CoasterExit(void) { - if (lbl_1_bss_6B2 != 0) { - if (lbl_1_bss_0->unk00_field0 == 0) { - lbl_1_bss_0->unk00_field0 = 1; + if (coasterDoneF != 0) { + if (boardWork->hostSide == 0) { + boardWork->hostSide = 1; } else { - lbl_1_bss_0->unk00_field0 = 0; + boardWork->hostSide = 0; } - lbl_1_bss_6B2 = 0; - fn_1_1670(); + coasterDoneF = 0; + UpdateHostDisp(); } - fn_1_87AC(); - while (lbl_1_bss_C) { + CoasterPlayerManKill(); + while (coasterPlayerManObj) { HuPrcVSleep(); } BoardAudSeqPause(0, 0, 1000); @@ -1259,50 +1255,50 @@ static void fn_1_45F4(void) BoardStatusShowSetAll(1); } -static void fn_1_4774(void) +static void CoasterWinCreate(void) { - float sp8[2]; - float var_f31; - float var_f30; + float winSize[2]; + float winX; + float winY; - HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(13, 5)); - var_f31 = -10000.0f; - var_f30 = 352.0f; - lbl_1_data_580 = HuWinCreate(var_f31, var_f30, sp8[0], sp8[1], 0); - HuWinBGTPLvlSet(lbl_1_data_580, 0.0f); - HuWinMesSpeedSet(lbl_1_data_580, 0); - HuWinMesSet(lbl_1_data_580, MAKE_MESSID(13, 5)); + HuWinMesMaxSizeGet(1, winSize, MAKE_MESSID(13, 5)); + winX = -10000.0f; + winY = 352.0f; + coasterWinId = HuWinCreate(winX, winY, winSize[0], winSize[1], 0); + HuWinBGTPLvlSet(coasterWinId, 0.0f); + HuWinMesSpeedSet(coasterWinId, 0); + HuWinMesSet(coasterWinId, MAKE_MESSID(13, 5)); } -static void fn_1_4864(void) +static void CoasterWinKill(void) { - if (lbl_1_data_580 != -1) { - HuWinKill(lbl_1_data_580); - lbl_1_data_580 = -1; + if (coasterWinId != -1) { + HuWinKill(coasterWinId); + coasterWinId = -1; } } -static s32 fn_1_48B4(void) +static s32 CoasterHostExec(void) { - Vec sp20; - Vec sp14; - Vec sp8; - float var_f31; - u32 var_r31; + Vec startPos; + Vec endPos; + Vec dir; + float angle; + u32 mess; s32 i; - s32 temp_r28; - s32 temp_r30; + s32 spaceEnd; + s32 spaceStart; - var_r31 = 0; - lbl_1_bss_6B0 = 0; - lbl_1_bss_6B1 = 0; - lbl_1_bss_6B2 = 0; - lbl_1_bss_6B4 = GWSystem.player_curr; - temp_r30 = GWPlayer[lbl_1_bss_6B4].space_curr; - BoardPlayerMotionShiftSet(lbl_1_bss_6B4, 1, 0.0f, 14.0f, HU3D_MOTATTR_LOOP); + mess = 0; + coasterType = 0; + coasterLandF = 0; + coasterDoneF = 0; + eventPlayer = GWSystem.player_curr; + spaceStart = GWPlayer[eventPlayer].space_curr; + BoardPlayerMotionShiftSet(eventPlayer, 1, 0.0f, 14.0f, HU3D_MOTATTR_LOOP); BoardWinCreateChoice(0, MAKE_MESSID(13, 0), -1, 0); - if (GWPlayer[lbl_1_bss_6B4].com) { - fn_1_9D00(lbl_1_bss_6B4); + if (GWPlayer[eventPlayer].com) { + CoasterHostComKeySet(eventPlayer); } BoardWinWait(); if (BoardWinChoiceGet() != 0) { @@ -1310,23 +1306,23 @@ static s32 fn_1_48B4(void) } BoardWinCreate(2, 0xD0006, 0); BoardWinWait(); - temp_r28 = BoardSpaceLinkFlagSearch(0, temp_r30, 0x02000000); - BoardSpacePosGet(0, temp_r30, &sp20); - BoardSpacePosGet(0, temp_r28, &sp14); - VECSubtract(&sp14, &sp20, &sp8); - VECNormalize(&sp8, &sp8); - var_f31 = atan2d(-sp8.x, -sp8.z); - BoardPlayerRotSet(lbl_1_bss_6B4, 0.0f, var_f31, 0.0f); - BoardPlayerMoveBetween(lbl_1_bss_6B4, temp_r30, temp_r28); - while (GWPlayer[lbl_1_bss_6B4].moving) { + spaceEnd = BoardSpaceLinkFlagSearch(0, spaceStart, 0x02000000); + BoardSpacePosGet(0, spaceStart, &startPos); + BoardSpacePosGet(0, spaceEnd, &endPos); + VECSubtract(&endPos, &startPos, &dir); + VECNormalize(&dir, &dir); + angle = atan2d(-dir.x, -dir.z); + BoardPlayerRotSet(eventPlayer, 0.0f, angle, 0.0f); + BoardPlayerMoveBetween(eventPlayer, spaceStart, spaceEnd); + while (GWPlayer[eventPlayer].moving) { HuPrcVSleep(); } - BoardPlayerIdleSet(lbl_1_bss_6B4); + BoardPlayerIdleSet(eventPlayer); while (TRUE) { BoardWinCreateChoice(1, MAKE_MESSID(13, 1), 0, 0); BoardWinAttrSet(0x10); - if (GWPlayer[lbl_1_bss_6B4].com) { - if (BoardPlayerCoinsGet(lbl_1_bss_6B4) >= 5) { + if (GWPlayer[eventPlayer].com) { + if (BoardPlayerCoinsGet(eventPlayer) >= 5) { BoardComKeySetUp(); } else { @@ -1335,19 +1331,19 @@ static s32 fn_1_48B4(void) } BoardWinWait(); if (BoardWinChoiceGet() == 1) { - var_r31 = MAKE_MESSID(13, 3); + mess = MAKE_MESSID(13, 3); break; } if (BoardWinChoiceGet() == 2) { - BoardViewMapExec(lbl_1_bss_6B4); + BoardViewMapExec(eventPlayer); continue; } - if (BoardPlayerCoinsGet(lbl_1_bss_6B4) < 5) { - var_r31 = MAKE_MESSID(13, 4); + if (BoardPlayerCoinsGet(eventPlayer) < 5) { + mess = MAKE_MESSID(13, 4); break; } for (i = 0; i < 5; i++) { - BoardPlayerCoinsAdd(lbl_1_bss_6B4, -1); + BoardPlayerCoinsAdd(eventPlayer, -1); HuAudFXPlay(0xE); HuPrcSleep(6); } @@ -1363,1122 +1359,1118 @@ static s32 fn_1_48B4(void) while (WipeStatGet() != 0) { HuPrcVSleep(); } - fn_1_852C(); - return 1; + CoasterPlayerManCreate(); + return TRUE; } - if (var_r31 != 0) { - BoardWinCreate(1, var_r31, 0); + if (mess != 0) { + BoardWinCreate(1, mess, 0); BoardWinWait(); BoardWinKill(); } - BoardCameraTargetPlayerSet(lbl_1_bss_6B4); - VECSubtract(&sp20, &sp14, &sp8); - VECNormalize(&sp8, &sp8); - var_f31 = atan2d(-sp8.x, -sp8.z); - BoardPlayerRotSet(lbl_1_bss_6B4, 0.0f, var_f31, 0.0f); - BoardPlayerMoveBetween(lbl_1_bss_6B4, temp_r28, temp_r30); - while (GWPlayer[lbl_1_bss_6B4].moving) { + BoardCameraTargetPlayerSet(eventPlayer); + VECSubtract(&startPos, &endPos, &dir); + VECNormalize(&dir, &dir); + angle = atan2d(-dir.x, -dir.z); + BoardPlayerRotSet(eventPlayer, 0.0f, angle, 0.0f); + BoardPlayerMoveBetween(eventPlayer, spaceEnd, spaceStart); + while (GWPlayer[eventPlayer].moving) { HuPrcVSleep(); } - return 0; + return FALSE; } -static void fn_1_4E14(void) +static void CoasterMain(void) { - if (fn_1_48B4() != 0) { - fn_1_3624(); - fn_1_45F4(); + if (CoasterHostExec() != 0) { + CoasterExec(); + CoasterExit(); } HuPrcEnd(); } -static void fn_1_4FA8(void) +static void CoasterDestroy(void) { BoardWinKill(); - lbl_1_bss_8 = NULL; + coasterProc = NULL; } -static void fn_1_4FD8(void) +static void CoasterEvent(void) { - lbl_1_bss_6B4 = GWSystem.player_curr; + eventPlayer = GWSystem.player_curr; BoardRollDispSet(0); - if (BoardPlayerSizeGet(lbl_1_bss_6B4) == 2 || GWPlayer[lbl_1_bss_6B4].bowser_suit) { + if (BoardPlayerSizeGet(eventPlayer) == 2 || GWPlayer[eventPlayer].bowser_suit) { return; } - lbl_1_bss_8 = HuPrcChildCreate(fn_1_4E14, 0x2003, 0x2000, 0, boardMainProc); - HuPrcDestructorSet2(lbl_1_bss_8, fn_1_4FA8); - while (lbl_1_bss_8) { + coasterProc = HuPrcChildCreate(CoasterMain, 0x2003, 0x2000, 0, boardMainProc); + HuPrcDestructorSet2(coasterProc, CoasterDestroy); + while (coasterProc) { HuPrcVSleep(); } BoardRollDispSet(1); } -static void fn_1_50D4(void) +static void CoasterCoinCreate(void) { - Vec sp20; - Vec sp14; - Vec sp8; - float temp_f30; - float var_f31; - BoardSpace *temp_r31; - s32 var_r27; - s32 var_r26; - s32 var_r29; - s32 var_r28; + Vec pos; + Vec posSpace; + Vec dir; + float radius; + float angle; + BoardSpace *space; + s32 side; + s32 newSide; + s32 coinNum; + s32 spaceId; s32 i; for (i = 0; i < 24; i++) { - lbl_1_bss_5D0[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 9), NULL, 0); - BoardModelVisibilitySet(lbl_1_bss_5D0[i], 0); - BoardModelMotionStart(lbl_1_bss_5D0[i], 0, 0x40000001); - lbl_1_bss_600[i] = 0; + coasterCoinMdlId[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 9), NULL, 0); + BoardModelVisibilitySet(coasterCoinMdlId[i], 0); + BoardModelMotionStart(coasterCoinMdlId[i], 0, HU3D_MOTATTR_LOOP); + coasterCoinF[i] = 0; } - temp_f30 = 180.0f; - var_r28 = BoardSpaceFlagPosGet(1, 0x2000, &sp20); - var_r27 = BoardRand() & 1; - var_r29 = i = 0; + radius = 180.0f; + spaceId = BoardSpaceFlagPosGet(1, 0x2000, &pos); + side = BoardRand() & 1; + coinNum = i = 0; while (i < 24) { - temp_r31 = BoardSpaceGet(1, var_r28); - var_r28 = temp_r31->link[0]; - if (var_r28 == -1 || temp_r31->link_cnt == 0) { + space = BoardSpaceGet(1, spaceId); + spaceId = space->link[0]; + if (spaceId == -1 || space->link_cnt == 0) { break; } - if (!(temp_r31->flag & 0x80)) { - sp14 = temp_r31->pos; + if (!(space->flag & 0x80)) { + posSpace = space->pos; } else { - if (var_r29 >= 3) { + if (coinNum >= 3) { if (BoardRandFloat() < 0.5f) { - var_r26 = 1; + newSide = 1; } else { - var_r26 = 0; + newSide = 0; } - var_r27 = var_r26; - var_r29 = 0; + side = newSide; + coinNum = 0; } - VECSubtract(&sp14, &temp_r31->pos, &sp8); - VECNormalize(&sp8, &sp8); - var_f31 = atan2d(sp8.z, sp8.x); - if (var_r27 != 0) { - var_f31 += 180.0f; + VECSubtract(&posSpace, &space->pos, &dir); + VECNormalize(&dir, &dir); + angle = atan2d(dir.z, dir.x); + if (side != 0) { + angle += 180.0f; } - sp20.x = temp_r31->pos.x + temp_f30 * sind(var_f31); - sp20.y = temp_r31->pos.y + 80.0f; - sp20.z = temp_r31->pos.z + temp_f30 * cosd(var_f31); - BoardModelPosSetV(lbl_1_bss_5D0[i], &sp20); - BoardModelVisibilitySet(lbl_1_bss_5D0[i], 1); - sp14 = temp_r31->pos; + pos.x = space->pos.x + radius * sind(angle); + pos.y = space->pos.y + 80.0f; + pos.z = space->pos.z + radius * cosd(angle); + BoardModelPosSetV(coasterCoinMdlId[i], &pos); + BoardModelVisibilitySet(coasterCoinMdlId[i], 1); + posSpace = space->pos; i++; - var_r29++; + coinNum++; } } } -static void fn_1_53B8(void) +static void CoasterCoinKill(void) { s32 i; for (i = 0; i < 24; i++) { - if (lbl_1_bss_5D0[i] != -1) { - BoardModelKill(lbl_1_bss_5D0[i]); - lbl_1_bss_5D0[i] = -1; + if (coasterCoinMdlId[i] != -1) { + BoardModelKill(coasterCoinMdlId[i]); + coasterCoinMdlId[i] = -1; } } } -static s32 lbl_1_data_5D4 = -1; -static s32 lbl_1_data_5D8 = -1; +static s32 cupMoveSeNo = -1; +static s32 decaStompSeNo = -1; -static s16 lbl_1_data_5DC[2][4] = { { 24, 25, 26, 27 }, { 29, 30, 31, 32 } }; +static s16 cupMapObj[2][4] = { + { MAPOBJ_CUPR1, MAPOBJ_CUPR2, MAPOBJ_CUPR3, MAPOBJ_CUPR_ARROW }, + { MAPOBJ_CUPL1, MAPOBJ_CUPL2, MAPOBJ_CUPL3, MAPOBJ_CUPL_ARROW } +}; -static char *lbl_1_data_604[] = { "chara1", "chara2", "chara3" }; +static char *cupHookTbl[] = { "chara1", "chara2", "chara3" }; -static float lbl_1_data_610[2][2] = { { 90.0f, 0.0f }, { 0.0f, 270.0f } }; +static float cupArrowRot[2][2] = { { 90.0f, 0.0f }, { 0.0f, 270.0f } }; -static void fn_1_543C(void) +static void CupInit(void) { - float var_f31; - s16 temp_r28; - s16 temp_r29; + float rotY; + s16 mdlIdDish; + s16 mdlId; s32 i; s32 j; - char *sp10[] = { "cup1", "cup2", "cup3", "ya1" }; - s32 sp8[] = { 23, 28 }; + char *hookName[] = { "cup1", "cup2", "cup3", "ya1" }; + s32 dishMapObj[] = { MAPOBJ_CUPR_DISH, MAPOBJ_CUPL_DISH }; for (i = 0; i < 2; i++) { - temp_r28 = lbl_1_bss_6C4[sp8[i]]; - BoardModelMotionStart(temp_r28, 0, 0x40000001); - BoardModelExistDupe(temp_r28, 0); + mdlIdDish = mapObjMdlId[dishMapObj[i]]; + BoardModelMotionStart(mdlIdDish, 0, HU3D_MOTATTR_LOOP); + BoardModelExistDupe(mdlIdDish, 0); for (j = 0; j < 4; j++) { - temp_r29 = lbl_1_bss_6C4[lbl_1_data_5DC[i][j]]; - BoardModelExistDupe(temp_r29, 1); - BoardModelHookSet(temp_r28, sp10[j], temp_r29); - BoardModelMotionStart(temp_r29, 0, 0x40000001); - BoardModelRotSet(temp_r29, 0.0f, 360.0f * BoardRandFloat(), 0.0f); + mdlId = mapObjMdlId[cupMapObj[i][j]]; + BoardModelExistDupe(mdlId, 1); + BoardModelHookSet(mdlIdDish, hookName[j], mdlId); + BoardModelMotionStart(mdlId, 0, HU3D_MOTATTR_LOOP); + BoardModelRotSet(mdlId, 0.0f, 360.0f * BoardRandFloat(), 0.0f); } } - if (lbl_1_bss_0->unk01[0] != 0) { - var_f31 = 0.0f; + if (boardWork->cupDir[0] != 0) { + rotY = 0.0f; } else { - var_f31 = 90.0f; + rotY = 90.0f; } - BoardModelRotSet(lbl_1_bss_6C4[27], 0.0f, var_f31, 0.0f); - if (lbl_1_bss_0->unk01[1] != 0) { - var_f31 = -90.0f; + BoardModelRotSet(mapObjMdlId[MAPOBJ_CUPR_ARROW], 0.0f, rotY, 0.0f); + if (boardWork->cupDir[1] != 0) { + rotY = -90.0f; } else { - var_f31 = 0.0f; + rotY = 0.0f; } - BoardModelRotSet(lbl_1_bss_6C4[32], 0.0f, var_f31, 0.0f); + BoardModelRotSet(mapObjMdlId[MAPOBJ_CUPL_ARROW], 0.0f, rotY, 0.0f); } -static void fn_1_5694(s32 arg0) +static void CupMotOnSet(s32 stopF) { - s16 temp_r29; - s16 temp_r30; + s16 dishMdlId; + s16 cupMdlId; s16 i; - s32 spC[] = { 23, 28 }; + s32 dishMapObj[] = { MAPOBJ_CUPR_DISH, MAPOBJ_CUPL_DISH }; - temp_r29 = lbl_1_bss_6C4[spC[lbl_1_bss_29]]; - if (arg0 != 0) { - BoardModelMotionSpeedSet(temp_r29, 1.0f); - BoardModelAttrReset(temp_r29, 0x40000002); + dishMdlId = mapObjMdlId[dishMapObj[cupSide]]; + if (stopF != 0) { + BoardModelMotionSpeedSet(dishMdlId, 1.0f); + BoardModelAttrReset(dishMdlId, HU3D_MOTATTR_PAUSE); for (i = 0; i < 3; i++) { - temp_r30 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][i]]; - BoardModelMotionSpeedSet(temp_r30, 1.0f); - BoardModelAttrReset(temp_r30, 0x40000002); + cupMdlId = mapObjMdlId[cupMapObj[cupSide][i]]; + BoardModelMotionSpeedSet(cupMdlId, 1.0f); + BoardModelAttrReset(cupMdlId, HU3D_MOTATTR_PAUSE); } } else { - BoardModelMotionSpeedSet(temp_r29, 0.0f); - BoardModelAttrSet(temp_r29, 0x40000002); + BoardModelMotionSpeedSet(dishMdlId, 0.0f); + BoardModelAttrSet(dishMdlId, HU3D_MOTATTR_PAUSE); for (i = 0; i < 3; i++) { - temp_r30 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][i]]; - BoardModelMotionSpeedSet(temp_r30, 0.0f); - BoardModelAttrSet(temp_r30, 0x40000002); + cupMdlId = mapObjMdlId[cupMapObj[cupSide][i]]; + BoardModelMotionSpeedSet(cupMdlId, 0.0f); + BoardModelAttrSet(cupMdlId, HU3D_MOTATTR_PAUSE); } } } -static void fn_1_586C(s32 arg0, s32 arg1) +static void CupEvent(s32 side, s32 spaceStart) { - lbl_1_bss_29 = arg0; - lbl_1_bss_26 = arg1; + cupSide = side; + cupSpaceStart = spaceStart; BoardRollDispSet(0); - lbl_1_bss_14 = HuPrcChildCreate(fn_1_592C, 0x2003, 0x2000, 0, boardMainProc); - HuPrcDestructorSet2(lbl_1_bss_14, fn_1_5B2C); - while (lbl_1_bss_14) { + cupProc = HuPrcChildCreate(CupMain, 0x2003, 0x2000, 0, boardMainProc); + HuPrcDestructorSet2(cupProc, CupDestroy); + while (cupProc) { HuPrcVSleep(); } BoardRollDispSet(1); } -static void fn_1_592C(void) +static void CupMain(void) { - s16 temp_r30; - s16 var_r28; + s16 dishMdlId; - lbl_1_data_5D4 = -1; - lbl_1_data_5D8 = -1; + cupMoveSeNo = -1; + decaStompSeNo = -1; BoardPlayerIdleSet(GWSystem.player_curr); - if (lbl_1_bss_29 == 0) { - var_r28 = lbl_1_bss_6C4[23]; + if (cupSide == 0) { + dishMdlId = mapObjMdlId[MAPOBJ_CUPR_DISH]; } else { - var_r28 = lbl_1_bss_6C4[28]; + dishMdlId = mapObjMdlId[MAPOBJ_CUPL_DISH]; } - BoardCameraTargetModelSet(var_r28); + BoardCameraTargetModelSet(dishMdlId); BoardCameraOffsetSet(0.0f, 0.0f, 0.0f); - fn_1_5D08(); - while (!fn_1_5CD0()) { + CupObjCreate(); + while (!CupObjCheck()) { HuPrcVSleep(); } - fn_1_5B40(); - fn_1_5694(1); + CupExec(); + CupMotOnSet(1); BoardCameraTargetPlayerSet(GWSystem.player_curr); BoardCameraViewSet(1); BoardCameraMotionWait(); HuPrcEnd(); } -static void fn_1_5B2C(void) +static void CupDestroy(void) { - lbl_1_bss_14 = NULL; + cupProc = NULL; } -static void fn_1_5B40(void) +static void CupExec(void) { - s16 spC[] = { 27, 32 }; - s16 temp_r30; - s32 temp_r31; - float sp8; - float temp_f31; + s16 cupArrowMapObj[] = { MAPOBJ_CUPR_ARROW, MAPOBJ_CUPL_ARROW }; + s16 cupArrowMdlId; + s32 cupDir; + float rotY; + float rotYNew; - temp_r31 = lbl_1_bss_0->unk01[lbl_1_bss_29]; - lbl_1_bss_0->unk01[lbl_1_bss_29] ^= 1; - temp_r30 = lbl_1_bss_6C4[spC[lbl_1_bss_29]]; - sp8 = lbl_1_data_610[lbl_1_bss_29][temp_r31]; - temp_f31 = lbl_1_data_610[lbl_1_bss_29][temp_r31 ^ 1]; + cupDir = boardWork->cupDir[cupSide]; + boardWork->cupDir[cupSide] ^= 1; + cupArrowMdlId = mapObjMdlId[cupArrowMapObj[cupSide]]; + rotY = cupArrowRot[cupSide][cupDir]; + rotYNew = cupArrowRot[cupSide][cupDir ^ 1]; HuAudFXPlay(0x403); while (TRUE) { HuPrcVSleep(); - if (BoardDAngleCalcRange(&sp8, temp_f31, 3.0f) != 0) { + if (BoardDAngleCalcRange(&rotY, rotYNew, 3.0f) != 0) { break; } - BoardModelRotSet(temp_r30, 0.0f, sp8, 0.0f); + BoardModelRotSet(cupArrowMdlId, 0.0f, rotY, 0.0f); } } -static BOOL fn_1_5CD0(void) +static BOOL CupObjCheck(void) { - return lbl_1_bss_18 ? FALSE : TRUE; + return cupObj ? FALSE : TRUE; } -static void fn_1_5D08(void) +static void CupObjCreate(void) { - Bss18Work *temp_r31; - float var_f30; - float var_f31; - s16 var_r28; - s16 var_r25; + CupObjWork *work; + float time; + float speed; + s16 dishMdlId; + s16 cupMdlId; s32 i; - if (lbl_1_bss_29 == 0) { - var_r28 = lbl_1_bss_6C4[23]; + if (cupSide == 0) { + dishMdlId = mapObjMdlId[MAPOBJ_CUPR_DISH]; } else { - var_r28 = lbl_1_bss_6C4[28]; + dishMdlId = mapObjMdlId[MAPOBJ_CUPL_DISH]; } while (TRUE) { - var_f30 = BoardModelMotionTimeGet(var_r28); - if (var_f30 >= 209.0f && var_f30 <= 211.0f) { + time = BoardModelMotionTimeGet(dishMdlId); + if (time >= 209.0f && time <= 211.0f) { break; } - if (var_f30 >= 129.0f && var_f30 <= 131.0f) { + if (time >= 129.0f && time <= 131.0f) { break; } - if (var_f30 >= 49.0f && var_f30 <= 51.0f) { + if (time >= 49.0f && time <= 51.0f) { break; } HuPrcVSleep(); } - var_f31 = 1.0f; - while (var_f31 > 0.01f) { - var_f31 *= 0.9f; - if (var_f31 <= 0.01f) { - var_f31 = 0.0f; + speed = 1.0f; + while (speed > 0.01f) { + speed *= 0.9f; + if (speed <= 0.01f) { + speed = 0.0f; } - BoardModelMotionSpeedSet(var_r28, var_f31); + BoardModelMotionSpeedSet(dishMdlId, speed); for (i = 0; i < 3; i++) { - var_r25 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][i]]; - BoardModelMotionSpeedSet(var_r25, var_f31); + cupMdlId = mapObjMdlId[cupMapObj[cupSide][i]]; + BoardModelMotionSpeedSet(cupMdlId, speed); } HuPrcVSleep(); } - fn_1_5694(0); - lbl_1_bss_18 = omAddObjEx(boardObjMan, 0x103, 0, 0, -1, fn_1_6098); - temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_18, Bss18Work); - temp_r31->unk00_field0 = 0; - temp_r31->unk01 = 0; - temp_r31->unk02 = 0; - temp_r31->unk00_field2 = 0; - temp_r31->unk04 = var_r28; + CupMotOnSet(0); + cupObj = omAddObjEx(boardObjMan, 0x103, 0, 0, -1, CupObjMain); + work = OM_GET_WORK_PTR(cupObj, CupObjWork); + work->killF = 0; + work->time = 0; + work->delay = 0; + work->stopF = 0; + work->dishMdlId = dishMdlId; if (BoardPlayerSizeGet(GWSystem.player_curr) == 2) { - temp_r31->unk00_field3 = 1; + work->decaF = TRUE; } else { - temp_r31->unk00_field3 = 0; + work->decaF = FALSE; } } -static void fn_1_6098(omObjData *arg0) +static void CupObjMain(omObjData *obj) { - Bss18Work *temp_r31 = OM_GET_WORK_PTR(arg0, Bss18Work); - s32 temp_r0; + CupObjWork *work = OM_GET_WORK_PTR(obj, CupObjWork); - if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { - lbl_1_bss_18 = NULL; - omDelObjEx(HuPrcCurrentGet(), arg0); + if (work->killF != 0 || BoardIsKill()) { + cupObj = NULL; + omDelObjEx(HuPrcCurrentGet(), obj); return; } - if (temp_r31->unk02 != 0) { - temp_r31->unk02--; + if (work->delay != 0) { + work->delay--; return; } - switch (temp_r31->unk00_field1) { + switch (work->mode) { case 0: - fn_1_6194(temp_r31, arg0); + CupObjInit(work, obj); break; case 2: - fn_1_63F0(temp_r31, arg0); + CupObjJumpWait(work, obj); break; case 3: - fn_1_6BC0(temp_r31, arg0); + CupObjStop(work, obj); break; case 1: - fn_1_6FB4(temp_r31, arg0); + CupObjRotate(work, obj); break; } } -static void fn_1_6194(Bss18Work *arg0, omObjData *arg1) +static void CupObjInit(CupObjWork *work, omObjData *obj) { - Mtx sp38; - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; + Mtx objMtx; + Vec objPosPrev; + Vec playerPos; + Vec objRot; + Vec objPos; float temp_f31; float var_f30; s32 var_r28; s32 i; - BoardPlayerPosGet(GWSystem.player_curr, &sp20); + BoardPlayerPosGet(GWSystem.player_curr, &playerPos); var_f30 = 1000000.0f; for (i = 0; i < 3; i++) { - Hu3DModelObjPosGet(BoardModelIDGet(arg0->unk04), lbl_1_data_604[i], &sp8); - temp_f31 = VECSquareDistance(&sp8, &sp20); + Hu3DModelObjPosGet(BoardModelIDGet(work->dishMdlId), cupHookTbl[i], &objPos); + temp_f31 = VECSquareDistance(&objPos, &playerPos); if (temp_f31 < var_f30) { var_f30 = temp_f31; - lbl_1_bss_28 = i; - sp2C = sp8; + cupHookNo = i; + objPosPrev = objPos; } } - Hu3DModelObjMtxGet(BoardModelIDGet(arg0->unk04), lbl_1_data_604[lbl_1_bss_28], sp38); - Hu3DMtxRotGet(&sp38, &sp14); - sp14.y = 180.0f; - VECSubtract(&sp2C, &sp20, &sp8); - arg1->trans.x = sp8.x / 25.0f; - arg1->trans.z = sp8.z / 25.0f; + Hu3DModelObjMtxGet(BoardModelIDGet(work->dishMdlId), cupHookTbl[cupHookNo], objMtx); + Hu3DMtxRotGet(&objMtx, &objRot); + objRot.y = 180.0f; + VECSubtract(&objPosPrev, &playerPos, &objPos); + obj->trans.x = objPos.x / 25.0f; + obj->trans.z = objPos.z / 25.0f; var_r28 = BoardPlayerRotYGet(GWSystem.player_curr); - arg1->trans.y = BoardDAngleCalc(sp14.y - var_r28) / 25.0f; - arg1->scale.x = sp2C.x; - arg1->scale.y = sp2C.y; - arg1->scale.z = sp2C.z; + obj->trans.y = BoardDAngleCalc(objRot.y - var_r28) / 25.0f; + obj->scale.x = objPosPrev.x; + obj->scale.y = objPosPrev.y; + obj->scale.z = objPosPrev.z; BoardPlayerMotionShiftSet(GWSystem.player_curr, 4, 15.0f, 5.0f, HU3D_MOTATTR_NONE); - arg0->unk00_field1 = 2; - arg0->unk01 = 0; + work->mode = 2; + work->time = 0; } -static void fn_1_63F0(Bss18Work *arg0, omObjData *arg1) +static void CupObjJumpWait(CupObjWork *work, omObjData *obj) { - Vec sp10; - float temp_f29; - float var_f27; - float var_f28; + Vec pos; + float time; + float rotY; + float scaleY; s16 var_r24; - if (arg0->unk01 >= 55) { + if (work->time >= 55) { BoardPlayerRotSet(GWSystem.player_curr, 0.0f, 0.0f, 0.0f); BoardPlayerIdleSet(GWSystem.player_curr); if (GWPlayer[GWSystem.player_curr].bowser_suit) { - BoardModelHookSet(arg0->unk04, lbl_1_data_604[lbl_1_bss_28], BoardBowserSuitModelGet()); + BoardModelHookSet(work->dishMdlId, cupHookTbl[cupHookNo], BoardBowserSuitModelGet()); } else { - BoardModelHookSet(arg0->unk04, lbl_1_data_604[lbl_1_bss_28], BoardPlayerModelGet(GWSystem.player_curr)); + BoardModelHookSet(work->dishMdlId, cupHookTbl[cupHookNo], BoardPlayerModelGet(GWSystem.player_curr)); } - var_r24 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][lbl_1_bss_28]]; - if (arg0->unk00_field3 != 0) { + var_r24 = mapObjMdlId[cupMapObj[cupSide][cupHookNo]]; + if (work->decaF != 0) { BoardModelScaleSet(var_r24, 1.0f, 0.1f, 1.0f); } - fn_1_5694(1); - lbl_1_data_5D4 = HuAudFXPlay(0x410); - arg0->unk01 = 0; - arg0->unk00_field1 = 1; + CupMotOnSet(1); + cupMoveSeNo = HuAudFXPlay(0x410); + work->time = 0; + work->mode = 1; return; } - if (arg0->unk01 == 25) { - BoardPlayerPosSet(GWSystem.player_curr, arg1->scale.x, arg1->scale.y, arg1->scale.z); + if (work->time == 25) { + BoardPlayerPosSet(GWSystem.player_curr, obj->scale.x, obj->scale.y, obj->scale.z); BoardPlayerMotionShiftSet(GWSystem.player_curr, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); } - if (arg0->unk01 < 25) { - OSu8tof32(&arg0->unk01, &temp_f29); - BoardPlayerPosGet(GWSystem.player_curr, &sp10); - sp10.x += arg1->trans.x; - sp10.z += arg1->trans.z; - sp10.y += 15.0f + -0.08166667f * temp_f29 * temp_f29; - if (sp10.y <= arg1->scale.y) { - sp10.y = arg1->scale.y; + if (work->time < 25) { + OSu8tof32(&work->time, &time); + BoardPlayerPosGet(GWSystem.player_curr, &pos); + pos.x += obj->trans.x; + pos.z += obj->trans.z; + pos.y += 15.0f + -0.08166667f * time * time; + if (pos.y <= obj->scale.y) { + pos.y = obj->scale.y; } - var_f27 = arg1->trans.y + BoardPlayerRotYGet(GWSystem.player_curr); - BoardPlayerRotYSet(GWSystem.player_curr, var_f27); - BoardPlayerPosSetV(GWSystem.player_curr, &sp10); - if (arg0->unk01 > 12 && arg0->unk00_field3 != 0) { - if (lbl_1_data_5D8 == -1) { - lbl_1_data_5D8 = HuAudFXPlay(0x411); + rotY = obj->trans.y + BoardPlayerRotYGet(GWSystem.player_curr); + BoardPlayerRotYSet(GWSystem.player_curr, rotY); + BoardPlayerPosSetV(GWSystem.player_curr, &pos); + if (work->time > 12 && work->decaF != 0) { + if (decaStompSeNo == -1) { + decaStompSeNo = HuAudFXPlay(0x411); } - OSu8tof32(&arg0->unk01, &temp_f29); - temp_f29 -= 12.0f; - temp_f29 = 90.0f * (temp_f29 / 12.5f); - var_f28 = cosd(temp_f29); - if (var_f28 < 0.1f) { - var_f28 = 0.1f; + OSu8tof32(&work->time, &time); + time -= 12.0f; + time = 90.0f * (time / 12.5f); + scaleY = cosd(time); + if (scaleY < 0.1f) { + scaleY = 0.1f; } - var_r24 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][lbl_1_bss_28]]; - BoardModelScaleSet(var_r24, 1.0f, var_f28, 1.0f); + var_r24 = mapObjMdlId[cupMapObj[cupSide][cupHookNo]]; + BoardModelScaleSet(var_r24, 1.0f, scaleY, 1.0f); } } - arg0->unk01++; + work->time++; } -static void fn_1_6A14(Bss18Work *arg0, omObjData *arg1) +static void CupObjHookReset(CupObjWork *work, omObjData *obj) { - Vec sp20; - Vec sp14; - Vec sp8; + Vec endPos; + Vec startPos; + Vec diff; - BoardModelHookObjReset(arg0->unk04, lbl_1_data_604[lbl_1_bss_28]); - Hu3DModelObjPosGet(BoardModelIDGet(arg0->unk04), lbl_1_data_604[lbl_1_bss_28], &sp14); - BoardPlayerPosSetV(GWSystem.player_curr, &sp14); - BoardSpacePosGet(0, lbl_1_bss_24, &sp20); - VECSubtract(&sp20, &sp14, &sp8); - arg1->trans.x = sp8.x / 25.0f; - arg1->trans.z = sp8.z / 25.0f; - arg1->scale.x = sp20.x; - arg1->scale.y = sp20.y; - arg1->scale.z = sp20.z; + BoardModelHookObjReset(work->dishMdlId, cupHookTbl[cupHookNo]); + Hu3DModelObjPosGet(BoardModelIDGet(work->dishMdlId), cupHookTbl[cupHookNo], &startPos); + BoardPlayerPosSetV(GWSystem.player_curr, &startPos); + BoardSpacePosGet(0, cupSpaceEnd, &endPos); + VECSubtract(&endPos, &startPos, &diff); + obj->trans.x = diff.x / 25.0f; + obj->trans.z = diff.z / 25.0f; + obj->scale.x = endPos.x; + obj->scale.y = endPos.y; + obj->scale.z = endPos.z; BoardPlayerMotionShiftSet(GWSystem.player_curr, 4, 15.0f, 5.0f, HU3D_MOTATTR_NONE); - BoardPlayerRotYSet(GWSystem.player_curr, atan2d(sp8.x, sp8.z)); - arg0->unk00_field1 = 3; - arg0->unk01 = 0; + BoardPlayerRotYSet(GWSystem.player_curr, atan2d(diff.x, diff.z)); + work->mode = 3; + work->time = 0; } -static void fn_1_6BC0(Bss18Work *arg0, omObjData *arg1) +static void CupObjStop(CupObjWork *work, omObjData *obj) { - Vec sp14; - Vec sp8; - float var_f28; - float temp_f29; - s16 var_r27; + Vec pos; + Vec spacePos; + float angle; + float time; + s16 mdlId; - if (arg0->unk01 >= 55) { - BoardSpacePosGet(0, lbl_1_bss_24, &sp8); - GWPlayer[GWSystem.player_curr].space_curr = lbl_1_bss_24; - BoardPlayerPosSetV(GWSystem.player_curr, &sp8); + if (work->time >= 55) { + BoardSpacePosGet(0, cupSpaceEnd, &spacePos); + GWPlayer[GWSystem.player_curr].space_curr = cupSpaceEnd; + BoardPlayerPosSetV(GWSystem.player_curr, &spacePos); BoardPlayerIdleSet(GWSystem.player_curr); - var_r27 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][lbl_1_bss_28]]; - if (arg0->unk00_field3 != 0) { - BoardModelScaleSet(var_r27, 1.0f, 1.0f, 1.0f); + mdlId = mapObjMdlId[cupMapObj[cupSide][cupHookNo]]; + if (work->decaF != 0) { + BoardModelScaleSet(mdlId, 1.0f, 1.0f, 1.0f); } - arg0->unk00_field0 = 1; + work->killF = 1; } - if (arg0->unk01 == 25) { - BoardPlayerPosSet(GWSystem.player_curr, arg1->scale.x, arg1->scale.y, arg1->scale.z); + if (work->time == 25) { + BoardPlayerPosSet(GWSystem.player_curr, obj->scale.x, obj->scale.y, obj->scale.z); BoardPlayerMotionShiftSet(GWSystem.player_curr, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); } - if (arg0->unk01 < 25) { - OSu8tof32(&arg0->unk01, &temp_f29); - BoardPlayerPosGet(GWSystem.player_curr, &sp14); - sp14.x += arg1->trans.x; - sp14.z += arg1->trans.z; - sp14.y += 15.0f + -0.08166667f * temp_f29 * temp_f29; - if (sp14.y <= arg1->scale.y) { - sp14.y = arg1->scale.y; + if (work->time < 25) { + OSu8tof32(&work->time, &time); + BoardPlayerPosGet(GWSystem.player_curr, &pos); + pos.x += obj->trans.x; + pos.z += obj->trans.z; + pos.y += 15.0f + -0.08166667f * time * time; + if (pos.y <= obj->scale.y) { + pos.y = obj->scale.y; } - BoardPlayerPosSetV(GWSystem.player_curr, &sp14); - if (arg0->unk01 > 12 && arg0->unk00_field3 != 0) { - OSu8tof32(&arg0->unk01, &temp_f29); - temp_f29 -= 12.0f; - temp_f29 = 90.0f * (temp_f29 / 12.5f); - var_f28 = sind(temp_f29); - if (var_f28 < 0.1f) { - var_f28 = 0.1f; + BoardPlayerPosSetV(GWSystem.player_curr, &pos); + if (work->time > 12 && work->decaF != 0) { + OSu8tof32(&work->time, &time); + time -= 12.0f; + time = 90.0f * (time / 12.5f); + angle = sind(time); + if (angle < 0.1f) { + angle = 0.1f; } - var_r27 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][lbl_1_bss_28]]; - BoardModelScaleSet(var_r27, 1.0f, var_f28, 1.0f); + mdlId = mapObjMdlId[cupMapObj[cupSide][cupHookNo]]; + BoardModelScaleSet(mdlId, 1.0f, angle, 1.0f); } } - arg0->unk01++; + work->time++; } -static void fn_1_6FB4(Bss18Work *arg0, omObjData *arg1) +static void CupObjRotate(CupObjWork *work, omObjData *obj) { - Vec sp40; - Vec sp34; - Vec sp28; - Vec sp1C; - Vec sp10; - float var_f31; - BoardSpace *temp_r29; - s16 var_r22; - u32 temp_r3; - s32 var_r24; + Vec spacePos; + Vec objPos; + + float dist; + BoardSpace *space; + s16 mdlId; + u32 flag; + s32 cupDir; s32 i; - if (arg0->unk00_field2 != 0) { - arg0->unk08 *= 0.9f; - if (arg0->unk08 <= 0.01f) { - arg0->unk08 = 0.0f; - fn_1_5694(0); - if (lbl_1_data_5D4 != -1) { - HuAudFXStop(lbl_1_data_5D4); - lbl_1_data_5D4 = -1; + if (work->stopF != 0) { + work->dishSpeed *= 0.9f; + if (work->dishSpeed <= 0.01f) { + work->dishSpeed = 0.0f; + CupMotOnSet(0); + if (cupMoveSeNo != -1) { + HuAudFXStop(cupMoveSeNo); + cupMoveSeNo = -1; } - fn_1_6A14(arg0, arg1); + CupObjHookReset(work, obj); } - BoardModelMotionSpeedSet(arg0->unk04, arg0->unk08); + BoardModelMotionSpeedSet(work->dishMdlId, work->dishSpeed); for (i = 0; i < 3; i++) { - var_r22 = lbl_1_bss_6C4[lbl_1_data_5DC[lbl_1_bss_29][i]]; - BoardModelMotionSpeedSet(var_r22, arg0->unk08); + mdlId = mapObjMdlId[cupMapObj[cupSide][i]]; + BoardModelMotionSpeedSet(mdlId, work->dishSpeed); } return; } - if (lbl_1_bss_29 == 0) { - var_r24 = lbl_1_bss_0->unk01[lbl_1_bss_29] ^ 1; + if (cupSide == 0) { + cupDir = boardWork->cupDir[cupSide] ^ 1; } else { - var_r24 = lbl_1_bss_0->unk01[lbl_1_bss_29]; + cupDir = boardWork->cupDir[cupSide]; } - temp_r29 = BoardSpaceGet(0, lbl_1_bss_26); - lbl_1_bss_24 = -1; - for (i = 0; i < temp_r29->link_cnt; i++) { - if (temp_r29->link[i] != -1) { - temp_r3 = BoardSpaceFlagGet(0, temp_r29->link[i]); - if ((temp_r3 & 0x200) && var_r24 == 0) { - lbl_1_bss_24 = temp_r29->link[i]; + space = BoardSpaceGet(0, cupSpaceStart); + cupSpaceEnd = -1; + for (i = 0; i < space->link_cnt; i++) { + if (space->link[i] != -1) { + flag = BoardSpaceFlagGet(0, space->link[i]); + if ((flag & 0x200) && cupDir == 0) { + cupSpaceEnd = space->link[i]; } - if ((temp_r3 & 0x100) && var_r24 != 0) { - lbl_1_bss_24 = temp_r29->link[i]; + if ((flag & 0x100) && cupDir != 0) { + cupSpaceEnd = space->link[i]; } } } - BoardSpacePosGet(0, lbl_1_bss_24, &sp40); - Hu3DModelObjPosGet(BoardModelIDGet(arg0->unk04), lbl_1_data_604[lbl_1_bss_28], &sp34); - var_f31 = BoardVecDistXZCalc(&sp40, &sp34); - if (var_f31 <= 300.0f) { - arg0->unk00_field2 = 1; - arg0->unk08 = 1.0f; + BoardSpacePosGet(0, cupSpaceEnd, &spacePos); + Hu3DModelObjPosGet(BoardModelIDGet(work->dishMdlId), cupHookTbl[cupHookNo], &objPos); + dist = BoardVecDistXZCalc(&spacePos, &objPos); + if (dist <= 300.0f) { + work->stopF = TRUE; + work->dishSpeed = 1.0f; } } -static void fn_1_7528(s32 arg0, s32 arg1) +static void CupLandEvent(s32 playerNo, s32 spaceId) { - Vec sp30; - Vec sp24; - Vec sp18; - float temp_f31; - float temp_f30; - s16 sp14[] = { 23, 28 }; + Vec spacePos; + Vec cupRPos; + Vec cupLPos; + float cupRDist; + float cupLDist; + s16 sp14[] = { MAPOBJ_CUPR_DISH, MAPOBJ_CUPL_DISH }; BoardPlayerIdleSet(GWSystem.player_curr); - BoardSpacePosGet(0, arg1, &sp30); - BoardModelPosGet(lbl_1_bss_6C4[23], &sp24); - BoardModelPosGet(lbl_1_bss_6C4[28], &sp18); - temp_f31 = VECDistance(&sp24, &sp30); - temp_f30 = VECDistance(&sp18, &sp30); - if (temp_f31 < temp_f30) { - lbl_1_bss_29 = 0; + BoardSpacePosGet(0, spaceId, &spacePos); + BoardModelPosGet(mapObjMdlId[MAPOBJ_CUPR_DISH], &cupRPos); + BoardModelPosGet(mapObjMdlId[MAPOBJ_CUPL_DISH], &cupLPos); + cupRDist = VECDistance(&cupRPos, &spacePos); + cupLDist = VECDistance(&cupLPos, &spacePos); + if (cupRDist < cupLDist) { + cupSide = 0; } else { - lbl_1_bss_29 = 1; + cupSide = 1; } - BoardCameraTargetModelSet(lbl_1_bss_6C4[sp14[lbl_1_bss_29]]); + BoardCameraTargetModelSet(mapObjMdlId[sp14[cupSide]]); BoardCameraMotionWait(); HuPrcSleep(42); - fn_1_5B40(); + CupExec(); BoardCameraTargetPlayerSet(GWSystem.player_curr); BoardCameraMotionWait(); HuPrcSleep(12); } -static void fn_1_77EC(s32 arg0, s32 arg1) +static void CoasterLandEvent(s32 playerNo, s32 spaceId) { - lbl_1_bss_6B4 = arg0; - lbl_1_bss_6B0 = 0; - lbl_1_bss_8 = HuPrcChildCreate(fn_1_7894, 0x2003, 0x2000, 0, boardMainProc); - HuPrcDestructorSet2(lbl_1_bss_8, fn_1_4FA8); - while (lbl_1_bss_8) { + eventPlayer = playerNo; + coasterType = 0; + coasterProc = HuPrcChildCreate(CoasterLandMain, 0x2003, 0x2000, 0, boardMainProc); + HuPrcDestructorSet2(coasterProc, CoasterDestroy); + while (coasterProc) { HuPrcVSleep(); } } -static void fn_1_7894(void) +static void CoasterLandMain(void) { - lbl_1_bss_6B1 = 1; + coasterLandF = 1; WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 21); while (WipeStatGet() != 0) { HuPrcVSleep(); } - fn_1_7A64(); - fn_1_45F4(); + CoasterLandExec(); + CoasterExit(); HuPrcEnd(); } -static void fn_1_7A64(void) +static void CoasterLandExec(void) { - Vec sp34; - Vec sp28; - Vec sp1C; - Vec sp10; - float var_f30; - s16 var_r20; - s32 temp_r19; - s32 var_r28; + Vec spacePos; + float motSpeed; + s16 spaceId; + s32 seNo; + s32 endF; - var_r28 = 0; - lbl_1_bss_674 = lbl_1_bss_670 = 0.18f; - lbl_1_bss_640 = 0.0f; - lbl_1_bss_660.x = 0.0f; - lbl_1_bss_660.y = 0.0f; - lbl_1_bss_660.z = 0.0f; + endF = 0; + coasterAccel = coasterSpeed = 0.18f; + coasterTime = 0.0f; + coasterRot.x = 0.0f; + coasterRot.y = 0.0f; + coasterRot.z = 0.0f; lbl_1_bss_6A8 = 0.0f; - lbl_1_bss_6B3 = 0; - lbl_1_bss_624.x = 0.0f; - lbl_1_bss_624.z = 0.0f; - lbl_1_bss_624.y = 1.0f; - lbl_1_bss_66C = 0.04f; + coasterLoopF = 0; + coasterCameraUp.x = 0.0f; + coasterCameraUp.z = 0.0f; + coasterCameraUp.y = 1.0f; + coasterCamSpeed = 0.04f; BoardSpaceAttrSet(0, 1); - fn_1_97F4(); - BoardModelMotionStart(lbl_1_bss_6AE, 0, 0); - if (lbl_1_bss_0->unk00_field0 == 0) { - BoardModelMotionTimeSet(lbl_1_bss_6AE, lbl_1_bss_644); - lbl_1_bss_63C = -90.0f; - lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x2000, &sp34); - var_r20 = BoardSpaceFlagSearch(1, 0x1000); + CoasterEffCreate(); + BoardModelMotionStart(coasterPathMdlId, 0, 0); + if (boardWork->hostSide == 0) { + BoardModelMotionTimeSet(coasterPathMdlId, coasterMaxTime); + coasterBaseRotY = -90.0f; + coasterStartSpace = BoardSpaceFlagPosGet(1, 0x2000, &spacePos); + spaceId = BoardSpaceFlagSearch(1, 0x1000); } else { - BoardModelMotionTimeSet(lbl_1_bss_6AE, 0.0f); - lbl_1_bss_63C = 90.0f; - lbl_1_bss_6AC = BoardSpaceFlagPosGet(1, 0x1000, &sp34); - var_r20 = BoardSpaceFlagSearch(1, 0x2000); + BoardModelMotionTimeSet(coasterPathMdlId, 0.0f); + coasterBaseRotY = 90.0f; + coasterStartSpace = BoardSpaceFlagPosGet(1, 0x1000, &spacePos); + spaceId = BoardSpaceFlagSearch(1, 0x2000); } - lbl_1_bss_654 = sp34; - BoardCameraMotionStartEx(lbl_1_bss_6C4[0], NULL, NULL, 2400.0f, -1.0f, 2); - MTXRotRad(lbl_1_bss_678, 'y', MTXDegToRad(lbl_1_bss_63C)); - BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); - BoardModelRotSet(lbl_1_bss_6C4[0], 0.0f, 0.0f, 0.0f); - fn_1_3350(); - lbl_1_bss_648 = lbl_1_bss_654; - lbl_1_bss_618 = lbl_1_bss_654; - lbl_1_bss_630 = lbl_1_bss_654; - fn_1_852C(); - BoardModelMotionSpeedSet(lbl_1_bss_6AE, lbl_1_bss_670); + coasterPos = spacePos; + BoardCameraMotionStartEx(mapObjMdlId[MAPOBJ_COASTER], NULL, NULL, 2400.0f, -1.0f, 2); + MTXRotRad(coasterMtx, 'y', MTXDegToRad(coasterBaseRotY)); + BoardModelMtxSet(mapObjMdlId[MAPOBJ_COASTER], &coasterMtx); + BoardModelRotSet(mapObjMdlId[MAPOBJ_COASTER], 0.0f, 0.0f, 0.0f); + CoasterPathMotUpdate(); + coasterPosOld = coasterPos; + coasterCameraTarget = coasterPos; + coasterCameraPos = coasterPos; + CoasterPlayerManCreate(); + BoardModelMotionSpeedSet(coasterPathMdlId, coasterSpeed); BoardCameraMotionWait(); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, -1); - lbl_1_bss_6B0 = 1; - temp_r19 = HuAudFXPlay(0x412); + coasterType = 1; + seNo = HuAudFXPlay(0x412); while (TRUE) { - fn_1_1990(); - fn_1_3350(); - fn_1_276C(); - BoardModelPosSetV(lbl_1_bss_6C4[0], &lbl_1_bss_654); - BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); - if (lbl_1_bss_0->unk00_field0 == 0) { - var_f30 = -lbl_1_bss_670; + CoasterPathUpdate(); + CoasterPathMotUpdate(); + CoasterRotUpdate(); + BoardModelPosSetV(mapObjMdlId[MAPOBJ_COASTER], &coasterPos); + BoardModelMtxSet(mapObjMdlId[MAPOBJ_COASTER], &coasterMtx); + if (boardWork->hostSide == 0) { + motSpeed = -coasterSpeed; } else { - var_f30 = lbl_1_bss_670; + motSpeed = coasterSpeed; } - BoardModelMotionSpeedSet(lbl_1_bss_6AE, var_f30); - if (lbl_1_bss_0->unk00_field0 == 0) { - if (BoardModelMotionTimeGet(lbl_1_bss_6AE) <= 20.0f && var_r28 == 0) { + BoardModelMotionSpeedSet(coasterPathMdlId, motSpeed); + if (boardWork->hostSide == 0) { + if (BoardModelMotionTimeGet(coasterPathMdlId) <= 20.0f && endF == 0) { WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); - var_r28 = 1; + endF = 1; } } else { - if (BoardModelMotionTimeGet(lbl_1_bss_6AE) >= lbl_1_bss_644 - 20.0f && var_r28 == 0) { + if (BoardModelMotionTimeGet(coasterPathMdlId) >= coasterMaxTime - 20.0f && endF == 0) { WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); - var_r28 = 1; + endF = 1; } } - if (var_r28 != 0 && WipeStatGet() == 0) { + if (endF != 0 && WipeStatGet() == 0) { break; } HuPrcVSleep(); } - HuAudFXStop(temp_r19); - fn_1_98EC(); - fn_1_87AC(); - while (lbl_1_bss_C) { + HuAudFXStop(seNo); + CoasterEffKill(); + CoasterPlayerManKill(); + while (coasterPlayerManObj) { HuPrcVSleep(); } - MTXIdentity(lbl_1_bss_678); - BoardModelMtxSet(lbl_1_bss_6C4[0], &lbl_1_bss_678); - lbl_1_bss_660.x = 0.0f; - lbl_1_bss_660.z = 0.0f; - lbl_1_bss_660.y = -lbl_1_bss_63C; - BoardModelRotSetV(lbl_1_bss_6C4[0], &lbl_1_bss_660); - BoardSpacePosGet(1, var_r20, &sp34); - BoardModelPosSetV(lbl_1_bss_6C4[0], &sp34); + MTXIdentity(coasterMtx); + BoardModelMtxSet(mapObjMdlId[MAPOBJ_COASTER], &coasterMtx); + coasterRot.x = 0.0f; + coasterRot.z = 0.0f; + coasterRot.y = -coasterBaseRotY; + BoardModelRotSetV(mapObjMdlId[MAPOBJ_COASTER], &coasterRot); + BoardSpacePosGet(1, spaceId, &spacePos); + BoardModelPosSetV(mapObjMdlId[MAPOBJ_COASTER], &spacePos); BoardSpaceAttrReset(0, 1); BoardCameraMoveSet(0); - BoardCameraTargetPlayerSet(lbl_1_bss_6B4); + BoardCameraTargetPlayerSet(eventPlayer); BoardCameraViewSet(1); BoardCameraMotionWait(); - lbl_1_bss_6B2 = 1; + coasterDoneF = 1; } -static s8 lbl_1_data_633 = -1; +static s8 coasterChasePlayer = -1; -static void fn_1_852C(void) +static void CoasterPlayerManCreate(void) { - BssCWork *temp_r30; - BssCData *temp_r31; - Vec spC; - float temp_f31; - s16 sp8; - s16 var_r28; + CoasterPlayerManWork *work; + CoasterPlayerWork *workPlayer; + Vec playerPos; + float motTime; + s16 charNo; + s16 spaceId; s16 i; - u32 var_r27; + u32 spaceFlag; - lbl_1_bss_C = omAddObjEx(boardObjMan, 0x103, 0, 0, -1, fn_1_87E0); - temp_r30 = OM_GET_WORK_PTR(lbl_1_bss_C, BssCWork); - temp_r30->unk00_field0 = 0; - temp_r30->unk04 = HuMemDirectMallocNum(HEAP_SYSTEM, 4 * sizeof(BssCData), MEMORY_DEFAULT_NUM); - memset(temp_r30->unk04, 0, 4 * sizeof(BssCData)); - lbl_1_data_633 = -1; - lbl_1_bss_1C = 0; - for (temp_r30->unk01 = i = 0; i < 4; i++) { - temp_r31 = &temp_r30->unk04[temp_r30->unk01]; - var_r28 = GWPlayer[i].space_curr; - sp8 = GWPlayer[i].character; - var_r27 = BoardSpaceFlagGet(0, var_r28); - if (!(var_r27 & 1)) { - temp_r31->unk00 = -1; + coasterPlayerManObj = omAddObjEx(boardObjMan, 0x103, 0, 0, -1, CoasterPlayerManUpdate); + work = OM_GET_WORK_PTR(coasterPlayerManObj, CoasterPlayerManWork); + work->killF = 0; + work->player = HuMemDirectMallocNum(HEAP_SYSTEM, 4 * sizeof(CoasterPlayerWork), MEMORY_DEFAULT_NUM); + memset(work->player, 0, 4 * sizeof(CoasterPlayerWork)); + coasterChasePlayer = -1; + coasterPlayerChaseNum = 0; + for (work->playerNum = i = 0; i < 4; i++) { + workPlayer = &work->player[work->playerNum]; + spaceId = GWPlayer[i].space_curr; + charNo = GWPlayer[i].character; + spaceFlag = BoardSpaceFlagGet(0, spaceId); + if (!(spaceFlag & 1)) { + workPlayer->mode = -1; continue; } - temp_r31->unk00 = 0; - temp_r31->unk01 = i; - temp_r31->unk02 = 0; - BoardPlayerPosGet(temp_r31->unk01, &spC); - temp_r31->unk04 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 10), NULL, 0); - temp_f31 = BoardModelMotionMaxTimeGet(temp_r31->unk04); - BoardModelVisibilitySet(temp_r31->unk04, 0); - fn_1_95F4(temp_r31); - BoardModelMotionStart(temp_r31->unk04, 0, 0); - BoardModelMotionSpeedSet(temp_r31->unk04, 0.0f); - if (lbl_1_bss_0->unk00_field0 == 0) { - temp_r31->unk08 = -0.18f; - BoardModelMotionTimeSet(temp_r31->unk04, temp_f31); + workPlayer->mode = 0; + workPlayer->playerNo = i; + workPlayer->delay = 0; + BoardPlayerPosGet(workPlayer->playerNo, &playerPos); + workPlayer->pathMdlId = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 10), NULL, 0); + motTime = BoardModelMotionMaxTimeGet(workPlayer->pathMdlId); + BoardModelVisibilitySet(workPlayer->pathMdlId, 0); + CoasterPlayerTimeInit(workPlayer); + BoardModelMotionStart(workPlayer->pathMdlId, 0, 0); + BoardModelMotionSpeedSet(workPlayer->pathMdlId, 0.0f); + if (boardWork->hostSide == 0) { + workPlayer->speed = -0.18f; + BoardModelMotionTimeSet(workPlayer->pathMdlId, motTime); } else { - temp_r31->unk08 = 0.18f; - BoardModelMotionTimeSet(temp_r31->unk04, 0.0f); + workPlayer->speed = 0.18f; + BoardModelMotionTimeSet(workPlayer->pathMdlId, 0.0f); } - fn_1_932C(temp_r31); - temp_r30->unk01++; + CoasterPlayerEndSet(workPlayer); + work->playerNum++; } BoardCameraMoveSet(1); - BoardCameraTargetModelSet(lbl_1_bss_6C4[0]); + BoardCameraTargetModelSet(mapObjMdlId[MAPOBJ_COASTER]); } -static void fn_1_87AC(void) +static void CoasterPlayerManKill(void) { - if (lbl_1_bss_C) { - OM_GET_WORK_PTR(lbl_1_bss_C, BssCWork)->unk00_field0 = 1; + if (coasterPlayerManObj) { + OM_GET_WORK_PTR(coasterPlayerManObj, CoasterPlayerManWork)->killF = 1; } } -static void fn_1_87E0(omObjData *arg0) +static void CoasterPlayerManUpdate(omObjData *obj) { - BssCWork *temp_r30 = OM_GET_WORK_PTR(arg0, BssCWork); - BssCData *temp_r31; + CoasterPlayerManWork *work = OM_GET_WORK_PTR(obj, CoasterPlayerManWork); + CoasterPlayerWork *workPlayer; s32 i; - if (temp_r30->unk00_field0 != 0 || BoardIsKill()) { - for (i = 0; i < temp_r30->unk01; i++) { - temp_r31 = &temp_r30->unk04[i]; + if (work->killF != 0 || BoardIsKill()) { + for (i = 0; i < work->playerNum; i++) { + workPlayer = &work->player[i]; } - HuMemDirectFree(temp_r30->unk04); - lbl_1_bss_C = NULL; - omDelObjEx(HuPrcCurrentGet(), arg0); + HuMemDirectFree(work->player); + coasterPlayerManObj = NULL; + omDelObjEx(HuPrcCurrentGet(), obj); return; } - if (lbl_1_bss_6B0 == 0) { + if (coasterType == 0) { return; } - for (i = 0; i < temp_r30->unk01; i++) { - temp_r31 = &temp_r30->unk04[i]; - if (temp_r31->unk02 != 0) { - temp_r31->unk02--; + for (i = 0; i < work->playerNum; i++) { + workPlayer = &work->player[i]; + if (workPlayer->delay != 0) { + workPlayer->delay--; } else { - switch (temp_r31->unk00) { + switch (workPlayer->mode) { case 0: - fn_1_8988(temp_r31, arg0); + CoasterPlayerWait(workPlayer, obj); break; case 1: - fn_1_8A50(temp_r31, arg0); + CoasterPlayerChaseBegin(workPlayer, obj); break; case 2: - fn_1_8B6C(temp_r31, arg0); + CoasterPlayerChasePathSet(workPlayer, obj); break; case 3: - fn_1_8DDC(temp_r31, arg0); + CoasterPlayerChase(workPlayer, obj); break; case 4: - fn_1_918C(temp_r31, arg0); + CoasterPlayerStop(workPlayer, obj); break; case 5: - fn_1_927C(temp_r31, arg0); + CoasterPlayerEnd(workPlayer, obj); break; } } } } -static void fn_1_8988(BssCData *arg0, omObjData *arg1) +static void CoasterPlayerWait(CoasterPlayerWork *work, omObjData *obj) { - Vec sp20; - Vec sp14; - Vec sp8; + Vec mdlCoasterPos; + Vec playerPos; + Vec dir; - if (arg0->unk10 - lbl_1_bss_640 > 900.0f) { + if (work->time - coasterTime > 900.0f) { return; } - BoardModelPosGet(*lbl_1_bss_6C4, &sp20); - BoardPlayerPosGet(arg0->unk01, &sp14); - VECSubtract(&sp20, &sp14, &sp8); - BoardPlayerRotYSet(arg0->unk01, atan2d(sp8.x, sp8.z)); - arg0->unk00 = 1; + BoardModelPosGet(mapObjMdlId[MAPOBJ_COASTER], &mdlCoasterPos); + BoardPlayerPosGet(work->playerNo, &playerPos); + VECSubtract(&mdlCoasterPos, &playerPos, &dir); + BoardPlayerRotYSet(work->playerNo, atan2d(dir.x, dir.z)); + work->mode = 1; } -static s32 lbl_1_data_634[8] = { 0x00000123, 0x00000163, 0x000001A3, 0x000001E3, 0x00000223, 0x00000263, 0x000002A3, 0x000002E3 }; +static s32 coasterChaseSe[8] = { 0x00000123, 0x00000163, 0x000001A3, 0x000001E3, 0x00000223, 0x00000263, 0x000002A3, 0x000002E3 }; -static void fn_1_8A50(BssCData *arg0, omObjData *arg1) +static void CoasterPlayerChaseBegin(CoasterPlayerWork *work, omObjData *obj) { - if (lbl_1_data_633 == -1) { - BoardCameraTargetPlayerSet(arg0->unk01); - lbl_1_data_633 = arg0->unk01; + if (coasterChasePlayer == -1) { + BoardCameraTargetPlayerSet(work->playerNo); + coasterChasePlayer = work->playerNo; } - HuAudFXPlay(lbl_1_data_634[GWPlayer[arg0->unk01].character]); - BoardPlayerMotionStart(arg0->unk01, 9, 0); - BoardPlayerMotionSpeedSet(arg0->unk01, 2.0f); - arg0->unk02 = lbl_1_bss_1C * 3 + 9; - arg0->unk00 = 2; - lbl_1_bss_1C++; - omVibrate(arg0->unk01, 12, 4, 2); + HuAudFXPlay(coasterChaseSe[GWPlayer[work->playerNo].character]); + BoardPlayerMotionStart(work->playerNo, 9, 0); + BoardPlayerMotionSpeedSet(work->playerNo, 2.0f); + work->delay = coasterPlayerChaseNum * 3 + 9; + work->mode = 2; + coasterPlayerChaseNum++; + omVibrate(work->playerNo, 12, 4, 2); } -static void fn_1_8B6C(BssCData *arg0, omObjData *arg1) +static void CoasterPlayerChasePathSet(CoasterPlayerWork *work, omObjData *obj) { - ModelData *temp_r29; - HsfObject *var_r30; - Vec sp20; - Vec sp14; - Vec sp8; - float temp_f30; - float var_f31; - s16 var_r28; + ModelData *modelP; + HsfObject *modelObj; + Vec mdlCoasterPos; + Vec dir; + Vec objPos; + float motTime; + float time; + s16 modelId; - BoardPlayerPosGet(arg0->unk01, &arg0->unk14); - BoardModelPosGet(lbl_1_bss_6C4[0], &sp20); - VECSubtract(&sp20, &arg0->unk14, &sp14); - BoardPlayerRotYSet(arg0->unk01, -atan2d(sp14.x, sp14.z)); - BoardPlayerMotionStart(arg0->unk01, 3, 0x40000001); - BoardPlayerMotionSpeedSet(arg0->unk01, 2.0f); - temp_f30 = BoardModelMotionTimeGet(lbl_1_bss_6AE); - var_r28 = BoardModelIDGet(lbl_1_bss_6AE); - temp_r29 = &Hu3DData[var_r28]; - Hu3DMotionExec(var_r28, temp_r29->unk_08, temp_r29->unk_64, 0); - var_r30 = Hu3DModelObjPtrGet(var_r28, "looppath-cube1"); - sp8.x = var_r30->data.curr.pos.x; - sp8.y = var_r30->data.curr.pos.y; - sp8.z = var_r30->data.curr.pos.z; - var_f31 = lbl_1_bss_640; + BoardPlayerPosGet(work->playerNo, &work->pos); + BoardModelPosGet(mapObjMdlId[MAPOBJ_COASTER], &mdlCoasterPos); + VECSubtract(&mdlCoasterPos, &work->pos, &dir); + BoardPlayerRotYSet(work->playerNo, -atan2d(dir.x, dir.z)); + BoardPlayerMotionStart(work->playerNo, 3, HU3D_MOTATTR_LOOP); + BoardPlayerMotionSpeedSet(work->playerNo, 2.0f); + motTime = BoardModelMotionTimeGet(coasterPathMdlId); + modelId = BoardModelIDGet(coasterPathMdlId); + modelP = &Hu3DData[modelId]; + Hu3DMotionExec(modelId, modelP->unk_08, modelP->unk_64, 0); + modelObj = Hu3DModelObjPtrGet(modelId, "looppath-cube1"); + objPos.x = modelObj->data.curr.pos.x; + objPos.y = modelObj->data.curr.pos.y; + objPos.z = modelObj->data.curr.pos.z; + time = coasterTime; while (TRUE) { - Hu3DMotionExec(var_r28, temp_r29->unk_08, temp_r29->unk_64, 0); - var_r30 = Hu3DModelObjPtrGet(var_r28, "looppath-cube1"); - sp14.x = sp8.x - var_r30->data.curr.pos.x; - sp14.y = sp8.y - var_r30->data.curr.pos.y; - sp14.z = sp8.z - var_r30->data.curr.pos.z; - var_f31 += VECMag(&sp14); - if (var_f31 >= arg0->unk10) { + Hu3DMotionExec(modelId, modelP->unk_08, modelP->unk_64, 0); + modelObj = Hu3DModelObjPtrGet(modelId, "looppath-cube1"); + dir.x = objPos.x - modelObj->data.curr.pos.x; + dir.y = objPos.y - modelObj->data.curr.pos.y; + dir.z = objPos.z - modelObj->data.curr.pos.z; + time += VECMag(&dir); + if (time >= work->time) { break; } - sp8.x = var_r30->data.curr.pos.x; - sp8.y = var_r30->data.curr.pos.y; - sp8.z = var_r30->data.curr.pos.z; - temp_r29->unk_64 += arg0->unk08; + objPos.x = modelObj->data.curr.pos.x; + objPos.y = modelObj->data.curr.pos.y; + objPos.z = modelObj->data.curr.pos.z; + modelP->unk_64 += work->speed; } - BoardModelMotionStart(arg0->unk04, 0, 0); - BoardModelMotionTimeSet(arg0->unk04, temp_r29->unk_64); - BoardModelMotionSpeedSet(arg0->unk04, temp_r29->unk_68); - arg0->unk00 = 3; - BoardModelMotionTimeSet(lbl_1_bss_6AE, temp_f30); + BoardModelMotionStart(work->pathMdlId, 0, 0); + BoardModelMotionTimeSet(work->pathMdlId, modelP->unk_64); + BoardModelMotionSpeedSet(work->pathMdlId, modelP->unk_68); + work->mode = 3; + BoardModelMotionTimeSet(coasterPathMdlId, motTime); } -static void fn_1_8DDC(BssCData *arg0, omObjData *arg1) +static void CoasterPlayerChase(CoasterPlayerWork *work, omObjData *obj) { - ModelData *temp_r29; - HsfObject *var_r30; - Vec *var_r27; - Vec *var_r26; - Vec sp48; - Vec sp3C; - Vec sp30; - Vec sp24; - Vec sp18; - Vec spC; - Mtx sp54; - s16 var_r28; + ModelData *modelP; + HsfObject *modelObj; + Vec *pos; + Vec *target; + Vec up; + Vec rot; + Vec objPos; + Vec diff; + Vec railPos; + Vec spacePos; + Mtx matrix; + s16 modelId; - var_r28 = BoardModelIDGet(arg0->unk04); - temp_r29 = &Hu3DData[var_r28]; - Hu3DMotionExec(var_r28, temp_r29->unk_08, temp_r29->unk_64, 0); - var_r30 = Hu3DModelObjPtrGet(var_r28, "looppath-cube1"); - sp30.x = var_r30->data.curr.pos.x; - sp30.y = var_r30->data.curr.pos.y; - sp30.z = var_r30->data.curr.pos.z; - VECSubtract(&sp30, &arg0->unk14, &sp24); - if (fn_1_94A8(arg0) != 0) { - BoardModelPosGet(lbl_1_bss_6C4[1], &sp18); - VECSubtract(&sp18, &sp30, &sp48); - VECNormalize(&sp48, &sp48); - var_r27 = &arg0->unk14; - var_r26 = &sp30; - BoardMTXCalcLookAt(sp54, var_r26, &sp48, var_r27); - MTXTranspose(sp54, arg0->unk20); + modelId = BoardModelIDGet(work->pathMdlId); + modelP = &Hu3DData[modelId]; + Hu3DMotionExec(modelId, modelP->unk_08, modelP->unk_64, 0); + modelObj = Hu3DModelObjPtrGet(modelId, "looppath-cube1"); + objPos.x = modelObj->data.curr.pos.x; + objPos.y = modelObj->data.curr.pos.y; + objPos.z = modelObj->data.curr.pos.z; + VECSubtract(&objPos, &work->pos, &diff); + if (CoasterPlayerLoopCheck(work) != 0) { + BoardModelPosGet(mapObjMdlId[MAPOBJ_COASTER_RAIL], &railPos); + VECSubtract(&railPos, &objPos, &up); + VECNormalize(&up, &up); + pos = &work->pos; + target = &objPos; + BoardMTXCalcLookAt(matrix, target, &up, pos); + MTXTranspose(matrix, work->matrix); } else { - if (sp24.z != 0.0f || sp24.x != 0.0f) { - sp3C.y = atan2d(sp24.x, sp24.z); - sp3C.x = -atan2d(sp24.y, VECMagXZ(&sp24)); + if (diff.z != 0.0f || diff.x != 0.0f) { + rot.y = atan2d(diff.x, diff.z); + rot.x = -atan2d(diff.y, VECMagXZ(&diff)); } else { - sp3C.x = sp3C.y = 0.0f; + rot.x = rot.y = 0.0f; } - MTXRotRad(sp54, 'x', MTXDegToRad(sp3C.x)); - MTXRotRad(arg0->unk20, 'y', MTXDegToRad(sp3C.y)); - MTXConcat(arg0->unk20, sp54, arg0->unk20); + MTXRotRad(matrix, 'x', MTXDegToRad(rot.x)); + MTXRotRad(work->matrix, 'y', MTXDegToRad(rot.y)); + MTXConcat(work->matrix, matrix, work->matrix); } - BoardPlayerPosSetV(arg0->unk01, &sp30); - BoardPlayerRotSet(arg0->unk01, 0.0f, 0.0f, 0.0f); - BoardPlayerMtxSet(arg0->unk01, &arg0->unk20); - arg0->unk14 = sp30; - BoardSpacePosGet(0, arg0->unk06, &spC); - if (BoardVecMaxDistXZCheck(&spC, &sp30, 200.0f)) { - arg0->unk00 = 4; + BoardPlayerPosSetV(work->playerNo, &objPos); + BoardPlayerRotSet(work->playerNo, 0.0f, 0.0f, 0.0f); + BoardPlayerMtxSet(work->playerNo, &work->matrix); + work->pos = objPos; + BoardSpacePosGet(0, work->endSpace, &spacePos); + if (BoardVecMaxDistXZCheck(&spacePos, &objPos, 200.0f)) { + work->mode = 4; } } -static void fn_1_918C(BssCData *arg0, omObjData *arg1) +static void CoasterPlayerStop(CoasterPlayerWork *work, omObjData *obj) { - Vec sp20; - Vec sp14; - Vec sp8; - s32 var_r30; + Vec spacePos; + Vec playerPos; + Vec dir; + s32 spaceEnd; - MTXIdentity(arg0->unk20); - var_r30 = BoardSpaceLinkFlagSearch(0, arg0->unk06, 0x40); - BoardSpacePosGet(0, var_r30, &sp20); - BoardPlayerPosGet(arg0->unk01, &sp14); - BoardPlayerMtxSet(arg0->unk01, &arg0->unk20); - VECSubtract(&sp20, &sp14, &sp8); - BoardPlayerRotYSet(arg0->unk01, atan2d(-sp8.z, -sp8.x)); - BoardPlayerPosLerpStart(arg0->unk01, &sp14, &sp20, 20); - arg0->unk00 = 5; + MTXIdentity(work->matrix); + spaceEnd = BoardSpaceLinkFlagSearch(0, work->endSpace, 0x40); + BoardSpacePosGet(0, spaceEnd, &spacePos); + BoardPlayerPosGet(work->playerNo, &playerPos); + BoardPlayerMtxSet(work->playerNo, &work->matrix); + VECSubtract(&spacePos, &playerPos, &dir); + BoardPlayerRotYSet(work->playerNo, atan2d(-dir.z, -dir.x)); + BoardPlayerPosLerpStart(work->playerNo, &playerPos, &spacePos, 20); + work->mode = 5; } -static void fn_1_927C(BssCData *arg0, omObjData *arg1) +static void CoasterPlayerEnd(CoasterPlayerWork *work, omObjData *obj) { - s32 temp_r3; + s32 spaceEnd; - if (!GWPlayer[arg0->unk01].moving) { - BoardPlayerIdleSet(arg0->unk01); - temp_r3 = BoardSpaceLinkFlagSearch(0, arg0->unk06, 0x40); - GWPlayer[arg0->unk01].space_curr = temp_r3; - arg0->unk00 = -1; - BoardPlayerMoveAwayStartCurr(temp_r3, 0); + if (!GWPlayer[work->playerNo].moving) { + BoardPlayerIdleSet(work->playerNo); + spaceEnd = BoardSpaceLinkFlagSearch(0, work->endSpace, 0x40); + GWPlayer[work->playerNo].space_curr = spaceEnd; + work->mode = -1; + BoardPlayerMoveAwayStartCurr(spaceEnd, 0); } } -static void fn_1_932C(BssCData *arg0) +static void CoasterPlayerEndSet(CoasterPlayerWork *work) { - BoardSpace *temp_r30; - BoardSpace *var_r26; - Vec sp20[2]; - Vec sp14; - float spC[2]; - s16 sp8[2]; - s32 var_r29; - s32 var_r28; + BoardSpace *space; + BoardSpace *linkSpace; + Vec spacePos[2]; + Vec beginPos; + float spaceDist[2]; + s16 spaceId[2]; + s32 j; + s32 no; s32 i; - for (var_r28 = i = 0; i < BoardSpaceCountGet(0); i++) { - temp_r30 = BoardSpaceGet(0, i + 1); - for (var_r29 = 0; var_r29 < temp_r30->link_cnt; var_r29++) { - var_r26 = BoardSpaceGet(0, temp_r30->link[var_r29]); - if (var_r26->flag & 0x40) { - sp8[var_r28] = i + 1; - BoardSpacePosGet(0, temp_r30->link[var_r29], &sp20[var_r28]); - var_r28++; + for (no = i = 0; i < BoardSpaceCountGet(0); i++) { + space = BoardSpaceGet(0, i + 1); + for (j = 0; j < space->link_cnt; j++) { + linkSpace = BoardSpaceGet(0, space->link[j]); + if (linkSpace->flag & 0x40) { + spaceId[no] = i + 1; + BoardSpacePosGet(0, space->link[j], &spacePos[no]); + no++; } } - if (var_r28 >= 2) { + if (no >= 2) { break; } } - if (lbl_1_bss_0->unk00_field0 == 0) { - BoardSpaceFlagPosGet(0, 0x1000, &sp14); + if (boardWork->hostSide == 0) { + BoardSpaceFlagPosGet(0, 0x1000, &beginPos); } else { - BoardSpaceFlagPosGet(0, 0x2000, &sp14); + BoardSpaceFlagPosGet(0, 0x2000, &beginPos); } for (i = 0; i < 2; i++) { - spC[i] = VECSquareDistance(&sp14, &sp20[i]); + spaceDist[i] = VECSquareDistance(&beginPos, &spacePos[i]); } - if (spC[0] < spC[1]) { - arg0->unk06 = sp8[0]; + if (spaceDist[0] < spaceDist[1]) { + work->endSpace = spaceId[0]; } else { - arg0->unk06 = sp8[1]; + work->endSpace = spaceId[1]; } } -static s32 fn_1_94A8(BssCData *arg0) +static s32 CoasterPlayerLoopCheck(CoasterPlayerWork *arg0) { - Vec sp14; - s16 spC[4]; + Vec playerPos; + s16 linkTbl[4]; float sp8; - s32 var_r30; - s32 var_r29; - s32 var_r26; - BoardSpace *var_r31; - BoardSpace *var_r27; - BoardSpace *var_r28; + s32 spaceId; + s32 spaceIdLink; + s32 spaceIdPrev; + BoardSpace *space; + BoardSpace *spaceLink; + BoardSpace *spacePrev; - BoardPlayerPosGet(arg0->unk01, &sp14); - var_r28 = NULL; - var_r26 = -1; - var_r30 = lbl_1_bss_6AC; + BoardPlayerPosGet(arg0->playerNo, &playerPos); + spacePrev = NULL; + spaceIdPrev = -1; + spaceId = coasterStartSpace; sp8 = 0.0f; while (TRUE) { - var_r31 = BoardSpaceGet(1, var_r30); - if (lbl_1_bss_0->unk00_field0 == 0) { - var_r29 = var_r31->link[0]; + space = BoardSpaceGet(1, spaceId); + if (boardWork->hostSide == 0) { + spaceIdLink = space->link[0]; } else { - BoardSpaceLinkTargetListGet(1, var_r30, spC); - var_r29 = spC[0]; + BoardSpaceLinkTargetListGet(1, spaceId, linkTbl); + spaceIdLink = linkTbl[0]; } - var_r27 = BoardSpaceGet(1, var_r29); - if (!var_r27) { - var_r27 = var_r31; + spaceLink = BoardSpaceGet(1, spaceIdLink); + if (!spaceLink) { + spaceLink = space; break; } - if (BoardVecMaxDistXZCheck(&var_r31->pos, &sp14, 200.0f)) { - if (BoardVecMaxDistXZCheck(&var_r31->pos, &sp14, 100.0f)) { + if (BoardVecMaxDistXZCheck(&space->pos, &playerPos, 200.0f)) { + if (BoardVecMaxDistXZCheck(&space->pos, &playerPos, 100.0f)) { break; } - if (var_r28) { - var_r31 = var_r28; + if (spacePrev) { + space = spacePrev; break; } else { - var_r28 = var_r31; + spacePrev = space; } } - var_r26 = var_r30; - var_r30 = var_r29; + spaceIdPrev = spaceId; + spaceId = spaceIdLink; } - if (var_r31->flag & 8) { + if (space->flag & 8) { return 1; } else { @@ -2486,166 +2478,198 @@ static s32 fn_1_94A8(BssCData *arg0) } } -static void fn_1_95F4(BssCData *arg0) +static void CoasterPlayerTimeInit(CoasterPlayerWork *work) { - HsfObject *var_r30; - ModelData *temp_r29; - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - float temp_f30; - float var_f31; - s16 var_r28; + HsfObject *modelObj; + ModelData *modelP; + Vec pos; + Vec prevPos; + Vec playerPos; + Vec diff; + float maxTime; + float time; + s16 modelId; - temp_f30 = BoardModelMotionMaxTimeGet(arg0->unk04); - if (lbl_1_bss_0->unk00_field0 == 0) { - BoardModelMotionTimeSet(arg0->unk04, temp_f30); - BoardModelMotionSpeedSet(arg0->unk04, -0.18f); + maxTime = BoardModelMotionMaxTimeGet(work->pathMdlId); + if (boardWork->hostSide == 0) { + BoardModelMotionTimeSet(work->pathMdlId, maxTime); + BoardModelMotionSpeedSet(work->pathMdlId, -0.18f); } else { - BoardModelMotionTimeSet(arg0->unk04, 0.0f); - BoardModelMotionSpeedSet(arg0->unk04, 0.18f); + BoardModelMotionTimeSet(work->pathMdlId, 0.0f); + BoardModelMotionSpeedSet(work->pathMdlId, 0.18f); } - BoardPlayerPosGet(arg0->unk01, &sp14); - var_r28 = BoardModelIDGet(arg0->unk04); - temp_r29 = &Hu3DData[var_r28]; - Hu3DMotionExec(var_r28, temp_r29->unk_08, temp_r29->unk_64, 0); - var_r30 = Hu3DModelObjPtrGet(var_r28, "looppath-cube1"); - sp20.x = var_r30->data.curr.pos.x; - sp20.y = var_r30->data.curr.pos.y; - sp20.z = var_r30->data.curr.pos.z; - var_f31 = 0.0f; + BoardPlayerPosGet(work->playerNo, &playerPos); + modelId = BoardModelIDGet(work->pathMdlId); + modelP = &Hu3DData[modelId]; + Hu3DMotionExec(modelId, modelP->unk_08, modelP->unk_64, 0); + modelObj = Hu3DModelObjPtrGet(modelId, "looppath-cube1"); + prevPos.x = modelObj->data.curr.pos.x; + prevPos.y = modelObj->data.curr.pos.y; + prevPos.z = modelObj->data.curr.pos.z; + time = 0.0f; while (TRUE) { - Hu3DMotionExec(var_r28, temp_r29->unk_08, temp_r29->unk_64, 0); - var_r30 = Hu3DModelObjPtrGet(var_r28, "looppath-cube1"); - sp2C.x = var_r30->data.curr.pos.x; - sp2C.y = var_r30->data.curr.pos.y; - sp2C.z = var_r30->data.curr.pos.z; - VECSubtract(&sp2C, &sp20, &sp8); - var_f31 += VECMag(&sp8); - if (BoardVecMinDistCheck(&sp14, &sp2C, 150.0f)) { + Hu3DMotionExec(modelId, modelP->unk_08, modelP->unk_64, 0); + modelObj = Hu3DModelObjPtrGet(modelId, "looppath-cube1"); + pos.x = modelObj->data.curr.pos.x; + pos.y = modelObj->data.curr.pos.y; + pos.z = modelObj->data.curr.pos.z; + VECSubtract(&pos, &prevPos, &diff); + time += VECMag(&diff); + if (BoardVecMinDistCheck(&playerPos, &pos, 150.0f)) { break; } - sp20 = sp2C; - temp_r29->unk_64 += temp_r29->unk_68; + prevPos = pos; + modelP->unk_64 += modelP->unk_68; } - arg0->unk10 = var_f31; + work->time = time; } -static void fn_1_97F4(void) +static void CoasterEffCreate(void) { - Bss20Work *temp_r30; - Bss20Data *var_r31; + CoasterEffWork *work; + CoasterEffData *data; s32 i; - if (lbl_1_bss_20) { + if (coasterEffObj) { return; } - lbl_1_bss_20 = omAddObjEx(boardObjMan, 0x101, 1, 0, -1, fn_1_9920); - temp_r30 = OM_GET_WORK_PTR(lbl_1_bss_20, Bss20Work); - temp_r30->unk00_field0 = 0; - temp_r30->unk04 = HuMemDirectMallocNum(HEAP_SYSTEM, 20 * sizeof(Bss20Data), MEMORY_DEFAULT_NUM); - var_r31 = temp_r30->unk04; - for (i = 0; i < 20; var_r31++, i++) { - var_r31->unk00 = -1; - var_r31->unk02 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 7), NULL, 0); - BoardModelVisibilitySet(var_r31->unk02, 0); + coasterEffObj = omAddObjEx(boardObjMan, 0x101, 1, 0, -1, CoasterEffUpdate); + work = OM_GET_WORK_PTR(coasterEffObj, CoasterEffWork); + work->killF = 0; + work->data = HuMemDirectMallocNum(HEAP_SYSTEM, 20 * sizeof(CoasterEffData), MEMORY_DEFAULT_NUM); + data = work->data; + for (i = 0; i < 20; data++, i++) { + data->time = -1; + data->mdlId = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 7), NULL, 0); + BoardModelVisibilitySet(data->mdlId, 0); } } -static void fn_1_98EC(void) +static void CoasterEffKill(void) { - if (lbl_1_bss_20) { - OM_GET_WORK_PTR(lbl_1_bss_20, Bss20Work)->unk00_field0 = 1; + if (coasterEffObj) { + OM_GET_WORK_PTR(coasterEffObj, CoasterEffWork)->killF = TRUE; } } -static void fn_1_9920(omObjData *arg0) +static void CoasterEffUpdate(omObjData *obj) { - Bss20Work *temp_r31; + CoasterEffWork *work; s32 i; - temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_20, Bss20Work); - if (temp_r31->unk00_field0 != 0 || BoardIsKill()) { + work = OM_GET_WORK_PTR(coasterEffObj, CoasterEffWork); + if (work->killF != 0 || BoardIsKill()) { for (i = 0; i < 20; i++) { - BoardModelKill(temp_r31->unk04[i].unk02); + BoardModelKill(work->data[i].mdlId); } - HuMemDirectFree(temp_r31->unk04); - lbl_1_bss_20 = 0; - omDelObjEx(HuPrcCurrentGet(), arg0); + HuMemDirectFree(work->data); + coasterEffObj = 0; + omDelObjEx(HuPrcCurrentGet(), obj); return; } - if (lbl_1_bss_640 < 10.0f) { + if (coasterTime < 10.0f) { return; } - if (temp_r31->unk01 != 0) { - temp_r31->unk01--; + if (work->delay != 0) { + work->delay--; } else { - temp_r31->unk01 = 2; - fn_1_9A24(temp_r31); + work->delay = 2; + CoasterEffAdd(work); } - fn_1_9BBC(temp_r31); + CoasterEffModelUpdate(work); } -static void fn_1_9A24(Bss20Work *arg0) +static void CoasterEffAdd(CoasterEffWork *work) { - Bss20Data *temp_r31; - Mtx sp8; + CoasterEffData *data; + Mtx matrix; s32 i; s32 j; - if (lbl_1_bss_6B1 != 0) { - MTXTrans(sp8, 0.0f, 50.0f, -100.0f); + if (coasterLandF != 0) { + MTXTrans(matrix, 0.0f, 50.0f, -100.0f); } else { - MTXTrans(sp8, 0.0f, 70.0f, -100.0f); + MTXTrans(matrix, 0.0f, 70.0f, -100.0f); } - MTXConcat(lbl_1_bss_678, sp8, sp8); + MTXConcat(coasterMtx, matrix, matrix); for (i = 0; i < 4; i++) { for (j = 0; j < 20; j++) { - temp_r31 = &arg0->unk04[j]; - if (temp_r31->unk00 == -1) { - temp_r31->unk00 = 10; - Hu3DMtxTransGet(sp8, &temp_r31->unk08); - VECAdd(&lbl_1_bss_654, &temp_r31->unk08, &temp_r31->unk08); - temp_r31->unk14.x = 0.0f; - temp_r31->unk14.y = 0.0f; - temp_r31->unk14.z = 0.001f; - temp_r31->unk04 = 1.0f; - BoardModelVisibilitySet(temp_r31->unk02, 1); - BoardModelLayerSet(temp_r31->unk02, 2); - BoardModelPosSetV(temp_r31->unk02, &temp_r31->unk08); + data = &work->data[j]; + if (data->time == -1) { + data->time = 10; + Hu3DMtxTransGet(matrix, &data->pos); + VECAdd(&coasterPos, &data->pos, &data->pos); + data->vel.x = 0.0f; + data->vel.y = 0.0f; + data->vel.z = 0.001f; + data->scale = 1.0f; + BoardModelVisibilitySet(data->mdlId, 1); + BoardModelLayerSet(data->mdlId, 2); + BoardModelPosSetV(data->mdlId, &data->pos); break; } } } } -static void fn_1_9BBC(Bss20Work *arg0) +static void CoasterEffModelUpdate(CoasterEffWork *work) { - Bss20Data *temp_r31; + CoasterEffData *data; s32 i; for (i = 0; i < 20; i++) { - temp_r31 = &arg0->unk04[i]; - if (temp_r31->unk00 == -1) { + data = &work->data[i]; + if (data->time == -1) { continue; } - temp_r31->unk00--; - if (temp_r31->unk00 == 0) { - temp_r31->unk00 = -1; - BoardModelVisibilitySet(temp_r31->unk02, 0); + data->time--; + if (data->time == 0) { + data->time = -1; + BoardModelVisibilitySet(data->mdlId, 0); } else { - if (temp_r31->unk00 <= 3) { - temp_r31->unk04 = sind(30.0f * temp_r31->unk00); + if (data->time <= 3) { + data->scale = sind(30.0f * data->time); } - VECAdd(&temp_r31->unk08, &temp_r31->unk14, &temp_r31->unk08); - BoardModelMtxSet(temp_r31->unk02, &lbl_1_bss_678); - BoardModelPosSetV(temp_r31->unk02, &temp_r31->unk08); - BoardModelScaleSet(temp_r31->unk02, temp_r31->unk04, temp_r31->unk04, temp_r31->unk04); + VECAdd(&data->pos, &data->vel, &data->pos); + BoardModelMtxSet(data->mdlId, &coasterMtx); + BoardModelPosSetV(data->mdlId, &data->pos); + BoardModelScaleSet(data->mdlId, data->scale, data->scale, data->scale); } } } + +static void CoasterHostComKeySet(s32 playerNo) +{ + s32 starPos; + s32 yesF; + + starPos = GWSystem.star_pos; + yesF = 0; + if (boardWork->hostSide != 0) { + if (starPos == 0 || starPos == 1 || starPos == 7) { + yesF = 0; + } + else { + yesF = 1; + } + } + else if (starPos == 0 || starPos == 1 || starPos == 7) { + yesF = 1; + } + else { + yesF = 0; + } + if (BoardPlayerCoinsGet(playerNo) < 5) { + yesF = 0; + } + if (yesF != 0) { + BoardComKeySetLeft(); + } + else { + BoardComKeySetRight(); + } +} \ No newline at end of file diff --git a/src/REL/w01Dll/mg_coin.c b/src/REL/w01Dll/mg_coin.c index c24ee595..f07a4b3b 100755 --- a/src/REL/w01Dll/mg_coin.c +++ b/src/REL/w01Dll/mg_coin.c @@ -25,102 +25,98 @@ #include "ext_math.h" typedef struct { - /* 0x00 */ Vec unk00; - /* 0x0C */ float unk0C; -} Data690InnerStruct; // Size 0x10 + /* 0x00 */ Vec pos; + /* 0x0C */ float len; +} SpaceAmidaPathPoint; // Size 0x10 -typedef Data690InnerStruct Data690Block[15]; +typedef SpaceAmidaPathPoint SpaceAmidaMap[15]; typedef struct { /* 0x00 */ s16 unk00; /* 0x02 */ s16 unk02; - /* 0x04 */ Vec unk04; - /* 0x10 */ Vec unk10; - /* 0x1C */ u16 unk1C; - /* 0x1E */ char unk1E[2]; - /* 0x20 */ float unk20; - /* 0x24 */ u16 unk24; - /* 0x26 */ s16 unk26; - /* 0x28 */ s16 unk28; - /* 0x2A */ char unk2A[2]; -} Bss720Data; // Size 0x2C + /* 0x04 */ Vec rocketPos; + /* 0x10 */ Vec jumpDir; + /* 0x1C */ u16 waitTime; + /* 0x20 */ float jumpTime; + /* 0x24 */ u16 comDelay; + /* 0x26 */ s16 comChoice; + /* 0x28 */ s16 comInputTimer; +} SpaceAmidaGameWork; // Size 0x2C typedef struct { /* 0x00 */ char unk00[4]; - /* 0x04 */ Data690Block *unk04; - /* 0x08 */ u16 unk08; - /* 0x0A */ char unk0A[2]; - /* 0x0C */ float unk0C; - /* 0x10 */ float unk10; - /* 0x14 */ float unk14; - /* 0x18 */ float unk18; - /* 0x1C */ float unk1C; - /* 0x20 */ Vec unk20; - /* 0x2C */ Vec unk2C; - /* 0x38 */ float unk38; + /* 0x04 */ SpaceAmidaMap *map; + /* 0x08 */ u16 mapCursor; + /* 0x0C */ float len; + /* 0x10 */ float speed; + /* 0x14 */ float maxSpeed; + /* 0x18 */ float rocketXOfs; + /* 0x1C */ float kemuriSize; + /* 0x20 */ Vec kemuriScale; + /* 0x2C */ Vec kemuriScaleVel; + /* 0x38 */ float kemuriTPLvl; /* 0x3C */ float unk3C; - /* 0x40 */ s16 unk40; - /* 0x42 */ char unk42[2]; -} Bss714Data; // Size 0x44 + /* 0x40 */ s16 targetNo; +} RocketWork; // Size 0x44 -static void fn_1_A4B8(omObjData *arg0); -static void fn_1_A554(void); -static void fn_1_A5FC(void); -static void fn_1_A6E0(omObjData *arg0); -static float fn_1_B018(Data690Block *arg0); -static void fn_1_B088(omObjData *arg0); -static void fn_1_B1CC(omObjData *arg0, u16 *arg1, u16 *arg2); -static void fn_1_B3B8(omObjData *arg0); -static void fn_1_B478(omObjData *arg0); -static void fn_1_BAF8(omObjData *arg0); -static void fn_1_BCDC(omObjData *arg0); -static void fn_1_BF00(omObjData *arg0); -static void fn_1_BF68(omObjData *arg0); -static void fn_1_C000(void); -static void fn_1_C0FC(omObjData *arg0); -static void fn_1_C25C(void); -static void fn_1_C844(void); -static void fn_1_C894(omObjData *arg0); -static void fn_1_C94C(Vec *arg0, Vec *arg1, Vec *arg2); -static float fn_1_C998(Vec *arg0); -static u32 fn_1_CB44(Vec *arg0, float arg1); -static void fn_1_CEC4(void); -static void fn_1_D034(void); -static void fn_1_D07C(omObjData *arg0); -static void fn_1_D114(ModelData *model, ParticleData *particle, Mtx matrix); +static void SpaceAmidaMainUpdate(omObjData *obj); +static void SpaceAmidaStop(void); +static void SpaceAmidaKill(void); +static void SpaceAmidaRocketObjUpdate(omObjData *obj); +static float SpaceAmidaMapLenGet(SpaceAmidaMap *obj); +static void SpaceAmidaComChoiceSet(omObjData *obj); +static void SpaceAmidaComInputGet(omObjData *obj, u16 *stkBtn, u16 *btn); +static void SpaceAmidaGameOpen(omObjData *obj); +static void SpaceAmidaGameUpdate(omObjData *obj); +static void SpaceAmidaRocketJump(omObjData *obj); +static void SpaceAmidaRocketKemuriExec(omObjData *obj); +static void SpaceAmidaRocketWait(omObjData *obj); +static void SpaceAmidaRocketUp(omObjData *obj); +static void SpaceAmidaCoinWin(void); +static void SpaceAmidaJumpDown(omObjData *obj); +static void SpaceAmidaCoinRainMain(void); +static void SpaceAmidaReturnWinMain(void); +static void SpaceAmidaGameStop(omObjData *obj); +static void SpaceAmidaDirGet(Vec *a, Vec *b, Vec *result); +static float SpaceAmidaAngleGet(Vec *dir); +static u32 SpaceAmidaPlayerRotAdd(Vec *rocketPos, float delta); +static void SpaceAmidaEffCreate(void); +static void SpaceAmidaEffKill(void); +static void SpaceAmidaEffUpdate(omObjData *arg0); +static void SpaceAmidaEffParticleHook(ModelData *model, ParticleData *particle, Mtx matrix); -static s32 lbl_1_bss_79C; -static s32 lbl_1_bss_798; -static s16 lbl_1_bss_796; -static s16 lbl_1_bss_790[3]; -static s16 lbl_1_bss_78A[3]; -static s16 lbl_1_bss_788; -static s16 lbl_1_bss_760[20]; -static Process *lbl_1_bss_75C; -static omObjData *lbl_1_bss_758; -static float lbl_1_bss_754; -static s16 lbl_1_bss_750; -static s32 lbl_1_bss_74C; -static s32 lbl_1_bss_748; -static s16 lbl_1_bss_744; -static Vec lbl_1_bss_738; -static s32 lbl_1_bss_734; -static s32 lbl_1_bss_730; -static s32 lbl_1_bss_72C; -static u16 lbl_1_bss_72A; -static u16 lbl_1_bss_728; -static s32 lbl_1_bss_724; -static omObjData *lbl_1_bss_720; -static omObjData *lbl_1_bss_714[3]; -static omObjData *lbl_1_bss_710; -static AnimData *lbl_1_bss_70C; -static s16 lbl_1_bss_708; +static s32 spaceAmidaPadNo; +static s32 spaceAmidaPlayerNo; +static s16 spaceAmidaMdlId; +static s16 mapMdlId[3]; +static s16 rocketMdlId[3]; +static s16 spaceAmidaEffMdlId; +static s16 coinMdlId[20]; +static Process *coinWinProc; +static omObjData *spaceAmidaMainObj; +static float spaceAmidaTime; +static s16 kemuriMdlId; +static s32 timerSec; +static s32 timerFrame; +static s16 timerSeqId; +static Vec spaceAmidaPos; +static s32 spaceAmidaMapNo; +static s32 spaceAmidaPath; +static s32 rocketWarpF; +static u16 spaceAmidaStopF; +static u16 spaceAmidaCoinNum; +static s32 spaceAmidaSeNo; +static omObjData *spaceAmidaGameObj; +static omObjData *rocketObj[3]; +static omObjData *spaceAmidaEffObj; +static AnimData *spaceAmidaEffAnim; +static s16 spaceAmidaSeqStopF; -static Vec lbl_1_data_658[3] = { { -50.0f, 238.0f, 0.0f }, { 0.0f, 275.5f, 0.0f }, { 50.0f, 238.0f, 0.0f } }; +static Vec effPosTbl[3] = { { -50.0f, 238.0f, 0.0f }, { 0.0f, 275.5f, 0.0f }, { 50.0f, 238.0f, 0.0f } }; -static u16 lbl_1_data_67C[3][3] = { { 10, 5, 20 }, { 10, 5, 20 }, { 5, 20, 10 } }; +static u16 spaceAmidaCoinNumTbl[3][3] = { { 10, 5, 20 }, { 10, 5, 20 }, { 5, 20, 10 } }; -static Data690Block lbl_1_data_690[3] +static SpaceAmidaMap spaceAmidaMap1[3] = { { { { -50.0f, -12.0f, 0.0f }, 75.0f }, { { -50.0f, 63.0f, 0.0f }, 50.0f }, { { 0.0f, 63.0f, 0.0f }, 25.0f }, { { 0.0f, 88.0f, 0.0f }, 50.0f }, { { 50.0f, 88.0f, 0.0f }, 87.5f }, { { 50.0f, 175.5f, 0.0f }, 0.0f } }, { { { 0.0f, -12.0f, 0.0f }, 75.0f }, { { 0.0f, 63.0f, 0.0f }, 50.0f }, { { -50.0f, 63.0f, 0.0f }, 50.0f }, @@ -130,7 +126,7 @@ static Data690Block lbl_1_data_690[3] { { 0.0f, 113.0f, 0.0f }, 50.0f }, { { -50.0f, 113.0f, 0.0f }, 50.0f }, { { -50.0f, 163.0f, 0.0f }, 50.0f }, { { 0.0f, 163.0f, 0.0f }, 50.0f }, { { 0.0f, 213.0f, 0.0f }, 0.0f } } }; -static Data690Block lbl_1_data_960[3] +static SpaceAmidaMap spaceAmidaMap2[3] = { { { { -50.0f, -12.0f, 0.0f }, 125.0f }, { { -50.0f, 113.0f, 0.0f }, 50.0f }, { { 0.0f, 113.0f, 0.0f }, 25.0f }, { { 0.0f, 138.0f, 0.0f }, 50.0f }, { { 50.0f, 138.0f, 0.0f }, 37.5f }, { { 50.0f, 175.5f, 0.0f }, 0.0f } }, { { { 0.0f, -12.0f, 0.0f }, 75.0f }, { { 0.0f, 63.0f, 0.0f }, 50.0f }, { { 50.0f, 63.0f, 0.0f }, 75.0f }, @@ -140,7 +136,7 @@ static Data690Block lbl_1_data_960[3] { { 0.0f, 113.0f, 0.0f }, 50.0f }, { { -50.0f, 113.0f, 0.0f }, 50.0f }, { { -50.0f, 163.0f, 0.0f }, 50.0f }, { { 0.0f, 163.0f, 0.0f }, 50.0f }, { { 0.0f, 213.0f, 0.0f }, 0.0f } } }; -static Data690Block lbl_1_data_C30[3] +static SpaceAmidaMap spaceAmidaMap3[3] = { { { { -50.0f, -12.0f, 0.0f }, 100.0f }, { { -50.0f, 88.0f, 0.0f }, 50.0f }, { { 0.0f, 88.0f, 0.0f }, 50.0f }, { { 0.0f, 138.0f, 0.0f }, 50.0f }, { { -50.0f, 138.0f, 0.0f }, 37.5f }, { { -50.0f, 175.5f, 0.0f }, 0.0f } }, { { { 0.0f, -12.0f, 0.0f }, 75.0f }, { { 0.0f, 63.0f, 0.0f }, 50.0f }, { { 50.0f, 63.0f, 0.0f }, 100.0f }, @@ -149,911 +145,867 @@ static Data690Block lbl_1_data_C30[3] { { -50.0f, 88.0f, 0.0f }, 50.0f }, { { -50.0f, 138.0f, 0.0f }, 50.0f }, { { 0.0f, 138.0f, 0.0f }, 25.0f }, { { 0.0f, 163.0f, 0.0f }, 50.0f }, { { 50.0f, 163.0f, 0.0f }, 12.5f }, { { 50.0f, 175.5f, 0.0f }, 0.0f } } }; -void fn_1_9D00(s32 arg0) +void SpaceAmidaExec(void) { - s32 temp_r31; - s32 var_r30; - - temp_r31 = GWSystem.star_pos; - var_r30 = 0; - if (lbl_1_bss_0->unk00_field0 != 0) { - if (temp_r31 == 0 || temp_r31 == 1 || temp_r31 == 7) { - var_r30 = 0; - } - else { - var_r30 = 1; - } - } - else if (temp_r31 == 0 || temp_r31 == 1 || temp_r31 == 7) { - var_r30 = 1; - } - else { - var_r30 = 0; - } - if (BoardPlayerCoinsGet(arg0) < 5) { - var_r30 = 0; - } - if (var_r30 != 0) { - BoardComKeySetLeft(); - } - else { - BoardComKeySetRight(); - } -} - -void fn_1_9DD8(void) -{ - Vec sp2C[3]; - Vec sp20; - Vec sp14; - Vec sp8; - Bss720Data *temp_r30; - Bss714Data *temp_r29; + Vec rocketMdlOfs[3]; + Vec pos; + Vec rocketPos; + Vec scale; + SpaceAmidaGameWork *gameObjWork; + RocketWork *rocketWork; s32 i; - lbl_1_bss_79C = GWPlayer[GWSystem.player_curr].port; - lbl_1_bss_796 = lbl_1_bss_6C4[6]; - lbl_1_bss_790[0] = lbl_1_bss_6C4[7]; - lbl_1_bss_790[1] = lbl_1_bss_6C4[8]; - lbl_1_bss_790[2] = lbl_1_bss_6C4[9]; - lbl_1_bss_78A[0] = lbl_1_bss_6C4[10]; - lbl_1_bss_78A[1] = lbl_1_bss_6C4[11]; - lbl_1_bss_78A[2] = lbl_1_bss_6C4[12]; - BoardModelVisibilitySet(lbl_1_bss_790[0], 0); - BoardModelVisibilitySet(lbl_1_bss_790[1], 0); - BoardModelVisibilitySet(lbl_1_bss_790[2], 0); - lbl_1_bss_734 = rand8() % 3; - BoardModelVisibilitySet(lbl_1_bss_790[lbl_1_bss_734], 1); - BoardModelMotionStart(lbl_1_bss_790[lbl_1_bss_734], 0, 0x40000001); - BoardModelPosGet(lbl_1_bss_796, &sp20); - sp8.x = sp8.y = sp8.z = 1.0f; + spaceAmidaPadNo = GWPlayer[GWSystem.player_curr].port; + spaceAmidaMdlId = mapObjMdlId[MAPOBJ_SPACEAMIDA]; + mapMdlId[0] = mapObjMdlId[MAPOBJ_SPACEAMIDA_MAP1]; + mapMdlId[1] = mapObjMdlId[MAPOBJ_SPACEAMIDA_MAP2]; + mapMdlId[2] = mapObjMdlId[MAPOBJ_SPACEAMIDA_MAP3]; + rocketMdlId[0] = mapObjMdlId[MAPOBJ_SPACEAMIDA_ROCKET1]; + rocketMdlId[1] = mapObjMdlId[MAPOBJ_SPACEAMIDA_ROCKET2]; + rocketMdlId[2] = mapObjMdlId[MAPOBJ_SPACEAMIDA_ROCKET3]; + BoardModelVisibilitySet(mapMdlId[0], 0); + BoardModelVisibilitySet(mapMdlId[1], 0); + BoardModelVisibilitySet(mapMdlId[2], 0); + spaceAmidaMapNo = rand8() % 3; + BoardModelVisibilitySet(mapMdlId[spaceAmidaMapNo], 1); + BoardModelMotionStart(mapMdlId[spaceAmidaMapNo], 0, HU3D_MOTATTR_LOOP); + BoardModelPosGet(spaceAmidaMdlId, &pos); + scale.x = scale.y = scale.z = 1.0f; for (i = 0; i < 3; i++) { - sp2C[i] = lbl_1_data_690[i][0].unk00; - sp2C[i].y -= -12.0f; - BoardModelPosSet(lbl_1_bss_78A[i], sp20.x + sp2C[i].x, sp20.y + sp2C[i].y, sp20.z + 30.0f); - BoardModelVisibilitySet(lbl_1_bss_78A[i], 1); - BoardModelScaleSetV(lbl_1_bss_78A[i], &sp8); + rocketMdlOfs[i] = spaceAmidaMap1[i][0].pos; + rocketMdlOfs[i].y -= -12.0f; + BoardModelPosSet(rocketMdlId[i], pos.x + rocketMdlOfs[i].x, pos.y + rocketMdlOfs[i].y, pos.z + 30.0f); + BoardModelVisibilitySet(rocketMdlId[i], 1); + BoardModelScaleSetV(rocketMdlId[i], &scale); } - lbl_1_bss_798 = GWSystem.player_curr; - BoardModelPosGet(lbl_1_bss_796, &lbl_1_bss_738); - lbl_1_bss_730 = 1; - BoardModelPosGet(lbl_1_bss_78A[lbl_1_bss_730], &sp14); - BoardPlayerPosGet(lbl_1_bss_798, &sp20); - lbl_1_bss_758 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_A4B8); - lbl_1_bss_720 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_B3B8); - lbl_1_bss_720->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss720Data), MEMORY_DEFAULT_NUM); - temp_r30 = lbl_1_bss_720->data; - temp_r30->unk02 = 0; - temp_r30->unk04 = sp14; - temp_r30->unk28 = 0; - fn_1_CB44(&sp14, 0.0f); - fn_1_B088(lbl_1_bss_720); - lbl_1_bss_750 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_W01, 19)); - Hu3DModelAttrSet(lbl_1_bss_750, HU3D_ATTR_DISPOFF); + spaceAmidaPlayerNo = GWSystem.player_curr; + BoardModelPosGet(spaceAmidaMdlId, &spaceAmidaPos); + spaceAmidaPath = 1; + BoardModelPosGet(rocketMdlId[spaceAmidaPath], &rocketPos); + BoardPlayerPosGet(spaceAmidaPlayerNo, &pos); + spaceAmidaMainObj = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, SpaceAmidaMainUpdate); + spaceAmidaGameObj = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, SpaceAmidaGameOpen); + spaceAmidaGameObj->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(SpaceAmidaGameWork), MEMORY_DEFAULT_NUM); + gameObjWork = spaceAmidaGameObj->data; + gameObjWork->unk02 = 0; + gameObjWork->rocketPos = rocketPos; + gameObjWork->comInputTimer = 0; + SpaceAmidaPlayerRotAdd(&rocketPos, 0.0f); + SpaceAmidaComChoiceSet(spaceAmidaGameObj); + kemuriMdlId = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_W01, 19)); + Hu3DModelAttrSet(kemuriMdlId, HU3D_ATTR_DISPOFF); for (i = 0; i < 3; i++) { - lbl_1_bss_714[i] = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_A6E0); - lbl_1_bss_714[i]->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(Bss714Data), MEMORY_DEFAULT_NUM); - lbl_1_bss_714[i]->work[0] = lbl_1_bss_78A[i]; - lbl_1_bss_714[i]->work[1] = 0; - lbl_1_bss_714[i]->work[3] = 0; - temp_r29 = lbl_1_bss_714[i]->data; - if (i == lbl_1_bss_730) { - lbl_1_bss_714[i]->work[2] = 1; + rocketObj[i] = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, SpaceAmidaRocketObjUpdate); + rocketObj[i]->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(RocketWork), MEMORY_DEFAULT_NUM); + rocketObj[i]->work[0] = rocketMdlId[i]; + rocketObj[i]->work[1] = 0; + rocketObj[i]->work[3] = 0; + rocketWork = rocketObj[i]->data; + if (i == spaceAmidaPath) { + rocketObj[i]->work[2] = 1; } else { - lbl_1_bss_714[i]->work[2] = 0; + rocketObj[i]->work[2] = 0; } - temp_r29->unk18 = 1.0f; - temp_r29->unk1C = 0.0f; + rocketWork->rocketXOfs = 1.0f; + rocketWork->kemuriSize = 0.0f; } - lbl_1_bss_72C = 0; - lbl_1_bss_74C = 5; - lbl_1_bss_748 = REFRESH_RATE; - lbl_1_bss_72A = 0; - fn_1_CEC4(); - lbl_1_bss_788 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 17), NULL, 0); - BoardModelMotionUpdateSet(lbl_1_bss_788, 1); - BoardModelVisibilitySet(lbl_1_bss_788, 0); + rocketWarpF = 0; + timerSec = 5; + timerFrame = REFRESH_RATE; + spaceAmidaStopF = 0; + SpaceAmidaEffCreate(); + spaceAmidaEffMdlId = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W01, 17), NULL, 0); + BoardModelMotionUpdateSet(spaceAmidaEffMdlId, 1); + BoardModelVisibilitySet(spaceAmidaEffMdlId, 0); for (i = 0; i < 20; i++) { - lbl_1_bss_760[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 1); - BoardModelVisibilitySet(lbl_1_bss_760[i], 0); + coinMdlId[i] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 10), NULL, 1); + BoardModelVisibilitySet(coinMdlId[i], 0); } } -static void fn_1_A4B8(omObjData *arg0) +static void SpaceAmidaMainUpdate(omObjData *obj) { - if (lbl_1_bss_72A == 0) { + if (spaceAmidaStopF == 0) { return; } if (BoardMGDoneFlagGet() == 1) { - if (lbl_1_bss_754 <= 0.0f) { - fn_1_A5FC(); - omDelObjEx(HuPrcCurrentGet(), arg0); + if (spaceAmidaTime <= 0.0f) { + SpaceAmidaKill(); + omDelObjEx(HuPrcCurrentGet(), obj); } } - lbl_1_bss_754 -= 1.0f; + spaceAmidaTime -= 1.0f; } -static void fn_1_A554(void) +static void SpaceAmidaStop(void) { - float temp_f1; + float time; - lbl_1_bss_72A = 1; + spaceAmidaStopF = 1; BoardMGExit(); - temp_f1 = BoardModelMotionTimeGet(lbl_1_bss_796); - lbl_1_bss_754 = temp_f1; - BoardModelMotionStart(lbl_1_bss_796, 0, 0); - BoardModelMotionTimeSet(lbl_1_bss_796, temp_f1); - BoardModelMotionSpeedSet(lbl_1_bss_796, -1.0f); + time = BoardModelMotionTimeGet(spaceAmidaMdlId); + spaceAmidaTime = time; + BoardModelMotionStart(spaceAmidaMdlId, 0, 0); + BoardModelMotionTimeSet(spaceAmidaMdlId, time); + BoardModelMotionSpeedSet(spaceAmidaMdlId, -1.0f); } -static void fn_1_A5FC(void) +static void SpaceAmidaKill(void) { s32 i; for (i = 0; i < 3; i++) { - BoardModelVisibilitySet(lbl_1_bss_790[i], 0); - BoardModelVisibilitySet(lbl_1_bss_78A[i], 0); - omDelObjEx(HuPrcCurrentGet(), lbl_1_bss_714[i]); + BoardModelVisibilitySet(mapMdlId[i], 0); + BoardModelVisibilitySet(rocketMdlId[i], 0); + omDelObjEx(HuPrcCurrentGet(), rocketObj[i]); } for (i = 0; i < 20; i++) { - BoardModelKill(lbl_1_bss_760[i]); + BoardModelKill(coinMdlId[i]); } - fn_1_D034(); - BoardModelKill(lbl_1_bss_788); + SpaceAmidaEffKill(); + BoardModelKill(spaceAmidaEffMdlId); BoardMGDoneFlagSet(0); - Hu3DModelKill(lbl_1_bss_750); + Hu3DModelKill(kemuriMdlId); } -static void fn_1_A6E0(omObjData *arg0) +static void SpaceAmidaRocketObjUpdate(omObjData *obj) { - Bss714Data *temp_r31; - Vec sp2C; - Vec sp20; - Vec sp14; - Vec sp8; - float var_f31; + RocketWork *work; + Vec scale; + Vec pos; + Vec rocketPos; + Vec dir; + float len; - temp_r31 = arg0->data; - BoardModelScaleGet(arg0->work[0], &sp2C); - switch (arg0->work[2]) { + work = obj->data; + BoardModelScaleGet(obj->work[0], &scale); + switch (obj->work[2]) { case 1: - if ((sp2C.x += 0.08f) >= 1.5f) { - sp2C.x = 1.5f; - sp2C.y = 1.5f; - if (arg0->work[3] == 1) { - arg0->work[2] = 0; + if ((scale.x += 0.08f) >= 1.5f) { + scale.x = 1.5f; + scale.y = 1.5f; + if (obj->work[3] == 1) { + obj->work[2] = 0; } else { - arg0->work[2] = 2; + obj->work[2] = 2; } } else { - sp2C.y += 0.08f; + scale.y += 0.08f; } - BoardModelScaleSetV(arg0->work[0], &sp2C); + BoardModelScaleSetV(obj->work[0], &scale); break; case 2: - if ((sp2C.x -= 0.08f) <= 1.0f) { - sp2C.x = 1.0f; - sp2C.y = 1.0f; - if (arg0->work[1] == 1) { - arg0->work[2] = 0; - arg0->work[1] = 0; + if ((scale.x -= 0.08f) <= 1.0f) { + scale.x = 1.0f; + scale.y = 1.0f; + if (obj->work[1] == 1) { + obj->work[2] = 0; + obj->work[1] = 0; } else { - arg0->work[2] = 1; + obj->work[2] = 1; } } else { - sp2C.y -= 0.08f; + scale.y -= 0.08f; } - BoardModelScaleSetV(arg0->work[0], &sp2C); + BoardModelScaleSetV(obj->work[0], &scale); break; case 3: - switch (lbl_1_bss_734) { + switch (spaceAmidaMapNo) { case 0: - temp_r31->unk04 = &lbl_1_data_690[lbl_1_bss_730]; + work->map = &spaceAmidaMap1[spaceAmidaPath]; break; case 1: - temp_r31->unk04 = &lbl_1_data_960[lbl_1_bss_730]; + work->map = &spaceAmidaMap2[spaceAmidaPath]; break; case 2: - temp_r31->unk04 = &lbl_1_data_C30[lbl_1_bss_730]; + work->map = &spaceAmidaMap3[spaceAmidaPath]; break; } - BoardModelPosGet(arg0->work[0], &sp14); - sp14.x = lbl_1_bss_738.x + ((*temp_r31->unk04)[0].unk00.x + temp_r31->unk18); - temp_r31->unk18 = -temp_r31->unk18; - BoardModelPosSetV(arg0->work[0], &sp14); - sp14.y += 5.0f; - BoardPlayerPosSetV(lbl_1_bss_798, &sp14); - temp_r31->unk1C += 0.022222223f; - temp_r31->unk38 -= 0.011111111f; - if (temp_r31->unk38 < 0.0f) { - temp_r31->unk38 = 0.0f; + BoardModelPosGet(obj->work[0], &rocketPos); + rocketPos.x = spaceAmidaPos.x + ((*work->map)[0].pos.x + work->rocketXOfs); + work->rocketXOfs = -work->rocketXOfs; + BoardModelPosSetV(obj->work[0], &rocketPos); + rocketPos.y += 5.0f; + BoardPlayerPosSetV(spaceAmidaPlayerNo, &rocketPos); + work->kemuriSize += 0.022222223f; + work->kemuriTPLvl -= 0.011111111f; + if (work->kemuriTPLvl < 0.0f) { + work->kemuriTPLvl = 0.0f; } - Hu3DModelTPLvlSet(lbl_1_bss_750, temp_r31->unk38); - if (temp_r31->unk1C > 1.0f) { - temp_r31->unk1C = 1.0f; + Hu3DModelTPLvlSet(kemuriMdlId, work->kemuriTPLvl); + if (work->kemuriSize > 1.0f) { + work->kemuriSize = 1.0f; } - VECAdd(&temp_r31->unk20, &temp_r31->unk2C, &temp_r31->unk20); - if (temp_r31->unk20.y >= 4.0f) { - temp_r31->unk20.y = 4.0f; - temp_r31->unk2C.y = -0.1f; + VECAdd(&work->kemuriScale, &work->kemuriScaleVel, &work->kemuriScale); + if (work->kemuriScale.y >= 4.0f) { + work->kemuriScale.y = 4.0f; + work->kemuriScaleVel.y = -0.1f; } - if (temp_r31->unk20.y < 1.0f) { - temp_r31->unk20.y = 1.0f; + if (work->kemuriScale.y < 1.0f) { + work->kemuriScale.y = 1.0f; } - Hu3DModelScaleSet(lbl_1_bss_750, temp_r31->unk20.x, temp_r31->unk20.y, temp_r31->unk20.z); + Hu3DModelScaleSet(kemuriMdlId, work->kemuriScale.x, work->kemuriScale.y, work->kemuriScale.z); break; case 4: - Hu3DModelAttrSet(lbl_1_bss_750, HU3D_ATTR_DISPOFF); - arg0->work[2] = 5; - temp_r31->unk08 = 0; - temp_r31->unk0C = 12.0f; - temp_r31->unk14 = (fn_1_B018(temp_r31->unk04) - temp_r31->unk0C) / 90.0f; - temp_r31->unk10 = temp_r31->unk14 / 20.0f; + Hu3DModelAttrSet(kemuriMdlId, HU3D_ATTR_DISPOFF); + obj->work[2] = 5; + work->mapCursor = 0; + work->len = 12.0f; + work->maxSpeed = (SpaceAmidaMapLenGet(work->map) - work->len) / 90.0f; + work->speed = work->maxSpeed / 20.0f; HuAudFXPlay(0x406); HuAudFXPlay(0x407); - HuAudFXStop(lbl_1_bss_724); + HuAudFXStop(spaceAmidaSeNo); break; case 5: - var_f31 = temp_r31->unk0C + temp_r31->unk10; - temp_r31->unk0C = var_f31; - temp_r31->unk10 *= 1.04f; - if (temp_r31->unk10 > temp_r31->unk14) { - temp_r31->unk10 = temp_r31->unk14; + len = work->len + work->speed; + work->len = len; + work->speed *= 1.04f; + if (work->speed > work->maxSpeed) { + work->speed = work->maxSpeed; } - BoardModelPosGet(arg0->work[0], &sp20); - while (var_f31 >= (*temp_r31->unk04)[temp_r31->unk08].unk0C) { - var_f31 -= (*temp_r31->unk04)[temp_r31->unk08].unk0C; - temp_r31->unk08++; - if ((*temp_r31->unk04)[temp_r31->unk08].unk0C == 0.0f) { - omVibrate(lbl_1_bss_798, 12, 6, 6); - var_f31 = 0.0f; - lbl_1_bss_72C = 1; - lbl_1_bss_724 = HuAudFXPlay(0x332); - lbl_1_bss_708 = 0; - arg0->work[2] = 6; - if (sp20.x - lbl_1_bss_738.x < -25.0f) { - temp_r31->unk40 = 0; - lbl_1_bss_728 = 5; + BoardModelPosGet(obj->work[0], &pos); + while (len >= (*work->map)[work->mapCursor].len) { + len -= (*work->map)[work->mapCursor].len; + work->mapCursor++; + if ((*work->map)[work->mapCursor].len == 0.0f) { + omVibrate(spaceAmidaPlayerNo, 12, 6, 6); + len = 0.0f; + rocketWarpF = 1; + spaceAmidaSeNo = HuAudFXPlay(0x332); + spaceAmidaSeqStopF = 0; + obj->work[2] = 6; + if (pos.x - spaceAmidaPos.x < -25.0f) { + work->targetNo = 0; + spaceAmidaCoinNum = 5; } - else if (sp20.x - lbl_1_bss_738.x > 25.0f) { - temp_r31->unk40 = 2; - lbl_1_bss_728 = 10; + else if (pos.x - spaceAmidaPos.x > 25.0f) { + work->targetNo = 2; + spaceAmidaCoinNum = 10; } else { - temp_r31->unk40 = 1; - lbl_1_bss_728 = 20; + work->targetNo = 1; + spaceAmidaCoinNum = 20; } break; } } - temp_r31->unk0C = var_f31; - sp14.x = sp14.y = sp14.z = 0.0f; - if (lbl_1_bss_72C == 0) { - fn_1_C94C(&(*temp_r31->unk04)[temp_r31->unk08].unk00, &(*temp_r31->unk04)[temp_r31->unk08 + 1].unk00, &sp8); - sp20.x = lbl_1_bss_738.x + (sp8.x * var_f31 + (*temp_r31->unk04)[temp_r31->unk08].unk00.x); - sp20.y = lbl_1_bss_738.y + (sp8.y * var_f31 + (*temp_r31->unk04)[temp_r31->unk08].unk00.y); + work->len = len; + rocketPos.x = rocketPos.y = rocketPos.z = 0.0f; + if (rocketWarpF == 0) { + SpaceAmidaDirGet(&(*work->map)[work->mapCursor].pos, &(*work->map)[work->mapCursor + 1].pos, &dir); + pos.x = spaceAmidaPos.x + (dir.x * len + (*work->map)[work->mapCursor].pos.x); + pos.y = spaceAmidaPos.y + (dir.y * len + (*work->map)[work->mapCursor].pos.y); } else { - sp20.x = lbl_1_bss_738.x + (*temp_r31->unk04)[temp_r31->unk08].unk00.x; - sp20.y = lbl_1_bss_738.y + (*temp_r31->unk04)[temp_r31->unk08].unk00.y; + pos.x = spaceAmidaPos.x + (*work->map)[work->mapCursor].pos.x; + pos.y = spaceAmidaPos.y + (*work->map)[work->mapCursor].pos.y; } - BoardModelPosSetV(arg0->work[0], &sp20); - sp20.y += 5.0f; - BoardPlayerPosSetV(lbl_1_bss_798, &sp20); - BoardModelRotSetV(arg0->work[0], &sp14); - BoardPlayerRotSetV(lbl_1_bss_798, &sp14); + BoardModelPosSetV(obj->work[0], &pos); + pos.y += 5.0f; + BoardPlayerPosSetV(spaceAmidaPlayerNo, &pos); + BoardModelRotSetV(obj->work[0], &rocketPos); + BoardPlayerRotSetV(spaceAmidaPlayerNo, &rocketPos); break; case 6: - if (lbl_1_bss_708 == 0 && (HuAudFXStatusGet(lbl_1_bss_724) == 1 || HuAudFXStatusGet(lbl_1_bss_724) == 0)) { + if (spaceAmidaSeqStopF == 0 && (HuAudFXStatusGet(spaceAmidaSeNo) == 1 || HuAudFXStatusGet(spaceAmidaSeNo) == 0)) { BoardAudSeqPause(0, 0, 1000); - lbl_1_bss_708 = 1; + spaceAmidaSeqStopF = 1; } - BoardModelVisibilitySet(lbl_1_bss_788, 1); - sp20.x = lbl_1_bss_738.x + lbl_1_data_658[temp_r31->unk40].x; - sp20.y = lbl_1_bss_738.y + lbl_1_data_658[temp_r31->unk40].y; - sp20.z = lbl_1_bss_738.z + lbl_1_data_658[temp_r31->unk40].z; - BoardModelPosSetV(lbl_1_bss_788, &sp20); - temp_r31->unk1C -= 0.05f; - if (temp_r31->unk1C <= 0.0f) { - temp_r31->unk1C = 0.0f; + BoardModelVisibilitySet(spaceAmidaEffMdlId, 1); + pos.x = spaceAmidaPos.x + effPosTbl[work->targetNo].x; + pos.y = spaceAmidaPos.y + effPosTbl[work->targetNo].y; + pos.z = spaceAmidaPos.z + effPosTbl[work->targetNo].z; + BoardModelPosSetV(spaceAmidaEffMdlId, &pos); + work->kemuriSize -= 0.05f; + if (work->kemuriSize <= 0.0f) { + work->kemuriSize = 0.0f; } break; } } -static float fn_1_B018(Data690Block *arg0) +static float SpaceAmidaMapLenGet(SpaceAmidaMap *arg0) { - float var_f31; + float len; s32 i; - var_f31 = 0.0f; + len = 0.0f; i = 0; while (TRUE) { - if ((*arg0)[i].unk0C == 0.0f) { + if ((*arg0)[i].len == 0.0f) { break; } - var_f31 += (*arg0)[i].unk0C; + len += (*arg0)[i].len; i++; } - return var_f31; + return len; } -static void fn_1_B088(omObjData *arg0) +static void SpaceAmidaComChoiceSet(omObjData *obj) { - Bss720Data *temp_r31; - u16 sp8[] = { 20, 60, 120, 190 }; + SpaceAmidaGameWork *work; + u16 chance[] = { 20, 60, 120, 190 }; s32 i; - temp_r31 = arg0->data; - if (rand8() < sp8[GWPlayerCfg[lbl_1_bss_798].diff]) { + work = obj->data; + if (rand8() < chance[GWPlayerCfg[spaceAmidaPlayerNo].diff]) { for (i = 0; i < 3; i++) { - if (lbl_1_data_67C[lbl_1_bss_734][i] == 20) { - temp_r31->unk26 = i; + if (spaceAmidaCoinNumTbl[spaceAmidaMapNo][i] == 20) { + work->comChoice = i; } } } else { - temp_r31->unk26 = rand8() % 3; + work->comChoice = rand8() % 3; } - temp_r31->unk24 = rand8() % 20 + 20; + work->comDelay = rand8() % 20 + 20; } -static void fn_1_B1CC(omObjData *arg0, u16 *arg1, u16 *arg2) +static void SpaceAmidaComInputGet(omObjData *obj, u16 *stkBtn, u16 *btn) { - Bss720Data *temp_r31; + SpaceAmidaGameWork *work; - temp_r31 = arg0->data; - *arg1 = *arg2 = 0; - if (temp_r31->unk24 != 0) { - temp_r31->unk24--; + work = obj->data; + *stkBtn = *btn = 0; + if (work->comDelay != 0) { + work->comDelay--; return; } - if (temp_r31->unk28 >= 4 || (rand8() & 1)) { - if (temp_r31->unk26 == lbl_1_bss_730) { - *arg2 |= 0x100; + if (work->comInputTimer >= 4 || (rand8() & 1)) { + if (work->comChoice == spaceAmidaPath) { + *btn |= PAD_BUTTON_A; } - else if (temp_r31->unk26 < lbl_1_bss_730) { - *arg1 |= 1; + else if (work->comChoice < spaceAmidaPath) { + *stkBtn |= PAD_BUTTON_LEFT; } else { - *arg1 |= 2; + *stkBtn |= PAD_BUTTON_RIGHT; } - temp_r31->unk24 = rand8() % 10 + 10; + work->comDelay = rand8() % 10 + 10; } else { - temp_r31->unk28++; - temp_r31->unk24 = rand8() % 10 + 20; - if (lbl_1_bss_730 == 0) { - *arg1 |= 2; + work->comInputTimer++; + work->comDelay = rand8() % 10 + 20; + if (spaceAmidaPath == 0) { + *stkBtn |= PAD_BUTTON_RIGHT; } - else if (lbl_1_bss_730 == 2) { - *arg1 |= 1; + else if (spaceAmidaPath == 2) { + *stkBtn |= PAD_BUTTON_LEFT; } else if (rand8() & 1) { - *arg1 |= 1; + *stkBtn |= PAD_BUTTON_LEFT; } else { - *arg1 |= 2; + *stkBtn |= PAD_BUTTON_RIGHT; } } } -static void fn_1_B3B8(omObjData *arg0) +static void SpaceAmidaGameOpen(omObjData *obj) { - float temp_f31; - - temp_f31 = BoardModelMotionMaxTimeGet(lbl_1_bss_796); - if (BoardModelMotionTimeGet(lbl_1_bss_796) >= temp_f31) { - lbl_1_bss_744 = MGSeqCreate(1, lbl_1_bss_74C, 0x120, 0x40); - lbl_1_bss_720->func = fn_1_B478; + if (BoardModelMotionTimeGet(spaceAmidaMdlId) >= BoardModelMotionMaxTimeGet(spaceAmidaMdlId)) { + timerSeqId = MGSeqCreate(1, timerSec, 0x120, 0x40); + spaceAmidaGameObj->func = SpaceAmidaGameUpdate; BoardMusStart(1, 0xF, 0x7F, 0); - lbl_1_bss_724 = HuAudFXPlay(0x408); + spaceAmidaSeNo = HuAudFXPlay(0x408); } } -static void fn_1_B478(omObjData *arg0) +static void SpaceAmidaGameUpdate(omObjData *obj) { - Bss720Data *temp_r31; - Vec sp18; - Vec spC; - float var_f28; - u16 var_r27; - u16 var_r29; + SpaceAmidaGameWork *work; + Vec rocketPos; + Vec playerPos; + float jumpDist; + u16 btn; + u16 stkBtn; - temp_r31 = arg0->data; - if ((--lbl_1_bss_748) == 0) { - if ((--lbl_1_bss_74C) >= 0) { - MGSeqParamSet(lbl_1_bss_744, 1, lbl_1_bss_74C); + work = obj->data; + if ((--timerFrame) == 0) { + if ((--timerSec) >= 0) { + MGSeqParamSet(timerSeqId, 1, timerSec); } - lbl_1_bss_748 = REFRESH_RATE; + timerFrame = REFRESH_RATE; } - if (GWPlayerCfg[lbl_1_bss_798].iscom == 1) { - fn_1_B1CC(arg0, &var_r29, &var_r27); + if (GWPlayerCfg[spaceAmidaPlayerNo].iscom == 1) { + SpaceAmidaComInputGet(obj, &stkBtn, &btn); } else { - var_r29 = HuPadDStkRep[lbl_1_bss_79C]; - var_r27 = HuPadBtnDown[lbl_1_bss_79C]; + stkBtn = HuPadDStkRep[spaceAmidaPadNo]; + btn = HuPadBtnDown[spaceAmidaPadNo]; } - if ((var_r29 & 1) && lbl_1_bss_730 != 0) { - lbl_1_bss_714[lbl_1_bss_730]->work[1] = 1; - lbl_1_bss_714[lbl_1_bss_730]->work[2] = 2; - lbl_1_bss_730--; - lbl_1_bss_714[lbl_1_bss_730]->work[2] = 1; + if ((stkBtn & PAD_BUTTON_LEFT) && spaceAmidaPath != 0) { + rocketObj[spaceAmidaPath]->work[1] = 1; + rocketObj[spaceAmidaPath]->work[2] = 2; + spaceAmidaPath--; + rocketObj[spaceAmidaPath]->work[2] = 1; } - if ((var_r29 & 2) && lbl_1_bss_730 != 2) { - lbl_1_bss_714[lbl_1_bss_730]->work[1] = 1; - lbl_1_bss_714[lbl_1_bss_730]->work[2] = 2; - lbl_1_bss_730++; - lbl_1_bss_714[lbl_1_bss_730]->work[2] = 1; + if ((stkBtn & PAD_BUTTON_RIGHT) && spaceAmidaPath != 2) { + rocketObj[spaceAmidaPath]->work[1] = 1; + rocketObj[spaceAmidaPath]->work[2] = 2; + spaceAmidaPath++; + rocketObj[spaceAmidaPath]->work[2] = 1; } - BoardModelPosGet(lbl_1_bss_78A[lbl_1_bss_730], &sp18); - BoardPlayerPosGet(lbl_1_bss_798, &spC); - fn_1_CB44(&sp18, 0.0f); - temp_r31->unk04 = sp18; - if (lbl_1_bss_74C < 0 || (var_r27 & 0x100)) { - MGSeqParamSet(lbl_1_bss_744, 2, -1); - lbl_1_bss_714[lbl_1_bss_730]->work[1] = 1; - BoardPlayerPosGet(lbl_1_bss_798, &spC); - var_f28 = VECDistanceXZ(&temp_r31->unk04, &spC); - fn_1_C94C(&spC, &temp_r31->unk04, &temp_r31->unk10); - temp_r31->unk10.y = 0.0f; - temp_r31->unk10.x *= var_f28 / 30.0f; - temp_r31->unk10.z *= var_f28 / 30.0f; - temp_r31->unk00 = 0; - temp_r31->unk20 = 0.0f; - arg0->func = fn_1_BAF8; + BoardModelPosGet(rocketMdlId[spaceAmidaPath], &rocketPos); + BoardPlayerPosGet(spaceAmidaPlayerNo, &playerPos); + SpaceAmidaPlayerRotAdd(&rocketPos, 0.0f); + work->rocketPos = rocketPos; + if (timerSec < 0 || (btn & PAD_BUTTON_A)) { + MGSeqParamSet(timerSeqId, 2, -1); + rocketObj[spaceAmidaPath]->work[1] = 1; + BoardPlayerPosGet(spaceAmidaPlayerNo, &playerPos); + jumpDist = VECDistanceXZ(&work->rocketPos, &playerPos); + SpaceAmidaDirGet(&playerPos, &work->rocketPos, &work->jumpDir); + work->jumpDir.y = 0.0f; + work->jumpDir.x *= jumpDist / 30.0f; + work->jumpDir.z *= jumpDist / 30.0f; + work->unk00 = 0; + work->jumpTime = 0.0f; + obj->func = SpaceAmidaRocketJump; } } -static void fn_1_BAF8(omObjData *arg0) +static void SpaceAmidaRocketJump(omObjData *obj) { - Bss720Data *temp_r31; - Vec sp14; - Vec sp8; + SpaceAmidaGameWork *work; + Vec playerPos; + Vec rocketPos; - temp_r31 = arg0->data; - if (lbl_1_bss_714[lbl_1_bss_730]->work[2] != 0) { + work = obj->data; + if (rocketObj[spaceAmidaPath]->work[2] != 0) { return; } - BoardPlayerMotionStart(lbl_1_bss_798, 4, 0); - BoardPlayerPosGet(lbl_1_bss_798, &sp14); - sp14.x += temp_r31->unk10.x; - sp14.z += temp_r31->unk10.z; - sp14.y = lbl_1_bss_738.y + 80.0 * sind(6.0f * temp_r31->unk20); - BoardModelPosGet(lbl_1_bss_714[lbl_1_bss_730]->work[0], &sp8); - if ((temp_r31->unk20 += 1.0f) == 30.0f) { - sp14.y = sp8.y + 5.0f; - BoardPlayerPosSetV(lbl_1_bss_798, &sp14); - BoardPlayerMotionShiftSet(lbl_1_bss_798, 2, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - arg0->func = fn_1_BCDC; + BoardPlayerMotionStart(spaceAmidaPlayerNo, 4, 0); + BoardPlayerPosGet(spaceAmidaPlayerNo, &playerPos); + playerPos.x += work->jumpDir.x; + playerPos.z += work->jumpDir.z; + playerPos.y = spaceAmidaPos.y + 80.0 * sind(6.0f * work->jumpTime); + BoardModelPosGet(rocketObj[spaceAmidaPath]->work[0], &rocketPos); + if ((++work->jumpTime) == 30.0f) { + playerPos.y = rocketPos.y + 5.0f; + BoardPlayerPosSetV(spaceAmidaPlayerNo, &playerPos); + BoardPlayerMotionShiftSet(spaceAmidaPlayerNo, 2, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + obj->func = SpaceAmidaRocketKemuriExec; } - BoardPlayerPosSetV(lbl_1_bss_798, &sp14); + BoardPlayerPosSetV(spaceAmidaPlayerNo, &playerPos); } -static void fn_1_BCDC(omObjData *arg0) +static void SpaceAmidaRocketKemuriExec(omObjData *obj) { - Bss720Data *temp_r29; - Bss714Data *temp_r31; - Vec sp14; - Vec sp8; + SpaceAmidaGameWork *work; + RocketWork *rocketWork; + Vec playerPos; + Vec kemuriPos; - temp_r29 = arg0->data; - BoardPlayerPosGet(lbl_1_bss_798, &sp14); - sp8 = sp14; - sp8.z += 100.0f; - if (fn_1_CB44(&sp8, 10.0f) == 1) { - BoardPlayerMotionShiftSet(lbl_1_bss_798, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - temp_r29->unk1C = 90; - lbl_1_bss_710->work[0] = 1; - lbl_1_bss_714[lbl_1_bss_730]->work[2] = 3; - temp_r31 = lbl_1_bss_714[lbl_1_bss_730]->data; - Hu3DModelAttrReset(lbl_1_bss_750, HU3D_ATTR_DISPOFF); - Hu3DModelPosSet(lbl_1_bss_750, sp14.x, sp14.y, sp14.z); - temp_r31->unk20.x = 1.4f; - temp_r31->unk20.y = 1.4f; - temp_r31->unk20.z = 1.4f; - temp_r31->unk2C.x = 0.055999998f; - temp_r31->unk2C.y = 0.08088889f; - temp_r31->unk2C.z = 0.055999998f; - temp_r31->unk38 = 1.0f; - temp_r31->unk3C = 0.0f; - Hu3DModelScaleSet(lbl_1_bss_750, 1.4f, 1.4f, 1.4f); - arg0->func = fn_1_BF00; + work = obj->data; + BoardPlayerPosGet(spaceAmidaPlayerNo, &playerPos); + kemuriPos = playerPos; + kemuriPos.z += 100.0f; + if (SpaceAmidaPlayerRotAdd(&kemuriPos, 10.0f) == 1) { + BoardPlayerMotionShiftSet(spaceAmidaPlayerNo, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + work->waitTime = 90; + spaceAmidaEffObj->work[0] = 1; + rocketObj[spaceAmidaPath]->work[2] = 3; + rocketWork = rocketObj[spaceAmidaPath]->data; + Hu3DModelAttrReset(kemuriMdlId, HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(kemuriMdlId, playerPos.x, playerPos.y, playerPos.z); + rocketWork->kemuriScale.x = 1.4f; + rocketWork->kemuriScale.y = 1.4f; + rocketWork->kemuriScale.z = 1.4f; + rocketWork->kemuriScaleVel.x = 0.055999998f; + rocketWork->kemuriScaleVel.y = 0.08088889f; + rocketWork->kemuriScaleVel.z = 0.055999998f; + rocketWork->kemuriTPLvl = 1.0f; + rocketWork->unk3C = 0.0f; + Hu3DModelScaleSet(kemuriMdlId, 1.4f, 1.4f, 1.4f); + obj->func = SpaceAmidaRocketWait; } } -static void fn_1_BF00(omObjData *arg0) +static void SpaceAmidaRocketWait(omObjData *obj) { - Bss720Data *temp_r31; + SpaceAmidaGameWork *work; - temp_r31 = arg0->data; - if (temp_r31->unk1C == 0) { - lbl_1_bss_714[lbl_1_bss_730]->work[2] = 4; - arg0->func = fn_1_BF68; + work = obj->data; + if (work->waitTime == 0) { + rocketObj[spaceAmidaPath]->work[2] = 4; + obj->func = SpaceAmidaRocketUp; } else { - temp_r31->unk1C--; + work->waitTime--; } } -static void fn_1_BF68(omObjData *arg0) +static void SpaceAmidaRocketUp(omObjData *obj) { - Bss720Data *sp8; + SpaceAmidaGameWork *work; - sp8 = arg0->data; - if (lbl_1_bss_714[lbl_1_bss_730]->work[2] == 6) { - lbl_1_bss_75C = HuPrcCreate(fn_1_C000, 0x2004, 0x1000, 0); - lbl_1_bss_75C->user_data = arg0; - arg0->func = NULL; + work = obj->data; + if (rocketObj[spaceAmidaPath]->work[2] == 6) { + coinWinProc = HuPrcCreate(SpaceAmidaCoinWin, 0x2004, 0x1000, 0); + coinWinProc->user_data = obj; + obj->func = NULL; } } -static void fn_1_C000(void) +static void SpaceAmidaCoinWin(void) { - char sp8[16]; // array size may range between 1 and 16 (inclusive) - omObjData *temp_r30; - Bss720Data *temp_r31; + char mess[16]; // array size may range between 1 and 16 (inclusive) + omObjData *obj; + SpaceAmidaGameWork *work; BoardAudSeqFadeOut(1, 100); - sprintf(&sp8, "%d", lbl_1_bss_728); + sprintf(&mess, "%d", spaceAmidaCoinNum); BoardWinCreate(2, MAKE_MESSID(11, 6), 0); - BoardWinInsertMesSet(MAKE_MESSID_PTR(sp8), 0); + BoardWinInsertMesSet(MAKE_MESSID_PTR(mess), 0); BoardWinWait(); BoardWinKill(); - temp_r30 = HuPrcCurrentGet()->user_data; - temp_r31 = temp_r30->data; - temp_r31->unk10.x = 0.0f; - temp_r31->unk10.y = 10.0f; - temp_r31->unk10.z = 3.0f; - temp_r31->unk20 = 0.0f; - BoardPlayerMotionShiftSet(lbl_1_bss_798, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - temp_r30->func = fn_1_C0FC; + obj = HuPrcCurrentGet()->user_data; + work = obj->data; + work->jumpDir.x = 0.0f; + work->jumpDir.y = 10.0f; + work->jumpDir.z = 3.0f; + work->jumpTime = 0.0f; + BoardPlayerMotionShiftSet(spaceAmidaPlayerNo, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + obj->func = SpaceAmidaJumpDown; HuPrcKill(NULL); while (TRUE) { HuPrcVSleep(); } } -static void fn_1_C0FC(omObjData *arg0) +static void SpaceAmidaJumpDown(omObjData *obj) { - Bss720Data *temp_r31; - Vec sp8; + SpaceAmidaGameWork *work; + Vec pos; - temp_r31 = arg0->data; - BoardPlayerPosGet(lbl_1_bss_798, &sp8); - sp8.x += temp_r31->unk10.x; - sp8.y += temp_r31->unk10.y - 0.029166667f * temp_r31->unk20 * temp_r31->unk20; - sp8.z += temp_r31->unk10.z; - temp_r31->unk20 += 1.0f; - if (sp8.y <= lbl_1_bss_738.y) { - BoardPlayerMotionShiftSet(lbl_1_bss_798, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); - sp8.y = lbl_1_bss_738.y; - lbl_1_bss_75C = HuPrcCreate(fn_1_C25C, 0x2004, 0x1000, 0); - lbl_1_bss_75C->user_data = arg0; - arg0->func = NULL; + work = obj->data; + BoardPlayerPosGet(spaceAmidaPlayerNo, &pos); + pos.x += work->jumpDir.x; + pos.y += work->jumpDir.y - 0.029166667f * work->jumpTime * work->jumpTime; + pos.z += work->jumpDir.z; + work->jumpTime += 1.0f; + if (pos.y <= spaceAmidaPos.y) { + BoardPlayerMotionShiftSet(spaceAmidaPlayerNo, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + pos.y = spaceAmidaPos.y; + coinWinProc = HuPrcCreate(SpaceAmidaCoinRainMain, 0x2004, 0x1000, 0); + coinWinProc->user_data = obj; + obj->func = NULL; } - BoardPlayerPosSetV(lbl_1_bss_798, &sp8); + BoardPlayerPosSetV(spaceAmidaPlayerNo, &pos); } -static void fn_1_C25C(void) +static void SpaceAmidaCoinRainMain(void) { - Vec sp11C[20]; - Vec sp2C[20]; - Vec sp20; - Vec sp14; - Vec sp8; - float var_f31; - s16 var_r30; + Vec coinPos[20]; + Vec coinRot[20]; + Vec playerPos; + Vec scale; + Vec coinEffPos; + float velY; + s16 coinNum; s16 i; - var_r30 = 0; - BoardPlayerPosGet(lbl_1_bss_798, &sp20); - sp14.x = sp14.y = sp14.z = 1.0f; - for (i = 0; i < lbl_1_bss_728; i++) { - BoardModelVisibilitySet(lbl_1_bss_760[i], 1); - sp11C[i] = sp20; - sp11C[i].y += 600.0f + i * 120; - sp11C[i].x += -25.0f + 50.0f * frand8() * 0.003921569f; - sp11C[i].z += -25.0f + 50.0f * frand8() * 0.003921569f; - sp2C[i].x = sp2C[i].z = 0.0f; - sp2C[i].y = 360.0f * frand8() * 0.003921569f; - BoardModelPosSetV(lbl_1_bss_760[i], &sp11C[i]); - BoardModelScaleSetV(lbl_1_bss_760[i], &sp14); - BoardModelRotSetV(lbl_1_bss_760[i], &sp2C[i]); + coinNum = 0; + BoardPlayerPosGet(spaceAmidaPlayerNo, &playerPos); + scale.x = scale.y = scale.z = 1.0f; + for (i = 0; i < spaceAmidaCoinNum; i++) { + BoardModelVisibilitySet(coinMdlId[i], 1); + coinPos[i] = playerPos; + coinPos[i].y += 600.0f + i * 120; + coinPos[i].x += -25.0f + 50.0f * frand8() * 0.003921569f; + coinPos[i].z += -25.0f + 50.0f * frand8() * 0.003921569f; + coinRot[i].x = coinRot[i].z = 0.0f; + coinRot[i].y = 360.0f * frand8() * 0.003921569f; + BoardModelPosSetV(coinMdlId[i], &coinPos[i]); + BoardModelScaleSetV(coinMdlId[i], &scale); + BoardModelRotSetV(coinMdlId[i], &coinRot[i]); } - var_f31 = -1.0f; + velY = -1.0f; while (TRUE) { - for (i = 0; i < lbl_1_bss_728; i++) { - if (i >= var_r30) { - sp11C[i].y += var_f31; - BoardModelPosSetV(lbl_1_bss_760[i], &sp11C[i]); - sp2C[i].y += 45.0f; - if (sp2C[i].y >= 360.0f) { - sp2C[i].y -= 360.0f; + for (i = 0; i < spaceAmidaCoinNum; i++) { + if (i >= coinNum) { + coinPos[i].y += velY; + BoardModelPosSetV(coinMdlId[i], &coinPos[i]); + coinRot[i].y += 45.0f; + if (coinRot[i].y >= 360.0f) { + coinRot[i].y -= 360.0f; } - BoardModelRotSetV(lbl_1_bss_760[i], &sp2C[i]); - if (sp11C[i].y <= sp20.y + 80.0f) { - sp8 = sp11C[i]; - CharModelCoinEffectCreate(1, &sp8); - BoardModelVisibilitySet(lbl_1_bss_760[i], 0); - var_r30++; - BoardPlayerCoinsAdd(lbl_1_bss_798, 1); + BoardModelRotSetV(coinMdlId[i], &coinRot[i]); + if (coinPos[i].y <= playerPos.y + 80.0f) { + Vec pos = coinPos[i]; + CharModelCoinEffectCreate(1, &pos); + BoardModelVisibilitySet(coinMdlId[i], 0); + coinNum++; + BoardPlayerCoinsAdd(spaceAmidaPlayerNo, 1); HuAudFXPlay(7); - omVibrate(lbl_1_bss_798, 0xC, 6, 6); + omVibrate(spaceAmidaPlayerNo, 0xC, 6, 6); } } } - var_f31 *= 1.05f; - if (var_f31 < -20.0f) { - var_f31 = -20.0f; + velY *= 1.05f; + if (velY < -20.0f) { + velY = -20.0f; } - if (var_r30 == lbl_1_bss_728) { - BoardPlayerMotionShiftSet(lbl_1_bss_798, 7, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + if (coinNum == spaceAmidaCoinNum) { + BoardPlayerMotionShiftSet(spaceAmidaPlayerNo, 7, 0.0f, 10.0f, HU3D_MOTATTR_NONE); break; } HuPrcVSleep(); } - while (!BoardPlayerMotionEndCheck(lbl_1_bss_798)) { + while (!BoardPlayerMotionEndCheck(spaceAmidaPlayerNo)) { HuPrcVSleep(); } - lbl_1_bss_75C = HuPrcCreate(fn_1_C844, 0x2004, 0x1000, 0); - lbl_1_bss_75C->user_data = HuPrcCurrentGet()->user_data; + coinWinProc = HuPrcCreate(SpaceAmidaReturnWinMain, 0x2004, 0x1000, 0); + coinWinProc->user_data = HuPrcCurrentGet()->user_data; HuPrcKill(NULL); while (TRUE) { HuPrcVSleep(); } } -static void fn_1_C844(void) +static void SpaceAmidaReturnWinMain(void) { - omObjData *var_r31; + omObjData *obj; BoardWinCreate(2, MAKE_MESSID(11, 7), 0); BoardWinWait(); BoardWinKill(); - var_r31 = HuPrcCurrentGet()->user_data; - var_r31->func = fn_1_C894; + obj = HuPrcCurrentGet()->user_data; + obj->func = SpaceAmidaGameStop; HuPrcKill(NULL); while (TRUE) { HuPrcVSleep(); } } -static void fn_1_C894(omObjData *arg0) +static void SpaceAmidaGameStop(omObjData *obj) { - float temp_f31; - - lbl_1_bss_72A = 1; - BoardMGExit(); - temp_f31 = BoardModelMotionTimeGet(lbl_1_bss_796); - lbl_1_bss_754 = temp_f31; - BoardModelMotionStart(lbl_1_bss_796, 0, 0); - BoardModelMotionTimeSet(lbl_1_bss_796, temp_f31); - BoardModelMotionSpeedSet(lbl_1_bss_796, -1.0f); - omDelObjEx(HuPrcCurrentGet(), arg0); + SpaceAmidaStop(); + omDelObjEx(HuPrcCurrentGet(), obj); } -static void fn_1_C94C(Vec *arg0, Vec *arg1, Vec *arg2) +static void SpaceAmidaDirGet(Vec *b, Vec *a, Vec *result) { - VECSubtract(arg1, arg0, arg2); - VECNormalize(arg2, arg2); + VECSubtract(a, b, result); + VECNormalize(result, result); } -static float fn_1_C998(Vec *arg0) +static float SpaceAmidaAngleGet(Vec *dir) { - float temp_f31; + float angle; - if (arg0->x || arg0->z) { - if (arg0->x == 0.0f) { - if (arg0->z > 0.0f) { + if (dir->x || dir->z) { + if (dir->x == 0.0f) { + if (dir->z > 0.0f) { return 0.0f; } else { return 180.0f; } } - if (arg0->z == 0.0f) { - if (arg0->x > 0.0f) { + if (dir->z == 0.0f) { + if (dir->x > 0.0f) { return 90.0f; } else { return 270.0f; } } - temp_f31 = atan2d(arg0->z, arg0->x); - if (arg0->z < 0.0f) { - temp_f31 = 90.0f - temp_f31; + angle = atan2d(dir->z, dir->x); + if (dir->z < 0.0f) { + angle = 90.0f - angle; } else { - temp_f31 = 90.0f - temp_f31; - if (temp_f31 < 0.0f) { - temp_f31 += 360.0f; + angle = 90.0f - angle; + if (angle < 0.0f) { + angle += 360.0f; } } - return temp_f31; + return angle; } return -1.0f; } -static u32 fn_1_CB44(Vec *arg0, float arg1) +static u32 SpaceAmidaPlayerRotAdd(Vec *rocketPos, float delta) { - Vec sp24; - Vec sp18; - Vec spC; - float var_f28; - float var_f30; - float var_f31; + Vec dir; + Vec playerPos; + Vec playerRot; + float rocketAngle; + float angleDelta; + float rotY; - BoardPlayerPosGet(lbl_1_bss_798, &sp18); - VECSubtract(arg0, &sp18, &sp24); - VECNormalize(&sp24, &sp24); - var_f28 = fn_1_C998(&sp24); - BoardPlayerRotGet(lbl_1_bss_798, &spC); - var_f31 = spC.y; - var_f30 = var_f28 - var_f31; - if (arg1 == 0.0f) { - var_f31 = var_f28; + BoardPlayerPosGet(spaceAmidaPlayerNo, &playerPos); + SpaceAmidaDirGet(&playerPos, rocketPos, &dir); + rocketAngle = SpaceAmidaAngleGet(&dir); + BoardPlayerRotGet(spaceAmidaPlayerNo, &playerRot); + rotY = playerRot.y; + angleDelta = rocketAngle - rotY; + if (delta == 0.0f) { + rotY = rocketAngle; } - else if (fabs(var_f30) > arg1) { - if (var_f30 < 0.0f) { - var_f30 += 360.0f; + else if (fabs(angleDelta) > delta) { + if (angleDelta < 0.0f) { + angleDelta += 360.0f; } - if (var_f30 < 180.0f) { - if (var_f30 > arg1) { - var_f31 += arg1; + if (angleDelta < 180.0f) { + if (angleDelta > delta) { + rotY += delta; } else { - var_f31 += var_f30; + rotY += angleDelta; } } - else if (360.0f - var_f30 > arg1) { - var_f31 -= arg1; + else if (360.0f - angleDelta > delta) { + rotY -= delta; } else { - var_f31 -= 360.0f - var_f30; + rotY -= 360.0f - angleDelta; } } else { - var_f31 = var_f28; + rotY = rocketAngle; } - if (var_f31 >= 360.0f) { - var_f31 -= 360.0f; + if (rotY >= 360.0f) { + rotY -= 360.0f; } - if (var_f31 < 0.0f) { - var_f31 += 360.0f; + if (rotY < 0.0f) { + rotY += 360.0f; } - BoardPlayerRotYSet(lbl_1_bss_798, var_f31); - if (var_f31 == var_f28) { - return 1; + BoardPlayerRotYSet(spaceAmidaPlayerNo, rotY); + if (rotY == rocketAngle) { + return TRUE; } else { - return 0; + return FALSE; } } -static void fn_1_CEC4(void) +static void SpaceAmidaEffCreate(void) { - lbl_1_bss_70C = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_W01, 20)); - lbl_1_bss_710 = omAddObjEx(boardObjMan, 0x101, 1, 0, -1, fn_1_D07C); - lbl_1_bss_710->data = HuMemDirectMallocNum(HEAP_SYSTEM, 12, MEMORY_DEFAULT_NUM); - lbl_1_bss_710->model[0] = Hu3DParticleCreate(lbl_1_bss_70C, 0x320); - Hu3DParticleColSet(lbl_1_bss_710->model[0], 0xFF, 0, 0); - Hu3DParticleScaleSet(lbl_1_bss_710->model[0], 5.0f); - Hu3DParticleHookSet(lbl_1_bss_710->model[0], fn_1_D114); - Hu3DParticleBlendModeSet(lbl_1_bss_710->model[0], 1); - Hu3DModelAttrSet(lbl_1_bss_710->model[0], HU3D_ATTR_DISPOFF); - lbl_1_bss_710->work[0] = 0; + spaceAmidaEffAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_W01, 20)); + spaceAmidaEffObj = omAddObjEx(boardObjMan, 0x101, 1, 0, -1, SpaceAmidaEffUpdate); + spaceAmidaEffObj->data = HuMemDirectMallocNum(HEAP_SYSTEM, 12, MEMORY_DEFAULT_NUM); + spaceAmidaEffObj->model[0] = Hu3DParticleCreate(spaceAmidaEffAnim, 0x320); + Hu3DParticleColSet(spaceAmidaEffObj->model[0], 255, 0, 0); + Hu3DParticleScaleSet(spaceAmidaEffObj->model[0], 5.0f); + Hu3DParticleHookSet(spaceAmidaEffObj->model[0], SpaceAmidaEffParticleHook); + Hu3DParticleBlendModeSet(spaceAmidaEffObj->model[0], 1); + Hu3DModelAttrSet(spaceAmidaEffObj->model[0], HU3D_ATTR_DISPOFF); + spaceAmidaEffObj->work[0] = 0; } -static void fn_1_D034(void) +static void SpaceAmidaEffKill(void) { - Hu3DModelKill(lbl_1_bss_710->model[0]); - omDelObjEx(HuPrcCurrentGet(), lbl_1_bss_710); + Hu3DModelKill(spaceAmidaEffObj->model[0]); + omDelObjEx(HuPrcCurrentGet(), spaceAmidaEffObj); } -static void fn_1_D07C(omObjData *arg0) +static void SpaceAmidaEffUpdate(omObjData *obj) { - void *sp8; + void *work; - sp8 = arg0->data; - switch (arg0->work[0]) { + work = obj->data; + switch (obj->work[0]) { case 0: break; case 1: - arg0->work[0] = 2; - Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); - Hu3DModelScaleSet(arg0->model[0], 10.0f, 10.0f, 10.0f); + obj->work[0] = 2; + Hu3DModelAttrReset(obj->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(obj->model[0], 10.0f, 10.0f, 10.0f); break; case 2: break; } } -static void fn_1_D114(ModelData *model, ParticleData *particle, Mtx matrix) +static void SpaceAmidaEffParticleHook(ModelData *model, ParticleData *particle, Mtx matrix) { - Bss714Data *temp_r28; - HsfanimStruct01 *var_r31; - Vec sp8; - float temp_f31; + RocketWork *work; + HsfanimStruct01 *particleDataP; + Vec pos; + float size; s32 i; s32 j; - s32 temp_r26; + s32 relSize; - BoardModelPosGet(lbl_1_bss_714[lbl_1_bss_730]->work[0], &sp8); - temp_r28 = lbl_1_bss_714[lbl_1_bss_730]->data; + BoardModelPosGet(rocketObj[spaceAmidaPath]->work[0], &pos); + work = rocketObj[spaceAmidaPath]->data; if (particle->unk_34 == 0) { - var_r31 = particle->unk_48; - for (i = 0; i < particle->unk_30; i++, var_r31++) { - var_r31->unk2C = 0.0f; + particleDataP = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, particleDataP++) { + particleDataP->unk2C = 0.0f; } particle->unk_1C = (void *)1; } - if (temp_r28->unk1C > 0.0f) { - for (i = 0; i < 80.0f * temp_r28->unk1C; i++) { - var_r31 = particle->unk_48; - for (j = 0; j < particle->unk_30; j++, var_r31++) { - if (var_r31->unk2C == 0.0f) { + if (work->kemuriSize > 0.0f) { + for (i = 0; i < 80.0f * work->kemuriSize; i++) { + particleDataP = particle->unk_48; + for (j = 0; j < particle->unk_30; j++, particleDataP++) { + if (particleDataP->unk2C == 0.0f) { break; } } if (j != particle->unk_30) { - temp_r26 = frand16(); - temp_f31 = (-15.0f + 30.0f * (temp_r26 / 65536.0f)) * temp_r28->unk1C; - var_r31->unk08.x = sp8.x + temp_f31; - var_r31->unk08.y = sp8.y; - var_r31->unk08.z = sp8.z; - var_r31->unk14.x = 255.0f; - var_r31->unk14.y = 155.0f; - var_r31->unk14.z = 55.0f; - var_r31->unk40.a = 0xFF; - var_r31->unk20 = 0.0f; - var_r31->unk24 = temp_r28->unk1C * (-3.0 + (2.0 * (fabs(temp_f31) / 15.0))); - var_r31->unk28 = 0.0f; - var_r31->unk2C = 7.3f; + relSize = frand16(); + size = (-15.0f + 30.0f * (relSize / 65536.0f)) * work->kemuriSize; + particleDataP->unk08.x = pos.x + size; + particleDataP->unk08.y = pos.y; + particleDataP->unk08.z = pos.z; + particleDataP->unk14.x = 255.0f; + particleDataP->unk14.y = 155.0f; + particleDataP->unk14.z = 55.0f; + particleDataP->unk40.a = 0xFF; + particleDataP->unk20 = 0.0f; + particleDataP->unk24 = work->kemuriSize * (-3.0 + (2.0 * (fabs(size) / 15.0))); + particleDataP->unk28 = 0.0f; + particleDataP->unk2C = 7.3f; } } } - var_r31 = particle->unk_48; - for (i = 0; i < particle->unk_30; i++, var_r31++) { - if (var_r31->unk2C == 0.0f) { + particleDataP = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, particleDataP++) { + if (particleDataP->unk2C == 0.0f) { continue; } - var_r31->unk34.x = var_r31->unk08.x; - var_r31->unk34.y = var_r31->unk08.y; - var_r31->unk34.z = var_r31->unk08.z; - var_r31->unk08.x += var_r31->unk20; - var_r31->unk08.y += var_r31->unk24; - var_r31->unk08.z += var_r31->unk28; - if (var_r31->unk08.y <= lbl_1_bss_738.y) { - var_r31->unk08.y = lbl_1_bss_738.y; - var_r31->unk24 = -var_r31->unk24 - 0.3f; - if (var_r31->unk24 < 0.0f) { - var_r31->unk24 = 0.0f; + particleDataP->unk34.x = particleDataP->unk08.x; + particleDataP->unk34.y = particleDataP->unk08.y; + particleDataP->unk34.z = particleDataP->unk08.z; + particleDataP->unk08.x += particleDataP->unk20; + particleDataP->unk08.y += particleDataP->unk24; + particleDataP->unk08.z += particleDataP->unk28; + if (particleDataP->unk08.y <= spaceAmidaPos.y) { + particleDataP->unk08.y = spaceAmidaPos.y; + particleDataP->unk24 = -particleDataP->unk24 - 0.3f; + if (particleDataP->unk24 < 0.0f) { + particleDataP->unk24 = 0.0f; } - temp_r26 = 80.0f * (2.0f * ((sp8.x - var_r31->unk08.x) / 15.0f) - rand8() / 255.0f); - var_r31->unk20 = 8.0 * sind(temp_r26); - var_r31->unk28 = 8.0 * cosd(temp_r26); + relSize = 80.0f * (2.0f * ((pos.x - particleDataP->unk08.x) / 15.0f) - rand8() / 255.0f); + particleDataP->unk20 = 8.0 * sind(relSize); + particleDataP->unk28 = 8.0 * cosd(relSize); } - var_r31->unk24 -= 0.35f; - if ((var_r31->unk14.x -= 25.5f) < 0.0f) { - var_r31->unk14.x = 0.0f; + particleDataP->unk24 -= 0.35f; + if ((particleDataP->unk14.x -= 25.5f) < 0.0f) { + particleDataP->unk14.x = 0.0f; } - if ((var_r31->unk14.y -= 36.42857f) < 0.0f) { - var_r31->unk14.y = 0.0f; + if ((particleDataP->unk14.y -= 36.42857f) < 0.0f) { + particleDataP->unk14.y = 0.0f; } - if ((var_r31->unk14.z -= 63.75f) < 0.0f) { - var_r31->unk14.z = 0.0f; + if ((particleDataP->unk14.z -= 63.75f) < 0.0f) { + particleDataP->unk14.z = 0.0f; } - var_r31->unk40.r = var_r31->unk14.x; - var_r31->unk40.g = var_r31->unk14.y; - var_r31->unk40.b = var_r31->unk14.z; - if (var_r31->unk40.r == 0 && var_r31->unk40.g == 0 && var_r31->unk40.b == 0) { - var_r31->unk2C = 0.0f; + particleDataP->unk40.r = particleDataP->unk14.x; + particleDataP->unk40.g = particleDataP->unk14.y; + particleDataP->unk40.b = particleDataP->unk14.z; + if (particleDataP->unk40.r == 0 && particleDataP->unk40.g == 0 && particleDataP->unk40.b == 0) { + particleDataP->unk2C = 0.0f; } } } diff --git a/src/REL/w01Dll/mg_item.c b/src/REL/w01Dll/mg_item.c index 6830c410..6a61927a 100755 --- a/src/REL/w01Dll/mg_item.c +++ b/src/REL/w01Dll/mg_item.c @@ -25,63 +25,63 @@ #include "dolphin.h" #include "ext_math.h" -static void fn_1_E100(void); -static void fn_1_E154(void); -static void fn_1_E2B8(omObjData *arg0); -static void fn_1_E44C(omObjData *arg0); -static void fn_1_E914(omObjData *arg0); -static void fn_1_ECD4(omObjData *arg0); -static void fn_1_EEA0(omObjData *arg0, u16 *arg1); -static void fn_1_EED8(omObjData *arg0); -static void fn_1_F09C(omObjData *arg0); -static void fn_1_F348(omObjData *arg0); -static void fn_1_F3F8(omObjData *arg0); -static void fn_1_F6E8(omObjData *arg0); -static void fn_1_F890(omObjData *arg0); -static void fn_1_FA1C(omObjData *arg0); -static void fn_1_FABC(omObjData *arg0); -static void fn_1_FB58(void); -static void fn_1_FC3C(omObjData *arg0); -static void fn_1_FCEC(void); -static void fn_1_FD3C(omObjData *arg0); -static void fn_1_FE44(omObjData *arg0); -static void fn_1_FED0(omObjData *arg0); -static s16 fn_1_1001C(u32 arg0); -static void fn_1_101B8(s16 arg0); -static void fn_1_10664(omObjData *arg0); -static void fn_1_10820(omObjData *arg0); -static void fn_1_10AE8(omObjData *arg0); -static float fn_1_10BB0(u32 arg0); -static void fn_1_10CF0(u32 arg0); -static float fn_1_10EB8(Vec *arg0); -static void fn_1_11064(ModelData *model, ParticleData *particle, Mtx matrix); -static void fn_1_11484(ModelData *model, ParticleData *particle, Mtx matrix); +static void RoundItemEnd(void); +static void RoundItemClose(void); +static void RoundItemMainUpdate(omObjData *obj); +static void RoundItemUmaStop(omObjData *obj); +static void RoundItemPlayerJump(omObjData *obj); +static void RoundItemStartWait(omObjData *obj); +static void RoundItemComInputGet(omObjData *obj, u16 *btn); +static void RoundItemInputWait(omObjData *obj); +static void RoundItemStop(omObjData *obj); +static void RoundItemLightFlicker(omObjData *obj); +static void RoundItemUmaJumpWait(omObjData *obj); +static void RoundItemUmaJump(omObjData *obj); +static void RoundItemRotatePlayer(omObjData *obj); +static void RoundItemStreamWait(omObjData *obj); +static void RoundItemWinWait(omObjData *obj); +static void ItemGetWinExec(void); +static void ItemGetShrinkWait(omObjData *obj); +static void ItemGetReturnWinExec(void); +static void RoundItemGameClose(omObjData *obj); +static void RoundItemGameEnd(omObjData *obj); +static void RoundItemItemUpdate(omObjData *obj); +static s16 RoundItemItemGet(u32 umaNo); +static void ItemGetCreate(s16 itemNo); +static void ItemGetObjUpdate(omObjData *obj); +static void ItemGetPlayerMove(omObjData *obj); +static void ItemGetShrink(omObjData *obj); +static float RoundItemUmaRotYGet(u32 umaNo); +static void RoundItemUmaPlayerSet(u32 umaNo); +static float RoundItemAngleGet(Vec *arg0); +static void ItemGetEff1Hook(ModelData *model, ParticleData *particle, Mtx matrix); +static void ItemGetEff2Hook(ModelData *model, ParticleData *particle, Mtx matrix); -static void *lbl_1_bss_818; -static Vec lbl_1_bss_80C; -static omObjData *lbl_1_bss_7FC[4]; -static omObjData *lbl_1_bss_7F8; -static omObjData *lbl_1_bss_7F4; -static omObjData *lbl_1_bss_7F0; -static float lbl_1_bss_7EC; -static float lbl_1_bss_7E8; -static s32 lbl_1_bss_7E4; -static Vec lbl_1_bss_7D8; -static s16 lbl_1_bss_7D6; -static s16 lbl_1_bss_7D4; -static s16 lbl_1_bss_7D2; -static s16 lbl_1_bss_7D0; -static Vec lbl_1_bss_7C4; +static void *itemAnim; +static Vec roundItemPos; +static omObjData *itemObj[4]; +static omObjData *roundItemUmaObj; +static omObjData *roundItemMainObj; +static omObjData *itemGetObj; +static float umaSpeed; +static float borderSpeed; +static s32 roundItemPlayer; +static Vec umaPos; +static s16 seqStartId; +static s16 timerSeqId; +static s16 timerSec; +static s16 timerFrame; +static Vec roundItemPlayerPos; static s32 lbl_1_bss_7C0_pad; -static s32 lbl_1_bss_7BC; -static s32 lbl_1_bss_7B8; -static s16 lbl_1_bss_7B4; +static s32 itemGetMotId; +static s32 jumpMotId; +static s16 umaStopF; static s32 lbl_1_bss_7B0_pad; -static s32 lbl_1_bss_7AC; -static s16 lbl_1_bss_7AA; -static s16 lbl_1_bss_7A8; -static s32 lbl_1_bss_7A4; -static AnimData *lbl_1_bss_7A0; +static s32 itemGetSeNo; +static s16 roundItemStopF; +static s16 umaStopTimer; +static s32 roundItemStreamId; +static AnimData *roundItemEffAnim; #if VERSION_JP #define MDL_ID_SHIFT 0 @@ -89,7 +89,7 @@ static AnimData *lbl_1_bss_7A0; #define MDL_ID_SHIFT 1 #endif -static s32 lbl_1_data_F08[] = { +static s32 itemMdlTbl[] = { DATA_MAKE_NUM(DATADIR_BOARD, 108 + MDL_ID_SHIFT), DATA_MAKE_NUM(DATADIR_BOARD, 109 + MDL_ID_SHIFT), DATA_MAKE_NUM(DATADIR_BOARD, 110 + MDL_ID_SHIFT), @@ -106,884 +106,856 @@ static s32 lbl_1_data_F08[] = { DATA_MAKE_NUM(DATADIR_BOARD, 122 + MDL_ID_SHIFT), }; -static s32 lbl_1_data_F40[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 23), DATA_MAKE_NUM(DATADIR_PEACHMOT, 23), +static s32 itemGetMotTbl[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 23), DATA_MAKE_NUM(DATADIR_PEACHMOT, 23), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 23), DATA_MAKE_NUM(DATADIR_WARIOMOT, 23), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 23), DATA_MAKE_NUM(DATADIR_DAISYMOT, 23), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 23) }; -static s32 lbl_1_data_F60[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 64), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 64), DATA_MAKE_NUM(DATADIR_PEACHMOT, 64), +static s32 jumpMotTbl[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 64), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 64), DATA_MAKE_NUM(DATADIR_PEACHMOT, 64), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 64), DATA_MAKE_NUM(DATADIR_WARIOMOT, 64), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 64), DATA_MAKE_NUM(DATADIR_DAISYMOT, 64), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 64) }; -void fn_1_D740(s16 *arg0) +void RoundItemInit(s16 *itemTbl) { - s16 sp10[14]; - s16 sp8[4]; - float temp_f30; - float temp_f29; - float var_f31; - s32 var_r28; - s32 var_r30; + s16 itemOrderTbl[14]; + s16 itemMdlId[4]; + float borderTime; + float borderMaxTime; + float itemAngle; + s32 itemOrderNum; + s32 itemNum; s32 i; s32 j; - lbl_1_bss_818 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_W01, 28), MEMORY_DEFAULT_NUM, HEAP_DATA); - BoardModelPosGet(lbl_1_bss_6C4[16], &lbl_1_bss_80C); - sp8[0] = BoardModelIDGet(lbl_1_bss_6C4[19]); - BoardModelVisibilitySet(lbl_1_bss_6C4[19], 1); + itemAnim = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_W01, 28), MEMORY_DEFAULT_NUM, HEAP_DATA); + BoardModelPosGet(mapObjMdlId[MAPOBJ_ROUNDITEM], &roundItemPos); + itemMdlId[0] = BoardModelIDGet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM]); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM], 1); for (i = 1; i < 4; i++) { - sp8[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_W01, 24)); + itemMdlId[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_W01, 24)); } - var_r30 = 0; + itemNum = 0; for (i = 0; i < 4; i++) { - lbl_1_bss_7FC[i] = omAddObjEx(boardObjMan, 0x165, 2, 0, -1, NULL); - if (arg0[i] != -1) { - lbl_1_bss_7FC[var_r30++]->work[1] = arg0[i]; + itemObj[i] = omAddObjEx(boardObjMan, 0x165, 2, 0, -1, NULL); + if (itemTbl[i] != -1) { + itemObj[itemNum++]->work[1] = itemTbl[i]; } } - while (var_r30 != 4) { - var_r28 = 0; + while (itemNum != 4) { + itemOrderNum = 0; for (i = 0; i < 14; i++) { - for (j = 0; j < var_r30; j++) { - if (i == lbl_1_bss_7FC[j]->work[1]) { + for (j = 0; j < itemNum; j++) { + if (i == itemObj[j]->work[1]) { break; } } - if (j == var_r30) { - sp10[var_r28++] = i; + if (j == itemNum) { + itemOrderTbl[itemOrderNum++] = i; } } - lbl_1_bss_7FC[var_r30++]->work[1] = sp10[rand8() % var_r28]; + itemObj[itemNum++]->work[1] = itemOrderTbl[rand8() % itemOrderNum]; } - temp_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[18]); - temp_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]); + borderTime = BoardModelMotionTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER]); + borderMaxTime = BoardModelMotionMaxTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER]); for (i = 0; i < 4; i++) { - lbl_1_bss_7FC[i]->model[0] = sp8[i]; - lbl_1_bss_7FC[i]->model[1] = Hu3DModelCreateFile(lbl_1_data_F08[lbl_1_bss_7FC[i]->work[1]]); - if (lbl_1_bss_7FC[i]->work[1] == 5) { - Hu3DData[lbl_1_bss_7FC[i]->model[1]].unk_F0[1][3] = -50.0f; + itemObj[i]->model[0] = itemMdlId[i]; + itemObj[i]->model[1] = Hu3DModelCreateFile(itemMdlTbl[itemObj[i]->work[1]]); + if (itemObj[i]->work[1] == 5) { + Hu3DData[itemObj[i]->model[1]].unk_F0[1][3] = -50.0f; } - if (lbl_1_bss_7FC[i]->work[1] == 11) { - Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], HU3D_MOTATTR_LOOP); + if (itemObj[i]->work[1] == 11) { + Hu3DModelAttrSet(itemObj[i]->model[1], HU3D_MOTATTR_LOOP); } - if (lbl_1_bss_7FC[i]->work[1] == 4) { - Hu3DMotionSpeedSet(lbl_1_bss_7FC[i]->model[1], 0.0f); + if (itemObj[i]->work[1] == 4) { + Hu3DMotionSpeedSet(itemObj[i]->model[1], 0.0f); } - Hu3DModelAttrReset(sp8[i], HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(lbl_1_bss_7FC[i]->model[1], HU3D_MOTATTR_PAUSE); - omSetTra(lbl_1_bss_7FC[i], lbl_1_bss_80C.x, lbl_1_bss_80C.y + 66.0f, lbl_1_bss_80C.z); - var_f31 = 90.0f - 90.0f * i + 360.0f * (temp_f30 / temp_f29); - if (var_f31 >= 360.0f) { - var_f31 -= 360.0f; + Hu3DModelAttrReset(itemMdlId[i], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(itemObj[i]->model[1], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(itemObj[i]->model[1], HU3D_MOTATTR_PAUSE); + omSetTra(itemObj[i], roundItemPos.x, roundItemPos.y + 66.0f, roundItemPos.z); + itemAngle = 90.0f - 90.0f * i + 360.0f * (borderTime / borderMaxTime); + if (itemAngle >= 360.0f) { + itemAngle -= 360.0f; } - if (var_f31 < 0.0f) { - var_f31 += 360.0f; + if (itemAngle < 0.0f) { + itemAngle += 360.0f; } - omSetRot(lbl_1_bss_7FC[i], 0.0f, var_f31, 0.0f); - lbl_1_bss_7FC[i]->work[0] = Hu3DAnimCreate(lbl_1_bss_818, lbl_1_bss_7FC[i]->model[0], "item01"); - Hu3DAnimAttrSet(lbl_1_bss_7FC[i]->work[0], 1); - lbl_1_bss_7FC[i]->work[2] = i; + omSetRot(itemObj[i], 0.0f, itemAngle, 0.0f); + itemObj[i]->work[0] = Hu3DAnimCreate(itemAnim, itemObj[i]->model[0], "item01"); + Hu3DAnimAttrSet(itemObj[i]->work[0], 1); + itemObj[i]->work[2] = i; } for (i = 0; i < 4; i++) { - Hu3DAnmNoSet(lbl_1_bss_7FC[i]->work[0], lbl_1_bss_7FC[i]->work[1]); + Hu3DAnmNoSet(itemObj[i]->work[0], itemObj[i]->work[1]); } } -void fn_1_DD84(void) +void RoundItemKill(void) { s32 i; for (i = 0; i < 4; i++) { if (i != 0) { - Hu3DModelKill(lbl_1_bss_7FC[i]->model[0]); + Hu3DModelKill(itemObj[i]->model[0]); } else { - BoardModelVisibilitySet(lbl_1_bss_6C4[19], 0); - Hu3DAnimKill(lbl_1_bss_7FC[i]->work[0]); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM], 0); + Hu3DAnimKill(itemObj[i]->work[0]); } - Hu3DModelKill(lbl_1_bss_7FC[i]->model[1]); - omDelObjEx(boardObjMan, lbl_1_bss_7FC[i]); + Hu3DModelKill(itemObj[i]->model[1]); + omDelObjEx(boardObjMan, itemObj[i]); } - if (lbl_1_bss_7A0) { - HuSprAnimKill(lbl_1_bss_7A0); - lbl_1_bss_7A0 = NULL; + if (roundItemEffAnim) { + HuSprAnimKill(roundItemEffAnim); + roundItemEffAnim = NULL; } } -void fn_1_DE94(void) +void RoundItemEventStart(void) { s32 i; - BoardModelPosGet(lbl_1_bss_6C4[16], &lbl_1_bss_80C); + BoardModelPosGet(mapObjMdlId[MAPOBJ_ROUNDITEM], &roundItemPos); for (i = 0; i < 4; i++) { - lbl_1_bss_7FC[i]->func = fn_1_FED0; + itemObj[i]->func = RoundItemItemUpdate; } - lbl_1_bss_7F4 = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, fn_1_E2B8); - lbl_1_bss_7F8 = omAddObjEx(boardObjMan, 0x133, 0, 0, -1, fn_1_E44C); - lbl_1_bss_7F8->work[3] = rand8() % 200 + 10; - lbl_1_bss_7E4 = GWSystem.player_curr; - BoardPlayerPosGet(lbl_1_bss_7E4, &lbl_1_bss_7C4); - lbl_1_bss_7EC = 1.0f; - lbl_1_bss_7E8 = 1.0f; - lbl_1_bss_7AA = 0; - lbl_1_bss_7BC = BoardPlayerMotionCreate(lbl_1_bss_7E4, lbl_1_data_F40[GWPlayer[lbl_1_bss_7E4].character]); - lbl_1_bss_7B8 = BoardPlayerMotionCreate(lbl_1_bss_7E4, lbl_1_data_F60[GWPlayer[lbl_1_bss_7E4].character]); - lbl_1_bss_7A0 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0)); - HuSprAnimLock(lbl_1_bss_7A0); - lbl_1_bss_7B4 = 0; + roundItemMainObj = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, RoundItemMainUpdate); + roundItemUmaObj = omAddObjEx(boardObjMan, 0x133, 0, 0, -1, RoundItemUmaStop); + roundItemUmaObj->work[3] = rand8() % 200 + 10; + roundItemPlayer = GWSystem.player_curr; + BoardPlayerPosGet(roundItemPlayer, &roundItemPlayerPos); + umaSpeed = 1.0f; + borderSpeed = 1.0f; + roundItemStopF = 0; + itemGetMotId = BoardPlayerMotionCreate(roundItemPlayer, itemGetMotTbl[GWPlayer[roundItemPlayer].character]); + jumpMotId = BoardPlayerMotionCreate(roundItemPlayer, jumpMotTbl[GWPlayer[roundItemPlayer].character]); + roundItemEffAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0)); + HuSprAnimLock(roundItemEffAnim); + umaStopF = 0; } -static void fn_1_E100(void) +static void RoundItemEnd(void) { - lbl_1_bss_7AA = 1; + roundItemStopF = 1; BoardMGExit(); HuAudFXPlay(0x40F); - BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0x40000004); + BoardModelMotionStart(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP], 0, HU3D_MOTATTR_REV); } -static void fn_1_E154(void) +static void RoundItemClose(void) { - fn_1_DD84(); - BoardPlayerMotionKill(lbl_1_bss_7E4, lbl_1_bss_7BC); - BoardPlayerMotionKill(lbl_1_bss_7E4, lbl_1_bss_7B8); - BoardModelVisibilitySet(lbl_1_bss_6C4[20], 0); + RoundItemKill(); + BoardPlayerMotionKill(roundItemPlayer, itemGetMotId); + BoardPlayerMotionKill(roundItemPlayer, jumpMotId); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_LIGHT], 0); BoardMGDoneFlagSet(0); } -static void fn_1_E2B8(omObjData *arg0) +static void RoundItemMainUpdate(omObjData *obj) { - if (lbl_1_bss_7AA == 1 && BoardMGDoneFlagGet() == 1) { - fn_1_E154(); - omDelObjEx(HuPrcCurrentGet(), arg0); + if (roundItemStopF == 1 && BoardMGDoneFlagGet() == 1) { + RoundItemClose(); + omDelObjEx(HuPrcCurrentGet(), obj); } } -static char *lbl_1_data_F9C[] = { "uma1", "uma2", "uma3", "uma4" }; +static char *umaHookTbl[] = { "uma1", "uma2", "uma3", "uma4" }; -static void fn_1_E44C(omObjData *arg0) +static void RoundItemUmaStop(omObjData *obj) { - Vec sp18; - Vec spC; - float temp_f27; - float var_f29; - float temp_f28; - float var_f26; - float var_f24; + Vec playerPos; + Vec objPos; + float umaDist; + float motTime; + float motMaxTime; + float umaMinDist; s32 i; - temp_f28 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[17]); - var_f29 = BoardModelMotionTimeGet(lbl_1_bss_6C4[17]); - if (var_f29 >= temp_f28) { - var_f29 -= temp_f28; + motMaxTime = BoardModelMotionMaxTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]); + motTime = BoardModelMotionTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]); + if (motTime >= motMaxTime) { + motTime -= motMaxTime; } - var_f24 = fmod(var_f29, temp_f28 / 4); - if (var_f24 >= temp_f28 / 4 - 30.0f && lbl_1_bss_7B4 == 0) { - lbl_1_bss_7B4 = 1; - lbl_1_bss_7A8 = 90; + if (fmodf(motTime, motMaxTime / 4) >= motMaxTime / 4 - 30.0f && umaStopF == 0) { + umaStopF = 1; + umaStopTimer = 90; } - if (lbl_1_bss_7B4 != 0) { - lbl_1_bss_7EC *= 0.97f; - lbl_1_bss_7A8--; + if (umaStopF != 0) { + umaSpeed *= 0.97f; + umaStopTimer--; } - if (lbl_1_bss_7EC != 1.0f && lbl_1_bss_7A8 == 0) { - lbl_1_bss_7EC = 0.0f; + if (umaSpeed != 1.0f && umaStopTimer == 0) { + umaSpeed = 0.0f; BoardAudSeqPause(0, 1, 1000); - BoardPlayerPosGet(lbl_1_bss_7E4, &sp18); - Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[0], &spC); - var_f26 = VECSquareDistance(&sp18, &spC); - arg0->work[2] = 0; + BoardPlayerPosGet(roundItemPlayer, &playerPos); + Hu3DModelObjPosGet(BoardModelIDGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]), umaHookTbl[0], &objPos); + umaMinDist = VECSquareDistance(&playerPos, &objPos); + obj->work[2] = 0; for (i = 1; i < 4; i++) { - Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[i], &spC); - temp_f27 = VECSquareDistance(&sp18, &spC); - if (temp_f27 < var_f26) { - var_f26 = temp_f27; - arg0->work[2] = i; + Hu3DModelObjPosGet(BoardModelIDGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]), umaHookTbl[i], &objPos); + umaDist = VECSquareDistance(&playerPos, &objPos); + if (umaDist < umaMinDist) { + umaMinDist = umaDist; + obj->work[2] = i; } } - Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[arg0->work[2]], &lbl_1_bss_7D8); - VECSubtract(&lbl_1_bss_7D8, &sp18, &spC); - VECNormalize(&spC, &spC); - arg0->trans.x = spC.x; - arg0->trans.y = spC.y; - arg0->trans.z = spC.z; - arg0->rot.x = VECDistanceXZ(&lbl_1_bss_7D8, &sp18); - arg0->rot.y = 10.0f; - arg0->rot.z = sp18.y; - arg0->scale.x = 0.0f; - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); - arg0->func = fn_1_E914; + Hu3DModelObjPosGet(BoardModelIDGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]), umaHookTbl[obj->work[2]], &umaPos); + VECSubtract(&umaPos, &playerPos, &objPos); + VECNormalize(&objPos, &objPos); + obj->trans.x = objPos.x; + obj->trans.y = objPos.y; + obj->trans.z = objPos.z; + obj->rot.x = VECDistanceXZ(&umaPos, &playerPos); + obj->rot.y = 10.0f; + obj->rot.z = playerPos.y; + obj->scale.x = 0.0f; + BoardPlayerMotionShiftSet(roundItemPlayer, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); + obj->func = RoundItemPlayerJump; } - BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], lbl_1_bss_7EC); + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA], umaSpeed); } -static void fn_1_E914(omObjData *arg0) +static void RoundItemPlayerJump(omObjData *obj) { - Vec spC; + Vec pos; s32 i; - BoardPlayerPosGet(lbl_1_bss_7E4, &spC); - spC.x += arg0->trans.x * arg0->rot.x / 32.760002f; - spC.z += arg0->trans.z * arg0->rot.x / 32.760002f; - spC.y += arg0->rot.y - 0.016666668f * arg0->scale.x * arg0->scale.x; - arg0->scale.x += 1.0f; - if (VECDistanceXZ(&lbl_1_bss_7D8, &spC) < 2.0f) { - spC = lbl_1_bss_7D8; - BoardPlayerRotSet(lbl_1_bss_7E4, 0.0f, fn_1_10BB0(arg0->work[2]), 0.0f); - lbl_1_bss_7EC = 0.05f; - lbl_1_bss_7E8 = 0.05f; - BoardModelAttrReset(lbl_1_bss_6C4[18], 0x40000002); - BoardModelAttrSet(lbl_1_bss_6C4[18], 0x40000001); - BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], 0.0f); + BoardPlayerPosGet(roundItemPlayer, &pos); + pos.x += obj->trans.x * obj->rot.x / 32.760002f; + pos.z += obj->trans.z * obj->rot.x / 32.760002f; + pos.y += obj->rot.y - 0.016666668f * obj->scale.x * obj->scale.x; + obj->scale.x += 1.0f; + if (VECDistanceXZ(&umaPos, &pos) < 2.0f) { + pos = umaPos; + BoardPlayerRotSet(roundItemPlayer, 0.0f, RoundItemUmaRotYGet(obj->work[2]), 0.0f); + umaSpeed = 0.05f; + borderSpeed = 0.05f; + BoardModelAttrReset(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], HU3D_MOTATTR_PAUSE); + BoardModelAttrSet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], HU3D_MOTATTR_LOOP); + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], 0.0f); for (i = 0; i < 4; i++) { - lbl_1_bss_7FC[i]->func = fn_1_FED0; + itemObj[i]->func = RoundItemItemUpdate; } - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, lbl_1_bss_7B8, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); - lbl_1_bss_7D6 = MGSeqStartCreate(); + BoardPlayerMotionShiftSet(roundItemPlayer, jumpMotId, 0.0f, 5.0f, HU3D_MOTATTR_LOOP); + seqStartId = MGSeqStartCreate(); BoardMusStart(1, 0xE, 0x7F, 0); - arg0->func = fn_1_ECD4; + obj->func = RoundItemStartWait; } - BoardPlayerPosSetV(lbl_1_bss_7E4, &spC); + BoardPlayerPosSetV(roundItemPlayer, &pos); } -static void fn_1_ECD4(omObjData *arg0) +static void RoundItemStartWait(omObjData *obj) { - lbl_1_bss_7EC *= 1.05f; - lbl_1_bss_7E8 *= 1.05f; - if (lbl_1_bss_7EC > 2.0f) { - lbl_1_bss_7EC = 2.0f; + umaSpeed *= 1.05f; + borderSpeed *= 1.05f; + if (umaSpeed > 2.0f) { + umaSpeed = 2.0f; } - if (lbl_1_bss_7E8 > 4.0f) { - lbl_1_bss_7E8 = 4.0f; + if (borderSpeed > 4.0f) { + borderSpeed = 4.0f; } - if (MGSeqStatGet(lbl_1_bss_7D6) == 0) { - lbl_1_bss_7EC = 2.0f; - lbl_1_bss_7E8 = 4.0f; - arg0->func = fn_1_EED8; - lbl_1_bss_7D2 = 5; - lbl_1_bss_7D0 = REFRESH_RATE; - lbl_1_bss_7D4 = MGSeqTimerCreateXY(lbl_1_bss_7D2, 288, 64); + if (MGSeqStatGet(seqStartId) == 0) { + umaSpeed = 2.0f; + borderSpeed = 4.0f; + obj->func = RoundItemInputWait; + timerSec = 5; + timerFrame = REFRESH_RATE; + timerSeqId = MGSeqTimerCreateXY(timerSec, 288, 64); } - BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], lbl_1_bss_7EC); - BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], lbl_1_bss_7E8); - fn_1_10CF0(arg0->work[2]); + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA], umaSpeed); + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], borderSpeed); + RoundItemUmaPlayerSet(obj->work[2]); } -static void fn_1_EEA0(omObjData *arg0, u16 *arg1) +static void RoundItemComInputGet(omObjData *obj, u16 *btn) { - *arg1 = 0; - if (arg0->work[3] != 0) { - arg0->work[3]--; + *btn = 0; + if (obj->work[3] != 0) { + obj->work[3]--; } else { - *arg1 |= 0x100; + *btn |= PAD_BUTTON_A; } } -static void fn_1_EED8(omObjData *arg0) +static void RoundItemInputWait(omObjData *obj) { - s16 temp_r29; - u16 var_r30; + s16 padNo; + u16 btn; - fn_1_10CF0(arg0->work[2]); - temp_r29 = GWPlayer[lbl_1_bss_7E4].port; - if ((--lbl_1_bss_7D0) == 0) { - if ((--lbl_1_bss_7D2) >= 0) { - MGSeqParamSet(lbl_1_bss_7D4, 1, lbl_1_bss_7D2); + RoundItemUmaPlayerSet(obj->work[2]); + padNo = GWPlayer[roundItemPlayer].port; + if ((--timerFrame) == 0) { + if ((--timerSec) >= 0) { + MGSeqParamSet(timerSeqId, 1, timerSec); } - lbl_1_bss_7D0 = REFRESH_RATE; + timerFrame = REFRESH_RATE; } - if (GWPlayerCfg[lbl_1_bss_7E4].iscom == 1) { - fn_1_EEA0(arg0, &var_r30); + if (GWPlayerCfg[roundItemPlayer].iscom == 1) { + RoundItemComInputGet(obj, &btn); } else { - var_r30 = HuPadBtnDown[temp_r29]; + btn = HuPadBtnDown[padNo]; } - if (lbl_1_bss_7D2 < 0 || (var_r30 & 0x100)) { - BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], 0.0f); - MGSeqParamSet(lbl_1_bss_7D4, 2, -1); - arg0->scale.y = 0.0f; - arg0->func = fn_1_F09C; + if (timerSec < 0 || (btn & PAD_BUTTON_A)) { + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA], 0.0f); + MGSeqParamSet(timerSeqId, 2, -1); + obj->scale.y = 0.0f; + obj->func = RoundItemStop; } } -static void fn_1_F09C(omObjData *arg0) +static void RoundItemStop(omObjData *obj) { - float temp_f31; - float var_f30; + float maxTime; + float time; - temp_f31 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]); - arg0->scale.y += lbl_1_bss_7E8; - if (arg0->scale.y >= temp_f31 - 150.0f) { - lbl_1_bss_7E8 *= 0.9745f; - if (lbl_1_bss_7E8 < 0.08f) { - lbl_1_bss_7E8 = 0.08f; + maxTime = BoardModelMotionMaxTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER]); + obj->scale.y += borderSpeed; + if (obj->scale.y >= maxTime - 150.0f) { + borderSpeed *= 0.9745f; + if (borderSpeed < 0.08f) { + borderSpeed = 0.08f; } } - BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], lbl_1_bss_7E8); - if (arg0->scale.y >= temp_f31) { - BoardModelMotionSpeedSet(lbl_1_bss_6C4[18], 0.0f); - var_f30 = arg0->scale.y - temp_f31 + BoardModelMotionTimeGet(lbl_1_bss_6C4[18]); - if (var_f30 > temp_f31) { - var_f30 -= temp_f31; + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], borderSpeed); + if (obj->scale.y >= maxTime) { + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], 0.0f); + time = obj->scale.y - maxTime + BoardModelMotionTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER]); + if (time > maxTime) { + time -= maxTime; } - BoardModelMotionTimeSet(lbl_1_bss_6C4[18], var_f30); - arg0->work[0] = fn_1_1001C(arg0->work[2]); - BoardModelVisibilitySet(lbl_1_bss_6C4[20], 1); - BoardModelPosSet(lbl_1_bss_6C4[20], lbl_1_bss_7FC[arg0->work[0]]->trans.x, lbl_1_bss_7FC[arg0->work[0]]->trans.y + 1.0f, - lbl_1_bss_7FC[arg0->work[0]]->trans.z); + BoardModelMotionTimeSet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER], time); + obj->work[0] = RoundItemItemGet(obj->work[2]); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_LIGHT], 1); + BoardModelPosSet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_LIGHT], itemObj[obj->work[0]]->trans.x, itemObj[obj->work[0]]->trans.y + 1.0f, + itemObj[obj->work[0]]->trans.z); BoardModelRotSet( - lbl_1_bss_6C4[20], lbl_1_bss_7FC[arg0->work[0]]->rot.x, lbl_1_bss_7FC[arg0->work[0]]->rot.y + 1.0f, lbl_1_bss_7FC[arg0->work[0]]->rot.z); - arg0->work[1] = 60; + mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_LIGHT], itemObj[obj->work[0]]->rot.x, itemObj[obj->work[0]]->rot.y + 1.0f, itemObj[obj->work[0]]->rot.z); + obj->work[1] = 60; BoardAudSeqFadeOut(1, 100); - arg0->func = fn_1_F348; + obj->func = RoundItemLightFlicker; HuAudFXPlay(0x40A); } } -static void fn_1_F348(omObjData *arg0) +static void RoundItemLightFlicker(omObjData *obj) { - if ((arg0->work[1] / 4) & 1) { - BoardModelVisibilitySet(lbl_1_bss_6C4[20], 0); + if ((obj->work[1] / 4) & 1) { + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_LIGHT], 0); } else { - BoardModelVisibilitySet(lbl_1_bss_6C4[20], 1); + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_LIGHT], 1); } - if ((arg0->work[1] -= 1) == 0) { - BoardModelVisibilitySet(lbl_1_bss_6C4[20], 0); - fn_1_101B8(arg0->work[0]); + if ((--obj->work[1]) == 0) { + BoardModelVisibilitySet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_LIGHT], 0); + ItemGetCreate(obj->work[0]); HuAudFXPlay(0x310); - arg0->func = fn_1_F3F8; + obj->func = RoundItemUmaJumpWait; } } -static void fn_1_F3F8(omObjData *arg0) +static void RoundItemUmaJumpWait(omObjData *obj) { - Vec sp18; - Vec spC; + Vec playerPos; + Vec dir; - if (lbl_1_bss_7F0->work[0] != 1) { + if (itemGetObj->work[0] != 1) { return; } - BoardPlayerPosGet(lbl_1_bss_7E4, &sp18); - VECSubtract(&lbl_1_bss_7C4, &sp18, &spC); - VECNormalize(&spC, &spC); - arg0->trans.x = spC.x; - arg0->trans.y = spC.y; - arg0->trans.z = spC.z; - arg0->rot.x = VECDistanceXZ(&lbl_1_bss_7C4, &sp18); - arg0->scale.y = 20.0f + 40.0f * (arg0->rot.x / 445.0f); - arg0->rot.y = 0.016666668f * (arg0->scale.y / 2) * (arg0->scale.y / 2); - arg0->rot.z = sp18.y; - arg0->scale.x = 0.0f; - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); - VECSubtract(&lbl_1_bss_7C4, &sp18, &spC); - VECNormalize(&spC, &spC); - BoardPlayerRotSet(lbl_1_bss_7E4, 0.0f, fn_1_10EB8(&spC), 0.0f); - arg0->func = fn_1_F6E8; + BoardPlayerPosGet(roundItemPlayer, &playerPos); + VECSubtract(&roundItemPlayerPos, &playerPos, &dir); + VECNormalize(&dir, &dir); + obj->trans.x = dir.x; + obj->trans.y = dir.y; + obj->trans.z = dir.z; + obj->rot.x = VECDistanceXZ(&roundItemPlayerPos, &playerPos); + obj->scale.y = 20.0f + 40.0f * (obj->rot.x / 445.0f); + obj->rot.y = 0.016666668f * (obj->scale.y / 2) * (obj->scale.y / 2); + obj->rot.z = playerPos.y; + obj->scale.x = 0.0f; + BoardPlayerMotionShiftSet(roundItemPlayer, 4, 0.0f, 5.0f, HU3D_MOTATTR_NONE); + VECSubtract(&roundItemPlayerPos, &playerPos, &dir); + VECNormalize(&dir, &dir); + BoardPlayerRotSet(roundItemPlayer, 0.0f, RoundItemAngleGet(&dir), 0.0f); + obj->func = RoundItemUmaJump; } -static void fn_1_F6E8(omObjData *arg0) +static void RoundItemUmaJump(omObjData *obj) { - Vec sp8; + Vec pos; - BoardPlayerPosGet(lbl_1_bss_7E4, &sp8); - sp8.x += arg0->trans.x * arg0->rot.x / arg0->scale.y; - sp8.z += arg0->trans.z * arg0->rot.x / arg0->scale.y; - sp8.y += arg0->rot.y - 0.016666668f * arg0->scale.x * arg0->scale.x; - arg0->scale.x += 1.0f; - if (sp8.y < lbl_1_bss_80C.y || arg0->scale.x >= arg0->scale.y) { - sp8.y = lbl_1_bss_80C.y; - BoardCameraMotionStart(BoardPlayerModelGet(lbl_1_bss_7E4), NULL, 700.0f, -1.0f); - BoardPlayerMotionStart(lbl_1_bss_7E4, 2, 0x40000001); - arg0->func = fn_1_F890; + BoardPlayerPosGet(roundItemPlayer, &pos); + pos.x += obj->trans.x * obj->rot.x / obj->scale.y; + pos.z += obj->trans.z * obj->rot.x / obj->scale.y; + pos.y += obj->rot.y - 0.016666668f * obj->scale.x * obj->scale.x; + obj->scale.x += 1.0f; + if (pos.y < roundItemPos.y || obj->scale.x >= obj->scale.y) { + pos.y = roundItemPos.y; + BoardCameraMotionStart(BoardPlayerModelGet(roundItemPlayer), NULL, 700.0f, -1.0f); + BoardPlayerMotionStart(roundItemPlayer, 2, HU3D_MOTATTR_LOOP); + obj->func = RoundItemRotatePlayer; } - BoardPlayerPosSetV(lbl_1_bss_7E4, &sp8); + BoardPlayerPosSetV(roundItemPlayer, &pos); } -static void fn_1_F890(omObjData *arg0) +static void RoundItemRotatePlayer(omObjData *obj) { - Vec sp8; + Vec rot; - BoardPlayerRotGet(lbl_1_bss_7E4, &sp8); - if (sp8.y == 0.0f) { - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); - lbl_1_bss_7F0->work[0] = 0; - lbl_1_bss_7F0->func = fn_1_10820; - arg0->func = fn_1_FA1C; + BoardPlayerRotGet(roundItemPlayer, &rot); + if (rot.y == 0.0f) { + BoardPlayerMotionShiftSet(roundItemPlayer, 1, 0.0f, 10.0f, HU3D_MOTATTR_LOOP); + itemGetObj->work[0] = 0; + itemGetObj->func = ItemGetPlayerMove; + obj->func = RoundItemStreamWait; } - else if (sp8.y > 180.0f) { - if (360.0f - sp8.y < 3.0f) { - sp8.y = 0.0f; + else if (rot.y > 180.0f) { + if (360.0f - rot.y < 3.0f) { + rot.y = 0.0f; } else { - sp8.y += 3.0f; + rot.y += 3.0f; } } else { - if (sp8.y < 3.0f) { - sp8.y = 0.0f; + if (rot.y < 3.0f) { + rot.y = 0.0f; } else { - sp8.y -= 3.0f; + rot.y -= 3.0f; } } - BoardPlayerRotSetV(lbl_1_bss_7E4, &sp8); + BoardPlayerRotSetV(roundItemPlayer, &rot); } -static void fn_1_FA1C(omObjData *arg0) +static void RoundItemStreamWait(omObjData *obj) { - if (lbl_1_bss_7F0->work[0] == 1) { - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, lbl_1_bss_7BC, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - arg0->work[0] = 30; - lbl_1_bss_7A4 = HuAudSStreamPlay(2); - arg0->func = fn_1_FABC; + if (itemGetObj->work[0] == 1) { + BoardPlayerMotionShiftSet(roundItemPlayer, itemGetMotId, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + obj->work[0] = 30; + roundItemStreamId = HuAudSStreamPlay(2); + obj->func = RoundItemWinWait; } } -static void fn_1_FABC(omObjData *arg0) +static void RoundItemWinWait(omObjData *obj) { - Process *var_r30; + Process *proc; - if (arg0->work[0] == 0) { - if (HuAudSStreamStatGet(lbl_1_bss_7A4) == 0) { - var_r30 = HuPrcCreate(fn_1_FB58, 0x2004, 0x1000, 0); - var_r30->user_data = arg0; + if (obj->work[0] == 0) { + if (HuAudSStreamStatGet(roundItemStreamId) == 0) { + proc = HuPrcCreate(ItemGetWinExec, 0x2004, 0x1000, 0); + proc->user_data = obj; BoardAudSeqPause(0, 0, 1000); - arg0->func = NULL; + obj->func = NULL; } } else { - arg0->work[0]--; + obj->work[0]--; } } -static void fn_1_FB58(void) +static void ItemGetWinExec(void) { - omObjData *temp_r31; + omObjData *obj; BoardWinCreate(2, MAKE_MESSID(10, 6), 0); - BoardWinInsertMesSet(MAKE_MESSID(8, lbl_1_bss_7F0->work[1]), 0); + BoardWinInsertMesSet(MAKE_MESSID(8, itemGetObj->work[1]), 0); BoardWinWait(); BoardWinKill(); - temp_r31 = HuPrcCurrentGet()->user_data; - BoardPlayerMotionShiftSet(lbl_1_bss_7E4, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); - lbl_1_bss_7F0->work[0] = 0; + obj = HuPrcCurrentGet()->user_data; + BoardPlayerMotionShiftSet(roundItemPlayer, 1, 0.0f, 10.0f, HU3D_MOTATTR_NONE); + itemGetObj->work[0] = 0; HuAudFXPlay(0x30D); - HuAudFXFadeOut(lbl_1_bss_7AC, 1000); - lbl_1_bss_7F0->func = fn_1_10AE8; - temp_r31->func = fn_1_FC3C; + HuAudFXFadeOut(itemGetSeNo, 1000); + itemGetObj->func = ItemGetShrink; + obj->func = ItemGetShrinkWait; HuPrcKill(NULL); while (TRUE) { HuPrcVSleep(); } } -static void fn_1_FC3C(omObjData *arg0) +static void ItemGetShrinkWait(omObjData *obj) { - Process *var_r31; + Process *proc; - if (lbl_1_bss_7F0->work[0] == 1) { - BoardPlayerItemAdd(lbl_1_bss_7E4, lbl_1_bss_7F0->work[1]); - omVibrate(lbl_1_bss_7E4, 12, 6, 6); - var_r31 = HuPrcCreate(fn_1_FCEC, 0x2004, 0x1000, 0); - var_r31->user_data = arg0; - arg0->func = NULL; + if (itemGetObj->work[0] == 1) { + BoardPlayerItemAdd(roundItemPlayer, itemGetObj->work[1]); + omVibrate(roundItemPlayer, 12, 6, 6); + proc = HuPrcCreate(ItemGetReturnWinExec, 0x2004, 0x1000, 0); + proc->user_data = obj; + obj->func = NULL; } } -static void fn_1_FCEC(void) +static void ItemGetReturnWinExec(void) { - omObjData *var_r31; + omObjData *obj; BoardWinCreate(2, MAKE_MESSID(10, 7), 0); BoardWinWait(); BoardWinKill(); - var_r31 = HuPrcCurrentGet()->user_data; - var_r31->func = fn_1_FD3C; + obj = HuPrcCurrentGet()->user_data; + obj->func = RoundItemGameClose; HuPrcKill(NULL); while (TRUE) { HuPrcVSleep(); } } -static void fn_1_FD3C(omObjData *arg0) +static void RoundItemGameClose(omObjData *obj) { BoardStatusShowSetAll(1); - BoardCameraTargetModelSet(lbl_1_bss_6C4[21]); + BoardCameraTargetModelSet(mapObjMdlId[MAPOBJ_ROUNDITEM_ITEM_UP]); BoardCameraOffsetSet(0.0f, 0.0f, 0.0f); BoardCameraXRotZoomSet(1200.0f, -45.0f); - BoardModelMotionSpeedSet(lbl_1_bss_6C4[17], 1.0f); - Hu3DModelKill(lbl_1_bss_7F0->model[0]); - Hu3DModelKill(lbl_1_bss_7F0->model[1]); - Hu3DModelKill(lbl_1_bss_7F0->model[2]); - omDelObjEx(HuPrcCurrentGet(), lbl_1_bss_7F0); - arg0->func = fn_1_FE44; + BoardModelMotionSpeedSet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA], 1.0f); + Hu3DModelKill(itemGetObj->model[0]); + Hu3DModelKill(itemGetObj->model[1]); + Hu3DModelKill(itemGetObj->model[2]); + omDelObjEx(HuPrcCurrentGet(), itemGetObj); + obj->func = RoundItemGameEnd; } -static void fn_1_FE44(omObjData *arg0) +static void RoundItemGameEnd(omObjData *obj) { - if (BoardStatusStopCheck(lbl_1_bss_7E4) && BoardCameraMotionIsDone()) { - lbl_1_bss_7AA = 1; - BoardMGExit(); - HuAudFXPlay(0x40F); - BoardModelMotionStart(lbl_1_bss_6C4[21], 0, 0x40000004); - arg0->func = NULL; + if (BoardStatusStopCheck(roundItemPlayer) && BoardCameraMotionIsDone()) { + RoundItemEnd(); + obj->func = NULL; } } -static void fn_1_FED0(omObjData *arg0) +static void RoundItemItemUpdate(omObjData *obj) { - float temp_f30; - float var_f31; - float var_f29; + float time; + float rotY; + float maxTime; - temp_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[18]); - var_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]); - var_f31 = 90.0f - 90.0f * arg0->work[2] + 360.0f * (temp_f30 / var_f29); - if (var_f31 >= 360.0f) { - var_f31 -= 360.0f; + time = BoardModelMotionTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER]); + maxTime = BoardModelMotionMaxTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER]); + rotY = 90.0f - 90.0f * obj->work[2] + 360.0f * (time / maxTime); + if (rotY >= 360.0f) { + rotY -= 360.0f; } - if (var_f31 < 0.0f) { - var_f31 += 360.0f; + if (rotY < 0.0f) { + rotY += 360.0f; } - omSetRot(arg0, 0.0f, var_f31, 0.0f); + omSetRot(obj, 0.0f, rotY, 0.0f); } -static s16 fn_1_1001C(u32 arg0) +static s16 RoundItemItemGet(u32 umaNo) { - float var_f29; - float var_f28; - float temp_f27; - float temp_f26; - float var_f31; - float var_f30; + float umaMaxTime; + float umaAngle; + float borderAngle; + float angle; + float umaTime; - temp_f26 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]); - temp_f27 = 360.0f - 360.0f * (BoardModelMotionTimeGet(lbl_1_bss_6C4[18]) / temp_f26); - var_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[17]); - var_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[17]); - var_f30 = var_f30 - (var_f29 / 4) * arg0; - if (var_f30 < 0.0f) { - var_f30 += var_f29; + borderAngle = 360.0f - 360.0f * (BoardModelMotionTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER]) / BoardModelMotionMaxTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER])); + umaTime = BoardModelMotionTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]); + umaMaxTime = BoardModelMotionMaxTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]); + umaTime = umaTime - (umaMaxTime / 4) * umaNo; + if (umaTime < 0.0f) { + umaTime += umaMaxTime; } - var_f28 = 360.0f * (var_f30 / var_f29); - var_f31 = var_f28 - temp_f27; - if (var_f31 < 0.0f) { - var_f31 += 360.0f; + umaAngle = 360.0f * (umaTime / umaMaxTime); + angle = umaAngle - borderAngle; + if (angle < 0.0f) { + angle += 360.0f; } - var_f31 /= 90.0f; - return var_f31; + angle /= 90.0f; + return angle; } -static void fn_1_101B8(s16 arg0) +static void ItemGetCreate(s16 itemNo) { - omObjData *var_r31; - float *var_r30; - float var_f27; - float temp_f26; - float temp_f30; - float temp_f29; - float temp_f28; - float var_f31; + omObjData *obj; + float *data; + float borderAngle; + float posX; + float posY; + float posZ; + float angle; - var_r31 = lbl_1_bss_7F0 = omAddObjEx(boardObjMan, 0x165, 3, 0, -1, fn_1_10664); - var_r31->model[0] = lbl_1_bss_7FC[arg0]->model[1]; - Hu3DModelAttrReset(var_r31->model[0], HU3D_ATTR_DISPOFF); - lbl_1_bss_7F0->work[1] = lbl_1_bss_7FC[arg0]->work[1]; - lbl_1_bss_7F0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 3 * sizeof(float), MEMORY_DEFAULT_NUM); - var_r30 = lbl_1_bss_7F0->data; - omSetRot(var_r31, 0.0f, 0.0f, 0.0f); - omSetSca(var_r31, 0.0f, 0.0f, 0.0f); - temp_f26 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[18]); - var_f27 = 360.0f - 360.0f * (BoardModelMotionTimeGet(lbl_1_bss_6C4[18]) / temp_f26); - var_f31 = 45.0f + var_f27 + 90.0f * arg0; - if (var_f31 >= 360.0f) { - var_f31 -= 360.0f; + obj = itemGetObj = omAddObjEx(boardObjMan, 0x165, 3, 0, -1, ItemGetObjUpdate); + obj->model[0] = itemObj[itemNo]->model[1]; + Hu3DModelAttrReset(obj->model[0], HU3D_ATTR_DISPOFF); + itemGetObj->work[1] = itemObj[itemNo]->work[1]; + itemGetObj->data = HuMemDirectMallocNum(HEAP_SYSTEM, 3 * sizeof(float), MEMORY_DEFAULT_NUM); + data = itemGetObj->data; + omSetRot(obj, 0.0f, 0.0f, 0.0f); + omSetSca(obj, 0.0f, 0.0f, 0.0f); + borderAngle = 360.0f - 360.0f * (BoardModelMotionTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER]) / BoardModelMotionMaxTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_BORDER])); + angle = 45.0f + borderAngle + 90.0f * itemNo; + if (angle >= 360.0f) { + angle -= 360.0f; } - temp_f30 = lbl_1_bss_80C.x - 100.0 * cosd(var_f31); - temp_f28 = lbl_1_bss_80C.z - 100.0 * sind(var_f31); - temp_f29 = lbl_1_bss_80C.y + 66.0f + 1.0f; - omSetTra(var_r31, temp_f30, temp_f29, temp_f28); - var_r31->work[0] = 0; - var_r30[0] = 0.1f; - var_r30[2] = 20.0f; - var_r30[1] = 0.0f; - var_r31->model[1] = Hu3DParticleCreate(lbl_1_bss_7A0, 200); - var_r31->model[2] = Hu3DParticleCreate(lbl_1_bss_7A0, 100); - Hu3DParticleHookSet(var_r31->model[1], fn_1_11064); - Hu3DParticleHookSet(var_r31->model[2], fn_1_11484); - Hu3DParticleColSet(var_r31->model[1], 0xFF, 0xFF, 0); - Hu3DParticleColSet(var_r31->model[2], 0xFF, 0xFF, 0); - Hu3DModelPosSet(var_r31->model[1], 0.0f, 0.0f, 0.0f); - Hu3DModelPosSet(var_r31->model[2], temp_f30, temp_f29, temp_f28); - Hu3DParticleBlendModeSet(var_r31->model[1], 1); - Hu3DParticleBlendModeSet(var_r31->model[2], 1); - Hu3DModelLayerSet(var_r31->model[1], 3); - Hu3DModelLayerSet(var_r31->model[2], 3); - lbl_1_bss_7AC = HuAudFXPlay(0x35F); + posX = roundItemPos.x - 100.0 * cosd(angle); + posZ = roundItemPos.z - 100.0 * sind(angle); + posY = roundItemPos.y + 66.0f + 1.0f; + omSetTra(obj, posX, posY, posZ); + obj->work[0] = 0; + data[0] = 0.1f; + data[2] = 20.0f; + data[1] = 0.0f; + obj->model[1] = Hu3DParticleCreate(roundItemEffAnim, 200); + obj->model[2] = Hu3DParticleCreate(roundItemEffAnim, 100); + Hu3DParticleHookSet(obj->model[1], ItemGetEff1Hook); + Hu3DParticleHookSet(obj->model[2], ItemGetEff2Hook); + Hu3DParticleColSet(obj->model[1], 0xFF, 0xFF, 0); + Hu3DParticleColSet(obj->model[2], 0xFF, 0xFF, 0); + Hu3DModelPosSet(obj->model[1], 0.0f, 0.0f, 0.0f); + Hu3DModelPosSet(obj->model[2], posX, posY, posZ); + Hu3DParticleBlendModeSet(obj->model[1], 1); + Hu3DParticleBlendModeSet(obj->model[2], 1); + Hu3DModelLayerSet(obj->model[1], 3); + Hu3DModelLayerSet(obj->model[2], 3); + itemGetSeNo = HuAudFXPlay(0x35F); } -static void fn_1_10664(omObjData *arg0) +static void ItemGetObjUpdate(omObjData *obj) { - float *temp_r31; - float var_f31; + float *data; + float scale; - temp_r31 = arg0->data; - var_f31 = temp_r31[0]; - if (arg0->work[0] == 0) { - if (var_f31 > 1.0f) { - var_f31 = 1.0f; + data = obj->data; + scale = data[0]; + if (obj->work[0] == 0) { + if (scale > 1.0f) { + scale = 1.0f; } else { - temp_r31[0] += 0.025f; + data[0] += 0.025f; } - arg0->trans.y += temp_r31[2]; - temp_r31[2] -= 1.0f; - if (temp_r31[2] < 0.0f && arg0->trans.y < lbl_1_bss_80C.y + 66.0f + 1.0f + 90.0f) { - arg0->work[0] = 1; + obj->trans.y += data[2]; + data[2] -= 1.0f; + if (data[2] < 0.0f && obj->trans.y < roundItemPos.y + 66.0f + 1.0f + 90.0f) { + obj->work[0] = 1; } - omSetSca(arg0, var_f31, var_f31, var_f31); + omSetSca(obj, scale, scale, scale); } else { - arg0->trans.y += sind(temp_r31[1]); - temp_r31[1] += 4.0f; - if (temp_r31[1] >= 360.0f) { - temp_r31[1] -= 360.0f; + obj->trans.y += sind(data[1]); + data[1] += 4.0f; + if (data[1] >= 360.0f) { + data[1] -= 360.0f; } } } -static void fn_1_10820(omObjData *arg0) +static void ItemGetPlayerMove(omObjData *obj) { - Vec sp24; - Vec sp18; - Vec spC; + Vec playerPos; + Vec objPos; + Vec dir; float var_f28; - float *temp_r30; + float *data; - temp_r30 = arg0->data; - if (arg0->work[0] == 0) { - BoardPlayerPosGet(lbl_1_bss_7E4, &sp24); - sp18.x = arg0->trans.x; - sp18.y = 0.0f; - sp18.z = arg0->trans.z; - sp24.y = 0.0f; - VECSubtract(&sp24, &sp18, &spC); - VECNormalize(&spC, &spC); - var_f28 = VECDistanceXZ(&sp24, &sp18); + data = obj->data; + if (obj->work[0] == 0) { + BoardPlayerPosGet(roundItemPlayer, &playerPos); + objPos.x = obj->trans.x; + objPos.y = 0.0f; + objPos.z = obj->trans.z; + playerPos.y = 0.0f; + VECSubtract(&playerPos, &objPos, &dir); + VECNormalize(&dir, &dir); + var_f28 = VECDistanceXZ(&playerPos, &objPos); if (var_f28 < 8.0f) { - arg0->trans.x = sp24.x; - arg0->trans.z = sp24.z; - arg0->work[0] = 1; + obj->trans.x = playerPos.x; + obj->trans.z = playerPos.z; + obj->work[0] = 1; } else { - arg0->trans.x += 8.0f * spC.x; - arg0->trans.z += 8.0f * spC.z; + obj->trans.x += 8.0f * dir.x; + obj->trans.z += 8.0f * dir.z; } } - arg0->trans.y += sind(temp_r30[1]); - temp_r30[1] += 4.0f; - if (temp_r30[1] >= 360.0f) { - temp_r30[1] -= 360.0f; + obj->trans.y += sind(data[1]); + data[1] += 4.0f; + if (data[1] >= 360.0f) { + data[1] -= 360.0f; } } -static void fn_1_10AE8(omObjData *arg0) +static void ItemGetShrink(omObjData *obj) { - float *temp_r31; + float *data; - temp_r31 = arg0->data; - if (arg0->work[0] == 0) { - temp_r31[0] -= 0.016666668f; - if (temp_r31[0] <= 0.0f) { - temp_r31[0] = 0.0f; - arg0->work[0] = 1; - HuAudFXStop(lbl_1_bss_7AC); + data = obj->data; + if (obj->work[0] == 0) { + data[0] -= 0.016666668f; + if (data[0] <= 0.0f) { + data[0] = 0.0f; + obj->work[0] = 1; + HuAudFXStop(itemGetSeNo); } - arg0->trans.y -= 2.1666667f; + obj->trans.y -= 2.1666667f; } - omSetSca(arg0, temp_r31[0], temp_r31[0], temp_r31[0]); + omSetSca(obj, data[0], data[0], data[0]); } -static float fn_1_10BB0(u32 arg0) +static float RoundItemUmaRotYGet(u32 umaNo) { - float var_f30; - float temp_f29; - float var_f31; + float time; + float maxTime; + float rotY; - var_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[17]); - temp_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[17]); - var_f30 = var_f30 - (temp_f29 / 4) * arg0; - if (var_f30 < 0.0f) { - var_f30 += temp_f29; + time = BoardModelMotionTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]); + maxTime = BoardModelMotionMaxTimeGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]); + time = time - (maxTime / 4) * umaNo; + if (time < 0.0f) { + time += maxTime; } - var_f31 = 180.0f + -360.0f * (var_f30 / temp_f29); - if (var_f31 >= 360.0f) { - var_f31 -= 360.0f; + rotY = 180.0f + -360.0f * (time / maxTime); + if (rotY >= 360.0f) { + rotY -= 360.0f; } - if (var_f31 < 0.0f) { - var_f31 += 360.0f; + if (rotY < 0.0f) { + rotY += 360.0f; } - return var_f31; + return rotY; } -static void fn_1_10CF0(u32 arg0) +static void RoundItemUmaPlayerSet(u32 umaNo) { - float var_f30; - float temp_f29; - float var_f31; - float var_f28; - - Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_bss_6C4[17]), lbl_1_data_F9C[arg0], &lbl_1_bss_7D8); - BoardPlayerPosSetV(lbl_1_bss_7E4, &lbl_1_bss_7D8); - var_f30 = BoardModelMotionTimeGet(lbl_1_bss_6C4[17]); - temp_f29 = BoardModelMotionMaxTimeGet(lbl_1_bss_6C4[17]); - var_f30 = var_f30 - (temp_f29 / 4) * arg0; - if (var_f30 < 0.0f) { - var_f30 += temp_f29; - } - var_f31 = 180.0f + -360.0f * (var_f30 / temp_f29); - if (var_f31 >= 360.0f) { - var_f31 -= 360.0f; - } - if (var_f31 < 0.0f) { - var_f31 += 360.0f; - } - var_f28 = var_f31; - BoardPlayerRotSet(lbl_1_bss_7E4, 0.0f, var_f28, 0.0f); + Hu3DModelObjPosGet(BoardModelIDGet(mapObjMdlId[MAPOBJ_ROUNDITEM_UMA]), umaHookTbl[umaNo], &umaPos); + BoardPlayerPosSetV(roundItemPlayer, &umaPos); + BoardPlayerRotSet(roundItemPlayer, 0.0f, RoundItemUmaRotYGet(umaNo), 0.0f); } -static float fn_1_10EB8(Vec *arg0) +static float RoundItemAngleGet(Vec *dir) { - float var_f31; + float angle; - if (arg0->x || arg0->z) { - if (arg0->x == 0.0f) { - if (arg0->z > 0.0f) { + if (dir->x || dir->z) { + if (dir->x == 0.0f) { + if (dir->z > 0.0f) { return 0.0f; } else { return 180.0f; } } - if (arg0->z == 0.0f) { - if (arg0->x > 0.0f) { + if (dir->z == 0.0f) { + if (dir->x > 0.0f) { return 90.0f; } else { return 270.0f; } } - var_f31 = atan2d(arg0->z, arg0->x); - if (arg0->z < 0.0f) { - var_f31 = 90.0f - var_f31; + angle = atan2d(dir->z, dir->x); + if (dir->z < 0.0f) { + angle = 90.0f - angle; } else { - var_f31 = 90.0f - var_f31; - if (var_f31 < 0.0f) { - var_f31 += 360.0f; + angle = 90.0f - angle; + if (angle < 0.0f) { + angle += 360.0f; } } - return var_f31; + return angle; } return -1.0f; } -static void fn_1_11064(ModelData *model, ParticleData *particle, Mtx matrix) +static void ItemGetEff1Hook(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *var_r31; - float temp_f30; - float temp_f29; - float temp_f31; - s32 var_r28; + HsfanimStruct01 *particleDataP; + float angle; + float radius; + float radiusBase; + s32 j; s32 i; if (particle->unk_34 == 0) { - var_r31 = particle->unk_48; - for (i = 0; i < particle->unk_30; i++, var_r31++) { - var_r31->unk40.a = 0; - var_r31->unk2C = 0.0f; + particleDataP = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, particleDataP++) { + particleDataP->unk40.a = 0; + particleDataP->unk2C = 0.0f; } particle->unk_00 = 0; } - temp_f31 = lbl_1_bss_7F0->scale.x; + radiusBase = itemGetObj->scale.x; for (i = 0; i < 30; i++) { - var_r31 = particle->unk_48; - for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { - if (var_r31->unk2C == 0.0f) { + particleDataP = particle->unk_48; + for (j = 0; j < particle->unk_30; j++, particleDataP++) { + if (particleDataP->unk2C == 0.0f) { break; } } - if (var_r28 != particle->unk_30) { - temp_f30 = 0.003921569f * frand8() * 360.0f; - temp_f29 = 0.003921569f * frand8() * 70.0f * temp_f31; - var_r31->unk34.x = lbl_1_bss_7F0->trans.x + temp_f29 * sind(temp_f30); - var_r31->unk34.z = lbl_1_bss_7F0->trans.z + temp_f29 * cosd(temp_f30); - var_r31->unk34.y = lbl_1_bss_7F0->trans.y + temp_f31 * (-30.0f + 0.003921569f * frand8() * 60.0f); - var_r31->unk08.x = 0.5f + 0.003921569f * frand8() * 3.0f; - var_r31->unk08.y = 0.3f + 0.003921569f * frand8() * 2.0f; - var_r31->unk40.a = 0xB4; - var_r31->unk2C = 15.0f * temp_f31; + if (j != particle->unk_30) { + angle = 0.003921569f * frand8() * 360.0f; + radius = 0.003921569f * frand8() * 70.0f * radiusBase; + particleDataP->unk34.x = itemGetObj->trans.x + radius * sind(angle); + particleDataP->unk34.z = itemGetObj->trans.z + radius * cosd(angle); + particleDataP->unk34.y = itemGetObj->trans.y + radiusBase * (-30.0f + 0.003921569f * frand8() * 60.0f); + particleDataP->unk08.x = 0.5f + 0.003921569f * frand8() * 3.0f; + particleDataP->unk08.y = 0.3f + 0.003921569f * frand8() * 2.0f; + particleDataP->unk40.a = 0xB4; + particleDataP->unk2C = 15.0f * radiusBase; } } - var_r31 = particle->unk_48; - for (i = 0; i < particle->unk_30; i++, var_r31++) { - if (var_r31->unk2C != 0.0f) { - var_r31->unk34.y -= var_r31->unk08.x; - var_r31->unk2C -= var_r31->unk08.y; - if (var_r31->unk2C <= 0.0f) { - var_r31->unk2C = 0.0f; + particleDataP = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, particleDataP++) { + if (particleDataP->unk2C != 0.0f) { + particleDataP->unk34.y -= particleDataP->unk08.x; + particleDataP->unk2C -= particleDataP->unk08.y; + if (particleDataP->unk2C <= 0.0f) { + particleDataP->unk2C = 0.0f; } } } } -static void fn_1_11484(ModelData *model, ParticleData *particle, Mtx matrix) +static void ItemGetEff2Hook(ModelData *model, ParticleData *particle, Mtx matrix) { - HsfanimStruct01 *var_r31; - float temp_f29; - float temp_f30; - float temp_f31; - s32 var_r28; - s32 var_r29; + HsfanimStruct01 *particleDataP; + float angle2; + float angle; + float radius; + s32 j; + s32 i; if (particle->unk_34 == 0) { - var_r31 = particle->unk_48; - for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { - var_r31->unk40.a = 0; - var_r31->unk2C = 0.0f; + particleDataP = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, particleDataP++) { + particleDataP->unk40.a = 0; + particleDataP->unk2C = 0.0f; } particle->unk_00 = 0; } if (particle->unk_00 == 0) { - var_r31 = particle->unk_48; - for (var_r28 = 0; var_r28 < particle->unk_30; var_r28++, var_r31++) { - temp_f30 = 0.003921569f * frand8() * 360.0f; - temp_f31 = 0.003921569f * frand8() * 50.0f; - var_r31->unk08.x = temp_f31 * cosd(temp_f30); - var_r31->unk08.y = 2.0f + 0.003921569f * frand8() * 4.0f; - var_r31->unk08.z = temp_f31 * sind(temp_f30); - temp_f29 = 60.0f + 20.0f * frand8() * 0.003921569f; - temp_f31 = 4.0f + 5.0f * frand8() * 0.003921569f; - var_r31->unk14.x = temp_f31 * sind(temp_f30) * cosd(temp_f29); - var_r31->unk14.y = temp_f31 * sind(temp_f29); - var_r31->unk14.z = temp_f31 * cosd(temp_f30) * cosd(temp_f29); - var_r31->unk20 = 1.0f; - var_r31->unk40.a = 0xB4; - var_r31->unk2C = 9.0f + 0.003921569f * frand8() * 4.0f; + particleDataP = particle->unk_48; + for (j = 0; j < particle->unk_30; j++, particleDataP++) { + angle = 0.003921569f * frand8() * 360.0f; + radius = 0.003921569f * frand8() * 50.0f; + particleDataP->unk08.x = radius * cosd(angle); + particleDataP->unk08.y = 2.0f + 0.003921569f * frand8() * 4.0f; + particleDataP->unk08.z = radius * sind(angle); + angle2 = 60.0f + 20.0f * frand8() * 0.003921569f; + radius = 4.0f + 5.0f * frand8() * 0.003921569f; + particleDataP->unk14.x = radius * sind(angle) * cosd(angle2); + particleDataP->unk14.y = radius * sind(angle2); + particleDataP->unk14.z = radius * cosd(angle) * cosd(angle2); + particleDataP->unk20 = 1.0f; + particleDataP->unk40.a = 0xB4; + particleDataP->unk2C = 9.0f + 0.003921569f * frand8() * 4.0f; } particle->unk_00 = 1; } - var_r31 = particle->unk_48; - for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { - if (var_r31->unk2C != 0.0f) { - var_r31->unk34.x = var_r31->unk08.x + var_r31->unk14.x * var_r31->unk20; - var_r31->unk34.z = var_r31->unk08.z + var_r31->unk14.z * var_r31->unk20; - var_r31->unk34.y = var_r31->unk08.y + var_r31->unk14.y * var_r31->unk20 - 0.2f * var_r31->unk20 * var_r31->unk20; - var_r31->unk2C -= 0.25f; - var_r31->unk20 += 1.0f; - if (var_r31->unk2C <= 0.0f) { - var_r31->unk2C = 0.0f; + particleDataP = particle->unk_48; + for (i = 0; i < particle->unk_30; i++, particleDataP++) { + if (particleDataP->unk2C != 0.0f) { + particleDataP->unk34.x = particleDataP->unk08.x + particleDataP->unk14.x * particleDataP->unk20; + particleDataP->unk34.z = particleDataP->unk08.z + particleDataP->unk14.z * particleDataP->unk20; + particleDataP->unk34.y = particleDataP->unk08.y + particleDataP->unk14.y * particleDataP->unk20 - 0.2f * particleDataP->unk20 * particleDataP->unk20; + particleDataP->unk2C -= 0.25f; + particleDataP->unk20 += 1.0f; + if (particleDataP->unk2C <= 0.0f) { + particleDataP->unk2C = 0.0f; } } } From ea3af4e95ab738b27ae899957140ab189c66ffb7 Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Wed, 5 Feb 2025 22:02:56 -0500 Subject: [PATCH 291/311] name audio.c and board/audio.c (#561) --- include/game/audio.h | 50 +++---- include/game/board/audio.h | 14 +- src/game/audio.c | 262 ++++++++++++++++++------------------- src/game/board/audio.c | 90 ++++++------- 4 files changed, 208 insertions(+), 208 deletions(-) diff --git a/include/game/audio.h b/include/game/audio.h index 16738144..f5ca39f0 100644 --- a/include/game/audio.h +++ b/include/game/audio.h @@ -30,41 +30,41 @@ void HuAudFXFadeOut(int seNo, s32 speed); void HuAudFXPanning(int seNo, s16 pan); void HuAudFXListnerSet(Vec *pos, Vec *heading, float sndDist, float sndSpeed); void HuAudFXListnerSetEX(Vec *pos, Vec *heading, float sndDist, float sndSpeed, float startDis, float frontSurDis, float backSurDis); -void HuAudFXListnerUpdate(Vec *arg0, Vec *arg1); +void HuAudFXListnerUpdate(Vec *pos, Vec *heading); int HuAudFXEmiterPlay(int seId, Vec *pos); void HuAudFXEmiterUpDate(int seNo, Vec *pos); void HuAudFXListnerKill(void); -void HuAudFXPauseAll(s32 arg0); +void HuAudFXPauseAll(s32 pause); s32 HuAudFXStatusGet(int seNo); s32 HuAudFXPitchSet(int seNo, s16 pitch); s32 HuAudFXVolSet(int seNo, s16 vol); -s32 HuAudSeqPlay(s16 arg0); -void HuAudSeqStop(s32 arg0); -void HuAudSeqFadeOut(s32 arg0, s32 arg1); -void HuAudSeqAllFadeOut(s32 arg0); +s32 HuAudSeqPlay(s16 musId); +void HuAudSeqStop(s32 musNo); +void HuAudSeqFadeOut(s32 musNo, s32 speed); +void HuAudSeqAllFadeOut(s32 speed); void HuAudSeqAllStop(void); -void HuAudSeqPauseAll(s32 arg0); -void HuAudSeqPause(s32 arg0, s32 arg1, s32 arg2); -s32 HuAudSeqMidiCtrlGet(s32 arg0, s8 arg1, s8 arg2); -s32 HuAudSStreamPlay(s16 arg0); -void HuAudSStreamStop(s32 arg0); -void HuAudSStreamFadeOut(s32 arg0, s32 arg1); -void HuAudSStreamAllFadeOut(s32 arg0); +void HuAudSeqPauseAll(s32 pause); +void HuAudSeqPause(s32 musNo, s32 pause, s32 speed); +s32 HuAudSeqMidiCtrlGet(s32 musNo, s8 channel, s8 ctrl); +s32 HuAudSStreamPlay(s16 streamId); +void HuAudSStreamStop(s32 seNo); +void HuAudSStreamFadeOut(s32 seNo, s32 speed); +void HuAudSStreamAllFadeOut(s32 speed); void HuAudSStreamAllStop(void); -s32 HuAudSStreamStatGet(s32 arg0); +s32 HuAudSStreamStatGet(s32 seNo); void HuAudDllSndGrpSet(u16 ovl); -void HuAudSndGrpSetSet(s16 arg0); -void HuAudSndGrpSet(s16 arg0); -void HuAudSndCommonGrpSet(s16 arg0, s32 arg1); -void HuAudAUXSet(s32 arg0, s32 arg1); -void HuAudAUXVolSet(s8 arg0, s8 arg1); +void HuAudSndGrpSetSet(s16 data_size); +void HuAudSndGrpSet(s16 grpId); +void HuAudSndCommonGrpSet(s16 grpId, s32 groupCheck); +void HuAudAUXSet(s32 auxA, s32 auxB); +void HuAudAUXVolSet(s8 auxA, s8 auxB); void HuAudVoiceInit(s16 ovl); -s32 HuAudPlayerVoicePlay(s16 arg0, s16 arg1); -s32 HuAudPlayerVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2); -void HuAudPlayerVoicePlayEntry(s16 arg0, s16 arg1); -s32 HuAudCharVoicePlay(s16 arg0, s16 arg1); -s32 HuAudCharVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2); -void HuAudCharVoicePlayEntry(s16 arg0, s16 arg1); +s32 HuAudPlayerVoicePlay(s16 player, s16 seId); +s32 HuAudPlayerVoicePlayPos(s16 player, s16 seId, Vec *pos); +void HuAudPlayerVoicePlayEntry(s16 player, s16 seId); +s32 HuAudCharVoicePlay(s16 charNo, s16 seId); +s32 HuAudCharVoicePlayPos(s16 charNo, s16 seId, Vec *pos); +void HuAudCharVoicePlayEntry(s16 charNo, s16 seId); extern float Snd3DBackSurDisOffset; extern float Snd3DFrontSurDisOffset; diff --git a/include/game/board/audio.h b/include/game/board/audio.h index a3b617b9..714e97fa 100755 --- a/include/game/board/audio.h +++ b/include/game/board/audio.h @@ -4,13 +4,13 @@ #include "dolphin/types.h" void BoardMusStartBoard(void); -void BoardMusStart(s32 arg0, s32 arg1, s8 arg2, u16 arg3); -void BoardAudSeqFadeOutFast(s32 arg0); -void BoardAudSeqFadeOut(s32 arg0, u16 arg1); -void BoardMusLoudSet(s32 arg0, s32 arg1); -void BoardMusVolPanSet(s32 arg0, s8 arg1, u16 arg2); -void BoardAudSeqPause(s32 arg0, s32 arg1, u16 arg2); -s32 BoardMusStatusGet(s32 arg0); +void BoardMusStart(s32 boardNo, s32 musId, s8 vol, u16 speed); +void BoardAudSeqFadeOutFast(s32 boardNo); +void BoardAudSeqFadeOut(s32 boardNo, u16 speed); +void BoardMusLoudSet(s32 boardNo, s32 isQuieter); +void BoardMusVolPanSet(s32 boardNo, s8 vol, u16 fadeSpeed); +void BoardAudSeqPause(s32 boardNo, s32 pause, u16 speed); +s32 BoardMusStatusGet(s32 boardNo); void BoardAudSeqClear(void); void BoardAudSeqFadeOutAll(void); void BoardAudFXPlay(void); diff --git a/src/game/audio.c b/src/game/audio.c index 8b01f192..83f5f259 100644 --- a/src/game/audio.c +++ b/src/game/audio.c @@ -100,10 +100,10 @@ void HuAudAllStop(void) { HuAudSStreamAllStop(); } -void HuAudFadeOut(s32 arg0) { +void HuAudFadeOut(s32 speed) { HuAudFXAllStop(); - HuAudSeqAllFadeOut(arg0); - HuAudSStreamAllFadeOut(arg0); + HuAudSeqAllFadeOut(speed); + HuAudSStreamAllFadeOut(speed); } int HuAudFXPlay(int seId) @@ -228,8 +228,8 @@ void HuAudFXListnerKill(void) { msmSeDelListener(); } -void HuAudFXPauseAll(s32 arg0) { - msmSePauseAll(arg0, 0x64); +void HuAudFXPauseAll(s32 pause) { + msmSePauseAll(pause, 0x64); } s32 HuAudFXStatusGet(int seNo) { @@ -259,35 +259,35 @@ s32 HuAudFXVolSet(int seNo, s16 vol) return msmSeSetParam(seNo, ¶m); } -s32 HuAudSeqPlay(s16 arg0) { - s32 temp_r31; +s32 HuAudSeqPlay(s16 musId) { + s32 channel; if (musicOffF != 0 || omSysExitReq != 0) { return 0; } - temp_r31 = msmMusPlay(arg0, NULL); - return temp_r31; + channel = msmMusPlay(musId, NULL); + return channel; } -void HuAudSeqStop(s32 arg0) { +void HuAudSeqStop(s32 musNo) { if (musicOffF != 0 || omSysExitReq != 0) { return; } - msmMusStop(arg0, 0); + msmMusStop(musNo, 0); } -void HuAudSeqFadeOut(s32 arg0, s32 arg1) { +void HuAudSeqFadeOut(s32 musNo, s32 speed) { if (musicOffF == 0) { - msmMusStop(arg0, arg1); + msmMusStop(musNo, speed); } } -void HuAudSeqAllFadeOut(s32 arg0) { +void HuAudSeqAllFadeOut(s32 speed) { s16 i; for (i = 0; i < 4; i++) { if (msmMusGetStatus(i) == 2) { - msmMusStop(i, arg0); + msmMusStop(i, speed); } } } @@ -296,22 +296,22 @@ void HuAudSeqAllStop(void) { msmMusStopAll(0, 0); } -void HuAudSeqPauseAll(s32 arg0) { - msmMusPauseAll(arg0, 0x64); +void HuAudSeqPauseAll(s32 pause) { + msmMusPauseAll(pause, 0x64); } -void HuAudSeqPause(s32 arg0, s32 arg1, s32 arg2) { +void HuAudSeqPause(s32 musNo, s32 pause, s32 speed) { if (musicOffF != 0 || omSysExitReq != 0) { return; } - msmMusPause(arg0, arg1, arg2); + msmMusPause(musNo, pause, speed); } -s32 HuAudSeqMidiCtrlGet(s32 arg0, s8 arg1, s8 arg2) { +s32 HuAudSeqMidiCtrlGet(s32 musNo, s8 channel, s8 ctrl) { if (musicOffF != 0 || omSysExitReq != 0) { return 0; } - return msmMusGetMidiCtrl(arg0, arg1, arg2); + return msmMusGetMidiCtrl(musNo, channel, ctrl); } s32 HuAudSStreamPlay(s16 streamId) { @@ -326,28 +326,28 @@ s32 HuAudSStreamPlay(s16 streamId) { return result; } -void HuAudSStreamStop(s32 arg0) { +void HuAudSStreamStop(s32 seNo) { if (musicOffF == 0) { - msmStreamStop(arg0, 0); + msmStreamStop(seNo, 0); } } -void HuAudSStreamFadeOut(s32 arg0, s32 arg1) { +void HuAudSStreamFadeOut(s32 seNo, s32 speed) { if (musicOffF == 0) { - msmStreamStop(arg0, arg1); + msmStreamStop(seNo, speed); } } -void HuAudSStreamAllFadeOut(s32 arg0) { - msmStreamStopAll(arg0); +void HuAudSStreamAllFadeOut(s32 speed) { + msmStreamStopAll(speed); } void HuAudSStreamAllStop(void) { msmStreamStopAll(0); } -s32 HuAudSStreamStatGet(s32 arg0) { - return msmStreamGetStatus(arg0); +s32 HuAudSStreamStatGet(s32 seNo) { + return msmStreamGetStatus(seNo); } SNDGRPTBL sndGrpTable[] = { @@ -445,75 +445,75 @@ SNDGRPTBL sndGrpTable[] = { }; void HuAudDllSndGrpSet(u16 ovl) { - SNDGRPTBL *var_r31; - s16 var_r29; + SNDGRPTBL *sndGrp; + s16 grpSet; - var_r31 = sndGrpTable; + sndGrp = sndGrpTable; while (1) { - if (var_r31->ovl == ovl) { - var_r29 = var_r31->grpSet; + if (sndGrp->ovl == ovl) { + grpSet = sndGrp->grpSet; break; } - if (var_r31->ovl == OVL_INVALID) { - var_r29 = 0x12; + if (sndGrp->ovl == OVL_INVALID) { + grpSet = 0x12; break; } - var_r31++; + sndGrp++; } - if (var_r29 != -1) { + if (grpSet != -1) { OSReport("SOUND ##########################\n"); - HuAudSndGrpSetSet(var_r29); - if (var_r31->auxANo != auxANoBak || var_r31->auxBNo != auxBNoBak) { - msmSysSetAux(var_r31->auxANo, var_r31->auxBNo); - OSReport("Change AUX %d,%d\n", var_r31->auxANo, var_r31->auxBNo); - auxANoBak = var_r31->auxANo; - auxBNoBak = var_r31->auxBNo; + HuAudSndGrpSetSet(grpSet); + if (sndGrp->auxANo != auxANoBak || sndGrp->auxBNo != auxBNoBak) { + msmSysSetAux(sndGrp->auxANo, sndGrp->auxBNo); + OSReport("Change AUX %d,%d\n", sndGrp->auxANo, sndGrp->auxBNo); + auxANoBak = sndGrp->auxANo; + auxBNoBak = sndGrp->auxBNo; HuPrcVSleep(); } - HuAudAUXVolSet(var_r31->auxAVol, var_r31->auxBVol); + HuAudAUXVolSet(sndGrp->auxAVol, sndGrp->auxBVol); OSReport("##########################\n"); } } -void HuAudSndGrpSetSet(s16 arg0) { - void *temp_r3; - OSTick temp_r31; - s32 temp_r26; - s32 temp_r27; +void HuAudSndGrpSetSet(s16 data_size) { + void *buf; + OSTick osTick; + s32 numPlay; + s32 err; - if (sndGroupBak != arg0) { + if (sndGroupBak != data_size) { msmMusStopAll(1, 0); msmSeStopAll(1, 0); - temp_r31 = OSGetTick(); + osTick = OSGetTick(); while ((msmMusGetNumPlay(1) != 0 || msmSeGetNumPlay(1) != 0) - && OSTicksToMilliseconds(OSGetTick() - temp_r31) < 500); - OSReport("%d\n", OSTicksToMilliseconds(OSGetTick() - temp_r31)); - if (OSTicksToMilliseconds(OSGetTick() - temp_r31) >= 500) { - temp_r26 = msmSeGetNumPlay(1); - OSReport("Timed Out! Mus %d:SE %d\n", msmMusGetNumPlay(1), temp_r26); + && OSTicksToMilliseconds(OSGetTick() - osTick) < 500); + OSReport("%d\n", OSTicksToMilliseconds(OSGetTick() - osTick)); + if (OSTicksToMilliseconds(OSGetTick() - osTick) >= 500) { + numPlay = msmSeGetNumPlay(1); + OSReport("Timed Out! Mus %d:SE %d\n", msmMusGetNumPlay(1), numPlay); } - OSReport("GroupSet %d\n", arg0); - sndGroupBak = arg0; - temp_r27 = msmSysDelGroupAll(); - temp_r3 = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(1)); - temp_r27 = msmSysLoadGroupSet(arg0, temp_r3); - OSReport("***********GroupSet Error %d\n", temp_r27); - HuMemDirectFree(temp_r3); + OSReport("GroupSet %d\n", data_size); + sndGroupBak = data_size; + err = msmSysDelGroupAll(); + buf = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(1)); + err = msmSysLoadGroupSet(data_size, buf); + OSReport("***********GroupSet Error %d\n", err); + HuMemDirectFree(buf); } } -void HuAudSndGrpSet(s16 arg0) { - void *temp_r3; +void HuAudSndGrpSet(s16 grpId) { + void *buf; - temp_r3 = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(arg0)); - msmSysLoadGroup(arg0, temp_r3, 0); - HuMemDirectFree(temp_r3); + buf = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(grpId)); + msmSysLoadGroup(grpId, buf, 0); + HuMemDirectFree(buf); } -void HuAudSndCommonGrpSet(s16 arg0, s32 arg1) { - s16 temp_r30; - OSTick temp_r27; - void *temp_r3; +void HuAudSndCommonGrpSet(s16 grpId, s32 groupCheck) { + s16 err; + OSTick osTick; + void *buf; s16 i; for (i = 0; i < 8; i++) { @@ -521,75 +521,75 @@ void HuAudSndCommonGrpSet(s16 arg0, s32 arg1) { } msmMusStopAll(1, 0); msmSeStopAll(1, 0); - temp_r27 = OSGetTick(); + osTick = OSGetTick(); while ((msmMusGetNumPlay(1) != 0 || msmSeGetNumPlay(1) != 0) - && OSTicksToMilliseconds(OSGetTick() - temp_r27) < 500); - OSReport("CommonGrpSet %d\n", arg0); - if (arg1 != 0) { - temp_r30 = msmSysDelGroupBase(0); - if (temp_r30 < 0) { - OSReport("Del Group Error %d\n", temp_r30); + && OSTicksToMilliseconds(OSGetTick() - osTick) < 500); + OSReport("CommonGrpSet %d\n", grpId); + if (groupCheck != 0) { + err = msmSysDelGroupBase(0); + if (err < 0) { + OSReport("Del Group Error %d\n", err); } } - temp_r3 = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(arg0)); - msmSysLoadGroupBase(arg0, temp_r3); - HuMemDirectFree(temp_r3); + buf = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(grpId)); + msmSysLoadGroupBase(grpId, buf); + HuMemDirectFree(buf); sndGroupBak = -1; } -void HuAudAUXSet(s32 arg0, s32 arg1) { - if (arg0 == -1) { - arg0 = 0; +void HuAudAUXSet(s32 auxA, s32 auxB) { + if (auxA == -1) { + auxA = 0; } - if (arg1 == -1) { - arg1 = 1; + if (auxB == -1) { + auxB = 1; } - msmSysSetAux(arg0, arg1); + msmSysSetAux(auxA, auxB); } -void HuAudAUXVolSet(s8 arg0, s8 arg1) { - HuAuxAVol = arg0; - HuAuxBVol = arg1; +void HuAudAUXVolSet(s8 auxA, s8 auxB) { + HuAuxAVol = auxA; + HuAuxBVol = auxB; } void HuAudVoiceInit(s16 ovl) { - SNDGRPTBL *var_r29; - OSTick temp_r23; - s16 var_r27; - s16 temp_r26; + SNDGRPTBL *sndGrp; + OSTick osTick; + s16 numNotChars; + s16 grpId; s16 temp_r25; - s16 temp_r30; + s16 character; - void *temp_r3; + void *buf; s16 i; if (ovl != OVL_INVALID) { - var_r29 = sndGrpTable; + sndGrp = sndGrpTable; while (1) { - if (var_r29->ovl == ovl && var_r29->grpSet == -1) { + if (sndGrp->ovl == ovl && sndGrp->grpSet == -1) { return; } - if (var_r29->ovl == OVL_INVALID) { + if (sndGrp->ovl == OVL_INVALID) { break; } - var_r29++; + sndGrp++; } } - for (i = var_r27 = 0; i < 4; i++) { - temp_r30 = GWPlayerCfg[i].character; - if (temp_r30 < 0 || temp_r30 >= 8 || temp_r30 == 0xFF || charVoiceGroupStat[temp_r30] != 0) { - var_r27++; + for (i = numNotChars = 0; i < 4; i++) { + character = GWPlayerCfg[i].character; + if (character < 0 || character >= 8 || character == 0xFF || charVoiceGroupStat[character] != 0) { + numNotChars++; } } - if (var_r27 < 4) { + if (numNotChars < 4) { for (i = 0; i < 8; i++) { charVoiceGroupStat[i] = 0; } msmMusStopAll(1, 0); msmSeStopAll(1, 0); - temp_r23 = OSGetTick(); + osTick = OSGetTick(); while ((msmMusGetNumPlay(1) != 0 || msmSeGetNumPlay(1) != 0) - && OSTicksToMilliseconds(OSGetTick() - temp_r23) < 500); + && OSTicksToMilliseconds(OSGetTick() - osTick) < 500); OSReport("############CharGrpSet\n"); temp_r25 = msmSysDelGroupBase(0); if (temp_r25 < 0) { @@ -598,39 +598,39 @@ void HuAudVoiceInit(s16 ovl) { OSReport("Del Group OK\n"); } for (i = 0; i < 4; i++) { - temp_r30 = GWPlayerCfg[i].character; - if (temp_r30 >= 0 && temp_r30 < 8 && temp_r30 != 0xFF) { - charVoiceGroupStat[temp_r30] = 1; - temp_r26 = temp_r30 + 0xA; - temp_r3 = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(temp_r26)); + character = GWPlayerCfg[i].character; + if (character >= 0 && character < 8 && character != 0xFF) { + charVoiceGroupStat[character] = 1; + grpId = character + 10; + buf = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(grpId)); #if VERSION_NTSC - msmSysLoadGroupBase(temp_r26, temp_r3); + msmSysLoadGroupBase(grpId, buf); #else - temp_r25 = msmSysLoadGroupBase(temp_r26, temp_r3); + temp_r25 = msmSysLoadGroupBase(grpId, buf); #endif - HuMemDirectFree(temp_r3); + HuMemDirectFree(buf); } } sndGroupBak = -1; } } -s32 HuAudPlayerVoicePlay(s16 arg0, s16 arg1) { - s16 temp_r31 = GWPlayerCfg[arg0].character; +s32 HuAudPlayerVoicePlay(s16 player, s16 seId) { + s16 charNo = GWPlayerCfg[player].character; - return HuAudCharVoicePlay(temp_r31, arg1); + return HuAudCharVoicePlay(charNo, seId); } -s32 HuAudPlayerVoicePlayPos(s16 arg0, s16 arg1, Vec *arg2) { - s16 temp_r31 = GWPlayerCfg[arg0].character; +s32 HuAudPlayerVoicePlayPos(s16 player, s16 seId, Vec *pos) { + s16 charNo = GWPlayerCfg[player].character; - return HuAudCharVoicePlayPos(temp_r31, arg1, arg2); + return HuAudCharVoicePlayPos(charNo, seId, pos); } -void HuAudPlayerVoicePlayEntry(s16 arg0, s16 arg1) { - s16 temp_r31 = GWPlayerCfg[arg0].character; +void HuAudPlayerVoicePlayEntry(s16 player, s16 seId) { + s16 charNo = GWPlayerCfg[player].character; - HuAudCharVoicePlayEntry(temp_r31, arg1); + HuAudCharVoicePlayEntry(charNo, seId); } s32 HuAudCharVoicePlay(s16 charNo, s16 seId) @@ -676,14 +676,14 @@ s32 HuAudCharVoicePlayPos(s16 charNo, s16 seId, Vec *pos) { } void HuAudCharVoicePlayEntry(s16 charNo, s16 seId) { - int spC[MSM_ENTRY_SENO_MAX]; // size unknown (min: 30, max: 33) - u16 temp_r29; + int seNoTbl[MSM_ENTRY_SENO_MAX]; // size unknown (min: 30, max: 33) + u16 id; u16 i; seId += (charNo << 6); - temp_r29 = msmSeGetEntryID(seId, spC); - for (i = 0; i < temp_r29; i++) { - msmSeStop(spC[i], 0); + id = msmSeGetEntryID(seId, seNoTbl); + for (i = 0; i < id; i++) { + msmSeStop(seNoTbl[i], 0); } } diff --git a/src/game/board/audio.c b/src/game/board/audio.c index e79abe27..d5d8ccda 100755 --- a/src/game/board/audio.c +++ b/src/game/board/audio.c @@ -15,64 +15,64 @@ static s16 boardMusTbl[] = { }; void BoardMusStartBoard(void) { - s16 temp_r31 = boardMusTbl[GWBoardGet()]; + s16 musIdx = boardMusTbl[GWBoardGet()]; - BoardMusStart(0, temp_r31, 0x7F, 0); + BoardMusStart(0, musIdx, 0x7F, 0); BoardAudFXPlay(); } -void BoardMusStart(s32 arg0, s32 arg1, s8 arg2, u16 arg3) { - s16 *temp_r31 = boardSeq[arg0]; +void BoardMusStart(s32 boardNo, s32 musId, s8 vol, u16 speed) { + s16 *board = boardSeq[boardNo]; MSM_MUSPARAM param; - if (arg1 == temp_r31[1]) { + if (musId == board[1]) { return; } - if (temp_r31[0] != -1) { - BoardAudSeqFadeOutFast(temp_r31[0]); + if (board[0] != -1) { + BoardAudSeqFadeOutFast(board[0]); } param.flag = MSM_MUSPARAM_CHAN; - if (arg3 != 0) { + if (speed != 0) { param.flag |= MSM_MUSPARAM_FADESPEED; } - if (arg2 < 0) { + if (vol < 0) { param.flag |= MSM_MUSPARAM_VOL; - arg2 = 0x7F; + vol = 0x7F; } - param.fadeSpeed = arg3; - param.vol = arg2; - param.chan = arg0; - temp_r31[0] = msmMusPlay(arg1, ¶m); - temp_r31[1] = arg1; + param.fadeSpeed = speed; + param.vol = vol; + param.chan = boardNo; + board[0] = msmMusPlay(musId, ¶m); + board[1] = musId; } -void BoardAudSeqFadeOutFast(s32 arg0) { - BoardAudSeqFadeOut(arg0, 0x64); +void BoardAudSeqFadeOutFast(s32 boardNo) { + BoardAudSeqFadeOut(boardNo, 0x64); } -void BoardAudSeqFadeOut(s32 arg0, u16 arg1) { - s16 *temp_r31 = boardSeq[arg0]; +void BoardAudSeqFadeOut(s32 boardNo, u16 speed) { + s16 *board = boardSeq[boardNo]; - if (temp_r31[0] == -1) { + if (board[0] == -1) { return; } - HuAudSeqFadeOut(temp_r31[0], arg1); - temp_r31[1] = temp_r31[0] = -1; + HuAudSeqFadeOut(board[0], speed); + board[1] = board[0] = -1; } -void BoardMusLoudSet(s32 arg0, s32 arg1) { - if (arg1 != 0) { - BoardMusVolPanSet(arg0, 0x60, 0x1F4); +void BoardMusLoudSet(s32 boardNo, s32 isQuieter) { + if (isQuieter != 0) { + BoardMusVolPanSet(boardNo, 0x60, 0x1F4); } else { - BoardMusVolPanSet(arg0, 0x7F, 0x1F4); + BoardMusVolPanSet(boardNo, 0x7F, 0x1F4); } } -void BoardMusVolPanSet(s32 arg0, s8 vol, u16 fadeSpeed) { - s16 *temp_r31 = boardSeq[arg0]; +void BoardMusVolPanSet(s32 boardNo, s8 vol, u16 fadeSpeed) { + s16 *board = boardSeq[boardNo]; MSM_MUSPARAM param; - if (temp_r31[0] == -1) { + if (board[0] == -1) { return; } param.flag = MSM_MUSPARAM_CHAN; @@ -82,32 +82,32 @@ void BoardMusVolPanSet(s32 arg0, s8 vol, u16 fadeSpeed) { } param.fadeSpeed = fadeSpeed; param.vol = vol; - msmMusSetParam(temp_r31[0], ¶m); + msmMusSetParam(board[0], ¶m); } -void BoardAudSeqPause(s32 arg0, s32 arg1, u16 arg2) { - s16 *temp_r31 = boardSeq[arg0]; +void BoardAudSeqPause(s32 boardNo, s32 pause, u16 speed) { + s16 *board = boardSeq[boardNo]; - if (temp_r31[0] == -1) { + if (board[0] == -1) { return; } - if (arg1 != 0) { - if (BoardMusStatusGet(arg0) == 3) { + if (pause != 0) { + if (BoardMusStatusGet(boardNo) == 3) { return; } - } else if (BoardMusStatusGet(arg0) != 3) { + } else if (BoardMusStatusGet(boardNo) != 3) { return; } - HuAudSeqPause(temp_r31[0], arg1, arg2); + HuAudSeqPause(board[0], pause, speed); } -s32 BoardMusStatusGet(s32 arg0) { - s16 *temp_r31 = boardSeq[arg0]; +s32 BoardMusStatusGet(s32 boardNo) { + s16 *board = boardSeq[boardNo]; - if (temp_r31[0] == -1) { + if (board[0] == -1) { return 0; } - return msmMusGetStatus(temp_r31[0]); + return msmMusGetStatus(board[0]); } void BoardAudSeqClear(void) { @@ -134,20 +134,20 @@ void BoardAudSeqFadeOutAll(void) { } void BoardAudFXPlay(void) { - s32 var_r31; + s32 seId; switch (GWBoardGet()) { case BOARD_ID_MAIN5: - var_r31 = 0x48D; + seId = 0x48D; break; case BOARD_ID_MAIN6: - var_r31 = 0x4A2; + seId = 0x4A2; break; default: return; } if (boardFX == -1) { - boardFX = HuAudFXPlay(var_r31); + boardFX = HuAudFXPlay(seId); } } From 560a59251803183e9608037fa4f6a0306703303a Mon Sep 17 00:00:00 2001 From: Liam Coleman Date: Thu, 6 Feb 2025 10:41:45 -0600 Subject: [PATCH 292/311] Add symbols for instdll and resultdll in us (#562) * Label most of w01Dll * Add symbols for instdll and resultdll in us * Fix pal symbols for instDll * Build resultdll+symbols for pal --- config/GMPE01_00/rels/instDll/symbols.txt | 76 +- config/GMPE01_00/rels/resultDll/symbols.txt | 184 +-- config/GMPP01_00/rels/instDll/symbols.txt | 88 +- config/GMPP01_00/rels/resultDll/symbols.txt | 188 +-- configure.py | 6 +- include/REL/instDll.h | 2 +- include/REL/resultdll.h | 34 +- src/REL/instDll/font.c | 156 +-- src/REL/instDll/main.c | 1033 +++++++------- src/REL/resultDll/battle.c | 589 ++++---- src/REL/resultDll/datalist.c | 38 +- src/REL/resultDll/main.c | 1357 +++++++++---------- 12 files changed, 1876 insertions(+), 1875 deletions(-) diff --git a/config/GMPE01_00/rels/instDll/symbols.txt b/config/GMPE01_00/rels/instDll/symbols.txt index 0580b867..cc0a6047 100644 --- a/config/GMPE01_00/rels/instDll/symbols.txt +++ b/config/GMPE01_00/rels/instDll/symbols.txt @@ -1,16 +1,16 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global ObjectSetup = .text:0x000000A0; // type:function size:0x8F4 -fn_1_994 = .text:0x00000994; // type:function size:0xE50 scope:local -fn_1_17E4 = .text:0x000017E4; // type:function size:0xA28 scope:local -fn_1_220C = .text:0x0000220C; // type:function size:0x5F8 scope:local -fn_1_2804 = .text:0x00002804; // type:function size:0x79C scope:local -fn_1_2FA0 = .text:0x00002FA0; // type:function size:0x11D4 scope:local -fn_1_4174 = .text:0x00004174; // type:function size:0x3B4 scope:local -fn_1_4528 = .text:0x00004528; // type:function size:0xB88 scope:local -fn_1_50B0 = .text:0x000050B0; // type:function size:0xAB4 scope:local -fn_1_5B64 = .text:0x00005B64; // type:function size:0x340 scope:local -fn_1_5EA4 = .text:0x00005EA4; // type:function size:0x4B8 +InstMain = .text:0x00000994; // type:function size:0xE50 scope:local +InstPlayerMain = .text:0x000017E4; // type:function size:0xA28 scope:local +InstHostMain = .text:0x0000220C; // type:function size:0x5F8 scope:local +InstWinMain = .text:0x00002804; // type:function size:0x79C scope:local +InstNameMain = .text:0x00002FA0; // type:function size:0x11D4 scope:local +CameraOutView = .text:0x00004174; // type:function size:0x3B4 scope:local +CameraDebug = .text:0x00004528; // type:function size:0xB88 scope:local +InstPicDraw = .text:0x000050B0; // type:function size:0xAB4 scope:local +ShadowDraw = .text:0x00005B64; // type:function size:0x340 scope:local +FontCreate = .text:0x00005EA4; // type:function size:0x4B8 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float @@ -115,38 +115,38 @@ lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data: lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 scope:local data:2byte +instMode = .data:0x00000000; // type:object size:0x2 scope:local data:2byte lbl_1_data_2 = .data:0x00000002; // type:object size:0x24 scope:local data:string -lbl_1_data_26 = .data:0x00000026; // type:object size:0x20 scope:local -lbl_1_data_46 = .data:0x00000046; // type:object size:0x8 scope:local -lbl_1_data_50 = .data:0x00000050; // type:object size:0x20 scope:local -lbl_1_data_70 = .data:0x00000070; // type:object size:0x20 scope:local +instGrpTbl = .data:0x00000026; // type:object size:0x20 scope:local +instPlayerNumTbl = .data:0x00000046; // type:object size:0x8 scope:local +instBoxFile = .data:0x00000050; // type:object size:0x20 scope:local +instBackFile = .data:0x00000070; // type:object size:0x20 scope:local lbl_1_data_90 = .data:0x00000090; // type:object size:0x8 scope:local data:string lbl_1_data_98 = .data:0x00000098; // type:object size:0x8 scope:local data:string lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x8 scope:local data:string lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x8 scope:local data:string -lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 scope:local -lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x4 scope:local -lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x48 scope:local -lbl_1_data_10C = .data:0x0000010C; // type:object size:0x18 scope:local -lbl_1_data_124 = .data:0x00000124; // type:object size:0x20 scope:local data:float -lbl_1_data_144 = .data:0x00000144; // type:object size:0x4 scope:local +playerPosNameTbl = .data:0x000000B0; // type:object size:0x10 scope:local +playerDelayTbl = .data:0x000000C0; // type:object size:0x4 scope:local +hostFileTbl = .data:0x000000C4; // type:object size:0x48 scope:local +hostSeTbl = .data:0x0000010C; // type:object size:0x18 scope:local +instNamePosTbl = .data:0x00000124; // type:object size:0x20 scope:local data:float +cameraMask$858 = .data:0x00000144; // type:object size:0x4 scope:local lbl_1_data_148 = .data:0x00000148; // type:object size:0x4 scope:local -lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4 scope:local data:float -lbl_1_data_150 = .data:0x00000150; // type:object size:0x318 scope:local -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x1 scope:local data:byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 scope:local data:float -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 scope:local data:2byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 scope:local data:float -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x18 scope:local data:float -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x18 scope:local data:float -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 scope:local data:4byte -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 scope:local data:4byte +instPicRadius = .data:0x0000014C; // type:object size:0x4 scope:local data:float +FontCharFile = .data:0x00000150; // type:object size:0x318 scope:local +debugCamOnF = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte +instBusyF = .bss:0x00000004; // type:object size:0x2 scope:local data:2byte +instPage = .bss:0x00000006; // type:object size:0x2 scope:local data:2byte +LanguageNo = .bss:0x00000008; // type:object size:0x1 scope:local data:byte +instFov = .bss:0x0000000C; // type:object size:0x4 scope:local data:float +instMesOfs = .bss:0x00000010; // type:object size:0x2 scope:local data:2byte +instHostNo = .bss:0x00000012; // type:object size:0x2 scope:local data:2byte +instMgNo = .bss:0x00000014; // type:object size:0x2 scope:local data:2byte +instPicAnim = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte +instBoxMdlId = .bss:0x0000001C; // type:object size:0x4 scope:local data:4byte +cameraZoom = .bss:0x00000020; // type:object size:0x8 data:float +cameraPos = .bss:0x00000028; // type:object size:0x18 data:float +cameraRot = .bss:0x00000040; // type:object size:0x18 data:float +objman = .bss:0x00000058; // type:object size:0x4 data:4byte +outViewObj = .bss:0x0000005C; // type:object size:0x4 scope:local data:4byte lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 scope:local data:4byte diff --git a/config/GMPE01_00/rels/resultDll/symbols.txt b/config/GMPE01_00/rels/resultDll/symbols.txt index 14dbe624..db16ef1b 100644 --- a/config/GMPE01_00/rels/resultDll/symbols.txt +++ b/config/GMPE01_00/rels/resultDll/symbols.txt @@ -1,34 +1,34 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global ObjectSetup = .text:0x000000A0; // type:function size:0x438 -fn_1_4D8 = .text:0x000004D8; // type:function size:0x3B0 -fn_1_888 = .text:0x00000888; // type:function size:0x2F0 -fn_1_B78 = .text:0x00000B78; // type:function size:0x13D4 -fn_1_1F4C = .text:0x00001F4C; // type:function size:0xB90 -fn_1_2ADC = .text:0x00002ADC; // type:function size:0x1074 -fn_1_3B50 = .text:0x00003B50; // type:function size:0x15C -fn_1_3CAC = .text:0x00003CAC; // type:function size:0x15C -fn_1_3E08 = .text:0x00003E08; // type:function size:0x1D0 -fn_1_3FD8 = .text:0x00003FD8; // type:function size:0x104 -fn_1_40DC = .text:0x000040DC; // type:function size:0x160 -fn_1_423C = .text:0x0000423C; // type:function size:0x3E0 -fn_1_461C = .text:0x0000461C; // type:function size:0x1E0 -fn_1_47FC = .text:0x000047FC; // type:function size:0x1084 -fn_1_5880 = .text:0x00005880; // type:function size:0xC10 -fn_1_6490 = .text:0x00006490; // type:function size:0x2D0 -fn_1_6760 = .text:0x00006760; // type:function size:0xC4 -fn_1_6824 = .text:0x00006824; // type:function size:0xD20 -fn_1_7544 = .text:0x00007544; // type:function size:0xA54 -fn_1_7F98 = .text:0x00007F98; // type:function size:0x3A0 -fn_1_8338 = .text:0x00008338; // type:function size:0x14C -fn_1_8484 = .text:0x00008484; // type:function size:0x1D4 -fn_1_8658 = .text:0x00008658; // type:function size:0x84 -fn_1_86DC = .text:0x000086DC; // type:function size:0x2BC -fn_1_8998 = .text:0x00008998; // type:function size:0x320 -fn_1_8CB8 = .text:0x00008CB8; // type:function size:0x340 -fn_1_8FF8 = .text:0x00008FF8; // type:function size:0x284 -fn_1_927C = .text:0x0000927C; // type:function size:0x138 -fn_1_93B4 = .text:0x000093B4; // type:function size:0x78 +ResultMain = .text:0x000004D8; // type:function size:0x3B0 scope:local +ResultIdle = .text:0x00000888; // type:function size:0x2F0 scope:local +ResultCreate = .text:0x00000B78; // type:function size:0x13D4 scope:local +ResultStatAdd = .text:0x00001F4C; // type:function size:0xB90 scope:local +ResultOrderApply = .text:0x00002ADC; // type:function size:0x1074 scope:local +ResultSprNumSet = .text:0x00003B50; // type:function size:0x15C scope:local +ResultCoinAddNumSet = .text:0x00003CAC; // type:function size:0x15C scope:local +ResultOrderSet = .text:0x00003E08; // type:function size:0x1D0 scope:local +ResultBoardDataRead = .text:0x00003FD8; // type:function size:0x104 +ResultCoinAdd = .text:0x000040DC; // type:function size:0x160 +ResultCoinNumGet = .text:0x0000423C; // type:function size:0x3E0 +SaveExec = .text:0x0000461C; // type:function size:0x1E0 scope:local +ResultTeamExec = .text:0x000047FC; // type:function size:0x1084 scope:local +CameraDebug = .text:0x00005880; // type:function size:0xC10 +ResultBattleMain = .text:0x00006490; // type:function size:0x2D0 +ResultBattleIdle = .text:0x00006760; // type:function size:0xC4 scope:local +ResultBattleCreate = .text:0x00006824; // type:function size:0xD20 scope:local +ResultBattleStatAdd = .text:0x00007544; // type:function size:0xA54 scope:local +ResultBattleCoinAddShow = .text:0x00007F98; // type:function size:0x3A0 scope:local +ResultBattleCoinAddNumSet = .text:0x00008338; // type:function size:0x14C scope:local +ResultBattleOrderSet = .text:0x00008484; // type:function size:0x1D4 scope:local +CoinEffectInit = .text:0x00008658; // type:function size:0x84 scope:local +CoinEffectAdd = .text:0x000086DC; // type:function size:0x2BC scope:local +CoinEffectMain = .text:0x00008998; // type:function size:0x320 scope:local +ResultShadowDraw = .text:0x00008CB8; // type:function size:0x340 scope:local +StageModelCreate = .text:0x00008FF8; // type:function size:0x284 +StageSpriteCreate = .text:0x0000927C; // type:function size:0x138 +StageSpriteKill = .text:0x000093B4; // type:function size:0x78 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float @@ -134,77 +134,77 @@ lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data: lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0x2A4 -lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0xDC data:4byte -lbl_1_data_380 = .data:0x00000380; // type:object size:0x2 data:2byte +resultModel = .data:0x00000000; // type:object size:0x2A4 scope:local +resultSprite = .data:0x000002A4; // type:object size:0xDC scope:local data:4byte +rankNewGrpId = .data:0x00000380; // type:object size:0x2 scope:local data:2byte lbl_1_data_382 = .data:0x00000382; // type:object size:0x26 scope:local data:string -lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x18 -lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x18 -lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x20 -lbl_1_data_3F8 = .data:0x000003F8; // type:object size:0x10 -lbl_1_data_408 = .data:0x00000408; // type:object size:0x30 -lbl_1_data_438 = .data:0x00000438; // type:object size:0x10 +resultBackFile = .data:0x000003A8; // type:object size:0x18 scope:local +resultLetterFile = .data:0x000003C0; // type:object size:0x18 scope:local +resultStatPosTbl = .data:0x000003D8; // type:object size:0x20 scope:local +resultRankPosTbl = .data:0x000003F8; // type:object size:0x10 scope:local +resultCharPosTbl = .data:0x00000408; // type:object size:0x30 scope:local +resultCoinAddPosTbl = .data:0x00000438; // type:object size:0x10 scope:local lbl_1_data_448 = .data:0x00000448; // type:object size:0x5 scope:local data:string -lbl_1_data_450 = .data:0x00000450; // type:object size:0x18 -lbl_1_data_468 = .data:0x00000468; // type:object size:0x20 -lbl_1_data_488 = .data:0x00000488; // type:object size:0x30 +resultBoardDirTbl = .data:0x00000450; // type:object size:0x18 scope:local +resultCharMdlTbl = .data:0x00000468; // type:object size:0x20 scope:local +resultTeamCharPosTbl = .data:0x00000488; // type:object size:0x30 scope:local lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0x11 scope:local data:string lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0x11 scope:local data:string lbl_1_data_4DA = .data:0x000004DA; // type:object size:0xB scope:local data:string -lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x270 -lbl_1_data_758 = .data:0x00000758; // type:object size:0x28 -lbl_1_data_780 = .data:0x00000780; // type:object size:0x50 -lbl_1_data_7D0 = .data:0x000007D0; // type:object size:0x20 -lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x30 +resultBattleModel = .data:0x000004E8; // type:object size:0x270 scope:local +resultBattleSprite = .data:0x00000758; // type:object size:0x28 scope:local +resultBattleEffParMan = .data:0x00000780; // type:object size:0x50 scope:local +resultStatPosTbl = .data:0x000007D0; // type:object size:0x20 scope:local +playerPosTbl = .data:0x000007F0; // type:object size:0x30 scope:local lbl_1_data_820 = .data:0x00000820; // type:object size:0x10 -lbl_1_data_830 = .data:0x00000830; // type:object size:0x10 -lbl_1_data_840 = .data:0x00000840; // type:object size:0x20 -lbl_1_data_860 = .data:0x00000860; // type:object size:0x20 -lbl_1_data_880 = .data:0x00000880; // type:object size:0x20 -lbl_1_data_8A0 = .data:0x000008A0; // type:object size:0x6 data:2byte -lbl_1_data_8A6 = .data:0x000008A6; // type:object size:0x8 scope:local data:float -lbl_1_data_8AE = .data:0x000008AE; // type:object size:0x8 scope:local data:float -lbl_1_data_8B8 = .data:0x000008B8; // type:object size:0x60 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte -lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x8 -lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x28 -lbl_1_bss_3A = .bss:0x0000003A; // type:object size:0x8 -lbl_1_bss_42 = .bss:0x00000042; // type:object size:0x8 -lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x8 -lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x2 data:2byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x40 -lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x2 data:2byte -lbl_1_bss_9E = .bss:0x0000009E; // type:object size:0x30 -lbl_1_bss_CE = .bss:0x000000CE; // type:object size:0x12 -lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte -lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x60 -lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x14 -lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x10 -lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x8 -lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x2 data:2byte -lbl_1_bss_172 = .bss:0x00000172; // type:object size:0x2 data:2byte -lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x4 data:4byte -lbl_1_bss_178 = .bss:0x00000178; // type:object size:0x4 data:4byte -lbl_1_bss_17C = .bss:0x0000017C; // type:object size:0x2 data:2byte -lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x4 data:4byte -lbl_1_bss_184 = .bss:0x00000184; // type:object size:0x4 data:4byte +bomheiCubeMdlTbl = .data:0x00000830; // type:object size:0x10 scope:local +coinEffectYOfs = .data:0x00000840; // type:object size:0x20 scope:local +coinAddYOfs = .data:0x00000860; // type:object size:0x20 scope:local +coinBlankYOfs = .data:0x00000880; // type:object size:0x20 scope:local +coinNumXOfs = .data:0x000008A0; // type:object size:0x6 scope:local data:2byte +lbl_1_data_8A6 = .data:0x000008A6; // type:object size:0x8 scope:local data:string +lbl_1_data_8AE = .data:0x000008AE; // type:object size:0x8 scope:local data:string +cameraShakeOfs = .data:0x000008B8; // type:object size:0x60 scope:local +resultReorderF = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte +resultSkipF = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +resultTeamOrder = .bss:0x00000008; // type:object size:0x2 scope:local data:2byte +resultCharCubeMdlId = .bss:0x0000000A; // type:object size:0x8 scope:local +resultCoinAddSprId = .bss:0x00000012; // type:object size:0x28 scope:local +resultCoinAddGrpId = .bss:0x0000003A; // type:object size:0x8 scope:local +resultRank = .bss:0x00000042; // type:object size:0x8 scope:local +resultOrder = .bss:0x0000004A; // type:object size:0x8 scope:local +resultRankGrpId = .bss:0x00000052; // type:object size:0x2 scope:local data:2byte +resultPlayerCubeMdlId = .bss:0x00000054; // type:object size:0x8 scope:local +resultCubeMdlId = .bss:0x0000005C; // type:object size:0x40 scope:local +resultCrownGrpId = .bss:0x0000009C; // type:object size:0x2 scope:local data:2byte +resultNumSprId = .bss:0x0000009E; // type:object size:0x30 scope:local +resultNumGrpId = .bss:0x000000CE; // type:object size:0x10 scope:local +resultCrownAnim = .bss:0x000000E0; // type:object size:0x4 scope:local data:4byte +resultCharAnim = .bss:0x000000E4; // type:object size:0x60 scope:local +resultRankAnim = .bss:0x00000144; // type:object size:0x14 scope:local +statShadowMdlId = .bss:0x00000158; // type:object size:0x10 scope:local +charShadowMdlId = .bss:0x00000168; // type:object size:0x8 scope:local +teamResultGrpId = .bss:0x00000170; // type:object size:0x2 scope:local data:2byte +resultBonusPlayer = .bss:0x00000172; // type:object size:0x2 data:2byte +resultFastF = .bss:0x00000174; // type:object size:0x4 data:4byte +resultReadEndF = .bss:0x00000178; // type:object size:0x4 data:4byte +resultMgNo = .bss:0x0000017C; // type:object size:0x2 data:2byte +objman = .bss:0x00000180; // type:object size:0x4 data:4byte +outViewObj = .bss:0x00000184; // type:object size:0x4 scope:local data:4byte lbl_1_bss_188 = .bss:0x00000188; // type:object size:0x4 data:4byte -lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:4byte -lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x1680 -lbl_1_bss_1814 = .bss:0x00001814; // type:object size:0x8 +resultBattleSkipF = .bss:0x00000190; // type:object size:0x4 scope:local data:4byte +coinEffectData = .bss:0x00000194; // type:object size:0x1680 scope:local +resultBattleEffParManId = .bss:0x00001814; // type:object size:0x8 scope:local lbl_1_bss_181C = .bss:0x0000181C; // type:object size:0xC -lbl_1_bss_1828 = .bss:0x00001828; // type:object size:0x168 data:2byte -lbl_1_bss_1990 = .bss:0x00001990; // type:object size:0x20 -lbl_1_bss_19B0 = .bss:0x000019B0; // type:object size:0x8 -lbl_1_bss_19B8 = .bss:0x000019B8; // type:object size:0x28 -lbl_1_bss_19E0 = .bss:0x000019E0; // type:object size:0x8 -lbl_1_bss_19E8 = .bss:0x000019E8; // type:object size:0x8 -lbl_1_bss_19F0 = .bss:0x000019F0; // type:object size:0x8 +coinEffectMdlId = .bss:0x00001828; // type:object size:0x168 scope:local data:2byte +resultBattleCharMot = .bss:0x00001990; // type:object size:0x20 scope:local +resultBattleCharMdl = .bss:0x000019B0; // type:object size:0x8 scope:local +coinNumSprId = .bss:0x000019B8; // type:object size:0x28 scope:local +coinNumGrpId = .bss:0x000019E0; // type:object size:0x8 scope:local +resultBattleRank = .bss:0x000019E8; // type:object size:0x8 scope:local +resultBattleOrder = .bss:0x000019F0; // type:object size:0x8 scope:local lbl_1_bss_19F8 = .bss:0x000019F8; // type:object size:0x20 lbl_1_bss_1A18 = .bss:0x00001A18; // type:object size:0x2 -lbl_1_bss_1A1A = .bss:0x00001A1A; // type:object size:0x42 data:2byte -lbl_1_bss_1A5C = .bss:0x00001A5C; // type:object size:0x40 data:2byte -lbl_1_bss_1A9C = .bss:0x00001A9C; // type:object size:0x40 data:2byte +stageSprId = .bss:0x00001A1A; // type:object size:0x42 data:2byte +stageMotId = .bss:0x00001A5C; // type:object size:0x40 data:2byte +stageSprId = .bss:0x00001A9C; // type:object size:0x40 data:2byte diff --git a/config/GMPP01_00/rels/instDll/symbols.txt b/config/GMPP01_00/rels/instDll/symbols.txt index 5cb1ad79..da39c5b5 100644 --- a/config/GMPP01_00/rels/instDll/symbols.txt +++ b/config/GMPP01_00/rels/instDll/symbols.txt @@ -1,16 +1,16 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global ObjectSetup = .text:0x000000A0; // type:function size:0x8F4 -fn_1_994 = .text:0x00000994; // type:function size:0xE50 -fn_1_17E4 = .text:0x000017E4; // type:function size:0xA28 -fn_1_220C = .text:0x0000220C; // type:function size:0x5F8 -fn_1_2804 = .text:0x00002804; // type:function size:0x79C -fn_1_2FA0 = .text:0x00002FA0; // type:function size:0x11D4 -fn_1_4174 = .text:0x00004174; // type:function size:0x3B4 -fn_1_4528 = .text:0x00004528; // type:function size:0xB88 -fn_1_50B0 = .text:0x000050B0; // type:function size:0xAB4 -fn_1_5B64 = .text:0x00005B64; // type:function size:0x340 -fn_1_5EA4 = .text:0x00005EA4; // type:function size:0x3F8 +InstMain = .text:0x00000994; // type:function size:0xE50 scope:local +InstPlayerMain = .text:0x000017E4; // type:function size:0xA28 scope:local +InstHostMain = .text:0x0000220C; // type:function size:0x5F8 scope:local +InstWinMain = .text:0x00002804; // type:function size:0x79C scope:local +InstNameMain = .text:0x00002FA0; // type:function size:0x11D4 scope:local +CameraOutView = .text:0x00004174; // type:function size:0x3B4 scope:local +CameraDebug = .text:0x00004528; // type:function size:0xB88 scope:local +InstPicDraw = .text:0x000050B0; // type:function size:0xAB4 scope:local +ShadowDraw = .text:0x00005B64; // type:function size:0x340 scope:local +FontCreate = .text:0x00005EA4; // type:function size:0x3F8 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float @@ -112,36 +112,38 @@ lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0x2 data:2byte -lbl_1_data_2 = .data:0x00000002; // type:object size:0x24 data:string -lbl_1_data_26 = .data:0x00000026; // type:object size:0x20 -lbl_1_data_46 = .data:0x00000046; // type:object size:0xA -lbl_1_data_50 = .data:0x00000050; // type:object size:0x20 -lbl_1_data_70 = .data:0x00000070; // type:object size:0x20 -lbl_1_data_90 = .data:0x00000090; // type:object size:0x8 data:string -lbl_1_data_98 = .data:0x00000098; // type:object size:0x8 data:string -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x8 data:string -lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x8 data:string -lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x10 -lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x4 -lbl_1_data_C4 = .data:0x000000C4; // type:object size:0x48 -lbl_1_data_10C = .data:0x0000010C; // type:object size:0x18 -lbl_1_data_124 = .data:0x00000124; // type:object size:0x20 data:float -lbl_1_data_144 = .data:0x00000144; // type:object size:0x8 -lbl_1_data_14C = .data:0x0000014C; // type:object size:0x4 data:float -lbl_1_data_150 = .data:0x00000150; // type:object size:0x4C0 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte -lbl_1_bss_6 = .bss:0x00000006; // type:object size:0x2 data:2byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x1 data:byte -lbl_1_bss_C = .bss:0x0000000C; // type:object size:0x4 data:float -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x2 data:2byte -lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x2 data:2byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x2 data:2byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x8 data:float -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x18 data:float -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x18 data:float -lbl_1_bss_58 = .bss:0x00000058; // type:object size:0x4 data:4byte -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x8 data:4byte +instMode = .data:0x00000000; // type:object size:0x2 scope:local data:2byte +lbl_1_data_2 = .data:0x00000002; // type:object size:0x24 scope:local data:string +instGrpTbl = .data:0x00000026; // type:object size:0x20 scope:local +instPlayerNumTbl = .data:0x00000046; // type:object size:0x8 scope:local +instBoxFile = .data:0x00000050; // type:object size:0x20 scope:local +instBackFile = .data:0x00000070; // type:object size:0x20 scope:local +lbl_1_data_90 = .data:0x00000090; // type:object size:0x8 scope:local data:string +lbl_1_data_98 = .data:0x00000098; // type:object size:0x8 scope:local data:string +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x8 scope:local data:string +lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x8 scope:local data:string +playerPosNameTbl = .data:0x000000B0; // type:object size:0x10 scope:local +playerDelayTbl = .data:0x000000C0; // type:object size:0x4 scope:local +hostFileTbl = .data:0x000000C4; // type:object size:0x48 scope:local +hostSeTbl = .data:0x0000010C; // type:object size:0x18 scope:local +instNamePosTbl = .data:0x00000124; // type:object size:0x20 scope:local data:float +cameraMask$858 = .data:0x00000144; // type:object size:0x4 scope:local +lbl_1_data_148 = .data:0x00000148; // type:object size:0x4 scope:local +instPicRadius = .data:0x0000014C; // type:object size:0x4 scope:local data:float +FontCharFile = .data:0x00000150; // type:object size:0x4C0 scope:local +debugCamOnF = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte +instBusyF = .bss:0x00000004; // type:object size:0x2 scope:local data:2byte +instPage = .bss:0x00000006; // type:object size:0x2 scope:local data:2byte +LanguageNo = .bss:0x00000008; // type:object size:0x1 scope:local data:byte +instFov = .bss:0x0000000C; // type:object size:0x4 scope:local data:float +instMesOfs = .bss:0x00000010; // type:object size:0x2 scope:local data:2byte +instHostNo = .bss:0x00000012; // type:object size:0x2 scope:local data:2byte +instMgNo = .bss:0x00000014; // type:object size:0x2 scope:local data:2byte +instPicAnim = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte +instBoxMdlId = .bss:0x0000001C; // type:object size:0x4 scope:local data:4byte +cameraZoom = .bss:0x00000020; // type:object size:0x8 data:float +cameraPos = .bss:0x00000028; // type:object size:0x18 data:float +cameraRot = .bss:0x00000040; // type:object size:0x18 data:float +objman = .bss:0x00000058; // type:object size:0x4 data:4byte +outViewObj = .bss:0x0000005C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 scope:local data:4byte diff --git a/config/GMPP01_00/rels/resultDll/symbols.txt b/config/GMPP01_00/rels/resultDll/symbols.txt index b0b7a9af..db16ef1b 100644 --- a/config/GMPP01_00/rels/resultDll/symbols.txt +++ b/config/GMPP01_00/rels/resultDll/symbols.txt @@ -1,34 +1,34 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global ObjectSetup = .text:0x000000A0; // type:function size:0x438 -fn_1_4D8 = .text:0x000004D8; // type:function size:0x3B0 -fn_1_888 = .text:0x00000888; // type:function size:0x2F0 -fn_1_B78 = .text:0x00000B78; // type:function size:0x13D4 -fn_1_1F4C = .text:0x00001F4C; // type:function size:0xB90 -fn_1_2ADC = .text:0x00002ADC; // type:function size:0x1074 -fn_1_3B50 = .text:0x00003B50; // type:function size:0x15C -fn_1_3CAC = .text:0x00003CAC; // type:function size:0x15C -fn_1_3E08 = .text:0x00003E08; // type:function size:0x1D0 -fn_1_3FD8 = .text:0x00003FD8; // type:function size:0x104 -fn_1_40DC = .text:0x000040DC; // type:function size:0x160 -fn_1_423C = .text:0x0000423C; // type:function size:0x3E0 -fn_1_461C = .text:0x0000461C; // type:function size:0x1E0 -fn_1_47FC = .text:0x000047FC; // type:function size:0x1084 -fn_1_5880 = .text:0x00005880; // type:function size:0xC10 -fn_1_6490 = .text:0x00006490; // type:function size:0x2D0 -fn_1_6760 = .text:0x00006760; // type:function size:0xC4 -fn_1_6824 = .text:0x00006824; // type:function size:0xD20 -fn_1_7544 = .text:0x00007544; // type:function size:0xA54 -fn_1_7F98 = .text:0x00007F98; // type:function size:0x3A0 -fn_1_8338 = .text:0x00008338; // type:function size:0x14C -fn_1_8484 = .text:0x00008484; // type:function size:0x1D4 -fn_1_8658 = .text:0x00008658; // type:function size:0x84 -fn_1_86DC = .text:0x000086DC; // type:function size:0x2BC -fn_1_8998 = .text:0x00008998; // type:function size:0x320 -fn_1_8CB8 = .text:0x00008CB8; // type:function size:0x340 -fn_1_8FF8 = .text:0x00008FF8; // type:function size:0x284 -fn_1_927C = .text:0x0000927C; // type:function size:0x138 -fn_1_93B4 = .text:0x000093B4; // type:function size:0x78 +ResultMain = .text:0x000004D8; // type:function size:0x3B0 scope:local +ResultIdle = .text:0x00000888; // type:function size:0x2F0 scope:local +ResultCreate = .text:0x00000B78; // type:function size:0x13D4 scope:local +ResultStatAdd = .text:0x00001F4C; // type:function size:0xB90 scope:local +ResultOrderApply = .text:0x00002ADC; // type:function size:0x1074 scope:local +ResultSprNumSet = .text:0x00003B50; // type:function size:0x15C scope:local +ResultCoinAddNumSet = .text:0x00003CAC; // type:function size:0x15C scope:local +ResultOrderSet = .text:0x00003E08; // type:function size:0x1D0 scope:local +ResultBoardDataRead = .text:0x00003FD8; // type:function size:0x104 +ResultCoinAdd = .text:0x000040DC; // type:function size:0x160 +ResultCoinNumGet = .text:0x0000423C; // type:function size:0x3E0 +SaveExec = .text:0x0000461C; // type:function size:0x1E0 scope:local +ResultTeamExec = .text:0x000047FC; // type:function size:0x1084 scope:local +CameraDebug = .text:0x00005880; // type:function size:0xC10 +ResultBattleMain = .text:0x00006490; // type:function size:0x2D0 +ResultBattleIdle = .text:0x00006760; // type:function size:0xC4 scope:local +ResultBattleCreate = .text:0x00006824; // type:function size:0xD20 scope:local +ResultBattleStatAdd = .text:0x00007544; // type:function size:0xA54 scope:local +ResultBattleCoinAddShow = .text:0x00007F98; // type:function size:0x3A0 scope:local +ResultBattleCoinAddNumSet = .text:0x00008338; // type:function size:0x14C scope:local +ResultBattleOrderSet = .text:0x00008484; // type:function size:0x1D4 scope:local +CoinEffectInit = .text:0x00008658; // type:function size:0x84 scope:local +CoinEffectAdd = .text:0x000086DC; // type:function size:0x2BC scope:local +CoinEffectMain = .text:0x00008998; // type:function size:0x320 scope:local +ResultShadowDraw = .text:0x00008CB8; // type:function size:0x340 scope:local +StageModelCreate = .text:0x00008FF8; // type:function size:0x284 +StageSpriteCreate = .text:0x0000927C; // type:function size:0x138 +StageSpriteKill = .text:0x000093B4; // type:function size:0x78 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float @@ -94,7 +94,7 @@ lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data: lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float @@ -134,77 +134,77 @@ lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data: lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double -lbl_1_data_0 = .data:0x00000000; // type:object size:0x2A4 -lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0xDC data:4byte -lbl_1_data_380 = .data:0x00000380; // type:object size:0x2 data:2byte +resultModel = .data:0x00000000; // type:object size:0x2A4 scope:local +resultSprite = .data:0x000002A4; // type:object size:0xDC scope:local data:4byte +rankNewGrpId = .data:0x00000380; // type:object size:0x2 scope:local data:2byte lbl_1_data_382 = .data:0x00000382; // type:object size:0x26 scope:local data:string -lbl_1_data_3A8 = .data:0x000003A8; // type:object size:0x18 -lbl_1_data_3C0 = .data:0x000003C0; // type:object size:0x18 -lbl_1_data_3D8 = .data:0x000003D8; // type:object size:0x20 -lbl_1_data_3F8 = .data:0x000003F8; // type:object size:0x10 -lbl_1_data_408 = .data:0x00000408; // type:object size:0x30 -lbl_1_data_438 = .data:0x00000438; // type:object size:0x10 -lbl_1_data_448 = .data:0x00000448; // type:object size:0x8 scope:local -lbl_1_data_450 = .data:0x00000450; // type:object size:0x18 -lbl_1_data_468 = .data:0x00000468; // type:object size:0x20 -lbl_1_data_488 = .data:0x00000488; // type:object size:0x30 +resultBackFile = .data:0x000003A8; // type:object size:0x18 scope:local +resultLetterFile = .data:0x000003C0; // type:object size:0x18 scope:local +resultStatPosTbl = .data:0x000003D8; // type:object size:0x20 scope:local +resultRankPosTbl = .data:0x000003F8; // type:object size:0x10 scope:local +resultCharPosTbl = .data:0x00000408; // type:object size:0x30 scope:local +resultCoinAddPosTbl = .data:0x00000438; // type:object size:0x10 scope:local +lbl_1_data_448 = .data:0x00000448; // type:object size:0x5 scope:local data:string +resultBoardDirTbl = .data:0x00000450; // type:object size:0x18 scope:local +resultCharMdlTbl = .data:0x00000468; // type:object size:0x20 scope:local +resultTeamCharPosTbl = .data:0x00000488; // type:object size:0x30 scope:local lbl_1_data_4B8 = .data:0x000004B8; // type:object size:0x11 scope:local data:string lbl_1_data_4C9 = .data:0x000004C9; // type:object size:0x11 scope:local data:string lbl_1_data_4DA = .data:0x000004DA; // type:object size:0xB scope:local data:string -lbl_1_data_4E8 = .data:0x000004E8; // type:object size:0x270 -lbl_1_data_758 = .data:0x00000758; // type:object size:0x28 -lbl_1_data_780 = .data:0x00000780; // type:object size:0x50 -lbl_1_data_7D0 = .data:0x000007D0; // type:object size:0x20 -lbl_1_data_7F0 = .data:0x000007F0; // type:object size:0x30 +resultBattleModel = .data:0x000004E8; // type:object size:0x270 scope:local +resultBattleSprite = .data:0x00000758; // type:object size:0x28 scope:local +resultBattleEffParMan = .data:0x00000780; // type:object size:0x50 scope:local +resultStatPosTbl = .data:0x000007D0; // type:object size:0x20 scope:local +playerPosTbl = .data:0x000007F0; // type:object size:0x30 scope:local lbl_1_data_820 = .data:0x00000820; // type:object size:0x10 -lbl_1_data_830 = .data:0x00000830; // type:object size:0x10 -lbl_1_data_840 = .data:0x00000840; // type:object size:0x20 -lbl_1_data_860 = .data:0x00000860; // type:object size:0x20 -lbl_1_data_880 = .data:0x00000880; // type:object size:0x20 -lbl_1_data_8A0 = .data:0x000008A0; // type:object size:0x6 data:2byte -lbl_1_data_8A6 = .data:0x000008A6; // type:object size:0x8 scope:local data:float -lbl_1_data_8AE = .data:0x000008AE; // type:object size:0x8 scope:local data:float -lbl_1_data_8B8 = .data:0x000008B8; // type:object size:0x60 -lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x2 data:2byte -lbl_1_bss_A = .bss:0x0000000A; // type:object size:0x8 -lbl_1_bss_12 = .bss:0x00000012; // type:object size:0x28 -lbl_1_bss_3A = .bss:0x0000003A; // type:object size:0x8 -lbl_1_bss_42 = .bss:0x00000042; // type:object size:0x8 -lbl_1_bss_4A = .bss:0x0000004A; // type:object size:0x8 -lbl_1_bss_52 = .bss:0x00000052; // type:object size:0x2 data:2byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x40 -lbl_1_bss_9C = .bss:0x0000009C; // type:object size:0x2 data:2byte -lbl_1_bss_9E = .bss:0x0000009E; // type:object size:0x30 -lbl_1_bss_CE = .bss:0x000000CE; // type:object size:0x12 -lbl_1_bss_E0 = .bss:0x000000E0; // type:object size:0x4 data:4byte -lbl_1_bss_E4 = .bss:0x000000E4; // type:object size:0x60 -lbl_1_bss_144 = .bss:0x00000144; // type:object size:0x14 -lbl_1_bss_158 = .bss:0x00000158; // type:object size:0x10 -lbl_1_bss_168 = .bss:0x00000168; // type:object size:0x8 -lbl_1_bss_170 = .bss:0x00000170; // type:object size:0x2 data:2byte -lbl_1_bss_172 = .bss:0x00000172; // type:object size:0x2 data:2byte -lbl_1_bss_174 = .bss:0x00000174; // type:object size:0x4 data:4byte -lbl_1_bss_178 = .bss:0x00000178; // type:object size:0x4 data:4byte -lbl_1_bss_17C = .bss:0x0000017C; // type:object size:0x2 data:2byte -lbl_1_bss_180 = .bss:0x00000180; // type:object size:0x4 data:4byte -lbl_1_bss_184 = .bss:0x00000184; // type:object size:0x4 data:4byte +bomheiCubeMdlTbl = .data:0x00000830; // type:object size:0x10 scope:local +coinEffectYOfs = .data:0x00000840; // type:object size:0x20 scope:local +coinAddYOfs = .data:0x00000860; // type:object size:0x20 scope:local +coinBlankYOfs = .data:0x00000880; // type:object size:0x20 scope:local +coinNumXOfs = .data:0x000008A0; // type:object size:0x6 scope:local data:2byte +lbl_1_data_8A6 = .data:0x000008A6; // type:object size:0x8 scope:local data:string +lbl_1_data_8AE = .data:0x000008AE; // type:object size:0x8 scope:local data:string +cameraShakeOfs = .data:0x000008B8; // type:object size:0x60 scope:local +resultReorderF = .bss:0x00000000; // type:object size:0x4 scope:local data:4byte +resultSkipF = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +resultTeamOrder = .bss:0x00000008; // type:object size:0x2 scope:local data:2byte +resultCharCubeMdlId = .bss:0x0000000A; // type:object size:0x8 scope:local +resultCoinAddSprId = .bss:0x00000012; // type:object size:0x28 scope:local +resultCoinAddGrpId = .bss:0x0000003A; // type:object size:0x8 scope:local +resultRank = .bss:0x00000042; // type:object size:0x8 scope:local +resultOrder = .bss:0x0000004A; // type:object size:0x8 scope:local +resultRankGrpId = .bss:0x00000052; // type:object size:0x2 scope:local data:2byte +resultPlayerCubeMdlId = .bss:0x00000054; // type:object size:0x8 scope:local +resultCubeMdlId = .bss:0x0000005C; // type:object size:0x40 scope:local +resultCrownGrpId = .bss:0x0000009C; // type:object size:0x2 scope:local data:2byte +resultNumSprId = .bss:0x0000009E; // type:object size:0x30 scope:local +resultNumGrpId = .bss:0x000000CE; // type:object size:0x10 scope:local +resultCrownAnim = .bss:0x000000E0; // type:object size:0x4 scope:local data:4byte +resultCharAnim = .bss:0x000000E4; // type:object size:0x60 scope:local +resultRankAnim = .bss:0x00000144; // type:object size:0x14 scope:local +statShadowMdlId = .bss:0x00000158; // type:object size:0x10 scope:local +charShadowMdlId = .bss:0x00000168; // type:object size:0x8 scope:local +teamResultGrpId = .bss:0x00000170; // type:object size:0x2 scope:local data:2byte +resultBonusPlayer = .bss:0x00000172; // type:object size:0x2 data:2byte +resultFastF = .bss:0x00000174; // type:object size:0x4 data:4byte +resultReadEndF = .bss:0x00000178; // type:object size:0x4 data:4byte +resultMgNo = .bss:0x0000017C; // type:object size:0x2 data:2byte +objman = .bss:0x00000180; // type:object size:0x4 data:4byte +outViewObj = .bss:0x00000184; // type:object size:0x4 scope:local data:4byte lbl_1_bss_188 = .bss:0x00000188; // type:object size:0x4 data:4byte -lbl_1_bss_190 = .bss:0x00000190; // type:object size:0x4 data:4byte -lbl_1_bss_194 = .bss:0x00000194; // type:object size:0x1680 -lbl_1_bss_1814 = .bss:0x00001814; // type:object size:0x8 +resultBattleSkipF = .bss:0x00000190; // type:object size:0x4 scope:local data:4byte +coinEffectData = .bss:0x00000194; // type:object size:0x1680 scope:local +resultBattleEffParManId = .bss:0x00001814; // type:object size:0x8 scope:local lbl_1_bss_181C = .bss:0x0000181C; // type:object size:0xC -lbl_1_bss_1828 = .bss:0x00001828; // type:object size:0x168 data:2byte -lbl_1_bss_1990 = .bss:0x00001990; // type:object size:0x20 -lbl_1_bss_19B0 = .bss:0x000019B0; // type:object size:0x8 -lbl_1_bss_19B8 = .bss:0x000019B8; // type:object size:0x28 -lbl_1_bss_19E0 = .bss:0x000019E0; // type:object size:0x8 -lbl_1_bss_19E8 = .bss:0x000019E8; // type:object size:0x8 -lbl_1_bss_19F0 = .bss:0x000019F0; // type:object size:0x8 +coinEffectMdlId = .bss:0x00001828; // type:object size:0x168 scope:local data:2byte +resultBattleCharMot = .bss:0x00001990; // type:object size:0x20 scope:local +resultBattleCharMdl = .bss:0x000019B0; // type:object size:0x8 scope:local +coinNumSprId = .bss:0x000019B8; // type:object size:0x28 scope:local +coinNumGrpId = .bss:0x000019E0; // type:object size:0x8 scope:local +resultBattleRank = .bss:0x000019E8; // type:object size:0x8 scope:local +resultBattleOrder = .bss:0x000019F0; // type:object size:0x8 scope:local lbl_1_bss_19F8 = .bss:0x000019F8; // type:object size:0x20 lbl_1_bss_1A18 = .bss:0x00001A18; // type:object size:0x2 -lbl_1_bss_1A1A = .bss:0x00001A1A; // type:object size:0x42 data:2byte -lbl_1_bss_1A5C = .bss:0x00001A5C; // type:object size:0x40 data:2byte -lbl_1_bss_1A9C = .bss:0x00001A9C; // type:object size:0x40 data:2byte +stageSprId = .bss:0x00001A1A; // type:object size:0x42 data:2byte +stageMotId = .bss:0x00001A5C; // type:object size:0x40 data:2byte +stageSprId = .bss:0x00001A9C; // type:object size:0x40 data:2byte diff --git a/configure.py b/configure.py index bd9561f0..1e740726 100644 --- a/configure.py +++ b/configure.py @@ -1457,9 +1457,9 @@ config.libs = [ Rel( "resultDll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/resultDll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/resultDll/battle.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/resultDll/datalist.c"), + Object(Matching, "REL/resultDll/main.c"), + Object(Matching, "REL/resultDll/battle.c"), + Object(Matching, "REL/resultDll/datalist.c"), }, ), Rel( diff --git a/include/REL/instDll.h b/include/REL/instDll.h index 8b00303e..adf1fe5c 100644 --- a/include/REL/instDll.h +++ b/include/REL/instDll.h @@ -3,6 +3,6 @@ #include "game/minigame_seq.h" -s32 fn_1_5EA4(SeqWork *work, char *mess, s16 jp_flag); +s32 FontCreate(SeqWork *work, char *mess, s16 jp_flag); #endif diff --git a/include/REL/resultdll.h b/include/REL/resultdll.h index afaf5df3..240731b4 100644 --- a/include/REL/resultdll.h +++ b/include/REL/resultdll.h @@ -7,7 +7,7 @@ #include "game/sprite.h" -typedef struct datalist_model { +typedef struct StageModel_s { s32 datanum; u32 attr; s16 type; @@ -16,33 +16,33 @@ typedef struct datalist_model { Vec pos; Vec rot; Vec scale; -} DataListModel; +} StageModel; -typedef struct datalist_sprite { +typedef struct StageSprite_s { u32 datanum; s16 attr; s16 prio; float x; float y; GXColor color; -} DataListSprite; +} StageSprite; -void fn_1_3FD8(void); -void fn_1_40DC(void); -void fn_1_423C(s16 *data); +void ResultBoardDataRead(void); +void ResultCoinAdd(void); +void ResultCoinNumGet(s16 *coinNum); -void fn_1_6490(void); +void ResultBattleMain(void); -void fn_1_8FF8(DataListModel *model_list); -void fn_1_927C(DataListSprite *sprite_list); -void fn_1_93B4(void); +void StageModelCreate(StageModel *model_list); +void StageSpriteCreate(StageSprite *sprite_list); +void StageSpriteKill(void); -extern s16 lbl_1_bss_1A9C[32]; -extern s16 lbl_1_bss_1A5C[32]; -extern s16 lbl_1_bss_1A1A[33]; +extern s16 stageMdlId[32]; +extern s16 stageMotId[32]; +extern s16 stageSprId[33]; extern s16 lbl_1_bss_1A18; -extern s32 lbl_1_bss_178; -extern s32 lbl_1_bss_174; -extern s16 lbl_1_bss_172; +extern s32 resultReadEndF; +extern s32 resultFastF; +extern s16 resultBonusPlayer; #endif \ No newline at end of file diff --git a/src/REL/instDll/font.c b/src/REL/instDll/font.c index af50f5d5..9986bd62 100644 --- a/src/REL/instDll/font.c +++ b/src/REL/instDll/font.c @@ -2,7 +2,7 @@ #include "REL/instDll.h" -s32 lbl_1_data_150[0xC6] = { +static s32 FontCharFile[0xC6] = { 0, 0, 0, @@ -203,115 +203,115 @@ s32 lbl_1_data_150[0xC6] = { DATA_MAKE_NUM(DATADIR_INST, 0x25), }; -s32 fn_1_5EA4(SeqWork *work, char *mess, s16 jp_flag) +s32 FontCreate(SeqWork *work, char *mess, s16 jp_flag) { - char *var_r31; - s16 var_r30; - s16 *var_r29; - s16 var_r28; - s32 *var_r27; - s16 var_r26; - s16 var_r25; - s32 var_r24; - s16 *var_r22; - AnimData **var_r21; - s16 var_r20; - s16 var_r19; + char *str; + s16 len; + s16 *posY; + s16 charNum; + s32 *fileTbl; + s16 i; + s16 grpNo; + s32 file; + s16 *posX; + AnimData **animP; + s16 gid; + s16 sprid; - var_r27 = lbl_1_data_150; - for (var_r25 = 0; var_r25 < 0x10; var_r25++) { - if (work->spr_grp[var_r25] == -1) { + fileTbl = FontCharFile; + for (grpNo = 0; grpNo < 0x10; grpNo++) { + if (work->spr_grp[grpNo] == -1) { break; } } - if (var_r25 == 0x10) { + if (grpNo == 0x10) { return -1; } - var_r21 = HuMemDirectMalloc(HEAP_SYSTEM, 0x190); - var_r22 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); - var_r29 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); + animP = HuMemDirectMalloc(HEAP_SYSTEM, 0x190); + posX = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); + posY = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); - for (var_r31 = mess, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) { - if (var_r31[0] == 0x20 || var_r31[0] == 0x10) { - var_r30 += 0xE; + for (str = mess, len = 0, charNum = 0; str[0] != 0; str++) { + if (str[0] == 0x20 || str[0] == 0x10) { + len += 0xE; } - else if (var_r31[0] < 0x30) { + else if (str[0] < 0x30) { } - else if (var_r31[0] == 0x80) { + else if (str[0] == 0x80) { } - else if (var_r31[0] == 0x81) { + else if (str[0] == 0x81) { } else { - if (var_r31[1] == 0x80) { - if ((var_r31[0] >= 0x96) && (var_r31[0] <= 0xA4)) { - var_r24 = var_r27[var_r31[0] + 0x6A]; + if (str[1] == 0x80) { + if ((str[0] >= 0x96) && (str[0] <= 0xA4)) { + file = fileTbl[str[0] + 0x6A]; } - else if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { - var_r24 = var_r27[var_r31[0] + 0x65]; + else if ((str[0] >= 0xAA) && (str[0] <= 0xAE)) { + file = fileTbl[str[0] + 0x65]; } - else if ((var_r31[0] >= 0xD6) && (var_r31[0] <= 0xE4)) { - var_r24 = var_r27[var_r31[0] + 0x43]; + else if ((str[0] >= 0xD6) && (str[0] <= 0xE4)) { + file = fileTbl[str[0] + 0x43]; } - else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { - var_r24 = var_r27[var_r31[0] + 0x3E]; + else if ((str[0] >= 0xEA) && (str[0] <= 0xEE)) { + file = fileTbl[str[0] + 0x3E]; } } - else if (var_r31[1] == 0x81) { - if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { - var_r24 = var_r27[var_r31[0] + 0x6A]; + else if (str[1] == 0x81) { + if ((str[0] >= 0xAA) && (str[0] <= 0xAE)) { + file = fileTbl[str[0] + 0x6A]; } - else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { - var_r24 = var_r27[var_r31[0] + 0x43]; + else if ((str[0] >= 0xEA) && (str[0] <= 0xEE)) { + file = fileTbl[str[0] + 0x43]; } } else { - var_r24 = var_r27[var_r31[0]]; + file = fileTbl[str[0]]; } - var_r21[var_r28] = HuSprAnimReadFile(var_r24); - var_r22[var_r28] = var_r30; - if ((var_r31[0] >= 0x61) && (var_r31[0] <= 0x7A)) { - var_r29[var_r28] = 2; - var_r30 += 0x12; + animP[charNum] = HuSprAnimReadFile(file); + posX[charNum] = len; + if ((str[0] >= 0x61) && (str[0] <= 0x7A)) { + posY[charNum] = 2; + len += 0x12; } - else if ((var_r31[0] == 0xC2) || (var_r31[0] == 0xC3)) { - var_r29[var_r28] = 0; - var_r30 += 0x12; + else if ((str[0] == 0xC2) || (str[0] == 0xC3)) { + posY[charNum] = 0; + len += 0x12; } - else if (var_r31[0] == 0x5C || var_r31[0] == 0x85) { - var_r29[var_r28] = 0; - var_r30 += 8; + else if (str[0] == 0x5C || str[0] == 0x85) { + posY[charNum] = 0; + len += 8; } - else if ((var_r31[0] >= 0x87) && (var_r31[0] <= 0x8F)) { - var_r29[var_r28] = 4; - var_r30 += 0x18; + else if ((str[0] >= 0x87) && (str[0] <= 0x8F)) { + posY[charNum] = 4; + len += 0x18; } - else if ((var_r31[0] >= 0xC7) && (var_r31[0] <= 0xCF)) { - var_r29[var_r28] = 4; - var_r30 += 0x18; + else if ((str[0] >= 0xC7) && (str[0] <= 0xCF)) { + posY[charNum] = 4; + len += 0x18; } - else if ((var_r31[0] == 0x3D) || (var_r31[0] == 0x84)) { - var_r29[var_r28] = 0; - var_r30 += 0x14; + else if ((str[0] == 0x3D) || (str[0] == 0x84)) { + posY[charNum] = 0; + len += 0x14; } else { - var_r29[var_r28] = 0; - var_r30 += 0x1C; + posY[charNum] = 0; + len += 0x1C; } - var_r28++; + charNum++; } } - var_r20 = HuSprGrpCreate(var_r28); - work->spr_grp[var_r25] = var_r20; - work->alt_word_len = var_r30; - var_r30 = (var_r30 / 2) - 0xE; - for (var_r26 = 0; var_r26 < var_r28; var_r26++) { - var_r19 = HuSprCreate(var_r21[var_r26], 0, 0); - HuSprGrpMemberSet(var_r20, var_r26, var_r19); - HuSprPosSet(var_r20, var_r26, var_r22[var_r26] - var_r30, var_r29[var_r26]); + gid = HuSprGrpCreate(charNum); + work->spr_grp[grpNo] = gid; + work->alt_word_len = len; + len = (len / 2) - 0xE; + for (i = 0; i < charNum; i++) { + sprid = HuSprCreate(animP[i], 0, 0); + HuSprGrpMemberSet(gid, i, sprid); + HuSprPosSet(gid, i, posX[i] - len, posY[i]); } - work->word_len = var_r28; - HuMemDirectFree(var_r21); - HuMemDirectFree(var_r22); - HuMemDirectFree(var_r29); - return var_r25; + work->word_len = charNum; + HuMemDirectFree(animP); + HuMemDirectFree(posX); + HuMemDirectFree(posY); + return grpNo; } diff --git a/src/REL/instDll/main.c b/src/REL/instDll/main.c index 5bfac016..5d7b064c 100644 --- a/src/REL/instDll/main.c +++ b/src/REL/instDll/main.c @@ -23,55 +23,55 @@ #include "REL/instDll.h" -static s16 lbl_1_data_0 = 1; +static s16 instMode = 1; static omObjData *lbl_1_bss_60; -static omObjData *lbl_1_bss_5C; -static Process *lbl_1_bss_58; -static Vec lbl_1_bss_40[2]; -static Vec lbl_1_bss_28[2]; -static float lbl_1_bss_20[2]; -static s32 lbl_1_bss_1C; -static AnimData *lbl_1_bss_18; -static u16 lbl_1_bss_14; -static u16 lbl_1_bss_12; -static u16 lbl_1_bss_10; -static float lbl_1_bss_C; -static u8 lbl_1_bss_8; -static u16 lbl_1_bss_6; -static u16 lbl_1_bss_4; -static s32 lbl_1_bss_0; +static omObjData *outViewObj; +Process *objman; +Vec cameraRot[2]; +Vec cameraPos[2]; +float cameraZoom[2]; +static s32 instBoxMdlId; +static AnimData *instPicAnim; +static u16 instMgNo; +static u16 instHostNo; +static u16 instMesOfs; +static float instFov; +static u8 LanguageNo; +static u16 instPage; +static u16 instBusyF; +static s32 debugCamOnF; -static void fn_1_994(void); -static void fn_1_17E4(void); -static void fn_1_220C(void); -static void fn_1_2804(void); -static void fn_1_2FA0(void); -static void fn_1_4174(omObjData *object); -static void fn_1_4528(omObjData *object); +static void InstMain(void); +static void InstPlayerMain(void); +static void InstHostMain(void); +static void InstWinMain(void); +static void InstNameMain(void); +static void CameraOutView(omObjData *object); +static void CameraDebug(omObjData *object); void ObjectSetup(void) { s32 i; omOvlHisData *his; - s32 light; + s32 lightId; OSReport("******* INST ObjectSetup *********\n"); - lbl_1_bss_58 = omInitObjMan(50, 8192); - omGameSysInit(lbl_1_bss_58); - lbl_1_bss_8 = GWLanguageGet(); - lbl_1_bss_14 = GWSystem.mg_next; - lbl_1_bss_10 = 0; - lbl_1_bss_4 = 0; + objman = omInitObjMan(50, 8192); + omGameSysInit(objman); + LanguageNo = GWLanguageGet(); + instMgNo = GWSystem.mg_next; + instMesOfs = 0; + instBusyF = 0; _ClearFlag(0x1000C); for (i = 0; sndGrpTable[i].ovl != OVL_INVALID; i++) { - if (sndGrpTable[i].ovl == mgInfoTbl[lbl_1_bss_14].ovl) { + if (sndGrpTable[i].ovl == mgInfoTbl[instMgNo].ovl) { break; } } if (sndGrpTable[i].ovl != OVL_INVALID) { HuAudSndGrpSetSet(sndGrpTable[i].grpSet); } - if (mgInfoTbl[lbl_1_bss_14].ovl == OVL_M411) { + if (mgInfoTbl[instMgNo].ovl == OVL_M411) { if (GWMGTypeGet() == -1) { GWMGTypeSet(frandmod(3)); } @@ -79,10 +79,10 @@ void ObjectSetup(void) else { GWMGTypeSet(-1); } - HuDataDirClose(mgInfoTbl[lbl_1_bss_14].data_dir); + HuDataDirClose(mgInfoTbl[instMgNo].data_dir); his = omOvlHisGet(0); omOvlHisChg(0, OVL_RESULT, his->event, his->stat); - if (omovlevtno == 0 && mgInfoTbl[lbl_1_bss_14].ovl == OVL_M430) { + if (omovlevtno == 0 && mgInfoTbl[instMgNo].ovl == OVL_M430) { s32 team_cnt[2]; s32 team_players[2][2]; team_cnt[0] = team_cnt[1] = 0; @@ -106,53 +106,53 @@ void ObjectSetup(void) GWPlayerCfg[team_players[1][1]].group = 2; } } - if (mgInfoTbl[lbl_1_bss_14].type == 3 || mgInfoTbl[lbl_1_bss_14].type == 5 || mgInfoTbl[lbl_1_bss_14].type == 6 - || mgInfoTbl[lbl_1_bss_14].type == 8 || !_CheckFlag(FLAG_ID_MAKE(0, 11))) { + if (mgInfoTbl[instMgNo].type == 3 || mgInfoTbl[instMgNo].type == 5 || mgInfoTbl[instMgNo].type == 6 + || mgInfoTbl[instMgNo].type == 8 || !_CheckFlag(FLAG_ID_MAKE(0, 11))) { HuDataDirClose(DATADIR_INST); omSysPauseEnable(1); - omOvlCallEx(mgInfoTbl[lbl_1_bss_14].ovl, 1, 0, 0); + omOvlCallEx(mgInfoTbl[instMgNo].ovl, 1, 0, 0); return; } - lbl_1_bss_40[0].x = -67.0f; - lbl_1_bss_40[0].y = 40.0f; - lbl_1_bss_40[0].z = 0.0f; - lbl_1_bss_28[0].x = 260.0f; - lbl_1_bss_28[0].y = -103.0f; - lbl_1_bss_28[0].z = -18.0f; - lbl_1_bss_20[0] = 2885.0f; - lbl_1_bss_C = 20.0f; - lbl_1_bss_12 = GWSystem.board; + cameraRot[0].x = -67.0f; + cameraRot[0].y = 40.0f; + cameraRot[0].z = 0.0f; + cameraPos[0].x = 260.0f; + cameraPos[0].y = -103.0f; + cameraPos[0].z = -18.0f; + cameraZoom[0] = 2885.0f; + instFov = 20.0f; + instHostNo = GWSystem.board; if (mgBoardHostEnableF) { - lbl_1_bss_12 = 1; + instHostNo = 1; } - lbl_1_bss_40[1].x = lbl_1_bss_40[1].y = lbl_1_bss_40[1].z = 0.0f; - lbl_1_bss_28[1].x = lbl_1_bss_28[1].y = lbl_1_bss_28[1].z = 0.0f; - lbl_1_bss_20[1] = 1000.0f; + cameraRot[1].x = cameraRot[1].y = cameraRot[1].z = 0.0f; + cameraPos[1].x = cameraPos[1].y = cameraPos[1].z = 0.0f; + cameraZoom[1] = 1000.0f; omSysPauseEnable(0); Hu3DCameraCreate(3); Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 15000.0f, 1.2f); Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); Hu3DCameraPerspectiveSet(2, 30.0f, 20.0f, 15000.0f, 1.2f); Hu3DCameraViewportSet(2, 0, 0, 640, 480, 0, 1); - light = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); - Hu3DGLightInfinitytSet(light); - HuPrcChildCreate(fn_1_994, 100, 12288, 0, lbl_1_bss_58); - HuPrcChildCreate(fn_1_17E4, 100, 12288, 0, lbl_1_bss_58); - HuPrcChildCreate(fn_1_220C, 100, 12288, 0, lbl_1_bss_58); - HuPrcChildCreate(fn_1_2804, 100, 12288, 0, lbl_1_bss_58); - HuPrcChildCreate(fn_1_2FA0, 100, 12288, 0, lbl_1_bss_58); - lbl_1_bss_5C = omAddObjEx(lbl_1_bss_58, 32730, 0, 0, -1, fn_1_4174); - omAddObjEx(lbl_1_bss_58, 0, 32, 32, -1, fn_1_4528); + lightId = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); + Hu3DGLightInfinitytSet(lightId); + HuPrcChildCreate(InstMain, 100, 12288, 0, objman); + HuPrcChildCreate(InstPlayerMain, 100, 12288, 0, objman); + HuPrcChildCreate(InstHostMain, 100, 12288, 0, objman); + HuPrcChildCreate(InstWinMain, 100, 12288, 0, objman); + HuPrcChildCreate(InstNameMain, 100, 12288, 0, objman); + outViewObj = omAddObjEx(objman, 32730, 0, 0, -1, CameraOutView); + omAddObjEx(objman, 0, 32, 32, -1, CameraDebug); HuAudSeqPlay(59); Hu3DBGColorSet(0, 0, 0); HuWinInit(1); } -static s8 lbl_1_data_26[] = { 3, 2, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 2, 3, 3, 2, 1, 0, 0, -1, -1, -1, 0, -1, -1, -1, 3, 2, 1, 0 }; +static s8 instGrpTbl[] = { 3, 2, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 2, 3, 3, 2, 1, 0, 0, -1, -1, -1, 0, -1, -1, -1, 3, 2, 1, 0 }; -static s8 lbl_1_data_46[] = { 4, 4, 4, 4, 4, 1, 1, 4 }; +static s8 instPlayerNumTbl[] = { 4, 4, 4, 4, 4, 1, 1, 4 }; -static s32 lbl_1_data_50[] = { +static s32 instBoxFile[] = { DATA_MAKE_NUM(DATADIR_INST, 0), DATA_MAKE_NUM(DATADIR_INST, 1), DATA_MAKE_NUM(DATADIR_INST, 2), @@ -163,7 +163,7 @@ static s32 lbl_1_data_50[] = { DATA_MAKE_NUM(DATADIR_INST, 0), }; -static s32 lbl_1_data_70[] = { +static s32 instBackFile[] = { DATA_MAKE_NUM(DATADIR_INST, 9), DATA_MAKE_NUM(DATADIR_INST, 10), DATA_MAKE_NUM(DATADIR_INST, 11), @@ -174,51 +174,50 @@ static s32 lbl_1_data_70[] = { DATA_MAKE_NUM(DATADIR_INST, 9), }; -static void fn_1_50B0(ModelData *model, Mtx mtx); -static void fn_1_5B64(ModelData *model, Mtx mtx); +static void InstPicDraw(ModelData *model, Mtx mtx); +static void ShadowDraw(ModelData *model, Mtx mtx); -static void fn_1_994(void) +static void InstMain(void) { - Vec pos; Vec target; Vec up; - Vec spC; - Process *process; + Vec rot; + Process *proc; s16 i; s16 model; - s16 num_coms; + s16 comNum; s16 j; - s16 btns; - s32 status; - s32 done; - s16 group; - s32 pic; + s16 btnDown; + s32 statId; + s32 endF; + s16 grpId; + s32 picFile; omOvlHisData *his; - s16 sprite; + s16 sprId; AnimData *anim; - float pos_z; + float z; float time; - float fov_vel; - float rot_x; + float fovSpeed; + float rotX; - process = HuPrcCurrentGet(); - status = -1; - group = HuSprGrpCreate(1); - anim = HuSprAnimRead(HuDataReadNum(lbl_1_data_70[mgInfoTbl[lbl_1_bss_14].type], MEMORY_DEFAULT_NUM)); - sprite = HuSprCreate(anim, 0, 0); - HuSprGrpMemberSet(group, 0, sprite); - HuSprGrpDrawNoSet(group, 127); - HuSprPosSet(group, 0, 288, 240); + proc = HuPrcCurrentGet(); + statId = -1; + grpId = HuSprGrpCreate(1); + anim = HuSprAnimRead(HuDataReadNum(instBackFile[mgInfoTbl[instMgNo].type], MEMORY_DEFAULT_NUM)); + sprId = HuSprCreate(anim, 0, 0); + HuSprGrpMemberSet(grpId, 0, sprId); + HuSprGrpDrawNoSet(grpId, 127); + HuSprPosSet(grpId, 0, 288, 240); if (GWMGTypeGet() == -1) { - pic = mgInfoTbl[lbl_1_bss_14].inst_pic[0]; + picFile = mgInfoTbl[instMgNo].inst_pic[0]; } else { - pic = mgInfoTbl[lbl_1_bss_14].inst_pic[GWMGTypeGet()]; + picFile = mgInfoTbl[instMgNo].inst_pic[GWMGTypeGet()]; } - lbl_1_bss_18 = HuSprAnimRead(HuDataReadNumHeapShortForce(pic, MEMORY_DEFAULT_NUM, HEAP_DATA)); + instPicAnim = HuSprAnimRead(HuDataReadNumHeapShortForce(picFile, MEMORY_DEFAULT_NUM, HEAP_DATA)); Hu3DShadowCreate(20, 500, 8000); Hu3DShadowTPLvlSet(0); Hu3DShadowSizeSet(192); @@ -228,34 +227,34 @@ static void fn_1_994(void) up.x = up.y = 0.0f; up.z = 1.0f; Hu3DShadowPosSet(&pos, &up, &target); - model = Hu3DModelCreateFile(lbl_1_data_50[mgInfoTbl[lbl_1_bss_14].type]); - lbl_1_bss_1C = model; + model = Hu3DModelCreateFile(instBoxFile[mgInfoTbl[instMgNo].type]); + instBoxMdlId = model; Hu3DModelPosSet(model, 0, 2000, 0); Hu3DModelAttrSet(model, HU3D_MOTATTR_PAUSE); Hu3DModelCameraSet(model, 1); Hu3DModelShadowSet(model); - i = Hu3DHookFuncCreate(fn_1_5B64); + i = Hu3DHookFuncCreate(ShadowDraw); Hu3DModelPosSet(i, 0, -200, 0); Hu3DModelCameraSet(i, 1); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); while (WipeStatGet()) { HuPrcVSleep(); } - pos_z = -500.0f; + z = -500.0f; for (i = 0; i <= 50; i++) { - Hu3DModelPosSet(model, 0.0f, 2500.0 * cosd(i * 1.8f) - 200.0, pos_z); + Hu3DModelPosSet(model, 0.0f, 2500.0 * cosd(i * 1.8f) - 200.0, z); Hu3DModelRotSet(model, 0, 0, 45.0f * (1.0f - (i / 50.0f))); - pos_z += 50.0 / 7.0; + z += 50.0 / 7.0; Hu3DShadowTPLvlSet(0.5 * (i / 50.0f)); HuPrcVSleep(); } HuAudFXPlay(1211); Hu3DModelAttrReset(model, HU3D_MOTATTR_PAUSE); for (i = 1; i <= 20; i++) { - Hu3DModelPosSet(model, 0.0f, (200.0 * (sind(i * 2.25f) * (1.0 / sind(45)))) - 200.0, pos_z); - rot_x = (20 - i) * cosd(i * 13.5f); - Hu3DModelRotSet(model, rot_x, 0.0f, 0.0f); - pos_z += 50.0 / 7.0; + Hu3DModelPosSet(model, 0.0f, (200.0 * (sind(i * 2.25f) * (1.0 / sind(45)))) - 200.0, z); + rotX = (20 - i) * cosd(i * 13.5f); + Hu3DModelRotSet(model, rotX, 0.0f, 0.0f); + z += 50.0 / 7.0; HuPrcVSleep(); } Hu3DModelPosSet(model, 0.0f, 0.0f, 0.0f); @@ -263,52 +262,52 @@ static void fn_1_994(void) HuPrcSleep(10); HuAudFXPlay(1212); Hu3DModelAttrReset(model, HU3D_MOTATTR_PAUSE); - i = Hu3DHookFuncCreate(fn_1_50B0); + i = Hu3DHookFuncCreate(InstPicDraw); Hu3DModelCameraSet(i, 1); Hu3DModelPosSet(i, 0, 415, 0); - lbl_1_data_0 = 0; + instMode = 0; while (Hu3DMotionTimeGet(model) < 80.0f) { if (Hu3DMotionTimeGet(model) > 30.0f) { - lbl_1_data_0 = 2; + instMode = 2; } HuPrcVSleep(); } Hu3DModelAttrSet(model, HU3D_MOTATTR_PAUSE); HuDataDirClose(DATADIR_INST); - status = HuDataDirReadAsync(mgInfoTbl[lbl_1_bss_14].data_dir); - while (lbl_1_data_0 != 1) { + statId = HuDataDirReadAsync(mgInfoTbl[instMgNo].data_dir); + while (instMode != 1) { HuPrcVSleep(); } - done = 0; - for (i = num_coms = 0; i < 4; i++) { + endF = 0; + for (i = comNum = 0; i < 4; i++) { if (GWPlayerCfg[i].iscom) { - num_coms++; + comNum++; } } i = 0; while (1) { - if (!done) { - for (btns = j = 0; j < 4; j++) { + if (!endF) { + for (btnDown = j = 0; j < 4; j++) { if (!GWPlayerCfg[j].iscom) { - btns |= HuPadBtnDown[GWPlayerCfg[j].pad_idx]; + btnDown |= HuPadBtnDown[GWPlayerCfg[j].pad_idx]; } } - if ((btns == PAD_BUTTON_START) || omSysExitReq || (num_coms == 4 && i > 60)) { + if ((btnDown == PAD_BUTTON_START) || omSysExitReq || (comNum == 4 && i > 60)) { HuAudFXPlay(2); - done = 1; + endF = 1; } - if (btns == PAD_TRIGGER_Z) { + if (btnDown == PAD_TRIGGER_Z) { HuAudFXPlay(1); - done = 1; + endF = 1; his = omOvlHisGet(0); omOvlHisChg(0, OVL_INST, 1, his->stat); _SetFlag(0x1000C); } - if (mgInstExitEnableF && (btns & PAD_BUTTON_B)) { + if (mgInstExitEnableF && (btnDown & PAD_BUTTON_B)) { HuAudFXPlay(3); - if (status != -1) { - while (!HuDataGetAsyncStat(status)) { + if (statId != -1) { + while (!HuDataGetAsyncStat(statId)) { HuPrcVSleep(); } } @@ -317,10 +316,10 @@ static void fn_1_994(void) while (WipeStatGet()) { HuPrcVSleep(); } - HuDataDirClose(mgInfoTbl[lbl_1_bss_14].data_dir); - if (mgInfoTbl[lbl_1_bss_14].ovl == OVL_M430) { - for (num_coms = 0; num_coms < 4; num_coms++) { - GWPlayerCfg[num_coms].group = GWPlayerCfg[num_coms].group / 2; + HuDataDirClose(mgInfoTbl[instMgNo].data_dir); + if (mgInfoTbl[instMgNo].ovl == OVL_M430) { + for (comNum = 0; comNum < 4; comNum++) { + GWPlayerCfg[comNum].group = GWPlayerCfg[comNum].group / 2; } } omOvlReturnEx(1, 1); @@ -330,7 +329,7 @@ static void fn_1_994(void) } } } - if (!lbl_1_bss_4 || !done) { + if (!instBusyF || !endF) { HuPrcVSleep(); i++; continue; @@ -339,32 +338,32 @@ static void fn_1_994(void) break; } } - if (status != -1) { - while (!HuDataGetAsyncStat(status)) { + if (statId != -1) { + while (!HuDataGetAsyncStat(statId)) { HuPrcVSleep(); } } - spC = lbl_1_bss_40[0]; - pos = lbl_1_bss_28[0]; - pos_z = lbl_1_bss_20[0]; + rot = cameraRot[0]; + pos = cameraPos[0]; + z = cameraZoom[0]; WipeColorSet(255, 255, 255); - lbl_1_data_0 = 3; + instMode = 3; HuPrcSleep(20); - lbl_1_data_0 = 4; + instMode = 4; HuPrcSleep(10); Hu3DModelAttrReset(model, HU3D_MOTATTR_PAUSE); HuPrcSleep(10); - fov_vel = 0; + fovSpeed = 0; for (i = 0; i <= 60; i++) { time = i / 60.0f; - lbl_1_bss_40[0].x = spC.x + ((-65.0f - spC.x) * time); - lbl_1_bss_40[0].y = spC.y + ((8.0f - spC.y) * time); - lbl_1_bss_40[0].z = spC.z + (-spC.z) * time; - lbl_1_bss_28[0].x = pos.x + ((17.0f - pos.x) * time); - lbl_1_bss_28[0].y = pos.y + ((5.0f - pos.y) * time); - lbl_1_bss_28[0].z = pos.z + ((-188.0f - pos.z) * time); - lbl_1_bss_20[0] = pos_z + ((1173.0f - pos_z) * time); + cameraRot[0].x = rot.x + ((-65.0f - rot.x) * time); + cameraRot[0].y = rot.y + ((8.0f - rot.y) * time); + cameraRot[0].z = rot.z + (-rot.z) * time; + cameraPos[0].x = pos.x + ((17.0f - pos.x) * time); + cameraPos[0].y = pos.y + ((5.0f - pos.y) * time); + cameraPos[0].z = pos.z + ((-188.0f - pos.z) * time); + cameraZoom[0] = z + ((1173.0f - z) * time); if (i == 30) { HuAudFXPlay(1210); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); @@ -374,25 +373,25 @@ static void fn_1_994(void) Hu3DModelAttrSet(model, HU3D_MOTATTR_PAUSE); } if (i > 20) { - lbl_1_bss_C += fov_vel; - fov_vel += 0.04; + instFov += fovSpeed; + fovSpeed += 0.04; } HuPrcVSleep(); } while (WipeStatGet()) { - lbl_1_bss_C += fov_vel; - fov_vel += 0.04; + instFov += fovSpeed; + fovSpeed += 0.04; HuPrcVSleep(); } - lbl_1_data_0 = 6; + instMode = 6; HuPrcVSleep(); omSysPauseEnable(1); if (omSysExitReq) { - HuDataDirClose(mgInfoTbl[lbl_1_bss_14].data_dir); + HuDataDirClose(mgInfoTbl[instMgNo].data_dir); omOvlReturnEx(1, 1); } else { - omOvlCallEx(mgInfoTbl[lbl_1_bss_14].ovl, 1, 0, 0); + omOvlCallEx(mgInfoTbl[instMgNo].ovl, 1, 0, 0); } HuPrcEnd(); while (1) { @@ -400,133 +399,133 @@ static void fn_1_994(void) } } -static char *lbl_1_data_B0[] = { "p_pos_a", "p_pos_b", "p_pos_c", "p_pos_d" }; +static char *playerPosNameTbl[] = { "p_pos_a", "p_pos_b", "p_pos_c", "p_pos_d" }; -static u8 lbl_1_data_C0[] = { 8, 0, 12, 4 }; +static u8 playerDelayTbl[] = { 8, 0, 12, 4 }; -static void fn_1_17E4(void) +static void InstPlayerMain(void) { - float tplvl; + float tpLvl; s16 i; s16 j; s16 time; - s16 player_cnt; + s16 playerNum; s16 order; s16 type; - s16 group_type; + s16 grpType; s16 group; - ModelData *model; - s16 player_mdl[4]; - s16 char_tbl[4]; - s16 platform_mdl[4]; - s16 player_order[4]; - s16 mot_tbl[4][3]; - Vec player_pos[4]; + ModelData *modelP; + s16 playerMdlId[4]; + s16 charNo[4]; + s16 shadowMdl[4]; + s16 playerOrder[4]; + s16 motId[4][3]; + Vec playerPos[4]; - type = mgInfoTbl[lbl_1_bss_14].type; - player_cnt = lbl_1_data_46[type]; - for (i = 0; i < player_cnt; i++) { - player_order[i] = -1; + type = mgInfoTbl[instMgNo].type; + playerNum = instPlayerNumTbl[type]; + for (i = 0; i < playerNum; i++) { + playerOrder[i] = -1; } - if (mgInfoTbl[lbl_1_bss_14].ovl != OVL_M430) { - group_type = type; + if (mgInfoTbl[instMgNo].ovl != OVL_M430) { + grpType = type; } else { - group_type = 0; + grpType = 0; } - for (i = 0; i < player_cnt; i++) { - group = lbl_1_data_26[(group_type * 4) + i]; + for (i = 0; i < playerNum; i++) { + group = instGrpTbl[(grpType * 4) + i]; for (j = 0; j < 4; j++) { if (group == GWPlayerCfg[j].group) { for (order = 0; order < i; order++) { - if (j == player_order[order]) { + if (j == playerOrder[order]) { break; } } if (order == i) { - player_order[i] = j; + playerOrder[i] = j; break; } } } } - for (i = 0; i < player_cnt; i++) { - if (player_order[i] == -1) { - for (j = 0; j < player_cnt; j++) { - player_order[j] = j; + for (i = 0; i < playerNum; i++) { + if (playerOrder[i] == -1) { + for (j = 0; j < playerNum; j++) { + playerOrder[j] = j; } break; } } - for (i = 0; i < player_cnt; i++) { - char_tbl[i] = GWPlayerCfg[player_order[i]].character; - player_mdl[i] = CharModelCreate(char_tbl[i], 2); - Hu3DModelPosSet(player_mdl[i], 5000.0f, 0.0f, 0.0f); - Hu3DModelRotSet(player_mdl[i], 0.0f, 180.0f, 0.0f); - Hu3DModelCameraSet(player_mdl[i], 1); - mot_tbl[i][0] = CharModelMotionCreate(char_tbl[i], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); - mot_tbl[i][1] = CharModelMotionCreate(char_tbl[i], DATA_MAKE_NUM(DATADIR_MARIOMOT, 5)); - mot_tbl[i][2] = CharModelMotionCreate(char_tbl[i], DATA_MAKE_NUM(DATADIR_MARIOMOT, 6)); - CharModelVoiceEnableSet(char_tbl[i], mot_tbl[i][1], 0); - CharModelMotionSet(char_tbl[i], mot_tbl[i][1]); + for (i = 0; i < playerNum; i++) { + charNo[i] = GWPlayerCfg[playerOrder[i]].character; + playerMdlId[i] = CharModelCreate(charNo[i], 2); + Hu3DModelPosSet(playerMdlId[i], 5000.0f, 0.0f, 0.0f); + Hu3DModelRotSet(playerMdlId[i], 0.0f, 180.0f, 0.0f); + Hu3DModelCameraSet(playerMdlId[i], 1); + motId[i][0] = CharModelMotionCreate(charNo[i], DATA_MAKE_NUM(DATADIR_MARIOMOT, 0)); + motId[i][1] = CharModelMotionCreate(charNo[i], DATA_MAKE_NUM(DATADIR_MARIOMOT, 5)); + motId[i][2] = CharModelMotionCreate(charNo[i], DATA_MAKE_NUM(DATADIR_MARIOMOT, 6)); + CharModelVoiceEnableSet(charNo[i], motId[i][1], 0); + CharModelMotionSet(charNo[i], motId[i][1]); CharModelDataClose(-1); - platform_mdl[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_INST, 7)); - Hu3DModelTPLvlSet(platform_mdl[i], 0.0f); - Hu3DModelScaleSet(platform_mdl[i], 0.0f, 0.0f, 0.0f); + shadowMdl[i] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_INST, 7)); + Hu3DModelTPLvlSet(shadowMdl[i], 0.0f); + Hu3DModelScaleSet(shadowMdl[i], 0.0f, 0.0f, 0.0f); } - while (lbl_1_data_0 != 2) { + while (instMode != 2) { HuPrcVSleep(); } - for (i = 0; i < player_cnt; i++) { - Hu3DModelObjPosGet(lbl_1_bss_1C, lbl_1_data_B0[i], &player_pos[i]); - Hu3DModelPosSet(platform_mdl[i], player_pos[i].x, 10 + player_pos[i].y, player_pos[i].z); + for (i = 0; i < playerNum; i++) { + Hu3DModelObjPosGet(instBoxMdlId, playerPosNameTbl[i], &playerPos[i]); + Hu3DModelPosSet(shadowMdl[i], playerPos[i].x, 10 + playerPos[i].y, playerPos[i].z); } HuPrcSleep(10); for (i = 0; i <= 50; i++) { - for (j = 0; j < player_cnt; j++) { - time = i - lbl_1_data_C0[j]; + for (j = 0; j < playerNum; j++) { + time = i - playerDelayTbl[j]; if (time < 0) { continue; } if (time == 15) { - CharModelMotionSet(char_tbl[j], mot_tbl[j][2]); + CharModelMotionSet(charNo[j], motId[j][2]); } if (time == 30) { - CharModelMotionShiftSet(char_tbl[j], mot_tbl[j][0], 0, 10, HU3D_MOTATTR_LOOP); + CharModelMotionShiftSet(charNo[j], motId[j][0], 0, 10, HU3D_MOTATTR_LOOP); } if (time <= 20) { - Hu3DModelPosSet(player_mdl[j], player_pos[j].x, player_pos[j].y + 1000.0 * cosd(time * 4.5f), player_pos[j].z); + Hu3DModelPosSet(playerMdlId[j], playerPos[j].x, playerPos[j].y + 1000.0 * cosd(time * 4.5f), playerPos[j].z); time -= 10; if (time >= 0) { - tplvl = 0.1 * time; - Hu3DModelTPLvlSet(platform_mdl[j], 0.5 * tplvl); - Hu3DModelScaleSet(platform_mdl[j], tplvl, tplvl, tplvl); + tpLvl = 0.1 * time; + Hu3DModelTPLvlSet(shadowMdl[j], 0.5 * tpLvl); + Hu3DModelScaleSet(shadowMdl[j], tpLvl, tpLvl, tpLvl); } } } HuPrcVSleep(); } - model = &Hu3DData[player_mdl[0]]; - while (lbl_1_data_0 != 4) { + modelP = &Hu3DData[playerMdlId[0]]; + while (instMode != 4) { HuPrcVSleep(); } for (i = 0; i <= 45; i++) { - for (j = 0; j < player_cnt; j++) { - time = i - lbl_1_data_C0[j]; + for (j = 0; j < playerNum; j++) { + time = i - playerDelayTbl[j]; if (time < 0) { continue; } if (time == 0) { - Hu3DModelAttrReset(player_mdl[j], HU3D_MOTATTR_LOOP); - CharModelVoiceEnableSet(char_tbl[i], mot_tbl[i][1], 1); - CharModelMotionSet(char_tbl[j], mot_tbl[j][1]); + Hu3DModelAttrReset(playerMdlId[j], HU3D_MOTATTR_LOOP); + CharModelVoiceEnableSet(charNo[i], motId[i][1], 1); + CharModelMotionSet(charNo[j], motId[j][1]); } if (time <= 30) { - Hu3DModelPosSet(player_mdl[j], player_pos[j].x, player_pos[j].y + (300.0 * sind(time * 9.0f)), player_pos[j].z - (time * 20)); + Hu3DModelPosSet(playerMdlId[j], playerPos[j].x, playerPos[j].y + (300.0 * sind(time * 9.0f)), playerPos[j].z - (time * 20)); if (time <= 10) { - tplvl = 1 - (0.1 * time); - Hu3DModelTPLvlSet(platform_mdl[j], 0.5 * tplvl); - Hu3DModelScaleSet(platform_mdl[j], tplvl, tplvl, tplvl); + tpLvl = 1 - (0.1 * time); + Hu3DModelTPLvlSet(shadowMdl[j], 0.5 * tpLvl); + Hu3DModelScaleSet(shadowMdl[j], tpLvl, tpLvl, tpLvl); } } } @@ -538,7 +537,7 @@ static void fn_1_17E4(void) } } -static s32 lbl_1_data_C4[] = { +static s32 hostFileTbl[] = { DATA_MAKE_NUM(DATADIR_INST, 19), DATA_MAKE_NUM(DATADIR_INST, 20), DATA_MAKE_NUM(DATADIR_INST, 21), @@ -559,57 +558,57 @@ static s32 lbl_1_data_C4[] = { DATA_MAKE_NUM(DATADIR_INST, 36), }; -static u16 lbl_1_data_10C[] = { 55, 57, 68, 67, 64, 65, 75, 76, 70, 71, 62, 62 }; +static u16 hostSeTbl[] = { 55, 57, 68, 67, 64, 65, 75, 76, 70, 71, 62, 62 }; -static void fn_1_220C(void) +static void InstHostMain(void) { - float ofs_x; + float ofsX; s16 i; - s16 model; - s16 motion[2]; - ModelData *model_ptr; - model = Hu3DModelCreateFile(lbl_1_data_C4[lbl_1_bss_12 * 3]); - motion[0] = Hu3DJointMotionFile(model, lbl_1_data_C4[(lbl_1_bss_12 * 3) + 1]); - motion[1] = Hu3DJointMotionFile(model, lbl_1_data_C4[(lbl_1_bss_12 * 3) + 2]); - Hu3DMotionSet(model, motion[1]); - if (lbl_1_bss_12 == 3) { - ofs_x = 50; + s16 modelId; + s16 motId[2]; + ModelData *modelP; + modelId = Hu3DModelCreateFile(hostFileTbl[instHostNo * 3]); + motId[0] = Hu3DJointMotionFile(modelId, hostFileTbl[(instHostNo * 3) + 1]); + motId[1] = Hu3DJointMotionFile(modelId, hostFileTbl[(instHostNo * 3) + 2]); + Hu3DMotionSet(modelId, motId[1]); + if (instHostNo == 3) { + ofsX = 50; } else { - ofs_x = 0; + ofsX = 0; } - Hu3DModelPosSet(model, -353.0f + ofs_x, -150, 356); - Hu3DModelRotSet(model, 0, 90, 0); - Hu3DModelCameraSet(model, 2); - while (lbl_1_data_0 != 2) { + Hu3DModelPosSet(modelId, -353.0f + ofsX, -150, 356); + Hu3DModelRotSet(modelId, 0, 90, 0); + Hu3DModelCameraSet(modelId, 2); + while (instMode != 2) { HuPrcVSleep(); } HuPrcSleep(30); - Hu3DMotionTimeSet(model, 40); - HuAudFXPlay(lbl_1_data_10C[lbl_1_bss_12 * 2]); + Hu3DMotionTimeSet(modelId, 40); + HuAudFXPlay(hostSeTbl[instHostNo * 2]); for (i = 0; i <= 20; i++) { - Hu3DModelPosSet(model, -153.0f - (100.0f - (100.0f * (i / 20.0f))), (100.0 * sind(i * 9.0f)) + -150.0 + ofs_x, 356.0f); + Hu3DModelPosSet(modelId, -153.0f - (100.0f - (100.0f * (i / 20.0f))), (100.0 * sind(i * 9.0f)) + -150.0 + ofsX, 356.0f); HuPrcVSleep(); } for (i = 0; i <= 10; i++) { - Hu3DModelPosSet(model, -153.0f, (15.0 * sind(i * 18.0f)) + -150.f + ofs_x, 356.0f); - Hu3DModelRotSet(model, 0.0f, 90 - ((i / 10.0f) * 70), 0); + Hu3DModelPosSet(modelId, -153.0f, (15.0 * sind(i * 18.0f)) + -150.f + ofsX, 356.0f); + Hu3DModelRotSet(modelId, 0.0f, 90 - ((i / 10.0f) * 70), 0); HuPrcVSleep(); } - Hu3DMotionShiftSet(model, motion[0], 0, 10, HU3D_MOTATTR_LOOP); - model_ptr = &Hu3DData[model]; + Hu3DMotionShiftSet(modelId, motId[0], 0, 10, HU3D_MOTATTR_LOOP); + modelP = &Hu3DData[modelId]; while (1) { fontcolor = FONT_COLOR_RED; - if (lbl_1_data_0 == 3) { + if (instMode == 3) { break; } HuPrcVSleep(); } - Hu3DMotionSet(model, motion[1]); + Hu3DMotionSet(modelId, motId[1]); HuPrcSleep(20); - HuAudFXPlay(lbl_1_data_10C[(lbl_1_bss_12 * 2) + 1]); + HuAudFXPlay(hostSeTbl[(instHostNo * 2) + 1]); for (i = 0; i <= 30; i++) { - Hu3DModelPosSet(model, (i * 5) - 153, (50.0 * sind(i * 9.0f)) + -150.0 + ofs_x, (i * 20) + 356); + Hu3DModelPosSet(modelId, (i * 5) - 153, (50.0 * sind(i * 9.0f)) + -150.0 + ofsX, (i * 20) + 356); HuPrcVSleep(); } HuPrcEnd(); @@ -618,31 +617,31 @@ static void fn_1_220C(void) } } -static void fn_1_2804(void) +static void InstWinMain(void) { - float pos_x; + float posX; s16 i; - s16 window; - s16 window_other; + s16 winId; + s16 win2Id; s16 j; s16 insert_idx; - s16 rtrig; + s16 trigR; s16 groupCnt[4]; s16 charTbl[4][4]; - window = HuWinExCreateStyled(640, 320, 412, 120, -1, 1); - while (lbl_1_data_0 != 0) { + winId = HuWinExCreateStyled(640, 320, 412, 120, -1, 1); + while (instMode != 0) { HuPrcVSleep(); } - HuWinDispOn(window); - HuWinMesSet(window, mgInfoTbl[lbl_1_bss_14].inst_mess[0]); - HuWinMesPalSet(window, 7, 0, 0, 192); - HuWinMesSpeedSet(window, 0); - window_other = HuWinExCreateStyled(640, 320, 412, 120, -1, 1); - HuWinDispOn(window_other); - HuWinMesSpeedSet(window_other, 0); - HuWinPosSet(window_other, 142.0f, 640.0f); - lbl_1_bss_6 = 0; + HuWinDispOn(winId); + HuWinMesSet(winId, mgInfoTbl[instMgNo].inst_mess[0]); + HuWinMesPalSet(winId, 7, 0, 0, 192); + HuWinMesSpeedSet(winId, 0); + win2Id = HuWinExCreateStyled(640, 320, 412, 120, -1, 1); + HuWinDispOn(win2Id); + HuWinMesSpeedSet(win2Id, 0); + HuWinPosSet(win2Id, 142.0f, 640.0f); + instPage = 0; for (i = 0; i < 4; i++) { groupCnt[i] = 0; } @@ -653,57 +652,57 @@ static void fn_1_2804(void) } for (i = insert_idx = 0; i < 4; i++) { for (j = 0; j < groupCnt[i]; j++) { - HuWinInsertMesSet(window, charTbl[i][j], (s16)insert_idx); + HuWinInsertMesSet(winId, charTbl[i][j], (s16)insert_idx); insert_idx++; } } - while (lbl_1_data_0 != 2) { + while (instMode != 2) { HuPrcVSleep(); } HuPrcSleep(40); for (i = 0; i <= 20; i++) { - pos_x = 500.0 * cosd(i * 4.5f) + 142.0; - HuWinPosSet(window, pos_x, 320); + posX = 500.0 * cosd(i * 4.5f) + 142.0; + HuWinPosSet(winId, posX, 320); HuPrcVSleep(); } - lbl_1_data_0 = 1; - while (lbl_1_data_0 != 3) { - for (i = rtrig = 0; i < 4; i++) { + instMode = 1; + while (instMode != 3) { + for (i = trigR = 0; i < 4; i++) { if (!GWPlayerCfg[i].iscom) { - rtrig |= HuPadTrigR[GWPlayerCfg[i].pad_idx] & 0xC0; + trigR |= HuPadTrigR[GWPlayerCfg[i].pad_idx] & 0xC0; } } - if (rtrig) { + if (trigR) { HuAudFXPlay(1213); - lbl_1_bss_4 = 0; - HuWinMesSet(window_other, mgInfoTbl[lbl_1_bss_14].inst_mess[lbl_1_bss_6]); - HuWinMesPalSet(window_other, 7, 0, 0, 192); - lbl_1_bss_6++; - if (mgInfoTbl[lbl_1_bss_14].inst_mess[lbl_1_bss_6] == 0) { - lbl_1_bss_6++; + instBusyF = 0; + HuWinMesSet(win2Id, mgInfoTbl[instMgNo].inst_mess[instPage]); + HuWinMesPalSet(win2Id, 7, 0, 0, 192); + instPage++; + if (mgInfoTbl[instMgNo].inst_mess[instPage] == 0) { + instPage++; } - if (lbl_1_bss_6 >= 4) { - lbl_1_bss_6 = 0; + if (instPage >= 4) { + instPage = 0; } - HuWinMesSet(window, mgInfoTbl[lbl_1_bss_14].inst_mess[lbl_1_bss_6]); - HuWinMesPalSet(window, 7, 0, 0, 192); - HuWinPosSet(window_other, 142.0f, 320.0f); + HuWinMesSet(winId, mgInfoTbl[instMgNo].inst_mess[instPage]); + HuWinMesPalSet(winId, 7, 0, 0, 192); + HuWinPosSet(win2Id, 142.0f, 320.0f); for (i = 0; i <= 10; i++) { #if VERSION_NTSC - HuWinPosSet(window_other, 30.0 * sind(i * 9.0f) + 142.0, 160.0 * (1.0 - cosd(i * 9.0f)) + 320.0); + HuWinPosSet(win2Id, 30.0 * sind(i * 9.0f) + 142.0, 160.0 * (1.0 - cosd(i * 9.0f)) + 320.0); #else - HuWinPosSet(window_other, 30.0 * sind(i * 9.0f) + 142.0, 180.0 * (1.0 - cosd(i * 9.0f)) + 320.0); + HuWinPosSet(win2Id, 30.0 * sind(i * 9.0f) + 142.0, 180.0 * (1.0 - cosd(i * 9.0f)) + 320.0); #endif HuPrcVSleep(); } HuPrcSleep(5); } - lbl_1_bss_4 = 1; + instBusyF = 1; HuPrcVSleep(); } for (i = 0; i <= 20; i++) { - pos_x = 500.0 * (1.0 - cosd(i * 4.5f)) + 142.0; - HuWinPosSet(window, pos_x, 320); + posX = 500.0 * (1.0 - cosd(i * 4.5f)) + 142.0; + HuWinPosSet(winId, posX, 320); HuPrcVSleep(); } HuWinAllKill(); @@ -713,7 +712,7 @@ static void fn_1_2804(void) } } -static float lbl_1_data_124[] = { 420, 70, 488, 186, 476, 242, 400, 292 }; +static float instNamePosTbl[] = { 420, 70, 488, 186, 476, 242, 400, 292 }; #if VERSION_NTSC #define WIN_ANIM_OFS 201 @@ -721,238 +720,238 @@ static float lbl_1_data_124[] = { 420, 70, 488, 186, 476, 242, 400, 292 }; #define WIN_ANIM_OFS 219 #endif -static void fn_1_2FA0(void) +static void InstNameMain(void) { - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - float temp_f27; - s16 temp_r31; - s16 temp_r30; - char *temp_r29; - AnimData *temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - s16 temp_r24; - s16 temp_r23; - s16 temp_r22; - u16 temp_r21; - char *temp_r20; - s16 temp_r17; - s16 spA; - s16 sp8; + float posX; + float t; + float nameX; + float nameY; + float nameScaleY; + s16 i; + s16 j; + char *mes; + AnimData *nameAnim; + s16 rulesWinId; + s16 mesSpaceNum; + s16 nameGrpId; + s16 startGrpId; + s16 practiceGrpId; + s16 nameW; + u16 prevPage; + char *mesWord; + s16 nameSprId; + s16 startSprId; + s16 practiceSprId; s16 spC[2]; s16 sp10[4]; SeqWork work; - temp_r21 = 0; - for (temp_r31 = 0; temp_r31 < 16; temp_r31++) { - work.sprite[temp_r31] = work.spr_grp[temp_r31] = -1; + prevPage = 0; + for (i = 0; i < 16; i++) { + work.sprite[i] = work.spr_grp[i] = -1; } - temp_r20 = MessData_MesPtrGet(messDataPtr, mgInfoTbl[lbl_1_bss_14].name_mess); - temp_r29 = temp_r20; - temp_r31 = 0; - temp_r26 = 0; + mesWord = MessData_MesPtrGet(messDataPtr, mgInfoTbl[instMgNo].name_mess); + mes = mesWord; + i = 0; + mesSpaceNum = 0; while (1) { - if (*temp_r29 == 0 || *temp_r29 == 10) { - if (*temp_r29 == 0) { - temp_r31 = 1; + if (*mes == 0 || *mes == 10) { + if (*mes == 0) { + i = 1; } - *temp_r29 = 0; - fn_1_5EA4(&work, temp_r20, (lbl_1_bss_8 == 0) ? 1 : 0); - HuSprGrpPosSet(work.spr_grp[temp_r26], 288.0f, 240.0f); - spC[temp_r26] = work.alt_word_len; - temp_r26++; - if (temp_r31) { + *mes = 0; + FontCreate(&work, mesWord, (LanguageNo == 0) ? 1 : 0); + HuSprGrpPosSet(work.spr_grp[mesSpaceNum], 288.0f, 240.0f); + spC[mesSpaceNum] = work.alt_word_len; + mesSpaceNum++; + if (i) { break; } - temp_r20 = temp_r29 + 1; + mesWord = mes + 1; } - temp_r29++; + mes++; } #if VERSION_NTSC - if (temp_r26 == 1) { - temp_r22 = spC[0]; - temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18)); - temp_f29 = ((576.0f - temp_r22) - 24.0f) - 16.0f + 227; - temp_f28 = 78; - temp_f27 = 0.5f; + if (mesSpaceNum == 1) { + nameW = spC[0]; + nameAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18)); + nameX = ((576.0f - nameW) - 24.0f) - 16.0f + 227; + nameY = 78; + nameScaleY = 0.5f; } else { - temp_r22 = (spC[0] > spC[1]) ? spC[0] : spC[1]; - temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 15)); + nameW = (spC[0] > spC[1]) ? spC[0] : spC[1]; + nameAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 15)); - temp_f29 = ((576.0f - temp_r22) - 24.0f) - 16.0f + 172.0f; - temp_f28 = 84; - temp_f27 = 1.0f; + nameX = ((576.0f - nameW) - 24.0f) - 16.0f + 172.0f; + nameY = 84; + nameScaleY = 1.0f; } #else - if (temp_r26 == 1) { - temp_r22 = spC[0]; - temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18)); - temp_f29 = ((576.0f - temp_r22) - 24.0f) - 16.0f + 235; - temp_f28 = 78; - temp_f27 = 0.5f; + if (mesSpaceNum == 1) { + nameW = spC[0]; + nameAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18)); + nameX = ((576.0f - nameW) - 24.0f) - 16.0f + 235; + nameY = 78; + nameScaleY = 0.5f; } else { - temp_r22 = (spC[0] > spC[1]) ? spC[0] : spC[1]; - temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 15)); + nameW = (spC[0] > spC[1]) ? spC[0] : spC[1]; + nameAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 15)); - temp_f29 = ((576.0f - temp_r22) - 24.0f) - 16.0f + 235; - temp_f28 = 84; - temp_f27 = 1.0f; + nameX = ((576.0f - nameW) - 24.0f) - 16.0f + 235; + nameY = 84; + nameScaleY = 1.0f; } #endif - temp_r25 = HuSprGrpCreate(1); - temp_r17 = HuSprCreate(temp_r28, 0, 0); - HuSprGrpMemberSet(temp_r25, 0, temp_r17); - HuSprPriSet(temp_r25, 0, 100); - HuSprGrpPosSet(temp_r25, 10000, 70); - HuSprScaleSet(temp_r25, 0, 1.0f, temp_f27); - for (temp_r31 = 0; temp_r31 < temp_r26; temp_r31++) { - HuSprGrpPosSet(work.spr_grp[temp_r31], 1000, 70); + nameGrpId = HuSprGrpCreate(1); + nameSprId = HuSprCreate(nameAnim, 0, 0); + HuSprGrpMemberSet(nameGrpId, 0, nameSprId); + HuSprPriSet(nameGrpId, 0, 100); + HuSprGrpPosSet(nameGrpId, 10000, 70); + HuSprScaleSet(nameGrpId, 0, 1.0f, nameScaleY); + for (i = 0; i < mesSpaceNum; i++) { + HuSprGrpPosSet(work.spr_grp[i], 1000, 70); } - temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 16)); - temp_r24 = HuSprGrpCreate(1); - spA = HuSprCreate(temp_r28, 0, 0); - HuSprGrpMemberSet(temp_r24, 0, spA); - HuSprGrpPosSet(temp_r24, 1000, 186); - HuSprPriSet(temp_r24, 0, 1000); + nameAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 16)); + startGrpId = HuSprGrpCreate(1); + startSprId = HuSprCreate(nameAnim, 0, 0); + HuSprGrpMemberSet(startGrpId, 0, startSprId); + HuSprGrpPosSet(startGrpId, 1000, 186); + HuSprPriSet(startGrpId, 0, 1000); sp10[0] = HuWinCreate(1000, 186, 456, 42, 0); - HuWinMesSet(sp10[0], MAKE_MESSID(0x24, lbl_1_bss_10)); + HuWinMesSet(sp10[0], MAKE_MESSID(0x24, instMesOfs)); HuWinBGTPLvlSet(sp10[0], 0.0f); - temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 17)); - temp_r23 = HuSprGrpCreate(1); - sp8 = HuSprCreate(temp_r28, 0, 0); - HuSprGrpMemberSet(temp_r23, 0, sp8); - HuSprGrpPosSet(temp_r23, 1000, 242); - HuSprPriSet(temp_r23, 0, 1000); + nameAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 17)); + practiceGrpId = HuSprGrpCreate(1); + practiceSprId = HuSprCreate(nameAnim, 0, 0); + HuSprGrpMemberSet(practiceGrpId, 0, practiceSprId); + HuSprGrpPosSet(practiceGrpId, 1000, 242); + HuSprPriSet(practiceGrpId, 0, 1000); sp10[1] = HuWinCreate(1000, 242, 456, 42, 0); - HuWinMesSet(sp10[1], lbl_1_bss_10 + MAKE_MESSID(0x24, 0x01)); + HuWinMesSet(sp10[1], instMesOfs + MAKE_MESSID(0x24, 0x01)); HuWinBGTPLvlSet(sp10[1], 0.0f); - temp_r28 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18)); + nameAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_INST, 18)); sp10[2] = HuWinCreate(1000, 292, 456, 42, 0); - HuWinMesSet(sp10[2], lbl_1_bss_10 + MAKE_MESSID(0x24, 0x02)); + HuWinMesSet(sp10[2], instMesOfs + MAKE_MESSID(0x24, 0x02)); HuWinBGTPLvlSet(sp10[2], 0.0f); HuWinMesSpeedSet(sp10[2], 0); - temp_r31 = HuWinAnimSet(sp10[2], temp_r28, 0, WIN_ANIM_OFS, 18); - HuWinSprPriSet(sp10[2], temp_r31, 1000); - temp_r27 = HuWinCreate(1000, 292, 456, 42, 0); - HuWinBGTPLvlSet(temp_r27, 0.0f); - HuWinMesSpeedSet(temp_r27, 0); - HuWinMesSet(temp_r27, lbl_1_bss_10 + MAKE_MESSID(0x24, 0x02)); - temp_r31 = HuWinAnimSet(temp_r27, temp_r28, 0, WIN_ANIM_OFS, 18); - HuWinPriSet(temp_r27, 10); - HuWinSprPriSet(temp_r27, temp_r31, 11); - while (lbl_1_data_0 != 0) { + i = HuWinAnimSet(sp10[2], nameAnim, 0, WIN_ANIM_OFS, 18); + HuWinSprPriSet(sp10[2], i, 1000); + rulesWinId = HuWinCreate(1000, 292, 456, 42, 0); + HuWinBGTPLvlSet(rulesWinId, 0.0f); + HuWinMesSpeedSet(rulesWinId, 0); + HuWinMesSet(rulesWinId, instMesOfs + MAKE_MESSID(0x24, 0x02)); + i = HuWinAnimSet(rulesWinId, nameAnim, 0, WIN_ANIM_OFS, 18); + HuWinPriSet(rulesWinId, 10); + HuWinSprPriSet(rulesWinId, i, 11); + while (instMode != 0) { HuPrcVSleep(); } - for (temp_r31 = 0; temp_r31 < 36; temp_r31++) { - temp_f30 = temp_r31; - if (temp_f30 <= 20.0f) { + for (i = 0; i < 36; i++) { + t = i; + if (t <= 20.0f) { #if VERSION_NTSC - temp_f31 = 300.0 * cosd(4.5f * temp_f30) + temp_f29; - HuSprGrpPosSet(temp_r25, temp_f31, temp_f28); - temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (576.0f - (temp_r22 / 2) - 24.0f); - for (temp_r30 = 0; temp_r30 < temp_r26; temp_r30++) { - HuSprGrpPosSet(work.spr_grp[temp_r30], temp_f31, (temp_r30 * 28) + 70); + posX = 300.0 * cosd(4.5f * t) + nameX; + HuSprGrpPosSet(nameGrpId, posX, nameY); + posX = 300.0 * cosd(4.5f * t) + (576.0f - (nameW / 2) - 24.0f); + for (j = 0; j < mesSpaceNum; j++) { + HuSprGrpPosSet(work.spr_grp[j], posX, (j * 28) + 70); } #else - temp_f31 = 500.0 * cosd(4.5f * temp_f30) + temp_f29; - HuSprGrpPosSet(temp_r25, temp_f31, temp_f28); - temp_f31 = 500.0 * cosd(4.5f * temp_f30) + (576.0f - (temp_r22 / 2) - 24.0f); - for (temp_r30 = 0; temp_r30 < temp_r26; temp_r30++) { - HuSprGrpPosSet(work.spr_grp[temp_r30], temp_f31, (temp_r30 * 28) + 70); + posX = 500.0 * cosd(4.5f * t) + nameX; + HuSprGrpPosSet(nameGrpId, posX, nameY); + posX = 500.0 * cosd(4.5f * t) + (576.0f - (nameW / 2) - 24.0f); + for (j = 0; j < mesSpaceNum; j++) { + HuSprGrpPosSet(work.spr_grp[j], posX, (j * 28) + 70); } #endif } - temp_f30 = temp_r31 - 3; - if (temp_f30 > 0.0f) { - if (temp_f30 <= 20.0f) { - temp_f31 = 300.0 * cosd(4.5f * temp_f30) + lbl_1_data_124[2]; - HuSprGrpPosSet(temp_r24, temp_f31, 186.0f); - temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (lbl_1_data_124[2] - 88.0f); + t = i - 3; + if (t > 0.0f) { + if (t <= 20.0f) { + posX = 300.0 * cosd(4.5f * t) + instNamePosTbl[2]; + HuSprGrpPosSet(startGrpId, posX, 186.0f); + posX = 300.0 * cosd(4.5f * t) + (instNamePosTbl[2] - 88.0f); #if VERSION_NTSC - HuWinPosSet(sp10[0], 16.0f + temp_f31, 168.0f); + HuWinPosSet(sp10[0], 16.0f + posX, 168.0f); #else - HuWinPosSet(sp10[0], 8.0f + temp_f31, 168.0f); + HuWinPosSet(sp10[0], 8.0f + posX, 168.0f); #endif } } - temp_f30 = temp_r31 - 6; - if (temp_f30 > 0.0f) { - if (temp_f30 <= 20.0f) { - temp_f31 = 300.0 * cosd(4.5f * temp_f30) + lbl_1_data_124[4]; - HuSprGrpPosSet(temp_r23, temp_f31, 242.0f); - temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (lbl_1_data_124[4] - 100.0f); + t = i - 6; + if (t > 0.0f) { + if (t <= 20.0f) { + posX = 300.0 * cosd(4.5f * t) + instNamePosTbl[4]; + HuSprGrpPosSet(practiceGrpId, posX, 242.0f); + posX = 300.0 * cosd(4.5f * t) + (instNamePosTbl[4] - 100.0f); #if VERSION_NTSC - HuWinPosSet(sp10[1], 16.0f + temp_f31, 224.0f); + HuWinPosSet(sp10[1], 16.0f + posX, 224.0f); #else - HuWinPosSet(sp10[1], 8.0f + temp_f31, 224.0f); + HuWinPosSet(sp10[1], 8.0f + posX, 224.0f); #endif } } - temp_f30 = temp_r31 - 9; - if (temp_f30 > 0.0f) { - if (temp_f30 <= 20.0f) { - temp_f31 = 300.0 * cosd(4.5f * temp_f30) + (lbl_1_data_124[6] - (WIN_ANIM_OFS+16)); - HuWinPosSet(sp10[2], 16.0f + temp_f31, 274.0f); + t = i - 9; + if (t > 0.0f) { + if (t <= 20.0f) { + posX = 300.0 * cosd(4.5f * t) + (instNamePosTbl[6] - (WIN_ANIM_OFS+16)); + HuWinPosSet(sp10[2], 16.0f + posX, 274.0f); } } HuPrcVSleep(); } - while (lbl_1_data_0 != 3) { - if (temp_r21 != lbl_1_bss_6) { - temp_f31 = 16.0f + (lbl_1_data_124[6] - (WIN_ANIM_OFS+16)); - HuWinMesSet(temp_r27, MAKE_MESSID(0x24, 0x02) + lbl_1_bss_10 + temp_r21); - temp_r21 = lbl_1_bss_6; - if (lbl_1_bss_6 == 1) { - if (mgInfoTbl[lbl_1_bss_14].inst_mess[2]) { - HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02) + lbl_1_bss_10 + lbl_1_bss_6); + while (instMode != 3) { + if (prevPage != instPage) { + posX = 16.0f + (instNamePosTbl[6] - (WIN_ANIM_OFS+16)); + HuWinMesSet(rulesWinId, MAKE_MESSID(0x24, 0x02) + instMesOfs + prevPage); + prevPage = instPage; + if (instPage == 1) { + if (mgInfoTbl[instMgNo].inst_mess[2]) { + HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02) + instMesOfs + instPage); } else { - HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x06) + lbl_1_bss_10); + HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x06) + instMesOfs); } } else { - HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02) + lbl_1_bss_10 + lbl_1_bss_6); + HuWinMesSet(sp10[2], MAKE_MESSID(0x24, 0x02) + instMesOfs + instPage); } - for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { + for (i = 0; i <= 10; i++) { #if VERSION_NTSC - HuWinPosSet(temp_r27, 30.0 * sind(temp_r31 * 9.0f) + temp_f31, 200.0 * (1.0 - cosd(temp_r31 * 9.0f)) + 274.0); + HuWinPosSet(rulesWinId, 30.0 * sind(i * 9.0f) + posX, 200.0 * (1.0 - cosd(i * 9.0f)) + 274.0); #else - HuWinPosSet(temp_r27, 30.0 * sind(temp_r31 * 9.0f) + temp_f31, 220.0 * (1.0 - cosd(temp_r31 * 9.0f)) + 274.0); + HuWinPosSet(rulesWinId, 30.0 * sind(i * 9.0f) + posX, 220.0 * (1.0 - cosd(i * 9.0f)) + 274.0); #endif HuPrcVSleep(); } } HuPrcVSleep(); } - for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { - temp_f30 = 1.0 - cosd(temp_r31 * 4.5f); - temp_f31 = temp_f29 + (500.0f * temp_f30); - HuSprGrpPosSet(temp_r25, temp_f31, temp_f28); - temp_f31 = ((576.0f - (work.alt_word_len / 2)) - 24.0f) + (500.0f * temp_f30); - for (temp_r30 = 0; temp_r30 < temp_r26; temp_r30++) { - HuSprGrpPosSet(work.spr_grp[temp_r30], temp_f31, (temp_r30 * 28) + 70); + for (i = 0; i < 20; i++) { + t = 1.0 - cosd(i * 4.5f); + posX = nameX + (500.0f * t); + HuSprGrpPosSet(nameGrpId, posX, nameY); + posX = ((576.0f - (work.alt_word_len / 2)) - 24.0f) + (500.0f * t); + for (j = 0; j < mesSpaceNum; j++) { + HuSprGrpPosSet(work.spr_grp[j], posX, (j * 28) + 70); } - temp_f31 = lbl_1_data_124[2] + (300.0f * temp_f30); - HuSprGrpPosSet(temp_r24, temp_f31, 186.0f); - temp_f31 = (lbl_1_data_124[2] - 88.0f) + (300.0f * temp_f30); - HuWinPosSet(sp10[0], 16.0f + temp_f31, 168); - temp_f31 = lbl_1_data_124[4] + (300.0f * temp_f30); - HuSprGrpPosSet(temp_r23, temp_f31, 242.0f); - temp_f31 = (lbl_1_data_124[4] - 100.0f) + (300.0f * temp_f30); - HuWinPosSet(sp10[1], 16.0f + temp_f31, 224); + posX = instNamePosTbl[2] + (300.0f * t); + HuSprGrpPosSet(startGrpId, posX, 186.0f); + posX = (instNamePosTbl[2] - 88.0f) + (300.0f * t); + HuWinPosSet(sp10[0], 16.0f + posX, 168); + posX = instNamePosTbl[4] + (300.0f * t); + HuSprGrpPosSet(practiceGrpId, posX, 242.0f); + posX = (instNamePosTbl[4] - 100.0f) + (300.0f * t); + HuWinPosSet(sp10[1], 16.0f + posX, 224); #if VERSION_NTSC - temp_f31 = (lbl_1_data_124[6] - 184.0f) + (400.0f * temp_f30); + posX = (instNamePosTbl[6] - 184.0f) + (400.0f * t); #else - temp_f31 = (lbl_1_data_124[6] - 235.0f) + (400.0f * temp_f30); + posX = (instNamePosTbl[6] - 235.0f) + (400.0f * t); #endif - HuWinPosSet(sp10[2], 16.0f + temp_f31, 274); + HuWinPosSet(sp10[2], 16.0f + posX, 274); HuPrcVSleep(); } MGSeqSprKill(&work); @@ -962,98 +961,98 @@ static void fn_1_2FA0(void) } } -static u16 lbl_1_data_144[2] = { 1, 2 }; -static void fn_1_4174(omObjData *object) +static void CameraOutView(omObjData *object) { s16 i; + static u16 cameraMask[] = { HU3D_CAM0, HU3D_CAM1 }; for (i = 0; i < 2; i++) { Vec pos, target, up; float x, y, z; - x = lbl_1_bss_40[i].x; - y = lbl_1_bss_40[i].y; - z = lbl_1_bss_40[i].z; + x = cameraRot[i].x; + y = cameraRot[i].y; + z = cameraRot[i].z; - pos.x = (((sind(y) * cosd(x)) * lbl_1_bss_20[i]) + lbl_1_bss_28[i].x); - pos.y = (-sind(x) * lbl_1_bss_20[i]) + lbl_1_bss_28[i].y; - pos.z = ((cosd(y) * cosd(x)) * lbl_1_bss_20[i]) + lbl_1_bss_28[i].z; - target.x = lbl_1_bss_28[i].x; - target.y = lbl_1_bss_28[i].y; - target.z = lbl_1_bss_28[i].z; + pos.x = (((sind(y) * cosd(x)) * cameraZoom[i]) + cameraPos[i].x); + pos.y = (-sind(x) * cameraZoom[i]) + cameraPos[i].y; + pos.z = ((cosd(y) * cosd(x)) * cameraZoom[i]) + cameraPos[i].z; + target.x = cameraPos[i].x; + target.y = cameraPos[i].y; + target.z = cameraPos[i].z; up.x = sind(y) * sind(x); up.y = cosd(x); up.z = cosd(y) * sind(x); - Hu3DCameraPosSet(lbl_1_data_144[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); + Hu3DCameraPosSet(cameraMask[i], pos.x, pos.y, pos.z, up.x, up.y, up.z, target.x, target.y, target.z); } } -static void fn_1_4528(omObjData *object) +static void CameraDebug(omObjData *object) { Vec pos; Vec offset; Vec dir; - Vec y_offset; + Vec yOffset; - f32 z_rot; - s8 stick_pos; + float rotZ; + s8 stickPos; - if (lbl_1_bss_0 != 0) { - lbl_1_bss_40[0].y += 0.1f * HuPadStkX[0]; - lbl_1_bss_40[0].x += 0.1f * HuPadStkY[0]; - lbl_1_bss_20[0] += HuPadTrigL[0] / 2; - lbl_1_bss_20[0] -= HuPadTrigR[0] / 2; - if (lbl_1_bss_20[0] < 100.0f) { - lbl_1_bss_20[0] = 100.0f; + if (debugCamOnF != 0) { + cameraRot[0].y += 0.1f * HuPadStkX[0]; + cameraRot[0].x += 0.1f * HuPadStkY[0]; + cameraZoom[0] += HuPadTrigL[0] / 2; + cameraZoom[0] -= HuPadTrigR[0] / 2; + if (cameraZoom[0] < 100.0f) { + cameraZoom[0] = 100.0f; } - pos.x = lbl_1_bss_28[0].x + (lbl_1_bss_20[0] * (sind(lbl_1_bss_40[0].y) * cosd(lbl_1_bss_40[0].x))); - pos.y = (lbl_1_bss_28[0].y + (lbl_1_bss_20[0] * -sind(lbl_1_bss_40[0].x))); - pos.z = (lbl_1_bss_28[0].z + (lbl_1_bss_20[0] * (cosd(lbl_1_bss_40[0].y) * cosd(lbl_1_bss_40[0].x)))); - offset.x = lbl_1_bss_28[0].x - pos.x; - offset.y = lbl_1_bss_28[0].y - pos.y; - offset.z = lbl_1_bss_28[0].z - pos.z; - dir.x = (sind(lbl_1_bss_40[0].y) * sind(lbl_1_bss_40[0].x)); - dir.y = cosd(lbl_1_bss_40[0].x); - dir.z = (cosd(lbl_1_bss_40[0].y) * sind(lbl_1_bss_40[0].x)); - z_rot = lbl_1_bss_40[0].z; - y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot)) - + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) - + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); + pos.x = cameraPos[0].x + (cameraZoom[0] * (sind(cameraRot[0].y) * cosd(cameraRot[0].x))); + pos.y = (cameraPos[0].y + (cameraZoom[0] * -sind(cameraRot[0].x))); + pos.z = (cameraPos[0].z + (cameraZoom[0] * (cosd(cameraRot[0].y) * cosd(cameraRot[0].x)))); + offset.x = cameraPos[0].x - pos.x; + offset.y = cameraPos[0].y - pos.y; + offset.z = cameraPos[0].z - pos.z; + dir.x = (sind(cameraRot[0].y) * sind(cameraRot[0].x)); + dir.y = cosd(cameraRot[0].x); + dir.z = (cosd(cameraRot[0].y) * sind(cameraRot[0].x)); + rotZ = cameraRot[0].z; + yOffset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(rotZ)) + + dir.y * (offset.x * offset.y * (1.0f - cosd(rotZ)) - offset.z * sind(rotZ)) + + dir.z * (offset.x * offset.z * (1.0f - cosd(rotZ)) + offset.y * sind(rotZ)); - y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot)) - + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) - + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); + yOffset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(rotZ)) + + dir.x * (offset.x * offset.y * (1.0f - cosd(rotZ)) + offset.z * sind(rotZ)) + + dir.z * (offset.y * offset.z * (1.0f - cosd(rotZ)) - offset.x * sind(rotZ)); - y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot)) - + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) - + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); + yOffset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(rotZ)) + + (dir.x * (offset.x * offset.z * (1.0 - cosd(rotZ)) - offset.y * sind(rotZ)) + + dir.y * (offset.y * offset.z * (1.0 - cosd(rotZ)) + offset.x * sind(rotZ))); VECCrossProduct(&dir, &offset, &offset); VECNormalize(&offset, &offset); - stick_pos = (HuPadSubStkX[0] & 0xF8); - if (stick_pos != 0) { - lbl_1_bss_28[0].x += 0.05f * (offset.x * stick_pos); - lbl_1_bss_28[0].y += 0.05f * (offset.y * stick_pos); - lbl_1_bss_28[0].z += 0.05f * (offset.z * stick_pos); + stickPos = (HuPadSubStkX[0] & 0xF8); + if (stickPos != 0) { + cameraPos[0].x += 0.05f * (offset.x * stickPos); + cameraPos[0].y += 0.05f * (offset.y * stickPos); + cameraPos[0].z += 0.05f * (offset.z * stickPos); } - VECNormalize(&y_offset, &offset); - stick_pos = -(HuPadSubStkY[0] & 0xF8); - if (stick_pos != 0) { - lbl_1_bss_28[0].x += 0.05f * (offset.x * stick_pos); - lbl_1_bss_28[0].y += 0.05f * (offset.y * stick_pos); - lbl_1_bss_28[0].z += 0.05f * (offset.z * stick_pos); + VECNormalize(&yOffset, &offset); + stickPos = -(HuPadSubStkY[0] & 0xF8); + if (stickPos != 0) { + cameraPos[0].x += 0.05f * (offset.x * stickPos); + cameraPos[0].y += 0.05f * (offset.y * stickPos); + cameraPos[0].z += 0.05f * (offset.z * stickPos); } } } static float lbl_1_data_148 = 842; -static float lbl_1_data_14C = 34; +static float instPicRadius = 34; -static void fn_1_50B0(ModelData *model, Mtx mtx) +static void InstPicDraw(ModelData *model, Mtx mtx) { Mtx final; - Mtx inv_camera; - Mtx lookatlight; + Mtx invCamera; + Mtx lookAtLight; Mtx light; Mtx lookat; Vec pos; @@ -1067,7 +1066,7 @@ static void fn_1_50B0(ModelData *model, Mtx mtx) u8 b; s16 row; - s32 sp8 = 0; + s32 practiceSprId = 0; GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); @@ -1076,22 +1075,22 @@ static void fn_1_50B0(ModelData *model, Mtx mtx) GXSetVtxDesc(GX_VA_NRM, GX_DIRECT); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); target.x = target.z = 0.0f; - target.x = lbl_1_data_14C * sind(lbl_1_bss_40[0].y); - target.z = lbl_1_data_14C * cosd(lbl_1_bss_40[0].y); + target.x = instPicRadius * sind(cameraRot[0].y); + target.z = instPicRadius * cosd(cameraRot[0].y); target.y = 415.0f; - pos.x = (sind(lbl_1_bss_40[0].y) * cosd(lbl_1_bss_40[0].x) * lbl_1_bss_20[0]) + lbl_1_bss_28[0].x; - pos.y = (-sind(lbl_1_bss_40[0].x) * lbl_1_bss_20[0]) + lbl_1_bss_28[0].y; - pos.z = (cosd(lbl_1_bss_40[0].y) * cosd(lbl_1_bss_40[0].x) * lbl_1_bss_20[0]) + lbl_1_bss_28[0].z; - up.x = -sind(lbl_1_bss_40[0].y); - up.z = -cosd(lbl_1_bss_40[0].y); + pos.x = (sind(cameraRot[0].y) * cosd(cameraRot[0].x) * cameraZoom[0]) + cameraPos[0].x; + pos.y = (-sind(cameraRot[0].x) * cameraZoom[0]) + cameraPos[0].y; + pos.z = (cosd(cameraRot[0].y) * cosd(cameraRot[0].x) * cameraZoom[0]) + cameraPos[0].z; + up.x = -sind(cameraRot[0].y); + up.z = -cosd(cameraRot[0].y); up.y = 0; MTXLookAt(lookat, &pos, &up, &target); - MTXLightPerspective(light, lbl_1_bss_C, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); - HuSprTexLoad(lbl_1_bss_18, 0, 0, GX_CLAMP, GX_CLAMP, GX_NEAR); - MTXInverse(Hu3DCameraMtx, inv_camera); - MTXConcat(inv_camera, mtx, final); - MTXConcat(light, lookat, lookatlight); - MTXConcat(lookatlight, final, final); + MTXLightPerspective(light, instFov, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); + HuSprTexLoad(instPicAnim, 0, 0, GX_CLAMP, GX_CLAMP, GX_NEAR); + MTXInverse(Hu3DCameraMtx, invCamera); + MTXConcat(invCamera, mtx, final); + MTXConcat(light, lookat, lookAtLight); + MTXConcat(lookAtLight, final, final); GXLoadTexMtxImm(final, GX_TEXMTX0, GX_MTX3x4); GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); @@ -1144,12 +1143,12 @@ static void fn_1_50B0(ModelData *model, Mtx mtx) GXEnd(); } -static void fn_1_5B64(ModelData *model, Mtx mtx) +static void ShadowDraw(ModelData *model, Mtx mtx) { - s32 sp8 = 0; + s32 temp = 0; GXTexObj tex; Mtx final; - Mtx inv_camera; + Mtx invCamera; Mtx shadow; GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); @@ -1157,8 +1156,8 @@ static void fn_1_5B64(ModelData *model, Mtx mtx) GXInitTexObj(&tex, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_TF_I8, GX_CLAMP, GX_CLAMP, GX_FALSE); GXInitTexObjLOD(&tex, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); GXLoadTexObj(&tex, 0); - MTXInverse(Hu3DCameraMtx, inv_camera); - MTXConcat(inv_camera, mtx, final); + MTXInverse(Hu3DCameraMtx, invCamera); + MTXConcat(invCamera, mtx, final); MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, shadow); MTXConcat(shadow, final, final); GXLoadTexMtxImm(final, GX_TEXMTX9, GX_MTX3x4); diff --git a/src/REL/resultDll/battle.c b/src/REL/resultDll/battle.c index 8818f975..8baf9450 100644 --- a/src/REL/resultDll/battle.c +++ b/src/REL/resultDll/battle.c @@ -19,7 +19,9 @@ #include "REL/resultdll.h" -DataListModel lbl_1_data_4E8[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x08), 0, 0, -1, -1, { -300, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, +#define COIN_EFFECT_MAX 180 + +static StageModel resultBattleModel[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x08), 0, 0, -1, -1, { -300, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x09), 0, 0, -1, -1, { -100, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x0A), 0, 0, -1, -1, { 100, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x0A), 0, 0, -1, -1, { 300, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, @@ -32,12 +34,12 @@ DataListModel lbl_1_data_4E8[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x08), 0, 0, { DATA_MAKE_NUM(DATADIR_RESULT, 0x0F), 0x40000002, 0, -1, -1, { 5000, 0, 0 }, { 0, 0, 0 }, { 2.0f, 2.0f, 2.0f } }, { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } } }; -DataListSprite lbl_1_data_758[] = { +static StageSprite resultBattleSprite[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x43), 0, 10, 288, 240, { 255, 255, 255, 255 } }, { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, }; -HsfanimStruct00 lbl_1_data_780 = { 80, { 0, 0 }, 3, 30, 90, { 0, -0.2, 0 }, 5.0f, 0.95f, 10.0f, 0.995f, 2, +static HsfanimStruct00 resultBattleEffParMan = { 80, { 0, 0 }, 3, 30, 90, { 0, -0.2, 0 }, 5.0f, 0.95f, 10.0f, 0.995f, 2, { { 255, 192, 112, 255 }, { 0, 0, 0, 0 }, @@ -49,9 +51,10 @@ HsfanimStruct00 lbl_1_data_780 = { 80, { 0, 0 }, 3, 30, 90, { 0, -0.2, 0 }, 5.0f { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, - } }; + } +}; -s16 lbl_1_data_7D0[] = { +static s16 resultStatPosTbl[] = { 320, 132, 500, @@ -70,103 +73,103 @@ s16 lbl_1_data_7D0[] = { 387, }; -Vec lbl_1_data_7F0[] = { { -300, 270, 0 }, { -100, 180, 500 }, { 100, 90, 500 }, { 300, 0, 500 } }; +static Vec playerPosTbl[] = { { -300, 270, 0 }, { -100, 180, 500 }, { 100, 90, 500 }, { 300, 0, 500 } }; s16 lbl_1_data_820[] = { -284, 148, -84, 233, 116, 318, 316, 403 }; -s32 lbl_1_data_830[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x08), DATA_MAKE_NUM(DATADIR_RESULT, 0x09), DATA_MAKE_NUM(DATADIR_RESULT, 0x0A), +static s32 bomheiCubeMdlTbl[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x08), DATA_MAKE_NUM(DATADIR_RESULT, 0x09), DATA_MAKE_NUM(DATADIR_RESULT, 0x0A), DATA_MAKE_NUM(DATADIR_RESULT, 0x0A) }; -float lbl_1_data_840[] = { 130, 150, 170, 150, 150, 130, 170, 190 }; +static float coinEffectYOfs[] = { 130, 150, 170, 150, 150, 130, 170, 190 }; -float lbl_1_data_860[] = { 130, 150, 180, 150, 150, 170, 180, 210 }; +static float coinAddYOfs[] = { 130, 150, 180, 150, 150, 170, 180, 210 }; -float lbl_1_data_880[] = { 140, 160, 180, 150, 150, 120, 180, 210 }; +static float coinBlankYOfs[] = { 140, 160, 180, 150, 150, 120, 180, 210 }; -s16 lbl_1_data_8A0[] = { 8, 0, -8 }; +static s16 coinNumXOfs[] = { 8, 0, -8 }; -typedef struct struct_unk194 { - s16 unk0; - s16 unk2; - Vec unk4; - Vec unk10; - float unk1C; -} StructUnk194; +typedef struct CoinEffect_s { + s16 playerNo; + s16 rank; + Vec pos; + Vec rotVel; + float velY; +} CoinEffect; u8 lbl_1_bss_19F8[32]; -s16 lbl_1_bss_19F0[4]; -s16 lbl_1_bss_19E8[4]; -s16 lbl_1_bss_19E0[4]; -s16 lbl_1_bss_19B8[4][5]; -s16 lbl_1_bss_19B0[4]; -s16 lbl_1_bss_1990[4][4]; -s16 lbl_1_bss_1828[180]; +static s16 resultBattleOrder[4]; +static s16 resultBattleRank[4]; +static s16 coinNumGrpId[4]; +static s16 coinNumSprId[4][5]; +static s16 resultBattleCharMdl[4]; +static s16 resultBattleCharMot[4][4]; +static s16 coinEffectMdlId[COIN_EFFECT_MAX]; s16 lbl_1_bss_181C[6]; -s16 lbl_1_bss_1814[4]; -StructUnk194 lbl_1_bss_194[180]; -s32 lbl_1_bss_190; +static s16 resultBattleEffParManId[4]; +static CoinEffect coinEffectData[COIN_EFFECT_MAX]; +static s32 resultBattleSkipF; -void fn_1_6760(void); -void fn_1_6824(void); -void fn_1_7544(void); +static void ResultBattleIdle(void); +static void ResultBattleCreate(void); +static void ResultBattleStatAdd(void); -void fn_1_6490(void) +void ResultBattleMain(void) { - s16 player; + s16 playerNo; s16 i; - s16 window; - s16 button; - Process *process = HuPrcCurrentGet(); + s16 winId; + s16 btnDown; + Process *proc = HuPrcCurrentGet(); HuAudSeqPlay(10); - for (i = player = 0; i < 4; i++) { + for (i = playerNo = 0; i < 4; i++) { if (GWPlayerCfg[i].iscom) { - player++; + playerNo++; } } - if (player == 4) { - lbl_1_bss_190 = 1; + if (playerNo == 4) { + resultBattleSkipF = 1; } else { - lbl_1_bss_190 = 0; + resultBattleSkipF = 0; } - fn_1_6824(); - HuPrcChildCreate(fn_1_6760, 100, 8192, 0, process); + ResultBattleCreate(); + HuPrcChildCreate(ResultBattleIdle, 100, 8192, 0, proc); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); while (WipeStatGet()) { HuPrcVSleep(); } - lbl_1_bss_178 = 0; - HuPrcChildCreate(fn_1_3FD8, 100, 12288, 0, process); + resultReadEndF = 0; + HuPrcChildCreate(ResultBoardDataRead, 100, 12288, 0, proc); HuPrcSleep(10); - if (!lbl_1_bss_174) { + if (!resultFastF) { HuPrcSleep(20); } - fn_1_7544(); - fn_1_40DC(); - window = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); - HuWinMesSpeedSet(window, 0); - HuWinBGTPLvlSet(window, 0); - HuWinAttrSet(window, 0x800); - HuWinMesSet(window, MAKE_MESSID(0x24, 0x07)); + ResultBattleStatAdd(); + ResultCoinAdd(); + winId = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); + HuWinMesSpeedSet(winId, 0); + HuWinBGTPLvlSet(winId, 0); + HuWinAttrSet(winId, 0x800); + HuWinMesSet(winId, MAKE_MESSID(0x24, 0x07)); i = 0; while (1) { - if (lbl_1_bss_190 && i > 120) { + if (resultBattleSkipF && i > 120) { break; } - for (player = button = 0; player < 4; player++) { - if (!GWPlayerCfg[player].iscom) { - button |= HuPadBtnDown[GWPlayerCfg[player].pad_idx]; + for (playerNo = btnDown = 0; playerNo < 4; playerNo++) { + if (!GWPlayerCfg[playerNo].iscom) { + btnDown |= HuPadBtnDown[GWPlayerCfg[playerNo].pad_idx]; } } - if (button & PAD_BUTTON_A) { + if (btnDown & PAD_BUTTON_A) { HuAudFXPlay(28); break; } HuPrcVSleep(); i++; } - HuWinKill(window); - while (!lbl_1_bss_178) { + HuWinKill(winId); + while (!resultReadEndF) { HuPrcVSleep(); } WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); @@ -183,45 +186,45 @@ void fn_1_6490(void) } } -void fn_1_6760(void) +static void ResultBattleIdle(void) { Vec temp; temp.z = 0.0f; temp.y = 0.0f; temp.x = 0.0f; while (1) { - if (((HuPadBtn[0] | HuPadBtn[1] | HuPadBtn[2] | HuPadBtn[3]) & 0x100) != 0 || lbl_1_bss_190 != 0) { - lbl_1_bss_174 = 1; + if (((HuPadBtn[0] | HuPadBtn[1] | HuPadBtn[2] | HuPadBtn[3]) & 0x100) != 0 || resultBattleSkipF != 0) { + resultFastF = 1; } else { - lbl_1_bss_174 = 0; + resultFastF = 0; } HuPrcVSleep(); } } -void fn_1_7F98(void); -void fn_1_8338(s16 group, s16 value); -void fn_1_8484(void); -void fn_1_8658(void); -void fn_1_86DC(s16 player); -void fn_1_8CB8(struct model_data *model, Mtx matrix); +static void ResultBattleCoinAddShow(void); +static void ResultBattleCoinAddNumSet(s16 grpId, s16 value); +static void ResultBattleOrderSet(void); +static void CoinEffectInit(void); +static void CoinEffectAdd(s16 playerNo); +static void ResultShadowDraw(struct model_data *model, Mtx matrix); -void fn_1_6824(void) +static void ResultBattleCreate(void) { s16 i; - s16 character; - s16 player; - s16 x_ofs; + s16 charNo; + s16 playerNo; + s16 xOfs; AnimData *anim; AnimData *anim2; AnimData *anim3; - s16 char_mdl; + s16 charMdlId; Vec pos; Vec target; Vec up; - s16 gains[5]; - Process *process = HuPrcCurrentGet(); + s16 coinNum[5]; + Process *proc = HuPrcCurrentGet(); CRot.x = 0; CRot.y = 0; CRot.z = 0; @@ -240,168 +243,167 @@ void fn_1_6824(void) up.y = 1; up.z = 0; Hu3DShadowPosSet(&pos, &up, &target); - i = Hu3DHookFuncCreate(fn_1_8CB8); + i = Hu3DHookFuncCreate(ResultShadowDraw); Hu3DModelPosSet(i, 0, 0, 0); - fn_1_8484(); - fn_1_423C(gains); - gains[lbl_1_bss_172] += gains[4]; + ResultBattleOrderSet(); + ResultCoinNumGet(coinNum); + coinNum[resultBonusPlayer] += coinNum[4]; for (i = 0; i < 4; i++) { - lbl_1_data_4E8[i].datanum = lbl_1_data_830[lbl_1_bss_19E8[i]]; - if (lbl_1_bss_19E8[i] == 3) { - lbl_1_data_4E8[i].attr = 1; + resultBattleModel[i].datanum = bomheiCubeMdlTbl[resultBattleRank[i]]; + if (resultBattleRank[i] == 3) { + resultBattleModel[i].attr = 1; } } - fn_1_8FF8(lbl_1_data_4E8); - fn_1_927C(lbl_1_data_758); - espDrawNoSet(lbl_1_bss_1A1A[0], 127); + StageModelCreate(resultBattleModel); + StageSpriteCreate(resultBattleSprite); + espDrawNoSet(stageSprId[0], 127); for (i = 0; i < 4; i++) { - Hu3DModelShadowSet(lbl_1_bss_1A9C[i]); + Hu3DModelShadowSet(stageMdlId[i]); } for (i = 0; i < 4; i++) { - anim = HuSprAnimRead(HuDataReadNum(lbl_1_bss_19E8[i] + DATA_MAKE_NUM(DATADIR_RESULT, 0x44), MEMORY_DEFAULT_NUM)); - ; - if (lbl_1_bss_19E8[i] <= 2) { + anim = HuSprAnimRead(HuDataReadNum(resultBattleRank[i] + DATA_MAKE_NUM(DATADIR_RESULT, 0x44), MEMORY_DEFAULT_NUM)); + if (resultBattleRank[i] <= 2) { anim2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x48), MEMORY_DEFAULT_NUM)); } else { anim2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x48), MEMORY_DEFAULT_NUM)); } - Hu3DAnimCreate(anim, lbl_1_bss_1A9C[i + 4], "ys22_a0"); - Hu3DAnimCreate(anim2, lbl_1_bss_1A9C[i + 4], "ys22_a1"); - Hu3DModelAttrSet(lbl_1_bss_1A9C[i + 4], HU3D_MOTATTR_PAUSE); + Hu3DAnimCreate(anim, stageMdlId[i + 4], "ys22_a0"); + Hu3DAnimCreate(anim2, stageMdlId[i + 4], "ys22_a1"); + Hu3DModelAttrSet(stageMdlId[i + 4], HU3D_MOTATTR_PAUSE); } anim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x3D), MEMORY_DEFAULT_NUM)); anim2 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x3B), MEMORY_DEFAULT_NUM)); anim3 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_RESULT, 0x3C), MEMORY_DEFAULT_NUM)); for (i = 0; i < 4; i++) { - if (gains[lbl_1_bss_19F0[i]] >= 100) { - x_ofs = lbl_1_data_8A0[2]; + if (coinNum[resultBattleOrder[i]] >= 100) { + xOfs = coinNumXOfs[2]; } - else if (gains[lbl_1_bss_19F0[i]] >= 10) { - x_ofs = lbl_1_data_8A0[1]; + else if (coinNum[resultBattleOrder[i]] >= 10) { + xOfs = coinNumXOfs[1]; } else { - x_ofs = lbl_1_data_8A0[0]; + xOfs = coinNumXOfs[0]; } - lbl_1_bss_19E0[i] = HuSprGrpCreate(5); - lbl_1_bss_19B8[i][0] = HuSprCreate(anim, 10, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 0, lbl_1_bss_19B8[i][0]); - HuSprPosSet(lbl_1_bss_19E0[i], 0, 17, -32); - lbl_1_bss_19B8[i][1] = HuSprCreate(anim2, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 1, lbl_1_bss_19B8[i][1]); - HuSprPosSet(lbl_1_bss_19E0[i], 1, x_ofs, -36); - lbl_1_bss_19B8[i][2] = HuSprCreate(anim3, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 2, lbl_1_bss_19B8[i][2]); - HuSprPosSet(lbl_1_bss_19E0[i], 2, x_ofs + 16, -36); - lbl_1_bss_19B8[i][3] = HuSprCreate(anim3, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 3, lbl_1_bss_19B8[i][3]); - HuSprPosSet(lbl_1_bss_19E0[i], 3, x_ofs + 32, -36); - lbl_1_bss_19B8[i][4] = HuSprCreate(anim3, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_19E0[i], 4, lbl_1_bss_19B8[i][4]); - HuSprPosSet(lbl_1_bss_19E0[i], 4, x_ofs + 48, -36); - HuSprGrpPosSet(lbl_1_bss_19E0[i], 0, 0); - fn_1_8338(lbl_1_bss_19E0[i], 9); - HuSprGrpScaleSet(lbl_1_bss_19E0[i], 0, 0); + coinNumGrpId[i] = HuSprGrpCreate(5); + coinNumSprId[i][0] = HuSprCreate(anim, 10, 0); + HuSprGrpMemberSet(coinNumGrpId[i], 0, coinNumSprId[i][0]); + HuSprPosSet(coinNumGrpId[i], 0, 17, -32); + coinNumSprId[i][1] = HuSprCreate(anim2, 0, 0); + HuSprGrpMemberSet(coinNumGrpId[i], 1, coinNumSprId[i][1]); + HuSprPosSet(coinNumGrpId[i], 1, xOfs, -36); + coinNumSprId[i][2] = HuSprCreate(anim3, 0, 0); + HuSprGrpMemberSet(coinNumGrpId[i], 2, coinNumSprId[i][2]); + HuSprPosSet(coinNumGrpId[i], 2, xOfs + 16, -36); + coinNumSprId[i][3] = HuSprCreate(anim3, 0, 0); + HuSprGrpMemberSet(coinNumGrpId[i], 3, coinNumSprId[i][3]); + HuSprPosSet(coinNumGrpId[i], 3, xOfs + 32, -36); + coinNumSprId[i][4] = HuSprCreate(anim3, 0, 0); + HuSprGrpMemberSet(coinNumGrpId[i], 4, coinNumSprId[i][4]); + HuSprPosSet(coinNumGrpId[i], 4, xOfs + 48, -36); + HuSprGrpPosSet(coinNumGrpId[i], 0, 0); + ResultBattleCoinAddNumSet(coinNumGrpId[i], 9); + HuSprGrpScaleSet(coinNumGrpId[i], 0, 0); } (void)anim3; - Hu3DMotionSet(lbl_1_bss_1A9C[8], lbl_1_bss_1A5C[9]); - Hu3DModelAttrSet(lbl_1_bss_1A9C[8], HU3D_MOTATTR_LOOP); - Hu3DModelShadowSet(lbl_1_bss_1A9C[8]); - for (i = 0; i < 180; i++) { + Hu3DMotionSet(stageMdlId[8], stageMotId[9]); + Hu3DModelAttrSet(stageMdlId[8], HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(stageMdlId[8]); + for (i = 0; i < COIN_EFFECT_MAX; i++) { if (i == 0) { - lbl_1_bss_1828[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x0C)); + coinEffectMdlId[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x0C)); } else { - lbl_1_bss_1828[i] = Hu3DModelLink(lbl_1_bss_1828[0]); + coinEffectMdlId[i] = Hu3DModelLink(coinEffectMdlId[0]); } - Hu3DModelScaleSet(lbl_1_bss_1828[i], 0.5f, 0.5f, 0.5f); - Hu3DModelAttrSet(lbl_1_bss_1828[i], HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(coinEffectMdlId[i], 0.5f, 0.5f, 0.5f); + Hu3DModelAttrSet(coinEffectMdlId[i], HU3D_ATTR_DISPOFF); } - fn_1_8658(); + CoinEffectInit(); anim = HuSprAnimRead(HuAR_ARAMtoMRAMFileRead(DATA_MAKE_NUM(DATADIR_EFFECT, 4), MEMORY_DEFAULT_NUM, HEAP_DATA)); for (i = 0; i < 4; i++) { - lbl_1_bss_1814[i] = Hu3DParManCreate(anim, 300, &lbl_1_data_780); - Hu3DParManAttrSet(lbl_1_bss_1814[i], 0x65); - Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_1814[i]), 1); - Hu3DParManRotSet(lbl_1_bss_1814[i], 90, 0, 0); + resultBattleEffParManId[i] = Hu3DParManCreate(anim, 300, &resultBattleEffParMan); + Hu3DParManAttrSet(resultBattleEffParManId[i], 0x65); + Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(resultBattleEffParManId[i]), 1); + Hu3DParManRotSet(resultBattleEffParManId[i], 90, 0, 0); } HuDataDirClose(DATADIR_RESULT); for (i = 0; i < 4; i++) { - player = lbl_1_bss_19F0[i]; - character = GWPlayerCfg[lbl_1_bss_19F0[i]].character; - char_mdl = CharModelCreate(character, 2); - lbl_1_bss_19B0[player] = char_mdl; - lbl_1_bss_1990[player][0] = CharModelMotionCreate(character, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); - lbl_1_bss_1990[player][1] = CharModelMotionCreate(character, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17)); - lbl_1_bss_1990[player][2] = CharModelMotionCreate(character, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49)); - CharModelVoiceEnableSet(character, lbl_1_bss_1990[player][1], 0); - CharModelMotionSet(character, lbl_1_bss_1990[player][0]); - Hu3DModelPosSet(char_mdl, lbl_1_data_7F0[i].x, lbl_1_data_7F0[lbl_1_bss_19E8[i]].y, 0); - Hu3DModelAttrSet(char_mdl, HU3D_MOTATTR_LOOP); - Hu3DModelShadowSet(char_mdl); + playerNo = resultBattleOrder[i]; + charNo = GWPlayerCfg[resultBattleOrder[i]].character; + charMdlId = CharModelCreate(charNo, 2); + resultBattleCharMdl[playerNo] = charMdlId; + resultBattleCharMot[playerNo][0] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00)); + resultBattleCharMot[playerNo][1] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x17)); + resultBattleCharMot[playerNo][2] = CharModelMotionCreate(charNo, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x49)); + CharModelVoiceEnableSet(charNo, resultBattleCharMot[playerNo][1], 0); + CharModelMotionSet(charNo, resultBattleCharMot[playerNo][0]); + Hu3DModelPosSet(charMdlId, playerPosTbl[i].x, playerPosTbl[resultBattleRank[i]].y, 0); + Hu3DModelAttrSet(charMdlId, HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(charMdlId); } CharModelDataClose(-1); } -Vec lbl_1_data_8B8[] = { { 8, 0, 0 }, { 0, 8, 0 }, { 10, 5, 0 }, { -5, 10, 0 }, { 0, -8, 0 }, { 8, 10, 0 }, { -10, 8, 0 }, { 15, 0, 0 } }; +static Vec cameraShakeOfs[] = { { 8, 0, 0 }, { 0, 8, 0 }, { 10, 5, 0 }, { -5, 10, 0 }, { 0, -8, 0 }, { 8, 10, 0 }, { -10, 8, 0 }, { 15, 0, 0 } }; -void fn_1_7544(void) +static void ResultBattleStatAdd(void) { s16 i; s16 time; s16 done_cnt; float pos_y; - s16 gains[5]; - s16 time_player[4]; - fn_1_423C(gains); + s16 coinNum[5]; + s16 delay[4]; + ResultCoinNumGet(coinNum); for (time = 0; time <= 5; time++) { pos_y = ((5 - time) * 50) + 580; for (i = 0; i < 4; i++) { - Hu3DModelPosSet(lbl_1_bss_1A9C[i + 4], lbl_1_data_7F0[i].x, pos_y, 0); + Hu3DModelPosSet(stageMdlId[i + 4], playerPosTbl[i].x, pos_y, 0); } HuPrcVSleep(); } for (i = 0; i < 4; i++) { - Hu3DModelAttrReset(lbl_1_bss_1A9C[i + 4], HU3D_MOTATTR_PAUSE); - Hu3DMotionSpeedSet(lbl_1_bss_1A9C[i + 4], 1.5f); + Hu3DModelAttrReset(stageMdlId[i + 4], HU3D_MOTATTR_PAUSE); + Hu3DMotionSpeedSet(stageMdlId[i + 4], 1.5f); } HuPrcSleep(35); for (i = 0; i < 4; i++) { - if (gains[lbl_1_bss_19F0[i]] > 0) { - Hu3DParManAttrReset(lbl_1_bss_1814[i], 1); - time_player[i] = frandmod(10); + if (coinNum[resultBattleOrder[i]] > 0) { + Hu3DParManAttrReset(resultBattleEffParManId[i], 1); + delay[i] = frandmod(10); } else { - time_player[i] = 0; + delay[i] = 0; } - Hu3DParManPosSet(lbl_1_bss_1814[i], lbl_1_data_7F0[i].x, 610.0f, 0.0f); + Hu3DParManPosSet(resultBattleEffParManId[i], playerPosTbl[i].x, 610.0f, 0.0f); } while (1) { for (i = done_cnt = 0; i < 4; i++) { - if (time_player[i]) { - time_player[i]--; + if (delay[i]) { + delay[i]--; continue; } - if (gains[lbl_1_bss_19F0[i]] <= 0) { - Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); + if (coinNum[resultBattleOrder[i]] <= 0) { + Hu3DParManAttrSet(resultBattleEffParManId[i], 1); done_cnt++; } else { - fn_1_86DC(i); - gains[lbl_1_bss_19F0[i]]--; - if (gains[lbl_1_bss_19F0[i]] <= 10) { - time_player[i] = 4; + CoinEffectAdd(i); + coinNum[resultBattleOrder[i]]--; + if (coinNum[resultBattleOrder[i]] <= 10) { + delay[i] = 4; } else { - if (gains[lbl_1_bss_19F0[i]] <= 20) { - time_player[i] = 3; + if (coinNum[resultBattleOrder[i]] <= 20) { + delay[i] = 3; } else { - if (gains[lbl_1_bss_19F0[i]] <= 40) { - time_player[i] = 2; + if (coinNum[resultBattleOrder[i]] <= 40) { + delay[i] = 2; } else { - time_player[i] = 1; + delay[i] = 1; } } } @@ -412,234 +414,233 @@ void fn_1_7544(void) } HuPrcVSleep(); } - if (gains[4]) { + if (coinNum[4]) { HuPrcSleep(20); - Hu3DModelRotSet(lbl_1_bss_1A9C[8], 0, -90, 0); - Hu3DModelScaleSet(lbl_1_bss_1A9C[8], 0.8f, 0.8f, 0.8f); - Hu3DMotionSpeedSet(lbl_1_bss_1A9C[8], 2.0f); + Hu3DModelRotSet(stageMdlId[8], 0, -90, 0); + Hu3DModelScaleSet(stageMdlId[8], 0.8f, 0.8f, 0.8f); + Hu3DMotionSpeedSet(stageMdlId[8], 2.0f); for (i = 0; i <= 40; i++) { - Hu3DModelPosSet(lbl_1_bss_1A9C[8], 500.0f * (1.0f - (i / 40.0f)), 0, 100.0f); + Hu3DModelPosSet(stageMdlId[8], 500.0f * (1.0f - (i / 40.0f)), 0, 100.0f); HuPrcVSleep(); } HuAudFXPlay(828); - Hu3DModelAttrReset(lbl_1_bss_1A9C[10], HU3D_MOTATTR_PAUSE); - Hu3DModelPosSet(lbl_1_bss_1A9C[10], 0, 0, 200); - for (i = 0; i < Hu3DMotionMaxTimeGet(lbl_1_bss_1A9C[10]); i++) { + Hu3DModelAttrReset(stageMdlId[10], HU3D_MOTATTR_PAUSE); + Hu3DModelPosSet(stageMdlId[10], 0, 0, 200); + for (i = 0; i < Hu3DMotionMaxTimeGet(stageMdlId[10]); i++) { if (i > 10) { - Hu3DModelAttrSet(lbl_1_bss_1A9C[8], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(stageMdlId[8], HU3D_ATTR_DISPOFF); } - Center.x = lbl_1_data_8B8[(i / 2) & 0x7].x; - Center.y = 330.0f + lbl_1_data_8B8[(i / 2) & 0x7].y; - Center.z = lbl_1_data_8B8[(i / 2) & 0x7].z; - espPosSet(lbl_1_bss_1A1A[0], 288.0f + lbl_1_data_8B8[(i / 2) & 0x7].x, 240.0f - lbl_1_data_8B8[(i / 2) & 0x7].y); + Center.x = cameraShakeOfs[(i / 2) & 0x7].x; + Center.y = 330.0f + cameraShakeOfs[(i / 2) & 0x7].y; + Center.z = cameraShakeOfs[(i / 2) & 0x7].z; + espPosSet(stageSprId[0], 288.0f + cameraShakeOfs[(i / 2) & 0x7].x, 240.0f - cameraShakeOfs[(i / 2) & 0x7].y); HuPrcVSleep(); } - espPosSet(lbl_1_bss_1A1A[0], 288.0, 240.0); + espPosSet(stageSprId[0], 288.0, 240.0); Center.x = 0; Center.y = 330; Center.z = 0; - time_player[0] = 10; + delay[0] = 10; for (i = 0; i < 4; i++) { - if (lbl_1_bss_172 == lbl_1_bss_19F0[i]) { + if (resultBonusPlayer == resultBattleOrder[i]) { break; } } - Hu3DParManAttrReset(lbl_1_bss_1814[i], 1); + Hu3DParManAttrReset(resultBattleEffParManId[i], 1); while (1) { - if (time_player[0] != 0) { - time_player[0]--; + if (delay[0] != 0) { + delay[0]--; HuPrcVSleep(); continue; } - if (gains[4] <= 0) { - Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); + if (coinNum[4] <= 0) { + Hu3DParManAttrSet(resultBattleEffParManId[i], 1); break; } - fn_1_86DC(i); - gains[4]--; - time_player[0] = 5; + CoinEffectAdd(i); + coinNum[4]--; + delay[0] = 5; HuPrcVSleep(); } - Hu3DParManAttrSet(lbl_1_bss_1814[i], 1); + Hu3DParManAttrSet(resultBattleEffParManId[i], 1); } - fn_1_423C(gains); - gains[lbl_1_bss_172] += gains[4]; + ResultCoinNumGet(coinNum); + coinNum[resultBonusPlayer] += coinNum[4]; for (i = 0; i < 4; i++) { - if (gains[lbl_1_bss_19F0[i]]) { - CharModelMotionShiftSet(GWPlayerCfg[lbl_1_bss_19F0[i]].character, lbl_1_bss_1990[lbl_1_bss_19F0[i]][1], 0, 4, HU3D_MOTATTR_NONE); - HuAudPlayerVoicePlay(lbl_1_bss_19F0[i], 293); + if (coinNum[resultBattleOrder[i]]) { + CharModelMotionShiftSet(GWPlayerCfg[resultBattleOrder[i]].character, resultBattleCharMot[resultBattleOrder[i]][1], 0, 4, HU3D_MOTATTR_NONE); + HuAudPlayerVoicePlay(resultBattleOrder[i], 293); } else { - CharModelMotionShiftSet(GWPlayerCfg[lbl_1_bss_19F0[i]].character, lbl_1_bss_1990[lbl_1_bss_19F0[i]][2], 0, 4, HU3D_MOTATTR_NONE); + CharModelMotionShiftSet(GWPlayerCfg[resultBattleOrder[i]].character, resultBattleCharMot[resultBattleOrder[i]][2], 0, 4, HU3D_MOTATTR_NONE); } } HuPrcSleep(20); - fn_1_7F98(); + ResultBattleCoinAddShow(); HuPrcSleep(120); } -void fn_1_7F98(void) +static void ResultBattleCoinAddShow(void) { s16 i; s16 time; - s16 delay; - s16 gains[5]; - Vec pos_3d; - Vec pos_2d; - fn_1_423C(gains); - gains[lbl_1_bss_172] += gains[4]; + s16 speed; + s16 coinNum[5]; + Vec pos3D; + Vec pos2D; + ResultCoinNumGet(coinNum); + coinNum[resultBonusPlayer] += coinNum[4]; for (i = 0; i < 4; i++) { - fn_1_8338(lbl_1_bss_19E0[i], gains[lbl_1_bss_19F0[i]]); - pos_3d.x = lbl_1_data_7F0[i].x; - if (gains[lbl_1_bss_19F0[i]]) { - pos_3d.y = lbl_1_data_7F0[lbl_1_bss_19E8[i]].y + lbl_1_data_860[GWPlayerCfg[lbl_1_bss_19F0[i]].character]; + ResultBattleCoinAddNumSet(coinNumGrpId[i], coinNum[resultBattleOrder[i]]); + pos3D.x = playerPosTbl[i].x; + if (coinNum[resultBattleOrder[i]]) { + pos3D.y = playerPosTbl[resultBattleRank[i]].y + coinAddYOfs[GWPlayerCfg[resultBattleOrder[i]].character]; } else { - pos_3d.y = lbl_1_data_7F0[lbl_1_bss_19E8[i]].y + lbl_1_data_880[GWPlayerCfg[lbl_1_bss_19F0[i]].character]; + pos3D.y = playerPosTbl[resultBattleRank[i]].y + coinBlankYOfs[GWPlayerCfg[resultBattleOrder[i]].character]; } - pos_3d.z = 0; - Hu3D3Dto2D(&pos_3d, 1, &pos_2d); - HuSprGrpPosSet(lbl_1_bss_19E0[i], pos_2d.x, pos_2d.y); + pos3D.z = 0; + Hu3D3Dto2D(&pos3D, 1, &pos2D); + HuSprGrpPosSet(coinNumGrpId[i], pos2D.x, pos2D.y); } - delay = (lbl_1_bss_174) ? 3 : 10; - for (time = 0; time <= delay; time++) { - float scale = sind((90.0 / delay) * time); + speed = (resultFastF) ? 3 : 10; + for (time = 0; time <= speed; time++) { + float scale = sind((90.0 / speed) * time); for (i = 0; i < 4; i++) { - HuSprGrpScaleSet(lbl_1_bss_19E0[i], scale, scale); + HuSprGrpScaleSet(coinNumGrpId[i], scale, scale); } HuPrcVSleep(); } for (i = 0; i < 4; i++) { - HuSprGrpScaleSet(lbl_1_bss_19E0[i], 1.0f, 1.0f); + HuSprGrpScaleSet(coinNumGrpId[i], 1.0f, 1.0f); } } -void fn_1_8338(s16 group, s16 value) +static void ResultBattleCoinAddNumSet(s16 grpId, s16 value) { - s16 digit; - s16 digit_value; - - digit = 2; - digit_value = value / 100; - if (digit_value != 0) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; + s16 no; + s16 bank; + no = 2; + bank = value / 100; + if (bank != 0) { + HuSprBankSet(grpId, no, bank); + HuSprAttrReset(grpId, no, 4); + no++; } - value -= digit_value * 100; - digit_value = value / 10; - if (digit_value != 0 || digit == 3) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; + value -= bank * 100; + bank = value / 10; + if (bank != 0 || no == 3) { + HuSprBankSet(grpId, no, bank); + HuSprAttrReset(grpId, no, 4); + no++; } - value -= digit_value * 10; - HuSprBankSet(group, digit, value); - HuSprAttrReset(group, digit, 4); - digit++; - for (digit_value = digit; digit_value < 5; digit_value++) { - HuSprAttrSet(group, digit_value, 4); + value -= bank * 10; + HuSprBankSet(grpId, no, value); + HuSprAttrReset(grpId, no, 4); + no++; + for (bank = no; bank < 5; bank++) { + HuSprAttrSet(grpId, bank, 4); } } -void fn_1_8484(void) +static void ResultBattleOrderSet(void) { s16 i; s16 j; for (i = 0; i < 4; i++) { - lbl_1_bss_19E8[i] = GWPlayerCoinWinGet(i); - lbl_1_bss_19F0[i] = i; + resultBattleRank[i] = GWPlayerCoinWinGet(i); + resultBattleOrder[i] = i; } for (j = 1; j < 4; j++) { for (i = 0; i < 4 - j; i++) { - if (lbl_1_bss_19E8[i] > lbl_1_bss_19E8[i + 1]) { + if (resultBattleRank[i] > resultBattleRank[i + 1]) { s16 temp; - temp = lbl_1_bss_19E8[i]; - lbl_1_bss_19E8[i] = lbl_1_bss_19E8[i + 1]; - lbl_1_bss_19E8[i + 1] = temp; - temp = lbl_1_bss_19F0[i]; - lbl_1_bss_19F0[i] = lbl_1_bss_19F0[i + 1]; - lbl_1_bss_19F0[i + 1] = temp; + temp = resultBattleRank[i]; + resultBattleRank[i] = resultBattleRank[i + 1]; + resultBattleRank[i + 1] = temp; + temp = resultBattleOrder[i]; + resultBattleOrder[i] = resultBattleOrder[i + 1]; + resultBattleOrder[i + 1] = temp; } } } } -void fn_1_8998(void); +static void CoinEffectMain(void); -void fn_1_8658(void) +static void CoinEffectInit(void) { s16 i; Process *process = HuPrcCurrentGet(); - for (i = 0; i < 180; i++) { - lbl_1_bss_194[i].unk0 = -1; + for (i = 0; i < COIN_EFFECT_MAX; i++) { + coinEffectData[i].playerNo = -1; } - HuPrcChildCreate(fn_1_8998, 100, 8192, 0, process); + HuPrcChildCreate(CoinEffectMain, 100, 8192, 0, process); } -void fn_1_86DC(s16 player) +static void CoinEffectAdd(s16 playerNo) { s16 i; - for (i = 0; i < 180; i++) { - if (lbl_1_bss_194[i].unk0 == -1) { + for (i = 0; i < COIN_EFFECT_MAX; i++) { + if (coinEffectData[i].playerNo == -1) { break; } } - if (i == 180) { + if (i == COIN_EFFECT_MAX) { return; } - lbl_1_bss_194[i].unk0 = player; - lbl_1_bss_194[i].unk4.x = lbl_1_data_7F0[player].x; - lbl_1_bss_194[i].unk4.y = 610.0f; - lbl_1_bss_194[i].unk4.z = 0.0f; - lbl_1_bss_194[i].unk2 = lbl_1_bss_19E8[player]; - lbl_1_bss_194[i].unk10.x = frandmod(20) - 10.0f; - lbl_1_bss_194[i].unk10.y = frandmod(20) - 10.0f; - lbl_1_bss_194[i].unk10.z = 0; - lbl_1_bss_194[i].unk1C = 10.0f; - Hu3DModelAttrReset(lbl_1_bss_1828[i], HU3D_ATTR_DISPOFF); - Hu3DModelPosSet(lbl_1_bss_1828[i], 0, 100, 0); - Hu3DModelRotSet(lbl_1_bss_1828[i], 0, 0, 0); + coinEffectData[i].playerNo = playerNo; + coinEffectData[i].pos.x = playerPosTbl[playerNo].x; + coinEffectData[i].pos.y = 610.0f; + coinEffectData[i].pos.z = 0.0f; + coinEffectData[i].rank = resultBattleRank[playerNo]; + coinEffectData[i].rotVel.x = frandmod(20) - 10.0f; + coinEffectData[i].rotVel.y = frandmod(20) - 10.0f; + coinEffectData[i].rotVel.z = 0; + coinEffectData[i].velY = 10.0f; + Hu3DModelAttrReset(coinEffectMdlId[i], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(coinEffectMdlId[i], 0, 100, 0); + Hu3DModelRotSet(coinEffectMdlId[i], 0, 0, 0); } -void fn_1_8998(void) +static void CoinEffectMain(void) { s16 i; - ModelData *model_ptr; + ModelData *modelP; s16 player; while (1) { - for (i = 0; i < 180; i++) { - if (lbl_1_bss_194[i].unk0 == -1) { + for (i = 0; i < COIN_EFFECT_MAX; i++) { + if (coinEffectData[i].playerNo == -1) { continue; } - player = lbl_1_bss_194[i].unk0; - model_ptr = &Hu3DData[lbl_1_bss_1828[i]]; - model_ptr->pos = lbl_1_bss_194[i].unk4; - model_ptr->rot.x += lbl_1_bss_194[i].unk10.x; - model_ptr->rot.y += lbl_1_bss_194[i].unk10.y; - lbl_1_bss_194[i].unk4.y -= lbl_1_bss_194[i].unk1C; - lbl_1_bss_194[i].unk1C += 0.2f; - if (lbl_1_bss_194[i].unk4.y < ((3 - lbl_1_bss_194[i].unk2) * 100) + lbl_1_data_840[GWPlayerCfg[lbl_1_bss_19F0[player]].character]) { + player = coinEffectData[i].playerNo; + modelP = &Hu3DData[coinEffectMdlId[i]]; + modelP->pos = coinEffectData[i].pos; + modelP->rot.x += coinEffectData[i].rotVel.x; + modelP->rot.y += coinEffectData[i].rotVel.y; + coinEffectData[i].pos.y -= coinEffectData[i].velY; + coinEffectData[i].velY += 0.2f; + if (coinEffectData[i].pos.y < ((3 - coinEffectData[i].rank) * 100) + coinEffectYOfs[GWPlayerCfg[resultBattleOrder[player]].character]) { Vec pos; - pos.x = lbl_1_data_7F0[player].x; - pos.y = ((3 - lbl_1_bss_194[i].unk2) * 100) + lbl_1_data_840[GWPlayerCfg[lbl_1_bss_19F0[player]].character]; + pos.x = playerPosTbl[player].x; + pos.y = ((3 - coinEffectData[i].rank) * 100) + coinEffectYOfs[GWPlayerCfg[resultBattleOrder[player]].character]; pos.z = 0.0f; CharModelCoinEffectCreate(1, &pos); - lbl_1_bss_194[i].unk0 = -1; + coinEffectData[i].playerNo = -1; HuAudFXPlay(7); - Hu3DModelAttrSet(lbl_1_bss_1828[i], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(coinEffectMdlId[i], HU3D_ATTR_DISPOFF); } } HuPrcVSleep(); } } -void fn_1_8CB8(struct model_data *model, Mtx matrix) +static void ResultShadowDraw(struct model_data *model, Mtx matrix) { s32 sp8 = 0; GXTexObj tex; Mtx final; - Mtx inv_camera; + Mtx invCamera; Mtx shadow; GXClearVtxDesc(); GXSetVtxDesc(GX_VA_POS, GX_DIRECT); @@ -647,8 +648,8 @@ void fn_1_8CB8(struct model_data *model, Mtx matrix) GXInitTexObj(&tex, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, GX_TF_I8, GX_CLAMP, GX_CLAMP, GX_FALSE); GXInitTexObjLOD(&tex, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); GXLoadTexObj(&tex, 0); - MTXInverse(Hu3DCameraMtx, inv_camera); - MTXConcat(inv_camera, matrix, final); + MTXInverse(Hu3DCameraMtx, invCamera); + MTXConcat(invCamera, matrix, final); MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, shadow); MTXConcat(shadow, final, final); GXLoadTexMtxImm(final, GX_TEXMTX9, GX_MTX3x4); diff --git a/src/REL/resultDll/datalist.c b/src/REL/resultDll/datalist.c index 6b5705a2..1a37f8a0 100644 --- a/src/REL/resultDll/datalist.c +++ b/src/REL/resultDll/datalist.c @@ -1,13 +1,13 @@ #include "REL/resultdll.h" -s16 lbl_1_bss_1A9C[32]; -s16 lbl_1_bss_1A5C[32]; -s16 lbl_1_bss_1A1A[33]; +s16 stageMdlId[32]; +s16 stageMotId[32]; +s16 stageSprId[33]; s16 lbl_1_bss_1A18; -void fn_1_8FF8(DataListModel *model_list) +void StageModelCreate(StageModel *model_list) { - DataListModel *list; + StageModel *list; s16 i; s16 model; s16 clear_i; @@ -15,24 +15,24 @@ void fn_1_8FF8(DataListModel *model_list) void *data; list = model_list; for(clear_i=0; clear_i<32; clear_i++) { - lbl_1_bss_1A9C[clear_i] = lbl_1_bss_1A5C[clear_i] = -1; + stageMdlId[clear_i] = stageMotId[clear_i] = -1; } for(i=0; list->datanum != DATA_NUM_LISTEND; list++, i++) { if(list->type == 0) { data = HuDataSelHeapReadNum(list->datanum, MEMORY_DEFAULT_NUM, HEAP_DATA); model = Hu3DModelCreate(data); - lbl_1_bss_1A9C[i] = model; + stageMdlId[i] = model; Hu3DModelAttrSet(model, list->attr); Hu3DModelPosSetV(model, &list->pos); Hu3DModelRotSetV(model, &list->rot); Hu3DModelScaleSetV(model, &list->scale); model_ptr = &Hu3DData[model]; if(model_ptr->unk_08 != -1) { - lbl_1_bss_1A5C[i] = model_ptr->unk_08; + stageMotId[i] = model_ptr->unk_08; } } else if(list->type == 1) { data = HuDataSelHeapReadNum(list->datanum, MEMORY_DEFAULT_NUM, HEAP_DATA); - lbl_1_bss_1A5C[i] = Hu3DJointMotion(lbl_1_bss_1A9C[list->mot_link], data); + stageMotId[i] = Hu3DJointMotion(stageMdlId[list->mot_link], data); } (void)i; @@ -40,33 +40,33 @@ void fn_1_8FF8(DataListModel *model_list) list = model_list; for(i=0; list->datanum != DATA_NUM_LISTEND; list++, i++) { if(list->type == 2) { - model = Hu3DModelLink(lbl_1_bss_1A9C[list->link]); - lbl_1_bss_1A9C[i] = model; + model = Hu3DModelLink(stageMdlId[list->link]); + stageMdlId[i] = model; Hu3DModelAttrSet(model, list->attr); Hu3DModelPosSetV(model, &list->pos); Hu3DModelRotSetV(model, &list->rot); Hu3DModelScaleSetV(model, &list->scale); } if(list->mot_link != -1) { - Hu3DMotionSet(lbl_1_bss_1A9C[i], lbl_1_bss_1A5C[list->mot_link]); + Hu3DMotionSet(stageMdlId[i], stageMotId[list->mot_link]); } (void)i; } } -void fn_1_927C(DataListSprite *sprite_list) +void StageSpriteCreate(StageSprite *sprite_list) { - DataListSprite *list; + StageSprite *list; s16 sprite; s16 clear_i; s16 i; list = sprite_list; for(clear_i=0; clear_i<32; clear_i++) { - lbl_1_bss_1A1A[clear_i] = -1; + stageSprId[clear_i] = -1; } for(i=0; list->datanum; i++, list++) { sprite = espEntry(list->datanum, 100, 0); - lbl_1_bss_1A1A[i] = sprite; + stageSprId[i] = sprite; espPosSet(sprite, list->x, list->y); espColorSet(sprite, list->color.r, list->color.g, list->color.b); espTPLvlSet(sprite, list->color.a/255.0f); @@ -75,12 +75,12 @@ void fn_1_927C(DataListSprite *sprite_list) } } -void fn_1_93B4(void) +void StageSpriteKill(void) { s16 i; for(i=0; i<32; i++) { - if(lbl_1_bss_1A1A[i] != -1) { - espKill(lbl_1_bss_1A1A[i]); + if(stageSprId[i] != -1) { + espKill(stageSprId[i]); } } } \ No newline at end of file diff --git a/src/REL/resultDll/main.c b/src/REL/resultDll/main.c index bda3b255..57433d33 100644 --- a/src/REL/resultDll/main.c +++ b/src/REL/resultDll/main.c @@ -18,7 +18,7 @@ #include "REL/resultdll.h" -DataListModel lbl_1_data_0[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x00), 1, 0, -1, -1, { 148, 132, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, +static StageModel resultModel[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x00), 1, 0, -1, -1, { 148, 132, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x01), 1, 0, -1, -1, { 148, 217, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x02), 1, 0, -1, -1, { 148, 302, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x03), 1, 0, -1, -1, { 148, 387, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, @@ -32,7 +32,7 @@ DataListModel lbl_1_data_0[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x00), 1, 0, -1 { DATA_MAKE_NUM(DATADIR_RESULT, 0x06), 0, 2, 8, -1, { 410, 387, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } } }; -DataListSprite lbl_1_data_2A4[] = { +static StageSprite resultSprite[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x43), 0, 10, 288, 240, { 255, 255, 255, 255 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x1D), 0, 10, 288, 60, { 255, 255, 255, 255 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x1A), 0, 10, 270, 132, { 255, 255, 255, 255 } }, @@ -46,60 +46,60 @@ DataListSprite lbl_1_data_2A4[] = { { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, }; -s16 lbl_1_data_380 = -1; +static s16 rankNewGrpId = -1; omObjData *lbl_1_bss_188; -omObjData *lbl_1_bss_184; -Process *lbl_1_bss_180; -s16 lbl_1_bss_17C; -s32 lbl_1_bss_178; -s32 lbl_1_bss_174; -s16 lbl_1_bss_172; -s16 lbl_1_bss_170; -s16 lbl_1_bss_168[4]; -s16 lbl_1_bss_158[8]; -AnimData *lbl_1_bss_144[5]; -AnimData *lbl_1_bss_E4[8][3]; -AnimData *lbl_1_bss_E0; -s16 lbl_1_bss_CE[9]; -s16 lbl_1_bss_9E[8][3]; -s16 lbl_1_bss_9C; -s16 lbl_1_bss_5C[8][4]; -s16 lbl_1_bss_54[4]; -s16 lbl_1_bss_52; -s16 lbl_1_bss_4A[4]; -s16 lbl_1_bss_42[4]; -s16 lbl_1_bss_3A[4]; -s16 lbl_1_bss_12[4][5]; -s16 lbl_1_bss_A[4]; -s16 lbl_1_bss_8; -s32 lbl_1_bss_4; -s32 lbl_1_bss_0; +static omObjData *outViewObj; +Process *objman; +s16 resultMgNo; +s32 resultReadEndF; +s32 resultFastF; +s16 resultBonusPlayer; +static s16 teamResultGrpId; +static s16 charShadowMdlId[4]; +static s16 statShadowMdlId[8]; +static AnimData *resultRankAnim[5]; +static AnimData *resultCharAnim[8][3]; +static AnimData *resultCrownAnim; +static s16 resultNumGrpId[8]; +static s16 resultNumSprId[8][3]; +static s16 resultCrownGrpId; +static s16 resultCubeMdlId[8][4]; +static s16 resultPlayerCubeMdlId[4]; +static s16 resultRankGrpId; +static s16 resultOrder[4]; +static s16 resultRank[4]; +static s16 resultCoinAddGrpId[4]; +static s16 resultCoinAddSprId[4][5]; +static s16 resultCharCubeMdlId[4]; +static s16 resultTeamOrder; +static s32 resultSkipF; +static s32 resultReorderF; -void fn_1_4D8(void); -void fn_1_888(void); +static void ResultMain(void); +static void ResultIdle(void); -void fn_1_B78(void); -void fn_1_1F4C(void); -void fn_1_2ADC(void); -void fn_1_461C(void); -void fn_1_47FC(void); +static void ResultCreate(void); +static void ResultStatAdd(void); +static void ResultOrderApply(void); +static void SaveExec(void); +static void ResultTeamExec(void); void ObjectSetup(void) { s32 i; - s32 light; + s32 lightId; OSReport("******* RESULT ObjectSetup *********\n"); - lbl_1_bss_180 = omInitObjMan(50, 8192); - lbl_1_bss_17C = GWSystem.mg_next; + objman = omInitObjMan(50, 8192); + resultMgNo = GWSystem.mg_next; - if (mgInfoTbl[lbl_1_bss_17C].ovl == OVL_M430) { + if (mgInfoTbl[resultMgNo].ovl == OVL_M430) { for (i = 0; i < 4; i++) { GWPlayerCfg[i].group = GWPlayerCfg[i].group / 2; } } - HuDataDirClose(mgInfoTbl[lbl_1_bss_17C].data_dir); - if (mgInfoTbl[lbl_1_bss_17C].type == 3 || mgInfoTbl[lbl_1_bss_17C].type == 5 || mgInfoTbl[lbl_1_bss_17C].type == 6 + HuDataDirClose(mgInfoTbl[resultMgNo].data_dir); + if (mgInfoTbl[resultMgNo].type == 3 || mgInfoTbl[resultMgNo].type == 5 || mgInfoTbl[resultMgNo].type == 6 || !_CheckFlag(FLAG_ID_MAKE(1, 0))) { if (_CheckFlag(0x10000)) { HuAR_DVDtoARAM(DATADIR_BOARD); @@ -119,27 +119,27 @@ void ObjectSetup(void) Hu3DCameraCreate(1); Hu3DCameraPerspectiveSet(1, 20.0f, 20.0f, 15000.0f, 1.2f); Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); - light = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); - Hu3DGLightInfinitytSet(light); - lbl_1_bss_174 = 0; + lightId = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); + Hu3DGLightInfinitytSet(lightId); + resultFastF = 0; if (mgInfoTbl[GWSystem.mg_next].type != 4) { - HuPrcChildCreate(fn_1_4D8, 100, 12288, 0, lbl_1_bss_180); + HuPrcChildCreate(ResultMain, 100, 12288, 0, objman); } else { - HuPrcChildCreate(fn_1_6490, 100, 12288, 0, lbl_1_bss_180); + HuPrcChildCreate(ResultBattleMain, 100, 12288, 0, objman); } - lbl_1_bss_184 = omAddObjEx(lbl_1_bss_180, 32730, 0, 0, -1, omOutView); + outViewObj = omAddObjEx(objman, 32730, 0, 0, -1, omOutView); HuWinInit(1); - lbl_1_bss_172 = frandmod(4); + resultBonusPlayer = frandmod(4); } -void fn_1_4D8(void) +static void ResultMain(void) { s16 player; s16 i; - s16 window; - s16 button; - Process *process_curr = HuPrcCurrentGet(); + s16 winId; + s16 btnDown; + Process *proc = HuPrcCurrentGet(); HuAudSeqPlay(57); for (i = player = 0; i < 4; i++) { if (GWPlayerCfg[i].iscom) { @@ -147,43 +147,43 @@ void fn_1_4D8(void) } } if (player == 4) { - lbl_1_bss_4 = 1; + resultSkipF = 1; } else { - lbl_1_bss_4 = 0; + resultSkipF = 0; } - fn_1_B78(); - HuPrcChildCreate(fn_1_888, 100, 8192, 0, lbl_1_bss_180); + ResultCreate(); + HuPrcChildCreate(ResultIdle, 100, 8192, 0, objman); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); while (WipeStatGet()) { HuPrcVSleep(); } HuDataDirClose(DATADIR_RESULT); - lbl_1_bss_178 = 0; - HuPrcChildCreate(fn_1_3FD8, 100, 12288, 0, lbl_1_bss_180); + resultReadEndF = 0; + HuPrcChildCreate(ResultBoardDataRead, 100, 12288, 0, objman); HuPrcSleep(10); - if (!lbl_1_bss_174) { + if (!resultFastF) { HuPrcSleep(20); } - fn_1_1F4C(); - fn_1_40DC(); - fn_1_2ADC(); - window = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); - HuWinMesSpeedSet(window, 0); - HuWinBGTPLvlSet(window, 0); - HuWinPriSet(window, 5); - HuWinAttrSet(window, 0x800); - HuWinMesSet(window, MAKE_MESSID(0x24, 0x07)); + ResultStatAdd(); + ResultCoinAdd(); + ResultOrderApply(); + winId = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); + HuWinMesSpeedSet(winId, 0); + HuWinBGTPLvlSet(winId, 0); + HuWinPriSet(winId, 5); + HuWinAttrSet(winId, 0x800); + HuWinMesSet(winId, MAKE_MESSID(0x24, 0x07)); HuPrcSleep(4); i = 0; while (1) { - if (!lbl_1_bss_4 || i <= 120) { - for (player = button = 0; player < 4; player++) { + if (!resultSkipF || i <= 120) { + for (player = btnDown = 0; player < 4; player++) { if (!GWPlayerCfg[player].iscom) { - button |= HuPadBtnDown[GWPlayerCfg[player].pad_idx]; + btnDown |= HuPadBtnDown[GWPlayerCfg[player].pad_idx]; } } - if (button & PAD_BUTTON_A) { + if (btnDown & PAD_BUTTON_A) { HuAudFXPlay(28); break; } @@ -194,11 +194,11 @@ void fn_1_4D8(void) break; } } - HuWinKill(window); + HuWinKill(winId); if (GWTeamGet()) { - fn_1_47FC(); + ResultTeamExec(); } - while (!lbl_1_bss_178) { + while (!resultReadEndF) { HuPrcVSleep(); } HuAudSeqAllFadeOut(1000); @@ -208,7 +208,7 @@ void fn_1_4D8(void) while (WipeStatGet()) { HuPrcVSleep(); } - fn_1_461C(); + SaveExec(); } else { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); @@ -224,51 +224,51 @@ void fn_1_4D8(void) } } -void fn_1_888(void) +static void ResultIdle(void) { - f32 var_f29; - f32 var_f31; - f32 var_f30; + float rotRightSpeed; + float rotLeft; + float rotRight; - var_f31 = 0.0f; - var_f30 = 0.0f; - var_f29 = 0.0f; - lbl_1_bss_0 = 0; + rotLeft = 0.0f; + rotRight = 0.0f; + rotRightSpeed = 0.0f; + resultReorderF = 0; while (1) { - if (((HuPadBtn[0] | HuPadBtn[1] | HuPadBtn[2] | HuPadBtn[3]) & 0x100) != 0 || lbl_1_bss_4 != 0) { - lbl_1_bss_174 = 1; + if (((HuPadBtn[0] | HuPadBtn[1] | HuPadBtn[2] | HuPadBtn[3]) & PAD_BUTTON_A) != 0 || resultSkipF != 0) { + resultFastF = 1; } else { - lbl_1_bss_174 = 0; + resultFastF = 0; } - Hu3DModelRotSet(lbl_1_bss_1A9C[4], 0.0f, var_f31, 0.0f); - Hu3DModelRotSet(lbl_1_bss_1A9C[5], 0.0f, -var_f31, 0.0f); - Hu3DModelRotSet(lbl_1_bss_1A9C[6], 0.0f, var_f31, 0.0f); - Hu3DModelRotSet(lbl_1_bss_1A9C[7], 0.0f, -var_f31, 0.0f); - var_f31 += 0.2; - if (var_f31 >= 360.0f) { - var_f31 -= 360.0f; + Hu3DModelRotSet(stageMdlId[4], 0.0f, rotLeft, 0.0f); + Hu3DModelRotSet(stageMdlId[5], 0.0f, -rotLeft, 0.0f); + Hu3DModelRotSet(stageMdlId[6], 0.0f, rotLeft, 0.0f); + Hu3DModelRotSet(stageMdlId[7], 0.0f, -rotLeft, 0.0f); + rotLeft += 0.2; + if (rotLeft >= 360.0f) { + rotLeft -= 360.0f; } - if (lbl_1_bss_0 != 0) { - Hu3DModelRotSet(lbl_1_bss_1A9C[8], 0.0f, var_f30, 0.0f); - Hu3DModelRotSet(lbl_1_bss_1A9C[9], 0.0f, -var_f30, 0.0f); - Hu3DModelRotSet(lbl_1_bss_1A9C[10], 0.0f, var_f30, 0.0f); - Hu3DModelRotSet(lbl_1_bss_1A9C[11], 0.0f, -var_f30, 0.0f); - var_f29 += 0.001; - if (var_f29 > 0.1) { - var_f29 = 0.1f; + if (resultReorderF != 0) { + Hu3DModelRotSet(stageMdlId[8], 0.0f, rotRight, 0.0f); + Hu3DModelRotSet(stageMdlId[9], 0.0f, -rotRight, 0.0f); + Hu3DModelRotSet(stageMdlId[10], 0.0f, rotRight, 0.0f); + Hu3DModelRotSet(stageMdlId[11], 0.0f, -rotRight, 0.0f); + rotRightSpeed += 0.001; + if (rotRightSpeed > 0.1) { + rotRightSpeed = 0.1f; } - var_f30 += var_f29; - if (var_f30 >= 360.0f) { - var_f30 -= 360.0f; + rotRight += rotRightSpeed; + if (rotRight >= 360.0f) { + rotRight -= 360.0f; } } HuPrcVSleep(); } } -s32 lbl_1_data_3A8[] = { +static s32 resultBackFile[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x10), DATA_MAKE_NUM(DATADIR_RESULT, 0x11), DATA_MAKE_NUM(DATADIR_RESULT, 0x12), @@ -277,7 +277,7 @@ s32 lbl_1_data_3A8[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x15), }; -s32 lbl_1_data_3C0[] = { +static s32 resultLetterFile[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x1F), DATA_MAKE_NUM(DATADIR_RESULT, 0x1E), DATA_MAKE_NUM(DATADIR_RESULT, 0x1D), @@ -286,7 +286,7 @@ s32 lbl_1_data_3C0[] = { DATA_MAKE_NUM(DATADIR_RESULT, 0x1F), }; -s16 lbl_1_data_3D8[] = { +static s16 resultStatPosTbl[] = { 320, 132, 500, @@ -305,123 +305,123 @@ s16 lbl_1_data_3D8[] = { 387, }; -s16 lbl_1_data_3F8[] = { 74, 132, 74, 217, 74, 302, 74, 387 }; +static s16 resultRankPosTbl[] = { 74, 132, 74, 217, 74, 302, 74, 387 }; -Vec lbl_1_data_408[4] = { { 148, 132, 500 }, { 148, 217, 500 }, { 148, 302, 500 }, { 148, 387, 500 } }; +static Vec resultCharPosTbl[4] = { { 148, 132, 500 }, { 148, 217, 500 }, { 148, 302, 500 }, { 148, 387, 500 } }; -s16 lbl_1_data_438[] = { 164, 148, 164, 233, 164, 318, 164, 403 }; +static s16 resultCoinAddPosTbl[] = { 164, 148, 164, 233, 164, 318, 164, 403 }; -void fn_1_3B50(s16 group, s16 value); -void fn_1_3CAC(s16 group, s16 value); +static void ResultSprNumSet(s16 grpId, s16 value); +static void ResultCoinAddNumSet(s16 grpId, s16 value); -void fn_1_3E08(void); +static void ResultOrderSet(void); -void fn_1_B78(void) +static void ResultCreate(void) { Vec pos; - s16 sp8[5]; + s16 coinNum[5]; s16 i; s16 j; - s16 character; + s16 charNo; AnimData *anim; - s16 sprite; - s16 group; - s16 model; + s16 sprId; + s16 grpId; + s16 mdlId; AnimData *anim2; AnimData *anim3; AnimData *anim4; - fn_1_8FF8(lbl_1_data_0); - lbl_1_data_2A4[0].datanum = lbl_1_data_3A8[mgInfoTbl[lbl_1_bss_17C].type]; - lbl_1_data_2A4[1].datanum = lbl_1_data_3C0[mgInfoTbl[lbl_1_bss_17C].type]; - fn_1_927C(lbl_1_data_2A4); - espDrawNoSet(lbl_1_bss_1A1A[0], 127); + StageModelCreate(resultModel); + resultSprite[0].datanum = resultBackFile[mgInfoTbl[resultMgNo].type]; + resultSprite[1].datanum = resultLetterFile[mgInfoTbl[resultMgNo].type]; + StageSpriteCreate(resultSprite); + espDrawNoSet(stageSprId[0], 127); anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x1B)); for (i = 0; i < 8; i++) { - lbl_1_bss_CE[i] = HuSprGrpCreate(3); - lbl_1_bss_9E[i][0] = HuSprCreate(anim, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_CE[i], 0, lbl_1_bss_9E[i][0]); - HuSprPosSet(lbl_1_bss_CE[i], 0, -28.0f, 0.0f); - lbl_1_bss_9E[i][1] = HuSprCreate(anim, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_CE[i], 1, lbl_1_bss_9E[i][1]); - HuSprPosSet(lbl_1_bss_CE[i], 1, 0.0f, 0.0f); - lbl_1_bss_9E[i][2] = HuSprCreate(anim, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_CE[i], 2, lbl_1_bss_9E[i][2]); - HuSprPosSet(lbl_1_bss_CE[i], 2, 28.0f, 0.0f); - HuSprGrpPosSet(lbl_1_bss_CE[i], lbl_1_data_3D8[(i * 2)], lbl_1_data_3D8[(i * 2) + 1]); - fn_1_3B50(lbl_1_bss_CE[i], 999); + resultNumGrpId[i] = HuSprGrpCreate(3); + resultNumSprId[i][0] = HuSprCreate(anim, 0, 0); + HuSprGrpMemberSet(resultNumGrpId[i], 0, resultNumSprId[i][0]); + HuSprPosSet(resultNumGrpId[i], 0, -28.0f, 0.0f); + resultNumSprId[i][1] = HuSprCreate(anim, 0, 0); + HuSprGrpMemberSet(resultNumGrpId[i], 1, resultNumSprId[i][1]); + HuSprPosSet(resultNumGrpId[i], 1, 0.0f, 0.0f); + resultNumSprId[i][2] = HuSprCreate(anim, 0, 0); + HuSprGrpMemberSet(resultNumGrpId[i], 2, resultNumSprId[i][2]); + HuSprPosSet(resultNumGrpId[i], 2, 28.0f, 0.0f); + HuSprGrpPosSet(resultNumGrpId[i], resultStatPosTbl[(i * 2)], resultStatPosTbl[(i * 2) + 1]); + ResultSprNumSet(resultNumGrpId[i], 999); } - fn_1_3E08(); - fn_1_423C(sp8); + ResultOrderSet(); + ResultCoinNumGet(coinNum); anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3A)); anim3 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3B)); anim2 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3C)); anim4 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3E)); for (i = 0; i < 4; i++) { - lbl_1_bss_3A[i] = HuSprGrpCreate(5); - if (sp8[lbl_1_bss_4A[i]] < 100) { - lbl_1_bss_12[i][0] = HuSprCreate(anim, 10, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 0, lbl_1_bss_12[i][0]); - HuSprPosSet(lbl_1_bss_3A[i], 0, 30.0f, -25.0f); + resultCoinAddGrpId[i] = HuSprGrpCreate(5); + if (coinNum[resultOrder[i]] < 100) { + resultCoinAddSprId[i][0] = HuSprCreate(anim, 10, 0); + HuSprGrpMemberSet(resultCoinAddGrpId[i], 0, resultCoinAddSprId[i][0]); + HuSprPosSet(resultCoinAddGrpId[i], 0, 30.0f, -25.0f); } else { - lbl_1_bss_12[i][0] = HuSprCreate(anim4, 10, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 0, lbl_1_bss_12[i][0]); - HuSprPosSet(lbl_1_bss_3A[i], 0, 40.0f, -21.0f); + resultCoinAddSprId[i][0] = HuSprCreate(anim4, 10, 0); + HuSprGrpMemberSet(resultCoinAddGrpId[i], 0, resultCoinAddSprId[i][0]); + HuSprPosSet(resultCoinAddGrpId[i], 0, 40.0f, -21.0f); } - lbl_1_bss_12[i][1] = HuSprCreate(anim3, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 1, lbl_1_bss_12[i][1]); - HuSprPosSet(lbl_1_bss_3A[i], 1, 12.0f, -25.0f); - lbl_1_bss_12[i][2] = HuSprCreate(anim2, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 2, lbl_1_bss_12[i][2]); - HuSprPosSet(lbl_1_bss_3A[i], 2, 28.0f, -25.0f); - lbl_1_bss_12[i][3] = HuSprCreate(anim2, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 3, lbl_1_bss_12[i][3]); - HuSprPosSet(lbl_1_bss_3A[i], 3, 44.0f, -25.0f); - lbl_1_bss_12[i][4] = HuSprCreate(anim2, 0, 0); - HuSprGrpMemberSet(lbl_1_bss_3A[i], 4, lbl_1_bss_12[i][4]); - HuSprPosSet(lbl_1_bss_3A[i], 4, 60.0f, -25.0f); - HuSprGrpPosSet(lbl_1_bss_3A[i], lbl_1_data_438[(i * 2)], lbl_1_data_438[(i * 2) + 1]); - fn_1_3CAC(lbl_1_bss_3A[i], 9); - HuSprGrpScaleSet(lbl_1_bss_3A[i], 0.0f, 0.0f); + resultCoinAddSprId[i][1] = HuSprCreate(anim3, 0, 0); + HuSprGrpMemberSet(resultCoinAddGrpId[i], 1, resultCoinAddSprId[i][1]); + HuSprPosSet(resultCoinAddGrpId[i], 1, 12.0f, -25.0f); + resultCoinAddSprId[i][2] = HuSprCreate(anim2, 0, 0); + HuSprGrpMemberSet(resultCoinAddGrpId[i], 2, resultCoinAddSprId[i][2]); + HuSprPosSet(resultCoinAddGrpId[i], 2, 28.0f, -25.0f); + resultCoinAddSprId[i][3] = HuSprCreate(anim2, 0, 0); + HuSprGrpMemberSet(resultCoinAddGrpId[i], 3, resultCoinAddSprId[i][3]); + HuSprPosSet(resultCoinAddGrpId[i], 3, 44.0f, -25.0f); + resultCoinAddSprId[i][4] = HuSprCreate(anim2, 0, 0); + HuSprGrpMemberSet(resultCoinAddGrpId[i], 4, resultCoinAddSprId[i][4]); + HuSprPosSet(resultCoinAddGrpId[i], 4, 60.0f, -25.0f); + HuSprGrpPosSet(resultCoinAddGrpId[i], resultCoinAddPosTbl[(i * 2)], resultCoinAddPosTbl[(i * 2) + 1]); + ResultCoinAddNumSet(resultCoinAddGrpId[i], 9); + HuSprGrpScaleSet(resultCoinAddGrpId[i], 0.0f, 0.0f); } for (i = 0; i < 4; i++) { - character = GWPlayerCfg[i].character; - lbl_1_bss_E4[character][0] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x22) + (character * 3)); - lbl_1_bss_E4[character][1] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x23) + (character * 3)); - lbl_1_bss_E4[character][2] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x24) + (character * 3)); + charNo = GWPlayerCfg[i].character; + resultCharAnim[charNo][0] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x22) + (charNo * 3)); + resultCharAnim[charNo][1] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x23) + (charNo * 3)); + resultCharAnim[charNo][2] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x24) + (charNo * 3)); for (j = 0; j < 4; j++) { - lbl_1_bss_5C[character][j] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x00) + j); - Hu3DModelScaleSet(lbl_1_bss_5C[character][j], 1.1f, 1.1f, 1.1f); - Hu3DAnimCreate(lbl_1_bss_E4[character][0], lbl_1_bss_5C[character][j], "ys22"); - Hu3DModelAttrSet(lbl_1_bss_5C[character][j], HU3D_ATTR_DISPOFF); + resultCubeMdlId[charNo][j] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x00) + j); + Hu3DModelScaleSet(resultCubeMdlId[charNo][j], 1.1f, 1.1f, 1.1f); + Hu3DAnimCreate(resultCharAnim[charNo][0], resultCubeMdlId[charNo][j], "ys22"); + Hu3DModelAttrSet(resultCubeMdlId[charNo][j], HU3D_ATTR_DISPOFF); } } for (i = 0; i < 4; i++) { - lbl_1_bss_144[i] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x16) + i); + resultRankAnim[i] = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x16) + i); } - lbl_1_bss_52 = HuSprGrpCreate(4); + resultRankGrpId = HuSprGrpCreate(4); for (i = 0; i < 4; i++) { - sprite = HuSprCreate(lbl_1_bss_144[lbl_1_bss_42[i]], i, 0); - HuSprGrpMemberSet(lbl_1_bss_52, i, sprite); - HuSprPosSet(lbl_1_bss_52, i, lbl_1_data_3F8[(i * 2)], lbl_1_data_3F8[(i * 2) + 1]); - fn_1_3B50(lbl_1_bss_CE[(i * 2)], GWStarsGet(lbl_1_bss_4A[i])); - fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); - character = GWPlayerCfg[lbl_1_bss_4A[i]].character; - Hu3D2Dto3D(&lbl_1_data_408[i], 1, &pos); - Hu3DModelPosSetV(lbl_1_bss_5C[character][lbl_1_bss_42[i]], &pos); - Hu3DModelAttrReset(lbl_1_bss_5C[character][lbl_1_bss_42[i]], HU3D_ATTR_DISPOFF); + sprId = HuSprCreate(resultRankAnim[resultRank[i]], i, 0); + HuSprGrpMemberSet(resultRankGrpId, i, sprId); + HuSprPosSet(resultRankGrpId, i, resultRankPosTbl[(i * 2)], resultRankPosTbl[(i * 2) + 1]); + ResultSprNumSet(resultNumGrpId[(i * 2)], GWStarsGet(resultOrder[i])); + ResultSprNumSet(resultNumGrpId[(i * 2) + 1], BoardPlayerCoinsGet(resultOrder[i])); + charNo = GWPlayerCfg[resultOrder[i]].character; + Hu3D2Dto3D(&resultCharPosTbl[i], 1, &pos); + Hu3DModelPosSetV(resultCubeMdlId[charNo][resultRank[i]], &pos); + Hu3DModelAttrReset(resultCubeMdlId[charNo][resultRank[i]], HU3D_ATTR_DISPOFF); } for (i = 4; i <= 11; i++) { - Hu3D2Dto3D(&lbl_1_data_0[i].pos, 1, &pos); - Hu3DModelPosSetV(lbl_1_bss_1A9C[i], &pos); + Hu3D2Dto3D(&resultModel[i].pos, 1, &pos); + Hu3DModelPosSetV(stageMdlId[i], &pos); Hu3D3Dto2D(&pos, 1, &pos); } - model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x04)); + mdlId = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x04)); for (i = 0; i < 4; i++) { - j = Hu3DModelLink(model); - lbl_1_bss_168[i] = j; - pos = lbl_1_data_408[i]; + j = Hu3DModelLink(mdlId); + charShadowMdlId[i] = j; + pos = resultCharPosTbl[i]; pos.x += 5.0f; pos.y += 3.0f; pos.z += 200.0f; @@ -429,12 +429,12 @@ void fn_1_B78(void) Hu3DModelPosSetV(j, &pos); Hu3DModelScaleSet(j, 1.5f, 1.5f, 1.5f); } - Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); - model = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x07)); + Hu3DModelAttrSet(mdlId, HU3D_ATTR_DISPOFF); + mdlId = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x07)); for (i = 0; i < 8; i++) { - j = Hu3DModelLink(model); - lbl_1_bss_158[i] = j; - pos = lbl_1_data_0[i + 4].pos; + j = Hu3DModelLink(mdlId); + statShadowMdlId[i] = j; + pos = resultModel[i + 4].pos; pos.x += 5.0f; pos.y += 3.0f; pos.z += 200.0f; @@ -442,461 +442,460 @@ void fn_1_B78(void) Hu3DModelPosSetV(j, &pos); Hu3DModelScaleSet(j, 1.5f, 1.5f, 1.5f); } - Hu3DModelAttrSet(model, HU3D_ATTR_DISPOFF); - lbl_1_bss_E0 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x1C)); - lbl_1_bss_9C = HuSprGrpCreate(4); + Hu3DModelAttrSet(mdlId, HU3D_ATTR_DISPOFF); + resultCrownAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x1C)); + resultCrownGrpId = HuSprGrpCreate(4); for (i = 0; i < 4; i++) { - sprite = HuSprCreate(lbl_1_bss_E0, i, 0); - HuSprGrpMemberSet(lbl_1_bss_9C, i, sprite); - HuSprScaleSet(lbl_1_bss_9C, i, 0.0f, 0.0f); - HuSprPosSet(lbl_1_bss_9C, i, lbl_1_data_408[i].x - 4.0f, lbl_1_data_408[i].y - 35.0f); - HuSprAttrSet(lbl_1_bss_9C, i, 4); + sprId = HuSprCreate(resultCrownAnim, i, 0); + HuSprGrpMemberSet(resultCrownGrpId, i, sprId); + HuSprScaleSet(resultCrownGrpId, i, 0.0f, 0.0f); + HuSprPosSet(resultCrownGrpId, i, resultCharPosTbl[i].x - 4.0f, resultCharPosTbl[i].y - 35.0f); + HuSprAttrSet(resultCrownGrpId, i, 4); } - group = HuSprGrpCreate(4); - lbl_1_bss_170 = group; + grpId = HuSprGrpCreate(4); + teamResultGrpId = grpId; anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x3F)); - sprite = HuSprCreate(anim, 100, 0); - HuSprGrpMemberSet(group, 0, sprite); - HuSprAttrSet(group, 0, 4); - HuSprDrawNoSet(group, 0, 127); + sprId = HuSprCreate(anim, 100, 0); + HuSprGrpMemberSet(grpId, 0, sprId); + HuSprAttrSet(grpId, 0, 4); + HuSprDrawNoSet(grpId, 0, 127); anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x40)); - sprite = HuSprCreate(anim, 90, 0); - HuSprGrpMemberSet(group, 1, sprite); - HuSprAttrSet(group, 1, 4); + sprId = HuSprCreate(anim, 90, 0); + HuSprGrpMemberSet(grpId, 1, sprId); + HuSprAttrSet(grpId, 1, 4); anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x41)); - sprite = HuSprCreate(anim, 80, 0); - HuSprGrpMemberSet(group, 2, sprite); - HuSprAttrSet(group, 2, 4); - HuSprDrawNoSet(group, 2, 127); + sprId = HuSprCreate(anim, 80, 0); + HuSprGrpMemberSet(grpId, 2, sprId); + HuSprAttrSet(grpId, 2, 4); + HuSprDrawNoSet(grpId, 2, 127); anim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x42)); - sprite = HuSprCreate(anim, 80, 0); - HuSprGrpMemberSet(group, 3, sprite); - HuSprAttrSet(group, 3, 4); - HuSprDrawNoSet(group, 3, 127); - (void)sprite; + sprId = HuSprCreate(anim, 80, 0); + HuSprGrpMemberSet(grpId, 3, sprId); + HuSprAttrSet(grpId, 3, 4); + HuSprDrawNoSet(grpId, 3, 127); + (void)sprId; } -void fn_1_1F4C(void) +static void ResultStatAdd(void) { - float temp_f31; - float temp_f30; + float scale; + float addTime; s16 i; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - s32 status; - s32 temp_r26; - s32 sp24[4]; - float sp14[4]; - s16 sp8[5]; + s16 time; + s16 maxTime; + s16 crownTime; + s32 seNo; + s32 sePlayF; + s32 doneF[4]; + float coinRot[4]; + s16 coinNum[5]; - fn_1_423C(sp8); + ResultCoinNumGet(coinNum); for (i = 0; i < 4; i++) { - fn_1_3CAC(lbl_1_bss_3A[i], sp8[lbl_1_bss_4A[i]]); - sp24[i] = 0; + ResultCoinAddNumSet(resultCoinAddGrpId[i], coinNum[resultOrder[i]]); + doneF[i] = 0; } - temp_r29 = (lbl_1_bss_174) ? 3 : 10; - for (temp_r30 = 0; temp_r30 <= temp_r29; temp_r30++) { - temp_f31 = sind((90.0 / temp_r29) * temp_r30); + maxTime = (resultFastF) ? 3 : 10; + for (time = 0; time <= maxTime; time++) { + scale = sind((90.0 / maxTime) * time); for (i = 0; i < 4; i++) { - HuSprGrpScaleSet(lbl_1_bss_3A[i], temp_f31, temp_f31); + HuSprGrpScaleSet(resultCoinAddGrpId[i], scale, scale); } HuPrcVSleep(); } for (i = 0; i < 4; i++) { - HuSprGrpScaleSet(lbl_1_bss_3A[i], 1.0f, 1.0f); + HuSprGrpScaleSet(resultCoinAddGrpId[i], 1.0f, 1.0f); } - for (temp_r28 = 0; temp_r28 <= 14;) { + for (crownTime = 0; crownTime <= 14;) { for (i = 0; i < 4; i++) { - if (GWPlayerCoinWinGet(lbl_1_bss_4A[i]) >= 10) { - HuSprAttrReset(lbl_1_bss_9C, i, 4); + if (GWPlayerCoinWinGet(resultOrder[i]) >= 10) { + HuSprAttrReset(resultCrownGrpId, i, 4); } - HuSprScaleSet(lbl_1_bss_9C, i, sind((120.0f / 14.0f) * temp_r28) * (0.8 * (1.0 / sin((M_PI * 2) / 3))), - 0.8 * (sind((120.0f / 14.0f) * temp_r28) * (1.0 / sin((M_PI * 2) / 3)))); + HuSprScaleSet(resultCrownGrpId, i, sind((120.0f / 14.0f) * crownTime) * (0.8 * (1.0 / sin((M_PI * 2) / 3))), + 0.8 * (sind((120.0f / 14.0f) * crownTime) * (1.0 / sin((M_PI * 2) / 3)))); } - temp_r28 += (lbl_1_bss_174) ? 2 : 1; + crownTime += (resultFastF) ? 2 : 1; HuPrcVSleep(); } - if (!lbl_1_bss_174) { + if (!resultFastF) { HuPrcSleep(15); } for (i = 0; i < 4; i++) { - sp14[i] = 0.0f; + coinRot[i] = 0.0f; } - for (i = temp_r30 = 0; i < 4; i++) { - temp_r30 += sp8[i]; + for (i = time = 0; i < 4; i++) { + time += coinNum[i]; } - status = -1; - if (temp_r30) { - status = HuAudFXPlay(23); + seNo = -1; + if (time) { + seNo = HuAudFXPlay(23); } - temp_r30 = 0; - temp_f30 = temp_r30; - temp_r30 = 0; + time = 0; + addTime = time; + time = 0; while (1) { - temp_r26 = 0; - temp_f30 += (lbl_1_bss_174) ? 1.0f : 0.2f; - temp_r30 = temp_f30; - for (i = temp_r29 = 0; i < 4; i++) { - if (sp8[lbl_1_bss_4A[i]] - temp_r30 <= 0) { - if (!sp24[lbl_1_bss_4A[i]] && sp8[lbl_1_bss_4A[i]] != 0) { - sp24[lbl_1_bss_4A[i]] = 1; - if (!temp_r26) { + sePlayF = FALSE; + addTime += (resultFastF) ? 1.0f : 0.2f; + time = addTime; + for (i = maxTime = 0; i < 4; i++) { + if (coinNum[resultOrder[i]] - time <= 0) { + if (!doneF[resultOrder[i]] && coinNum[resultOrder[i]] != 0) { + doneF[resultOrder[i]] = 1; + if (!sePlayF) { HuAudFXPlay(9); - temp_r26 = 1; + sePlayF = TRUE; } } - temp_r29++; - fn_1_3CAC(lbl_1_bss_3A[i], 0); - fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], sp8[lbl_1_bss_4A[i]] + BoardPlayerCoinsGet(lbl_1_bss_4A[i])); - if (!sp14[i]) { + maxTime++; + ResultCoinAddNumSet(resultCoinAddGrpId[i], 0); + ResultSprNumSet(resultNumGrpId[(i * 2) + 1], coinNum[resultOrder[i]] + BoardPlayerCoinsGet(resultOrder[i])); + if (!coinRot[i]) { continue; } - sp14[i] += 20.0f; - if (sp14[i] >= 360.0f) { - sp14[i] -= 360.0f; + coinRot[i] += 20.0f; + if (coinRot[i] >= 360.0f) { + coinRot[i] -= 360.0f; } - Hu3DModelRotSet(lbl_1_bss_1A9C[i + 8], 0.0f, sp14[i], 0.0f); + Hu3DModelRotSet(stageMdlId[i + 8], 0.0f, coinRot[i], 0.0f); } else { - fn_1_3CAC(lbl_1_bss_3A[i], sp8[lbl_1_bss_4A[i]] - temp_r30); - fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], (s32)temp_r30 + BoardPlayerCoinsGet(lbl_1_bss_4A[i])); - sp14[i] += 20.0f; - if (sp14[i] >= 360.0f) { - sp14[i] -= 360.0f; + ResultCoinAddNumSet(resultCoinAddGrpId[i], coinNum[resultOrder[i]] - time); + ResultSprNumSet(resultNumGrpId[(i * 2) + 1], (s32)time + BoardPlayerCoinsGet(resultOrder[i])); + coinRot[i] += 20.0f; + if (coinRot[i] >= 360.0f) { + coinRot[i] -= 360.0f; } - Hu3DModelRotSet(lbl_1_bss_1A9C[i + 8], 0.0f, sp14[i], 0.0f); + Hu3DModelRotSet(stageMdlId[i + 8], 0.0f, coinRot[i], 0.0f); } } - if (temp_r29 == 4) { + if (maxTime == 4) { break; } HuPrcVSleep(); } - if (status != -1) { - HuAudFXStop(status); + if (seNo != -1) { + HuAudFXStop(seNo); } - temp_r29 = 0; + maxTime = 0; while (1) { - for (i = temp_r30 = 0; i < 4; i++) { - if (sp14[i]) { - sp14[i] += 20.0f; - if (sp14[i] >= 360.0f) { - sp14[i] -= 360.0f; + for (i = time = 0; i < 4; i++) { + if (coinRot[i]) { + coinRot[i] += 20.0f; + if (coinRot[i] >= 360.0f) { + coinRot[i] -= 360.0f; } - Hu3DModelRotSet(lbl_1_bss_1A9C[i + 8], 0.0f, sp14[i], 0.0f); + Hu3DModelRotSet(stageMdlId[i + 8], 0.0f, coinRot[i], 0.0f); } else { - temp_r30++; + time++; } } - if (temp_r30 >= 4) { + if (time >= 4) { break; } HuPrcVSleep(); - temp_r29++; + maxTime++; } - if (temp_r29 < 30) { - HuPrcSleep(30 - temp_r29); + if (maxTime < 30) { + HuPrcSleep(30 - maxTime); } - temp_r29 = (lbl_1_bss_174) ? 3 : 10; - for (temp_r30 = 0; temp_r30 <= temp_r29; temp_r30++) { - temp_f31 = cosd((90.0 / temp_r29) * temp_r30); + maxTime = (resultFastF) ? 3 : 10; + for (time = 0; time <= maxTime; time++) { + scale = cosd((90.0 / maxTime) * time); for (i = 0; i < 4; i++) { - HuSprGrpScaleSet(lbl_1_bss_3A[i], temp_f31, temp_f31); + HuSprGrpScaleSet(resultCoinAddGrpId[i], scale, scale); } HuPrcVSleep(); } for (i = 0; i < 4; i++) { - HuSprGrpScaleSet(lbl_1_bss_3A[i], 0.0f, 0.0f); + HuSprGrpScaleSet(resultCoinAddGrpId[i], 0.0f, 0.0f); } } - -void fn_1_2ADC(void) +static void ResultOrderApply(void) { - float temp_f31; + float weight; s16 i; - s16 temp_r30; - s16 temp_r29; - s16 temp_r28; - s16 temp_r27; - s16 temp_r26; - s16 temp_r25; - s16 temp_r24; - float sp54[4]; - Vec sp48; - s32 sp38[4] = { -1, -1, -1, -1 }; - s16 sp30[4]; - s16 sp28[4]; - s16 sp20[4]; - s16 sp18[4]; - s16 sp10[4]; - s16 sp8[4]; + s16 charNo; + s16 num; + s16 scaleTime; + s16 rankTime; + s16 doneNum; + s16 sePlayF; + s16 sprId; + float cubeRot[4]; + Vec cubePos; + s32 voiceSeNo[4] = { -1, -1, -1, -1 }; + s16 order[4]; + s16 statOrder[4]; + s16 statRank[4]; + s16 rank[4]; + s16 coin[4]; + s16 star[4]; for (i = 0; i < 4; i++) { - sp30[i] = sp28[i] = lbl_1_bss_4A[i]; - sp18[i] = sp20[i] = lbl_1_bss_42[i]; - sp10[i] = BoardPlayerCoinsGet(lbl_1_bss_4A[i]); - sp8[i] = GWStarsGet(lbl_1_bss_4A[i]); + order[i] = statOrder[i] = resultOrder[i]; + rank[i] = statRank[i] = resultRank[i]; + coin[i] = BoardPlayerCoinsGet(resultOrder[i]); + star[i] = GWStarsGet(resultOrder[i]); } - fn_1_3E08(); + ResultOrderSet(); for (i = 0; i < 4; i++) { - if (sp30[i] != lbl_1_bss_4A[i] || sp18[i] != lbl_1_bss_42[i]) { + if (order[i] != resultOrder[i] || rank[i] != resultRank[i]) { break; } } if (i == 4) { - lbl_1_bss_0 = 1; + resultReorderF = 1; return; } - lbl_1_data_380 = HuSprGrpCreate(4); + rankNewGrpId = HuSprGrpCreate(4); for (i = 0; i < 4; i++) { - temp_r24 = HuSprCreate(lbl_1_bss_144[lbl_1_bss_42[i]], i, 0); - HuSprGrpMemberSet(lbl_1_data_380, i, temp_r24); - HuSprPosSet(lbl_1_data_380, i, lbl_1_data_3F8[(i * 2)], lbl_1_data_3F8[(i * 2) + 1]); - HuSprAttrSet(lbl_1_data_380, i, 4); - temp_r30 = GWPlayerCfg[lbl_1_bss_4A[i]].character; - lbl_1_bss_54[i] = lbl_1_bss_A[i] = Hu3DModelLink(lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]]); - Hu3D2Dto3D(&lbl_1_data_408[i], 1, &sp48); - Hu3DModelPosSetV(lbl_1_bss_A[i], &sp48); - if (sp30[i] == lbl_1_bss_4A[i] && sp18[i] == lbl_1_bss_42[i]) { - Hu3DModelAttrSet(lbl_1_bss_5C[temp_r30][sp18[i]], HU3D_ATTR_DISPOFF); - Hu3DModelAttrReset(lbl_1_bss_A[i], HU3D_ATTR_DISPOFF); - Hu3DModelScaleSet(lbl_1_bss_A[i], 1.1f, 1.1f, 1.1f); + sprId = HuSprCreate(resultRankAnim[resultRank[i]], i, 0); + HuSprGrpMemberSet(rankNewGrpId, i, sprId); + HuSprPosSet(rankNewGrpId, i, resultRankPosTbl[(i * 2)], resultRankPosTbl[(i * 2) + 1]); + HuSprAttrSet(rankNewGrpId, i, 4); + charNo = GWPlayerCfg[resultOrder[i]].character; + resultPlayerCubeMdlId[i] = resultCharCubeMdlId[i] = Hu3DModelLink(resultCubeMdlId[charNo][resultRank[i]]); + Hu3D2Dto3D(&resultCharPosTbl[i], 1, &cubePos); + Hu3DModelPosSetV(resultCharCubeMdlId[i], &cubePos); + if (order[i] == resultOrder[i] && rank[i] == resultRank[i]) { + Hu3DModelAttrSet(resultCubeMdlId[charNo][rank[i]], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(resultCharCubeMdlId[i], HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(resultCharCubeMdlId[i], 1.1f, 1.1f, 1.1f); } else { - Hu3DModelAttrSet(lbl_1_bss_A[i], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(resultCharCubeMdlId[i], HU3D_ATTR_DISPOFF); } } for (i = 0; i < 4; i++) { - sp54[i] = 0; + cubeRot[i] = 0; } - temp_r25 = 0; - temp_r28 = 0; + sePlayF = 0; + scaleTime = 0; while (1) { - for (temp_r26 = i = 0; i < 4; i++) { - if (sp30[i] == lbl_1_bss_4A[i] && sp18[i] == lbl_1_bss_42[i]) { - temp_r26++; - fn_1_3B50(lbl_1_bss_CE[(i * 2)], GWStarsGet(lbl_1_bss_4A[i])); - fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); + for (doneNum = i = 0; i < 4; i++) { + if (order[i] == resultOrder[i] && rank[i] == resultRank[i]) { + doneNum++; + ResultSprNumSet(resultNumGrpId[(i * 2)], GWStarsGet(resultOrder[i])); + ResultSprNumSet(resultNumGrpId[(i * 2) + 1], BoardPlayerCoinsGet(resultOrder[i])); } else { - if (temp_r28 > (i * 20)) { - temp_r27 = temp_r28 - (i * 20); - if (temp_r27 <= 20) { - if (temp_r27 <= 10) { - HuSprScaleSet(lbl_1_bss_52, i, 1.0f, cosd(9.0f * temp_r27)); + if (scaleTime > (i * 20)) { + rankTime = scaleTime - (i * 20); + if (rankTime <= 20) { + if (rankTime <= 10) { + HuSprScaleSet(resultRankGrpId, i, 1.0f, cosd(9.0f * rankTime)); } else { - HuSprAttrSet(lbl_1_bss_52, i, 4); - HuSprAttrReset(lbl_1_data_380, i, 4); - HuSprScaleSet(lbl_1_data_380, i, 1.0f, sind(9.0f * (temp_r27 - 10))); + HuSprAttrSet(resultRankGrpId, i, 4); + HuSprAttrReset(rankNewGrpId, i, 4); + HuSprScaleSet(rankNewGrpId, i, 1.0f, sind(9.0f * (rankTime - 10))); } - temp_f31 = temp_r27 / 20.0f; - temp_r29 = GWStarsGet(sp28[i]) + (temp_f31 * (GWStarsGet(lbl_1_bss_4A[i]) - GWStarsGet(sp28[i]))); - fn_1_3B50(lbl_1_bss_CE[(i * 2)], temp_r29); - temp_r29 = BoardPlayerCoinsGet(sp28[i]) + (temp_f31 * (BoardPlayerCoinsGet(lbl_1_bss_4A[i]) - BoardPlayerCoinsGet(sp28[i]))); - fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], temp_r29); + weight = rankTime / 20.0f; + num = GWStarsGet(statOrder[i]) + (weight * (GWStarsGet(resultOrder[i]) - GWStarsGet(statOrder[i]))); + ResultSprNumSet(resultNumGrpId[(i * 2)], num); + num = BoardPlayerCoinsGet(statOrder[i]) + (weight * (BoardPlayerCoinsGet(resultOrder[i]) - BoardPlayerCoinsGet(statOrder[i]))); + ResultSprNumSet(resultNumGrpId[(i * 2) + 1], num); } else { - temp_r30 = GWPlayerCfg[sp28[i]].character; - Hu3DModelAttrSet(lbl_1_bss_5C[temp_r30][sp18[i]], HU3D_ATTR_DISPOFF); - temp_r30 = GWPlayerCfg[lbl_1_bss_4A[i]].character; - Hu3DModelAttrReset(lbl_1_bss_A[i], HU3D_ATTR_DISPOFF); - Hu3DModelScaleSet(lbl_1_bss_A[i], 1.1f, 1.1f, 1.1f); - fn_1_3B50(lbl_1_bss_CE[(i * 2)], GWStarsGet(lbl_1_bss_4A[i])); - fn_1_3B50(lbl_1_bss_CE[(i * 2) + 1], BoardPlayerCoinsGet(lbl_1_bss_4A[i])); - for (temp_r29 = 0; temp_r29 < 4; temp_r29++) { - if (sp28[temp_r29] == lbl_1_bss_4A[i]) { + charNo = GWPlayerCfg[statOrder[i]].character; + Hu3DModelAttrSet(resultCubeMdlId[charNo][rank[i]], HU3D_ATTR_DISPOFF); + charNo = GWPlayerCfg[resultOrder[i]].character; + Hu3DModelAttrReset(resultCharCubeMdlId[i], HU3D_ATTR_DISPOFF); + Hu3DModelScaleSet(resultCharCubeMdlId[i], 1.1f, 1.1f, 1.1f); + ResultSprNumSet(resultNumGrpId[(i * 2)], GWStarsGet(resultOrder[i])); + ResultSprNumSet(resultNumGrpId[(i * 2) + 1], BoardPlayerCoinsGet(resultOrder[i])); + for (num = 0; num < 4; num++) { + if (statOrder[num] == resultOrder[i]) { break; } } - if (lbl_1_bss_42[i] != sp20[temp_r29]) { - if (lbl_1_bss_42[i] < sp20[temp_r29]) { - Hu3DAnimCreate(lbl_1_bss_E4[temp_r30][1], lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]], "ys22"); + if (resultRank[i] != statRank[num]) { + if (resultRank[i] < statRank[num]) { + Hu3DAnimCreate(resultCharAnim[charNo][1], resultCubeMdlId[charNo][resultRank[i]], "ys22"); } else { - Hu3DAnimCreate(lbl_1_bss_E4[temp_r30][2], lbl_1_bss_5C[temp_r30][lbl_1_bss_42[i]], "ys22"); + Hu3DAnimCreate(resultCharAnim[charNo][2], resultCubeMdlId[charNo][resultRank[i]], "ys22"); } - if (lbl_1_bss_42[i] == 0) { - sp38[lbl_1_bss_4A[i]] = HuAudPlayerVoicePlay(lbl_1_bss_4A[i], 293); + if (resultRank[i] == 0) { + voiceSeNo[resultOrder[i]] = HuAudPlayerVoicePlay(resultOrder[i], 293); } - if (!temp_r25) { - temp_r25 = 1; + if (!sePlayF) { + sePlayF = 1; HuAudFXPlay(27); } } - sp30[i] = lbl_1_bss_4A[i]; - sp18[i] = lbl_1_bss_42[i]; + order[i] = resultOrder[i]; + rank[i] = resultRank[i]; } } - sp54[i] += 20.0f; - if (sp54[i] >= 360.0f) { - sp54[i] -= 360.0f; + cubeRot[i] += 20.0f; + if (cubeRot[i] >= 360.0f) { + cubeRot[i] -= 360.0f; } - temp_r30 = GWPlayerCfg[sp28[i]].character; - Hu3DModelRotSet(lbl_1_bss_5C[temp_r30][sp18[i]], sp54[i] / (4 - i), sp54[i], 0.0f); + charNo = GWPlayerCfg[statOrder[i]].character; + Hu3DModelRotSet(resultCubeMdlId[charNo][rank[i]], cubeRot[i] / (4 - i), cubeRot[i], 0.0f); } } - if (temp_r28 <= 10) { + if (scaleTime <= 10) { for (i = 0; i < 4; i++) { - HuSprScaleSet(lbl_1_bss_9C, i, cosd(9.0f * temp_r28), cosd(9.0f * temp_r28)); + HuSprScaleSet(resultCrownGrpId, i, cosd(9.0f * scaleTime), cosd(9.0f * scaleTime)); } } else { for (i = 0; i < 4; i++) { - HuSprScaleSet(lbl_1_bss_9C, i, 0.0f, 0.0f); + HuSprScaleSet(resultCrownGrpId, i, 0.0f, 0.0f); } } - if (temp_r26 >= 4) { + if (doneNum >= 4) { break; } - if (lbl_1_bss_174) { - temp_r28 += 2; + if (resultFastF) { + scaleTime += 2; } HuPrcVSleep(); - temp_r28++; + scaleTime++; } for (i = 0; i < 4; i++) { - HuSprScaleSet(lbl_1_bss_9C, i, 0.0f, 0.0f); + HuSprScaleSet(resultCrownGrpId, i, 0.0f, 0.0f); } - lbl_1_bss_0 = 1; + resultReorderF = 1; } -void fn_1_3B50(s16 group, s16 value) +static void ResultSprNumSet(s16 grpId, s16 value) { - s16 digit; - s16 digit_value; + s16 no; + s16 bank; if (value > 999) { value = 999; } - digit = 0; - digit_value = value / 100; - if (digit_value != 0) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; + no = 0; + bank = value / 100; + if (bank != 0) { + HuSprBankSet(grpId, no, bank); + HuSprAttrReset(grpId, no, 4); + no++; } - value -= digit_value * 100; - digit_value = value / 10; - if (digit_value != 0 || digit == 1) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; + value -= bank * 100; + bank = value / 10; + if (bank != 0 || no == 1) { + HuSprBankSet(grpId, no, bank); + HuSprAttrReset(grpId, no, 4); + no++; } - value -= digit_value * 10; - HuSprBankSet(group, digit, value); - HuSprAttrReset(group, digit, 4); - digit++; - for (digit_value = digit; digit_value < 3; digit_value++) { - HuSprAttrSet(group, digit_value, 4); + value -= bank * 10; + HuSprBankSet(grpId, no, value); + HuSprAttrReset(grpId, no, 4); + no++; + for (bank = no; bank < 3; bank++) { + HuSprAttrSet(grpId, bank, 4); } } -void fn_1_3CAC(s16 group, s16 value) +static void ResultCoinAddNumSet(s16 grpId, s16 value) { - s16 digit; - s16 digit_value; + s16 no; + s16 bank; if (value > 999) { value = 999; } - digit = 2; - digit_value = value / 100; - if (digit_value != 0) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; + no = 2; + bank = value / 100; + if (bank != 0) { + HuSprBankSet(grpId, no, bank); + HuSprAttrReset(grpId, no, 4); + no++; } - value -= digit_value * 100; - digit_value = value / 10; - if (digit_value != 0 || digit == 3) { - HuSprBankSet(group, digit, digit_value); - HuSprAttrReset(group, digit, 4); - digit++; + value -= bank * 100; + bank = value / 10; + if (bank != 0 || no == 3) { + HuSprBankSet(grpId, no, bank); + HuSprAttrReset(grpId, no, 4); + no++; } - value -= digit_value * 10; - HuSprBankSet(group, digit, value); - HuSprAttrReset(group, digit, 4); - digit++; - for (digit_value = digit; digit_value < 5; digit_value++) { - HuSprAttrSet(group, digit_value, 4); + value -= bank * 10; + HuSprBankSet(grpId, no, value); + HuSprAttrReset(grpId, no, 4); + no++; + for (bank = no; bank < 5; bank++) { + HuSprAttrSet(grpId, bank, 4); } } -void fn_1_3E08(void) +static void ResultOrderSet(void) { s16 i; s16 j; for (i = 0; i < 4; i++) { - lbl_1_bss_42[i] = BoardPlayerRankCalc(i); - lbl_1_bss_4A[i] = i; + resultRank[i] = BoardPlayerRankCalc(i); + resultOrder[i] = i; } for (j = 1; j < 4; j++) { for (i = 0; i < 4 - j; i++) { - if (lbl_1_bss_42[i] > lbl_1_bss_42[i + 1]) { - s16 temp = lbl_1_bss_42[i]; - lbl_1_bss_42[i] = lbl_1_bss_42[i + 1]; - lbl_1_bss_42[i + 1] = temp; - temp = lbl_1_bss_4A[i]; - lbl_1_bss_4A[i] = lbl_1_bss_4A[i + 1]; - lbl_1_bss_4A[i + 1] = temp; + if (resultRank[i] > resultRank[i + 1]) { + s16 temp = resultRank[i]; + resultRank[i] = resultRank[i + 1]; + resultRank[i + 1] = temp; + temp = resultOrder[i]; + resultOrder[i] = resultOrder[i + 1]; + resultOrder[i + 1] = temp; } } } } -s32 lbl_1_data_450[] = { DATADIR_W01, DATADIR_W02, DATADIR_W03, DATADIR_W04, DATADIR_W05, DATADIR_W06 }; +static s32 resultBoardDirTbl[] = { DATADIR_W01, DATADIR_W02, DATADIR_W03, DATADIR_W04, DATADIR_W05, DATADIR_W06 }; -void fn_1_3FD8(void) +void ResultBoardDataRead(void) { - s32 status; - u32 ardma; + s32 statId; + u32 aMemP; if (!_CheckFlag(0x10000)) { - lbl_1_bss_178 = 1; + resultReadEndF = 1; HuPrcEnd(); while (1) { HuPrcVSleep(); } } - status = HuDataDirReadAsync(DATADIR_BOARD); - if (status != -1) { - while (!HuDataGetAsyncStat(status)) { + statId = HuDataDirReadAsync(DATADIR_BOARD); + if (statId != -1) { + while (!HuDataGetAsyncStat(statId)) { HuPrcVSleep(); } } - ardma = HuAR_MRAMtoARAM(DATADIR_BOARD); - if (ardma) { + aMemP = HuAR_MRAMtoARAM(DATADIR_BOARD); + if (aMemP) { while (HuARDMACheck()) { HuPrcVSleep(); } } HuDataDirClose(DATADIR_BOARD); - status = HuDataDirReadAsync(lbl_1_data_450[GWSystem.board]); - if (status != -1) { - while (!HuDataGetAsyncStat(status)) { + statId = HuDataDirReadAsync(resultBoardDirTbl[GWSystem.board]); + if (statId != -1) { + while (!HuDataGetAsyncStat(statId)) { HuPrcVSleep(); } } - lbl_1_bss_178 = 1; + resultReadEndF = 1; HuPrcEnd(); while (1) { HuPrcVSleep(); } } -void fn_1_40DC(void) +void ResultCoinAdd(void) { s16 i; - s16 sp8[5]; - fn_1_423C(sp8); - sp8[lbl_1_bss_172] += sp8[4]; + s16 coinNum[5]; + ResultCoinNumGet(coinNum); + coinNum[resultBonusPlayer] += coinNum[4]; for (i = 0; i < 4; i++) { - GWCoinsAdd(i, sp8[i]); + GWCoinsAdd(i, coinNum[i]); GWPlayerCoinWinSet(i, 0); GWPlayerCoinCollectSet(i, 0); if (mgInfoTbl[GWSystem.mg_next].type != 4) { - GWPlayer[i].coins_mg += sp8[i]; + GWPlayer[i].coins_mg += coinNum[i]; if (GWPlayer[i].coins_mg > 9999) { GWPlayer[i].coins_mg = 9999; } @@ -904,99 +903,99 @@ void fn_1_40DC(void) } } -void fn_1_423C(s16 *data) +void ResultCoinNumGet(s16 *coinNum) { s16 i; s32 coin; - u32 mul_coin; + u32 coinMul; u32 coin_battle; - s16 temp_r26; - s16 mgtype; - float sp10[4]; - s16 sp8[4]; - mgtype = mgInfoTbl[GWSystem.mg_next].type; - switch (mgtype) { + s16 unkRankF; + s16 mgType; + float scale[4]; + s16 rank[4]; + mgType = mgInfoTbl[GWSystem.mg_next].type; + switch (mgType) { case 4: - temp_r26 = 0; + unkRankF = 0; for (i = coin_battle = 0; i < 4; i++) { coin_battle += GWPlayerCoinBattleGet(i); } - sp8[0] = sp8[1] = sp8[2] = sp8[3] = 0; + rank[0] = rank[1] = rank[2] = rank[3] = 0; for (i = 0; i < 4; i++) { - sp8[GWPlayerCoinWinGet(i)]++; + rank[GWPlayerCoinWinGet(i)]++; } - sp10[0] = sp10[1] = sp10[2] = sp10[3] = 0; - if (sp8[0] == 1 && sp8[1] == 1 && sp8[2] == 1) { - sp10[0] = 0.7f; - sp10[1] = 0.3f; + scale[0] = scale[1] = scale[2] = scale[3] = 0; + if (rank[0] == 1 && rank[1] == 1 && rank[2] == 1) { + scale[0] = 0.7f; + scale[1] = 0.3f; } - else if (sp8[0] == 2) { - sp10[0] = 0.5f; + else if (rank[0] == 2) { + scale[0] = 0.5f; } - else if (sp8[0] == 3) { - sp10[0] = 0.3333333f; + else if (rank[0] == 3) { + scale[0] = 0.3333333f; } - else if (sp8[0] == 1 && sp8[1] == 2) { - sp10[0] = 0.6f; - sp10[1] = 0.2f; + else if (rank[0] == 1 && rank[1] == 2) { + scale[0] = 0.6f; + scale[1] = 0.2f; } - else if (sp8[0] == 1 && sp8[1] == 3) { - sp10[0] = 0.7f; - sp10[1] = 0.1f; + else if (rank[0] == 1 && rank[1] == 3) { + scale[0] = 0.7f; + scale[1] = 0.1f; } - else if (sp8[0] == 1 && sp8[1] == 1 && sp8[2] == 2) { - sp10[0] = 0.7f; - sp10[1] = 0.3f; + else if (rank[0] == 1 && rank[1] == 1 && rank[2] == 2) { + scale[0] = 0.7f; + scale[1] = 0.3f; } - else if (sp8[0] == 4) { - sp10[0] = 0.25f; + else if (rank[0] == 4) { + scale[0] = 0.25f; } else { - temp_r26 = 1; + unkRankF = 1; } for (i = coin = 0; i < 4; i++) { - if (!temp_r26) { - mul_coin = coin_battle * sp10[GWPlayerCoinWinGet(i)]; + if (!unkRankF) { + coinMul = coin_battle * scale[GWPlayerCoinWinGet(i)]; } else { - mul_coin = GWPlayerCoinBattleGet(i); + coinMul = GWPlayerCoinBattleGet(i); } - data[i] = mul_coin; - coin += mul_coin; + coinNum[i] = coinMul; + coin += coinMul; } if (coin < coin_battle) { - data[4] = coin_battle - coin; + coinNum[4] = coin_battle - coin; } else { - data[4] = 0; + coinNum[4] = 0; } break; default: for (i = 0; i < 4; i++) { coin = GWPlayerCoinWinGet(i) + GWPlayerCoinCollectGet(i); - mul_coin = GWLuckyValueGet(); - if (mul_coin == 0) { - mul_coin = 1; + coinMul = GWLuckyValueGet(); + if (coinMul == 0) { + coinMul = 1; } - coin *= mul_coin; - data[i] = coin; + coin *= coinMul; + coinNum[i] = coin; } break; } } -void fn_1_461C(void) +static void SaveExec(void) { - s16 sprite; + s16 sprId; Hu3DAllKill(); HuSprClose(); HuSprInit(); espInit(); HuPrcVSleep(); - sprite = espEntry(0x860020, 5000, 0); - espPosSet(sprite, 288.0, 240.0); - espAttrReset(sprite, HUSPR_ATTR_DISPOFF); + sprId = espEntry(0x860020, 5000, 0); + espPosSet(sprId, 288.0, 240.0); + espAttrReset(sprId, HUSPR_ATTR_DISPOFF); Hu3DBGColorSet(0, 0, 0); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 20); while (WipeStatGet()) { @@ -1026,222 +1025,222 @@ void fn_1_461C(void) } } -s32 lbl_1_data_468[] = { DATADIR_MARIOMDL1, DATADIR_LUIGIMDL1, DATADIR_PEACHMDL1, DATADIR_YOSHIMDL1, DATADIR_WARIOMDL1, DATADIR_DONKEYMDL1, +static s32 resultCharMdlTbl[] = { DATADIR_MARIOMDL1, DATADIR_LUIGIMDL1, DATADIR_PEACHMDL1, DATADIR_YOSHIMDL1, DATADIR_WARIOMDL1, DATADIR_DONKEYMDL1, DATADIR_DAISYMDL1, DATADIR_WALUIGIMDL1 }; -Vec lbl_1_data_488[] = { +static Vec resultTeamCharPosTbl[] = { { 160, 185, 500 }, { 240, 185, 500 }, { 160, 355, 500 }, { 240, 355, 500 }, }; -void fn_1_47FC(void) +static void ResultTeamExec(void) { - s16 temp_r31; - s16 temp_r24; - s16 temp_r21; - s16 temp_r20; - s16 temp_r19; - s16 temp_r18; - s16 temp_r17; - Vec sp40; - Vec sp34; - s16 sp2C[4]; - s16 sp28[2]; - s16 sp24[2]; - s16 sp20[2]; - s16 sp1C[2]; - s16 sp18[2]; - AnimData *sp14; - s32 sp10; - s16 spC; - s16 spA; - s16 sp8; + s16 i; + s16 temp; + s16 winId; + s16 player; + s16 j; + s16 cubeMdlId; + s16 teamNo; + Vec pos3D; + Vec pos2D; + s16 charNo[4]; + s16 coinNum[2]; + s16 starNum[2]; + s16 teamYPos[2]; + s16 teamPlayerNo[2]; + s16 rank[2]; + AnimData *rankAnim; + s32 cubeNo; + s16 rankGrpId; + s16 rankSprId; + s16 btnDown; WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10); while (WipeStatGet()) { HuPrcVSleep(); } - espAttrSet(lbl_1_bss_1A1A[0], HUSPR_ATTR_DISPOFF); - espAttrSet(lbl_1_bss_1A1A[1], HUSPR_ATTR_DISPOFF); - for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31 + 6], HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(lbl_1_bss_1A9C[temp_r31 + 10], HU3D_ATTR_DISPOFF); + espAttrSet(stageSprId[0], HUSPR_ATTR_DISPOFF); + espAttrSet(stageSprId[1], HUSPR_ATTR_DISPOFF); + for (i = 0; i < 2; i++) { + Hu3DModelAttrSet(stageMdlId[i + 6], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(stageMdlId[i + 10], HU3D_ATTR_DISPOFF); } - for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { - espAttrSet(lbl_1_bss_1A1A[temp_r31 + 6], HUSPR_ATTR_DISPOFF); + for (i = 0; i < 4; i++) { + espAttrSet(stageSprId[i + 6], HUSPR_ATTR_DISPOFF); } - for (temp_r31 = 4; temp_r31 < 8; temp_r31++) { - Hu3DModelAttrSet(lbl_1_bss_158[temp_r31], HU3D_ATTR_DISPOFF); + for (i = 4; i < 8; i++) { + Hu3DModelAttrSet(statShadowMdlId[i], HU3D_ATTR_DISPOFF); } - for (temp_r31 = 4; temp_r31 < 8; temp_r31++) { - HuSprGrpTPLvlSet(lbl_1_bss_CE[temp_r31], 0.0f); + for (i = 4; i < 8; i++) { + HuSprGrpTPLvlSet(resultNumGrpId[i], 0.0f); } - for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { - for (temp_r19 = 0; temp_r19 < 4; temp_r19++) { - Hu3DModelAttrSet(lbl_1_bss_5C[GWPlayerCfg[temp_r31].character][temp_r19], HU3D_ATTR_DISPOFF); + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + Hu3DModelAttrSet(resultCubeMdlId[GWPlayerCfg[i].character][j], HU3D_ATTR_DISPOFF); } - Hu3DModelAttrSet(lbl_1_bss_54[temp_r31], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(resultPlayerCubeMdlId[i], HU3D_ATTR_DISPOFF); } - HuSprGrpKill(lbl_1_bss_9C); - HuSprGrpKill(lbl_1_bss_52); - if (lbl_1_data_380 != -1) { - HuSprGrpKill(lbl_1_data_380); + HuSprGrpKill(resultCrownGrpId); + HuSprGrpKill(resultRankGrpId); + if (rankNewGrpId != -1) { + HuSprGrpKill(rankNewGrpId); } - sp28[0] = sp28[1] = 0; - sp24[0] = sp24[1] = 0; - sp1C[0] = 0; - sp1C[1] = 2; - for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { - temp_r17 = GWPlayer[temp_r31].team; - sp28[temp_r17] += BoardPlayerCoinsGet(temp_r31); - sp24[temp_r17] += GWStarsGet(temp_r31); - sp2C[sp1C[temp_r17]++] = GWPlayerCfg[temp_r31].character; + coinNum[0] = coinNum[1] = 0; + starNum[0] = starNum[1] = 0; + teamPlayerNo[0] = 0; + teamPlayerNo[1] = 2; + for (i = 0; i < 4; i++) { + teamNo = GWPlayer[i].team; + coinNum[teamNo] += BoardPlayerCoinsGet(i); + starNum[teamNo] += GWStarsGet(i); + charNo[teamPlayerNo[teamNo]++] = GWPlayerCfg[i].character; } - sp18[0] = 0; - sp18[1] = 1; - if (sp24[0] > sp24[1]) { - lbl_1_bss_8 = 0; + rank[0] = 0; + rank[1] = 1; + if (starNum[0] > starNum[1]) { + resultTeamOrder = 0; } else { - if (sp24[0] == sp24[1]) { - if (sp28[0] > sp28[1]) { - lbl_1_bss_8 = 0; + if (starNum[0] == starNum[1]) { + if (coinNum[0] > coinNum[1]) { + resultTeamOrder = 0; } - else if (sp28[0] == sp28[1]) { - sp18[0] = sp18[1] = 0; - lbl_1_bss_8 = 0; + else if (coinNum[0] == coinNum[1]) { + rank[0] = rank[1] = 0; + resultTeamOrder = 0; } else { - lbl_1_bss_8 = 1; + resultTeamOrder = 1; } } else { - lbl_1_bss_8 = 1; + resultTeamOrder = 1; } } - HuSprAttrReset(lbl_1_bss_170, 0, 4); - HuSprAttrReset(lbl_1_bss_170, 1, 4); - HuSprPosSet(lbl_1_bss_170, 1, 0, -180); - HuSprAttrReset(lbl_1_bss_170, 2, 4); - HuSprAttrReset(lbl_1_bss_170, 3, 4); - if (lbl_1_bss_8 == 0) { - sp20[0] = -55; - sp20[1] = 115; + HuSprAttrReset(teamResultGrpId, 0, 4); + HuSprAttrReset(teamResultGrpId, 1, 4); + HuSprPosSet(teamResultGrpId, 1, 0, -180); + HuSprAttrReset(teamResultGrpId, 2, 4); + HuSprAttrReset(teamResultGrpId, 3, 4); + if (resultTeamOrder == 0) { + teamYPos[0] = -55; + teamYPos[1] = 115; } else { - sp20[0] = 115; - sp20[1] = -55; - temp_r24 = sp2C[0]; - sp2C[0] = sp2C[2]; - sp2C[2] = temp_r24; - temp_r24 = sp2C[1]; - sp2C[1] = sp2C[3]; - sp2C[3] = temp_r24; - temp_r24 = sp28[0]; - sp28[0] = sp28[1]; - sp28[1] = temp_r24; - temp_r24 = sp24[0]; - sp24[0] = sp24[1]; - sp24[1] = temp_r24; + teamYPos[0] = 115; + teamYPos[1] = -55; + temp = charNo[0]; + charNo[0] = charNo[2]; + charNo[2] = temp; + temp = charNo[1]; + charNo[1] = charNo[3]; + charNo[3] = temp; + temp = coinNum[0]; + coinNum[0] = coinNum[1]; + coinNum[1] = temp; + temp = starNum[0]; + starNum[0] = starNum[1]; + starNum[1] = temp; } - HuSprPosSet(lbl_1_bss_170, 2, 0, sp20[0]); - HuSprPosSet(lbl_1_bss_170, 3, 0, sp20[1]); - HuSprGrpPosSet(lbl_1_bss_170, 288, 240); - for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { - if (temp_r31 < 2) { - sp10 = 0; + HuSprPosSet(teamResultGrpId, 2, 0, teamYPos[0]); + HuSprPosSet(teamResultGrpId, 3, 0, teamYPos[1]); + HuSprGrpPosSet(teamResultGrpId, 288, 240); + for (i = 0; i < 4; i++) { + if (i < 2) { + cubeNo = 0; } else { - sp10 = 1; + cubeNo = 1; } - temp_r18 = lbl_1_bss_5C[sp2C[temp_r31]][sp10]; - Hu3DAnimCreate(lbl_1_bss_E4[sp2C[temp_r31]][0], temp_r18, "ys22"); - Hu3DModelAttrReset(temp_r18, HU3D_ATTR_DISPOFF); - Hu3D2Dto3D(&lbl_1_data_488[temp_r31], 1, &sp40); - Hu3DModelPosSetV(temp_r18, &sp40); - Hu3DModelRotSet(temp_r18, 0, 0, 0); - sp34 = lbl_1_data_488[temp_r31]; - sp34.y += 5.0f; - sp34.x += 3.0f; - sp34.z += 200.0f; - Hu3D2Dto3D(&sp34, 1, &sp40); - Hu3DModelPosSetV(lbl_1_bss_168[temp_r31], &sp40); + cubeMdlId = resultCubeMdlId[charNo[i]][cubeNo]; + Hu3DAnimCreate(resultCharAnim[charNo[i]][0], cubeMdlId, "ys22"); + Hu3DModelAttrReset(cubeMdlId, HU3D_ATTR_DISPOFF); + Hu3D2Dto3D(&resultTeamCharPosTbl[i], 1, &pos3D); + Hu3DModelPosSetV(cubeMdlId, &pos3D); + Hu3DModelRotSet(cubeMdlId, 0, 0, 0); + pos2D = resultTeamCharPosTbl[i]; + pos2D.y += 5.0f; + pos2D.x += 3.0f; + pos2D.z += 200.0f; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + Hu3DModelPosSetV(charShadowMdlId[i], &pos3D); } - spC = HuSprGrpCreate(2); - for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { - sp14 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x16) + sp18[temp_r31]); - spA = HuSprCreate(sp14, temp_r31, 0); - HuSprGrpMemberSet(spC, temp_r31, spA); - HuSprPosSet(spC, temp_r31, (lbl_1_data_488[temp_r31 * 2].x) - 80.0f, lbl_1_data_488[temp_r31 * 2].y); - sp34 = lbl_1_data_488[temp_r31 * 2]; - sp34.x += 180.0f; - sp34.y -= 35.0f; - Hu3D2Dto3D(&sp34, 1, &sp40); - Hu3DModelPosSetV(lbl_1_bss_1A9C[temp_r31 + 4], &sp40); - sp34.y += 5.0f; - sp34.x += 3.0f; - sp34.z += 200.0f; - Hu3D2Dto3D(&sp34, 1, &sp40); - Hu3DModelPosSetV(lbl_1_bss_158[temp_r31 * 2], &sp40); - espPosSet(lbl_1_bss_1A1A[(temp_r31 * 2) + 2], 230.0f + lbl_1_data_488[temp_r31 * 2].x, lbl_1_data_488[temp_r31 * 2].y - 35.0f); - fn_1_3B50(lbl_1_bss_CE[temp_r31 * 2], sp24[temp_r31]); - HuSprGrpPosSet(lbl_1_bss_CE[temp_r31 * 2], 320.0f + lbl_1_data_488[temp_r31 * 2].x, lbl_1_data_488[temp_r31 * 2].y - 35.0f); - sp34 = lbl_1_data_488[temp_r31 * 2]; - sp34.x += 180.0f; - sp34.y += 35.0f; - Hu3D2Dto3D(&sp34, 1, &sp40); - Hu3DModelPosSetV(lbl_1_bss_1A9C[temp_r31 + 8], &sp40); - sp34.y += 5.0f; - sp34.x += 3.0f; - sp34.z += 200.0f; - Hu3D2Dto3D(&sp34, 1, &sp40); - Hu3DModelPosSetV(lbl_1_bss_158[(temp_r31 * 2) + 1], &sp40); - espPosSet(lbl_1_bss_1A1A[(temp_r31 * 2) + 3], 230.0f + lbl_1_data_488[temp_r31 * 2].x, 35.0f + lbl_1_data_488[temp_r31 * 2].y); - fn_1_3B50(lbl_1_bss_CE[(temp_r31 * 2) + 1], sp28[temp_r31]); - HuSprGrpPosSet(lbl_1_bss_CE[(temp_r31 * 2) + 1], 320.0f + lbl_1_data_488[temp_r31 * 2].x, 35.0f + lbl_1_data_488[temp_r31 * 2].y); + rankGrpId = HuSprGrpCreate(2); + for (i = 0; i < 2; i++) { + rankAnim = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_RESULT, 0x16) + rank[i]); + rankSprId = HuSprCreate(rankAnim, i, 0); + HuSprGrpMemberSet(rankGrpId, i, rankSprId); + HuSprPosSet(rankGrpId, i, (resultTeamCharPosTbl[i * 2].x) - 80.0f, resultTeamCharPosTbl[i * 2].y); + pos2D = resultTeamCharPosTbl[i * 2]; + pos2D.x += 180.0f; + pos2D.y -= 35.0f; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + Hu3DModelPosSetV(stageMdlId[i + 4], &pos3D); + pos2D.y += 5.0f; + pos2D.x += 3.0f; + pos2D.z += 200.0f; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + Hu3DModelPosSetV(statShadowMdlId[i * 2], &pos3D); + espPosSet(stageSprId[(i * 2) + 2], 230.0f + resultTeamCharPosTbl[i * 2].x, resultTeamCharPosTbl[i * 2].y - 35.0f); + ResultSprNumSet(resultNumGrpId[i * 2], starNum[i]); + HuSprGrpPosSet(resultNumGrpId[i * 2], 320.0f + resultTeamCharPosTbl[i * 2].x, resultTeamCharPosTbl[i * 2].y - 35.0f); + pos2D = resultTeamCharPosTbl[i * 2]; + pos2D.x += 180.0f; + pos2D.y += 35.0f; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + Hu3DModelPosSetV(stageMdlId[i + 8], &pos3D); + pos2D.y += 5.0f; + pos2D.x += 3.0f; + pos2D.z += 200.0f; + Hu3D2Dto3D(&pos2D, 1, &pos3D); + Hu3DModelPosSetV(statShadowMdlId[(i * 2) + 1], &pos3D); + espPosSet(stageSprId[(i * 2) + 3], 230.0f + resultTeamCharPosTbl[i * 2].x, 35.0f + resultTeamCharPosTbl[i * 2].y); + ResultSprNumSet(resultNumGrpId[(i * 2) + 1], coinNum[i]); + HuSprGrpPosSet(resultNumGrpId[(i * 2) + 1], 320.0f + resultTeamCharPosTbl[i * 2].x, 35.0f + resultTeamCharPosTbl[i * 2].y); } WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 10); while (WipeStatGet()) { HuPrcVSleep(); } - temp_r21 = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); - HuWinMesSpeedSet(temp_r21, 0); - HuWinBGTPLvlSet(temp_r21, 0); - HuWinPriSet(temp_r21, 5); - HuWinAttrSet(temp_r21, 0x800); - HuWinMesSet(temp_r21, MAKE_MESSID(0x24, 0x07)); + winId = HuWinCreate(-10000.0f, 400.0f, 320, 40, 0); + HuWinMesSpeedSet(winId, 0); + HuWinBGTPLvlSet(winId, 0); + HuWinPriSet(winId, 5); + HuWinAttrSet(winId, 0x800); + HuWinMesSet(winId, MAKE_MESSID(0x24, 0x07)); HuPrcSleep(4); - temp_r31 = 0; + i = 0; while (1) { - if (lbl_1_bss_4 && temp_r31 > 120) { + if (resultSkipF && i > 120) { break; } - for (temp_r20 = sp8 = 0; temp_r20 < 4; temp_r20++) { - if (!GWPlayerCfg[temp_r20].iscom) { - sp8 |= HuPadBtnDown[GWPlayerCfg[temp_r20].pad_idx]; + for (player = btnDown = 0; player < 4; player++) { + if (!GWPlayerCfg[player].iscom) { + btnDown |= HuPadBtnDown[GWPlayerCfg[player].pad_idx]; } } - if (sp8 & PAD_BUTTON_A) { + if (btnDown & PAD_BUTTON_A) { HuAudFXPlay(28); break; } HuPrcVSleep(); - temp_r31++; + i++; } - HuWinKill(temp_r21); + HuWinKill(winId); } -void fn_1_5880(omObjData *object) +void CameraDebug(omObjData *object) { Vec pos; Vec offset; Vec dir; - Vec y_offset; + Vec yOfs; - f32 z_rot; - s8 stick_pos; + float z_rot; + s8 stickPos; if (HuPadBtn[0] & PAD_BUTTON_UP) { CRot.x += 2.0f; @@ -1274,31 +1273,31 @@ void fn_1_5880(omObjData *object) dir.y = cosd(CRot.x); dir.z = (cosd(CRot.y) * sind(CRot.x)); z_rot = CRot.z; - y_offset.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot)) + yOfs.x = dir.x * (offset.x * offset.x + (1.0f - offset.x * offset.x) * cosd(z_rot)) + dir.y * (offset.x * offset.y * (1.0f - cosd(z_rot)) - offset.z * sind(z_rot)) + dir.z * (offset.x * offset.z * (1.0f - cosd(z_rot)) + offset.y * sind(z_rot)); - y_offset.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot)) + yOfs.y = dir.y * (offset.y * offset.y + (1.0f - offset.y * offset.y) * cosd(z_rot)) + dir.x * (offset.x * offset.y * (1.0f - cosd(z_rot)) + offset.z * sind(z_rot)) + dir.z * (offset.y * offset.z * (1.0f - cosd(z_rot)) - offset.x * sind(z_rot)); - y_offset.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot)) + yOfs.z = dir.z * (offset.z * offset.z + (1.0f - offset.z * offset.z) * cosd(z_rot)) + (dir.x * (offset.x * offset.z * (1.0 - cosd(z_rot)) - offset.y * sind(z_rot)) + dir.y * (offset.y * offset.z * (1.0 - cosd(z_rot)) + offset.x * sind(z_rot))); VECCrossProduct(&dir, &offset, &offset); VECNormalize(&offset, &offset); - stick_pos = (HuPadSubStkX[0] & 0xF8); - if (stick_pos != 0) { - Center.x += 0.05f * (offset.x * stick_pos); - Center.y += 0.05f * (offset.y * stick_pos); - Center.z += 0.05f * (offset.z * stick_pos); + stickPos = (HuPadSubStkX[0] & 0xF8); + if (stickPos != 0) { + Center.x += 0.05f * (offset.x * stickPos); + Center.y += 0.05f * (offset.y * stickPos); + Center.z += 0.05f * (offset.z * stickPos); } - VECNormalize(&y_offset, &offset); - stick_pos = -(HuPadSubStkY[0] & 0xF8); - if (stick_pos != 0) { - Center.x += 0.05f * (offset.x * stick_pos); - Center.y += 0.05f * (offset.y * stick_pos); - Center.z += 0.05f * (offset.z * stick_pos); + VECNormalize(&yOfs, &offset); + stickPos = -(HuPadSubStkY[0] & 0xF8); + if (stickPos != 0) { + Center.x += 0.05f * (offset.x * stickPos); + Center.y += 0.05f * (offset.y * stickPos); + Center.z += 0.05f * (offset.z * stickPos); } } From 64f087c2c901717ff20fb755ed687fb705b2a6e1 Mon Sep 17 00:00:00 2001 From: Liam Coleman Date: Thu, 6 Feb 2025 15:45:43 -0600 Subject: [PATCH 293/311] Gamework struct labeling (#563) * Label most of w01Dll * Add symbols for instdll and resultdll in us * Fix pal symbols for instDll * Build resultdll+symbols for pal * Gamework struct labeling --- include/game/gamework_data.h | 24 ++++++++++++------------ src/REL/mentDll/main.c | 18 +++++------------- src/REL/mgmodedll/main.c | 4 ++-- src/REL/mgmodedll/mgmode.c | 4 ++-- src/REL/modeseldll/filesel.c | 2 +- src/REL/mpexDll/charsel.c | 4 ++-- src/REL/mstory2Dll/ending.c | 8 ++++---- src/REL/mstory2Dll/main.c | 4 ++-- src/REL/mstory3Dll/result.c | 2 +- src/REL/mstory4Dll/main.c | 4 +--- src/REL/mstoryDll/main.c | 4 ++-- src/REL/option/sound.c | 6 +++--- src/REL/ztardll/select.c | 4 ++-- src/game/board/main.c | 2 +- src/game/board/pause.c | 6 +++--- src/game/gamework.c | 6 +++--- 16 files changed, 46 insertions(+), 56 deletions(-) diff --git a/include/game/gamework_data.h b/include/game/gamework_data.h index b3615e85..f26f62dc 100644 --- a/include/game/gamework_data.h +++ b/include/game/gamework_data.h @@ -40,8 +40,8 @@ typedef struct system_state { }; /* 0x09 */ s8 last5_effect; /* 0x0A */ s8 player_curr; -/* 0x0B */ u8 unk0B; -/* 0x0C */ s8 unk0C; +/* 0x0B */ u8 storyCharBit; +/* 0x0C */ s8 storyChar; /* 0x0E */ s16 block_pos; /* 0x10 */ u8 ATTRIBUTE_ALIGN(4) board_data[32]; /* 0x30 */ u8 mess_delay; @@ -137,9 +137,9 @@ typedef struct game_stat { u8 story_continue : 1; u8 party_continue : 1; u8 open_w06 : 1; - u8 field10E_bit4 : 1; - u8 field10E_bit5 : 1; - u8 field10E_bit6 : 1; + u8 veryHardUnlock : 1; + u8 customPackEnable : 1; + u8 musicAllF : 1; }; /* 0x10F */ PauseBackupConfig story_pause; /* 0x110 */ PauseBackupConfig party_pause; @@ -300,11 +300,6 @@ static inline s32 GWSaveModeGet(void) return GWSystem.save_mode; } -static inline s32 GWTurnGet(void) -{ - return GWSystem.turn; -} - static inline s32 GWBoardGet(void) { return GWSystem.board; @@ -315,9 +310,14 @@ static inline s32 GWPlayerCurrGet(void) return GWSystem.player_curr; } -static inline s32 GWUnkB1Get(void) +static inline s32 GWStoryCharGet(void) { - return GWSystem.unk0C; + return GWSystem.storyChar; +} + +static inline void GWStoryCharSet(s32 storyChar) +{ + GWSystem.storyChar = storyChar; } static inline s32 GWPlayerTeamGet(s32 player) diff --git a/src/REL/mentDll/main.c b/src/REL/mentDll/main.c index 3888ccf4..db8375f3 100644 --- a/src/REL/mentDll/main.c +++ b/src/REL/mentDll/main.c @@ -200,8 +200,8 @@ void fn_1_658C(Process *arg0) CharKill(-1); } lbl_1_bss_A8[4] = GWGameStat.open_w06; - lbl_1_bss_A8[5] = GWGameStat.field10E_bit4; - lbl_1_bss_A8[6] = GWGameStat.field10E_bit5; + lbl_1_bss_A8[5] = GWGameStat.veryHardUnlock; + lbl_1_bss_A8[6] = GWGameStat.customPackEnable; switch (lbl_1_bss_A8[0]) { case 0: HuAudSndGrpSetSet(7); @@ -340,11 +340,9 @@ void fn_1_6C4C(void) print8(var_r30, var_r29 + 0xAA, 1.0f, "MODE:%d MAP:%d", lbl_1_bss_A8[0], lbl_1_bss_A8[2]); print8(var_r30, var_r29 + 0xBE, 1.0f, "NO) IDX:GRP:COM:DIF:PAD:CHR"); for (var_r31 = 0; var_r31 < 4; var_r31++) { - s32 spC; - s32 sp8 = lbl_1_bss_3114[var_r31].unk_6C; - spC = lbl_1_bss_3114[var_r31].unk_68; + print8(var_r30, var_r29 + 0xC8 + (var_r31 * 0xA), 1.0f, "%2d) %3d:%3d:%3d:%3d:%3d:%3d", var_r31, lbl_1_bss_3114[var_r31].unk_58, - lbl_1_bss_3114[var_r31].unk_5C, lbl_1_bss_3114[var_r31].unk_60, lbl_1_bss_3114[var_r31].unk_64); + lbl_1_bss_3114[var_r31].unk_5C, lbl_1_bss_3114[var_r31].unk_60, lbl_1_bss_3114[var_r31].unk_64, lbl_1_bss_3114[var_r31].unk_6C, lbl_1_bss_3114[var_r31].unk_68); } print8(var_r30, var_r29 + 0xF0, 1.0f, "NO) FG0:FG1:FG2:FG3"); for (var_r31 = 0; var_r31 < 4; var_r31++) { @@ -2693,12 +2691,6 @@ void fn_1_E71C(s32 arg0) } } -inline void fn_1_E874_inline(void) -{ - s32 sp18 = lbl_1_bss_3114[0].unk_68; - GWSystem.unk0C = sp18; -} - void fn_1_E874(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) { s32 var_r31; @@ -2757,7 +2749,7 @@ void fn_1_E874(omObjData *arg0, MentDllUnkBss35BCStruct *arg1) var_r18 = 0; } BoardStoryConfigSet(var_r24, var_r18); - fn_1_E874_inline(); + GWStoryCharSet(lbl_1_bss_3114[0].unk_68); // looks a bit similar to fn_1_7304 for (var_r31 = 1; var_r31 < 4; var_r31++) { lbl_1_bss_3114[var_r31].unk_68 = -1; diff --git a/src/REL/mgmodedll/main.c b/src/REL/mgmodedll/main.c index dd6b1b72..85db3742 100755 --- a/src/REL/mgmodedll/main.c +++ b/src/REL/mgmodedll/main.c @@ -1075,7 +1075,7 @@ s32 fn_1_1D688(StructBss8_24 *arg0) var_r28 = 0; var_r26 = arg0->unk64; if (HuPadStkX[lbl_1_bss_1E10->unk6C] >= 5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 2)) { - if (GWGameStat.field10E_bit4 == 1) { + if (GWGameStat.veryHardUnlock == 1) { arg0->unk64++; var_r28 = 1; if (arg0->unk64 > 3) { @@ -1091,7 +1091,7 @@ s32 fn_1_1D688(StructBss8_24 *arg0) } } else if (HuPadStkX[lbl_1_bss_1E10->unk6C] <= -5 || (HuPadBtn[lbl_1_bss_1E10->unk6C] & 1)) { - if (GWGameStat.field10E_bit4 == 1) { + if (GWGameStat.veryHardUnlock == 1) { arg0->unk64--; var_r28 = -1; if (arg0->unk64 < 0) { diff --git a/src/REL/mgmodedll/mgmode.c b/src/REL/mgmodedll/mgmode.c index 67b59009..a0e23802 100644 --- a/src/REL/mgmodedll/mgmode.c +++ b/src/REL/mgmodedll/mgmode.c @@ -930,10 +930,10 @@ void fn_1_4010(void) } } if (spA[0] >= 4 && spA[1] >= 3 && spA[2] >= 3 && spA[3] >= 2) { - GWGameStat.field10E_bit5 = 1; + GWGameStat.customPackEnable = 1; } else { - GWGameStat.field10E_bit5 = 0; + GWGameStat.customPackEnable = 0; } pos2D = lbl_1_data_40[2]; pos2D.z = 800; diff --git a/src/REL/modeseldll/filesel.c b/src/REL/modeseldll/filesel.c index ef0bc58f..aa81055f 100644 --- a/src/REL/modeseldll/filesel.c +++ b/src/REL/modeseldll/filesel.c @@ -1859,7 +1859,7 @@ void fn_1_A8C0(s16 boxno) SLLoadBoardStory(); lbl_1_bss_EE[boxno] = GWGameStat.total_stars; lbl_1_bss_D0[boxno] = GWGameStat.create_time; - lbl_1_bss_E8[boxno] = GWSystem.unk0C; + lbl_1_bss_E8[boxno] = GWSystem.storyChar; lbl_1_bss_C4[boxno] = GWGameStat.story_continue; lbl_1_bss_B8[boxno] = GWGameStat.party_continue; if (GWGameStat.story_continue) { diff --git a/src/REL/mpexDll/charsel.c b/src/REL/mpexDll/charsel.c index 180626fa..0c5cac29 100644 --- a/src/REL/mpexDll/charsel.c +++ b/src/REL/mpexDll/charsel.c @@ -2441,7 +2441,7 @@ s32 fn_1_19A98(MpexDllUnkStruct4 *arg0) goto block_2; } } - if (GWGameStat.field10E_bit4 == 1) { + if (GWGameStat.veryHardUnlock == 1) { arg0->unk_54++; var_r28 = 1; if (arg0->unk_54 > 3) { @@ -2457,7 +2457,7 @@ s32 fn_1_19A98(MpexDllUnkStruct4 *arg0) goto block_1; block_2: if (HuPadStkX[lbl_1_bss_45C->unk_58] <= -5 || HuPadBtn[lbl_1_bss_45C->unk_58] & PAD_BUTTON_LEFT) { - if (GWGameStat.field10E_bit4 == 1) { + if (GWGameStat.veryHardUnlock == 1) { arg0->unk_54--; var_r28 = -1; if (arg0->unk_54 < 0) { diff --git a/src/REL/mstory2Dll/ending.c b/src/REL/mstory2Dll/ending.c index c8adbc76..93e9ab8e 100644 --- a/src/REL/mstory2Dll/ending.c +++ b/src/REL/mstory2Dll/ending.c @@ -105,7 +105,7 @@ void fn_1_188F0(Process *arg0, s32 arg1) { lbl_1_bss_B38 = arg0; if (GWSystem.diff_story == 2) { - GWGameStat.field10E_bit4 = TRUE; + GWGameStat.veryHardUnlock = TRUE; } lbl_1_bss_C0C.unk0C = arg1; fn_1_C30(); @@ -298,7 +298,7 @@ void fn_1_19334(void) Hu3DModelAttrSet(lbl_1_bss_B94.unk00->model[1], 1); HuAudSeqFadeOut(lbl_1_bss_78[0], 100); lbl_1_bss_B3C = 2; - GWGameStat.field10E_bit6 = TRUE; + GWGameStat.musicAllF = TRUE; WipeColorSet(0, 0, 0); WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, -1); while (WipeStatGet()) { @@ -406,8 +406,8 @@ void fn_1_199A0(void) HuPrcVSleep(); } fn_1_BE8(60); - var_r28 = GWUnkB1Get(); - GWSystem.unk0B |= 1 << var_r28; + var_r28 = GWStoryCharGet(); + GWSystem.storyCharBit |= 1 << var_r28; if (SLSaveFlagGet() == 1) { HuWinInit(1); HuWinMesMaxSizeGet(1, sp8, MAKE_MESSID(30, 22)); diff --git a/src/REL/mstory2Dll/main.c b/src/REL/mstory2Dll/main.c index c8277e06..77125674 100644 --- a/src/REL/mstory2Dll/main.c +++ b/src/REL/mstory2Dll/main.c @@ -171,7 +171,7 @@ void fn_1_4F4(void) { case 1: for (i = 0; i < 4; i++) { - if (GWPlayerCfg[i].character == GWUnkB1Get()) { + if (GWPlayerCfg[i].character == GWStoryCharGet()) { break; } } @@ -179,7 +179,7 @@ void fn_1_4F4(void) { break; case 2: for (i = 0; i < 4; i++) { - if (GWPlayerCfg[i].character == GWUnkB1Get()) { + if (GWPlayerCfg[i].character == GWStoryCharGet()) { break; } } diff --git a/src/REL/mstory3Dll/result.c b/src/REL/mstory3Dll/result.c index a9104387..737f8b8f 100755 --- a/src/REL/mstory3Dll/result.c +++ b/src/REL/mstory3Dll/result.c @@ -619,7 +619,7 @@ void fn_1_17570(void) { } else { fn_1_159A4(); for (i = 0; i < 4; i++) { - if (lbl_1_bss_1A0C.unk38[i].unk10 != GWUnkB1Get()) { + if (lbl_1_bss_1A0C.unk38[i].unk10 != GWStoryCharGet()) { continue; } _SetFlag(9); diff --git a/src/REL/mstory4Dll/main.c b/src/REL/mstory4Dll/main.c index e5fce452..6a626cb1 100644 --- a/src/REL/mstory4Dll/main.c +++ b/src/REL/mstory4Dll/main.c @@ -575,15 +575,13 @@ void fn_1_13A0(void) GWPlayerCfg[0].character = itemno/6; { s32 i; - s32 character; for(i=1; i<4; i++) { GWPlayerCfg[i].character = GWPlayerCfg[i-1].character+1; if(GWPlayerCfg[i].character > GW_CHARACTER_MAX) { GWPlayerCfg[i].character = 0; } } - character = GWPlayerCfg[0].character; - GWSystem.unk0C = character; + GWStoryCharSet(GWPlayerCfg[0].character); GWPlayer[0].character = GWPlayerCfg[0].character; GWPlayer[1].character = GWPlayerCfg[1].character; GWPlayer[2].character = GWPlayerCfg[2].character; diff --git a/src/REL/mstoryDll/main.c b/src/REL/mstoryDll/main.c index f9eb62d1..7f4f2cb7 100755 --- a/src/REL/mstoryDll/main.c +++ b/src/REL/mstoryDll/main.c @@ -147,7 +147,7 @@ void fn_1_488(void) { switch (omovlevtno) { case 0: for (i = 0; i < 4; i++) { - if (GWPlayerCfg[i].character == GWUnkB1Get()) { + if (GWPlayerCfg[i].character == GWStoryCharGet()) { break; } } @@ -155,7 +155,7 @@ void fn_1_488(void) { break; case 1: for (i = 0; i < 4; i++) { - if (GWPlayerCfg[i].character == GWUnkB1Get()) { + if (GWPlayerCfg[i].character == GWStoryCharGet()) { break; } } diff --git a/src/REL/option/sound.c b/src/REL/option/sound.c index 733a353e..7012bb90 100755 --- a/src/REL/option/sound.c +++ b/src/REL/option/sound.c @@ -513,9 +513,9 @@ omObjData *OptionSoundCreate(void) for (i = 0; i < NUM_BOARDS; i++) { musicPageOn[i + 3] = (GWGameStat.board_play_count[i] != 0) ? TRUE : FALSE; } - musicPageOn[11] = (GWGameStat.field10E_bit6 != 0) ? TRUE : FALSE; - musicPageOn[12] = (GWGameStat.field10E_bit6 != 0) ? TRUE : FALSE; - musicPageOn[13] = (GWGameStat.field10E_bit6 != 0) ? TRUE : FALSE; + musicPageOn[11] = (GWGameStat.musicAllF != 0) ? TRUE : FALSE; + musicPageOn[12] = (GWGameStat.musicAllF != 0) ? TRUE : FALSE; + musicPageOn[13] = (GWGameStat.musicAllF != 0) ? TRUE : FALSE; return object; } diff --git a/src/REL/ztardll/select.c b/src/REL/ztardll/select.c index e8de9216..0076979e 100644 --- a/src/REL/ztardll/select.c +++ b/src/REL/ztardll/select.c @@ -2511,7 +2511,7 @@ s32 fn_1_F214(ZtarDllUnkStruct2 *arg0) var_r28 = 0; var_r26 = arg0->unk_54; if (HuPadStkX[lbl_1_bss_8C[0].unk_58] >= 5 || (HuPadBtn[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_RIGHT)) { - if (GWGameStat.field10E_bit4 == 1) { + if (GWGameStat.veryHardUnlock == 1) { arg0->unk_54++; var_r28 = 1; if (arg0->unk_54 > 3) { @@ -2527,7 +2527,7 @@ s32 fn_1_F214(ZtarDllUnkStruct2 *arg0) } } else if (HuPadStkX[lbl_1_bss_8C[0].unk_58] <= -5 || (HuPadBtn[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_LEFT)) { - if (GWGameStat.field10E_bit4 == 1) { + if (GWGameStat.veryHardUnlock == 1) { arg0->unk_54--; var_r28 = -1; if (arg0->unk_54 < 0) { diff --git a/src/game/board/main.c b/src/game/board/main.c index 68440f98..1ce8c180 100644 --- a/src/game/board/main.c +++ b/src/game/board/main.c @@ -619,7 +619,7 @@ static void CreateBoard(void) s32 guest_status; GWSystem.mg_next = -1; - if(!GWGameStat.field10E_bit5 && GWMGListGet() == 2) { + if(!GWGameStat.customPackEnable && GWMGListGet() == 2) { GWMGListSet(0); } GWMessSpeedSet(GWMessSpeedGet()); diff --git a/src/game/board/pause.c b/src/game/board/pause.c index 34fcc55d..3ca8058a 100755 --- a/src/game/board/pause.c +++ b/src/game/board/pause.c @@ -905,7 +905,7 @@ static void ChangeDiffPadConfig(omObjData *arg0, ConfigWork *arg1) { var_r30 |= 2; } temp_r29 = CheckPort(arg1->unk04); - if (GWGameStat.field10E_bit4 != 0) { + if (GWGameStat.veryHardUnlock != 0) { var_r27 = 4; } else { var_r27 = 3; @@ -962,7 +962,7 @@ static void ChangeDiffPadConfig(omObjData *arg0, ConfigWork *arg1) { arg1->unk09 = 0; } arg1->unk05 += var_r28; - if (GWGameStat.field10E_bit4 == 0 && arg1->unk05 == 4) { + if (GWGameStat.veryHardUnlock == 0 && arg1->unk05 == 4) { arg1->unk05 += var_r28; } if (arg1->unk05 > var_r27) { @@ -1100,7 +1100,7 @@ static s32 UpdatePauseBoxExt(omObjData *arg0, ConfigWork *arg1, s32 arg2) { u32 temp_r28; Mtx sp8; - if (arg2 == 3 && GWGameStat.field10E_bit5 == 0) { + if (arg2 == 3 && GWGameStat.customPackEnable == 0) { var_r27 = 1; } else { var_r27 = 2; diff --git a/src/game/gamework.c b/src/game/gamework.c index 887d977b..0100278f 100644 --- a/src/game/gamework.c +++ b/src/game/gamework.c @@ -112,9 +112,9 @@ static inline void ResetFlag(GameStat *game_stat) game_stat->story_continue = 0; game_stat->party_continue = 0; game_stat->open_w06 = 0; - game_stat->field10E_bit4 = 0; - game_stat->field10E_bit5 = 0; - game_stat->field10E_bit6 = 0; + game_stat->veryHardUnlock = 0; + game_stat->customPackEnable = 0; + game_stat->musicAllF = 0; } static inline void ResetPauseConfig(GameStat *game_stat) From 66a9a044fa761e098db8d7b369e8b3c8ab1535d0 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Fri, 7 Feb 2025 06:48:22 -0800 Subject: [PATCH 294/311] Making some TRK progress (#564) --- config/GMPE01_00/symbols.txt | 2 +- configure.py | 15 +- include/PowerPC_EABI_Support/MetroTRK/trk.h | 3 + .../MetroTRK/Portable/msg.h | 2 +- .../MetroTRK/Portable/msgbuf.h | 2 +- src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c | 184 ++++++++++++------ src/TRK_MINNOW_DOLPHIN/msg.c | 56 +++++- src/TRK_MINNOW_DOLPHIN/msgbuf.c | 10 +- src/TRK_MINNOW_DOLPHIN/msghndlr.c | 155 +++++++++------ src/TRK_MINNOW_DOLPHIN/mslsupp.c | 112 +++++++++++ src/TRK_MINNOW_DOLPHIN/target_options.c | 11 ++ src/TRK_MINNOW_DOLPHIN/usr_put.c | 21 ++ 12 files changed, 434 insertions(+), 139 deletions(-) create mode 100755 src/TRK_MINNOW_DOLPHIN/mslsupp.c create mode 100755 src/TRK_MINNOW_DOLPHIN/target_options.c diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 43ae5aae..d2b64397 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -3668,7 +3668,7 @@ atanhi = .rodata:0x8011E9B8; // type:object size:0x20 scope:local atanlo = .rodata:0x8011E9D8; // type:object size:0x20 scope:local aT = .rodata:0x8011E9F8; // type:object size:0x58 scope:local @62 = .rodata:0x8011EA50; // type:object size:0x1C scope:local data:string -lbl_8011EA70 = .rodata:0x8011EA70; // type:object size:0x20 +lbl_8011EA70 = .rodata:0x8011EA70; // type:object size:0x1D data:string gTRKMemMap = .rodata:0x8011EA90; // type:object size:0x10 data:4byte lbl_8011EAA0 = .rodata:0x8011EAA0; // type:object size:0x28 data:4byte lbl_8011EAC8 = .rodata:0x8011EAC8; // type:object size:0x28 data:4byte diff --git a/configure.py b/configure.py index 1e740726..bcccf9c6 100644 --- a/configure.py +++ b/configure.py @@ -238,12 +238,11 @@ cflags_msl = [ cflags_trk = [ *cflags_base, "-use_lmw_stmw on", - "-str reuse,pool,readonly", + "-str reuse,readonly", "-common off", "-sdata 0", "-sdata2 0", "-inline auto,deferred", - "-pool off", "-enum min", "-sdatathreshold 0" ] @@ -742,12 +741,12 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mainloop.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/nubevent.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/nubinit.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/msg.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/msgbuf.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/msg.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/msgbuf.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/serpoll.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/usr_put.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/usr_put.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/dispatch.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/msghndlr.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/msghndlr.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/support.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mutex_TRK.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/notify.c"), @@ -761,8 +760,8 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/main_TRK.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/targcont.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/target_options.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/mslsupp.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/target_options.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mslsupp.c"), ], }, MusyX( diff --git a/include/PowerPC_EABI_Support/MetroTRK/trk.h b/include/PowerPC_EABI_Support/MetroTRK/trk.h index c8814672..66b36f3b 100644 --- a/include/PowerPC_EABI_Support/MetroTRK/trk.h +++ b/include/PowerPC_EABI_Support/MetroTRK/trk.h @@ -254,6 +254,9 @@ typedef struct ProcessorRestoreFlags_PPC { void TRKSaveExtended1Block(); +void SetUseSerialIO(u8); +u8 GetUseSerialIO(void); + #define SPR_XER 1 #define SPR_LR 8 #define SPR_CTR 9 diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h index 8433ef8d..2dc2dff8 100644 --- a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msg.h @@ -8,7 +8,7 @@ typedef struct _TRK_Msg { u8 _00[8]; u32 m_msgLength; u32 _0C; - u32 m_msg; + u8 m_msg[4]; // TODO: unknown array length } TRK_Msg; #ifdef __cplusplus diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h index 770d3886..f16fe261 100644 --- a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msgbuf.h @@ -12,7 +12,7 @@ DSError TRKInitializeMessageBuffers(void); DSError TRKSetBufferPosition(TRKBuffer* msg, u32 pos); void* TRKGetBuffer(int); -void TRKResetBuffer(TRKBuffer* msg, BOOL keepData); +void TRKResetBuffer(TRKBuffer* msg, u8 keepData); void* TRKGetBuffer(int idx); void TRKReleaseBuffer(int idx); DSError TRKGetFreeBuffer(int* msgID, TRKBuffer** outMsg); diff --git a/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c b/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c index 9a55362b..9fbb6aeb 100644 --- a/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c +++ b/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c @@ -4,84 +4,95 @@ #include "amcstubs/AmcExi2Stubs.h" #include "PowerPC_EABI_Support/MetroTRK/trk.h" +#define BUFF_LEN 4362 + +u8 gWriteBuf[BUFF_LEN]; +u8 gReadBuf[BUFF_LEN]; +s32 _MetroTRK_Has_Framing; +s32 gReadCount; +s32 gReadPos; +s32 gWritePos; + DBCommTable gDBCommTable = {}; asm void TRKLoadContext(OSContext* ctx, u32) { #ifdef __MWERKS__ // clang-format off - nofralloc - lwz r0, OSContext.gpr[0](r3) - lwz r1, OSContext.gpr[1](r3) - lwz r2, OSContext.gpr[2](r3) - lhz r5, OSContext.state(r3) - rlwinm. r6, r5, 0, 0x1e, 0x1e - beq lbl_80371C1C - rlwinm r5, r5, 0, 0x1f, 0x1d - sth r5, OSContext.state(r3) - lmw r5, OSContext.gpr[5](r3) - b lbl_80371C20 + nofralloc + lwz r0, OSContext.gpr[0](r3) + lwz r1, OSContext.gpr[1](r3) + lwz r2, OSContext.gpr[2](r3) + lhz r5, OSContext.state(r3) + rlwinm. r6, r5, 0, 0x1e, 0x1e + beq lbl_80371C1C + rlwinm r5, r5, 0, 0x1f, 0x1d + sth r5, OSContext.state(r3) + lmw r5, OSContext.gpr[5](r3) + b lbl_80371C20 lbl_80371C1C: - lmw r13, OSContext.gpr[13](r3) + lmw r13, OSContext.gpr[13](r3) lbl_80371C20: - mr r31, r3 - mr r3, r4 - lwz r4, OSContext.cr(r31) - mtcrf 0xff, r4 - lwz r4, OSContext.lr(r31) - mtlr r4 - lwz r4, OSContext.ctr(r31) - mtctr r4 - lwz r4, OSContext.xer(r31) - mtxer r4 - mfmsr r4 - rlwinm r4, r4, 0, 0x11, 0xf //Turn off external exceptions - rlwinm r4, r4, 0, 0x1f, 0x1d //Turn off recoverable exception flag - mtmsr r4 - mtsprg 1, r2 - lwz r4, OSContext.gpr[3](r31) - mtsprg 2, r4 - lwz r4, OSContext.gpr[4](r31) - mtsprg 3, r4 - lwz r2, OSContext.srr0(r31) - lwz r4, OSContext.srr1(r31) - lwz r31, OSContext.gpr[31](r31) - b TRKInterruptHandler + mr r31, r3 + mr r3, r4 + lwz r4, OSContext.cr(r31) + mtcrf 0xff, r4 + lwz r4, OSContext.lr(r31) + mtlr r4 + lwz r4, OSContext.ctr(r31) + mtctr r4 + lwz r4, OSContext.xer(r31) + mtxer r4 + mfmsr r4 + rlwinm r4, r4, 0, 0x11, 0xf //Turn off external exceptions + rlwinm r4, r4, 0, 0x1f, 0x1d //Turn off recoverable exception flag + mtmsr r4 + mtsprg 1, r2 + lwz r4, OSContext.gpr[3](r31) + mtsprg 2, r4 + lwz r4, OSContext.gpr[4](r31) + mtsprg 3, r4 + lwz r2, OSContext.srr0(r31) + lwz r4, OSContext.srr1(r31) + lwz r31, OSContext.gpr[31](r31) + b TRKInterruptHandler #endif // clang-format on } void TRKEXICallBack(__OSInterrupt param_0, OSContext* ctx) { - OSEnableScheduler(); - TRKLoadContext(ctx, 0x500); + OSEnableScheduler(); + TRKLoadContext(ctx, 0x500); } int InitMetroTRKCommTable(int hwId) { - int result; + int result; - if (hwId == HARDWARE_GDEV) { - result = Hu_IsStub(); + if (hwId == HARDWARE_GDEV) { + OSReport("MetroTRK : Set to GDEV hardware\n"); + result = Hu_IsStub(); - gDBCommTable.initialize_func = DBInitComm; - gDBCommTable.init_interrupts_func = DBInitInterrupts; - gDBCommTable.peek_func = DBQueryData; - gDBCommTable.read_func = DBRead; - gDBCommTable.write_func = DBWrite; - gDBCommTable.open_func = DBOpen; - gDBCommTable.close_func = DBClose; - } else { - result = AMC_IsStub(); + gDBCommTable.initialize_func = DBInitComm; + gDBCommTable.init_interrupts_func = DBInitInterrupts; + gDBCommTable.peek_func = DBQueryData; + gDBCommTable.read_func = DBRead; + gDBCommTable.write_func = DBWrite; + gDBCommTable.open_func = DBOpen; + gDBCommTable.close_func = DBClose; + } else { + OSReport("MetroTRK : Set to AMC DDH hardware\n"); + result = AMC_IsStub(); - gDBCommTable.initialize_func = EXI2_Init; - gDBCommTable.init_interrupts_func = EXI2_EnableInterrupts; - gDBCommTable.peek_func = EXI2_Poll; - gDBCommTable.read_func = EXI2_ReadN; - gDBCommTable.write_func = EXI2_WriteN; - gDBCommTable.open_func = EXI2_Reserve; - gDBCommTable.close_func = EXI2_Unreserve; - } + gDBCommTable.initialize_func = EXI2_Init; + gDBCommTable.init_interrupts_func = EXI2_EnableInterrupts; + gDBCommTable.peek_func = EXI2_Poll; + gDBCommTable.read_func = EXI2_ReadN; + gDBCommTable.write_func = EXI2_WriteN; + gDBCommTable.open_func = EXI2_Reserve; + gDBCommTable.close_func = EXI2_Unreserve; + } - return result; + return result; } void TRKUARTInterruptHandler() { } @@ -89,8 +100,8 @@ void TRKUARTInterruptHandler() { } DSError TRKInitializeIntDrivenUART(u32 param_0, u32 param_1, u32 param_2, volatile u8** param_3) { - gDBCommTable.initialize_func(param_3, TRKEXICallBack); - return DS_NoError; + gDBCommTable.initialize_func(param_3, TRKEXICallBack); + return DS_NoError; } void EnableEXI2Interrupts(void) { gDBCommTable.init_interrupts_func(); } @@ -99,14 +110,59 @@ int TRKPollUART(void) { return gDBCommTable.peek_func(); } UARTError TRKReadUARTN(void* bytes, u32 length) { - int readErr = gDBCommTable.read_func(bytes, length); - return readErr == 0 ? 0 : -1; + int readErr = gDBCommTable.read_func(bytes, length); + return readErr == 0 ? 0 : -1; } UARTError TRKWriteUARTN(const void* bytes, u32 length) { - int writeErr = gDBCommTable.write_func(bytes, length); - return writeErr == 0 ? 0 : -1; + int writeErr = gDBCommTable.write_func(bytes, length); + return writeErr == 0 ? 0 : -1; +} + +UARTError WriteUARTFlush(void) +{ + UARTError readErr = 0; + + while (gWritePos < 0x800) { + gWriteBuf[gWritePos] = 0; + gWritePos++; + } + if (gWritePos != 0) { + readErr = TRKWriteUARTN(gWriteBuf, gWritePos); + gWritePos = 0; + } + return readErr; +} + +UARTError WriteUART1(u8 arg0) +{ + gWriteBuf[gWritePos++] = arg0; + return 0; +} + +UARTError TRKReadUARTPoll(u8* arg0) +{ + UARTError readErr = 4; + + if (gReadPos >= gReadCount) { + gReadPos = 0; + gReadCount = TRKPollUART(); + if (gReadCount > 0) { + if (gReadCount > BUFF_LEN) { + gReadCount = BUFF_LEN; + } + readErr = TRKReadUARTN(gReadBuf, gReadCount); + if (readErr != 0) { + gReadCount = 0; + } + } + } + if (gReadPos < gReadCount) { + *arg0 = gReadBuf[gReadPos++]; + readErr = 0; + } + return readErr; } void ReserveEXI2Port(void) { gDBCommTable.open_func(); } diff --git a/src/TRK_MINNOW_DOLPHIN/msg.c b/src/TRK_MINNOW_DOLPHIN/msg.c index 0ae376eb..09f5de11 100644 --- a/src/TRK_MINNOW_DOLPHIN/msg.c +++ b/src/TRK_MINNOW_DOLPHIN/msg.c @@ -2,8 +2,60 @@ #include "TRK_MINNOW_DOLPHIN/Os/dolphin/dolphin_trk_glue.h" #include "PowerPC_EABI_Support/MetroTRK/trk.h" +// Incorrect signature? Should be u8. +UARTError WriteUART1(s8 arg0); + DSError TRKMessageSend(TRK_Msg* msg) { - DSError write_err = TRKWriteUARTN(&msg->m_msg, msg->m_msgLength); - return DS_NoError; + u8 var_r30; + u8 var_r28; + u8 var_r28_2; + s32 var_r3; + s32 i; + + var_r30 = 0; + for (i = 0; i < msg->m_msgLength; i++) { + var_r30 = var_r30 + msg->m_msg[i]; + } + var_r30 = var_r30 ^ 0xFF; + var_r3 = WriteUART1(0x7E); + if (var_r3 == 0) { + for (i = 0; i < msg->m_msgLength; i++) { + var_r28 = msg->m_msg[i]; + if (var_r28 == 0x7E || var_r28 == 0x7D) { + var_r3 = WriteUART1(0x7D); + var_r28 ^= 0x20; + if (var_r3 != 0) { + break; + } + } + var_r3 = WriteUART1(var_r28); + if (var_r3 != 0) { + break; + } + } + } + if (var_r3 == 0) { + var_r28_2 = var_r30; + for (i = 0; i < 1; i++) { + if (var_r28_2 == 0x7E || var_r28_2 == 0x7D) { + var_r3 = WriteUART1(0x7D); + var_r28_2 ^= 0x20; + if (var_r3 != 0) { + break; + } + } + var_r3 = WriteUART1(var_r28_2); + if (var_r3 != 0) { + break; + } + } + } + if (var_r3 == 0) { + var_r3 = WriteUART1(0x7E); + } + if (var_r3 == 0) { + var_r3 = WriteUARTFlush(); + } + return var_r3; } diff --git a/src/TRK_MINNOW_DOLPHIN/msgbuf.c b/src/TRK_MINNOW_DOLPHIN/msgbuf.c index 8eb7031c..71702e8c 100644 --- a/src/TRK_MINNOW_DOLPHIN/msgbuf.c +++ b/src/TRK_MINNOW_DOLPHIN/msgbuf.c @@ -34,7 +34,7 @@ DSError TRKGetFreeBuffer(int* msgID, TRKBuffer** outMsg) TRKAcquireMutex(buf); if (!buf->isInUse) { - TRKResetBuffer(buf, TRUE); + TRKResetBuffer(buf, 1); TRKSetBufferUsed(buf, TRUE); error = DS_NoError; *outMsg = buf; @@ -44,6 +44,10 @@ DSError TRKGetFreeBuffer(int* msgID, TRKBuffer** outMsg) TRKReleaseMutex(buf); } + if (error == DS_NoMessageBufferAvailable) { + usr_puts_serial("ERROR : No buffer available\n"); + } + return error; } @@ -68,7 +72,7 @@ void TRKReleaseBuffer(int idx) } } -void TRKResetBuffer(TRKBuffer* msg, BOOL keepData) +void TRKResetBuffer(TRKBuffer* msg, u8 keepData) { msg->length = 0; msg->position = 0; @@ -96,6 +100,7 @@ DSError TRKSetBufferPosition(TRKBuffer* msg, u32 pos) return error; } +#pragma dont_inline on DSError TRKAppendBuffer(TRKBuffer* msg, const void* data, size_t length) { DSError error = DS_NoError; // r31 @@ -129,6 +134,7 @@ DSError TRKAppendBuffer(TRKBuffer* msg, const void* data, size_t length) return error; } +#pragma dont_inline reset DSError TRKReadBuffer(TRKBuffer* msg, void* data, size_t length) { diff --git a/src/TRK_MINNOW_DOLPHIN/msghndlr.c b/src/TRK_MINNOW_DOLPHIN/msghndlr.c index 35c91822..c8ede7e7 100644 --- a/src/TRK_MINNOW_DOLPHIN/msghndlr.c +++ b/src/TRK_MINNOW_DOLPHIN/msghndlr.c @@ -45,8 +45,7 @@ DSError TRKStandardACK(TRKBuffer* buffer, MessageCommandID commandID, DSReplyError replyError) { TRKMessageIntoReply(buffer, commandID, replyError); - TRKSendACK(buffer); - return; + return TRKSendACK(buffer); } DSError TRKDoUnsupported(TRKBuffer* buffer) @@ -107,7 +106,6 @@ DSError TRKDoVersions(TRKBuffer* buffer) else error = TRKSendACK(buffer); } - return error; } DSError TRKDoSupportMask(TRKBuffer* buffer) @@ -140,7 +138,7 @@ DSError TRKDoCPUType(TRKBuffer* buffer) if (buffer->length != 1) { error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); - return error; + return; } TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); @@ -166,8 +164,6 @@ DSError TRKDoCPUType(TRKBuffer* buffer) error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_CWDSError); else error = TRKSendACK(buffer); - - return error; } DSError TRKDoReadMemory(TRKBuffer* buffer) @@ -175,11 +171,11 @@ DSError TRKDoReadMemory(TRKBuffer* buffer) DSError error; DSReplyError replyError; u8 tempBuf[0x800]; - u32 length; u32 msg_start; + u32 length; u16 msg_length; - u8 msg_options; u8 msg_command; + u8 msg_options; if (buffer->length != 8) { error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); @@ -257,11 +253,11 @@ DSError TRKDoWriteMemory(TRKBuffer* buffer) DSError error; DSReplyError replyError; u8 tmpBuffer[0x800]; - u32 length; u32 msg_start; + u32 length; u16 msg_length; - u8 msg_options; u8 msg_command; + u8 msg_options; if (buffer->length <= 8) { error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); @@ -343,14 +339,14 @@ DSError TRKDoReadRegisters(TRKBuffer* buffer) DSReplyError replyError; DSMessageRegisterOptions options; u32 registerDataLength; - u16 msg_lastRegister; u16 msg_firstRegister; - u8 msg_options; + u16 msg_lastRegister; u8 msg_command; + u8 msg_options; if (buffer->length != 6) { error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); - return error; + return; } TRKSetBufferPosition(buffer, DSREPLY_NoError); error = TRKReadBuffer1_ui8(buffer, &msg_command); @@ -366,13 +362,13 @@ DSError TRKDoReadRegisters(TRKBuffer* buffer) if (msg_firstRegister > msg_lastRegister) { error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_InvalidRegisterRange); - return error; + return; } if (error == DS_NoError) TRKMessageIntoReply(buffer, DSMSG_ReplyACK, DSREPLY_NoError); - options = (DSMessageRegisterOptions)msg_options; + options = (DSMessageRegisterOptions)(msg_options & 7); switch (options) { case DSREG_Default: error = TRKTargetAccessDefault(msg_firstRegister, msg_lastRegister, @@ -423,8 +419,6 @@ DSError TRKDoReadRegisters(TRKBuffer* buffer) } else { error = TRKSendACK(buffer); } - - return error; } DSError TRKDoWriteRegisters(TRKBuffer* buffer) @@ -433,14 +427,14 @@ DSError TRKDoWriteRegisters(TRKBuffer* buffer) DSReplyError replyError; DSMessageRegisterOptions options; u32 registerDataLength; - u16 msg_lastRegister; u16 msg_firstRegister; - u8 msg_options; + u16 msg_lastRegister; u8 msg_command; + u8 msg_options; if (buffer->length <= 6) { error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); - return error; + return; } TRKSetBufferPosition(buffer, DSREPLY_NoError); error = TRKReadBuffer1_ui8(buffer, &msg_command); @@ -456,7 +450,7 @@ DSError TRKDoWriteRegisters(TRKBuffer* buffer) if (msg_firstRegister > msg_lastRegister) { error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_InvalidRegisterRange); - return error; + return; } options = (DSMessageRegisterOptions)msg_options; @@ -516,22 +510,20 @@ DSError TRKDoWriteRegisters(TRKBuffer* buffer) } else { error = TRKSendACK(buffer); } - - return error; } DSError TRKDoFlushCache(TRKBuffer* buffer) { DSError error; DSReplyError replyErr; - u32 msg_end; u32 msg_start; - u8 msg_options; + u32 msg_end; u8 msg_command; + u8 msg_options; if (buffer->length != 10) { error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); - return error; + return; } TRKSetBufferPosition(buffer, DSREPLY_NoError); @@ -546,7 +538,7 @@ DSError TRKDoFlushCache(TRKBuffer* buffer) if (msg_start > msg_end) { error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_InvalidMemoryRange); - return error; + return; } if (error == DS_NoError) @@ -570,8 +562,6 @@ DSError TRKDoFlushCache(TRKBuffer* buffer) } else { error = TRKSendACK(buffer); } - - return error; } DSError TRKDoContinue(TRKBuffer* buffer) @@ -581,14 +571,12 @@ DSError TRKDoContinue(TRKBuffer* buffer) error = TRKTargetStopped(); if (error == DS_NoError) { error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NotStopped); - return error; + return; } error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NoError); if (error == DS_NoError) error = TRKTargetContinue(); - - return error; } DSError TRKDoStep(TRKBuffer* buffer) @@ -601,8 +589,10 @@ DSError TRKDoStep(TRKBuffer* buffer) u32 msg_rangeEnd; u32 pc; - if (buffer->length < 3) - return TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + if (buffer->length < 3) { + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + return; + } TRKSetBufferPosition(buffer, DSREPLY_NoError); @@ -618,12 +608,14 @@ DSError TRKDoStep(TRKBuffer* buffer) if (msg_count >= 1) { break; } - return TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_ParameterError); + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_ParameterError); + return; case DSSTEP_IntoRange: case DSSTEP_OverRange: - if (buffer->length != 10) - return TRKStandardACK(buffer, DSMSG_ReplyACK, - DSREPLY_PacketSizeError); + if (buffer->length != 10) { + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_PacketSizeError); + return; + } if (error == DS_NoError) error = TRKReadBuffer1_ui32(buffer, &msg_rangeStart); @@ -634,33 +626,33 @@ DSError TRKDoStep(TRKBuffer* buffer) if (pc >= msg_rangeStart && pc <= msg_rangeEnd) { break; } - return TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_ParameterError); + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_ParameterError); + return; default: - return TRKStandardACK(buffer, DSMSG_ReplyACK, - DSREPLY_UnsupportedOptionError); + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_UnsupportedOptionError); + return; } if (!TRKTargetStopped()) { - return TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NotStopped); - } else { - error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NoError); - if (error == DS_NoError) - switch (msg_options) { - case DSSTEP_IntoCount: - case DSSTEP_OverCount: - error = TRKTargetSingleStep(msg_count, - (msg_options == DSSTEP_OverCount)); - break; - case DSSTEP_IntoRange: - case DSSTEP_OverRange: - error = TRKTargetStepOutOfRange( - msg_rangeStart, msg_rangeEnd, - (msg_options == DSSTEP_OverRange)); - break; - } - - return error; + TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NotStopped); + return; } + + error = TRKStandardACK(buffer, DSMSG_ReplyACK, DSREPLY_NoError); + if (error == DS_NoError) + switch (msg_options) { + case DSSTEP_IntoCount: + case DSSTEP_OverCount: + error = TRKTargetSingleStep(msg_count, + (msg_options == DSSTEP_OverCount)); + break; + case DSSTEP_IntoRange: + case DSSTEP_OverRange: + error = TRKTargetStepOutOfRange( + msg_rangeStart, msg_rangeEnd, + (msg_options == DSSTEP_OverRange)); + break; + } } DSError TRKDoStop(TRKBuffer* b) @@ -687,3 +679,46 @@ DSError TRKDoStop(TRKBuffer* b) return TRKStandardACK(b, DSMSG_ReplyACK, replyError); } + +DSError TRKDoSetOption(TRKBuffer* buffer) { + DSError error; + u8 spA; + u8 sp9; + u8 sp8; + + spA = 0; + sp9 = 0; + sp8 = 0; + TRKSetBufferPosition(buffer, DSREPLY_NoError); + error = TRKReadBuffer1_ui8(buffer, &spA); + if (error == DS_NoError) { + error = TRKReadBuffer1_ui8(buffer, &sp9); + } + if (error == DS_NoError) { + error = TRKReadBuffer1_ui8(buffer, &sp8); + } + if (error != DS_NoError) { + TRKResetBuffer(buffer, 1); + if (buffer->position < 0x880) { + buffer->data[buffer->position++] = 0x80; + buffer->length++; + } + if (buffer->position < 0x880) { + buffer->data[buffer->position++] = 1; + buffer->length++; + } + TRKSendACK(buffer); + } else if (sp9 == 1) { + SetUseSerialIO(sp8); + } + TRKResetBuffer(buffer, 1); + if (buffer->position < 0x880) { + buffer->data[buffer->position++] = 0x80; + buffer->length++; + } + if (buffer->position < 0x880) { + buffer->data[buffer->position++] = 0; + buffer->length++; + } + return TRKSendACK(buffer); +} diff --git a/src/TRK_MINNOW_DOLPHIN/mslsupp.c b/src/TRK_MINNOW_DOLPHIN/mslsupp.c new file mode 100755 index 00000000..cbcfc85f --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/mslsupp.c @@ -0,0 +1,112 @@ +#include "PowerPC_EABI_Support/MetroTRK/trk.h" +#include + +// forward declares +DSIOResult __read_file(u32 handle, u8* buffer, size_t* count, void* ref_con); +DSIOResult __write_file(u32 handle, u8* buffer, size_t* count, void* ref_con); +DSIOResult __access_file(u32 handle, u8* buffer, size_t* count, void* ref_con, MessageCommandID cmd); + +/** + * @note Address: 0x800C0B4C + * @note Size: 0xBC + */ +DSIOResult __read_console(u32 handle, u8* buffer, size_t* count, void* ref_con) +{ + if (GetUseSerialIO() == 0) { + return DS_IOError; + } + return __read_file(DS_Stdin, buffer, count, ref_con); +} + +/** + * @note Address: 0x800C0A90 + * @note Size: 0xBC + */ +DSIOResult __TRK_write_console(u32 handle, u8* buffer, size_t* count, void* ref_con) +{ + if (GetUseSerialIO() == 0) { + return DS_IOError; + } + return __write_file(DS_Stdout, buffer, count, ref_con); +} + +/** + * @note Address: N/A + * @note Size: 0xB4 + */ +DSIOResult __read_file(u32 handle, u8* buffer, size_t* count, void* ref_con) +{ + return __access_file(handle, buffer, count, ref_con, DSMSG_ReadFile); +} + +/** + * @note Address: N/A + * @note Size: 0xB4 + */ +DSIOResult __write_file(u32 handle, u8* buffer, size_t* count, void* ref_con) +{ + return __access_file(handle, buffer, count, ref_con, DSMSG_WriteFile); +} + +/** + * @note Address: N/A + * @note Size: 0x17C + */ +void __open_file(void) +{ + // UNUSED FUNCTION +} + +/** + * @note Address: N/A + * @note Size: 0xDC + */ +void __position_file(void) +{ + // UNUSED FUNCTION +} + +/** + * @note Address: N/A + * @note Size: 0xE0 + */ +void convertFileMode(void) +{ + // UNUSED FUNCTION +} + +/** + * @note Address: N/A + * @note Size: 0xC0 + */ +DSIOResult __access_file(u32 handle, u8* buffer, size_t* count, void* ref_con, MessageCommandID cmd) +{ + size_t countTemp; + u32 r0; + + if (GetTRKConnected() == DS_NoError) { + return DS_IOError; + } + + countTemp = *count; + r0 = TRKAccessFile(cmd, handle, &countTemp, buffer); + *count = countTemp; + + switch ((u8)r0) { + case DS_IONoError: + return DS_IONoError; + case DS_IOEOF: + return DS_IOEOF; + } + + return DS_IOError; +} + +/** + * @note Address: N/A + * @note Size: 0x1D0 + */ +void __open_temp_file(void) +{ + // UNUSED FUNCTION +} diff --git a/src/TRK_MINNOW_DOLPHIN/target_options.c b/src/TRK_MINNOW_DOLPHIN/target_options.c new file mode 100755 index 00000000..22cc3e98 --- /dev/null +++ b/src/TRK_MINNOW_DOLPHIN/target_options.c @@ -0,0 +1,11 @@ +#include "PowerPC_EABI_Support/MetroTRK/trk.h" + +static u8 bUseSerialIO; + +void SetUseSerialIO(u8 sio) { + bUseSerialIO = sio; +} + +u8 GetUseSerialIO(void) { + return bUseSerialIO; +} diff --git a/src/TRK_MINNOW_DOLPHIN/usr_put.c b/src/TRK_MINNOW_DOLPHIN/usr_put.c index eda11e06..7ba2dc21 100644 --- a/src/TRK_MINNOW_DOLPHIN/usr_put.c +++ b/src/TRK_MINNOW_DOLPHIN/usr_put.c @@ -2,4 +2,25 @@ #include "TRK_MINNOW_DOLPHIN/MetroTRK/Portable/msghndlr.h" #include "PowerPC_EABI_Support/MetroTRK/trk.h" +BOOL usr_puts_serial(const char* msg) +{ + BOOL connect_ = FALSE; + char c; + char buf[2]; + + while (!connect_ && (c = *msg++) != '\0') { + BOOL connect = GetTRKConnected(); + + buf[0] = c; + buf[1] = '\0'; + + SetTRKConnected(FALSE); + OSReport(buf); + + SetTRKConnected(connect); + connect_ = FALSE; + } + return connect_; +} + void usr_put_initialize(void) { } From 23b7af3bc59782cc0d4120e3fa994caaa1c583ea Mon Sep 17 00:00:00 2001 From: mrshigure Date: Mon, 10 Feb 2025 19:49:23 -0800 Subject: [PATCH 295/311] TRK: matched serpoll and support; and making more progress (#565) --- configure.py | 4 +- .../MetroTRK/Portable/support.h | 8 +- .../ppc/Generic/mpc_7xx_603e.h | 2 +- src/TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c | 2 +- src/TRK_MINNOW_DOLPHIN/serpoll.c | 161 +- src/TRK_MINNOW_DOLPHIN/support.c | 113 +- src/TRK_MINNOW_DOLPHIN/targimpl.c | 1622 +++++++++-------- 7 files changed, 1053 insertions(+), 859 deletions(-) diff --git a/configure.py b/configure.py index bcccf9c6..dfc33f8c 100644 --- a/configure.py +++ b/configure.py @@ -743,11 +743,11 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/nubinit.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/msg.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/msgbuf.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/serpoll.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/serpoll.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/usr_put.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/dispatch.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/msghndlr.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/support.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/support.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mutex_TRK.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/notify.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/flush_cache.c"), diff --git a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.h b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.h index 5f8e9fbc..f2b2913d 100644 --- a/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.h +++ b/include/TRK_MINNOW_DOLPHIN/MetroTRK/Portable/support.h @@ -15,12 +15,12 @@ DSError TRKRequestSend(TRKBuffer* msgBuf, int* bufferId, u32 p1, u32 p2, int p3); DSError HandleOpenFileSupportRequest(const char* path, u8 replyError, - u32* param_3, DSIOResult* ioResult); + u32* param_3, u8* ioResult); -DSError HandleCloseFileSupportRequest(int replyError, DSIOResult* ioResult); +DSError HandleCloseFileSupportRequest(int replyError, u8* ioResult); -DSError HandlePositionFileSupportRequest(DSReplyError replyErr, u32* param_2, - u8 param_3, DSIOResult* ioResult); +DSError HandlePositionFileSupportRequest(u32 replyErr, u32* param_2, + u8 param_3, u8* ioResult); #ifdef __cplusplus } diff --git a/include/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.h b/include/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.h index ec764776..e29725fb 100644 --- a/include/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.h +++ b/include/TRK_MINNOW_DOLPHIN/ppc/Generic/mpc_7xx_603e.h @@ -7,7 +7,7 @@ extern "C" { #endif -u32 TRKTargetCPUMinorType(void); +u8 TRKTargetCPUMinorType(void); #ifdef __cplusplus } diff --git a/src/TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c b/src/TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c index 04d4d3a9..921aa79d 100644 --- a/src/TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c +++ b/src/TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c @@ -245,4 +245,4 @@ lbl_8037149C: #endif // clang-format on } -u32 TRKTargetCPUMinorType(void) { return 0x54; } +u8 TRKTargetCPUMinorType(void) { return 0x54; } diff --git a/src/TRK_MINNOW_DOLPHIN/serpoll.c b/src/TRK_MINNOW_DOLPHIN/serpoll.c index 831644fa..c21fde38 100644 --- a/src/TRK_MINNOW_DOLPHIN/serpoll.c +++ b/src/TRK_MINNOW_DOLPHIN/serpoll.c @@ -9,74 +9,133 @@ static TRKFramingState gTRKFramingState; void* gTRKInputPendingPtr; -MessageBufferID TRKTestForPacket() -{ - int bytes; - int batch; - int err; - TRKBuffer* b; - int id; +static inline BOOL serpoll_inline_00(TRKBuffer* buffer) { + if (buffer->length < 2) { + TRKStandardACK(buffer, DSMSG_ReplyNAK, DSREPLY_PacketSizeError); + if (gTRKFramingState.msgBufID != -1) { + TRKReleaseBuffer(gTRKFramingState.msgBufID); + gTRKFramingState.msgBufID = -1; + } + gTRKFramingState.buffer = NULL; + gTRKFramingState.receiveState = DSRECV_Wait; + return FALSE; + } + buffer->position = 0; + buffer->length--; + return TRUE; +} - bytes = TRKPollUART(); - if (bytes > 0) { - TRKGetFreeBuffer(&id, &b); - if (bytes > TRKMSGBUF_SIZE) { - for (; bytes > 0; bytes -= batch) { - batch = bytes > TRKMSGBUF_SIZE ? TRKMSGBUF_SIZE : bytes; - TRKReadUARTN(b->data, batch); - } - TRKStandardACK(b, 0xff, 6); - } else { - err = TRKReadUARTN(b->data, bytes); - if (err == 0) { - b->length = bytes; - return id; - } - } - } - if (id != -1) { - TRKReleaseBuffer(id); - } - return -1; +MessageBufferID TRKTestForPacket(void) { + s32 var_r29; + s32 var_r3; + s8 sp8; + s32 temp_r3; + + var_r29 = 0; + var_r3 = TRKReadUARTPoll(&sp8); + while (var_r3 == 0 && var_r29 == 0) { + if (gTRKFramingState.receiveState != DSRECV_InFrame) { + gTRKFramingState.isEscape = FALSE; + } + switch (gTRKFramingState.receiveState) { + case DSRECV_Wait: + if (sp8 == 0x7E) { + var_r29 = TRKGetFreeBuffer(&gTRKFramingState.msgBufID, &gTRKFramingState.buffer); + gTRKFramingState.fcsType = 0; + gTRKFramingState.receiveState = DSRECV_Found; + } + break; + case DSRECV_Found: + if (sp8 == 0x7E) { + break; + } + gTRKFramingState.receiveState = DSRECV_InFrame; + /* fallthrough */ + case DSRECV_InFrame: + if (sp8 == 0x7E) { + if (gTRKFramingState.isEscape) { + TRKStandardACK(gTRKFramingState.buffer, DSMSG_ReplyNAK, DSREPLY_EscapeError); + if (gTRKFramingState.msgBufID != -1) { + TRKReleaseBuffer(gTRKFramingState.msgBufID); + gTRKFramingState.msgBufID = -1; + } + gTRKFramingState.buffer = NULL; + gTRKFramingState.receiveState = DSRECV_Wait; + break; + } + if (serpoll_inline_00(gTRKFramingState.buffer)) { + temp_r3 = gTRKFramingState.msgBufID; + gTRKFramingState.msgBufID = -1; + gTRKFramingState.buffer = NULL; + gTRKFramingState.receiveState = DSRECV_Wait; + return temp_r3; + } + gTRKFramingState.receiveState = DSRECV_Wait; + } else { + if (gTRKFramingState.isEscape) { + sp8 ^= 0x20; + gTRKFramingState.isEscape = FALSE; + } else if (sp8 == 0x7D) { + gTRKFramingState.isEscape = TRUE; + break; + } + var_r29 = TRKAppendBuffer1_ui8(gTRKFramingState.buffer, sp8); + gTRKFramingState.fcsType += sp8; + } + break; + case DSRECV_FrameOverflow: + if (sp8 == 0x7E) { + if (gTRKFramingState.msgBufID != -1) { + TRKReleaseBuffer(gTRKFramingState.msgBufID); + gTRKFramingState.msgBufID = -1; + } + gTRKFramingState.buffer = NULL; + gTRKFramingState.receiveState = DSRECV_Wait; + } + break; + } + var_r3 = TRKReadUARTPoll(&sp8); + } + return -1; } void TRKGetInput(void) { - MessageBufferID id; - TRKBuffer* msgBuffer; - u8 command; + TRKBuffer* msgBuffer; + MessageBufferID id; + u8 command; - id = TRKTestForPacket(); - if (id == -1) - return; + id = TRKTestForPacket(); + if (id == -1) + return; - msgBuffer = TRKGetBuffer(id); - TRKSetBufferPosition(msgBuffer, 0); - TRKReadBuffer1_ui8(msgBuffer, &command); - if (command < DSMSG_ReplyACK) { - TRKProcessInput(id); - } else { - TRKReleaseBuffer(id); - } + msgBuffer = TRKGetBuffer(id); + TRKSetBufferPosition(msgBuffer, 0); + TRKReadBuffer1_ui8(msgBuffer, &command); + if (command < DSMSG_ReplyACK) { + TRKProcessInput(id); + } else { + TRKReleaseBuffer(id); + } } void TRKProcessInput(int bufferIdx) { - TRKEvent event; + TRKEvent event; - TRKConstructEvent(&event, NUBEVENT_Request); - gTRKFramingState.msgBufID = -1; - event.msgBufID = bufferIdx; - TRKPostEvent(&event); + TRKConstructEvent(&event, NUBEVENT_Request); + gTRKFramingState.msgBufID = -1; + event.msgBufID = bufferIdx; + TRKPostEvent(&event); } DSError TRKInitializeSerialHandler(void) { - gTRKFramingState.msgBufID = -1; - gTRKFramingState.receiveState = DSRECV_Wait; - gTRKFramingState.isEscape = FALSE; + gTRKFramingState.msgBufID = -1; + gTRKFramingState.receiveState = DSRECV_Wait; + gTRKFramingState.isEscape = FALSE; - return DS_NoError; + return DS_NoError; } DSError TRKTerminateSerialHandler(void) { return DS_NoError; } diff --git a/src/TRK_MINNOW_DOLPHIN/support.c b/src/TRK_MINNOW_DOLPHIN/support.c index 0d31ca10..3f1e54c1 100644 --- a/src/TRK_MINNOW_DOLPHIN/support.c +++ b/src/TRK_MINNOW_DOLPHIN/support.c @@ -28,7 +28,7 @@ DSError TRKSuppAccessFile(u32 file_handle, u8* data, size_t* count, *io_result = DS_IONoError; done = 0; error = DS_NoError; - while (!exit && done < *count && error == DS_NoError && *io_result == 0) { + while (!exit && done < *count && error == DS_NoError && *io_result == DS_IONoError) { if (*count - done > 0x800) { length = 0x800; } else { @@ -175,3 +175,114 @@ DSError TRKRequestSend(TRKBuffer* msgBuf, int* bufferId, u32 p1, u32 p2, int p3) return error; } + +DSError HandleOpenFileSupportRequest(const char* path, u8 replyError, u32* param_3, u8* ioResult) { + int sp10; + int spC; + TRKBuffer* sp8; + TRKBuffer* var_r31; + DSError var_r26; + + *param_3 = 0; + var_r26 = TRKGetFreeBuffer(&spC, &sp8); + if (var_r26 == DS_NoError) { + var_r26 = TRKAppendBuffer1_ui8(sp8, 0xD2); + } + if (var_r26 == DS_NoError) { + var_r26 = TRKAppendBuffer1_ui8(sp8, replyError); + } + if (var_r26 == DS_NoError) { + var_r26 = TRKAppendBuffer1_ui16(sp8, strlen(path) + 1); + } + if (var_r26 == DS_NoError) { + var_r26 = TRKAppendBuffer_ui8(sp8, (u8*) path, strlen(path) + 1); + } + if (var_r26 == DS_NoError) { + *ioResult = 0; + var_r26 = TRKRequestSend(sp8, &sp10, 7, 3, 0); + if (var_r26 == DS_NoError) { + var_r31 = TRKGetBuffer(sp10); + TRKSetBufferPosition(var_r31, 2); + } + if (var_r26 == DS_NoError) { + var_r26 = TRKReadBuffer1_ui8(var_r31, ioResult); + } + if (var_r26 == DS_NoError) { + var_r26 = TRKReadBuffer1_ui32(var_r31, param_3); + } + TRKReleaseBuffer(sp10); + } + TRKReleaseBuffer(spC); + return var_r26; +} + +DSError HandleCloseFileSupportRequest(int replyError, u8* ioResult) { + int sp10; + int spC; + DSError var_r31; + TRKBuffer* sp8; + TRKBuffer* var_r30; + + var_r31 = TRKGetFreeBuffer(&spC, &sp8); + if (var_r31 == DS_NoError) { + var_r31 = TRKAppendBuffer1_ui8(sp8, 0xD3); + } + if (var_r31 == DS_NoError) { + var_r31 = TRKAppendBuffer1_ui32(sp8, replyError); + } + if (var_r31 == DS_NoError) { + *ioResult = DS_IONoError; + var_r31 = TRKRequestSend(sp8, &sp10, 3, 3, 0); + if (var_r31 == DS_NoError) { + var_r30 = TRKGetBuffer(sp10); + TRKSetBufferPosition(var_r30, 2); + } + if (var_r31 == DS_NoError) { + var_r31 = TRKReadBuffer1_ui8(var_r30, ioResult); + } + TRKReleaseBuffer(sp10); + } + TRKReleaseBuffer(spC); + return var_r31; +} + +DSError HandlePositionFileSupportRequest(u32 replyErr, u32* param_2, u8 param_3, u8* ioResult) { + int sp10; + int spC; + TRKBuffer* sp8; + TRKBuffer* var_r31; + DSError var_r27; + + var_r27 = TRKGetFreeBuffer(&spC, &sp8); + if (var_r27 == DS_NoError) { + var_r27 = TRKAppendBuffer1_ui8(sp8, 0xD4); + } + if (var_r27 == DS_NoError) { + var_r27 = TRKAppendBuffer1_ui32(sp8, replyErr); + } + if (var_r27 == DS_NoError) { + var_r27 = TRKAppendBuffer1_ui32(sp8, *param_2); + } + if (var_r27 == DS_NoError) { + var_r27 = TRKAppendBuffer1_ui8(sp8, param_3); + } + if (var_r27 == DS_NoError) { + *ioResult = DS_IONoError; + var_r27 = TRKRequestSend(sp8, &sp10, 3, 3, 0); + if (var_r27 == DS_NoError) { + var_r31 = TRKGetBuffer(sp10); + TRKSetBufferPosition(var_r31, 2); + } + if (var_r27 == DS_NoError) { + var_r27 = TRKReadBuffer1_ui8(var_r31, ioResult); + } + if (var_r27 == DS_NoError) { + var_r27 = TRKReadBuffer1_ui32(var_r31, param_2); + } else { + *param_2 = -1; + } + TRKReleaseBuffer(sp10); + } + TRKReleaseBuffer(spC); + return var_r27; +} diff --git a/src/TRK_MINNOW_DOLPHIN/targimpl.c b/src/TRK_MINNOW_DOLPHIN/targimpl.c index 858024a5..c25b33d4 100644 --- a/src/TRK_MINNOW_DOLPHIN/targimpl.c +++ b/src/TRK_MINNOW_DOLPHIN/targimpl.c @@ -9,32 +9,32 @@ #include "string.h" typedef struct memRange { - u8* start; - u8* end; - BOOL readable; - BOOL writeable; + u8* start; + u8* end; + BOOL readable; + BOOL writeable; } memRange; const memRange gTRKMemMap[1] = { { (u8*)0, (u8*)-1, TRUE, TRUE } }; typedef struct StopInfo_PPC { - u32 PC; - u32 PCInstruction; - u16 exceptionID; + u32 PC; + u32 PCInstruction; + u16 exceptionID; } StopInfo_PPC; typedef struct TRKExceptionStatus { - StopInfo_PPC exceptionInfo; - u8 inTRK; - u8 exceptionDetected; + StopInfo_PPC exceptionInfo; + u8 inTRK; + u8 exceptionDetected; } TRKExceptionStatus; typedef struct TRKStepStatus { - BOOL active; // 0x0 - DSMessageStepOptions type; // 0x4 - u32 count; // 0x8 - u32 rangeStart; // 0xC - u32 rangeEnd; // 0x10 + BOOL active; // 0x0 + DSMessageStepOptions type; // 0x4 + u32 count; // 0x8 + u32 rangeStart; // 0xC + u32 rangeEnd; // 0x10 } TRKStepStatus; ProcessorRestoreFlags_PPC gTRKRestoreFlags = { FALSE, FALSE }; @@ -56,24 +56,24 @@ Default_PPC gTRKSaveState; #define INSTR_NOP 0x60000000 #define INSTR_BLR 0x4E800020 #define INSTR_PSQ_ST(psr, offset, rDest, w, gqr) \ - (0xF0000000 | (psr << 21) | (rDest << 16) | (w << 15) | (gqr << 12) \ - | offset) + (0xF0000000 | (psr << 21) | (rDest << 16) | (w << 15) | (gqr << 12) \ + | offset) #define INSTR_PSQ_L(psr, offset, rSrc, w, gqr) \ - (0xE0000000 | (psr << 21) | (rSrc << 16) | (w << 15) | (gqr << 12) | offset) + (0xE0000000 | (psr << 21) | (rSrc << 16) | (w << 15) | (gqr << 12) | offset) #define INSTR_STW(rSrc, offset, rDest) \ - (0x90000000 | (rSrc << 21) | (rDest << 16) | offset) + (0x90000000 | (rSrc << 21) | (rDest << 16) | offset) #define INSTR_LWZ(rDest, offset, rSrc) \ - (0x80000000 | (rDest << 21) | (rSrc << 16) | offset) + (0x80000000 | (rDest << 21) | (rSrc << 16) | offset) #define INSTR_STFD(fprSrc, offset, rDest) \ - (0xD8000000 | (fprSrc << 21) | (rDest << 16) | offset) + (0xD8000000 | (fprSrc << 21) | (rDest << 16) | offset) #define INSTR_LFD(fprDest, offset, rSrc) \ - (0xC8000000 | (fprDest << 21) | (rSrc << 16) | offset) + (0xC8000000 | (fprDest << 21) | (rSrc << 16) | offset) #define INSTR_MFSPR(rDest, spr) \ - (0x7C000000 | (rDest << 21) | ((spr & 0xFE0) << 6) | ((spr & 0x1F) << 16) \ - | 0x2A6) + (0x7C000000 | (rDest << 21) | ((spr & 0xFE0) << 6) | ((spr & 0x1F) << 16) \ + | 0x2A6) #define INSTR_MTSPR(spr, rSrc) \ - (0x7C000000 | (rSrc << 21) | ((spr & 0xFE0) << 6) | ((spr & 0x1F) << 16) \ - | 0x3A6) + (0x7C000000 | (rSrc << 21) | ((spr & 0xFE0) << 6) | ((spr & 0x1F) << 16) \ + | 0x3A6) #define DSFetch_u32(_p_) (*((u32*)_p_)) #define DSFetch_u64(_p_) (*((u64*)_p_)) @@ -100,113 +100,115 @@ static BOOL TRKTargetCheckStep(); asm u32 __TRK_get_MSR() { #ifdef __MWERKS__ // clang-format off - nofralloc - mfmsr r3 - blr + nofralloc + mfmsr r3 + blr #endif // clang-format on } asm void __TRK_set_MSR(register u32 msr) { #ifdef __MWERKS__ // clang-format off - nofralloc - mtmsr msr - blr + nofralloc + mtmsr msr + blr #endif // clang-format on } +#pragma dont_inline on DSError TRKValidMemory32(const void* addr, size_t length, ValidMemoryOptions readWriteable) { - DSError err = DS_InvalidMemory; /* assume range is invalid */ + DSError err = DS_InvalidMemory; /* assume range is invalid */ - const u8* start; - const u8* end; + const u8* start; + const u8* end; - s32 i; + s32 i; - /* - ** Get start and end addresses for the memory range and - ** verify that they are reasonable. - */ + /* + ** Get start and end addresses for the memory range and + ** verify that they are reasonable. + */ - start = (const u8*)addr; - end = ((const u8*)addr + (length - 1)); + start = (const u8*)addr; + end = ((const u8*)addr + (length - 1)); - if (end < start) - return DS_InvalidMemory; + if (end < start) + return DS_InvalidMemory; - /* - ** Iterate through the gTRKMemMap array to determine if the requested - ** range falls within the valid ranges in the map. - */ + /* + ** Iterate through the gTRKMemMap array to determine if the requested + ** range falls within the valid ranges in the map. + */ - for (i = 0; (i < (s32)(sizeof(gTRKMemMap) / sizeof(memRange))); i++) { - /* - ** If the requested range is not completely above - ** the valid range AND it is not completely below - ** the valid range then it must overlap somewhere. - ** If the requested range overlaps with one of the - ** valid ranges, do some additional checking. - ** - */ + for (i = 0; (i < (s32)(sizeof(gTRKMemMap) / sizeof(memRange))); i++) { + /* + ** If the requested range is not completely above + ** the valid range AND it is not completely below + ** the valid range then it must overlap somewhere. + ** If the requested range overlaps with one of the + ** valid ranges, do some additional checking. + ** + */ - if ((start <= (const u8*)gTRKMemMap[i].end) - && (end >= (const u8*)gTRKMemMap[i].start)) { - /* - ** First, verify that the read/write attributes are - ** acceptable. If so, then recursively check any - ** part of the requested range that falls before or - ** after the valid range. - */ + if ((start <= (const u8*)gTRKMemMap[i].end) + && (end >= (const u8*)gTRKMemMap[i].start)) { + /* + ** First, verify that the read/write attributes are + ** acceptable. If so, then recursively check any + ** part of the requested range that falls before or + ** after the valid range. + */ - if (((readWriteable == VALIDMEM_Readable) - && !gTRKMemMap[i].readable) - || ((readWriteable == VALIDMEM_Writeable) - && !gTRKMemMap[i].writeable)) { - err = DS_InvalidMemory; - } else { - err = DS_NoError; + if (((readWriteable == VALIDMEM_Readable) + && !gTRKMemMap[i].readable) + || ((readWriteable == VALIDMEM_Writeable) + && !gTRKMemMap[i].writeable)) { + err = DS_InvalidMemory; + } else { + err = DS_NoError; - /* - ** If a portion of the requested range falls before - ** the current valid range, then recursively - ** check it. - */ + /* + ** If a portion of the requested range falls before + ** the current valid range, then recursively + ** check it. + */ - if (start < (const u8*)gTRKMemMap[i].start) - err = TRKValidMemory32( - start, (u32)((const u8*)gTRKMemMap[i].start - start), - readWriteable); + if (start < (const u8*)gTRKMemMap[i].start) + err = TRKValidMemory32( + start, (u32)((const u8*)gTRKMemMap[i].start - start), + readWriteable); - /* - ** If a portion of the requested range falls after - ** the current valid range, then recursively - ** check it. - ** Note: Only do this step if the previous check - ** did not detect invalid access. - */ + /* + ** If a portion of the requested range falls after + ** the current valid range, then recursively + ** check it. + ** Note: Only do this step if the previous check + ** did not detect invalid access. + */ - if ((err == DS_NoError) && (end > (const u8*)gTRKMemMap[i].end)) - err = TRKValidMemory32( - (const u8*)gTRKMemMap[i].end, - (u32)(end - (const u8*)gTRKMemMap[i].end), - readWriteable); - } + if ((err == DS_NoError) && (end > (const u8*)gTRKMemMap[i].end)) + err = TRKValidMemory32( + (const u8*)gTRKMemMap[i].end, + (u32)(end - (const u8*)gTRKMemMap[i].end), + readWriteable); + } - break; - } - } + break; + } + } - return err; + return err; } +#pragma dont_inline reset static asm void TRK_ppc_memcpy(register void* dest, register const void* src, register int n, register u32 param_4, register u32 param_5) { #ifdef __MWERKS__ // clang-format off -#define msr r8 -#define byte r9 -#define count r10 +#define msr r8 +#define byte r9 +#define count r10 nofralloc mfmsr msr @@ -240,938 +242,960 @@ out_loop: #endif // clang-format on } +#pragma dont_inline on DSError TRKTargetAccessMemory(void* data, u32 start, size_t* length, MemoryAccessOptions accessOptions, BOOL read) { - DSError error; - u32 target_msr; - void* addr; - u32 trk_msr; - TRKExceptionStatus tempExceptionStatus = gTRKExceptionStatus; - gTRKExceptionStatus.exceptionDetected = FALSE; + DSError error; + u32 target_msr; + void* addr; + u32 trk_msr; + TRKExceptionStatus tempExceptionStatus = gTRKExceptionStatus; + gTRKExceptionStatus.exceptionDetected = FALSE; - addr = (void*)TRKTargetTranslate(start); - error = TRKValidMemory32(addr, *length, - read ? VALIDMEM_Readable : VALIDMEM_Writeable); + addr = (void*)TRKTargetTranslate(start); + error = TRKValidMemory32(addr, *length, + read ? VALIDMEM_Readable : VALIDMEM_Writeable); - if (error != DS_NoError) { - *length = 0; - } else { - target_msr = __TRK_get_MSR(); - trk_msr = target_msr | gTRKCPUState.Extended1.MSR & 0x10; + if (error != DS_NoError) { + *length = 0; + } else { + target_msr = __TRK_get_MSR(); + trk_msr = target_msr | gTRKCPUState.Extended1.MSR & 0x10; - if (read) { - TRK_ppc_memcpy(data, addr, *length, target_msr, trk_msr); - } else { - TRK_ppc_memcpy(addr, data, *length, trk_msr, target_msr); - TRK_flush_cache(addr, *length); - if ((void*)start != addr) { - TRK_flush_cache((void*)start, *length); - } - } - } + if (read) { + TRK_ppc_memcpy(data, addr, *length, target_msr, trk_msr); + } else { + TRK_ppc_memcpy(addr, data, *length, trk_msr, target_msr); + TRK_flush_cache(addr, *length); + if ((void*)start != addr) { + TRK_flush_cache((void*)start, *length); + } + } + } - if (gTRKExceptionStatus.exceptionDetected) { - *length = 0; - error = DS_CWDSException; - } + if (gTRKExceptionStatus.exceptionDetected) { + *length = 0; + error = DS_CWDSException; + } - gTRKExceptionStatus = tempExceptionStatus; - return error; + gTRKExceptionStatus = tempExceptionStatus; + return error; } +#pragma dont_inline reset DSError TRKTargetReadInstruction(void* data, u32 start) { - DSError error; - size_t registersLength = 4; + DSError error; + size_t registersLength = 4; - error = TRKTargetAccessMemory(data, start, ®istersLength, - MEMACCESS_UserMemory, TRUE); + error = TRKTargetAccessMemory(data, start, ®istersLength, + MEMACCESS_UserMemory, TRUE); - if (error == DS_NoError && registersLength != 4) { - error = DS_InvalidMemory; - } + if (error == DS_NoError && registersLength != 4) { + error = DS_InvalidMemory; + } - return error; + return error; } DSError TRKTargetAccessDefault(u32 firstRegister, u32 lastRegister, TRKBuffer* b, size_t* registersLengthPtr, BOOL read) { - DSError error; - u32 count; - u32* data; - TRKExceptionStatus tempExceptionStatus; + DSError error; + u32 count; + u32* data; + TRKExceptionStatus tempExceptionStatus; - if (lastRegister > 0x24) { - return DS_InvalidRegister; - } + if (lastRegister > 0x24) { + return DS_InvalidRegister; + } - tempExceptionStatus = gTRKExceptionStatus; + tempExceptionStatus = gTRKExceptionStatus; - data = gTRKCPUState.Default.GPR + firstRegister; + gTRKExceptionStatus.exceptionDetected = FALSE; - count = (lastRegister - firstRegister) + 1; + data = gTRKCPUState.Default.GPR + firstRegister; - gTRKExceptionStatus.exceptionDetected = FALSE; + count = (lastRegister - firstRegister) + 1; - *registersLengthPtr = count * sizeof(u32); + *registersLengthPtr = count * sizeof(u32); - if (read) { - error = TRKAppendBuffer_ui32(b, data, count); - } else { - error = TRKReadBuffer_ui32(b, data, count); - } + if (read) { + error = TRKAppendBuffer_ui32(b, data, count); + } else { + error = TRKReadBuffer_ui32(b, data, count); + } - if (gTRKExceptionStatus.exceptionDetected) { - *registersLengthPtr = 0; - error = DS_CWDSException; - } + if (gTRKExceptionStatus.exceptionDetected) { + *registersLengthPtr = 0; + error = DS_CWDSException; + } - gTRKExceptionStatus = tempExceptionStatus; - return error; + gTRKExceptionStatus = tempExceptionStatus; + return error; } DSError TRKTargetAccessFP(u32 firstRegister, u32 lastRegister, TRKBuffer* b, size_t* registersLengthPtr, BOOL read) { - u64 temp; - DSError error; - TRKExceptionStatus tempExceptionStatus; - u32 current; + u64 temp; + DSError error; + TRKExceptionStatus tempExceptionStatus; + u32 current; - if (lastRegister > 0x21) { - return DS_InvalidRegister; - } + if (lastRegister > 0x21) { + return DS_InvalidRegister; + } - tempExceptionStatus = gTRKExceptionStatus; - gTRKExceptionStatus.exceptionDetected = FALSE; + tempExceptionStatus = gTRKExceptionStatus; + gTRKExceptionStatus.exceptionDetected = FALSE; - __TRK_set_MSR(__TRK_get_MSR() | 0x2000); + __TRK_set_MSR(__TRK_get_MSR() | 0x2000); - *registersLengthPtr = 0; - error = DS_NoError; + *registersLengthPtr = 0; + error = DS_NoError; - for (current = firstRegister; - (current <= lastRegister) && (error == DS_NoError); - current++, *registersLengthPtr += sizeof(f64)) { - if (read) { - TRKPPCAccessFPRegister(&temp, current, read); - error = TRKAppendBuffer1_ui64(b, temp); - } else { - TRKReadBuffer1_ui64(b, &temp); - error = TRKPPCAccessFPRegister(&temp, current, read); - } - } + for (current = firstRegister; + (current <= lastRegister) && (error == DS_NoError); + current++, *registersLengthPtr += sizeof(f64)) { + if (read) { + TRKPPCAccessFPRegister(&temp, current, read); + error = TRKAppendBuffer1_ui64(b, temp); + } else { + TRKReadBuffer1_ui64(b, &temp); + error = TRKPPCAccessFPRegister(&temp, current, read); + } + } - if (gTRKExceptionStatus.exceptionDetected) { - *registersLengthPtr = 0; - error = DS_CWDSException; - } + if (gTRKExceptionStatus.exceptionDetected) { + *registersLengthPtr = 0; + error = DS_CWDSException; + } - gTRKExceptionStatus = tempExceptionStatus; - return error; + gTRKExceptionStatus = tempExceptionStatus; + return error; } DSError TRKTargetAccessExtended1(u32 firstRegister, u32 lastRegister, TRKBuffer* b, size_t* registersLengthPtr, BOOL read) { - TRKExceptionStatus tempExceptionStatus; - int error; - u32* data; - int count; + TRKExceptionStatus tempExceptionStatus; + int error; + u32* data; + int count; - if (lastRegister > 0x60) { - return DS_InvalidRegister; - } + if (lastRegister > 0x60) { + return DS_InvalidRegister; + } - tempExceptionStatus = gTRKExceptionStatus; - gTRKExceptionStatus.exceptionDetected = FALSE; + tempExceptionStatus = gTRKExceptionStatus; + gTRKExceptionStatus.exceptionDetected = FALSE; - *registersLengthPtr = 0; + *registersLengthPtr = 0; - if (firstRegister <= lastRegister) { - data = (u32*)&gTRKCPUState.Extended1 + firstRegister; - count = lastRegister - firstRegister + 1; - *registersLengthPtr += count * sizeof(u32); + if (firstRegister <= lastRegister) { + data = (u32*)&gTRKCPUState.Extended1 + firstRegister; + count = lastRegister - firstRegister + 1; + *registersLengthPtr += count * sizeof(u32); - if (read) { - error = TRKAppendBuffer_ui32(b, data, count); - } else { - if (data <= &gTRKCPUState.Extended1.TBU - && (data + count - 1) >= &gTRKCPUState.Extended1.TBL) { - gTRKRestoreFlags.TBR = 1; - } + if (read) { + error = TRKAppendBuffer_ui32(b, data, count); + } else { + if (data <= &gTRKCPUState.Extended1.TBU + && (data + count - 1) >= &gTRKCPUState.Extended1.TBL) { + gTRKRestoreFlags.TBR = 1; + } - if (data <= &gTRKCPUState.Extended1.DEC - && (data + count - 1) >= &gTRKCPUState.Extended1.DEC) { - gTRKRestoreFlags.DEC = 1; - } - error = TRKReadBuffer_ui32(b, data, count); - } - } - if (gTRKExceptionStatus.exceptionDetected) { - *registersLengthPtr = 0; - error = DS_CWDSException; - } + if (data <= &gTRKCPUState.Extended1.DEC + && (data + count - 1) >= &gTRKCPUState.Extended1.DEC) { + gTRKRestoreFlags.DEC = 1; + } + error = TRKReadBuffer_ui32(b, data, count); + } + } + if (gTRKExceptionStatus.exceptionDetected) { + *registersLengthPtr = 0; + error = DS_CWDSException; + } - gTRKExceptionStatus = tempExceptionStatus; - return error; + gTRKExceptionStatus = tempExceptionStatus; + return error; } DSError TRKTargetAccessExtended2(u32 firstRegister, u32 lastRegister, TRKBuffer* b, size_t* registerStorageSize, BOOL read) { - TRKExceptionStatus savedException; - u32 i; - u32 value_buf0[1]; - u32 value_buf[2]; - DSError err; - u32 access_func[10]; + TRKExceptionStatus savedException; + u32 i; + u32 value_buf0[1]; + u32 value_buf[2]; + DSError err; + u32 access_func[10]; - if (lastRegister > 0x1f) - return DS_InvalidRegister; + if (lastRegister > 0x1f) + return DS_InvalidRegister; - /* - ** Save any existing exception status and clear the exception flag. - ** This allows detection of exceptions that occur ONLY within this - ** function. - */ + /* + ** Save any existing exception status and clear the exception flag. + ** This allows detection of exceptions that occur ONLY within this + ** function. + */ - savedException = gTRKExceptionStatus; - gTRKExceptionStatus.exceptionDetected = FALSE; + savedException = gTRKExceptionStatus; + gTRKExceptionStatus.exceptionDetected = FALSE; - TRKPPCAccessSPR(value_buf0, SPR_HID2, TRUE); + TRKPPCAccessSPR(value_buf0, SPR_HID2, TRUE); - value_buf0[0] |= 0xA0000000; - TRKPPCAccessSPR(value_buf0, SPR_HID2, FALSE); + value_buf0[0] |= 0xA0000000; + TRKPPCAccessSPR(value_buf0, SPR_HID2, FALSE); - value_buf0[0] = 0; - TRKPPCAccessSPR(value_buf0, SPR_GQR0, FALSE); + value_buf0[0] = 0; + TRKPPCAccessSPR(value_buf0, SPR_GQR0, FALSE); - *registerStorageSize = 0; - err = DS_NoError; + *registerStorageSize = 0; + err = DS_NoError; - for (i = firstRegister; (i <= lastRegister) && (err == DS_NoError); i++) { - if (read) { - err = TRKPPCAccessPairedSingleRegister((u64*)value_buf, i, read); - err = TRKAppendBuffer1_ui64(b, *(u64*)value_buf); - } else { - err = TRKReadBuffer1_ui64(b, (u64*)value_buf); - err = TRKPPCAccessPairedSingleRegister((u64*)value_buf, i, read); - } + for (i = firstRegister; (i <= lastRegister) && (err == DS_NoError); i++) { + if (read) { + err = TRKPPCAccessPairedSingleRegister((u64*)value_buf, i, read); + err = TRKAppendBuffer1_ui64(b, *(u64*)value_buf); + } else { + err = TRKReadBuffer1_ui64(b, (u64*)value_buf); + err = TRKPPCAccessPairedSingleRegister((u64*)value_buf, i, read); + } - *registerStorageSize += sizeof(u64); - } + *registerStorageSize += sizeof(u64); + } - if (gTRKExceptionStatus.exceptionDetected) { - *registerStorageSize = 0; - err = DS_CWDSException; - } + if (gTRKExceptionStatus.exceptionDetected) { + *registerStorageSize = 0; + err = DS_CWDSException; + } - gTRKExceptionStatus = savedException; + gTRKExceptionStatus = savedException; - return err; + return err; } DSError TRKTargetVersions(DSVersions* versions) { - versions->kernelMajor = 0; - versions->kernelMinor = 8; - versions->protocolMajor = 1; - versions->protocolMinor = 10; - return DS_NoError; + versions->kernelMajor = 0; + versions->kernelMinor = 10; + versions->protocolMajor = 1; + versions->protocolMinor = 10; + return DS_NoError; } DSError TRKTargetSupportMask(u8 mask[32]) { - mask[0] = 0x7a; - mask[1] = 0; - mask[2] = 0x4f; - mask[3] = 7; - mask[4] = 0; - mask[5] = 0; - mask[6] = 0; - mask[7] = 0; - mask[8] = 0; - mask[9] = 0; - mask[10] = 0; - mask[0xb] = 0; - mask[0xc] = 0; - mask[0xd] = 0; - mask[0xe] = 0; - mask[0xf] = 0; - mask[0x10] = 1; - mask[0x11] = 0; - mask[0x12] = 3; - mask[0x13] = 0; - mask[0x14] = 0; - mask[0x15] = 0; - mask[0x16] = 0; - mask[0x17] = 0; - mask[0x18] = 0; - mask[0x19] = 0; - mask[0x1a] = 3; - mask[0x1b] = 0; - mask[0x1c] = 0; - mask[0x1d] = 0; - mask[0x1e] = 0; - mask[0x1f] = 0x80; - return DS_NoError; + mask[0] = 0x7a; + mask[1] = 0; + mask[2] = 0x4f; + mask[3] = 7; + mask[4] = 0; + mask[5] = 0; + mask[6] = 0; + mask[7] = 0; + mask[8] = 0; + mask[9] = 0; + mask[10] = 0; + mask[0xb] = 0; + mask[0xc] = 0; + mask[0xd] = 0; + mask[0xe] = 0; + mask[0xf] = 0; + mask[0x10] = 1; + mask[0x11] = 0; + mask[0x12] = 3; + mask[0x13] = 0; + mask[0x14] = 0; + mask[0x15] = 0; + mask[0x16] = 0; + mask[0x17] = 0; + mask[0x18] = 0; + mask[0x19] = 0; + mask[0x1a] = 3; + mask[0x1b] = 0; + mask[0x1c] = 0; + mask[0x1d] = 0; + mask[0x1e] = 0; + mask[0x1f] = 0x80; + return DS_NoError; } extern BOOL gTRKBigEndian; DSError TRKTargetCPUType(DSCPUType* cpuType) { - cpuType->cpuMajor = 0; - cpuType->cpuMinor = TRKTargetCPUMinorType(); - cpuType->bigEndian = gTRKBigEndian; - cpuType->defaultTypeSize = 4; - cpuType->fpTypeSize = 8; - cpuType->extended1TypeSize = 4; - cpuType->extended2TypeSize = 8; - return DS_NoError; + cpuType->cpuMajor = 0; + cpuType->cpuMinor = TRKTargetCPUMinorType(); + cpuType->bigEndian = gTRKBigEndian; + cpuType->defaultTypeSize = 4; + cpuType->fpTypeSize = 8; + cpuType->extended1TypeSize = 4; + cpuType->extended2TypeSize = 8; + return DS_NoError; } asm void TRKInterruptHandler() { #ifdef __MWERKS__ // clang-format off - nofralloc - mtsrr0 r2 - mtsrr1 r4 - mfsprg r4, 3 - mfcr r2 - mtsprg 3, r2 - lis r2, gTRKState@h - ori r2, r2, gTRKState@l - lwz r2, TRKState_PPC.MSR(r2) - ori r2, r2, 0x8002 - xori r2, r2, 0x8002 - sync - mtmsr r2 - sync - lis r2, TRK_saved_exceptionID@h - ori r2, r2, TRK_saved_exceptionID@l - sth r3, 0(r2) - cmpwi r3, 0x500 - bne L_802CF694 - lis r2, gTRKCPUState@h - ori r2, r2, gTRKCPUState@l - mflr r3 - stw r3, ProcessorState_PPC.transport_handler_saved_ra(r2) - bl TRKUARTInterruptHandler - lis r2, gTRKCPUState@h - ori r2, r2, gTRKCPUState@l - lwz r3, ProcessorState_PPC.transport_handler_saved_ra(r2) - mtlr r3 - lis r2, gTRKState@h - ori r2, r2, gTRKState@l - lwz r2, TRKState_PPC.inputPendingPtr(r2) - lbz r2, TRKState_PPC.GPR[0](r2) - cmpwi r2, 0 - beq L_802CF678 - lis r2, gTRKExceptionStatus@h - ori r2, r2, gTRKExceptionStatus@l - lbz r2, TRKExceptionStatus.inTRK(r2) - cmpwi r2, 1 - beq L_802CF678 - lis r2, gTRKState@h - ori r2, r2, gTRKState@l - li r3, 1 - stb r3, TRKState_PPC.inputActivated(r2) - b L_802CF694 + nofralloc + mtsrr0 r2 + mtsrr1 r4 + mfsprg r4, 3 + mfcr r2 + mtsprg 3, r2 + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + lwz r2, TRKState_PPC.MSR(r2) + ori r2, r2, 0x8002 + xori r2, r2, 0x8002 + sync + mtmsr r2 + sync + lis r2, TRK_saved_exceptionID@h + ori r2, r2, TRK_saved_exceptionID@l + sth r3, 0(r2) + cmpwi r3, 0x500 + bne L_802CF694 + lis r2, gTRKCPUState@h + ori r2, r2, gTRKCPUState@l + mflr r3 + stw r3, ProcessorState_PPC.transport_handler_saved_ra(r2) + bl TRKUARTInterruptHandler + lis r2, gTRKCPUState@h + ori r2, r2, gTRKCPUState@l + lwz r3, ProcessorState_PPC.transport_handler_saved_ra(r2) + mtlr r3 + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + lwz r2, TRKState_PPC.inputPendingPtr(r2) + lbz r2, TRKState_PPC.GPR[0](r2) + cmpwi r2, 0 + beq L_802CF678 + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + lbz r2, TRKExceptionStatus.inTRK(r2) + cmpwi r2, 1 + beq L_802CF678 + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + li r3, 1 + stb r3, TRKState_PPC.inputActivated(r2) + b L_802CF694 L_802CF678: - lis r2, gTRKSaveState@h - ori r2, r2, gTRKSaveState@l - lwz r3, Default_PPC.CR(r2) - mtcrf 0xff, r3 - lwz r3, Default_PPC.GPR[3](r2) - lwz r2, Default_PPC.GPR[2](r2) - rfi + lis r2, gTRKSaveState@h + ori r2, r2, gTRKSaveState@l + lwz r3, Default_PPC.CR(r2) + mtcrf 0xff, r3 + lwz r3, Default_PPC.GPR[3](r2) + lwz r2, Default_PPC.GPR[2](r2) + rfi L_802CF694: - lis r2, TRK_saved_exceptionID@h - ori r2, r2, TRK_saved_exceptionID@l - lhz r3, 0(r2) - lis r2, gTRKExceptionStatus@h - ori r2, r2, gTRKExceptionStatus@l - lbz r2, TRKExceptionStatus.inTRK(r2) - cmpwi r2, 0 - bne TRKExceptionHandler - lis r2, gTRKCPUState@h - ori r2, r2, gTRKCPUState@l - stw r0, ProcessorState_PPC.Default.GPR[0](r2) - stw r1, ProcessorState_PPC.Default.GPR[1](r2) - mfsprg r0, 1 - stw r0, ProcessorState_PPC.Default.GPR[2](r2) - sth r3, ProcessorState_PPC.Extended1.exceptionID(r2) - sth r3, (ProcessorState_PPC.Extended1.exceptionID + 2)(r2) - mfsprg r0, 2 - stw r0, ProcessorState_PPC.Default.GPR[3](r2) - stmw r4, ProcessorState_PPC.Default.GPR[4](r2) - mfsrr0 r27 - mflr r28 - mfsprg r29, 3 - mfctr r30 - mfxer r31 - stmw r27, ProcessorState_PPC.Default.PC(r2) - bl TRKSaveExtended1Block - lis r2, gTRKExceptionStatus@h - ori r2, r2, gTRKExceptionStatus@l - li r3, 1 - stb r3, TRKExceptionStatus.inTRK(r2) - lis r2, gTRKState@h - ori r2, r2, gTRKState@l - lwz r0, TRKState_PPC.MSR(r2) - sync - mtmsr r0 - sync - lwz r0, TRKState_PPC.LR(r2) - mtlr r0 - lwz r0, TRKState_PPC.CTR(r2) - mtctr r0 - lwz r0, TRKState_PPC.XER(r2) - mtxer r0 - lwz r0, TRKState_PPC.DSISR(r2) - mtdsisr r0 - lwz r0, TRKState_PPC.DAR(r2) - mtdar r0 - lmw r3, TRKState_PPC.GPR[3](r2) - lwz r0, TRKState_PPC.GPR[0](r2) - lwz r1, TRKState_PPC.GPR[1](r2) - lwz r2, TRKState_PPC.GPR[2](r2) - b TRKPostInterruptEvent + lis r2, TRK_saved_exceptionID@h + ori r2, r2, TRK_saved_exceptionID@l + lhz r3, 0(r2) + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + lbz r2, TRKExceptionStatus.inTRK(r2) + cmpwi r2, 0 + bne TRKExceptionHandler + lis r2, gTRKCPUState@h + ori r2, r2, gTRKCPUState@l + stw r0, ProcessorState_PPC.Default.GPR[0](r2) + stw r1, ProcessorState_PPC.Default.GPR[1](r2) + mfsprg r0, 1 + stw r0, ProcessorState_PPC.Default.GPR[2](r2) + sth r3, ProcessorState_PPC.Extended1.exceptionID(r2) + sth r3, (ProcessorState_PPC.Extended1.exceptionID + 2)(r2) + mfsprg r0, 2 + stw r0, ProcessorState_PPC.Default.GPR[3](r2) + stmw r4, ProcessorState_PPC.Default.GPR[4](r2) + mfsrr0 r27 + mflr r28 + mfsprg r29, 3 + mfctr r30 + mfxer r31 + stmw r27, ProcessorState_PPC.Default.PC(r2) + bl TRKSaveExtended1Block + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + li r3, 1 + stb r3, TRKExceptionStatus.inTRK(r2) + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + lwz r0, TRKState_PPC.MSR(r2) + sync + mtmsr r0 + sync + lwz r0, TRKState_PPC.LR(r2) + mtlr r0 + lwz r0, TRKState_PPC.CTR(r2) + mtctr r0 + lwz r0, TRKState_PPC.XER(r2) + mtxer r0 + lwz r0, TRKState_PPC.DSISR(r2) + mtdsisr r0 + lwz r0, TRKState_PPC.DAR(r2) + mtdar r0 + lmw r3, TRKState_PPC.GPR[3](r2) + lwz r0, TRKState_PPC.GPR[0](r2) + lwz r1, TRKState_PPC.GPR[1](r2) + lwz r2, TRKState_PPC.GPR[2](r2) + b TRKPostInterruptEvent #endif // clang-format on } static asm void TRKExceptionHandler(u16) { #ifdef __MWERKS__ // clang-format off - nofralloc - lis r2, gTRKExceptionStatus@h - ori r2, r2, gTRKExceptionStatus@l - sth r3, TRKExceptionStatus.exceptionInfo.exceptionID(r2) - mfsrr0 r3 - stw r3, TRKExceptionStatus.exceptionInfo.PC(r2) - lhz r3, TRKExceptionStatus.exceptionInfo.exceptionID(r2) - cmpwi r3, 0x200 - beq LAB_00010ba4 - cmpwi r3, 0x300 - beq LAB_00010ba4 - cmpwi r3, 0x400 - beq LAB_00010ba4 - cmpwi r3, 0x600 - beq LAB_00010ba4 - cmpwi r3, 0x700 - beq LAB_00010ba4 - cmpwi r3, 0x800 - beq LAB_00010ba4 - cmpwi r3, 0x1000 - beq LAB_00010ba4 - cmpwi r3, 0x1100 - beq LAB_00010ba4 - cmpwi r3, 0x1200 - beq LAB_00010ba4 - cmpwi r3, 0x1300 - beq LAB_00010ba4 - b LAB_00010bb0 + nofralloc + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + sth r3, TRKExceptionStatus.exceptionInfo.exceptionID(r2) + mfsrr0 r3 + stw r3, TRKExceptionStatus.exceptionInfo.PC(r2) + lhz r3, TRKExceptionStatus.exceptionInfo.exceptionID(r2) + cmpwi r3, 0x200 + beq LAB_00010ba4 + cmpwi r3, 0x300 + beq LAB_00010ba4 + cmpwi r3, 0x400 + beq LAB_00010ba4 + cmpwi r3, 0x600 + beq LAB_00010ba4 + cmpwi r3, 0x700 + beq LAB_00010ba4 + cmpwi r3, 0x800 + beq LAB_00010ba4 + cmpwi r3, 0x1000 + beq LAB_00010ba4 + cmpwi r3, 0x1100 + beq LAB_00010ba4 + cmpwi r3, 0x1200 + beq LAB_00010ba4 + cmpwi r3, 0x1300 + beq LAB_00010ba4 + b LAB_00010bb0 LAB_00010ba4: - mfsrr0 r3 - addi r3, r3, 0x4 - mtsrr0 r3 + mfsrr0 r3 + addi r3, r3, 0x4 + mtsrr0 r3 LAB_00010bb0: - lis r2, gTRKExceptionStatus@h - ori r2, r2, gTRKExceptionStatus@l - li r3, 0x1 - stb r3, TRKExceptionStatus.exceptionDetected(r2) - mfsprg r3, 3 - mtcrf 0xff, r3 - mfsprg r2, 1 - mfsprg r3, 2 - rfi + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + li r3, 0x1 + stb r3, TRKExceptionStatus.exceptionDetected(r2) + mfsprg r3, 3 + mtcrf 0xff, r3 + mfsprg r2, 1 + mfsprg r3, 2 + rfi #endif // clang-format on } void TRKPostInterruptEvent(void) { - NubEventType eventType; - u32 inst; - TRKEvent event; + NubEventType eventType; + u32 inst; + TRKEvent event; - if (gTRKState.inputActivated) { - gTRKState.inputActivated = FALSE; - } else { - switch (gTRKCPUState.Extended1.exceptionID & 0xFFFF) { - case 0xd00: - case 0x700: - TRKTargetReadInstruction(&inst, gTRKCPUState.Default.PC); + if (gTRKState.inputActivated) { + gTRKState.inputActivated = FALSE; + } else { + switch (gTRKCPUState.Extended1.exceptionID & 0xFFFF) { + case 0xd00: + case 0x700: + TRKTargetReadInstruction(&inst, gTRKCPUState.Default.PC); - if (inst == 0xfe00000) { - eventType = NUBEVENT_Support; - } else { - eventType = NUBEVENT_Breakpoint; - } - break; - default: - eventType = NUBEVENT_Exception; - break; - } + if (inst == 0xfe00000) { + eventType = NUBEVENT_Support; + } else { + eventType = NUBEVENT_Breakpoint; + } + break; + default: + eventType = NUBEVENT_Exception; + break; + } - TRKConstructEvent(&event, eventType); - TRKPostEvent(&event); - } + TRKConstructEvent(&event, eventType); + TRKPostEvent(&event); + } } asm void TRKSwapAndGo() { #ifdef __MWERKS__ // clang-format off - nofralloc - lis r3, gTRKState@h - ori r3, r3, gTRKState@l - stmw r0, TRKState_PPC.GPR[0](r3) - mfmsr r0 - stw r0, TRKState_PPC.MSR(r3) - mflr r0 - stw r0, TRKState_PPC.LR(r3) - mfctr r0 - stw r0, TRKState_PPC.CTR(r3) - mfxer r0 - stw r0, TRKState_PPC.XER(r3) - mfdsisr r0 - stw r0, TRKState_PPC.DSISR(r3) - mfdar r0 - stw r0, TRKState_PPC.DAR(r3) - li r1, -0x7ffe - nor r1, r1, r1 - mfmsr r3 - and r3, r3, r1 - mtmsr r3 - lis r2, gTRKState@h - ori r2, r2, gTRKState@l - lwz r2, TRKState_PPC.inputPendingPtr(r2) - lbz r2, TRKState_PPC.GPR[0](r2) - cmpwi r2, 0 - beq L_802CF930 - lis r2, gTRKState@h - ori r2, r2, gTRKState@l - li r3, 1 - stb r3, TRKState_PPC.inputActivated(r2) - b TRKInterruptHandlerEnableInterrupts + nofralloc + lis r3, gTRKState@h + ori r3, r3, gTRKState@l + stmw r0, TRKState_PPC.GPR[0](r3) + mfmsr r0 + stw r0, TRKState_PPC.MSR(r3) + mflr r0 + stw r0, TRKState_PPC.LR(r3) + mfctr r0 + stw r0, TRKState_PPC.CTR(r3) + mfxer r0 + stw r0, TRKState_PPC.XER(r3) + mfdsisr r0 + stw r0, TRKState_PPC.DSISR(r3) + mfdar r0 + stw r0, TRKState_PPC.DAR(r3) + li r1, -0x7ffe + nor r1, r1, r1 + mfmsr r3 + and r3, r3, r1 + mtmsr r3 + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + lwz r2, TRKState_PPC.inputPendingPtr(r2) + lbz r2, TRKState_PPC.GPR[0](r2) + cmpwi r2, 0 + beq L_802CF930 + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + li r3, 1 + stb r3, TRKState_PPC.inputActivated(r2) + b TRKInterruptHandlerEnableInterrupts L_802CF930: - lis r2, gTRKExceptionStatus@h - ori r2, r2, gTRKExceptionStatus@l - li r3, 0 - stb r3, 0xc(r2) - bl TRKRestoreExtended1Block - lis r2, gTRKCPUState@h - ori r2, r2, gTRKCPUState@l - lmw r27, ProcessorState_PPC.Default.PC(r2) - mtsrr0 r27 - mtlr r28 - mtcrf 0xff, r29 - mtctr r30 - mtxer r31 - lmw r3, ProcessorState_PPC.Default.GPR[3](r2) - lwz r0, ProcessorState_PPC.Default.GPR[0](r2) - lwz r1, ProcessorState_PPC.Default.GPR[1](r2) - lwz r2, ProcessorState_PPC.Default.GPR[2](r2) - rfi + lis r2, gTRKExceptionStatus@h + ori r2, r2, gTRKExceptionStatus@l + li r3, 0 + stb r3, 0xc(r2) + bl TRKRestoreExtended1Block + lis r2, gTRKCPUState@h + ori r2, r2, gTRKCPUState@l + lmw r27, ProcessorState_PPC.Default.PC(r2) + mtsrr0 r27 + mtlr r28 + mtcrf 0xff, r29 + mtctr r30 + mtxer r31 + lmw r3, ProcessorState_PPC.Default.GPR[3](r2) + lwz r0, ProcessorState_PPC.Default.GPR[0](r2) + lwz r1, ProcessorState_PPC.Default.GPR[1](r2) + lwz r2, ProcessorState_PPC.Default.GPR[2](r2) + rfi #endif // clang-format on } asm void TRKInterruptHandlerEnableInterrupts(void) { #ifdef __MWERKS__ // clang-format off - nofralloc; - lis r2, gTRKState@h - ori r2, r2, gTRKState@l - lwz r0, TRKState_PPC.MSR(r2) - sync - mtmsr r0 - sync - lwz r0, TRKState_PPC.LR(r2) - mtlr r0 - lwz r0, TRKState_PPC.CTR(r2) - mtctr r0 - lwz r0, TRKState_PPC.XER(r2) - mtxer r0 - lwz r0, TRKState_PPC.DSISR(r2) - mtdsisr r0 - lwz r0, TRKState_PPC.DAR(r2) - mtdar r0 - lmw r3, TRKState_PPC.GPR[3](r2) - lwz r0, TRKState_PPC.GPR[0](r2) - lwz r1, TRKState_PPC.GPR[1](r2) - lwz r2, TRKState_PPC.GPR[2](r2) - b TRKPostInterruptEvent + nofralloc; + lis r2, gTRKState@h + ori r2, r2, gTRKState@l + lwz r0, TRKState_PPC.MSR(r2) + sync + mtmsr r0 + sync + lwz r0, TRKState_PPC.LR(r2) + mtlr r0 + lwz r0, TRKState_PPC.CTR(r2) + mtctr r0 + lwz r0, TRKState_PPC.XER(r2) + mtxer r0 + lwz r0, TRKState_PPC.DSISR(r2) + mtdsisr r0 + lwz r0, TRKState_PPC.DAR(r2) + mtdar r0 + lmw r3, TRKState_PPC.GPR[3](r2) + lwz r0, TRKState_PPC.GPR[0](r2) + lwz r1, TRKState_PPC.GPR[1](r2) + lwz r2, TRKState_PPC.GPR[2](r2) + b TRKPostInterruptEvent #endif // clang-format on } DSError TRKTargetInterrupt(TRKEvent* event) { - DSError error = DS_NoError; - switch (event->eventType) { - case NUBEVENT_Breakpoint: - case NUBEVENT_Exception: - if (TRKTargetCheckStep() == FALSE) { - TRKTargetSetStopped(TRUE); - error = TRKDoNotifyStopped(DSMSG_NotifyStopped); - } - break; - default: - break; - } + DSError error = DS_NoError; + switch (event->eventType) { + case NUBEVENT_Breakpoint: + case NUBEVENT_Exception: + if (TRKTargetCheckStep() == FALSE) { + TRKTargetSetStopped(TRUE); + error = TRKDoNotifyStopped(DSMSG_NotifyStopped); + } + break; + default: + break; + } - return error; + return error; } DSError TRKTargetAddStopInfo(TRKBuffer* buffer) { - DSError error; - u32 instruction; + DSError error; + u32 instruction; + s32 i; - error = TRKAppendBuffer1_ui32(buffer, gTRKCPUState.Default.PC); - if (error == 0) { - error = TRKTargetReadInstruction(&instruction, gTRKCPUState.Default.PC); - } - if (error == 0) - error = TRKAppendBuffer1_ui32(buffer, instruction); - if (error == 0) - error - = TRKAppendBuffer1_ui16(buffer, gTRKCPUState.Extended1.exceptionID); - return error; + error = TRKAppendBuffer1_ui32(buffer, gTRKCPUState.Default.PC); + if (error == DS_NoError) { + error = TRKTargetReadInstruction(&instruction, gTRKCPUState.Default.PC); + } + if (error == DS_NoError) + error = TRKAppendBuffer1_ui32(buffer, instruction); + if (error == DS_NoError) + error = TRKAppendBuffer1_ui16(buffer, gTRKCPUState.Extended1.exceptionID); + + if (error == DS_NoError) { + for (i = 0; i < 32; i++) { + error = TRKAppendBuffer1_ui32(buffer, (u16) gTRKCPUState.Default.GPR[i]); + } + for (i = 0; i < 32; i++) { + error = TRKAppendBuffer1_ui64(buffer, (u16) gTRKCPUState.Float.FPR[i]); + } + } + + return error; } DSError TRKTargetAddExceptionInfo(TRKBuffer* buffer) { - DSError error; - u32 local_10; + DSError error; + u32 local_10; - error = TRKAppendBuffer1_ui32(buffer, gTRKExceptionStatus.exceptionInfo.PC); - if (error == 0) { - error = TRKTargetReadInstruction(&local_10, - gTRKExceptionStatus.exceptionInfo.PC); - } - if (error == 0) { - error = TRKAppendBuffer1_ui32(buffer, local_10); - } - if (error == 0) { - error = TRKAppendBuffer1_ui16( - buffer, gTRKExceptionStatus.exceptionInfo.exceptionID); - } + error = TRKAppendBuffer1_ui32(buffer, gTRKExceptionStatus.exceptionInfo.PC); + if (error == 0) { + error = TRKTargetReadInstruction(&local_10, + gTRKExceptionStatus.exceptionInfo.PC); + } + if (error == 0) { + error = TRKAppendBuffer1_ui32(buffer, local_10); + } + if (error == 0) { + error = TRKAppendBuffer1_ui16( + buffer, gTRKExceptionStatus.exceptionInfo.exceptionID); + } - return error; + return error; } static DSError TRKTargetEnableTrace(BOOL val) { - if (val) { - gTRKCPUState.Extended1.MSR = (gTRKCPUState.Extended1.MSR | 0x400); - } else { - gTRKCPUState.Extended1.MSR = (gTRKCPUState.Extended1.MSR & ~0x400); - } - return DS_NoError; + if (val) { + gTRKCPUState.Extended1.MSR = (gTRKCPUState.Extended1.MSR | 0x400); + } else { + gTRKCPUState.Extended1.MSR = (gTRKCPUState.Extended1.MSR & ~0x400); + } + return DS_NoError; } static BOOL TRKTargetStepDone() { - BOOL result = TRUE; + BOOL result = TRUE; - if (gTRKStepStatus.active - && ((u16)gTRKCPUState.Extended1.exceptionID) == PPC_Trace) { - switch (gTRKStepStatus.type) { - case DSSTEP_IntoCount: - if (gTRKStepStatus.count > 0) { - result = FALSE; - } - break; - case DSSTEP_IntoRange: - if (gTRKCPUState.Default.PC >= gTRKStepStatus.rangeStart - && gTRKCPUState.Default.PC <= gTRKStepStatus.rangeEnd) { - result = FALSE; - } - break; - default: - break; - } - } + if (gTRKStepStatus.active + && ((u16)gTRKCPUState.Extended1.exceptionID) == PPC_Trace) { + switch (gTRKStepStatus.type) { + case DSSTEP_IntoCount: + if (gTRKStepStatus.count > 0) { + result = FALSE; + } + break; + case DSSTEP_IntoRange: + if (gTRKCPUState.Default.PC >= gTRKStepStatus.rangeStart + && gTRKCPUState.Default.PC <= gTRKStepStatus.rangeEnd) { + result = FALSE; + } + break; + default: + break; + } + } - return result; + return result; } static DSError TRKTargetDoStep() { - gTRKStepStatus.active = TRUE; - TRKTargetEnableTrace(TRUE); + gTRKStepStatus.active = TRUE; + TRKTargetEnableTrace(TRUE); - if (gTRKStepStatus.type == DSSTEP_IntoCount - || gTRKStepStatus.type == DSSTEP_OverCount) { - gTRKStepStatus.count--; - } + if (gTRKStepStatus.type == DSSTEP_IntoCount + || gTRKStepStatus.type == DSSTEP_OverCount) { + gTRKStepStatus.count--; + } - TRKTargetSetStopped(FALSE); - return DS_NoError; + TRKTargetSetStopped(FALSE); + return DS_NoError; } static BOOL TRKTargetCheckStep() { - if (gTRKStepStatus.active) { - TRKTargetEnableTrace(FALSE); + if (gTRKStepStatus.active) { + TRKTargetEnableTrace(FALSE); - if (TRKTargetStepDone()) { - gTRKStepStatus.active = FALSE; - } else { - TRKTargetDoStep(); - } - } + if (TRKTargetStepDone()) { + gTRKStepStatus.active = FALSE; + } else { + TRKTargetDoStep(); + } + } - return gTRKStepStatus.active; + return gTRKStepStatus.active; } DSError TRKTargetSingleStep(u32 count, BOOL stepOver) { - DSError error = DS_NoError; + DSError error = DS_NoError; - if (stepOver) { - error = DS_UnsupportedError; - } else { - gTRKStepStatus.count = count; - gTRKStepStatus.type = DSSTEP_IntoCount; - error = TRKTargetDoStep(); - } + if (stepOver) { + error = DS_UnsupportedError; + } else { + gTRKStepStatus.type = DSSTEP_IntoCount; + gTRKStepStatus.count = count; + error = TRKTargetDoStep(); + } - return error; + return error; } DSError TRKTargetStepOutOfRange(u32 rangeStart, u32 rangeEnd, BOOL stepOver) { - DSError error = DS_NoError; + DSError error = DS_NoError; - if (stepOver) { - // Stepping over isn't supported for PowerPC - error = DS_UnsupportedError; - } else { - gTRKStepStatus.type = DSSTEP_IntoRange; - // gTRKStepStatus.active = TRUE; - gTRKStepStatus.rangeStart = rangeStart; - gTRKStepStatus.rangeEnd = rangeEnd; - error = TRKTargetDoStep(); - } + if (stepOver) { + // Stepping over isn't supported for PowerPC + error = DS_UnsupportedError; + } else { + gTRKStepStatus.type = DSSTEP_IntoRange; + // gTRKStepStatus.active = TRUE; + gTRKStepStatus.rangeStart = rangeStart; + gTRKStepStatus.rangeEnd = rangeEnd; + error = TRKTargetDoStep(); + } - return error; + return error; } u32 TRKTargetGetPC() { return gTRKCPUState.Default.PC; } -DSError TRKTargetSupportRequest() -{ - DSError error; - size_t* length; - DSIOResult ioResult; - MessageCommandID commandId; - TRKEvent event; +DSError TRKTargetSupportRequest(void) { + DSError error; + u32 spC; + size_t* length; + MessageCommandID commandId; + TRKEvent event; + u8 ioResult; - commandId = gTRKCPUState.Default.GPR[3]; - if (commandId != DSMSG_ReadFile && commandId != DSMSG_WriteFile) { - TRKConstructEvent(&event, 4); - TRKPostEvent(&event); - return DS_NoError; - } else { - length = (size_t*)gTRKCPUState.Default.GPR[5]; - error = TRKSuppAccessFile((u8)gTRKCPUState.Default.GPR[4], - (u8*)gTRKCPUState.Default.GPR[6], length, - &ioResult, TRUE, commandId == DSMSG_ReadFile); - - if (ioResult == DS_IONoError && error != DS_NoError) { - ioResult = DS_IOError; - } - - gTRKCPUState.Default.GPR[3] = ioResult; - - if (commandId == DSMSG_ReadFile) { - TRK_flush_cache((void*)gTRKCPUState.Default.GPR[6], *length); - } - } - - gTRKCPUState.Default.PC += 4; - return error; + commandId = (u8) gTRKCPUState.Default.GPR[3]; + if (commandId != DSMSG_ReadFile && commandId != DSMSG_WriteFile && commandId != DSMSG_OpenFile && commandId != DSMSG_CloseFile && commandId != DSMSG_PositionFile) { + TRKConstructEvent(&event, NUBEVENT_Exception); + TRKPostEvent(&event); + return DS_NoError; + } + if (commandId == DSMSG_OpenFile) { + error = HandleOpenFileSupportRequest((char*) gTRKCPUState.Default.GPR[4], gTRKCPUState.Default.GPR[5], (u32*) gTRKCPUState.Default.GPR[6], &ioResult); + if (ioResult == DS_IONoError && error != DS_NoError) { + ioResult = DS_IOError; + } + gTRKCPUState.Default.GPR[3] = ioResult; + } else if (commandId == DSMSG_CloseFile) { + error = HandleCloseFileSupportRequest(gTRKCPUState.Default.GPR[4], &ioResult); + if (ioResult == DS_IONoError && error != DS_NoError) { + ioResult = DS_IOError; + } + gTRKCPUState.Default.GPR[3] = ioResult; + } else if (commandId == DSMSG_PositionFile) { + spC = *((u32*) gTRKCPUState.Default.GPR[5]); + error = HandlePositionFileSupportRequest(gTRKCPUState.Default.GPR[4], &spC, gTRKCPUState.Default.GPR[6], &ioResult); + if (ioResult == DS_IONoError && error != DS_NoError) { + ioResult = DS_IOError; + } + gTRKCPUState.Default.GPR[3] = ioResult; + *((u32*) gTRKCPUState.Default.GPR[5]) = spC; + } else { + length = (size_t*) gTRKCPUState.Default.GPR[5]; + error = TRKSuppAccessFile((u8) gTRKCPUState.Default.GPR[4], (u8*) gTRKCPUState.Default.GPR[6], length, (DSIOResult*) &ioResult, TRUE, commandId == DSMSG_ReadFile); + if (ioResult == DS_IONoError && error != DS_NoError) { + ioResult = DS_IOError; + } + gTRKCPUState.Default.GPR[3] = ioResult; + if (commandId == DSMSG_ReadFile) { + TRK_flush_cache((void*) gTRKCPUState.Default.GPR[6], *length); + } + } + gTRKCPUState.Default.PC += 4; + return error; } DSError TRKTargetFlushCache(u8, void* start, void* end) { - if (start < end) { - TRK_flush_cache(start, (u8*)end - (u8*)start); - return DS_NoError; - } + if (start < end) { + TRK_flush_cache(start, (u8*)end - (u8*)start); + return DS_NoError; + } - return DS_InvalidMemory; + return DS_InvalidMemory; } BOOL TRKTargetStopped() { return gTRKState.isStopped; } void TRKTargetSetStopped(unsigned int stopped) { - gTRKState.isStopped = stopped; + gTRKState.isStopped = stopped; } u32 TRKTargetStop() { - TRKTargetSetStopped(1); - return 0; + TRKTargetSetStopped(1); + return 0; } DSError TRKPPCAccessSPR(void* value, u32 spr_register_num, BOOL read) { - /* Initialize instruction array with nop */ + /* Initialize instruction array with nop */ - u32 access_func[5] - = { INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP }; - /* - ** Construct a small assembly function to perform the - ** requested access and call it. The read/write function - ** is in the form: - ** - ** read: - ** mfspr r4, spr_register_num - ** stw r4, 0(r3) - ** blr - ** - ** write: - ** lwz r4, 0(r3) - ** mtspr spr_register_num, r4 - ** blr - ** - */ + u32 access_func[10] = { + INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, + INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP + }; + /* + ** Construct a small assembly function to perform the + ** requested access and call it. The read/write function + ** is in the form: + ** + ** read: + ** mfspr r4, spr_register_num + ** stw r4, 0(r3) + ** blr + ** + ** write: + ** lwz r4, 0(r3) + ** mtspr spr_register_num, r4 + ** blr + ** + */ - if (read) { - access_func[0] = INSTR_MFSPR(4, spr_register_num); - access_func[1] = (u32)INSTR_STW(4, 0, 3); - } else { - access_func[0] = (u32)INSTR_LWZ(4, 0, 3); - access_func[1] = INSTR_MTSPR(spr_register_num, 4); - } + if (read) { + access_func[0] = INSTR_MFSPR(4, spr_register_num); + access_func[1] = (u32)INSTR_STW(4, 0, 3); + } else { + access_func[0] = (u32)INSTR_LWZ(4, 0, 3); + access_func[1] = INSTR_MTSPR(spr_register_num, 4); + } - return TRKPPCAccessSpecialReg(value, access_func, read); + return TRKPPCAccessSpecialReg(value, access_func, read); } DSError TRKPPCAccessPairedSingleRegister(void* srcDestPtr, u32 psr, BOOL read) { - // all nop by default - u32 instructionData[] - = { INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP }; + // all nop by default + u32 instructionData[] = { + INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, + INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP + }; - if (read) { - instructionData[0] - = INSTR_PSQ_ST(psr, 0, 3, 0, 0); // psq_st psr, 0(r3), 0, 0 - } else { - instructionData[0] - = INSTR_PSQ_L(psr, 0, 3, 0, 0); // psq_l psr, 0(r3), 0, 0 - } + if (read) { + instructionData[0] + = INSTR_PSQ_ST(psr, 0, 3, 0, 0); // psq_st psr, 0(r3), 0, 0 + } else { + instructionData[0] + = INSTR_PSQ_L(psr, 0, 3, 0, 0); // psq_l psr, 0(r3), 0, 0 + } - return TRKPPCAccessSpecialReg(srcDestPtr, instructionData, read); + return TRKPPCAccessSpecialReg(srcDestPtr, instructionData, read); } +#pragma dont_inline on DSError TRKPPCAccessFPRegister(void* srcDestPtr, u32 fpr, BOOL read) { - DSError error = DS_NoError; - // all nop by default - u32 instructionData1[] - = { INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP }; + DSError error = DS_NoError; + // all nop by default + u32 instructionData1[] = { + INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, + INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP, INSTR_NOP + }; - if (fpr < 0x20) { - if (read) { - instructionData1[0] = INSTR_STFD(fpr, 0, 3); // stfd fpr, 0(r3) - } else { - instructionData1[0] = INSTR_LFD(fpr, 0, 3); // lfd fpr, 0(r3) - } + if (fpr < 0x20) { + if (read) { + instructionData1[0] = INSTR_STFD(fpr, 0, 3); // stfd fpr, 0(r3) + } else { + instructionData1[0] = INSTR_LFD(fpr, 0, 3); // lfd fpr, 0(r3) + } - error = TRKPPCAccessSpecialReg(srcDestPtr, instructionData1, read); - } else if (fpr == 0x20) { - if (read) { - instructionData1[0] = INSTR_STFD(1, 0, 4); // stfd f1, 0(r4) - instructionData1[1] = 0xfc20048e; // mtfsf 0xff, f1 - instructionData1[2] = INSTR_STFD(1, 0, 3); // stfd f1, 0(r3) - instructionData1[3] = INSTR_LFD(1, 0, 4); // lfd f1, 0(r4) - } else { - instructionData1[0] = INSTR_STFD(1, 0, 4); // stfd f1, 0(r4) - instructionData1[1] = INSTR_LFD(1, 0, 3); // lfd f1, 0(r4) - instructionData1[2] = 0xfdfe0d8e; // mtfsf 0xff, f1 - instructionData1[3] = INSTR_LFD(1, 0, 4); // lfd f1, 0(r4) - } - error = TRKPPCAccessSpecialReg(srcDestPtr, instructionData1, read); - *(u64*)srcDestPtr &= 0xFFFFFFFF; - } else if (fpr == 0x21) { - if (!read) { - *(u32*)srcDestPtr = *((u32*)(srcDestPtr) + 1); - } + error = TRKPPCAccessSpecialReg(srcDestPtr, instructionData1, read); + } else if (fpr == 0x20) { + *(u64*)srcDestPtr &= 0xFFFFFFFF; + } else if (fpr == 0x21) { + if (!read) { + *(u32*)srcDestPtr = *((u32*)(srcDestPtr) + 1); + } + error = TRKPPCAccessSPR(srcDestPtr, 1022, read); + if (read) { + DSFetch_u64(srcDestPtr) = DSFetch_u32(srcDestPtr) & 0xffffffffLL; + } + } - error = TRKPPCAccessSPR(srcDestPtr, SPR_FPECR, read); - if (read) { - DSFetch_u64(srcDestPtr) = DSFetch_u32(srcDestPtr) & 0xffffffffLL; - } - } - - return error; + return error; } +#pragma dont_inline reset #define DEBUG_VECTORREG_ACCESS 0 DSError TRKPPCAccessSpecialReg(void* value, u32* access_func, BOOL read) { - typedef void (*asm_access_type)(void*, void*); + typedef void (*asm_access_type)(void*, void*); - asm_access_type asm_access; + asm_access_type asm_access; - /* - ** Construct a small assembly function to perform the - ** requested access and call it. The read/write function - ** is in the form: - ** - ** - ** blr - */ + /* + ** Construct a small assembly function to perform the + ** requested access and call it. The read/write function + ** is in the form: + ** + ** + ** blr + */ - /* - ** Put blr instruction at the end of access function (it should be - ** a 5-instruction array w/the last one empty). - */ + /* + ** Put blr instruction at the end of access function (it should be + ** a 5-instruction array w/the last one empty). + */ - access_func[9] = INSTR_BLR; + access_func[9] = INSTR_BLR; - /* - ** Now that the instruction array is built, get a function pointer to it. - */ + /* + ** Now that the instruction array is built, get a function pointer to it. + */ - asm_access = (asm_access_type)access_func; + asm_access = (asm_access_type)access_func; #if DEBUG_VECTORREG_ACCESS - __puts("\r\nasm_access: "); - __puthex8((u32)asm_access); - __puts(" access_func: "); - __puthex8((u32)access_func); + __puts("\r\nasm_access: "); + __puthex8((u32)asm_access); + __puts(" access_func: "); + __puthex8((u32)access_func); - for (i = 0; i < 10; i++) { - __puts("\r\ninst["); - __puthex2(i); - __puts("]: "); - __puthex8(access_func[i]); - __puts(" ; "); - __puthex8(*((u32*)asm_access + i)); - } + for (i = 0; i < 10; i++) { + __puts("\r\ninst["); + __puthex2(i); + __puts("]: "); + __puthex8(access_func[i]); + __puts(" ; "); + __puthex8(*((u32*)asm_access + i)); + } - __puts("\r\n"); + __puts("\r\n"); #endif - // Flush cache - TRK_flush_cache(access_func, (sizeof(access_func) * 10)); - (*asm_access)((u32*)value, (void*)&TRKvalue128_temp); + // Flush cache + TRK_flush_cache(access_func, (sizeof(access_func) * 10)); + (*asm_access)((u32*)value, (void*)&TRKvalue128_temp); - return DS_NoError; + return DS_NoError; } void TRKTargetSetInputPendingPtr(void* ptr) { gTRKState.inputPendingPtr = ptr; } From dc4d365f1a9eadf9d7e4b7111b98cebcecdaf5bb Mon Sep 17 00:00:00 2001 From: mrshigure Date: Mon, 17 Feb 2025 17:18:23 -0800 Subject: [PATCH 296/311] TRK: matched dispatch.c (US) (#566) --- configure.py | 2 +- src/TRK_MINNOW_DOLPHIN/dispatch.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/configure.py b/configure.py index dfc33f8c..398ade75 100644 --- a/configure.py +++ b/configure.py @@ -745,7 +745,7 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/msgbuf.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/serpoll.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/usr_put.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/dispatch.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/dispatch.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/msghndlr.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/support.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mutex_TRK.c"), diff --git a/src/TRK_MINNOW_DOLPHIN/dispatch.c b/src/TRK_MINNOW_DOLPHIN/dispatch.c index 76014bb6..9e3fc1e2 100644 --- a/src/TRK_MINNOW_DOLPHIN/dispatch.c +++ b/src/TRK_MINNOW_DOLPHIN/dispatch.c @@ -16,7 +16,7 @@ struct DispatchEntry gTRKDispatchTable[33] = { { &TRKDoUnsupported }, { &TRKDoUnsupported }, { &TRKDoUnsupported }, { &TRKDoUnsupported }, { &TRKDoReadMemory }, { &TRKDoWriteMemory }, { &TRKDoReadRegisters }, { &TRKDoWriteRegisters }, { &TRKDoUnsupported }, - { &TRKDoUnsupported }, { &TRKDoFlushCache }, { &TRKDoUnsupported }, + { &TRKDoUnsupported }, { &TRKDoFlushCache }, { &TRKDoSetOption }, { &TRKDoContinue }, { &TRKDoStep }, { &TRKDoStop }, { &TRKDoUnsupported }, { &TRKDoUnsupported }, { &TRKDoUnsupported }, { &TRKDoUnsupported }, { &TRKDoUnsupported }, @@ -36,6 +36,7 @@ DSError TRKDispatchMessage(TRKBuffer* buffer) error = DS_DispatchError; TRKSetBufferPosition(buffer, 0); TRKReadBuffer1_ui8(buffer, &command); + command &= 0xFF; if (command < gTRKDispatchTableSize) { error = gTRKDispatchTable[command].fn(buffer); } From 75d49a9e05c4b554b6416eb68600f58b3a0283f7 Mon Sep 17 00:00:00 2001 From: Rainchus Date: Fri, 14 Mar 2025 15:29:32 -0500 Subject: [PATCH 297/311] match fn_1_14CFC from thefoxcam, link file --- config/GMPE01_00/rels/mgmodedll/symbols.txt | 6 +++--- configure.py | 2 +- src/REL/mgmodedll/tictactoe.c | 17 ++++++++--------- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/config/GMPE01_00/rels/mgmodedll/symbols.txt b/config/GMPE01_00/rels/mgmodedll/symbols.txt index d9b88ae2..9022b619 100644 --- a/config/GMPE01_00/rels/mgmodedll/symbols.txt +++ b/config/GMPE01_00/rels/mgmodedll/symbols.txt @@ -490,9 +490,9 @@ lbl_1_data_168 = .data:0x00000168; // type:object size:0x2 data:2byte lbl_1_data_16A = .data:0x0000016A; // type:object size:0x30 lbl_1_data_19C = .data:0x0000019C; // type:object size:0x10 lbl_1_data_1AC = .data:0x000001AC; // type:object size:0x10 -lbl_1_data_1BC = .data:0x000001BC; // type:object size:0xA data:string -lbl_1_data_1C6 = .data:0x000001C6; // type:object size:0xE data:string -lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0xB data:string +lbl_1_data_1BC = .data:0x000001BC; // type:object size:0xA scope:local data:string +lbl_1_data_1C6 = .data:0x000001C6; // type:object size:0xE scope:local data:string +lbl_1_data_1D4 = .data:0x000001D4; // type:object size:0xB scope:local data:string lbl_1_data_1E4 = .data:0x000001E4; // type:object size:0x24 scope:local data:string lbl_1_data_208 = .data:0x00000208; // type:object size:0x26 scope:local data:string lbl_1_data_22E = .data:0x0000022E; // type:object size:0x27 scope:local data:string diff --git a/configure.py b/configure.py index 398ade75..a7d72d58 100644 --- a/configure.py +++ b/configure.py @@ -1352,7 +1352,7 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/free_play.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/record.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/battle.c"), - Object(NonMatching, "REL/mgmodedll/tictactoe.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/tictactoe.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/main.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/datalist.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPJ01_00"), "REL/mgmodedll/minigame.c"), diff --git a/src/REL/mgmodedll/tictactoe.c b/src/REL/mgmodedll/tictactoe.c index f2d5ad25..fd46191f 100644 --- a/src/REL/mgmodedll/tictactoe.c +++ b/src/REL/mgmodedll/tictactoe.c @@ -300,7 +300,7 @@ void fn_1_14CFC(void) AnimData *temp_r23; AnimData *temp_r22; s16 temp_r21; - s32 temp_r20; + s16 temp_r20; s16 sp8; for(temp_r31=0; temp_r31<4; temp_r31++) { lbl_1_bss_2C1C[temp_r31] = temp_r31; @@ -315,8 +315,8 @@ void fn_1_14CFC(void) } } if(lbl_1_bss_3A8 == 0) { - temp_r30 = HuSprGrpCreate(25); - lbl_1_bss_3A8 = temp_r30; + + lbl_1_bss_3A8 = temp_r30 = HuSprGrpCreate(25); temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 84), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r28, 200, 0); HuSprGrpMemberSet(temp_r30, 0, temp_r29); @@ -408,8 +408,8 @@ void fn_1_14CFC(void) HuSprTPLvlSet(temp_r30, 24, 0); } if(lbl_1_bss_3AA == 0) { - temp_r30 = HuSprGrpCreate(10); - lbl_1_bss_3AA = temp_r30; + + lbl_1_bss_3AA = temp_r30 = HuSprGrpCreate(10); temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 15), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r28, 200, 0); HuSprGrpMemberSet(temp_r30, 0, temp_r29); @@ -419,9 +419,8 @@ void fn_1_14CFC(void) HuSprGrpMemberSet(temp_r30, 1, temp_r29); HuSprPosSet(temp_r30, 1, 0, 0); for(temp_r31=0; temp_r31<4; temp_r31++) { - temp_r20 = GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].character; - lbl_1_bss_2C24[temp_r31] = temp_r20; - temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 16)+(s16)temp_r20, MEMORY_DEFAULT_NUM)); + temp_r20 = lbl_1_bss_2C24[temp_r31] = GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].character; + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 16)+temp_r20, MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r28, 190, 0); HuSprGrpMemberSet(temp_r30, (temp_r31*2)+2, temp_r29); HuSprPosSet(temp_r30, (temp_r31*2)+2, lbl_1_data_19C[temp_r31], 0); @@ -958,4 +957,4 @@ void fn_1_17BE0(void) } OSReport("com %d,%d\n", lbl_1_bss_3B0[0], lbl_1_bss_3B0[1]); -} \ No newline at end of file +} From 62803cc21f0328d19b83e3bdf9917110abe83f01 Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Fri, 14 Mar 2025 22:09:49 +0100 Subject: [PATCH 298/311] Some PAL symbols, ported m457Dll, naming progress on m457Dll (#568) * Add missing imports and mark uninitialized variables * Work on PAL symbols * Ported m457Dll to all versions * Some naming progress on m457Dll Changed some names in present and option --- config/GMPE01_00/rels/m457Dll/symbols.txt | 114 +- config/GMPE01_00/rels/mgmodedll/symbols.txt | 8 +- config/GMPE01_00/rels/modeseldll/symbols.txt | 90 +- config/GMPE01_00/symbols.txt | 2 +- config/GMPJ01_00/rels/m457Dll/splits.txt | 9 + config/GMPJ01_00/rels/m457Dll/symbols.txt | 332 ++-- config/GMPP01_00/rels/m401Dll/symbols.txt | 624 +++---- config/GMPP01_00/rels/m406Dll/symbols.txt | 450 ++--- config/GMPP01_00/rels/m409Dll/symbols.txt | 330 ++-- config/GMPP01_00/rels/m417Dll/symbols.txt | 490 ++--- config/GMPP01_00/rels/m427Dll/symbols.txt | 408 ++-- config/GMPP01_00/rels/m428Dll/symbols.txt | 406 ++-- config/GMPP01_00/rels/m433Dll/symbols.txt | 546 +++--- config/GMPP01_00/rels/m438Dll/symbols.txt | 456 ++--- config/GMPP01_00/rels/m443Dll/symbols.txt | 384 ++-- config/GMPP01_00/rels/m457Dll/splits.txt | 9 + config/GMPP01_00/rels/m457Dll/symbols.txt | 332 ++-- config/GMPP01_00/rels/m458Dll/symbols.txt | 194 +- config/GMPP01_00/rels/m459dll/symbols.txt | 164 +- config/GMPP01_00/rels/m460Dll/symbols.txt | 314 ++-- config/GMPP01_00/rels/m463Dll/symbols.txt | 186 +- config/GMPP01_00/rels/mentDll/symbols.txt | 462 ++--- config/GMPP01_00/rels/mgmodedll/symbols.txt | 660 +++---- config/GMPP01_00/rels/w01Dll/symbols.txt | 396 ++-- config/GMPP01_00/rels/w02Dll/symbols.txt | 506 ++--- config/GMPP01_00/rels/w03Dll/symbols.txt | 402 ++-- config/GMPP01_00/rels/w04Dll/symbols.txt | 440 ++--- configure.py | 10 +- include/REL/mgmodedll.h | 10 +- src/REL/bootDll/main.c | 3 +- src/REL/m413Dll/main.c | 7 + src/REL/m419Dll/main.c | 2 +- src/REL/m423Dll/main.c | 2 +- src/REL/m424Dll/claw.c | 2 +- src/REL/m424Dll/main.c | 2 +- src/REL/m425Dll/main.c | 2 +- src/REL/m450Dll/main.c | 2 +- src/REL/m457Dll/main.c | 1736 +++++++++--------- src/REL/m462Dll/main.c | 2 +- src/REL/mgmodedll/battle.c | 6 +- src/REL/mgmodedll/datalist.c | 228 +-- src/REL/mgmodedll/free_play.c | 4 +- src/REL/mgmodedll/mgmode.c | 66 +- src/REL/mgmodedll/record.c | 156 +- src/REL/mgmodedll/tictactoe.c | 746 ++++---- src/REL/option/state.c | 12 +- src/REL/present/camera.c | 8 +- src/REL/present/init.c | 12 +- src/REL/present/main.c | 10 +- src/REL/present/present.c | 14 +- src/game/armem.c | 2 +- src/game/code_8003FF68.c | 1 + 52 files changed, 5922 insertions(+), 5837 deletions(-) diff --git a/config/GMPE01_00/rels/m457Dll/symbols.txt b/config/GMPE01_00/rels/m457Dll/symbols.txt index 08eeab17..790cf96b 100644 --- a/config/GMPE01_00/rels/m457Dll/symbols.txt +++ b/config/GMPE01_00/rels/m457Dll/symbols.txt @@ -1,16 +1,16 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x3CC -fn_1_46C = .text:0x0000046C; // type:function size:0x2858 -fn_1_2CC4 = .text:0x00002CC4; // type:function size:0x283C -fn_1_5500 = .text:0x00005500; // type:function size:0x220 -fn_1_5720 = .text:0x00005720; // type:function size:0x29C -fn_1_59BC = .text:0x000059BC; // type:function size:0xB3C -fn_1_64F8 = .text:0x000064F8; // type:function size:0xAB8 -fn_1_6FB0 = .text:0x00006FB0; // type:function size:0x5F4 -fn_1_75A4 = .text:0x000075A4; // type:function size:0xC0 +CameraPrintDebug = .text:0x000000A0; // type:function size:0x3CC scope:local +M457PlayerExec = .text:0x0000046C; // type:function size:0x2858 scope:local +M457GameExec = .text:0x00002CC4; // type:function size:0x283C scope:local +WrestleMesMain = .text:0x00005500; // type:function size:0x220 scope:local +ShoveMesMain = .text:0x00005720; // type:function size:0x29C scope:local +M457Main = .text:0x000059BC; // type:function size:0xB3C scope:local +M457GameSetup = .text:0x000064F8; // type:function size:0xAB8 scope:local +M457PlayerSetup = .text:0x00006FB0; // type:function size:0x5F4 scope:local +M457Setup = .text:0x000075A4; // type:function size:0xC0 scope:local ObjectSetup = .text:0x00007664; // type:function size:0x480 -fn_1_7AE4 = .text:0x00007AE4; // type:function size:0x9C +M457Exit = .text:0x00007AE4; // type:function size:0x9C scope:local _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double @@ -121,59 +121,59 @@ lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data: lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 scope:local data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x5C -lbl_1_data_5C = .data:0x0000005C; // type:object size:0x5C data:4byte -lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x30 -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x30 -lbl_1_data_118 = .data:0x00000118; // type:object size:0x30 -lbl_1_data_148 = .data:0x00000148; // type:object size:0xC data:byte -lbl_1_data_154 = .data:0x00000154; // type:object size:0x30 -lbl_1_data_184 = .data:0x00000184; // type:object size:0x30 -lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x6C data:float -lbl_1_data_220 = .data:0x00000220; // type:object size:0x6C data:float -lbl_1_data_28C = .data:0x0000028C; // type:object size:0x18 data:float -lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x2 data:2byte -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x2 data:2byte -lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x4 data:4byte -lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x4 data:4byte -lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x2 data:2byte -lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x4 data:4byte -lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x4 data:4byte +sprDataNumTbl = .data:0x00000000; // type:object size:0x5C scope:local +sprIdTbl = .data:0x0000005C; // type:object size:0x5C scope:local data:4byte +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x30 scope:local +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x30 scope:local +lbl_1_data_118 = .data:0x00000118; // type:object size:0x30 scope:local +lbl_1_data_148 = .data:0x00000148; // type:object size:0xC scope:local data:byte +lbl_1_data_154 = .data:0x00000154; // type:object size:0x30 scope:local +lbl_1_data_184 = .data:0x00000184; // type:object size:0x30 scope:local +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x6C scope:local data:float +sparkDataTbl = .data:0x00000220; // type:object size:0x6C scope:local data:float +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x18 scope:local data:float +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x2 scope:local data:2byte +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x2 scope:local data:2byte +backgroundMusNo = .data:0x000002A8; // type:object size:0x4 scope:local data:4byte +windSeNo = .data:0x000002AC; // type:object size:0x4 scope:local data:4byte +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x2 scope:local data:2byte +invincibilitySeNo = .data:0x000002B4; // type:object size:0x4 scope:local data:4byte +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x4 scope:local data:4byte lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x9 scope:local data:string lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0x3 scope:local data:string jumptable_1_data_2C8 = .data:0x000002C8; // type:object size:0x2C scope:local jumptable_1_data_2F4 = .data:0x000002F4; // type:object size:0x48 scope:local -lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 data:4byte -lbl_1_data_340 = .data:0x00000340; // type:object size:0x4 data:float -lbl_1_data_344 = .data:0x00000344; // type:object size:0x4 data:float -lbl_1_data_348 = .data:0x00000348; // type:object size:0x4 data:float +lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 scope:local data:4byte +lbl_1_data_340 = .data:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_data_344 = .data:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_data_348 = .data:0x00000348; // type:object size:0x4 scope:local data:float jumptable_1_data_34C = .data:0x0000034C; // type:object size:0x20 scope:local jumptable_1_data_36C = .data:0x0000036C; // type:object size:0x2C scope:local lbl_1_data_398 = .data:0x00000398; // type:object size:0x12 scope:local data:string lbl_1_data_3AA = .data:0x000003AA; // type:object size:0x19 scope:local data:string lbl_1_data_3C3 = .data:0x000003C3; // type:object size:0x24 scope:local data:string -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte -lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte -lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x8 data:4byte -lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte -lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte -lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x50 data:4byte +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +m457MesEndF = .bss:0x00000010; // type:object size:0x4 scope:local data:4byte +againstBrowserF = .bss:0x00000014; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 scope:local data:4byte +lightId = .bss:0x00000048; // type:object size:0x4 scope:local data:4byte +objman = .bss:0x0000004C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 scope:local data:4byte +gameState = .bss:0x0000005C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 scope:local data:4byte +gameObj = .bss:0x00000064; // type:object size:0x4 scope:local data:4byte +playerObj = .bss:0x00000068; // type:object size:0x8 scope:local data:4byte +omViewObj = .bss:0x00000070; // type:object size:0x4 scope:local data:4byte +mainObj = .bss:0x00000074; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x50 scope:local data:4byte diff --git a/config/GMPE01_00/rels/mgmodedll/symbols.txt b/config/GMPE01_00/rels/mgmodedll/symbols.txt index 9022b619..5a1f7053 100644 --- a/config/GMPE01_00/rels/mgmodedll/symbols.txt +++ b/config/GMPE01_00/rels/mgmodedll/symbols.txt @@ -482,7 +482,7 @@ customMinNum$837 = .data:0x000000D6; // type:object size:0x8 scope:local lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x20 data:float lbl_1_data_100 = .data:0x00000100; // type:object size:0x10 lbl_1_data_110 = .data:0x00000110; // type:object size:0xC -lbl_1_data_120 = .data:0x00000120; // type:object size:0x28 +mgRecordIdxTbl = .data:0x00000120; // type:object size:0x28 lbl_1_data_148 = .data:0x00000148; // type:object size:0x2 data:2byte lbl_1_data_14A = .data:0x0000014A; // type:object size:0x8 lbl_1_data_152 = .data:0x00000152; // type:object size:0x10 data:4byte @@ -516,7 +516,7 @@ lbl_1_data_9C0 = .data:0x000009C0; // type:object size:0x20 lbl_1_data_9E0 = .data:0x000009E0; // type:object size:0x20 lbl_1_data_A00 = .data:0x00000A00; // type:object size:0x2 data:2byte lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +mgModeEvtNo = .bss:0x00000004; // type:object size:0x2 data:2byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x264 data:4byte lbl_1_bss_26C = .bss:0x0000026C; // type:object size:0x8 data:float lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x18 data:4byte @@ -549,8 +549,8 @@ lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x8 lbl_1_bss_348 = .bss:0x00000348; // type:object size:0x2 data:2byte lbl_1_bss_34A = .bss:0x0000034A; // type:object size:0x8 data:2byte lbl_1_bss_352 = .bss:0x00000352; // type:object size:0x1C -lbl_1_bss_370 = .bss:0x00000370; // type:object size:0xC -lbl_1_bss_37C = .bss:0x0000037C; // type:object size:0xC +lbl_1_bss_370 = .bss:0x00000370; // type:object size:0xC scope:local +lbl_1_bss_37C = .bss:0x0000037C; // type:object size:0xC scope:local lbl_1_bss_388 = .bss:0x00000388; // type:object size:0x2 data:2byte lbl_1_bss_38A = .bss:0x0000038A; // type:object size:0x2 data:2byte lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x8 diff --git a/config/GMPE01_00/rels/modeseldll/symbols.txt b/config/GMPE01_00/rels/modeseldll/symbols.txt index 53057676..1dd29df7 100644 --- a/config/GMPE01_00/rels/modeseldll/symbols.txt +++ b/config/GMPE01_00/rels/modeseldll/symbols.txt @@ -73,48 +73,48 @@ lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:d lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 data:double -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x8 scope:local data:double +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float @@ -188,9 +188,9 @@ lbl_1_data_80 = .data:0x00000080; // type:object size:0xC lbl_1_data_8C = .data:0x0000008C; // type:object size:0x18 lbl_1_data_A4 = .data:0x000000A4; // type:object size:0x18 lbl_1_data_BC = .data:0x000000BC; // type:object size:0x18 -lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x14 data:string -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x9 data:string -lbl_1_data_F1 = .data:0x000000F1; // type:object size:0xF +lbl_1_data_D4 = .data:0x000000D4; // type:object size:0x14 scope:local data:string +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x9 scope:local data:string +lbl_1_data_F1 = .data:0x000000F1; // type:object size:0xF scope:local lbl_1_data_100 = .data:0x00000100; // type:object size:0x2 data:2byte lbl_1_data_104 = .data:0x00000104; // type:object size:0x118 data:float lbl_1_data_21C = .data:0x0000021C; // type:object size:0x48 data:4byte diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index d2b64397..19a42077 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -4543,7 +4543,7 @@ jumptable_8013FD68 = .data:0x8013FD68; // type:object size:0x24 scope:local jumptable_8013FD8C = .data:0x8013FD8C; // type:object size:0x24 scope:local jumptable_8013FDB0 = .data:0x8013FDB0; // type:object size:0x24 scope:local sndSintab = .data:0x8013FDD8; // type:object size:0x800 -dspSlave = .data:0x801405E0; // type:object size:0x19E0 align:32 +dspSlave = .data:0x801405E0; // type:object size:0x19E0 align:32 data:byte lens$301 = .data:0x80141FC0; // type:object size:0x10 scope:local lens$301 = .data:0x80141FD0; // type:object size:0x20 scope:local rsmpTab12khz = .data:0x80141FF0; // type:object size:0x800 scope:local diff --git a/config/GMPJ01_00/rels/m457Dll/splits.txt b/config/GMPJ01_00/rels/m457Dll/splits.txt index 531cd645..b1f5db69 100644 --- a/config/GMPJ01_00/rels/m457Dll/splits.txt +++ b/config/GMPJ01_00/rels/m457Dll/splits.txt @@ -5,3 +5,12 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m457Dll/main.c: + .text start:0x000000A0 end:0x00007B60 + .rodata start:0x00000000 end:0x00000578 + .data start:0x00000000 end:0x000003E7 + .bss start:0x00000000 end:0x000000C8 diff --git a/config/GMPJ01_00/rels/m457Dll/symbols.txt b/config/GMPJ01_00/rels/m457Dll/symbols.txt index 536be91f..fd8c1e4e 100644 --- a/config/GMPJ01_00/rels/m457Dll/symbols.txt +++ b/config/GMPJ01_00/rels/m457Dll/symbols.txt @@ -1,178 +1,178 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x3CC -fn_1_46C = .text:0x0000046C; // type:function size:0x2858 -fn_1_2CC4 = .text:0x00002CC4; // type:function size:0x281C -fn_1_54E0 = .text:0x000054E0; // type:function size:0x220 -fn_1_5700 = .text:0x00005700; // type:function size:0x29C -fn_1_599C = .text:0x0000599C; // type:function size:0xB3C -fn_1_64D8 = .text:0x000064D8; // type:function size:0xAB8 -fn_1_6F90 = .text:0x00006F90; // type:function size:0x5F4 -fn_1_7584 = .text:0x00007584; // type:function size:0xC0 -fn_1_7644 = .text:0x00007644; // type:function size:0x480 -fn_1_7AC4 = .text:0x00007AC4; // type:function size:0x9C +CameraPrintDebug = .text:0x000000A0; // type:function size:0x3CC scope:local +M457PlayerExec = .text:0x0000046C; // type:function size:0x2858 scope:local +M457GameExec = .text:0x00002CC4; // type:function size:0x281C scope:local +WrestleMesMain = .text:0x000054E0; // type:function size:0x220 scope:local +ShoveMesMain = .text:0x00005700; // type:function size:0x29C scope:local +M457Main = .text:0x0000599C; // type:function size:0xB3C scope:local +M457GameSetup = .text:0x000064D8; // type:function size:0xAB8 scope:local +M457PlayerSetup = .text:0x00006F90; // type:function size:0x5F4 scope:local +M457Setup = .text:0x00007584; // type:function size:0xC0 scope:local +ObjectSetup = .text:0x00007644; // type:function size:0x480 +M457Exit = .text:0x00007AC4; // type:function size:0x9C scope:local _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x24 data:4byte -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 scope:local data:4byte lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x64 -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x8 data:4byte -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x8 data:4byte -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x40 data:4byte -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x40 data:4byte -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:4byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:4byte lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x90 -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 data:double -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 data:double -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 data:double -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x14 data:4byte -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:4byte -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:4byte -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x40 data:4byte -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x40 data:4byte +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 scope:local data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 scope:local data:double +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 scope:local data:double +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x40 scope:local data:4byte lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x5C lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x5C -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0xC data:4byte -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0xC data:4byte -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x1 data:byte -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float -lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float -lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float -lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x5C -lbl_1_data_5C = .data:0x0000005C; // type:object size:0x5C data:4byte -lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x30 -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x30 -lbl_1_data_118 = .data:0x00000118; // type:object size:0x30 -lbl_1_data_148 = .data:0x00000148; // type:object size:0xC -lbl_1_data_154 = .data:0x00000154; // type:object size:0x30 -lbl_1_data_184 = .data:0x00000184; // type:object size:0x30 -lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x6C -lbl_1_data_220 = .data:0x00000220; // type:object size:0x6C -lbl_1_data_28C = .data:0x0000028C; // type:object size:0x18 data:float -lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x2 data:2byte -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x2 data:2byte -lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x4 data:4byte -lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x4 data:4byte -lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x2 data:2byte -lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x4 data:4byte -lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x4 data:4byte -lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x9 data:string -lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0x3 data:string +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 scope:local data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 scope:local data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 scope:local data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 scope:local data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +sprDataNumTbl = .data:0x00000000; // type:object size:0x5C scope:local +sprIdTbl = .data:0x0000005C; // type:object size:0x5C data:4byte scope:local +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x30 scope:local +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x30 scope:local +lbl_1_data_118 = .data:0x00000118; // type:object size:0x30 scope:local +lbl_1_data_148 = .data:0x00000148; // type:object size:0xC scope:local +lbl_1_data_154 = .data:0x00000154; // type:object size:0x30 scope:local +lbl_1_data_184 = .data:0x00000184; // type:object size:0x30 scope:local +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x6C scope:local +sparkDataTbl = .data:0x00000220; // type:object size:0x6C scope:local +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x18 data:float scope:local +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x2 data:2byte scope:local +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x2 data:2byte scope:local +backgroundMusNo = .data:0x000002A8; // type:object size:0x4 data:4byte scope:local +windSeNo = .data:0x000002AC; // type:object size:0x4 data:4byte scope:local +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x2 data:2byte scope:local +invincibilitySeNo = .data:0x000002B4; // type:object size:0x4 data:4byte scope:local +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x4 data:4byte scope:local +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x9 scope:local data:string +lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0x3 scope:local data:string jumptable_1_data_2C8 = .data:0x000002C8; // type:object size:0x2C scope:local jumptable_1_data_2F4 = .data:0x000002F4; // type:object size:0x48 scope:local -lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 data:4byte -lbl_1_data_340 = .data:0x00000340; // type:object size:0x4 data:float -lbl_1_data_344 = .data:0x00000344; // type:object size:0x4 data:float -lbl_1_data_348 = .data:0x00000348; // type:object size:0x4 data:float +lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 data:4byte scope:local +lbl_1_data_340 = .data:0x00000340; // type:object size:0x4 data:float scope:local +lbl_1_data_344 = .data:0x00000344; // type:object size:0x4 data:float scope:local +lbl_1_data_348 = .data:0x00000348; // type:object size:0x4 data:float scope:local jumptable_1_data_34C = .data:0x0000034C; // type:object size:0x20 scope:local jumptable_1_data_36C = .data:0x0000036C; // type:object size:0x2C scope:local -lbl_1_data_398 = .data:0x00000398; // type:object size:0x12 data:string -lbl_1_data_3AA = .data:0x000003AA; // type:object size:0x19 data:string -lbl_1_data_3C3 = .data:0x000003C3; // type:object size:0x24 data:string -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:float -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte -lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 data:4byte -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte -lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x8 data:4byte -lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte -lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte -lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x50 data:4byte +lbl_1_data_398 = .data:0x00000398; // type:object size:0x12 scope:local data:string +lbl_1_data_3AA = .data:0x000003AA; // type:object size:0x19 scope:local data:string +lbl_1_data_3C3 = .data:0x000003C3; // type:object size:0x24 scope:local data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte scope:local +m457MesEndF = .bss:0x00000010; // type:object size:0x4 data:4byte scope:local +againstBrowserF = .bss:0x00000014; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float scope:local +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float scope:local +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float scope:local +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float scope:local +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte scope:local +lightId = .bss:0x00000048; // type:object size:0x4 data:4byte scope:local +objman = .bss:0x0000004C; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte scope:local +gameState = .bss:0x0000005C; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte scope:local +gameObj = .bss:0x00000064; // type:object size:0x4 data:4byte scope:local +playerObj = .bss:0x00000068; // type:object size:0x8 data:4byte scope:local +omViewObj = .bss:0x00000070; // type:object size:0x4 data:4byte scope:local +mainObj = .bss:0x00000074; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x50 data:4byte scope:local diff --git a/config/GMPP01_00/rels/m401Dll/symbols.txt b/config/GMPP01_00/rels/m401Dll/symbols.txt index 98566a01..bab1a956 100644 --- a/config/GMPP01_00/rels/m401Dll/symbols.txt +++ b/config/GMPP01_00/rels/m401Dll/symbols.txt @@ -120,311 +120,311 @@ fn_2_1473C = .text:0x0001473C; // type:function size:0x7C fn_2_147B8 = .text:0x000147B8; // type:function size:0x660 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_2_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_2_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_2_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_2_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_2_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_2_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_2_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_2_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_2_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_2_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_2_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_2_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_2_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_2_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_2_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_2_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_2_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_2_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_2_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_2_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_2_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_2_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_2_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_2_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_2_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_2_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_2_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_2_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_2_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_2_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_2_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_2_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_2_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_2_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_2_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_2_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_2_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_2_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_2_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_2_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_2_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_2_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_2_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_2_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_2_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_2_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_2_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_2_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_2_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_2_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_2_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_2_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_2_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_2_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_2_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_2_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_2_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_2_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_2_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_2_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_2_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_2_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_2_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_2_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_2_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_2_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_2_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_2_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_2_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_2_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_2_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_2_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_2_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_2_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_2_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_2_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_2_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_2_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_2_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_2_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_2_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_2_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_2_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_2_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_2_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_2_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_2_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_2_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_2_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_2_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_2_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_2_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_2_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_2_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_2_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_2_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_2_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_2_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_2_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_2_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_2_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_2_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_2_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_2_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_2_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_2_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_2_rodata_1DC = .rodata:0x000001DC; // type:object size:0x10 data:4byte -lbl_2_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_2_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_2_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_2_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_2_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_2_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_2_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_2_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_2_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_2_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_2_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_2_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_2_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_2_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_2_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_2_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_2_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_2_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_2_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_2_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_2_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_2_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_2_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_2_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_2_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_2_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_2_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_2_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_2_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_2_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_2_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_2_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_2_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_2_rodata_290 = .rodata:0x00000290; // type:object size:0x40 data:2byte -lbl_2_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:2byte -lbl_2_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:2byte -lbl_2_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:2byte -lbl_2_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_2_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_2_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_2_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_2_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_2_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_2_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_2_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_2_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_2_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_2_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_2_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_2_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_2_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_2_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_2_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_2_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_2_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_2_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_2_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double -lbl_2_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_2_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_2_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_2_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_2_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_2_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_2_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double -lbl_2_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_2_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_2_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_2_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_2_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_2_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_2_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_2_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_2_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_2_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_2_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_2_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_2_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_2_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_2_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_2_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_2_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_2_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_2_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_2_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_2_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_2_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_2_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_2_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_2_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_2_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_2_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_2_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_2_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_2_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_2_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_2_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_2_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_2_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_2_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_2_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_2_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double -lbl_2_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_2_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_2_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_2_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_2_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double -lbl_2_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_2_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double -lbl_2_rodata_440 = .rodata:0x00000440; // type:object size:0x8 data:double -lbl_2_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_2_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_2_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_2_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_2_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_2_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_2_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_2_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_2_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double -lbl_2_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_2_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_2_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double -lbl_2_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double -lbl_2_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_2_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_2_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_2_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_2_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_2_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_2_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_2_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_2_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_2_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double -lbl_2_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 data:double -lbl_2_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double -lbl_2_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double -lbl_2_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_2_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_2_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_2_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_2_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_2_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_2_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_2_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_2_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_2_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_2_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_2_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_2_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double -lbl_2_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double -lbl_2_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_2_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_2_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_2_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_2_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_2_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_2_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_2_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_2_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_2_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_2_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_2_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_2_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float -lbl_2_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float -lbl_2_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_2_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float -lbl_2_rodata_550 = .rodata:0x00000550; // type:object size:0x8 data:double -lbl_2_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_2_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float -lbl_2_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:double -lbl_2_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float -lbl_2_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float -lbl_2_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_2_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float -lbl_2_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float -lbl_2_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float -lbl_2_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float -lbl_2_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_2_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_2_rodata_590 = .rodata:0x00000590; // type:object size:0x8 data:double -lbl_2_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_2_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float -lbl_2_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float -lbl_2_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 data:float -lbl_2_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_2_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_2_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_2_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_2_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 data:double -lbl_2_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float -lbl_2_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float -lbl_2_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float -lbl_2_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_2_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_2_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float -lbl_2_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float -lbl_2_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float -lbl_2_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_2_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float +lbl_2_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_2_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_2_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_2_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_2_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_2_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_2_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_2_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_2_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_2_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_2_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_2_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_2_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_2_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_2_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_2_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_2_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_2_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_2_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_2_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_2_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_2_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_2_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_2_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double +lbl_2_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_2_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_2_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_2_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_2_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_2_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_2_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_2_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_2_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_2_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_2_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_2_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_2_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_2_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_2_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_2_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_2_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_2_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_2_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_2_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_2_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_2_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_2_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_2_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_2_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_2_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_2_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_2_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_2_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_2_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_2_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_2_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_2_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1DC = .rodata:0x000001DC; // type:object size:0x10 scope:local data:4byte +lbl_2_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_2_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_2_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_2_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_2_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_2_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_2_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_2_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_2_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_2_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_2_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_2_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_2_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_2_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_2_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_2_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_2_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_2_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_2_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_2_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_2_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_2_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_2_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_2_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_2_rodata_290 = .rodata:0x00000290; // type:object size:0x40 scope:local data:2byte +lbl_2_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:2byte +lbl_2_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:2byte +lbl_2_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:2byte +lbl_2_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_2_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_2_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_2_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_2_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_2_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_2_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_2_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_2_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_2_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_2_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_2_rodata_340 = .rodata:0x00000340; // type:object size:0x8 scope:local data:double +lbl_2_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_2_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_2_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_2_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_2_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_2_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_2_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_2_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_2_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_2_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_2_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_2_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_2_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_2_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_2_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_2_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_2_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_2_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_2_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double +lbl_2_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_2_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_2_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_2_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_2_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_2_rodata_438 = .rodata:0x00000438; // type:object size:0x8 scope:local data:double +lbl_2_rodata_440 = .rodata:0x00000440; // type:object size:0x8 scope:local data:double +lbl_2_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_2_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_2_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_2_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_2_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_2_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_2_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_2_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_2_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_2_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:double +lbl_2_rodata_480 = .rodata:0x00000480; // type:object size:0x8 scope:local data:double +lbl_2_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_2_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_2_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_2_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_2_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 scope:local data:double +lbl_2_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x8 scope:local data:double +lbl_2_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 scope:local data:double +lbl_2_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 scope:local data:double +lbl_2_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_500 = .rodata:0x00000500; // type:object size:0x8 scope:local data:double +lbl_2_rodata_508 = .rodata:0x00000508; // type:object size:0x8 scope:local data:double +lbl_2_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_2_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_2_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_2_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_2_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_2_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_2_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_2_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_2_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_2_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_2_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_2_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_2_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_550 = .rodata:0x00000550; // type:object size:0x8 scope:local data:double +lbl_2_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_2_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_560 = .rodata:0x00000560; // type:object size:0x8 scope:local data:double +lbl_2_rodata_568 = .rodata:0x00000568; // type:object size:0x4 scope:local data:float +lbl_2_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_2_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +lbl_2_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float +lbl_2_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float +lbl_2_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_2_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_2_rodata_590 = .rodata:0x00000590; // type:object size:0x8 scope:local data:double +lbl_2_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_2_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5A4 = .rodata:0x000005A4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x8 scope:local data:double +lbl_2_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_2_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float lbl_2_data_0 = .data:0x00000000; // type:object size:0x4 data:float lbl_2_data_4 = .data:0x00000004; // type:object size:0x10 lbl_2_data_14 = .data:0x00000014; // type:object size:0xC @@ -433,16 +433,16 @@ lbl_2_data_2C = .data:0x0000002C; // type:object size:0x4 lbl_2_data_30 = .data:0x00000030; // type:object size:0xC data:float lbl_2_data_3C = .data:0x0000003C; // type:object size:0xC lbl_2_data_48 = .data:0x00000048; // type:object size:0xC data:float -lbl_2_data_54 = .data:0x00000054; // type:object size:0x1B data:string +lbl_2_data_54 = .data:0x00000054; // type:object size:0x1B scope:local data:string lbl_2_data_6F = .data:0x0000006F; // type:object size:0x11 lbl_2_data_80 = .data:0x00000080; // type:object size:0x20 lbl_2_data_A0 = .data:0x000000A0; // type:object size:0x14 lbl_2_data_B4 = .data:0x000000B4; // type:object size:0x18 lbl_2_data_CC = .data:0x000000CC; // type:object size:0x28 -lbl_2_data_F4 = .data:0x000000F4; // type:object size:0x9 data:string -lbl_2_data_FD = .data:0x000000FD; // type:object size:0x9 data:string -lbl_2_data_106 = .data:0x00000106; // type:object size:0x9 data:string -lbl_2_data_10F = .data:0x0000010F; // type:object size:0x9 data:string +lbl_2_data_F4 = .data:0x000000F4; // type:object size:0x9 scope:local data:string +lbl_2_data_FD = .data:0x000000FD; // type:object size:0x9 scope:local data:string +lbl_2_data_106 = .data:0x00000106; // type:object size:0x9 scope:local data:string +lbl_2_data_10F = .data:0x0000010F; // type:object size:0x9 scope:local data:string lbl_2_data_118 = .data:0x00000118; // type:object size:0xC lbl_2_data_124 = .data:0x00000124; // type:object size:0x34 data:4byte lbl_2_data_158 = .data:0x00000158; // type:object size:0x140 @@ -453,9 +453,9 @@ lbl_2_data_32C = .data:0x0000032C; // type:object size:0x8 lbl_2_data_334 = .data:0x00000334; // type:object size:0xF0 lbl_2_data_424 = .data:0x00000424; // type:object size:0x8 lbl_2_data_42C = .data:0x0000042C; // type:object size:0x28 -lbl_2_data_454 = .data:0x00000454; // type:object size:0xC data:string +lbl_2_data_454 = .data:0x00000454; // type:object size:0xC scope:local data:string lbl_2_data_460 = .data:0x00000460; // type:object size:0xC -lbl_2_data_46C = .data:0x0000046C; // type:object size:0x5 data:string +lbl_2_data_46C = .data:0x0000046C; // type:object size:0x5 scope:local data:string lbl_2_data_471 = .data:0x00000471; // type:object size:0x7 jumptable_2_data_478 = .data:0x00000478; // type:object size:0x20 scope:local lbl_2_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte diff --git a/config/GMPP01_00/rels/m406Dll/symbols.txt b/config/GMPP01_00/rels/m406Dll/symbols.txt index 410427a0..6be5c2a5 100644 --- a/config/GMPP01_00/rels/m406Dll/symbols.txt +++ b/config/GMPP01_00/rels/m406Dll/symbols.txt @@ -121,226 +121,226 @@ fn_1_13D00 = .text:0x00013D00; // type:function size:0x7E4 fn_1_144E4 = .text:0x000144E4; // type:function size:0x330 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x1 data:byte -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 data:double -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 scope:local data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x8 scope:local data:double +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x8C data:float lbl_1_data_8C = .data:0x0000008C; // type:object size:0x24 jumptable_1_data_B0 = .data:0x000000B0; // type:object size:0x40 scope:local @@ -360,7 +360,7 @@ lbl_1_data_82C = .data:0x0000082C; // type:object size:0xC lbl_1_data_838 = .data:0x00000838; // type:object size:0xC lbl_1_data_844 = .data:0x00000844; // type:object size:0xC lbl_1_data_850 = .data:0x00000850; // type:object size:0x20 -lbl_1_data_870 = .data:0x00000870; // type:object size:0x1F data:string +lbl_1_data_870 = .data:0x00000870; // type:object size:0x1F scope:local data:string lbl_1_data_88F = .data:0x0000088F; // type:object size:0x1 data:byte lbl_1_data_893 = .data:0x00000893; // type:object size:0x1 data:byte lbl_1_data_897 = .data:0x00000897; // type:object size:0x1 data:byte @@ -377,16 +377,16 @@ lbl_1_data_930 = .data:0x00000930; // type:object size:0x30 lbl_1_data_960 = .data:0x00000960; // type:object size:0x348 lbl_1_data_CA8 = .data:0x00000CA8; // type:object size:0x348 lbl_1_data_FF0 = .data:0x00000FF0; // type:object size:0x10 -lbl_1_data_1000 = .data:0x00001000; // type:object size:0x19 data:string -lbl_1_data_1019 = .data:0x00001019; // type:object size:0x19 data:string -lbl_1_data_1032 = .data:0x00001032; // type:object size:0x1A data:string +lbl_1_data_1000 = .data:0x00001000; // type:object size:0x19 scope:local data:string +lbl_1_data_1019 = .data:0x00001019; // type:object size:0x19 scope:local data:string +lbl_1_data_1032 = .data:0x00001032; // type:object size:0x1A scope:local data:string lbl_1_data_104C = .data:0x0000104C; // type:object size:0x1C lbl_1_data_1068 = .data:0x00001068; // type:object size:0x10 lbl_1_data_1078 = .data:0x00001078; // type:object size:0x28 lbl_1_data_10A0 = .data:0x000010A0; // type:object size:0x80 lbl_1_data_1120 = .data:0x00001120; // type:object size:0x20 lbl_1_data_1140 = .data:0x00001140; // type:object size:0x8 -lbl_1_data_1148 = .data:0x00001148; // type:object size:0x1C data:string +lbl_1_data_1148 = .data:0x00001148; // type:object size:0x1C scope:local data:string lbl_1_data_1164 = .data:0x00001164; // type:object size:0x90 lbl_1_data_11F4 = .data:0x000011F4; // type:object size:0x4 data:4byte lbl_1_data_11F8 = .data:0x000011F8; // type:object size:0x20 diff --git a/config/GMPP01_00/rels/m409Dll/symbols.txt b/config/GMPP01_00/rels/m409Dll/symbols.txt index 7c66be88..54b3dcb3 100644 --- a/config/GMPP01_00/rels/m409Dll/symbols.txt +++ b/config/GMPP01_00/rels/m409Dll/symbols.txt @@ -114,172 +114,172 @@ fn_1_F478 = .text:0x0000F478; // type:function size:0x78 fn_1_F4F0 = .text:0x0000F4F0; // type:function size:0x98 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x30 data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x30 scope:local data:4byte lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x100 -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x30 data:4byte -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x10 data:byte -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 scope:local data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 scope:local data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x10 scope:local data:byte +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0x10 diff --git a/config/GMPP01_00/rels/m417Dll/symbols.txt b/config/GMPP01_00/rels/m417Dll/symbols.txt index 7118da97..f539c02c 100644 --- a/config/GMPP01_00/rels/m417Dll/symbols.txt +++ b/config/GMPP01_00/rels/m417Dll/symbols.txt @@ -82,251 +82,251 @@ fn_1_C698 = .text:0x0000C698; // type:function size:0x134 fn_1_C7CC = .text:0x0000C7CC; // type:function size:0xF0 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC data:4byte -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x24 data:4byte -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x24 data:4byte -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0xC data:4byte -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x1 data:byte -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x1 data:byte -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:4byte -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x10 data:4byte -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x10 data:4byte -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x10 data:4byte -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0xC data:4byte -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC data:4byte -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0xC data:4byte -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x10 data:4byte -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0xC data:4byte -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:4byte -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x18 data:4byte -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x18 data:4byte -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 data:float -lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 data:float -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:double -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x8 data:double -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float -lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:double -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 data:double -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float -lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 data:float -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 scope:local data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 scope:local data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 scope:local data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x4 scope:local data:float +lbl_1_rodata_524 = .rodata:0x00000524; // type:object size:0x4 scope:local data:float +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 scope:local data:double +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x8 scope:local data:double +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 scope:local data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 scope:local data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 scope:local data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 scope:local data:double +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 scope:local data:double +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float diff --git a/config/GMPP01_00/rels/m427Dll/symbols.txt b/config/GMPP01_00/rels/m427Dll/symbols.txt index 2f1c580a..2ca9cb3f 100644 --- a/config/GMPP01_00/rels/m427Dll/symbols.txt +++ b/config/GMPP01_00/rels/m427Dll/symbols.txt @@ -144,210 +144,210 @@ fn_1_172DC = .text:0x000172DC; // type:function size:0x140 fn_1_1741C = .text:0x0001741C; // type:function size:0xA4 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC data:2byte -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x3C data:4byte -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x6 data:2byte -lbl_1_rodata_136 = .rodata:0x00000136; // type:object size:0xC data:2byte -lbl_1_rodata_142 = .rodata:0x00000142; // type:object size:0x1A data:2byte -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x24 data:4byte -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x30 data:4byte -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x10 data:4byte -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0xC data:4byte -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0xC data:4byte -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x1 data:byte -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x1 data:byte -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x1 data:byte -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x1 data:byte -lbl_1_rodata_38A = .rodata:0x0000038A; // type:object size:0x1 data:byte -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 data:double -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 data:double -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x3C scope:local data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x6 scope:local data:2byte +lbl_1_rodata_136 = .rodata:0x00000136; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_142 = .rodata:0x00000142; // type:object size:0x1A scope:local data:2byte +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_38A = .rodata:0x0000038A; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 scope:local data:double +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x8 scope:local data:double +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:float lbl_1_data_70 = .data:0x00000070; // type:object size:0x24 jumptable_1_data_94 = .data:0x00000094; // type:object size:0x3C scope:local diff --git a/config/GMPP01_00/rels/m428Dll/symbols.txt b/config/GMPP01_00/rels/m428Dll/symbols.txt index 8abe3e61..dff9c748 100644 --- a/config/GMPP01_00/rels/m428Dll/symbols.txt +++ b/config/GMPP01_00/rels/m428Dll/symbols.txt @@ -124,209 +124,209 @@ fn_1_145C0 = .text:0x000145C0; // type:function size:0x98 fn_1_14658 = .text:0x00014658; // type:function size:0x98 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 data:double -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 scope:local data:double +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x54 data:float lbl_1_data_54 = .data:0x00000054; // type:object size:0xC lbl_1_data_60 = .data:0x00000060; // type:object size:0xC diff --git a/config/GMPP01_00/rels/m433Dll/symbols.txt b/config/GMPP01_00/rels/m433Dll/symbols.txt index ebeb6d4e..4b4ddd22 100644 --- a/config/GMPP01_00/rels/m433Dll/symbols.txt +++ b/config/GMPP01_00/rels/m433Dll/symbols.txt @@ -119,280 +119,280 @@ fn_1_110E4 = .text:0x000110E4; // type:function size:0x98 fn_1_1117C = .text:0x0001117C; // type:function size:0x1B0 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x10 data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0xC0 -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x10 data:4byte -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x10 data:4byte -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 data:4byte -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 data:4byte -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x10 data:4byte -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x18 data:4byte -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x18 data:4byte -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 data:double -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x8 data:double -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:4byte -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x8 data:double -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x24 data:4byte -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x8 data:4byte -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:4byte -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 data:4byte -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float -lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float -lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 data:float -lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 data:float -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float -lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x8 data:4byte -lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 data:float -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x8 data:double -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x8 data:4byte -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 data:float -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 data:double -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float -lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 data:float -lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 data:float -lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 data:float -lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float -lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 data:double -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 data:double -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 data:float -lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 data:float -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float -lbl_1_rodata_5FC = .rodata:0x000005FC; // type:object size:0x4 data:float -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x4 data:float -lbl_1_rodata_604 = .rodata:0x00000604; // type:object size:0x4 data:float -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 data:float -lbl_1_rodata_60C = .rodata:0x0000060C; // type:object size:0x4 data:float -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float -lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float -lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 data:float -lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 data:float -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float -lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float -lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float -lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 data:float -lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 data:float -lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 data:float -lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 data:float -lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 data:float -lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 data:float -lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 data:float -lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float -lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float -lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 data:float -lbl_1_rodata_66C = .rodata:0x0000066C; // type:object size:0x4 data:float -lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 data:double -lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 data:float -lbl_1_rodata_67C = .rodata:0x0000067C; // type:object size:0x4 data:float -lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 data:float -lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x8 data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 scope:local data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x8 scope:local data:double +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:4byte +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 scope:local data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 scope:local data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 scope:local data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data:float +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x4 scope:local data:float +lbl_1_rodata_56C = .rodata:0x0000056C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float +lbl_1_rodata_57C = .rodata:0x0000057C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_584 = .rodata:0x00000584; // type:object size:0x4 scope:local data:float +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x8 scope:local data:double +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C4 = .rodata:0x000005C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C8 = .rodata:0x000005C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F4 = .rodata:0x000005F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5FC = .rodata:0x000005FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x4 scope:local data:float +lbl_1_rodata_604 = .rodata:0x00000604; // type:object size:0x4 scope:local data:float +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60C = .rodata:0x0000060C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 scope:local data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 scope:local data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 scope:local data:float +lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 scope:local data:float +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 scope:local data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 scope:local data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float +lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 scope:local data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 scope:local data:float +lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 scope:local data:float +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 scope:local data:float +lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 scope:local data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 scope:local data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 scope:local data:float +lbl_1_rodata_66C = .rodata:0x0000066C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 scope:local data:double +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x4 scope:local data:float +lbl_1_rodata_67C = .rodata:0x0000067C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 scope:local data:float +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float diff --git a/config/GMPP01_00/rels/m438Dll/symbols.txt b/config/GMPP01_00/rels/m438Dll/symbols.txt index 8bd76a83..6097d75e 100644 --- a/config/GMPP01_00/rels/m438Dll/symbols.txt +++ b/config/GMPP01_00/rels/m438Dll/symbols.txt @@ -143,234 +143,234 @@ fn_1_12AB4 = .text:0x00012AB4; // type:function size:0x98 fn_1_12B4C = .text:0x00012B4C; // type:function size:0x40 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x10 data:4byte -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 data:double -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 data:double -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 data:double -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 data:double -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x30 data:4byte -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x10 data:byte -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x8 scope:local data:double +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x8 scope:local data:double +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x8 scope:local data:double +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 scope:local data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x10 scope:local data:byte +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 diff --git a/config/GMPP01_00/rels/m443Dll/symbols.txt b/config/GMPP01_00/rels/m443Dll/symbols.txt index 17d910d7..77c929a5 100644 --- a/config/GMPP01_00/rels/m443Dll/symbols.txt +++ b/config/GMPP01_00/rels/m443Dll/symbols.txt @@ -76,199 +76,199 @@ fn_1_8FFC = .text:0x00008FFC; // type:function size:0x5A8 fn_1_95A4 = .text:0x000095A4; // type:function size:0x94 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x50 -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x14 data:4byte -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 data:double -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x10 data:4byte -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x10 data:4byte -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC data:4byte -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x34 data:4byte -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x10 data:4byte -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x40 data:4byte -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x10 data:4byte -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x10 data:4byte -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x20 data:4byte -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 data:float -lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 data:float -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 data:float -lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 data:float -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 data:float -lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 data:float -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x8 scope:local data:double +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x34 scope:local data:4byte +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 scope:local data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 scope:local data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48C = .rodata:0x0000048C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x4 scope:local data:float +lbl_1_rodata_494 = .rodata:0x00000494; // type:object size:0x4 scope:local data:float +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C4 = .rodata:0x000004C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float diff --git a/config/GMPP01_00/rels/m457Dll/splits.txt b/config/GMPP01_00/rels/m457Dll/splits.txt index 531cd645..fe59c2cc 100644 --- a/config/GMPP01_00/rels/m457Dll/splits.txt +++ b/config/GMPP01_00/rels/m457Dll/splits.txt @@ -5,3 +5,12 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/m457Dll/main.c: + .text start:0x000000A0 end:0x00007C04 + .rodata start:0x00000000 end:0x00000568 + .data start:0x00000000 end:0x000003E7 + .bss start:0x00000000 end:0x000000C8 diff --git a/config/GMPP01_00/rels/m457Dll/symbols.txt b/config/GMPP01_00/rels/m457Dll/symbols.txt index 71fd03bb..4e212888 100644 --- a/config/GMPP01_00/rels/m457Dll/symbols.txt +++ b/config/GMPP01_00/rels/m457Dll/symbols.txt @@ -1,177 +1,177 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x3CC -fn_1_46C = .text:0x0000046C; // type:function size:0x2858 -fn_1_2CC4 = .text:0x00002CC4; // type:function size:0x2654 -fn_1_5318 = .text:0x00005318; // type:function size:0x220 -fn_1_5538 = .text:0x00005538; // type:function size:0x510 -fn_1_5A48 = .text:0x00005A48; // type:function size:0xB34 -fn_1_657C = .text:0x0000657C; // type:function size:0xAB8 -fn_1_7034 = .text:0x00007034; // type:function size:0x5F4 -fn_1_7628 = .text:0x00007628; // type:function size:0xC0 -fn_1_76E8 = .text:0x000076E8; // type:function size:0x480 -fn_1_7B68 = .text:0x00007B68; // type:function size:0x9C +CameraPrintDebug = .text:0x000000A0; // type:function size:0x3CC scope:local +M457PlayerExec = .text:0x0000046C; // type:function size:0x2858 scope:local +M457GameExec = .text:0x00002CC4; // type:function size:0x2654 scope:local +WrestleMesMain = .text:0x00005318; // type:function size:0x220 scope:local +ShoveMesMain = .text:0x00005538; // type:function size:0x510 scope:local +M457Main = .text:0x00005A48; // type:function size:0xB34 scope:local +M457GameSetup = .text:0x0000657C; // type:function size:0xAB8 scope:local +M457PlayerSetup = .text:0x00007034; // type:function size:0x5F4 scope:local +M457Setup = .text:0x00007628; // type:function size:0xC0 scope:local +ObjectSetup = .text:0x000076E8; // type:function size:0x480 +M457Exit = .text:0x00007B68; // type:function size:0x9C scope:local _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x24 data:4byte -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 data:4byte -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x64 -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x8 data:4byte -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x8 data:4byte -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x40 data:4byte -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x40 data:4byte -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 data:double -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x64 scope:local +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:4byte lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x90 -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x14 data:4byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:4byte -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:4byte -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x40 data:4byte -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x40 data:4byte +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 scope:local data:double +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x40 scope:local data:4byte lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x5C lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x5C -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0xC data:4byte -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0xC data:4byte -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x1 data:byte -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 data:float -lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 data:float -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float -lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 data:float -lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 data:float -lbl_1_data_0 = .data:0x00000000; // type:object size:0x5C -lbl_1_data_5C = .data:0x0000005C; // type:object size:0x5C data:4byte -lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x30 -lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x30 -lbl_1_data_118 = .data:0x00000118; // type:object size:0x30 -lbl_1_data_148 = .data:0x00000148; // type:object size:0xC -lbl_1_data_154 = .data:0x00000154; // type:object size:0x30 -lbl_1_data_184 = .data:0x00000184; // type:object size:0x30 -lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x6C -lbl_1_data_220 = .data:0x00000220; // type:object size:0x6C -lbl_1_data_28C = .data:0x0000028C; // type:object size:0x18 data:float -lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x2 data:2byte -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x2 data:2byte -lbl_1_data_2A8 = .data:0x000002A8; // type:object size:0x4 data:4byte -lbl_1_data_2AC = .data:0x000002AC; // type:object size:0x4 data:4byte -lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x2 data:2byte -lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x4 data:4byte -lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x4 data:4byte -lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x9 data:string -lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0x3 data:string +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_53C = .rodata:0x0000053C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x4 scope:local data:float +lbl_1_rodata_544 = .rodata:0x00000544; // type:object size:0x4 scope:local data:float +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 scope:local data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 scope:local data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 scope:local data:float +lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data:float +sprDataNumTbl = .data:0x00000000; // type:object size:0x5C scope:local +sprIdTbl = .data:0x0000005C; // type:object size:0x5C data:4byte scope:local +lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x30 scope:local +lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x30 scope:local +lbl_1_data_118 = .data:0x00000118; // type:object size:0x30 scope:local +lbl_1_data_148 = .data:0x00000148; // type:object size:0xC scope:local +lbl_1_data_154 = .data:0x00000154; // type:object size:0x30 scope:local +lbl_1_data_184 = .data:0x00000184; // type:object size:0x30 scope:local +lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x6C scope:local +sparkDataTbl = .data:0x00000220; // type:object size:0x6C scope:local +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x18 data:float scope:local +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x2 data:2byte scope:local +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x2 data:2byte scope:local +backgroundMusNo = .data:0x000002A8; // type:object size:0x4 data:4byte scope:local +windSeNo = .data:0x000002AC; // type:object size:0x4 data:4byte scope:local +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x2 data:2byte scope:local +invincibilitySeNo = .data:0x000002B4; // type:object size:0x4 data:4byte scope:local +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x4 data:4byte scope:local +lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x9 scope:local data:string +lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0x3 scope:local data:string jumptable_1_data_2C8 = .data:0x000002C8; // type:object size:0x2C scope:local jumptable_1_data_2F4 = .data:0x000002F4; // type:object size:0x48 scope:local -lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 data:4byte -lbl_1_data_340 = .data:0x00000340; // type:object size:0x4 data:float -lbl_1_data_344 = .data:0x00000344; // type:object size:0x4 data:float -lbl_1_data_348 = .data:0x00000348; // type:object size:0x4 data:float +lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 data:4byte scope:local +lbl_1_data_340 = .data:0x00000340; // type:object size:0x4 data:float scope:local +lbl_1_data_344 = .data:0x00000344; // type:object size:0x4 data:float scope:local +lbl_1_data_348 = .data:0x00000348; // type:object size:0x4 data:float scope:local jumptable_1_data_34C = .data:0x0000034C; // type:object size:0x20 scope:local jumptable_1_data_36C = .data:0x0000036C; // type:object size:0x2C scope:local -lbl_1_data_398 = .data:0x00000398; // type:object size:0x12 data:string -lbl_1_data_3AA = .data:0x000003AA; // type:object size:0x19 data:string -lbl_1_data_3C3 = .data:0x000003C3; // type:object size:0x24 data:string -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0xC data:4byte -lbl_1_bss_10 = .bss:0x00000010; // type:object size:0x4 data:4byte -lbl_1_bss_14 = .bss:0x00000014; // type:object size:0x4 data:4byte -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x8 data:float -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte -lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte -lbl_1_bss_48 = .bss:0x00000048; // type:object size:0x4 data:4byte -lbl_1_bss_4C = .bss:0x0000004C; // type:object size:0x4 data:4byte -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x8 data:4byte -lbl_1_bss_5C = .bss:0x0000005C; // type:object size:0x4 data:4byte -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte -lbl_1_bss_64 = .bss:0x00000064; // type:object size:0x4 data:4byte -lbl_1_bss_68 = .bss:0x00000068; // type:object size:0x8 data:4byte -lbl_1_bss_70 = .bss:0x00000070; // type:object size:0x4 data:4byte -lbl_1_bss_74 = .bss:0x00000074; // type:object size:0x4 data:4byte -lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x50 data:4byte +lbl_1_data_398 = .data:0x00000398; // type:object size:0x12 scope:local data:string +lbl_1_data_3AA = .data:0x000003AA; // type:object size:0x19 scope:local data:string +lbl_1_data_3C3 = .data:0x000003C3; // type:object size:0x24 scope:local data:string +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte scope:local +m457MesEndF = .bss:0x00000010; // type:object size:0x4 data:4byte scope:local +againstBrowserF = .bss:0x00000014; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float scope:local +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float scope:local +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float scope:local +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float scope:local +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte scope:local +lightId = .bss:0x00000048; // type:object size:0x4 data:4byte scope:local +objman = .bss:0x0000004C; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte scope:local +gameState = .bss:0x0000005C; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte scope:local +gameObj = .bss:0x00000064; // type:object size:0x4 data:4byte scope:local +playerObj = .bss:0x00000068; // type:object size:0x8 data:4byte scope:local +omViewObj = .bss:0x00000070; // type:object size:0x4 data:4byte scope:local +mainObj = .bss:0x00000074; // type:object size:0x4 data:4byte scope:local +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x50 data:4byte scope:local diff --git a/config/GMPP01_00/rels/m458Dll/symbols.txt b/config/GMPP01_00/rels/m458Dll/symbols.txt index 5c135c78..cdc7fc9a 100644 --- a/config/GMPP01_00/rels/m458Dll/symbols.txt +++ b/config/GMPP01_00/rels/m458Dll/symbols.txt @@ -13,106 +13,106 @@ fn_1_691C = .text:0x0000691C; // type:function size:0x480 fn_1_6D9C = .text:0x00006D9C; // type:function size:0xD0 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC data:4byte -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 data:double -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 data:double -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 data:double -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 data:double -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x8 scope:local data:double +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x8 scope:local data:double +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x8 scope:local data:double +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:4byte lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x94 -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 data:double -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x8 scope:local data:double +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 scope:local data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x50 -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:4byte +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:4byte lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x70 -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:4byte -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:4byte -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0xC data:4byte -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0xC data:4byte -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 data:byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x8 lbl_1_data_8 = .data:0x00000008; // type:object size:0x8 data:4byte lbl_1_data_10 = .data:0x00000010; // type:object size:0x28 diff --git a/config/GMPP01_00/rels/m459dll/symbols.txt b/config/GMPP01_00/rels/m459dll/symbols.txt index 704f4761..ebcacb12 100644 --- a/config/GMPP01_00/rels/m459dll/symbols.txt +++ b/config/GMPP01_00/rels/m459dll/symbols.txt @@ -64,88 +64,88 @@ fn_1_618C = .text:0x0000618C; // type:function size:0x2C0 fn_1_644C = .text:0x0000644C; // type:function size:0x128 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x30 -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x78 -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x18 -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:wstring -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x20 -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x20 -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x19C -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x8 -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x14 -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x14 -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x14 -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x14 -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0xC data:4byte -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0xC data:4byte -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0xC data:4byte -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x48 -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x30 scope:local +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x78 scope:local +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x18 scope:local +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:wstring +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x20 scope:local +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x20 scope:local +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x19C scope:local +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x8 scope:local +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x14 scope:local +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x14 scope:local +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x14 scope:local +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x14 scope:local +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 scope:local data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_454 = .rodata:0x00000454; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x48 scope:local +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x1B data:string lbl_1_data_1B = .data:0x0000001B; // type:object size:0x1D jumptable_1_data_38 = .data:0x00000038; // type:object size:0x38 scope:local diff --git a/config/GMPP01_00/rels/m460Dll/symbols.txt b/config/GMPP01_00/rels/m460Dll/symbols.txt index 2b961299..a52ca026 100644 --- a/config/GMPP01_00/rels/m460Dll/symbols.txt +++ b/config/GMPP01_00/rels/m460Dll/symbols.txt @@ -86,164 +86,164 @@ fn_1_91E4 = .text:0x000091E4; // type:function size:0x8C fn_1_9270 = .text:0x00009270; // type:function size:0x164 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC data:4byte -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC data:4byte -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:4byte lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x50 -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x14 data:4byte -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x10 data:4byte -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x10 data:4byte -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x30 data:4byte -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x18 data:4byte -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x18 data:4byte -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x18 data:4byte -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x8 data:4byte -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x1 data:byte -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x1 data:byte -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0xC data:4byte -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x14 scope:local data:4byte +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0xC lbl_1_data_C = .data:0x0000000C; // type:object size:0xC lbl_1_data_18 = .data:0x00000018; // type:object size:0xC data:float diff --git a/config/GMPP01_00/rels/m463Dll/symbols.txt b/config/GMPP01_00/rels/m463Dll/symbols.txt index aad2e6b8..96b91d06 100644 --- a/config/GMPP01_00/rels/m463Dll/symbols.txt +++ b/config/GMPP01_00/rels/m463Dll/symbols.txt @@ -12,102 +12,102 @@ fn_1_6138 = .text:0x00006138; // type:function size:0x460 fn_1_6598 = .text:0x00006598; // type:function size:0x11C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 data:double -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC data:4byte -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 data:4byte -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC data:4byte -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC data:4byte -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 data:double -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 data:double -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 data:double -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 data:double -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 data:double -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:4byte +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x8 scope:local data:double +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x8 scope:local data:double +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x8 scope:local data:double +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x8 scope:local data:double +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x8 scope:local data:double +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:4byte lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x94 -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 data:double -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 data:double -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:4byte +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x8 scope:local data:double +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x8 scope:local data:double +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:4byte lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x50 -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x70 -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x24 data:4byte -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x24 data:4byte -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x10 data:4byte -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0xC data:4byte -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0xC data:4byte -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x1 data:byte -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x24 lbl_1_data_24 = .data:0x00000024; // type:object size:0x24 lbl_1_data_48 = .data:0x00000048; // type:object size:0x24 diff --git a/config/GMPP01_00/rels/mentDll/symbols.txt b/config/GMPP01_00/rels/mentDll/symbols.txt index 7d00e49a..a6cdecf3 100644 --- a/config/GMPP01_00/rels/mentDll/symbols.txt +++ b/config/GMPP01_00/rels/mentDll/symbols.txt @@ -171,247 +171,247 @@ fn_1_18A54 = .text:0x00018A54; // type:function size:0x378 fn_1_18DCC = .text:0x00018DCC; // type:function size:0x1A8 fn_1_18F74 = .text:0x00018F74; // type:function size:0x174 fn_1_190E8 = .text:0x000190E8; // type:function size:0xB38 -fn_1_19C20 = .text:0x00019C20; // type:function size:0x1D98 -fn_1_1B9B8 = .text:0x0001B9B8; // type:function size:0xA28 -fn_1_1C3E0 = .text:0x0001C3E0; // type:function size:0x120 -fn_1_1C500 = .text:0x0001C500; // type:function size:0xE0 -fn_1_1C5E0 = .text:0x0001C5E0; // type:function size:0x23C -fn_1_1C81C = .text:0x0001C81C; // type:function size:0x238 -fn_1_1CA54 = .text:0x0001CA54; // type:function size:0x3A0 -fn_1_1CDF4 = .text:0x0001CDF4; // type:function size:0x594 -fn_1_1D388 = .text:0x0001D388; // type:function size:0x9DC -fn_1_1DD64 = .text:0x0001DD64; // type:function size:0x70 -fn_1_1DDD4 = .text:0x0001DDD4; // type:function size:0x70 -fn_1_1DE44 = .text:0x0001DE44; // type:function size:0x1FC -fn_1_1E040 = .text:0x0001E040; // type:function size:0x250 -fn_1_1E290 = .text:0x0001E290; // type:function size:0x4A0 -fn_1_1E730 = .text:0x0001E730; // type:function size:0xD4C -fn_1_1F47C = .text:0x0001F47C; // type:function size:0xC8 -fn_1_1F544 = .text:0x0001F544; // type:function size:0x1B0 -fn_1_1F6F4 = .text:0x0001F6F4; // type:function size:0x1CC -fn_1_1F8C0 = .text:0x0001F8C0; // type:function size:0x220 -fn_1_1FAE0 = .text:0x0001FAE0; // type:function size:0x1B4 -fn_1_1FC94 = .text:0x0001FC94; // type:function size:0x144 -fn_1_1FDD8 = .text:0x0001FDD8; // type:function size:0x610 -fn_1_203E8 = .text:0x000203E8; // type:function size:0x260 -fn_1_20648 = .text:0x00020648; // type:function size:0x138 -fn_1_20780 = .text:0x00020780; // type:function size:0x130 -fn_1_208B0 = .text:0x000208B0; // type:function size:0x130 -fn_1_209E0 = .text:0x000209E0; // type:function size:0x5E0 -fn_1_20FC0 = .text:0x00020FC0; // type:function size:0x5F0 -fn_1_215B0 = .text:0x000215B0; // type:function size:0xED0 -fn_1_22480 = .text:0x00022480; // type:function size:0xE38 -fn_1_232B8 = .text:0x000232B8; // type:function size:0x60C +fn_1_19C98 = .text:0x00019C20; // type:function size:0x1D98 +fn_1_1BB2C = .text:0x0001B9B8; // type:function size:0xA28 +fn_1_1C554 = .text:0x0001C3E0; // type:function size:0x120 +fn_1_1C674 = .text:0x0001C500; // type:function size:0xE0 +fn_1_1C754 = .text:0x0001C5E0; // type:function size:0x23C +fn_1_1C990 = .text:0x0001C81C; // type:function size:0x238 +fn_1_1CBC8 = .text:0x0001CA54; // type:function size:0x3A0 +fn_1_1CF68 = .text:0x0001CDF4; // type:function size:0x594 +fn_1_1D4FC = .text:0x0001D388; // type:function size:0x9DC +fn_1_1DED8 = .text:0x0001DD64; // type:function size:0x70 +fn_1_1DF48 = .text:0x0001DDD4; // type:function size:0x70 +fn_1_1DFB8 = .text:0x0001DE44; // type:function size:0x1FC +fn_1_1E1B4 = .text:0x0001E040; // type:function size:0x250 +fn_1_1E404 = .text:0x0001E290; // type:function size:0x4A0 +fn_1_1E8A4 = .text:0x0001E730; // type:function size:0xD4C +fn_1_1F5F0 = .text:0x0001F47C; // type:function size:0xC8 +fn_1_1F6B8 = .text:0x0001F544; // type:function size:0x1B0 +fn_1_1F868 = .text:0x0001F6F4; // type:function size:0x1CC +fn_1_1FA34 = .text:0x0001F8C0; // type:function size:0x220 +fn_1_1FC54 = .text:0x0001FAE0; // type:function size:0x1B4 +fn_1_1FE08 = .text:0x0001FC94; // type:function size:0x144 +fn_1_1FF4C = .text:0x0001FDD8; // type:function size:0x610 +fn_1_2055C = .text:0x000203E8; // type:function size:0x260 +fn_1_207BC = .text:0x00020648; // type:function size:0x138 +fn_1_208F4 = .text:0x00020780; // type:function size:0x130 +fn_1_20A24 = .text:0x000208B0; // type:function size:0x130 +fn_1_20B54 = .text:0x000209E0; // type:function size:0x5E0 +fn_1_21134 = .text:0x00020FC0; // type:function size:0x5F0 +fn_1_21724 = .text:0x000215B0; // type:function size:0xED0 +fn_1_225F4 = .text:0x00022480; // type:function size:0xE38 +fn_1_2342C = .text:0x000232B8; // type:function size:0x60C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 data:double -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 data:double -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC data:4byte -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0xC data:4byte -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC data:4byte -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 data:double -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x1 data:byte -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x1C data:4byte -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0xC data:4byte -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x10 data:4byte -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x18 data:4byte -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0xC data:4byte -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC data:4byte -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC data:4byte -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x18 data:4byte -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC data:4byte -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC data:4byte -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0xC data:4byte -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x1C data:4byte -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x10 data:4byte -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x18 data:4byte -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0xC data:4byte -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0xC data:4byte -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x1C data:4byte -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0xC data:4byte -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0xC data:4byte -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0xC data:4byte -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0xC data:4byte -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC data:4byte -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC data:4byte -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x18 data:4byte -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x90 -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x18 data:4byte -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x40 data:4byte -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x20 data:4byte -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x20 data:4byte -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x8 scope:local data:double +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x8 scope:local data:double +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x1C scope:local data:4byte +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x90 scope:local +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_374 = .rodata:0x00000374; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x40 scope:local data:4byte +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 scope:local data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 scope:local data:double +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x70 data:4byte lbl_1_data_70 = .data:0x00000070; // type:object size:0x4 data:4byte -lbl_1_data_74 = .data:0x00000074; // type:object size:0x22 data:string -lbl_1_data_96 = .data:0x00000096; // type:object size:0x1A data:string -lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x1A data:string -lbl_1_data_CA = .data:0x000000CA; // type:object size:0xE data:string +lbl_1_data_74 = .data:0x00000074; // type:object size:0x22 scope:local data:string +lbl_1_data_96 = .data:0x00000096; // type:object size:0x1A scope:local data:string +lbl_1_data_B0 = .data:0x000000B0; // type:object size:0x1A scope:local data:string +lbl_1_data_CA = .data:0x000000CA; // type:object size:0xE scope:local data:string lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x48 data:float lbl_1_data_120 = .data:0x00000120; // type:object size:0x18 jumptable_1_data_138 = .data:0x00000138; // type:object size:0x30 scope:local -lbl_1_data_168 = .data:0x00000168; // type:object size:0x16 data:string -lbl_1_data_17E = .data:0x0000017E; // type:object size:0x15 data:string -lbl_1_data_193 = .data:0x00000193; // type:object size:0x17 data:string -lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x16 data:string -lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x17 data:string -lbl_1_data_1D7 = .data:0x000001D7; // type:object size:0x16 data:string -lbl_1_data_1ED = .data:0x000001ED; // type:object size:0x17 data:string -lbl_1_data_204 = .data:0x00000204; // type:object size:0x16 data:string -lbl_1_data_21A = .data:0x0000021A; // type:object size:0xF data:string -lbl_1_data_229 = .data:0x00000229; // type:object size:0x1C data:string -lbl_1_data_245 = .data:0x00000245; // type:object size:0x1D data:string -lbl_1_data_262 = .data:0x00000262; // type:object size:0x14 data:string -lbl_1_data_276 = .data:0x00000276; // type:object size:0x15 data:string -lbl_1_data_28B = .data:0x0000028B; // type:object size:0x14 data:string -lbl_1_data_29F = .data:0x0000029F; // type:object size:0x15 +lbl_1_data_168 = .data:0x00000168; // type:object size:0x16 scope:local data:string +lbl_1_data_17E = .data:0x0000017E; // type:object size:0x15 scope:local data:string +lbl_1_data_193 = .data:0x00000193; // type:object size:0x17 scope:local data:string +lbl_1_data_1AA = .data:0x000001AA; // type:object size:0x16 scope:local data:string +lbl_1_data_1C0 = .data:0x000001C0; // type:object size:0x17 scope:local data:string +lbl_1_data_1D7 = .data:0x000001D7; // type:object size:0x16 scope:local data:string +lbl_1_data_1ED = .data:0x000001ED; // type:object size:0x17 scope:local data:string +lbl_1_data_204 = .data:0x00000204; // type:object size:0x16 scope:local data:string +lbl_1_data_21A = .data:0x0000021A; // type:object size:0xF scope:local data:string +lbl_1_data_229 = .data:0x00000229; // type:object size:0x1C scope:local data:string +lbl_1_data_245 = .data:0x00000245; // type:object size:0x1D scope:local data:string +lbl_1_data_262 = .data:0x00000262; // type:object size:0x14 scope:local data:string +lbl_1_data_276 = .data:0x00000276; // type:object size:0x15 scope:local data:string +lbl_1_data_28B = .data:0x0000028B; // type:object size:0x14 scope:local data:string +lbl_1_data_29F = .data:0x0000029F; // type:object size:0x15 scope:local lbl_1_data_2B4 = .data:0x000002B4; // type:object size:0x3C lbl_1_data_2F0 = .data:0x000002F0; // type:object size:0x4 data:4byte -lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20 data:string -lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 data:string -lbl_1_data_334 = .data:0x00000334; // type:object size:0x2A data:string -lbl_1_data_35E = .data:0x0000035E; // type:object size:0x3 data:string -lbl_1_data_361 = .data:0x00000361; // type:object size:0x1B data:string -lbl_1_data_37C = .data:0x0000037C; // type:object size:0x1A data:string -lbl_1_data_396 = .data:0x00000396; // type:object size:0x29 data:string -lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x2A data:string -lbl_1_data_3E9 = .data:0x000003E9; // type:object size:0x2A data:string -lbl_1_data_413 = .data:0x00000413; // type:object size:0x2B data:string -lbl_1_data_43E = .data:0x0000043E; // type:object size:0x29 data:string -lbl_1_data_467 = .data:0x00000467; // type:object size:0x2B data:string -lbl_1_data_492 = .data:0x00000492; // type:object size:0x20 data:string -lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x22 +lbl_1_data_2F4 = .data:0x000002F4; // type:object size:0x20 scope:local data:string +lbl_1_data_314 = .data:0x00000314; // type:object size:0x20 scope:local data:string +lbl_1_data_334 = .data:0x00000334; // type:object size:0x2A scope:local data:string +lbl_1_data_35E = .data:0x0000035E; // type:object size:0x3 scope:local data:string +lbl_1_data_361 = .data:0x00000361; // type:object size:0x1B scope:local data:string +lbl_1_data_37C = .data:0x0000037C; // type:object size:0x1A scope:local data:string +lbl_1_data_396 = .data:0x00000396; // type:object size:0x29 scope:local data:string +lbl_1_data_3BF = .data:0x000003BF; // type:object size:0x2A scope:local data:string +lbl_1_data_3E9 = .data:0x000003E9; // type:object size:0x2A scope:local data:string +lbl_1_data_413 = .data:0x00000413; // type:object size:0x2B scope:local data:string +lbl_1_data_43E = .data:0x0000043E; // type:object size:0x29 scope:local data:string +lbl_1_data_467 = .data:0x00000467; // type:object size:0x2B scope:local data:string +lbl_1_data_492 = .data:0x00000492; // type:object size:0x20 scope:local data:string +lbl_1_data_4B2 = .data:0x000004B2; // type:object size:0x22 scope:local jumptable_1_data_4D4 = .data:0x000004D4; // type:object size:0x54 scope:local -lbl_1_data_528 = .data:0x00000528; // type:object size:0x1B data:string -lbl_1_data_543 = .data:0x00000543; // type:object size:0x1A data:string -lbl_1_data_55D = .data:0x0000055D; // type:object size:0xF data:string -lbl_1_data_56C = .data:0x0000056C; // type:object size:0x10 data:string +lbl_1_data_528 = .data:0x00000528; // type:object size:0x1B scope:local data:string +lbl_1_data_543 = .data:0x00000543; // type:object size:0x1A scope:local data:string +lbl_1_data_55D = .data:0x0000055D; // type:object size:0xF scope:local data:string +lbl_1_data_56C = .data:0x0000056C; // type:object size:0x10 scope:local data:string lbl_1_data_57C = .data:0x0000057C; // type:object size:0x40 lbl_1_data_5BC = .data:0x000005BC; // type:object size:0x20 lbl_1_data_5DC = .data:0x000005DC; // type:object size:0x64 data:float diff --git a/config/GMPP01_00/rels/mgmodedll/symbols.txt b/config/GMPP01_00/rels/mgmodedll/symbols.txt index ec6ed6c9..780a9b7f 100644 --- a/config/GMPP01_00/rels/mgmodedll/symbols.txt +++ b/config/GMPP01_00/rels/mgmodedll/symbols.txt @@ -139,332 +139,332 @@ fn_1_27C14 = .text:0x00027C14; // type:function size:0x210 fn_1_27E24 = .text:0x00027E24; // type:function size:0xE4 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 data:double -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 data:double -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 data:double -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0xC data:4byte -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0xC data:4byte -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0xC data:4byte -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 data:double -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 data:double -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 data:double -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 data:double -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 data:double -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 data:double -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 data:double -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 data:double -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 data:double -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 data:double -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 data:double -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 data:double -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 data:double -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 data:double -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 data:double -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 data:double -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 data:double -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 data:double -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 data:double -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 data:double -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 data:double -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 data:double -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 data:double -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 data:double -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 data:double -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 data:double -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 data:double -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 data:float -lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 data:float -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 data:float -lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 data:float -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 data:double -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 data:double -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:double -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 data:double -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 data:float -lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 data:float -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 data:float -lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 data:float -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 data:double -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 data:double -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 data:double -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 data:float -lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 data:float -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 data:float -lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 data:float -lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 data:float -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 data:double -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 data:double -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 data:double -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 data:double -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x8 data:double -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 data:double -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 data:double -lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 data:float -lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 data:double -lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 data:float -lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 data:float -lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 data:float -lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 data:float -lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 data:float -lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 data:double -lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 data:double -lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 data:float -lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 data:float -lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 data:float -lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 data:double -lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 data:float -lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 data:float -lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 data:float -lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 data:float -lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 data:float -lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 data:float -lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 data:double -lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 data:float -lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 data:float -lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 data:float -lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 data:float -lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 data:float -lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 data:float -lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0xC data:4byte -lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 data:float -lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 data:float -lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 data:float -lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 data:float -lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 data:float -lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 data:float -lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 data:float -lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 data:float -lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 data:double -lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 data:float -lbl_1_rodata_5FC = .rodata:0x000005FC; // type:object size:0x4 data:float -lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x4 data:float -lbl_1_rodata_604 = .rodata:0x00000604; // type:object size:0x4 data:float -lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 data:float -lbl_1_rodata_60C = .rodata:0x0000060C; // type:object size:0x4 data:float -lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 data:float -lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 data:float -lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 data:float -lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 data:float -lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 data:float -lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 data:float -lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 data:float -lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 data:float -lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 data:float -lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 data:float -lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 data:float -lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 data:float -lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 data:float -lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 data:float -lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 data:float -lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 data:float -lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 data:float -lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 data:float -lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 data:float -lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 data:float -lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 data:float -lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 data:float -lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 data:float -lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 data:double -lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x8 data:double -lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 data:float -lbl_1_rodata_684 = .rodata:0x00000684; // type:object size:0x4 data:float -lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x8 data:double -lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 data:double -lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 data:float -lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x8 data:double -lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 data:float -lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 data:float -lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x4 data:float -lbl_1_rodata_6B4 = .rodata:0x000006B4; // type:object size:0xC data:4byte -lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0xC data:4byte -lbl_1_rodata_6CC = .rodata:0x000006CC; // type:object size:0xC data:4byte -lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 data:float -lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 data:float -lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 data:float -lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 data:float -lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 data:float -lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 data:float -lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0x4 data:float -lbl_1_rodata_6F4 = .rodata:0x000006F4; // type:object size:0x4 data:float -lbl_1_rodata_6F8 = .rodata:0x000006F8; // type:object size:0x4 data:float -lbl_1_rodata_6FC = .rodata:0x000006FC; // type:object size:0x4 data:float -lbl_1_rodata_700 = .rodata:0x00000700; // type:object size:0x4 data:float -lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x8 data:double -lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x8 data:float -lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 data:float -lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x8 data:double -lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 data:float -lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 data:float -lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 data:float -lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x4 data:float -lbl_1_rodata_738 = .rodata:0x00000738; // type:object size:0x4 data:float -lbl_1_rodata_740 = .rodata:0x00000740; // type:object size:0x8 data:double -lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x8 data:double -lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 data:float -lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x8 data:double -lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x4 data:float -lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x8 data:double -lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0x8 data:double -lbl_1_rodata_778 = .rodata:0x00000778; // type:object size:0x4 data:float -lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x8 data:double -lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x4 data:float -lbl_1_rodata_78C = .rodata:0x0000078C; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x8 scope:local data:double +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x8 scope:local data:double +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x8 scope:local data:double +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x8 scope:local data:double +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x8 scope:local data:double +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x8 scope:local data:double +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x8 scope:local data:double +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x8 scope:local data:double +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x8 scope:local data:double +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x8 scope:local data:double +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x8 scope:local data:double +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x8 scope:local data:double +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x8 scope:local data:double +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x8 scope:local data:double +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x8 scope:local data:double +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x4 scope:local data:float +lbl_1_rodata_45C = .rodata:0x0000045C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x4 scope:local data:float +lbl_1_rodata_464 = .rodata:0x00000464; // type:object size:0x4 scope:local data:float +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x8 scope:local data:double +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x8 scope:local data:double +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 scope:local data:double +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A4 = .rodata:0x000004A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4AC = .rodata:0x000004AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4BC = .rodata:0x000004BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4DC = .rodata:0x000004DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4EC = .rodata:0x000004EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F0 = .rodata:0x000004F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x8 scope:local data:double +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x8 scope:local data:double +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x8 scope:local data:double +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x8 scope:local data:double +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 scope:local data:double +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x8 scope:local data:double +lbl_1_rodata_538 = .rodata:0x00000538; // type:object size:0x4 scope:local data:float +lbl_1_rodata_540 = .rodata:0x00000540; // type:object size:0x8 scope:local data:double +lbl_1_rodata_548 = .rodata:0x00000548; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54C = .rodata:0x0000054C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_550 = .rodata:0x00000550; // type:object size:0x4 scope:local data:float +lbl_1_rodata_554 = .rodata:0x00000554; // type:object size:0x4 scope:local data:float +lbl_1_rodata_558 = .rodata:0x00000558; // type:object size:0x4 scope:local data:float +lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x8 scope:local data:double +lbl_1_rodata_568 = .rodata:0x00000568; // type:object size:0x8 scope:local data:double +lbl_1_rodata_570 = .rodata:0x00000570; // type:object size:0x4 scope:local data:float +lbl_1_rodata_574 = .rodata:0x00000574; // type:object size:0x4 scope:local data:float +lbl_1_rodata_578 = .rodata:0x00000578; // type:object size:0x4 scope:local data:float +lbl_1_rodata_580 = .rodata:0x00000580; // type:object size:0x8 scope:local data:double +lbl_1_rodata_588 = .rodata:0x00000588; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58C = .rodata:0x0000058C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_590 = .rodata:0x00000590; // type:object size:0x4 scope:local data:float +lbl_1_rodata_594 = .rodata:0x00000594; // type:object size:0x4 scope:local data:float +lbl_1_rodata_598 = .rodata:0x00000598; // type:object size:0x4 scope:local data:float +lbl_1_rodata_59C = .rodata:0x0000059C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5A0 = .rodata:0x000005A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5A8 = .rodata:0x000005A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5AC = .rodata:0x000005AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B0 = .rodata:0x000005B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B4 = .rodata:0x000005B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5B8 = .rodata:0x000005B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5BC = .rodata:0x000005BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C0 = .rodata:0x000005C0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_5CC = .rodata:0x000005CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D0 = .rodata:0x000005D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D4 = .rodata:0x000005D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5D8 = .rodata:0x000005D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5DC = .rodata:0x000005DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E0 = .rodata:0x000005E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E4 = .rodata:0x000005E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5E8 = .rodata:0x000005E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5F0 = .rodata:0x000005F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_5F8 = .rodata:0x000005F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5FC = .rodata:0x000005FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_600 = .rodata:0x00000600; // type:object size:0x4 scope:local data:float +lbl_1_rodata_604 = .rodata:0x00000604; // type:object size:0x4 scope:local data:float +lbl_1_rodata_608 = .rodata:0x00000608; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60C = .rodata:0x0000060C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_610 = .rodata:0x00000610; // type:object size:0x4 scope:local data:float +lbl_1_rodata_614 = .rodata:0x00000614; // type:object size:0x4 scope:local data:float +lbl_1_rodata_618 = .rodata:0x00000618; // type:object size:0x4 scope:local data:float +lbl_1_rodata_61C = .rodata:0x0000061C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_620 = .rodata:0x00000620; // type:object size:0x4 scope:local data:float +lbl_1_rodata_624 = .rodata:0x00000624; // type:object size:0x4 scope:local data:float +lbl_1_rodata_628 = .rodata:0x00000628; // type:object size:0x4 scope:local data:float +lbl_1_rodata_62C = .rodata:0x0000062C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_630 = .rodata:0x00000630; // type:object size:0x4 scope:local data:float +lbl_1_rodata_634 = .rodata:0x00000634; // type:object size:0x4 scope:local data:float +lbl_1_rodata_638 = .rodata:0x00000638; // type:object size:0x4 scope:local data:float +lbl_1_rodata_63C = .rodata:0x0000063C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_640 = .rodata:0x00000640; // type:object size:0x4 scope:local data:float +lbl_1_rodata_644 = .rodata:0x00000644; // type:object size:0x4 scope:local data:float +lbl_1_rodata_648 = .rodata:0x00000648; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64C = .rodata:0x0000064C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_650 = .rodata:0x00000650; // type:object size:0x4 scope:local data:float +lbl_1_rodata_654 = .rodata:0x00000654; // type:object size:0x4 scope:local data:float +lbl_1_rodata_658 = .rodata:0x00000658; // type:object size:0x4 scope:local data:float +lbl_1_rodata_65C = .rodata:0x0000065C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_660 = .rodata:0x00000660; // type:object size:0x4 scope:local data:float +lbl_1_rodata_664 = .rodata:0x00000664; // type:object size:0x4 scope:local data:float +lbl_1_rodata_668 = .rodata:0x00000668; // type:object size:0x4 scope:local data:float +lbl_1_rodata_670 = .rodata:0x00000670; // type:object size:0x8 scope:local data:double +lbl_1_rodata_678 = .rodata:0x00000678; // type:object size:0x8 scope:local data:double +lbl_1_rodata_680 = .rodata:0x00000680; // type:object size:0x4 scope:local data:float +lbl_1_rodata_684 = .rodata:0x00000684; // type:object size:0x4 scope:local data:float +lbl_1_rodata_688 = .rodata:0x00000688; // type:object size:0x8 scope:local data:double +lbl_1_rodata_690 = .rodata:0x00000690; // type:object size:0x8 scope:local data:double +lbl_1_rodata_698 = .rodata:0x00000698; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6A0 = .rodata:0x000006A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_6A8 = .rodata:0x000006A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6AC = .rodata:0x000006AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6B0 = .rodata:0x000006B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6B4 = .rodata:0x000006B4; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_6C0 = .rodata:0x000006C0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_6CC = .rodata:0x000006CC; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_6D8 = .rodata:0x000006D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6DC = .rodata:0x000006DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6E0 = .rodata:0x000006E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6E4 = .rodata:0x000006E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6E8 = .rodata:0x000006E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6EC = .rodata:0x000006EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6F0 = .rodata:0x000006F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6F4 = .rodata:0x000006F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6F8 = .rodata:0x000006F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6FC = .rodata:0x000006FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_700 = .rodata:0x00000700; // type:object size:0x4 scope:local data:float +lbl_1_rodata_708 = .rodata:0x00000708; // type:object size:0x8 scope:local data:double +lbl_1_rodata_710 = .rodata:0x00000710; // type:object size:0x8 scope:local data:float +lbl_1_rodata_718 = .rodata:0x00000718; // type:object size:0x4 scope:local data:float +lbl_1_rodata_720 = .rodata:0x00000720; // type:object size:0x8 scope:local data:double +lbl_1_rodata_728 = .rodata:0x00000728; // type:object size:0x4 scope:local data:float +lbl_1_rodata_72C = .rodata:0x0000072C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_730 = .rodata:0x00000730; // type:object size:0x4 scope:local data:float +lbl_1_rodata_734 = .rodata:0x00000734; // type:object size:0x4 scope:local data:float +lbl_1_rodata_738 = .rodata:0x00000738; // type:object size:0x4 scope:local data:float +lbl_1_rodata_740 = .rodata:0x00000740; // type:object size:0x8 scope:local data:double +lbl_1_rodata_748 = .rodata:0x00000748; // type:object size:0x8 scope:local data:double +lbl_1_rodata_750 = .rodata:0x00000750; // type:object size:0x4 scope:local data:float +lbl_1_rodata_758 = .rodata:0x00000758; // type:object size:0x8 scope:local data:double +lbl_1_rodata_760 = .rodata:0x00000760; // type:object size:0x4 scope:local data:float +lbl_1_rodata_768 = .rodata:0x00000768; // type:object size:0x8 scope:local data:double +lbl_1_rodata_770 = .rodata:0x00000770; // type:object size:0x8 scope:local data:double +lbl_1_rodata_778 = .rodata:0x00000778; // type:object size:0x4 scope:local data:float +lbl_1_rodata_780 = .rodata:0x00000780; // type:object size:0x8 scope:local data:double +lbl_1_rodata_788 = .rodata:0x00000788; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78C = .rodata:0x0000078C; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x1C lbl_1_data_1C = .data:0x0000001C; // type:object size:0x24 lbl_1_data_40 = .data:0x00000040; // type:object size:0x30 data:4byte @@ -482,7 +482,7 @@ lbl_1_data_E0 = .data:0x000000E0; // type:object size:0x6 lbl_1_data_E6 = .data:0x000000E6; // type:object size:0xA lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x20 lbl_1_data_110 = .data:0x00000110; // type:object size:0x10 -lbl_1_data_120 = .data:0x00000120; // type:object size:0x10 +mgRecordIdxTbl = .data:0x00000120; // type:object size:0x10 lbl_1_data_130 = .data:0x00000130; // type:object size:0x28 lbl_1_data_158 = .data:0x00000158; // type:object size:0x2 data:2byte lbl_1_data_15A = .data:0x0000015A; // type:object size:0x8 @@ -517,7 +517,7 @@ lbl_1_data_9D0 = .data:0x000009D0; // type:object size:0x20 lbl_1_data_9F0 = .data:0x000009F0; // type:object size:0x20 lbl_1_data_A10 = .data:0x00000A10; // type:object size:0x2 data:2byte lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x2 data:2byte +mgModeEvtNo = .bss:0x00000004; // type:object size:0x2 data:2byte lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x264 data:4byte lbl_1_bss_26C = .bss:0x0000026C; // type:object size:0x8 data:float lbl_1_bss_274 = .bss:0x00000274; // type:object size:0x18 data:4byte @@ -548,8 +548,8 @@ lbl_1_bss_340 = .bss:0x00000340; // type:object size:0x8 lbl_1_bss_348 = .bss:0x00000348; // type:object size:0x2 data:2byte lbl_1_bss_34A = .bss:0x0000034A; // type:object size:0x8 data:2byte lbl_1_bss_352 = .bss:0x00000352; // type:object size:0x1E -lbl_1_bss_370 = .bss:0x00000370; // type:object size:0xC -lbl_1_bss_37C = .bss:0x0000037C; // type:object size:0xC +lbl_1_bss_370 = .bss:0x00000370; // type:object size:0xC scope:local +lbl_1_bss_37C = .bss:0x0000037C; // type:object size:0xC scope:local lbl_1_bss_388 = .bss:0x00000388; // type:object size:0x2 data:2byte lbl_1_bss_38A = .bss:0x0000038A; // type:object size:0x2 data:2byte lbl_1_bss_38C = .bss:0x0000038C; // type:object size:0x8 diff --git a/config/GMPP01_00/rels/w01Dll/symbols.txt b/config/GMPP01_00/rels/w01Dll/symbols.txt index 94ae2e2e..2fa2c70d 100644 --- a/config/GMPP01_00/rels/w01Dll/symbols.txt +++ b/config/GMPP01_00/rels/w01Dll/symbols.txt @@ -136,204 +136,204 @@ fn_1_11064 = .text:0x00011064; // type:function size:0x420 fn_1_11484 = .text:0x00011484; // type:function size:0x56C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 data:double -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 data:double -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 data:double -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 data:float -lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 data:float -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 data:float -lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:double -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x10 data:4byte -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x8 data:4byte -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x8 data:4byte -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x2 data:2byte -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 data:float -lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 data:float -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x2 data:2byte -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0xC data:2byte -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 data:double -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 data:double -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 data:double -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 data:double -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 data:double -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 data:double -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 data:double -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 data:double -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34 = .rodata:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x8 scope:local data:double +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x8 scope:local data:double +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x8 scope:local data:double +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x4 scope:local data:float +lbl_1_rodata_84 = .rodata:0x00000084; // type:object size:0x4 scope:local data:float +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x4 scope:local data:float +lbl_1_rodata_94 = .rodata:0x00000094; // type:object size:0x4 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_EC = .rodata:0x000000EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x2 scope:local data:2byte +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x4 scope:local data:float +lbl_1_rodata_12C = .rodata:0x0000012C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x2 scope:local data:2byte +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0xC scope:local data:2byte +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x8 scope:local data:double +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_244 = .rodata:0x00000244; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x8 scope:local data:double +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 scope:local data:double +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x8 scope:local data:double +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_314 = .rodata:0x00000314; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x8 scope:local data:double +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x528 lbl_1_data_528 = .data:0x00000528; // type:object size:0x2 data:2byte lbl_1_data_52A = .data:0x0000052A; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/w02Dll/symbols.txt b/config/GMPP01_00/rels/w02Dll/symbols.txt index 0383d0e6..326cbb5f 100644 --- a/config/GMPP01_00/rels/w02Dll/symbols.txt +++ b/config/GMPP01_00/rels/w02Dll/symbols.txt @@ -111,259 +111,259 @@ fn_1_E310 = .text:0x0000E310; // type:function size:0x10C fn_1_E41C = .text:0x0000E41C; // type:function size:0xB8 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:double -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 data:double -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 data:double -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 data:float -lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 data:float -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:double -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0xC data:4byte -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x18 data:4byte -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x24 data:4byte -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC data:4byte -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x28 data:4byte -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 data:float -lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 data:float -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 data:float -lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 data:float -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 data:double -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 data:double -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 data:double -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 data:double -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 data:double -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 data:float -lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:byte -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 data:float -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 data:float -lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 data:float -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 data:double -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 data:double -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 data:float -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 data:double -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 data:double -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 data:double -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 data:float -lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 data:float -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 data:float -lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 data:double -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 data:double -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 data:double -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 data:float -lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 data:float -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float -lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 data:float -lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 data:float -lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 data:float -lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 data:float -lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 data:float -lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 data:float -lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 data:float -lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 data:float -lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 data:float -lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 data:float -lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 data:double -lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 data:double -lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 data:float -lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 data:float -lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 data:float -lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 data:float -lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 data:float -lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 data:float -lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 data:float -lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 data:float -lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 data:double -lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 data:double -lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 data:float -lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 data:float -lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 data:double -lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 data:double -lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 data:float -lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 data:float -lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 data:float -lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 data:double -lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 data:float -lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 data:float -lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 data:float -lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 data:float -lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 data:double -lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 data:float -lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 data:float -lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0xC data:4byte -lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 data:float -lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 data:float -lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 data:float -lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 data:float -lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 data:float -lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 data:float -lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 data:float -lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 data:float -lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 data:float -lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 data:float -lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 data:float -lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 data:double -lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 data:float -lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 data:float -lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 data:float -lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:double +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x8 scope:local data:double +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x8 scope:local data:double +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x4 scope:local data:float +lbl_1_rodata_8C = .rodata:0x0000008C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:double +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x18 scope:local data:4byte +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x28 scope:local data:4byte +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x4 scope:local data:float +lbl_1_rodata_144 = .rodata:0x00000144; // type:object size:0x4 scope:local data:float +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14C = .rodata:0x0000014C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x8 scope:local data:double +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x8 scope:local data:double +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1FC = .rodata:0x000001FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x4 scope:local data:float +lbl_1_rodata_214 = .rodata:0x00000214; // type:object size:0x4 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:byte +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x4 scope:local data:float +lbl_1_rodata_234 = .rodata:0x00000234; // type:object size:0x4 scope:local data:float +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x8 scope:local data:double +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x4 scope:local data:float +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x8 scope:local data:double +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x8 scope:local data:double +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_354 = .rodata:0x00000354; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x8 scope:local data:double +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x4 scope:local data:float +lbl_1_rodata_37C = .rodata:0x0000037C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x4 scope:local data:float +lbl_1_rodata_39C = .rodata:0x0000039C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40C = .rodata:0x0000040C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x4 scope:local data:float +lbl_1_rodata_414 = .rodata:0x00000414; // type:object size:0x4 scope:local data:float +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float +lbl_1_rodata_42C = .rodata:0x0000042C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_430 = .rodata:0x00000430; // type:object size:0x4 scope:local data:float +lbl_1_rodata_434 = .rodata:0x00000434; // type:object size:0x4 scope:local data:float +lbl_1_rodata_438 = .rodata:0x00000438; // type:object size:0x4 scope:local data:float +lbl_1_rodata_43C = .rodata:0x0000043C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_440 = .rodata:0x00000440; // type:object size:0x4 scope:local data:float +lbl_1_rodata_444 = .rodata:0x00000444; // type:object size:0x4 scope:local data:float +lbl_1_rodata_448 = .rodata:0x00000448; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44C = .rodata:0x0000044C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_450 = .rodata:0x00000450; // type:object size:0x4 scope:local data:float +lbl_1_rodata_458 = .rodata:0x00000458; // type:object size:0x8 scope:local data:double +lbl_1_rodata_460 = .rodata:0x00000460; // type:object size:0x8 scope:local data:double +lbl_1_rodata_468 = .rodata:0x00000468; // type:object size:0x4 scope:local data:float +lbl_1_rodata_46C = .rodata:0x0000046C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_470 = .rodata:0x00000470; // type:object size:0x4 scope:local data:float +lbl_1_rodata_474 = .rodata:0x00000474; // type:object size:0x4 scope:local data:float +lbl_1_rodata_478 = .rodata:0x00000478; // type:object size:0x4 scope:local data:float +lbl_1_rodata_47C = .rodata:0x0000047C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_480 = .rodata:0x00000480; // type:object size:0x4 scope:local data:float +lbl_1_rodata_484 = .rodata:0x00000484; // type:object size:0x4 scope:local data:float +lbl_1_rodata_488 = .rodata:0x00000488; // type:object size:0x8 scope:local data:double +lbl_1_rodata_490 = .rodata:0x00000490; // type:object size:0x8 scope:local data:double +lbl_1_rodata_498 = .rodata:0x00000498; // type:object size:0x4 scope:local data:float +lbl_1_rodata_49C = .rodata:0x0000049C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4A0 = .rodata:0x000004A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4A8 = .rodata:0x000004A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4B0 = .rodata:0x000004B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B4 = .rodata:0x000004B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4B8 = .rodata:0x000004B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C0 = .rodata:0x000004C0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4C8 = .rodata:0x000004C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4CC = .rodata:0x000004CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D0 = .rodata:0x000004D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D4 = .rodata:0x000004D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4D8 = .rodata:0x000004D8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_4E0 = .rodata:0x000004E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E4 = .rodata:0x000004E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4E8 = .rodata:0x000004E8; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_4F4 = .rodata:0x000004F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4F8 = .rodata:0x000004F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4FC = .rodata:0x000004FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_500 = .rodata:0x00000500; // type:object size:0x4 scope:local data:float +lbl_1_rodata_504 = .rodata:0x00000504; // type:object size:0x4 scope:local data:float +lbl_1_rodata_508 = .rodata:0x00000508; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50C = .rodata:0x0000050C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_510 = .rodata:0x00000510; // type:object size:0x4 scope:local data:float +lbl_1_rodata_514 = .rodata:0x00000514; // type:object size:0x4 scope:local data:float +lbl_1_rodata_518 = .rodata:0x00000518; // type:object size:0x4 scope:local data:float +lbl_1_rodata_51C = .rodata:0x0000051C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_520 = .rodata:0x00000520; // type:object size:0x8 scope:local data:double +lbl_1_rodata_528 = .rodata:0x00000528; // type:object size:0x4 scope:local data:float +lbl_1_rodata_52C = .rodata:0x0000052C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_530 = .rodata:0x00000530; // type:object size:0x4 scope:local data:float +lbl_1_rodata_534 = .rodata:0x00000534; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x280 lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:2byte lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/w03Dll/symbols.txt b/config/GMPP01_00/rels/w03Dll/symbols.txt index cac4adfe..40d6b23e 100644 --- a/config/GMPP01_00/rels/w03Dll/symbols.txt +++ b/config/GMPP01_00/rels/w03Dll/symbols.txt @@ -126,207 +126,207 @@ fn_1_BDAC = .text:0x0000BDAC; // type:function size:0x84 fn_1_BE30 = .text:0x0000BE30; // type:function size:0x418 _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 data:float -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 data:double -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 data:double -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 data:float -lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 data:float -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0xC data:4byte -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x24 data:4byte -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 data:float -lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 data:float -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 data:float -lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 data:float -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x6 data:2byte -lbl_1_rodata_BE = .rodata:0x000000BE; // type:object size:0x1 data:byte -lbl_1_rodata_C2 = .rodata:0x000000C2; // type:object size:0x6 data:byte -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 data:float -lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 data:float -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 data:float -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 data:double -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 data:double -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 data:double -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 data:float -lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 data:float -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x20 data:4byte -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:4byte -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 data:float -lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 data:float -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x10 data:4byte -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 data:double -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 data:float -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 data:double -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:float -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 data:float -lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 data:float -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 data:double -lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 data:double -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 data:double -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 data:double -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 data:float -lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 data:float -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 data:double -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 data:float -lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 data:float -lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 data:float -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 data:double -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 data:double -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 data:float -lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 data:double -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 data:double -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 data:float -lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 data:float -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 data:float -lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 data:float -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 data:float -lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 data:float -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 data:float -lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 data:float -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 data:double -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 data:double -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 data:float -lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 data:float -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 data:float -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 data:double -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 data:double -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 data:double -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:double -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 data:double -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 data:float -lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 data:float -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x8 scope:local data:double +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x8 scope:local data:double +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_5C = .rodata:0x0000005C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x4 scope:local data:float +lbl_1_rodata_64 = .rodata:0x00000064; // type:object size:0x4 scope:local data:float +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x24 scope:local data:4byte +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A4 = .rodata:0x000000A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_AC = .rodata:0x000000AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B4 = .rodata:0x000000B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x6 scope:local data:2byte +lbl_1_rodata_BE = .rodata:0x000000BE; // type:object size:0x1 scope:local data:byte +lbl_1_rodata_C2 = .rodata:0x000000C2; // type:object size:0x6 scope:local data:byte +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x8 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_DC = .rodata:0x000000DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E4 = .rodata:0x000000E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x8 scope:local data:double +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x4 scope:local data:float +lbl_1_rodata_124 = .rodata:0x00000124; // type:object size:0x4 scope:local data:float +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x20 scope:local data:4byte +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:4byte +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x4 scope:local data:float +lbl_1_rodata_19C = .rodata:0x0000019C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x10 scope:local data:4byte +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F4 = .rodata:0x000001F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x8 scope:local data:double +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20C = .rodata:0x0000020C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:float +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x4 scope:local data:float +lbl_1_rodata_21C = .rodata:0x0000021C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x8 scope:local data:double +lbl_1_rodata_230 = .rodata:0x00000230; // type:object size:0x8 scope:local data:double +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x8 scope:local data:double +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x8 scope:local data:double +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24C = .rodata:0x0000024C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x8 scope:local data:double +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0x4 scope:local data:float +lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28C = .rodata:0x0000028C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2BC = .rodata:0x000002BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2EC = .rodata:0x000002EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F4 = .rodata:0x000002F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2FC = .rodata:0x000002FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30C = .rodata:0x0000030C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x4 scope:local data:float +lbl_1_rodata_31C = .rodata:0x0000031C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x8 scope:local data:double +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x8 scope:local data:double +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x4 scope:local data:float +lbl_1_rodata_35C = .rodata:0x0000035C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x4 scope:local data:float +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x8 scope:local data:double +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x8 scope:local data:double +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x8 scope:local data:double +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D4 = .rodata:0x000003D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double lbl_1_data_0 = .data:0x00000000; // type:object size:0x1E0 lbl_1_data_1E0 = .data:0x000001E0; // type:object size:0x2 data:2byte lbl_1_data_1E2 = .data:0x000001E2; // type:object size:0x2 data:2byte diff --git a/config/GMPP01_00/rels/w04Dll/symbols.txt b/config/GMPP01_00/rels/w04Dll/symbols.txt index 44c0c8eb..75137666 100644 --- a/config/GMPP01_00/rels/w04Dll/symbols.txt +++ b/config/GMPP01_00/rels/w04Dll/symbols.txt @@ -98,226 +98,226 @@ fn_1_E690 = .text:0x0000E690; // type:function size:0x1D4 fn_1_E864 = .text:0x0000E864; // type:function size:0x18C _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 data:float -lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 data:float -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 data:float -lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 data:float -lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 data:float -lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 data:float -lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 data:float -lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 data:float -lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 data:double -lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 data:float -lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 data:float -lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 data:float -lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 data:float -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 data:float -lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 data:float -lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 data:float -lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 data:double -lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 data:float -lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 data:float -lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 data:float -lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 data:float -lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 data:float -lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 data:float -lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 data:double -lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 data:double -lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 data:float -lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 data:float -lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 data:float -lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 data:float -lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 data:double -lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 data:double -lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 data:float -lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 data:float -lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 data:float -lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 data:float -lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 data:float -lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 data:float -lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 data:float -lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 data:float -lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 data:float -lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 data:double -lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 data:double -lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 data:float -lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 data:float -lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 data:float -lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 data:float -lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 data:float -lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 data:float -lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 data:float -lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 data:float -lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 data:float -lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 data:float -lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 data:float -lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 data:float -lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 data:double -lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 data:double -lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 data:float -lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 data:float -lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 data:float -lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 data:float -lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 data:double -lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 data:double -lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 data:float -lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 data:float -lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 data:float -lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 data:float -lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 data:float -lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 data:float -lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 data:float -lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 data:float -lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 data:float -lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 data:float -lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 data:float -lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 data:float -lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 data:float -lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 data:float -lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 data:float -lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 data:float -lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 data:float -lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 data:float -lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 data:double -lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 data:float -lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 data:float -lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 data:float -lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 data:float -lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 data:float -lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 data:float -lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 data:float -lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 data:float -lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 data:float -lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 data:float -lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 data:float -lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 data:float -lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 data:float -lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 data:float -lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 data:float -lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 data:float -lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 data:float -lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 data:float -lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 data:float -lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 data:float -lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 data:float -lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 data:double -lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 data:float -lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 data:float -lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 data:float -lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 data:double -lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 data:double -lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 data:float -lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 data:float -lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 data:float -lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0xC data:4byte -lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 data:float -lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 data:float -lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 data:float -lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 data:double -lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 data:float -lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 data:float -lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 data:float -lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 data:float -lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 data:float -lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 data:float -lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 data:float -lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 data:float -lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 data:float -lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 data:float -lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 data:float -lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 data:float -lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 data:float -lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC data:4byte -lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 data:float -lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 data:float -lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 data:float -lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 data:float -lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float -lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float -lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float -lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float -lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float -lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float -lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:float -lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float -lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float -lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float -lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float -lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float -lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float -lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 data:float -lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 data:float -lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 data:float -lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 data:float -lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 data:double -lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 data:double -lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 data:double -lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 data:float -lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 data:float -lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 data:float -lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 data:double -lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 data:double -lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 data:float -lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 data:float -lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 data:float -lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 data:float -lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 data:float -lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 data:float -lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 data:float -lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 data:float -lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 data:float -lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 data:float -lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 data:float -lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 data:float -lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 data:float -lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 data:double -lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 data:float -lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 data:float -lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 data:float -lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 data:float -lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 data:double -lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 data:double -lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 data:float -lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 data:float -lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 data:float -lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 data:float -lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 data:float -lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 data:float -lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 data:float -lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 data:float -lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 data:float -lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 data:float -lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 data:float -lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 data:float -lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 data:float -lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 data:float -lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 data:float -lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 data:float -lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 data:float -lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 data:float -lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 data:float -lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 data:double -lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 data:float -lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 data:float -lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 data:float -lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 data:float -lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 data:float -lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 data:float -lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 data:float -lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 data:float -lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 data:float -lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 data:float -lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 data:float -lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 data:float -lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 data:float -lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 data:double -lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 data:float -lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 data:float -lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 data:float -lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 data:float -lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x4 scope:local data:float +lbl_1_rodata_14 = .rodata:0x00000014; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C = .rodata:0x0000001C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_20 = .rodata:0x00000020; // type:object size:0x4 scope:local data:float +lbl_1_rodata_24 = .rodata:0x00000024; // type:object size:0x4 scope:local data:float +lbl_1_rodata_28 = .rodata:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C = .rodata:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_30 = .rodata:0x00000030; // type:object size:0x8 scope:local data:double +lbl_1_rodata_38 = .rodata:0x00000038; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C = .rodata:0x0000003C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_40 = .rodata:0x00000040; // type:object size:0x4 scope:local data:float +lbl_1_rodata_44 = .rodata:0x00000044; // type:object size:0x4 scope:local data:float +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x4 scope:local data:float +lbl_1_rodata_54 = .rodata:0x00000054; // type:object size:0x4 scope:local data:float +lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x4 scope:local data:float +lbl_1_rodata_60 = .rodata:0x00000060; // type:object size:0x8 scope:local data:double +lbl_1_rodata_68 = .rodata:0x00000068; // type:object size:0x4 scope:local data:float +lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_70 = .rodata:0x00000070; // type:object size:0x4 scope:local data:float +lbl_1_rodata_74 = .rodata:0x00000074; // type:object size:0x4 scope:local data:float +lbl_1_rodata_78 = .rodata:0x00000078; // type:object size:0x4 scope:local data:float +lbl_1_rodata_7C = .rodata:0x0000007C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double +lbl_1_rodata_88 = .rodata:0x00000088; // type:object size:0x8 scope:local data:double +lbl_1_rodata_90 = .rodata:0x00000090; // type:object size:0x8 scope:local data:float +lbl_1_rodata_98 = .rodata:0x00000098; // type:object size:0x4 scope:local data:float +lbl_1_rodata_9C = .rodata:0x0000009C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A0 = .rodata:0x000000A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_A8 = .rodata:0x000000A8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B0 = .rodata:0x000000B0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_B8 = .rodata:0x000000B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_BC = .rodata:0x000000BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C0 = .rodata:0x000000C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C4 = .rodata:0x000000C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_C8 = .rodata:0x000000C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_CC = .rodata:0x000000CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D0 = .rodata:0x000000D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D4 = .rodata:0x000000D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_D8 = .rodata:0x000000D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_E0 = .rodata:0x000000E0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_E8 = .rodata:0x000000E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_F0 = .rodata:0x000000F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F4 = .rodata:0x000000F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_F8 = .rodata:0x000000F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_FC = .rodata:0x000000FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_100 = .rodata:0x00000100; // type:object size:0x4 scope:local data:float +lbl_1_rodata_104 = .rodata:0x00000104; // type:object size:0x4 scope:local data:float +lbl_1_rodata_108 = .rodata:0x00000108; // type:object size:0x4 scope:local data:float +lbl_1_rodata_10C = .rodata:0x0000010C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_110 = .rodata:0x00000110; // type:object size:0x4 scope:local data:float +lbl_1_rodata_114 = .rodata:0x00000114; // type:object size:0x4 scope:local data:float +lbl_1_rodata_118 = .rodata:0x00000118; // type:object size:0x4 scope:local data:float +lbl_1_rodata_11C = .rodata:0x0000011C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_120 = .rodata:0x00000120; // type:object size:0x8 scope:local data:double +lbl_1_rodata_128 = .rodata:0x00000128; // type:object size:0x8 scope:local data:double +lbl_1_rodata_130 = .rodata:0x00000130; // type:object size:0x4 scope:local data:float +lbl_1_rodata_134 = .rodata:0x00000134; // type:object size:0x4 scope:local data:float +lbl_1_rodata_138 = .rodata:0x00000138; // type:object size:0x4 scope:local data:float +lbl_1_rodata_13C = .rodata:0x0000013C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_140 = .rodata:0x00000140; // type:object size:0x8 scope:local data:double +lbl_1_rodata_148 = .rodata:0x00000148; // type:object size:0x8 scope:local data:double +lbl_1_rodata_150 = .rodata:0x00000150; // type:object size:0x4 scope:local data:float +lbl_1_rodata_154 = .rodata:0x00000154; // type:object size:0x4 scope:local data:float +lbl_1_rodata_158 = .rodata:0x00000158; // type:object size:0x4 scope:local data:float +lbl_1_rodata_15C = .rodata:0x0000015C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_160 = .rodata:0x00000160; // type:object size:0x4 scope:local data:float +lbl_1_rodata_164 = .rodata:0x00000164; // type:object size:0x4 scope:local data:float +lbl_1_rodata_168 = .rodata:0x00000168; // type:object size:0x4 scope:local data:float +lbl_1_rodata_16C = .rodata:0x0000016C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_170 = .rodata:0x00000170; // type:object size:0x4 scope:local data:float +lbl_1_rodata_174 = .rodata:0x00000174; // type:object size:0x4 scope:local data:float +lbl_1_rodata_178 = .rodata:0x00000178; // type:object size:0x4 scope:local data:float +lbl_1_rodata_17C = .rodata:0x0000017C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_180 = .rodata:0x00000180; // type:object size:0x4 scope:local data:float +lbl_1_rodata_184 = .rodata:0x00000184; // type:object size:0x4 scope:local data:float +lbl_1_rodata_188 = .rodata:0x00000188; // type:object size:0x4 scope:local data:float +lbl_1_rodata_18C = .rodata:0x0000018C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_190 = .rodata:0x00000190; // type:object size:0x4 scope:local data:float +lbl_1_rodata_194 = .rodata:0x00000194; // type:object size:0x4 scope:local data:float +lbl_1_rodata_198 = .rodata:0x00000198; // type:object size:0x8 scope:local data:double +lbl_1_rodata_1A0 = .rodata:0x000001A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A4 = .rodata:0x000001A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1A8 = .rodata:0x000001A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1AC = .rodata:0x000001AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B0 = .rodata:0x000001B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B4 = .rodata:0x000001B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1B8 = .rodata:0x000001B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1BC = .rodata:0x000001BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C0 = .rodata:0x000001C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C4 = .rodata:0x000001C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1C8 = .rodata:0x000001C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1CC = .rodata:0x000001CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D0 = .rodata:0x000001D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D4 = .rodata:0x000001D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1D8 = .rodata:0x000001D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1DC = .rodata:0x000001DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E0 = .rodata:0x000001E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E4 = .rodata:0x000001E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1E8 = .rodata:0x000001E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1EC = .rodata:0x000001EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F0 = .rodata:0x000001F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_1F8 = .rodata:0x000001F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_200 = .rodata:0x00000200; // type:object size:0x4 scope:local data:float +lbl_1_rodata_204 = .rodata:0x00000204; // type:object size:0x4 scope:local data:float +lbl_1_rodata_208 = .rodata:0x00000208; // type:object size:0x4 scope:local data:float +lbl_1_rodata_210 = .rodata:0x00000210; // type:object size:0x8 scope:local data:double +lbl_1_rodata_218 = .rodata:0x00000218; // type:object size:0x8 scope:local data:double +lbl_1_rodata_220 = .rodata:0x00000220; // type:object size:0x4 scope:local data:float +lbl_1_rodata_224 = .rodata:0x00000224; // type:object size:0x4 scope:local data:float +lbl_1_rodata_228 = .rodata:0x00000228; // type:object size:0x4 scope:local data:float +lbl_1_rodata_22C = .rodata:0x0000022C; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_238 = .rodata:0x00000238; // type:object size:0x4 scope:local data:float +lbl_1_rodata_23C = .rodata:0x0000023C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_240 = .rodata:0x00000240; // type:object size:0x4 scope:local data:float +lbl_1_rodata_248 = .rodata:0x00000248; // type:object size:0x8 scope:local data:double +lbl_1_rodata_250 = .rodata:0x00000250; // type:object size:0x4 scope:local data:float +lbl_1_rodata_254 = .rodata:0x00000254; // type:object size:0x4 scope:local data:float +lbl_1_rodata_258 = .rodata:0x00000258; // type:object size:0x4 scope:local data:float +lbl_1_rodata_25C = .rodata:0x0000025C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_260 = .rodata:0x00000260; // type:object size:0x4 scope:local data:float +lbl_1_rodata_264 = .rodata:0x00000264; // type:object size:0x4 scope:local data:float +lbl_1_rodata_268 = .rodata:0x00000268; // type:object size:0x4 scope:local data:float +lbl_1_rodata_26C = .rodata:0x0000026C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_270 = .rodata:0x00000270; // type:object size:0x4 scope:local data:float +lbl_1_rodata_274 = .rodata:0x00000274; // type:object size:0x4 scope:local data:float +lbl_1_rodata_278 = .rodata:0x00000278; // type:object size:0x4 scope:local data:float +lbl_1_rodata_27C = .rodata:0x0000027C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_280 = .rodata:0x00000280; // type:object size:0x4 scope:local data:float +lbl_1_rodata_284 = .rodata:0x00000284; // type:object size:0xC scope:local data:4byte +lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x4 scope:local data:float +lbl_1_rodata_294 = .rodata:0x00000294; // type:object size:0x4 scope:local data:float +lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float +lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:float +lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2D8 = .rodata:0x000002D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2DC = .rodata:0x000002DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E0 = .rodata:0x000002E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E4 = .rodata:0x000002E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_2E8 = .rodata:0x000002E8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F0 = .rodata:0x000002F0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_2F8 = .rodata:0x000002F8; // type:object size:0x8 scope:local data:double +lbl_1_rodata_300 = .rodata:0x00000300; // type:object size:0x4 scope:local data:float +lbl_1_rodata_304 = .rodata:0x00000304; // type:object size:0x4 scope:local data:float +lbl_1_rodata_308 = .rodata:0x00000308; // type:object size:0x4 scope:local data:float +lbl_1_rodata_310 = .rodata:0x00000310; // type:object size:0x8 scope:local data:double +lbl_1_rodata_318 = .rodata:0x00000318; // type:object size:0x8 scope:local data:double +lbl_1_rodata_320 = .rodata:0x00000320; // type:object size:0x4 scope:local data:float +lbl_1_rodata_324 = .rodata:0x00000324; // type:object size:0x4 scope:local data:float +lbl_1_rodata_328 = .rodata:0x00000328; // type:object size:0x4 scope:local data:float +lbl_1_rodata_32C = .rodata:0x0000032C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_330 = .rodata:0x00000330; // type:object size:0x4 scope:local data:float +lbl_1_rodata_334 = .rodata:0x00000334; // type:object size:0x4 scope:local data:float +lbl_1_rodata_338 = .rodata:0x00000338; // type:object size:0x4 scope:local data:float +lbl_1_rodata_33C = .rodata:0x0000033C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_340 = .rodata:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_rodata_344 = .rodata:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_rodata_348 = .rodata:0x00000348; // type:object size:0x4 scope:local data:float +lbl_1_rodata_34C = .rodata:0x0000034C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_350 = .rodata:0x00000350; // type:object size:0x4 scope:local data:float +lbl_1_rodata_358 = .rodata:0x00000358; // type:object size:0x8 scope:local data:double +lbl_1_rodata_360 = .rodata:0x00000360; // type:object size:0x4 scope:local data:float +lbl_1_rodata_364 = .rodata:0x00000364; // type:object size:0x4 scope:local data:float +lbl_1_rodata_368 = .rodata:0x00000368; // type:object size:0x4 scope:local data:float +lbl_1_rodata_36C = .rodata:0x0000036C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_370 = .rodata:0x00000370; // type:object size:0x8 scope:local data:double +lbl_1_rodata_378 = .rodata:0x00000378; // type:object size:0x8 scope:local data:double +lbl_1_rodata_380 = .rodata:0x00000380; // type:object size:0x4 scope:local data:float +lbl_1_rodata_384 = .rodata:0x00000384; // type:object size:0x4 scope:local data:float +lbl_1_rodata_388 = .rodata:0x00000388; // type:object size:0x4 scope:local data:float +lbl_1_rodata_38C = .rodata:0x0000038C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_390 = .rodata:0x00000390; // type:object size:0x4 scope:local data:float +lbl_1_rodata_394 = .rodata:0x00000394; // type:object size:0x4 scope:local data:float +lbl_1_rodata_398 = .rodata:0x00000398; // type:object size:0x8 scope:local data:float +lbl_1_rodata_3A0 = .rodata:0x000003A0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A4 = .rodata:0x000003A4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3A8 = .rodata:0x000003A8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3AC = .rodata:0x000003AC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B0 = .rodata:0x000003B0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B4 = .rodata:0x000003B4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3B8 = .rodata:0x000003B8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3BC = .rodata:0x000003BC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C0 = .rodata:0x000003C0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C4 = .rodata:0x000003C4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3C8 = .rodata:0x000003C8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3CC = .rodata:0x000003CC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3D0 = .rodata:0x000003D0; // type:object size:0x8 scope:local data:double +lbl_1_rodata_3D8 = .rodata:0x000003D8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3DC = .rodata:0x000003DC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E0 = .rodata:0x000003E0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E4 = .rodata:0x000003E4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3E8 = .rodata:0x000003E8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3EC = .rodata:0x000003EC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F0 = .rodata:0x000003F0; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F4 = .rodata:0x000003F4; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3F8 = .rodata:0x000003F8; // type:object size:0x4 scope:local data:float +lbl_1_rodata_3FC = .rodata:0x000003FC; // type:object size:0x4 scope:local data:float +lbl_1_rodata_400 = .rodata:0x00000400; // type:object size:0x4 scope:local data:float +lbl_1_rodata_404 = .rodata:0x00000404; // type:object size:0x4 scope:local data:float +lbl_1_rodata_408 = .rodata:0x00000408; // type:object size:0x4 scope:local data:float +lbl_1_rodata_410 = .rodata:0x00000410; // type:object size:0x8 scope:local data:double +lbl_1_rodata_418 = .rodata:0x00000418; // type:object size:0x4 scope:local data:float +lbl_1_rodata_41C = .rodata:0x0000041C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_420 = .rodata:0x00000420; // type:object size:0x4 scope:local data:float +lbl_1_rodata_424 = .rodata:0x00000424; // type:object size:0x4 scope:local data:float +lbl_1_rodata_428 = .rodata:0x00000428; // type:object size:0x4 scope:local data:float lbl_1_data_0 = .data:0x00000000; // type:object size:0x280 lbl_1_data_280 = .data:0x00000280; // type:object size:0x2 data:2byte lbl_1_data_282 = .data:0x00000282; // type:object size:0x2 data:2byte diff --git a/configure.py b/configure.py index a7d72d58..7a862bd5 100644 --- a/configure.py +++ b/configure.py @@ -199,6 +199,9 @@ cflags_base = [ "-DMUSY_TARGET=MUSY_TARGET_DOLPHIN", ] +if config.non_matching: + cflags_base.append("-DNON_MATCHING") + # Debug flags if args.debug: cflags_base.extend(["-sym on", "-DDEBUG=1"]) @@ -279,6 +282,7 @@ cflags_musyx = [ "-str reuse,pool,readonly", "-fp_contract off", "-DMUSY_TARGET=MUSY_TARGET_DOLPHIN", + "-sym on" ] cflags_musyx_debug = [ @@ -419,7 +423,7 @@ config.libs = [ Object(Matching, "game/sprman.c"), Object(Matching, "game/sprput.c"), Object(Matching, "game/hsfload.c"), - Object(NonMatching, "game/hsfdraw.c"), + Object(Equivalent, "game/hsfdraw.c"), Object(Matching, "game/hsfman.c"), Object(Matching, "game/hsfmotion.c"), Object(Matching, "game/hsfanim.c"), @@ -1290,7 +1294,7 @@ config.libs = [ Rel( "m457Dll", # Bowser Wrestling objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/m457Dll/main.c"), + Object(Matching, "REL/m457Dll/main.c"), }, ), Rel( @@ -1370,7 +1374,7 @@ config.libs = [ "modeseldll", objects={ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeseldll/main.c"), - Object(NonMatching, "REL/modeseldll/modesel.c"), + Object(Equivalent, "REL/modeseldll/modesel.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeseldll/filesel.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeseldll/datalist.c"), }, diff --git a/include/REL/mgmodedll.h b/include/REL/mgmodedll.h index 3e8ef9c3..fdfe352e 100644 --- a/include/REL/mgmodedll.h +++ b/include/REL/mgmodedll.h @@ -7,9 +7,9 @@ #include "game/object.h" #include "game/objsub.h" +#include "game/pad.h" #include "game/sprite.h" #include "game/window.h" -#include "game/pad.h" typedef struct datalist_model { s32 datanum; @@ -33,7 +33,7 @@ typedef struct datalist_sprite { typedef struct struct_bss8_24 { omObjData *unk0; - void (*unk4)(omObjData*, ...); + void (*unk4)(omObjData *, ...); u8 unk8[0x50]; s32 unk58; s32 unk5C; @@ -72,7 +72,7 @@ extern s16 lbl_1_bss_20C0[10][70]; extern s16 lbl_1_bss_20AC[10]; extern s16 lbl_1_bss_20AA; -extern Process *lbl_1_bss_2D8; +extern Process *objman; extern s16 lbl_1_bss_2E4; @@ -80,7 +80,7 @@ extern s16 lbl_1_bss_2A6; extern s16 lbl_1_bss_2A4; extern StructBss8 lbl_1_bss_8; -extern s16 lbl_1_bss_4; +extern s16 mgModeEvtNo; extern s16 lbl_1_data_A2[]; extern DataListModel lbl_1_data_490[]; @@ -112,4 +112,4 @@ s16 fn_1_271B4(s16 mgNo, s16 x, s16 y); void fn_1_27418(void); void fn_1_279FC(s32 coinSkipF); -#endif \ No newline at end of file +#endif diff --git a/src/REL/bootDll/main.c b/src/REL/bootDll/main.c index 5aa7dfcb..ee8b1b04 100644 --- a/src/REL/bootDll/main.c +++ b/src/REL/bootDll/main.c @@ -4,6 +4,7 @@ #include "game/data.h" #include "game/gamework_data.h" #include "game/hsfman.h" +#include "game/minigame_seq.h" #include "game/memory.h" #include "game/msm.h" #include "game/object.h" @@ -783,4 +784,4 @@ void *NintendoDataDecode(void) HuDecodeData(src, dst, size, decode_type); } return dst; -} \ No newline at end of file +} diff --git a/src/REL/m413Dll/main.c b/src/REL/m413Dll/main.c index bcf73c18..718bf09c 100644 --- a/src/REL/m413Dll/main.c +++ b/src/REL/m413Dll/main.c @@ -14,6 +14,13 @@ #include "ext_math.h" +#ifndef __MWERKS__ +#include "string.h" +#include "game/hsfex.h" +#endif + +s32 rand8(void); + typedef struct struct_bss_2A6C StructBss2A6C; typedef struct struct_sp_14C8 StructSp14C8; diff --git a/src/REL/m419Dll/main.c b/src/REL/m419Dll/main.c index 83ae359e..dd58a28a 100755 --- a/src/REL/m419Dll/main.c +++ b/src/REL/m419Dll/main.c @@ -1593,7 +1593,7 @@ void fn_1_78B4(StructBss200 *arg0) float sp118; float sp114; float sp110; - float var_f27; + float var_f27; // ! - uninitialized float var_f29; float var_f28; float var_f30; diff --git a/src/REL/m423Dll/main.c b/src/REL/m423Dll/main.c index a511fc2d..4590b4a0 100755 --- a/src/REL/m423Dll/main.c +++ b/src/REL/m423Dll/main.c @@ -2800,7 +2800,7 @@ void fn_1_8CB4(omObjData *arg0) float temp_f28; float var_f30; float var_f31; - float var_f26; + float var_f26; // ! - uninitialized float temp_f27; StructBssBCData *temp_r31; ModelData *sp8; diff --git a/src/REL/m424Dll/claw.c b/src/REL/m424Dll/claw.c index b6061580..42d11821 100644 --- a/src/REL/m424Dll/claw.c +++ b/src/REL/m424Dll/claw.c @@ -1162,7 +1162,7 @@ void fn_1_C604(s32 arg0, s32 arg1) Vec *var_r31; f32 temp_f31; f32 var_f30; - s32 var_r30; + s32 var_r30; // ! - uninitialized M424DllBallStruct2 *var_r28; Vec *var_r27; diff --git a/src/REL/m424Dll/main.c b/src/REL/m424Dll/main.c index 8fb9218d..0b9f27ba 100644 --- a/src/REL/m424Dll/main.c +++ b/src/REL/m424Dll/main.c @@ -132,7 +132,7 @@ void fn_1_41C(omObjData* object) { s16 sp12; s16 spE; s16 spA; - f32 var_f31; + f32 var_f31; // ! - uninitalized s32 var_r31; s32 var_r30; CameraData* var_r29; diff --git a/src/REL/m425Dll/main.c b/src/REL/m425Dll/main.c index 01182261..7d1a75d0 100644 --- a/src/REL/m425Dll/main.c +++ b/src/REL/m425Dll/main.c @@ -800,7 +800,7 @@ void fn_1_2A94(s16 arg0, Vec *arg1, Vec *arg2, float arg8) void fn_1_2B2C(omObjData *object) { - s32 sp8; + s32 sp8; // ! - uninitialized M425DllWork *var_r31; s32 var_r29; s32 var_r28; diff --git a/src/REL/m450Dll/main.c b/src/REL/m450Dll/main.c index e8536366..4610c4b3 100644 --- a/src/REL/m450Dll/main.c +++ b/src/REL/m450Dll/main.c @@ -3874,7 +3874,7 @@ void fn_1_11D5C(omObjData *object) UnkM450Struct3 *var_r31; s32 var_r29; - s32 var_r27; + s32 var_r27; // ! - uninitialized s32 *var_r26; (void)var_r27; diff --git a/src/REL/m457Dll/main.c b/src/REL/m457Dll/main.c index 484b27b6..4e570c51 100755 --- a/src/REL/m457Dll/main.c +++ b/src/REL/m457Dll/main.c @@ -1,7 +1,7 @@ +#include "dolphin/pad.h" #include "game/audio.h" #include "game/chrman.h" #include "game/data.h" -#include "game/sprite.h" #include "game/esprite.h" #include "game/gamework_data.h" #include "game/hsfdraw.h" @@ -13,43 +13,73 @@ #include "game/pad.h" #include "game/printfunc.h" #include "game/process.h" +#include "game/sprite.h" #include "game/window.h" #include "game/wipe.h" #include "string.h" #include "ext_math.h" +#include "version.h" s32 rand8(void); -typedef struct { - /* 0x00 */ s32 unk00; - /* 0x04 */ s32 unk04; - /* 0x08 */ s32 unk08; - /* 0x0C */ s32 unk0C; - /* 0x10 */ s32 unk10; - /* 0x14 */ s32 unk14; +#define MSM_SE_BOWSER_LAUGH 0x3A +#define MSM_SE_BOWSER_HOWL 0x3E +#define MSM_SE_KOOPA_KID_DROP 0x5B +#define MSM_SE_PLAYER_DROP 0x33D +#define MSM_SE_WIND 0x6D7 +#define MSM_SE_INVINCIBILITY 0x7E6 + +#define MSM_MUS_BACKGROUND 0x4D + +#define MODEL_ID_PLAYER_PLAYER 0 + +#define MODEL_ID_GAME_SKY 0 +#define MODEL_ID_GAME_RING 1 +#define MODEL_ID_GAME_MUSHROOM 2 +#define MODEL_ID_GAME_INVINCE_SHINING 3 +#define MODEL_ID_GAME_INVINCE_SPARKS 4 +#define MODEL_ID_GAME_KOOPA_KID 5 +#define MODEL_ID_GAME_WAR_FAN 6 + +#define CHARACTER_BOWSER -1 +#define PAD_IDX_COM -1 + +#define PLAYER_STATE_INITIAL_ADVANCE 2 // TODO is this right? +#define PLAYER_STATE_FALLING 16 + +#define PREV_TRIG_L 0 +#define PREV_TRIG_R 1 + +typedef struct PlayerData { + /* 0x00 */ s32 group; + /* 0x04 */ s32 player; + /* 0x08 */ s32 character; + /* 0x0C */ s32 padIdx; + /* 0x10 */ s32 diff; + /* 0x14 */ s32 state; /* 0x18 */ s32 unk18; - /* 0x1C */ s32 unk1C; + /* 0x1C */ s32 invinceTime; /* 0x20 */ s32 unk20; /* 0x24 */ s32 unk24; /* 0x28 */ s32 unk28; /* 0x2C */ s32 unk2C; - /* 0x30 */ s32 unk30; + /* 0x30 */ s32 stamina; /* 0x34 */ s32 unk34; - /* 0x38 */ s32 unk38; + /* 0x38 */ s32 prevTrig; /* 0x3C */ s32 unk3C; /* 0x40 */ s32 unk40; /* 0x44 */ s32 unk44; /* 0x48 */ float unk48; /* 0x4C */ s32 unk4C; -} StructBss68Data; // Size 0x50 +} PlayerData; // Size 0x50 -typedef struct { +typedef struct StructBss78 { /* 0x00 */ s32 unk00; /* 0x04 */ float unk04[3]; } StructBss78; // Size 0x10 -typedef struct { +typedef struct StructData28C { /* 0x00 */ s32 unk00; /* 0x04 */ s32 unk04; /* 0x08 */ float unk08; @@ -58,137 +88,86 @@ typedef struct { /* 0x14 */ float unk14; } StructData28C; // Size 0x18 -void fn_1_7AE4(omObjData* arg0); +typedef struct SparkData { + /* 0x00 */ float scale; + /* 0x04 */ float xOffset; + /* 0x08 */ float yOffset; +} SparkData; // Size 0x0C -StructBss78 lbl_1_bss_78[5]; -omObjData* lbl_1_bss_74; -omObjData* lbl_1_bss_70; -omObjData* lbl_1_bss_68[2]; -omObjData* lbl_1_bss_64; -s32 lbl_1_bss_60; -s32 lbl_1_bss_5C; -char lbl_1_bss_58[4]; // unused -s32 lbl_1_bss_54; -s32 lbl_1_bss_50; -Process* lbl_1_bss_4C; -s32 lbl_1_bss_48; -s32 lbl_1_bss_44; -s32 lbl_1_bss_40; -s32 lbl_1_bss_3C; -char lbl_1_bss_38[4]; // unused -float lbl_1_bss_34; -float lbl_1_bss_30; -float lbl_1_bss_2C; -float lbl_1_bss_28; -s32 lbl_1_bss_24; -s32 lbl_1_bss_20; -s32 lbl_1_bss_1C; -s32 lbl_1_bss_18; -s32 lbl_1_bss_14; -s32 lbl_1_bss_10; -char lbl_1_bss_8[8]; // unused -s32 lbl_1_bss_4; -char lbl_1_bss_0[4]; // unused +static void M457Exit(omObjData *object); -s32 lbl_1_data_0[] = { - DATA_MAKE_NUM(DATADIR_M457, 23), - DATA_MAKE_NUM(DATADIR_M457, 22), - DATA_MAKE_NUM(DATADIR_M457, 24), - DATA_MAKE_NUM(DATADIR_M457, 24), - DATA_MAKE_NUM(DATADIR_M457, 24), - DATA_MAKE_NUM(DATADIR_M457, 24), - DATA_MAKE_NUM(DATADIR_M457, 24), - DATA_MAKE_NUM(DATADIR_MGCONST, 0), - DATA_MAKE_NUM(DATADIR_M457, 23), - DATA_MAKE_NUM(DATADIR_M457, 22), - DATA_MAKE_NUM(DATADIR_M457, 24), - DATA_MAKE_NUM(DATADIR_M457, 24), - DATA_MAKE_NUM(DATADIR_M457, 24), - DATA_MAKE_NUM(DATADIR_M457, 24), - DATA_MAKE_NUM(DATADIR_M457, 24), - DATA_MAKE_NUM(DATADIR_MGCONST, 0), - DATA_MAKE_NUM(DATADIR_M457, 27), - DATA_MAKE_NUM(DATADIR_M457, 28), - DATA_MAKE_NUM(DATADIR_M457, 25), - DATA_MAKE_NUM(DATADIR_M457, 25), - DATA_MAKE_NUM(DATADIR_M457, 25), - DATA_MAKE_NUM(DATADIR_M457, 25), - DATA_MAKE_NUM(DATADIR_M457, 25) -}; +static StructBss78 lbl_1_bss_78[5]; +static omObjData *mainObj; +static omObjData *omViewObj; +static omObjData *playerObj[2]; +static omObjData *gameObj; +static s32 lbl_1_bss_60; +static s32 gameState; +static char lbl_1_bss_58[4]; // unused +static s32 lbl_1_bss_54; +static s32 lbl_1_bss_50; +static Process *objman; +static s32 lightId; +static s32 lbl_1_bss_44; +static s32 lbl_1_bss_40; +static s32 lbl_1_bss_3C; +static char lbl_1_bss_38[4]; // unused +static float lbl_1_bss_34; +static float lbl_1_bss_30; +static float lbl_1_bss_2C; +static float lbl_1_bss_28; +static s32 lbl_1_bss_24; +static s32 lbl_1_bss_20; +static s32 lbl_1_bss_1C; +static s32 lbl_1_bss_18; +static BOOL againstBrowserF; +static s32 m457MesEndF; +static char lbl_1_bss_8[8]; // unused +static s32 lbl_1_bss_4; +static char lbl_1_bss_0[4]; // unused -s32 lbl_1_data_5C[23] = { 0 }; +s32 sprDataNumTbl[] = { DATA_MAKE_NUM(DATADIR_M457, 23), DATA_MAKE_NUM(DATADIR_M457, 22), DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_M457, 24), DATA_MAKE_NUM(DATADIR_M457, 24), DATA_MAKE_NUM(DATADIR_M457, 24), DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_MGCONST, 0), DATA_MAKE_NUM(DATADIR_M457, 23), DATA_MAKE_NUM(DATADIR_M457, 22), DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_M457, 24), DATA_MAKE_NUM(DATADIR_M457, 24), DATA_MAKE_NUM(DATADIR_M457, 24), DATA_MAKE_NUM(DATADIR_M457, 24), + DATA_MAKE_NUM(DATADIR_MGCONST, 0), DATA_MAKE_NUM(DATADIR_M457, 27), DATA_MAKE_NUM(DATADIR_M457, 28), DATA_MAKE_NUM(DATADIR_M457, 25), + DATA_MAKE_NUM(DATADIR_M457, 25), DATA_MAKE_NUM(DATADIR_M457, 25), DATA_MAKE_NUM(DATADIR_M457, 25), DATA_MAKE_NUM(DATADIR_M457, 25) }; -s32 lbl_1_data_B8[] = { - DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 5), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 112), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 111), - DATA_MAKE_NUM(DATADIR_M457, 8), - DATA_MAKE_NUM(DATADIR_M457, 0), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 12), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 13), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 21), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), - DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) -}; +s32 sprIdTbl[23] = { 0 }; + +s32 lbl_1_data_B8[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0), DATA_MAKE_NUM(DATADIR_MARIOMOT, 5), DATA_MAKE_NUM(DATADIR_MARIOMOT, 6), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 112), DATA_MAKE_NUM(DATADIR_MARIOMOT, 111), DATA_MAKE_NUM(DATADIR_M457, 8), DATA_MAKE_NUM(DATADIR_M457, 0), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 12), DATA_MAKE_NUM(DATADIR_MARIOMOT, 13), DATA_MAKE_NUM(DATADIR_MARIOMOT, 21), + DATA_MAKE_NUM(DATADIR_MARIOMOT, 23), DATA_MAKE_NUM(DATADIR_MARIOMOT, 24) }; u32 lbl_1_data_E8[] = { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 }; -u32 lbl_1_data_118[] = { - DATA_MAKE_NUM(DATADIR_BKOOPA, 8), - DATA_MAKE_NUM(DATADIR_BKOOPA, 10), - 0, - DATA_MAKE_NUM(DATADIR_M457, 31), - DATA_MAKE_NUM(DATADIR_M457, 32), - DATA_MAKE_NUM(DATADIR_M457, 33), - DATA_MAKE_NUM(DATADIR_M457, 34), - DATA_MAKE_NUM(DATADIR_M457, 35), - DATA_MAKE_NUM(DATADIR_M457, 36), - DATA_MAKE_NUM(DATADIR_M457, 37), - DATA_MAKE_NUM(DATADIR_M457, 29), - DATA_MAKE_NUM(DATADIR_M457, 30) -}; +u32 lbl_1_data_118[] = { DATA_MAKE_NUM(DATADIR_BKOOPA, 8), DATA_MAKE_NUM(DATADIR_BKOOPA, 10), 0, DATA_MAKE_NUM(DATADIR_M457, 31), + DATA_MAKE_NUM(DATADIR_M457, 32), DATA_MAKE_NUM(DATADIR_M457, 33), DATA_MAKE_NUM(DATADIR_M457, 34), DATA_MAKE_NUM(DATADIR_M457, 35), + DATA_MAKE_NUM(DATADIR_M457, 36), DATA_MAKE_NUM(DATADIR_M457, 37), DATA_MAKE_NUM(DATADIR_M457, 29), DATA_MAKE_NUM(DATADIR_M457, 30) }; u8 lbl_1_data_148[12] = { 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1 }; s32 lbl_1_data_154[12] = { 8, 0, 0, 8, 5, 8, 4, 2, 2, 8, 8, 8 }; s32 lbl_1_data_184[12] = { 0 }; -float lbl_1_data_1B4[][3] = { - { 0.0f, 0.0f, 0.0f }, - { 0.0f, 0.0f, 0.0f }, - { 20.0f, 60.0f, 20.0f }, - { 20.0f, 70.0f, 20.0f }, - { 20.0f, 20.0f, 20.0f }, - { 50.0f, -70.0f, 0.0f }, - { 20.0f, 60.0f, 20.0f }, - { 100.0f, 0.0f, 50.0f }, - { -70.0f, -70.0f, -70.0f } -}; +float lbl_1_data_1B4[9][3] = { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 20.0f, 60.0f, 20.0f }, { 20.0f, 70.0f, 20.0f }, { 20.0f, 20.0f, 20.0f }, + { 50.0f, -70.0f, 0.0f }, { 20.0f, 60.0f, 20.0f }, { 100.0f, 0.0f, 50.0f }, { -70.0f, -70.0f, -70.0f } }; -float lbl_1_data_220[][3] = { - { 1.5f, 45.0f, 270.0f }, - { 1.7f, 45.0f, 270.0f }, - { 1.8f, 45.0f, 270.0f }, - { 1.6f, 45.0f, 270.0f }, - { 1.7f, 5.0f, 270.0f }, - { 2.0f, -85.0f, 295.0f }, - { 1.8f, 45.0f, 270.0f }, - { 2.0f, 40.0f, 330.0f }, - { 2.25f, -30.0f, 300.0f } -}; +SparkData sparkDataTbl[9] = { { 1.5f, 45.0f, 270.0f }, { 1.7f, 45.0f, 270.0f }, { 1.8f, 45.0f, 270.0f }, { 1.6f, 45.0f, 270.0f }, + { 1.7f, 5.0f, 270.0f }, { 2.0f, -85.0f, 295.0f }, { 1.8f, 45.0f, 270.0f }, { 2.0f, 40.0f, 330.0f }, { 2.25f, -30.0f, 300.0f } }; StructData28C lbl_1_data_28C = { 0 }; s16 lbl_1_data_2A4 = -1; s16 lbl_1_data_2A6 = -1; -s32 lbl_1_data_2A8 = -1; -s32 lbl_1_data_2AC = -1; +s32 backgroundMusNo = -1; +s32 windSeNo = -1; s16 lbl_1_data_2B0 = -1; -s32 lbl_1_data_2B4 = -1; -s32 lbl_1_data_2B8 = 600; +s32 invincibilitySeNo = -1; +s32 lbl_1_data_2B8 = 10 * REFRESH_RATE; -void fn_1_A0(void) { +static void CameraPrintDebug(void) +{ Center.x += 10.0 * (((HuPadBtn[0] & PAD_BUTTON_RIGHT) != 0) - ((HuPadBtn[0] & PAD_BUTTON_LEFT) != 0)); Center.z -= 10.0 * (((HuPadBtn[0] & PAD_BUTTON_UP) != 0) - ((HuPadBtn[0] & PAD_BUTTON_DOWN) != 0)); Center.y += 10.0 * (((HuPadBtn[0] & PAD_BUTTON_Y) != 0) - ((HuPadBtn[0] & PAD_BUTTON_X) != 0)); @@ -200,157 +179,137 @@ void fn_1_A0(void) { print8(64, 424, 1.0f, "%f", CZoom); } -void fn_1_46C(omObjData* arg0) { - s16 var_r29; - s16 var_r26; - s16 var_r22; - s32 var_r20; - s32 var_r25; - s32 var_r24; - Vec sp104; - float spFC[2]; - float spE8; - float spE4; - float spE0; - float temp_f31; - s32 spDC; - s32 spD8; - s32 sp20; - s32 temp_r19; - s32 temp_r21; - char* var_r18; - StructBss68Data* temp_r31; - StructBss68Data* temp_r28; - ModelData* spD4; +static void M457PlayerExec(omObjData *object) +{ + PlayerData *playerData = object->data; + PlayerData *opponentData = playerObj[1 - object->work[0]]->data; + float unused = 0.0f; + float unused2 = 0.0f; + float unused3 = 0.0f; + s32 unused4 = 0; + s16 var_r29 = -1; + s16 var_r26 = -1; + s16 var_r22 = -1; + BOOL aPressedF = (playerData->padIdx == PAD_IDX_COM) ? 0 : ((HuPadBtnDown[playerData->padIdx] & PAD_BUTTON_A) > 0); + BOOL rPressedF = (playerData->padIdx == PAD_IDX_COM) ? 0 : ((HuPadBtnDown[playerData->padIdx] & PAD_TRIGGER_R) > 0); + BOOL lPressedF = (playerData->padIdx == PAD_IDX_COM) ? 0 : ((HuPadBtnDown[playerData->padIdx] & PAD_TRIGGER_L) > 0); s32 i; - temp_r31 = arg0->data; - temp_r28 = lbl_1_bss_68[1 - arg0->work[0]]->data; - spE8 = 0.0f; - spE4 = 0.0f; - spE0 = 0.0f; - spDC = 0; - var_r29 = -1; - var_r26 = -1; - var_r22 = -1; - var_r20 = (temp_r31->unk0C == -1) ? 0 - : ((HuPadBtnDown[temp_r31->unk0C] & 0x100) > 0); - var_r25 = (temp_r31->unk0C == -1) ? 0 - : ((HuPadBtnDown[temp_r31->unk0C] & 0x20) > 0); - var_r24 = (temp_r31->unk0C == -1) ? 0 - : ((HuPadBtnDown[temp_r31->unk0C] & 0x40) > 0); - if (temp_r31->unk0C == -1) { - temp_r31->unk3C--; - if (temp_r31->unk3C <= 0) { - if (temp_r31->unk14 == 1) { - var_r20 = 1; - } else { - var_r25 = var_r24 = 1; + if (playerData->padIdx == PAD_IDX_COM) { + playerData->unk3C--; + if (playerData->unk3C <= 0) { + if (playerData->state == 1) { + aPressedF = TRUE; } - if (temp_r31->unk14 >= 8 || (temp_r31->unk14 >= 3 && temp_r31->unk18 >= 10)) { - switch (temp_r31->unk10) { + else { + rPressedF = lPressedF = TRUE; + } + if (playerData->state >= 8 || (playerData->state >= 3 && playerData->unk18 >= 10)) { + switch (playerData->diff) { case 0: - temp_r31->unk3C = rand8() % 14 + 4 - + (temp_r31->unk14 != 8 ? 28 - temp_r31->unk18 : 0); + playerData->unk3C = rand8() % 14 + 4 + (playerData->state != 8 ? 28 - playerData->unk18 : 0); break; case 1: - temp_r31->unk3C = rand8() % 9 + 4 - + (temp_r31->unk14 != 8 ? 28 - temp_r31->unk18 : 0); + playerData->unk3C = rand8() % 9 + 4 + (playerData->state != 8 ? 28 - playerData->unk18 : 0); break; case 2: - temp_r31->unk3C = rand8() % 10 + 12 - + ((temp_r31->unk14 != 8 && temp_r31->unk18 >= 9 && temp_r31->unk18 <= 13) ? 13 - temp_r31->unk18 : 0); + playerData->unk3C = rand8() % 10 + 12 + + ((playerData->state != 8 && playerData->unk18 >= 9 && playerData->unk18 <= 13) ? 13 - playerData->unk18 : 0); break; case 3: - temp_r31->unk3C = rand8() % 5 + 4 - + ((temp_r31->unk14 != 8 && temp_r31->unk18 >= 2 && temp_r31->unk18 <= 17) ? 17 - temp_r31->unk18 : 0); - if (temp_r28->unk1C > 0 || temp_r31->unk14 == 7) { - var_r24 = var_r25 = 0; + playerData->unk3C = rand8() % 5 + 4 + + ((playerData->state != 8 && playerData->unk18 >= 2 && playerData->unk18 <= 17) ? 17 - playerData->unk18 : 0); + if (opponentData->invinceTime > 0 || playerData->state == 7) { + // don't waste stamina + lPressedF = rPressedF = 0; } break; } } } } - if (temp_r31->unk38 == 0) { - var_r24 = 0; + if (playerData->prevTrig == PREV_TRIG_L) { + lPressedF = FALSE; } - if (temp_r31->unk38 == 1) { - var_r25 = 0; + if (playerData->prevTrig == PREV_TRIG_R) { + rPressedF = FALSE; } - if (temp_r31->unk20 > 0) { - var_r20 = 0; - temp_r31->unk20--; - } else if (var_r20 != 0) { - temp_r31->unk20 = 20; + if (playerData->unk20 > 0) { + aPressedF = FALSE; + playerData->unk20--; } - if (temp_r31->unk24 > 0) { - var_r24 = 0; - temp_r31->unk24--; - } else if (var_r24 != 0) { - temp_r31->unk24 = 6; + else if (aPressedF) { + playerData->unk20 = 20; } - if (temp_r31->unk28 > 0) { - var_r25 = 0; - temp_r31->unk28--; - } else if (var_r25 != 0) { - temp_r31->unk28 = 6; + if (playerData->unk24 > 0) { + lPressedF = FALSE; + playerData->unk24--; } - if (lbl_1_bss_5C == 1008 && temp_r31->unk14 >= 8 && temp_r31->unk14 <= 14) { - spD8 = temp_r31->unk30; - if (var_r24 != 0) { - temp_r31->unk30 -= 7; + else if (lPressedF) { + playerData->unk24 = 6; + } + if (playerData->unk28 > 0) { + rPressedF = FALSE; + playerData->unk28--; + } + else if (rPressedF) { + playerData->unk28 = 6; + } + if (gameState == 1008 && playerData->state >= 8 && playerData->state <= 14) { + s32 prevStamina = playerData->stamina; + if (lPressedF) { + playerData->stamina -= 7; } - if (var_r25 != 0) { - temp_r31->unk30 -= 7; + if (rPressedF) { + playerData->stamina -= 7; } - if (spD8 > 0 && temp_r31->unk30 <= 0) { - temp_r31->unk30 = -1; - temp_r31->unk4C = 1; + if (prevStamina > 0 && playerData->stamina <= 0) { + // cap at -1 + playerData->stamina = -1; + playerData->unk4C = 1; } } - if (lbl_1_bss_20 == 0 && lbl_1_bss_5C == 1008 && temp_r31->unk14 >= 7 && temp_r31->unk14 <= 14 && (var_r24 != 0 || var_r25 != 0)) { - temp_r31->unk38 = (var_r24 != 0) ? 0 - : (var_r25 != 0) ? 1 : 0; + if (lbl_1_bss_20 == 0 && gameState == 1008 && playerData->state >= 7 && playerData->state <= 14 && (lPressedF || rPressedF)) { + playerData->prevTrig = lPressedF ? PREV_TRIG_L : rPressedF ? PREV_TRIG_R : PREV_TRIG_L; } - if (temp_r31->unk00 == 0) { - lbl_1_bss_68[0]->trans.x -= temp_r31->unk48; - lbl_1_bss_68[1]->trans.x -= temp_r28->unk48; + if (playerData->group == 0) { + playerObj[0]->trans.x -= playerData->unk48; + playerObj[1]->trans.x -= opponentData->unk48; } - switch (lbl_1_bss_5C) { + switch (gameState) { case 1001: if (lbl_1_bss_60 == 0) { - Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); + Hu3DModelAttrReset(object->model[MODEL_ID_PLAYER_PLAYER], HU3D_ATTR_DISPOFF); } if (lbl_1_bss_60 <= 30) { - if (temp_r31->unk08 == -1) { - Hu3DMotionTimeSet(arg0->model[0], 138.0f); + if (playerData->character == CHARACTER_BOWSER) { + Hu3DMotionTimeSet(object->model[MODEL_ID_PLAYER_PLAYER], 138.0f); } - arg0->trans.y = 2400.0 * (1.0 - lbl_1_bss_60 / 30.0); + object->trans.y = 2400.0 * (1.0 - lbl_1_bss_60 / 30.0); } - if (temp_r31->unk08 != -1 && lbl_1_bss_60 == 30) { + if (playerData->character != CHARACTER_BOWSER && lbl_1_bss_60 == 30) { var_r29 = 2; } - if (lbl_1_bss_60 == 40 && temp_r31->unk08 != -1) { + if (lbl_1_bss_60 == 40 && playerData->character != CHARACTER_BOWSER) { var_r29 = 0; } - if (lbl_1_bss_60 == 45 && temp_r31->unk08 == -1) { + if (lbl_1_bss_60 == 45 && playerData->character == CHARACTER_BOWSER) { var_r29 = 0; - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r29], lbl_1_data_184[var_r29], 35.0f, HU3D_MOTATTR_LOOP); - temp_r31->unk40 = var_r29; + Hu3DMotionShiftSet(object->model[MODEL_ID_PLAYER_PLAYER], object->motion[var_r29], lbl_1_data_184[var_r29], 35.0f, HU3D_MOTATTR_LOOP); + playerData->unk40 = var_r29; } if (lbl_1_bss_60 == 30) { lbl_1_data_28C.unk04 += 50; } if (lbl_1_bss_60 == 30) { - HuAudFXPlay(0x33D); + HuAudFXPlay(MSM_SE_PLAYER_DROP); } break; case 1005: if (lbl_1_bss_60 == 0) { var_r29 = 3; } - if (lbl_1_bss_60 == 70) { + if (lbl_1_bss_60 == (s32)((21.0f / 18) * REFRESH_RATE)) { var_r29 = 4; } break; @@ -360,40 +319,41 @@ void fn_1_46C(omObjData* arg0) { } break; case 1010: - if (lbl_1_bss_44 == temp_r31->unk00 && lbl_1_bss_60 >= 15) { + if (lbl_1_bss_44 == playerData->group && lbl_1_bss_60 >= 15) { if (lbl_1_bss_60 == 15) { - temp_r31->unk14 = 0; - temp_r31->unk18 = 0; - if (temp_r31->unk08 == -1) { - HuAudFXPlay(0x3A); + playerData->state = 0; + playerData->unk18 = 0; + if (playerData->character == CHARACTER_BOWSER) { + HuAudFXPlay(MSM_SE_BOWSER_LAUGH); } } var_r29 = 10; - if (arg0->rot.y > 180.0f) { - arg0->rot.y -= 360.0f; + if (object->rot.y > 180.0f) { + object->rot.y -= 360.0f; } - arg0->rot.y *= 0.9; + object->rot.y *= 0.9; } if (lbl_1_bss_44 == 2 && lbl_1_bss_60 >= 15) { if (lbl_1_bss_60 == 15) { - temp_r31->unk14 = 0; - temp_r31->unk18 = 0; + playerData->state = 0; + playerData->unk18 = 0; } var_r29 = 11; - if (arg0->rot.y > 180.0f) { - arg0->rot.y -= 360.0f; + if (object->rot.y > 180.0f) { + object->rot.y -= 360.0f; } - arg0->rot.y *= 0.9; + object->rot.y *= 0.9; } break; } - temp_r31->unk18 += (temp_r31->unk18 < 0x10000); - if (temp_r31->unk14 == 3 || temp_r31->unk14 == 5) { - if (temp_r31->unk18 == 1 && lbl_1_data_2B0 != -1) { + playerData->unk18 += (playerData->unk18 < 0x10000); + if (playerData->state == 3 || playerData->state == 5) { + if (playerData->unk18 == 1 && lbl_1_data_2B0 != -1) { HuWinExCleanup(lbl_1_data_2B0); lbl_1_data_2B0 = -1; } - if ((temp_r31->unk14 == 3 && temp_r31->unk18 == 23) || (temp_r31->unk14 == 5 && temp_r31->unk18 == 15)) { + if ((playerData->state == 3 && playerData->unk18 == 23) || (playerData->state == 5 && playerData->unk18 == 15)) { + float spFC[2]; HuWinMesMaxSizeGet(1, spFC, MAKE_MESSID(48, 35)); if (lbl_1_data_2B0 == -1) { lbl_1_data_2B0 = HuWinCreate(-10000.0f, 400.0f, spFC[0], spFC[1], 1); @@ -403,380 +363,366 @@ void fn_1_46C(omObjData* arg0) { HuWinMesSet(lbl_1_data_2B0, MAKE_MESSID(48, 35)); } } - switch (temp_r31->unk14) { + switch (playerData->state) { case 0: - if (lbl_1_bss_5C == 1008) { - temp_r31->unk14 = 1; - temp_r31->unk18 = 0; + if (gameState == 1008) { + playerData->state = 1; + playerData->unk18 = 0; } break; case 1: - if (temp_r31->unk18 == 1 && temp_r31->unk0C == -1) { - switch (temp_r31->unk10) { + if (playerData->unk18 == 1 && playerData->padIdx == PAD_IDX_COM) { + switch (playerData->diff) { case 0: - temp_r31->unk3C = rand8() % 5 + 15; + playerData->unk3C = rand8() % 5 + 15; break; case 1: - temp_r31->unk3C = rand8() % 5 + 12; + playerData->unk3C = rand8() % 5 + 12; break; case 2: - temp_r31->unk3C = rand8() % 5 + 10; + playerData->unk3C = rand8() % 5 + 10; break; case 3: - temp_r31->unk3C = rand8() % 4 + 9; + playerData->unk3C = rand8() % 4 + 9; break; } } - if (var_r20 != 0) { - temp_r31->unk14 = 2; - temp_r31->unk18 = 0; + // initial advance + if (aPressedF) { + playerData->state = PLAYER_STATE_INITIAL_ADVANCE; + playerData->unk18 = 0; var_r29 = 6; - arg0->trans.x += (temp_r31->unk00 == 0) ? ((rand8() % 2) * 2 - 1) : 0; + object->trans.x += (playerData->group == 0) ? ((rand8() % 2) * 2 - 1) : 0; } break; - case 2: - arg0->trans.x += 8.695652f * (temp_r31->unk00 == 0 ? 1 : -1); + case PLAYER_STATE_INITIAL_ADVANCE: + object->trans.x += 8.695652f * (playerData->group == 0 ? 1 : -1); break; case 3: - arg0->trans.x += 4.347826f * (temp_r31->unk00 == 0 ? 1 : -1); - if (temp_r31->unk18 >= 23) { - temp_r31->unk14 = 8; - temp_r31->unk18 = 0; + object->trans.x += 4.347826f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 >= 23) { + playerData->state = 8; + playerData->unk18 = 0; var_r29 = 4; } break; case 4: - if (temp_r31->unk18 == 1) { + if (playerData->unk18 == 1) { var_r29 = 7; } - arg0->trans.x += -4.347826f * (temp_r31->unk00 == 0 ? 1 : -1); - if (temp_r31->unk18 >= 23) { - temp_r31->unk14 = 8; - temp_r31->unk18 = 0; + object->trans.x += -4.347826f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 >= 23) { + playerData->state = 8; + playerData->unk18 = 0; var_r29 = 4; } break; case 5: - arg0->trans.x += 8.695652f * (temp_r31->unk00 == 0 ? 1 : -1); - if (temp_r31->unk18 >= 15) { - temp_r31->unk14 = 8; - temp_r31->unk18 = 0; + object->trans.x += 8.695652f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 >= 15) { + playerData->state = 8; + playerData->unk18 = 0; var_r29 = 4; } break; case 6: - if (temp_r31->unk18 == 1) { + if (playerData->unk18 == 1) { var_r29 = 8; } - arg0->trans.x += -8.695652f * (temp_r31->unk00 == 0 ? 1 : -1); - if (temp_r31->unk18 >= 7) { - temp_r31->unk14 = 8; - temp_r31->unk18 = 0; + object->trans.x += -8.695652f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 >= 7) { + playerData->state = 8; + playerData->unk18 = 0; var_r26 = 7; var_r29 = 4; } - if (temp_r31->unk18 >= 15) { - temp_r31->unk14 = 8; - temp_r31->unk18 = 0; + if (playerData->unk18 >= 15) { + playerData->state = 8; + playerData->unk18 = 0; } break; case 8: - if (temp_r31->unk30 == 0) { + if (playerData->stamina == 0) { var_r26 = 0; - temp_r31->unk14 = 7; - temp_r31->unk18 = 1; - temp_r31->unk34 = 0; - } else { - if (var_r24 == 0 && var_r25 == 0) { + playerData->state = 7; + playerData->unk18 = 1; + playerData->unk34 = 0; + } + else { + if (!lPressedF && !rPressedF) { break; } - temp_r31->unk14 = 9; - temp_r31->unk18 = 0; + playerData->state = 9; + playerData->unk18 = 0; var_r26 = 3; - var_r22 = (temp_r31->unk38 == 0 ? 0 : 11) + 5; + var_r22 = (playerData->prevTrig == PREV_TRIG_L ? 0 : 11) + 5; var_r29 = 6; if (lbl_1_bss_20 == 1) { - temp_r31->unk38 = (var_r24 != 0) ? 0 - : (var_r25 != 0) ? 1 : 0; + playerData->prevTrig = lPressedF ? PREV_TRIG_L : rPressedF ? PREV_TRIG_R : PREV_TRIG_L; } break; } /* fallthrough */ case 7: - if (temp_r31->unk18 == 1) { - s32 sp1B4[] = { - 0x12A, 0x16A, 0x1AA, - 0x1EA, 0x22A, 0x26A, - 0x2AA, 0x2EA, 0x03B - }; - HuAudFXPlay(sp1B4[temp_r31->unk08 == -1 ? 8 : temp_r31->unk08]); + if (playerData->unk18 == 1) { + s32 noStaminaSeIdTbl[] = { 0x12A, 0x16A, 0x1AA, 0x1EA, 0x22A, 0x26A, 0x2AA, 0x2EA, 0x03B }; + HuAudFXPlay(noStaminaSeIdTbl[playerData->character == CHARACTER_BOWSER ? 8 : playerData->character]); var_r29 = 9; - temp_r31->unk4C = 0; + playerData->unk4C = 0; } - if (temp_r31->unk30 > 0) { - temp_r31->unk14 = 8; - temp_r31->unk18 = 0; + if (playerData->stamina > 0) { + playerData->state = 8; + playerData->unk18 = 0; var_r29 = 4; } break; case 9: - arg0->trans.x += 8.695652f * (temp_r31->unk00 == 0 ? 1 : -1); - if (temp_r31->unk18 >= 23) { - temp_r31->unk14 = 8; - temp_r31->unk18 = 0; + object->trans.x += 8.695652f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 >= 23) { + playerData->state = 8; + playerData->unk18 = 0; var_r29 = 4; } break; case 12: - if (temp_r31->unk18 == 7) { + if (playerData->unk18 == 7) { var_r26 = 0; var_r22 = 7; var_r29 = 7; } - if (temp_r31->unk18 == 15) { + if (playerData->unk18 == 15) { var_r26 = 5; var_r29 = 4; } - if (temp_r31->unk18 >= 20) { - temp_r31->unk14 = 8; - temp_r31->unk18 = 0; + if (playerData->unk18 >= 20) { + playerData->state = 8; + playerData->unk18 = 0; var_r29 = 4; } break; case 10: - arg0->trans.x += 4.347826f * (temp_r31->unk00 == 0 ? 1 : -1); - if (temp_r31->unk18 >= 23) { - temp_r31->unk14 = 8; - temp_r31->unk18 = 0; + object->trans.x += 4.347826f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 >= 23) { + playerData->state = 8; + playerData->unk18 = 0; var_r29 = 4; } break; case 11: - arg0->trans.x += -4.347826f * (temp_r31->unk00 == 0 ? 1 : -1); - if (temp_r31->unk18 == 1) { + object->trans.x += -4.347826f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 == 1) { var_r29 = 7; } - if (temp_r31->unk18 >= 23) { - temp_r31->unk14 = 8; - temp_r31->unk18 = 0; + if (playerData->unk18 >= 23) { + playerData->state = 8; + playerData->unk18 = 0; var_r29 = 4; } break; case 13: - arg0->trans.x += 8.695652f * (temp_r31->unk00 == 0 ? 1 : -1); - if (temp_r31->unk18 >= 23) { - temp_r31->unk14 = 8; - temp_r31->unk18 = 0; + object->trans.x += 8.695652f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 >= 23) { + playerData->state = 8; + playerData->unk18 = 0; var_r29 = 4; } break; case 14: - arg0->trans.x += -8.695652f * (temp_r31->unk00 == 0 ? 1 : -1); - if (temp_r31->unk18 == 1) { + object->trans.x += -8.695652f * (playerData->group == 0 ? 1 : -1); + if (playerData->unk18 == 1) { var_r29 = 8; } - if (temp_r31->unk18 == 11) { + if (playerData->unk18 == 11) { var_r26 = 11; var_r29 = 4; } - if (temp_r31->unk18 >= 23) { - temp_r31->unk14 = 8; - temp_r31->unk18 = 0; + if (playerData->unk18 >= 23) { + playerData->state = 8; + playerData->unk18 = 0; } - if (temp_r31->unk34 < 8) { - temp_r31->unk34 = 8; + if (playerData->unk34 < 8) { + playerData->unk34 = 8; } break; case 15: - if (temp_r31->unk18 == 1 && temp_r31->unk1C > 4) { - temp_r31->unk1C = 4; + if (playerData->unk18 == 1 && playerData->invinceTime > 4) { + playerData->invinceTime = 4; } - if (temp_r31->unk18 == 1 && lbl_1_data_2B0 != -1) { + if (playerData->unk18 == 1 && lbl_1_data_2B0 != -1) { HuWinExCleanup(lbl_1_data_2B0); lbl_1_data_2B0 = -1; } - if (temp_r31->unk18 == 7) { + if (playerData->unk18 == 7) { var_r29 = 4; var_r26 = 20; } - if (temp_r31->unk18 == 60) { - lbl_1_bss_44 = temp_r31->unk00; - temp_r31->unk1C = 0; + if (playerData->unk18 == REFRESH_RATE) { + lbl_1_bss_44 = playerData->group; + playerData->invinceTime = 0; } break; - case 16: - arg0->trans.x += -39.130432f * (temp_r31->unk00 == 0 ? 1 : -1); - arg0->trans.y += 39.130432f; - if (temp_r31->unk18 == 1) { - s32 sp190[] = { - 0x123, 0x163, 0x1A3, - 0x1E3, 0x223, 0x263, - 0x2A3, 0x2E3, 0x03C - }; - - HuAudFXPlay(sp190[temp_r31->unk08 == -1 ? 8 : temp_r31->unk08]); + case PLAYER_STATE_FALLING: + // make the player fall down in the correct direction + object->trans.x += -39.130432f * (playerData->group == 0 ? 1 : -1); + object->trans.y += 39.130432f; + if (playerData->unk18 == 1) { + s32 fallSeIdTbl[] = { 0x123, 0x163, 0x1A3, 0x1E3, 0x223, 0x263, 0x2A3, 0x2E3, 0x03C }; + HuAudFXPlay(fallSeIdTbl[playerData->character == CHARACTER_BOWSER ? 8 : playerData->character]); var_r29 = 8; var_r26 = 0; var_r22 = 6; } - arg0->rot.z = (temp_r31->unk00 == 0) ? -20 : 20; + object->rot.z = (playerData->group == 0) ? -20 : 20; break; case 17: - if (temp_r31->unk18 == 1 && temp_r31->unk1C > 4) { - temp_r31->unk1C = 4; + if (playerData->unk18 == 1 && playerData->invinceTime > 4) { + playerData->invinceTime = 4; } - if (temp_r31->unk18 == 1 && lbl_1_data_2B0 != -1) { + if (playerData->unk18 == 1 && lbl_1_data_2B0 != -1) { HuWinExCleanup(lbl_1_data_2B0); lbl_1_data_2B0 = -1; } - if (temp_r31->unk18 == 7) { + if (playerData->unk18 == 7) { var_r29 = 0; var_r26 = 10; } - if (temp_r31->unk18 >= 7 && temp_r31->unk18 < 17) { - arg0->trans.x += (temp_r31->unk00 == 0 ? -1 : 1) * 2; + if (playerData->unk18 >= 7 && playerData->unk18 < 17) { + object->trans.x += (playerData->group == 0 ? -1 : 1) * 2; } - if (temp_r31->unk18 == 60) { + if (playerData->unk18 == REFRESH_RATE) { lbl_1_bss_44 = 2; - temp_r31->unk1C = 0; + playerData->invinceTime = 0; } break; } - switch (temp_r31->unk14) { + switch (playerData->state) { case 12: - if (temp_r31->unk00 == 0) { + if (playerData->group == 0) { break; } /* fallthrough */ case 3: case 5: case 10: - case 13: - temp_r19 = Hu3DMotionTimeGet(arg0->model[0]); - if ((temp_r28->unk14 != 4 && temp_r28->unk14 != 6) || temp_r28->unk18 != 1) { - if ((temp_r19 + 1) % 11 != 0 || (temp_r31->unk14 == 12 && temp_r19 + 1 > 11)) { + case 13: { + Vec sp104; + s32 temp_r21; + char *var_r18; + + s32 temp_r19 = Hu3DMotionTimeGet(object->model[MODEL_ID_PLAYER_PLAYER]); + if ((opponentData->state != 4 && opponentData->state != 6) || opponentData->unk18 != 1) { + if ((temp_r19 + 1) % 11 != 0 || (playerData->state == 12 && temp_r19 + 1 > 11)) { break; } } temp_r21 = ((temp_r19 + 1) / 11 - 1) % 2; { - char sp1D8[][50] = { - "g000mN-itemhook_R", - "g000mN-itemhook_L" - }; + char sp1D8[][50] = { "g000mN-itemhook_R", "g000mN-itemhook_L" }; - if (temp_r31->unk08 != -1) { - var_r18 = CharModelHookNameGet(temp_r31->unk08, 1, (temp_r21 % 2 == 0) ? 0 : 1); - } else { + if (playerData->character != CHARACTER_BOWSER) { + var_r18 = CharModelHookNameGet(playerData->character, 1, (temp_r21 % 2 == 0) ? 0 : 1); + } + else { var_r18 = (temp_r21 % 2 == 0) ? sp1D8[0] : sp1D8[1]; } } - Hu3DModelObjPosGet(arg0->model[0], var_r18, &sp104); - Hu3DModelPosSet(lbl_1_bss_64->model[temp_r21 + 7], sp104.x + (temp_r31->unk00 == 0 ? 1 : -1) * 50, sp104.y, 75.0f + sp104.z); - Hu3DMotionTimeSet(lbl_1_bss_64->model[temp_r21 + 7], 2.0f); - Hu3DModelAttrReset(lbl_1_bss_64->model[temp_r21 + 7], 1); - if (lbl_1_bss_78[temp_r31->unk08 == -1 ? 1 : 0].unk00 < 3) { - lbl_1_bss_78[temp_r31->unk08 == -1 ? 1 : 0].unk04[lbl_1_bss_78[temp_r31->unk08 == -1 ? 1 : 0].unk00] = 0.0f; - lbl_1_bss_78[temp_r31->unk08 == -1 ? 1 : 0].unk00++; + Hu3DModelObjPosGet(object->model[MODEL_ID_PLAYER_PLAYER], var_r18, &sp104); + Hu3DModelPosSet(gameObj->model[temp_r21 + 7], sp104.x + (playerData->group == 0 ? 1 : -1) * 50, sp104.y, 75.0f + sp104.z); + Hu3DMotionTimeSet(gameObj->model[temp_r21 + 7], 2.0f); + Hu3DModelAttrReset(gameObj->model[temp_r21 + 7], 1); + if (lbl_1_bss_78[playerData->character == CHARACTER_BOWSER ? 1 : 0].unk00 < 3) { + lbl_1_bss_78[playerData->character == CHARACTER_BOWSER ? 1 : 0] + .unk04[lbl_1_bss_78[playerData->character == CHARACTER_BOWSER ? 1 : 0].unk00] + = 0.0f; + lbl_1_bss_78[playerData->character == CHARACTER_BOWSER ? 1 : 0].unk00++; } - if (fabs(lbl_1_bss_68[1 - temp_r31->unk00]->trans.x) >= 800.0 && (temp_r28->unk14 == 11 || temp_r28->unk14 == 14)) { - temp_r31->unk14 = 15; - temp_r28->unk14 = 16; - temp_r31->unk18 = temp_r28->unk18 = 0; + // bounds check + if (fabs(playerObj[1 - playerData->group]->trans.x) >= 800.0 && (opponentData->state == 11 || opponentData->state == 14)) { + playerData->state = 15; + opponentData->state = PLAYER_STATE_FALLING; + playerData->unk18 = opponentData->unk18 = 0; if (lbl_1_bss_78[4].unk00 < 3) { lbl_1_bss_78[4].unk04[lbl_1_bss_78[4].unk00] = 0.0f; lbl_1_bss_78[4].unk00++; } - if (lbl_1_data_2A8 != -1) { - HuAudSeqFadeOut(lbl_1_data_2A8, 100); - lbl_1_data_2A8 = -1; + if (backgroundMusNo != -1) { + HuAudSeqFadeOut(backgroundMusNo, 100); + backgroundMusNo = -1; } } - break; + } break; } - temp_r31->unk34++; - if (temp_r31->unk14 != 16 && temp_r31->unk14 != 15 && temp_r31->unk14 != 17 && lbl_1_bss_5C == 1008 && temp_r31->unk34 >= 30 && (temp_r31->unk34 - 30) % 30 == 0) { - temp_r31->unk30 += (temp_r31->unk4C == 0 || temp_r31->unk14 == 7) ? 10 : 0; + playerData->unk34++; + if (playerData->state != PLAYER_STATE_FALLING && playerData->state != 15 && playerData->state != 17 && gameState == 1008 + && playerData->unk34 >= 30 && (playerData->unk34 - 30) % 30 == 0) { + // regen stamina + playerData->stamina += (playerData->unk4C == 0 || playerData->state == 7) ? 10 : 0; } - temp_r31->unk30 = (temp_r31->unk1C > 0 || temp_r31->unk30 >= 100) ? 100 - : (temp_r31->unk30 < 0) ? 0 - : temp_r31->unk30; + // apply invincibility to stamina and cap it + playerData->stamina = (playerData->invinceTime > 0 || playerData->stamina >= 100) ? 100 : (playerData->stamina < 0) ? 0 : playerData->stamina; for (i = 0; i < 5; i++) { - temp_f31 = (temp_r31->unk30 >= i * 20 + 20) ? 1.0 - : (temp_r31->unk30 <= i * 20) ? 0.0 - : (temp_r31->unk30 - i * 20) / 20.0; - espScaleSet(lbl_1_data_5C[i + (temp_r31->unk00 == 0 ? 2 : 10)], temp_f31, temp_f31); - if (temp_r31->unk1C > 0) { - s32 spF4[] = { 106, 469 }; - s32 spEC[] = { 78, 78 }; - s32 sp150[] = { - 0, 0, -33, -9, 15, 39, 63, -68, - 0, 0, -33, -9, 15, 39, 63, -68 - }; - s32 sp110[] = { - 0, 0, -1, -1, -1, -1, -1, -2, - 0, 0, -1, -1, -1, -1, -1, -2 - }; + float scale = (playerData->stamina >= i * 20 + 20) ? 1.0 : (playerData->stamina <= i * 20) ? 0.0 : (playerData->stamina - i * 20) / 20.0; + espScaleSet(sprIdTbl[i + (playerData->group == 0 ? 2 : 10)], scale, scale); + if (playerData->invinceTime > 0) { + // stamina bar mushroom start positions/offsets + s32 posXTbl[] = { 106, 469 }; + s32 posYTbl[] = { 78, 78 }; + s32 ofsXTbl[] = { 0, 0, -33, -9, 15, 39, 63, -68, 0, 0, -33, -9, 15, 39, 63, -68 }; // second half is unused + s32 ofsYTbl[] = { 0, 0, -1, -1, -1, -1, -1, -2, 0, 0, -1, -1, -1, -1, -1, -2 }; - espPosSet(lbl_1_data_5C[i + 18], spF4[temp_r31->unk00] + sp150[i + 2], spEC[temp_r31->unk00] + sp110[i + 2]); - espScaleSet(lbl_1_data_5C[i + 18], - (temp_r31->unk1C % 4 == 0) ? 1.1 : 1.0, - (temp_r31->unk1C % 4 == 0) ? 1.1 : 1.0); - espTPLvlSet(lbl_1_data_5C[i + 18], - (temp_r31->unk1C % 4 < 2) ? 1.0 - : (var_r22 % 4 == 2) ? 0.5 : 0.0); - espDispOn(lbl_1_data_5C[i + 18]); - } else if (temp_r28->unk1C == 0) { - espDispOff(lbl_1_data_5C[i + 18]); + // make the mushrooms in the stamina bar glow + espPosSet(sprIdTbl[i + 18], posXTbl[playerData->group] + ofsXTbl[i + 2], posYTbl[playerData->group] + ofsYTbl[i + 2]); + espScaleSet(sprIdTbl[i + 18], (playerData->invinceTime % 4 == 0) ? 1.1 : 1.0, (playerData->invinceTime % 4 == 0) ? 1.1 : 1.0); + espTPLvlSet(sprIdTbl[i + 18], (playerData->invinceTime % 4 < 2) ? 1.0 : (var_r22 % 4 == 2) ? 0.5 : 0.0); + espDispOn(sprIdTbl[i + 18]); + } + else if (opponentData->invinceTime == 0) { + espDispOff(sprIdTbl[i + 18]); } } - if (temp_r31->unk1C > 0) { - sp20 = (temp_r31->unk08 != -1) ? temp_r31->unk08 : 8; - Hu3DModelPosSet(lbl_1_bss_64->model[3], - arg0->trans.x + lbl_1_data_220[sp20][1] * (temp_r31->unk00 == 0 ? 1 : -1), - arg0->trans.y + lbl_1_data_220[sp20][2], - 150.0f + arg0->trans.z); - Hu3DModelScaleSet(lbl_1_bss_64->model[3], - 0.75 * lbl_1_data_220[sp20][0], - 0.75 * lbl_1_data_220[sp20][0], - 0.75 * lbl_1_data_220[sp20][0]); - Hu3DModelAttrReset(lbl_1_bss_64->model[3], 1); - Hu3DModelAttrSet(lbl_1_bss_64->model[3], HU3D_ATTR_ZCMP_OFF); - Hu3DModelPosSet(lbl_1_bss_64->model[4], - arg0->trans.x + lbl_1_data_220[sp20][1] * (temp_r31->unk00 == 0 ? 1 : -1), - arg0->trans.y + lbl_1_data_220[sp20][2], - 150.0f + arg0->trans.z); - Hu3DModelScaleSet(lbl_1_bss_64->model[4], - 0.75 * lbl_1_data_220[sp20][0], - 0.75 * lbl_1_data_220[sp20][0], - 0.75 * lbl_1_data_220[sp20][0]); - Hu3DModelAttrReset(lbl_1_bss_64->model[4], 1); - Hu3DModelAttrSet(lbl_1_bss_64->model[4], HU3D_ATTR_ZCMP_OFF); - temp_r31->unk1C--; - if (temp_r31->unk1C == 0) { - HuAudFXStop(lbl_1_data_2B4); + if (playerData->invinceTime > 0) { + s32 sp20 = (playerData->character != CHARACTER_BOWSER) ? playerData->character : 8; + // make the player shine + Hu3DModelPosSet(gameObj->model[MODEL_ID_GAME_INVINCE_SHINING], + object->trans.x + sparkDataTbl[sp20].xOffset * (playerData->group == 0 ? 1 : -1), object->trans.y + sparkDataTbl[sp20].yOffset, + 150.0f + object->trans.z); + Hu3DModelScaleSet(gameObj->model[MODEL_ID_GAME_INVINCE_SHINING], 0.75 * sparkDataTbl[sp20].scale, 0.75 * sparkDataTbl[sp20].scale, + 0.75 * sparkDataTbl[sp20].scale); + Hu3DModelAttrReset(gameObj->model[MODEL_ID_GAME_INVINCE_SHINING], 1); + Hu3DModelAttrSet(gameObj->model[MODEL_ID_GAME_INVINCE_SHINING], HU3D_ATTR_ZCMP_OFF); + // add sparks + Hu3DModelPosSet(gameObj->model[MODEL_ID_GAME_INVINCE_SPARKS], + object->trans.x + sparkDataTbl[sp20].xOffset * (playerData->group == 0 ? 1 : -1), object->trans.y + sparkDataTbl[sp20].yOffset, + 150.0f + object->trans.z); + Hu3DModelScaleSet(gameObj->model[MODEL_ID_GAME_INVINCE_SPARKS], 0.75 * sparkDataTbl[sp20].scale, 0.75 * sparkDataTbl[sp20].scale, + 0.75 * sparkDataTbl[sp20].scale); + Hu3DModelAttrReset(gameObj->model[MODEL_ID_GAME_INVINCE_SPARKS], 1); + Hu3DModelAttrSet(gameObj->model[MODEL_ID_GAME_INVINCE_SPARKS], HU3D_ATTR_ZCMP_OFF); + playerData->invinceTime--; + if (playerData->invinceTime == 0) { + HuAudFXStop(invincibilitySeNo); } - } else if (temp_r28->unk1C == 0) { - Hu3DModelAttrSet(lbl_1_bss_64->model[3], HU3D_ATTR_DISPOFF); - Hu3DModelAttrSet(lbl_1_bss_64->model[4], HU3D_ATTR_DISPOFF); } - if (temp_r31->unk44 >= 0) { - var_r29 = temp_r31->unk44; + else if (opponentData->invinceTime == 0) { + Hu3DModelAttrSet(gameObj->model[MODEL_ID_GAME_INVINCE_SHINING], HU3D_ATTR_DISPOFF); + Hu3DModelAttrSet(gameObj->model[MODEL_ID_GAME_INVINCE_SPARKS], HU3D_ATTR_DISPOFF); } - if (var_r29 >= 0 && var_r29 != temp_r31->unk40) { + if (playerData->unk44 >= 0) { + var_r29 = playerData->unk44; + } + if (var_r29 >= 0 && var_r29 != playerData->unk40) { if (var_r26 == 0) { - Hu3DMotionSet(arg0->model[0], arg0->motion[var_r29]); - Hu3DMotionTimeSet(arg0->model[0], (var_r22 == -1) ? 0 : var_r22); - } else { - Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r29], - (var_r22 != -1) ? var_r22 : lbl_1_data_184[var_r29], - (var_r26 != -1) ? var_r26 : lbl_1_data_154[var_r29], - lbl_1_data_148[var_r29] ? HU3D_MOTATTR_NONE : HU3D_MOTATTR_LOOP); + Hu3DMotionSet(object->model[MODEL_ID_PLAYER_PLAYER], object->motion[var_r29]); + Hu3DMotionTimeSet(object->model[MODEL_ID_PLAYER_PLAYER], (var_r22 == -1) ? 0 : var_r22); } - temp_r31->unk40 = var_r29; + else { + Hu3DMotionShiftSet(object->model[MODEL_ID_PLAYER_PLAYER], object->motion[var_r29], (var_r22 != -1) ? var_r22 : lbl_1_data_184[var_r29], + (var_r26 != -1) ? var_r26 : lbl_1_data_154[var_r29], lbl_1_data_148[var_r29] ? HU3D_MOTATTR_NONE : HU3D_MOTATTR_LOOP); + } + playerData->unk40 = var_r29; } - if (temp_r31->unk00 == 1) { - spD4 = &Hu3DData[arg0->model[0]]; + if (playerData->group == 1) { + ModelData *playerModel = &Hu3DData[object->model[MODEL_ID_PLAYER_PLAYER]]; } } @@ -785,17 +731,18 @@ float lbl_1_data_340 = 3500.0f; float lbl_1_data_344 = 100.0f; float lbl_1_data_348 = -59.0f; -void fn_1_2CC4(omObjData* arg0) { - StructBss68Data* sp158[2]; - omObjData* sp150[2]; - StructBss68Data* sp148[2]; +static void M457GameExec(omObjData *object) +{ + PlayerData *sp158[2]; + omObjData *sp150[2]; + PlayerData *sp148[2]; s32 sp140[2]; - omObjData* sp138[2]; - StructBss68Data* sp130[2]; - ModelData* temp_r24; - ModelData* temp_r27; - ModelData* temp_r28; - ModelData* temp_r29; + omObjData *playerObjLocal[2]; + PlayerData *playerData[2]; + ModelData *temp_r24; + ModelData *temp_r27; + ModelData *mushroomModel; + ModelData *temp_r29; float spAC; float spA8; float spA4; @@ -811,7 +758,7 @@ void fn_1_2CC4(omObjData* arg0) { float temp_f28; float temp_f29; float var_f31; - s32 var_r23; + s32 invinciblePlayerId; s32 var_r26; s32 var_r25; s32 var_r22; @@ -821,87 +768,93 @@ void fn_1_2CC4(omObjData* arg0) { s32 i; for (i = 0; i < 2; i++) { - sp158[i] = lbl_1_bss_68[i]->data; + sp158[i] = playerObj[i]->data; } lbl_1_bss_4++; - switch (lbl_1_bss_5C) { + switch (gameState) { case 1003: temp_f27 = 1800.0 * (1.0 - lbl_1_bss_60 / 30.0); temp_f27 = (temp_f27 < 0.0f) ? 0.0f : temp_f27; - Hu3DModelPosSet(lbl_1_bss_64->model[5], 0.0f, temp_f27, 0.0f); - Hu3DModelAttrReset(lbl_1_bss_64->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(gameObj->model[MODEL_ID_GAME_KOOPA_KID], 0.0f, temp_f27, 0.0f); + Hu3DModelAttrReset(gameObj->model[MODEL_ID_GAME_KOOPA_KID], HU3D_ATTR_DISPOFF); if (lbl_1_bss_60 == 31) { - HuAudFXPlay(0x5B); + HuAudFXPlay(MSM_SE_KOOPA_KID_DROP); } if (lbl_1_bss_60 >= 31 && lbl_1_bss_60 <= 38) { temp_f24 = 1.0 - (lbl_1_bss_60 - 31) / 7.0; - Hu3DModelRotSet(arg0->model[5], 25.0 * (temp_f24 * 0.5 + temp_f24 * temp_f24 * 0.5), 0.0f, 0.0f); + Hu3DModelRotSet(object->model[MODEL_ID_GAME_KOOPA_KID], 25.0 * (temp_f24 * 0.5 + temp_f24 * temp_f24 * 0.5), 0.0f, 0.0f); } break; case 1002: if (lbl_1_bss_60 == 0) { lbl_1_bss_3C = 0; } - if (lbl_1_bss_60 == 20) { - espAttrReset(lbl_1_data_5C[16], HU3D_ATTR_SHADOW); + if (lbl_1_bss_60 == (VERSION_NTSC ? 20 : 15)) { + espAttrReset(sprIdTbl[16], HUSPR_ATTR_DISPOFF); } - if ((lbl_1_bss_60 >= 20 && lbl_1_bss_60 <= 50) || (lbl_1_bss_60 >= 180 && lbl_1_bss_60 <= 210)) { - spAC = (lbl_1_bss_60 <= 120) - ? (lbl_1_bss_60 - 20) / 30.0 - : (1.0 - (lbl_1_bss_60 - 180) / 30.0); - espTPLvlSet(lbl_1_data_5C[16], spAC); + if ((lbl_1_bss_60 >= (VERSION_NTSC ? 20 : 15) && lbl_1_bss_60 <= REFRESH_RATE - 10) + || (lbl_1_bss_60 >= 3 * REFRESH_RATE && lbl_1_bss_60 <= (s32)(3.5 * REFRESH_RATE))) { + spAC = (lbl_1_bss_60 <= 120) ? (lbl_1_bss_60 - (VERSION_NTSC ? 20 : 15)) / (0.5 * REFRESH_RATE) + : (1.0 - (lbl_1_bss_60 - 3 * REFRESH_RATE) / (0.5 * REFRESH_RATE)); + espTPLvlSet(sprIdTbl[16], spAC); } - if (lbl_1_bss_60 == 210) { - espAttrSet(lbl_1_data_5C[16], HU3D_ATTR_SHADOW); + if (lbl_1_bss_60 == (s32)(3.5 * REFRESH_RATE)) { + espAttrSet(sprIdTbl[16], HUSPR_ATTR_DISPOFF); } break; case 1006: if (lbl_1_bss_60 == 0) { - Hu3DMotionSet(arg0->model[5], arg0->motion[2]); - Hu3DModelAttrReset(arg0->model[5], HU3D_MOTATTR_LOOP); + Hu3DMotionSet(object->model[MODEL_ID_GAME_KOOPA_KID], object->motion[2]); + Hu3DModelAttrReset(object->model[MODEL_ID_GAME_KOOPA_KID], HU3D_MOTATTR_LOOP); } if (lbl_1_bss_60 == 15) { - Hu3DModelAttrSet(arg0->model[5], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_KOOPA_KID], HU3D_MOTATTR_PAUSE); } break; case 1008: if (lbl_1_bss_60 == 1) { - Hu3DModelAttrReset(arg0->model[5], HU3D_MOTATTR_PAUSE); + Hu3DModelAttrReset(object->model[MODEL_ID_GAME_KOOPA_KID], HU3D_MOTATTR_PAUSE); for (i = 0; i < 16; i++) { - espDispOn(lbl_1_data_5C[i]); + espDispOn(sprIdTbl[i]); } } +#if VERSION_NTSC if (lbl_1_bss_60 <= 25) { temp_f28 = lbl_1_bss_60 / 25.0; temp_f26 = 1.0f - (1.0f - temp_f28) * (1.0f - temp_f28) * (1.0f - temp_f28); temp_f26 = 0.25 + 1.375 * temp_f26; temp_f23 = 1.0f - (1.0f - temp_f28) * (1.0f - temp_f28); temp_f23 = 2.0f * (1.0f - temp_f28); - espAttrReset(lbl_1_data_5C[17], HU3D_ATTR_SHADOW); - espScaleSet(lbl_1_data_5C[17], 0.85 * temp_f26, 0.85 * temp_f26); - espTPLvlSet(lbl_1_data_5C[17], (temp_f23 > 1.0f) ? 1.0f : temp_f23); - } else { - espAttrSet(lbl_1_data_5C[17], HU3D_ATTR_SHADOW); + espAttrReset(sprIdTbl[17], HU3D_ATTR_SHADOW); +#if VERSION_ENG + espScaleSet(sprIdTbl[17], 0.85 * temp_f26, 0.85 * temp_f26); +#else + espScaleSet(sprIdTbl[17], temp_f26, temp_f26); +#endif + espTPLvlSet(sprIdTbl[17], (temp_f23 > 1.0f) ? 1.0f : temp_f23); + } + else { + espAttrSet(sprIdTbl[17], HUSPR_ATTR_DISPOFF); + } +#endif + for (i = 0; i < 2; i++) { + sp150[i] = playerObj[i]; + sp148[i] = playerObj[i]->data; } for (i = 0; i < 2; i++) { - sp150[i] = lbl_1_bss_68[i]; - sp148[i] = lbl_1_bss_68[i]->data; - } - for (i = 0; i < 2; i++) { - sp140[i] = (sp148[1 - i]->unk1C > 0) ? 2 - : (sp148[i]->unk14 == 8) ? 2 - : (sp148[i]->unk14 == 1) ? 1 - : (sp148[i]->unk14 == 9) ? (sp148[i]->unk18 >= 0 ? 3 : 2) - : (sp148[i]->unk14 == 2) ? 4 - : (sp148[i]->unk14 == 7) ? 0 : -1; + sp140[i] = (sp148[1 - i]->invinceTime > 0) ? 2 + : (sp148[i]->state == 8) ? 2 + : (sp148[i]->state == 1) ? 1 + : (sp148[i]->state == 9) ? (sp148[i]->unk18 >= 0 ? 3 : 2) + : (sp148[i]->state == 2) ? 4 + : (sp148[i]->state == 7) ? 0 + : -1; } if (sp140[0] >= 0 && sp140[1] >= 0 && fabs(sp150[0]->trans.x - sp150[1]->trans.x) < 300.0) { - sp150[0]->trans.x = (sp148[0]->unk1C > 0) ? sp150[0]->trans.x - : (sp148[1]->unk1C > 0) ? (sp150[1]->trans.x - 300.0f) - : ((sp150[0]->trans.x + sp150[1]->trans.x) / 2.0 - 150.0); - sp150[0]->trans.x = (sp150[0]->trans.x >= 650.0) ? 650.0 - : (sp150[0]->trans.x <= -950.0) ? -950.0 - : sp150[0]->trans.x; + sp150[0]->trans.x = (sp148[0]->invinceTime > 0) ? sp150[0]->trans.x + : (sp148[1]->invinceTime > 0) ? (sp150[1]->trans.x - 300.0f) + : ((sp150[0]->trans.x + sp150[1]->trans.x) / 2.0 - 150.0); + sp150[0]->trans.x = (sp150[0]->trans.x >= 650.0) ? 650.0 : (sp150[0]->trans.x <= -950.0) ? -950.0 : sp150[0]->trans.x; sp150[1]->trans.x = sp150[0]->trans.x + 300.0f; if (sp140[0] >= 3 || sp140[1] >= 3) { var_r26 = (sp140[0] >= 3) ? 0 : 1; @@ -912,24 +865,24 @@ void fn_1_2CC4(omObjData* arg0) { var_r26 = 1 - var_r26; var_r25 = 1 - var_r25; } - sp148[var_r26]->unk14 = 3; - sp148[var_r25]->unk14 = 4; + sp148[var_r26]->state = 3; + sp148[var_r25]->state = 4; break; case 1: - sp148[var_r26]->unk14 = 5; - sp148[var_r25]->unk14 = 6; + sp148[var_r26]->state = 5; + sp148[var_r25]->state = 6; break; case 3: - sp148[var_r26]->unk14 = 12; - sp148[var_r25]->unk14 = 12; + sp148[var_r26]->state = 12; + sp148[var_r25]->state = 12; break; case 2: - sp148[var_r26]->unk14 = 10; - sp148[var_r25]->unk14 = 11; + sp148[var_r26]->state = 10; + sp148[var_r25]->state = 11; break; case 0: - sp148[var_r26]->unk14 = 13; - sp148[var_r25]->unk14 = 14; + sp148[var_r26]->state = 13; + sp148[var_r25]->state = 14; break; } sp148[0]->unk18 = sp148[1]->unk18 = 0; @@ -937,20 +890,20 @@ void fn_1_2CC4(omObjData* arg0) { } /* fallthrough */ case 1009: - if (lbl_1_bss_5C != 1008 && lbl_1_bss_40 == 0) { + if (gameState != 1008 && lbl_1_bss_40 == 0) { break; } for (i = 0; i < 2; i++) { - sp138[i] = lbl_1_bss_68[i]; - sp130[i] = lbl_1_bss_68[i]->data; + playerObjLocal[i] = playerObj[i]; + playerData[i] = playerObj[i]->data; } switch (lbl_1_bss_18) { case 0: - if (lbl_1_bss_40 == 0 && lbl_1_bss_18 == 0 && (sp138[0]->trans.x > -150.0f || sp138[1]->trans.x < 150.0f)) { - lbl_1_bss_18 = (-sp138[0]->trans.x < sp138[1]->trans.x ? 1 : 2); - Hu3DModelPosSet(lbl_1_bss_64->model[9], 0.0f, 100.0f, 0.0f); - Hu3DMotionTimeSet(lbl_1_bss_64->model[9], 0.0f); - Hu3DModelAttrReset(lbl_1_bss_64->model[9], HU3D_ATTR_DISPOFF); + if (lbl_1_bss_40 == 0 && lbl_1_bss_18 == 0 && (playerObjLocal[0]->trans.x > -150.0f || playerObjLocal[1]->trans.x < 150.0f)) { + lbl_1_bss_18 = (-playerObjLocal[0]->trans.x < playerObjLocal[1]->trans.x ? 1 : 2); + Hu3DModelPosSet(gameObj->model[9], 0.0f, 100.0f, 0.0f); + Hu3DMotionTimeSet(gameObj->model[9], 0.0f); + Hu3DModelAttrReset(gameObj->model[9], HU3D_ATTR_DISPOFF); if (lbl_1_bss_78[4].unk00 < 3) { lbl_1_bss_78[4].unk04[lbl_1_bss_78[4].unk00] = 0.0f; lbl_1_bss_78[4].unk00++; @@ -962,7 +915,7 @@ void fn_1_2CC4(omObjData* arg0) { /* fallthrough */ case 1: case 2: - temp_r27 = &Hu3DData[arg0->model[5]]; + temp_r27 = &Hu3DData[object->model[MODEL_ID_GAME_KOOPA_KID]]; temp_r27->rot.y += (lbl_1_bss_18 == 1 ? 18 : -18); temp_r27->rot.z = (lbl_1_bss_18 == 1 ? -20 : 20); temp_r27->pos.x += 5.130000000000001 * (lbl_1_bss_18 == 1 ? 1 : -1); @@ -976,43 +929,43 @@ void fn_1_2CC4(omObjData* arg0) { switch (lbl_1_bss_1C) { case 0: case 2: - lbl_1_data_2B8 -= (lbl_1_bss_18 >= 3 && sp130[0]->unk14 < 16 && sp130[1]->unk14 < 16); + lbl_1_data_2B8 -= (lbl_1_bss_18 >= 3 && playerData[0]->state < 16 && playerData[1]->state < 16); if (lbl_1_data_2B8 != 0) { break; } - Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); - Hu3DModelPosSet(arg0->model[2], - (lbl_1_bss_1C == 0) ? 0.0 : (2.0 * ((rand8() % 256) / 255.0 - 0.5) * 400.0), - 1500.0f, 0.0f); + Hu3DModelAttrReset(object->model[MODEL_ID_GAME_MUSHROOM], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(object->model[MODEL_ID_GAME_MUSHROOM], + (lbl_1_bss_1C == 0) ? 0.0 : (2.0 * ((rand8() % 256) / 255.0 - 0.5) * 400.0), 1500.0f, 0.0f); lbl_1_bss_1C = 1; /* fallthrough */ case 1: - temp_r28 = &Hu3DData[arg0->model[2]]; - temp_r28->pos.y -= 10.0f; - if (temp_r28->pos.y <= 225.0f) { - float sp128[] = { 100000000.0f, 100000000.0f }; - - temp_r28->pos.y = (temp_r28->pos.y < 100.0f) ? 100.0f : temp_r28->pos.y; + mushroomModel = &Hu3DData[object->model[MODEL_ID_GAME_MUSHROOM]]; + // descend mushroom + mushroomModel->pos.y -= 10.0f; + if (mushroomModel->pos.y <= 225.0f) { + float playerDistsToMushroom[] = { 100000000.0f, 100000000.0f }; + // make sure it doesn't fall through the ring + mushroomModel->pos.y = (mushroomModel->pos.y < 100.0f) ? 100.0f : mushroomModel->pos.y; for (i = 0; i < 2; i++) { - if (fabs(sp138[i]->trans.x + (i == 0 ? 40 : -40) - temp_r28->pos.x) < 180.0) { - sp128[i] = fabs(sp138[i]->trans.x + (i == 0 ? 40 : -40) - temp_r28->pos.x); + if (fabs(playerObjLocal[i]->trans.x + (i == 0 ? 40 : -40) - mushroomModel->pos.x) < 180.0) { + playerDistsToMushroom[i] = fabs(playerObjLocal[i]->trans.x + (i == 0 ? 40 : -40) - mushroomModel->pos.x); } } - if (sp128[0] != sp128[1]) { - var_r23 = (sp128[0] < sp128[1]) ? 0 : 1; - Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + if (playerDistsToMushroom[0] != playerDistsToMushroom[1]) { + invinciblePlayerId = (playerDistsToMushroom[0] < playerDistsToMushroom[1]) ? 0 : 1; + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_MUSHROOM], HU3D_ATTR_DISPOFF); lbl_1_bss_1C = 2; - lbl_1_data_2B8 = 600; - sp130[var_r23]->unk1C = 300; - sp130[var_r23]->unk4C = 0; + lbl_1_data_2B8 = 10 * REFRESH_RATE; + playerData[invinciblePlayerId]->invinceTime = 5 * REFRESH_RATE; + playerData[invinciblePlayerId]->unk4C = 0; if (lbl_1_bss_78[3].unk00 < 3) { lbl_1_bss_78[3].unk04[lbl_1_bss_78[3].unk00] = 0.0f; lbl_1_bss_78[3].unk00++; } - lbl_1_data_2B4 = HuAudFXPlay(0x7E6); + invincibilitySeNo = HuAudFXPlay(MSM_SE_INVINCIBILITY); } } - if (sp130[0]->unk14 >= 16 || sp130[1]->unk14 >= 16 || lbl_1_bss_40 != 0) { + if (playerData[0]->state >= 16 || playerData[1]->state >= 16 || lbl_1_bss_40 != 0) { lbl_1_bss_1C = 3; lbl_1_data_2B8 = 0; } @@ -1022,64 +975,61 @@ void fn_1_2CC4(omObjData* arg0) { /* fallthrough */ case 3: lbl_1_data_2B8++; - if (lbl_1_data_2B8 < 60 && lbl_1_data_2B8 % 2 == 0) { - Hu3DModelAttrReset(arg0->model[2], HU3D_ATTR_DISPOFF); - } else { - Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); + if (lbl_1_data_2B8 < REFRESH_RATE && lbl_1_data_2B8 % 2 == 0) { + Hu3DModelAttrReset(object->model[MODEL_ID_GAME_MUSHROOM], HU3D_ATTR_DISPOFF); + } + else { + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_MUSHROOM], HU3D_ATTR_DISPOFF); } break; } break; } - switch (lbl_1_bss_5C) { + switch (gameState) { case 1009: if (lbl_1_bss_40 == 0) { if (lbl_1_bss_60 <= 30) { - Hu3DModelPosSet(lbl_1_bss_64->model[5], 0.0f, (30 - lbl_1_bss_60) * 50 * 0.94, 0.0f); - Hu3DModelRotSet(lbl_1_bss_64->model[5], 0.0f, 0.0f, lbl_1_bss_18 == 3 ? -20 : 20); - Hu3DModelAttrReset(lbl_1_bss_64->model[5], HU3D_ATTR_DISPOFF); + Hu3DModelPosSet(gameObj->model[MODEL_ID_GAME_KOOPA_KID], 0.0f, (30 - lbl_1_bss_60) * 50 * 0.94, 0.0f); + Hu3DModelRotSet(gameObj->model[MODEL_ID_GAME_KOOPA_KID], 0.0f, 0.0f, lbl_1_bss_18 == 3 ? -20 : 20); + Hu3DModelAttrReset(gameObj->model[MODEL_ID_GAME_KOOPA_KID], HU3D_ATTR_DISPOFF); } if (lbl_1_bss_60 == 30) { - Hu3DMotionSet(arg0->model[5], arg0->motion[0]); - Hu3DModelAttrReset(arg0->model[5], HU3D_MOTATTR_LOOP); + Hu3DMotionSet(object->model[MODEL_ID_GAME_KOOPA_KID], object->motion[0]); + Hu3DModelAttrReset(object->model[MODEL_ID_GAME_KOOPA_KID], HU3D_MOTATTR_LOOP); } if (lbl_1_bss_60 == 30) { - HuAudFXPlay(0x5B); + HuAudFXPlay(MSM_SE_KOOPA_KID_DROP); } if (lbl_1_bss_60 >= 30 && lbl_1_bss_60 <= 37) { temp_f22 = 1.0 - (lbl_1_bss_60 - 30) / 7.0; - Hu3DModelRotSet(arg0->model[5], 25.0 * (temp_f22 * 0.5 + temp_f22 * temp_f22 * 0.5), 0.0f, 0.0f); + Hu3DModelRotSet(object->model[MODEL_ID_GAME_KOOPA_KID], 25.0 * (temp_f22 * 0.5 + temp_f22 * temp_f22 * 0.5), 0.0f, 0.0f); } - } else if (lbl_1_bss_18 == 0) { - Hu3DMotionSet(lbl_1_bss_64->model[5], arg0->motion[0]); - Hu3DModelAttrReset(lbl_1_bss_64->model[5], HU3D_MOTATTR_LOOP); + } + else if (lbl_1_bss_18 == 0) { + Hu3DMotionSet(gameObj->model[MODEL_ID_GAME_KOOPA_KID], object->motion[0]); + Hu3DModelAttrReset(gameObj->model[MODEL_ID_GAME_KOOPA_KID], HU3D_MOTATTR_LOOP); } break; case 1010: if (lbl_1_bss_40 == 0) { if (lbl_1_bss_60 == 1) { - Hu3DMotionSet(arg0->model[5], arg0->motion[3]); - Hu3DModelAttrReset(arg0->model[5], HU3D_MOTATTR_LOOP); + Hu3DMotionSet(object->model[MODEL_ID_GAME_KOOPA_KID], object->motion[3]); + Hu3DModelAttrReset(object->model[MODEL_ID_GAME_KOOPA_KID], HU3D_MOTATTR_LOOP); } - temp_r24 = &Hu3DData[arg0->model[5]]; - temp_f20 = (lbl_1_bss_68[lbl_1_bss_44]->trans.x < 0.0f) ? -90 : 90; + temp_r24 = &Hu3DData[object->model[MODEL_ID_GAME_KOOPA_KID]]; + temp_f20 = (playerObj[lbl_1_bss_44]->trans.x < 0.0f) ? -90 : 90; temp_r24->rot.y = temp_f20 + 0.8 * (temp_r24->rot.y - temp_f20); } break; } var_r22 = lbl_1_data_33C; { - float sp160[][6] = { - { 3500.0f, 0.0f, 100.0f, 0.0f, -59.0f, 0.0f }, - { 3200.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, - { 2100.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, - { 2000.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, - { 800.0f, 0.0f, 200.0f, 0.0f, -89.0f, 0.0f }, - { 1800.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f } - }; + float sp160[][6] = { { 3500.0f, 0.0f, 100.0f, 0.0f, -59.0f, 0.0f }, { 3200.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, + { 2100.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, { 2000.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }, + { 800.0f, 0.0f, 200.0f, 0.0f, -89.0f, 0.0f }, { 1800.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f } }; if (lbl_1_bss_44 != -1 && lbl_1_bss_40 == 0) { - sp160[2][1] = lbl_1_bss_68[lbl_1_bss_44]->trans.x; + sp160[2][1] = playerObj[lbl_1_bss_44]->trans.x; } if (lbl_1_data_33C == -1) { lbl_1_data_33C = 0; @@ -1091,7 +1041,7 @@ void fn_1_2CC4(omObjData* arg0) { lbl_1_bss_24 = 1; lbl_1_bss_28 = 0.5f; } - if (lbl_1_bss_5C == 1010 && lbl_1_bss_44 != 2 && lbl_1_bss_60 >= 15 && lbl_1_data_33C == 1) { + if (gameState == 1010 && lbl_1_bss_44 != 2 && lbl_1_bss_60 >= 15 && lbl_1_data_33C == 1) { lbl_1_data_33C = 2; lbl_1_bss_24 = 0; lbl_1_bss_28 = 0.0f; @@ -1107,7 +1057,8 @@ void fn_1_2CC4(omObjData* arg0) { if (lbl_1_bss_24 == 0) { lbl_1_bss_28 = 1.0 - 0.95 * (1.0f - lbl_1_bss_28); var_f31 = lbl_1_bss_28; - } else { + } + else { lbl_1_bss_28 += 0.008333333333333333; lbl_1_bss_28 = (lbl_1_bss_28 > 1.0f) ? 1.0f : lbl_1_bss_28; var_f31 = 0.5 + -0.5 * cosd(180.0f * lbl_1_bss_28); @@ -1121,7 +1072,7 @@ void fn_1_2CC4(omObjData* arg0) { CRot.y = var_f31 * sp160[lbl_1_data_33C][5] + lbl_1_bss_34 * (1.0f - var_f31); } } - if (lbl_1_bss_5C == 1001) { + if (gameState == 1001) { var_f21 = 0.0f; temp_f25 = 0.0f; if (lbl_1_data_28C.unk00 % 2 >= 0) { @@ -1131,7 +1082,8 @@ void fn_1_2CC4(omObjData* arg0) { lbl_1_data_28C.unk10 = 2.0 * (rand8() / 255.0) - 1.0; lbl_1_data_28C.unk14 = 2.0 * (rand8() / 255.0) - 1.0; lbl_1_data_28C.unk10 = 0.0f; - temp_f29 = (lbl_1_data_28C.unk10 - lbl_1_data_28C.unk08) * (lbl_1_data_28C.unk10 - lbl_1_data_28C.unk08) + (lbl_1_data_28C.unk14 - lbl_1_data_28C.unk0C) * (lbl_1_data_28C.unk14 - lbl_1_data_28C.unk0C); + temp_f29 = (lbl_1_data_28C.unk10 - lbl_1_data_28C.unk08) * (lbl_1_data_28C.unk10 - lbl_1_data_28C.unk08) + + (lbl_1_data_28C.unk14 - lbl_1_data_28C.unk0C) * (lbl_1_data_28C.unk14 - lbl_1_data_28C.unk0C); } while (sqrtf(temp_f29) < 0.75); } var_f21 = lbl_1_data_28C.unk08; @@ -1139,170 +1091,224 @@ void fn_1_2CC4(omObjData* arg0) { var_f21 *= lbl_1_data_28C.unk04 * 2; temp_f25 *= lbl_1_data_28C.unk04 * 2; lbl_1_data_28C.unk00 = !lbl_1_data_28C.unk00; - lbl_1_data_28C.unk04 = (lbl_1_data_28C.unk04 > 24) ? 23 - : (lbl_1_data_28C.unk04 - 1 > 0) ? (lbl_1_data_28C.unk04 - 1) : 0; + lbl_1_data_28C.unk04 = (lbl_1_data_28C.unk04 > 24) ? 23 : (lbl_1_data_28C.unk04 - 1 > 0) ? (lbl_1_data_28C.unk04 - 1) : 0; Center.x = 0.0f; Center.y = 100.0f + temp_f25; } - if (lbl_1_bss_5C >= 1008) { + if (gameState >= 1008) { for (i = 0; i < 2; i++) { - temp_r29 = &Hu3DData[lbl_1_bss_68[i]->model[0]]; - var_r21 = (sp158[i]->unk08 != -1) ? sp158[i]->unk08 : 8; - var_r20 = (temp_r29->unk_08 == lbl_1_bss_68[i]->motion[4]) ? 0 - : (temp_r29->unk_08 == lbl_1_bss_68[i]->motion[6]) ? 1 - : (temp_r29->unk_08 == lbl_1_bss_68[i]->motion[7]) ? 2 : -1; - var_r19 = (temp_r29->unk_0C == lbl_1_bss_68[i]->motion[4]) ? 0 - : (temp_r29->unk_0C == lbl_1_bss_68[i]->motion[6]) ? 1 - : (temp_r29->unk_0C == lbl_1_bss_68[i]->motion[7]) ? 2 : -1; + temp_r29 = &Hu3DData[playerObj[i]->model[MODEL_ID_PLAYER_PLAYER]]; + var_r21 = (sp158[i]->character != CHARACTER_BOWSER) ? sp158[i]->character : 8; + var_r20 = (temp_r29->unk_08 == playerObj[i]->motion[4]) ? 0 + : (temp_r29->unk_08 == playerObj[i]->motion[6]) ? 1 + : (temp_r29->unk_08 == playerObj[i]->motion[7]) ? 2 + : -1; + var_r19 = (temp_r29->unk_0C == playerObj[i]->motion[4]) ? 0 + : (temp_r29->unk_0C == playerObj[i]->motion[6]) ? 1 + : (temp_r29->unk_0C == playerObj[i]->motion[7]) ? 2 + : -1; spA8 = (var_r20 == -1) ? 0.0f : lbl_1_data_1B4[var_r21][var_r20]; spA4 = (var_r19 == -1) ? 0.0f : lbl_1_data_1B4[var_r21][var_r19]; - var_f19 = (temp_r29->unk_0C == -1) ? 0.0f - : (temp_r29->unk_80 == 0.0f) ? 1.0f - : (temp_r29->unk_7C / temp_r29->unk_80); + var_f19 = (temp_r29->unk_0C == -1) ? 0.0f : (temp_r29->unk_80 == 0.0f) ? 1.0f : (temp_r29->unk_7C / temp_r29->unk_80); sp158[i]->unk48 = (i == 0 ? 1 : -1) * (spA8 * (1.0f - var_f19) + spA4 * var_f19); - lbl_1_bss_68[i]->trans.x += sp158[i]->unk48; - Hu3DModelPosSet(lbl_1_bss_68[i]->model[0], lbl_1_bss_68[i]->trans.x, lbl_1_bss_68[i]->trans.y, lbl_1_bss_68[i]->trans.z); + playerObj[i]->trans.x += sp158[i]->unk48; + Hu3DModelPosSet(playerObj[i]->model[MODEL_ID_PLAYER_PLAYER], playerObj[i]->trans.x, playerObj[i]->trans.y, playerObj[i]->trans.z); } } } -void fn_1_5500(void) { - StructBss68Data* spC[2]; - s16 sp8; - s16 temp_r31; +static void WrestleMesMain(void) +{ + PlayerData *playerData[2]; + s16 unk; + s16 window; s32 i; - sp8 = 0; + unk = 0; for (i = 0; i < 2; i++) { - spC[i] = lbl_1_bss_68[i]->data; + playerData[i] = playerObj[i]->data; } - HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); + HuWinComKeyWait(PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, REFRESH_RATE); HuWinComKeyReset(); - temp_r31 = HuWinExCreateStyled(36.0f, 344.0f, 504, 96, 6, 0); - HuWinBGTPLvlSet(temp_r31, 0.8f); - HuWinMesSpeedSet(temp_r31, 1); - HuWinExAnimIn(temp_r31); - HuWinDisablePlayerSet(temp_r31, 0xF - & ((spC[0]->unk0C != -1) ? ~(1 << spC[0]->unk0C) : 0xF) - & ((spC[1]->unk0C != -1) ? ~(1 << spC[1]->unk0C) : 0xF)); - HuWinMesSet(temp_r31, MAKE_MESSID(48, 31)); - if ((spC[0]->unk0C == -1 || spC[0]->unk08 == -1) && (spC[1]->unk0C == -1 || spC[1]->unk08 == -1)) { - HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); - HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); - HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); + window = HuWinExCreateStyled(36.0f, 344.0f, 504, 96, 6, 0); + HuWinBGTPLvlSet(window, 0.8f); + HuWinMesSpeedSet(window, 1); + HuWinExAnimIn(window); + HuWinDisablePlayerSet(window, + 0xF & ((playerData[0]->padIdx != PAD_IDX_COM) ? ~(1 << playerData[0]->padIdx) : 0xF) + & ((playerData[1]->padIdx != PAD_IDX_COM) ? ~(1 << playerData[1]->padIdx) : 0xF)); + HuWinMesSet(window, MAKE_MESSID(48, 31)); + if ((playerData[0]->padIdx == PAD_IDX_COM || playerData[0]->character == CHARACTER_BOWSER) + && (playerData[1]->padIdx == PAD_IDX_COM || playerData[1]->character == CHARACTER_BOWSER)) { + HuWinComKeyWait(PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, VERSION_JP ? 48 : REFRESH_RATE); + HuWinComKeyWait(PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, VERSION_JP ? 90 : REFRESH_RATE); + HuWinComKeyWait(PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, VERSION_JP ? 72 : REFRESH_RATE); } - HuWinMesWait(temp_r31); - HuWinExAnimOut(temp_r31); - HuWinExCleanup(temp_r31); - lbl_1_bss_10 = 0; + HuWinMesWait(window); + HuWinExAnimOut(window); + HuWinExCleanup(window); + m457MesEndF = 0; HuPrcEnd(); } -void fn_1_5720(void) { +static void ShoveMesMain(void) +{ float var_f31; - StructBss68Data* spC[2]; - WindowData* temp_r30; - s16 sp8; s16 temp_r31; + WindowData *temp_r30; + PlayerData *spC[2]; +#if VERSION_PAL + float var_f30; + double var_f29; + double var_f28; + float sp14[2]; + float spC_2[2]; + WindowData *var_r29; +#endif s32 var_r28; + s16 sp8; + s32 var_r26; s32 i; sp8 = 0; for (i = 0; i < 2; i++) { - spC[i] = lbl_1_bss_68[i]->data; + spC[i] = playerObj[i]->data; } - HuWinComKeyWait(0x100, 0x100, 0x100, 0x100, 60); + HuWinComKeyWait(PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, PAD_BUTTON_A, REFRESH_RATE); HuWinComKeyReset(); +#if VERSION_NTSC temp_r31 = HuWinCreate(215.0f, 100.0f, 130, 37, 1); +#else + HuWinMesMaxSizeGet(1, sp14, MAKE_MESSID(48, 32)); + temp_r31 = HuWinCreate(-10000.0f, 100.0f, sp14[0], 0x25, 1); +#endif HuSprColorSet(winData[temp_r31].group, 0, 0xFF, 0xFF, 0xCC); HuWinBGTPLvlSet(temp_r31, 0.9f); temp_r30 = &winData[temp_r31]; +#if VERSION_PAL + var_f29 = temp_r30->pos_x; +#endif temp_r30->mess_color = 0; temp_r30->mess_shadow_color = 9; temp_r30->attr |= 0x80; - for (var_r28 = 15, var_f31 = 0.0f; var_r28 != 0; var_r28--, var_f31 += 0.06666667f) { + for (var_r28 = 15, var_f31 = 0.0f; var_r28 != 0; var_r28--, var_f31 += 2.0f / 30) { HuWinScaleSet(temp_r31, 1.0f, 1.0 * (1.0f - (1.0f - var_f31) * (1.0f - var_f31))); +#if VERSION_NTSC HuWinPosSet(temp_r31, 215.0f, 100.0 + 37.0 * (1.0f - (1.0f - var_f31) * (1.0f - var_f31)) / -4.0); +#else + HuWinPosSet(temp_r31, var_f29, 100.0 + 37.0 * (1.0f - (1.0f - var_f31) * (1.0f - var_f31)) / -4.0); +#endif HuPrcVSleep(); } HuWinScaleSet(temp_r31, 1.0f, 1.0f); HuWinMesSet(temp_r31, MAKE_MESSID(48, 32)); - HuPrcSleep(60); + HuPrcSleep(REFRESH_RATE); HuWinExAnimOut(temp_r31); HuWinExCleanup(temp_r31); - lbl_1_bss_10 = 0; +#if VERSION_PAL + temp_r31 = 0; +#endif + m457MesEndF = 0; +#if VERSION_PAL + while (gameState != 1008) { + HuPrcVSleep(); + } + HuWinMesMaxSizeGet(1, spC_2, MAKE_MESSID(48, 33)); + temp_r31 = HuWinCreate(-10000.0f, 100.0f, spC_2[0], spC_2[1], 1); + HuSprColorSet(winData[temp_r31].group, 0, 0xFF, 0xFF, 0xCC); + HuWinBGTPLvlSet(temp_r31, 0.9f); + var_r29 = &winData[temp_r31]; + var_f28 = var_r29->pos_x; + var_r29->mess_color = 0; + var_r29->mess_shadow_color = 9; + var_r29->attr |= 0x80; + for (var_r26 = 5, var_f30 = 0.0f; var_r26 != 0; var_r26--, var_f30 += 0.2f) { + HuWinScaleSet(temp_r31, 1.0f, (double)(1.0f - ((1.0f - var_f30) * (1.0f - var_f30)))); + HuWinPosSet(temp_r31, var_f28, 100.0 + (((double)spC_2[1] * (1.0f - ((1.0f - var_f30) * (1.0f - var_f30)))) / -4.0)); + HuPrcVSleep(); + } + HuWinScaleSet(temp_r31, 1.0f, 1.0f); + HuWinMesSet(temp_r31, MAKE_MESSID(48, 33)); + HuWinMesSpeedSet(temp_r31, 0); + HuPrcSleep(0x32); + HuWinExAnimOut(temp_r31); + HuWinExCleanup(temp_r31); + temp_r31 = 0; +#endif HuPrcEnd(); } -void fn_1_59BC(omObjData* arg0) { - StructBss68Data* sp14[2]; +static void M457Main(omObjData *object) +{ + PlayerData *playerData[2]; float spC[2]; s32 sp8; s32 i; for (i = 0; i < 5; i++) { - s32 sp1C[] = { 0x7E1, 0x7E2, 0x7E3, 0x7E4, 0x7E5 }; + s32 shoveSeIdTbl[] = { 0x7E1, 0x7E2, 0x7E3, 0x7E4, 0x7E5 }; if (lbl_1_bss_78[i].unk00 > 3) { lbl_1_bss_78[i].unk00 = 3; } if (lbl_1_bss_78[i].unk00 > 0) { - sp8 = HuAudFXPlay(sp1C[i]); + sp8 = HuAudFXPlay(shoveSeIdTbl[i]); lbl_1_bss_78[i].unk00--; } } for (i = 0; i < 2; i++) { - sp14[i] = lbl_1_bss_68[i]->data; + playerData[i] = playerObj[i]->data; } if (omSysExitReq != 0 && WipeStatGet() == 0) { WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - arg0->func = fn_1_7AE4; + object->func = M457Exit; } - switch (lbl_1_bss_5C) { + switch (gameState) { case 1000: if (WipeStatGet() == 0) { - lbl_1_bss_5C++; + gameState++; lbl_1_bss_60 = 0; } break; case 1001: lbl_1_bss_60++; if (lbl_1_bss_60 == 60) { - lbl_1_bss_5C = (lbl_1_bss_14 != 0 ? 1002 : 1003); + gameState = (againstBrowserF ? 1002 : 1003); lbl_1_bss_60 = 0; } break; case 1002: lbl_1_bss_60++; - if (lbl_1_bss_60 > 210) { - lbl_1_bss_5C++; + if (lbl_1_bss_60 > (s32)(3.5 * REFRESH_RATE)) { + gameState++; lbl_1_bss_60 = 0; } break; case 1003: lbl_1_bss_60++; if (lbl_1_bss_60 == 60) { - lbl_1_bss_5C = (lbl_1_bss_14 != 0 ? 1004 : 1005); + gameState = (againstBrowserF ? 1004 : 1005); lbl_1_bss_60 = 0; } break; case 1004: if (lbl_1_bss_60 == 0) { - HuPrcChildCreate(fn_1_5500, 100, 0x2000, 0, HuPrcCurrentGet()); - lbl_1_bss_10 = 1; + HuPrcChildCreate(WrestleMesMain, 100, 0x2000, 0, HuPrcCurrentGet()); + m457MesEndF = 1; lbl_1_bss_60++; - } else if (lbl_1_bss_10 == 0) { + } + else if (m457MesEndF == 0) { lbl_1_bss_60++; - if (sp14[0]->unk14 == 0) { - lbl_1_bss_5C++; + if (playerData[0]->state == 0) { + gameState++; lbl_1_bss_60 = 0; } } break; case 1005: lbl_1_bss_60++; - if (lbl_1_bss_60 == 180) { - lbl_1_bss_5C++; + if (lbl_1_bss_60 == (VERSION_NTSC ? 180 : 128)) { + gameState++; lbl_1_bss_60 = 0; } break; @@ -1313,57 +1319,61 @@ void fn_1_59BC(omObjData* arg0) { HuWinBGTPLvlSet(lbl_1_data_2B0, 0.0f); HuWinMesSpeedSet(lbl_1_data_2B0, 0); HuWinMesSet(lbl_1_data_2B0, MAKE_MESSID(48, 34)); - HuPrcChildCreate(fn_1_5720, 100, 0x2000, 0, HuPrcCurrentGet()); - lbl_1_bss_10 = 1; + HuPrcChildCreate(ShoveMesMain, 100, 0x2000, 0, HuPrcCurrentGet()); + m457MesEndF = 1; lbl_1_bss_60++; - } else if (lbl_1_bss_10 == 0) { + } + else if (m457MesEndF == 0) { lbl_1_bss_60++; - if (sp14[0]->unk14 == 0) { - lbl_1_bss_5C++; - lbl_1_bss_60 = rand8() * 30 % 5 + 60; + if (playerData[0]->state == 0) { + gameState++; + lbl_1_bss_60 = rand8() * (REFRESH_RATE / 2) % 5 + REFRESH_RATE; } - } else { + } + else { lbl_1_bss_60++; } break; case 1007: lbl_1_bss_60 -= 1; if (lbl_1_bss_60 <= 0) { - lbl_1_bss_5C++; + gameState++; lbl_1_bss_60 = 0; - HuAudFXPlay(0x3E); +#if VERSION_NTSC + HuAudFXPlay(MSM_SE_BOWSER_HOWL); +#endif } break; case 1008: lbl_1_bss_60++; if (lbl_1_bss_44 != -1) { - lbl_1_bss_5C = 1009; + gameState = 1009; lbl_1_bss_60 = 0; break; } - if (lbl_1_data_2A6 == -1 && lbl_1_bss_60 >= 16200 && sp14[0]->unk14 < 16 && sp14[1]->unk14 < 16) { + if (lbl_1_data_2A6 == -1 && lbl_1_bss_60 >= 270 * REFRESH_RATE && playerData[0]->state < 16 && playerData[1]->state < 16) { lbl_1_data_2A6 = MGSeqTimerCreate(30); } if (lbl_1_data_2A6 == -1) { break; } - if (sp14[0]->unk14 < 16 && sp14[1]->unk14 < 16) { - MGSeqParamSet(lbl_1_data_2A6, 1, (18059 - lbl_1_bss_60) / 60); - if (lbl_1_bss_60 > 18000) { + if (playerData[0]->state < 16 && playerData[1]->state < 16) { + MGSeqParamSet(lbl_1_data_2A6, 1, (301 * REFRESH_RATE - 1 - lbl_1_bss_60) / REFRESH_RATE); + if (lbl_1_bss_60 > 300 * REFRESH_RATE) { MGSeqParamSet(lbl_1_data_2A6, 2, -1); lbl_1_data_2A6 = -1; } } - if (lbl_1_bss_60 > 18000 && sp14[0]->unk14 < 16 && sp14[1]->unk14 < 16) { - lbl_1_bss_5C = 1009; + if (lbl_1_bss_60 > 300 * REFRESH_RATE && playerData[0]->state < 16 && playerData[1]->state < 16) { + gameState = 1009; lbl_1_bss_60 = 0; lbl_1_bss_40 = 1; - sp14[0]->unk14 = sp14[1]->unk14 = 17; - sp14[0]->unk18 = sp14[1]->unk18 = 0; + playerData[0]->state = playerData[1]->state = 17; + playerData[0]->unk18 = playerData[1]->unk18 = 0; MGSeqFinishCreate(); - if (lbl_1_data_2A8 != -1) { - HuAudSeqFadeOut(lbl_1_data_2A8, 100); - lbl_1_data_2A8 = -1; + if (backgroundMusNo != -1) { + HuAudSeqFadeOut(backgroundMusNo, 100); + backgroundMusNo = -1; } } break; @@ -1373,8 +1383,8 @@ void fn_1_59BC(omObjData* arg0) { lbl_1_data_2A6 = -1; } lbl_1_bss_60++; - if (lbl_1_bss_60 >= 120) { - lbl_1_bss_5C++; + if (lbl_1_bss_60 >= 2 * REFRESH_RATE) { + gameState++; lbl_1_bss_60 = 0; } break; @@ -1382,115 +1392,115 @@ void fn_1_59BC(omObjData* arg0) { lbl_1_bss_60++; if (lbl_1_bss_60 == 15) { if (lbl_1_bss_44 != 2) { - if (sp14[lbl_1_bss_44]->unk08 != -1) { + if (playerData[lbl_1_bss_44]->character != CHARACTER_BOWSER) { HuAudSStreamPlay(1); - } else { + } + else { HuAudSStreamPlay(3); } - if (lbl_1_bss_14 != 0) { + if (againstBrowserF) { if (lbl_1_bss_44 == 0) { _SetFlag(FLAG_ID_MAKE(1, 7)); } - } else { - GWPlayerCoinWinSet(sp14[lbl_1_bss_44]->unk04, 10); } - } else if (lbl_1_bss_44 == 2) { + else { + GWPlayerCoinWinSet(playerData[lbl_1_bss_44]->player, 10); + } + } + else if (lbl_1_bss_44 == 2) { HuAudSStreamPlay(4); } } - if (225.0f < lbl_1_bss_60) { - if (lbl_1_data_2AC != -1) { - HuAudFXStop(lbl_1_data_2AC); - lbl_1_data_2AC = -1; + if ((VERSION_NTSC ? 225.0f : 190.0f) < lbl_1_bss_60) { + if (windSeNo != -1) { + HuAudFXStop(windSeNo); + windSeNo = -1; } lbl_1_data_2A4 = -1; WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); - arg0->func = fn_1_7AE4; + object->func = M457Exit; } break; } } -void fn_1_64F8(omObjData* arg0) { - StructBss68Data* sp18[2]; - StructBss68Data* temp_r29; +static void M457GameSetup(omObjData *object) +{ s32 i; for (i = 0; i < 2; i++) { - sp18[i] = lbl_1_bss_68[i]->data; + PlayerData *playerData[2]; + playerData[i] = playerObj[i]->data; } - arg0->model[5] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_BKOOPA, 14)); - Hu3DModelAttrSet(arg0->model[5], HU3D_MOTATTR_LOOP); - arg0->model[6] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 38)); - Hu3DModelAttrSet(arg0->model[6], HU3D_MOTATTR_LOOP); - Hu3DModelHookSet(arg0->model[5], "g007m0-itemhook_r", arg0->model[6]); - Hu3DModelPosSet(arg0->model[5], 0.0f, 0.0f, 0.0f); - Hu3DModelRotSet(arg0->model[5], 15.0f, 0.0f, 0.0f); - arg0->motion[0] = Hu3DJointMotionFile(arg0->model[5], DATA_MAKE_NUM(DATADIR_M457, 39)); - arg0->motion[1] = Hu3DJointMotionFile(arg0->model[5], DATA_MAKE_NUM(DATADIR_M457, 40)); - arg0->motion[2] = Hu3DJointMotionFile(arg0->model[5], DATA_MAKE_NUM(DATADIR_M457, 41)); - arg0->motion[3] = Hu3DJointMotionFile(arg0->model[5], DATA_MAKE_NUM(DATADIR_M457, 42)); - Hu3DMotionSet(arg0->model[5], arg0->motion[0]); - Hu3DModelLayerSet(arg0->model[6], 2); - Hu3DModelLayerSet(arg0->model[5], 2); - Hu3DModelAttrSet(arg0->model[5], HU3D_ATTR_DISPOFF); - Hu3DModelShadowSet(arg0->model[6]); - Hu3DModelShadowSet(arg0->model[5]); - arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 16)); - Hu3DModelAttrSet(arg0->model[0], HU3D_MOTATTR_LOOP); - Hu3DMotionSpeedSet(arg0->model[0], 0.1f); - Hu3DModelLayerSet(arg0->model[0], 1); - arg0->model[1] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 17)); - Hu3DModelAttrSet(arg0->model[1], HU3D_MOTATTR_LOOP); - Hu3DModelShadowMapSet(arg0->model[1]); - Hu3DModelLayerSet(arg0->model[1], 1); - Hu3DModelScaleSet(arg0->model[1], 1.0f, 1.0f, 1.0f); - arg0->model[2] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 21)); - Hu3DModelAttrSet(arg0->model[2], HU3D_MOTATTR_LOOP); - Hu3DModelAttrSet(arg0->model[2], HU3D_ATTR_DISPOFF); - Hu3DModelLayerSet(arg0->model[2], 2); - arg0->model[3] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 19)); - Hu3DModelAttrSet(arg0->model[3], HU3D_MOTATTR_LOOP); - Hu3DModelAttrSet(arg0->model[3], HU3D_ATTR_DISPOFF); - Hu3DModelLayerSet(arg0->model[3], 2); - arg0->model[4] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 20)); - Hu3DModelAttrSet(arg0->model[4], HU3D_MOTATTR_LOOP); - Hu3DModelAttrSet(arg0->model[4], HU3D_ATTR_DISPOFF); - Hu3DModelLayerSet(arg0->model[4], 4); + object->model[MODEL_ID_GAME_KOOPA_KID] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_BKOOPA, 14)); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_KOOPA_KID], HU3D_MOTATTR_LOOP); + object->model[MODEL_ID_GAME_WAR_FAN] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 38)); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_WAR_FAN], HU3D_MOTATTR_LOOP); + Hu3DModelHookSet(object->model[MODEL_ID_GAME_KOOPA_KID], "g007m0-itemhook_r", object->model[MODEL_ID_GAME_WAR_FAN]); + Hu3DModelPosSet(object->model[MODEL_ID_GAME_KOOPA_KID], 0.0f, 0.0f, 0.0f); + Hu3DModelRotSet(object->model[MODEL_ID_GAME_KOOPA_KID], 15.0f, 0.0f, 0.0f); + object->motion[0] = Hu3DJointMotionFile(object->model[MODEL_ID_GAME_KOOPA_KID], DATA_MAKE_NUM(DATADIR_M457, 39)); + object->motion[1] = Hu3DJointMotionFile(object->model[MODEL_ID_GAME_KOOPA_KID], DATA_MAKE_NUM(DATADIR_M457, 40)); + object->motion[2] = Hu3DJointMotionFile(object->model[MODEL_ID_GAME_KOOPA_KID], DATA_MAKE_NUM(DATADIR_M457, 41)); + object->motion[3] = Hu3DJointMotionFile(object->model[MODEL_ID_GAME_KOOPA_KID], DATA_MAKE_NUM(DATADIR_M457, 42)); + Hu3DMotionSet(object->model[MODEL_ID_GAME_KOOPA_KID], object->motion[0]); + Hu3DModelLayerSet(object->model[MODEL_ID_GAME_WAR_FAN], 2); + Hu3DModelLayerSet(object->model[MODEL_ID_GAME_KOOPA_KID], 2); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_KOOPA_KID], HU3D_ATTR_DISPOFF); + Hu3DModelShadowSet(object->model[MODEL_ID_GAME_WAR_FAN]); + Hu3DModelShadowSet(object->model[MODEL_ID_GAME_KOOPA_KID]); + object->model[MODEL_ID_GAME_SKY] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 16)); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_SKY], HU3D_MOTATTR_LOOP); + Hu3DMotionSpeedSet(object->model[MODEL_ID_GAME_SKY], 0.1f); + Hu3DModelLayerSet(object->model[MODEL_ID_GAME_SKY], 1); + object->model[MODEL_ID_GAME_RING] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 17)); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_RING], HU3D_MOTATTR_LOOP); + Hu3DModelShadowMapSet(object->model[MODEL_ID_GAME_RING]); + Hu3DModelLayerSet(object->model[MODEL_ID_GAME_RING], 1); + Hu3DModelScaleSet(object->model[MODEL_ID_GAME_RING], 1.0f, 1.0f, 1.0f); + object->model[MODEL_ID_GAME_MUSHROOM] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 21)); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_MUSHROOM], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_MUSHROOM], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(object->model[MODEL_ID_GAME_MUSHROOM], 2); + object->model[MODEL_ID_GAME_INVINCE_SHINING] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 19)); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_INVINCE_SHINING], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_INVINCE_SHINING], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(object->model[MODEL_ID_GAME_INVINCE_SHINING], 2); + object->model[MODEL_ID_GAME_INVINCE_SPARKS] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 20)); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_INVINCE_SPARKS], HU3D_MOTATTR_LOOP); + Hu3DModelAttrSet(object->model[MODEL_ID_GAME_INVINCE_SPARKS], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(object->model[MODEL_ID_GAME_INVINCE_SPARKS], 4); for (i = 0; i < 3; i++) { - arg0->model[i + 7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 18)); - Hu3DModelLayerSet(arg0->model[i + 7], 4); - Hu3DModelAttrSet(arg0->model[i + 7], HU3D_ATTR_DISPOFF); + object->model[i + 7] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M457, 18)); + Hu3DModelLayerSet(object->model[i + 7], 4); + Hu3DModelAttrSet(object->model[i + 7], HU3D_ATTR_DISPOFF); } for (i = 0; i < 16; i++) { s32 sp10[] = { 106, 469 }; s32 sp8[] = { 78, 78 }; - s32 sp60[] = { - 0, 0, -33, -9, 15, 39, 63, -68, - 0, 0, -33, -9, 15, 39, 63, -68 - }; - s32 sp20[] = { - 0, 0, -1, -1, -1, -1, -1, -2, - 0, 0, -1, -1, -1, -1, -1, -2 - }; + s32 sp60[] = { 0, 0, -33, -9, 15, 39, 63, -68, 0, 0, -33, -9, 15, 39, 63, -68 }; + s32 sp20[] = { 0, 0, -1, -1, -1, -1, -1, -2, 0, 0, -1, -1, -1, -1, -1, -2 }; - if (lbl_1_data_0[i] == DATA_MAKE_NUM(DATADIR_MGCONST, 0)) { - temp_r29 = lbl_1_bss_68[i == 7 ? 0 : 1]->data; - lbl_1_data_5C[i] = espEntry((temp_r29->unk08 == -1) ? DATA_MAKE_NUM(DATADIR_M457, 26) : (lbl_1_data_0[i] + temp_r29->unk08), 0, 0); - } else { - lbl_1_data_5C[i] = espEntry(lbl_1_data_0[i], 0, 0); + if (sprDataNumTbl[i] == DATA_MAKE_NUM(DATADIR_MGCONST, 0)) { + PlayerData *player = playerObj[i == 7 ? 0 : 1]->data; + sprIdTbl[i] + = espEntry((player->character == CHARACTER_BOWSER) ? DATA_MAKE_NUM(DATADIR_M457, 26) : (sprDataNumTbl[i] + player->character), 0, 0); } - espDrawNoSet(lbl_1_data_5C[i], 0); - espDispOff(lbl_1_data_5C[i]); - espAttrSet(lbl_1_data_5C[i], HU3D_ATTR_DISPOFF); - espBankSet(lbl_1_data_5C[i], 0); - espPriSet(lbl_1_data_5C[i], 128 - i); - espPosSet(lbl_1_data_5C[i], sp60[i] + sp10[i < 8 ? 0 : 1], sp20[i] + sp8[i < 8 ? 0 : 1]); + else { + sprIdTbl[i] = espEntry(sprDataNumTbl[i], 0, 0); + } + espDrawNoSet(sprIdTbl[i], 0); + espDispOff(sprIdTbl[i]); + espAttrSet(sprIdTbl[i], HUSPR_ATTR_NOANIM); + espBankSet(sprIdTbl[i], 0); + espPriSet(sprIdTbl[i], 128 - i); + espPosSet(sprIdTbl[i], sp60[i] + sp10[i < 8 ? 0 : 1], sp20[i] + sp8[i < 8 ? 0 : 1]); if ((i >= 8 ? i - 8 : i) != 0) { - (void) 1; // Required to match. - } else { - espTPLvlSet(lbl_1_data_5C[i], 0.5f); - espColorSet(lbl_1_data_5C[i], 0, 0, 0); + (void)1; // Required to match. + } + else { + espTPLvlSet(sprIdTbl[i], 0.5f); + espColorSet(sprIdTbl[i], 0, 0, 0); } } for (i = 16; i < 23; i++) { @@ -1498,107 +1508,118 @@ void fn_1_64F8(omObjData* arg0) { s32 spFC[23] = { 288, 288 }; s32 spA0[23] = { 240, 240 }; - lbl_1_data_5C[i] = espEntry(lbl_1_data_0[i], 0, 0); - espDrawNoSet(lbl_1_data_5C[i], 0); - espAttrSet(lbl_1_data_5C[i], HU3D_ATTR_DISPOFF | HU3D_ATTR_SHADOW); - espBankSet(lbl_1_data_5C[i], 0); - espPriSet(lbl_1_data_5C[i], 128 - i); - espPosSet(lbl_1_data_5C[i], spFC[temp_r28], spA0[temp_r28]); - espTPLvlSet(lbl_1_data_5C[i], 1.0f); + sprIdTbl[i] = espEntry(sprDataNumTbl[i], 0, 0); + espDrawNoSet(sprIdTbl[i], 0); + espAttrSet(sprIdTbl[i], HUSPR_ATTR_NOANIM | HUSPR_ATTR_DISPOFF); + espBankSet(sprIdTbl[i], 0); + espPriSet(sprIdTbl[i], 128 - i); + espPosSet(sprIdTbl[i], spFC[temp_r28], spA0[temp_r28]); + espTPLvlSet(sprIdTbl[i], 1.0f); } - arg0->func = fn_1_2CC4; + object->func = M457GameExec; } -void fn_1_6FB0(omObjData* arg0) { - s32 sp14; - StructBss68Data* temp_r31; - StructBss68Data* sp10; +static void M457PlayerSetup(omObjData *object) +{ + s32 opponentPlayerGroup; + PlayerData *playerData; + PlayerData *opponentData; s32 i; - temp_r31 = arg0->data; - sp10 = lbl_1_bss_68[1 - arg0->work[0]]->data; - memset(temp_r31, 0, sizeof(*temp_r31)); - temp_r31->unk00 = arg0->work[0]; - temp_r31->unk04 = (GWPlayerCfg[0].group == temp_r31->unk00) ? 0 - : (GWPlayerCfg[1].group == temp_r31->unk00) ? 1 - : (GWPlayerCfg[2].group == temp_r31->unk00) ? 2 - : (GWPlayerCfg[3].group == temp_r31->unk00) ? 3 : 4; - sp14 = (GWPlayerCfg[0].group == 1 - temp_r31->unk00) ? 0 - : (GWPlayerCfg[1].group == 1 - temp_r31->unk00) ? 1 - : (GWPlayerCfg[2].group == 1 - temp_r31->unk00) ? 2 - : (GWPlayerCfg[3].group == 1 - temp_r31->unk00) ? 3 : 4; - if (temp_r31->unk04 == 4) { + playerData = object->data; + opponentData = playerObj[1 - object->work[0]]->data; + memset(playerData, 0, sizeof(*playerData)); + playerData->group = object->work[0]; + playerData->player = (GWPlayerCfg[0].group == playerData->group) ? 0 + : (GWPlayerCfg[1].group == playerData->group) ? 1 + : (GWPlayerCfg[2].group == playerData->group) ? 2 + : (GWPlayerCfg[3].group == playerData->group) ? 3 + : 4; + opponentPlayerGroup = (GWPlayerCfg[0].group == 1 - playerData->group) ? 0 + : (GWPlayerCfg[1].group == 1 - playerData->group) ? 1 + : (GWPlayerCfg[2].group == 1 - playerData->group) ? 2 + : (GWPlayerCfg[3].group == 1 - playerData->group) ? 3 + : 4; + if (playerData->player == 4) { OSReport("m457:wrong player group\n"); - temp_r31->unk04 = temp_r31->unk00; + playerData->player = playerData->group; } - if (temp_r31->unk00 == 1 && lbl_1_bss_14 != 0) { - temp_r31->unk08 = -1; - temp_r31->unk0C = -1; - temp_r31->unk04 = -1; - temp_r31->unk10 = 1; - } else { - temp_r31->unk08 = GWPlayerCfg[temp_r31->unk04].character; - temp_r31->unk0C = (temp_r31->unk08 == -1 || GWPlayerCfg[temp_r31->unk04].iscom) ? -1 : GWPlayerCfg[temp_r31->unk04].pad_idx; - temp_r31->unk10 = (temp_r31->unk0C != -1) ? 0 : GWPlayerCfg[temp_r31->unk04].diff; + if (playerData->group == 1 && againstBrowserF) { + playerData->character = -1; + playerData->padIdx = PAD_IDX_COM; + playerData->player = -1; + playerData->diff = 1; } - temp_r31->unk14 = 0; - temp_r31->unk30 = 100; - temp_r31->unk34 = 0; - temp_r31->unk38 = -1; - temp_r31->unk2C = -1; - temp_r31->unk3C = 10000; - temp_r31->unk40 = 1; - temp_r31->unk44 = -1; - if (temp_r31->unk08 != -1) { - arg0->model[0] = CharModelCreate(temp_r31->unk08, 1); - } else { - arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_BKOOPA, 7)); + else { + playerData->character = GWPlayerCfg[playerData->player].character; + playerData->padIdx = (playerData->character == CHARACTER_BOWSER || GWPlayerCfg[playerData->player].iscom) + ? PAD_IDX_COM + : GWPlayerCfg[playerData->player].pad_idx; + playerData->diff = (playerData->padIdx != PAD_IDX_COM) ? 0 : GWPlayerCfg[playerData->player].diff; } - omSetTra(arg0, 0.0f, temp_r31->unk00 == 0 ? 0 : 300, 0.0f); - if (temp_r31->unk08 != -1) { - omSetSca(arg0, 2.5f, 2.5f, 2.5f); - } else { - omSetSca(arg0, 2.0f, 2.0f, 2.0f); + playerData->state = 0; + playerData->stamina = 100; + playerData->unk34 = 0; + playerData->prevTrig = -1; + playerData->unk2C = -1; + playerData->unk3C = 10000; + playerData->unk40 = 1; + playerData->unk44 = -1; + if (playerData->character != CHARACTER_BOWSER) { + object->model[MODEL_ID_PLAYER_PLAYER] = CharModelCreate(playerData->character, 1); + } + else { + object->model[MODEL_ID_PLAYER_PLAYER] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_BKOOPA, 7)); + } + omSetTra(object, 0.0f, playerData->group == 0 ? 0 : 300, 0.0f); + if (playerData->character != CHARACTER_BOWSER) { + omSetSca(object, 2.5f, 2.5f, 2.5f); + } + else { + omSetSca(object, 2.0f, 2.0f, 2.0f); } for (i = 0; i < 12; i++) { - if (temp_r31->unk08 != -1) { - arg0->motion[i] = CharModelMotionCreate(temp_r31->unk08, lbl_1_data_B8[i] + (lbl_1_data_E8[i] != 0 ? temp_r31->unk08 : 0)); - } else if (lbl_1_data_118[i] != 0) { - arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_118[i]); + if (playerData->character != CHARACTER_BOWSER) { + object->motion[i] = CharModelMotionCreate(playerData->character, lbl_1_data_B8[i] + (lbl_1_data_E8[i] != 0 ? playerData->character : 0)); + } + else if (lbl_1_data_118[i] != 0) { + object->motion[i] = Hu3DJointMotionFile(object->model[MODEL_ID_PLAYER_PLAYER], lbl_1_data_118[i]); } } - Hu3DMotionSet(arg0->model[0], arg0->motion[temp_r31->unk40]); - Hu3DMotionTimeSet(arg0->model[0], 10.0f); - Hu3DModelAttrReset(arg0->model[0], HU3D_MOTATTR_LOOP); - Hu3DModelShadowSet(arg0->model[0]); - Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); - Hu3DModelLayerSet(arg0->model[0], 3); + Hu3DMotionSet(object->model[MODEL_ID_PLAYER_PLAYER], object->motion[playerData->unk40]); + Hu3DMotionTimeSet(object->model[MODEL_ID_PLAYER_PLAYER], 10.0f); + Hu3DModelAttrReset(object->model[MODEL_ID_PLAYER_PLAYER], HU3D_MOTATTR_LOOP); + Hu3DModelShadowSet(object->model[MODEL_ID_PLAYER_PLAYER]); + Hu3DModelAttrSet(object->model[MODEL_ID_PLAYER_PLAYER], HU3D_ATTR_DISPOFF); + Hu3DModelLayerSet(object->model[MODEL_ID_PLAYER_PLAYER], 3); CharModelLayerSetAll2(4); - arg0->rot.y = temp_r31->unk00 * 180 + 90; - arg0->trans.x = (temp_r31->unk00 == 0 ? -1 : 1) * 300; - arg0->func = fn_1_46C; + object->rot.y = playerData->group * 180 + 90; + object->trans.x = (playerData->group == 0 ? -1 : 1) * 300; + object->func = M457PlayerExec; } -void fn_1_75A4(omObjData* arg0) { - lbl_1_bss_5C = 1000; +static void M457Setup(omObjData *object) +{ + gameState = 1000; lbl_1_bss_60 = 0; lbl_1_bss_54 = 0; lbl_1_bss_50 = 0; - if (lbl_1_data_2A8 == -1) { - lbl_1_data_2A8 = HuAudSeqPlay(0x4D); + if (backgroundMusNo == -1) { + backgroundMusNo = HuAudSeqPlay(MSM_MUS_BACKGROUND); } - lbl_1_data_2AC = HuAudFXPlay(0x6D7); + windSeNo = HuAudFXPlay(MSM_SE_WIND); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); - arg0->func = fn_1_59BC; + object->func = M457Main; } -void ObjectSetup(void) { - omObjData* var_r30; +void ObjectSetup(void) +{ + omObjData *object; s32 i; OSReport("******* M457 ObjectSetup *********\n"); - lbl_1_bss_4C = omInitObjMan(600, 0x2000); - omGameSysInit(lbl_1_bss_4C); + objman = omInitObjMan(600, 0x2000); + omGameSysInit(objman); Hu3DCameraCreate(1); Hu3DCameraPerspectiveSet(1, 30.0f, 20.0f, 25000.0f, 1.2f); Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); @@ -1610,54 +1631,55 @@ void ObjectSetup(void) { CRot.y = 0.0f; CRot.z = 0.0f; { - Vec sp3C = { 0.0f, 0.0f, 0.0f }; - Vec sp30 = { 0.25f, -0.75f, -0.45f }; - GXColor sp8 = { 0xFF, 0xFF, 0xFF, 0xFF }; + Vec pos = { 0.0f, 0.0f, 0.0f }; + Vec destination = { 0.25f, -0.75f, -0.45f }; + GXColor color = { 0xFF, 0xFF, 0xFF, 0xFF }; - lbl_1_bss_48 = Hu3DGLightCreateV(&sp3C, &sp30, &sp8); + lightId = Hu3DGLightCreateV(&pos, &destination, &color); } - Hu3DGLightStaticSet(lbl_1_bss_48, 1); - Hu3DGLightInfinitytSet(lbl_1_bss_48); + Hu3DGLightStaticSet(lightId, 1); + Hu3DGLightInfinitytSet(lightId); { - Vec sp24; - Vec sp18; - Vec spC; + Vec camPos; + Vec camUp; + Vec camTarget; - sp24.x = 0.0f; - sp24.y = 10000.0f; - sp24.z = 0.0f; - sp18.x = 0.0f; - sp18.y = 1.0f; - sp18.z = 0.0f; - spC.x = 0.0f; - spC.y = 0.0f; - spC.z = 0.5f; + camPos.x = 0.0f; + camPos.y = 10000.0f; + camPos.z = 0.0f; + camUp.x = 0.0f; + camUp.y = 1.0f; + camUp.z = 0.0f; + camTarget.x = 0.0f; + camTarget.y = 0.0f; + camTarget.z = 0.5f; Hu3DShadowCreate(12.0f, 9000.0f, 10010.0f); Hu3DShadowTPLvlSet(0.625f); - Hu3DShadowPosSet(&sp24, &sp18, &spC); + Hu3DShadowPosSet(&camPos, &camUp, &camTarget); } Hu3DShadowSizeSet(224); lbl_1_data_2A4 = -1; lbl_1_bss_44 = -1; - lbl_1_bss_14 = (_CheckFlag(FLAG_ID_MAKE(1, 0)) != 0); + againstBrowserF = _CheckFlag(FLAG_ID_MAKE(1, 0)) != 0; HuWinInit(1); - lbl_1_bss_64 = omAddObjEx(lbl_1_bss_4C, 101, 10, 4, 1, fn_1_64F8); + gameObj = omAddObjEx(objman, 101, 10, 4, 1, M457GameSetup); for (i = 0; i < 2; i++) { - var_r30 = lbl_1_bss_68[i] = omAddObjEx(lbl_1_bss_4C, 100, 1, 12, 0, fn_1_6FB0); - var_r30->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(StructBss68Data), MEMORY_DEFAULT_NUM); - var_r30->work[0] = i; + object = playerObj[i] = omAddObjEx(objman, 100, 1, 12, 0, M457PlayerSetup); + object->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(PlayerData), MEMORY_DEFAULT_NUM); + object->work[0] = i; } - lbl_1_bss_70 = omAddObjEx(lbl_1_bss_4C, 0x7FDA, 0, 0, -1, omOutView); - lbl_1_bss_74 = omAddObjEx(lbl_1_bss_4C, 103, 0, 0, -1, fn_1_75A4); + omViewObj = omAddObjEx(objman, 0x7FDA, 0, 0, -1, omOutView); + mainObj = omAddObjEx(objman, 103, 0, 0, -1, M457Setup); } -void fn_1_7AE4(omObjData* arg0) { - StructBss68Data* sp8; +static void M457Exit(omObjData *object) +{ + PlayerData *playerData; s32 i; if (WipeStatGet() == 0) { for (i = 0; i < 2; i++) { - sp8 = lbl_1_bss_68[i]->data; + playerData = playerObj[i]->data; } if (lbl_1_data_2A4 >= 0) { MGSeqKill(lbl_1_data_2A4); diff --git a/src/REL/m462Dll/main.c b/src/REL/m462Dll/main.c index ff5c24f1..4b10f621 100755 --- a/src/REL/m462Dll/main.c +++ b/src/REL/m462Dll/main.c @@ -1280,7 +1280,7 @@ s32 fn_1_65D0(StructBss340 *arg0) { float var_f31; float var_f30; - s32 sp8; + s32 sp8; // ! - uninitialized var_f31 = fn_1_1534(arg0->unk4C.z, arg0->unk84); var_f30 = fn_1_1534(arg0->unk4C.x, arg0->unk84); diff --git a/src/REL/mgmodedll/battle.c b/src/REL/mgmodedll/battle.c index a78bdc8a..c5088576 100644 --- a/src/REL/mgmodedll/battle.c +++ b/src/REL/mgmodedll/battle.c @@ -44,7 +44,7 @@ s32 fn_1_E72C(void) temp_r29 = 0; fn_1_279FC(0); fn_1_FF5C(); - if (lbl_1_bss_4 == 3) { + if (mgModeEvtNo == 3) { mgTypeCurr = mgInfoTbl[GWSystem.mg_next].type; if (mgTypeCurr >= 4) { mgTypeCurr = 3; @@ -105,7 +105,7 @@ s32 fn_1_E72C(void) } repeat_mode: if (lbl_1_bss_20AA == 0) { - HuPrcChildCreate(fn_1_27080, 100, 12288, 0, lbl_1_bss_2D8); + HuPrcChildCreate(fn_1_27080, 100, 12288, 0, objman); lbl_1_bss_20AA = 1; } lbl_1_bss_3A4 = fn_1_25CA8(0x1A0020); @@ -843,7 +843,7 @@ void fn_1_12B64(s16 arg0) { Process *process; s32 *data; - process = HuPrcChildCreate(fn_1_12BEC, 100, 12288, 0, lbl_1_bss_2D8); + process = HuPrcChildCreate(fn_1_12BEC, 100, 12288, 0, objman); data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(s32), MEMORY_DEFAULT_NUM); process->user_data = data; *data = arg0; diff --git a/src/REL/mgmodedll/datalist.c b/src/REL/mgmodedll/datalist.c index 947f1677..3eb233ec 100644 --- a/src/REL/mgmodedll/datalist.c +++ b/src/REL/mgmodedll/datalist.c @@ -1,131 +1,135 @@ #include "REL/mgmodedll.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + DataListModel lbl_1_data_490[] = { - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x00), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x01), 0x40000001, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x02), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x03), 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x04), 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x5E), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x5F), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x60), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x61), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x05), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x06), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x07), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x08), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, - { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x00), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x01), 0x40000001, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x02), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x03), 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x04), 0, 1, -1, 2, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x5E), 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x5F), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x60), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x61), 0, 1, -1, 5, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x05), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x06), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x07), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x08), 0x1, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, + { -1, 0, 0, -1, -1, { 0, 0, 0 }, { 0, 0, 0 }, { 1, 1, 1 } }, }; DataListSprite lbl_1_data_768[] = { - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0C), 0, 10, 288, -200, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x09), 0, 10, 288, -200, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0A), 0, 10, 288, -200, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0D), 4, 100, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x18), 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1A), 4, 20, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1B), 4, 30, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1C), 4, 40, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1D), 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1E), 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1F), 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x20), 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x21), 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x25), 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0E), 4, 210, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0F), 4, 210, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x19), 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x28), 4, 10, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x28), 4, 10, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2A), 4, 10, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2E), 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2F), 4, 200, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x32), 4, 5, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x31), 4, 4, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x30), 4, 4, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x29), 4, 4, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x29), 4, 4, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x33), 4, 50, 288, 240, { 255, 255, 255, 255 } }, - { DATA_MAKE_NUM(DATADIR_MGMODE, 0x34), 4, 50, 288, 256, { 255, 255, 255, 255 } }, - { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0C), 0, 10, 288, -200, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x09), 0, 10, 288, -200, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0A), 0, 10, 288, -200, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0D), 4, 100, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x18), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1A), 4, 20, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1B), 4, 30, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1C), 4, 40, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1D), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1E), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x1F), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x20), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x21), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x25), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0E), 4, 210, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x0F), 4, 210, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x19), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x28), 4, 10, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x28), 4, 10, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2A), 4, 10, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2E), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x2F), 4, 200, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x32), 4, 5, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x31), 4, 4, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x30), 4, 4, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x29), 4, 4, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x29), 4, 4, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x33), 4, 50, 288, 240, { 255, 255, 255, 255 } }, + { DATA_MAKE_NUM(DATADIR_MGMODE, 0x34), 4, 50, 288, 256, { 255, 255, 255, 255 } }, + { 0, 0, 0, 0, 0, { 0, 0, 0, 0 } }, }; void fn_1_267E8(DataListModel *model_list) { - DataListModel *list; - s16 i; - s16 model; - s16 clear_i; - ModelData *model_ptr; - void *data; - list = model_list; - for(clear_i=0; clear_i<13; clear_i++) { - lbl_1_bss_2C80[clear_i] = lbl_1_bss_2C66[clear_i] = -1; - } - for(i=0; list->datanum != DATA_NUM_LISTEND; list++, i++) { - if(list->type == 0) { - data = HuDataSelHeapReadNum(list->datanum, MEMORY_DEFAULT_NUM, HEAP_DATA); - model = Hu3DModelCreate(data); - lbl_1_bss_2C80[i] = model; - Hu3DModelAttrSet(model, list->attr); - Hu3DModelPosSetV(model, &list->pos); - Hu3DModelRotSetV(model, &list->rot); - Hu3DModelScaleSetV(model, &list->scale); - model_ptr = &Hu3DData[model]; - if(model_ptr->unk_08 != -1) { - lbl_1_bss_2C66[i] = model_ptr->unk_08; - } - } else if(list->type == 1) { - data = HuDataSelHeapReadNum(list->datanum, MEMORY_DEFAULT_NUM, HEAP_DATA); - lbl_1_bss_2C66[i] = Hu3DJointMotion(lbl_1_bss_2C80[list->mot_link], data); - - } - (void)i; - } - list = model_list; - for(i=0; list->datanum != DATA_NUM_LISTEND; list++, i++) { - if(list->type == 2) { - model = Hu3DModelLink(lbl_1_bss_2C80[list->link]); - lbl_1_bss_2C80[i] = model; - Hu3DModelAttrSet(model, list->attr); - Hu3DModelPosSetV(model, &list->pos); - Hu3DModelRotSetV(model, &list->rot); - Hu3DModelScaleSetV(model, &list->scale); - } - if(list->type == 0 && list->mot_link != -1) { - Hu3DMotionSet(lbl_1_bss_2C80[i], lbl_1_bss_2C66[list->mot_link]); - } - (void)i; - } + DataListModel *list; + s16 i; + s16 model; + s16 clear_i; + ModelData *model_ptr; + void *data; + list = model_list; + for (clear_i = 0; clear_i < 13; clear_i++) { + lbl_1_bss_2C80[clear_i] = lbl_1_bss_2C66[clear_i] = -1; + } + for (i = 0; list->datanum != DATA_NUM_LISTEND; list++, i++) { + if (list->type == 0) { + data = HuDataSelHeapReadNum(list->datanum, MEMORY_DEFAULT_NUM, HEAP_DATA); + model = Hu3DModelCreate(data); + lbl_1_bss_2C80[i] = model; + Hu3DModelAttrSet(model, list->attr); + Hu3DModelPosSetV(model, &list->pos); + Hu3DModelRotSetV(model, &list->rot); + Hu3DModelScaleSetV(model, &list->scale); + model_ptr = &Hu3DData[model]; + if (model_ptr->unk_08 != -1) { + lbl_1_bss_2C66[i] = model_ptr->unk_08; + } + } + else if (list->type == 1) { + data = HuDataSelHeapReadNum(list->datanum, MEMORY_DEFAULT_NUM, HEAP_DATA); + lbl_1_bss_2C66[i] = Hu3DJointMotion(lbl_1_bss_2C80[list->mot_link], data); + } + (void)i; + } + list = model_list; + for (i = 0; list->datanum != DATA_NUM_LISTEND; list++, i++) { + if (list->type == 2) { + model = Hu3DModelLink(lbl_1_bss_2C80[list->link]); + lbl_1_bss_2C80[i] = model; + Hu3DModelAttrSet(model, list->attr); + Hu3DModelPosSetV(model, &list->pos); + Hu3DModelRotSetV(model, &list->rot); + Hu3DModelScaleSetV(model, &list->scale); + } + if (list->type == 0 && list->mot_link != -1) { + Hu3DMotionSet(lbl_1_bss_2C80[i], lbl_1_bss_2C66[list->mot_link]); + } + (void)i; + } } void fn_1_26A78(DataListSprite *sprite_list) { - DataListSprite *list; - s16 sprite; - s16 clear_i; - s16 i; - list = sprite_list; - for(clear_i=0; clear_i<29; clear_i++) { - lbl_1_bss_2C2C[clear_i] = -1; - } - for(i=0; list->datanum; i++, list++) { - sprite = espEntry(list->datanum, 100, 0); - lbl_1_bss_2C2C[i] = sprite; - espPosSet(sprite, list->x, list->y); - espColorSet(sprite, list->color.r, list->color.g, list->color.b); - espTPLvlSet(sprite, list->color.a/255.0f); - espPriSet(sprite, list->prio); - espAttrSet(sprite, list->attr); - } + DataListSprite *list; + s16 sprite; + s16 clear_i; + s16 i; + list = sprite_list; + for (clear_i = 0; clear_i < 29; clear_i++) { + lbl_1_bss_2C2C[clear_i] = -1; + } + for (i = 0; list->datanum; i++, list++) { + sprite = espEntry(list->datanum, 100, 0); + lbl_1_bss_2C2C[i] = sprite; + espPosSet(sprite, list->x, list->y); + espColorSet(sprite, list->color.r, list->color.g, list->color.b); + espTPLvlSet(sprite, list->color.a / 255.0f); + espPriSet(sprite, list->prio); + espAttrSet(sprite, list->attr); + } } void fn_1_26BB0(void) { - s16 i; - for(i=0; i<29; i++) { - if(lbl_1_bss_2C2C[i] != -1) { - espKill(lbl_1_bss_2C2C[i]); - } - } + s16 i; + for (i = 0; i < 29; i++) { + if (lbl_1_bss_2C2C[i] != -1) { + espKill(lbl_1_bss_2C2C[i]); + } + } } diff --git a/src/REL/mgmodedll/free_play.c b/src/REL/mgmodedll/free_play.c index 7d314df5..58ffe85e 100644 --- a/src/REL/mgmodedll/free_play.c +++ b/src/REL/mgmodedll/free_play.c @@ -88,7 +88,7 @@ s32 fn_1_6D28(void) else { temp_r28 = lbl_1_bss_2C2C[2]; } - if (lbl_1_bss_4 == 1 || lbl_1_bss_4 == 2) { + if (mgModeEvtNo == 1 || mgModeEvtNo == 2) { mgTypeCurr = fn_1_B5A8(&spA, &sp8); espAttrReset(lbl_1_bss_2C2C[3], HUSPR_ATTR_DISPOFF); espTPLvlSet(lbl_1_bss_2C2C[3], 1.0f); @@ -99,7 +99,7 @@ s32 fn_1_6D28(void) if (lbl_1_bss_2A6 == 0) { espAttrReset(lbl_1_bss_2C2C[4], HUSPR_ATTR_DISPOFF); espPosSet(lbl_1_bss_2C2C[4], 450, 404); - if (lbl_1_bss_4 == 1) { + if (mgModeEvtNo == 1) { fn_1_BFA0(lbl_1_bss_264C[lbl_1_bss_318[mgTypeCurr][0]][spA + sp8]); espAttrReset(lbl_1_bss_2C2C[14], HUSPR_ATTR_DISPOFF); espPosSet(lbl_1_bss_2C2C[14], 450, 348); diff --git a/src/REL/mgmodedll/mgmode.c b/src/REL/mgmodedll/mgmode.c index a0e23802..4e078f7d 100644 --- a/src/REL/mgmodedll/mgmode.c +++ b/src/REL/mgmodedll/mgmode.c @@ -7,6 +7,10 @@ #include "ext_math.h" +#ifndef __MWERKS__ +#include "game/hsfex.h" +#endif + typedef struct camera_view_params { Vec rot; Vec pos; @@ -15,8 +19,8 @@ typedef struct camera_view_params { CameraViewParams lbl_1_data_0[1] = { { { -5, 0, 0 }, { 0, 125, 0 }, 1750 } }; -omObjData *lbl_1_bss_2DC; -Process *lbl_1_bss_2D8; +omObjData *outViewObj; +Process *objman; s32 lbl_1_bss_2D4; s32 lbl_1_bss_2D0; s16 lbl_1_bss_2CE; @@ -31,7 +35,7 @@ Vec lbl_1_bss_28C[2]; Vec lbl_1_bss_274[2]; float lbl_1_bss_26C[2]; StructBss8 lbl_1_bss_8; -s16 lbl_1_bss_4; +s16 mgModeEvtNo; s32 lbl_1_bss_0; void fn_1_464(void); @@ -42,7 +46,7 @@ void ObjectSetup(void) s32 glight; OSReport("******* MG ObjectSetup *********\n"); - lbl_1_bss_2D8 = omInitObjMan(50, 8192); + objman = omInitObjMan(50, 8192); lbl_1_bss_28C[0].x = -70; lbl_1_bss_28C[0].y = 0; lbl_1_bss_28C[0].z = 0; @@ -58,8 +62,8 @@ void ObjectSetup(void) _ClearFlag(0x10008); GWSystem.mg_type = -1; GWSystem.player_curr = 0; - lbl_1_bss_4 = omovlevtno; - if (lbl_1_bss_4 == 0) { + mgModeEvtNo = omovlevtno; + if (mgModeEvtNo == 0) { mgGameStatBackup = GWGameStat; } lbl_1_bss_2CE = -1; @@ -70,9 +74,9 @@ void ObjectSetup(void) Hu3DCameraViewportSet(1, 0, 0, 640, 480, 0, 1); glight = Hu3DGLightCreate(0, 100, 1000, 0, -0.5, -1, 255, 255, 255); Hu3DGLightInfinitytSet(glight); - HuPrcChildCreate(fn_1_464, 100, 12288, 0, lbl_1_bss_2D8); - HuPrcChildCreate(fn_1_54F4, 200, 4096, 0, lbl_1_bss_2D8); - lbl_1_bss_2DC = omAddObjEx(lbl_1_bss_2D8, 32730, 0, 0, -1, omOutView); + HuPrcChildCreate(fn_1_464, 100, 12288, 0, objman); + HuPrcChildCreate(fn_1_54F4, 200, 4096, 0, objman); + outViewObj = omAddObjEx(objman, 32730, 0, 0, -1, omOutView); Hu3DBGColorSet(0, 0, 0); HuWinInit(1); fn_1_279FC(0); @@ -86,7 +90,7 @@ void fn_1_464(void) { s16 i; fn_1_52DC(); - if (lbl_1_bss_4 == 0) { + if (mgModeEvtNo == 0) { HuAudSStreamPlay(12); fn_1_19018(); } @@ -103,7 +107,7 @@ void fn_1_464(void) Center.y = 215; CRot.x = 0; CRot.y = CRot.z = 0; - if (lbl_1_bss_4 == 1 || lbl_1_bss_4 == 2 || lbl_1_bss_4 == 3 || lbl_1_bss_4 == 4) { + if (mgModeEvtNo == 1 || mgModeEvtNo == 2 || mgModeEvtNo == 3 || mgModeEvtNo == 4) { Hu3DModelPosSet(lbl_1_bss_2C80[5], 0, 0, 640); Hu3DMotionSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6]); Hu3DModelAttrSet(lbl_1_bss_2C80[5], HU3D_MOTATTR_LOOP); @@ -136,7 +140,7 @@ void fn_1_6F8(void) { s16 i; s16 time; - if (lbl_1_bss_4 == 1 || lbl_1_bss_4 == 2 || lbl_1_bss_4 == 3 || lbl_1_bss_4 == 4) { + if (mgModeEvtNo == 1 || mgModeEvtNo == 2 || mgModeEvtNo == 3 || mgModeEvtNo == 4) { lbl_1_bss_2A6 = 0; goto freeplay; } @@ -218,7 +222,7 @@ void fn_1_6F8(void) HuPrcVSleep(); } fn_1_25E74(lbl_1_bss_2CC); - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; espAttrSet(lbl_1_bss_2C2C[0], HUSPR_ATTR_DISPOFF); if (lbl_1_bss_2A6 == 0) { freeplay: @@ -253,19 +257,19 @@ void fn_1_DF0(void) Vec posModel; float weight; - if (lbl_1_bss_4 == 1) { + if (mgModeEvtNo == 1) { lbl_1_bss_2A4 = 0; goto freeplay; } - if (lbl_1_bss_4 == 2) { + if (mgModeEvtNo == 2) { lbl_1_bss_2A4 = 1; goto teamplay; } - if (lbl_1_bss_4 == 3) { + if (mgModeEvtNo == 3) { lbl_1_bss_2A4 = 2; goto battle; } - if (lbl_1_bss_4 == 4) { + if (mgModeEvtNo == 4) { lbl_1_bss_2A4 = 3; goto tictactoe; } @@ -386,7 +390,7 @@ void fn_1_DF0(void) } HuWinPushKeySet(lbl_1_bss_2CE, PAD_BUTTON_A | PAD_BUTTON_B); } - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; pos2D = lbl_1_data_40[0]; pos2D.z = 800; Hu3D2Dto3D(&pos2D, 1, &pos3D); @@ -429,7 +433,7 @@ s32 fn_1_1B0C(void) ModelData *modelP; s16 temp_r29 = 0; - if (lbl_1_bss_4 == 1) { + if (mgModeEvtNo == 1) { pos2D.x = 60; pos2D.y = 70; pos2D.z = 1000; @@ -480,12 +484,12 @@ s32 fn_1_1B0C(void) } mgPracticeEnableF = 1; if (fn_1_6D28()) { - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; goto charsel; } exit: mgPracticeEnableF = 0; - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; pos2D.x = 168; pos2D.y = 190; pos2D.z = 800; @@ -518,7 +522,7 @@ s32 fn_1_21C4(void) s16 i; ModelData *modelP; s16 temp_r29 = 1; - if (lbl_1_bss_4 == 2) { + if (mgModeEvtNo == 2) { pos2D.x = 60; pos2D.y = 70; pos2D.z = 1000; @@ -570,12 +574,12 @@ s32 fn_1_21C4(void) } mgPracticeEnableF = 1; if (fn_1_6D28()) { - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; goto charsel; } exit: mgPracticeEnableF = 0; - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; pos2D.x = 168; pos2D.y = 190; pos2D.z = 800; @@ -611,7 +615,7 @@ s32 fn_1_2940(void) for (i = 0; i < 4; i++) { Hu3DModelLayerSet(lbl_1_bss_2C80[i + 9], 2); } - if (lbl_1_bss_4 == 3) { + if (mgModeEvtNo == 3) { OSReport("Eliminate Play STart\n"); pos2D.x = 50; pos2D.y = 70; @@ -665,7 +669,7 @@ s32 fn_1_2940(void) } if (fn_1_E72C() == 0) { - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; goto charsel; } exit: @@ -673,7 +677,7 @@ exit: for (i = 0; i < 4; i++) { Hu3DModelLayerSet(lbl_1_bss_2C80[i + 9], 3); } - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; pos2D.x = 168; pos2D.y = 190; pos2D.z = 800; @@ -706,7 +710,7 @@ s32 fn_1_3150(void) s16 i; ModelData *modelP; s16 temp_r29 = 1; - if (lbl_1_bss_4 == 4) { + if (mgModeEvtNo == 4) { pos2D.x = 60; pos2D.y = 70; pos2D.z = 1000; @@ -759,12 +763,12 @@ s32 fn_1_3150(void) } if (fn_1_13418() == 0) { - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; goto charsel; } exit: HuDataDirClose(DATADIR_INSTPIC); - lbl_1_bss_4 = 0; + mgModeEvtNo = 0; pos2D.x = 168; pos2D.y = 190; pos2D.z = 800; @@ -1130,7 +1134,7 @@ void fn_1_52DC(void) lbl_1_bss_8.unk10 = lbl_1_bss_2C66[6]; lbl_1_bss_8.unk14 = lbl_1_bss_2C66[7]; lbl_1_bss_8.unk18 = lbl_1_bss_2C66[6]; - fn_1_18DF8(lbl_1_bss_2D8, &lbl_1_bss_8); + fn_1_18DF8(objman, &lbl_1_bss_8); Hu3DModelShadowSet(lbl_1_bss_2C80[5]); Hu3DModelShadowMapSet(lbl_1_bss_2C80[0]); } diff --git a/src/REL/mgmodedll/record.c b/src/REL/mgmodedll/record.c index 974cc66e..0c1bb43f 100644 --- a/src/REL/mgmodedll/record.c +++ b/src/REL/mgmodedll/record.c @@ -13,17 +13,10 @@ void fn_1_DE3C(void); void fn_1_DFB8(void); void fn_1_E02C(float x, float y, s16 recordNo); -s16 lbl_1_bss_37C[6]; -s16 lbl_1_bss_370[6]; +static s16 lbl_1_bss_37C[6]; +static s16 lbl_1_bss_370[6]; -s16 lbl_1_data_120[6][3] = { - 0, 2, 13, - 1, 0, 15, - 2, 1, 35, - 3, 2, 40, - 5, 1, 51, - 10, 1, 62 -}; +s16 mgRecordIdxTbl[6][3] = { 0, 2, 13, 1, 0, 15, 2, 1, 35, 3, 2, 40, 5, 1, 51, 10, 1, 62 }; void fn_1_D8D0(void) { @@ -32,48 +25,48 @@ void fn_1_D8D0(void) fn_1_DE3C(); espAttrReset(lbl_1_bss_2C2C[3], HUSPR_ATTR_DISPOFF); espTPLvlSet(lbl_1_bss_2C2C[3], 0); - for(i=0; i<=20; i++) { - espTPLvlSet(lbl_1_bss_2C2C[3], i/20.0); + for (i = 0; i <= 20; i++) { + espTPLvlSet(lbl_1_bss_2C2C[3], i / 20.0); HuPrcVSleep(); } - for(i=0; i<=20; i++) { - weight = i/20.0; + for (i = 0; i <= 20; i++) { + weight = i / 20.0; espAttrReset(lbl_1_bss_2C2C[27], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[27], 288, -100.0+(164.0*sind(weight*90.0f))); + espPosSet(lbl_1_bss_2C2C[27], 288, -100.0 + (164.0 * sind(weight * 90.0f))); espAttrReset(lbl_1_bss_2C2C[28], HUSPR_ATTR_DISPOFF); espTPLvlSet(lbl_1_bss_2C2C[28], weight); espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[20], ((1-sind(weight*90.0f))*400)+288, 424); + espPosSet(lbl_1_bss_2C2C[20], ((1 - sind(weight * 90.0f)) * 400) + 288, 424); HuPrcVSleep(); } - for(i=0; i<6; i++) { - fn_1_E02C(288, (i*42)+150.0f, i); + for (i = 0; i < 6; i++) { + fn_1_E02C(288, (i * 42) + 150.0f, i); HuPrcVSleep(); } - while(1) { - if(HuPadBtnDown[0] & PAD_BUTTON_B) { + while (1) { + if (HuPadBtnDown[0] & PAD_BUTTON_B) { break; } HuPrcVSleep(); } HuAudFXPlay(3); - for(i=0; i<6; i++) { + for (i = 0; i < 6; i++) { fn_1_E02C(1288, 0, i); HuPrcVSleep(); } fn_1_DFB8(); - for(i=0; i<=20; i++) { - weight = i/20.0; + for (i = 0; i <= 20; i++) { + weight = i / 20.0; espAttrReset(lbl_1_bss_2C2C[27], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[27], 288, -100.0+(164.0*cosd(weight*90.0f))); + espPosSet(lbl_1_bss_2C2C[27], 288, -100.0 + (164.0 * cosd(weight * 90.0f))); espAttrReset(lbl_1_bss_2C2C[28], HUSPR_ATTR_DISPOFF); - espTPLvlSet(lbl_1_bss_2C2C[28], 1.0-weight); + espTPLvlSet(lbl_1_bss_2C2C[28], 1.0 - weight); espAttrReset(lbl_1_bss_2C2C[20], HUSPR_ATTR_DISPOFF); - espPosSet(lbl_1_bss_2C2C[20], ((1-cosd(weight*90.0f))*400)+288, 424); + espPosSet(lbl_1_bss_2C2C[20], ((1 - cosd(weight * 90.0f)) * 400) + 288, 424); HuPrcVSleep(); } - for(i=0; i<=10; i++) { - espTPLvlSet(lbl_1_bss_2C2C[3], 1-(i/10.0)); + for (i = 0; i <= 10; i++) { + espTPLvlSet(lbl_1_bss_2C2C[3], 1 - (i / 10.0)); HuPrcVSleep(); } } @@ -82,15 +75,15 @@ void fn_1_DE3C(void) { AnimData *numAnim = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 53), MEMORY_DEFAULT_NUM)); s16 i; - for(i=0; i<6; i++) { - s16 window = HuWinCreate(0, (i*24), 268, 32, 0); + for (i = 0; i < 6; i++) { + s16 window = HuWinCreate(0, (i * 24), 268, 32, 0); s16 j; lbl_1_bss_37C[i] = window; HuWinBGTPLvlSet(window, 0); HuWinMesSpeedSet(window, 0); HuWinDispOff(window); lbl_1_bss_370[i] = HuSprGrpCreate(8); - for(j=0; j<8; j++) { + for (j = 0; j < 8; j++) { s16 sprite = HuSprCreate(numAnim, 10, 0); HuSprGrpMemberSet(lbl_1_bss_370[i], j, sprite); (void)sprite; @@ -102,7 +95,7 @@ void fn_1_DE3C(void) void fn_1_DFB8(void) { s16 i; - for(i=0; i<6; i++) { + for (i = 0; i < 6; i++) { HuWinKill(lbl_1_bss_37C[i]); HuSprGrpKill(lbl_1_bss_370[i]); } @@ -111,112 +104,117 @@ void fn_1_DFB8(void) void fn_1_E02C(float x, float y, s16 recordNo) { s32 sprGrpId = lbl_1_bss_370[recordNo]; - s32 value = GWMGRecordGet(lbl_1_data_120[recordNo][0]); + s32 value = GWMGRecordGet(mgRecordIdxTbl[recordNo][0]); s32 i; s16 mgNo; float xOfs; - - if(lbl_1_data_120[recordNo][2] != -1) { - mgNo = omMgIndexGet(lbl_1_data_120[recordNo][2]); - if(!GWMGAvailGet(mgNo+401)) { + + if (mgRecordIdxTbl[recordNo][2] != -1) { + mgNo = omMgIndexGet(mgRecordIdxTbl[recordNo][2]); + if (!GWMGAvailGet(mgNo + 401)) { mgNo = -1; - } else { + } + else { HuWinMesSet(lbl_1_bss_37C[recordNo], mgInfoTbl[mgNo].name_mess); } - } else { + } + else { mgNo = -1; } HuWinDispOn(lbl_1_bss_37C[recordNo]); - HuWinPosSet(lbl_1_bss_37C[recordNo], x-220, y-24); - if(mgNo == -1) { + HuWinPosSet(lbl_1_bss_37C[recordNo], x - 220, y - 24); + if (mgNo == -1) { HuWinMesSet(lbl_1_bss_37C[recordNo], MAKE_MESSID(35, 0)); - for(i=0; i<8; i++) { + for (i = 0; i < 8; i++) { HuSprBankSet(sprGrpId, i, 0); - HuSprPosSet(sprGrpId, i, i*16, 0); + HuSprPosSet(sprGrpId, i, i * 16, 0); HuSprAttrReset(sprGrpId, i, HUSPR_ATTR_DISPOFF); } xOfs = 128; - } else { + } + else { s32 memberNum; s32 digitValue; - if(lbl_1_data_120[recordNo][1] == 0) { + if (mgRecordIdxTbl[recordNo][1] == 0) { memberNum = 0; - if(value > 9999) { + if (value > 9999) { value = 9999; } - digitValue = value/1000; - if(digitValue != 0) { + digitValue = value / 1000; + if (digitValue != 0) { HuSprBankSet(sprGrpId, memberNum, digitValue); - value -= digitValue*1000; + value -= digitValue * 1000; memberNum++; } - digitValue = value/100; - if(digitValue != 0 || memberNum != 0) { + digitValue = value / 100; + if (digitValue != 0 || memberNum != 0) { HuSprBankSet(sprGrpId, memberNum, digitValue); - value -= digitValue*100; + value -= digitValue * 100; memberNum++; } - digitValue = value/10; - if(digitValue != 0 || memberNum != 0) { + digitValue = value / 10; + if (digitValue != 0 || memberNum != 0) { HuSprBankSet(sprGrpId, memberNum, digitValue); - value -= digitValue*10; + value -= digitValue * 10; memberNum++; } HuSprBankSet(sprGrpId, memberNum, value); memberNum++; - for(i=0; i<8; i++) { + for (i = 0; i < 8; i++) { HuSprAttrSet(sprGrpId, i, HUSPR_ATTR_DISPOFF); } - for(i=0; ipos; sp18.x = -300; sp18.y = 0; sp18.z = 680; VECSubtract(&sp18, &sp24, &sp18); - temp_f29 = (180+atan2d(sp18.z, sp18.x))-360; - for(temp_r31=0; temp_r31<=60; temp_r31++) { - if(temp_r31 <= 50) { - temp_f31 = 1.0-sind((temp_r31/50.0)*90.0); - HuSprGrpPosSet(lbl_1_bss_3A8, 288, 256+(-400*temp_f31)); - } else { - temp_f31 = cosd(((temp_r31-50.0)/10.0)*90.0); - HuSprGrpPosSet(lbl_1_bss_3A8, 288, 240+(16*temp_f31)); + temp_f29 = (180 + atan2d(sp18.z, sp18.x)) - 360; + for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { + if (temp_r31 <= 50) { + temp_f31 = 1.0 - sind((temp_r31 / 50.0) * 90.0); + HuSprGrpPosSet(lbl_1_bss_3A8, 288, 256 + (-400 * temp_f31)); } - if(temp_r31 > 20 && temp_r31 <= 50) { - temp_f31 = 1.0-sind(((temp_r31-20)/30.0)*90.0); - HuSprGrpPosSet(lbl_1_bss_3AA, 434+(400*temp_f31), 65); - } else if(temp_r31 > 50) { - temp_f31 = cosd(((temp_r31-50.0)/10.0)*90.0); - HuSprGrpPosSet(lbl_1_bss_3AA, 450+(-16*temp_f31), 65); + else { + temp_f31 = cosd(((temp_r31 - 50.0) / 10.0) * 90.0); + HuSprGrpPosSet(lbl_1_bss_3A8, 288, 240 + (16 * temp_f31)); } - if(temp_r31 == 30) { + if (temp_r31 > 20 && temp_r31 <= 50) { + temp_f31 = 1.0 - sind(((temp_r31 - 20) / 30.0) * 90.0); + HuSprGrpPosSet(lbl_1_bss_3AA, 434 + (400 * temp_f31), 65); + } + else if (temp_r31 > 50) { + temp_f31 = cosd(((temp_r31 - 50.0) / 10.0) * 90.0); + HuSprGrpPosSet(lbl_1_bss_3AA, 450 + (-16 * temp_f31), 65); + } + if (temp_r31 == 30) { Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[7], 0, 8, HU3D_MOTATTR_LOOP); } - if(temp_r31 > 30) { - temp_f31 = (temp_r31-30.0)/30.0; + if (temp_r31 > 30) { + temp_f31 = (temp_r31 - 30.0) / 30.0; VECScale(&sp18, &spC, temp_f31); VECAdd(&sp24, &spC, &spC); Hu3DModelPosSetV(lbl_1_bss_2C80[5], &spC); - if(temp_r31 <= 40) { - temp_f31 = (temp_r31-20)/10.0; - Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f29*temp_f31, 0); + if (temp_r31 <= 40) { + temp_f31 = (temp_r31 - 20) / 10.0; + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f29 * temp_f31, 0); } } HuPrcVSleep(); } Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 8, HU3D_MOTATTR_LOOP); - for(temp_r31=0; temp_r31<=10; temp_r31++) { - temp_f31 = temp_r31/10.0; - Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f29+((20.0f-temp_f29)*temp_f31), 0); + for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { + temp_f31 = temp_r31 / 10.0; + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f29 + ((20.0f - temp_f29) * temp_f31), 0); HuPrcVSleep(); } - for(temp_r31=0; temp_r31<3; temp_r31++) { - for(temp_r30=0; temp_r30<3; temp_r30++) { + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { mgTicTacToeGrid[temp_r31][temp_r30] = 0; } } } lbl_1_bss_3B8 = fn_1_25CA8(0x280019); - if(lbl_1_data_168 == -1) { + if (lbl_1_data_168 == -1) { lbl_1_data_168 = fn_1_2530C(0, 0, 0); } fn_1_25838(lbl_1_data_168, 0x280015, -1, -1); @@ -170,63 +151,80 @@ s32 fn_1_13418(void) HuSprTPLvlSet(lbl_1_bss_3A8, 13, 0.5f); temp_f30 = 0; sp8[0] = sp8[1] = 0; - for(temp_r31=0; temp_r31<9; temp_r31++) { - mgTicTacToeGrid[temp_r31%3][temp_r31/3] &= 0x3; + for (temp_r31 = 0; temp_r31 < 9; temp_r31++) { + mgTicTacToeGrid[temp_r31 % 3][temp_r31 / 3] &= 0x3; } - while(1) { - for(temp_r31=0; temp_r31<2; temp_r31++) { - if(sp8[temp_r31] == 0) { + while (1) { + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + if (sp8[temp_r31] == 0) { sp8[temp_r31] = fn_1_15E98(temp_r31, 1); - if(sp8[temp_r31] == -1) { + if (sp8[temp_r31] == -1) { sp8[temp_r31] = 0; goto else_case; - } else if(sp8[temp_r31] == 1) { - HuSprAttrSet(lbl_1_bss_3A8, temp_r31+12, HUSPR_ATTR_DISPOFF); - HuSprAttrReset(lbl_1_bss_3A8, temp_r31+14, HUSPR_ATTR_DISPOFF); - if(lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { - HuSprPosSet(lbl_1_bss_3A8, temp_r31+14, ((lbl_1_bss_3B4[temp_r31]%3)*56)-56, ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); - } else { - HuSprPosSet(lbl_1_bss_3A8, temp_r31+14, ((lbl_1_bss_3B4[temp_r31]%3)*56)-60+(temp_r31*8), ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); - } - } else { - else_case: - if(lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { - HuSprPosSet(lbl_1_bss_3A8, temp_r31+12, ((lbl_1_bss_3B4[temp_r31]%3)*56)-56, ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); - } else { - HuSprPosSet(lbl_1_bss_3A8, temp_r31+12, ((lbl_1_bss_3B4[temp_r31]%3)*56)-60+(temp_r31*8), ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); - } - HuSprTPLvlSet(lbl_1_bss_3A8, temp_r31+12, 0.7+(0.2*sind(temp_f30+(temp_r31*180)))); - HuSprPriSet(lbl_1_bss_3A8, temp_r31+12, 150); } - } else { - sp8[temp_r31] = fn_1_15E98(temp_r31, 0); - if(sp8[temp_r31] == -1) { - sp8[temp_r31] = 0; - HuSprAttrReset(lbl_1_bss_3A8, temp_r31+12, HUSPR_ATTR_DISPOFF); - HuSprAttrSet(lbl_1_bss_3A8, temp_r31+14, HUSPR_ATTR_DISPOFF); - if(lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { - HuSprPosSet(lbl_1_bss_3A8, temp_r31+12, ((lbl_1_bss_3B4[temp_r31]%3)*56)-56, ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); - } else { - HuSprPosSet(lbl_1_bss_3A8, temp_r31+12, ((lbl_1_bss_3B4[temp_r31]%3)*56)-60+(temp_r31*8), ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); + else if (sp8[temp_r31] == 1) { + HuSprAttrSet(lbl_1_bss_3A8, temp_r31 + 12, HUSPR_ATTR_DISPOFF); + HuSprAttrReset(lbl_1_bss_3A8, temp_r31 + 14, HUSPR_ATTR_DISPOFF); + if (lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { + HuSprPosSet( + lbl_1_bss_3A8, temp_r31 + 14, ((lbl_1_bss_3B4[temp_r31] % 3) * 56) - 56, ((lbl_1_bss_3B4[temp_r31] / 3) * 56) - 56); } - } else { - HuSprTPLvlSet(lbl_1_bss_3A8, temp_r31+12, 1.0f); - HuSprPriSet(lbl_1_bss_3A8, temp_r31+12, temp_r31+180); - if(lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { - HuSprPosSet(lbl_1_bss_3A8, temp_r31+14, ((lbl_1_bss_3B4[temp_r31]%3)*56)-56, ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); - } else { - HuSprPosSet(lbl_1_bss_3A8, temp_r31+14, ((lbl_1_bss_3B4[temp_r31]%3)*56)-60+(temp_r31*8), ((lbl_1_bss_3B4[temp_r31]/3)*56)-56); + else { + HuSprPosSet(lbl_1_bss_3A8, temp_r31 + 14, ((lbl_1_bss_3B4[temp_r31] % 3) * 56) - 60 + (temp_r31 * 8), + ((lbl_1_bss_3B4[temp_r31] / 3) * 56) - 56); + } + } + else { + else_case: + if (lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { + HuSprPosSet( + lbl_1_bss_3A8, temp_r31 + 12, ((lbl_1_bss_3B4[temp_r31] % 3) * 56) - 56, ((lbl_1_bss_3B4[temp_r31] / 3) * 56) - 56); + } + else { + HuSprPosSet(lbl_1_bss_3A8, temp_r31 + 12, ((lbl_1_bss_3B4[temp_r31] % 3) * 56) - 60 + (temp_r31 * 8), + ((lbl_1_bss_3B4[temp_r31] / 3) * 56) - 56); + } + HuSprTPLvlSet(lbl_1_bss_3A8, temp_r31 + 12, 0.7 + (0.2 * sind(temp_f30 + (temp_r31 * 180)))); + HuSprPriSet(lbl_1_bss_3A8, temp_r31 + 12, 150); + } + } + else { + sp8[temp_r31] = fn_1_15E98(temp_r31, 0); + if (sp8[temp_r31] == -1) { + sp8[temp_r31] = 0; + HuSprAttrReset(lbl_1_bss_3A8, temp_r31 + 12, HUSPR_ATTR_DISPOFF); + HuSprAttrSet(lbl_1_bss_3A8, temp_r31 + 14, HUSPR_ATTR_DISPOFF); + if (lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { + HuSprPosSet( + lbl_1_bss_3A8, temp_r31 + 12, ((lbl_1_bss_3B4[temp_r31] % 3) * 56) - 56, ((lbl_1_bss_3B4[temp_r31] / 3) * 56) - 56); + } + else { + HuSprPosSet(lbl_1_bss_3A8, temp_r31 + 12, ((lbl_1_bss_3B4[temp_r31] % 3) * 56) - 60 + (temp_r31 * 8), + ((lbl_1_bss_3B4[temp_r31] / 3) * 56) - 56); + } + } + else { + HuSprTPLvlSet(lbl_1_bss_3A8, temp_r31 + 12, 1.0f); + HuSprPriSet(lbl_1_bss_3A8, temp_r31 + 12, temp_r31 + 180); + if (lbl_1_bss_3B4[0] != lbl_1_bss_3B4[1]) { + HuSprPosSet( + lbl_1_bss_3A8, temp_r31 + 14, ((lbl_1_bss_3B4[temp_r31] % 3) * 56) - 56, ((lbl_1_bss_3B4[temp_r31] / 3) * 56) - 56); + } + else { + HuSprPosSet(lbl_1_bss_3A8, temp_r31 + 14, ((lbl_1_bss_3B4[temp_r31] % 3) * 56) - 60 + (temp_r31 * 8), + ((lbl_1_bss_3B4[temp_r31] / 3) * 56) - 56); } } } } - if(sp8[0] == 1 && sp8[1] == 1) { + if (sp8[0] == 1 && sp8[1] == 1) { HuSprTPLvlSet(lbl_1_bss_3A8, 12, 1.0f); HuSprTPLvlSet(lbl_1_bss_3A8, 13, 1.0f); break; - } else { + } + else { temp_f30 += 10.0f; - if(temp_f30 > 360.0f) { + if (temp_f30 > 360.0f) { temp_f30 -= 360.0f; } HuPrcVSleep(); @@ -237,14 +235,14 @@ s32 fn_1_13418(void) fn_1_25838(lbl_1_data_168, 0x280010, -1, -1); HuSprTPLvlSet(lbl_1_bss_3A8, 24, 1.0f); mgTypeCurr = 2; - for(temp_r30=0; temp_r30<35;) { - for(temp_r31=0; temp_r31= 35) { + if (temp_r30 >= 35) { break; } } @@ -256,33 +254,35 @@ s32 fn_1_13418(void) HuWinInsertMesSet(lbl_1_data_168, mgInfoTbl[lbl_1_bss_2E4].name_mess, 0); HuWinAttrSet(lbl_1_data_168, 16); fn_1_25838(lbl_1_data_168, 0x280011, -1, -1); - repeat_mess: +repeat_mess: fn_1_25838(lbl_1_data_168, 0x280029, -1, -1); temp_r29 = HuWinChoiceGet(lbl_1_data_168, 0); - if(temp_r29 == 0) { + if (temp_r29 == 0) { _ClearFlag(11); - } else if(temp_r29 == 1) { + } + else if (temp_r29 == 1) { HuWinInsertMesSet(lbl_1_data_168, MAKE_MESSID(0x28, 40), 0); fn_1_25838(lbl_1_data_168, 0x280026, -1, -1); temp_r29 = HuWinChoiceGet(lbl_1_data_168, 1); - if(temp_r29 == 1) { + if (temp_r29 == 1) { goto repeat_mess; } fn_1_271B4(-1, 0, 0); - for(temp_r31=1; temp_r31<=10; temp_r31++) { - HuSprTPLvlSet(lbl_1_bss_3A8, 24, 1-(temp_r31/10.0)); + for (temp_r31 = 1; temp_r31 <= 10; temp_r31++) { + HuSprTPLvlSet(lbl_1_bss_3A8, 24, 1 - (temp_r31 / 10.0)); HuPrcVSleep(); } fn_1_16438(); return 1; - } else { + } + else { _SetFlag(11); } GWSystem.mg_next = lbl_1_bss_2E4; HuDataDirClose(DATADIR_INSTPIC); fn_1_2783C(4); - while(1) { + while (1) { HuPrcVSleep(); } } @@ -302,20 +302,20 @@ void fn_1_14CFC(void) s16 temp_r21; s16 temp_r20; s16 sp8; - for(temp_r31=0; temp_r31<4; temp_r31++) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { lbl_1_bss_2C1C[temp_r31] = temp_r31; } - for(temp_r31=0; temp_r31<4; temp_r31++) { - for(temp_r27=0; temp_r27<3-temp_r31; temp_r27++) { - if(GWPlayerCfg[lbl_1_bss_2C1C[temp_r27]].group > GWPlayerCfg[lbl_1_bss_2C1C[temp_r27+1]].group) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + for (temp_r27 = 0; temp_r27 < 3 - temp_r31; temp_r27++) { + if (GWPlayerCfg[lbl_1_bss_2C1C[temp_r27]].group > GWPlayerCfg[lbl_1_bss_2C1C[temp_r27 + 1]].group) { temp_r24 = lbl_1_bss_2C1C[temp_r27]; - lbl_1_bss_2C1C[temp_r27] = lbl_1_bss_2C1C[temp_r27+1]; - lbl_1_bss_2C1C[temp_r27+1] = temp_r24; + lbl_1_bss_2C1C[temp_r27] = lbl_1_bss_2C1C[temp_r27 + 1]; + lbl_1_bss_2C1C[temp_r27 + 1] = temp_r24; } } } - if(lbl_1_bss_3A8 == 0) { - + if (lbl_1_bss_3A8 == 0) { + lbl_1_bss_3A8 = temp_r30 = HuSprGrpCreate(25); temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 84), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r28, 200, 0); @@ -333,52 +333,55 @@ void fn_1_14CFC(void) HuSprPosSet(temp_r30, 2, temp_r26, temp_r25); temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 87), MEMORY_DEFAULT_NUM)); temp_r22 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 88), MEMORY_DEFAULT_NUM)); - for(temp_r31=temp_r27=0; temp_r31<9; temp_r31++) { - if(mgTicTacToeGrid[temp_r31%3][temp_r31/3] & 0xF) { - temp_r24 = mgTicTacToeGrid[temp_r31%3][temp_r31/3]; - if(temp_r24 & 0x4) { + for (temp_r31 = temp_r27 = 0; temp_r31 < 9; temp_r31++) { + if (mgTicTacToeGrid[temp_r31 % 3][temp_r31 / 3] & 0xF) { + temp_r24 = mgTicTacToeGrid[temp_r31 % 3][temp_r31 / 3]; + if (temp_r24 & 0x4) { temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 91), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r23, 180, 0); HuSprGrpMemberSet(temp_r30, 14, temp_r29); - if(temp_r24 & 0x8) { - HuSprPosSet(temp_r30, 14, temp_r26+((temp_r31%3)*56)-60, temp_r25+((temp_r31/3)*56)-56); - } else { - HuSprPosSet(temp_r30, 14, temp_r26+((temp_r31%3)*56)-56, temp_r25+((temp_r31/3)*56)-56); + if (temp_r24 & 0x8) { + HuSprPosSet(temp_r30, 14, temp_r26 + ((temp_r31 % 3) * 56) - 60, temp_r25 + ((temp_r31 / 3) * 56) - 56); + } + else { + HuSprPosSet(temp_r30, 14, temp_r26 + ((temp_r31 % 3) * 56) - 56, temp_r25 + ((temp_r31 / 3) * 56) - 56); } temp_r27++; } - if(temp_r24 & 0x8) { + if (temp_r24 & 0x8) { temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 92), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r23, 180, 0); HuSprGrpMemberSet(temp_r30, 15, temp_r29); - if(temp_r24 & 0x4) { - HuSprPosSet(temp_r30, 15, temp_r26+((temp_r31%3)*56)-48, temp_r25+((temp_r31/3)*56)-56); - } else { - HuSprPosSet(temp_r30, 15, temp_r26+((temp_r31%3)*56)-56, temp_r25+((temp_r31/3)*56)-56); + if (temp_r24 & 0x4) { + HuSprPosSet(temp_r30, 15, temp_r26 + ((temp_r31 % 3) * 56) - 48, temp_r25 + ((temp_r31 / 3) * 56) - 56); + } + else { + HuSprPosSet(temp_r30, 15, temp_r26 + ((temp_r31 % 3) * 56) - 56, temp_r25 + ((temp_r31 / 3) * 56) - 56); } temp_r27++; } - if(temp_r24 & 0x3) { - if(mgTicTacToeGrid[temp_r31%3][temp_r31/3] & 0x1) { + if (temp_r24 & 0x3) { + if (mgTicTacToeGrid[temp_r31 % 3][temp_r31 / 3] & 0x1) { temp_r29 = HuSprCreate(temp_r28, 180, 0); - } else { + } + else { temp_r29 = HuSprCreate(temp_r22, 180, 0); } - HuSprGrpMemberSet(temp_r30, temp_r31+3, temp_r29); - HuSprPosSet(temp_r30, temp_r31+3, temp_r26+((temp_r31%3)*56)-56, temp_r25+((temp_r31/3)*56)-56); + HuSprGrpMemberSet(temp_r30, temp_r31 + 3, temp_r29); + HuSprPosSet(temp_r30, temp_r31 + 3, temp_r26 + ((temp_r31 % 3) * 56) - 56, temp_r25 + ((temp_r31 / 3) * 56) - 56); } } } - if(temp_r27 == 0) { + if (temp_r27 == 0) { temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 91), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r23, 150, 0); HuSprGrpMemberSet(temp_r30, 14, temp_r29); - HuSprPosSet(temp_r30, 14, temp_r26+((temp_r31%3)*56)-56, temp_r25+((temp_r31/3)*56)-56); + HuSprPosSet(temp_r30, 14, temp_r26 + ((temp_r31 % 3) * 56) - 56, temp_r25 + ((temp_r31 / 3) * 56) - 56); HuSprAttrSet(temp_r30, 14, HUSPR_ATTR_DISPOFF); temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 92), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r23, 150, 0); HuSprGrpMemberSet(temp_r30, 15, temp_r29); - HuSprPosSet(temp_r30, 15, temp_r26+((temp_r31%3)*56)-56, temp_r25+((temp_r31/3)*56)-56); + HuSprPosSet(temp_r30, 15, temp_r26 + ((temp_r31 % 3) * 56) - 56, temp_r25 + ((temp_r31 / 3) * 56) - 56); HuSprAttrSet(temp_r30, 15, HUSPR_ATTR_DISPOFF); } temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 89), MEMORY_DEFAULT_NUM)); @@ -391,14 +394,14 @@ void fn_1_14CFC(void) HuSprAttrSet(temp_r30, 13, HUSPR_ATTR_DISPOFF); temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 101), MEMORY_DEFAULT_NUM)); temp_r22 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 102), MEMORY_DEFAULT_NUM)); - for(temp_r31=0; temp_r31<4; temp_r31++) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { temp_r29 = HuSprCreate(temp_r28, 130, temp_r31); - HuSprGrpMemberSet(temp_r30, (temp_r31*2)+16, temp_r29); - HuSprPosSet(temp_r30, (temp_r31*2)+16, ((temp_r31%2)*314)-155, ((temp_r31/2)*185)-110); + HuSprGrpMemberSet(temp_r30, (temp_r31 * 2) + 16, temp_r29); + HuSprPosSet(temp_r30, (temp_r31 * 2) + 16, ((temp_r31 % 2) * 314) - 155, ((temp_r31 / 2) * 185) - 110); temp_r29 = HuSprCreate(temp_r22, 135, temp_r31); - HuSprGrpMemberSet(temp_r30, (temp_r31*2)+17, temp_r29); - HuSprTPLvlSet(temp_r30, (temp_r31*2)+17, 0.5f); - HuSprPosSet(temp_r30, (temp_r31*2)+17, ((temp_r31%2)*314)-155, ((temp_r31/2)*185)-102); + HuSprGrpMemberSet(temp_r30, (temp_r31 * 2) + 17, temp_r29); + HuSprTPLvlSet(temp_r30, (temp_r31 * 2) + 17, 0.5f); + HuSprPosSet(temp_r30, (temp_r31 * 2) + 17, ((temp_r31 % 2) * 314) - 155, ((temp_r31 / 2) * 185) - 102); } temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 37), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r28, 150, 0); @@ -407,8 +410,8 @@ void fn_1_14CFC(void) HuSprScaleSet(temp_r30, 24, 0.9f, 0.9f); HuSprTPLvlSet(temp_r30, 24, 0); } - if(lbl_1_bss_3AA == 0) { - + if (lbl_1_bss_3AA == 0) { + lbl_1_bss_3AA = temp_r30 = HuSprGrpCreate(10); temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 15), MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r28, 200, 0); @@ -418,22 +421,23 @@ void fn_1_14CFC(void) temp_r29 = HuSprCreate(temp_r28, 190, 0); HuSprGrpMemberSet(temp_r30, 1, temp_r29); HuSprPosSet(temp_r30, 1, 0, 0); - for(temp_r31=0; temp_r31<4; temp_r31++) { + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { temp_r20 = lbl_1_bss_2C24[temp_r31] = GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].character; - temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 16)+temp_r20, MEMORY_DEFAULT_NUM)); + temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 16) + temp_r20, MEMORY_DEFAULT_NUM)); temp_r29 = HuSprCreate(temp_r28, 190, 0); - HuSprGrpMemberSet(temp_r30, (temp_r31*2)+2, temp_r29); - HuSprPosSet(temp_r30, (temp_r31*2)+2, lbl_1_data_19C[temp_r31], 0); - if(sp8 = GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].iscom) { + HuSprGrpMemberSet(temp_r30, (temp_r31 * 2) + 2, temp_r29); + HuSprPosSet(temp_r30, (temp_r31 * 2) + 2, lbl_1_data_19C[temp_r31], 0); + if (sp8 = GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].iscom) { temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 39), MEMORY_DEFAULT_NUM)); temp_r21 = GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].diff; - } else { + } + else { temp_r28 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 38), MEMORY_DEFAULT_NUM)); temp_r21 = GWPlayerCfg[lbl_1_bss_2C1C[temp_r31]].pad_idx; } temp_r29 = HuSprCreate(temp_r28, 180, temp_r21); - HuSprGrpMemberSet(temp_r30, (temp_r31*2)+3, temp_r29); - HuSprPosSet(temp_r30, (temp_r31*2)+3, lbl_1_data_19C[temp_r31], 24); + HuSprGrpMemberSet(temp_r30, (temp_r31 * 2) + 3, temp_r29); + HuSprPosSet(temp_r30, (temp_r31 * 2) + 3, lbl_1_data_19C[temp_r31], 24); } HuSprGrpPosSet(temp_r30, 800, 240); } @@ -450,70 +454,74 @@ s32 fn_1_15E98(s16 arg0, s32 arg1) s16 temp_r24; s16 temp_r23; temp_r28 = 4; - for(temp_r27=0; temp_r27<4; temp_r27++) { - if(arg0 == GWPlayerCfg[temp_r27].group && GWPlayerCfg[temp_r27].iscom == 0 && temp_r28 > GWPlayerCfg[temp_r27].pad_idx) { + for (temp_r27 = 0; temp_r27 < 4; temp_r27++) { + if (arg0 == GWPlayerCfg[temp_r27].group && GWPlayerCfg[temp_r27].iscom == 0 && temp_r28 > GWPlayerCfg[temp_r27].pad_idx) { temp_r28 = GWPlayerCfg[temp_r27].pad_idx; } } - if(temp_r28 == 4) { - if(arg1 == 0) { + if (temp_r28 == 4) { + if (arg1 == 0) { return 1; } - temp_r30 = lbl_1_bss_3B4[arg0]%3; - temp_r29 = lbl_1_bss_3B4[arg0]/3; - temp_r24 = lbl_1_bss_3B0[arg0]%3; - temp_r23 = lbl_1_bss_3B0[arg0]/3; - if(--lbl_1_bss_3AC[arg0] != 0) { + temp_r30 = lbl_1_bss_3B4[arg0] % 3; + temp_r29 = lbl_1_bss_3B4[arg0] / 3; + temp_r24 = lbl_1_bss_3B0[arg0] % 3; + temp_r23 = lbl_1_bss_3B0[arg0] / 3; + if (--lbl_1_bss_3AC[arg0] != 0) { return 0; } - if(temp_r30 == temp_r24 && temp_r29 == temp_r23) { + if (temp_r30 == temp_r24 && temp_r29 == temp_r23) { HuAudFXPlay(1); mgTicTacToeGrid[temp_r24][temp_r23] |= 4 << arg0; return 1; - } else { + } + else { lbl_1_bss_3AC[arg0] = 30; - temp_r26 = (temp_r24-temp_r30 < 0) ? -1 : (temp_r24-temp_r30 > 0) ? 1 : 0; - temp_r25 = (temp_r23-temp_r29 < 0) ? -1 : (temp_r23-temp_r29 > 0) ? 1 : 0; - lbl_1_bss_3B4[arg0] = temp_r30+temp_r26+((temp_r29+temp_r25)*3); + temp_r26 = (temp_r24 - temp_r30 < 0) ? -1 : (temp_r24 - temp_r30 > 0) ? 1 : 0; + temp_r25 = (temp_r23 - temp_r29 < 0) ? -1 : (temp_r23 - temp_r29 > 0) ? 1 : 0; + lbl_1_bss_3B4[arg0] = temp_r30 + temp_r26 + ((temp_r29 + temp_r25) * 3); HuAudFXPlay(0); return 0; } - } else { - temp_r30 = lbl_1_bss_3B4[arg0]%3; - temp_r29 = lbl_1_bss_3B4[arg0]/3; - if(arg1 == 0) { + } + else { + temp_r30 = lbl_1_bss_3B4[arg0] % 3; + temp_r29 = lbl_1_bss_3B4[arg0] / 3; + if (arg1 == 0) { return 1; } - if(HuPadBtnDown[temp_r28] & PAD_BUTTON_A) { - if((mgTicTacToeGrid[temp_r30][temp_r29] & 0x3) == 0) { + if (HuPadBtnDown[temp_r28] & PAD_BUTTON_A) { + if ((mgTicTacToeGrid[temp_r30][temp_r29] & 0x3) == 0) { mgTicTacToeGrid[temp_r30][temp_r29] |= 4 << arg0; HuAudFXPlay(1); return 1; - } else { + } + else { HuAudFXPlay(4); } } - if(HuPadDStkRep[temp_r28] == 0) { + if (HuPadDStkRep[temp_r28] == 0) { return 0; } temp_r26 = temp_r25 = 0; - if((HuPadDStkRep[temp_r28] & PAD_BUTTON_LEFT) && temp_r30 > 0) { + if ((HuPadDStkRep[temp_r28] & PAD_BUTTON_LEFT) && temp_r30 > 0) { temp_r26 = -1; - } else if((HuPadDStkRep[temp_r28] & PAD_BUTTON_RIGHT) && temp_r30 < 2) { + } + else if ((HuPadDStkRep[temp_r28] & PAD_BUTTON_RIGHT) && temp_r30 < 2) { temp_r26 = 1; } - if((HuPadDStkRep[temp_r28] & PAD_BUTTON_UP) && temp_r29 > 0) { + if ((HuPadDStkRep[temp_r28] & PAD_BUTTON_UP) && temp_r29 > 0) { temp_r25 = -1; - } else if((HuPadDStkRep[temp_r28] & PAD_BUTTON_DOWN) && temp_r29 < 2) { + } + else if ((HuPadDStkRep[temp_r28] & PAD_BUTTON_DOWN) && temp_r29 < 2) { temp_r25 = 1; } - if(temp_r26 || temp_r25) { + if (temp_r26 || temp_r25) { HuAudFXPlay(0); } - lbl_1_bss_3B4[arg0] = temp_r30+temp_r26+((temp_r29+temp_r25)*3); + lbl_1_bss_3B4[arg0] = temp_r30 + temp_r26 + ((temp_r29 + temp_r25) * 3); return 0; } - } void fn_1_16438(void) @@ -525,7 +533,7 @@ void fn_1_16438(void) Vec sp8; float temp_f31; float temp_f30; - + fn_1_25E74(lbl_1_bss_3B8); fn_1_25584(lbl_1_data_168); lbl_1_data_168 = lbl_1_bss_3B8 = -1; @@ -535,44 +543,46 @@ void fn_1_16438(void) sp14.y = 0; sp14.z = 640; VECSubtract(&sp14, &sp20, &sp14); - temp_f30 = 180+atan2d(sp14.z, sp14.x); - for(temp_r31=0; temp_r31<=60; temp_r31++) { - if(temp_r31 <= 10) { - temp_f31 = sind((temp_r31/10.0)*90.0); - HuSprGrpPosSet(lbl_1_bss_3A8, 288, 240+(16*temp_f31)); - } else { - temp_f31 = 1.0-cosd(((temp_r31-10.0)/50.0)*90.0); - HuSprGrpPosSet(lbl_1_bss_3A8, 288, 256+(-400*temp_f31)); + temp_f30 = 180 + atan2d(sp14.z, sp14.x); + for (temp_r31 = 0; temp_r31 <= 60; temp_r31++) { + if (temp_r31 <= 10) { + temp_f31 = sind((temp_r31 / 10.0) * 90.0); + HuSprGrpPosSet(lbl_1_bss_3A8, 288, 240 + (16 * temp_f31)); } - if(temp_r31 <= 10) { - temp_f31 = sind((temp_r31/10.0)*90.0); - HuSprGrpPosSet(lbl_1_bss_3AA, 450+(-16*temp_f31), 65); - } else if(temp_r31 < 30) { - temp_f31 = 1-cosd(((temp_r31-10.0)/20.0)*90.0); - HuSprGrpPosSet(lbl_1_bss_3AA, 434+(400*temp_f31), 65); + else { + temp_f31 = 1.0 - cosd(((temp_r31 - 10.0) / 50.0) * 90.0); + HuSprGrpPosSet(lbl_1_bss_3A8, 288, 256 + (-400 * temp_f31)); } - if(temp_r31 == 29) { + if (temp_r31 <= 10) { + temp_f31 = sind((temp_r31 / 10.0) * 90.0); + HuSprGrpPosSet(lbl_1_bss_3AA, 450 + (-16 * temp_f31), 65); + } + else if (temp_r31 < 30) { + temp_f31 = 1 - cosd(((temp_r31 - 10.0) / 20.0) * 90.0); + HuSprGrpPosSet(lbl_1_bss_3AA, 434 + (400 * temp_f31), 65); + } + if (temp_r31 == 29) { Hu3DMotionTimeSet(lbl_1_bss_2C80[5], 0); } - if(temp_r31 == 30) { + if (temp_r31 == 30) { Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[7], 0, 8, HU3D_MOTATTR_LOOP); } - if(temp_r31 > 30) { - temp_f31 = (temp_r31-30.0)/30.0; + if (temp_r31 > 30) { + temp_f31 = (temp_r31 - 30.0) / 30.0; VECScale(&sp14, &sp8, temp_f31); VECAdd(&sp20, &sp8, &sp8); Hu3DModelPosSetV(lbl_1_bss_2C80[5], &sp8); - if(temp_r31 <= 40) { - temp_f31 = (temp_r31-30)/10.0; - Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f30*temp_f31, 0); + if (temp_r31 <= 40) { + temp_f31 = (temp_r31 - 30) / 10.0; + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f30 * temp_f31, 0); } } HuPrcVSleep(); } Hu3DMotionShiftSet(lbl_1_bss_2C80[5], lbl_1_bss_2C66[6], 0, 8, HU3D_MOTATTR_LOOP); - for(temp_r31=0; temp_r31<=10; temp_r31++) { - temp_f31 = 1.0-(temp_r31/10.0); - Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f31*temp_f30, 0); + for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { + temp_f31 = 1.0 - (temp_r31 / 10.0); + Hu3DModelRotSet(lbl_1_bss_2C80[5], 0, temp_f31 * temp_f30, 0); HuPrcVSleep(); } HuSprGrpKill(lbl_1_bss_3A8); @@ -596,81 +606,85 @@ s32 fn_1_16B30(void) s16 temp_r21; s16 temp_r20; float temp_f31; - + s16 sp22[9]; s16 sp1E[2]; s16 sp1A[2]; s16 sp16[2]; s16 sp12[2]; char spE[2][2]; - - for(temp_r31=0; temp_r31<9; temp_r31++) { - if(mgTicTacToeGrid[temp_r31%3][temp_r31/3] & 0x4) { + + for (temp_r31 = 0; temp_r31 < 9; temp_r31++) { + if (mgTicTacToeGrid[temp_r31 % 3][temp_r31 / 3] & 0x4) { sp1E[0] = temp_r31; } - if(mgTicTacToeGrid[temp_r31%3][temp_r31/3] & 0x8) { + if (mgTicTacToeGrid[temp_r31 % 3][temp_r31 / 3] & 0x8) { sp1E[1] = temp_r31; } } HuPrcSleep(60); sp16[0] = sp16[1] = 0; - for(temp_r31=0; temp_r31<4; temp_r31++) { - sp16[temp_r31/2] += GWPlayerCoinWinGet(lbl_1_bss_2C1C[temp_r31])+GWPlayerCoinCollectGet(lbl_1_bss_2C1C[temp_r31]); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + sp16[temp_r31 / 2] += GWPlayerCoinWinGet(lbl_1_bss_2C1C[temp_r31]) + GWPlayerCoinCollectGet(lbl_1_bss_2C1C[temp_r31]); } sp12[0] = sp12[1] = 0; - if(sp16[0] != sp16[1]) { - if(sp16[0] > sp16[1]) { + if (sp16[0] != sp16[1]) { + if (sp16[0] > sp16[1]) { sp12[0] = 1; - } else { + } + else { sp12[1] = 1; } } - for(temp_r30=0, temp_r28=-1; temp_r30<2; temp_r30++) { - temp_r22 = sp1E[temp_r30]%3; - temp_r21 = sp1E[temp_r30]/3; - if(sp12[temp_r30] != 0) { + for (temp_r30 = 0, temp_r28 = -1; temp_r30 < 2; temp_r30++) { + temp_r22 = sp1E[temp_r30] % 3; + temp_r21 = sp1E[temp_r30] / 3; + if (sp12[temp_r30] != 0) { mgTicTacToeGrid[temp_r22][temp_r21] = (1 << temp_r30); temp_r28 = temp_r30; - } else { + } + else { mgTicTacToeGrid[temp_r22][temp_r21] &= ~(4 << temp_r30); } } - if(lbl_1_data_168 == -1) { + if (lbl_1_data_168 == -1) { lbl_1_data_168 = fn_1_2530C(0, 0, 0); } - if(temp_r28 != -1) { - HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[temp_r28*2], 0); - HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28*2)+1], 1); + if (temp_r28 != -1) { + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[temp_r28 * 2], 0); + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28 * 2) + 1], 1); fn_1_25838(lbl_1_data_168, 0x280016, -1, -1); - } else { + } + else { fn_1_25838(lbl_1_data_168, 0x280013, -1, -1); } temp_r26 = espEntry(0x62005D, 100, 0); espColorSet(temp_r26, 255, 255, 192); - espAttrSet(temp_r26, HUSPR_ATTR_ADDCOL|HUSPR_ATTR_DISPOFF|HUSPR_ATTR_LOOP); - for(temp_r31=0; temp_r31<=30; temp_r31++) { - for(temp_r30=0; temp_r30<2; temp_r30++) { - if(sp12[temp_r30]) { - if(temp_r31 == 0) { - temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 87)+temp_r30, MEMORY_DEFAULT_NUM)); + espAttrSet(temp_r26, HUSPR_ATTR_ADDCOL | HUSPR_ATTR_DISPOFF | HUSPR_ATTR_LOOP); + for (temp_r31 = 0; temp_r31 <= 30; temp_r31++) { + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + if (sp12[temp_r30]) { + if (temp_r31 == 0) { + temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 87) + temp_r30, MEMORY_DEFAULT_NUM)); temp_r24 = HuSprCreate(temp_r23, 170, 0); - HuSprGrpMemberSet(lbl_1_bss_3A8, sp1E[temp_r30]+3, temp_r24); - HuSprPosSet(lbl_1_bss_3A8, sp1E[temp_r30]+3, ((sp1E[temp_r30]%3)*56)-56, ((sp1E[temp_r30]/3)*56)-56); - HuSprAttrSet(lbl_1_bss_3A8, sp1E[temp_r30]+3,HUSPR_ATTR_DISPOFF); + HuSprGrpMemberSet(lbl_1_bss_3A8, sp1E[temp_r30] + 3, temp_r24); + HuSprPosSet(lbl_1_bss_3A8, sp1E[temp_r30] + 3, ((sp1E[temp_r30] % 3) * 56) - 56, ((sp1E[temp_r30] / 3) * 56) - 56); + HuSprAttrSet(lbl_1_bss_3A8, sp1E[temp_r30] + 3, HUSPR_ATTR_DISPOFF); espAttrReset(temp_r26, HUSPR_ATTR_DISPOFF); - espPosSet(temp_r26, (((sp1E[temp_r30]%3)*56)+288.0f)-56, ((sp1E[temp_r30]/3)*56)+184); + espPosSet(temp_r26, (((sp1E[temp_r30] % 3) * 56) + 288.0f) - 56, ((sp1E[temp_r30] / 3) * 56) + 184); HuAudFXPlay(825); HuAudFXPlay(826); } - if(temp_r31 == 8) { - HuSprAttrReset(lbl_1_bss_3A8, sp1E[temp_r30]+3,HUSPR_ATTR_DISPOFF); + if (temp_r31 == 8) { + HuSprAttrReset(lbl_1_bss_3A8, sp1E[temp_r30] + 3, HUSPR_ATTR_DISPOFF); } - if(temp_r31 == 14) { + if (temp_r31 == 14) { espKill(temp_r26); } - } else { - temp_f31 = 1-(temp_r31/30.0); - HuSprTPLvlSet(lbl_1_bss_3A8, temp_r30+14, temp_f31); + } + else { + temp_f31 = 1 - (temp_r31 / 30.0); + HuSprTPLvlSet(lbl_1_bss_3A8, temp_r30 + 14, temp_f31); } } HuPrcVSleep(); @@ -679,30 +693,30 @@ s32 fn_1_16B30(void) HuSprTPLvlSet(lbl_1_bss_3A8, 14, 1.0f); HuSprAttrSet(lbl_1_bss_3A8, 15, HUSPR_ATTR_DISPOFF); HuSprTPLvlSet(lbl_1_bss_3A8, 15, 1.0f); - for(temp_r31=0; temp_r31<9; temp_r31++) { + for (temp_r31 = 0; temp_r31 < 9; temp_r31++) { sp22[temp_r31] = 0; } temp_r27 = 0; - for(temp_r30=0; temp_r30<2; temp_r30++) { - for(temp_r31=0; temp_r31<8; temp_r31++) { - temp_r29 = lbl_1_data_16A[temp_r31*3]; - if((1 << temp_r30) & mgTicTacToeGrid[temp_r29%3][temp_r29/3]) { - temp_r29 = lbl_1_data_16A[(temp_r31*3)+1]; - if((1 << temp_r30) & mgTicTacToeGrid[temp_r29%3][temp_r29/3]) { - temp_r29 = lbl_1_data_16A[(temp_r31*3)+2]; - if((1 << temp_r30) & mgTicTacToeGrid[temp_r29%3][temp_r29/3]) { - temp_r29 = lbl_1_data_16A[temp_r31*3]; - if(sp22[temp_r29] == 0) { + for (temp_r30 = 0; temp_r30 < 2; temp_r30++) { + for (temp_r31 = 0; temp_r31 < 8; temp_r31++) { + temp_r29 = lbl_1_data_16A[temp_r31 * 3]; + if ((1 << temp_r30) & mgTicTacToeGrid[temp_r29 % 3][temp_r29 / 3]) { + temp_r29 = lbl_1_data_16A[(temp_r31 * 3) + 1]; + if ((1 << temp_r30) & mgTicTacToeGrid[temp_r29 % 3][temp_r29 / 3]) { + temp_r29 = lbl_1_data_16A[(temp_r31 * 3) + 2]; + if ((1 << temp_r30) & mgTicTacToeGrid[temp_r29 % 3][temp_r29 / 3]) { + temp_r29 = lbl_1_data_16A[temp_r31 * 3]; + if (sp22[temp_r29] == 0) { sp22[temp_r29]++; temp_r27++; } - temp_r29 = lbl_1_data_16A[(temp_r31*3)+1]; - if(sp22[temp_r29] == 0) { + temp_r29 = lbl_1_data_16A[(temp_r31 * 3) + 1]; + if (sp22[temp_r29] == 0) { sp22[temp_r29]++; temp_r27++; } - temp_r29 = lbl_1_data_16A[(temp_r31*3)+2]; - if(sp22[temp_r29] == 0) { + temp_r29 = lbl_1_data_16A[(temp_r31 * 3) + 2]; + if (sp22[temp_r29] == 0) { sp22[temp_r29]++; temp_r27++; } @@ -711,59 +725,62 @@ s32 fn_1_16B30(void) } } } - if(temp_r27 == 0) { + if (temp_r27 == 0) { sp1A[0] = sp1A[1] = 0; - for(temp_r31=0; temp_r31<3; temp_r31++) { - for(temp_r30=0; temp_r30<3; temp_r30++) { + for (temp_r31 = 0; temp_r31 < 3; temp_r31++) { + for (temp_r30 = 0; temp_r30 < 3; temp_r30++) { temp_r20 = mgTicTacToeGrid[temp_r31][temp_r30]; - if(temp_r20 & 0x1) { + if (temp_r20 & 0x1) { sp1A[0]++; } - if(temp_r20 & 0x2) { + if (temp_r20 & 0x2) { sp1A[1]++; } } } - if(sp1A[0]+sp1A[1] >= 9) { - for(temp_r31=0; temp_r31<2; temp_r31++) { - spE[temp_r31][0] = sp1A[temp_r31]+'0'; + if (sp1A[0] + sp1A[1] >= 9) { + for (temp_r31 = 0; temp_r31 < 2; temp_r31++) { + spE[temp_r31][0] = sp1A[temp_r31] + '0'; spE[temp_r31][1] = 0; HuWinInsertMesSet(lbl_1_data_168, MAKE_MESSID_PTR(&spE[temp_r31][0]), (s32)temp_r31); } - if(sp1A[0] > sp1A[1]) { + if (sp1A[0] > sp1A[1]) { temp_r28 = 0; - } else { + } + else { temp_r28 = 1; } HuPrcSleep(30); HuAudFXPlay(2175); - HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28*2)+0], 2); - HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28*2)+1], 3); + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28 * 2) + 0], 2); + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28 * 2) + 1], 3); fn_1_25838(lbl_1_data_168, 0x280025, -1, -1); fn_1_25584(lbl_1_data_168); lbl_1_data_168 = -1; return 1; - } else { + } + else { return 0; } - } else { + } + else { temp_r23 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_MGMODE, 93), MEMORY_DEFAULT_NUM)); temp_r25 = HuSprGrpCreate(temp_r27); - for(temp_r30=temp_r31=0; temp_r30<9; temp_r30++) { - if(sp22[temp_r30] == 0) { + for (temp_r30 = temp_r31 = 0; temp_r30 < 9; temp_r30++) { + if (sp22[temp_r30] == 0) { continue; } temp_r24 = HuSprCreate(temp_r23, 100, 0); HuSprGrpMemberSet(temp_r25, temp_r31, temp_r24); - HuSprPosSet(temp_r25, temp_r31, (((temp_r30%3)*56)+288.0f)-56, ((temp_r30/3)*56)+184); + HuSprPosSet(temp_r25, temp_r31, (((temp_r30 % 3) * 56) + 288.0f) - 56, ((temp_r30 / 3) * 56) + 184); HuSprAttrSet(temp_r25, temp_r31, HUSPR_ATTR_LOOP); temp_r31++; } HuPrcSleep(14); HuSprGrpKill(temp_r25); HuAudFXPlay(2175); - HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28*2)+0], 0); - HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28*2)+1], 1); + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28 * 2) + 0], 0); + HuWinInsertMesSet(lbl_1_data_168, lbl_1_bss_2C24[(temp_r28 * 2) + 1], 1); fn_1_25838(lbl_1_data_168, 0x280017, -1, -1); fn_1_25584(lbl_1_data_168); lbl_1_data_168 = -1; @@ -776,17 +793,17 @@ void fn_1_17A5C(void) HuSprGrp *gp = &HuSprGrpData[lbl_1_bss_3A8]; s16 j; s16 i; - for(j=0; j<=30; j++) { - float tplvl = 1.0-(j/30.0); - for(i=3; i<12; i++) { - if(gp->members[i] != -1) { - HuSprData[gp->members[i]].a = 255.0f*tplvl; + for (j = 0; j <= 30; j++) { + float tplvl = 1.0 - (j / 30.0); + for (i = 3; i < 12; i++) { + if (gp->members[i] != -1) { + HuSprData[gp->members[i]].a = 255.0f * tplvl; } } HuPrcVSleep(); } - for(i=0; i<3; i++) { - for(j=0; j<3; j++) { + for (i = 0; i < 3; i++) { + for (j = 0; j < 3; j++) { mgTicTacToeGrid[i][j] = 0; } } @@ -805,156 +822,165 @@ void fn_1_17BE0(void) s16 temp_r23; s16 temp_r22; s16 temp_r21; - + s16 sp2A[9]; s16 sp18[9]; s16 sp8[8]; - for(temp_r26=0; temp_r26<2; temp_r26++) { - for(temp_r31=0; temp_r31<8; temp_r31++) { + for (temp_r26 = 0; temp_r26 < 2; temp_r26++) { + for (temp_r31 = 0; temp_r31 < 8; temp_r31++) { temp_r28 = 0; temp_r25 = -1; - temp_r30 = lbl_1_data_16A[(temp_r31*3)+0]; - if((1 << temp_r26) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r30 = lbl_1_data_16A[(temp_r31 * 3) + 0]; + if ((1 << temp_r26) & mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3]) { temp_r28++; - } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + } + else if ((mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3] & 0x3) == 0) { temp_r25 = temp_r30; } - temp_r30 = lbl_1_data_16A[(temp_r31*3)+1]; - if((1 << temp_r26) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r30 = lbl_1_data_16A[(temp_r31 * 3) + 1]; + if ((1 << temp_r26) & mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3]) { temp_r28++; - } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + } + else if ((mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3] & 0x3) == 0) { temp_r25 = temp_r30; } - temp_r30 = lbl_1_data_16A[(temp_r31*3)+2]; - if((1 << temp_r26) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r30 = lbl_1_data_16A[(temp_r31 * 3) + 2]; + if ((1 << temp_r26) & mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3]) { temp_r28++; - } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + } + else if ((mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3] & 0x3) == 0) { temp_r25 = temp_r30; } - if(temp_r28 == 2 && temp_r25 != -1) { + if (temp_r28 == 2 && temp_r25 != -1) { OSReport("%d:LEACH\n", temp_r26); lbl_1_bss_3B0[temp_r26] = temp_r25; break; } } - if(temp_r31 != 8) { + if (temp_r31 != 8) { continue; } - if(frandmod(5) != 0) { - temp_r29 = temp_r26^1; - for(temp_r31=0; temp_r31<8; temp_r31++) { + if (frandmod(5) != 0) { + temp_r29 = temp_r26 ^ 1; + for (temp_r31 = 0; temp_r31 < 8; temp_r31++) { temp_r28 = 0; temp_r25 = -1; - temp_r30 = lbl_1_data_16A[(temp_r31*3)+0]; - if((1 << temp_r29) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r30 = lbl_1_data_16A[(temp_r31 * 3) + 0]; + if ((1 << temp_r29) & mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3]) { temp_r28++; - } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + } + else if ((mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3] & 0x3) == 0) { temp_r25 = temp_r30; } - temp_r30 = lbl_1_data_16A[(temp_r31*3)+1]; - if((1 << temp_r29) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r30 = lbl_1_data_16A[(temp_r31 * 3) + 1]; + if ((1 << temp_r29) & mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3]) { temp_r28++; - } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + } + else if ((mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3] & 0x3) == 0) { temp_r25 = temp_r30; } - temp_r30 = lbl_1_data_16A[(temp_r31*3)+2]; - if((1 << temp_r29) & mgTicTacToeGrid[temp_r30%3][temp_r30/3]) { + temp_r30 = lbl_1_data_16A[(temp_r31 * 3) + 2]; + if ((1 << temp_r29) & mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3]) { temp_r28++; - } else if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + } + else if ((mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3] & 0x3) == 0) { temp_r25 = temp_r30; } - if(temp_r28 == 2 && temp_r25 != -1) { + if (temp_r28 == 2 && temp_r25 != -1) { lbl_1_bss_3B0[temp_r26] = temp_r25; break; } } - if(temp_r31 != 8) { + if (temp_r31 != 8) { continue; } } - for(temp_r31=temp_r24=temp_r21=0; temp_r31<9; temp_r31++) { - if((1 << temp_r26) & mgTicTacToeGrid[temp_r31%3][temp_r31/3]) { + for (temp_r31 = temp_r24 = temp_r21 = 0; temp_r31 < 9; temp_r31++) { + if ((1 << temp_r26) & mgTicTacToeGrid[temp_r31 % 3][temp_r31 / 3]) { sp2A[temp_r24] = temp_r31; temp_r24++; - } else if((mgTicTacToeGrid[temp_r31%3][temp_r31/3] & 0x3) == 0) { + } + else if ((mgTicTacToeGrid[temp_r31 % 3][temp_r31 / 3] & 0x3) == 0) { sp18[temp_r21++] = temp_r31; } } - if(temp_r24 == 0) { + if (temp_r24 == 0) { OSReport("%d:KOMA None\n", temp_r26); - for(temp_r31=0; temp_r31<50; temp_r31++) { + for (temp_r31 = 0; temp_r31 < 50; temp_r31++) { temp_r30 = lbl_1_data_1AC[frandmod(8)]; - if((mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) == 0) { + if ((mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3] & 0x3) == 0) { lbl_1_bss_3B0[temp_r26] = temp_r30; break; } } - if(temp_r31 == 50) { + if (temp_r31 == 50) { lbl_1_bss_3B0[temp_r26] = sp18[frandmod(temp_r21)]; } - } else { - for(temp_r22=0; temp_r22<50; temp_r22++) { + } + else { + for (temp_r22 = 0; temp_r22 < 50; temp_r22++) { temp_r29 = sp2A[frandmod(temp_r24)]; temp_r27 = 0; - if((temp_r29%3) != 0 && (mgTicTacToeGrid[(temp_r29-1)%3][temp_r29/3] & 0x3) == 0) { - sp8[temp_r27++] = temp_r29-1; + if ((temp_r29 % 3) != 0 && (mgTicTacToeGrid[(temp_r29 - 1) % 3][temp_r29 / 3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29 - 1; } - if((temp_r29%3)!= 2 && (mgTicTacToeGrid[(temp_r29+1)%3][temp_r29/3] & 0x3) == 0) { - sp8[temp_r27++] = temp_r29+1; + if ((temp_r29 % 3) != 2 && (mgTicTacToeGrid[(temp_r29 + 1) % 3][temp_r29 / 3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29 + 1; } - if((temp_r29/3) != 0 && (mgTicTacToeGrid[temp_r29%3][(temp_r29-3)/3] & 0x3) == 0) { - sp8[temp_r27++] = temp_r29-3; + if ((temp_r29 / 3) != 0 && (mgTicTacToeGrid[temp_r29 % 3][(temp_r29 - 3) / 3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29 - 3; } - if((temp_r29/3) != 2 && (mgTicTacToeGrid[temp_r29%3][(temp_r29+3)/3] & 0x3) == 0) { - sp8[temp_r27++] = temp_r29+3; + if ((temp_r29 / 3) != 2 && (mgTicTacToeGrid[temp_r29 % 3][(temp_r29 + 3) / 3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29 + 3; } - if((temp_r29%3) != 0 && (temp_r29/3) != 0 && (mgTicTacToeGrid[(temp_r29-4)%3][(temp_r29-4)/3] & 0x3) == 0) { - sp8[temp_r27++] = temp_r29-4; + if ((temp_r29 % 3) != 0 && (temp_r29 / 3) != 0 && (mgTicTacToeGrid[(temp_r29 - 4) % 3][(temp_r29 - 4) / 3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29 - 4; } - if((temp_r29%3) != 2 && (temp_r29/3) != 0 && (mgTicTacToeGrid[(temp_r29-2)%3][(temp_r29-2)/3] & 0x3) == 0) { - sp8[temp_r27++] = temp_r29-2; + if ((temp_r29 % 3) != 2 && (temp_r29 / 3) != 0 && (mgTicTacToeGrid[(temp_r29 - 2) % 3][(temp_r29 - 2) / 3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29 - 2; } - if((temp_r29%3) != 0 && (temp_r29/3) != 2 && (mgTicTacToeGrid[(temp_r29+2)%3][(temp_r29+2)/3] & 0x3) == 0) { - sp8[temp_r27++] = temp_r29+2; + if ((temp_r29 % 3) != 0 && (temp_r29 / 3) != 2 && (mgTicTacToeGrid[(temp_r29 + 2) % 3][(temp_r29 + 2) / 3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29 + 2; } - if((temp_r29%3) != 2 && (temp_r29/3) != 2 && (mgTicTacToeGrid[(temp_r29+4)%3][(temp_r29+4)/3] & 0x3) == 0) { - sp8[temp_r27++] = temp_r29+4; + if ((temp_r29 % 3) != 2 && (temp_r29 / 3) != 2 && (mgTicTacToeGrid[(temp_r29 + 4) % 3][(temp_r29 + 4) / 3] & 0x3) == 0) { + sp8[temp_r27++] = temp_r29 + 4; } - if(temp_r27 != 0) { + if (temp_r27 != 0) { temp_r23 = sp8[frandmod(temp_r27)]; - for(temp_r31=0; temp_r31<8; temp_r31++) { + for (temp_r31 = 0; temp_r31 < 8; temp_r31++) { temp_r28 = 0; - if(temp_r29 == lbl_1_data_16A[(temp_r31*3)+0] || temp_r29 == lbl_1_data_16A[(temp_r31*3)+1] || temp_r29 == lbl_1_data_16A[(temp_r31*3)+2]) { + if (temp_r29 == lbl_1_data_16A[(temp_r31 * 3) + 0] || temp_r29 == lbl_1_data_16A[(temp_r31 * 3) + 1] + || temp_r29 == lbl_1_data_16A[(temp_r31 * 3) + 2]) { temp_r28++; } - if(temp_r23 == lbl_1_data_16A[(temp_r31*3)+0] || temp_r23 == lbl_1_data_16A[(temp_r31*3)+1] || temp_r23 == lbl_1_data_16A[(temp_r31*3)+2]) { + if (temp_r23 == lbl_1_data_16A[(temp_r31 * 3) + 0] || temp_r23 == lbl_1_data_16A[(temp_r31 * 3) + 1] + || temp_r23 == lbl_1_data_16A[(temp_r31 * 3) + 2]) { temp_r28++; } - if(temp_r28 == 2) { - for(temp_r28=0; temp_r28<3; temp_r28++) { - if(temp_r29 != lbl_1_data_16A[(temp_r31*3)+temp_r28] && temp_r23 != lbl_1_data_16A[(temp_r31*3)+temp_r28]) { + if (temp_r28 == 2) { + for (temp_r28 = 0; temp_r28 < 3; temp_r28++) { + if (temp_r29 != lbl_1_data_16A[(temp_r31 * 3) + temp_r28] && temp_r23 != lbl_1_data_16A[(temp_r31 * 3) + temp_r28]) { break; } } - temp_r30 = lbl_1_data_16A[(temp_r31*3)+temp_r28]; - if(mgTicTacToeGrid[temp_r30%3][temp_r30/3] & 0x3) { + temp_r30 = lbl_1_data_16A[(temp_r31 * 3) + temp_r28]; + if (mgTicTacToeGrid[temp_r30 % 3][temp_r30 / 3] & 0x3) { temp_r30 = -1; } break; } } - if(temp_r31 == 8 || temp_r30 < 0) { + if (temp_r31 == 8 || temp_r30 < 0) { continue; } lbl_1_bss_3B0[temp_r26] = temp_r23; break; } } - if(temp_r22 == 50) { + if (temp_r22 == 50) { lbl_1_bss_3B0[temp_r26] = sp18[frandmod(temp_r21)]; } } - } OSReport("com %d,%d\n", lbl_1_bss_3B0[0], lbl_1_bss_3B0[1]); } diff --git a/src/REL/option/state.c b/src/REL/option/state.c index 9e6b3e30..edbcdcd6 100755 --- a/src/REL/option/state.c +++ b/src/REL/option/state.c @@ -13,15 +13,15 @@ typedef struct { } StateWork; /* size = 0x0C */ typedef struct { - /* 0x00 */ Vec src; + /* 0x00 */ Vec pos; /* 0x0C */ Vec dest; /* 0x18 */ GXColor color; } UnkLightDataStruct; /* size = 0x1C */ // TODO same as m446Dll::unkStruct10 and present::UnkPresentStruct3 typedef struct UnkShadowDataStruct { - /* 0x00 */ Vec pos; - /* 0x0C */ Vec up; - /* 0x18 */ Vec target; + /* 0x00 */ Vec camPos; + /* 0x0C */ Vec camUp; + /* 0x18 */ Vec camTarget; } UnkShadowDataStruct; /* size = 0x24 */ static void ExecState(omObjData *object); @@ -51,12 +51,12 @@ omObjData *OptionStateCreate(void) optionRoom = OptionRoomCreate(); work->window = OptionWinCreate(0); Hu3DLighInit(); - work->light = Hu3DGLightCreateV(&lightTbl.src, &lightTbl.dest, &lightTbl.color); + work->light = Hu3DGLightCreateV(&lightTbl.pos, &lightTbl.dest, &lightTbl.color); Hu3DGLightInfinitytSet(work->light); lightData = &Hu3DGlobalLight[work->light]; Hu3DShadowCreate(30.0f, 20.0f, 5000.0f); Hu3DShadowTPLvlSet(0.45f); - Hu3DShadowPosSet(&shadowPosTbl.pos, &shadowPosTbl.up, &shadowPosTbl.target); + Hu3DShadowPosSet(&shadowPosTbl.camPos, &shadowPosTbl.camUp, &shadowPosTbl.camTarget); return object; } diff --git a/src/REL/present/camera.c b/src/REL/present/camera.c index 3a15ac79..9be75849 100644 --- a/src/REL/present/camera.c +++ b/src/REL/present/camera.c @@ -113,16 +113,16 @@ float PresentCameraZoomGet(omObjData *object) { CameraWork *work = object->data; - float var_f31 = work->zoom; - return var_f31; + float zoom = work->zoom; + return zoom; } float PresentCameraRotGet(omObjData *object) { CameraWork *work = object->data; - float var_f31 = work->rot; - return var_f31; + float rot = work->rot; + return rot; } void PresentCameraPosGet(omObjData *object, float *x, float *y, float *z) diff --git a/src/REL/present/init.c b/src/REL/present/init.c index 2b2d57a5..3217d652 100644 --- a/src/REL/present/init.c +++ b/src/REL/present/init.c @@ -144,20 +144,20 @@ static void FadeModel(void) BOOL PresentPadCheck(u16 btn) { - u32 var_r31 = HuPadBtnDown[0] & btn; - return var_r31 != 0; + u32 pressed = HuPadBtnDown[0] & btn; + return pressed != 0; } BOOL PresentPadDStkRepCheck(u16 dir) { - u32 var_r31 = HuPadDStkRep[0] & dir; - return var_r31 != 0; + u32 pressed = HuPadDStkRep[0] & dir; + return pressed != 0; } BOOL PresentPadDStkCheck(u16 dir) { - u32 var_r31 = HuPadDStk[0] & dir; - return var_r31 != 0; + u32 pressed = HuPadDStk[0] & dir; + return pressed != 0; } static void SceneMain(omObjData *object) diff --git a/src/REL/present/main.c b/src/REL/present/main.c index 93ef8386..7fafc79b 100644 --- a/src/REL/present/main.c +++ b/src/REL/present/main.c @@ -13,14 +13,14 @@ typedef struct StateWork { } StateWork; /* size = 0x08 */ typedef struct UnkShadowDataStruct { - /* 0x00 */ Vec pos; - /* 0x0C */ Vec up; - /* 0x18 */ Vec target; + /* 0x00 */ Vec camPos; + /* 0x0C */ Vec camUp; + /* 0x18 */ Vec camTarget; } UnkShadowDataStruct; /* size = 0x24 */ omObjData *presentGuide; -static UnkShadowDataStruct shadowPosTbl = { +static UnkShadowDataStruct shadow = { { 0.0f, 3000.0f, 1.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, @@ -45,7 +45,7 @@ omObjData *PresentStateCreate(void) work->window = PresentWinCreate(0); Hu3DShadowCreate(30.0f, 20.0f, 5000.0f); Hu3DShadowTPLvlSet(0.45f); - Hu3DShadowPosSet(&shadowPosTbl.pos, &shadowPosTbl.up, &shadowPosTbl.target); + Hu3DShadowPosSet(&shadow.camPos, &shadow.camUp, &shadow.camTarget); if (omovlevtno > 0) { OSReport("*** PRESENTROOM ( PRESENT GET MODE ) ***\n"); diff --git a/src/REL/present/present.c b/src/REL/present/present.c index b30abfbc..b6d90dfc 100644 --- a/src/REL/present/present.c +++ b/src/REL/present/present.c @@ -61,7 +61,7 @@ typedef struct PresentWork { } PresentWork; /* size = 0x364 */ typedef struct UnkLightDataStruct { - /* 0x00 */ Vec src; + /* 0x00 */ Vec pos; /* 0x0C */ Vec dest; /* 0x18 */ GXColor color; } UnkLightDataStruct; /* size = 0x1C */ // same as option::state::UnkLightDataStruct @@ -357,7 +357,7 @@ omObjData *PresentCreate(void) { s32 i; s32 j; - s16 light; + s16 lightId; LightData *lightData; omObjData *object = omAddObjEx(presentObjMan, 1003, 0, 0, 1, NULL); @@ -382,10 +382,10 @@ omObjData *PresentCreate(void) work->presentUnlockedF[PRESENT_MAX - 1] = TRUE; } Hu3DLighInit(); - light = Hu3DGLightCreateV(&lightTbl.src, &lightTbl.dest, &lightTbl.color); - Hu3DGLightInfinitytSet(light); - Hu3DGLightStaticSet(light, 1); - lightData = &Hu3DGlobalLight[light]; + lightId = Hu3DGLightCreateV(&lightTbl.pos, &lightTbl.dest, &lightTbl.color); + Hu3DGLightInfinitytSet(lightId); + Hu3DGLightStaticSet(lightId, 1); + lightData = &Hu3DGlobalLight[lightId]; lightData->unk_00 |= 0x8000; for (i = 0; i < PRESENT_MDL_MAX; i++) { @@ -410,7 +410,7 @@ omObjData *PresentCreate(void) RotateCamera(object); PresentExecModeSet(object, PRESENT_MODE_NONE); - (void)light; + (void)lightId; return object; } diff --git a/src/game/armem.c b/src/game/armem.c index ec2be64c..66142f66 100644 --- a/src/game/armem.c +++ b/src/game/armem.c @@ -25,7 +25,7 @@ static ARQRequest arqReq; static ARMemBlock ARInfo[64]; static s32 ARBase; -static s32 arqCnt; +static volatile s32 arqCnt; static s16 arqIdx; void HuARInit(void) { diff --git a/src/game/code_8003FF68.c b/src/game/code_8003FF68.c index bff84c12..96dc703c 100644 --- a/src/game/code_8003FF68.c +++ b/src/game/code_8003FF68.c @@ -1,3 +1,4 @@ +#include "game/audio.h" #include "game/data.h" #include "game/hsfman.h" #include "game/process.h" From ece392140eaae9e75f2e47769a8017c15de1d3be Mon Sep 17 00:00:00 2001 From: Liam Coleman Date: Fri, 14 Mar 2025 17:10:41 -0500 Subject: [PATCH 299/311] Match modesel.c (#569) Also fully matches modules --- configure.py | 2 +- src/REL/modeseldll/modesel.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/configure.py b/configure.py index 7a862bd5..c9437b77 100644 --- a/configure.py +++ b/configure.py @@ -1374,7 +1374,7 @@ config.libs = [ "modeseldll", objects={ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeseldll/main.c"), - Object(Equivalent, "REL/modeseldll/modesel.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeseldll/modesel.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeseldll/filesel.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeseldll/datalist.c"), }, diff --git a/src/REL/modeseldll/modesel.c b/src/REL/modeseldll/modesel.c index 8054a966..74fc30e9 100644 --- a/src/REL/modeseldll/modesel.c +++ b/src/REL/modeseldll/modesel.c @@ -1,4 +1,3 @@ -#define HUWIN_USE_OLD_DEFS #include "game/audio.h" #include "game/gamework_data.h" #include "game/hsfanim.h" @@ -99,7 +98,7 @@ s32 fn_1_2490(void) } HuWinMesWait(lbl_1_bss_82); - lbl_1_bss_80 = temp_r26 = 0; + temp_r26 = lbl_1_bss_80 = 0; espAttrReset(lbl_1_bss_152[10], HUSPR_ATTR_DISPOFF); espBankSet(lbl_1_bss_152[10], 0); for (temp_r31 = 0; temp_r31 <= 10; temp_r31++) { From 4ee46b33969385c9e06577c1a79d2c114288ca61 Mon Sep 17 00:00:00 2001 From: Liam Coleman Date: Fri, 14 Mar 2025 19:34:25 -0500 Subject: [PATCH 300/311] Match pal modesel (#570) * Match modesel.c Also fully matches modules * Match pal modesel --- config/GMPP01_00/rels/m457Dll/symbols.txt | 76 ++++++++++---------- config/GMPP01_00/rels/modeseldll/splits.txt | 27 +++++++ config/GMPP01_00/rels/modeseldll/symbols.txt | 5 +- configure.py | 8 +-- src/REL/modeseldll/filesel.c | 32 +++++++++ src/REL/modeseldll/main.c | 25 +++++-- src/REL/modeseldll/modesel.c | 4 ++ 7 files changed, 127 insertions(+), 50 deletions(-) diff --git a/config/GMPP01_00/rels/m457Dll/symbols.txt b/config/GMPP01_00/rels/m457Dll/symbols.txt index 4e212888..0b08cedf 100644 --- a/config/GMPP01_00/rels/m457Dll/symbols.txt +++ b/config/GMPP01_00/rels/m457Dll/symbols.txt @@ -120,7 +120,7 @@ lbl_1_rodata_55C = .rodata:0x0000055C; // type:object size:0x4 scope:local data: lbl_1_rodata_560 = .rodata:0x00000560; // type:object size:0x4 scope:local data:float lbl_1_rodata_564 = .rodata:0x00000564; // type:object size:0x4 scope:local data:float sprDataNumTbl = .data:0x00000000; // type:object size:0x5C scope:local -sprIdTbl = .data:0x0000005C; // type:object size:0x5C data:4byte scope:local +sprIdTbl = .data:0x0000005C; // type:object size:0x5C scope:local data:4byte lbl_1_data_B8 = .data:0x000000B8; // type:object size:0x30 scope:local lbl_1_data_E8 = .data:0x000000E8; // type:object size:0x30 scope:local lbl_1_data_118 = .data:0x00000118; // type:object size:0x30 scope:local @@ -129,49 +129,49 @@ lbl_1_data_154 = .data:0x00000154; // type:object size:0x30 scope:local lbl_1_data_184 = .data:0x00000184; // type:object size:0x30 scope:local lbl_1_data_1B4 = .data:0x000001B4; // type:object size:0x6C scope:local sparkDataTbl = .data:0x00000220; // type:object size:0x6C scope:local -lbl_1_data_28C = .data:0x0000028C; // type:object size:0x18 data:float scope:local -lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x2 data:2byte scope:local -lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x2 data:2byte scope:local -backgroundMusNo = .data:0x000002A8; // type:object size:0x4 data:4byte scope:local -windSeNo = .data:0x000002AC; // type:object size:0x4 data:4byte scope:local -lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x2 data:2byte scope:local -invincibilitySeNo = .data:0x000002B4; // type:object size:0x4 data:4byte scope:local -lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x4 data:4byte scope:local +lbl_1_data_28C = .data:0x0000028C; // type:object size:0x18 scope:local data:float +lbl_1_data_2A4 = .data:0x000002A4; // type:object size:0x2 scope:local data:2byte +lbl_1_data_2A6 = .data:0x000002A6; // type:object size:0x2 scope:local data:2byte +backgroundMusNo = .data:0x000002A8; // type:object size:0x4 scope:local data:4byte +windSeNo = .data:0x000002AC; // type:object size:0x4 scope:local data:4byte +lbl_1_data_2B0 = .data:0x000002B0; // type:object size:0x2 scope:local data:2byte +invincibilitySeNo = .data:0x000002B4; // type:object size:0x4 scope:local data:4byte +lbl_1_data_2B8 = .data:0x000002B8; // type:object size:0x4 scope:local data:4byte lbl_1_data_2BC = .data:0x000002BC; // type:object size:0x9 scope:local data:string lbl_1_data_2C5 = .data:0x000002C5; // type:object size:0x3 scope:local data:string jumptable_1_data_2C8 = .data:0x000002C8; // type:object size:0x2C scope:local jumptable_1_data_2F4 = .data:0x000002F4; // type:object size:0x48 scope:local -lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 data:4byte scope:local -lbl_1_data_340 = .data:0x00000340; // type:object size:0x4 data:float scope:local -lbl_1_data_344 = .data:0x00000344; // type:object size:0x4 data:float scope:local -lbl_1_data_348 = .data:0x00000348; // type:object size:0x4 data:float scope:local +lbl_1_data_33C = .data:0x0000033C; // type:object size:0x4 scope:local data:4byte +lbl_1_data_340 = .data:0x00000340; // type:object size:0x4 scope:local data:float +lbl_1_data_344 = .data:0x00000344; // type:object size:0x4 scope:local data:float +lbl_1_data_348 = .data:0x00000348; // type:object size:0x4 scope:local data:float jumptable_1_data_34C = .data:0x0000034C; // type:object size:0x20 scope:local jumptable_1_data_36C = .data:0x0000036C; // type:object size:0x2C scope:local lbl_1_data_398 = .data:0x00000398; // type:object size:0x12 scope:local data:string lbl_1_data_3AA = .data:0x000003AA; // type:object size:0x19 scope:local data:string lbl_1_data_3C3 = .data:0x000003C3; // type:object size:0x24 scope:local data:string -lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte scope:local -m457MesEndF = .bss:0x00000010; // type:object size:0x4 data:4byte scope:local -againstBrowserF = .bss:0x00000014; // type:object size:0x4 data:4byte scope:local -lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 data:4byte scope:local -lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 data:4byte scope:local -lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 data:4byte scope:local -lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 data:4byte scope:local -lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 data:float scope:local -lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 data:float scope:local -lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 data:float scope:local -lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 data:float scope:local -lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 data:4byte scope:local -lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 data:4byte scope:local -lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 data:4byte scope:local -lightId = .bss:0x00000048; // type:object size:0x4 data:4byte scope:local -objman = .bss:0x0000004C; // type:object size:0x4 data:4byte scope:local -lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 data:4byte scope:local -lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 data:4byte scope:local -gameState = .bss:0x0000005C; // type:object size:0x4 data:4byte scope:local -lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 data:4byte scope:local -gameObj = .bss:0x00000064; // type:object size:0x4 data:4byte scope:local -playerObj = .bss:0x00000068; // type:object size:0x8 data:4byte scope:local -omViewObj = .bss:0x00000070; // type:object size:0x4 data:4byte scope:local -mainObj = .bss:0x00000074; // type:object size:0x4 data:4byte scope:local -lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x50 data:4byte scope:local +lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 scope:local data:4byte +m457MesEndF = .bss:0x00000010; // type:object size:0x4 scope:local data:4byte +againstBrowserF = .bss:0x00000014; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_18 = .bss:0x00000018; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_1C = .bss:0x0000001C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_20 = .bss:0x00000020; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_24 = .bss:0x00000024; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_28 = .bss:0x00000028; // type:object size:0x4 scope:local data:float +lbl_1_bss_2C = .bss:0x0000002C; // type:object size:0x4 scope:local data:float +lbl_1_bss_30 = .bss:0x00000030; // type:object size:0x4 scope:local data:float +lbl_1_bss_34 = .bss:0x00000034; // type:object size:0x4 scope:local data:float +lbl_1_bss_3C = .bss:0x0000003C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_40 = .bss:0x00000040; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_44 = .bss:0x00000044; // type:object size:0x4 scope:local data:4byte +lightId = .bss:0x00000048; // type:object size:0x4 scope:local data:4byte +objman = .bss:0x0000004C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_50 = .bss:0x00000050; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_54 = .bss:0x00000054; // type:object size:0x4 scope:local data:4byte +gameState = .bss:0x0000005C; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_60 = .bss:0x00000060; // type:object size:0x4 scope:local data:4byte +gameObj = .bss:0x00000064; // type:object size:0x4 scope:local data:4byte +playerObj = .bss:0x00000068; // type:object size:0x8 scope:local data:4byte +omViewObj = .bss:0x00000070; // type:object size:0x4 scope:local data:4byte +mainObj = .bss:0x00000074; // type:object size:0x4 scope:local data:4byte +lbl_1_bss_78 = .bss:0x00000078; // type:object size:0x50 scope:local data:4byte diff --git a/config/GMPP01_00/rels/modeseldll/splits.txt b/config/GMPP01_00/rels/modeseldll/splits.txt index 531cd645..8dd4d423 100644 --- a/config/GMPP01_00/rels/modeseldll/splits.txt +++ b/config/GMPP01_00/rels/modeseldll/splits.txt @@ -5,3 +5,30 @@ Sections: .rodata type:rodata align:8 .data type:data align:8 .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x000000A0 + +REL/modeseldll/main.c: + .text start:0x000000A0 end:0x00002528 + .rodata start:0x00000000 end:0x000000B8 + .data start:0x00000000 end:0x00000080 + .bss start:0x00000000 end:0x00000080 + +REL/modeseldll/modesel.c: + .text start:0x00002528 end:0x00003874 + .rodata start:0x000000B8 end:0x000001B0 + .data start:0x00000080 end:0x00000100 + .bss start:0x00000080 end:0x00000088 + +REL/modeseldll/filesel.c: + .text start:0x00003874 end:0x0000BFDC + .rodata start:0x000001B0 end:0x00000318 + .data start:0x00000100 end:0x00000428 + .bss start:0x00000088 end:0x00000150 + +REL/modeseldll/datalist.c: + .text start:0x0000BFDC end:0x0000C438 + .rodata start:0x00000318 end:0x00000328 + .data start:0x00000428 end:0x00000A2C + .bss start:0x00000150 end:0x000001CA diff --git a/config/GMPP01_00/rels/modeseldll/symbols.txt b/config/GMPP01_00/rels/modeseldll/symbols.txt index 5cfb1784..fb5fd9a4 100644 --- a/config/GMPP01_00/rels/modeseldll/symbols.txt +++ b/config/GMPP01_00/rels/modeseldll/symbols.txt @@ -1,6 +1,6 @@ _prolog = .text:0x00000000; // type:function size:0x54 scope:global _epilog = .text:0x00000054; // type:function size:0x4C scope:global -fn_1_A0 = .text:0x000000A0; // type:function size:0x374 +ObjectSetup = .text:0x000000A0; // type:function size:0x374 fn_1_414 = .text:0x00000414; // type:function size:0x678 fn_1_A8C = .text:0x00000A8C; // type:function size:0xFC fn_1_B88 = .text:0x00000B88; // type:function size:0x9C @@ -263,7 +263,8 @@ lbl_1_bss_13A = .bss:0x0000013A; // type:object size:0x6 lbl_1_bss_140 = .bss:0x00000140; // type:object size:0x6 lbl_1_bss_146 = .bss:0x00000146; // type:object size:0x2 data:2byte lbl_1_bss_148 = .bss:0x00000148; // type:object size:0x2 data:2byte -lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x6 +lbl_1_bss_14C = .bss:0x0000014C; // type:object size:0x4 data:4byte +lbl_1_bss_150 = .bss:0x00000150; // type:object size:0x2 lbl_1_bss_152 = .bss:0x00000152; // type:object size:0x18 data:2byte lbl_1_bss_16A = .bss:0x0000016A; // type:object size:0x30 data:2byte lbl_1_bss_19A = .bss:0x0000019A; // type:object size:0x30 data:2byte diff --git a/configure.py b/configure.py index c9437b77..513b0305 100644 --- a/configure.py +++ b/configure.py @@ -1373,10 +1373,10 @@ config.libs = [ Rel( "modeseldll", objects={ - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeseldll/main.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeseldll/modesel.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeseldll/filesel.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "REL/modeseldll/datalist.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/modeseldll/main.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/modeseldll/modesel.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/modeseldll/filesel.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01", "GMPP01_00", "GMPP01_02"), "REL/modeseldll/datalist.c"), }, ), Rel( diff --git a/src/REL/modeseldll/filesel.c b/src/REL/modeseldll/filesel.c index aa81055f..16712e88 100644 --- a/src/REL/modeseldll/filesel.c +++ b/src/REL/modeseldll/filesel.c @@ -122,6 +122,9 @@ s32 fn_1_37DC(void) } if (!SLSaveFlagGet()) { GWGameStatReset(); + #if VERSION_PAL + _ClearFlag(0x1000B); + #endif GWGameStat.sound_mode = msmSysGetOutputMode(); result = 1; break; @@ -428,7 +431,11 @@ loop_exit: temp_r29 = 0; if (temp_r28 == -2) { HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[temp_r31]), 0); + #if VERSION_PAL + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x39)); + #else HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37)); + #endif HuWinMesWait(lbl_1_bss_148); temp_r29 = 1; } @@ -970,6 +977,9 @@ s32 fn_1_61B4(void) sp8 = OSGetTime(); SLSaveDataMake(1, &sp8); GWGameStatReset(); + #if VERSION_PAL + _ClearFlag(0x1000B); + #endif GWGameStat.sound_mode = msmSysGetOutputMode(); SLCommonSet(); fn_1_B8CC(MAKE_MESSID(16, 0x3C)); @@ -1011,6 +1021,13 @@ s32 fn_1_61B4(void) if (SLCheckSumCheck()) { fn_1_9E14(); SLLoadGameStat(); + #if VERSION_PAL + if(GwLanguageSave != -1) { + GWGameStat.language = GwLanguageSave; + } + GwLanguage = GWGameStat.language; + _ClearFlag(0x1000B); + #endif temp_r31 = 1; break; } @@ -1172,7 +1189,11 @@ s32 fn_1_76B4(char *name, s16 slotno) } if (result == -2) { HuWinInsertMesSet(lbl_1_bss_148, MAKE_MESSID_PTR(lbl_1_data_278[slotno]), 0); + #if VERSION_PAL + HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x39)); + #else HuWinMesSet(lbl_1_bss_148, MAKE_MESSID(16, 0x37)); + #endif HuWinMesWait(lbl_1_bss_148); return result; } @@ -2002,6 +2023,16 @@ void fn_1_AAB8(void) HuSprGrpPosSet(lbl_1_bss_110[temp_r30], sp14.x, sp14.y); HuSprGrpScaleSet(lbl_1_bss_110[temp_r30], temp_f31, temp_f31); OSTicksToCalendarTime(lbl_1_bss_D0[temp_r30], &sp20); + #if VERSION_PAL + temp_r29 = sp20.mday; + HuSprBankSet(lbl_1_bss_110[temp_r30], 0, temp_r29 / 10); + temp_r29 -= (temp_r29 / 10) * 10; + HuSprBankSet(lbl_1_bss_110[temp_r30], 1, temp_r29); + temp_r29 = sp20.mon+1; + HuSprBankSet(lbl_1_bss_110[temp_r30], 3, temp_r29 / 10); + temp_r29 -= (temp_r29 / 10) * 10; + HuSprBankSet(lbl_1_bss_110[temp_r30], 4, temp_r29); + #else temp_r29 = sp20.mon + 1; HuSprBankSet(lbl_1_bss_110[temp_r30], 0, temp_r29 / 10); temp_r29 -= (temp_r29 / 10) * 10; @@ -2010,6 +2041,7 @@ void fn_1_AAB8(void) HuSprBankSet(lbl_1_bss_110[temp_r30], 3, temp_r29 / 10); temp_r29 -= (temp_r29 / 10) * 10; HuSprBankSet(lbl_1_bss_110[temp_r30], 4, temp_r29); + #endif temp_r29 = sp20.hour; HuSprBankSet(lbl_1_bss_110[temp_r30], 6, temp_r29 / 10); temp_r29 -= (temp_r29 / 10) * 10; diff --git a/src/REL/modeseldll/main.c b/src/REL/modeseldll/main.c index 7505272f..2ece1b9d 100644 --- a/src/REL/modeseldll/main.c +++ b/src/REL/modeseldll/main.c @@ -84,17 +84,30 @@ void fn_1_414(void) while (WipeStatGet()) { HuPrcVSleep(); } + #if VERSION_PAL + if(GwLanguageSave != -1) { + GWGameStat.language = GwLanguageSave; + } else if(GwLanguage != -1) { + GWGameStat.language = GwLanguage; + } + #endif omOvlReturnEx(1, 1); while (1) { HuPrcVSleep(); } } else { - s16 group = HuSprGrpCreate(1); - s16 sprite = HuTHPSprCreateVol("movie/opmov_s00.thp", 0, 3000, 70.0); - HuSprGrpMemberSet(group, 0, sprite); - HuSprPosSet(group, 0, 288, 240); - HuSprDrawNoSet(group, 0, 127); + s16 grpId; + s16 sprId; + #if VERSION_PAL + HuWinAllKill(); + HuWinInit(1); + #endif + grpId = HuSprGrpCreate(1); + sprId = HuTHPSprCreateVol("movie/opmov_s00.thp", 0, 3000, 70.0); + HuSprGrpMemberSet(grpId, 0, sprId); + HuSprPosSet(grpId, 0, 288, 240); + HuSprDrawNoSet(grpId, 0, 127); HuPrcSleep(2); espAttrSet(lbl_1_bss_152[0], HUSPR_ATTR_DISPOFF); HuAudFXStop(lbl_1_data_100); @@ -102,7 +115,7 @@ void fn_1_414(void) HuPrcVSleep(); } HuTHPClose(); - HuSprGrpKill(group); + HuSprGrpKill(grpId); } } espAttrReset(lbl_1_bss_152[9], HUSPR_ATTR_DISPOFF); diff --git a/src/REL/modeseldll/modesel.c b/src/REL/modeseldll/modesel.c index 74fc30e9..ff96fbbc 100644 --- a/src/REL/modeseldll/modesel.c +++ b/src/REL/modeseldll/modesel.c @@ -213,7 +213,11 @@ s32 fn_1_2490(void) } _ClearFlag(FLAG_ID_MAKE(1, 11)); WipeColorSet(255, 255, 255); + #if VERSION_PAL + WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 30); + #else WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 10); + #endif while (WipeStatGet()) { HuPrcVSleep(); } From eb11f9c23f4b94e33716ea1442d891adc905b5fb Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Sat, 15 Mar 2025 08:36:13 -0400 Subject: [PATCH 301/311] name audio.c, board/audio.c, board/basic_space, match files (#571) * name audio.c and board/audio.c * fix audio, complete board/basic_space, battle * revert changes that broke build * completely finish New and NewMore.cp, for some reason NewMore fails checksum * finally match NewMore.cp --- configure.py | 10 +++------- include/PowerPC_EABI_Support/Runtime/New.h | 1 + include/game/audio.h | 2 +- src/Runtime.PPCEABI.H/New.cp | 8 ++++++++ src/Runtime.PPCEABI.H/NewMore.cp | 15 +++++++++++++++ src/game/audio.c | 10 +++++----- src/game/board/basic_space.c | 18 +++++++++--------- 7 files changed, 42 insertions(+), 22 deletions(-) create mode 100644 include/PowerPC_EABI_Support/Runtime/New.h create mode 100644 src/Runtime.PPCEABI.H/New.cp create mode 100644 src/Runtime.PPCEABI.H/NewMore.cp diff --git a/configure.py b/configure.py index 513b0305..f861ee4b 100644 --- a/configure.py +++ b/configure.py @@ -669,16 +669,12 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/__va_arg.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/global_destructor_chain.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/__mem.c"), - Object(NonMatching, "Runtime.PPCEABI.H/New.cp"), - Object(NonMatching, "Runtime.PPCEABI.H/NewMore.cp"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/New.cp", extra_cflags=["-Cpp_exceptions on"]), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/NewMore.cp", extra_cflags=["-Cpp_exceptions on", "-RTTI on"]), Object(NonMatching, "Runtime.PPCEABI.H/NMWException.cpp"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/runtime.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/__init_cpp_exceptions.cpp"), - Object( - NonMatching, - "Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp", - extra_cflags=["-Cpp_exceptions on"] - ), + Object(NonMatching, "Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp", extra_cflags=["-Cpp_exceptions on"]), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/GCN_mem_alloc.c"), ], }, diff --git a/include/PowerPC_EABI_Support/Runtime/New.h b/include/PowerPC_EABI_Support/Runtime/New.h new file mode 100644 index 00000000..1ae725b4 --- /dev/null +++ b/include/PowerPC_EABI_Support/Runtime/New.h @@ -0,0 +1 @@ +void operator delete(void* arg0); diff --git a/include/game/audio.h b/include/game/audio.h index f5ca39f0..3846ea73 100644 --- a/include/game/audio.h +++ b/include/game/audio.h @@ -53,7 +53,7 @@ void HuAudSStreamAllFadeOut(s32 speed); void HuAudSStreamAllStop(void); s32 HuAudSStreamStatGet(s32 seNo); void HuAudDllSndGrpSet(u16 ovl); -void HuAudSndGrpSetSet(s16 data_size); +void HuAudSndGrpSetSet(s16 dataSize); void HuAudSndGrpSet(s16 grpId); void HuAudSndCommonGrpSet(s16 grpId, s32 groupCheck); void HuAudAUXSet(s32 auxA, s32 auxB); diff --git a/src/Runtime.PPCEABI.H/New.cp b/src/Runtime.PPCEABI.H/New.cp new file mode 100644 index 00000000..c92b6c29 --- /dev/null +++ b/src/Runtime.PPCEABI.H/New.cp @@ -0,0 +1,8 @@ +#include "PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/alloc.h" +#include "PowerPC_EABI_Support/Runtime/New.h" + +void operator delete(void* arg0) throw() { + if (arg0 != 0) { + free(arg0); + } +} diff --git a/src/Runtime.PPCEABI.H/NewMore.cp b/src/Runtime.PPCEABI.H/NewMore.cp new file mode 100644 index 00000000..c2ed6fe8 --- /dev/null +++ b/src/Runtime.PPCEABI.H/NewMore.cp @@ -0,0 +1,15 @@ +#include "PowerPC_EABI_Support/Runtime/New.h" + +namespace std { + class exception { + public: + virtual ~exception(); + virtual const char *what() const; + }; +} + +const char *std::exception::what() const { + return "exception"; +}; + +std::exception::~exception() {}; diff --git a/src/game/audio.c b/src/game/audio.c index 83f5f259..92794f6c 100644 --- a/src/game/audio.c +++ b/src/game/audio.c @@ -475,13 +475,13 @@ void HuAudDllSndGrpSet(u16 ovl) { } } -void HuAudSndGrpSetSet(s16 data_size) { +void HuAudSndGrpSetSet(s16 dataSize) { void *buf; OSTick osTick; s32 numPlay; s32 err; - if (sndGroupBak != data_size) { + if (sndGroupBak != dataSize) { msmMusStopAll(1, 0); msmSeStopAll(1, 0); osTick = OSGetTick(); @@ -492,11 +492,11 @@ void HuAudSndGrpSetSet(s16 data_size) { numPlay = msmSeGetNumPlay(1); OSReport("Timed Out! Mus %d:SE %d\n", msmMusGetNumPlay(1), numPlay); } - OSReport("GroupSet %d\n", data_size); - sndGroupBak = data_size; + OSReport("GroupSet %d\n", dataSize); + sndGroupBak = dataSize; err = msmSysDelGroupAll(); buf = HuMemDirectMalloc(HEAP_DATA, msmSysGetSampSize(1)); - err = msmSysLoadGroupSet(data_size, buf); + err = msmSysLoadGroupSet(dataSize, buf);\ OSReport("***********GroupSet Error %d\n", err); HuMemDirectFree(buf); } diff --git a/src/game/board/basic_space.c b/src/game/board/basic_space.c index d7624381..abce562c 100644 --- a/src/game/board/basic_space.c +++ b/src/game/board/basic_space.c @@ -374,7 +374,7 @@ static void CoinChgSeparate(omObjData *object, coinChg *coin_chg) { } static void CoinChgShow(omObjData* object, coinChg* coin_chg) { - Vec sp8; + Vec pos; f32 angle; f32 y_pos; @@ -385,14 +385,14 @@ static void CoinChgShow(omObjData* object, coinChg* coin_chg) { } else { y_pos = (50.0f * angle) + object->trans.y; } - BoardModelPosGet(coin_chg->coin_model, &sp8); - BoardModelPosSet(coin_chg->coin_model, sp8.x, y_pos, sp8.z); - BoardModelPosGet(coin_chg->sign_model, &sp8); - BoardModelPosSet(coin_chg->sign_model, sp8.x, y_pos, sp8.z); - BoardModelPosGet(coin_chg->ones_model, &sp8); - BoardModelPosSet(coin_chg->ones_model, sp8.x, y_pos, sp8.z); - BoardModelPosGet(coin_chg->tens_model, &sp8); - BoardModelPosSet(coin_chg->tens_model, sp8.x, y_pos, sp8.z); + BoardModelPosGet(coin_chg->coin_model, &pos); + BoardModelPosSet(coin_chg->coin_model, pos.x, y_pos, pos.z); + BoardModelPosGet(coin_chg->sign_model, &pos); + BoardModelPosSet(coin_chg->sign_model, pos.x, y_pos, pos.z); + BoardModelPosGet(coin_chg->ones_model, &pos); + BoardModelPosSet(coin_chg->ones_model, pos.x, y_pos, pos.z); + BoardModelPosGet(coin_chg->tens_model, &pos); + BoardModelPosSet(coin_chg->tens_model, pos.x, y_pos, pos.z); if (coin_chg->angle < 90) { coin_chg->angle += 6; return; From 705ebb87275778cf6cdcf39435f72e9660b142a2 Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Sat, 15 Mar 2025 12:30:27 -0400 Subject: [PATCH 302/311] match linker & some funcs (#572) * name audio.c and board/audio.c * fix audio, complete board/basic_space, battle * revert changes that broke build * completely finish New and NewMore.cp, for some reason NewMore fails checksum * finally match NewMore.cp * match NMWException.cpp * match mem_TRK * match TRK with correct linker, uses Revo's notify func --- configure.py | 12 ++++++------ src/TRK_MINNOW_DOLPHIN/notify.c | 21 ++++++++++++++------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/configure.py b/configure.py index f861ee4b..1f1883bb 100644 --- a/configure.py +++ b/configure.py @@ -671,10 +671,10 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/__mem.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/New.cp", extra_cflags=["-Cpp_exceptions on"]), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/NewMore.cp", extra_cflags=["-Cpp_exceptions on", "-RTTI on"]), - Object(NonMatching, "Runtime.PPCEABI.H/NMWException.cpp"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/NMWException.cpp", extra_cflags=["-Cpp_exceptions on"]), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/runtime.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/__init_cpp_exceptions.cpp"), - Object(NonMatching, "Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp", extra_cflags=["-Cpp_exceptions on"]), + Object(NonMatching, "Runtime.PPCEABI.H/Gecko_ExceptionPPC.cpp", extra_cflags=["-Cpp_exceptions on", "-RTTI on"]), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "Runtime.PPCEABI.H/GCN_mem_alloc.c"), ], }, @@ -734,7 +734,7 @@ config.libs = [ }, { "lib": "TRK_MINNOW_DOLPHIN", - "mw_version": config.linker_version, + "mw_version": "GC/1.3", "cflags": cflags_trk, "host": False, "objects": [ @@ -744,14 +744,14 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/msg.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/msgbuf.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/serpoll.c"), - Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/usr_put.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/usr_put.c", mw_version="GC/1.3.2"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/dispatch.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/msghndlr.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/support.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mutex_TRK.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/notify.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/notify.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/flush_cache.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/mem_TRK.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mem_TRK.c"), Object(NonMatching, "TRK_MINNOW_DOLPHIN/targimpl.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/targsupp.s"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/__exception.s"), diff --git a/src/TRK_MINNOW_DOLPHIN/notify.c b/src/TRK_MINNOW_DOLPHIN/notify.c index 7dce4537..bd41e2f7 100644 --- a/src/TRK_MINNOW_DOLPHIN/notify.c +++ b/src/TRK_MINNOW_DOLPHIN/notify.c @@ -4,6 +4,19 @@ #include "TRK_MINNOW_DOLPHIN/ppc/Generic/targimpl.h" #include "PowerPC_EABI_Support/MetroTRK/trk.h" +inline DSError TRKDoNotifyStopped_Inline(TRKBuffer* msg, MessageCommandID cmd) { + DSError err; + + if (msg->position >= 0x880) { + err = DS_MessageBufferOverflow; + } else { + msg->data[msg->position++] = cmd; + msg->length+=1; + err = 0; + } + return err; +} + DSError TRKDoNotifyStopped(MessageCommandID cmd) { DSError err; @@ -13,13 +26,7 @@ DSError TRKDoNotifyStopped(MessageCommandID cmd) err = TRKGetFreeBuffer(&bufIdx, &msg); if (err == DS_NoError) { - if (msg->position >= 0x880) { - err = DS_MessageBufferOverflow; - } else { - msg->data[msg->position++] = cmd; - ++msg->length; - err = 0; - } + err = TRKDoNotifyStopped_Inline(msg, cmd); if (err == DS_NoError) { if (cmd == DSMSG_NotifyStopped) { From db57c1ef500ba4b560da9941c106507cb5510f02 Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Sat, 15 Mar 2025 13:03:58 -0400 Subject: [PATCH 303/311] match TRKReadUARTPoll (#573) * name audio.c and board/audio.c * fix audio, complete board/basic_space, battle * revert changes that broke build * completely finish New and NewMore.cp, for some reason NewMore fails checksum * finally match NewMore.cp * match NMWException.cpp * match mem_TRK * match TRK with correct linker, uses Revo's notify func * match TRKReadUARTPoll --- .vscode/settings.json | 6 ++++- configure.py | 2 +- src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c | 33 ++++++++++++----------- 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 8b2e4ab0..ac4cca7f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,6 +13,7 @@ "files.insertFinalNewline": true, "files.trimFinalNewlines": true, "files.associations": { + "*.cp": "cpp", "*.csv": "plaintext", "*.s": "plaintext", "*.json": "jsonc", @@ -64,7 +65,10 @@ "m427dll.h": "c", "sprite.h": "c", "gamework_data.h": "c", - "roll.h": "c" + "roll.h": "c", + "msghndlr.h": "c", + "dispatch.h": "c", + "trk.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { diff --git a/configure.py b/configure.py index 1f1883bb..5613bb0e 100644 --- a/configure.py +++ b/configure.py @@ -758,7 +758,7 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/dolphin_trk.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/main_TRK.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/targcont.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/target_options.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mslsupp.c"), diff --git a/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c b/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c index 9fbb6aeb..0b6947ed 100644 --- a/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c +++ b/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c @@ -95,8 +95,6 @@ int InitMetroTRKCommTable(int hwId) return result; } -void TRKUARTInterruptHandler() { } - DSError TRKInitializeIntDrivenUART(u32 param_0, u32 param_1, u32 param_2, volatile u8** param_3) { @@ -106,15 +104,15 @@ DSError TRKInitializeIntDrivenUART(u32 param_0, u32 param_1, u32 param_2, void EnableEXI2Interrupts(void) { gDBCommTable.init_interrupts_func(); } -int TRKPollUART(void) { return gDBCommTable.peek_func(); } +inline int TRKPollUART(void) { return gDBCommTable.peek_func(); } -UARTError TRKReadUARTN(void* bytes, u32 length) +inline UARTError TRKReadUARTN(void* bytes, u32 length) { int readErr = gDBCommTable.read_func(bytes, length); return readErr == 0 ? 0 : -1; } -UARTError TRKWriteUARTN(const void* bytes, u32 length) +inline UARTError TRKWriteUARTN(const void* bytes, u32 length) { int writeErr = gDBCommTable.write_func(bytes, length); return writeErr == 0 ? 0 : -1; @@ -141,28 +139,29 @@ UARTError WriteUART1(u8 arg0) return 0; } -UARTError TRKReadUARTPoll(u8* arg0) -{ - UARTError readErr = 4; +s32 TRKReadUARTPoll(u8* arg0) { + UARTError var_r29; + s32 cnt; + var_r29 = 4; if (gReadPos >= gReadCount) { gReadPos = 0; - gReadCount = TRKPollUART(); - if (gReadCount > 0) { - if (gReadCount > BUFF_LEN) { - gReadCount = BUFF_LEN; + cnt = gReadCount = TRKPollUART(); + if (cnt > 0) { + if (cnt > 0x110A) { + gReadCount = 0x110A; } - readErr = TRKReadUARTN(gReadBuf, gReadCount); - if (readErr != 0) { + var_r29 = TRKReadUARTN(gReadBuf, gReadCount); + if (var_r29 != 0) { gReadCount = 0; } } } if (gReadPos < gReadCount) { *arg0 = gReadBuf[gReadPos++]; - readErr = 0; + var_r29 = 0; } - return readErr; + return var_r29; } void ReserveEXI2Port(void) { gDBCommTable.open_func(); } @@ -170,3 +169,5 @@ void ReserveEXI2Port(void) { gDBCommTable.open_func(); } void UnreserveEXI2Port(void) { gDBCommTable.close_func(); } void TRK_board_display(char* str) { OSReport(str); } + +void TRKUARTInterruptHandler() { } From 5c40f5a8492d628e04f36ca28582a69d317bce19 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Sat, 15 Mar 2025 10:11:33 -0700 Subject: [PATCH 304/311] Fix TRKReadUARTPoll var naming (#574) --- src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c b/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c index 0b6947ed..46eb1107 100644 --- a/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c +++ b/src/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c @@ -139,29 +139,29 @@ UARTError WriteUART1(u8 arg0) return 0; } -s32 TRKReadUARTPoll(u8* arg0) { - UARTError var_r29; +UARTError TRKReadUARTPoll(u8* arg0) +{ + UARTError readErr = 4; s32 cnt; - var_r29 = 4; if (gReadPos >= gReadCount) { gReadPos = 0; cnt = gReadCount = TRKPollUART(); if (cnt > 0) { - if (cnt > 0x110A) { - gReadCount = 0x110A; + if (cnt > BUFF_LEN) { + gReadCount = BUFF_LEN; } - var_r29 = TRKReadUARTN(gReadBuf, gReadCount); - if (var_r29 != 0) { + readErr = TRKReadUARTN(gReadBuf, gReadCount); + if (readErr != 0) { gReadCount = 0; } } } if (gReadPos < gReadCount) { *arg0 = gReadBuf[gReadPos++]; - var_r29 = 0; + readErr = 0; } - return var_r29; + return readErr; } void ReserveEXI2Port(void) { gDBCommTable.open_func(); } From 91d6eb54284f2ac569032ca7a78b3ee3e8ec937a Mon Sep 17 00:00:00 2001 From: Rainchus Date: Sun, 16 Mar 2025 14:22:42 -0500 Subject: [PATCH 305/311] DebuggerDriver.c matching in version 0 --- configure.py | 6 +- src/OdemuExi2/DebuggerDriver.c | 348 +++++++++++++++++++++++++++++++++ 2 files changed, 350 insertions(+), 4 deletions(-) diff --git a/configure.py b/configure.py index 5613bb0e..bf78c9d3 100644 --- a/configure.py +++ b/configure.py @@ -252,12 +252,10 @@ cflags_trk = [ cflags_odemuexi = [ *cflags_base, + "-inline auto,deferred" # TODO figure out flags ] -if version_num > 0: - cflags_odemuexi.append("-inline auto,deferred") - cflags_amcstub = [ *cflags_base, "-inline auto,deferred", @@ -805,7 +803,7 @@ config.libs = [ "cflags": cflags_odemuexi, "host": False, "objects": [ - Object(MatchingFor("GMPE01_01"), "OdemuExi2/DebuggerDriver.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "OdemuExi2/DebuggerDriver.c"), ], }, { diff --git a/src/OdemuExi2/DebuggerDriver.c b/src/OdemuExi2/DebuggerDriver.c index eb1415a9..36efa4dc 100644 --- a/src/OdemuExi2/DebuggerDriver.c +++ b/src/OdemuExi2/DebuggerDriver.c @@ -1,3 +1,347 @@ +#if VERSION == 0 + + #include + #include + #include + + typedef void (*MTRCallbackType)(int); + + static MTRCallbackType MTRCallback; + + static void (*DBGCallback)(u32, OSContext *); + + static u32 SendMailData; + + static s32 RecvDataLeng; + + static u8 *pEXIInputFlag; + + static u8 EXIInputFlag; + + static u8 SendCount = 0x80; + + #define IS_TRUE(x) ((x) != FALSE) + #define IS_FALSE(x) !IS_TRUE(x) + #define ROUND_UP(x, align) (((x) + (align)-1) & (-(align))) + + // functions + static void CheckMailBox(void); + static void MWCallback(u32 a, OSContext *b); + static void DBGHandler(s16 a, OSContext *b); + static u32 DBGEXISelect(u32 v); + static void DBGEXIInit(); + + void DBClose(void) { } + + void DBOpen(void) { } + + + BOOL DBWrite(void *src, u32 size) + { + u32 v; + u32 busyFlag; + BOOL interrupts = OSDisableInterrupts(); + + do { + _DBGReadStatus(&busyFlag); + } while (busyFlag & 2); + + SendCount++; + v = ((SendCount & 1) ? 0x1000 : 0); + + while (!DBGWrite(v | 0x1c000, src, ROUND_UP(size, 4))) + ; + + do { + _DBGReadStatus(&busyFlag); + } while (busyFlag & 2); + + v = SendCount; + while (!DBGWriteMailbox((0x1f000000) | v << 0x10 | size)) + ; + + do { + while (!_DBGReadStatus(&busyFlag)) + ; + } while (busyFlag & 2); + + OSRestoreInterrupts(interrupts); + + return 0; + } + + BOOL DBRead(u32 *buffer, s32 count) + { + u32 interrupts = OSDisableInterrupts(); + u32 v = SendMailData & 0x10000 ? 0x1000 : 0; + + DBGRead(v + 0x1e000, buffer, ROUND_UP(count, 4)); + + RecvDataLeng = 0; + EXIInputFlag = 0; + + OSRestoreInterrupts(interrupts); + + return 0; + } + + u32 DBQueryData(void) + { + BOOL interrupts; + EXIInputFlag = 0; + if (!RecvDataLeng) { + interrupts = OSDisableInterrupts(); + CheckMailBox(); + #if VERSION > 0 + OSRestoreInterrupts(interrupts); + } + #else + } + OSRestoreInterrupts(interrupts); + #endif + return RecvDataLeng; + } + + static void CheckMailBox(void) + { + u32 v; + DBGReadStatus(&v); + if (v & 1) { + DBGReadMailbox(&v); + v &= 0x1fffffff; + + if ((v & 0x1f000000) == 0x1f000000) { + SendMailData = v; + RecvDataLeng = v & 0x7fff; + EXIInputFlag = 1; + } + } + } + + void DBInitInterrupts(void) + { + __OSMaskInterrupts(0x18000); + __OSMaskInterrupts(0x40); + DBGCallback = &MWCallback; + __OSSetInterruptHandler(0x19, DBGHandler); + __OSUnmaskInterrupts(0x40); + } + + void DBInitComm(u8 **a, MTRCallbackType b) + { + BOOL interrupts = OSDisableInterrupts(); + { + pEXIInputFlag = (u8 *)EXIInputFlag; + pEXIInputFlag = &EXIInputFlag; + + *a = pEXIInputFlag; + + MTRCallback = b; + + DBGEXIInit(); + } + OSRestoreInterrupts(interrupts); + } + + static void DBGHandler(s16 a, OSContext *b) + { + *__PIRegs = 0x1000; + if (DBGCallback) { + DBGCallback(a, b); + } + } + + static void MWCallback(u32 a, OSContext *b) + { + EXIInputFlag = TRUE; + if (MTRCallback) { + MTRCallback(0); + } + } + + #pragma push + #pragma dont_inline on + static BOOL DBGReadStatus(u32 *p1) + { + return _DBGReadStatus(p1); + } + #pragma pop + + static BOOL _DBGReadStatus(u32 *p1) + { + BOOL total = FALSE; + u32 v; + + DBGEXISelect(4); + + v = 0x40000000; + total |= !(DBGEXIImm(&v, 2, 1)); + total |= !(DBGEXISync()); + + total |= !(DBGEXIImm(p1, 4, 0)); + total |= !(DBGEXISync()); + + total |= !(DBGEXIDeselect()); + + return !(total); + } + + static BOOL DBGWrite(u32 count, void *buffer, s32 param3) + { + BOOL total = FALSE; + u32 *buf_p = (u32 *)buffer; + u32 v1; + u32 v; + + DBGEXISelect(4); + + v1 = (count & 0x1fffc) << 8 | 0xa0000000; + total |= IS_FALSE(DBGEXIImm(&v1, sizeof(v1), 1)); + total |= IS_FALSE(DBGEXISync()); + + while (param3 != 0) { + v = *buf_p++; + + total |= IS_FALSE(DBGEXIImm(&v, sizeof(v), 1)); + total |= IS_FALSE(DBGEXISync()); + + param3 -= 4; + if (param3 < 0) { + param3 = 0; + } + } + + total |= IS_FALSE(DBGEXIDeselect()); + return IS_FALSE(total); + } + + static BOOL DBGRead(u32 count, u32 *buffer, s32 param3) + { + BOOL total = FALSE; + u32 *buf_p = (u32 *)buffer; + u32 v1; + u32 v; + + DBGEXISelect(4); + + v1 = (count & 0x1fffc) << 8 | 0x20000000; + total |= IS_FALSE(DBGEXIImm(&v1, sizeof(v1), 1)); + total |= IS_FALSE(DBGEXISync()); + + while (param3) { + total |= IS_FALSE(DBGEXIImm(&v, sizeof(v), 0)); + total |= IS_FALSE(DBGEXISync()); + + *buf_p++ = v; + + param3 -= 4; + if (param3 < 0) { + param3 = 0; + } + } + + total |= IS_FALSE(DBGEXIDeselect()); + return IS_FALSE(total); + } + + #pragma push + #pragma dont_inline on + static BOOL DBGReadMailbox(u32 *p1) + { + long cmd; + long v; + + DBGEXISelect(4); + + v = 0x60000000; + cmd = 0; + cmd |= !(DBGEXIImm(&v, 2, 1)); + cmd |= !(DBGEXISync()); + + cmd |= !(DBGEXIImm(p1, 4, 0)); + cmd |= !(DBGEXISync()); + + cmd |= !(DBGEXIDeselect()); + + return !(cmd); + } + #pragma pop + + static BOOL DBGWriteMailbox(u32 p1) + { + u32 cmd = 0xc0000000; + u32 v; + u32 base = p1; + BOOL total = FALSE; + + DBGEXISelect(4); + v = (base & 0x1fffffff) | (cmd); + total |= IS_FALSE(DBGEXIImm(&v, sizeof(v), 1)); + total |= IS_FALSE(DBGEXISync()); + total |= IS_FALSE(DBGEXIDeselect()); + + return IS_FALSE(total); + } + + static BOOL DBGEXIImm(void *buffer, s32 bytecounter, u32 write) + { + u8 *tempPointer; + u32 writeOutValue; + int i; + + if (write) { + tempPointer = buffer; + writeOutValue = 0; + for (i = 0; i < bytecounter; i++) { + u8 *temp = ((u8 *)buffer) + i; + writeOutValue |= *temp << ((3 - i) << 3); + } + __EXIRegs[14] = writeOutValue; + } + + __EXIRegs[13] = 1 | write << 2 | (bytecounter - 1) << 4; + DBGEXISync(); + + if (!write) { + writeOutValue = __EXIRegs[14]; + tempPointer = buffer; + for (i = 0; i < bytecounter; i++) { + *tempPointer++ = writeOutValue >> ((3 - i) << 3); + } + } + + return TRUE; + } + + static BOOL DBGEXISync() + { + while (__EXIRegs[13] & 1) + ; + + return TRUE; + } + + static BOOL DBGEXIDeselect(void) + { + __EXIRegs[10] &= 0x405; + return TRUE; + } + + static u32 DBGEXISelect(u32 v) + { + u32 regs = __EXIRegs[10]; + regs &= 0x405; + regs |= 0x80 | (v << 4); + __EXIRegs[10] = regs; + return TRUE; + } + + static void DBGEXIInit() + { + __OSMaskInterrupts(0x18000); + __EXIRegs[10] = 0; + } +#elif VERSION == 1 #include #include #include @@ -328,3 +672,7 @@ BOOL DBWrite(void *src, u32 size) void DBOpen(void) { } void DBClose(void) { } + +#else + +#endif From 4fdca137cd70e67b988192163bec68873b514774 Mon Sep 17 00:00:00 2001 From: CreateSource <72283721+abnormalhare@users.noreply.github.com> Date: Sun, 16 Mar 2025 15:50:44 -0400 Subject: [PATCH 306/311] Match OdemiExi2 (#575) * name audio.c and board/audio.c * fix audio, complete board/basic_space, battle * revert changes that broke build * completely finish New and NewMore.cp, for some reason NewMore fails checksum * finally match NewMore.cp * match NMWException.cpp * match mem_TRK * match TRK with correct linker, uses Revo's notify func * match TRKReadUARTPoll * match OdemiExi2 * undo git's stupidness * testing * naively match REV 1 for real this time --- .vscode/settings.json | 5 +- configure.py | 3 +- src/OdemuExi2/DebuggerDriver.c | 687 ++++++++++++++++----------------- 3 files changed, 335 insertions(+), 360 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index ac4cca7f..1e7df332 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -68,7 +68,8 @@ "roll.h": "c", "msghndlr.h": "c", "dispatch.h": "c", - "trk.h": "c" + "trk.h": "c", + "debuggerdriver.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { @@ -141,4 +142,4 @@ "C_Cpp_Runner.showCompilationTime": false, "C_Cpp_Runner.useLinkTimeOptimization": false, "C_Cpp_Runner.msvcSecureNoWarnings": false -} +} \ No newline at end of file diff --git a/configure.py b/configure.py index bf78c9d3..28660567 100644 --- a/configure.py +++ b/configure.py @@ -252,8 +252,7 @@ cflags_trk = [ cflags_odemuexi = [ *cflags_base, - "-inline auto,deferred" - # TODO figure out flags + "-inline deferred" ] cflags_amcstub = [ diff --git a/src/OdemuExi2/DebuggerDriver.c b/src/OdemuExi2/DebuggerDriver.c index 36efa4dc..b791b28b 100644 --- a/src/OdemuExi2/DebuggerDriver.c +++ b/src/OdemuExi2/DebuggerDriver.c @@ -1,347 +1,3 @@ -#if VERSION == 0 - - #include - #include - #include - - typedef void (*MTRCallbackType)(int); - - static MTRCallbackType MTRCallback; - - static void (*DBGCallback)(u32, OSContext *); - - static u32 SendMailData; - - static s32 RecvDataLeng; - - static u8 *pEXIInputFlag; - - static u8 EXIInputFlag; - - static u8 SendCount = 0x80; - - #define IS_TRUE(x) ((x) != FALSE) - #define IS_FALSE(x) !IS_TRUE(x) - #define ROUND_UP(x, align) (((x) + (align)-1) & (-(align))) - - // functions - static void CheckMailBox(void); - static void MWCallback(u32 a, OSContext *b); - static void DBGHandler(s16 a, OSContext *b); - static u32 DBGEXISelect(u32 v); - static void DBGEXIInit(); - - void DBClose(void) { } - - void DBOpen(void) { } - - - BOOL DBWrite(void *src, u32 size) - { - u32 v; - u32 busyFlag; - BOOL interrupts = OSDisableInterrupts(); - - do { - _DBGReadStatus(&busyFlag); - } while (busyFlag & 2); - - SendCount++; - v = ((SendCount & 1) ? 0x1000 : 0); - - while (!DBGWrite(v | 0x1c000, src, ROUND_UP(size, 4))) - ; - - do { - _DBGReadStatus(&busyFlag); - } while (busyFlag & 2); - - v = SendCount; - while (!DBGWriteMailbox((0x1f000000) | v << 0x10 | size)) - ; - - do { - while (!_DBGReadStatus(&busyFlag)) - ; - } while (busyFlag & 2); - - OSRestoreInterrupts(interrupts); - - return 0; - } - - BOOL DBRead(u32 *buffer, s32 count) - { - u32 interrupts = OSDisableInterrupts(); - u32 v = SendMailData & 0x10000 ? 0x1000 : 0; - - DBGRead(v + 0x1e000, buffer, ROUND_UP(count, 4)); - - RecvDataLeng = 0; - EXIInputFlag = 0; - - OSRestoreInterrupts(interrupts); - - return 0; - } - - u32 DBQueryData(void) - { - BOOL interrupts; - EXIInputFlag = 0; - if (!RecvDataLeng) { - interrupts = OSDisableInterrupts(); - CheckMailBox(); - #if VERSION > 0 - OSRestoreInterrupts(interrupts); - } - #else - } - OSRestoreInterrupts(interrupts); - #endif - return RecvDataLeng; - } - - static void CheckMailBox(void) - { - u32 v; - DBGReadStatus(&v); - if (v & 1) { - DBGReadMailbox(&v); - v &= 0x1fffffff; - - if ((v & 0x1f000000) == 0x1f000000) { - SendMailData = v; - RecvDataLeng = v & 0x7fff; - EXIInputFlag = 1; - } - } - } - - void DBInitInterrupts(void) - { - __OSMaskInterrupts(0x18000); - __OSMaskInterrupts(0x40); - DBGCallback = &MWCallback; - __OSSetInterruptHandler(0x19, DBGHandler); - __OSUnmaskInterrupts(0x40); - } - - void DBInitComm(u8 **a, MTRCallbackType b) - { - BOOL interrupts = OSDisableInterrupts(); - { - pEXIInputFlag = (u8 *)EXIInputFlag; - pEXIInputFlag = &EXIInputFlag; - - *a = pEXIInputFlag; - - MTRCallback = b; - - DBGEXIInit(); - } - OSRestoreInterrupts(interrupts); - } - - static void DBGHandler(s16 a, OSContext *b) - { - *__PIRegs = 0x1000; - if (DBGCallback) { - DBGCallback(a, b); - } - } - - static void MWCallback(u32 a, OSContext *b) - { - EXIInputFlag = TRUE; - if (MTRCallback) { - MTRCallback(0); - } - } - - #pragma push - #pragma dont_inline on - static BOOL DBGReadStatus(u32 *p1) - { - return _DBGReadStatus(p1); - } - #pragma pop - - static BOOL _DBGReadStatus(u32 *p1) - { - BOOL total = FALSE; - u32 v; - - DBGEXISelect(4); - - v = 0x40000000; - total |= !(DBGEXIImm(&v, 2, 1)); - total |= !(DBGEXISync()); - - total |= !(DBGEXIImm(p1, 4, 0)); - total |= !(DBGEXISync()); - - total |= !(DBGEXIDeselect()); - - return !(total); - } - - static BOOL DBGWrite(u32 count, void *buffer, s32 param3) - { - BOOL total = FALSE; - u32 *buf_p = (u32 *)buffer; - u32 v1; - u32 v; - - DBGEXISelect(4); - - v1 = (count & 0x1fffc) << 8 | 0xa0000000; - total |= IS_FALSE(DBGEXIImm(&v1, sizeof(v1), 1)); - total |= IS_FALSE(DBGEXISync()); - - while (param3 != 0) { - v = *buf_p++; - - total |= IS_FALSE(DBGEXIImm(&v, sizeof(v), 1)); - total |= IS_FALSE(DBGEXISync()); - - param3 -= 4; - if (param3 < 0) { - param3 = 0; - } - } - - total |= IS_FALSE(DBGEXIDeselect()); - return IS_FALSE(total); - } - - static BOOL DBGRead(u32 count, u32 *buffer, s32 param3) - { - BOOL total = FALSE; - u32 *buf_p = (u32 *)buffer; - u32 v1; - u32 v; - - DBGEXISelect(4); - - v1 = (count & 0x1fffc) << 8 | 0x20000000; - total |= IS_FALSE(DBGEXIImm(&v1, sizeof(v1), 1)); - total |= IS_FALSE(DBGEXISync()); - - while (param3) { - total |= IS_FALSE(DBGEXIImm(&v, sizeof(v), 0)); - total |= IS_FALSE(DBGEXISync()); - - *buf_p++ = v; - - param3 -= 4; - if (param3 < 0) { - param3 = 0; - } - } - - total |= IS_FALSE(DBGEXIDeselect()); - return IS_FALSE(total); - } - - #pragma push - #pragma dont_inline on - static BOOL DBGReadMailbox(u32 *p1) - { - long cmd; - long v; - - DBGEXISelect(4); - - v = 0x60000000; - cmd = 0; - cmd |= !(DBGEXIImm(&v, 2, 1)); - cmd |= !(DBGEXISync()); - - cmd |= !(DBGEXIImm(p1, 4, 0)); - cmd |= !(DBGEXISync()); - - cmd |= !(DBGEXIDeselect()); - - return !(cmd); - } - #pragma pop - - static BOOL DBGWriteMailbox(u32 p1) - { - u32 cmd = 0xc0000000; - u32 v; - u32 base = p1; - BOOL total = FALSE; - - DBGEXISelect(4); - v = (base & 0x1fffffff) | (cmd); - total |= IS_FALSE(DBGEXIImm(&v, sizeof(v), 1)); - total |= IS_FALSE(DBGEXISync()); - total |= IS_FALSE(DBGEXIDeselect()); - - return IS_FALSE(total); - } - - static BOOL DBGEXIImm(void *buffer, s32 bytecounter, u32 write) - { - u8 *tempPointer; - u32 writeOutValue; - int i; - - if (write) { - tempPointer = buffer; - writeOutValue = 0; - for (i = 0; i < bytecounter; i++) { - u8 *temp = ((u8 *)buffer) + i; - writeOutValue |= *temp << ((3 - i) << 3); - } - __EXIRegs[14] = writeOutValue; - } - - __EXIRegs[13] = 1 | write << 2 | (bytecounter - 1) << 4; - DBGEXISync(); - - if (!write) { - writeOutValue = __EXIRegs[14]; - tempPointer = buffer; - for (i = 0; i < bytecounter; i++) { - *tempPointer++ = writeOutValue >> ((3 - i) << 3); - } - } - - return TRUE; - } - - static BOOL DBGEXISync() - { - while (__EXIRegs[13] & 1) - ; - - return TRUE; - } - - static BOOL DBGEXIDeselect(void) - { - __EXIRegs[10] &= 0x405; - return TRUE; - } - - static u32 DBGEXISelect(u32 v) - { - u32 regs = __EXIRegs[10]; - regs &= 0x405; - regs |= 0x80 | (v << 4); - __EXIRegs[10] = regs; - return TRUE; - } - - static void DBGEXIInit() - { - __OSMaskInterrupts(0x18000); - __EXIRegs[10] = 0; - } -#elif VERSION == 1 #include #include #include @@ -366,15 +22,311 @@ static u8 SendCount = 0x80; #define IS_FALSE(x) !IS_TRUE(x) #define ROUND_UP(x, align) (((x) + (align)-1) & (-(align))) -// TODO +#if VERSION == VERSION_NO_ENG0 -void DBGEXIInit() +static void DBGEXIInit(); +static u32 DBGEXISelect(u32 v); +static void CheckMailBox(void); +static void MWCallback(u32 a, OSContext *b); +static void DBGHandler(s16 a, OSContext *b); + +void DBClose(void) { } + +void DBOpen(void) { } + +BOOL DBWrite(void *src, u32 size) { - __OSMaskInterrupts(0x18000); - __EXIRegs[10] = 0; + u32 v; + u32 busyFlag; + BOOL interrupts = OSDisableInterrupts(); + + do { + _DBGReadStatus(&busyFlag); + } while (busyFlag & 2); + + SendCount++; + v = ((SendCount & 1) ? 0x1000 : 0); + + while (!DBGWrite(v | 0x1c000, src, ROUND_UP(size, 4))) + ; + + do { + _DBGReadStatus(&busyFlag); + } while (busyFlag & 2); + + v = SendCount; + while (!DBGWriteMailbox((0x1f000000) | v << 0x10 | size)) + ; + + do { + while (!_DBGReadStatus(&busyFlag)) + ; + } while (busyFlag & 2); + + OSRestoreInterrupts(interrupts); + + return 0; } -static u32 DBGEXISelect(u32 v) +BOOL DBRead(u32 *buffer, s32 count) +{ + u32 interrupts = OSDisableInterrupts(); + u32 v = SendMailData & 0x10000 ? 0x1000 : 0; + + DBGRead(v + 0x1e000, buffer, ROUND_UP(count, 4)); + + RecvDataLeng = 0; + EXIInputFlag = 0; + + OSRestoreInterrupts(interrupts); + + return 0; +} + +u32 DBQueryData(void) +{ + BOOL interrupts; + EXIInputFlag = 0; + if (!RecvDataLeng) { + interrupts = OSDisableInterrupts(); + CheckMailBox(); +#if VERSION > 0 + OSRestoreInterrupts(interrupts); + } +#else + } + OSRestoreInterrupts(interrupts); +#endif + return RecvDataLeng; +} + +inline static void CheckMailBox(void) +{ + u32 v; + DBGReadStatus(&v); + if (v & 1) { + DBGReadMailbox(&v); + v &= 0x1fffffff; + + if ((v & 0x1f000000) == 0x1f000000) { + SendMailData = v; + RecvDataLeng = v & 0x7fff; + EXIInputFlag = 1; + } + } +} + +void DBInitInterrupts(void) +{ + __OSMaskInterrupts(0x18000); + __OSMaskInterrupts(0x40); + DBGCallback = &MWCallback; + __OSSetInterruptHandler(0x19, DBGHandler); + __OSUnmaskInterrupts(0x40); +} + +void DBInitComm(u8 **a, MTRCallbackType b) +{ + BOOL interrupts = OSDisableInterrupts(); + { + pEXIInputFlag = (u8 *)EXIInputFlag; + pEXIInputFlag = &EXIInputFlag; + + *a = pEXIInputFlag; + + MTRCallback = b; + + DBGEXIInit(); + } + OSRestoreInterrupts(interrupts); +} + +inline static BOOL _DBGReadStatus(u32 *p1) +{ + BOOL total = FALSE; + u32 v; + + DBGEXISelect(4); + + v = 1 << 30; + total |= IS_FALSE(DBGEXIImm(&v, 2, 1)); + total |= IS_FALSE(DBGEXISync()); + + total |= IS_FALSE(DBGEXIImm(p1, 4, 0)); + total |= IS_FALSE(DBGEXISync()); + + total |= IS_FALSE(DBGEXIDeselect()); + + return IS_FALSE(total); +} + +static void DBGHandler(s16 a, OSContext *b) +{ + *__PIRegs = 0x1000; + if (DBGCallback) { + DBGCallback(a, b); + } +} + +static void MWCallback(u32 a, OSContext *b) +{ + EXIInputFlag = TRUE; + if (MTRCallback) { + MTRCallback(0); + } +} + +#pragma push +#pragma dont_inline on +static BOOL DBGReadStatus(u32 *p1) +{ + return _DBGReadStatus(p1); +} +#pragma pop + +static BOOL DBGWrite(u32 count, void *buffer, s32 param3) +{ + BOOL total = FALSE; + u32 *buf_p = (u32 *)buffer; + u32 v1; + u32 v; + + DBGEXISelect(4); + + v1 = (count & 0x1fffc) << 8 | 0xa0000000; + total |= IS_FALSE(DBGEXIImm(&v1, sizeof(v1), 1)); + total |= IS_FALSE(DBGEXISync()); + + while (param3 != 0) { + v = *buf_p++; + + total |= IS_FALSE(DBGEXIImm(&v, sizeof(v), 1)); + total |= IS_FALSE(DBGEXISync()); + + param3 -= 4; + if (param3 < 0) { + param3 = 0; + } + } + + total |= IS_FALSE(DBGEXIDeselect()); + return IS_FALSE(total); +} + +static BOOL DBGRead(u32 count, u32 *buffer, s32 param3) +{ + BOOL total = FALSE; + u32 *buf_p = (u32 *)buffer; + u32 v1; + u32 v; + + DBGEXISelect(4); + + v1 = (count & 0x1fffc) << 8 | 0x20000000; + total |= IS_FALSE(DBGEXIImm(&v1, sizeof(v1), 1)); + total |= IS_FALSE(DBGEXISync()); + + while (param3) { + total |= IS_FALSE(DBGEXIImm(&v, sizeof(v), 0)); + total |= IS_FALSE(DBGEXISync()); + + *buf_p++ = v; + + param3 -= 4; + if (param3 < 0) { + param3 = 0; + } + } + + total |= IS_FALSE(DBGEXIDeselect()); + return IS_FALSE(total); +} + +#define TO_BOOL(x) (((u32)__cntlzw((x)) >> 5)) +#pragma push +#pragma dont_inline on +static BOOL DBGReadMailbox(u32* p1) +{ + u32 v; + u32 total = 0; + u32 stack0, stack1, stack2; + + DBGEXISelect(4); + + v = 0x60000000; + total |= !(DBGEXIImm(&v, 2, 1) != 0); + DBGEXISync(); + + total |= !(DBGEXIImm(p1, 4, 0) != 0); + DBGEXISync(); + + DBGEXIDeselect(); + total = TO_BOOL(total); + return total; +} +#pragma pop + +inline static BOOL DBGWriteMailbox(u32 p1) +{ + u32 cmd = 0xc0000000; + u32 v; + u32 base = p1; + BOOL total = FALSE; + + DBGEXISelect(4); + v = (base & 0x1fffffff) | (cmd); + total |= IS_FALSE(DBGEXIImm(&v, sizeof(v), 1)); + total |= IS_FALSE(DBGEXISync()); + total |= IS_FALSE(DBGEXIDeselect()); + + return IS_FALSE(total); +} + +static BOOL DBGEXIImm(void *buffer, s32 bytecounter, u32 write) +{ + u8 *tempPointer; + u32 writeOutValue; + int i; + + if (write) { + tempPointer = buffer; + writeOutValue = 0; + for (i = 0; i < bytecounter; i++) { + u8 *temp = ((u8 *)buffer) + i; + writeOutValue |= *temp << ((3 - i) << 3); + } + __EXIRegs[14] = writeOutValue; + } + + __EXIRegs[13] = 1 | write << 2 | (bytecounter - 1) << 4; + DBGEXISync(); + + if (!write) { + writeOutValue = __EXIRegs[14]; + tempPointer = buffer; + for (i = 0; i < bytecounter; i++) { + *tempPointer++ = writeOutValue >> ((3 - i) << 3); + } + } + + return TRUE; +} + +inline static BOOL DBGEXISync() +{ + while (__EXIRegs[13] & 1) + ; + + return TRUE; +} + +inline BOOL DBGEXIDeselect(void) +{ + __EXIRegs[10] &= 0x405; + return TRUE; +} + +inline static u32 DBGEXISelect(u32 v) { u32 regs = __EXIRegs[10]; regs &= 0x405; @@ -383,13 +335,36 @@ static u32 DBGEXISelect(u32 v) return TRUE; } -BOOL DBGEXIDeselect(void) +inline static void DBGEXIInit() +{ + __OSMaskInterrupts(0x18000); + __EXIRegs[10] = 0; +} + +#else + +inline void DBGEXIInit() +{ + __OSMaskInterrupts(0x18000); + __EXIRegs[10] = 0; +} + +inline static u32 DBGEXISelect(u32 v) +{ + u32 regs = __EXIRegs[10]; + regs &= 0x405; + regs |= 0x80 | (v << 4); + __EXIRegs[10] = regs; + return TRUE; +} + +inline BOOL DBGEXIDeselect(void) { __EXIRegs[10] &= 0x405; return TRUE; } -static BOOL DBGEXISync() +inline static BOOL DBGEXISync() { while (__EXIRegs[13] & 1) ; @@ -427,7 +402,7 @@ static BOOL DBGEXIImm(void *buffer, s32 bytecounter, u32 write) return TRUE; } -static BOOL DBGWriteMailbox(u32 p1) +inline static BOOL DBGWriteMailbox(u32 p1) { u32 cmd = 0xc0000000; u32 v; @@ -522,7 +497,7 @@ static BOOL DBGWrite(u32 count, void *buffer, s32 param3) return IS_FALSE(total); } -static BOOL _DBGReadStatus(u32 *p1) +inline static BOOL _DBGReadStatus(u32 *p1) { BOOL total = FALSE; u32 v; @@ -541,10 +516,12 @@ static BOOL _DBGReadStatus(u32 *p1) return IS_FALSE(total); } +#pragma dont_inline on static BOOL DBGReadStatus(u32 *p1) { return _DBGReadStatus(p1); } +#pragma dont_inline reset static void MWCallback(u32 a, OSContext *b) { @@ -587,7 +564,7 @@ void DBInitInterrupts(void) __OSUnmaskInterrupts(0x40); } -static void CheckMailBox(void) +inline static void CheckMailBox(void) { u32 v; DBGReadStatus(&v); @@ -673,6 +650,4 @@ void DBOpen(void) { } void DBClose(void) { } -#else - #endif From 53f19c4f6c5e565df113a61a34806441966b665d Mon Sep 17 00:00:00 2001 From: Rainchus Date: Sun, 16 Mar 2025 15:05:13 -0500 Subject: [PATCH 307/311] match targimpl for US versions (#576) --- config/GMPE01_00/splits.txt | 2 +- config/GMPE01_01/splits.txt | 2 +- configure.py | 2 +- src/TRK_MINNOW_DOLPHIN/targimpl.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/GMPE01_00/splits.txt b/config/GMPE01_00/splits.txt index 4751f858..0c85aae7 100644 --- a/config/GMPE01_00/splits.txt +++ b/config/GMPE01_00/splits.txt @@ -1216,7 +1216,7 @@ TRK_MINNOW_DOLPHIN/mem_TRK.c: .text start:0x800F0398 end:0x800F0454 TRK_MINNOW_DOLPHIN/targimpl.c: - .text start:0x800F0454 end:0x800F1CF0 + .text start:0x800F0454 end:0x800F1CE4 .rodata start:0x8011EA90 end:0x8011EB18 .data start:0x8013EA58 end:0x8013EA88 .bss start:0x801A9138 end:0x801A96B8 diff --git a/config/GMPE01_01/splits.txt b/config/GMPE01_01/splits.txt index 4751f858..0c85aae7 100644 --- a/config/GMPE01_01/splits.txt +++ b/config/GMPE01_01/splits.txt @@ -1216,7 +1216,7 @@ TRK_MINNOW_DOLPHIN/mem_TRK.c: .text start:0x800F0398 end:0x800F0454 TRK_MINNOW_DOLPHIN/targimpl.c: - .text start:0x800F0454 end:0x800F1CF0 + .text start:0x800F0454 end:0x800F1CE4 .rodata start:0x8011EA90 end:0x8011EB18 .data start:0x8013EA58 end:0x8013EA88 .bss start:0x801A9138 end:0x801A96B8 diff --git a/configure.py b/configure.py index 28660567..3721f4c9 100644 --- a/configure.py +++ b/configure.py @@ -749,7 +749,7 @@ config.libs = [ Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/notify.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/flush_cache.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/mem_TRK.c"), - Object(NonMatching, "TRK_MINNOW_DOLPHIN/targimpl.c"), + Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/targimpl.c"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/targsupp.s"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/__exception.s"), Object(MatchingFor("GMPE01_00", "GMPE01_01"), "TRK_MINNOW_DOLPHIN/dolphin_trk.c"), diff --git a/src/TRK_MINNOW_DOLPHIN/targimpl.c b/src/TRK_MINNOW_DOLPHIN/targimpl.c index c25b33d4..ab925687 100644 --- a/src/TRK_MINNOW_DOLPHIN/targimpl.c +++ b/src/TRK_MINNOW_DOLPHIN/targimpl.c @@ -1192,7 +1192,7 @@ DSError TRKPPCAccessSpecialReg(void* value, u32* access_func, BOOL read) #endif // Flush cache - TRK_flush_cache(access_func, (sizeof(access_func) * 10)); + TRK_flush_cache((void*)(u32)access_func, (sizeof(access_func) * 10)); (*asm_access)((u32*)value, (void*)&TRKvalue128_temp); return DS_NoError; From 4b0737d49ceed80017a02974f0514ff682fba24a Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Tue, 1 Apr 2025 02:17:36 +0200 Subject: [PATCH 308/311] Some fixes (#577) * Mini improvements * Fix some splits --- config/GMPE01_00/rels/nisDll/splits.txt | 3 ++- config/GMPE01_00/splits.txt | 2 +- config/GMPE01_00/symbols.txt | 12 ++++++------ include/dolphin/thp/THPPlayer.h | 11 ++++++----- src/REL/m446Dll/table.c | 2 +- src/REL/nisDll/main.c | 1 + src/TRK_MINNOW_DOLPHIN/targimpl.c | 1 + src/TRK_MINNOW_DOLPHIN/targsupp.s | 2 +- src/game/hsfman.c | 12 ++++++------ 9 files changed, 25 insertions(+), 21 deletions(-) diff --git a/config/GMPE01_00/rels/nisDll/splits.txt b/config/GMPE01_00/rels/nisDll/splits.txt index d512c836..4554248b 100644 --- a/config/GMPE01_00/rels/nisDll/splits.txt +++ b/config/GMPE01_00/rels/nisDll/splits.txt @@ -2,7 +2,8 @@ Sections: .text type:code align:4 .ctors type:rodata align:4 .dtors type:rodata align:4 - .data type:data align:8 + .rodata type:rodata align:8 REL/nisDll/main.c: .text start:0x00000000 end:0x0000017C + .rodata start:0x00000000 end:0x00000010 diff --git a/config/GMPE01_00/splits.txt b/config/GMPE01_00/splits.txt index 0c85aae7..d9a64bf5 100644 --- a/config/GMPE01_00/splits.txt +++ b/config/GMPE01_00/splits.txt @@ -1222,7 +1222,7 @@ TRK_MINNOW_DOLPHIN/targimpl.c: .bss start:0x801A9138 end:0x801A96B8 TRK_MINNOW_DOLPHIN/targsupp.s: - .text start:0x800F1CF0 end:0x800F1D10 + .text start:0x800F1CE4 end:0x800F1D10 TRK_MINNOW_DOLPHIN/__exception.s: .init start:0x80003534 end:0x80005468 diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index 19a42077..17ef4f4f 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -3032,9 +3032,9 @@ TRK_flush_cache = .text:0x800F0360; // type:function size:0x38 TRK_fill_mem = .text:0x800F0398; // type:function size:0xBC __TRK_get_MSR = .text:0x800F0454; // type:function size:0x8 __TRK_set_MSR = .text:0x800F045C; // type:function size:0x8 -TRK_ppc_memcpy = .text:0x800F0464; // type:function size:0x3C +TRK_ppc_memcpy = .text:0x800F0464; // type:function size:0x3C scope:local TRKInterruptHandler = .text:0x800F04A0; // type:function size:0x194 scope:global -TRKExceptionHandler = .text:0x800F0634; // type:function size:0x9C scope:global +TRKExceptionHandler = .text:0x800F0634; // type:function size:0x9C scope:local TRKSwapAndGo = .text:0x800F06D0; // type:function size:0xC4 scope:global TRKInterruptHandlerEnableInterrupts = .text:0x800F0794; // type:function size:0x54 scope:global TRKTargetSetInputPendingPtr = .text:0x800F07E8; // type:function size:0x10 scope:global @@ -3670,9 +3670,9 @@ aT = .rodata:0x8011E9F8; // type:object size:0x58 scope:local @62 = .rodata:0x8011EA50; // type:object size:0x1C scope:local data:string lbl_8011EA70 = .rodata:0x8011EA70; // type:object size:0x1D data:string gTRKMemMap = .rodata:0x8011EA90; // type:object size:0x10 data:4byte -lbl_8011EAA0 = .rodata:0x8011EAA0; // type:object size:0x28 data:4byte -lbl_8011EAC8 = .rodata:0x8011EAC8; // type:object size:0x28 data:4byte -lbl_8011EAF0 = .rodata:0x8011EAF0; // type:object size:0x28 data:4byte +lbl_8011EAA0 = .rodata:0x8011EAA0; // type:object size:0x28 scope:local data:4byte +lbl_8011EAC8 = .rodata:0x8011EAC8; // type:object size:0x28 scope:local data:4byte +lbl_8011EAF0 = .rodata:0x8011EAF0; // type:object size:0x28 scope:local data:4byte @154 = .rodata:0x8011EB18; // type:object size:0x21 scope:local data:string @155 = .rodata:0x8011EB3C; // type:object size:0x24 scope:local data:string dspMixerCycles = .rodata:0x8011EB60; // type:object size:0x40 @@ -4517,7 +4517,7 @@ jumptable_8013EA20 = .data:0x8013EA20; // type:object size:0x1C scope:local jumptable_8013EA3C = .data:0x8013EA3C; // type:object size:0x1C scope:local gTRKRestoreFlags = .data:0x8013EA58; // type:object size:0x9 scope:global data:byte gTRKExceptionStatus = .data:0x8013EA64; // type:object size:0x10 scope:local data:4byte -gTRKStepStatus = .data:0x8013EA74; // type:object size:0x14 data:4byte +gTRKStepStatus = .data:0x8013EA74; // type:object size:0x14 scope:local data:4byte TRK_ISR_OFFSETS = .data:0x8013EA88; // type:object size:0x3C scope:local data:4byte gDBCommTable = .data:0x8013EAC8; // type:object size:0x1C scope:global data:4byte jumptable_8013EAE8 = .data:0x8013EAE8; // type:object size:0x50 scope:local diff --git a/include/dolphin/thp/THPPlayer.h b/include/dolphin/thp/THPPlayer.h index 8cd1e6ca..eb6fff62 100644 --- a/include/dolphin/thp/THPPlayer.h +++ b/include/dolphin/thp/THPPlayer.h @@ -2,11 +2,12 @@ #define _THP_THPPLAYER_H #include "types.h" -#include "Dolphin/os.h" -#include "Dolphin/gx.h" -#include "THP/THPBuffer.h" -#include "THP/THPFile.h" -#include "THP/THPInfo.h" +#include +#include "dolphin/os.h" +#include "dolphin/gx.h" +#include "dolphin/thp/THPBuffer.h" +#include "dolphin/thp/THPFile.h" +#include "dolphin/thp/THPInfo.h" #ifdef __cplusplus extern "C" { diff --git a/src/REL/m446Dll/table.c b/src/REL/m446Dll/table.c index f1de1c13..ea79e3b9 100644 --- a/src/REL/m446Dll/table.c +++ b/src/REL/m446Dll/table.c @@ -240,7 +240,7 @@ s32 fn_1_4088(unkStruct6 *arg0, u8 arg1, u8 arg2, s32 arg3, unkStruct4 **arg4, s arg0->unk68 = 0x1E; } if ((arg0->unk68 > 0) && (arg5 == 0)) { - arg0->unk68 = (arg0->unk68 - 1); + arg0->unk68--; } else { var_r28 = (arg0->unk64 / 7) < (arg0->unk60 / 7); diff --git a/src/REL/nisDll/main.c b/src/REL/nisDll/main.c index a50c5b18..4dc839ce 100644 --- a/src/REL/nisDll/main.c +++ b/src/REL/nisDll/main.c @@ -1,4 +1,5 @@ #include "game/object.h" +#include "math.h" void fn_1_68(omObjData *object); diff --git a/src/TRK_MINNOW_DOLPHIN/targimpl.c b/src/TRK_MINNOW_DOLPHIN/targimpl.c index ab925687..ba77ff35 100644 --- a/src/TRK_MINNOW_DOLPHIN/targimpl.c +++ b/src/TRK_MINNOW_DOLPHIN/targimpl.c @@ -94,6 +94,7 @@ static void TRK_ppc_memcpy(register void* dest, register const void* src, void TRKRestoreExtended1Block(); void TRKUARTInterruptHandler(); +DSError TRKTargetReadInstruction(void* data, u32 start); static BOOL TRKTargetCheckStep(); diff --git a/src/TRK_MINNOW_DOLPHIN/targsupp.s b/src/TRK_MINNOW_DOLPHIN/targsupp.s index 670f691f..0244131b 100644 --- a/src/TRK_MINNOW_DOLPHIN/targsupp.s +++ b/src/TRK_MINNOW_DOLPHIN/targsupp.s @@ -2,7 +2,7 @@ .file "targsupp.s" .text -.balign 4 +.balign 16 .fn TRKAccessFile, global twui r0, 0x0 diff --git a/src/game/hsfman.c b/src/game/hsfman.c index e02c8edb..b455a0cf 100644 --- a/src/game/hsfman.c +++ b/src/game/hsfman.c @@ -1394,7 +1394,7 @@ inline s16 Hu3DLightCreateV(LightData *light, Vec *arg0, Vec *arg1, GXColor *arg light->color = *arg2; } -s16 Hu3DGLightCreateV(Vec* arg0, Vec* arg1, GXColor* arg2) { +s16 Hu3DGLightCreateV(Vec* pos, Vec* dir, GXColor* color) { s16 var_r30; LightData* var_r31; @@ -1409,7 +1409,7 @@ s16 Hu3DGLightCreateV(Vec* arg0, Vec* arg1, GXColor* arg2) { return -1; } - Hu3DLightCreateV(var_r31, arg0, arg1, arg2); + Hu3DLightCreateV(var_r31, pos, dir, color); return var_r30; } @@ -1894,10 +1894,10 @@ void Hu3DShadowCreate(f32 arg8, f32 arg9, f32 argA) { Hu3DShadowF = 1; } -void Hu3DShadowPosSet(Vec* arg0, Vec* arg1, Vec* arg2) { - Hu3DShadowData.unk_14 = *arg0; - Hu3DShadowData.unk_20 = *arg2; - Hu3DShadowData.unk_2C = *arg1; +void Hu3DShadowPosSet(Vec* camPos, Vec* camUp, Vec* camTarget) { + Hu3DShadowData.unk_14 = *camPos; + Hu3DShadowData.unk_20 = *camTarget; + Hu3DShadowData.unk_2C = *camUp; } void Hu3DShadowTPLvlSet(f32 arg8) { From 887cb00c5be9fb1d824756ff0a935904148c202e Mon Sep 17 00:00:00 2001 From: dbalatoni13 <40299962+dbalatoni13@users.noreply.github.com> Date: Tue, 1 Apr 2025 07:11:31 +0200 Subject: [PATCH 309/311] Cleanup and get rid of many warnings when compiling with stricter warnings (#578) * Mini improvements * Fix some splits * Remove last comma from enums * Fix symbols * Fix some headers and missing prototypes * Replace most of f32 with float * Replace most of Point3d with Vec * Add missing esprite include with guard * Add HuSetVecF to ext_math behind a guard * More includes --- config/GMPE01_00/rels/mgmodedll/symbols.txt | 4 +- include/PowerPC_EABI_Support/MetroTRK/trk.h | 26 +- .../Msl/MSL_C/MSL_Common/ansi_files.h | 10 +- include/REL/m407dll.h | 49 +- include/REL/m409Dll.h | 233 +++--- include/REL/m412Dll.h | 41 +- include/REL/m415Dll.h | 144 ++-- include/REL/m418Dll.h | 40 +- include/REL/m424Dll.h | 20 +- include/REL/m427Dll.h | 4 +- include/REL/m438Dll.h | 50 +- include/REL/m440Dll.h | 240 +++--- include/REL/m446Dll.h | 281 +++---- include/REL/mentDll.h | 14 +- include/REL/modeltestDll.h | 32 +- include/REL/w02Dll.h | 88 +-- include/REL/w05Dll.h | 90 +-- include/REL/w10Dll.h | 2 +- include/data_num/title.h | 6 +- include/data_num/win.h | 4 +- include/dolphin/demo/DEMOPuts.h | 2 +- include/dolphin/demo/DEMOStats.h | 4 +- include/dolphin/gx/GXEnum.h | 135 ++-- include/dolphin/gx/GXExtra.h | 2 +- include/dolphin/gx/GXStruct.h | 2 +- include/dolphin/gx/GXVerify.h | 2 +- include/dolphin/vitypes.h | 4 +- include/ext_math.h | 4 + include/game/data.h | 6 +- include/game/hsfanim.h | 4 +- include/game/hsfman.h | 153 ++-- include/game/minigame_seq.h | 4 +- src/REL/m403Dll/main.c | 4 + src/REL/m404Dll/main.c | 5 + src/REL/m407dll/camera.c | 134 ++-- src/REL/m407dll/effect.c | 1 + src/REL/m407dll/main.c | 13 +- src/REL/m407dll/map.c | 10 +- src/REL/m407dll/player.c | 5 +- src/REL/m407dll/score.c | 6 +- src/REL/m407dll/whomp.c | 4 +- src/REL/m408Dll/main.c | 4 + src/REL/m409Dll/player.c | 4 + src/REL/m410Dll/player.c | 6 +- src/REL/m424Dll/ball.c | 3 +- src/REL/m427Dll/main.c | 4 + src/REL/m427Dll/map.c | 2 +- src/REL/m434Dll/main.c | 4 + src/REL/m443Dll/player.c | 2 +- src/REL/m444dll/datalist.c | 6 +- src/REL/m455Dll/main.c | 4 + src/REL/m461Dll/main.c | 4 + src/REL/mentDll/common.c | 6 +- src/REL/modeltestDll/main.c | 24 +- src/REL/modeltestDll/modeltest00.c | 86 +- src/REL/modeseldll/filesel.c | 4 + src/REL/resultDll/battle.c | 4 + src/REL/resultDll/datalist.c | 6 +- src/REL/resultDll/main.c | 4 + src/REL/w02Dll/main.c | 175 +++-- src/REL/w02Dll/roulette.c | 734 +++++++++--------- src/REL/w03Dll/mg_coin.c | 20 +- src/REL/w03Dll/mg_item.c | 16 +- src/REL/w03Dll/river.c | 163 ++-- src/REL/w03Dll/statue.c | 25 +- src/dolphin/mtx/mtx.c | 2 +- src/game/board/block.c | 13 +- 67 files changed, 1662 insertions(+), 1545 deletions(-) diff --git a/config/GMPE01_00/rels/mgmodedll/symbols.txt b/config/GMPE01_00/rels/mgmodedll/symbols.txt index 5a1f7053..a969c989 100644 --- a/config/GMPE01_00/rels/mgmodedll/symbols.txt +++ b/config/GMPE01_00/rels/mgmodedll/symbols.txt @@ -531,8 +531,8 @@ lbl_1_bss_2CC = .bss:0x000002CC; // type:object size:0x2 data:2byte lbl_1_bss_2CE = .bss:0x000002CE; // type:object size:0x2 data:2byte lbl_1_bss_2D0 = .bss:0x000002D0; // type:object size:0x4 data:4byte lbl_1_bss_2D4 = .bss:0x000002D4; // type:object size:0x4 data:4byte -lbl_1_bss_2D8 = .bss:0x000002D8; // type:object size:0x4 data:4byte -lbl_1_bss_2DC = .bss:0x000002DC; // type:object size:0x4 data:4byte +objman = .bss:0x000002D8; // type:object size:0x4 data:4byte +outViewObj = .bss:0x000002DC; // type:object size:0x4 data:4byte lbl_1_bss_2E2 = .bss:0x000002E2; // type:object size:0x2 data:2byte lbl_1_bss_2E4 = .bss:0x000002E4; // type:object size:0x2 data:2byte lbl_1_bss_2E6 = .bss:0x000002E6; // type:object size:0x2 data:2byte diff --git a/include/PowerPC_EABI_Support/MetroTRK/trk.h b/include/PowerPC_EABI_Support/MetroTRK/trk.h index 66b36f3b..f7fa1c09 100644 --- a/include/PowerPC_EABI_Support/MetroTRK/trk.h +++ b/include/PowerPC_EABI_Support/MetroTRK/trk.h @@ -12,7 +12,7 @@ extern "C" { typedef enum { HARDWARE_AMC_DDH = 0, HARDWARE_GDEV = 1, - HARDWARE_BBA = 2, + HARDWARE_BBA = 2 } HardwareType; // DS Error returns. @@ -37,7 +37,7 @@ enum { DS_InvalidThreadID = 0x705, DS_OSError = 0x706, - DS_Error800 = 0x800, + DS_Error800 = 0x800 }; typedef int DSError; @@ -46,14 +46,14 @@ typedef int DSError; typedef enum { DS_Stdin = 0, DS_Stdout = 1, - DS_Stderr = 2, + DS_Stderr = 2 } DSFileHandle; // IO returns. typedef enum { DS_IONoError = 0, DS_IOError = 1, - DS_IOEOF = 2, + DS_IOEOF = 2 } DSIOResult; // Message command IDs @@ -86,7 +86,7 @@ typedef enum { DSMSG_CloseFile = 0xD3, DSMSG_PositionFile = 0xD4, - DSMSG_ReplyNAK = 0xFF, + DSMSG_ReplyNAK = 0xFF } MessageCommandID; // Register commands. @@ -94,7 +94,7 @@ typedef enum { DSREG_Default = 0, DSREG_FP = 1, DSREG_Extended1 = 2, - DSREG_Extended2 = 3, + DSREG_Extended2 = 3 } DSMessageRegisterOptions; // Step commands. @@ -102,7 +102,7 @@ typedef enum { DSSTEP_IntoCount = 0x0, DSSTEP_IntoRange = 0x1, DSSTEP_OverCount = 0x10, - DSSTEP_OverRange = 0x11, + DSSTEP_OverRange = 0x11 } DSMessageStepOptions; typedef enum { @@ -128,14 +128,14 @@ typedef enum { DSREPLY_OSError = 0x20, DSREPLY_InvalidProcessID = 0x21, DSREPLY_InvalidThreadID = 0x22, - DSREPLY_DebugSecurityError = 0x23, + DSREPLY_DebugSecurityError = 0x23 } DSReplyError; typedef enum { DSRECV_Wait = 0, DSRECV_Found = 1, DSRECV_InFrame = 2, - DSRECV_FrameOverflow = 3, + DSRECV_FrameOverflow = 3 } ReceiverState; typedef enum { @@ -154,17 +154,17 @@ typedef enum { NUBEVENT_Request = 2, NUBEVENT_Breakpoint = 3, NUBEVENT_Exception = 4, - NUBEVENT_Support = 5, + NUBEVENT_Support = 5 } NubEventType; typedef enum { VALIDMEM_Readable = 0, - VALIDMEM_Writeable = 1, + VALIDMEM_Writeable = 1 } ValidMemoryOptions; typedef enum { MEMACCESS_UserMemory = 0, - MEMACCESS_DebuggerMemory = 1, + MEMACCESS_DebuggerMemory = 1 } MemoryAccessOptions; typedef int UARTError; @@ -174,7 +174,7 @@ typedef enum { UART_UnknownBaudRate = 1, UART_ConfigurationError = 2, UART_BufferOverflow = 3, // specified buffer was too small - UART_NoData = 4, // no data available from polling + UART_NoData = 4 // no data available from polling } UARTErrorOptions; typedef enum { diff --git a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h index a1fb6fdc..2e0e8010 100644 --- a/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h +++ b/include/PowerPC_EABI_Support/Msl/MSL_C/MSL_Common/ansi_files.h @@ -28,13 +28,13 @@ enum __file_kinds { __disk_file, __console_file, __string_file, - __unavailable_file, + __unavailable_file }; enum __file_orientation { /* 0x0 */ UNORIENTED, /* 0x1 */ CHAR_ORIENTED, - /* 0x2 */ WIDE_ORIENTED, + /* 0x2 */ WIDE_ORIENTED }; typedef struct _file_modes { @@ -50,20 +50,20 @@ enum __io_modes { __read = 1, __write = 2, __read_write = 3, - __append = 4, + __append = 4 }; enum __io_states { __neutral, __writing, __reading, - __rereading, + __rereading }; enum __io_results { __no_io_error, __io_error, - __io_EOF, + __io_EOF }; typedef struct _file_states { diff --git a/include/REL/m407dll.h b/include/REL/m407dll.h index a5dbf0fb..525a406d 100644 --- a/include/REL/m407dll.h +++ b/include/REL/m407dll.h @@ -5,6 +5,53 @@ #define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) -typedef void (*ObjFuncs)(omObjData*); +typedef void (*VoidFuncs)(void); +typedef void (*ObjFuncs)(omObjData *); + +void fn_1_F4(Process *arg0); +void fn_1_194(void); +void fn_1_1E4(void); +void fn_1_238(void); +void fn_1_28C(void); +void fn_1_2E0(void); +void fn_1_334(void); +void fn_1_388(u8, s32); +void fn_1_3C4(u8); +void fn_1_404(void); +s32 fn_1_508(u8); +s32 fn_1_53C(u8); +void fn_1_568(s16, s16, s16); + +void fn_1_14F0(Process *arg0, s32 arg1); +void fn_1_15D8(void); + +void fn_1_1B1C(Process *arg0); +void fn_1_1CA8(void); +void fn_1_1CAC(float, float, float); +void fn_1_1CD4(float *arg0, float *arg1, float *arg2); +s32 fn_1_1D88(void); +void fn_1_1DB0(Vec *arg0, Vec *arg1, float *arg2, s32 arg3, s32 arg4); + +void fn_1_2354(Process *arg0); +void fn_1_2564(void); +void fn_1_25C0(void); +s32 fn_1_2880(void); +#ifndef __MWERKS__ +s16 fn_1_28B8(u8 arg0); +s16 fn_1_28D4(void); +#endif + +void fn_1_3AC8(Process *arg0); +void fn_1_3B68(void); + +void fn_1_41CC(Process *arg0); +void fn_1_44F4(void); + +void fn_1_4980(Process *arg0); +void fn_1_4C6C(omObjData *obj); + +void fn_1_5C5C(Process *arg0, s16 arg1); +void fn_1_5ECC(void); +void fn_1_5F40(s32 arg0); #endif diff --git a/include/REL/m409Dll.h b/include/REL/m409Dll.h index 76459447..1f7519b4 100644 --- a/include/REL/m409Dll.h +++ b/include/REL/m409Dll.h @@ -3,17 +3,18 @@ #include "dolphin.h" -#include "game/object.h" #include "game/animdata.h" #include "game/hsfanim.h" +#include "game/object.h" + extern s32 rand8(void); // types -typedef void (*m409Func6)(ModelData*, struct _unkStruct6*, Mtx); -typedef void (*m409PlayerFunc8)(struct _unkStruct8*); +typedef void (*m409Func6)(ModelData *, struct _unkStruct6 *, Mtx); +typedef void (*m409PlayerFunc8)(struct _unkStruct8 *); typedef struct _unkStruct { - f32 zoom; + float zoom; Vec center; Vec rot; } unkStruct; @@ -27,14 +28,14 @@ typedef struct _unkStruct3 { s8 unk0; s8 unk1; s16 unk2; - struct _unkStruct4* unk4; + struct _unkStruct4 *unk4; s16 unk8; s16 unkA; s16 unkC; s16 unkE; s16 unk10; s16 unk12; - f32 unk14; + float unk14; } unkStruct3; typedef struct _unkStruct4 { @@ -49,26 +50,26 @@ typedef struct _unkStruct4 { s16 unkA; s16 unkC; s16 unkE; - f32 unk10; + float unk10; s16 unk14; s16 unk16; - f32 unk18; - f32 unk1C; - struct _unkStruct4* unk20; + float unk18; + float unk1C; + struct _unkStruct4 *unk20; } unkStruct4; // sizeof 0x24 typedef struct _unkStruct5 { Vec unk0; Vec unkC; - f32 unk18; - f32 unk1C; - f32 unk20; - f32 unk24; + float unk18; + float unk1C; + float unk20; + float unk24; s16 unk28; s16 unk2A; s16 unk2C; s16 unk2E; - f32 unk30; + float unk30; Vec unk34; Vec unk40; s16 unk4C; @@ -81,20 +82,20 @@ typedef struct _unkStruct6 { u32 unk4; u8 unk8; m409Func6 unkC; - AnimData* unk10; + AnimData *unk10; s16 unk14; - unkStruct5* unk18; - Vec* unk1C; - HsfVector2f* unk20; - GXColor* unk24; - void* unk28; + unkStruct5 *unk18; + Vec *unk1C; + HsfVector2f *unk20; + GXColor *unk24; + void *unk28; Vec unk2C; Vec unk38; Vec unk44; Vec unk50; - HsfVector2f* unk5C; - f32 unk60; - f32 unk64; + HsfVector2f *unk5C; + float unk60; + float unk64; } unkStruct6; // sizeof 0x68 typedef struct _unkStruct7 { @@ -147,22 +148,22 @@ typedef struct _unkStruct8Sub { u8 unk32; u32 unk34; s16 unk38; - void* unk3C; - void* unk40; - void* unk44; - Vec* unk48; + void *unk3C; + void *unk40; + void *unk44; + Vec *unk48; GXColor unk4C; GXColor unk50; - struct _unkStruct12* unk54; + struct _unkStruct12 *unk54; Vec unk58; Vec unk64; union { s16 unk70[0x10]; struct { s16 unk70s; - f32 unk74; - f32 unk78; - f32 unk7C; + float unk74; + float unk78; + float unk7C; }; }; } unkStruct8Sub; // sizeof 0x90 @@ -177,9 +178,9 @@ typedef struct _unkStruct8 { Vec unk18; Vec unk24; m409PlayerFunc8 unk30; - s16* unk34; + s16 *unk34; char unk38[0x4]; - unkStruct8Sub* unk3C; + unkStruct8Sub *unk3C; char unk40[0x8]; Vec unk48; Vec unk54; @@ -187,7 +188,7 @@ typedef struct _unkStruct8 { } unkStruct8; // sizeof 0xA0 typedef struct _unkStruct9Sub { - AnimData* unk0; + AnimData *unk0; s16 unk4; s16 unk6; u32 unk8; @@ -197,10 +198,10 @@ typedef struct _unkStruct9Sub { u8 unk4C; s16 unk4E; s16 unk50; - f32 unk54; - f32 unk58; - f32 unk5C; - f32 unk60; + float unk54; + float unk58; + float unk5C; + float unk60; } unkStruct9Sub; // sizeof 0x64 typedef struct _unkStruct9 { @@ -210,8 +211,8 @@ typedef struct _unkStruct9 { s16 unk6; s16 unk8; s16 unkA; - unkStruct9Sub* unkC; - unkStruct8* unk10; + unkStruct9Sub *unkC; + unkStruct8 *unk10; } unkStruct9; // sizeof 0x14 typedef struct _unkStruct10 { @@ -221,7 +222,7 @@ typedef struct _unkStruct10 { u8 unk3; u8 unk4; char unk5[0x3]; - f32 unk8; + float unk8; Vec unkC; Vec unk18; Vec unk24; @@ -229,7 +230,7 @@ typedef struct _unkStruct10 { Vec unk3C; s8 unk48; char unk49[0x3]; - f32 unk4C; + float unk4C; } unkStruct10; // sizeof 0x50 typedef struct unkStruct11 { @@ -243,11 +244,11 @@ typedef struct _unkStruct12 { s8 unk0; s8 unk1; s16 unk2; - HsfVector2f* unk4; + HsfVector2f *unk4; u8 unk8; s16 unkA; - f32 unkC; - f32 unk10; + float unkC; + float unk10; } unkStruct12; // bss @@ -255,78 +256,78 @@ extern unkStruct9 lbl_1_bss_F0; // prototypes void ObjectSetup(void); -void fn_1_434(omObjData* object); -void fn_1_4DC(omObjData* object); +void fn_1_434(omObjData *object); +void fn_1_4DC(omObjData *object); s8 fn_1_524(void); s8 fn_1_B80(void); -void fn_1_DDC(omObjData* object); -void fn_1_F70(omObjData* object); -s8 fn_1_10E8(omObjData* object); -s8 fn_1_1B74(omObjData* object); -void fn_1_2098(omObjData* object); +void fn_1_DDC(omObjData *object); +void fn_1_F70(omObjData *object); +s8 fn_1_10E8(omObjData *object); +s8 fn_1_1B74(omObjData *object); +void fn_1_2098(omObjData *object); void fn_1_23EC(s16); void fn_1_2414(u16, u16); u16 fn_1_2454(u16); -void fn_1_2484(omObjData* object); -void fn_1_2DCC(omObjData* object); +void fn_1_2484(omObjData *object); +void fn_1_2DCC(omObjData *object); void fn_1_3840(void); -void fn_1_3988(unkStruct4*, s16, s16); -s32 fn_1_3AD8(s32, f32, f32, f32, f32, f32, f32); +void fn_1_3988(unkStruct4 *, s16, s16); +s32 fn_1_3AD8(s32, float, float, float, float, float, float); void fn_1_40A4(Mtx, Mtx); -f32 fn_1_4120(f32, f32, f32, f32); +float fn_1_4120(float, float, float, float); void fn_1_417C(void); -void fn_1_44F0(s16, f32, f32, f32, s8, s16); -void fn_1_4FFC(s16, f32, f32, f32, s16); -void fn_1_5408(ModelData*, unkStruct6*, Mtx); -void fn_1_55E0(ModelData*, unkStruct6*, Mtx); -void fn_1_57DC(ModelData*, unkStruct6*, Mtx); -unkStruct5* fn_1_58E0(s16, Vec*, Vec*, f32, GXColor*); -s16 fn_1_5A18(AnimData*, s16, f32, s16, s16); +void fn_1_44F0(s16, float, float, float, s8, s16); +void fn_1_4FFC(s16, float, float, float, s16); +void fn_1_5408(ModelData *, unkStruct6 *, Mtx); +void fn_1_55E0(ModelData *, unkStruct6 *, Mtx); +void fn_1_57DC(ModelData *, unkStruct6 *, Mtx); +unkStruct5 *fn_1_58E0(s16, Vec *, Vec *, float, GXColor *); +s16 fn_1_5A18(AnimData *, s16, float, s16, s16); void fn_1_5F5C(s16); void fn_1_5FBC(s16, m409Func6); void fn_1_5FF4(s16, u8); -void fn_1_602C(ModelData*, Mtx); -void fn_1_6608(HsfVector2f*, s16, s16, f32, f32); -void fn_1_66D4(HsfVector2f*, HsfVector2f*, s16, f32, f32); -void fn_1_6778(Vec*, Vec*, Vec*, s16); +void fn_1_602C(ModelData *, Mtx); +void fn_1_6608(HsfVector2f *, s16, s16, float, float); +void fn_1_66D4(HsfVector2f *, HsfVector2f *, s16, float, float); +void fn_1_6778(Vec *, Vec *, Vec *, s16); // player.c -void fn_1_67E0(Process*); +void fn_1_67E0(Process *); void fn_1_6900(void); -void fn_1_6928(omObjData*); -void fn_1_7344(omObjData*); -void fn_1_7FE8(omObjData*); -void fn_1_8838(unkStruct8*); +void fn_1_6928(omObjData *); +void fn_1_7344(omObjData *); +void fn_1_7FE8(omObjData *); +void fn_1_8838(unkStruct8 *); s8 fn_1_8D08(u8); -void fn_1_8D6C(unkStruct8*); -void fn_1_91C0(omObjData*); -void fn_1_962C(omObjData*); -s32 fn_1_A584(unkStruct10*); -s8 fn_1_A9C0(Vec*, f32*); +void fn_1_8D6C(unkStruct8 *); +void fn_1_91C0(omObjData *); +void fn_1_962C(omObjData *); +s32 fn_1_A584(unkStruct10 *); +s8 fn_1_A9C0(Vec *, float *); s32 fn_1_ABB4(void); -void fn_1_AC08(s32*, s32); -f32 fn_1_AD40(f32, f32, f32); -f32 fn_1_AE94(f32, f32, f32, f32); -void fn_1_AF0C(f32*, f32*, f32*, f32*, f32); -f32 fn_1_B028(f32, f32, f32, f32); -void fn_1_B0A0(f32*, f32*, f32*, f32*, f32); -f32 fn_1_B378(Vec*); -f32 fn_1_B6A4(Vec*, Vec*, Vec*); -f32 fn_1_B9E0(Vec*, Vec*, Vec*, Vec*, Vec*); -f32 fn_1_BF38(s16); +void fn_1_AC08(s32 *, s32); +float fn_1_AD40(float, float, float); +float fn_1_AE94(float, float, float, float); +void fn_1_AF0C(float *, float *, float *, float *, float); +float fn_1_B028(float, float, float, float); +void fn_1_B0A0(float *, float *, float *, float *, float); +float fn_1_B378(Vec *); +float fn_1_B6A4(Vec *, Vec *, Vec *); +float fn_1_B9E0(Vec *, Vec *, Vec *, Vec *, Vec *); +float fn_1_BF38(s16); // cursor.c void fn_1_BF88(s16, s16); void fn_1_C0C0(void); -void fn_1_C164(unkStruct8*); -void fn_1_CB98(ModelData* model, Mtx matrix); -unkStruct8* fn_1_CCB0(s16 idx); -unkStruct8Sub* fn_1_CCCC(s16, s16); -void fn_1_CCF8(unkStruct11**, s16, f32, f32); -void fn_1_CE7C(Vec**, s16, Vec*); -void fn_1_CF1C(GXColor**, s16, GXColor*); -void fn_1_CFC4(Vec**, s16, Vec*); -void fn_1_D050(HsfVector2f**, s16, HsfVector2f*); -void fn_1_D0E8(unkStruct8Sub*); -void fn_1_D430(unkStruct8*); +void fn_1_C164(unkStruct8 *); +void fn_1_CB98(ModelData *model, Mtx matrix); +unkStruct8 *fn_1_CCB0(s16 idx); +unkStruct8Sub *fn_1_CCCC(s16, s16); +void fn_1_CCF8(unkStruct11 **, s16, float, float); +void fn_1_CE7C(Vec **, s16, Vec *); +void fn_1_CF1C(GXColor **, s16, GXColor *); +void fn_1_CFC4(Vec **, s16, Vec *); +void fn_1_D050(HsfVector2f **, s16, HsfVector2f *); +void fn_1_D0E8(unkStruct8Sub *); +void fn_1_D430(unkStruct8 *); s16 fn_1_DA48(u8, u8); void fn_1_DDB8(s16); void fn_1_DEF4(s16, s16, u8); @@ -334,19 +335,19 @@ s16 fn_1_DF20(u32, s16, s16); void fn_1_E228(s16); s32 fn_1_E2A8(s16, u8, u32, s16, s16); s32 fn_1_E7C8(s16, u8, u32); -void fn_1_E818(s16, f32, f32, f32); -void fn_1_E85C(s16, s16, f32, f32, f32); -void fn_1_E8CC(s16, f32, f32, f32); -void fn_1_E940(s16, f32, f32, f32); -void fn_1_E99C(s16, s16, f32, f32, f32); -void fn_1_E940(s16, f32, f32, f32); -void fn_1_EA24(s16, f32, f32, f32); -void fn_1_EAB0(s16, f32, f32, f32); -void fn_1_EAF4(s16, s16, f32, f32, f32); -void fn_1_EB64(s16, f32, f32, f32); -void fn_1_EBD8(s16, f32, f32, f32); -void fn_1_EC1C(s16, s16, f32, f32, f32); -void fn_1_EC8C(s16, f32, f32, f32); +void fn_1_E818(s16, float, float, float); +void fn_1_E85C(s16, s16, float, float, float); +void fn_1_E8CC(s16, float, float, float); +void fn_1_E940(s16, float, float, float); +void fn_1_E99C(s16, s16, float, float, float); +void fn_1_E940(s16, float, float, float); +void fn_1_EA24(s16, float, float, float); +void fn_1_EAB0(s16, float, float, float); +void fn_1_EAF4(s16, s16, float, float, float); +void fn_1_EB64(s16, float, float, float); +void fn_1_EBD8(s16, float, float, float); +void fn_1_EC1C(s16, s16, float, float, float); +void fn_1_EC8C(s16, float, float, float); void fn_1_ED00(s16, s32); void fn_1_ED44(s16, s16, s32); void fn_1_EDB4(s16, s32); @@ -360,9 +361,9 @@ void fn_1_F098(s16, u8, u8, u8, u8); void fn_1_F110(s16, s16, u8); void fn_1_F17C(s16, s16, u8, u8); void fn_1_F1F4(s16, u8); -void fn_1_F28C(s16, s16, f32); -void fn_1_F2F8(s16, s16, u8, f32); -void fn_1_F370(s16, f32); +void fn_1_F28C(s16, s16, float); +void fn_1_F2F8(s16, s16, u8, float); +void fn_1_F370(s16, float); void fn_1_F408(s16, s16, u8); void fn_1_F478(s16, s16, u8, u8); void fn_1_F4F0(s16, u8); diff --git a/include/REL/m412Dll.h b/include/REL/m412Dll.h index 2017123c..d9749a81 100644 --- a/include/REL/m412Dll.h +++ b/include/REL/m412Dll.h @@ -3,8 +3,9 @@ #include "dolphin.h" -#include "game/object.h" #include "game/hsfman.h" +#include "game/object.h" + // types typedef struct _unkStruct { @@ -18,8 +19,8 @@ typedef struct _unkStruct { Vec unk10; HsfVector2f unk1C; Vec unk24; - f32 unk30; - f32 unk34; + float unk30; + float unk34; } unkStruct; typedef struct _unkStruct2 { @@ -58,7 +59,7 @@ typedef struct _unkStruct3 { HsfVector2f unk4C; Vec unk54; Vec unk60; - f32 unk6C; + float unk6C; char unk70[0xC]; Vec unk7C; s8 unk88; @@ -68,7 +69,7 @@ typedef struct _unkStruct3 { u16 unk8C; u16 unk8E; HsfVector2f unk90; - f32 unk98; + float unk98; s32 unk9C; s32 unkA0; s32 unkA4; @@ -83,38 +84,38 @@ typedef struct _unkStruct4 { // prototypes void ObjectSetup(void); -void* fn_1_6EC(f32, f32, f32, s32); +void *fn_1_6EC(float, float, float, s32); void fn_1_73C(void); void fn_1_7BC(void); -void fn_1_894(omObjData* object); -void fn_1_898(omObjData* object); +void fn_1_894(omObjData *object); +void fn_1_898(omObjData *object); void fn_1_8BC(void); -f32 fn_1_1D08(f32); +float fn_1_1D08(float); void fn_1_1D88(void); void fn_1_1DBC(void); void fn_1_2014(void); void fn_1_2064(void); s32 fn_1_2708(void); -f32 fn_1_27C4(s32, f32, f32); +float fn_1_27C4(s32, float, float); void fn_1_2A1C(void); void fn_1_3950(void); s8 fn_1_4BE4(s32, s32); -void fn_1_4C9C(Vec*, f32, f32); +void fn_1_4C9C(Vec *, float, float); s8 fn_1_4E58(s32, s32); u8 fn_1_525C(s32, s32); u16 fn_1_531C(s32); u16 fn_1_5388(s32); -s32 fn_1_53F4(unkStruct3*, f32, f32, f32); -s32 fn_1_561C(unkStruct3*, s32*); -void fn_1_5838(unkStruct3*); -f32 fn_1_6594(f32, f32, f32); -f32 fn_1_6698(f32, f32, unkStruct3*); -void fn_1_6814(unkStruct3*); +s32 fn_1_53F4(unkStruct3 *, float, float, float); +s32 fn_1_561C(unkStruct3 *, s32 *); +void fn_1_5838(unkStruct3 *); +float fn_1_6594(float, float, float); +float fn_1_6698(float, float, unkStruct3 *); +void fn_1_6814(unkStruct3 *); void fn_1_7C60(void); -void fn_1_A01C(ModelData* model, ParticleData* particle, Mtx matrix); -void fn_1_A618(ModelData* model, ParticleData* particle, Mtx matrix); +void fn_1_A01C(ModelData *model, ParticleData *particle, Mtx matrix); +void fn_1_A618(ModelData *model, ParticleData *particle, Mtx matrix); //... -void fn_1_AA88(ModelData* model, ParticleData* particle, Mtx matrix); // * +void fn_1_AA88(ModelData *model, ParticleData *particle, Mtx matrix); // * void fn_1_B160(void); // * void fn_1_B1C0(void); // * diff --git a/include/REL/m415Dll.h b/include/REL/m415Dll.h index c202ca5b..0be73a76 100644 --- a/include/REL/m415Dll.h +++ b/include/REL/m415Dll.h @@ -53,10 +53,10 @@ typedef struct _unkStruct3 { s16 unk16; s16 unk18; s16 unk1A; - f32 unk1C; - f32 unk20; - f32 unk24; - f32 unk28; + float unk1C; + float unk20; + float unk24; + float unk28; Vec unk2C; Vec unk38; Vec unk44; @@ -64,7 +64,7 @@ typedef struct _unkStruct3 { u8 unk5C; u8 unk5D; union { - s32* unk60; + s32 *unk60; struct { s16 unk60s; s16 unk62s; @@ -90,18 +90,18 @@ typedef struct _unkStruct4 { Vec unk88[3]; Vec unkAC[3]; Vec unkD0[3]; - f32 unkF4[3]; - f32 unk100[3]; - f32 unk10C[3]; - f32 unk118[3]; - f32 unk124[3]; - f32 unk130; - f32 unk134; - f32 unk138; - f32 unk13C; - f32 unk140; - f32 unk144; - f32 unk148; + float unkF4[3]; + float unk100[3]; + float unk10C[3]; + float unk118[3]; + float unk124[3]; + float unk130; + float unk134; + float unk138; + float unk13C; + float unk140; + float unk144; + float unk148; } unkStruct4; typedef struct _unkSubStruct4 { @@ -111,8 +111,8 @@ typedef struct _unkSubStruct4 { HsfVector2f unk4[4]; u8 unk24; char unk25[0x3]; - f32 unk28; - f32 unk2C; + float unk28; + float unk2C; } unkSubStruct4; // taken from m438 @@ -127,24 +127,24 @@ typedef struct _unkSubStruct { u8 unk33; u32 unk34; s16 unk38; - void* unk3C; - Vec* unk40; - GXColor* unk44; - Vec* unk48; + void *unk3C; + Vec *unk40; + GXColor *unk44; + Vec *unk48; GXColor unk4C; GXColor unk50; - unkSubStruct4* unk54; + unkSubStruct4 *unk54; u8 unk58; char unk59[0x3]; Vec unk5C; Vec unk68; s16 unk74[2]; - s16* unk78; - s16* unk7C; + s16 *unk78; + s16 *unk7C; char unk80[0x14]; } unkSubStruct; /* size = 0x94 */ -typedef void (*unkSubStruct2Func)(struct _unkSubStruct2*); +typedef void (*unkSubStruct2Func)(struct _unkSubStruct2 *); typedef struct _unkSubStruct2 { s16 unk0; @@ -154,18 +154,18 @@ typedef struct _unkSubStruct2 { Vec unkC; Vec unk18; Vec unk24; - void (*unk30)(struct _unkSubStruct2*); - s16* unk34; + void (*unk30)(struct _unkSubStruct2 *); + s16 *unk34; s16 unk38; char unk3A[2]; unkSubStruct *unk3C; char unk40[0x8]; s16 unk48; - char* unk4C; - Vec* unk50; - GXColor* unk54; - Vec* unk58; - unkSubStruct4* unk5C; + char *unk4C; + Vec *unk50; + GXColor *unk54; + Vec *unk58; + unkSubStruct4 *unk5C; u8 unk60; char unk61[0x3]; Vec unk64; @@ -186,7 +186,7 @@ typedef struct _unkSubStruct2 { } unkSubStruct2; /* size = 0xBC */ typedef struct _unkSubStruct3 { - AnimData* unk0; + AnimData *unk0; s16 unk4; s16 unk6; u32 unk8; @@ -198,10 +198,10 @@ typedef struct _unkSubStruct3 { s16 unk4E; s16 unk50; char unk52[0x2]; - f32 unk54; - f32 unk58; - f32 unk5C; - f32 unk60; + float unk54; + float unk58; + float unk5C; + float unk60; } unkSubStruct3; /* size = 0x64 */ typedef struct _unkStruct5 { @@ -228,38 +228,38 @@ extern unkStruct5 lbl_1_bss_36C; // prototypes // main.c -void fn_1_43C(omObjData* object); -void fn_1_4B0(omObjData* object); -void fn_1_7D8(omObjData* object); -void fn_1_14C0(omObjData* object); -void fn_1_15D0(omObjData* object); -void fn_1_1960(omObjData* object); -void fn_1_2B18(omObjData* object); -void fn_1_2C14(omObjData* object); -void fn_1_2E88(f32, Vec*, Vec*, f32); -void fn_1_3208(omObjData* object); -void fn_1_3640(omObjData* object); -void fn_1_3764(omObjData* object); -void fn_1_3B44(omObjData* object); -void fn_1_4660(omObjData* object); -void fn_1_5B20(unkSubStruct2*); -void fn_1_6304(omObjData* object); +void fn_1_43C(omObjData *object); +void fn_1_4B0(omObjData *object); +void fn_1_7D8(omObjData *object); +void fn_1_14C0(omObjData *object); +void fn_1_15D0(omObjData *object); +void fn_1_1960(omObjData *object); +void fn_1_2B18(omObjData *object); +void fn_1_2C14(omObjData *object); +void fn_1_2E88(float, Vec *, Vec *, float); +void fn_1_3208(omObjData *object); +void fn_1_3640(omObjData *object); +void fn_1_3764(omObjData *object); +void fn_1_3B44(omObjData *object); +void fn_1_4660(omObjData *object); +void fn_1_5B20(unkSubStruct2 *); +void fn_1_6304(omObjData *object); void fn_1_6368(void); -void* fn_1_63A8(s32); +void *fn_1_63A8(s32); void fn_1_64DC(void); -AnimBmpData* fn_1_668C(s16); +AnimBmpData *fn_1_668C(s16); s16 fn_1_66AC(void); s32 fn_1_679C(void); -f32 fn_1_67F0(f32, f32, f32); -void fn_1_6A78(Mtx, Vec*); -void fn_1_7268(f32*, f32*, f32*, s32); -f32 fn_1_7520(f32, f32*, f32*, f32*, s32); -void fn_1_7674(f32*, Vec*, Vec*, s32); -void fn_1_7A54(f32, Vec*, f32*, Vec*, Vec*, s32); +float fn_1_67F0(float, float, float); +void fn_1_6A78(Mtx, Vec *); +void fn_1_7268(float *, float *, float *, s32); +float fn_1_7520(float, float *, float *, float *, s32); +void fn_1_7674(float *, Vec *, Vec *, s32); +void fn_1_7A54(float, Vec *, float *, Vec *, Vec *, s32); // map.c -void fn_1_95C0(ModelData*, Mtx); -AnimData** fn_1_9734(s16); -void fn_1_9DC8(unkSubStruct2*); +void fn_1_95C0(ModelData *, Mtx); +AnimData **fn_1_9734(s16); +void fn_1_9DC8(unkSubStruct2 *); s16 fn_1_A2D0(u8, u8); void fn_1_A800(s16); s16 fn_1_A94C(u32, s16, s16); @@ -267,12 +267,12 @@ void fn_1_ACF4(s16, s16, s16, s16, s16, s16); void fn_1_AF48(s16); u8 fn_1_AFC8(s16, u8, s32, s16, s16); s32 fn_1_B0B8(s16, u8, s16); -void fn_1_B864(s16, f32, f32, f32); -void fn_1_BB4C(s16, f32, f32, f32); -void fn_1_BC9C(s16, f32, f32, f32); -void fn_1_BD08(s16, s16, f32, f32, f32); +void fn_1_B864(s16, float, float, float); +void fn_1_BB4C(s16, float, float, float); +void fn_1_BC9C(s16, float, float, float); +void fn_1_BD08(s16, s16, float, float, float); void fn_1_C264(s16, u8); void fn_1_C2D0(s16, s16, u8); void fn_1_C410(s16, s16, u8, u8); -void fn_1_C58C(s16, s16, u8, f32); -void fn_1_C81C(s16, u8); \ No newline at end of file +void fn_1_C58C(s16, s16, u8, float); +void fn_1_C81C(s16, u8); diff --git a/include/REL/m418Dll.h b/include/REL/m418Dll.h index f21c4256..3ef089ba 100644 --- a/include/REL/m418Dll.h +++ b/include/REL/m418Dll.h @@ -18,10 +18,10 @@ typedef struct M418DllUnkStruct { Vec unk10; // sequence center Vec rot; Vec unk28; // sequence rot - f32 zoom; - f32 unk38; // sequence zoom - f32 unk3C[3]; - f32 unk48; + float zoom; + float unk38; // sequence zoom + float unk3C[3]; + float unk48; } M418DllUnkStruct; // sizeof 0x4C typedef struct M418DllUnkStruct8 { @@ -32,27 +32,27 @@ typedef struct M418DllUnkStruct8 { typedef struct M418DllUnkStruct7 { s32 unk0; - M418DllUnkStruct8* unk4; + M418DllUnkStruct8 *unk4; s32 unk8; s32 unkC; M418DllFunc unk10; M418DllRetFunc unk14; } M418DllUnkStruct7; // sizeof 0x18 -f32 fn_1_A920(f32, f32, f32); -f32 fn_1_A940(f32, f32, f32, f32); -f32 fn_1_AA30(f32, f32, f32, f32); -void fn_1_ABC4(omObjData*, s32, s32, s32, s32); -void fn_1_AD14(omObjData*, s32, s32, s32, s32); -void fn_1_AEDC(M418DllUnkStruct7*, M418DllUnkStruct8*); -s32 fn_1_AF38(M418DllUnkStruct7*); -s32 fn_1_B034(M418DllUnkStruct7*, s32); -s32 fn_1_B0C8(M418DllUnkStruct7*, s32); -void fn_1_B104(M418DllUnkStruct*, Vec, Vec); -void fn_1_B41C(M418DllUnkStruct*); -void fn_1_B458(M418DllUnkStruct*); -void fn_1_BEAC(M418DllUnkStruct*, M418DllUnkStruct*, f32, f32, f32); -void fn_1_CBF8(M418DllUnkStruct*, M418DllUnkStruct*, f32, f32, f32); -void fn_1_DC10(M418DllUnkStruct*, M418DllUnkStruct*, f32, f32, f32); +float fn_1_A920(float, float, float); +float fn_1_A940(float, float, float, float); +float fn_1_AA30(float, float, float, float); +void fn_1_ABC4(omObjData *, s32, s32, s32, s32); +void fn_1_AD14(omObjData *, s32, s32, s32, s32); +void fn_1_AEDC(M418DllUnkStruct7 *, M418DllUnkStruct8 *); +s32 fn_1_AF38(M418DllUnkStruct7 *); +s32 fn_1_B034(M418DllUnkStruct7 *, s32); +s32 fn_1_B0C8(M418DllUnkStruct7 *, s32); +void fn_1_B104(M418DllUnkStruct *, Vec, Vec); +void fn_1_B41C(M418DllUnkStruct *); +void fn_1_B458(M418DllUnkStruct *); +void fn_1_BEAC(M418DllUnkStruct *, M418DllUnkStruct *, float, float, float); +void fn_1_CBF8(M418DllUnkStruct *, M418DllUnkStruct *, float, float, float); +void fn_1_DC10(M418DllUnkStruct *, M418DllUnkStruct *, float, float, float); #endif diff --git a/include/REL/m424Dll.h b/include/REL/m424Dll.h index 5b3dfaa8..ac79d774 100644 --- a/include/REL/m424Dll.h +++ b/include/REL/m424Dll.h @@ -5,11 +5,11 @@ typedef struct _M424DllMainStruct { Vec rot; Vec center; - f32 zoom; + float zoom; } M424DllMainStruct; // sizeof 1C typedef struct _M424DllBallStruct2 { - omObjData* unk0; + omObjData *unk0; u8 unk4; u8 unk5; u8 unk6; @@ -31,18 +31,18 @@ extern M424DllBallStruct2 lbl_1_bss_60[9]; extern u8 lbl_1_bss_58; extern s16 lbl_1_bss_24[4]; -f32 fn_1_1358(f32, f32); -f32 fn_1_1470(f32, f32, f32); -omObjData* fn_1_1AB8(Process*); +float fn_1_1358(float, float); +float fn_1_1470(float, float, float); +omObjData *fn_1_1AB8(Process *); void fn_1_1B8C(void); -f32 fn_1_213C(void); -void fn_1_252C(f32, s32); +float fn_1_213C(void); +void fn_1_252C(float, s32); void fn_1_2670(s32, s32); -void fn_1_2720(Process*); +void fn_1_2720(Process *); void fn_1_2880(void); -Vec* fn_1_8A00(u8); +Vec *fn_1_8A00(u8); s32 fn_1_8A2C(void); -omObjData* fn_1_93F0(Process*); +omObjData *fn_1_93F0(Process *); void fn_1_94A4(void); s32 fn_1_B804(void); s32 fn_1_B888(void); diff --git a/include/REL/m427Dll.h b/include/REL/m427Dll.h index ceda94c3..7c84b7a1 100644 --- a/include/REL/m427Dll.h +++ b/include/REL/m427Dll.h @@ -21,9 +21,9 @@ void fn_1_EC54(void); s32 fn_1_10FE8(s32 arg0, s32 *arg1); void fn_1_110E8(s32, s32 *); void fn_1_111C0(s32, s32 *); -void fn_1_11298(f32); +void fn_1_11298(float); s32 fn_1_113F0(s32); -f32 fn_1_168FC(f32, f32, f32); +float fn_1_168FC(float, float, float); s32 fn_1_15F10(Vec arg0, Vec arg1, s32 arg2, s32 arg3, s32 arg4); s32 fn_1_15FD0(Vec arg0, float arg8, s32 arg1, s32 arg2, s32 arg3); diff --git a/include/REL/m438Dll.h b/include/REL/m438Dll.h index 8279e1f2..828dd494 100644 --- a/include/REL/m438Dll.h +++ b/include/REL/m438Dll.h @@ -22,14 +22,14 @@ typedef struct M438UnkSubStruct { s8 unk_00; s8 unk_01; char unk02[0x2]; - f32 unk_04; - f32 unk_08; - f32 unk_0C; - f32 unk_10; - f32 unk_14; - f32 unk_18; - f32 unk_1C; - f32 unk_20; + float unk_04; + float unk_08; + float unk_0C; + float unk_10; + float unk_14; + float unk_18; + float unk_1C; + float unk_20; u8 unk_24; float unk_28; float unk_2C; @@ -47,13 +47,13 @@ typedef struct M438UnkStruct { u8 unk_34; u32 unk_38; s16 unk_3C; - void* unk_40; - Vec* unk_44; - GXColor* unk_48; - Vec* unk_4C; + void *unk_40; + Vec *unk_44; + GXColor *unk_48; + Vec *unk_4C; GXColor unk_50; GXColor unk_54; - M438UnkSubStruct* unk_58; + M438UnkSubStruct *unk_58; u8 unk_5C; char unk5D[0x3]; Vec unk_60; @@ -90,17 +90,17 @@ typedef struct M438UnkStruct2 { Vec unk_0C; Vec unk_18; Vec unk_24; - void (*unk_30)(struct M438UnkStruct2*); - s16* unk_34; + void (*unk_30)(struct M438UnkStruct2 *); + s16 *unk_34; char unk_38[0x4]; M438UnkStruct *unk_3C; char unk40[0x8]; s16 unk_48; - void* unk_4C; - Vec* unk_50; - GXColor* unk_54; - Vec* unk_58; - M438UnkSubStruct* unk_5C; + void *unk_4C; + Vec *unk_50; + GXColor *unk_54; + Vec *unk_58; + M438UnkSubStruct *unk_5C; u8 unk_60; char unk61[0x3]; Vec unk_64; @@ -121,7 +121,7 @@ typedef struct M438UnkStruct2 { } M438UnkStruct2; /* size = 0xBC */ typedef struct M438UnkStruct3 { - AnimData* unk_00; + AnimData *unk_00; s16 unk_04; s16 unk_06; u32 unk_08; @@ -133,10 +133,10 @@ typedef struct M438UnkStruct3 { s16 unk_4E; s16 unk_50; char unk52[0x2]; - f32 unk_54; - f32 unk_58; - f32 unk_5C; - f32 unk_60; + float unk_54; + float unk_58; + float unk_5C; + float unk_60; } M438UnkStruct3; /* size = 0x64 */ typedef struct M438StructBssDE4 { diff --git a/include/REL/m440Dll.h b/include/REL/m440Dll.h index ef9426e8..d7d2c5b8 100644 --- a/include/REL/m440Dll.h +++ b/include/REL/m440Dll.h @@ -10,12 +10,12 @@ extern s32 rand8(void); ////// TYPES ////// -typedef void (*m440Func5)(ModelData*, struct _unkStruct5*, Mtx); -typedef void (*m440Func6)(struct _unkStruct6*); -typedef void (*m440Func14)(struct _unkStruct14*); +typedef void (*m440Func5)(ModelData *, struct _unkStruct5 *, Mtx); +typedef void (*m440Func6)(struct _unkStruct6 *); +typedef void (*m440Func14)(struct _unkStruct14 *); typedef struct _unkStruct { - f32 zoom; + float zoom; Vec center; Vec rot; } unkStruct; @@ -30,37 +30,37 @@ typedef struct _unkStruct2 { char unk10[0xC]; s16 unk1C; char unk20[0x4]; - f32 unk24; + float unk24; char unk28[0x4]; s16 unk2C; s16 unk2E; - f32 unk30; + float unk30; } unkStruct2; typedef struct _unkStruct3 { char unk0[0x34]; - f32 unk34; + float unk34; char unk38[0x8]; - f32 unk40; + float unk40; } unkStruct3; typedef struct _unkStruct4 { Vec unk0; char unkC[0xC]; - f32 unk18; - f32 unk1C; + float unk18; + float unk1C; char unk20[0x4]; - f32 unk24; - f32 unk28; - f32 unk2C; - f32 unk30; + float unk24; + float unk28; + float unk2C; + float unk30; s16 unk34; s16 unk36; char unk38[0x4]; s32 unk3C; s16 unk40; s16 unk42; - f32 unk44; + float unk44; Vec unk48; Vec unk54; s16 unk60; @@ -73,20 +73,20 @@ typedef struct _unkStruct5 { u32 unk4; u8 unk8; m440Func5 unkC; - AnimData* unk10; + AnimData *unk10; s16 unk14; - unkStruct4* unk18; - Vec* unk1C; - HsfVector2f* unk20; - GXColor* unk24; - void* unk28; + unkStruct4 *unk18; + Vec *unk1C; + HsfVector2f *unk20; + GXColor *unk24; + void *unk28; Vec unk2C; Vec unk38; Vec unk44; Vec unk50; - HsfVector2f* unk5C; - f32 unk60; - f32 unk64; + HsfVector2f *unk5C; + float unk60; + float unk64; } unkStruct5; typedef struct _unkStruct6 { @@ -95,16 +95,16 @@ typedef struct _unkStruct6 { s16 unk4; s16 unk6; u32 unk8; - Vec* unkC; - Vec* unk10; - Vec* unk14; - Vec* unk18; - HsfVector2f* unk1C; + Vec *unkC; + Vec *unk10; + Vec *unk14; + Vec *unk18; + HsfVector2f *unk1C; s32 unk20; - struct _unkStruct8* unk24; - HsfMaterial* unk28; - HsfAttribute* unk2C; - void* unk30; + struct _unkStruct8 *unk24; + HsfMaterial *unk28; + HsfAttribute *unk2C; + void *unk30; u32 unk34; m440Func6 unk38; s16 unk3C; @@ -129,7 +129,7 @@ typedef struct _unkStruct8 { s16 unk1E; unkStruct11 unk20[3]; char unk38[0x30]; - f32 unk68[5]; + float unk68[5]; Vec unk7C; Vec unk88; Vec unk94; @@ -144,7 +144,7 @@ typedef struct _unkStruct10 { s16 unk2; unkStruct11 unk4[3]; u32 unk1C; - unkStruct11* unk20; + unkStruct11 *unk20; char unk24[0xC]; } unkStruct10; // sizeof 0x30 @@ -154,41 +154,41 @@ typedef struct _unkStruct12 { u8 unkB[3]; u8 unkE[3]; char unk12[0x2]; - f32 unk14; + float unk14; char unk18[0x4]; - f32 unk1C; + float unk1C; char unk20[0x10]; u32 unk30; u32 unk34; - s32* unk38; + s32 *unk38; } unkStruct12; typedef struct _unkStruct13 { char unk0[0xA]; u8 unkA; char unkB[0x15]; - f32 unk20; + float unk20; char unk24[0x40]; u32 unk64; u32 unk68; char unk6C[0x14]; - struct _unkStruct15* unk80; + struct _unkStruct15 *unk80; } unkStruct13; // sizeof 0x84 typedef struct _unkStruct14 { s16 unk0; s16 unk2; char unk4[0x8]; - void* unkC; + void *unkC; char unk10[0x4]; - void* unk14; - unkStruct4* unk18; - void* unk1C; + void *unk14; + unkStruct4 *unk18; + void *unk1C; char unk20[0x4]; - GXColor* unk24; - unkStruct12* unk28; - unkStruct13* unk2C; - void* unk30; + GXColor *unk24; + unkStruct12 *unk28; + unkStruct13 *unk2C; + void *unk30; u32 unk34; m440Func14 unk38; s16 unk3C; @@ -202,9 +202,9 @@ typedef struct _unkStruct15 { s16 unkC; s16 unkE; char unk10[0x4]; - void* unk14; + void *unk14; char unk18[0x4]; - void* unk1C; + void *unk1C; } unkStruct15; // object.c @@ -226,20 +226,20 @@ typedef struct _unkObjStruct { Vec unk3C; u8 unk48; s16 unk4A; - f32 unk4C; + float unk4C; s16 unk50; s16 unk52; s16 unk54; s16 unk56; s16 unk58; s16 unk5A; - f32 unk5C; + float unk5C; s16 unk60; s16 unk62; char unk64[0x4]; - f32 unk68; - f32 unk6C; - f32 unk70; + float unk68; + float unk6C; + float unk70; } unkObjStruct; #if VERSION_NTSC @@ -249,11 +249,11 @@ typedef struct _unkObjStruct { #endif ////// BSS ////// -extern omObjData* lbl_1_bss_C0[4]; +extern omObjData *lbl_1_bss_C0[4]; ////// DATA ////// // main.c -extern f32 lbl_1_data_0[5]; +extern float lbl_1_data_0[5]; extern s16 lbl_1_data_14[6]; // object.c extern s16 lbl_1_data_1D8; @@ -261,14 +261,14 @@ extern s16 lbl_1_data_1D8; ////// FUNCTIONS ////// // main.c void ObjectSetup(void); -void fn_1_3C4(omObjData* object); -void fn_1_434(omObjData* object); +void fn_1_3C4(omObjData *object); +void fn_1_434(omObjData *object); s32 fn_1_4A4(void); s32 fn_1_6C8(void); -void fn_1_8F0(omObjData* object); -void fn_1_AE0(omObjData* object); -u8 fn_1_E14(omObjData* object); -u8 fn_1_1138(omObjData* object); +void fn_1_8F0(omObjData *object); +void fn_1_AE0(omObjData *object); +u8 fn_1_E14(omObjData *object); +u8 fn_1_1138(omObjData *object); void fn_1_16D8(void); void fn_1_1708(void); void fn_1_1768(void); @@ -280,82 +280,82 @@ void fn_1_18E0(void); u8 fn_1_1954(void); void fn_1_19B0(void); void fn_1_1CAC(void); -void fn_1_2240(ModelData* data, unkStruct5*, Mtx); +void fn_1_2240(ModelData *data, unkStruct5 *, Mtx); u16 fn_1_23E4(u16); void fn_1_2428(u16, u16); -void fn_1_2470(omObjData* object); -void fn_1_2A74(omObjData* object); -void fn_1_2AB4(omObjData* object); -void fn_1_2B04(omObjData* object); -void fn_1_2CA8(omObjData* object); -void fn_1_2D28(omObjData* object); -void fn_1_33D4(omObjData* object); -void fn_1_3DD8(omObjData* object); -void fn_1_4558(omObjData* object); -void fn_1_45BC(omObjData* object); -void fn_1_4660(omObjData* object); -void fn_1_46E0(omObjData* object); -void fn_1_4A20(omObjData* object); -void fn_1_4B44(omObjData* object); -void fn_1_4E00(s16, f32); +void fn_1_2470(omObjData *object); +void fn_1_2A74(omObjData *object); +void fn_1_2AB4(omObjData *object); +void fn_1_2B04(omObjData *object); +void fn_1_2CA8(omObjData *object); +void fn_1_2D28(omObjData *object); +void fn_1_33D4(omObjData *object); +void fn_1_3DD8(omObjData *object); +void fn_1_4558(omObjData *object); +void fn_1_45BC(omObjData *object); +void fn_1_4660(omObjData *object); +void fn_1_46E0(omObjData *object); +void fn_1_4A20(omObjData *object); +void fn_1_4B44(omObjData *object); +void fn_1_4E00(s16, float); s16 fn_1_4E2C(void); s16 fn_1_4E54(s16); u16 fn_1_4EA8(u16); void fn_1_4EEC(u16, u16); -void fn_1_4F34(unkStruct6*); -void fn_1_5010(unkStruct6*, Vec*, f32); -void fn_1_57B4(unkStruct6*); -void fn_1_5C2C(s16, HsfObject*, unkStruct6*, u16); -void fn_1_6554(unkStruct6*, HsfObject*); -void fn_1_6B58(unkStruct6*, HsfObject*); -void fn_1_71FC(unkStruct6*, Vec*, s16, Vec); -void fn_1_7934(unkStruct6*, unkStruct8*, Vec*); -void fn_1_7D60(unkStruct15*, unkStruct13*, s16); -void fn_1_806C(ModelData*, Mtx); -void fn_1_8470(unkStruct12*, unkStruct13*); +void fn_1_4F34(unkStruct6 *); +void fn_1_5010(unkStruct6 *, Vec *, float); +void fn_1_57B4(unkStruct6 *); +void fn_1_5C2C(s16, HsfObject *, unkStruct6 *, u16); +void fn_1_6554(unkStruct6 *, HsfObject *); +void fn_1_6B58(unkStruct6 *, HsfObject *); +void fn_1_71FC(unkStruct6 *, Vec *, s16, Vec); +void fn_1_7934(unkStruct6 *, unkStruct8 *, Vec *); +void fn_1_7D60(unkStruct15 *, unkStruct13 *, s16); +void fn_1_806C(ModelData *, Mtx); +void fn_1_8470(unkStruct12 *, unkStruct13 *); void fn_1_8AC4(Mtx); void fn_1_8D1C(void); -void fn_1_91A4(Vec*, Vec*, Vec*, f32[5]); -f32 fn_1_927C(f32, f32, f32); +void fn_1_91A4(Vec *, Vec *, Vec *, float[5]); +float fn_1_927C(float, float, float); void fn_1_9344(Mtx, Mtx); -f32 fn_1_93C0(f32, f32, f32); -f32 fn_1_93D0(f32, f32, f32, f32); -unkStruct4* fn_1_942C(s16, Vec*, Vec*, f32, GXColor*); -s16 fn_1_956C(AnimData*, s16, f32, s16, s16); +float fn_1_93C0(float, float, float); +float fn_1_93D0(float, float, float, float); +unkStruct4 *fn_1_942C(s16, Vec *, Vec *, float, GXColor *); +s16 fn_1_956C(AnimData *, s16, float, s16, s16); void fn_1_9AB0(s16); -unkStruct5* fn_1_9B10(s16); -unkStruct4* fn_1_9B3C(s16, s16); +unkStruct5 *fn_1_9B10(s16); +unkStruct4 *fn_1_9B3C(s16, s16); void fn_1_9B94(s16, m440Func5); void fn_1_9BCC(s16, u8); -void fn_1_9C04(ModelData*, Mtx); -void fn_1_A1B8(HsfVector2f*, s16, s16, f32, f32); -void fn_1_A284(HsfVector2f*, HsfVector2f*, s16, f32, f32); -void fn_1_A328(Vec*, Vec*, Vec*, s16); -void fn_1_A390(ModelData*, Mtx); +void fn_1_9C04(ModelData *, Mtx); +void fn_1_A1B8(HsfVector2f *, s16, s16, float, float); +void fn_1_A284(HsfVector2f *, HsfVector2f *, s16, float, float); +void fn_1_A328(Vec *, Vec *, Vec *, s16); +void fn_1_A390(ModelData *, Mtx); void fn_1_AA94(void); // object.c -void fn_1_AE08(Process*); -void fn_1_AEE4(omObjData*); -void fn_1_B17C(omObjData*); -void fn_1_B180(omObjData*); -void fn_1_B3A4(omObjData*); -void fn_1_B884(omObjData*, unkObjStruct*); -void fn_1_C1D4(omObjData*, unkObjStruct*); -void fn_1_C944(omObjData*, unkObjStruct*); -s16 fn_1_CFAC(unkObjStruct*, u8); -void fn_1_D24C(unkObjStruct*, f32, f32); -void fn_1_D34C(omObjData*, unkObjStruct*); -void fn_1_D7F8(omObjData*, unkObjStruct*); -void fn_1_E034(omObjData*, unkObjStruct*); -u8 fn_1_E8AC(omObjData*, unkObjStruct*); -s32 fn_1_ED88(omObjData*, s16, u32); +void fn_1_AE08(Process *); +void fn_1_AEE4(omObjData *); +void fn_1_B17C(omObjData *); +void fn_1_B180(omObjData *); +void fn_1_B3A4(omObjData *); +void fn_1_B884(omObjData *, unkObjStruct *); +void fn_1_C1D4(omObjData *, unkObjStruct *); +void fn_1_C944(omObjData *, unkObjStruct *); +s16 fn_1_CFAC(unkObjStruct *, u8); +void fn_1_D24C(unkObjStruct *, float, float); +void fn_1_D34C(omObjData *, unkObjStruct *); +void fn_1_D7F8(omObjData *, unkObjStruct *); +void fn_1_E034(omObjData *, unkObjStruct *); +u8 fn_1_E8AC(omObjData *, unkObjStruct *); +s32 fn_1_ED88(omObjData *, s16, u32); void fn_1_EE78(void); void fn_1_EF50(void); s16 fn_1_F0FC(void); void fn_1_F168(void); void fn_1_F228(void); -u16 fn_1_F4C0(unkObjStruct*, u16); -void fn_1_F4D4(unkObjStruct*, u16, u16); +u16 fn_1_F4C0(unkObjStruct *, u16); +void fn_1_F4D4(unkObjStruct *, u16, u16); s32 fn_1_F4FC(s32); #endif diff --git a/include/REL/m446Dll.h b/include/REL/m446Dll.h index 1f5a4c6a..bdbdadb2 100644 --- a/include/REL/m446Dll.h +++ b/include/REL/m446Dll.h @@ -3,8 +3,9 @@ #include "dolphin/types.h" -#include "game/process.h" #include "game/object.h" +#include "game/process.h" + ////// TYPES ////// typedef struct _unkStruct { @@ -17,26 +18,26 @@ typedef struct _unkStruct { s32 unk14; s32 unk18; s32 unk1C; - struct _unkStruct6* unk20; - struct _unkStruct9* unk24; - struct _unkStruct5* unk28; - struct _unkStruct8* unk2C[2]; - struct _unkStruct4* unk34; - struct _unkStruct4* unk38[23]; + struct _unkStruct6 *unk20; + struct _unkStruct9 *unk24; + struct _unkStruct5 *unk28; + struct _unkStruct8 *unk2C[2]; + struct _unkStruct4 *unk34; + struct _unkStruct4 *unk38[23]; s32 unk94; - Process* unk98; + Process *unk98; } unkStruct; typedef struct _unkStruct2 { - void** unk0; + void **unk0; s32 unk4; s32 unk8; } unkStruct2; typedef struct _unkStruct3 { - void* unk0; - struct _unkStruct3* unk4; - struct _unkStruct3* unk8; + void *unk0; + struct _unkStruct3 *unk4; + struct _unkStruct3 *unk8; } unkStruct3; typedef struct _unkStruct4 { @@ -52,9 +53,9 @@ typedef struct _unkStruct4 { Vec unk34; Vec unk40; Vec unk4C; - f32 unk58; - f32 unk5C; - f32 unk60; + float unk58; + float unk5C; + float unk60; s32 unk64; s32 unk68; s32 unk6C; @@ -62,24 +63,24 @@ typedef struct _unkStruct4 { s32 unk74; s32 unk78; s32 unk7C; - f32 unk80; - f32 unk84; - f32 unk88; - f32 unk8C; - f32 unk90; - f32 unk94; + float unk80; + float unk84; + float unk88; + float unk8C; + float unk90; + float unk94; } unkStruct4; typedef struct _unkStruct5 { - unkStruct2* unk0; + unkStruct2 *unk0; Vec unk4; } unkStruct5; typedef struct _unkStruct6 { - struct _unkStruct7* unk0; + struct _unkStruct7 *unk0; s16 unk4; s16 unk6; - unkStruct4* unk8[21]; + unkStruct4 *unk8[21]; s32 unk5C; s32 unk60; s32 unk64; @@ -100,16 +101,16 @@ typedef struct _unkStruct7 { Vec unk20; Vec unk2C; Vec unk38; - f32 unk44; + float unk44; u8 unk48; - f32 unk4C; - f32 unk50; + float unk4C; + float unk50; } unkStruct7; typedef struct _unkStruct8 { s32 unk0; - unkStruct6* unk4; - unkStruct7* unk8; + unkStruct6 *unk4; + unkStruct7 *unk8; s32 unkC; s32 unk10; s32 unk14; @@ -118,13 +119,13 @@ typedef struct _unkStruct8 { s32 unk20; s32 unk24; s32 unk28; - unkStruct4* unk2C[3]; + unkStruct4 *unk2C[3]; s32 unk38; s16 unk3C[2]; s16 unk40[4]; Vec unk48; Vec unk54; - f32 unk60; + float unk60; u8 unk64; u8 unk65; u8 unk66; @@ -141,10 +142,10 @@ typedef struct _unkStruct8 { Vec unk9C; Vec unkA8; s32 unkB4; - f32 unkB8; - f32 unkBC; - f32 unkC0; - f32 unkC4; + float unkB8; + float unkBC; + float unkC0; + float unkC4; s32 unkC8; } unkStruct8; @@ -152,8 +153,8 @@ typedef struct _unkStruct9 { s16 unk0[5]; s16 unkA[2]; s16 unkE; - f32 unk10; - f32 unk14; + float unk10; + float unk14; s32 unk18; s32 unk1C; s32 unk20; @@ -169,141 +170,141 @@ typedef struct _unkStruct10 { } unkStruct10; typedef void (*m446Func)(s32); -typedef void (*m446Func1)(unkStruct*); -typedef void (*m446Func4)(unkStruct4*); -typedef void (*m446Func8)(unkStruct8*); +typedef void (*m446Func1)(unkStruct *); +typedef void (*m446Func4)(unkStruct4 *); +typedef void (*m446Func8)(unkStruct8 *); ////// PROTOTYPES ////// // main.c void ObjectSetup(void); -void fn_1_13C(omObjData*); -unkStruct* m446FlowCreate(void); -void fn_1_3FC(unkStruct*); -void fn_1_4B4(unkStruct*); -void fn_1_53C(unkStruct*); -void fn_1_958(unkStruct*); -void fn_1_B78(unkStruct*); -void fn_1_C0C(unkStruct*); -void fn_1_CA0(unkStruct*); -s32 fn_1_17FC(unkStruct*); -void fn_1_183C(unkStruct*); -void fn_1_1874(unkStruct*); -void fn_1_18B0(unkStruct*); +void fn_1_13C(omObjData *); +unkStruct *m446FlowCreate(void); +void fn_1_3FC(unkStruct *); +void fn_1_4B4(unkStruct *); +void fn_1_53C(unkStruct *); +void fn_1_958(unkStruct *); +void fn_1_B78(unkStruct *); +void fn_1_C0C(unkStruct *); +void fn_1_CA0(unkStruct *); +s32 fn_1_17FC(unkStruct *); +void fn_1_183C(unkStruct *); +void fn_1_1874(unkStruct *); +void fn_1_18B0(unkStruct *); void fn_1_19D4(void); // card.c -unkStruct2* fn_1_1C64(s32); -void fn_1_1CF8(unkStruct2*); -s32 fn_1_1D30(unkStruct2*, void*); -s32 fn_1_1D6C(unkStruct2*, unkStruct4**); -s32 fn_1_1DA8(unkStruct2*, void**); -BOOL fn_1_1DDC(unkStruct2*); -s32 fn_1_1DEC(unkStruct2*); -unkStruct3* fn_1_1DF4(void*); -void fn_1_1E5C(unkStruct3*); -void fn_1_1E84(unkStruct3**); -void fn_1_1EC8(unkStruct3*, unkStruct3*); -void fn_1_1F04(unkStruct3*); -void fn_1_1F38(u8*, u8*, s32); -void fn_1_1F84(u8*, s8, s32); -void fn_1_1FC0(u8*, s32); -s32 fn_1_1FFC(s8*, s8*, s32); +unkStruct2 *fn_1_1C64(s32); +void fn_1_1CF8(unkStruct2 *); +s32 fn_1_1D30(unkStruct2 *, void *); +s32 fn_1_1D6C(unkStruct2 *, unkStruct4 **); +s32 fn_1_1DA8(unkStruct2 *, void **); +BOOL fn_1_1DDC(unkStruct2 *); +s32 fn_1_1DEC(unkStruct2 *); +unkStruct3 *fn_1_1DF4(void *); +void fn_1_1E5C(unkStruct3 *); +void fn_1_1E84(unkStruct3 **); +void fn_1_1EC8(unkStruct3 *, unkStruct3 *); +void fn_1_1F04(unkStruct3 *); +void fn_1_1F38(u8 *, u8 *, s32); +void fn_1_1F84(u8 *, s8, s32); +void fn_1_1FC0(u8 *, s32); +s32 fn_1_1FFC(s8 *, s8 *, s32); s32 fn_1_2064(void); void fn_1_207C(void); void fn_1_20D4(void); -unkStruct4* m446CardCreate(s32); -void fn_1_2688(unkStruct4*); -void fn_1_272C(unkStruct4*); -void fn_1_2794(unkStruct4*); -void fn_1_27FC(unkStruct4*, Vec*, s32); -void fn_1_2890(unkStruct4*, Vec*, s32, s32); -void fn_1_2928(unkStruct4*, Vec*, s32); -void fn_1_29B4(unkStruct4*, f32, s32); -void fn_1_2A1C(unkStruct4*); -void fn_1_2A58(unkStruct4*); -void fn_1_2A94(unkStruct4*); -void fn_1_2AA8(unkStruct4*); -void fn_1_2D94(unkStruct4*); -void fn_1_2DA8(unkStruct4*); -void fn_1_2EC0(unkStruct4*, s32); -void fn_1_2F64(unkStruct4*); +unkStruct4 *m446CardCreate(s32); +void fn_1_2688(unkStruct4 *); +void fn_1_272C(unkStruct4 *); +void fn_1_2794(unkStruct4 *); +void fn_1_27FC(unkStruct4 *, Vec *, s32); +void fn_1_2890(unkStruct4 *, Vec *, s32, s32); +void fn_1_2928(unkStruct4 *, Vec *, s32); +void fn_1_29B4(unkStruct4 *, float, s32); +void fn_1_2A1C(unkStruct4 *); +void fn_1_2A58(unkStruct4 *); +void fn_1_2A94(unkStruct4 *); +void fn_1_2AA8(unkStruct4 *); +void fn_1_2D94(unkStruct4 *); +void fn_1_2DA8(unkStruct4 *); +void fn_1_2EC0(unkStruct4 *, s32); +void fn_1_2F64(unkStruct4 *); // deck.c -unkStruct5* fn_1_3064(void); -void fn_1_3180(unkStruct2**); -void fn_1_31D8(unkStruct2**, unkStruct4**, s32*, s32); -void fn_1_34A0(unkStruct5*, unkStruct4**, s32, s32); -s32 m446DeckPushCard(unkStruct5*, unkStruct4*, s32); -s32 m446DeckPopCard(unkStruct2**, unkStruct4**); -void fn_1_38B0(unkStruct2**); +unkStruct5 *fn_1_3064(void); +void fn_1_3180(unkStruct2 **); +void fn_1_31D8(unkStruct2 **, unkStruct4 **, s32 *, s32); +void fn_1_34A0(unkStruct5 *, unkStruct4 **, s32, s32); +s32 m446DeckPushCard(unkStruct5 *, unkStruct4 *, s32); +s32 m446DeckPopCard(unkStruct2 **, unkStruct4 **); +void fn_1_38B0(unkStruct2 **); s32 fn_1_38F0(void); // table.c s32 fn_1_3924(void); void fn_1_393C(void); void fn_1_3994(void); -unkStruct6* fn_1_39D0(void); -void fn_1_3B4C(unkStruct6*); -s32 fn_1_3BF0(unkStruct6*, unkStruct4*, s32); -s32 fn_1_3EB4(unkStruct6*, unkStruct4*, s32); -s32 fn_1_3FD0(unkStruct6*, s32, unkStruct4**); -void fn_1_4000(unkStruct6*, s32); -s32 fn_1_4088(unkStruct6*, u8, u8, s32, unkStruct4**, s32); -void fn_1_46AC(unkStruct6*); -void fn_1_46D0(unkStruct6*); -s32 fn_1_4720(unkStruct6*, s32); -void fn_1_4798(unkStruct6*); +unkStruct6 *fn_1_39D0(void); +void fn_1_3B4C(unkStruct6 *); +s32 fn_1_3BF0(unkStruct6 *, unkStruct4 *, s32); +s32 fn_1_3EB4(unkStruct6 *, unkStruct4 *, s32); +s32 fn_1_3FD0(unkStruct6 *, s32, unkStruct4 **); +void fn_1_4000(unkStruct6 *, s32); +s32 fn_1_4088(unkStruct6 *, u8, u8, s32, unkStruct4 **, s32); +void fn_1_46AC(unkStruct6 *); +void fn_1_46D0(unkStruct6 *); +s32 fn_1_4720(unkStruct6 *, s32); +void fn_1_4798(unkStruct6 *); // player.c s32 fn_1_480C(void); void fn_1_4824(void); void fn_1_487C(void); -unkStruct8* m446PlayerCreate(s32, unkStruct6*); -void fn_1_509C(unkStruct8*); -s32 m446PlayerAppendCard(unkStruct8*, unkStruct4*, s32); -s32 m446PlayerRemoveCard(unkStruct8*, unkStruct4*, s32); -s32 fn_1_5648(unkStruct8*, s32, unkStruct4**); -s32 fn_1_5678(unkStruct8*, unkStruct4**, s32); -void fn_1_5B34(unkStruct8*); -void fn_1_5B48(unkStruct8*); -void fn_1_5C10(unkStruct8*); -void fn_1_5C24(unkStruct8*); -void fn_1_5CEC(unkStruct8*); -void fn_1_5D00(unkStruct8*); -void fn_1_5E54(unkStruct8*, s32); -void fn_1_6074(unkStruct8*); -void fn_1_6264(unkStruct8*, Vec*, s32); -void fn_1_62F0(unkStruct8*, Vec*, s32); -void fn_1_637C(unkStruct8*, s32); -void fn_1_64BC(unkStruct8*, s32, s32); -void fn_1_6578(unkStruct8*); -void fn_1_6620(unkStruct8*); +unkStruct8 *m446PlayerCreate(s32, unkStruct6 *); +void fn_1_509C(unkStruct8 *); +s32 m446PlayerAppendCard(unkStruct8 *, unkStruct4 *, s32); +s32 m446PlayerRemoveCard(unkStruct8 *, unkStruct4 *, s32); +s32 fn_1_5648(unkStruct8 *, s32, unkStruct4 **); +s32 fn_1_5678(unkStruct8 *, unkStruct4 **, s32); +void fn_1_5B34(unkStruct8 *); +void fn_1_5B48(unkStruct8 *); +void fn_1_5C10(unkStruct8 *); +void fn_1_5C24(unkStruct8 *); +void fn_1_5CEC(unkStruct8 *); +void fn_1_5D00(unkStruct8 *); +void fn_1_5E54(unkStruct8 *, s32); +void fn_1_6074(unkStruct8 *); +void fn_1_6264(unkStruct8 *, Vec *, s32); +void fn_1_62F0(unkStruct8 *, Vec *, s32); +void fn_1_637C(unkStruct8 *, s32); +void fn_1_64BC(unkStruct8 *, s32, s32); +void fn_1_6578(unkStruct8 *); +void fn_1_6620(unkStruct8 *); // camera.c s32 fn_1_6778(void); void fn_1_68D8(void); void fn_1_68DC(void); -void fn_1_6EA0(Vec*); -void fn_1_6EC4(Vec*); -void fn_1_6EE8(f32); -void fn_1_6EF8(Vec*, Vec*, f32*, s32); +void fn_1_6EA0(Vec *); +void fn_1_6EC4(Vec *); +void fn_1_6EE8(float); +void fn_1_6EF8(Vec *, Vec *, float *, s32); s32 fn_1_708C(void); void fn_1_709C(void); // cursor.c s32 fn_1_72E0(void); void fn_1_72F8(void); void fn_1_7350(void); -unkStruct7* m446CursorCreate(s32); -void fn_1_76E8(unkStruct7*); -void fn_1_77C8(unkStruct7*, u8); -void fn_1_7884(unkStruct7*); -void fn_1_7908(unkStruct7*, Vec*, s32); -void fn_1_799C(unkStruct7*); -void fn_1_7A38(unkStruct7*); -void fn_1_7AB4(unkStruct7*); +unkStruct7 *m446CursorCreate(s32); +void fn_1_76E8(unkStruct7 *); +void fn_1_77C8(unkStruct7 *, u8); +void fn_1_7884(unkStruct7 *); +void fn_1_7908(unkStruct7 *, Vec *, s32); +void fn_1_799C(unkStruct7 *); +void fn_1_7A38(unkStruct7 *); +void fn_1_7AB4(unkStruct7 *); // stage.c s32 fn_1_7BF0(void); void fn_1_7C08(void); void fn_1_7C60(void); -unkStruct9* m446StageCreate(void); -void fn_1_83F0(unkStruct9*); -void fn_1_84AC(unkStruct9*); -void fn_1_852C(unkStruct9*); -void fn_1_860C(unkStruct9*); +unkStruct9 *m446StageCreate(void); +void fn_1_83F0(unkStruct9 *); +void fn_1_84AC(unkStruct9 *); +void fn_1_852C(unkStruct9 *); +void fn_1_860C(unkStruct9 *); #endif diff --git a/include/REL/mentDll.h b/include/REL/mentDll.h index 623bdc08..fe6e9e49 100644 --- a/include/REL/mentDll.h +++ b/include/REL/mentDll.h @@ -4,16 +4,16 @@ #include "game/object.h" extern s32 lbl_1_data_0[][4]; -//the prev and current struct member might be vice versa +// the prev and current struct member might be vice versa typedef struct MentDllUnkBss64Struct { /* 0x00 */ void (*func)(void); - /* 0x04 */ void (*func2)(f32 arg9); + /* 0x04 */ void (*func2)(float arg9); /* 0x08 */ Vec center; /* 0x14 */ Vec prevCenter; /* 0x20 */ Vec rot; /* 0x2C */ Vec prevRot; /* 0x38 */ float zoom; - /* 0x3C */ f32 prevZoom; + /* 0x3C */ float prevZoom; /* 0x40 */ s32 unk_40; } MentDllUnkBss64Struct; /* size = 0x44 */ extern MentDllUnkBss64Struct lbl_1_bss_64; @@ -36,10 +36,10 @@ s32 fn_1_1DD8(s32 arg0, s32 arg1, s32 arg2); s32 fn_1_2154(s32 arg0); void fn_1_2318(s32 arg0); void fn_1_2808(void (*arg0)(void)); -void fn_1_2844(Process* arg0, void (*arg1)(void)); -void fn_1_29A0(MentDllUnkBss64Struct* arg0); -void fn_1_4138(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9, f32 argA); -void fn_1_5150(MentDllUnkBss64Struct* arg0, MentDllUnkBss64Struct* arg1, f32 arg8, f32 arg9, f32 argA); +void fn_1_2844(Process *arg0, void (*arg1)(void)); +void fn_1_29A0(MentDllUnkBss64Struct *arg0); +void fn_1_4138(MentDllUnkBss64Struct *arg0, MentDllUnkBss64Struct *arg1, float arg8, float arg9, float argA); +void fn_1_5150(MentDllUnkBss64Struct *arg0, MentDllUnkBss64Struct *arg1, float arg8, float arg9, float argA); void fn_1_5818(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); void fn_1_59A0(omObjData *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4); void fn_1_5C08(omObjData *arg0); diff --git a/include/REL/modeltestDll.h b/include/REL/modeltestDll.h index f2dd081e..d4afecc4 100644 --- a/include/REL/modeltestDll.h +++ b/include/REL/modeltestDll.h @@ -2,8 +2,8 @@ #define REL_MODELTEST_H #include "game/hsfdraw.h" -#include "game/objsub.h" #include "game/object.h" +#include "game/objsub.h" #include "ext_math.h" @@ -11,36 +11,34 @@ #define US_PER_60TH_SEC (1000000.0f / 60.0f) #define US_TO_60TH_SEC(us) ((us) / US_PER_60TH_SEC) -#define FB_SIZE(width, height) width * height * 2 +#define FB_SIZE(width, height) width *height * 2 // -------------------------------------------------------------------------- // -typedef struct -{ +typedef struct { s16 unk0[7]; } HuUnkF9C2; -typedef struct -{ - Point3d pos; // 0000 - Point3d rot; // 000C - Point3d scale; // 0018 +typedef struct { + Vec pos; // 0000 + Vec rot; // 000C + Vec scale; // 0018 s32 unk24; s32 unk28; s32 unk2C; - HsfObject * obj; // 0030 + HsfObject *obj; // 0030 } HuObjUnk; -extern Point3d CRot; -extern Point3d Center; -extern f32 CZoom; +extern Vec CRot; +extern Vec Center; +extern float CZoom; void fn_1_29C(); -void fn_1_28F8(Point3d * arg0, Point3d * arg1); -void fn_1_37DC(omObjData*); -void fn_1_439C(omObjData*); +void fn_1_28F8(Vec *arg0, Vec *arg1); +void fn_1_37DC(omObjData *); +void fn_1_439C(omObjData *); void fn_1_46F0(); -typedef void (omObjFunc2)(struct om_obj_data *); +typedef void(omObjFunc2)(struct om_obj_data *); omObjFunc2 fn_1_F9C; #endif diff --git a/include/REL/w02Dll.h b/include/REL/w02Dll.h index b62d4a44..1a59411f 100644 --- a/include/REL/w02Dll.h +++ b/include/REL/w02Dll.h @@ -1,50 +1,48 @@ #ifndef W02DLL #define W02DLL -#include "math.h" #include "dolphin.h" -#include "game/process.h" -#include "game/gamework_data.h" -#include "game/board/model.h" -#include "game/board/space.h" #include "game/board/main.h" -#include "game/board/player.h" -#include "game/board/window.h" #include "game/board/map_object.h" - +#include "game/board/model.h" +#include "game/board/player.h" +#include "game/board/space.h" +#include "game/board/window.h" +#include "game/gamework_data.h" +#include "game/process.h" +#include "math.h" /* STRUCTS*/ typedef struct m02_dice { - /* 0x00 */ s16 unk00; - /* 0x02 */ s16 unk02; - /* 0x04 */ s32 unk04; - /* 0x08 */ s32 *unk08; - /* 0x0C */ Vec unk0C; - /* 0x18 */ s16 unk18; - /* 0x1A */ s16 unk1A; - /* 0x1C */ u16 unk1C[3]; - /* 0x22 */ s16 unk22; - /* 0x24 */ f32 unk24; - /* 0x28 */ s16 unk28; - /* 0x2A */ u8 unk2A[0x2]; - /* 0x2C */ Process *unk2C; - /* 0x30 */ s16 unk30[3]; - /* 0x36 */ s16 unk36[3]; - /* 0x3C */ omObjData *unk3C[3]; - /* 0x48 */ s16 unk48[3]; - /* 0x4E */ u8 unk4E[0x2]; - /* 0x50 */ omObjData *unk50[3]; - /* 0x5C */ u8 unk5C[0x08]; - /* 0x64 */ Vec unk64[2]; - /* 0x7C */ Vec unk7C; - /* 0x88 */ s32 unk88[3]; - /* 0x94 */ s16 unk94; - /* 0x96 */ s16 unk96; - /* 0x98 */ f32 unk98; - /* 0x9C */ s16 unk9C; + /* 0x00 */ s16 unk00; + /* 0x02 */ s16 unk02; + /* 0x04 */ s32 unk04; + /* 0x08 */ s32 *unk08; + /* 0x0C */ Vec unk0C; + /* 0x18 */ s16 unk18; + /* 0x1A */ s16 unk1A; + /* 0x1C */ u16 unk1C[3]; + /* 0x22 */ s16 unk22; + /* 0x24 */ float unk24; + /* 0x28 */ s16 unk28; + /* 0x2A */ u8 unk2A[0x2]; + /* 0x2C */ Process *unk2C; + /* 0x30 */ s16 unk30[3]; + /* 0x36 */ s16 unk36[3]; + /* 0x3C */ omObjData *unk3C[3]; + /* 0x48 */ s16 unk48[3]; + /* 0x4E */ u8 unk4E[0x2]; + /* 0x50 */ omObjData *unk50[3]; + /* 0x5C */ u8 unk5C[0x08]; + /* 0x64 */ Vec unk64[2]; + /* 0x7C */ Vec unk7C; + /* 0x88 */ s32 unk88[3]; + /* 0x94 */ s16 unk94; + /* 0x96 */ s16 unk96; + /* 0x98 */ float unk98; + /* 0x9C */ s16 unk9C; } m02GenDice; - extern s16 lbl_1_bss_2E; extern s16 lbl_1_bss_2C; extern Vec lbl_1_bss_20; @@ -58,12 +56,12 @@ extern void fn_1_72C(); extern s32 fn_1_774(); extern s32 fn_1_800(); extern void fn_1_92C(); -extern s32 fn_1_1128(); +extern s32 fn_1_1128(); extern void fn_1_121C(u32); -void fn_1_1254(m02GenDice* arg0); -void fn_1_1518(m02GenDice* arg0); -s32 fn_1_17F4(m02GenDice* arg0); +void fn_1_1254(m02GenDice *arg0); +void fn_1_1518(m02GenDice *arg0); +s32 fn_1_17F4(m02GenDice *arg0); // roulette.c extern void fn_1_D3AC(); @@ -75,15 +73,15 @@ extern void fn_1_3BF4(); extern void fn_1_39F4(); extern void fn_1_5CF8(); extern void fn_1_5D28(); -extern void fn_1_5F90(); +extern void fn_1_5F90(); extern void fn_1_79BC(s16 *arg0); extern void fn_1_8244(u16 arg0); extern s32 fn_1_9250(); extern void fn_1_93C8(u32 arg0); extern void fn_1_BC1C(); -extern s32 fn_1_BE88(); -extern s32 fn_1_C108(s32); -extern void fn_1_CD04(s32); +extern s32 fn_1_BE88(); +extern s32 fn_1_C108(s32); +extern void fn_1_CD04(s32); void fn_1_E41C(void); -#endif //W02DLL \ No newline at end of file +#endif // W02DLL diff --git a/include/REL/w05Dll.h b/include/REL/w05Dll.h index be7b49db..2b5599fb 100644 --- a/include/REL/w05Dll.h +++ b/include/REL/w05Dll.h @@ -51,7 +51,7 @@ void fn_1_D84(void); void fn_1_E04(void); void fn_1_E40(void); s32 fn_1_1114(void); -s32 fn_1_1208(s16, f32, f32); +s32 fn_1_1208(s16, float, float); void fn_1_13D4(void); void fn_1_14D0(void); @@ -70,64 +70,64 @@ void fn_1_3E8C(void); void fn_1_3F74(void); void fn_1_3FD8(void); void fn_1_4034(s32); -void fn_1_4EB4(s32, s32, Vec*); +void fn_1_4EB4(s32, s32, Vec *); void fn_1_5648(void); -void fn_1_5794(s32, s32, Vec*); +void fn_1_5794(s32, s32, Vec *); void fn_1_6670(void); -omObjData* fn_1_66C0(u32, Vec*); -void fn_1_6914(omObjData*); -void fn_1_62AC(s32, Vec*); +omObjData *fn_1_66C0(u32, Vec *); +void fn_1_6914(omObjData *); +void fn_1_62AC(s32, Vec *); void fn_1_64BC(void); void fn_1_65E8(void); void fn_1_6670(void); -omObjData* fn_1_66C0(u32, Vec*); -void fn_1_6914(omObjData*); +omObjData *fn_1_66C0(u32, Vec *); +void fn_1_6914(omObjData *); void fn_1_6B28(void); void fn_1_6B7C(void); -void fn_1_7284(omObjData*); +void fn_1_7284(omObjData *); void fn_1_72E4(void); void fn_1_7314(void); void fn_1_73C0(void); void fn_1_74D0(s16[3]); void fn_1_77B0(void); -void fn_1_78A0(omObjData*); -void fn_1_7928(omObjData*); +void fn_1_78A0(omObjData *); +void fn_1_7928(omObjData *); void fn_1_799C(void); -void fn_1_7E4C(omObjData*); -void fn_1_7E94(dataCopy*); -void fn_1_7F04(omObjData*); -void fn_1_80D8(omObjData*); -void fn_1_8410(omObjData*); -void fn_1_850C(omObjData*); -void fn_1_8668(omObjData*); -void fn_1_8798(dataCopy*, s32*, s32*, s32*); -void* fn_1_8884(void); +void fn_1_7E4C(omObjData *); +void fn_1_7E94(dataCopy *); +void fn_1_7F04(omObjData *); +void fn_1_80D8(omObjData *); +void fn_1_8410(omObjData *); +void fn_1_850C(omObjData *); +void fn_1_8668(omObjData *); +void fn_1_8798(dataCopy *, s32 *, s32 *, s32 *); +void *fn_1_8884(void); void fn_1_88B8(void); void fn_1_896C(void); void fn_1_91DC(void); -void fn_1_9268(ModelData*, ParticleData*, f32[3][4]); +void fn_1_9268(ModelData *, ParticleData *, float[3][4]); void fn_1_9680(void); void fn_1_96B4(void); void fn_1_9760(void); void fn_1_97AC(void); -void fn_1_9A68(omObjData*); +void fn_1_9A68(omObjData *); void fn_1_9AC0(void); void fn_1_9AF0(void); void fn_1_9B74(void); -void fn_1_9C24(omObjData*); -void fn_1_9C98(dataCopy2*); -void fn_1_9D0C(omObjData*); -void fn_1_9F24(omObjData*); -void fn_1_A224(omObjData*); -void fn_1_A4F8(omObjData*); -void fn_1_A5B0(omObjData*); -void fn_1_A990(omObjData*); +void fn_1_9C24(omObjData *); +void fn_1_9C98(dataCopy2 *); +void fn_1_9D0C(omObjData *); +void fn_1_9F24(omObjData *); +void fn_1_A224(omObjData *); +void fn_1_A4F8(omObjData *); +void fn_1_A5B0(omObjData *); +void fn_1_A990(omObjData *); void fn_1_AB24(void); -void fn_1_B214(omObjData*); -void fn_1_B2B0(omObjData*, u16*, s16*); -void fn_1_B3C4(omObjData*); +void fn_1_B214(omObjData *); +void fn_1_B2B0(omObjData *, u16 *, s16 *); +void fn_1_B3C4(omObjData *); // data extern BoardMapObject lbl_1_data_0[7]; @@ -164,7 +164,7 @@ extern char *lbl_1_data_330[3]; extern s32 lbl_1_data_350[14]; extern s32 lbl_1_data_350[14]; extern s16 lbl_1_data_388[92]; -extern f32 lbl_1_data_440[3]; +extern float lbl_1_data_440[3]; extern char *lbl_1_data_464[3]; extern s32 lbl_1_data_470[3]; @@ -179,9 +179,9 @@ extern s16 lbl_1_bss_100; extern s16 lbl_1_bss_FE; extern s16 lbl_1_bss_D6[20]; extern s16 lbl_1_bss_D4; -extern omObjData* lbl_1_bss_D0; -extern omObjData* lbl_1_bss_CC; -extern omObjData* lbl_1_bss_C8; +extern omObjData *lbl_1_bss_D0; +extern omObjData *lbl_1_bss_CC; +extern omObjData *lbl_1_bss_C8; extern s16 lbl_1_bss_C6; extern s16 lbl_1_bss_C4; extern s16 lbl_1_bss_C2; @@ -196,13 +196,13 @@ extern s16 lbl_1_bss_A4[3]; extern s16 lbl_1_bss_A2; extern s16 lbl_1_bss_9E[2]; extern s16 lbl_1_bss_9C; -extern Process* lbl_1_bss_98; -extern omObjData* lbl_1_bss_94; -extern omObjData* lbl_1_bss_90; -extern omObjData* lbl_1_bss_8C; +extern Process *lbl_1_bss_98; +extern omObjData *lbl_1_bss_94; +extern omObjData *lbl_1_bss_90; +extern omObjData *lbl_1_bss_8C; extern s32 lbl_1_bss_88; extern s32 lbl_1_bss_7C[3]; -extern AnimData* lbl_1_bss_78; +extern AnimData *lbl_1_bss_78; extern s16 lbl_1_bss_72[2]; extern s16 lbl_1_bss_6C[3]; @@ -221,9 +221,9 @@ extern s16 lbl_1_bss_30[4]; extern s16 lbl_1_bss_28; extern s16 lbl_1_bss_14[7]; -extern s32* lbl_1_bss_10; +extern s32 *lbl_1_bss_10; extern s16 lbl_1_bss_8[4]; -extern Process* lbl_1_bss_4; -extern bitcopy* lbl_1_bss_0; +extern Process *lbl_1_bss_4; +extern bitcopy *lbl_1_bss_0; #endif diff --git a/include/REL/w10Dll.h b/include/REL/w10Dll.h index 93342461..a1446748 100644 --- a/include/REL/w10Dll.h +++ b/include/REL/w10Dll.h @@ -9,7 +9,7 @@ enum { MAPOBJ_MELON = 0, - MAPOBJ_MAX, + MAPOBJ_MAX }; typedef struct w10_board_work { diff --git a/include/data_num/title.h b/include/data_num/title.h index a50179ec..13f41c0c 100644 --- a/include/data_num/title.h +++ b/include/data_num/title.h @@ -20,7 +20,7 @@ enum { TITLE_COPYRIGHT_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 10), TITLE_CHAR_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 11), TITLE_CUBE_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 12), - TITLE_SKY_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 13), + TITLE_SKY_HSF = DATA_MAKE_NUM(DATADIR_TITLE, 13) }; #else @@ -54,9 +54,9 @@ enum { TITLE_LANGUAGE_GE_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 25), TITLE_LANGUAGE_FR_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 26), TITLE_LANGUAGE_IT_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 27), - TITLE_LANGUAGE_ES_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 28), + TITLE_LANGUAGE_ES_ANM = DATA_MAKE_NUM(DATADIR_TITLE, 28) }; #endif -#endif \ No newline at end of file +#endif diff --git a/include/data_num/win.h b/include/data_num/win.h index 3a38070f..07e510fb 100644 --- a/include/data_num/win.h +++ b/include/data_num/win.h @@ -36,7 +36,7 @@ enum { WIN_CARD_BOX2_ICON_ANM = DATA_MAKE_NUM(DATADIR_WIN, 29), WIN_CARD_BOX3_ICON_ANM = DATA_MAKE_NUM(DATADIR_WIN, 30), WIN_CARD_BANNER_ANM = DATA_MAKE_NUM(DATADIR_WIN, 31), - WIN_SAVE_BG_ANM = DATA_MAKE_NUM(DATADIR_WIN, 32), + WIN_SAVE_BG_ANM = DATA_MAKE_NUM(DATADIR_WIN, 32) }; -#endif \ No newline at end of file +#endif diff --git a/include/dolphin/demo/DEMOPuts.h b/include/dolphin/demo/DEMOPuts.h index 49434d9c..219ca544 100644 --- a/include/dolphin/demo/DEMOPuts.h +++ b/include/dolphin/demo/DEMOPuts.h @@ -5,7 +5,7 @@ typedef enum { DMTF_POINTSAMPLE, - DMTF_BILERP, + DMTF_BILERP } DMTexFlt; typedef enum { DM_FT_OPQ, DM_FT_RVS, DM_FT_XLU } DMFontType; diff --git a/include/dolphin/demo/DEMOStats.h b/include/dolphin/demo/DEMOStats.h index 5ec6e00a..92a61bf6 100644 --- a/include/dolphin/demo/DEMOStats.h +++ b/include/dolphin/demo/DEMOStats.h @@ -11,7 +11,7 @@ typedef enum DEMO_STAT_TYPE { DEMO_STAT_TBW = 6, DEMO_STAT_TBP = 7, DEMO_STAT_MYC = 8, - DEMO_STAT_MYR = 9, + DEMO_STAT_MYR = 9 } DEMO_STAT_TYPE; typedef struct DemoStatData { @@ -26,7 +26,7 @@ typedef enum { DEMO_STAT_BL = 1, DEMO_STAT_TLD = 2, DEMO_STAT_BLD = 3, - DEMO_STAT_IO = 4, + DEMO_STAT_IO = 4 } DEMO_STAT_DISP; extern unsigned char DemoStatEnable; diff --git a/include/dolphin/gx/GXEnum.h b/include/dolphin/gx/GXEnum.h index d8c48579..cf924f01 100644 --- a/include/dolphin/gx/GXEnum.h +++ b/include/dolphin/gx/GXEnum.h @@ -23,7 +23,7 @@ typedef u8 GXBool; typedef enum _GXProjectionType { GX_PERSPECTIVE, - GX_ORTHOGRAPHIC, + GX_ORTHOGRAPHIC } GXProjectionType; typedef enum _GXCompare { @@ -34,7 +34,7 @@ typedef enum _GXCompare { GX_GREATER, GX_NEQUAL, GX_GEQUAL, - GX_ALWAYS, + GX_ALWAYS } GXCompare; typedef enum _GXAlphaOp { @@ -42,20 +42,20 @@ typedef enum _GXAlphaOp { GX_AOP_OR, GX_AOP_XOR, GX_AOP_XNOR, - GX_MAX_ALPHAOP, + GX_MAX_ALPHAOP } GXAlphaOp; typedef enum _GXZFmt16 { GX_ZC_LINEAR, GX_ZC_NEAR, GX_ZC_MID, - GX_ZC_FAR, + GX_ZC_FAR } GXZFmt16; typedef enum _GXGamma { GX_GM_1_0, GX_GM_1_7, - GX_GM_2_2, + GX_GM_2_2 } GXGamma; typedef enum _GXPixelFmt { @@ -66,7 +66,7 @@ typedef enum _GXPixelFmt { GX_PF_Y8, GX_PF_U8, GX_PF_V8, - GX_PF_YUV420, + GX_PF_YUV420 } GXPixelFmt; typedef enum _GXPrimitive { @@ -76,7 +76,7 @@ typedef enum _GXPrimitive { GX_TRIANGLEFAN = 0xA0, GX_LINES = 0xA8, GX_LINESTRIP = 0xB0, - GX_POINTS = 0xB8, + GX_POINTS = 0xB8 } GXPrimitive; typedef enum _GXVtxFmt { @@ -88,7 +88,7 @@ typedef enum _GXVtxFmt { GX_VTXFMT5, GX_VTXFMT6, GX_VTXFMT7, - GX_MAX_VTXFMT, + GX_MAX_VTXFMT } GXVtxFmt; typedef enum _GXAttr { @@ -119,7 +119,7 @@ typedef enum _GXAttr { GX_LIGHT_ARRAY, GX_VA_NBT, GX_VA_MAX_ATTR, - GX_VA_NULL = 0xFF, + GX_VA_NULL = 0xFF } GXAttr; #define GX_MAX_VTXDESCLIST_SZ (GX_VA_MAX_ATTR + 1) @@ -128,7 +128,7 @@ typedef enum _GXAttrType { GX_NONE, GX_DIRECT, GX_INDEX8, - GX_INDEX16, + GX_INDEX16 } GXAttrType; #define _GX_TF_CTF 0x20 @@ -164,20 +164,20 @@ typedef enum _GXTexFmt { GX_CTF_Z8L = 0xA | _GX_TF_ZTF | _GX_TF_CTF, GX_CTF_Z16L = 0xC | _GX_TF_ZTF | _GX_TF_CTF, - GX_TF_A8 = GX_CTF_A8, + GX_TF_A8 = GX_CTF_A8 } GXTexFmt; typedef enum _GXCITexFmt { GX_TF_C4 = 0x8, GX_TF_C8 = 0x9, - GX_TF_C14X2 = 0xa, + GX_TF_C14X2 = 0xa } GXCITexFmt; typedef enum _GXTexWrapMode { GX_CLAMP, GX_REPEAT, GX_MIRROR, - GX_MAX_TEXWRAPMODE, + GX_MAX_TEXWRAPMODE } GXTexWrapMode; typedef enum _GXTexFilter { @@ -186,14 +186,14 @@ typedef enum _GXTexFilter { GX_NEAR_MIP_NEAR, GX_LIN_MIP_NEAR, GX_NEAR_MIP_LIN, - GX_LIN_MIP_LIN, + GX_LIN_MIP_LIN } GXTexFilter; typedef enum _GXAnisotropy { GX_ANISO_1, GX_ANISO_2, GX_ANISO_4, - GX_MAX_ANISOTROPY, + GX_MAX_ANISOTROPY } GXAnisotropy; typedef enum _GXTexMapID { @@ -207,7 +207,7 @@ typedef enum _GXTexMapID { GX_TEXMAP7, GX_MAX_TEXMAP, GX_TEXMAP_NULL = 0xFF, - GX_TEX_DISABLE = 0x100, + GX_TEX_DISABLE = 0x100 } GXTexMapID; typedef enum _GXTexCoordID { @@ -220,7 +220,7 @@ typedef enum _GXTexCoordID { GX_TEXCOORD6, GX_TEXCOORD7, GX_MAX_TEXCOORD, - GX_TEXCOORD_NULL = 0xFF, + GX_TEXCOORD_NULL = 0xFF } GXTexCoordID; typedef enum _GXTevStageID { @@ -240,7 +240,7 @@ typedef enum _GXTevStageID { GX_TEVSTAGE13, GX_TEVSTAGE14, GX_TEVSTAGE15, - GX_MAX_TEVSTAGE, + GX_MAX_TEVSTAGE } GXTevStageID; typedef enum _GXTevMode { @@ -248,12 +248,12 @@ typedef enum _GXTevMode { GX_DECAL, GX_BLEND, GX_REPLACE, - GX_PASSCLR, + GX_PASSCLR } GXTevMode; typedef enum _GXTexMtxType { GX_MTX3x4, - GX_MTX2x4, + GX_MTX2x4 } GXTexMtxType; typedef enum _GXTexGenType { @@ -267,7 +267,7 @@ typedef enum _GXTexGenType { GX_TG_BUMP5, GX_TG_BUMP6, GX_TG_BUMP7, - GX_TG_SRTG, + GX_TG_SRTG } GXTexGenType; typedef enum _GXPosNrmMtx { @@ -280,7 +280,7 @@ typedef enum _GXPosNrmMtx { GX_PNMTX6 = 18, GX_PNMTX7 = 21, GX_PNMTX8 = 24, - GX_PNMTX9 = 27, + GX_PNMTX9 = 27 } GXPosNrmMtx; typedef enum _GXTexMtx { @@ -294,7 +294,7 @@ typedef enum _GXTexMtx { GX_TEXMTX7 = 51, GX_TEXMTX8 = 54, GX_TEXMTX9 = 57, - GX_IDENTITY = 60, + GX_IDENTITY = 60 } GXTexMtx; typedef enum _GXChannelID { @@ -307,7 +307,7 @@ typedef enum _GXChannelID { GX_COLOR_ZERO, GX_ALPHA_BUMP, GX_ALPHA_BUMPN, - GX_COLOR_NULL = 0xFF, + GX_COLOR_NULL = 0xFF } GXChannelID; typedef enum _GXTexGenSrc { @@ -332,7 +332,7 @@ typedef enum _GXTexGenSrc { GX_TG_TEXCOORD6, GX_TG_COLOR0, GX_TG_COLOR1, - GX_MAX_TEXGENSRC, + GX_MAX_TEXGENSRC } GXTexGenSrc; typedef enum _GXBlendMode { @@ -340,7 +340,7 @@ typedef enum _GXBlendMode { GX_BM_BLEND, GX_BM_LOGIC, GX_BM_SUBTRACT, - GX_MAX_BLENDMODE, + GX_MAX_BLENDMODE } GXBlendMode; typedef enum _GXBlendFactor { @@ -353,7 +353,7 @@ typedef enum _GXBlendFactor { GX_BL_DSTALPHA, GX_BL_INVDSTALPHA, GX_BL_DSTCLR = GX_BL_SRCCLR, - GX_BL_INVDSTCLR = GX_BL_INVSRCCLR, + GX_BL_INVDSTCLR = GX_BL_INVSRCCLR } GXBlendFactor; typedef enum _GXLogicOp { @@ -372,7 +372,7 @@ typedef enum _GXLogicOp { GX_LO_INVCOPY, GX_LO_INVOR, GX_LO_NAND, - GX_LO_SET, + GX_LO_SET } GXLogicOp; typedef enum _GXCompCnt { @@ -384,7 +384,7 @@ typedef enum _GXCompCnt { GX_CLR_RGB = 0, GX_CLR_RGBA = 1, GX_TEX_S = 0, - GX_TEX_ST = 1, + GX_TEX_ST = 1 } GXCompCnt; typedef enum _GXCompType { @@ -398,7 +398,7 @@ typedef enum _GXCompType { GX_RGBX8 = 2, GX_RGBA4 = 3, GX_RGBA6 = 4, - GX_RGBA8 = 5, + GX_RGBA8 = 5 } GXCompType; typedef enum _GXPTTexMtx { @@ -422,7 +422,7 @@ typedef enum _GXPTTexMtx { GX_PTTEXMTX17 = 115, GX_PTTEXMTX18 = 118, GX_PTTEXMTX19 = 121, - GX_PTIDENTITY = 125, + GX_PTIDENTITY = 125 } GXPTTexMtx; typedef enum _GXTevRegID { @@ -430,24 +430,24 @@ typedef enum _GXTevRegID { GX_TEVREG0, GX_TEVREG1, GX_TEVREG2, - GX_MAX_TEVREG, + GX_MAX_TEVREG } GXTevRegID; typedef enum _GXDiffuseFn { GX_DF_NONE, GX_DF_SIGN, - GX_DF_CLAMP, + GX_DF_CLAMP } GXDiffuseFn; typedef enum _GXColorSrc { GX_SRC_REG, - GX_SRC_VTX, + GX_SRC_VTX } GXColorSrc; typedef enum _GXAttnFn { GX_AF_SPEC, GX_AF_SPOT, - GX_AF_NONE, + GX_AF_NONE } GXAttnFn; typedef enum _GXLightID { @@ -460,7 +460,7 @@ typedef enum _GXLightID { GX_LIGHT6 = 0x040, GX_LIGHT7 = 0x080, GX_MAX_LIGHT = 0x100, - GX_LIGHT_NULL = 0, + GX_LIGHT_NULL = 0 } GXLightID; typedef enum _GXTexOffset { @@ -470,7 +470,7 @@ typedef enum _GXTexOffset { GX_TO_FOURTH, GX_TO_HALF, GX_TO_ONE, - GX_MAX_TEXOFFSET, + GX_MAX_TEXOFFSET } GXTexOffset; typedef enum _GXSpotFn { @@ -480,21 +480,21 @@ typedef enum _GXSpotFn { GX_SP_COS2, GX_SP_SHARP, GX_SP_RING1, - GX_SP_RING2, + GX_SP_RING2 } GXSpotFn; typedef enum _GXDistAttnFn { GX_DA_OFF, GX_DA_GENTLE, GX_DA_MEDIUM, - GX_DA_STEEP, + GX_DA_STEEP } GXDistAttnFn; typedef enum _GXCullMode { GX_CULL_NONE, GX_CULL_FRONT, GX_CULL_BACK, - GX_CULL_ALL, + GX_CULL_ALL } GXCullMode; typedef enum _GXTevSwapSel { @@ -502,14 +502,14 @@ typedef enum _GXTevSwapSel { GX_TEV_SWAP1, GX_TEV_SWAP2, GX_TEV_SWAP3, - GX_MAX_TEVSWAP, + GX_MAX_TEVSWAP } GXTevSwapSel; typedef enum _GXTevColorChan { GX_CH_RED = 0, GX_CH_GREEN, GX_CH_BLUE, - GX_CH_ALPHA, + GX_CH_ALPHA } GXTevColorChan; typedef enum _GXFogType { @@ -528,7 +528,7 @@ typedef enum _GXFogType { GX_FOG_EXP = GX_FOG_PERSP_EXP, GX_FOG_EXP2 = GX_FOG_PERSP_EXP2, GX_FOG_REVEXP = GX_FOG_PERSP_REVEXP, - GX_FOG_REVEXP2 = GX_FOG_PERSP_REVEXP2, + GX_FOG_REVEXP2 = GX_FOG_PERSP_REVEXP2 } GXFogType; typedef enum _GXTevColorArg { @@ -547,7 +547,7 @@ typedef enum _GXTevColorArg { GX_CC_ONE, GX_CC_HALF, GX_CC_KONST, - GX_CC_ZERO, + GX_CC_ZERO } GXTevColorArg; typedef enum _GXTevAlphaArg { @@ -558,7 +558,7 @@ typedef enum _GXTevAlphaArg { GX_CA_TEXA, GX_CA_RASA, GX_CA_KONST, - GX_CA_ZERO, + GX_CA_ZERO } GXTevAlphaArg; typedef enum _GXTevOp { @@ -573,14 +573,14 @@ typedef enum _GXTevOp { GX_TEV_COMP_RGB8_GT = 14, GX_TEV_COMP_RGB8_EQ = 15, GX_TEV_COMP_A8_GT = GX_TEV_COMP_RGB8_GT, - GX_TEV_COMP_A8_EQ = GX_TEV_COMP_RGB8_EQ, + GX_TEV_COMP_A8_EQ = GX_TEV_COMP_RGB8_EQ } GXTevOp; typedef enum _GXTevBias { GX_TB_ZERO, GX_TB_ADDHALF, GX_TB_SUBHALF, - GX_MAX_TEVBIAS, + GX_MAX_TEVBIAS } GXTevBias; typedef enum _GXTevScale { @@ -588,7 +588,7 @@ typedef enum _GXTevScale { GX_CS_SCALE_2, GX_CS_SCALE_4, GX_CS_DIVIDE_2, - GX_MAX_TEVSCALE, + GX_MAX_TEVSCALE } GXTevScale; typedef enum _GXTevKColorSel { @@ -623,7 +623,7 @@ typedef enum _GXTevKColorSel { GX_TEV_KCSEL_K0_A = 0x1C, GX_TEV_KCSEL_K1_A = 0x1D, GX_TEV_KCSEL_K2_A = 0x1E, - GX_TEV_KCSEL_K3_A = 0x1F, + GX_TEV_KCSEL_K3_A = 0x1F } GXTevKColorSel; typedef enum _GXTevKAlphaSel { @@ -654,7 +654,7 @@ typedef enum _GXTevKAlphaSel { GX_TEV_KASEL_K0_A = 0x1C, GX_TEV_KASEL_K1_A = 0x1D, GX_TEV_KASEL_K2_A = 0x1E, - GX_TEV_KASEL_K3_A = 0x1F, + GX_TEV_KASEL_K3_A = 0x1F } GXTevKAlphaSel; typedef enum _GXTevKColorID { @@ -662,14 +662,14 @@ typedef enum _GXTevKColorID { GX_KCOLOR1, GX_KCOLOR2, GX_KCOLOR3, - GX_MAX_KCOLOR, + GX_MAX_KCOLOR } GXTevKColorID; typedef enum _GXZTexOp { GX_ZT_DISABLE, GX_ZT_ADD, GX_ZT_REPLACE, - GX_MAX_ZTEXOP, + GX_MAX_ZTEXO } GXZTexOp; typedef enum _GXIndTexFormat { @@ -677,7 +677,7 @@ typedef enum _GXIndTexFormat { GX_ITF_5, GX_ITF_4, GX_ITF_3, - GX_MAX_ITFORMAT, + GX_MAX_ITFORMAT } GXIndTexFormat; typedef enum _GXIndTexBiasSel { @@ -689,7 +689,7 @@ typedef enum _GXIndTexBiasSel { GX_ITB_SU, GX_ITB_TU, GX_ITB_STU, - GX_MAX_ITBIAS, + GX_MAX_ITBIAS } GXIndTexBiasSel; typedef enum _GXIndTexAlphaSel { @@ -697,7 +697,7 @@ typedef enum _GXIndTexAlphaSel { GX_ITBA_S, GX_ITBA_T, GX_ITBA_U, - GX_MAX_ITBALPHA, + GX_MAX_ITBALPHA } GXIndTexAlphaSel; typedef enum _GXIndTexMtxID { @@ -710,7 +710,7 @@ typedef enum _GXIndTexMtxID { GX_ITM_S2, GX_ITM_T0 = 9, GX_ITM_T1, - GX_ITM_T2, + GX_ITM_T2 } GXIndTexMtxID; typedef enum _GXIndTexWrap { @@ -721,7 +721,7 @@ typedef enum _GXIndTexWrap { GX_ITW_32, GX_ITW_16, GX_ITW_0, - GX_MAX_ITWRAP, + GX_MAX_ITWRAP } GXIndTexWrap; typedef enum _GXIndTexStageID { @@ -729,7 +729,7 @@ typedef enum _GXIndTexStageID { GX_INDTEXSTAGE1, GX_INDTEXSTAGE2, GX_INDTEXSTAGE3, - GX_MAX_INDTEXSTAGE, + GX_MAX_INDTEXSTAGE } GXIndTexStageID; typedef enum _GXIndTexScale { @@ -742,12 +742,12 @@ typedef enum _GXIndTexScale { GX_ITS_64, GX_ITS_128, GX_ITS_256, - GX_MAX_ITSCALE, + GX_MAX_ITSCALE } GXIndTexScale; typedef enum _GXClipMode { GX_CLIP_ENABLE = 0, - GX_CLIP_DISABLE = 1, + GX_CLIP_DISABLE = 1 } GXClipMode; typedef enum _GXTlut { @@ -770,21 +770,21 @@ typedef enum _GXTlut { GX_BIGTLUT0 = 16, GX_BIGTLUT1 = 17, GX_BIGTLUT2 = 18, - GX_BIGTLUT3 = 19, + GX_BIGTLUT3 = 19 } GXTlut; typedef enum _GXTlutFmt { GX_TL_IA8, GX_TL_RGB565, GX_TL_RGB5A3, - GX_MAX_TLUTFMT, + GX_MAX_TLUTFMT } GXTlutFmt; typedef enum _GXMiscToken { GX_MT_NULL = 0, GX_MT_XF_FLUSH = 1, GX_MT_DL_SAVE_CONTEXT = 2, - GX_MT_ABORT_WAIT_COPYOUT = 3, + GX_MT_ABORT_WAIT_COPYOUT = 3 } GXMiscToken; typedef enum _GXTexCacheSize { @@ -834,7 +834,6 @@ typedef enum _GXPerf0 { GX_PERF0_CLOCKS, GX_PERF0_NONE - } GXPerf0; typedef enum _GXPerf1 { @@ -864,7 +863,6 @@ typedef enum _GXPerf1 { GX_PERF1_CLOCKS, GX_PERF1_NONE - } GXPerf1; typedef enum _GXVCachePerf { @@ -881,25 +879,24 @@ typedef enum _GXVCachePerf { GX_VC_TEX6, GX_VC_TEX7, GX_VC_ALL = 0xf - } GXVCachePerf; typedef enum _GXFBClamp { GX_CLAMP_NONE = 0, GX_CLAMP_TOP = 1, - GX_CLAMP_BOTTOM = 2, + GX_CLAMP_BOTTOM = 2 } GXFBClamp; typedef enum _GXCopyMode { GX_COPY_PROGRESSIVE = 0, GX_COPY_INTLC_EVEN = 2, - GX_COPY_INTLC_ODD = 3, + GX_COPY_INTLC_ODD = 3 } GXCopyMode; typedef enum _GXAlphaReadMode { GX_READ_00 = 0, GX_READ_FF = 1, - GX_READ_NONE = 2, + GX_READ_NONE = 2 } GXAlphaReadMode; diff --git a/include/dolphin/gx/GXExtra.h b/include/dolphin/gx/GXExtra.h index afd29caa..9ba48170 100644 --- a/include/dolphin/gx/GXExtra.h +++ b/include/dolphin/gx/GXExtra.h @@ -19,7 +19,7 @@ typedef struct { typedef enum { GX_TF_R8_PC = 0x60, - GX_TF_RGBA8_PC = 0x61, + GX_TF_RGBA8_PC = 0x61 } GXPCTexFmt; void GXDestroyTexObj(GXTexObj* obj); diff --git a/include/dolphin/gx/GXStruct.h b/include/dolphin/gx/GXStruct.h index 8b810140..49f038bc 100644 --- a/include/dolphin/gx/GXStruct.h +++ b/include/dolphin/gx/GXStruct.h @@ -89,7 +89,7 @@ typedef enum _GXTlutSize GX_TLUT_2K = 128, GX_TLUT_4K = 256, GX_TLUT_8K = 512, - GX_TLUT_16K = 1024, + GX_TLUT_16K = 1024 } GXTlutSize; typedef struct _GXVtxAttrFmtList { diff --git a/include/dolphin/gx/GXVerify.h b/include/dolphin/gx/GXVerify.h index a4e40cfb..f43dee45 100644 --- a/include/dolphin/gx/GXVerify.h +++ b/include/dolphin/gx/GXVerify.h @@ -7,7 +7,7 @@ typedef enum { GX_WARN_NONE, GX_WARN_SEVERE, GX_WARN_MEDIUM, - GX_WARN_ALL, + GX_WARN_ALL } GXWarningLevel; #ifdef _DEBUG diff --git a/include/dolphin/vitypes.h b/include/dolphin/vitypes.h index db958702..be262ea3 100644 --- a/include/dolphin/vitypes.h +++ b/include/dolphin/vitypes.h @@ -50,12 +50,12 @@ typedef enum { // GCA VI_TVMODE_GCA_INT = VI_TVMODE(VI_GCA, VI_INTERLACE), VI_TVMODE_GCA_DS = VI_TVMODE(VI_GCA, VI_NON_INTERLACE), - VI_TVMODE_GCA_PROG = VI_TVMODE(VI_GCA, VI_PROGRESSIVE), + VI_TVMODE_GCA_PROG = VI_TVMODE(VI_GCA, VI_PROGRESSIVE) } VITVMode; typedef enum { VI_XFBMODE_SF = 0, - VI_XFBMODE_DF = 1, + VI_XFBMODE_DF = 1 } VIXFBMode; typedef void (*VIPositionCallback)(s16 x, s16 y); diff --git a/include/ext_math.h b/include/ext_math.h index 7ff5edbf..e979909d 100644 --- a/include/ext_math.h +++ b/include/ext_math.h @@ -32,4 +32,8 @@ typedef struct vec2f { #define asind(x) (180.0*(asinf((x)) / M_PI)) #define atan2d(y, x) (180.0*(atan2((y), (x)) / M_PI)) +#ifndef __MWERKS__ +void HuSetVecF(Vec* arg0, f32 arg8, f32 arg9, f32 argA) +#endif + #endif diff --git a/include/game/data.h b/include/game/data.h index 288e5577..9c01b09b 100644 --- a/include/game/data.h +++ b/include/game/data.h @@ -17,7 +17,7 @@ #include "dolphin/types.h" -typedef struct data_read_stat { +struct data_read_stat { s32 dir_id; void *dir; void *file; @@ -27,7 +27,7 @@ typedef struct data_read_stat { s32 num; u32 status; DVDFileInfo file_info; -} DataReadStat; +}; void HuDataInit(void); s32 HuDataReadChk(s32 data_num); @@ -56,4 +56,4 @@ void HuDecodeData(void *src, void *dst, u32 size, s32 decode_type); extern u32 DirDataSize; -#endif \ No newline at end of file +#endif diff --git a/include/game/hsfanim.h b/include/game/hsfanim.h index 32c9c4cc..9cf16673 100644 --- a/include/game/hsfanim.h +++ b/include/game/hsfanim.h @@ -26,7 +26,7 @@ typedef struct { /* 0x40 */ GXColor unk40; } HsfanimStruct01; // Size 0x44 -typedef struct particle_data { +struct particle_data { /* 0x00 */ s16 unk_00; /* 0x02 */ s16 unk_02; /* 0x04 */ Vec unk_04; @@ -50,7 +50,7 @@ typedef struct particle_data { /* 0x4C */ Vec *unk_4C; /* 0x50 */ void *unk_50; /* 0x54 */ ParticleHook unk_54; -} ParticleData; // Size 0x58 +}; // Size 0x58 typedef struct { /* 0x00 */ s16 unk00; diff --git a/include/game/hsfman.h b/include/game/hsfman.h index 87299d79..2be96d31 100644 --- a/include/game/hsfman.h +++ b/include/game/hsfman.h @@ -1,10 +1,10 @@ #ifndef _GAME_HSFMAN_H #define _GAME_HSFMAN_H +#include "game/data.h" #include "game/hsfanim.h" #include "game/hsfformat.h" #include "game/memory.h" -#include "game/data.h" #define HU3D_MODEL_MAX 512 #define HU3D_MOTION_MAX 256 @@ -79,11 +79,12 @@ #define Hu3DModelCreateFile(data_id) (Hu3DModelCreate(HuDataSelHeapReadNum((data_id), MEMORY_DEFAULT_NUM, HEAP_DATA))) +typedef struct model_data ModelData; typedef struct particle_data ParticleData; typedef void (*ModelHookFunc)(struct model_data *, Mtx); -typedef struct model_data { +struct model_data { u8 unk_00; u8 unk_01; u8 unk_02; @@ -107,25 +108,25 @@ typedef struct model_data { u32 unk_4C; u32 attr; u32 motion_attr; - Point3d unk_58; - f32 unk_64; - f32 unk_68; - f32 unk_6C; - f32 unk_70; - f32 unk_74; - f32 unk_78; - f32 unk_7C; - f32 unk_80; - f32 unk_84; - f32 unk_88; - f32 unk_8C; - f32 unk_90; - f32 unk_94; - f32 unk_98; - f32 unk_9C; - f32 unk_A0; - f32 unk_A4[4]; - f32 unk_B4[4]; + Vec unk_58; + float unk_64; + float unk_68; + float unk_6C; + float unk_70; + float unk_74; + float unk_78; + float unk_7C; + float unk_80; + float unk_84; + float unk_88; + float unk_8C; + float unk_90; + float unk_94; + float unk_98; + float unk_9C; + float unk_A0; + float unk_A4[4]; + float unk_B4[4]; union { HsfData *hsfData; ModelHookFunc hook; @@ -136,13 +137,13 @@ typedef struct model_data { Vec scale; Mtx unk_F0; void *unk_120; -} ModelData; // sizeof 0x124 +}; // sizeof 0x124 typedef struct camera_data { - f32 fov; - f32 near; - f32 far; - f32 aspect; - f32 aspect_dupe; + float fov; + float near; + float far; + float aspect; + float aspect_dupe; Vec pos; Vec up; Vec target; @@ -150,20 +151,20 @@ typedef struct camera_data { s16 scissor_y; s16 scissor_w; s16 scissor_h; - f32 viewport_x; - f32 viewport_y; - f32 viewport_w; - f32 viewport_h; - f32 near_z; - f32 far_z; + float viewport_x; + float viewport_y; + float viewport_w; + float viewport_h; + float near_z; + float far_z; } CameraData; // sizeof 0x58 typedef struct ThreeDProjectionStruct { u8 unk_00; char unk_01[0x3]; void *unk_04; Vec unk_08; - Point3d unk_14; - Point3d unk_20; + Vec unk_14; + Vec unk_20; Vec unk_2C; Mtx unk_38; Mtx unk_68; @@ -172,7 +173,7 @@ typedef struct shadow_data { u8 unk_00; u8 unk_01; u16 unk_02; - void* unk_04; + void *unk_04; Vec unk_08; Vec unk_14; Vec unk_20; @@ -183,8 +184,8 @@ typedef struct shadow_data { typedef struct light_data { s16 unk_00; s16 unk_02; - f32 unk_04; - f32 unk_08; + float unk_04; + float unk_08; char unk_0C[0x10]; Vec unk_1C; Vec unk_28; @@ -192,8 +193,8 @@ typedef struct light_data { GXColor color; } LightData; -extern void GXWaitDrawDone(); /* extern */ -extern void GXInitSpecularDir(GXLightObj*, f32, f32, f32); +extern void GXWaitDrawDone(); /* extern */ +extern void GXInitSpecularDir(GXLightObj *, float, float, float); void Hu3DInit(void); void Hu3DPreProc(void); @@ -208,11 +209,11 @@ s16 Hu3DModelLink(s16); s16 Hu3DHookFuncCreate(ModelHookFunc); void Hu3DModelKill(s16); void Hu3DModelAllKill(void); -void Hu3DModelPosSet(s16, f32, f32, f32); +void Hu3DModelPosSet(s16, float, float, float); void Hu3DModelPosSetV(s16, Vec *); -void Hu3DModelRotSet(s16, f32, f32, f32); +void Hu3DModelRotSet(s16, float, float, float); void Hu3DModelRotSetV(s16, Vec *); -void Hu3DModelScaleSet(s16, f32, f32, f32); +void Hu3DModelScaleSet(s16, float, float, float); void Hu3DModelScaleSetV(s16, Vec *); void Hu3DModelAttrSet(s16, u32); void Hu3DModelAttrReset(s16, u32); @@ -222,16 +223,16 @@ void Hu3DModelClusterAttrSet(s16, s16, s32); void Hu3DModelClusterAttrReset(s16, s16, s32); void Hu3DModelCameraSet(s16, u16); void Hu3DModelLayerSet(s16, s16); -HsfObject* Hu3DModelObjPtrGet(s16, char *); -void Hu3DModelTPLvlSet(s16, f32); -void Hu3DModelHiliteMapSet(s16, AnimData*); +HsfObject *Hu3DModelObjPtrGet(s16, char *); +void Hu3DModelTPLvlSet(s16, float); +void Hu3DModelHiliteMapSet(s16, AnimData *); void Hu3DModelShadowSet(s16); void Hu3DModelShadowReset(s16); void Hu3DModelShadowDispOn(s16); void Hu3DModelShadowDispOff(s16); void Hu3DModelShadowMapSet(s16); void Hu3DModelShadowMapObjSet(s16, char *); -void Hu3DModelAmbSet(s16, f32, f32, f32); +void Hu3DModelAmbSet(s16, float, float, float); void Hu3DModelHookSet(s16, char *, s16); void Hu3DModelHookReset(s16); void Hu3DModelHookObjReset(s16, char *); @@ -240,10 +241,10 @@ void Hu3DModelProjectionReset(s16, s16); void Hu3DModelHiliteTypeSet(s16, s16); void Hu3DModelReflectTypeSet(s16, s16); void Hu3DCameraCreate(s32); -void Hu3DCameraPerspectiveSet(s32, f32, f32, f32, f32); -void Hu3DCameraViewportSet(s32, f32, f32, f32, f32, f32, f32); +void Hu3DCameraPerspectiveSet(s32, float, float, float, float); +void Hu3DCameraViewportSet(s32, float, float, float, float, float, float); void Hu3DCameraScissorSet(s32, u32, u32, u32, u32); -void Hu3DCameraPosSet(s32, f32, f32, f32, f32, f32, f32, f32, f32, f32); +void Hu3DCameraPosSet(s32, float, float, float, float, float, float, float, float, float); void Hu3DCameraPosSetV(s32 cam, Vec *pos, Vec *up, Vec *target); void Hu3DCameraKill(s32); void Hu3DCameraAllKill(void); @@ -254,47 +255,47 @@ void Hu3DCameraMotionOn(s16, s8); void Hu3DCameraMotionStart(s16, u16); void Hu3DCameraMotionOff(s16); void Hu3DLighInit(void); -s16 Hu3DGLightCreate(f32, f32, f32, f32, f32, f32, u8, u8, u8); -s16 Hu3DGLightCreateV(Vec*, Vec*, GXColor*); -s16 Hu3DLLightCreate(s16, f32, f32, f32, f32, f32, f32, u8, u8, u8); -s16 Hu3DLLightCreateV(s16, Vec*, Vec*, GXColor*); -void Hu3DGLightSpotSet(s16, f32, u16); -void Hu3DLLightSpotSet(s16, s16, f32, u16); +s16 Hu3DGLightCreate(float, float, float, float, float, float, u8, u8, u8); +s16 Hu3DGLightCreateV(Vec *, Vec *, GXColor *); +s16 Hu3DLLightCreate(s16, float, float, float, float, float, float, u8, u8, u8); +s16 Hu3DLLightCreateV(s16, Vec *, Vec *, GXColor *); +void Hu3DGLightSpotSet(s16, float, u16); +void Hu3DLLightSpotSet(s16, s16, float, u16); void Hu3DGLightInfinitytSet(s16); void Hu3DLLightInfinitytSet(s16, s16); -void Hu3DGLightPointSet(s16, f32, f32, u16); -void Hu3DLLightPointSet(s16, s16, f32, f32, u16); +void Hu3DGLightPointSet(s16, float, float, u16); +void Hu3DLLightPointSet(s16, s16, float, float, u16); void Hu3DGLightKill(s16); void Hu3DLLightKill(s16, s16); void Hu3DLightAllKill(void); void Hu3DGLightColorSet(s16, u8, u8, u8, u8); void Hu3DLLightColorSet(s16, s16, u8, u8, u8, u8); -void Hu3DGLightPosSetV(s16, Vec*, Point3d*); -void Hu3DLLightPosSetV(s16, s16, Vec*, Point3d*); -void Hu3DGLightPosSet(s16, f32, f32, f32, f32, f32, f32); -void Hu3DLLightPosSet(s16, s16, f32, f32, f32, f32, f32, f32); -void Hu3DGLightPosAimSetV(s16, Point3d*, Point3d*); -void Hu3DLLightPosAimSetV(s16, s16, Point3d*, Point3d*); -void Hu3DGLightPosAimSet(s16, f32, f32, f32, f32, f32, f32); -void Hu3DLLightPosAimSet(s16, s16, f32, f32, f32, f32, f32, f32); +void Hu3DGLightPosSetV(s16, Vec *, Vec *); +void Hu3DLLightPosSetV(s16, s16, Vec *, Vec *); +void Hu3DGLightPosSet(s16, float, float, float, float, float, float); +void Hu3DLLightPosSet(s16, s16, float, float, float, float, float, float); +void Hu3DGLightPosAimSetV(s16, Vec *, Vec *); +void Hu3DLLightPosAimSetV(s16, s16, Vec *, Vec *); +void Hu3DGLightPosAimSet(s16, float, float, float, float, float, float); +void Hu3DLLightPosAimSet(s16, s16, float, float, float, float, float, float); void Hu3DGLightStaticSet(s16, s32); void Hu3DLLightStaticSet(s16, s16, s32); s32 Hu3DModelLightInfoSet(s16, s16); -s16 Hu3DLightSet(ModelData*, Mtx*, Mtx*, f32); -void lightSet(LightData* arg0, s16 arg1, Mtx *arg2, Mtx *arg3, f32 arg8); +s16 Hu3DLightSet(ModelData *, Mtx *, Mtx *, float); +void lightSet(LightData *arg0, s16 arg1, Mtx *arg2, Mtx *arg3, float arg8); void Hu3DReflectNoSet(s16 arg0); -void Hu3DFogSet(f32, f32, u8, u8, u8); +void Hu3DFogSet(float, float, u8, u8, u8); void Hu3DFogClear(void); -void Hu3DShadowCreate(f32, f32, f32); -void Hu3DShadowPosSet(Vec*, Vec*, Vec*); -void Hu3DShadowTPLvlSet(f32); +void Hu3DShadowCreate(float, float, float); +void Hu3DShadowPosSet(Vec *, Vec *, Vec *); +void Hu3DShadowTPLvlSet(float); void Hu3DShadowSizeSet(u16); void Hu3DShadowExec(void); -s16 Hu3DProjectionCreate(void*, f32, f32, f32); +s16 Hu3DProjectionCreate(void *, float, float, float); void Hu3DProjectionKill(s16); -void Hu3DProjectionPosSet(s16, Vec*, Vec*, Vec*); -void Hu3DProjectionTPLvlSet(s16, f32); -void Hu3DMipMapSet(char*, s16, s32, f32); +void Hu3DProjectionPosSet(s16, Vec *, Vec *, Vec *); +void Hu3DProjectionTPLvlSet(s16, float); +void Hu3DMipMapSet(char *, s16, s32, float); extern ModelData Hu3DData[0x200]; extern CameraData Hu3DCamera[0x10]; diff --git a/include/game/minigame_seq.h b/include/game/minigame_seq.h index a345b0fe..6f20a101 100644 --- a/include/game/minigame_seq.h +++ b/include/game/minigame_seq.h @@ -48,7 +48,7 @@ typedef struct seq_work SeqWork; typedef s32 (*SeqUpdateFunc)(SeqWork *work); typedef s32 (*SeqInitFunc)(SeqWork *work, va_list params); -typedef struct seq_work { +struct seq_work { SeqUpdateFunc update; char *data; float x; @@ -73,7 +73,7 @@ typedef struct seq_work { u8 stat; u8 unk_7C; u8 unk_7D; -} SeqWork; +}; void MGSeqInit(void); void MGSeqMain(void); diff --git a/src/REL/m403Dll/main.c b/src/REL/m403Dll/main.c index af675a31..1a6faa0c 100755 --- a/src/REL/m403Dll/main.c +++ b/src/REL/m403Dll/main.c @@ -18,6 +18,10 @@ #include "ext_math.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + typedef struct { /* 0x000 */ u8 unk00; /* 0x001 */ char unk01[3]; diff --git a/src/REL/m404Dll/main.c b/src/REL/m404Dll/main.c index e331d72f..ba9e9ca0 100644 --- a/src/REL/m404Dll/main.c +++ b/src/REL/m404Dll/main.c @@ -14,6 +14,11 @@ #include "string.h" #include "version.h" +#ifndef __MWERKS__ +#include "game/audio.h" +#include "game/esprite.h" +#endif + typedef struct UnkM404Struct { s16 unk_00; s16 unk_02[6]; diff --git a/src/REL/m407dll/camera.c b/src/REL/m407dll/camera.c index 69d04b85..4db0b078 100644 --- a/src/REL/m407dll/camera.c +++ b/src/REL/m407dll/camera.c @@ -1,35 +1,37 @@ -#include "game/process.h" -#include "game/object.h" -#include "game/hsfdraw.h" #include "ext_math.h" +#include "game/hsfdraw.h" +#include "game/object.h" +#include "game/process.h" + typedef struct unkDominationData2 { -/* 0x00 */ s32 unk_00; -/* 0x04 */ s32 unk_04; -/* 0x08 */ Point3d unk_08; -/* 0x14 */ Point3d unk_14; -/* 0x20 */ f32 unk_20; -/* 0x24 */ Point3d unk_24; -/* 0x30 */ Point3d unk_30; -/* 0x3C */ f32 unk_3C; -/* 0x40 */ s32 unk_40; -/* 0x44 */ f32 unk_44; -/* 0x48 */ f32 unk_48; -} unkDominationData2; //sizeof 0x4C + /* 0x00 */ s32 unk_00; + /* 0x04 */ s32 unk_04; + /* 0x08 */ Vec unk_08; + /* 0x14 */ Vec unk_14; + /* 0x20 */ f32 unk_20; + /* 0x24 */ Vec unk_24; + /* 0x30 */ Vec unk_30; + /* 0x3C */ f32 unk_3C; + /* 0x40 */ s32 unk_40; + /* 0x44 */ f32 unk_44; + /* 0x48 */ f32 unk_48; +} unkDominationData2; // sizeof 0x4C -//function signatures +// function signatures void fn_1_1CAC(f32, f32, f32); void fn_1_1D08(f32, f32, f32); void fn_1_1D64(f32); -void fn_1_2024(omObjData*); +void fn_1_2024(omObjData *); -//bss -Process* lbl_1_bss_34; -omObjData* lbl_1_bss_30; +// bss +Process *lbl_1_bss_34; +omObjData *lbl_1_bss_30; + +void fn_1_1B1C(Process *arg0) +{ + unkDominationData2 *unkData; -void fn_1_1B1C(Process* arg0) { - unkDominationData2* unkData; - lbl_1_bss_34 = arg0; Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f); Hu3DCameraPerspectiveSet(1, 45.0f, 10.0f, 40000.0f, 1.2f); @@ -42,49 +44,55 @@ void fn_1_1B1C(Process* arg0) { fn_1_1D64(0.0f); } -void fn_1_1CA8(void) { +void fn_1_1CA8(void) { } -} - -void fn_1_1CAC(f32 arg8, f32 arg9, f32 argA) { +void fn_1_1CAC(f32 arg8, f32 arg9, f32 argA) +{ Center.x = arg8; Center.y = arg9; Center.z = argA; } -void fn_1_1CD4(f32* arg0, f32* arg1, f32* arg2) { +void fn_1_1CD4(f32 *arg0, f32 *arg1, f32 *arg2) +{ *arg0 = Center.x; *arg1 = Center.y; *arg2 = Center.z; } -void fn_1_1D08(f32 arg8, f32 arg9, f32 argA) { +void fn_1_1D08(f32 arg8, f32 arg9, f32 argA) +{ CRot.x = arg8; CRot.y = arg9; CRot.z = argA; } -void fn_1_1D30(f32* arg0, f32* arg1, f32* arg2) { +void fn_1_1D30(f32 *arg0, f32 *arg1, f32 *arg2) +{ *arg0 = CRot.x; *arg1 = CRot.y; *arg2 = CRot.z; } -void fn_1_1D64(f32 arg8) { +void fn_1_1D64(f32 arg8) +{ CZoom = arg8; } -void fn_1_1D74(f32* arg0) { +void fn_1_1D74(f32 *arg0) +{ *arg0 = CZoom; } -s32 fn_1_1D88(void) { - unkDominationData2* unkData = lbl_1_bss_30->data; +s32 fn_1_1D88(void) +{ + unkDominationData2 *unkData = lbl_1_bss_30->data; return unkData->unk_04; } -void fn_1_1DB0(Point3d* arg0, Point3d* arg1, f32* arg2, s32 arg3, s32 arg4) { - unkDominationData2* temp_r31; +void fn_1_1DB0(Vec *arg0, Vec *arg1, f32 *arg2, s32 arg3, s32 arg4) +{ + unkDominationData2 *temp_r31; temp_r31 = lbl_1_bss_30->data; temp_r31->unk_00 = arg4; @@ -100,46 +108,48 @@ void fn_1_1DB0(Point3d* arg0, Point3d* arg1, f32* arg2, s32 arg3, s32 arg4) { temp_r31->unk_04 = 1; } -f32 fn_1_1F1C(f32 arg8, f32 arg9) { +f32 fn_1_1F1C(f32 arg8, f32 arg9) +{ if (((arg8 > 0.0f) && (arg9 > 0.0f)) || ((arg8 < 0.0f) && (arg9 < 0.0f))) { return abs(arg8 - arg9); } - + return abs(arg8) + abs(arg9); } -void fn_1_2024(omObjData* arg0) { +void fn_1_2024(omObjData *arg0) +{ Vec sp14; Vec sp8; f32 var_f31; f32 cZoomTemp; - unkDominationData2* temp_r31; + unkDominationData2 *temp_r31; temp_r31 = arg0->data; if (temp_r31->unk_04 != 0) { switch (temp_r31->unk_00) { - case 0: - var_f31 = temp_r31->unk_44; - break; - case 1: - var_f31 = temp_r31->unk_44; - if (temp_r31->unk_48 > 0.5) { - temp_r31->unk_00 = 2; - } - break; - case 2: - var_f31 = sind(90.0f * temp_r31->unk_44); - break; - case 3: - var_f31 = sind(90.0f * temp_r31->unk_44); - if (temp_r31->unk_48 > 0.5) { - temp_r31->unk_00 = 4; - } - break; - case 4: - var_f31 = sind(90.0f * temp_r31->unk_44); - var_f31 *= var_f31; - break; + case 0: + var_f31 = temp_r31->unk_44; + break; + case 1: + var_f31 = temp_r31->unk_44; + if (temp_r31->unk_48 > 0.5) { + temp_r31->unk_00 = 2; + } + break; + case 2: + var_f31 = sind(90.0f * temp_r31->unk_44); + break; + case 3: + var_f31 = sind(90.0f * temp_r31->unk_44); + if (temp_r31->unk_48 > 0.5) { + temp_r31->unk_00 = 4; + } + break; + case 4: + var_f31 = sind(90.0f * temp_r31->unk_44); + var_f31 *= var_f31; + break; } sp14.x = temp_r31->unk_24.x + (var_f31 * (temp_r31->unk_08.x - temp_r31->unk_24.x)); sp14.y = temp_r31->unk_24.y + (var_f31 * (temp_r31->unk_08.y - temp_r31->unk_24.y)); diff --git a/src/REL/m407dll/effect.c b/src/REL/m407dll/effect.c index 52df4f5a..4e5287ba 100644 --- a/src/REL/m407dll/effect.c +++ b/src/REL/m407dll/effect.c @@ -2,6 +2,7 @@ #include "game/hsfmotion.h" #include "game/object.h" #include "game/process.h" +#include "math.h" #include "REL/m407dll.h" diff --git a/src/REL/m407dll/main.c b/src/REL/m407dll/main.c index a3b4c1d7..83406eca 100644 --- a/src/REL/m407dll/main.c +++ b/src/REL/m407dll/main.c @@ -1,13 +1,12 @@ #include "game/object.h" #include "game/gamework_data.h" +#include "game/gamework.h" #include "game/minigame_seq.h" #include "game/wipe.h" #include "game/audio.h" #include "game/hsfman.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) - -typedef void (*ObjFuncs)(void); +#include "REL/m407dll.h" typedef struct unkDominationData5 { /* 0x00 */ u32 unk_00; @@ -27,12 +26,6 @@ typedef struct unkDominationData5 { } unkDominationData5; //sizeof 0x48 //function signatures -void fn_1_388(u8, s32); -void fn_1_3C4(u8); -s32 fn_1_4C0(s32); -s32 fn_1_508(u8); -s32 fn_1_53C(u8); -void fn_1_568(s16, s16, s16); void fn_1_4B7C(void); void fn_1_4C3C(s32); void fn_1_4C6C(omObjData*); @@ -56,7 +49,7 @@ omObjData* lbl_1_bss_397C; s16 lbl_1_bss_3978; //data -ObjFuncs lbl_1_data_2A8[] = { +VoidFuncs lbl_1_data_2A8[] = { fn_1_4D0C, fn_1_4D54, fn_1_4E8C, diff --git a/src/REL/m407dll/map.c b/src/REL/m407dll/map.c index 3586f39a..4675aa80 100644 --- a/src/REL/m407dll/map.c +++ b/src/REL/m407dll/map.c @@ -3,7 +3,7 @@ #include "game/object.h" #include "game/process.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) +#include "REL/m407dll.h" // function signatures void fn_1_162C(omObjData *); @@ -34,10 +34,10 @@ s32 lbl_1_data_198[] = { Vec lbl_1_data_1CC[] = { { 600.0f, 3.0f, -300.0f }, { 200.0f, 3.0f, -300.0f }, { -200.0f, 3.0f, -300.0f }, { -600.0f, 3.0f, -300.0f } }; -Point3d lbl_1_data_1FC = { 2000.0f, 3000.0f, 2000.0f }; -Point3d lbl_1_data_208 = { -0.5f, -0.5f, -0.5f }; +Vec lbl_1_data_1FC = { 2000.0f, 3000.0f, 2000.0f }; +Vec lbl_1_data_208 = { -0.5f, -0.5f, -0.5f }; GXColor lbl_1_data_214 = { 255, 255, 255, 255 }; -Point3d lbl_1_data_218 = { 0.0f, 1.0f, 0.0f }; +Vec lbl_1_data_218 = { 0.0f, 1.0f, 0.0f }; void fn_1_14F0(Process *arg0, s32 arg1) { @@ -117,7 +117,7 @@ void fn_1_162C(omObjData *arg0) void fn_1_1A8C(omObjData *arg0) { - Point3d sp8; + Vec sp8; sp8.x = lbl_1_data_1FC.x; sp8.y = lbl_1_data_1FC.y; diff --git a/src/REL/m407dll/player.c b/src/REL/m407dll/player.c index 725f71bd..0557ca80 100644 --- a/src/REL/m407dll/player.c +++ b/src/REL/m407dll/player.c @@ -1,15 +1,16 @@ +#include "game/audio.h" #include "game/chrman.h" #include "game/frand.h" #include "game/gamework_data.h" #include "game/hsfman.h" +#include "game/hsfmotion.h" #include "game/object.h" #include "game/objsub.h" #include "game/pad.h" #include "game/process.h" #include "math.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) -typedef void (*ObjFuncs)(omObjData *); +#include "REL/m407dll.h" typedef struct unkDominationData { u8 unk_00; diff --git a/src/REL/m407dll/score.c b/src/REL/m407dll/score.c index e5cd5fed..4895ebd8 100644 --- a/src/REL/m407dll/score.c +++ b/src/REL/m407dll/score.c @@ -3,9 +3,7 @@ #include "game/process.h" #include "game/sprite.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) - -typedef void (*ObjFuncs)(void); +#include "REL/m407dll.h" typedef struct unkDominationData6 { /* 0x00 */ s32 unk_00; @@ -30,7 +28,7 @@ Process *lbl_1_bss_398C; omObjData *lbl_1_bss_3988; // data -ObjFuncs lbl_1_data_360[] = { fn_1_61A0, fn_1_6218, fn_1_62A0 }; +VoidFuncs lbl_1_data_360[] = { fn_1_61A0, fn_1_6218, fn_1_62A0 }; void fn_1_5C5C(Process *arg0, s16 arg1) { diff --git a/src/REL/m407dll/whomp.c b/src/REL/m407dll/whomp.c index 08605efb..43275f60 100644 --- a/src/REL/m407dll/whomp.c +++ b/src/REL/m407dll/whomp.c @@ -5,14 +5,12 @@ #include "game/object.h" #include "game/process.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) +#include "REL/m407dll.h" #define MAX_WHOMPS_PLAYER 160 #define MAX_WHOMPS_ALL_PLAYERS MAX_WHOMPS_PLAYER *ARRAY_COUNT(GWPlayer) #define MAX_WHOMPS (MAX_WHOMPS_PLAYER + 1) * ARRAY_COUNT(GWPlayer) -typedef void (*ObjFuncs)(omObjData *); - typedef struct unkDominationData7 { /* 0x00 */ u32 unk_00; /* 0x04 */ s32 unk_04; diff --git a/src/REL/m408Dll/main.c b/src/REL/m408Dll/main.c index 7494d1eb..fa04e61a 100644 --- a/src/REL/m408Dll/main.c +++ b/src/REL/m408Dll/main.c @@ -19,6 +19,10 @@ #include "ext_math.h" #include "math.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + s32 lbl_1_data_0[] = { DATA_MAKE_NUM(DATADIR_MGCONST, 0x00), DATA_MAKE_NUM(DATADIR_MGCONST, 0x01), diff --git a/src/REL/m409Dll/player.c b/src/REL/m409Dll/player.c index 26330990..9157deeb 100644 --- a/src/REL/m409Dll/player.c +++ b/src/REL/m409Dll/player.c @@ -9,6 +9,10 @@ #include "game/sprite.h" #include "ext_math.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + // bss omObjData *lbl_1_bss_3A0[4]; omObjData *lbl_1_bss_39C; diff --git a/src/REL/m410Dll/player.c b/src/REL/m410Dll/player.c index d4566bca..3286d2c0 100644 --- a/src/REL/m410Dll/player.c +++ b/src/REL/m410Dll/player.c @@ -11,6 +11,10 @@ #include "REL/m410Dll.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + omObjData *lbl_1_bss_74; AnimData *lbl_1_bss_70; s32 lbl_1_bss_60[4]; @@ -141,8 +145,6 @@ void fn_1_7E30(Process *objman) void fn_1_806C(void) { - s32 var_lr; - HuSprAnimKill(lbl_1_bss_70); CharModelKill(-1); } diff --git a/src/REL/m424Dll/ball.c b/src/REL/m424Dll/ball.c index 5114c552..c8c3177e 100644 --- a/src/REL/m424Dll/ball.c +++ b/src/REL/m424Dll/ball.c @@ -12,7 +12,6 @@ #include "game/sprite.h" #include "string.h" - // STRUCT typedef struct _M424DllBallStruct { u8 unk0; @@ -1467,7 +1466,7 @@ void fn_1_79FC(Vec *arg0, Vec *arg1, f32 arg2, Vec *arg3, Vec *arg4, f32 arg5, f } } -void fn_1_7CA0(Vec arg0, Vec arg1, f32 arg2, Point3d *arg3) +void fn_1_7CA0(Vec arg0, Vec arg1, f32 arg2, Vec *arg3) { f32 var_f31; diff --git a/src/REL/m427Dll/main.c b/src/REL/m427Dll/main.c index fdf0de2d..7031739f 100644 --- a/src/REL/m427Dll/main.c +++ b/src/REL/m427Dll/main.c @@ -10,6 +10,10 @@ #include "game/objsub.h" #include "game/wipe.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + typedef struct M427DllStruct2 { s32 unk0[3]; s32 unkC; diff --git a/src/REL/m427Dll/map.c b/src/REL/m427Dll/map.c index 1678f422..fa191ed6 100644 --- a/src/REL/m427Dll/map.c +++ b/src/REL/m427Dll/map.c @@ -492,7 +492,7 @@ void fn_1_3B20(s8 arg0, s16 arg1) Vec sp54[4] = { { 110.0f, -20.0f, 0.0f }, { -110.0f, -20.0f, 0.0f }, { 110.0f, -20.0f, 190.0f }, { -110.0f, -20.0f, 190.0f } }; Mtx sp24; f32 sp14[4] = { 135.0f, 225.0f, 45.0f, 315.0f }; - Point3d sp8; + Vec sp8; f32 temp_f31; s16 var_r29; s32 var_r27; diff --git a/src/REL/m434Dll/main.c b/src/REL/m434Dll/main.c index e13e8578..bfe8d0df 100644 --- a/src/REL/m434Dll/main.c +++ b/src/REL/m434Dll/main.c @@ -13,6 +13,10 @@ #include "math.h" #include "version.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + typedef struct camera_view { float zoom; Vec pos; diff --git a/src/REL/m443Dll/player.c b/src/REL/m443Dll/player.c index b0f2554d..9ed45b12 100644 --- a/src/REL/m443Dll/player.c +++ b/src/REL/m443Dll/player.c @@ -1166,7 +1166,7 @@ static inline f32 isEven(u32 arg) } } -void fn_1_8FFC(u32 arg0, Point3d *arg1, f32 arg2, f32 arg3) +void fn_1_8FFC(u32 arg0, Vec *arg1, f32 arg2, f32 arg3) { f32 temp_f31; f32 var_f29; diff --git a/src/REL/m444dll/datalist.c b/src/REL/m444dll/datalist.c index 3b4fbbaf..6d2e69f2 100644 --- a/src/REL/m444dll/datalist.c +++ b/src/REL/m444dll/datalist.c @@ -1,5 +1,9 @@ #include "REL/m444dll.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + s16 lbl_1_bss_199C2[90]; s16 lbl_1_bss_1990E[90]; s16 lbl_1_bss_1990A[2]; @@ -177,4 +181,4 @@ void fn_1_D950(void) espKill(lbl_1_bss_1990A[i]); } } -} \ No newline at end of file +} diff --git a/src/REL/m455Dll/main.c b/src/REL/m455Dll/main.c index 667d1084..36c27f42 100644 --- a/src/REL/m455Dll/main.c +++ b/src/REL/m455Dll/main.c @@ -17,6 +17,10 @@ #include "ext_math.h" #include "math.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + typedef struct camera_view_params { float zoom; Vec pos; diff --git a/src/REL/m461Dll/main.c b/src/REL/m461Dll/main.c index 0d20a7d3..1c4b57cc 100644 --- a/src/REL/m461Dll/main.c +++ b/src/REL/m461Dll/main.c @@ -23,6 +23,10 @@ #include "ext_math.h" +#ifndef __MWERKS__ +#include "game/audio.h" +#endif + #undef ABS #define ABS(x) ((0 > (x)) ? -(x) : (x)) diff --git a/src/REL/mentDll/common.c b/src/REL/mentDll/common.c index 77e82ced..59f44912 100644 --- a/src/REL/mentDll/common.c +++ b/src/REL/mentDll/common.c @@ -157,9 +157,9 @@ void fn_1_50C(void) void fn_1_5E8(s32 arg0) { - Point3d sp24 = { 0.0f, 3000.0f, 800.0f }; - Point3d sp18 = { 0.0f, 0.0f, 640.0f }; - Point3d spC = { 0.0f, 1.0f, 0.0f }; + Vec sp24 = { 0.0f, 3000.0f, 800.0f }; + Vec sp18 = { 0.0f, 0.0f, 640.0f }; + Vec spC = { 0.0f, 1.0f, 0.0f }; if (arg0 == 3) { sp24.x = sp18.x = 1200.0f; diff --git a/src/REL/modeltestDll/main.c b/src/REL/modeltestDll/main.c index 2b99a635..cb1c254b 100644 --- a/src/REL/modeltestDll/main.c +++ b/src/REL/modeltestDll/main.c @@ -163,8 +163,8 @@ HsfanimStruct00 lbl_1_data_258 = { { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 }, { /* r */ 0, /* g */ 0, /* b */ 0, /* a */ 0 } }, }; -const Point3d lbl_1_rodata_38 = { 0.0f, 0.0f, 0.0f }; -const Point3d lbl_1_rodata_44 = { 0.0f, 1.0f, 0.0f }; +const Vec lbl_1_rodata_38 = { 0.0f, 0.0f, 0.0f }; +const Vec lbl_1_rodata_44 = { 0.0f, 1.0f, 0.0f }; s16 lbl_1_bss_99C; s16 lbl_1_bss_99A; s16 lbl_1_bss_98A[8]; @@ -196,9 +196,9 @@ static u8 unk_bss[8]; void fn_1_29C(omObjData *arg0) { - Point3d sp20; - Point3d sp14; - Point3d sp8; + Vec sp20; + Vec sp14; + Vec sp8; Mtx sp2C; s16 var_r31; s16 temp_r27; @@ -337,7 +337,7 @@ void fn_1_F38(void) // -------------------------------------------------------------------------- // -static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) +static inline void HuControlCamCenter(Vec *sp18, Vec *sp30) { s8 temp_r28; @@ -364,10 +364,10 @@ const HuUnkF9C2 lbl_1_rodata_B8 = { { 8, 6, 4, 7, 9, 10, 11 } }; void fn_1_F9C(struct om_obj_data *omData) { - Point3d sp3C; - Point3d sp30; - Point3d sp24; - Point3d sp18; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; f32 temp_f31; s32 var_r31; s16 var_r30; @@ -643,9 +643,9 @@ void fn_1_20F4(void) // -------------------------------------------------------------------------- // -void fn_1_28F8(Point3d *arg0, Point3d *arg1) +void fn_1_28F8(Vec *arg0, Vec *arg1) { - Point3d spC; + Vec spC; Mtx sp18; CameraData *cam; f32 temp_f31; diff --git a/src/REL/modeltestDll/modeltest00.c b/src/REL/modeltestDll/modeltest00.c index c687e5df..03f4fd71 100644 --- a/src/REL/modeltestDll/modeltest00.c +++ b/src/REL/modeltestDll/modeltest00.c @@ -1,27 +1,28 @@ -#include "math.h" #include "game/chrman.h" -#include "game/wipe.h" #include "game/pad.h" +#include "game/wipe.h" +#include "math.h" + #include "REL/modeltestDll.h" // -------------------------------------------------------------------------- // -omObjData * unk_bss_9FC; -omObjData * lbl_1_bss_9F8; -omObjData * lbl_1_bss_9F4; +omObjData *unk_bss_9FC; +omObjData *lbl_1_bss_9F8; +omObjData *lbl_1_bss_9F4; s16 lbl_1_bss_9EC[4]; s16 lbl_1_bss_9AC[4][8]; -Process * lbl_1_bss_9A8; -u16 lbl_1_data_358[4] = {1, 2, 4, 8}; +Process *lbl_1_bss_9A8; +u16 lbl_1_data_358[4] = { 1, 2, 4, 8 }; // -------------------------------------------------------------------------- // void fn_1_34B0() { - Process * temp_r30; + Process *temp_r30; s16 var_r31; - + OSReport("******* MODELTESTObjectSetup *********\n"); temp_r30 = omInitObjMan(0x32, 0x2000); @@ -33,8 +34,7 @@ void fn_1_34B0() Center.z = 0.0f; CZoom = 400.0f; - for (var_r31 = 0; var_r31 < 4; ++var_r31) - { + for (var_r31 = 0; var_r31 < 4; ++var_r31) { Hu3DCameraCreate(lbl_1_data_358[var_r31]); Hu3DCameraPerspectiveSet(lbl_1_data_358[var_r31], 45.0f, 20.0f, 20000.0f, 1.2f); Hu3DCameraViewportSet(lbl_1_data_358[var_r31], (var_r31 & 1) * 320, ((var_r31 & 2) != 0) ? 0xF0 : 0, 320.0f, 240.0f, 0.0f, 1.0f); @@ -51,7 +51,8 @@ void fn_1_34B0() // -------------------------------------------------------------------------- // -static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) { +static inline void HuControlCamCenter(Vec *sp18, Vec *sp30) +{ s8 temp_r28; temp_r28 = HuPadSubStkX[0] & 0xF8; @@ -73,12 +74,12 @@ static inline void HuControlCamCenter(Point3d *sp18, Point3d *sp30) { void fn_1_37DC(omObjData *) { - Point3d sp3C; - Point3d sp30; - Point3d sp24; - Point3d sp18; + Vec sp3C; + Vec sp30; + Vec sp24; + Vec sp18; float temp_f31; - + if ((HuPadBtnDown[0] & PAD_BUTTON_START) != 0) { if (lbl_1_bss_9A8) { HuPrcKill(lbl_1_bss_9A8); @@ -113,17 +114,17 @@ void fn_1_37DC(omObjData *) sp24.y = cosd(CRot.x); sp24.z = cosd(CRot.y) * sind(CRot.x); temp_f31 = CRot.z; - + sp18.x = sp24.x * (sp30.x * sp30.x + (1.0f - sp30.x * sp30.x) * cosd(temp_f31)) - + sp24.y * (sp30.x * sp30.y * (1.0f - cosd(temp_f31)) - sp30.z * sind(temp_f31)) - + sp24.z * (sp30.x * sp30.z * (1.0f - cosd(temp_f31)) + sp30.y * sind(temp_f31)); + + sp24.y * (sp30.x * sp30.y * (1.0f - cosd(temp_f31)) - sp30.z * sind(temp_f31)) + + sp24.z * (sp30.x * sp30.z * (1.0f - cosd(temp_f31)) + sp30.y * sind(temp_f31)); sp18.y = sp24.y * (sp30.y * sp30.y + (1.0f - sp30.y * sp30.y) * cosd(temp_f31)) - + sp24.x * (sp30.x * sp30.y * (1.0f - cosd(temp_f31)) + sp30.z * sind(temp_f31)) - + sp24.z * (sp30.y * sp30.z * (1.0f - cosd(temp_f31)) - sp30.x * sind(temp_f31)); - + + sp24.x * (sp30.x * sp30.y * (1.0f - cosd(temp_f31)) + sp30.z * sind(temp_f31)) + + sp24.z * (sp30.y * sp30.z * (1.0f - cosd(temp_f31)) - sp30.x * sind(temp_f31)); + sp18.z = sp24.z * (sp30.z * sp30.z + (1.0f - sp30.z * sp30.z) * cosd(temp_f31)) - + (sp24.x * (sp30.x * sp30.z * (1.0 - cosd(temp_f31)) - sp30.y * sind(temp_f31)) + + (sp24.x * (sp30.x * sp30.z * (1.0 - cosd(temp_f31)) - sp30.y * sind(temp_f31)) + sp24.y * (sp30.y * sp30.z * (1.0 - cosd(temp_f31)) + sp30.x * sind(temp_f31))); VECCrossProduct(&sp24, &sp30, &sp30); @@ -134,24 +135,23 @@ void fn_1_37DC(omObjData *) // -------------------------------------------------------------------------- // -void fn_1_439C(omObjData * ) +void fn_1_439C(omObjData *) { s16 var_r31; f32 temp_f30; f32 temp_f31; f32 sp10; - Point3d sp2C; - Point3d sp20; - Point3d sp14; - for (var_r31 = 0; var_r31 < 4; ++var_r31) - { + Vec sp2C; + Vec sp20; + Vec sp14; + for (var_r31 = 0; var_r31 < 4; ++var_r31) { temp_f31 = CRot.x; temp_f30 = CRot.y + (var_r31 * 90); sp10 = CRot.z; sp2C.x = Center.x + CZoom * (sind(temp_f30) * (cosd(temp_f31))); sp2C.y = Center.y + CZoom * -sind(temp_f31); sp2C.z = Center.z + CZoom * (cosd(temp_f30) * (cosd(temp_f31))); - + sp20.x = Center.x; sp20.y = Center.y; sp20.z = Center.z; @@ -160,22 +160,22 @@ void fn_1_439C(omObjData * ) sp14.y = cosd(temp_f31); sp14.z = cosd(temp_f30) * (sind(temp_f31)); - Hu3DCameraPosSet(lbl_1_data_358[var_r31], sp2C.x, sp2C.y, sp2C.z, sp14.x, sp14.y, sp14.z, sp20.x, sp20.y, sp20.z); + Hu3DCameraPosSet(lbl_1_data_358[var_r31], sp2C.x, sp2C.y, sp2C.z, sp14.x, sp14.y, sp14.z, sp20.x, sp20.y, sp20.z); } } // -------------------------------------------------------------------------- // -const Point3d lbl_1_rodata_18C = {0.0f, 0.0f, 0.0f}; -const Point3d lbl_1_rodata_198 = {0.0f, 1.0f, 0.0f}; +const Vec lbl_1_rodata_18C = { 0.0f, 0.0f, 0.0f }; +const Vec lbl_1_rodata_198 = { 0.0f, 1.0f, 0.0f }; // -------------------------------------------------------------------------- // void fn_1_46F0(void) { - Point3d sp20; - Point3d sp14; - Point3d sp8; + Vec sp20; + Vec sp14; + Vec sp8; s16 var_r31; s16 var_r30; @@ -192,8 +192,7 @@ void fn_1_46F0(void) sp20.z = 1000.0f; Hu3DShadowPosSet(&sp20, &sp8, &sp14); - for (var_r31 = 0; var_r31 < 4; ++var_r31) - { + for (var_r31 = 0; var_r31 < 4; ++var_r31) { var_r30 = var_r31; lbl_1_bss_9EC[var_r31] = CharModelCreate(var_r30, 8); Hu3DModelShadowSet(lbl_1_bss_9EC[var_r31]); @@ -201,7 +200,7 @@ void fn_1_46F0(void) CharModelMotionSet(var_r30, lbl_1_bss_9AC[var_r31][0]); Hu3DModelAttrSet(lbl_1_bss_9EC[var_r31], HU3D_MOTATTR_LOOP); Hu3DModelCameraSet(lbl_1_bss_9EC[var_r31], lbl_1_data_358[var_r31]); - Hu3DModelPosSet(lbl_1_bss_9EC[var_r31], ((( var_r31 / 4) * 200) - 100), 0.0f, (-( var_r31 % 4) * 150)); + Hu3DModelPosSet(lbl_1_bss_9EC[var_r31], (((var_r31 / 4) * 200) - 100), 0.0f, (-(var_r31 % 4) * 150)); Hu3DModelPosSet(lbl_1_bss_9EC[var_r31], 0.0f, 0.0f, 0.0f); CharModelMotionDataClose(var_r30); } @@ -210,15 +209,12 @@ void fn_1_46F0(void) Hu3DModelScaleSet(var_r31, 5.0f, 5.0f, 5.0f); Hu3DModelShadowMapSet(var_r31); - while (TRUE) - { + while (TRUE) { if ((HuPadBtnDown[0] & PAD_BUTTON_Y) != 0) { Hu3DCameraKill(2); Hu3DCameraKill(4); Hu3DCameraKill(8); - sp20.x = - sp20.z = - sp20.y = 0.0f; + sp20.x = sp20.z = sp20.y = 0.0f; sp20.y += 200.0f; CharModelCoinEffectCreate(4, &sp20); } diff --git a/src/REL/modeseldll/filesel.c b/src/REL/modeseldll/filesel.c index 16712e88..1ddd44cf 100644 --- a/src/REL/modeseldll/filesel.c +++ b/src/REL/modeseldll/filesel.c @@ -14,6 +14,10 @@ #include "REL/modeseldll.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + s16 lbl_1_data_100 = -1; float lbl_1_data_104[] = { -55, 0, 0, 0, 60, -57, 806, -71, 0, 0, 0, 100, -131, 900, -87, 0, 0, 0, 46, -117, 566, -87, 0, 0, 0, 46, -117, 566, -90, 0, 0, -22, 39, -153, 432, -40, 0, 0, 0, 130, -186, 6530, -23, 0, 0, -9, 1, -70, 1318, -25, 0, 0, 0, 242, 90, 343, -30, 0, 0, 0, 223, -60, 505, -23, diff --git a/src/REL/resultDll/battle.c b/src/REL/resultDll/battle.c index 8baf9450..f9a58cba 100644 --- a/src/REL/resultDll/battle.c +++ b/src/REL/resultDll/battle.c @@ -19,6 +19,10 @@ #include "REL/resultdll.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + #define COIN_EFFECT_MAX 180 static StageModel resultBattleModel[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x08), 0, 0, -1, -1, { -300, 0, 0 }, { 0, 0, 0 }, { 0.9f, 0.9f, 0.9f } }, diff --git a/src/REL/resultDll/datalist.c b/src/REL/resultDll/datalist.c index 1a37f8a0..5d747f30 100644 --- a/src/REL/resultDll/datalist.c +++ b/src/REL/resultDll/datalist.c @@ -1,5 +1,9 @@ #include "REL/resultdll.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + s16 stageMdlId[32]; s16 stageMotId[32]; s16 stageSprId[33]; @@ -83,4 +87,4 @@ void StageSpriteKill(void) espKill(stageSprId[i]); } } -} \ No newline at end of file +} diff --git a/src/REL/resultDll/main.c b/src/REL/resultDll/main.c index 57433d33..84d801c9 100644 --- a/src/REL/resultDll/main.c +++ b/src/REL/resultDll/main.c @@ -18,6 +18,10 @@ #include "REL/resultdll.h" +#ifndef __MWERKS__ +#include "game/esprite.h" +#endif + static StageModel resultModel[] = { { DATA_MAKE_NUM(DATADIR_RESULT, 0x00), 1, 0, -1, -1, { 148, 132, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x01), 1, 0, -1, -1, { 148, 217, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, { DATA_MAKE_NUM(DATADIR_RESULT, 0x02), 1, 0, -1, -1, { 148, 302, 500 }, { 0, 0, 0 }, { 1, 1, 1 } }, diff --git a/src/REL/w02Dll/main.c b/src/REL/w02Dll/main.c index 8da93e44..ab699fc7 100644 --- a/src/REL/w02Dll/main.c +++ b/src/REL/w02Dll/main.c @@ -2,22 +2,22 @@ #include "game/frand.h" // Temporary defines -#define BOARD_ITEM_MINI 0x0 -#define BOARD_ITEM_MEGA 0x1 -#define BOARD_ITEM_SUPERMINI 0x2 -#define BOARD_ITEM_SUPERMEGA 0x3 -#define BOARD_ITEM_HAMMER 0x4 -#define BOARD_ITEM_PIPE 0x5 -#define BOARD_ITEM_CARD 0x6 -#define BOARD_ITEM_SPARKY 0x7 -#define BOARD_ITEM_GADDLIGHT 0x8 -#define BOARD_ITEM_CHOMPCALL 0x9 -#define BOARD_ITEM_SUIT 0xA -#define BOARD_ITEM_BOO 0xB -#define BOARD_ITEM_LAMP 0xC -#define BOARD_ITEM_BAG 0xD -#define BOARD_ITEM_MAX 0xE -#define BOARD_ITEM_NONE -1 +#define BOARD_ITEM_MINI 0x0 +#define BOARD_ITEM_MEGA 0x1 +#define BOARD_ITEM_SUPERMINI 0x2 +#define BOARD_ITEM_SUPERMEGA 0x3 +#define BOARD_ITEM_HAMMER 0x4 +#define BOARD_ITEM_PIPE 0x5 +#define BOARD_ITEM_CARD 0x6 +#define BOARD_ITEM_SPARKY 0x7 +#define BOARD_ITEM_GADDLIGHT 0x8 +#define BOARD_ITEM_CHOMPCALL 0x9 +#define BOARD_ITEM_SUIT 0xA +#define BOARD_ITEM_BOO 0xB +#define BOARD_ITEM_LAMP 0xC +#define BOARD_ITEM_BAG 0xD +#define BOARD_ITEM_MAX 0xE +#define BOARD_ITEM_NONE -1 /* BSS */ s16 lbl_1_bss_30[0x10]; // Model List @@ -25,30 +25,29 @@ s16 lbl_1_bss_2E; s16 lbl_1_bss_2C; Vec lbl_1_bss_20; Vec lbl_1_bss_14; -s32* lbl_1_bss_10; +s32 *lbl_1_bss_10; s16 lbl_1_bss_8[4]; // Item List -Process* lbl_1_bss_4; -u8* lbl_1_bss_0; +Process *lbl_1_bss_4; +u8 *lbl_1_bss_0; /* DATA */ -static BoardMapObject lbl_1_data_0[0x10] = { - {{2550.0f, 0.0f, -450.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000C)}, - {{-3150.0f, 0.0f, -1350.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000D)}, - {{-3150.0f, 0.0f, 1650.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000E)}, - {{-150.0f, 0.0f, 900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0008)}, - {{-150.0f, 0.0f, 900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0009)}, - {{-150.0f, 0.0f, 900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000A)}, - {{-150.0f, 0.0f, 900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x000B)}, - {{1350.0f, 0.0f, -300.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0011)}, - {{1350.0f, 0.0f, -300.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0012)}, - {{1350.0f, 0.0f, -300.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0015)}, - {{-300.0f, 0.0f, -900.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_W02, 0x0016)}, - {{1175.0f, 0.0f, -125.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)}, - {{-525.0f, 0.0f, -825.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)}, - {{-2225.0f, 0.0f, -2100.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)}, - {{1925.0f, 0.0f, -2100.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)}, - {{150.0f, 0.0f, 1650.0f}, {0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f}, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005)} -}; +static BoardMapObject lbl_1_data_0[0x10] + = { { { 2550.0f, 0.0f, -450.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x000C) }, + { { -3150.0f, 0.0f, -1350.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x000D) }, + { { -3150.0f, 0.0f, 1650.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x000E) }, + { { -150.0f, 0.0f, 900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0008) }, + { { -150.0f, 0.0f, 900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0009) }, + { { -150.0f, 0.0f, 900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x000A) }, + { { -150.0f, 0.0f, 900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x000B) }, + { { 1350.0f, 0.0f, -300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0011) }, + { { 1350.0f, 0.0f, -300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0012) }, + { { 1350.0f, 0.0f, -300.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0015) }, + { { -300.0f, 0.0f, -900.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_W02, 0x0016) }, + { { 1175.0f, 0.0f, -125.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005) }, + { { -525.0f, 0.0f, -825.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005) }, + { { -2225.0f, 0.0f, -2100.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005) }, + { { 1925.0f, 0.0f, -2100.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005) }, + { { 150.0f, 0.0f, 1650.0f }, { 0.0f, 0.0f, 0.0f }, { 1.0f, 1.0f, 1.0f }, DATA_MAKE_NUM(DATADIR_BGUEST, 0x0005) } }; // Special Models s16 lbl_1_data_280 = -1; @@ -56,21 +55,15 @@ s16 lbl_1_data_282 = -1; s16 lbl_1_data_284 = -1; s16 lbl_1_data_286 = -1; -s32 lbl_1_data_288[] = { - DATA_MAKE_NUM(DATADIR_W02, 0x0004), - DATA_NUM_LISTEND -}; +s32 lbl_1_data_288[] = { DATA_MAKE_NUM(DATADIR_W02, 0x0004), DATA_NUM_LISTEND }; s32 lbl_1_data_290[] = { - DATA_MAKE_NUM(DATADIR_BGUEST, 0x0009), - DATA_MAKE_NUM(DATADIR_BGUEST, 0x0006), - DATA_MAKE_NUM(DATADIR_BGUEST, 0x0007), - DATA_MAKE_NUM(DATADIR_BGUEST, 0x0008), - DATA_NUM_LISTEND, + DATA_MAKE_NUM(DATADIR_BGUEST, 0x0009), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0006), DATA_MAKE_NUM(DATADIR_BGUEST, 0x0007), + DATA_MAKE_NUM(DATADIR_BGUEST, 0x0008), DATA_NUM_LISTEND, 0x00000000 // Padding }; /* Functions */ -//Actual externs +// Actual externs extern void BoardMusStart(s32, s32, s32, s32); extern void BoardAudSeqPause(s32, s32, s32); s8 BoardComPreferItemCheck(s32, s8, s8, s8); @@ -79,13 +72,15 @@ extern void BoardComKeySetRight(); extern void CharModelDataClose(s16); // function is probably global. only inlined in rels? -inline s32 get_current_board(void) { +inline s32 get_current_board(void) +{ return GWSystem.board; } -void BoardCreate(void) { +void BoardCreate(void) +{ s32 i, boardData; - BoardMapObject* modelTransform; + BoardMapObject *modelTransform; boardData = get_current_board(); lbl_1_bss_0 = GWSystem.board_data; @@ -106,12 +101,13 @@ void BoardCreate(void) { BoardModelMotionStart(lbl_1_data_286, 1, 0x40000001); BoardLightHookSet(fn_1_72C, fn_1_770); - for(i = 0; i < 0x10; i++) { + for (i = 0; i < 0x10; i++) { modelTransform = &lbl_1_data_0[i]; if (modelTransform->data_num != -1) { if ((i == 0xB) || (i == 0xC) || (i == 0xD) || (i == 0xE) || (i == 0xF)) { lbl_1_bss_10 = lbl_1_data_290; - } else { + } + else { lbl_1_bss_10 = NULL; } lbl_1_bss_30[i] = BoardModelCreate(modelTransform->data_num, lbl_1_bss_10, 0); @@ -146,7 +142,8 @@ void BoardCreate(void) { BoardJunctionMaskSet(0x30); } -void BoardDestroy(void) { +void BoardDestroy(void) +{ /* Kill Model List */ s32 i; for (i = 0; i < 0x10; i++) { @@ -176,17 +173,17 @@ void BoardDestroy(void) { BoardSpaceDestroy(); } -void fn_1_72C(void) { +void fn_1_72C(void) +{ s16 var = BoardModelIDGet(lbl_1_data_280); Hu3DModelLightInfoSet(var, 1); } -void fn_1_770(void) { - -} +void fn_1_770(void) { } /* Decrement current space's [UNKNOWN] flag */ -s32 fn_1_774(void) { +s32 fn_1_774(void) +{ u32 unkFlag; u32 currPlayer; u32 currSpace; @@ -194,7 +191,7 @@ s32 fn_1_774(void) { currPlayer = GWSystem.player_curr; currSpace = GWPlayer[currPlayer].space_curr; spaceFlags = BoardSpaceFlagGet(0, currSpace); - //temp_r31 = (temp_r) + // temp_r31 = (temp_r) unkFlag = (spaceFlags & 0x1C0) >> 6; if (unkFlag != 0) { unkFlag--; @@ -203,8 +200,9 @@ s32 fn_1_774(void) { } /* Check if can iteract with board object? */ -s32 fn_1_800(void) { - BoardSpace* currSpace; +s32 fn_1_800(void) +{ + BoardSpace *currSpace; s32 currPlayer; s32 var_r29; @@ -212,7 +210,6 @@ s32 fn_1_800(void) { currSpace = BoardSpaceGet(0, GWPlayer[currPlayer].space_curr); if ((currSpace->flag & 0x30) != 0) { - // If mega mushroom state return if (BoardPlayerSizeGet(currPlayer) == 2) { return 0; @@ -224,9 +221,11 @@ s32 fn_1_800(void) { if ((currSpace->flag & 0x20) != 0 && (currSpace->flag & 0x10) != 0) { var_r29 = 2; - } else if ((currSpace->flag & 0x20) != 0) { + } + else if ((currSpace->flag & 0x20) != 0) { var_r29 = 1; - } else { + } + else { var_r29 = 0; } fn_1_394C(var_r29); @@ -239,22 +238,23 @@ s32 fn_1_800(void) { return 0; } -void fn_1_92C(void) { +void fn_1_92C(void) +{ fn_1_39F4(); fn_1_5CF8(); } -void fn_1_950(void) { +void fn_1_950(void) { } -} - -void fn_1_954(void) { +void fn_1_954(void) +{ HuPrcSleep(0x3C); BoardMusStart(1, 0x12, 0x7F, 0); HuPrcEnd(); } -void fn_1_990(void) { +void fn_1_990(void) +{ Vec rotation; Vec offset; Vec boardSpacePos; @@ -264,13 +264,13 @@ void fn_1_990(void) { s32 currSpace; s32 spaceLinkFlag; - currPlayer = GWSystem.player_curr; BoardWinCreateChoice(2, MAKE_MESSID(19, 17), 4, 0); if (GWPlayer[currPlayer].com) { if (frandBool() != 0) { BoardComKeySetLeft(); - } else { + } + else { BoardComKeySetRight(); } } @@ -317,7 +317,8 @@ void fn_1_990(void) { BoardPlayerMotionStart(currPlayer, 1, 0x40000001); } -void fn_1_C50(void) { +void fn_1_C50(void) +{ Vec rotation; Vec offset; s32 currSpace; @@ -327,7 +328,7 @@ void fn_1_C50(void) { s32 i, j; currPlayer = GWSystem.player_curr; - if (BoardPlayerItemCount((s32) currPlayer) == 3) { + if (BoardPlayerItemCount((s32)currPlayer) == 3) { BoardWinCreate(2, MAKE_MESSID(19, 26), 4); BoardWinWait(); BoardWinKill(); @@ -351,7 +352,7 @@ void fn_1_C50(void) { } if (lbl_1_bss_8[i] != BOARD_ITEM_NONE) { i++; - } + } } } fn_1_79BC(lbl_1_bss_8); @@ -361,7 +362,8 @@ void fn_1_C50(void) { if (GWPlayer[currPlayer].com) { if (BoardComPreferItemCheck(currPlayer, lbl_1_bss_8[0], lbl_1_bss_8[1], lbl_1_bss_8[2]) != -1) { BoardComKeySetLeft(); - } else { + } + else { BoardComKeySetRight(); } } @@ -387,14 +389,14 @@ void fn_1_C50(void) { offset.x = 0.0f; offset.y = 0.0f; offset.z = -250.0f; - BoardCameraMotionStartEx(lbl_1_bss_30[10], (Point3d* ) &rotation, (Point3d* ) &offset, 1500.0f, 25.0f, 0x15); + BoardCameraMotionStartEx(lbl_1_bss_30[10], (Vec *)&rotation, (Vec *)&offset, 1500.0f, 25.0f, 0x15); currSpace = GWPlayer[currPlayer].space_curr; spaceLinkFlags = BoardSpaceLinkFlagSearch(0, currSpace, 0x02000000U); BoardPlayerMoveBetween(currPlayer, currSpace, spaceLinkFlags); while (GWPlayer[currPlayer].moving) { HuPrcVSleep(); } - BoardPlayerMotionStart((s32) currPlayer, 1, 0x40000001); + BoardPlayerMotionStart((s32)currPlayer, 1, 0x40000001); BoardPlayerMotBlendSet(currPlayer, 0xB4, 0xF); while (BoardPlayerMotBlendCheck(currPlayer) == 0) { HuPrcVSleep(); @@ -409,17 +411,19 @@ void fn_1_C50(void) { HuPrcVSleep(); } fn_1_5F90(); - BoardPlayerMotionStart((s32) currPlayer, 1, 0x40000001); + BoardPlayerMotionStart((s32)currPlayer, 1, 0x40000001); HuPrcEnd(); } -void fn_1_1070(void) { +void fn_1_1070(void) +{ BoardWinKill(); CharModelDataClose(-1); lbl_1_bss_4 = 0; } -void fn_1_10A8(void) { +void fn_1_10A8(void) +{ lbl_1_bss_4 = HuPrcChildCreate(fn_1_C50, 0x2003U, 0x2000U, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_4, fn_1_1070); while (lbl_1_bss_4) { @@ -427,7 +431,8 @@ void fn_1_10A8(void) { } } -s32 fn_1_1128(void) { +s32 fn_1_1128(void) +{ u32 spaceFlags; s16 currSpace; currSpace = GWPlayer[GWSystem.player_curr].space_curr; @@ -436,7 +441,8 @@ s32 fn_1_1128(void) { if (spaceFlags & 0x200000) { fn_1_990(); - } else if (spaceFlags & 0x400000) { + } + else if (spaceFlags & 0x400000) { lbl_1_bss_4 = HuPrcChildCreate(fn_1_C50, 0x2003U, 0x2000U, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_4, fn_1_1070); while (lbl_1_bss_4) { @@ -447,7 +453,8 @@ s32 fn_1_1128(void) { BoardRollDispSet(1); } -void fn_1_121C(u32 mesg) { +void fn_1_121C(u32 mesg) +{ BoardWinCreate(2, mesg, 4); BoardWinWait(); BoardWinKill(); diff --git a/src/REL/w02Dll/roulette.c b/src/REL/w02Dll/roulette.c index 24797857..b21e0dbe 100644 --- a/src/REL/w02Dll/roulette.c +++ b/src/REL/w02Dll/roulette.c @@ -1,26 +1,21 @@ #include "REL/w02Dll.h" #include "game/audio.h" -#include "game/frand.h" #include "game/chrman.h" +#include "game/frand.h" #include "game/pad.h" + #include "ext_math.h" - /* DATA */ -s32 lbl_1_data_4D0[] = { - -1, 2, 2, 2, - -1, 1, 1, 1, - -1, 0, 0, 0, - -1, 3, 3, 3 -}; +s32 lbl_1_data_4D0[] = { -1, 2, 2, 2, -1, 1, 1, 1, -1, 0, 0, 0, -1, 3, 3, 3 }; Process *lbl_1_bss_38C; s16 lbl_1_bss_388; s32 lbl_1_bss_384; float lbl_1_bss_380; -//Local Functions +// Local Functions void fn_1_D3AC(void); s32 fn_1_D8C4(void); void fn_1_DF48(void); @@ -34,10 +29,10 @@ typedef struct UnkPoint { Vec point; } UnkPoint; - /* FUNCTIONS */ -void fn_1_BC1C(void) { - Point3d sp8; +void fn_1_BC1C(void) +{ + Vec sp8; BoardModelPosGet(lbl_1_bss_30[15], &sp8); sp8.z -= 90.0f; @@ -50,13 +45,14 @@ void fn_1_BC1C(void) { BoardModelRotSetV(lbl_1_bss_30[15], &sp8); } -void fn_1_BCFC(void) { +void fn_1_BCFC(void) +{ s32 spaceLinkFlags; s32 temp_r30; s32 temp_r29; - + BoardRollDispSet(0); - spaceLinkFlags = BoardSpaceLinkFlagSearch(0, (s32) GWPlayer[lbl_1_bss_388].space_curr, 2U); + spaceLinkFlags = BoardSpaceLinkFlagSearch(0, (s32)GWPlayer[lbl_1_bss_388].space_curr, 2U); BoardPlayerMoveToAsync(lbl_1_bss_388, spaceLinkFlags); while (GWPlayer[lbl_1_bss_388].moving) { HuPrcVSleep(); @@ -64,8 +60,8 @@ void fn_1_BCFC(void) { BoardPlayerIdleSet(lbl_1_bss_388); BoardCameraViewSet(2); BoardCameraMotionWait(); - BoardPlayerMotBlendSet((s32) lbl_1_bss_388, 0x5A, 0xF); - while (BoardPlayerMotBlendCheck((s32) lbl_1_bss_388) == 0) { + BoardPlayerMotBlendSet((s32)lbl_1_bss_388, 0x5A, 0xF); + while (BoardPlayerMotBlendCheck((s32)lbl_1_bss_388) == 0) { HuPrcVSleep(); } BoardModelRotYSet(lbl_1_bss_30[15], -90.0f); @@ -81,16 +77,18 @@ void fn_1_BCFC(void) { BoardCameraMotionWait(); BoardRollDispSet(1); HuPrcKill(NULL); - while(TRUE) { - HuPrcVSleep(); + while (TRUE) { + HuPrcVSleep(); } } -s32 fn_1_BE74(void) { +s32 fn_1_BE74(void) +{ lbl_1_bss_38C = 0; } -s32 fn_1_BE88(void) { +s32 fn_1_BE88(void) +{ s32 coinAmount; s32 var_r30; s16 playerCoinRegion; @@ -100,7 +98,7 @@ s32 fn_1_BE88(void) { s32 mesg; var_r30 = -1; - coinAmount = BoardPlayerCoinsGet((s32) lbl_1_bss_388); + coinAmount = BoardPlayerCoinsGet((s32)lbl_1_bss_388); if (coinAmount < 5) { return var_r30; } @@ -112,7 +110,8 @@ s32 fn_1_BE88(void) { if (GWPlayer[lbl_1_bss_388].com) { if (frandBool()) { BoardComKeySetRight(); - } else { + } + else { BoardComKeySetLeft(); } } @@ -136,49 +135,50 @@ s32 fn_1_BE88(void) { if (GWPlayer[lbl_1_bss_388].com) { if (playerCoinRegion < 2) { BoardComKeySetUp(); - } else if (frandBool()) { + } + else if (frandBool()) { BoardComKeySetUp(); - } else { + } + else { BoardComKeySetDown(); } } BoardWinWait(); BoardWinKill(); bribeChoice = BoardWinChoiceGet(); - if (bribeChoice == -1 || - bribeChoice == 3) { + if (bribeChoice == -1 || bribeChoice == 3) { continue; } // Coin amount is now the bribe amount in coins switch (bribeChoice) { - case 0: - mesg = MAKE_MESSID(0x13, 0x04); - coinAmount = 0x14; - var_r30 = 0x5A; // 90% - break; - case 1: - mesg = MAKE_MESSID(0x13, 0x05); - coinAmount = 0xA; - var_r30 = 0x3C; // 60% - break; - case 2: - mesg = MAKE_MESSID(0x13, 0x06); - coinAmount = 5; - var_r30 = 0x1E; // 30% - break; + case 0: + mesg = MAKE_MESSID(0x13, 0x04); + coinAmount = 0x14; + var_r30 = 0x5A; // 90% + break; + case 1: + mesg = MAKE_MESSID(0x13, 0x05); + coinAmount = 0xA; + var_r30 = 0x3C; // 60% + break; + case 2: + mesg = MAKE_MESSID(0x13, 0x06); + coinAmount = 5; + var_r30 = 0x1E; // 30% + break; } fn_1_121C(mesg); - for (i = 0; i < coinAmount; i++) { BoardPlayerCoinsAdd(lbl_1_bss_388, -1); HuAudFXPlay(0xE); HuPrcSleep(6); } HuAudFXPlay(0xF); - // If chose to view map - } else if (rouletteChoice == 2) { + // If chose to view map + } + else if (rouletteChoice == 2) { BoardViewMapExec(lbl_1_bss_388); } } while (rouletteChoice == 2); // While viewing map @@ -188,13 +188,13 @@ s32 fn_1_BE88(void) { return var_r30; } -s32 fn_1_C108(s32 arg0) { +s32 fn_1_C108(s32 arg0) +{ Vec sp34; Vec sp28; Vec sp1C; Vec sp10; - f32 var_f27; f32 var_f26; f32 var_f25; @@ -210,15 +210,16 @@ s32 fn_1_C108(s32 arg0) { s32 var_r29; s32 i; - if ((s32) frandmod(0x64U) < arg0) { + if ((s32)frandmod(0x64U) < arg0) { s32 temp_r25 = fn_1_E2AC(); var_r27 = 4; var_r29 = frandmod(3U); - if ((s32) frandmod(0x64U) < 0x14) { + if ((s32)frandmod(0x64U) < 0x14) { var_r29 += 1; } var_r29 = var_r29 + (3 - temp_r25) * 4; - } else { + } + else { var_r29 = frandmod(0x10U); var_r27 = frandmod(4U); } @@ -249,7 +250,7 @@ s32 fn_1_C108(s32 arg0) { HuAudFXPitchSet(lbl_1_bss_384, var_r28); HuPrcVSleep(); } - + var_f29 = -22.5f; HuAudFXPitchSet(lbl_1_bss_384, 0); BoardModelMotionStart(lbl_1_bss_30[15], 2, 0x40000001); @@ -269,7 +270,7 @@ s32 fn_1_C108(s32 arg0) { } BoardModelMotionStart(lbl_1_bss_30[15], 3, 0x40000001); BoardModelMotionSpeedSet(lbl_1_bss_30[15], 4.0f); - + for (i = 0; i < 0xA; i++) { sp34.z -= 6.2999997f; BoardModelPosSetV(lbl_1_bss_30[15], &sp34); @@ -287,7 +288,7 @@ s32 fn_1_C108(s32 arg0) { sp1C.z = -50.0f; // Roulette motion and ball ? - while(TRUE) { + while (TRUE) { sp1C.y = var_f27 - (0.55833334f * (0.25f * (var_f31 * var_f31))); var_f31 += 1.0f; BoardModelPosGet(lbl_1_bss_30[6], &sp28); @@ -295,11 +296,11 @@ s32 fn_1_C108(s32 arg0) { var_f25 = VECDistanceXZ(&sp28, &sp10); if (var_f25 >= 430.0f) { if (sp28.y <= (55.0f + sp10.y)) { - VECSubtract(&sp28, &sp10, (Vec* ) &sp1C); - VECNormalize((Vec* ) &sp1C, (Vec* ) &sp1C); + VECSubtract(&sp28, &sp10, (Vec *)&sp1C); + VECNormalize((Vec *)&sp1C, (Vec *)&sp1C); sp1C.y = 0.0f; - VECScale((Vec* ) &sp1C, (Vec* ) &sp1C, 429.0f); - VECAdd((Vec* ) &sp1C, &sp10, (Vec* ) &sp1C); + VECScale((Vec *)&sp1C, (Vec *)&sp1C, 429.0f); + VECAdd((Vec *)&sp1C, &sp10, (Vec *)&sp1C); sp28.x = sp1C.x; sp28.z = sp1C.z; sp1C.x = -5.0f; @@ -309,34 +310,34 @@ s32 fn_1_C108(s32 arg0) { if (sp28.y < sp10.y) { sp28.y = sp10.y; - if (var_r27 >= 3) { + if (var_r27 >= 3) { break; } - //var_f31 = ((1.0f/255.0f) * (6.0f * frand8())); - var_f27 = 6.0f + ((1.0f/255.0f) * (6.0f * frand8())); + // var_f31 = ((1.0f/255.0f) * (6.0f * frand8())); + var_f27 = 6.0f + ((1.0f / 255.0f) * (6.0f * frand8())); var_f31 = 1.0f; var_r27 += 1; - //var_f31 = ((1.0f/255.0f) * (5.0f * frand8())); - sp1C.x = 15.0f + ((1.0f/255.0f) * (5.0f * frand8())); - sp1C.z = 15.0f + ((1.0f/255.0f) * (5.0f * frand8())); + // var_f31 = ((1.0f/255.0f) * (5.0f * frand8())); + sp1C.x = 15.0f + ((1.0f / 255.0f) * (5.0f * frand8())); + sp1C.z = 15.0f + ((1.0f / 255.0f) * (5.0f * frand8())); HuAudFXPlay(0x41E); } - - BoardModelPosSetV(lbl_1_bss_30[6], (Vec* ) &sp28); + + BoardModelPosSetV(lbl_1_bss_30[6], (Vec *)&sp28); fn_1_E310(var_f29); HuPrcVSleep(); } HuAudFXPlay(0x41E); - VECSubtract(&sp28, &sp10, (Vec* ) &sp1C); - VECNormalize((Vec* ) &sp1C, (Vec* ) &sp1C); + VECSubtract(&sp28, &sp10, (Vec *)&sp1C); + VECNormalize((Vec *)&sp1C, (Vec *)&sp1C); var_f31 = atan2d(-sp1C.z, sp1C.x); BoardModelRotGet(lbl_1_bss_30[4], &sp34); var_f31 = var_f31 - sp34.y; if (var_f31 < 0.0f) { var_f31 += 360.0f; } - var_r30 = (s32) (var_f31 / 22.5f); + var_r30 = (s32)(var_f31 / 22.5f); if (fmod(var_f31, 22.5) > 11.25) { var_r30 += 1; } @@ -345,7 +346,7 @@ s32 fn_1_C108(s32 arg0) { } sp1C.y = 0.0f; - while(TRUE) { + while (TRUE) { fn_1_E310(var_f29); BoardModelRotGet(lbl_1_bss_30[4], &sp34); var_f31 = (22.5f * var_r30) + sp34.y; // TODO: Update rodata for asm change @@ -356,8 +357,7 @@ s32 fn_1_C108(s32 arg0) { sp28.x = sp1C.x; sp28.z = sp1C.z; BoardModelPosSetV(lbl_1_bss_30[6], &sp28); - if (sp34.y >= 292.5f && - sp34.y < 315.0f) { + if (sp34.y >= 292.5f && sp34.y < 315.0f) { break; } HuPrcVSleep(); @@ -367,14 +367,14 @@ s32 fn_1_C108(s32 arg0) { var_f29 += 0.375f; fn_1_E310(var_f29); BoardModelRotGet(lbl_1_bss_30[4], &sp34); - var_f31 = (22.5f * (f32) var_r30) + sp34.y; + var_f31 = (22.5f * (f32)var_r30) + sp34.y; sp1C.x = cosd(var_f31); sp1C.z = -sind(var_f31); VECScale(&sp1C, &sp1C, 429.0f); - VECAdd((Vec* ) &sp1C, &sp10, (Vec* ) &sp1C); + VECAdd((Vec *)&sp1C, &sp10, (Vec *)&sp1C); sp28.x = sp1C.x; sp28.z = sp1C.z; - BoardModelPosSetV(lbl_1_bss_30[6], (Vec* ) &sp28); + BoardModelPosSetV(lbl_1_bss_30[6], (Vec *)&sp28); var_r28 += -136.51666f; HuAudFXPitchSet(lbl_1_bss_384, var_r28); HuPrcVSleep(); @@ -385,7 +385,8 @@ s32 fn_1_C108(s32 arg0) { } // Place player on space post roulette? -void fn_1_CD04(s32 arg0) { +void fn_1_CD04(s32 arg0) +{ Vec sp24; Vec sp18; Vec spC; @@ -393,25 +394,25 @@ void fn_1_CD04(s32 arg0) { f32 temp_f30; f32 temp_f29; f32 var_f31; - + s16 var_r25; u32 var_r26; s32 var_r27; s32 var_r29; s32 var_r28; s32 var_r30; - BoardSpace* temp_r31; + BoardSpace *temp_r31; if (arg0 < 0) { fn_1_D3AC(); arg0 = fn_1_D8C4(); } temp_r31 = BoardSpaceGet(0, BoardSpaceFlagSearch(0, 0x800)); - + for (var_r28 = 0; var_r28 < temp_r31->link_cnt; var_r28++) { var_r29 = temp_r31->link[var_r28]; - var_r26 = ( (BoardSpaceFlagGet(0, var_r29) & 0xE) >> 1U); - if ( var_r26 == (arg0 + 2)) { + var_r26 = ((BoardSpaceFlagGet(0, var_r29) & 0xE) >> 1U); + if (var_r26 == (arg0 + 2)) { break; } } @@ -427,7 +428,7 @@ void fn_1_CD04(s32 arg0) { while (BoardModelMotionTimeGet(lbl_1_bss_30[5]) < 30.0f) { spC.x -= 0.25f; spC.y -= 0.25f; - //temp_f1 = spC.z; + // temp_f1 = spC.z; spC.z = spC.z - 0.25f; BoardPlayerScaleSetV(lbl_1_bss_388, &spC); HuPrcVSleep(); @@ -443,7 +444,8 @@ void fn_1_CD04(s32 arg0) { if (GWPlayer[lbl_1_bss_388].bowser_suit) { BoardModelVisibilitySet(BoardBowserSuitModelGet(), 0); BoardModelVisibilitySet(BoardBowserSuitPlayerModelGet(), 0); - } else { + } + else { BoardModelVisibilitySet(BoardPlayerModelGet(lbl_1_bss_388), 0); } HuAudFXPlay(0x421); @@ -454,7 +456,7 @@ void fn_1_CD04(s32 arg0) { } BoardModelPosGet(lbl_1_bss_30[5], &sp18); - temp_f30 = atan2d(sp24.x - sp18.x, sp24.z - sp18.z)/30; + temp_f30 = atan2d(sp24.x - sp18.x, sp24.z - sp18.z) / 30; while (BoardModelMotionTimeGet(lbl_1_bss_30[5]) < 90.0f) { BoardModelRotYSet(lbl_1_bss_30[5], temp_f30 + BoardModelRotYGet(lbl_1_bss_30[5])); @@ -464,22 +466,23 @@ void fn_1_CD04(s32 arg0) { omVibrate(lbl_1_bss_388, 0xC, 4, 2); if (GWPlayer[lbl_1_bss_388].bowser_suit) { - BoardModelVisibilitySet(BoardBowserSuitModelGet(),1); - BoardModelVisibilitySet(BoardBowserSuitPlayerModelGet(),1); - } else { + BoardModelVisibilitySet(BoardBowserSuitModelGet(), 1); + BoardModelVisibilitySet(BoardBowserSuitPlayerModelGet(), 1); + } + else { BoardModelVisibilitySet(BoardPlayerModelGet(lbl_1_bss_388), 1); } - GWPlayer[lbl_1_bss_388].space_curr =(s16) var_r29; + GWPlayer[lbl_1_bss_388].space_curr = (s16)var_r29; BoardPlayerPosSetV(lbl_1_bss_388, &sp24); temp_r31 = BoardSpaceGet(0, var_r29); - - for ( var_r30 = 0; var_r30 < (s32) temp_r31->link_cnt; var_r30++) { + + for (var_r30 = 0; var_r30 < (s32)temp_r31->link_cnt; var_r30++) { if (BoardSpaceTypeGet(0, temp_r31->link[var_r30])) { break; } } - if (var_r30 != (s32) temp_r31->link_cnt) { + if (var_r30 != (s32)temp_r31->link_cnt) { BoardSpacePosGet(0, temp_r31->link[var_r30], &sp18); BoardPlayerRotYSet(lbl_1_bss_388, atan2d(sp18.x - sp24.x, sp18.z - sp24.z)); } @@ -507,289 +510,290 @@ void fn_1_CD04(s32 arg0) { void fn_1_D3AC(void) { - float temp_f31; - float temp_f30; - s32 temp_r31; - s32 temp_r30; - s16 sp38[20]; - Vec sp2C; - Vec sp20; - Vec sp14; - float sp8[3] = { 1.0f, 0.3f, 2.5f }; - fn_1_121C(MAKE_MESSID(0x13, 0x08)); - BoardStatusShowSetAll(1); - BoardPlayerMotBlendSet(lbl_1_bss_388, 0, 15); - BoardPlayerPosGet(lbl_1_bss_388, &sp14); - for(temp_r31=0; temp_r31<20; temp_r31++) { - sp38[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1); - sp2C.x = (sp14.x-25.0f)+((1.0f/255.0f)*(frand8()*50.0f)); - sp2C.y = (sp14.y+1200.0f)+(temp_r31*130.0f)+((1.0f/255.0f)*(frand8()*60.0f)); - sp2C.z = (sp14.z-25.0f)+((1.0f/255.0f)*(frand8()*50.0f)); - BoardModelPosSetV(sp38[temp_r31], &sp2C); - sp20.x = sp20.z = 0; - sp20.y = (1.0f/255.0f)*(frand8()*360.0f); - BoardModelRotSetV(sp38[temp_r31], &sp20); - } - temp_f31 = -4; - temp_r30 = 0; - temp_f30 = sp8[BoardPlayerSizeGet(lbl_1_bss_388)]; - while(1) { - for(temp_r31=0; temp_r31<20; temp_r31++) { - if(temp_r31 < temp_r30) { - continue; - } - BoardModelPosGet(sp38[temp_r31], &sp2C); - BoardModelRotGet(sp38[temp_r31], &sp20); - sp2C.y += temp_f31; - sp20.y += 45.0f; - BoardModelPosSetV(sp38[temp_r31], &sp2C); - BoardModelRotSetV(sp38[temp_r31], &sp20); - if(sp2C.y <= sp14.y+(180.0f*temp_f30)) { - CharModelCoinEffectCreate(1, &sp2C); - BoardModelVisibilitySet(sp38[temp_r31], 0); - temp_r30++; - BoardPlayerCoinsAdd(lbl_1_bss_388, 1); - HuAudFXPlay(7); - omVibrate(lbl_1_bss_388, 12, 6, 6); - - } - } - temp_f31 *= 1.05f; - if(temp_f31 < -40.0f) { - temp_f31 = -40.0f; - } - if(temp_r30 == 20) { - BoardPlayerMotionShiftSet(lbl_1_bss_388, 7, 0, 10, HU3D_MOTATTR_NONE); - break; - } - HuPrcVSleep(); - } - while(!BoardPlayerMotionEndCheck(lbl_1_bss_388)) { - HuPrcVSleep(); - } - for(temp_r31=0; temp_r31<20; temp_r31++) { - BoardModelKill(sp38[temp_r31]); - } - HuPrcSleep(60); - BoardPlayerMotBlendSet(lbl_1_bss_388, 180, 15); - BoardStatusShowSetAll(0); - while(!BoardPlayerMotBlendCheck(lbl_1_bss_388)) { - HuPrcVSleep(); - } + float temp_f31; + float temp_f30; + s32 temp_r31; + s32 temp_r30; + s16 sp38[20]; + Vec sp2C; + Vec sp20; + Vec sp14; + float sp8[3] = { 1.0f, 0.3f, 2.5f }; + fn_1_121C(MAKE_MESSID(0x13, 0x08)); + BoardStatusShowSetAll(1); + BoardPlayerMotBlendSet(lbl_1_bss_388, 0, 15); + BoardPlayerPosGet(lbl_1_bss_388, &sp14); + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + sp38[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x0A), NULL, 1); + sp2C.x = (sp14.x - 25.0f) + ((1.0f / 255.0f) * (frand8() * 50.0f)); + sp2C.y = (sp14.y + 1200.0f) + (temp_r31 * 130.0f) + ((1.0f / 255.0f) * (frand8() * 60.0f)); + sp2C.z = (sp14.z - 25.0f) + ((1.0f / 255.0f) * (frand8() * 50.0f)); + BoardModelPosSetV(sp38[temp_r31], &sp2C); + sp20.x = sp20.z = 0; + sp20.y = (1.0f / 255.0f) * (frand8() * 360.0f); + BoardModelRotSetV(sp38[temp_r31], &sp20); + } + temp_f31 = -4; + temp_r30 = 0; + temp_f30 = sp8[BoardPlayerSizeGet(lbl_1_bss_388)]; + while (1) { + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + if (temp_r31 < temp_r30) { + continue; + } + BoardModelPosGet(sp38[temp_r31], &sp2C); + BoardModelRotGet(sp38[temp_r31], &sp20); + sp2C.y += temp_f31; + sp20.y += 45.0f; + BoardModelPosSetV(sp38[temp_r31], &sp2C); + BoardModelRotSetV(sp38[temp_r31], &sp20); + if (sp2C.y <= sp14.y + (180.0f * temp_f30)) { + CharModelCoinEffectCreate(1, &sp2C); + BoardModelVisibilitySet(sp38[temp_r31], 0); + temp_r30++; + BoardPlayerCoinsAdd(lbl_1_bss_388, 1); + HuAudFXPlay(7); + omVibrate(lbl_1_bss_388, 12, 6, 6); + } + } + temp_f31 *= 1.05f; + if (temp_f31 < -40.0f) { + temp_f31 = -40.0f; + } + if (temp_r30 == 20) { + BoardPlayerMotionShiftSet(lbl_1_bss_388, 7, 0, 10, HU3D_MOTATTR_NONE); + break; + } + HuPrcVSleep(); + } + while (!BoardPlayerMotionEndCheck(lbl_1_bss_388)) { + HuPrcVSleep(); + } + for (temp_r31 = 0; temp_r31 < 20; temp_r31++) { + BoardModelKill(sp38[temp_r31]); + } + HuPrcSleep(60); + BoardPlayerMotBlendSet(lbl_1_bss_388, 180, 15); + BoardStatusShowSetAll(0); + while (!BoardPlayerMotBlendCheck(lbl_1_bss_388)) { + HuPrcVSleep(); + } } s32 fn_1_D8C4(void) { - Vec sp40; - Vec sp34; - Vec sp28; - Vec sp1C; - s16 sp14[4]; - float spC[2]; - s32 sp8; - - float temp_f31; - float temp_f30; - - s32 temp_r31; - s16 temp_r30; - BoardSpace *temp_r29; - s32 temp_r28; - s16 temp_r27; - s16 temp_r26; - s32 temp_r25; - s16 temp_r24; - s16 temp_r23; - s16 temp_r22; - - u32 temp_r21; - fn_1_121C(MAKE_MESSID(0x13, 0x09)); - temp_r29 = BoardSpaceGet(0, BoardSpaceFlagSearch(0, 0x800)); - BoardModelPosGet(lbl_1_bss_30[3], &sp40); - for(temp_r31=0; temp_r31<4; temp_r31++) { - sp14[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x00), NULL, 1); - BoardModelLayerSet(sp14[temp_r31], 2); - for(temp_r28=0; temp_r28link_cnt; temp_r28++) { - temp_r21 = (BoardSpaceFlagGet(0, temp_r29->link[temp_r28]) & 0xE) >> 1; - if(temp_r21 == temp_r31+2) { - break; - } - } - sp8 = BoardSpacePosGet(0, temp_r29->link[temp_r28], &sp28); - VECSubtract(&sp28, &sp40, &sp34); - BoardModelRotYSet(sp14[temp_r31], atan2d(sp34.x, sp34.z)); - VECNormalize(&sp34, &sp34); - VECScale(&sp34, &sp34, 400); - VECAdd(&sp34, &sp40, &sp34); - sp34.y += 300.0f; - BoardModelPosSetV(sp14[temp_r31], &sp34); - sp1C.x = sp1C.y = sp1C.z = 3; - BoardModelScaleSetV(sp14[temp_r31], &sp1C); - } - temp_r25 = fn_1_E2AC(); - HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(0x13, 0x1E)); - temp_r30 = HuWinCreate(-10000, 356, spC[0], spC[1], 0); - HuWinMesSet(temp_r30, MAKE_MESSID(0x13, 0x1E)); - HuWinBGTPLvlSet(temp_r30, 0); - HuWinMesSpeedSet(temp_r30, 0); - temp_r23 = GWPlayer[lbl_1_bss_388].port; - temp_f30 = 0; - temp_r22 = frandmod(20)+20; - restart: - while(1) { - if(GWPlayer[lbl_1_bss_388].com) { - temp_r27 = 0; - temp_r26 = 0; - if(temp_r22) { - temp_r22--; - temp_r24 = 0; - } else { - temp_r24 = PAD_BUTTON_A; - } - break; - } - temp_r24 = HuPadBtnDown[temp_r23]; - temp_r27 = HuPadStkX[temp_r23]; - temp_r26 = HuPadStkY[temp_r23]; - if(!(temp_r24 & PAD_TRIGGER_Z)) { - break; - } - HuAudFXPlay(1); - for(temp_r31=0; temp_r31<4; temp_r31++) { - BoardModelVisibilitySet(sp14[temp_r31], 0); - } - HuWinDispOff(temp_r30); - BoardViewMapExec(lbl_1_bss_388); - HuWinDispOn(temp_r30); - for(temp_r31=0; temp_r31<4; temp_r31++) { - BoardModelVisibilitySet(sp14[temp_r31], 1); - } - } - if(!(temp_r24 & PAD_BUTTON_A)) { - if(abs(temp_r27) < 10) { - temp_r27 = 0; - } - if(abs(temp_r26) < 10) { - temp_r26 = 0; - } - if(temp_r27 != 0 || temp_r26 != 0) { - temp_f31 = atan2d(-temp_r27, -temp_r26); - if(temp_f31 < 0.0f) { - temp_f31 += 360.0f; - } - temp_r31 = temp_f31/90.0f; - temp_f31 = fmod(temp_f31, 90.0); - if(temp_r31 != temp_r25 && temp_f31 >= 20.0f && temp_f31 <= 70.0f){ - temp_f30 = 0; - temp_r25 = temp_r31; - HuAudFXPlay(0); - } - - } - for(temp_r31=0; temp_r31<4; temp_r31++) { - if(temp_r31 == temp_r25) { - sp1C.x = sp1C.y = sp1C.z = sind(temp_f30)+3.0; - temp_f30 += 8.0f; - if(temp_f30 > 180.0f) { - temp_f30 -= 180.0f; - } - } else { - sp1C.x = sp1C.y = sp1C.z = 3.0f; - } - - - BoardModelScaleSetV(sp14[temp_r31], &sp1C); - } - HuPrcVSleep(); - goto restart; - } else { - HuAudFXPlay(2); - for(temp_r31=0; temp_r31<4; temp_r31++) { - BoardModelKill(sp14[temp_r31]); - } - HuWinKill(temp_r30); - return temp_r25; - } + Vec sp40; + Vec sp34; + Vec sp28; + Vec sp1C; + s16 sp14[4]; + float spC[2]; + s32 sp8; + + float temp_f31; + float temp_f30; + + s32 temp_r31; + s16 temp_r30; + BoardSpace *temp_r29; + s32 temp_r28; + s16 temp_r27; + s16 temp_r26; + s32 temp_r25; + s16 temp_r24; + s16 temp_r23; + s16 temp_r22; + + u32 temp_r21; + fn_1_121C(MAKE_MESSID(0x13, 0x09)); + temp_r29 = BoardSpaceGet(0, BoardSpaceFlagSearch(0, 0x800)); + BoardModelPosGet(lbl_1_bss_30[3], &sp40); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + sp14[temp_r31] = BoardModelCreate(DATA_MAKE_NUM(DATADIR_BOARD, 0x00), NULL, 1); + BoardModelLayerSet(sp14[temp_r31], 2); + for (temp_r28 = 0; temp_r28 < temp_r29->link_cnt; temp_r28++) { + temp_r21 = (BoardSpaceFlagGet(0, temp_r29->link[temp_r28]) & 0xE) >> 1; + if (temp_r21 == temp_r31 + 2) { + break; + } + } + sp8 = BoardSpacePosGet(0, temp_r29->link[temp_r28], &sp28); + VECSubtract(&sp28, &sp40, &sp34); + BoardModelRotYSet(sp14[temp_r31], atan2d(sp34.x, sp34.z)); + VECNormalize(&sp34, &sp34); + VECScale(&sp34, &sp34, 400); + VECAdd(&sp34, &sp40, &sp34); + sp34.y += 300.0f; + BoardModelPosSetV(sp14[temp_r31], &sp34); + sp1C.x = sp1C.y = sp1C.z = 3; + BoardModelScaleSetV(sp14[temp_r31], &sp1C); + } + temp_r25 = fn_1_E2AC(); + HuWinMesMaxSizeGet(1, spC, MAKE_MESSID(0x13, 0x1E)); + temp_r30 = HuWinCreate(-10000, 356, spC[0], spC[1], 0); + HuWinMesSet(temp_r30, MAKE_MESSID(0x13, 0x1E)); + HuWinBGTPLvlSet(temp_r30, 0); + HuWinMesSpeedSet(temp_r30, 0); + temp_r23 = GWPlayer[lbl_1_bss_388].port; + temp_f30 = 0; + temp_r22 = frandmod(20) + 20; +restart: + while (1) { + if (GWPlayer[lbl_1_bss_388].com) { + temp_r27 = 0; + temp_r26 = 0; + if (temp_r22) { + temp_r22--; + temp_r24 = 0; + } + else { + temp_r24 = PAD_BUTTON_A; + } + break; + } + temp_r24 = HuPadBtnDown[temp_r23]; + temp_r27 = HuPadStkX[temp_r23]; + temp_r26 = HuPadStkY[temp_r23]; + if (!(temp_r24 & PAD_TRIGGER_Z)) { + break; + } + HuAudFXPlay(1); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + BoardModelVisibilitySet(sp14[temp_r31], 0); + } + HuWinDispOff(temp_r30); + BoardViewMapExec(lbl_1_bss_388); + HuWinDispOn(temp_r30); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + BoardModelVisibilitySet(sp14[temp_r31], 1); + } + } + if (!(temp_r24 & PAD_BUTTON_A)) { + if (abs(temp_r27) < 10) { + temp_r27 = 0; + } + if (abs(temp_r26) < 10) { + temp_r26 = 0; + } + if (temp_r27 != 0 || temp_r26 != 0) { + temp_f31 = atan2d(-temp_r27, -temp_r26); + if (temp_f31 < 0.0f) { + temp_f31 += 360.0f; + } + temp_r31 = temp_f31 / 90.0f; + temp_f31 = fmod(temp_f31, 90.0); + if (temp_r31 != temp_r25 && temp_f31 >= 20.0f && temp_f31 <= 70.0f) { + temp_f30 = 0; + temp_r25 = temp_r31; + HuAudFXPlay(0); + } + } + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + if (temp_r31 == temp_r25) { + sp1C.x = sp1C.y = sp1C.z = sind(temp_f30) + 3.0; + temp_f30 += 8.0f; + if (temp_f30 > 180.0f) { + temp_f30 -= 180.0f; + } + } + else { + sp1C.x = sp1C.y = sp1C.z = 3.0f; + } + + BoardModelScaleSetV(sp14[temp_r31], &sp1C); + } + HuPrcVSleep(); + goto restart; + } + else { + HuAudFXPlay(2); + for (temp_r31 = 0; temp_r31 < 4; temp_r31++) { + BoardModelKill(sp14[temp_r31]); + } + HuWinKill(temp_r30); + return temp_r25; + } } void fn_1_DF48(void) { - Vec sp14; - Vec sp8; - s32 temp_r31; - float temp_f31; - float temp_f30; - float temp_f29; - float temp_f28; - BoardModelMotionTimeSet(lbl_1_bss_30[5], 0); - BoardModelAttrSet(lbl_1_bss_30[5], 0x40000002); - temp_f31 = BoardModelRotYGet(lbl_1_bss_30[5]); - temp_f29 = -temp_f31/20.0f; - temp_f30 = BoardModelRotYGet(lbl_1_bss_30[15]); - temp_f28 = -temp_f30/20.0f; - BoardModelScaleGet(lbl_1_bss_30[6], &sp14); - for(temp_r31=0; temp_r31<10; temp_r31++) { - sp14.x = sp14.y = sp14.z = 1.0f-(temp_r31*0.1f); - if(sp14.x < 0.0f) { - sp14.x = sp14.y = sp14.z = 0.0f; - } - BoardModelScaleSetV(lbl_1_bss_30[6], &sp14); - temp_f31 += temp_f29; - BoardModelRotYSet(lbl_1_bss_30[5], temp_f31); - temp_f30 += temp_f28; - BoardModelRotYSet(lbl_1_bss_30[15], temp_f30); - HuPrcVSleep(); - } - BoardModelPosGet(lbl_1_bss_30[15], &sp8); - sp8.z -= 90.0f; - sp8.y += 50.0f; - BoardModelPosSetV(lbl_1_bss_30[6], &sp8); - for(temp_r31=0; temp_r31<10; temp_r31++) { - sp14.x = sp14.y = sp14.z = temp_r31*0.1f; - if(sp14.x > 1.0f) { - sp14.x = sp14.y = sp14.z = 1.0f; - } - BoardModelScaleSetV(lbl_1_bss_30[6], &sp14); - temp_f31 += temp_f29; - BoardModelRotYSet(lbl_1_bss_30[5], temp_f31); - temp_f30 += temp_f28; - BoardModelRotYSet(lbl_1_bss_30[15], temp_f30); - HuPrcVSleep(); - } - sp14.x = sp14.y = sp14.z = 1.0f; - BoardModelScaleSetV(lbl_1_bss_30[6], &sp14); - BoardModelRotYSet(lbl_1_bss_30[5], 0); - BoardModelRotYSet(lbl_1_bss_30[15], 0); - HuPrcEnd(); + Vec sp14; + Vec sp8; + s32 temp_r31; + float temp_f31; + float temp_f30; + float temp_f29; + float temp_f28; + BoardModelMotionTimeSet(lbl_1_bss_30[5], 0); + BoardModelAttrSet(lbl_1_bss_30[5], 0x40000002); + temp_f31 = BoardModelRotYGet(lbl_1_bss_30[5]); + temp_f29 = -temp_f31 / 20.0f; + temp_f30 = BoardModelRotYGet(lbl_1_bss_30[15]); + temp_f28 = -temp_f30 / 20.0f; + BoardModelScaleGet(lbl_1_bss_30[6], &sp14); + for (temp_r31 = 0; temp_r31 < 10; temp_r31++) { + sp14.x = sp14.y = sp14.z = 1.0f - (temp_r31 * 0.1f); + if (sp14.x < 0.0f) { + sp14.x = sp14.y = sp14.z = 0.0f; + } + BoardModelScaleSetV(lbl_1_bss_30[6], &sp14); + temp_f31 += temp_f29; + BoardModelRotYSet(lbl_1_bss_30[5], temp_f31); + temp_f30 += temp_f28; + BoardModelRotYSet(lbl_1_bss_30[15], temp_f30); + HuPrcVSleep(); + } + BoardModelPosGet(lbl_1_bss_30[15], &sp8); + sp8.z -= 90.0f; + sp8.y += 50.0f; + BoardModelPosSetV(lbl_1_bss_30[6], &sp8); + for (temp_r31 = 0; temp_r31 < 10; temp_r31++) { + sp14.x = sp14.y = sp14.z = temp_r31 * 0.1f; + if (sp14.x > 1.0f) { + sp14.x = sp14.y = sp14.z = 1.0f; + } + BoardModelScaleSetV(lbl_1_bss_30[6], &sp14); + temp_f31 += temp_f29; + BoardModelRotYSet(lbl_1_bss_30[5], temp_f31); + temp_f30 += temp_f28; + BoardModelRotYSet(lbl_1_bss_30[15], temp_f30); + HuPrcVSleep(); + } + sp14.x = sp14.y = sp14.z = 1.0f; + BoardModelScaleSetV(lbl_1_bss_30[6], &sp14); + BoardModelRotYSet(lbl_1_bss_30[5], 0); + BoardModelRotYSet(lbl_1_bss_30[15], 0); + HuPrcEnd(); } s32 fn_1_E2AC(void) { - switch(GWSystem.star_pos) { - case 0: - return 3; - - case 1: - case 2: - return 0; - - case 3: - case 4: - return 1; - - case 5: - case 6: - case 7: - return 2; - - default: - return -1; - } + switch (GWSystem.star_pos) { + case 0: + return 3; + + case 1: + case 2: + return 0; + + case 3: + case 4: + return 1; + + case 5: + case 6: + case 7: + return 2; + + default: + return -1; + } } /* Rotate (yaw) of model 4 */ -void fn_1_E310(f32 degrees) { - Point3d spC; +void fn_1_E310(f32 degrees) +{ + Vec spC; lbl_1_bss_380 += degrees; if (lbl_1_bss_380 >= 360.0f) { lbl_1_bss_380 -= 360.0f; @@ -804,11 +808,11 @@ void fn_1_E310(f32 degrees) { void fn_1_E41C(void) { - lbl_1_bss_388 = GWSystem.player_curr; - OSReport("Roulette Player %d\n", lbl_1_bss_388); - lbl_1_bss_38C = HuPrcChildCreate(fn_1_BCFC, 8195, 8192, 0, boardMainProc); - HuPrcDestructorSet2(lbl_1_bss_38C, (void *)fn_1_BE74); //fn_1_BE74 requires implicit return - while(lbl_1_bss_38C) { - HuPrcVSleep(); - } + lbl_1_bss_388 = GWSystem.player_curr; + OSReport("Roulette Player %d\n", lbl_1_bss_388); + lbl_1_bss_38C = HuPrcChildCreate(fn_1_BCFC, 8195, 8192, 0, boardMainProc); + HuPrcDestructorSet2(lbl_1_bss_38C, (void *)fn_1_BE74); // fn_1_BE74 requires implicit return + while (lbl_1_bss_38C) { + HuPrcVSleep(); + } } diff --git a/src/REL/w03Dll/mg_coin.c b/src/REL/w03Dll/mg_coin.c index b577ffc1..dc05b755 100644 --- a/src/REL/w03Dll/mg_coin.c +++ b/src/REL/w03Dll/mg_coin.c @@ -134,9 +134,9 @@ void fn_1_7C98(void) s32 fn_1_7D18(s32 arg0) { - Point3d sp38; - Point3d sp2C; - Point3d sp20; + Vec sp38; + Vec sp2C; + Vec sp20; Vec sp14; Vec sp8; f32 var_f31; @@ -259,7 +259,7 @@ s32 lbl_1_data_490[] = { void fn_1_81E0(s32 arg0) { - Point3d sp8; + Vec sp8; omObjData *temp_r3; f32 temp_f31; s32 temp_r28; @@ -499,7 +499,7 @@ s32 lbl_1_data_4B4[] = { 0x00000440, 0x00000441, 0x00000442, 0x00000443, 0x00000 void fn_1_8C08(omObjData *arg0, someBits3 *arg1) { - Point3d spC; + Vec spC; f32 temp_f31; f32 temp_f30; s8 temp_r27; @@ -535,7 +535,7 @@ void fn_1_8C08(omObjData *arg0, someBits3 *arg1) void fn_1_8E44(omObjData *arg0, someBits3 *arg1) { - Point3d sp8; + Vec sp8; f32 temp_f1; f32 temp_f31; @@ -611,9 +611,9 @@ void fn_1_91B8(void) void fn_1_9230(s32 arg0) { - Point3d sp20; - Point3d sp14; - Point3d sp8; + Vec sp20; + Vec sp14; + Vec sp8; s16 temp_r30; f32 rotY; @@ -747,7 +747,7 @@ void fn_1_95B8(omObjData *arg0) void fn_1_97F8(s32 arg0) { - Point3d sp8; + Vec sp8; f32 temp_f2; f32 var_f31; f64 temp_f1; diff --git a/src/REL/w03Dll/mg_item.c b/src/REL/w03Dll/mg_item.c index a7d31165..9b9ccfa3 100644 --- a/src/REL/w03Dll/mg_item.c +++ b/src/REL/w03Dll/mg_item.c @@ -794,9 +794,9 @@ void fn_1_B350(omObjData *arg0) void fn_1_B4AC(omObjData *arg0, someBits2 *arg1) { - Point3d sp20; - Point3d sp14; - Point3d sp8; + Vec sp20; + Vec sp14; + Vec sp8; f32 temp_f31; s8 temp_r0; s32 i; @@ -827,7 +827,7 @@ void fn_1_B4AC(omObjData *arg0, someBits2 *arg1) void fn_1_B688(omObjData *arg0, someBits2 *arg1) { - Point3d sp8; + Vec sp8; if (arg1->unk1-- != 0) { BoardModelPosGet(arg1->unk_06[arg1->unk2], &sp8); @@ -844,7 +844,7 @@ void fn_1_B688(omObjData *arg0, someBits2 *arg1) void fn_1_B748(omObjData *arg0, someBits2 *arg1) { Vec sp14; - Point3d sp8; + Vec sp8; f32 temp_f0; s16 temp_r29; @@ -877,8 +877,8 @@ void fn_1_B748(omObjData *arg0, someBits2 *arg1) void fn_1_B8E8(s32 arg0) { - Point3d sp14; - Point3d sp8; + Vec sp14; + Vec sp8; f32 temp_f31; someBits2 *temp_r31; f32 temp; @@ -975,7 +975,7 @@ void fn_1_BDAC(void) void fn_1_BE30(ModelData *model, ParticleData *particle, Mtx matrix) { - Point3d sp8; + Vec sp8; f32 temp_f30; f32 temp_f29; f32 temp_f31; diff --git a/src/REL/w03Dll/river.c b/src/REL/w03Dll/river.c index 7736b6f2..810ab586 100644 --- a/src/REL/w03Dll/river.c +++ b/src/REL/w03Dll/river.c @@ -1,28 +1,29 @@ -#include "dolphin.h" -#include "game/object.h" #include "REL/w03Dll.h" +#include "dolphin.h" #include "game/board/main.h" #include "game/board/model.h" #include "game/board/player.h" #include "game/hsfdraw.h" +#include "game/object.h" + #include "ext_math.h" -//BSS +// BSS char lbl_1_bss_130[8]; -omObjData* lbl_1_bss_12C; +omObjData *lbl_1_bss_12C; s16 lbl_1_bss_128; s32 lbl_1_bss_124; -Process* lbl_1_bss_120; +Process *lbl_1_bss_120; -//function signatures +// function signatures void fn_1_67F8(void); void fn_1_6884(void); -void fn_1_767C(omObjData* arg0); +void fn_1_767C(omObjData *arg0); s32 fn_1_6898(s32 arg0); void fn_1_6B98(s32 arg0); void fn_1_6F9C(s32 arg0); -void fn_1_767C(omObjData* arg0); +void fn_1_767C(omObjData *arg0); void fn_1_735C(s32 arg0); void fn_1_77E4(s32 arg0); @@ -34,43 +35,37 @@ typedef struct unkWorkStruct { f32 unk_04; } unkWorkStruct; -//data -s32 lbl_1_data_368[] = { - 0x00000105, 0x00000145, 0x00000185, - 0x000001C5, 0x00000205, 0x00000245, - 0x00000285, 0x000002C5 -}; +// data +s32 lbl_1_data_368[] = { 0x00000105, 0x00000145, 0x00000185, 0x000001C5, 0x00000205, 0x00000245, 0x00000285, 0x000002C5 }; s16 lbl_1_data_388 = -1; s16 lbl_1_data_38A = -1; s16 lbl_1_data_38C = -1; -s32 lbl_1_data_390[] = { - DATA_MAKE_NUM(DATADIR_W03, 0x26), - DATA_MAKE_NUM(DATADIR_W03, 0x27), - DATA_MAKE_NUM(DATADIR_W03, 0x28), - DATA_NUM_LISTEND -}; +s32 lbl_1_data_390[] = { DATA_MAKE_NUM(DATADIR_W03, 0x26), DATA_MAKE_NUM(DATADIR_W03, 0x27), DATA_MAKE_NUM(DATADIR_W03, 0x28), DATA_NUM_LISTEND }; -void fn_1_63F4(s32 arg0) { +void fn_1_63F4(s32 arg0) +{ Vec spC; - unkWorkStruct* work = OM_GET_WORK_PTR(lbl_1_bss_12C, unkWorkStruct); + unkWorkStruct *work = OM_GET_WORK_PTR(lbl_1_bss_12C, unkWorkStruct); work->unk_04 = 0.0f; BoardModelPosGet(lbl_1_data_388, &spC); if (arg0 != 0) { spC.y = -185.0f; - } else { + } + else { spC.y = 10.0f; } BoardModelPosSetV(lbl_1_data_388, &spC); } -void fn_1_6494(void) { +void fn_1_6494(void) +{ Vec sp14; Vec sp8; - unkWorkStruct* temp_r31; + unkWorkStruct *temp_r31; lbl_1_data_388 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0E), NULL, 0); lbl_1_data_38C = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0F), NULL, 0); @@ -83,14 +78,15 @@ void fn_1_6494(void) { sp14.x = sp8.x + (400.0 * sin(-(M_PI / 2))); sp14.z = sp8.z + (400.0 * cos(-(M_PI / 2))); BoardModelPosSetV(lbl_1_data_388, &sp14); - lbl_1_bss_12C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, (void*)fn_1_767C); + lbl_1_bss_12C = omAddObjEx(boardObjMan, 0x101, 0, 0, -1, (void *)fn_1_767C); temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_12C, unkWorkStruct); temp_r31->temp1 = 0; temp_r31->unk_04 = 0.0f; lbl_1_bss_124 = 0; } -s32 fn_1_6698(void) { +s32 fn_1_6698(void) +{ Vec sp14; Vec sp8; @@ -98,11 +94,12 @@ s32 fn_1_6698(void) { BoardSpaceFlagPosGet(0, 0x200, &sp8); sp14.x = sp8.x + (400.0 * sin(-(M_PI / 2))); sp14.z = sp8.z + (400.0 * cos(-(M_PI / 2))); - BoardModelPosSetV(lbl_1_data_388, (Point3d* ) &sp14); + BoardModelPosSetV(lbl_1_data_388, (Vec *)&sp14); return 1; } -s16 fn_1_675C(void) { +s16 fn_1_675C(void) +{ BoardRollDispSet(0); lbl_1_bss_120 = HuPrcChildCreate(fn_1_67F8, 0x2003, 0x2000, 0, boardMainProc); HuPrcDestructorSet2(lbl_1_bss_120, fn_1_6884); @@ -115,7 +112,8 @@ s16 fn_1_675C(void) { return lbl_1_bss_128; } -void fn_1_67F8(void) { +void fn_1_67F8(void) +{ s32 temp_r31; temp_r31 = GWSystem.player_curr; @@ -133,7 +131,8 @@ void fn_1_67F8(void) { HuPrcEnd(); } -void fn_1_6884(void) { +void fn_1_6884(void) +{ lbl_1_bss_120 = 0; } @@ -144,15 +143,16 @@ typedef struct unkPos { } unkPos; unkPos lbl_1_data_3B8[6] = { - {5, 20, 5}, - {21, 35, 7}, - {31, 50, 10}, - {51, 80, 15}, - {81, 100, 17}, - {101, 999, 20}, + { 5, 20, 5 }, + { 21, 35, 7 }, + { 31, 50, 10 }, + { 51, 80, 15 }, + { 81, 100, 17 }, + { 101, 999, 20 }, }; -s32 fn_1_6898(s32 arg0) { +s32 fn_1_6898(s32 arg0) +{ Vec sp20; Vec sp14; Vec sp8; @@ -165,7 +165,7 @@ s32 fn_1_6898(s32 arg0) { BoardPlayerIdleSet(arg0); BoardCameraViewSet(2); BoardCameraMotionWait(); - + Hu3DModelObjPosGet(BoardModelIDGet(lbl_1_data_388), "hei01", &sp20); BoardPlayerPosGet(arg0, &sp14); VECSubtract(&sp20, &sp14, &sp8); @@ -197,7 +197,7 @@ s32 fn_1_6898(s32 arg0) { var_r27 = lbl_1_data_3B8[i].z; break; } - } + } } sprintf(lbl_1_bss_130, "%d", var_r27); @@ -216,24 +216,24 @@ s32 fn_1_6898(s32 arg0) { BoardWinKill(); switch (BoardWinChoiceGet()) { - case 0: - j = 1; - break; - case 1: - case -1: - BoardWinCreate(2, MAKE_MESSID(22, 14), 2); - BoardWinWait(); - BoardWinKill(); - return 0; - default: - BoardViewMapExec(arg0); + case 0: + j = 1; + break; + case 1: + case -1: + BoardWinCreate(2, MAKE_MESSID(22, 14), 2); + BoardWinWait(); + BoardWinKill(); + return 0; + default: + BoardViewMapExec(arg0); } } for (i = 0; i < var_r27; i++) { BoardPlayerCoinsAdd(arg0, -1); HuAudFXPlay(0xE); - HuPrcSleep(6); + HuPrcSleep(6); } HuAudFXPlay(0xF); @@ -245,11 +245,12 @@ s32 fn_1_6898(s32 arg0) { s32 BoardDAngleCalcRange(float *value, float min, float range); -void fn_1_6B98(s32 arg0) { +void fn_1_6B98(s32 arg0) +{ Vec sp30; - Point3d sp24; + Vec sp24; Vec sp18; - Point3d spC; + Vec spC; f32 sp8; f32 temp_f1; f32 temp_f31; @@ -287,19 +288,19 @@ void fn_1_6B98(s32 arg0) { VECAdd(&spC, &sp24, &sp24); temp_f1 = BoardModelMotionTimeGet(lbl_1_data_38A); - if ((temp_f1 >= 5.0f) && (temp_f1 < 15.0f) && ((s16) var_r31 == 0)) { + if ((temp_f1 >= 5.0f) && (temp_f1 < 15.0f) && ((s16)var_r31 == 0)) { HuAudFXPlay(0x451); var_r31 = 1; } - if ((BoardModelMotionTimeGet(lbl_1_data_38A) >= 21.0f) && ((s16) var_r31 != 0)) { + if ((BoardModelMotionTimeGet(lbl_1_data_38A) >= 21.0f) && ((s16)var_r31 != 0)) { var_r31 = 0; } BoardModelPosSetV(lbl_1_data_388, &sp24); - HuPrcVSleep(); + HuPrcVSleep(); } - + BoardModelPosSetV(lbl_1_data_388, &sp18); BoardCameraTargetModelSet(-1); BoardModelMotionShiftSet(lbl_1_data_38A, 2, 0.0f, 10.0f, HU3D_MOTATTR_REV); @@ -321,7 +322,8 @@ void fn_1_6B98(s32 arg0) { extern s32 lbl_1_data_368[]; // extern w03State* lbl_1_bss_0; -void fn_1_6F9C(s32 arg0) { +void fn_1_6F9C(s32 arg0) +{ Vec sp20; Vec sp14; Vec sp8; @@ -344,7 +346,8 @@ void fn_1_6F9C(s32 arg0) { var_f30 = 10.0f; var_f29 = 0.21f; sp14.y += sp20.y; - } else { + } + else { var_f30 = 0.0f; var_f29 = 0.15f; } @@ -364,16 +367,17 @@ void fn_1_6F9C(s32 arg0) { } } BoardPlayerPosSetV(arg0, &sp14); - HuPrcVSleep(); + HuPrcVSleep(); } - + BoardPlayerMotionShiftSet(arg0, 5, 0.0f, 8.0f, HU3D_MOTATTR_NONE); HuPrcSleep(10); BoardPlayerIdleSet(arg0); if (GWPlayer[arg0].bowser_suit != 0) { BoardModelHookSet(lbl_1_data_388, "chara01", BoardPlayerModelGet(arg0)); - } else { + } + else { BoardModelHookSet(lbl_1_data_388, "chara01", BoardPlayerModelGet(arg0)); } @@ -381,10 +385,11 @@ void fn_1_6F9C(s32 arg0) { lbl_1_bss_124 = 0; } -void fn_1_735C(s32 arg0) { +void fn_1_735C(s32 arg0) +{ Vec sp20; Vec sp14; - Point3d sp8; + Vec sp8; f32 temp_f1; f32 var_f30; f32 var_f31; @@ -397,19 +402,20 @@ void fn_1_735C(s32 arg0) { BoardPlayerPosSetV(arg0, &sp14); BoardModelHookObjReset(lbl_1_data_388, "chara01"); VECSubtract(&sp20, &sp14, &sp8); - + sp8.x = sp8.x / 60.0f; sp8.z = sp8.z / 60.0f; sp8.y = 0.0f; - + HuAudFXPlay(lbl_1_data_368[GWPlayer[arg0].character]); BoardPlayerMotionShiftSet(arg0, 4, 0.0f, 10.0f, HU3D_MOTATTR_NONE); if (lbl_1_bss_0->unk0 != 0) { var_f30 = 0.25f; - } else { + } + else { var_f30 = 0.2f; } - + for (var_r30 = 0, var_f31 = 0.0f; var_f31 < 60.0f; var_f31 += 1.0f) { VECAdd(&sp14, &sp8, &sp14); sp14.y += 20.0f + (var_f30 * (-0.08166667f * var_f31 * var_f31)); @@ -421,9 +427,9 @@ void fn_1_735C(s32 arg0) { } } BoardPlayerPosSetV(arg0, &sp14); - HuPrcVSleep(); + HuPrcVSleep(); } - + BoardPlayerPosSetV(arg0, &sp20); HuPrcSleep(0xA); BoardPlayerMotBlendSet(arg0, 0, 15); @@ -441,15 +447,15 @@ void fn_1_735C(s32 arg0) { BoardWinKill(); } - -void fn_1_767C(omObjData* arg0) { - Point3d sp8; +void fn_1_767C(omObjData *arg0) +{ + Vec sp8; s32 temp_r30; - unkWorkStruct* temp_r31; + unkWorkStruct *temp_r31; temp_r31 = OM_GET_WORK_PTR(arg0, unkWorkStruct); - if ( (temp_r31->temp1 != 0) || (BoardIsKill() != 0)) { + if ((temp_r31->temp1 != 0) || (BoardIsKill() != 0)) { lbl_1_bss_12C = NULL; omDelObjEx(HuPrcCurrentGet(), arg0); return; @@ -466,7 +472,8 @@ void fn_1_767C(omObjData* arg0) { } } -void fn_1_77E4(s32 arg0) { +void fn_1_77E4(s32 arg0) +{ s32 boardIndex; s32 var_r30 = 0; diff --git a/src/REL/w03Dll/statue.c b/src/REL/w03Dll/statue.c index a31fc5a8..2d4d9102 100644 --- a/src/REL/w03Dll/statue.c +++ b/src/REL/w03Dll/statue.c @@ -13,7 +13,6 @@ #include "game/objsub.h" #include "game/process.h" - #include "ext_math.h" void fn_1_1358(void); @@ -142,11 +141,11 @@ s32 fn_1_15E8(void) s32 fn_1_1650(s32 arg0) { - Point3d sp38; - Point3d sp2C; - Point3d sp20; - Point3d sp14; - Point3d sp8; + Vec sp38; + Vec sp2C; + Vec sp20; + Vec sp14; + Vec sp8; f32 temp; s32 temp2; @@ -356,7 +355,7 @@ s32 fn_1_1D1C(void) void fn_1_1ED4(s32 arg0) { - Point3d spC; + Vec spC; f32 sp8; lbl_1_data_284 = BoardModelCreate(DATA_MAKE_NUM(DATADIR_W03, 0x0C), NULL, 0); @@ -400,9 +399,9 @@ void fn_1_1ED4(s32 arg0) void fn_1_20E0(s32 arg0) { - Point3d sp24; - Point3d sp18; - Point3d spC; + Vec sp24; + Vec sp18; + Vec spC; f32 sp8; f32 var_f31; s32 i; @@ -520,9 +519,9 @@ void fn_1_20E0(s32 arg0) void fn_1_26E0(s32 arg0) { - Point3d sp20; - Point3d sp14; - Point3d sp8; + Vec sp20; + Vec sp14; + Vec sp8; f32 temp; BoardSpacePosGet(0, GWPlayer[arg0].space_curr, &sp20); diff --git a/src/dolphin/mtx/mtx.c b/src/dolphin/mtx/mtx.c index eb16a64f..558d4d03 100644 --- a/src/dolphin/mtx/mtx.c +++ b/src/dolphin/mtx/mtx.c @@ -1202,7 +1202,7 @@ void PSMTXReflect(register Mtx m, const register Vec *p, const register Vec *n) } #endif -void C_MTXLookAt(Mtx m, const Point3d *camPos, const Vec *camUp, const Point3d *target) +void C_MTXLookAt(Mtx m, const Vec *camPos, const Vec *camUp, const Vec *target) { Vec vLook, vRight, vUp; diff --git a/src/game/board/block.c b/src/game/board/block.c index b830314f..0f7f86aa 100644 --- a/src/game/board/block.c +++ b/src/game/board/block.c @@ -1,3 +1,4 @@ +#include "ext_math.h" #include "game/board/main.h" #include "game/board/model.h" #include "game/board/player.h" @@ -6,7 +7,7 @@ #include "game/flag.h" #include "game/objsub.h" #include "game/process.h" -#include "ext_math.h" + #define BLOCK_SPAWN 0 #define BLOCK_HIT 2 @@ -89,7 +90,7 @@ static void BlockProc(void) s32 sp14[8] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x60), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x60), DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x60), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 0x60), DATA_MAKE_NUM(DATADIR_WARIOMOT, 0x60), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 0x60), DATA_MAKE_NUM(DATADIR_DAISYMOT, 0x60), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 0x60) }; - Point3d sp8; + Vec sp8; s32 var_r28; s32 i; s32 player; @@ -191,7 +192,7 @@ static void DestroyBlock(void) static void CreateBlockObj(s32 arg0) { - Point3d player_pos; + Vec player_pos; BlockWork *work; s8 contains_star; @@ -422,7 +423,7 @@ static inline s32 FindCoinModel(s16 *out_model) static void PopupCoin(void) { - Point3d star_pos; + Vec star_pos; omObjData *coinObj; s32 model_index; s16 model; @@ -451,8 +452,8 @@ static void PopupCoin(void) static void PopupCoinExec(omObjData *obj) { - Point3d coin_pos; - Point3d coin_rot; + Vec coin_pos; + Vec coin_rot; CoinWork *work; work = OM_GET_WORK_PTR(obj, CoinWork); From 086800b79a1879fd5ba92ee15245cc86761b5ec6 Mon Sep 17 00:00:00 2001 From: Rainchus Date: Sun, 6 Apr 2025 18:53:55 -0500 Subject: [PATCH 310/311] fix malloc sizes of HuMemDirectMalloc calls (#579) --- .vscode/settings.json | 5 +- include/REL/m412Dll.h | 1 - include/game/animdata.h | 18 ++-- src/REL/instDll/font.c | 8 +- src/REL/m412Dll/main.c | 4 +- src/REL/m440Dll/main.c | 2 +- src/REL/mpexDll/mgname.c | 159 ++++++++++++++--------------- src/REL/ztardll/font.c | 212 ++++++++++++++++++++------------------- src/game/audio.c | 7 +- src/game/hsfman.c | 4 +- src/game/thpmain.c | 6 +- 11 files changed, 219 insertions(+), 207 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 1e7df332..64233526 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -69,7 +69,8 @@ "msghndlr.h": "c", "dispatch.h": "c", "trk.h": "c", - "debuggerdriver.h": "c" + "debuggerdriver.h": "c", + "mpexdll.h": "c" }, "search.useIgnoreFiles": false, "search.exclude": { @@ -142,4 +143,4 @@ "C_Cpp_Runner.showCompilationTime": false, "C_Cpp_Runner.useLinkTimeOptimization": false, "C_Cpp_Runner.msvcSecureNoWarnings": false -} \ No newline at end of file +} diff --git a/include/REL/m412Dll.h b/include/REL/m412Dll.h index d9749a81..c91edb68 100644 --- a/include/REL/m412Dll.h +++ b/include/REL/m412Dll.h @@ -20,7 +20,6 @@ typedef struct _unkStruct { HsfVector2f unk1C; Vec unk24; float unk30; - float unk34; } unkStruct; typedef struct _unkStruct2 { diff --git a/include/game/animdata.h b/include/game/animdata.h index 88b42cc4..63876d94 100644 --- a/include/game/animdata.h +++ b/include/game/animdata.h @@ -71,13 +71,13 @@ typedef struct anim_bmp_data { } AnimBmpData; typedef struct anim_data { - s16 bankNum; - s16 patNum; - s16 bmpNum; - s16 useNum; - AnimBankData *bank; - AnimPatData *pat; - AnimBmpData *bmp; -} AnimData; +/* 0x00 */ s16 bankNum; +/* 0x02 */ s16 patNum; +/* 0x04 */ s16 bmpNum; +/* 0x06 */ s16 useNum; +/* 0x08 */ AnimBankData *bank; +/* 0x0C */ AnimPatData *pat; +/* 0x10 */ AnimBmpData *bmp; +} AnimData; //sizeof 0x14 -#endif \ No newline at end of file +#endif diff --git a/src/REL/instDll/font.c b/src/REL/instDll/font.c index 9986bd62..f4712b09 100644 --- a/src/REL/instDll/font.c +++ b/src/REL/instDll/font.c @@ -2,6 +2,8 @@ #include "REL/instDll.h" +#define FONT_CHAR_MAX 100 + static s32 FontCharFile[0xC6] = { 0, 0, @@ -227,9 +229,9 @@ s32 FontCreate(SeqWork *work, char *mess, s16 jp_flag) if (grpNo == 0x10) { return -1; } - animP = HuMemDirectMalloc(HEAP_SYSTEM, 0x190); - posX = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); - posY = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); + animP = HuMemDirectMalloc(HEAP_SYSTEM, (FONT_CHAR_MAX * sizeof(AnimData*))); + posX = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posX)); + posY = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posY)); for (str = mess, len = 0, charNum = 0; str[0] != 0; str++) { if (str[0] == 0x20 || str[0] == 0x10) { diff --git a/src/REL/m412Dll/main.c b/src/REL/m412Dll/main.c index 35f10b6a..8f153855 100644 --- a/src/REL/m412Dll/main.c +++ b/src/REL/m412Dll/main.c @@ -661,7 +661,7 @@ void fn_1_2064(void) for (var_r30 = 0; var_r30 < 0x17; var_r30++) { temp_r26 = HuPrcChildCreate(fn_1_1DBC, 0x2000, 0x1000, 0, HuPrcCurrentGet()); - var_r27 = HuMemDirectMalloc(HEAP_DATA, 0x18); + var_r27 = HuMemDirectMalloc(HEAP_DATA, sizeof(unkStruct4)); temp_r26->user_data = var_r27; var_r27->unk0 = temp_r31->unk4; var_r27->unk4 = var_r30; @@ -692,7 +692,7 @@ s32 fn_1_2708(void) if (var_r31 >= 0x20) { var_r31 = -1; } - lbl_1_bss_278[var_r31] = HuMemDirectMalloc(HEAP_DATA, 0x34); + lbl_1_bss_278[var_r31] = HuMemDirectMalloc(HEAP_DATA, sizeof(unkStruct)); lbl_1_bss_278[var_r31]->unk6 = -1; lbl_1_bss_278[var_r31]->unkA = 0; return var_r31; diff --git a/src/REL/m440Dll/main.c b/src/REL/m440Dll/main.c index db82808e..85db113d 100644 --- a/src/REL/m440Dll/main.c +++ b/src/REL/m440Dll/main.c @@ -640,7 +640,7 @@ void fn_1_2470(omObjData *arg0) temp_r29 = &Hu3DData[temp_r26]; temp_r28 = temp_r29->hsfData->root; lbl_1_bss_60 = temp_r28->data.childrenCount; - lbl_1_bss_64 = HuMemDirectMalloc(HEAP_DATA, lbl_1_bss_60 * 64); + lbl_1_bss_64 = HuMemDirectMalloc(HEAP_DATA, lbl_1_bss_60 * sizeof(unkStruct6)); OSReport("Koopa Object Count %d\n", temp_r29->hsfData->objectCnt); for (var_r30 = 0; var_r30 < lbl_1_bss_60; var_r30++) { diff --git a/src/REL/mpexDll/mgname.c b/src/REL/mpexDll/mgname.c index e173ead7..0ead0fe8 100644 --- a/src/REL/mpexDll/mgname.c +++ b/src/REL/mpexDll/mgname.c @@ -13,7 +13,9 @@ #include "REL/mpexDll.h" -static s32 fontDataTbl[0xC6] = { +#define FONT_CHAR_MAX 100 + +static s32 FontCharFile[0xC6] = { 0, 0, 0, @@ -214,127 +216,126 @@ static s32 fontDataTbl[0xC6] = { 0x140025, }; -s32 fn_1_1CB80(SeqWork *arg0, u8 *arg1, s16 arg2) +s32 fn_1_1CB80(SeqWork *arg0, char *arg1, s16 arg2) { - u8 *var_r31; - s16 var_r30; - s16 *var_r29; - s16 var_r28; - s32 *var_r27; - s16 var_r26; - s32 var_r25; - s16 var_r23; - s16 *var_r22; - AnimData **var_r21; - s16 var_r20; - s16 var_r19; + char *str; + s16 len; + s16 *posY; + s16 charNum; + s32 *fileTbl; + s16 i; + s16 grpNo; + s32 file; + s16 *posX; + AnimData **animP; + s16 gid; + s16 sprid; - var_r27 = fontDataTbl; + fileTbl = FontCharFile; - for (var_r23 = 0; var_r23 < 0x10; var_r23++) { - if (arg0->spr_grp[var_r23] == -1) { + for (grpNo = 0; grpNo < 0x10; grpNo++) { + if (arg0->spr_grp[grpNo] == -1) { break; } } - if (var_r23 == 0x10) { + if (grpNo == 0x10) { return -1; } - var_r21 = HuMemDirectMalloc(HEAP_SYSTEM, 0x190); - var_r22 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); - var_r29 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); + animP = HuMemDirectMalloc(HEAP_SYSTEM, (FONT_CHAR_MAX * sizeof(AnimData*))); + posX = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posX)); + posY = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posY)); - for (var_r31 = arg1, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) { - if (var_r31[0] == 0x20 || var_r31[0] == 0x10) { - var_r30 += 0xE; + for (str = arg1, len = 0, charNum = 0; str[0] != 0; str++) { + if (str[0] == 0x20 || str[0] == 0x10) { + len += 0xE; } - else if (var_r31[0] < 0x30 || var_r31[0] == 0x80 || var_r31[0] == 0x81) { + else if (str[0] < 0x30 || str[0] == 0x80 || str[0] == 0x81) { continue; } else { - if (var_r31[1] == 0x80) { - if ((var_r31[0] >= 0x96) && (var_r31[0] <= 0xA4)) { - var_r25 = var_r27[var_r31[0] + 0x6A]; + if (str[1] == 0x80) { + if ((str[0] >= 0x96) && (str[0] <= 0xA4)) { + file = fileTbl[str[0] + 0x6A]; } - else if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { - var_r25 = var_r27[var_r31[0] + 0x65]; + else if ((str[0] >= 0xAA) && (str[0] <= 0xAE)) { + file = fileTbl[str[0] + 0x65]; } - else if ((var_r31[0] >= 0xD6) && (var_r31[0] <= 0xE4)) { - var_r25 = var_r27[var_r31[0] + 0x43]; + else if ((str[0] >= 0xD6) && (str[0] <= 0xE4)) { + file = fileTbl[str[0] + 0x43]; } - else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { - var_r25 = var_r27[var_r31[0] + 0x3E]; + else if ((str[0] >= 0xEA) && (str[0] <= 0xEE)) { + file = fileTbl[str[0] + 0x3E]; } } - else if (var_r31[1] == 0x81) { - if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { - var_r25 = var_r27[var_r31[0] + 0x6A]; + else if (str[1] == 0x81) { + if ((str[0] >= 0xAA) && (str[0] <= 0xAE)) { + file = fileTbl[str[0] + 0x6A]; } - else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { - var_r25 = var_r27[var_r31[0] + 0x43]; + else if ((str[0] >= 0xEA) && (str[0] <= 0xEE)) { + file = fileTbl[str[0] + 0x43]; } } else { - var_r25 = var_r27[var_r31[0]]; + file = fileTbl[str[0]]; } - var_r21[var_r28] = HuSprAnimReadFile(var_r25); - var_r22[var_r28] = var_r30; - if ((var_r31[0] >= 0x61) && (var_r31[0] <= 0x7A)) { - var_r29[var_r28] = 2; - var_r30 += 0x12; + animP[charNum] = HuSprAnimReadFile(file); + posX[charNum] = len; + if ((str[0] >= 0x61) && (str[0] <= 0x7A)) { + posY[charNum] = 2; + len += 0x12; } - else if ((var_r31[0] == 0xC2) || (var_r31[0] == 0xC3)) { - var_r29[var_r28] = 0; - var_r30 += 0x12; + else if ((str[0] == 0xC2) || (str[0] == 0xC3)) { + posY[charNum] = 0; + len += 0x12; } - else if (var_r31[0] == 0x5C) { - var_r29[var_r28] = 0; - var_r30 += 8; + else if (str[0] == 0x5C) { + posY[charNum] = 0; + len += 8; } - else if ((var_r31[0] >= 0x87) && (var_r31[0] <= 0x8F)) { - var_r29[var_r28] = 4; - var_r30 += 0x18; + else if ((str[0] >= 0x87) && (str[0] <= 0x8F)) { + posY[charNum] = 4; + len += 0x18; } - else if ((var_r31[0] >= 0xC7) && (var_r31[0] <= 0xCF)) { - var_r29[var_r28] = 4; - var_r30 += 0x18; + else if ((str[0] >= 0xC7) && (str[0] <= 0xCF)) { + posY[charNum] = 4; + len += 0x18; } - else if ((var_r31[0] == 0x3D) || (var_r31[0] == 0x84)) { - var_r29[var_r28] = 0; - var_r30 += 0x14; + else if ((str[0] == 0x3D) || (str[0] == 0x84)) { + posY[charNum] = 0; + len += 0x14; } else { - var_r29[var_r28] = 0; - var_r30 += 0x1C; + posY[charNum] = 0; + len += 0x1C; } - var_r28++; + charNum++; } } - var_r20 = HuSprGrpCreate(var_r28); - arg0->spr_grp[var_r23] = var_r20; - arg0->alt_word_len = var_r30; - var_r30 = (var_r30 / 2) - 0xE; - for (var_r26 = 0; var_r26 < var_r28; var_r26++) { - var_r19 = HuSprCreate(var_r21[var_r26], 0, 0); - HuSprGrpMemberSet(var_r20, var_r26, var_r19); - HuSprPosSet(var_r20, var_r26, var_r22[var_r26] - var_r30, var_r29[var_r26]); + gid = HuSprGrpCreate(charNum); + arg0->spr_grp[grpNo] = gid; + arg0->alt_word_len = len; + len = (len / 2) - 0xE; + for (i = 0; i < charNum; i++) { + sprid = HuSprCreate(animP[i], 0, 0); + HuSprGrpMemberSet(gid, i, sprid); + HuSprPosSet(gid, i, posX[i] - len, posY[i]); } - arg0->word_len = var_r28; - HuMemDirectFree(var_r21); - HuMemDirectFree(var_r22); - HuMemDirectFree(var_r29); - return var_r20; + arg0->word_len = charNum; + HuMemDirectFree(animP); + HuMemDirectFree(posX); + HuMemDirectFree(posY); + return gid; } s32 fn_1_1D02C(s32 arg0) { SeqWork sp10; s16 spC[2]; - - u8 *var_r31; + char *var_r31; s32 var_r30; s16 var_r29; - u8 *var_r28; + char *var_r28; s32 var_r27; s32 var_r26; s16 var_r25; diff --git a/src/REL/ztardll/font.c b/src/REL/ztardll/font.c index 8dbfe634..74f9608a 100644 --- a/src/REL/ztardll/font.c +++ b/src/REL/ztardll/font.c @@ -3,6 +3,8 @@ #include "REL/ztardll.h" +#define FONT_CHAR_MAX 100 + #if VERSION_ENG s32 lbl_1_data_B0[0xC6] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, DATA_MAKE_NUM(DATADIR_INSTFONT, 0x00), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x01), DATA_MAKE_NUM(DATADIR_INSTFONT, 0x02), @@ -107,156 +109,158 @@ s32 lbl_1_data_B0[0x132] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, s32 fn_1_7754(SeqWork *work, char *mess) { - char *var_r31; - s16 var_r30; - s16 *var_r29; - s16 var_r28; - s32 *var_r27; - s16 var_r26; - s16 var_r25; - s32 var_r24; - s16 *var_r22; - AnimData **var_r21; - s16 var_r20; - s16 var_r19; + char* str; + s16 len; + s16* posY; + s16 charNum; + s32* fileTbl; + s16 i; + s16 grpNo; + s32 file; + s16 *posX; + AnimData **animP; + s16 gid; + s16 sprid; s32 var_r19_2; - var_r27 = lbl_1_data_B0; - for (var_r25 = 0; var_r25 < 0x10; var_r25++) { - if (work->spr_grp[var_r25] == -1) { + fileTbl = lbl_1_data_B0; + for (grpNo = 0; grpNo < 0x10; grpNo++) { + if (work->spr_grp[grpNo] == -1) { break; } } - if (var_r25 == 0x10) { + if (grpNo == 0x10) { return -1; } - var_r21 = HuMemDirectMalloc(HEAP_SYSTEM, 0x190); - var_r22 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); - var_r29 = HuMemDirectMalloc(HEAP_SYSTEM, 0xC8); - for (var_r31 = mess, var_r30 = 0, var_r28 = 0; var_r31[0] != 0; var_r31++) { - if (var_r31[0] == 0x20 || var_r31[0] == 0x10) { - var_r30 += VERSION_JP ? 0x1C : 0xE; + + animP = HuMemDirectMalloc(HEAP_SYSTEM, (FONT_CHAR_MAX * sizeof(AnimData*))); + posX = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posX)); + posY = HuMemDirectMalloc(HEAP_SYSTEM, FONT_CHAR_MAX * sizeof(*posY)); + + for (str = mess, len = 0, charNum = 0; str[0] != 0; str++) { + if (str[0] == 0x20 || str[0] == 0x10) { + len += VERSION_JP ? 0x1C : 0xE; } #if VERSION_PAL - else if (*var_r31 >= 0x30) { - var_r19_2 = var_r27[*var_r31]; - var_r21[var_r28] = HuSprAnimReadFile(var_r19_2); - var_r22[var_r28] = var_r30; - if ((*var_r31 >= 0x61) && (*var_r31 <= 0x7A)) { - var_r29[var_r28] = 2; - var_r30 += 0x12; + else if (*str >= 0x30) { + var_r19_2 = fileTbl[*str]; + animP[charNum] = HuSprAnimReadFile(var_r19_2); + posX[charNum] = len; + if ((*str >= 0x61) && (*str <= 0x7A)) { + posY[charNum] = 2; + len += 0x12; } - else if ((*var_r31 == 0xC2) || (*var_r31 == 0xC3) || (*var_r31 == 0xC7)) { - var_r29[var_r28] = 0; - var_r30 += 0x12; + else if ((*str == 0xC2) || (*str == 0xC3) || (*str == 0xC7)) { + posY[charNum] = 0; + len += 0x12; } - else if (*var_r31 == 0xC6) { - var_r29[var_r28] = 0; - var_r30 += 0x18; + else if (*str == 0xC6) { + posY[charNum] = 0; + len += 0x18; } - else if (*var_r31 == 0x5C) { - var_r29[var_r28] = 0; - var_r30 += 8; + else if (*str == 0x5C) { + posY[charNum] = 0; + len += 8; } - else if ((*var_r31 >= 0x90) && (*var_r31 <= 0x9F)) { - var_r29[var_r28] = -2; - var_r30 += 0x18; + else if ((*str >= 0x90) && (*str <= 0x9F)) { + posY[charNum] = -2; + len += 0x18; } - else if ((*var_r31 >= 0xD0) && (*var_r31 <= 0xEF)) { - var_r29[var_r28] = -2; - var_r30 += 0x12; + else if ((*str >= 0xD0) && (*str <= 0xEF)) { + posY[charNum] = -2; + len += 0x12; } - else if ((*var_r31 == 0x3D) || (*var_r31 == 0x84)) { - var_r29[var_r28] = 0; - var_r30 += 0x14; + else if ((*str == 0x3D) || (*str == 0x84)) { + posY[charNum] = 0; + len += 0x14; } else { - var_r29[var_r28] = 0; - var_r30 += 0x1C; + posY[charNum] = 0; + len += 0x1C; } - var_r28++; + charNum++; } #else - else if (var_r31[0] < 0x30) { + else if (str[0] < 0x30) { } - else if (var_r31[0] == 0x80) { + else if (str[0] == 0x80) { } - else if (var_r31[0] == 0x81) { + else if (str[0] == 0x81) { } else { - if (var_r31[1] == 0x80) { - if ((var_r31[0] >= 0x96) && (var_r31[0] <= 0xA4)) { - var_r24 = var_r27[var_r31[0] + 0x6A]; + if (str[1] == 0x80) { + if ((str[0] >= 0x96) && (str[0] <= 0xA4)) { + file = fileTbl[str[0] + 0x6A]; } - else if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { - var_r24 = var_r27[var_r31[0] + 0x65]; + else if ((str[0] >= 0xAA) && (str[0] <= 0xAE)) { + file = fileTbl[str[0] + 0x65]; } - else if ((var_r31[0] >= 0xD6) && (var_r31[0] <= 0xE4)) { - var_r24 = var_r27[var_r31[0] + 0x43]; + else if ((str[0] >= 0xD6) && (str[0] <= 0xE4)) { + file = fileTbl[str[0] + 0x43]; } - else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { - var_r24 = var_r27[var_r31[0] + 0x3E]; + else if ((str[0] >= 0xEA) && (str[0] <= 0xEE)) { + file = fileTbl[str[0] + 0x3E]; } } - else if (var_r31[1] == 0x81) { - if ((var_r31[0] >= 0xAA) && (var_r31[0] <= 0xAE)) { - var_r24 = var_r27[var_r31[0] + 0x6A]; + else if (str[1] == 0x81) { + if ((str[0] >= 0xAA) && (str[0] <= 0xAE)) { + file = fileTbl[str[0] + 0x6A]; } - else if ((var_r31[0] >= 0xEA) && (var_r31[0] <= 0xEE)) { - var_r24 = var_r27[var_r31[0] + 0x43]; + else if ((str[0] >= 0xEA) && (str[0] <= 0xEE)) { + file = fileTbl[str[0] + 0x43]; } } else { - var_r24 = var_r27[var_r31[0]]; + file = fileTbl[str[0]]; } - var_r21[var_r28] = HuSprAnimReadFile(var_r24); - var_r22[var_r28] = var_r30; - if ((var_r31[0] >= 0x61) && (var_r31[0] <= 0x7A)) { - var_r29[var_r28] = 2; - var_r30 += 0x12; + animP[charNum] = HuSprAnimReadFile(file); + posX[charNum] = len; + if ((str[0] >= 0x61) && (str[0] <= 0x7A)) { + posY[charNum] = 2; + len += 0x12; } - else if ((var_r31[0] == 0xC2) || (var_r31[0] == 0xC3)) { - var_r29[var_r28] = 0; - var_r30 += 0x12; + else if ((str[0] == 0xC2) || (str[0] == 0xC3)) { + posY[charNum] = 0; + len += 0x12; } - else if (var_r31[0] == 0x5C) { - var_r29[var_r28] = 0; - var_r30 += 8; + else if (str[0] == 0x5C) { + posY[charNum] = 0; + len += 8; } - else if ((var_r31[0] >= 0x87) && (var_r31[0] <= 0x8F)) { - var_r29[var_r28] = 4; - var_r30 += 0x18; + else if ((str[0] >= 0x87) && (str[0] <= 0x8F)) { + posY[charNum] = 4; + len += 0x18; } - else if ((var_r31[0] >= 0xC7) && (var_r31[0] <= 0xCF)) { - var_r29[var_r28] = 4; - var_r30 += 0x18; + else if ((str[0] >= 0xC7) && (str[0] <= 0xCF)) { + posY[charNum] = 4; + len += 0x18; } #if !VERSION_JP - else if ((var_r31[0] == 0x3D) || (var_r31[0] == 0x84)) { - var_r29[var_r28] = 0; - var_r30 += 0x14; + else if ((str[0] == 0x3D) || (str[0] == 0x84)) { + posY[charNum] = 0; + len += 0x14; } #endif else { - var_r29[var_r28] = 0; - var_r30 += 0x1C; + posY[charNum] = 0; + len += 0x1C; } - var_r28++; + charNum++; } #endif } - var_r20 = HuSprGrpCreate(var_r28); - work->spr_grp[var_r25] = var_r20; - work->alt_word_len = var_r30; - var_r30 = (var_r30 / 2) - 0xE; - for (var_r26 = 0; var_r26 < var_r28; var_r26++) { - var_r19 = HuSprCreate(var_r21[var_r26], 0, 0); - HuSprGrpMemberSet(var_r20, var_r26, var_r19); - HuSprPosSet(var_r20, var_r26, var_r22[var_r26] - var_r30, var_r29[var_r26]); + gid = HuSprGrpCreate(charNum); + work->spr_grp[grpNo] = gid; + work->alt_word_len = len; + len = (len / 2) - 0xE; + for (i = 0; i < charNum; i++) { + sprid = HuSprCreate(animP[i], 0, 0); + HuSprGrpMemberSet(gid, i, sprid); + HuSprPosSet(gid, i, posX[i] - len, posY[i]); } - work->word_len = var_r28; - HuMemDirectFree(var_r21); - HuMemDirectFree(var_r22); - HuMemDirectFree(var_r29); - return var_r25; + work->word_len = charNum; + HuMemDirectFree(animP); + HuMemDirectFree(posX); + HuMemDirectFree(posY); + return grpNo; } diff --git a/src/game/audio.c b/src/game/audio.c index 92794f6c..2227c3b7 100644 --- a/src/game/audio.c +++ b/src/game/audio.c @@ -5,6 +5,8 @@ #include "game/wipe.h" #include "game/gamework_data.h" +#define MUSIC_HEAP_SIZE 0x13FC00 + static int HuSePlay(int seId, MSM_SEPARAM *param); extern s16 omSysExitReq; @@ -32,7 +34,6 @@ static char *lbl_8012E9AC[] = { "" }; - void HuAudInit(void) { MSM_INIT msmInit; @@ -41,8 +42,8 @@ void HuAudInit(void) s32 result; s16 i; - msmInit.heap = HuMemDirectMalloc(HEAP_MUSIC, 0x13FC00); - msmInit.heapSize = 0x13FC00; + msmInit.heap = HuMemDirectMalloc(HEAP_MUSIC, MUSIC_HEAP_SIZE); + msmInit.heapSize = MUSIC_HEAP_SIZE; msmInit.msmPath = "/sound/mpgcsnd.msm"; msmInit.pdtPath = "/sound/mpgcstr.pdt"; msmInit.open = NULL; diff --git a/src/game/hsfman.c b/src/game/hsfman.c index b455a0cf..243da902 100644 --- a/src/game/hsfman.c +++ b/src/game/hsfman.c @@ -17,6 +17,8 @@ #include "math.h" #include "ext_math.h" +#define SHADOW_HEAP_SIZE 0x9000 + ModelData Hu3DData[HU3D_MODEL_MAX]; CameraData Hu3DCamera[HU3D_CAM_MAX]; static s16 layerNum[8]; @@ -1876,7 +1878,7 @@ void Hu3DFogClear(void) { void Hu3DShadowCreate(f32 arg8, f32 arg9, f32 argA) { Hu3DShadowData.unk_02 = 0xC0; if (Hu3DShadowData.unk_04 == 0) { - Hu3DShadowData.unk_04 = HuMemDirectMalloc(HEAP_DATA, 0x9000); + Hu3DShadowData.unk_04 = HuMemDirectMalloc(HEAP_DATA, SHADOW_HEAP_SIZE); } Hu3DShadowData.unk_08.x = arg8; Hu3DShadowData.unk_08.y = arg9; diff --git a/src/game/thpmain.c b/src/game/thpmain.c index d31d4639..082eb281 100755 --- a/src/game/thpmain.c +++ b/src/game/thpmain.c @@ -8,6 +8,8 @@ #include "string.h" +#define THP_DECODE_STACK_SIZE 0x2000 + static void THPTestProc(void); static void THPViewFunc(ModelData *arg0, Mtx arg1); static void THPViewSprFunc(HuSprite *arg0); @@ -153,8 +155,8 @@ static void THPTestProc(void) HuPrcVSleep(); } HuPrcVSleep(); - decodeStackP = HuMemDirectMalloc(HEAP_SYSTEM, 0x2000); - decodeThread = OSSetIdleFunction(THPDecodeFunc, NULL, decodeStackP + 0x2000, 0x2000); + decodeStackP = HuMemDirectMalloc(HEAP_SYSTEM, THP_DECODE_STACK_SIZE); + decodeThread = OSSetIdleFunction(THPDecodeFunc, NULL, (decodeStackP + THP_DECODE_STACK_SIZE), THP_DECODE_STACK_SIZE); decodeRate = 0; THPStart = 1; if (SimpleControl.unk19C == 1) { From ce573014358b77bf8a612701234cfdc93abb494f Mon Sep 17 00:00:00 2001 From: Rainchus Date: Tue, 13 May 2025 20:19:59 -0500 Subject: [PATCH 311/311] Unhardcode some things (#589) * fix malloc sizes of HuMemDirectMalloc calls * unhardcode some things --- include/REL/m407dll.h | 2 - include/REL/w03Dll.h | 2 - include/game/chrman.h | 4 +- include/types.h | 2 + src/REL/mstory4Dll/main.c | 2 +- src/game/board/com.c | 2 +- src/game/chrman.c | 81 ++++++++++++++++++++------------------- 7 files changed, 48 insertions(+), 47 deletions(-) diff --git a/include/REL/m407dll.h b/include/REL/m407dll.h index 525a406d..e007469c 100644 --- a/include/REL/m407dll.h +++ b/include/REL/m407dll.h @@ -3,8 +3,6 @@ #include "game/object.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) - typedef void (*VoidFuncs)(void); typedef void (*ObjFuncs)(omObjData *); diff --git a/include/REL/w03Dll.h b/include/REL/w03Dll.h index 022b6894..a7163c63 100644 --- a/include/REL/w03Dll.h +++ b/include/REL/w03Dll.h @@ -8,8 +8,6 @@ #include "game/window.h" #include "game/object.h" -#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) - enum { MAPOBJ_MAX = 12 }; diff --git a/include/game/chrman.h b/include/game/chrman.h index c20b79cc..d826fb68 100755 --- a/include/game/chrman.h +++ b/include/game/chrman.h @@ -44,6 +44,8 @@ s32 CharModelEffectNpcInit(s16 arg0, s16 arg1, s16 arg2, s16 arg3); s32 CharModelEffectNpcInitSilent(s16 arg0, s16 arg1, s16 arg2); void CharModelStepTypeSet(s16 character, s32 arg1); -#define GW_CHARACTER_MAX 8 +#define CHARNO_MAX 8 +#define CHAR_NPC_MAX 7 +#define CHAR_EFFECT_AND_PARTICLE_MAX 8 #endif diff --git a/include/types.h b/include/types.h index 462b4f66..349256d9 100644 --- a/include/types.h +++ b/include/types.h @@ -1,6 +1,8 @@ #ifndef _TYPES_H_ #define _TYPES_H_ +#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0])) + #include "dolphin/types.h" #endif diff --git a/src/REL/mstory4Dll/main.c b/src/REL/mstory4Dll/main.c index 6a626cb1..b6304228 100644 --- a/src/REL/mstory4Dll/main.c +++ b/src/REL/mstory4Dll/main.c @@ -577,7 +577,7 @@ void fn_1_13A0(void) s32 i; for(i=1; i<4; i++) { GWPlayerCfg[i].character = GWPlayerCfg[i-1].character+1; - if(GWPlayerCfg[i].character > GW_CHARACTER_MAX) { + if(GWPlayerCfg[i].character > CHARNO_MAX ) { GWPlayerCfg[i].character = 0; } } diff --git a/src/game/board/com.c b/src/game/board/com.c index ed7f1e3c..60ef9620 100755 --- a/src/game/board/com.c +++ b/src/game/board/com.c @@ -47,7 +47,7 @@ static s8 itemUse = -1; #define BOARD_ITEM_ITEM_BAG 13 #define BOARD_ITEMS_END BOARD_ITEM_ITEM_BAG -static s8 comItemPreferTbl[GW_CHARACTER_MAX][SHOP_ITEMS_END] = { +static s8 comItemPreferTbl[CHARNO_MAX ][SHOP_ITEMS_END] = { { //Mario BOARD_ITEM_MAGIC_LAMP, BOARD_ITEM_BOOS_CRYSTAL_BALL, diff --git a/src/game/chrman.c b/src/game/chrman.c index e98f50e1..b8ad92a3 100755 --- a/src/game/chrman.c +++ b/src/game/chrman.c @@ -83,12 +83,13 @@ static void OrbitEffect(HsfanimStruct01 *arg0); static void UpdateNpcEffect(void); static s32 PlayStepFX(s16 arg0, s16 arg1, u8 arg2); -static UnkCharInstanceStruct charInstance[8]; -static s16 effectMdl[8]; -static EffectParamData *particleData[8]; +static UnkCharInstanceStruct charInstance[CHARNO_MAX ]; +static s16 effectMdl[CHAR_EFFECT_AND_PARTICLE_MAX]; +static EffectParamData *particleData[CHAR_EFFECT_AND_PARTICLE_MAX]; static Process *itemHookProcess[32]; -static u16 lbl_801975B0[8]; -static u8 lbl_801975C0[0x90]; // Unused? +//holds normal characters 0-7, then more characters 8-14 +static u16 lbl_801975B0[CHARNO_MAX + CHAR_NPC_MAX]; +static u8 lbl_801975CE[0x82]; // Unused? static s32 skipAnimUpdate; static void *effectAMemP; @@ -110,7 +111,7 @@ static EffectData effectDataTbl[8] = { { DATA_MAKE_NUM(DATADIR_EFFECT, 0x07), 0x000C, 0x0000, 0x00000002 }, }; -static s32 charDirTbl[8][3] = { +static s32 charDirTbl[CHARNO_MAX ][3] = { { DATADIR_MARIOMDL0, DATADIR_MARIOMDL1, DATA_MAKE_NUM(DATADIR_MARIOMOT, 0x00) }, { DATADIR_LUIGIMDL0, DATADIR_LUIGIMDL1, DATA_MAKE_NUM(DATADIR_LUIGIMOT, 0x00) }, { DATADIR_PEACHMDL0, DATADIR_PEACHMDL1, DATA_MAKE_NUM(DATADIR_PEACHMOT, 0x00) }, @@ -150,10 +151,10 @@ void CharManInit(void) s16 i; s16 j; - for (i = 0; i < 8; i++) { + for (i = 0; i < CHARNO_MAX ; i++) { temp_r29 = &charInstance[i]; temp_r29->unkC0 = NULL; - for (j = 0; j < 32; j++) { + for (j = 0; j < ARRAY_COUNT(temp_r29->unk0C); j++) { temp_r29->unk0C[j] = -1; } temp_r29->unk00 = -1; @@ -162,11 +163,11 @@ void CharManInit(void) if (!effectAMemP) { effectAMemP = (void *)HuAR_DVDtoARAM(0x120000); } - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { effectMdl[i] = -1; particleData[i] = NULL; } - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(itemHookProcess); i++) { itemHookProcess[i] = NULL; } } @@ -180,7 +181,7 @@ void CharARAMOpen(s16 character) { UnkCharInstanceStruct *temp_r31; - if (character >= 8 || character < 0 || character == 0xFF) { + if (character >= CHARNO_MAX || character < 0 || character == 0xFF) { return; } temp_r31 = &charInstance[character]; @@ -708,12 +709,12 @@ static void InitEffect(void) s16 j; var_r27 = 0; - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { if (effectMdl[i] == -1) { temp_r26 = HuDataSelHeapReadNum(effectDataTbl[i].unk00, MEMORY_DEFAULT_NUM, HEAP_DATA); temp_r25 = HuSprAnimRead(temp_r26); effectMdl[i] = Hu3DParticleCreate(temp_r25, effectDataTbl[i].unk04); - if (i == 7) { + if (i == CHAR_EFFECT_AND_PARTICLE_MAX - 1) { Hu3DParticleAnimModeSet(effectMdl[i], 0); } Hu3DParticleHookSet(effectMdl[i], UpdateEffect); @@ -1035,12 +1036,12 @@ s16 CharModelMotionCreate(s16 character, s32 data_num) return -1; } temp_r26 = data_num & 0xFFFF0000; - for (var_r28 = 0; var_r28 < 8; var_r28++) { + for (var_r28 = 0; var_r28 < CHARNO_MAX ; var_r28++) { if (temp_r26 == charDirTbl[var_r28][2]) { break; } } - if (var_r28 != 8 || temp_r26 == 0) { + if (var_r28 != CHARNO_MAX || temp_r26 == 0) { data_num &= 0xFFFF; var_r27 = HuAR_ARAMtoMRAMFileRead(data_num | charDirTbl[character][2], MEMORY_DEFAULT_NUM, 2); if (!var_r27) { @@ -1063,12 +1064,12 @@ void CharModelMotionIndexSet(s16 character, s16 arg1, s32 arg2) s16 i; temp_r30 = &charInstance[character]; - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(temp_r30->unk0C); i++) { if (temp_r30->unk0C[i] == arg1) { break; } } - if (i != 32) { + if (i != ARRAY_COUNT(temp_r30->unk0C)) { temp_r30->unk4C[i] = arg2; } } @@ -1079,7 +1080,7 @@ void CharModelMotionKill(s16 character, u32 motion) s16 i; temp_r30 = &charInstance[character]; - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(temp_r30->unk0C); i++) { if (temp_r30->unk0C[i] == motion) { break; } @@ -1093,7 +1094,7 @@ void CharModelMotionDataClose(s16 character) s16 i; if (character == -1) { - for (i = 0; i < 8; i++) { + for (i = 0; i < CHARNO_MAX ; i++) { CharModelMotionDataClose(i); } } @@ -1107,7 +1108,7 @@ void CharModelDataClose(s16 arg0) s16 i; if (arg0 == -1) { - for (i = 0; i < 8; i++) { + for (i = 0; i < CHARNO_MAX ; i++) { CharModelDataClose(i); // Required to match. (void)i; @@ -1127,17 +1128,17 @@ void CharModelKill(s16 character) s16 i; if (character == -1) { - for (i = 0; i < 8; i++) { + for (i = 0; i < CHARNO_MAX ; i++) { CharModelKill(i); } - for (i = 0; i < 15; i++) { + for (i = 0; i < ARRAY_COUNT(lbl_801975B0); i++) { lbl_801975B0[i] = 0; } return; } CharModelMotionDataClose(character); temp_r29 = &charInstance[character]; - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(temp_r29->unk0C); i++) { if (temp_r29->unk0C[i] != -1) { Hu3DMotionKill(temp_r29->unk0C[i]); } @@ -1147,13 +1148,13 @@ void CharModelKill(s16 character) Hu3DModelKill(temp_r29->unk00); } temp_r29->unk00 = -1; - for (i = 0; i < 8; i++) { + for (i = 0; i < CHARNO_MAX ; i++) { if (charInstance[i].unk00 != -1) { break; } } - if (i == 8) { - for (i = 0; i < 8; i++) { + if (i == CHARNO_MAX ) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { if (effectMdl[i] != -1) { Hu3DModelKill(effectMdl[i]); } @@ -1163,7 +1164,7 @@ void CharModelKill(s16 character) if (temp_r29->unkC4) { HuMemDirectFree(temp_r29->unkC4->user_data); HuPrcKill(temp_r29->unkC4); - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(itemHookProcess); i++) { if (itemHookProcess[i]) { HuPrcKill(itemHookProcess[i]); } @@ -1319,7 +1320,7 @@ void CharModelLayerSetAll(s16 arg0) { s16 i; - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { if (effectMdl[i] != -1) { Hu3DModelLayerSet(effectMdl[i], arg0); } @@ -1330,12 +1331,12 @@ static inline Process *CharModelItemHookCreateInlineFunc(void) { s16 i; - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(itemHookProcess); i++) { if (!itemHookProcess[i]) { break; } } - if (i == 32) { + if (i == ARRAY_COUNT(itemHookProcess)) { return NULL; } else { @@ -1423,7 +1424,7 @@ static void UpdateItemHook(void) } PSMTXIdentity(temp_r30->unk_F0); temp_r25 = HuPrcCurrentGet(); - for (var_r28 = 0; var_r28 < 32; var_r28++) { + for (var_r28 = 0; var_r28 < ARRAY_COUNT(itemHookProcess); var_r28++) { if (itemHookProcess[var_r28] == temp_r25) { HuPrcKill(temp_r25); itemHookProcess[var_r28] = NULL; @@ -1445,7 +1446,7 @@ void CharModelEffectCreate(s16 arg0, Vec *arg1) ParticleData *var_r27; ModelData *var_r26; - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { temp_r28 = CreateEffect(effectMdl[3], arg0, arg1->x, arg1->y, arg1->z, 20.0f, &modelParticleParam); if (temp_r28 == -1) { break; @@ -1462,7 +1463,7 @@ void CharModelEffectCreate(s16 arg0, Vec *arg1) var_r31->unk24 = 0.1f * (frandmod(20) - 10); var_r31->unk40.a = 0xFF - frandmod(3) * 16; } - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { temp_r28 = CreateEffect(effectMdl[3], arg0, arg1->x, arg1->y, arg1->z, 10.0f, &modelParticleParam); if (temp_r28 == -1) { break; @@ -1566,12 +1567,12 @@ void fn_8004EC74(s16 character) temp_r30 = &charInstance[character]; temp_r31 = &Hu3DData[temp_r30->unk00]; - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(temp_r30->unk0C); i++) { if (temp_r30->unk0C[i] == temp_r31->unk_08) { break; } } - if (i != 32) { + if (i != ARRAY_COUNT(temp_r30->unk0C)) { Hu3DModelObjMtxGet(temp_r30->unk00, "test11_tex_we-itemhook-r", sp24); sp18.x = sp24[0][3]; sp18.y = sp24[1][3]; @@ -1698,12 +1699,12 @@ void CharModelVoiceEnableSet(s16 character, s16 motion, s32 flag) if (temp_r31->unk00 == -1) { return; } - for (i = 0; i < 32; i++) { + for (i = 0; i < ARRAY_COUNT(temp_r31->unk0C); i++) { if (temp_r31->unk0C[i] == motion) { break; } } - if (i != 32) { + if (i != ARRAY_COUNT(temp_r31->unk0C)) { if (flag == 0) { temp_r31->unk8C[i] |= 1; } @@ -1730,7 +1731,7 @@ void CharModelEffectEnableSet(s16 character, s32 arg1) { UnkCharInstanceStruct *temp_r31 = &charInstance[character]; - if (character >= 8) { + if (character >= CHARNO_MAX ) { if (arg1 == 0) { lbl_801975B0[character] |= 0x10; } @@ -1932,14 +1933,14 @@ static void UpdateNpcEffect(void) if (lbl_801975B0[temp_r28] & 0x10) { break; } - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { effectStarParam.unk0C.x = 10.0 * sind(45.0f * i) * temp_r30->scale.x; effectStarParam.unk0C.y = 0.0f; effectStarParam.unk0C.z = 10.0 * cosd(45.0f * i) * temp_r30->scale.x; CreateEffectStar( temp_r25, temp_r30->pos.x, temp_r30->pos.y + 10.0f * temp_r30->scale.x, temp_r30->pos.z, 40.0f, &effectStarParam); } - for (i = 0; i < 8; i++) { + for (i = 0; i < CHAR_EFFECT_AND_PARTICLE_MAX; i++) { effectDustParam.unk0C.x = 4.0 * sind(45.0f * i + 22.5) * temp_r30->scale.x; effectDustParam.unk0C.y = 0.0f; effectDustParam.unk0C.z = 4.0 * cosd(45.0f * i + 22.5) * temp_r30->scale.x;